ZGlmZiAtLWdpdCBhLy5naXRhdHRyaWJ1dGVzIGIvLmdpdGF0dHJpYnV0ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU4MWVmZQotLS0gL2Rldi9udWxsCisrKyBiLy5naXRhdHRyaWJ1dGVzCkBAIC0wLDAgKzEsMTE4IEBACisqIHRleHQ9YXV0byAhZW9sCisKKyouYyB0ZXh0ICFlb2wKKyouY2MgdGV4dCAhZW9sCisqLmNsYXNzcGF0aCB0ZXh0ICFlb2wKKyouY3BwIHRleHQgIWVvbAorKi5jc3MgdGV4dCAhZW9sCisqLmRzcCB0ZXh0ICFlb2wKKyouZHN3IHRleHQgIWVvbAorKi5maWx0ZXJzIHRleHQgIWVvbAorKi5oIHRleHQgIWVvbAorKi5odG0gdGV4dCAhZW9sCisqLmh0bWwgdGV4dCAhZW9sCisqLmluIHRleHQgIWVvbAorKi5qYXZhIHRleHQgIWVvbAorKi5sYXVuY2ggdGV4dCAhZW9sCisqLm1hayB0ZXh0ICFlb2wKKyoubWQgdGV4dCAhZW9sCisqLk1GIHRleHQgIWVvbAorKi5tayB0ZXh0ICFlb2wKKyoucGwgdGV4dCAhZW9sCisqLnBtIHRleHQgIWVvbAorKi5wcm9qZWN0IHRleHQgIWVvbAorKi5wcm9wZXJ0aWVzIHRleHQgIWVvbAorKi5weSB0ZXh0ICFlb2wKKyoucmMgdGV4dCAhZW9sCisqLnNoIHRleHQgZW9sPWxmCisqLnNsbiB0ZXh0ICFlb2wKKyouc3R1YiB0ZXh0ICFlb2wKKyoudHh0IHRleHQgIWVvbAorKi51Y20gdGV4dCAhZW9sCisqLnZjcHJvaiB0ZXh0ICFlb2wKKyoudmN4cHJvaiB0ZXh0ICFlb2wKKyoueG1sIHRleHQgIWVvbAorKi54c2wgdGV4dCAhZW9sCisqLnhzbHQgdGV4dCAhZW9sCitNYWtlZmlsZSB0ZXh0ICFlb2wKK2NvbmZpZ3VyZSB0ZXh0ICFlb2wKK0xJQ0VOU0UgdGV4dCAhZW9sCitSRUFETUUgdGV4dCAhZW9sCisKKyouYmluIC10ZXh0CisqLmJyayAtdGV4dAorKi5jbnYgLXRleHQKKyouaWN1IC10ZXh0CisqLnJlcyAtdGV4dAorKi5ucm0gLXRleHQKKyouc3BwIC10ZXh0CisqLnRyaTIgLXRleHQKKworL2VlLmZvdW5kYXRpb24uamFyIC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS9lbmdsaXNoLmRpY3QgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aGFpNi51Y3MgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Bc2lhbi50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19DaGluZXNlLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2gudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2Vfay50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Lb3JlYW4udHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfTGF0aW4udHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfUnVzc2lhbi50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TZXJiaWFuU0gudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNSLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NpbXBsaWZpZWRfQ2hpbmVzZS50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19UaGFpLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcmJiaXRzdC50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLk9sc29uVGltZVpvbmUuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLlRpbWVab25lQWRhcHRlci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmdFeGNlcHRpb24uZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ29wdGljQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkN1cnJlbmN5LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlRpbWVab25lLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VTG9jYWxlLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajI4LmFwaS5neiAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozMC5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzIuYXBpLmd6IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0LmFwaS5neiAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDEuYXBpLmd6IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0Mi5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQzLmFwaS5neiAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS90aC5icmsgLXRleHQKK3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy91bmljb2RlLmFyYWJpYy5yZWQgLXRleHQKK3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy91bmljb2RlLmhlYnJldy5yZWQgLXRleHQKKworIyBUaGUgZm9sbG93aW5nIGZpbGUgdHlwZXMgYXJlIHN0b3JlZCBpbiBHaXQtTEZTLgorKi5qYXIgZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouZGF0IGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisqLnppcCBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorKi5neiBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorKi5iejIgZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouZ2lmIGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNTlhMjkKLS0tIC9kZXYvbnVsbAorKysgYi8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsNiBAQAorLy5jbGFzc3BhdGgKKy8uY2xvdmVyCisvLmV4dGVybmFsVG9vbEJ1aWxkZXJzCisvLnByb2plY3QKKy9jbGFzc2VzCisvZG9jCmRpZmYgLS1naXQgYS9BUElDaGFuZ2VSZXBvcnQuaHRtbCBiL0FQSUNoYW5nZVJlcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMjIwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9BUElDaGFuZ2VSZXBvcnQuaHRtbApAQCAtMCwwICsxLDYzMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPklDVTRKIEFQSSBDb21wYXJpc29uOiBJQ1U0SiAzLjQgd2l0aCBJQ1U0SiAzLjY8L3RpdGxlPgorPCEtLSBDb3B5cmlnaHQgMjAwNiwgSUJNLCBBbGwgUmlnaHRzIFJlc2VydmVkLiAtLT4KKzwvaGVhZD4KKzxib2R5PgorPGgxPklDVTRKIEFQSSBDb21wYXJpc29uOiBJQ1U0SiAzLjQgd2l0aCBJQ1U0SiAzLjY8L2gxPgorCis8aHIvPgorPGgyPlJlbW92ZWQgZnJvbSBJQ1U0SiAzLjQ8L2gyPgorCis8aDM+UGFja2FnZSBjb20uaWJtLmljdS51dGlsPC9oMz4KKzx1bD4KK1VSZXNvdXJjZUJ1bmRsZQorPHVsPgorPGxpPihkcmFmdCkgICAgICBwcm90ZWN0ZWQgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSA8aT5pbnN0YW50aWF0ZUlDVVJlc291cmNlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIpPC9saT4KKzwvdWw+Cis8L3VsPgorCisKKzxoci8+Cis8aDI+V2l0aGRyYXduLCBEZXByZWNhdGVkLCBvciBPYnNvbGV0ZWQgaW4gSUNVNEogMy42PC9oMj4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UubGFuZzwvaDM+Cis8dWw+CitVQ2hhcmFjdGVyCis8dWw+Cis8bGk+KGRlcHJlY2F0ZWQpIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiA8aT5pc0phdmFMZXR0ZXI8L2k+KGludCk8L2xpPgorPGxpPihkZXByZWNhdGVkKSBwdWJsaWMgc3RhdGljIGJvb2xlYW4gPGk+aXNKYXZhTGV0dGVyT3JEaWdpdDwvaT4oaW50KTwvbGk+Cis8bGk+KGRlcHJlY2F0ZWQpIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiA8aT5pc1NwYWNlPC9pPihpbnQpPC9saT4KKzwvdWw+Cis8L3VsPgorCis8aDM+UGFja2FnZSBjb20uaWJtLmljdS50ZXh0PC9oMz4KKzx1bD4KK051bWJlckZvcm1hdAorPHVsPgorPGxpPihkZXByZWNhdGVkKSBwcm90ZWN0ZWQgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0UGF0dGVybjwvaT4oamF2YS51dGlsLkxvY2FsZSwgaW50KTwvbGk+Cis8L3VsPgorUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgPGk+Z2V0SW5zdGFuY2VGcm9tQ29tcGlsZWRSdWxlczwvaT4oamF2YS5pby5JbnB1dFN0cmVhbSk8L2xpPgorPC91bD4KKzwvdWw+CisKKworPGhyLz4KKzxoMj5DaGFuZ2VkIGluIElDVTRKIDMuNiAob2xkLCBuZXcpPC9oMj4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UudGV4dDwvaDM+Cis8dWw+Cis8bGk+ICAgIChzdGFibGUpICAgICBwdWJsaWMgY2xhc3MgPGk+RGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcjwvaT4gZXh0ZW5kcyBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkPC9icj4KKyhzdGFibGUpICAgICBwdWJsaWMgY2xhc3MgPGk+RGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcjwvaT4gZXh0ZW5kcyBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I8L2xpPgorPGxpPiAgICAoc3RhYmxlKSAgICAgcHVibGljIGNsYXNzIDxpPlVuaWNvZGVTZXQ8L2k+IGV4dGVuZHMgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlRmlsdGVyPC9icj4KKyhzdGFibGUpICAgICBwdWJsaWMgY2xhc3MgPGk+VW5pY29kZVNldDwvaT4gZXh0ZW5kcyBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVGaWx0ZXIgaW1wbGVtZW50cyBjb20uaWJtLmljdS51dGlsLkZyZWV6YWJsZTwvbGk+Cis8L3VsPgorCisKKzxoci8+Cis8aDI+UHJvbW90ZWQgdG8gc3RhYmxlIGluIElDVTRKIDMuNjwvaDI+CisKKzxoMz5QYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc8L2gzPgorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgY2xhc3MgPGk+VUNoYXJhY3RlckVudW1zPC9pPjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIDxpPlVDaGFyYWN0ZXJFbnVtcy5FQ2hhcmFjdGVyQ2F0ZWdvcnk8L2k+PC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgPGk+VUNoYXJhY3RlckVudW1zLkVDaGFyYWN0ZXJEaXJlY3Rpb248L2k+PC9saT4KK1VDaGFyYWN0ZXIKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0NPREVfUE9JTlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUFYX0hJR0hfU1VSUk9HQVRFPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1BWF9MT1dfU1VSUk9HQVRFPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1BWF9TVVJST0dBVEU8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fQ09ERV9QT0lOVDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNSU5fSElHSF9TVVJST0dBVEU8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUlOX0xPV19TVVJST0dBVEU8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1JTl9TVVJST0dBVEU8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGludCA8aT5jaGFyQ291bnQ8L2k+KGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCA8aT5jb2RlUG9pbnRBdDwvaT4oY2hhcltdLCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+Y29kZVBvaW50QXQ8L2k+KGNoYXJbXSwgaW50LCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+Y29kZVBvaW50QXQ8L2k+KGphdmEubGFuZy5DaGFyU2VxdWVuY2UsIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCA8aT5jb2RlUG9pbnRCZWZvcmU8L2k+KGNoYXJbXSwgaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxpPmNvZGVQb2ludEJlZm9yZTwvaT4oY2hhcltdLCBpbnQsIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCA8aT5jb2RlUG9pbnRCZWZvcmU8L2k+KGphdmEubGFuZy5DaGFyU2VxdWVuY2UsIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGludCA8aT5jb2RlUG9pbnRDb3VudDwvaT4oY2hhcltdLCBpbnQsIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGludCA8aT5jb2RlUG9pbnRDb3VudDwvaT4oamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSwgaW50LCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBjaGFyIDxpPmZvckRpZ2l0PC9pPihpbnQsIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGJ5dGUgPGk+Z2V0RGlyZWN0aW9uYWxpdHk8L2k+KGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gPGk+aXNIaWdoU3Vycm9nYXRlPC9pPihjaGFyKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiA8aT5pc0xvd1N1cnJvZ2F0ZTwvaT4oY2hhcik8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gPGk+aXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50PC9pPihpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIDxpPmlzU3Vycm9nYXRlUGFpcjwvaT4oY2hhciwgY2hhcik8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gPGk+aXNWYWxpZENvZGVQb2ludDwvaT4oaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgaW50IDxpPm9mZnNldEJ5Q29kZVBvaW50czwvaT4oY2hhcltdLCBpbnQsIGludCwgaW50LCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBpbnQgPGk+b2Zmc2V0QnlDb2RlUG9pbnRzPC9pPihqYXZhLmxhbmcuQ2hhclNlcXVlbmNlLCBpbnQsIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXJbXSA8aT50b0NoYXJzPC9pPihpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+dG9DaGFyczwvaT4oaW50LCBjaGFyW10sIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCA8aT50b0NvZGVQb2ludDwvaT4oY2hhciwgY2hhcik8L2xpPgorPC91bD4KK1VDaGFyYWN0ZXIuTGluZUJyZWFrCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOU0VQQVJBQkxFPC9saT4KKzwvdWw+CitVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jaworPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrIENZUklMTElDX1NVUFBMRU1FTlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDWVJJTExJQ19TVVBQTEVNRU5UX0lEPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayA8aT5mb3JOYW1lPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8L3VsPgorVVByb3BlcnR5Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GQ19JTkVSVDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GQ19RVUlDS19DSEVDSzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GRF9JTkVSVDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GRF9RVUlDS19DSEVDSzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GS0NfSU5FUlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktDX1FVSUNLX0NIRUNLPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZLRF9JTkVSVDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GS0RfUVVJQ0tfQ0hFQ0s8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUdNRU5UX1NUQVJURVI8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTX1RFUk08L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFSSUFUSU9OX1NFTEVDVE9SPC9saT4KKzwvdWw+CitVU2NyaXB0Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBVEFLQU5BX09SX0hJUkFHQU5BPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnRbXSA8aT5nZXRDb2RlPC9pPihVTG9jYWxlKTwvbGk+Cis8L3VsPgorPC91bD4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UudGV4dDwvaDM+Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8aT5NZWFzdXJlRm9ybWF0PC9pPjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBjbGFzcyA8aT5NZXNzYWdlRm9ybWF0PC9pPjwvbGk+CitDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHJvdGVjdGVkIHZvaWQgPGk+aW5pdGlhbGl6ZURhdGE8L2k+KFVMb2NhbGUsIENhbGVuZGFyRGF0YSk8L2xpPgorPC91bD4KK0NvbGxhdG9yCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIDxpPmdldEF2YWlsYWJsZVVMb2NhbGVzPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIDxpPmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50PC9pPihqYXZhLmxhbmcuU3RyaW5nLCBVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSA8aT5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudDwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSwgYm9vbGVhbltdKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgPGk+Z2V0SW5zdGFuY2U8L2k+KFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nW10gPGk+Z2V0S2V5d29yZFZhbHVlczwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmdbXSA8aT5nZXRLZXl3b3JkczwvaT4oKTwvbGk+Cis8L3VsPgorRGF0ZUZvcm1hdAorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1dfTE9DQUxfRklFTEQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9ZRUFSX0ZJRUxEPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRklFTERfQ09VTlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTElBTl9EQVlfRklFTEQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSUxMSVNFQ09ORFNfSU5fREFZX0ZJRUxEPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElNRVpPTkVfUkZDX0ZJRUxEPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUVBUl9XT1lfRklFTEQ8L2xpPgorPC91bD4KK0RhdGVGb3JtYXRTeW1ib2xzCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHByb3RlY3RlZCB2b2lkIDxpPmluaXRpYWxpemVEYXRhPC9pPihVTG9jYWxlLCBDYWxlbmRhckRhdGEpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHJvdGVjdGVkIHZvaWQgPGk+aW5pdGlhbGl6ZURhdGE8L2k+KFVMb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzwvdWw+CitEZWNpbWFsRm9ybWF0Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBib29sZWFuIDxpPmFyZVNpZ25pZmljYW50RGlnaXRzVXNlZDwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBpbnQgPGk+Z2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGludCA8aT5nZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHM8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgdm9pZCA8aT5zZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM8L2k+KGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgdm9pZCA8aT5zZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHM8L2k+KGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgdm9pZCA8aT5zZXRTaWduaWZpY2FudERpZ2l0c1VzZWQ8L2k+KGJvb2xlYW4pPC9saT4KKzwvdWw+CitEZWNpbWFsRm9ybWF0U3ltYm9scworPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgY2hhciA8aT5nZXRTaWduaWZpY2FudERpZ2l0PC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHZvaWQgPGk+c2V0U2lnbmlmaWNhbnREaWdpdDwvaT4oY2hhcik8L2xpPgorPC91bD4KK051bWJlckZvcm1hdAorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8aT5mb3JtYXQ8L2k+KEN1cnJlbmN5QW1vdW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIDxpPmZvcm1hdDwvaT4oQ3VycmVuY3lBbW91bnQsIGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uKTwvbGk+Cis8L3VsPgorUnVsZUJhc2VkTnVtYmVyRm9ybWF0Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERlZmF1bHRSdWxlU2V0TmFtZTwvaT4oKTwvbGk+Cis8L3VsPgorVHJhbnNsaXRlcmF0b3IKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yW10gPGk+Z2V0RWxlbWVudHM8L2k+KCk8L2xpPgorPC91bD4KK1VURjE2Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciA8aT5hcHBlbmRDb2RlUG9pbnQ8L2k+KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+bmV3U3RyaW5nPC9pPihpbnRbXSwgaW50LCBpbnQpPC9saT4KKzwvdWw+Cis8L3VsPgorCis8aDM+UGFja2FnZSBjb20uaWJtLmljdS51dGlsPC9oMz4KKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGNsYXNzIDxpPkN1cnJlbmN5QW1vdW50PC9pPjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8aT5NZWFzdXJlPC9pPjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8aT5NZWFzdXJlVW5pdDwvaT48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgPGk+VVJlc291cmNlQnVuZGxlPC9pPjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBjbGFzcyA8aT5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb248L2k+PC9saT4KK0xvY2FsZURhdGEKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IDxpPmdldEV4ZW1wbGFyU2V0PC9pPihVTG9jYWxlLCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVEYXRhLk1lYXN1cmVtZW50U3lzdGVtIDxpPmdldE1lYXN1cmVtZW50U3lzdGVtPC9pPihVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlRGF0YS5QYXBlclNpemUgPGk+Z2V0UGFwZXJTaXplPC9pPihVTG9jYWxlKTwvbGk+Cis8L3VsPgorVUxvY2FsZQorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0FOQURBPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENBTkFEQV9GUkVOQ0g8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0hJTkE8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0hJTkVTRTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBFTkdMSVNIPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEZSQU5DRTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBGUkVOQ0g8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgR0VSTUFOPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEdFUk1BTlk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSVRBTElBTjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBJVEFMWTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBKQVBBTjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBKQVBBTkVTRTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBLT1JFQTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBLT1JFQU48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgUFJDPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFNJTVBMSUZJRURfQ0hJTkVTRTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBUQUlXQU48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVFJBRElUSU9OQUxfQ0hJTkVTRTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBVSzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBVUzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyA8aT5VTG9jYWxlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyA8aT5VTG9jYWxlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5jYW5vbmljYWxpemU8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5PYmplY3QgPGk+Y2xvbmU8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgPGk+Y3JlYXRlQ2Fub25pY2FsPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBib29sZWFuIDxpPmVxdWFsczwvaT4oamF2YS5sYW5nLk9iamVjdCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgPGk+Zm9yTG9jYWxlPC9pPihqYXZhLnV0aWwuTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIDxpPmdldEF2YWlsYWJsZUxvY2FsZXM8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRCYXNlTmFtZTwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRCYXNlTmFtZTwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRDb3VudHJ5PC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldENvdW50cnk8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUNvdW50cnk8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5Q291bnRyeTwvaT4oVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUNvdW50cnk8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlDb3VudHJ5PC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5S2V5d29yZDwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUtleXdvcmQ8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlLZXl3b3JkPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlLZXl3b3JkVmFsdWU8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUtleXdvcmRWYWx1ZTwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUtleXdvcmRWYWx1ZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUtleXdvcmRWYWx1ZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5TGFuZ3VhZ2U8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5TGFuZ3VhZ2U8L2k+KFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlMYW5ndWFnZTwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUxhbmd1YWdlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlOYW1lPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheU5hbWU8L2k+KFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlOYW1lPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5TmFtZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5U2NyaXB0PC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheVNjcmlwdDwvaT4oVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheVNjcmlwdDwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheVNjcmlwdDwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5VmFyaWFudDwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlWYXJpYW50PC9pPihVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5VmFyaWFudDwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheVZhcmlhbnQ8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIFVMb2NhbGUgPGk+Z2V0RmFsbGJhY2s8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RmFsbGJhY2s8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0SVNPM0NvdW50cnk8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0SVNPM0NvdW50cnk8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0SVNPM0xhbmd1YWdlPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldElTTzNMYW5ndWFnZTwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmdbXSA8aT5nZXRJU09Db3VudHJpZXM8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmdbXSA8aT5nZXRJU09MYW5ndWFnZXM8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRLZXl3b3JkVmFsdWU8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldEtleXdvcmRWYWx1ZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS51dGlsLkl0ZXJhdG9yIDxpPmdldEtleXdvcmRzPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPGk+Z2V0S2V5d29yZHM8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0TGFuZ3VhZ2U8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0TGFuZ3VhZ2U8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0TmFtZTwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXROYW1lPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFNjcmlwdDwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRTY3JpcHQ8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0VmFyaWFudDwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRWYXJpYW50PC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBpbnQgPGk+aGFzaENvZGU8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCB2b2lkIDxpPnNldERlZmF1bHQ8L2k+KFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIFVMb2NhbGUgPGk+c2V0S2V5d29yZFZhbHVlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5zZXRLZXl3b3JkVmFsdWU8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+dG9TdHJpbmc8L2k+KCk8L2xpPgorPC91bD4KKzwvdWw+CisKKworPGhyLz4KKzxoMj5BZGRlZCBpbiBJQ1U0SiAzLjY8L2gyPgorCis8aDM+UGFja2FnZSBjb20uaWJtLmljdS5sYW5nPC9oMz4KKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGZpbmFsIGNsYXNzIDxpPlVTY3JpcHRSdW48L2k+PC9saT4KK1VDaGFyYWN0ZXIKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldE5hbWU8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFN0cmluZ1Byb3BlcnR5VmFsdWU8L2k+KGludCwgaW50LCBpbnQpPC9saT4KKzwvdWw+CitVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jaworPHVsPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrIEJBTElORVNFPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFMSU5FU0VfSUQ8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrIENPVU5USU5HX1JPRF9OVU1FUkFMUzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5USU5HX1JPRF9OVU1FUkFMU19JRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgQ1VORUlGT1JNPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VORUlGT1JNX0lEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBDVU5FSUZPUk1fTlVNQkVSU19BTkRfUFVOQ1RVQVRJT048L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVU5FSUZPUk1fTlVNQkVSU19BTkRfUFVOQ1RVQVRJT05fSUQ8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrIExBVElOX0VYVEVOREVEX0M8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9FWFRFTkRFRF9DX0lEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBMQVRJTl9FWFRFTkRFRF9EPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRVhURU5ERURfRF9JRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgTktPPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTktPX0lEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBQSEFHU19QQTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIQUdTX1BBX0lEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBQSE9FTklDSUFOPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhPRU5JQ0lBTl9JRDwvbGk+Cis8L3VsPgorVVNjcmlwdAorPHVsPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQUxJTkVTRTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBVEFLPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkxJU1NZTUJPTFM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkFITUk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSEFNPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0lSVEg8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVU5FSUZPUk08L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERU1PVElDX0VHWVBUSUFOPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUFTVEVSTl9TWVJJQUM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFR1lQVElBTl9ISUVST0dMWVBIUzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVTVFJBTkdFTE9fU1lSSUFDPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFSQVBQQU5fSU5EVVM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBISUVSQVRJQ19FR1lQVElBTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBVkFORVNFPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FZQUhfTEk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSFVUU1VSSTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOX0ZSQUtUVVI8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9HQUVMSUM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVBDSEE8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FQVJfQTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BTkRBRUFOPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFZQU5fSElFUk9HTFlQSFM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVJPSVRJQzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5LTzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRF9DSFVSQ0hfU0xBVk9OSUNfQ1lSSUxMSUM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfSFVOR0FSSUFOPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX1BFUk1JQzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9SS0hPTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBSEFXSF9ITU9ORzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIQUdTX1BBPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhPRU5JQ0lBTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIT05FVElDX1BPTExBUkQ8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST05HT1JPTkdPPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0FSQVRJPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExJRklFRF9IQU48L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURU5HV0FSPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBRElUSU9OQUxfSEFOPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOV1JJVFRFTl9MQU5HVUFHRVM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWSVNJQkxFX1NQRUVDSDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFU1RFUk5fU1lSSUFDPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+Z2V0Q29kZUZyb21OYW1lPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8L3VsPgorPC91bD4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UudGV4dDwvaDM+Cis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBjbGFzcyA8aT5CcmVha0RpY3Rpb25hcnk8L2k+PC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGNsYXNzIDxpPkRhdGVUaW1lUGF0dGVybkdlbmVyYXRvcjwvaT48L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGNsYXNzIDxpPkRhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5Gb3JtYXRQYXJzZXI8L2k+PC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyA8aT5EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuUGF0dGVybkluZm88L2k+PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBjbGFzcyA8aT5EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuVmFyaWFibGVGaWVsZDwvaT48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGNsYXNzIDxpPk51bWJlckZvcm1hdC5GaWVsZDwvaT48L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgY2xhc3MgPGk+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2k+PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyA8aT5Vbmljb2RlU2V0LlhTeW1ib2xUYWJsZTwvaT48L2xpPgorQXJhYmljU2hhcGluZ0V4Y2VwdGlvbgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgPGk+QXJhYmljU2hhcGluZ0V4Y2VwdGlvbjwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPC91bD4KK0JyZWFrSXRlcmF0b3IKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIDxpPmdldEJyZWFrSW5zdGFuY2U8L2k+KFVMb2NhbGUsIGludCk8L2xpPgorPC91bD4KK0Nhbm9uaWNhbEl0ZXJhdG9yCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgdm9pZCA8aT5wZXJtdXRlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuLCBqYXZhLnV0aWwuU2V0KTwvbGk+Cis8L3VsPgorQ2hpbmVzZURhdGVGb3JtYXQKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIHZvaWQgPGk+c3ViRm9ybWF0PC9pPihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBjaGFyLCBpbnQsIGludCwgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24sIENhbGVuZGFyKTwvbGk+Cis8L3VsPgorRGF0ZUZvcm1hdAorPHVsPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVUFSVEVSX0ZJRUxEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RBTkRBTE9ORV9RVUFSVEVSX0ZJRUxEPC9saT4KKzwvdWw+CitEYXRlRm9ybWF0U3ltYm9scworPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGludCBEVF9DT05URVhUX0NPVU5UPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRFRfV0lEVEhfQ09VTlQ8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIDxpPmdldFF1YXJ0ZXJzPC9pPihpbnQsIGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgdm9pZCA8aT5zZXRFcmFOYW1lczwvaT4oamF2YS5sYW5nLlN0cmluZ1tdKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyB2b2lkIDxpPnNldE1vbnRoczwvaT4oamF2YS5sYW5nLlN0cmluZ1tdLCBpbnQsIGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgdm9pZCA8aT5zZXRRdWFydGVyczwvaT4oamF2YS5sYW5nLlN0cmluZ1tdLCBpbnQsIGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgdm9pZCA8aT5zZXRXZWVrZGF5czwvaT4oamF2YS5sYW5nLlN0cmluZ1tdLCBpbnQsIGludCk8L2xpPgorPC91bD4KK0RlY2ltYWxGb3JtYXQKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEudGV4dC5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IgPGk+Zm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcjwvaT4oamF2YS5sYW5nLk9iamVjdCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgQ3VycmVuY3kgPGk+Z2V0RWZmZWN0aXZlQ3VycmVuY3k8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgYm9vbGVhbiA8aT5pc1BhcnNlQmlnRGVjaW1hbDwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyB2b2lkIDxpPnNldFBhcnNlQmlnRGVjaW1hbDwvaT4oYm9vbGVhbik8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgdm9pZCA8aT5zZXRSb3VuZGluZ0luY3JlbWVudDwvaT4oQmlnRGVjaW1hbCk8L2xpPgorPC91bD4KK0RlY2ltYWxGb3JtYXRTeW1ib2xzCis8dWw+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBjaGFyIDxpPmdldE1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3I8L2k+KCk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgdm9pZCA8aT5zZXRNb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yPC9pPihjaGFyKTwvbGk+Cis8L3VsPgorRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgPGk+RGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcjwvaT4oamF2YS5pby5JbnB1dFN0cmVhbSwgamF2YS5pby5JbnB1dFN0cmVhbSk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgaW50IDxpPmdldFJ1bGVTdGF0dXM8L2k+KCk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgaW50IDxpPmdldFJ1bGVTdGF0dXNWZWM8L2k+KGludFtdKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBpbnQgPGk+aGFuZGxlTmV4dDwvaT4oKTwvbGk+Cis8L3VsPgorTWVhc3VyZUZvcm1hdAorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgPGk+TWVhc3VyZUZvcm1hdDwvaT4oKTwvbGk+Cis8L3VsPgorTm9ybWFsaXplcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGludCA8aT5nZXRGQ19ORktDX0Nsb3N1cmU8L2k+KGludCwgY2hhcltdKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRGQ19ORktDX0Nsb3N1cmU8L2k+KGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGJvb2xlYW4gPGk+aXNORlNraXBwYWJsZTwvaT4oaW50LCBOb3JtYWxpemVyLk1vZGUpPC9saT4KKzwvdWw+CitOdW1iZXJGb3JtYXQKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIEN1cnJlbmN5IDxpPmdldEVmZmVjdGl2ZUN1cnJlbmN5PC9pPigpPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGJvb2xlYW4gPGk+aXNQYXJzZVN0cmljdDwvaT4oKTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyB2b2lkIDxpPnNldFBhcnNlU3RyaWN0PC9pPihib29sZWFuKTwvbGk+Cis8L3VsPgorUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgZkRlYnVnRW52PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIGludCBmRGljdGlvbmFyeUNoYXJDb3VudDwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBSQkJJRGF0YVdyYXBwZXIgZlJEYXRhPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBib29sZWFuIGZUcmFjZTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyA8aT5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCB2b2lkIDxpPmNoZWNrT2Zmc2V0PC9pPihpbnQsIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcik8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgdm9pZCA8aT5kdW1wPC9pPigpPC9saT4KKzwvdWw+CitTaW1wbGVEYXRlRm9ybWF0Cis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyA8aT5TaW1wbGVEYXRlRm9ybWF0PC9pPihqYXZhLmxhbmcuU3RyaW5nLCBEYXRlRm9ybWF0U3ltYm9scywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwcm90ZWN0ZWQgaW50IDxpPm1hdGNoUXVhcnRlclN0cmluZzwvaT4oamF2YS5sYW5nLlN0cmluZywgaW50LCBpbnQsIGphdmEubGFuZy5TdHJpbmdbXSwgQ2FsZW5kYXIpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHZvaWQgPGk+c2V0TnVtYmVyRm9ybWF0PC9pPihOdW1iZXJGb3JtYXQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIHZvaWQgPGk+c3ViRm9ybWF0PC9pPihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBjaGFyLCBpbnQsIGludCwgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24sIENhbGVuZGFyKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCB2b2lkIDxpPnplcm9QYWRkaW5nTnVtYmVyPC9pPihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBpbnQsIGludCwgaW50KTwvbGk+Cis8L3VsPgorVHJhbnNsaXRlcmF0b3IKKzx1bD4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyB2b2lkIDxpPnJlZ2lzdGVyQWxpYXM8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzwvdWw+CitVVEYxNgorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGludCA8aT5jaGFyQXQ8L2k+KGphdmEubGFuZy5DaGFyU2VxdWVuY2UsIGludCk8L2xpPgorPC91bD4KK1VuaWNvZGVGaWx0ZXIKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIDxpPlVuaWNvZGVGaWx0ZXI8L2k+KCk8L2xpPgorPC91bD4KK1VuaWNvZGVTZXQKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FTRTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElHTk9SRV9TUEFDRTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyA8aT5Vbmljb2RlU2V0PC9pPihqYXZhLmxhbmcuU3RyaW5nLCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgPGk+X2dlbmVyYXRlUGF0dGVybjwvaT4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgYm9vbGVhbiwgYm9vbGVhbik8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgVW5pY29kZVNldCA8aT5hcHBseVBhdHRlcm48L2k+KGphdmEubGFuZy5TdHJpbmcsIGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8aT5jbG9uZUFzVGhhd2VkPC9pPigpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIFVuaWNvZGVTZXQgPGk+Y2xvc2VPdmVyPC9pPihpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5PYmplY3QgPGk+ZnJlZXplPC9pPigpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0UmVnZXhFcXVpdmFsZW50PC9pPigpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGJvb2xlYW4gPGk+aXNGcm96ZW48L2k+KCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgaW50IDxpPm1hdGNoZXNBdDwvaT4oamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSwgaW50KTwvbGk+Cis8L3VsPgorVW5pY29kZVNldEl0ZXJhdG9yCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBpbnQgZW5kRWxlbWVudDwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBpbnQgbmV4dEVsZW1lbnQ8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRTdHJpbmc8L2k+KCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgdm9pZCA8aT5sb2FkUmFuZ2U8L2k+KGludCk8L2xpPgorPC91bD4KKzwvdWw+CisKKzxoMz5QYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw8L2gzPgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgZmluYWwgY2xhc3MgPGk+Q29tcGFjdEJ5dGVBcnJheTwvaT48L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgZmluYWwgY2xhc3MgPGk+Q29tcGFjdENoYXJBcnJheTwvaT48L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgaW50ZXJmYWNlIDxpPkZyZWV6YWJsZTwvaT48L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgY2xhc3MgPGk+R2xvYmFsaXphdGlvblByZWZlcmVuY2VzPC9pPjwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBjbGFzcyA8aT5PdmVybGF5QnVuZGxlPC9pPjwvbGk+CitCdWRkaGlzdENhbGVuZGFyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFR5cGU8L2k+KCk8L2xpPgorPC91bD4KK0NhbGVuZGFyCis8dWw+Cis8bGk+KGRyYWZ0KSAgICAgIHByb3RlY3RlZCBpbnQgPGk+Z2V0RGVmYXVsdERheUluTW9udGg8L2k+KGludCwgaW50KTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHByb3RlY3RlZCBpbnQgPGk+Z2V0RGVmYXVsdE1vbnRoSW5ZZWFyPC9pPihpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0VHlwZTwvaT4oKTwvbGk+Cis8L3VsPgorQ2FzZUluc2Vuc2l0aXZlU3RyaW5nCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPnRvU3RyaW5nPC9pPigpPC9saT4KKzwvdWw+CitDaGluZXNlQ2FsZW5kYXIKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0VHlwZTwvaT4oKTwvbGk+Cis8L3VsPgorQ29wdGljQ2FsZW5kYXIKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBqYXZhLmxhbmcuSW50ZWdlcltdIDxpPmdldERhdGVGcm9tSkQ8L2k+KGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRUeXBlPC9pPigpPC9saT4KKzwvdWw+CitDdXJyZW5jeQorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+cGFyc2U8L2k+KFVMb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudGV4dC5QYXJzZVBvc2l0aW9uKTwvbGk+Cis8L3VsPgorRXRoaW9waWNDYWxlbmRhcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGphdmEubGFuZy5JbnRlZ2VyW10gPGk+Z2V0RGF0ZUZyb21KRDwvaT4oaW50KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFR5cGU8L2k+KCk8L2xpPgorPC91bD4KK0dyZWdvcmlhbkNhbGVuZGFyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFR5cGU8L2k+KCk8L2xpPgorPC91bD4KK0hlYnJld0NhbGVuZGFyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFR5cGU8L2k+KCk8L2xpPgorPC91bD4KK0lzbGFtaWNDYWxlbmRhcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRUeXBlPC9pPigpPC9saT4KKzwvdWw+CitKYXBhbmVzZUNhbGVuZGFyCis8dWw+Cis8bGk+KGRyYWZ0KSAgICAgIHByb3RlY3RlZCBpbnQgPGk+Z2V0RGVmYXVsdERheUluTW9udGg8L2k+KGludCwgaW50KTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHByb3RlY3RlZCBpbnQgPGk+Z2V0RGVmYXVsdE1vbnRoSW5ZZWFyPC9pPihpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0VHlwZTwvaT4oKTwvbGk+Cis8L3VsPgorTWVhc3VyZVVuaXQKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIDxpPk1lYXN1cmVVbml0PC9pPigpPC9saT4KKzwvdWw+CitTaW1wbGVUaW1lWm9uZQorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgPGk+U2ltcGxlVGltZVpvbmU8L2k+KGludCwgamF2YS5sYW5nLlN0cmluZywgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIDxpPlNpbXBsZVRpbWVab25lPC9pPihqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGphdmEubGFuZy5PYmplY3QgPGk+Y2xvbmU8L2k+KCk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgYm9vbGVhbiA8aT5lcXVhbHM8L2k+KGphdmEubGFuZy5PYmplY3QpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGludCA8aT5nZXRPZmZzZXQ8L2k+KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGludCA8aT5nZXRPZmZzZXQ8L2k+KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgaW50IDxpPmdldFJhd09mZnNldDwvaT4oKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBib29sZWFuIDxpPmhhc1NhbWVSdWxlczwvaT4oVGltZVpvbmUpPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGludCA8aT5oYXNoQ29kZTwvaT4oKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBib29sZWFuIDxpPmluRGF5bGlnaHRUaW1lPC9pPihqYXZhLnV0aWwuRGF0ZSk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT50b1N0cmluZzwvaT4oKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBib29sZWFuIDxpPnVzZURheWxpZ2h0VGltZTwvaT4oKTwvbGk+Cis8L3VsPgorU3RyaW5nVG9rZW5pemVyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyA8aT5TdHJpbmdUb2tlbml6ZXI8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVuaWNvZGVTZXQsIGJvb2xlYW4sIGJvb2xlYW4pPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIDxpPlN0cmluZ1Rva2VuaXplcjwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbiwgYm9vbGVhbik8L2xpPgorPC91bD4KK1RpbWVab25lCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1JTExJU19QRVJfREFZPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUlMTElTX1BFUl9IT1VSPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGJvb2xlYW4gPGk+ZXF1YWxzPC9pPihqYXZhLmxhbmcuT2JqZWN0KTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBpbnQgPGk+aGFzaENvZGU8L2k+KCk8L2xpPgorPC91bD4KK1VSZXNvdXJjZUJ1bmRsZQorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgc3RhdGljIHN5bmNocm9uaXplZCB2b2lkIDxpPmFkZFRvQ2FjaGU8L2k+KGphdmEubGFuZy5DbGFzc0xvYWRlciwgamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSwgVVJlc291cmNlQnVuZGxlKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIDxpPmdldEJ1bmRsZUluc3RhbmNlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBVTG9jYWxlLCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgPGk+Z2V0QnVuZGxlSW5zdGFuY2U8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5DbGFzc0xvYWRlcik8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgc3RhdGljIHN5bmNocm9uaXplZCBVUmVzb3VyY2VCdW5kbGUgPGk+bG9hZEZyb21DYWNoZTwvaT4oamF2YS5sYW5nLkNsYXNzTG9hZGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBVTG9jYWxlKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIDxpPnNldExvYWRpbmdTdGF0dXM8L2k+KGludCk8L2xpPgorPC91bD4KK1VuaXZlcnNhbFRpbWVTY2FsZQorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUE9DSF9PRkZTRVRfTUlOVVNfMV9WQUxVRTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9ST1VORF9WQUxVRTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9TQ0FMRV9WQUxVRTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTl9ST1VORF9WQUxVRTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSVRTX1JPVU5EX1ZBTFVFPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBCaWdEZWNpbWFsIDxpPnRvQmlnRGVjaW1hbFRydW5jPC9pPihCaWdEZWNpbWFsLCBpbnQpPC9saT4KKzwvdWw+CitWZXJzaW9uSW5mbworPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgSUNVX0RBVEFfVkVSU0lPTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV81XzA8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIDxpPmphdmFWZXJzaW9uPC9pPigpPC9saT4KKzwvdWw+Cis8L3VsPgorCis8aHIvPgorPHA+PGk+PGZvbnQgc2l6ZT0iLTEiPkNvbnRlbnRzIGdlbmVyYXRlZCBieSBSZXBvcnRBUEkgdG9vbCBvbiBNb24gU2VwIDE4IDE4OjA3OjI3IEVEVCAyMDA2PGJyLz5Db3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24sIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9mb250PjwvaT48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9idWlsZC5wcm9wZXJ0aWVzIGIvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjgyZjdlCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDE0IEBACisjKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisjKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqIFRoaXMgaXMgdGhlIHByb3BlcnRpZXMgZmlsZSBmb3IgSUNVNEogYnVpbGRzLiAKKyMqCitpY3U0ai52ZXJzaW9uLnN0cmluZz0zLjYKK2ljdTRqLnZlcnNpb24ubnVtYmVyPTM2CitjdXJyZW50LnllYXI9MjAwNgoraWN1NGoucHJldmlvdXMudmVyc2lvbi5udW1iZXI9MzQKK2FwaS5yZXBvcnQub3V0PSR7YXBpLmRpcn0vaWN1NGpfY29tcGFyZV8ke2ljdTRqLnByZXZpb3VzLnZlcnNpb24ubnVtYmVyfV8ke2ljdTRqLnZlcnNpb24ubnVtYmVyfS5odG1sCitjb3B5cmlnaHQ9Q29weXJpZ2h0IChjKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitjb3JwPUlCTSBDb3Jwb3JhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1aWxkLnhtbCBiL2J1aWxkLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODlkYmVhCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQueG1sCkBAIC0wLDAgKzEsMjQ1NSBAQAorPCEtLQorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGhpcyBpcyB0aGUgYW50IGJ1aWxkIGZpbGUgZm9yIElDVTRKLiAgU2VlIHJlYWRtZS5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLgorKi8KKy0tPgorCis8cHJvamVjdCBuYW1lPSJJQ1U0SiIgZGVmYXVsdD0iY29yZSIgYmFzZWRpcj0iLiI+CisKKyAgICA8IS0tICMjIyBCZWdpbiBDbG92ZXIgMS4yIHNldHVwICMjIyAtLT4KKyAgICA8dHlwZWRlZiByZXNvdXJjZT0iY2xvdmVydHlwZXMiLz4KKyAgICA8dGFza2RlZiByZXNvdXJjZT0iY2xvdmVydGFza3MiLz4KKworICAgIDx0YXJnZXQgbmFtZT0id2l0aC5jbG92ZXIiPgorICAgICAgICA8bWtkaXIgZGlyPSJ0bXAvIi8+CisgICAgICAgIDxjbG92ZXItc2V0dXAgaW5pdFN0cmluZz0idG1wL2ljdTRqLmRiIj4KKyAgICAgICAgICAgIDxmaWxlcz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9kZXYvKiovKi5qYXZhIi8+CisgICAgICAgICAgICAgPC9maWxlcz4KKyAgICAgICAgICAgICA8bWV0aG9kQ29udGV4dCBuYW1lPSJBUEkiIHJlZ2V4cD0iKC4qICk/cHVibGljIC4qIi8+CisgICAgICAgIDwvY2xvdmVyLXNldHVwPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjbG92ZXIuc3VtbWFyeSIgZGVwZW5kcz0id2l0aC5jbG92ZXIiPgorICAgICAgICA8Y2xvdmVyLXJlcG9ydCA+CisgICAgICAgICAgICA8Y3VycmVudCBvdXRmaWxlPSJpY3U0al9odG1sIiBzdW1tYXJ5PSJ0cnVlIj4KKyAgICAgICAgICAgICAgICA8Zm9ybWF0IHR5cGU9Imh0bWwiIHNyY0xldmVsPSJmYWxzZSIvPgorICAgICAgICAgICAgPC9jdXJyZW50PgorICAgICAgICA8L2Nsb3Zlci1yZXBvcnQ+CisgICAgPC90YXJnZXQ+CisgICA8dGFyZ2V0IG5hbWU9ImNsb3Zlci5yZXBvcnQiIGRlcGVuZHM9IndpdGguY2xvdmVyIj4KKyAgICAgICAgPGNsb3Zlci1yZXBvcnQgPgorICAgICAgICAgICAgPGN1cnJlbnQgb3V0ZmlsZT0iaWN1NGpfaHRtbCI+CisgICAgICAgICAgICAgICAgPGZvcm1hdCB0eXBlPSJodG1sIi8+CisgICAgICAgICAgICA8L2N1cnJlbnQ+CisgICAgICAgIDwvY2xvdmVyLXJlcG9ydD4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImNsb3Zlci5sb2ciIGRlcGVuZHM9IndpdGguY2xvdmVyIj4KKyAgICAgICAgPGNsb3Zlci1sb2cgbGV2ZWw9Im1ldGhvZCIgZmlsdGVyPSJwcml2YXRlIj4KKyAgICAgICAgICAgICA8cGFja2FnZSBuYW1lPSJjb20uaWJtLmljdS50ZXh0Ii8+CisgICAgICAgICAgICAgPHBhY2thZ2UgbmFtZT0iY29tLmlibS5pY3UubGFuZyIvPgorICAgICAgICAgICAgIDxwYWNrYWdlIG5hbWU9ImNvbS5pYm0uaWN1Lm1hdGgiLz4KKyAgICAgICAgICAgICA8cGFja2FnZSBuYW1lPSJjb20uaWJtLmljdS51dGlsIi8+CisgICAgICAgIDwvY2xvdmVyLWxvZz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gIyMjIEVuZCBDbG92ZXIgMS4yIHNldHVwICMjIyAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iYW50aGFjazEiPgorICAgICAgICA8IS0tIEl0J3MgYSByZWFsIHBhaW4gdG8gc2V0IHByb3BlcnRpZXMgY29uZGl0aW9uYWxseS4KKyAgICAgICAgICBBbnQgMS41IGlzbid0IHJlYWxseSBhbnkgYmV0dGVyIHRoYW4gMS40LCBpbiBmYWN0IDEuNSBlbmZvcmNlcyB0aGF0CisgICAgICAgICAgcHJvcGVydGllcyBhcmUgd3JpdGUtb25jZSBzbyB5b3UgY2FuJ3QgZXZlbiBzZXQgYSBkZWZhdWx0IGFuZCB0aGVuCisgICAgICAgICAgb3ZlcnJpZGUgaXQsIHdoaWNoIHdlIHVzZWQgdG8gZG8gZm9yIEFudCAxLjQuIC0tPgorICAgICAgICA8Y29uZGl0aW9uIHByb3BlcnR5PSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgICAgICA8b3I+CisgICAgICAgICAgICAgICAgPGVxdWFscyBhcmcxPSIke2FudC5qYXZhLnZlcnNpb259IiBhcmcyPSIxLjQiLz4KKyAgICAgICAgICAgICAgICA8ZXF1YWxzIGFyZzE9IiR7YW50LmphdmEudmVyc2lvbn0iIGFyZzI9IjEuNSIvPgorICAgICAgICAgICAgICAgIDxlcXVhbHMgYXJnMT0iJHthbnQuamF2YS52ZXJzaW9ufSIgYXJnMj0iMS42Ii8+CisgICAgICAgICAgICA8L29yPgorICAgICAgICA8L2NvbmRpdGlvbj4KKyAgICAgICAgCisgICAgICAgIDxjb25kaXRpb24gcHJvcGVydHk9ImRvYy5wYXJhbXMiCisgICAgICAgICAgICB2YWx1ZT0iLWJyZWFraXRlcmF0b3IgLXVzZSAtdGFnbGV0cGF0aCAuL2NsYXNzZXMgLXRhZ2xldCBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLklDVVRhZ2xldCAtZ3JvdXAgJ0lDVSBDb3JlJyAnY29tLmlibS5pY3UubGFuZyo6Y29tLmlibS5pY3UubWF0aCo6Y29tLmlibS5pY3UudGV4dCo6Y29tLmlibS5pY3UudXRpbCo6Y29tLmlibS5pY3UuY2hhcnNldCcgLWdyb3VwICdJQ1UgVGVzdHMnICdjb20uaWJtLmljdS5kZXYudGVzdConIC1ncm91cCAnRGVtb3MnICdjb20uaWJtLmljdS5kZXYuZGVtbyonIC1ncm91cCAnSUNVIFRvb2xzJyAnY29tLmlibS5pY3UuZGV2KiciPgorICAgICAgICAgICAgICAgIDxlcXVhbHMgYXJnMT0iJHt2ZXJzaW9uLjEuNH0iIGFyZzI9InRydWUiLz4KKyAgICAgICAgPC9jb25kaXRpb24+CisKKyAgICAgICAgPGNvbmRpdGlvbiBwcm9wZXJ0eT0icmljaGVkaXRkb2MucGFyYW1zIgorICAgICAgICAgICAgdmFsdWU9Ii1icmVha2l0ZXJhdG9yIC11c2UgLXRhZ2xldHBhdGggLi9jbGFzc2VzIC10YWdsZXQgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5JQ1VUYWdsZXQgLWdyb3VwICdSaWNoIFRleHQgRWRpdGluZycgJ2NvbS5pYm0ucmljaHRleHQqJyI+CisgICAgICAgICAgICAgICAgPGVxdWFscyBhcmcxPSIke3ZlcnNpb24uMS40fSIgYXJnMj0idHJ1ZSIvPgorICAgICAgICA8L2NvbmRpdGlvbj4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iYW50aGFjazIiIHVubGVzcz0iZG9jLnBhcmFtcyI+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJkb2MucGFyYW1zIiB2YWx1ZT0iIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImluaXQiPgorICAgICAgICA8dHN0YW1wLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InNyYy5kaXIiIHZhbHVlPSJzcmMiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1aWxkLmRpciIgdmFsdWU9ImNsYXNzZXMiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFwaS5kaXIiIHZhbHVlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImRvYy5kaXIiIHZhbHVlPSJkb2MiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InRlc3RqYXIuZmlsZSIgdmFsdWU9ImljdTRqdGVzdHMuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXIuZmlsZSIgdmFsdWU9ImljdTRqLmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iY2hhcnNldHMuamFyLmZpbGUiIHZhbHVlPSJpY3U0ai1jaGFyc2V0cy5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImphclNyYy5maWxlIiB2YWx1ZT0iaWN1NGpzcmMuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ6aXBDb3JlU3JjLmZpbGUiIHZhbHVlPSJpY3U0amNzcmMuemlwIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ6aXBUZXN0U3JjLmZpbGUiIHZhbHVlPSJpY3U0anRzcmMuemlwIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJqZGsud3JhcHBlci5qYXIuZmlsZSIgdmFsdWU9ImljdTRqd3JhcHBlci5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImVjbGlwc2UuZGlyIiB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZSIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZWNsaXBzZS5wcm9qZWN0cy5kaXIiIHZhbHVlPSJlY2xpcHNlUHJvamVjdHMiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9IndyYXBwZXIuYnVpbGQuZGlyIiB2YWx1ZT0iY2xhc3Nlcy53cmFwcGVyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXJEb2NzLmZpbGUiIHZhbHVlPSJpY3U0amRvY3MuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpbWUudHJhbnNsaXQuamFyLmZpbGUiIHZhbHVlPSJpY3V0cmFuc2ltZS5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImltZS5pbmRpYy5qYXIuZmlsZSIgdmFsdWU9ImljdWluZGljaW1lLmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW1lLnRyYW5zbGl0Lm1hbmlmZXN0IiB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvbWFuaWZlc3Quc3R1YiIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW1lLmluZGljLm1hbmlmZXN0IiB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvbWFuaWZlc3Quc3R1YiIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iemlwLmZpbGUiIHZhbHVlPSIuLi9pY3U0aiR7RFNUQU1QfS56aXAiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InppcFNyYy5maWxlIiB2YWx1ZT0iLi4vaWN1NGpTcmMke0RTVEFNUH0uemlwIi8+CisKKyAgICAgICAgPHByb3BlcnR5IGZpbGU9ImJ1aWxkLnByb3BlcnRpZXMiIC8+CisgICAgICAgIDwhLS0gZml4IHRoZSBkYXRhIGZvbGRlciBldmVyeSB0aW1lIHRoZXJlIGlzIGEgdmVyc2lvbiB1cGRhdGUtLT4KKworICAgICAgICA8cHJvcGVydHkgbmFtZT0iaWN1NGouZGF0YS5wYXRoIiB2YWx1ZT0iY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWR0JHtpY3U0ai52ZXJzaW9uLm51bWJlcn1iLyIgLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImljdTRqLnRlc3RkYXRhLnBhdGgiIHZhbHVlPSJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS8iIC8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpY3U0ai5qYXZhYy5zb3VyY2UiIHZhbHVlPSIxLjMiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImljdTRqLmphdmFjLnRhcmdldCIgdmFsdWU9IjEuMyIvPgorCisgICAgICAgIDxwYXRoIGlkPSJidWlsZC5jbGFzc3BhdGgiPgorICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8L3BhdGg+CisKKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InJpY2hlZGl0LmRpciIgdmFsdWU9InJpY2hlZGl0Ii8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWNoZWRpdC5kb2MuZGlyIiB2YWx1ZT0iJHtyaWNoZWRpdC5kaXJ9L2RvYyIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmljaGVkaXQuamFyLmZpbGUiIHZhbHVlPSIke3JpY2hlZGl0LmRpcn0vcmljaGVkaXQuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWNoZWRpdC56aXAuZmlsZSIgdmFsdWU9IiR7cmljaGVkaXQuZGlyfS9yaWNoZWRpdC56aXAiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InJpY2hlZGl0Lm1hbmlmZXN0IiB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL3JpY2h0ZXh0L21hbmlmZXN0LnN0dWIiLz4KKyAgICAgICAgCisgICAgICAgIDwhLS0gTG9hZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgLS0+CisgICAgICAgIDxwcm9wZXJ0eSBlbnZpcm9ubWVudD0iZW52Ii8+CisKKyAgICAgICAgPCEtLSBDYXB0dXJlIHRoZSBjb21wdXRlciBuYW1lIGluIGEgY3Jvc3MtcGxhdGZvcm0gbWFubmVyIC0tPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZW52LkNPTVBVVEVSTkFNRSIgdmFsdWU9IiR7ZW52LkhPU1ROQU1FfSIvPgorCisgICAgICAgIDxta2RpciBkaXI9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8bWtkaXIgZGlyPSIke3dyYXBwZXIuYnVpbGQuZGlyfSIvPgorCisgICAgICAgIDxlY2hvIG1lc3NhZ2U9ImphdmEgaG9tZTogJHtqYXZhLmhvbWV9Ii8+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9ImphdmEgdmVyc2lvbjogJHtqYXZhLnZlcnNpb259Ii8+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9ImFudCBqYXZhIHZlcnNpb246ICR7YW50LmphdmEudmVyc2lvbn0iLz4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iJHthbnQudmVyc2lvbn0iLz4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iJHtlbnYuQ09NUFVURVJOQU1FfSB3aXRoICR7b3MubmFtZX0gJHtvcy52ZXJzaW9ufSBvbiAke29zLmFyY2h9Ii8+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9ImNsb3ZlciBpbml0c3RyaW5nID0gJyR7Y2xvdmVyLmluaXRzdHJpbmd9JyIvPgorCisgICAgICAgIDx1cHRvZGF0ZSBwcm9wZXJ0eT0iaWN1NGoucmVzb3VyY2VzIiB0YXJnZXRmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YSI+CisgICAgICAgICAgICA8IS0tIG5vdGUgbXVzdCBub3QgaGF2ZSAnLycgYmVmb3JlICdjb20nIGluIHNyY2ZpbGVzIGluY2x1ZGVzIGFyZyEgLS0+CisgICAgICAgICAgICA8c3JjZmlsZXMgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSIke2ljdTRqLmRhdGEucGF0aH0vcmVzX2luZGV4LnJlcyIvPgorICAgICAgICA8L3VwdG9kYXRlPgorCisgICAgICAgIDx1cHRvZGF0ZSBwcm9wZXJ0eT0iaWN1NGoudGVzdGRhdGEucmVzb3VyY2VzIiB0YXJnZXRmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhIj4KKyAgICAgICAgICAgIDwhLS0gbm90ZSBtdXN0IG5vdCBoYXZlICcvJyBiZWZvcmUgJ2NvbScgaW4gc3JjZmlsZXMgaW5jbHVkZXMgYXJnISAtLT4KKyAgICAgICAgICAgIDxzcmNmaWxlcyBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9IiR7aWN1NGoudGVzdGRhdGFkYXRhLnBhdGh9L3Jvb3QucmVzIi8+CisgICAgICAgIDwvdXB0b2RhdGU+CisKKyAgICAgICAgPHVwdG9kYXRlIHByb3BlcnR5PSJpY3U0ai5tb2R1bGUucmVzb3VyY2VzIiB0YXJnZXRmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciIgPgorICAgICAgICAgICAgPHNyY2ZpbGVzIGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlcz0iJHtpY3U0ai5kYXRhLnBhdGh9LyouaWN1Ii8+CisgICAgICAgIDwvdXB0b2RhdGU+CisgICAgICAgIDwhLS0gPGVjaG8gbWVzc2FnZT0iaWN1NGoubW9kdWxlLnJlc291cmNlcyByZXN1bHQ6ICR7aWN1NGoubW9kdWxlLnJlc291cmNlc30iIC8+IC0tPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSBidWlsZCBldmVyeXRoaW5nIGJ1dCBkaXN0LXJlbGF0ZWQgc3R1ZmYgLS0+CisgICAgPHRhcmdldCBuYW1lPSJhbGwiIGRlcGVuZHM9ImNvcmUsdGVzdHMsdG9vbHMscmljaGVkaXQsZGVtb3MsamFyLGRvY3MiIGRlc2NyaXB0aW9uPSJidWlsZCBhbGwgcHJpbWFyeSB0YXJnZXRzIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9InJlc291cmNlcyIgZGVwZW5kcz0iaW5pdCwgaWN1ZGF0YSwgY29yZURhdGEsIHRlc3RkYXRhIiBkZXNjcmlwdGlvbj0iYnVpbGRzIGFsbCB0aGUgcmVzb3VyY2VzIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImljdWRhdGEiIGRlcGVuZHM9ImluaXQiIGlmPSJpY3U0ai5yZXNvdXJjZXMiPgorICAgICAgICA8IS0tIHVzZSB0aGlzIHRhcmdldCB0byBmb3JjZSByZXNvdXJjZXMgdG8gYmUgcmVidWlsdCAtLT4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS9yZXNfaW5kZXgucmVzIi8+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vTUVUQS1JTkYiPgorICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9NRVRBLUlORiIgaW5jbHVkZXM9IioqLyoiLz4KKyAgICAgICAgPC9jb3B5PgorICAgIDwvdGFyZ2V0PgorCis8IS0tCisgICAgdXNlIHRoaXMgdGFyZ2V0IHRvIGNvbmRpdGlvbmFsbHkgYnVpbGQgcmVzb3VyY2VzIG9ubHkgaWYgaWN1NGoucmVzb3VyY2VzIGlzIHNldAorICAgIDx0YXJnZXQgbmFtZT0iaWN1IiBkZXBlbmRzPSJpbml0IiBpZj0iaWN1NGoucmVzb3VyY2VzIj4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSUNVTG9jYWxlRGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Mb2NhbGVFbGVtZW50c19pbmRleC5jbGFzcyIvPgorICAgIDwvdGFyZ2V0PgorIC0tPgorCisgICAgPCEtLSBjb3JlIGRvZXMgbm90IGJ1aWxkIHJpY2hlZGl0IG9yIHRlc3RzIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iY29yZSIgZGVwZW5kcz0iaW5pdCxjb3JlRGF0YSxpY3VkYXRhIiBkZXNjcmlwdGlvbj0iYnVpbGQgY29yZSBjbGFzc2VzIGFuZCBkYXRhIj4KKyAgICAgICAgPGphdmFjIHNvdXJjZXBhdGg9IiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIKKyAgICAgICAgICAgIGVuY29kaW5nPSJhc2NpaSI+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9jaGFyc2V0LyoqLyouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC8qKi8qLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9tYXRoLyoqLyouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC8qKi8qLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvKiovKi5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InRlc3RzIiBkZXBlbmRzPSJjb3JlLHRlc3RkYXRhIiBkZXNjcmlwdGlvbj0iYnVpbGQgdGVzdHMiPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyLyoqLyouamF2YSIvPgorICAgICAgICA8L2phdmFjPgorIAorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yLyoqLyouamF2YSIvPgkKKworICAgICAgICA8L2phdmFjPgorCisgICAgICAgIDxqYXZhYyBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0LyoqLyouamF2YSIvPgkKKyAgICAgICAgPC9qYXZhYz4KKworICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0LyoqLyouamF2YSIvPgkKKyAgICAgICAgPC9qYXZhYz4KKworICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvKiovKi5qYXZhIi8+CQorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci8qKi8qLmphdmEiLz4JCisgICAgICAgIDwvamF2YWM+CisKKyAgICAgICAgPGphdmFjIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+ICAgICAgICAgICAgCisKKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvKiovKi5qYXZhIi8+CQorICAgICAgICA8L2phdmFjPgorCisgICAgICAgIDxqYXZhYyBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvKiovKi5qYXZhIi8+CQorICAgICAgICA8L2phdmFjPgorCisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImRlbW9zIiBkZXBlbmRzPSJjb3JlLHRlc3RkYXRhIiBkZXNjcmlwdGlvbj0iYnVpbGQgZGVtb3MiPgorICAgICAgICA8amF2YWMJc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi9kZW1vLyoqLyouamF2YSIvPgorICAgICAgICA8L2phdmFjPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJidWlsZG1hbmdsZSIgZGVwZW5kcz0iaW5pdCxhbnRoYWNrMSIgaWY9InZlcnNpb24uMS40Ij4KKyAgICAgICAgPGphdmFjIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSI+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQ29kZU1hbmdsZXIuamF2YSIvPgorICAgICAgICA8L2phdmFjPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJtYW5nbGUiIGRlcGVuZHM9ImJ1aWxkbWFuZ2xlIiBpZj0idmVyc2lvbi4xLjQiPgorICAgIDwhLS0gdGhpcyBpcyBhIGhhY2sgZm9yIG5vdywgbmVlZCBhIHdheSB0byBleHByZXNzIGRlcGVuZGVuY3kgb24gdGhlIC5qcHAgZmlsZXMKKyAgICBhbmQgdG8gcHJvdmlkZSBkaXJlY3RvcmllcyBvciB0cmVlcyBvZiBmaWxlcyB0byB0aGUgY29kZSBtYW5nbGVyIHRvb2wuIC0tPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ29kZU1hbmdsZXIiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItZFZFUlNJT05fJHthbnQuamF2YS52ZXJzaW9ufSIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVVRhZ2xldC5qYXZhIi8+CisgICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImluZGljZXMiIGRlcGVuZHM9ImljdWRhdGEsYnVpbGRfaW5kZXhnZW5lcmF0b3IiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmluZGV4LkluZGV4R2VuZXJhdG9yIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgbG9nRXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofSIgLz4KKyAgICAgICAgPC9qYXZhPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmluZGV4LkluZGV4R2VuZXJhdG9yIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgbG9nRXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS9yYm5mIiAvPgorICAgICAgICA8L2phdmE+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuaW5kZXguSW5kZXhHZW5lcmF0b3IiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L2NvbGwiIC8+CisgICAgICAgIDwvamF2YT4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5pbmRleC5JbmRleEdlbmVyYXRvciIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGxvZ0Vycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdHJhbnNsaXQiIC8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ib25lNHRvb2xzIiBkZXBlbmRzPSJhbnRoYWNrMSxhbnRoYWNrMixtYW5nbGUiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhYyBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IiAKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L2xvY2FsZWNvbnZlcnRlci9kb2NzLyouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy8qLmphdmEiLz4KKyAgICAgICAgPC9qYXZhYz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0idG9vbHMiIGRlcGVuZHM9ImNvcmUsb25lNHRvb2xzIiBkZXNjcmlwdGlvbj0iYnVpbGQgdG9vbHMiPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKyAgICAgICAgCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9jbGRyLyoiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci8qIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzLyoiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90b29sLyoqLyouamF2YSIvPgorICAgICAgICA8L2phdmFjPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJidWlsZF9pbmRleGdlbmVyYXRvciIgZGVwZW5kcz0iY29yZSI+CisgICAgICAgIDxqYXZhYyBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9pbmRleC9JbmRleEdlbmVyYXRvci5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgPC90YXJnZXQ+CisgICAgICAgICAgICAKKyAgICA8IS0tIHVzZSBleGNsdWRlZmlsZXMgYmVsb3cgd2hlbiB3ZSBtb3ZlIHRvIGFudCAxLjUgLS0+CisgICAgPHRhcmdldCBuYW1lPSJkb2NzIiBkZXBlbmRzPSJhbnRoYWNrMSxhbnRoYWNrMix0b29scyIgZGVzY3JpcHRpb249ImJ1aWxkIHVzZXIgamF2YWRvYyI+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9ImRvYyBwYXJhbXM6ICR7ZG9jLnBhcmFtc30iLz4KKyAgICAgICAgPG1rZGlyIGRpcj0iJHtkb2MuZGlyfSIvPgorICAgICAgICA8amF2YWRvYworICAgICAgICAgICAgcGFja2FnZW5hbWVzPSJjb20uaWJtLmljdS5sYW5nLGNvbS5pYm0uaWN1LnRleHQsY29tLmlibS5pY3UudXRpbCxjb20uaWJtLmljdS5tYXRoLGNvbS5pYm0uaWN1LmNoYXJzZXQsY29tLmlibS5pY3UuZGV2IgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7ZG9jLmRpcn0iCisgICAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0PSJ0cnVlIgorICAgICAgICAgICAgd2luZG93dGl0bGU9ImljdTRqIgorICAgICAgICAgICAgZG9jdGl0bGU9ImljdTRqIgorICAgICAgICAgICAgZW5jb2Rpbmc9Imlzby04ODU5LTEiCisgICAgICAgICAgICBkb2NlbmNvZGluZz0iaXNvLTg4NTktMSIKKyAgICAgICAgICAgIGJvdHRvbT0iJmx0O2ZvbnQgc2l6ZT0tMT5Db3B5cmlnaHQgKGMpICR7Y3VycmVudC55ZWFyfSBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4mbHQ7L2ZvbnQ+IgorICAgICAgICAgICAgYWRkaXRpb25hbHBhcmFtPSIke2RvYy5wYXJhbXN9IgorICAgICAgICAgICAgbGluaz0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuNS9kb2NzL2FwaSIKKyAgICAgICAgICAgIHNvdXJjZT0iMS40Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImZ1bGxkb2NzIiBkZXBlbmRzPSJhbnRoYWNrMSxhbnRoYWNrMix0b29scyIgZGVzY3JpcHRpb249ImJ1aWxkIGFsbCBqYXZhZG9jIj4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iZG9jIHBhcmFtczogJHtkb2MucGFyYW1zfSIvPgorICAgICAgICA8bWtkaXIgZGlyPSIke2RvYy5kaXJ9Ii8+CisgICAgICAgIDxqYXZhZG9jCisgICAgICAgICAgICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LioiCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtkb2MuZGlyfSIKKyAgICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3Q9InRydWUiCisgICAgICAgICAgICB3aW5kb3d0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBkb2N0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBlbmNvZGluZz0iaXNvLTg4NTktMSIKKyAgICAgICAgICAgIGRvY2VuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgYm90dG9tPSImbHQ7Zm9udCBzaXplPS0xPkNvcHlyaWdodCAoYykgMjAwNCBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4mbHQ7L2ZvbnQ+IgorICAgICAgICAgICAgYWRkaXRpb25hbHBhcmFtPSIke2RvYy5wYXJhbXN9IgorICAgICAgICAgICAgbGluaz0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuNC9kb2NzL2FwaSIKKyAgICAgICAgICAgIHNvdXJjZT0iMS40Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWUgPSJjb3JlRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiCisgICAgICAgICAgICAgICAgaW5jbHVkZXM9IiouaWN1LCouc3BwLCouYnJrIgorICAgICAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKixUcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lID0idGVzdGRhdGEiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpIi8+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9yYmJpdHN0LnR4dCIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaSIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbCIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldCIvPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YSI+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5kYXQiLz4KKyAgICAgICAgICAgIDwvZmlsZXNldD4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jpd29yZHMudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL0lETkFUZXN0SW5wdXQudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSIvPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi9kYXRhLyouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzLyouamF2YSIvPgorICAgICAgICA8L2phdmFjPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSIKKyAgICAgICAgICAgICAgICBpbmNsdWRlcz0iKi5zcHAsKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlLyIKKyAgICAgICAgICAgICAgICBpbmNsdWRlcz0iKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQiLz4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvIgorICAgICAgICAgICAgICAgIGluY2x1ZGVzPSIqLnByb3BlcnRpZXMiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIHVzZSB0aGlzIHRhcmdldCB0byBmb3JjZSByZXNvdXJjZXMgdG8gYmUgcmVidWlsdCAtLT4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGoudGVzdGRhdGEucGF0aH0vcm9vdC5yZXMiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gYnVpbGRzIHJpY2hlZGl0IGFuZCByaWNoZWRpdCB0ZXN0cyAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJpY2hlZGl0IiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgcmljaGVkaXQgY2xhc3NlcyBhbmQgdGVzdHMiPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vcmljaHRleHQvKiovKi5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMiIG92ZXJ3cml0ZT0ieWVzIiBpbmNsdWRlRW1wdHlEaXJzPSJubyI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMiIGluY2x1ZGVzPSIqLnJlZCIvPgorICAgICAgICA8L2NvcHk+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIENyZWF0ZXMgdGhlIDMgcmVsZWFzZSBqYXIgYXJjaGl2ZXMgZm9yIGRpc3RyaWJ1dGlvbiAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImphclJlbGVhc2UiIGRlcGVuZHM9ImphcixqYXJTcmMsamFyRG9jcyIvPgorCisgICAgPHRhcmdldCBuYW1lPSJqYXIiIGRlcGVuZHM9ImNvcmUsaW5kaWNlcyxjaGFyc2V0c0phciIgZGVzY3JpcHRpb249ImJ1aWxkICdpY3U0ai5qYXInIGphciBmaWxlIj4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2phci5maWxlfSIgY29tcHJlc3M9InRydWUiPgorICAgICAgICAgICAgPGZpbGVzZXQgICAgZGlyPSIke2Jhc2VkaXJ9IiBpbmNsdWRlcz0ibGljZW5zZS5odG1sLCB1bmljb2RlLWxpY2Vuc2UudHh0IiAvPgorICAgICAgICAgICAgPGZpbGVzZXQgICAgZGlyPSIke2J1aWxkLmRpcn0iICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVzPSJNRVRBLUlORi9zZXJ2aWNlcy8qKi8qLGNvbS9pYm0vaWN1L2NoYXJzZXQvKiovKiwke2ljdTRqLmRhdGEucGF0aH0vKi5jbnYsICR7aWN1NGouZGF0YS5wYXRofS9jbnZhbGlhcy5pY3UiLz4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IiBJQ1UgZm9yIEphdmEiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImNoYXJzZXRzSmFyIiBkZXBlbmRzPSJjb3JlLGluZGljZXMiIGRlc2NyaXB0aW9uPSJidWlsZCAgJ2ljdTRqLWNoYXJzdGVzLmphcicgamFyIGZpbGUiPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7Y2hhcnNldHMuamFyLmZpbGV9IiBjb21wcmVzcz0idHJ1ZSI+CisgICAgICAgICAgICA8ZmlsZXNldCAgICBkaXI9IiR7YmFzZWRpcn0iIGluY2x1ZGVzPSJsaWNlbnNlLmh0bWwsIHVuaWNvZGUtbGljZW5zZS50eHQiIC8+CisgICAgICAgICAgICA8ZmlsZXNldCAgICBkaXI9IiR7YnVpbGQuZGlyfSIgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9Ik1FVEEtSU5GL3NlcnZpY2VzLyoqLyosY29tL2libS9pY3UvY2hhcnNldC8qKi8qLCR7aWN1NGouZGF0YS5wYXRofS8qLmNudiwgJHtpY3U0ai5kYXRhLnBhdGh9L2NudmFsaWFzLmljdSIvPgorICAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBDaGFyc2V0cyIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IiBJQ1UgZm9yIEphdmEgQ2hhcnNldHMiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImphclRlc3RzIiBkZXBlbmRzPSJ0ZXN0cyxqYXIiIGRlc2NyaXB0aW9uPSJidWlsZCBydW50aW1lICdpY3U0anRlc3RzLmphcicgamFyIGZpbGUiPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7dGVzdGphci5maWxlfSIgY29tcHJlc3M9InRydWUiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi9kYXRhLyoqLyoiLz4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBUZXN0cyIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IiBJQ1UgZm9yIEphdmEgVGVzdHMiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iamFyU3JjIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgc291cmNlICdpY3U0anNyYy5qYXInIGphciBmaWxlIj4KKyAgICAgICAgPCEtLUNyZWF0ZSBhIGphciBhcmNoaXZlIG9mIGp1c3QgdGhlIHNvdXJjZSBmb3IgZGlzdHJpYnV0aW9uLiAgVGhlCisgICAgICAgIGphciBmaWxlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGlyZWN0b3J5IGFib3ZlIHRoZSByb290IElDVTRKCisgICAgICAgIGRpcmVjdG9yeS4gVGhlIGV4Y2x1ZGUgcGF0dGVybiAke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEtKi50eHQKKyAgICAgICAgYW5kICR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLSoudHh0CisgICAgICAgIGVsaW1pbmF0ZXMgb2xkIGFyY2hpdmUgY29waWVzIGxpa2UgU3BlY2lhbENhc2luZy0yLnR4dCBhbmQKKyAgICAgICAgVW5pY29kZURhdGEtMi4xLjgudHh0IC0tPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7amFyU3JjLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIuIgorICAgICAgICAgICAgZXhjbHVkZXM9IiR7cmljaGVkaXQuZGlyfS8qKi8qLHRlc3RfKiwke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvL1VuaWNvZGVEYXRhLSoudHh0LCR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLSoudHh0LCR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMtKi50eHQsJHtvYnNvbGV0ZS5kaXJ9LyoqLCoqLyp+LCR7c3JjLmRpcn0vKiovKi5jbGFzcywke2J1aWxkLmRpcn0vKiosKiovQ1ZTLyoqLyosJHtkb2MuZGlyfS8qKiwqLmphciwqLnppcCwgKi5neiI+CisgICAgICAgICAgICA8bWFuaWZlc3Q+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJCdWlsdC1CeSIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVRpdGxlIiB2YWx1ZT0iSUNVNEogU291cmNlIEZpbGVzIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iIElDVSBmb3IgSmF2YSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPiAgICAgICAgCisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImphckRvY3MiIGRlcGVuZHM9ImRvY3MiIGRlc2NyaXB0aW9uPSJidWlsZCBkb2N1bWVudGF0aW9uICdpY3U0amRvY3MuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtqYXJEb2NzLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke2RvYy5kaXJ9Ij4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBTb3VyY2UgRmlsZXMiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZW5kb3IiIHZhbHVlPSJJQ1UiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVGl0bGUiIHZhbHVlPSIgSUNVIGZvciBKYXZhIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPiAKKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yIiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkNvcHlyaWdodC1JbmZvIiB2YWx1ZT0iJHtjb3B5cmlnaHR9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNlYWxlZCIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgPC9tYW5pZmVzdD4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InRyYW5zbGl0SU1FSmFyIiBkZXBlbmRzPSJjb2xsYXRvciwgdHJhbnNsaXRlcmF0b3IiIGRlc2NyaXB0aW9uPSJidWlsZCB0cmFuc2xpdGVyYXRvciBJTUUgJ2ljdXRyYW5zaW1lLmphcicgamFyIGZpbGUiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3IucHJvcGVydGllcyIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0Ii8+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtpbWUudHJhbnNsaXQuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0LyoqLyoiCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpbWUudHJhbnNsaXQubWFuaWZlc3R9Ij4KKyAgICAgICAgICAgIDxtZXRhaW5mIGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQiIGluY2x1ZGVzPSJzZXJ2aWNlcy8qIi8+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJpbmRpY0lNRUphciIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIGluZGljIElNRSAnaWN1aW5kaWNpbWUuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EaXNwbGF5TmFtZXMucHJvcGVydGllcyIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljIi8+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtpbWUuaW5kaWMuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljLyoqLyoiCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpbWUuaW5kaWMubWFuaWZlc3R9Ij4KKyAgICAgICAgICAgIDxtZXRhaW5mIGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMiIGluY2x1ZGVzPSJzZXJ2aWNlcy8qIi8+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorCis8IS0tCisgICAgPHRhcmdldCBuYW1lPSJ0cmFuc2xpdGltZVN0YW5kYWxvbmVKYXIiIGRlcGVuZHM9ImNvbGxhdG9yLCB0cmFuc2xpdGVyYXRvciI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0LyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdCI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0IiBpbmNsdWRlcz0iKi5wcm9wZXJ0aWVzIi8+CisgICAgICAgIDwvY29weT4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2ltZS5qYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qLGNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC8qKi8qIgorICAgICAgICAgICAgbWFuaWZlc3Q9IiR7aW1lLnRyYW5zbGl0Lm1hbmlmZXN0fSI+CisgICAgICAgICAgICA8bWV0YWluZiBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0IiBpbmNsdWRlcz0ic2VydmljZXMvKiIvPgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKy0tPgorCisgICAgPCEtLSBqYXJzIHVwIHJpY2hlZGl0IGJ1dCB3aXRob3V0IHRlc3RzIC0tPgorICAgIDx0YXJnZXQgbmFtZT0icmljaGVkaXRKYXIiIGRlcGVuZHM9InJpY2hlZGl0IiBkZXNjcmlwdGlvbj0iYnVpbGQgcmljaGVkaXQgcnVudGltZSAncmljaGVkaXQuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxta2RpciBkaXI9IiR7cmljaGVkaXQuZGlyfSIvPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7cmljaGVkaXQuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9yaWNodGV4dC8qKi8qIgorICAgICAgICBleGNsdWRlcz0iY29tL2libS9yaWNodGV4dC90ZXN0LyoqLyoiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtyaWNoZWRpdC5tYW5pZmVzdH0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0KKyAgICAgICAgTm90ZTogIEkgdXNlZCB0byB1c2UgLWxpbmtvZmZsaW5lIGh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamRrLzEuMi9kb2NzL2FwaS8gQzpcamRrMS4yLjJcZG9jc1xhcGkKKyAgICAgICAgVGhpcyBsaW5rcyB0byBjb3JlIGRvY3Mgb24gU3VuJ3Mgc2l0ZSAtIGEgdmVyeSBuaWNlIGZlYXR1cmUuICBCdXQgaXQgcmVxdWlyZXMgdGhlIDEuMiBkb2NzIHRvIGJlCisgICAgICAgIG9uIHRoZSBidWlsZCBtYWNoaW5lIGF0IGEga25vd24gbG9jYXRpb24uCisgICAgLS0+CisKKyAgICA8IS0tIHRoZSAncHVibGljJyBkb2NzIGZvciByaWNoZWRpdCAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJpY2hlZGl0RG9jcyIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHJpY2hlZGl0IGphdmFkb2MiPgorICAgICAgICA8bWtkaXIgZGlyPSIke3JpY2hlZGl0LmRvYy5kaXJ9Ii8+CisgICAgICAgIDxqYXZhZG9jICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0ucmljaHRleHQuZGVtbyxjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aSxjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbCxjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQsY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMsY29tLmlibS5yaWNodGV4dC5wcmludCIKKyAgICAgICAgICAgIHNvdXJjZXBhdGg9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke3JpY2hlZGl0LmRvYy5kaXJ9IgorICAgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdD0idHJ1ZSIKKyAgICAgICAgICAgIHdpbmRvd3RpdGxlPSJSaWNoRWRpdCBDb250cm9sIgorICAgICAgICAgICAgZG9jdGl0bGU9IlJpY2hFZGl0IENvbnRyb2wiCisgICAgICAgICAgICBlbmNvZGluZz0iaXNvLTg4NTktMSIKKyAgICAgICAgICAgIGRvY2VuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgYm90dG9tPSImbHQ7Zm9udCBzaXplPS0xPkNvcHlyaWdodCAoYykgMTk5OC0yMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiZsdDsvZm9udD4iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gcmljaGVkaXQgYWxwaGF3b3JrcyBkaXN0cmlidXRpb24gLSBqYXIgYW5kIGRvY3MsIGJ1dCBubyBzb3VyY2UgLS0+CisgICAgPHRhcmdldCBuYW1lPSJyaWNoZWRpdFppcCIgZGVwZW5kcz0icmljaGVkaXRKYXIscmljaGVkaXREb2NzIiBkZXNjcmlwdGlvbj0iYnVpbGQgcmljaGVkaXQgemlwIGZpbGUiPgorICAgICAgICA8IS0tQ3JlYXRlIGEgemlwIGFyY2hpdmUgb2YgdGhlIHJpY2hlZGl0IGphciBhbmQgcmVhZG1lIC0tPgorICAgICAgICA8Y29weSBmaWxlPSJsaWNlbnNlLmh0bWwiIHRvZGlyPSIke3JpY2hlZGl0LmRpcn0iLz4KKyAgICAgICAgPHppcCB6aXBmaWxlPSIke3JpY2hlZGl0LnppcC5maWxlfSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7cmljaGVkaXQuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJkb2MvKiovKixyaWNoZWRpdC5qYXIsbGljZW5zZS5odG1sIi8+CisgICAgPC90YXJnZXQ+CisgICAgPHRhcmdldCBuYW1lPSJkZWxldGVDb3JlIiBkZXBlbmRzPSJpbml0IiA+CisgICAgICAgIDxkZWxldGUgZmFpbG9uZXJyb3I9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L3RleHQiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L21hdGgiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2xhbmciLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L3V0aWwiLz4gICAgICAgCisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9jaGFyc2V0Ii8+ICAgICAgICAgICAgICAgICAgIAorICAgICAgICA8L2RlbGV0ZT4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImNoZWNrIiBkZXBlbmRzPSJ0ZXN0cywgamFyLCBkZWxldGVDb3JlIiBkZXNjcmlwdGlvbj0icnVuIHN0YW5kYXJkIGljdTRqIHRlc3Qgc3VpdGUiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwiIGZvcms9InllcyIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGp2bWFyZyB2YWx1ZT0iLWVhIi8+ICA8IS0tIGVuYWJsZSBhc3NlcnRpb24gY2hlY2tzIC0tPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW4iLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7amF2YS5jbGFzcy5wYXRofS8iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7amFyLmZpbGV9Ii8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2NoYXJzZXRzLmphci5maWxlfSIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImV4aGF1c3RpdmVDaGVjayIgZGVwZW5kcz0idGVzdHMsIGphciwgZGVsZXRlQ29yZSIgZGVzY3JpcHRpb249InJ1biBzdGFuZGFyZCBpY3U0aiB0ZXN0IHN1aXRlIGluIGV4aGF1c3RpdmUgbW9kZSI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8anZtYXJnIHZhbHVlPSItZWEiLz4gIDwhLS0gZW5hYmxlIGFzc2VydGlvbiBjaGVja3MgLS0+CisgICAgICAgICAgICA8anZtYXJnIHZhbHVlPSItWG14MTI4bSIvPiAgPCEtLSBzZXQgdGhlIG1heCBoZWFwIHNpemUgdG8gMTI4bSAtLT4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItZTEwIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2phdmEuY2xhc3MucGF0aH0vIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2phci5maWxlfSIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtjaGFyc2V0cy5qYXIuZmlsZX0iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249ImNsb3Zlci5qYXIiLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aD0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDx0YXJnZXQgbmFtZT0ic2VjdXJlIiBkZXBlbmRzPSJqYXJUZXN0cyIgZGVzY3JpcHRpb249ImJ1aWxkcyBpY3U0ai5qYXIgYW5kIGljdTRqdGVzdHMuamFyIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9InNlY3VyZUNoZWNrIiBkZXBlbmRzPSJzZWN1cmUiIGRlc2NyaXB0aW9uPSJydW4gc2VjdXJlIChhcHBsZXQtbGlrZSkgaWN1NGogdGVzdCBzdWl0ZSI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgIDwhLS0ganZtYXJnIHZhbHVlPSItdmVyYm9zZSIvIC0tPgorICAgICAgICA8IS0tICh1c2UgZm9yIGRlYnVnZ2luZywgTE9UUyBvZiBvdXRwdXQpIDxqdm1hcmcgdmFsdWU9Ii1EamF2YS5zZWN1cml0eS5kZWJ1Zz1hY2Nlc3M6dHJhY2UiLyAtLT4KKyAgICAgICAgPCEtLSA8anZtYXJnIHZhbHVlPSItRGphdmEuc2VjdXJpdHkuZGVidWc9YWNjZXNzOmZhaWx1cmUsZG9tYWluIi8+IC0tPgorICAgICAgICAgICAgPGp2bWFyZyB2YWx1ZT0iLURqYXZhLnNlY3VyaXR5Lm1hbmFnZXIiLz4KKyAgICAgICAgICAgIDxqdm1hcmcgdmFsdWU9Ii1EamF2YS5zZWN1cml0eS5wb2xpY3k9JHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWN1cml0eS5wb2xpY3kiLz4KKyAgICAgICAgICAgIDwhLS08anZtYXJnIHZhbHVlPSItRGphdmEuc2VjdXJpdHkuZGVidWc9YWNjZXNzOmZhaWx1cmUiLz4tLT4KKyAgICAgICAgICAgICA8YXJnIHZhbHVlPSItdyIvPgorICAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1ub3Rocm93Ii8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqYXIuZmlsZX0iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7Y2hhcnNldHMuamFyLmZpbGV9Ii8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke3Rlc3RqYXIuZmlsZX0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9Im5vRGF0YSIgZGVwZW5kcz0iY29yZSwgdGVzdHMiIGRlc2NyaXB0aW9uPSJidWlsZHMgSUNVNEogd2l0aG91dCBhbnkgZGF0YSI+CisgICAgICAgPGRlbGV0ZSBmYWlsb25lcnJvcj0ibm8iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9Ly4uLyIgaW5jbHVkZXM9IkhvbGlkYXkqLmNsYXNzIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vLi4vIiBpbmNsdWRlcz0iQnJlYWtJdGVyYXRvciouY2xhc3MiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofSIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vJHtpY3U0ai50ZXN0ZGF0YS5wYXRofSIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vJHtpY3U0ai50ZXN0ZGF0YS5wYXRofS4uLyIvPiAgICAgICAgICAgICAgICAgCisgICAgICAgIDwvZGVsZXRlPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0ibm9EYXRhQ2hlY2siIGRlcGVuZHM9Im5vRGF0YSIgZGVzY3JpcHRpb249InJ1bnMgdGhlIHRlc3RzIHdoZW4gbm8gZGF0YSBpcyBwcmVzZW50Ij4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1ub3Rocm93Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbm9kYXRhIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0iX3JlcXVpcmVzMTQiIHVubGVzcz0idmVyc2lvbi4xLjQiPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJPbmUgb2YgeW91ciB0YXJnZXRzIHJlcXVpcmVzIEpBVkFfSE9NRSB0byBiZSBzZXQgdG8gSkRLIHZlcnNpb24gMS40Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9Il9jaGVja3RhZ3MiIGRlcGVuZHM9ImFudGhhY2sxLGFudGhhY2syLHRvb2xzIiBpZj0idmVyc2lvbi4xLjQiPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJkb2MgcGFyYW1zOiAke2RvYy5wYXJhbXN9Ii8+CisgICAgICAgIDxqYXZhZG9jIHNvdXJjZXBhdGg9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LioiCisgICAgICAgICAgICBleGNsdWRlcGFja2FnZW5hbWVzPSJjb20uaWJtLmljdS5kZXYuKixjb20uaWJtLmljdS5pbXBsLioiCisgICAgICAgICAgICBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iMS40Ij4KKyAgICAgICAgICAgIDxkb2NsZXQgbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5DaGVja1RhZ3MiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8IS0tIDxwYXJhbSBuYW1lPSItc2hvcnQiLz4gLS0+CisgICAgICAgICAgICA8L2RvY2xldD4KKyAgICAgICAgPC9qYXZhZG9jPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjaGVja3RhZ3MiIGRlcGVuZHM9ImFudGhhY2sxLGFudGhhY2syLF9yZXF1aXJlczE0LF9jaGVja3RhZ3MiIGRlc2NyaXB0aW9uPSJjaGVjayBBUEkgdGFncyBiZWZvcmUgcmVsZWFzZSIvPgorCisgICAgPHRhcmdldCBuYW1lPSJnYXRoZXJhcGkiIGRlcGVuZHM9InRvb2xzIiBpZj0idmVyc2lvbi4xLjQiIGRlc2NyaXB0aW9uPSJydW4gQVBJIGRhdGFiYXNlIGdlbmVyYXRvciB0b29sIj4KKyAgICAgICAgPGphdmFkb2MgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgcGFja2FnZW5hbWVzPSJjb20uaWJtLmljdS5sYW5nLGNvbS5pYm0uaWN1Lm1hdGgsY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS51dGlsIgorICAgICAgICAgICAgc291cmNlPSIxLjQiPgorICAgICAgICAgICAgPGRvY2xldCBuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW5hbWUiIHZhbHVlPSJJQ1U0SiAke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItb3V0cHV0IiB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0aiR7aWN1NGoudmVyc2lvbi5udW1iZXJ9LmFwaSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItaW50ZXJuYWwiLz4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLWd6aXAiLz4KKyAgICAgICAgICAgIDwvZG9jbGV0PgorICAgICAgICA8L2phdmFkb2M+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImFwaXJlcG9ydCIgZGVwZW5kcz0idG9vbHMsIGdhdGhlcmFwaSIgaWY9InZlcnNpb24uMS40IiBkZXNjcmlwdGlvbj0icnVuIEFQSSByZXBvcnQgZ2VuZXJhdG9yIHRvb2wiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuUmVwb3J0QVBJIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW9sZDoiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7YXBpLmRpcn0vaWN1NGoke2ljdTRqLnByZXZpb3VzLnZlcnNpb24ubnVtYmVyfS5hcGkuZ3oiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uZXc6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqJHtpY3U0ai52ZXJzaW9uLm51bWJlcn0uYXBpLmd6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItaHRtbCIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWludGVybmFsIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItb3V0OiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkucmVwb3J0Lm91dH0iLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjbGVhbiIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249InJlbW92ZSBhbGwgYnVpbGQgdGFyZ2V0cyI+CisgICAgICAgIDxkZWxldGUgZGlyPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBkaXI9IiR7ZG9jLmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2phci5maWxlfSIvPgorICAgICAgICA8ZGVsZXRlIGZpbGU9IiR7Y2hhcnNldHMuamFyLmZpbGV9Ii8+CisgICAgICAgIDxkZWxldGUgZGlyPSIke3JpY2hlZGl0LmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3Rlc3RqYXIuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2phclNyYy5maWxlfSIvPgorCisgICAgICAgIDxkZWxldGUgZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfSIvPgorICAgICAgICA8ZGVsZXRlIGRpcj0iJHt3cmFwcGVyLmJ1aWxkLmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3ppcENvcmVTcmMuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3ppcFRlc3RTcmMuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2pkay53cmFwcGVyLmphci5maWxlfSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICBUYXJnZXRzIHRvIGNvcHkgdGhlIHJlcXVpcmVkICouaWN1IGZpbGVzCisgICAgIC0tPgorICAgIDx0YXJnZXQgbmFtZT0ibm9ybWFsaXplckRhdGEiIGRlcGVuZHM9ImluaXQiID4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8IS0tIGFycmdoLCBpbmNsdWRlcyBhdHRyaWJ1dGVzIG9mIHBhdHRlcm5zZXQgZG9lcyBub3Qgd29yayBoZXJlIGluIGFudCAxLjUuMyAtLT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdXByb3BzLmljdSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb3B5RnVsbFByb3BzRGF0YSIgZGVwZW5kcz0iaW5pdCIgPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxwYXR0ZXJuc2V0PgorICAgICAgICAgICAgICAgIDwhLS0gYXJyZ2gsIGluY2x1ZGVzIGF0dHJpYnV0ZXMgb2YgcGF0dGVybnNldCBkb2VzIG5vdCB3b3JrIGhlcmUgaW4gYW50IDEuNS4zIC0tPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vub3JtLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vwcm9wcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91YmlkaS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91Y2FzZS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5icmsiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovdHJhbnNsaXQvKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9yYm5mLyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29weUJhc2ljUHJvcHNEYXRhIiBkZXBlbmRzPSJpbml0IiA+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5vcm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdXByb3BzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3ViaWRpLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VjYXNlLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29weUNvbGxhdG9yRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5icmsiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdXByb3BzLmljdSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb3B5Q2FsZW5kYXJEYXRhIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPCEtLSBDYWxlbmRhciBkb2VzIG5vdCByZXF1aXJlIENvbGxhdGlvbiBkYXRhLCBCcmVha0l0ZXJhdG9yIGRhdGEgLS0+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5vcm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdXByb3BzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovdHJhbnNsaXQvKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9yYm5mLyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlUcmFuc2xpdERhdGEiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8IS0tIENhbGVuZGFyIGRvZXMgbm90IHJlcXVpcmUgQ29sbGF0aW9uIGRhdGEsIEJyZWFrSXRlcmF0b3IgZGF0YSAtLT4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8IS0tIGFycmdoLCBpbmNsdWRlcyBhdHRyaWJ1dGVzIG9mIHBhdHRlcm5zZXQgZG9lcyBub3Qgd29yayBoZXJlIGluIGFudCAxLjUuMyAtLT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdWJpZGkuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdWNhc2UuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi8qLmJyayIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3RyYW5zbGl0LyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlGb3JtYXREYXRhIiBkZXBlbmRzPSJpbml0IiBpZj0iaWN1NGoubW9kdWxlLnJlc291cmNlcyI+CisgICAgICAgIDwhLS0gRm9ybWF0IGRvZXMgbm90IHJlcXVpcmUgQnJlYWtJdGVyYXRvciBkYXRhIC0tPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxwYXR0ZXJuc2V0PgorICAgICAgICAgICAgICAgIDwhLS0gYXJyZ2gsIGluY2x1ZGVzIGF0dHJpYnV0ZXMgb2YgcGF0dGVybnNldCBkb2VzIG5vdCB3b3JrIGhlcmUgaW4gYW50IDEuNS4zIC0tPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqLyouaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi90cmFuc2xpdC8qLnJlcyIvPgorICAgICAgICAgICAgPC9wYXR0ZXJuc2V0PgorICAgICAgICA8L3VuamFyPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS91cHJvcHMuaWN1Ii8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJjb3B5QWxsSUNVRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ibW9kdWxlSmFyIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiAnaWN1NGouamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtqYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBNb2R1bGFyaXplZCBCdWlsZCIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IiBJQ1UgZm9yIEphdmEgTW9kdWxlIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPiAKKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yIiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkNvcHlyaWdodC1JbmZvIiB2YWx1ZT0iJHtjb3B5cmlnaHR9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNlYWxlZCIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgPC9tYW5pZmVzdD4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgTm9ybWFsaXphdGlvbiBBUEkgYW5kIE5vcm1hbGl6YXRpb24gdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9Im5vcm1hbGl6ZXIiIGRlcGVuZHM9ImluaXQsbm9ybWFsaXplckRhdGEiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIG5vcm1hbGl6ZXIgc2VydmljZXMiPgorICAgICAgICA8amF2YWMgc291cmNlcGF0aD0iIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+IAorICAgICAgICAgICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Vbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgIAorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Bc3NlcnQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeVN0cmVhbS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0xvY2FsZVV0aWxpdHkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJEYXRhUmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9SZXNvdXJjZUJ1bmRsZVdyYXBwZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9SdWxlQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Tb3J0ZWRTZXRSZWxhdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1RyaWUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9UcmllSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQmlEaVByb3BzLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNhc2VQcm9wcy5qYXZhIi8+ICAgCQorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VQcm9wZXJ0eUFsaWFzZXMuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VUkxIYW5kbGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvKioiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0Nhbm9uaWNhbEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXplci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9TeW1ib2xUYWJsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTWF0Y2hlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXQuamF2YSIvPiAKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvRnJlZXphYmxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvUmFuZ2VWYWx1ZUl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvU3RyaW5nVG9rZW5pemVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhIi8+CisgICAgICAgICAgICAgCisgICAgICAgICA8L2phdmFjPgorICAgIAorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJub3JtYWxpemVyVGVzdHMiIGRlcGVuZHM9Im5vcm1hbGl6ZXIsIHRlc3RkYXRhIj4KKyAgICAgICAgPGphdmFjIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+CisKKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3REZXByZWNhdGVkTm9ybWFsaXplckFQSS5qYXZhIi8+CisKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvKiovKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEiLz4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgPC9qYXZhYz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0KKyAgICAgICAgICAgIFRhcmdldHMgdG8gYnVpbGQgb25seSBDb2xsYXRpb24gQVBJIGFuZCBDb2xsYXRpb24gdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNvbGxhdG9yIiBkZXBlbmRzPSJpbml0LGNvcHlDb2xsYXRvckRhdGEiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIGNvbGxhdG9yIHNlcnZpY2VzIj4KKyAgICAgICAgIDxqYXZhYyBzb3VyY2VwYXRoPSIiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Vbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YSIvPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0Fzc2VydC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkJyZWFrKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeVN0cmVhbS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZVNlcnZpY2UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VOb3RpZmllci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUldMb2NrLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0ltcGxpY2l0Q0VHZW5lcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Mb2NhbGVVdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1JlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvU29ydGVkU2V0UmVsYXRpb24uamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9UcmllSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQmlEaVByb3BzLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNhc2VQcm9wcy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lQ2hvaWNlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyVXRpbGl0eS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VSTEhhbmRsZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VUHJvcGVydHlBbGlhc2VzLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0JyZWFrRGljdGlvbmFyeS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yRmFjdG9yeS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0Nhbm9uaWNhbEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yU2VydmljZVNoaW0uamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXplci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1Jhd0NvbGxhdGlvbktleS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvU3ltYm9sVGFibGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9VQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVNYXRjaGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VURjE2LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvQnl0ZUFycmF5V3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0NvbXBhY3RCeXRlQXJyYXkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9TdHJpbmdUb2tlbml6ZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlQnVuZGxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVmFsdWVJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1ZlcnNpb25JbmZvLmphdmEiLz4KKyAgICAgICAgICAgIAorICAgICAgICAgPC9qYXZhYz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29sbGF0b3JUZXN0cyIgZGVwZW5kcz0iY29sbGF0b3IsIHRlc3RkYXRhIiBkZXNjcmlwdGlvbj0idGVzdCBjb2xsYXRvciBtb2R1bGFyIGJ1aWxkIHRhcmdldCI+CisgICAgICAgIDxqYXZhYyBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YSIvPgorCisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci8qKi8qLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC8qKi8qLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSIvPgorICAgICAgICA8L2phdmFjPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENoYXJhY3RlciBwcm9wZXJ0aWVzIEFQSSBhbmQgdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9InByb3BlcnRpZXNCYXNpYyIgZGVwZW5kcz0iaW5pdCwgcHJvcGVydGllc0NsYXNzZXMsIGNvcHlCYXNpY1Byb3BzRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgYmFzaWMgY2hhcmFjdGVyIHByb3BlcnRpZXMiPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzRnVsbCIgZGVwZW5kcz0iaW5pdCxwcm9wZXJ0aWVzQ2xhc3Nlcyxjb3B5RnVsbFByb3BzRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgZnVsbCBjaGFyYWN0ZXIgcHJvcGVydGllcyI+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzQ2xhc3NlcyI+CisgICAgICAgIDxqYXZhYyBzb3VyY2VwYXRoPSIiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhIi8+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvKiovKiIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9kYXRhLypCcmVhayouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Bc3NlcnQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0NoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeVN0cmVhbS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0xvY2FsZVV0aWxpdHkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVyRGF0YVJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJJbXBsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9SdWxlQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Tb3J0ZWRTZXRSZWxhdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1RyaWUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1RyaWVJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VCaURpUHJvcHMuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2FzZVByb3BzLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJBcnJheUl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVDaG9pY2UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZVJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJVdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVVByb3BlcnR5QWxpYXNlcy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VSTEhhbmRsZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VU2VyaWFsaXplZFNldC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQnJlYWtEaWN0aW9uYXJ5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXplci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9TeW1ib2xUYWJsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZU1hdGNoZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9Db21wYWN0Qnl0ZUFycmF5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvUmFuZ2VWYWx1ZUl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvU3RyaW5nVG9rZW5pemVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhIi8+CisgICAgICAgPC9qYXZhYz4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9InByb3BlcnRpZXNCYXNpY1Rlc3RzIiBkZXBlbmRzPSJwcm9wZXJ0aWVzQmFzaWMiIGRlc2NyaXB0aW9uPSJ0ZXN0IHByb3BlcnRpZXNCYXNpYyBtb2R1bGFyIGJ1aWxkIHRhcmdldCI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLnR4dCIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS8iLz4KKyAgICAgICAgCisgICAgICAgIDxqYXZhYyBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhIi8+CisKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvKiovKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEiLz4KKyAgICAgICAgPC9qYXZhYz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0icHJvcGVydGllc0Z1bGxUZXN0cyIgZGVwZW5kcz0icHJvcGVydGllc0Z1bGwiIGRlc2NyaXB0aW9uPSJ0ZXN0IHByb3BlcnRpZXNGdWxsIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlLyIvPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHRSdW4uamF2YSIvPgorCisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nLyoqLyouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkJyZWFrKi5qYXZhIi8+CQkKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvKkJyZWFrRGljdGlvbmFyeSouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC8qQnJlYWtJdGVyYXRvciouamF2YSIvPgorICAgICAgICA8L2phdmFjPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDwhLS0KKyAgICAgICAgICAgIFRhcmdldHMgdG8gYnVpbGQgb25seSBDb21wcmVzc2lvbiBBUEkgQVBJIGFuZCB0ZXN0cworICAgICAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImNvbXByZXNzaW9uIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBjb21wcmVzc2lvbiBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBzb3VyY2VwYXRoPSIiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9TQ1NVLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRGVjb21wcmVzc29yLmphdmEiLz4KKyAgICAgICAgICAgIAorICAgICAgICA8L2phdmFjPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb21wcmVzc2lvblRlc3RzIiBkZXBlbmRzPSJjb21wcmVzc2lvbiIgZGVzY3JpcHRpb249InRlc3QgY29tcHJlc3Npb24gbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi8qKi8qLmphdmEiLz4KKyAgICAgICAgPC9qYXZhYz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0KKyAgICAgICAgICAgIFRhcmdldHMgdG8gYnVpbGQgb25seSBDYWxlbmRhciBBUEkgYW5kIENhbGVuZGFyIHRlc3RzCisgICAgIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iY2FsZW5kYXIiIGRlcGVuZHM9ImluaXQsY29weUNhbGVuZGFyRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgY2FsZW5kYXIgc2VydmljZXMiPgorICAgICAgICA8amF2YWMgc291cmNlcGF0aD0iIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YSIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEiLz4KKworICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9kYXRhLypDYWxlbmRhciouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9kYXRhLypIb2xpZGF5Ki5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0Fzc2VydC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckFzdHJvbm9tZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckNhY2hlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJEYXRhLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvQ2hhclRyaWUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VCaW5hcnkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VCaW5hcnlTdHJlYW0uamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VEYXRhLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVRGVidWcuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVTG9jYWxlU2VydmljZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVU5vdGlmaWVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUltcGwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VSV0xvY2suamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VTZXJ2aWNlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSW1wbGljaXRDRUdlbmVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0ludFRyaWUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0pES1RpbWVab25lLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvTG9jYWxlVXRpbGl0eS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJEYXRhUmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckltcGwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9PbHNvblRpbWVab25lLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9SZXNvdXJjZUJ1bmRsZVJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1Jlc291cmNlQnVuZGxlV3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1J1bGVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZUl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUJpRGlQcm9wcy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDYXNlUHJvcHMuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhckFycmF5SXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lUmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclV0aWxpdHkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VUkxIYW5kbGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVVByb3BlcnR5QWxpYXNlcy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1pvbmVJbmZvRXh0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvWm9uZU1ldGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvbGFuZy8qIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9tYXRoL0JpZ0RlY2ltYWwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvbWF0aC9NYXRoQ29udGV4dC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9DYW5vbmljYWxJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUnVsZVBhcnNlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0U3ltYm9scy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0RpZ2l0TGlzdC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9ORlJ1bGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9ORlJ1bGVTZXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQqU2hpbS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1Jhd0NvbGxhdGlvbktleS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JCTkZQb3N0UHJvY2Vzc29yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1N5bWJvbFRhYmxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVUZvcm1hdC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZU1hdGNoZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9CeXRlQXJyYXlXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3kuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeUFtb3VudC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsLypDYWxlbmRhciouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC8qSG9saWRheSouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9EYXRlUnVsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL01lYXN1cmUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9NZWFzdXJlVW5pdC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1JhbmdlRGF0ZVJ1bGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9TaW1wbGVEYXRlUnVsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvU3RyaW5nVG9rZW5pemVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvU1RaSW5mby5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhIi8+CisKKyAgICAgICAgPC9qYXZhYz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY2FsZW5kYXJUZXN0cyIgZGVwZW5kcz0iY2FsZW5kYXIiIGRlc2NyaXB0aW9uPSJ0ZXN0IGNhbGVuZGFyIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGphdmFjIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+CisgICAgICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvKiovKiIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgVHJhbnNsaXRlcmF0b3IgQVBJIGFuZCAgdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9InRyYW5zbGl0ZXJhdG9yIiBkZXBlbmRzPSJpbml0LHByb3BlcnRpZXNDbGFzc2VzLGNvcHlUcmFuc2xpdERhdGEiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIHVuaWNvZGUgdHJhbnNmb3JtIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIHNvdXJjZXBhdGg9IiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+CisKKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXJMb2dpYyouamF2YSIvPgorCisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL2RhdGEvUmVzb3VyY2VSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC8qSXRlcmF0b3IqLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvKlByb3BlcnR5Ki5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZVNlcnZpY2UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VOb3RpZmllci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJXTG9jay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVNlcnZpY2UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3JGYWN0b3J5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvKlRyYW5zbGl0ZXJhdG9yKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0RpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9GdW5jdGlvblJlcGxhY2VyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUXVhbnRpZmllci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9TdHJpbmdNYXRjaGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvU3RyaW5nUmVwbGFjZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZVNldC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVSZXBsYWNlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0Nhc2VJbnNlbnNpdGl2ZVN0cmluZy5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InRyYW5zbGl0ZXJhdG9yVGVzdHMiIGRlcGVuZHM9InRyYW5zbGl0ZXJhdG9yIiBkZXNjcmlwdGlvbiA9ICJ0ZXN0IHRyYW5zbGl0ZXJhdG9yIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGphdmFjIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Vbmljb2RlRmlsdGVyTG9naWMqLmphdmEiLz4KKworICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0LyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgRm9ybWF0IEFQSQorICAgICAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iZm9ybWF0IiBkZXBlbmRzPSJpbml0LGNvcHlGb3JtYXREYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBmb3JtYXR0aW5nIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIHNvdXJjZXBhdGg9IiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+CisKKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhIi8+CisKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGEqLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvQXNzZXJ0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyQXN0cm9ub21lci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyQ2FjaGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckRhdGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeVN0cmVhbS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZURhdGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVTm90aWZpZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJXTG9jay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVNlcnZpY2UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JbXBsaWNpdENFR2VuZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSkRLVGltZVpvbmUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Mb2NhbGVVdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL09sc29uVGltZVpvbmUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9SZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1Jlc291cmNlQnVuZGxlV3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1J1bGVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZUl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUJpRGlQcm9wcy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDYXNlUHJvcHMuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhckFycmF5SXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lUmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclV0aWxpdHkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VUHJvcGVydHlBbGlhc2VzLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVVJMSGFuZGxlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VTZXJpYWxpemVkU2V0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1pvbmVJbmZvRXh0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvWm9uZU1ldGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvbGFuZy8qIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9tYXRoL0JpZ0RlY2ltYWwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvbWF0aC9NYXRoQ29udGV4dC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC8qRm9ybWF0Ki5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0LypDb2xsYXRvciouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9DYW5vbmljYWxJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9ORlJ1bGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9ORlJ1bGVTZXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9SYXdDb2xsYXRpb25LZXkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9SQk5GUG9zdFByb2Nlc3Nvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9TeW1ib2xUYWJsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9VQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZU1hdGNoZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9CeXRlQXJyYXlXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXJEYXRhLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXJGYWN0b3J5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvQ0VDYWxlbmRhci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0NoaW5lc2VDYWxlbmRhci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0NvcHRpY0NhbGVuZGFyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3kuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeUFtb3VudC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0V0aGlvcGljQ2FsZW5kYXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9HcmVnb3JpYW5DYWxlbmRhci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0hlYnJld0NhbGVuZGFyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvSmFwYW5lc2VDYWxlbmRhci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL01lYXN1cmUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9NZWFzdXJlVW5pdC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1JhbmdlVmFsdWVJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvU1RaSW5mby5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1N0cmluZ1Rva2VuaXplci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CQorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJmb3JtYXRUZXN0cyIgZGVwZW5kcz0iZm9ybWF0IiBkZXNjcmlwdGlvbj0idGVzdCBmb3JtYXQgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0LyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSIvPgorICAgICAgICA8L2phdmFjPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0KKyAgICAgICAgICAgIFRhcmdldHMgdG8gYnVpbGQgb25seSBCcmVha0l0ZXJhdG9yIEFQSQorICAgICAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iYnJlYWtJdGVyYXRvciIgZGVwZW5kcz0iaW5pdCxjb3B5RnVsbFByb3BzRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgYnJlYWsgaXRlcmF0b3Igc2VydmljZXMiPgorICAgICAgICA8amF2YWMgc291cmNlcGF0aD0iIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKworICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhIi8+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkJyZWFrKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0Fzc2VydC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0NoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0NoYXJUcmllLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5U3RyZWFtLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVRGVidWcuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VEYXRhLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlSW1wbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZURhdGEuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSUNVTm90aWZpZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVJXTG9jay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL0lDVVNlcnZpY2UuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Mb2NhbGVVdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1JlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvU29ydGVkU2V0UmVsYXRpb24uamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZUl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQmlEaVByb3BzLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNhc2VQcm9wcy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lQ2hvaWNlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyVXRpbGl0eS5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1VQcm9wZXJ0eUFsaWFzZXMuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VUkxIYW5kbGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvKiovKiIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC8qQnJlYWtJdGVyYXRvciouamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9CcmVha0RpY3Rpb25hcnkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUkJCSURhdGFXcmFwcGVyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1N5bWJvbFRhYmxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTWF0Y2hlci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXQuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL0NvbXBhY3RCeXRlQXJyYXkuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9TdHJpbmdUb2tlbml6ZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9VUmVzb3VyY2VCdW5kbGUuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3V0aWwvVmFsdWVJdGVyYXRvci5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS91dGlsL1ZlcnNpb25JbmZvLmphdmEiLz4KKyAgICAgICAgPC9qYXZhYz4KKworICAgICAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGguYnJrIgorICAgICAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhLyIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJicmVha0l0ZXJhdG9yVGVzdHMiIGRlcGVuZHM9ImJyZWFrSXRlcmF0b3IiIGRlc2NyaXB0aW9uPSJ0ZXN0IGJyZWFrSXRlcmF0b3IgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKworICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS8qKi8qIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEiLz4KKyAgICAgICAgPC9qYXZhYz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3JiYml0c3QudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpIi8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IFN0cmluZ1ByZXAgYW5kIElETkEgQVBJCisgICAgIC0tPiAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlTdHJpbmdQcmVwRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5zcHAiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91YmlkaS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91Y2FzZS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ic3RyaW5nUHJlcCIgZGVwZW5kcz0iaW5pdCxub3JtYWxpemVyLGNvcHlTdHJpbmdQcmVwRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2Ygc3RyaW5ncHJlcCBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBzb3VyY2VwYXRoPSIiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorCisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9DVlMvKiovKiIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXIqLmphdmEiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSIvPgorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhIi8+CisgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEiLz4KKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhIi8+CisKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2ltcGwvKlN0cmluZ1ByZXAqLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvKlN0cmluZ1ByZXAqLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvKklETkEqLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L3RleHQvUHVueWNvZGUuamF2YSIvPgorCisgICAgICAgIDwvamF2YWM+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InN0cmluZ1ByZXBUZXN0cyIgZGVwZW5kcz0ic3RyaW5nUHJlcCIgZGVzY3JpcHRpb249InRlc3Qgc3RyaW5nUHJlcCBtb2R1bGFyIGJ1aWxkIHRhcmdldCI+CisgICAgICAgIDxqYXZhYyBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiPgorICAgIAorICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvKiovKiIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5zcHAiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi9pZG5hX3J1bGVzLnJlcyIvPgorICAgICAgICAgICAgPC9wYXR0ZXJuc2V0PgorICAgICAgICA8L3VuamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJleGNsdWRlQ2hhcnNldCIgZGVwZW5kcz0iY29yZSIgZGVzY3JpcHRpb249ImV4Y2x1ZGVzIGNoYXJzZXQgbW9kdWxlIGZyb20gSUNVNEoiPgorICAgICAgICA8ZGVsZXRlIGZhaWxvbmVycm9yPSJ5ZXMiPiAgICAgICAgICAgIAorICAgICAgICAgICAgPGZpbGVzZXQgIGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkdCR7aWN1NGoudmVyc2lvbi5udW1iZXJ9Yi8iPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IiouY252Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY252YWxpYXMuaWN1Ii8+CisgICAgICAgICAgICA8L2ZpbGVzZXQ+CisgICAgICAgICAgICA8ZmlsZXNldCAgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvY2hhcnNldCIvPgorICAgICAgICAgICAgPGZpbGVzZXQgIGRpcj0iJHtidWlsZC5kaXJ9L01FVEEtSU5GLyIvPgorICAgICAgICA8L2RlbGV0ZT4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImV4Y2x1ZGVDaGFyc2V0VGVzdHMiIGRlcGVuZHM9InRlc3RzIiBkZXNjcmlwdGlvbj0iZXhjbHVkZXMgY2hhcnNldCAgdGVzdCBmcm9tIElDVTRKIj4KKyAgICAgICAgPGRlbGV0ZSBmYWlsb25lcnJvcj0ieWVzIj4gICAgICAgICAgICAKKyAgICAgICAgICAgIDxmaWxlc2V0ICBkaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0Ii8+CisgICAgICAgIDwvZGVsZXRlPgorICAgIDwvdGFyZ2V0PiAgICAKKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9Im1vZHVsZUNoZWNrIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0icnVuIHRlc3RzIGZvciBtb2R1bGUgamFyIj4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1ub3Rocm93Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbm9kYXRhIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDwhLS0gYnVpbGQgdGhlIGV4dHJhIFRyYW5zbGl0ZXJhdG9yIGRhdGEgcGVydGFpbmluZyB0byBIYW4tTGF0aW4gdHJhbnNsaXRlcmF0aW9uIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iZXh0cmFUcmFuc2xpdGVyYXRvckRhdGEiIGRlcGVuZHM9ImluaXQiIGRlc2NyaXB0aW9uPSJidWlsZCBoYW4tdG8tbGF0aW4gdHJhbnNsaXRlcmF0b3IgZGF0YSAobm9ybWFsbHkgb21pdHRlZCkiPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YSI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhIiBpbmNsdWRlcz0iVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluXyoudHh0Ii8+CisgICAgICAgIDwvY29weT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gVGFyZ2V0IGZvciBidWlsaW5nIFhMSUZGMklDVUNvbnZlcnRlciBKYXIgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9InhsaWZmIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgeGxpZmYgY29udmVydGVyIHRvb2wiPgorICAgICAgICA8amF2YWMgc291cmNlcGF0aD0iIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIj4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9YTElGRjJJQ1VDb252ZXJ0ZXIuamF2YSIvPgorICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdG9vbC94bWxjb21wYXJhdG9yL1hNTFZhbGlkYXRvci5qYXZhIi8+CisgICAgICAgIDwvamF2YWM+CisgICAgICAgIDxqYXIgamFyZmlsZT0ieGxpZmYuamFyIgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1hMSUZGMklDVUNvbnZlcnRlciouY2xhc3MsY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uY2xhc3MiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQnVpbHQtQnkiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgPHNlY3Rpb24gbmFtZT0iY29tbW9uIj4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1UaXRsZSIgdmFsdWU9IlhMSUZGIFRvIElDVSBDb252ZXJ0ZXIiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZW5kb3IiIHZhbHVlPSJJQ1UiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVGl0bGUiIHZhbHVlPSJYTElGRjJJQ1VDb252ZXJ0ZXIiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICAgICAgICAgIAorICAgICAgICA8amFyIGphcmZpbGU9InhsaWZmLXNyYy5qYXIiCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvWExJRkYySUNVQ29udmVydGVyLmphdmEsY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmphdmEsY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbi5qYXZhIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtzcmMuZGlyfSI+CisgICAgICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1UaXRsZSIgdmFsdWU9IlhMSUZGIFRvIElDVSBDb252ZXJ0ZXIgU291cmNlcyIvPgorICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IlhMSUZGMklDVUNvbnZlcnRlciBTb3VyY2VzIi8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgICAgICA8L2phcj4KKyAgICAgPC90YXJnZXQ+CisgICAgIAorICAgIDwhLS0gVGFyZ2V0IGZvciBidWlsaW5nIFV0aWxpdGllcyBKYXIgZm9yIENMRFIgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZHJVdGlsIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgVXRpbGl0aWVzIGZvciBDTERSIj4KKyAgICAgICAgPGphdmFjIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+CisKKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEiLz4KKyAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvKi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9VT3B0aW9uLmphdmEiLz4KKyAgICAgICAgPC9qYXZhYz4KKyAgICAgICAgPGphciBqYXJmaWxlPSJ1dGlsaXRpZXMuamFyIgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC8qLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrKi5jbGFzcyxjb20vaWJtL2ljdS9kZXYvdGVzdC9BYnN0cmFjdFRlc3QqLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cqLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24qLmNsYXNzIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICA8bWFuaWZlc3Q+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJCdWlsdC1CeSIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVRpdGxlIiB2YWx1ZT0iVXRpbGl0aWVzIGZvciBDTERSIFRvb2xzIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iQ0xEUiBVdGlsaXRpZXMiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICAgPC90YXJnZXQ+CisgICAgIAorICAgICA8IS0tVGFyZ2V0IGZvciBidWlsZGluZyBqYXJzIC0tPgorICAgICA8dGFyZ2V0IG5hbWU9ImRpc3RKYXJzIiBkZXBlbmRzPSJqYXJTcmMsIGphciwgamFyRG9jcyIgLz4gICAKKyAgICAgCisgICAgIDwhLS0gVGFyZ2V0IGZvciBjaGVja2luZyB0aGUgbG9hZGluZyBvZiBidW5kbGVzIGZyb20gdGhlIGRlZmF1bHQgcGFja2FnZS4KKyAgICAgICAgICBUaGlzIGlzIGhhY2sgdG8gZ2V0IGFyb3VuZCBFY2xpcHNlJ3MgYnVpbGQgcHJvYmxlbXMuIAorICAgICAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImRlZmF1bHRQYWNrYWdlIiBkZXBlbmRzPSJ0ZXN0cyIgZGVzY3JpcHRpb249IlRlc3RzIGZvciBsb2FkaW5nIHJlc291cmNlcyBpbiB0aGUgZGVmYXVsdCBwYWNrYWdlIj4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REZWZhdWx0UGFja2FnZUxvYWRpbmcuanBwIgorICAgICAgICAgICAgdG9maWxlPSIke3NyYy5kaXJ9L1Rlc3REZWZhdWx0UGFja2FnZUxvYWRpbmcuamF2YSIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdERhdGFfZW4uanBwIgorICAgICAgICAgICAgdG9maWxlPSIke3NyYy5kaXJ9L1Rlc3REYXRhX2VuLmphdmEiLz4KKyAgICAgICAgPGphdmFjIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiI+CisKKyAgICAgICAgICAgIDxleGNsdWRlIG5hbWU9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJUZXN0RGF0YV9lbi5qYXZhIi8+CisgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJUZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmphdmEiLz4KKyAgICAgICAgPC9qYXZhYz4KKyAgICAgICAgPCEtLSBjb3B5IHRoZSBmaWxlIHRvIGRlZmF1bHQgcGFja2FnZSBhbmQgdGVzdCBpZiB3ZSBjYW4gbG9hZCBpdCAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL3RlLnJlcyIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vIi8+CisgICAgICAgIDwhLS0gY29weSB0aGUgZmlsZSB1cCBvbmUgbGV2ZWwgYW5kIHRlc3QgaWYgamF2YSBzdHlsZSBiYXNlIG5hbWUgbG9hZGluZyB3b3JrcyAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL3RlLnJlcyIKKyAgICAgICAgICAgIHRvZmlsZT0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhX2JnZS5yZXMiLz4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImRlZmF1bHRQYWNrYWdlQ2hlY2siIGRlcGVuZHM9InRlc3RzLCBkZWZhdWx0UGFja2FnZSIgZGVzY3JpcHRpb249IlJ1biBUZXN0cyBmb3IgbG9hZGluZyByZXNvdXJjZXMgaW4gdGhlIGRlZmF1bHQgcGFja2FnZSI+CisgICAgICAgICAgICA8IS0tcnVuIHRoZSB0ZXN0cyAtLT4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJUZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxqdm1hcmcgdmFsdWU9Ii1lYSIvPiAgPCEtLSBlbmFibGUgYXNzZXJ0aW9uIGNoZWNrcyAtLT4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2phdmEuY2xhc3MucGF0aH0vIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJjbG92ZXIuamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gY29udmVydCBAZGVwcmVjYXRlZCBAZHJhZnQgdGFncyB0byBAcHJvdmlzaW9uYWwgLS0+CisgICAgPHRhcmdldCBuYW1lPSJzd2F0RGVwcmVjYXRlZCIgZGVwZW5kcz0iaW5pdCwgdG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Td2F0RGVwcmVjYXRlZCIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXNyYyIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSIke3NyYy5kaXJ9Ii8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1kc3QiLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtzcmMuZGlyfSIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItb3ZlcndyaXRlIi8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii12ZXJib3NlIi8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gY29udmVydCBAcHJvdmlzaW9uYWwgdGFncyB0byBAZGVwcmVjYXRlZCAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJlc3RvcmVEZXByZWNhdGVkIiBkZXBlbmRzPSJpbml0LCB0b29scyIgaWY9InZlcnNpb24uMS40Ij4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLlN3YXREZXByZWNhdGVkIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItcHJvdiIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItc3JjIi8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7c3JjLmRpcn0iLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWRzdCIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSIke3NyYy5kaXJ9Ii8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1vdmVyd3JpdGUiLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXZlcmJvc2UiLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDwhLS0gZm9yIGJ1aWxkaW5nIGVjbGlwc2UgZGlzdHJpYnV0aW9uIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZVByb2plY3RzIiAKKyAgICAgICAgZGVwZW5kcz0iZWNsaXBzZUNvcmVQcm9qZWN0LGVjbGlwc2VUZXN0UHJvamVjdCxlY2xpcHNlV3JhcHBlclByb2plY3QiCisgICAgICAgIGRlc2NyaXB0aW9uPSJjcmVhdGUgYWxsIGVjbGlwc2UgaWN1IHByb2plY3RzIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9InVuZG9FY2xpcHNlTWFuZ2xlIiBkZXBlbmRzPSJidWlsZG1hbmdsZSIgZGVzY3JpcHRpb249InByZXByb2Nlc3MgZmlsZXMgYmFjayB0byBkZWZhdWx0KSI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Db2RlTWFuZ2xlciIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGxvZ0Vycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IkBlY2xpcHNlQ29yZUFyZ3MudHh0Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSJAZWNsaXBzZVRlc3RBcmdzLnR4dCIvPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VDb3JlTWFuZ2xlIiBkZXBlbmRzPSJidWlsZG1hbmdsZSI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Db2RlTWFuZ2xlciIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGxvZ0Vycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1kRk9VTkRBVElPTiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXQiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IkBlY2xpcHNlQ29yZUFyZ3MudHh0Ii8+CisgICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VDb3JlIiBkZXBlbmRzPSJpbml0LGNvcmVEYXRhLGljdWRhdGEsZWNsaXBzZUNvcmVNYW5nbGUiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3V0aWwvKiovKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvKiovKi5qYXZhLGNvbS9pYm0vaWN1L21hdGgvKiovKi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvKiovKi5qYXZhLGNvbS9pYm0vaWN1L2xhbmcvKi5qYXZhIgorICAgICAgICAgICAgY29tcGlsZXI9ImphdmFjMS4zIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBib290Y2xhc3NwYXRoPSJlZS5mb3VuZGF0aW9uLmphciIKKyAgICAgICAgICAgIHNvdXJjZT0iMS4zIgorICAgICAgICAgICAgdGFyZ2V0PSIxLjEiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIAorICAgICAgICAgICAgZGVwcmVjYXRpb249Im9mZiIKKyAgICAgICAgICAgIGVuY29kaW5nPSJhc2NpaSIvPgorICAgICAgICA8YW50Y2FsbCB0YXJnZXQ9ImluZGljZXMiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2phci5maWxlfSIgY29tcHJlc3M9InRydWUiPgorICAgICAgICAgICAgPGZpbGVzZXQgICAgZGlyPSIke2Jhc2VkaXJ9IiBpbmNsdWRlcz0ibGljZW5zZS5odG1sLCB1bmljb2RlLWxpY2Vuc2UudHh0IiAvPgorICAgICAgICAgICAgPGZpbGVzZXQgICAgZGlyPSIke2J1aWxkLmRpcn0iICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVzPSJNRVRBLUlORi9zZXJ2aWNlcy8qKi8qLGNvbS9pYm0vaWN1L2NoYXJzZXQvKiovKiwke2ljdTRqLmRhdGEucGF0aH0vKi5jbnYsICR7aWN1NGouZGF0YS5wYXRofS9jbnZhbGlhcy5pY3UiLz4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBFY2xpcHNlIEJ1aWxkIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iIElDVSBmb3IgSmF2YSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29yZVByb2plY3QiIGRlcGVuZHM9ImVjbGlwc2VDb3JlIiBkZXNjcmlwdGlvbj0iZ2F0aGVyIGVjbGlwc2UgaWN1IGNvcmUgcHJvamVjdCBmaWxlcyI+CisgICAgICAgIDxkZWxldGUgZmFpbG9uZXJyb3I9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UtZmVhdHVyZSIvPgorICAgICAgICA8L2RlbGV0ZT4KKyAgICAgICAgPCEtLSBjb2xsZWN0IHNvdXJjZSBmaWxlcyAtLT4KKyAgICAgICAgPGNvcHkgdG9EaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1L3NyYy9jb20vaWJtL2ljdSI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9InNyYy9jb20vaWJtL2ljdSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJpbXBsLyoqLyosbGFuZy8qKi8qLG1hdGgvKiovKix0ZXh0LyoqLyosdXRpbC8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLCoqLyouamFyLCoqL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbioudHh0Ii8+CisgICAgICAgIDwvY29weT4KKyAgICAgICAgPCEtLSBjb2xsZWN0IGljdSBkYXRhIGZpbGVzIC0tPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3Uvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YSI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiIAorICAgICAgICAgICAgICAgIGluY2x1ZGVzPSIqKi8qLmJyaywqKi8qLmljdSwqKi8qLnJlcywqKi8qLnNwcCwqKi8qLnR4dCIKKyAgICAgICAgICAgICAgICBleGNsdWRlcz0iKiovVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIGNvbGxlY3QgZWNsaXBzZSBwcm9qZWN0IGZpbGVzIC0tPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2VjbGlwc2UuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20uaWJtLmljdS8qKi8qLGNvbS5pYm0uaWN1LWZlYXR1cmUvKiovKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDwhLS0gY29weSBJQ1UgbGljZW5zZSBmaWxlIC0tPgorICAgICAgICA8Y29weSBmaWxlPSJsaWNlbnNlLmh0bWwiCisgICAgICAgIHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS9hYm91dF9maWxlcyIvPgorICAgICAgICA8IS0tIHVjZCB0ZXJtcyAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0ic3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvdWNkdGVybXMudHh0IgorICAgICAgICB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UvYWJvdXRfZmlsZXMiLz4KKyAgICAgICAgPCEtLSBjb3B5IElDVSBhYm91dCBmaWxlIC0tPgorICAgICAgICA8Y29weSBmaWxlPSIke2VjbGlwc2UuZGlyfS9taXNjL2Fib3V0X2ljdS5odG1sIgorICAgICAgICB0b2ZpbGU9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1L2Fib3V0Lmh0bWwiLz4KKyAgICAgICAgPCEtLSBjb21tb24gZWNsaXBzZSBhYm91dCBmaWxlIC0tPgorICAgICAgICA8Y29weSBmaWxlPSIke2VjbGlwc2UuZGlyfS9taXNjL2Fib3V0Lmh0bWwiCisgICAgICAgIHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luIi8+CisgICAgPC90YXJnZXQ+CisKKworICAgIDwhLS0gZW5zdXJlIGVjbGlwc2Ugd3JhcHBlciBjb2RlIGJ1aWxkcyB3aXRoIGZvdW5kYXRpb24xLjAvamF2YTEuMyAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VXcmFwcGVyIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyouamF2YSxjb20vaWJtL2ljdS90ZXh0LyoqLyouamF2YSIKKyAgICAgICAgICAgIGNvbXBpbGVyPSJqYXZhYzEuMyIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYyIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7d3JhcHBlci5idWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBib290Y2xhc3NwYXRoPSJlZS5mb3VuZGF0aW9uLmphciIKKyAgICAgICAgICAgIHNvdXJjZT0iMS4zIgorICAgICAgICAgICAgdGFyZ2V0PSIxLjEiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIAorICAgICAgICAgICAgZGVwcmVjYXRpb249Im9mZiIKKyAgICAgICAgICAgIGVuY29kaW5nPSJhc2NpaSIvPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7amRrLndyYXBwZXIuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke3dyYXBwZXIuYnVpbGQuZGlyfSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlV3JhcHBlclRlc3QiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8IS0tIFRPRE86IGJ1aWxkIHRoZSB3cmFwcGVyIHRlc3QgY29kZSB0aGlzIGFudCB0YXJnZXQgLS0+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VXcmFwcGVyUHJvamVjdCIgZGVwZW5kcz0iZWNsaXBzZVdyYXBwZXIsZWNsaXBzZVdyYXBwZXJUZXN0IiBkZXNjcmlwdGlvbj0iZ2F0aGVyIGVjbGlwc2UgaWN1IGNvcmUgcHJvamVjdCBmaWxlcyI+CisgICAgICAgIDxkZWxldGUgZmFpbG9uZXJyb3I9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UuYmFzZSIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UuYmFzZS50ZXN0cyIvPgorICAgICAgICA8L2RlbGV0ZT4KKyAgICAgICAgPCEtLSBjb2xsZWN0IGVjbGlwc2UgcHJvamVjdCBmaWxlcyAtLT4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9Ij4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLmRpcn0iCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tLmlibS5pY3UuYmFzZS8qKi8qLGNvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS8qKi8qLGNvbS5pYm0uaWN1LmJhc2UudGVzdHMvKiovKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDwhLS0gY29weSBJQ1UgbGljZW5zZSBmaWxlIC0tPgorICAgICAgICA8Y29weSBmaWxlPSJsaWNlbnNlLmh0bWwiCisgICAgICAgIHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS5iYXNlL2Fib3V0X2ZpbGVzIi8+CisgICAgICAgIDwhLS0gY29weSBJQ1UgYWJvdXQgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtlY2xpcHNlLmRpcn0vbWlzYy9hYm91dF9pY3UuaHRtbCIKKyAgICAgICAgdG9maWxlPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS5iYXNlL2Fib3V0Lmh0bWwiLz4KKyAgICAgICAgPCEtLSBjb21tb24gZWNsaXBzZSBhYm91dCBmaWxlIC0tPgorICAgICAgICA8Y29weSBmaWxlPSIke2VjbGlwc2UuZGlyfS9taXNjL2Fib3V0Lmh0bWwiCisgICAgICAgIHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZVRlc3RNYW5nbGUiIGRlcGVuZHM9ImJ1aWxkbWFuZ2xlIj4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkNvZGVNYW5nbGVyIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgbG9nRXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWRGT1VOREFUSU9OIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItdCIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iQGVjbGlwc2VUZXN0QXJncy50eHQiLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlVGVzdHMiIGRlcGVuZHM9ImVjbGlwc2VDb3JlLHRlc3RkYXRhLGVjbGlwc2VUZXN0TWFuZ2xlIiBkZXNjcmlwdGlvbj0iYnVpbGQgdGVzdHMgdHJpbW1lZCBmb3IgZWNsaXBzZSBBUEkiPgorICAgIAk8IS0tIFRPRE86IHdlIHNob3VsZCBhY3R1YWxseSB1c2UgZWUuZm91bmRhdGlvbi5qYXIgZm9yIGVjbGlwc2UgZW52IC0tPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0LyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKixjb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0LyoqLyouKixjb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmLyoqLyouKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iMS4zIgorICAgICAgICAgICAgdGFyZ2V0PSIxLjMiCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIKKyAgICAgICAgICAgIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGFudGNhbGwgdGFyZ2V0PSJpbmRpY2VzIi8+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHt0ZXN0amFyLmZpbGV9IiBjb21wcmVzcz0idHJ1ZSIgPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi9kYXRhLyoqLyoiLz4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJUZXN0cyBmb3IgSUNVNEogIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iVGVzdHMgZm9yIElDVTRKIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPiAKKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yIiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkNvcHlyaWdodC1JbmZvIiB2YWx1ZT0iJHtjb3B5cmlnaHR9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNlYWxlZCIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgPC9tYW5pZmVzdD4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VUZXN0UHJvamVjdCIgZGVwZW5kcz0iZWNsaXBzZVRlc3RzLHppcFRlc3RTcmMiIGRlc2NyaXB0aW9uPSJnYXRoZXIgZWNsaXBzZSBpY3UgdGVzdCBwcm9qZWN0IGZpbGVzIj4KKyAgICAgICAgPGRlbGV0ZSBmYWlsb25lcnJvcj0ibm8iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS50ZXN0cyIvPgorICAgICAgICA8L2RlbGV0ZT4KKyAgICAgICAgPCEtLSBjb3B5IGVjbGlwc2UgdGVzdCBzb3VyY2UgYW5kIHByb2plY3QgZmlsZXMgLS0+CisgICAgICAgIDxjb3B5IHRvRGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS50ZXN0cyI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5kaXJ9L2NvbS5pYm0uaWN1LnRlc3RzIgorICAgICAgICAgICAgaW5jbHVkZXM9IioqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDwhLS0gY29weSBpY3UgdGVzdCBqYXIgLS0+CisgICAgICAgIDxjb3B5IHRvRGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS50ZXN0cyIgZmlsZT0iJHt0ZXN0amFyLmZpbGV9Ii8+CisgICAgICAgIDwhLS0gY29weSBpY3UgdGVzdCBzb3VyY2UgemlwIC0tPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UudGVzdHMiIGZpbGU9IiR7emlwVGVzdFNyYy5maWxlfSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJ6aXBDb3JlU3JjIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgemlwIG9mIGNvcmUgc291cmNlcyBmb3IgZGVidWdnaW5nIj4KKyAgICAgICAgPCEtLSBmb3IgZWNsaXBzZSAtLT4KKyAgICAgICAgPHppcCBkZXN0ZmlsZT0iJHt6aXBDb3JlU3JjLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9Ii4uL2xpY2Vuc2UuaHRtbCwuLi9Db3B5cmlnaHRfQXNzaWdubWVudC5ydGYsY29tL2libS9pY3UvaW1wbC8qKi8qLGNvbS9pYm0vaWN1L2xhbmcvKiovKixjb20vaWJtL2ljdS9tYXRoLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L3V0aWwvKiovKiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJ6aXBUZXN0U3JjIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgemlwIG9mIHRlc3Qgc291cmNlcyBmb3IgZGVidWdnaW5nIj4KKyAgICAgICAgPCEtLSBmb3IgZWNsaXBzZSAtLT4KKyAgICAgICAgPHppcCBkZXN0ZmlsZT0iJHt6aXBUZXN0U3JjLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0LyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvY2xkci8qKi8qLCBjb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmLyoqLyoiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZ2F0aGVySUNVNEpXcmFwcGVyQVBJIiBkZXBlbmRzPSJ0b29scyIgaWY9InZlcnNpb24uMS40Ij4KKyAgICAgICAgPGphdmFkb2MgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgcGFja2FnZW5hbWVzPSJjb20uaWJtLmljdS50ZXh0LGNvbS5pYm0uaWN1LnV0aWwiCisgICAgICAgICAgICBzb3VyY2U9IjEuNCI+CisgICAgICAgICAgICA8ZG9jbGV0IG5hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuR2F0aGVyQVBJRGF0YSIKKyAgICAgICAgICAgICAgICBwYXRoPSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItbmFtZSIgdmFsdWU9IklDVTRKIDMuNiIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItYmFzZSIgdmFsdWU9ImNvbS5pYm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPHBhcmFtIG5hbWU9Ii1vdXRwdXQiIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqMzZ3X2kuYXBpIi8+CisgICAgICAgICAgICAgICAgPHBhcmFtIG5hbWU9Ii1maWx0ZXIiIHZhbHVlPSJCcmVha0l0ZXJhdG9yfENvbGxhdGlvbktleXxDb2xsYXRvcnxEYXRlRm9ybWF0fERlY2ltYWxGb3JtYXR8TWVzc2FnZUZvcm1hdHxOdW1iZXJGb3JtYXR8U2ltcGxlRGF0ZUZvcm1hdHxTdHJpbmdUb2tlbml6ZXJ8Q2FsZW5kYXJ8VGltZVpvbmV8VUxvY2FsZXxEYXRlRm9ybWF0U3ltYm9sc3xEZWNpbWFsRm9ybWF0U3ltYm9sc3xDYWxlbmRhcnxUaW1lWm9uZSIvPgorICAgICAgICAgICAgICAgIDwhLS0gcGFyYW0gbmFtZT0iLWd6aXAiLyAtLT4KKyAgICAgICAgICAgIDwvZG9jbGV0PgorICAgICAgICA8L2phdmFkb2M+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImdhdGhlckVjbGlwc2VXcmFwcGVyQVBJIiBkZXBlbmRzPSJ0b29scyIgaWY9InZlcnNpb24uMS40Ij4KKyAgICAgICAgPGphdmFkb2MgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjIgorICAgICAgICAgICAgcGFja2FnZW5hbWVzPSJjb20uaWJtLmljdS50ZXh0LGNvbS5pYm0uaWN1LnV0aWwiCisgICAgICAgICAgICBzb3VyY2U9IjEuNCI+CisgICAgICAgICAgICA8ZG9jbGV0IG5hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuR2F0aGVyQVBJRGF0YSIKKyAgICAgICAgICAgICAgICBwYXRoPSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItbmFtZSIgdmFsdWU9IklDVTRKIDMuNiBXcmFwcGVyIi8+CisgICAgICAgICAgICAgICAgPHBhcmFtIG5hbWU9Ii1iYXNlIiB2YWx1ZT0iY29tLmlibS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW91dHB1dCIgdmFsdWU9IiR7YXBpLmRpcn0vaWN1NGozNndfZS5hcGkiLz4KKyAgICAgICAgICAgICAgICA8IS0tIHBhcmFtIG5hbWU9Ii1nemlwIi8gLS0+CisgICAgICAgICAgICA8L2RvY2xldD4KKyAgICAgICAgPC9qYXZhZG9jPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJyZXBvcnRXcmFwcGVyQVBJIiBkZXBlbmRzPSJ0b29scyIgaWY9InZlcnNpb24uMS40Ij4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLlJlcG9ydEFQSSIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1vbGQ6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqJHtpY3U0ai5wcmV2aW91cy52ZXJzaW9uLm51bWJlcn13X2kuYXBpIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbmV3OiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0aiR7aWN1NGoudmVyc2lvbi5udW1iZXJ9d19lLmFwaSIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWh0bWwiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1vdXQ6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqX2NvbXBhcmVfJHtpY3U0ai5wcmV2aW91cy52ZXJzaW9uLm51bWJlcn1fd3JhcHBlcl9qYXZhLmh0bWwiLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJydW5DaGVjayIgZGVwZW5kcz0iaW5pdCx0ZXN0cyI+ICAgIAorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwiIGZvcms9InllcyIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW4iLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7amF2YS5jbGFzcy5wYXRofS8iLz4KKyAgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2phci5maWxlfSIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtjaGFyc2V0cy5qYXIuZmlsZX0iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249ImNsb3Zlci5qYXIiLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aD0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlUnVuQ2hlY2siIGRlcGVuZHM9ImluaXQsZWNsaXBzZVRlc3RzIj4gICAgCisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbiIvPgorICAgICAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aD0iJHtqYXZhLmNsYXNzLnBhdGh9LyIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iaWN1NGouamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJjbG92ZXIuamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZUNvbXBhdCIgZGVwZW5kcz0iaW5pdCwgZWNsaXBzZUNvcmUiLz4KKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VDb21wYXRUZXN0cyIgZGVwZW5kcz0iaW5pdCwgZWNsaXBzZVRlc3RNYW5nbGUsIGVjbGlwc2VUZXN0cyIgLz4KKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VDb21wYXRDaGVjayIgZGVwZW5kcz0iaW5pdCwgZWNsaXBzZUNvbXBhdCwgZWNsaXBzZUNvbXBhdFRlc3RzLCBkZWxldGVDb3JlLCBlY2xpcHNlUnVuQ2hlY2siLz4KKworCisgICAgPHRhcmdldCBuYW1lPSJjb3JlMTMiIGRlcGVuZHM9ImluaXQsY29yZURhdGEsaWN1ZGF0YSIgZGVzY3JpcHRpb249ImJ1aWxkIGNvcmUgY2xhc3NlcyBhbmQgZGF0YSI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLmphdmEsY29tL2libS9pY3UvdGV4dC8qKi8qLmphdmEsY29tL2libS9pY3UvbWF0aC8qKi8qLmphdmEsY29tL2libS9pY3UvaW1wbC8qKi8qLmphdmEsY29tL2libS9pY3UvbGFuZy8qLmphdmEsY29tL2libS9pY3UvY2hhcnNldC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosY29tL2libS9pY3UvY2hhcnNldC8qKi8qLioiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiCisgICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iamFyMTMiIGRlcGVuZHM9ImNvcmUxMyxpbmRpY2VzIiBkZXNjcmlwdGlvbj0iYnVpbGQgZnVsbCAnaWN1NGouamFyJyBqYXIgZmlsZSBmb3IgamRrMS4zIj4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2phci5maWxlfSIgICAgY29tcHJlc3M9InRydWUiPgorICAgICAgICAgICAgPGZpbGVzZXQgICAgZGlyPSIke2Jhc2VkaXJ9IiBpbmNsdWRlcz0ibGljZW5zZS5odG1sLCB1bmljb2RlLWxpY2Vuc2UudHh0IiAvPgorICAgICAgICAgICAgPGZpbGVzZXQgICAgZGlyPSIke2J1aWxkLmRpcn0iICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVzPSJNRVRBLUlORi9zZXJ2aWNlcy8qKi8qLGNvbS9pYm0vaWN1L2NoYXJzZXQvKiovKiwke2ljdTRqLmRhdGEucGF0aH0vKi5jbnYsICR7aWN1NGouZGF0YS5wYXRofS9jbnZhbGlhcy5pY3UiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBKREsgMS4zIENvbXBhdGlibGUgQnVpbGQiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZW5kb3IiIHZhbHVlPSJJQ1UiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVGl0bGUiIHZhbHVlPSIgSUNVIGZvciBKYXZhIENoYXJzZXRzIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPiAKKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yIiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkNvcHlyaWdodC1JbmZvIiB2YWx1ZT0iJHtjb3B5cmlnaHR9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNlYWxlZCIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgPC9tYW5pZmVzdD4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImpkazEzQ29tcGF0IiBkZXBlbmRzPSJpbml0LCBlY2xpcHNlQ29yZU1hbmdsZSwgY29yZTEzIiBkZXNjcmlwdGlvbj0iYnVpbGRzIElDVTRKIGNvcmUgd2l0aCBKREsgMS4zIi8+CisgICAgPHRhcmdldCBuYW1lPSJqZGsxM0NvbXBhdFRlc3RzIiBkZXBlbmRzPSJpbml0LCBqZGsxM0NvbXBhdCwgZWNsaXBzZVRlc3RNYW5nbGUsIGVjbGlwc2VUZXN0cyIgZGVzY3JpcHRpb249ImJ1aWxkcyBJQ1U0SiB0ZXN0cyB3aXRoIEpESyAxLjMiLz4KKyAgICA8dGFyZ2V0IG5hbWU9ImpkazEzQ29tcGF0Q2hlY2siIGRlcGVuZHM9ImluaXQsIGpkazEzQ29tcGF0VGVzdHMsIGphcjEzLCBkZWxldGVDb3JlLCBlY2xpcHNlUnVuQ2hlY2siIGRlc2NyaXB0aW9uPSJydW5zIHRoZSB0ZXN0cyB3aXRoIEpESyAxLjMiLz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2VDb3JlQXJncy50eHQgYi9lY2xpcHNlQ29yZUFyZ3MudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzN2Q4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9lY2xpcHNlQ29yZUFyZ3MudHh0CkBAIC0wLDAgKzEsMjIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisjIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK3NyYy9jb20vaWJtL2ljdS9pbXBsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YQorc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGUuamF2YQorc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEKK3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS9pbXBsL0xSVU1hcC5qYXZhCitzcmMvY29tL2libS9pY3UvaW1wbC9QYXR0ZXJuVG9rZW5pemVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHkuamF2YQorc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlci5qYXZhCitzcmMvY29tL2libS9pY3UvbWF0aC9CaWdEZWNpbWFsLmphdmEKK3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5qYXZhCitzcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEKK3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpZ2l0TGlzdC5qYXZhCitzcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCitzcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWROdW1iZXJGb3JtYXQuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldC5qYXZhCitzcmMvY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhCitzcmMvY29tL2libS9pY3UvdXRpbC9CeXRlQXJyYXlXcmFwcGVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS91dGlsL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5qYXZhCmRpZmYgLS1naXQgYS9lY2xpcHNlVGVzdEFyZ3MudHh0IGIvZWNsaXBzZVRlc3RBcmdzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDIyMzMxCi0tLSAvZGV2L251bGwKKysrIGIvZWNsaXBzZVRlc3RBcmdzLnR4dApAQCAtMCwwICsxLDQwIEBACisjIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorIyBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvYmlnZGVjL0RpYWdCaWdEZWNpbWFsLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RDTERSVnNJQ1UuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvVGVzdENoYXJzZXREZXRlY3Rvci5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RBbGwuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZVRpbWVHZW5lcmF0b3JUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFRlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUmJuZlRlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQWxpYXNUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVJlZ3Jlc3Npb24uamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1V0aWxpdHlUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVNYXAuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JhZ0Zvcm1hdHRlci5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VQcm9wZXJ0eUZhY3RvcnkuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJhZ0Zvcm1hdHRlci5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0ZpbGVVdGlsaXRpZXMuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJhbnNsaXRlcmF0b3JVdGlsaXRpZXMuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YUlucHV0Q29tcHJlc3Nvci5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhT3V0cHV0Q29tcHJlc3Nvci5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0VXRpbGl0aWVzLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rva2VuaXplci5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CTkYuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJORi5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL0Zvcm1hdFRlc3RzLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvUmVzb3VyY2VNb2R1bGUuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3REYXRhTW9kdWxlLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VlLmZvdW5kYXRpb24uamFyIGIvZWUuZm91bmRhdGlvbi5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAxNjhlOAotLS0gL2Rldi9udWxsCisrKyBiL2VlLmZvdW5kYXRpb24uamFyCkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjdmNzMwZmQ0YThjYTcxZmNkZGM2MWE0ZjYyNDkwY2VhNzgwNWVmZmZjN2ViMmI4NjY5OTQyZjZkMTIzZjcyNDkKK3NpemUgMTA1OTA3NwpkaWZmIC0tZ2l0IGEvbGljZW5zZS5odG1sIGIvbGljZW5zZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MDVkZGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWNlbnNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPGh0bWw+CisKKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkiPjwvbWV0YT4KKzx0aXRsZT5JQ1UgTGljZW5zZSAtIElDVSAxLjguMSBhbmQgbGF0ZXI8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBCR0NPTE9SPSIjZmZmZmZmIj4KKzxoMj5JQ1UgTGljZW5zZSAtIElDVSAxLjguMSBhbmQgbGF0ZXI8L2gyPgorCis8cD5DT1BZUklHSFQgQU5EIFBFUk1JU1NJT04gTk9USUNFPC9wPgorCis8cD4KK0NvcHlyaWdodCAoYykgMTk5NS0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycworPC9wPgorPHA+CitBbGwgcmlnaHRzIHJlc2VydmVkLgorPC9wPgorPHA+CitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKK3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KK3RoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zCit0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCitjb3B5cmlnaHQgbm90aWNlKHMpIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzCitvZiB0aGUgU29mdHdhcmUgYW5kIHRoYXQgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcworcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KKzwvcD4KKzxwPgorVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgCitJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQQorUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQgT0YgVEhJUkQgUEFSVFkgUklHSFRTLiBJTiBOTyBFVkVOVCBTSEFMTAorVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSE9MREVSUyBJTkNMVURFRCBJTiBUSElTIE5PVElDRSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKK09SIEFOWSBTUEVDSUFMIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUywgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUgorUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCitORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCis8L3A+Cis8cD4KK0V4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIGEgY29weXJpZ2h0IGhvbGRlciBzaGFsbCBub3QgYmUKK3VzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsaW5ncyBpbgordGhpcyBTb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbiBvZiB0aGUgY29weXJpZ2h0IGhvbGRlci4KKzwvcD4KKworPGhyPgorPHA+PHNtYWxsPgorQWxsIHRyYWRlbWFya3MgYW5kIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBtZW50aW9uZWQgaGVyZWluIGFyZSB0aGUgcHJvcGVydHkgb2YgdGhlaXIgcmVzcGVjdGl2ZSBvd25lcnMuCis8L3NtYWxsPjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3JlYWRtZS5odG1sIGIvcmVhZG1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk1ZjU3MgotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRtZS5odG1sCkBAIC0wLDAgKzEsMTc3NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIKKyBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU3R5bGUtVHlwZSIgY29udGVudD0idGV4dC9jc3MyIj4KKyAgPHRpdGxlPlJlYWRNZSBmb3IgSUNVNEo8L3RpdGxlPgorPCEtLQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLS0+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitoMy5kb2MgeyBiYWNrZ3JvdW5kOiAjQ0NDQ0ZGIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IiBsYW5nPSJFTi1VUyIKKyBsaW5rPSIjMDAwMGZmIiB2bGluaz0iIzgwMDA4MCI+Cis8aDI+SW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIGZvciBKYXZhIChJQ1U0Sik8L2gyPgorPGgzPlJlYWQgTWUgZm9yIElDVTRKIDMuNjwvaDM+Cis8aHIgc2l6ZT0iMiIgd2lkdGg9IjEwMCUiPgorPHA+PGI+UmVsZWFzZSBEYXRlPC9iPjxicj4KK09jdG9iZXIgMSwgMjAwNjxicj4KKzwvcD4KKzxwPjxiPk5vdGU6PC9iPiBUaGlzIGlzIG1ham9yIHJlbGVhc2Ugb2YgSUNVNEouICBJdCBjb250YWlucyBidWcgZml4ZXMKK2FuZCBhZGRzIGltcGxlbWVudGF0aW9ucyBvZiBpbmhlcml0ZWQgQVBJIGFuZCBpbnRyb2R1Y2VzIG5ldyBBUEkKK29yIGZ1bmN0aW9uYWxpdHkuCis8L3A+Cis8cD5Gb3IgdGhlIG1vc3QgcmVjZW50IHJlbGVhc2UsIHNlZSB0aGUgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb3dubG9hZC8iPiBJQ1U0SgorZG93bmxvYWQgc2l0ZTwvYT4uIDwvcD4KKzxoMyBjbGFzcz0iZG9jIj5Db250ZW50czwvaDM+Cis8dWwgdHlwZT0iZGlzYyI+CisgIDxsaT48YSBocmVmPSIjaW50cm9kdWN0aW9uIj5JbnRyb2R1Y3Rpb24gdG8gSUNVNEo8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNuZXdzIj5XaGF0IElzIE5ldyBJbiBUaGlzIFJlbGVhc2U/PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjbGljZW5zZSI+TGljZW5zZSBJbmZvcm1hdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1BsYXRmb3JtRGVwZW5kZW5jaWVzIj5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNkb3dubG9hZCI+SG93IHRvIERvd25sb2FkIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjV2hhdENvbnRhaW4iPlRoZSBTdHJ1Y3R1cmUgYW5kIENvbnRlbnRzIG9mIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjQVBJIj5XaGVyZSB0byBHZXQgRG9jdW1lbnRhdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0hvd1RvSW5zdGFsbEphdmFjIj5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNIb3dUb01vZHVsYXJpemUiPkhvdyB0byBtb2R1bGFyaXplIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjdHJ5aW5nb3V0Ij5UcnlpbmcgT3V0IElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjcmVzb3VyY2VzIj5JQ1U0SiBSZXNvdXJjZSBJbmZvcm1hdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1doZXJlVG9GaW5kTW9yZSI+V2hlcmUgdG8gRmluZCBNb3JlIEluZm9ybWF0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjU3VibWl0dGluZ0NvbW1lbnRzIj5TdWJtaXR0aW5nIENvbW1lbnRzLCBSZXF1ZXN0aW5nCitGZWF0dXJlcyBhbmQgUmVwb3J0aW5nIEJ1Z3M8L2E+PC9saT4KKzwvdWw+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iaW50cm9kdWN0aW9uIj48L2E+SW50cm9kdWN0aW9uIHRvIElDVTRKPC9oMz4KKzxwPlRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgKElDVSkgbGlicmFyeSBwcm92aWRlcworcm9idXN0IGFuZAorZnVsbC1mZWF0dXJlZCBVbmljb2RlIHNlcnZpY2VzIG9uIGEgd2lkZSB2YXJpZXR5IG9mIHBsYXRmb3Jtcy4gSUNVCitzdXBwb3J0cyB0aGUKK21vc3QgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBVbmljb2RlIHN0YW5kYXJkLCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IKK3N1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyAobmVlZGVkIGZvciBHQiAxODAzMCByZXBlcnRvaXJlIHN1cHBvcnQpLjwvcD4KKzxwPkphdmEgcHJvdmlkZXMgYSBzdHJvbmcgZm91bmRhdGlvbiBmb3IgZ2xvYmFsIHByb2dyYW1zLCBhbmQgSUJNIGFuZAordGhlCitJQ1UgdGVhbSBwbGF5ZWQgYSBrZXkgcm9sZSBpbiBwcm92aWRpbmcgZ2xvYmFsaXphdGlvbiB0ZWNobm9sb2d5IHRvCitKYXZhLiBCdXQgYmVjYXVzZSBvZiBpdHMgbG9uZyByZWxlYXNlIHNjaGVkdWxlLCBKYXZhIGNhbm5vdCBhbHdheXMga2VlcAordXAgd2l0aCBldm9sdmluZyBzdGFuZGFyZHMuIFRoZSBJQ1UgdGVhbSBjb250aW51ZXMgdG8gZXh0ZW5kIEphdmEncworVW5pY29kZSBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydCwgZm9jdXNpbmcgb24gaW1wcm92aW5nCitwZXJmb3JtYW5jZSwKK2tlZXBpbmcgY3VycmVudCB3aXRoIHRoZSBVbmljb2RlIHN0YW5kYXJkLCBhbmQgcHJvdmlkaW5nIHJpY2hlciBBUElzLAord2hpbGUKK3JlbWFpbmluZyBhcyBjb21wYXRpYmxlIGFzIHBvc3NpYmxlIHdpdGggdGhlIG9yaWdpbmFsIEphdmEgdGV4dCBhbmQKK2ludGVybmF0aW9uYWxpemF0aW9uIEFQSSBkZXNpZ24uPC9wPgorPHA+SUNVNEogaXMgYW4gYWRkLW9uIHRvIHRoZSByZWd1bGFyIEpWTSB0aGF0IHByb3ZpZGVzOgorPC9wPgorPHVsPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj48Yj5Db2xsYXRpb248L2I+PC9hPgorJiM4MjExOyBydWxlLWJhc2VkLCB1cC10by1kYXRlIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSAoVUNBKSBzb3J0aW5nIG9yZGVyPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9yIGZhc3QgbXVsdGlsaW5ndWFsIHN0cmluZyBjb21wYXJpc29uOyBmYXN0ZXIKK2FuZCBtb3JlIGNvbXBsZXRlIHRoYW4KK3RoZSBKREs8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCI+PGI+U3VwcGxlbWVudGFyeQorQ2hhcmFjdGVyczwvYj48L2E+ICYjODIxMTsgU3RyaW5nIG1hbmlwdWxhdGlvbiBhbmQgY2hhcmFjdGVyIHByb3BlcnRpZXM8YnI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXF1aXJlZCBmb3IgcHJvcGVyIEdCIDE4MDMwIGFuZCBKSVMgMjEzCityZXBlcnRvaXJlIHN1cHBvcnQ8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2NoYXJzZXREZXRlY3Rpb24uaHRtbCI+PGI+Q2hhcnNldAorRGV0ZWN0aW9uPC9iPjwvYT4gJiM4MjExOyBSZWNvZ25pdGlvbiBvZiB2YXJpb3VzIHNpbmdsZSBhbmQgbXVsdGlieXRlIGNoYXJzZXRzPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VXNlZnVsIGZvciByZWNvZ25pemluZyB1bnRhZ2dlZCB0ZXh0IGRhdGE8L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvdW5pY29kZVNldC5odG1sIj48Yj5Vbmljb2RlU2V0PC9iPjwvYT4KKyYjODIxMTsgc3RhbmRhcmQgc2V0IG9wZXJhdGlvbnMgb3B0aW1pemVkIGZvciBzZXRzIG9mIFVuaWNvZGUgY2hhcmFjdGVyczxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VuaWNvZGVTZXRzIGNhbiBiZSBidWlsdCBmcm9tIHN0cmluZyBwYXR0ZXJucwordXNpbmcgYW55IFVuaWNvZGUgcHJvcGVydGllcy48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL1RyYW5zZm9ybS5odG1sIj48Yj5UcmFuc2Zvcm1zPC9iPjwvYT4KKyYjODIxMTsgYSBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIFVuaWNvZGUgdGV4dCBjb252ZXJzaW9uczxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luY2x1ZGluZyBGdWxsL0hhbGZ3aWR0aCBjb252ZXJzaW9ucywKK05vcm1hbGl6YXRpb24sIENhc2UgY29udmVyc2lvbnMsIEhleAorY29udmVyc2lvbnMsIGFuZCB0cmFuc2xpdGVyYXRpb25zIGJldHdlZW4gc2NyaXB0cyAoNTArIHBhaXJzKTwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9ub3JtYWxpemF0aW9uLmh0bWwiPjxiPlVuaWNvZGUKK05vcm1hbGl6YXRpb248L2I+PC9hPiAmIzgyMTE7IE5GQywgTkZELCBORktELCBORktDPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9yIGNhbm9uaWNhbCB0ZXh0IHJlcHJlc2VudGF0aW9ucywgbmVlZGVkIGZvcgorWE1MIGFuZCB0aGUgbmV0PC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2RhdGVDYWxlbmRhci5odG1sIj48Yj5JbnRlcm5hdGlvbmFsCitDYWxlbmRhcnM8L2I+PC9hPiAmIzgyMTE7IEFyYWJpYywgQnVkZGhpc3QsIEhlYnJldywgSmFwYW5lc2UsIEV0aGlvcGljLCBJc2xhbWljLCBDb3B0aWMgYW5kIENoaW5lc2UgY2FsZW5kYXJzPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVxdWlyZWQgZm9yIGNvcnJlY3QgcHJlc2VudGF0aW9uIG9mIGRhdGVzIGluCitjZXJ0YWluIGNvdW50cmllczwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9mb3JtYXROdW1iZXJzLmh0bWwiPjxiPk51bWJlcgorRm9ybWF0CitFbmhhbmNlbWVudHM8L2I+PC9hPiAmIzgyMTE7IFNjaWVudGlmaWMgTm90YXRpb24sIFNwZWxsZWQtb3V0LCBldGMuPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RW5oYW5jZW1lbnRzIHRvIHRoZSBub3JtYWwgSmF2YSBudW1iZXIKK2Zvcm1hdHRpbmcuIFRoZSBzcGVsbC1vdXQgZm9ybWF0IGlzCit1c2VkIGZvciBjaGVja3MgYW5kIHNpbWlsYXIgZG9jdW1lbnRzPC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbCI+PGI+RW5oYW5jZWQKK1dvcmQtQnJlYWsgRGV0ZWN0aW9uPC9iPjwvYT4gJiM4MjExOyBSdWxlLWJhc2VkLCBzdXBwb3J0cyBUaGFpPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVxdWlyZWQgZm9yIGNvcnJlY3Qgc3VwcG9ydCBvZiBUaGFpPC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2NvbXByZXNzaW9uLmh0bWwiPjxiPlVuaWNvZGUKK1RleHQKK0NvbXByZXNzaW9uPC9iPjwvYT4gJiM4MjExOyBTdGFuZGFyZCBjb21wcmVzc2lvbiBvZiBVbmljb2RlIHRleHQ8YnI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTdWl0YWJsZSBmb3IgbGFyZ2UgbnVtYmVycyBvZiBzbWFsbCBmaWVsZHMsCit3aGVyZSBMWlcgYW5kIHNpbWlsYXIgc2NoZW1lcworZG8gbm90IGFwcGx5PC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2NvbnZlcnNpb24uaHRtbCI+PGI+Q2hhcnNldCBDb252ZXJzaW9uPC9iPjwvYT4gJiM4MjExOyBDb252ZXJzaW9uIHRvIGFuZCBmcm9tIGRpZmZlcmVudCBjaGFyc2V0cy48YnI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQbHVncyBpbnRvIEpESydzIENoYXJzZXRQcm92aWRlciBTZXJ2aWNlIFByb3ZpZGVyIEludGVyZmFjZSAoU1BJKTwvbGk+CisKKzwvdWw+Cis8YmxvY2txdW90ZT4KKyAgPHA+PGI+Tm90ZTo8L2I+IFdlIGNvbnRpbnVlIHRvIHByb3ZpZGUgYXNzaXN0YW5jZSB0byBTdW4sIGFuZCBpbiBzb21lCitjYXNlcywgSUNVNEogc3VwcG9ydCBoYXMgYmVlbiByb2xsZWQgaW50byBhIGxhdGVyIHJlbGVhc2Ugb2YgSmF2YS4gRm9yCitleGFtcGxlLCB0aGUgVGhhaSB3b3JkLWJyZWFrIGlzIG5vdyBpbiBKYXZhIDEuNC4gSG93ZXZlciwgdGhlIG1vc3QKK2N1cnJlbnQgYW5kIGNvbXBsZXRlIHZlcnNpb24gaXMgYWx3YXlzIGZvdW5kIGluIElDVTRKLjwvcD4KKzwvYmxvY2txdW90ZT4KKzwhLS0KKworPHA+PGI+SUNVNEogaXMgYW4gYWRkLW9uIGxpYnJhcnkgdGhhdCBleHRlbmRzIEphdmEncyBnbG9iYWxpemF0aW9uCisKKyAgICB0ZWNobm9sb2d5LjwvYj4gSmF2YSBwcm92aWRlcyBhIHN0cm9uZyBmb3VuZGF0aW9uIGZvciBnbG9iYWwKKworICAgIHByb2dyYW1zLCBidXQgSmF2YSBkb2VzIG5vdCB5ZXQgcHJvdmlkZSBhbGwgdGhlIGdsb2JhbGl6YXRpb24KKworICAgIGZlYXR1cmVzIHRoYXQgc29tZSBwcm9kdWN0cyByZXF1aXJlLiAgSUJNIHBsYXllZCBhIGtleSByb2xlIGluCisKKyAgICBwcm92aWRpbmcgZ2xvYmFsaXphdGlvbiB0ZWNobm9sb2d5IHRvIFN1biBmb3IgdXNlIGluIEphdmEuICBPdmVyCisKKyAgICB0aGUgcGFzdCBzZXZlbiB5ZWFycywgdGhlIElDVSB0ZWFtIGhhcyBjb250aW51ZWQgdG8gZW5oYW5jZSBhbmQKKworICAgIGV4dGVuZCB0aGlzIHRlY2hub2xvZ3kuICBJQk0gbWFrZXMgdGhpcyB0ZWNobm9sb2d5IGF2YWlsYWJsZQorCisgICAgaW4gSmF2YSB0aHJvdWdoIHRoZSBJQ1U0SiBvcGVuLXNvdXJjZSBwcm9qZWN0LjwvcD4KKworCisKKzxwPklDVTRKIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgdG9vbHM6CisKKyAgICA8dWw+CisKKyAgICA8bGk+PGI+VW5pY29kZSBOb3JtYWxpemF0aW9uPC9iPiAmIzgyMTE7IE5GQywgTkZELCBORktELCBORktDPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2R1Y2VzIGNhbm9uaWNhbCB0ZXh0IHJlcHJlc2VudGF0aW9ucywgbmVlZGVkIGZvciBYTUwgYW5kIHRoZSBuZXQuCisKKyAgICA8bGk+PGI+SW50ZXJuYXRpb25hbCBDYWxlbmRhcnM8L2I+ICYjODIxMTsgQXJhYmljLCBCdWRkaGlzdCwgSGVicmV3LCBhbmQgSmFwYW5lc2U8YnI+CisKKyAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVxdWlyZWQgZm9yIGNvcnJlY3QgcHJlc2VudGF0aW9uIG9mIGRhdGVzIGluIHNvbWUgY291bnRyaWVzLgorCisgICAgPGxpPjxiPk51bWJlciBGb3JtYXQgRW5oYW5jZW1lbnRzPC9iPiAmIzgyMTE7IFNjaWVudGlmaWMgTm90YXRpb24sIFNwZWxsZWQtb3V0IE51bWJlcnM8YnI+CisKKyAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RW5oYW5jZXMgc3RhbmRhcmQgSmF2YSBudW1iZXIgZm9ybWF0dGluZy4gVGhlIHNwZWxsZWQtb3V0IGZvcm1hdCBpcyB1c2VkCisKK2ZvciBjaGVja3MgYW5kIHNpbWlsYXIgZG9jdW1lbnRzLgorCisgICAgPGxpPjxiPkVuaGFuY2VkIHdvcmQtYnJlYWsgZGV0ZWN0aW9uPC9iPiAmIzgyMTE7IFJ1bGUtYmFzZWQsIHN1cHBvcnRzIFRoYWk8YnI+CisKKyAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVxdWlyZWQgZm9yIGNvcnJlY3Qgc3VwcG9ydCBvZiBUaGFpLgorCisgICAgPGxpPjxiPlVuaWNvZGUgVGV4dCBDb21wcmVzc2lvbjwvYj4gJiM4MjExOyBTdGFuZGFyZCBjb21wcmVzc2lvbiBvZiBVbmljb2RlIHRleHQ8YnI+CisKKyAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3VpdGFibGUgZm9yIGxhcmdlIG51bWJlcnMgb2Ygc21hbGwgZmllbGRzLCB3aGVyZSBMWlcgYW5kIHNpbWlsYXIgc2NoZW1lcworCitkbyBub3QgYXBwbHkuCisKKyAgICA8bGk+PGI+Q29sbGF0aW9uPC9iPiAmIzgyMTE7IFJ1bGUtYmFzZWQsIHVwLXRvLWRhdGUgVW5pY29kZSBDb2xsYXRpb24gQWxnb3JpdGhtIChVQ0EpIHNvcnRpbmcgb3JkZXI8YnI+CisKKyAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9yIGZhc3QgbXVsdGlsaW5ndWFsIHN0cmluZyBjb21wYXJpc29uCisKKyAgICA8bGk+PGI+VHJhbnNmb3JtczwvYj4gJiM4MjExOyBSdWxlLWJhc2VkIHRyYW5zZm9ybWF0aW9ucyBvZiB1bmljb2RlIGRhdGE8YnI+CisKKyAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VXNlZnVsIGZvciBhbmFseXNpcyBhbmQgdHJhbnNsaXRlcmF0aW9uCisKKyAgICA8L3VsPgorCisgICAgICAgIAorCitJbiBzb21lIGNhc2VzLCB0aGUgYWJvdmUgc3VwcG9ydCBoYXMgYmVlbiByb2xsZWQgaW50byBhIGxhdGVyIHJlbGVhc2Ugb2YKKworSmF2YS4gRm9yIGV4YW1wbGUsIHRoZSBUaGFpIHdvcmQtYnJlYWsgaXMgbm93IGluIEphdmEgMS40LiBIb3dldmVyLCB0aGUgbW9zdAorCitjdXJyZW50IGFuZCBjb21wbGV0ZSB2ZXJzaW9uIG9mIHRoaXMgc3VwcG9ydCBpcyBhbHdheXMgZm91bmQgaW4gSUNVNEouCisKKy0tPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9Im5ld3MiPjwvYT5XaGF0IElzIE5ldyBJbiBUaGlzIFJlbGVhc2U/PC9oMz4KKzx1bD4KKyAgICAgIDxsaT48c3Ryb25nPlVuaWNvZGU8L3N0cm9uZz46IElDVSB1c2VzIGFuZCBzdXBwb3J0cyBVbmljb2RlIDUuMCwgd2hpY2ggaXMgdGhlCisgICAgICBsYXRlc3QgbWFqb3IgcmVsZWFzZSBvZiBVbmljb2RlLiBVbmljb2RlIDUuMCB3aWxsIGJlIHVzZWQgaW4gbWFueQorICAgICAgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGFwcGxpY2F0aW9ucywgYW5kIHRoaXMgdmVyc2lvbiBvZiBJQ1UgaXMgaW1wb3J0YW50CisgICAgICBtYWludGFpbiBpbnRlcm9wZXJhYmlsaXR5IHdpdGggdGhlc2UgbmV3IG9wZXJhdGluZyBzeXN0ZW1zIGFuZCBhcHBsaWNhdGlvbnMuCisgICAgICBNb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGUgNS4wIGNhbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy9wcmVzcy9wci11Y2Q1LjAuaHRtbCI+VW5pY29kZSBwcmVzcworICAgICAgcmVsZWFzZTwvYT4uPC9saT4KKyAgICAgIDxsaT48c3Ryb25nPkxvY2FsZSBEYXRhPC9zdHJvbmc+OiBJQ1UgdXNlcyBhbmQgc3VwcG9ydHMgZGF0YSBmcm9tIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvcHJlc3MvcHItY2xkcjEuNC5odG1sIj5Db21tb24gTG9jYWxlIERhdGEKKyAgICAgIFJlcG9zaXRvcnkgKENMRFIpIDEuNDwvYT4sIHdoaWNoIGluY2x1ZGVzIG1hbnkgaW1wcm92ZW1lbnRzIGluIHF1YWxpdHkKKyAgICAgIGFuZCBxdWFudGl0eSBvZiBkYXRhLiBUaGVyZSBpcyAyNSUgbW9yZSBDTERSIGxvY2FsZSBkYXRhIGluIDI0NSBsb2NhbGVzIGluIElDVS48L2xpPgorICAgIDxsaT48c3Ryb25nPkdsb2JhbGl6YXRpb24gUHJlZmVyZW5jZXM8L3N0cm9uZz46IEEgbmV3IGZsZXhpYmxlIGNvbnRhaW5lciBmb3IgbG9jYWxlIGRhdGEgd2FzIGFkZGVkLjwvbGk+CisgICAgPGxpPjxzdHJvbmc+Rm9ybWF0dGluZzwvc3Ryb25nPjogQSA8c3Ryb25nPnByZXZpZXc8L3N0cm9uZz4gb2YgdGhlIGZsZXhpYmxlIGRhdGUvdGltZSBmb3JtYXQgZ2VuZXJhdG9yIGhhcyBiZWVuIGFkZGVkLiBUaGlzIGFsbG93cyBtdWx0aXBsZSBkYXRlIGFuZCB0aW1lIGZvcm1hdCBwYXR0ZXJucyB0byBiZSBnZW5lcmF0ZWQgdGhhdCBhcmUgdmFsaWQgZm9yIHNwZWNpZmljIGxvY2FsZXMuPC9saT4KKyAgICA8bGk+PHN0cm9uZz5DaGFyc2V0IENvbnZlcnNpb248L3N0cm9uZz46IEEgPHN0cm9uZz5wcmV2aWV3PC9zdHJvbmc+IG9mIHRoZSBJQ1U0SiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0IEFQSSB3YXMgYWRkZWQuPC9saT4KKzwvdWw+Cis8cD48aT48Zm9udCBjb2xvcj0icmVkIj48c3Ryb25nPk5vdGU8L3N0cm9uZz46IERvIG5vdCB1c2UgcHJldmlldyBBUElzIGluIHByb2R1Y3Rpb24gY29kZS4gVGhleSBtYXkgY2hhbmdlIGRyYXN0aWNhbGx5IGluIHN1YnNlcXVlbnQgcmVsZWFzZXMuPC9mb250PjwvaT48L3A+CisKKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJsaWNlbnNlIj48L2E+TGljZW5zZSBJbmZvcm1hdGlvbjwvaDM+Cis8cD4KK1RoZSBJQ1UgcHJvamVjdHMgKElDVTRDIGFuZCBJQ1U0SikgdXNlIHRoZSBYIGxpY2Vuc2UuIFRoZSBYCitsaWNlbnNlIGlzIDxiPnN1aXRhYmxlIGZvciBjb21tZXJjaWFsIHVzZTwvYj4gYW5kIGlzIGEgcmVjb21tZW5kZWQgZnJlZSBzb2Z0d2FyZSBsaWNlbnNlCit0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgR05VIEdQTCBsaWNlbnNlLiBUaGlzIGJlY2FtZQorZWZmZWN0aXZlIHdpdGggcmVsZWFzZSAxLjguMSBvZiBJQ1U0QyBhbmQgcmVsZWFzZSAxLjMuMSBvZiBJQ1U0SiBpbgorbWlkLTIwMDEuIEFsbCBuZXcgSUNVIHJlbGVhc2VzIHdpbGwgYWRvcHQgdGhlIFggbGljZW5zZTsgcHJldmlvdXMgSUNVCityZWxlYXNlcyBjb250aW51ZSB0byB1dGlsaXplIHRoZSBJUEwgKElCTSBQdWJsaWMgTGljZW5zZSkuIFVzZXJzCitvZiBwcmV2aW91cyByZWxlYXNlcyBvZiBJQ1Ugd2hvIHdhbnQgdG8gYWRvcHQgbmV3IElDVSByZWxlYXNlcyB3aWxsCituZWVkIHRvIGFjY2VwdCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIFggbGljZW5zZS4KKzwvcD4KKzxwPgorVGhlIG1haW4gZWZmZWN0IG9mIHRoZSBjaGFuZ2UgaXMgdG8gcHJvdmlkZSBHUEwgY29tcGF0aWJpbGl0eS4KK1RoZSBYIGxpY2Vuc2UgaXMgbGlzdGVkIGFzIEdQTCBjb21wYXRpYmxlLCBzZWUgdGhlIEdOVSBwYWdlIGF0IAorPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvbGljZW5zZS1saXN0Lmh0bWwjR1BMQ29tcGF0aWJsZUxpY2Vuc2VzIj4KK2h0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L2xpY2Vuc2UtbGlzdC5odG1sI0dQTENvbXBhdGlibGVMaWNlbnNlczwvYT4uCitUaGlzIG1lYW5zIHRoYXQgR1BMIHByb2plY3RzIGNhbiBub3cgdXNlIElDVSBjb2RlLCBpdCBkb2VzIDxiPm5vdDwvYj4KK21lYW4gdGhhdCBwcm9qZWN0cyB1c2luZyBJQ1UgYmVjb21lIHN1YmplY3QgdG8gR1BMLgorPC9wPgorPHA+CisgVGhlIElCTSB2ZXJzaW9uIGNvbnRhaW5zIHRoZSBlc3NlbnRpYWwgdGV4dCBvZiB0aGUgbGljZW5zZSwgb21pdHRpbmcgdGhlCitYLXNwZWNpZmljIHRyYWRlbWFya3MgYW5kIGNvcHlyaWdodCBub3RpY2VzLiBUaGUgZnVsbCBjb3B5IG9mIDxhCisgaHJlZj0ibGljZW5zZS5odG1sIj5JQ1UncyBsaWNlbnNlPC9hPiBpcyBpbmNsdWRlZCBpbiB0aGUgZG93bmxvYWQKK3BhY2thZ2UuCis8L3A+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iUGxhdGZvcm1EZXBlbmRlbmNpZXMiPjwvYT5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2gzPgorPHA+IEJ5IGRlZmF1bHQgSUNVNEogZGVwZW5kcyBvbiBmdW5jdGlvbmFsaXR5IHRoYXQgaXMgb25seSBhdmFpbGFibGUKK2luIEpESyAxLjQuICBXZSBwcm92aWRlIHRoZSBhYmlsaXR5IHRvIGJ1aWxkIGEgdmFyaWFudCBvZiBJQ1U0SgordGhhdCB3aWxsIHJ1biBvbiBKREsgMS4zLCBidXQgbm90IGFsbCBidWlsZCB0YXJnZXRzIHdvcmsgb24gdGhhdAorcGxhdGZvcm0uIEN1cnJlbnRseSAxLjEueCBhbmQgMS4yLnggSlZNcyBhcmUgdW5zdXBwb3J0ZWQgYW5kIHVudGVzdGVkLAorYW5kIHlvdSB1c2UgdGhlIGNvbXBvbmVudHMgb24gdGhlc2UgSlZNcyBhdCB5b3VyIG93biByaXNrLjwvcD4KKzxwPiBUaGUgcmVmZXJlbmNlIHBsYXRmb3JtcyB3aGljaCB3ZSBzdXBwb3J0IGFuZCB0ZXN0IElDVTRKIG9uIGFyZTo8L3A+Cis8dWw+CisgIDxsaT4gV2luWFAsIElCTSBKREsgMS41LjA8L2xpPgorICA8bGk+IFNvbGFyaXMgNS45LCBTdW4gSkRLIDEuNS4wPC9saT4KKyAgPGxpPiBBSVggNS4yLCBJQk0gSkRLIDEuNS4wPC9saT4KKzwvdWw+Cis8cD5QbGVhc2UgdXNlIHRoZSBtb3N0IHJlY2VudCB1cGRhdGVzIG9mIHRoZSBzdXBwb3J0ZWQgSkRLIHZlcnNpb25zLjwvcD4KKzxwPkFkZGl0aW9uYWxseSwgd2UgaGF2ZSBidWlsdCBhbmQgdGVzdGVkIElDVTRKIG9uIHRoZSBmb2xsb3dpbmcgPGI+dW5zdXBwb3J0ZWQ8L2I+CitwbGF0Zm9ybXMgKG5vdGUsIG9ubHkgc29tZSBidWlsZC90ZXN0IHRhcmdldHMgd29yayBvbiAxLjMgcGxhdGZvcm1zKToKKzwvcD4KKzx1bD4KKzxsaT4gV2luWFAgLyBJQk0gSkRLIDEuNC4yLCAxLjQuMSwgU3VuIEpESyAgMS41LjAsIDEuNC4yPC9saT4KKzxsaT4gU29sYXJpcyA1LjYgLCBTb2xhcmlzIDUuNyAvIFN1biBKREsgMS40LjIsIDEuNC4xLCAxLjQuMDwvbGk+Cis8bGk+IFNvbGFyaXMgNS45IC8gU3VuIEpESyAxLjQuMiwgMS40LjEsIDEuNC4wPC9saT4KKzxsaT4gQUlYIDUuMiAvIElCTSBKREsgMS40LjIsIDEuNC4xPC9saT4KKzxsaT4gQUlYIDUuMSAvIElCTSBKREsgMS40LjIsIDEuNC4xPC9saT4KKzxsaT4gUmVkSGF0IEVudGVycHJpc2UgTGludXggMy8gIElCTSBKREsgMS41LjAsIDEuNC4yLCBTdW4gSkRLICAxLjUuMCwgMS40LjIsIDEuNC4xLCAxLjQuMDwvbGk+Cis8bGk+IEhQIFVYIFN1biBKREsgIDEuNS4wLCAxLjQuMjwvbGk+Cis8L3VsPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9ImRvd25sb2FkIj48L2E+SG93IHRvIERvd25sb2FkIElDVTRKPC9oMz4KKzxwPlRoZXJlIGFyZSB0d28gd2F5cyB0byBkb3dubG9hZCB0aGUgSUNVNEogcmVsZWFzZXMuCis8L3A+Cis8dWwgdHlwZT0iZGlzYyI+CisgIDxsaT48Yj5PZmZpY2lhbCBSZWxlYXNlIFNuYXBzaG90OjwvYj48YnI+CitJZiB5b3Ugd2FudCB0byB1c2UgSUNVNEogKGFzIG9wcG9zZWQgdG8gZGV2ZWxvcGluZyBpdCksIHlvdXIgYmVzdCBiZXQKK2lzIHRvIGRvd25sb2FkIGFuIG9mZmljaWFsLCBwYWNrYWdlZCB2ZXJzaW9uIG9mIHRoZSBJQ1U0SiBzb3VyY2UKK2NvZGUuIFRoZXNlIHZlcnNpb25zIGFyZSB0ZXN0ZWQgbW9yZSB0aG9yb3VnaGx5IHRoYW4gZGF5LXRvLWRheQorZGV2ZWxvcG1lbnQgYnVpbGRzLCBhbmQgdGhleSBhcmUgcGFja2FnZWQgaW4gamFyIGZpbGVzIGZvciBjb252ZW5pZW50Citkb3dubG9hZC4gVGhlc2UgcGFja2FnZWQgZmlsZXMgY2FuIGJlIGZvdW5kIGF0IHRoZSA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2Rvd25sb2FkLyI+SUNVIERvd25sb2FkcyBwYWdlPC9hPi4KK0EgcGFja2FnZWQgc25hcHNob3QgaXMgbmFtZWQgPGI+aWN1NGotWFhYLXNyYy5qYXI8L2I+LCB3aGVyZSBYWFgKK2lzIHRoZSByZWxlYXNlIHZlcnNpb24gbnVtYmVyLiBQbGVhc2UgdW5qYXIgdGhpcyBmaWxlLiBJdAord2lsbCByZWNvbnN0cnVjdCB0aGUgc291cmNlIGRpcmVjdG9yeS48L2xpPgorPC91bD4KKzx1bCB0eXBlPSJkaXNjIj4KKyAgPGxpPjxiPkNWUyBTb3VyY2UgUmVwb3NpdG9yeTo8L2I+PGJyPgorSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGRldmVsb3BpbmcgZmVhdHVyZXMsIHBhdGNoZXMsIG9yIGJ1ZyBmaXhlcyBmb3IKK0lDVTRKLCB5b3Ugc2hvdWxkIHByb2JhYmx5IGJlIHdvcmtpbmcgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlCitJQ1U0SiBzb3VyY2UgY29kZS4gWW91IHdpbGwgbmVlZCB0byBjaGVjayB0aGUgY29kZSBvdXQgb2Ygb3VyIENWUworcmVwb3NpdG9yeSB0byBlbnN1cmUgdGhhdCB5b3UgaGF2ZSB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbiBvZiBhbGwgb2YKK3RoZSBmaWxlcy4gVGhlcmUgYXJlIHNldmVyYWwgd2F5cyB0byBkbyB0aGlzLiBQbGVhc2UgZm9sbG93IHRoZQorZGlyZWN0aW9ucyB0aGF0IGFyZSBjb250YWluZWQgb24gdGhlIDxhCisgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vaWN1L3JlcG9zaXRvcnkuanNwIj5Tb3VyY2UKKyBSZXBvc2l0b3J5IHBhZ2U8L2E+IGZvciBkZXRhaWxzLgorICA8L2xpPgorPC91bD4KKzxwPkZvciBtb3JlIGRldGFpbHMgb24gaG93IHRvIGRvd25sb2FkIElDVTRKIGRpcmVjdGx5IGZyb20gdGhlIHdlYgorc2l0ZSwgcGxlYXNlIHNlZSB0aGUgSUNVIGRvd25sb2FkcyBwYWdlIGF0IDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG93bmxvYWQvIj5odHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb3dubG9hZC88L2E+Cis8L3A+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iV2hhdENvbnRhaW4iPjwvYT5UaGUgU3RydWN0dXJlIGFuZCBDb250ZW50cyBvZgorSUNVNEo8L2gzPgorPHA+QmVsb3csIDxiPiRSb290PC9iPiBpcyB0aGUgcGxhY2VtZW50IG9mIHRoZSBpY3UgZGlyZWN0b3J5IGluIHlvdXIKK2ZpbGUgc3lzdGVtLCBsaWtlCisiZHJpdmU6XC4uLlxpY3U0aiIgaW4geW91ciBlbnZpcm9ubWVudC4gImRyaXZlOlwuLi4iIHN0YW5kcyBmb3IgYW55Citkcml2ZSBhbmQgYW55IGRpcmVjdG9yeSBvbiB0aGF0IGRyaXZlIHRoYXQgeW91IGNob3NlIHRvIGluc3RhbGwgaWN1NGoKK2ludG8uIDwvcD4KKzxwPjxiPkluZm9ybWF0aW9uIGFuZCBidWlsZCBmaWxlczo8L2I+PC9wPgorPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0idm9pZCIgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj48Yj5yZWFkbWUuaHRtbDwvYj48YnI+CisodGhpcyBmaWxlKTwvdGQ+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QSBkZXNjcmlwdGlvbiBvZiBJQ1U0SgorKEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSk8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+bGljZW5zZS5odG1sPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5UaGUgWCBsaWNlbnNlLCB1c2VkIGJ5CitJQ1U0SjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5idWlsZC54bWw8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkFudCBidWlsZCBmaWxlLiBTZWUgPGEKKyBocmVmPSIjSG93VG9JbnN0YWxsSmF2YWMiPkhvdyB0byBJbnN0YWxsIGFuZCBCdWlsZDwvYT4gZm9yIG1vcmUKK2luZm9ybWF0aW9uPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxwPjxiPlRoZSBzb3VyY2UgZGlyZWN0b3JpZXMgbWlycm9yIHRoZSBwYWNrYWdlIHN0cnVjdHVyZSBvZiB0aGUgY29kZS48L2I+PGJyPgorPGZvbnQgY29sb3I9InJlZCI+Q29yZTwvZm9udD4gcGFja2FnZXMgYmVjb21lIHBhcnQgb2YgdGhlIElDVTRKIGphcgorZmlsZS48YnI+Cis8Zm9udCBjb2xvcj0icmVkIj5BUEk8L2ZvbnQ+IHBhY2thZ2VzIGNvbnRhaW4gY2xhc3NlcyB3aXRoIHN1cHBvcnRlZAorQVBJLiA8YnI+Cis8Zm9udCBjb2xvcj0icmVkIj5SaWNoVGV4dDwvZm9udD4gY2xhc3NlcyBhcmUgQ29yZSBhbmQgQVBJLCBidXQgY2FuIGJlCityZW1vdmVkIGZyb20gaWN1NGouamFyLCBhbmQgY2FuIGJlIGJ1aWx0IGludG8gdGhlaXIgb3duIGphci48L3A+Cis8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiCisgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvY2hhcnNldDxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSSAoUHJldmlldyk8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5QYWNrYWdlcyB0aGF0IHByb3ZpZGUgQ2hhcnNldCBjb252ZXJzaW9uCisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2Rldjxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPk5vbi1Db3JlLCBOb24tQVBJPC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+UGFja2FnZXMgdXNlZCBmb3IKK2ludGVybmFsIGRldmVsb3BtZW50OgorICAgICAgPHVsPgorICAgICAgICA8bGk+RGF0YTogZGF0YSB1c2VkIGJ5IHRlc3RzIGFuZCBpbiBidWlsZGluZyBJQ1U8L2xpPgorICAgICAgICA8bGk+RGVtb3M6IENhbGVuZGFyLCBIb2xpZGF5LCBCcmVhayBJdGVyYXRvciwgUnVsZS1iYXNlZCBOdW1iZXIKK0Zvcm1hdCwgVHJhbnNmb3JtYXRpb25zPGJyPgorKFNlZSA8YSBocmVmPSIjdHJ5aW5nb3V0Ij5iZWxvdzwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlCitkZW1vcy4pPC9saT4KKyAgICAgICAgPGxpPlRlc3RzOiBBUEkgYW5kIGNvdmVyYWdlIHRlc3RzIG9mIGFsbCBmdW5jdGlvbmFsaXR5Ljxicj4KK0ZvciBpbmZvcm1hdGlvbiBhYm91dCBydW5uaW5nIHRoZSB0ZXN0cywgc2VlCiskUm9vdC9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLjwvbGk+CisgICAgICAgIDxsaT5Ub29sczogdG9vbHMgdXNlZCB0byBidWlsZCBkYXRhIHRhYmxlcywgZXRjLjwvbGk+CisgICAgICA8L3VsPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS9pbXBsPGJyPgorICAgICAgPGZvbnQgY29sb3I9InJlZCI+Q29yZSwgTm9uLUFQSTwvZm9udD48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPlRoZXNlIGFyZSB1dGlsaXR5IGNsYXNzZXMKK3VzZWQgZnJvbSBkaWZmZXJlbnQgSUNVNEogY29yZSBwYWNrYWdlcy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2xhbmc8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBBUEk8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5DaGFyYWN0ZXIgcHJvcGVydGllcworcGFja2FnZS48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L21hdGg8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBBUEk8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5BZGRpdGlvbmFsIG1hdGggY2xhc3Nlcy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L3RleHQ8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBBUEk8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5BZGRpdGlvbmFsIHRleHQgY2xhc3Nlcy4KK1RoZXNlIGFkZCB0bywgYW5kIGluIHNvbWUgY2FzZXMgcmVwbGFjZSwgcmVsYXRlZCBjb3JlIEphdmEgY2xhc3NlczoKKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPkFyYWJpYyBzaGFwaW5nIDwvbGk+CisgICAgICAgIDxsaT5CcmVhayBpdGVyYXRpb24gPC9saT4KKyAgICAgICAgPGxpPkRhdGUgZm9ybWF0dGluZyA8L2xpPgorICAgICAgICA8bGk+TnVtYmVyIGZvcm1hdHRpbmcgPC9saT4KKyAgICAgICAgPGxpPlRyYW5zbGl0ZXJhdGlvbiA8L2xpPgorICAgICAgICA8bGk+Tm9ybWFsaXphdGlvbiA8L2xpPgorICAgICAgICA8bGk+U3RyaW5nIG1hbmlwdWxhdGlvbiA8L2xpPgorICAgICAgICA8bGk+Q29sbGF0aW9uIDwvbGk+CisgICAgICAgIDxsaT5TdHJpbmcgc2VhcmNoIDwvbGk+CisgICAgICAgIDxsaT5Vbmljb2RlIGNvbXByZXNzaW9uIDwvbGk+CisgICAgICAgIDxsaT5Vbmljb2RlIHNldHMgPC9saT4KKyAgICAgIDwvdWw+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L3V0aWw8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBBUEk8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5BZGRpdGlvbmFsIHV0aWxpdHkKK2NsYXNzZXM6CisgICAgICA8dWw+CisgICAgICAgIDxsaT5DYWxlbmRhcnMgLSBHcmVnb3JpYW4sIEJ1ZGRoaXN0LCBDb3B0aWMsIEV0aGlvcGljLCBIZWJyZXcsIElzbGFtaWMsIEphcGFuZXNlLCBDaGluZXNlIDwvbGk+CisgICAgICAgIDxsaT5Ib2xpZGF5PC9saT4KKyAgICAgICAgPGxpPlRpbWVab25lPC9saT4KKyAgICAgICAgPGxpPlZlcnNpb25JbmZvPC9saT4KKyAgICAgICAgPGxpPkl0ZXJhdGlvbjwvbGk+CisgICAgICA8L3VsPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL3JpY2h0ZXh0PGJyPgorICAgICAgPGZvbnQgY29sb3I9InJlZCI+UmljaFRleHQ8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5TdHlsZWQgdGV4dCBlZGl0aW5nCitwYWNrYWdlLiBUaGlzIGluY2x1ZGVzIGRlbW9zLCB0ZXN0cywgYW5kIEdVSXMgZm9yIGVkaXRpbmcgYW5kCitkaXNwbGF5aW5nIHN0eWxlZCB0ZXh0LiBUaGUgcmljaHRleHQgcGFja2FnZSBwcm92aWRlcyBhIHNjcm9sbGFibGUKK2Rpc3BsYXksIHR5cGluZywgYXJyb3cta2V5IHN1cHBvcnQsIHRhYnMsIGFsaWdubWVudCBhbmQganVzdGlmaWNhdGlvbiwKK3dvcmQtIGFuZCBzZW50ZW5jZS1zZWxlY3Rpb24gKGJ5IGRvdWJsZS1jbGlja2luZyBhbmQgdHJpcGxlLWNsaWNraW5nLAorcmVzcGVjdGl2ZWx5KSwgdGV4dCBzdHlsZXMsIGNsaXBib2FyZCBvcGVyYXRpb25zIChjdXQsIGNvcHkgYW5kIHBhc3RlKQorYW5kIGEgbG9nIG9mIGNoYW5nZXMgZm9yIHVuZG8tcmVkby4gUmljaHRleHQgdXNlcyBKYXZhJ3MgVGV4dExheW91dCBhbmQKK2NvbXBsZXggdGV4dCBzdXBwb3J0IChwcm92aWRlZCB0byBTdW4gYnkgdGhlIElDVTRKIHRlYW0pLjwvdGQ+CisgICAgPC90cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8cD48Yj5CdWlsZGluZyBJQ1U0SiBjcmVhdGVzIGFuZCBwb3B1bGF0ZXMgdGhlIGZvbGxvd2luZyBkaXJlY3Rvcmllczo8L2I+PC9wPgorPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0idm9pZCIgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9jbGFzc2VzPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5jb250YWlucyBhbGwgY2xhc3MgZmlsZXM8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3QvZG9jPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5jb250YWlucyBKYXZhRG9jIGZvciBhbGwKK3BhY2thZ2VzPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxicj4KKzxwPjxiPklDVTRKIGRhdGEgaXMgc3RvcmVkIGluIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvYj48L3A+Cis8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiCisgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj48Y29kZT5jb20uaWJtLmljdS5pbXBsLmRhdGE8L2NvZGU+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5Ib2xkcyBkYXRhIHVzZWQgYnkgdGhlCitJQ1U0SiBjb3JlIHBhY2thZ2VzICg8Y29kZT5jb20uaWJtLmljdS5sYW5nPC9jb2RlPiwgPGNvZGU+Y29tLmlibS5pY3UudGV4dDwvY29kZT4sCisgICAgICA8Y29kZT5jb20uaWJtLmljdS51dGlsPC9jb2RlPiwgPGNvZGU+Y29tLmlibS5pY3UubWF0aDwvY29kZT4gYW5kCisgICAgICA8Y29kZT5jb20uaWJtLmljdS50ZXh0PC9jb2RlPikuIEluIHBhcnRpY3VsYXIsIGFsbCByZXNvdXJjZQoraW5mb3JtYXRpb24gaXMgc3RvcmVkIGhlcmUuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPjxjb2RlPmNvbS5pYm0uaWN1LmRldi5kYXRhPC9jb2RlPjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+SG9sZHMgZGF0YSB0aGF0IGlzIG5vdAorcGFydCBvZiBJQ1U0SiBjb3JlLCBidXQgcmF0aGVyIHBhcnQgb2YgYSB0ZXN0LCBzYW1wbGUsIG9yIGRlbW8uPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxicj4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJBUEkiPjwvYT5XaGVyZSB0byBnZXQgRG9jdW1lbnRhdGlvbjwvaDM+Cis8cD5UaGUgPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlLyI+SUNVIHVzZXIncworZ3VpZGU8L2E+IGNvbnRhaW5zIGxvdHMgb2YgZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBJQ1UsIGluIGl0cyBDLAorQysrLCBhbmQgSmF2YSBpbmNhcm5hdGlvbnMuPC9wPgorPHA+VGhlIGNvbXBsZXRlIEFQSSBkb2N1bWVudGF0aW9uIGZvciBJQ1U0SiAoamF2YWRvYykgaXMgYXZhaWxhYmxlIG9uCit0aGUgSUNVNEogd2ViIHNpdGUsIGFuZCBjYW4gYmUgYnVpbHQgZnJvbSB0aGUgc291cmNlczoKKzwvcD4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai8iPkluZGV4Cit0byBhbGwgSUNVNEogQVBJPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9DaGFyc2V0RGV0ZWN0b3IuaHRtbCI+Q2hhcnNldCBEZXRlY3RvcjwvYT4gJiM4MjExOyBEZXRlY3Rpb24gb2YgY2hhcnNldCBmcm9tIGEgYnl0ZSBzdHJlYW08L2xpPgorICA8bGk+SW50ZXJuYXRpb25hbCBDYWxlbmRhcnMgJiM4MjExOyA8YQorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5odG1sIj5CdWRkaGlzdDwvYT4sCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9DaGluZXNlQ2FsZW5kYXIuaHRtbCI+Q2hpbmVzZTwvYT4sCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9Db3B0aWNDYWxlbmRhci5odG1sIj5Db3B0aWM8L2E+LAorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvRXRoaW9waWNDYWxlbmRhci5odG1sIj5FdGhpb3BpYzwvYT4sCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9HcmVnb3JpYW5DYWxlbmRhci5odG1sIj5HcmVnb3JpYW48L2E+LAorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuaHRtbCI+SGVicmV3PC9hPiwKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0lzbGFtaWNDYWxlbmRhci5odG1sIj5Jc2xhbWljPC9hPiwKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuaHRtbCI+SmFwYW5lc2U8L2E+LjwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuaHRtbCI+VW5pY29kZQorTm9ybWFsaXphdGlvbjwvYT4gJiM4MjExOyBDYW5vbmljYWwgdGV4dCByZXByZXNlbnRhdGlvbiBmb3IgVzNDLjwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdC5odG1sIj5OdW1iZXIKK0Zvcm1hdCBFbmhhbmNlbWVudHM8L2E+ICYjODIxMTsgU2NpZW50aWZpYyBOb3RhdGlvbiwgU3BlbGxlZCBvdXQuPC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5odG1sIj5FbmhhbmNlZAord29yZC1icmVhayBkZXRlY3Rpb248L2E+ICYjODIxMTsgUnVsZS1iYXNlZCwgc3VwcG9ydHMgVGhhaTwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yLmh0bWwiPlRyYW5zbGl0ZXJhdGlvbjwvYT4KKyYjODIxMTsgQSBnZW5lcmFsIGZyYW1ld29yayBmb3Igb252ZXJ0aW5nIHRleHQgZnJvbSBvbmUgZm9ybWF0IHRvIGFub3RoZXIsCitlLmcuIEN5cmlsbGljIHRvIExhdGluLCBvciBIZXggdG8gVW5pY29kZS4gPC9saT4KKyAgPGxpPlVuaWNvZGUgVGV4dCA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVDb21wcmVzc29yLmh0bWwiPkNvbXByZXNzaW9uPC9hPgorJmFtcDsgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRGVjb21wcmVzc29yLmh0bWwiPkRlY29tcHJlc3Npb248L2E+CismIzgyMTE7IDI6MSBjb21wcmVzc2lvbiBvbiBFbmdsaXNoIFVuaWNvZGUgdGV4dC48L2xpPgorICA8bGk+Q29sbGF0aW9uIC0gPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRDb2xsYXRvci5odG1sIj5SdWxlLWJhc2VkCitzb3J0aW5nPC9hPiwgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9TdHJpbmdTZWFyY2guaHRtbCI+RWZmaWNpZW50CittdWx0aS1saW5ndWFsIHNlYXJjaGluZzwvYT4gPC9saT4KKzwvdWw+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iSG93VG9JbnN0YWxsSmF2YWMiPjwvYT5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2gzPgorPHA+VG8gaW5zdGFsbCBJQ1U0Siwgc2ltcGx5IHBsYWNlIHRoZSBwcmVidWlsdCBqYXIgZmlsZSA8c3Ryb25nPmljdTRqLmphcjwvc3Ryb25nPgorb24geW91cgorSmF2YSBDTEFTU1BBVEguIElmIHlvdSBuZWVkIENoYXJzZXQgQVBJIHN1cHBvcnQgcGxlYXNlIHBsYWNlIDxzdHJvbmc+aWN1NGotY2hhcnNldHMuamFyPC9zdHJvbmc+IG9uIHlvdXIgY2xhc3MgcGF0aC4KK05vIG90aGVyIGZpbGVzIGFyZSBuZWVkZWQuPC9wPgorPHA+PGI+RWNsaXBzZSB1c2Vyczo8L2I+IFNlZSB0aGUgSUNVNEogc2l0ZSBmb3IgaW5mb3JtYXRpb24gb248YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2RvY3MvZWNsaXBzZV9ob3d0by9lY2xpcHNlX2hvd3RvLmh0bWwiPgoraG93IHRvIGNvbmZpZ3VyZSBFY2xpcHNlPC9hPiB0byBidWlsZCBJQ1U0Si48L3A+Cis8cD5UbyBidWlsZCBJQ1U0SiwgeW91IHdpbGwgbmVlZCBhIEphdmEyIEpESyBhbmQgdGhlIEFudCBidWlsZCBzeXN0ZW0uCitXZSBzdHJvbmdseSByZWNvbW1lbmQgdXNpbmcgdGhlIEFudCBidWlsZCBzeXN0ZW0gdG8gYnVpbGQgSUNVNEouCitJdCdzIHJlY29tbWVuZGVkIHRvIGluc3RhbGwgYm90aCB0aGUgSkRLIGFuZCBBbnQgc29tZXdoZXJlIDxlbT5vdXRzaWRlPC9lbT4KK3RoZSBJQ1U0SiBkaXJlY3RvcnkuIEZvciBleGFtcGxlLCBvbiBMaW51eCB5b3UgbWlnaHQgaW5zdGFsbCB0aGVzZSBpbgorL3Vzci9sb2NhbC48L3A+Cis8dWw+CisgIDxsaT5JbnN0YWxsIGEgcmVjZW50IEpESywgdmVyc2lvbiAxLjQueCB3aWxsIHdvcmsuPC9saT4KKyAgPGxpPkluc3RhbGwgdGhlIDxhIGhyZWY9Imh0dHA6Ly9hbnQuYXBhY2hlLm9yZy8iPjxzdHJvbmc+QW50PC9zdHJvbmc+PC9hPgorYnVpbGQgc3lzdGVtLiBBbnQgaXMgYSBwb3J0YWJsZSwgSmF2YS1iYXNlZCBidWlsZCBzeXN0ZW0gc2ltaWxhciB0bworbWFrZS4gSUNVNEogdXNlcyBBbnQgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIG5vIG90aGVyIGRlcGVuZGVuY2llcywgaXQncworcG9ydGFibGUsIGFuZCBpdCdzIGVhc2llciB0byBtYW5hZ2UgdGhhbiBhIGNvbGxlY3Rpb24gb2YgbWFrZWZpbGVzLiBXZQorY3VycmVudGx5IGJ1aWxkIElDVTRKIHVzaW5nIGEgc2luZ2xlIG1ha2VmaWxlIG9uIGJvdGggV2luZG93cyA5eCBhbmQKK0xpbnV4IHVzaW5nIEFudC4gVGhlIGJ1aWxkIHN5c3RlbSByZXF1aXJlcyBBbnQgMS42IG9yIGxhdGVyLgorICAgIDxwPkluc3RhbGxpbmcgQW50IGlzIHN0cmFpZ2h0Zm9yd2FyZC4gRG93bmxvYWQgaXQgKHNlZSA8YQorIGhyZWY9Imh0dHA6Ly9hbnQuYXBhY2hlLm9yZy9iaW5kb3dubG9hZC5jZ2kiPmh0dHA6Ly9hbnQuYXBhY2hlLm9yZy9iaW5kb3dubG9hZC5jZ2k8L2E+KSwKK2V4dHJhY3QgaXQgb250byB5b3VyIHN5c3RlbSwgc2V0IHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBhbmQgYWRkCitpdHMgYmluIGRpcmVjdG9yeSB0byB5b3VyIHBhdGguIEZvciBleGFtcGxlOiA8L3A+CisgICAgPHByZT4gICAgc2V0IEpBVkFfSE9NRT1DOlxqZGsxLjUuMDxicj4gICAgc2V0IEFOVF9IT01FPUM6XGFudDxicj4gICAgc2V0IFBBVEg9JVBBVEglOyVBTlRfSE9NRSVcYmluPC9wcmU+CisgICAgPHA+U2VlIHRoZSBjdXJyZW50IEFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLjwvcD4KKyAgPC9saT4KKzwvdWw+Cis8cD5PbmNlIHRoZSBKREsgYW5kIEFudCBhcmUgaW5zdGFsbGVkLCBidWlsZGluZyBpcyBqdXN0IGEgbWF0dGVyIG9mCit0eXBpbmcgPHN0cm9uZz5hbnQ8L3N0cm9uZz4gaW4gdGhlIElDVTRKIHJvb3QgZGlyZWN0b3J5LiBUaGlzIGNhdXNlcwordGhlIEFudCBidWlsZCBzeXN0ZW0gdG8gcGVyZm9ybSBhIGJ1aWxkIGFzIHNwZWNpZmllZCBieSB0aGUgZmlsZQorPHN0cm9uZz5idWlsZC54bWw8L3N0cm9uZz4sIGxvY2F0ZWQgaW4gdGhlIElDVTRKIHJvb3QgZGlyZWN0b3J5LiBZb3UKK2NhbiBnaXZlIEFudCBvcHRpb25zIGxpa2UgLXZlcmJvc2UsIGFuZCB5b3UgY2FuIHNwZWNpZnkgdGFyZ2V0cy4gQW50Cit3aWxsIG9ubHkgYnVpbGQgd2hhdCdzIGJlZW4gY2hhbmdlZCBhbmQgd2lsbCByZXNvbHZlIGRlcGVuZGVuY2llcworcHJvcGVybHkuIEZvciBleGFtcGxlOjwvcD4KKzxibG9ja3F1b3RlPgorICA8cHJlPkY6XGljdTRqJmd0O2FudCB0ZXN0czxicj5CdWlsZGZpbGU6IGJ1aWxkLnhtbDxicj5Qcm9qZWN0IGJhc2UgZGlyIHNldCB0bzogRjpcaWN1NGo8YnI+RXhlY3V0aW5nIFRhcmdldDogY29yZTxicj5Db21waWxpbmcgNzEgc291cmNlIGZpbGVzIHRvIEY6XGljdTRqXGNsYXNzZXM8YnI+RXhlY3V0aW5nIFRhcmdldDogdGVzdHM8YnI+Q29tcGlsaW5nIDI0IHNvdXJjZSBmaWxlcyB0byBGOlxpY3U0alxjbGFzc2VzPGJyPkNvbXBsZXRlZCBpbiAxOSBzZWNvbmRzPC9wcmU+Cis8L2Jsb2NrcXVvdGU+Cis8aT5Ob3RlOiBUaGUgYWJvdmUgb3V0cHV0IGlzIGFuIGV4YW1wbGUuIFRoZSBudW1iZXJzIGFyZSBsaWtlbHkgdG8gYmUgZGlmZmVyZW50IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBJQ1U0Si48L2k+Cis8cD5UaGUgZm9sbG93aW5nIGFyZSBzb21lIHRhcmdldHMgdGhhdCB5b3UgY2FuIHByb3ZpZGUgdG8gPGI+YW50PC9iPi4KK0ZvciBtb3JlIHRhcmdldHMgcnVuIDxjb2RlPmFudCAtcHJvamVjdGhlbHA8L2NvZGU+IG9yIHNlZSB0aGUgYnVpbGQueG1sIGZpbGUuPC9wPgorPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIgorIHdpZHRoPSI2MjMiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+YWxsPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCBhbGwgdGFyZ2V0cy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Y29yZTwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgdGhlIG1haW4gY2xhc3MKK2ZpbGVzIGluIHRoZSBzdWJkaXJlY3RvcnkgPHN0cm9uZz5jbGFzc2VzPC9zdHJvbmc+LiBJZiBubyB0YXJnZXQgaXMKK3NwZWNpZmllZCwgY29yZSBpcyBhc3N1bWVkLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj50ZXN0czwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgdGhlIHRlc3QgY2xhc3MKK2ZpbGVzLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5kZW1vczwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgdGhlIGRlbW9zLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj50b29sczwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgdGhlIHRvb2xzLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5kb2NzPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5SdW4gamF2YWRvYyBvdmVyIHRoZSBtYWluCitjbGFzcyBmaWxlcywgZ2VuZXJhdGluZyBhbiBIVE1MIGRvY3VtZW50YXRpb24gdHJlZSBpbiB0aGUgc3ViZGlyZWN0b3J5IDxzdHJvbmc+ZG9jPC9zdHJvbmc+LjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5qYXI8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkNyZWF0ZSBhIGphciBhcmNoaXZlIDxzdHJvbmc+aWN1NGouamFyPC9zdHJvbmc+CitpbiB0aGUgcm9vdCBJQ1U0SiBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgbWFpbiBjbGFzcyBmaWxlcy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+amFyU3JjPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5MaWtlIHRoZSA8c3Ryb25nPmphcjwvc3Ryb25nPgordGFyZ2V0LCBidXQgY29udGFpbmluZyBvbmx5IHRoZSBzb3VyY2UgZmlsZXMuIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5qYXJEb2NzPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5MaWtlIHRoZSA8c3Ryb25nPmphcjwvc3Ryb25nPgordGFyZ2V0LCBidXQgY29udGFpbmluZyBvbmx5IHRoZSBkb2NzLiA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+cmljaGVkaXQ8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkJ1aWxkIHRoZSByaWNoZWRpdCBjb3JlCitjbGFzcyBmaWxlcyBhbmQgdGVzdHMuIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5yaWNoZWRpdEphcjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Q3JlYXRlIHRoZSByaWNoZWRpdCBqYXIKK2ZpbGUgKHdoaWNoIGNvbnRhaW5zIG9ubHkgdGhlIHJpY2hlZGl0IGNvcmUgY2xhc3MgZmlsZXMpLiBUaGUgZmlsZSA8c3Ryb25nPnJpY2hlZGl0Lmphcjwvc3Ryb25nPgord2lsbCBiZSBjcmVhdGVkIGluIHRoZSA8c3Ryb25nPi4vcmljaGVkaXQ8L3N0cm9uZz4gc3ViZGlyZWN0b3J5LiBBbnkKK2V4aXN0aW5nIGZpbGUgb2YgdGhhdCBuYW1lIHdpbGwgYmUgb3ZlcndyaXR0ZW4uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPnJpY2hlZGl0WmlwPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5DcmVhdGUgYSB6aXAgYXJjaGl2ZSBvZgordGhlIHJpY2hlZGl0IGRvY3MgYW5kIGphciBmaWxlIGZvciBkaXN0cmlidXRpb24uIFRoZSB6aXAgZmlsZSA8c3Ryb25nPnJpY2hlZGl0LnppcDwvc3Ryb25nPgord2lsbCBiZSBjcmVhdGVkIGluIHRoZSA8c3Ryb25nPi4vcmljaGVkaXQ8L3N0cm9uZz4gc3ViZGlyZWN0b3J5LiBBbnkKK2V4aXN0aW5nIGZpbGUgb2YgdGhhdCBuYW1lIHdpbGwgYmUgb3ZlcndyaXR0ZW4uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmNsZWFuPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5SZW1vdmUgYWxsIGJ1aWx0IHRhcmdldHMsCitsZWF2aW5nIHRoZSBzb3VyY2UuPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxwPkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFkIHRoZSBBbnQgZG9jdW1lbnRhdGlvbiBhbmQgdGhlIDxzdHJvbmc+YnVpbGQueG1sPC9zdHJvbmc+CitmaWxlLjwvcD4KKzxwPkFmdGVyIGRvaW5nIGEgYnVpbGQgaXQgaXMgYSBnb29kIGlkZWEgdG8gcnVuIGFsbCB0aGUgaWN1NGogdGVzdHMgYnkKK3R5cGluZzxicj4KKzx0dD4iYW50IGNoZWNrIjwvdHQ+IG9yCisiamF2YQorLWNsYXNzcGF0aCAkUm9vdC9jbGFzc2VzCitjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIC1ub3Rocm93Ii48L3A+Cis8cD4oSWYgeW91IGFyZSBhbGxlcmdpYyB0byBidWlsZCBzeXN0ZW1zLCBhcyBhbiBhbHRlcm5hdGl2ZSB0byB1c2luZworQW50IHlvdSBjYW4gYnVpbGQgYnkgcnVubmluZyBqYXZhYyBhbmQgamF2YWRvYyBkaXJlY3RseS4gVGhpcworaXMgbm90IHJlY29tbWVuZGVkLiBZb3UgbWF5IGhhdmUgdG8gbWFudWFsbHkgY3JlYXRlIGRlc3RpbmF0aW9uCitkaXJlY3Rvcmllcy4pPC9wPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9Ikhvd1RvTW9kdWxhcml6ZSI+PC9hPkhvdyB0byBtb2R1bGFyaXplIElDVTRKPC9oMz4KKzxwPlNvbWUgY2xpZW50cyBtYXkgbm90IHdpc2ggdG8gc2hpcCBhbGwgb2YgSUNVNEogd2l0aCB0aGVpcgorYXBwbGljYXRpb24sIHNpbmNlIHRoZSBhcHBsaWNhdGlvbiBtaWdodCBvbmx5IHVzZSBhIHNtYWxsIHBhcnQgb2YKK0lDVTRKLgorSUNVNEogcmVsZWFzZSAyLjYgYW5kIGxhdGVyIHByb3ZpZGUgYnVpbGQgb3B0aW9ucyB0byBidWlsZCBpbmRpdmlkdWFsCitJQ1U0SiAnbW9kdWxlcycgZm9yIGEgbW9yZSBjb21wYWN0IGRpc3RyaWJ1dGlvbi4KK1RoZSBtb2R1bGVzIGFyZSBiYXNlZCBvbiBhIHNlcnZpY2UgYW5kIHRoZSBBUElzIHRoYXQgZGVmaW5lIGl0LCBlLmcuLAordGhlIG5vcm1hbGl6ZXIgbW9kdWxlIHN1cHBvcnRzIGFsbCB0aGUgQVBJcyBvZiB0aGUgTm9ybWFsaXplciBjbGFzcworKGFuZCBzb21lIG90aGVycykuIFRlc3RzIGNhbiBiZSBydW4gdG8gdmVyaWZ5IHRoYXQgdGhlIEFQSXMgc3VwcG9ydGVkCitieSB0aGUgbW9kdWxlIGZ1bmN0aW9uIGNvcnJlY3RseS4KK0JlY2F1c2Ugb2YgaW50ZXJuYWwgY29kZSBkZXBlbmRlbmNpZXMsIGEgbW9kdWxlIGNvbnRhaW5zIGV4dHJhIGNsYXNzZXMKK3RoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUncyBjb3JlIHNlcnZpY2UgQVBJLiBTb21lIG9yIG1vc3Qgb2YgdGhlCitBUElzIG9mIHRoZXNlIGV4dHJhIGNsYXNzZXMgd2lsbCBub3Qgd29yay4gPGI+T25seSB0aGUgbW9kdWxlJ3MgY29yZQorc2VydmljZSBBUEkgaXMgZ3VhcmFudGVlZC48L2I+IE90aGVyIEFQSXMgbWF5IHdvcmsgcGFydGlhbGx5IG9yIG5vdCBhdAorYWxsLCBzbyBjbGllbnQgY29kZSBzaG91bGQgYXZvaWQgdGhlbS48L3A+Cis8cD4KK0luZGl2aWR1YWwgbW9kdWxlcyBhcmUgbm90IGJ1aWx0IGRpcmVjdGx5IGludG8gdGhlaXIgb3duIHNlcGFyYXRlIGphcgorZmlsZXMuIFNpbmNlIHRoZWlyIGRlcGVuZGVuY2llcworb2Z0ZW4gb3ZlcmxhcCwgdXNpbmcgc2VwYXJhdGUgbW9kdWxlcyB0byAnYWRkIG9uJyBJQ1U0SiBmdW5jdGlvbmFsaXR5Cit3b3VsZCByZXN1bHQgaW4KK3Vud2FudGVkIGR1cGxpY2F0aW9uIG9mIGNsYXNzIGZpbGVzLiBJbnN0ZWFkLCBidWlsZGluZyBhIG1vZHVsZSBjYXVzZXMKK2Egc3Vic2V0IG9mIElDVTRKJ3MKK2NsYXNzZXMgdG8gYmUgYnVpbHQgYW5kIHB1dCBpbnRvIElDVTRKJ3Mgc3RhbmRhcmQgYnVpbGQgZGlyZWN0b3J5LgorQWZ0ZXIgb25lIG9yIG1vcmUgbW9kdWxlIHRhcmdldHMgYXJlIGJ1aWx0LCB0aGUgJ21vZHVsZUphcicgdGFyZ2V0IGNhbgordGhlbiBiZQorYnVpbHQsIHdoaWNoIHBhY2thZ2VzIHRoZSBjbGFzcyBmaWxlcyBpbnRvIGEgJ21vZHVsZSBqYXIuJyBPdGhlciB0aGFuCit0aGUgZmFjdCB0aGF0IGl0Citjb250YWlucyBmZXdlciBjbGFzcyBmaWxlcywgbGl0dGxlIGRpc3Rpbmd1aXNoZXMgdGhpcyBqYXIgZmlsZSBmcm9tIGEKK2Z1bGwgSUNVNEogamFyIGZpbGUsCithbmQgaW4gZmFjdCB0aGV5IHNoYXJlIHRoZSBzYW1lIG5hbWUuPC9wPgorPHA+CitDdXJyZW50bHkgSUNVNEogY2FuIGJlIGRpdmlkZWQgaW50byB0aGUgZm9sbG93aW5nIG1vZHVsZXM6Cis8L3A+Cis8cD48Yj5LZXk6PC9iPjwvcD4KKzx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiIHdpZHRoPSI2MjMiPgorICA8dGJvZHk+CisgICAgPHRyPgorCisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPk1vZHVsZSBOYW1lPC9iPjwvdGg+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPkFudCBUYXJnZXRzPC9iPjwvdGg+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlRlc3QgUGFja2FnZSBTdXBwb3J0ZWQ8L2I+PC90aD4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlNpemWHPC9iPjwvdGg+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisKKyAgICAgIDx0ZCBjb2xzcGFuPSI0Ij4KKyAgICAgIDx0YWJsZT4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5QYWNrYWdlKjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+TWFpbiBDbGFzc2VzhiA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisKKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPGI+PGZvbnQgc2l6ZT0iMiI+KiBjb20uaWJtLiBzaG91bGQgYmUgcHJlcGVuZGVkIHRvIHRoZSBwYWNrYWdlIG5hbWVzCitsaXN0ZWQuCis8YnI+CiuGIENsYXNzIG5hbWUgaW4gYm9sZCBpbmRpY2F0ZXMgY29yZSBzZXJ2aWNlIEFQSS4gT25seSBBUElzIGluIHRoZXNlIGNsYXNzZXMgYXJlCitmdWxseSBzdXBwb3J0ZWQuCis8YnI+CiuHIFNpemVzIGFyZSBvZiB0aGUgY29tcHJlc3NlZCBqYXIgZmlsZSBjb250YWluaW5nIG9ubHkgdGhpcyBtb2R1bGUuCitUaGVzZSBzaXplcyBhcmUgYXBwcm94aW1hdGUgZm9yIHJlbGVhc2UgMy42LgorPC9mb250PjwvYj4KKzxwPjxiPk1vZHVsZXM6PC9iPjwvcD4KKworPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0idm9pZCIgd2lkdGg9IjYyMyI+CisKKyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Tm9ybWFsaXplcjwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPm5vcm1hbGl6ZXIsIG5vcm1hbGl6ZXJUZXN0czwvdGQ+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+Njk4Jm5ic3A7S0I8L3RkPgorCisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisKKyAgICAgICAgICAgICAgVUNoYXJhY3RlciwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRGlyZWN0aW9uLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRW51bXMsCisgICAgICAgICAgICAgIFVQcm9wZXJ0eSwKKyAgICAgICAgICAgICAgVVNjcmlwdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLAorICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLCAKKyAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBDb2xsYXRvciwKKyAgICAgICAgICAgICAgPGI+Tm9ybWFsaXplcjwvYj4sCisgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGUsCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAorICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRpb3IsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKKyAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAorICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciwKKyAgICAgICAgICAgICAgVW5pY29kZVNldCwKKyAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAorICAgICAgICAgICAgICBVVEYxNgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKKyAgICAgICAgICAgICAgVUxvY2FsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCisgICAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFZlcnNpb25JbmZvCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorCisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5Db2xsYXRvcjwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbGxhdG9yLCBjb2xsYXRvclRlc3RzPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MiwwMzEmbmJzcDtLQjwvdGQ+CisKKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnksCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJFbnVtcywKKyAgICAgICAgICAgICAgVVByb3BlcnR5LAorICAgICAgICAgICAgICBVU2NyaXB0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJyZWFrRGljdGlvbmFyeSwKKyAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPkNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPkNvbGxhdGlvbktleTwvYj4sCisgICAgICAgICAgICAgIDxiPkNvbGxhdG9yPC9iPiwKKyAgICAgICAgICAgICAgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+Tm9ybWFsaXplcjwvYj4sCisgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGUsCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAorICAgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5SdWxlQmFzZWRDb2xsYXRvcjwvYj4sCisgICAgICAgICAgICAgIFN5bWJvbFRhYmxlLAorICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgPGI+VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAorICAgICAgICAgICAgICBVbmljb2RlU2V0LAorICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCisgICAgICAgICAgICAgIFVURjE2CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgQnl0ZUFycmF5V3JhcHBlciwKKyAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLAorICAgICAgICAgICAgICBDb21wYWN0Qnl0ZUFycmF5LAorICAgICAgICAgICAgICBGcmVlemFibGUsCisgICAgICAgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvciwKKyAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAorICAgICAgICAgICAgICBVTG9jYWxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgVmFsdWVJdGVyYXRvciwKKyAgICAgICAgICAgICAgVmVyc2lvbkluZm8KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisKKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPkNhbGVuZGFyPC90aD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y2FsZW5kYXIsIGNhbGVuZGFyVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjwvdGQ+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj4yLDAwNiZuYnNwO0tCPC90ZD4KKworICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIsCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJDYXRlZ29yeSwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckVudW1zLAorICAgICAgICAgICAgICBVUHJvcGVydHksCisgICAgICAgICAgICAgIFVTY3JpcHQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lm1hdGg6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgPGI+QmlnRGVjaW1hbDwvYj4sCisgICAgICAgICAgICAgIE1hdGhDb250ZXh0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPkNoaW5lc2VEYXRlRm9ybWF0PC9iPiwKKyAgICAgICAgICAgICAgPGI+Q2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzPC9iPiwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIENvbGxhdG9yLAorICAgICAgICAgICAgICA8Yj5EYXRlRm9ybWF0PC9iPiwKKyAgICAgICAgICAgICAgPGI+RGF0ZUZvcm1hdFN5bWJvbHM8L2I+LAorICAgICAgICAgICAgICA8Yj5EZWNpbWFsRm9ybWF0PC9iPiwKKyAgICAgICAgICAgICAgPGI+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2I+LAorICAgICAgICAgICAgICBNZXNzYWdlRm9ybWF0LAorICAgICAgICAgICAgICBOb3JtYWxpemVyLAorICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQsCisgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGUsCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAorICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LAorICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+U2ltcGxlRGF0ZUZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIFN5bWJvbFRhYmxlLAorICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgVUZvcm1hdCwKKyAgICAgICAgICAgICAgPGI+VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAorICAgICAgICAgICAgICBVbmljb2RlU2V0LAorICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCisgICAgICAgICAgICAgIFVURjE2CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgPGI+QnVkZGhpc3RDYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIDxiPkNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLAorICAgICAgICAgICAgICA8Yj5DaGluZXNlQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5Db3B0aWNDYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIDxiPkN1cnJlbmN5PC9iPiwKKyAgICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQsCisgICAgICAgICAgICAgIDxiPkRhdGVSdWxlPC9iPiwKKyAgICAgICAgICAgICAgPGI+RWFzdGVySG9saWRheTwvYj4sCisgICAgICAgICAgICAgIDxiPkV0aGlvcGljQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICBGcmVlemFibGUsCisgICAgICAgICAgICAgIDxiPkdyZWdvcmlhbkNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgPGI+SGVicmV3Q2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5IZWJyZXdIb2xpZGF5PC9iPiwKKyAgICAgICAgICAgICAgPGI+SG9saWRheTwvYj4sCisgICAgICAgICAgICAgIDxiPklzbGFtaWNDYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIDxiPkphcGFuZXNlQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICBNZWFzdXJlLAorICAgICAgICAgICAgICBNZWFzdXJlVW5pdCwKKyAgICAgICAgICAgICAgPGI+UmFuZ2VEYXRlUnVsZTwvYj4sCisgICAgICAgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+U2ltcGxlRGF0ZVJ1bGU8L2I+LAorICAgICAgICAgICAgICA8Yj5TaW1wbGVIb2xpZGF5PC9iPiwKKyAgICAgICAgICAgICAgPGI+U2ltcGxlVGltZVpvbmU8L2I+LAorICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCisgICAgICAgICAgICAgIDxiPlRpbWVab25lPC9iPiwKKyAgICAgICAgICAgICAgVUxvY2FsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCisgICAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFZlcnNpb25JbmZvCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5CcmVha0l0ZXJhdG9yPC90aD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+YnJlYWtJdGVyYXRvciwKK2JyZWFrSXRlcmF0b3JUZXN0czwvdGQ+CisKKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QuYnJlYWtpdGVyYXRvcjwvdGQ+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj4xLDg5MyZuYnNwO0tCPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKworICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnksCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJEaXJlY3Rpb24sCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJFbnVtcywKKyAgICAgICAgICAgICAgVVByb3BlcnR5LAorICAgICAgICAgICAgICBVU2NyaXB0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgPGI+QnJlYWtEaWN0aW9uYXJ5PC9iPiwKKyAgICAgICAgICAgICAgPGI+QnJlYWtJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCisgICAgICAgICAgICAgIENvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgQ29sbGF0b3IsCisgICAgICAgICAgICAgIDxiPkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBOb3JtYWxpemVyLAorICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZywKKyAgICAgICAgICAgICAgPGI+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAorICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCisgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgIFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAorICAgICAgICAgICAgICBVbmljb2RlU2V0LAorICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCisgICAgICAgICAgICAgIFVURjE2PC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorCisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKKyAgICAgICAgICAgICAgVUxvY2FsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCisgICAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFZlcnNpb25JbmZvCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKworICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5CYXNpYyBQcm9wZXJ0aWVzPC90aD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+cHJvcGVydGllc0Jhc2ljLAorcHJvcGVydGllc0Jhc2ljVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5sYW5nPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjgwMiZuYnNwO0tCPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKworICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyPC9iPiwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckNhdGVnb3J5PC9iPiwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckRpcmVjdGlvbjwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJFbnVtczwvYj4sCisgICAgICAgICAgICAgIDxiPlVQcm9wZXJ0eTwvYj4sCisgICAgICAgICAgICAgIDxiPlVTY3JpcHQ8L2I+LAorICAgICAgICAgICAgICA8Yj5VU2NyaXB0UnVuPC9iPgorCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJyZWFrRGljdGlvbmFyeSwKKyAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCisgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBDb2xsYXRvciwKKyAgICAgICAgICAgICAgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgTm9ybWFsaXplciwKKyAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAorICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCisgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgIFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAorICAgICAgICAgICAgICBVbmljb2RlU2V0LAorICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlVURjE2PC9iPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKKyAgICAgICAgICAgICAgVUxvY2FsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCisgICAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFZlcnNpb25JbmZvCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorCisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5GdWxsIFByb3BlcnRpZXM8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5wcm9wZXJ0aWVzRnVsbCwKK3Byb3BlcnRpZXNGdWxsVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5sYW5nPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjEsODM3Jm5ic3A7S0I8L3RkPgorCisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJDYXRlZ29yeTwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJEaXJlY3Rpb248L2I+LAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyRW51bXM8L2I+LAorICAgICAgICAgICAgICA8Yj5VUHJvcGVydHk8L2I+LAorICAgICAgICAgICAgICA8Yj5VU2NyaXB0PC9iPiwKKyAgICAgICAgICAgICAgPGI+VVNjcmlwdFJ1bjwvYj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCcmVha0RpY3Rpb25hcnksCisgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAorICAgICAgICAgICAgICBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5Ob3JtYWxpemVyPC9iPiwKKyAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICA8Yj5SZXBsYWNlYWJsZTwvYj4sCisgICAgICAgICAgICAgIDxiPlJlcGxhY2VhYmxlU3RyaW5nPC9iPiwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKKyAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5Vbmljb2RlRmlsdGVyPC9iPiwKKyAgICAgICAgICAgICAgPGI+VW5pY29kZU1hdGNoZXI8L2I+LAorICAgICAgICAgICAgICA8Yj5Vbmljb2RlU2V0PC9iPiwKKyAgICAgICAgICAgICAgPGI+VW5pY29kZVNldEl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgPGI+VVRGMTY8L2I+CisKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgQnl0ZUFycmF5V3JhcHBlciwKKyAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLAorICAgICAgICAgICAgICBDb21wYWN0Qnl0ZUFycmF5LAorICAgICAgICAgICAgICBGcmVlemFibGUsCisgICAgICAgICAgICAgIDxiPlJhbmdlVmFsdWVJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKKyAgICAgICAgICAgICAgVUxvY2FsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCisgICAgICAgICAgICAgIDxiPlZhbHVlSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5WZXJzaW9uSW5mbzwvYj4KKworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPkZvcm1hdHRpbmc8L3RoPgorCisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmZvcm1hdCwgZm9ybWF0VGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MywyMDcmbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorCisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgVUNoYXJhY3RlciwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRW51bXMsCisgICAgICAgICAgICAgIFVQcm9wZXJ0eSwKKyAgICAgICAgICAgICAgVVNjcmlwdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubWF0aDo8L3RkPgorCisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIDxiPkJpZ0RlY2ltYWw8L2I+CisgICAgICAgICAgICAgIE1hdGhDb250ZXh0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisKKyAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCisgICAgICAgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0LAorICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMsCisgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBDb2xsYXRvciwKKyAgICAgICAgICAgICAgPGI+RGF0ZUZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIDxiPkRhdGVGb3JtYXRTeW1ib2xzPC9iPiwKKyAgICAgICAgICAgICAgPGI+RGVjaW1hbEZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIDxiPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9iPiwKKyAgICAgICAgICAgICAgTWVhc3VyZUZvcm1hdCwKKyAgICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCwKKyAgICAgICAgICAgICAgTm9ybWFsaXplciwKKyAgICAgICAgICAgICAgPGI+TnVtYmVyRm9ybWF0PC9iPiwKKyAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAorICAgICAgICAgICAgICA8Yj5SdWxlQmFzZWROdW1iZXJGb3JtYXQ8L2I+LAorICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+U2ltcGxlRGF0ZUZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIFN5bWJvbFRhYmxlLAorICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgVUZvcm1hdCwKKyAgICAgICAgICAgICAgPGI+VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAorICAgICAgICAgICAgICBVbmljb2RlU2V0LAorICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCisgICAgICAgICAgICAgIFVURjE2CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgPGI+QnVkZGhpc3RDYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIDxiPkNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLAorICAgICAgICAgICAgICA8Yj5DaGluZXNlQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5Db3B0aWNDYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIDxiPkN1cnJlbmN5PC9iPiwKKyAgICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQsCisgICAgICAgICAgICAgIDxiPkV0aGlvcGljQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICBGcmVlemFibGUsCisgICAgICAgICAgICAgIDxiPkdyZWdvcmlhbkNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgPGI+SGVicmV3Q2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5Jc2xhbWljQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5KYXBhbmVzZUNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgTWVhc3VyZSwKKyAgICAgICAgICAgICAgTWVhc3VyZVVuaXQsCisgICAgICAgICAgICAgIDxiPlJhbmdlVmFsdWVJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlNpbXBsZVRpbWVab25lPC9iPiwKKyAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAorICAgICAgICAgICAgICA8Yj5UaW1lWm9uZTwvYj4sCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBWZXJzaW9uSW5mbworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+U3RyaW5nUHJlcCwgSUROQTwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPnN0cmluZ1ByZXAsIHN0cmluZ1ByZXBUZXN0czwvdGQ+CisKKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDwvdGQ+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj43MjUmbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisKKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgVUNoYXJhY3RlciwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRGlyZWN0aW9uLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRW51bXMsCisgICAgICAgICAgICAgIFVQcm9wZXJ0eSwKKyAgICAgICAgICAgICAgVVNjcmlwdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorCisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCisgICAgICAgICAgICAgIENvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgQ29sbGF0b3IsCisgICAgICAgICAgICAgIDxiPklETkE8L2I+LAorICAgICAgICAgICAgICBOb3JtYWxpemVyLAorICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZywKKyAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5TdHJpbmdQcmVwPC9iPiwKKyAgICAgICAgICAgICAgPGI+U3RyaW5nUGFyc2VFeGNlcHRpb248L2I+LAorICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKKyAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciwKKyAgICAgICAgICAgICAgVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciwKKyAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciwKKyAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVTZXQsCisgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciwKKyAgICAgICAgICAgICAgVVRGMTYKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKworICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAorICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCisgICAgICAgICAgICAgIEZyZWV6YWJsZSwKKyAgICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBWZXJzaW9uSW5mbworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisKKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+VHJhbnNmb3JtczwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPnRyYW5zbGl0ZXJhdG9yLAordHJhbnNsaXRlcmF0b3JUZXN0czwvdGQ+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0PC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjk4OCZuYnNwO0tCPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKworICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyPC9iPiwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckNhdGVnb3J5PC9iPiwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckRpcmVjdGlvbjwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJFbnVtczwvYj4sCisgICAgICAgICAgICAgIDxiPlVQcm9wZXJ0eTwvYj4sCisgICAgICAgICAgICAgIDxiPlVTY3JpcHQ8L2I+LAorICAgICAgICAgICAgICA8Yj5VU2NyaXB0UnVuPC9iPgorCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIDxiPkJyZWFrRGljdGlvbmFyeTwvYj4sCisgICAgICAgICAgICAgIDxiPkJyZWFrSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIENvbGxhdG9yLAorICAgICAgICAgICAgICA8Yj5EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgPGI+Tm9ybWFsaXplcjwvYj4sCisgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgPGI+UmVwbGFjZWFibGU8L2I+LAorICAgICAgICAgICAgICA8Yj5SZXBsYWNlYWJsZVN0cmluZzwvYj4sCisgICAgICAgICAgICAgIDxiPlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIFN5bWJvbFRhYmxlLAorICAgICAgICAgICAgICA8Yj5UcmFuc2xpdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAorICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciwKKyAgICAgICAgICAgICAgPGI+VW5pY29kZVNldDwvYj4sCisgICAgICAgICAgICAgIDxiPlVuaWNvZGVTZXRJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVURjE2PC9iPgorCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkPiA8YnI+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICA8Yj5SYW5nZVZhbHVlSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICA8Yj5WYWx1ZUl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgPGI+VmVyc2lvbkluZm88L2I+CisKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+Cis8IS0tIHRyPgorCisgICAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+PGI+TW9kdWxlIE5hbWU8L2I+PC90aD4KKworICAgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPkFudCBUYXJnZXRzPC9iPjwvdGg+CisKKyAgICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5UZXN0IFBhY2thZ2UgU3VwcG9ydGVkPC9iPjwvdGg+CisKKyAgICAgICAgPHRoIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+PGI+U2l6ZTwvYj48L3RoPgorCis8L3RyIC0tPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxwPkJ1aWxkaW5nIGFueSBvZiB0aGVzZSBtb2R1bGVzIGlzIGFzIGVhc3kgYXMgc3BlY2lmeWluZyBhIGJ1aWxkCit0YXJnZXQgdG8gdGhlIEFudCBidWlsZCBzeXN0ZW0sIGUuZzoKKzxicj4KK1RvIGJ1aWxkIGEgbW9kdWxlIHRoYXQgY29udGFpbnMgb25seSB0aGUgTm9ybWFsaXplciBBUEk6IDwvcD4KKzxvbD4KKyAgPGxpPiBCdWlsZCB0aGUgbW9kdWxlLiA8YnI+CisgICAgPGNvZGU+IGFudCBub3JtYWxpemVyIDwvY29kZT4gPC9saT4KKyAgPGxpPiBCdWlsZCB0aGUgamFyIGNvbnRhaW5pbmcgdGhlIG1vZHVsZS4gPGJyPgorICAgIDxjb2RlPmFudCBtb2R1bGVKYXIgPC9jb2RlPiA8L2xpPgorICA8bGk+IEJ1aWxkIHRoZSB0ZXN0cyBmb3IgdGhlIG1vZHVsZS4gPGJyPgorICAgIDxjb2RlPiBhbnQgbm9ybWFsaXplclRlc3RzIDwvY29kZT4gPC9saT4KKyAgPGxpPiBSdW4gdGhlIHRlc3RzIGFuZCB2ZXJpZnkgdGhhdCB0aGUgc2VsZiB0ZXN0cyBwYXNzLiA8YnI+CisgICAgPGNvZGU+IGphdmEgLWNsYXNzcGF0aCAkaWN1NGpfcm9vdC9jbGFzc2VzCitjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIC1ub3Rocm93IC13IDwvY29kZT4gPC9saT4KKzwvb2w+CitJZiBtb3JlIHRoYW4gb25lIG1vZHVsZSBpcyByZXF1aXJlZCwgdGhlIG1vZHVsZSBidWlsZCB0YXJnZXRzIGNhbiBiZQorY29uY2F0ZW5hdGVkLCBlLmc6Cis8b2w+CisgIDxsaT4gQnVpbGQgdGhlIG1vZHVsZXMuIDxicj4KKyAgICA8Y29kZT4gYW50IG5vcm1hbGl6ZXIgY29sbGF0b3IgPC9jb2RlPiA8L2xpPgorICA8bGk+IEJ1aWxkIHRoZSBqYXIgY29udGFpbmluZyB0aGUgbW9kdWxlcy4gPGJyPgorICAgIDxjb2RlPmFudCBtb2R1bGVKYXIgPC9jb2RlPiA8L2xpPgorICA8bGk+IEJ1aWxkIHRoZSB0ZXN0cyBmb3IgdGhlIG1vZHVsZS4gPGJyPgorICAgIDxjb2RlPiBhbnQgbm9ybWFsaXplclRlc3RzIGNvbGxhdG9yVGVzdHMgPC9jb2RlPiA8L2xpPgorICA8bGk+IFJ1biB0aGUgdGVzdHMgYW5kIHZlcmlmeSB0aGF0IHRoZXkgcGFzcy4gPGJyPgorICAgIDxjb2RlPiBqYXZhIC1jbGFzc3BhdGggJGljdTRqX3Jvb3QvY2xhc3NlcworY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCAtbm90aHJvdyAtdyA8L2NvZGU+IDwvbGk+Cis8L29sPgorVGhlIGphciBzaG91bGQgYmUgYnVpbHQgYmVmb3JlIHRoZSB0ZXN0cywgc2luY2UgZm9yIHNvbWUgdGFyZ2V0cworYnVpbGRpbmcgdGhlIHRlc3RzIHdpbGwgY2F1c2UgYWRkaXRpb25hbCBjbGFzc2VzIHRvIGJlIGNvbXBpbGVkIHRoYXQKK2FyZSBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgbW9kdWxlIGl0c2VsZi4KKzxoNT4gTm90ZXM6IDwvaDU+Cis8dWw+CisgIDxsaT5SZWdhcmRsZXNzIG9mIHdoZXRoZXIgSUNVNEogaXMgYnVpbHQgYXMgYSB3aG9sZSBvciBhcyBtb2R1bGVzLAordGhlIGphciBmaWxlIHByb2R1Y2VkIGlzIG5hbWVkIDxlbT5pY3U0ai5qYXI8L2VtPi48L2xpPgorICA8bGk+VG8gYXNjZXJ0YWluIGlmIGFuIGljdTRqLmphciBjb250YWlucyBhbGwgb2YgSUNVNEogb3Igbm90LCBwbGVhc2UKK3NlZSB0aGUgbWFuaWZlc3QgZmlsZSBpbiB0aGUgamFyPC9saT4KKyAgPGxpPlRoZSB0YXJnZXQgbW9kdWxlSmFyIGRvZXMgbm90IGRlcGVuZCBvbiBhbnkgb3RoZXIgdGFyZ2V0LiBJdCBqdXN0CitjcmVhdGVzIGEgamFyIG9mIGFsbCBjbGFzcyBmaWxlcyB1bmRlcgorJGljdTRqX3Jvb3QvY2xhc3Nlcy9jb20vaWJtL2ljdS8sIGV4Y2x1ZGluZyB0aGUgY2xhc3NzIGZpbGVzIGluCiskaWN1NGpfcm9vdC9jbGFzc2VzL2NvbS9pYm0vaWN1L2RldiBmb2xkZXI8L2xpPgorICA8bGk+VGhlIGxpc3Qgb2YgbW9kdWxlIGJ1aWxkIHRhcmdldHMgY2FuIGJlIG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhlCitjb21tYW5kOiA8Y29kZT5hbnQgLXByb2plY3RoZWxwPC9jb2RlPjwvbGk+Cis8L3VsPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9InRyeWluZ291dCI+PC9hPlRyeWluZyBPdXQgSUNVNEo8L2gzPgorPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiB0aGUgZGVtb3MgcHJvdmlkZWQgd2l0aCBJQ1U0SiBhcmUgZm9yIHRoZQorbW9zdCBwYXJ0IHVuZG9jdW1lbnRlZC4gVGhpcyBsaXN0IGNhbiBzaG93IHlvdSB3aGVyZSB0byBsb29rLCBidXQKK3lvdSdsbAoraGF2ZSB0byBleHBlcmltZW50IGEgYml0LiBUaGUgZGVtb3MgKHdpdGggdGhlCitleGNlcHRpb24gb2YgcmljaGVkaXQpIGFyZSA8c3Ryb25nPnVuc3VwcG9ydGVkPC9zdHJvbmc+IGFuZCBtYXkgY2hhbmdlCitvciBkaXNhcHBlYXIgd2l0aG91dCBub3RpY2UuPC9wPgorPHA+VGhlIGljdTRqLmphciBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGNvcmUgSUNVNEogY2xhc3Nlcywgbm90IHRoZQorZGVtbyBjbGFzc2VzLCBzbyB1bmxlc3MgeW91IGJ1aWxkIElDVTRKIHRoZXJlIGlzIGxpdHRsZSB0byB0cnkgb3V0LgorPC9wPgorPGg0PkNoYXJzZXQ8L2g0PgorVG8gdHJ5IG91dCB0aGUgPHN0cm9uZz5DaGFyc2V0PC9zdHJvbmc+IHBhY2thZ2UsIGJ1aWxkIDxzdHJvbmc+aWN1NGouamFyPC9zdHJvbmc+IGFuZCA8c3Ryb25nPmljdTRqLWNoYXJzZXRzLmphcjwvc3Ryb25nPiB1c2luZyAnamFyJyB0YXJnZXQuCitZb3UgY2FuIHVzZSB0aGUgY2hhcnNldHMgYnkgcGxhY2luZyB0aGVzZSBmaWxlcyBvbiB5b3VyIGNsYXNzcGF0aC4KKzxibG9ja3F1b3RlPjx0dD5qYXZhIC1jcCAkUm9vdC9pY3U0ai5qYXI6JFJvb3QvaWN1NGotY2hhcnNldHMuamFyICZsdDt5b3VyIHByb2dyYW0mZ3Q7PC90dD48L2Jsb2NrcXVvdGU+Cis8aDQ+UmljaCBFZGl0PC9oND4KK1RvIHRyeSBvdXQgdGhlIDxzdHJvbmc+cmljaGVkaXQ8L3N0cm9uZz4gcGFja2FnZSwgZmlyc3QgYnVpbGQgdGhlCityaWNoZWRpdEphciB0YXJnZXQuCitUaGlzIGlzIGEgJ3J1bm5hYmxlJyBqYXIgZmlsZS4gVG8gcnVuIHRoZSByaWNoZWRpdCBkZW1vLCB0eXBlOgorPGJsb2NrcXVvdGU+PHR0PmphdmEgLWphciAkUm9vdC9yaWNoZWRpdC9yaWNoZWRpdC5qYXI8L3R0PjwvYmxvY2txdW90ZT4KK1RoaXMgd2lsbCBwcmVzZW50IGFuIGVtcHR5IGVkaXQgcGFuZSB3aXRoIGFuIGF3dCBpbnRlcmZhY2UuCis8cD5XaXRoIGEgZnVsbGVyIGNvbW1hbmQgbGluZSB5b3UgY2FuIHRyeSBvdXQgb3RoZXIgb3B0aW9ucywgZm9yCitleGFtcGxlOjwvcD4KKzxibG9ja3F1b3RlPjx0dD5qYXZhIC1jbGFzc3BhdGggJFJvb3QvcmljaGVkaXQvcmljaGVkaXQuamFyCitjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8gWy1zd2luZ11bZmlsZV08L3R0PjwvYmxvY2txdW90ZT4KKzxwPlRoaXMgd2lsbCB1c2UgYW4gYXd0IEdVSSwgb3IgYSBzd2luZyBHVUkgaWYKKzx0dD4tc3dpbmc8L3R0PiBpcyBwYXNzZWQgb24gdGhlIGNvbW1hbmQgbGluZS4gSXQgd2lsbCBvcGVuIGEgdGV4dAorZmlsZSBpZiBvbmUgaXMgcHJvdmlkZWQsIG90aGVyd2lzZSBpdCB3aWxsIG9wZW4gYSBibGFuayBwYWdlLiBDbGljawordG8gdHlwZS48L3A+Cis8cD4KK1lvdSBjYW4gYWRkIHRhYnMgdG8gdGhlIHRhYiBydWxlciBieSBjbGlja2luZyBpbiB0aGUgcnVsZXIgd2hpbGUKK2hvbGRpbmcgZG93biB0aGUgY29udHJvbCBrZXkuCitDbGlja2luZyBvbiBhbiBleGlzdGluZyB0YWIgY2hhbmdlcyBiZXR3ZWVuIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGFuZAorZGVjaW1hbCB0YWJzLiBEcmFnZ2luZworYSB0YWIgbW92ZXMgaXQsIGRyYWdnaW5nIGl0IG9mZiB0aGUgcnVsZXIgcmVtb3ZlcyBpdC48L3A+Cis8cD4KK1lvdSBjYW4gZXhwZXJpbWVudCB3aXRoIGNvbXBsZXggdGV4dCBieSB1c2luZyB0aGUga2V5bWFwIGZ1bmN0aW9ucy4KK1BsZWFzZSBub3RlIHRoYXQgdGhlc2UgYXJlIG1haW5seSBmb3IgZGVtbyBwdXJwb3NlcywgZm9yIHJlYWwgd29yaword2l0aCBBcmFiaWMgb3IgSGVicmV3IHlvdSB3aWxsIHdhbnQgdG8gdXNlIGFuIGlucHV0IG1ldGhvZC4gWW91IHdpbGwKK25lZWQgdG8gdXNlIGEgZm9udCB0aGF0IHN1cHBvcnRzIEFyYWJpYyBvciBIZWJyZXcsICdMdWNpZGEgU2FucycKKyhwcm92aWRlZAord2l0aCBKYXZhKSBzdXBwb3J0cyB0aGVzZSBsYW5ndWFnZXMuPC9wPgorPGg0Pk90aGVyIGRlbW9zPC9oND4KKzxwPlRoZSBvdGhlciBkZW1vIHByb2dyYW1zIGFyZSA8c3Ryb25nPm5vdCBzdXBwb3J0ZWQ8L3N0cm9uZz4gYW5kCitleGlzdCBvbmx5IHRvIGxldCB5b3UKK2V4cGVyaW1lbnQgd2l0aCB0aGUgSUNVNEogY2xhc3Nlcy4gRmlyc3QsIGJ1aWxkIElDVTRKIHVzaW5nIDx0dD5hbnQmbmJzcDthbGw8L3R0Pi4KK1RoZW4gdHJ5CitvbmUgb2YgdGhlIGZvbGxvd2luZzoKKzwvcD4KKzx1bD4KKyAgPGxpPjx0dD5qYXZhIC1jbGFzc3BhdGggY2xhc3NlcworY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXIuQ2FsZW5kYXJBcHA8L3R0PiA8L2xpPgorICA8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzCitjb20uaWJtLmljdS5kZXYuZGVtby5ob2xpZGF5LkhvbGlkYXlDYWxlbmRhckRlbW88L3R0PiA8L2xpPgorICA8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzCitjb20uaWJtLmljdS5kZXYuZGVtby5yYmJpLlRleHRCb3VuZERlbW88L3R0Pjxicj4KKyhDbGljayBpbiB0aGUgdGV4dCwgdGhlbiB1c2UgPHR0PmN0cmwtTjwvdHQ+IGFuZCA8dHQ+Y3RybC1QPC90dD4gdG8KK3NlbGVjdCB0aGUgbmV4dCBvciBwcmV2aW91cyBibG9jayBvZiB0ZXh0LikgPC9saT4KKyAgPGxpPjx0dD5qYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYuZGVtby5yYm5mLlJibmZEZW1vPC90dD4KKyAgPC9saT4KKyAgPGxpPjx0dD5qYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdC5EZW1vPC90dD4KKyAgPC9saT4KKzwvdWw+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0icmVzb3VyY2VzIj5JQ1U0SiBSZXNvdXJjZSBJbmZvcm1hdGlvbjwvYT48L2gzPgorU3RhcnRpbmcgd2l0aCByZWxlYXNlIDIuMSwgSUNVNEogaW5jbHVkZXMgaXRzIG93bgorcmVzb3VyY2UgaW5mb3JtYXRpb24KK3doaWNoIGlzIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIEpESyByZXNvdXJjZSBpbmZvcm1hdGlvbi4gKE5vdGUsCitpbiBJQ1U0SiAzLjIgYW5kIDMuNCwgdGltZSB6b25lIGluZm9ybWF0aW9uIHN0aWxsIGRlcGVuZHMgb24gdGhlCit1bmRlcmx5aW5nIEpESykuIFRoZQorbmV3IElDVTRKIGluZm9ybWF0aW9uIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGluZm9ybWF0aW9uIGluIElDVTRDIGFuZAorbWFueQorcmVzb3VyY2VzIGFyZSwgaW4gZmFjdCwgdGhlIHNhbWUgYmluYXJ5IGZpbGVzIHRoYXQgSUNVNEMgdXNlcy4KKzxwPgorQnkgZGVmYXVsdCB0aGUgSUNVNEogZGlzdHJpYnV0aW9uIGluY2x1ZGVzIGFsbCBvZiB0aGUgc3RhbmRhcmQgcmVzb3VyY2UKK2luZm9ybWF0aW9uLiBJdCBpcyBsb2NhdGVkIHVuZGVyIHRoZSBkaXJlY3RvcnkgY29tL2libS9pY3UvaW1wbC9kYXRhLgorRGVwZW5kaW5nIG9uIHRoZSBzZXJ2aWNlLCB0aGUgZGF0YSBpcyBpbiBkaWZmZXJlbnQgbG9jYXRpb25zIGFuZCBpbgorZGlmZmVyZW50IGZvcm1hdHMuIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB3aWxsIGNvbnRpbnVlIHRvIGNoYW5nZQorZnJvbSByZWxlYXNlIHRvIHJlbGVhc2UsIHNvIGNsaWVudHMgc2hvdWxkIG5vdCBkZXBlbmQgb24gdGhlIGV4YWN0Citvcmdhbml6YXRpb24KK29mIHRoZSBkYXRhIGluIElDVTRKLjwvcD4KKzx1bD4KKyAgPGxpPlRoZSBwcmltYXJ5IDxiPmxvY2FsZSBkYXRhPC9iPiBpcyB1bmRlciB0aGUgZGlyZWN0b3J5IDx0dD5pY3VkdDM2YjwvdHQ+LAorYXMgYSBzZXQgb2YgPHR0PiIucmVzIjwvdHQ+IGZpbGVzIHdob3NlIG5hbWVzIGFyZSB0aGUgbG9jYWxlIGlkZW50aWZpZXJzLiAKK0xvY2FsZSBuYW1pbmcgaXMgZG9jdW1lbnRlZCB0aGUgPGNvZGU+Y29tLmlibS5pY3UudXRpbC5VTG9jYWxlPC9jb2RlPgorY2xhc3MsIGFuZCB0aGUgdXNlIG9mIHRoZXNlIG5hbWVzIGluIHNlYXJjaGluZyBmb3IgcmVzb3VyY2VzIGlzIGRvY3VtZW50ZWQgCitpbiA8Y29kZT5qYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU8L2NvZGU+LgorICA8L2xpPgorICA8bGk+VGhlIDxiPmNvbGxhdGlvbiBkYXRhPC9iPiBpcyB1bmRlciB0aGUgZGlyZWN0b3J5IDx0dD5pY3VkdDM2Yi9jb2xsPC90dD4sCithcyBhIHNldCBvZiA8dHQ+Ii5yZXMiPC90dD4gZmlsZXMuPC9saT4KKyAgPGxpPlRoZSA8Yj5ydWxlLWJhc2VkIHRyYW5zbGl0ZXJhdG9yIGRhdGE8L2I+IGlzIHVuZGVyIHRoZSBkaXJlY3RvcnkKKzx0dD5pY3VkdDM2Yi90cmFuc2xpdDwvdHQ+IGFzIGEgc2V0IG9mIDx0dD4iLnJlcyI8L3R0PiBmaWxlcy4gICg8Yj5Ob3RlOjwvYj4gdGhlCitIYW4gdHJhbnNsaXRlcmF0b3IgdGVzdCBkYXRhIGlzIG5vIGxvbmdlciBpbmNsdWRlZCBpbiB0aGUgY29yZSBpY3U0ai5qYXIgCitmaWxlIGJ5IGRlZmF1bHQuKTwvbGk+CisgIDxsaT5UaGUgPGI+cnVsZS1iYXNlZCBudW1iZXIgZm9ybWF0IGRhdGE8L2I+IGlzIHVuZGVyIHRoZSBkaXJlY3RvcnkKKzx0dD5pY3VkdDM2Yi9yYm5mPC90dD4gYXMgYSBzZXQgb2YgPHR0PiIucmVzIjwvdHQ+IGZpbGVzLgorICA8bGk+VGhlIDxiPmJyZWFrIGl0ZXJhdG9yIGRhdGE8L2I+IGlzIGRpcmVjdGx5IHVuZGVyIHRoZSBkYXRhCitkaXJlY3RvcnksIGFzIGEgc2V0IG9mIDx0dD4iLmJyayI8L3R0PiBmaWxlcywgbmFtZWQgYWNjb3JkaW5nIHRvIHRoZQordHlwZSBvZiBicmVhayBhbmQgdGhlIGxvY2FsZSB3aGVyZSB0aGVyZSBhcmUgbG9jYWxlLXNwZWNpZmljIHZlcnNpb25zLjwvbGk+CisgIDxsaT5UaGUgPGI+aG9saWRheSBkYXRhPC9iPiBpcyB1bmRlciB0aGUgPHR0PmRhdGE8L3R0PiBkaXJlY3RvcnksCithcyBhIHNldCBvZiA8dHQ+Ii5jbGFzcyI8L3R0PiBmaWxlcywgbmFtZWQgPHR0PiJIb2xpZGF5QnVuZGxlXyI8L3R0PgorZm9sbG93ZWQgYnkgdGhlIGxvY2FsZSBJRC48L2xpPgorICA8bGk+VGhlIDxiPmNoYXJhY3RlciBwcm9wZXJ0eSBkYXRhPC9iPiBhcyB3ZWxsIGFzIGFzc29ydGVkIDxiPm5vcm1hbGl6YXRpb24KK2RhdGE8L2I+IGFuZCBkZWZhdWx0IDxiPnVuaWNvZGUgY29sbGF0aW9uIGFsZ29yaXRobSAoVUNBKSBkYXRhPC9iPgoraXMgZm91bmQgdW5kZXIgdGhlIDx0dD5kYXRhPC90dD4gZGlyZWN0b3J5IGFzIGEgc2V0IG9mIDx0dD4iLmljdSI8L3R0PgorZmlsZXMuIDwvbGk+Cis8L3VsPgorPHA+CitTb21lIG9mIHRoZSBkYXRhIGZpbGVzIGFsaWFzIG9yIG90aGVyd2lzZSByZWZlcmVuY2UgZGF0YSBmcm9tIG90aGVyCitkYXRhIGZpbGVzLiBPbmUgcmVhc29uIGZvciB0aGlzIGlzIGJlY2F1c2Ugc29tZSBsb2NhbGUgbmFtZXMgaGF2ZQorY2hhbmdlZC4gRm9yIGV4YW1wbGUsIDx0dD5oZV9JTDwvdHQ+IHVzZWQgdG8gYmUgPHR0Pml3X0lMPC90dD4uIEluCitvcmRlciB0byBzdXBwb3J0IGJvdGggbmFtZXMgYnV0IG5vdCBkdXBsaWNhdGUgdGhlIGRhdGEsIG9uZSBvZiB0aGUKK3Jlc291cmNlIGZpbGVzIHJlZmVycyB0byB0aGUgb3RoZXIgZmlsZSdzIGRhdGEuIEluIG90aGVyIGNhc2VzLCBhCitmaWxlIG1heSBhbGlhcyBhIHBvcnRpb24gb2YgYW5vdGhlciBmaWxlJ3MgZGF0YSBpbiBvcmRlciB0byBzYXZlCitzcGFjZS4gQ3VycmVudGx5IElDVTRKIHByb3ZpZGVzIG5vIHRvb2wgZm9yIHJldmVhbGluZyB0aGVzZQorZGVwZW5kZW5jaWVzLjwvcD4KKzxibG9ja3F1b3RlPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gIEphdmEncyA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzCitzaWxlbnRseSBjb252ZXJ0cyB0aGUgbGFuZ3VhZ2UgY29kZSA8dHQ+ImhlIjwvdHQ+IHRvIDx0dD4iaXciPC90dD4KK3doZW4geW91IGNvbnN0cnVjdCB0aGUgTG9jYWxlIChmb3IgdmVyc2lvbnMgb2YgSmF2YSB0aHJvdWdoIEphdmEgNSkuIFRodXMKK0phdmEgY2Fubm90IGJlIHVzZWQgdG8gbG9jYXRlIHJlc291cmNlcyB0aGF0IHVzZSB0aGUgPHR0PiJoZSI8L3R0PgorbGFuZ3VhZ2UgY29kZS4gSUNVLCBvbiB0aGUgb3RoZXIgaGFuZCwgZG9lcyBub3QgcGVyZm9ybSB0aGlzCitjb252ZXJzaW9uIGluIFVMb2NhbGUsIGFuZCBpbnN0ZWFkIHVzZXMgYWxpYXNpbmcgaW4gdGhlIGxvY2FsZSBkYXRhIHRvCityZXByZXNlbnQgdGhlIHNhbWUgc2V0IG9mIGRhdGEgdW5kZXIgZGlmZmVyZW50IGxvY2FsZQoraWRzLjwvYmxvY2txdW90ZT4KKzxwPgorUmVzb3VyY2UgZmlsZXMgdGhhdCB1c2UgbG9jYWxlIGlkcyBmb3JtIGEgaGllcmFyY2h5LCB3aXRoIHVwIHRvIGZvdXIKK2xldmVsczogYSByb290LCBsYW5ndWFnZSwgcmVnaW9uIChjb3VudHJ5KSwgYW5kIHZhcmlhbnQuIFNlYXJjaGVzIGZvcgorbG9jYWxlIGRhdGEgYXR0ZW1wdCB0byBtYXRjaCBhcyBmYXIgZG93biB0aGUgaGllcmFyY2h5IGFzIHBvc3NpYmxlLAorZm9yIGV4YW1wbGUsIDx0dD4iaGVfSUwiPC90dD4gd2lsbCBtYXRjaCA8dHQ+aGVfSUw8L3R0PiwgYnV0Cis8dHQ+ImhlX1VTIjwvdHQ+IHdpbGwgbWF0Y2ggPHR0PmhlPC90dD4gKHNpbmNlIHRoZXJlIGlzIG5vIDx0dD5VUzwvdHQ+Cit2YXJpYW50IGZvciBoZSwgYW5kIDx0dD4ieHhfWVk8L3R0PiB3aWxsIG1hdGNoIHJvb3QgKHRoZQorZGVmYXVsdCBmYWxsYmFjayBsb2NhbGUpIHNpbmNlIHRoZXJlIGlzIG5vIDx0dD54eDwvdHQ+IGxhbmd1YWdlIGNvZGUKK2luIHRoZSBsb2NhbGUgaGllcmFyY2h5LiBBZ2Fpbiwgc2VlCis8Y29kZT5qYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU8L2NvZGU+IGZvciBtb3JlIGluZm9ybWF0aW9uLgorPC9wPgorPHA+Cis8c3Ryb25nPkN1cnJlbnRseSBJQ1U0SiBwcm92aWRlcyBubyB0b29sIGZvciByZXZlYWxpbmcgdGhlc2UKK2RlcGVuZGVuY2llczwvc3Ryb25nPiBiZXR3ZWVuIGRhdGEgZmlsZXMsIHNvIHRyaW1taW5nIHRoZSBkYXRhCitkaXJlY3RseSBpbiB0aGUgSUNVNEogcHJvamVjdCBpcyBhIGhpdC1vci1taXNzIGFmZmFpci4gVGhlIGtleSBwb2ludAord2hlbiB5b3UgcmVtb3ZlIGRhdGEgaXMgdG8gbWFrZSBzdXJlIHRvIHJlbW92ZSBhbGwgZGVwZW5kZW5jaWVzIG9uCit0aGF0IGRhdGEgYXMgd2VsbC4gRm9yIGV4YW1wbGUsIGlmIHlvdSByZW1vdmUgPHR0PmhlLnJlczwvdHQ+LCB5b3UKK25lZWQgdG8gcmVtb3ZlIDx0dD5oZV9JTC5yZXM8L3R0Piwgc2luY2UgaXQgaXMgbG93ZXIgaW4gdGhlIGhpZXJhcmNoeSwKK2FuZCB5b3UgbXVzdCByZW1vdmUgaXcucmVzLCBzaW5jZSBpdCByZWZlcmVuY2VzIDx0dD5oZS5yZXM8L3R0PiwgYW5kCis8dHQ+aXdfSUwucmVzPC90dD4sIHNpbmNlIGl0IGRlcGVuZHMgb24gaXQgKGFuZCBhbHNvIHJlZmVyZW5jZXMKKzx0dD5oZV9JTC5yZXM8L3R0PikuCis8L3A+Cis8cD4KK1VuZm9ydHVuYXRlbHksIHRoZSBqYXIgdG9vbCBpbiB0aGUgSkRLIHByb3ZpZGVzIG5vIHdheSB0byByZW1vdmUgaXRlbXMKK2Zyb20gYSBqYXIgZmlsZS4gVGh1cyB5b3UgaGF2ZSB0byBleHRyYWN0IHRoZSByZXNvdXJjZXMsIHJlbW92ZSB0aGUKK29uZXMgeW91IGRvbid0IHdhbnQsIGFuZCB0aGVuIGNyZWF0ZSBhIG5ldyBqYXIgZmlsZSB3aXRoIHRoZSByZW1pbmluZworcmVzb3VyY2VzLiBTZWUgdGhlIGphciB0b29sIGluZm9ybWF0aW9uIGZvciBob3cgdG8gZG8gdGhpcy4gQmVmb3JlCisncmVqYXJpbmcnIHRoZSBmaWxlcywgYmUgc3VyZSB0byB0aG9yb3VnaGx5IHRlc3QgeW91ciBhcHBsaWNhdGlvbiB3aXRoCit0aGUgcmVtYWluaW5nIHJlc291cmNlcywgbWFraW5nIHN1cmUgZWFjaCByZXF1aXJlZCByZXNvdXJjZSBpcworcHJlc2VudC4KKzwvcD4KKzxoND5Vc2luZyBhZGRpdGlvbmFsIHJlc291cmNlIGZpbGVzIHdpdGggSUNVNEo8L2g0PgorPGJsb2NrcXVvdGU+CisgIDx0YWJsZSBjZWxscGFkZGluZz0iMyIgZnJhbWU9ImJvcmRlciIgcnVsZXM9Im5vbmUiIHdpZHRoPSI1MCUiPgorICAgIDx0Ym9keT4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPjxiPjxmb250IGNvbG9yPSJyZWQiIHNpemU9IisxIj5XYXJuaW5nOjwvZm9udD4gUmVzb3VyY2UKK2ZpbGUgZm9ybWF0cyBjYW4gY2hhbmdlIGFjcm9zcyByZWxlYXNlcyBvZiBJQ1U0SiE8L2I+PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD5UaGUgZm9ybWF0IG9mIElDVTRKIHJlc291cmNlcyBpcyBub3QgcGFydCBvZiB0aGUgQVBJLgorQ2xpZW50cyB3aG8gZGV2ZWxvcCB0aGVpciBvd24gcmVzb3VyY2VzIGZvciB1c2Ugd2l0aCBJQ1U0SiBzaG91bGQgYmUKK3ByZXBhcmVkIHRvCityZWdlbmVyYXRlIHRoZW0gd2hlbiB0aGV5IG1vdmUgdG8gbmV3IHJlbGVhc2VzIG9mIElDVTRKLjwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgIDwvdGFibGU+Cis8L2Jsb2NrcXVvdGU+Cis8cD4KK1dlIGFyZSBzdGlsbCBkZXZlbG9waW5nIElDVTRKJ3MgcmVzb3VyY2UgbWVjaGFuaXNtLiBDdXJyZW50bHkgaXQgCitpcyBub3QgcG9zc2libGUgdG8gbWl4IGljdSdzIG5ldyBiaW5hcnkgPHR0Pi5yZXM8L3R0PgorcmVzb3VyY2VzCit3aXRoIHRyYWRpdGlvbmFsIGphdmEtc3R5bGUgPHR0Pi5jbGFzczwvdHQ+IG9yIDx0dD4udHh0PC90dD4KK3Jlc291cmNlcy4gV2UgbWlnaHQKK2FsbG93IGZvciB0aGlzIGluIGEgZnV0dXJlIHJlbGVhc2UsIGJ1dCBzaW5jZSB0aGUgcmVzb3VyY2UgZGF0YSBhbmQKK2Zvcm1hdCBpcyBub3QgZm9ybWFsbHkKK3N1cHBvcnRlZCwgeW91IHJ1biB0aGUgcmlzayBvZiBpbmNvbXBhdGliaWxpdGllcyB3aXRoIGZ1dHVyZSByZWxlYXNlcworb2YgSUNVNEouCis8L3A+Cis8cD4KK1Jlc291cmNlIGRhdGEgaW4gSUNVNEogaXMgY2hlY2tlZCBpbiB0byB0aGUgcmVwb3NpdG9yeSBhcyBhIGphciBmaWxlCitjb250YWluaW5nIHRoZSByZXNvdXJjZSBiaW5hcmllcywgPHR0PmljdWRhdGEuamFyPC90dD4uIFRoaXMKK21lYW5zIHRoYXQgaW5zcGVjdGluZyB0aGUgY29udGVudHMgb2YgdGhlc2UgcmVzb3VyY2VzIGlzIGRpZmZpY3VsdC4KK1RoZXkgY3VycmVudGx5IGFyZSBjb21waWxlZCBmcm9tIElDVTRDIDx0dD4udHh0PC90dD4gZmlsZSBkYXRhLiBZb3UKK2NhbiB2aWV3IHRoZSBjb250ZW50cyBvZiB0aGUgSUNVNEMgdGV4dCByZXNvdXJjZSBmaWxlcyB0byB1bmRlcnN0YW5kCit0aGUgY29udGVudHMgb2YgdGhlIElDVTRKIHJlc291cmNlcy4KKzwvcD4KKzxwPgorVGhlIGZpbGVzIGluIDx0dD5pY3VkYXRhLmphcjwvdHQ+IGdldCBleHRyYWN0ZWQgdG8gPHR0PmNvbS9pYm0vaWN1L2ltcGwvZGF0YTwvdHQ+CitpbgordGhlIGJ1aWxkIGRpcmVjdG9yeSB3aGVuIHRoZSAnY29yZScgdGFyZ2V0IGlzIGJ1aWx0LgorQnVpbGRpbmcgdGhlIDx0dD4ncmVzb3VyY2VzJzwvdHQ+IHRhcmdldCB3aWxsIGZvcmNlIHRoZQorcmVzb3VyY2VzIHRvIG9uY2UgYWdhaW4gYmUgZXh0cmFjdGVkLiBFeHRyYWN0aW9uIHdpbGwKK292ZXJ3cml0ZSBhbnkgY29ycmVzcG9uZGluZyByZXNvdXJjZSBmaWxlcyBhbHJlYWR5IGluIHRoYXQgZGlyZWN0b3J5LgorPC9wPgorPGg0PjxhIG5hbWU9InJlc291cmNlc0lDVTRDIj5CdWlsZGluZyBJQ1U0SiBSZXNvdXJjZXMgZnJvbSBJQ1U0QzwvYT48L2g0PgorPGg1PlJlcXVpcmVtZW50czwvaDU+Cis8dWw+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS9kb3dubG9hZHMuanNwIj5JQ1U0QzwvYT48L2xpPgorICA8bGk+Q29tcGlsZXJzIGFuZCB0b29scyByZXF1aXJlZCBmb3IgYnVpbGRpbmcgPGEKKyBocmVmPSJodHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL2ljdS9yZWFkbWUuaHRtbD92aWV3PWNvI0hvd1RvQnVpbGQiPklDVTRDPC9hPi48L2xpPgorICA8bGk+SmF2YSBTREsgdmVyc2lvbiAxLjQuMCBvciBhYm92ZS48L2xpPgorICA8bGk+UGVybCB2ZXJzaW9uIDUgb3IgYWJvdmUuPC9saT4KKzwvdWw+Cis8aDU+IFByb2NlZHVyZTwvaDU+Cis8b2w+CisgIDxsaT4gRG93bmxvYWQgYW5kIGJ1aWxkIElDVTRDIG9uIGEgV2luZG93cyBtYWNoaW5lLiBGb3IgaW5zdHJ1Y3Rpb25zIG9uCitkb3dubG9hZGluZyBhbmQgYnVpbGRpbmcgSUNVNEMsIHBsZWFzZSBjbGljayA8YQorIGhyZWY9Imh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vdmlld2N2cy5jZ2kvaWN1L3JlYWRtZS5odG1sP3ZpZXc9Y28jSG93VG9CdWlsZCI+aGVyZTwvYT4uPC9saT4KKyAgPGxpPiBDaGFuZ2UgZGlyZWN0b3J5IHRvIDxpPiRpY3Vfcm9vdDwvaT4vc291cmNlL3Rvb2xzL2dlbnJiIDwvbGk+CisgIDxsaT4gTGF1bmNoIGdlbmR0amFyLnBsIGZyb20gdGhhdCBkaXJlY3RvcnkgaXRzZWxmIHdpdGggdGhlIGNvbW1hbmQgPGJyPgorZ2VuZHRqYXIucGwgLS1pY3Utcm9vdD08aT4kaWN1X3Jvb3Q8L2k+IC0tamFyPTxpPiRqZGtfaG9tZS9iaW48L2k+CistLWljdTRqLXJvb3Q9PGk+JGljdTRqX3Jvb3Q8L2k+IC0tdmVyc2lvbj08aT4kaWN1X3ZlcnNpb248L2k+IDxicj4KK2UuZzogZ2VuZHRqYXIucGwgLS1pY3Utcm9vdD1cd29ya1xpY3UgLS1qYXI9XGpkazEuNC4xXGJpbgorLS1pY3U0ai1yb290PVx3b3JrXGljdTRqIC0tdmVyc2lvbj0zLjAgPGJyPgorRXhlY3V0aW9uIG9mIGdlbmR0amFyLnBsIHNjcmlwdCB3aWxsIGNyZWF0ZSB0aGUgcmVxdWlyZWQgamFyIGZpbGVzIGluCit0aGUgJGljdV9yb290XHNvdXJjZVx0b29sc1xnZW5yYlx0ZW1wIGRpcmVjdG9yeS48L2xpPgorICA8bGk+IE1vdmUgaWN1ZGF0YS5qYXIgdG8gPGk+JGljdTRqX3Jvb3Q8L2k+L3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEKK2RpcmVjdG9yeS48L2xpPgorICA8bGk+IE1vdmUgdGVzdGRhdGEuamFyIHRvIDxpPiRpY3U0al9yb290PC9pPi9zcmMvY29tL2libS9kZXYvZGF0YQorZGlyZWN0b3J5LjwvbGk+CisgIDxsaT4gQnVpbGQgcmVzb3VyY2VzIHRhcmdldCBvZiBhbnQgdG8gdW5wYWNrIHRoZSBqYXIgZmlsZXMgd2l0aCB0aGUKK2ZvbGxvd2luZyBjb21tYW5kLiA8YnI+CisgICAgPGk+JGFudF9ob21lPC9pPi9iaW4vYW50IHJlc291cmNlczwvbGk+Cis8L29sPgorPGg1PiBHZW5lcmF0aW5nIERhdGEgZnJvbSBDTERSIDwvaDU+Cis8aT4gTm90ZTogVGhpcyBwcm9jZWR1cmUgYXNzdW1lcyB0aGF0IGFsbCAzIHNvdXJjZXMgYXJlIGluIHNpYmxpbmcgZGlyZWN0b3JpZXM8L2k+Cis8b2w+CisgICAgPGxpPkNoZWNrb3V0IENMRFI8L2xpPgorICAgIDxsaT5VcGRhdGUgPGk+JGNsZHJfcm9vdDwvaT4vY29tbW9uIHRvICdyZWxlYXNlLTEtNCcgdGFnPC9saT4KKyAgICA8bGk+VXBkYXRlIDxpPiRjbGRyX3Jvb3Q8L2k+L3Rvb2xzIHRvICdyZWxlYXNlLTEtNCcgdGFnPC9saT4KKyAgICA8bGk+Q2hlY2tvdXQgSUNVIHdpdGggdGFnICdyZWxlYXNlLTMtNic8L2xpPgorICAgIDxsaT5DaGVja291dCBJQ1U0SiB3aXRoIHRhZyAncmVsZWFzZS0zLTYnPC9saT4KKyAgICA8bGk+QnVpbGQgSUNVNEo8L2xpPgorICAgIDxsaT5CdWlsZCBJQ1U0QzwvbGk+CisgICAgPGxpPkNoYW5nZSB0byA8aT4kY2xkcl9yb290PC9pPi90b29scy9qYXZhIGRpcmVjdG9yeTwvbGk+CisgICAgPGxpPkJ1aWxkIENMRFIgdXNpbmcgYW50IGFmdGVyIHBvaW50aW5nIElDVTRKX0NMQVNTRVMgZW52IHZhciB0byB0aGUgbmV3bHkgYnVpbGQgSUNVNEo8L2xpPgorICAgIDxsaT5jZCB0byA8aT4kaWN1NGNfcm9vdDwvaT4vc291cmNlL2RhdGEgZGlyZWN0b3J5PC9saT4KKyAgICA8bGk+Rm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIGNsZHItaWN1LXJlYWRtZS50eHQ8L2xpPgorICAgIDxsaT5CdWlsZCBJQ1UgZGF0YSBmcm9tIENMRFI8L2xpPgorICAgIDxsaT5jZCB0byA8aT4kaWN1NGNfcm9vdC9zb3VyY2UvdG9vbHMvZ2VucmI8L2k+PC9saT4KKyAgICA8bGk+cnVuIC4vZ2VuZHRqYXIucGw8L2xpPgorICAgIDxsaT5jZCB0byA8aT4kaWN1NGpfcm9vdDwvaT4gZGlyPC9saT4KKyAgICA8bGk+QnVpbGQgYW5kIHRlc3QgaWN1NGo8L2xpPgorPC9vbD4KKworPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IldoZXJlVG9GaW5kTW9yZSI+PC9hPldoZXJlIHRvIEZpbmQgTW9yZQorSW5mb3JtYXRpb248L2gzPgorPHA+PGEgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vaWN1LyI+aHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vaWN1LzwvYT4KK2lzIGEKK3BvaW50ZXIgdG8gZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvcgorVW5pY29kZSBpbiBKYXZhIDwvcD4KKzxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uLyI+aHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vPC9hPgoraXMgYSBwb2ludGVyIHRvCitpbmZvcm1hdGlvbiBvbiBob3cgdG8gbWFrZSBhcHBsaWNhdGlvbnMgZ2xvYmFsLiA8L3A+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iU3VibWl0dGluZ0NvbW1lbnRzIj48L2E+U3VibWl0dGluZyBDb21tZW50cywKK1JlcXVlc3RpbmcgRmVhdHVyZXMgYW5kCitSZXBvcnRpbmcgQnVnczwvaDM+Cis8cD5Zb3VyIGNvbW1lbnRzIGFyZSBpbXBvcnRhbnQgdG8gbWFraW5nIElDVTRKIHN1Y2Nlc3NmdWwuIFdlIGFyZQorY29tbWl0dGVkCit0byBmaXhpbmcgYW55IGJ1Z3MsIGFuZCB3aWxsIHVzZSB5b3VyIGZlZWRiYWNrIHRvIGhlbHAgcGxhbiBmdXR1cmUKK3JlbGVhc2VzLjwvcD4KKzxwPlRvIHN1Ym1pdCBjb21tZW50cywgcmVxdWVzdCBmZWF0dXJlcyBhbmQgcmVwb3J0IGJ1Z3MsIGNvbnRhY3QgdXMKK3Rocm91Z2ggdGhlIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvY29udGFjdHMuaHRtbCI+SUNVIFN1cHBvcnQKK21haWxpbmcgbGlzdDwvYT4uPGJyPgorV2hpbGUgd2UgYXJlIG5vdCBhYmxlIHRvIHJlc3BvbmQgaW5kaXZpZHVhbGx5IHRvIGVhY2ggY29tbWVudCwgd2UgZG8KK3JldmlldyBhbGwgY29tbWVudHMuPC9wPgorPGJyPgorPGJyPgorPGgyPlRoYW5rIHlvdSBmb3IgeW91ciBpbnRlcmVzdCBpbiBJQ1U0SiE8L2gyPgorPGJyPgorPGhyIGFsaWduPSJjZW50ZXIiIHNpemU9IjIiIHdpZHRoPSIxMDAlIj4KKzxwPjxpPjxmb250IHNpemU9Ii0xIj5Db3B5cmlnaHQgJmNvcHk7IDIwMDItMjAwNiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzCitNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzCitSZXNlcnZlZC48YnI+Cis0NDAwIE5vcnRoIEZpcnN0IFN0cmVldCwgU2FuIEpvcyZlYWN1dGU7LCBDQSA5NTE5MywgVVNBCis8L2ZvbnQ+PC9pPjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9NRVRBLUlORi9zZXJ2aWNlcy9qYXZhLm5pby5jaGFyc2V0LnNwaS5DaGFyc2V0UHJvdmlkZXIgYi9zcmMvTUVUQS1JTkYvc2VydmljZXMvamF2YS5uaW8uY2hhcnNldC5zcGkuQ2hhcnNldFByb3ZpZGVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNzk4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvTUVUQS1JTkYvc2VydmljZXMvamF2YS5uaW8uY2hhcnNldC5zcGkuQ2hhcnNldFByb3ZpZGVyCkBAIC0wLDAgKzEsMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAKKyMgaWN1NGogY29udmVydGVycworY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0UHJvdmlkZXJJQ1UKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXQ4ODU5MS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldDg4NTkxLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjkwYTA0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXQ4ODU5MS5qYXZhCkBAIC0wLDAgKzEsMjEwIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5JbnRCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworY2xhc3MgQ2hhcnNldDg4NTkxIGV4dGVuZHMgQ2hhcnNldElDVSB7CisgICAgcHJvdGVjdGVkIGJ5dGVbXSBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW117KGJ5dGUpMHgxYX07CisgICAgCisgICAgcHVibGljIENoYXJzZXQ4ODU5MShTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSwgU3RyaW5nIGphdmFDYW5vbmljYWxOYW1lLCBTdHJpbmdbXSBhbGlhc2VzKXsKKyAgICAgICAgc3VwZXIoaWN1Q2Fub25pY2FsTmFtZSwgamF2YUNhbm9uaWNhbE5hbWUsIGFsaWFzZXMpOworICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSAxOworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSAxOworICAgICAgICBtYXhDaGFyc1BlckJ5dGUgPSAxOworICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RGVjb2Rlcjg4NTkxIGV4dGVuZHMgQ2hhcnNldERlY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXREZWNvZGVyODg1OTEoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkgJiYgdG9Vbmljb2RlU3RhdHVzPT0wKSB7CisgICAgICAgICAgICAgICAgLyogbm8gaW5wdXQsIG5vdGhpbmcgdG8gZG8gKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4PXNvdXJjZS5wb3NpdGlvbigpLCBjb3VudD0wOworICAgICAgICAgICAgaW50IHNvdXJjZUluZGV4ID0gMDsKKyAgICAgICAgICAgIGNoYXIgYz0wOworICAgICAgICAgICAgaW50IG9sZFRhcmdldCA9IHRhcmdldC5wb3NpdGlvbigpOworICAgICAgICAgICAgLyogY29udmVyc2lvbiBsb29wICovCisgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICB3aGlsZShzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpICYmCisgICAgICAgICAgICAgICAgICAgIChjPShjaGFyKShzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpJjB4RkYpKTw9MHhmZiAmJgorICAgICAgICAgICAgICAgICAgICB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoYz4weGZmKSB7CisgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCk7IGNvcHkgdGhlIGN1cnJlbnQgYnl0ZXMgdG8gdG9VQnl0ZXNbXSAqLworICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbMF09KGJ5dGUpYzsKKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCh0b1VMZW5ndGgpOworICAgICAgICAgICAgfSBlbHNlIGlmKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogc2V0IG9mZnNldHMgc2luY2UgdGhlIHN0YXJ0ICovCisgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgY291bnQ9dGFyZ2V0LnBvc2l0aW9uKCktb2xkVGFyZ2V0OworICAgICAgICAgICAgICAgIHdoaWxlKGNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIGNsYXNzIENoYXJzZXRFbmNvZGVyODg1OTEgZXh0ZW5kcyBDaGFyc2V0RW5jb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXI4ODU5MShDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgTkVFRF9UT19XUklURV9CT00gPSAxOworICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaW1wbFJlc2V0KCkgeworICAgICAgICAgICAgc3VwZXIuaW1wbFJlc2V0KCk7CisgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IE5FRURfVE9fV1JJVEVfQk9NOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleD1zb3VyY2UucG9zaXRpb24oKSwgY291bnQ9MDsKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgY2g9MDsKKyAgICAgICAgICAgIGludCBvbGRUYXJnZXQgPSB0YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZG9sb29wID0gdHJ1ZTsKKworICAgICAgICAgICAgaWYgKGZyb21VQ2hhcjMyICE9IDAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICBjaCA9IGZyb21VQ2hhcjMyOworICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBmb2xsb3dpbmcgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBVQ2hhcmFjdGVyLmdldENvZGVQb2ludCgoY2hhciljaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGlzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC51bm1hcHBhYmxlRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCBsZWFkIGNvZGUgdW5pdCAoMXN0IHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IChpbnQpY2g7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm8gbW9yZSBpbnB1dCAqLworICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IChpbnQpY2g7CisgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihkb2xvb3ApeworICAgICAgICAgICAgICAgIC8qIGNvbnZlcnNpb24gbG9vcCAqLworICAgICAgICAgICAgICAgIGNoPTA7CisgICAgICAgICAgICAgICAgaW50IGNoMj0wOworICAgICAgICAgICAgICAgIHdoaWxlKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpeworICAgICAgICAgICAgICAgICAgICBjaD1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIGlmKGNoPD0weGZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiggdGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvd3N1cm9nYXRlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDIgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKChjaCAtIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9ISUdIX1NUQVJUKSA8PCBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX1NISUZUKSArIGNoMiArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9MT1dfQkFTRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByYW4gb3V0IG9mIHNvdXJjZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbHVzaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBzZXQgb2Zmc2V0cyBzaW5jZSB0aGUgc3RhcnQgKi8KKyAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICBjb3VudD10YXJnZXQucG9zaXRpb24oKS1vbGRUYXJnZXQ7CisgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIENoYXJzZXREZWNvZGVyIG5ld0RlY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldERlY29kZXI4ODU5MSh0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXIgbmV3RW5jb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RW5jb2Rlcjg4NTkxKHRoaXMpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldEFTQ0lJLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0QVNDSUkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjNlMTA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldEFTQ0lJLmphdmEKQEAgLTAsMCArMSwyMTEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitjbGFzcyBDaGFyc2V0QVNDSUkgZXh0ZW5kcyBDaGFyc2V0SUNVIHsKKyAgICBwcm90ZWN0ZWQgYnl0ZVtdIGZyb21VU3Vic3RpdHV0aW9uID0gbmV3IGJ5dGVbXXsoYnl0ZSkweDFhfTsKKyAgICAKKyAgICBwdWJsaWMgQ2hhcnNldEFTQ0lJKFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpeworICAgICAgICBzdXBlcihpY3VDYW5vbmljYWxOYW1lLCBqYXZhQ2Fub25pY2FsTmFtZSwgYWxpYXNlcyk7CisgICAgICAgIG1heEJ5dGVzUGVyQ2hhciA9IDE7CisgICAgICAgIG1pbkJ5dGVzUGVyQ2hhciA9IDE7CisgICAgICAgIG1heENoYXJzUGVyQnl0ZSA9IDE7CisgICAgfQorICAgIGNsYXNzIENoYXJzZXREZWNvZGVyQVNDSUkgZXh0ZW5kcyBDaGFyc2V0RGVjb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldERlY29kZXJBU0NJSShDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcyk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZGVjb2RlTG9vcChCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSAmJiB0b1VuaWNvZGVTdGF0dXM9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBubyBpbnB1dCwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKCF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXg9c291cmNlLnBvc2l0aW9uKCksIGNvdW50PTA7CisgICAgICAgICAgICBpbnQgc291cmNlSW5kZXggPSAwOworICAgICAgICAgICAgY2hhciBjPTA7CisgICAgICAgICAgICBpbnQgb2xkVGFyZ2V0ID0gdGFyZ2V0LnBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIC8qIGNvbnZlcnNpb24gbG9vcCAqLworICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSYmCisgICAgICAgICAgICAgICAgICAgIChjPShjaGFyKXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkpPD0weDdmICYmCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsgICAgCisgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihjPjB4N2YpIHsKKyAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKTsgY29weSB0aGUgY3VycmVudCBieXRlcyB0byB0b1VCeXRlc1tdICovCisgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVswXT0oYnl0ZSljOworICAgICAgICAgICAgICAgIHRvVUxlbmd0aD0xOworICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHRvVUxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgaWYoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSAmJiAhdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgLyogdGFyZ2V0IGlzIGZ1bGwgKi8KKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBzZXQgb2Zmc2V0cyBzaW5jZSB0aGUgc3RhcnQgKi8KKyAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICBjb3VudD10YXJnZXQucG9zaXRpb24oKS1vbGRUYXJnZXQ7CisgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIGNsYXNzIENoYXJzZXRFbmNvZGVyQVNDSUkgZXh0ZW5kcyBDaGFyc2V0RW5jb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXJBU0NJSShDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgTkVFRF9UT19XUklURV9CT00gPSAxOworICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaW1wbFJlc2V0KCkgeworICAgICAgICAgICAgc3VwZXIuaW1wbFJlc2V0KCk7CisgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IE5FRURfVE9fV1JJVEVfQk9NOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleD1zb3VyY2UucG9zaXRpb24oKSwgY291bnQ9MDsKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgY2g9MDsKKyAgICAgICAgICAgIGludCBvbGRUYXJnZXQgPSB0YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZG9sb29wID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZyb21VQ2hhcjMyICE9IDAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICBjaCA9IGZyb21VQ2hhcjMyOworICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBmb2xsb3dpbmcgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBVQ2hhcmFjdGVyLmdldENvZGVQb2ludCgoY2hhciljaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGlzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2sodW5hc3NpZ25lZCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQudW5tYXBwYWJsZUZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgbGVhZCBjb2RlIHVuaXQgKDFzdCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSAoaW50KWNoOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vIG1vcmUgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSAoaW50KWNoOworICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZG9sb29wKXsKKyAgICAgICAgICAgICAgICAvKiBjb252ZXJzaW9uIGxvb3AgKi8KKyAgICAgICAgICAgICAgICBjaD0wOworICAgICAgICAgICAgICAgIGludCBjaDI9MDsKKyAgICAgICAgICAgICAgICB3aGlsZShzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKXsKKyAgICAgICAgICAgICAgICAgICAgY2g9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICBpZihjaDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYodGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvd3N1cm9nYXRlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDIgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKChjaCAtIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9ISUdIX1NUQVJUKSA8PCBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX1NISUZUKSArIGNoMiArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9MT1dfQkFTRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByYW4gb3V0IG9mIHNvdXJjZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbHVzaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBzZXQgb2Zmc2V0cyBzaW5jZSB0aGUgc3RhcnQgKi8KKyAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICBjb3VudD10YXJnZXQucG9zaXRpb24oKS1vbGRUYXJnZXQ7CisgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIENoYXJzZXREZWNvZGVyIG5ld0RlY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldERlY29kZXJBU0NJSSh0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXIgbmV3RW5jb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RW5jb2RlckFTQ0lJKHRoaXMpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldENhbGxiYWNrLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0Q2FsbGJhY2suamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzY5MjQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldENhbGxiYWNrLmphdmEKQEAgLTAsMCArMSwyMzQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CisKKy8qKgorICogPGgyPiBDYWxsYmFjayBBUEkgZm9yIENoYXJzZXRJQ1UgQVBJIDwvaDI+CisgKiAKKyAqICBDaGFyc2V0Q2FsbGJhY2sgY2xhc3MgZGVmaW5lcyBzb21lIGVycm9yIGJlaGF2aW91ciBmdW5jdGlvbnMgY2FsbGVkIAorICogIGJ5IENoYXJzZXREZWNvZGVySUNVIGFuZCBDaGFyc2V0RW5jb2RlcklDVS4gVGhlIGNsYXNzIGFsc28gcHJvdmlkZXMKKyAqICB0aGUgZmFjaWxpdHkgYnkgd2hpY2ggY2xpZW50cyBjYW4gd3JpdGUgdGhlaXIgb3duIGNhbGxiYWNrcy4KKyAqCisgKiAgVGhlc2UgZnVuY3Rpb25zLCBhbHRob3VnaCBwdWJsaWMsIHNob3VsZCBORVZFUiBiZSBjYWxsZWQgZGlyZWN0bHkuCisgKiAgVGhleSBzaG91bGQgYmUgdXNlZCBhcyBwYXJhbWV0ZXJzIHRvIHRoZSBvblVtYXBwYWJsZUNoYXJhY3RlcigpIGFuZCAKKyAqICBvbk1hbGZvcm1lZElucHV0KCkgbWV0aG9kcywgdG8gc2V0IHRoZSBiZWhhdmlvdXIgb2YgYSBjb252ZXJ0ZXIKKyAqICB3aGVuIGl0IGVuY291bnRlcnMgVU5NQVBQRUQvSU5WQUxJRCBzZXF1ZW5jZXMuCisgKiAgQ3VycmVudGx5IHRoZSBvbmx5IHdheSB0byBzZXQgY2FsbGJhY2tzIGlzIGJ5IHVzaW5nIENvZGluZ0Vycm9yQWN0aW9uLgorICogIEluIHRoZSBmdXR1cmUgd2Ugd2lsbCBwcm92aWRlIHNldCBtZXRob2RzIG9uIENoYXJzZXRFbmNvZGVyIGFuZCBDaGFyc2V0RGVjb2RlcgorICogIHRoYXQgd2lsbCBhY2NlcHQgQ2hhcnNldENhbGxiYWNrIGZpZWxkcy4KKyAqCisgKiBAZHJhZnQgSUNVIDMuNgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KKworLypwdWJsaWMqLyBjbGFzcyBDaGFyc2V0Q2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIEZST01fVSwgVE9fVSBjb250ZXh0IG9wdGlvbnMgZm9yIHN1YiBjYWxsYmFjaworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQl9TVE9QX09OX0lMTEVHQUwgPSAiaSI7CisKKyAgICAvKioKKyAgICAgKiBGUk9NX1UsIFRPX1UgY29udGV4dCBvcHRpb25zIGZvciBza2lwIGNhbGxiYWNrCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0tJUF9TVE9QX09OX0lMTEVHQUwgPSAiaSI7CisKKyAgICAvKioKKyAgICAgKiBGUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFIGNvbnRleHQgb3B0aW9uIHRvIGVzY2FwZSB0aGUgY29kZSB1bml0IGFjY29yZGluZyB0byBJQ1UgKCVVWFhYWCkgCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVNDQVBFX0lDVSAgPSBudWxsOworICAgIC8qKgorICAgICAqIEZST01fVV9DQUxMQkFDS19FU0NBUEUgY29udGV4dCBvcHRpb24gdG8gZXNjYXBlIHRoZSBjb2RlIHVuaXQgYWNjb3JkaW5nIHRvIEpBVkEgKFxcdVhYWFgpCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVNDQVBFX0pBVkEgICAgID0gICJKIjsKKyAgICAvKioKKyAgICAgKiBGUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFIGNvbnRleHQgb3B0aW9uIHRvIGVzY2FwZSB0aGUgY29kZSB1bml0IGFjY29yZGluZyB0byBDIChcXHVYWFhYIFxcVVhYWFhYWFhYKQorICAgICAqIFRPX1VfQ0FMTEJBQ0tfRVNDQVBFIG9wdGlvbiB0byBlc2NhcGUgdGhlIGNoYXJhY3RlciB2YWx1ZSBhY2NvZGluZyB0byBDIChcXHhYWFhYKQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgU3RyaW5nIEVTQ0FQRV9DICAgICAgICA9ICJDIjsKKyAgICAvKioKKyAgICAgKiBGUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFIGNvbnRleHQgb3B0aW9uIHRvIGVzY2FwZSB0aGUgY29kZSB1bml0IGFjY29yZGluZyB0byBYTUwgRGVjaW1hbCBlc2NhcGUgXGh0bWxvbmx5KCZhbXA7I0REREQ7KVxlbmRodG1sb25seQorICAgICAqIFRPX1VfQ0FMTEJBQ0tfRVNDQVBFIGNvbnRleHQgb3B0aW9uIHRvIGVzY2FwZSB0aGUgY2hhcmFjdGVyIHZhbHVlIGFjY29kaW5nIHRvIFhNTCBEZWNpbWFsIGVzY2FwZSBcaHRtbG9ubHkoJmFtcDsjRERERDspXGVuZGh0bWxvbmx5CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVNDQVBFX1hNTF9ERUMgID0gIkQiOworICAgIC8qKgorICAgICAqIEZST01fVV9DQUxMQkFDS19FU0NBUEUgY29udGV4dCBvcHRpb24gdG8gZXNjYXBlIHRoZSBjb2RlIHVuaXQgYWNjb3JkaW5nIHRvIFhNTCBIZXggZXNjYXBlIFxodG1sb25seSgmYW1wOyN4WFhYWDspXGVuZGh0bWxvbmx5CisgICAgICogVE9fVV9DQUxMQkFDS19FU0NBUEUgY29udGV4dCBvcHRpb24gdG8gZXNjYXBlIHRoZSBjaGFyYWN0ZXIgdmFsdWUgYWNjb2RpbmcgdG8gWE1MIEhleCBlc2NhcGUgXGh0bWxvbmx5KCZhbXA7I3hYWFhYOylcZW5kaHRtbG9ubHkKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIGZpbmFsIFN0cmluZyBFU0NBUEVfWE1MX0hFWCAgPSAiWCI7CisgICAgLyoqCisgICAgICogRlJPTV9VX0NBTExCQUNLX0VTQ0FQRSBjb250ZXh0IG9wdGlvbiB0byBlc2NhcGUgdGVoIGNvZGUgdW5pdCBhY2NvcmRpbmcgdG8gVW5pY29kZSAoVStYWFhYWCkKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIGZpbmFsIFN0cmluZyBFU0NBUEVfVU5JQ09ERSAgPSAiVSI7CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGVyIENhbGxiYWNrIGludGVyZmFjZQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludGVyZmFjZSBEZWNvZGVyIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIGJ5dGVzIGluIHRoZSBzb3VyY2UgY2Fubm90IGJlIGhhbmRsZWQsCisgICAgICAgICAqIGFuZCB0aGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGhhbmRsZSBvciBmaXggdGhlIGVycm9yIGlmIHBvc3NpYmxlLgorICAgICAgICAgKiAKKyAgICAgICAgICogQHJldHVybiBSZXN1bHQgb2YgZGVjb2RpbmcgYWN0aW9uLiBUaGlzIHJldHVybmVkIG9iamVjdCBpcyBzZXQgdG8gYW4gZXJyb3IKKyAgICAgICAgICogIGlmIHRoaXMgZnVuY3Rpb24gY291bGQgbm90IGhhbmRsZSB0aGUgY29udmVyc2lvbi4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQ29kZXJSZXN1bHQgY2FsbChDaGFyc2V0RGVjb2RlcklDVSBkZWNvZGVyLCBPYmplY3QgY29udGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIsIGludCBsZW5ndGgsIENvZGVyUmVzdWx0IGNyKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRW5jb2RlciBDYWxsYmFjayBpbnRlcmZhY2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgRW5jb2RlciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSBVbmljb2RlIGNoYXJhY3RlcnMgaW4gdGhlIHNvdXJjZSBjYW5ub3QgYmUgaGFuZGxlZCwKKyAgICAgICAgICogYW5kIHRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gaGFuZGxlIG9yIGZpeCB0aGUgZXJyb3IgaWYgcG9zc2libGUuCisgICAgICAgICAqIEByZXR1cm4gUmVzdWx0IG9mIGRlY29kaW5nIGFjdGlvbi4gVGhpcyByZXR1cm5lZCBvYmplY3QgaXMgc2V0IHRvIGFuIGVycm9yCisgICAgICAgICAqICBpZiB0aGlzIGZ1bmN0aW9uIGNvdWxkIG5vdCBoYW5kbGUgdGhlIGNvbnZlcnNpb24uCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldEVuY29kZXJJQ1UgZW5jb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgaW50IGNwLCBDb2RlclJlc3VsdCBjcik7CisgICAgfSAgICAKKyAgICAvKioKKyAgICAgKiBTa2lwIGNhbGxiYWNrCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVuY29kZXIgRlJPTV9VX0NBTExCQUNLX1NLSVAgPSBuZXcgRW5jb2RlcigpIHsKKyAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldEVuY29kZXJJQ1UgZW5jb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgIENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIAorICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIsIGludCBsZW5ndGgsIGludCBjcCwgQ29kZXJSZXN1bHQgY3IpeworICAgICAgICAgICAgaWYoY29udGV4dD09bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIH1lbHNlIGlmKCgoU3RyaW5nKWNvbnRleHQpLmVxdWFscyhTVUJfU1RPUF9PTl9JTExFR0FMKSl7CisgICAgICAgICAgICAgICAgaWYoIWNyLmlzVW5tYXBwYWJsZSgpKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH07CisgICAgLyoqCisgICAgICogU2tpcCBjYWxsYmFjaworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEZWNvZGVyIFRPX1VfQ0FMTEJBQ0tfU0tJUCA9IG5ldyBEZWNvZGVyKCkgeworICAgICAgICBwdWJsaWMgQ29kZXJSZXN1bHQgY2FsbChDaGFyc2V0RGVjb2RlcklDVSBkZWNvZGVyLCBPYmplY3QgY29udGV4dCwgCisgICAgICAgICAgICAgICAgQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywKKyAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCBpbnQgbGVuZ3RoLCBDb2RlclJlc3VsdCBjcil7CisgICAgICAgICAgICBpZihjb250ZXh0PT1udWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgfWVsc2UgaWYoKChTdHJpbmcpY29udGV4dCkuZXF1YWxzKFNVQl9TVE9QX09OX0lMTEVHQUwpKXsKKyAgICAgICAgICAgICAgICBpZighY3IuaXNVbm1hcHBhYmxlKCkpeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgfTsKKyAgICAvKioKKyAgICAgKiBTa2lwIGNhbGxiYWNrCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVuY29kZXIgRlJPTV9VX0NBTExCQUNLX1NVQlNUSVRVVEUgPSBuZXcgRW5jb2RlcigpeyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDb2RlclJlc3VsdCBjYWxsKENoYXJzZXRFbmNvZGVySUNVIGVuY29kZXIsIE9iamVjdCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCBpbnQgbGVuZ3RoLCBpbnQgY3AsIENvZGVyUmVzdWx0IGNyKXsKKyAgICAgICAgICAgIGlmKGNvbnRleHQ9PW51bGwpeworICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGVyLmNiRnJvbVVXcml0ZVN1YihlbmNvZGVyLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cyk7CisgICAgICAgICAgICB9ZWxzZSBpZigoKFN0cmluZyljb250ZXh0KS5lcXVhbHMoU1VCX1NUT1BfT05fSUxMRUdBTCkpeworICAgICAgICAgICAgICAgIGlmKCFjci5pc1VubWFwcGFibGUoKSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2Rlci5jYkZyb21VV3JpdGVTdWIoZW5jb2Rlciwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH07CisgICAgLyoqCisgICAgICogU2tpcCBjYWxsYmFjaworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEZWNvZGVyIFRPX1VfQ0FMTEJBQ0tfU1VCU1RJVFVURSAgPSBuZXcgRGVjb2RlcigpIHsKKyAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldERlY29kZXJJQ1UgZGVjb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsCisgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgQ29kZXJSZXN1bHQgY3IpeworCisgICAgICAgICAgICBjaGFyW10ga1N1YnN0aXR1dGVDaGFyMSA9IG5ldyBjaGFyW117MHgxQX07CisgICAgICAgICAgICBjaGFyW10ga1N1YnN0aXR1dGVDaGFyID0gbmV3IGNoYXJbXSB7MHhGRkZEfTsKKyAgICAgICAgICAgIENoYXJzZXRJQ1UgY3MgPSAoQ2hhcnNldElDVSkgZGVjb2Rlci5jaGFyc2V0KCk7CisgICAgICAgICAgICAvKiBjb3VsZCBvcHRpbWl6ZSB0aGlzIGNhc2UsIGp1c3Qgb25lIHVjaGFyICovCisgICAgICAgICAgICBpZihkZWNvZGVyLmludmFsaWRDaGFyTGVuZ3RoID09IDEgJiYgY3Muc3ViQ2hhcjEgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBDaGFyc2V0RGVjb2RlcklDVS50b1VXcml0ZVVDaGFycyhkZWNvZGVyLCBrU3Vic3RpdHV0ZUNoYXIxLCAwLCAxLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZS5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENoYXJzZXREZWNvZGVySUNVLnRvVVdyaXRlVUNoYXJzKGRlY29kZXIsIGtTdWJzdGl0dXRlQ2hhciwgMCwgMSwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworICAgIC8qKgorICAgICAqIFNraXAgY2FsbGJhY2sKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW5jb2RlciBGUk9NX1VfQ0FMTEJBQ0tfU1RPUCA9IG5ldyBFbmNvZGVyKCkgeworICAgICAgICBwdWJsaWMgQ29kZXJSZXN1bHQgY2FsbChDaGFyc2V0RW5jb2RlcklDVSBlbmNvZGVyLCBPYmplY3QgY29udGV4dCwgCisgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgaW50IGNwLCBDb2RlclJlc3VsdCBjcil7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9OworICAgIC8qKgorICAgICAqIFNraXAgY2FsbGJhY2sKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRGVjb2RlciBUT19VX0NBTExCQUNLX1NUT1AgPSBuZXcgRGVjb2RlcigpIHsKKyAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldERlY29kZXJJQ1UgZGVjb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsCisgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgQ29kZXJSZXN1bHQgY3IpeworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgfTsgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldERlY29kZXJJQ1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXREZWNvZGVySUNVLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdiNDQyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXREZWNvZGVySUNVLmphdmEKQEAgLTAsMCArMSw2NjEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RpbmdFcnJvckFjdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworCitpbXBvcnQgY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0Q2FsbGJhY2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CisKKy8qKgorICogQW4gYWJzdHJhY3QgY2xhc3MgdGhhdCBwcm92aWRlcyBmcmFtZXdvcmsgbWV0aG9kcyBvZiBkZWNvZGluZyBvcGVyYXRpb25zIGZvciBjb25jcmV0ZQorICogc3ViY2xhc3Nlcy4gCisgKiBJbiB0aGUgZnV0dXJlIHRoaXMgY2xhc3Mgd2lsbCBjb250YWluIEFQSSB0aGF0IHdpbGwgaW1wbGVtZW50IGNvbnZlcnRlciBzZW1hdGljcyBvZiBJQ1U0Qy4KKyAqIEBkcmFmdCBJQ1UgMy42CisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ2hhcnNldERlY29kZXJJQ1UgZXh0ZW5kcyBDaGFyc2V0RGVjb2RlcnsgCisKKyAgICBpbnQgICAgdG9Vbmljb2RlU3RhdHVzOworICAgIGJ5dGVbXSB0b1VCeXRlc0FycmF5ID0gbmV3IGJ5dGVbMTI4XTsKKyAgICBpbnQgICAgdG9VQnl0ZXNCZWdpbiA9IDA7CisgICAgaW50ICAgIHRvVUxlbmd0aDsKKyAgICBjaGFyW10gY2hhckVycm9yQnVmZmVyQXJyYXkgPSBuZXcgY2hhclsxMjhdOworICAgIGludCAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGg7CisgICAgaW50ICAgIGNoYXJFcnJvckJ1ZmZlckJlZ2luOworICAgIGNoYXJbXSBpbnZhbGlkQ2hhckJ1ZmZlciA9IG5ldyBjaGFyWzEyOF07CisgICAgaW50ICAgIGludmFsaWRDaGFyTGVuZ3RoOworICAgIAorICAgIC8qIHN0b3JlIHByZXZpb3VzIFVDaGFycy9jaGFycyB0byBjb250aW51ZSBwYXJ0aWFsIG1hdGNoZXMgKi8KKyAgICBieXRlW10gcHJlVG9VQXJyYXk7CisgICAgaW50ICAgIHByZVRvVUJlZ2luOworICAgIGludCAgICBwcmVUb1VMZW5ndGg7ICAgICAgIC8qIG5lZ2F0aXZlOiByZXBsYXkgKi8KKyAgICBpbnQgICAgcHJlVG9VRmlyc3RMZW5ndGg7ICAvKiBsZW5ndGggb2YgZmlyc3QgY2hhcmFjdGVyICovCisgICAgaW50IG1vZGU7CisgICAgCisgICAgT2JqZWN0IHRvVUNvbnRleHQgPSBudWxsOworICAgIHByaXZhdGUgQ2hhcnNldENhbGxiYWNrLkRlY29kZXIgb25Vbm1hcHBhYmxlSW5wdXQgPSBDaGFyc2V0Q2FsbGJhY2suVE9fVV9DQUxMQkFDS19TVE9QOworICAgIHByaXZhdGUgQ2hhcnNldENhbGxiYWNrLkRlY29kZXIgb25NYWxmb3JtZWRJbnB1dCA9IENoYXJzZXRDYWxsYmFjay5UT19VX0NBTExCQUNLX1NUT1A7CisgICAgQ2hhcnNldENhbGxiYWNrLkRlY29kZXIgdG9DaGFyRXJyb3JCZWhhdmlvdXI9IG5ldyBDaGFyc2V0Q2FsbGJhY2suRGVjb2RlcigpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldERlY29kZXJJQ1UgZGVjb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCBpbnQgbGVuZ3RoLCBDb2RlclJlc3VsdCBjcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNyLmlzVW5tYXBwYWJsZSgpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uVW5tYXBwYWJsZUlucHV0LmNhbGwoZGVjb2RlciwgY29udGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsIGxlbmd0aCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKGNyLmlzTWFsZm9ybWVkKCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25NYWxmb3JtZWRJbnB1dC5jYWxsKGRlY29kZXIsIGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsIGxlbmd0aCwgY3IpOyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5UT19VX0NBTExCQUNLX1NUT1AuY2FsbChkZWNvZGVyLCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwgbGVuZ3RoLCBjcik7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hhcnNldERlY29yZGVySUNVIGJhc2VkIG9uIHRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBmcm9tIGEKKyAgICAgKiBDaGFyc2V0SUNVIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gY3MgVGhlIENoYXJzZXRJQ1Ugb2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvCisgICAgICogIGNoYXJzZXQgdG8gZGVjb2RlLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIENoYXJzZXREZWNvZGVySUNVKENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgc3VwZXIoY3MsIChmbG9hdCkgKDEvKGZsb2F0KWNzLm1heENoYXJzUGVyQnl0ZSksIGNzLm1heENoYXJzUGVyQnl0ZSk7CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYWN0aW9uIHRvIGJlIHRha2VuIGlmIGFuIGlsbGVnYWwgc2VxdWVuY2UgaXMgZW5jb3VudGVyZWQKKyAgICAgKiBAcGFyYW0gbmV3QWN0aW9uIGFjdGlvbiB0byBiZSB0YWtlbgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgaW1wbE9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24gbmV3QWN0aW9uKSB7CisgICAgICAgIG9uTWFsZm9ybWVkSW5wdXQgPSBnZXRDYWxsYmFjayhuZXdBY3Rpb24pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhY3Rpb24gdG8gYmUgdGFrZW4gaWYgYW4gaWxsZWdhbCBzZXF1ZW5jZSBpcyBlbmNvdW50ZXJlZAorICAgICAqIEBwYXJhbSBuZXdBY3Rpb24gYWN0aW9uIHRvIGJlIHRha2VuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBpbXBsT25Vbm1hcHBhYmxlQ2hhcmFjdGVyKENvZGluZ0Vycm9yQWN0aW9uIG5ld0FjdGlvbikgeworICAgICAgICBvblVubWFwcGFibGVJbnB1dCA9IGdldENhbGxiYWNrKG5ld0FjdGlvbik7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIENoYXJzZXRDYWxsYmFjay5EZWNvZGVyIGdldENhbGxiYWNrKENvZGluZ0Vycm9yQWN0aW9uIGFjdGlvbil7CisgICAgICAgIGlmKGFjdGlvbj09Q29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSl7CisgICAgICAgICAgICByZXR1cm4gQ2hhcnNldENhbGxiYWNrLlRPX1VfQ0FMTEJBQ0tfU1VCU1RJVFVURTsKKyAgICAgICAgfWVsc2UgaWYoYWN0aW9uPT1Db2RpbmdFcnJvckFjdGlvbi5JR05PUkUpeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5UT19VX0NBTExCQUNLX1NLSVA7CisgICAgICAgIH1lbHNlIGlmKGFjdGlvbj09Q29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUKXsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suVE9fVV9DQUxMQkFDS19TVE9QOworICAgICAgICB9CisgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suVE9fVV9DQUxMQkFDS19TVE9QOworICAgIH0KKyAgICBwcml2YXRlIGZpbmFsIEJ5dGVCdWZmZXIgRU1QVFkgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDApOworICAgIC8qKgorICAgICAqIEZsdXNoZXMgYW55IGNoYXJhY3RlcnMgc2F2ZWQgaW4gdGhlIGNvbnZlcnRlcidzIGludGVybmFsIGJ1ZmZlciBhbmQKKyAgICAgKiByZXNldHMgdGhlIGNvbnZlcnRlci4KKyAgICAgKiBAcGFyYW0gb3V0IGFjdGlvbiB0byBiZSB0YWtlbgorICAgICAqIEByZXR1cm4gcmVzdWx0IG9mIGZsdXNoaW5nIGFjdGlvbiBhbmQgY29tcGxldGVzIHRoZSBkZWNvZGluZyBhbGwgaW5wdXQuIAorICAgICAqICAgICAgICAgUmV0dXJucyBDb2RlclJlc3VsdC5VTkRFUkZMT1cgaWYgdGhlIGFjdGlvbiBzdWNjZWVkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgQ29kZXJSZXN1bHQgaW1wbEZsdXNoKENoYXJCdWZmZXIgb3V0KSB7CisgICAgICAgIHJldHVybiBkZWNvZGUoRU1QVFksIG91dCwgbnVsbCwgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGUgdG8gVW5pY29kZSBtb2RlIG9mIGNvbnZlcnRlcgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKyAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gMCA7CisgICAgICAgIHRvVUxlbmd0aCA9IDA7CisgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aCA9IDA7CisgICAgICAgIGNoYXJFcnJvckJ1ZmZlckJlZ2luID0gMDsKKyAgICAgICAgCisgICAgICAgIC8qIHN0b3JlIHByZXZpb3VzIFVDaGFycy9jaGFycyB0byBjb250aW51ZSBwYXJ0aWFsIG1hdGNoZXMgKi8KKyAgICAgICAgcHJlVG9VQmVnaW4gPSAwOworICAgICAgICBwcmVUb1VMZW5ndGggPSAwOyAgICAgICAvKiBuZWdhdGl2ZTogcmVwbGF5ICovCisgICAgICAgIHByZVRvVUZpcnN0TGVuZ3RoID0gMDsgCisKKyAgICAgICAgbW9kZSA9IDA7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogRGVjb2RlcyBvbmUgb3IgbW9yZSBieXRlcy4gVGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZSBjb252ZXJ0ZXIKKyAgICAgKiBpcyBzdG9wIGFuZCByZXBvcnQgaWYgYW4gZXJyb3IgaW4gaW5wdXQgc3RyZWFtIGlzIGVuY291bnRlcmVkLiAKKyAgICAgKiBUbyBzZXQgZGlmZmVyZW50IGJlaGF2aW91ciB1c2UgQHNlZSBDaGFyc2V0RGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KCkKKyAgICAgKiBUaGlzICBtZXRob2QgYWxsb3dzIGEgYnVmZmVyIGJ5IGJ1ZmZlciBjb252ZXJzaW9uIG9mIGEgZGF0YSBzdHJlYW0uICAKKyAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIGNvbnZlcnNpb24gaXMgc2F2ZWQgYmV0d2VlbiBjYWxscyB0byBjb252ZXJ0LiAgCisgICAgICogQW1vbmcgb3RoZXIgdGhpbmdzLCB0aGlzIG1lYW5zIG11bHRpYnl0ZSBpbnB1dCBzZXF1ZW5jZXMgY2FuIGJlIAorICAgICAqIHNwbGl0IGJldHdlZW4gY2FsbHMuIElmIGEgY2FsbCB0byBjb252ZXJ0IHJlc3VsdHMgaW4gYW4gRXJyb3IsIHRoZSAKKyAgICAgKiBjb252ZXJzaW9uIG1heSBiZSBjb250aW51ZWQgYnkgY2FsbGluZyBjb252ZXJ0IGFnYWluIHdpdGggc3VpdGFibHkgCisgICAgICogbW9kaWZpZWQgcGFyYW1ldGVycy5BbGwgY29udmVyc2lvbnMgc2hvdWxkIGJlIGZpbmlzaGVkIHdpdGggYSBjYWxsIHRvIAorICAgICAqIHRoZSBmbHVzaCBtZXRob2QuCisgICAgICogQHBhcmFtIGluIGJ1ZmZlciB0byBkZWNvZGUKKyAgICAgKiBAcGFyYW0gb3V0IGJ1ZmZlciB0byBwb3B1bGF0ZSB3aXRoIGRlY29kZWQgcmVzdWx0CisgICAgICogQHJldHVybiBSZXN1bHQgb2YgZGVjb2RpbmcgYWN0aW9uLiBSZXR1cm5zIENvZGVyUmVzdWx0LlVOREVSRkxPVyBpZiB0aGUgZGVjb2RpbmcKKyAgICAgKiAgICAgICAgIGFjdGlvbiBzdWNjZWVkcyBvciBtb3JlIGlucHV0IGlzIG5lZWRlZCBmb3IgY29tcGxldGluZyB0aGUgZGVjb2RpbmcgYWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBkZWNvZGVMb29wKEJ5dGVCdWZmZXIgaW4sQ2hhckJ1ZmZlciBvdXQpeworICAgICAgICBpZighaW4uaGFzUmVtYWluaW5nKCkpeworICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgfQorICAgICAgICBpbi5wb3NpdGlvbihpbi5wb3NpdGlvbigpK3RvVUNvdW50UGVuZGluZygpKTsKKyAgICAgICAgLyogZG8gdGhlIGNvbnZlcnNpb24gKi8KKyAgICAgICAgQ29kZXJSZXN1bHQgcmV0ID0gZGVjb2RlKGluLCBvdXQsIG51bGwsIGZhbHNlKTsKKworICAgICAgICBzZXRTb3VyY2VQb3NpdGlvbihpbik7CisgICAgICAgIHJldHVybiByZXQ7CisJfQorICAgIAorICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgdGhlIElDVSBzZW1hbnRpYyBmb3IgZGVjb2RlIG9wZXJhdGlvbgorICAgICAqIEBwYXJhbSBpbiBUaGUgaW5wdXQgYnl0ZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gb3V0IFRoZSBvdXRwdXQgY2hhcmFjdGVyIGJ1ZmZlcgorICAgICAqIEByZXR1cm4gUmVzdWx0IG9mIGRlY29kaW5nIGFjdGlvbi4gUmV0dXJucyBDb2RlclJlc3VsdC5VTkRFUkZMT1cgaWYgdGhlIGRlY29kaW5nCisgICAgICogICAgICAgICBhY3Rpb24gc3VjY2VlZHMgb3IgbW9yZSBpbnB1dCBpcyBuZWVkZWQgZm9yIGNvbXBsZXRpbmcgdGhlIGRlY29kaW5nIGFjdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIGFic3RyYWN0IENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBpbiwgQ2hhckJ1ZmZlciBvdXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHRoZSBJQ1Ugc2VtYW50aWMgZm9yIGRlY29kZSBvcGVyYXRpb24KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBpbnB1dCBieXRlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIG91dHB1dCBjaGFyYWN0ZXIgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldHMKKyAgICAgKiBAcGFyYW0gZmx1c2ggdHJ1ZSBpZiwgYW5kIG9ubHkgaWYsIHRoZSBpbnZva2VyIGNhbiBwcm92aWRlIG5vCisgICAgICogIGFkZGl0aW9uYWwgaW5wdXQgYnl0ZXMgYmV5b25kIHRob3NlIGluIHRoZSBnaXZlbiBidWZmZXIuCisgICAgICogQHJldHVybiBSZXN1bHQgb2YgZGVjb2RpbmcgYWN0aW9uLiBSZXR1cm5zIENvZGVyUmVzdWx0LlVOREVSRkxPVyBpZiB0aGUgZGVjb2RpbmcKKyAgICAgKiAgICAgICAgIGFjdGlvbiBzdWNjZWVkcyBvciBtb3JlIGlucHV0IGlzIG5lZWRlZCBmb3IgY29tcGxldGluZyB0aGUgZGVjb2RpbmcgYWN0aW9uLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgZmluYWwgQ29kZXJSZXN1bHQgZGVjb2RlKEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpIHsKKyAgICAKKyAgICAgICAgLyogY2hlY2sgcGFyYW1ldGVycyAqLworICAgICAgICBpZih0YXJnZXQ9PW51bGwgfHwgc291cmNlPT1udWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgICogTWFrZSBzdXJlIHRoYXQgdGhlIGJ1ZmZlciBzaXplcyBkbyBub3QgZXhjZWVkIHRoZSBudW1iZXIgcmFuZ2UgZm9yCisgICAgICAgICAqIGludDMyX3QgYmVjYXVzZSBzb21lIGZ1bmN0aW9ucyB1c2UgdGhlIHNpemUgKGluIHVuaXRzIG9yIGJ5dGVzKQorICAgICAgICAgKiByYXRoZXIgdGhhbiBjb21wYXJpbmcgcG9pbnRlcnMsIGFuZCBiZWNhdXNlIG9mZnNldHMgYXJlIGludDMyX3QgdmFsdWVzLgorICAgICAgICAgKgorICAgICAgICAgKiBzaXplX3QgaXMgZ3VhcmFudGVlZCB0byBiZSB1bnNpZ25lZCBhbmQgbGFyZ2UgZW5vdWdoIGZvciB0aGUgam9iLgorICAgICAgICAgKgorICAgICAgICAgKiBSZXR1cm4gd2l0aCBhbiBlcnJvciBpbnN0ZWFkIG9mIGFkanVzdGluZyB0aGUgbGltaXRzIGJlY2F1c2Ugd2Ugd291bGQKKyAgICAgICAgICogbm90IGJlIGFibGUgdG8gbWFpbnRhaW4gdGhlIHNlbWFudGljcyB0aGF0IGVpdGhlciB0aGUgc291cmNlIG11c3QgYmUKKyAgICAgICAgICogY29uc3VtZWQgb3IgdGhlIHRhcmdldCBmaWxsZWQgKHVubGVzcyBhbiBlcnJvciBvY2N1cnMpLgorICAgICAgICAgKiBBbiBhZGp1c3RtZW50IHdvdWxkIGJlIHNvdXJjZUxpbWl0PXQrMHg3ZmZmZmZmZjsgZm9yIGV4YW1wbGUuCisgICAgICAgICAqLworICAgICAgICAgICAgLyphZ2xqcG9ydDpmaXgKKyAgICAgICAgaWYoCisgICAgICAgICAgICAoKHNpemVfdCkoc291cmNlTGltaXQtcyk+KHNpemVfdCkweDdmZmZmZmZmICYmIHNvdXJjZUxpbWl0PnMpIHx8CisgICAgICAgICAgICAoKHNpemVfdCkodGFyZ2V0TGltaXQtdCk+KHNpemVfdCkweDNmZmZmZmZmICYmIHRhcmdldExpbWl0PnQpCisgICAgICAgICkgeworICAgICAgICAgICAgKmVycj1VX0lMTEVHQUxfQVJHVU1FTlRfRVJST1I7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgIAorICAgICAgICAvKiBmbHVzaCB0aGUgdGFyZ2V0IG92ZXJmbG93IGJ1ZmZlciAqLworICAgICAgICBpZihjaGFyRXJyb3JCdWZmZXJMZW5ndGg+MCkgeworICAgICAgICAgICAgY2hhcltdIG92ZXJmbG93ID0gbnVsbDsKKyAgICAgICAgICAgIGludCBpLCBsZW5ndGg7CisgICAgCisgICAgICAgICAgICBvdmVyZmxvdz1jaGFyRXJyb3JCdWZmZXJBcnJheTsKKyAgICAgICAgICAgIGxlbmd0aD1jaGFyRXJyb3JCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBpPTA7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgaWYodGFyZ2V0LnJlbWFpbmluZygpPD0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBvdmVyZmxvdyBidWZmZXIgY29udGFpbnMgdG9vIG11Y2gsIGtlZXAgdGhlIHJlc3QgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IGo9MDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbaisrXT1vdmVyZmxvd1tpKytdOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKGk8bGVuZ3RoKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPShieXRlKWo7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLyogY29weSB0aGUgb3ZlcmZsb3cgY29udGVudHMgdG8gdGhlIHRhcmdldCAqLworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQob3ZlcmZsb3dbaSsrXSk7CisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7IC8qIG5vIHNvdXJjZSBpbmRleCBhdmFpbGFibGUgZm9yIG9sZCBvdXRwdXQgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IHdoaWxlKGk8bGVuZ3RoKTsKKyAgICAKKyAgICAgICAgICAgIC8qIHRoZSBvdmVyZmxvdyBidWZmZXIgaXMgY29tcGxldGVseSBjb3BpZWQgdG8gdGhlIHRhcmdldCAqLworICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYoIWZsdXNoICYmIHNvdXJjZS5yZW1haW5pbmcoKT09MCAmJiBwcmVUb1VMZW5ndGg+PTApIHsKKyAgICAgICAgICAgIC8qIHRoZSBvdmVyZmxvdyBidWZmZXIgaXMgZW1wdGllZCBhbmQgdGhlcmUgaXMgbm8gbmV3IGlucHV0OiB3ZSBhcmUgZG9uZSAqLworICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBEbyBub3Qgc2ltcGx5IHJldHVybiB3aXRoIGEgYnVmZmVyIG92ZXJmbG93IGVycm9yIGlmCisgICAgICAgICAqICFmbHVzaCAmJiB0PT10YXJnZXRMaW1pdAorICAgICAgICAgKiBiZWNhdXNlIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHNvdXJjZSB3aWxsIG5vdCBnZW5lcmF0ZSBhbnkgb3V0cHV0LgorICAgICAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIHNraXAgY2FsbGJhY2sgbWF5IGJlIGNhbGxlZDsKKyAgICAgICAgICogaXQgZG9lcyBub3Qgb3V0cHV0IGFueXRoaW5nLgorICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgcmV0dXJuIHRvVW5pY29kZVdpdGhDYWxsYmFjayhzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgZmx1c2gpOworICAgIH0KKworICAgIC8qIG1heGltdW0gbnVtYmVyIG9mIGluZGV4ZWQgYnl0ZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUX01BWF9CWVRFUyA9IDB4MWY7CisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZU9mZnNldHMoSW50QnVmZmVyIG9mZnNldHMsaW50IGxlbmd0aCwgaW50IHNvdXJjZUluZGV4LCBpbnQgZXJyb3JJbnB1dExlbmd0aCkgeworICAgICAgICBpbnQgbGltaXQ7CisgICAgICAgIGludCBkZWx0YSwgb2Zmc2V0OworCisgICAgICAgIGlmKHNvdXJjZUluZGV4Pj0wKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogYWRqdXN0IGVhY2ggb2Zmc2V0IGJ5IGFkZGluZyB0aGUgcHJldmlvdXMgc291cmNlSW5kZXgKKyAgICAgICAgICAgICAqIG1pbnVzIHRoZSBsZW5ndGggb2YgdGhlIGlucHV0IHNlcXVlbmNlIHRoYXQgY2F1c2VkIGFuCisgICAgICAgICAgICAgKiBlcnJvciwgaWYgYW55CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGRlbHRhPXNvdXJjZUluZGV4LWVycm9ySW5wdXRMZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc2V0IGVhY2ggb2Zmc2V0IHRvIC0xIGJlY2F1c2UgdGhpcyBjb252ZXJzaW9uIGZ1bmN0aW9uCisgICAgICAgICAgICAgKiBkb2VzIG5vdCBoYW5kbGUgb2Zmc2V0cworICAgICAgICAgICAgICovCisgICAgICAgICAgICBkZWx0YT0tMTsKKyAgICAgICAgfQorICAgICAgICBsaW1pdD1vZmZzZXRzLnBvc2l0aW9uKCkrbGVuZ3RoOworICAgICAgICBpZihkZWx0YT09MCkgeworICAgICAgICAgICAgLyogbW9zdCBjb21tb24gY2FzZSwgbm90aGluZyB0byBkbyAqLworICAgICAgICB9IGVsc2UgaWYoZGVsdGE+MCkgeworICAgICAgICAgICAgLyogYWRkIHRoZSBkZWx0YSB0byBlYWNoIG9mZnNldCAoYnV0IG5vdCBpZiB0aGUgb2Zmc2V0IGlzIDwwKSAqLworICAgICAgICAgICAgd2hpbGUob2Zmc2V0cy5wb3NpdGlvbigpPGxpbWl0KSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0PW9mZnNldHMuZ2V0KG9mZnNldHMucG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgaWYob2Zmc2V0Pj0wKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KG9mZnNldCtkZWx0YSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vRklYTUU6ICsrb2Zmc2V0czsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIC8qIGRlbHRhPDAgKi8geworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHNldCBlYWNoIG9mZnNldCB0byAtMSBiZWNhdXNlIHRoaXMgY29udmVyc2lvbiBmdW5jdGlvbgorICAgICAgICAgICAgICogZG9lcyBub3QgaGFuZGxlIG9mZnNldHMKKyAgICAgICAgICAgICAqIG9yIHRoZSBlcnJvciBpbnB1dCBzZXF1ZW5jZSBzdGFydGVkIGluIGEgcHJldmlvdXMgYnVmZmVyCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHdoaWxlKG9mZnNldHMucG9zaXRpb24oKTxsaW1pdCkgeworICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBmaW5hbCBDb2RlclJlc3VsdCB0b1VuaWNvZGVXaXRoQ2FsbGJhY2soQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgIAorICAgICAgICBpbnQgc291cmNlSW5kZXg7CisgICAgICAgIGludCBlcnJvcklucHV0TGVuZ3RoOworICAgICAgICBib29sZWFuIGNvbnZlcnRlclNhd0VuZE9mSW5wdXQsIGNhbGxlZENhbGxiYWNrOworICAgICAgICBpbnQgdD10YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgaW50IHM9c291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgIC8qIHZhcmlhYmxlcyBmb3IgbTpuIGNvbnZlcnNpb24gKi8KKyAgICAgICAgQnl0ZUJ1ZmZlciByZXBsYXlBcnJheSA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoRVhUX01BWF9CWVRFUyk7CisgICAgICAgIGludCByZXBsYXlBcnJheUluZGV4ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICBCeXRlQnVmZmVyIHJlYWxTb3VyY2U9bnVsbDsKKyAgICAgICAgYm9vbGVhbiByZWFsRmx1c2g9ZmFsc2U7CisgICAgICAgIGludCByZWFsU291cmNlSW5kZXg9MDsKKyAgICAKKworICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgCisgICAgICAgIC8qIGdldCB0aGUgY29udmVydGVyIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uICovCisgICAgICAgIHNvdXJjZUluZGV4PTA7CisKKyAgICAgICAgaWYocHJlVG9VTGVuZ3RoPj0wKSB7CisgICAgICAgICAgICAvKiBub3JtYWwgbW9kZSAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFByZXZpb3VzIG06biBjb252ZXJzaW9uIHN0b3JlZCBzb3VyY2UgdW5pdHMgZnJvbSBhIHBhcnRpYWwgbWF0Y2gKKyAgICAgICAgICAgICAqIGFuZCBmYWlsZWQgdG8gY29uc3VtZSBhbGwgb2YgdGhlbS4KKyAgICAgICAgICAgICAqIFdlIG5lZWQgdG8gInJlcGxheSIgdGhlbSBmcm9tIGEgdGVtcG9yYXJ5IGJ1ZmZlciBhbmQgY29udmVydCB0aGVtIGZpcnN0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICByZWFsU291cmNlPXNvdXJjZTsKKyAgICAgICAgICAgIHJlYWxGbHVzaD1mbHVzaDsKKyAgICAgICAgICAgIHJlYWxTb3VyY2VJbmRleD1zb3VyY2VJbmRleDsKKyAgICAgICAgICAgIC8vVUNvbnZlcnRlclV0aWxpdHkudXBydl9tZW1jcHkocmVwbGF5QXJyYXksIHJlcGxheUJlZ2luLCBwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4sIC1wcmVUb1VMZW5ndGgpOworICAgICAgICAgICAgcmVwbGF5QXJyYXkucHV0KHByZVRvVUFycmF5LDAsIC1wcmVUb1VMZW5ndGgpOworICAgICAgICAgICAgc291cmNlPXJlcGxheUFycmF5OworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKDApOworICAgICAgICAgICAgc291cmNlLmxpbWl0KHJlcGxheUFycmF5SW5kZXgtcHJlVG9VTGVuZ3RoKTsKKyAgICAgICAgICAgIGZsdXNoPWZhbHNlOworICAgICAgICAgICAgc291cmNlSW5kZXg9LTE7CisgICAgICAgICAgICBwcmVUb1VMZW5ndGg9MDsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBsb29wIGZvciBjb252ZXJzaW9uIGFuZCBlcnJvciBoYW5kbGluZworICAgICAgICAgKgorICAgICAgICAgKiBsb29wIHsKKyAgICAgICAgICogICBjb252ZXJ0CisgICAgICAgICAqICAgbG9vcCB7CisgICAgICAgICAqICAgICB1cGRhdGUgb2Zmc2V0cworICAgICAgICAgKiAgICAgaGFuZGxlIGVuZCBvZiBpbnB1dAorICAgICAgICAgKiAgICAgaGFuZGxlIGVycm9ycy9jYWxsIGNhbGxiYWNrCisgICAgICAgICAqICAgfQorICAgICAgICAgKiB9CisgICAgICAgICAqLworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGlmKGNyLmlzVW5kZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAvKiBjb252ZXJ0ICovCisgICAgICAgICAgICAgICAgY3IgPSBkZWNvZGVMb29wKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBmbHVzaCk7CisgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBzZXQgYSBmbGFnIGZvciB3aGV0aGVyIHRoZSBjb252ZXJ0ZXIKKyAgICAgICAgICAgICAgICAgKiBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIHRoZSBlbmQgb2YgdGhlIGlucHV0CisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiBuZWVkIG5vdCBjaGVjayBjbnYtPnByZVRvVUxlbmd0aD09MCBiZWNhdXNlIGEgcmVwbGF5ICg8MCkgd2lsbCBjYXVzZQorICAgICAgICAgICAgICAgICAqIHM8c291cmNlTGltaXQgYmVmb3JlIGNvbnZlcnRlclNhd0VuZE9mSW5wdXQgaXMgY2hlY2tlZAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGNvbnZlcnRlclNhd0VuZE9mSW5wdXQ9IChjci5pc1VuZGVyZmxvdygpICYmIGZsdXNoICYmIHNvdXJjZS5yZW1haW5pbmcoKT09MCAmJiB0b1VMZW5ndGg9PTApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBoYW5kbGUgZXJyb3IgZnJvbSBnZXROZXh0VUNoYXIoKSAqLworICAgICAgICAgICAgICAgIGNvbnZlcnRlclNhd0VuZE9mSW5wdXQ9ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBubyBjYWxsYmFjayBjYWxsZWQgeWV0IGZvciB0aGlzIGl0ZXJhdGlvbiAqLworICAgICAgICAgICAgY2FsbGVkQ2FsbGJhY2s9ZmFsc2U7CisgICAgCisgICAgICAgICAgICAvKiBubyBzb3VyY2VJbmRleCBhZGp1c3RtZW50IGZvciBjb252ZXJzaW9uLCBvbmx5IGZvciBjYWxsYmFjayBvdXRwdXQgKi8KKyAgICAgICAgICAgIGVycm9ySW5wdXRMZW5ndGg9MDsKKyAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBsb29wIGZvciBvZmZzZXRzIGFuZCBlcnJvciBoYW5kbGluZworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIGl0ZXJhdGVzIGF0IG1vc3QgMyB0aW1lczoKKyAgICAgICAgICAgICAqIDEuIHRvIGNsZWFuIHVwIGFmdGVyIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uCisgICAgICAgICAgICAgKiAyLiBhZnRlciB0aGUgY2FsbGJhY2sKKyAgICAgICAgICAgICAqIDMuIGFmdGVyIHRoZSBjYWxsYmFjayBhZ2FpbiBpZiB0aGVyZSB3YXMgdHJ1bmNhdGVkIGlucHV0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgIC8qIHVwZGF0ZSBvZmZzZXRzIGlmIHdlIHdyaXRlIGFueSAqLworICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoPSh0YXJnZXQucG9zaXRpb24oKS10KTsKKyAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZU9mZnNldHMob2Zmc2V0cywgbGVuZ3RoLCBzb3VyY2VJbmRleCwgZXJyb3JJbnB1dExlbmd0aCk7CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIGEgY29udmVydGVyIGhhbmRsZXMgb2Zmc2V0cyBhbmQgdXBkYXRlcyB0aGUgb2Zmc2V0cworICAgICAgICAgICAgICAgICAgICAgICAgICogcG9pbnRlciBhdCB0aGUgZW5kLCB0aGVuIHBBcmdzLT5vZmZzZXQgc2hvdWxkIG5vdCBjaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGhlcmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBob3dldmVyLCBzb21lIGNvbnZlcnRlcnMgZG8gbm90IGhhbmRsZSBvZmZzZXRzIGF0IGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgICogKHNvdXJjZUluZGV4PDApIG9yIG1heSBub3QgdXBkYXRlIHRoZSBvZmZzZXRzIHBvaW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgLy9UT0RPOiBwQXJncy0+b2Zmc2V0cz1vZmZzZXRzKz1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoc291cmNlSW5kZXg+PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4Kz0oc291cmNlLnBvc2l0aW9uKCktcyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZihwcmVUb1VMZW5ndGg8MCkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBzd2l0Y2ggdGhlIHNvdXJjZSB0byBuZXcgcmVwbGF5IHVuaXRzIChjYW5ub3Qgb2NjdXIgd2hpbGUgcmVwbGF5aW5nKQorICAgICAgICAgICAgICAgICAgICAgKiBhZnRlciBvZmZzZXQgaGFuZGxpbmcgYW5kIGJlZm9yZSBlbmQtb2YtaW5wdXQgYW5kIGNhbGxiYWNrIGhhbmRsaW5nCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZihyZWFsU291cmNlPT1udWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFNvdXJjZT1zb3VyY2U7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFsRmx1c2g9Zmx1c2g7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFsU291cmNlSW5kZXg9c291cmNlSW5kZXg7CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvL1VDb252ZXJ0ZXJVdGlsaXR5LnVwcnZfbWVtY3B5KHJlcGxheUFycmF5LCByZXBsYXlCZWdpbiwgcHJlVG9VQXJyYXksIHByZVRvVUJlZ2luLCAtcHJlVG9VTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxheUFycmF5LnB1dChwcmVUb1VBcnJheSwwLCAtcHJlVG9VTGVuZ3RoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlPXJlcGxheUFycmF5OworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmxpbWl0KHJlcGxheUFycmF5SW5kZXgtcHJlVG9VTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoPWZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHNvdXJjZUluZGV4Kz1wcmVUb1VMZW5ndGgpPDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD0tMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZVRvVUxlbmd0aD0wOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc2VlIGltcGxlbWVudGF0aW9uIG5vdGUgYmVmb3JlIF9mcm9tVW5pY29kZVdpdGhDYWxsYmFjaygpICovCisgICAgICAgICAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OnRvZG8gVV9BU1NFUlQocmVhbFNvdXJjZT09TlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgIEFzc2VydC5hc3NydChyZWFsU291cmNlPT1udWxsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvKiB1cGRhdGUgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgICAgICBzPXNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgIHQ9dGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgCisgICAgICAgICAgICAgICAgaWYoY3IuaXNVbmRlcmZsb3coKSkgeworICAgICAgICAgICAgICAgICAgICBpZihzPHNvdXJjZS5saW1pdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGNvbnRpbnVlIHdpdGggdGhlIGNvbnZlcnNpb24gbG9vcCB3aGlsZSB0aGVyZSBpcyBzdGlsbCBpbnB1dCBsZWZ0CisgICAgICAgICAgICAgICAgICAgICAgICAgKiAoY29udGludWUgY29udmVydGluZyBieSBicmVha2luZyBvdXQgb2Ygb25seSB0aGUgaW5uZXIgbG9vcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihyZWFsU291cmNlIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzd2l0Y2ggYmFjayBmcm9tIHJlcGxheWluZyB0byB0aGUgcmVhbCBzb3VyY2UgYW5kIGNvbnRpbnVlICovCisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSByZWFsU291cmNlOworICAgICAgICAgICAgICAgICAgICAgICAgZmx1c2g9cmVhbEZsdXNoOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXg9cmVhbFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFNvdXJjZT1udWxsOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihmbHVzaCAmJiB0b1VMZW5ndGg+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBlbnRpcmUgaW5wdXQgc3RyZWFtIGlzIGNvbnN1bWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhbmQgdGhlcmUgaXMgYSBwYXJ0aWFsLCB0cnVuY2F0ZWQgaW5wdXQgc2VxdWVuY2UgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbmplY3QgYW4gZXJyb3IgYW5kIGNvbnRpbnVlIHdpdGggY2FsbGJhY2sgaGFuZGxpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHRvVUxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWxsZWRDYWxsYmFjaz1mYWxzZTsgLyogbmV3IGVycm9yIGNvbmRpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5wdXQgY29uc3VtZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZsdXNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByZXR1cm4gdG8gdGhlIGNvbnZlcnNpb24gbG9vcCBvbmNlIG1vcmUgaWYgdGhlIGZsdXNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZmxhZyBpcyBzZXQgYW5kIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uIGhhcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIHRoZSBlbmQgb2YgdGhlIGlucHV0IHlldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogKGNvbnRpbnVlIGNvbnZlcnRpbmcgYnkgYnJlYWtpbmcgb3V0IG9mIG9ubHkgdGhlIGlubmVyIGxvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWNvbnZlcnRlclNhd0VuZE9mSW5wdXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlc2V0IHRoZSBjb252ZXJ0ZXIgd2l0aG91dCBjYWxsaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogZG9uZSBzdWNjZXNzZnVsbHkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvKiBVX0ZBSUxVUkUoKmVycikgKi8KKyAgICAgICAgICAgICAgICB7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKCBjYWxsZWRDYWxsYmFjayB8fCBjci5pc092ZXJmbG93KCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIChjci5pc01hbGZvcm1lZCgpICYmIGNyLmlzVW5tYXBwYWJsZSgpKQorICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBjYWxsYmFjayBkaWQgbm90IG9yIGNhbm5vdCByZXNvbHZlIHRoZSBlcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHNldCBvdXRwdXQgcG9pbnRlcnMgYW5kIHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBjaGVjayBmb3IgYnVmZmVyIG92ZXJmbG93IGlzIHJlZHVuZGFudCBidXQgaXQgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgaGlnaC1ydW5uZXIgY2FzZSBhbmQgaG9wZWZ1bGx5IGRvY3VtZW50cyB0aGUgaW50ZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgKiB3ZWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgd2Ugd2VyZSByZXBsYXlpbmcsIHRoZW4gdGhlIHJlcGxheSBidWZmZXIgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICogY29waWVkIGJhY2sgaW50byB0aGUgVUNvbnZlcnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICogYW5kIHRoZSByZWFsIGFyZ3VtZW50cyBtdXN0IGJlIHJlc3RvcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlYWxTb3VyY2UhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc2VydC5hc3NydChwcmVUb1VMZW5ndGg9PTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0oaW50KShzb3VyY2UubGltaXQoKS1zb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9VQ29udmVydGVyVXRpbGl0eS51cHJ2X21lbWNweShwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4sIHBBcmdzLnNvdXJjZUFycmF5LCBwQXJncy5zb3VyY2VCZWdpbiwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmdldChwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4sIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZVRvVUxlbmd0aD0oYnl0ZSktbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9cmVhbFNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaD1yZWFsRmx1c2g7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLyogY29weSB0b1VCeXRlc1tdIHRvIGludmFsaWRDaGFyQnVmZmVyW10gKi8KKyAgICAgICAgICAgICAgICBlcnJvcklucHV0TGVuZ3RoPWludmFsaWRDaGFyTGVuZ3RoPXRvVUxlbmd0aDsKKyAgICAgICAgICAgICAgICBpZihlcnJvcklucHV0TGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgY29weSh0b1VCeXRlc0FycmF5LCAwLCBpbnZhbGlkQ2hhckJ1ZmZlciwgMCwgZXJyb3JJbnB1dExlbmd0aCk7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgY29udmVydGVyIHN0YXRlIHRvIGRlYWwgd2l0aCB0aGUgbmV4dCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MDsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBjYWxsIHRoZSBjYWxsYmFjayBmdW5jdGlvbiAqLworICAgICAgICAgICAgICAgIGNyID0gdG9DaGFyRXJyb3JCZWhhdmlvdXIuY2FsbCh0aGlzLCB0b1VDb250ZXh0LCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgaW52YWxpZENoYXJCdWZmZXIsIGVycm9ySW5wdXRMZW5ndGgsIGNyKTsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGxvb3AgYmFjayB0byB0aGUgb2Zmc2V0IGhhbmRsaW5nCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiB0aGlzIGZsYWcgd2lsbCBpbmRpY2F0ZSBhZnRlciBvZmZzZXQgaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAgKiB0aGF0IGEgY2FsbGJhY2sgd2FzIGNhbGxlZDsKKyAgICAgICAgICAgICAgICAgKiBpZiB0aGUgY2FsbGJhY2sgZGlkIG5vdCByZXNvbHZlIHRoZSBlcnJvciwgdGhlbiB3ZSByZXR1cm4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBjYWxsZWRDYWxsYmFjaz10cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJzIGhlbGQgaW4gdGhlIGNvbnZlcnRlcidzIGludGVybmFsIHN0YXRlCisgICAgICogYmVjYXVzZSBtb3JlIGlucHV0IGlzIG5lZWRlZCBmb3IgY29tcGxldGluZyB0aGUgY29udmVyc2lvbi4gVGhpcyBmdW5jdGlvbiBpcyAKKyAgICAgKiB1c2VmdWwgZm9yIG1hcHBpbmcgc2VtYW50aWNzIG9mIElDVSdzIGNvbnZlcnRlciBpbnRlcmZhY2UgdG8gdGhvc2Ugb2YgaWNvbnYsCisgICAgICogYW5kIHRoaXMgaW5mb3JtYXRpb24gaXMgbm90IG5lZWRlZCBmb3Igbm9ybWFsIGNvbnZlcnNpb24uCisgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIGNoYXJzIGluIHRoZSBzdGF0ZS4gLTEgaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIGludCB0b1VDb3VudFBlbmRpbmcoKSAgICB7CisgICAgICAgIGlmKHByZVRvVUxlbmd0aCA+IDApeworICAgICAgICAgICAgcmV0dXJuIHByZVRvVUxlbmd0aCA7CisgICAgICAgIH1lbHNlIGlmKHByZVRvVUxlbmd0aCA8IDApeworICAgICAgICAgICAgcmV0dXJuIC1wcmVUb1VMZW5ndGg7CisgICAgICAgIH1lbHNlIGlmKHRvVUxlbmd0aCA+IDApeworICAgICAgICAgICAgcmV0dXJuIHRvVUxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgc2V0U291cmNlUG9zaXRpb24oQnl0ZUJ1ZmZlciBzb3VyY2UpeworICAgICAgICAvLyBvayB3YXMgdGhlcmUgaW5wdXQgaGVsZCBpbiB0aGUgcHJldmlvdXMgaW52b2NhdGlvbiBvZiBkZWNvZGVMb29wIAorICAgICAgICAvLyB0aGF0IHJlc3VsdGVkIGluIG91dHB1dCBpbiB0aGlzIGludm9jYXRpb24/CisgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSAtIHRvVUNvdW50UGVuZGluZygpKTsKKyAgICAgICAgCisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb3B5KGJ5dGVbXSBzcmMsIGludCBzcmNPZmZzZXQsIGNoYXJbXSBkc3QsIGludCBkc3RPZmZzZXQsIGludCBsZW5ndGgpIHsKKyAgICAgICAgZm9yKGludCBpPXNyY09mZnNldDsgaTxsZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkc3RbZHN0T2Zmc2V0KytdPShjaGFyKXNyY1tzcmNPZmZzZXQrK107CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogT05MWSB1c2VkIGJ5IFRvVSBjYWxsYmFjayBmdW5jdGlvbnMuCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIHdyaXRlIG91dCB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlcnMgdG8gdGhlIHRhcmdldAorICAgICAqIGNoYXJhY3RlciBidWZmZXIuCisgICAgICogQHJldHVybiBBIENvZGVyUmVzdWx0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlcnJvciByZXN1bHQgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgQ29kZXJSZXN1bHQgdG9VV3JpdGVVQ2hhcnMoIENoYXJzZXREZWNvZGVySUNVIGNudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSB1Y2hhcnNBcnJheSwgaW50IHVjaGFyc0JlZ2luLCBpbnQgbGVuZ3RoLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGludCBzb3VyY2VJbmRleCkgeworICAgICAgICAKKyAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIAorICAgICAgICAvKiB3cml0ZSBVQ2hhcnMgKi8KKyAgICAgICAgaWYob2Zmc2V0cz09bnVsbCkgeworICAgICAgICAgICAgd2hpbGUobGVuZ3RoPjAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh1Y2hhcnNBcnJheVt1Y2hhcnNCZWdpbisrXSk7CisgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG91dHB1dCB3aXRoIG9mZnNldHMgKi8KKyAgICAgICAgICAgIHdoaWxlKGxlbmd0aD4wICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodWNoYXJzQXJyYXlbdWNoYXJzQmVnaW4rK10pOworICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKiB3cml0ZSBvdmVyZmxvdyAqLworICAgICAgICBpZihsZW5ndGg+MCkgeyAgICAgICAgCisgICAgICAgICAgICBjbnYuY2hhckVycm9yQnVmZmVyTGVuZ3RoPSAwOworICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBjbnYuY2hhckVycm9yQnVmZmVyQXJyYXlbY252LmNoYXJFcnJvckJ1ZmZlckxlbmd0aCsrXT11Y2hhcnNBcnJheVt1Y2hhcnNCZWdpbisrXTsKKyAgICAgICAgICAgIH0gd2hpbGUoLS1sZW5ndGg+MCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNyOworICAgIH0KKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgd3JpdGUgb3V0IHRoZSBVbmljb2RlIHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIgdG8gdGhlCisgICAgICogdGFyZ2V0IGNoYXJhY3RlciBidWZmZXIuCisgICAgICogU3ViIGNsYXNzZXMgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2QgaWYgcmVxdWlyZWQKKyAgICAgKiBAcGFyYW0gZGVjb2RlcgorICAgICAqIEBwYXJhbSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gdGFyZ2V0CisgICAgICogQHBhcmFtIG9mZnNldHMKKyAgICAgKiBAcmV0dXJuIEEgQ29kZXJSZXN1bHQgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVycm9yIHJlc3VsdCB3aGVuIGFuIGVycm9yIG9jY3Vycy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgICBDb2RlclJlc3VsdCBjYlRvVVdyaXRlU3ViKENoYXJzZXREZWNvZGVySUNVIGRlY29kZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50QnVmZmVyIG9mZnNldHMpeworICAgICAgICBTdHJpbmcgc3ViID0gZGVjb2Rlci5yZXBsYWNlbWVudCgpOworICAgICAgICBDaGFyc2V0SUNVIGNzID0gKENoYXJzZXRJQ1UpIGRlY29kZXIuY2hhcnNldCgpOworICAgICAgICBpZiAoZGVjb2Rlci5pbnZhbGlkQ2hhckxlbmd0aD09MSAmJiBjcy5zdWJDaGFyMSAhPSAweDAwKSB7CisgICAgICAgICAgICBjaGFyW10gc3ViQXJyID0gbmV3IGNoYXJbXSB7IDB4MWEgfTsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0RGVjb2RlcklDVS50b1VXcml0ZVVDaGFycyhkZWNvZGVyLCBzdWJBcnIsIDAsIHN1YgorICAgICAgICAgICAgICAgICAgICAubGVuZ3RoKCksIHRhcmdldCwgb2Zmc2V0cywgc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXREZWNvZGVySUNVLnRvVVdyaXRlVUNoYXJzKGRlY29kZXIsIHN1Yi50b0NoYXJBcnJheSgpLAorICAgICAgICAgICAgICAgICAgICAwLCBzdWIubGVuZ3RoKCksIHRhcmdldCwgb2Zmc2V0cywgc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0RW5jb2RlcklDVS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldEVuY29kZXJJQ1UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzcxNjg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldEVuY29kZXJJQ1UuamF2YQpAQCAtMCwwICsxLDY3MyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CdWZmZXJPdmVyZmxvd0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGluZ0Vycm9yQWN0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBBbiBhYnN0cmFjdCBjbGFzcyB0aGF0IHByb3ZpZGVzIGZyYW1ld29yayBtZXRob2RzIG9mIGRlY29kaW5nIG9wZXJhdGlvbnMgZm9yIGNvbmNyZXRlCisgKiBzdWJjbGFzc2VzLiAKKyAqIEluIHRoZSBmdXR1cmUgdGhpcyBjbGFzcyB3aWxsIGNvbnRhaW4gQVBJIHRoYXQgd2lsbCBpbXBsZW1lbnQgY29udmVydGVyIHNlbWF0aWNzIG9mIElDVTRDLgorICogQGRyYWZ0IElDVSAzLjYKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ2hhcnNldEVuY29kZXJJQ1UgZXh0ZW5kcyBDaGFyc2V0RW5jb2RlciB7CisKKyAgICBieXRlW10gZXJyb3JCdWZmZXIgPSBuZXcgYnl0ZVszMF07CisgICAgaW50IGVycm9yQnVmZmVyTGVuZ3RoID0gMDsKKyAgICAKKyAgICAvKiogdGhlc2UgYXJlIGZvciBlbmNvZGVMb29wSUNVICovCisgICAgaW50IGZyb21Vbmljb2RlU3RhdHVzOworICAgIGludCBmcm9tVUNoYXIzMjsKKyAgICBib29sZWFuIHVzZVN1YkNoYXIxOworICAgIAorICAgIC8qIHN0b3JlIHByZXZpb3VzIFVDaGFycy9jaGFycyB0byBjb250aW51ZSBwYXJ0aWFsIG1hdGNoZXMgKi8KKyAgICBpbnQgcHJlRnJvbVVGaXJzdENQOyAvKiA+PTA6IHBhcnRpYWwgbWF0Y2ggKi8KKyAgICBjaGFyW10gcHJlRnJvbVVBcnJheTsKKyAgICBpbnQgcHJlRnJvbVVCZWdpbjsKKyAgICBpbnQgcHJlRnJvbVVMZW5ndGg7ICAgIC8qIG5lZ2F0aXZlOiByZXBsYXkgKi8KKyAgICAKKyAgICBjaGFyW10gaW52YWxpZFVDaGFyQnVmZmVyID0gbmV3IGNoYXJbMl07ICAgIAorICAgIGludCAgICBpbnZhbGlkVUNoYXJMZW5ndGg7CisgICAgT2JqZWN0IGZyb21VQ29udGV4dDsKKyAgICBwcml2YXRlIENoYXJzZXRDYWxsYmFjay5FbmNvZGVyIG9uVW5tYXBwYWJsZUlucHV0ID0gQ2hhcnNldENhbGxiYWNrLkZST01fVV9DQUxMQkFDS19TVE9QOworICAgIHByaXZhdGUgQ2hhcnNldENhbGxiYWNrLkVuY29kZXIgb25NYWxmb3JtZWRJbnB1dCA9IENoYXJzZXRDYWxsYmFjay5GUk9NX1VfQ0FMTEJBQ0tfU1RPUDsKKyAgICBDaGFyc2V0Q2FsbGJhY2suRW5jb2RlciBmcm9tQ2hhckVycm9yQmVoYXZpb3VyID0gbmV3IENoYXJzZXRDYWxsYmFjay5FbmNvZGVyKCl7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldEVuY29kZXJJQ1UgZW5jb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCBpbnQgbGVuZ3RoLCBpbnQgY3AsIENvZGVyUmVzdWx0IGNyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNyLmlzVW5tYXBwYWJsZSgpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvblVubWFwcGFibGVJbnB1dC5jYWxsKGVuY29kZXIsIGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBsZW5ndGgsIGNwLCBjcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKGNyLmlzTWFsZm9ybWVkKCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uTWFsZm9ybWVkSW5wdXQuY2FsbChlbmNvZGVyLCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsIGxlbmd0aCwgY3AsIGNyKTsgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5GUk9NX1VfQ0FMTEJBQ0tfU1RPUC5jYWxsKGVuY29kZXIsIGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBsZW5ndGgsIGNwLCBjcik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKworICAgLyoqIAorICAgICAqIENvbnN0cnVjcyBhIG5ldyBlbmNvZGVyIGZvciB0aGUgZ2l2ZW4gY2hhcnNldAorICAgICAqIEBwYXJhbSBjcyBmb3Igd2hpY2ggdGhlIGRlY29kZXIgaXMgY3JlYXRlZAorICAgICAqIEBwYXJhbSByZXBsYWNlbWVudCB0aGUgc3Vic3RpdHV0aW9uIGJ5dGVzCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBDaGFyc2V0RW5jb2RlcklDVShDaGFyc2V0SUNVIGNzLCBieXRlW10gcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgc3VwZXIoY3MsIChjcy5taW5CeXRlc1BlckNoYXIrY3MubWF4Qnl0ZXNQZXJDaGFyKS8yLCBjcy5tYXhCeXRlc1BlckNoYXIsIHJlcGxhY2VtZW50KTsKKyAgICB9CisKKwkvKioKKwkgKiBTZXRzIHRoZSBhY3Rpb24gdG8gYmUgdGFrZW4gaWYgYW4gaWxsZWdhbCBzZXF1ZW5jZSBpcyBlbmNvdW50ZXJlZAorCSAqIEBwYXJhbSBuZXdBY3Rpb24gYWN0aW9uIHRvIGJlIHRha2VuCisJICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKwkgKi8KKwlwcm90ZWN0ZWQgdm9pZCBpbXBsT25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbiBuZXdBY3Rpb24pIHsKKwkgICAgb25NYWxmb3JtZWRJbnB1dCA9IGdldENhbGxiYWNrKG5ld0FjdGlvbik7CisJfQorCisJLyoqCisJICogU2V0cyB0aGUgYWN0aW9uIHRvIGJlIHRha2VuIGlmIGFuIGlsbGVnYWwgc2VxdWVuY2UgaXMgZW5jb3VudGVyZWQKKwkgKiBAcGFyYW0gbmV3QWN0aW9uIGFjdGlvbiB0byBiZSB0YWtlbgorCSAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisJICovCisgICAgcHJvdGVjdGVkIHZvaWQgaW1wbE9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbiBuZXdBY3Rpb24pIHsKKyAgICAgICAgb25Vbm1hcHBhYmxlSW5wdXQgPSBnZXRDYWxsYmFjayhuZXdBY3Rpb24pOworCX0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBDaGFyc2V0Q2FsbGJhY2suRW5jb2RlciBnZXRDYWxsYmFjayhDb2RpbmdFcnJvckFjdGlvbiBhY3Rpb24peworICAgICAgICBpZihhY3Rpb249PUNvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5GUk9NX1VfQ0FMTEJBQ0tfU1VCU1RJVFVURTsKKyAgICAgICAgfWVsc2UgaWYoYWN0aW9uPT1Db2RpbmdFcnJvckFjdGlvbi5JR05PUkUpeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5GUk9NX1VfQ0FMTEJBQ0tfU0tJUDsKKyAgICAgICAgfWVsc2UgaWYoYWN0aW9uPT1Db2RpbmdFcnJvckFjdGlvbi5SRVBPUlQpeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5GUk9NX1VfQ0FMTEJBQ0tfU1RPUDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcnNldENhbGxiYWNrLkZST01fVV9DQUxMQkFDS19TVE9QOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENoYXJCdWZmZXIgRU1QVFkgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDApOworCS8qKgorCSAqIEZsdXNoZXMgYW55IGNoYXJhY3RlcnMgc2F2ZWQgaW4gdGhlIGNvbnZlcnRlcidzIGludGVybmFsIGJ1ZmZlciBhbmQKKwkgKiByZXNldHMgdGhlIGNvbnZlcnRlci4KKwkgKiBAcGFyYW0gb3V0IGFjdGlvbiB0byBiZSB0YWtlbgorCSAqIEByZXR1cm4gcmVzdWx0IG9mIGZsdXNoaW5nIGFjdGlvbiBhbmQgY29tcGxldGVzIHRoZSBkZWNvZGluZyBhbGwgaW5wdXQuIAorCSAqCSAgIFJldHVybnMgQ29kZXJSZXN1bHQuVU5ERVJGTE9XIGlmIHRoZSBhY3Rpb24gc3VjY2VlZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisJICovCisgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGltcGxGbHVzaChCeXRlQnVmZmVyIG91dCkgeworICAgICAgICByZXR1cm4gZW5jb2RlKEVNUFRZLCBvdXQsIG51bGwsIHRydWUpOworCX0KKworCS8qKgorCSAqIFJlc2V0cyB0aGUgZnJvbSBVbmljb2RlIG1vZGUgb2YgY29udmVydGVyCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisJICovCisgICAgcHJvdGVjdGVkIHZvaWQgaW1wbFJlc2V0KCkgeworCSAgICBlcnJvckJ1ZmZlckxlbmd0aD0wOworICAgICAgICBmcm9tVUNoYXIzMj0wOworICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IDA7CisgICAgICAgIHByZUZyb21VQmVnaW4gPSAwOworICAgICAgICBwcmVGcm9tVUZpcnN0Q1AgPSAwOworICAgICAgICBwcmVGcm9tVUxlbmd0aCA9IDA7CisJfQorCisJLyoqCisJICogRW5jb2RlcyBvbmUgb3IgbW9yZSBjaGFycy4gVGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZQorCSAqIGNvbnZlcnRlciBpcyBzdG9wIGFuZCByZXBvcnQgaWYgYW4gZXJyb3IgaW4gaW5wdXQgc3RyZWFtIGlzIGVuY291bnRlcmVkLgorCSAqIFRvIHNldCBkaWZmZXJlbnQgYmVoYXZpb3VyIHVzZSBAc2VlIENoYXJzZXRFbmNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoKQorCSAqIEBwYXJhbSBpbiBidWZmZXIgdG8gZGVjb2RlCisJICogQHBhcmFtIG91dCBidWZmZXIgdG8gcG9wdWxhdGUgd2l0aCBkZWNvZGVkIHJlc3VsdAorCSAqIEByZXR1cm4gcmVzdWx0IG9mIGRlY29kaW5nIGFjdGlvbi4gUmV0dXJucyBDb2RlclJlc3VsdC5VTkRFUkZMT1cgaWYgdGhlIGRlY29kaW5nCisJICoJICAgYWN0aW9uIHN1Y2NlZWRzIG9yIG1vcmUgaW5wdXQgaXMgbmVlZGVkIGZvciBjb21wbGV0aW5nIHRoZSBkZWNvZGluZyBhY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisJICovCisgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGVuY29kZUxvb3AoQ2hhckJ1ZmZlciBpbiwgQnl0ZUJ1ZmZlciBvdXQpIHsKKyAgICAgICAgaWYoIWluLmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIH0KKyAgICAgICAgaW4ucG9zaXRpb24oaW4ucG9zaXRpb24oKStmcm9tVUNvdW50UGVuZGluZygpKTsKKyAgICAgICAgLyogZG8gdGhlIGNvbnZlcnNpb24gKi8KKyAgICAgICAgQ29kZXJSZXN1bHQgcmV0ID0gZW5jb2RlKGluLCBvdXQsIG51bGwsIGZhbHNlKTsKKyAgICAgICAgc2V0U291cmNlUG9zaXRpb24oaW4pOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIElDVSBzZW1hbnRpY3Mgb2YgYnVmZmVyIG1hbmFnZW1lbnQKKyAgICAgKiBAcGFyYW0gc291cmNlCisgICAgICogQHBhcmFtIHRhcmdldAorICAgICAqIEBwYXJhbSBvZmZzZXRzCisgICAgICogQHJldHVybiBBIENvZGVyUmVzdWx0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlcnJvciByZXN1bHQgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBDb2RlclJlc3VsdCBlbmNvZGVMb29wKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpOworICAgIAorICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgSUNVIHNlbWFudGljcyBmb3IgZW5jb2RpbmcgdGhlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGlucHV0IGNoYXJhY3RlciBidWZmZXIKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSBvdXRwdXQgYnl0ZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0cworICAgICAqIEBwYXJhbSBmbHVzaCB0cnVlIGlmLCBhbmQgb25seSBpZiwgdGhlIGludm9rZXIgY2FuIHByb3ZpZGUgbm8KKyAgICAgKiAgYWRkaXRpb25hbCBpbnB1dCBieXRlcyBiZXlvbmQgdGhvc2UgaW4gdGhlIGdpdmVuIGJ1ZmZlci4KKyAgICAgKiBAcmV0dXJuIEEgQ29kZXJSZXN1bHQgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVycm9yIHJlc3VsdCB3aGVuIGFuIGVycm9yIG9jY3Vycy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIGZpbmFsIENvZGVyUmVzdWx0IGVuY29kZShDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKworICAgIAorICAgICAgICAvKiBjaGVjayBwYXJhbWV0ZXJzICovICAgIAorICAgICAgICBpZih0YXJnZXQ9PW51bGwgfHwgc291cmNlPT1udWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBNYWtlIHN1cmUgdGhhdCB0aGUgYnVmZmVyIHNpemVzIGRvIG5vdCBleGNlZWQgdGhlIG51bWJlciByYW5nZSBmb3IKKyAgICAgICAgICogaW50MzJfdCBiZWNhdXNlIHNvbWUgZnVuY3Rpb25zIHVzZSB0aGUgc2l6ZSAoaW4gdW5pdHMgb3IgYnl0ZXMpCisgICAgICAgICAqIHJhdGhlciB0aGFuIGNvbXBhcmluZyBwb2ludGVycywgYW5kIGJlY2F1c2Ugb2Zmc2V0cyBhcmUgaW50MzJfdCB2YWx1ZXMuCisgICAgICAgICAqCisgICAgICAgICAqIHNpemVfdCBpcyBndWFyYW50ZWVkIHRvIGJlIHVuc2lnbmVkIGFuZCBsYXJnZSBlbm91Z2ggZm9yIHRoZSBqb2IuCisgICAgICAgICAqCisgICAgICAgICAqIFJldHVybiB3aXRoIGFuIGVycm9yIGluc3RlYWQgb2YgYWRqdXN0aW5nIHRoZSBsaW1pdHMgYmVjYXVzZSB3ZSB3b3VsZAorICAgICAgICAgKiBub3QgYmUgYWJsZSB0byBtYWludGFpbiB0aGUgc2VtYW50aWNzIHRoYXQgZWl0aGVyIHRoZSBzb3VyY2UgbXVzdCBiZQorICAgICAgICAgKiBjb25zdW1lZCBvciB0aGUgdGFyZ2V0IGZpbGxlZCAodW5sZXNzIGFuIGVycm9yIG9jY3VycykuCisgICAgICAgICAqIEFuIGFkanVzdG1lbnQgd291bGQgYmUgdGFyZ2V0TGltaXQ9dCsweDdmZmZmZmZmOyBmb3IgZXhhbXBsZS4KKyAgICAgICAgICovCisgICAgICAgIAorICAgICAgICAvKiBmbHVzaCB0aGUgdGFyZ2V0IG92ZXJmbG93IGJ1ZmZlciAqLworICAgICAgICBpZihlcnJvckJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBieXRlW10gb3ZlcmZsb3dBcnJheTsKKyAgICAgICAgICAgIGludCBpLCBsZW5ndGg7CisgICAgCisgICAgICAgICAgICBvdmVyZmxvd0FycmF5PWVycm9yQnVmZmVyOworICAgICAgICAgICAgbGVuZ3RoPWVycm9yQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgaT0wOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGlmKHRhcmdldC5yZW1haW5pbmcoKT09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGUgb3ZlcmZsb3cgYnVmZmVyIGNvbnRhaW5zIHRvbyBtdWNoLCBrZWVwIHRoZSByZXN0ICovCisgICAgICAgICAgICAgICAgICAgIGludCBqPTA7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93QXJyYXlbaisrXT1vdmVyZmxvd0FycmF5W2krK107CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoaTxsZW5ndGgpOworICAgIAorICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlckxlbmd0aD0oYnl0ZSlqOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8qIGNvcHkgdGhlIG92ZXJmbG93IGNvbnRlbnRzIHRvIHRoZSB0YXJnZXQgKi8KKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KG92ZXJmbG93QXJyYXlbaSsrXSk7CisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7IC8qIG5vIHNvdXJjZSBpbmRleCBhdmFpbGFibGUgZm9yIG9sZCBvdXRwdXQgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IHdoaWxlKGk8bGVuZ3RoKTsKKyAgICAKKyAgICAgICAgICAgIC8qIHRoZSBvdmVyZmxvdyBidWZmZXIgaXMgY29tcGxldGVseSBjb3BpZWQgdG8gdGhlIHRhcmdldCAqLworICAgICAgICAgICAgZXJyb3JCdWZmZXJMZW5ndGg9MDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZighZmx1c2ggJiYgc291cmNlLnJlbWFpbmluZygpPT0wICYmIHByZUZyb21VTGVuZ3RoPj0wKSB7CisgICAgICAgICAgICAvKiB0aGUgb3ZlcmZsb3cgYnVmZmVyIGlzIGVtcHRpZWQgYW5kIHRoZXJlIGlzIG5vIG5ldyBpbnB1dDogd2UgYXJlIGRvbmUgKi8KKyAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gbm90IHNpbXBseSByZXR1cm4gd2l0aCBhIGJ1ZmZlciBvdmVyZmxvdyBlcnJvciBpZgorICAgICAgICAgKiAhZmx1c2ggJiYgdD09dGFyZ2V0TGltaXQKKyAgICAgICAgICogYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBzb3VyY2Ugd2lsbCBub3QgZ2VuZXJhdGUgYW55IG91dHB1dC4KKyAgICAgICAgICogRm9yIGV4YW1wbGUsIHRoZSBza2lwIGNhbGxiYWNrIG1heSBiZSBjYWxsZWQ7CisgICAgICAgICAqIGl0IGRvZXMgbm90IG91dHB1dCBhbnl0aGluZy4KKyAgICAgICAgICovCisgICAgCisgICAgICAgIHJldHVybiBmcm9tVW5pY29kZVdpdGhDYWxsYmFjayhzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgZmx1c2gpOworCisgICAgfQorICAgIC8qIG1heGltdW0gbnVtYmVyIG9mIGluZGV4ZWQgVUNoYXJzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVF9NQVhfVUNIQVJTID0gMTk7CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBub3RlIGZvciBtOm4gY29udmVyc2lvbnMKKyAgICAgKgorICAgICAqIFdoaWxlIGNvbGxlY3Rpbmcgc291cmNlIHVuaXRzIHRvIGZpbmQgdGhlIGxvbmdlc3QgbWF0Y2ggZm9yIG06biBjb252ZXJzaW9uLAorICAgICAqIHNvbWUgc291cmNlIHVuaXRzIG1heSBuZWVkIHRvIGJlIHN0b3JlZCBmb3IgYSBwYXJ0aWFsIG1hdGNoLgorICAgICAqIFdoZW4gYSBzZWNvbmQgYnVmZmVyIGRvZXMgbm90IHlpZWxkIGEgbWF0Y2ggb24gYWxsIG9mIHRoZSBwcmV2aW91c2x5IHN0b3JlZAorICAgICAqIHNvdXJjZSB1bml0cywgdGhlbiB0aGV5IG11c3QgYmUgInJlcGxheWVkIiwgaS5lLiwgZmVkIGJhY2sgaW50byB0aGUgY29udmVydGVyLgorICAgICAqCisgICAgICogVGhlIGNvZGUgcmVsaWVzIG9uIHRoZSBmYWN0IHRoYXQgcmVwbGF5aW5nIHdpbGwgbm90IG5lc3QgLQorICAgICAqIGNvbnZlcnRpbmcgYSByZXBsYXkgYnVmZmVyIHdpbGwgbm90IHJlc3VsdCBpbiBhIHJlcGxheS4KKyAgICAgKiBUaGlzIGlzIGJlY2F1c2UgYSByZXBsYXkgaXMgbmVjZXNzYXJ5IG9ubHkgYWZ0ZXIgdGhlIF9jb250aW51YXRpb25fIG9mIGEKKyAgICAgKiBwYXJ0aWFsIG1hdGNoIGZhaWxlZCwgYnV0IGEgcmVwbGF5IGJ1ZmZlciBpcyBjb252ZXJ0ZWQgYXMgYSB3aG9sZS4KKyAgICAgKiBJdCBtYXkgcmVzdWx0IGluIHNvbWUgb2YgaXRzIHVuaXRzIGJlaW5nIHN0b3JlZCBhZ2FpbiBmb3IgYSBwYXJ0aWFsIG1hdGNoLAorICAgICAqIGJ1dCB0aGVyZSB3aWxsIG5vdCBiZSBhIGNvbnRpbnVhdGlvbiBfZHVyaW5nXyB0aGUgcmVwbGF5IHdoaWNoIGNvdWxkIGZhaWwuCisgICAgICoKKyAgICAgKiBJdCBpcyBjb25jZWl2YWJsZSB0aGF0IGEgY2FsbGJhY2sgZnVuY3Rpb24gY291bGQgY2FsbCB0aGUgY29udmVydGVyCisgICAgICogcmVjdXJzaXZlbHkgaW4gYSB3YXkgdGhhdCBjYXVzZXMgYW5vdGhlciByZXBsYXkgdG8gYmUgc3RvcmVkLCBidXQgdGhhdAorICAgICAqIHdvdWxkIGJlIGFuIGVycm9yIGluIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KKyAgICAgKiBTdWNoIHZpb2xhdGlvbnMgd2lsbCBjYXVzZSBhc3NlcnRpb24gZmFpbHVyZXMgaW4gYSBkZWJ1ZyBidWlsZCwKKyAgICAgKiBhbmQgd3Jvbmcgb3V0cHV0LCBidXQgdGhleSB3aWxsIG5vdCBjYXVzZSBhIGNyYXNoLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgZmluYWwgQ29kZXJSZXN1bHQgZnJvbVVuaWNvZGVXaXRoQ2FsbGJhY2soQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgIGludCBzQnVmZmVySW5kZXg7CisgICAgICAgIGludCBzb3VyY2VJbmRleDsKKyAgICAgICAgaW50IGVycm9ySW5wdXRMZW5ndGg7CisgICAgICAgIGJvb2xlYW4gY29udmVydGVyU2F3RW5kT2ZJbnB1dCwgY2FsbGVkQ2FsbGJhY2s7CisgICAgICAgIAorCisgICAgICAgIC8qIHZhcmlhYmxlcyBmb3IgbTpuIGNvbnZlcnNpb24gKi8KKyAgICAgICAgQ2hhckJ1ZmZlciByZXBsYXlBcnJheSA9IENoYXJCdWZmZXIuYWxsb2NhdGUoRVhUX01BWF9VQ0hBUlMpOworICAgICAgICBpbnQgcmVwbGF5QXJyYXlJbmRleD0wOworICAgICAgICBDaGFyQnVmZmVyIHJlYWxTb3VyY2U7CisgICAgICAgIGJvb2xlYW4gcmVhbEZsdXNoOworICAgICAgICAKKyAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIAorICAgICAgICAvKiBnZXQgdGhlIGNvbnZlcnRlciBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbiAqLworICAgICAgICBzb3VyY2VJbmRleD0wOworCisgICAgICAgIGlmKHByZUZyb21VTGVuZ3RoPj0wKSB7CisgICAgICAgICAgICAvKiBub3JtYWwgbW9kZSAqLworICAgICAgICAgICAgcmVhbFNvdXJjZT1udWxsOyAgICAKKyAgICAgICAgICAgIHJlYWxGbHVzaD1mYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBQcmV2aW91cyBtOm4gY29udmVyc2lvbiBzdG9yZWQgc291cmNlIHVuaXRzIGZyb20gYSBwYXJ0aWFsIG1hdGNoCisgICAgICAgICAgICAgKiBhbmQgZmFpbGVkIHRvIGNvbnN1bWUgYWxsIG9mIHRoZW0uCisgICAgICAgICAgICAgKiBXZSBuZWVkIHRvICJyZXBsYXkiIHRoZW0gZnJvbSBhIHRlbXBvcmFyeSBidWZmZXIgYW5kIGNvbnZlcnQgdGhlbSBmaXJzdC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmVhbFNvdXJjZT1zb3VyY2U7CisgICAgICAgICAgICByZWFsRmx1c2ggPSBmbHVzaDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9VQ29udmVydGVyVXRpbGl0eS51cHJ2X21lbWNweShyZXBsYXlBcnJheSwgcmVwbGF5QXJyYXlJbmRleCwgcHJlRnJvbVVBcnJheSwgMCwgLXByZUZyb21VTGVuZ3RoKlVNYWNoaW5lLlVfU0laRU9GX1VDSEFSKTsKKyAgICAgICAgICAgIHJlcGxheUFycmF5LnB1dChwcmVGcm9tVUFycmF5LDAsIC1wcmVGcm9tVUxlbmd0aCk7CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24ocmVwbGF5QXJyYXlJbmRleCk7CisgICAgICAgICAgICBzb3VyY2UubGltaXQocmVwbGF5QXJyYXlJbmRleC1wcmVGcm9tVUxlbmd0aCk7IC8vcHJlRnJvbVVMZW5ndGggaXMgbmVnYXRpdmUsIHNlZSBkZWNsYXJhdGlvbgorICAgICAgICAgICAgc291cmNlPXJlcGxheUFycmF5OworICAgICAgICAgICAgZmx1c2g9ZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHByZUZyb21VTGVuZ3RoPTA7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBsb29wIGZvciBjb252ZXJzaW9uIGFuZCBlcnJvciBoYW5kbGluZworICAgICAgICAgKgorICAgICAgICAgKiBsb29wIHsKKyAgICAgICAgICogICBjb252ZXJ0CisgICAgICAgICAqICAgbG9vcCB7CisgICAgICAgICAqICAgICB1cGRhdGUgb2Zmc2V0cworICAgICAgICAgKiAgICAgaGFuZGxlIGVuZCBvZiBpbnB1dAorICAgICAgICAgKiAgICAgaGFuZGxlIGVycm9ycy9jYWxsIGNhbGxiYWNrCisgICAgICAgICAqICAgfQorICAgICAgICAgKiB9CisgICAgICAgICAqLworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIC8qIGNvbnZlcnQgKi8KKyAgICAgICAgICAgIGNyID0gZW5jb2RlTG9vcChzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgZmx1c2gpOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHNldCBhIGZsYWcgZm9yIHdoZXRoZXIgdGhlIGNvbnZlcnRlcgorICAgICAgICAgICAgICogc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCB0aGUgZW5kIG9mIHRoZSBpbnB1dAorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIG5lZWQgbm90IGNoZWNrIGNudi5wcmVGcm9tVUxlbmd0aD09MCBiZWNhdXNlIGEgcmVwbGF5ICg8MCkgd2lsbCBjYXVzZQorICAgICAgICAgICAgICogczxzb3VyY2VMaW1pdCBiZWZvcmUgY29udmVydGVyU2F3RW5kT2ZJbnB1dCBpcyBjaGVja2VkCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGNvbnZlcnRlclNhd0VuZE9mSW5wdXQ9IChib29sZWFuKShjci5pc1VuZGVyZmxvdygpICYmIGZsdXNoICYmIHNvdXJjZS5yZW1haW5pbmcoKT09MCAmJiBmcm9tVUNoYXIzMj09MCk7CisgICAgCisgICAgICAgICAgICAvKiBubyBjYWxsYmFjayBjYWxsZWQgeWV0IGZvciB0aGlzIGl0ZXJhdGlvbiAqLworICAgICAgICAgICAgY2FsbGVkQ2FsbGJhY2s9ZmFsc2U7CisgICAgCisgICAgICAgICAgICAvKiBubyBzb3VyY2VJbmRleCBhZGp1c3RtZW50IGZvciBjb252ZXJzaW9uLCBvbmx5IGZvciBjYWxsYmFjayBvdXRwdXQgKi8KKyAgICAgICAgICAgIGVycm9ySW5wdXRMZW5ndGg9MDsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGxvb3AgZm9yIG9mZnNldHMgYW5kIGVycm9yIGhhbmRsaW5nCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogaXRlcmF0ZXMgYXQgbW9zdCAzIHRpbWVzOgorICAgICAgICAgICAgICogMS4gdG8gY2xlYW4gdXAgYWZ0ZXIgdGhlIGNvbnZlcnNpb24gZnVuY3Rpb24KKyAgICAgICAgICAgICAqIDIuIGFmdGVyIHRoZSBjYWxsYmFjaworICAgICAgICAgICAgICogMy4gYWZ0ZXIgdGhlIGNhbGxiYWNrIGFnYWluIGlmIHRoZXJlIHdhcyB0cnVuY2F0ZWQgaW5wdXQKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgLyogdXBkYXRlIG9mZnNldHMgaWYgd2Ugd3JpdGUgYW55ICovCisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gdGFyZ2V0LnJlbWFpbmluZygpOworICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg+MCkgeworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIGEgY29udmVydGVyIGhhbmRsZXMgb2Zmc2V0cyBhbmQgdXBkYXRlcyB0aGUgb2Zmc2V0cworICAgICAgICAgICAgICAgICAgICAgICAgICogcG9pbnRlciBhdCB0aGUgZW5kLCB0aGVuIG9mZnNldCBzaG91bGQgbm90IGNoYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICogaGVyZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGhvd2V2ZXIsIHNvbWUgY29udmVydGVycyBkbyBub3QgaGFuZGxlIG9mZnNldHMgYXQgYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAoc291cmNlSW5kZXg8MCkgb3IgbWF5IG5vdCB1cGRhdGUgdGhlIG9mZnNldHMgcG9pbnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnBvc2l0aW9uKG9mZnNldHMucG9zaXRpb24oKStsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKHNvdXJjZUluZGV4Pj0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCs9KGludCkoc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYocHJlRnJvbVVMZW5ndGg8MCkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBzd2l0Y2ggdGhlIHNvdXJjZSB0byBuZXcgcmVwbGF5IHVuaXRzIChjYW5ub3Qgb2NjdXIgd2hpbGUgcmVwbGF5aW5nKQorICAgICAgICAgICAgICAgICAgICAgKiBhZnRlciBvZmZzZXQgaGFuZGxpbmcgYW5kIGJlZm9yZSBlbmQtb2YtaW5wdXQgYW5kIGNhbGxiYWNrIGhhbmRsaW5nCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZihyZWFsU291cmNlPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFsU291cmNlPXNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxGbHVzaD1mbHVzaDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vVUNvbnZlcnRlclV0aWxpdHkudXBydl9tZW1jcHkocmVwbGF5QXJyYXksIHJlcGxheUFycmF5SW5kZXgsIHByZUZyb21VQXJyYXksIDAsIC1wcmVGcm9tVUxlbmd0aCpVTWFjaGluZS5VX1NJWkVPRl9VQ0hBUik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBsYXlBcnJheS5wdXQocHJlRnJvbVVBcnJheSwwLCAtcHJlRnJvbVVMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9cmVwbGF5QXJyYXk7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24ocmVwbGF5QXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubGltaXQocmVwbGF5QXJyYXlJbmRleC1wcmVGcm9tVUxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaD1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKChzb3VyY2VJbmRleCs9cHJlRnJvbVVMZW5ndGgpPDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD0tMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZUZyb21VTGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWUgaW1wbGVtZW50YXRpb24gbm90ZSBiZWZvcmUgX2Zyb21Vbmljb2RlV2l0aENhbGxiYWNrKCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6dG9kbyBVX0FTU0VSVChyZWFsU291cmNlPT1OVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFzc2VydC5hc3NydChyZWFsU291cmNlPT1udWxsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIHVwZGF0ZSBwb2ludGVycyAqLworICAgICAgICAgICAgICAgIHNCdWZmZXJJbmRleD1zb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBpZihjci5pc1VuZGVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKHNCdWZmZXJJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGNvbnRpbnVlIHdpdGggdGhlIGNvbnZlcnNpb24gbG9vcCB3aGlsZSB0aGVyZSBpcyBzdGlsbCBpbnB1dCBsZWZ0CisgICAgICAgICAgICAgICAgICAgICAgICAgKiAoY29udGludWUgY29udmVydGluZyBieSBicmVha2luZyBvdXQgb2Ygb25seSB0aGUgaW5uZXIgbG9vcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihyZWFsU291cmNlIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzd2l0Y2ggYmFjayBmcm9tIHJlcGxheWluZyB0byB0aGUgcmVhbCBzb3VyY2UgYW5kIGNvbnRpbnVlICovCisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9cmVhbFNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoPXJlYWxGbHVzaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4PXNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFNvdXJjZT1udWxsOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihmbHVzaCAmJiBmcm9tVUNoYXIzMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBlbnRpcmUgaW5wdXQgc3RyZWFtIGlzIGNvbnN1bWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhbmQgdGhlcmUgaXMgYSBwYXJ0aWFsLCB0cnVuY2F0ZWQgaW5wdXQgc2VxdWVuY2UgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbmplY3QgYW4gZXJyb3IgYW5kIGNvbnRpbnVlIHdpdGggY2FsbGJhY2sgaGFuZGxpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vZXJyWzBdPUVycm9yQ29kZS5VX1RSVU5DQVRFRF9DSEFSX0ZPVU5EOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWxsZWRDYWxsYmFjaz1mYWxzZTsgLyogbmV3IGVycm9yIGNvbmRpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5wdXQgY29uc3VtZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZsdXNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByZXR1cm4gdG8gdGhlIGNvbnZlcnNpb24gbG9vcCBvbmNlIG1vcmUgaWYgdGhlIGZsdXNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZmxhZyBpcyBzZXQgYW5kIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uIGhhcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIHRoZSBlbmQgb2YgdGhlIGlucHV0IHlldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogKGNvbnRpbnVlIGNvbnZlcnRpbmcgYnkgYnJlYWtpbmcgb3V0IG9mIG9ubHkgdGhlIGlubmVyIGxvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWNvbnZlcnRlclNhd0VuZE9mSW5wdXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlc2V0IHRoZSBjb252ZXJ0ZXIgd2l0aG91dCBjYWxsaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogZG9uZSBzdWNjZXNzZnVsbHkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qVV9GQUlMVVJFKCplcnIpICovCisgICAgICAgICAgICAgICAgeworICAgIAorICAgICAgICAgICAgICAgICAgICBpZiggY2FsbGVkQ2FsbGJhY2sgfHwgY3IuaXNPdmVyZmxvdygpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoY3IuaXNNYWxmb3JtZWQoKSAmJiBjci5pc1VubWFwcGFibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICApeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBjYWxsYmFjayBkaWQgbm90IG9yIGNhbm5vdCByZXNvbHZlIHRoZSBlcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHNldCBvdXRwdXQgcG9pbnRlcnMgYW5kIHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBjaGVjayBmb3IgYnVmZmVyIG92ZXJmbG93IGlzIHJlZHVuZGFudCBidXQgaXQgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgaGlnaC1ydW5uZXIgY2FzZSBhbmQgaG9wZWZ1bGx5IGRvY3VtZW50cyB0aGUgaW50ZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgKiB3ZWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgd2Ugd2VyZSByZXBsYXlpbmcsIHRoZW4gdGhlIHJlcGxheSBidWZmZXIgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICogY29waWVkIGJhY2sgaW50byB0aGUgVUNvbnZlcnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICogYW5kIHRoZSByZWFsIGFyZ3VtZW50cyBtdXN0IGJlIHJlc3RvcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlYWxTb3VyY2UhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoOworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6dG9kbyBVX0FTU0VSVChjbnYucHJlRnJvbVVMZW5ndGg9PTApOworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1zb3VyY2UucmVtYWluaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9VQ29udmVydGVyVXRpbGl0eS51cHJ2X21lbWNweShwcmVGcm9tVUFycmF5LCAwLCBzb3VyY2VBcnJheSwgcEFyZ3Muc291cmNlQmVnaW4sIGxlbmd0aCpVTWFjaGluZS5VX1NJWkVPRl9VQ0hBUik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5nZXQocHJlRnJvbVVBcnJheSwgMCwgbGVuZ3RoICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZUZyb21VTGVuZ3RoPShieXRlKS1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT1yZWFsU291cmNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoPXJlYWxGbHVzaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrIGhhbmRsaW5nICovCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvKiBnZXQgYW5kIHdyaXRlIHRoZSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIGVycm9ySW5wdXRMZW5ndGggPSBVVEYxNi5hcHBlbmQoaW52YWxpZFVDaGFyQnVmZmVyLCAwLCBmcm9tVUNoYXIzMik7CisgICAgICAgICAgICAgICAgICAgIGludmFsaWRVQ2hhckxlbmd0aCA9IGVycm9ySW5wdXRMZW5ndGg7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgY29udmVydGVyIHN0YXRlIHRvIGRlYWwgd2l0aCB0aGUgbmV4dCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzI9MDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgY3IgPSBmcm9tQ2hhckVycm9yQmVoYXZpb3VyLmNhbGwodGhpcywgZnJvbVVDb250ZXh0LCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgaW52YWxpZFVDaGFyQnVmZmVyLCBpbnZhbGlkVUNoYXJMZW5ndGgsIGZyb21VQ2hhcjMyLCBjcik7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogbG9vcCBiYWNrIHRvIHRoZSBvZmZzZXQgaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIHRoaXMgZmxhZyB3aWxsIGluZGljYXRlIGFmdGVyIG9mZnNldCBoYW5kbGluZworICAgICAgICAgICAgICAgICAqIHRoYXQgYSBjYWxsYmFjayB3YXMgY2FsbGVkOworICAgICAgICAgICAgICAgICAqIGlmIHRoZSBjYWxsYmFjayBkaWQgbm90IHJlc29sdmUgdGhlIGVycm9yLCB0aGVuIHdlIHJldHVybgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGNhbGxlZENhbGxiYWNrPXRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisJLyoqCisJICogQXNjZXJ0YWlucyBpZiBhIGdpdmVuIFVuaWNvZGUgY29kZSBwb2ludCAoMzJiaXQgdmFsdWUgZm9yIGhhbmRsaW5nIHN1cnJvZ2F0ZXMpCisJICogY2FuIGJlIGNvbnZlcnRlZCB0byB0aGUgdGFyZ2V0IGVuY29kaW5nLiBJZiB0aGUgY2FsbGVyIHdhbnRzIHRvIHRlc3QgaWYgYQorCSAqIHN1cnJvZ2F0ZSBwYWlyIGNhbiBiZSBjb252ZXJ0ZWQgdG8gdGFyZ2V0IGVuY29kaW5nIHRoZW4gdGhlCisJICogcmVzcG9uc2liaWxpdHkgb2YgYXNzZW1ibGluZyB0aGUgaW50IHZhbHVlIGxpZXMgd2l0aCB0aGUgY2FsbGVyLgorCSAqIEZvciBhc3NlbWJsaW5nIGEgY29kZSBwb2ludCB0aGUgY2FsbGVyIGNhbiB1c2UgVVRGMTYgY2xhc3Mgb2YgSUNVNEogYW5kIGRvIHNvbWV0aGluZyBsaWtlOgorCSAqIDxwcmU+CisJICogd2hpbGUoaTxteVNvdXJjZS5sZW5ndGgpeworCSAqCSAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKG15U291cmNlW2ldKSYmIGkrMTwgbXlTb3VyY2UubGVuZ3RoKXsKKwkgKgkgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKG15U291cmNlW2krMV0pKXsKKwkgKgkgICAgICAgICAgaW50IHRlbXAgPSBVVEYxNi5jaGFyQXQobXlTb3VyY2UsaSxpKzEsMCk7CisJICoJICAgICAgICAgIGlmKCEoKENoYXJzZXRFbmNvZGVySUNVKSBteUNvbnYpLmNhbkVuY29kZSh0ZW1wKSl7CisJICoJCSAgcGFzc2VkPWZhbHNlOworCSAqCSAgICAgICAgICB9CisJICoJICAgICAgICAgIGkrKzsKKwkgKgkgICAgICAgICAgaSsrOworCSAqCSAgICAgIH0KKwkgKgkgfQorCSAqIH0KKwkgKiA8L3ByZT4KKwkgKiBvcgorCSAqIDxwcmU+CisJICogU3RyaW5nIHNyYyA9IG5ldyBTdHJpbmcobXlTb3VyY2UpOworCSAqIGludCBpLGNvZGVwb2ludDsKKwkgKiBib29sZWFuIHBhc3NlZCA9IGZhbHNlOworCSAqIHdoaWxlKGk8c3JjLmxlbmd0aCgpKXsKKwkgKgljb2RlcG9pbnQgPSBVVEYxNi5jaGFyQXQoc3JjLGkpOworCSAqCWkrPSAoY29kZXBvaW50PjB4ZmZmKT8gMjoxOworCSAqCWlmKCEoQ2hhcnNldEVuY29kZXJJQ1UpIG15Q29udikuY2FuRW5jb2RlKGNvZGVwb2ludCkpeworCSAqCSAgICBwYXNzZWQgPSBmYWxzZTsKKwkgKgl9CisJICogfQorCSAqIDwvcHJlPgorCSAqCisJICogQHBhcmFtIGNvZGVwb2ludCBVbmljb2RlIGNvZGUgcG9pbnQgYXMgaW50IHZhbHVlCisJICogQHJldHVybiB0cnVlIGlmIGEgY2hhcmFjdGVyIGNhbiBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorCSAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorCSAqLworCXB1YmxpYyBib29sZWFuIGNhbkVuY29kZShpbnQgY29kZXBvaW50KSB7CisJICAgIHJldHVybiB0cnVlOworICAgIH0KKwkvKioKKyAgICAgKiBPdmVycmlkZXMgc3VwZXIgY2xhc3MgbWV0aG9kCisgICAgICogQHN0YWJsZSBJQ1UgMy42IAorCSAqLworCXB1YmxpYyBib29sZWFuIGlzTGVnYWxSZXBsYWNlbWVudChieXRlW10gcmVwbCl7CisJICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBXcml0ZXMgb3V0IHRoZSBzcGVjaWZpZWQgb3V0cHV0IGJ5dGVzIHRvIHRoZSB0YXJnZXQgYnl0ZSBidWZmZXIgb3IgdG8gY29udmVydGVyIGludGVybmFsIGJ1ZmZlcnMuCisgICAgICogQHBhcmFtIGNudgorICAgICAqIEBwYXJhbSBieXRlc0FycmF5CisgICAgICogQHBhcmFtIGJ5dGVzQmVnaW4KKyAgICAgKiBAcGFyYW0gYnl0ZXNMZW5ndGgKKyAgICAgKiBAcGFyYW0gb3V0CisgICAgICogQHBhcmFtIG9mZnNldHMKKyAgICAgKiBAcGFyYW0gc291cmNlSW5kZXgKKyAgICAgKiBAcmV0dXJuIEEgQ29kZXJSZXN1bHQgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVycm9yIHJlc3VsdCB3aGVuIGFuIGVycm9yIG9jY3Vycy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgQ29kZXJSZXN1bHQgZnJvbVVXcml0ZUJ5dGVzKENoYXJzZXRFbmNvZGVySUNVIGNudiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlc0FycmF5LCBpbnQgYnl0ZXNCZWdpbiwgaW50IGJ5dGVzTGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUJ1ZmZlciBvdXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc291cmNlSW5kZXgpeworCisgICAgICAgIC8vd3JpdGUgYnl0ZXMKKyAgICAgICAgaW50IG9ibCA9IGJ5dGVzTGVuZ3RoOworICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgaW50IGJ5dGVzTGltaXQgPSBieXRlc0JlZ2luICsgYnl0ZXNMZW5ndGg7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvciAoO2J5dGVzQmVnaW48IGJ5dGVzTGltaXQ7KXsKKyAgICAgICAgICAgICAgICBvdXQucHV0KGJ5dGVzQXJyYXlbYnl0ZXNCZWdpbl0pOworICAgICAgICAgICAgICAgIGJ5dGVzQmVnaW4rKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHN1Y2Nlc3MgCisgICAgICAgICAgICBieXRlc0xlbmd0aD0wOworICAgICAgICB9Y2F0Y2goIEJ1ZmZlck92ZXJmbG93RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgCisgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgIHdoaWxlKG9ibD5ieXRlc0xlbmd0aCkgeworICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAtLW9ibDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvL3dyaXRlIG92ZXJmbG93IAorICAgICAgICBjbnYuZXJyb3JCdWZmZXJMZW5ndGggPSBieXRlc0xpbWl0IC0gYnl0ZXNCZWdpbjsKKyAgICAgICAgaWYoY252LmVycm9yQnVmZmVyTGVuZ3RoID4wKSB7CisgICAgICAgICAgICBpZihjbnYhPW51bGwpIHsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSAwOyAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUoYnl0ZXNCZWdpbjxieXRlc0xpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGNudi5lcnJvckJ1ZmZlcltpbmRleCsrXT1ieXRlc0FycmF5W2J5dGVzQmVnaW4rK107CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICBjcjsKKyAgICB9ICAgCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcnMgaGVsZCBpbiB0aGUgY29udmVydGVyJ3MgaW50ZXJuYWwgc3RhdGUKKyAgICAgKiBiZWNhdXNlIG1vcmUgaW5wdXQgaXMgbmVlZGVkIGZvciBjb21wbGV0aW5nIHRoZSBjb252ZXJzaW9uLiBUaGlzIGZ1bmN0aW9uIGlzIAorICAgICAqIHVzZWZ1bCBmb3IgbWFwcGluZyBzZW1hbnRpY3Mgb2YgSUNVJ3MgY29udmVydGVyIGludGVyZmFjZSB0byB0aG9zZSBvZiBpY29udiwKKyAgICAgKiBhbmQgdGhpcyBpbmZvcm1hdGlvbiBpcyBub3QgbmVlZGVkIGZvciBub3JtYWwgY29udmVyc2lvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgY2hhcnMgaW4gdGhlIHN0YXRlLiAtMSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIC8qcHVibGljKi8gaW50IGZyb21VQ291bnRQZW5kaW5nKCl7ICAgIAorICAgICAgICBpZihwcmVGcm9tVUxlbmd0aCA+IDApeworICAgICAgICAgICAgcmV0dXJuIFVURjE2LmdldENoYXJDb3VudChwcmVGcm9tVUZpcnN0Q1ApK3ByZUZyb21VTGVuZ3RoIDsKKyAgICAgICAgfWVsc2UgaWYocHJlRnJvbVVMZW5ndGggPCAwKXsKKyAgICAgICAgICAgIHJldHVybiAtcHJlRnJvbVVMZW5ndGggOworICAgICAgICB9ZWxzZSBpZihmcm9tVUNoYXIzMiA+IDApeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH1lbHNlIGlmKHByZUZyb21VRmlyc3RDUCA+MCl7CisgICAgICAgICAgICByZXR1cm4gVVRGMTYuZ2V0Q2hhckNvdW50KHByZUZyb21VRmlyc3RDUCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7IAorICAgICB9CisgICAgLyoqCisgICAgICogCisgICAgICogQHBhcmFtIHNvdXJjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBzZXRTb3VyY2VQb3NpdGlvbihDaGFyQnVmZmVyIHNvdXJjZSl7CisgICAgICAgIAorICAgICAgICAvLyBvayB3YXMgdGhlcmUgaW5wdXQgaGVsZCBpbiB0aGUgcHJldmlvdXMgaW52b2NhdGlvbiBvZiBkZWNvZGVMb29wIAorICAgICAgICAvLyB0aGF0IHJlc3VsdGVkIGluIG91dHB1dCBpbiB0aGlzIGludm9jYXRpb24/CisgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSAtIGZyb21VQ291bnRQZW5kaW5nKCkpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgY29kZXBhZ2Ugc3Vic3RpdHV0aW9uIGNoYXJhY3Rlci4KKyAgICAgKiBTdWJjbGFzc2VzIHRvIG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqIEZvciBzdGF0ZWZ1bCBjb252ZXJ0ZXJzLCBpdCBpcyB0eXBpY2FsbHkgbmVjZXNzYXJ5IHRvIGhhbmRsZSB0aGlzCisgICAgICogc3BlY2lmaWNpYWxseSBmb3IgdGhlIGNvbnZlcnRlciBpbiBvcmRlciB0byBwcm9wZXJseSBtYWludGFpbiB0aGUgc3RhdGUuCisgICAgICogQHBhcmFtIHNvdXJjZSBUaGUgaW5wdXQgY2hhcmFjdGVyIGJ1ZmZlcgorICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIG91dHB1dCBieXRlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXRzCisgICAgICogQHJldHVybiBBIENvZGVyUmVzdWx0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlcnJvciByZXN1bHQgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgQ29kZXJSZXN1bHQgY2JGcm9tVVdyaXRlU3ViIChDaGFyc2V0RW5jb2RlcklDVSBlbmNvZGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludEJ1ZmZlciBvZmZzZXRzKXsKKyAgICAgICAgQ2hhcnNldElDVSBjcyA9IChDaGFyc2V0SUNVKSBlbmNvZGVyLmNoYXJzZXQoKTsKKyAgICAgICAgYnl0ZVtdIHN1YiA9IGVuY29kZXIucmVwbGFjZW1lbnQoKTsKKyAgICAgICAgaWYgKGNzLnN1YkNoYXIxICE9IDAgJiYgZW5jb2Rlci5pbnZhbGlkVUNoYXJCdWZmZXJbMF0gPD0gMHhmZikgeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRFbmNvZGVySUNVLmZyb21VV3JpdGVCeXRlcyhlbmNvZGVyLAorICAgICAgICAgICAgICAgICAgICBuZXcgYnl0ZVtdIHsgY3Muc3ViQ2hhcjEgfSwgMCwgMSwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAucG9zaXRpb24oKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gQ2hhcnNldEVuY29kZXJJQ1UuZnJvbVVXcml0ZUJ5dGVzKGVuY29kZXIsIHN1YiwgMCwKKyAgICAgICAgICAgICAgICAgICAgc3ViLmxlbmd0aCwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0SUNVLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0SUNVLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE0MjllYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRJQ1UuamF2YQpAQCAtMCwwICsxLDIzMyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCisKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5Db25zdHJ1Y3RvcjsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0OworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuSWxsZWdhbENoYXJzZXROYW1lRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworLyoqCisgKiA8cD5BIHN1YmNsYXNzIG9mIGphdmEubmlvLkNoYXJzZXQgZm9yIHByb3ZpZGluZyBpbXBsZW1lbnRhdGlvbiBvZiBJQ1UncyBjaGFyc2V0IGNvbnZlcnRlcnMuCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGNvbnZlcnQgY29kZXBhZ2Ugb3IgY2hhcmFjdGVyIGVuY29kZWQgZGF0YSB0byBhbmQKKyAqIGZyb20gVVRGLTE2LiBZb3UgY2FuIG9wZW4gYSBjb252ZXJ0ZXIgd2l0aCB7QGxpbmsgQ2hhcnNldCNmb3JOYW1lIH0gYW5kIHtAbGluayAjZm9yTmFtZUlDVSB9LiBXaXRoIHRoYXQKKyAqIGNvbnZlcnRlciwgeW91IGNhbiBnZXQgaXRzIHByb3BlcnRpZXMsIHNldCBvcHRpb25zLCBjb252ZXJ0IHlvdXIgZGF0YS48L3A+CisgKgorICogPHA+U2luY2UgbWFueSBzb2Z0d2FyZSBwcm9ncmFtcyByZWNvZ2l6ZSBkaWZmZXJlbnQgY29udmVydGVyIG5hbWVzIGZvcgorICogZGlmZmVyZW50IHR5cGVzIG9mIGNvbnZlcnRlcnMsIHRoZXJlIGFyZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBBUEkgdG8KKyAqIGl0ZXJhdGUgb3ZlciB0aGUgY29udmVydGVyIGFsaWFzZXMuIAorICogCisgKiBAZHJhZnQgSUNVIDMuNgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBDaGFyc2V0SUNVIGV4dGVuZHMgQ2hhcnNldHsKKwkKKyAgICAgU3RyaW5nIGljdUNhbm9uaWNhbE5hbWU7CisgICAgIFN0cmluZyBqYXZhQ2Fub25pY2FsTmFtZTsKKyAgICAgaW50IG9wdGlvbnM7CisKKyAgICAgZmxvYXQgIG1heENoYXJzUGVyQnl0ZTsKKyAgICAKKyAgICAgYm9vbGVhbiB1c2VGYWxsYmFjazsKKyAgICAKKyAgICAgU3RyaW5nIG5hbWU7IC8qICs0OiA2MCAgaW50ZXJuYWwgbmFtZSBvZiB0aGUgY29udmVydGVyLSBpbnZhcmlhbnQgY2hhcnMgKi8KKworICAgICBpbnQgY29kZXBhZ2U7ICAgICAgICAgICAgICAgLyogKzY0OiA0IGNvZGVwYWdlICMgKG5vdyBJQk0tJGNvZGVwYWdlKSAqLworCisgICAgIGJ5dGUgcGxhdGZvcm07ICAgICAgICAgICAgICAgIC8qICs2ODogMSBwbGF0Zm9ybSBvZiB0aGUgY29udmVydGVyIChvbmx5IElCTSBub3cpICovCisgICAgIGJ5dGUgY29udmVyc2lvblR5cGU7ICAgICAgICAgIC8qICs2OTogMSBjb252ZXJzaW9uIHR5cGUgKi8KKworICAgICBpbnQgbWluQnl0ZXNQZXJDaGFyOyAgICAgICAgIC8qICs3MDogMSBNaW5pbXVtICMgYnl0ZXMgcGVyIGNoYXIgaW4gdGhpcyBjb2RlcGFnZSAqLworICAgICBpbnQgbWF4Qnl0ZXNQZXJDaGFyOyAgICAgICAgIC8qICs3MTogMSBNYXhpbXVtICMgYnl0ZXMgb3V0cHV0IHBlciBVQ2hhciBpbiB0aGlzIGNvZGVwYWdlICovCisKKyAgICAgYnl0ZSBzdWJDaGFyWy8qVUNOVl9NQVhfU1VCQ0hBUl9MRU4qL107IC8qICs3MjogNCAgW25vdGU6ICA0IGFuZCA4IGJ5dGUgYm91bmRhcnldICovCisgICAgIGJ5dGUgc3ViQ2hhckxlbjsgICAgICAgICAgICAgIC8qICs3NjogMSAqLworICAgIAorICAgICBieXRlIGhhc1RvVW5pY29kZUZhbGxiYWNrOyAgIC8qICs3NzogMSBVQm9vbCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFVCb29sIHRvIGJlIGNvbnNpc3RlbnQgYWNyb3NzIHBsYXRmb3JtICovCisgICAgIGJ5dGUgaGFzRnJvbVVuaWNvZGVGYWxsYmFjazsgLyogKzc4OiAxICovCisgICAgIHNob3J0IHVuaWNvZGVNYXNrOyAgICAgICAgICAgIC8qICs3OTogMSAgYml0IDA6IGhhcyBzdXBwbGVtZW50YXJ5ICBiaXQgMTogaGFzIHNpbmdsZSBzdXJyb2dhdGVzICovCisgICAgIGJ5dGUgc3ViQ2hhcjE7ICAgICAgICAgICAgICAgLyogKzgwOiAxICBzaW5nbGUtYnl0ZSBzdWJzdGl0dXRpb24gY2hhcmFjdGVyIGZvciBJQk0gTUJDUyAoMCBpZiBub25lKSAqLworICAgICBieXRlIHJlc2VydmVkWy8qMTkqL107ICAgICAgICAgICAvKiArODE6IDE5IHRvIHJvdW5kIG91dCB0aGUgc3RydWN0dXJlICovCisgICAgIAorICAgICBib29sZWFuIHdyaXRlQk9NID0gZmFsc2U7IC8qIG9ubHkgdXNlZCBieSBVVEYtMTYsIFVURi0zMiAqLworICAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaWN1Q2Fub25pY2FsTmFtZQorICAgICAqIEBwYXJhbSBjYW5vbmljYWxOYW1lCisgICAgICogQHBhcmFtIGFsaWFzZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBDaGFyc2V0SUNVKFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgY2Fub25pY2FsTmFtZSwgU3RyaW5nW10gYWxpYXNlcykgeworCQlzdXBlcihjYW5vbmljYWxOYW1lLGFsaWFzZXMpOworICAgICAgICBpZihjYW5vbmljYWxOYW1lLmxlbmd0aCgpID09IDApeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxDaGFyc2V0TmFtZUV4Y2VwdGlvbihjYW5vbmljYWxOYW1lKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmphdmFDYW5vbmljYWxOYW1lID0gY2Fub25pY2FsTmFtZTsKKyAgICAgICAgdGhpcy5pY3VDYW5vbmljYWxOYW1lICA9IGljdUNhbm9uaWNhbE5hbWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFzY2VydGFpbnMgaWYgYSBjaGFyc2V0IGlzIGEgc3ViIHNldCBvZiB0aGlzIGNoYXJzZXQKKyAgICAgKiBJbXBsZW1lbnRzIHRoZSBhYnN0cmFjdCBtZXRob2Qgb2Ygc3VwZXIgY2xhc3MuCisgICAgICogQHBhcmFtIGNzIGNoYXJzZXQgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gY2hhcnNldCBpcyBhIHN1YnNldCBvZiB0aGlzIGNoYXJzZXQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhDaGFyc2V0IGNzKXsKKyAgICAgICAgaWYgKG51bGwgPT0gY3MpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVxdWFscyhjcykpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaE1hcCBhbGdvcml0aG1pY0NoYXJzZXRzID0gbmV3IEhhc2hNYXAoKTsKKyAgICBzdGF0aWN7CisgICAgICAgIC8qYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIkJPQ1UtMSIsICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRCT0NVMSIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIkNFU1UtOCIsICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRDRVNVOCIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIkhaIiwgICAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRIWiIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoImltYXBtYWlsYm94bmFtZSIsICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRJTUFQIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiSVNDSUkiLCAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldElTQ0lJIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiaXNvMjAyMiIsICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldElTTzIwMjIiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczEiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MxIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3MxMSIsICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTMTEiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczE2IiwgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MxNiIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoImxtYmNzMTciLCAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRMTUJDUzE3IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3MxOCIsICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTMTgiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczE5IiwgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MxOSIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoImxtYmNzMiIsICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRMTUJDUzIiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczMiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MzIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3M0IiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTNCIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoImxtYmNzNSIsICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRMTUJDUzUiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczYiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1M2IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3M4IiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTOCIgKQorICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgic2NzdSIsICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFNDU1UiICk7ICovCisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVUy1BU0NJSSIsICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0QVNDSUkiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJJU08tODg1OS0xIiwgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0ODg1OTEiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYtMTYiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMTYiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYtMTZCRSIsICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMTYiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYtMTZMRSIsICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMTZMRSIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIlVURjE2X09wcG9zaXRlRW5kaWFuIiwgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRVVEYxNkxFIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGMTZfUGxhdGZvcm1FbmRpYW4iLCAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjE2IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTMyIiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjMyIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTMyQkUiLCAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjMyIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTMyTEUiLCAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjMyTEUiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYzMl9QbGF0Zm9ybUVuZGlhbiIsICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMzJMRSIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIlVURjMyX09wcG9zaXRlRW5kaWFuIiwgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRVVEYzMiIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIlVURi03IiwgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRVVEY3IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTgiLCAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjgiICk7CisgICAgfQorCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgQ2hhcnNldCBnZXRDaGFyc2V0KFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpeworICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSAoU3RyaW5nKSBhbGdvcml0aG1pY0NoYXJzZXRzLmdldChpY3VDYW5vbmljYWxOYW1lKTsKKyAgICAgICBpZihjbGFzc05hbWU9PW51bGwpeworICAgICAgICAgICAvL2FsbCB0aGUgY252IGZpbGVzIGFyZSBsb2FkZWQgYXMgTUJDUworICAgICAgICAgICBjbGFzc05hbWUgPSAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TUJDUyI7CisgICAgICAgfQorICAgICAgIHRyeXsKKyAgICAgICAgICAgQ2hhcnNldElDVSBjb252ID0gbnVsbDsKKyAgICAgICAgICAgQ2xhc3MgY3MgPSBDbGFzcy5mb3JOYW1lKGNsYXNzTmFtZSk7CisgICAgICAgICAgIENsYXNzW10gcGFyYW1UeXBlcyA9IG5ldyBDbGFzc1tdeyBTdHJpbmcuY2xhc3MsIFN0cmluZy5jbGFzcywgIFN0cmluZ1tdLmNsYXNzfTsKKyAgICAgICAgICAgZmluYWwgQ29uc3RydWN0b3IgYyA9IGNzLmdldENvbnN0cnVjdG9yKHBhcmFtVHlwZXMpOworICAgICAgICAgICBPYmplY3RbXSBwYXJhbXMgPSBuZXcgT2JqZWN0W117IGljdUNhbm9uaWNhbE5hbWUsIGphdmFDYW5vbmljYWxOYW1lLCBhbGlhc2VzfTsKKyAgICAgICAgICAgCisgICAgICAgICAgIC8vIFJ1biBjb25zdHJ1Y3RvcgorICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgT2JqZWN0IG9iaiA9IGMubmV3SW5zdGFuY2UocGFyYW1zKTsKKyAgICAgICAgICAgICAgIGlmKG9iaiE9bnVsbCAmJiBvYmogaW5zdGFuY2VvZiBDaGFyc2V0SUNVKXsKKyAgICAgICAgICAgICAgICAgICBjb252ID0gKENoYXJzZXRJQ1Upb2JqOworICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252OworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9Y2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiggaWN1Q2Fub25pY2FsTmFtZSsiOiAiKyJDb3VsZCBub3QgbG9hZCAiICsgY2xhc3NOYW1lKyAiLiBFeGNlcHRpb246IiArIGUuZ2V0VGFyZ2V0RXhjZXB0aW9uKCkpOyAgICAKKyAgICAgICAgICAgfQorICAgICAgIH1jYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGV4KXsKKyAgICAgICB9Y2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGV4KXsKKyAgICAgICB9Y2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZXgpeyAKKyAgICAgICB9Y2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZXgpeyAKKyAgICAgICB9CisgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiggaWN1Q2Fub25pY2FsTmFtZSsiOiAiKyJDb3VsZCBub3QgbG9hZCAiICsgY2xhc3NOYW1lKTsgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzU3Vycm9nYXRlKGludCBjKXsKKyAgICAgICAgcmV0dXJuICgoKGMpJjB4ZmZmZmY4MDApPT0weGQ4MDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBbHdheXMgdXNlIGZhbGxiYWNrcyBmcm9tIGNvZGVwYWdlIHRvIFVuaWNvZGU/CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBmaW5hbCBib29sZWFuIGlzVG9VVXNlRmFsbGJhY2soKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgICogVXNlIGZhbGxiYWNrcyBmcm9tIFVuaWNvZGUgdG8gY29kZXBhZ2Ugd2hlbiB1c2VGYWxsYmFjayBvciBmb3IgcHJpdmF0ZS11c2UgY29kZSBwb2ludHMKKyAgICAgKiBAcGFyYW0gYyBBIGNvZGVwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgZmluYWwgYm9vbGVhbiBpc0Zyb21VVXNlRmFsbGJhY2soaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICh1c2VGYWxsYmFjaykgfHwgaXNQcml2YXRlVXNlKGMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IGNoYXJzZXQgbmFtZSAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGdldERlZmF1bHRDaGFyc2V0TmFtZSgpeworICAgICAgICBTdHJpbmcgZGVmYXVsdEVuY29kaW5nID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShuZXcgYnl0ZVswXSkpLmdldEVuY29kaW5nKCk7CisgICAgICAgIHJldHVybiBkZWZhdWx0RW5jb2Rpbmc7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzUHJpdmF0ZVVzZShpbnQgYykgeworICAgICAgICByZXR1cm4gKFVDaGFyYWN0ZXIuZ2V0VHlwZShjKSA9PSBVQ2hhcmFjdGVyLlBSSVZBVEVfVVNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY2hhcnNldCBvYmplY3QgZm9yIHRoZSBuYW1lZCBjaGFyc2V0LgorICAgICAqIFRoaXMgbWV0aG9kIGd1cmFudGVlIHRoYXQgSUNVIGNoYXJzZXQgaXMgcmV0dXJuZWQgd2hlbgorICAgICAqIGF2YWlsYWJsZS4gIElmIHRoZSBJQ1UgY2hhcnNldCBwcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0CisgICAgICogdGhlIHNwZWNpZmllZCBjaGFyc2V0LCB0aGVuIHRyeSBvdGhlciBjaGFyc2V0IHByb3ZpZGVycworICAgICAqIGluY2x1ZGluZyB0aGUgc3RhbmRhcmQgSmF2YSBjaGFyc2V0IHByb3ZpZGVyLgorICAgICAqIAorICAgICAqIEBwYXJhbSBjaGFyc2V0TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGNoYXJzZXQsCisgICAgICogbWF5IGJlIGVpdGhlciBhIGNhbm9uaWNhbCBuYW1lIG9yIGFuIGFsaWFzCisgICAgICogQHJldHVybiBBIGNoYXJzZXQgb2JqZWN0IGZvciB0aGUgbmFtZWQgY2hhcnNldAorICAgICAqIEB0aHJvd3MgSWxsZWdhbENoYXJzZXROYW1lRXhjZXB0aW9uIElmIHRoZSBnaXZlbiBjaGFyc2V0IG5hbWUKKyAgICAgKiBpcyBpbGxlZ2FsCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24gSWYgbm8gc3VwcG9ydCBmb3IgdGhlCisgICAgICogbmFtZWQgY2hhcnNldCBpcyBhdmFpbGFibGUgaW4gdGhpcyBpbnN0YW5jZSBvZiB0aCBKYXZhCisgICAgICogdmlydHVhbCBtYWNoaW5lCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIENoYXJzZXQgZm9yTmFtZUlDVShTdHJpbmcgY2hhcnNldE5hbWUpIHRocm93cyBJbGxlZ2FsQ2hhcnNldE5hbWVFeGNlcHRpb24sIFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiB7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBpY3VQcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldElDVSBjcyA9IChDaGFyc2V0SUNVKSBpY3VQcm92aWRlci5jaGFyc2V0Rm9yTmFtZShjaGFyc2V0TmFtZSk7CisgICAgICAgIGlmIChjcyAhPSBudWxsKSB7CisgICAgICAgICAgICBjcy53cml0ZUJPTSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gY3M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIENoYXJzZXQuZm9yTmFtZShjaGFyc2V0TmFtZSk7CisgICAgfQorICAgIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0TUJDUy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldE1CQ1MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2MzNzhjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldE1CQ1MuamF2YQpAQCAtMCwwICsxLDM3MDcgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLm5pby5CdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQnVmZmVyT3ZlcmZsb3dFeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmNoYXJzZXQuVUNvbnZlcnRlclNoYXJlZERhdGEuVUNvbnZlcnRlclR5cGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnZhbGlkRm9ybWF0RXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitjbGFzcyBDaGFyc2V0TUJDUyBleHRlbmRzIENoYXJzZXRJQ1UgeworCisgICAgcHJvdGVjdGVkIGJ5dGVbXSAgICAgICAgICAgICAgICBmcm9tVVN1YnN0aXR1dGlvbiA9IG51bGw7CisgICAgcHJvdGVjdGVkIFVDb252ZXJ0ZXJTaGFyZWREYXRhICBzaGFyZWREYXRhID0gbnVsbDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWF9WRVJTSU9OX0xFTkdUSD00OworICAgIC8qKgorICAgICAqIEZhbGxiYWNrcyB0byBVbmljb2RlIGFyZSBzdG9yZWQgb3V0c2lkZSB0aGUgbm9ybWFsIHN0YXRlIHRhYmxlIGFuZCBjb2RlIHBvaW50IHN0cnVjdHVyZXMKKyAgICAgKiBpbiBhIHZlY3RvciBvZiBpdGVtcyBvZiB0aGlzIHR5cGUuIFRoZXkgYXJlIHNvcnRlZCBieSBvZmZzZXQuCisgICAgICovCisgICAgZmluYWwgY2xhc3MgTUJDU1RvVUZhbGxiYWNrIHsKKyAgICAgICAgaW50IG9mZnNldDsKKyAgICAgICAgaW50IGNvZGVQb2ludDsKKyAgICB9CisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgTUJDUyBwYXJ0IG9mIHRoZSBVQ29udmVydGVyVGFibGUgdW5pb24gKGEgcnVudGltZSBkYXRhIHN0cnVjdHVyZSkuCisgICAgICogSXQga2VlcHMgYWxsIHRoZSBwZXItY29udmVydGVyIGRhdGEgYW5kIHBvaW50cyBpbnRvIHRoZSBsb2FkZWQgbWFwcGluZyB0YWJsZXMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFVDb252ZXJ0ZXJNQkNTVGFibGUgeworICAgICAgICAvKiB0b1VuaWNvZGUgKi8KKyAgICAgICAgc2hvcnQgY291bnRTdGF0ZXM7CisgICAgICAgIGJ5dGUgZGJjc09ubHlTdGF0ZTsKKyAgICAgICAgYm9vbGVhbiBzdGF0ZVRhYmxlT3duZWQ7CisgICAgICAgIGludCBjb3VudFRvVUZhbGxiYWNrczsKKyAgICAKKyAgICAgICAgaW50IHN0YXRlVGFibGVbLypjb3VudFN0YXRlcyovXVsvKjI1NiovXTsKKyAgICAgICAgaW50IHN3YXBMRk5MU3RhdGVUYWJsZVsvKmNvdW50U3RhdGVzKi9dWy8qMjU2Ki9dOyAvKiBmb3Igc3dhcGxmbmwgKi8KKyAgICAgICAgY2hhciB1bmljb2RlQ29kZVVuaXRzWy8qY291bnRVbmljb2RlUmVzdWx0cyovXTsKKyAgICAgICAgTUJDU1RvVUZhbGxiYWNrIHRvVUZhbGxiYWNrc1svKmNvdW50VG9VRmFsbGJhY2tzKi9dOworICAgIAorICAgICAgICAvKiBmcm9tVW5pY29kZSAqLworICAgICAgICBjaGFyIGZyb21Vbmljb2RlVGFibGVbXTsKKyAgICAgICAgYnl0ZSBmcm9tVW5pY29kZUJ5dGVzW107CisgICAgICAgIGJ5dGUgc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzW107IC8qIGZvciBzd2FwbGZubCAqLworICAgICAgICBpbnQgZnJvbVVCeXRlc0xlbmd0aDsKKyAgICAgICAgc2hvcnQgb3V0cHV0VHlwZSwgdW5pY29kZU1hc2s7CisgICAgCisgICAgICAgIC8qIGNvbnZlcnRlciBuYW1lIGZvciBzd2FwbGZubCAqLworICAgICAgICBTdHJpbmcgc3dhcExGTkxOYW1lOworICAgIAorICAgICAgICAvKiBleHRlbnNpb24gZGF0YSAqLworICAgICAgICBVQ29udmVydGVyU2hhcmVkRGF0YSBiYXNlU2hhcmVkRGF0YTsKKyAgICAgICAgLy9pbnQgZXh0SW5kZXhlc1tdOworICAgICAgICBCeXRlQnVmZmVyIGV4dEluZGV4ZXM7IC8vIGNyZWF0ZSBpbnRbXSB2aWV3IGV0Yy4gYXMgbmVlZGVkCisKKyAgICAgICAgVUNvbnZlcnRlck1CQ1NUYWJsZSgpCisgICAgICAgIHsKKyAgICAgICAgfQorCisvKiAgICAgICAgVUNvbnZlcnRlck1CQ1NUYWJsZShVQ29udmVydGVyTUJDU1RhYmxlIHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvdW50U3RhdGVzID0gdC5jb3VudFN0YXRlczsKKyAgICAgICAgICAgIGRiY3NPbmx5U3RhdGUgPSB0LmRiY3NPbmx5U3RhdGU7CisgICAgICAgICAgICBzdGF0ZVRhYmxlT3duZWQgPSB0LnN0YXRlVGFibGVPd25lZDsKKyAgICAgICAgICAgIGNvdW50VG9VRmFsbGJhY2tzID0gdC5jb3VudFRvVUZhbGxiYWNrczsKKyAgICAgICAgICAgIHN0YXRlVGFibGUgPSB0LnN0YXRlVGFibGU7CisgICAgICAgICAgICBzd2FwTEZOTFN0YXRlVGFibGUgPSB0LnN3YXBMRk5MU3RhdGVUYWJsZTsKKyAgICAgICAgICAgIHVuaWNvZGVDb2RlVW5pdHMgPSB0LnVuaWNvZGVDb2RlVW5pdHM7CisgICAgICAgICAgICB0b1VGYWxsYmFja3MgPSB0LnRvVUZhbGxiYWNrczsKKyAgICAgICAgICAgIGZyb21Vbmljb2RlVGFibGUgPSB0LmZyb21Vbmljb2RlVGFibGU7CisgICAgICAgICAgICBmcm9tVW5pY29kZUJ5dGVzID0gdC5mcm9tVW5pY29kZUJ5dGVzOworICAgICAgICAgICAgc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzID0gdC5zd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXM7CisgICAgICAgICAgICBmcm9tVUJ5dGVzTGVuZ3RoID0gdC5mcm9tVUJ5dGVzTGVuZ3RoOworICAgICAgICAgICAgb3V0cHV0VHlwZSA9IHQub3V0cHV0VHlwZTsKKyAgICAgICAgICAgIHVuaWNvZGVNYXNrID0gdC51bmljb2RlTWFzazsKKyAgICAgICAgICAgIHN3YXBMRk5MTmFtZSA9IHQuc3dhcExGTkxOYW1lOworICAgICAgICAgICAgYmFzZVNoYXJlZERhdGEgPSB0LmJhc2VTaGFyZWREYXRhOworICAgICAgICAgICAgZXh0SW5kZXhlcyA9IHQuZXh0SW5kZXhlczsKKyAgICAgICAgfSovCisgICAgfQorCisgICAgLyoqCisgICAgICogTUJDUyBkYXRhIGhlYWRlci4gU2VlIGRhdGEgZm9ybWF0IGRlc2NyaXB0aW9uIGFib3ZlLgorICAgICAqLworICAgIGZpbmFsIGNsYXNzIE1CQ1NIZWFkZXIgeworICAgICAgICBieXRlIHZlcnNpb25bLypVX01BWF9WRVJTSU9OX0xFTkdUSCovXTsKKyAgICAgICAgaW50IGNvdW50U3RhdGVzLCBjb3VudFRvVUZhbGxiYWNrcywgb2Zmc2V0VG9VQ29kZVVuaXRzLCBvZmZzZXRGcm9tVVRhYmxlLCBvZmZzZXRGcm9tVUJ5dGVzOworICAgICAgICBpbnQgZmxhZ3M7CisgICAgICAgIGludCBmcm9tVUJ5dGVzTGVuZ3RoOworCisgICAgICAgIE1CQ1NIZWFkZXIoKQorICAgICAgICB7CisgICAgICAgICAgICB2ZXJzaW9uID0gbmV3IGJ5dGVbTUFYX1ZFUlNJT05fTEVOR1RIXTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBUYWdzIGZvciBwYWNpZnlpbmcgdGhlIGNoZWNrIHRhZ3MgdG9vbAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoYXJzZXRNQkNTKFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpIHRocm93cyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9ueworICAgICAgICBzdXBlcihpY3VDYW5vbmljYWxOYW1lLCBqYXZhQ2Fub25pY2FsTmFtZSwgYWxpYXNlcyk7CisgICAgICAgIAorICAgICAgICAvLyBub3cgdHJ5IHRvIGxvYWQgdGhlIGRhdGEgICAKKyAgICAgICAgTG9hZEFyZ3VtZW50cyBhcmdzID0gbmV3IExvYWRBcmd1bWVudHMoMSwgaWN1Q2Fub25pY2FsTmFtZSk7CisgICAgICAgIHNoYXJlZERhdGEgPSBsb2FkQ29udmVydGVyKGFyZ3MpOworICAgICAgICAgICAKKyAgICAgICAgbWF4Qnl0ZXNQZXJDaGFyID0gc2hhcmVkRGF0YS5zdGF0aWNEYXRhLm1heEJ5dGVzUGVyQ2hhcjsKKyAgICAgICAgbWluQnl0ZXNQZXJDaGFyID0gc2hhcmVkRGF0YS5zdGF0aWNEYXRhLm1pbkJ5dGVzUGVyQ2hhcjsKKyAgICAgICAgbWF4Q2hhcnNQZXJCeXRlID0gMTsKKyAgICAgICAgZnJvbVVTdWJzdGl0dXRpb24gPSBzaGFyZWREYXRhLnN0YXRpY0RhdGEuc3ViQ2hhcjsKKyAgICAgICAgc3ViQ2hhciA9IHNoYXJlZERhdGEuc3RhdGljRGF0YS5zdWJDaGFyOworICAgICAgICBzdWJDaGFyTGVuID0gc2hhcmVkRGF0YS5zdGF0aWNEYXRhLnN1YkNoYXJMZW47CisgICAgICAgIHN1YkNoYXIxID0gc2hhcmVkRGF0YS5zdGF0aWNEYXRhLnN1YkNoYXIxOworICAgICAgICBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW3NoYXJlZERhdGEuc3RhdGljRGF0YS5zdWJDaGFyTGVuXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzaGFyZWREYXRhLnN0YXRpY0RhdGEuc3ViQ2hhciwgMCwgZnJvbVVTdWJzdGl0dXRpb24sIDAsIHNoYXJlZERhdGEuc3RhdGljRGF0YS5zdWJDaGFyTGVuKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRvZG86IHBhc3Mgb3B0aW9ucworICAgICAgICBpbml0aWFsaXplQ29udmVydGVyKDApOworICAgIH0KKyAgICAKKyAgICBjbGFzcyBMb2FkQXJndW1lbnRzCisgICAgeworICAgICAgICBpbnQgbmVzdGVkTG9hZHM7ICAgICAgICAvKiBjb3VudCBuZXN0ZWQgbG9hZENvbnZlcnRlcigpIGNhbGxzICovCisgICAgICAgIC8vIGludCByZXNlcnZlZDsgICAgICAgIC8qIHJlc2VydmVkIC0gZm9yIGdvb2QgYWxpZ25tZW50IG9mIHRoZSBwb2ludGVycyAqLworICAgICAgICAvLyBsb25nIG9wdGlvbnM7CisgICAgICAgIC8vIFN0cmluZyBwa2c7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAKKyAgICAgICAgTG9hZEFyZ3VtZW50cyhpbnQgbmVzdGVkTG9hZHMsIFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLm5lc3RlZExvYWRzID0gbmVzdGVkTG9hZHM7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIFVDb252ZXJ0ZXJTaGFyZWREYXRhIGxvYWRDb252ZXJ0ZXIoTG9hZEFyZ3VtZW50cyBhcmdzKSB0aHJvd3MgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbgorICAgIHsgICAgICAgIAorICAgICAgICAvLyBSZWFkIGNvbnZlcnRlciBkYXRhIGZyb20gZmlsZSAgICAgICAgCisgICAgICAgIFVDb252ZXJ0ZXJTdGF0aWNEYXRhIHN0YXRpY0RhdGEgPSBuZXcgVUNvbnZlcnRlclN0YXRpY0RhdGEoKTsKKyAgICAgICAgVUNvbnZlcnRlckRhdGFSZWFkZXIgcmVhZGVyID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGkgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUgKyAiLyIgKyBhcmdzLm5hbWUgKyAiLiIgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5EQVRBX1RZUEUpOworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSwgVUNvbnZlcnRlckNvbnN0YW50cy5DTlZfREFUQV9CVUZGRVJfU0laRSk7CisgICAgICAgICAgICByZWFkZXIgPSBuZXcgVUNvbnZlcnRlckRhdGFSZWFkZXIoYik7CisgICAgICAgICAgICByZWFkZXIucmVhZFN0YXRpY0RhdGEoc3RhdGljRGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBVQ29udmVydGVyU2hhcmVkRGF0YSBkYXRhID0gbnVsbDsKKyAgICAgICAgaW50IHR5cGUgPSBzdGF0aWNEYXRhLmNvbnZlcnNpb25UeXBlOworICAgIAorICAgICAgICBpZiggdHlwZSAhPSBVQ29udmVydGVyU2hhcmVkRGF0YS5VQ29udmVydGVyVHlwZS5NQkNTIHx8CisgICAgICAgICAgICBzdGF0aWNEYXRhLnN0cnVjdFNpemUgIT0gVUNvbnZlcnRlclNoYXJlZERhdGEuU0laRV9PRl9VQ09OVkVSVEVSX1NIQVJFRF9EQVRBKSAKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBkYXRhID0gbmV3IFVDb252ZXJ0ZXJTaGFyZWREYXRhKFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNJWkVfT0ZfVUNPTlZFUlRFUl9TSEFSRURfREFUQSwgMSwgbnVsbCwgZmFsc2UsIDApOworICAgICAgICBkYXRhLmRhdGFSZWFkZXIgPSByZWFkZXI7CisgICAgICAgIGRhdGEuc3RhdGljRGF0YSA9IHN0YXRpY0RhdGE7ICAgIAorICAgICAgICBkYXRhLnNoYXJlZERhdGFDYWNoZWQgPSBmYWxzZTsKKyAgICAKKyAgICAgICAgLy8gTG9hZCBkYXRhCisgICAgICAgIFVDb252ZXJ0ZXJNQkNTVGFibGUgbWJjc1RhYmxlID0gZGF0YS5tYmNzOworICAgICAgICBNQkNTSGVhZGVyIGhlYWRlciA9IG5ldyBNQkNTSGVhZGVyKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZWFkZXIucmVhZE1CQ1NIZWFkZXIoaGVhZGVyKTsgIAorICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBvZmZzZXQ7ICAgIAorICAgICAgICAvL2ludFtdIGV4dEluZGV4ZXNBcnJheSA9IG51bGw7CisgICAgICAgIFN0cmluZyBiYXNlTmFtZVN0cmluZyA9IG51bGw7CisgICAgICAgIGludFtdW10gc3RhdGVUYWJsZUFycmF5ID0gbnVsbDsKKyAgICAgICAgTUJDU1RvVUZhbGxiYWNrW10gdG9VRmFsbGJhY2tzQXJyYXkgPSBudWxsOworICAgICAgICBjaGFyW10gdW5pY29kZUNvZGVVbml0c0FycmF5ID0gbnVsbDsKKyAgICAgICAgY2hhcltdIGZyb21Vbmljb2RlVGFibGVBcnJheSA9IG51bGw7CisgICAgICAgIGJ5dGVbXSBmcm9tVW5pY29kZUJ5dGVzQXJyYXkgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgIGlmKGhlYWRlci52ZXJzaW9uWzBdIT00KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgCisgICAgICAgIG1iY3NUYWJsZS5vdXRwdXRUeXBlPShieXRlKWhlYWRlci5mbGFnczsKKyAgICAKKyAgICAgICAgLyogZXh0ZW5zaW9uIGRhdGEsIGhlYWRlciB2ZXJzaW9uIDQuMiBhbmQgaGlnaGVyICovCisgICAgICAgIG9mZnNldD1oZWFkZXIuZmxhZ3M+Pj44OworICAgICAgICAvL2lmKG9mZnNldCE9MCAmJiBtYmNzVGFibGUub3V0cHV0VHlwZSA9PSBNQkNTX09VVFBVVF9FWFRfT05MWSkgeworICAgICAgICBpZihtYmNzVGFibGUub3V0cHV0VHlwZSA9PSBNQkNTX09VVFBVVF9FWFRfT05MWSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBiYXNlTmFtZVN0cmluZyA9IHJlYWRlci5yZWFkQmFzZVRhYmxlTmFtZSgpOworICAgICAgICAgICAgICAgIGlmKG9mZnNldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Y29tbW1lbnQgc3VidHJhY3QgMzIgZm9yIHNpemVvZihfTUJDU0hlYWRlcikgYW5kIGxlbmd0aCBvZiBiYXNlTmFtZVN0cmluZyBhbmQgMSBudWxsIHRlcm1pbmF0b3IgYnl0ZSBhbGwgYWxyZWFkeSByZWFkOworICAgICAgICAgICAgICAgICAgICBtYmNzVGFibGUuZXh0SW5kZXhlcz1yZWFkZXIucmVhZEV4dEluZGV4ZXMob2Zmc2V0IC0gMzIgLSBiYXNlTmFtZVN0cmluZy5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIGlmKG9mZnNldCAhPSAwKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Y29tbW1lbnQgc3VidHJhY3QgMzIgZm9yIHNpemVvZihfTUJDU0hlYWRlcikgYW5kIGxlbmd0aCBvZiBiYXNlTmFtZVN0cmluZyBhbmQgMSBudWxsIHRlcm1pbmF0b3IgYnl0ZSBhbGwgYWxyZWFkeSByZWFkOworICAgICAgICAgICAgICAgIGludCBuYW1lbGVuID0gYmFzZU5hbWVTdHJpbmcgIT0gbnVsbD8gYmFzZU5hbWVTdHJpbmcubGVuZ3RoKCkgKyAxOiAwOworICAgICAgICAgICAgICAgIG1iY3NUYWJsZS5leHRJbmRleGVzPWRhdGFSZWFkZXIucmVhZEV4dEluZGV4ZXMob2Zmc2V0IC0gMzIgLSBuYW1lbGVuKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLmVyci5wcmludGxuKCJDYXVnaHQgSU9FeGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcEVycm9yQ29kZVswXSA9IFVFcnJvckNvZGUuVV9JTlZBTElEX0ZPUk1BVF9FUlJPUjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgLy9hZ2xqcG9ydDphZGQgdGhpcyB3b3VsZCBiZSB1bm5lY2Vzc2FyeSBpZiBleHRJbmRleGVzIHdlcmUgbWVtb3J5IG1hcHBlZAorICAgICAgICBpZihtYmNzVGFibGUuZXh0SW5kZXhlcyAhPSBudWxsKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvL2ludCBuYnl0ZXMgPSBtYmNzVGFibGUuZXh0SW5kZXhlc1tVQ29udmVydGVyRXh0LlVDTlZfRVhUX1RPX1VfTEVOR1RIXSo0ICsgbWJjc1RhYmxlLmV4dEluZGV4ZXNbVUNvbnZlcnRlckV4dC5VQ05WX0VYVF9UT19VX1VDSEFSU19MRU5HVEhdKjIgKyBtYmNzVGFibGUuZXh0SW5kZXhlc1tVQ29udmVydGVyRXh0LlVDTlZfRVhUX0ZST01fVV9MRU5HVEhdKjYgKyBtYmNzVGFibGUuZXh0SW5kZXhlc1tVQ29udmVydGVyRXh0LlVDTlZfRVhUX0ZST01fVV9CWVRFU19MRU5HVEhdICsgbWJjc1RhYmxlLmV4dEluZGV4ZXNbVUNvbnZlcnRlckV4dC5VQ05WX0VYVF9GUk9NX1VfU1RBR0VfMTJfTEVOR1RIXSoyICsgbWJjc1RhYmxlLmV4dEluZGV4ZXNbVUNvbnZlcnRlckV4dC5VQ05WX0VYVF9GUk9NX1VfU1RBR0VfM19MRU5HVEhdKjIgKyBtYmNzVGFibGUuZXh0SW5kZXhlc1tVQ29udmVydGVyRXh0LlVDTlZfRVhUX0ZST01fVV9TVEFHRV8zQl9MRU5HVEhdKjQ7IAorICAgICAgICAgICAgICAgIC8vaW50IG5ieXRlcyA9IG1iY3NUYWJsZS5leHRJbmRleGVzW1VDb252ZXJ0ZXJFeHQuVUNOVl9FWFRfU0laRV0gCisgICAgICAgICAgICAgICAgLy9ieXRlW10gZXh0VGFibGVzID0gZGF0YVJlYWRlci5yZWFkRXh0VGFibGVzKG5ieXRlcyk7CisgICAgICAgICAgICAgICAgLy9tYmNzVGFibGUuZXh0VGFibGVzID0gQnl0ZUJ1ZmZlci53cmFwKGV4dFRhYmxlcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDYXVnaHQgSU9FeGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcEVycm9yQ29kZVswXSA9IFVFcnJvckNvZGUuVV9JTlZBTElEX0ZPUk1BVF9FUlJPUjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAqLworICAgICAgICB9CisgICAgCisgICAgICAgIGlmKG1iY3NUYWJsZS5vdXRwdXRUeXBlPT1NQkNTX09VVFBVVF9FWFRfT05MWSkgeworICAgICAgICAgICAgVUNvbnZlcnRlclNoYXJlZERhdGEgYmFzZVNoYXJlZERhdGEgPSBudWxsOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBleHRJbmRleGVzOworICAgICAgICAgICAgU3RyaW5nIGJhc2VOYW1lOworICAgIAorICAgICAgICAgICAgLyogZXh0ZW5zaW9uLW9ubHkgZmlsZSwgbG9hZCB0aGUgYmFzZSB0YWJsZSBhbmQgc2V0IHZhbHVlcyBhcHByb3ByaWF0ZWx5ICovCisgICAgICAgICAgICBpZigoZXh0SW5kZXhlcz1tYmNzVGFibGUuZXh0SW5kZXhlcyk9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAvKiBleHRlbnNpb24tb25seSBmaWxlIHdpdGhvdXQgZXh0ZW5zaW9uICovCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKGFyZ3MubmVzdGVkTG9hZHMhPTEpIHsKKyAgICAgICAgICAgICAgICAvKiBhbiBleHRlbnNpb24gdGFibGUgbXVzdCBub3QgYmUgbG9hZGVkIGFzIGEgYmFzZSB0YWJsZSAqLworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBsb2FkIHRoZSBiYXNlIHRhYmxlICovCisgICAgICAgICAgICBiYXNlTmFtZT1iYXNlTmFtZVN0cmluZzsKKyAgICAgICAgICAgIGlmKGJhc2VOYW1lLmVxdWFscyhzdGF0aWNEYXRhLm5hbWUpKSB7CisgICAgICAgICAgICAgICAgLyogZm9yYmlkIGxvYWRpbmcgdGhpcyBzYW1lIGV4dGVuc2lvbi1vbmx5IGZpbGUgKi8KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogVE9ETyBwYXJzZSBwYWNrYWdlIG5hbWUgb3V0IG9mIHRoZSBwcmVmaXggb2YgdGhlIGJhc2UgbmFtZSBpbiB0aGUgZXh0ZW5zaW9uIC5jbnYgZmlsZT8gKi8KKyAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IGFyZ3Muc2l6ZT1zaXplb2YoVUNvbnZlcnRlckxvYWRBcmdzKTsKKyAgICAgICAgICAgIExvYWRBcmd1bWVudHMgYXJnczIgPSBuZXcgTG9hZEFyZ3VtZW50cygyLCBiYXNlTmFtZSk7CisgICAgICAgICAgICBiYXNlU2hhcmVkRGF0YT1sb2FkQ29udmVydGVyKGFyZ3MyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoIGJhc2VTaGFyZWREYXRhLnN0YXRpY0RhdGEuY29udmVyc2lvblR5cGUhPVVDb252ZXJ0ZXJUeXBlLk1CQ1MgfHwKKyAgICAgICAgICAgICAgICBiYXNlU2hhcmVkRGF0YS5tYmNzLmJhc2VTaGFyZWREYXRhIT1udWxsCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCB1Y252X3VubG9hZChiYXNlU2hhcmVkRGF0YSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGNvcHkgdGhlIGJhc2UgdGFibGUgZGF0YSAqLworICAgICAgICAgICAgLy9hZ2xqcG9ydDpjb21tZW50IGRlZXAgY29weSBpbiBDIGNoYW5nZXMgbWJjcyB0aHJvdWdoIGxvY2FsIHJlZmVyZW5jZSBtYmNzVGFibGU7IGluIGphdmEgd2UgcHJvYmFibHkgZG9uJ3QgbmVlZCB0aGUgZGVlcCBjb3B5IHNvIGNhbiBqdXN0IG1ha2Ugc3VyZSBtYmNzIGFuZCBpdHMgbG9jYWwgcmVmZXJlbmNlIGJvdGggcmVmZXIgdG8gdGhlIHNhbWUgbmV3IG9iamVjdAorICAgICAgICAgICAgbWJjc1RhYmxlID0gZGF0YS5tYmNzID0gYmFzZVNoYXJlZERhdGEubWJjczsKKyAgICAKKyAgICAgICAgICAgIC8qIG92ZXJ3cml0ZSB2YWx1ZXMgd2l0aCByZWxldmFudCBvbmVzIGZvciB0aGUgZXh0ZW5zaW9uIGNvbnZlcnRlciAqLworICAgICAgICAgICAgbWJjc1RhYmxlLmJhc2VTaGFyZWREYXRhPWJhc2VTaGFyZWREYXRhOworICAgICAgICAgICAgbWJjc1RhYmxlLmV4dEluZGV4ZXM9ZXh0SW5kZXhlczsKKyAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBzaGFyZSB0aGUgc3dhcExGTkwgZGF0YSB3aXRoIGEgYmFzZSBjb252ZXJ0ZXIsCisgICAgICAgICAgICAgKiBidXQgdGhlIGdlbmVyYXRlZCBuYW1lIHdvdWxkIGhhdmUgdG8gYmUgZGlmZmVyZW50LCBhbmQgdGhlIG1lbW9yeQorICAgICAgICAgICAgICogd291bGQgaGF2ZSB0byBiZSBmcmVlJ2Qgb25seSBvbmNlLgorICAgICAgICAgICAgICogSXQgaXMgZWFzaWVyIHRvIGp1c3QgY3JlYXRlIHRoZSBkYXRhIGZvciB0aGUgZXh0ZW5zaW9uIGNvbnZlcnRlcgorICAgICAgICAgICAgICogc2VwYXJhdGVseSB3aGVuIGl0IGlzIHJlcXVlc3RlZC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbWJjc1RhYmxlLnN3YXBMRk5MU3RhdGVUYWJsZT1udWxsOworICAgICAgICAgICAgbWJjc1RhYmxlLnN3YXBMRk5MRnJvbVVuaWNvZGVCeXRlcz1udWxsOworICAgICAgICAgICAgbWJjc1RhYmxlLnN3YXBMRk5MTmFtZT1udWxsOworICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFNldCBhIHNwZWNpYWwsIHJ1bnRpbWUtb25seSBvdXRwdXRUeXBlIGlmIHRoZSBleHRlbnNpb24gY29udmVydGVyCisgICAgICAgICAgICAgKiBpcyBhIERCQ1MgdmVyc2lvbiBvZiBhIGJhc2UgY29udmVydGVyIHRoYXQgYWxzbyBtYXBzIHNpbmdsZSBieXRlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYoc3RhdGljRGF0YS5jb252ZXJzaW9uVHlwZT09VUNvbnZlcnRlclR5cGUuREJDUyB8fAorICAgICAgICAgICAgICAgKHN0YXRpY0RhdGEuY29udmVyc2lvblR5cGU9PVVDb252ZXJ0ZXJUeXBlLk1CQ1MgJiYgc3RhdGljRGF0YS5taW5CeXRlc1BlckNoYXI+PTIpKXsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihiYXNlU2hhcmVkRGF0YS5tYmNzLm91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUXzJfU0lTTykgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGUgYmFzZSBjb252ZXJ0ZXIgaXMgU0kvU08tc3RhdGVmdWwgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IGVudHJ5OworICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBnZXQgdGhlIGRiY3Mgc3RhdGUgZnJvbSB0aGUgc3RhdGUgdGFibGUgZW50cnkgZm9yIFNPPTB4MGUgKi8KKyAgICAgICAgICAgICAgICAgICAgZW50cnk9bWJjc1RhYmxlLnN0YXRlVGFibGVbMF1bMHhlXTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIE1CQ1NfRU5UUllfSVNfRklOQUwoZW50cnkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBNQkNTX0VOVFJZX0ZJTkFMX0FDVElPTihlbnRyeSk9PU1CQ1NfU1RBVEVfQ0hBTkdFX09OTFkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIE1CQ1NfRU5UUllfRklOQUxfU1RBVEUoZW50cnkpIT0wCisgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWJjc1RhYmxlLmRiY3NPbmx5U3RhdGU9KGJ5dGUpTUJDU19FTlRSWV9GSU5BTF9TVEFURShlbnRyeSk7CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBtYmNzVGFibGUub3V0cHV0VHlwZT1NQkNTX09VVFBVVF9EQkNTX09OTFk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYoYmFzZVNoYXJlZERhdGEuc3RhdGljRGF0YS5jb252ZXJzaW9uVHlwZT09VUNvbnZlcnRlclR5cGUuTUJDUyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVNoYXJlZERhdGEuc3RhdGljRGF0YS5taW5CeXRlc1BlckNoYXI9PTEgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VTaGFyZWREYXRhLnN0YXRpY0RhdGEubWF4Qnl0ZXNQZXJDaGFyPT0yICYmCisgICAgICAgICAgICAgICAgICAgICAgICBtYmNzVGFibGUuY291bnRTdGF0ZXM8PTEyNyl7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBub24tc3RhdGVmdWwgYmFzZSBjb252ZXJ0ZXIsIG5lZWQgdG8gbW9kaWZ5IHRoZSBzdGF0ZSB0YWJsZSAqLworICAgICAgICAgICAgICAgICAgICBpbnQgbmV3U3RhdGVUYWJsZVtdWy8qMjU2Ki9dOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXRlW107IC8vIHRoaXMgd29ya3MgYmVjYXVzZSBqYXZhIDItRCBhcnJheSBpcyBhcnJheSBvZiByZWZlcmVuY2VzIGFuZCB3ZSBjYW4gaGF2ZSBzdGF0ZSA9IG5ld1N0YXRlVGFibGVbaV07CisgICAgICAgICAgICAgICAgICAgIGludCBpLCBjb3VudDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogYWxsb2NhdGUgYSBuZXcgc3RhdGUgdGFibGUgYW5kIGNvcHkgdGhlIGJhc2Ugc3RhdGUgdGFibGUgY29udGVudHMgKi8KKyAgICAgICAgICAgICAgICAgICAgY291bnQ9bWJjc1RhYmxlLmNvdW50U3RhdGVzOworICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZVRhYmxlPW5ldyBpbnRbKGNvdW50KzEpKjEwMjRdWzI1Nl07CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCBtYmNzVGFibGUuc3RhdGVUYWJsZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobWJjc1RhYmxlLnN0YXRlVGFibGVbaV0sIDAsIG5ld1N0YXRlVGFibGVbaV0sIDAsIG1iY3NUYWJsZS5zdGF0ZVRhYmxlW2ldLmxlbmd0aCk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGNoYW5nZSBhbGwgZmluYWwgc2luZ2xlLWJ5dGUgZW50cmllcyB0byBnbyB0byBhIG5ldyBhbGwtaWxsZWdhbCBzdGF0ZSAqLworICAgICAgICAgICAgICAgICAgICBzdGF0ZT1uZXdTdGF0ZVRhYmxlWzBdOworICAgICAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPDI1NjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihNQkNTX0VOVFJZX0lTX0ZJTkFMKHN0YXRlW2ldKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlW2ldPU1CQ1NfRU5UUllfVFJBTlNJVElPTihjb3VudCwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogYnVpbGQgdGhlIG5ldyBhbGwtaWxsZWdhbCBzdGF0ZSAqLworICAgICAgICAgICAgICAgICAgICBzdGF0ZT1uZXdTdGF0ZVRhYmxlW2NvdW50XTsKKyAgICAgICAgICAgICAgICAgICAgZm9yKGk9MDsgaTwyNTY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVbaV09TUJDU19FTlRSWV9GSU5BTCgwLCBNQkNTX1NUQVRFX0lMTEVHQUwsIDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1iY3NUYWJsZS5zdGF0ZVRhYmxlPW5ld1N0YXRlVGFibGU7CisgICAgICAgICAgICAgICAgICAgIG1iY3NUYWJsZS5jb3VudFN0YXRlcz0oYnl0ZSkoY291bnQrMSk7CisgICAgICAgICAgICAgICAgICAgIG1iY3NUYWJsZS5zdGF0ZVRhYmxlT3duZWQ9dHJ1ZTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgbWJjc1RhYmxlLm91dHB1dFR5cGU9TUJDU19PVVRQVVRfREJDU19PTkxZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiB1bmxpa2UgYmVsb3cgZm9yIGZpbGVzIHdpdGggYmFzZSB0YWJsZXMsIGRvIG5vdCBnZXQgdGhlIHVuaWNvZGVNYXNrCisgICAgICAgICAgICAgKiBmcm9tIHRoZSBzaGFyZWREYXRhOyBpbnN0ZWFkLCB1c2UgdGhlIGJhc2UgdGFibGUncyB1bmljb2RlTWFzaywKKyAgICAgICAgICAgICAqIHdoaWNoIHdlIGNvcGllZCBpbiB0aGUgbWVtY3B5IGFib3ZlOworICAgICAgICAgICAgICogdGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgc3RhdGljIGRhdGEgdW5pY29kZU1hc2ssIGVzcGVjaWFsbHkKKyAgICAgICAgICAgICAqIHRoZSBVQ05WX0hBU19TVVBQTEVNRU5UQVJZIGZsYWcsIGlzIHBhcnQgb2YgdGhlIGJhc2UgdGFibGUgZGF0YQorICAgICAgICAgICAgICovCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLyogY29udmVyc2lvbiBmaWxlIHdpdGggYSBiYXNlIHRhYmxlOyBhbiBhZGRpdGlvbmFsIGV4dGVuc2lvbiB0YWJsZSBpcyBvcHRpb25hbCAqLworICAgICAgICAgICAgLyogbWFrZSBzdXJlIHRoYXQgdGhlIG91dHB1dCB0eXBlIGlzIGtub3duICovCisgICAgICAgICAgICBzd2l0Y2gobWJjc1RhYmxlLm91dHB1dFR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzE6CisgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8yOgorICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfMzoKKyAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzQ6CisgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8zX0VVQzoKKyAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzRfRVVDOgorICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfMl9TSVNPOgorICAgICAgICAgICAgICAgICAgICAvKiBPSyAqLworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OiAKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHN0YXRlVGFibGVBcnJheSA9IG5ldyBpbnRbaGVhZGVyLmNvdW50U3RhdGVzXVsyNTZdOworICAgICAgICAgICAgdG9VRmFsbGJhY2tzQXJyYXkgPSBuZXcgTUJDU1RvVUZhbGxiYWNrW2hlYWRlci5jb3VudFRvVUZhbGxiYWNrc107CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdG9VRmFsbGJhY2tzQXJyYXkubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgdG9VRmFsbGJhY2tzQXJyYXlbaV0gPSBuZXcgTUJDU1RvVUZhbGxiYWNrKCk7CisgICAgICAgICAgICB1bmljb2RlQ29kZVVuaXRzQXJyYXkgPSBuZXcgY2hhclsoaGVhZGVyLm9mZnNldEZyb21VVGFibGUgLSBoZWFkZXIub2Zmc2V0VG9VQ29kZVVuaXRzKS8yXTsKKyAgICAgICAgICAgIGZyb21Vbmljb2RlVGFibGVBcnJheSA9IG5ldyBjaGFyWyhoZWFkZXIub2Zmc2V0RnJvbVVCeXRlcyAtIGhlYWRlci5vZmZzZXRGcm9tVVRhYmxlKS8yXTsKKyAgICAgICAgICAgIGZyb21Vbmljb2RlQnl0ZXNBcnJheSA9IG5ldyBieXRlW2hlYWRlci5mcm9tVUJ5dGVzTGVuZ3RoXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRNQkNTVGFibGUoc3RhdGVUYWJsZUFycmF5LCB0b1VGYWxsYmFja3NBcnJheSwgdW5pY29kZUNvZGVVbml0c0FycmF5LCBmcm9tVW5pY29kZVRhYmxlQXJyYXksIGZyb21Vbmljb2RlQnl0ZXNBcnJheSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBtYmNzVGFibGUuY291bnRTdGF0ZXM9KGJ5dGUpaGVhZGVyLmNvdW50U3RhdGVzOworICAgICAgICAgICAgbWJjc1RhYmxlLmNvdW50VG9VRmFsbGJhY2tzPWhlYWRlci5jb3VudFRvVUZhbGxiYWNrczsKKyAgICAgICAgICAgIG1iY3NUYWJsZS5zdGF0ZVRhYmxlPXN0YXRlVGFibGVBcnJheTsKKyAgICAgICAgICAgIG1iY3NUYWJsZS50b1VGYWxsYmFja3M9dG9VRmFsbGJhY2tzQXJyYXk7CisgICAgICAgICAgICBtYmNzVGFibGUudW5pY29kZUNvZGVVbml0cz11bmljb2RlQ29kZVVuaXRzQXJyYXk7CisgICAgCisgICAgICAgICAgICBtYmNzVGFibGUuZnJvbVVuaWNvZGVUYWJsZT1mcm9tVW5pY29kZVRhYmxlQXJyYXk7CisgICAgICAgICAgICBtYmNzVGFibGUuZnJvbVVuaWNvZGVCeXRlcz1mcm9tVW5pY29kZUJ5dGVzQXJyYXk7CisgICAgICAgICAgICBtYmNzVGFibGUuZnJvbVVCeXRlc0xlbmd0aD1oZWFkZXIuZnJvbVVCeXRlc0xlbmd0aDsKKyAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBjb252ZXJ0ZXIgdmVyc2lvbnMgNi4xIGFuZCB1cCBjb250YWluIGEgdW5pY29kZU1hc2sgdGhhdCBpcworICAgICAgICAgICAgICogdXNlZCBoZXJlIHRvIHNlbGVjdCB0aGUgbW9zdCBlZmZpY2llbnQgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IGluZm8uc2l6ZT1zaXplb2YoVURhdGFJbmZvKTsKKyAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IHVkYXRhX2dldEluZm8oKFVEYXRhTWVtb3J5ICopc2hhcmVkRGF0YS0+ZGF0YU1lbW9yeSwgJmluZm8pOworICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggaWYoaW5mby5mb3JtYXRWZXJzaW9uWzBdPjYgfHwgKGluZm8uZm9ybWF0VmVyc2lvblswXT09NiAmJiBpbmZvLmZvcm1hdFZlcnNpb25bMV0+PTEpKSB7CisgICAgICAgICAgICAvKiBtYXNrIG9mZiBwb3NzaWJsZSBmdXR1cmUgZXh0ZW5zaW9ucyB0byBiZSBzYWZlICovCisgICAgICAgICAgICBtYmNzVGFibGUudW5pY29kZU1hc2s9KHNob3J0KShzdGF0aWNEYXRhLnVuaWNvZGVNYXNrJjMpOworICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBmb3Igb2xkZXIgdmVyc2lvbnMsIGFzc3VtZSB3b3JzdCBjYXNlOiBjb250YWlucyBhbnl0aGluZyBwb3NzaWJsZSAocHJldmVudCBvdmVyLW9wdGltaXphdGlvbnMpICovCisgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggbWJjc1RhYmxlLT51bmljb2RlTWFzaz1VQ05WX0hBU19TVVBQTEVNRU5UQVJZfFVDTlZfSEFTX1NVUlJPR0FURVM7CisgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCB9CisgICAgICAgICAgICBpZihvZmZzZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Y29tbW1lbnQgc3VidHJhY3QgMzIgZm9yIHNpemVvZihfTUJDU0hlYWRlcikgYW5kIGxlbmd0aCBvZiBiYXNlTmFtZVN0cmluZyBhbmQgMSBudWxsIHRlcm1pbmF0b3IgYnl0ZSBhbGwgYWxyZWFkeSByZWFkOworICAgICAgICAgICAgICAgICAgICAvL2ludCBuYW1lbGVuID0gYmFzZU5hbWVTdHJpbmcgIT0gbnVsbD8gYmFzZU5hbWVTdHJpbmcubGVuZ3RoKCkgKyAxOiAwOworICAgICAgICAgICAgICAgICAgICAvL21iY3NUYWJsZS5leHRJbmRleGVzPWRhdGFSZWFkZXIucmVhZEV4dEluZGV4ZXMob2Zmc2V0IC0gMzIgLSBuYW1lbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgbWJjc1RhYmxlLmV4dEluZGV4ZXM9cmVhZGVyLnJlYWRFeHRJbmRleGVzKDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVDb252ZXJ0ZXIoaW50IG9wdGlvbnMpCisgICAgeworICAgICAgICBVQ29udmVydGVyTUJDU1RhYmxlIG1iY3NUYWJsZTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBleHRJbmRleGVzOworICAgICAgICBzaG9ydCBvdXRwdXRUeXBlOworICAgICAgICBieXRlIG1heEJ5dGVzUGVyVUNoYXI7CisgICAgCisgICAgICAgIG1iY3NUYWJsZT1zaGFyZWREYXRhLm1iY3M7CisgICAgICAgIG91dHB1dFR5cGU9bWJjc1RhYmxlLm91dHB1dFR5cGU7CisgICAgCisgICAgICAgIGlmKG91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUX0RCQ1NfT05MWSkgeworICAgICAgICAgICAgLyogdGhlIHN3YXBsZm5sIG9wdGlvbiBkb2VzIG5vdCBhcHBseSwgcmVtb3ZlIGl0ICovCisgICAgICAgICAgICB0aGlzLm9wdGlvbnM9b3B0aW9ucyY9flVDb252ZXJ0ZXJDb25zdGFudHMuT1BUSU9OX1NXQVBfTEZOTDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZigob3B0aW9ucyZVQ29udmVydGVyQ29uc3RhbnRzLk9QVElPTl9TV0FQX0xGTkwpIT0wKSB7CisgICAgICAgICAgICAvKiBkbyB0aGlzIGJlY2F1c2UgZG91YmxlLWNoZWNrZWQgbG9ja2luZyBpcyBicm9rZW4gKi8KKyAgICAgICAgICAgIGJvb2xlYW4gaXNDYWNoZWQ7CisgICAgCisgICAgICAgICAgICAvL2FnbGpwb3J0OnRvZG8gdW10eF9sb2NrKE5VTEwpOworICAgICAgICAgICAgaXNDYWNoZWQ9bWJjc1RhYmxlLnN3YXBMRk5MU3RhdGVUYWJsZSE9bnVsbDsKKyAgICAgICAgICAgIC8vYWdsanBvcnQ6dG9kbyB1bXR4X3VubG9jayhOVUxMKTsKKyAgICAKKyAgICAgICAgICAgIGlmKCFpc0NhY2hlZCkgeworICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IGlmKCFfRUJDRElDU3dhcExGTkwoY252LT5zaGFyZWREYXRhLCBwRXJyb3JDb2RlKSkgeworICAgICAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCBpZihVX0ZBSUxVUkUoKnBFcnJvckNvZGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCByZXR1cm47IC8qIHNvbWV0aGluZyB3ZW50IHdyb25nICovCisgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIG9wdGlvbiBkb2VzIG5vdCBhcHBseSwgcmVtb3ZlIGl0ICovCisgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IGNudi0+b3B0aW9ucz1vcHRpb25zJj1+VUNOVl9PUFRJT05fU1dBUF9MRk5MOworICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZihpY3VDYW5vbmljYWxOYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiZ2IxODAzMCIpID49IDApIHsKKyAgICAgICAgICAgIC8qIHNldCBhIGZsYWcgZm9yIEdCIDE4MDMwIG1vZGUsIHdoaWNoIGNoYW5nZXMgdGhlIGNhbGxiYWNrIGJlaGF2aW9yICovCisgICAgICAgICAgICB0aGlzLm9wdGlvbnN8PU1CQ1NfT1BUSU9OX0dCMTgwMzA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogZml4IG1heEJ5dGVzUGVyVUNoYXIgZGVwZW5kaW5nIG9uIG91dHB1dFR5cGUgYW5kIG9wdGlvbnMgZXRjLiAqLworICAgICAgICBpZihvdXRwdXRUeXBlPT1NQkNTX09VVFBVVF8yX1NJU08pIHsKKyAgICAgICAgICAgIG1heEJ5dGVzUGVyQ2hhcj0zOyAvKiBTTytEQkNTICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZXh0SW5kZXhlcz1tYmNzVGFibGUuZXh0SW5kZXhlczsKKyAgICAgICAgaWYoZXh0SW5kZXhlcyE9bnVsbCkgeworICAgICAgICAgICAgbWF4Qnl0ZXNQZXJVQ2hhcj0oYnl0ZSlHRVRfTUFYX0JZVEVTX1BFUl9VQ0hBUihleHRJbmRleGVzKTsKKyAgICAgICAgICAgIGlmKG91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUXzJfU0lTTykgeworICAgICAgICAgICAgICAgICsrbWF4Qnl0ZXNQZXJVQ2hhcjsgLyogU08gKyBtdWx0aXBsZSBEQkNTICovCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZihtYXhCeXRlc1BlclVDaGFyPm1heEJ5dGVzUGVyQ2hhcikgeworICAgICAgICAgICAgICAgIG1heEJ5dGVzUGVyQ2hhcj1tYXhCeXRlc1BlclVDaGFyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1CQ1Mgb3V0cHV0IHR5cGVzIGZvciBjb252ZXJzaW9ucyBmcm9tIFVuaWNvZGUuCisgICAgICogVGhlc2UgcGVyLWNvbnZlcnRlciB0eXBlcyBkZXRlcm1pbmUgdGhlIHN0b3JhZ2UgbWV0aG9kIGluIHN0YWdlIDMgb2YgdGhlIGxvb2t1cCB0YWJsZSwKKyAgICAgKiBtb3N0bHkgaG93IG1hbnkgYnl0ZXMgYXJlIHN0b3JlZCBwZXIgZW50cnkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19PVVRQVVRfMSA9IDA7ICAgICAgICAgIC8qIDAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09VVFBVVF8yID0gTUJDU19PVVRQVVRfMSArIDE7ICAgICAgICAgIC8qIDEgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09VVFBVVF8zID0gTUJDU19PVVRQVVRfMiArIDE7ICAgICAgICAgIC8qIDIgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09VVFBVVF80ID0gTUJDU19PVVRQVVRfMyArIDE7ICAgICAgICAgIC8qIDMgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09VVFBVVF8zX0VVQz04OyAgICAvKiA4ICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19PVVRQVVRfNF9FVUMgPSBNQkNTX09VVFBVVF8zX0VVQyArIDE7ICAgICAgLyogOSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUXzJfU0lTTz0xMjsgIC8qIGMgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09VVFBVVF8yX0haID0gTUJDU19PVVRQVVRfMl9TSVNPICsgMTsgICAgICAgLyogZCAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUX0VYVF9PTkxZID0gTUJDU19PVVRQVVRfMl9IWiArIDE7ICAgLyogZSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUX0NPVU5UID0gTUJDU19PVVRQVVRfRVhUX09OTFkgKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUX0RCQ1NfT05MWT0weGRiOyAgLyogcnVudGltZS1vbmx5IHR5cGUgZm9yIERCQ1Mtb25seSBoYW5kbGluZyBvZiBTSVNPIHRhYmxlcyAqLworICAgIAorICAgIC8qIEdCIDE4MDMwIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyogaGVscGVyIG1hY3JvcyBmb3IgbGluZWFyIHZhbHVlcyBmb3IgR0IgMTgwMzAgZm91ci1ieXRlIHNlcXVlbmNlcyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgbG9uZyBMSU5FQVJfMTgwMzAobG9uZyBhLCBsb25nIGIsIGxvbmcgYywgbG9uZyBkKSB7cmV0dXJuICgoKChhKSoxMCsoYikpKjEyNkwrKGMpKSoxMEwrKGQpKTt9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBsb25nIExJTkVBUl8xODAzMF9CQVNFID0gTElORUFSXzE4MDMwKDB4ODEsIDB4MzAsIDB4ODEsIDB4MzApOworICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgbG9uZyBMSU5FQVIobG9uZyB4KSB7cmV0dXJuIExJTkVBUl8xODAzMCh4Pj4+MjQsICh4Pj4+MTYpJjB4ZmYsICh4Pj4+OCkmMHhmZiwgeCYweGZmKTt9CisgICAgCisgICAgLyoKKyAgICAgKiBTb21lIHJhbmdlcyBvZiBHQiAxODAzMCB3aGVyZSBib3RoIHRoZSBVbmljb2RlIGNvZGUgcG9pbnRzIGFuZCB0aGUKKyAgICAgKiBHQiBmb3VyLWJ5dGUgc2VxdWVuY2VzIGFyZSBjb250aWd1b3VzIGFuZCBhcmUgaGFuZGxlZCBhbGdvcml0aG1pY2FsbHkgYnkKKyAgICAgKiB0aGUgc3BlY2lhbCBjYWxsYmFjayBmdW5jdGlvbnMgYmVsb3cuCisgICAgICogVGhlIHZhbHVlcyBhcmUgc3RhcnQgJiBlbmQgb2YgVW5pY29kZSAmIEdCIGNvZGVzLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHNpbmdsZSBzdXJyb2dhdGVzIGFyZSBub3QgbWFwcGVkIGJ5IEdCIDE4MDMwCisgICAgICogYXMgb2YgdGhlIHJlLXJlbGVhc2VkIG1hcHBpbmcgdGFibGVzIGZyb20gMjAwMC1ub3YtMzAuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIGdiMTgwMzBSYW5nZXNbXVtdID0gbmV3IGxvbmdbLyoxMyovXVsvKjQqL117CisgICAgICAgIHsweDEwMDAwTCwgMHgxMEZGRkZMLCBMSU5FQVIoMHg5MDMwODEzMEwpLCBMSU5FQVIoMHhFMzMyOUEzNUwpfSwKKyAgICAgICAgezB4OUZBNkwsIDB4RDdGRkwsIExJTkVBUigweDgyMzU4RjMzTCksIExJTkVBUigweDgzMzZDNzM4TCl9LAorICAgICAgICB7MHgwNDUyTCwgMHgyMDBGTCwgTElORUFSKDB4ODEzMEQzMzBMKSwgTElORUFSKDB4ODEzNkE1MzFMKX0sCisgICAgICAgIHsweEU4NjVMLCAweEY5MkJMLCBMSU5FQVIoMHg4MzM2RDAzMEwpLCBMSU5FQVIoMHg4NDMwODUzNEwpfSwKKyAgICAgICAgezB4MjY0M0wsIDB4MkU4MEwsIExJTkVBUigweDgxMzdBODM5TCksIExJTkVBUigweDgxMzhGRDM4TCl9LAorICAgICAgICB7MHhGQTJBTCwgMHhGRTJGTCwgTElORUFSKDB4ODQzMDlDMzhMKSwgTElORUFSKDB4ODQzMTg1MzdMKX0sCisgICAgICAgIHsweDNDRTFMLCAweDQwNTVMLCBMSU5FQVIoMHg4MjMxRDQzOEwpLCBMSU5FQVIoMHg4MjMyQUYzMkwpfSwKKyAgICAgICAgezB4MzYxQkwsIDB4MzkxN0wsIExJTkVBUigweDgyMzBBNjMzTCksIExJTkVBUigweDgyMzBGMjM3TCl9LAorICAgICAgICB7MHg0OUI4TCwgMHg0Qzc2TCwgTElORUFSKDB4ODIzNEExMzFMKSwgTElORUFSKDB4ODIzNEU3MzNMKX0sCisgICAgICAgIHsweDQxNjBMLCAweDQzMzZMLCBMSU5FQVIoMHg4MjMyQzkzN0wpLCBMSU5FQVIoMHg4MjMyRjgzN0wpfSwKKyAgICAgICAgezB4NDc4RUwsIDB4NDk0NkwsIExJTkVBUigweDgyMzNFODM4TCksIExJTkVBUigweDgyMzQ5NjM4TCl9LAorICAgICAgICB7MHg0NEQ3TCwgMHg0NjRCTCwgTElORUFSKDB4ODIzM0EzMzlMKSwgTElORUFSKDB4ODIzM0M5MzFMKX0sCisgICAgICAgIHsweEZGRTZMLCAweEZGRkZMLCBMSU5FQVIoMHg4NDMxQTIzNEwpLCBMSU5FQVIoMHg4NDMxQTQzOUwpfQorICAgIH07CisgICAgCisgICAgLyogYml0IGZsYWcgZm9yIFVDb252ZXJ0ZXIub3B0aW9ucyBpbmRpY2F0aW5nIEdCIDE4MDMwIHNwZWNpYWwgaGFuZGxpbmcgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09QVElPTl9HQjE4MDMwID0gMHg4MDAwOworICAgIAorICAgIC8qKgorICAgICAqIE1CQ1MgYWN0aW9uIGNvZGVzIGZvciBjb252ZXJzaW9ucyB0byBVbmljb2RlLgorICAgICAqIFRoZXNlIHZhbHVlcyBhcmUgaW4gYml0cyAyMy4uMjAgb2YgdGhlIHN0YXRlIHRhYmxlIGVudHJpZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9WQUxJRF9ESVJFQ1RfMTYgPSAwOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfU1RBVEVfVkFMSURfRElSRUNUXzIwID0gTUJDU19TVEFURV9WQUxJRF9ESVJFQ1RfMTYgKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfU1RBVEVfRkFMTEJBQ0tfRElSRUNUXzE2ID0gTUJDU19TVEFURV9WQUxJRF9ESVJFQ1RfMjAgKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfU1RBVEVfRkFMTEJBQ0tfRElSRUNUXzIwID0gTUJDU19TVEFURV9GQUxMQkFDS19ESVJFQ1RfMTYgKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfU1RBVEVfVkFMSURfMTYgPSBNQkNTX1NUQVRFX0ZBTExCQUNLX0RJUkVDVF8yMCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9WQUxJRF8xNl9QQUlSID0gTUJDU19TVEFURV9WQUxJRF8xNiArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9VTkFTU0lHTkVEID0gTUJDU19TVEFURV9WQUxJRF8xNl9QQUlSICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX1NUQVRFX0lMTEVHQUwgPSBNQkNTX1NUQVRFX1VOQVNTSUdORUQgKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfU1RBVEVfQ0hBTkdFX09OTFkgPSBNQkNTX1NUQVRFX0lMTEVHQUwgKyAxOworICAgIAorICAgIC8qIE1ldGhvZHMgZm9yIHN0YXRlIHRhYmxlIGVudHJpZXMgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBNQkNTX0VOVFJZX1RSQU5TSVRJT04oaW50IHN0YXRlLCBpbnQgb2Zmc2V0KSB7cmV0dXJuIChzdGF0ZTw8MjRMKXxvZmZzZXQ7IH0KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBNQkNTX0VOVFJZX0ZJTkFMKGludCBzdGF0ZSwgaW50IGFjdGlvbiwgaW50IHZhbHVlKSB7cmV0dXJuIChpbnQpKDB4ODAwMDAwMDB8KChpbnQpKHN0YXRlKTw8MjRMKXwoKGFjdGlvbik8PDIwTCl8KHZhbHVlKSk7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBNQkNTX0VOVFJZX0lTX1RSQU5TSVRJT04oaW50IGVudHJ5KSB7cmV0dXJuIChlbnRyeSk+PTA7IH0KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGJvb2xlYW4gTUJDU19FTlRSWV9JU19GSU5BTChpbnQgZW50cnkpIHtyZXR1cm4gKGVudHJ5KTwwO30KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBNQkNTX0VOVFJZX1RSQU5TSVRJT05fU1RBVEUoaW50IGVudHJ5KSB7cmV0dXJuICgoZW50cnkpPj4+MjQpO30KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBNQkNTX0VOVFJZX1RSQU5TSVRJT05fT0ZGU0VUKGludCBlbnRyeSkge3JldHVybiAoKGVudHJ5KSYweGZmZmZmZik7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfRU5UUllfRklOQUxfU1RBVEUoaW50IGVudHJ5KSB7cmV0dXJuICgoZW50cnkpPj4+MjQpJjB4N2Y7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBNQkNTX0VOVFJZX0ZJTkFMX0lTX1ZBTElEX0RJUkVDVF8xNihpbnQgZW50cnkpIHtyZXR1cm4gKChlbnRyeSk8MHg4MDEwMDAwMCk7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfRU5UUllfRklOQUxfQUNUSU9OKGludCBlbnRyeSkge3JldHVybiAoKGVudHJ5KT4+PjIwKSYweGY7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfRU5UUllfRklOQUxfVkFMVUUoaW50IGVudHJ5KSB7cmV0dXJuICgoZW50cnkpJjB4ZmZmZmYpOyB9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBjaGFyIE1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoaW50IGVudHJ5KSB7cmV0dXJuIChjaGFyKShlbnRyeSk7fQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWFjcm8gdmVyc2lvbiBvZiBfTUJDU1NpbmdsZVNpbXBsZUdldE5leHRVQ2hhcigpIGdldHMgYSBjb2RlIHBvaW50IGZyb20gYSBieXRlLgorICAgICAqIEl0IHdvcmtzIGZvciBzaW5nbGUtYnl0ZSwgc2luZ2xlLXN0YXRlIGNvZGVwYWdlcyB0aGF0IG9ubHkgbWFwCisgICAgICogdG8gYW5kIGZyb20gQk1QIGNvZGUgcG9pbnRzLCBhbmQgaXQgYWx3YXlzCisgICAgICogcmV0dXJucyBmYWxsYmFjayB2YWx1ZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBjaGFyIE1CQ1NfU0lOR0xFX1NJTVBMRV9HRVRfTkVYVF9CTVAoVUNvbnZlcnRlck1CQ1NUYWJsZSBtYmNzLCBmaW5hbCBpbnQgYikKKyAgICB7CisgICAgICAgIHJldHVybiBNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KG1iY3Muc3RhdGVUYWJsZVswXVtiICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0tdKTsKKyAgICB9CisgICAgCisgICAgLyogc2luZ2xlLWJ5dGUgZnJvbVVuaWNvZGU6IGdldCB0aGUgMTYtYml0IHJlc3VsdCB3b3JkICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBjaGFyIE1CQ1NfU0lOR0xFX1JFU1VMVF9GUk9NX1UoY2hhcltdIHRhYmxlLCBieXRlW10gcmVzdWx0cywgaW50IGMpIAorICAgIHsKKyAgICAgICAgaW50IGkxID0gdGFibGVbYz4+PjEwXSArKChjPj4+NCkmMHgzZik7CisgICAgICAgIGludCBpID0gMiogKHRhYmxlW2kxXSArKGMmMHhmKSk7IC8vIHVzZWQgYXMgaW5kZXggaW50byBieXRlW10gYXJyYXkgdHJlYXRlZCBhcyBjaGFyW10gYXJyYXkKKyAgICAgICAgcmV0dXJuIChjaGFyKSgoKHJlc3VsdHNbaV0gJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykgPDw4KSB8IChyZXN1bHRzW2krMV0gJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpOworICAgIH0KKyAgICAKKyAgICAvKiBtdWx0aS1ieXRlIGZyb21Vbmljb2RlOiBnZXQgdGhlIDMyLWJpdCBzdGFnZSAyIGVudHJ5ICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgTUJDU19TVEFHRV8yX0ZST01fVShjaGFyW10gdGFibGUsIGludCBjKQorICAgIHsKKyAgICAgICAgaW50IGkgPSAyICogKHRhYmxlWyhjKT4+PjEwXSArKChjPj4+NCkmMHgzZikpOyAvLyAyeCBiZWNhdXNlIHVzZWQgYXMgaW5kZXggaW50byBjaGFyW10gYXJyYXkgdHJlYXRlZCBhcyBpbnRbXSBhcnJheQorICAgICAgICByZXR1cm4gKCh0YWJsZVtpXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfU0hPUlRfTUFTSykgPDwxNikgfCAodGFibGVbaSsxXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfU0hPUlRfTUFTSyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBNQkNTX0ZST01fVV9JU19ST1VORFRSSVAoaW50IHN0YWdlMkVudHJ5LCBpbnQgYykge3JldHVybiAoICgoc3RhZ2UyRW50cnkpICYgKDE8PCAoMTYrKChjKSYweGYpKSApKSAhPTApO30KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGNoYXIgTUJDU19WQUxVRV8yX0ZST01fU1RBR0VfMihieXRlW10gYnl0ZXMsIGludCBzdGFnZTJFbnRyeSwgaW50IGMpCisgICAgeworICAgICAgICBpbnQgaSA9IDIgKiAoMTYqKChjaGFyKXN0YWdlMkVudHJ5ICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9TSE9SVF9NQVNLKSsoYyYweGYpKTsKKyAgICAgICAgcmV0dXJuIChjaGFyKSgoKGJ5dGVzW2ldICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spIDw8OCkgfCAoYnl0ZXNbaSsxXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfVkFMVUVfNF9GUk9NX1NUQUdFXzIoYnl0ZVtdIGJ5dGVzLCBpbnQgc3RhZ2UyRW50cnksIGludCBjKQorICAgIHsKKyAgICAgICAgaW50IGkgPSA0ICogKDE2KigoY2hhcilzdGFnZTJFbnRyeSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfU0hPUlRfTUFTSykrKGMmMHhmKSk7CisgICAgICAgIHJldHVybiAoKGJ5dGVzW2ldICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spIDw8MjQpIHwgCisgICAgICAgICAgICAoKGJ5dGVzW2krMV0gJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykgPDwxNikgfCAKKyAgICAgICAgICAgICgoYnl0ZXNbaSsyXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSA8PDgpIHwgCisgICAgICAgICAgICAoYnl0ZXNbaSszXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgTUJDU19QT0lOVEVSXzNfRlJPTV9TVEFHRV8yKGJ5dGVbXSBieXRlcywgaW50IHN0YWdlMkVudHJ5LCBpbnQgYykKKyAgICB7CisgICAgICAgIHJldHVybiAoKDE2KigoY2hhcikoc3RhZ2UyRW50cnkpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9TSE9SVF9NQVNLKSsoKGMpJjB4ZikpKjMpOworICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLVVDb252ZXJ0ZXJFeHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX0lOREVYRVNfTEVOR1RIID0gMDsgICAgICAgICAgICAvKiAwICovCisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfVE9fVV9JTkRFWCA9IEVYVF9JTkRFWEVTX0xFTkdUSCArIDE7ICAgICAgICAgICAgICAgIC8qIDEgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfVE9fVV9MRU5HVEggPSBFWFRfVE9fVV9JTkRFWCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX1RPX1VfVUNIQVJTX0lOREVYID0gRVhUX1RPX1VfTEVOR1RIICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfVE9fVV9VQ0hBUlNfTEVOR1RIID0gRVhUX1RPX1VfVUNIQVJTX0lOREVYICsgMTsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfVUNIQVJTX0lOREVYID0gRVhUX1RPX1VfVUNIQVJTX0xFTkdUSCArIDE7ICAgICAgIC8qIDUgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX1ZBTFVFU19JTkRFWCA9IEVYVF9GUk9NX1VfVUNIQVJTX0lOREVYICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX0xFTkdUSCA9IEVYVF9GUk9NX1VfVkFMVUVTX0lOREVYICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX0JZVEVTX0lOREVYID0gRVhUX0ZST01fVV9MRU5HVEggKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfQllURVNfTEVOR1RIID0gRVhUX0ZST01fVV9CWVRFU19JTkRFWCArIDE7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX1NUQUdFXzEyX0lOREVYID0gRVhUX0ZST01fVV9CWVRFU19MRU5HVEggKyAxOyAgICAgLyogMTAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX1NUQUdFXzFfTEVOR1RIID0gRVhUX0ZST01fVV9TVEFHRV8xMl9JTkRFWCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX0ZST01fVV9TVEFHRV8xMl9MRU5HVEggPSBFWFRfRlJPTV9VX1NUQUdFXzFfTEVOR1RIICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX1NUQUdFXzNfSU5ERVggPSBFWFRfRlJPTV9VX1NUQUdFXzEyX0xFTkdUSCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX0ZST01fVV9TVEFHRV8zX0xFTkdUSCA9IEVYVF9GUk9NX1VfU1RBR0VfM19JTkRFWCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX0ZST01fVV9TVEFHRV8zQl9JTkRFWCA9IEVYVF9GUk9NX1VfU1RBR0VfM19MRU5HVEggKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfU1RBR0VfM0JfTEVOR1RIID0gRVhUX0ZST01fVV9TVEFHRV8zQl9JTkRFWCArIDE7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfQ09VTlRfQllURVMgPSBFWFRfRlJPTV9VX1NUQUdFXzNCX0xFTkdUSCArIDE7ICAgICAgICAgICAgICAgLyogMTcgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfQ09VTlRfVUNIQVJTID0gRVhUX0NPVU5UX0JZVEVTICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRkxBR1MgPSBFWFRfQ09VTlRfVUNIQVJTICsgMTsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9SRVNFUlZFRF9JTkRFWCA9IEVYVF9GTEFHUyArIDE7ICAgICAgICAgICAgLyogMjAsIG1vdmVzIHdpdGggYWRkaXRpb25hbCBpbmRleGVzICovCisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfU0laRT0zMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfSU5ERVhFU19NSU5fTEVOR1RIPTMyOworICAgIAorICAgIC8qIHRvVW5pY29kZSBoZWxwZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVE9fVV9CWVRFX1NISUZUID0gMjQ7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVE9fVV9WQUxVRV9NQVNLID0gMHhmZmZmZmY7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVE9fVV9NSU5fQ09ERV9QT0lOVCA9IDB4MWYwMDAwOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFRPX1VfTUFYX0NPREVfUE9JTlQgPSAweDJmZmZmZjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBUT19VX1JPVU5EVFJJUF9GTEFHID0gKDE8PDIzKTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBUT19VX0lOREVYX01BU0sgPSAweDNmZmZmOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFRPX1VfTEVOR1RIX1NISUZUID0gMTg7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVE9fVV9MRU5HVEhfT0ZGU0VUID0gMTI7CisgICAgCisgICAgLyogbWF4aW11bSBudW1iZXIgb2YgaW5kZXhlZCBVQ2hhcnMgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhfVUNIQVJTID0gMTk7CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgVE9fVV9HRVRfQllURShpbnQgd29yZCkKKyAgICB7CisgICAgICAgIHJldHVybiB3b3JkPj4+VE9fVV9CWVRFX1NISUZUOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBUT19VX0dFVF9WQUxVRShpbnQgd29yZCkKKyAgICB7CisgICAgICAgIHJldHVybiB3b3JkJlRPX1VfVkFMVUVfTUFTSzsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIFRPX1VfSVNfUk9VTkRUUklQKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiAodmFsdWUmVE9fVV9ST1VORFRSSVBfRkxBRykhPTA7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBUT19VX0lTX1BBUlRJQUwoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICh2YWx1ZSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKTxUT19VX01JTl9DT0RFX1BPSU5UOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBUT19VX0dFVF9QQVJUSUFMX0lOREVYKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgVE9fVV9NQVNLX1JPVU5EVFJJUChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWUmflRPX1VfUk9VTkRUUklQX0ZMQUc7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IFRPX1VfTUFLRV9XT1JEKGJ5dGUgYiwgaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgoYiZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PFRPX1VfQllURV9TSElGVCl8dmFsdWU7CisgICAgfQorICAgIAorICAgIC8qIHVzZSBhZnRlciBtYXNraW5nIG9mZiB0aGUgcm91bmR0cmlwIGZsYWcgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGJvb2xlYW4gVE9fVV9JU19DT0RFX1BPSU5UKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiAodmFsdWUmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSyk8PVRPX1VfTUFYX0NPREVfUE9JTlQ7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IFRPX1VfR0VUX0NPREVfUE9JTlQoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChpbnQpKCh2YWx1ZSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKS1UT19VX01JTl9DT0RFX1BPSU5UKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgVE9fVV9HRVRfSU5ERVgoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlJlRPX1VfSU5ERVhfTUFTSzsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgVE9fVV9HRVRfTEVOR1RIKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiAodmFsdWU+Pj5UT19VX0xFTkdUSF9TSElGVCktVE9fVV9MRU5HVEhfT0ZGU0VUOworICAgIH0KKyAgICAKKyAgICAvKiBmcm9tVW5pY29kZSBoZWxwZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgIAorICAgIC8qIG1vc3QgdHJpZSBjb25zdGFudHMgYXJlIHNoYXJlZCB3aXRoIHVjbnZtYmNzLmggKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBTVEFHRV8yX0xFRlRfU0hJRlQgPSAyOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNUQUdFXzNfR1JBTlVMQVJJVFkgPSA0OworICAgIAorICAgIC8qIHRyaWUgYWNjZXNzLCByZXR1cm5zIHRoZSBzdGFnZSAzIHZhbHVlPWluZGV4IHRvIHN0YWdlIDNiOyBzMUluZGV4PWM+PjEwICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgRlJPTV9VKENoYXJCdWZmZXIgc3RhZ2UxMiwgQ2hhckJ1ZmZlciBzdGFnZTMsIGludCBzMUluZGV4LCBpbnQgYykKKyAgICB7CisgICAgICAgIHJldHVybiBzdGFnZTMuZ2V0KHN0YWdlMy5wb3NpdGlvbigpICsgKChpbnQpc3RhZ2UxMi5nZXQoIHN0YWdlMTIucG9zaXRpb24oKSArIChzdGFnZTEyLmdldChzdGFnZTEyLnBvc2l0aW9uKCkrczFJbmRleCkgKygoYz4+PjQpJjB4M2YpKSApPDxTVEFHRV8yX0xFRlRfU0hJRlQpICsoYyYweGYpICk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEZST01fVV9MRU5HVEhfU0hJRlQgPSAyNDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBGUk9NX1VfUk9VTkRUUklQX0ZMQUcgPSAxPDwzMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBGUk9NX1VfUkVTRVJWRURfTUFTSyA9IDB4NjAwMDAwMDA7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRlJPTV9VX0RBVEFfTUFTSyA9IDB4ZmZmZmZmOworICAgIAorICAgIC8qIHNwZWNpYWwgdmFsdWUgZm9yICJubyBtYXBwaW5nIiB0byA8c3ViY2hhcjE+IChpbXBvc3NpYmxlIHJvdW5kdHJpcCB0byAwIGJ5dGVzLCB2YWx1ZSAwMSkgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBGUk9NX1VfU1VCQ0hBUjEgPSAweDgwMDAwMDAxOworICAgIAorICAgIC8qIGF0IG1vc3QgMyBieXRlcyBpbiB0aGUgbG93ZXIgcGFydCBvZiB0aGUgdmFsdWUgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBGUk9NX1VfTUFYX0RJUkVDVF9MRU5HVEggPSAzOworICAgIAorICAgIC8qIG1heGltdW0gbnVtYmVyIG9mIGluZGV4ZWQgYnl0ZXMgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhfQllURVMgPSAweDFmOworICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBGUk9NX1VfSVNfUEFSVElBTChpbnQgdmFsdWUpIHtyZXR1cm4gKHZhbHVlPj4+RlJPTV9VX0xFTkdUSF9TSElGVCk9PTA7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IEZST01fVV9HRVRfUEFSVElBTF9JTkRFWChpbnQgdmFsdWUpIHtyZXR1cm4gdmFsdWU7fQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBGUk9NX1VfSVNfUk9VTkRUUklQKGludCB2YWx1ZSkge3JldHVybiAodmFsdWUmRlJPTV9VX1JPVU5EVFJJUF9GTEFHKSE9MDt9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgRlJPTV9VX01BU0tfUk9VTkRUUklQKGludCB2YWx1ZSkge3JldHVybiB2YWx1ZSZ+RlJPTV9VX1JPVU5EVFJJUF9GTEFHO30KKyAgICAKKyAgICAvKiB1c2UgYWZ0ZXIgbWFza2luZyBvZmYgdGhlIHJvdW5kdHJpcCBmbGFnICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgRlJPTV9VX0dFVF9MRU5HVEgoaW50IHZhbHVlKSB7cmV0dXJuICh2YWx1ZT4+PkZST01fVV9MRU5HVEhfU0hJRlQpJk1BWF9CWVRFUzt9CisgICAgCisgICAgLyogZ2V0IGJ5dGVzIG9yIGJ5dGVzIGluZGV4ICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgRlJPTV9VX0dFVF9EQVRBKGludCB2YWx1ZSkge3JldHVybiB2YWx1ZSZGUk9NX1VfREFUQV9NQVNLO30KKyAgICAKKyAgICAvKiBnZXQgdGhlIHBvaW50ZXIgdG8gYW4gZXh0ZW5zaW9uIGFycmF5IGZyb20gaW5kZXhlc1tpbmRleF0gKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIEJ1ZmZlciBBUlJBWShCeXRlQnVmZmVyIGluZGV4ZXMsIGludCBpbmRleCwgQ2xhc3MgaXRlbVR5cGUpCisgICAgeworICAgICAgICBpbnQgb2xkcG9zID0gaW5kZXhlcy5wb3NpdGlvbigpOworICAgICAgICBCdWZmZXIgYjsKKyAgICAKKyAgICAgICAgaW5kZXhlcy5wb3NpdGlvbihpbmRleGVzLmdldEludChpbmRleCo0KSk7CisgICAgICAgIGlmKGl0ZW1UeXBlID09IGludC5jbGFzcykKKyAgICAgICAgICAgIGIgPSBpbmRleGVzLmFzSW50QnVmZmVyKCk7CisgICAgICAgIGVsc2UgaWYoaXRlbVR5cGUgPT0gc2hvcnQuY2xhc3MpCisgICAgICAgICAgICBiID0gaW5kZXhlcy5hc1Nob3J0QnVmZmVyKCk7CisgICAgICAgIGVsc2UgaWYoaXRlbVR5cGUgPT0gYnl0ZS5jbGFzcykKKyAgICAgICAgICAgIGIgPSBpbmRleGVzLnNsaWNlKCk7CisgICAgICAgIGVsc2UgaWYoaXRlbVR5cGUgPT0gY2hhci5jbGFzcykKKyAgICAgICAgICAgIGIgPSBpbmRleGVzLmFzQ2hhckJ1ZmZlcigpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBiID0gaW5kZXhlcy5zbGljZSgpOworICAgICAgICBpbmRleGVzLnBvc2l0aW9uKG9sZHBvcyk7CisgICAgICAgIHJldHVybiBiOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBHRVRfTUFYX0JZVEVTX1BFUl9VQ0hBUihCeXRlQnVmZmVyIGluZGV4ZXMpIAorICAgIHsKKyAgICAgICAgaW5kZXhlcy5wb3NpdGlvbigwKTsgICAgICAgIAorICAgICAgICByZXR1cm4gaW5kZXhlcy5nZXRJbnQoRVhUX0NPVU5UX0JZVEVTKSYweGZmOyAKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBAcmV0dXJuIGluZGV4IG9mIHRoZSBVQ2hhciwgaWYgZm91bmQ7IGVsc2UgPDAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBmaW5kRnJvbVUoQ2hhckJ1ZmZlciBmcm9tVVNlY3Rpb24sIGludCBsZW5ndGgsIGNoYXIgdSkKKyAgICB7CisgICAgICAgIGludCBpLCBzdGFydCwgbGltaXQ7CisgICAgCisgICAgICAgIC8qIGJpbmFyeSBzZWFyY2ggKi8KKyAgICAgICAgc3RhcnQ9MDsKKyAgICAgICAgbGltaXQ9bGVuZ3RoOworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGk9bGltaXQtc3RhcnQ7CisgICAgICAgICAgICBpZihpPD0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7IC8qIGRvbmUgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIHN0YXJ0PGxpbWl0LTEgKi8KKyAgICAKKyAgICAgICAgICAgIGlmKGk8PTQpIHsKKyAgICAgICAgICAgICAgICAvKiBsaW5lYXIgc2VhcmNoIGZvciB0aGUgbGFzdCBwYXJ0ICovCisgICAgICAgICAgICAgICAgaWYodTw9ZnJvbVVTZWN0aW9uLmdldChmcm9tVVNlY3Rpb24ucG9zaXRpb24oKSArIHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoKytzdGFydDxsaW1pdCAmJiB1PD1mcm9tVVNlY3Rpb24uZ2V0KGZyb21VU2VjdGlvbi5wb3NpdGlvbigpICtzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKCsrc3RhcnQ8bGltaXQgJiYgdTw9ZnJvbVVTZWN0aW9uLmdldChmcm9tVVNlY3Rpb24ucG9zaXRpb24oKSArIHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogYWx3YXlzIGJyZWFrIGF0IHN0YXJ0PT1saW1pdC0xICovCisgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGk9KHN0YXJ0K2xpbWl0KS8yOworICAgICAgICAgICAgaWYodTxmcm9tVVNlY3Rpb24uZ2V0KGZyb21VU2VjdGlvbi5wb3NpdGlvbigpICtpKSkgeworICAgICAgICAgICAgICAgIGxpbWl0PWk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0PWk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogZGlkIHdlIHJlYWxseSBmaW5kIGl0PyAqLworICAgICAgICBpZihzdGFydDxsaW1pdCAmJiB1PT1mcm9tVVNlY3Rpb24uZ2V0KGZyb21VU2VjdGlvbi5wb3NpdGlvbigpICtzdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsgLyogbm90IGZvdW5kICovCisgICAgICAgIH0KKyAgICB9ICAgIAorICAgIAorICAgIC8qCisgICAgICogQHJldHVybiBsb29rdXAgdmFsdWUgZm9yIHRoZSBieXRlLCBpZiBmb3VuZDsgZWxzZSAwCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgZmluZFRvVShJbnRCdWZmZXIgdG9VU2VjdGlvbiwgaW50IGxlbmd0aCwgc2hvcnQgYnl0KQorICAgIHsKKyAgICAgICAgbG9uZyB3b3JkMCwgd29yZDsKKyAgICAgICAgaW50IGksIHN0YXJ0LCBsaW1pdDsKKyAgICAKKyAgICAgICAgLyogY2hlY2sgdGhlIGlucHV0IGJ5dGUgYWdhaW5zdCB0aGUgbG93ZXN0IGFuZCBoaWdoZXN0IHNlY3Rpb24gYnl0ZXMgKi8KKyAgICAgICAgICAgIC8vYWdsanBvcnQ6Y29tbWVudCBpbnN0ZWFkIG9mIHJlY2VpdmluZyBhIHN0YXJ0IHBvc2l0aW9uIHBhcmFtZXRlciBmb3IgdG9VU2VjdGlvbiB3ZSdsbCByZWx5IG9uIGl0cyBwb3NpdGlvbiBwcm9wZXJ0eQorICAgICAgICBzdGFydCA9IFRPX1VfR0VUX0JZVEUodG9VU2VjdGlvbi5nZXQodG9VU2VjdGlvbi5wb3NpdGlvbigpKSk7CisgICAgICAgIGxpbWl0ID0gVE9fVV9HRVRfQllURSh0b1VTZWN0aW9uLmdldCh0b1VTZWN0aW9uLnBvc2l0aW9uKCkgKyBsZW5ndGgtMSkpOworICAgICAgICBpZihieXQ8c3RhcnQgfHwgbGltaXQ8Ynl0KSB7CisgICAgICAgICAgICByZXR1cm4gMDsgLyogdGhlIGJ5dGUgaXMgb3V0IG9mIHJhbmdlICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYobGVuZ3RoPT0oKGxpbWl0LXN0YXJ0KSsxKSkgeworICAgICAgICAgICAgLyogZGlyZWN0IGFjY2VzcyBvbiBhIGxpbmVhciBhcnJheSAqLworICAgICAgICAgICAgcmV0dXJuIFRPX1VfR0VUX1ZBTFVFKHRvVVNlY3Rpb24uZ2V0KHRvVVNlY3Rpb24ucG9zaXRpb24oKStieXQtc3RhcnQpKTsgLyogY291bGQgYmUgMCAqLworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIHdvcmQwIGlzIHN1aXRhYmxlIGZvciA8PXRvVVNlY3Rpb25bXSBjb21wYXJpc29uLCB3b3JkIGZvciA8dG9VU2VjdGlvbltdICovCisgICAgICAgIHdvcmQwID0gVE9fVV9NQUtFX1dPUkQoKGJ5dGUpYnl0LCAwKSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0s7CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIFNoaWZ0IGJ5dGUgb25jZSBpbnN0ZWFkIG9mIGVhY2ggc2VjdGlvbiB3b3JkIGFuZCBhZGQgMHhmZmZmZmYuCisgICAgICAgICAqIFdlIHdpbGwgY29tcGFyZSB0aGUgc2hpZnRlZC9hZGRlZCBieXRlIChiYmZmZmZmZikgYWdhaW5zdAorICAgICAgICAgKiBzZWN0aW9uIHdvcmRzIHdoaWNoIGhhdmUgYnl0ZSB2YWx1ZXMgaW4gdGhlIHNhbWUgYml0IHBvc2l0aW9uLgorICAgICAgICAgKiBJZiBhbmQgb25seSBpZiBieXRlIGJiIDwgc2VjdGlvbiBieXRlIHNzIHRoZW4gYmJmZmZmZmY8c3N2dnZ2dnYKKyAgICAgICAgICogZm9yIGFsbCB2PTAuLmYKKyAgICAgICAgICogc28gd2UgbmVlZCBub3QgbWFzayBvZmYgdGhlIGxvd2VyIDI0IGJpdHMgb2YgZWFjaCBzZWN0aW9uIHdvcmQuCisgICAgICAgICAqLworICAgICAgICB3b3JkID0gd29yZDB8VE9fVV9WQUxVRV9NQVNLOworICAgIAorICAgICAgICAvKiBiaW5hcnkgc2VhcmNoICovCisgICAgICAgIHN0YXJ0ID0gMDsKKyAgICAgICAgbGltaXQgPSBsZW5ndGg7CisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgaT1saW1pdC1zdGFydDsKKyAgICAgICAgICAgIGlmKGk8PTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogZG9uZSAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogc3RhcnQ8bGltaXQtMSAqLworICAgIAorICAgICAgICAgICAgaWYoaTw9NCkgeworICAgICAgICAgICAgICAgIC8qIGxpbmVhciBzZWFyY2ggZm9yIHRoZSBsYXN0IHBhcnQgKi8KKyAgICAgICAgICAgICAgICBpZih3b3JkMDw9KHRvVVNlY3Rpb24uZ2V0KHRvVVNlY3Rpb24ucG9zaXRpb24oKStzdGFydCkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoKytzdGFydDxsaW1pdCAmJiB3b3JkMDw9KHRvVVNlY3Rpb24uZ2V0KHRvVVNlY3Rpb24ucG9zaXRpb24oKStzdGFydCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKCsrc3RhcnQ8bGltaXQgJiYgd29yZDA8PSh0b1VTZWN0aW9uLmdldCh0b1VTZWN0aW9uLnBvc2l0aW9uKCkrc3RhcnQpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiBhbHdheXMgYnJlYWsgYXQgc3RhcnQ9PWxpbWl0LTEgKi8KKyAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaT0oc3RhcnQrbGltaXQpLzI7CisgICAgICAgICAgICBpZih3b3JkPCh0b1VTZWN0aW9uLmdldCh0b1VTZWN0aW9uLnBvc2l0aW9uKCkraSkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykpIHsKKyAgICAgICAgICAgICAgICBsaW1pdD1pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFydD1pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGRpZCB3ZSByZWFsbHkgZmluZCBpdD8gKi8KKyAgICAgICAgaWYoc3RhcnQ8bGltaXQgJiYgYnl0PT1UT19VX0dFVF9CWVRFKChpbnQpKHdvcmQ9KHRvVVNlY3Rpb24uZ2V0KHRvVVNlY3Rpb24ucG9zaXRpb24oKStzdGFydCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykpKSkgeworICAgICAgICAgICAgcmV0dXJuIFRPX1VfR0VUX1ZBTFVFKChpbnQpd29yZCk7IC8qIG5ldmVyIDAgKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOyAvKiBub3QgZm91bmQgKi8KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIFRSVUUgaWYgbm90IGFuIFNJL1NPIHN0YXRlZnVsIGNvbnZlcnRlciwKKyAgICAgKiBvciBpZiB0aGUgbWF0Y2ggbGVuZ3RoIGZpdHMgd2l0aCB0aGUgY3VycmVudCBjb252ZXJ0ZXIgc3RhdGUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGJvb2xlYW4gVE9fVV9WRVJJRllfU0lTT19NQVRDSChieXRlIHNpc29TdGF0ZSwgaW50IG1hdGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNpc29TdGF0ZTwwIHx8IChzaXNvU3RhdGU9PTApID09IChtYXRjaD09MSk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogZ2V0IHRoZSBTSS9TTyB0b1Ugc3RhdGUgKHN0YXRlIDAgaXMgZm9yIFNCQ1MsIDEgZm9yIERCQ1MpLAorICAgICAqIG9yIDEgZm9yIERCQ1Mtb25seSwKKyAgICAgKiBvciAtMSBpZiB0aGUgY29udmVydGVyIGlzIG5vdCBTSS9TTyBzdGF0ZWZ1bAorICAgICAqCisgICAgICogTm90ZTogRm9yIFNJL1NPIHN0YXRlZnVsIGNvbnZlcnRlcnMgZ2V0dGluZyBoZXJlLAorICAgICAqIGNudi0+bW9kZT09MCBpcyBlcXVpdmFsZW50IHRvIGZpcnN0TGVuZ3RoPT0xLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IFNJU09fU1RBVEUoVUNvbnZlcnRlclNoYXJlZERhdGEgc2hhcmVkRGF0YSwgaW50IG1vZGUpCisgICAgeworICAgICAgIHJldHVybiBzaGFyZWREYXRhLm1iY3Mub3V0cHV0VHlwZT09TUJDU19PVVRQVVRfMl9TSVNPID8gKGJ5dGUpbW9kZSA6CisgICAgICAgICBzaGFyZWREYXRhLm1iY3Mub3V0cHV0VHlwZT09TUJDU19PVVRQVVRfREJDU19PTkxZID8gMSA6IC0xOworICAgIH0KKyAgICAKKyAgICBjbGFzcyBDaGFyc2V0RGVjb2Rlck1CQ1MgZXh0ZW5kcyBDaGFyc2V0RGVjb2RlcklDVXsKKworICAgICAgICBDaGFyc2V0RGVjb2Rlck1CQ1MoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdFtdIGNyID0ge0NvZGVyUmVzdWx0LlVOREVSRkxPV307CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgaW50IHN0YXRlVGFibGVbXVsvKjI1NiovXTsKKyAgICAgICAgICAgIGNoYXJbXSB1bmljb2RlQ29kZVVuaXRzOworICAgIAorICAgICAgICAgICAgaW50IG9mZnNldDsKKyAgICAgICAgICAgIGJ5dGUgc3RhdGU7CisgICAgICAgICAgICBpbnQgYnl0ZUluZGV4OworICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzOworICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4OworICAgIAorICAgICAgICAgICAgaW50IGVudHJ5ID0gMDsKKyAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgIGJ5dGUgYWN0aW9uOworICAgICAgICAKKyAgICAgICAgICAgIGlmKHByZVRvVUxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBwYXNzIHNvdXJjZUluZGV4PS0xIGJlY2F1c2Ugd2UgY29udGludWUgZnJvbSBhbiBlYXJsaWVyIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAqIGluIHRoZSBmdXR1cmUsIHRoaXMgbWF5IGNoYW5nZSB3aXRoIGNvbnRpbnVvdXMgb2Zmc2V0cworICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGNyWzBdID0gY29udGludWVNYXRjaFRvVShzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgLTEsIGZsdXNoKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpIHx8IHByZVRvVUxlbmd0aDwwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoc2hhcmVkRGF0YS5tYmNzLmNvdW50U3RhdGVzPT0xKSB7CisgICAgICAgICAgICAgICAgaWYoKHNoYXJlZERhdGEubWJjcy51bmljb2RlTWFzayZVQ29udmVydGVyQ29uc3RhbnRzLkhBU19TVVBQTEVNRU5UQVJZKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gY252TUJDU1NpbmdsZVRvQk1QV2l0aE9mZnNldHMoc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGZsdXNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gY252TUJDU1NpbmdsZVRvVW5pY29kZVdpdGhPZmZzZXRzKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBmbHVzaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIHNldCB1cCB0aGUgbG9jYWwgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoKG9wdGlvbnMmVUNvbnZlcnRlckNvbnN0YW50cy5PUFRJT05fU1dBUF9MRk5MKSE9MCkgeworICAgICAgICAgICAgICAgIHN0YXRlVGFibGUgPSBzaGFyZWREYXRhLm1iY3Muc3dhcExGTkxTdGF0ZVRhYmxlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhdGVUYWJsZSA9IHNoYXJlZERhdGEubWJjcy5zdGF0ZVRhYmxlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdW5pY29kZUNvZGVVbml0cyA9IHNoYXJlZERhdGEubWJjcy51bmljb2RlQ29kZVVuaXRzOworICAgICAgICAKKyAgICAgICAgICAgIC8qIGdldCB0aGUgY29udmVydGVyIHN0YXRlIGZyb20gVUNvbnZlcnRlciAqLworICAgICAgICAgICAgb2Zmc2V0ID0gKGludCl0b1VuaWNvZGVTdGF0dXM7CisgICAgICAgICAgICBieXRlSW5kZXggPSB0b1VMZW5ndGg7CisgICAgICAgICAgICBieXRlcyA9IHRvVUJ5dGVzQXJyYXk7CisgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogaWYgd2UgYXJlIGluIHRoZSBTQkNTIHN0YXRlIGZvciBhIERCQ1Mtb25seSBjb252ZXJ0ZXIsCisgICAgICAgICAgICAgKiB0aGVuIGxvYWQgdGhlIERCQ1Mgc3RhdGUgZnJvbSB0aGUgTUJDUyBkYXRhCisgICAgICAgICAgICAgKiAoZGJjc09ubHlTdGF0ZT09MCBpZiBpdCBpcyBub3QgYSBEQkNTLW9ubHkgY29udmVydGVyKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZigoc3RhdGU9KGJ5dGUpKG1vZGUpKT09MCkgeworICAgICAgICAgICAgICAgIHN0YXRlID0gc2hhcmVkRGF0YS5tYmNzLmRiY3NPbmx5U3RhdGU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBzb3VyY2VJbmRleD0tMSBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYmVnYW4gaW4gdGhlIHByZXZpb3VzIGJ1ZmZlciAqLworICAgICAgICAgICAgc291cmNlSW5kZXggPSBieXRlSW5kZXg9PTAgPyAwIDogLTE7CisgICAgICAgICAgICBuZXh0U291cmNlSW5kZXggPSAwOworICAgICAgICAKKyAgICAgICAgICAgIC8qIGNvbnZlcnNpb24gbG9vcCAqLworICAgICAgICAgICAgd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhpcyBmb2xsb3dpbmcgdGVzdCBpcyB0byBzZWUgaWYgYXZhaWxhYmxlIGlucHV0IHdvdWxkIG92ZXJmbG93IHRoZSBvdXRwdXQuCisgICAgICAgICAgICAgICAgICogSXQgZG9lcyBub3QgY2F0Y2ggb3V0cHV0IG9mIG1vcmUgdGhhbiBvbmUgY29kZSB1bml0IHRoYXQKKyAgICAgICAgICAgICAgICAgKiBvdmVyZmxvd3MgYXMgYSByZXN1bHQgb2YgYSBzdXJyb2dhdGUgcGFpciBvciBjYWxsYmFjayBvdXRwdXQKKyAgICAgICAgICAgICAgICAgKiBmcm9tIHRoZSBsYXN0IHNvdXJjZSBieXRlLgorICAgICAgICAgICAgICAgICAqIFRoZXJlZm9yZSwgdGhvc2Ugc2l0dWF0aW9ucyBhbHNvIHRlc3QgZm9yIG92ZXJmbG93cyBhbmQgd2lsbAorICAgICAgICAgICAgICAgICAqIHRoZW4gYnJlYWsgdGhlIGxvb3AsIHRvby4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoYnl0ZUluZGV4PT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG9wdGltaXplZCBsb29wIGZvciAxLzItYnl0ZSBpbnB1dCBhbmQgQk1QIG91dHB1dCAqLworICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBzdGF0ZVRhYmxlW3N0YXRlXVtzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0tdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKE1CQ1NfRU5UUllfSVNfVFJBTlNJVElPTihlbnRyeSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAoYnl0ZSlNQkNTX0VOVFJZX1RSQU5TSVRJT05fU1RBVEUoZW50cnkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBNQkNTX0VOVFJZX1RSQU5TSVRJT05fT0ZGU0VUKGVudHJ5KTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJDU19FTlRSWV9JU19GSU5BTChlbnRyeT1zdGF0ZVRhYmxlW3N0YXRlXVtzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0tdKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJDU19FTlRSWV9GSU5BTF9BQ1RJT04oZW50cnkpPT1NQkNTX1NUQVRFX1ZBTElEXzE2ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYz11bmljb2RlQ29kZVVuaXRzW29mZnNldCtNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KV0pPDB4ZmZmZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpTUJDU19FTlRSWV9GSU5BTF9TVEFURShlbnRyeSk7IC8qIHR5cGljYWxseSAwICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgc3RhdGUgYW5kIGxlYXZlIHRoZSBvcHRpbWl6ZWQgbG9vcCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNbMF0gPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihNQkNTX0VOVFJZX0ZJTkFMX0lTX1ZBTElEX0RJUkVDVF8xNihlbnRyeSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcilNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IChieXRlKU1CQ1NfRU5UUllfRklOQUxfU1RBVEUoZW50cnkpOyAvKiB0eXBpY2FsbHkgMCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxlYXZlIHRoZSBvcHRpbWl6ZWQgbG9vcCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSAvKiBvZmZzZXRzIT1OVUxMICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIHNlZSB1Y252bWJjcy5jIGZvciBkZWxldGVkIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBzdGF0ZVRhYmxlW3N0YXRlXVtzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihNQkNTX0VOVFJZX0lTX1RSQU5TSVRJT04oZW50cnkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpTUJDU19FTlRSWV9UUkFOU0lUSU9OX1NUQVRFKGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gTUJDU19FTlRSWV9UUkFOU0lUSU9OX09GRlNFVChlbnRyeSk7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJDU19FTlRSWV9JU19GSU5BTChlbnRyeT1zdGF0ZVRhYmxlW3N0YXRlXVtzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpXSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJDU19FTlRSWV9GSU5BTF9BQ1RJT04oZW50cnkpPT1NQkNTX1NUQVRFX1ZBTElEXzE2ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjPXVuaWNvZGVDb2RlVW5pdHNbb2Zmc2V0K01CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpXSk8MHhmZmZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0gKG5leHRTb3VyY2VJbmRleCs9Mik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IChieXRlKU1CQ1NfRU5UUllfRklOQUxfU1RBVEUoZW50cnkpOyAvKiB0eXBpY2FsbHkgMCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIHN0YXRlIGFuZCBsZWF2ZSB0aGUgb3B0aW1pemVkIGxvb3AgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrbmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNbMF0gPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihNQkNTX0VOVFJZX0ZJTkFMX0lTX1ZBTElEX0RJUkVDVF8xNihlbnRyeSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcilNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0gKytuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IChieXRlKU1CQ1NfRU5UUllfRklOQUxfU1RBVEUoZW50cnkpOyAvKiB0eXBpY2FsbHkgMCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxlYXZlIHRoZSBvcHRpbWl6ZWQgbG9vcCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiB0aGVzZSB0ZXN0cyBhbmQgYnJlYWsgc3RhdGVtZW50cyBjb3VsZCBiZSBwdXQgaW5zaWRlIHRoZSBsb29wCisgICAgICAgICAgICAgICAgICAgICAqIGlmIEMgaGFkICJicmVhayBvdXRlckxvb3AiIGxpa2UgSmF2YQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoc291cmNlQXJyYXlJbmRleD49c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKCF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgKytuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGJ5dGVzW2J5dGVJbmRleCsrXSA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICB9ICAgCisgICAgICAgICAgICAgICAgZWxzZSAvKiBieXRlSW5kZXg+MCAqLyB7CisgICAgICAgICAgICAgICAgICAgICsrbmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IHN0YXRlVGFibGVbc3RhdGVdWyhieXRlc1tieXRlSW5kZXgrK10gPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKykpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0tdOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZihNQkNTX0VOVFJZX0lTX1RSQU5TSVRJT04oZW50cnkpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpTUJDU19FTlRSWV9UUkFOU0lUSU9OX1NUQVRFKGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IE1CQ1NfRU5UUllfVFJBTlNJVElPTl9PRkZTRVQoZW50cnkpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLyogc2F2ZSB0aGUgcHJldmlvdXMgc3RhdGUgZm9yIHByb3BlciBleHRlbnNpb24gbWFwcGluZyB3aXRoIFNJL1NPLXN0YXRlZnVsIGNvbnZlcnRlcnMgKi8KKyAgICAgICAgICAgICAgICBtb2RlID0gc3RhdGU7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgbmV4dCBzdGF0ZSBlYXJseSBzbyB0aGF0IHdlIGNhbiByZXVzZSB0aGUgZW50cnkgdmFyaWFibGUgKi8KKyAgICAgICAgICAgICAgICBzdGF0ZSA9IChieXRlKU1CQ1NfRU5UUllfRklOQUxfU1RBVEUoZW50cnkpOyAvKiB0eXBpY2FsbHkgMCAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEFuIGlmLWVsc2UtaWYgY2hhaW4gcHJvdmlkZXMgbW9yZSByZWxpYWJsZSBwZXJmb3JtYW5jZSBmb3IKKyAgICAgICAgICAgICAgICAgKiB0aGUgbW9zdCBjb21tb24gY2FzZXMgY29tcGFyZWQgdG8gYSBzd2l0Y2guCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgYWN0aW9uID0gKGJ5dGUpKE1CQ1NfRU5UUllfRklOQUxfQUNUSU9OKGVudHJ5KSk7CisgICAgICAgICAgICAgICAgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX1ZBTElEXzE2KSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHVuaWNvZGVDb2RlVW5pdHNbb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzwweGZmZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoYz09MHhmZmZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihpc1RvVVVzZUZhbGxiYWNrKCkgJiYgKGVudHJ5PShpbnQpZ2V0RmFsbGJhY2soc2hhcmVkRGF0YS5tYmNzLCBvZmZzZXQpKSE9MHhmZmZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IGZhbGxiYWNrIEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcillbnRyeSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKGJ5dGVJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX1ZBTElEX0RJUkVDVF8xNikgeworICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgQk1QIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcilNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmKGFjdGlvbj09TUJDU19TVEFURV9WQUxJRF8xNl9QQUlSKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHVuaWNvZGVDb2RlVW5pdHNbb2Zmc2V0KytdOworICAgICAgICAgICAgICAgICAgICBpZihjPDB4ZDgwMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50IGJlbG93IDB4ZDgwMCAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoaXNUb1VVc2VGYWxsYmFjaygpID8gYzw9MHhkZmZmIDogYzw9MHhkYmZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgcm91bmR0cmlwIG9yIGZhbGxiYWNrIHN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKShjJjB4ZGJmZikpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHVuaWNvZGVDb2RlVW5pdHNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0YXJnZXQgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVswXSA9IHVuaWNvZGVDb2RlVW5pdHNbb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoaXNUb1VVc2VGYWxsYmFjaygpID8gKGMmMHhmZmZlKT09MHhlMDAwIDogYz09MHhlMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgcm91bmR0cmlwIEJNUCBjb2RlIHBvaW50IGFib3ZlIDB4ZDgwMCBvciBmYWxsYmFjayBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh1bmljb2RlQ29kZVVuaXRzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoYz09MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoYnl0ZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfVkFMSURfRElSRUNUXzIwIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aW9uPT1NQkNTX1NUQVRFX0ZBTExCQUNLX0RJUkVDVF8yMCAmJiBpc1RvVVVzZUZhbGxiYWNrKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVudHJ5ID0gTUJDU19FTlRSWV9GSU5BTF9WQUxVRShlbnRyeSk7CisgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBzdXJyb2dhdGUgcGFpciAqLworICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKSgweGQ4MDB8KGNoYXIpKGVudHJ5Pj4xMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGMgPSAoY2hhcikoMHhkYzAwfChjaGFyKShlbnRyeSYweDNmZikpOworICAgICAgICAgICAgICAgICAgICBpZih0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbMF09YzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfQ0hBTkdFX09OTFkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogVGhpcyBzZXJ2ZXMgYXMgYSBzdGF0ZSBjaGFuZ2Ugd2l0aG91dCBhbnkgb3V0cHV0LgorICAgICAgICAgICAgICAgICAgICAgKiBJdCBpcyB1c2VmdWwgZm9yIHJlYWRpbmcgc2ltcGxlIHN0YXRlZnVsIGVuY29kaW5ncywKKyAgICAgICAgICAgICAgICAgICAgICogZm9yIGV4YW1wbGUgdXNpbmcganVzdCBTaGlmdC1Jbi9TaGlmdC1PdXQgY29kZXMuCisgICAgICAgICAgICAgICAgICAgICAqIFRoZSAyMSB1bnVzZWQgYml0cyBtYXkgbGF0ZXIgYmUgdXNlZCBmb3IgbW9yZSBzb3BoaXN0aWNhdGVkCisgICAgICAgICAgICAgICAgICAgICAqIHN0YXRlIHRyYW5zaXRpb25zLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoc2hhcmVkRGF0YS5tYmNzLmRiY3NPbmx5U3RhdGU9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSS9TTyBhcmUgaWxsZWdhbCBmb3IgREJDUy1vbmx5IGNvbnZlcnNpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpKG1vZGUpOyAvKiByZXN0b3JlIHRoZSBwcmV2aW91cyBzdGF0ZSAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChieXRlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX0ZBTExCQUNLX0RJUkVDVF8xNikgeworICAgICAgICAgICAgICAgICAgICBpZihpc1RvVVVzZUZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcilNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmKGFjdGlvbj09TUJDU19TVEFURV9VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgLyoganVzdCBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX0lMTEVHQUwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoYnl0ZUluZGV4KTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiByZXNlcnZlZCwgbXVzdCBuZXZlciBvY2N1ciAqLworICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvKiBlbmQgb2YgYWN0aW9uIGNvZGVzOiBwcmVwYXJlIGZvciBhIG5ldyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICBvZmZzZXQ9MDsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoYnl0ZUluZGV4PT0wKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0gbmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihjclswXS5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIC8qIHVuYXNzaWduZWQgc2VxdWVuY2VzIGluZGljYXRlZCB3aXRoIGJ5dGVJbmRleD4wICovIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdHJ5IGFuIGV4dGVuc2lvbiBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VCZWdpbkluZGV4ID0gc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSB0b1UoYnl0ZUluZGV4LCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlSW5kZXgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSBuZXh0U291cmNlSW5kZXgrKGludCkoc291cmNlQXJyYXlJbmRleC1zb3VyY2VCZWdpbkluZGV4KTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKGNyWzBdLmlzRXJyb3IoKXx8IGNyWzBdLmlzT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm90IG1hcHBhYmxlIG9yIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBzZXQgdGhlIGNvbnZlcnRlciBzdGF0ZSBiYWNrIGludG8gVUNvbnZlcnRlciAqLworICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gb2Zmc2V0OworICAgICAgICAgICAgbW9kZSA9IHN0YXRlOworICAgICAgICAgICAgdG9VTGVuZ3RoID0gYnl0ZUluZGV4OworICAgIAorICAgICAgICAgICAgLyogd3JpdGUgYmFjayB0aGUgdXBkYXRlZCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIGNvbnRpbnVlIHBhcnRpYWwgbWF0Y2ggd2l0aCBuZXcgaW5wdXQKKyAgICAgICAgICogbmV2ZXIgY2FsbGVkIGZvciBzaW1wbGUsIHNpbmdsZS1jaGFyYWN0ZXIgY29udmVyc2lvbgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGNvbnRpbnVlTWF0Y2hUb1UoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgaW50IHNyY0luZGV4LCBib29sZWFuIGZsdXNoKQorICAgICAgICB7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50W10gdmFsdWUgPSBuZXcgaW50WzFdOworICAgICAgICAgICAgaW50IG1hdGNoLCBsZW5ndGg7CisgICAgICAgIAorICAgICAgICAgICAgbWF0Y2ggPSBtYXRjaFRvVSgoYnl0ZSlTSVNPX1NUQVRFKHNoYXJlZERhdGEsIG1vZGUpLCBwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4sIHByZVRvVUxlbmd0aCwgc291cmNlLCB2YWx1ZSwgZmx1c2gpOworICAgICAgICAKKyAgICAgICAgICAgIGlmKG1hdGNoPjApIHsKKyAgICAgICAgICAgICAgICBpZihtYXRjaD49cHJlVG9VTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGFkdmFuY2Ugc3JjIHBvaW50ZXIgZm9yIHRoZSBjb25zdW1lZCBpbnB1dCAqLworICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkrbWF0Y2gtcHJlVG9VTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgcHJlVG9VTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBtYXRjaCBkaWQgbm90IHVzZSBhbGwgb2YgcHJlVG9VW10gLSBrZWVwIHRoZSByZXN0IGZvciByZXBsYXkgKi8KKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gcHJlVG9VTGVuZ3RoIC0gbWF0Y2g7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocHJlVG9VQXJyYXksIHByZVRvVUJlZ2luK21hdGNoLCBwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4sIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIHByZVRvVUxlbmd0aD0oYnl0ZSktbGVuZ3RoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogd3JpdGUgcmVzdWx0ICovCisgICAgICAgICAgICAgICAgY3IgPSB3cml0ZVRvVSh2YWx1ZVswXSwgdGFyZ2V0LCBvZmZzZXRzLCBzcmNJbmRleCk7ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmKG1hdGNoPDApIHsKKyAgICAgICAgICAgICAgICAvKiBzYXZlIHN0YXRlIGZvciBwYXJ0aWFsIG1hdGNoICovCisgICAgICAgICAgICAgICAgaW50IGosIHNBcnJheUluZGV4OworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBqdXN0IF9hcHBlbmRfIHRoZSBuZXdseSBjb25zdW1lZCBpbnB1dCB0byBwcmVUb1VbXSAqLworICAgICAgICAgICAgICAgIHNBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgbWF0Y2ggPS0gbWF0Y2g7CisgICAgICAgICAgICAgICAgZm9yKGo9cHJlVG9VTGVuZ3RoOyBqPG1hdGNoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgcHJlVG9VQXJyYXlbal0gPSBzb3VyY2UuZ2V0KHNBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc0FycmF5SW5kZXgpOyAvKiBzYW1lIGFzICpzcmM9c3JjTGltaXQ7IGJlY2F1c2Ugd2UgcmVhY2hlZCB0aGUgZW5kIG9mIGlucHV0ICovCisgICAgICAgICAgICAgICAgcHJlVG9VTGVuZ3RoPShieXRlKW1hdGNoOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgLyogbWF0Y2g9PTAgKi8geworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogbm8gbWF0Y2gKKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIFdlIG5lZWQgdG8gc3BsaXQgdGhlIHByZXZpb3VzIGlucHV0IGludG8gdHdvIHBhcnRzOgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogMS4gVGhlIGZpcnN0IGNvZGVwYWdlIGNoYXJhY3RlciBpcyB1bm1hcHBhYmxlIC0gdGhhdCdzIGhvdyB3ZSBnb3QgaW50bworICAgICAgICAgICAgICAgICAqICAgIHRyeWluZyB0aGUgZXh0ZW5zaW9uIGRhdGEgaW4gdGhlIGZpcnN0IHBsYWNlLgorICAgICAgICAgICAgICAgICAqICAgIFdlIG5lZWQgdG8gbW92ZSBpdCBmcm9tIHRoZSBwcmVUb1UgYnVmZmVyCisgICAgICAgICAgICAgICAgICogICAgdG8gdGhlIGVycm9yIGJ1ZmZlciwgc2V0IGFuIGVycm9yIGNvZGUsCisgICAgICAgICAgICAgICAgICogICAgYW5kIHByZXBhcmUgdGhlIHJlc3Qgb2YgdGhlIHByZXZpb3VzIGlucHV0IGZvciAyLgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogMi4gVGhlIHJlc3Qgb2YgdGhlIHByZXZpb3VzIGlucHV0IG11c3QgYmUgY29udmVydGVkIG9uY2Ugd2UKKyAgICAgICAgICAgICAgICAgKiAgICBjb21lIGJhY2sgZnJvbSB0aGUgY2FsbGJhY2sgZm9yIHRoZSBmaXJzdCBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICogICAgQXQgdGhhdCB0aW1lLCB3ZSBoYXZlIHRvIHRyeSBhZ2FpbiBmcm9tIHNjcmF0Y2ggdG8gY29udmVydAorICAgICAgICAgICAgICAgICAqICAgIHRoZXNlIGlucHV0IGNoYXJhY3RlcnMuCisgICAgICAgICAgICAgICAgICogICAgVGhlIHJlcGxheSB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIHVjbnYuYyBjb252ZXJzaW9uIGNvZGUuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG1vdmUgdGhlIGZpcnN0IGNvZGVwYWdlIGNoYXJhY3RlciB0byB0aGUgZXJyb3IgZmllbGQgKi8KKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHByZVRvVUFycmF5LCBwcmVUb1VCZWdpbiwgdG9VQnl0ZXNBcnJheSwgdG9VQnl0ZXNCZWdpbiwgcHJlVG9VRmlyc3RMZW5ndGgpOworICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IHByZVRvVUZpcnN0TGVuZ3RoOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBtb3ZlIHRoZSByZXN0IHVwIGluc2lkZSB0aGUgYnVmZmVyICovCisgICAgICAgICAgICAgICAgbGVuZ3RoID0gcHJlVG9VTGVuZ3RoLXByZVRvVUZpcnN0TGVuZ3RoOworICAgICAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocHJlVG9VQXJyYXksIHByZVRvVUJlZ2luK3ByZVRvVUZpcnN0TGVuZ3RoLCBwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4sIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBtYXJrIHByZVRvVSBmb3IgcmVwbGF5ICovCisgICAgICAgICAgICAgICAgcHJlVG9VTGVuZ3RoID0gKGJ5dGUpLWxlbmd0aDsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogc2V0IHRoZSBlcnJvciBjb2RlIGZvciB1bmFzc2lnbmVkICovCisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC51bm1hcHBhYmxlRm9yTGVuZ3RoKHByZVRvVUZpcnN0TGVuZ3RoKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiB0aGlzIHdvcmtzIGxpa2UgbmF0Y2hGcm9tVSgpIGV4Y2VwdAorICAgICAgICAgKiAtIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgaW4gcHJlCisgICAgICAgICAqIC0gbm8gdHJpZSBpcyB1c2VkCisgICAgICAgICAqIC0gdGhlIHJldHVybmVkIG1hdGNoTGVuZ3RoIGlzIG5vdCBvZmZzZXQgYnkgMgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtYXRjaFRvVShieXRlIHNpc29TdGF0ZSwgYnl0ZVtdIHByZUFycmF5LCBpbnQgcHJlQXJyYXlCZWdpbiwgaW50IHByZUxlbmd0aCwgQnl0ZUJ1ZmZlciBzb3VyY2UsIGludFtdIHBNYXRjaFZhbHVlLCBib29sZWFuIGZsdXNoKQorICAgICAgICB7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGN4ID0gc2hhcmVkRGF0YS5tYmNzLmV4dEluZGV4ZXM7CisgICAgICAgICAgICBJbnRCdWZmZXIgdG9VVGFibGUsIHRvVVNlY3Rpb247CisgICAgICAgIAorICAgICAgICAgICAgaW50IHZhbHVlLCBtYXRjaFZhbHVlLCBzcmNMZW5ndGg7CisgICAgICAgICAgICBpbnQgaSwgaiwgaW5kZXgsIGxlbmd0aCwgbWF0Y2hMZW5ndGg7CisgICAgICAgICAgICBzaG9ydCBiOworICAgICAgICAKKyAgICAgICAgICAgIGlmKGN4PT1udWxsIHx8IGN4LmFzSW50QnVmZmVyKCkuZ2V0KEVYVF9UT19VX0xFTkdUSCk8PTApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogbm8gZXh0ZW5zaW9uIGRhdGEsIG5vIG1hdGNoICovCisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogaW5pdGlhbGl6ZSAqLworICAgICAgICAgICAgdG9VVGFibGUgPSAoSW50QnVmZmVyKUFSUkFZKGN4LCBFWFRfVE9fVV9JTkRFWCwgaW50LmNsYXNzKTsKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgCisgICAgICAgICAgICBtYXRjaFZhbHVlID0gMDsKKyAgICAgICAgICAgIGkgPSBqID0gbWF0Y2hMZW5ndGg9MDsKKyAgICAgICAgICAgIHNyY0xlbmd0aCA9IHNvdXJjZS5yZW1haW5pbmcoKTsKKyAgICAgICAgCisgICAgICAgICAgICBpZihzaXNvU3RhdGU9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBTQkNTIHN0YXRlIG9mIGFuIFNJL1NPIHN0YXRlZnVsIGNvbnZlcnRlciwgbG9vayBhdCBvbmx5IGV4YWN0bHkgMSBieXRlICovCisgICAgICAgICAgICAgICAgaWYocHJlTGVuZ3RoPjEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIG5vIG1hdGNoIG9mIGEgREJDUyBzZXF1ZW5jZSBpbiBTQkNTIG1vZGUgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZihwcmVMZW5ndGg9PTEpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgLyogcHJlTGVuZ3RoPT0wICovIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoc3JjTGVuZ3RoPjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNyY0xlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZmx1c2ggPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHdlIG11c3Qgbm90IHJlbWVtYmVyIGZhbGxiYWNrIG1hdGNoZXMgd2hlbiBub3QgdXNpbmcgZmFsbGJhY2tzICovCisgICAgICAgIAorICAgICAgICAgICAgLyogbWF0Y2ggaW5wdXQgdW5pdHMgdW50aWwgdGhlcmUgaXMgYSBmdWxsIG1hdGNoIG9yIHRoZSBpbnB1dCBpcyBjb25zdW1lZCAqLworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgLyogZ28gdG8gdGhlIG5leHQgc2VjdGlvbiAqLworICAgICAgICAgICAgICAgIGludCBvbGRwb3MgPSB0b1VUYWJsZS5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgIHRvVVNlY3Rpb249KChJbnRCdWZmZXIpdG9VVGFibGUucG9zaXRpb24oaW5kZXgpKS5zbGljZSgpOworICAgICAgICAgICAgICAgIHRvVVRhYmxlLnBvc2l0aW9uKG9sZHBvcyk7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHJlYWQgZmlyc3QgcGFpciBvZiB0aGUgc2VjdGlvbiAqLworICAgICAgICAgICAgICAgIHZhbHVlID0gdG9VU2VjdGlvbi5nZXQoKTsKKyAgICAgICAgICAgICAgICBsZW5ndGggPSBUT19VX0dFVF9CWVRFKHZhbHVlKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9VE9fVV9HRVRfVkFMVUUodmFsdWUpOworICAgICAgICAgICAgICAgIGlmKHZhbHVlIT0wICYmCisgICAgICAgICAgICAgICAgICAgKFRPX1VfSVNfUk9VTkRUUklQKHZhbHVlKSB8fCBpc1RvVVVzZUZhbGxiYWNrKCkpICYmCisgICAgICAgICAgICAgICAgICAgVE9fVV9WRVJJRllfU0lTT19NQVRDSChzaXNvU3RhdGUsIGkraikpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcmVtZW1iZXIgbG9uZ2VzdCBtYXRjaCBzbyBmYXIgKi8KKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hWYWx1ZT12YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hMZW5ndGg9aStqOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogbWF0Y2ggcHJlW10gdGhlbiBzcmNbXSAqLworICAgICAgICAgICAgICAgIGlmKGk8cHJlTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGI9KHNob3J0KShwcmVBcnJheVtwcmVBcnJheUJlZ2luICsgaSsrXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZihqPHNyY0xlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBiPShzaG9ydCkoc291cmNlLmdldChzb3VyY2UucG9zaXRpb24oKSArIGorKykgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBhbGwgaW5wdXQgY29uc3VtZWQsIHBhcnRpYWwgbWF0Y2ggKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoZmx1c2ggfHwgKGxlbmd0aD0oaStqKSk+TUFYX0JZVEVTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogZW5kIG9mIHRoZSBlbnRpcmUgaW5wdXQgc3RyZWFtLCBzdG9wIHdpdGggdGhlIGxvbmdlc3QgbWF0Y2ggc28gZmFyCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBvcjogcGFydGlhbCBtYXRjaCBtdXN0IG5vdCBiZSBsb25nZXIgdGhhbiBVQ05WX0VYVF9NQVhfQllURVMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGJlY2F1c2UgaXQgbXVzdCBmaXQgaW50byBzdGF0ZSBidWZmZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnRpbnVlIHdpdGggbW9yZSBpbnB1dCBuZXh0IHRpbWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBzZWFyY2ggZm9yIHRoZSBjdXJyZW50IFVDaGFyICovCisgICAgICAgICAgICAgICAgdmFsdWUgPSBmaW5kVG9VKHRvVVNlY3Rpb24sIGxlbmd0aCwgYik7CisgICAgICAgICAgICAgICAgaWYodmFsdWU9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm8gbWF0Y2ggaGVyZSwgc3RvcCB3aXRoIHRoZSBsb25nZXN0IG1hdGNoIHNvIGZhciAqLworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZihUT19VX0lTX1BBUlRJQUwodmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBwYXJ0aWFsIG1hdGNoLCBjb250aW51ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBUT19VX0dFVF9QQVJUSUFMX0lOREVYKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKChUT19VX0lTX1JPVU5EVFJJUCh2YWx1ZSkgfHwgaXNUb1VVc2VGYWxsYmFjaygpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9fVV9WRVJJRllfU0lTT19NQVRDSChzaXNvU3RhdGUsIGkraikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmdWxsIG1hdGNoLCBzdG9wIHdpdGggcmVzdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hWYWx1ZSA9IHZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gaStqOworICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZ1bGwgbWF0Y2ggb24gZmFsbGJhY2sgbm90IHRha2VuLCBzdG9wIHdpdGggdGhlIGxvbmdlc3QgbWF0Y2ggc28gZmFyICovCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihtYXRjaExlbmd0aD09MCkgeworICAgICAgICAgICAgICAgIC8qIG5vIG1hdGNoIGF0IGFsbCAqLworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHJldHVybiByZXN1bHQgKi8KKyAgICAgICAgICAgIHBNYXRjaFZhbHVlWzBdID0gVE9fVV9NQVNLX1JPVU5EVFJJUChtYXRjaFZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IHdyaXRlVG9VKGludCB2YWx1ZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc3JjSW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgY3ggPSBzaGFyZWREYXRhLm1iY3MuZXh0SW5kZXhlczsKKyAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICBpZihUT19VX0lTX0NPREVfUE9JTlQodmFsdWUpKSB7CisgICAgICAgICAgICAgICAgLyogb3V0cHV0IGEgc2luZ2xlIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gdG9VV3JpdGVDb2RlUG9pbnQoVE9fVV9HRVRfQ09ERV9QT0lOVCh2YWx1ZSksIHRhcmdldCwgb2Zmc2V0cywgc3JjSW5kZXgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBvdXRwdXQgYSBzdHJpbmcgLSB3aXRoIGNvcnJlY3QgZGF0YSB3ZSBoYXZlIHJlc3VsdExlbmd0aD4wICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjaGFyW10gYSA9IG5ldyBjaGFyW1RPX1VfR0VUX0xFTkdUSCh2YWx1ZSldOworICAgICAgICAgICAgICAgIENoYXJCdWZmZXIgY2IgPSAoKENoYXJCdWZmZXIpQVJSQVkoY3gsIEVYVF9UT19VX1VDSEFSU19JTkRFWCwgY2hhci5jbGFzcykpOworICAgICAgICAgICAgICAgIGNiLnBvc2l0aW9uKFRPX1VfR0VUX0lOREVYKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgY2IuZ2V0KGEsIDAsIGEubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9VV3JpdGVVQ2hhcnModGhpcywgYSwgMCwgYS5sZW5ndGgsIHRhcmdldCwgb2Zmc2V0cywgc3JjSW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgdG9VV3JpdGVDb2RlUG9pbnQoaW50IGMsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgaW50IHNvdXJjZUluZGV4KSAKKyAgICAgICAgeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICBpbnQgdEJlZ2luSW5kZXggPSB0YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVQ29udmVydGVyQ29uc3RhbnRzLlVfU0VOVElORUw7CisgICAgICAgICAgICAgICAgfSBlbHNlIC8qIGMgaXMgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgKi8geworICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KFVURjE2LmdldExlYWRTdXJyb2dhdGUoYykpOworICAgICAgICAgICAgICAgICAgICBjID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBVQ29udmVydGVyQ29uc3RhbnRzLlVfU0VOVElORUw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHdyaXRlIG9mZnNldHMgKi8KKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoKHRCZWdpbkluZGV4KzEpPHRhcmdldC5wb3NpdGlvbigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogd3JpdGUgb3ZlcmZsb3cgZnJvbSBjICovCisgICAgICAgICAgICBpZihjPj0wKSB7CisgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoID0gVVRGMTYuYXBwZW5kKGNoYXJFcnJvckJ1ZmZlckFycmF5LCAwLCBjKTsKKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBJbnB1dCBzZXF1ZW5jZTogY252LT50b1VCeXRlc1swLi5sZW5ndGhbCisgICAgICAgICAqIEByZXR1cm4gaWYoVV9GQUlMVVJFKSByZXR1cm4gdGhlIGxlbmd0aCAodG9VTGVuZ3RoLCBieXRlSW5kZXgpIGZvciB0aGUgaW5wdXQKKyAgICAgICAgICogICAgICAgICBlbHNlIHJldHVybiAwIGFmdGVyIG91dHB1dCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSB0YXJnZXQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgdG9VKGludCBsZW5ndGgsIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGludCBzb3VyY2VJbmRleCwgYm9vbGVhbiBmbHVzaCwgQ29kZXJSZXN1bHRbXSBjcikKKyAgICAgICAgeworICAgICAgICAgICAgLy9CeXRlQnVmZmVyIGN4OworICAgICAgICAKKyAgICAgICAgICAgIGlmKHNoYXJlZERhdGEubWJjcy5leHRJbmRleGVzIT1udWxsICYmCisgICAgICAgICAgICAgICAgaW5pdGlhbE1hdGNoVG9VKGxlbmd0aCwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZUluZGV4LCBmbHVzaCwgY3IpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIGFuIGV4dGVuc2lvbiBtYXBwaW5nIGhhbmRsZWQgdGhlIGlucHV0ICovCisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogR0IgMTgwMzAgKi8KKyAgICAgICAgICAgIGlmKGxlbmd0aD09NCAmJiAob3B0aW9ucyZNQkNTX09QVElPTl9HQjE4MDMwKSE9MCkgeworICAgICAgICAgICAgICAgIGxvbmdbXSByYW5nZTsKKyAgICAgICAgICAgICAgICBsb25nIGxpbmVhcjsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgbGluZWFyID0gTElORUFSXzE4MDMwKHRvVUJ5dGVzQXJyYXlbMF0sIHRvVUJ5dGVzQXJyYXlbMV0sIHRvVUJ5dGVzQXJyYXlbMl0sIHRvVUJ5dGVzQXJyYXlbM10pOworICAgICAgICAgICAgICAgIHJhbmdlID0gZ2IxODAzMFJhbmdlc1swXTsKKyAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPGdiMTgwMzBSYW5nZXMubGVuZ3RoL2diMTgwMzBSYW5nZXNbMF0ubGVuZ3RoOyByYW5nZT1nYjE4MDMwUmFuZ2VzWysraV0pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYocmFuZ2VbMl08PWxpbmVhciAmJiBsaW5lYXI8PXJhbmdlWzNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBmb3VuZCB0aGUgc2VxdWVuY2UsIG91dHB1dCB0aGUgVW5pY29kZSBjb2RlIHBvaW50IGZvciBpdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogYWRkIHRoZSBsaW5lYXIgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBpbnB1dCBhbmQgc3RhcnQgc2VxdWVuY2VzIHRvIHRoZSBzdGFydCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXIgPSByYW5nZVswXSsobGluZWFyLXJhbmdlWzJdKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgdGhpcyBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IHRvVVdyaXRlQ29kZVBvaW50KChpbnQpbGluZWFyLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZUluZGV4KTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBubyBtYXBwaW5nICovCisgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0LnVubWFwcGFibGVGb3JMZW5ndGgobGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gICAKKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIHRhcmdldDx0YXJnZXRMaW1pdDsgc2V0IGVycm9yIGNvZGUgZm9yIG92ZXJmbG93CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpbml0aWFsTWF0Y2hUb1UoaW50IGZpcnN0TGVuZ3RoLCBCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc3JjSW5kZXgsIGJvb2xlYW4gZmx1c2gsIENvZGVyUmVzdWx0W10gY3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludFtdIHZhbHVlID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGludCBtYXRjaCA9IDA7CisgICAgICAgIAorICAgICAgICAgICAgLyogdHJ5IHRvIG1hdGNoICovCisgICAgICAgICAgICBtYXRjaCA9IG1hdGNoVG9VKChieXRlKVNJU09fU1RBVEUoc2hhcmVkRGF0YSwgbW9kZSksIHRvVUJ5dGVzQXJyYXksIHRvVUJ5dGVzQmVnaW4sIGZpcnN0TGVuZ3RoLCBzb3VyY2UsIHZhbHVlLCBmbHVzaCk7CisgICAgICAgICAgICBpZihtYXRjaD4wKSB7CisgICAgICAgICAgICAgICAgLyogYWR2YW5jZSBzcmMgcG9pbnRlciBmb3IgdGhlIGNvbnN1bWVkIGlucHV0ICovCisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZS5wb3NpdGlvbigpK21hdGNoLWZpcnN0TGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB3cml0ZSByZXN1bHQgdG8gdGFyZ2V0ICovCisgICAgICAgICAgICAgICAgY3JbMF0gPSB3cml0ZVRvVSh2YWx1ZVswXSwgdGFyZ2V0LCBvZmZzZXRzLCBzcmNJbmRleCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmKG1hdGNoPDApIHsKKyAgICAgICAgICAgICAgICAvKiBzYXZlIHN0YXRlIGZvciBwYXJ0aWFsIG1hdGNoICovCisgICAgICAgICAgICAgICAgYnl0ZVtdIHNBcnJheTsKKyAgICAgICAgICAgICAgICBpbnQgc0FycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIGNvcHkgdGhlIGZpcnN0IGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICBzQXJyYXkgPSB0b1VCeXRlc0FycmF5OworICAgICAgICAgICAgICAgIHNBcnJheUluZGV4ID0gdG9VQnl0ZXNCZWdpbjsKKyAgICAgICAgICAgICAgICBwcmVUb1VGaXJzdExlbmd0aCA9IChieXRlKWZpcnN0TGVuZ3RoOworICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8Zmlyc3RMZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBwcmVUb1VBcnJheVtqXT1zQXJyYXlbc0FycmF5SW5kZXgrK107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBub3cgY29weSB0aGUgbmV3bHkgY29uc3VtZWQgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICBzQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgIG1hdGNoID0tIG1hdGNoOworICAgICAgICAgICAgICAgIGZvcig7IGo8bWF0Y2g7ICsraikgeworICAgICAgICAgICAgICAgICAgICBwcmVUb1VBcnJheVtqXSA9IHNvdXJjZS5nZXQoc0FycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgcHJlVG9VTGVuZ3RoPShieXRlKW1hdGNoOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgLyogbWF0Y2g9PTAgbm8gbWF0Y2ggKi8geworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIFRoaXMgdmVyc2lvbiBvZiBjbnZNQkNTU2luZ2xlVG9Vbmljb2RlV2l0aE9mZnNldHMoKSBpcyBvcHRpbWl6ZWQgZm9yIHNpbmdsZS1ieXRlLCBzaW5nbGUtc3RhdGUgY29kZXBhZ2VzCisgICAgICAgICAqIHRoYXQgb25seSBtYXAgdG8gYW5kIGZyb20gdGhlIEJNUC4KKyAgICAgICAgICogSW4gYWRkaXRpb24gdG8gc2luZ2xlLWJ5dGUgb3B0aW1pemF0aW9ucywgdGhlIG9mZnNldCBjYWxjdWxhdGlvbnMKKyAgICAgICAgICogYmVjb21lIG11Y2ggZWFzaWVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGNudk1CQ1NTaW5nbGVUb0JNUFdpdGhPZmZzZXRzKEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0W10gY3IgPSB7Q29kZXJSZXN1bHQuVU5ERVJGTE9XfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXgsIGxhc3RTb3VyY2U7CisgICAgICAgICAgICBpbnQgdGFyZ2V0Q2FwYWNpdHksIGxlbmd0aDsKKyAgICAgICAgICAgIGludFtdW10gc3RhdGVUYWJsZTsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlSW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgaW50IGVudHJ5OworICAgICAgICAgICAgYnl0ZSBhY3Rpb247CisgICAgICAgIAorICAgICAgICAgICAgLyogc2V0IHVwIHRoZSBsb2NhbCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHkgPSB0YXJnZXQucmVtYWluaW5nKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKChvcHRpb25zJlVDb252ZXJ0ZXJDb25zdGFudHMuT1BUSU9OX1NXQVBfTEZOTCkhPTApIHsKKyAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlID0gc2hhcmVkRGF0YS5tYmNzLnN3YXBMRk5MU3RhdGVUYWJsZTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlID0gc2hhcmVkRGF0YS5tYmNzLnN0YXRlVGFibGU7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogc291cmNlSW5kZXg9LTEgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGJlZ2FuIGluIHRoZSBwcmV2aW91cyBidWZmZXIgKi8KKyAgICAgICAgICAgIHNvdXJjZUluZGV4ID0gMDsKKyAgICAgICAgICAgIGxhc3RTb3VyY2UgPSBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzaW5jZSB0aGUgY29udmVyc2lvbiBoZXJlIGlzIDE6MSBVQ2hhcjp1aW50OF90LCB3ZSBuZWVkIG9ubHkgb25lIGNvdW50ZXIKKyAgICAgICAgICAgICAqIGZvciB0aGUgbWluaW11bSBvZiB0aGUgc291cmNlTGVuZ3RoIGFuZCB0YXJnZXRDYXBhY2l0eQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBsZW5ndGggPSBzb3VyY2UucmVtYWluaW5nKCk7CisgICAgICAgICAgICBpZihsZW5ndGg8dGFyZ2V0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eT1sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogY29udmVyc2lvbiBsb29wICovCisgICAgICAgICAgICB3aGlsZSh0YXJnZXRDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgZW50cnkgPSBzdGF0ZVRhYmxlWzBdW3NvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLXTsKKyAgICAgICAgICAgICAgICAvKiBNQkNTX0VOVFJZX0lTX0ZJTkFMKGVudHJ5KSAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBtb3N0IGNvbW1vbiBjYXNlIGZpcnN0ICovCisgICAgICAgICAgICAgICAgaWYoTUJDU19FTlRSWV9GSU5BTF9JU19WQUxJRF9ESVJFQ1RfMTYoZW50cnkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgLS10YXJnZXRDYXBhY2l0eTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEFuIGlmLWVsc2UtaWYgY2hhaW4gcHJvdmlkZXMgbW9yZSByZWxpYWJsZSBwZXJmb3JtYW5jZSBmb3IKKyAgICAgICAgICAgICAgICAgKiB0aGUgbW9zdCBjb21tb24gY2FzZXMgY29tcGFyZWQgdG8gYSBzd2l0Y2guCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgYWN0aW9uID0gKGJ5dGUpKE1CQ1NfRU5UUllfRklOQUxfQUNUSU9OKGVudHJ5KSk7CisgICAgICAgICAgICAgICAgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX0ZBTExCQUNLX0RJUkVDVF8xNikgeworICAgICAgICAgICAgICAgICAgICBpZihpc1RvVVVzZUZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcilNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAtLXRhcmdldENhcGFjaXR5OworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX1VOQVNTSUdORUQpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoganVzdCBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX0lMTEVHQUwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleC1sYXN0U291cmNlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiByZXNlcnZlZCwgbXVzdCBuZXZlciBvY2N1ciAqLworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHNldCBvZmZzZXRzIHNpbmNlIHRoZSBzdGFydCBvciB0aGUgbGFzdCBleHRlbnNpb24gKi8KKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjb3VudCA9IHNvdXJjZUFycmF5SW5kZXgtbGFzdFNvdXJjZTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHByZWRlY3JlbWVudDogZG8gbm90IHNldCB0aGUgb2Zmc2V0IGZvciB0aGUgY2FsbGJhY2stY2F1c2luZyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoLS1jb3VudD4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCsrKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvKiBvZmZzZXQgYW5kIHNvdXJjZUluZGV4IGFyZSBub3cgc2V0IGZvciB0aGUgY3VycmVudCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKGNyWzBdLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgLyogdW5hc3NpZ25lZCBzZXF1ZW5jZXMgaW5kaWNhdGVkIHdpdGggYnl0ZUluZGV4PjAgKi8geworICAgICAgICAgICAgICAgICAgICAvKiB0cnkgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgbGFzdFNvdXJjZSA9IHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbMF09c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4LTEpOworICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IHRvVSgoYnl0ZSkxLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlSW5kZXgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCArPSAxKyhpbnQpKHNvdXJjZUFycmF5SW5kZXgtbGFzdFNvdXJjZSk7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZihjclswXS5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdCBtYXBwYWJsZSBvciBidWZmZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiByZWNhbGN1bGF0ZSB0aGUgdGFyZ2V0Q2FwYWNpdHkgYWZ0ZXIgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHkgPSB0YXJnZXQucmVtYWluaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IHNvdXJjZS5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPHRhcmdldENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eSA9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZighY3JbMF0uaXNFcnJvcigpICYmIHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmNhcGFjaXR5KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBzZXQgb2Zmc2V0cyBzaW5jZSB0aGUgc3RhcnQgb3IgdGhlIGxhc3QgY2FsbGJhY2sgKi8KKyAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSBzb3VyY2VBcnJheUluZGV4LWxhc3RTb3VyY2U7CisgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogd3JpdGUgYmFjayB0aGUgdXBkYXRlZCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgLyogVGhpcyB2ZXJzaW9uIG9mIGNudk1CQ1NUb1VuaWNvZGVXaXRoT2Zmc2V0cygpIGlzIG9wdGltaXplZCBmb3Igc2luZ2xlLWJ5dGUsIHNpbmdsZS1zdGF0ZSBjb2RlcGFnZXMuICovCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBjbnZNQkNTU2luZ2xlVG9Vbmljb2RlV2l0aE9mZnNldHMoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCkKKyAgICAgICAgeworICAgICAgICAgICAgQ29kZXJSZXN1bHRbXSBjciA9IHtDb2RlclJlc3VsdC5VTkRFUkZMT1d9OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIGludFtdW10gc3RhdGVUYWJsZTsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlSW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgaW50IGVudHJ5OworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgYnl0ZSBhY3Rpb247CisgICAgICAgIAorICAgICAgICAgICAgLyogc2V0IHVwIHRoZSBsb2NhbCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZigob3B0aW9ucyZVQ29udmVydGVyQ29uc3RhbnRzLk9QVElPTl9TV0FQX0xGTkwpIT0wKSB7CisgICAgICAgICAgICAgICAgc3RhdGVUYWJsZSA9IHNoYXJlZERhdGEubWJjcy5zd2FwTEZOTFN0YXRlVGFibGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlID0gc2hhcmVkRGF0YS5tYmNzLnN0YXRlVGFibGU7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogc291cmNlSW5kZXg9LTEgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGJlZ2FuIGluIHRoZSBwcmV2aW91cyBidWZmZXIgKi8KKyAgICAgICAgICAgIHNvdXJjZUluZGV4ID0gMDsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBjb252ZXJzaW9uIGxvb3AgKi8KKyAgICAgICAgICAgIHdoaWxlKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoaXMgZm9sbG93aW5nIHRlc3QgaXMgdG8gc2VlIGlmIGF2YWlsYWJsZSBpbnB1dCB3b3VsZCBvdmVyZmxvdyB0aGUgb3V0cHV0LgorICAgICAgICAgICAgICAgICAqIEl0IGRvZXMgbm90IGNhdGNoIG91dHB1dCBvZiBtb3JlIHRoYW4gb25lIGNvZGUgdW5pdCB0aGF0CisgICAgICAgICAgICAgICAgICogb3ZlcmZsb3dzIGFzIGEgcmVzdWx0IG9mIGEgc3Vycm9nYXRlIHBhaXIgb3IgY2FsbGJhY2sgb3V0cHV0CisgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgbGFzdCBzb3VyY2UgYnl0ZS4KKyAgICAgICAgICAgICAgICAgKiBUaGVyZWZvcmUsIHRob3NlIHNpdHVhdGlvbnMgYWxzbyB0ZXN0IGZvciBvdmVyZmxvd3MgYW5kIHdpbGwKKyAgICAgICAgICAgICAgICAgKiB0aGVuIGJyZWFrIHRoZSBsb29wLCB0b28uCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAvKiB0YXJnZXQgaXMgZnVsbCAqLworICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIGVudHJ5ID0gc3RhdGVUYWJsZVswXVtzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKykgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTS107CisgICAgICAgICAgICAgICAgLyogTUJDU19FTlRSWV9JU19GSU5BTChlbnRyeSkgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogdGVzdCB0aGUgbW9zdCBjb21tb24gY2FzZSBmaXJzdCAqLworICAgICAgICAgICAgICAgIGlmKE1CQ1NfRU5UUllfRklOQUxfSVNfVkFMSURfRElSRUNUXzE2KGVudHJ5KSkgeworICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgQk1QIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcilNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogbm9ybWFsIGVuZCBvZiBhY3Rpb24gY29kZXM6IHByZXBhcmUgZm9yIGEgbmV3IGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogQW4gaWYtZWxzZS1pZiBjaGFpbiBwcm92aWRlcyBtb3JlIHJlbGlhYmxlIHBlcmZvcm1hbmNlIGZvcgorICAgICAgICAgICAgICAgICAqIHRoZSBtb3N0IGNvbW1vbiBjYXNlcyBjb21wYXJlZCB0byBhIHN3aXRjaC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBhY3Rpb24gPSAoYnl0ZSkoTUJDU19FTlRSWV9GSU5BTF9BQ1RJT04oZW50cnkpKTsKKyAgICAgICAgICAgICAgICBpZihhY3Rpb249PU1CQ1NfU1RBVEVfVkFMSURfRElSRUNUXzIwIHx8CisgICAgICAgICAgICAgICAgICAgKGFjdGlvbj09TUJDU19TVEFURV9GQUxMQkFDS19ESVJFQ1RfMjAgJiYgaXNUb1VVc2VGYWxsYmFjaygpKSkgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFKGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IHN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpKDB4ZDgwMHwoY2hhcikoZW50cnk+Pj4xMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGMgPSAoY2hhcikoMHhkYzAwfChjaGFyKShlbnRyeSYweDNmZikpOworICAgICAgICAgICAgICAgICAgICBpZih0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbMF09YzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX0ZBTExCQUNLX0RJUkVDVF8xNikgeworICAgICAgICAgICAgICAgICAgICBpZihpc1RvVVVzZUZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcilNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFXzE2KGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmKGFjdGlvbj09TUJDU19TVEFURV9VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgZmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX0lMTEVHQUwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoMSk7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcmVzZXJ2ZWQsIG11c3QgbmV2ZXIgb2NjdXIgKi8KKyAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihjclswXS5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIC8qIHVuYXNzaWduZWQgc2VxdWVuY2VzIGluZGljYXRlZCB3aXRoIGJ5dGVJbmRleD4wICovIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdHJ5IGFuIGV4dGVuc2lvbiBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VCZWdpbkluZGV4ID0gc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVswXSA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleC0xKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSB0b1UoKGJ5dGUpMSwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZUluZGV4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ICs9IDErKGludCkoc291cmNlQXJyYXlJbmRleC1zb3VyY2VCZWdpbkluZGV4KTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKGNyWzBdLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm90IG1hcHBhYmxlIG9yIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogd3JpdGUgYmFjayB0aGUgdXBkYXRlZCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldEZhbGxiYWNrKFVDb252ZXJ0ZXJNQkNTVGFibGUgbWJjc1RhYmxlLCBpbnQgb2Zmc2V0KSAKKyAgICAgICAgeworICAgICAgICAgICAgTUJDU1RvVUZhbGxiYWNrW10gdG9VRmFsbGJhY2tzOworICAgICAgICAgICAgaW50IGksIHN0YXJ0LCBsaW1pdDsKKyAgICAgICAgCisgICAgICAgICAgICBsaW1pdCA9IG1iY3NUYWJsZS5jb3VudFRvVUZhbGxiYWNrczsKKyAgICAgICAgICAgIGlmKGxpbWl0PjApIHsKKyAgICAgICAgICAgICAgICAvKiBkbyBhIGJpbmFyeSBzZWFyY2ggZm9yIHRoZSBmYWxsYmFjayBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgdG9VRmFsbGJhY2tzID0gbWJjc1RhYmxlLnRvVUZhbGxiYWNrczsKKyAgICAgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8bGltaXQtMSkgeworICAgICAgICAgICAgICAgICAgICBpID0gKHN0YXJ0K2xpbWl0KS8yOworICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXQ8dG9VRmFsbGJhY2tzW2ldLm9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgPSBpOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogZGlkIHdlIHJlYWxseSBmaW5kIGl0PyAqLworICAgICAgICAgICAgICAgIGlmKG9mZnNldD09dG9VRmFsbGJhY2tzW3N0YXJ0XS5vZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvVUZhbGxiYWNrc1tzdGFydF0uY29kZVBvaW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gMHhmZmZlOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBjbGFzcyBDaGFyc2V0RW5jb2Rlck1CQ1MgZXh0ZW5kcyBDaGFyc2V0RW5jb2RlcklDVXsKKworICAgICAgICBDaGFyc2V0RW5jb2Rlck1CQ1MoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MsIGZyb21VU3Vic3RpdHV0aW9uKTsKKyAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpbXBsUmVzZXQoKSB7CisgICAgICAgICAgICBzdXBlci5pbXBsUmVzZXQoKTsKKyAgICAgICAgICAgIHByZUZyb21VRmlyc3RDUCA9IFVDb252ZXJ0ZXJDb25zdGFudHMuVV9TRU5USU5FTDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGVuY29kZUxvb3AoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAKKyAgICAgICAgICAgIENvZGVyUmVzdWx0W10gY3IgPSB7Q29kZXJSZXN1bHQuVU5ERVJGTE9XfTsKKworICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICBjaGFyW10gdGFibGU7CisgICAgICAgICAgICBieXRlW10gcEFycmF5LCBieXRlczsKKyAgICAgICAgICAgIGludCBwQXJyYXlJbmRleCwgb3V0cHV0VHlwZSwgYzsgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBwcmV2U291cmNlSW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICBpbnQgc3RhZ2UyRW50cnksIHZhbHVlLCBsZW5ndGgsIHByZXZMZW5ndGg7CisgICAgICAgICAgICBzaG9ydCB1bmljb2RlTWFzazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKHByZUZyb21VRmlyc3RDUD49MCkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBwYXNzIHNvdXJjZUluZGV4PS0xIGJlY2F1c2Ugd2UgY29udGludWUgZnJvbSBhbiBlYXJsaWVyIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgKiBpbiB0aGUgZnV0dXJlLCB0aGlzIG1heSBjaGFuZ2Ugd2l0aCBjb250aW51b3VzIG9mZnNldHMKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gY29udGludWVNYXRjaEZyb21VKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBmbHVzaCwgLTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKGNyWzBdLmlzRXJyb3IoKSB8fCBwcmVGcm9tVUxlbmd0aDwwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB1c2Ugb3B0aW1pemVkIGZ1bmN0aW9uIGlmIHBvc3NpYmxlICovCisgICAgICAgICAgICAgICAgb3V0cHV0VHlwZSA9IHNoYXJlZERhdGEubWJjcy5vdXRwdXRUeXBlOworICAgICAgICAgICAgICAgIHVuaWNvZGVNYXNrID0gc2hhcmVkRGF0YS5tYmNzLnVuaWNvZGVNYXNrOworICAgICAgICAgICAgICAgIGlmKG91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUXzEgJiYgKHVuaWNvZGVNYXNrJlVDb252ZXJ0ZXJDb25zdGFudHMuSEFTX1NVUlJPR0FURVMpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoKHVuaWNvZGVNYXNrJlVDb252ZXJ0ZXJDb25zdGFudHMuSEFTX1NVUFBMRU1FTlRBUlkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gY252TUJDU1NpbmdsZUZyb21CTVBXaXRoT2Zmc2V0cyhzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgZmx1c2gpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBjbnZNQkNTU2luZ2xlRnJvbVVuaWNvZGVXaXRoT2Zmc2V0cyhzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgZmx1c2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3V0cHV0VHlwZT09TUJDU19PVVRQVVRfMikgeworICAgICAgICAgICAgICAgICAgICBjclswXSA9IGNudk1CQ1NEb3VibGVGcm9tVW5pY29kZVdpdGhPZmZzZXRzKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBmbHVzaCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YWJsZSA9IHNoYXJlZERhdGEubWJjcy5mcm9tVW5pY29kZVRhYmxlOworICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKChvcHRpb25zJlVDb252ZXJ0ZXJDb25zdGFudHMuT1BUSU9OX1NXQVBfTEZOTCkhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgYnl0ZXMgPSBzaGFyZWREYXRhLm1iY3Muc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ5dGVzID0gc2hhcmVkRGF0YS5tYmNzLmZyb21Vbmljb2RlQnl0ZXM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgZnJvbSBVQ29udmVydGVyICovCisgICAgICAgICAgICAgICAgYyA9IGZyb21VQ2hhcjMyOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYob3V0cHV0VHlwZT09TUJDU19PVVRQVVRfMl9TSVNPKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZMZW5ndGg9KGludClmcm9tVW5pY29kZVN0YXR1czsKKyAgICAgICAgICAgICAgICAgICAgaWYocHJldkxlbmd0aD09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc2V0IHRoZSByZWFsIHZhbHVlICovCisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBwcmV2ZW50IGZyb21Vbmljb2RlU3RhdHVzIGZyb20gYmVpbmcgc2V0IHRvIHNvbWV0aGluZyBub24tMCAqLworICAgICAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogc291cmNlSW5kZXg9LTEgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGJlZ2FuIGluIHRoZSBwcmV2aW91cyBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICBwcmV2U291cmNlSW5kZXg9LTE7CisgICAgICAgICAgICAgICAgc291cmNlSW5kZXg9IGM9PTAgPyAwIDogLTE7CisgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4PTA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBjb252ZXJzaW9uIGxvb3AgKi8KKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoaXMgaXMgYW5vdGhlciBwaWVjZSBvZiB1Z2x5IGNvZGU6CisgICAgICAgICAgICAgICAgICogQSBnb3RvIGludG8gdGhlIGxvb3AgaWYgdGhlIGNvbnZlcnRlciBzdGF0ZSBjb250YWlucyBhIGZpcnN0IHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAqIGZyb20gdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNhbGwuCisgICAgICAgICAgICAgICAgICogSXQgc2F2ZXMgbWUgdG8gY2hlY2sgaW4gZWFjaCBsb29wIGl0ZXJhdGlvbiBhIGNoZWNrIG9mIGlmKGM9PTApCisgICAgICAgICAgICAgICAgICogYW5kIGR1cGxpY2F0aW5nIHRoZSB0cmFpbC1zdXJyb2dhdGUtaGFuZGxpbmcgY29kZSBpbiB0aGUgZWxzZQorICAgICAgICAgICAgICAgICAqIGJyYW5jaCBvZiB0aGF0IGNoZWNrLgorICAgICAgICAgICAgICAgICAqIEkgY291bGQgbm90IGZpbmQgYW55IG90aGVyIHdheSB0byBnZXQgYXJvdW5kIHRoaXMgb3RoZXIgdGhhbgorICAgICAgICAgICAgICAgICAqIHVzaW5nIGEgZnVuY3Rpb24gY2FsbCBmb3IgdGhlIGNvbnZlcnNpb24gYW5kIGNhbGxiYWNrLCB3aGljaCB3b3VsZAorICAgICAgICAgICAgICAgICAqIGJlIGV2ZW4gbW9yZSBpbmVmZmljaWVudC4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIE1hcmt1cyBTY2hlcmVyIDIwMDAtanVsLTE5CisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgYm9vbGVhbiBkb2xvb3AgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmKGMhPTAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIFNpZGVFZmZlY3RzIHggPSBuZXcgU2lkZUVmZmVjdHMoYywgc291cmNlQXJyYXlJbmRleCwgc291cmNlSW5kZXgsIG5leHRTb3VyY2VJbmRleCwgcHJldlNvdXJjZUluZGV4LCBwcmV2TGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZ2V0VHJhaWwoc291cmNlLCB0YXJnZXQsIHVuaWNvZGVNYXNrLCB4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICBwcmV2U291cmNlSW5kZXggPSB4LnByZXZTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgcHJldkxlbmd0aCA9IHgucHJldkxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihkb2xvb3ApIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoaXMgZm9sbG93aW5nIHRlc3QgaXMgdG8gc2VlIGlmIGF2YWlsYWJsZSBpbnB1dCB3b3VsZCBvdmVyZmxvdyB0aGUgb3V0cHV0LgorICAgICAgICAgICAgICAgICAgICAgICAgICogSXQgZG9lcyBub3QgY2F0Y2ggb3V0cHV0IG9mIG1vcmUgdGhhbiBvbmUgYnl0ZSB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBvdmVyZmxvd3MgYXMgYSByZXN1bHQgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciBvciBjYWxsYmFjayBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGZyb20gdGhlIGxhc3Qgc291cmNlIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZXJlZm9yZSwgdGhvc2Ugc2l0dWF0aW9ucyBhbHNvIHRlc3QgZm9yIG92ZXJmbG93cyBhbmQgd2lsbAorICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlbiBicmVhayB0aGUgbG9vcCwgdG9vLgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZih0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEdldCBhIGNvcnJlY3QgVW5pY29kZSBjb2RlIHBvaW50OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgc2luZ2xlIFVDaGFyIGZvciBhIEJNUCBjb2RlIHBvaW50IG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYSBtYXRjaGVkIHN1cnJvZ2F0ZSBwYWlyIGZvciBhICJzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQiLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGlzIGFsc28gdGVzdHMgaWYgdGhlIGNvZGVwYWdlIG1hcHMgc2luZ2xlIHN1cnJvZ2F0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSWYgaXQgZG9lcywgdGhlbiBzdXJyb2dhdGVzIGFyZSBub3QgcGFpcmVkIGJ1dCBtYXBwZWQgc2VwYXJhdGVseS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIHVubWF0Y2hlZCBzdXJyb2dhdGVzIGFyZSBub3QgZGV0ZWN0ZWQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYykgJiYgKHVuaWNvZGVNYXNrJlVDb252ZXJ0ZXJDb25zdGFudHMuSEFTX1NVUlJPR0FURVMpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2dldFRyYWlsOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lkZUVmZmVjdHMgeCA9IG5ldyBTaWRlRWZmZWN0cyhjLCBzb3VyY2VBcnJheUluZGV4LCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4LCBwcmV2U291cmNlSW5kZXgsIHByZXZMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZ2V0VHJhaWwoc291cmNlLCB0YXJnZXQsIHVuaWNvZGVNYXNrLCB4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHguYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0U291cmNlSW5kZXggPSB4Lm5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTb3VyY2VJbmRleCA9IHgucHJldlNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRvbG9vcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCgxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGUgVW5pY29kZSBjb2RlIHBvaW50IGluIGMgaW50byBjb2RlcGFnZSBieXRlcyAqLworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlIGJhc2ljIGxvb2t1cCBpcyBhIHRyaXBsZS1zdGFnZSBjb21wYWN0IGFycmF5ICh0cmllKSBsb29rdXAuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRm9yIGRldGFpbHMgc2VlIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBmaWxlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogU2luZ2xlLWJ5dGUgY29kZXBhZ2VzIGFyZSBoYW5kbGVkIHdpdGggYSBkaWZmZXJlbnQgZGF0YSBzdHJ1Y3R1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBieSBfTUJDU1NpbmdsZS4uLiBmdW5jdGlvbnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgcmVzdWx0IGNvbnNpc3RzIG9mIGEgMzItYml0IHZhbHVlIGZyb20gc3RhZ2UgMiBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIHBvaW50ZXIgdG8gYXMgbWFueSBieXRlcyBhcyBhcmUgc3RvcmVkIHBlciBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlIHBvaW50ZXIgcG9pbnRzIHRvIHRoZSBjaGFyYWN0ZXIncyBieXRlcyBpbiBzdGFnZSAzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEJpdHMgMTUuLjAgb2YgdGhlIHN0YWdlIDIgZW50cnkgY29udGFpbiB0aGUgc3RhZ2UgMyBpbmRleAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGZvciB0aGF0IHBvaW50ZXIsIHdoaWxlIGJpdHMgMzEuLjE2IGFyZSBmbGFncyBmb3Igd2hpY2ggb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgMTYgY2hhcmFjdGVycyBpbiB0aGUgYmxvY2sgYXJlIHJvdW5kdHJpcC1hc3NpZ25lZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEZvciAyLWJ5dGUgYW5kIDQtYnl0ZSBjb2RlcGFnZXMsIHRoZSBieXRlcyBhcmUgc3RvcmVkIGFzIHVpbnQxNl90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcmVzcGVjdGl2ZWx5IGFzIHVpbnQzMl90LCBpbiB0aGUgcGxhdGZvcm0gZW5jb2RpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRm9yIDMtYnl0ZSBjb2RlcGFnZXMsIHRoZSBieXRlcyBhcmUgYWx3YXlzIHN0b3JlZCBpbiBiaWctZW5kaWFuIG9yZGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRm9yIEVVQyBlbmNvZGluZ3MgdGhhdCB1c2Ugb25seSBlaXRoZXIgMHg4ZSBvciAweDhmIGFzIHRoZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJ5dGUgb2YgdGhlaXIgbG9uZ2VzdCBieXRlIHNlcXVlbmNlcywgdGhlIGZpcnN0IHR3byBieXRlcyBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoaXMgdGhpcmQgc3RhZ2UgaW5kaWNhdGUgd2l0aCB0aGVpciA3dGggYml0cyB3aGV0aGVyIHRoZXNlIGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYXJlIHRvIGJlIHdyaXR0ZW4gZGlyZWN0bHkgb3IgYWN0dWFsbHkgbmVlZCB0byBiZSBwcmVjZWVkZWQgYnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBvbmUgb2YgdGhlIHR3byBTaW5nbGUtU2hpZnQgY29kZXMuIFdpdGggdGhpcywgdGhlIHRoaXJkIHN0YWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc3RvcmVzIG9uZSBieXRlIGZld2VyIHBlciBjaGFyYWN0ZXIgdGhhbiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRVVDIGJ5dGUgc2VxdWVuY2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogT3RoZXIgdGhhbiB0aGF0LCBsZWFkaW5nIHplcm8gYnl0ZXMgYXJlIHJlbW92ZWQgYW5kIHRoZSBvdGhlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJ5dGVzIG91dHB1dC4gQSBzaW5nbGUgemVybyBieXRlIG1heSBiZSBvdXRwdXQgaWYgdGhlICJhc3NpZ25lZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiaXQgaW4gc3RhZ2UgMiB3YXMgb24uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlIGRhdGEgc3RydWN0dXJlIGRvZXMgbm90IHN1cHBvcnQgemVybyBieXRlIG91dHB1dCBhcyBhIGZhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFuZCBhbHNvIGRvZXMgbm90IGFsbG93IG91dHB1dCBvZiBsZWFkaW5nIHplcm9zLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdlMkVudHJ5PU1CQ1NfU1RBR0VfMl9GUk9NX1UodGFibGUsIGMpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgYnl0ZXMgYW5kIHRoZSBsZW5ndGggZm9yIHRoZSBvdXRwdXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2gob3V0cHV0VHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IE1CQ1NfVkFMVUVfMl9GUk9NX1NUQUdFXzIoYnl0ZXMsIHN0YWdlMkVudHJ5LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfMl9TSVNPOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMS8yLWJ5dGUgc3RhdGVmdWwgd2l0aCBTaGlmdC1Jbi9TaGlmdC1PdXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBTYXZlIHRoZSBvbGQgc3RhdGUgaW4gdGhlIGNvbnZlcnRlciBvYmplY3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJpZ2h0IGhlcmUsIHRoZW4gY2hhbmdlIHRoZSBsb2NhbCBwcmV2TGVuZ3RoIHN0YXRlIHZhcmlhYmxlIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZW4sIGlmIHRoaXMgY2hhcmFjdGVyIHR1cm5zIG91dCB0byBiZSB1bmFzc2lnbmVkIG9yIGEgZmFsbGJhY2sgdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXMgbm90IHRha2VuLCB0aGUgY2FsbGJhY2sgY29kZSBtdXN0IG5vdCBzYXZlIHRoZSBuZXcgc3RhdGUgaW4gdGhlIGNvbnZlcnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYmVjYXVzZSB0aGUgbmV3IHN0YXRlIGlzIGZvciBhIGNoYXJhY3RlciB0aGF0IGlzIG5vdCBvdXRwdXQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBIb3dldmVyLCB0aGUgY2FsbGJhY2sgbXVzdCBzdGlsbCByZXN0b3JlIHRoZSBzdGF0ZSBmcm9tIHRoZSBjb252ZXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGluIGNhc2UgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGNoYW5nZWQgaXQgZm9yIGl0cyBvdXRwdXQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzPXByZXZMZW5ndGg7IC8qIHNhdmUgdGhlIG9sZCBzdGF0ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBNQkNTX1ZBTFVFXzJfRlJPTV9TVEFHRV8yKGJ5dGVzLCBzdGFnZTJFbnRyeSwgYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZT09MCAmJiBNQkNTX0ZST01fVV9JU19ST1VORFRSSVAoc3RhZ2UyRW50cnksIGMpPT1mYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBtYXBwaW5nLCBsZWF2ZSB2YWx1ZT09MCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihwcmV2TGVuZ3RoPD0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2hhbmdlIGZyb20gZG91YmxlLWJ5dGUgbW9kZSB0byBzaW5nbGUtYnl0ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSB8PSBVQ29udmVydGVyQ29uc3RhbnRzLlNJPDw4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYocHJldkxlbmd0aD09MikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNoYW5nZSBmcm9tIHNpbmdsZS1ieXRlIG1vZGUgdG8gZG91YmxlLWJ5dGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgfD0gVUNvbnZlcnRlckNvbnN0YW50cy5TTzw8MTY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZMZW5ndGggPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUX0RCQ1NfT05MWToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhYmxlIHdpdGggc2luZ2xlLWJ5dGUgcmVzdWx0cywgYnV0IG9ubHkgREJDUyBtYXBwaW5ncyB1c2VkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IE1CQ1NfVkFMVUVfMl9GUk9NX1NUQUdFXzIoYnl0ZXMsIHN0YWdlMkVudHJ5LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG1hcHBpbmcgb3IgU0JDUyByZXN1bHQsIG5vdCB0YWtlbiBmb3IgREJDUy1vbmx5ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzdGFnZTJFbnRyeT0wOyAvKiBzdGFnZTJFbnRyeT0wIHRvIHJlc2V0IHJvdW5kdHJpcCBmbGFncyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8zOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEFycmF5ID0gYnl0ZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwQXJyYXlJbmRleCA9IE1CQ1NfUE9JTlRFUl8zX0ZST01fU1RBR0VfMihieXRlcywgc3RhZ2UyRW50cnksIGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoKHBBcnJheVtwQXJyYXlJbmRleF0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDwxNil8KChwQXJyYXlbcEFycmF5SW5kZXgrMV0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwocEFycmF5W3BBcnJheUluZGV4KzJdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IE1CQ1NfVkFMVUVfNF9GUk9NX1NUQUdFXzIoYnl0ZXMsIHN0YWdlMkVudHJ5LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmZmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfM19FVUM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IE1CQ1NfVkFMVUVfMl9GUk9NX1NUQUdFXzIoYnl0ZXMsIHN0YWdlMkVudHJ5LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVVQyAxNi1iaXQgZml4ZWQtbGVuZ3RoIHJlcHJlc2VudGF0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKHZhbHVlJjB4ODAwMCk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSB8PSAweDhlODAwMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKHZhbHVlJjB4ODApPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgfD0gMHg4ZjAwODA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfNF9FVUM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwQXJyYXkgPSBieXRlczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBBcnJheUluZGV4ID0gTUJDU19QT0lOVEVSXzNfRlJPTV9TVEFHRV8yKGJ5dGVzLCBzdGFnZTJFbnRyeSwgYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICgocEFycmF5W3BBcnJheUluZGV4XSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDE2KXwoKHBBcnJheVtwQXJyYXlJbmRleCsxXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChwQXJyYXlbcEFycmF5SW5kZXgrMl0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVVDIDE2LWJpdCBmaXhlZC1sZW5ndGggcmVwcmVzZW50YXRpb24gYXBwbGllZCB0byB0aGUgZmlyc3QgdHdvIGJ5dGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKHZhbHVlICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykgPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKHZhbHVlJjB4ODAwMDAwKT09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIHw9IDB4OGU4MDAwMDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCh2YWx1ZSYweDgwMDApPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgfD0gMHg4ZjAwODAwMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG11c3Qgbm90IG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgdGhhdCB2YWx1ZSAmIGxlbmd0aCBtYXkgYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHVzZWQgd2l0aG91dCBoYXZpbmcgYmVlbiBpbml0aWFsaXplZCwgd2Ugc2V0IHRoZW0gaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIHJlYWxpdHksIHRoaXMgaXMgdW5yZWFjaGFibGUgY29kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5vdCBoYXZpbmcgYSBkZWZhdWx0IGJyYW5jaCBhbHNvIGNhdXNlcyB3YXJuaW5ncyB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzb21lIGNvbXBpbGVycy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzdGFnZTJFbnRyeT0wOyAvKiBzdGFnZTJFbnRyeT0wIHRvIHJlc2V0IHJvdW5kdHJpcCBmbGFncyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaXMgdGhpcyBjb2RlIHBvaW50IGFzc2lnbmVkLCBvciBkbyB3ZSB1c2UgZmFsbGJhY2tzPyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighKE1CQ1NfRlJPTV9VX0lTX1JPVU5EVFJJUChzdGFnZTJFbnRyeSwgYykgfHwgKGlzRnJvbVVVc2VGYWxsYmFjayhjKSAmJiB2YWx1ZSE9MCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogV2UgYWxsb3cgYSAwIGJ5dGUgb3V0cHV0IGlmIHRoZSAiYXNzaWduZWQiIGJpdCBpcyBzZXQgZm9yIHRoaXMgZW50cnkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGVyZSBpcyBubyB3YXkgd2l0aCB0aGlzIGRhdGEgc3RydWN0dXJlIGZvciBmYWxsYmFjayBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRvIGJlIGEgemVybyBieXRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91bmFzc2lnbmVkOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lkZUVmZmVjdHMgeCA9IG5ldyBTaWRlRWZmZWN0cyhjLCBzb3VyY2VBcnJheUluZGV4LCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4LCBwcmV2U291cmNlSW5kZXgsIHByZXZMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gdW5hc3NpZ25lZChzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgeCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSB4LmM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSB4LnNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0geC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U291cmNlSW5kZXggPSB4LnByZXZTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZMZW5ndGggPSB4LnByZXZMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkb2xvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3cml0ZSB0aGUgb3V0cHV0IGNoYXJhY3RlciBieXRlcyBmcm9tIHZhbHVlIGFuZCBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZnJvbSB0aGUgZmlyc3QgaWYgaW4gdGhlIGxvb3Agd2Uga25vdyB0aGF0IHRhcmdldENhcGFjaXR5PjAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPD10YXJnZXQucmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHM9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2gobGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVhY2ggYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHZhbHVlPj4+MjQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodmFsdWU+Pj4xNikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh2YWx1ZT4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3aWxsIG5ldmVyIG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlYWNoIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh2YWx1ZT4+PjI0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHZhbHVlPj4+MTYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodmFsdWU+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2lsbCBuZXZlciBvY2N1ciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlcnJvckJ1ZmZlckFycmF5SW5kZXg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBXZSBhY3R1YWxseSBkbyB0aGlzIGJhY2t3YXJkcyBoZXJlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gb3JkZXIgdG8gc2F2ZSBhbiBpbnRlcm1lZGlhdGUgdmFyaWFibGUsIHdlIG91dHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZmlyc3QgdG8gdGhlIG92ZXJmbG93IGJ1ZmZlciB3aGF0IGRvZXMgbm90IGZpdCBpbnRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcmVndWxhciB0YXJnZXQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdlIGtub3cgdGhhdCAxPD10YXJnZXRDYXBhY2l0eTxsZW5ndGg8PTQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAtPSB0YXJnZXQucmVtYWluaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJBcnJheUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaChsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlYWNoIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJBcnJheUluZGV4KytdPShieXRlKSh2YWx1ZT4+PjE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyW2Vycm9yQnVmZmVyQXJyYXlJbmRleCsrXT0oYnl0ZSkodmFsdWU+Pj44KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyW2Vycm9yQnVmZmVyQXJyYXlJbmRleF09KGJ5dGUpdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2lsbCBuZXZlciBvY2N1ciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyTGVuZ3RoID0gKGJ5dGUpbGVuZ3RoOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3cgb3V0cHV0IHdoYXQgZml0cyBpbnRvIHRoZSByZWd1bGFyIHRhcmdldCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU+Pj49OCpsZW5ndGg7IC8qIGxlbmd0aCB3YXMgcmVkdWNlZCBieSB0YXJnZXRDYXBhY2l0eSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHRhcmdldC5yZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVhY2ggYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh2YWx1ZT4+PjE2KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodmFsdWU+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdpbGwgbmV2ZXIgb2NjdXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm9ybWFsIGVuZCBvZiBjb252ZXJzaW9uOiBwcmVwYXJlIGZvciBhIG5ldyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U291cmNlSW5kZXg9c291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD1uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGFyZ2V0IGlzIGZ1bGwgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIHRoZSBlbmQgb2YgdGhlIGlucHV0IHN0cmVhbSBhbmQgZGV0ZWN0aW9uIG9mIHRydW5jYXRlZCBpbnB1dAorICAgICAgICAgICAgICAgICAgICAgKiBhcmUgaGFuZGxlZCBieSB0aGUgZnJhbWV3b3JrLCBidXQgZm9yIEVCQ0RJQ19TVEFURUZVTCBjb252ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAqIHdlIG5lZWQgdG8gZW1pdCBhbiBTSSBhdCB0aGUgdmVyeSBlbmQKKyAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICogY29uZGl0aW9uczoKKyAgICAgICAgICAgICAgICAgICAgICogICBzdWNjZXNzZnVsCisgICAgICAgICAgICAgICAgICAgICAqICAgRUJDRElDX1NUQVRFRlVMIGluIERCQ1MgbW9kZQorICAgICAgICAgICAgICAgICAgICAgKiAgIGVuZCBvZiBpbnB1dCBhbmQgbm8gdHJ1bmNhdGVkIGlucHV0CisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZihvdXRwdXRUeXBlPT1NQkNTX09VVFBVVF8yX1NJU08gJiYgcHJldkxlbmd0aD09MiAmJgorICAgICAgICAgICAgICAgICAgICAgICBmbHVzaCAmJiBzb3VyY2VBcnJheUluZGV4Pj1zb3VyY2UubGltaXQoKSAmJiBjPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogRUJDRElDX1NUQVRFRlVMIGVuZGluZyB3aXRoIERCQ1M6IGVtaXQgYW4gU0kgdG8gcmV0dXJuIHRoZSBvdXRwdXQgc3RyZWFtIHRvIFNCQ1MgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpVUNvbnZlcnRlckNvbnN0YW50cy5TSSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIGxhc3Qgc291cmNlIGNoYXJhY3RlcidzIGluZGV4IChzb3VyY2VJbmRleCBwb2ludHMgYXQgc291cmNlTGltaXQgbm93KSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChwcmV2U291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0YXJnZXQgaXMgZnVsbCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyWzBdPShieXRlKVVDb252ZXJ0ZXJDb25zdGFudHMuU0k7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoPTE7IC8qIHdlIHN3aXRjaGVkIGludG8gU0JDUyAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgY29udmVydGVyIHN0YXRlIGJhY2sgaW50byBVQ29udmVydGVyICovCisgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzI9YzsKKyAgICAgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cz1wcmV2TGVuZ3RoOworICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChCdWZmZXJPdmVyZmxvd0V4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBjb250aW51ZSBwYXJ0aWFsIG1hdGNoIHdpdGggbmV3IGlucHV0LCByZXF1aXJlcyBjbnYtPnByZUZyb21VRmlyc3RDUD49MAorICAgICAgICAgKiBuZXZlciBjYWxsZWQgZm9yIHNpbXBsZSwgc2luZ2xlLWNoYXJhY3RlciBjb252ZXJzaW9uCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgY29udGludWVNYXRjaEZyb21VKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gsIGludCBzcmNJbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICBpbnRbXSB2YWx1ZSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBpbnQgbWF0Y2g7CisgICAgICAgIAorICAgICAgICAgICAgbWF0Y2ggPSBtYXRjaEZyb21VKHByZUZyb21VRmlyc3RDUCwgcHJlRnJvbVVBcnJheSwgcHJlRnJvbVVCZWdpbiwgcHJlRnJvbVVMZW5ndGgsIHNvdXJjZSwgdGFyZ2V0LCB2YWx1ZSwgZmx1c2gpOworICAgICAgICAgICAgaWYobWF0Y2g+PTIpIHsKKyAgICAgICAgICAgICAgICBtYXRjaC09MjsgLyogcmVtb3ZlIDIgZm9yIHRoZSBpbml0aWFsIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYobWF0Y2g+PXByZUZyb21VTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGFkdmFuY2Ugc3JjIHBvaW50ZXIgZm9yIHRoZSBjb25zdW1lZCBpbnB1dCAqLworICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkrbWF0Y2gtcHJlRnJvbVVMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBwcmVGcm9tVUxlbmd0aD0wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBtYXRjaCBkaWQgbm90IHVzZSBhbGwgb2YgcHJlRnJvbVVbXSAtIGtlZXAgdGhlIHJlc3QgZm9yIHJlcGxheSAqLworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gcHJlRnJvbVVMZW5ndGgtbWF0Y2g7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocHJlRnJvbVVBcnJheSwgcHJlRnJvbVVCZWdpbittYXRjaCwgcHJlRnJvbVVBcnJheSwgcHJlRnJvbVVCZWdpbiwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgcHJlRnJvbVVMZW5ndGg9KGJ5dGUpLWxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIGZpbmlzaCB0aGUgcGFydGlhbCBtYXRjaCAqLworICAgICAgICAgICAgICAgIHByZUZyb21VRmlyc3RDUCA9IFVDb252ZXJ0ZXJDb25zdGFudHMuVV9TRU5USU5FTDsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogd3JpdGUgcmVzdWx0ICovCisgICAgICAgICAgICAgICAgd3JpdGVGcm9tVSh2YWx1ZVswXSwgdGFyZ2V0LCBvZmZzZXRzLCBzcmNJbmRleCk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZihtYXRjaDwwKSB7CisgICAgICAgICAgICAgICAgLyogc2F2ZSBzdGF0ZSBmb3IgcGFydGlhbCBtYXRjaCAqLworICAgICAgICAgICAgICAgIGludCBzQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyoganVzdCBfYXBwZW5kXyB0aGUgbmV3bHkgY29uc3VtZWQgaW5wdXQgdG8gcHJlRnJvbVVbXSAqLworICAgICAgICAgICAgICAgIHNBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgbWF0Y2ggPS0gbWF0Y2gtMjsgLyogcmVtb3ZlIDIgZm9yIHRoZSBpbml0aWFsIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICBmb3Ioaj1wcmVGcm9tVUxlbmd0aDsgajxtYXRjaDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHByZUZyb21VQXJyYXlbal09c291cmNlLmdldChzQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNBcnJheUluZGV4KTsgLyogc2FtZSBhcyAqc3JjPXNyY0xpbWl0OyBiZWNhdXNlIHdlIHJlYWNoZWQgdGhlIGVuZCBvZiBpbnB1dCAqLworICAgICAgICAgICAgICAgIHByZUZyb21VTGVuZ3RoPShieXRlKW1hdGNoOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgLyogbWF0Y2g9PTAgb3IgMSAqLyB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBubyBtYXRjaAorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogV2UgbmVlZCB0byBzcGxpdCB0aGUgcHJldmlvdXMgaW5wdXQgaW50byB0d28gcGFydHM6CisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAxLiBUaGUgZmlyc3QgY29kZSBwb2ludCBpcyB1bm1hcHBhYmxlIC0gdGhhdCdzIGhvdyB3ZSBnb3QgaW50bworICAgICAgICAgICAgICAgICAqICAgIHRyeWluZyB0aGUgZXh0ZW5zaW9uIGRhdGEgaW4gdGhlIGZpcnN0IHBsYWNlLgorICAgICAgICAgICAgICAgICAqICAgIFdlIG5lZWQgdG8gbW92ZSBpdCBmcm9tIHRoZSBwcmVGcm9tVSBidWZmZXIKKyAgICAgICAgICAgICAgICAgKiAgICB0byB0aGUgZXJyb3IgYnVmZmVyLCBzZXQgYW4gZXJyb3IgY29kZSwKKyAgICAgICAgICAgICAgICAgKiAgICBhbmQgcHJlcGFyZSB0aGUgcmVzdCBvZiB0aGUgcHJldmlvdXMgaW5wdXQgZm9yIDIuCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAyLiBUaGUgcmVzdCBvZiB0aGUgcHJldmlvdXMgaW5wdXQgbXVzdCBiZSBjb252ZXJ0ZWQgb25jZSB3ZQorICAgICAgICAgICAgICAgICAqICAgIGNvbWUgYmFjayBmcm9tIHRoZSBjYWxsYmFjayBmb3IgdGhlIGZpcnN0IGNvZGUgcG9pbnQuCisgICAgICAgICAgICAgICAgICogICAgQXQgdGhhdCB0aW1lLCB3ZSBoYXZlIHRvIHRyeSBhZ2FpbiBmcm9tIHNjcmF0Y2ggdG8gY29udmVydAorICAgICAgICAgICAgICAgICAqICAgIHRoZXNlIGlucHV0IGNoYXJhY3RlcnMuCisgICAgICAgICAgICAgICAgICogICAgVGhlIHJlcGxheSB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIHVjbnYuYyBjb252ZXJzaW9uIGNvZGUuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKG1hdGNoPT0xKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG1hdGNoZWQsIG5vIG1hcHBpbmcgYnV0IHJlcXVlc3QgZm9yIDxzdWJjaGFyMT4gKi8KKyAgICAgICAgICAgICAgICAgICAgdXNlU3ViQ2hhcjE9dHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG1vdmUgdGhlIGZpcnN0IGNvZGUgcG9pbnQgdG8gdGhlIGVycm9yIGZpZWxkICovCisgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBwcmVGcm9tVUZpcnN0Q1A7CisgICAgICAgICAgICAgICAgcHJlRnJvbVVGaXJzdENQID0gVUNvbnZlcnRlckNvbnN0YW50cy5VX1NFTlRJTkVMOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBtYXJrIHByZUZyb21VIGZvciByZXBsYXkgKi8KKyAgICAgICAgICAgICAgICBwcmVGcm9tVUxlbmd0aCA9IChieXRlKSAtIHByZUZyb21VTGVuZ3RoOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIGVycm9yIGNvZGUgZm9yIHVuYXNzaWduZWQgKi8KKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0LnVubWFwcGFibGVGb3JMZW5ndGgoc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBAcGFyYW0gY3ggcG9pbnRlciB0byBleHRlbnNpb24gZGF0YTsgaWYgTlVMTCwgcmV0dXJucyAwCisgICAgICAgICAqIEBwYXJhbSBmaXJzdENQIHRoZSBmaXJzdCBjb2RlIHBvaW50IGJlZm9yZSBhbGwgdGhlIG90aGVyIFVDaGFycworICAgICAgICAgKiBAcGFyYW0gcHJlIFVDaGFycyB0aGF0IG11c3QgbWF0Y2g7ICFpbml0aWFsTWF0Y2g6IHBhcnRpYWwgbWF0Y2ggd2l0aCB0aGVtCisgICAgICAgICAqIEBwYXJhbSBwcmVMZW5ndGggbGVuZ3RoIG9mIHByZSwgPj0wCisgICAgICAgICAqIEBwYXJhbSBzcmMgVUNoYXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29tcGxldGUgYSBtYXRjaAorICAgICAgICAgKiBAcGFyYW0gc3JjTGVuZ3RoIGxlbmd0aCBvZiBzcmMsID49MAorICAgICAgICAgKiBAcGFyYW0gcE1hdGNoVmFsdWUgW291dF0gb3V0cHV0IHJlc3VsdCB2YWx1ZSBmb3IgdGhlIG1hdGNoIGZyb20gdGhlIGRhdGEgc3RydWN0dXJlCisgICAgICAgICAqIEBwYXJhbSB1c2VGYWxsYmFjayAidXNlIGZhbGxiYWNrIiBmbGFnLCB1c3VhbGx5IGZyb20gY252LT51c2VGYWxsYmFjaworICAgICAgICAgKiBAcGFyYW0gZmx1c2ggVFJVRSBpZiB0aGUgZW5kIG9mIHRoZSBpbnB1dCBzdHJlYW0gaXMgcmVhY2hlZAorICAgICAgICAgKiBAcmV0dXJuID4xOiBtYXRjaGVkLCByZXR1cm4gdmFsdWU9dG90YWwgbWF0Y2ggbGVuZ3RoIChudW1iZXIgb2YgaW5wdXQgdW5pdHMgbWF0Y2hlZCkKKyAgICAgICAgICogICAgICAgICAgMTogbWF0Y2hlZCwgbm8gbWFwcGluZyBidXQgcmVxdWVzdCBmb3IgPHN1YmNoYXIxPgorICAgICAgICAgKiAgICAgICAgICAgICAob25seSBmb3IgdGhlIGZpcnN0IGNvZGUgcG9pbnQpCisgICAgICAgICAqICAgICAgICAgIDA6IG5vIG1hdGNoCisgICAgICAgICAqICAgICAgICAgPDA6IHBhcnRpYWwgbWF0Y2gsIHJldHVybiB2YWx1ZT1uZWdhdGl2ZSB0b3RhbCBtYXRjaCBsZW5ndGgKKyAgICAgICAgICogICAgICAgICAgICAgKHBhcnRpYWwgbWF0Y2hlcyBhcmUgbmV2ZXIgcmV0dXJuZWQgZm9yIGZsdXNoPT1UUlVFKQorICAgICAgICAgKiAgICAgICAgICAgICAocGFydGlhbCBtYXRjaGVzIGFyZSBuZXZlciByZXR1cm5lZCBhcyBiZWluZyBsb25nZXIgdGhhbiBVQ05WX0VYVF9NQVhfVUNIQVJTKQorICAgICAgICAgKiAgICAgICAgIHRoZSBtYXRjaExlbmd0aCBpcyAyIGlmIG9ubHkgZmlyc3RDUCBtYXRjaGVkLCBhbmQgPjIgaWYgZmlyc3RDUCBhbmQKKyAgICAgICAgICogICAgICAgICBmdXJ0aGVyIGNvZGUgdW5pdHMgbWF0Y2hlZAorICAgICAgICAgKi8KKyAgICAgICAgLy9zdGF0aWMgaW50MzJfdCB1Y252X2V4dE1hdGNoRnJvbVUoY29uc3QgaW50MzJfdCAqY3gsIFVDaGFyMzIgZmlyc3RDUCwgY29uc3QgVUNoYXIgKnByZSwgaW50MzJfdCBwcmVMZW5ndGgsIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLCB1aW50MzJfdCAqcE1hdGNoVmFsdWUsIFVCb29sIHVzZUZhbGxiYWNrLCBVQm9vbCBmbHVzaCkKKyAgICAgICAgcHJvdGVjdGVkIGludCBtYXRjaEZyb21VKGludCBmaXJzdENQLCBjaGFyW10gcHJlQXJyYXksIGludCBwcmVBcnJheUJlZ2luLCBpbnQgcHJlTGVuZ3RoLCBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIGludFtdIHBNYXRjaFZhbHVlLCBib29sZWFuIGZsdXNoKQorICAgICAgICB7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGN4ID0gc2hhcmVkRGF0YS5tYmNzLmV4dEluZGV4ZXM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENoYXJCdWZmZXIgc3RhZ2UxMiwgc3RhZ2UzOworICAgICAgICAgICAgSW50QnVmZmVyIHN0YWdlM2I7CisgICAgICAgIAorICAgICAgICAgICAgQ2hhckJ1ZmZlciBmcm9tVVRhYmxlVUNoYXJzLCBmcm9tVVNlY3Rpb25VQ2hhcnM7CisgICAgICAgICAgICBJbnRCdWZmZXIgZnJvbVVUYWJsZVZhbHVlcywgZnJvbVVTZWN0aW9uVmFsdWVzOworICAgICAgICAKKyAgICAgICAgICAgIGludCB2YWx1ZSwgbWF0Y2hWYWx1ZTsKKyAgICAgICAgICAgIGludCBpLCBqLCBpbmRleCwgbGVuZ3RoLCBtYXRjaExlbmd0aDsKKyAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgCisgICAgICAgICAgICBpZihjeD09bnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiBubyBleHRlbnNpb24gZGF0YSwgbm8gbWF0Y2ggKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiB0cmllIGxvb2t1cCBvZiBmaXJzdENQICovCisgICAgICAgICAgICBpbmRleD1maXJzdENQPj4+MTA7IC8qIHN0YWdlIDEgaW5kZXggKi8KKyAgICAgICAgICAgIGlmKGluZGV4Pj1jeC5hc0ludEJ1ZmZlcigpLmdldChFWFRfRlJPTV9VX1NUQUdFXzFfTEVOR1RIKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiB0aGUgZmlyc3QgY29kZSBwb2ludCBpcyBvdXRzaWRlIHRoZSB0cmllICovCisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgc3RhZ2UxMiA9IChDaGFyQnVmZmVyKUFSUkFZKGN4LCBFWFRfRlJPTV9VX1NUQUdFXzEyX0lOREVYLCBjaGFyLmNsYXNzKTsKKyAgICAgICAgICAgIHN0YWdlMyA9IChDaGFyQnVmZmVyKUFSUkFZKGN4LCBFWFRfRlJPTV9VX1NUQUdFXzNfSU5ERVgsIGNoYXIuY2xhc3MpOworICAgICAgICAgICAgaW5kZXggPSBGUk9NX1Uoc3RhZ2UxMiwgc3RhZ2UzLCBpbmRleCwgZmlyc3RDUCk7CisgICAgICAgIAorICAgICAgICAgICAgc3RhZ2UzYiA9IChJbnRCdWZmZXIpQVJSQVkoY3gsIEVYVF9GUk9NX1VfU1RBR0VfM0JfSU5ERVgsIGludC5jbGFzcyk7CisgICAgICAgICAgICB2YWx1ZSA9IHN0YWdlM2IuZ2V0KHN0YWdlM2IucG9zaXRpb24oKSArIGluZGV4KTsKKyAgICAgICAgICAgIGlmKHZhbHVlPT0wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoVE9fVV9JU19QQVJUSUFMKHZhbHVlKSkgeworICAgICAgICAgICAgICAgIC8qIHBhcnRpYWwgbWF0Y2gsIGVudGVyIHRoZSBsb29wIGJlbG93ICovCisgICAgICAgICAgICAgICAgaW5kZXggPSBGUk9NX1VfR0VUX1BBUlRJQUxfSU5ERVgodmFsdWUpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBpbml0aWFsaXplICovCisgICAgICAgICAgICAgICAgZnJvbVVUYWJsZVVDaGFycyA9IChDaGFyQnVmZmVyKUFSUkFZKGN4LCBFWFRfRlJPTV9VX1VDSEFSU19JTkRFWCwgY2hhci5jbGFzcyk7CisgICAgICAgICAgICAgICAgZnJvbVVUYWJsZVZhbHVlcyA9IChJbnRCdWZmZXIpQVJSQVkoY3gsIEVYVF9GUk9NX1VfVkFMVUVTX0lOREVYLCBpbnQuY2xhc3MpOworICAgICAgICAKKyAgICAgICAgICAgICAgICBtYXRjaFZhbHVlPTA7CisgICAgICAgICAgICAgICAgaT1qPW1hdGNoTGVuZ3RoPTA7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHdlIG11c3Qgbm90IHJlbWVtYmVyIGZhbGxiYWNrIG1hdGNoZXMgd2hlbiBub3QgdXNpbmcgZmFsbGJhY2tzICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG1hdGNoIGlucHV0IHVuaXRzIHVudGlsIHRoZXJlIGlzIGEgZnVsbCBtYXRjaCBvciB0aGUgaW5wdXQgaXMgY29uc3VtZWQgKi8KKyAgICAgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZ28gdG8gdGhlIG5leHQgc2VjdGlvbiAqLworICAgICAgICAgICAgICAgICAgICBpbnQgb2xkcG9zID0gZnJvbVVUYWJsZVVDaGFycy5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgICAgICBmcm9tVVNlY3Rpb25VQ2hhcnMgPSAoKENoYXJCdWZmZXIpZnJvbVVUYWJsZVVDaGFycy5wb3NpdGlvbihpbmRleCkpLnNsaWNlKCk7CisgICAgICAgICAgICAgICAgICAgIGZyb21VVGFibGVVQ2hhcnMucG9zaXRpb24ob2xkcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgb2xkcG9zID0gZnJvbVVUYWJsZVZhbHVlcy5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgICAgICBmcm9tVVNlY3Rpb25WYWx1ZXMgPSAoKEludEJ1ZmZlcilmcm9tVVRhYmxlVmFsdWVzLnBvc2l0aW9uKGluZGV4KSkuc2xpY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgZnJvbVVUYWJsZVZhbHVlcy5wb3NpdGlvbihvbGRwb3MpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogcmVhZCBmaXJzdCBwYWlyIG9mIHRoZSBzZWN0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IGZyb21VU2VjdGlvblVDaGFycy5nZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmcm9tVVNlY3Rpb25WYWx1ZXMuZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmKCB2YWx1ZSE9MCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKEZST01fVV9JU19ST1VORFRSSVAodmFsdWUpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgaXNGcm9tVVVzZUZhbGxiYWNrKGZpcnN0Q1ApKQorICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlbWVtYmVyIGxvbmdlc3QgbWF0Y2ggc28gZmFyICovCisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaExlbmd0aCA9IDIraStqOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBtYXRjaCBwcmVbXSB0aGVuIHNyY1tdICovCisgICAgICAgICAgICAgICAgICAgIGlmKGk8cHJlTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gcHJlQXJyYXlbcHJlQXJyYXlCZWdpbiArIGkrK107CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihqPHNvdXJjZS5yZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHNvdXJjZS5nZXQoc291cmNlLnBvc2l0aW9uKCkgKyBqKyspOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYWxsIGlucHV0IGNvbnN1bWVkLCBwYXJ0aWFsIG1hdGNoICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihmbHVzaCB8fCAobGVuZ3RoPShpK2opKT5NQVhfVUNIQVJTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBlbmQgb2YgdGhlIGVudGlyZSBpbnB1dCBzdHJlYW0sIHN0b3Agd2l0aCB0aGUgbG9uZ2VzdCBtYXRjaCBzbyBmYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBvcjogcGFydGlhbCBtYXRjaCBtdXN0IG5vdCBiZSBsb25nZXIgdGhhbiBVQ05WX0VYVF9NQVhfVUNIQVJTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYmVjYXVzZSBpdCBtdXN0IGZpdCBpbnRvIHN0YXRlIGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udGludWUgd2l0aCBtb3JlIGlucHV0IG5leHQgdGltZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtKDIrbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogc2VhcmNoIGZvciB0aGUgY3VycmVudCBVQ2hhciAqLworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGZpbmRGcm9tVShmcm9tVVNlY3Rpb25VQ2hhcnMsIGxlbmd0aCwgYyk7CisgICAgICAgICAgICAgICAgICAgIGlmKGluZGV4PDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG1hdGNoIGhlcmUsIHN0b3Agd2l0aCB0aGUgbG9uZ2VzdCBtYXRjaCBzbyBmYXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmcm9tVVNlY3Rpb25WYWx1ZXMuZ2V0KGZyb21VU2VjdGlvblZhbHVlcy5wb3NpdGlvbigpICsgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoRlJPTV9VX0lTX1BBUlRJQUwodmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcGFydGlhbCBtYXRjaCwgY29udGludWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IEZST01fVV9HRVRfUEFSVElBTF9JTkRFWCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBGUk9NX1VfSVNfUk9VTkRUUklQKHZhbHVlKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Zyb21VVXNlRmFsbGJhY2soZmlyc3RDUCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZnVsbCBtYXRjaCwgc3RvcCB3aXRoIHJlc3VsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFZhbHVlPXZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaExlbmd0aD0yK2krajsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmdWxsIG1hdGNoIG9uIGZhbGxiYWNrIG5vdCB0YWtlbiwgc3RvcCB3aXRoIHRoZSBsb25nZXN0IG1hdGNoIHNvIGZhciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYobWF0Y2hMZW5ndGg9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm8gbWF0Y2ggYXQgYWxsICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSAvKiByZXN1bHQgZnJvbSBmaXJzdENQIHRyaWUgbG9va3VwICovIHsKKyAgICAgICAgICAgICAgICBpZiggRlJPTV9VX0lTX1JPVU5EVFJJUCh2YWx1ZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaXNGcm9tVVVzZUZhbGxiYWNrKGZpcnN0Q1ApCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGZ1bGwgbWF0Y2gsIHN0b3Agd2l0aCByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hWYWx1ZT12YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hMZW5ndGg9MjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBmYWxsYmFjayBub3QgdGFrZW4gKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKChtYXRjaFZhbHVlJkZST01fVV9SRVNFUlZFRF9NQVNLKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgLyogZG8gbm90IGludGVycHJldCB2YWx1ZXMgd2l0aCByZXNlcnZlZCBiaXRzIHVzZWQsIGZvciBmb3J3YXJkIGNvbXBhdGliaWxpdHkgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiByZXR1cm4gcmVzdWx0ICovCisgICAgICAgICAgICBpZihtYXRjaFZhbHVlPT1GUk9NX1VfU1VCQ0hBUjEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsgLyogYXNzZXJ0IG1hdGNoTGVuZ3RoPT0yICovCisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgcE1hdGNoVmFsdWVbMF09RlJPTV9VX01BU0tfUk9VTkRUUklQKG1hdGNoVmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIG1hdGNoTGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgd3JpdGVGcm9tVShpbnQgdmFsdWUsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgaW50IHNyY0luZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGN4ID0gc2hhcmVkRGF0YS5tYmNzLmV4dEluZGV4ZXM7ICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ5dGUgYnVmZmVyQXJyYXlbXSA9IG5ldyBieXRlWzErTUFYX0JZVEVTXTsKKyAgICAgICAgICAgIGludCBidWZmZXJBcnJheUluZGV4ID0gMDsKKyAgICAgICAgICAgIGJ5dGVbXSByZXN1bHRBcnJheTsKKyAgICAgICAgICAgIGludCByZXN1bHRBcnJheUluZGV4OworICAgICAgICAgICAgaW50IGxlbmd0aCwgcHJldkxlbmd0aDsKKyAgICAgICAgCisgICAgICAgICAgICBsZW5ndGggPSBGUk9NX1VfR0VUX0xFTkdUSCh2YWx1ZSk7CisgICAgICAgICAgICB2YWx1ZSA9IEZST01fVV9HRVRfREFUQSh2YWx1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgLyogb3V0cHV0IHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgIGlmKGxlbmd0aDw9RlJPTV9VX01BWF9ESVJFQ1RfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBHZW5lcmF0ZSBhIGJ5dGUgYXJyYXkgYW5kIHRoZW4gd3JpdGUgaXQgYmVsb3cuCisgICAgICAgICAgICAgICAgICogVGhpcyBpcyBub3QgdGhlIGZhc3Rlc3QgcG9zc2libGUgd2F5LCBidXQgaXQgc2hvdWxkIGJlIG9rIGZvcgorICAgICAgICAgICAgICAgICAqIGV4dGVuc2lvbiBtYXBwaW5ncywgYW5kIGl0IGlzIG11Y2ggc2ltcGxlci4KKyAgICAgICAgICAgICAgICAgKiBPZmZzZXQgYW5kIG92ZXJmbG93IGhhbmRsaW5nIGFyZSBvbmx5IGRvbmUgb25jZSB0aGlzIHdheS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpbnQgcCA9IGJ1ZmZlckFycmF5SW5kZXgrMTsgLyogcmVzZXJ2ZSBidWZmZXJbMF0gZm9yIHNoaWZ0Qnl0ZSBiZWxvdyAqLworICAgICAgICAgICAgICAgIHN3aXRjaChsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyQXJyYXlbcCsrXSA9IChieXRlKSh2YWx1ZT4+PjE2KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyQXJyYXlbcCsrXSA9IChieXRlKSh2YWx1ZT4+PjgpOworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJBcnJheVtwKytdID0gKGJ5dGUpdmFsdWU7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgLyogd2lsbCBuZXZlciBvY2N1ciAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHRBcnJheSA9IGJ1ZmZlckFycmF5OworICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5SW5kZXggPSBidWZmZXJBcnJheUluZGV4KzE7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIHNsaWNlID0gbmV3IGJ5dGVbbGVuZ3RoXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIGJiID0gKChCeXRlQnVmZmVyKUFSUkFZKGN4LCBFWFRfRlJPTV9VX0JZVEVTX0lOREVYLCBieXRlLmNsYXNzKSk7CisgICAgICAgICAgICAgICAgYmIucG9zaXRpb24odmFsdWUpOworICAgICAgICAgICAgICAgIGJiLmdldChzbGljZSwgMCwgc2xpY2UubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXN1bHRBcnJheSA9IHNsaWNlOworICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5SW5kZXggPSAwOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHdpdGggY29ycmVjdCBkYXRhIHdlIGhhdmUgbGVuZ3RoPjAgKi8KKyAgICAgICAgCisgICAgICAgICAgICBpZigocHJldkxlbmd0aD0oaW50KWZyb21Vbmljb2RlU3RhdHVzKSE9MCkgeworICAgICAgICAgICAgICAgIC8qIGhhbmRsZSBTSS9TTyBzdGF0ZWZ1bCBvdXRwdXQgKi8KKyAgICAgICAgICAgICAgICBieXRlIHNoaWZ0Qnl0ZTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYocHJldkxlbmd0aD4xICYmIGxlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAvKiBjaGFuZ2UgZnJvbSBkb3VibGUtYnl0ZSBtb2RlIHRvIHNpbmdsZS1ieXRlICovCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0Qnl0ZSA9IChieXRlKVVDb252ZXJ0ZXJDb25zdGFudHMuU0k7CisgICAgICAgICAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzID0gMTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYocHJldkxlbmd0aD09MSAmJiBsZW5ndGg+MSkgeworICAgICAgICAgICAgICAgICAgICAvKiBjaGFuZ2UgZnJvbSBzaW5nbGUtYnl0ZSBtb2RlIHRvIGRvdWJsZS1ieXRlICovCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0Qnl0ZSA9IChieXRlKVVDb252ZXJ0ZXJDb25zdGFudHMuU087CisgICAgICAgICAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzID0gMjsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzaGlmdEJ5dGUgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoc2hpZnRCeXRlIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHByZXBlbmQgdGhlIHNoaWZ0IGJ5dGUgdG8gdGhlIHJlc3VsdCBieXRlcyAqLworICAgICAgICAgICAgICAgICAgICBidWZmZXJBcnJheVswXSA9IHNoaWZ0Qnl0ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYocmVzdWx0QXJyYXkhPWJ1ZmZlckFycmF5IHx8IHJlc3VsdEFycmF5SW5kZXghPWJ1ZmZlckFycmF5SW5kZXgrMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShyZXN1bHRBcnJheSwgcmVzdWx0QXJyYXlJbmRleCwgYnVmZmVyQXJyYXksIGJ1ZmZlckFycmF5SW5kZXgrMSwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHRBcnJheSA9IGJ1ZmZlckFycmF5OworICAgICAgICAgICAgICAgICAgICByZXN1bHRBcnJheUluZGV4ID0gYnVmZmVyQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgKytsZW5ndGg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmcm9tVVdyaXRlQnl0ZXModGhpcywgcmVzdWx0QXJyYXksIHJlc3VsdEFycmF5SW5kZXgsIGxlbmd0aCwgdGFyZ2V0LCBvZmZzZXRzLCBzcmNJbmRleCk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBAcmV0dXJuIGlmKFVfRkFJTFVSRSkgcmV0dXJuIHRoZSBjb2RlIHBvaW50IGZvciBjbnYtPmZyb21VQ2hhcjMyCisgICAgICAgICAqICAgICAgICAgZWxzZSByZXR1cm4gMCBhZnRlciBvdXRwdXQgaGFzIGJlZW4gd3JpdHRlbiB0byB0aGUgdGFyZ2V0CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IGZyb21VKGludCBjcF8sIENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGludCBzb3VyY2VJbmRleCwgYm9vbGVhbiBmbHVzaCwgQ29kZXJSZXN1bHRbXSBjcikKKyAgICAgICAgeworICAgICAgICAgICAgLy9CeXRlQnVmZmVyIGN4OworICAgICAgICAgICAgbG9uZyBjcCA9IGNwXyAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0s7CisgICAgICAgIAorICAgICAgICAgICAgdXNlU3ViQ2hhcjE9ZmFsc2U7CisgICAgICAgIAorICAgICAgICAgICAgaWYoIHNoYXJlZERhdGEubWJjcy5leHRJbmRleGVzIT1udWxsICYmIGluaXRpYWxNYXRjaEZyb21VKChpbnQpY3AsIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2VJbmRleCwgZmx1c2gsIGNyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiBhbiBleHRlbnNpb24gbWFwcGluZyBoYW5kbGVkIHRoZSBpbnB1dCAqLworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIEdCIDE4MDMwICovCisgICAgICAgICAgICBpZigob3B0aW9ucyZNQkNTX09QVElPTl9HQjE4MDMwKSE9MCkgeworICAgICAgICAgICAgICAgIGxvbmdbXSByYW5nZTsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yKGk9MDsgaTxnYjE4MDMwUmFuZ2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHJhbmdlPWdiMTgwMzBSYW5nZXNbaV07CisgICAgICAgICAgICAgICAgICAgIGlmKHJhbmdlWzBdPD1jcCAmJiBjcDw9cmFuZ2VbMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvdW5kIHRoZSBVbmljb2RlIGNvZGUgcG9pbnQsIG91dHB1dCB0aGUgZm91ci1ieXRlIHNlcXVlbmNlIGZvciBpdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsaW5lYXI7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlIGJ5dGVzW10gPSBuZXcgYnl0ZVs0XTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBnZXQgdGhlIGxpbmVhciB2YWx1ZSBvZiB0aGUgZmlyc3QgR0IgMTgwMzAgY29kZSBpbiB0aGlzIHJhbmdlICovCisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXI9cmFuZ2VbMl0tTElORUFSXzE4MDMwX0JBU0U7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogYWRkIHRoZSBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyKz0oY3AtcmFuZ2VbMF0pOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzWzNdPShieXRlKSgweDMwK2xpbmVhciUxMCk7IGxpbmVhci89MTA7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1syXT0oYnl0ZSkoMHg4MStsaW5lYXIlMTI2KTsgbGluZWFyLz0xMjY7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1sxXT0oYnl0ZSkoMHgzMCtsaW5lYXIlMTApOyBsaW5lYXIvPTEwOworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNbMF09KGJ5dGUpKDB4ODErbGluZWFyKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgdGhpcyBzZXF1ZW5jZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBmcm9tVVdyaXRlQnl0ZXModGhpcywgYnl0ZXMsIDAsIDQsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogbm8gbWFwcGluZyAqLworICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC51bm1hcHBhYmxlRm9yTGVuZ3RoKDEpOworICAgICAgICAgICAgcmV0dXJuIChpbnQpY3A7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiB0YXJnZXQ8dGFyZ2V0TGltaXQ7IHNldCBlcnJvciBjb2RlIGZvciBvdmVyZmxvdworICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaW5pdGlhbE1hdGNoRnJvbVUoaW50IGNwLCBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc3JjSW5kZXgsIGJvb2xlYW4gZmx1c2gsIENvZGVyUmVzdWx0W10gY3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludFtdIHZhbHVlID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGludCBtYXRjaDsKKyAgICAgICAgCisgICAgICAgICAgICAvKiB0cnkgdG8gbWF0Y2ggKi8KKyAgICAgICAgICAgIG1hdGNoID0gbWF0Y2hGcm9tVShjcCwgbnVsbCwgMCwgMCwgc291cmNlLCB0YXJnZXQsIHZhbHVlLCBmbHVzaCk7CisgICAgICAgIAorICAgICAgICAgICAgLyogcmVqZWN0IGEgbWF0Y2ggaWYgdGhlIHJlc3VsdCBpcyBhIHNpbmdsZSBieXRlIGZvciBEQkNTLW9ubHkgKi8KKyAgICAgICAgICAgIGlmKCBtYXRjaD49MiAmJgorICAgICAgICAgICAgICAgICEoRlJPTV9VX0dFVF9MRU5HVEgodmFsdWVbMF0pPT0xICYmCisgICAgICAgICAgICAgICAgICBzaGFyZWREYXRhLm1iY3Mub3V0cHV0VHlwZT09TUJDU19PVVRQVVRfREJDU19PTkxZKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLyogYWR2YW5jZSBzcmMgcG9pbnRlciBmb3IgdGhlIGNvbnN1bWVkIGlucHV0ICovCisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZS5wb3NpdGlvbigpK21hdGNoLTIpOyAvKiByZW1vdmUgMiBmb3IgdGhlIGluaXRpYWwgY29kZSBwb2ludCAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB3cml0ZSByZXN1bHQgdG8gdGFyZ2V0ICovCisgICAgICAgICAgICAgICAgY3JbMF0gPSB3cml0ZUZyb21VKHZhbHVlWzBdLCB0YXJnZXQsIG9mZnNldHMsIHNyY0luZGV4KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtYXRjaDwwKSB7CisgICAgICAgICAgICAgICAgLyogc2F2ZSBzdGF0ZSBmb3IgcGFydGlhbCBtYXRjaCAqLworICAgICAgICAgICAgICAgIGludCBzQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogY29weSB0aGUgZmlyc3QgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIHByZUZyb21VRmlyc3RDUD1jcDsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogbm93IGNvcHkgdGhlIG5ld2x5IGNvbnN1bWVkIGlucHV0ICovCisgICAgICAgICAgICAgICAgc0FycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBtYXRjaCA9LSBtYXRjaC0yOyAvKiByZW1vdmUgMiBmb3IgdGhlIGluaXRpYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8bWF0Y2g7ICsraikgeworICAgICAgICAgICAgICAgICAgICBwcmVGcm9tVUFycmF5W2pdPXNvdXJjZS5nZXQoc0FycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzQXJyYXlJbmRleCk7IC8qIHNhbWUgYXMgKnNyYz1zcmNMaW1pdDsgYmVjYXVzZSB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICBwcmVGcm9tVUxlbmd0aD0oYnl0ZSltYXRjaDsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtYXRjaD09MSkgeworICAgICAgICAgICAgICAgIC8qIG1hdGNoZWQsIG5vIG1hcHBpbmcgYnV0IHJlcXVlc3QgZm9yIDxzdWJjaGFyMT4gKi8KKyAgICAgICAgICAgICAgICB1c2VTdWJDaGFyMT10cnVlOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSAvKiBtYXRjaD09MCBubyBtYXRjaCAqLyB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhpcyB2ZXJzaW9uIG9mIHVjbnZfTUJDU0Zyb21Vbmljb2RlKCkgaXMgb3B0aW1pemVkIGZvciBzaW5nbGUtYnl0ZSBjb2RlcGFnZXMKKyAgICAgICAgICogdGhhdCBtYXAgb25seSB0byBhbmQgZnJvbSB0aGUgQk1QLgorICAgICAgICAgKiBJbiBhZGRpdGlvbiB0byBzaW5nbGUtYnl0ZS9zdGF0ZSBvcHRpbWl6YXRpb25zLCB0aGUgb2Zmc2V0IGNhbGN1bGF0aW9ucworICAgICAgICAgKiBiZWNvbWUgbXVjaCBlYXNpZXIuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgY252TUJDU1NpbmdsZUZyb21CTVBXaXRoT2Zmc2V0cyhDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ29kZXJSZXN1bHRbXSBjciA9IHtDb2RlclJlc3VsdC5VTkRFUkZMT1d9OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleCwgbGFzdFNvdXJjZTsKKyAgICAgICAgICAgIGludCB0YXJnZXRDYXBhY2l0eSwgbGVuZ3RoOworICAgICAgICAgICAgY2hhcltdIHRhYmxlOworICAgICAgICAgICAgYnl0ZVtdIHJlc3VsdHM7CisgICAgICAgIAorICAgICAgICAgICAgaW50IGMsIHNvdXJjZUluZGV4OyAgICAgICAgCisgICAgICAgICAgICBjaGFyIHZhbHVlLCBtaW5WYWx1ZTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBzZXQgdXAgdGhlIGxvY2FsIHBvaW50ZXJzICovCisgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eSA9IHRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIHRhYmxlID0gc2hhcmVkRGF0YS5tYmNzLmZyb21Vbmljb2RlVGFibGU7CisgICAgICAgIAorICAgICAgICAgICAgaWYoKG9wdGlvbnMmVUNvbnZlcnRlckNvbnN0YW50cy5PUFRJT05fU1dBUF9MRk5MKSE9MCkgeworICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBzaGFyZWREYXRhLm1iY3Muc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzOyAvL2FnbGpwb3J0OmNvbW1lbnQgc2hvdWxkIHN3YXBMRk5MRnJvbVVuaWNvZGVCeXRlcyBiZSBhIEJ5dGVCdWZmZXIgc28gcmVzdWx0cyBjYW4gYmUgYSAxNi1iaXQgdmlldyBvZiBpdD8KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHRzID0gc2hhcmVkRGF0YS5tYmNzLmZyb21Vbmljb2RlQnl0ZXM7IC8vYWdsanBvcnQ6Y29tbWVudCBzaG91bGQgc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzIGJlIGEgQnl0ZUJ1ZmZlciBzbyByZXN1bHRzIGNhbiBiZSBhIDE2LWJpdCB2aWV3IG9mIGl0PworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKHVzZUZhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgLyogdXNlIGFsbCByb3VuZHRyaXAgYW5kIGZhbGxiYWNrIHJlc3VsdHMgKi8KKyAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDB4ODAwOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHVzZSBvbmx5IHJvdW5kdHJpcHMgYW5kIGZhbGxiYWNrcyBmcm9tIHByaXZhdGUtdXNlIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDB4YzAwOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIGdldCB0aGUgY29udmVydGVyIHN0YXRlIGZyb20gVUNvbnZlcnRlciAqLworICAgICAgICAgICAgYyA9IGZyb21VQ2hhcjMyOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHNvdXJjZUluZGV4PS0xIGlmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBiZWdhbiBpbiB0aGUgcHJldmlvdXMgYnVmZmVyICovCisgICAgICAgICAgICBzb3VyY2VJbmRleCA9IGM9PTAgPyAwIDogLTE7CisgICAgICAgICAgICBsYXN0U291cmNlID0gc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc2luY2UgdGhlIGNvbnZlcnNpb24gaGVyZSBpcyAxOjEgVUNoYXI6dWludDhfdCwgd2UgbmVlZCBvbmx5IG9uZSBjb3VudGVyCisgICAgICAgICAgICAgKiBmb3IgdGhlIG1pbmltdW0gb2YgdGhlIHNvdXJjZUxlbmd0aCBhbmQgdGFyZ2V0Q2FwYWNpdHkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbGVuZ3RoID0gc291cmNlLmxpbWl0KCktc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIGlmKGxlbmd0aDx0YXJnZXRDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgIHRhcmdldENhcGFjaXR5PWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBib29sZWFuIGRvbG9vcCA9IHRydWU7CisgICAgICAgICAgICBpZihjIT0wICYmIHRhcmdldENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c1NpbmdsZUJNUCB4ID0gbmV3IFNpZGVFZmZlY3RzU2luZ2xlQk1QKGMsIHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgIGRvbG9vcCA9IGdldFRyYWlsU2luZ2xlQk1QKHNvdXJjZSwgeCwgY3IpOworICAgICAgICAgICAgICAgIGMgPSB4LmM7CisgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHguc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihkb2xvb3ApIHsKKyAgICAgICAgICAgICAgICB3aGlsZSh0YXJnZXRDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIEdldCBhIGNvcnJlY3QgVW5pY29kZSBjb2RlIHBvaW50OgorICAgICAgICAgICAgICAgICAgICAgKiBhIHNpbmdsZSBVQ2hhciBmb3IgYSBCTVAgY29kZSBwb2ludCBvcgorICAgICAgICAgICAgICAgICAgICAgKiBhIG1hdGNoZWQgc3Vycm9nYXRlIHBhaXIgZm9yIGEgInN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCIuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBjID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBEbyBub3QgaW1tZWRpYXRlbHkgY2hlY2sgZm9yIHNpbmdsZSBzdXJyb2dhdGVzOgorICAgICAgICAgICAgICAgICAgICAgKiBBc3N1bWUgdGhhdCB0aGV5IGFyZSB1bmFzc2lnbmVkIGFuZCBjaGVjayBmb3IgdGhlbSBpbiB0aGF0IGNhc2UuCisgICAgICAgICAgICAgICAgICAgICAqIFRoaXMgc3BlZWRzIHVwIHRoZSBjb252ZXJzaW9uIG9mIGFzc2lnbmVkIGNoYXJhY3RlcnMuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgaW4gYyBpbnRvIGNvZGVwYWdlIGJ5dGVzICovCisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gTUJDU19TSU5HTEVfUkVTVUxUX0ZST01fVSh0YWJsZSwgcmVzdWx0cywgYyk7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBpcyB0aGlzIGNvZGUgcG9pbnQgYXNzaWduZWQsIG9yIGRvIHdlIHVzZSBmYWxsYmFja3M/ICovCisgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlPj1taW5WYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYXNzaWduZWQsIHdyaXRlIHRoZSBvdXRwdXQgY2hhcmFjdGVyIGJ5dGVzIGZyb20gdmFsdWUgYW5kIGxlbmd0aCAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogbGVuZ3RoPT0xICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGVhc3kgYmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlcmUgaXMgZW5vdWdoIHNwYWNlICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tdGFyZ2V0Q2FwYWNpdHk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBlbmQgb2YgY29udmVyc2lvbjogcHJlcGFyZSBmb3IgYSBuZXcgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZighVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbCwgdW5hc3NpZ25lZCBCTVAgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2dldFRyYWlsOgorICAgICAgICAgICAgICAgICAgICAgICAgU2lkZUVmZmVjdHNTaW5nbGVCTVAgeCA9IG5ldyBTaWRlRWZmZWN0c1NpbmdsZUJNUChjLCBzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGdldFRyYWlsU2luZ2xlQk1QKHNvdXJjZSwgeCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHguYzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighZG9sb29wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCgxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBjIGRvZXMgbm90IGhhdmUgYSBtYXBwaW5nICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBmb3IgYyB0byBjb3JyZWN0bHkgYWR2YW5jZSBzb3VyY2VJbmRleCAqLworICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogc2V0IG9mZnNldHMgc2luY2UgdGhlIHN0YXJ0IG9yIHRoZSBsYXN0IGV4dGVuc2lvbiAqLworICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQgPSBzb3VyY2VBcnJheUluZGV4LWxhc3RTb3VyY2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRvIG5vdCBzZXQgdGhlIG9mZnNldCBmb3IgdGhpcyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IGxlbmd0aDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvZmZzZXRzIGFuZCBzb3VyY2VJbmRleCBhcmUgbm93IHNldCBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHRyeSBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICBsYXN0U291cmNlID0gc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICBjID0gZnJvbVUoYywgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZUluZGV4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ICs9IGxlbmd0aCsoc291cmNlQXJyYXlJbmRleC1sYXN0U291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdFNvdXJjZSA9IHNvdXJjZUFycmF5SW5kZXg7CisKKyAgICAgICAgICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3QgbWFwcGFibGUgb3IgYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGEgbWFwcGluZyB3YXMgd3JpdHRlbiB0byB0aGUgdGFyZ2V0LCBjb250aW51ZSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiByZWNhbGN1bGF0ZSB0aGUgdGFyZ2V0Q2FwYWNpdHkgYWZ0ZXIgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENhcGFjaXR5ID0gdGFyZ2V0LnJlbWFpbmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gc291cmNlLmxpbWl0KCkgLSBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPHRhcmdldENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHk9bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBzZXQgb2Zmc2V0cyBzaW5jZSB0aGUgc3RhcnQgb3IgdGhlIGxhc3QgY2FsbGJhY2sgKi8KKyAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSBzb3VyY2VBcnJheUluZGV4LWxhc3RTb3VyY2U7CisgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogc2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgYmFjayBpbnRvIFVDb252ZXJ0ZXIgKi8KKyAgICAgICAgICAgIGZyb21VQ2hhcjMyPWM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIHdyaXRlIGJhY2sgdGhlIHVwZGF0ZWQgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICB9CisKKyAgICAgICAgLyogVGhpcyB2ZXJzaW9uIG9mIHVjbnZfTUJDU0Zyb21Vbmljb2RlV2l0aE9mZnNldHMoKSBpcyBvcHRpbWl6ZWQgZm9yIHNpbmdsZS1ieXRlIGNvZGVwYWdlcy4gKi8KKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGNudk1CQ1NTaW5nbGVGcm9tVW5pY29kZVdpdGhPZmZzZXRzKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgCisgICAgICAgICAgICBDb2RlclJlc3VsdFtdIGNyID0ge0NvZGVyUmVzdWx0LlVOREVSRkxPV307CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyW10gdGFibGU7CisgICAgICAgICAgICBieXRlW10gcmVzdWx0czsgLy9hZ2xqcG9ydDpjb21tZW50IHJlc3VsdHMgaXMgdXNlZCB0byB0byBnZXQgMTYtYml0IHZhbHVlcyBvdXQgb2YgYnl0ZVtdIGFycmF5CisgICAgICAgIAorICAgICAgICAgICAgaW50IGM7ICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4OworICAgICAgICAKKyAgICAgICAgICAgIGNoYXIgdmFsdWUsIG1pblZhbHVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBzZXQgdXAgdGhlIGxvY2FsIHBvaW50ZXJzICovCisgICAgICAgICAgICBzaG9ydCB1bmljb2RlTWFzazsKKyAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGFibGUgPSBzaGFyZWREYXRhLm1iY3MuZnJvbVVuaWNvZGVUYWJsZTsKKyAgICAgICAgCisgICAgICAgICAgICBpZigob3B0aW9ucyZVQ29udmVydGVyQ29uc3RhbnRzLk9QVElPTl9TV0FQX0xGTkwpIT0wKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0cyA9IHNoYXJlZERhdGEubWJjcy5zd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXM7IC8vYWdsanBvcnQ6Y29tbWVudCBzaG91bGQgc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzIGJlIGEgQnl0ZUJ1ZmZlciBzbyByZXN1bHRzIGNhbiBiZSBhIDE2LWJpdCB2aWV3IG9mIGl0PworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBzaGFyZWREYXRhLm1iY3MuZnJvbVVuaWNvZGVCeXRlczsgLy9hZ2xqcG9ydDpjb21tZW50IHNob3VsZCBzd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXMgYmUgYSBCeXRlQnVmZmVyIHNvIHJlc3VsdHMgY2FuIGJlIGEgMTYtYml0IHZpZXcgb2YgaXQ/CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYodXNlRmFsbGJhY2spIHsKKyAgICAgICAgICAgICAgICAvKiB1c2UgYWxsIHJvdW5kdHJpcCBhbmQgZmFsbGJhY2sgcmVzdWx0cyAqLworICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMHg4MDA7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogdXNlIG9ubHkgcm91bmR0cmlwcyBhbmQgZmFsbGJhY2tzIGZyb20gcHJpdmF0ZS11c2UgY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMHhjMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpjb21tZW50IGhhc1N1cHBsZW1lbnRhcnkgb25seSB1c2VkIGluIGdldFRyYWlsIGJsb2NrIHdoaWNoIG5vdyBzaW1wbHkgcmVwZWF0cyB0aGUgbWFzayBvcGVyYXRpb24KKyAgICAgICAgICAgIHVuaWNvZGVNYXNrID0gc2hhcmVkRGF0YS5tYmNzLnVuaWNvZGVNYXNrOworICAgICAgICAKKyAgICAgICAgICAgIC8qIGdldCB0aGUgY29udmVydGVyIHN0YXRlIGZyb20gVUNvbnZlcnRlciAqLworICAgICAgICAgICAgYyA9IGZyb21VQ2hhcjMyOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHNvdXJjZUluZGV4PS0xIGlmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBiZWdhbiBpbiB0aGUgcHJldmlvdXMgYnVmZmVyICovCisgICAgICAgICAgICBzb3VyY2VJbmRleD0gYz09MCA/IDAgOiAtMTsKKyAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleD0wOworICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gZG9sb29wID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmKGMhPTAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgU2lkZUVmZmVjdHNEb3VibGUgeCA9IG5ldyBTaWRlRWZmZWN0c0RvdWJsZShjLCBzb3VyY2VBcnJheUluZGV4LCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICBkb2xvb3AgPSBnZXRUcmFpbERvdWJsZShzb3VyY2UsIHRhcmdldCwgdW5pY29kZU1hc2ssIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgYyA9IHguYzsKKyAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0geC5zb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICBuZXh0U291cmNlSW5kZXggPSB4Lm5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihkb2xvb3ApIHsKKyAgICAgICAgICAgICAgICB3aGlsZShzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIFRoaXMgZm9sbG93aW5nIHRlc3QgaXMgdG8gc2VlIGlmIGF2YWlsYWJsZSBpbnB1dCB3b3VsZCBvdmVyZmxvdyB0aGUgb3V0cHV0LgorICAgICAgICAgICAgICAgICAgICAgKiBJdCBkb2VzIG5vdCBjYXRjaCBvdXRwdXQgb2YgbW9yZSB0aGFuIG9uZSBieXRlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICogb3ZlcmZsb3dzIGFzIGEgcmVzdWx0IG9mIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgb3IgY2FsbGJhY2sgb3V0cHV0CisgICAgICAgICAgICAgICAgICAgICAqIGZyb20gdGhlIGxhc3Qgc291cmNlIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICAgICAgICogVGhlcmVmb3JlLCB0aG9zZSBzaXR1YXRpb25zIGFsc28gdGVzdCBmb3Igb3ZlcmZsb3dzIGFuZCB3aWxsCisgICAgICAgICAgICAgICAgICAgICAqIHRoZW4gYnJlYWsgdGhlIGxvb3AsIHRvby4KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEdldCBhIGNvcnJlY3QgVW5pY29kZSBjb2RlIHBvaW50OgorICAgICAgICAgICAgICAgICAgICAgICAgICogYSBzaW5nbGUgVUNoYXIgZm9yIGEgQk1QIGNvZGUgcG9pbnQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgbWF0Y2hlZCBzdXJyb2dhdGUgcGFpciBmb3IgYSAic3VwcGxlbWVudGFyeSBjb2RlIHBvaW50Ii4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9nZXRUcmFpbDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lkZUVmZmVjdHNEb3VibGUgeCA9IG5ldyBTaWRlRWZmZWN0c0RvdWJsZShjLCBzb3VyY2VBcnJheUluZGV4LCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZ2V0VHJhaWxEb3VibGUoc291cmNlLCB0YXJnZXQsIHVuaWNvZGVNYXNrLCB4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkb2xvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCgxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgdGhlIFVuaWNvZGUgY29kZSBwb2ludCBpbiBjIGludG8gY29kZXBhZ2UgYnl0ZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gTUJDU19TSU5HTEVfUkVTVUxUX0ZST01fVSh0YWJsZSwgcmVzdWx0cywgYyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlzIHRoaXMgY29kZSBwb2ludCBhc3NpZ25lZCwgb3IgZG8gd2UgdXNlIGZhbGxiYWNrcz8gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlPj1taW5WYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFzc2lnbmVkLCB3cml0ZSB0aGUgb3V0cHV0IGNoYXJhY3RlciBieXRlcyBmcm9tIHZhbHVlIGFuZCBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBsZW5ndGg9PTEgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGVhc3kgYmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlcmUgaXMgZW5vdWdoIHNwYWNlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm9ybWFsIGVuZCBvZiBjb252ZXJzaW9uOiBwcmVwYXJlIGZvciBhIG5ldyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSBuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8qIHVuYXNzaWduZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cnkgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c0RvdWJsZSB4ID0gbmV3IFNpZGVFZmZlY3RzRG91YmxlKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IHVuYXNzaWduZWREb3VibGUoc291cmNlLCB0YXJnZXQsIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHguYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0geC5zb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0U291cmNlSW5kZXggPSB4Lm5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighZG9sb29wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0YXJnZXQgaXMgZnVsbCAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHNldCB0aGUgY29udmVydGVyIHN0YXRlIGJhY2sgaW50byBVQ29udmVydGVyICovCisgICAgICAgICAgICBmcm9tVUNoYXIzMj1jOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHdyaXRlIGJhY2sgdGhlIHVwZGF0ZWQgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICB9CisKKyAgICAgICAgLyogVGhpcyB2ZXJzaW9uIG9mIHVjbnZfTUJDU0Zyb21Vbmljb2RlV2l0aE9mZnNldHMoKSBpcyBvcHRpbWl6ZWQgZm9yIGRvdWJsZS1ieXRlIGNvZGVwYWdlcy4gKi8KKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGNudk1CQ1NEb3VibGVGcm9tVW5pY29kZVdpdGhPZmZzZXRzKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgQ29kZXJSZXN1bHRbXSBjciA9IHtDb2RlclJlc3VsdC5VTkRFUkZMT1d9OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyW10gdGFibGU7CisgICAgICAgICAgICBieXRlW10gYnl0ZXM7CisgICAgICAgIAorICAgICAgICAgICAgaW50IGMsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgaW50IHN0YWdlMkVudHJ5OworICAgICAgICAgICAgaW50IHZhbHVlOworICAgICAgICAgICAgaW50IGxlbmd0aDsKKyAgICAgICAgICAgIHNob3J0IHVuaWNvZGVNYXNrOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHVzZSBvcHRpbWl6ZWQgZnVuY3Rpb24gaWYgcG9zc2libGUgKi8KKyAgICAgICAgICAgIHVuaWNvZGVNYXNrID0gc2hhcmVkRGF0YS5tYmNzLnVuaWNvZGVNYXNrOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHNldCB1cCB0aGUgbG9jYWwgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGFibGUgPSBzaGFyZWREYXRhLm1iY3MuZnJvbVVuaWNvZGVUYWJsZTsKKyAgICAgICAgCisgICAgICAgICAgICBpZigob3B0aW9ucyZVQ29udmVydGVyQ29uc3RhbnRzLk9QVElPTl9TV0FQX0xGTkwpIT0wKSB7CisgICAgICAgICAgICAgICAgYnl0ZXMgPSBzaGFyZWREYXRhLm1iY3Muc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBieXRlcyA9IHNoYXJlZERhdGEubWJjcy5mcm9tVW5pY29kZUJ5dGVzOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIGdldCB0aGUgY29udmVydGVyIHN0YXRlIGZyb20gVUNvbnZlcnRlciAqLworICAgICAgICAgICAgYyA9IGZyb21VQ2hhcjMyOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHNvdXJjZUluZGV4PS0xIGlmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBiZWdhbiBpbiB0aGUgcHJldmlvdXMgYnVmZmVyICovCisgICAgICAgICAgICBzb3VyY2VJbmRleD0gYz09MCA/IDAgOiAtMTsKKyAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleD0wOworICAgICAgICAKKyAgICAgICAgICAgIC8qIGNvbnZlcnNpb24gbG9vcCAqLworICAgICAgICAgICAgYm9vbGVhbiBkb2xvb3AgPSB0cnVlOworICAgICAgICAgICAgaWYoYyE9MCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c0RvdWJsZSB4ID0gbmV3IFNpZGVFZmZlY3RzRG91YmxlKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgIGRvbG9vcCA9IGdldFRyYWlsRG91YmxlKHNvdXJjZSwgdGFyZ2V0LCB1bmljb2RlTWFzaywgeCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSB4LnNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKGRvbG9vcCkgeworICAgICAgICAgICAgICAgIHdoaWxlKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogVGhpcyBmb2xsb3dpbmcgdGVzdCBpcyB0byBzZWUgaWYgYXZhaWxhYmxlIGlucHV0IHdvdWxkIG92ZXJmbG93IHRoZSBvdXRwdXQuCisgICAgICAgICAgICAgICAgICAgICAqIEl0IGRvZXMgbm90IGNhdGNoIG91dHB1dCBvZiBtb3JlIHRoYW4gb25lIGJ5dGUgdGhhdAorICAgICAgICAgICAgICAgICAgICAgKiBvdmVyZmxvd3MgYXMgYSByZXN1bHQgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciBvciBjYWxsYmFjayBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgbGFzdCBzb3VyY2UgY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAgKiBUaGVyZWZvcmUsIHRob3NlIHNpdHVhdGlvbnMgYWxzbyB0ZXN0IGZvciBvdmVyZmxvd3MgYW5kIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICogdGhlbiBicmVhayB0aGUgbG9vcCwgdG9vLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogR2V0IGEgY29ycmVjdCBVbmljb2RlIGNvZGUgcG9pbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIHNpbmdsZSBVQ2hhciBmb3IgYSBCTVAgY29kZSBwb2ludCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICogYSBtYXRjaGVkIHN1cnJvZ2F0ZSBwYWlyIGZvciBhICJzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQiLgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBjID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgKytuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogVGhpcyBhbHNvIHRlc3RzIGlmIHRoZSBjb2RlcGFnZSBtYXBzIHNpbmdsZSBzdXJyb2dhdGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICogSWYgaXQgZG9lcywgdGhlbiBzdXJyb2dhdGVzIGFyZSBub3QgcGFpcmVkIGJ1dCBtYXBwZWQgc2VwYXJhdGVseS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIE5vdGUgdGhhdCBpbiB0aGlzIGNhc2UgdW5tYXRjaGVkIHN1cnJvZ2F0ZXMgYXJlIG5vdCBkZXRlY3RlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYykgJiYgKHVuaWNvZGVNYXNrJlVDb252ZXJ0ZXJDb25zdGFudHMuSEFTX1NVUlJPR0FURVMpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9nZXRUcmFpbDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lkZUVmZmVjdHNEb3VibGUgeCA9IG5ldyBTaWRlRWZmZWN0c0RvdWJsZShjLCBzb3VyY2VBcnJheUluZGV4LCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZ2V0VHJhaWxEb3VibGUoc291cmNlLCB0YXJnZXQsIHVuaWNvZGVNYXNrLCB4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZG9sb29wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGUgVW5pY29kZSBjb2RlIHBvaW50IGluIGMgaW50byBjb2RlcGFnZSBieXRlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgc3RhZ2UyRW50cnkgPSBNQkNTX1NUQUdFXzJfRlJPTV9VKHRhYmxlLCBjKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBieXRlcyBhbmQgdGhlIGxlbmd0aCBmb3IgdGhlIG91dHB1dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogTUJDU19PVVRQVVRfMiAqLworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBNQkNTX1ZBTFVFXzJfRlJPTV9TVEFHRV8yKGJ5dGVzLCBzdGFnZTJFbnRyeSwgYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBpcyB0aGlzIGNvZGUgcG9pbnQgYXNzaWduZWQsIG9yIGRvIHdlIHVzZSBmYWxsYmFja3M/ICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZighKE1CQ1NfRlJPTV9VX0lTX1JPVU5EVFJJUChzdGFnZTJFbnRyeSwgYykgfHwgKGlzRnJvbVVVc2VGYWxsYmFjayhjKSAmJiB2YWx1ZSE9MCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBXZSBhbGxvdyBhIDAgYnl0ZSBvdXRwdXQgaWYgdGhlICJhc3NpZ25lZCIgYml0IGlzIHNldCBmb3IgdGhpcyBlbnRyeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGVyZSBpcyBubyB3YXkgd2l0aCB0aGlzIGRhdGEgc3RydWN0dXJlIGZvciBmYWxsYmFjayBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0byBiZSBhIHplcm8gYnl0ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdW5hc3NpZ25lZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c0RvdWJsZSB4ID0gbmV3IFNpZGVFZmZlY3RzRG91YmxlKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gdW5hc3NpZ25lZERvdWJsZShzb3VyY2UsIHRhcmdldCwgeCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSB4LnNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRvbG9vcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiB3cml0ZSB0aGUgb3V0cHV0IGNoYXJhY3RlciBieXRlcyBmcm9tIHZhbHVlIGFuZCBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZyb20gdGhlIGZpcnN0IGlmIGluIHRoZSBsb29wIHdlIGtub3cgdGhhdCB0YXJnZXRDYXBhY2l0eT4wICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg9PTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGVhc3kgYmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlcmUgaXMgZW5vdWdoIHNwYWNlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgLyogbGVuZ3RoPT0yICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh2YWx1ZT4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigyPD10YXJnZXQucmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbMF09KGJ5dGUpdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGFyZ2V0IG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBlbmQgb2YgY29udmVyc2lvbjogcHJlcGFyZSBmb3IgYSBuZXcgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD1uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0YXJnZXQgaXMgZnVsbCAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHNldCB0aGUgY29udmVydGVyIHN0YXRlIGJhY2sgaW50byBVQ29udmVydGVyICovCisgICAgICAgICAgICBmcm9tVUNoYXIzMj1jOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHdyaXRlIGJhY2sgdGhlIHVwZGF0ZWQgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgZmluYWwgY2xhc3MgU2lkZUVmZmVjdHNTaW5nbGVCTVAgeworICAgICAgICAgICAgaW50IGMsIHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICBTaWRlRWZmZWN0c1NpbmdsZUJNUChpbnQgY18sIGludCBzb3VyY2VBcnJheUluZGV4XykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjID0gY187CisgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZUFycmF5SW5kZXhfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBmdW5jdGlvbiBtYWRlIG91dCBvZiBibG9jayBsYWJlbGVkIGdldFRyYWlsIGluIHVjbnZfTUJDU1NpbmdsZUZyb21Vbmljb2RlV2l0aE9mZnNldHMKKyAgICAgICAgLy8gYXNzdW1lcyBpbnB1dCBjIGlzIGxlYWQgc3Vycm9nYXRlCisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIGdldFRyYWlsU2luZ2xlQk1QKENoYXJCdWZmZXIgc291cmNlLCBTaWRlRWZmZWN0c1NpbmdsZUJNUCB4LCBDb2RlclJlc3VsdFtdIGNyKQorICAgICAgICB7CisgICAgICAgICAgICBpZih4LnNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBmb2xsb3dpbmcgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgY2hhciB0cmFpbD1zb3VyY2UuZ2V0KHguc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKyt4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHguYyA9IFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KChjaGFyKXguYywgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGNvZGVwYWdlIGRvZXMgbm90IG1hcCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzICovCisgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKHVuYXNzaWduZWQpICovCisgICAgICAgICAgICAgICAgICAgIGNyWzBdPUNvZGVyUmVzdWx0LnVubWFwcGFibGVGb3JMZW5ndGgoMik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCBsZWFkIGNvZGUgdW5pdCAoMXN0IHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoMik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vIG1vcmUgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3JldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgZmluYWwgY2xhc3MgU2lkZUVmZmVjdHMgeworICAgICAgICAgICAgaW50IGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgsIHByZXZTb3VyY2VJbmRleCwgcHJldkxlbmd0aDsKKyAgICAgICAgICAgIFNpZGVFZmZlY3RzKGludCBjXywgaW50IHNvdXJjZUFycmF5SW5kZXhfLCBpbnQgc291cmNlSW5kZXhfLCBpbnQgbmV4dFNvdXJjZUluZGV4XywgaW50IHByZXZTb3VyY2VJbmRleF8sIGludCBwcmV2TGVuZ3RoXykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjID0gY187CisgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZUFycmF5SW5kZXhfOworICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0gc291cmNlSW5kZXhfOworICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IG5leHRTb3VyY2VJbmRleF87CisgICAgICAgICAgICAgICAgcHJldlNvdXJjZUluZGV4ID0gcHJldlNvdXJjZUluZGV4XzsKKyAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoID0gcHJldkxlbmd0aF87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGZ1bmN0aW9uIG1hZGUgb3V0IG9mIGJsb2NrIGxhYmVsZWQgZ2V0VHJhaWwgaW4gdWNudl9NQkNTRnJvbVVuaWNvZGVXaXRoT2Zmc2V0cworICAgICAgICAvLyBhc3N1bWVzIGlucHV0IGMgaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gZ2V0VHJhaWwoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBpbnQgdW5pY29kZU1hc2ssIFNpZGVFZmZlY3RzIHgsIGJvb2xlYW4gZmx1c2gsIENvZGVyUmVzdWx0W10gY3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKHguc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgIC8qIHRlc3QgdGhlIGZvbGxvd2luZyBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmdldCh4LnNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgICsreC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICArK3gubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICB4LmMgPSBVQ2hhcmFjdGVyLmdldENvZGVQb2ludCgoY2hhcil4LmMsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoKHVuaWNvZGVNYXNrJlVDb252ZXJ0ZXJDb25zdGFudHMuSEFTX1NVUFBMRU1FTlRBUlkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJNUC1vbmx5IGNvZGVwYWdlcyBhcmUgc3RvcmVkIHdpdGhvdXQgc3RhZ2UgMSBlbnRyaWVzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzICovCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IHgucHJldkxlbmd0aDsgLyogc2F2ZSB0aGUgb2xkIHN0YXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayh1bmFzc2lnbmVkKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuYXNzaWduZWQoc291cmNlLCB0YXJnZXQsIG51bGwsIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGlzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRoaXMgY29uZGl0aW9uIHRyZWUgKi8KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCBsZWFkIGNvZGUgdW5pdCAoMXN0IHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoMik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vIG1vcmUgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZnVuY3Rpb24gbWFkZSBvdXQgb2YgYmxvY2sgbGFiZWxlZCB1bmFzc2lnbmVkIGluIHVjbnZfTUJDU0Zyb21Vbmljb2RlV2l0aE9mZnNldHMKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gdW5hc3NpZ25lZChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBTaWRlRWZmZWN0cyB4LCBib29sZWFuIGZsdXNoLCBDb2RlclJlc3VsdFtdIGNyKQorICAgICAgICB7CisgICAgICAgICAgICAvKiB0cnkgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgIGludCBzb3VyY2VCZWdpbiA9IHguc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbih4LnNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgeC5jID0gZnJvbVUoeC5jLCBzb3VyY2UsIHRhcmdldCwgbnVsbCwgeC5zb3VyY2VJbmRleCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgIHguc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgeC5uZXh0U291cmNlSW5kZXggKz0geC5zb3VyY2VBcnJheUluZGV4LXNvdXJjZUJlZ2luOworICAgICAgICAgICAgeC5wcmV2TGVuZ3RoPShpbnQpZnJvbVVuaWNvZGVTdGF0dXM7CisgICAgICAgIAorICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgLyogbm90IG1hcHBhYmxlIG9yIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogYSBtYXBwaW5nIHdhcyB3cml0dGVuIHRvIHRoZSB0YXJnZXQsIGNvbnRpbnVlICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHJlY2FsY3VsYXRlIHRoZSB0YXJnZXRDYXBhY2l0eSBhZnRlciBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgICAgIC8veC50YXJnZXRDYXBhY2l0eT1wQXJncy50YXJnZXRMaW1pdC14LnRhcmdldEFycmF5SW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBlbmQgb2YgY29udmVyc2lvbjogcHJlcGFyZSBmb3IgYSBuZXcgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICB4LnByZXZTb3VyY2VJbmRleD14LnNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICB4LnNvdXJjZUluZGV4PXgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIGNsYXNzIFNpZGVFZmZlY3RzRG91YmxlIHsKKyAgICAgICAgICAgIGludCBjLCBzb3VyY2VBcnJheUluZGV4LCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgU2lkZUVmZmVjdHNEb3VibGUoaW50IGNfLCBpbnQgc291cmNlQXJyYXlJbmRleF8sIGludCBzb3VyY2VJbmRleF8sIGludCBuZXh0U291cmNlSW5kZXhfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGMgPSBjXzsKKyAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlQXJyYXlJbmRleF87CisgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSBzb3VyY2VJbmRleF87CisgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0gbmV4dFNvdXJjZUluZGV4XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZnVuY3Rpb24gbWFkZSBvdXQgb2YgYmxvY2sgbGFiZWxlZCBnZXRUcmFpbCBpbiB1Y252X01CQ1NEb3VibGVGcm9tVW5pY29kZVdpdGhPZmZzZXRzCisgICAgICAgIC8vIGFzc3VtZXMgaW5wdXQgYyBpcyBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICBwcm90ZWN0ZWQgZmluYWwgYm9vbGVhbiBnZXRUcmFpbERvdWJsZShDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIGludCB1bmljb2RlTWFzaywgU2lkZUVmZmVjdHNEb3VibGUgeCwgYm9vbGVhbiBmbHVzaCwgQ29kZXJSZXN1bHRbXSBjcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYoeC5zb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgLyogdGVzdCB0aGUgZm9sbG93aW5nIGNvZGUgdW5pdCAqLworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWw9c291cmNlLmdldCh4LnNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgICsreC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICArK3gubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICB4LmMgPSBVQ2hhcmFjdGVyLmdldENvZGVQb2ludCgoY2hhcil4LmMsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoKHVuaWNvZGVNYXNrJlVDb252ZXJ0ZXJDb25zdGFudHMuSEFTX1NVUFBMRU1FTlRBUlkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJNUC1vbmx5IGNvZGVwYWdlcyBhcmUgc3RvcmVkIHdpdGhvdXQgc3RhZ2UgMSBlbnRyaWVzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayh1bmFzc2lnbmVkKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuYXNzaWduZWREb3VibGUoc291cmNlLCB0YXJnZXQsIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGlzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRoaXMgY29uZGl0aW9uIHRyZWUgKi8KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCBsZWFkIGNvZGUgdW5pdCAoMXN0IHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoMik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vIG1vcmUgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZ1bmN0aW9uIG1hZGUgb3V0IG9mIGJsb2NrIGxhYmVsZWQgdW5hc3NpZ25lZCBpbiB1Y252X01CQ1NEb3VibGVGcm9tVW5pY29kZVdpdGhPZmZzZXRzCisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIHVuYXNzaWduZWREb3VibGUoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBTaWRlRWZmZWN0c0RvdWJsZSB4LCBib29sZWFuIGZsdXNoLCBDb2RlclJlc3VsdFtdIGNyKQorICAgICAgICB7CisgICAgICAgICAgICAvKiB0cnkgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgIGludCBzb3VyY2VCZWdpbiA9IHguc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbih4LnNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgeC5jID0gZnJvbVUoeC5jLCBzb3VyY2UsIHRhcmdldCwgbnVsbCwgeC5zb3VyY2VJbmRleCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgIHguc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgeC5uZXh0U291cmNlSW5kZXggKz0geC5zb3VyY2VBcnJheUluZGV4IC0gc291cmNlQmVnaW47CisgICAgICAgIAorICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgLyogbm90IG1hcHBhYmxlIG9yIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogYSBtYXBwaW5nIHdhcyB3cml0dGVuIHRvIHRoZSB0YXJnZXQsIGNvbnRpbnVlICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHJlY2FsY3VsYXRlIHRoZSB0YXJnZXRDYXBhY2l0eSBhZnRlciBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgICAgIC8veC50YXJnZXRDYXBhY2l0eT1wQXJncy50YXJnZXRMaW1pdC14LnRhcmdldEFycmF5SW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBlbmQgb2YgY29udmVyc2lvbjogcHJlcGFyZSBmb3IgYSBuZXcgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgeC5zb3VyY2VJbmRleD14Lm5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogT3ZlcnJpZGVzIHN1cGVyIGNsYXNzIG1ldGhvZAorICAgICAgICAgKiBAcGFyYW0gZW5jb2RlcgorICAgICAgICAgKiBAcGFyYW0gc291cmNlCisgICAgICAgICAqIEBwYXJhbSB0YXJnZXQKKyAgICAgICAgICogQHBhcmFtIG9mZnNldHMKKyAgICAgICAgICogQHJldHVybgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGNiRnJvbVVXcml0ZVN1YiAoIENoYXJzZXRFbmNvZGVySUNVIGVuY29kZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludEJ1ZmZlciBvZmZzZXRzKXsKKyAgICAgICAgICAgIENoYXJzZXRNQkNTIGNzID0gKENoYXJzZXRNQkNTKSBlbmNvZGVyLmNoYXJzZXQoKTsKKyAgICAgICAgICAgIGJ5dGVbXSBzdWJjaGFyLCBwOworICAgICAgICAgICAgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlWzRdOworICAgICAgICAgICAgaW50IGxlbmd0aCxpPTA7CisgICAgICAgICAgICAvKiBmaXJzdCwgc2VsZWN0IGJldHdlZW4gc3ViQ2hhciBhbmQgc3ViQ2hhcjEgKi8KKyAgICAgICAgICAgIGlmKCBjcy5zdWJDaGFyMSE9MCAmJgorICAgICAgICAgICAgICAgIChjcy5zaGFyZWREYXRhLm1iY3MuZXh0SW5kZXhlcyE9bnVsbCA/CisgICAgICAgICAgICAgICAgICAgIGVuY29kZXIudXNlU3ViQ2hhcjEgOgorICAgICAgICAgICAgICAgICAgICAoZW5jb2Rlci5pbnZhbGlkVUNoYXJCdWZmZXJbMF08PTB4ZmYpKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLyogc2VsZWN0IHN1YkNoYXIxIGlmIGl0IGlzIHNldCAobm90IDApIGFuZCB0aGUgdW5tYXBwYWJsZSBVbmljb2RlIGNvZGUgcG9pbnQgaXMgdXAgdG8gVSswMGZmIChJQk0gTUJDUyBiZWhhdmlvcikgKi8KKyAgICAgICAgICAgICAgICBzdWJjaGFyID0gbmV3IGJ5dGVbMV07CisgICAgICAgICAgICAgICAgc3ViY2hhclswXT1jcy5zdWJDaGFyMTsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogc2VsZWN0IHN1YkNoYXIgaW4gYWxsIG90aGVyIGNhc2VzICovCisgICAgICAgICAgICAgICAgc3ViY2hhcj1jcy5zdWJDaGFyOworICAgICAgICAgICAgICAgIGxlbmd0aD1jcy5zdWJDaGFyTGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiByZXNldCB0aGUgc2VsZWN0b3IgZm9yIHRoZSBuZXh0IGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgIGVuY29kZXIudXNlU3ViQ2hhcjE9ZmFsc2U7CisKKyAgICAgICAgICAgIHN3aXRjaChjcy5zaGFyZWREYXRhLm1iY3Mub3V0cHV0VHlwZSkgeworICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8yX1NJU086CisgICAgICAgICAgICAgICAgcD1idWZmZXI7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogZnJvbVVuaWNvZGVTdGF0dXMgY29udGFpbnMgcHJldkxlbmd0aCAqLworICAgICAgICAgICAgICAgIHN3aXRjaChsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGlmKGVuY29kZXIuZnJvbVVuaWNvZGVTdGF0dXM9PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERCQ1MgbW9kZSBhbmQgU0JDUyBzdWIgY2hhcjogY2hhbmdlIHRvIFNCQ1MgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZXIuZnJvbVVuaWNvZGVTdGF0dXM9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBbaSsrXT1VQ29udmVydGVyQ29uc3RhbnRzLlNJOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBbaSsrXT1zdWJjaGFyWzBdOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgIGlmKGVuY29kZXIuZnJvbVVuaWNvZGVTdGF0dXM8PTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNCQ1MgbW9kZSBhbmQgREJDUyBzdWIgY2hhcjogY2hhbmdlIHRvIERCQ1MgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZXIuZnJvbVVuaWNvZGVTdGF0dXM9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBbaSsrXT1VQ29udmVydGVyQ29uc3RhbnRzLlNPOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBbaSsrXT1zdWJjaGFyWzBdOworICAgICAgICAgICAgICAgICAgICBwW2krK109c3ViY2hhclsxXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2JGcm9tVVdyaXRlU3ViKGVuY29kZXIsIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNiRnJvbVVXcml0ZVN1YihlbmNvZGVyLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9ICAgIAorCisKKyAgICBwdWJsaWMgQ2hhcnNldERlY29kZXIgbmV3RGVjb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RGVjb2Rlck1CQ1ModGhpcyk7CisgICAgfQorCisgICAgcHVibGljIENoYXJzZXRFbmNvZGVyIG5ld0VuY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldEVuY29kZXJNQkNTKHRoaXMpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFByb3ZpZGVySUNVLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0UHJvdmlkZXJJQ1UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODMyMTg0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFByb3ZpZGVySUNVLmphdmEKQEAgLTAsMCArMSwyNDggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0OworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuc3BpLkNoYXJzZXRQcm92aWRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcnNldFByb3ZpZGVyIGZvciBsb2FkaW5nIGFuZCBwcm92aWRpbmcgY2hhcnNldCBjb252ZXJ0ZXJzCisgKiBpbiBJQ1UuCisgKiBAZHJhZnQgSUNVIDMuNgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDaGFyc2V0UHJvdmlkZXJJQ1UgZXh0ZW5kcyBDaGFyc2V0UHJvdmlkZXJ7CisgICAgCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvciAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGFyc2V0UHJvdmlkZXJJQ1UoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGNoYXJzZXQgZm9yIHRoZSBnaXZlbiBjaGFyc2V0IG5hbWUuIAorICAgICAqIEltcGxlbWVudHMgdGhlIGFic3RyYWN0IG1ldGhvZCBvZiBzdXBlciBjbGFzcy4KKyAgICAgKiBAcGFyYW0gY2hhcnNldE5hbWUgY2hhcnNldCBuYW1lCisgICAgICogQHJldHVybiBjaGFyc2V0IG9iamV0IGZvciB0aGUgZ2l2ZW4gY2hhcnNldCBuYW1lLCBudWxsIGlmIHVuc3VwcG9ydGVkCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIGZpbmFsIENoYXJzZXQgY2hhcnNldEZvck5hbWUoU3RyaW5nIGNoYXJzZXROYW1lKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgLy8gZ2V0IHRoZSBjYW5vbmljYWwgbmFtZQorICAgICAgICAgICAgU3RyaW5nIGljdUNhbm9uaWNhbE5hbWUgPSBnZXRJQ1VDYW5vbmljYWxOYW1lKGNoYXJzZXROYW1lKTsgICAgICAKKyAgICAKKyAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIGNvbnZlcnRlciBvYmplY3QgYW5kIHJldHVybiBpdAorICAgICAgICAgICAgaWYoaWN1Q2Fub25pY2FsTmFtZT09bnVsbCB8fCBpY3VDYW5vbmljYWxOYW1lLmxlbmd0aCgpPT0wKXsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIG1ha2UgdGhlIENoYXJzZXQgQVBJIHRvIHRocm93IAorICAgICAgICAgICAgICAgIC8vIHVuc3VwcG9ydGVkIGVuY29kaW5nIGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGdldENoYXJzZXQoaWN1Q2Fub25pY2FsTmFtZSk7CisgICAgICAgIH1jYXRjaChVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24gZXgpeworICAgICAgICB9Y2F0Y2goSU9FeGNlcHRpb24gZXgpeworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjYW5vbmljYWwgbmFtZSBvZiB0aGUgY29udmVydGVyIGFzIGRlZmluZWQgYnkgSmF2YQorICAgICAqIEBwYXJhbSBlbmMgY29udmVydGVyIG5hbWUKKyAgICAgKiBAcmV0dXJuIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBjb252ZXJ0ZXIKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIGZvciBpbnRlcm5hbCBJQ1UgdXNlIG9ubHkKKyAgICAgKi8KKyAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ2V0SUNVQ2Fub25pY2FsTmFtZShTdHJpbmcgZW5jKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgY2Fub25pY2FsTmFtZSA9IG51bGw7CisgICAgICAgIFN0cmluZyByZXQgPSBudWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICBpZihlbmMhPW51bGwpeworICAgICAgICAgICAgICAgIGlmKChjYW5vbmljYWxOYW1lID0gVUNvbnZlcnRlckFsaWFzLmdldENhbm9uaWNhbE5hbWUoZW5jLCAiTUlNRSIpKSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IGNhbm9uaWNhbE5hbWU7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYoKGNhbm9uaWNhbE5hbWUgPSBVQ29udmVydGVyQWxpYXMuZ2V0Q2Fub25pY2FsTmFtZShlbmMsICJJQU5BIikpIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gY2Fub25pY2FsTmFtZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZigoY2Fub25pY2FsTmFtZSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRDYW5vbmljYWxOYW1lKGVuYywgIiIpKSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IGNhbm9uaWNhbE5hbWU7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYoKGNhbm9uaWNhbE5hbWUgPSBVQ29udmVydGVyQWxpYXMuZ2V0QWxpYXMoZW5jLCAwKSkhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAvKiB3ZSBoYXZlIHNvbWUgYWxpYXNlcyBpbiB0aGUgZm9ybSB4LWJsYWggLi4gbWF0Y2ggdGhvc2UgZmlyc3QgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gY2Fub25pY2FsTmFtZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihlbmMuaW5kZXhPZigieC0iKT09MCl7CisgICAgICAgICAgICAgICAgICAgIC8qIFRPRE86IE1hdGNoIHdpdGggZ2V0SmF2YUNhbm9uaWNhbE5hbWUgbWV0aG9kICovCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgIGNoYXIgdGVtcFsgVUNOVl9NQVhfQ09OVkVSVEVSX05BTUVfTEVOR1RIXSA9IHswfTsKKyAgICAgICAgICAgICAgICAgICAgc3RyY3B5KHRlbXAsIGVuY05hbWUrMik7CisgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldCA9IGVuYy5zdWJzdHJpbmcoMik7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIC8qIHVuc3VwcG9ydGVkIGVuY29kaW5nICovCisgICAgICAgICAgICAgICAgICAgcmV0ID0gIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24oZW5jKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ2hhcnNldCBnZXRDaGFyc2V0KFN0cmluZyBpY3VDYW5vbmljYWxOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgU3RyaW5nW10gYWxpYXNlcyA9IChTdHJpbmdbXSlnZXRBbGlhc2VzKGljdUNhbm9uaWNhbE5hbWUpOyAgICAKKyAgICAgICBTdHJpbmcgY2Fub25pY2FsTmFtZSA9IGdldEphdmFDYW5vbmljYWxOYW1lKGljdUNhbm9uaWNhbE5hbWUpOworICAgICAgIHJldHVybiAoQ2hhcnNldElDVS5nZXRDaGFyc2V0KGljdUNhbm9uaWNhbE5hbWUsY2Fub25pY2FsTmFtZSwgYWxpYXNlcykpOyAgCisgICAgfQorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBjb252ZXJ0ZXIgYXMgZGVmaW5lZCBieSBKYXZhCisgICAgICogQHBhcmFtIGljdUNhbm9uaWNhbE5hbWUgY29udmVydGVyIG5hbWUKKyAgICAgKiBAcmV0dXJuIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBjb252ZXJ0ZXIKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRKYXZhQ2Fub25pY2FsTmFtZShTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSl7CisgICAgICAgIC8qCisgICAgICAgIElmIGEgY2hhcnNldCBsaXN0ZWQgaW4gdGhlIElBTkEgQ2hhcnNldCBSZWdpc3RyeSBpcyBzdXBwb3J0ZWQgYnkgYW4gaW1wbGVtZW50YXRpb24gCisgICAgICAgIG9mIHRoZSBKYXZhIHBsYXRmb3JtIHRoZW4gaXRzIGNhbm9uaWNhbCBuYW1lIG11c3QgYmUgdGhlIG5hbWUgbGlzdGVkIGluIHRoZSByZWdpc3RyeS4gCisgICAgICAgIE1hbnkgY2hhcnNldHMgYXJlIGdpdmVuIG1vcmUgdGhhbiBvbmUgbmFtZSBpbiB0aGUgcmVnaXN0cnksIGluIHdoaWNoIGNhc2UgdGhlIHJlZ2lzdHJ5IAorICAgICAgICBpZGVudGlmaWVzIG9uZSBvZiB0aGUgbmFtZXMgYXMgTUlNRS1wcmVmZXJyZWQuIElmIGEgY2hhcnNldCBoYXMgbW9yZSB0aGFuIG9uZSByZWdpc3RyeSAKKyAgICAgICAgbmFtZSB0aGVuIGl0cyBjYW5vbmljYWwgbmFtZSBtdXN0IGJlIHRoZSBNSU1FLXByZWZlcnJlZCBuYW1lIGFuZCB0aGUgb3RoZXIgbmFtZXMgaW4gCisgICAgICAgIHRoZSByZWdpc3RyeSBtdXN0IGJlIHZhbGlkIGFsaWFzZXMuIElmIGEgc3VwcG9ydGVkIGNoYXJzZXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgSUFOQSAKKyAgICAgICAgcmVnaXN0cnkgdGhlbiBpdHMgY2Fub25pY2FsIG5hbWUgbXVzdCBiZWdpbiB3aXRoIG9uZSBvZiB0aGUgc3RyaW5ncyAiWC0iIG9yICJ4LSIuCisgICAgICAgICovCisgICAgICAgIGlmKGljdUNhbm9uaWNhbE5hbWU9PW51bGwgKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9ICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nIGNOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIC8qIGZpbmQgb3V0IHRoZSBhbGlhcyB3aXRoIE1JTUUgdGFnICovCisgICAgICAgICAgICBpZigoY05hbWU9VUNvbnZlcnRlckFsaWFzLmdldFN0YW5kYXJkTmFtZShpY3VDYW5vbmljYWxOYW1lLCAiTUlNRSIpKSE9bnVsbCl7CisgICAgICAgICAgICAvKiBmaW5kIG91dCB0aGUgYWxpYXMgd2l0aCBJQU5BIHRhZyAqLworICAgICAgICAgICAgfWVsc2UgaWYoKGNOYW1lPVVDb252ZXJ0ZXJBbGlhcy5nZXRTdGFuZGFyZE5hbWUoaWN1Q2Fub25pY2FsTmFtZSwgIklBTkEiKSkhPW51bGwpeworICAgICAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgICAgIC8qICAKKyAgICAgICAgICAgICAgICAgICAgY2hlY2sgdG8gc2VlIGlmIGFuIGFsaWFzIGFscmVhZHkgZXhpc3RzIHdpdGggeC0gcHJlZml4LCBpZiB5ZXMgdGhlbiAKKyAgICAgICAgICAgICAgICAgICAgbWFrZSB0aGF0IHRoZSBjYW5vbmljYWwgbmFtZQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IGFsaWFzTnVtID0gVUNvbnZlcnRlckFsaWFzLmNvdW50QWxpYXNlcyhpY3VDYW5vbmljYWxOYW1lKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGk9MDtpPGFsaWFzTnVtO2krKyl7CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBVQ29udmVydGVyQWxpYXMuZ2V0QWxpYXMoaWN1Q2Fub25pY2FsTmFtZSwgaSk7CisgICAgICAgICAgICAgICAgICAgIGlmKG5hbWUhPW51bGwgJiYgbmFtZS5pbmRleE9mKCJ4LSIpPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNOYW1lID0gbmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIGxhc3QgcmVzb3J0IGp1c3QgYXBwZW5kIHgtIHRvIGFueSBvZiB0aGUgYWxpYXMgYW5kIAorICAgICAgICAgICAgICAgIG1ha2UgaXQgdGhlIGNhbm9uaWNhbCBuYW1lICovCisgICAgICAgICAgICAgICAgaWYoKGNOYW1lPT1udWxsIHx8IGNOYW1lLmxlbmd0aCgpPT0wKSl7CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBVQ29udmVydGVyQWxpYXMuZ2V0U3RhbmRhcmROYW1lKGljdUNhbm9uaWNhbE5hbWUsICJVVFIyMiIpOworICAgICAgICAgICAgICAgICAgICBpZihuYW1lPT1udWxsICYmIGljdUNhbm9uaWNhbE5hbWUuaW5kZXhPZigiLCIpIT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gVUNvbnZlcnRlckFsaWFzLmdldEFsaWFzKGljdUNhbm9uaWNhbE5hbWUsIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qIGlmIHRoZXJlIGlzIG5vIFVUUjIyIGNhbm9uaWNhbCBuYW1lIC4uIHRoZW4ganVzdCByZXR1cm4gaXRzZWxmKi8KKyAgICAgICAgICAgICAgICAgICAgaWYobmFtZT09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaWN1Q2Fub25pY2FsTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjTmFtZSA9ICJ4LSIrIG5hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNOYW1lOworICAgICAgICB9Y2F0Y2ggKElPRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgICB9CisKKyAgICAvKiogCisgICAgICogR2V0cyB0aGUgYWxpYXNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbnZlcnRlciBuYW1lCisgICAgICogQHBhcmFtIGVuY05hbWUgY29udmVydGVyIG5hbWUKKyAgICAgKiBAcmV0dXJuIGNvbnZlcnRlciBuYW1lcyBhcyBlbGVtZW50cyBpbiBhbiBvYmplY3QgYXJyYXkKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEFsaWFzZXMoU3RyaW5nIGVuY05hbWUpdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdbXSByZXQgPSBudWxsOworICAgICAgICBpbnQgYWxpYXNOdW0gPSAwOworICAgICAgICBpbnQgaT0wOworICAgICAgICBpbnQgaj0wOworICAgICAgICBTdHJpbmcgYWxpYXNBcnJheVsvKjUwKi9dID0gbmV3IFN0cmluZ1s1MF07CisgICAgCisgICAgICAgIGlmKGVuY05hbWUgIT0gbnVsbCl7CisgICAgICAgICAgICBhbGlhc051bSA9IFVDb252ZXJ0ZXJBbGlhcy5jb3VudEFsaWFzZXMoZW5jTmFtZSk7CisgICAgICAgICAgICBmb3IoaT0wLGo9MDtpPGFsaWFzTnVtO2krKyl7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBVQ29udmVydGVyQWxpYXMuZ2V0QWxpYXMoZW5jTmFtZSxpKTsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmluZGV4T2YoJysnKT09LTEgJiYgbmFtZS5pbmRleE9mKCcsJyk9PS0xKXsKKyAgICAgICAgICAgICAgICAgICAgYWxpYXNBcnJheVtqKytdPSBuYW1lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldCA9IG5ldyBTdHJpbmdbal07CisgICAgICAgICAgICBmb3IoOy0taj49MDspIHsKKyAgICAgICAgICAgICAgICByZXRbal0gPSBhbGlhc0FycmF5W2pdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChyZXQpOworICAgIAorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgcHV0Q2hhcnNldHMoTWFwIG1hcCl7CisgICAgICAgIGludCBudW0gPSBVQ29udmVydGVyQWxpYXMuY291bnRBdmFpbGFibGUoKTsKKyAgICAgICAgZm9yKGludCBpPTA7aTxudW07aSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRBdmFpbGFibGVOYW1lKGkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDaGFyc2V0IGNzID0gIGdldENoYXJzZXQobmFtZSk7CisgICAgICAgICAgICAgICAgbWFwLnB1dChjcywgZ2V0SmF2YUNhbm9uaWNhbE5hbWUobmFtZSkpOworICAgICAgICAgICAgfWNhdGNoKFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB9Y2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGFkZCBvbmx5IGNoYXJzZXRzIHRoYXQgY2FuIGJlIGNyZWF0ZWQhCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIGZvciB0aGUgYXZhaWxhYmxlIGNoYXJzZXRzLgorICAgICAqIEltcGxlbWVudHMgdGhlIGFic3RyYWN0IG1ldGhvZCBvZiBzdXBlciBjbGFzcy4KKyAgICAgKiBAcmV0dXJuIEl0ZXJhdG9yIHRoZSBjaGFyc2V0IG5hbWUgaXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgSXRlcmF0b3IgY2hhcnNldHMoKXsKKyAgICAgICAgSGFzaE1hcCBtYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBwdXRDaGFyc2V0cyhtYXApOworICAgICAgICByZXR1cm4gbWFwLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNhbm9uaWNhbCBuYW1lcyBvZiBhdmFpbGFibGUgY29udmVydGVycyAKKyAgICAgKiBAcmV0dXJuIE9iamVjdFtdIG5hbWVzIGFzIGFuIG9iamVjdCBhcnJheQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgZm9yIGludGVybmFsIElDVSB1c2Ugb25seQorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdFtdIGdldEF2YWlsYWJsZU5hbWVzKCl7CisgICAgICAgIEhhc2hNYXAgbWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgcHV0Q2hhcnNldHMobWFwKTsKKyAgICAgICAgcmV0dXJuIG1hcC52YWx1ZXMoKS50b0FycmF5KCk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYWxsIG5hbWVzIGF2YWlsYWJsZQorICAgICAqIEByZXR1cm4gU3RyaW5nW10gYW4gYXJyeWEgb2YgYWxsIGF2YWlsYWJsZSBuYW1lcworICAgICAqIEBpbnRlcm5hbCBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgZm9yIGludGVybmFsIElDVSB1c2Ugb25seQorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEFsbE5hbWVzKCl7CisgICAgICAgIGludCBudW0gPSBVQ29udmVydGVyQWxpYXMuY291bnRBdmFpbGFibGUoKTsKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBuZXcgU3RyaW5nW251bV07CisgICAgICAgIGZvcihpbnQgaT0wO2k8bnVtO2krKykgeworICAgICAgICAgICAgbmFtZXNbaV0gPSBVQ29udmVydGVyQWxpYXMuZ2V0QXZhaWxhYmxlTmFtZShpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmFtZXM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjE2LmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMTYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzdjZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjE2LmphdmEKQEAgLTAsMCArMSw0NDAgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK2NsYXNzIENoYXJzZXRVVEYxNiBleHRlbmRzIENoYXJzZXRJQ1UgeworICAgIAorICAgIHByb3RlY3RlZCBieXRlW10gZnJvbVVTdWJzdGl0dXRpb24gPSBuZXcgYnl0ZVtdeyhieXRlKTB4ZmYsIChieXRlKTB4ZmR9OworICAgCisgICAgcHVibGljIENoYXJzZXRVVEYxNihTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSwgU3RyaW5nIGphdmFDYW5vbmljYWxOYW1lLCBTdHJpbmdbXSBhbGlhc2VzKXsKKyAgICAgICAgc3VwZXIoaWN1Q2Fub25pY2FsTmFtZSwgamF2YUNhbm9uaWNhbE5hbWUsIGFsaWFzZXMpOworICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSA0OworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSAyOworICAgICAgICBtYXhDaGFyc1BlckJ5dGUgPSAxOworICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RGVjb2RlclVURjE2IGV4dGVuZHMgQ2hhcnNldERlY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXREZWNvZGVyVVRGMTYoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkgJiYgdG9Vbmljb2RlU3RhdHVzPT0wKSB7CisgICAgICAgICAgICAgICAgLyogbm8gaW5wdXQsIG5vdGhpbmcgdG8gZG8gKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleD0wLCBjb3VudD0wLCBsZW5ndGgsIHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICBjaGFyIGM9MCwgdHJhaWw7CisgICAgICAgICAgICBsZW5ndGggPSBzb3VyY2UucmVtYWluaW5nKCk7CisgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIC8qIGNvbXBsZXRlIGEgcGFydGlhbCBVQ2hhciBvciBwYWlyIGZyb20gdGhlIGxhc3QgY2FsbCAqLworICAgICAgICAgICAgaWYodG9Vbmljb2RlU3RhdHVzIT0wKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBzcGVjaWFsIGNhc2U6IHNpbmdsZSBieXRlIGZyb20gYSBwcmV2aW91cyBidWZmZXIsCisgICAgICAgICAgICAgICAgICogd2hlcmUgdGhlIGJ5dGUgdHVybmVkIG91dCBub3QgdG8gYmVsb25nIHRvIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICogYW5kIHRoZSBwcmVjZWRpbmcsIHVubWF0Y2hlZCBsZWFkIHN1cnJvZ2F0ZSB3YXMgcHV0IGludG8gdG9VQnl0ZXNbXQorICAgICAgICAgICAgICAgICAqIGZvciBlcnJvciBoYW5kbGluZworICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbdG9VQnl0ZXNCZWdpbiswXT0oYnl0ZSl0b1VuaWNvZGVTdGF0dXM7CisgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigoY291bnQ9dG9VTGVuZ3RoKSE9MCkgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBwQXJyYXk9dG9VQnl0ZXNBcnJheTsKKyAgICAgICAgICAgICAgICBpbnQgcEFycmF5SW5kZXggPSB0b1VCeXRlc0JlZ2luOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgcEFycmF5W2NvdW50KytdPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50PT0yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjPShjaGFyKSgoKHBBcnJheVtwQXJyYXlJbmRleCswXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChwQXJyYXlbcEFycmF5SW5kZXgrMV0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgQk1QIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudD0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb250aW51ZSBjb2xsZWN0aW5nIGJ5dGVzIGZvciB0aGUgdHJhaWwgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOyAvKiBhdm9pZCB1bm5lY2Vzc2FyeSBzdXJyb2dhdGUgaGFuZGxpbmcgYmVsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoIHRvIGVycm9yIGhhbmRsaW5nIGZvciBhbiB1bm1hdGNoZWQgdHJhaWwgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb3VudD09NCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYz0oY2hhcikoKChwQXJyYXlbcEFycmF5SW5kZXgrMF0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwocEFycmF5W3BBcnJheUluZGV4KzFdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbD0oY2hhcikoKChwQXJyYXlbcEFycmF5SW5kZXgrMl0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwocEFycmF5W3BBcnJheUluZGV4KzNdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgc3Vycm9nYXRlIHBhaXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5yZW1haW5pbmcoKT49MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIC8qIHRhcmdldENhcGFjaXR5PT0xICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbY2hhckVycm9yQnVmZmVyQmVnaW4rMF09dHJhaWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50PTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgbGVhZCBzdXJyb2dhdGUsIGhhbmRsZSBoZXJlIGZvciBjb25zaXN0ZW50IHRvVUJ5dGVzW10gKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYmFjayBvdXQgcmVhZGluZyB0aGUgY29kZSB1bml0IGFmdGVyIGl0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHNvdXJjZS5wb3NpdGlvbigpLXNvdXJjZUFycmF5SW5kZXgpPj0yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgtPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgdGhlIHRyYWlsIHVuaXQncyBmaXJzdCBieXRlIHdhcyBpbiBhIHByZXZpb3VzIGJ1ZmZlciwgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB3ZSBuZWVkIHRvIHB1dCBpdCBpbnRvIGEgc3BlY2lhbCBwbGFjZSBiZWNhdXNlIHRvVUJ5dGVzW10gd2lsbCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB1c2VkIGZvciB0aGUgbGVhZCB1bml0J3MgYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVW5pY29kZVN0YXR1cz0weDEwMHxwQXJyYXlbcEFycmF5SW5kZXgrMl07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IHdoaWxlKGxlbmd0aD4wKTsKKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9KGJ5dGUpY291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogY29weSBhbiBldmVuIG51bWJlciBvZiBieXRlcyBmb3IgY29tcGxldGUgVUNoYXJzICovCisgICAgICAgICAgICBjb3VudD0yKnRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIGlmKGNvdW50Pmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGNvdW50PWxlbmd0aCZ+MTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM9PTAgJiYgY291bnQ+MCkgeworICAgICAgICAgICAgICAgIGxlbmd0aC09Y291bnQ7CisgICAgICAgICAgICAgICAgY291bnQ+Pj0xOworICAgICAgICAgICAgICAgIC8vdGFyZ2V0Q2FwYWNpdHktPWNvdW50OworICAgICAgICAgICAgICAgIGlmKG9mZnNldHM9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgYz0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgY291bnQ+PTIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsPShjaGFyKSgoKHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCswKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMSkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSgtLWNvdW50PjApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsxKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudD49MiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsxKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpKQorICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCs9NDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoLS1jb3VudD4wKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKGNvdW50PT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGRvbmUgd2l0aCB0aGUgbG9vcCBmb3IgY29tcGxldGUgVUNoYXJzICovCisgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIGMgZm9yIHN1cnJvZ2F0ZSBoYW5kbGluZywgdHJhaWwgd2lsbCBiZSBzZXQgdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoKz0yKihjb3VudC0xKTsgLyogb25lIG1vcmUgYnl0ZSBwYWlyIHdhcyBjb25zdW1lZCB0aGFuIGNvdW50IGRlY3JlbWVudGVkICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKGMhPTApIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGMgaXMgYSBzdXJyb2dhdGUsIGFuZAorICAgICAgICAgICAgICAgICAqIC0gc291cmNlIG9yIHRhcmdldCB0b28gc2hvcnQKKyAgICAgICAgICAgICAgICAgKiAtIG9yIHRoZSBzdXJyb2dhdGUgaXMgdW5tYXRjaGVkCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVt0b1VCeXRlc0JlZ2luKzBdPShieXRlKShjPj4+OCk7CisgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVt0b1VCeXRlc0JlZ2luKzFdPShieXRlKWM7CisgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTI7CisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsxKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgc3Vycm9nYXRlIHBhaXIsIHdpbGwgb3ZlcmZsb3cgKHNlZSBjb25kaXRpb25zIGNvbW1lbnQgYWJvdmUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgtPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbY2hhckVycm9yQnVmZmVyQmVnaW4rMF09dHJhaWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIGxlYWQgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWUgaWYgdGhlIHRyYWlsIHN1cnJvZ2F0ZSBpcyBpbiB0aGUgbmV4dCBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCB0cmFpbCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgCisgICAgICAgICAgICAvKiBjaGVjayBmb3IgYSByZW1haW5pbmcgc291cmNlIGJ5dGUgKi8KKyAgICAgICAgICAgIGlmKCFjci5pc0Vycm9yKCkpeworICAgICAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKCF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBpdCBtdXN0IGJlIGxlbmd0aD09MSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgYWJvdmUgd291bGQgaGF2ZSBjb3BpZWQgbW9yZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVt0b1VMZW5ndGgrK109c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworCisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIGNsYXNzIENoYXJzZXRFbmNvZGVyVVRGMTYgZXh0ZW5kcyBDaGFyc2V0RW5jb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXJVVEYxNihDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgTkVFRF9UT19XUklURV9CT00gPSAxOworICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaW1wbFJlc2V0KCkgeworICAgICAgICAgICAgc3VwZXIuaW1wbFJlc2V0KCk7CisgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IE5FRURfVE9fV1JJVEVfQk9NOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgLyogd3JpdGUgdGhlIEJPTSBpZiBuZWNlc3NhcnkgKi8KKyAgICAgICAgICAgIGlmKGZyb21Vbmljb2RlU3RhdHVzPT1ORUVEX1RPX1dSSVRFX0JPTSAmJiB3cml0ZUJPTSkgeworICAgICAgICAgICAgICAgIGJ5dGUgYm9tW109eyAoYnl0ZSkweGZlLCAoYnl0ZSkweGZmIH07CisgICAgICAgICAgICAgICAgY3IgPSBmcm9tVVdyaXRlQnl0ZXModGhpcyxib20sIDAsIGJvbS5sZW5ndGgsIHRhcmdldCwgb2Zmc2V0cywgLTEpOworICAgICAgICAgICAgICAgIGlmKGNyLmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXM9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUluZGV4ID0gMDsKKyAgICAgICAgICAgIGNoYXIgdHJhaWwgPSAwOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IHNvdXJjZS5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIC8qIGMhPTAgaW5kaWNhdGVzIGluIHNldmVyYWwgcGxhY2VzIG91dHNpZGUgdGhlIG1haW4gbG9vcHMgdGhhdCBhIHN1cnJvZ2F0ZSB3YXMgZm91bmQgKi8KKyAgICAgICAgCisgICAgICAgICAgICBpZigoYz0oY2hhcilmcm9tVUNoYXIzMikhPTAgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSAmJiB0YXJnZXQucmVtYWluaW5nKCk+PTQpIHsKKyAgICAgICAgICAgICAgICAvKiB0aGUgbGFzdCBidWZmZXIgZW5kZWQgd2l0aCBhIGxlYWQgc3Vycm9nYXRlLCBvdXRwdXQgdGhlIHN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh0cmFpbD4+PjgpKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXRyYWlsKTsKKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsICYmIG9mZnNldHMucmVtYWluaW5nKCk+PTQpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD0xOworICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyPWM9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ5dGUgb3ZlcmZsb3dbLyo0Ki9dID0gbmV3IGJ5dGVbNF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGM9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBjb3B5IGFuIGV2ZW4gbnVtYmVyIG9mIGJ5dGVzIGZvciBjb21wbGV0ZSBVQ2hhcnMgKi8KKyAgICAgICAgICAgICAgICBpbnQgY291bnQ9MipsZW5ndGg7CisgICAgICAgICAgICAgICAgaW50IHRhcmdldENhcGFjaXR5ID0gdGFyZ2V0LnJlbWFpbmluZygpOworICAgICAgICAgICAgICAgIGlmKGNvdW50PnRhcmdldENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50PXRhcmdldENhcGFjaXR5Jn4xOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIGNvdW50IGlzIGV2ZW4gKi8KKyAgICAgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eS09Y291bnQ7CisgICAgICAgICAgICAgICAgY291bnQ+Pj0xOworICAgICAgICAgICAgICAgIGxlbmd0aC09Y291bnQ7CisKKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKGNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgY291bnQ+PTIgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh0cmFpbD4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYz1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKShjPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudD49MiAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHRyYWlsPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihjb3VudD09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBkb25lIHdpdGggdGhlIGxvb3AgZm9yIGNvbXBsZXRlIFVDaGFycyAqLworICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg+MCAmJiB0YXJnZXRDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlcmUgaXMgbW9yZSBpbnB1dCBhbmQgc29tZSB0YXJnZXQgY2FwYWNpdHkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICogaXQgbXVzdCBiZSB0YXJnZXRDYXBhY2l0eT09MSBiZWNhdXNlIG90aGVyd2lzZQorICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIGFib3ZlIHdvdWxkIGhhdmUgY29waWVkIG1vcmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBwcmVwYXJlIGZvciBvdmVyZmxvdyBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGM9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzBdPShieXRlKShjPj4+OCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbMV09KGJ5dGUpYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MjsgLyogMiBieXRlcyB0byBvdXRwdXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB9IGVsc2UgeyBrZWVwIGMgZm9yIHN1cnJvZ2F0ZSBoYW5kbGluZywgbGVuZ3RoIHdpbGwgYmUgc2V0IHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgYyBmb3Igc3Vycm9nYXRlIGhhbmRsaW5nLCBsZW5ndGggd2lsbCBiZSBzZXQgdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHkrPTIqY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsgLyogZnJvbSBoZXJlIG9uLCBsZW5ndGggY291bnRzIHRoZSBieXRlcyBpbiBvdmVyZmxvd1tdICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGMhPTApIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGMgaXMgYSBzdXJyb2dhdGUsIGFuZAorICAgICAgICAgICAgICAgICAqIC0gc291cmNlIG9yIHRhcmdldCB0b28gc2hvcnQKKyAgICAgICAgICAgICAgICAgKiAtIG9yIHRoZSBzdXJyb2dhdGUgaXMgdW5tYXRjaGVkCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgdGhlIHN1cnJvZ2F0ZSBwYWlyLCB3aWxsIG92ZXJmbG93IChzZWUgY29uZGl0aW9ucyBjb21tZW50IGFib3ZlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1swXT0oYnl0ZSkoYz4+PjgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzFdPShieXRlKWM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbMl09KGJ5dGUpKHRyYWlsPj4+OCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbM109KGJ5dGUpdHJhaWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTQ7IC8qIDQgYnl0ZXMgdG8gb3V0cHV0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgbGVhZCBzdXJyb2dhdGUgKi8JCQkJCQkJCQkJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWUgaWYgdGhlIHRyYWlsIHN1cnJvZ2F0ZSBpcyBpbiB0aGUgbmV4dCBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCB0cmFpbCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyPWM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgICAgIC8qIG91dHB1dCBsZW5ndGggYnl0ZXMgd2l0aCBvdmVyZmxvdyAobGVuZ3RoPnRhcmdldENhcGFjaXR5PjApICovCisgICAgICAgICAgICAgICAgY3IgPSBmcm9tVVdyaXRlQnl0ZXModGhpcywgb3ZlcmZsb3csIDAsIGxlbmd0aCwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2VJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIENoYXJzZXREZWNvZGVyIG5ld0RlY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldERlY29kZXJVVEYxNih0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXIgbmV3RW5jb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RW5jb2RlclVURjE2KHRoaXMpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjE2TEUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEYxNkxFLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIyYmU2MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEYxNkxFLmphdmEKQEAgLTAsMCArMSw0NDQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogQGF1dGhvciBOaXRpIEhhbnRhd2VlcGFudAorICovCitjbGFzcyBDaGFyc2V0VVRGMTZMRSBleHRlbmRzIENoYXJzZXRJQ1UgeworICAgIAorICAgIHByb3RlY3RlZCBieXRlW10gZnJvbVVTdWJzdGl0dXRpb24gPSBuZXcgYnl0ZVtdeyhieXRlKTB4ZmQsIChieXRlKTB4ZmZ9OworICAgIAorICAgIHB1YmxpYyBDaGFyc2V0VVRGMTZMRShTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSwgU3RyaW5nIGphdmFDYW5vbmljYWxOYW1lLCBTdHJpbmdbXSBhbGlhc2VzKXsKKyAgICAgICAgc3VwZXIoaWN1Q2Fub25pY2FsTmFtZSwgamF2YUNhbm9uaWNhbE5hbWUsIGFsaWFzZXMpOworICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSA0OworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSAyOworICAgICAgICBtYXhDaGFyc1BlckJ5dGUgPSAxOworICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RGVjb2RlclVURjE2TEUgZXh0ZW5kcyBDaGFyc2V0RGVjb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldERlY29kZXJVVEYxNkxFKENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgICAgIHN1cGVyKGNzKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBkZWNvZGVMb29wKEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICBpZighc291cmNlLmhhc1JlbWFpbmluZygpICYmIHRvVW5pY29kZVN0YXR1cz09MCkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlSW5kZXg9MCwgY291bnQ9MCwgbGVuZ3RoLCBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgY2hhciBjPTAsIHRyYWlsOworICAgICAgICAgICAgbGVuZ3RoID0gc291cmNlLnJlbWFpbmluZygpOworICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworCisgICAgICAgICAgICAvKiBjb21wbGV0ZSBhIHBhcnRpYWwgVUNoYXIgb3IgcGFpciBmcm9tIHRoZSBsYXN0IGNhbGwgKi8KKyAgICAgICAgICAgIGlmKHRvVW5pY29kZVN0YXR1cyE9MCkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogc3BlY2lhbCBjYXNlOiBzaW5nbGUgYnl0ZSBmcm9tIGEgcHJldmlvdXMgYnVmZmVyLAorICAgICAgICAgICAgICAgICAqIHdoZXJlIHRoZSBieXRlIHR1cm5lZCBvdXQgbm90IHRvIGJlbG9uZyB0byBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAqIGFuZCB0aGUgcHJlY2VkaW5nLCB1bm1hdGNoZWQgbGVhZCBzdXJyb2dhdGUgd2FzIHB1dCBpbnRvIHRvVUJ5dGVzW10KKyAgICAgICAgICAgICAgICAgKiBmb3IgZXJyb3IgaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W3RvVUJ5dGVzQmVnaW4rMF09KGJ5dGUpdG9Vbmljb2RlU3RhdHVzOworICAgICAgICAgICAgICAgIHRvVUxlbmd0aD0xOworICAgICAgICAgICAgICAgIHRvVW5pY29kZVN0YXR1cz0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKGNvdW50PXRvVUxlbmd0aCkhPTApIHsKKyAgICAgICAgICAgICAgICBieXRlW10gcEFycmF5PXRvVUJ5dGVzQXJyYXk7CisgICAgICAgICAgICAgICAgaW50IHBBcnJheUluZGV4ID0gdG9VQnl0ZXNCZWdpbjsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIHBBcnJheVtjb3VudCsrXT1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICsrc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBpZihjb3VudD09MikgeworICAgICAgICAgICAgICAgICAgICAgICAgYz0oY2hhcikoKChwQXJyYXlbcEFycmF5SW5kZXgrMV0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwocEFycmF5W3BBcnJheUluZGV4KzBdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgdGhlIEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udGludWUgY29sbGVjdGluZyBieXRlcyBmb3IgdGhlIHRyYWlsIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsgLyogYXZvaWQgdW5uZWNlc3Nhcnkgc3Vycm9nYXRlIGhhbmRsaW5nIGJlbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCB0byBlcnJvciBoYW5kbGluZyBmb3IgYW4gdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY291bnQ9PTQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9KGNoYXIpKCgocEFycmF5W3BBcnJheUluZGV4KzFdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHBBcnJheVtwQXJyYXlJbmRleCswXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpOworICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWw9KGNoYXIpKCgocEFycmF5W3BBcnJheUluZGV4KzNdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHBBcnJheVtwQXJyYXlJbmRleCsyXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgdGhlIHN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0YXJnZXQucmVtYWluaW5nKCk+PTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiB0YXJnZXRDYXBhY2l0eT09MSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckFycmF5W2NoYXJFcnJvckJ1ZmZlckJlZ2luKzBdPXRyYWlsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50PTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgbGVhZCBzdXJyb2dhdGUsIGhhbmRsZSBoZXJlIGZvciBjb25zaXN0ZW50IHRvVUJ5dGVzW10gKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYmFjayBvdXQgcmVhZGluZyB0aGUgY29kZSB1bml0IGFmdGVyIGl0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHNvdXJjZS5wb3NpdGlvbigpLXNvdXJjZUFycmF5SW5kZXgpPj0yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgtPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgdGhlIHRyYWlsIHVuaXQncyBmaXJzdCBieXRlIHdhcyBpbiBhIHByZXZpb3VzIGJ1ZmZlciwgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB3ZSBuZWVkIHRvIHB1dCBpdCBpbnRvIGEgc3BlY2lhbCBwbGFjZSBiZWNhdXNlIHRvVUJ5dGVzW10gd2lsbCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB1c2VkIGZvciB0aGUgbGVhZCB1bml0J3MgYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVW5pY29kZVN0YXR1cz0weDEwMHxwQXJyYXlbcEFycmF5SW5kZXgrMl07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IHdoaWxlKGxlbmd0aD4wKTsKKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9KGJ5dGUpY291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogY29weSBhbiBldmVuIG51bWJlciBvZiBieXRlcyBmb3IgY29tcGxldGUgVUNoYXJzICovCisgICAgICAgICAgICBjb3VudD0yKnRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIGlmKGNvdW50Pmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGNvdW50PWxlbmd0aCZ+MTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM9PTAgJiYgY291bnQ+MCkgeworICAgICAgICAgICAgICAgIGxlbmd0aC09Y291bnQ7CisgICAgICAgICAgICAgICAgY291bnQ+Pj0xOworICAgICAgICAgICAgICAgIC8vdGFyZ2V0Q2FwYWNpdHktPWNvdW50OworICAgICAgICAgICAgICAgIGlmKG9mZnNldHM9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgYz0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMSkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgY291bnQ+PTIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsPShjaGFyKSgoKHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsxKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSgtLWNvdW50PjApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCswKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudD49MiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCswKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpKQorICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCs9NDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoLS1jb3VudD4wKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKGNvdW50PT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGRvbmUgd2l0aCB0aGUgbG9vcCBmb3IgY29tcGxldGUgVUNoYXJzICovCisgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIGMgZm9yIHN1cnJvZ2F0ZSBoYW5kbGluZywgdHJhaWwgd2lsbCBiZSBzZXQgdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoKz0yKihjb3VudC0xKTsgLyogb25lIG1vcmUgYnl0ZSBwYWlyIHdhcyBjb25zdW1lZCB0aGFuIGNvdW50IGRlY3JlbWVudGVkICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKGMhPTApIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGMgaXMgYSBzdXJyb2dhdGUsIGFuZAorICAgICAgICAgICAgICAgICAqIC0gc291cmNlIG9yIHRhcmdldCB0b28gc2hvcnQKKyAgICAgICAgICAgICAgICAgKiAtIG9yIHRoZSBzdXJyb2dhdGUgaXMgdW5tYXRjaGVkCisgICAgICAgICAgICAgICAgICovCQkgIAorIAorICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbdG9VQnl0ZXNCZWdpbiswXT0oYnl0ZSljOworICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbdG9VQnl0ZXNCZWdpbisxXT0oYnl0ZSkoYz4+PjgpOwkgCisgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTI7CisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCswKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgc3Vycm9nYXRlIHBhaXIsIHdpbGwgb3ZlcmZsb3cgKHNlZSBjb25kaXRpb25zIGNvbW1lbnQgYWJvdmUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgtPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbY2hhckVycm9yQnVmZmVyQmVnaW4rMF09dHJhaWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIGxlYWQgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWUgaWYgdGhlIHRyYWlsIHN1cnJvZ2F0ZSBpcyBpbiB0aGUgbmV4dCBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCB0cmFpbCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgCisgICAgICAgICAgICAvKiBjaGVjayBmb3IgYSByZW1haW5pbmcgc291cmNlIGJ5dGUgKi8KKyAgICAgICAgICAgIGlmKCFjci5pc0Vycm9yKCkpeworICAgICAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKCF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBpdCBtdXN0IGJlIGxlbmd0aD09MSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgYWJvdmUgd291bGQgaGF2ZSBjb3BpZWQgbW9yZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVt0b1VMZW5ndGgrK109c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworCisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIGNsYXNzIENoYXJzZXRFbmNvZGVyVVRGMTZMRSBleHRlbmRzIENoYXJzZXRFbmNvZGVySUNVeworCisgICAgICAgIHB1YmxpYyBDaGFyc2V0RW5jb2RlclVURjE2TEUoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MsIGZyb21VU3Vic3RpdHV0aW9uKTsKKyAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IE5FRURfVE9fV1JJVEVfQk9NID0gMTsKKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKyAgICAgICAgICAgIHN1cGVyLmltcGxSZXNldCgpOworICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXMgPSBORUVEX1RPX1dSSVRFX0JPTTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGVuY29kZUxvb3AoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvKiBubyBpbnB1dCwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgIC8qIHdyaXRlIHRoZSBCT00gaWYgbmVjZXNzYXJ5ICovCisgICAgICAgICAgICBpZihmcm9tVW5pY29kZVN0YXR1cz09TkVFRF9UT19XUklURV9CT00gJiYgd3JpdGVCT00pIHsKKyAgICAgICAgICAgICAgICBieXRlIGJvbVtdPXsgKGJ5dGUpMHhmZiwgKGJ5dGUpMHhmZSB9OworICAgICAgICAgICAgICAgIGNyID0gZnJvbVVXcml0ZUJ5dGVzKHRoaXMsYm9tLCAwLCBib20ubGVuZ3RoLCB0YXJnZXQsIG9mZnNldHMsIC0xKTsKKyAgICAgICAgICAgICAgICBpZihjci5pc0Vycm9yKCkpeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKCF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleCA9IDA7CisgICAgICAgICAgICBjaGFyIHRyYWlsID0gMDsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBzb3VyY2UucmVtYWluaW5nKCk7CisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBjIT0wIGluZGljYXRlcyBpbiBzZXZlcmFsIHBsYWNlcyBvdXRzaWRlIHRoZSBtYWluIGxvb3BzIHRoYXQgYSBzdXJyb2dhdGUgd2FzIGZvdW5kICovCisgICAgICAgIAorICAgICAgICAgICAgaWYoKGM9KGNoYXIpZnJvbVVDaGFyMzIpIT0wICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSkgJiYgdGFyZ2V0LnJlbWFpbmluZygpPj00KSB7CisgICAgICAgICAgICAgICAgLyogdGhlIGxhc3QgYnVmZmVyIGVuZGVkIHdpdGggYSBsZWFkIHN1cnJvZ2F0ZSwgb3V0cHV0IHRoZSBzdXJyb2dhdGUgcGFpciAqLworICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl0cmFpbCk7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodHJhaWw+Pj44KSk7CisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCAmJiBvZmZzZXRzLnJlbWFpbmluZygpPj00KSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc291cmNlSW5kZXg9MTsKKyAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMj1jPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBieXRlIG92ZXJmbG93Wy8qNCovXSA9IG5ldyBieXRlWzRdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihjPT0wKSB7CisgICAgICAgICAgICAgICAgLyogY29weSBhbiBldmVuIG51bWJlciBvZiBieXRlcyBmb3IgY29tcGxldGUgVUNoYXJzICovCisgICAgICAgICAgICAgICAgaW50IGNvdW50PTIqbGVuZ3RoOworICAgICAgICAgICAgICAgIGludCB0YXJnZXRDYXBhY2l0eSA9IHRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgICBpZihjb3VudD50YXJnZXRDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBjb3VudD10YXJnZXRDYXBhY2l0eSZ+MTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBjb3VudCBpcyBldmVuICovCisgICAgICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHktPWNvdW50OworICAgICAgICAgICAgICAgIGNvdW50Pj49MTsKKyAgICAgICAgICAgICAgICBsZW5ndGgtPWNvdW50OworCisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cz09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICB3aGlsZShjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpICYmIGNvdW50Pj0yICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodHJhaWw+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKGNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKShjPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgY291bnQ+PTIgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh0cmFpbD4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXgrPTI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoY291bnQ9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZG9uZSB3aXRoIHRoZSBsb29wIGZvciBjb21wbGV0ZSBVQ2hhcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjAgJiYgdGFyZ2V0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZXJlIGlzIG1vcmUgaW5wdXQgYW5kIHNvbWUgdGFyZ2V0IGNhcGFjaXR5IC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0IG11c3QgYmUgdGFyZ2V0Q2FwYWNpdHk9PTEgYmVjYXVzZSBvdGhlcndpc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBhYm92ZSB3b3VsZCBoYXZlIGNvcGllZCBtb3JlOworICAgICAgICAgICAgICAgICAgICAgICAgICogcHJlcGFyZSBmb3Igb3ZlcmZsb3cgb3V0cHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1swXT0oYnl0ZSljOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzFdPShieXRlKShjPj4+OCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTI7IC8qIDIgYnl0ZXMgdG8gb3V0cHV0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgLyogfSBlbHNlIHsga2VlcCBjIGZvciBzdXJyb2dhdGUgaGFuZGxpbmcsIGxlbmd0aCB3aWxsIGJlIHNldCB0aGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIGMgZm9yIHN1cnJvZ2F0ZSBoYW5kbGluZywgbGVuZ3RoIHdpbGwgYmUgc2V0IHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgIHRhcmdldENhcGFjaXR5Kz0yKmNvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPTA7IC8qIGZyb20gaGVyZSBvbiwgbGVuZ3RoIGNvdW50cyB0aGUgYnl0ZXMgaW4gb3ZlcmZsb3dbXSAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihjIT0wKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBjIGlzIGEgc3Vycm9nYXRlLCBhbmQKKyAgICAgICAgICAgICAgICAgKiAtIHNvdXJjZSBvciB0YXJnZXQgdG9vIHNob3J0CisgICAgICAgICAgICAgICAgICogLSBvciB0aGUgc3Vycm9nYXRlIGlzIHVubWF0Y2hlZAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICBpZihzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IHRoZSBzdXJyb2dhdGUgcGFpciwgd2lsbCBvdmVyZmxvdyAoc2VlIGNvbmRpdGlvbnMgY29tbWVudCBhYm92ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbMF09KGJ5dGUpYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1sxXT0oYnl0ZSkoYz4+PjgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzJdPShieXRlKXRyYWlsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzNdPShieXRlKSh0cmFpbD4+PjgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD00OyAvKiA0IGJ5dGVzIHRvIG91dHB1dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIGxlYWQgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWUgaWYgdGhlIHRyYWlsIHN1cnJvZ2F0ZSBpcyBpbiB0aGUgbmV4dCBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCB0cmFpbCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyPWM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgICAgIC8qIG91dHB1dCBsZW5ndGggYnl0ZXMgd2l0aCBvdmVyZmxvdyAobGVuZ3RoPnRhcmdldENhcGFjaXR5PjApICovCisgICAgICAgICAgICAgICAgY3IgPSBmcm9tVVdyaXRlQnl0ZXModGhpcywgb3ZlcmZsb3csIDAsIGxlbmd0aCwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2VJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIENoYXJzZXREZWNvZGVyIG5ld0RlY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldERlY29kZXJVVEYxNkxFKHRoaXMpOworICAgIH0KKworICAgIHB1YmxpYyBDaGFyc2V0RW5jb2RlciBuZXdFbmNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXRFbmNvZGVyVVRGMTZMRSh0aGlzKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEYzMi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjMyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQyOTk2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEYzMi5qYXZhCkBAIC0wLDAgKzEsMzA5IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5JbnRCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworLyoqCisgKiBAYXV0aG9yIE5pdGkgSGFudGF3ZWVwYW50CisgKi8KK2NsYXNzIENoYXJzZXRVVEYzMiBleHRlbmRzIENoYXJzZXRJQ1UgeworICAgIAorICAgIHByb3RlY3RlZCBieXRlW10gZnJvbVVTdWJzdGl0dXRpb24gPSBuZXcgYnl0ZVtdeyhieXRlKTAsIChieXRlKTAsIChieXRlKTB4ZmYsIChieXRlKTB4ZmR9OworICAgIAorICAgIHB1YmxpYyBDaGFyc2V0VVRGMzIoU3RyaW5nIGljdUNhbm9uaWNhbE5hbWUsIFN0cmluZyBqYXZhQ2Fub25pY2FsTmFtZSwgU3RyaW5nW10gYWxpYXNlcyl7CisgICAgICAgIHN1cGVyKGljdUNhbm9uaWNhbE5hbWUsIGphdmFDYW5vbmljYWxOYW1lLCBhbGlhc2VzKTsKKyAgICAgICAgbWF4Qnl0ZXNQZXJDaGFyID0gNDsKKyAgICAgICAgbWluQnl0ZXNQZXJDaGFyID0gNDsKKyAgICAgICAgbWF4Q2hhcnNQZXJCeXRlID0gMTsKKyAgICB9CisgICAgY2xhc3MgQ2hhcnNldERlY29kZXJVVEYzMiBleHRlbmRzIENoYXJzZXREZWNvZGVySUNVeworCisgICAgICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlclVURjMyKENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgICAgIHN1cGVyKGNzKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBkZWNvZGVMb29wKEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICBpbnQgY2gsIGk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRvbmVmb3Jub3c6CisgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBVVEYtOCByZXR1cm5zIGhlcmUgZm9yIG9ubHkgbm9uLW9mZnNldCwgdGhpcyBuZWVkcyB0byBjaGFuZ2UuKi8KKyAgICAgICAgICAgICAgICBpZiAodG9Vbmljb2RlU3RhdHVzICE9IDAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIGkgPSB0b1VMZW5ndGg7ICAgICAgIC8qIHJlc3RvcmUgIyBvZiBieXRlcyBjb25zdW1lZCAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNoID0gKGludCkodG9Vbmljb2RlU3RhdHVzIC0gMSk7LypTdG9yZXMgdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlZCBjaCBmcm9tIGEgcHJldmlvdXMgY2FsbCovCisgICAgICAgICAgICAgICAgICAgIHRvVW5pY29kZVN0YXR1cyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9MDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoIDw8IDgpIHwgKChieXRlKShzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W2krK10gPSAoYnl0ZSkgc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RvcmVzIGEgcGFydGlhbGx5IGNhbGN1bGF0ZWQgdGFyZ2V0Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiArIDEgdG8gbWFrZSAwIGEgdmFsaWQgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gY2ggKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGRvbmVmb3Jub3c7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gVUNvbnZlcnRlckNvbnN0YW50cy5NQVhJTVVNX1VURiAmJiAhaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBOb3JtYWwgdmFsaWQgYnl0ZSB3aGVuIHRoZSBsb29wIGhhcyBub3QgcHJlbWF0dXJlbHkgdGVybWluYXRlZCAoaSA8IGluQnl0ZXMpICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gVUNvbnZlcnRlckNvbnN0YW50cy5NQVhJTVVNX1VDUzIpIAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpdHMgaW4gMTYgYml0cyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd3JpdGUgb3V0IHRoZSBzdXJyb2dhdGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFB1dCBpbiBvdmVyZmxvdyBidWZmZXIgKG5vdCBoYW5kbGVkIGhlcmUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckFycmF5WzBdID0gKGNoYXIpIGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKWk7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGRvbmVmb3Jub3c7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICAgICAgICAgIGNoID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IChjaCA8PCA4KSB8ICgoYnl0ZSkoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVtpKytdID0gKGJ5dGUpIHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0b3JlcyBhIHBhcnRpYWxseSBjYWxjdWxhdGVkIHRhcmdldCovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKyAxIHRvIG1ha2UgMCBhIHZhbGlkIGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVW5pY29kZVN0YXR1cyA9IGNoICsgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSAoYnl0ZSkgaTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBkb25lZm9ybm93OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDw9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLk1BWElNVU1fVVRGICYmICFpc1N1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vcm1hbCB2YWxpZCBieXRlIHdoZW4gdGhlIGxvb3AgaGFzIG5vdCBwcmVtYXR1cmVseSB0ZXJtaW5hdGVkIChpIDwgaW5CeXRlcykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyU2hhcmVkRGF0YS5NQVhJTVVNX1VDUzIpIAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpdHMgaW4gMTYgYml0cyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdyaXRlIG91dCB0aGUgc3Vycm9nYXRlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQdXQgaW4gb3ZlcmZsb3cgYnVmZmVyIChub3QgaGFuZGxlZCBoZXJlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVswXSA9IChjaGFyKSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIEVuZCBvZiB0YXJnZXQgYnVmZmVyICovCisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBjbGFzcyBDaGFyc2V0RW5jb2RlclVURjMyIGV4dGVuZHMgQ2hhcnNldEVuY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXRFbmNvZGVyVVRGMzIoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MsIGZyb21VU3Vic3RpdHV0aW9uKTsKKyAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IE5FRURfVE9fV1JJVEVfQk9NID0gMTsKKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKyAgICAgICAgICAgIHN1cGVyLmltcGxSZXNldCgpOworICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXMgPSBORUVEX1RPX1dSSVRFX0JPTTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGVuY29kZUxvb3AoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvKiBubyBpbnB1dCwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyogd3JpdGUgdGhlIEJPTSBpZiBuZWNlc3NhcnkgKi8KKyAgICAgICAgICAgIGlmKGZyb21Vbmljb2RlU3RhdHVzPT1ORUVEX1RPX1dSSVRFX0JPTSAmJiB3cml0ZUJPTSkgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBib209eyAwLCAwLCAoYnl0ZSkweGZlLCAoYnl0ZSkweGZmIH07CisgICAgICAgICAgICAgICAgY3IgPSBmcm9tVVdyaXRlQnl0ZXModGhpcywgYm9tLCAwLCBib20ubGVuZ3RoLCB0YXJnZXQsIG9mZnNldHMsIC0xKTsKKyAgICAgICAgICAgICAgICBpZihjci5pc0Vycm9yKCkpeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjaCwgY2gyOworICAgICAgICAgICAgaW50IGluZGV4VG9Xcml0ZTsKKyAgICAgICAgICAgIGJ5dGUgdGVtcFtdID0gbmV3IGJ5dGVbNF07CisgICAgICAgICAgICB0ZW1wWzBdID0gMDsKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gZG9sb29wID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChmcm9tVUNoYXIzMiAhPSAwKSB7CisgICAgICAgICAgICAgICAgY2ggPSBmcm9tVUNoYXIzMjsKKyAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IDA7CisgICAgICAgICAgICAgICAgLy9sb3dzdXJvZ2F0ZToKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoMiA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKChjaCAtIFVDb252ZXJ0ZXJDb25zdGFudHMuU1VSUk9HQVRFX0hJR0hfU1RBUlQpIDw8IFVDb252ZXJ0ZXJTaGFyZWREYXRhLkhBTEZfU0hJRlQpICsgY2gyICsgVUNvbnZlcnRlclNoYXJlZERhdGEuU1VSUk9HQVRFX0xPV19CQVNFOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiByYW4gb3V0IG9mIHNvdXJjZSAqLworICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogV2UgY2Fubm90IGdldCBhbnkgbGFyZ2VyIHRoYW4gMTBGRkZGIGJlY2F1c2Ugd2UgYXJlIGNvbWluZyBmcm9tIFVURi0xNiAqLworICAgICAgICAgICAgICAgIHRlbXBbMV0gPSAoYnl0ZSkgKGNoID4+PiAxNiAmIDB4MUYpOworICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKGNoID4+PiA4KTsgIC8qIHVuc2lnbmVkIGNhc3QgaW1wbGljaXRseSBkb2VzIChjaCAmIEZGKSAqLworICAgICAgICAgICAgICAgIHRlbXBbM10gPSAoYnl0ZSkgKGNoKTsgICAgICAgLyogdW5zaWduZWQgY2FzdCBpbXBsaWNpdGx5IGRvZXMgKGNoICYgRkYpICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW5kZXhUb1dyaXRlID0gMDsgaW5kZXhUb1dyaXRlIDw9IDM7IGluZGV4VG9Xcml0ZSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodGVtcFtpbmRleFRvV3JpdGVdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyW2Vycm9yQnVmZmVyTGVuZ3RoKytdID0gdGVtcFtpbmRleFRvV3JpdGVdOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihkb2xvb3ApIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG93c3Vyb2dhdGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDIgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9ICgoY2ggLSBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfSElHSF9TVEFSVCkgPDwgVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9TSElGVCkgKyBjaDIgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfTE9XX0JBU0U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmFuIG91dCBvZiBzb3VyY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZsdXNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIFdlIGNhbm5vdCBnZXQgYW55IGxhcmdlciB0aGFuIDEwRkZGRiBiZWNhdXNlIHdlIGFyZSBjb21pbmcgZnJvbSBVVEYtMTYgKi8KKyAgICAgICAgICAgICAgICAgICAgdGVtcFsxXSA9IChieXRlKSAoY2ggPj4+IDE2ICYgMHgxRik7CisgICAgICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKGNoID4+PiA4KTsgIC8qIHVuc2lnbmVkIGNhc3QgaW1wbGljaXRseSBkb2VzIChjaCAmIEZGKSAqLworICAgICAgICAgICAgICAgICAgICB0ZW1wWzNdID0gKGJ5dGUpIChjaCk7ICAgICAgIC8qIHVuc2lnbmVkIGNhc3QgaW1wbGljaXRseSBkb2VzIChjaCAmIEZGKSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXhUb1dyaXRlID0gMDsgaW5kZXhUb1dyaXRlIDw9IDM7IGluZGV4VG9Xcml0ZSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0ZW1wW2luZGV4VG9Xcml0ZV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJMZW5ndGgrK10gPSB0ZW1wW2luZGV4VG9Xcml0ZV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmICF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlciBuZXdEZWNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXREZWNvZGVyVVRGMzIodGhpcyk7CisgICAgfQorCisgICAgcHVibGljIENoYXJzZXRFbmNvZGVyIG5ld0VuY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldEVuY29kZXJVVEYzMih0aGlzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMzJMRS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjMyTEUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzIzOGYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjMyTEUuamF2YQpAQCAtMCwwICsxLDMwOSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldERlY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKy8qKgorICogQGF1dGhvciBOaXRpIEhhbnRhd2VlcGFudAorICovCitjbGFzcyBDaGFyc2V0VVRGMzJMRSBleHRlbmRzIENoYXJzZXRJQ1UgeworICAgIAorICAgIHByb3RlY3RlZCBieXRlW10gZnJvbVVTdWJzdGl0dXRpb24gPSBuZXcgYnl0ZVtdeyhieXRlKTB4ZmQsIChieXRlKTB4ZmYsIChieXRlKTAsIChieXRlKTB9OworICAgIAorICAgIHB1YmxpYyBDaGFyc2V0VVRGMzJMRShTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSwgU3RyaW5nIGphdmFDYW5vbmljYWxOYW1lLCBTdHJpbmdbXSBhbGlhc2VzKXsKKyAgICAgICAgc3VwZXIoaWN1Q2Fub25pY2FsTmFtZSwgamF2YUNhbm9uaWNhbE5hbWUsIGFsaWFzZXMpOworICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSA0OworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSA0OworICAgICAgICBtYXhDaGFyc1BlckJ5dGUgPSAxOworICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RGVjb2RlclVURjMyTEUgZXh0ZW5kcyBDaGFyc2V0RGVjb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldERlY29kZXJVVEYzMkxFKENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgICAgIHN1cGVyKGNzKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBkZWNvZGVMb29wKEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICBpbnQgY2gsIGk7CisKKyAgICAgICAgICAgIGRvbmVmb3Jub3c6CisgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBVVEYtOCByZXR1cm5zIGhlcmUgZm9yIG9ubHkgbm9uLW9mZnNldCwgdGhpcyBuZWVkcyB0byBjaGFuZ2UuKi8KKyAgICAgICAgICAgICAgICBpZiAodG9Vbmljb2RlU3RhdHVzICE9IDAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIGkgPSB0b1VMZW5ndGg7ICAgICAgIC8qIHJlc3RvcmUgIyBvZiBieXRlcyBjb25zdW1lZCAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNoID0gKGludCkodG9Vbmljb2RlU3RhdHVzIC0gMSk7LypTdG9yZXMgdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlZCBjaCBmcm9tIGEgcHJldmlvdXMgY2FsbCovCisgICAgICAgICAgICAgICAgICAgIHRvVW5pY29kZVN0YXR1cyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aD0wOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggfD0gKHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykgPDwgKGkgKiA4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W2krK10gPSAoYnl0ZSkgc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RvcmVzIGEgcGFydGlhbGx5IGNhbGN1bGF0ZWQgdGFyZ2V0Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiArIDEgdG8gbWFrZSAwIGEgdmFsaWQgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gY2ggKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGRvbmVmb3Jub3c7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gVUNvbnZlcnRlckNvbnN0YW50cy5NQVhJTVVNX1VURiAmJiAhaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBOb3JtYWwgdmFsaWQgYnl0ZSB3aGVuIHRoZSBsb29wIGhhcyBub3QgcHJlbWF0dXJlbHkgdGVybWluYXRlZCAoaSA8IGluQnl0ZXMpICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gVUNvbnZlcnRlckNvbnN0YW50cy5NQVhJTVVNX1VDUzIpIAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpdHMgaW4gMTYgYml0cyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd3JpdGUgb3V0IHRoZSBzdXJyb2dhdGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFB1dCBpbiBvdmVyZmxvdyBidWZmZXIgKG5vdCBoYW5kbGVkIGhlcmUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckFycmF5WzBdID0gKGNoYXIpIGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKWk7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGRvbmVmb3Jub3c7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICAgICAgICAgIGNoID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCB8PSAoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSA8PCAoaSAqIDgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbaSsrXSA9IChieXRlKSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdG9yZXMgYSBwYXJ0aWFsbHkgY2FsY3VsYXRlZCB0YXJnZXQqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICsgMSB0byBtYWtlIDAgYSB2YWxpZCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VuaWNvZGVTdGF0dXMgPSBjaCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpIGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZG9uZWZvcm5vdzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyU2hhcmVkRGF0YS5NQVhJTVVNX1VURiAmJiAhaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBOb3JtYWwgdmFsaWQgYnl0ZSB3aGVuIHRoZSBsb29wIGhhcyBub3QgcHJlbWF0dXJlbHkgdGVybWluYXRlZCAoaSA8IGluQnl0ZXMpICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gVUNvbnZlcnRlclNoYXJlZERhdGEuTUFYSU1VTV9VQ1MyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmaXRzIGluIDE2IGJpdHMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKSBjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3cml0ZSBvdXQgdGhlIHN1cnJvZ2F0ZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KFVURjE2LmdldExlYWRTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUHV0IGluIG92ZXJmbG93IGJ1ZmZlciAobm90IGhhbmRsZWQgaGVyZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbMF0gPSAoY2hhcikgY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKWk7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmICF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvKiBFbmQgb2YgdGFyZ2V0IGJ1ZmZlciAqLworICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisgICAgCisgICAgY2xhc3MgQ2hhcnNldEVuY29kZXJVVEYzMkxFIGV4dGVuZHMgQ2hhcnNldEVuY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXRFbmNvZGVyVVRGMzJMRShDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgTkVFRF9UT19XUklURV9CT00gPSAxOworICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaW1wbFJlc2V0KCkgeworICAgICAgICAgICAgc3VwZXIuaW1wbFJlc2V0KCk7CisgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IE5FRURfVE9fV1JJVEVfQk9NOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvKiB3cml0ZSB0aGUgQk9NIGlmIG5lY2Vzc2FyeSAqLworICAgICAgICAgICAgaWYoZnJvbVVuaWNvZGVTdGF0dXM9PU5FRURfVE9fV1JJVEVfQk9NICYmIHdyaXRlQk9NKSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJvbT17IChieXRlKTB4ZmYsIChieXRlKTB4ZmUsIDAsIDAgfTsKKyAgICAgICAgICAgICAgICBjciA9IGZyb21VV3JpdGVCeXRlcyh0aGlzLCBib20sIDAsIGJvbS5sZW5ndGgsIHRhcmdldCwgb2Zmc2V0cywgLTEpOworICAgICAgICAgICAgICAgIGlmKGNyLmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXM9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjaCwgY2gyOworICAgICAgICAgICAgaW50IGluZGV4VG9Xcml0ZTsKKyAgICAgICAgICAgIGJ5dGUgdGVtcFtdID0gbmV3IGJ5dGVbNF07CisgICAgICAgICAgICB0ZW1wWzNdID0gMDsKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gZG9sb29wID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChmcm9tVUNoYXIzMiAhPSAwKSB7CisgICAgICAgICAgICAgICAgY2ggPSBmcm9tVUNoYXIzMjsKKyAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IDA7CisgICAgICAgICAgICAgICAgLy9sb3dzdXJvZ2F0ZToKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoMiA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKChjaCAtIFVDb252ZXJ0ZXJDb25zdGFudHMuU1VSUk9HQVRFX0hJR0hfU1RBUlQpIDw8IFVDb252ZXJ0ZXJTaGFyZWREYXRhLkhBTEZfU0hJRlQpICsgY2gyICsgVUNvbnZlcnRlclNoYXJlZERhdGEuU1VSUk9HQVRFX0xPV19CQVNFOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiByYW4gb3V0IG9mIHNvdXJjZSAqLworICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogV2UgY2Fubm90IGdldCBhbnkgbGFyZ2VyIHRoYW4gMTBGRkZGIGJlY2F1c2Ugd2UgYXJlIGNvbWluZyBmcm9tIFVURi0xNiAqLworICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKGNoID4+PiAxNiAmIDB4MUYpOworICAgICAgICAgICAgICAgIHRlbXBbMV0gPSAoYnl0ZSkgKGNoID4+PiA4KTsgIC8qIHVuc2lnbmVkIGNhc3QgaW1wbGljaXRseSBkb2VzIChjaCAmIEZGKSAqLworICAgICAgICAgICAgICAgIHRlbXBbMF0gPSAoYnl0ZSkgKGNoKTsgICAgICAgLyogdW5zaWduZWQgY2FzdCBpbXBsaWNpdGx5IGRvZXMgKGNoICYgRkYpICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW5kZXhUb1dyaXRlID0gMDsgaW5kZXhUb1dyaXRlIDw9IDM7IGluZGV4VG9Xcml0ZSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodGVtcFtpbmRleFRvV3JpdGVdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyW2Vycm9yQnVmZmVyTGVuZ3RoKytdID0gdGVtcFtpbmRleFRvV3JpdGVdOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihkb2xvb3ApIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG93c3Vyb2dhdGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaDIgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9ICgoY2ggLSBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfSElHSF9TVEFSVCkgPDwgVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9TSElGVCkgKyBjaDIgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfTE9XX0JBU0U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmFuIG91dCBvZiBzb3VyY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZsdXNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIFdlIGNhbm5vdCBnZXQgYW55IGxhcmdlciB0aGFuIDEwRkZGRiBiZWNhdXNlIHdlIGFyZSBjb21pbmcgZnJvbSBVVEYtMTYgKi8KKyAgICAgICAgICAgICAgICAgICAgdGVtcFsyXSA9IChieXRlKSAoY2ggPj4+IDE2ICYgMHgxRik7CisgICAgICAgICAgICAgICAgICAgIHRlbXBbMV0gPSAoYnl0ZSkgKGNoID4+PiA4KTsgIC8qIHVuc2lnbmVkIGNhc3QgaW1wbGljaXRseSBkb2VzIChjaCAmIEZGKSAqLworICAgICAgICAgICAgICAgICAgICB0ZW1wWzBdID0gKGJ5dGUpIChjaCk7ICAgICAgIC8qIHVuc2lnbmVkIGNhc3QgaW1wbGljaXRseSBkb2VzIChjaCAmIEZGKSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXhUb1dyaXRlID0gMDsgaW5kZXhUb1dyaXRlIDw9IDM7IGluZGV4VG9Xcml0ZSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0ZW1wW2luZGV4VG9Xcml0ZV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJMZW5ndGgrK10gPSB0ZW1wW2luZGV4VG9Xcml0ZV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmICF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlciBuZXdEZWNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXREZWNvZGVyVVRGMzJMRSh0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXIgbmV3RW5jb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RW5jb2RlclVURjMyTEUodGhpcyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjguamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEY4LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdkODRiYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEY4LmphdmEKQEAgLTAsMCArMSw0ODEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldERlY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisvKioKKyAqIEBhdXRob3IgTml0aSBIYW50YXdlZXBhbnQKKyAqLworY2xhc3MgQ2hhcnNldFVURjggZXh0ZW5kcyBDaGFyc2V0SUNVIHsKKyAgICAKKyAgICBwcm90ZWN0ZWQgYnl0ZVtdIGZyb21VU3Vic3RpdHV0aW9uID0gbmV3IGJ5dGVbXXsoYnl0ZSkweGVmLCAoYnl0ZSkweGJmLCAoYnl0ZSkweGJkfTsKKyAgICAKKyAgICBwdWJsaWMgQ2hhcnNldFVURjgoU3RyaW5nIGljdUNhbm9uaWNhbE5hbWUsIFN0cmluZyBqYXZhQ2Fub25pY2FsTmFtZSwgU3RyaW5nW10gYWxpYXNlcyl7CisgICAgICAgIHN1cGVyKGljdUNhbm9uaWNhbE5hbWUsIGphdmFDYW5vbmljYWxOYW1lLCBhbGlhc2VzKTsKKyAgICAgICAgbWF4Qnl0ZXNQZXJDaGFyID0gNDsKKyAgICAgICAgbWluQnl0ZXNQZXJDaGFyID0gMTsKKyAgICAgICAgbWF4Q2hhcnNQZXJCeXRlID0gMTsKKyAgICB9CisgICAgCisgICAgLyogVVRGLTggQ29udmVyc2lvbiBEQVRBCisgICAgICogICBmb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgVW5pY29kZSBTdHJhbmRhcmQgMi4wICwgVHJhbnNmb3JtYXRpb24gRm9ybWF0cyBBcHBlbmRpeCBBLTkKKyAgICAgKi8gICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPRkZTRVRTX0ZST01fVVRGOFtdID0gezAsCisgIAkgIDB4MDAwMDAwMDBMLCAweDAwMDAzMDgwTCwgMHgwMDBFMjA4MEwsCisgIAkgIDB4MDNDODIwODBMLCAweEZBMDgyMDgwTCwgMHg4MjA4MjA4MEx9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURVNfRlJPTV9VVEY4W10gPSAKKyAgICB7CisgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAorICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKKyAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCisgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAorICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLAorICAgICAgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNSwgNSwgNSwgNSwgNiwgNiwgMCwgMAorICAgIH07CisgICAgCisgICAgLyoKKwkgKiBTdGFydGluZyB3aXRoIFVuaWNvZGUgMy4wLjE6CisJICogVVRGLTggYnl0ZSBzZXF1ZW5jZXMgb2YgbGVuZ3RoIE4gX211c3RfIGVuY29kZSBjb2RlIHBvaW50cyBvZiBvciBhYm92ZSB1dGY4X21pbkNoYXIzMltOXTsKKwkgKiBieXRlIHNlcXVlbmNlcyB3aXRoIG1vcmUgdGhhbiA0IGJ5dGVzIGFyZSBpbGxlZ2FsIGluIFVURi04LAorCSAqIHdoaWNoIGlzIHRlc3RlZCB3aXRoIGltcG9zc2libGUgdmFsdWVzIGZvciB0aGVtCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBVVEY4X01JTl9DSEFSMzJbXSA9IHsgMEwsIDBMLCAweDgwTCwgMHg4MDBMLCAweDEwMDAwTCwgMHhmZmZmZmZmZkwsIDB4ZmZmZmZmZmZMIH07CisKKyAgICBjbGFzcyBDaGFyc2V0RGVjb2RlclVURjggZXh0ZW5kcyBDaGFyc2V0RGVjb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldERlY29kZXJVVEY4KENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgICAgIHN1cGVyKGNzKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZGVjb2RlTG9vcChCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRvZG86IENFU1U4IGltcGxlbWVudGF0aW9uCisgICAgICAgICAgICAvLyBib29sZWFuIGlzQ0VTVTggPSBhcmdzLmNvbnZlcnRlci5zaGFyZWREYXRhID09IF9DRVNVOERhdGE7CisgICAgICAgICAgICBib29sZWFuIGlzQ0VTVTggPSAoVUNvbnZlcnRlclNoYXJlZERhdGEuX0NFU1U4RGF0YSAhPSBudWxsKTsKKyAgICAgICAgICAgIGludCBjaCwgY2gyID0gMDsKKyAgICAJICAgIGludCBpLCBpbkJ5dGVzOyAgICAJICAKKyAgICAJICAgIAorCQkJZG9uZWZvcm5vdzoKKwkJCXsKKwkgICAgCSAgICBpZiAodG9Vbmljb2RlU3RhdHVzIT0wICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkKKwkgICAgCSAgICB7CisJCQkgICAgICAgIGluQnl0ZXMgPSBtb2RlOyAgICAgICAgICAgIAkvKiByZXN0b3JlICMgb2YgYnl0ZXMgdG8gY29uc3VtZSAqLworCQkJICAgICAgICBpID0gdG9VTGVuZ3RoOyAgICAgICAgICAgICAJLyogcmVzdG9yZSAjIG9mIGJ5dGVzIGNvbnN1bWVkICovCisJCQkKKwkgICAgCSAgICAgICAgY2ggPSB0b1VuaWNvZGVTdGF0dXM7CQkvKlN0b3JlcyB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGVkIGNoIGZyb20gYSBwcmV2aW91cyBjYWxsKi8KKwkgICAgCSAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gMDsKKworCQkJCQl3aGlsZSAoaSA8IGluQnl0ZXMpCisJCQkJCXsKKwkJCQkJCWlmIChzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKQorCQkJCQkJeworCQkJCQkJCXRvVUJ5dGVzQXJyYXlbaV0gPSAoYnl0ZSkgKGNoMiA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk7CisJCQkJCQkJaWYgKCFpc1RyYWlsKChieXRlKWNoMikpCisJCQkJCQkJeworCQkJCQkJCQlicmVhazsgLyogaSA8IGluQnl0ZXMgKi8KKwkJCQkJCQl9CisJCQkJCQkJY2ggPSAoY2ggPDwgNikgKyBjaDI7CisJCQkJCQkJKytzb3VyY2VBcnJheUluZGV4OworCQkJCQkJCWkrKzsKKwkJCQkJCX0KKwkJCQkJCWVsc2UKKwkJCQkJCXsKKwkJCQkJCQkvKiBzdG9yZXMgYSBwYXJ0aWFsbHkgY2FsY3VsYXRlZCB0YXJnZXQqLworCQkJCQkJCXRvVW5pY29kZVN0YXR1cyA9IGNoOworCQkJCQkJCW1vZGUgPSBpbkJ5dGVzOworCQkJCQkJCXRvVUxlbmd0aCA9IChieXRlKSBpOworCQkJCQkJCWJyZWFrIGRvbmVmb3Jub3c7CisJCQkJCQl9CisJCQkJCX0KKyAgICAgICAgICAgIAkKKyAgICAJICAgICAgICAgICAgLyogUmVtb3ZlIHRoZSBhY2N1bXVsYXRlZCBoaWdoIGJpdHMgKi8KKyAgICAJICAgICAgICAgICAgY2ggLT0gT0ZGU0VUU19GUk9NX1VURjhbaW5CeXRlc107CisgICAgCQorICAgIAkgICAgICAgICAgICAvKgorICAgIAkgICAgICAgICAgICAgKiBMZWdhbCBVVEYtOCBieXRlIHNlcXVlbmNlcyBpbiBVbmljb2RlIDMuMC4xIGFuZCB1cDoKKyAgICAJICAgICAgICAgICAgICogLSB1c2Ugb25seSB0cmFpbCBieXRlcyBhZnRlciBhIGxlYWQgYnl0ZSAoY2hlY2tlZCBhYm92ZSkKKyAgICAJICAgICAgICAgICAgICogLSB1c2UgdGhlIHJpZ2h0IG51bWJlciBvZiB0cmFpbCBieXRlcyBmb3IgYSBnaXZlbiBsZWFkIGJ5dGUKKyAgICAJICAgICAgICAgICAgICogLSBlbmNvZGUgYSBjb2RlIHBvaW50IDw9IFUrMTBmZmZmCisgICAgCSAgICAgICAgICAgICAqIC0gdXNlIHRoZSBmZXdlc3QgcG9zc2libGUgbnVtYmVyIG9mIGJ5dGVzIGZvciB0aGVpciBjb2RlIHBvaW50cworICAgIAkgICAgICAgICAgICAgKiAtIHVzZSBhdCBtb3N0IDQgYnl0ZXMgKGZvciBpPj01IGl0IGlzIDB4MTBmZmZmPHV0ZjhfbWluQ2hhcjMyW10pCisgICAgCSAgICAgICAgICAgICAqCisgICAgCSAgICAgICAgICAgICAqIFN0YXJ0aW5nIHdpdGggVW5pY29kZSAzLjIsIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBtdXN0IG5vdCBiZSBlbmNvZGVkIGluIFVURi04LgorICAgIAkgICAgICAgICAgICAgKiBUaGVyZSBhcmUgbm8gaXJyZWd1bGFyIHNlcXVlbmNlcyBhbnkgbW9yZS4KKyAgICAJICAgICAgICAgICAgICogSW4gQ0VTVS04LCBvbmx5IHN1cnJvZ2F0ZXMsIG5vdCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzLCBhcmUgZW5jb2RlZCBkaXJlY3RseS4KKyAgICAJICAgICAgICAgICAgICovCisgICAgCSAgICAgICAgICAgIGlmIChpID09IGluQnl0ZXMgJiYgY2ggPD0gVUNvbnZlcnRlclNoYXJlZERhdGEuTUFYSU1VTV9VVEYgJiYgY2ggPj0gVVRGOF9NSU5fQ0hBUjMyW2ldICYmIChpc0NFU1U4ID8gaSA8PSAzIDogIVVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWNoKSkpCisgICAgCSAgICAgICAgICAgIHsKKyAgICAJICAgICAgICAgICAgICAgIC8qIE5vcm1hbCB2YWxpZCBieXRlIHdoZW4gdGhlIGxvb3AgaGFzIG5vdCBwcmVtYXR1cmVseSB0ZXJtaW5hdGVkIChpIDwgaW5CeXRlcykgKi8KKyAgICAJICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IDA7CisgICAgCSAgICAgICAgICAgICAgICBpZiAoY2ggPD0gVUNvbnZlcnRlclNoYXJlZERhdGEuTUFYSU1VTV9VQ1MyKSAKKyAgICAJICAgICAgICAgICAgICAgIHsKKyAgICAJICAgICAgICAgICAgICAgICAgICAvKiBmaXRzIGluIDE2IGJpdHMgKi8KKyAgICAJICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKWNoKTsKKyAgICAJICAgICAgICAgICAgICAgIH0KKyAgICAJICAgICAgICAgICAgICAgIGVsc2UKKyAgICAJICAgICAgICAgICAgICAgIHsKKyAgICAJICAgICAgICAgICAgICAgICAgICAvKiB3cml0ZSBvdXQgdGhlIHN1cnJvZ2F0ZXMgKi8KKyAgICAJICAgICAgICAgICAgICAgICAgICBjaCAtPSBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX0JBU0U7CisgICAgCSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcikgKChjaCA+PiBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX1NISUZUKSArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9ISUdIX1NUQVJUKSk7CisgICAgCSAgICAgICAgICAgICAgICAgICAgY2ggPSAoY2ggJiBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX01BU0spICsgVUNvbnZlcnRlclNoYXJlZERhdGEuU1VSUk9HQVRFX0xPV19TVEFSVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiB0YXJnZXRDYXBhY2l0eT09MSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckFycmF5W2NoYXJFcnJvckJ1ZmZlckJlZ2luKzBdPShjaGFyKWNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCSAgICAgICAgICAgICAgICB9CisgICAgCSAgICAgICAgICAgIH0KKyAgICAJICAgICAgICAgICAgZWxzZQorICAgIAkgICAgICAgICAgICB7CisgICAgCSAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSAoYnl0ZSlpOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgCSAgICAgICAgICAgICAgICBicmVhayBkb25lZm9ybm93OworICAgIAkgICAgICAgICAgICB9CisgICAgICAgICAgICAJfSAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPCAweDgwKSAgICAgICAgLyogU2ltcGxlIGNhc2UgKi8KKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljaCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdG9yZSB0aGUgZmlyc3QgY2hhciAqLworICAgICAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVswXSA9IChieXRlKWNoOworICAgICAgICAgICAgICAgICAgICAgICAgaW5CeXRlcyA9IEJZVEVTX0ZST01fVVRGOFsoaW50KWNoXTsgLyogbG9va3VwIGN1cnJlbnQgc2VxdWVuY2UgbGVuZ3RoICovCisgICAgICAgICAgICAgICAgICAgICAgICBpID0gMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCBpbkJ5dGVzKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W2ldID0gKGJ5dGUpIChjaDIgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzVHJhaWwoKGJ5dGUpY2gyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8qIGkgPCBpbkJ5dGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSAoY2ggPDwgNikgKyBjaDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdG9yZXMgYSBwYXJ0aWFsbHkgY2FsY3VsYXRlZCB0YXJnZXQqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VuaWNvZGVTdGF0dXMgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IGluQnl0ZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBkb25lZm9ybm93OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVtb3ZlIHRoZSBhY2N1bXVsYXRlZCBoaWdoIGJpdHMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNoIC09IE9GRlNFVFNfRlJPTV9VVEY4W2luQnl0ZXNdOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogTGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZXMgaW4gVW5pY29kZSAzLjAuMSBhbmQgdXA6CisgICAgICAgICAgICAgICAgICAgICAgICAgKiAtIHVzZSBvbmx5IHRyYWlsIGJ5dGVzIGFmdGVyIGEgbGVhZCBieXRlIChjaGVja2VkIGFib3ZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICogLSB1c2UgdGhlIHJpZ2h0IG51bWJlciBvZiB0cmFpbCBieXRlcyBmb3IgYSBnaXZlbiBsZWFkIGJ5dGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIC0gZW5jb2RlIGEgY29kZSBwb2ludCA8PSBVKzEwZmZmZgorICAgICAgICAgICAgICAgICAgICAgICAgICogLSB1c2UgdGhlIGZld2VzdCBwb3NzaWJsZSBudW1iZXIgb2YgYnl0ZXMgZm9yIHRoZWlyIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAtIHVzZSBhdCBtb3N0IDQgYnl0ZXMgKGZvciBpPj01IGl0IGlzIDB4MTBmZmZmPHV0ZjhfbWluQ2hhcjMyW10pCisgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICogU3RhcnRpbmcgd2l0aCBVbmljb2RlIDMuMiwgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIG11c3Qgbm90IGJlIGVuY29kZWQgaW4gVVRGLTguCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGVyZSBhcmUgbm8gaXJyZWd1bGFyIHNlcXVlbmNlcyBhbnkgbW9yZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIENFU1UtOCwgb25seSBzdXJyb2dhdGVzLCBub3Qgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cywgYXJlIGVuY29kZWQgZGlyZWN0bHkuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09IGluQnl0ZXMgJiYgY2ggPD0gVUNvbnZlcnRlclNoYXJlZERhdGEuTUFYSU1VTV9VVEYgJiYgY2ggPj0gVVRGOF9NSU5fQ0hBUjMyW2ldICYmIChpc0NFU1U4ID8gaSA8PSAzIDogIVVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWNoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTm9ybWFsIHZhbGlkIGJ5dGUgd2hlbiB0aGUgbG9vcCBoYXMgbm90IHByZW1hdHVyZWx5IHRlcm1pbmF0ZWQgKGkgPCBpbkJ5dGVzKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDw9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLk1BWElNVU1fVUNTMikgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmaXRzIGluIDE2IGJpdHMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcikgY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3cml0ZSBvdXQgdGhlIHN1cnJvZ2F0ZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggLT0gVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9CQVNFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKSAoKGNoID4+PiBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX1NISUZUKSArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9ISUdIX1NUQVJUKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoICYgVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9NQVNLKSArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9MT1dfU1RBUlQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUmVtYWluaW5nKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUHV0IGluIG92ZXJmbG93IGJ1ZmZlciAobm90IGhhbmRsZWQgaGVyZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckFycmF5W2NoYXJFcnJvckJ1ZmZlckJlZ2luKzBdPShjaGFyKWNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpaTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKwkJCX0KKyAgICAgICAgCisgICAgCSAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmICF0YXJnZXQuaGFzUmVtYWluaW5nKCkpCisgICAgCSAgICB7CisgICAgCSAgICAgICAgLyogRW5kIG9mIHRhcmdldCBidWZmZXIgKi8KKyAgICAJICAgIAljciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgIAkgICAgfSAgICAgICAgCSAgICAgICAgCQorICAgICAgICAJCisgICAgCSAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgY2xhc3MgQ2hhcnNldEVuY29kZXJVVEY4IGV4dGVuZHMgQ2hhcnNldEVuY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXRFbmNvZGVyVVRGOChDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKyAgICAgICAgICAgIHN1cGVyLmltcGxSZXNldCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworCisgICAgICAgICAgICAvLyBUb2RvOiBDRVNVOCBpbXBsZW1lbnRhdGlvbgorICAgICAgICAgICAgLy8gYm9vbGVhbiBpc0NFU1U4ID0gYXJncy5jb252ZXJ0ZXIuc2hhcmVkRGF0YSA9PSBfQ0VTVThEYXRhOworICAgICAgICAgICAgYm9vbGVhbiBpc0NFU1U4ID0gKFVDb252ZXJ0ZXJTaGFyZWREYXRhLl9DRVNVOERhdGEgIT0gbnVsbCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjaDsKKyAgICAgICAgICAgIHNob3J0IGluZGV4VG9Xcml0ZTsKKyAgICAgICAgICAgIGJ5dGUgdGVtcFtdID0gbmV3IGJ5dGVbNF07CisgICAgICAgICAgICBib29sZWFuIGRvbG9vcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZnJvbVVDaGFyMzIgIT0gMCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpeworICAgICAgICAgICAgICAgIGNoID0gZnJvbVVDaGFyMzI7CisgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRlc3QgdGhlIGZvbGxvd2luZyBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KChjaGFyKWNoLCB0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IHRoaXMgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRoaXMgY29uZGl0aW9uIHRyZWUgKi8KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIGxlYWQgY29kZSB1bml0ICgxc3Qgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gKGludCljaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBubyBtb3JlIGlucHV0ICovCisgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gKGludCljaDsKKyAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoY2ggPCBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSl7CisgICAgICAgICAgICAgICAgICAgIGluZGV4VG9Xcml0ZSA9IDI7CisgICAgICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKChjaCA+Pj4gMTIpIHwgMHhlMCk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGluZGV4VG9Xcml0ZSA9IDM7CisgICAgICAgICAgICAgICAgICAgIHRlbXBbM10gPSAoYnl0ZSkgKChjaCA+Pj4gMTgpIHwgMHhmMCk7CisgICAgICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKCgoY2ggPj4+IDEyKSAmIDB4M2YpIHwgMHg4MCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlbXBbMV0gPSAoYnl0ZSkgKCgoY2ggPj4+IDYpICYgMHgzZikgfCAweDgwKTsKKyAgICAgICAgICAgICAgICB0ZW1wWzBdID0gKGJ5dGUpICgoY2ggJiAweDNmKSB8IDB4ODApOworICAgIAorICAgICAgICAgICAgICAgIGZvciAoOyBpbmRleFRvV3JpdGUgPj0gMDsgaW5kZXhUb1dyaXRlLS0peworICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodGVtcFtpbmRleFRvV3JpdGVdKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlcltlcnJvckJ1ZmZlckxlbmd0aCsrXSA9IHRlbXBbaW5kZXhUb1dyaXRlXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoZG9sb29wKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpeworICAgICAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHg4MCl7ICAgICAgICAvKiBTaW5nbGUgYnl0ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljaCk7CisgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmIChjaCA8IDB4ODAwKSB7ICAvKiBEb3VibGUgYnl0ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkgKChjaCA+Pj4gNikgfCAweGMwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSAoKGNoICYgMHgzZikgfCAweDgwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlclswXSA9IChieXRlKSAoKGNoICYgMHgzZikgfCAweDgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlckxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7IC8qIENoZWNrIGZvciBzdXJyb2dhdGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljaCkgJiYgIWlzQ0VTVTgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gpKSB7CisgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBmb2xsb3dpbmcgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpY2gsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NoMiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGlzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhpcyBjb25kaXRpb24gdHJlZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIGxlYWQgY29kZSB1bml0ICgxc3Qgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBtb3JlIGlucHV0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IChpbnQpY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4VG9Xcml0ZSA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFsyXSA9IChieXRlKSAoKGNoID4+PiAxMikgfCAweGUwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleFRvV3JpdGUgPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbM10gPSAoYnl0ZSkgKChjaCA+Pj4gMTgpIHwgMHhmMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFsyXSA9IChieXRlKSAoKChjaCA+Pj4gMTIpICYgMHgzZikgfCAweDgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbMV0gPSAoYnl0ZSkgKCgoY2ggPj4+IDYpICYgMHgzZikgfCAweDgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbMF0gPSAoYnl0ZSkgKChjaCAmIDB4M2YpIHwgMHg4MCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOyBpbmRleFRvV3JpdGUgPj0gMDsgaW5kZXhUb1dyaXRlLS0pCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodGVtcFtpbmRleFRvV3JpdGVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJMZW5ndGgrK10gPSB0ZW1wW2luZGV4VG9Xcml0ZV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiBzaW5nbGUtY29kZSBwb2ludCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisgICAgLyoKKyAgICAgKiBEb2VzIHRoaXMgY29kZSB1bml0IChieXRlKSBlbmNvZGUgYSBjb2RlIHBvaW50IGJ5IGl0c2VsZiAoVVMtQVNDSUkgMC4uMHg3Zik/CisgICAgICogQHBhcmFtIGMgOC1iaXQgY29kZSB1bml0IChieXRlKQorICAgICAqIEByZXR1cm4gVFJVRSBvciBGQUxTRQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgLy9zdGF0aWMgZmluYWwgYm9vbGVhbiBpc1NpbmdsZShieXRlIGMpIHtyZXR1cm4gKCgoYykmMHg4MCk9PTApO30KKworICAgIC8qCisgICAgICogSXMgdGhpcyBjb2RlIHVuaXQgKGJ5dGUpIGEgVVRGLTggbGVhZCBieXRlPworICAgICAqIEBwYXJhbSBjIDgtYml0IGNvZGUgdW5pdCAoYnl0ZSkKKyAgICAgKiBAcmV0dXJuIFRSVUUgb3IgRkFMU0UKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqLworICAgIC8vc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNMZWFkKGJ5dGUgYykge3JldHVybiAoKCgoYyktMHhjMCkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8MHgzZSk7fQorCisgICAgLyoqCisgICAgICogSXMgdGhpcyBjb2RlIHVuaXQgKGJ5dGUpIGEgVVRGLTggdHJhaWwgYnl0ZT8KKyAgICAgKiBAcGFyYW0gYyA4LWJpdCBjb2RlIHVuaXQgKGJ5dGUpCisgICAgICogQHJldHVybiBUUlVFIG9yIEZBTFNFCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1RyYWlsKGJ5dGUgYykge3JldHVybiAoKChjKSYweGMwKT09MHg4MCk7fQorCisgICAgLyoKKyAgICAgKiBIb3cgbWFueSBjb2RlIHVuaXRzIChieXRlcykgYXJlIHVzZWQgZm9yIHRoZSBVVEYtOCBlbmNvZGluZworICAgICAqIG9mIHRoaXMgVW5pY29kZSBjb2RlIHBvaW50PworICAgICAqIEBwYXJhbSBjIDMyLWJpdCBjb2RlIHBvaW50CisgICAgICogQHJldHVybiAxLi40LCBvciAwIGlmIGMgaXMgYSBzdXJyb2dhdGUgb3Igbm90IGEgVW5pY29kZSBjb2RlIHBvaW50CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICAvKnN0YXRpYyBmaW5hbCBpbnQgbGVuZ3RoKGludCBjKQorICAgIHsKKyAgICAJbG9uZyB1YyA9IGMgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLOworICAgIAlyZXR1cm4KKyAgICAgICAgKHVjPD0weDdmID8gMSA6IAorICAgICAgICAgICAgKHVjPD0weDdmZiA/IDIgOiAKKyAgICAgICAgICAgICAgICAodWM8PTB4ZDdmZiA/IDMgOiAKKyAgICAgICAgICAgICAgICAgICAgKHVjPD0weGRmZmYgfHwgdWM+MHgxMGZmZmYgPyAwIDogCisgICAgICAgICAgICAgICAgICAgICAgICAodWM8PTB4ZmZmZiA/IDMgOiA0KQorICAgICAgICAgICAgICAgICAgICApIAorICAgICAgICAgICAgICAgICkgCisgICAgICAgICAgICApIAorICAgICAgICApOworICAgIH0qLworICAgIAorICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlciBuZXdEZWNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXREZWNvZGVyVVRGOCh0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXIgbmV3RW5jb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RW5jb2RlclVURjgodGhpcyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlckFsaWFzLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyQWxpYXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGQzN2I1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlckFsaWFzLmphdmEKQEAgLTAsMCArMSw4MzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CisKK2ZpbmFsIGNsYXNzIFVDb252ZXJ0ZXJBbGlhcyB7CisgICAgc3RhdGljIGZpbmFsIGludCBVTk5PUk1BTElaRUQgPSAwOworCisgICAgc3RhdGljIGZpbmFsIGludCBTVERfTk9STUFMSVpFRCA9IDE7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IEFNQklHVU9VU19BTElBU19NQVBfQklUID0gMHg4MDAwOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09OVEFJTlNfT1BUSU9OX0JJVCA9IDB4NDAwMDsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09OVkVSVEVSX0lOREVYX01BU0sgPSAweEZGRjsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgTlVNX1JFU0VSVkVEX1RBR1MgPSAyOworCisgICAgc3RhdGljIGZpbmFsIGludCBOVU1fSElEREVOX1RBR1MgPSAxOworCisgICAgc3RhdGljIGludFtdIGdDb252ZXJ0ZXJMaXN0ID0gbnVsbDsKKworICAgIHN0YXRpYyBpbnRbXSBnVGFnTGlzdCA9IG51bGw7CisKKyAgICBzdGF0aWMgaW50W10gZ0FsaWFzTGlzdCA9IG51bGw7CisKKyAgICBzdGF0aWMgaW50W10gZ1VudGFnZ2VkQ29udkFycmF5ID0gbnVsbDsKKworICAgIHN0YXRpYyBpbnRbXSBnVGFnZ2VkQWxpYXNBcnJheSA9IG51bGw7CisKKyAgICBzdGF0aWMgaW50W10gZ1RhZ2dlZEFsaWFzTGlzdHMgPSBudWxsOworCisgICAgc3RhdGljIGludFtdIGdPcHRpb25UYWJsZSA9IG51bGw7CisKKyAgICBzdGF0aWMgYnl0ZVtdIGdTdHJpbmdUYWJsZSA9IG51bGw7CisKKyAgICBzdGF0aWMgYnl0ZVtdIGdOb3JtYWxpemVkU3RyaW5nVGFibGUgPSBudWxsOworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBHRVRfU1RSSU5HKGludCBpZHgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZ1N0cmluZ1RhYmxlLCAyICogaWR4LCAoaW50KSBzdHJsZW4oZ1N0cmluZ1RhYmxlLCAyICogaWR4KSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEdFVF9OT1JNQUxJWkVEX1NUUklORyhpbnQgaWR4KSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGdOb3JtYWxpemVkU3RyaW5nVGFibGUsIDIgKiBpZHgsIChpbnQpIHN0cmxlbihnTm9ybWFsaXplZFN0cmluZ1RhYmxlLCAyICogaWR4KSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgc3RybGVuKGJ5dGVbXSBzQXJyYXksIGludCBzQmVnaW4pCisgICAgeworICAgICAgICBpbnQgaSA9IHNCZWdpbjsKKyAgICAgICAgd2hpbGUoaSA8IHNBcnJheS5sZW5ndGggJiYgc0FycmF5W2krK10gIT0gMCkge30KKyAgICAgICAgcmV0dXJuIGkgLSBzQmVnaW4gLSAxOworICAgIH0KKworICAgIC8qcHJpdmF0ZSovIHN0YXRpYyBmaW5hbCBpbnQgdG9jTGVuZ3RoSW5kZXggPSAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNvbnZlcnRlckxpc3RJbmRleCA9IDE7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdGFnTGlzdEluZGV4ID0gMjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBhbGlhc0xpc3RJbmRleCA9IDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdW50YWdnZWRDb252QXJyYXlJbmRleCA9IDQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdGFnZ2VkQWxpYXNBcnJheUluZGV4ID0gNTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCB0YWdnZWRBbGlhc0xpc3RzSW5kZXggPSA2OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG9wdGlvblRhYmxlSW5kZXggPSA3OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHN0cmluZ1RhYmxlSW5kZXggPSA4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG5vcm1hbGl6ZWRTdHJpbmdUYWJsZUluZGV4ID0gOTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBtaW5Ub2NMZW5ndGggPSA5OyAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbWluLiB0b2NMZW5ndGggaW4gdGhlIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBkb2VzIG5vdCBjb3VudCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRvY0xlbmd0aEluZGV4IQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgb2Zmc2V0c0NvdW50ID0gbWluVG9jTGVuZ3RoICsgMTsgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBsZW5ndGggb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc3dhcHBlcidzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGVtcG9yYXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogb2Zmc2V0c1tdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICBzdGF0aWMgQnl0ZUJ1ZmZlciBnQWxpYXNEYXRhID0gbnVsbDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNBbGlhcyhTdHJpbmcgYWxpYXMpIHsKKyAgICAgICAgaWYgKGFsaWFzID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkFsaWFzIHBhcmFtIGlzIG51bGwhIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChhbGlhcy5sZW5ndGgoKSAhPSAwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ05WQUxJQVNfREFUQV9GSUxFX05BTUUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFICsgIi9jbnZhbGlhcy5pY3UiOworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBidWZmZXIgc2l6ZSBvZiBkYXRhZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTlZBTElBU19EQVRBX0JVRkZFUl9TSVpFID0gMjUwMDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgYm9vbGVhbiBoYXZlQWxpYXNEYXRhKCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgYm9vbGVhbiBuZWVkSW5pdDsKKworICAgICAgICAvLyBhZ2xqcG9ydDp0b2RvIHVtdHhfbG9jayhOVUxMKTsKKyAgICAgICAgbmVlZEluaXQgPSBnQWxpYXNEYXRhID09IG51bGw7CisKKyAgICAgICAgLyogbG9hZCBjb252ZXJ0ZXIgYWxpYXMgZGF0YSBmcm9tIGZpbGUgaWYgbmVjZXNzYXJ5ICovCisgICAgICAgIGlmIChuZWVkSW5pdCkgeworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBkYXRhID0gbnVsbDsKKyAgICAgICAgICAgIGludFtdIHRhYmxlQXJyYXkgPSBudWxsOworICAgICAgICAgICAgaW50IHRhYmxlU3RhcnQ7CisgICAgICAgICAgICAvL2J5dGVbXSByZXNlcnZlZEJ5dGVzID0gbnVsbDsKKworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oQ05WQUxJQVNfREFUQV9GSUxFX05BTUUpOworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSwgQ05WQUxJQVNfREFUQV9CVUZGRVJfU0laRSk7CisgICAgICAgICAgICBVQ29udmVydGVyQWxpYXNEYXRhUmVhZGVyIHJlYWRlciA9IG5ldyBVQ29udmVydGVyQWxpYXNEYXRhUmVhZGVyKGIpOworICAgICAgICAgICAgdGFibGVBcnJheSA9IHJlYWRlci5yZWFkVG9jKG9mZnNldHNDb3VudCk7CisKKyAgICAgICAgICAgIHRhYmxlU3RhcnQgPSB0YWJsZUFycmF5WzBdOworICAgICAgICAgICAgaWYgKHRhYmxlU3RhcnQgPCBtaW5Ub2NMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgZGF0YSBmb3JtYXQuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnQ29udmVydGVyTGlzdCA9IG5ldyBpbnRbKGludCl0YWJsZUFycmF5W2NvbnZlcnRlckxpc3RJbmRleF1dOworICAgICAgICAgICAgZ1RhZ0xpc3Q9IG5ldyBpbnRbKGludCl0YWJsZUFycmF5W3RhZ0xpc3RJbmRleF1dOworICAgICAgICAgICAgZ0FsaWFzTGlzdCA9IG5ldyBpbnRbKGludCl0YWJsZUFycmF5W2FsaWFzTGlzdEluZGV4XV07CisgICAgICAgICAgICBnVW50YWdnZWRDb252QXJyYXkgPSBuZXcgaW50WyhpbnQpdGFibGVBcnJheVt1bnRhZ2dlZENvbnZBcnJheUluZGV4XV07CisgICAgICAgICAgICBnVGFnZ2VkQWxpYXNBcnJheSA9IG5ldyBpbnRbKGludCl0YWJsZUFycmF5W3RhZ2dlZEFsaWFzQXJyYXlJbmRleF1dOworICAgICAgICAgICAgZ1RhZ2dlZEFsaWFzTGlzdHMgPSBuZXcgaW50WyhpbnQpdGFibGVBcnJheVt0YWdnZWRBbGlhc0xpc3RzSW5kZXhdXTsKKyAgICAgICAgICAgIGdPcHRpb25UYWJsZSA9IG5ldyBpbnRbKGludCl0YWJsZUFycmF5W29wdGlvblRhYmxlSW5kZXhdXTsKKyAgICAgICAgICAgIGdTdHJpbmdUYWJsZSA9IG5ldyBieXRlWyhpbnQpdGFibGVBcnJheVtzdHJpbmdUYWJsZUluZGV4XSoyXTsKKyAgICAgICAgICAgIGdOb3JtYWxpemVkU3RyaW5nVGFibGUgPSBuZXcgYnl0ZVsoaW50KXRhYmxlQXJyYXlbbm9ybWFsaXplZFN0cmluZ1RhYmxlSW5kZXhdKjJdOworCisgICAgICAgICAgICByZWFkZXIucmVhZChnQ29udmVydGVyTGlzdCwgZ1RhZ0xpc3QsCisgICAgICAgICAgICAgICAgICAgIGdBbGlhc0xpc3QsIGdVbnRhZ2dlZENvbnZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgZ1RhZ2dlZEFsaWFzQXJyYXksIGdUYWdnZWRBbGlhc0xpc3RzLAorICAgICAgICAgICAgICAgICAgICBnT3B0aW9uVGFibGUsIGdTdHJpbmdUYWJsZSwgZ05vcm1hbGl6ZWRTdHJpbmdUYWJsZSk7CisgICAgICAgICAgICBkYXRhID0gIEJ5dGVCdWZmZXIuYWxsb2NhdGUoMCk7IC8vIGR1bW15IFVEYXRhTWVtb3J5IG9iamVjdCBpbiBhYnNlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgbWVtb3J5IG1hcHBpbmcKKworICAgICAgICAgICAgaWYgKGdPcHRpb25UYWJsZVswXSAhPSBTVERfTk9STUFMSVpFRCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiVW5zdXBwb3J0ZWQgYWxpYXMgbm9ybWFsaXphdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhZ2xqcG9ydDp0b2RvIHVtdHhfbG9jayhOVUxMKTsKKyAgICAgICAgICAgIGlmIChnQWxpYXNEYXRhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBnQWxpYXNEYXRhID0gZGF0YTsKKyAgICAgICAgICAgICAgICBkYXRhID0gbnVsbDsKKworICAgICAgICAgICAgICAgIC8vIGFnbGpwb3J0OmZpeCB1Y2xuX2NvbW1vbl9yZWdpc3RlckNsZWFudXAoVUNMTl9DT01NT05fSU8sCisgICAgICAgICAgICAgICAgLy8gaW9fY2xlYW51cCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhZ2xqcG9ydDp0b2RvIHVtdHhfdW5sb2NrKE5VTEwpOworCisgICAgICAgICAgICAvKiBpZiBhIGRpZmZlcmVudCB0aHJlYWQgc2V0IGl0IGZpcnN0LCB0aGVuIGNsb3NlIHRoZSBleHRyYSBkYXRhICovCisgICAgICAgICAgICBpZiAoZGF0YSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gYWdsanBvcnQ6Zml4IHVkYXRhX2Nsb3NlKGRhdGEpOyAvKiBOVUxMIGlmIGl0IHdhcyBzZXQKKyAgICAgICAgICAgICAgICAvLyBjb3JyZWN0bHkgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8vIFVfQ0ZVTkMgY29uc3QgY2hhciAqIGlvX2dldENvbnZlcnRlck5hbWUoY29uc3QgY2hhciAqYWxpYXMsIFVFcnJvckNvZGUKKyAgICAvLyAqcEVycm9yQ29kZSkKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBpb19nZXRDb252ZXJ0ZXJOYW1lKFN0cmluZyBhbGlhcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSAmJiBpc0FsaWFzKGFsaWFzKSkgeworICAgICAgICAgICAgYm9vbGVhbltdIGlzQW1iaWdvdXMgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgICAgIGludCBjb252TnVtID0gZmluZENvbnZlcnRlcihhbGlhcywgaXNBbWJpZ291cyk7CisgICAgICAgICAgICBpZiAoY29udk51bSA8IGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBHRVRfU1RSSU5HKGdDb252ZXJ0ZXJMaXN0WyhpbnQpIGNvbnZOdW1dKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIGVsc2UgY29udmVydGVyIG5vdCBmb3VuZCAqLworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qCisgICAgICogc2VhcmNoIGZvciBhbiBhbGlhcyByZXR1cm4gdGhlIGNvbnZlcnRlciBudW1iZXIgaW5kZXggZm9yIGdDb252ZXJ0ZXJMaXN0CisgICAgICovCisgICAgLy8gc3RhdGljIFVfSU5MSU5FIHVpbnQzMl90IGZpbmRDb252ZXJ0ZXIoY29uc3QgY2hhciAqYWxpYXMsIFVFcnJvckNvZGUKKyAgICAvLyAqcEVycm9yQ29kZSkKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZmluZENvbnZlcnRlcihTdHJpbmcgYWxpYXMsIGJvb2xlYW5bXSBpc0FtYmlnb3VzKSB7CisgICAgICAgIGludCBtaWQsIHN0YXJ0LCBsaW1pdDsKKyAgICAgICAgaW50IGxhc3RNaWQ7CisgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJpcHBlZE5hbWUgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZyBhbGlhc1RvQ29tcGFyZTsKKworICAgICAgICBzdHJpcEZvckNvbXBhcmUoc3RyaXBwZWROYW1lLCBhbGlhcyk7CisgICAgICAgIGFsaWFzID0gc3RyaXBwZWROYW1lLnRvU3RyaW5nKCk7CisKKyAgICAgICAgLyogZG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUgYWxpYXMgKi8KKyAgICAgICAgc3RhcnQgPSAwOworICAgICAgICBsaW1pdCA9IGdVbnRhZ2dlZENvbnZBcnJheS5sZW5ndGg7CisgICAgICAgIG1pZCA9IGxpbWl0OworICAgICAgICBsYXN0TWlkID0gSW50ZWdlci5NQVhfVkFMVUU7CisKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbWlkID0gKHN0YXJ0ICsgbGltaXQpIC8gMjsKKyAgICAgICAgICAgIGlmIChsYXN0TWlkID09IG1pZCkgeyAvKiBIYXZlIHdlIG1vdmVkPyAqLworICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBXZSBoYXZlbid0IG1vdmVkLCBhbmQgaXQgd2Fzbid0IGZvdW5kLiAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdE1pZCA9IG1pZDsKKyAgICAgICAgICAgIGFsaWFzVG9Db21wYXJlID0gR0VUX05PUk1BTElaRURfU1RSSU5HKGdBbGlhc0xpc3RbKGludCkgbWlkXSk7CisgICAgICAgICAgICByZXN1bHQgPSBhbGlhcy5jb21wYXJlVG8oYWxpYXNUb0NvbXBhcmUpOworCisgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgIGxpbWl0ID0gbWlkOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPiAwKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogU2luY2UgdGhlIGdlbmNudmFsIHRvb2wgZm9sZHMgZHVwbGljYXRlcyBpbnRvIG9uZSBlbnRyeSwgdGhpcworICAgICAgICAgICAgICAgICAqIGFsaWFzIGluIGdBbGlhc0xpc3QgaXMgdW5pcXVlLCBidXQgZGlmZmVyZW50IHN0YW5kYXJkcyBtYXkKKyAgICAgICAgICAgICAgICAgKiBtYXAgYW4gYWxpYXMgdG8gZGlmZmVyZW50IGNvbnZlcnRlcnMuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYgKChnVW50YWdnZWRDb252QXJyYXlbKGludCkgbWlkXSAmIEFNQklHVU9VU19BTElBU19NQVBfQklUKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlzQW1iaWdvdXNbMF09dHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogU3RhdGUgd2hldGhlciB0aGUgY2Fub25pY2FsIGNvbnZlcnRlciBuYW1lIGNvbnRhaW5zIGFuIG9wdGlvbi4KKyAgICAgICAgICAgICAgICBUaGlzIGluZm9ybWF0aW9uIGlzIGNvbnRhaW5lZCBpbiB0aGlzIGxpc3QgaW4gb3JkZXIgdG8gbWFpbnRhaW4gYmFja3dhcmQgJiBmb3J3YXJkIGNvbXBhdGliaWxpdHkuICovCisgICAgICAgICAgICAgICAgLyppZiAoY29udGFpbnNPcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgVUJvb2wgY29udGFpbnNDbnZPcHRpb25JbmZvID0gKFVCb29sKWdNYWluVGFibGUub3B0aW9uVGFibGUtPmNvbnRhaW5zQ252T3B0aW9uSW5mbzsKKyAgICAgICAgICAgICAgICAgICAgKmNvbnRhaW5zT3B0aW9uID0gKFVCb29sKSgoY29udGFpbnNDbnZPcHRpb25JbmZvCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAoKGdNYWluVGFibGUudW50YWdnZWRDb252QXJyYXlbbWlkXSAmIFVDTlZfQ09OVEFJTlNfT1BUSU9OX0JJVCkgIT0gMCkpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAhY29udGFpbnNDbnZPcHRpb25JbmZvKTsKKyAgICAgICAgICAgICAgICB9Ki8KKyAgICAgICAgICAgICAgICByZXR1cm4gZ1VudGFnZ2VkQ29udkFycmF5WyhpbnQpIG1pZF0gJiBDT05WRVJURVJfSU5ERVhfTUFTSzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgfQorCisgICAgLyoqCisgICAgICogc3RyaXBGb3JDb21wYXJlIFJlbW92ZSB0aGUgdW5kZXJzY29yZXMsIGRhc2hlcyBhbmQgc3BhY2VzIGZyb20KKyAgICAgKiB0aGUgbmFtZSwgYW5kIGNvbnZlcnQgdGhlIG5hbWUgdG8gbG93ZXIgY2FzZS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZHN0IFRoZSBkZXN0aW5hdGlvbiBidWZmZXIsIHdoaWNoIGlzIDw9IHRoZSBidWZmZXIgb2YgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgYWxpYXMgdG8gc3RyaXAKKyAgICAgKiBAcmV0dXJuIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdCdWZmZXIgc3RyaXBGb3JDb21wYXJlKFN0cmluZ0J1ZmZlciBkc3QsIFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiBpb19zdHJpcEFTQ0lJRm9yQ29tcGFyZShkc3QsIG5hbWUpOworICAgIH0KKworICAgIC8vIGVudW0geworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgSUdOT1JFID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIFpFUk8gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgTk9OWkVSTyA9IDI7CisgICAgc3RhdGljIGZpbmFsIGJ5dGUgTUlOTEVUVEVSID0gMzsgLyogYW55IHZhbHVlcyBmcm9tIGhlcmUgb24gYXJlIGxvd2VyY2FzZSBsZXR0ZXIgbWFwcGluZ3MgKi8KKyAgICAvLyB9CisgICAgCisgICAgLyogY2hhcmFjdGVyIHR5cGVzIGZvciBBU0NJSSAwMC4uN0YgKi8KKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBhc2NpaVR5cGVzW10gPSBuZXcgYnl0ZVtdIHsKKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgWkVSTywgTk9OWkVSTywgTk9OWkVSTywgTk9OWkVSTywgTk9OWkVSTywgTk9OWkVSTywgTk9OWkVSTywgTk9OWkVSTywgTk9OWkVSTywgTk9OWkVSTywgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgMCwgMHg2MSwgMHg2MiwgMHg2MywgMHg2NCwgMHg2NSwgMHg2NiwgMHg2NywgMHg2OCwgMHg2OSwgMHg2YSwgMHg2YiwgMHg2YywgMHg2ZCwgMHg2ZSwgMHg2ZiwKKyAgICAgICAgMHg3MCwgMHg3MSwgMHg3MiwgMHg3MywgMHg3NCwgMHg3NSwgMHg3NiwgMHg3NywgMHg3OCwgMHg3OSwgMHg3YSwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgMCwgMHg2MSwgMHg2MiwgMHg2MywgMHg2NCwgMHg2NSwgMHg2NiwgMHg2NywgMHg2OCwgMHg2OSwgMHg2YSwgMHg2YiwgMHg2YywgMHg2ZCwgMHg2ZSwgMHg2ZiwKKyAgICAgICAgMHg3MCwgMHg3MSwgMHg3MiwgMHg3MywgMHg3NCwgMHg3NSwgMHg3NiwgMHg3NywgMHg3OCwgMHg3OSwgMHg3YSwgMCwgMCwgMCwgMCwgMAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEdFVF9DSEFSX1RZUEUoY2hhciBjKSB7CisgICAgICAgIHJldHVybiAoY2hhcikoKGMgPCBhc2NpaVR5cGVzLmxlbmd0aCkgPyBhc2NpaVR5cGVzW2NdIDogKGNoYXIpSUdOT1JFKTsKKyAgICB9CisgICAgCisgICAgLyoqIEBzZWUgVUNvbnZlcnRlckFsaWFzI2NvbXBhcmVOYW1lcyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ0J1ZmZlciBpb19zdHJpcEFTQ0lJRm9yQ29tcGFyZShTdHJpbmdCdWZmZXIgZHN0LCBTdHJpbmcgbmFtZSkgeworICAgICAgICBpbnQgbmFtZUluZGV4ID0gMDsKKyAgICAgICAgY2hhciB0eXBlLCBuZXh0VHlwZTsKKyAgICAgICAgY2hhciBjMTsKKyAgICAgICAgYm9vbGVhbiBhZnRlckRpZ2l0ID0gZmFsc2U7CisKKyAgICAgICAgd2hpbGUgKG5hbWVJbmRleCA8IG5hbWUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGMxID0gbmFtZS5jaGFyQXQobmFtZUluZGV4KyspOworICAgICAgICAgICAgdHlwZSA9IEdFVF9DSEFSX1RZUEUoYzEpOworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIElHTk9SRToKKyAgICAgICAgICAgICAgICBhZnRlckRpZ2l0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY29udGludWU7IC8qIGlnbm9yZSBhbGwgYnV0IGxldHRlcnMgYW5kIGRpZ2l0cyAqLworICAgICAgICAgICAgY2FzZSBaRVJPOgorICAgICAgICAgICAgICAgIGlmICghYWZ0ZXJEaWdpdCAmJiBuYW1lSW5kZXggPCBuYW1lLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRUeXBlID0gR0VUX0NIQVJfVFlQRShuYW1lLmNoYXJBdChuYW1lSW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRUeXBlID09IFpFUk8gfHwgbmV4dFR5cGUgPT0gTk9OWkVSTykgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8qIGlnbm9yZSBsZWFkaW5nIHplcm8gYmVmb3JlIGFub3RoZXIgZGlnaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTk9OWkVSTzoKKyAgICAgICAgICAgICAgICBhZnRlckRpZ2l0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYzEgPSAoY2hhcil0eXBlOyAvKiBsb3dlcmNhc2VkIGxldHRlciAqLworICAgICAgICAgICAgICAgIGFmdGVyRGlnaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRzdC5hcHBlbmQoYzEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkc3Q7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG8gYSBmdXp6eSBjb21wYXJlIG9mIGEgdHdvIGNvbnZlcnRlci9hbGlhcyBuYW1lcy4gVGhlIGNvbXBhcmlzb24gaXMKKyAgICAgKiBjYXNlLWluc2Vuc2l0aXZlLiBJdCBhbHNvIGlnbm9yZXMgdGhlIGNoYXJhY3RlcnMgJy0nLCAnXycsIGFuZCAnICcgKGRhc2gsCisgICAgICogdW5kZXJzY29yZSwgYW5kIHNwYWNlKS4gVGh1cyB0aGUgc3RyaW5ncyAiVVRGLTgiLCAidXRmXzgiLCBhbmQgIlV0ZiA4IgorICAgICAqIGFyZSBleGFjdGx5IGVxdWl2YWxlbnQuCisgICAgICogCisgICAgICogVGhpcyBpcyBhIHN5bW1ldHJpY2FsIChjb21tdXRhdGl2ZSkgb3BlcmF0aW9uOyBvcmRlciBvZiBhcmd1bWVudHMgaXMKKyAgICAgKiBpbnNpZ25pZmljYW50LiBUaGlzIGlzIGFuIGltcG9ydGFudCBwcm9wZXJ0eSBmb3Igc29ydGluZyB0aGUgbGlzdCAod2hlbgorICAgICAqIHRoZSBsaXN0IGlzIHByZXByb2Nlc3NlZCBpbnRvIGJpbmFyeSBmb3JtKSBhbmQgZm9yIHBlcmZvcm1pbmcgYmluYXJ5CisgICAgICogc2VhcmNoZXMgb24gaXQgYXQgcnVuIHRpbWUuCisgICAgICogCisgICAgICogQHBhcmFtIG5hbWUxCisgICAgICogICAgICAgICAgICBhIGNvbnZlcnRlciBuYW1lIG9yIGFsaWFzLCB6ZXJvLXRlcm1pbmF0ZWQKKyAgICAgKiBAcGFyYW0gbmFtZTIKKyAgICAgKiAgICAgICAgICAgIGEgY29udmVydGVyIG5hbWUgb3IgYWxpYXMsIHplcm8tdGVybWluYXRlZAorICAgICAqIEByZXR1cm4gMCBpZiB0aGUgbmFtZXMgbWF0Y2gsIG9yIGEgbmVnYXRpdmUgdmFsdWUgaWYgdGhlIG5hbWUxIGxleGljYWxseQorICAgICAqICAgICAgICAgcHJlY2VkZXMgbmFtZTIsIG9yIGEgcG9zaXRpdmUgdmFsdWUgaWYgdGhlIG5hbWUxIGxleGljYWxseQorICAgICAqICAgICAgICAgZm9sbG93cyBuYW1lMi4KKyAgICAgKiAKKyAgICAgKiBAc2VlIFVDb252ZXJ0ZXJBbGlhcyNzdHJpcEZvckNvbXBhcmUKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IGNvbXBhcmVOYW1lcyhTdHJpbmcgbmFtZTEsIFN0cmluZyBuYW1lMil7CisgICAgICAgIGludCByYywgbmFtZTFJbmRleCA9IDAsIG5hbWUySW5kZXggPSAwOworICAgICAgICBjaGFyIHR5cGUsIG5leHRUeXBlOworICAgICAgICBjaGFyIGMxID0gMCwgYzIgPSAwOworICAgICAgICBib29sZWFuIGFmdGVyRGlnaXQxID0gZmFsc2UsIGFmdGVyRGlnaXQyID0gZmFsc2U7CisKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgd2hpbGUgKG5hbWUxSW5kZXggPCBuYW1lMS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGMxID0gbmFtZTEuY2hhckF0KG5hbWUxSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgdHlwZSA9IEdFVF9DSEFSX1RZUEUoYzEpOworICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgICAgIGNhc2UgSUdOT1JFOgorICAgICAgICAgICAgICAgICAgICBhZnRlckRpZ2l0MSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLyogaWdub3JlIGFsbCBidXQgbGV0dGVycyBhbmQgZGlnaXRzICovCisgICAgICAgICAgICAgICAgY2FzZSBaRVJPOgorICAgICAgICAgICAgICAgICAgICBpZiAoIWFmdGVyRGlnaXQxICYmIG5hbWUxSW5kZXggPCBuYW1lMS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFR5cGUgPSBHRVRfQ0hBUl9UWVBFKG5hbWUxLmNoYXJBdChuYW1lMUluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFR5cGUgPT0gWkVSTyB8fCBuZXh0VHlwZSA9PSBOT05aRVJPKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8qIGlnbm9yZSBsZWFkaW5nIHplcm8gYmVmb3JlIGFub3RoZXIgZGlnaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5PTlpFUk86CisgICAgICAgICAgICAgICAgICAgIGFmdGVyRGlnaXQxID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYzEgPSAoY2hhcil0eXBlOyAvKiBsb3dlcmNhc2VkIGxldHRlciAqLworICAgICAgICAgICAgICAgICAgICBhZnRlckRpZ2l0MSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7IC8qIGRlbGl2ZXIgYzEgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChuYW1lMkluZGV4IDwgbmFtZTIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjMiA9IG5hbWUyLmNoYXJBdChuYW1lMkluZGV4KyspOworICAgICAgICAgICAgICAgIHR5cGUgPSBHRVRfQ0hBUl9UWVBFKGMyKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIElHTk9SRToKKyAgICAgICAgICAgICAgICAgICAgYWZ0ZXJEaWdpdDIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8qIGlnbm9yZSBhbGwgYnV0IGxldHRlcnMgYW5kIGRpZ2l0cyAqLworICAgICAgICAgICAgICAgIGNhc2UgWkVSTzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhZnRlckRpZ2l0MiAmJiBuYW1lMUluZGV4IDwgbmFtZTEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRUeXBlID0gR0VUX0NIQVJfVFlQRShuYW1lMi5jaGFyQXQobmFtZTJJbmRleCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRUeXBlID09IFpFUk8gfHwgbmV4dFR5cGUgPT0gTk9OWkVSTykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBpZ25vcmUgbGVhZGluZyB6ZXJvIGJlZm9yZSBhbm90aGVyIGRpZ2l0ICovCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOT05aRVJPOgorICAgICAgICAgICAgICAgICAgICBhZnRlckRpZ2l0MiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGMyID0gKGNoYXIpdHlwZTsgLyogbG93ZXJjYXNlZCBsZXR0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgYWZ0ZXJEaWdpdDIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBkZWxpdmVyIGMyICovCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIElmIHdlIHJlYWNoIHRoZSBlbmRzIG9mIGJvdGggc3RyaW5ncyB0aGVuIHRoZXkgbWF0Y2ggKi8KKyAgICAgICAgICAgIGlmIChuYW1lMUluZGV4ID49IG5hbWUxLmxlbmd0aCgpICYmIG5hbWUySW5kZXggPj0gbmFtZTIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogQ2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uICovCisgICAgICAgICAgICByYyA9IChpbnQpYzEgLSAoaW50KWMyOworICAgICAgICAgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgaW50IGlvX2NvdW50QWxpYXNlcyhTdHJpbmcgYWxpYXMpIAorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpZiAoaGF2ZUFsaWFzRGF0YSgpICYmIGlzQWxpYXMoYWxpYXMpKSB7CisgICAgICAgICAgICBib29sZWFuW10gaXNBbWJpZ291cyA9IG5ldyBib29sZWFuWzFdOworICAgICAgICAgICAgaW50IGNvbnZOdW0gPSBmaW5kQ29udmVydGVyKGFsaWFzLCBpc0FtYmlnb3VzKTsKKyAgICAgICAgICAgIGlmIChjb252TnVtIDwgZ0NvbnZlcnRlckxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLyogdGFnTGlzdE51bSAtIDEgaXMgdGhlIEFMTCB0YWcgKi8KKyAgICAgICAgICAgICAgICBpbnQgbGlzdE9mZnNldCA9IGdUYWdnZWRBbGlhc0FycmF5WyhpbnQpICgoZ1RhZ0xpc3QubGVuZ3RoIC0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICogZ0NvbnZlcnRlckxpc3QubGVuZ3RoICsgY29udk51bSldOworCisgICAgICAgICAgICAgICAgaWYgKGxpc3RPZmZzZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ1RhZ2dlZEFsaWFzTGlzdHNbbGlzdE9mZnNldF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIGVsc2UgdGhpcyBzaG91bGRuJ3QgaGFwcGVuLiBpbnRlcm5hbCBwcm9ncmFtIGVycm9yICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBlbHNlIGNvbnZlcnRlciBub3QgZm91bmQgKi8KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBhbGwgYWxpYXNlcyAoYW5kIGNvbnZlcnRlciBuYW1lcykuCisgICAgICogCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGFsbCBhbGlhc2VzCisgICAgICovCisgICAgLy8gVV9DRlVOQyB1aW50MTZfdCBpb19jb3VudFRvdGFsQWxpYXNlcyhVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKyAgICBzdGF0aWMgaW50IGlvX2NvdW50VG90YWxBbGlhc2VzKCkgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpZiAoaGF2ZUFsaWFzRGF0YSgpKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgZ0FsaWFzTGlzdC5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLy8gVV9DRlVOQyBjb25zdCBjaGFyICogaW9fZ2V0QWxpYXMoY29uc3QgY2hhciAqYWxpYXMsIHVpbnQxNl90IG4sCisgICAgLy8gVUVycm9yQ29kZSAqcEVycm9yQ29kZSkKKyAgICBzdGF0aWMgU3RyaW5nIGlvX2dldEFsaWFzKFN0cmluZyBhbGlhcywgaW50IG4pIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSAmJiBpc0FsaWFzKGFsaWFzKSkgeworICAgICAgICAgICAgYm9vbGVhbltdIGlzQW1iaWdvdXMgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgICAgIGludCBjb252TnVtID0gZmluZENvbnZlcnRlcihhbGlhcyxpc0FtYmlnb3VzKTsKKyAgICAgICAgICAgIGlmIChjb252TnVtIDwgZ0NvbnZlcnRlckxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLyogdGFnTGlzdE51bSAtIDEgaXMgdGhlIEFMTCB0YWcgKi8KKyAgICAgICAgICAgICAgICBpbnQgbGlzdE9mZnNldCA9IGdUYWdnZWRBbGlhc0FycmF5WyhpbnQpICgoZ1RhZ0xpc3QubGVuZ3RoIC0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICogZ0NvbnZlcnRlckxpc3QubGVuZ3RoICsgY29udk51bSldOworCisgICAgICAgICAgICAgICAgaWYgKGxpc3RPZmZzZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvL2ludCBsaXN0Q291bnQgPSBnVGFnZ2VkQWxpYXNMaXN0c0FycmF5W2xpc3RPZmZzZXRdOworICAgICAgICAgICAgICAgICAgICAvKiArMSB0byBza2lwIGxpc3RDb3VudCAqLworICAgICAgICAgICAgICAgICAgICBpbnRbXSBjdXJyTGlzdEFycmF5ID0gZ1RhZ2dlZEFsaWFzTGlzdHM7CisgICAgICAgICAgICAgICAgICAgIGludCBjdXJyTGlzdEFycmF5SW5kZXggPSBsaXN0T2Zmc2V0ICsgMTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gR0VUX1NUUklORyhjdXJyTGlzdEFycmF5W2N1cnJMaXN0QXJyYXlJbmRleCArIG5dKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIGVsc2UgdGhpcyBzaG91bGRuJ3QgaGFwcGVuLiBpbnRlcm5hbCBwcm9ncmFtIGVycm9yICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBlbHNlIGNvbnZlcnRlciBub3QgZm91bmQgKi8KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvLyBVX0NGVU5DIHVpbnQxNl90IGlvX2NvdW50U3RhbmRhcmRzKFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICBzdGF0aWMgaW50IGlvX2NvdW50U3RhbmRhcmRzKCkgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpZiAoaGF2ZUFsaWFzRGF0YSgpKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgKGdUYWdMaXN0Lmxlbmd0aCAtIE5VTV9ISURERU5fVEFHUyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLy8gVV9DQVBJIGNvbnN0IGNoYXIgKiBVX0VYUE9SVDJnZXRTdGFuZGFyZCh1aW50MTZfdCBuLCBVRXJyb3JDb2RlCisgICAgLy8gKnBFcnJvckNvZGUpCisgICAgc3RhdGljIFN0cmluZyBnZXRTdGFuZGFyZChpbnQgbikgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpZiAoaGF2ZUFsaWFzRGF0YSgpKSB7CisgICAgICAgICAgICByZXR1cm4gR0VUX1NUUklORyhnVGFnTGlzdFtuXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gVV9DQVBJIGNvbnN0IGNoYXIgKiBVX0VYUE9SVDIgZ2V0U3RhbmRhcmROYW1lKGNvbnN0IGNoYXIgKmFsaWFzLCBjb25zdAorICAgIC8vIGNoYXIgKnN0YW5kYXJkLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ2V0U3RhbmRhcmROYW1lKFN0cmluZyBhbGlhcywgU3RyaW5nIHN0YW5kYXJkKXRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChoYXZlQWxpYXNEYXRhKCkgJiYgaXNBbGlhcyhhbGlhcykpIHsKKyAgICAgICAgICAgIGludCBsaXN0T2Zmc2V0ID0gZmluZFRhZ2dlZEFsaWFzTGlzdHNPZmZzZXQoYWxpYXMsIHN0YW5kYXJkKTsKKworICAgICAgICAgICAgaWYgKDAgPCBsaXN0T2Zmc2V0ICYmIGxpc3RPZmZzZXQgPCBnVGFnZ2VkQWxpYXNMaXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBpbnRbXSBjdXJyTGlzdEFycmF5ID0gZ1RhZ2dlZEFsaWFzTGlzdHM7CisgICAgICAgICAgICAgICAgaW50IGN1cnJMaXN0QXJyYXlJbmRleCA9IGxpc3RPZmZzZXQgKyAxOworICAgICAgICAgICAgICAgIGlmIChjdXJyTGlzdEFycmF5WzBdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdFVF9TVFJJTkcoY3Vyckxpc3RBcnJheVsoaW50KSBjdXJyTGlzdEFycmF5SW5kZXhdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gVV9DQVBJIHVpbnQxNl90IFVfRVhQT1JUMiBjb3VudEFsaWFzZXMoY29uc3QgY2hhciAqYWxpYXMsIFVFcnJvckNvZGUKKyAgICAvLyAqcEVycm9yQ29kZSkKKyAgICBzdGF0aWMgaW50IGNvdW50QWxpYXNlcyhTdHJpbmcgYWxpYXMpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIGlvX2NvdW50QWxpYXNlcyhhbGlhcyk7CisgICAgfQorCisgICAgLy8gVV9DQVBJIGNvbnN0IGNoYXIqIFVfRVhQT1JUMiBnZXRBbGlhcyhjb25zdCBjaGFyICphbGlhcywgdWludDE2X3QgbiwKKyAgICAvLyBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKQorICAgIHN0YXRpYyBTdHJpbmcgZ2V0QWxpYXMoU3RyaW5nIGFsaWFzLCBpbnQgbikgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gaW9fZ2V0QWxpYXMoYWxpYXMsIG4pOworICAgIH0KKworICAgIC8vIFVfQ0ZVTkMgdWludDE2X3QgY291bnRTdGFuZGFyZHModm9pZCkKKyAgICBzdGF0aWMgaW50IGNvdW50U3RhbmRhcmRzKCl0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIHJldHVybiBpb19jb3VudFN0YW5kYXJkcygpOworICAgIH0KKyAgICAKKyAgICAvKnJldHVybnMgYSBzaW5nbGUgTmFtZSBmcm9tIHRoZSBsaXN0LCB3aWxsIHJldHVybiBOVUxMIGlmIG91dCBvZiBib3VuZHMKKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIGdldEF2YWlsYWJsZU5hbWUgKGludCBuKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgIGlmICgwIDw9IG4gJiYgbiA8PSAweGZmZmYpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gYmxkX2dldEF2YWlsYWJsZUNvbnZlcnRlcihuKTsKKyAgICAgICAgICAgIHJldHVybiBuYW1lOworICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIC8vdGhyb3cgYXdheSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgLy8gVV9DQVBJIGNvbnN0IGNoYXIgKiBVX0VYUE9SVDIgZ2V0Q2Fub25pY2FsTmFtZShjb25zdCBjaGFyICphbGlhcywgY29uc3QKKyAgICAvLyBjaGFyICpzdGFuZGFyZCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSkgeworICAgIHN0YXRpYyBTdHJpbmcgZ2V0Q2Fub25pY2FsTmFtZShTdHJpbmcgYWxpYXMsIFN0cmluZyBzdGFuZGFyZCkgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpZiAoaGF2ZUFsaWFzRGF0YSgpICYmIGlzQWxpYXMoYWxpYXMpKSB7CisgICAgICAgICAgICBpbnQgY29udk51bSA9IGZpbmRUYWdnZWRDb252ZXJ0ZXJOdW0oYWxpYXMsIHN0YW5kYXJkKTsKKworICAgICAgICAgICAgaWYgKGNvbnZOdW0gPCBnQ29udmVydGVyTGlzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gR0VUX1NUUklORyhnQ29udmVydGVyTGlzdFsoaW50KSBjb252TnVtXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgc3RhdGljIGludCBjb3VudEF2YWlsYWJsZSAoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgcmV0dXJuIGJsZF9jb3VudEF2YWlsYWJsZUNvbnZlcnRlcnMoKTsKKyAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIC8vdGhyb3cgYXdheSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgICAgICAKKyAgICAvLyBVX0NBUEkgVUVudW1lcmF0aW9uICogVV9FWFBPUlQyIG9wZW5TdGFuZGFyZE5hbWVzKGNvbnN0IGNoYXIgKmNvbnZOYW1lLAorICAgIC8vIGNvbnN0IGNoYXIgKnN0YW5kYXJkLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKQorLyogICAgc3RhdGljIGZpbmFsIFVDb252ZXJ0ZXJBbGlhc2VzRW51bWVyYXRpb24gb3BlblN0YW5kYXJkTmFtZXMoU3RyaW5nIGNvbnZOYW1lLCBTdHJpbmcgc3RhbmRhcmQpdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgVUNvbnZlcnRlckFsaWFzZXNFbnVtZXJhdGlvbiBhbGlhc0VudW0gPSBudWxsOworICAgICAgICBpZiAoaGF2ZUFsaWFzRGF0YSgpICYmIGlzQWxpYXMoY29udk5hbWUpKSB7CisgICAgICAgICAgICBpbnQgbGlzdE9mZnNldCA9IGZpbmRUYWdnZWRBbGlhc0xpc3RzT2Zmc2V0KGNvbnZOYW1lLCBzdGFuZGFyZCk7CisKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICogV2hlbiBsaXN0T2Zmc2V0ID09IDAsIHdlIHdhbnQgdG8gYWNrbm93bGVkZ2UgdGhhdCB0aGUgY29udmVydGVyCisgICAgICAgICAgICAgKiBuYW1lIGFuZCBzdGFuZGFyZCBhcmUgb2theSwgYnV0IHRoZXJlIGlzIG5vdGhpbmcgdG8gZW51bWVyYXRlLgorICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxpc3RPZmZzZXQgPCBnVGFnZ2VkQWxpYXNMaXN0cy5sZW5ndGgpIHsKKworICAgICAgICAgICAgICAgIFVDb252ZXJ0ZXJBbGlhc2VzRW51bWVyYXRpb24uVUFsaWFzQ29udGV4dCBjb250ZXh0ID0gbmV3IFVDb252ZXJ0ZXJBbGlhc2VzRW51bWVyYXRpb24uVUFsaWFzQ29udGV4dChsaXN0T2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICBhbGlhc0VudW0gPSBuZXcgVUNvbnZlcnRlckFsaWFzZXNFbnVtZXJhdGlvbigpOworICAgICAgICAgICAgICAgIGFsaWFzRW51bS5zZXRDb250ZXh0KGNvbnRleHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIGVsc2UgY29udmVydGVyIG9yIHRhZyBub3QgZm91bmQgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFsaWFzRW51bTsKKyAgICB9Ki8KKworICAgIC8vIHN0YXRpYyB1aW50MzJfdCBnZXRUYWdOdW1iZXIoY29uc3QgY2hhciAqdGFnbmFtZSkKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0VGFnTnVtYmVyKFN0cmluZyB0YWdOYW1lKSB7CisgICAgICAgIGlmIChnVGFnTGlzdCAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgdGFnTnVtOworICAgICAgICAgICAgZm9yICh0YWdOdW0gPSAwOyB0YWdOdW0gPCBnVGFnTGlzdC5sZW5ndGg7IHRhZ051bSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRhZ05hbWUuZXF1YWxzKEdFVF9TVFJJTkcoZ1RhZ0xpc3RbKGludCkgdGFnTnVtXSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWdOdW07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIEludGVnZXIuTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8vIHN0YXRpYyB1aW50MzJfdCBmaW5kVGFnZ2VkQWxpYXNMaXN0c09mZnNldChjb25zdCBjaGFyICphbGlhcywgY29uc3QgY2hhcgorICAgIC8vICpzdGFuZGFyZCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSkKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZFRhZ2dlZEFsaWFzTGlzdHNPZmZzZXQoU3RyaW5nIGFsaWFzLCBTdHJpbmcgc3RhbmRhcmQpIHsKKyAgICAgICAgaW50IGlkeDsKKyAgICAgICAgaW50IGxpc3RPZmZzZXQ7CisgICAgICAgIGludCBjb252TnVtOworICAgICAgICBpbnQgdGFnTnVtID0gZ2V0VGFnTnVtYmVyKHN0YW5kYXJkKTsKKyAgICAgICAgYm9vbGVhbltdIGlzQW1iaWdvdXMgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgLyogTWFrZSBhIHF1aWNrIGd1ZXNzLiBIb3BlZnVsbHkgdGhleSB1c2VkIGEgVFIyMiBjYW5vbmljYWwgYWxpYXMuICovCisgICAgICAgIGNvbnZOdW0gPSBmaW5kQ29udmVydGVyKGFsaWFzLCBpc0FtYmlnb3VzKTsKKworICAgICAgICBpZiAodGFnTnVtIDwgKGdUYWdMaXN0Lmxlbmd0aCAtIE5VTV9ISURERU5fVEFHUykKKyAgICAgICAgICAgICAgICAmJiBjb252TnVtIDwgZ0NvbnZlcnRlckxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICBsaXN0T2Zmc2V0ID0gZ1RhZ2dlZEFsaWFzQXJyYXlbKGludCkgKHRhZ051bQorICAgICAgICAgICAgICAgICAgICAqIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCArIGNvbnZOdW0pXTsKKyAgICAgICAgICAgIGlmIChsaXN0T2Zmc2V0ICE9IDAKKyAgICAgICAgICAgICAgICAgICAgJiYgZ1RhZ2dlZEFsaWFzTGlzdHNbKGludCkgbGlzdE9mZnNldCArIDFdICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGlzdE9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0FtYmlnb3VzWzBdPT10cnVlKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBVaCBPaCEgVGhleSB1c2VkIGFuIGFtYmlndW91cyBhbGlhcy4gV2UgaGF2ZSB0byBzZWFyY2ggdGhlCisgICAgICAgICAgICAgICAgICogd2hvbGUgc3dpc3MgY2hlZXNlIHN0YXJ0aW5nIGF0IHRoZSBoaWdoZXN0IHN0YW5kYXJkIGFmZmluaXR5LgorICAgICAgICAgICAgICAgICAqIFRoaXMgbWF5IHRha2UgYSB3aGlsZS4KKyAgICAgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgZ1RhZ2dlZEFsaWFzQXJyYXkubGVuZ3RoOyBpZHgrKykgeworICAgICAgICAgICAgICAgICAgICBsaXN0T2Zmc2V0ID0gZ1RhZ2dlZEFsaWFzQXJyYXlbKGludCkgaWR4XTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3RPZmZzZXQgIT0gMCAmJiBpc0FsaWFzSW5MaXN0KGFsaWFzLCBsaXN0T2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnJUYWdOdW0gPSBpZHggLyBnQ29udmVydGVyTGlzdC5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3VyckNvbnZOdW0gPSAoaWR4IC0gY3VyclRhZ051bQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcExpc3RPZmZzZXQgPSBnVGFnZ2VkQWxpYXNBcnJheVsoaW50KSAodGFnTnVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZ0NvbnZlcnRlckxpc3QubGVuZ3RoICsgY3VyckNvbnZOdW0pXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wTGlzdE9mZnNldCAhPSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGdUYWdnZWRBbGlhc0xpc3RzWyhpbnQpIHRlbXBMaXN0T2Zmc2V0ICsgMV0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wTGlzdE9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBlbHNlIGtlZXAgb24gbG9va2luZyBXZSBjb3VsZCBzcGVlZCB0aGlzIHVwIGJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBzdGFydGluZyBvbiB0aGUgbmV4dCByb3cgYmVjYXVzZSBhbiBhbGlhcyBpcyB1bmlxdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHBlciByb3csIHJpZ2h0IG5vdy4gVGhpcyB3b3VsZCBjaGFuZ2UgaWYgYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHZlcnNpb25pbmcgYXBwZWFycy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIFRoZSBzdGFuZGFyZCBkb2Vzbid0IGtub3cgYWJvdXQgdGhlIGFsaWFzICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBlbHNlIG5vIGRlZmF1bHQgbmFtZSAqLworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLyogZWxzZSBjb252ZXJ0ZXIgb3IgdGFnIG5vdCBmb3VuZCAqLworCisgICAgICAgIHJldHVybiBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvKiBSZXR1cm4gdGhlIGNhbm9uaWNhbCBuYW1lICovCisgICAgLy8gc3RhdGljIHVpbnQzMl90IGZpbmRUYWdnZWRDb252ZXJ0ZXJOdW0oY29uc3QgY2hhciAqYWxpYXMsIGNvbnN0IGNoYXIKKyAgICAvLyAqc3RhbmRhcmQsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRUYWdnZWRDb252ZXJ0ZXJOdW0oU3RyaW5nIGFsaWFzLCBTdHJpbmcgc3RhbmRhcmQpIHsKKyAgICAgICAgaW50IGlkeDsKKyAgICAgICAgaW50IGxpc3RPZmZzZXQ7CisgICAgICAgIGludCBjb252TnVtOworICAgICAgICBpbnQgdGFnTnVtID0gZ2V0VGFnTnVtYmVyKHN0YW5kYXJkKTsKKyAgICAgICAgYm9vbGVhbltdIGlzQW1iaWdvdXMgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgCisgICAgICAgIC8qIE1ha2UgYSBxdWljayBndWVzcy4gSG9wZWZ1bGx5IHRoZXkgdXNlZCBhIFRSMjIgY2Fub25pY2FsIGFsaWFzLiAqLworICAgICAgICBjb252TnVtID0gZmluZENvbnZlcnRlcihhbGlhcywgaXNBbWJpZ291cyk7ICAgICAgICAKKworICAgICAgICBpZiAodGFnTnVtIDwgKGdUYWdMaXN0Lmxlbmd0aCAtIE5VTV9ISURERU5fVEFHUykKKyAgICAgICAgICAgICAgICAmJiBjb252TnVtIDwgZ0NvbnZlcnRlckxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICBsaXN0T2Zmc2V0ID0gZ1RhZ2dlZEFsaWFzQXJyYXlbKGludCkgKHRhZ051bQorICAgICAgICAgICAgICAgICAgICAqIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCArIGNvbnZOdW0pXTsKKyAgICAgICAgICAgIGlmIChsaXN0T2Zmc2V0ICE9IDAgJiYgaXNBbGlhc0luTGlzdChhbGlhcywgbGlzdE9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29udk51bTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0FtYmlnb3VzWzBdID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFVoIE9oISBUaGV5IHVzZWQgYW4gYW1iaWd1b3VzIGFsaWFzLiBXZSBoYXZlIHRvIHNlYXJjaCBvbmUKKyAgICAgICAgICAgICAgICAgKiBzbGljZSBvZiB0aGUgc3dpc3MgY2hlZXNlLiBXZSBzZWFyY2ggb25seSBpbiB0aGUgcmVxdWVzdGVkCisgICAgICAgICAgICAgICAgICogdGFnLCBub3QgdGhlIHdob2xlIHRoaW5nLiBUaGlzIG1heSB0YWtlIGEgd2hpbGUuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IGNvbnZTdGFydCA9ICh0YWdOdW0pICogZ0NvbnZlcnRlckxpc3QubGVuZ3RoOworICAgICAgICAgICAgICAgIGludCBjb252TGltaXQgPSAodGFnTnVtICsgMSkgKiBnQ29udmVydGVyTGlzdC5sZW5ndGg7CisgICAgICAgICAgICAgICAgZm9yIChpZHggPSBjb252U3RhcnQ7IGlkeCA8IGNvbnZMaW1pdDsgaWR4KyspIHsKKyAgICAgICAgICAgICAgICAgICAgbGlzdE9mZnNldCA9IGdUYWdnZWRBbGlhc0FycmF5WyhpbnQpIGlkeF07CisgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0T2Zmc2V0ICE9IDAgJiYgaXNBbGlhc0luTGlzdChhbGlhcywgbGlzdE9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpZHggLSBjb252U3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogVGhlIHN0YW5kYXJkIGRvZXNuJ3Qga25vdyBhYm91dCB0aGUgYWxpYXMgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIGVsc2Ugbm8gY2Fub25pY2FsIG5hbWUgKi8KKyAgICAgICAgfQorICAgICAgICAvKiBlbHNlIGNvbnZlcnRlciBvciB0YWcgbm90IGZvdW5kICovCisKKyAgICAgICAgcmV0dXJuIEludGVnZXIuTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8vIHN0YXRpYyBVX0lOTElORSBVQm9vbCBpc0FsaWFzSW5MaXN0KGNvbnN0IGNoYXIgKmFsaWFzLCB1aW50MzJfdAorICAgIC8vIGxpc3RPZmZzZXQpCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0FsaWFzSW5MaXN0KFN0cmluZyBhbGlhcywgaW50IGxpc3RPZmZzZXQpIHsKKyAgICAgICAgaWYgKGxpc3RPZmZzZXQgIT0gMCkgeworICAgICAgICAgICAgaW50IGN1cnJBbGlhczsKKyAgICAgICAgICAgIGludCBsaXN0Q291bnQgPSBnVGFnZ2VkQWxpYXNMaXN0c1soaW50KSBsaXN0T2Zmc2V0XTsKKyAgICAgICAgICAgIC8qICsxIHRvIHNraXAgbGlzdENvdW50ICovCisgICAgICAgICAgICBpbnRbXSBjdXJyTGlzdCA9IGdUYWdnZWRBbGlhc0xpc3RzOworICAgICAgICAgICAgaW50IGN1cnJMaXN0QXJyYXlJbmRleCA9IGxpc3RPZmZzZXQgKyAxOworICAgICAgICAgICAgZm9yIChjdXJyQWxpYXMgPSAwOyBjdXJyQWxpYXMgPCBsaXN0Q291bnQ7IGN1cnJBbGlhcysrKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJMaXN0WyhpbnQpIChjdXJyQWxpYXMgKyBjdXJyTGlzdEFycmF5SW5kZXgpXSAhPSAwCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBjb21wYXJlTmFtZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRVRfU1RSSU5HKGN1cnJMaXN0WyhpbnQpIChjdXJyQWxpYXMgKyBjdXJyTGlzdEFycmF5SW5kZXgpXSkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBiZWdpbiBibGQuYworICAgIHN0YXRpYyBTdHJpbmdbXSBnQXZhaWxhYmxlQ29udmVydGVycyA9IG51bGw7CisKKyAgICBzdGF0aWMgaW50IGdBdmFpbGFibGVDb252ZXJ0ZXJDb3VudCA9IDA7CisKKyAgICBzdGF0aWMgYnl0ZVtdIGdEZWZhdWx0Q29udmVydGVyTmFtZUJ1ZmZlcjsgLy8gW01BWF9DT05WRVJURVJfTkFNRV9MRU5HVEggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMV07IC8qICsxIGZvciBOVUxMICovCisKKyAgICBzdGF0aWMgU3RyaW5nIGdEZWZhdWx0Q29udmVydGVyTmFtZSA9IG51bGw7CisKKyAgICAvLyBzdGF0aWMgVUJvb2wgaGF2ZUF2YWlsYWJsZUNvbnZlcnRlckxpc3QoVUVycm9yQ29kZSAqcEVycm9yQ29kZSkKKyAgICBzdGF0aWMgYm9vbGVhbiBoYXZlQXZhaWxhYmxlQ29udmVydGVyTGlzdCgpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGdBdmFpbGFibGVDb252ZXJ0ZXJzID09IG51bGwpIHsKKyAgICAgICAgICAgIGludCBpZHg7CisgICAgICAgICAgICBpbnQgbG9jYWxDb252ZXJ0ZXJDb3VudDsKKyAgICAgICAgICAgIFN0cmluZyBjb252ZXJ0ZXJOYW1lOworICAgICAgICAgICAgU3RyaW5nW10gbG9jYWxDb252ZXJ0ZXJMaXN0OworCisgICAgICAgICAgICBpZiAoIWhhdmVBbGlhc0RhdGEoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogV2UgY2FuJ3QgaGF2ZSBtb3JlIHRoYW4gIipjb252ZXJ0ZXJUYWJsZSIgY29udmVydGVycyB0byBvcGVuICovCisgICAgICAgICAgICBsb2NhbENvbnZlcnRlckxpc3QgPSBuZXcgU3RyaW5nWyhpbnQpIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aF07CisKKyAgICAgICAgICAgIGxvY2FsQ29udmVydGVyQ291bnQgPSAwOworCisgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aDsgaWR4KyspIHsKKyAgICAgICAgICAgICAgICBjb252ZXJ0ZXJOYW1lID0gR0VUX1NUUklORyhnQ29udmVydGVyTGlzdFtpZHhdKTsKKyAgICAgICAgICAgICAgICAvL1VDb252ZXJ0ZXIgY252ID0gVUNvbnZlcnRlci5vcGVuKGNvbnZlcnRlck5hbWUpOworICAgICAgICAgICAgICAgIC8vVE9ETzogRml4IG1lCisgICAgICAgICAgICAgICAgbG9jYWxDb252ZXJ0ZXJMaXN0W2xvY2FsQ29udmVydGVyQ291bnQrK10gPSBjb252ZXJ0ZXJOYW1lOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBhZ2xqcG9ydDp0b2RvIHVtdHhfbG9jayhOVUxMKTsKKyAgICAgICAgICAgIGlmIChnQXZhaWxhYmxlQ29udmVydGVycyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZ0F2YWlsYWJsZUNvbnZlcnRlcnMgPSBsb2NhbENvbnZlcnRlckxpc3Q7CisgICAgICAgICAgICAgICAgZ0F2YWlsYWJsZUNvbnZlcnRlckNvdW50ID0gbG9jYWxDb252ZXJ0ZXJDb3VudDsKKyAgICAgICAgICAgICAgICAvKiBoYXZlRGF0YSBzaG91bGQgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlIGNsZWFudXAgZnVuY3Rpb24gKi8KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gYWdsanBvcnQ6dG9kbyBmcmVlKChjaGFyICoqKWxvY2FsQ29udmVydGVyTGlzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhZ2xqcG9ydDp0b2RvIHVtdHhfdW5sb2NrKE5VTEwpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8vIFVfQ0ZVTkMgdWludDE2X3QgYmxkX2NvdW50QXZhaWxhYmxlQ29udmVydGVycyhVRXJyb3JDb2RlICpwRXJyb3JDb2RlKQorICAgIHN0YXRpYyBpbnQgYmxkX2NvdW50QXZhaWxhYmxlQ29udmVydGVycygpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBdmFpbGFibGVDb252ZXJ0ZXJMaXN0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBnQXZhaWxhYmxlQ29udmVydGVyQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLy8gVV9DRlVOQyBjb25zdCBjaGFyICogYmxkX2dldEF2YWlsYWJsZUNvbnZlcnRlcih1aW50MTZfdCBuLCBVRXJyb3JDb2RlCisgICAgLy8gKnBFcnJvckNvZGUpCisgICAgc3RhdGljIFN0cmluZyBibGRfZ2V0QXZhaWxhYmxlQ29udmVydGVyKGludCBuKSB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmIChoYXZlQXZhaWxhYmxlQ29udmVydGVyTGlzdCgpKSB7CisgICAgICAgICAgICBpZiAobiA8IGdBdmFpbGFibGVDb252ZXJ0ZXJDb3VudCkgeworICAgICAgICAgICAgICAgIHJldHVybiBnQXZhaWxhYmxlQ29udmVydGVyc1tuXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKiBkZWZhdWx0IGNvbnZlcnRlciBuYW1lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisgICAgLyoKKyAgICAgKiBJbiBvcmRlciB0byBiZSByZWFsbHkgdGhyZWFkLXNhZmUsIHRoZSBnZXQgZnVuY3Rpb24gd291bGQgaGF2ZSB0byB0YWtlCisgICAgICogYSBidWZmZXIgcGFyYW1ldGVyIGFuZCBjb3B5IHRoZSBjdXJyZW50IHN0cmluZyBpbnNpZGUgYSBtdXRleCBibG9jay4KKyAgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG9ubHkgdHJpZXMgdG8gYmUgcmVhbGx5IHRocmVhZC1zYWZlIHdoaWxlCisgICAgICogc2V0dGluZyB0aGUgbmFtZS4KKyAgICAgKiBJdCBhc3N1bWVzIHRoYXQgc2V0dGluZyBhIHBvaW50ZXIgaXMgYXRvbWljLgorICAgICAqLworCisgICAgLy8gVV9DRlVOQyBjb25zdCBjaGFyICogZ2V0RGVmYXVsdE5hbWUoKQorICAgIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgU3RyaW5nIGdldERlZmF1bHROYW1lKCkgeworICAgICAgICAvKiBsb2NhbCB2YXJpYWJsZSB0byBiZSB0aHJlYWQtc2FmZSAqLworICAgICAgICBTdHJpbmcgbmFtZTsKKworICAgICAgICAvL2FnbGpwb3J0OnRvZG8gdW10eF9sb2NrKG51bGwpOworICAgICAgICBuYW1lID0gZ0RlZmF1bHRDb252ZXJ0ZXJOYW1lOworICAgICAgICAvL2FnbGpwb3J0OnRvZG8gdW10eF91bmxvY2sobnVsbCk7CisKKyAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgLy9VQ29udmVydGVyIGNudiA9IG51bGw7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gMDsKKworICAgICAgICAgICAgbmFtZSA9IENoYXJzZXRJQ1UuZ2V0RGVmYXVsdENoYXJzZXROYW1lKCk7CisKKyAgICAgICAgICAgIC8qIGlmIHRoZSBuYW1lIGlzIHRoZXJlLCB0ZXN0IGl0IG91dCBhbmQgZ2V0IHRoZSBjYW5vbmljYWwgbmFtZSB3aXRoIG9wdGlvbnMgKi8KKyAgICAgICAgICAgIGlmIChuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgIC8vIGNudiA9IFVDb252ZXJ0ZXIub3BlbihuYW1lKTsgCisgICAgICAgICAgICAgICAvLyBuYW1lID0gY252LmdldE5hbWUoY252KTsKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiBmaXggbWUKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCB8fCBuYW1lLmxlbmd0aCgpID09IDAgfHwvKiBjbnYgPT0gbnVsbCB8fCovCisgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPj0gZ0RlZmF1bHRDb252ZXJ0ZXJOYW1lQnVmZmVyLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIC8qIFBhbmljIHRpbWUsIGxldCdzIHVzZSBhIGZhbGxiYWNrLiAqLworICAgICAgICAgICAgICAgIG5hbWUgPSBuZXcgU3RyaW5nKCJVUy1BU0NJSSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvL2xlbmd0aD0oaW50MzJfdCkoc3RybGVuKG5hbWUpKTsKKworICAgICAgICAgICAgLyogQ29weSB0aGUgbmFtZSBiZWZvcmUgd2UgY2xvc2UgdGhlIGNvbnZlcnRlci4gKi8KKyAgICAgICAgICAgIG5hbWUgPSBnRGVmYXVsdENvbnZlcnRlck5hbWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvL2VuZCBibGQuYworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJBbGlhc0RhdGFSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJBbGlhc0RhdGFSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjE0ZjViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlckFsaWFzRGF0YVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMjIyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKKworcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVQmluYXJ5OworCisKKy8qIEZvcm1hdCBvZiBjbnZhbGlhcy5pY3UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjbnZhbGlhcy5pY3UgaXMgYSBiaW5hcnksIG1lbW9yeS1tYXBwYWJsZSBmb3JtIG9mIGNvbnZydHJzLnR4dC4KKyAqIFRoaXMgYmluYXJ5IGZvcm0gY29udGFpbnMgc2V2ZXJhbCB0YWJsZXMuIEFsbCBpbmRleGVzIGFyZSB0byB1aW50MTZfdAorICogdW5pdHMsIGFuZCBub3QgdG8gdGhlIGJ5dGVzICh1aW50OF90IHVuaXRzKS4gQWRkcmVzc2luZyBldmVyeXRoaW5nIG9uCisgKiAxNi1iaXQgYm91bmRhcmllcyBhbGxvd3MgdXMgdG8gc3RvcmUgbW9yZSBpbmZvcm1hdGlvbiB3aXRoIHNtYWxsIGluZGV4CisgKiBudW1iZXJzLCB3aGljaCBhcmUgYWxzbyAxNi1iaXQgaW4gc2l6ZS4gVGhlIG1ham9yaXR5IG9mIHRoZSB0YWJsZSAoZXhjZXB0CisgKiB0aGUgc3RyaW5nIHRhYmxlKSBhcmUgMTYtYml0IG51bWJlcnMuCisgKgorICogRmlyc3QgdGhlcmUgaXMgdGhlIHNpemUgb2YgdGhlIFRhYmxlIG9mIENvbnRlbnRzIChUT0MpLiBUaGUgVE9DCisgKiBlbnRyaWVzIGNvbnRhaW4gdGhlIHNpemUgb2YgZWFjaCBzZWN0aW9uLiBJbiBvcmRlciB0byBmaW5kIHRoZSBvZmZzZXQKKyAqIHlvdSBqdXN0IG5lZWQgdG8gc3VtIHVwIHRoZSBwcmV2aW91cyBvZmZzZXRzLgorICogVGhlIFRPQyBsZW5ndGggYW5kIGVudHJpZXMgYXJlIGFuIGFycmF5IG9mIHVpbnQzMl90IHZhbHVlcy4KKyAqIFRoZSBmaXJzdCBzZWN0aW9uIGFmdGVyIHRoZSBUT0Mgc3RhcnRzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBUT0MuCisgKgorICogMSkgVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGEgbGlzdCBvZiBjb252ZXJ0ZXJzLiBUaGlzIGxpc3QgY29udGFpbnMgaW5kZXhlcworICogaW50byB0aGUgc3RyaW5nIHRhYmxlIGZvciB0aGUgY29udmVydGVyIG5hbWUuIFRoZSBpbmRleCBvZiB0aGlzIGxpc3QgaXMKKyAqIGFsc28gdXNlZCBieSBvdGhlciBzZWN0aW9ucywgd2hpY2ggYXJlIG1lbnRpb25lZCBsYXRlciBvbi4KKyAqIFRoaXMgbGlzdCBpcyBub3Qgc29ydGVkLgorICoKKyAqIDIpIFRoaXMgc2VjdGlvbiBjb250YWlucyBhIGxpc3Qgb2YgdGFncy4gVGhpcyBsaXN0IGNvbnRhaW5zIGluZGV4ZXMKKyAqIGludG8gdGhlIHN0cmluZyB0YWJsZSBmb3IgdGhlIHRhZyBuYW1lLiBUaGUgaW5kZXggb2YgdGhpcyBsaXN0IGlzCisgKiBhbHNvIHVzZWQgYnkgb3RoZXIgc2VjdGlvbnMsIHdoaWNoIGFyZSBtZW50aW9uZWQgbGF0ZXIgb24uCisgKiBUaGlzIGxpc3QgaXMgaW4gcHJpb3JpdHkgb3JkZXIgb2Ygc3RhbmRhcmRzLgorICoKKyAqIDMpIFRoaXMgc2VjdGlvbiBjb250YWlucyBhIGxpc3Qgb2Ygc29ydGVkIHVuaXF1ZSBhbGlhc2VzLiBUaGlzCisgKiBsaXN0IGNvbnRhaW5zIGluZGV4ZXMgaW50byB0aGUgc3RyaW5nIHRhYmxlIGZvciB0aGUgYWxpYXMgbmFtZS4gVGhlCisgKiBpbmRleCBvZiB0aGlzIGxpc3QgaXMgYWxzbyB1c2VkIGJ5IG90aGVyIHNlY3Rpb25zLCBsaWtlIHRoZSA0dGggc2VjdGlvbi4KKyAqIFRoZSBpbmRleCBmb3IgdGhlIDNyZCBhbmQgNHRoIHNlY3Rpb24gaXMgdXNlZCB0byBnZXQgdGhlCisgKiBhbGlhcyAtPiBjb252ZXJ0ZXIgbmFtZSBtYXBwaW5nLiBTZWN0aW9uIDMgYW5kIDQgZm9ybSBhIHR3byBjb2x1bW4gdGFibGUuCisgKgorICogNCkgVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGEgbGlzdCBvZiBtYXBwZWQgY29udmVydGVyIG5hbWVzLiBDb25zaWRlciB0aGlzCisgKiBhcyBhIHRhYmxlIHRoYXQgbWFwcyB0aGUgM3JkIHNlY3Rpb24gdG8gdGhlIDFzdCBzZWN0aW9uLiBUaGlzIGxpc3QgY29udGFpbnMKKyAqIGluZGV4ZXMgaW50byB0aGUgMXN0IHNlY3Rpb24uIFRoZSBpbmRleCBvZiB0aGlzIGxpc3QgaXMgdGhlIHNhbWUgaW5kZXggaW4KKyAqIHRoZSAzcmQgc2VjdGlvbi4gVGhlcmUgaXMgYWxzbyBzb21lIGV4dHJhIGluZm9ybWF0aW9uIGluIHRoZSBoaWdoIGJpdHMgb2YKKyAqIGVhY2ggY29udmVydGVyIGluZGV4IGluIHRoaXMgdGFibGUuIEN1cnJlbnRseSBpdCdzIG9ubHkgdXNlZCB0byBzYXkgdGhhdAorICogYW4gYWxpYXMgbWFwcGVkIHRvIHRoaXMgY29udmVydGVyIGlzIGFtYmlndW91cy4gU2VlIFVDTlZfQ09OVkVSVEVSX0lOREVYX01BU0sKKyAqIGFuZCBVQ05WX0FNQklHVU9VU19BTElBU19NQVBfQklUIGZvciBtb3JlIGluZm9ybWF0aW9uLiBUaGlzIHNlY3Rpb24gaXMKKyAqIHRoZSBwcmVkaWdlc3RlZCBmb3JtIG9mIHRoZSA1dGggc2VjdGlvbiBzbyB0aGF0IGFuIGFsaWFzIGxvb2t1cCBjYW4gYmUgZmFzdC4KKyAqCisgKiA1KSBUaGlzIHNlY3Rpb24gY29udGFpbnMgYSAyRCBhcnJheSB3aXRoIGluZGV4ZXMgdG8gdGhlIDZ0aCBzZWN0aW9uLiBUaGlzCisgKiBzZWN0aW9uIGlzIHRoZSBmdWxsIGZvcm0gb2YgYWxsIGFsaWFzIG1hcHBpbmdzLiBUaGUgY29sdW1uIGluZGV4IGlzIHRoZQorICogaW5kZXggaW50byB0aGUgY29udmVydGVyIGxpc3QgKGNvbHVtbiBoZWFkZXIpLiBUaGUgcm93IGluZGV4IGlzIHRoZSBpbmRleAorICogdG8gdGFnIGxpc3QgKHJvdyBoZWFkZXIpLiBUaGlzIDJEIGFycmF5IGlzIHRoZSB0b3AgcGFydCBhIDNEIGFycmF5LiBUaGUKKyAqIHRoaXJkIGRpbWVuc2lvbiBpcyBpbiB0aGUgNnRoIHNlY3Rpb24uCisgKgorICogNikgVGhpcyBpcyBibG9iIG9mIHZhcmlhYmxlIGxlbmd0aCBhcnJheXMuIEVhY2ggYXJyYXkgc3RhcnRzIHdpdGggYSBzaXplLAorICogYW5kIGlzIGZvbGxvd2VkIGJ5IGluZGV4ZXMgdG8gYWxpYXMgbmFtZXMgaW4gdGhlIHN0cmluZyB0YWJsZS4gVGhpcyBpcworICogdGhlIHRoaXJkIGRpbWVuc2lvbiB0byB0aGUgc2VjdGlvbiA1LiBObyBvdGhlciBzZWN0aW9uIHNob3VsZCBiZSByZWZlcmVuY2luZworICogdGhpcyBzZWN0aW9uLgorICoKKyAqIDcpIFJlc2VydmVkIGF0IHRoaXMgdGltZSAoVGhlcmUgaXMgbm8gaW5mb3JtYXRpb24pLiBUaGlzIF91c3VhbGx5XyBoYXMgYQorICogc2l6ZSBvZiAwLiBGdXR1cmUgdmVyc2lvbnMgbWF5IGFkZCBtb3JlIGluZm9ybWF0aW9uIGhlcmUuCisgKgorICogOCkgVGhpcyBpcyB0aGUgc3RyaW5nIHRhYmxlLiBBbGwgc3RyaW5ncyBhcmUgaW5kZXhlZCBvbiBhbiBldmVuIGFkZHJlc3MuCisgKiBUaGVyZSBhcmUgdHdvIHJlYXNvbnMgZm9yIHRoaXMuIEZpcnN0IG1hbnkgY2hpcCBhcmNoaXRlY3R1cmVzIGxvY2F0ZSBzdHJpbmdzCisgKiBmYXN0ZXIgb24gZXZlbiBhZGRyZXNzIGJvdW5kYXJpZXMuIFNlY29uZCwgc2luY2UgYWxsIGluZGV4ZXMgYXJlIDE2LWJpdAorICogbnVtYmVycywgdGhpcyBzdHJpbmcgdGFibGUgY2FuIGJlIDEyOEtCIGluIHNpemUgaW5zdGVhZCBvZiA2NEtCIHdoZW4gd2UKKyAqIG9ubHkgaGF2ZSBzdHJpbmdzIHN0YXJ0aW5nIG9uIGFuIGV2ZW4gYWRkcmVzcy4KKyAqCisgKgorICogSGVyZSBpcyB0aGUgY29uY2VwdCBvZiBzZWN0aW9uIDUgYW5kIDYuIEl0J3MgYSAzRCBjdWJlLiBFYWNoIHRhZworICogaGFzIGEgdW5pcXVlIGFsaWFzIGFtb25nIGFsbCBjb252ZXJ0ZXJzLiBUaGF0IHNhbWUgYWxpYXMgY2FuCisgKiBiZSBtZW50aW9uZWQgaW4gb3RoZXIgc3RhbmRhcmRzIG9uIGRpZmZlcmVudCBjb252ZXJ0ZXJzLAorICogYnV0IG9ubHkgb25lIGFsaWFzIHBlciB0YWcgY2FuIGJlIHVuaXF1ZS4KKyAqCisgKgorICogICAgICAgICAgICAgIENvbnZlcnRlciBOYW1lcyAoVXN1YWxseSBpbiBUUjIyIGZvcm0pCisgKiAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4KKyAqICAgICBUICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvfAorICogICAgIGEgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyB8CisgKiAgICAgZyAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gIHwKKyAqICAgICBzIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgfAorICogICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICB8CisgKiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8gICAgIHwKKyAqICAgIEEgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfAorICogICAgbCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8CisgKiAgICBpIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgLworICogICAgYSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgLworICogICAgcyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAvCisgKiAgICBlIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgLworICogICAgcyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8LworICogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICoKKyAqCisgKiBIZXJlIGlzIHdoYXQgaXQgcmVhbGx5IGxvb2tzIGxpa2UuIEl0J3MgbGlrZSBzd2lzcyBjaGVlc2UuCisgKiBUaGVyZSBhcmUgaG9sZXMuIFNvbWUgY29udmVydGVycyBhcmVuJ3QgcmVjb2duaXplZCBieQorICogYSBzdGFuZGFyZCwgb3IgdGhleSBhcmUgcmVhbGx5IG9sZCBjb252ZXJ0ZXJzIHRoYXQgdGhlCisgKiBzdGFuZGFyZCBkb2Vzbid0IHJlY29nbml6ZSBhbnltb3JlLgorICoKKyAqICAgICAgICAgICAgICBDb252ZXJ0ZXIgTmFtZXMgKFVzdWFsbHkgaW4gVFIyMiBmb3JtKQorICogICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCisgKiAgICAgVCAgICAvIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL3wKKyAqICAgICBhICAgLyAgICAgIyAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgIC8jCisgKiAgICAgZyAgLyAgIyAgICAgICMjICAgICAjIyAgICAgIyMjICMgIyMjICMjIyAjIyMgIy8KKyAqICAgICBzIC8gIyAgICAgICAgICAgICAjIyMjIyAgIyMjIyAgICAgICAgIyMgICMjICMvIworICogICAgICAvICMjIyAjICMgIyMgICMgICMgICAjICAgICAgICAgICMjIyAjICMgICAjLyMjCisgKiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8jICMKKyAqICAgIEEgfCMjIyAjICMgIyMgICMgICMgICAjICAgICAgICAgICMjIyAjICMgICAjfCMgIworICogICAgbCB8IyAjICMgICAgIyAgICAgIyAgICAgICAgICAgICAgICMjICMgICAgICN8IyAjCisgKiAgICBpIHwjICMgIyAgICAjICAgICAjICAgICAgICAgICAgICAgICMgICAgICAgI3wjCisgKiAgICBhIHwjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3wjCisgKiAgICBzIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3wjCisgKiAgICBlCisgKiAgICBzCisgKgorICovCisKK2ZpbmFsIGNsYXNzIFVDb252ZXJ0ZXJBbGlhc0RhdGFSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKy8vICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW4gZGVidWcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJVQ29udmVydGVyQWxpYXNEYXRhUmVhZGVyIik7CisgICAgCisgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVUNvbnZlcnRlckFsaWFzRGF0YVJlYWRlcihJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICAvL2lmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGluIGlucHV0U3RyZWFtICIgKyBpbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgICAgIAorICAgICAgICAvKnVuaWNvZGVWZXJzaW9uID0gKi9JQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSUQsIHRoaXMpOworICAgICAgICAKKyAgICAgICAgLy9pZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGlucHV0U3RyZWFtICIgK2lucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIGRhdGFJbnB1dFN0cmVhbSA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAKKyAgICAgICAgLy9pZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGRhdGFJbnB1dFN0cmVhbSAiICtkYXRhSW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisJcHJvdGVjdGVkIGludFtdIHJlYWRUb2MoaW50IG4pdGhyb3dzIElPRXhjZXB0aW9uCisJeworCQlpbnRbXSB0b2MgPSBuZXcgaW50W25dOworCQkvL1JlYWQgdGhlIHRvYworCQlmb3IgKGludCBpID0gMDsgaSA8IG4gOyArK2kpIHsKKwkJCXRvY1tpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCkgJiBVTlNJR05FRF9JTlRfTUFTSzsKKwkJfQorCQlyZXR1cm4gdG9jOworCX0gCisgICAgICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHJlYWQoaW50W10gY29udkxpc3QsIGludFtdIHRhZ0xpc3QsIGludFtdIGFsaWFzTGlzdCwgaW50W111bnRhZ2dlZENvbnZBcnJheSwgaW50W10gdGFnZ2VkQWxpYXNBcnJheSwgaW50W10gdGFnZ2VkQWxpYXNMaXN0cywgaW50W10gb3B0aW9uVGFibGUsIGJ5dGVbXSBzdHJpbmdUYWJsZSwgYnl0ZVtdIG5vcm1hbGl6ZWRTdHJpbmdUYWJsZSkgdGhyb3dzIElPRXhjZXB0aW9ueworCQlpbnQgaTsKKwkJLy9pbnQgbGlzdG51bSA9IDE7CisJCS8vbG9uZyBsaXN0c2l6ZTsKKworCQlmb3IoaSA9IDA7IGkgPCBjb252TGlzdC5sZW5ndGg7ICsraSkKKwkJCWNvbnZMaXN0W2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRVbnNpZ25lZFNob3J0KCk7CisJCQorCQlmb3IoaSA9IDA7IGkgPCB0YWdMaXN0Lmxlbmd0aDsgKytpKQorCQkJdGFnTGlzdFtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpOworCQkKKwkJZm9yKGkgPSAwOyBpIDwgYWxpYXNMaXN0Lmxlbmd0aDsgKytpKQorCQkJYWxpYXNMaXN0W2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRVbnNpZ25lZFNob3J0KCk7CisJCQorCQlmb3IoaSA9IDA7IGkgPCB1bnRhZ2dlZENvbnZBcnJheS5sZW5ndGg7ICsraSkKKwkJCXVudGFnZ2VkQ29udkFycmF5W2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRVbnNpZ25lZFNob3J0KCk7CisJCQorCQlmb3IoaSA9IDA7IGkgPCB0YWdnZWRBbGlhc0FycmF5Lmxlbmd0aDsgKytpKQorCQkJdGFnZ2VkQWxpYXNBcnJheVtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpOworCQkKKwkJZm9yKGkgPSAwOyBpIDwgdGFnZ2VkQWxpYXNMaXN0cy5sZW5ndGg7ICsraSkKKwkJCXRhZ2dlZEFsaWFzTGlzdHNbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZFVuc2lnbmVkU2hvcnQoKTsKKworICAgICAgICBmb3IoaSA9IDA7IGkgPCBvcHRpb25UYWJsZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG9wdGlvblRhYmxlW2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRVbnNpZ25lZFNob3J0KCk7CisKKwkJZGF0YUlucHV0U3RyZWFtLnJlYWQoc3RyaW5nVGFibGUpOworICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChub3JtYWxpemVkU3RyaW5nVGFibGUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uLmxlbmd0aCA+PSBEQVRBX0ZPUk1BVF9WRVJTSU9OLmxlbmd0aAorICAgICAgICAgICAgJiYgdmVyc2lvblswXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OWzBdCisgICAgICAgICAgICAmJiB2ZXJzaW9uWzFdID09IERBVEFfRk9STUFUX1ZFUlNJT05bMV0KKyAgICAgICAgICAgICYmIHZlcnNpb25bMl0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlsyXTsKKyAgICB9CisgICAgCisgICAgLypieXRlW10gZ2V0VW5pY29kZVZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVWZXJzaW9uOyAgICAKKyAgICB9Ki8KKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKworICAgIC8qKgorICAgICogSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIGRhdGFJbnB1dFN0cmVhbTsKKyAgICAKKy8vICAgIHByaXZhdGUgYnl0ZVtdIHVuaWNvZGVWZXJzaW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIHRoYXQgdGhpcyBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAqIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgaWYgYSBvbGRlciB2ZXJzaW9uIGlzIHVzZWQKKyAgICAqIHNlZSBzdG9yZS5jIG9mIGdlbm5vcm0gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHZhbHVlcworICAgICovCisJCS8vIERBVEFfRk9STUFUX0lEXyB2YWx1ZXMgdGFrZW4gZnJvbSBpY3U0YyBpc0FjY2VwdGFibGUgKHVjbnZfaW8uYykKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEW10gPSB7KGJ5dGUpMHg0MywgKGJ5dGUpMHg3NiwgKGJ5dGUpMHg0MSwgKGJ5dGUpMHg2Y307IC8vIGRhdGFGb3JtYXQ9IkN2QWwiCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OW10gPSB7MywgMCwgMX07CisKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNJR05FRF9TSE9SVF9NQVNLID0gMHhmZmZmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNJR05FRF9JTlRfTUFTSyA9IDB4ZmZmZmZmZmY7CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyQ29uc3RhbnRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyQ29uc3RhbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZiNTFhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJDb25zdGFudHMuamF2YQpAQCAtMCwwICsxLDE4MCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ludGVyZmFjZSBVQ29udmVydGVyQ29uc3RhbnRzIHsKKworICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBVTlNJR05FRF9CWVRFX01BU0sgPSAweGZmOworICAgIHN0YXRpYyBmaW5hbCBpbnQgVU5TSUdORURfU0hPUlRfTUFTSyA9IDB4ZmZmZjsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBVTlNJR05FRF9JTlRfTUFTSyA9IDB4ZmZmZmZmZmZMOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9JU19CSUdfRU5ESUFOID0gMDsKKwkKKwkvKioKKwkgKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIHdob2xlIGxvY2FsZSBJRAorCSAqIChpbmNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIE5VTEwpLgorCSAqIEBkcmFmdCBJQ1UgMy42CisJICovCisJc3RhdGljIGZpbmFsIGludCBVTE9DX0ZVTExOQU1FX0NBUEFDSVRZID0gNTY7CisJCisJLyoqCisJICogVGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZvciBBUElzIHRoYXQKKwkgKiAodGFrZSBvcikgcmV0dXJuIHNpbmdsZSBjb2RlIHBvaW50cyAoVUNoYXIzMikuCisJICogSXQgaXMgb3V0c2lkZSBvZiB0aGUgVW5pY29kZSBjb2RlIHBvaW50IHJhbmdlIDAuLjB4MTBmZmZmLgorCSAqIAorCSAqIEZvciBleGFtcGxlLCBhICJkb25lIiBvciAiZXJyb3IiIHZhbHVlIGluIGEgbmV3IEFQSQorCSAqIGNvdWxkIGJlIGluZGljYXRlZCB3aXRoIFVfU0VOVElORUwuCisJICoKKwkgKiBJQ1UgQVBJcyBkZXNpZ25lZCBiZWZvcmUgSUNVIDIuNCB1c3VhbGx5IGRlZmluZSBzZXJ2aWNlLXNwZWNpZmljICJkb25lIgorCSAqIHZhbHVlcywgbW9zdGx5IDB4ZmZmZi4KKwkgKiBUaG9zZSBtYXkgbmVlZCB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KKwkgKiBhY3R1YWwgVStmZmZmIHRleHQgY29udGVudHMgYnkgY2FsbGluZyBmdW5jdGlvbnMgbGlrZQorCSAqIENoYXJhY3Rlckl0ZXJhdG9yOjpoYXNOZXh0KCkgb3IgVW5pY29kZVN0cmluZzo6bGVuZ3RoKCkuCisJICogQGRyYWZ0IElDVSAyLjQKKwkgKi8KKwlzdGF0aWMgZmluYWwgaW50IFVfU0VOVElORUwgPSAtMTsKKwkKKwkvL2VuZCB1dGYuaAorCQorCS8vYmVnaW4gdWNudi5oCQorCS8qKgorCSAqIENoYXJhY3RlciB0aGF0IHNlcGFyYXRlcyBjb252ZXJ0ZXIgbmFtZXMgZnJvbSBvcHRpb25zIGFuZCBvcHRpb25zIGZyb20gZWFjaCBvdGhlci4KKwkgKiBAc2VlIENoYXJzZXRJQ1UjZm9yTmFtZUlDVShTdHJpbmcpCisJICogQGRyYWZ0IElDVSAzLjYKKwkgKi8KKwlzdGF0aWMgZmluYWwgYnl0ZSBPUFRJT05fU0VQX0NIQVIgID0gJywnOworCQorCS8qKiBNYXhpbXVtIGxlbmd0aCBvZiBhIGNvbnZlcnRlciBuYW1lIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMTCBAZHJhZnQgSUNVIDMuNiAqLworCXN0YXRpYyBmaW5hbCBpbnQgTUFYX0NPTlZFUlRFUl9OQU1FX0xFTkdUSCAgPSA2MDsKKwkvKiogTWF4aW11bSBsZW5ndGggb2YgYSBjb252ZXJ0ZXIgbmFtZSBpbmNsdWRpbmcgcGF0aCBhbmQgdGVybWluYXRpbmcgTlVMTCBAZHJhZnQgSUNVIDMuNiAqLworCXN0YXRpYyBmaW5hbCBpbnQgTUFYX0ZVTExfRklMRV9OQU1FX0xFTkdUSCA9ICg2MDArTUFYX0NPTlZFUlRFUl9OQU1FX0xFTkdUSCk7CisJCisJLyoqIFNoaWZ0IGluIGZvciBFQkRDRElDX1NUQVRFRlVMIGFuZCBpc28yMDIyIHN0YXRlcyBAZHJhZnQgSUNVIDMuNiAqLworCXN0YXRpYyBmaW5hbCBpbnQgU0kgPSAweDBGOworCS8qKiBTaGlmdCBvdXQgZm9yIEVCRENESUNfU1RBVEVGVUwgYW5kIGlzbzIwMjIgc3RhdGVzIEBkcmFmdCBJQ1UgMy42ICovCisJc3RhdGljIGZpbmFsIGludCBTTyA9IDB4MEU7CisJCisJLy9lbmQgdWNudi5oCisJCisJLy8gYmVnaW4gYmxkLmgKKwkvKiBzaXplIG9mIHRoZSBvdmVyZmxvdyBidWZmZXJzIGluIFVDb252ZXJ0ZXIsIGVub3VnaCBmb3IgZXNjYXBpbmcgY2FsbGJhY2tzICovCisJLy8jZGVmaW5lIEVSUk9SX0JVRkZFUl9MRU5HVEggMzIKKwlzdGF0aWMgZmluYWwgaW50IEVSUk9SX0JVRkZFUl9MRU5HVEggPSAzMjsKKwkKKwkvKiBhdCBtb3N0IDQgYnl0ZXMgcGVyIHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIgKHBhcnQgb2YgLmNudiBmaWxlIGZvcm1hdCEgc2VlIFVDb252ZXJ0ZXJTdGF0aWNEYXRhKSAqLworCXN0YXRpYyBmaW5hbCBpbnQgTUFYX1NVQkNIQVJfTEVOID0gNDsKKwkKKwkvKiBhdCBtb3N0IDggYnl0ZXMgcGVyIGNoYXJhY3RlciBpbiB0b1VCeXRlc1tdIChVVEYtOCB1c2VzIHVwIHRvIDYpICovCisJc3RhdGljIGZpbmFsIGludCBNQVhfQ0hBUl9MRU4gPSA4OworCQorCS8qIGNvbnZlcnRlciBvcHRpb25zIGJpdHMgKi8KKwlzdGF0aWMgZmluYWwgaW50IE9QVElPTl9WRVJTSU9OICAgICA9IDB4ZjsKKwlzdGF0aWMgZmluYWwgaW50IE9QVElPTl9TV0FQX0xGTkwgICA9IDB4MTA7CisJc3RhdGljIGZpbmFsIGludCBPUFRJT05fTUFDICAgPSAweDIwOyAvL2FnbGpwb3J0OmNvbW1lbnQgYWRkZWQgZm9yIE1hYyBJU0NJSSBlbmNvZGluZ3MKKwkKKwkvKiogdmFsdWVzIGZvciB0aGUgdW5pY29kZU1hc2sgKi8KKwlzdGF0aWMgZmluYWwgaW50IEhBU19TVVBQTEVNRU5UQVJZID0gMTsKKwlzdGF0aWMgZmluYWwgaW50IEhBU19TVVJST0dBVEVTID0gICAyOworCS8vIGVuZCBibGQuaAorCQorCS8vIGJlZ2luIGNudi5oCisJLyogdGhpcyBpcyB1c2VkIGluIGZyb21Vbmljb2RlIERCQ1MgdGFibGVzIGFzIGFuICJ1bmFzc2lnbmVkIiBtYXJrZXIgKi8KKwlzdGF0aWMgZmluYWwgaW50IG1pc3NpbmdDaGFyTWFya2VyID0gMHhGRkZGOworCSAvKioKKyAgICAgICogCisgICAgICAqIEBhdXRob3IgcmFtCisgICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorCSAgKi8KKwlzdGF0aWMgaW50ZXJmYWNlIFVDb252ZXJ0ZXJSZXNldENob2ljZSB7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgUkVTRVRfQk9USCA9IDA7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgUkVTRVRfVE9fVU5JQ09ERSA9IFJFU0VUX0JPVEggKyAxOworCSAgICBzdGF0aWMgZmluYWwgaW50IFJFU0VUX0ZST01fVU5JQ09ERSA9IFJFU0VUX1RPX1VOSUNPREUgKyAxOworCX0KKwkKKwkvLyBiZWdpbiB1dGYxNi5oCisJLyoqCisJICogVGhlIG1heGltdW0gbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIHBlciBVbmljb2RlIGNvZGUgcG9pbnQgKFUrMDAwMC4uVSsxMGZmZmYpLgorCSAqIEBkcmFmdCBJQ1UgMi40CisJICovCisJc3RhdGljIGZpbmFsIGludCBVMTZfTUFYX0xFTkdUSCA9IDI7CisJLy8gZW5kIHV0ZjE2LmgJCisJCisJLy8gYmVnaW4gZXJyLmgJCisJLyoqCisJICogRlJPTV9VLCBUT19VIGNvbnRleHQgb3B0aW9ucyBmb3Igc3ViIGNhbGxiYWNrCisJICogQGRyYWZ0IElDVSAzLjYKKwkgKi8KKwlzdGF0aWMgYnl0ZVtdIFNVQl9TVE9QX09OX0lMTEVHQUwgPSB7J2knfTsKKwkKKwkvKioKKwkgKiBGUk9NX1UsIFRPX1UgY29udGV4dCBvcHRpb25zIGZvciBza2lwIGNhbGxiYWNrCisJICogQGRyYWZ0IElDVSAzLjYKKwkgKi8KKwlzdGF0aWMgYnl0ZVtdIFNLSVBfU1RPUF9PTl9JTExFR0FMID0geydpJ307CQorCQorCS8qKiAKKwkgKiBUaGUgcHJvY2VzcyBjb25kaXRpb24gY29kZSB0byBiZSB1c2VkIHdpdGggdGhlIGNhbGxiYWNrcy4gIAorCSAqIENvZGVzIHdoaWNoIGFyZSBncmVhdGVyIHRoYW4gSVJSRUdVTEFSIHNob3VsZCBiZSAKKwkgKiBwYXNzZWQgb24gdG8gYW55IGNoYWluZWQgY2FsbGJhY2tzLgorCSAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisJICovCisJc3RhdGljIGludGVyZmFjZSBVQ29udmVydGVyQ2FsbGJhY2tSZWFzb24geworCQkgc3RhdGljIGZpbmFsIGludCBVTkFTU0lHTkVEID0gMDsgIC8qKjwgVGhlIGNvZGUgcG9pbnQgaXMgdW5hc3NpZ25lZC4KKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBlcnJvciBjb2RlIFVfSU5WQUxJRF9DSEFSX0ZPVU5EIHdpbGwgYmUgc2V0LiAqLworCQkgc3RhdGljIGZpbmFsIGludCBJTExFR0FMID0gMTsgICAgIC8qKjwgVGhlIGNvZGUgcG9pbnQgaXMgaWxsZWdhbC4gRm9yIGV4YW1wbGUsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx4ODFcXHgyRSBpcyBpbGxlZ2FsIGluIFNKSVMgYmVjYXVzZSBcXHgyRQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgbm90IGEgdmFsaWQgdHJhaWwgYnl0ZSBmb3IgdGhlIFxceDgxIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZCBieXRlLgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxzbywgc3RhcnRpbmcgd2l0aCBVbmljb2RlIDMuMC4xLCBub24tc2hvcnRlc3QgYnl0ZSBzZXF1ZW5jZXMKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFVURi04IChsaWtlIFxceEMxXFx4QTEgaW5zdGVhZCBvZiBcXHg2MSBmb3IgVSswMDYxKQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIGFsc28gaWxsZWdhbCwgbm90IGp1c3QgaXJyZWd1bGFyLgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGVycm9yIGNvZGUgVV9JTExFR0FMX0NIQVJfRk9VTkQgd2lsbCBiZSBzZXQuICovCisJCSBzdGF0aWMgZmluYWwgaW50IElSUkVHVUxBUiA9IDI7ICAgLyoqPCBUaGUgY29kZXBvaW50IGlzIG5vdCBhIHJlZ3VsYXIgc2VxdWVuY2UgaW4gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZW5jb2RpbmcuIEZvciBleGFtcGxlLCBcXHhFRFxceEEwXFx4ODAuLlxceEVEXFx4QkZcXHhCRgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIGlycmVndWxhciBVVEYtOCBieXRlIHNlcXVlbmNlcyBmb3Igc2luZ2xlIHN1cnJvZ2F0ZQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSBwb2ludHMuCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgZXJyb3IgY29kZSBVX0lOVkFMSURfQ0hBUl9GT1VORCB3aWxsIGJlIHNldC4gKi8KKwkJIHN0YXRpYyBmaW5hbCBpbnQgUkVTRVQgPSAzOyAgICAgICAvKio8IFRoZSBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCB0aGlzIHJlYXNvbiB3aGVuIGEKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNldCcgaGFzIG9jY3VyZWQuIENhbGxiYWNrIHNob3VsZCByZXNldCBhbGwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLiAqLworCQkgc3RhdGljIGZpbmFsIGludCBDTE9TRSA9IDQ7ICAgICAgICAvKio8IENhbGxlZCB3aGVuIHRoZSBjb252ZXJ0ZXIgaXMgY2xvc2VkLiBUaGUKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrIHNob3VsZCByZWxlYXNlIGFueSBhbGxvY2F0ZWQgbWVtb3J5LiovCisJCSBzdGF0aWMgZmluYWwgaW50IENMT05FID0gNTsgICAgICAgICAvKio8IENhbGxlZCB3aGVuIHNhZmVDbG9uZSgpIGlzIGNhbGxlZCBvbiB0aGUKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZXIuIHRoZSBwb2ludGVyIGF2YWlsYWJsZSBhcyB0aGUKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGV4dCcgaXMgYW4gYWxpYXMgdG8gdGhlIG9yaWdpbmFsIGNvbnZlcnRlcnMnCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCBwb2ludGVyLiBJZiB0aGUgY29udGV4dCBtdXN0IGJlIG93bmVkCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgdGhlIG5ldyBjb252ZXJ0ZXIsIHRoZSBjYWxsYmFjayBtdXN0IGNsb25lIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBkYXRhIGFuZCBjYWxsIHNldEZyb21VQ2FsbGJhY2sgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHNldFRvVUNhbGxiYWNrKSB3aXRoIHRoZSBjb3JyZWN0IHBvaW50ZXIuCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWZ0IElDVSAyLjIKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCX0KKwkvL2VuZCBlcnIuaAorICAgIAorICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9UWVBFID0gImNudiI7CisgICAgc3RhdGljIGZpbmFsIGludCBDTlZfREFUQV9CVUZGRVJfU0laRSA9IDI1MDAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0laRV9PRl9VQ09OVkVSVEVSX1NIQVJFRF9EQVRBID0gMTAwOworCisgICAgc3RhdGljIGZpbmFsIGludCBNQVhJTVVNX1VDUzIgPSAgICAgICAgICAgIDB4MDAwMEZGRkY7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhJTVVNX1VURiA9ICAgICAgICAgICAgIDB4MDAxMEZGRkY7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhJTVVNX1VDUzQgPSAgICAgICAgICAgIDB4N0ZGRkZGRkY7CisgICAgc3RhdGljIGZpbmFsIGludCBIQUxGX1NISUZUID0gICAgICAgICAgICAgIDEwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgSEFMRl9CQVNFID0gICAgICAgICAgICAgICAweDAwMTAwMDA7CisgICAgc3RhdGljIGZpbmFsIGludCBIQUxGX01BU0sgPSAgICAgICAgICAgICAgIDB4M0ZGOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0hJR0hfU1RBUlQgPSAgICAweEQ4MDA7CisgICAgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfSElHSF9FTkQgPSAgICAgIDB4REJGRjsKKyAgICBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9MT1dfU1RBUlQgPSAgICAgMHhEQzAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0xPV19FTkQgPSAgICAgICAweERGRkY7CisgICAgCisgICAgLyogLVNVUlJPR0FURV9MT1dfU1RBUlQgKyBIQUxGX0JBU0UgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9MT1dfQkFTRSA9ICAgICAgOTIxNjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJEYXRhUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyRGF0YVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhN2I4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyRGF0YVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsNTUzIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVQmluYXJ5OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisKKy8qKgorICogdWNudm1iY3MuaAorICoKKyAqIElDVSBjb252ZXJzaW9uICguY252KSBkYXRhIGZpbGUgc3RydWN0dXJlLCBmb2xsb3dpbmcgdGhlIHVzdWFsIFVEYXRhSW5mbworICogaGVhZGVyLgorICoKKyAqIEZvcm1hdCB2ZXJzaW9uOiA2LjIKKyAqCisgKiBzdHJ1Y3QgVUNvbnZlcnRlclN0YXRpY0RhdGEgLS0gc3RydWN0IGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlciBuYW1lLCBJQk0gQ0NTSUQsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluL21heCBieXRlcyBwZXIgY2hhcmFjdGVyLCBldGMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlIHVjbnZfYmxkLmgKKyAqCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoZSBzdGF0aWMgZGF0YSBpcyBmb2xsb3dlZCBieSBjb252ZXJzaW9uVHlwZS1zcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMuCisgKiBBdCB0aGUgbW9tZW50LCB0aGVyZSBhcmUgb25seSB2YXJpYXRpb25zIG9mIE1CQ1MgY29udmVydGVycy4gVGhleSBhbGwgaGF2ZQorICogdGhlIHNhbWUgdG9Vbmljb2RlIHN0cnVjdHVyZXMsIHdoaWxlIHRoZSBmcm9tVW5pY29kZSBzdHJ1Y3R1cmVzIGZvciBTQkNTCisgKiBkaWZmZXIgZnJvbSB0aG9zZSBmb3Igb3RoZXIgTUJDUy1zdHlsZSBjb252ZXJ0ZXJzLgorICoKKyAqIF9NQkNTSGVhZGVyLnZlcnNpb24gNC4yIGFkZHMgYW4gb3B0aW9uYWwgY29udmVyc2lvbiBleHRlbnNpb24gZGF0YSBzdHJ1Y3R1cmUuCisgKiBJZiBpdCBpcyBwcmVzZW50LCB0aGVuIGFuIElDVSB2ZXJzaW9uIHJlYWRpbmcgaGVhZGVyIHZlcnNpb25zIDQuMCBvciA0LjEKKyAqIHdpbGwgYmUgYWJsZSB0byB1c2UgdGhlIGJhc2UgdGFibGUgYW5kIGlnbm9yZSB0aGUgZXh0ZW5zaW9uLgorICoKKyAqIFRoZSB1bmljb2RlTWFzayBpbiB0aGUgc3RhdGljIGRhdGEgaXMgcGFydCBvZiB0aGUgYmFzZSB0YWJsZSBkYXRhIHN0cnVjdHVyZS4KKyAqIEVzcGVjaWFsbHksIHRoZSBVQ05WX0hBU19TVVBQTEVNRU5UQVJZIGZsYWcgZGV0ZXJtaW5lcyB0aGUgbGVuZ3RoIG9mIHRoZQorICogZnJvbVVuaWNvZGUgc3RhZ2UgMSBhcnJheS4KKyAqIFRoZSBzdGF0aWMgZGF0YSB1bmljb2RlTWFzayByZWZlcnMgb25seSB0byB0aGUgYmFzZSB0YWJsZSdzIHByb3BlcnRpZXMgaWYKKyAqIGEgYmFzZSB0YWJsZSBpcyBpbmNsdWRlZC4KKyAqIEluIGFuIGV4dGVuc2lvbi1vbmx5IGZpbGUsIHRoZSBzdGF0aWMgZGF0YSB1bmljb2RlTWFzayBpcyAwLgorICogVGhlIGV4dGVuc2lvbiBkYXRhIGluZGV4ZXMgaGF2ZSBhIHNlcGFyYXRlIGZpZWxkIHdpdGggdGhlIHVuaWNvZGVNYXNrIGZsYWdzLgorICoKKyAqIE1CQ1Mtc3R5bGUgZGF0YSBzdHJ1Y3R1cmUgZm9sbG93aW5nIHRoZSBzdGF0aWMgZGF0YS4KKyAqIE9mZnNldHMgYXJlIGNvdW50ZWQgaW4gYnl0ZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBNQkNTIGhlYWRlciBzdHJ1Y3R1cmUuCisgKiBEZXRhaWxzIGFib3V0IHVzYWdlIGluIGNvbW1lbnRzIGluIHVjbnZtYmNzLmMuCisgKgorICogc3RydWN0IF9NQkNTSGVhZGVyIChzZWUgdGhlIGRlZmluaXRpb24gaW4gdGhpcyBoZWFkZXIgZmlsZSBiZWxvdykKKyAqIGNvbnRhaW5zIDMyLWJpdCBmaWVsZHMgYXMgZm9sbG93czoKKyAqIDggdmFsdWVzOgorICogIDAgICB1aW50OF90WzRdICBNQkNTIHZlcnNpb24gaW4gVVZlcnNpb25JbmZvIGZvcm1hdCAoY3VycmVudGx5IDQuMi4wLjApCisgKiAgMSAgIHVpbnQzMl90ICAgIGNvdW50U3RhdGVzCisgKiAgMiAgIHVpbnQzMl90ICAgIGNvdW50VG9VRmFsbGJhY2tzCisgKiAgMyAgIHVpbnQzMl90ICAgIG9mZnNldFRvVUNvZGVVbml0cworICogIDQgICB1aW50MzJfdCAgICBvZmZzZXRGcm9tVVRhYmxlCisgKiAgNSAgIHVpbnQzMl90ICAgIG9mZnNldEZyb21VQnl0ZXMKKyAqICA2ICAgdWludDMyX3QgICAgZmxhZ3MsIGJpdHM6CisgKiAgICAgICAgICAgICAgICAgICAgICAzMS4uIDggb2Zmc2V0RXh0ZW5zaW9uIC0tIF9NQkNTSGVhZGVyLnZlcnNpb24gNC4yIChJQ1UgMi44KSBhbmQgaGlnaGVyCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgZm9yIG9sZGVyIHZlcnNpb25zIGFuZCBpZgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVyZSBpcyBub3QgZXh0ZW5zaW9uIHN0cnVjdHVyZQorICogICAgICAgICAgICAgICAgICAgICAgIDcuLiAwIG91dHB1dFR5cGUKKyAqICA3ICAgdWludDMyX3QgICAgZnJvbVVCeXRlc0xlbmd0aCAtLSBfTUJDU0hlYWRlci52ZXJzaW9uIDQuMSAoSUNVIDIuNCkgYW5kIGhpZ2hlcgorICogICAgICAgICAgICAgICAgICBjb3VudHMgYnl0ZXMgaW4gZnJvbVVCeXRlc1tdCisgKgorICogaWYob3V0cHV0VHlwZT09TUJDU19PVVRQVVRfRVhUX09OTFkpIHsKKyAqICAgICAtLSBiYXNlIHRhYmxlIG5hbWUgZm9yIGV4dGVuc2lvbi1vbmx5IHRhYmxlCisgKiAgICAgY2hhciBiYXNlVGFibGVOYW1lW3ZhcmlhYmxlXTsgLS0gd2l0aCBOVUwgcGx1cyBwYWRkaW5nIGZvciA0LWFsaWdubWVudAorICoKKyAqICAgICAtLSBhbGwgX01CQ1NIZWFkZXIgZmllbGRzIGV4Y2VwdCBmb3IgdmVyc2lvbiBhbmQgZmxhZ3MgYXJlIDAKKyAqIH0gZWxzZSB7CisgKiAgICAgLS0gbm9ybWFsIGJhc2UgdGFibGUgd2l0aCBvcHRpb25hbCBleHRlbnNpb24KKyAqCisgKiAgICAgaW50MzJfdCBzdGF0ZVRhYmxlW2NvdW50U3RhdGVzXVsyNTZdOworICogICAgCisgKiAgICAgc3RydWN0IF9NQkNTVG9VRmFsbGJhY2sgeyAoZmFsbGJhY2tzIGFyZSBzb3J0ZWQgYnkgb2Zmc2V0KQorICogICAgICAgICB1aW50MzJfdCBvZmZzZXQ7CisgKiAgICAgICAgIFVDaGFyMzIgY29kZVBvaW50OworICogICAgIH0gdG9VRmFsbGJhY2tzW2NvdW50VG9VRmFsbGJhY2tzXTsKKyAqICAgIAorICogICAgIHVpbnQxNl90IHVuaWNvZGVDb2RlVW5pdHNbKG9mZnNldEZyb21VVGFibGUtb2Zmc2V0VG9VQ29kZVVuaXRzKS8yXTsKKyAqICAgICAgICAgICAgICAgICAgKHBhZGRlZCB0byBhbiBldmVuIG51bWJlciBvZiB1bml0cykKKyAqICAgIAorICogICAgIC0tIHN0YWdlIDEgdGFibGVzCisgKiAgICAgaWYoc3RhdGljRGF0YS51bmljb2RlTWFzayZVQ05WX0hBU19TVVBQTEVNRU5UQVJZKSB7CisgKiAgICAgICAgIC0tIHN0YWdlIDEgdGFibGUgZm9yIGFsbCBvZiBVbmljb2RlCisgKiAgICAgICAgIHVpbnQxNl90IGZyb21VVGFibGVbMHg0NDBdOyAoMzItYml0LWFsaWduZWQpCisgKiAgICAgfSBlbHNlIHsKKyAqICAgICAgICAgLS0gQk1QLW9ubHkgdGFibGVzIGhhdmUgYSBzbWFsbGVyIHN0YWdlIDEgdGFibGUKKyAqICAgICAgICAgdWludDE2X3QgZnJvbVVUYWJsZVsweDQwXTsgKDMyLWJpdC1hbGlnbmVkKQorICogICAgIH0KKyAqICAgIAorICogICAgIC0tIHN0YWdlIDIgdGFibGVzCisgKiAgICAgICAgbGVuZ3RoIGRldGVybWluZWQgYnkgdG9wIG9mIHN0YWdlIDEgYW5kIGJvdHRvbSBvZiBzdGFnZSAzIHRhYmxlcworICogICAgIGlmKG91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUXzEpIHsKKyAqICAgICAgICAgLS0gU0JDUzogcHVyZSBpbmRleGVzCisgKiAgICAgICAgIHVpbnQxNl90IHN0YWdlIDIgaW5kZXhlc1s/XTsKKyAqICAgICB9IGVsc2UgeworICogICAgICAgICAtLSBEQkNTLCBNQkNTLCBFQkNESUNfU1RBVEVGVUwsIC4uLjogcm91bmR0cmlwIGZsYWdzIGFuZCBpbmRleGVzCisgKiAgICAgICAgIHVpbnQzMl90IHN0YWdlIDIgZmxhZ3MgYW5kIGluZGV4ZXNbP107CisgKiAgICAgfQorICogICAgCisgKiAgICAgLS0gc3RhZ2UgMyB0YWJsZXMgd2l0aCBieXRlIHJlc3VsdHMKKyAqICAgICBpZihvdXRwdXRUeXBlPT1NQkNTX09VVFBVVF8xKSB7CisgKiAgICAgICAgIC0tIFNCQ1M6IGVhY2ggMTYtYml0IHJlc3VsdCBjb250YWlucyBmbGFncyBhbmQgdGhlIHJlc3VsdCBieXRlLCBzZWUgdWNudm1iY3MuYworICogICAgICAgICB1aW50MTZfdCBmcm9tVUJ5dGVzW2Zyb21VQnl0ZXNMZW5ndGgvMl07CisgKiAgICAgfSBlbHNlIHsKKyAqICAgICAgICAgLS0gREJDUywgTUJDUywgRUJDRElDX1NUQVRFRlVMLCAuLi4gMi8zLzQgYnl0ZXMgcmVzdWx0LCBzZWUgdWNudm1iY3MuYworICogICAgICAgICB1aW50OF90IGZyb21VQnl0ZXNbZnJvbVVCeXRlc0xlbmd0aF07IG9yCisgKiAgICAgICAgIHVpbnQxNl90IGZyb21VQnl0ZXNbZnJvbVVCeXRlc0xlbmd0aC8yXTsgb3IKKyAqICAgICAgICAgdWludDMyX3QgZnJvbVVCeXRlc1tmcm9tVUJ5dGVzTGVuZ3RoLzRdOworICogICAgIH0KKyAqIH0KKyAqCisgKiAtLSBleHRlbnNpb24gdGFibGUsIGRldGFpbHMgc2VlIHVjbnZfZXh0LmgKKyAqIGludDMyX3QgaW5kZXhlc1s+PTMyXTsgLi4uCisgKi8KKy8qCisgKiB1Y252X2V4dC5oCisgKgorICogU2VlIGljdWh0bWwvZGVzaWduL2NvbnZlcnNpb24vY29udmVyc2lvbl9leHRlbnNpb25zLmh0bWwKKyAqCisgKiBDb252ZXJzaW9uIGV4dGVuc2lvbnMgc2VydmUgdHdvIHB1cnBvc2VzOgorICogMS4gVGhleSBzdXBwb3J0IG06biBtYXBwaW5ncy4KKyAqIDIuIFRoZXkgc3VwcG9ydCBleHRlbnNpb24tb25seSBjb252ZXJzaW9uIGZpbGVzIHRoYXQgYXJlIHVzZWQgdG9nZXRoZXIKKyAqICAgIHdpdGggdGhlIHJlZ3VsYXIgY29udmVyc2lvbiBkYXRhIGluIGJhc2UgZmlsZXMuCisgKgorICogQSBiYXNlIGZpbGUgbWF5IGNvbnRhaW4gYW4gZXh0ZW5zaW9uIHRhYmxlIChleHBsaWNpdGx5IHJlcXVlc3RlZCBvcgorICogaW1wbGljaXRseSBnZW5lcmF0ZWQgZm9yIG06biBtYXBwaW5ncyksIGJ1dCBpdHMgZXh0ZW5zaW9uIHRhYmxlIGlzIG5vdAorICogdXNlZCB3aGVuIGFuIGV4dGVuc2lvbi1vbmx5IGZpbGUgaXMgdXNlZC4KKyAqCisgKiBJdCBpcyBhbiBlcnJvciBpZiBhIGJhc2UgZmlsZSBjb250YWlucyBhbnkgcmVndWxhciAobm90IGV4dGVuc2lvbikgbWFwcGluZworICogZnJvbSB0aGUgc2FtZSBzZXF1ZW5jZSBhcyBhIG1hcHBpbmcgaW4gdGhlIGV4dGVuc2lvbiBmaWxlCisgKiBiZWNhdXNlIHRoZSBiYXNlIG1hcHBpbmcgd291bGQgaGlkZSB0aGUgZXh0ZW5zaW9uIG1hcHBpbmcuCisgKgorICoKKyAqIERhdGEgZm9yIGNvbnZlcnNpb24gZXh0ZW5zaW9uczoKKyAqCisgKiBPbmUgc2V0IG9mIGRhdGEgc3RydWN0dXJlcyBwZXIgY29udmVyc2lvbiBkaXJlY3Rpb24gKHRvL2Zyb20gVW5pY29kZSkuCisgKiBUaGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBzb3J0ZWQgYnkgaW5wdXQgdW5pdHMgdG8gYWxsb3cgZm9yIGJpbmFyeSBzZWFyY2guCisgKiBJbnB1dCBzZXF1ZW5jZXMgb2YgbW9yZSB0aGFuIG9uZSB1bml0IGFyZSBoYW5kbGVkIGxpa2UgY29udHJhY3Rpb24gdGFibGVzCisgKiBpbiBjb2xsYXRpb246CisgKiBUaGUgbG9va3VwIHZhbHVlIG9mIGEgdW5pdCBwb2ludHMgdG8gYW5vdGhlciB0YWJsZSB0aGF0IGlzIHRvIGJlIHNlYXJjaGVkCisgKiBmb3IgdGhlIG5leHQgdW5pdCwgcmVjdXJzaXZlbHkuCisgKgorICogRm9yIGNvbnZlcnNpb24gZnJvbSBVbmljb2RlLCB0aGUgaW5pdGlhbCBjb2RlIHBvaW50IGlzIGxvb2tlZCB1cCBpbgorICogYSAzLXN0YWdlIHRyaWUgZm9yIHNwZWVkLAorICogd2l0aCBhbiBhZGRpdGlvbmFsIHRhYmxlIG9mIHVuaXF1ZSByZXN1bHRzIHRvIHNhdmUgc3BhY2UuCisgKgorICogTG9uZyBvdXRwdXQgc3RyaW5ncyBhcmUgc3RvcmVkIGluIHNlcGFyYXRlIGFycmF5cywgd2l0aCBsZW5ndGggYW5kIGluZGV4CisgKiBpbiB0aGUgbG9va3VwIHRhYmxlcy4KKyAqIE91dHB1dCByZXN1bHRzIGFsc28gaW5jbHVkZSBhIGZsYWcgZGlzdGluZ3Vpc2hpbmcgcm91bmR0cmlwIGZyb20KKyAqIChyZXZlcnNlKSBmYWxsYmFjayBtYXBwaW5ncy4KKyAqCisgKiBJbnB1dCBVbmljb2RlIHN0cmluZ3MgbXVzdCBub3QgYmVnaW4gb3IgZW5kIHdpdGggdW5wYWlyZWQgc3Vycm9nYXRlcworICogdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBtYXRjaGVzIG9uIHBhcnRzIG9mIHN1cnJvZ2F0ZSBwYWlycy4KKyAqCisgKiBNYXBwaW5ncyBmcm9tIG11bHRpcGxlIGNoYXJhY3RlcnMgKGNvZGUgcG9pbnRzIG9yIGNvZGVwYWdlIHN0YXRlCisgKiB0YWJsZSBzZXF1ZW5jZXMpIG11c3QgYmUgc2VhcmNoZWQgcHJlZmVycmluZyB0aGUgbG9uZ2VzdCBtYXRjaC4KKyAqIEZvciB0aGlzIHRvIHdvcmsgYW5kIGJlIGVmZmljaWVudCwgdGhlIHZhcmlhYmxlLXdpZHRoIHRhYmxlIG11c3QgY29udGFpbgorICogYWxsIG1hcHBpbmdzIHRoYXQgY29udGFpbiBwcmVmaXhlcyBvZiB0aGUgbXVsdGlwbGUgY2hhcmFjdGVycy4KKyAqIElmIGFuIGV4dGVuc2lvbiB0YWJsZSBpcyBidWlsdCBvbiB0b3Agb2YgYSBiYXNlIHRhYmxlIGluIGFub3RoZXIgZmlsZQorICogYW5kIGEgYmFzZSB0YWJsZSBlbnRyeSBpcyBhIHByZWZpeCBvZiBhIG11bHRpLWNoYXJhY3RlciBtYXBwaW5nLCB0aGVuCisgKiB0aGlzIGlzIGFuIGVycm9yLgorICoKKyAqCisgKiBJbXBsZW1lbnRhdGlvbiBub3RlOgorICoKKyAqIEN1cnJlbnRseSwgdGhlIHBhcnNlciBhbmQgc2V2ZXJhbCBjaGVja3MgaW4gdGhlIGNvZGUgbGltaXQgdGhlIG51bWJlcgorICogb2YgVUNoYXJzIG9yIGJ5dGVzIGluIGEgbWFwcGluZyB0bworICogVUNOVl9FWFRfTUFYX1VDSEFSUyBhbmQgVUNOVl9FWFRfTUFYX0JZVEVTLCByZXNwZWN0aXZlbHksCisgKiB3aGljaCBhcmUgb3V0cHV0IHZhbHVlIGxpbWl0cyBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuCisgKgorICogRm9yIGlucHV0LCB0aGlzIGlzIG5vdCBzdHJpY3RseSBuZWNlc3NhcnkgLSBpdCBpcyBhIGhhcmQgbGltaXQgb25seSBmb3IgdGhlCisgKiBidWZmZXJzIGluIFVDb252ZXJ0ZXIgdGhhdCBhcmUgdXNlZCB0byBzdG9yZSBwYXJ0aWFsIG1hdGNoZXMuCisgKgorICogSW5wdXQgc2VxdWVuY2VzIGNvdWxkIG90aGVyd2lzZSBiZSBhcmJpdHJhcmlseSBsb25nIGlmIHBhcnRpYWwgbWF0Y2hlcworICogbmVlZCBub3QgYmUgc3RvcmVkIChpLmUuLCBpZiBhIHNlcXVlbmNlIGRvZXMgbm90IHNwYW4gc2V2ZXJhbCBidWZmZXJzIHdpdGggdG9vCisgKiBtYW55IHVuaXRzIGJlZm9yZSB0aGUgbGFzdCBidWZmZXIpLCBhbHRob3VnaCB0aGVuIHJlc3VsdHMgd291bGQgZGlmZmVyCisgKiBkZXBlbmRpbmcgb24gd2hldGhlciBwYXJ0aWFsIG1hdGNoZXMgZXhjZWVkIHRoZSBsaW1pdHMgb3Igbm90LAorICogd2hpY2ggZGVwZW5kcyBvbiB0aGUgcGF0dGVybiBvZiBidWZmZXIgc2l6ZXMuCisgKgorICoKKyAqIERhdGEgc3RydWN0dXJlOgorICoKKyAqIGludDMyX3QgaW5kZXhlc1s+PTMyXTsKKyAqCisgKiAgIEFycmF5IG9mIGluZGV4ZXMgYW5kIGxlbmd0aHMgZXRjLiBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBpcyBhdCBsZWFzdCAzMi4KKyAqICAgVGhlIGFjdHVhbCBsZW5ndGggaXMgc3RvcmVkIGluIGluZGV4ZXNbMF0gdG8gYmUgZm9yd2FyZCBjb21wYXRpYmxlLgorICoKKyAqICAgRWFjaCBpbmRleCB0byBhbm90aGVyIGFycmF5IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgZnJvbSBpbmRleGVzW10uCisgKiAgIEVhY2ggbGVuZ3RoIG9mIGFuIGFycmF5IGlzIHRoZSBudW1iZXIgb2YgYXJyYXkgYmFzZSB1bml0cyBpbiB0aGF0IGFycmF5LgorICoKKyAqICAgU29tZSBvZiB0aGUgc3RydWN0dXJlcyBtYXkgbm90IGJlIHByZXNlbnQsIGluIHdoaWNoIGNhc2UgdGhlaXIgaW5kZXhlcworICogICBhbmQgbGVuZ3RocyBhcmUgMC4KKyAqCisgKiAgIFVzYWdlIG9mIGluZGV4ZXNbaV06CisgKiAgIFswXSAgbGVuZ3RoIG9mIGluZGV4ZXNbXQorICoKKyAqICAgLy8gdG8gVW5pY29kZSB0YWJsZQorICogICBbMV0gIGluZGV4IG9mIHRvVVRhYmxlW10gKGFycmF5IG9mIHVpbnQzMl90KQorICogICBbMl0gIGxlbmd0aCBvZiB0b1VUYWJsZVtdCisgKiAgIFszXSAgaW5kZXggb2YgdG9VVUNoYXJzW10gKGFycmF5IG9mIFVDaGFyKQorICogICBbNF0gIGxlbmd0aCBvZiB0b1VVQ2hhcnNbXQorICoKKyAqICAgLy8gZnJvbSBVbmljb2RlIHRhYmxlLCBub3QgZm9yIHRoZSBpbml0aWFsIGNvZGUgcG9pbnQKKyAqICAgWzVdICBpbmRleCBvZiBmcm9tVVRhYmxlVUNoYXJzW10gKGFycmF5IG9mIFVDaGFyKQorICogICBbNl0gIGluZGV4IG9mIGZyb21VVGFibGVWYWx1ZXNbXSAoYXJyYXkgb2YgdWludDMyX3QpCisgKiAgIFs3XSAgbGVuZ3RoIG9mIGZyb21VVGFibGVVQ2hhcnNbXSBhbmQgZnJvbVVUYWJsZVZhbHVlc1tdCisgKiAgIFs4XSAgaW5kZXggb2YgZnJvbVVCeXRlc1tdIChhcnJheSBvZiBjaGFyKQorICogICBbOV0gIGxlbmd0aCBvZiBmcm9tVUJ5dGVzW10KKyAqCisgKiAgIC8vIGZyb20gVW5pY29kZSB0cmllIGZvciBpbml0aWFsLWNvZGUgcG9pbnQgbG9va3VwCisgKiAgIFsxMF0gaW5kZXggb2YgZnJvbVVTdGFnZTEyW10gKGNvbWJpbmVkIGFycmF5IG9mIHVpbnQxNl90IGZvciBzdGFnZXMgMSAmIDIpCisgKiAgIFsxMV0gbGVuZ3RoIG9mIHN0YWdlIDEgcG9ydGlvbiBvZiBmcm9tVVN0YWdlMTJbXQorICogICBbMTJdIGxlbmd0aCBvZiBmcm9tVVN0YWdlMTJbXQorICogICBbMTNdIGluZGV4IG9mIGZyb21VU3RhZ2UzW10gKGFycmF5IG9mIHVpbnQxNl90IGluZGV4ZXMgaW50byBmcm9tVVN0YWdlM2JbXSkKKyAqICAgWzE0XSBsZW5ndGggb2YgZnJvbVVTdGFnZTNbXQorICogICBbMTVdIGluZGV4IG9mIGZyb21VU3RhZ2UzYltdIChhcnJheSBvZiB1aW50MzJfdCBsaWtlIGZyb21VVGFibGVWYWx1ZXNbXSkKKyAqICAgWzE2XSBsZW5ndGggb2YgZnJvbVVTdGFnZTNiW10KKyAqCisgKiAgIFsxN10gQml0IGZpZWxkIGNvbnRhaW5pbmcgbnVtYmVycyBvZiBieXRlczoKKyAqICAgICAgICAzMS4uMjQgcmVzZXJ2ZWQsIDAKKyAqICAgICAgICAyMy4uMTYgbWF4aW11bSBpbnB1dCBieXRlcworICogICAgICAgIDE1Li4gOCBtYXhpbXVtIG91dHB1dCBieXRlcworICogICAgICAgICA3Li4gMCBtYXhpbXVtIGJ5dGVzIHBlciBVQ2hhcgorICoKKyAqICAgWzE4XSBCaXQgZmllbGQgY29udGFpbmluZyBudW1iZXJzIG9mIFVDaGFyczoKKyAqICAgICAgICAzMS4uMjQgcmVzZXJ2ZWQsIDAKKyAqICAgICAgICAyMy4uMTYgbWF4aW11bSBpbnB1dCBVQ2hhcnMKKyAqICAgICAgICAxNS4uIDggbWF4aW11bSBvdXRwdXQgVUNoYXJzCisgKiAgICAgICAgIDcuLiAwIG1heGltdW0gVUNoYXJzIHBlciBieXRlCisgKgorICogICBbMTldIEJpdCBmaWVsZCBjb250YWluaW5nIGZsYWdzOgorICogICAgICAgICAgICAgICAoZXh0ZW5zaW9uIHRhYmxlIHVuaWNvZGVNYXNrKQorICogICAgICAgICAxICAgICBVQ05WX0hBU19TVVJST0dBVEVTIGZsYWcgZm9yIHRoZSBleHRlbnNpb24gdGFibGUKKyAqICAgICAgICAgMCAgICAgVUNOVl9IQVNfU1VQUExFTUVOVEFSWSBmbGFnIGZvciB0aGUgZXh0ZW5zaW9uIHRhYmxlCisgKgorICogICBbMjBdLi5bMzBdIHJlc2VydmVkLCAwCisgKiAgIFszMV0gbnVtYmVyIG9mIGJ5dGVzIGZvciB0aGUgZW50aXJlIGV4dGVuc2lvbiBzdHJ1Y3R1cmUKKyAqICAgWz4zMV0gcmVzZXJ2ZWQ7IHRoZXJlIGFyZSBpbmRleGVzWzBdIGluZGV4ZXMKKyAqCisgKgorICogdWludDMyX3QgdG9VVGFibGVbXTsKKyAqCisgKiAgIEFycmF5IG9mIGJ5dGUvdmFsdWUgcGFpcnMgZm9yIGxvb2t1cHMgZm9yIHRvVW5pY29kZSBjb252ZXJzaW9uLgorICogICBUaGUgYXJyYXkgaXMgcGFydGl0aW9uZWQgaW50byBzZWN0aW9ucyBsaWtlIGNvbGxhdGlvbiBjb250cmFjdGlvbiB0YWJsZXMuCisgKiAgIEVhY2ggc2VjdGlvbiBjb250YWlucyBvbmUgd29yZCB3aXRoIHRoZSBudW1iZXIgb2YgZm9sbG93aW5nIHdvcmRzIGFuZAorICogICBhIGRlZmF1bHQgdmFsdWUgZm9yIHdoZW4gdGhlIGxvb2t1cCBpbiB0aGlzIHNlY3Rpb24geWllbGRzIG5vIG1hdGNoLgorICoKKyAqICAgQSBzZWN0aW9uIGlzIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgb2YgaW5wdXQgYnl0ZXMsCisgKiAgIGFsbG93aW5nIGZvciBmYXN0IGxpbmVhciBvciBiaW5hcnkgc2VhcmNoZXMuCisgKiAgIFRoZSBidWlsZGVyIG1heSBzdG9yZSBlbnRyaWVzIGZvciBhIGNvbnRpZ3VvdXMgcmFuZ2Ugb2YgYnl0ZSB2YWx1ZXMKKyAqICAgKGNvbXBhcmUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgbGFzdCBvbmUgd2l0aCBjb3VudCksCisgKiAgIHdoaWNoIHRoZW4gYWxsb3dzIGZvciBkaXJlY3QgYXJyYXkgYWNjZXNzLgorICogICBUaGUgYnVpbGRlciBzaG91bGQgYWx3YXlzIGRvIHRoaXMgZm9yIHRoZSBpbml0aWFsIHRhYmxlIHNlY3Rpb24uCisgKgorICogICBFbnRyaWVzIG1heSBoYXZlIDAgdmFsdWVzLCBzZWUgYmVsb3cuCisgKiAgIE5vIHR3byBlbnRyaWVzIGluIGEgc2VjdGlvbiBoYXZlIHRoZSBzYW1lIGJ5dGUgdmFsdWVzLgorICoKKyAqICAgRWFjaCB1aW50MzJfdCBjb250YWlucyBhbiBpbnB1dCBieXRlIHZhbHVlIGluIGJpdHMgMzEuLjI0IGFuZCB0aGUKKyAqICAgY29ycmVzcG9uZGluZyBsb29rdXAgdmFsdWUgaW4gYml0cyAyMy4uMC4KKyAqICAgSW50ZXJwcmV0IHRoZSB2YWx1ZSBhcyBmb2xsb3dzOgorICogICAgIGlmKHZhbHVlPT0wKSB7CisgKiAgICAgICBubyBtYXRjaCwgc2VlIGJlbG93CisgKiAgICAgfSBlbHNlIGlmKHZhbHVlPDB4MWYwMDAwKSB7CisgKiAgICAgICBwYXJ0aWFsIG1hdGNoIC0gdXNlIHZhbHVlIGFzIGluZGV4IHRvIHRoZSBuZXh0IHRvVVRhYmxlIHNlY3Rpb24KKyAqICAgICAgIGFuZCBtYXRjaCB0aGUgbmV4dCB1bml0OyAodmFsdWUgaW5kZXhlcyB0b1VUYWJsZVt2YWx1ZV0pCisgKiAgICAgfSBlbHNlIHsKKyAqICAgICAgIGlmKGJpdCAyMyBzZXQpIHsKKyAqICAgICAgICAgcm91bmR0cmlwOworICogICAgICAgfSBlbHNlIHsKKyAqICAgICAgICAgZmFsbGJhY2s7CisgKiAgICAgICB9CisgKiAgICAgICB1bnNldCB2YWx1ZSBiaXQgMjM7CisgKiAgICAgICBpZih2YWx1ZTw9MHgyZmZmZmYpIHsKKyAqICAgICAgICAgKHZhbHVlLTB4MWYwMDAwKSBpcyBhIGNvZGUgcG9pbnQ7IChCTVA6IHZhbHVlPD0weDFmZmZmZikKKyAqICAgICAgIH0gZWxzZSB7CisgKiAgICAgICAgIGJpdHMgMTcuLjAgKHZhbHVlJjB4M2ZmZmYpIGlzIGFuIGluZGV4IHRvCisgKiAgICAgICAgICAgdGhlIHJlc3VsdCBVQ2hhcnMgaW4gdG9VVUNoYXJzW107ICgwIGluZGV4ZXMgdG9VVUNoYXJzWzBdKQorICogICAgICAgICBsZW5ndGggb2YgdGhlIHJlc3VsdD0oKHZhbHVlPj4xOCktMTIpOyAobGVuZ3RoPTAuLjE5KQorICogICAgICAgfQorICogICAgIH0KKyAqCisgKiAgIFRoZSBmaXJzdCB3b3JkIGluIGEgc2VjdGlvbiBjb250YWlucyB0aGUgbnVtYmVyIG9mIGZvbGxvd2luZyB3b3JkcyBpbiB0aGUKKyAqICAgaW5wdXQgYnl0ZSBwb3NpdGlvbiAoYml0cyAzMS4uMjQsIG51bWJlcj0xLi4weGZmKS4KKyAqICAgVGhlIHZhbHVlIG9mIHRoZSBpbml0aWFsIHdvcmQgaXMgdXNlZCB3aGVuIHRoZSBjdXJyZW50IGJ5dGUgaXMgbm90IGZvdW5kCisgKiAgIGluIHRoaXMgc2VjdGlvbi4KKyAqICAgSWYgdGhlIHZhbHVlIGlzIG5vdCAwLCB0aGVuIGl0IHJlcHJlc2VudHMgYSByZXN1bHQgYXMgYWJvdmUuCisgKiAgIElmIHRoZSB2YWx1ZSBpcyAwLCB0aGVuIHRoZSBzZWFyY2ggaGFzIHRvIHJldHVybiBhIHNob3J0ZXIgbWF0Y2ggd2l0aCBhbgorICogICBlYXJsaWVyIGRlZmF1bHQgdmFsdWUgYXMgdGhlIHJlc3VsdCwgb3IgcmVzdWx0IGluICJ1bm1hcHBhYmxlIiBldmVuIGZvciB0aGUKKyAqICAgaW5pdGlhbCBieXRlcy4KKyAqICAgSWYgdGhlIHZhbHVlIGlzIDAgZm9yIHRoZSBpbml0aWFsIHRvVVRhYmxlIGVudHJ5LCB0aGVuIHRoZSBpbml0aWFsIGJ5dGUKKyAqICAgZG9lcyBub3Qgc3RhcnQgYW55IG1hcHBpbmcgaW5wdXQuCisgKgorICoKKyAqIFVDaGFyIHRvVVVDaGFyc1tdOworICoKKyAqICAgQ29udGFpbnMgdG9Vbmljb2RlIG1hcHBpbmcgcmVzdWx0cywgc3RvcmVkIGFzIHNlcXVlbmNlcyBvZiBVQ2hhcnMuCisgKiAgIEluZGV4ZXMgYW5kIGxlbmd0aHMgc3RvcmVkIGluIHRoZSB0b1VUYWJsZVtdLgorICoKKyAqCisgKiBVQ2hhciBmcm9tVVRhYmxlVUNoYXJzW107CisgKiB1aW50MzJfdCBmcm9tVVRhYmxlVmFsdWVzW107CisgKgorICogICBUaGUgZnJvbVVUYWJsZSBpcyBzcGxpdCBpbnRvIHR3byBhcnJheXMsIGJ1dCB3b3JrcyBvdGhlcndpc2UgbXVjaCBsaWtlCisgKiAgIHRoZSB0b1VUYWJsZS4gVGhlIGFycmF5IGlzIHBhcnRpdGlvbmVkIGludG8gc2VjdGlvbnMgbGlrZSBjb2xsYXRpb24KKyAqICAgY29udHJhY3Rpb24gdGFibGVzIGFuZCB0b1VUYWJsZS4KKyAqICAgQSByb3cgaW4gdGhlIHRhYmxlIGNvbnNpc3RzIG9mIHNhbWUtaW5kZXggZW50cmllcyBpbiBmcm9tVVRhYmxlVUNoYXJzW10KKyAqICAgYW5kIGZyb21VVGFibGVWYWx1ZXNbXS4KKyAqCisgKiAgIEludGVycHJldCBhIHZhbHVlIGFzIGZvbGxvd3M6CisgKiAgICAgaWYodmFsdWU9PTApIHsKKyAqICAgICAgIG5vIG1hdGNoLCBzZWUgYmVsb3cKKyAqICAgICB9IGVsc2UgaWYodmFsdWU8PTB4ZmZmZmZmKSB7IChiaXRzIDMxLi4yNCBhcmUgMCkKKyAqICAgICAgIHBhcnRpYWwgbWF0Y2ggLSB1c2UgdmFsdWUgYXMgaW5kZXggdG8gdGhlIG5leHQgZnJvbVVUYWJsZSBzZWN0aW9uCisgKiAgICAgICBhbmQgbWF0Y2ggdGhlIG5leHQgdW5pdDsgKHZhbHVlIGluZGV4ZXMgZnJvbVVUYWJsZVt2YWx1ZV0pCisgKiAgICAgfSBlbHNlIHsKKyAqICAgICAgIGlmKHZhbHVlPT0weDgwMDAwMDAxKSB7CisgKiAgICAgICAgIHJldHVybiBubyBtYXBwaW5nLCBidXQgcmVxdWVzdCBmb3IgPHN1YmNoYXIxPjsKKyAqICAgICAgIH0KKyAqICAgICAgIGlmKGJpdCAzMSBzZXQpIHsKKyAqICAgICAgICAgcm91bmR0cmlwOworICogICAgICAgfSBlbHNlIHsKKyAqICAgICAgICAgZmFsbGJhY2s7CisgKiAgICAgICB9CisgKiAgICAgICAvLyBiaXRzIDMwLi4yOSByZXNlcnZlZCwgMAorICogICAgICAgbGVuZ3RoPSh2YWx1ZT4+MjQpJjB4MWY7IChiaXRzIDI4Li4yNCkKKyAqICAgICAgIGlmKGxlbmd0aD09MS4uMykgeworICogICAgICAgICBiaXRzIDIzLi4wIGNvbnRhaW4gMS4uMyBieXRlcywgcGFkZGVkIHdpdGggMDBzIG9uIHRoZSBsZWZ0OworICogICAgICAgfSBlbHNlIHsKKyAqICAgICAgICAgYml0cyAyMy4uMCAodmFsdWUmMHhmZmZmZmYpIGlzIGFuIGluZGV4IHRvCisgKiAgICAgICAgICAgdGhlIHJlc3VsdCBieXRlcyBpbiBmcm9tVUJ5dGVzW107ICgwIGluZGV4ZXMgZnJvbVVCeXRlc1swXSkKKyAqICAgICAgIH0KKyAqICAgICB9CisgKiAgICAgICAKKyAqICAgVGhlIGZpcnN0IHBhaXIgaW4gYSBzZWN0aW9uIGNvbnRhaW5zIHRoZSBudW1iZXIgb2YgZm9sbG93aW5nIHBhaXJzIGluIHRoZQorICogICBVQ2hhciBwb3NpdGlvbiAoMTYgYml0cywgbnVtYmVyPTEuLjB4ZmZmZikuCisgKiAgIFRoZSB2YWx1ZSBvZiB0aGUgaW5pdGlhbCBwYWlyIGlzIHVzZWQgd2hlbiB0aGUgY3VycmVudCBVQ2hhciBpcyBub3QgZm91bmQKKyAqICAgaW4gdGhpcyBzZWN0aW9uLgorICogICBJZiB0aGUgdmFsdWUgaXMgbm90IDAsIHRoZW4gaXQgcmVwcmVzZW50cyBhIHJlc3VsdCBhcyBhYm92ZS4KKyAqICAgSWYgdGhlIHZhbHVlIGlzIDAsIHRoZW4gdGhlIHNlYXJjaCBoYXMgdG8gcmV0dXJuIGEgc2hvcnRlciBtYXRjaCB3aXRoIGFuCisgKiAgIGVhcmxpZXIgZGVmYXVsdCB2YWx1ZSBhcyB0aGUgcmVzdWx0LCBvciByZXN1bHQgaW4gInVubWFwcGFibGUiIGV2ZW4gZm9yIHRoZQorICogICBpbml0aWFsIFVDaGFycy4KKyAqCisgKiAgIElmIHRoZSBmcm9tIFVuaWNvZGUgdHJpZSBpcyBwcmVzZW50LCB0aGVuIHRoZSBmcm9tIFVuaWNvZGUgc2VhcmNoIHRhYmxlcworICogICBhcmUgbm90IHVzZWQgZm9yIGluaXRpYWwgY29kZSBwb2ludHMuCisgKiAgIEluIHRoaXMgY2FzZSwgdGhlIGZpcnN0IGVudHJpZXMgKGluZGV4IDApIGluIHRoZSB0YWJsZXMgYXJlIG5vdCB1c2VkCisgKiAgIChyZXNlcnZlZCwgc2V0IHRvIDApIGJlY2F1c2UgYSB2YWx1ZSBvZiAwIGlzIHVzZWQgaW4gdHJpZSByZXN1bHRzCisgKiAgIHRvIGluZGljYXRlIG5vIG1hcHBpbmcuCisgKgorICoKKyAqIHVpbnQxNl90IGZyb21VU3RhZ2UxMltdOworICoKKyAqICAgU3RhZ2VzIDEgJiAyIG9mIGEgdHJpZSB0aGF0IG1hcHMgYW4gaW5pdGlhbCBjb2RlIHBvaW50LgorICogICBJbmRleGVzIGluIHN0YWdlIDEgYXJlIGFsbCBvZmZzZXQgYnkgdGhlIGxlbmd0aCBvZiBzdGFnZSAxIHNvIHRoYXQgdGhlCisgKiAgIHNhbWUgYXJyYXkgcG9pbnRlciBjYW4gYmUgdXNlZCBmb3IgYm90aCBzdGFnZXMuCisgKiAgIElmIChjPj4xMCk+PShsZW5ndGggb2Ygc3RhZ2UgMSkgdGhlbiBjIGRvZXMgbm90IHN0YXJ0IGFueSBtYXBwaW5nLgorICogICBTYW1lIGJpdCBkaXN0cmlidXRpb24gYXMgZm9yIHJlZ3VsYXIgY29udmVyc2lvbiB0cmllcy4KKyAqCisgKgorICogdWludDE2X3QgZnJvbVVTdGFnZTNbXTsKKyAqIHVpbnQzMl90IGZyb21VU3RhZ2UzYltdOworICoKKyAqICAgU3RhZ2UgMyBvZiB0aGUgdHJpZS4gVGhlIGZpcnN0IGFycmF5IHNpbXBseSBjb250YWlucyBpbmRleGVzIHRvIHRoZSBzZWNvbmQsCisgKiAgIHdoaWNoIGNvbnRhaW5zIHdvcmRzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBmcm9tVVRhYmxlVmFsdWVzW10uCisgKiAgIFVzZSBhIHN0YWdlIDMgZ3JhbnVsYXJpdHkgb2YgNCwgd2hpY2ggYWxsb3dzIGZvciAyNTZrIHN0YWdlIDMgZW50cmllcywKKyAqICAgYW5kIDE2LWJpdCBlbnRyaWVzIGluIHN0YWdlIDMgYWxsb3cgZm9yIDY0ayBzdGFnZSAzYiBlbnRyaWVzLgorICogICBUaGUgc3RhZ2UgMyBncmFudWxhcml0eSBtZWFucyB0aGF0IHRoZSBzdGFnZSAyIGVudHJ5IG5lZWRzIHRvIGJlIGxlZnQtc2hpZnRlZC4KKyAqCisgKiAgIFR3byBhcnJheXMgYXJlIHVzZWQgYmVjYXVzZSBpdCBpcyBleHBlY3RlZCB0aGF0IG1vcmUgdGhhbiBoYWxmIG9mIHRoZSBzdGFnZSAzCisgKiAgIGVudHJpZXMgd2lsbCBiZSB6ZXJvLiBUaGUgMTYtYml0IGluZGV4IHN0YWdlIDMgYXJyYXkgc2F2ZXMgc3BhY2UgZXZlbgorICogICBjb25zaWRlcmluZyBzdG9yaW5nIGEgdG90YWwgb2YgNiBieXRlcyBwZXIgbm9uLXplcm8gZW50cnkgaW4gYm90aCBhcnJheXMKKyAqICAgdG9nZXRoZXIuCisgKiAgIFVzaW5nIGEgc3RhZ2UgMyBncmFudWxhcml0eSBvZiA+MSBkaW1pbmlzaGVzIHRoZSBjb21wYWN0YWJpbGl0eSBpbiB0aGF0IHN0YWdlCisgKiAgIGJ1dCBwcm92aWRlcyBhIGxhcmdlciBlZmZlY3RpdmUgYWRkcmVzc2luZyBzcGFjZSBpbiBzdGFnZSAyLgorICogICBBbGwgYnV0IHRoZSBmaW5hbCByZXN1bHQgc3RhZ2UgdXNlIDE2LWJpdCBlbnRyaWVzIHRvIHNhdmUgc3BhY2UuCisgKgorICogICBmcm9tVVN0YWdlM2JbXSBjb250YWlucyBhIHplcm8gZm9yICJubyBtYXBwaW5nIiBhdCBpdHMgaW5kZXggMCwKKyAqICAgYW5kIG1heSBjb250YWluIFVDTlZfRVhUX0ZST01fVV9TVUJDSEFSMSBhdCBpbmRleCAxIGZvciAiPHN1YmNoYXIxPiBTVUIgbWFwcGluZyIKKyAqICAgKGkuZS4sICJubyBtYXBwaW5nIiB3aXRoIHByZWZlcmVuY2UgZm9yIDxzdWJjaGFyMT4gcmF0aGVyIHRoYW4gPHN1YmNoYXI+KSwKKyAqICAgYW5kIGFsbCBvdGhlciBpdGVtcyBhcmUgdW5pcXVlIG5vbi16ZXJvIHJlc3VsdHMuCisgKgorICogICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBhIGZyb21VVGFibGVWYWx1ZXNbXSBzZWN0aW9uIHRoYXQgaXMgcmVmZXJlbmNlZAorICogICBfZGlyZWN0bHlfIGZyb20gYSBmcm9tVVN0YWdlM2JbXSBpdGVtIG1heSBhbHNvIGJlIFVDTlZfRVhUX0ZST01fVV9TVUJDSEFSMSwKKyAqICAgYnV0IHRoaXMgdmFsdWUgbXVzdCBub3Qgb2NjdXIgYW55d2hlcmUgZWxzZSBpbiBmcm9tVVRhYmxlVmFsdWVzW10KKyAqICAgYmVjYXVzZSAibm8gbWFwcGluZyIgaXMgYWx3YXlzIGEgcHJvcGVydHkgb2YgYSBzaW5nbGUgY29kZSBwb2ludCwKKyAqICAgbmV2ZXIgb2YgbXVsdGlwbGUuCisgKgorICoKKyAqIGNoYXIgZnJvbVVCeXRlc1tdOworICoKKyAqICAgQ29udGFpbnMgZnJvbVVuaWNvZGUgbWFwcGluZyByZXN1bHRzLCBzdG9yZWQgYXMgc2VxdWVuY2VzIG9mIGNoYXJzLgorICogICBJbmRleGVzIGFuZCBsZW5ndGhzIHN0b3JlZCBpbiB0aGUgZnJvbVVUYWJsZVZhbHVlc1tdLgorICovCisKK2ZpbmFsIGNsYXNzIFVDb252ZXJ0ZXJEYXRhUmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSB7CisgICAgLy9wcml2YXRlIGZpbmFsIHN0YXRpYyBib29sZWFuIGRlYnVnID0gSUNVRGVidWcuZW5hYmxlZCgiVUNvbnZlcnRlckRhdGFSZWFkZXIiKTsKKworICAgIC8qCisgICAgICogCSBVQ29udmVydGVyRGF0YVJlYWRlcihVQ29udmVydGVyRGF0YVJlYWRlciByKQorICAgICAgICB7CisgICAgICAgICAgICBkYXRhSW5wdXRTdHJlYW0gPSBuZXcgRGF0YUlucHV0U3RyZWFtKHIuZGF0YUlucHV0U3RyZWFtKTsKKyAgICAgICAgICAgIHVuaWNvZGVWZXJzaW9uID0gci51bmljb2RlVmVyc2lvbjsKKyAgICAgICAgfQorICAgICAgICAqLworICAgIAorICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcC5kYXQgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDb252ZXJ0ZXJEYXRhUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIC8vaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgaW4gaW5wdXRTdHJlYW0gIiArIGlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIC8qdW5pY29kZVZlcnNpb24gPSAqL0lDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRCwgdGhpcyk7CisgICAgICAgIAorICAgICAgICAvL2lmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGxlZnQgaW4gaW5wdXRTdHJlYW0gIiAraW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgICAgICAKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIAorICAgICAgICAvL2lmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGxlZnQgaW4gZGF0YUlucHV0U3RyZWFtICIgK2RhdGFJbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkU3RhdGljRGF0YShVQ29udmVydGVyU3RhdGljRGF0YSBzZCkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBzZC5zdHJ1Y3RTaXplID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgYnl0ZVtdIG5hbWUgPSBuZXcgYnl0ZVtVQ29udmVydGVyQ29uc3RhbnRzLk1BWF9DT05WRVJURVJfTkFNRV9MRU5HVEhdOworICAgICAgICBpbnQgbGVuZ3RoID0gZGF0YUlucHV0U3RyZWFtLnJlYWQobmFtZSk7CisgICAgICAgIHNkLm5hbWUgPSBuZXcgU3RyaW5nKG5hbWUsIDAsIGxlbmd0aCk7CisgICAgICAgIHNkLmNvZGVwYWdlID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgc2QucGxhdGZvcm0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICAgICAgc2QuY29udmVyc2lvblR5cGUgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICAgICAgc2QubWluQnl0ZXNQZXJDaGFyID0gZGF0YUlucHV0U3RyZWFtLnJlYWRCeXRlKCk7CisgICAgICAgIHNkLm1heEJ5dGVzUGVyQ2hhciA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpOworICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChzZC5zdWJDaGFyKTsKKyAgICAgICAgc2Quc3ViQ2hhckxlbiA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpOworICAgICAgICBzZC5oYXNUb1VuaWNvZGVGYWxsYmFjayA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpOworICAgICAgICBzZC5oYXNGcm9tVW5pY29kZUZhbGxiYWNrID0gZGF0YUlucHV0U3RyZWFtLnJlYWRCeXRlKCk7CisgICAgICAgIHNkLnVuaWNvZGVNYXNrID0gKHNob3J0KWRhdGFJbnB1dFN0cmVhbS5yZWFkVW5zaWduZWRCeXRlKCk7CisgICAgICAgIHNkLnN1YkNoYXIxID0gZGF0YUlucHV0U3RyZWFtLnJlYWRCeXRlKCk7CisgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKHNkLnJlc2VydmVkKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkTUJDU0hlYWRlcihDaGFyc2V0TUJDUy5NQkNTSGVhZGVyIGgpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtLnJlYWQoaC52ZXJzaW9uKTsKKyAgICAgICAgaC5jb3VudFN0YXRlcyA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIGguY291bnRUb1VGYWxsYmFja3MgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBoLm9mZnNldFRvVUNvZGVVbml0cyA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIGgub2Zmc2V0RnJvbVVUYWJsZSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIGgub2Zmc2V0RnJvbVVCeXRlcyA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIGguZmxhZ3MgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBoLmZyb21VQnl0ZXNMZW5ndGggPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkTUJDU1RhYmxlKGludFtdW10gc3RhdGVUYWJsZUFycmF5LCBDaGFyc2V0TUJDUy5NQkNTVG9VRmFsbGJhY2tbXSB0b1VGYWxsYmFja3NBcnJheSwgY2hhcltdIHVuaWNvZGVDb2RlVW5pdHNBcnJheSwgY2hhcltdIGZyb21Vbmljb2RlVGFibGVBcnJheSwgYnl0ZVtdIGZyb21Vbmljb2RlQnl0ZXNBcnJheSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgc3RhdGVUYWJsZUFycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgZm9yKGogPSAwOyBqIDwgc3RhdGVUYWJsZUFycmF5W2ldLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgICAgIHN0YXRlVGFibGVBcnJheVtpXVtqXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHRvVUZhbGxiYWNrc0FycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0b1VGYWxsYmFja3NBcnJheVtpXS5vZmZzZXQgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICAgICAgdG9VRmFsbGJhY2tzQXJyYXlbaV0uY29kZVBvaW50ID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaSA9IDA7IGkgPCB1bmljb2RlQ29kZVVuaXRzQXJyYXkubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB1bmljb2RlQ29kZVVuaXRzQXJyYXlbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgZnJvbVVuaWNvZGVUYWJsZUFycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgZnJvbVVuaWNvZGVUYWJsZUFycmF5W2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgIGZvcihpID0gMDsgaSA8IGZyb21Vbmljb2RlQnl0ZXNBcnJheS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGZyb21Vbmljb2RlQnl0ZXNBcnJheVtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgcmVhZEJhc2VUYWJsZU5hbWUoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIGNoYXIgYzsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG5hbWUgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHdoaWxlKChjID0gKGNoYXIpZGF0YUlucHV0U3RyZWFtLnJlYWRCeXRlKCkpICE9ICAwKQorICAgICAgICAgICAgbmFtZS5hcHBlbmQoYyk7CisgICAgICAgIHJldHVybiBuYW1lLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLy9wcm90ZWN0ZWQgaW50W10gcmVhZEV4dEluZGV4ZXMoaW50IHNraXApIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHByb3RlY3RlZCBCeXRlQnVmZmVyIHJlYWRFeHRJbmRleGVzKGludCBza2lwKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5za2lwQnl0ZXMoc2tpcCk7CisKKyAgICAgICAgaW50IG4gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBpbnRbXSBpbmRleGVzID0gbmV3IGludFtuXTsKKyAgICAgICAgaW5kZXhlc1swXSA9IG47CisgICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIC8vcmV0dXJuIGluZGV4ZXM7CisKKyAgICAgICAgQnl0ZUJ1ZmZlciBiID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZShpbmRleGVzWzMxXSk7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAgIGIucHV0SW50KGluZGV4ZXNbaV0pOworICAgICAgICB9CisgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKGIuYXJyYXkoKSwgYi5wb3NpdGlvbigpLCBiLnJlbWFpbmluZygpKTsKKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJ5dGVbXSByZWFkRXh0VGFibGVzKGludCBuKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIGJ5dGVbXSB0YWJsZXMgPSBuZXcgYnl0ZVtuXTsKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtLnJlYWQodGFibGVzKTsKKyAgICAgICAgcmV0dXJuIHRhYmxlczsKKyAgICB9CisKKyAgICBieXRlW10gZ2V0RGF0YUZvcm1hdFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIERBVEFfRk9STUFUX1ZFUlNJT047CisgICAgfQorICAgIC8qKgorICAgICAqIEluaGVyaXRlZCBtZXRob2QKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSl7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05bMF07CisgICAgfQorICAgIAorLyogICAgYnl0ZVtdIGdldFVuaWNvZGVWZXJzaW9uKCl7CisgICAgICAgIHJldHVybiB1bmljb2RlVmVyc2lvbjsgICAgCisgICAgfSovCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbQorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gZGF0YUlucHV0U3RyZWFtOworICAgIAorLy8gICAgcHJpdmF0ZSBieXRlW10gdW5pY29kZVZlcnNpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIEZpbGUgZm9ybWF0IHZlcnNpb24gdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICogc2VlIHN0b3JlLmMgb2YgZ2Vubm9ybSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgdmFsdWVzCisgICAgKi8KKyAgICAvLyBEQVRBX0ZPUk1BVF9JRF8gdmFsdWVzIHRha2VuIGZyb20gaWN1NGMgaXNDbnZBY2NlcHRhYmxlICh1Y252X2JsZC5jKQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURbXSA9IHsoYnl0ZSkweDYzLCAoYnl0ZSkweDZlLCAoYnl0ZSkweDc2LCAoYnl0ZSkweDc0fTsgLy8gZGF0YUZvcm1hdD0iY252dCIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05bXSA9IHsoYnl0ZSkweDZ9OworCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJTaGFyZWREYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyU2hhcmVkRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNTg0ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyU2hhcmVkRGF0YS5qYXZhCkBAIC0wLDAgKzEsNDU4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworCisKKy8qCisgKiBEZWZpbmVzIHRoZSBVQ29udmVydGVyU2hhcmVkRGF0YSBzdHJ1Y3QsCisgKiB0aGUgaW1tdXRhYmxlLCBzaGFyZWQgcGFydCBvZiBVQ29udmVydGVyLgorICovCitmaW5hbCBjbGFzcyBVQ29udmVydGVyU2hhcmVkRGF0YSB7CisgICAgLy91aW50MzJfdCBzdHJ1Y3RTaXplOyAgICAgICAgICAgIC8qIFNpemUgb2YgdGhpcyBzdHJ1Y3R1cmUgKi8KKwkgaW50IHN0cnVjdFNpemU7ICAgICAgICAgICAgLyogU2l6ZSBvZiB0aGlzIHN0cnVjdHVyZSAqLworICAgIC8vdWludDMyX3QgcmVmZXJlbmNlQ291bnRlcjsgICAgICAvKiB1c2VkIHRvIGNvdW50IG51bWJlciBvZiBjbGllbnRzLCAweGZmZmZmZmZmIGZvciBzdGF0aWMgU2hhcmVkRGF0YSAqLworCSBpbnQgcmVmZXJlbmNlQ291bnRlcjsgICAgICAvKiB1c2VkIHRvIGNvdW50IG51bWJlciBvZiBjbGllbnRzLCAweGZmZmZmZmZmIGZvciBzdGF0aWMgU2hhcmVkRGF0YSAqLworCisJLy9hZ2xqcG9ydDp0b2RvIGNvbnN0IHZvaWQgKmRhdGFNZW1vcnk7ICAgICAgICAgLyogZnJvbSB1ZGF0YV9vcGVuQ2hvaWNlKCkgLSBmb3IgY2xlYW51cCAqLworCS8vYWdsanBvcnQ6dG9kbyB2b2lkICp0YWJsZTsgICAgICAgICAgICAgICAgICAgIC8qIFVudXNlZC4gVGhpcyB1c2VkIHRvIGJlIGEgVUNvbnZlcnRlclRhYmxlIC0gUG9pbnRlciB0byBjb252ZXJzaW9uIGRhdGEgLSBzZWUgbWJjcyBiZWxvdyAqLworCisgICAgLy9jb25zdCBVQ29udmVydGVyU3RhdGljRGF0YSAqc3RhdGljRGF0YTsgLyogcG9pbnRlciB0byB0aGUgc3RhdGljIChub24gY2hhbmdpbmcpIGRhdGEuICovCisJIFVDb252ZXJ0ZXJTdGF0aWNEYXRhIHN0YXRpY0RhdGE7IC8qIHBvaW50ZXIgdG8gdGhlIHN0YXRpYyAobm9uIGNoYW5naW5nKSBkYXRhLiAqLworCisgICAgLy9VQm9vbCAgICAgICAgICAgICAgICBzaGFyZWREYXRhQ2FjaGVkOyAgIC8qIFRSVUU6ICBzaGFyZWQgZGF0YSBpcyBpbiBjYWNoZSwgZG9uJ3QgZGVzdHJveSBvbiBjbG9zZSgpIGlmIDAgcmVmLiAgRkFMU0U6IHNoYXJlZCBkYXRhIGlzbid0IGluIHRoZSBjYWNoZSwgZG8gYXR0ZW1wdCB0byBjbGVhbiBpdCB1cCBpZiB0aGUgcmVmIGlzIDAgKi8KKwkgYm9vbGVhbiAgICAgICAgICAgICAgICBzaGFyZWREYXRhQ2FjaGVkOyAgIC8qIFRSVUU6ICBzaGFyZWQgZGF0YSBpcyBpbiBjYWNoZSwgZG9uJ3QgZGVzdHJveSBvbiBjbG9zZSgpIGlmIDAgcmVmLiAgRkFMU0U6IHNoYXJlZCBkYXRhIGlzbid0IGluIHRoZSBjYWNoZSwgZG8gYXR0ZW1wdCB0byBjbGVhbiBpdCB1cCBpZiB0aGUgcmVmIGlzIDAgKi8KKwkvKlVCb29sICAgICAgICAgICAgICAgc3RhdGljRGF0YU93bmVkOyAgIFRSVUUgaWYgc3RhdGljIGRhdGEgb3duZWQgYnkgc2hhcmVkIGRhdGEgJiBzaG91bGQgYmUgZnJlZWQgd2l0aCBpdCwgTkVWRVIgdHJ1ZSBmb3IgdWRhdGEoKSBsb2FkZWQgc3RhdGljcy4gVGhpcyBpZ25vcmVkIHZhcmlhYmxlIHdhcyByZW1vdmVkIHRvIG1ha2Ugc3BhY2UgZm9yIHNoYXJlZERhdGFDYWNoZWQuICAgKi8KKworICAgIC8vY29uc3QgVUNvbnZlcnRlckltcGwgKmltcGw7ICAgICAvKiB2dGFibGUtc3R5bGUgc3RydWN0IG9mIG1vc3RseSBmdW5jdGlvbiBwb2ludGVycyAqLworCS8vIFVDb252ZXJ0ZXJJbXBsIGltcGw7ICAgICAvKiB2dGFibGUtc3R5bGUgc3RydWN0IG9mIG1vc3RseSBmdW5jdGlvbiBwb2ludGVycyAqLworCisJLyppbml0aWFsIHZhbHVlcyBvZiBzb21lIG1lbWJlcnMgb2YgdGhlIG11dGFibGUgcGFydCBvZiBvYmplY3QgKi8KKyAgICAvL3VpbnQzMl90IHRvVW5pY29kZVN0YXR1czsKKwkgbG9uZyB0b1VuaWNvZGVTdGF0dXM7CisKKwkvKgorCSAqIFNoYXJlZCBkYXRhIHN0cnVjdHVyZXMgY3VycmVudGx5IGNvbWUgaW4gdHdvIGZsYXZvcnM6CisJICogLSByZWFkb25seSBmb3IgYnVpbHQtaW4gYWxnb3JpdGhtaWMgY29udmVydGVycworCSAqIC0gYWxsb2NhdGVkIGZvciBNQkNTLCB3aXRoIGEgcG9pbnRlciB0byBhbiBhbGxvY2F0ZWQgVUNvbnZlcnRlclRhYmxlCisJICogICB3aGljaCBhbHdheXMgaGFzIGEgVUNvbnZlcnRlck1CQ1NUYWJsZQorCSAqCisJICogVG8gZWxpbWluYXRlIG9uZSBhbGxvY2F0aW9uLCBJIGFtIG1ha2luZyB0aGUgVUNvbnZlcnRlck1CQ1NUYWJsZQorCSAqIGEgbWVtYmVyIG9mIHRoZSBzaGFyZWQgZGF0YS4gSXQgaXMgdGhlIGxhc3QgbWVtYmVyIHNvIHRoYXQgc3RhdGljCisJICogZGVmaW5pdGlvbnMgb2YgVUNvbnZlcnRlclNoYXJlZERhdGEgd29yayBhcyBiZWZvcmUuCisJICogVGhlIHRhYmxlIGZpZWxkIGFib3ZlIGFsc28gcmVtYWlucyB0byBhdm9pZCB1cGRhdGluZyBhbGwgc3RhdGljCisJICogZGVmaW5pdGlvbnMsIGJ1dCBpcyBub3cgdW51c2VkLgorCSAqCisJICovCisJIENoYXJzZXRNQkNTLlVDb252ZXJ0ZXJNQkNTVGFibGUgbWJjczsKKworCSBVQ29udmVydGVyU2hhcmVkRGF0YSgpCisJeworCQltYmNzID0gbmV3IENoYXJzZXRNQkNTLlVDb252ZXJ0ZXJNQkNTVGFibGUoKTsKKwl9CisJCisJIFVDb252ZXJ0ZXJTaGFyZWREYXRhKGludCBzdHJ1Y3RTaXplXywgaW50IHJlZmVyZW5jZUNvdW50ZXJfLCBVQ29udmVydGVyU3RhdGljRGF0YSBzdGF0aWNEYXRhXywgYm9vbGVhbiBzaGFyZWREYXRhQ2FjaGVkXywvKiBVQ29udmVydGVySW1wbCBpbXBsXywqLyBsb25nIHRvVW5pY29kZVN0YXR1c18pCisJeworCQl0aGlzKCk7CisJCXN0cnVjdFNpemUgPSBzdHJ1Y3RTaXplXzsKKwkJcmVmZXJlbmNlQ291bnRlciA9IHJlZmVyZW5jZUNvdW50ZXJfOworCQlzdGF0aWNEYXRhID0gc3RhdGljRGF0YV87CisJCXNoYXJlZERhdGFDYWNoZWQgPSBzaGFyZWREYXRhQ2FjaGVkXzsKKwkJLy9pbXBsID0gaW1wbF87CisJCXRvVW5pY29kZVN0YXR1cyA9IHRvVW5pY29kZVN0YXR1c187CisJfQorCisJLyoqCisJICogVUNvbnZlcnRlckltcGwgY29udGFpbnMgYWxsIHRoZSBkYXRhIGFuZCBmdW5jdGlvbnMgZm9yIGEgY29udmVydGVyIHR5cGUuCisJICogSXRzIGZ1bmN0aW9uIHBvaW50ZXJzIHdvcmsgbXVjaCBsaWtlIGEgQysrIHZ0YWJsZS4KKwkgKiBNYW55IGNvbnZlcnRlciB0eXBlcyBuZWVkIHRvIGRlZmluZSBvbmx5IGEgc3Vic2V0IG9mIHRoZSBmdW5jdGlvbnM7CisJICogd2hlbiBhIGZ1bmN0aW9uIHBvaW50ZXIgaXMgTlVMTCwgdGhlbiBhIGRlZmF1bHQgYWN0aW9uIHdpbGwgYmUgcGVyZm9ybWVkLgorCSAqCisJICogRXZlcnkgY29udmVydGVyIHR5cGUgbXVzdCBpbXBsZW1lbnQgdG9Vbmljb2RlLCBmcm9tVW5pY29kZSwgYW5kIGdldE5leHRVQ2hhciwKKwkgKiBvdGhlcndpc2UgdGhlIGNvbnZlcnRlciBtYXkgY3Jhc2guCisJICogRXZlcnkgY29udmVydGVyIHR5cGUgdGhhdCBoYXMgdmFyaWFibGUtbGVuZ3RoIGNvZGVwYWdlIHNlcXVlbmNlcyBzaG91bGQKKwkgKiBhbHNvIGltcGxlbWVudCB0b1VuaWNvZGVXaXRoT2Zmc2V0cyBhbmQgZnJvbVVuaWNvZGVXaXRoT2Zmc2V0cyBmb3IKKwkgKiBjb3JyZWN0IG9mZnNldCBoYW5kbGluZy4KKwkgKiBBbGwgb3RoZXIgZnVuY3Rpb25zIG1heSBvciBtYXkgbm90IGJlIGltcGxlbWVudGVkIC0gaXQgZGVwZW5kcyBvbmx5IG9uCisJICogd2hldGhlciB0aGUgY29udmVydGVyIHR5cGUgbmVlZHMgdGhlbS4KKwkgKgorCSAqIFdoZW4gb3BlbigpIGZhaWxzLCB0aGVuIGNsb3NlKCkgd2lsbCBiZSBjYWxsZWQsIGlmIHByZXNlbnQuCisJICovCisJLy8gY2xhc3MgVUNvbnZlcnRlckltcGwgeworCSAgICAvL1VDb252ZXJ0ZXJUeXBlIHR5cGU7CisJICAgIC8vVUNvbnZlcnRlclRvVW5pY29kZSB0b1VuaWNvZGU7CisvKglwcm90ZWN0ZWQgdm9pZCBkb1RvVW5pY29kZShVQ29udmVydGVyVG9Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwl9CisJCisJIGZpbmFsIHZvaWQgdG9Vbmljb2RlKFVDb252ZXJ0ZXJUb1VuaWNvZGVBcmdzIGFyZ3MsIGludFtdIHBFcnJvckNvZGUpCisJeworCQlkb1RvVW5pY29kZShhcmdzLCBwRXJyb3JDb2RlKTsKKwl9CisJCisJLy9VQ29udmVydGVyRnJvbVVuaWNvZGUgZnJvbVVuaWNvZGU7CisJcHJvdGVjdGVkIHZvaWQgZG9Gcm9tVW5pY29kZShVQ29udmVydGVyRnJvbVVuaWNvZGVBcmdzIGFyZ3MsIGludFtdIHBFcnJvckNvZGUpCisJeworCX0KKwkKKwkgZmluYWwgdm9pZCBmcm9tVW5pY29kZShVQ29udmVydGVyRnJvbVVuaWNvZGVBcmdzIGFyZ3MsIGludFtdIHBFcnJvckNvZGUpCisJeworCQlkb0Zyb21Vbmljb2RlKGFyZ3MsIHBFcnJvckNvZGUpOworCX0KKwkKKwlwcm90ZWN0ZWQgaW50IGRvR2V0TmV4dFVDaGFyKFVDb252ZXJ0ZXJUb1VuaWNvZGVBcmdzIGFyZ3MsIGludFtdIHBFcnJvckNvZGUpCisJeworCQlyZXR1cm4gMDsKKwl9CisJCisJLy9VQ29udmVydGVyR2V0TmV4dFVDaGFyIGdldE5leHRVQ2hhcjsKKwkgZmluYWwgaW50IGdldE5leHRVQ2hhcihVQ29udmVydGVyVG9Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJcmV0dXJuIGRvR2V0TmV4dFVDaGFyKGFyZ3MsIHBFcnJvckNvZGUpOworCX0KKwkKKwkvLyBpbnRlcmZhY2UgVUNvbnZlcnRlckltcGxMb2FkYWJsZSBleHRlbmRzIFVDb252ZXJ0ZXJJbXBsCisJcHJvdGVjdGVkIHZvaWQgZG9Mb2FkKFVDb252ZXJ0ZXJMb2FkQXJncyBwQXJncywgc2hvcnRbXSByYXcsIGludFtdIHBFcnJvckNvZGUpCisJeworCX0KKwkKKwlwcm90ZWN0ZWQgdm9pZCBkb1VubG9hZCgpCisJeworCX0KKworCS8vIGludGVyZmFjZSBVQ29udmVydGVySW1wbE9wZW5hYmxlIGV4dGVuZHMgVUNvbnZlcnRlckltcGwKKwlwcm90ZWN0ZWQgdm9pZCBkb09wZW4oVUNvbnZlcnRlciBjbnYsIFN0cmluZyBuYW1lLCBTdHJpbmcgbG9jYWxlLCBsb25nIG9wdGlvbnMsIGludFtdIHBFcnJvckNvZGUpCisJeworCX0KKyAgICAKKwkvL1VDb252ZXJ0ZXJPcGVuIG9wZW47CisJIGZpbmFsIHZvaWQgb3BlbihVQ29udmVydGVyIGNudiwgU3RyaW5nIG5hbWUsIFN0cmluZyBsb2NhbGUsIGxvbmcgb3B0aW9ucywgaW50W10gcEVycm9yQ29kZSkKKwl7CisJCWRvT3BlbihjbnYsIG5hbWUsIGxvY2FsZSwgb3B0aW9ucywgcEVycm9yQ29kZSk7CisJfQorCQorCXByb3RlY3RlZCB2b2lkIGRvQ2xvc2UoVUNvbnZlcnRlciBjbnYpCisJeworCX0KKwkKKyAgICAvL1VDb252ZXJ0ZXJDbG9zZSBjbG9zZTsKKwkgZmluYWwgdm9pZCBjbG9zZShVQ29udmVydGVyIGNudikKKwl7CisJCWRvQ2xvc2UoY252KTsKKwl9CisJCisJcHJvdGVjdGVkIHZvaWQgZG9SZXNldChVQ29udmVydGVyIGNudiwgaW50IGNob2ljZSkKKwl7CisJfQorCQorCS8vdHlwZWRlZiB2b2lkICgqVUNvbnZlcnRlclJlc2V0KSAoVUNvbnZlcnRlciAqY252LCBVQ29udmVydGVyUmVzZXRDaG9pY2UgY2hvaWNlKTsKKwkvL1VDb252ZXJ0ZXJSZXNldCByZXNldDsKKwkgZmluYWwgdm9pZCByZXNldChVQ29udmVydGVyIGNudiwgaW50IGNob2ljZSkKKwl7CisJCWRvUmVzZXQoY252LCBjaG9pY2UpOworCX0KKworCS8vIGludGVyZmFjZSBVQ29udmVydGVySW1wbFZhcmlhYmxlTGVuZ3RoIGV4dGVuZHMgVUNvbnZlcnRlckltcGwKKwlwcm90ZWN0ZWQgdm9pZCBkb1RvVW5pY29kZVdpdGhPZmZzZXRzKFVDb252ZXJ0ZXJUb1VuaWNvZGVBcmdzIGFyZ3MsIGludFtdIHBFcnJvckNvZGUpCisJeworCX0KKwkKKyAgICAvL1VDb252ZXJ0ZXJUb1VuaWNvZGUgdG9Vbmljb2RlV2l0aE9mZnNldHM7CisJIGZpbmFsIHZvaWQgdG9Vbmljb2RlV2l0aE9mZnNldHMoVUNvbnZlcnRlclRvVW5pY29kZUFyZ3MgYXJncywgaW50W10gcEVycm9yQ29kZSkKKwl7CisJCWRvVG9Vbmljb2RlV2l0aE9mZnNldHMoYXJncywgcEVycm9yQ29kZSk7CisJfQorCQorCXByb3RlY3RlZCB2b2lkIGRvRnJvbVVuaWNvZGVXaXRoT2Zmc2V0cyhVQ29udmVydGVyRnJvbVVuaWNvZGVBcmdzIGFyZ3MsIGludFtdIHBFcnJvckNvZGUpCisJeworCX0KKwkKKyAgICAvL1VDb252ZXJ0ZXJGcm9tVW5pY29kZSBmcm9tVW5pY29kZVdpdGhPZmZzZXRzOworCSBmaW5hbCB2b2lkIGZyb21Vbmljb2RlV2l0aE9mZnNldHMoVUNvbnZlcnRlckZyb21Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJZG9Gcm9tVW5pY29kZVdpdGhPZmZzZXRzKGFyZ3MsIHBFcnJvckNvZGUpOworCX0KKworCS8vIGludGVyZmFjZSBVQ29udmVydGVySW1wbE1pc2MgZXh0ZW5kcyBVQ29udmVydGVySW1wbAorCXByb3RlY3RlZCB2b2lkIGRvR2V0U3RhcnRlcnMoVUNvbnZlcnRlciBjb252ZXJ0ZXIsIGJvb2xlYW4gc3RhcnRlcnNbXSwgaW50W10gcEVycm9yQ29kZSkKKwl7CisJfQorCQorICAgIC8vVUNvbnZlcnRlckdldFN0YXJ0ZXJzIGdldFN0YXJ0ZXJzOworCSBmaW5hbCB2b2lkIGdldFN0YXJ0ZXJzKFVDb252ZXJ0ZXIgY29udmVydGVyLCBib29sZWFuIHN0YXJ0ZXJzW10sIGludFtdIHBFcnJvckNvZGUpCisJeworCQlkb0dldFN0YXJ0ZXJzKGNvbnZlcnRlciwgc3RhcnRlcnMsIHBFcnJvckNvZGUpOworCX0KKwkKKwlwcm90ZWN0ZWQgU3RyaW5nIGRvR2V0TmFtZShVQ29udmVydGVyIGNudikKKwl7CisJCXJldHVybiAiIjsKKwl9CisJCisgICAgLy9VQ29udmVydGVyR2V0TmFtZSBnZXROYW1lOworCSBmaW5hbCBTdHJpbmcgZ2V0TmFtZShVQ29udmVydGVyIGNudikKKwl7CisJCXJldHVybiBkb0dldE5hbWUoY252KTsKKwl9CisJCisJcHJvdGVjdGVkIHZvaWQgZG9Xcml0ZVN1YihVQ29udmVydGVyRnJvbVVuaWNvZGVBcmdzIHBBcmdzLCBsb25nIG9mZnNldEluZGV4LCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwl9CisJCisJLy9VQ29udmVydGVyV3JpdGVTdWIgd3JpdGVTdWI7CisJIGZpbmFsIHZvaWQgd3JpdGVTdWIoVUNvbnZlcnRlckZyb21Vbmljb2RlQXJncyBwQXJncywgbG9uZyBvZmZzZXRJbmRleCwgaW50W10gcEVycm9yQ29kZSkKKwl7CisJCWRvV3JpdGVTdWIocEFyZ3MsIG9mZnNldEluZGV4LCBwRXJyb3JDb2RlKTsKKwl9CisJCisJcHJvdGVjdGVkIFVDb252ZXJ0ZXIgZG9TYWZlQ2xvbmUoVUNvbnZlcnRlciBjbnYsIGJ5dGVbXSBzdGFja0J1ZmZlciwgaW50W10gcEJ1ZmZlclNpemUsIGludFtdIHN0YXR1cykKKwl7CisJCXJldHVybiBuZXcgVUNvbnZlcnRlcigpOworCX0KKworICAgIC8vVUNvbnZlcnRlclNhZmVDbG9uZSBzYWZlQ2xvbmU7CisJIGZpbmFsIFVDb252ZXJ0ZXIgIHNhZmVDbG9uZShVQ29udmVydGVyIGNudiwgYnl0ZVtdIHN0YWNrQnVmZmVyLCBpbnRbXSBwQnVmZmVyU2l6ZSwgaW50W10gc3RhdHVzKQorCXsKKwkJcmV0dXJuIGRvU2FmZUNsb25lKGNudiwgc3RhY2tCdWZmZXIsIHBCdWZmZXJTaXplLCBzdGF0dXMpOworCX0KKwkKKwlwcm90ZWN0ZWQgdm9pZCBkb0dldFVuaWNvZGVTZXQoVUNvbnZlcnRlciBjbnYsIFVuaWNvZGVTZXQgLypVU2V0QWRkZXIqIC8gc2EsIGludCAvKlVDb252ZXJ0ZXJVbmljb2RlU2V0KiAvIHdoaWNoLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwl9CisJCisgICAgLy9VQ29udmVydGVyR2V0VW5pY29kZVNldCBnZXRVbmljb2RlU2V0OworCS8vIGZpbmFsIHZvaWQgZ2V0VW5pY29kZVNldChVQ29udmVydGVyIGNudiwgVW5pY29kZVNldCAvKlVTZXRBZGRlciogLyBzYSwgaW50IC8qVUNvbnZlcnRlclVuaWNvZGVTZXQqIC8gd2hpY2gsIGludFtdIHBFcnJvckNvZGUpCisJLy97CisJLy8JZG9HZXRVbmljb2RlU2V0KGNudiwgc2EsIHdoaWNoLCBwRXJyb3JDb2RlKTsKKwkvL30KKworCS8vfQorCisJc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1RZUEUgPSAiY252IjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ05WX0RBVEFfQlVGRkVSX1NJWkUgPSAyNTAwMDsKKwkgc3RhdGljIGZpbmFsIGludCBzaXplb2ZVQ29udmVydGVyU2hhcmVkRGF0YSA9IDEwMDsKKwkKKwkvL3N0YXRpYyBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSBpc0NudkFjY2VwdGFibGU7CisKKwkvKioKKwkgKiBMb2FkIGEgbm9uLWFsZ29yaXRobWljIGNvbnZlcnRlci4KKwkgKiBJZiBwa2c9PU5VTEwsIHRoZW4gdGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBpbnNpZGUgdW10eF9sb2NrKCZjbnZDYWNoZU11dGV4KS4KKwkgCisJLy8gVUNvbnZlcnRlclNoYXJlZERhdGEgKiBsb2FkKFVDb252ZXJ0ZXJMb2FkQXJncyAqcEFyZ3MsIFVFcnJvckNvZGUgKmVycikKKwkgc3RhdGljIGZpbmFsIFVDb252ZXJ0ZXJTaGFyZWREYXRhIGxvYWQoVUNvbnZlcnRlckxvYWRBcmdzIHBBcmdzLCBpbnRbXSBlcnIpCisJeworCSAgICBVQ29udmVydGVyU2hhcmVkRGF0YSBteVNoYXJlZENvbnZlcnRlckRhdGEgPSBudWxsOworCQorCSAgICBpZihlcnIgPT0gbnVsbCB8fCBFcnJvckNvZGUuaXNGYWlsdXJlKGVyclswXSkpIHsKKwkgICAgICAgIHJldHVybiBudWxsOworCSAgICB9CisJCisJICAgIGlmKHBBcmdzLnBrZyAhPSBudWxsICYmIHBBcmdzLnBrZy5sZW5ndGgoKSAhPSAwKSB7CisJICAgICAgICAgYXBwbGljYXRpb24tcHJvdmlkZWQgY29udmVydGVycyBhcmUgbm90IGN1cnJlbnRseSBjYWNoZWQgCisJICAgICAgICByZXR1cm4gVUNvbnZlcnRlclNoYXJlZERhdGEuY3JlYXRlQ29udmVydGVyRnJvbUZpbGUocEFyZ3MsIGVycik7CisJICAgIH0KKwkKKwkgICAgLy9hZ2xqcG9ydDpmaXggbXlTaGFyZWRDb252ZXJ0ZXJEYXRhID0gZ2V0U2hhcmVkQ29udmVydGVyRGF0YShwQXJncy5uYW1lKTsKKwkgICAgaWYgKG15U2hhcmVkQ29udmVydGVyRGF0YSA9PSBudWxsKQorCSAgICB7CisJICAgICAgICBOb3QgY2FjaGVkLCB3ZSBuZWVkIHRvIHN0cmVhbSBpdCBpbiBmcm9tIGZpbGUgCisJICAgICAgICBteVNoYXJlZENvbnZlcnRlckRhdGEgPSBVQ29udmVydGVyU2hhcmVkRGF0YS5jcmVhdGVDb252ZXJ0ZXJGcm9tRmlsZShwQXJncywgZXJyKTsKKwkgICAgICAgIGlmIChFcnJvckNvZGUuaXNGYWlsdXJlKGVyclswXSkgfHwgKG15U2hhcmVkQ29udmVydGVyRGF0YSA9PSBudWxsKSkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICByZXR1cm4gbnVsbDsKKwkgICAgICAgIH0KKwkgICAgICAgIGVsc2UKKwkgICAgICAgIHsKKwkgICAgICAgICAgICAgc2hhcmUgaXQgd2l0aCBvdGhlciBsaWJyYXJ5IGNsaWVudHMgCisJICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggc2hhcmVDb252ZXJ0ZXJEYXRhKG15U2hhcmVkQ29udmVydGVyRGF0YSk7CisJICAgICAgICB9CisJICAgIH0KKwkgICAgZWxzZQorCSAgICB7CisJICAgICAgICAgVGhlIGRhdGEgZm9yIHRoaXMgY29udmVydGVyIHdhcyBhbHJlYWR5IGluIHRoZSBjYWNoZS4gICAgICAgICAgICAKKwkgICAgICAgICBVcGRhdGUgdGhlIHJlZmVyZW5jZSBjb3VudGVyIG9uIHRoZSBzaGFyZWQgZGF0YTogb25lIG1vcmUgY2xpZW50IAorCSAgICAgICAgbXlTaGFyZWRDb252ZXJ0ZXJEYXRhLnJlZmVyZW5jZUNvdW50ZXIrKzsKKwkgICAgfQorCQorCSAgICByZXR1cm4gbXlTaGFyZWRDb252ZXJ0ZXJEYXRhOworCX0KKwkKKwlUYWtlcyBhbiBhbGlhcyBuYW1lIGdldHMgYW4gYWN0dWFsIGNvbnZlcnRlciBmaWxlIG5hbWUKKwkgKmdvZXMgdG8gZGlzayBhbmQgb3BlbnMgaXQuCisJICphbGxvY2F0ZXMgdGhlIG1lbW9yeSBhbmQgcmV0dXJucyBhIG5ldyBVQ29udmVydGVyIG9iamVjdAorCSAKKwkvL3N0YXRpYyBVQ29udmVydGVyU2hhcmVkRGF0YSAqY3JlYXRlQ29udmVydGVyRnJvbUZpbGUoVUNvbnZlcnRlckxvYWRBcmdzICpwQXJncywgVUVycm9yQ29kZSAqIGVycikKKwkgc3RhdGljIGZpbmFsIFVDb252ZXJ0ZXJTaGFyZWREYXRhIGNyZWF0ZUNvbnZlcnRlckZyb21GaWxlKFVDb252ZXJ0ZXJMb2FkQXJncyBwQXJncywgaW50W10gZXJyKQorCXsKKwkgICAgVURhdGFNZW1vcnkgZGF0YSA9IG51bGw7CisJICAgIFVDb252ZXJ0ZXJTaGFyZWREYXRhIHNoYXJlZERhdGEgPSBudWxsOworCQorCSAgICAvL2FnbGpwb3J0OnRvZG8gVVRSQUNFX0VOVFJZX09DKFVUUkFDRV9MT0FEKTsKKwkKKwkgICAgaWYgKGVyciA9PSBudWxsIHx8IEVycm9yQ29kZS5pc0ZhaWx1cmUoZXJyWzBdKSkgeworCSAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIFVUUkFDRV9FWElUX1NUQVRVUygqZXJyKTsKKwkgICAgICAgIHJldHVybiBudWxsOworCSAgICB9CisJCisJICAgIC8vYWdsanBvcnQ6dG9kbyBVVFJBQ0VfREFUQTIoVVRSQUNFX09QRU5fQ0xPU0UsICJsb2FkIGNvbnZlcnRlciAlcyBmcm9tIHBhY2thZ2UgJXMiLCBwQXJncy0+bmFtZSwgcEFyZ3MtPnBrZyk7CisJCisJICAgIC8vYWdsanBvcnQ6Zml4IGRhdGEgPSB1ZGF0YV9vcGVuQ2hvaWNlKHBBcmdzLnBrZ0FycmF5LCBEQVRBX1RZUEUuZ2V0Qnl0ZXMoKSwgcEFyZ3MubmFtZSwgaXNDbnZBY2NlcHRhYmxlLCBudWxsLCBlcnIpOworCSAgICBpZihFcnJvckNvZGUuaXNGYWlsdXJlKGVyclswXSkpCisJICAgIHsKKwkgICAgICAgIC8vYWdsanBvcnQ6dG9kbyBVVFJBQ0VfRVhJVF9TVEFUVVMoKmVycik7CisJICAgICAgICByZXR1cm4gbnVsbDsKKwkgICAgfQorCQorCSAgICBzaGFyZWREYXRhID0gZGF0YV91bkZsYXR0ZW5DbG9uZShwQXJncywgZGF0YSwgZXJyKTsKKwkgICAgaWYoRXJyb3JDb2RlLmlzRmFpbHVyZShlcnJbMF0pKQorCSAgICB7CisJICAgICAgICAvL2FnbGpwb3J0OmZpeCB1ZGF0YV9jbG9zZShkYXRhKTsKKwkgICAgICAgIC8vYWdsanBvcnQ6dG9kbyBVVFJBQ0VfRVhJVF9TVEFUVVMoKmVycik7CisJICAgICAgICByZXR1cm4gbnVsbDsKKwkgICAgfQorCQorCSAgICAKKwkgICAgICogVE9ETyBTdG9yZSBwa2cgaW4gYSBmaWVsZCBpbiB0aGUgc2hhcmVkIGRhdGEgc28gdGhhdCBkZWx0YS1vbmx5IGNvbnZlcnRlcnMKKwkgICAgICogY2FuIGxvYWQgYmFzZSBjb252ZXJ0ZXJzIGZyb20gdGhlIHNhbWUgcGFja2FnZS4KKwkgICAgICogSWYgdGhlIHBrZyBuYW1lIGlzIGxvbmdlciB0aGFuIHRoZSBmaWVsZCwgdGhlbiBlaXRoZXIgZG8gbm90IGxvYWQgdGhlIGNvbnZlcnRlcgorCSAgICAgKiBpbiB0aGUgZmlyc3QgcGxhY2UsIG9yIGp1c3Qgc2V0IHRoZSBwa2cgZmllbGQgdG8gIiIuCisJICAgICAKKwkKKwkgICAgcmV0dXJuIHNoYXJlZERhdGE7CisJfQorKi8KKwlVQ29udmVydGVyRGF0YVJlYWRlciBkYXRhUmVhZGVyID0gbnVsbDsKKwkKKworCisJLypyZXR1cm5zIGEgY29udmVydGVyIHR5cGUgZnJvbSBhIHN0cmluZworCSAqLworCS8vIHN0YXRpYyBjb25zdCBVQ29udmVydGVyU2hhcmVkRGF0YSAqIGdldEFsZ29yaXRobWljVHlwZUZyb21OYW1lKGNvbnN0IGNoYXIgKnJlYWxOYW1lKQorLyoJIHN0YXRpYyBmaW5hbCBVQ29udmVydGVyU2hhcmVkRGF0YSBnZXRBbGdvcml0aG1pY1R5cGVGcm9tTmFtZShTdHJpbmcgcmVhbE5hbWUpCisJeworCSAgICBsb25nIG1pZCwgc3RhcnQsIGxpbWl0OworCSAgICBsb25nIGxhc3RNaWQ7CisJICAgIGludCByZXN1bHQ7CisJICAgIFN0cmluZ0J1ZmZlciBzdHJpcHBlZE5hbWUgPSBuZXcgU3RyaW5nQnVmZmVyKFVDb252ZXJ0ZXJDb25zdGFudHMuTUFYX0NPTlZFUlRFUl9OQU1FX0xFTkdUSCk7CisJCisJICAgIC8vIExvd2VyIGNhc2UgYW5kIHJlbW92ZSBpZ25vcmVhYmxlIGNoYXJhY3RlcnMuCisJICAgIFVDb252ZXJ0ZXJBbGlhcy5zdHJpcEZvckNvbXBhcmUoc3RyaXBwZWROYW1lLCByZWFsTmFtZSk7CisJCisJICAgIC8vIGRvIGEgYmluYXJ5IHNlYXJjaCBmb3IgdGhlIGFsaWFzCisJICAgIHN0YXJ0ID0gMDsKKwkgICAgbGltaXQgPSBjbnZOYW1lVHlwZS5sZW5ndGg7CisJICAgIG1pZCA9IGxpbWl0OworCSAgICBsYXN0TWlkID0gLTE7CisJCisJICAgIGZvciAoOzspIHsKKwkgICAgICAgIG1pZCA9IChsb25nKSgoc3RhcnQgKyBsaW1pdCkgLyAyKTsKKwkgICAgICAgIGlmIChsYXN0TWlkID09IG1pZCkgeyAgIC8vIEhhdmUgd2UgbW92ZWQ/CisJICAgICAgICAgICAgYnJlYWs7ICAvLyBXZSBoYXZlbid0IG1vdmVkLCBhbmQgaXQgd2Fzbid0IGZvdW5kLgorCSAgICAgICAgfQorCSAgICAgICAgbGFzdE1pZCA9IG1pZDsKKwkgICAgICAgIHJlc3VsdCA9IHN0cmlwcGVkTmFtZS5zdWJzdHJpbmcoMCkuY29tcGFyZVRvKGNudk5hbWVUeXBlWyhpbnQpbWlkXS5uYW1lKTsKKwkKKwkgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisJICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisJICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA+IDApIHsKKwkgICAgICAgICAgICBzdGFydCA9IG1pZDsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlckRhdGFbY252TmFtZVR5cGVbKGludCltaWRdLnR5cGVdOworCSAgICAgICAgfQorCSAgICB9CisJCisJICAgIHJldHVybiBudWxsOworCX0qLworCS8qCisJICogRW51bSBmb3Igc3BlY2lmeWluZyBiYXNpYyB0eXBlcyBvZiBjb252ZXJ0ZXJzCisJICogQHNlZSBnZXRUeXBlCisJICogQGRyYWZ0IElDVSAzLjYKKwkgKi8KKwlzdGF0aWMgZmluYWwgY2xhc3MgVUNvbnZlcnRlclR5cGUgeworCSAgICBzdGF0aWMgZmluYWwgaW50IFVOU1VQUE9SVEVEX0NPTlZFUlRFUiA9IC0xOworCSAgICBzdGF0aWMgZmluYWwgaW50IFNCQ1MgPSAwOworCSAgICBzdGF0aWMgZmluYWwgaW50IERCQ1MgPSAxOworCSAgICBzdGF0aWMgZmluYWwgaW50IE1CQ1MgPSAyOworCSAgICBzdGF0aWMgZmluYWwgaW50IExBVElOXzEgPSAzOworCSAgICBzdGF0aWMgZmluYWwgaW50IFVURjggPSA0OworCSAgICBzdGF0aWMgZmluYWwgaW50IFVURjE2X0JpZ0VuZGlhbiA9IDU7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVVRGMTZfTGl0dGxlRW5kaWFuID0gNjsKKwkgICAgc3RhdGljIGZpbmFsIGludCBVVEYzMl9CaWdFbmRpYW4gPSA3OworCSAgICBzdGF0aWMgZmluYWwgaW50IFVURjMyX0xpdHRsZUVuZGlhbiA9IDg7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgRUJDRElDX1NUQVRFRlVMID0gOTsKKwkgICAgc3RhdGljIGZpbmFsIGludCBJU09fMjAyMiA9IDEwOworCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfMSA9IDExOworCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzIgPSBMTUJDU18xICsgMTsgLy8xMgorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzMgPSBMTUJDU18yICsgMTsgLy8xMworCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzQgPSBMTUJDU18zICsgMTsgLy8xNAorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzUgPSBMTUJDU180ICsgMTsgLy8xNQorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzYgPSBMTUJDU181ICsgMTsgLy8xNgorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzggPSBMTUJDU182ICsgMTsgLy8xNworCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzExID0gTE1CQ1NfOCArIDE7IC8vMTgKKwkgICAgc3RhdGljIGZpbmFsIGludCBMTUJDU18xNiA9IExNQkNTXzExICsgMTsgLy8xOQorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzE3ID0gTE1CQ1NfMTYgKyAxOyAvLzIwCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfMTggPSBMTUJDU18xNyArIDE7IC8vMjEKKwkgICAgc3RhdGljIGZpbmFsIGludCBMTUJDU18xOSA9IExNQkNTXzE4ICsgMTsgLy8yMgorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTX0xBU1QgPSBMTUJDU18xOTsgLy8yMgorCSAgICBzdGF0aWMgZmluYWwgaW50IEhaID1MTUJDU19MQVNUICsgMTsgLy8yMworCSAgICBzdGF0aWMgZmluYWwgaW50IFNDU1UgPSBIWiArIDE7IC8vMjQKKwkgICAgc3RhdGljIGZpbmFsIGludCBJU0NJSSA9IFNDU1UgKyAxOyAvLzI1CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVVNfQVNDSUkgPSBJU0NJSSArIDE7IC8vMjYKKwkgICAgc3RhdGljIGZpbmFsIGludCBVVEY3ID0gVVNfQVNDSUkgKyAxOyAvLzI3CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgQk9DVTEgPSBVVEY3ICsgMTsgLy8yOAorCSAgICBzdGF0aWMgZmluYWwgaW50IFVURjE2ID0gQk9DVTEgKyAxOyAvLzI5CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVVRGMzIgPSBVVEYxNiArIDE7IC8vMzAKKwkgICAgc3RhdGljIGZpbmFsIGludCBDRVNVOCA9IFVURjMyICsgMTsgLy8zMQorCSAgICBzdGF0aWMgZmluYWwgaW50IElNQVBfTUFJTEJPWCA9IENFU1U4ICsgMTsgLy8zMgorCSAgICAvL3N0YXRpYyBmaW5hbCBpbnQgTUFDX0FSQUJJQyA9IElNQVBfTUFJTEJPWCArIDE7IC8vMzMgTm90IGluIElDVTRDCisJICAgIC8vc3RhdGljIGZpbmFsIGludCBNQUNfSEVCUkVXID0gTUFDX0FSQUJJQyArIDE7IC8vMzQgTm90IGluIElDVTRDCisKKwkgICAgLy8gTnVtYmVyIG9mIGNvbnZlcnRlciB0eXBlcyBmb3Igd2hpY2ggd2UgaGF2ZSBjb252ZXJzaW9uIHJvdXRpbmVzLgorCSAgICAvL3N0YXRpYyBmaW5hbCBpbnQgTlVNQkVSX09GX1NVUFBPUlRFRF9DT05WRVJURVJfVFlQRVMgPSBNQUNfSEVCUkVXICsgMTsKKwl9CisJCisJLyoqCisJICogRW51bSBmb3Igc3BlY2lmeWluZyB3aGljaCBwbGF0Zm9ybSBhIGNvbnZlcnRlciBJRCByZWZlcnMgdG8uCisJICogVGhlIHVzZSBvZiBwbGF0Zm9ybS9DQ1NJRCBpcyBub3QgcmVjb21tZW5kZWQuIFNlZSBvcGVuQ0NTSUQoKS4KKwkgKiBAZHJhZnQgSUNVIDMuNgorCSAqLworCSBzdGF0aWMgZmluYWwgY2xhc3MgVUNvbnZlcnRlclBsYXRmb3JtIHsKKwkgICAgIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IC0xOworCSAgICAgc3RhdGljIGZpbmFsIGludCBJQk0gPSAwOworCX0KKworCXN0YXRpYyBVQ29udmVydGVyU2hhcmVkRGF0YSBfTUJDU0RhdGEgPSBudWxsLCAvKl9MYXRpbjFEYXRhID0gbnVsbCwqLyAvKl9VVEY4RGF0YSA9IG51bGwsKi8gLypfVVRGMTZCRURhdGEgPSBudWxsLCovIC8qX1VURjE2TEVEYXRhID0gbnVsbCwqLyAvKl9VVEYzMkJFRGF0YSA9IG51bGwsKi8gLypfVVRGMzJMRURhdGEgPSBudWxsLCovICAvKl9JU08yMDIyRGF0YSA9IG51bGwsKi8gX0xNQkNTRGF0YTEgPSBudWxsLF9MTUJDU0RhdGEyID0gbnVsbCwgX0xNQkNTRGF0YTMgPSBudWxsLCBfTE1CQ1NEYXRhNCA9IG51bGwsIF9MTUJDU0RhdGE1ID0gbnVsbCwgX0xNQkNTRGF0YTYgPSBudWxsLCBfTE1CQ1NEYXRhOCA9IG51bGwsX0xNQkNTRGF0YTExID0gbnVsbCxfTE1CQ1NEYXRhMTYgPSBudWxsLF9MTUJDU0RhdGExNyA9IG51bGwsX0xNQkNTRGF0YTE4ID0gbnVsbCxfTE1CQ1NEYXRhMTkgPSBudWxsLCBfSFpEYXRhID0gbnVsbCwgX1NDU1VEYXRhID0gbnVsbCwgLypfSVNDSUlEYXRhID0gbnVsbCwqLyAvKl9BU0NJSURhdGEgPSBudWxsLCovIF9VVEY3RGF0YSA9IG51bGwsIF9Cb2N1MURhdGEgPSBudWxsLCAvKl9VVEYxNkRhdGEgPSBudWxsLCBfVVRGMzJEYXRhID0gbnVsbCwqLyBfQ0VTVThEYXRhID0gbnVsbCwgX0lNQVBEYXRhID0gbnVsbDsKKwlzdGF0aWMgVUNvbnZlcnRlclNoYXJlZERhdGFbXSBjb252ZXJ0ZXJEYXRhOworLyoJc3RhdGljIGNsYXNzIGNudk5hbWVUeXBlQ2xhc3MgeworCSAgU3RyaW5nIG5hbWU7CisJCWludCB0eXBlOworCQljbnZOYW1lVHlwZUNsYXNzKFN0cmluZyBuYW1lXywgaW50IHR5cGVfKSB7IG5hbWUgPSBuYW1lXzsgdHlwZSA9IHR5cGVfOyB9CisJfSAKKwkKKwlzdGF0aWMgY252TmFtZVR5cGVDbGFzcyBjbnZOYW1lVHlwZVtdOyovCisJCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1RZUEUgPSAiY252IjsKKyAgICAvL3N0YXRpYyBmaW5hbCBpbnQgQ05WX0RBVEFfQlVGRkVSX1NJWkUgPSAyNTAwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IFNJWkVfT0ZfVUNPTlZFUlRFUl9TSEFSRURfREFUQSA9IDEwMDsKKworCXN0YXRpYyBmaW5hbCBpbnQgTUFYSU1VTV9VQ1MyID0gICAgICAgICAgICAweDAwMDBGRkZGOworCXN0YXRpYyBmaW5hbCBpbnQgTUFYSU1VTV9VVEYgPSAgICAgICAgICAgICAweDAwMTBGRkZGOworCXN0YXRpYyBmaW5hbCBpbnQgTUFYSU1VTV9VQ1M0ID0gICAgICAgICAgICAweDdGRkZGRkZGOworCXN0YXRpYyBmaW5hbCBpbnQgSEFMRl9TSElGVCA9ICAgICAgICAgICAgICAxMDsKKwlzdGF0aWMgZmluYWwgaW50IEhBTEZfQkFTRSA9ICAgICAgICAgICAgICAgMHgwMDEwMDAwOworCXN0YXRpYyBmaW5hbCBpbnQgSEFMRl9NQVNLID0gICAgICAgICAgICAgICAweDNGRjsKKwlzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9ISUdIX1NUQVJUID0gICAgMHhEODAwOworCXN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0hJR0hfRU5EID0gICAgICAweERCRkY7CisJc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfTE9XX1NUQVJUID0gICAgIDB4REMwMDsKKwlzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9MT1dfRU5EID0gICAgICAgMHhERkZGOworCQorCS8qIC1TVVJST0dBVEVfTE9XX1NUQVJUICsgSEFMRl9CQVNFICovCisJc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfTE9XX0JBU0UgPSAgICAgIDkyMTY7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyU3RhdGljRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlclN0YXRpY0RhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODgzOTc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlclN0YXRpY0RhdGEuamF2YQpAQCAtMCwwICsxLDYxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworZmluYWwgY2xhc3MgVUNvbnZlcnRlclN0YXRpY0RhdGEgeyAgIC8qICtvZmZzZXQ6IHNpemUgKi8KKyAgICBpbnQgc3RydWN0U2l6ZTsgICAgICAgICAgICAgICAgLyogKzA6IDQgU2l6ZSBvZiB0aGlzIHN0cnVjdHVyZSAqLworICAgIAorICAgIFN0cmluZyBuYW1lOyAvKiArNDogNjAgIGludGVybmFsIG5hbWUgb2YgdGhlIGNvbnZlcnRlci0gaW52YXJpYW50IGNoYXJzICovCisKKyAgICBpbnQgY29kZXBhZ2U7ICAgICAgICAgICAgICAgLyogKzY0OiA0IGNvZGVwYWdlICMgKG5vdyBJQk0tJGNvZGVwYWdlKSAqLworCisgICAgYnl0ZSBwbGF0Zm9ybTsgICAgICAgICAgICAgICAgLyogKzY4OiAxIHBsYXRmb3JtIG9mIHRoZSBjb252ZXJ0ZXIgKG9ubHkgSUJNIG5vdykgKi8KKyAgICBieXRlIGNvbnZlcnNpb25UeXBlOyAgICAgICAgICAvKiArNjk6IDEgY29udmVyc2lvbiB0eXBlICovCisKKyAgICBieXRlIG1pbkJ5dGVzUGVyQ2hhcjsgICAgICAgICAvKiArNzA6IDEgTWluaW11bSAjIGJ5dGVzIHBlciBjaGFyIGluIHRoaXMgY29kZXBhZ2UgKi8KKyAgICBieXRlIG1heEJ5dGVzUGVyQ2hhcjsgICAgICAgICAvKiArNzE6IDEgTWF4aW11bSAjIGJ5dGVzIG91dHB1dCBwZXIgVUNoYXIgaW4gdGhpcyBjb2RlcGFnZSAqLworCisgICAgYnl0ZSBzdWJDaGFyWy8qVUNOVl9NQVhfU1VCQ0hBUl9MRU4qL107IC8qICs3MjogNCAgW25vdGU6ICA0IGFuZCA4IGJ5dGUgYm91bmRhcnldICovCisgICAgYnl0ZSBzdWJDaGFyTGVuOyAgICAgICAgICAgICAgLyogKzc2OiAxICovCisgICAgCisgICAgYnl0ZSBoYXNUb1VuaWNvZGVGYWxsYmFjazsgICAvKiArNzc6IDEgVUJvb2wgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBVQm9vbCB0byBiZSBjb25zaXN0ZW50IGFjcm9zcyBwbGF0Zm9ybSAqLworICAgIGJ5dGUgaGFzRnJvbVVuaWNvZGVGYWxsYmFjazsgLyogKzc4OiAxICovCisgICAgc2hvcnQgdW5pY29kZU1hc2s7ICAgICAgICAgICAgLyogKzc5OiAxICBiaXQgMDogaGFzIHN1cHBsZW1lbnRhcnkgIGJpdCAxOiBoYXMgc2luZ2xlIHN1cnJvZ2F0ZXMgKi8KKyAgICBieXRlIHN1YkNoYXIxOyAgICAgICAgICAgICAgIC8qICs4MDogMSAgc2luZ2xlLWJ5dGUgc3Vic3RpdHV0aW9uIGNoYXJhY3RlciBmb3IgSUJNIE1CQ1MgKDAgaWYgbm9uZSkgKi8KKyAgICBieXRlIHJlc2VydmVkWy8qMTkqL107ICAgICAgICAgICAvKiArODE6IDE5IHRvIHJvdW5kIG91dCB0aGUgc3RydWN0dXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0b3RhbCBzaXplOiAxMDAgKi8KKyAgICBwdWJsaWMgVUNvbnZlcnRlclN0YXRpY0RhdGEoKQorICAgIHsKKyAgICAgICAgc3ViQ2hhciA9IG5ldyBieXRlW1VDb252ZXJ0ZXJDb25zdGFudHMuTUFYX1NVQkNIQVJfTEVOXTsKKyAgICAgICAgcmVzZXJ2ZWQgPSBuZXcgYnl0ZVsxOV07CisgICAgfQorCisvKiAgICBwdWJsaWMgVUNvbnZlcnRlclN0YXRpY0RhdGEoaW50IHN0cnVjdFNpemVfLCBTdHJpbmcgbmFtZV8sIGludCBjb2RlcGFnZV8sIGJ5dGUgcGxhdGZvcm1fLCBieXRlIGNvbnZlcnNpb25UeXBlXywgYnl0ZSBtaW5CeXRlc1BlckNoYXJfLCBieXRlIG1heEJ5dGVzUGVyQ2hhcl8sIGJ5dGVbXSBzdWJDaGFyXywgYnl0ZSBzdWJDaGFyTGVuXywgYnl0ZSBoYXNUb1VuaWNvZGVGYWxsYmFja18sIGJ5dGUgaGFzRnJvbVVuaWNvZGVGYWxsYmFja18sIHNob3J0IHVuaWNvZGVNYXNrXywgYnl0ZSBzdWJDaGFyMV8sIGJ5dGVbXSByZXNlcnZlZF8pCisgICAgeworICAgICAgICBzdHJ1Y3RTaXplID0gc3RydWN0U2l6ZV87CisgICAgICAgIG5hbWUgPSBuYW1lXzsKKyAgICAgICAgY29kZXBhZ2UgPSBjb2RlcGFnZV87CisgICAgICAgIHBsYXRmb3JtID0gcGxhdGZvcm1fOworICAgICAgICBjb252ZXJzaW9uVHlwZSA9IGNvbnZlcnNpb25UeXBlXzsKKyAgICAgICAgbWluQnl0ZXNQZXJDaGFyID0gbWluQnl0ZXNQZXJDaGFyXzsKKyAgICAgICAgbWF4Qnl0ZXNQZXJDaGFyID0gbWF4Qnl0ZXNQZXJDaGFyXzsKKyAgICAgICAgc3ViQ2hhciA9IG5ldyBieXRlW1VDb252ZXJ0ZXJDb25zdGFudHMuTUFYX1NVQkNIQVJfTEVOXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdWJDaGFyXywgMCwgc3ViQ2hhciwgMCwgKHN1YkNoYXIubGVuZ3RoIDwgc3ViQ2hhcl8ubGVuZ3RoPyBzdWJDaGFyLmxlbmd0aCA6IHN1YkNoYXJfLmxlbmd0aCkpOworICAgICAgICBzdWJDaGFyTGVuID0gc3ViQ2hhckxlbl87CisgICAgICAgIGhhc1RvVW5pY29kZUZhbGxiYWNrID0gaGFzVG9Vbmljb2RlRmFsbGJhY2tfOworICAgICAgICBoYXNGcm9tVW5pY29kZUZhbGxiYWNrID0gaGFzRnJvbVVuaWNvZGVGYWxsYmFja187CisgICAgICAgIHVuaWNvZGVNYXNrID0gdW5pY29kZU1hc2tfOworICAgICAgICBzdWJDaGFyMSA9IHN1YkNoYXIxXzsKKyAgICAgICAgcmVzZXJ2ZWQgPSBuZXcgYnl0ZVsxOV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocmVzZXJ2ZWRfLCAwLCByZXNlcnZlZCwgMCwgKHJlc2VydmVkLmxlbmd0aCA8IHJlc2VydmVkXy5sZW5ndGg/IHJlc2VydmVkLmxlbmd0aCA6IHJlc2VydmVkXy5sZW5ndGgpKTsKKyAgICB9Ki8KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHNpemVvZlVDb252ZXJ0ZXJTdGF0aWNEYXRhID0gMTAwOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTllODdlZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisKKzx0aXRsZT5DOklDVTRKIC5jaGFyc2V0IFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPkVuaGFuY2VkIGNoYXJzZXQgY29udmVyc2lvbiBzdXBwb3J0LjwvcD4KK0NoYXJzZXRJQ1UsIENoYXJzZXRQcm92aWRlcklDVSwgQ2hhcnNldEVuY29kZXJJQ1UgYW5kIENoYXJzZXREZWNvZGVySUNVICBwcm92aWRlIGNvbnZlcnNpb24gc2VydmljZXMgZm9yIG1hbnkgY2hhcnNldHMuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvQ29sbGF0aW9uVGVzdF9OT05fSUdOT1JBQkxFX1NUVUIudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0NvbGxhdGlvblRlc3RfTk9OX0lHTk9SQUJMRV9TVFVCLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODAwMDYyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9Db2xsYXRpb25UZXN0X05PTl9JR05PUkFCTEVfU1RVQi50eHQKQEAgLTAsMCArMSw0MTAzIEBACiswMzM0IDA1QTg7CiswMzM0IDA2RTc7CiswMzM0IDFEMTgwOworMDU5RSAwMzM0OworMDZEOSAwMzM0OworMUQxNjggMDMzNDsKKzAzMzIgMDMzNDsKKzAzMzQgMDMwOCAwMzAxOworMDMxNSAwMzM0OworMDMyNCAwMzM0OworMDMzQSAwMzM0OworMDM0RSAwMzM0OworMDM1RSAwMzM0OworMDVCMCAwMzM0OworMDMzNCBGQjFFOworMDMzNCAwNjU5OworMDMzNCAwNzM3OworMDMzNCAwNzQ2OworMDMzNCAxMEEwRDsKKzAzMzQgMTdERDsKKzAzMzQgMjBENTsKKzIwRUIgMDMzNDsKKzAwODUgMDA2MjsKKzIwMDEgMDAzRjsKKzIwMDIgMDA0MTsKKzIwMkYgMDA2MjsKKzAzODQgMDAzRjsKKzAwQUYgMDA2MTsKK0ZFNEMgMDA2MjsKKzFGRUQgMDAzRjsKKzFGQ0UgMDMzNDsKKzFGQ0UgMDA2MjsKKzFGRkUgMDA2MjsKK0ZGM0YgMDA2MTsKKzMwOUIgMDAzRjsKKzA1OEEgMDAzRjsKK0ZFMzIgMDAyMTsKKzIwNTMgMDAzRjsKK0ZGNjUgMDA2MTsKKzA2MEMgMDAzRjsKK0ZFNTEgMDAyMTsKKzAzN0UgMDAyMTsKKzIwNEYgMDAzRjsKKzA1ODkgMDAzRjsKKzA3MDcgMDAzRjsKKzEzNjYgMDAzRjsKKzE2RUMgMDAzRjsKKzAwMUEgMDAyMTsKKzAwOTggMDAyMTsKKzA1QTQgMDAyMTsKKzA2REIgMDAyMTsKKzIwMEIgMDAyMTsKK0ZERDMgMDAyMTsKKzFEMTY3IDAwMjE7CisxRDE4QSAwMDIxOworQkZGRkYgMDAyMTsKK0UwMDM4IDAwMjE7CitFMDA1NiAwMDIxOworRTAwNzQgMDAyMTsKK0UwMTEyIDAwMjE7CitFMDEzMCAwMDIxOworRTAxNEUgMDAyMTsKK0UwMTZDIDAwMjE7CitFMDE4QSAwMDIxOworRTAxQTggMDAyMTsKK0UwMUM2IDAwMjE7CitFMDFFNCAwMDIxOworMDM0NCAwMDIxOworMDMyMyAwMDIxOworMDM0QSAwMDIxOworMDQ4MyAwMDIxOworRkU3NiAwMDIxOworMDY1QiAwMDIxOworMDc0OCAwMDIxOworMEMwMSAwMDIxOworMEVDRCAwMDIxOworMzAyRiAwMDIxOworMjBFOSAwMDIxOworRkYwMSAwMDYyOworMDAxMSAwMDNGOworMDA4RiAwMDNGOworMDU5QiAwMDNGOworMDYxMiAwMDNGOworMEY4MiAwMDNGOworRDgwMSAwMDNGOworRkU3MyAwMDNGOworMUQxN0YgMDAzRjsKKzdGRkZFIDAwM0Y7CitFMDAyRiAwMDNGOworRTAwNEQgMDAzRjsKK0UwMDZCIDAwM0Y7CitFMDEwOSAwMDNGOworRTAxMjcgMDAzRjsKK0UwMTQ1IDAwM0Y7CitFMDE2MyAwMDNGOworRTAxODEgMDAzRjsKK0UwMTlGIDAwM0Y7CitFMDFCRCAwMDNGOworRTAxREIgMDAzRjsKKzAzNDEgMDAzRjsKKzAzMUEgMDAzRjsKKzAzM0MgMDAzRjsKKzAzNjAgMDAzRjsKKzA2NEIgMDAzRjsKK0ZFN0UgMDAzRjsKKzA3M0YgMDAzRjsKKzBBQkMgMDAzRjsKKzBFNEEgMDAzRjsKKzE3REQgMDAzRjsKKzIwRTAgMDAzRjsKKzAwM0YgMDA2MTsKKzA3MDkgMDA0MTsKK0ZFNTIgMDAyMTsKKzIwMjQgMDA0MTsKKzEzNjIgMDA0MTsKKzMwMDIgMDAzRjsKKzA5NjUgMDA0MTsKKzE3RDUgMDA0MTsKKzEzNjggMDA0MTsKKzIwNTkgMDA0MTsKKzJDRkMgMDA0MTsKKzEwM0QwIDAwNDE7CisyMDFCIDAwNDE7CisyMDFEIDAwNDE7CiswMEFCIDAwNDE7CisyNDdFIDAwM0Y7CisyNDg0IDAwM0Y7CisyNDc3IDAwM0Y7CiswMDI4IDAwNDE7CisyNDlFIDAwNDE7CisyNEE0IDAwNDE7CisyNEFBIDAwNDE7CisyNEIwIDAwNDE7CiszMjAwIDAwNDE7CiszMjAzIDAwNDE7CiszMjA2IDAwNDE7CiszMjA4IDAwNDE7CiszMjE4IDAwNDE7CiszMjFCIDAwNDE7CiszMjI0IDAwNDE7CiszMjM4IDAwNDE7CiszMjJGIDAwNDE7CiszMjMxIDAwNDE7CiszMjM3IDAwNDE7CiszMjJFIDAwNDE7CisyMDhFIDAwNjI7CitGRjNEIDAwNjI7CiswMDdEIDAwNjE7CiswRjNEIDAwNDE7CisyOUZEIDAwNDE7CisyOTg2IDAwNjI7CisyOThDIDAwNDE7CisyOTkyIDAwNDE7CisyOTk4IDAwNDE7CisyRTBBIDAwNDE7CisyMzI5IDAwNDE7CiszMDBBIDAwNjI7CiszMDBEIDAwM0Y7CiszMDBGIDAwNjI7CitGRTVEIDAwNjE7CiszMDE2IDAwNjI7CiszMDFCIDAwNDE7CiswMEE5IDAwNDE7CitGRjBBIDAwNjE7CiswMDJGIDAwNjI7CitGRjA2IDAwNjE7CitGRjAzIDAwNjI7CisyMDMxIDAwNDE7CisyMDI3IDAwNDE7CisyMDM0IDAwNjI7CiszMDNEIDAwNDE7CisyMDUwIDAwNDE7CisyRTA3IDAwNDE7CisyRTExIDAwNDE7CiswNTVBIDAwNDE7CiswNUM2IDAwNDE7CiswNzBEIDAwNDE7CiswRTVCIDAwNDE7CiswRjA5IDAwNDE7CiswRjBEIDAwNDE7CiswRjg1IDAwNDE7CisxN0Q3IDAwNDE7CisxMEE1MSAwMDQxOworMDM3NCAwMDNGOworMDJDNCAwMDQxOworMDJDQSAwMDQxOworMDJEMiAwMDQxOworMDJERSAwMDQxOworMDJFOSAwMDQxOworMDJGMCAwMDQxOworMDJGNiAwMDQxOworMDJGQyAwMDQxOworMTM5MiAwMDQxOworMTM5OCAwMDQxOworQTcwNCAwMDQxOworQTcwQSAwMDQxOworQTcxMCAwMDQxOworQTcxNiAwMDQxOworMDYwRiAwMDQxOworMEJGNCAwMDQxOworQTgyOCAwMDQxOworMEYwMiAwMDQxOworMEYxQSAwMDQxOworMEYzNCAwMDQxOworMEZCRiAwMDQxOworMEZDNSAwMDQxOworMEZDQyAwMDQxOworMTlFNCAwMDQxOworMTlFQSAwMDQxOworMTlGMCAwMDQxOworMTlGNiAwMDQxOworMTlGQyAwMDQxOworMjExNCAwMDQxOworMjEyNSAwMDQxOworMjE0MSAwMDQxOworRkZFOSAwMDIxOworMjE5QiAwMDYyOworMjFBRSAwMDQxOworMjE5QyAwMDYxOworMjFBMiAwMDYxOworMjFBOCAwMDYxOworMjFBRiAwMDYxOworMjFCNSAwMDYxOworMjFCQiAwMDYxOworMjFDMSAwMDYxOworMjFDNyAwMDYxOworMjFEMCAwMDIxOworMjFEMyAwMDQxOworMjFEOCAwMDNGOworMjFERSAwMDNGOworMjFFNCAwMDNGOworMjFFQSAwMDNGOworMjFGMCAwMDNGOworMjFGNiAwMDNGOworMjFGQyAwMDNGOworMUQ2REIgMDAyMTsKKzIyMDQgMDMzNDsKKzFENzM1IDAwM0Y7CisyMjA5IDAwNDE7CisyMjBFIDAwMjE7CisyMDhBIDAwMjE7CiswMEY3IDAwMjE7CitGRTY0IDAwNjI7CitGRTY2IDAwNjE7CisyMjZGIDAwNjE7CiswMEE2IDAwNjE7CisyMDdCIDAwNDE7CisyMjE3IDAwNjI7CisyMjFEIDAwNjI7CisyMjIzIDAwM0Y7CisyMjI5IDAwMjE7CisyMjJFIDAwMjE7CisyMjM0IDAwMjE7CisyMjNBIDAwMjE7CisyMjNFIDAwNDE7CisyMjQ3IDAzMzQ7CisyMjRBIDAwNjE7CisyMjRGIDAwMjE7CisyMjU1IDAwMjE7CisyMjVCIDAwMjE7CisyMjYyIDAwM0Y7CisyMjY1IDAwNjE7CisyMjZBIDAwNjI7CisyMjczIDAwNDE7CisyMjgwIDAzMzQ7CisyMjdDIDAwNDE7CisyMjg0IDAwMjE7CisyMjg4IDAwNDE7CisyMjhEIDAwMjE7CisyMjkxIDAwNjI7CisyMjk2IDAwM0Y7CisyMjlDIDAwM0Y7CisyMkFDIDAzMzQ7CisyMkE2IDAwNjI7CisyMkFBIDAwMjE7CisyMkVBIDAwMjE7CisyMkVDIDAwNDE7CisyMkI5IDAwMjE7CisyMkJGIDAwMjE7CisyMkM1IDAwMjE7CisyMkNCIDAwMjE7CisyMkQxIDAwMjE7CisyMkQ3IDAwMjE7CisyMkREIDAwMjE7CisyMkU3IDAwMjE7CisyMkYxIDAwMjE7CisyMkY3IDAwMjE7CisyMkZEIDAwMjE7CisyMzAzIDAwMjE7CisyMzA5IDAwMjE7CisyMzBGIDAwMjE7CisyMzE1IDAwMjE7CisyMzFCIDAwMjE7CisyMzIxIDAwMjE7CisyMzI3IDAwMjE7CisyMzJGIDAwMjE7CisyMzM1IDAwMjE7CisyMzNCIDAwMjE7CisyMzQxIDAwMjE7CisyMzQ3IDAwMjE7CisyMzREIDAwMjE7CisyMzUzIDAwMjE7CisyMzU5IDAwMjE7CisyMzVGIDAwMjE7CisyMzY1IDAwMjE7CisyMzZCIDAwMjE7CisyMzcxIDAwMjE7CisyMzc3IDAwMjE7CisyMzdEIDAwMjE7CisyMzgzIDAwMjE7CisyMzg5IDAwMjE7CisyMzhGIDAwMjE7CisyMzk1IDAwMjE7CisyMzlCIDAwMjE7CisyM0ExIDAwMjE7CisyM0E3IDAwMjE7CisyM0FEIDAwMjE7CisyM0IzIDAwMjE7CisyM0I5IDAwMjE7CisyM0JGIDAwMjE7CisyM0M1IDAwMjE7CisyM0NCIDAwMjE7CisyM0QxIDAwMjE7CisyM0Q3IDAwMjE7CisyNDAxIDAwMjE7CisyNDA3IDAwMjE7CisyNDBEIDAwMjE7CisyNDEzIDAwMjE7CisyNDE5IDAwMjE7CisyNDFGIDAwMjE7CisyNDI1IDAwMjE7CisyNDQ0IDAwMjE7CisyNDRBIDAwMjE7CisyNTA0IDAwMjE7CisyNTBBIDAwMjE7CisyNTEwIDAwMjE7CisyNTE2IDAwMjE7CisyNTFDIDAwMjE7CisyNTIyIDAwMjE7CisyNTI4IDAwMjE7CisyNTJFIDAwMjE7CisyNTM0IDAwMjE7CisyNTNBIDAwMjE7CisyNTQwIDAwMjE7CisyNTQ2IDAwMjE7CisyNTRDIDAwMjE7CisyNTUyIDAwMjE7CisyNTU4IDAwMjE7CisyNTVFIDAwMjE7CisyNTY0IDAwMjE7CisyNTZBIDAwMjE7CisyNTcwIDAwMjE7CisyNTc2IDAwMjE7CisyNTdDIDAwMjE7CisyNTgyIDAwMjE7CisyNTg4IDAwMjE7CisyNThFIDAwMjE7CisyNTk0IDAwMjE7CisyNTlBIDAwMjE7CisyNUEwIDAwMjE7CisyNUE1IDAwMjE7CisyNUFCIDAwMjE7CisyNUIxIDAwMjE7CisyNUI3IDAwMjE7CisyNUJEIDAwMjE7CisyNUMzIDAwMjE7CisyNUM5IDAwMjE7CisyNUNFIDAwMjE7CisyNUQ0IDAwMjE7CisyNURBIDAwMjE7CisyNUUwIDAwMjE7CisyNUU2IDAwMjE7CisyNUVDIDAwMjE7CisyNUYyIDAwMjE7CisyNUY4IDAwMjE7CisyNUZFIDAwMjE7CisyNjA0IDAwMjE7CisyNjBBIDAwMjE7CisyNjEwIDAwMjE7CisyNjE2IDAwMjE7CisyNjFDIDAwMjE7CisyNjIyIDAwMjE7CisyNjI4IDAwMjE7CisyNjJFIDAwMjE7CisyNjNDIDAwMjE7CisyNjQyIDAwMjE7CisyNjQ4IDAwMjE7CisyNjRFIDAwMjE7CisyNjU0IDAwMjE7CisyNjVBIDAwMjE7CisyNjYwIDAwMjE7CisyNjY2IDAwMjE7CisyNjZDIDAwMjE7CisyNjc1IDAwMjE7CisyNjdCIDAwMjE7CisyNjgxIDAwMjE7CisyNjg3IDAwMjE7CisyNjkzIDAwMjE7CisyNjk5IDAwMjE7CisyNkEyIDAwMjE7CisyNkE4IDAwMjE7CisyNkFFIDAwMjE7CisyNzAzIDAwMjE7CisyNzBDIDAwMjE7CisyNzEyIDAwMjE7CisyNzE4IDAwMjE7CisyNzFFIDAwMjE7CisyNzI0IDAwMjE7CisyNzJCIDAwMjE7CisyNzMxIDAwMjE7CisyNzM3IDAwMjE7CisyNzNEIDAwMjE7CisyNzQzIDAwMjE7CisyNzQ5IDAwMjE7CisyNzUxIDAwMjE7CisyNzVCIDAwMjE7CisyNzYzIDAwMjE7CisyNzY5IDAwMjE7CisyNzZGIDAwMjE7CisyNzc1IDAwMjE7CisyNzlDIDAwMjE7CisyN0EyIDAwMjE7CisyN0E4IDAwMjE7CisyN0FFIDAwMjE7CisyN0I1IDAwMjE7CisyN0JCIDAwMjE7CisyN0MyIDAwMjE7CisyN0QxIDAwMjE7CisyN0Q3IDAwMjE7CisyN0REIDAwMjE7CisyN0UzIDAwMjE7CisyN0U5IDAwMjE7CisyN0YzIDAwMjE7CisyN0Y5IDAwMjE7CisyN0ZGIDAwMjE7CisyOTA1IDAwMjE7CisyOTBCIDAwMjE7CisyOTExIDAwMjE7CisyOTE3IDAwMjE7CisyOTFEIDAwMjE7CisyOTIzIDAwMjE7CisyOTI5IDAwMjE7CisyOTJGIDAwMjE7CisyOTM1IDAwMjE7CisyOTNCIDAwMjE7CisyOTQxIDAwMjE7CisyOTQ3IDAwMjE7CisyOTREIDAwMjE7CisyOTUzIDAwMjE7CisyOTU5IDAwMjE7CisyOTVGIDAwMjE7CisyOTY1IDAwMjE7CisyOTZCIDAwMjE7CisyOTcxIDAwMjE7CisyOTc3IDAwMjE7CisyOTdEIDAwMjE7CisyOTk5IDAwMjE7CisyOTlGIDAwMjE7CisyOUE1IDAwMjE7CisyOUFCIDAwMjE7CisyOUIxIDAwMjE7CisyOUI3IDAwMjE7CisyOUJEIDAwMjE7CisyOUMzIDAwMjE7CisyOUM5IDAwMjE7CisyOUNGIDAwMjE7CisyOUQ1IDAwMjE7CisyOURCIDAwMjE7CisyOUUxIDAwMjE7CisyOUU3IDAwMjE7CisyOUVEIDAwMjE7CisyOUYzIDAwMjE7CisyOUY5IDAwMjE7CisyQTAxIDAwMjE7CisyQTA3IDAwMjE7CisyQTBFIDAwMjE7CisyQTE0IDAwMjE7CisyQTFBIDAwMjE7CisyQTIwIDAwMjE7CisyQTI2IDAwMjE7CisyQTJDIDAwMjE7CisyQTMyIDAwMjE7CisyQTM4IDAwMjE7CisyQTNFIDAwMjE7CisyQTQ0IDAwMjE7CisyQTRBIDAwMjE7CisyQTUwIDAwMjE7CisyQTU2IDAwMjE7CisyQTVDIDAwMjE7CisyQTYyIDAwMjE7CisyQTY4IDAwMjE7CisyQTZFIDAwMjE7CisyQTc3IDAwMjE7CisyQTdEIDAwMjE7CisyQTgzIDAwMjE7CisyQTg5IDAwMjE7CisyQThGIDAwMjE7CisyQTk1IDAwMjE7CisyQTlCIDAwMjE7CisyQUExIDAwMjE7CisyQUE3IDAwMjE7CisyQUFEIDAwMjE7CisyQUIzIDAwMjE7CisyQUI5IDAwMjE7CisyQUJGIDAwMjE7CisyQUM1IDAwMjE7CisyQUNCIDAwMjE7CisyQUQxIDAwMjE7CisyQUQ3IDAwMjE7CisyQURDIDAwM0Y7CisyQUUyIDAwNDE7CisyQUU4IDAwNDE7CisyQUVFIDAwNDE7CisyQUY0IDAwNDE7CisyQUZBIDAwNDE7CisyQjAwIDAwNDE7CisyQjA2IDAwNDE7CisyQjBDIDAwNDE7CisyQjEyIDAwNDE7CisyQ0U5IDAwNDE7CisyODA0IDAwNDE7CisyODBBIDAwNDE7CisyODEwIDAwNDE7CisyODE2IDAwNDE7CisyODFDIDAwNDE7CisyODIyIDAwNDE7CisyODI4IDAwNDE7CisyODJFIDAwNDE7CisyODM0IDAwNDE7CisyODNBIDAwNDE7CisyODQwIDAwNDE7CisyODQ2IDAwNDE7CisyODRDIDAwNDE7CisyODUyIDAwNDE7CisyODU4IDAwNDE7CisyODVFIDAwNDE7CisyODY0IDAwNDE7CisyODZBIDAwNDE7CisyODcwIDAwNDE7CisyODc2IDAwNDE7CisyODdDIDAwNDE7CisyODgyIDAwNDE7CisyODg4IDAwNDE7CisyODhFIDAwNDE7CisyODk0IDAwNDE7CisyODlBIDAwNDE7CisyOEEwIDAwNDE7CisyOEE2IDAwNDE7CisyOEFDIDAwNDE7CisyOEIyIDAwNDE7CisyOEI4IDAwNDE7CisyOEJFIDAwNDE7CisyOEM0IDAwNDE7CisyOENBIDAwNDE7CisyOEQwIDAwNDE7CisyOEQ2IDAwNDE7CisyOERDIDAwNDE7CisyOEUyIDAwNDE7CisyOEU4IDAwNDE7CisyOEVFIDAwNDE7CisyOEY0IDAwNDE7CisyOEZBIDAwNDE7CisyNjhBIDAwNDE7CisyNjMwIDAwNDE7CisyNjM2IDAwNDE7Cis0REM0IDAwNDE7Cis0RENBIDAwNDE7Cis0REQwIDAwNDE7Cis0REQ2IDAwNDE7Cis0RERDIDAwNDE7Cis0REUyIDAwNDE7Cis0REU4IDAwNDE7Cis0REVFIDAwNDE7Cis0REY0IDAwNDE7Cis0REZBIDAwNDE7CisxRDMwMCAwMDQxOworMUQzMDYgMDA0MTsKKzFEMzBDIDAwNDE7CisxRDMxMiAwMDQxOworMUQzMTggMDA0MTsKKzFEMzFFIDAwNDE7CisxRDMyNCAwMDQxOworMUQzMkEgMDA0MTsKKzFEMzMwIDAwNDE7CisxRDMzNiAwMDQxOworMUQzM0MgMDA0MTsKKzFEMzQyIDAwNDE7CisxRDM0OCAwMDQxOworMUQzNEUgMDA0MTsKKzFEMzU0IDAwNDE7CitBNDkzIDAwNDE7CitBNDk5IDAwNDE7CitBNDlGIDAwNDE7CitBNEE1IDAwNDE7CitBNEFCIDAwNDE7CitBNEIxIDAwNDE7CitBNEI3IDAwNDE7CitBNEJEIDAwNDE7CitBNEMzIDAwNDE7CisxMDEzOSAwMDQxOworMTAxM0YgMDA0MTsKKzEwMTdFIDAwNDE7CisxMDE4NCAwMDQxOworMUQwMDAgMDA0MTsKKzFEMDA2IDAwNDE7CisxRDAwQyAwMDQxOworMUQwMTIgMDA0MTsKKzFEMDE4IDAwNDE7CisxRDAxRSAwMDQxOworMUQwMjQgMDA0MTsKKzFEMDJBIDAwNDE7CisxRDAzMCAwMDQxOworMUQwMzYgMDA0MTsKKzFEMDNDIDAwNDE7CisxRDA0MiAwMDQxOworMUQwNDggMDA0MTsKKzFEMDRFIDAwNDE7CisxRDA1NCAwMDQxOworMUQwNUEgMDA0MTsKKzFEMDYwIDAwNDE7CisxRDA2NiAwMDQxOworMUQwNkMgMDA0MTsKKzFEMDcyIDAwNDE7CisxRDA3OCAwMDQxOworMUQwN0UgMDA0MTsKKzFEMDg0IDAwNDE7CisxRDA4QSAwMDQxOworMUQwOTAgMDA0MTsKKzFEMDk2IDAwNDE7CisxRDA5QyAwMDQxOworMUQwQTIgMDA0MTsKKzFEMEE4IDAwNDE7CisxRDBBRSAwMDQxOworMUQwQjQgMDA0MTsKKzFEMEJBIDAwNDE7CisxRDBDMCAwMDQxOworMUQwQzYgMDA0MTsKKzFEMENDIDAwNDE7CisxRDBEMiAwMDQxOworMUQwRDggMDA0MTsKKzFEMERFIDAwNDE7CisxRDBFNCAwMDQxOworMUQwRUEgMDA0MTsKKzFEMEYwIDAwNDE7CisxRDEwMCAwMDQxOworMUQxMDYgMDA0MTsKKzFEMTBDIDAwNDE7CisxRDExMiAwMDQxOworMUQxMTggMDA0MTsKKzFEMTFFIDAwNDE7CisxRDEyNCAwMDQxOworMUQxMkEgMDA0MTsKKzFEMTMwIDAwNDE7CisxRDEzNiAwMDQxOworMUQxM0MgMDA0MTsKKzFEMTQyIDAwNDE7CisxRDE0OCAwMDQxOworMUQxNEUgMDA0MTsKKzFEMTU0IDAwNDE7CisxRDE1OCAxRDE2NSAwMzM0OworMUQxNjMgMDAzRjsKKzFEMTVBIDAwNjE7CisxRDE2QyAwMDYxOworMUQxOEYgMDA2MTsKKzFEMTk1IDAwNjE7CisxRDE5QiAwMDYxOworMUQxQTEgMDA2MTsKKzFEMUE3IDAwNjE7CisxRDFCMSAwMDYxOworMUQxQjcgMDA2MTsKKzFEMUJGIDAwNjE7CisxRDFCRSAwMDYxOworMUQxQzUgMDAyMTsKKzFEMUNCIDAwMjE7CisxRDFEMSAwMDIxOworMUQxRDcgMDAyMTsKKzFEMUREIDAwMjE7CisxRDIwNSAwMDIxOworMUQyMEIgMDAyMTsKKzFEMjExIDAwMjE7CisxRDIxNyAwMDIxOworMUQyMUQgMDAyMTsKKzFEMjIzIDAwMjE7CisxRDIyOSAwMDIxOworMUQyMkYgMDAyMTsKKzFEMjM1IDAwMjE7CisxRDIzQiAwMDIxOworMUQyNDEgMDAyMTsKKzJGRjQgMDAyMTsKKzJGRkEgMDAyMTsKKzMxQzQgMDAyMTsKKzMxQ0EgMDAyMTsKKzMwMDQgMDAyMTsKKzMwM0UgMDAyMTsKK0ZGRkQgMDAyMTsKKzEzNzIgMDAyMTsKKzEzNzggMDAyMTsKKzIxODEgMDAyMTsKKzEwMTEwIDAwMjE7CisxMDExNiAwMDIxOworMTAxMUMgMDAyMTsKKzEwMTIyIDAwMjE7CisxMDEyOCAwMDIxOworMTAxMkUgMDAyMTsKKzEwMTQwIDAwMjE7CisxMDE0OSAwMDIxOworMTAxNTAgMDAyMTsKKzEwMTU2IDAwMjE7CisxMDE2NCAwMDIxOworMTAxNkEgMDAyMTsKKzEwMTcwIDAwMjE7CisxMDE3NyAwMDIxOworMTBBNDUgMDAyMTsKKzBFQzYgMDAyMTsKKzMwMzMgMDA0MTsKK0ZGNzAgMDA0MTsKK0ZGRTAgMDA2MjsKKzAwQTUgMDA2MTsKKzBCRjkgMDA2MjsKKzIwQTMgMDA2MjsKK0ZGRTYgMDA2MjsKKzIwQUYgMDA2MjsKKzIwQjUgMDA2MjsKKzEwNDAgMDAyMTsKKzE5RDAgMDAzRjsKKzIwNzAgMDA0MTsKKzE5RDAgMDA0MTsKKzIwNzAgMDA2MjsKKzMzNTggMDA2MjsKKzE5RDEgMDAyMTsKKzAwQjkgMDAzRjsKKzEwMTU5IDAwM0Y7CisyMTU1IDAwNDE7CisyNDY5IDAwNjE7CisyNDZBIDAwMjE7CisyNDZCIDAwMjE7CisyNDZDIDAwMjE7CisyNDk1IDAwM0Y7CisyNEVGIDAwNjE7CiszM0VGIDAwMjE7CiszMzY5IDAwMjE7CisyNDcyIDAwMjE7CisxRDdEOSAwMDYxOworMTA0QTEgMDA0MTsKKzBGMjEgMDA0MTsKK0ZGMTEgMDA2MjsKKzBFRDEgMDA2MjsKKzMzNTkgMDA2MjsKKzE5RDIgMDAyMTsKKzIwODIgMDAzRjsKKzEwMTVFIDAwM0Y7CisyNEY0IDAwNDE7CiszMjUyIDAwNjE7CiszMjU0IDAwNjE7CiszM0Y5IDAwNjE7CiszM0ZDIDAwNjE7CisyMDgyIDAwNDE7CisxOTQ4IDAwNDE7CisxMDE1RSAwMDQxOworMEM2OCAwMDYyOworMzJDMSAwMDYyOworMEJFOSAwMDIxOworMjA4MyAwMDNGOworMjQ4QSAwMDYxOworMzI1QiAwMDYxOworMzJCMSAwMDYxOworMUQ3RUYgMDA0MTsKKzBBNjkgMDA2MTsKKzE3RjMgMDA2MTsKKzA5RjYgMDA2MjsKKzMyQzIgMDA2MjsKKzBCRUEgMDAyMTsKKzIwODQgMDAzRjsKKzI0OEIgMDA2MTsKKzMyQjkgMDA2MTsKK0ZGMTQgMDA2MTsKKzEzNkMgMDA2MTsKKzBFRDQgMDA2MTsKKzI3ODMgMDA2MjsKKzEwQTQzIDAwNjI7CiswNjY1IDAwMjE7CisxMDMyMSAwMDIxOworMEU1NSAwMDNGOworMjE1RCAwMDYyOworMjA3NSAwMDYxOworMTk0QiAwMDYxOworMTAxNDggMDA0MTsKKzBDNkIgMDA2MjsKKzMyQzQgMDA2MjsKKzBDNkMgMDAyMTsKKzA2RjYgMDAzRjsKKzAwMzYgMDA0MTsKKzA2RjYgMDA0MTsKKzBFRDYgMDA0MTsKKzIwODYgMDA2MjsKKzMzRTUgMDA2MjsKKzA5RUQgMDAyMTsKKzI3ODYgMDAzRjsKKzI0OEUgMDAzRjsKKzI3N0MgMDA0MTsKKzBDRUQgMDA0MTsKKzFEN0RGIDAwNjI7CisxMDQ3IDAwNjI7CisyNzdEIDAwMjE7CiswMDM4IDAwM0Y7CiswRUQ4IDAwM0Y7CisyNzdEIDAwNjE7CiswQkVFIDAwNjE7CisxMDEwRSAwMDYxOworMTlEOCAwMDYyOworMUQ3RUIgMDAyMTsKKzE3RTkgMDAyMTsKKzBDRUYgMDAzRjsKKzFEN0VCIDAwNDE7CiswQTZGIDAwNDE7CisxN0Y5IDAwNDE7CiswQkVGIDAwNjI7CiszMzYxIDAwNjI7CiswMDgxIDAwNjE7CiswMzRGIDAwNjE7CiswNUFDIDAwNjE7CiswNkUzIDAwNjE7CisyMDJEIDAwNjE7CitGRTA1IDAwNjE7CisxRDE3MiAwMDYxOworMUQyNDQgMDA2MTsKK0UwMDIyIDAwNjE7CitFMDA0MCAwMDYxOworRTAwNUUgMDA2MTsKK0UwMDdDIDAwNjE7CitFMDExQSAwMDYxOworRTAxMzggMDA2MTsKK0UwMTU2IDAwNjE7CitFMDE3NCAwMDYxOworRTAxOTIgMDA2MTsKK0UwMUIwIDAwNjE7CitFMDFDRSAwMDYxOworRTAxRUMgMDA2MTsKKzAwMUIgMDA0MTsKKzAwOTkgMDA0MTsKKzA1QTUgMDA0MTsKKzA2REMgMDA0MTsKKzIwMEMgMDA0MTsKK0ZERDQgMDA0MTsKKzFEMTY4IDAwNDE7CisxRDE4QiAwMDQxOworQ0ZGRkUgMDA0MTsKK0UwMDM5IDAwNDE7CitFMDA1NyAwMDQxOworRTAwNzUgMDA0MTsKK0UwMTEzIDAwNDE7CitFMDEzMSAwMDQxOworRTAxNEYgMDA0MTsKK0UwMTZEIDAwNDE7CitFMDE4QiAwMDQxOworRTAxQTkgMDA0MTsKK0UwMUM3IDAwNDE7CitFMDFFNSAwMDQxOworMDBDMCAwMzM0OworMDEwMiAwMzM0IDAzMDM7CiswMEMyIDAzMzQgMDM0MDsKKzAwNjEgMDMwQSAwMzAxIDAzMzQ7CiswMjI3IDAzMzQ7CiswMDYxIDAzMEYgMDMzNDsKKzAwNDEgMDMyMyAwMzM0IDAzMDI7CiswMzBDIDAwNjE7CiswMzBFIDAwNjE7CiswMzFGIDAwNjE7CiswMzMwIDAwNjE7CiswMzQ1IDAwNjE7CiswMzU1IDAwNjE7CiswMzYyIDAwNjE7CiswNUI2IDAwNjE7CitGRTcyIDAwNjE7CitGQ0YyIDAwNDE7CiswNjU2IDAwNjE7CiswNzM0IDAwNjE7CiswNzQzIDAwNjE7CiswOTU0IDAwNjE7CiswQjNDIDAwNjE7CitBODBCIDAwNjE7CiswRUM4IDAwNjE7CisxN0M4IDAwNjE7CiszMDJBIDAwNjE7CisyMEQ1IDAwNjE7CisyMEU0IDAwNjE7CisxRDY1NiAwMDIxOworMUVBRSAwMDIxOworMDIyNyAwMDIxOworMUQ1MUUgMDAzRjsKKzAwQzEgMDAzRjsKKzAwRTQgMDAzRjsKKzMzQzIgMDA2MTsKKzFENTUyIDAwNjE7CisxRDREMCAwMDYxOworMUQyQyAwMDYxOworMDBFMiAwMDYxOworMDFGQiAwMDYxOworMDEwMCAwMDYxOworMDA2MSAwMDYyOworMUQ2M0MgMDA2MjsKKzFFQTggMDA2MjsKKzFFQjcgMDA2MjsKKzAxRkQgMDAzRjsKKzFFOUEgMDAyMTsKKzFEMDIgMDA0MTsKKzAyNTIgMDAyMTsKKzAwMTkgMDA2MjsKKzAwOTcgMDA2MjsKKzA1QTMgMDA2MjsKKzA2REEgMDA2MjsKKzE4MEUgMDA2MjsKK0ZERDIgMDA2MjsKKzFEMTY2IDAwNjI7CisxRDE4OSAwMDYyOworQkZGRkUgMDA2MjsKK0UwMDM3IDAwNjI7CitFMDA1NSAwMDYyOworRTAwNzMgMDA2MjsKK0UwMTExIDAwNjI7CitFMDEyRiAwMDYyOworRTAxNEQgMDA2MjsKK0UwMTZCIDAwNjI7CitFMDE4OSAwMDYyOworRTAxQTcgMDA2MjsKK0UwMUM1IDAwNjI7CitFMDFFMyAwMDYyOworMDA2MiAwMzM0IDAzMzE7CiswMzBFIDAwNjI7CiswMzMwIDAwNjI7CiswMzU2IDAwNjI7CiswNUI3IDAwNjI7CitGRTdEIDAwNjI7CiswNzM1IDAwNjI7CiswOUJDIDAwNjI7CisxMEEwRCAwMDYyOworMTdDOSAwMDYyOworMjBENiAwMDYyOworMUQ1NTMgMDAyMTsKKzFFMDcgMDAyMTsKKzFENjA5IDAwM0Y7CisxRDQ0RiAwMDQxOworMUQ2NzEgMDA2MTsKKzFFMDYgMDA2MTsKKzFENTA1IDAwNjI7CiswMTgwIDAwNDE7CiswMjUzIDAwNjI7CiswMDQzIDAzMzQgMDMwQzsKKzFENDg0IDAwMjE7CiswMTA3IDAwMjE7CiswMDQzIDAwM0Y7CisyMTA1IDAwMjE7CisxRDU4OCAwMDYxOworMUQ0MzYgMDA2MTsKKzAxMDYgMDA0MTsKKzFENDFDIDAwNjI7CisyNEI4IDAwNjI7CiszM0EwIDAwNjI7CiswMTg3IDAwMjE7CisxRTBBIDAzMzQ7CisyMTdFIDAwMjE7CisxRDYwQiAwMDIxOworMUQ0ODUgMDAzRjsKKzFENDggMDAzRjsKKzFENDg1IDAwNjE7CitGRjI0IDAwNDE7CisxRDY3MyAwMDQxOworMUUwRSAwMDQxOworMUQ1RjEgMDA2MjsKKzFFMTAgMDA2MjsKKzMzNzggMDAzRjsKKzAxRjIgMDA2MTsKKzFEMDUgMDA0MTsKKzAxOEEgMDAzRjsKKzAwRTkgMDMzNDsKKzAwNDUgMDMzNCAwMzAyIDAzNDE7CiswMDQ1IDAzMEMgMDMzNDsKKzAxMTUgMDMzNCAwMzI3OworMDExMiAwMzAwIDAzMzQ7CisxRUM3IDAzMzQ7CisxRDU4QSAwMDIxOworMDExNSAwMDIxOworMUUxNSAwMDIxOworMUQ2MjYgMDAzRjsKKzAwQ0EgMDAzRjsKKzFFQkEgMDAzRjsKKzFENjI2IDAwNjE7CisxRDU3MCAwMDYxOworMDBDOSAwMDQxOworMDExQiAwMDQxOworMDExMiAwMDQxOworMUUxOSAwMDQxOworMUQ0NkMgMDA2MjsKKzAxMUIgMDA2MjsKKzFFMTkgMDA2MjsKKzAxREQgMDA2MTsKKzFEOTUgMDAzRjsKKzAyNTggMDAzRjsKKzFENEMgMDA2MTsKKzAwNjYgMDAyMTsKKzFENjc1IDAwMjE7CisxRDU3MSAwMDNGOworMUQ0QkIgMDA0MTsKKzFENDA1IDAwNDE7CisxRDRCQiAwMDYyOworRkIwMCAwMDIxOworMDJBOSAwMDIxOworMDA0NyAwMzM0IDAzMDE7CiswMDQ3IDAzMjcgMDMzNDsKKzFENEEyIDAwMjE7CisxRDQyMCAwMDNGOworMUQzMyAwMDNGOworMUQ2NUMgMDA2MTsKKzFENURBIDAwNjE7CiswMTFFIDAwNDE7CisxRDQ1NCAwMDYyOworMDFGNSAwMDYyOworMzNDOSAwMDNGOworMDFFNCAwMDYxOworMDE5NCAwMDIxOworMDA2OCAwMzBDIDAzMzQ7CiswMDY4IDAzMkUgMDMzNDsKKzIxMEIgMDAyMTsKKzFFOTYgMDAyMTsKKzFENTczIDAwM0Y7CitGRjQ4IDAwNDE7CisyNEQ3IDAwNDE7CisxRDY3NyAwMDQxOworMUUyNCAwMDQxOworMUQ1RjUgMDA2MjsKKzFFMjIgMDA2MjsKKzMzOTAgMDA2MjsKKzAyNjcgMDA2MjsKKzAwNDkgMDMwNiAwMzM0OworMDA2OSAwMzM0IDAzMDM7CiswMDQ5IDAzMzQgMDMwRjsKKzFENDhBIDAwMjE7CisxRDYyIDAwMjE7CisxRUNBIDAwMjE7CisxRDQ3MCAwMDNGOworMDEyRiAwMDNGOworMUQ1NUEgMDA2MTsKKzIxMTAgMDA2MTsKKzFENjIgMDA2MTsKKzFFMkUgMDA2MTsKKzFFQ0EgMDA2MTsKKzIxMTEgMDA2MjsKKzAxMjkgMDA2MjsKKzIxNjIgMDAzRjsKKzIxNjMgMDAzRjsKKzFEQTYgMDAzRjsKKzAxOTcgMDA2MjsKKzAxOTYgMDA2MjsKKzFENjVGIDAwMjE7CisxRDRCRiAwMDNGOworMDEzNCAwMDNGOworMUQ1RjcgMDA0MTsKKzFENTc1IDAwNDE7CisxRDVGNyAwMDYyOworMDIzNyAwMDYxOworMURBMSAwMDYyOworMUUzMyAwMzM0OworRkYyQiAwMDIxOworMUQ0NTggMDAzRjsKKzFENEYgMDAzRjsKKzFENDU4IDAwNDE7CisxRDYxMiAwMDYxOworMDEzNyAwMDYxOworMUQ2NjAgMDA2MjsKKzFFMzUgMDA2MjsKKzMzOTggMDA0MTsKKzMzQ0YgMDA0MTsKKzAxOTggMDAzRjsKKzAwNEMgMDMzNCAwMzI3OworMjE3QyAwMDIxOworMUQ2NDcgMDAyMTsKKzFENTI5IDAwM0Y7CiswMTNFIDAwM0Y7CisyMTEzIDAwNjE7CiswMDRDIDAwNjE7CisxRDY0NyAwMDQxOworMUUzQyAwMDYxOworMjE2QyAwMDYyOworMUUzQSAwMDYyOworMzNEMiAwMDYxOworMURBQiAwMDQxOworMUQ4NSAwMDNGOworMDE5QiAwMDYxOworMDA2RCAwMDIxOworMUQ1RTAgMDAyMTsKKzI0REMgMDAzRjsKKzMzQTggMDA2MTsKKzFENTVFIDAwNjE7CisxRDQ0MCAwMDYxOworMUUzRiAwMDYxOworMUQ1RkEgMDA2MjsKKzMzRDQgMDAyMTsKKzMzOUMgMDAyMTsKKzMzQjcgMDAyMTsKKzFENkYgMDAyMTsKKzAwNkUgMDMzNCAwMzQwOworMDA2RSAwMzIzIDAzMzQ7CisxRDYyRiAwMDIxOworMUU0NSAwMDIxOworMUQ0NDEgMDAzRjsKKzFFNDkgMDAzRjsKKzFENjYzIDAwNDE7CisxRDVFMSAwMDQxOworMDE0NiAwMDYxOworMUQ1OTMgMDA2MjsKKzAxNDcgMDA2MjsKKzAxQ0MgMDA2MjsKKzAyNzQgMDAzRjsKKzAyNzIgMDA0MTsKKzFEQUYgMDA0MTsKKzAwRDggMDM0MSAwMzM0OworMDA2RiAwMzAyIDAzMzQgMDM0MTsKKzFFRDQgMDMzNDsKKzAwNEYgMDMwMyAwMzM0OworMDA0RiAwMzA3IDAzMzQ7CiswMTRDIDAzMzQ7CiswMDZGIDAzMzQgMDMxMTsKKzFFRTEgMDMzNDsKKzFFQ0QgMDMzNCAwMzAyOworMUQ0REUgMDAyMTsKKzAxRDIgMDAyMTsKKzFFNTMgMDAyMTsKKzFENDI4IDAwM0Y7CisxRDUyIDAwM0Y7CisxRTRDIDAwM0Y7CiswMUEwIDAwM0Y7CisxRDVGQyAwMDYxOworMUQ1N0EgMDA2MTsKKzAwRjMgMDA0MTsKKzFFRDQgMDA0MTsKKzAyMkQgMDA0MTsKKzAxNEMgMDA0MTsKKzFFREQgMDA0MTsKKzFENEY4IDAwNjI7CiswMEYzIDAwNjI7CiswMjJEIDAwNjI7CisxRUREIDAwNjI7CisxRDBGIDAwNDE7CiswMTg2IDAwNjE7CisxRDE2IDAwNjI7CiswMjc3IDAwNDE7CiswMDcwIDAzMDcgMDMzNDsKKzFENTEzIDAwMjE7CiswMDUwIDAwM0Y7CitGRjUwIDAwNDE7CiswMDUwIDAwNDE7CisyNEM1IDAwNDE7CisxRDUyRCAwMDYyOworMUU1NiAwMDYyOworMzNCMCAwMDYyOworMUQ3MSAwMDYyOworMUQ0OTIgMDAyMTsKKzFENDJBIDAwM0Y7CiswMDcxIDAwNjE7CisyNEUwIDAwNjE7CisxRDY0QyAwMDQxOworMUQ1QjAgMDA2MjsKKzAwNzIgMDMzNCAwMzBDOworMDA3MiAwMzM0IDAzMjM7CisxRDU2MyAwMDIxOworMDE1OCAwMDIxOworMUQ2OUIgMDAzRjsKKzAyMTAgMDAzRjsKKzFENDkzIDAwNDE7CisyMTFCIDAwNDE7CisxRTU5IDAwNDE7CiszM0FFIDAwM0Y7CitGRjMyIDAwNjI7CisxRTVCIDAwNjI7CisxRDcyIDAwNjI7CiswMjdCIDAwNjE7CiswMjdGIDAwNjI7CiswMDUzIDAzMDIgMDMzNDsKKzAwNzMgMDMzNCAwMzIzOworMUQ1NjQgMDAyMTsKKzAxNUMgMDAyMTsKKzFENjY4IDAwM0Y7CisxRTYxIDAwM0Y7CisxRDQ2MCAwMDQxOworMUQ2ODIgMDA2MTsKKzAxNjEgMDA2MTsKKzFFOUIgMDA2MTsKKzFENjFBIDAwNjI7CisyMTIwIDAwNDE7CisxRDc0IDAwNDE7CiswMUE5IDAwNjE7CiswMjg2IDAwNDE7CiswMDc0IDAzMzQgMDMyNjsKKzFENUNEIDAwMjE7CiswMTYyIDAwMjE7CisxRDQ3QiAwMDNGOworMDA3NCAwMDQxOworMUQ2OUQgMDA0MTsKKzFENjFCIDAwNDE7CiswMjFBIDAwNDE7CisxRDQ3QiAwMDYyOworMDJBOCAwMDNGOworMDFCRSAwMDQxOworMUQ3NSAwMDNGOworMDFBRSAwMDYxOworMDA3NSAwMzA2IDAzMzQ7CiswMDc1IDAzMDggMDMzNCAwMzQxOworMDBEQyAwMzA0IDAzMzQ7CiswMTZCIDAzMzQ7CiswMDc1IDAzMUIgMDMzNDsKKzAwNzUgMDMwOSAwMzFCIDAzMzQ7CisxRTc3IDAzMzQ7CitGRjM1IDAwMjE7CiswMEZDIDAwMjE7CisxRUU5IDAwMjE7CisxRDYwMiAwMDNGOworMDBGQiAwMDNGOworMDIxNSAwMDNGOworMUQ0MkUgMDA2MTsKK0ZGMzUgMDA2MTsKKzFENTggMDA2MTsKKzAwRkMgMDA2MTsKKzFFNzggMDA2MTsKKzFFRTkgMDA2MTsKKzFFNzYgMDA2MTsKKzFENTE4IDAwNjI7CiswMURBIDAwNjI7CisxRUVEIDAwNjI7CisxRDFEIDAwNjI7CisxRDk5IDAwNDE7CiswMTlDIDAwNjE7CiswMUIxIDAwNjE7CisxRDQyRiAwMDIxOworMjRDQiAwMDIxOworMUQ0N0QgMDAzRjsKKzIxNzQgMDA0MTsKKzAwNTYgMDA0MTsKKzFENjg1IDAwNDE7CisxRDY2QiAwMDYyOworMjE3NSAwMDYxOworMUQyMCAwMDYyOworMURCQSAwMDYyOworMDA1NyAwMzM0IDAzMDg7CiswMDU3IDAwMjE7CisxRTg4IDAwMjE7CisxRDY1MiAwMDNGOworMUQ1RDAgMDA2MTsKKzFENTRFIDAwNjE7CisxRTgxIDAwNjE7CisxRDU2OCAwMDYyOworMDE3NSAwMDYyOworMDA3OCAwMzA3IDAzMzQ7CisxRDQ0QiAwMDIxOworMUQ1OUQgMDAzRjsKKzAwNzggMDA2MTsKKzFENjA1IDAwNDE7CisxRDUxQiAwMDQxOworMUQ1MDEgMDA2MjsKKzFFOEMgMDA2MjsKKzAwNzkgMDMzNCAwMzQxOworMDA3OSAwMzM0IDAzMDM7CitGRjU5IDAwMjE7CisyNENFIDAwMjE7CisxRDU5RSAwMDNGOworMUU5OSAwMDNGOworMUQ0MzIgMDA0MTsKKzFENjU0IDAwNjE7CiswMTc2IDAwNDE7CisxRDQ2NiAwMDYyOworMDBGRCAwMDYyOworMDFCMyAwMDYxOworMDA3QSAwMzIzIDAzMzQ7CisyMTI0IDAwMjE7CisxRDQ2NyAwMDNGOworMDE3QSAwMDNGOworMUQ0NjcgMDA0MTsKKzFENjg5IDAwNjE7CiswMTdDIDAwNjE7CisyMTI0IDAwNjI7CiswMThEIDAwNDE7CiswMjI0IDAwM0Y7CiswMjQwIDAwNDE7CisxREJFIDAwNjI7CiswMjkzIDAwNjE7CiswMUY3IDAwNDE7CiswMTg1IDAwM0Y7CiswMTQ5IDAwNjE7CiswMkMxIDAwNjE7CiswMjk2IDAwNjE7CiswMjk4IDAwNjE7CiswM0IxIDAzNDMgMDMwMSAwMzM0IDAzNDU7CisxRjBFIDAzMzQ7CisxRjA5IDAzMDEgMDMzNDsKKzFGMDkgMDMzNCAwMzQyOworMUZCMyAwMzQxIDAzMzQ7CiswMzkxIDAzMzQgMDMwNDsKKzFGMDYgMDAyMTsKKzFGQjAgMDAyMTsKKzFGMDYgMDAzRjsKKzFGQjAgMDAzRjsKKzFENzU2IDAwNDE7CisxRjgwIDAwNjE7CisxRjhGIDAwNjE7CisxRkIxIDAwNjE7CisxRjA2IDAwNjI7CisxRkIwIDAwNjI7CiswMzkyIDAwM0Y7CisxRDZFMyAwMDQxOworMDM5MyAwMDIxOworMUQ3MzggMDA2MTsKKzFENkZFIDAwNjI7CisxRDVGIDAwMjE7CisxRDcxRiAwMDYxOworMUYxOCAwMzM0OworMUYxOSAwMzM0IDAzNDE7CisxRDcxNiAwMDIxOworMUZDOCAwMDIxOworMUYxQiAwMDNGOworMUQ3QzQgMDA0MTsKKzFGMTUgMDA0MTsKKzFEN0M0IDAwNjI7CiswM0REIDAwNDE7CisxRDczQiAwMDNGOworMUQ3MjEgMDA0MTsKKzAzOTcgMDM0MyAwMzM0IDAzMDE7CiswMzk3IDAzMTMgMDM0MiAwMzM0OworMUYyOSAwMzM0IDAzMDE7CisxRjI3IDAzMzQ7CiswM0I3IDAzNDEgMDMzNCAwMzQ1OworMUQ3MDIgMDAyMTsKKzFGOTUgMDAyMTsKKzAzOTcgMDAzRjsKKzFGOTMgMDAzRjsKKzFENzc2IDAwNDE7CisxRjkyIDAwNjE7CisxRjJCIDAwNjE7CisxRkNBIDAwNjE7CisxRjIyIDAwNjI7CisxRkM0IDAwNjI7CisxRDc5NyAwMDIxOworMDNEMSAwMDYxOworMUQ3MjMgMDA2MTsKKzAzOTggMDA2MjsKKzFGQkUgMDMxMyAwMzAwIDAzMzQ7CisxRjMzIDAzMzQ7CiswMzk5IDAzMzQgMDM0MDsKKzFGQkUgMDMwOCAwMzQyIDAzMzQ7CisxRjNFIDAwMjE7CisxRDcwNCAwMDNGOworMUY3NiAwMDNGOworMDM5OSAwMDQxOworMUYzOSAwMDQxOworMUZENiAwMDQxOworMUQ3OTggMDA2MjsKKzFGRDIgMDA2MjsKKzFENkRFIDAwM0Y7CisxRDZERSAwMDQxOworMUQ3OEMgMDA2MjsKKzFENzdBIDAwM0Y7CisxRDc2MCAwMDQxOworMUQ3NjEgMDAyMTsKKzAzOUMgMDA0MTsKKzMzOEMgMDAzRjsKKzMzQkMgMDAzRjsKKzFENkNFIDAwNjE7CisxRDZFRSAwMDYyOworMUQ2Q0YgMDA2MTsKKzFENkVGIDAwNjI7CisxRjQxIDAzMzQ7CiswM0JGIDAzNDAgMDMzNDsKKzAzQ0MgMDAyMTsKKzAzQ0MgMDAzRjsKKzFGNDAgMDA2MTsKKzAzOEMgMDA0MTsKKzAzQ0MgMDA2MjsKKzFENkUxIDAwM0Y7CisxRDdDOSAwMDYxOworMUQ2RTEgMDA2MjsKKzAzRkEgMDA2MjsKKzFGRUMgMDMzNDsKKzFENzU0IDAwM0Y7CisxRDZFMCAwMDQxOworMDNGMSAwMDYyOworMDNGQyAwMDYyOworMUQ3ODIgMDAzRjsKKzFENzQ4IDAwNDE7CisxRDc4MiAwMDYyOworMUQ3ODMgMDAyMTsKKzFENzgzIDAwNDE7CiswM0M1IDAzMTMgMDMwMSAwMzM0OworMDNBNSAwMzE0IDAzMzQgMDM0MDsKKzAzQTUgMDM0MCAwMzM0OworMDNDNSAwMzM0IDAzMDggMDM0MjsKKzFGNUIgMDAyMTsKKzFENkJDIDAwM0Y7CiswM0IwIDAwM0Y7CisxRDc2QSAwMDQxOworMDM4RSAwMDYxOworMUZFMSAwMDYxOworMUY3QiAwMDYyOworMDNBNiAwMDIxOworMDNENSAwMDYxOworMUQ2RjcgMDA0MTsKKzFENzEyIDAwMjE7CisxRDc0QyAwMDYxOworMDNBNyAwMDYyOworMUQ3NkQgMDAzRjsKKzFENzg3IDAwNjI7CiswM0M5IDAzNDMgMDM0NSAwMzAxIDAzMzQ7CisyMTI2IDAzNDMgMDM0MiAwMzM0OworMDNBOSAwMzE0IDAzNDEgMDMzNDsKKzAzQTkgMDMxNCAwMzM0IDAzNDI7CisxRjdEIDAzNDUgMDMzNDsKKzFENzE0IDAwMjE7CisxRjZEIDAwMjE7CisxRDdDMiAwMDNGOworMUY2MyAwMDNGOworMUQ3MTQgMDA0MTsKKzFGNjIgMDA2MTsKKzFGQUQgMDA2MTsKKzFGRjQgMDA2MTsKKzFGNjggMDA2MjsKKzFGQTkgMDA2MjsKKzAzRjcgMDA0MTsKKzJDODQgMDA0MTsKKzJDQjYgMDA0MTsKKzJDOEUgMDA0MTsKKzJDOTQgMDA0MTsKKzJDOTkgMDAzRjsKKzJDQkQgMDAzRjsKKzJDQTEgMDAzRjsKKzJDQTcgMDAzRjsKKzJDQUQgMDAzRjsKKzJDQkYgMDAzRjsKKzJDQzMgMDAzRjsKKzAzRTUgMDAzRjsKKzAzRTkgMDAzRjsKKzJDQ0YgMDAzRjsKKzJDRDUgMDAzRjsKKzAzRUQgMDAzRjsKKzJDREQgMDAzRjsKKzJDQjUgMDAzRjsKKzJDRTMgMDAzRjsKKzA0MTAgMDMwNiAwMDIxOworMDQxMCAwMzA4IDAwMjE7CiswNEQ5IDAwMDEgMDMwOCAwMDYxOworMDREOSAwMzA4IDAwNjI7CiswNDEyIDAwNjE7CiswNDkzIDAwM0Y7CiswNDM0IDAwM0Y7CiswNTAzIDAwM0Y7CiswNDMzIDA1OTEgMDMwMSAwMDYxOworMDQ5OCAwMDYxOworMDQzNSAwMDYxOworMDQzNSAwMzA2IDAwM0Y7CiswNDM2IDAzMDYgMDMzNDsKKzA0REQgMDMzNDsKKzA0OTcgMDAzRjsKKzA0MzcgMDMwOCAwMzM0OworMDQ1NSAwMDIxOworMDQzOCAwMzAwIDAzMzQ7CiswNDVEIDAwNjE7CiswNEU1IDAzMzQ7CiswNDU2IDAwM0Y7CiswNDA2IDAzMDggMDA2MTsKKzA0MTggMDMwNiAwMDYxOworMDQxQSAwMDAxIDAzMDEgMDA2MTsKKzA0QTAgMDA2MTsKKzA0MUIgMDA2MTsKKzA1MDggMDAyMTsKKzA0MUQgMDAyMTsKKzA0QTIgMDA2MTsKKzA0MEEgMDA2MTsKKzA0MUUgMDMzNCAwMzA4OworMDRFOSAwMDYxOworMDRFOCAxRDE2NSAwMzA4IDAwNjE7CiswNDgxIDAwM0Y7CiswNDQxIDAwM0Y7CiswNDQyIDAwM0Y7CiswNDVCIDAwM0Y7CiswNDNBIDA1OTEgMDMwMSAwMDYxOworMDQ0MyAwMDIxOworMDQyMyAwMzA2IDAzMzQ7CiswNDIzIDAzMzQgMDMwODsKKzA0MjMgMDMzNCAwMzBCOworMDRBRiAwMDYxOworMDQ0NCAwMDYxOworMDRCQiAwMDYxOworMDQ3RCAwMDYxOworMDRCNSAwMDYxOworMDQyNyAwMzA4IDAwM0Y7CiswNENDIDAwM0Y7CiswNEJGIDAwM0Y7CiswNDQ5IDAwM0Y7CiswNDRCIDAzMDggMDMzNDsKKzA0NEMgMDAyMTsKKzA0NEQgMDAyMTsKKzA0NEQgMDMwOCAwMDQxOworMDQ0RiAwMDYyOworMDQ2QiAwMDYyOworMDQ2RiAwMDYyOworMDQ3NSAwMDAxIDAzMEYgMDA2MTsKKzA0NzUgMDMwRiAwMDYyOworMkMwMSAwMDIxOworMkMwNCAwMDIxOworMkMwNyAwMDIxOworMkMwQSAwMDIxOworMkMwRCAwMDIxOworMkMxMCAwMDIxOworMkMxMyAwMDIxOworMkMxNiAwMDIxOworMkMxOSAwMDIxOworMkMxQyAwMDIxOworMkMxRiAwMDIxOworMkMyMiAwMDIxOworMkMyNSAwMDIxOworMkMyOCAwMDIxOworMkMyQiAwMDIxOworMkMyRSAwMDIxOworMTBBMSAwMDIxOworMTBBMyAwMDIxOworMTBBNSAwMDIxOworMTBDMSAwMDIxOworMTBBOCAwMDIxOworMTBBQSAwMDIxOworMTBGQyAwMDYxOworMTBERCAwMDNGOworMTBERiAwMDNGOworMTBFMSAwMDNGOworMTBGMyAwMDNGOworMTBFNCAwMDNGOworMTBFNiAwMDNGOworMTBFOCAwMDNGOworMTBFQSAwMDNGOworMTBFQyAwMDNGOworMTBFRSAwMDNGOworMTBFRiAwMDNGOworMTBGNSAwMDNGOworMTBGOSAwMDNGOworMDUzMyAwMDIxOworMDU4NyAwMDNGOworMDUzOCAwMDYxOworMDUzQiAwMDYxOworMDUzRSAwMDYxOworMDU0MSAwMDYxOworMDU0NCAwMDYxOworMDU0NSAwMDYxOworMDU0OCAwMDYxOworMDU0QiAwMDYxOworMDU0RSAwMDYxOworMDU1MSAwMDIxOworMDU1NCAwMDIxOworMDU1OSAwMDNGOworRkIyMSAwMDQxOworRkIzMSAwMDNGOworMjEzNyAwMDYyOworRkIzNCAwMDIxOworRkIzNSAwMDQxOworMDVENyAwMDQxOworRkIxRCAwMDQxOworMDVEQSAwMDIxOworRkIzQyAwMzM0OworRkIyNiAwMDQxOworMDVFMSAwMDIxOworMDVFMyAwMDIxOworMDVFNiAwMDNGOworRkI0OCAwMDIxOworMDVFOSAwMDIxOworMDVFQSAwMzM0IDA1QkM7CitGRTgwIDAwNjE7CiswNjI3IDA2NTMgMDA2MjsKKzA2NzIgMDA2MTsKKzA2NDggMDU5MSAwNjU0IDAwNjE7CitGRTg4IDAwNDE7CiswNjRBIDFEMTY1IDA2NTQgMDA2MTsKK0ZDMDAgMDAzRjsKK0ZDNjUgMDA0MTsKK0ZDRTAgMDAzRjsKK0ZCRjIgMDAzRjsKK0ZCRjkgMDAyMTsKK0ZDNjkgMDA2MjsKK0ZFOEUgMDA0MTsKK0ZERjIgMDA2MjsKK0ZFOEYgMDA2MjsKK0ZDOUUgMDA2MTsKK0ZDOUYgMDA0MTsKK0ZDNkUgMDA2MTsKK0ZCNTUgMDA2MTsKK0ZCNTYgMDA0MTsKK0ZCNUEgMDA2MjsKKzA3NTUgMDA2MjsKK0ZFOTUgMDAzRjsKK0ZENTAgMDA2MjsKK0ZENTEgMDA2MjsKK0ZEQTEgMDA2MjsKK0ZDMEUgMDA2MjsKK0ZDNzMgMDA2MjsKK0ZDMTAgMDA2MjsKK0ZDMTEgMDA2MjsKK0ZDMTIgMDA2MjsKK0ZDMTQgMDA2MjsKK0ZCNUUgMDAyMTsKKzA2N0QgMDA2MjsKK0ZFOUQgMDAyMTsKK0ZDMTUgMDA2MjsKK0ZENTkgMDA2MTsKK0ZEMUUgMDA2MTsKK0ZCNzYgMDA2MjsKK0ZCN0EgMDAyMTsKK0ZCN0UgMDAyMTsKK0ZFQTEgMDAzRjsKK0ZEQkYgMDA2MjsKK0ZDRkYgMDA2MjsKK0ZFQTUgMDA0MTsKK0ZDMUIgMDA2MjsKKzA2ODIgMDA2MjsKK0ZFQTkgMDA2MjsKK0ZCODkgMDA0MTsKK0ZCODUgMDA0MTsKK0ZCODcgMDA0MTsKKzA3NUEgMDA2MjsKK0ZERkMgMDA2MjsKK0ZCOEMgMDA2MjsKKzA2OTcgMDA2MjsKKzA3NUIgMDA2MjsKK0ZFQjEgMDA0MTsKK0ZENUUgMDA2MjsKK0ZEMzYgMDA0MTsKK0ZDRTcgMDAzRjsKK0ZENjMgMDA2MTsKK0ZEMTggMDA2MTsKK0ZFQjUgMDA2MjsKK0ZEMkUgMDAzRjsKK0ZEQUEgMDA2MjsKK0ZEMEQgMDA2MjsKK0ZENkEgMDA2MjsKK0ZDRkQgMDA2MjsKKzA2RkEgMDA2MjsKK0ZFQjkgMDA0MTsKK0ZEQTkgMDA2MjsKK0ZERjkgMDA2MjsKK0ZEMjEgMDA2MTsKK0ZFQzAgMDA2MTsKK0ZDMjMgMDA2MjsKK0ZENkYgMDA2MjsKK0ZEMDcgMDA2MjsKK0ZFQzEgMDAyMTsKK0ZDMjYgMDA2MjsKK0ZENzMgMDA2MjsKK0ZFQzUgMDAyMTsKK0ZEM0IgMDA0MTsKK0ZFQzkgMDA0MTsKK0ZERjcgMDA2MjsKK0ZEQjYgMDA2MjsKK0ZFQ0QgMDAzRjsKK0ZDQkQgMDA2MTsKK0ZDRjkgMDA2MjsKKzA3NUUgMDA2MjsKK0ZFRDEgMDA2MjsKK0ZDMkYgMDA2MjsKK0ZDN0MgMDA2MTsKKzA2QTMgMDA2MjsKKzA2QTUgMDA2MjsKKzA3NjAgMDA2MjsKK0ZFRDUgMDA0MTsKK0ZDMzQgMDA2MjsKK0ZDMzUgMDA2MjsKK0ZFRDkgMDAzRjsKK0ZDQzQgMDA2MTsKK0ZDQzcgMDAzRjsKK0ZDM0MgMDA2MTsKK0ZDM0QgMDA2MjsKK0ZCOEUgMDA0MTsKK0ZCRDMgMDAzRjsKK0ZCOTIgMDAzRjsKK0ZCOUEgMDAzRjsKK0ZCOTYgMDAzRjsKKzA3NjMgMDA2MjsKK0ZFREQgMDA2MjsKK0ZFRjkgMDA2MjsKK0ZEODQgMDA2MjsKK0ZEQjUgMDA2MTsKK0ZEODYgMDA2MTsKK0ZEODggMDA2MTsKK0ZDODcgMDA2MTsKKzA3NkEgMDA2MjsKKzA2RkUgMDA2MjsKK0ZEOEQgMDA2MjsKK0ZERjQgMDA2MjsKK0ZEQjkgMDA2MjsKK0ZDNEEgMDA2MjsKK0ZFRTUgMDA0MTsKK0ZEOTggMDA2MTsKK0ZEOTUgMDA2MjsKK0ZDOEIgMDA2MjsKK0ZEOUEgMDA2MjsKK0ZDOEYgMDA2MTsKK0ZCQTAgMDAzRjsKKzA2QjkgMDA2MjsKK0ZFRUIgMDA2MTsKK0ZDRDggMDA2MTsKK0ZCQUEgMDAyMTsKKzA2QzEgMDAzRjsKKzA2RkYgMDAzRjsKK0ZFRUQgMDAyMTsKKzA2QzQgMDA2MTsKKzA2QzYgMDA2MjsKK0ZCREIgMDAyMTsKKzA2Q0EgMDA2MTsKKzA2NDkgMDAzRjsKK0ZFRjMgMDAyMTsKKzA2NzggMDAzRjsKK0ZEQUUgMDAzRjsKK0ZDOTMgMDAzRjsKK0ZDOTQgMDAzRjsKK0ZDNUEgMDA2MTsKKzA2Q0QgMDAzRjsKK0ZCRTYgMDA2MjsKKzA2RDMgMDA2MTsKKzA3MTMgMDAzRjsKKzA3MTcgMDA0MTsKKzA3MUIgMDA2MjsKKzA3MjEgMDA0MTsKKzA3MjYgMDA2MjsKKzA3MkMgMDA0MTsKKzA3ODMgMDA0MTsKKzA3QTIgMDA0MTsKKzA3OEIgMDA0MTsKKzA3OEQgMDA0MTsKKzA3OUUgMDA0MTsKKzA3OTUgMDA0MTsKKzA3QTggMDA0MTsKKzA3QUUgMDA0MTsKKzJEMzMgMDA0MTsKKzJEMzkgMDA0MTsKKzJEM0YgMDA0MTsKKzJENDUgMDA0MTsKKzJENEIgMDA0MTsKKzJENTEgMDA0MTsKKzJENTcgMDA0MTsKKzJENUQgMDA0MTsKKzJENjIgMDA0MTsKKzEyMDIgMDA0MTsKKzEyMDggMDA0MTsKKzEyMEUgMDA0MTsKKzEyMTMgMDA0MTsKKzEyMTkgMDA0MTsKKzEyMUYgMDA0MTsKKzEyMjAgMDA0MTsKKzEyMjYgMDA0MTsKKzEyMkMgMDA0MTsKKzEyMzEgMDA0MTsKKzEyMzcgMDA0MTsKKzEyM0MgMDA0MTsKKzEyNDEgMDA0MTsKKzEyNDcgMDA0MTsKKzEyNTAgMDA0MTsKKzEyNTYgMDA0MTsKKzEyNjAgMDA0MTsKKzEyNjYgMDA0MTsKKzJEODUgMDA0MTsKKzEyNkQgMDA0MTsKKzEyNzMgMDA0MTsKKzEyNzggMDA0MTsKKzEyN0UgMDA0MTsKKzEyODMgMDA0MTsKKzEyOEEgMDA0MTsKKzEyOTIgMDA0MTsKKzJEODggMDA0MTsKKzEyOUQgMDA0MTsKKzEyQTIgMDA0MTsKKzJEOEEgMDA0MTsKKzEyQUQgMDA0MTsKKzEyQjQgMDA0MTsKKzEyQkMgMDA0MTsKKzEyQzQgMDA0MTsKKzEyQ0MgMDA0MTsKKzEyRDIgMDA0MTsKKzEyRDkgMDA0MTsKKzEyREYgMDA0MTsKKzEyRTQgMDA0MTsKKzEyRUEgMDA0MTsKKzEyRjAgMDA0MTsKKzEyRjYgMDA0MTsKKzEyRkIgMDA0MTsKKzEzMDAgMDA0MTsKKzEzMDYgMDA0MTsKKzEzMEIgMDA0MTsKKzEzMTIgMDA0MTsKKzEzMUEgMDA0MTsKKzJEOTMgMDA0MTsKKzEzMjIgMDA0MTsKKzJEOEYgMDA0MTsKKzEzMkQgMDA0MTsKKzEzMzIgMDA0MTsKKzJEOTEgMDA0MTsKKzEzM0QgMDA0MTsKKzEzNDMgMDA0MTsKKzEzNDkgMDA0MTsKKzEzNEYgMDA0MTsKKzEzNTEgMDA0MTsKKzEzNTcgMDA0MTsKKzEzNTggMDA0MTsKKzJEQTMgMDA0MTsKKzJEQUEgMDA0MTsKKzJEQjEgMDA0MTsKKzJEQjggMDA0MTsKKzJEQkUgMDA0MTsKKzJEQzUgMDA0MTsKKzJEQ0MgMDA0MTsKKzJERDMgMDA0MTsKKzJEREEgMDA0MTsKKzA5MDQgMDA0MTsKKzA5MEEgMDA0MTsKKzA5MEUgMDA0MTsKKzA5MTQgMDA0MTsKKzA5NUEgMDMzNDsKKzA5MUIgMDA2MjsKKzA5MjAgMDAzRjsKKzA5MjMgMDAyMTsKKzA5MjggMDAzRjsKKzA5MkMgMDA2MjsKKzA5MzEgMDAzRjsKKzA5MzYgMDAyMTsKKzA5M0UgMDAyMTsKKzA5NDQgMDAyMTsKKzA5NDggMDAyMTsKKzA5NEQgMDA0MTsKKzA5OEEgMDA0MTsKKzA5OTAgMDA0MTsKKzA5OTggMDA0MTsKKzA5OUUgMDA0MTsKKzA5QTIgMDAzRjsKKzA5QTYgMDA2MTsKKzA5QUQgMDA2MTsKKzA5RjAgMDA2MjsKKzA5QjkgMDA2MjsKKzA5QzIgMDA2MjsKKzA5QzcgMDU5MSAwOUQ3IDAwNjE7CiswOUNEIDAwM0Y7CiswQTEzIDAwM0Y7CiswQTA3IDAwM0Y7CiswQTM5IDAwNDE7CiswQTVBIDAwNDE7CiswQTFDIDAwNjE7CiswQTIxIDAwNjI7CiswQTI3IDAwNjI7CiswQTJEIDAwM0Y7CiswQTMyIDAwNjI7CiswQTQxIDAwNDE7CiswQTREIDAwM0Y7CiswQTg5IDAwM0Y7CiswQThEIDAwM0Y7CiswQTk1IDAwM0Y7CiswQTlCIDAwM0Y7CiswQUExIDAwM0Y7CiswQUE3IDAwM0Y7CiswQUFFIDAwM0Y7CiswQUI2IDAwM0Y7CiswQUJGIDAwM0Y7CiswQUUyIDAwM0Y7CiswQUNCIDAwM0Y7CiswQjA3IDAwNjI7CiswQjBDIDAwNjI7CiswQjE1IDAwNjI7CiswQjFCIDAwNjI7CiswQjVDIDAwMjE7CiswQjI0IDAwNDE7CiswQjJCIDAwNDE7CiswQjMwIDAwNDE7CiswQjM3IDAwNDE7CiswQjQwIDAwNDE7CiswQjQ3IDFEMTY1IDBCNTcgMDA2MTsKKzBCNEMgMDA2MjsKKzBCODYgMDA2MTsKKzBCOEYgMDA2MTsKKzBCOTQgMDA2MjsKKzBCOUYgMDA2MjsKKzBCQUUgMDA2MjsKKzBCQjQgMDA2MjsKKzBCQkUgMDA2MjsKKzBCQzYgMDU5MSAwQkQ3IDAwNjE7CiswQkNCIDAwNjE7CiswQzA1IDAwNDE7CiswQzBCIDAwNDE7CiswQzEwIDAwNDE7CiswQzE3IDAwNDE7CiswQzFEIDAwNDE7CiswQzIzIDAwNDE7CiswQzJBIDAwNDE7CiswQzMwIDAwNDE7CiswQzM3IDAwNDE7CiswQzQxIDAwNDE7CiswQzQ4IDAzMzQ7CiswQzREIDAwMjE7CiswQzg3IDAwM0Y7CiswQzhDIDAwM0Y7CiswQzkzIDAwM0Y7CiswQzk5IDAwM0Y7CiswQzlGIDAwM0Y7CiswQ0E1IDAwM0Y7CiswQ0FDIDAwM0Y7CiswQ0IyIDAwM0Y7CiswQ0IzIDAwM0Y7CiswQ0MwIDAwM0Y7CiswQ0M2IDAwNDE7CiswQ0M2IDBDRDYgMDA0MTsKKzBDQ0EgMENENSAwMDQxOworMEQwNSAwMDQxOworMEQwQiAwMDQxOworMEQxMCAwMDQxOworMEQxNyAwMDQxOworMEQxRCAwMDQxOworMEQyMyAwMDQxOworMEQyQSAwMDQxOworMEQzMCAwMDQxOworMEQzNiAwMDQxOworMEQ0MCAwMDQxOworMEQ0NyAwMDYxOworMEQ0QiAwMDYyOworMEQ4NiAwMDYxOworMEQ4QyAwMDYxOworMEQ5MiAwMDYxOworMEQ5QiAwMDYxOworMERBMSAwMDYxOworMERBNyAwMDYxOworMERBRCAwMDYxOworMERCNCAwMDYxOworMERCQSAwMDYxOworMERDMyAwMDYxOworMEREMCAwMDIxOworMEREOCAwMDIxOworMEREQSAwMDYxOworMEREQyAwRENBIDAwM0Y7CiswREYyIDAwMjE7CitBODA0IDAwMjE7CitBODA5IDAwNDE7CitBODEwIDAwNDE7CitBODE2IDAwNDE7CitBODFDIDAwNDE7CitBODIyIDAwNDE7CisxMEEwMCAwMDQxOworMTBBMEMgMDA0MTsKKzEwQTE2IDAwNDE7CisxMEExRCAwMDQxOworMTBBMjMgMDA0MTsKKzEwQTI5IDAwNDE7CisxMEEyRiAwMDQxOworMEUwMSAwMDNGOworMEUwMiAwMDNGOworMEUwMyAwMDNGOworMEUwNCAwMDNGOworMEUwNSAwMDNGOworMEUwNiAwMDNGOworMEUwNyAwMDNGOworMEUwOCAwMDNGOworMEUwOSAwMDNGOworMEUwQSAwMDNGOworMEUwQiAwMDNGOworMEUwQyAwMDNGOworMEUwRCAwMDNGOworMEUwRSAwMDNGOworMEUwRiAwMDNGOworMEUxMCAwMDNGOworMEUxMSAwMDNGOworMEUxMiAwMDNGOworMEUxMyAwMDNGOworMEUxNCAwMDNGOworMEUxNSAwMDNGOworMEUxNiAwMDNGOworMEUxNyAwMDNGOworMEUxOCAwMDNGOworMEUxOSAwMDNGOworMEUxQSAwMDNGOworMEUxQiAwMDNGOworMEUxQyAwMDNGOworMEUxRCAwMDNGOworMEUxRSAwMDNGOworMEUxRiAwMDNGOworMEUyMCAwMDNGOworMEUyMSAwMDNGOworMEUyMiAwMDNGOworMEUyMyAwMDNGOworMEUyNCAwMDNGOworMEUyNSAwMDNGOworMEUyNiAwMDNGOworMEUyNyAwMDNGOworMEUyOCAwMDNGOworMEUyOSAwMDNGOworMEUyQSAwMDNGOworMEUyQiAwMDNGOworMEUyQyAwMDNGOworMEUyRCAwMDNGOworMEUyRSAwMDNGOworMEUyRiAwMDNGOworMEUzMyAwMDYyOworMEUzOSAwMzM0OworMEU0MCAwMDAxIDBFMDUgMDA2MTsKKzBFNDAgMDAwMSAwRTBGIDAwNjE7CiswRTQwIDAwMDEgMEUxOSAwMDYxOworMEU0MCAwMDAxIDBFMjMgMDA2MTsKKzBFNDAgMDAwMSAwRTJEIDAwNjE7CiswRTQxIDA1OTEgMEUwNyAwMDYxOworMEU0MSAwNTkxIDBFMTEgMDA2MTsKKzBFNDEgMDU5MSAwRTFCIDAwNjE7CiswRTQxIDA1OTEgMEUyNSAwMDYxOworMEU0MiAwMDNGOworMEU0MiAxRDE2NSAwRTA5IDAwNjE7CiswRTQyIDFEMTY1IDBFMTMgMDA2MTsKKzBFNDIgMUQxNjUgMEUxRCAwMDYxOworMEU0MiAxRDE2NSAwRTI3IDAwNjE7CiswRTQzIDAwMDEgMEUwMiAwMDYxOworMEU0MyAwMDAxIDBFMEMgMDA2MTsKKzBFNDMgMDAwMSAwRTE2IDAwNjE7CiswRTQzIDAwMDEgMEUyMCAwMDYxOworMEU0MyAwMDAxIDBFMkEgMDA2MTsKKzBFNDQgMDU5MSAwRTA0IDAwNjE7CiswRTQ0IDA1OTEgMEUwRSAwMDYxOworMEU0NCAwNTkxIDBFMTggMDA2MTsKKzBFNDQgMDU5MSAwRTIyIDAwNjE7CiswRTQ0IDA1OTEgMEUyQyAwMDYxOworMEVDMiAwRTgxIDAwNjE7CiswRUMyIDBFODIgMDA2MTsKKzBFQzIgMEU4NCAwMDYxOworMEVDMiAwRTg3IDAwNjE7CiswRUMyIDBFODggMDA2MTsKKzBFQzIgMEU4QSAwMDYxOworMEVDMiAwRThEIDAwNjE7CiswRUMyIDBFOTQgMDA2MTsKKzBFQzIgMEU5NSAwMDYxOworMEVDMiAwRTk2IDAwNjE7CiswRUMyIDBFOTcgMDA2MTsKKzBFQzIgMEU5OSAwMDYxOworMEVDMiAwRTlBIDAwNjE7CiswRUMyIDBFOUIgMDA2MTsKKzBFQzIgMEU5QyAwMDYxOworMEVDMiAwRTlEIDAwNjE7CiswRUMyIDBFOUUgMDA2MTsKKzBFQzIgMEU5RiAwMDYxOworMEVDMiAwRUExIDAwNjE7CiswRUMyIDBFQTIgMDA2MTsKKzBFQzIgMEVBMyAwMDYxOworMEVDMiAwRUE1IDAwNjE7CiswRUMyIDBFQTcgMDA2MTsKKzBFQzIgMEVBQSAwMDYxOworMEVDMSAwRURDIDAwNjE7CiswRUMxIDBFREQgMDA2MTsKKzBFQzIgMEVBQiAwMDYxOworMEVDMiAwRUFEIDAwNjE7CiswRUMyIDBFQUUgMDA2MTsKKzBFQjIgMDA2MTsKKzBFQjYgMDA2MjsKKzBFQkQgMDAyMTsKKzBFQzAgMUQxNjUgMEU4RCAwMDYxOworMEVDMCAxRDE2NSAwRTlFIDAwNjE7CiswRUMwIDFEMTY1IDBFREQgMDA2MTsKKzBFQzEgMDAwMSAwRThEIDAwNjE7CiswRUMxIDAwMDEgMEU5RSAwMDYxOworMEVDMSAwMDAxIDBFREQgMDA2MTsKKzBFQzIgMDU5MSAwRThBIDAwNjE7CiswRUMyIDA1OTEgMEU5RCAwMDYxOworMEVDMiAwNTkxIDBFREMgMDA2MTsKKzBFQzMgMUQxNjUgMEU4OCAwMDYxOworMEVDMyAxRDE2NSAwRTlDIDAwNjE7CiswRUMzIDFEMTY1IDBFQUIgMDA2MTsKKzBFQzQgMDAwMSAwRTg4IDAwNjE7CiswRUM0IDAwMDEgMEU5QyAwMDYxOworMEVDNCAwMDAxIDBFQUIgMDA2MTsKKzBGQjkgMDAyMTsKKzBGOTMgMDAyMTsKKzBGOTYgMDAyMTsKKzBGOUEgMDAyMTsKKzBGOUQgMDAyMTsKKzBGQTAgMDAyMTsKKzBGQTMgMDAyMTsKKzBGNTcgMDAyMTsKKzBGQTkgMDAyMTsKKzBGQUMgMDAyMTsKKzBGNUYgMDAyMTsKKzBGQjEgMDA0MTsKKzBGQjIgMUQxNjUgMEY3MSAwMDYxOworMEY2NCAwMDNGOworMEY2NyAwMDNGOworMEY4OSAwMDNGOworMEY3MiAwMDYyOworMEY3MSAwRjgwIDAwM0Y7CiswRjc1IDAwNDE7CiswRkIyIDBGODEgMDA2MTsKKzBGNzkgMDA2MTsKKzBGN0MgMDMzNDsKKzE5MDIgMDAyMTsKKzE5MDggMDAyMTsKKzE5MEUgMDAyMTsKKzE5MTQgMDAyMTsKKzE5MUEgMDAyMTsKKzE5MjMgMDAyMTsKKzE5MjkgMDAyMTsKKzE5MzMgMDAyMTsKKzE3MDAgMDAyMTsKKzE3MDYgMDAyMTsKKzE3MEMgMDAyMTsKKzE3MTMgMDAyMTsKKzE3MjMgMDA0MTsKKzE3MjkgMDA0MTsKKzE3MkYgMDA0MTsKKzE3NDAgMDAzRjsKKzE3NDYgMDAzRjsKKzE3NEMgMDAzRjsKKzE3NTIgMDAzRjsKKzE3NjQgMDAzRjsKKzE3NkEgMDAzRjsKKzE3NzIgMDAzRjsKKzFBMDQgMDAzRjsKKzFBMEEgMDAzRjsKKzFBMTAgMDAzRjsKKzFBMTYgMDAzRjsKKzFBMUIgMDA2MTsKKzEwMDUgMDA2MTsKKzEwMEIgMDA2MTsKKzEwMTEgMDA2MTsKKzEwMTcgMDA2MTsKKzEwMUQgMDA2MTsKKzEwMjEgMDA2MTsKKzEwMjYgMDA2MjsKKzEwNTQgMDA2MjsKKzEwMzAgMDA2MjsKKzEwNTkgMDA2MjsKKzE3ODQgMDA2MTsKKzE3OEEgMDA2MTsKKzE3OTAgMDA2MTsKKzE3OTYgMDA2MTsKKzE3OUMgMDA2MTsKKzE3QTIgMDA2MTsKKzE3QTcgMDA2MTsKKzE3QUQgMDA2MTsKKzE3QjMgMDA2MTsKKzE3QjkgMDA2MTsKKzE3QkYgMDA2MTsKKzE3QzUgMDA2MTsKKzE5NTQgMDAyMTsKKzE5NUEgMDAyMTsKKzE5NjAgMDAyMTsKKzE5NjYgMDAyMTsKKzE5NkMgMDAyMTsKKzE5NzQgMDAyMTsKKzE5ODUgMDAyMTsKKzE5OEIgMDAyMTsKKzE5OTEgMDAyMTsKKzE5OTcgMDAyMTsKKzE5REUgMDAyMTsKKzE5QTEgMDAyMTsKKzE5QTcgMDAyMTsKKzE5QjMgMDAyMTsKKzE5QjkgMDAyMTsKKzE5QkYgMDAyMTsKKzE5QzUgMDAyMTsKKzE4ODEgMDAyMTsKKzE4NDMgMDAyMTsKKzE4MjIgMDAyMTsKKzE4MjMgMDAyMTsKKzE4NDggMDAyMTsKKzE4MjkgMDAyMTsKKzE4NEIgMDAyMTsKKzE4MkQgMDAyMTsKKzE4NEYgMDAyMTsKKzE4OUQgMDAyMTsKKzE4NjggMDAyMTsKKzE4NzEgMDAyMTsKKzE4NzcgMDAyMTsKKzE4MzggMDAyMTsKKzE4NTcgMDAyMTsKKzE4NTQgMDAyMTsKKzE4M0UgMDAyMTsKKzE4NDIgMDAyMTsKKzE4OEQgMDAyMTsKKzE4QTAgMDAyMTsKKzE4OTQgMDAyMTsKKzE4QTYgMDAyMTsKKzEzQTIgMDA0MTsKKzEzQTggMDA0MTsKKzEzQUUgMDA0MTsKKzEzQjQgMDA0MTsKKzEzQkEgMDA0MTsKKzEzQzAgMDA0MTsKKzEzQzYgMDA0MTsKKzEzQ0MgMDA0MTsKKzEzRDIgMDA0MTsKKzEzRDggMDA0MTsKKzEzREUgMDA0MTsKKzEzRTQgMDA0MTsKKzEzRUEgMDA0MTsKKzEzRjAgMDA0MTsKKzE0MDIgMDA0MTsKKzE0MDggMDA0MTsKKzE0MEUgMDA0MTsKKzE0MTQgMDA0MTsKKzE0MUEgMDA0MTsKKzE0MjAgMDA0MTsKKzE0MjYgMDA0MTsKKzE0MkMgMDA0MTsKKzE0MzIgMDA0MTsKKzE0MzggMDA0MTsKKzE0M0UgMDA0MTsKKzE0NDQgMDA0MTsKKzE0NEEgMDA0MTsKKzE0NTAgMDA0MTsKKzE0NTYgMDA0MTsKKzE0NUMgMDA0MTsKKzE0NjIgMDA0MTsKKzE0NjggMDA0MTsKKzE0NkUgMDA0MTsKKzE0NzQgMDA0MTsKKzE0N0EgMDA0MTsKKzE0ODAgMDA0MTsKKzE0ODYgMDA0MTsKKzE0OEMgMDA0MTsKKzE0OTIgMDA0MTsKKzE0OTggMDA0MTsKKzE0OUUgMDA0MTsKKzE0QTQgMDA0MTsKKzE0QUEgMDA0MTsKKzE0QjAgMDA0MTsKKzE0QjYgMDA0MTsKKzE0QkMgMDA0MTsKKzE0QzIgMDA0MTsKKzE0QzggMDA0MTsKKzE0Q0UgMDA0MTsKKzE0RDQgMDA0MTsKKzE0REEgMDA0MTsKKzE0RTAgMDA0MTsKKzE0RTYgMDA0MTsKKzE0RUMgMDA0MTsKKzE0RjIgMDA0MTsKKzE0RjggMDA0MTsKKzE0RkUgMDA0MTsKKzE1MDQgMDA0MTsKKzE1MEEgMDA0MTsKKzE1MTAgMDA0MTsKKzE1MTYgMDA0MTsKKzE1MUMgMDA0MTsKKzE1MjIgMDA0MTsKKzE1MjggMDA0MTsKKzE1MkUgMDA0MTsKKzE1MzQgMDA0MTsKKzE1M0EgMDA0MTsKKzE1NDAgMDA0MTsKKzE1NDYgMDA0MTsKKzE1NEMgMDA0MTsKKzE1NTIgMDA0MTsKKzE1NTggMDA0MTsKKzE1NUUgMDA0MTsKKzE1NjQgMDA0MTsKKzE1NkEgMDA0MTsKKzE1NzAgMDA0MTsKKzE1NzYgMDA0MTsKKzE1N0QgMDA0MTsKKzE1ODIgMDA0MTsKKzE1ODggMDA0MTsKKzE2NzAgMDA0MTsKKzE1OTMgMDA0MTsKKzE2NzQgMDA0MTsKKzE1OTkgMDA0MTsKKzE1OUYgMDA0MTsKKzE1QTUgMDA0MTsKKzE1QUEgMDA0MTsKKzE1QjAgMDA0MTsKKzE1QjYgMDA0MTsKKzE1QkMgMDA0MTsKKzE1QzIgMDA0MTsKKzE1QzggMDA0MTsKKzE1Q0UgMDA0MTsKKzE1RDQgMDA0MTsKKzE1REEgMDA0MTsKKzE1RTAgMDA0MTsKKzE1RTYgMDA0MTsKKzE1RUMgMDA0MTsKKzE1RjIgMDA0MTsKKzE1RjggMDA0MTsKKzE1RkUgMDA0MTsKKzE2MDQgMDA0MTsKKzE2MEEgMDA0MTsKKzE2MTAgMDA0MTsKKzE2MTYgMDA0MTsKKzE2MUMgMDA0MTsKKzE2MjIgMDA0MTsKKzE2MjggMDA0MTsKKzE2MkUgMDA0MTsKKzE2MzQgMDA0MTsKKzE2M0EgMDA0MTsKKzE2NDAgMDA0MTsKKzE2NDYgMDA0MTsKKzE2NEMgMDA0MTsKKzE2NTIgMDA0MTsKKzE2NTggMDA0MTsKKzE2NUUgMDA0MTsKKzE2NjQgMDA0MTsKKzE2NkEgMDA0MTsKKzE2ODQgMDA0MTsKKzE2OEEgMDA0MTsKKzE2OTAgMDA0MTsKKzE2OTYgMDA0MTsKKzE2QTAgMDA2MjsKKzE2RjAgMDA0MTsKKzE2QUYgMDA0MTsKKzE2QjYgMDA2MTsKKzE2QkEgMDA2MTsKKzE2QzIgMDAzRjsKKzE2RUUgMDA0MTsKKzE2RUEgMDAzRjsKKzE2RDAgMDA2MTsKKzE2RDcgMDAzRjsKKzE2REQgMDAzRjsKKzE2QTMgMDA0MTsKKzE2RTIgMDA0MTsKKzExMDAgMDA2MTsKK0FDMDAgMTE2MSAwMDIxOworQUMwMyAwMDYyOworRkZBMiAwMDQxOworMzEzNyAwMDIxOworMTEwNCAwMDYxOworMzI3MSAwMDNGOworMzE0MiAwMDIxOworMTEwOCAwMDYxOworMzI3NCAwMDNGOworMzE0NyAwMDQxOworMzE0OCAwMDQxOworRkZCOSAwMDQxOworMzI3QyAwMDNGOworMzE0QyAwMDIxOworMzI2QyAwMDNGOworMzE0RSAwMDQxOworRDc4OCAxMTYxIDAwMjE7CitEN0EwIDAwNjI7CiszMTY1IDAwNjI7CisxMTE5IDAwNjI7CiszMTZFIDAwNjI7CisxMTIwIDAwNjE7CiszMTc0IDAwNjI7CisxMTI3IDAwNjE7CisxMTJCIDAwNjE7CisxMTJFIDAwNjE7CisxMTMyIDAwNjE7CiszMTdFIDAwNjI7CisxMTNDIDAwNjI7CisxMTQxIDAwNjI7CisxMTQ3IDAwNjE7CisxMTRDIDAwNjE7CisxMTUxIDAwNjI7CisxMTU3IDAwNjE7CisxMTVGIDAwNjI7CitGRkMyIDAwNjI7CitGRkM0IDAwNjI7CitGRkM2IDAwNjI7CitGRkNBIDAwNjI7CitGRkNDIDAwNjI7CitGRkNFIDAwNjI7CitGRkQyIDAwNjI7CitGRkQ0IDAwNjI7CitGRkQ2IDAwNjI7CitGRkRBIDAwNjI7CitGRkRDIDAwNjI7CisxMTdCIDAwNjI7CisxMTgxIDAwNjI7CiszMTg4IDAwNjI7CisxMThBIDAwNjI7CisxMTkwIDAwNjI7CisxMTk0IDAwNjE7CisxMTk5IDAwNjI7CiszMThEIDAwNjI7CisxMUE4IDAwNjI7CiszMTM1IDAwM0Y7CisxMUFFIDAwNjI7CiszMTNCIDAwNDE7CiszMTNEIDAwNDE7CiszMTNGIDAwNDE7CisxMUJBIDAwNjI7CisxMUMwIDAwNjI7CisxMUM2IDAwNjI7CisxMUNBIDAwNjI7CiszMTZBIDAwNjI7CiszMTZCIDAwNjI7CisxMUQ4IDAwNjI7CisxMUREIDAwNjE7CisxMUUxIDAwNjI7CisxMUU3IDAwNjI7CisxMUVEIDAwNjI7CisxMUYyIDAwNjE7CisxMUY3IDAwNjI7CiszMDQxIDAwNjE7CiszMzAxIDAwNjI7CitGRjcyIDAwNjE7CitGRjY5IDAwMjE7CiszMDk0IDAwNDE7CiszMkQzIDAwM0Y7CiszMzA3IDAwNDE7CiszMEFBIDAwNDE7CiszMEFDIDAwMjE7CiszMkQ1IDAwNjI7CiszMDRFIDAzMzQ7CitGRjc3IDAwNjI7CiszMzE1IDAwM0Y7CitGRjc4IDAwM0Y7CiszMzE5IDAwMjE7CiszMDUxIDAwM0Y7CiszMEY2IDAwNjI7CiszMDUzIDAwNDE7CiszMEI1IDAzMzQgMzA5OTsKKzMyREEgMDA2MjsKKzMyREIgMDAzRjsKKzMzMjEgMDAzRjsKK0ZGN0QgMDA2MTsKKzMyREQgMDAzRjsKKzMzMjMgMDA2MjsKKzMwQkUgMDA0MTsKKzMwNUYgMDA2MTsKKzMwNjEgMDAzRjsKKzMwNjMgMDAyMTsKKzMyRTEgMDA2MTsKKzMyRTIgMDAzRjsKKzMwQzggMzA5OSAwMzM0OworMzA2OCAwMDYyOworRkY4NSAwMDQxOworRkY4NiAwMDYyOworMzJFNyAwMDIxOworRkY4OSAwMDQxOworMzBEMCAwMDIxOworMzFGNSAwMDQxOworMzA3MiAzMDk5IDAzMzQ7CiszMDcyIDAwNDE7CiszMzJFIDAwNjI7CiszMEQ1IDAwMjE7CiszMDc3IDAwNjE7CiszMzM1IDAwNjE7CiszMEQ5IDAwM0Y7CiszMERBIDAwNDE7CiszMzNBIDAwMjE7CiszMkVEIDAwM0Y7CiszMDdEIDAwNDE7CiszMzQwIDAwNDE7CiszMzQ0IDAwNDE7CiszMDdGIDAwNjE7CitGRjkxIDAwMjE7CiszMzREIDAwMjE7CiszMkYyIDAwMjE7CiszMkYzIDAwM0Y7CitGRjk0IDAwNjI7CiszMDg1IDAwNjI7CiszMEU3IDAwNjE7CitGRjk3IDAwM0Y7CiszMUZDIDAwNDE7CitGRjk5IDAwM0Y7CitGRjlBIDAwMjE7CiszMzU2IDAwNDE7CiszMDhFIDAwMjE7CiszMEVFIDAwNjI7CiszMEYwIDAwNjI7CiszMEYyIDAwMjE7CiszMDkzIDAwNjE7CiszMTA3IDAwM0Y7CiszMTBCIDAwM0Y7CiszMTJCIDAwM0Y7CiszMTExIDAwM0Y7CiszMTE2IDAwM0Y7CiszMUE5IDAwNjE7CiszMUE1IDAwMjE7CiszMUFGIDAwNjE7CiszMTI1IDAwM0Y7CiszMTI3IDAwNjE7CitBMDAwIDAwM0Y7CitBMDA2IDAwM0Y7CitBMDBDIDAwM0Y7CitBMDEyIDAwM0Y7CitBMDE4IDAwM0Y7CitBMDFFIDAwM0Y7CitBMDI0IDAwM0Y7CitBMDJBIDAwM0Y7CitBMDMwIDAwM0Y7CitBMDM2IDAwM0Y7CitBMDNDIDAwM0Y7CitBMDQyIDAwM0Y7CitBMDQ4IDAwM0Y7CitBMDRFIDAwM0Y7CitBMDU0IDAwM0Y7CitBMDVBIDAwM0Y7CitBMDYwIDAwM0Y7CitBMDY2IDAwM0Y7CitBMDZDIDAwM0Y7CitBMDcyIDAwM0Y7CitBMDc4IDAwM0Y7CitBMDdFIDAwM0Y7CitBMDg0IDAwM0Y7CitBMDhBIDAwM0Y7CitBMDkwIDAwM0Y7CitBMDk2IDAwM0Y7CitBMDlDIDAwM0Y7CitBMEEyIDAwM0Y7CitBMEE4IDAwM0Y7CitBMEFFIDAwM0Y7CitBMEI0IDAwM0Y7CitBMEJBIDAwM0Y7CitBMEMwIDAwM0Y7CitBMEM2IDAwM0Y7CitBMENDIDAwM0Y7CitBMEQyIDAwM0Y7CitBMEQ4IDAwM0Y7CitBMERFIDAwM0Y7CitBMEU0IDAwM0Y7CitBMEVBIDAwM0Y7CitBMEYwIDAwM0Y7CitBMEY2IDAwM0Y7CitBMEZDIDAwM0Y7CitBMTAyIDAwM0Y7CitBMTA4IDAwM0Y7CitBMTBFIDAwM0Y7CitBMTE0IDAwM0Y7CitBMTFBIDAwM0Y7CitBMTIwIDAwM0Y7CitBMTI2IDAwM0Y7CitBMTJDIDAwM0Y7CitBMTMyIDAwM0Y7CitBMTM4IDAwM0Y7CitBMTNFIDAwM0Y7CitBMTQ0IDAwM0Y7CitBMTRBIDAwM0Y7CitBMTUwIDAwM0Y7CitBMTU2IDAwM0Y7CitBMTVDIDAwM0Y7CitBMTYyIDAwM0Y7CitBMTY4IDAwM0Y7CitBMTZFIDAwM0Y7CitBMTc0IDAwM0Y7CitBMTdBIDAwM0Y7CitBMTgwIDAwM0Y7CitBMTg2IDAwM0Y7CitBMThDIDAwM0Y7CitBMTkyIDAwM0Y7CitBMTk4IDAwM0Y7CitBMTlFIDAwM0Y7CitBMUE0IDAwM0Y7CitBMUFBIDAwM0Y7CitBMUIwIDAwM0Y7CitBMUI2IDAwM0Y7CitBMUJDIDAwM0Y7CitBMUMyIDAwM0Y7CitBMUM4IDAwM0Y7CitBMUNFIDAwM0Y7CitBMUQ0IDAwM0Y7CitBMURBIDAwM0Y7CitBMUUwIDAwM0Y7CitBMUU2IDAwM0Y7CitBMUVDIDAwM0Y7CitBMUYyIDAwM0Y7CitBMUY4IDAwM0Y7CitBMUZFIDAwM0Y7CitBMjA0IDAwM0Y7CitBMjBBIDAwM0Y7CitBMjEwIDAwM0Y7CitBMjE2IDAwM0Y7CitBMjFDIDAwM0Y7CitBMjIyIDAwM0Y7CitBMjI4IDAwM0Y7CitBMjJFIDAwM0Y7CitBMjM0IDAwM0Y7CitBMjNBIDAwM0Y7CitBMjQwIDAwM0Y7CitBMjQ2IDAwM0Y7CitBMjRDIDAwM0Y7CitBMjUyIDAwM0Y7CitBMjU4IDAwM0Y7CitBMjVFIDAwM0Y7CitBMjY0IDAwM0Y7CitBMjZBIDAwM0Y7CitBMjcwIDAwM0Y7CitBMjc2IDAwM0Y7CitBMjdDIDAwM0Y7CitBMjgyIDAwM0Y7CitBMjg4IDAwM0Y7CitBMjhFIDAwM0Y7CitBMjk0IDAwM0Y7CitBMjlBIDAwM0Y7CitBMkEwIDAwM0Y7CitBMkE2IDAwM0Y7CitBMkFDIDAwM0Y7CitBMkIyIDAwM0Y7CitBMkI4IDAwM0Y7CitBMkJFIDAwM0Y7CitBMkM0IDAwM0Y7CitBMkNBIDAwM0Y7CitBMkQwIDAwM0Y7CitBMkQ2IDAwM0Y7CitBMkRDIDAwM0Y7CitBMkUyIDAwM0Y7CitBMkU4IDAwM0Y7CitBMkVFIDAwM0Y7CitBMkY0IDAwM0Y7CitBMkZBIDAwM0Y7CitBMzAwIDAwM0Y7CitBMzA2IDAwM0Y7CitBMzBDIDAwM0Y7CitBMzEyIDAwM0Y7CitBMzE4IDAwM0Y7CitBMzFFIDAwM0Y7CitBMzI0IDAwM0Y7CitBMzJBIDAwM0Y7CitBMzMwIDAwM0Y7CitBMzM2IDAwM0Y7CitBMzNDIDAwM0Y7CitBMzQyIDAwM0Y7CitBMzQ4IDAwM0Y7CitBMzRFIDAwM0Y7CitBMzU0IDAwM0Y7CitBMzVBIDAwM0Y7CitBMzYwIDAwM0Y7CitBMzY2IDAwM0Y7CitBMzZDIDAwM0Y7CitBMzcyIDAwM0Y7CitBMzc4IDAwM0Y7CitBMzdFIDAwM0Y7CitBMzg0IDAwM0Y7CitBMzhBIDAwM0Y7CitBMzkwIDAwM0Y7CitBMzk2IDAwM0Y7CitBMzlDIDAwM0Y7CitBM0EyIDAwM0Y7CitBM0E4IDAwM0Y7CitBM0FFIDAwM0Y7CitBM0I0IDAwM0Y7CitBM0JBIDAwM0Y7CitBM0MwIDAwM0Y7CitBM0M2IDAwM0Y7CitBM0NDIDAwM0Y7CitBM0QyIDAwM0Y7CitBM0Q4IDAwM0Y7CitBM0RFIDAwM0Y7CitBM0U0IDAwM0Y7CitBM0VBIDAwM0Y7CitBM0YwIDAwM0Y7CitBM0Y2IDAwM0Y7CitBM0ZDIDAwM0Y7CitBNDAyIDAwM0Y7CitBNDA4IDAwM0Y7CitBNDBFIDAwM0Y7CitBNDE0IDAwM0Y7CitBNDFBIDAwM0Y7CitBNDIwIDAwM0Y7CitBNDI2IDAwM0Y7CitBNDJDIDAwM0Y7CitBNDMyIDAwM0Y7CitBNDM4IDAwM0Y7CitBNDNFIDAwM0Y7CitBNDQ0IDAwM0Y7CitBNDRBIDAwM0Y7CitBNDUwIDAwM0Y7CitBNDU2IDAwM0Y7CitBNDVDIDAwM0Y7CitBNDYyIDAwM0Y7CitBNDY4IDAwM0Y7CitBNDZFIDAwM0Y7CitBNDc0IDAwM0Y7CitBNDdBIDAwM0Y7CitBNDgwIDAwM0Y7CitBNDg2IDAwM0Y7CitBNDhDIDAwM0Y7CisxMDMwNSAwMDNGOworMTAzMEIgMDAzRjsKKzEwMzExIDAwM0Y7CisxMDMxNyAwMDNGOworMTAzMUQgMDAzRjsKKzEwMzM0IDAwM0Y7CisxMDMzQSAwMDNGOworMTAzNDAgMDAzRjsKKzEwMzQ2IDAwM0Y7CisxMDQwMCAwMDYxOworMTA0MDMgMDA2MTsKKzEwNDA2IDAwNjE7CisxMDQwOSAwMDYxOworMTA0MEMgMDA2MTsKKzEwNDBGIDAwNjE7CisxMDQxMiAwMDYxOworMTA0MTUgMDA2MTsKKzEwNDE4IDAwNjE7CisxMDQxQiAwMDYxOworMTA0MUUgMDA2MTsKKzEwNDIxIDAwNjE7CisxMDQyNCAwMDYxOworMTA0MjcgMDA2MTsKKzEwNDU1IDAwM0Y7CisxMDQ1QiAwMDNGOworMTA0NjEgMDAzRjsKKzEwNDY3IDAwM0Y7CisxMDQ2RCAwMDNGOworMTA0NzMgMDAzRjsKKzEwNDc5IDAwM0Y7CisxMDQ3RiAwMDNGOworMTA0ODUgMDAzRjsKKzEwNDhCIDAwM0Y7CisxMDQ5MSAwMDNGOworMTA0OTcgMDAzRjsKKzEwNDlEIDAwM0Y7CisxMDAwNSAwMDNGOworMTAwMEIgMDAzRjsKKzEwMDEyIDAwM0Y7CisxMDAxOCAwMDNGOworMTAwMUUgMDAzRjsKKzEwMDI0IDAwM0Y7CisxMDAyQiAwMDNGOworMTAwMzEgMDAzRjsKKzEwMDM3IDAwM0Y7CisxMDAzRiAwMDNGOworMTAwNDUgMDAzRjsKKzEwMDRCIDAwM0Y7CisxMDA1MyAwMDNGOworMTAwNTkgMDAzRjsKKzEwMDgxIDAwM0Y7CisxMDA4NyAwMDNGOworMTAwOEQgMDAzRjsKKzEwMDkzIDAwM0Y7CisxMDA5OSAwMDNGOworMTAwOUYgMDAzRjsKKzEwMEE1IDAwM0Y7CisxMDBBQiAwMDNGOworMTAwQjEgMDAzRjsKKzEwMEI3IDAwM0Y7CisxMDBCRCAwMDNGOworMTAwQzMgMDAzRjsKKzEwMEM5IDAwM0Y7CisxMDBDRiAwMDNGOworMTAwRDUgMDAzRjsKKzEwMERCIDAwM0Y7CisxMDBFMSAwMDNGOworMTAwRTcgMDAzRjsKKzEwMEVEIDAwM0Y7CisxMDBGMyAwMDNGOworMTAwRjkgMDAzRjsKKzEwODA0IDAwM0Y7CisxMDgwRCAwMDNGOworMTA4MTMgMDAzRjsKKzEwODE5IDAwM0Y7CisxMDgxRiAwMDNGOworMTA4MjUgMDAzRjsKKzEwODJCIDAwM0Y7CisxMDgzMSAwMDNGOworMTA4MzggMDAzRjsKKzEwMzgzIDAwM0Y7CisxMDM4OSAwMDNGOworMTAzOEYgMDAzRjsKKzEwMzk1IDAwM0Y7CisxMDM5QiAwMDNGOworMTAzQTMgMDAzRjsKKzEwM0E5IDAwM0Y7CisxMDNBRiAwMDNGOworMTAzQjUgMDAzRjsKKzEwM0JCIDAwM0Y7CisxMDNDMSAwMDNGOworMTAzQ0IgMDAzRjsKKzMyODAgMDAzRjsKKzMyODYgMDAyMTsKKzMxOTYgMDAyMTsKK0ZBNzAgMDAzRjsKKzJFODAgMDAyMTsKKzJGODAyIDAwM0Y7CiszMjg4IDAwM0Y7CiszMTkzIDAwNDE7CisyRTg1IDAwM0Y7CisyRjgwNCAwMDNGOworMkY4MDYgMDAzRjsKKzJGODBCIDAwM0Y7CitGQTBDIDAwM0Y7CisyRjBBIDAwM0Y7CiszMjg1IDAwMjE7CisyRjgxNSAwMDNGOworMkY4MTggMDAzRjsKK0Y5NzkgMDAzRjsKKzJGMTAgMDAyMTsKKzJGODUwIDAwMjE7CisyRjgyMSAwMDNGOworRjk5RCAwMDNGOworRkEzMyAwMDQxOworMkYxMyAwMDNGOworMkY4MkIgMDAyMTsKKzMwMzggMDAyMTsKKzJGODJEIDAwMjE7CisyRThCIDAwMjE7CisyRjgzMiAwMDIxOworRjk2QiAwMDNGOworMkY4MzkgMDAzRjsKK0Y5RUQgMDAzRjsKKzJGODQwIDAwM0Y7CisyRjg0NCAwMDNGOworRkE3OCAwMDIxOworRkE3QiAwMDNGOworMkYxRSAwMDNGOworMzI4RiAwMDIxOworMkY4NTQgMDAzRjsKK0Y5NkMgMDAzRjsKKzJGMjAgMDAzRjsKKzJGMjIgMDAzRjsKKzMzN0QgMDAzRjsKKzJGODVGIDAwM0Y7CisyRjg2MyAwMDNGOworRkE4MSAwMDNGOworRkEwNCAwMDNGOworMkY4NkYgMDA0MTsKKzJFOEMgMDAyMTsKKzJGODc1IDAwNjI7CitGOTRCIDAwM0Y7CisyRjJEIDAwM0Y7CisyRjg3RiAwMDNGOworMkY4ODEgMDAzRjsKKzJGODg0IDAwM0Y7CiszMzdCIDAwM0Y7CisyRjg4QiAwMDNGOworRkE4MiAwMDNGOworMkYzNiAwMDYxOworMkU5NSAwMDIxOworRkE4NCAwMDNGOworRkE4NSAwMDNGOworRjlBMyAwMDNGOworRkEzRCAwMDQxOworMkY4QTYgMDAzRjsKK0ZBM0UgMDAzRjsKKzJGOEFEIDAwM0Y7CisyRjhCMCAwMDQxOworMkY4QjMgMDAzRjsKKzJGOEI0IDAwM0Y7CisyRjhCQSAwMDNGOworMkY4QkMgMDAzRjsKK0ZBOEUgMDAzRjsKK0Y5OTEgMDAzRjsKKzJGOEM4IDAwMjE7CisyRjQzIDAwM0Y7CisyRTlCIDAwM0Y7CiszMzdFIDAwM0Y7CitGOUM1IDAwM0Y7CisyRjQ4IDAwM0Y7CisyRTlEIDAwNDE7CitGQTkzIDAwNDE7CitGQTk0IDAwM0Y7CisyRjhERiAwMDNGOworRjk3QSAwMDNGOworMkY4RTggMDAzRjsKK0Y5NEMgMDAzRjsKKzJGOEVGIDAwM0Y7CisyRjREIDAwMjE7CitGQTk2IDAwMjE7CisyRjUwIDAwM0Y7CiszMjhDIDAwNjE7CisyRjhGQyAwMDNGOworRjkxNSAwMDNGOworMkY5MDIgMDA0MTsKKzJGOTA1IDAwM0Y7CisyRjkwOCAwMDNGOworRkE5OSAwMDQxOworRjk5MiAwMDNGOworMkY5MTQgMDAyMTsKKzJFQTMgMDAzRjsKK0Y5OUYgMDAzRjsKKzJGOTFFIDAwM0Y7CisyRjU2IDAwM0Y7CisyRjU3IDAwM0Y7CisyRUE3IDAwMjE7CisyRjVEIDAwM0Y7CitGQTE2IDAwNDE7CisyRjVGIDAwM0Y7CitGOUU0IDAwM0Y7CisyRjkzMCAwMDIxOworMkY2MCAwMDNGOworMkY2NCAwMDNGOworRjlDRCAwMDNGOworMkY2NyAwMDNGOworRjkwRSAwMDNGOworRkExNyAwMDQxOworMkY5NDAgMDAyMTsKK0ZBQUEgMDAzRjsKKzJGNkUgMDAzRjsKK0ZBNEIgMDAzRjsKKzJFQUMgMDAyMTsKK0ZBNEUgMDAzRjsKKzMyOTcgMDA2MTsKKzJGOTU2IDAwMjE7CiszMjk5IDAwM0Y7CisyRjk1QiAwMDNGOworMkY5NUYgMDAzRjsKKzJGOTYyIDAwM0Y7CitGOUY5IDAwM0Y7CisyRjk2OCAwMDNGOworRjk0RiAwMDNGOworRkE1NyAwMDIxOworRkE1OSAwMDNGOworMkVCNSAwMDIxOworRjlFNiAwMDNGOworMkVCOCAwMDNGOworMkY3QyAwMDIxOworMkY3RCAwMDNGOworMkY5N0YgMDAzRjsKKzJFQkMgMDA2MTsKK0Y5MjYgMDAzRjsKKzJFQkQgMDAyMTsKKzJGODcgMDAzRjsKK0ZBNUUgMDAyMTsKKzJGOThGIDAwM0Y7CitGOTc0IDAwNDE7CisyRjlBMCAwMDNGOworMkY5QTIgMDAzRjsKK0Y5NkUgMDAzRjsKK0Y5QzIgMDAzRjsKK0ZBMjAgMDAzRjsKKzJGOUI0IDAwMjE7CisyRjlCNyAwMDNGOworRkFCNSAwMDQxOworMkY4RSAwMDNGOworMkVDMiAwMDNGOworRjkxMiAwMDNGOworMkVDNCAwMDNGOworRkE2MSAwMDQxOworMkY5Q0YgMDAzRjsKK0Y5NDEgMDAzRjsKK0Y5NUQgMDA0MTsKK0Y5NUEgMDAzRjsKK0Y5MDAgMDAzRjsKKzJGOUQ0IDAwM0Y7CitGQUMxIDAwMjE7CisyRjlENyAwMDNGOworMkY5REMgMDAzRjsKK0Y5RDcgMDAzRjsKKzJGOUYgMDAzRjsKKzJFQ0QgMDAzRjsKKzMyOUMgMDAzRjsKKzJGOUUyIDAwM0Y7CisyRkEzIDAwM0Y7CisyRkE1IDAwNjE7CisyRjlFNyAwMDNGOworRjk5QiAwMDNGOworMkVEMiAwMDNGOworMkVENCAwMDNGOworRkEwOSAwMDNGOworMkZBQSAwMDNGOworRkE2OCAwMDQxOworRjkzOCAwMDNGOworMkZBRSAwMDNGOworMkVEOSAwMDNGOworMzJBMCAwMDNGOworRkFDQyAwMDIxOworMkZCNiAwMDNGOworMkZBMDIgMDAzRjsKKzJFRTEgMDAyMTsKK0Y5MUEgMDAzRjsKKzJGQkMgMDAzRjsKKzJGQzAgMDAzRjsKK0Y5RjIgMDAzRjsKK0Y5M0EgMDAzRjsKKzJGQzUgMDA2MTsKKzJGQzcgMDA2MTsKKzJGQ0IgMDAyMTsKKzJGQ0QgMDAzRjsKKzJGRDAgMDA2MTsKKzJFRUQgMDA2MTsKKzJFRjAgMDAzRjsKK0ZBQ0UgMDA2MjsKKzlGQTMgMDAzRjsKK0ZBMTMgMDAzRjsKK0ZBMjcgMDAzRjsKKzM0MDMgMDAzRjsKKzM0MDkgMDAzRjsKKzM0MEYgMDAzRjsKKzM0MTUgMDAzRjsKKzM0MUIgMDAzRjsKKzM0MjEgMDAzRjsKKzM0MjcgMDAzRjsKKzM0MkQgMDAzRjsKKzM0MzMgMDAzRjsKKzM0MzkgMDAzRjsKKzM0M0YgMDAzRjsKKzM0NDUgMDAzRjsKKzM0NEIgMDAzRjsKKzM0NTEgMDAzRjsKKzM0NTcgMDAzRjsKKzM0NUQgMDAzRjsKKzM0NjMgMDAzRjsKKzM0NjkgMDAzRjsKKzM0NkYgMDAzRjsKKzM0NzUgMDAzRjsKKzM0N0IgMDAzRjsKKzM0ODEgMDAzRjsKKzM0ODcgMDAzRjsKKzM0OEQgMDAzRjsKKzM0OTMgMDAzRjsKKzM0OTkgMDAzRjsKKzM0OUUgMDA0MTsKKzM0QTQgMDAzRjsKKzM0QUEgMDAzRjsKKzM0QjAgMDAzRjsKKzM0QjYgMDAzRjsKKzJGOUNBIDAwMjE7CiszNEMwIDAwM0Y7CiszNEM2IDAwM0Y7CiszNENDIDAwM0Y7CiszNEQyIDAwM0Y7CiszNEQ4IDAwM0Y7CiszNERFIDAwM0Y7CiszNEUzIDAwM0Y7CiszNEU5IDAwM0Y7CiszNEVGIDAwM0Y7CiszNEY1IDAwM0Y7CiszNEZCIDAwM0Y7CiszNTAxIDAwM0Y7CiszNTA3IDAwM0Y7CiszNTBEIDAwM0Y7CiszNTEzIDAwM0Y7CiszNTE4IDAwM0Y7CiszNTFFIDAwM0Y7CiszNTI0IDAwM0Y7CiszNTJBIDAwM0Y7CiszNTMwIDAwM0Y7CiszNTM2IDAwM0Y7CiszNTNDIDAwM0Y7CiszNTQyIDAwM0Y7CiszNTQ4IDAwM0Y7CiszNTRFIDAwM0Y7CiszNTU0IDAwM0Y7CiszNTVBIDAwM0Y7CiszNTYwIDAwM0Y7CiszNTY2IDAwM0Y7CiszNTZDIDAwM0Y7CiszNTcyIDAwM0Y7CiszNTc4IDAwM0Y7CiszNTdFIDAwM0Y7CiszNTg0IDAwM0Y7CiszNThBIDAwM0Y7CiszNTkwIDAwM0Y7CiszNTk2IDAwM0Y7CiszNTlDIDAwM0Y7CiszNUEyIDAwM0Y7CiszNUE4IDAwM0Y7CiszNUFFIDAwM0Y7CiszNUI0IDAwM0Y7CiszNUJBIDAwM0Y7CiszNUMwIDAwM0Y7CiszNUM2IDAwM0Y7CiszNUNDIDAwM0Y7CiszNUQyIDAwM0Y7CiszNUQ4IDAwM0Y7CiszNURFIDAwM0Y7CiszNUU0IDAwM0Y7CiszNUVBIDAwM0Y7CiszNUYwIDAwM0Y7CiszNUY2IDAwM0Y7CiszNUZDIDAwM0Y7CiszNjAyIDAwM0Y7CiszNjA4IDAwM0Y7CiszNjBFIDAwM0Y7CiszNjE0IDAwM0Y7CiszNjFBIDAwM0Y7CiszNjIwIDAwM0Y7CiszNjI2IDAwM0Y7CiszNjJDIDAwM0Y7CiszNjMyIDAwM0Y7CiszNjM4IDAwM0Y7CiszNjNFIDAwM0Y7CiszNjQ0IDAwM0Y7CiszNjRBIDAwM0Y7CiszNjUwIDAwM0Y7CiszNjU2IDAwM0Y7CiszNjVDIDAwM0Y7CiszNjYyIDAwM0Y7CiszNjY4IDAwM0Y7CiszNjZFIDAwM0Y7CiszNjc0IDAwM0Y7CiszNjdBIDAwM0Y7CiszNjgwIDAwM0Y7CiszNjg2IDAwM0Y7CiszNjhDIDAwM0Y7CiszNjkyIDAwM0Y7CiszNjk4IDAwM0Y7CiszNjlFIDAwM0Y7CiszNkE0IDAwM0Y7CiszNkFBIDAwM0Y7CiszNkIwIDAwM0Y7CiszNkI2IDAwM0Y7CiszNkJDIDAwM0Y7CiszNkMyIDAwM0Y7CiszNkM4IDAwM0Y7CiszNkNFIDAwM0Y7CiszNkQ0IDAwM0Y7CiszNkRBIDAwM0Y7CiszNkUwIDAwM0Y7CiszNkU2IDAwM0Y7CiszNkVDIDAwM0Y7CiszNkYxIDAwM0Y7CiszNkY3IDAwM0Y7CiszNkZDIDAwNDE7CiszNzAyIDAwM0Y7CiszNzA4IDAwM0Y7CiszNzBFIDAwM0Y7CiszNzE0IDAwM0Y7CiszNzFBIDAwM0Y7CiszNzIwIDAwM0Y7CiszNzI2IDAwM0Y7CiszNzJDIDAwM0Y7CiszNzMyIDAwM0Y7CiszNzM4IDAwM0Y7CiszNzNFIDAwM0Y7CiszNzQ0IDAwM0Y7CiszNzRBIDAwM0Y7CiszNzUwIDAwM0Y7CiszNzU2IDAwM0Y7CiszNzVDIDAwM0Y7CiszNzYyIDAwM0Y7CiszNzY4IDAwM0Y7CiszNzZFIDAwM0Y7CiszNzc0IDAwM0Y7CiszNzdBIDAwM0Y7CiszNzgwIDAwM0Y7CiszNzg1IDAwM0Y7CiszNzhCIDAwM0Y7CiszNzkxIDAwM0Y7CiszNzk3IDAwM0Y7CiszNzlEIDAwM0Y7CiszN0EzIDAwM0Y7CiszN0E5IDAwM0Y7CiszN0FGIDAwM0Y7CiszN0I1IDAwM0Y7CiszN0JCIDAwM0Y7CiszN0MxIDAwM0Y7CiszN0M3IDAwM0Y7CiszN0NEIDAwM0Y7CiszN0QzIDAwM0Y7CiszN0Q5IDAwM0Y7CiszN0RGIDAwM0Y7CiszN0U1IDAwM0Y7CiszN0VCIDAwM0Y7CiszN0YxIDAwM0Y7CiszN0Y3IDAwM0Y7CiszN0ZEIDAwM0Y7CiszODAzIDAwM0Y7CiszODA5IDAwM0Y7CiszODBGIDAwM0Y7CiszODE1IDAwM0Y7CiszODFCIDAwM0Y7CiszODIxIDAwM0Y7CiszODI3IDAwM0Y7CiszODJEIDAwM0Y7CiszODMyIDAwM0Y7CiszODM4IDAwM0Y7CiszODNFIDAwM0Y7CiszODQ0IDAwM0Y7CiszODRBIDAwM0Y7CiszODUwIDAwM0Y7CiszODU2IDAwM0Y7CiszODVDIDAwM0Y7CisyRjg4OCAwMDIxOworMzg2NyAwMDNGOworMzg2RCAwMDNGOworMzg3MyAwMDNGOworMzg3OSAwMDNGOworMzg3RSAwMDNGOworMzg4NCAwMDNGOworMzg4QSAwMDNGOworMzg5MCAwMDNGOworMzg5NiAwMDNGOworMzg5QyAwMDNGOworMzhBMiAwMDNGOworMzhBOCAwMDNGOworMzhBRSAwMDNGOworMzhCNCAwMDNGOworMzhCQSAwMDNGOworMzhDMCAwMDNGOworMzhDNiAwMDNGOworMzhDQiAwMDNGOworMzhEMSAwMDNGOworMzhENyAwMDNGOworMzhERCAwMDNGOworMkY4OUIgMDAyMTsKKzM4RTggMDAzRjsKKzM4RUUgMDAzRjsKKzM4RjQgMDAzRjsKKzM4RkEgMDAzRjsKKzM5MDAgMDAzRjsKKzM5MDYgMDAzRjsKKzM5MEMgMDAzRjsKKzM5MTIgMDAzRjsKKzM5MTggMDAzRjsKKzM5MUQgMDAzRjsKKzM5MjMgMDAzRjsKKzM5MjkgMDAzRjsKKzM5MkYgMDAzRjsKKzM5MzUgMDAzRjsKKzM5M0EgMDA0MTsKKzM5NDAgMDAzRjsKKzM5NDYgMDAzRjsKKzM5NEMgMDAzRjsKKzM5NTIgMDAzRjsKKzM5NTggMDAzRjsKKzM5NUUgMDAzRjsKKzM5NjQgMDAzRjsKKzM5NkEgMDAzRjsKKzM5NzAgMDAzRjsKKzM5NzYgMDAzRjsKKzM5N0MgMDAzRjsKKzM5ODIgMDAzRjsKKzM5ODggMDAzRjsKKzM5OEUgMDAzRjsKKzM5OTQgMDAzRjsKKzM5OUEgMDAzRjsKKzM5QTAgMDAzRjsKKzM5QTYgMDAzRjsKKzM5QUMgMDAzRjsKKzM5QjIgMDAzRjsKKzM5QjggMDAzRjsKKzM5QkUgMDAzRjsKKzM5QzQgMDAzRjsKKzM5Q0EgMDAzRjsKKzM5RDAgMDAzRjsKKzM5RDYgMDAzRjsKKzM5REMgMDAzRjsKKzM5RTIgMDAzRjsKKzM5RTggMDAzRjsKKzM5RUUgMDAzRjsKKzM5RjQgMDAzRjsKKzM5RkEgMDAzRjsKKzNBMDAgMDAzRjsKKzNBMDYgMDAzRjsKKzNBMEMgMDAzRjsKKzNBMTIgMDAzRjsKKzNBMTggMDAzRjsKKzNBMUUgMDAzRjsKKzNBMjQgMDAzRjsKKzNBMkEgMDAzRjsKKzNBMkYgMDAzRjsKKzNBMzUgMDAzRjsKKzNBM0IgMDAzRjsKKzNBNDEgMDAzRjsKKzNBNDcgMDAzRjsKKzNBNEQgMDAzRjsKKzNBNTMgMDAzRjsKKzNBNTkgMDAzRjsKKzNBNUYgMDAzRjsKKzNBNjUgMDAzRjsKKzNBNkIgMDAzRjsKKzNBNzAgMDAzRjsKKzNBNzYgMDAzRjsKKzNBN0MgMDAzRjsKKzNBODIgMDAzRjsKKzNBODggMDAzRjsKKzNBOEUgMDAzRjsKKzNBOTQgMDAzRjsKKzNBOUEgMDAzRjsKKzNBQTAgMDAzRjsKKzNBQTYgMDAzRjsKKzNBQUMgMDAzRjsKKzNBQjIgMDAzRjsKKzNBQjggMDAzRjsKKzNBQkUgMDAzRjsKKzNBQzQgMDAzRjsKKzNBQ0EgMDAzRjsKKzNBRDAgMDAzRjsKKzNBRDYgMDAzRjsKKzNBREMgMDAzRjsKKzNBRTIgMDAzRjsKKzNBRTcgMDAzRjsKKzNBRUQgMDAzRjsKKzNBRjMgMDAzRjsKKzNBRjkgMDAzRjsKKzNBRkYgMDAzRjsKKzNCMDUgMDAzRjsKKzNCMEEgMDAzRjsKKzNCMTAgMDAzRjsKKzNCMTYgMDAzRjsKKzNCMUIgMDAzRjsKKzNCMjEgMDAzRjsKKzNCMjcgMDAzRjsKKzNCMkQgMDAzRjsKKzNCMzMgMDAzRjsKKzNCMzkgMDAzRjsKKzNCM0YgMDAzRjsKKzNCNDUgMDAzRjsKKzNCNEEgMDAzRjsKKzNCNTAgMDAzRjsKKzNCNTYgMDAzRjsKKzNCNUMgMDAzRjsKKzNCNjIgMDAzRjsKKzNCNjggMDAzRjsKKzNCNkUgMDAzRjsKKzNCNzQgMDAzRjsKKzNCN0EgMDAzRjsKKzNCODAgMDAzRjsKKzNCODYgMDAzRjsKKzNCOEMgMDAzRjsKKzNCOTIgMDAzRjsKKzNCOTggMDAzRjsKKzNCOUQgMDA2MTsKKzNCQTIgMDAzRjsKKzNCQTggMDAzRjsKKzNCQUUgMDAzRjsKKzNCQjQgMDAzRjsKKzNCQkEgMDAzRjsKKzNCQzAgMDAzRjsKKzNCQzYgMDAzRjsKKzNCQ0MgMDAzRjsKKzNCRDIgMDAzRjsKKzNCRDggMDAzRjsKKzNCREUgMDAzRjsKKzNCRTQgMDAzRjsKKzNCRUEgMDAzRjsKKzNCRjAgMDAzRjsKKzNCRjYgMDAzRjsKKzNCRkMgMDAzRjsKKzNDMDIgMDAzRjsKKzNDMDggMDAzRjsKKzNDMEUgMDAzRjsKKzNDMTQgMDAzRjsKKzNDMTkgMDAzRjsKKzNDMUYgMDAzRjsKKzNDMjUgMDAzRjsKKzNDMkIgMDAzRjsKKzNDMzEgMDAzRjsKKzNDMzcgMDAzRjsKKzNDM0QgMDAzRjsKKzNDNDMgMDAzRjsKKzNDNDkgMDAzRjsKKzNDNEUgMDA0MTsKKzNDNTQgMDAzRjsKKzNDNUEgMDAzRjsKKzNDNjAgMDAzRjsKKzNDNjYgMDAzRjsKKzNDNkMgMDAzRjsKKzNDNzIgMDAzRjsKKzNDNzggMDAzRjsKKzNDN0UgMDAzRjsKKzNDODQgMDAzRjsKKzNDOEEgMDAzRjsKKzNDOTAgMDAzRjsKKzNDOTYgMDAzRjsKKzNDOUMgMDAzRjsKKzNDQTIgMDAzRjsKKzNDQTggMDAzRjsKKzNDQUUgMDAzRjsKKzNDQjQgMDAzRjsKKzNDQkEgMDAzRjsKKzNDQzAgMDAzRjsKKzNDQzYgMDAzRjsKKzNDQ0MgMDAzRjsKKzNDRDIgMDAzRjsKKzNDRDggMDAzRjsKKzNDREUgMDAzRjsKKzNDRTQgMDAzRjsKKzNDRUEgMDAzRjsKKzNDRjAgMDAzRjsKKzNDRjYgMDAzRjsKKzNDRkMgMDAzRjsKKzNEMDIgMDAzRjsKKzNEMDggMDAzRjsKKzNEMEUgMDAzRjsKKzNEMTQgMDAzRjsKKzNEMUEgMDAzRjsKKzNEMjAgMDAzRjsKKzNEMjYgMDAzRjsKKzNEMkMgMDAzRjsKKzNEMzIgMDAzRjsKKzNEMzcgMDAzRjsKKzNEM0QgMDAzRjsKKzNENDMgMDAzRjsKKzNENDkgMDAzRjsKKzNENEYgMDAzRjsKKzNENTUgMDAzRjsKKzNENUIgMDAzRjsKKzNENjEgMDAzRjsKKzNENjcgMDAzRjsKKzNENkQgMDAzRjsKKzNENzMgMDAzRjsKKzNENzkgMDAzRjsKKzNEN0YgMDAzRjsKKzNEODUgMDAzRjsKKzNEOEIgMDAzRjsKKzNEOTEgMDAzRjsKKzNEOTYgMDA0MTsKKzNEOUMgMDAzRjsKKzNEQTIgMDAzRjsKKzNEQTggMDAzRjsKKzNEQUUgMDAzRjsKKzNEQjQgMDAzRjsKKzNEQkEgMDAzRjsKKzNEQzAgMDAzRjsKKzNEQzYgMDAzRjsKKzNEQ0MgMDAzRjsKKzNERDIgMDAzRjsKKzNERDggMDAzRjsKKzNEREUgMDAzRjsKKzNERTQgMDAzRjsKKzNERUEgMDAzRjsKKzNERjAgMDAzRjsKKzNERjYgMDAzRjsKKzNERkMgMDAzRjsKKzNFMDIgMDAzRjsKKzNFMDggMDAzRjsKKzNFMEUgMDAzRjsKKzNFMTQgMDAzRjsKKzNFMUEgMDAzRjsKKzNFMjAgMDAzRjsKKzNFMjYgMDAzRjsKKzNFMkMgMDAzRjsKKzNFMzIgMDAzRjsKKzNFMzggMDAzRjsKKzNFM0UgMDAzRjsKKzNFNDQgMDAzRjsKKzNFNEEgMDAzRjsKKzNFNTAgMDAzRjsKKzNFNTYgMDAzRjsKKzNFNUMgMDAzRjsKKzNFNjIgMDAzRjsKKzNFNjggMDAzRjsKKzNFNkUgMDAzRjsKKzNFNzQgMDAzRjsKKzNFN0EgMDAzRjsKKzNFODAgMDAzRjsKKzNFODYgMDAzRjsKKzNFOEMgMDAzRjsKKzNFOTIgMDAzRjsKKzNFOTggMDAzRjsKKzNFOUUgMDAzRjsKKzNFQTQgMDAzRjsKKzNFQUEgMDAzRjsKKzNFQUYgMDAzRjsKKzNFQjUgMDAzRjsKKzNFQjkgMDAzRjsKKzNFQkYgMDAzRjsKKzNFQzUgMDAzRjsKKzNFQ0IgMDAzRjsKKzNFRDEgMDAzRjsKKzNFRDcgMDAzRjsKKzNFREQgMDAzRjsKKzNFRTMgMDAzRjsKKzNFRTkgMDAzRjsKKzNFRUYgMDAzRjsKKzNFRjUgMDAzRjsKKzNFRkIgMDAzRjsKKzNGMDEgMDAzRjsKKzNGMDcgMDAzRjsKKzNGMEQgMDAzRjsKKzNGMTMgMDAzRjsKKzNGMTkgMDAzRjsKKzNGMUUgMDAzRjsKKzNGMjQgMDAzRjsKKzNGMkEgMDAzRjsKKzNGMzAgMDAzRjsKKzNGMzYgMDAzRjsKKzNGM0MgMDAzRjsKKzNGNDIgMDAzRjsKKzNGNDggMDAzRjsKKzNGNEUgMDAzRjsKKzNGNTQgMDAzRjsKKzNGNUEgMDAzRjsKKzNGNjAgMDAzRjsKKzNGNjYgMDAzRjsKKzNGNkMgMDAzRjsKKzNGNzIgMDAzRjsKKzNGNzggMDAzRjsKKzNGN0UgMDAzRjsKKzNGODQgMDAzRjsKKzNGOEEgMDAzRjsKKzNGOTAgMDAzRjsKKzNGOTYgMDAzRjsKKzNGOUMgMDAzRjsKKzNGQTIgMDAzRjsKKzNGQTggMDAzRjsKKzNGQUUgMDAzRjsKKzNGQjQgMDAzRjsKKzNGQkEgMDAzRjsKKzNGQzAgMDAzRjsKKzNGQzYgMDAzRjsKKzNGQ0MgMDAzRjsKKzNGRDIgMDAzRjsKKzNGRDggMDAzRjsKKzNGREUgMDAzRjsKKzNGRTQgMDAzRjsKKzNGRUEgMDAzRjsKKzNGRjAgMDAzRjsKKzNGRjYgMDAzRjsKKzJGOTNFIDAwMjE7Cis0MDAxIDAwM0Y7Cis0MDA3IDAwM0Y7Cis0MDBDIDAwM0Y7Cis0MDEyIDAwM0Y7CitGQUQzIDAwMjE7Cis0MDFEIDAwM0Y7Cis0MDIzIDAwM0Y7Cis0MDI5IDAwM0Y7Cis0MDJGIDAwM0Y7Cis0MDM1IDAwM0Y7CisyRjk0OSAwMDQxOworNDAzRiAwMDNGOworNDA0NSAwMDNGOworNDA0QSAwMDNGOworNDA1MCAwMDNGOworNDA1NiAwMDNGOworNDA1QyAwMDNGOworNDA2MiAwMDNGOworNDA2OCAwMDNGOworNDA2RSAwMDNGOworNDA3NCAwMDNGOworNDA3QSAwMDNGOworNDA4MCAwMDNGOworNDA4NiAwMDNGOworNDA4QyAwMDNGOworNDA5MiAwMDNGOworNDA5NyAwMDNGOworNDA5RCAwMDNGOworNDBBMyAwMDNGOworNDBBOSAwMDNGOworNDBBRiAwMDNGOworNDBCNSAwMDNGOworNDBCQiAwMDNGOworNDBDMSAwMDNGOworNDBDNyAwMDNGOworNDBDRCAwMDNGOworNDBEMyAwMDNGOworNDBEOSAwMDNGOworNDBERiAwMDNGOworNDBFNCAwMDNGOworNDBFQSAwMDNGOworNDBGMCAwMDNGOworNDBGNiAwMDNGOworNDBGQyAwMDNGOworNDEwMiAwMDNGOworNDEwOCAwMDNGOworNDEwRSAwMDNGOworNDExNCAwMDNGOworNDExQSAwMDNGOworNDEyMCAwMDNGOworNDEyNiAwMDNGOworNDEyQyAwMDNGOworNDEzMSAwMDNGOworNDEzNyAwMDNGOworNDEzRCAwMDNGOworNDE0MyAwMDNGOworNDE0OSAwMDNGOworNDE0RiAwMDNGOworNDE1NSAwMDNGOworNDE1QiAwMDNGOworNDE2MSAwMDNGOworNDE2NyAwMDNGOworNDE2RCAwMDNGOworNDE3MyAwMDNGOworNDE3OSAwMDNGOworNDE3RiAwMDNGOworNDE4NSAwMDNGOworNDE4QiAwMDNGOworNDE5MSAwMDNGOworNDE5NyAwMDNGOworNDE5RCAwMDNGOworNDFBMyAwMDNGOworNDFBOSAwMDNGOworNDFBRiAwMDNGOworNDFCNSAwMDNGOworNDFCQiAwMDNGOworNDFDMSAwMDNGOworNDFDNyAwMDNGOworNDFDRCAwMDNGOworNDFEMyAwMDNGOworNDFEOSAwMDNGOworNDFERiAwMDNGOworNDFFNSAwMDNGOworNDFFQiAwMDNGOworNDFGMSAwMDNGOworNDFGNyAwMDNGOworNDFGRCAwMDNGOworNDIwMiAwMDQxOworNDIwOCAwMDNGOworNDIwRSAwMDNGOworNDIxNCAwMDNGOworNDIxQSAwMDNGOworNDIyMCAwMDNGOworNDIyNiAwMDNGOworNDIyQiAwMDNGOworNDIzMSAwMDNGOworNDIzNyAwMDNGOworNDIzRCAwMDNGOworNDI0MyAwMDNGOworNDI0OSAwMDNGOworNDI0RiAwMDNGOworNDI1NSAwMDNGOworNDI1QiAwMDNGOworNDI2MSAwMDNGOworNDI2NyAwMDNGOworNDI2RCAwMDNGOworNDI3MyAwMDNGOworNDI3OSAwMDNGOworNDI3RiAwMDNGOworNDI4NSAwMDNGOworNDI4QiAwMDNGOworNDI5MSAwMDNGOworNDI5NyAwMDNGOworNDI5RCAwMDNGOworNDJBMiAwMDNGOworNDJBOCAwMDNGOworNDJBRSAwMDNGOworNDJCNCAwMDNGOworNDJCQSAwMDNGOworNDJDMCAwMDNGOworNDJDNiAwMDNGOworNDJDQyAwMDNGOworNDJEMiAwMDNGOworNDJEOCAwMDNGOworNDJERSAwMDNGOworNDJFNCAwMDNGOworNDJFQSAwMDNGOworNDJGMCAwMDNGOworNDJGNiAwMDNGOworNDJGQyAwMDNGOworNDMwMSAwMDQxOworNDMwNyAwMDNGOworNDMwRCAwMDNGOworNDMxMyAwMDNGOworNDMxOSAwMDNGOworNDMxRiAwMDNGOworNDMyNSAwMDNGOworNDMyQiAwMDNGOworNDMzMSAwMDNGOworNDMzNiAwMDNGOworNDMzQyAwMDNGOworNDM0MiAwMDNGOworNDM0OCAwMDNGOworNDM0RSAwMDNGOworNDM1NCAwMDNGOworNDM1OSAwMDQxOworNDM1RiAwMDNGOworNDM2NSAwMDNGOworNDM2QiAwMDNGOworNDM3MSAwMDNGOworNDM3NyAwMDNGOworNDM3RCAwMDNGOworNDM4MyAwMDNGOworNDM4OSAwMDNGOworNDM4RiAwMDNGOworNDM5NSAwMDNGOworNDM5QiAwMDNGOworNDNBMSAwMDNGOworNDNBNyAwMDNGOworNDNBRCAwMDNGOworNDNCMyAwMDNGOworNDNCOSAwMDNGOworNDNCRiAwMDNGOworNDNDNSAwMDNGOworNDNDQiAwMDNGOworNDNEMSAwMDNGOworNDNENiAwMDNGOworNDNEQiAwMDNGOworNDNFMSAwMDNGOworNDNFNyAwMDNGOworNDNFRCAwMDNGOworNDNGMyAwMDNGOworNDNGOSAwMDNGOworNDNGRiAwMDNGOworNDQwNSAwMDNGOworMkY5ODQgMDAyMTsKKzQ0MTAgMDAzRjsKKzQ0MTYgMDAzRjsKKzQ0MUMgMDAzRjsKKzQ0MjIgMDAzRjsKKzQ0MjggMDAzRjsKKzQ0MkUgMDAzRjsKKzQ0MzQgMDAzRjsKKzQ0M0EgMDAzRjsKKzQ0NDAgMDAzRjsKKzQ0NDYgMDAzRjsKKzQ0NEMgMDAzRjsKKzQ0NTIgMDAzRjsKKzQ0NTggMDAzRjsKKzQ0NUUgMDAzRjsKKzQ0NjQgMDAzRjsKKzQ0NkEgMDAzRjsKKzQ0NkYgMDAzRjsKKzQ0NzUgMDAzRjsKKzQ0N0IgMDAzRjsKKzQ0ODEgMDAzRjsKKzQ0ODcgMDAzRjsKKzQ0OEQgMDAzRjsKKzQ0OTMgMDAzRjsKKzQ0OTkgMDAzRjsKKzQ0OUYgMDAzRjsKKzQ0QTUgMDAzRjsKKzQ0QUIgMDAzRjsKKzQ0QjEgMDAzRjsKKzQ0QjcgMDAzRjsKKzQ0QkQgMDAzRjsKKzQ0QzMgMDAzRjsKKzQ0QzkgMDAzRjsKKzQ0Q0YgMDAzRjsKKzQ0RDUgMDAzRjsKKzQ0REIgMDAzRjsKKzQ0RTEgMDAzRjsKKzQ0RTcgMDAzRjsKKzQ0RUQgMDAzRjsKKzQ0RjMgMDAzRjsKKzQ0RjkgMDAzRjsKKzQ0RkYgMDAzRjsKKzQ1MDUgMDAzRjsKKzQ1MEIgMDAzRjsKKzQ1MTEgMDAzRjsKKzQ1MTcgMDAzRjsKKzQ1MUQgMDAzRjsKKzQ1MjMgMDAzRjsKKzQ1MjkgMDAzRjsKKzQ1MkUgMDAzRjsKKzQ1MzQgMDAzRjsKKzQ1M0EgMDAzRjsKKzQ1NDAgMDAzRjsKKzQ1NDYgMDAzRjsKKzQ1NEMgMDAzRjsKKzQ1NTIgMDAzRjsKKzQ1NTggMDAzRjsKKzQ1NUQgMDA0MTsKKzQ1NjIgMDAzRjsKKzQ1NjggMDAzRjsKKzQ1NkQgMDAzRjsKKzQ1NzMgMDAzRjsKKzQ1NzkgMDAzRjsKKzQ1N0YgMDAzRjsKKzQ1ODUgMDAzRjsKKzQ1OEIgMDAzRjsKKzQ1OTEgMDAzRjsKKzQ1OTcgMDAzRjsKKzQ1OUQgMDAzRjsKKzQ1QTMgMDAzRjsKKzQ1QTkgMDAzRjsKKzQ1QUYgMDAzRjsKKzQ1QjUgMDAzRjsKKzQ1QkIgMDAzRjsKKzQ1QzEgMDAzRjsKKzQ1QzcgMDAzRjsKKzQ1Q0QgMDAzRjsKKzQ1RDMgMDAzRjsKKzQ1RDggMDAzRjsKKzQ1REUgMDAzRjsKKzQ1RTQgMDAzRjsKKzQ1RUEgMDAzRjsKKzQ1RjAgMDAzRjsKKzQ1RjYgMDAzRjsKKzQ1RkIgMDAzRjsKKzQ2MDEgMDAzRjsKKzQ2MDcgMDAzRjsKKzQ2MEQgMDAzRjsKKzQ2MTMgMDAzRjsKKzQ2MTkgMDAzRjsKKzQ2MUYgMDAzRjsKKzQ2MjUgMDAzRjsKKzQ2MkIgMDAzRjsKKzQ2MzEgMDAzRjsKKzQ2MzYgMDAzRjsKKzQ2M0MgMDAzRjsKKzQ2NDIgMDAzRjsKKzQ2NDggMDAzRjsKKzQ2NEUgMDAzRjsKKzQ2NTQgMDAzRjsKKzQ2NUEgMDAzRjsKKzQ2NjAgMDAzRjsKKzQ2NjYgMDAzRjsKKzQ2NkMgMDAzRjsKKzQ2NzIgMDAzRjsKKzQ2NzggMDAzRjsKKzQ2N0UgMDAzRjsKKzQ2ODQgMDAzRjsKKzQ2OEEgMDAzRjsKKzQ2OTAgMDAzRjsKKzQ2OTYgMDAzRjsKKzQ2OUMgMDAzRjsKKzQ2QTIgMDAzRjsKKzQ2QTggMDAzRjsKKzQ2QUUgMDAzRjsKKzQ2QjQgMDAzRjsKKzQ2QkEgMDAzRjsKKzQ2QkYgMDAzRjsKKzQ2QzUgMDAzRjsKKzQ2Q0EgMDAzRjsKKzQ2RDAgMDAzRjsKKzQ2RDYgMDAzRjsKKzQ2REMgMDAzRjsKKzQ2RTIgMDAzRjsKKzQ2RTggMDAzRjsKKzQ2RUUgMDAzRjsKKzQ2RjQgMDAzRjsKKzQ2RkEgMDAzRjsKKzQ3MDAgMDAzRjsKKzQ3MDYgMDAzRjsKKzQ3MEMgMDAzRjsKKzQ3MTIgMDAzRjsKKzQ3MTggMDAzRjsKKzQ3MUUgMDAzRjsKKzQ3MjQgMDAzRjsKKzQ3MkEgMDAzRjsKKzQ3MzAgMDAzRjsKKzQ3MzYgMDAzRjsKKzQ3M0MgMDAzRjsKKzQ3NDIgMDAzRjsKKzQ3NDggMDAzRjsKKzQ3NEUgMDAzRjsKKzQ3NTQgMDAzRjsKKzQ3NUEgMDAzRjsKKzQ3NjAgMDAzRjsKKzQ3NjYgMDAzRjsKKzQ3NkMgMDAzRjsKKzQ3NzIgMDAzRjsKKzQ3NzggMDAzRjsKKzQ3N0UgMDAzRjsKKzQ3ODQgMDAzRjsKKzQ3OEEgMDAzRjsKKzQ3OTAgMDAzRjsKKzQ3OTYgMDAzRjsKKzQ3OUMgMDAzRjsKKzQ3QTIgMDAzRjsKKzQ3QTggMDAzRjsKKzQ3QUUgMDAzRjsKKzQ3QjQgMDAzRjsKKzQ3QkEgMDAzRjsKKzQ3QzAgMDAzRjsKKzQ3QzYgMDAzRjsKKzQ3Q0MgMDAzRjsKKzQ3RDIgMDAzRjsKKzQ3RDggMDAzRjsKKzQ3REUgMDAzRjsKKzQ3RTQgMDAzRjsKKzQ3RUEgMDAzRjsKKzQ3RjAgMDAzRjsKKzQ3RjYgMDAzRjsKKzQ3RkMgMDAzRjsKKzQ4MDIgMDAzRjsKKzQ4MDggMDAzRjsKKzQ4MEUgMDAzRjsKKzQ4MTQgMDAzRjsKKzQ4MUEgMDAzRjsKKzQ4MjAgMDAzRjsKKzQ4MjYgMDAzRjsKKzQ4MkMgMDAzRjsKKzQ4MzIgMDAzRjsKKzQ4MzggMDAzRjsKKzQ4M0UgMDAzRjsKKzQ4NDQgMDAzRjsKKzQ4NEEgMDAzRjsKKzQ4NTAgMDAzRjsKKzQ4NTYgMDAzRjsKKzQ4NUMgMDAzRjsKKzQ4NjIgMDAzRjsKKzQ4NjggMDAzRjsKKzQ4NkUgMDAzRjsKKzQ4NzQgMDAzRjsKKzQ4N0EgMDAzRjsKKzQ4ODAgMDAzRjsKKzQ4ODYgMDAzRjsKKzQ4OEMgMDAzRjsKKzQ4OTIgMDAzRjsKKzQ4OTggMDAzRjsKKzQ4OUUgMDAzRjsKKzQ4QTQgMDAzRjsKKzQ4QUEgMDAzRjsKKzQ4QjAgMDAzRjsKKzQ4QjYgMDAzRjsKKzQ4QkMgMDAzRjsKKzQ4QzIgMDAzRjsKKzQ4QzggMDAzRjsKKzQ4Q0UgMDAzRjsKKzQ4RDQgMDAzRjsKKzQ4REEgMDAzRjsKKzQ4RTAgMDAzRjsKKzQ4RTYgMDAzRjsKKzQ4RUMgMDAzRjsKKzQ4RjIgMDAzRjsKKzQ4RjggMDAzRjsKKzQ4RkUgMDAzRjsKKzQ5MDQgMDAzRjsKKzQ5MEEgMDAzRjsKKzQ5MTAgMDAzRjsKKzQ5MTYgMDAzRjsKKzQ5MUMgMDAzRjsKKzQ5MjIgMDAzRjsKKzQ5MjggMDAzRjsKKzQ5MkUgMDAzRjsKKzQ5MzQgMDAzRjsKKzQ5M0EgMDAzRjsKKzQ5NDAgMDAzRjsKKzQ5NDYgMDAzRjsKKzQ5NEMgMDAzRjsKKzQ5NTIgMDAzRjsKKzQ5NTggMDAzRjsKKzQ5NUUgMDAzRjsKKzQ5NjQgMDAzRjsKKzQ5NkEgMDAzRjsKKzQ5NzAgMDAzRjsKKzQ5NzYgMDAzRjsKKzQ5N0MgMDAzRjsKKzQ5ODIgMDAzRjsKKzQ5ODggMDAzRjsKKzQ5OEUgMDAzRjsKKzQ5OTQgMDAzRjsKKzQ5OTkgMDAzRjsKKzQ5OUYgMDAzRjsKKzQ5QTUgMDAzRjsKKzQ5QUIgMDAzRjsKKzQ5QjEgMDAzRjsKKzQ5QjcgMDAzRjsKKzQ5QkQgMDAzRjsKKzQ5QzMgMDAzRjsKKzQ5QzkgMDAzRjsKKzQ5Q0YgMDAzRjsKKzQ5RDUgMDAzRjsKKzQ5REIgMDAzRjsKKzQ5RTEgMDAzRjsKKzQ5RTYgMDA0MTsKKzQ5RUMgMDAzRjsKKzQ5RjIgMDAzRjsKKzQ5RjggMDAzRjsKKzQ5RkUgMDAzRjsKKzRBMDQgMDAzRjsKKzRBMEEgMDAzRjsKKzRBMTAgMDAzRjsKKzRBMTYgMDAzRjsKKzRBMUMgMDAzRjsKKzRBMjIgMDAzRjsKKzRBMjggMDAzRjsKKzRBMkUgMDAzRjsKKzRBMzQgMDAzRjsKKzRBM0EgMDAzRjsKKzRBNDAgMDAzRjsKKzRBNDYgMDAzRjsKKzRBNEMgMDAzRjsKKzRBNTIgMDAzRjsKKzRBNTggMDAzRjsKKzRBNUUgMDAzRjsKKzRBNjQgMDAzRjsKKzRBNkEgMDAzRjsKKzRBNkYgMDAzRjsKKzRBNzUgMDAzRjsKKzRBN0EgMDAzRjsKKzRBODAgMDAzRjsKKzRBODYgMDAzRjsKKzRBOEMgMDAzRjsKKzRBOTIgMDAzRjsKKzRBOTggMDAzRjsKKzRBOUUgMDAzRjsKKzRBQTQgMDAzRjsKKzRBQUEgMDAzRjsKKzRBQjAgMDAzRjsKKzRBQjUgMDAzRjsKKzRBQkIgMDAzRjsKKzRBQzEgMDAzRjsKKzRBQzcgMDAzRjsKKzRBQ0QgMDAzRjsKKzRBRDMgMDAzRjsKKzRBRDkgMDAzRjsKKzRBREYgMDAzRjsKKzRBRTUgMDAzRjsKKzRBRUIgMDAzRjsKKzRBRjEgMDAzRjsKKzRBRjcgMDAzRjsKKzRBRkQgMDAzRjsKKzRCMDMgMDAzRjsKKzRCMDkgMDAzRjsKKzRCMEYgMDAzRjsKKzRCMTUgMDAzRjsKKzRCMUIgMDAzRjsKKzRCMjEgMDAzRjsKKzRCMjcgMDAzRjsKKzRCMkQgMDAzRjsKKzJGQTAzIDAwMjE7Cis0QjM4IDAwM0Y7Cis0QjNFIDAwM0Y7Cis0QjQ0IDAwM0Y7Cis0QjRBIDAwM0Y7Cis0QjUwIDAwM0Y7Cis0QjU2IDAwM0Y7Cis0QjVDIDAwM0Y7Cis0QjYyIDAwM0Y7Cis0QjY4IDAwM0Y7Cis0QjZFIDAwM0Y7Cis0Qjc0IDAwM0Y7Cis0QjdBIDAwM0Y7Cis0QjgwIDAwM0Y7Cis0Qjg2IDAwM0Y7Cis0QjhDIDAwM0Y7Cis0QjkyIDAwM0Y7Cis0Qjk4IDAwM0Y7Cis0QjlFIDAwM0Y7Cis0QkE0IDAwM0Y7Cis0QkFBIDAwM0Y7Cis0QkIwIDAwM0Y7Cis0QkI2IDAwM0Y7Cis0QkJDIDAwM0Y7Cis0QkMyIDAwM0Y7Cis0QkM4IDAwM0Y7CisyRkEwOCAwMDIxOworNEJEMyAwMDNGOworNEJEOSAwMDNGOworNEJERiAwMDNGOworNEJFNSAwMDNGOworNEJFQiAwMDNGOworNEJGMSAwMDNGOworNEJGNyAwMDNGOworNEJGRCAwMDNGOworNEMwMyAwMDNGOworNEMwOSAwMDNGOworNEMwRiAwMDNGOworNEMxNSAwMDNGOworNEMxQiAwMDNGOworNEMyMSAwMDNGOworNEMyNyAwMDNGOworNEMyRCAwMDNGOworNEMzMyAwMDNGOworNEMzOSAwMDNGOworNEMzRiAwMDNGOworNEM0NSAwMDNGOworNEM0QiAwMDNGOworNEM1MSAwMDNGOworNEM1NyAwMDNGOworNEM1RCAwMDNGOworNEM2MyAwMDNGOworNEM2OSAwMDNGOworNEM2RiAwMDNGOworNEM3NSAwMDNGOworNEM3QiAwMDNGOworNEM4MSAwMDNGOworNEM4NyAwMDNGOworNEM4RCAwMDNGOworNEM5MyAwMDNGOworNEM5OSAwMDNGOworNEM5RiAwMDNGOworNENBNSAwMDNGOworNENBQiAwMDNGOworNENCMSAwMDNGOworNENCNyAwMDNGOworNENCRCAwMDNGOworNENDMyAwMDNGOworNENDOSAwMDNGOworNENDRSAwMDQxOworNENENCAwMDNGOworNENEQSAwMDNGOworNENFMCAwMDNGOworNENFNiAwMDNGOworNENFQyAwMDNGOworNENGMSAwMDNGOworNENGNyAwMDNGOworNENGQyAwMDNGOworNEQwMiAwMDNGOworNEQwOCAwMDNGOworNEQwRSAwMDNGOworNEQxNCAwMDNGOworNEQxQSAwMDNGOworNEQyMCAwMDNGOworNEQyNiAwMDNGOworNEQyQyAwMDNGOworNEQzMiAwMDNGOworNEQzOCAwMDNGOworNEQzRSAwMDNGOworNEQ0NCAwMDNGOworNEQ0QSAwMDNGOworNEQ1MCAwMDNGOworMkZBMTYgMDAyMTsKKzRENUIgMDAzRjsKKzRENjEgMDAzRjsKKzRENjcgMDAzRjsKKzRENkQgMDAzRjsKKzRENzMgMDAzRjsKKzRENzkgMDAzRjsKKzREN0YgMDAzRjsKKzREODUgMDAzRjsKKzREOEIgMDAzRjsKKzREOTEgMDAzRjsKKzREOTcgMDAzRjsKKzREOUQgMDAzRjsKKzREQTMgMDAzRjsKKzREQTkgMDAzRjsKKzREQUYgMDAzRjsKKzREQjUgMDAzRjsKKzIwMDA1IDAwM0Y7CisyRjlEOSAwMDNGOworMkY4NjEgMDAzRjsKKzJGODg5IDAwM0Y7CitGQUNGIDAwM0Y7CisyRjk4OSAwMDNGOworMkY4RjAgMDAzRjsKKzJGOTEwIDAwM0Y7CisyRjkyNyAwMDNGOworMkY5NDIgMDAzRjsKKzJGOTUyIDAwM0Y7CisyRjk2MSAwMDNGOworMkY5NzMgMDAzRjsKKzJGOTg3IDAwM0Y7CisyRjlBRCAwMDNGOworMkY5Q0MgMDAzRjsKKzJGOUU1IDAwM0Y7CisyRjlGQiAwMDNGOworMkZBMTMgMDAzRjsKKzJBNkQzIDAwM0Y7CitFMDAxIDAwM0Y7CitGOEZCIDAwM0Y7CitDMDAwMCAwMDNGOworRTAwMDUgMDAzRjsKK0YwMDA1IDAwM0Y7CitGMDBGRCAwMDNGOworRkZGMDUgMDAzRjsKK0ZGRkZEIDAwM0Y7CisxMDAwMDUgMDAzRjsKKzEwMDBGRCAwMDNGOworMTBGRjA1IDAwM0Y7CisxMEZGRkQgMDAzRjsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9Db2xsYXRpb25UZXN0X1NISUZURURfU1RVQi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvQ29sbGF0aW9uVGVzdF9TSElGVEVEX1NUVUIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZmU5NDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvQ29sbGF0aW9uVGVzdF9TSElGVEVEX1NUVUIudHh0CkBAIC0wLDAgKzEsNDEwMyBAQAorMjAwNiAwMDIxOworRkY0MCAwMDIxOworMDJEOCAwMDIxOworMUZCRiAwMzM0IDAzMDA7CisxRkZFIDAzNDIgMDMzNDsKKzFGQzAgMDAzRjsKK0ZFMzEgMDAyMTsKKzA1NUQgMDAzRjsKKzAwM0IgMDAzRjsKKzA3MDYgMDAzRjsKKzAwMDEgMDAyMTsKKzAwODMgMDAyMTsKKzA0ODkgMDAyMTsKKzA1QUUgMDAyMTsKKzA2RTcgMDAyMTsKKzIwNjAgMDAyMTsKK0ZFMDcgMDAyMTsKKzFEMTc0IDAwMjE7CisxRkZGRiAwMDIxOworRTAwMjQgMDAyMTsKK0UwMDQyIDAwMjE7CitFMDA2MCAwMDIxOworRTAwN0UgMDAyMTsKK0UwMTFDIDAwMjE7CitFMDEzQSAwMDIxOworRTAxNTggMDAyMTsKK0UwMTc2IDAwMjE7CitFMDE5NCAwMDIxOworRTAxQjIgMDAyMTsKK0UwMUQwIDAwMjE7CitFMDFFRSAwMDIxOworMDAwNiAwMDNGOworMDA4OSAwMDNGOworMDU5NSAwMDNGOworMDYwMCAwMDNGOworMDZFRCAwMDNGOworMjA2QiAwMDNGOworRkUwQyAwMDNGOworMUQxNzkgMDAzRjsKKzRGRkZFIDAwM0Y7CitFMDAyOSAwMDNGOworRTAwNDcgMDAzRjsKK0UwMDY1IDAwM0Y7CitFMDEwMyAwMDNGOworRTAxMjEgMDAzRjsKK0UwMTNGIDAwM0Y7CitFMDE1RCAwMDNGOworRTAxN0IgMDAzRjsKK0UwMTk5IDAwM0Y7CitFMDFCNyAwMDNGOworRTAxRDUgMDAzRjsKKzEwRkZGRiAwMDNGOworMjAzRCAwMDNGOworMTgwOSAwMDNGOworMTdENCAwMDNGOworMjA1QiAwMDNGOworMjAxQSAwMDNGOworMjA3RCAwMDIxOworRkU0OCAwMDIxOworMTY5QiAwMDNGOworMjk4QSAwMDNGOworMkUwMiAwMDNGOworRkU0MCAwMDNGOworRkUzQiAwMDIxOworMzAxOSAwMDNGOworRkYwQSAwMDNGOworRkU1RiAwMDIxOworMjA0MyAwMDNGOworMjA1NCAwMDNGOworMkUxMiAwMDNGOworMDcwQiAwMDNGOworMEYwQSAwMDNGOworMTA0RSAwMDNGOworMDM3NCAwMDNGOworMDJDRSAwMDNGOworMDJFQSAwMDNGOworMDJGQSAwMDNGOworMTM5OSAwMDNGOworQTcwRSAwMDNGOworMDlGQSAwMDNGOworMEYwMiAwMDNGOworMEYzRSAwMDNGOworMEZDQyAwMDNGOworMTlFRCAwMDNGOworMTlGQyAwMDNGOworMjEyRSAwMDNGOworMjE5MiAwMDNGOworMjE5RCAwMDNGOworMjFBQyAwMDNGOworMjFCQyAwMDNGOworMjFDQiAwMDNGOworMjFENyAwMDNGOworMjFFNiAwMDNGOworMjFGNSAwMDNGOworMUQ3QzMgMDAyMTsKKzIyMDkgMDMzNDsKK0ZCMjkgMDAyMTsKKzIyNjAgMDAyMTsKK0ZGNUMgMDAzRjsKKzIyMTkgMDAzRjsKKzIyMjYgMDAzRjsKKzIyMzQgMDAzRjsKKzIyNDIgMDAzRjsKKzIyNkQgMDAyMTsKKzIyNUIgMDAzRjsKKzIyNjYgMDAzRjsKKzIyNzggMDAzRjsKKzIyRTEgMDAzRjsKKzIyOEEgMDAzRjsKKzIyOTUgMDAzRjsKKzIyQUMgMDAzRjsKKzIyQUYgMDAzRjsKKzIyQjYgMDAzRjsKKzIyQzUgMDAzRjsKKzIyRDQgMDAzRjsKKzIyRTcgMDAzRjsKKzIyRkEgMDAzRjsKKzIzMDkgMDAzRjsKKzIzMTggMDAzRjsKKzIzMjcgMDAzRjsKKzIzMzggMDAzRjsKKzIzNDcgMDAzRjsKKzIzNTYgMDAzRjsKKzIzNjUgMDAzRjsKKzIzNzQgMDAzRjsKKzIzODMgMDAzRjsKKzIzOTIgMDAzRjsKKzIzQTEgMDAzRjsKKzIzQjAgMDAzRjsKKzIzQkYgMDAzRjsKKzIzQ0UgMDAzRjsKKzI0MDEgMDAzRjsKKzI0MTAgMDAzRjsKKzI0MUYgMDAzRjsKKzI0NDcgMDAzRjsKKzI1MEEgMDAzRjsKKzI1MTkgMDAzRjsKKzI1MjggMDAzRjsKKzI1MzcgMDAzRjsKKzI1NDYgMDAzRjsKKzI1NTUgMDAzRjsKKzI1NjQgMDAzRjsKKzI1NzMgMDAzRjsKKzI1ODIgMDAzRjsKKzI1OTEgMDAzRjsKK0ZGRUQgMDAyMTsKKzI1QUUgMDAzRjsKKzI1QkQgMDAzRjsKK0ZGRUUgMDAzRjsKKzI1REEgMDAzRjsKKzI1RTkgMDAzRjsKKzI1RjggMDAzRjsKKzI2MDcgMDAzRjsKKzI2MTYgMDAzRjsKKzI2MjUgMDAzRjsKKzI2M0MgMDAzRjsKKzI2NEIgMDAzRjsKKzI2NUEgMDAzRjsKKzI2NjkgMDAzRjsKKzI2N0IgMDAzRjsKKzI2OTAgMDAzRjsKKzI2QTIgMDAzRjsKKzI2QjEgMDAzRjsKKzI3MTIgMDAzRjsKKzI3MjEgMDAzRjsKKzI3MzEgMDAzRjsKKzI3NDAgMDAzRjsKKzI3NTEgMDAzRjsKKzI3NjYgMDAzRjsKKzI3NzUgMDAzRjsKKzI3QTUgMDAzRjsKKzI3QjUgMDAzRjsKKzI3QzUgMDAzRjsKKzI3REQgMDAzRjsKKzI3RjAgMDAzRjsKKzI3RkYgMDAzRjsKKzI5MEUgMDAzRjsKKzI5MUQgMDAzRjsKKzI5MkMgMDAzRjsKKzI5M0IgMDAzRjsKKzI5NEEgMDAzRjsKKzI5NTkgMDAzRjsKKzI5NjggMDAzRjsKKzI5NzcgMDAzRjsKKzI5OUMgMDAzRjsKKzI5QUIgMDAzRjsKKzI5QkEgMDAzRjsKKzI5QzkgMDAzRjsKKzI5RDggMDAzRjsKKzI5RTcgMDAzRjsKKzI5RjYgMDAzRjsKKzJBMDcgMDAzRjsKKzJBMTcgMDAzRjsKKzJBMjYgMDAzRjsKKzJBMzUgMDAzRjsKKzJBNDQgMDAzRjsKKzJBNTMgMDAzRjsKKzJBNjIgMDAzRjsKKzJBNzEgMDAzRjsKKzJBODMgMDAzRjsKKzJBOTIgMDAzRjsKKzJBQTEgMDAzRjsKKzJBQjAgMDAzRjsKKzJBQkYgMDAzRjsKKzJBQ0UgMDAzRjsKKzJBREQgMDAyMTsKKzJBRUIgMDAzRjsKKzJBRkEgMDAzRjsKKzJCMDkgMDAzRjsKKzJDRTkgMDAzRjsKKzI4MEQgMDAzRjsKKzI4MUMgMDAzRjsKKzI4MkIgMDAzRjsKKzI4M0EgMDAzRjsKKzI4NDkgMDAzRjsKKzI4NTggMDAzRjsKKzI4NjcgMDAzRjsKKzI4NzYgMDAzRjsKKzI4ODUgMDAzRjsKKzI4OTQgMDAzRjsKKzI4QTMgMDAzRjsKKzI4QjIgMDAzRjsKKzI4QzEgMDAzRjsKKzI4RDAgMDAzRjsKKzI4REYgMDAzRjsKKzI4RUUgMDAzRjsKKzI4RkQgMDAzRjsKKzI2MzYgMDAzRjsKKzREQ0QgMDAzRjsKKzREREMgMDAzRjsKKzRERUIgMDAzRjsKKzRERkEgMDAzRjsKKzFEMzA5IDAwM0Y7CisxRDMxOCAwMDNGOworMUQzMjcgMDAzRjsKKzFEMzM2IDAwM0Y7CisxRDM0NSAwMDNGOworMUQzNTQgMDAzRjsKK0E0OUMgMDAzRjsKK0E0QUIgMDAzRjsKK0E0QkEgMDAzRjsKKzEwMTM5IDAwM0Y7CisxMDE4MSAwMDNGOworMUQwMDYgMDAzRjsKKzFEMDE1IDAwM0Y7CisxRDAyNCAwMDNGOworMUQwMzMgMDAzRjsKKzFEMDQyIDAwM0Y7CisxRDA1MSAwMDNGOworMUQwNjAgMDAzRjsKKzFEMDZGIDAwM0Y7CisxRDA3RSAwMDNGOworMUQwOEQgMDAzRjsKKzFEMDlDIDAwM0Y7CisxRDBBQiAwMDNGOworMUQwQkEgMDAzRjsKKzFEMEM5IDAwM0Y7CisxRDBEOCAwMDNGOworMUQwRTcgMDAzRjsKKzFEMTAwIDAwM0Y7CisxRDEwRiAwMDNGOworMUQxMUUgMDAzRjsKKzFEMTJEIDAwM0Y7CisxRDEzQyAwMDNGOworMUQxNEIgMDAzRjsKKzFEMTU4IDAzMzQgMUQxNjU7CisxRDE1OCAwMDNGOworMUQxOEQgMDAzRjsKKzFEMTlDIDAwM0Y7CisxRDFBRiAwMDNGOworMUQxQjkgMDAyMTsKKzFEMUMyIDAwM0Y7CisxRDFEMSAwMDNGOworMUQyMDIgMDAzRjsKKzFEMjExIDAwM0Y7CisxRDIyMCAwMDNGOworMUQyMkYgMDAzRjsKKzFEMjNFIDAwM0Y7CisyRkZBIDAwM0Y7CiszMUNEIDAwM0Y7CitGRkZEIDAwM0Y7CisxMzdCIDAwM0Y7CisxMDExNiAwMDNGOworMTAxMjUgMDAzRjsKKzEwMTQwIDAwM0Y7CisxMDE1MyAwMDNGOworMTAxNkEgMDAzRjsKKzEwM0Q0IDAwM0Y7CiswMzAyIDAwM0Y7CiswMzBEIDAwMjE7CiswMzFFIDAwMjE7CiswMzJGIDAwMjE7CiswMzM0IDA1QTc7CiswMzM0IDA2RTQ7CiswMzM0IDFEMTdGOworMDU5RCAwMzM0OworMDZEOCAwMzM0OworMUQxNjcgMDMzNDsKKzFEMjQ0IDAzMzQ7CiswMzM0IDAzMDg7CiswMzM0IDAzMTE7CiswMzM0IDAzMjI7CiswMzM0IDAzMzk7CiswMzM0IDAzNEQ7CiswMzM0IDAzNUQ7CiswMzM0IDA0ODY7CiswNUJDIDAzMzQ7CiswNjU3IDAzMzQ7CiswNzM1IDAzMzQ7CiswNzQ0IDAzMzQ7CiswQjNDIDAzMzQ7CisxMDM3IDAzMzQ7CisyMEQxIDAzMzQ7CiswMzM5IDAwMjE7CiswMzREIDAwMjE7CiswMzVEIDAwMjE7CiswNDg2IDAwMjE7CiswNUJDIDAwMjE7CitGRTc4IDAwMjE7CitGQzYzIDAwMjE7CiswNjVFIDAwMjE7CiswNzNDIDAwMjE7CiswOTNDIDAwMjE7CiswQTAzIDAwMjE7CiswQ0JDIDAwMjE7CiswRTRFIDAwM0Y7CiswRjdFIDAwM0Y7CisxN0NGIDAwM0Y7CitGRjlFIDAwM0Y7CisyMERBIDAwM0Y7CisyMEU4IDAwMjE7CiszMDA1IDAwMjE7CiszMDM1IDAwMjE7CiszMEZEIDAzMzQgMzA5OTsKK0ZFNjkgMDAyMTsKK0ZGRTUgMDA2MjsKKzBFM0YgMDA2MjsKKzIwQTQgMDA2MjsKKzIwQUEgMDA2MjsKKzIwQjAgMDA2MjsKKzFEN0NFIDAwMjE7CiswQUU2IDAwMjE7CisxODEwIDAwMjE7CiswNkYwIDAwNjE7CiswRjIwIDAwNjE7CiswOTY2IDAwNjI7CisyNDc0IDAwMjE7CiswNjYxIDAwMjE7CisxOUQxIDAwMjE7CisxMDMyMCAwMDIxOworMjRGRSAwMDQxOworMjQ2QSAwMDIxOworMzM2MyAwMDYyOworMzNFQiAwMDYyOworMjE1MyAwMDQxOworMjQ2RCAwMDYxOworMjE1NSAwMDNGOworMjQ2RiAwMDIxOworMzM2OCAwMDYyOworMzM2OSAwMDYyOworMzNGMSAwMDYyOworMzNGMiAwMDYyOworMjRGNSAwMDQxOworMEJFNyAwMDYxOworMTAxMDcgMDA2MTsKKzAwQjkgMDA2MjsKKzEwMTU4IDAwNjI7CisxRDdEQSAwMDIxOworMTA0QTIgMDAzRjsKKzBGMjIgMDAzRjsKKzI0ODcgMDAzRjsKKzMyNTEgMDA0MTsKKzIxNTQgMDAzRjsKKzMzNzAgMDA0MTsKKzMyNTcgMDA0MTsKK0ZGMTIgMDA0MTsKKzA2NjIgMDA0MTsKKzE5RDIgMDA0MTsKKzEwM0QyIDAwNDE7CiswQzY4IDAwNjI7CiszMkMxIDAwNjI7CisyNEY3IDAwM0Y7CiswQzY5IDAwMjE7CisxMEE0MiAwMDIxOworMzI1RCAwMDQxOworMzJCMiAwMDQxOworMUQ3RDEgMDA0MTsKKzA5RTkgMDA0MTsKKzEwNDMgMDA0MTsKKzA2RjMgMDA2MjsKKzMzRTIgMDA2MjsKKzI0RjggMDAyMTsKKzBBRUEgMDAzRjsKKzE4MTQgMDAzRjsKKzMyQjkgMDA0MTsKKzMyQkUgMDA0MTsKKzIwNzQgMDA2MTsKKzBENkEgMDA2MTsKKzI0NzcgMDA2MjsKKzBFNTQgMDA2MjsKKzI0NzggMDAyMTsKKzA2RjUgMDAyMTsKKzBFRDUgMDAyMTsKKzMyQkYgMDAyMTsKKzFEN0U3IDAwNDE7CiswQTZCIDAwNDE7CisxN0Y1IDAwNDE7CisyNzdBIDAwNjI7CisxMDE0MyAwMDYyOworMUQ3REUgMDAyMTsKKzEwNEE2IDAwM0Y7CiswRjJGIDAwM0Y7CisxRDdGQyAwMDQxOworMEFFQyAwMDQxOworMTgxNiAwMDQxOworMEJFQyAwMDYyOworMzM1RSAwMDYyOworMjA3NyAwMDNGOworMTk0RCAwMDNGOworRkYxNyAwMDYxOworMDY2NyAwMDYxOworMEU1NyAwMDYxOworMjRGQiAwMDYyOworMTAxMEQgMDA2MjsKKzFEN0UwIDAwM0Y7CiswQTZFIDAwMjE7CisxN0Y4IDAwMjE7CisyNzkxIDAwNjE7CiswQzZFIDAwNjE7CiswMDM4IDAwNjI7CisxOUQ4IDAwNjI7CisyNDdDIDAwMjE7CiswNkY5IDAwMjE7CiswRUQ5IDAwMjE7CisxRDdGRiAwMDYxOworMDlFRiAwMDYxOworMTdFOSAwMDYxOworMDk2RiAwMDYyOworMzJDOCAwMDYyOworMTY4MCAwMDYxOworMUZDRSAwMDYxOworRkUzMiAwMDYxOworMDM3RSAwMDYxOworMTZFRCAwMDYxOworMjAyNCAwMDYxOworMTM2MCAwMDYxOworMjAxQyAwMDYxOworRkY1QiAwMDYxOworMjk5MCAwMDYxOworRkU0MSAwMDYxOworMDBCNiAwMDYxOworMDY2QSAwMDYxOworMkUwMSAwMDYxOworMERGNCAwMDYxOworMTY2RCAwMDYxOworMDJENiAwMDYxOworMTM5MCAwMDYxOworQTcxNCAwMDYxOworMEYxQSAwMDYxOworMTlFNCAwMDYxOworMjExNCAwMDYxOworMjE5NSAwMDYxOworMjFCNiAwMDYxOworMjFENCAwMDYxOworMjFGMiAwMDYxOworMUQ3NkYgMDA2MTsKKzIwN0MgMDA2MTsKKzIyMUMgMDA2MTsKKzIyMzkgMDA2MTsKKzIyNTYgMDA2MTsKKzIyNzcgMDA2MTsKKzIyRTMgMDA2MTsKKzIyQjAgMDA2MTsKKzIyQ0EgMDA2MTsKKzIyRjAgMDA2MTsKKzIzMEUgMDA2MTsKKzIzMkUgMDA2MTsKKzIzNEMgMDA2MTsKKzIzNkEgMDA2MTsKKzIzODggMDA2MTsKKzIzQTYgMDA2MTsKKzIzQzQgMDA2MTsKKzI0MDYgMDA2MTsKKzI0MjQgMDA2MTsKKzI1MEYgMDA2MTsKKzI1MkQgMDA2MTsKKzI1NEIgMDA2MTsKKzI1NjkgMDA2MTsKKzI1ODcgMDA2MTsKKzI1QTQgMDA2MTsKKzI1QzIgMDA2MTsKKzI1REYgMDA2MTsKKzI1RkQgMDA2MTsKKzI2MUIgMDA2MTsKKzI2NDEgMDA2MTsKKzI2NUYgMDA2MTsKKzI2ODAgMDA2MTsKKzI2QTcgMDA2MTsKKzI3MTcgMDA2MTsKKzI3MzYgMDA2MTsKKzI3NUEgMDA2MTsKKzI3OUIgMDA2MTsKKzI3QkEgMDA2MTsKKzI3RTIgMDA2MTsKKzI5MDQgMDA2MTsKKzI5MjIgMDA2MTsKKzI5NDAgMDA2MTsKKzI5NUUgMDA2MTsKKzI5N0MgMDA2MTsKKzI5QjAgMDA2MTsKKzI5Q0UgMDA2MTsKKzI5RUMgMDA2MTsKKzJBMEQgMDA2MTsKKzJBMkIgMDA2MTsKKzJBNDkgMDA2MTsKKzJBNjcgMDA2MTsKKzJBODggMDA2MTsKKzJBQTYgMDA2MTsKKzJBQzQgMDA2MTsKKzJBRTIgMDA2MTsKKzJCMDAgMDA2MTsKKzI4MDQgMDA2MTsKKzI4MjIgMDA2MTsKKzI4NDAgMDA2MTsKKzI4NUUgMDA2MTsKKzI4N0MgMDA2MTsKKzI4OUEgMDA2MTsKKzI4QjggMDA2MTsKKzI4RDYgMDA2MTsKKzI4RjQgMDA2MTsKKzREQzQgMDA2MTsKKzRERTIgMDA2MTsKKzFEMzAwIDAwNjE7CisxRDMxRSAwMDYxOworMUQzM0MgMDA2MTsKK0E0OTMgMDA2MTsKK0E0QjEgMDA2MTsKKzEwMTNGIDAwNjE7CisxRDAwQyAwMDYxOworMUQwMkEgMDA2MTsKKzFEMDQ4IDAwNjE7CisxRDA2NiAwMDYxOworMUQwODQgMDA2MTsKKzFEMEEyIDAwNjE7CisxRDBDMCAwMDYxOworMUQwREUgMDA2MTsKKzFEMTA2IDAwNjE7CisxRDEyNCAwMDYxOworMUQxNDIgMDA2MTsKKzFEMTU5IDAwNjE7CisxRDFBMCAwMDYxOworMUQxQzIgMDA2MTsKKzFEMjAyIDAwNjE7CisxRDIyMCAwMDYxOworMUQyM0UgMDA2MTsKKzMxQ0QgMDA2MTsKKzEzN0IgMDA2MTsKKzEwMTI1IDAwNjE7CisxMDE1MyAwMDYxOworMTAzRDQgMDA2MTsKKzAwMUQgMDA2MTsKKzAwOUIgMDA2MTsKKzA1QTcgMDA2MTsKKzA2REUgMDA2MTsKKzIwMEUgMDA2MTsKK0ZFMDAgMDA2MTsKKzFEMTZEIDAwNjE7CisxRDFBQiAwMDYxOworREZGRkUgMDA2MTsKK0UwMDNCIDAwNjE7CitFMDA1OSAwMDYxOworRTAwNzcgMDA2MTsKK0UwMTE1IDAwNjE7CitFMDEzMyAwMDYxOworRTAxNTEgMDA2MTsKK0UwMTZGIDAwNjE7CitFMDE4RCAwMDYxOworRTAxQUIgMDA2MTsKK0UwMUM5IDAwNjE7CitFMDFFNyAwMDYxOworMUQ1RUUgMDAyMTsKKzIwMDEgMDA0MTsKK0ZFNEMgMDA0MTsKKzMwOUIgMDA0MTsKKzA2MEMgMDA0MTsKKzA3MDcgMDA0MTsKKzA1NUUgMDA0MTsKKzAzODcgMDA0MTsKKzEwMTAyIDAwNDE7CisyMDhFIDAwNDE7CisyOTg1IDAwNDE7CisyRTFDIDAwNDE7CitGRTNBIDAwNDE7CitGRTY4IDAwNDE7CisyMDM2IDAwNDE7CiswNUJFIDAwNDE7CiswRjEwIDAwNDE7CiswMkM3IDAwNDE7CiswMkYzIDAwNDE7CitBNzA3IDAwNDE7CiswQkZBIDAwNDE7CiswRkM0IDAwNDE7CisxOUY1IDAwNDE7CisyMTRDIDAwNDE7CisyMUE4IDAwNDE7CisyMUM3IDAwNDE7CisyMUU1IDAwNDE7CisxRDZEQiAwMDQxOworRkIyOSAwMDQxOworRkY1RSAwMDQxOworMjIyQyAwMDQxOworMjI0QSAwMDQxOworMjI2NiAwMDQxOworMjI4OCAwMDQxOworMjJBQyAwMDQxOworMjJCRCAwMDQxOworMjJEQiAwMDQxOworMjMwMSAwMDQxOworMjMxRiAwMDQxOworMjMzRiAwMDQxOworMjM1RCAwMDQxOworMjM3QiAwMDQxOworMjM5OSAwMDQxOworMjNCNyAwMDQxOworMjNENSAwMDQxOworMjQxNyAwMDQxOworRkZFOCAwMDQxOworMjUyMCAwMDQxOworMjUzRSAwMDQxOworMjU1QyAwMDQxOworMjU3QSAwMDQxOworMjU5OCAwMDQxOworMjVCNSAwMDQxOworMjVEMiAwMDQxOworMjVGMCAwMDQxOworMjYwRSAwMDQxOworMjYyQyAwMDQxOworMjY1MiAwMDQxOworMjY3MyAwMDQxOworMjY5NyAwMDQxOworMjcwOCAwMDQxOworMjcyOSAwMDQxOworMjc0NyAwMDQxOworMjc2RCAwMDQxOworMjdBQyAwMDQxOworMjdENSAwMDQxOworMjdGNyAwMDQxOworMjkxNSAwMDQxOworMjkzMyAwMDQxOworMjk1MSAwMDQxOworMjk2RiAwMDQxOworMjlBMyAwMDQxOworMjlDMSAwMDQxOworMjlERiAwMDQxOworMjlGRiAwMDQxOworMkExRSAwMDQxOworMkEzQyAwMDQxOworMkE1QSAwMDQxOworMkE3QiAwMDQxOworMkE5OSAwMDQxOworMkFCNyAwMDQxOworMkFENSAwMDQxOworMkFGMyAwMDQxOworMkIxMSAwMDQxOworMjgxNSAwMDQxOworMjgzMyAwMDQxOworMjg1MSAwMDQxOworMjg2RiAwMDQxOworMjg4RCAwMDQxOworMjhBQiAwMDQxOworMjhDOSAwMDQxOworMjhFNyAwMDQxOworMjY4RiAwMDQxOworNERENSAwMDQxOworNERGMyAwMDQxOworMUQzMTEgMDA0MTsKKzFEMzJGIDAwNDE7CisxRDM0RCAwMDQxOworQTRBNCAwMDQxOworQTRDMiAwMDQxOworMTAxODkgMDA0MTsKKzFEMDFEIDAwNDE7CisxRDAzQiAwMDQxOworMUQwNTkgMDA0MTsKKzFEMDc3IDAwNDE7CisxRDA5NSAwMDQxOworMUQwQjMgMDA0MTsKKzFEMEQxIDAwNDE7CisxRDBFRiAwMDQxOworMUQxMTcgMDA0MTsKKzFEMTM1IDAwNDE7CisxRDE1MyAwMDQxOworMUQxOTMgMDA0MTsKKzFEMUI1IDAwNDE7CisxRDFEMyAwMDQxOworMUQyMTMgMDA0MTsKKzFEMjMxIDAwNDE7CiszMUMwIDAwNDE7CiswOUY5IDAwNDE7CisxMDExOCAwMDQxOworMTAxNDQgMDA0MTsKKzEwMTZDIDAwNDE7CiswMDEwIDAwNDE7CiswMDhFIDAwNDE7CiswNTlBIDAwNDE7CiswNjExIDAwNDE7CiswRjM3IDAwNDE7CitEODAwIDAwNDE7CitGRTIzIDAwNDE7CisxRDE3RSAwMDQxOworNkZGRkYgMDA0MTsKK0UwMDJFIDAwNDE7CitFMDA0QyAwMDQxOworRTAwNkEgMDA0MTsKK0UwMTA4IDAwNDE7CitFMDEyNiAwMDQxOworRTAxNDQgMDA0MTsKK0UwMTYyIDAwNDE7CitFMDE4MCAwMDQxOworRTAxOUUgMDA0MTsKK0UwMUJDIDAwNDE7CitFMDFEQSAwMDQxOworMUQ0MDAgMDAyMTsKKzAwQUEgMDAzRjsKKzFFQjMgMDAyMTsKKzAwQzUgMDAyMTsKKzAxMDQgMDAyMTsKKzFFMDEgMDAyMTsKKzAwNDEgMDMwNiAwMzM0IDAzMDE7CiswMEUyIDAzMzQ7CiswMEUyIDAzMDkgMDMzNDsKKzAwNDEgMDMwOCAwMzM0OworMDIyNiAwMzM0IDAzMDQ7CiswMjAyIDAzMzQ7CiswMzMyIDAwNDE7CiswMzBCIDAwNDE7CiswMzE1IDAwNDE7CiswMzI0IDAwNDE7CiswMzM1IDAwNDE7CiswMzRBIDAwNDE7CiswMzVBIDAwNDE7CiswNDgzIDAwNDE7CiswNUJCIDAwNDE7CitGRTc2IDAwNDE7CitGQzVGIDAwNDE7CiswNjVCIDAwNDE7CiswNzM5IDAwNDE7CiswNzQ4IDAwNDE7CiswQTNDIDAwNDE7CiswQzAxIDAwNDE7CisxMEEzOSAwMDQxOworMEVDRCAwMDQxOworMTdDRCAwMDQxOworMzAyRiAwMDQxOworMjBEQSAwMDQxOworMjBFOSAwMDQxOworMUQ0RUEgMDA0MTsKKzFENDY4IDAwNDE7CiswMTAzIDAwNDE7CisxRUE2IDAwNDE7CiswMURFIDAwNDE7CiswMjAzIDAwNDE7CisxRDU4NiAwMDYyOworMDBDMCAwMDYyOworMDFERiAwMDYyOworMjEwMCAwMDYyOworMDBFNiAwMDQxOworMjEwMSAwMDIxOworMUQwMSAwMDIxOworMDI1MSAwMDQxOworMjAwMCAwMDYyOworRkU0QiAwMDYyOworMUZDMCAwMDYyOworMDU1RCAwMDYyOworMDcwNiAwMDYyOworMDBCRiAwMDYyOworMDBCNyAwMDYyOworMTAxMDEgMDA2MjsKKzIwN0UgMDA2MjsKKzI5ODQgMDA2MjsKKzJFMEQgMDA2MjsKKzMwMTUgMDA2MjsKKzAwNUMgMDA2MjsKKzIwMzcgMDA2MjsKKzA1NUYgMDA2MjsKKzBGMEYgMDA2MjsKKzAyQzYgMDA2MjsKKzAyRjIgMDA2MjsKK0E3MDYgMDA2MjsKKzBCRjggMDA2MjsKKzBGQzMgMDA2MjsKKzE5RjQgMDA2MjsKKzIxNEEgMDA2MjsKKzIxQTcgMDA2MjsKKzIxQzYgMDA2MjsKKzIxRTQgMDA2MjsKKzIyMDIgMDA2MjsKKzIwOEEgMDA2MjsKKzAwN0UgMDA2MjsKKzIyMkQgMDA2MjsKKzIyNDkgMDA2MjsKKzIyNzEgMDA2MjsKKzIyODYgMDA2MjsKKzIyQTIgMDA2MjsKKzIyQkMgMDA2MjsKKzIyREEgMDA2MjsKKzIzMDAgMDA2MjsKKzIzMUUgMDA2MjsKKzIzM0UgMDA2MjsKKzIzNUMgMDA2MjsKKzIzN0EgMDA2MjsKKzIzOTggMDA2MjsKKzIzQjYgMDA2MjsKKzIzRDQgMDA2MjsKKzI0MTYgMDA2MjsKKzI1MDIgMDA2MjsKKzI1MUYgMDA2MjsKKzI1M0QgMDA2MjsKKzI1NUIgMDA2MjsKKzI1NzkgMDA2MjsKKzI1OTcgMDA2MjsKKzI1QjQgMDA2MjsKKzI1RDEgMDA2MjsKKzI1RUYgMDA2MjsKKzI2MEQgMDA2MjsKKzI2MkIgMDA2MjsKKzI2NTEgMDA2MjsKKzI2NzIgMDA2MjsKKzI2OTYgMDA2MjsKKzI3MDcgMDA2MjsKKzI3MjcgMDA2MjsKKzI3NDYgMDA2MjsKKzI3NkMgMDA2MjsKKzI3QUIgMDA2MjsKKzI3RDQgMDA2MjsKKzI3RjYgMDA2MjsKKzI5MTQgMDA2MjsKKzI5MzIgMDA2MjsKKzI5NTAgMDA2MjsKKzI5NkUgMDA2MjsKKzI5QTIgMDA2MjsKKzI5QzAgMDA2MjsKKzI5REUgMDA2MjsKKzI5RkUgMDA2MjsKKzJBMUQgMDA2MjsKKzJBM0IgMDA2MjsKKzJBNTkgMDA2MjsKKzJBN0EgMDA2MjsKKzJBOTggMDA2MjsKKzJBQjYgMDA2MjsKKzJBRDQgMDA2MjsKKzJBRjIgMDA2MjsKKzJCMTAgMDA2MjsKKzI4MTQgMDA2MjsKKzI4MzIgMDA2MjsKKzI4NTAgMDA2MjsKKzI4NkUgMDA2MjsKKzI4OEMgMDA2MjsKKzI4QUEgMDA2MjsKKzI4QzggMDA2MjsKKzI4RTYgMDA2MjsKKzI2OEUgMDA2MjsKKzRERDQgMDA2MjsKKzRERjIgMDA2MjsKKzFEMzEwIDAwNjI7CisxRDMyRSAwMDYyOworMUQzNEMgMDA2MjsKK0E0QTMgMDA2MjsKK0E0QzEgMDA2MjsKKzEwMTg4IDAwNjI7CisxRDAxQyAwMDYyOworMUQwM0EgMDA2MjsKKzFEMDU4IDAwNjI7CisxRDA3NiAwMDYyOworMUQwOTQgMDA2MjsKKzFEMEIyIDAwNjI7CisxRDBEMCAwMDYyOworMUQwRUUgMDA2MjsKKzFEMTE2IDAwNjI7CisxRDEzNCAwMDYyOworMUQxNTIgMDA2MjsKKzFEMTkyIDAwNjI7CisxRDFCNCAwMDYyOworMUQxRDIgMDA2MjsKKzFEMjEyIDAwNjI7CisxRDIzMCAwMDYyOworMkZGQiAwMDYyOworMDlGOCAwMDYyOworMTAxMTcgMDA2MjsKKzEwMTQxIDAwNjI7CisxMDE2QiAwMDYyOworMDAwRiAwMDYyOworMDA4RCAwMDYyOworMDU5OSAwMDYyOworMDYxMCAwMDYyOworMEYzNSAwMDYyOworMjA2RiAwMDYyOworRkUyMSAwMDYyOworMUQxN0QgMDA2MjsKKzZGRkZFIDAwNjI7CitFMDAyRCAwMDYyOworRTAwNEIgMDA2MjsKK0UwMDY5IDAwNjI7CitFMDEwNyAwMDYyOworRTAxMjUgMDA2MjsKK0UwMTQzIDAwNjI7CitFMDE2MSAwMDYyOworRTAxN0YgMDA2MjsKK0UwMTlEIDAwNjI7CitFMDFCQiAwMDYyOworRTAxRDkgMDA2MjsKK0ZGNDIgMDAzRjsKKzI0RDEgMDAzRjsKKzFENjcxIDAwM0Y7CisxRTA0IDAzMzQ7CiswMzA5IDAwNjI7CiswMzJFIDAwNjI7CiswMzU0IDAwNjI7CiswNUI1IDAwNjI7CitGQ0YzIDAwNjI7CiswNzMzIDAwNjI7CiswOTUzIDAwNjI7CiswRDgzIDAwNjI7CisxN0M3IDAwNjI7CisyMEQ0IDAwNjI7CisxRDQxQiAwMDYxOworRkYyMiAwMDYxOworMUQ0NyAwMDYxOworMUQ1NTMgMDA2MjsKKzFFMDcgMDA2MjsKKzFENkMgMDA0MTsKK0ZGNDMgMDAzRjsKKzFENjI0IDAwM0Y7CisxRDQ2QSAwMDNGOworMDBFNyAwMDNGOworMDA0MyAwMzA3IDAzMzQ7CisxRDQ1MCAwMDYxOworRkYyMyAwMDQxOworMUQ2NzIgMDA0MTsKKzMzODggMDAzRjsKKzFENDM2IDAwNjI7CiszM0M1IDAwM0Y7CiszM0M3IDAwNjE7CiswMTg3IDAwNjE7CisxRDUyMSAwMDIxOworMjE0NSAwMDIxOworMUQ0OCAwMDIxOworMDEwRiAwMzM0OworMUUwRiAwMzM0OworMUQ0QjkgMDA2MTsKKzIxNkUgMDA2MTsKKzI0QjkgMDA2MTsKKzFFMEUgMDA2MTsKKzFENTg5IDAwNjI7CiswMTBFIDAwNjI7CiszMzc4IDAwM0Y7CiswMUYyIDAwNjE7CisxRDA1IDAwNDE7CiswMThBIDAwM0Y7CitGRjQ1IDAwM0Y7CisxRDYyNiAwMDNGOworMUQ1QTQgMDAzRjsKKzFFQkYgMDAzRjsKKzAxMTYgMDAzRjsKKzAyMDUgMDAzRjsKKzAwNDUgMDM0MSAwMzM0OworMDA2NSAwMzAyIDAzMzQgMDMwMDsKKzAwNjUgMDMzNCAwMzA4OworMUUxQyAwMzM0OworMDA2NSAwMzM0IDAzMDk7CiswMENBIDAzMzQgMDMyMzsKKzFENTU2IDAwNjE7CisxRDQ2QyAwMDYxOworMUQzMSAwMDQxOworMUVDMyAwMDQxOworMDExOCAwMDQxOworMUVDNyAwMDQxOworMDA0NSAwMDYyOworMUVDMCAwMDYyOworMDIwNiAwMDYyOworMDFERCAwMDNGOworMDI1OSAwMDYyOworMUQ5MyAwMDNGOworMUQwOCAwMDNGOworMDA2NiAwMDNGOworMUQ2OEYgMDAzRjsKKzFENUE1IDAwM0Y7CisxRDUyMyAwMDYxOworMUQ0MDUgMDA2MTsKKzFFMUYgMDA0MTsKKzFENDM5IDAwNjI7CitGQjAxIDAwMjE7CiswMTkyIDAwMjE7CisxRDQyMCAwMDNGOworMUQ2NzYgMDAyMTsKKzAxMUMgMDAyMTsKKzAwNDcgMDMzNCAwMzA2OworMDA0NyAwMzM0IDAzMDQ7CisxRDVGNCAwMDQxOworMUQ1NzIgMDA0MTsKKzAxMjAgMDA2MTsKKzFENjkwIDAwNjI7CiswMTIxIDAwNjI7CisxREEyIDAwNjE7CiswMjYwIDAwM0Y7CiswMkUwIDAwNDE7CisxRDVDMSAwMDIxOworMUQ0RDcgMDAyMTsKKzAyMUYgMDAyMTsKKzAwNDggMDMzNCAwMzAyOworMDA0OCAwMzM0IDAzMjM7CisxRDRCRCAwMDYxOworMjEwQyAwMDYxOworMzNDQSAwMDNGOworMUUyQSAwMDQxOworMDA0OCAwMDYyOworMUUyQiAwMDYyOworMDI5QyAwMDYyOworMDJCQiAwMDYyOworMUQ2OTIgMDAyMTsKKzFENTQwIDAwMjE7CiswMENEIDAwMjE7CiswMTMwIDAwMjE7CiswMDY5IDAzMDEgMDMzNDsKKzAxRDAgMDMzNDsKKzAwNDkgMDMyOCAwMzM0OworMDA0OSAwMzIzIDAzMzQ7CisxRDU4RSAwMDYxOworMjExMSAwMDYxOworMUQ2MiAwMDQxOworMUUyRSAwMDQxOworMUVDQSAwMDQxOworMjExMSAwMDYyOworMDEyOSAwMDYyOworMjE2MiAwMDNGOworMjE2MyAwMDNGOworMURBNiAwMDNGOworMDE5NyAwMDYyOworMDE5NiAwMDYyOworMUQ0OEIgMDAzRjsKKzFENDA5IDAwM0Y7CiswMTM0IDAzMzQ7CisxRDUyNyAwMDQxOworMUQ0QTUgMDA0MTsKKzFENEYzIDAwNjI7CiswMUYwIDAwNjI7CiswMjVGIDAwNjE7CisxRDQyNCAwMDNGOworMUQ1REUgMDAyMTsKKzAxRTggMDAzRjsKKzAxMzcgMDMzNDsKKzFENTI4IDAwNjE7CisxRDQzRSAwMDYxOworMzM4NCAwMDNGOworMUQ0NTggMDA2MjsKKzFENEYgMDA2MjsKKzMzOTEgMDA0MTsKKzMzOUUgMDA2MjsKKzFEMEIgMDA0MTsKKzIxMTMgMDAyMTsKKzAwNEMgMDAyMTsKKzFENjQ3IDAwM0Y7CisxRTNDIDAwMjE7CiswMDRDIDAzMzQgMDMyMzsKKzAwNkMgMDA2MTsKKzFENTkxIDAwNDE7CisxRDQ3MyAwMDQxOworMUUzNiAwMDYxOworMUQ0QzEgMDA2MjsKKzAxM0EgMDA2MjsKKzAxQzkgMDA2MjsKKzMzRDMgMDA2MTsKKzAyM0QgMDA0MTsKKzFEQTkgMDA0MTsKKzIxN0YgMDAyMTsKKzI0REMgMDAzRjsKKzFENjE0IDAwM0Y7CiswMDZEIDAzMzQgMDMwNzsKKzI0QTggMDA0MTsKKzI0REMgMDA0MTsKKzFENjE0IDAwNDE7CisyMTdGIDAwNjI7CisxRDY3QyAwMDYyOworMzNENSAwMDIxOworMzNBQiAwMDIxOworMzNCRCAwMDIxOworMDI3MSAwMDIxOworMUQ0NUIgMDAzRjsKKzFENjdEIDAwMjE7CiswMTQ3IDAwMjE7CiswMDRFIDAzMDEgMDMzNDsKKzAwNkUgMDMyNyAwMzM0OworMUQ0MjcgMDA2MTsKK0ZGMkUgMDA2MTsKKzIwN0YgMDA2MTsKKzFFNDcgMDA2MTsKKzFENjk3IDAwNjI7CiswMTQ2IDAwNjI7CiszMzlBIDAwNjE7CisxREIwIDAwNDE7CiswMjcyIDAwNjI7CiswMjM1IDAwNjE7CisxRDRGOCAwMDIxOworMUQ0NzYgMDAyMTsKKzIwOTIgMDAyMTsKKzFFRDYgMDAyMTsKKzFFNEYgMDAyMTsKKzAwRDggMDMzNCAwMzQxOworMDIwRiAwMDIxOworMUVDQyAwMDIxOworMDBGNCAwMzM0OworMDBGNCAwMzA5IDAzMzQ7CiswMDRGIDAzMzQgMDMwQjsKKzAwRDUgMDMzNCAwMzA0OworMDA2RiAwMzA0IDAzMzQ7CiswMjBEIDAzMzQ7CiswMDRGIDAzMzQgMDM0MCAwMzFCOworMDA0RiAwMzM0IDAzMjM7CisxRDYzMCAwMDYxOworMUQ1QUUgMDA2MTsKKzAwRDMgMDA2MTsKKzAxRDIgMDA2MTsKKzAyMkMgMDA2MTsKKzFFNTMgMDA2MTsKKzFFREMgMDA2MTsKKzFENEY4IDAwNjI7CiswMEYzIDAwNjI7CiswMjJEIDAwNjI7CisxRUREIDAwNjI7CisxRDBGIDAwNDE7CiswMTg2IDAwNjE7CisxRDE2IDAwNjI7CiswMjc3IDAwNDE7CisxRDQ5MSAwMDIxOworMjExOSAwMDIxOworMUQzRSAwMDIxOworMUQ0MjkgMDA2MTsKK0ZGMzAgMDA2MTsKKzFENTYgMDA2MTsKKzFENTJEIDAwNjI7CisxRTU2IDAwNjI7CiszM0RBIDAwNjI7CisxRDdEIDAwNjI7CisxREIyIDAwNjI7CisxRDYzMiAwMDNGOworMUQ1QjAgMDAzRjsKKzFENEZBIDAwNDE7CisxRDQ0NCAwMDQxOworMDA1MSAwMDYyOworMDEzOCAwMDYyOworMUQ1Q0IgMDAzRjsKKzFENEUxIDAwM0Y7CiswMTU2IDAwM0Y7CiswMDcyIDAzMzQgMDMwQzsKKzAwNzIgMDMzNCAwMzIzOworMUQ0NUYgMDA2MTsKK0ZGMzIgMDA0MTsKKzAyQjMgMDA0MTsKKzFFNUIgMDA0MTsKKzFENDJCIDAwNjI7CiswMkIzIDAwNjI7CiswMjgwIDAwNjE7CisxRDFBIDAwNjI7CiswMjdEIDAwNjI7CisyNEFFIDAwMjE7CiswMDUzIDAwMjE7CisyNEM4IDAwMjE7CiswMTVFIDAwMjE7CiswMDczIDAzMDIgMDMzNDsKKzAwNTMgMDMzNCAwMzI3OworMDA3MyAwMDQxOworMUQ2OUMgMDA0MTsKKzFENjFBIDAwNDE7CisxRTYwIDAwNDE7CisxRDU2NCAwMDYyOworMDE1QyAwMDYyOworMDBERiAwMDQxOworMURCMyAwMDNGOworMUQ4QiAwMDQxOworMUQ0MkQgMDAyMTsKK0ZGMzQgMDAyMTsKKzFENTcgMDAyMTsKKzFFNkYgMDAyMTsKKzFFNkMgMDMzNDsKKzFENDYxIDAwNjE7CitGRjM0IDAwNDE7CisxRDU3IDAwNDE7CisxRTZGIDAwNDE7CisxRDU3RiAwMDYyOworMjEyMSAwMDNGOworMDJBNyAwMDNGOworMDFBQiAwMDNGOworMDIzNiAwMDNGOworMUQ0MkUgMDAzRjsKKzFENjUwIDAwMjE7CiswMEQ5IDAwM0Y7CiswMURBIDAwM0Y7CisxRTdBIDAwM0Y7CisxRUVEIDAwM0Y7CiswMDU1IDAzNDEgMDMzNDsKKzAwNTUgMDMwQSAwMzM0OworMDA1NSAwMzM0IDAzMDggMDMwQzsKKzAxNjggMDMzNCAwMzQxOworMDA1NSAwMzBGIDAzMzQ7CiswMUFGIDAzMzQgMDM0MDsKKzFFRTQgMDMzNDsKKzFENDYyIDAwNjE7CitGRjM1IDAwNDE7CisxRDU4IDAwNDE7CiswMEZDIDAwNDE7CisxRTc4IDAwNDE7CisxRUU5IDAwNDE7CisxRTc2IDAwNDE7CisxRDUxOCAwMDYyOworMDFEQSAwMDYyOworMUVFRCAwMDYyOworMUQxRCAwMDYyOworMUQ5OSAwMDQxOworMDE5QyAwMDYxOworMDFCMSAwMDYxOworMUQ1Q0YgMDAyMTsKKzFENEU1IDAwMjE7CisxRTdDIDAwMjE7CisxRDQyRiAwMDYxOworRkYzNiAwMDYxOworMjRDQiAwMDYxOworMUQ2NkIgMDA2MjsKKzIxNzUgMDA2MTsKKzMzREUgMDA2MjsKKzAyOEMgMDA2MTsKKzFENTM0IDAwM0Y7CisxRDRCMiAwMDNGOworMUU4NSAwMDIxOworMDE3NSAwMzM0OworMjRCMiAwMDQxOworMDA1NyAwMDQxOworMjRDQyAwMDQxOworMUU4OCAwMDQxOworMUQ2MUUgMDA2MjsKKzAyOEQgMDAzRjsKKzFENENEIDAwM0Y7CisxRDY4NyAwMDIxOworMUU4RCAwMzM0OworMUQ1RDEgMDA2MTsKKzFENEU3IDAwNjE7CisxRThDIDAwNjE7CisxRDQ3RiAwMDYyOworMjE2QiAwMDIxOworMUQ2NkUgMDAyMTsKKzFENUVDIDAwMjE7CiswMTc3IDAwM0Y7CiswMDc5IDAzMzQgMDMwMTsKKzAwNzkgMDMwMyAwMzM0OworMDA3OSAwMDYxOworMUQ2NkUgMDA0MTsKKzFENUVDIDAwNDE7CisxRThGIDAwNjE7CisxRDY2RSAwMDYyOworMUVGOCAwMDYyOworMUQ0MzMgMDAyMTsKK0ZGM0EgMDAyMTsKKzFEQkIgMDAyMTsKKzAwNUEgMDMwMSAwMzM0OworMUU5NSAwMzM0OworMUQ1OUYgMDA0MTsKKzFENEI1IDAwNDE7CisxRTkyIDAwNjE7CisxRDRCNSAwMDYyOworMUQyMiAwMDQxOworMDIyNSAwMDYyOworMDFCNyAwMDNGOworMUQyMyAwMDYxOworMDIxQyAwMDIxOworMDFCQiAwMDYxOworMDE4NCAwMDQxOworMDJFRSAwMDYxOworMUQyNCAwMDYxOworMDFDMCAwMDYxOworMDJBQyAwMDYxOworMUQ3NTYgMDAzRjsKKzFGODAgMDAyMTsKKzFGOEYgMDAyMTsKKzFGQjEgMDAyMTsKKzFGMDAgMDM0MCAwMzM0OworMDNCMSAwMzM0IDAzNDMgMDM0NTsKKzAzQjEgMDMxNCAwMzQwIDAzMzQ7CiswMzkxIDAzMzQgMDMxNCAwMzQ1IDAzNDI7CiswM0IxIDAzNDUgMDMzNCAwMzAwOworMUZCMyAwMDNGOworMUYwOCAwMDQxOworMUYwMSAwMDQxOworMUY4OSAwMDQxOworMUZCMyAwMDQxOworMUY4OCAwMDYyOworMUZCOSAwMDYyOworMUQ1RCAwMDNGOworMUQ1RCAwMDQxOworMUQ3NzIgMDAzRjsKKzFENkZFIDAwNDE7CisyMTNFIDAwNjI7CisxRDc1OSAwMDIxOworMUQ3MUYgMDA0MTsKKzFEN0FFIDAwMjE7CisxRjFDIDAwMjE7CiswM0I1IDAzMTMgMDMzNDsKKzAzQjUgMDMxNCAwMzM0IDAzMDE7CiswMzk1IDAzNDAgMDMzNDsKKzFENzIwIDAwNjE7CisxRjFCIDAwNjE7CisxRDc1QSAwMDYyOworMDNEQiAwMDIxOworMUQ2RTcgMDAzRjsKKzFENzAxIDAwNjI7CisxRDZFOCAwMDNGOworMUY5RSAwMDIxOworMUY5NyAwMDIxOworMDNCNyAwMzQzIDAzMzQ7CiswM0I3IDAzNDMgMDMwMCAwMzM0IDAzNDU7CisxRkNDIDAzMTMgMDMzNDsKKzFGMjkgMDM0MCAwMzM0OworMDM5NyAwMzE0IDAzNDUgMDMzNDsKKzFGQzYgMDMzNDsKKzFENkU4IDAwNjE7CisxRjI2IDAwNDE7CisxRjlCIDAwNDE7CisxRkM2IDAwNDE7CisxRjJFIDAwNjI7CisxRkM3IDAwNjI7CiswM0Y0IDAwM0Y7CisxRDcxNyAwMDYxOworMUQ3QTEgMDA2MTsKKzFENkYzIDAwNjI7CisxRDc5OCAwMDIxOworMUYzMyAwMDIxOworMDM5MCAwMDIxOworMUZCRSAwMzM0IDAzMTMgMDMwMDsKKzFGQkUgMDMxNCAwMzAwIDAzMzQ7CiswMzk5IDAzNDAgMDMzNDsKKzFGQkUgMDMzNCAwMzA4IDAzNDI7CisxRDc5OCAwMDYxOworMUYzMyAwMDYxOworMDM5MCAwMDYxOworMUYzMiAwMDYyOworMDNGMyAwMDNGOworMUQ2QjEgMDAyMTsKKzFENzc5IDAwNDE7CisxRDZFQiAwMDYyOworMUQ3MjYgMDAzRjsKKzFENzQwIDAwNjI7CisxRDZCMyAwMDIxOworMUQ3OUIgMDA2MTsKKzMzOEQgMDAzRjsKKzAzQkQgMDAzRjsKKzFENkNFIDAwNDE7CiswM0JFIDAwM0Y7CisxRDZDRiAwMDQxOworMDNCRiAwMDNGOworMUY0QyAwMDNGOworMDNCRiAwMzM0IDAzNDM7CiswM0JGIDAzMzQgMDMxNCAwMzAxOworMUZGOCAwMzM0OworMUY0NCAwMDQxOworMUZGOCAwMDQxOworMUZGOCAwMDYyOworMUQ2QjcgMDAyMTsKKzFENzFCIDAwNDE7CisxRDc3RiAwMDYyOworMDNERiAwMDYxOworMUQ2RDIgMDAzRjsKKzAzQzEgMDMzNCAwMzEzOworMUQ3ODAgMDA0MTsKKzFENzQ2IDAwNjI7CisxRDZEMyAwMDIxOworMUQ2RjQgMDAzRjsKKzAzQTMgMDA2MTsKKzFENkJBIDAwNjI7CisxRDc0OSAwMDNGOworMUQ2RjUgMDA2MTsKKzFENzRBIDAwM0Y7CisxRjU1IDAwM0Y7CisxRkU2IDAwM0Y7CiswM0M1IDAzNDMgMDM0MCAwMzM0OworMUY1MSAwMzQyIDAzMzQ7CisxRkU4IDAzMzQ7CisxRkU5IDAzMzQ7CisxRjU0IDAwNDE7CiswM0QzIDAwNDE7CisxRDZENiAwMDYyOworMUZFQSAwMDYyOworMUQ3MTkgMDAzRjsKKzFENzE5IDAwNjE7CisxRDYwIDAwNDE7CisxRDZEOCAwMDNGOworMUQ3NEMgMDA0MTsKKzFEN0E2IDAwNjI7CisxRDcxMyAwMDYxOworMUQ3MzMgMDA2MjsKKzFENkZBIDAwM0Y7CisxRkFFIDAwMjE7CisxRkE3IDAwMjE7CiswM0M5IDAzMzQgMDM0MzsKKzAzQzkgMDMxMyAwMzQ1IDAzMDAgMDMzNDsKKzIxMjYgMDM0NSAwMzM0IDAzMTM7CiswM0E5IDAzMzQgMDMxNCAwMzQwOworMUY2MSAwMzQ1IDAzMzQ7CiswM0M5IDAzNDIgMDMzNDsKKzIxMjYgMDA2MTsKKzFGQTIgMDA0MTsKKzFGNkIgMDA0MTsKKzFGRkEgMDA0MTsKKzFGNjIgMDA2MjsKKzFGRjQgMDA2MjsKKzJDODAgMDAyMTsKKzJDODYgMDAyMTsKKzJDOEEgMDAyMTsKKzJDOTAgMDAyMTsKKzJDRTQgMDA2MTsKKzJDOTggMDA0MTsKKzJDQkMgMDA0MTsKKzJDQTAgMDA0MTsKKzJDQTYgMDA0MTsKKzJDQUMgMDA0MTsKKzJDQkUgMDA0MTsKKzJDQzIgMDA0MTsKKzAzRTQgMDA0MTsKKzAzRTggMDA0MTsKKzJDQ0UgMDA0MTsKKzJDRDQgMDA0MTsKKzAzRUMgMDA0MTsKKzJDREMgMDA0MTsKKzJDQjQgMDA0MTsKKzJDRTIgMDA0MTsKKzA0RDAgMDMzNDsKKzA0RDIgMDMzNDsKKzA0REIgMDAyMTsKKzA0RDUgMDAzRjsKKzA0MzMgMDAzRjsKKzA0OTIgMDA0MTsKKzA0MTQgMDA0MTsKKzA1MDIgMDA0MTsKKzA0MzMgMDMwMSAwMDQxOworMDQzNSAwMDNGOworMDQ1MCAwMDQxOworMDQzNSAwNTkxIDAzMDYgMDA2MTsKKzA0QzIgMDAzRjsKKzA0REMgMDAzRjsKKzA0OTYgMDA0MTsKKzA0REUgMDAyMTsKKzA0NTUgMDA0MTsKKzA0NUQgMDAzRjsKKzA0MTggMDAwMSAwMzA2IDAwNjE7CiswNEU0IDAwM0Y7CiswNDA2IDAwNDE7CiswNDA3IDAwNDE7CiswNDE5IDAwNDE7CiswNDlCIDAwM0Y7CiswNDlGIDAwM0Y7CisxRDJCIDAwM0Y7CiswNTA4IDAwNjE7CiswNDNEIDAwNjE7CiswNEM4IDAwM0Y7CiswNTBCIDAwM0Y7CiswNDNFIDAzMzQgMDMwODsKKzA0RTggMDAwMSAwMzA4IDAwNjE7CiswNEVCIDAwNjI7CiswNDgwIDAwNDE7CiswNDIxIDAwNDE7CiswNDIyIDAwNDE7CiswNDBCIDAwNDE7CiswNDNBIDAzMDEgMDA0MTsKKzA0MjMgMDMwNCAwMzM0OworMDQ0MyAwMzM0IDAzMDY7CiswNDQzIDAzMzQgMDMwODsKKzA0NDMgMDMzNCAwMzBCOworMDRBRSAwMDYyOworMDQyNCAwMDYyOworMDRCQSAwMDYyOworMDQ3QyAwMDYyOworMDRCNCAwMDYyOworMDRGNSAwMDYxOworMDRDQiAwMDQxOworMDRCRSAwMDQxOworMDQyOSAwMDQxOworMDRGOCAwMDIxOworMDQ0QyAwMDQxOworMDQ0RCAwMDQxOworMDRFQyAwMDYxOworMDQ2NCAwMDNGOworMDQ2OCAwMDNGOworMDQ3MCAwMDNGOworMDQ3NyAwMDIxOworMDRBOSAwMDNGOworMkMwMSAwMDYxOworMkMwNCAwMDYxOworMkMwNyAwMDYxOworMkMwQSAwMDYxOworMkMwRCAwMDYxOworMkMxMCAwMDYxOworMkMxMyAwMDYxOworMkMxNiAwMDYxOworMkMxOSAwMDYxOworMkMxQyAwMDYxOworMkMxRiAwMDYxOworMkMyMiAwMDYxOworMkMyNSAwMDYxOworMkMyOCAwMDYxOworMkMyQiAwMDYxOworMkMyRSAwMDYxOworMTBBMSAwMDYxOworMTBBMyAwMDYxOworMTBBNSAwMDYxOworMTBDMSAwMDYxOworMTBBOCAwMDYxOworMTBBQSAwMDYxOworMkQwQyAwMDNGOworMkQwRCAwMDNGOworMkQwRiAwMDNGOworMkQxMSAwMDNGOworMkQyMyAwMDNGOworMkQxNCAwMDNGOworMkQxNiAwMDNGOworMkQxOCAwMDNGOworMkQxQSAwMDNGOworMkQxQyAwMDNGOworMkQxRSAwMDNGOworMkQxRiAwMDNGOworMkQyNSAwMDNGOworMTBGQSAwMDNGOworMDUzMyAwMDYxOworMDU2NiAwMDNGOworMDU2OSAwMDNGOworMDU2QyAwMDNGOworMDU2RiAwMDNGOworMDU3MiAwMDNGOworRkIxNCAwMDNGOworMDU3NiAwMDNGOworMDU3OSAwMDNGOworMDU3QyAwMDNGOworRkIxNiAwMDNGOworMDU1MSAwMDYxOworMDU1NCAwMDYxOworMDVEMCAwMDNGOworRkIzMCAwMDYxOworMjEzNiAwMDQxOworMjEzOCAwMDNGOworMDVENCAwMDQxOworMDVGMCAwMDNGOworMDVEOCAwNUJDIDAzMzQ7CitGQjM5IDAwNjI7CitGQjNCIDAwM0Y7CitGQjNDIDAwMjE7CiswNURFIDAwNjI7CiswNUUxIDAwNDE7CitGQjQzIDAwMjE7CiswNUU1IDAwNjE7CiswNUU4IDAwNDE7CitGQjJBIDAwM0Y7CiswNUVBIDA1QkMgMDMzNDsKKzA2NzQgMDA2MjsKKzA2MjMgMDAzRjsKK0ZCNTEgMDAyMTsKK0ZFODYgMDA2MTsKK0ZFODggMDA2MjsKK0ZFOEMgMDA2MTsKK0ZDOTcgMDA2MjsKK0ZDREYgMDAzRjsKK0ZDOUIgMDA2MjsKK0ZCRjMgMDA2MjsKK0ZCRjkgMDAzRjsKK0ZCRjcgMDAzRjsKK0ZEM0QgMDA2MTsKKzA2NkUgMDA2MjsKK0ZDOUMgMDA2MTsKK0ZDMDcgMDA2MjsKK0ZDMDggMDA2MTsKK0ZDMDkgMDA2MjsKK0ZCNTIgMDA0MTsKK0ZCNTYgMDA2MjsKKzA3NTAgMDA2MjsKKzA3NTYgMDA2MjsKK0ZFOTggMDA2MTsKK0ZEQTAgMDA2MjsKK0ZENTMgMDA2MjsKK0ZDNzAgMDA2MjsKK0ZENTUgMDA2MjsKK0ZDQTUgMDA2MTsKK0ZFOUMgMDAyMTsKK0ZDNzYgMDA2MjsKK0ZDNzkgMDA2MjsKK0ZCNjkgMDAyMTsKK0ZCNUUgMDAzRjsKK0ZCNjUgMDAyMTsKK0ZFOUQgMDAzRjsKK0ZEQTYgMDA2MjsKK0ZENTggMDA2MjsKK0ZEMDIgMDA2MjsKK0ZCNzUgMDAyMTsKK0ZCN0EgMDAzRjsKK0ZCN0UgMDAzRjsKK0ZFQTQgMDA2MTsKK0ZDQUEgMDA2MTsKK0ZEMUMgMDA2MTsKK0ZFQTUgMDA2MjsKK0ZEMUYgMDA2MTsKKzA2ODUgMDA2MjsKK0ZFQUIgMDAyMTsKK0ZCODggMDA2MjsKK0ZCODQgMDA2MjsKK0ZCODYgMDA2MjsKK0ZFQUQgMDAyMTsKK0ZFQUYgMDAyMTsKKzA2OTIgMDA2MjsKK0ZCOEEgMDAyMTsKKzA3NkIgMDA2MjsKK0ZFQjEgMDA2MjsKK0ZDMUQgMDAyMTsKK0ZDMUUgMDA2MjsKK0ZDRTcgMDA0MTsKK0ZENjIgMDA2MjsKK0ZDRkMgMDA2MjsKK0ZEMjUgMDAyMTsKK0ZEMkUgMDA0MTsKK0ZEMjcgMDAyMTsKK0ZEMjggMDAyMTsKK0ZENkQgMDA2MTsKK0ZEMUEgMDA2MTsKKzA3NUMgMDA2MjsKK0ZFQjkgMDA2MjsKK0ZDQjIgMDA2MjsKK0ZERjAgMDA2MjsKK0ZEMDUgMDA2MjsKK0ZFQkQgMDA0MTsKK0ZENkUgMDA2MjsKK0ZEMkMgMDA2MTsKK0ZEMjQgMDA2MTsKK0ZFQzEgMDAzRjsKK0ZDMjcgMDAyMTsKK0ZENzQgMDA2MjsKK0ZFQzUgMDAzRjsKK0ZDMjggMDA2MjsKK0ZFQzkgMDA2MjsKK0ZDQkIgMDA2MTsKK0ZEMTMgMDA2MTsKK0ZFRDAgMDA2MTsKK0ZDMkMgMDA2MjsKK0ZEMTYgMDA2MTsKKzA3NUYgMDA2MjsKK0ZDQkUgMDA2MTsKK0ZEN0QgMDA2MTsKK0ZDMzEgMDA2MjsKK0ZCNkQgMDAyMTsKK0ZCNzEgMDAyMTsKKzA3NjEgMDA2MjsKK0ZFRDUgMDA2MjsKK0ZEQjQgMDA2MTsKK0ZDN0YgMDA2MTsKK0ZFREMgMDA2MTsKK0ZDMzggMDA2MjsKK0ZDQzcgMDA0MTsKK0ZDM0MgMDA2MjsKK0ZDODQgMDA2MTsKK0ZCOEUgMDA2MjsKK0ZCRDYgMDA2MTsKK0ZCOTUgMDA2MTsKK0ZCOUQgMDA2MTsKK0ZCOTkgMDA2MTsKKzA3NjQgMDA2MjsKK0ZFRjYgMDA2MTsKK0ZFRkMgMDA2MTsKK0ZEQkEgMDA2MTsKK0ZEODAgMDA2MjsKK0ZEODUgMDA2MjsKK0ZEODcgMDA2MjsKK0ZDNDQgMDA2MjsKK0ZFRTQgMDAyMTsKK0ZDODggMDA2MjsKK0ZEQzAgMDA2MjsKK0ZEOEIgMDA2MjsKK0ZDNDggMDAyMTsKKzA3NjUgMDA2MjsKK0ZFRTUgMDA2MjsKK0ZEOTcgMDA2MjsKK0ZEOTYgMDA2MjsKK0ZDOEMgMDAyMTsKK0ZDOEQgMDA2MjsKK0ZDNTAgMDA2MjsKK0ZCQTMgMDA2MTsKKzA3NjcgMDA2MjsKK0ZFRUEgMDA0MTsKK0ZDNTIgMDA2MjsKK0ZCQUEgMDAzRjsKKzA2QzIgMDAzRjsKKzA2RDUgMDAzRjsKKzA2NDggMDA2MTsKK0ZCRTEgMDAyMTsKK0ZCRDggMDAyMTsKKzA2QzggMDA0MTsKK0ZCREYgMDAyMTsKK0ZDNUQgMDAyMTsKK0ZFRjQgMDAzRjsKK0ZDREEgMDAzRjsKK0ZDREMgMDAzRjsKK0ZDRjAgMDA0MTsKK0ZDREUgMDAzRjsKKzA2Q0MgMDAzRjsKKzA2Q0UgMDAzRjsKKzA2RDEgMDAzRjsKK0ZCQjAgMDA0MTsKKzA3MTQgMDA2MTsKKzA3MTggMDA0MTsKKzA3MUQgMDA0MTsKKzA3MjIgMDA0MTsKKzA3NEYgMDA0MTsKKzA3ODAgMDA0MTsKKzA3OUMgMDA0MTsKKzA3QTMgMDA0MTsKKzA3OUIgMDA0MTsKKzA3OEUgMDA0MTsKKzA3OUYgMDA0MTsKKzA3OTYgMDA0MTsKKzA3QTkgMDA0MTsKKzA3QUYgMDA0MTsKKzJEMzQgMDA0MTsKKzJEM0EgMDA0MTsKKzJENDAgMDA0MTsKKzJENDYgMDA0MTsKKzJENEMgMDA0MTsKKzJENTIgMDA0MTsKKzJENTggMDA0MTsKKzJENUUgMDA0MTsKKzJENjMgMDA0MTsKKzEyMDMgMDA0MTsKKzEyMDkgMDA0MTsKKzEyMEYgMDA0MTsKKzEyMTQgMDA0MTsKKzEyMUEgMDA0MTsKKzEzODAgMDA0MTsKKzEyMjEgMDA0MTsKKzEyMjcgMDA0MTsKKzEyMkQgMDA0MTsKKzEyMzIgMDA0MTsKKzJEODMgMDA0MTsKKzEyM0QgMDA0MTsKKzEyNDIgMDA0MTsKKzEyNDggMDA0MTsKKzEyNTEgMDA0MTsKKzEyNTggMDA0MTsKKzEyNjEgMDA0MTsKKzEyNjcgMDA0MTsKKzEyNjggMDA0MTsKKzEyNkUgMDA0MTsKKzEyNzQgMDA0MTsKKzEyNzkgMDA0MTsKKzEyN0YgMDA0MTsKKzEyODQgMDA0MTsKKzEyOEIgMDA0MTsKKzEyOTMgMDA0MTsKKzEyOTggMDA0MTsKKzEyOUUgMDA0MTsKKzEyQTMgMDA0MTsKKzEyQTggMDA0MTsKKzEyQUUgMDA0MTsKKzEyQjUgMDA0MTsKKzEyQkQgMDA0MTsKKzEyQzUgMDA0MTsKKzEyQ0QgMDA0MTsKKzEyRDMgMDA0MTsKKzEyREEgMDA0MTsKKzJEOEIgMDA0MTsKKzEyRTUgMDA0MTsKKzEyRUIgMDA0MTsKKzEyRjEgMDA0MTsKKzEyRjcgMDA0MTsKKzEyRkMgMDA0MTsKKzEzMDEgMDA0MTsKKzEzMDcgMDA0MTsKKzEzMEMgMDA0MTsKKzEzMTMgMDA0MTsKKzEzMUIgMDA0MTsKKzJEOTQgMDA0MTsKKzEzMjMgMDA0MTsKKzEzMjggMDA0MTsKKzEzMkUgMDA0MTsKKzEzMzMgMDA0MTsKKzEzMzggMDA0MTsKKzEzM0UgMDA0MTsKKzEzNDQgMDA0MTsKKzEzNEEgMDA0MTsKKzEzODggMDA0MTsKKzEzNTIgMDA0MTsKKzEzOEMgMDA0MTsKKzEzNTkgMDA0MTsKKzJEQTQgMDA0MTsKKzJEQUIgMDA0MTsKKzJEQjIgMDA0MTsKKzJEQjkgMDA0MTsKKzJEQzAgMDA0MTsKKzJEQzYgMDA0MTsKKzJEQ0QgMDA0MTsKKzJERDQgMDA0MTsKKzJEREIgMDA0MTsKKzA5MDUgMDA0MTsKKzA5MEIgMDA0MTsKKzA5MEYgMDA0MTsKKzA5MTUgMDkzQyAwMzM0OworMDkxNyAwMDYxOworMDk1QiAwMzM0OworMDkyMSAwMDNGOworMDkyNCAwMDIxOworMDkyOSAwMDQxOworMDkyRCAwMDYyOworMDkzMCAwMDYyOworMDkzNyAwMDIxOworMDkzRiAwMDIxOworMDk2MiAwMDIxOworMDk0OSAwMDIxOworMDk4NSAwMDQxOworMDk4QiAwMDQxOworMDk5MyAwMDQxOworMDk5OSAwMDQxOworMDk5RiAwMDQxOworMDlERCAwMDQxOworMDlBNyAwMDYxOworMDlBRSAwMDYxOworMDlCMiAwMDYyOworMDlCRCAwMDYyOworMDlDMyAwMDYyOworMDlDOCAwMDQxOworMDlENyAwMDNGOworMEEwNSAwMDNGOworMEEwOCAwMDNGOworMEExNSAwMDQxOworMEExOCAwMDYxOworMEE1QiAwMDYyOworMEEyMiAwMDYyOworMEEyOCAwMDYyOworMEEyRSAwMDNGOworMEEzNSAwMDQxOworMEE0MiAwMDQxOworMEFEMCAwMDNGOworMEE4QSAwMDNGOworMEE4RiAwMDNGOworMEE5NiAwMDNGOworMEE5QyAwMDNGOworMEFBMiAwMDNGOworMEFBOCAwMDNGOworMEFBRiAwMDNGOworMEFCNyAwMDNGOworMEFDMCAwMDNGOworMEFFMyAwMDNGOworMEFDQyAwMDNGOworMEIwOCAwMDYyOworMEI2MSAwMDYyOworMEIxNiAwMDYyOworMEIxQyAwMDYyOworMEI1QyAwMDYxOworMEIyNSAwMDQxOworMEIyQyAwMDQxOworMEIzMiAwMDQxOworMEIzOCAwMDQxOworMEI0MSAwMDQxOworMEI0NyAwQjU2IDAwNjE7CiswQjREIDAwNjE7CiswQjg3IDAwNjE7CiswQjkwIDAwNjE7CiswQjk1IDAwNjI7CiswQkEzIDAwNjI7CiswQkFGIDAwNjI7CiswQkI1IDAwNjI7CiswQkJGIDAwNjI7CiswQkM3IDAwNDE7CiswQkM2IDBCRDcgMDAyMTsKKzBDMDYgMDA0MTsKKzBDNjAgMDA0MTsKKzBDMTIgMDA0MTsKKzBDMTggMDA0MTsKKzBDMUUgMDA0MTsKKzBDMjQgMDA0MTsKKzBDMkIgMDA0MTsKKzBDMzEgMDA0MTsKKzBDMzggMDA0MTsKKzBDNDIgMDA0MTsKKzBDNDYgMDU5MSAwQzU2IDAwNjE7CiswQzU1IDAwMjE7CiswQzg4IDAwM0Y7CiswQ0UxIDAwM0Y7CiswQzk0IDAwM0Y7CiswQzlBIDAwM0Y7CiswQ0EwIDAwM0Y7CiswQ0E2IDAwM0Y7CiswQ0FEIDAwM0Y7CiswQ0I1IDAwM0Y7CiswQ0RFIDAwM0Y7CiswQ0JGIDBDRDUgMDA2MjsKKzBDQzYgMDAwMSAwQ0MyIDBDRDUgMDA2MTsKKzBDQ0EgMDAyMTsKKzBDQ0MgMDAyMTsKKzBEMDYgMDA0MTsKKzBENjAgMDA0MTsKKzBEMTIgMDA0MTsKKzBEMTggMDA0MTsKKzBEMUUgMDA0MTsKKzBEMjQgMDA0MTsKKzBEMkIgMDA0MTsKKzBEMzEgMDA0MTsKKzBEMzcgMDA0MTsKKzBENDEgMDA0MTsKKzBENDcgMUQxNjUgMEQzRSAwMDYxOworMEQ0NiAwRDU3IDAwNjE7CiswRDg3IDAwNjE7CiswRDhEIDAwNjE7CiswRDkzIDAwNjE7CiswRDlDIDAwNjE7CiswREEyIDAwNjE7CiswREE4IDAwNjE7CiswREFFIDAwNjE7CiswREI1IDAwNjE7CiswREJCIDAwNjE7CiswREM0IDAwNjE7CiswREQxIDAwMjE7CiswREQ5IDAwMjE7CiswRERCIDAwMjE7CiswRERDIDA1OTEgMERDQSAwMDYxOworMERGMyAwMDIxOworQTgwNSAwMDIxOworQTgwQSAwMDQxOworQTgxMSAwMDQxOworQTgxNyAwMDQxOworQTgxRCAwMDQxOworQTgyMyAwMDQxOworMTBBMDEgMDA0MTsKKzEwQTEwIDAwNDE7CisxMEExNyAwMDQxOworMTBBMUUgMDA0MTsKKzEwQTI0IDAwNDE7CisxMEEyQSAwMDQxOworMTBBMzAgMDA0MTsKKzBFNDAgMEUwMSAwMDNGOworMEU0MCAwRTAyIDAwM0Y7CiswRTQwIDBFMDMgMDAzRjsKKzBFNDAgMEUwNCAwMDNGOworMEU0MCAwRTA1IDAwM0Y7CiswRTQwIDBFMDYgMDAzRjsKKzBFNDAgMEUwNyAwMDNGOworMEU0MCAwRTA4IDAwM0Y7CiswRTQwIDBFMDkgMDAzRjsKKzBFNDAgMEUwQSAwMDNGOworMEU0MCAwRTBCIDAwM0Y7CiswRTQwIDBFMEMgMDAzRjsKKzBFNDAgMEUwRCAwMDNGOworMEU0MCAwRTBFIDAwM0Y7CiswRTQwIDBFMEYgMDAzRjsKKzBFNDAgMEUxMCAwMDNGOworMEU0MCAwRTExIDAwM0Y7CiswRTQwIDBFMTIgMDAzRjsKKzBFNDAgMEUxMyAwMDNGOworMEU0MCAwRTE0IDAwM0Y7CiswRTQwIDBFMTUgMDAzRjsKKzBFNDAgMEUxNiAwMDNGOworMEU0MCAwRTE3IDAwM0Y7CiswRTQwIDBFMTggMDAzRjsKKzBFNDAgMEUxOSAwMDNGOworMEU0MCAwRTFBIDAwM0Y7CiswRTQwIDBFMUIgMDAzRjsKKzBFNDAgMEUxQyAwMDNGOworMEU0MCAwRTFEIDAwM0Y7CiswRTQwIDBFMUUgMDAzRjsKKzBFNDAgMEUxRiAwMDNGOworMEU0MCAwRTIwIDAwM0Y7CiswRTQwIDBFMjEgMDAzRjsKKzBFNDAgMEUyMiAwMDNGOworMEU0MCAwRTIzIDAwM0Y7CiswRTQwIDBFMjQgMDAzRjsKKzBFNDAgMEUyNSAwMDNGOworMEU0MCAwRTI2IDAwM0Y7CiswRTQwIDBFMjcgMDAzRjsKKzBFNDAgMEUyOCAwMDNGOworMEU0MCAwRTI5IDAwM0Y7CiswRTQwIDBFMkEgMDAzRjsKKzBFNDAgMEUyQiAwMDNGOworMEU0MCAwRTJDIDAwM0Y7CiswRTQwIDBFMkQgMDAzRjsKKzBFNDAgMEUyRSAwMDNGOworMEUzMCAwMDNGOworMEUzNCAwMDQxOworMEUzOSAwMDYyOworMEU0MCAxRDE2NSAwRTA2IDAwNjE7CiswRTQwIDFEMTY1IDBFMTAgMDA2MTsKKzBFNDAgMUQxNjUgMEUxQSAwMDYxOworMEU0MCAxRDE2NSAwRTI0IDAwNjE7CiswRTQwIDFEMTY1IDBFMkUgMDA2MTsKKzBFNDEgMDAwMSAwRTA5IDAwNjE7CiswRTQxIDAwMDEgMEUxMyAwMDYxOworMEU0MSAwMDAxIDBFMUQgMDA2MTsKKzBFNDEgMDAwMSAwRTI3IDAwNjE7CiswRTQyIDA1OTEgMEUwMSAwMDYxOworMEU0MiAwNTkxIDBFMEIgMDA2MTsKKzBFNDIgMDU5MSAwRTE1IDAwNjE7CiswRTQyIDA1OTEgMEUxRiAwMDYxOworMEU0MiAwNTkxIDBFMjkgMDA2MTsKKzBFNDMgMUQxNjUgMEUwMyAwMDYxOworMEU0MyAxRDE2NSAwRTBEIDAwNjE7CiswRTQzIDFEMTY1IDBFMTcgMDA2MTsKKzBFNDMgMUQxNjUgMEUyMSAwMDYxOworMEU0MyAxRDE2NSAwRTJCIDAwNjE7CiswRTQ0IDAwMDEgMEUwNiAwMDYxOworMEU0NCAwMDAxIDBFMTAgMDA2MTsKKzBFNDQgMDAwMSAwRTFBIDAwNjE7CiswRTQ0IDAwMDEgMEUyNCAwMDYxOworMEU0NCAwMDAxIDBFMkUgMDA2MTsKKzBFQzMgMEU4MSAwMDYxOworMEVDMyAwRTgyIDAwNjE7CiswRUMzIDBFODQgMDA2MTsKKzBFQzMgMEU4NyAwMDYxOworMEVDMyAwRTg4IDAwNjE7CiswRUMzIDBFOEEgMDA2MTsKKzBFQzMgMEU4RCAwMDYxOworMEVDMyAwRTk0IDAwNjE7CiswRUMzIDBFOTUgMDA2MTsKKzBFQzMgMEU5NiAwMDYxOworMEVDMyAwRTk3IDAwNjE7CiswRUMzIDBFOTkgMDA2MTsKKzBFQzMgMEU5QSAwMDYxOworMEVDMyAwRTlCIDAwNjE7CiswRUMzIDBFOUMgMDA2MTsKKzBFQzMgMEU5RCAwMDYxOworMEVDMyAwRTlFIDAwNjE7CiswRUMzIDBFOUYgMDA2MTsKKzBFQzMgMEVBMSAwMDYxOworMEVDMyAwRUEyIDAwNjE7CiswRUMzIDBFQTMgMDA2MTsKKzBFQzMgMEVBNSAwMDYxOworMEVDMyAwRUE3IDAwNjE7CiswRUMzIDBFQUEgMDA2MTsKKzBFQzIgMEVEQyAwMDYxOworMEVDMiAwRUREIDAwNjE7CiswRUMzIDBFQUIgMDA2MTsKKzBFQzMgMEVBRCAwMDYxOworMEVDMyAwRUFFIDAwNjE7CiswRUIyIDAwNjI7CiswRUI3IDAwNjI7CiswRUMwIDAwMjE7CiswRUMwIDA1OTEgMEU5NSAwMDYxOworMEVDMCAwNTkxIDBFQTEgMDA2MTsKKzBFQzAgMDU5MSAwRUFFIDAwNjE7CiswRUMxIDFEMTY1IDBFOTQgMDA2MTsKKzBFQzEgMUQxNjUgMEU5RiAwMDYxOworMEVDMSAxRDE2NSAwRUFEIDAwNjE7CiswRUMyIDAwMDEgMEU5NCAwMDYxOworMEVDMiAwMDAxIDBFOUYgMDA2MTsKKzBFQzIgMDAwMSAwRUFEIDAwNjE7CiswRUMzIDA1OTEgMEU4RCAwMDYxOworMEVDMyAwNTkxIDBFOUUgMDA2MTsKKzBFQzMgMDU5MSAwRUREIDAwNjE7CiswRUM0IDFEMTY1IDBFOEEgMDA2MTsKKzBFQzQgMUQxNjUgMEU5RCAwMDYxOworMEVDNCAxRDE2NSAwRURDIDAwNjE7CiswRjQxIDAwMjE7CiswRjQ0IDAwMjE7CiswRjQ3IDAwMjE7CiswRjRCIDAwMjE7CiswRjRFIDAwMjE7CiswRjUxIDAwMjE7CiswRjU0IDAwMjE7CiswRkE2IDAwMjE7CiswRjVBIDAwMjE7CiswRjVEIDAwMjE7CiswRkFGIDAwMjE7CiswRjYyIDAwMjE7CiswRkIyIDAwMDEgMEY3MSAwRjgwIDAwNjE7CiswRkI0IDAwM0Y7CiswRkI3IDAwM0Y7CiswRjhBIDAwM0Y7CiswMzM0IDBGNzIgMEY3MTsKKzBGODEgMDA2MTsKKzBGNzYgMDAzRjsKKzBGQjIgMEY4MSAwMDQxOworMEZCMyAwRjcxIDFEMTY1IDBGODAgMDA2MTsKKzBGN0MgMDA2MjsKKzE5MDMgMDAyMTsKKzE5MDkgMDAyMTsKKzE5MEYgMDAyMTsKKzE5MTUgMDAyMTsKKzE5MUIgMDAyMTsKKzE5MjQgMDAyMTsKKzE5MkEgMDAyMTsKKzE5MzQgMDAyMTsKKzE3MDEgMDAyMTsKKzE3MDcgMDAyMTsKKzE3MEUgMDAyMTsKKzE3MTQgMDAyMTsKKzE3MjQgMDA0MTsKKzE3MkEgMDA0MTsKKzE3MzAgMDA0MTsKKzE3NDEgMDAzRjsKKzE3NDcgMDAzRjsKKzE3NEQgMDAzRjsKKzE3NTMgMDAzRjsKKzE3NjUgMDAzRjsKKzE3NkIgMDAzRjsKKzE3NzMgMDAzRjsKKzFBMDUgMDAzRjsKKzFBMEIgMDAzRjsKKzFBMTEgMDAzRjsKKzFBMTcgMDAzRjsKKzEwMDAgMDA2MTsKKzEwMDYgMDA2MTsKKzEwMEMgMDA2MTsKKzEwMTIgMDA2MTsKKzEwMTggMDA2MTsKKzEwNTAgMDA2MTsKKzEwMjMgMDA2MTsKKzEwMjcgMDA2MjsKKzEwNTUgMDA2MjsKKzEwMzEgMDA2MjsKKzEwMzkgMDA2MTsKKzE3ODUgMDA2MTsKKzE3OEIgMDA2MTsKKzE3OTEgMDA2MTsKKzE3OTcgMDA2MTsKKzE3OUQgMDA2MTsKKzE3REMgMDA2MTsKKzE3QTggMDA2MTsKKzE3QUUgMDA2MTsKKzE3QjQgMDA2MTsKKzE3QkEgMDA2MTsKKzE3QzAgMDA2MTsKKzAzMzQgMTdEMjsKKzE5NTUgMDAyMTsKKzE5NUIgMDAyMTsKKzE5NjEgMDAyMTsKKzE5NjcgMDAyMTsKKzE5NkQgMDAyMTsKKzE5ODAgMDAyMTsKKzE5ODYgMDAyMTsKKzE5OEMgMDAyMTsKKzE5OTIgMDAyMTsKKzE5OTggMDAyMTsKKzE5REYgMDAyMTsKKzE5QTIgMDAyMTsKKzE5QTggMDAyMTsKKzE5QjQgMDAyMTsKKzE5QkEgMDAyMTsKKzE5QzAgMDAyMTsKKzE5QzYgMDAyMTsKKzE4ODIgMDAyMTsKKzE4MjAgMDAyMTsKKzE4NDUgMDAyMTsKKzE4NDYgMDAyMTsKKzE4MjYgMDAyMTsKKzE4NEEgMDAyMTsKKzE4MkIgMDAyMTsKKzE4NEUgMDAyMTsKKzE4MkYgMDAyMTsKKzE4QTIgMDAyMTsKKzE4MzMgMDAyMTsKKzE4NUMgMDAyMTsKKzE4MzYgMDAyMTsKKzE4NTYgMDAyMTsKKzE4NjMgMDAyMTsKKzE4NkUgMDAyMTsKKzE4NTkgMDAyMTsKKzE4NUEgMDAyMTsKKzE4OEUgMDAyMTsKKzE4OTEgMDAyMTsKKzE4QTMgMDAyMTsKKzE4QTcgMDAyMTsKKzEzQTMgMDA0MTsKKzEzQTkgMDA0MTsKKzEzQUYgMDA0MTsKKzEzQjUgMDA0MTsKKzEzQkIgMDA0MTsKKzEzQzEgMDA0MTsKKzEzQzcgMDA0MTsKKzEzQ0QgMDA0MTsKKzEzRDMgMDA0MTsKKzEzRDkgMDA0MTsKKzEzREYgMDA0MTsKKzEzRTUgMDA0MTsKKzEzRUIgMDA0MTsKKzEzRjEgMDA0MTsKKzE0MDMgMDA0MTsKKzE0MDkgMDA0MTsKKzE0MEYgMDA0MTsKKzE0MTUgMDA0MTsKKzE0MUIgMDA0MTsKKzE0MjEgMDA0MTsKKzE0MjcgMDA0MTsKKzE0MkQgMDA0MTsKKzE0MzMgMDA0MTsKKzE0MzkgMDA0MTsKKzE0M0YgMDA0MTsKKzE0NDUgMDA0MTsKKzE0NEIgMDA0MTsKKzE0NTEgMDA0MTsKKzE0NTcgMDA0MTsKKzE0NUQgMDA0MTsKKzE0NjMgMDA0MTsKKzE0NjkgMDA0MTsKKzE0NkYgMDA0MTsKKzE0NzUgMDA0MTsKKzE0N0IgMDA0MTsKKzE0ODEgMDA0MTsKKzE0ODcgMDA0MTsKKzE0OEQgMDA0MTsKKzE0OTMgMDA0MTsKKzE0OTkgMDA0MTsKKzE0OUYgMDA0MTsKKzE0QTUgMDA0MTsKKzE0QUIgMDA0MTsKKzE0QjEgMDA0MTsKKzE0QjcgMDA0MTsKKzE0QkQgMDA0MTsKKzE0QzMgMDA0MTsKKzE0QzkgMDA0MTsKKzE0Q0YgMDA0MTsKKzE0RDUgMDA0MTsKKzE0REIgMDA0MTsKKzE0RTEgMDA0MTsKKzE0RTcgMDA0MTsKKzE0RUQgMDA0MTsKKzE0RjMgMDA0MTsKKzE0RjkgMDA0MTsKKzE0RkYgMDA0MTsKKzE1MDUgMDA0MTsKKzE1MEIgMDA0MTsKKzE1MTEgMDA0MTsKKzE1MTcgMDA0MTsKKzE1MUQgMDA0MTsKKzE1MjMgMDA0MTsKKzE1MjkgMDA0MTsKKzE1MkYgMDA0MTsKKzE1MzUgMDA0MTsKKzE1M0IgMDA0MTsKKzE1NDEgMDA0MTsKKzE1NDcgMDA0MTsKKzE1NEQgMDA0MTsKKzE1NTMgMDA0MTsKKzE1NTkgMDA0MTsKKzE1NUYgMDA0MTsKKzE1NjUgMDA0MTsKKzE1NkIgMDA0MTsKKzE1NzEgMDA0MTsKKzE1NzcgMDA0MTsKKzE2NkYgMDA0MTsKKzE1ODMgMDA0MTsKKzE1ODkgMDA0MTsKKzE1OEUgMDA0MTsKKzE1OTQgMDA0MTsKKzE2NzUgMDA0MTsKKzE1OUEgMDA0MTsKKzE1QTAgMDA0MTsKKzE1QTYgMDA0MTsKKzE1QUIgMDA0MTsKKzE1QjEgMDA0MTsKKzE1QjcgMDA0MTsKKzE1QkQgMDA0MTsKKzE1QzMgMDA0MTsKKzE1QzkgMDA0MTsKKzE1Q0YgMDA0MTsKKzE1RDUgMDA0MTsKKzE1REIgMDA0MTsKKzE1RTEgMDA0MTsKKzE1RTcgMDA0MTsKKzE1RUQgMDA0MTsKKzE1RjMgMDA0MTsKKzE1RjkgMDA0MTsKKzE1RkYgMDA0MTsKKzE2MDUgMDA0MTsKKzE2MEIgMDA0MTsKKzE2MTEgMDA0MTsKKzE2MTcgMDA0MTsKKzE2MUQgMDA0MTsKKzE2MjMgMDA0MTsKKzE2MjkgMDA0MTsKKzE2MkYgMDA0MTsKKzE2MzUgMDA0MTsKKzE2M0IgMDA0MTsKKzE2NDEgMDA0MTsKKzE2NDcgMDA0MTsKKzE2NEQgMDA0MTsKKzE2NTMgMDA0MTsKKzE2NTkgMDA0MTsKKzE2NUYgMDA0MTsKKzE2NjUgMDA0MTsKKzE2NkIgMDA0MTsKKzE2ODUgMDA0MTsKKzE2OEIgMDA0MTsKKzE2OTEgMDA0MTsKKzE2OTcgMDA0MTsKKzE2QTQgMDAzRjsKKzE2QTkgMDAzRjsKKzE2QjAgMDA0MTsKKzE2QjUgMDA2MjsKKzE2QkMgMDA0MTsKKzE2QzEgMDA2MjsKKzE2QzcgMDA0MTsKKzE2Q0EgMDA0MTsKKzE2RDAgMDA2MjsKKzE2RDggMDA2MTsKKzE2REMgMDA2MjsKKzE2RTAgMDA0MTsKKzE2RTUgMDA0MTsKKzMxMzEgMDA2MTsKKzMyNkUgMDA0MTsKK0FDMDIgMDA2MjsKKzExMDEgMDA2MTsKKzMyMDEgMDA2MjsKKzMyNjIgMDA2MTsKK0ZGQTggMDA0MTsKKzMyMTEgMDAzRjsKKzMyMDQgMDA2MjsKKzMyNjUgMDA2MTsKK0ZGQjMgMDA0MTsKKzMyMTQgMDAzRjsKKzMyNjcgMDAyMTsKKzMyMUQgMDAzRjsKKzMyNjggMDA2MTsKKzExMEQgMDAzRjsKKzMyNjkgMDA2MTsKKzMyNkEgMDAyMTsKKzExMTAgMDAzRjsKKzMyNzkgMDA2MTsKKzMyMUEgMDAzRjsKKzMyMEQgMDA2MjsKK0Q3ODggMTE2MSAwMDIxOworRDdBMCAwMDYyOworMzE2NSAwMDYyOworMTExOSAwMDYyOworMzE2RSAwMDYyOworMTEyMCAwMDYxOworMzE3NCAwMDYyOworMTEyNyAwMDYxOworMTEyQiAwMDYxOworMTEyRSAwMDYxOworMTEzMiAwMDYxOworMzE3RSAwMDYyOworMTEzQyAwMDYyOworMTE0MSAwMDYyOworMTE0NyAwMDYxOworMTE0QyAwMDYxOworMTE1MSAwMDYyOworMTE1NyAwMDYxOworMTE1RiAwMDYyOworRkZDMiAwMDYyOworRkZDNCAwMDYyOworRkZDNiAwMDYyOworRkZDQSAwMDYyOworRkZDQyAwMDYyOworRkZDRSAwMDYyOworRkZEMiAwMDYyOworRkZENCAwMDYyOworRkZENiAwMDYyOworRkZEQSAwMDYyOworRkZEQyAwMDYyOworMTE3QiAwMDYyOworMTE4MSAwMDYyOworMzE4OCAwMDYyOworMTE4QSAwMDYyOworMTE5MCAwMDYyOworMTE5NCAwMDYxOworMTE5OSAwMDYyOworMzE4RCAwMDYyOworMTFBOCAwMDYyOworRkZBNSAwMDIxOworMTFBRSAwMDYyOworMzEzQiAwMDQxOworMzEzRCAwMDQxOworMzEzRiAwMDQxOworMTFCQSAwMDYyOworMTFDMCAwMDYyOworMTFDNiAwMDYyOworMTFDQSAwMDYyOworMzE2QSAwMDYyOworMzE2QiAwMDYyOworMTFEOCAwMDYyOworMTFERCAwMDYxOworMTFFMSAwMDYyOworMTFFNyAwMDYyOworMTFFRCAwMDYyOworMTFGMiAwMDYxOworMTFGNyAwMDYyOworMzA0MSAwMDYxOworMzMwMSAwMDYyOworRkY3MiAwMDYxOworMzBBNiAwMDNGOworMzA5NCAwMDQxOworMzJEMyAwMDNGOworMzMwNyAwMDQxOworMzBBQSAwMDQxOworMzA0QiAzMDk5IDAzMzQ7CiszMkQ1IDAwNjI7CiszMEFEIDAwMjE7CitGRjc3IDAwNjI7CiszMzE1IDAwM0Y7CiszMDUwIDAwMjE7CiszMzE5IDAwMjE7CiszMEIxIDAzMzQgMzA5OTsKKzMwRjYgMDA2MjsKKzMwNTMgMDA0MTsKKzMwQjUgMDAzRjsKKzMyREEgMDA2MjsKKzMwNTggMDAzRjsKKzMzMjEgMDAzRjsKK0ZGN0QgMDA2MTsKKzMwNUMgMDAzRjsKKzMzMjMgMDA2MjsKKzMwQkUgMDA0MTsKKzMwNUYgMDA2MTsKKzMwQzEgMzA5OSAwMzM0OworRkY2RiAwMDIxOworMzJFMSAwMDYxOworMzA2NyAwMDNGOworMzBDOCAwMDIxOworMzA2OCAwMDYyOworRkY4NSAwMDQxOworRkY4NiAwMDYyOworMzBDRCAwMDNGOworRkY4OSAwMDQxOworMzA3MSAwMzM0OworMzFGNSAwMDQxOworMzA3MiAwMDNGOworMzA3MiAwMDQxOworMzMyRSAwMDYyOworMzBENSAzMDk5IDAzMzQ7CiszMDc3IDAwNjE7CiszMzM1IDAwNjE7CiszMDdBIDAwM0Y7CiszMERBIDAwNDE7CiszMzNBIDAwMjE7CiszMERDIDAwM0Y7CiszMDdEIDAwNDE7CiszMzQwIDAwNDE7CiszMzQ0IDAwNDE7CiszMDdGIDAwNjE7CiszMUZBIDAwM0Y7CiszMzREIDAwMjE7CiszMEUyIDAwM0Y7CiszMkYzIDAwM0Y7CitGRjk0IDAwNjI7CiszMDg1IDAwNjI7CiszMEU3IDAwNjE7CiszMkY2IDAwMjE7CiszMUZDIDAwNDE7CiszMkY4IDAwMjE7CiszMUZFIDAwM0Y7CiszMzU2IDAwNDE7CiszMDhGIDAwM0Y7CiszMEVFIDAwNjI7CiszMEYwIDAwNjI7CitGRjY2IDAwMjE7CiszMDkzIDAwNjE7CiszMTA3IDAwM0Y7CiszMTBCIDAwM0Y7CiszMTJCIDAwM0Y7CiszMTExIDAwM0Y7CiszMTE2IDAwM0Y7CiszMUE5IDAwNjE7CiszMUE0IDAwM0Y7CiszMUFGIDAwNjE7CiszMTI1IDAwM0Y7CiszMTI3IDAwNjE7CitBMDAwIDAwM0Y7CitBMDA2IDAwM0Y7CitBMDBDIDAwM0Y7CitBMDEyIDAwM0Y7CitBMDE4IDAwM0Y7CitBMDFFIDAwM0Y7CitBMDI0IDAwM0Y7CitBMDJBIDAwM0Y7CitBMDMwIDAwM0Y7CitBMDM2IDAwM0Y7CitBMDNDIDAwM0Y7CitBMDQyIDAwM0Y7CitBMDQ4IDAwM0Y7CitBMDRFIDAwM0Y7CitBMDU0IDAwM0Y7CitBMDVBIDAwM0Y7CitBMDYwIDAwM0Y7CitBMDY2IDAwM0Y7CitBMDZDIDAwM0Y7CitBMDcyIDAwM0Y7CitBMDc4IDAwM0Y7CitBMDdFIDAwM0Y7CitBMDg0IDAwM0Y7CitBMDhBIDAwM0Y7CitBMDkwIDAwM0Y7CitBMDk2IDAwM0Y7CitBMDlDIDAwM0Y7CitBMEEyIDAwM0Y7CitBMEE4IDAwM0Y7CitBMEFFIDAwM0Y7CitBMEI0IDAwM0Y7CitBMEJBIDAwM0Y7CitBMEMwIDAwM0Y7CitBMEM2IDAwM0Y7CitBMENDIDAwM0Y7CitBMEQyIDAwM0Y7CitBMEQ4IDAwM0Y7CitBMERFIDAwM0Y7CitBMEU0IDAwM0Y7CitBMEVBIDAwM0Y7CitBMEYwIDAwM0Y7CitBMEY2IDAwM0Y7CitBMEZDIDAwM0Y7CitBMTAyIDAwM0Y7CitBMTA4IDAwM0Y7CitBMTBFIDAwM0Y7CitBMTE0IDAwM0Y7CitBMTFBIDAwM0Y7CitBMTIwIDAwM0Y7CitBMTI2IDAwM0Y7CitBMTJDIDAwM0Y7CitBMTMyIDAwM0Y7CitBMTM4IDAwM0Y7CitBMTNFIDAwM0Y7CitBMTQ0IDAwM0Y7CitBMTRBIDAwM0Y7CitBMTUwIDAwM0Y7CitBMTU2IDAwM0Y7CitBMTVDIDAwM0Y7CitBMTYyIDAwM0Y7CitBMTY4IDAwM0Y7CitBMTZFIDAwM0Y7CitBMTc0IDAwM0Y7CitBMTdBIDAwM0Y7CitBMTgwIDAwM0Y7CitBMTg2IDAwM0Y7CitBMThDIDAwM0Y7CitBMTkyIDAwM0Y7CitBMTk4IDAwM0Y7CitBMTlFIDAwM0Y7CitBMUE0IDAwM0Y7CitBMUFBIDAwM0Y7CitBMUIwIDAwM0Y7CitBMUI2IDAwM0Y7CitBMUJDIDAwM0Y7CitBMUMyIDAwM0Y7CitBMUM4IDAwM0Y7CitBMUNFIDAwM0Y7CitBMUQ0IDAwM0Y7CitBMURBIDAwM0Y7CitBMUUwIDAwM0Y7CitBMUU2IDAwM0Y7CitBMUVDIDAwM0Y7CitBMUYyIDAwM0Y7CitBMUY4IDAwM0Y7CitBMUZFIDAwM0Y7CitBMjA0IDAwM0Y7CitBMjBBIDAwM0Y7CitBMjEwIDAwM0Y7CitBMjE2IDAwM0Y7CitBMjFDIDAwM0Y7CitBMjIyIDAwM0Y7CitBMjI4IDAwM0Y7CitBMjJFIDAwM0Y7CitBMjM0IDAwM0Y7CitBMjNBIDAwM0Y7CitBMjQwIDAwM0Y7CitBMjQ2IDAwM0Y7CitBMjRDIDAwM0Y7CitBMjUyIDAwM0Y7CitBMjU4IDAwM0Y7CitBMjVFIDAwM0Y7CitBMjY0IDAwM0Y7CitBMjZBIDAwM0Y7CitBMjcwIDAwM0Y7CitBMjc2IDAwM0Y7CitBMjdDIDAwM0Y7CitBMjgyIDAwM0Y7CitBMjg4IDAwM0Y7CitBMjhFIDAwM0Y7CitBMjk0IDAwM0Y7CitBMjlBIDAwM0Y7CitBMkEwIDAwM0Y7CitBMkE2IDAwM0Y7CitBMkFDIDAwM0Y7CitBMkIyIDAwM0Y7CitBMkI4IDAwM0Y7CitBMkJFIDAwM0Y7CitBMkM0IDAwM0Y7CitBMkNBIDAwM0Y7CitBMkQwIDAwM0Y7CitBMkQ2IDAwM0Y7CitBMkRDIDAwM0Y7CitBMkUyIDAwM0Y7CitBMkU4IDAwM0Y7CitBMkVFIDAwM0Y7CitBMkY0IDAwM0Y7CitBMkZBIDAwM0Y7CitBMzAwIDAwM0Y7CitBMzA2IDAwM0Y7CitBMzBDIDAwM0Y7CitBMzEyIDAwM0Y7CitBMzE4IDAwM0Y7CitBMzFFIDAwM0Y7CitBMzI0IDAwM0Y7CitBMzJBIDAwM0Y7CitBMzMwIDAwM0Y7CitBMzM2IDAwM0Y7CitBMzNDIDAwM0Y7CitBMzQyIDAwM0Y7CitBMzQ4IDAwM0Y7CitBMzRFIDAwM0Y7CitBMzU0IDAwM0Y7CitBMzVBIDAwM0Y7CitBMzYwIDAwM0Y7CitBMzY2IDAwM0Y7CitBMzZDIDAwM0Y7CitBMzcyIDAwM0Y7CitBMzc4IDAwM0Y7CitBMzdFIDAwM0Y7CitBMzg0IDAwM0Y7CitBMzhBIDAwM0Y7CitBMzkwIDAwM0Y7CitBMzk2IDAwM0Y7CitBMzlDIDAwM0Y7CitBM0EyIDAwM0Y7CitBM0E4IDAwM0Y7CitBM0FFIDAwM0Y7CitBM0I0IDAwM0Y7CitBM0JBIDAwM0Y7CitBM0MwIDAwM0Y7CitBM0M2IDAwM0Y7CitBM0NDIDAwM0Y7CitBM0QyIDAwM0Y7CitBM0Q4IDAwM0Y7CitBM0RFIDAwM0Y7CitBM0U0IDAwM0Y7CitBM0VBIDAwM0Y7CitBM0YwIDAwM0Y7CitBM0Y2IDAwM0Y7CitBM0ZDIDAwM0Y7CitBNDAyIDAwM0Y7CitBNDA4IDAwM0Y7CitBNDBFIDAwM0Y7CitBNDE0IDAwM0Y7CitBNDFBIDAwM0Y7CitBNDIwIDAwM0Y7CitBNDI2IDAwM0Y7CitBNDJDIDAwM0Y7CitBNDMyIDAwM0Y7CitBNDM4IDAwM0Y7CitBNDNFIDAwM0Y7CitBNDQ0IDAwM0Y7CitBNDRBIDAwM0Y7CitBNDUwIDAwM0Y7CitBNDU2IDAwM0Y7CitBNDVDIDAwM0Y7CitBNDYyIDAwM0Y7CitBNDY4IDAwM0Y7CitBNDZFIDAwM0Y7CitBNDc0IDAwM0Y7CitBNDdBIDAwM0Y7CitBNDgwIDAwM0Y7CitBNDg2IDAwM0Y7CitBNDhDIDAwM0Y7CisxMDMwNSAwMDNGOworMTAzMEIgMDAzRjsKKzEwMzExIDAwM0Y7CisxMDMxNyAwMDNGOworMTAzMUQgMDAzRjsKKzEwMzM0IDAwM0Y7CisxMDMzQSAwMDNGOworMTAzNDAgMDAzRjsKKzEwMzQ2IDAwM0Y7CisxMDQwMCAwMDYxOworMTA0MDMgMDA2MTsKKzEwNDA2IDAwNjE7CisxMDQwOSAwMDYxOworMTA0MEMgMDA2MTsKKzEwNDBGIDAwNjE7CisxMDQxMiAwMDYxOworMTA0MTUgMDA2MTsKKzEwNDE4IDAwNjE7CisxMDQxQiAwMDYxOworMTA0MUUgMDA2MTsKKzEwNDIxIDAwNjE7CisxMDQyNCAwMDYxOworMTA0MjcgMDA2MTsKKzEwNDU1IDAwM0Y7CisxMDQ1QiAwMDNGOworMTA0NjEgMDAzRjsKKzEwNDY3IDAwM0Y7CisxMDQ2RCAwMDNGOworMTA0NzMgMDAzRjsKKzEwNDc5IDAwM0Y7CisxMDQ3RiAwMDNGOworMTA0ODUgMDAzRjsKKzEwNDhCIDAwM0Y7CisxMDQ5MSAwMDNGOworMTA0OTcgMDAzRjsKKzEwNDlEIDAwM0Y7CisxMDAwNSAwMDNGOworMTAwMEIgMDAzRjsKKzEwMDEyIDAwM0Y7CisxMDAxOCAwMDNGOworMTAwMUUgMDAzRjsKKzEwMDI0IDAwM0Y7CisxMDAyQiAwMDNGOworMTAwMzEgMDAzRjsKKzEwMDM3IDAwM0Y7CisxMDAzRiAwMDNGOworMTAwNDUgMDAzRjsKKzEwMDRCIDAwM0Y7CisxMDA1MyAwMDNGOworMTAwNTkgMDAzRjsKKzEwMDgxIDAwM0Y7CisxMDA4NyAwMDNGOworMTAwOEQgMDAzRjsKKzEwMDkzIDAwM0Y7CisxMDA5OSAwMDNGOworMTAwOUYgMDAzRjsKKzEwMEE1IDAwM0Y7CisxMDBBQiAwMDNGOworMTAwQjEgMDAzRjsKKzEwMEI3IDAwM0Y7CisxMDBCRCAwMDNGOworMTAwQzMgMDAzRjsKKzEwMEM5IDAwM0Y7CisxMDBDRiAwMDNGOworMTAwRDUgMDAzRjsKKzEwMERCIDAwM0Y7CisxMDBFMSAwMDNGOworMTAwRTcgMDAzRjsKKzEwMEVEIDAwM0Y7CisxMDBGMyAwMDNGOworMTAwRjkgMDAzRjsKKzEwODA0IDAwM0Y7CisxMDgwRCAwMDNGOworMTA4MTMgMDAzRjsKKzEwODE5IDAwM0Y7CisxMDgxRiAwMDNGOworMTA4MjUgMDAzRjsKKzEwODJCIDAwM0Y7CisxMDgzMSAwMDNGOworMTA4MzggMDAzRjsKKzEwMzgzIDAwM0Y7CisxMDM4OSAwMDNGOworMTAzOEYgMDAzRjsKKzEwMzk1IDAwM0Y7CisxMDM5QiAwMDNGOworMTAzQTMgMDAzRjsKKzEwM0E5IDAwM0Y7CisxMDNBRiAwMDNGOworMTAzQjUgMDAzRjsKKzEwM0JCIDAwM0Y7CisxMDNDMSAwMDNGOworMTAzQ0IgMDAzRjsKKzMyODAgMDAyMTsKKzRFMDIgMDAzRjsKKzMyMjIgMDAzRjsKKzMxOTggMDA2MTsKKzMyQTUgMDAzRjsKK0Y5NUUgMDAzRjsKKzJFODQgMDA0MTsKKzJGMDUgMDAzRjsKKzMyMjQgMDAzRjsKKzJFODUgMDAzRjsKKzMyQUQgMDA2MTsKK0Y5QjUgMDAzRjsKK0Y5RDQgMDAzRjsKK0ZBMzEgMDA0MTsKK0ZBMzIgMDA0MTsKK0Y5NzggMDAzRjsKKzMyODUgMDA0MTsKKzJGOEQyIDAwM0Y7CisyRjBFIDAwM0Y7CitGOTU1IDAwM0Y7CisyRjEwIDAwNjE7CitGQTAwIDAwNDE7CisyRjgyMiAwMDNGOworMkY5OTIgMDAzRjsKK0ZBMzMgMDA0MTsKKzJGMTMgMDAzRjsKKzJGODJCIDAwMjE7CiszMjI5IDAwM0Y7CisyRjgyQyAwMDNGOworMkYxOCAwMDNGOworRjkxQyAwMDNGOworMkU4MSAwMDYxOworMkYxRCAwMDNGOworMzIzNCAwMDNGOworMkY4M0UgMDAzRjsKKzJGODQxIDAwM0Y7CisyRjg0NSAwMDQxOworMkY4NDggMDAzRjsKK0ZBMzcgMDA0MTsKKzMyMjMgMDA2MTsKKzMyMkYgMDA2MTsKKzJGODU0IDAwM0Y7CitGOTZDIDAwM0Y7CisyRjIwIDAwM0Y7CisyRjIyIDAwM0Y7CiszMzdEIDAwM0Y7CisyRjg1RiAwMDNGOworMkY4NjMgMDAzRjsKK0ZBODEgMDAzRjsKKzJGMjcgMDAzRjsKK0Y5NUYgMDA2MTsKKzJGODczIDAwM0Y7CisyRjJBIDAwNjE7CisyRjg3NyAwMDNGOworMkYyQyAwMDQxOworRjkyMSAwMDNGOworMkYyRSAwMDNGOworMkU5MiAwMDNGOworMkYzMiAwMDNGOworRkEwMSAwMDNGOworRjkyOCAwMDQxOworMkY4OTAgMDAzRjsKKzJGODk0IDAwNDE7CisyRjg5OSAwMDNGOworRjk2NiAwMDNGOworMkY4OUUgMDAzRjsKKzJGOEEzIDAwMjE7CitGOUQ5IDAwM0Y7CitGQThBIDAwM0Y7CitGOThGIDAwM0Y7CitGQTQwIDAwNjE7CisyRjhCMiAwMDNGOworMkU5OCAwMDNGOworMkY4QjYgMDAzRjsKK0Y5QTQgMDAzRjsKKzJGOEJEIDAwM0Y7CisyRjhDNCAwMDNGOworMkU5OSAwMDNGOworMkY0MiAwMDNGOworMkY0NiAwMDNGOworMkY0NyAwMDQxOworRkE5MSAwMDIxOworRkEwNiAwMDNGOworMzIyQSAwMDNGOworRkE5MiAwMDIxOworMzIyRCAwMDNGOworMkY4REIgMDAzRjsKK0Y5REEgMDAzRjsKK0Y5N0EgMDAzRjsKKzJGOEU4IDAwM0Y7CitGOTRDIDAwM0Y7CisyRjhFRiAwMDNGOworRkE5NSAwMDNGOworRkE5NiAwMDIxOworMkY1MCAwMDNGOworMzIyQyAwMDYxOworRjk3MiAwMDNGOworMkY4RkYgMDAzRjsKK0Y5Q0EgMDA2MTsKKzJGOTA0IDAwM0Y7CitGQTQ2IDAwM0Y7CisyRjkwQiAwMDIxOworRkE0NyAwMDQxOworMkY5MTUgMDAzRjsKKzMyMkIgMDA2MTsKK0Y5RkIgMDAzRjsKK0ZBOUMgMDAyMTsKK0Y5MUUgMDAzRjsKKzJGOTIxIDAwMjE7CisyRjkyMiAwMDNGOworMzI5NSAwMDYxOworRjlGQSAwMDNGOworMkY1RSAwMDNGOworMkY5MkIgMDAzRjsKKzJGOTJFIDAwM0Y7CitGOTk0IDAwM0Y7CisyRjYyIDAwM0Y7CiszMjlBIDAwM0Y7CitGOTYyIDAwNDE7CitGQUE0IDAwM0Y7CisyRjZBIDAwM0Y7CiszMkFDIDAwNjE7CitGOTZEIDAwM0Y7CitGQUE5IDAwNDE7CisyRjk0RSAwMDNGOworMkY5NTAgMDAyMTsKKzJFQUQgMDAzRjsKK0ZBNEQgMDAzRjsKKzMyOTcgMDA0MTsKK0ZBNTMgMDAzRjsKK0Y5OTUgMDAzRjsKKzJGOTVBIDAwM0Y7CisyRjc0IDAwNjE7CitGQTU2IDAwNDE7CitGQUFFIDAwM0Y7CitGOTdCIDAwM0Y7CitGOTZBIDAwM0Y7CisyRjk2RSAwMDNGOworRjk1MCAwMDNGOworMkY3OSAwMDNGOworRkE1QSAwMDNGOworMkVCNyAwMDQxOworMkY5NzkgMDAzRjsKKzJGOTdBIDAwNDE7CitGOTk3IDAwM0Y7CisyRjgxIDAwM0Y7CisyRjk4NSAwMDNGOworRkE1QyAwMDNGOworMkY4OTMgMDA0MTsKK0Y5N0MgMDAzRjsKKzJFQkYgMDA2MTsKKzJGOTk0IDAwM0Y7CisyRjk5QyAwMDNGOworMkY5OUQgMDAzRjsKK0ZBQjQgMDAzRjsKK0Y5OTkgMDAzRjsKK0Y5MjMgMDAzRjsKKzJGOEMgMDAzRjsKKzJGOUI2IDAwM0Y7CisyRjlCQyAwMDNGOworMkY5QzAgMDAzRjsKKzJGOUMzIDAwM0Y7CisyRjlDNiAwMDNGOworRkFCNiAwMDNGOworRkEwQSAwMDNGOworMkVDNiAwMDYxOworRkFCOSAwMDNGOworRkFCQSAwMDIxOworRkFCRiAwMDIxOworMkVDOCAwMDNGOworMkY5OCAwMDNGOworRjk0OCAwMDNGOworRkE2NSAwMDQxOworMkY5QyAwMDNGOworMkY5RCAwMDNGOworMkY5REYgMDAyMTsKKzJGOThEIDAwM0Y7CisyRUNDIDAwNDE7CitGQUMzIDAwM0Y7CitGOTJDIDAwM0Y7CitGOTE5IDAwM0Y7CitGOTdFIDAwM0Y7CisyRjlFNyAwMDNGOworRjk5QiAwMDNGOworMkVEMiAwMDNGOworMkVENCAwMDNGOworRkEwOSAwMDNGOworMkZBQSAwMDNGOworRkE2OCAwMDQxOworRjkzOCAwMDNGOworMkZBRSAwMDNGOworMkVEOSAwMDNGOworMzJBMCAwMDNGOworRkFDQyAwMDIxOworMkZCNiAwMDNGOworMkZBMDIgMDAzRjsKKzJGQjggMDAzRjsKK0Y5MUEgMDAzRjsKKzJGQkMgMDAzRjsKKzJGQzAgMDAzRjsKK0Y5RjIgMDAzRjsKK0Y5M0EgMDAzRjsKKzJGQzUgMDA2MTsKKzJGQzcgMDA2MTsKKzJGQTE3IDAwM0Y7CisyRkNEIDAwM0Y7CisyRkQwIDAwNjE7CisyRUVEIDAwNjE7CisyRUYwIDAwM0Y7CitGQUNFIDAwNjI7Cis5RkEzIDAwM0Y7CitGQTEzIDAwM0Y7CitGQTI3IDAwM0Y7CiszNDAzIDAwM0Y7CiszNDA5IDAwM0Y7CiszNDBGIDAwM0Y7CiszNDE1IDAwM0Y7CiszNDFCIDAwM0Y7CiszNDIxIDAwM0Y7CiszNDI3IDAwM0Y7CiszNDJEIDAwM0Y7CiszNDMzIDAwM0Y7CiszNDM5IDAwM0Y7CiszNDNGIDAwM0Y7CiszNDQ1IDAwM0Y7CiszNDRCIDAwM0Y7CiszNDUxIDAwM0Y7CiszNDU3IDAwM0Y7CiszNDVEIDAwM0Y7CiszNDYzIDAwM0Y7CiszNDY5IDAwM0Y7CiszNDZGIDAwM0Y7CiszNDc1IDAwM0Y7CiszNDdCIDAwM0Y7CiszNDgxIDAwM0Y7CiszNDg3IDAwM0Y7CiszNDhEIDAwM0Y7CiszNDkzIDAwM0Y7CiszNDk5IDAwM0Y7CiszNDlFIDAwNDE7CiszNEE0IDAwM0Y7CiszNEFBIDAwM0Y7CiszNEIwIDAwM0Y7CiszNEI2IDAwM0Y7CisyRjlDQSAwMDIxOworMzRDMCAwMDNGOworMzRDNiAwMDNGOworMzRDQyAwMDNGOworMzREMiAwMDNGOworMzREOCAwMDNGOworMzRERSAwMDNGOworMzRFMyAwMDNGOworMzRFOSAwMDNGOworMzRFRiAwMDNGOworMzRGNSAwMDNGOworMzRGQiAwMDNGOworMzUwMSAwMDNGOworMzUwNyAwMDNGOworMzUwRCAwMDNGOworMzUxMyAwMDNGOworMzUxOCAwMDNGOworMzUxRSAwMDNGOworMzUyNCAwMDNGOworMzUyQSAwMDNGOworMzUzMCAwMDNGOworMzUzNiAwMDNGOworMzUzQyAwMDNGOworMzU0MiAwMDNGOworMzU0OCAwMDNGOworMzU0RSAwMDNGOworMzU1NCAwMDNGOworMzU1QSAwMDNGOworMzU2MCAwMDNGOworMzU2NiAwMDNGOworMzU2QyAwMDNGOworMzU3MiAwMDNGOworMzU3OCAwMDNGOworMzU3RSAwMDNGOworMzU4NCAwMDNGOworMzU4QSAwMDNGOworMzU5MCAwMDNGOworMzU5NiAwMDNGOworMzU5QyAwMDNGOworMzVBMiAwMDNGOworMzVBOCAwMDNGOworMzVBRSAwMDNGOworMzVCNCAwMDNGOworMzVCQSAwMDNGOworMzVDMCAwMDNGOworMzVDNiAwMDNGOworMzVDQyAwMDNGOworMzVEMiAwMDNGOworMzVEOCAwMDNGOworMzVERSAwMDNGOworMzVFNCAwMDNGOworMzVFQSAwMDNGOworMzVGMCAwMDNGOworMzVGNiAwMDNGOworMzVGQyAwMDNGOworMzYwMiAwMDNGOworMzYwOCAwMDNGOworMzYwRSAwMDNGOworMzYxNCAwMDNGOworMzYxQSAwMDNGOworMzYyMCAwMDNGOworMzYyNiAwMDNGOworMzYyQyAwMDNGOworMzYzMiAwMDNGOworMzYzOCAwMDNGOworMzYzRSAwMDNGOworMzY0NCAwMDNGOworMzY0QSAwMDNGOworMzY1MCAwMDNGOworMzY1NiAwMDNGOworMzY1QyAwMDNGOworMzY2MiAwMDNGOworMzY2OCAwMDNGOworMzY2RSAwMDNGOworMzY3NCAwMDNGOworMzY3QSAwMDNGOworMzY4MCAwMDNGOworMzY4NiAwMDNGOworMzY4QyAwMDNGOworMzY5MiAwMDNGOworMzY5OCAwMDNGOworMzY5RSAwMDNGOworMzZBNCAwMDNGOworMzZBQSAwMDNGOworMzZCMCAwMDNGOworMzZCNiAwMDNGOworMzZCQyAwMDNGOworMzZDMiAwMDNGOworMzZDOCAwMDNGOworMzZDRSAwMDNGOworMzZENCAwMDNGOworMzZEQSAwMDNGOworMzZFMCAwMDNGOworMzZFNiAwMDNGOworMzZFQyAwMDNGOworMzZGMSAwMDNGOworMzZGNyAwMDNGOworMzZGQyAwMDQxOworMzcwMiAwMDNGOworMzcwOCAwMDNGOworMzcwRSAwMDNGOworMzcxNCAwMDNGOworMzcxQSAwMDNGOworMzcyMCAwMDNGOworMzcyNiAwMDNGOworMzcyQyAwMDNGOworMzczMiAwMDNGOworMzczOCAwMDNGOworMzczRSAwMDNGOworMzc0NCAwMDNGOworMzc0QSAwMDNGOworMzc1MCAwMDNGOworMzc1NiAwMDNGOworMzc1QyAwMDNGOworMzc2MiAwMDNGOworMzc2OCAwMDNGOworMzc2RSAwMDNGOworMzc3NCAwMDNGOworMzc3QSAwMDNGOworMzc4MCAwMDNGOworMzc4NSAwMDNGOworMzc4QiAwMDNGOworMzc5MSAwMDNGOworMzc5NyAwMDNGOworMzc5RCAwMDNGOworMzdBMyAwMDNGOworMzdBOSAwMDNGOworMzdBRiAwMDNGOworMzdCNSAwMDNGOworMzdCQiAwMDNGOworMzdDMSAwMDNGOworMzdDNyAwMDNGOworMzdDRCAwMDNGOworMzdEMyAwMDNGOworMzdEOSAwMDNGOworMzdERiAwMDNGOworMzdFNSAwMDNGOworMzdFQiAwMDNGOworMzdGMSAwMDNGOworMzdGNyAwMDNGOworMzdGRCAwMDNGOworMzgwMyAwMDNGOworMzgwOSAwMDNGOworMzgwRiAwMDNGOworMzgxNSAwMDNGOworMzgxQiAwMDNGOworMzgyMSAwMDNGOworMzgyNyAwMDNGOworMzgyRCAwMDNGOworMzgzMiAwMDNGOworMzgzOCAwMDNGOworMzgzRSAwMDNGOworMzg0NCAwMDNGOworMzg0QSAwMDNGOworMzg1MCAwMDNGOworMzg1NiAwMDNGOworMzg1QyAwMDNGOworMkY4ODggMDAyMTsKKzM4NjcgMDAzRjsKKzM4NkQgMDAzRjsKKzM4NzMgMDAzRjsKKzM4NzkgMDAzRjsKKzM4N0UgMDAzRjsKKzM4ODQgMDAzRjsKKzM4OEEgMDAzRjsKKzM4OTAgMDAzRjsKKzM4OTYgMDAzRjsKKzM4OUMgMDAzRjsKKzM4QTIgMDAzRjsKKzM4QTggMDAzRjsKKzM4QUUgMDAzRjsKKzM4QjQgMDAzRjsKKzM4QkEgMDAzRjsKKzM4QzAgMDAzRjsKKzM4QzYgMDAzRjsKKzM4Q0IgMDAzRjsKKzM4RDEgMDAzRjsKKzM4RDcgMDAzRjsKKzM4REQgMDAzRjsKKzJGODlCIDAwMjE7CiszOEU4IDAwM0Y7CiszOEVFIDAwM0Y7CiszOEY0IDAwM0Y7CiszOEZBIDAwM0Y7CiszOTAwIDAwM0Y7CiszOTA2IDAwM0Y7CiszOTBDIDAwM0Y7CiszOTEyIDAwM0Y7CiszOTE4IDAwM0Y7CiszOTFEIDAwM0Y7CiszOTIzIDAwM0Y7CiszOTI5IDAwM0Y7CiszOTJGIDAwM0Y7CiszOTM1IDAwM0Y7CiszOTNBIDAwNDE7CiszOTQwIDAwM0Y7CiszOTQ2IDAwM0Y7CiszOTRDIDAwM0Y7CiszOTUyIDAwM0Y7CiszOTU4IDAwM0Y7CiszOTVFIDAwM0Y7CiszOTY0IDAwM0Y7CiszOTZBIDAwM0Y7CiszOTcwIDAwM0Y7CiszOTc2IDAwM0Y7CiszOTdDIDAwM0Y7CiszOTgyIDAwM0Y7CiszOTg4IDAwM0Y7CiszOThFIDAwM0Y7CiszOTk0IDAwM0Y7CiszOTlBIDAwM0Y7CiszOUEwIDAwM0Y7CiszOUE2IDAwM0Y7CiszOUFDIDAwM0Y7CiszOUIyIDAwM0Y7CiszOUI4IDAwM0Y7CiszOUJFIDAwM0Y7CiszOUM0IDAwM0Y7CiszOUNBIDAwM0Y7CiszOUQwIDAwM0Y7CiszOUQ2IDAwM0Y7CiszOURDIDAwM0Y7CiszOUUyIDAwM0Y7CiszOUU4IDAwM0Y7CiszOUVFIDAwM0Y7CiszOUY0IDAwM0Y7CiszOUZBIDAwM0Y7CiszQTAwIDAwM0Y7CiszQTA2IDAwM0Y7CiszQTBDIDAwM0Y7CiszQTEyIDAwM0Y7CiszQTE4IDAwM0Y7CiszQTFFIDAwM0Y7CiszQTI0IDAwM0Y7CiszQTJBIDAwM0Y7CiszQTJGIDAwM0Y7CiszQTM1IDAwM0Y7CiszQTNCIDAwM0Y7CiszQTQxIDAwM0Y7CiszQTQ3IDAwM0Y7CiszQTREIDAwM0Y7CiszQTUzIDAwM0Y7CiszQTU5IDAwM0Y7CiszQTVGIDAwM0Y7CiszQTY1IDAwM0Y7CiszQTZCIDAwM0Y7CiszQTcwIDAwM0Y7CiszQTc2IDAwM0Y7CiszQTdDIDAwM0Y7CiszQTgyIDAwM0Y7CiszQTg4IDAwM0Y7CiszQThFIDAwM0Y7CiszQTk0IDAwM0Y7CiszQTlBIDAwM0Y7CiszQUEwIDAwM0Y7CiszQUE2IDAwM0Y7CiszQUFDIDAwM0Y7CiszQUIyIDAwM0Y7CiszQUI4IDAwM0Y7CiszQUJFIDAwM0Y7CiszQUM0IDAwM0Y7CiszQUNBIDAwM0Y7CiszQUQwIDAwM0Y7CiszQUQ2IDAwM0Y7CiszQURDIDAwM0Y7CiszQUUyIDAwM0Y7CiszQUU3IDAwM0Y7CiszQUVEIDAwM0Y7CiszQUYzIDAwM0Y7CiszQUY5IDAwM0Y7CiszQUZGIDAwM0Y7CiszQjA1IDAwM0Y7CiszQjBBIDAwM0Y7CiszQjEwIDAwM0Y7CiszQjE2IDAwM0Y7CiszQjFCIDAwM0Y7CiszQjIxIDAwM0Y7CiszQjI3IDAwM0Y7CiszQjJEIDAwM0Y7CiszQjMzIDAwM0Y7CiszQjM5IDAwM0Y7CiszQjNGIDAwM0Y7CiszQjQ1IDAwM0Y7CiszQjRBIDAwM0Y7CiszQjUwIDAwM0Y7CiszQjU2IDAwM0Y7CiszQjVDIDAwM0Y7CiszQjYyIDAwM0Y7CiszQjY4IDAwM0Y7CiszQjZFIDAwM0Y7CiszQjc0IDAwM0Y7CiszQjdBIDAwM0Y7CiszQjgwIDAwM0Y7CiszQjg2IDAwM0Y7CiszQjhDIDAwM0Y7CiszQjkyIDAwM0Y7CiszQjk4IDAwM0Y7CiszQjlEIDAwNjE7CiszQkEyIDAwM0Y7CiszQkE4IDAwM0Y7CiszQkFFIDAwM0Y7CiszQkI0IDAwM0Y7CiszQkJBIDAwM0Y7CiszQkMwIDAwM0Y7CiszQkM2IDAwM0Y7CiszQkNDIDAwM0Y7CiszQkQyIDAwM0Y7CiszQkQ4IDAwM0Y7CiszQkRFIDAwM0Y7CiszQkU0IDAwM0Y7CiszQkVBIDAwM0Y7CiszQkYwIDAwM0Y7CiszQkY2IDAwM0Y7CiszQkZDIDAwM0Y7CiszQzAyIDAwM0Y7CiszQzA4IDAwM0Y7CiszQzBFIDAwM0Y7CiszQzE0IDAwM0Y7CiszQzE5IDAwM0Y7CiszQzFGIDAwM0Y7CiszQzI1IDAwM0Y7CiszQzJCIDAwM0Y7CiszQzMxIDAwM0Y7CiszQzM3IDAwM0Y7CiszQzNEIDAwM0Y7CiszQzQzIDAwM0Y7CiszQzQ5IDAwM0Y7CiszQzRFIDAwNDE7CiszQzU0IDAwM0Y7CiszQzVBIDAwM0Y7CiszQzYwIDAwM0Y7CiszQzY2IDAwM0Y7CiszQzZDIDAwM0Y7CiszQzcyIDAwM0Y7CiszQzc4IDAwM0Y7CiszQzdFIDAwM0Y7CiszQzg0IDAwM0Y7CiszQzhBIDAwM0Y7CiszQzkwIDAwM0Y7CiszQzk2IDAwM0Y7CiszQzlDIDAwM0Y7CiszQ0EyIDAwM0Y7CiszQ0E4IDAwM0Y7CiszQ0FFIDAwM0Y7CiszQ0I0IDAwM0Y7CiszQ0JBIDAwM0Y7CiszQ0MwIDAwM0Y7CiszQ0M2IDAwM0Y7CiszQ0NDIDAwM0Y7CiszQ0QyIDAwM0Y7CiszQ0Q4IDAwM0Y7CiszQ0RFIDAwM0Y7CiszQ0U0IDAwM0Y7CiszQ0VBIDAwM0Y7CiszQ0YwIDAwM0Y7CiszQ0Y2IDAwM0Y7CiszQ0ZDIDAwM0Y7CiszRDAyIDAwM0Y7CiszRDA4IDAwM0Y7CiszRDBFIDAwM0Y7CiszRDE0IDAwM0Y7CiszRDFBIDAwM0Y7CiszRDIwIDAwM0Y7CiszRDI2IDAwM0Y7CiszRDJDIDAwM0Y7CiszRDMyIDAwM0Y7CiszRDM3IDAwM0Y7CiszRDNEIDAwM0Y7CiszRDQzIDAwM0Y7CiszRDQ5IDAwM0Y7CiszRDRGIDAwM0Y7CiszRDU1IDAwM0Y7CiszRDVCIDAwM0Y7CiszRDYxIDAwM0Y7CiszRDY3IDAwM0Y7CiszRDZEIDAwM0Y7CiszRDczIDAwM0Y7CiszRDc5IDAwM0Y7CiszRDdGIDAwM0Y7CiszRDg1IDAwM0Y7CiszRDhCIDAwM0Y7CiszRDkxIDAwM0Y7CiszRDk2IDAwNDE7CiszRDlDIDAwM0Y7CiszREEyIDAwM0Y7CiszREE4IDAwM0Y7CiszREFFIDAwM0Y7CiszREI0IDAwM0Y7CiszREJBIDAwM0Y7CiszREMwIDAwM0Y7CiszREM2IDAwM0Y7CiszRENDIDAwM0Y7CiszREQyIDAwM0Y7CiszREQ4IDAwM0Y7CiszRERFIDAwM0Y7CiszREU0IDAwM0Y7CiszREVBIDAwM0Y7CiszREYwIDAwM0Y7CiszREY2IDAwM0Y7CiszREZDIDAwM0Y7CiszRTAyIDAwM0Y7CiszRTA4IDAwM0Y7CiszRTBFIDAwM0Y7CiszRTE0IDAwM0Y7CiszRTFBIDAwM0Y7CiszRTIwIDAwM0Y7CiszRTI2IDAwM0Y7CiszRTJDIDAwM0Y7CiszRTMyIDAwM0Y7CiszRTM4IDAwM0Y7CiszRTNFIDAwM0Y7CiszRTQ0IDAwM0Y7CiszRTRBIDAwM0Y7CiszRTUwIDAwM0Y7CiszRTU2IDAwM0Y7CiszRTVDIDAwM0Y7CiszRTYyIDAwM0Y7CiszRTY4IDAwM0Y7CiszRTZFIDAwM0Y7CiszRTc0IDAwM0Y7CiszRTdBIDAwM0Y7CiszRTgwIDAwM0Y7CiszRTg2IDAwM0Y7CiszRThDIDAwM0Y7CiszRTkyIDAwM0Y7CiszRTk4IDAwM0Y7CiszRTlFIDAwM0Y7CiszRUE0IDAwM0Y7CiszRUFBIDAwM0Y7CiszRUFGIDAwM0Y7CiszRUI1IDAwM0Y7CiszRUI5IDAwM0Y7CiszRUJGIDAwM0Y7CiszRUM1IDAwM0Y7CiszRUNCIDAwM0Y7CiszRUQxIDAwM0Y7CiszRUQ3IDAwM0Y7CiszRUREIDAwM0Y7CiszRUUzIDAwM0Y7CiszRUU5IDAwM0Y7CiszRUVGIDAwM0Y7CiszRUY1IDAwM0Y7CiszRUZCIDAwM0Y7CiszRjAxIDAwM0Y7CiszRjA3IDAwM0Y7CiszRjBEIDAwM0Y7CiszRjEzIDAwM0Y7CiszRjE5IDAwM0Y7CiszRjFFIDAwM0Y7CiszRjI0IDAwM0Y7CiszRjJBIDAwM0Y7CiszRjMwIDAwM0Y7CiszRjM2IDAwM0Y7CiszRjNDIDAwM0Y7CiszRjQyIDAwM0Y7CiszRjQ4IDAwM0Y7CiszRjRFIDAwM0Y7CiszRjU0IDAwM0Y7CiszRjVBIDAwM0Y7CiszRjYwIDAwM0Y7CiszRjY2IDAwM0Y7CiszRjZDIDAwM0Y7CiszRjcyIDAwM0Y7CiszRjc4IDAwM0Y7CiszRjdFIDAwM0Y7CiszRjg0IDAwM0Y7CiszRjhBIDAwM0Y7CiszRjkwIDAwM0Y7CiszRjk2IDAwM0Y7CiszRjlDIDAwM0Y7CiszRkEyIDAwM0Y7CiszRkE4IDAwM0Y7CiszRkFFIDAwM0Y7CiszRkI0IDAwM0Y7CiszRkJBIDAwM0Y7CiszRkMwIDAwM0Y7CiszRkM2IDAwM0Y7CiszRkNDIDAwM0Y7CiszRkQyIDAwM0Y7CiszRkQ4IDAwM0Y7CiszRkRFIDAwM0Y7CiszRkU0IDAwM0Y7CiszRkVBIDAwM0Y7CiszRkYwIDAwM0Y7CiszRkY2IDAwM0Y7CisyRjkzRSAwMDIxOworNDAwMSAwMDNGOworNDAwNyAwMDNGOworNDAwQyAwMDNGOworNDAxMiAwMDNGOworRkFEMyAwMDIxOworNDAxRCAwMDNGOworNDAyMyAwMDNGOworNDAyOSAwMDNGOworNDAyRiAwMDNGOworNDAzNSAwMDNGOworMkY5NDkgMDA0MTsKKzQwM0YgMDAzRjsKKzQwNDUgMDAzRjsKKzQwNEEgMDAzRjsKKzQwNTAgMDAzRjsKKzQwNTYgMDAzRjsKKzQwNUMgMDAzRjsKKzQwNjIgMDAzRjsKKzQwNjggMDAzRjsKKzQwNkUgMDAzRjsKKzQwNzQgMDAzRjsKKzQwN0EgMDAzRjsKKzQwODAgMDAzRjsKKzQwODYgMDAzRjsKKzQwOEMgMDAzRjsKKzQwOTIgMDAzRjsKKzQwOTcgMDAzRjsKKzQwOUQgMDAzRjsKKzQwQTMgMDAzRjsKKzQwQTkgMDAzRjsKKzQwQUYgMDAzRjsKKzQwQjUgMDAzRjsKKzQwQkIgMDAzRjsKKzQwQzEgMDAzRjsKKzQwQzcgMDAzRjsKKzQwQ0QgMDAzRjsKKzQwRDMgMDAzRjsKKzQwRDkgMDAzRjsKKzQwREYgMDAzRjsKKzQwRTQgMDAzRjsKKzQwRUEgMDAzRjsKKzQwRjAgMDAzRjsKKzQwRjYgMDAzRjsKKzQwRkMgMDAzRjsKKzQxMDIgMDAzRjsKKzQxMDggMDAzRjsKKzQxMEUgMDAzRjsKKzQxMTQgMDAzRjsKKzQxMUEgMDAzRjsKKzQxMjAgMDAzRjsKKzQxMjYgMDAzRjsKKzQxMkMgMDAzRjsKKzQxMzEgMDAzRjsKKzQxMzcgMDAzRjsKKzQxM0QgMDAzRjsKKzQxNDMgMDAzRjsKKzQxNDkgMDAzRjsKKzQxNEYgMDAzRjsKKzQxNTUgMDAzRjsKKzQxNUIgMDAzRjsKKzQxNjEgMDAzRjsKKzQxNjcgMDAzRjsKKzQxNkQgMDAzRjsKKzQxNzMgMDAzRjsKKzQxNzkgMDAzRjsKKzQxN0YgMDAzRjsKKzQxODUgMDAzRjsKKzQxOEIgMDAzRjsKKzQxOTEgMDAzRjsKKzQxOTcgMDAzRjsKKzQxOUQgMDAzRjsKKzQxQTMgMDAzRjsKKzQxQTkgMDAzRjsKKzQxQUYgMDAzRjsKKzQxQjUgMDAzRjsKKzQxQkIgMDAzRjsKKzQxQzEgMDAzRjsKKzQxQzcgMDAzRjsKKzQxQ0QgMDAzRjsKKzQxRDMgMDAzRjsKKzQxRDkgMDAzRjsKKzQxREYgMDAzRjsKKzQxRTUgMDAzRjsKKzQxRUIgMDAzRjsKKzQxRjEgMDAzRjsKKzQxRjcgMDAzRjsKKzQxRkQgMDAzRjsKKzQyMDIgMDA0MTsKKzQyMDggMDAzRjsKKzQyMEUgMDAzRjsKKzQyMTQgMDAzRjsKKzQyMUEgMDAzRjsKKzQyMjAgMDAzRjsKKzQyMjYgMDAzRjsKKzQyMkIgMDAzRjsKKzQyMzEgMDAzRjsKKzQyMzcgMDAzRjsKKzQyM0QgMDAzRjsKKzQyNDMgMDAzRjsKKzQyNDkgMDAzRjsKKzQyNEYgMDAzRjsKKzQyNTUgMDAzRjsKKzQyNUIgMDAzRjsKKzQyNjEgMDAzRjsKKzQyNjcgMDAzRjsKKzQyNkQgMDAzRjsKKzQyNzMgMDAzRjsKKzQyNzkgMDAzRjsKKzQyN0YgMDAzRjsKKzQyODUgMDAzRjsKKzQyOEIgMDAzRjsKKzQyOTEgMDAzRjsKKzQyOTcgMDAzRjsKKzQyOUQgMDAzRjsKKzQyQTIgMDAzRjsKKzQyQTggMDAzRjsKKzQyQUUgMDAzRjsKKzQyQjQgMDAzRjsKKzQyQkEgMDAzRjsKKzQyQzAgMDAzRjsKKzQyQzYgMDAzRjsKKzQyQ0MgMDAzRjsKKzQyRDIgMDAzRjsKKzQyRDggMDAzRjsKKzQyREUgMDAzRjsKKzQyRTQgMDAzRjsKKzQyRUEgMDAzRjsKKzQyRjAgMDAzRjsKKzQyRjYgMDAzRjsKKzQyRkMgMDAzRjsKKzQzMDEgMDA0MTsKKzQzMDcgMDAzRjsKKzQzMEQgMDAzRjsKKzQzMTMgMDAzRjsKKzQzMTkgMDAzRjsKKzQzMUYgMDAzRjsKKzQzMjUgMDAzRjsKKzQzMkIgMDAzRjsKKzQzMzEgMDAzRjsKKzQzMzYgMDAzRjsKKzQzM0MgMDAzRjsKKzQzNDIgMDAzRjsKKzQzNDggMDAzRjsKKzQzNEUgMDAzRjsKKzQzNTQgMDAzRjsKKzQzNTkgMDA0MTsKKzQzNUYgMDAzRjsKKzQzNjUgMDAzRjsKKzQzNkIgMDAzRjsKKzQzNzEgMDAzRjsKKzQzNzcgMDAzRjsKKzQzN0QgMDAzRjsKKzQzODMgMDAzRjsKKzQzODkgMDAzRjsKKzQzOEYgMDAzRjsKKzQzOTUgMDAzRjsKKzQzOUIgMDAzRjsKKzQzQTEgMDAzRjsKKzQzQTcgMDAzRjsKKzQzQUQgMDAzRjsKKzQzQjMgMDAzRjsKKzQzQjkgMDAzRjsKKzQzQkYgMDAzRjsKKzQzQzUgMDAzRjsKKzQzQ0IgMDAzRjsKKzQzRDEgMDAzRjsKKzQzRDYgMDAzRjsKKzQzREIgMDAzRjsKKzQzRTEgMDAzRjsKKzQzRTcgMDAzRjsKKzQzRUQgMDAzRjsKKzQzRjMgMDAzRjsKKzQzRjkgMDAzRjsKKzQzRkYgMDAzRjsKKzQ0MDUgMDAzRjsKKzJGOTg0IDAwMjE7Cis0NDEwIDAwM0Y7Cis0NDE2IDAwM0Y7Cis0NDFDIDAwM0Y7Cis0NDIyIDAwM0Y7Cis0NDI4IDAwM0Y7Cis0NDJFIDAwM0Y7Cis0NDM0IDAwM0Y7Cis0NDNBIDAwM0Y7Cis0NDQwIDAwM0Y7Cis0NDQ2IDAwM0Y7Cis0NDRDIDAwM0Y7Cis0NDUyIDAwM0Y7Cis0NDU4IDAwM0Y7Cis0NDVFIDAwM0Y7Cis0NDY0IDAwM0Y7Cis0NDZBIDAwM0Y7Cis0NDZGIDAwM0Y7Cis0NDc1IDAwM0Y7Cis0NDdCIDAwM0Y7Cis0NDgxIDAwM0Y7Cis0NDg3IDAwM0Y7Cis0NDhEIDAwM0Y7Cis0NDkzIDAwM0Y7Cis0NDk5IDAwM0Y7Cis0NDlGIDAwM0Y7Cis0NEE1IDAwM0Y7Cis0NEFCIDAwM0Y7Cis0NEIxIDAwM0Y7Cis0NEI3IDAwM0Y7Cis0NEJEIDAwM0Y7Cis0NEMzIDAwM0Y7Cis0NEM5IDAwM0Y7Cis0NENGIDAwM0Y7Cis0NEQ1IDAwM0Y7Cis0NERCIDAwM0Y7Cis0NEUxIDAwM0Y7Cis0NEU3IDAwM0Y7Cis0NEVEIDAwM0Y7Cis0NEYzIDAwM0Y7Cis0NEY5IDAwM0Y7Cis0NEZGIDAwM0Y7Cis0NTA1IDAwM0Y7Cis0NTBCIDAwM0Y7Cis0NTExIDAwM0Y7Cis0NTE3IDAwM0Y7Cis0NTFEIDAwM0Y7Cis0NTIzIDAwM0Y7Cis0NTI5IDAwM0Y7Cis0NTJFIDAwM0Y7Cis0NTM0IDAwM0Y7Cis0NTNBIDAwM0Y7Cis0NTQwIDAwM0Y7Cis0NTQ2IDAwM0Y7Cis0NTRDIDAwM0Y7Cis0NTUyIDAwM0Y7Cis0NTU4IDAwM0Y7Cis0NTVEIDAwNDE7Cis0NTYyIDAwM0Y7Cis0NTY4IDAwM0Y7Cis0NTZEIDAwM0Y7Cis0NTczIDAwM0Y7Cis0NTc5IDAwM0Y7Cis0NTdGIDAwM0Y7Cis0NTg1IDAwM0Y7Cis0NThCIDAwM0Y7Cis0NTkxIDAwM0Y7Cis0NTk3IDAwM0Y7Cis0NTlEIDAwM0Y7Cis0NUEzIDAwM0Y7Cis0NUE5IDAwM0Y7Cis0NUFGIDAwM0Y7Cis0NUI1IDAwM0Y7Cis0NUJCIDAwM0Y7Cis0NUMxIDAwM0Y7Cis0NUM3IDAwM0Y7Cis0NUNEIDAwM0Y7Cis0NUQzIDAwM0Y7Cis0NUQ4IDAwM0Y7Cis0NURFIDAwM0Y7Cis0NUU0IDAwM0Y7Cis0NUVBIDAwM0Y7Cis0NUYwIDAwM0Y7Cis0NUY2IDAwM0Y7Cis0NUZCIDAwM0Y7Cis0NjAxIDAwM0Y7Cis0NjA3IDAwM0Y7Cis0NjBEIDAwM0Y7Cis0NjEzIDAwM0Y7Cis0NjE5IDAwM0Y7Cis0NjFGIDAwM0Y7Cis0NjI1IDAwM0Y7Cis0NjJCIDAwM0Y7Cis0NjMxIDAwM0Y7Cis0NjM2IDAwM0Y7Cis0NjNDIDAwM0Y7Cis0NjQyIDAwM0Y7Cis0NjQ4IDAwM0Y7Cis0NjRFIDAwM0Y7Cis0NjU0IDAwM0Y7Cis0NjVBIDAwM0Y7Cis0NjYwIDAwM0Y7Cis0NjY2IDAwM0Y7Cis0NjZDIDAwM0Y7Cis0NjcyIDAwM0Y7Cis0Njc4IDAwM0Y7Cis0NjdFIDAwM0Y7Cis0Njg0IDAwM0Y7Cis0NjhBIDAwM0Y7Cis0NjkwIDAwM0Y7Cis0Njk2IDAwM0Y7Cis0NjlDIDAwM0Y7Cis0NkEyIDAwM0Y7Cis0NkE4IDAwM0Y7Cis0NkFFIDAwM0Y7Cis0NkI0IDAwM0Y7Cis0NkJBIDAwM0Y7Cis0NkJGIDAwM0Y7Cis0NkM1IDAwM0Y7Cis0NkNBIDAwM0Y7Cis0NkQwIDAwM0Y7Cis0NkQ2IDAwM0Y7Cis0NkRDIDAwM0Y7Cis0NkUyIDAwM0Y7Cis0NkU4IDAwM0Y7Cis0NkVFIDAwM0Y7Cis0NkY0IDAwM0Y7Cis0NkZBIDAwM0Y7Cis0NzAwIDAwM0Y7Cis0NzA2IDAwM0Y7Cis0NzBDIDAwM0Y7Cis0NzEyIDAwM0Y7Cis0NzE4IDAwM0Y7Cis0NzFFIDAwM0Y7Cis0NzI0IDAwM0Y7Cis0NzJBIDAwM0Y7Cis0NzMwIDAwM0Y7Cis0NzM2IDAwM0Y7Cis0NzNDIDAwM0Y7Cis0NzQyIDAwM0Y7Cis0NzQ4IDAwM0Y7Cis0NzRFIDAwM0Y7Cis0NzU0IDAwM0Y7Cis0NzVBIDAwM0Y7Cis0NzYwIDAwM0Y7Cis0NzY2IDAwM0Y7Cis0NzZDIDAwM0Y7Cis0NzcyIDAwM0Y7Cis0Nzc4IDAwM0Y7Cis0NzdFIDAwM0Y7Cis0Nzg0IDAwM0Y7Cis0NzhBIDAwM0Y7Cis0NzkwIDAwM0Y7Cis0Nzk2IDAwM0Y7Cis0NzlDIDAwM0Y7Cis0N0EyIDAwM0Y7Cis0N0E4IDAwM0Y7Cis0N0FFIDAwM0Y7Cis0N0I0IDAwM0Y7Cis0N0JBIDAwM0Y7Cis0N0MwIDAwM0Y7Cis0N0M2IDAwM0Y7Cis0N0NDIDAwM0Y7Cis0N0QyIDAwM0Y7Cis0N0Q4IDAwM0Y7Cis0N0RFIDAwM0Y7Cis0N0U0IDAwM0Y7Cis0N0VBIDAwM0Y7Cis0N0YwIDAwM0Y7Cis0N0Y2IDAwM0Y7Cis0N0ZDIDAwM0Y7Cis0ODAyIDAwM0Y7Cis0ODA4IDAwM0Y7Cis0ODBFIDAwM0Y7Cis0ODE0IDAwM0Y7Cis0ODFBIDAwM0Y7Cis0ODIwIDAwM0Y7Cis0ODI2IDAwM0Y7Cis0ODJDIDAwM0Y7Cis0ODMyIDAwM0Y7Cis0ODM4IDAwM0Y7Cis0ODNFIDAwM0Y7Cis0ODQ0IDAwM0Y7Cis0ODRBIDAwM0Y7Cis0ODUwIDAwM0Y7Cis0ODU2IDAwM0Y7Cis0ODVDIDAwM0Y7Cis0ODYyIDAwM0Y7Cis0ODY4IDAwM0Y7Cis0ODZFIDAwM0Y7Cis0ODc0IDAwM0Y7Cis0ODdBIDAwM0Y7Cis0ODgwIDAwM0Y7Cis0ODg2IDAwM0Y7Cis0ODhDIDAwM0Y7Cis0ODkyIDAwM0Y7Cis0ODk4IDAwM0Y7Cis0ODlFIDAwM0Y7Cis0OEE0IDAwM0Y7Cis0OEFBIDAwM0Y7Cis0OEIwIDAwM0Y7Cis0OEI2IDAwM0Y7Cis0OEJDIDAwM0Y7Cis0OEMyIDAwM0Y7Cis0OEM4IDAwM0Y7Cis0OENFIDAwM0Y7Cis0OEQ0IDAwM0Y7Cis0OERBIDAwM0Y7Cis0OEUwIDAwM0Y7Cis0OEU2IDAwM0Y7Cis0OEVDIDAwM0Y7Cis0OEYyIDAwM0Y7Cis0OEY4IDAwM0Y7Cis0OEZFIDAwM0Y7Cis0OTA0IDAwM0Y7Cis0OTBBIDAwM0Y7Cis0OTEwIDAwM0Y7Cis0OTE2IDAwM0Y7Cis0OTFDIDAwM0Y7Cis0OTIyIDAwM0Y7Cis0OTI4IDAwM0Y7Cis0OTJFIDAwM0Y7Cis0OTM0IDAwM0Y7Cis0OTNBIDAwM0Y7Cis0OTQwIDAwM0Y7Cis0OTQ2IDAwM0Y7Cis0OTRDIDAwM0Y7Cis0OTUyIDAwM0Y7Cis0OTU4IDAwM0Y7Cis0OTVFIDAwM0Y7Cis0OTY0IDAwM0Y7Cis0OTZBIDAwM0Y7Cis0OTcwIDAwM0Y7Cis0OTc2IDAwM0Y7Cis0OTdDIDAwM0Y7Cis0OTgyIDAwM0Y7Cis0OTg4IDAwM0Y7Cis0OThFIDAwM0Y7Cis0OTk0IDAwM0Y7Cis0OTk5IDAwM0Y7Cis0OTlGIDAwM0Y7Cis0OUE1IDAwM0Y7Cis0OUFCIDAwM0Y7Cis0OUIxIDAwM0Y7Cis0OUI3IDAwM0Y7Cis0OUJEIDAwM0Y7Cis0OUMzIDAwM0Y7Cis0OUM5IDAwM0Y7Cis0OUNGIDAwM0Y7Cis0OUQ1IDAwM0Y7Cis0OURCIDAwM0Y7Cis0OUUxIDAwM0Y7Cis0OUU2IDAwNDE7Cis0OUVDIDAwM0Y7Cis0OUYyIDAwM0Y7Cis0OUY4IDAwM0Y7Cis0OUZFIDAwM0Y7Cis0QTA0IDAwM0Y7Cis0QTBBIDAwM0Y7Cis0QTEwIDAwM0Y7Cis0QTE2IDAwM0Y7Cis0QTFDIDAwM0Y7Cis0QTIyIDAwM0Y7Cis0QTI4IDAwM0Y7Cis0QTJFIDAwM0Y7Cis0QTM0IDAwM0Y7Cis0QTNBIDAwM0Y7Cis0QTQwIDAwM0Y7Cis0QTQ2IDAwM0Y7Cis0QTRDIDAwM0Y7Cis0QTUyIDAwM0Y7Cis0QTU4IDAwM0Y7Cis0QTVFIDAwM0Y7Cis0QTY0IDAwM0Y7Cis0QTZBIDAwM0Y7Cis0QTZGIDAwM0Y7Cis0QTc1IDAwM0Y7Cis0QTdBIDAwM0Y7Cis0QTgwIDAwM0Y7Cis0QTg2IDAwM0Y7Cis0QThDIDAwM0Y7Cis0QTkyIDAwM0Y7Cis0QTk4IDAwM0Y7Cis0QTlFIDAwM0Y7Cis0QUE0IDAwM0Y7Cis0QUFBIDAwM0Y7Cis0QUIwIDAwM0Y7Cis0QUI1IDAwM0Y7Cis0QUJCIDAwM0Y7Cis0QUMxIDAwM0Y7Cis0QUM3IDAwM0Y7Cis0QUNEIDAwM0Y7Cis0QUQzIDAwM0Y7Cis0QUQ5IDAwM0Y7Cis0QURGIDAwM0Y7Cis0QUU1IDAwM0Y7Cis0QUVCIDAwM0Y7Cis0QUYxIDAwM0Y7Cis0QUY3IDAwM0Y7Cis0QUZEIDAwM0Y7Cis0QjAzIDAwM0Y7Cis0QjA5IDAwM0Y7Cis0QjBGIDAwM0Y7Cis0QjE1IDAwM0Y7Cis0QjFCIDAwM0Y7Cis0QjIxIDAwM0Y7Cis0QjI3IDAwM0Y7Cis0QjJEIDAwM0Y7CisyRkEwMyAwMDIxOworNEIzOCAwMDNGOworNEIzRSAwMDNGOworNEI0NCAwMDNGOworNEI0QSAwMDNGOworNEI1MCAwMDNGOworNEI1NiAwMDNGOworNEI1QyAwMDNGOworNEI2MiAwMDNGOworNEI2OCAwMDNGOworNEI2RSAwMDNGOworNEI3NCAwMDNGOworNEI3QSAwMDNGOworNEI4MCAwMDNGOworNEI4NiAwMDNGOworNEI4QyAwMDNGOworNEI5MiAwMDNGOworNEI5OCAwMDNGOworNEI5RSAwMDNGOworNEJBNCAwMDNGOworNEJBQSAwMDNGOworNEJCMCAwMDNGOworNEJCNiAwMDNGOworNEJCQyAwMDNGOworNEJDMiAwMDNGOworNEJDOCAwMDNGOworMkZBMDggMDAyMTsKKzRCRDMgMDAzRjsKKzRCRDkgMDAzRjsKKzRCREYgMDAzRjsKKzRCRTUgMDAzRjsKKzRCRUIgMDAzRjsKKzRCRjEgMDAzRjsKKzRCRjcgMDAzRjsKKzRCRkQgMDAzRjsKKzRDMDMgMDAzRjsKKzRDMDkgMDAzRjsKKzRDMEYgMDAzRjsKKzRDMTUgMDAzRjsKKzRDMUIgMDAzRjsKKzRDMjEgMDAzRjsKKzRDMjcgMDAzRjsKKzRDMkQgMDAzRjsKKzRDMzMgMDAzRjsKKzRDMzkgMDAzRjsKKzRDM0YgMDAzRjsKKzRDNDUgMDAzRjsKKzRDNEIgMDAzRjsKKzRDNTEgMDAzRjsKKzRDNTcgMDAzRjsKKzRDNUQgMDAzRjsKKzRDNjMgMDAzRjsKKzRDNjkgMDAzRjsKKzRDNkYgMDAzRjsKKzRDNzUgMDAzRjsKKzRDN0IgMDAzRjsKKzRDODEgMDAzRjsKKzRDODcgMDAzRjsKKzRDOEQgMDAzRjsKKzRDOTMgMDAzRjsKKzRDOTkgMDAzRjsKKzRDOUYgMDAzRjsKKzRDQTUgMDAzRjsKKzRDQUIgMDAzRjsKKzRDQjEgMDAzRjsKKzRDQjcgMDAzRjsKKzRDQkQgMDAzRjsKKzRDQzMgMDAzRjsKKzRDQzkgMDAzRjsKKzRDQ0UgMDA0MTsKKzRDRDQgMDAzRjsKKzRDREEgMDAzRjsKKzRDRTAgMDAzRjsKKzRDRTYgMDAzRjsKKzRDRUMgMDAzRjsKKzRDRjEgMDAzRjsKKzRDRjcgMDAzRjsKKzRDRkMgMDAzRjsKKzREMDIgMDAzRjsKKzREMDggMDAzRjsKKzREMEUgMDAzRjsKKzREMTQgMDAzRjsKKzREMUEgMDAzRjsKKzREMjAgMDAzRjsKKzREMjYgMDAzRjsKKzREMkMgMDAzRjsKKzREMzIgMDAzRjsKKzREMzggMDAzRjsKKzREM0UgMDAzRjsKKzRENDQgMDAzRjsKKzRENEEgMDAzRjsKKzRENTAgMDAzRjsKKzJGQTE2IDAwMjE7Cis0RDVCIDAwM0Y7Cis0RDYxIDAwM0Y7Cis0RDY3IDAwM0Y7Cis0RDZEIDAwM0Y7Cis0RDczIDAwM0Y7Cis0RDc5IDAwM0Y7Cis0RDdGIDAwM0Y7Cis0RDg1IDAwM0Y7Cis0RDhCIDAwM0Y7Cis0RDkxIDAwM0Y7Cis0RDk3IDAwM0Y7Cis0RDlEIDAwM0Y7Cis0REEzIDAwM0Y7Cis0REE5IDAwM0Y7Cis0REFGIDAwM0Y7Cis0REI1IDAwM0Y7CisyMDAwNSAwMDNGOworMkY5RDkgMDAzRjsKKzJGODYxIDAwM0Y7CisyRjg4OSAwMDNGOworRkFDRiAwMDNGOworMkY5ODkgMDAzRjsKKzJGOEYwIDAwM0Y7CisyRjkxMCAwMDNGOworMkY5MjcgMDAzRjsKKzJGOTQyIDAwM0Y7CisyRjk1MiAwMDNGOworMkY5NjEgMDAzRjsKKzJGOTczIDAwM0Y7CisyRjk4NyAwMDNGOworMkY5QUQgMDAzRjsKKzJGOUNDIDAwM0Y7CisyRjlFNSAwMDNGOworMkY5RkIgMDAzRjsKKzJGQTEzIDAwM0Y7CisyQTZEMyAwMDNGOworRTAwMSAwMDNGOworRjhGQiAwMDNGOworQzAwMDAgMDAzRjsKK0UwMDA1IDAwM0Y7CitGMDAwNSAwMDNGOworRjAwRkQgMDAzRjsKK0ZGRjA1IDAwM0Y7CitGRkZGRCAwMDNGOworMTAwMDA1IDAwM0Y7CisxMDAwRkQgMDAzRjsKKzEwRkYwNSAwMDNGOworMTBGRkZEIDAwM0Y7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvSUROQVRlc3RJbnB1dC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvSUROQVRlc3RJbnB1dC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRhZDA5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9JRE5BVGVzdElucHV0LnR4dApAQCAtMCwwICsxLDEyNjYgQEAKKz09PT09CitkZXNjOiBDb3B5cmlnaHQgMjAwMy0yMDA1IGh0dHA6Ly9pZG5jb25uZWN0LmpkbmEuanAvdGVzdGJlZC5odG1sIAorbmFtZWJhc2U6IDwwMEVEPmRuCituYW1ldXRmODogPz9kbgorbmFtZXpvbmU6IHhuLS1kbi1tamEKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDI1MDI5MTUzCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0xLTEgSGFzIG9uZSBJRE4KK25hbWViYXNlOiA8MDBFRD5kbgorbmFtZXV0Zjg6ID8/ZG4KK25hbWV6b25lOiB4bi0tZG4tbWphCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyNTAyOTE1MworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMS0yIEhhcyB0d28gSUROcworbmFtZWJhc2U6IDwwMEVCPnguPDAwRUQ+ZG4KK25hbWV1dGY4OiA/P3guPz9kbgorbmFtZXpvbmU6IHhuLS14LWVnYS54bi0tZG4tbWphCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMjcyMTE0MQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMi0xIExhdGluLTEKK25hbWViYXNlOiA8MDBFNT48MDBGRT48MDBFNz4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0tNWNhZTJlCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0MTU0MjYyMAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMi0yIExhdGluIEV4dGVuZGVkIEEKK25hbWViYXNlOiA8MDEwMz5iPDAxMDk+CituYW1ldXRmODogPz9iPz8KK25hbWV6b25lOiB4bi0tYi1yaGF0CitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3MjIzODYxNworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMi0zIExhdGluIEV4dGVuZGVkIEIKK25hbWViYXNlOiA8MDIyNz48MDE4MD48MDE4OD4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbGhhcTk4YgorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDg0NjQzNjEKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTItNCBMYXRpbiBFeHRlbmRlZCBBZGRpdGlvbmFsCituYW1lYmFzZTogPDFFMDE+PDFFMDM+PDFFMDk+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTJmZ2VzCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0OTMwMTIzMAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy0xIEhhbgorbmFtZWJhc2U6IDw0RTNGPjw0RUJBPjw1QzM4PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS14aXFwbGoxN2EKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDU4MzY3MTEzCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTIgSGlyYWdhbmEKK25hbWViYXNlOiA8MzA0Qj48MzA0Qz48MzA0RD4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tdThqY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDU3MDA2MTk3CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTMgS2F0YWthbmEKK25hbWViYXNlOiA8MzBBQj48MzBBQz48MzBBRD4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbGNrY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDgxODI2OTkyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTQgSGFuZ3VsIEphbW8KK25hbWViYXNlOiA8MTEwMD48MTE2MT48MTFBOD4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tcDM5YQorZmFpbHpvbmUxOiB4bi0teXBkOHFyaAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0NDIyODM0NgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy01IEhhbmd1bAorbmFtZWJhc2U6IDxBQzY5PjxCNEM2PjxDMDNBPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1vNjlhcTJubDBqCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3OTIzNTYwOAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy02IFlpCituYW1lYmFzZTogPEEwMEE+PEEwMjA+PEEyQjg+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTZsN2FyYnk3agorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogOTk1NDk3MjAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtNyBHcmVlaworbmFtZWJhc2U6IDwwM0IxPjwwM0IyPjwwM0IzPgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS1teGFjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogODM4NTk5MTIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtOCBHcmVlayBFeHRlbmRlZAorbmFtZWJhc2U6IDwxRjAyPjwxRjI2PjwxRjU1PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1mbmc3ZHBnCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyMjUwMTMzOQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy05IEN5cmlsbGljCituYW1lYmFzZTogPDA0MzA+PDA0MzE+PDA0MzI+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLTgwYWNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA5ODg3MTc1MQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy0xMCBBcm1laWFuCituYW1lYmFzZTogPDA1NjE+PDA1NjI+PDA1NjM+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLXk5YWNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyMzY4NzAxNQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy0xMSBHZW9yZ2lhbgorbmFtZWJhc2U6IDwxMEQwPjwxMEQxPjwxMEQyPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1sb2RjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzA0OTk1ODkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTQtMSBTeW1ib2xzCituYW1lYmFzZTogPDIyMjE+PDIxQkE+PDIyODI+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWI3Z3hvbWsKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDI0NjE3NjM4CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTEgRGV2YW5hZ2FyaQorbmFtZWJhc2U6IDwwOTE1PjwwOTE2PjwwOTE3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS0xMWJjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMTg0NzcyMjMKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMiBCZW5nYWxpCituYW1lYmFzZTogPDA5OTU+PDA5OTY+PDA5OTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLXA1YmNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAxMTQ3NzkwNAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0zIEd1cm11a2hpCituYW1lYmFzZTogPDBBMTU+PDBBMTY+PDBBMTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWQ5YmNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3MTU0MzUwNgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS00IEd1amFyYXRpCituYW1lYmFzZTogPDBBOTU+PDBBOTY+PDBBOTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTBkY2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3NTI2ODc2MAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS01IE9yaXlhCituYW1lYmFzZTogPDBCMTU+PDBCMTY+PDBCMTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLW9oY2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzNjA3OTc0NworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS02IFRhbWlsCituYW1lYmFzZTogPDBCOTU+PDBCOTk+PDBCOUE+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWNsY2lkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzOTg0MTQ0NgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS03IFRlbHVndQorbmFtZWJhc2U6IDwwQzE1PjwwQzE2PjwwQzE3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS16b2NjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMzQ0Mzg4MDgKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtOCBLYW5uYWRhCituYW1lYmFzZTogPDBDOTU+PDBDOTY+PDBDOTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLW5zY2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0MjMwMzQ2NQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS05IE1hbGF5YWxhbQorbmFtZWJhc2U6IDwwRDE1PjwwRDE2PjwwRDE3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1id2NjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMTE4MTM1NTkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMTAgU2luaGFsYQorbmFtZWJhc2U6IDwwRDlBPjwwRDlCPjwwRDlDPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS0zemNjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogODk4MjMyMDkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMTEgVGhhaQorbmFtZWJhc2U6IDwwRTAxPjwwRTAyPjwwRTAzPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS0xMmNjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogOTQ5OTI4NDIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMTIgTGFvCituYW1lYmFzZTogPDBFODE+PDBFODI+PDBFODQ+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLXA2Y2NnCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0MjQyNDMzOAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xMyBUaWJldGFuCituYW1lYmFzZTogPDBGNDA+PDBGNDE+PDBGNDI+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTVjZGNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyNjk2Mjc3OAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xNCBNeWFubWFyCituYW1lYmFzZTogPDEwMDA+PDEwMDE+PDEwMDI+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLW5pZGNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwOTgyNDYxMQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xNSBLaG1lcgorbmFtZWJhc2U6IDwxNzgwPjwxNzgxPjwxNzgyPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1pMmVjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDgwNzExNTYKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMTYgTW9uZ29saWFuCituYW1lYmFzZTogPDE4MjA+PDE4MjE+PDE4MjI+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTI2ZWNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0MDEzMTU3MgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNi0xIEFyYWJpYworbmFtZWJhc2U6IDwwNjI3PjwwNjI4PjwwNjI5PgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS1tZ2JjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMDY0MTQ4MTcKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTYtMiBIZWJyZXcKK25hbWViYXNlOiA8MDVEMD48MDVEMT48MDVEMj4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0tNGRiY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQxOTk2NzA1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS02LTMgU3lyaWFjCituYW1lYmFzZTogPDA3MTA+PDA3MTE+PDA3MTI+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLTltYmNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3NzkyNTA4MAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNy0xIEFTQ0lJIGFuZCBub24tTGF0aW4KK25hbWViYXNlOiBhYmM8MzBBQj48MzBBQz48MzBBRD4KK25hbWV1dGY4OiBhYmM/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tYWJjLW1qNGJmZworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMTQzMzMzODAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTctMiBMYXRpbiAobm9uLUFTQ0lJKSBhbmQgbm9uLUxhdGluCituYW1lYmFzZTogPDAwRTU+PDAwRkU+PDAwRTc+PDMwQUI+PDMwQUM+PDMwQUQ+CituYW1ldXRmODogPz8/Pz8/Pz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTVjYWUyZTMyOHdmYWcKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDAwODQ4Mjk5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTEtMSBJZiBVc2VTVEQzQVNDSUlSdWxlczogSW5jbHVkZXMgISBiZWZvcmUgTmFtZXByZXAKK25hbWViYXNlOiA8MDBFRD48MDAyMT5kbgorbmFtZXV0Zjg6ID8/IWRuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS0hZG4tcW1hCitmYWlsem9uZTI6IAordG9rZW46IDg5NTcxMTgxCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTEtMiBJZiBVc2VTVEQzQVNDSUlSdWxlczogSW5jbHVkZXMgJCBiZWZvcmUgTmFtZXByZXAKK25hbWViYXNlOiA8MDBFRD48MDAyND5kbgorbmFtZXV0Zjg6ID8/JGRuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS0kZG4tcW1hCitmYWlsem9uZTI6IAordG9rZW46IDA2OTY1OTM3CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTEtMyBJZiBVc2VTVEQzQVNDSUlSdWxlczogSW5jbHVkZXMgKyBiZWZvcmUgTmFtZXByZXAKK25hbWViYXNlOiA8MDBFRD48MDAyQj5kbgorbmFtZXV0Zjg6ID8/K2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS0rZG4tcW1hCitmYWlsem9uZTI6IAordG9rZW46IDk4OTY3OTUxCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTItMSBJZiBVc2VTVEQzQVNDSUlSdWxlczogTGVhZGluZyBoeXBoZW4gYmVmb3JlIE5hbWVwcmVwCituYW1lYmFzZTogPDAwMkQ+PDAwRUQ+MWRuCituYW1ldXRmODogLT8/MWRuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS0tMWRuLXZwYQorZmFpbHpvbmUyOiAKK3Rva2VuOiA2NTQ1NzEwMAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy0yLTIgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IFRyYWlsaW5nIGh5cGhlbiBiZWZvcmUgTmFtZXByZXAKK25hbWViYXNlOiA8MDBFRD4xZG48MDAyRD4KK25hbWV1dGY4OiA/PzFkbi0KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLTFkbi0tdXBhCitmYWlsem9uZTI6IAordG9rZW46IDg1NjI5NzE0CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTMtMSBJZiBVc2VTVEQzQVNDSUlSdWxlczogR2V0cyBhICsgYWZ0ZXIgTmFtZXByZXAKK25hbWViYXNlOiA8MDBFRD48RkYwQj5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTAzMzF4CitmYWlsem9uZTI6IAordG9rZW46IDk1MjM2NjIwCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTMtMiBJZiBVc2VTVEQzQVNDSUlSdWxlczogR2V0cyBhID0gYWZ0ZXIgTmFtZXByZXAKK25hbWViYXNlOiA8MDBFRD48MjA3Qz5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTAzNDNhCitmYWlsem9uZTI6IAordG9rZW46IDA0OTYwNjY0CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTQtMSBJZiBVc2VTVEQzQVNDSUlSdWxlczogTGVhZGluZyBoeXBoZW4gYWZ0ZXIgTmFtZXByZXAKK25hbWViYXNlOiA8RkU2Mz48MDBFRD4yZG4KK25hbWV1dGY4OiA/Pz8/PzJkbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tMmRuLXFtYTMyODYzYQorZmFpbHpvbmUyOiB4bi0tLTJkbi12cGEKK3Rva2VuOiA1MzUxMjA2OQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy00LTIgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IFRyYWlsaW5nIGh5cGhlbiBhZnRlciBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEVEPjJkbjxGRjBEPgorbmFtZXV0Zjg6ID8/MmRuPz8/CituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS0yZG4tcW1hNzkzNjNhCitmYWlsem9uZTI6IHhuLS0yZG4tLXVwYQordG9rZW46IDM5OTM4NjUzCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi00LTEgQWxsLUFTQ0lJIGNoZWNrLCBMYXRpbgorbmFtZWJhc2U6IDwwMEI5PjEKK25hbWV1dGY4OiA/PzEKK25hbWV6b25lOiAxMQorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDM2MTEzNzQKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTQtMiBBbGwtQVNDSUkgY2hlY2ssIHN5bWJvbAorbmFtZWJhc2U6IDwyMTY1PnZpCituYW1ldXRmODogPz8/dmkKK25hbWV6b25lOiB2aXZpCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3OTkzOTk5MworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItNC0zIEFsbC1BU0NJSSBjaGVjaywgc2hhcnAgUworbmFtZWJhc2U6IDwwMERGPnNzCituYW1ldXRmODogPz9zcworbmFtZXpvbmU6IHNzc3MKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDcxMjkyNTMwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi01LTEgQUNFIHByZWZpeCBleGlzdHMgYmVmb3JlIE5hbWVwcmVwCituYW1lYmFzZTogeG4tLTwwMEVGPmRuCituYW1ldXRmODogeG4tLT8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLXhuLS1kbi1zamEKK2ZhaWx6b25lMjogeG4tLWRuLXNqYQordG9rZW46IDMyODQxNTE1CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi01LTIgQUNFIHByZWZpeCBhcHBlYXJzIGFmdGVyIE5hbWVwcmVwCituYW1lYmFzZTogPDIxNzk+bi0tPDAwRTQ+ZG4KK25hbWV1dGY4OiA/Pz9uLS0/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS14bi0tZG4tdWlhCitmYWlsem9uZTI6IHhuLS1kbi11aWEKK3Rva2VuOiA1Mjk5NDYzMQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItOC0xIFplcm8tbGVuZ3RoIGxhYmVsIGFmdGVyIE5hbWVwcmVwCituYW1lYmFzZTogPDAwQUQ+CituYW1ldXRmODogCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1rYmEKK2ZhaWx6b25lMjogeG4tLQordG9rZW46IDE4NDIwMDM3CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi05LTEgVSszMDAyIGFjdHMgYXMgYSBsYWJlbCBzZXBhcmF0b3IKK25hbWViYXNlOiAzMDAyLXRlc3Q8MzAwMj48MDBFRD5kbgorbmFtZXV0Zjg6IDMwMDItdGVzdD8/Pz8/ZG4KK25hbWV6b25lOiAzMDAyLXRlc3QueG4tLWRuLW1qYQorZmFpbHpvbmUxOiB4bi0tMzAwMi10ZXN0ZG4td2NiMjA4N20KK2ZhaWx6b25lMjogCit0b2tlbjogMTQyMTc0MjIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTktMiBVK0ZGMEUgYWN0cyBhcyBhIGxhYmVsIHNlcGFyYXRvcgorbmFtZWJhc2U6IGZmMGUtdGVzdDxGRjBFPjwwMEVEPmRuCituYW1ldXRmODogZmYwZS10ZXN0Pz8/Pz9kbgorbmFtZXpvbmU6IGZmMGUtdGVzdC54bi0tZG4tbWphCitmYWlsem9uZTE6IHhuLS1mZjBlLXRlc3Rkbi13Y2I0NTg2NWYKK2ZhaWx6b25lMjogCit0b2tlbjogOTQ1NzkxNzkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTktMyBVK0ZGNjEgYWN0cyBhcyBhIGxhYmVsIHNlcGFyYXRvcgorbmFtZWJhc2U6IGZmNjEtdGVzdDxGRjYxPjwwMEVEPmRuCituYW1ldXRmODogZmY2MS10ZXN0Pz8/Pz9kbgorbmFtZXpvbmU6IGZmNjEtdGVzdC54bi0tZG4tbWphCitmYWlsem9uZTE6IHhuLS1mZjYxLXRlc3Rkbi13Y2IzMzk3NWYKK2ZhaWx6b25lMjogCit0b2tlbjogMjcwODQwNDIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAzLTItMSBTaGFycCBTIGNvbnZlcnNpb247IHNob3VsZCBkaXNwbGF5IGFzIG08MDBFQj5zcworbmFtZWJhc2U6IHhuLS1tPDAwREY+LWptYQorbmFtZXV0Zjg6IHhuLS1tPz8tam1hCituYW1lem9uZTogbTwwMEVCPnNzCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4NTE0MjQ0OQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy0zLTEgT2xkIHByZWZpeDsgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGU7PGljdT4gSUNVIHdpbGwgdHJlYXQgdGhpcyBhcyBBU0NJSS4gVGhpcyBzZXF1ZW5jZSBpcyBub3QgZXhwbGljaXRseSBwcm9oaWJpdGVkIGJ5IHRoZSBSRkMuPC9pY3U+CituYW1lYmFzZTogaWVzZy0tZG4tbWphCituYW1ldXRmODogaWVzZy0tZG4tbWphCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzNTk5NjM1OAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy0zLTIgT2xkIHByZWZpeDsgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGU7PGljdT4gSUNVIHdpbGwgdHJlYXQgdGhpcyBhcyBBU0NJSS4gVGhpcyBzZXF1ZW5jZSBpcyBub3QgZXhwbGljaXRseSBwcm9oaWJpdGVkIGJ5IHRoZSBSRkMuPC9pY3U+CituYW1lYmFzZTogaWVzZ2RuLW1qYQorbmFtZXV0Zjg6IGllc2dkbi1tamEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDEzNjkzNDY3CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTMtMyBPbGQgcHJlZml4OyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZTs8aWN1PiBJQ1Ugd2lsbCB0cmVhdCB0aGlzIGFzIEFTQ0lJLiBUaGlzIHNlcXVlbmNlIGlzIG5vdCBleHBsaWNpdGx5IHByb2hpYml0ZWQgYnkgdGhlIFJGQy48L2ljdT4KK25hbWViYXNlOiBicS0tZG4tbWphCituYW1ldXRmODogYnEtLWRuLW1qYQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzcwNDk3MTkKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNS0xIE5vbi1BU0NJSSBjb2RlIHBvaW50IGJlZm9yZSB0aGUgbGFzdCBoeXBoZW47XAorIHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLWQ8MDBGMT4tbWphCituYW1ldXRmODogeG4tLWQ/Py1tamEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDUzMDQzMTcxCitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTUtMiBOb24tYWxwaGFudW1lcmljIGNvZGUgcG9pbnQgYWZ0ZXIgdGhlIGxhc3QgaHlwaGVuO1wKKyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS1kbi1taisKK25hbWV1dGY4OiB4bi0tZG4tbWorCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyNDYyNjQ5NAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy01LTMgRW5kcyBpbiB0aGUgbWlkZGxlIG9mIGFuIGVuY29kZWQgZGVsdGEgdmFsdWU7XAorIHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLWRuLW1qCituYW1ldXRmODogeG4tLWRuLW1qCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzMDkyMTEzMgorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy02LTEgTmFtZXByZXAgLS0gcHJvaGliaXRlZCBjaGFyYWN0ZXIgVStFMDAwO1wKKyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS1lMDAwZG4tbDcwNGEKK25hbWV1dGY4OiB4bi0tZTAwMGRuLWw3MDRhCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMjM1OTc1MworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy02LTIgSWYgdXNpbmcgVXNlU1REM0FTQ0lJUnVsZXMsIFN0ZXAgM2EgLS0gbGVhZGluZyBoeXBoZW47IHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLS0zZG4tdnBhCituYW1ldXRmODogeG4tLS0zZG4tdnBhCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA5OTc5NTE2NQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy02LTMgSWYgdXNpbmcgVXNlU1REM0FTQ0lJUnVsZXMsIFN0ZXAgM2IgLS0gdHJhaWxpbmcgaHlwaGVuOyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS0zZG4tLXVwYQorbmFtZXV0Zjg6IHhuLS0zZG4tLXVwYQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogODYwNTE3MTcKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNi00IFN0ZXAgNSAtLSBwcmVmaXggZXhpc3RzOyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS14bi0tZG4tNnZhCituYW1ldXRmODogeG4tLXhuLS1kbi02dmEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDAyNTA2Nzg5CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTctMSBQdW55Y29kZSB3YXMgbm90IG5lY2Vzc2FyeTsgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0taWRuLQorbmFtZXV0Zjg6IHhuLS1pZG4tCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyMTY3NTkxOAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy03LTIgU3RyaW5nIGRpZCBub3QgZ28gdGhyb3VnaCBOYW1lcHJlcDtcCisgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0tZG4tdmdhCituYW1ldXRmODogeG4tLWRuLXZnYQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMTg4MzI0NTQKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtOC0xIFNob3VsZCBzaG93IHRoZSBVbmljb2RlIDwwMEVEPjRkbiA7IDxpY3U+IENoYW5nZWQgbmFtZWJhc2UgYW5kIG5hbWV1dGY4IGZyb20geG4tLTRkbi1sbGEgdG8geG4tLTRkbi1xbWEgPC9pY3U+CituYW1lYmFzZTogeG4tLTRkbi1xbWEKK25hbWV1dGY4OiB4bi0tNGRuLXFtYQorbmFtZXpvbmU6IDwwMEVEPjRkbgorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjMzNzc0MzUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDQtMS0xLTEgMDBhZG91dDwwMEFEPjwwMEVEPmRuIC0+XAorIDAwYWRvdXQ8MDBFRD5kbgorbmFtZWJhc2U6IDAwYWRvdXQ8MDBBRD48MDBFRD5kbgorbmFtZXV0Zjg6IDAwYWRvdXQ/Pz8/ZG4KK25hbWV6b25lOiB4bi0tMDBhZG91dGRuLW01YQorZmFpbHpvbmUxOiB4bi0tMDBhZG91dGRuLWNuYTgxZQorZmFpbHpvbmUyOiAKK3Rva2VuOiAwNDI5OTk1MAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0xLTIgMjAwZG91dDwyMDBEPjwwMEVEPmRuIC0+XAorIDIwMGRvdXQ8MDBFRD5kbgorbmFtZWJhc2U6IDIwMGRvdXQ8MjAwRD48MDBFRD5kbgorbmFtZXV0Zjg6IDIwMGRvdXQ/Pz8/P2RuCituYW1lem9uZTogeG4tLTIwMGRvdXRkbi1tNWEKK2ZhaWx6b25lMTogeG4tLTIwMGRvdXRkbi1tNWExNjc4ZgorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMDY0MzI0MworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTEgc2ltcGxlY2FwPDAwNDQ+PDAwRUQ+ZG4gLT5cCisgc2ltcGxlY2FwPDAwNjQ+PDAwRUQ+ZG4KK25hbWViYXNlOiBzaW1wbGVjYXA8MDA0ND48MDBFRD5kbgorbmFtZXV0Zjg6IHNpbXBsZWNhcEQ/P2RuCituYW1lem9uZTogeG4tLXNpbXBsZWNhcGRkbi0xZmIKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDM2MjQ5Nzk1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItMiBsYXRpbnRvZ3JlZWs8MDBCNT48MDBFRD5kbiAtPlwKKyBsYXRpbnRvZ3JlZWs8MDNCQz48MDBFRD5kbgorbmFtZWJhc2U6IGxhdGludG9ncmVlazwwMEI1PjwwMEVEPmRuCituYW1ldXRmODogbGF0aW50b2dyZWVrPz8/P2RuCituYW1lem9uZTogeG4tLWxhdGludG9ncmVla2RuLWNtYjcxNmkKK2ZhaWx6b25lMTogeG4tLWxhdGludG9ncmVla2RuLWN4YTAxZworZmFpbHpvbmUyOiAKK3Rva2VuOiAwMzExNzQwNworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTMgbGF0aW5leHQ8MDBDNz48MDBFRD5kbiAtPlwKKyBsYXRpbmV4dDwwMEU3PjwwMEVEPmRuCituYW1lYmFzZTogbGF0aW5leHQ8MDBDNz48MDBFRD5kbgorbmFtZXV0Zjg6IGxhdGluZXh0Pz8/P2RuCituYW1lem9uZTogeG4tLWxhdGluZXh0ZG4tdjZhNmUKK2ZhaWx6b25lMTogeG4tLWxhdGluZXh0ZG4tdHdhMDdiCitmYWlsem9uZTI6IAordG9rZW46IDEwMjQzNTA1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItNCBzaGFycHM8MDBERj48MDBFRD5kbiAtPlwKKyBzaGFycHNzczwwMEVEPmRuCituYW1lYmFzZTogc2hhcnBzPDAwREY+PDAwRUQ+ZG4KK25hbWV1dGY4OiBzaGFycHM/Pz8/ZG4KK25hbWV6b25lOiB4bi0tc2hhcnBzc3Nkbi1yOGEKK2ZhaWx6b25lMTogeG4tLXNoYXJwc2RuLXZ5YTRsCitmYWlsem9uZTI6IAordG9rZW46IDg0OTIxNjU2CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItNSB0dXJraXNoaTwwMTMwPjwwMEVEPmRuIC0+XAorIHR1cmtpc2hpPDAwNjk+PDAzMDc+PDAwRUQ+ZG4KK25hbWViYXNlOiB0dXJraXNoaTwwMTMwPjwwMEVEPmRuCituYW1ldXRmODogdHVya2lzaGk/Pz8/ZG4KK25hbWV6b25lOiB4bi0tdHVya2lzaGlpZG4td2NiNzAxZQorZmFpbHpvbmUxOiB4bi0tdHVya2lzaGlkbi1yOGE3MWYKK2ZhaWx6b25lMjogCit0b2tlbjogMDIzODE3MzAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi02IGV4cHR3bzwwMTQ5PjwwMEVEPmRuIC0+XAorIGV4cHR3bzwwMkJDPjwwMDZFPjwwMEVEPmRuCituYW1lYmFzZTogZXhwdHdvPDAxNDk+PDAwRUQ+ZG4KK25hbWV1dGY4OiBleHB0d28/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZXhwdHdvbmRuLW01YTUwMmMKK2ZhaWx6b25lMTogeG4tLWV4cHR3b2RuLWgyYTMzZworZmFpbHpvbmUyOiAKK3Rva2VuOiAxMDU3NTIwMworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTcgYWRkZm9sZDwwM0QyPjwwMEVEPmRuIC0+XAorIGFkZGZvbGQ8MDNDNT48MDBFRD5kbgorbmFtZWJhc2U6IGFkZGZvbGQ8MDNEMj48MDBFRD5kbgorbmFtZXV0Zjg6IGFkZGZvbGQ/Pz8/ZG4KK25hbWV6b25lOiB4bi0tYWRkZm9sZGRuLW01YTEyMWYKK2ZhaWx6b25lMTogeG4tLWFkZGZvbGRkbi1tNWE0NjJmCitmYWlsem9uZTI6IAordG9rZW46IDMxNDkzMDQ0CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItOCBleHB0aHJlZTwxRjUyPjwwMEVEPmRuIC0+XAorIGV4cHRocmVlPDAzQzU+PDAzMTM+PDAzMDA+PDAwRUQ+ZG4KK25hbWViYXNlOiBleHB0aHJlZTwxRjUyPjwwMEVEPmRuCituYW1ldXRmODogZXhwdGhyZWU/Pz8/P2RuCituYW1lem9uZTogeG4tLWV4cHRocmVlZG4tcjhhNTg0NGcKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDY4MTQ0NjIyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItOSBub25ibXA8MTA0MDA+PDAwRUQ+ZG4gLT5cCisgbm9uYm1wPDEwNDI4PjwwMEVEPmRuCituYW1lYmFzZTogbm9uYm1wPDEwNDAwPjwwMEVEPmRuCituYW1ldXRmODogbm9uYm1wPz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tbm9uYm1wZG4taDJhMzQ3NDdkCitmYWlsem9uZTE6IHhuLS1ub25ibXBkbi1oMmEzNzA0NmQKK2ZhaWx6b25lMjogCit0b2tlbjogMzUzOTMyMTIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi0xMCBub25ibXB0b2FzY2lpPDFENDAwPjwwMEVEPmRuIC0+XAorIG5vbmJtcHRvYXNjaWlhPDAwRUQ+ZG4KK25hbWViYXNlOiBub25ibXB0b2FzY2lpPDFENDAwPjwwMEVEPmRuCituYW1ldXRmODogbm9uYm1wdG9hc2NpaT8/Pz8/P2RuCituYW1lem9uZTogeG4tLW5vbmJtcHRvYXNjaWlhZG4tbXNiCitmYWlsem9uZTE6IHhuLS1ub25ibXB0b2FzY2lpZG4taHBiNTQxMTJpCitmYWlsem9uZTI6IAordG9rZW46IDc4MTgyNTAyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0yLTEtMSByZWdjb21iPDAwNjU+PDAzMDE+PDAwRUQ+ZG4gLT5cCisgcmVnY29tYjwwMEU5PjwwMEVEPmRuCituYW1lYmFzZTogcmVnY29tYjwwMDY1PjwwMzAxPjwwMEVEPmRuCituYW1ldXRmODogcmVnY29tYmU/Pz8/ZG4KK25hbWV6b25lOiB4bi0tcmVnY29tYmRuLWg0YThiCitmYWlsem9uZTE6IHhuLS1yZWdjb21iZWRuLXI4YTc5NGQKK2ZhaWx6b25lMjogCit0b2tlbjogODc2NDcwNDUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTItMS0yIGNvbWJhbmRjYXNlPDAwNDU+PDAzMDE+PDAwRUQ+ZG4gLT5cCisgY29tYmFuZGNhc2U8MDBFOT48MDBFRD5kbgorbmFtZWJhc2U6IGNvbWJhbmRjYXNlPDAwNDU+PDAzMDE+PDAwRUQ+ZG4KK25hbWV1dGY4OiBjb21iYW5kY2FzZUU/Pz8/ZG4KK25hbWV6b25lOiB4bi0tY29tYmFuZGNhc2Vkbi1saGI0ZAorZmFpbHpvbmUxOiB4bi0tY29tYmFuZGNhc2VlZG4tY21iNTI2ZgorZmFpbHpvbmUyOiAKK3Rva2VuOiA2MTc0MTE4NQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMi0xLTMgYWRqY29tYjwwMEJBPjwwMzAxPjwwMEVEPmRuIC0+XAorIGFkamNvbWI8MDBGMz48MDBFRD5kbgorbmFtZWJhc2U6IGFkamNvbWI8MDBCQT48MDMwMT48MDBFRD5kbgorbmFtZXV0Zjg6IGFkamNvbWI/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1hZGpjb21iZG4tbTVhOWQKK2ZhaWx6b25lMTogeG4tLWFkamNvbWJkbi0xcWE1N2NwM3IKK2ZhaWx6b25lMjogCit0b2tlbjogMTQ4Mjg0MDIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTItMS00IGV4dGNvbWJvPDAwNjM+PDAzMDE+PDAwRUQ+ZG4gLT5cCisgZXh0Y29tYm88MDEwNz48MDBFRD5kbgorbmFtZWJhc2U6IGV4dGNvbWJvPDAwNjM+PDAzMDE+PDAwRUQ+ZG4KK25hbWV1dGY4OiBleHRjb21ib2M/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZXh0Y29tYm9kbi1yOGE1MmEKK2ZhaWx6b25lMTogeG4tLWV4dGNvbWJvY2RuLXdjYjkyMGUKK2ZhaWx6b25lMjogCit0b2tlbjogMjY2NTEyNzcKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTItMS01IGRvdWJsZWRpYWMxPDAwNzU+PDAzMDg+PDAzMDE+PDAwRUQ+ZG4gLT5cCisgZG91YmxlZGlhYzI8MDFEOD48MDBFRD5kbgorbmFtZWJhc2U6IGRvdWJsZWRpYWMxPDAwNzU+PDAzMDg+PDAzMDE+PDAwRUQ+ZG4KK25hbWV1dGY4OiBkb3VibGVkaWFjMXU/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1kb3VibGVkaWFjMWRuLTZpYjgzNmEKK2ZhaWx6b25lMTogeG4tLWRvdWJsZWRpYWMxdWRuLWNtYjUyNmZuZAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzMDE3NTU5NQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMi0xLTYgZG91YmxlZGlhYzI8MDA3NT48MDMwMT48MDMwOD48MDBFRD5kbiAtPlwKKyBkb3VibGVkaWFjMjwwMUQ4PjwwMEVEPmRuCituYW1lYmFzZTogZG91YmxlZGlhYzI8MDA3NT48MDMwMT48MDMwOD48MDBFRD5kbgorbmFtZXV0Zjg6IGRvdWJsZWRpYWMydT8/Pz8/P2RuCituYW1lem9uZTogeG4tLWRvdWJsZWRpYWMyZG4tNmliOHFzNzNhCitmYWlsem9uZTE6IHhuLS1kb3VibGVkaWFjMnVkbi1jbWI1MjZmb2QKK2ZhaWx6b25lMjogCit0b2tlbjogMzU2MDYxMDkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTItMi0xIG5ld25vcm08MkY4NzQ+PDAwRUQ+ZG4gLT5cCisgbmV3bm9ybTw1RjMzPjwwMEVEPmRuIHNob3VsZCBub3QgYmVjb21lIDw1RjUzPgorbmFtZWJhc2U6IG5ld25vcm08MkY4NzQ+PDAwRUQ+ZG4KK25hbWV1dGY4OiBuZXdub3JtPz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tbmV3bm9ybWRuLW01YTc4NTZ4CitmYWlsem9uZTE6IHhuLS1uZXdub3JtZG4tbTVhOTM5NngKK2ZhaWx6b25lMjogeG4tLW5ld25vcm1kbi1tNWE5OTY4eAordG9rZW46IDYxOTAxODEwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTEgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IFNwYWNpbmc7IDxpY3U+IFx1MDAyMCBpcyBwcm9oaWJpdGVkIGZyb20gdGhlIG91dHB1dCBvbmx5IHdoZW4gVXNlU1REM0FTQ0lJUnVsZXMgaXMgc2V0IDwvaWN1PgorbmFtZWJhc2U6IDwyMDAwPjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphMzM5MmEKK2ZhaWx6b25lMjogCit0b2tlbjogMTMyMjY4NzgKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtMiBDb250cm9sCituYW1lYmFzZTogPDA2REQ+PDAwRUQ+ZG4tMgorbmFtZXV0Zjg6ID8/Pz9kbi0yCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi0yLXVwYTMzMmcKK2ZhaWx6b25lMjogCit0b2tlbjogMDk4NzMzMTIKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtMyBQcml2YXRlIHVzZQorbmFtZWJhc2U6IDxFMDA1PjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphMTY1OXQKK2ZhaWx6b25lMjogCit0b2tlbjogMDM5MzcxODMKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtNCBQcml2YXRlIHVzZSwgbm9uLUJNUAorbmFtZWJhc2U6IDxGMDAwNT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamE3OTIyeAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3ODcwNzgyMworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy01IE5vbi1jaGFyYWN0ZXIKK25hbWViYXNlOiA8RkRERD48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTEyMTB4CitmYWlsem9uZTI6IAordG9rZW46IDQ0NDMyMTc4CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTYgTm9uLWNoYXJhY3Rlciwgbm9uLUJNUAorbmFtZWJhc2U6IDwxRkZGRT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamE3OTIyeAorZmFpbHpvbmUyOiAKK3Rva2VuOiA2OTE0MjY4NgorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy03IFN1cnJvZ2F0ZSBwb2ludHMKK25hbWViYXNlOiA8RDgwNT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTc5MjJ4CitmYWlsem9uZTI6IAordG9rZW46IDA1NDI0NTcxCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTggSW5hcHByb3ByaWF0ZSBmb3IgcGxhaW4KK25hbWViYXNlOiA8RkZGQT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTU4MjJ4CitmYWlsem9uZTI6IAordG9rZW46IDQ0ODI1ODI0CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTkgSW5hcHByb3ByaWF0ZSBmb3IgY2Fub25pY2FsCituYW1lYmFzZTogPDJGRjU+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamEzNzI5YgorZmFpbHpvbmUyOiAKK3Rva2VuOiA1MDkyNjEzNgorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy0xMCBDaGFuZ2UgZGlzcGxheSBzaW1wbGUKK25hbWViYXNlOiA8MjA2QT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTc1MzNhCitmYWlsem9uZTI6IAordG9rZW46IDU3OTUzMzEzCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTExIENoYW5nZSBkaXNwbGF5IFJUTAorbmFtZWJhc2U6IDwyMDBGPjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphMzk5MmEKK2ZhaWx6b25lMjogCit0b2tlbjogMzA3MDUyNzkKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtMTIgTGFuZ3VhZ2UgdGFncworbmFtZWJhc2U6IDxFMDAwMT48RTAwNDU+PEUwMDRFPjwwMDY4PjwwMDY5PmlkbgorbmFtZXV0Zjg6ID8/Pz8/Pz8/Pz8/P2hpaWRuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1oaWlkbi1rbTQzYWFhCitmYWlsem9uZTI6IAordG9rZW46IDQ0NTk4MDM5CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC00LTEgQXJhYmljIFJhbmRBTENhdC1MQ2F0LVJhbmRBTENhdAorbmFtZWJhc2U6IDwwNjI4PjwwMDZGPjwwNjM4PgorbmFtZXV0Zjg6ID8/bz8/CituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1vLTBtYzNjCitmYWlsem9uZTI6IAordG9rZW46IDc4MjMzMDUzCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC00LTIgQXJhYmljIFJhbmRBTENhdC1SYW5kQUxDYXQtb3RoZXIKK25hbWViYXNlOiA8MDYyOD48MDYzOD48MDA2Rj4KK25hbWV1dGY4OiA/Pz8/bworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tby0wbWMyYworZmFpbHpvbmUyOiAKK3Rva2VuOiA5NTI5OTYyMQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtNC0zIEFyYWJpYyBvdGhlci1SYW5kQUxDYXQtUmFuZEFMQ2F0CituYW1lYmFzZTogPDAwNkY+PDA2Mjg+PDA2Mzg+CituYW1ldXRmODogbz8/Pz8KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLW8tMW1jMmMKK2ZhaWx6b25lMjogCit0b2tlbjogNzk4MDcxNzYKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTQtNCBIZWJyZXcgUmFuZEFMQ2F0LUxDYXQtUmFuZEFMQ2F0CituYW1lYmFzZTogPDA1RDE+PDAwNkY+PDA1RTE+CituYW1ldXRmODogPz9vPz8KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLW8tMWhjM2MKK2ZhaWx6b25lMjogCit0b2tlbjogMzIyMjk0NTAKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTQtNSBIZWJyZXcgUmFuZEFMQ2F0LVJhbmRBTENhdC1vdGhlcgorbmFtZWJhc2U6IDwwNUQxPjwwNUUxPjwwMDZGPgorbmFtZXV0Zjg6ID8/Pz9vCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1vLTFoYzJjCitmYWlsem9uZTI6IAordG9rZW46IDUzMjEzMzQ4CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC00LTYgSGVicmV3IG90aGVyLVJhbmRBTENhdC1SYW5kQUxDYXQKK25hbWViYXNlOiA8MDA2Rj48MDVEMT48MDVFMT4KK25hbWV1dGY4OiBvPz8/PworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tby0yaGMyYworZmFpbHpvbmUyOiAKK3Rva2VuOiA5MDgzNTg2MAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDUtMS0xIFVuYXNzaWduZWQgaW4gQk1QOyB6b25lIGVkaXRvcnMgc2hvdWxkIHJlamVjdAorbmFtZWJhc2U6IDwwMjM3PjwwMEVEPmRuCituYW1ldXRmODogPz8/P2RuCituYW1lem9uZTogeG4tLWRuLW1qYTMzaworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogODMwNzk2MDIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA1LTEtMiBVbmFzc2luZ2VkIG91dHNpZGUgQk1QOyB6b25lIGVkaXRvcnMgc2hvdWxkIHJlamVjdAorbmFtZWJhc2U6IDwxMDIwNT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/P2RuCituYW1lem9uZTogeG4tLWRuLW1qYTc3MzR4CitmYWlsem9uZTE6IHhuLS1kbi1tamE3OTIyeAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMzY4MjkwMAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDUtMi0xIE5ld2x5IGFzc2lnbmVkIGluIEJNUDsgem9uZSBlZGl0b3JzIHNob3VsZCByZWplY3QKK25hbWViYXNlOiA8MDIzND48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz9kbgorbmFtZXpvbmU6IHhuLS1kbi1tamExMmsKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDk2NjM3NTAxCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNS0yLTIgTmV3bHkgYXNzaWduZWQgb3V0c2lkZSBvZiBCTVA7IHpvbmUgZWRpdG9ycyBzaG91bGQgcmVqZWN0CituYW1lYmFzZTogPDEwMDA1PjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZG4tbWphOTIzMngKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTc5MjJ4CitmYWlsem9uZTI6IAordG9rZW46IDk1NTM3Njk5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RhbGlhc2VzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NTVmZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcy5qYXZhCkBAIC0wLDAgKzEsMTA0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsZW1lbnRzX3Rlc3RhbGlhc2VzIGV4dGVuZHMgSUNVTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHB1YmxpYyBUZXN0RGF0YUVsZW1lbnRzX3Rlc3RhbGlhc2VzICAoKSB7CisgICAgICAgICAgc3VwZXIuY29udGVudHMgPSBkYXRhOworICAgIH0KKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJjb2xsYXRpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvdWsiKSwKKyAgICAgICAgICAgICAgICB9LAorLy8gQ2lyY3VsYXIgYWxpYXNlcyB0ZXN0IG1vdmVkIHRvIFRlc3RDaXJjdWxhckFsaWFzZXMKKy8vICAgICAgICAgICAgICAgeworLy8gICAgICAgICAgICAgICAgICAgImFhYSIsCisvLyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdGFsaWFzZXMvYWFiIiksCisvLyAgICAgICAgICAgICAgICB9LAorLy8gICAgICAgICAgICAgICAgeworLy8gICAgICAgICAgICAgICAgICAgICJhYWIiLAorLy8gICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RhbGlhc2VzL2FhYSIpLAorLy8gICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJhbm90aGVyYWxpYXMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS91ay9jb2xsYXRpb25zL3N0YW5kYXJkIiksCisgICAgICAgICAgICAgICAgfSwKKy8vIE1vdmVkIHRvIFRlc3ROb25FeGlzdGluZworLy8gICAgICAgICAgICAgICAgeworLy8gICAgICAgICAgICAgICAgICAgICJub25leGlzdGluZyIsCisvLyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvdWsiKSwKKy8vICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAicmVmZXJlbmNpbmdhbGlhcyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RhbGlhc2VzL2Fub3RoZXJhbGlhcy9TZXF1ZW5jZSIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAic2ltcGxlYWxpYXMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0dHlwZXMvbWVudS9maWxlL29wZW4iKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmciLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvMSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC80IiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzUiKSwKKworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAidGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmciLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2V5QWxpYXMwUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvMSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2V5QWxpYXMyUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzM0xvc0FuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvNSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInpvbmVTdHJpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuIiksCisKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInpvbmVUZXN0cyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6b25lQWxpYXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzIiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6b25lQWxpYXMxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8zIiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6b25lQWxpYXMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8zLzAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdGNpcmN1bGFyYWxpYXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M1ODIyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzLmphdmEKQEAgLTAsMCArMSwzNyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMaXN0UmVzb3VyY2VCdW5kbGU7CisvKioKKyAqIEBhdXRob3IgUmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50c190ZXN0Y2lyY3VsYXJhbGlhcyAgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHB1YmxpYyBUZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzKCkgeworICAgICAgICAgIHN1cGVyLmNvbnRlbnRzID0gZGF0YTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJhYWEiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWIiKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImFhYiIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RjaXJjdWxhcmFsaWFzL2FhYyIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYWFjIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdGNpcmN1bGFyYWxpYXMvYWFhIiksCisgICAgICAgICAgICAgICAgfSAKKyAgICB9OworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3R0eXBlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZGI5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMuamF2YQpAQCAtMCwwICsxLDEzOCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsZW1lbnRzX3Rlc3R0eXBlcyBleHRlbmRzIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwdWJsaWMgVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMgICgpIHsKKyAgICAgICAgICBzdXBlci5jb250ZW50cyA9IGRhdGE7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYmluYXJ5dGVzdCIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQ29tcHJlc3NlZEJpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMDBcdTAwMEZcdTAwMDFcdTAyMDNcdTA0MDVcdTA2MDdcdTA4MDlcdTBBMEIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdTBDMERcdTBFMDAiKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5YXJyYXkiLAorICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5YmluIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5Db21wcmVzc2VkQmluYXJ5KG51bGwpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZW1wdHlleHBsaWNpdHN0cmluZyIsCisgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZW1wdHlpbnQiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigwKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5aW50diIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyW10geworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZW1wdHlzdHJpbmciLAorICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5dGFibGUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImltcG9ydHRlc3QiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkNvbXByZXNzZWRCaW5hcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDAwXHUwMDBGXHUwMDAxXHUwMjAzXHUwNDA1XHUwNjA3XHUwODA5XHUwQTBCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUwQzBEXHUwRTAwIiksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJpbnRlZ2VyYXJyYXkiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcltdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC0zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDQpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoNSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcig2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDcpLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibWVudSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4aXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4aXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3BlbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3BlbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzYXZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTYXZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm1pbnVzb25lIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoLTEpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAib25lIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMSksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJvbmVodW5kcmVkdHdlbnR5dGhyZWUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxMjMpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAicGx1c29uZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAic3RyaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJzdHJpbmdUYWJsZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAidGVzdF91bmRlcnNjb3JlcyIsCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG1lc3NhZ2UgLi4uLiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0ZXNjYXBlIiwKKyAgICAgICAgICAgICAgICAgICAgInRhYjpcdTAwMDkgY3I6XGYgZmY6XHUwMDBDIG5ld2xpbmU6XG4gYmFja3NsYXNoOlxcIiArCisgICAgICAgICAgICAgICAgICAgICIgcXVvdGU9XFxcJyBkb3VibGVRdW90ZT1cXFwiIHNpbmdsZXF1b3V0ZXM9JyciLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiemVyb3Rlc3QiLAorICAgICAgICAgICAgICAgICAgICAiYWJjXHUwMDAwZGVmIiwKKyAgICAgICAgICAgICAgICB9LAorICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS9lbmdsaXNoLmRpY3QgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS9lbmdsaXNoLmRpY3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTBmNDMwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpL2VuZ2xpc2guZGljdApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS93b3Jkcy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS93b3Jkcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTdlMDZhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpL3dvcmRzLnR4dApAQCAtMCwwICsxLDI5OTAgQEAKKy0tCistLXN1Y2gKK2EKK2EnYmVsLW1penJhaW0KK2EnaWFoCithYmF0ZQorYWJhdGVkCithYmRpY2F0ZWQKK2FiZWwKK2FiaSdkYQorYWJpZGUKK2FiaW0nYS1lbAorYWJpbSdlbGVjaAorYWJpbSdlbGVjaCdzCithYmxlCithYm9saXNoCithYm9saXNoaW5nCithYm9taW5hdGlvbgorYWJvdXQKK2Fib3ZlCithYnJhaGFtCithYnJhaGFtJ3MKK2FicmFtCithYnJhbSdzCithYnJvYWQKK2Fic2VudAorYWJzb2x1dGUKK2Fic29sdmVkCithYnVuZGFuY2UKK2FidW5kYW50bHkKK2FidXNlcworYWNjYWQKK2FjY2VwdAorYWNjZXB0ZWQKK2FjY29tbW9kYXRpb24KK2FjY29yZGluZworYWNjb3JkaW5nbHkKK2FjY291bnQKK2FjY3VzdG9tZWQKK2FjaGJvcgorYWNrbm93bGVkZ2VkCithY3F1aWVzY2UKK2FjcXVpcmVkCithY3Jvc3MKK2FjdAorYWN0cworYWRhaAorYWRhbQorYWRiZWVsCithZGQKK2FkZGVkCithZG1haAorYWRtaW5pc3RyYXRpb24KK2FkdWxsYW1pdGUKK2FkdmFuY2VkCithZHZpc2VyCithZmFyCithZmZlY3RlZAorYWZmbGljdGVkCithZmZsaWN0aW9uCithZnJhaWQKK2FmdGVyCithZnRlcndhcmQKK2FmdGVyd2FyZHMKK2FnYWluCithZ2FpbnN0CithZ2UKK2FnZXMKK2FnaWxlCithZ3JlZQorYWdyZWVkCithaHV6J3phdGgKK2FpCithaWQKK2FpcgorYWthbgorYWwnbG9uLWJhY3V0aAorYWxpZ2h0ZWQKK2FsaXZlCithbGwKK2FsbGVnaWFuY2UKK2FsbGlhbmNlcworYWxsaWVzCithbGxvdworYWxsb3dhbmNlCithbG1pZ2h0eQorYWxtbydkYWQKK2FsbW9uZAorYWxtb25kcworYWxvbmUKK2Fsb25nCithbG91ZAorYWxyZWFkeQorYWxzbworYWx0YXIKK2FsdGVyCithbHRlcmluZworYWx0aG91Z2gKK2FsdG9nZXRoZXIKK2FsdmFoCithbHZhbgorYW0KK2FtJ2FsZWsKK2FtJ3JhcGhlbAorYW1hbCdla2l0ZXMKK2FtYXplbWVudAorYW1lcmljYQorYW1tb25pdGVzCithbW9uZworYW1vbmdzdAorYW1vcml0ZQorYW1vcml0ZXMKK2Ftb3VudAorYW4KK2FuJ2FtaW0KK2FuYWgKK2FuZAorYW5lcgorYW5nZWwKK2FuZ2VscworYW5nZXIKK2FuZ3J5CithbmltYWwKK2FuaW1hbHMKK2FubmloaWxhdGlvbgorYW5vaW50ZWQKK2Fub3RoZXIKK2Fub3RoZXIncworYW5zd2VyCithbnN3ZXJlZAorYW55Cithbnl0aGluZworYW55d2hlcmUKK2FwYXJ0CithcHBlYWxlZAorYXBwZWFsaW5nCithcHBlYXIKK2FwcGVhcmVkCithcHBlYXNlCithcHBvaW50CithcHBvaW50ZWQKK2FwcHJvYWNoZWQKK2FwcHJvYWNoaW5nCithcHByb3ByaWF0aW9ucworYXByb25zCithcidhcmF0Cithcidpb2NoCithcid2YWRpdGVzCithcmFtCithcmFtZWFuCithcmFuCithcmJpdHJhcnkKK2FyY2hlcnMKK2FyZAorYXJlCithcmUnbGkKK2FyZWEKK2FyaXNlCithcmsKK2Fya2l0ZXMKK2FybWVkCithcm1pZXMKK2FybXMKK2FybXkKK2FybydkaQorYXJvc2UKK2Fyb3VuZAorYXJwYWNoJ3NoYWQKK2FycmF5ZWQKK2Fycml2ZQorYXJ0CithcworYXMnZW5hdGgKK2FzY2VuZGluZworYXNoJ2tlbmF6Cithc2gndGVyb3RoLWthcm5hJ2ltCithc2hhbWVkCithc2hiZWwKK2FzaGVyCithc2hlcidzCithc2hlcworYXNpZGUKK2FzaworYXNrZWQKK2Fza3MKK2FzbGVlcAorYXNzCithc3MncworYXNzZW1ibGUKK2Fzc2VtYmxlZAorYXNzZW50Cithc3NlcworYXNzaHUncmltCithc3NodXIKK2Fzc3VtZQorYXNzdXJlZAorYXNzeXJpYQorYXQKK2F0YWQKK2F0ZQorYXR0YWNrCithdHRhY2tlZAorYXR0YWluZWQKK2F0dGVtcHRzCithdHRlbmQKK2F0dGVuZGVkCithdHRlbnRpb24KK2F1dGhvcml0eQorYXZlbmdlZAorYXZpdGgKK2F3YXkKK2F3ZXNvbWUKK2F3b2tlCitiYSdhbC1oYSduYW4KK2JhJ2JlbAorYmFjaworYmFja3dhcmQKK2JhZAorYmFkZQorYmFncworYmFrZWQKK2Jha2VyCitiYWxtCitiYW5rCitiYW5rcworYmFyYmFyb3VzCitiYXJyZW4KK2JhcydlbWF0aAorYmFza2V0CitiYXNrZXRzCitiYXR0bGUKK2JkZWxsaXVtCitiZQorYmUnb3IKK2JlLWUncmkKK2JlYXIKK2JlYXJpbmcKK2JlYXJzCitiZWFzdAorYmVhc3RzCitiZWF1dGlmdWwKK2JlY2FtZQorYmVjYXVzZQorYmVjaGVyCitiZWNvbWUKK2JlY29tZXMKK2JlZAorYmVkYWQKK2JlZW4KK2JlZXItbGEnaGFpLXJvaQorYmVlci1zaGViYQorYmVmYWxsCitiZWZhbGxlbgorYmVmYWxscworYmVmb3JlCitiZWcKK2JlZ2FuCitiZWdpbm5pbmcKK2JlZ3VpbGVkCitiZWd1bgorYmVoZWxkCitiZWhpbmQKK2JlaG9sZAorYmVpbmcKK2JlbGEKK2JlbGlldmUKK2JlbGlldmVkCitiZWxseQorYmVsb25nCitiZWxvbmdpbmcKK2JlbG9uZ3MKK2JlbG93CitiZW4tYW1taQorYmVuLW8nbmkKK2JlbmVhdGgKK2JlbmVmaXRzCitiZW5qYW1pbgorYmVuamFtaW4ncworYmVyYQorYmVyZWF2ZWQKK2JlcmVkCitiZXJlZnQKK2JlcmknYWgKK2Jlc2lkZQorYmVzaWRlcworYmVzb3VnaHQKK2Jlc3QKK2JldGhlbAorYmV0aGxlaGVtCitiZXRodSdlbAorYmV0dGVyCitiZXR3ZWVuCitiZXlvbmQKK2JpbGhhaAorYmlsaGFuCitiaW5kaW5nCitiaXJkCitiaXJkcworYmlyc2hhCitiaXJ0aAorYmlydGhkYXkKK2JpcnRocmlnaHQKK2JpdGVzCitiaXR0ZXIKK2JpdHVtZW4KK2JsYWNrCitibGFtZQorYmxhbWVsZXNzCitibGVzcworYmxlc3NlZAorYmxlc3NlcworYmxlc3NpbmcKK2JsZXNzaW5ncworYmxpZ2h0ZWQKK2JsaW5kbmVzcworYmxvb2QKK2Jsb3Nzb21zCitibG90CitibG90dGVkCitibG93Citib2RpZXMKK2JvZHkKK2JvaWxpbmcKK2JvbmRzCitib25lCitib25lcworYm9vaworYm9vdGhzCitib3JkZXIKK2JvcmUKK2Jvcm4KK2Jvcm5lCitib3RoCitib3VnaAorYm91Z2h0Citib3VuZAorYm91bmRhcmllcworYm91bnRpZXMKK2JvdworYm93ZWQKK2Jvd2luZworYm93c2hvdAorYm95cworYm96cmFoCiticmFjZWxldHMKK2JyYW5jaGVzCiticmVhY2gKK2JyZWFkCiticmVhZHRoCiticmVhaworYnJlYWtpbmcKK2JyZWFzdHMKK2JyZWF0aAorYnJlYXRoZWQKK2JyZWQKK2JyZWVkCiticmVlZGluZworYnJldGhyZW4KK2JyaWNrCiticmlja3MKK2JyaW1zdG9uZQorYnJpbmcKK2JyaXRhaW4KK2JyaXRpc2gKK2Jyb2tlbgorYnJvbnplCiticm90aGVyCiticm90aGVyJ3MKK2Jyb3RoZXItaW4tbGF3Citicm90aGVycworYnJvdWdodAorYnJvdworYnJ1aXNlCitidWRkZWQKK2J1aWxkCitidWlsZGluZworYnVpbHQKK2J1bGxzCitidW5kbGUKK2J1bmRsZXMKK2J1cmllZAorYnVybgorYnVybmVkCitidXJudAorYnVyc3QKK2J1cnkKK2J1cnlpbmcKK2J1c2hlcworYnV0CitidXRsZXIKK2J1dGxlcnNoaXAKK2J1eQorYnV6CitieQorY2FpbgorY2FrZQorY2FrZXMKK2NhbGFoCitjYWxmCitjYWxsCitjYWxsZWQKK2NhbGxzCitjYW1lCitjYW1lbAorY2FtZWwncworY2FtZWxzCitjYW1wCitjYW1wZWQKK2NhbgorY2FuYWFuCitjYW5hYW4nCitjYW5hYW5pdGUKK2NhbmFhbml0ZXMKK2NhbmFhbml0aXNoCitjYW5kaWQKK2Nhbm5vdAorY2FwaCd0b3JpbQorY2FwdGFpbgorY2FwdGl2ZQorY2FwdGl2ZXMKK2NhcHR1cmVkCitjYXJhdmFuCitjYXJjYXNzZXMKK2NhcmUKK2NhcmVmdWxseQorY2FybWkKK2NhcnJpZWQKK2NhcnJ5CitjYXNlcworY2FzbHUnaGltCitjYXN0CitjYXR0bGUKK2NhdWdodAorY2F1c2UKK2NhdXNlZAorY2F1c2VzCitjYXZlCitjZWFzZQorY2Vhc2VkCitjZXJ0YWluCitjaGFpbgorY2hhbGRlJ2FucworY2hhbWJlcgorY2hhbmdlCitjaGFuZ2VkCitjaGFyYWN0ZXIKK2NoYXJnZQorY2hhcmdlZAorY2hhcmdpbmcKK2NoYXJpb3QKK2NoYXJpb3RzCitjaGFydGVycworY2hlYXQKK2NoZWF0ZWQKK2NoZWQtb3ItbGFvJ21lcgorY2hlcmFuCitjaGVydWJpbQorY2hlc2VkCitjaGV6aWIKK2NoaWVmCitjaGllZnMKK2NoaWxkCitjaGlsZGJlYXJpbmcKK2NoaWxkbGVzcworY2hpbGRyZW4KK2NoaWxkcmVuJ3MKK2Nob2ljZQorY2hvaWNlc3QKK2Nob3NlCitjaG9zZW4KK2NpcmN1bWNpc2VkCitjaXJjdW1zdGFuY2VzCitjaXRpZXMKK2NpdGl6ZW5zCitjaXR5CitjaXZpbAorY2l2aWxpemVkCitjbGFucworY2xlYW4KK2NsZWFyCitjbGVhdmVzCitjbG9zZQorY2xvc2VkCitjbG90aGVkCitjbG90aGVzCitjbG90aGluZworY2xvdWQKK2Nsb3VkcworY2x1c3RlcnMKK2NvYXN0bGFuZAorY29hc3RzCitjb2ZmaW4KK2NvbGQKK2NvbG9uaWVzCitjb2xvbmllczoKK2NvbHQKK2NvbHRzCitjb21iaW5lZAorY29tZQorY29tZWx5Citjb21lcworY29tZm9ydAorY29tZm9ydGVkCitjb21mb3J0cworY29taW5nCitjb21tYW5kCitjb21tYW5kZWQKK2NvbW1hbmRlcgorY29tbWFuZG1lbnRzCitjb21tZXJjZQorY29tbWl0Citjb21taXR0ZWQKK2NvbW1vbgorY29tcGFuaWVzCitjb21wYW55Citjb21wbGFpbmVkCitjb21wbGV0ZQorY29tcGxldGVkCitjb21wbGlhbmNlCitjb25jZWFsCitjb25jZWl2ZWQKK2NvbmNlcm4KK2NvbmNlcm5pbmcKK2NvbmNsdWRlCitjb25jdWJpbmUKK2NvbmN1YmluZXMKK2NvbmRpdGlvbgorY29uZGl0aW9ucworY29uZmluZWQKK2NvbmZ1c2UKK2NvbmZ1c2VkCitjb25ncmVzcworY29uanVyZWQKK2Nvbm5lY3RlZAorY29ubmVjdGlvbgorY29ubmVjdGlvbnMKK2NvbnNlbnQKK2NvbnNlbnQ6Citjb25zcGlyZWQKK2NvbnN0aXR1dGlvbgorY29uc3RyYWluZWQKK2NvbnN0cmFpbnMKK2NvbnN1bWUKK2NvbnN1bWVkCitjb250ZW1wdAorY29udGVuZGVkCitjb250aW51YWxseQorY29udGludWUKK2NvbnRpbnVlZAorY29udHJhY3QKK2NvbnRyb2wKK2NvbnRyb2xsaW5nCitjb252dWxzaW9ucworY29vbAorY29yZAorY29ycmVzcG9uZGVuY2UKK2NvcnJ1cHQKK2NvcnJ1cHRlZAorY29zdGx5Citjb3VjaAorY291Y2hlZAorY291Y2hlcworY291Y2hpbmcKK2NvdWxkCitjb3VuY2lsCitjb3VudAorY291bnRlZAorY291bnRlbmFuY2UKK2NvdW50cnkKK2NvdXJzZQorY292ZW5hbnQKK2NvdmVyCitjb3ZlcmVkCitjb3ZlcmluZworY293cworY3JlYXRlZAorY3JlYXRpb24KK2NyZWF0b3IKK2NyZWF0dXJlCitjcmVhdHVyZXMKK2NyZWVwaW5nCitjcmVlcHMKK2NyaWVkCitjcm9zc2VkCitjcm9zc2luZworY3JvdWNoaW5nCitjcm93bgorY3J1ZWwKK2NydWVsdHkKK2NyeQorY3J5aW5nCitjdWJpdAorY3ViaXRzCitjdXAKK2N1cmRzCitjdXJyZW50CitjdXJzZQorY3Vyc2VkCitjdXJzZXMKK2N1c2gKK2N1c3RvZHkKK2N1dAorY3V0dGluZworZGFpbnRpZXMKK2RhbWFzY3VzCitkYW4KK2RhbmdlcnMKK2RhcmVzCitkYXJrCitkYXJrbmVzcworZGF1Z2h0ZXIKK2RhdWdodGVyLWluLWxhdworZGF1Z2h0ZXJzCitkYXduZWQKK2RheQorZGF5cworZGVhZAorZGVhbAorZGVhbHQKK2RlYXRoCitkZWInb3JhaAorZGVjZWl0ZnVsbHkKK2RlY2VpdmVkCitkZWNlbnQKK2RlY2lkZQorZGVja3MKK2RlY2xhcmF0aW9uCitkZWNsYXJlCitkZWNsYXJpbmcKK2RlZGFuCitkZWVkCitkZWVwCitkZWZlYXQKK2RlZmVhdGVkCitkZWZpbGVkCitkZWZpbmUKK2RlbGF5CitkZWxheWVkCitkZWxpZ2h0CitkZWxpdmVyCitkZWxpdmVyZWQKK2RlbGl2ZXJ5CitkZW5pZWQKK2Rlbm91bmNlcworZGVwYXJ0CitkZXBhcnRlZAorZGVwYXJ0aW5nCitkZXBlbmRlbnQKK2RlcGVuZGVudHMKK2RlcG9zaXRvcnkKK2RlcHJpdmluZworZGVyaXZpbmcKK2Rlc2NlbmRhbnRzCitkZXNjZW5kaW5nCitkZXNpZ24KK2Rlc2lyZQorZGVzaXJlZAorZGVzb2xhdGUKK2Rlc29sYXRpb24KK2Rlc3Bpc2VkCitkZXNwb3Rpc20KK2Rlc3Ryb3kKK2Rlc3Ryb3llZAorZGVzdHJveXMKK2Rlc3RydWN0aW9uCitkZXN0cnVjdGl2ZQorZGV0ZXJtaW5lZAorZGV2b3VyZWQKK2Rldm91cmluZworZGV3CitkaWN0YXRlCitkaWQKK2RpZHN0CitkaWUKK2RpZWQKK2RpZXMKK2Rpa2xhaAorZGltCitkaW4naGFiYWgKK2RpbmFoCitkaW5haCdzCitkaW5lCitkaXBwZWQKK2RpcmVjdAorZGlyZWN0aW9uCitkaXNhc3RlcgorZGlzYXZvdworZGlzY3JlZXQKK2Rpc2dyYWNlCitkaXNoYW4KK2Rpc2hvbgorZGlzbWF5ZWQKK2Rpc3BsZWFzZWQKK2Rpc3BsZWFzaW5nCitkaXNwb3NlZAorZGlzc29sdXRpb25zCitkaXNzb2x2ZQorZGlzc29sdmVkCitkaXN0YW5jZQorZGlzdGFudAorZGlzdHJlc3MKK2Rpc3RyZXNzZWQKK2Rpc3RyaWN0cworZGl2aWRlCitkaXZpZGVkCitkaXZpZGluZworZGl2aW5hdGlvbgorZGl2aW5lCitkaXZpbmVzCitkbworZG8nZGFuaW0KK2RvZXIKK2RvZXMKK2RvaW5nCitkb21lc3RpYworZG9taW5pb24KK2RvbmUKK2Rvb3IKK2RvdGhhbgorZG91YmxlCitkb3VibGluZworZG91YnQKK2RvdmUKK2Rvd24KK2Rvd25jYXN0Citkb3dyeQorZHJhbmsKK2RyYXcKK2RyYXduCitkcmVhZAorZHJlYW0KK2RyZWFtZWQKK2RyZWFtZXIKK2RyZWFtcworZHJldworZHJpZWQKK2RyaW5rCitkcmlua2luZworZHJpbmtzCitkcml2ZW4KK2Ryb3ZlCitkcm92ZXMKK2RydW5rCitkcnkKK2R1ZworZHVtYWgKK2R1bmdlb24KK2R1cmluZworZHVzdAorZHV0eQorZHdlbGwKK2R3ZWxsaW5nCitkd2VsdAorZSdkb21pdGVzCitlJ3BocmFpbQorZSdwaHJhaW0ncworZWFjaAorZWFybHkKK2VhcnMKK2VhcnRoCitlYXNpbHkKK2Vhc3QKK2Vhc3R3YXJkCitlYXQKK2VhdGVuCitlYXRpbmcKK2ViYWwKK2ViZXIKK2VkZW4KK2VkZXIKK2Vkb20KK2VmZmVjdAorZWd5cHQKK2VneXB0aWFuCitlZ3lwdGlhbidzCitlZ3lwdGlhbnMKK2VoaQorZWlnaHQKK2VpZ2h0ZWVuCitlaWdodHkKK2VpZ2h0eS1zZXZlbgorZWlnaHR5LXNpeAorZWlnaHR5LXR3bworZWl0aGVyCitlbCdpcGhhegorZWwtYmV0aGVsCitlbC1lbCdvaGUtaXNyYWVsCitlbC1wYXJhbgorZWxhaAorZWxhbQorZWxkYSdhaAorZWxkZXIKK2VsZGVycworZWxkZXN0CitlbGVjdGVkCitlbGV2ZW4KK2VsaSdzaGFoCitlbGllJ3plcgorZWxsYSdzYXIKK2Vsb24KK2Vsc2UKK2VtYmFsbQorZW1iYWxtZWQKK2VtYmFsbWluZworZW1icmFjZQorZW1icmFjZWQKK2VtaWdyYXRpb24KK2VtaW0KK2VtcHRpZWQKK2VtcHR5CitlbXB0eS1oYW5kZWQKK2VuYWltCitlbmNhbXBlZAorZW5jYW1wbWVudHMKK2VuY291cmFnZQorZW5kCitlbmRlYXZvcmVkCitlbmRlZAorZW5kaW5nCitlbmRvd2VkCitlbmRzCitlbmVtaWVzCitlbmVteQorZW5nbGlzaAorZW5sYXJnZQorZW5sYXJnaW5nCitlbm1pc2gncGF0Citlbm1pdHkKK2Vub2NoCitlbm9zaAorZW5vdWdoCitlbnRlcgorZW50ZXJlZAorZW50aXRsZQorZW50cmFuY2UKK2VudHJlYXQKK2VudmllZAorZXBoYWgKK2VwaGVyCitlcGhyYXRoCitlcGhyb24KK2VxdWFsCitlcgorZXJlY2gKK2VyZWN0ZWQKK2VyaQorZXJyYW5kCitlc2F1Citlc2F1J3MKK2VzY2FwZQorZXNjYXBlZAorZXNlaworZXNoYmFuCitlc2hjb2wKK2VzdGFibGlzaAorZXN0YWJsaXNoZWQKK2VzdGFibGlzaGluZworZXN0YWJsaXNobWVudAorZXRlcm5hbAorZXVwaHJhJ3RlcworZXVwaHJhdGVzCitldmUKK2V2ZW4KK2V2ZW5pbmcKK2V2ZW50cworZXZlcgorZXZlcmxhc3RpbmcKK2V2ZXJ5CitldmVyeXRoaW5nCitldmVyeXdoZXJlCitldmlsCitldmlscworZXZpbmNlcworZXdlCitld2VzCitleGFtcGxlCitleGNlZWRpbmdseQorZXhjZXB0CitleGNoYW5nZQorZXhjaXRlZAorZXhlY3V0aW9uZXJzCitleGVyY2lzZQorZXhwZXJpZW5jZQorZXhwZXJ0CitleHBsYWluCitleHBvc2VkCitleHBvc2luZworZXh0ZW5kCitleHRlbmRlZAorZXllcworZXpib24KK2V6ZXIKK2ZhY2UKK2ZhY2VzCitmYWN0cworZmFpbGVkCitmYWludGVkCitmYWlyCitmYWl0aGZ1bG5lc3MKK2ZhbGwKK2ZhbGxlbgorZmFsbHMKK2ZhbHNlbHkKK2ZhbWlsaWVzCitmYW1pbHkKK2ZhbWluZQorZmFtaXNoZWQKK2ZhcgorZmFyZQorZmFyZWQKK2ZhcmV3ZWxsCitmYXN0CitmYXQKK2ZhdGhlcgorZmF0aGVyJ3MKK2ZhdGhlci1pbi1sYXcKK2ZhdGhlcnMKK2ZhdGlndWluZworZmF0bmVzcworZmF1bHRzCitmYXZvcgorZmF2b3JhYmxlCitmYXducworZmVhcgorZmVhcmVkCitmZWFzdAorZmVkCitmZWVibGVyCitmZWVkCitmZWVsCitmZWV0CitmZWxsCitmZWxsb3cKK2ZlbHQKK2ZlbWFsZQorZmVzdGFsCitmZXRjaAorZmV3CitmaWVsZAorZmllbGRzCitmaWVyY2UKK2ZpZXJjZWx5CitmaWZ0ZWVuCitmaWZ0aAorZmlmdGhzCitmaWZ0eQorZmlnCitmaWxsCitmaWxsZWQKK2ZpbmQKK2ZpbmRzCitmaW5lCitmaW5pc2gKK2ZpbmlzaGVkCitmaXJlCitmaXJtCitmaXJtYW1lbnQKK2Zpcm1uZXNzCitmaXJzdAorZmlyc3QtCitmaXJzdC1ib3JuCitmaXJzdGxpbmdzCitmaXNoCitmaXQKK2ZpdmUKK2ZpeGVkCitmbGFtaW5nCitmbGVkCitmbGVlCitmbGVlaW5nCitmbGVzaAorZmxvYXRlZAorZmxvY2sKK2Zsb2NrcworZmxvb2QKK2Zsb29yCitmbG93ZWQKK2Zsb3dzCitmbHkKK2ZvYWwKK2ZvbGxvdworZm9sbG93ZWQKK2ZvbGxvd2luZworZm9sbG93cworZm9sbHkKK2ZvbmRsaW5nCitmb29kCitmb29saXNobHkKK2Zvb3QKK2ZvcgorZm9yYmlkZGVuCitmb3JjZQorZm9yY2VkCitmb3JjZXMKK2ZvcmQKK2ZvcmVpZ24KK2ZvcmVpZ25lcgorZm9yZWlnbmVycworZm9yZW1vc3QKK2ZvcmVza2luCitmb3Jlc2tpbnMKK2ZvcmdlcgorZm9yZ2V0Citmb3JnZXRzCitmb3JnaXZlCitmb3Jnb3QKK2ZvcmdvdHRlbgorZm9ybQorZm9ybWVkCitmb3JtZXIKK2Zvcm1lcmx5Citmb3JtaWRhYmxlCitmb3JtcworZm9yc2FrZW4KK2ZvcnRoCitmb3J0dW5lCitmb3J0dW5lcworZm9ydHkKK2ZvcnR5LWZpdmUKK2ZvcnR5LXNldmVuCitmb3VuZAorZm91bmRhdGlvbgorZm91bnRhaW5zCitmb3VyCitmb3VydGVlbgorZm91cnRlZW50aAorZm91cnRoCitmcmFpbAorZnJlZQorZnJlZWx5CitmcmVzaAorZnJlc2hseQorZnJpZW5kCitmcmllbmRseQorZnJpZW5kcworZnJvCitmcm9tCitmcm9udAorZnJvbnRpZXJzCitmcnVpdAorZnJ1aXRmdWwKK2ZydWl0cworZnVnaXRpdmUKK2Z1bGZpbAorZnVsZmlsbGVkCitmdWxsCitmdW5kYW1lbnRhbGx5CitmdXJuYWNlCitmdXJ5CitmdXR1cmUKK2dhZAorZ2FoYW0KK2dhaW5lZAorZ2FsZWVkCitnYW1lCitnYXJkZW4KK2dhcm1lbnQKK2dhcm1lbnRzCitnYXRhbQorZ2F0ZQorZ2F0aGVyCitnYXRoZXJlZAorZ2F1bnQKK2dhdmUKK2dhdmVzdAorZ2F6YQorZ2F6ZWQKK2dlbmVhbG9naWVzCitnZW5lcmFsCitnZW5lcmF0aW9uCitnZW5lcmF0aW9ucworZ2VyYQorZ2VyYXIKK2dlcnNob24KK2dldAorZ2V0aGVyCitnaWZ0CitnaWZ0cworZ2lob24KK2dpbGVhZAorZ2lyJ2dhc2hpdGVzCitnaXZlCitnaXZlbgorZ2l2ZXN0CitnaXZpbmcKK2dvCitnb2F0Citnb2F0cworZ29kCitnb2QncworZ29kcworZ29lcworZ29pJ2ltCitnb2luZworZ29sZAorZ29tZXIKK2dvbW9yJ3JhaAorZ29uZQorZ29vZAorZ29vZC1sb29raW5nCitnb29kcworZ29waGVyCitnb3NoZW4KK2dvdAorZ290dGVuCitnb3Zlcm5lZAorZ292ZXJubWVudAorZ292ZXJubWVudHMKK2dvdmVybm1lbnRzOgorZ292ZXJub3IKK2dvdmVybm9ycworZ3JhY2lvdXMKK2dyYWNpb3VzbHkKK2dyYWluCitncmFuZGNoaWxkcmVuCitncmFuZHNvbgorZ3JhbnQKK2dyYW50ZWQKK2dyYXBlcworZ3Jhc3MKK2dyYXZlCitncmF5CitncmVhdAorZ3JlYXRlcgorZ3JlYXRseQorZ3JlZW4KK2dyZXcKK2dyaWV2ZWQKK2dyaWV2b3VzCitncm9waW5nCitncm91bmQKK2dyb3cKK2dyb3dpbmcKK2dyb3duCitncm93cworZ3VhcmQKK2d1YXJkcworZ3VpbGUKK2d1aWx0CitndWlsdHkKK2d1bQorZ3VuaQoraGEnbWF0aGl0ZXMKK2hhZAoraGFkYWQKK2hhZGFyCitoYWRvcidhbQoraGFnYXIKK2hhZ2dpCitoYWlycworaGFpcnkKK2hhbGYKK2hhbGxvd2VkCitoYW0KK2hhbW9yCitoYW1vcidzCitoYW1zdHJpbmcKK2hhbXVsCitoYW5kCitoYW5kcworaGFuZHNvbWUKK2hhbmcKK2hhbmdlZAoraGFub2NoCitoYXBwZW5lZAoraGFwcGluZXNzCitoYXBweQoraGFyYW4KK2hhcmFzcworaGFyYXNzZWQKK2hhcmQKK2hhcmRzaGlwCitoYXJsb3QKK2hhcmxvdHJ5CitoYXJtCitoYXJzaGx5CitoYXJ2ZXN0CitoYXJ2ZXN0cworaGFzCitoYXN0CitoYXN0ZQoraGFzdGVuZWQKK2hhc3RpbHkKK2hhdGUKK2hhdGVkCitoYXRoCitoYXYnaWxhaAoraGF2ZQoraGF2ZW4KK2hhdmlsYWgKK2hhdmluZworaGF6J2F6b24tdGEnbWFyCitoYXphcm1hJ3ZldGgKK2hhem8KK2hlCitoZS1hc3NlcworaGUtZ29hdHMKK2hlYWQKK2hlYWRzCitoZWFsZWQKK2hlYXAKK2hlYXIKK2hlYXJkCitoZWFyaW5nCitoZWFya2VuCitoZWFya2VuZWQKK2hlYXJzCitoZWFydAoraGVhcnRzCitoZWF0CitoZWF2ZW4KK2hlYXZlbnMKK2hlYmVyCitoZWJyZXcKK2hlYnJld3MKK2hlYnJvbgoraGVlZAoraGVlZGVkCitoZWVsCitoZWVscworaGVpZmVyCitoZWlnaHQKK2hlaXIKK2hlbGQKK2hlbHAKK2hlbHBlcgoraGVtYW4KK2hlbWRhbgoraGVyCitoZXJiCitoZXJkCitoZXJkcworaGVyZHNtZW4KK2hlcmUKK2hlcnNlbGYKK2hldGgKK2hld2VkCitoZXpyb24KK2hpZAoraGlkZGVuCitoaWRlCitoaWdoCitoaWxsCitoaWxscworaGltCitoaW1zZWxmCitoaW5kCitoaW5kZXIKK2hpcAoraGlyYWgKK2hpcmUKK2hpcmVkCitoaXMKK2hpc3RvcnkKK2hpdGhlcgoraGl0dGl0ZQoraGl0dGl0ZXMKK2hpdml0ZQoraGl2aXRlcworaG9iYWgKK2hvbGQKK2hvbGxvdworaG9tZQoraG9uZXN0Citob25lc3R5Citob25leQoraG9ub3IKK2hvbm9yZWQKK2hvcmkKK2hvcml0ZQoraG9yaXRlcworaG9ybnMKK2hvcnNlJ3MKK2hvcnNlbWVuCitob3JzZXMKK2hvc3QKK2hvdAoraG90bHkKK2hvdXNlCitob3VzZWhvbGQKK2hvdXNlaG9sZHMKK2hvdXNlcworaG93CitodWwKK2h1bWFuCitodW1hbmUKK2h1bWJsZQoraHVtYmxlZAoraHVuZHJlZAoraHVuZHJlZGZvbGQKK2h1bmRyZWR0aAoraHVudAoraHVudGVkCitodW50ZXIKK2h1bnRpbmcKK2h1cHBpbQoraHVzYmFuZAoraHVzaGFtCitodXNoaW0KK2kKK2lmCitpbGwKK2lsbC10cmVhdAoraW1hZ2UKK2ltYWdpbmF0aW9uCitpbW1lZGlhdGUKK2ltbmFoCitpbXBlbAoraW1wb3J0YW5jZQoraW1wb3NpbmcKK2ltcG9zc2libGUKK2luCitpbmFzbXVjaAoraW5jYXBhYmxlCitpbmNsdWRpbmcKK2luY3JlYXNlZAoraW5kZWVkCitpbmRlcGVuZGVudAoraW5kaWFuCitpbmRpZ25hbnQKK2luZXN0aW1hYmxlCitpbmV2aXRhYmx5CitpbmhhYml0YW50cworaW5oZXJpdGFuY2UKK2luaXF1aXR5Citpbmp1cmllcworaW5qdXJ5Citpbm5vY2VuY2UKK2lubm9jZW50CitpbnF1aXJlCitpbnF1aXJlZAoraW5zaWRlCitpbnN0ZWFkCitpbnN0aXR1dGUKK2luc3RpdHV0ZWQKK2luc3RydWN0ZWQKK2luc3RydWN0aW5nCitpbnN0cnVtZW50CitpbnN0cnVtZW50cworaW5zdWx0CitpbnN1cnJlY3Rpb25zCitpbnRlZ3JpdHkKK2ludGVuZGVkCitpbnRlbnRpb25zCitpbnRlcnByZXQKK2ludGVycHJldGF0aW9uCitpbnRlcnByZXRhdGlvbnMKK2ludGVycHJldGVkCitpbnRlcnByZXRlcgoraW50ZXJydXB0CitpbnRvCitpbnRyb2R1Y2luZworaW52YXJpYWJseQoraW52YXNpb24KK2ludmFzaW9ucworaW52ZXN0ZWQKK2lvYgoraXJhZAoraXJhbQoraXJvbgoraXMKK2lzJ3NhY2hhcgoraXNhYWMKK2lzYWFjJ3MKK2lzY2FoCitpc2gnbWFlbAoraXNoJ21hZWwncworaXNoJ21hZWxpdGVzCitpc2hiYWsKK2lzaHZhaAoraXNodmkKK2lzcmFlbAoraXNyYWVsJ3MKK2lzcmFlbGl0ZXMKK2l0CitpdGhyYW4KK2l0cworaXRzZWxmCitqYWJhbAoramFiYm9rCitqYWNoaW4KK2phY29iCitqYWNvYidzCitqYWgnbGVlbAoramFoemVlbAoramFsYW0KK2phbWluCitqYXBoZXRoCitqYXIKK2phcmVkCitqYXZhbgoramUnZ2FyLXNhaGFkdSd0aGEKK2plJ3VzaAoramVhbG91cworamViJ3VzaXRlcworamVtdSdlbAoramVyYWgKK2plc3RpbmcKK2pldGhldGgKK2pldHVyCitqZXdlbHJ5CitqZXplcgoramlkbGFwaAoram9iYWIKK2pvaW5lZAoram9pbnQKK2pva3NoYW4KK2pva3Rhbgoram9yZGFuCitqb3NlcGgKK2pvc2VwaCdzCitqb3VybmV5Citqb3VybmV5ZWQKK2p1YmFsCitqdWRhaAoranVkYWgncworanVkZ2UKK2p1ZGdlZAoranVkZ2VzCitqdWRnbWVudAoranVkaWNpYXJ5CitqdWRpdGgKK2p1cmlzZGljdGlvbgoranVyeToKK2p1c3QKK2p1c3RpY2UKK2thZCdtb25pdGVzCitrYWRlc2gKK2tlZCdlbWFoCitrZWRhcgora2VlcAora2VlcGVyCitrZWVwZXJzCitrZW11J2VsCitrZW4naXRlcwora2VuJ2l6eml0ZXMKK2tlbmFuCitrZW5hegora2VwdAora2V0dSdyYWgKK2tpZAora2lkcwora2lsbAora2lsbGVkCitraW5kCitraW5kbGVkCitraW5kbmVzcwora2luZHJlZAora2luZHMKK2tpbmcKK2tpbmcncwora2luZ2RvbQora2luZ3MKK2tpbnNtYW4KK2tpbnNtZW4KK2tpcidpYXRoLWFyJ2JhCitraXNzCitraXNzZWQKK2tpdHRpbQora25lYWQKK2tuZWUKK2tuZWVsCitrbmVlcwora25ldwora25pZmUKK2tub3cKK2tub3dpbmcKK2tub3dsZWRnZQora25vd24KK2tub3dzCitrb2hhdGgKK2tvcmFoCitsYWJhbgorbGFiYW4ncworbGFib3IKK2xhY2sKK2xhY2tpbmcKK2xhZAorbGFkJ3MKK2xhZGRlcgorbGFkcworbGFpZAorbGFpbgorbGFtYgorbGFtYnMKK2xhbWVjaAorbGFtZW50YXRpb24KK2xhbWVudGVkCitsYW5kCitsYW5kcworbGFuZ3VhZ2UKK2xhbmd1YWdlcworbGFuZ3Vpc2hlZAorbGFyZ2UKK2xhc2hhCitsYXN0CitsYXRlcgorbGF1Z2gKK2xhdWdoZWQKK2xhdWdodGVyCitsYXdzCitsYXkKK2xheWluZworbGUtdW0nbWltCitsZWFkCitsZWFmCitsZWFoCitsZWFoJ3MKK2xlYW4KK2xlYXAKK2xlYXBlZAorbGVhcm4KK2xlYXJuZWQKK2xlYXN0CitsZWF2ZQorbGVhdmVzCitsZWQKK2xlZnQKK2xlZ2lzbGF0ZQorbGVnaXNsYXRpb246CitsZWdpc2xhdGl2ZQorbGVnaXNsYXR1cmUKK2xlZ2lzbGF0dXJlcworbGVoYSdiaW0KK2xlbmd0aAorbGVudGlscworbGVzc2VyCitsZXN0CitsZXQKK2xldHUnc2hpbQorbGV2ZXkKK2xldmkKK2xpYmVydHkKK2xpZQorbGllcworbGlmZQorbGlmZWJsb29kCitsaWZ0CitsaWZ0ZWQKK2xpZ2h0CitsaWdodHMKK2xpa2UKK2xpa2VseQorbGlrZW5lc3MKK2xpa2V3aXNlCitsaW1waW5nCitsaW5lbgorbGluZ2VyZWQKK2xpb24KK2xpb24ncworbGlvbmVzcworbGlzdGVuCitsaXN0ZW5lZAorbGlzdGVuaW5nCitsaXR0bGUKK2xpdmUKK2xpdmVkCitsaXZlcworbGl2ZXN0b2NrCitsaXZpbmcKK2xvCitsb2FkCitsb2FkZWQKK2xvZGdlCitsb2RnZWQKK2xvZGdpbmcKK2xvaW5zCitsb25nCitsb25nZWQKK2xvbmdlcgorbG9uZ3MKK2xvb2sKK2xvb2tlZAorbG9va2luZworbG9vc2UKK2xvcmQKK2xvcmQncworbG9yZHMKK2xvc3MKK2xvdAorbG90J3MKK2xvdGFuCitsb3RhbidzCitsb3VkCitsb3ZlCitsb3ZlZAorbG92ZWx5Citsb3ZlcworbG93ZXIKK2xvd2VyZWQKK2xveWFsbHkKK2x1ZAorbHVkaW0KK2x1egorbHlpbmcKK2x5cmUKK21hJ2FjYWgKK21hJ2hhbGF0aAorbWEtaGFsJ2FsZWwKK21hY2gtCittYWNoLXBlJ2xhaAorbWFjaGlyCittYWRhaQorbWFkZQorbWFnJ2RpZWwKK21hZ2ljaWFucworbWFnbmFuaW1pdHkKK21hZ29nCittYWhhbmEnaW0KK21haWQKK21haWRlbgorbWFpZHMKK21haWRzZXJ2YW50cworbWFrZQorbWFrZXIKK21ha2luZworbWFsJ2NoaS1lbAorbWFsZQorbWFsZXMKK21hbXJlCittYW4KK21hbidhaGF0aAorbWFuJ3MKK21hbmFzJ3NlaAorbWFuYXMnc2VoJ3MKK21hbmRyYWtlcworbWFua2luZAorbWFubHkKK21hbm5lcgorbWFudGxlCittYW55CittYXJrCittYXJrZWQKK21hcnJpYWdlCittYXJyaWFnZXMKK21hcnJpZWQKK21hcnJpZXMKK21hcnJ5CittYXNoCittYXNyZSdrYWgKK21hc3NhCittYXN0ZXIKK21hc3RlcidzCittYXRlCittYXRpbmcKK21hdHJlZAorbWF0dGVyCittYXkKK21lCittZSd6YWhhYgorbWUtaHUnamEtZWwKK21lLXRodSdzaGEtZWwKK21lYWwKK21lYW4KK21lYW5pbmcKK21lYW5zCittZWFudAorbWVhbnRpbWUKK21lYW53aGlsZQorbWVhc3VyZQorbWVhc3VyZWQKK21lYXN1cmVzCittZWRhbgorbWVkaXRhdGUKK21lZXQKK21lZXRzCittZWhldCdhYmVsCittZWwtY2hpeidlZGVrCittZW1iZXJzCittZW4KK21lbidzCittZW5kCittZW5kZWQKK21lbnNlcnZhbnRzCittZW50aW9uCittZXJhcidpCittZXJjZW5hcmllcworbWVyY2hhbnRzCittZXJjaWZ1bAorbWVyY2lsZXNzCittZXJjeQorbWVycnkKK21lc2hhCittZXNoZWNoCittZXNvcG90YSdtaWEKK21lc3NhZ2UKK21lc3NlbmdlcnMKK21ldAorbWV0aHUnc2VsYWgKK21pYnNhbQorbWliemFyCittaWQnaWFuCittaWQnaWFuaXRlCittaWQnaWFuaXRlcworbWlkc3QKK21pZHdpZmUKK21pZ2h0CittaWdodGllcgorbWlnaHRpbHkKK21pZ2h0eQorbWlncmF0ZWQKK21pZ3JhdGlvbgorbWlsY2FoCittaWxjaAorbWlsaXRhcnkKK21pbGsKK21pbmQKK21pbmUKK21pcnRoCittaXNjYXJyaWVkCittaXNobWEKK21pc3QKK21pc3RyZXNzCittaXpwYWgKK21penphaAorbW9hYgorbW9hYml0ZXMKK21vY2sKK21vY2tpbmcKK21vbmV5Cittb25zdGVycworbW9udGgKK21vbnRocworbW9vbgorbW9yZQorbW9yZWgKK21vcmVvdmVyCittb3JpJ2FoCittb3JuaW5nCittb3JzZWwKK21vcnRhcgorbW9zdAorbW90aGVyCittb3RoZXIncworbW90aGVycworbW90dGxlZAorbW91bnQKK21vdW50YWluCittb3VudGFpbnMKK21vdXJuCittb3VybmVkCittb3VybmluZworbW91dGgKK21vdmVkCittb3ZlcworbW92aW5nCittdWNoCittdWx0aXBsaWVkCittdWx0aXBseQorbXVsdGl0dWRlCittdXBwaW0KK211cmRlcnMKK211c3QKK211dHVhbGx5CitteQorbXlycmgKK215c2VsZgorbmEnYW1haAorbmEnYW1hbgorbmFoYXRoCituYWhvcgorbmFob3IncworbmFrZWQKK25ha2VkbmVzcworbmFtZQorbmFtZWQKK25hbWVzCituYXBoJ3RhbGkKK25hcGgtdHUnaGltCituYXBoaXNoCituYXRpb24KK25hdGlvbnMKK25hdGl2ZQorbmF0dXJhbGl6YXRpb24KK25hdHVyZQorbmF0dXJlJ3MKK25lYXIKK25lYmEnaW90aAorbmVjZXNzYXJ5CituZWNlc3NpdHkKK25lY2sKK25lZWQKK25lZ2ViCituZWdsZWN0ZWQKK25laWdoYm9yaW5nCituZWl0aGVyCituZXBoaWxpbQorbmV2ZXIKK25ldmVydGhlbGVzcworbmV3CituZXh0CituaWdodAorbmlnaHRzCituaWxlCituaW1yb2QKK25pbidldmVoCituaW5lCituaW5ldGVlbgorbmluZXR5CituaW5ldHktZml2ZQorbmluZXR5LW5pbmUKK25vCitub2FoCitub2FoJ3MKK25vZAorbm9uZQorbm9vbgorbm9yCitub3J0aAorbm9ydGh3YXJkCitub3NlCitub3N0cmlscworbm90Citub3RoaW5nCitub3cKK251bWJlcgorbnVtYmVyZWQKK251bWJlcnMKK251cnNlCitudXRzCitvCitvYWsKK29ha3MKK29hdGgKK29iYWwKK29iZWRpZW5jZQorb2JlaXNhbmNlCitvYmV5CitvYmV5ZWQKK29iamVjdAorb2JzdHJ1Y3RlZAorb2JzdHJ1Y3RpbmcKK29idGFpbgorb2J0YWluZWQKK29jY2FzaW9uCitvY2N1cGF0aW9uCitvZGlvdXMKK29kb3IKK29mCitvZmYKK29mZmVuZGVkCitvZmZlbnNlCitvZmZlbnNlczoKK29mZmVyCitvZmZlcmVkCitvZmZlcmluZworb2ZmZXJpbmdzCitvZmZpY2UKK29mZmljZXIKK29mZmljZXJzCitvZmZpY2VzCitvZmZzcHJpbmcKK29oCitvaGFkCitvaG9saWJhJ21haAorb2lsCitvbGQKK29sZGVyCitvbGRlc3QKK29saXZlCitvbWFyCitvbgorb25hbQorb25hbgorb25jZQorb25lCitvbmVzCitvbmx5Citvbnl4CitvcGVuCitvcGVuZWQKK29wZXJhdGlvbgorb3BoaXIKK29waW5pb25zCitvcHBvc2luZworb3Bwb3NpdGUKK29wcHJlc3NlZAorb3BwcmVzc2lvbnMKK29yCitvcmRlcgorb3JkZXJzCitvcmdhbml6aW5nCitvcm5hbWVudHMKK290aGVyCitvdGhlcnMKK291Z2h0CitvdXIKK291cnMKK291cnNlbHZlcworb3V0CitvdXRjcnkKK291dHNpZGUKK291dHdpdHRlZAorb3Zlcgorb3ZlcmRyaXZlbgorb3ZlcnNlZXIKK292ZXJzZWVycworb3ZlcnNpZ2h0CitvdmVydGFrZQorb3ZlcnRocmV3CitvdmVydGhyb3cKK292ZXJ0b29rCitvd24KK293bnMKK294ZW4KK3BhY2UKK3BhZGRhbgorcGFkZGFuLWFyYW0KK3BhaWQKK3BhaW4KK3BhaXIKK3BhaXJzCitwYWxsdQorcGFyYWxsZWxlZAorcGFyYW4KK3BhcnQKK3BhcnRzCitwYXNzCitwYXNzZWQKK3Bhc3QKK3Bhc3R1cmUKK3Bhc3R1cmVkCitwYXN0dXJpbmcKK3BhdGgKK3BhdGhydSdzaW0KK3BhdGllbnQKK3BhdQorcGF5CitwYXltZW50CitwZSdsYWgKK3BlYWNlCitwZWFjZWFibHkKK3BlZWxlZAorcGVsZWcKK3BlbmknZWwKK3BlbnUnZWwKK3Blb3BsZQorcGVvcGxlZAorcGVvcGxlcworcGVyJ2l6eml0ZXMKK3BlcmV6CitwZXJmaWR5CitwZXJmb3JtCitwZXJoYXBzCitwZXJpc2gKK3Blcm1pdAorcGVycGV0dWF0ZWQKK3BlcnNvbnMKK3BldGl0aW9uZWQKK3BldGl0aW9ucworcGhhcmFvaAorcGhhcmFvaCdzCitwaGljb2wKK3BoaWxpc3RpbmVzCitwaHlzaWNpYW5zCitwaWVjZQorcGllY2VzCitwaWdlb24KK3BpbGRhc2gKK3BpbGxhcgorcGlub24KK3BpcGUKK3Bpc2hvbgorcGlzdGFjaGlvCitwaXQKK3BpdGNoCitwaXRjaGVkCitwaXRzCitwbGFjZQorcGxhY2VkCitwbGFjZXMKK3BsYWd1ZXMKK3BsYWluCitwbGFpbmx5CitwbGFuZQorcGxhbm5pbmcKK3BsYW50CitwbGFudGVkCitwbGFudHMKK3BsYXkKK3BsYXllZAorcGxheWluZworcGxlYXNhbnQKK3BsZWFzZQorcGxlYXNlZAorcGxlYXNlcworcGxlYXNpbmcKK3BsZWFzdXJlCitwbGVkZ2UKK3BsZW50ZW91cworcGxlbnR5CitwbG93aW5nCitwbHVja2VkCitwbHVtcAorcGx1bmRlcmVkCitwb2ludAorcG9saXRpY2FsCitwb29yCitwb3BsYXIKK3BvcHVsYXRpb24KK3BvcnRpb24KK3BvcnRpb25zCitwb3NzZXNzCitwb3NzZXNzaW9uCitwb3NzZXNzaW9ucworcG9zdGVyaXR5Citwb3QKK3BvdCdpLXBoYXIKK3BvdGkncGhlcmEKK3BvdHRhZ2UKK3BvdXJlZAorcG92ZXJ0eQorcG93ZXIKK3Bvd2VycworcHJhaXNlCitwcmFpc2VkCitwcmF5CitwcmF5ZWQKK3ByYXllcgorcHJlLWVtaW5lbmNlCitwcmUtZW1pbmVudAorcHJlcGFyZQorcHJlcGFyZWQKK3ByZXNlbmNlCitwcmVzZW50CitwcmVzZW50ZWQKK3ByZXNlcnZlCitwcmVzZXJ2ZWQKK3ByZXNzZWQKK3ByZXNzaW5nCitwcmV0ZW5kZWQKK3ByZXZhaWwKK3ByZXZhaWxlZAorcHJldmVudAorcHJldmVudGVkCitwcmV5CitwcmljZQorcHJpZGUKK3ByaWVzdAorcHJpZXN0cworcHJpbmNlCitwcmluY2VzCitwcmluY2lwbGVzCitwcmlzb24KK3ByaXNvbmVycworcHJvY2VlZAorcHJvZHVjZQorcHJvZml0Citwcm9taXNlCitwcm9taXNlZAorcHJvbm91bmNlCitwcm9wZXJ0eQorcHJvcGhldAorcHJvcG9zYWwKK3Byb3Bvc2UKK3Byb3NwZXIKK3Byb3NwZXJlZAorcHJvdGVjdGluZworcHJvdGVjdGlvbgorcHJvdmUKK3Byb3ZlbmRlcgorcHJvdmlkZQorcHJvdmlkZWQKK3Byb3ZpZGVuY2UKK3Byb3ZpbmNlCitwcm92aXNpb24KK3Byb3Zpc2lvbnMKK3BydWRlbmNlCitwdWJsaWMKK3B1Ymxpc2gKK3B1bmlzaG1lbnQKK3B1cmNoYXNlZAorcHVyaWZ5CitwdXJwb3NlCitwdXJzdWUKK3B1cnN1ZWQKK3B1cnN1aW5nCitwdXJzdWl0CitwdXQKK3B1dHRpbmcKK3B1dmFoCitxdWFycmVsCitxdWFycmVsZWQKK3F1YXJ0ZXJpbmcKK3F1ZXN0aW9uZWQKK3F1ZXN0aW9ucworcXVpY2tseQorcXVpZXQKK3F1aXZlcgorcmEnYW1haAorcmFjaGVsCityYWNoZWwncworcmFpZAorcmFpZGVycworcmFpbWVudAorcmFpbgorcmFpbmVkCityYWlzZQorcmFpc2VkCityYWlzaW5nCityYW0KK3JhbSdlc2VzCityYW1zCityYW4KK3JhdGhlcgorcmF2YWdlZAorcmF2ZW4KK3JhdmVub3VzCityZSd1CityZWFjaGVkCityZWFkeQorcmVhbGx5CityZWFwZWQKK3JlYXNvbgorcmVhc3N1cmVkCityZWJla2FoCityZWJla2FoJ3MKK3JlYmVsbGVkCityZWJ1a2VkCityZWNlZGVkCityZWNlaXZlCityZWNlaXZlZAorcmVja29uZWQKK3JlY2tvbmluZworcmVjb2duaXplCityZWNvZ25pemVkCityZWNvcmRzCityZWN0aXR1ZGUKK3JlZAorcmVkZWVtZWQKK3JlZHJlc3MKK3JlZHVjZQorcmVlZAorcmVmcmVzaAorcmVmdXNlZAorcmVmdXNpbmcKK3JlZ2FyZAorcmVnYXJkZWQKK3JlZ2FyZHMKK3JlaG8nYm90aAorcmVobydib3RoLWlyCityZWlnbgorcmVpZ25lZAorcmVsaWFuY2UKK3JlbGllZgorcmVsaW5xdWlzaAorcmVtYWluCityZW1haW5lZAorcmVtYWluaW5nCityZW1haW5zCityZW1lbWJlcgorcmVtZW1iZXJlZAorcmVtaW5kZWQKK3JlbW5hbnQKK3JlbW92ZQorcmVtb3ZlZAorcmVtb3ZpbmcKK3JlbmRlcgorcmVub3duCityZW50CityZXBlYXRlZAorcmVwZWF0ZWRseQorcmVwaCdhaW0KK3JlcGxhY2UKK3JlcGxhY2VkCityZXBsaWVkCityZXBvcnQKK3JlcHJlc2VudGF0aW9uCityZXByZXNlbnRhdGl2ZQorcmVwcmVzZW50YXRpdmVzCityZXByb2FjaAorcmVxdWlyZQorcmVxdWlyZWQKK3JlcXVpcmVzCityZXNjdWUKK3Jlc2VuCityZXNlcnZlCityZXNlcnZlZAorcmVzcGVjdAorcmVzdAorcmVzdGVkCityZXN0aW5nCityZXN0b3JlCityZXN0b3JlZAorcmVzdHJhaW5lZAorcmV0dXJuCityZXR1cm5lZAorcmV1J2VsCityZXViZW4KK3JldW1haAorcmV2ZWFsZWQKK3Jldml2ZWQKK3Jld2FyZAorcmliCityaWJzCityaWNoCityaWRlCityaWRlcgorcmlnaHQKK3JpZ2h0ZWQKK3JpZ2h0ZW91cworcmlnaHRlb3VzbmVzcworcmlnaHRseQorcmlnaHRzCityaW5nCityaW5ncworcmlwZW5lZAorcmlwaGF0aAorcmlzZQorcmlzZW4KK3JpdmVyCityaXZlcnMKK3JvYWQKK3JvYmUKK3JvY2sKK3JvZGUKK3JvZHMKK3JvbGwKK3JvbGxlZAorcm9vZgorcm9vbQorcm9vbXMKK3Jvc2UKK3Jvc2gKK3JvdWdobHkKK3JvdW5kCityb3VzZQorcm91dGVkCityb3lhbAorcnVsZQorcnVsZXIKK3J1bGVyJ3MKK3J1bgorcnVubmVscworc2FiJ3RlY2EKK3NhYnRhaAorc2Fjaworc2Fja2Nsb3RoCitzYWNrcworc2FjcmVkCitzYWNyaWZpY2UKK3NhY3JpZmljZXMKK3NhZGRsZQorc2FkZGxlZAorc2FmZWx5CitzYWZldHkKK3NhaWQKK3Nha2UKK3NhbGFyaWVzCitzYWxlbQorc2FsdAorc2FsdmF0aW9uCitzYW1lCitzYW1sYWgKK3NhbmQKK3NhbmRhbC10aG9uZworc2FyJ2FpCitzYXJhaAorc2FyYWgncworc2F0CitzYXZhZ2VzCitzYXZlZAorc2F2aW5nCitzYXZvcnkKK3Nhdworc2F5CitzYXlpbmcKK3NheXMKK3NjYXJjZWx5CitzY2FybGV0CitzY2F0dGVyCitzY2F0dGVyZWQKK3NjZXB0ZXIKK3NlJ2lyCitzZWEKK3NlYXJjaGVkCitzZWFzCitzZWFzaG9yZQorc2Vhc29uCitzZWFzb25zCitzZWJhCitzZWNvbmQKK3NlY3JldGx5CitzZWN1cmUKK3NlY3VyaXR5CitzZWUKK3NlZWQKK3NlZWR0aW1lCitzZWVpbmcKK3NlZWsKK3NlZWtpbmcKK3NlZW0KK3NlZW1lZAorc2Vlbgorc2Vlcworc2VpemUKK3NlaXplZAorc2VsZWN0CitzZWxmLWV2aWRlbnQKK3NlbGwKK3NlbWVuCitzZW5kCitzZW50CitzZXBhcmF0ZQorc2VwYXJhdGVkCitzZXBhcmF0aW9uCitzZXBoYXIKK3NlcHVsY2hyZQorc2VwdWxjaHJlcworc2VyYWgKK3NlcmVkCitzZXJwZW50CitzZXJ1Zworc2VydmFudAorc2VydmFudCdzCitzZXJ2YW50cworc2VydmUKK3NlcnZlZAorc2VydmljZQorc2VydmluZworc2V0CitzZXRoCitzZXR0bGUKK3NldHRsZWQKK3NldHRsZW1lbnQKK3NldmVuCitzZXZlbmZvbGQKK3NldmVudGVlbgorc2V2ZW50ZWVudGgKK3NldmVudGgKK3NldmVudHkKK3NldmVudHktZml2ZQorc2V2ZW50eS1zZXZlbgorc2V2ZW50eS1zZXZlbmZvbGQKK3NldmVyZQorc2V3ZWQKK3NleGVzCitzaGEndmVoLWtpcmlhdGhhJ2ltCitzaGFsbAorc2hhbW1haAorc2hhcmUKK3NoYXVsCitzaGF2ZWQKK3NoYXZlaAorc2hlCitzaGUtYXNzZXMKK3NoZS1nb2F0CitzaGUtZ29hdHMKK3NoZWFmCitzaGVhcgorc2hlYXZlcworc2hlYmEKK3NoZWNoZW0KK3NoZWNoZW0ncworc2hlZAorc2hlZHMKK3NoZWVwCitzaGVlcGZvbGRzCitzaGVlcHNoZWFyZXJzCitzaGVrZWwKK3NoZWtlbHMKK3NoZWxhaAorc2hlbGVwaAorc2hlbHRlcgorc2hlbQorc2hlbWUnYmVyCitzaGVvbAorc2hlcGhlcmQKK3NoZXBoZXJkaW5nCitzaGVwaGVyZHMKK3NoZXBobworc2hpYmFoCitzaGllbGQKK3NoaWxsZW0KK3NoaW1yb24KK3NoaW5hYgorc2hpbmFyCitzaGlwcworc2hvYmFsCitzaG9yZQorc2hvcnQKK3Nob3J0bHkKK3Nob3QKK3Nob3VsZAorc2hvdWxkZXIKK3Nob3VsZGVycworc2hvdworc2hvd2VkCitzaG93bgorc2h1YQorc2h1YSdzCitzaHVhaAorc2h1bmkKK3NodXIKK3NodXQKK3NpZGRpbQorc2lkZQorc2lkb24KK3NpZ2h0CitzaWduCitzaWduZXQKK3NpZ25zCitzaWxlbmNlCitzaWx2ZXIKK3NpbWVvbgorc2luCitzaW5jZQorc2luZXcKK3Npbml0ZXMKK3Npbm5lZAorc2lubmVycworc2lubmluZworc2lzdGVyCitzaXN0ZXIncworc2l0CitzaXRuYWgKK3NpdHRpbmcKK3NpeAorc2l4dGVlbgorc2l4dGgKK3NpeHR5CitzaXh0eS1maXZlCitzaXh0eS1uaW5lCitzaXh0eS1zaXgKK3NpeHR5LXR3bworc2tpbGZ1bAorc2tpbgorc2tpbnMKK3NsYWluCitzbGF1Z2h0ZXIKK3NsYXZlCitzbGF2ZXMKK3NsYXkKK3NsYXlzCitzbGVlaworc2xlZXAKK3NsZWV2ZXMKK3NsZXB0CitzbGV3CitzbG9wZQorc2xvd2x5CitzbWFsbAorc21lbGwKK3NtZWxsZWQKK3Ntb2tlCitzbW9raW5nCitzbW9vdGgKK3NvCitzb2RvbQorc29pbAorc29qb3Vybgorc29qb3VybmVkCitzb2pvdXJuZXIKK3Nvam91cm5lcnMKK3Nvam91cm5pbmcKK3Nvam91cm5pbmdzCitzb2xkCitzb2xlCitzb2xlbW5seQorc29tZQorc29uCitzb24ncworc29uZ3MKK3NvbnMKK3NvbnMnCitzb25zLWluLWxhdworc29vbgorc29yZQorc29yZWx5Citzb3Jyb3cKK3NvcnJvd2Z1bAorc29ycnkKK3NvcnQKK3NvcnRzCitzb3VnaHQKK3NvdWwKK3NvdW5kCitzb3V0aAorc291dGh3YXJkCitzb3cKK3Nvd2VkCitzcGFjZQorc3BhcmUKK3NwYXJlZAorc3BlYWsKK3NwZWFraW5nCitzcGVha3MKK3NwZWNrbGVkCitzcGVlY2gKK3NwZW5kCitzcGVudAorc3BpZXMKK3NwaWxsZWQKK3NwaXJpdAorc3BsZW5kb3IKK3Nwb2lsCitzcG9rZQorc3Bva2VuCitzcG90dGVkCitzcHJlYWQKK3NwcmluZworc3ByaW5naW5nCitzcHJpbmdzCitzcHJvdXRlZAorc3BydW5nCitzdGFmZgorc3RhZ2UKK3N0YWxrCitzdGFuZAorc3RhbmRpbmcKK3N0YW5kcworc3RhcnMKK3N0YXRlCitzdGF0ZXMKK3N0YXRlczoKK3N0YXRpb24KK3N0YXR1dGUKK3N0YXR1dGVzCitzdGF5CitzdGF5ZWQKK3N0ZWFkCitzdGVhZGZhc3QKK3N0ZWFsCitzdGV3YXJkCitzdGlsbAorc3RvbGUKK3N0b2xlbgorc3RvbmUKK3N0b25lcworc3Rvb2QKK3N0b29wZWQKK3N0b3AKK3N0b3BwZWQKK3N0b3JlCitzdG9yZWQKK3N0b3JlaG91c2VzCitzdG9yeQorc3RyYW5nZXIKK3N0cmFuZ2Vycworc3RyYXcKK3N0cmVha3MKK3N0cmVhbQorc3RyZWV0CitzdHJlbmd0aAorc3RyZXRjaGVkCitzdHJpZmUKK3N0cmlraW5nCitzdHJpcGVkCitzdHJpcHBlZAorc3RyaXZlbgorc3Ryb25nCitzdHJvbmdlcgorc3Ryb25nbHkKK3N0cnVjaworc3RydWdnbGVkCitzdWJkdWUKK3N1YmR1ZWQKK3N1YmplY3QKK3N1Ym1pdAorc3VibWl0dGVkCitzdWJzaWRlZAorc3Vic3RhbmNlCitzdWJ0bGUKK3N1Y2Nlc3MKK3N1Y2Nlc3NmdWwKK3N1Y2NvdGgKK3N1Y2gKK3N1Y2sKK3N1Y2tsZQorc3VmZmVyCitzdWZmZXJhYmxlCitzdWZmZXJhbmNlCitzdWl0YWJsZQorc3VtbWVyCitzdW1tb25lZAorc3VuCitzdXBlcmlvcgorc3VwcGxhbnRlZAorc3VwcGxpZWQKK3N1cHBvcnQKK3N1cHBvc2UKK3N1cHJlbWUKK3N1cmVseQorc3VyZXR5CitzdXJyb3VuZGVkCitzdXJ2aXZvcnMKK3N1c3BlbmRlZAorc3VzcGVuZGluZworc3VzdGFpbmVkCitzd2FsbG93ZWQKK3N3YXJtCitzd2FybWluZworc3dhcm1zCitzd2Vhcgorc3dlYXQKK3N3b3JkCitzd29yZHMKK3N3b3JlCitzd29ybgorc3lzdGVtCitzeXN0ZW1zCit0YWJsZQordGFoYXNoCit0YWtlCit0YWtlbgordGFraW5nCit0YWxrZWQKK3RhbGtpbmcKK3RhbWFyCit0YW1hcmlzawordGFtYm91cmluZQordGFycmllZAordGFycnkKK3RhcnNoaXNoCit0YXhlcwordGUnbWFuaXRlcwordGViYWgKK3RlZXRoCit0ZWxsCit0ZWxscwordGVtYQordGVtYW4KK3RlbgordGVuZGVyCit0ZW5kZXJseQordGVudAordGVudGgKK3RlbnRzCit0ZW51cmUKK3RlcmFoCit0ZXJtczoKK3RlcnJpdG9yeQordGVycm9yCit0ZXN0ZWQKK3RoYW4KK3RoYXQKK3RoZQordGhlZQordGhlaXIKK3RoZWlycwordGhlbQordGhlbXNlbHZlcwordGhlbgordGhlbmNlCit0aGVyZQordGhlcmVmb3JlCit0aGVyZWluCit0aGVzZQordGhleQordGhpY2tldAordGhpZ2gKK3RoaW4KK3RoaW5nCit0aGluZ3MKK3RoaW5raW5nCit0aGlyZAordGhpcnRlZW4KK3RoaXJ0ZWVudGgKK3RoaXJ0eQordGhpcnR5LWZpdmUKK3RoaXJ0eS1mb3VyCit0aGlydHktc2V2ZW4KK3RoaXJ0eS10aHJlZQordGhpcnR5LXR3bwordGhpcwordGhpc3RsZXMKK3Rob3JucwordGhvcm91Z2hseQordGhvc2UKK3Rob3UKK3Rob3VnaHQKK3Rob3VnaHRzCit0aG91c2FuZAordGhvdXNhbmRzCit0aHJlYWQKK3RocmVlCit0aHJlc2hpbmcKK3Rocm9uZQordGhyb3VnaAordGhyb3VnaG91dAordGhyb3cKK3RodXMKK3RoeQordGlkYWwKK3RpZGluZ3MKK3RpZXMKK3RpZ3JpcwordGlsbAordGlsbGVyCit0aW1lCit0aW1lcwordGltbmEKK3RpbW5haAordGlyYXMKK3RvCit0b2RheQordG9nYXInbWFoCit0b2dldGhlcgordG9pbAordG9sYQordG9sZAordG9tYgordG9uaWdodAordG9vCit0b29rCit0b3AKK3RvcHMKK3RvcmNoCit0b3JuCit0b3RhbGx5Cit0b3RhbHkKK3RvdWNoCit0b3VjaGVkCit0b3VjaGVzCit0b3dhcmQKK3Rvd2VyCit0b3ducwordHJhZGUKK3RyYWRlcnMKK3RyYWluCit0cmFpbmVkCit0cmFuc2dyZXNzaW9uCit0cmFuc2llbnQKK3RyYW5zcG9ydGluZwordHJhdmFpbGVkCit0cmVhc3VyZQordHJlYXQKK3RyZWF0ZWQKK3RyZWUKK3RyZWVzCit0cmVtYmxlZAordHJlbWJsaW5nCit0cmlhbAordHJpYmVzCit0cmllZAordHJvb3BzCit0cm91YmxlCit0cm91YmxlZAordHJvdWJsZXMKK3Ryb3VnaAordHJvdWdocwordHJ1bHkKK3RydXRoCit0cnV0aHMKK3R1YmFsCit0dWJhbC0KK3R1YmFsLWNhaW4KK3R1cm4KK3R1cm5lZAordHVybnMKK3R1cnRsZWRvdmUKK3R3ZWx2ZQordHdlbnR5Cit0d2VudHktbmluZQordHdlbnR5LXNldmVuCit0d2VudHktc2V2ZW50aAordHdpY2UKK3R3aW5zCit0d28KK3R5cmFubnkKK3R5cmFudAordHlyYW50cwordW5hY2tub3dsZWRnZWQKK3VuYWxpZW5hYmxlCit1bmF3YXJlcwordW5jaXJjdW1jaXNlZAordW5jb21mb3J0YWJsZQordW5jb3ZlcmVkCit1bmRlcgordW5kZXJzdGFuZAordW5kZXJzdG9vZAordW5kaXN0aW5ndWlzaGVkCit1bmZpdAordW5naXJkZWQKK3VuaXRlZAordW5rbm93bgordW5sZWF2ZW5lZAordW5sZXNzCit1bm1vdmVkCit1bnN0YWJsZQordW50aWwKK3VudXN1YWwKK3Vud2FycmFudGFibGUKK3Vud29ydGgKK3VwCit1cGJyYWlkZWQKK3Vwb24KK3VwcGVybW9zdAordXByaWdodAordXIKK3VyZ2VkCit1cwordXM6Cit1c2UKK3VzaW5nCit1c3VycGF0aW9ucwordXR0ZXJseQordXoKK3V6YWwKK3ZhbGxleQordmFsdWFibGUKK3ZlZ2V0YXRpb24KK3ZlaWwKK3ZlbmdlYW5jZQordmVudAordmVudHMKK3ZlcmlmaWVkCit2ZXJ5Cit2ZXN0dXJlCit2aWxsYWdlcwordmluZGljYXRpb24KK3ZpbmUKK3ZpbmV5YXJkCit2aW9sZW5jZQordmlvbGVudGx5Cit2aXBlcgordmlyZ2luCit2aXNpb24KK3Zpc2lvbnMKK3Zpc2l0Cit2aXNpdGVkCit2b2ljZQordm9pZAordm93Cit3YWdlcword2FnaW5nCit3YWdvbnMKK3dhaXQKK3dhaXRlZAord2Fsaword2Fsa2VkCit3YWxraW5nCit3YWxsCit3YW5kZXIKK3dhbmRlcmVkCit3YW5kZXJlcgord2FuZGVyaW5nCit3YW50aW5nCit3YW50b25uZXNzCit3YXIKK3dhcmZhcmUKK3dhcm5lZAord2FzCit3YXNoCit3YXNoZWQKK3dhc2hlcword2F0Y2gKK3dhdGVyCit3YXRlcmVkCit3YXRlcmluZword2F0ZXJzCit3YXkKK3dheXNpZGUKK3dlCit3ZWFrCit3ZWFrbmVzcword2VhbHRoCit3ZWFsdGh5Cit3ZWFuZWQKK3dlYXBvbnMKK3dlYXIKK3dlYXJpZWQKK3dlYXJ5Cit3ZWVrCit3ZWVwCit3ZWVwaW5nCit3ZWlnaGVkCit3ZWlnaGluZword2VpZ2h0Cit3ZWlnaHRzCit3ZWxmYXJlCit3ZWxsCit3ZWxsJ3MKK3dlbGxzCit3ZW50Cit3ZXB0Cit3ZXJlCit3ZXN0Cit3ZXN0d2FyZAord2hhdAord2hhdGV2ZXIKK3doYXRzb2V2ZXIKK3doZWF0Cit3aGVscAord2hlbgord2hlbmNlCit3aGVuZXZlcgord2hlcmUKK3doZXJlYnkKK3doZXJldmVyCit3aGV0aGVyCit3aGljaAord2hpbGUKK3doaXRlCit3aG8KK3dob2V2ZXIKK3dob2xlCit3aG9sZXNvbWUKK3dob20KK3dob21ldmVyCit3aG9zZQord2h5Cit3aWNrZWQKK3dpY2tlZGx5Cit3aWNrZWRuZXNzCit3aWRvdword2lkb3cncword2lkb3dob29kCit3aWZlCit3aWZlJ3MKK3dpbGQKK3dpbGRlcm5lc3MKK3dpbGwKK3dpbGxpbmcKK3dpbHQKK3dpbmQKK3dpbmRvdword2luZG93cword2luZQord2luZ2VkCit3aW50ZXIKK3dpc2UKK3dpdGgKK3dpdGhlcmVkCit3aXRoaGVsZAord2l0aGhvbGQKK3dpdGhpbgord2l0aG91dAord2l0bmVzcword2l2ZXMKK3dvbGYKK3dvbWFuCit3b21hbidzCit3b21iCit3b21icword29tZW4KK3dvb2QKK3dvcmQKK3dvcmRzCit3b3JlCit3b3JrCit3b3Jrcword29ybGQKK3dvcmxkOgord29yc2UKK3dvcnNoaXAKK3dvcnNoaXBlZAord29ydGgKK3dvcnRoeQord291bGQKK3dvdW5kaW5nCit3cmFwcGluZword3JhdGgKK3dyZXN0bGVkCit3cmVzdGxpbmdzCit3cm9uZword3JvdWdodAoreWVhcgoreWVhcm5lZAoreWVhcnMKK3llcworeWV0Cit5aWVsZAoreWllbGRpbmcKK3lva2UKK3lvbmRlcgoreW91Cit5b3VuZworeW91bmdlcgoreW91bmdlc3QKK3lvdXIKK3lvdXJzCit5b3Vyc2VsZgoreW91cnNlbHZlcworeW91dGgKK3phJ2F2YW4KK3phcGgnZW5hdGgtcGFuZSdhaAoremViJ3VsdW4KK3plYm9pJ2ltCit6ZW0nYXJpdGVzCit6ZXBobworemVyYWgKK3ppYidlb24KK3ppbGxhaAoremlscGFoCit6aW1yYW4KK3ppcGgnaW9uCit6bydhcgorem9oYXIKK3p1emltCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMGYxMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHMuamF2YQpAQCAtMCwwICsxLDM0IEBACisgLyoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGEucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICB7ICAgIAorICAgICAgICAgICAgImZyb21fcm9vdCIsCisgICAgCQkiVGhpcyBkYXRhIGNvbWVzIGZyb20gcm9vdCIKKyAgICAJfSwKKyAgICAgICAgeworICAgICAgICAgICAgImZyb21fZW4iLAorICAgICAgICAgICAgIkluIHJvb3Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4iCisgICAgICAgIH0sCisgICAgCXsgCisgICAgCQkiZnJvbV9lbl9MYXRuIiwKKyAgICAJCSJJbiByb290IHNob3VsZCBiZSBvdmVycmlkZGVuIgorICAgIAl9LAorICAgIAl7CisgICAgCQkiZnJvbV9lbl9MYXRuX1VTIiwKKyAgICAJCSJJbiByb290IHNob3VsZCBiZSBvdmVycmlkZGVuIgorICAgIAl9CisgICAgCQorICAgIH07CisJcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisJCXJldHVybiBkYXRhOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbi5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRjM2YxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbi5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTAgQEAKKyMgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKgorIyBUZXN0RGF0YUVsZW1lbnRzX2VuLnByb3BlcnRpZXMKK2Zyb21fZW49VGhpcyBkYXRhIGNvbWVzIGZyb20gZW4KK2Zyb21fZW5fTGF0bj1JbiBlbiBzaG91bGQgYmUgb3ZlcnJpZGRlbgorZnJvbV9lbl9MYXRuX1VTPUluIGVuIHNob3VsZCBiZSBvdmVycmlkZGVuCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fTGF0bi5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG4ucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODVlYjk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG4ucHJvcGVydGllcwpAQCAtMCwwICsxLDkgQEAKKyMgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICoKKyMgVGVzdERhdGFFbGVtZW50c19lbl9MYXRuLnByb3BlcnRpZXMKK2Zyb21fZW5fTGF0bj1UaGlzIGRhdGEgY29tZXMgZnJvbSBlbl9MYXRuCitmcm9tX2VuX0xhdG5fVVM9SW4gZW5fTGF0biBzaG91bGQgYmUgb3ZlcnJpZGRlbgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG5fVVMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9MYXRuX1VTLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJjZmMzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9MYXRuX1VTLmphdmEKQEAgLTAsMCArMSwyMiBAQAorIC8qCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG5fVVMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgIAl7CisgICAgCQkiZnJvbV9lbl9MYXRuX1VTIiwKKyAgICAJCSJUaGlzIGRhdGEgY29tZXMgZnJvbSBlbl9MYXRuX1VTIgorICAgIAl9CisgICAgCQorICAgIH07CisJcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisJCXJldHVybiBkYXRhOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9VUy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX1VTLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZhODQ2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9VUy5qYXZhCkBAIC0wLDAgKzEsMjMgQEAKKyAvKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGF0YS5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50c19lbl9VUyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICB7CisgICAgICAgICAgICAiZnJvbV9lbl9VUyIsCisgICAgICAgICAgICAiVGhpcyBkYXRhIGNvbWVzIGZyb20gZW5fVVMiCisgICAgICAgIH0KKyAgICAgICAgCisgICAgfTsKKyAgICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX3RlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTkyMDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX3RlLmphdmEKQEAgLTAsMCArMSwyMiBAQAorIC8qCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsZW1lbnRzX3RlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAJeworICAgIAkJImZyb21fdGUiLAorICAgIAkJIkluIHJvb3Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4iCisgICAgCX0KKyAgICAJCisgICAgfTsKKwlwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKwkJcmV0dXJuIGRhdGE7CisJfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbG1lbnRzX2ZyX0xhdG5fRlIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbG1lbnRzX2ZyX0xhdG5fRlIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFiNGEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsbWVudHNfZnJfTGF0bl9GUi5qYXZhCkBAIC0wLDAgKzEsMjQgQEAKKyAvKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsbWVudHNfZnJfTGF0bl9GUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICB7CisgICAgICAgICAgICAiZnJvbV9mcl9MYXRuX0ZSIiwKKyAgICAgICAgICAgICJUaGlzIGRhdGEgY29tZXMgZnJvbSBmcl9MYXRuX0ZSIgorICAgICAgICB9CisgICAgICAgIAorICAgIH07CisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yaXdvcmRzLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yaXdvcmRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2RhYjI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jpd29yZHMudHh0CkBAIC0wLDAgKzEsMzI5NDMgQEAKK++7vyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjKgorIyogICBDb3B5cmlnaHQgKEMpIDIwMDMsIE5hdGlvbmFsIEVsZWN0cm9uaWNzIGFuZCBDb21wdXRlciBUZWNobm9sb2d5IENlbnRlcgorIyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMqIAorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgU29ydGVkIFRoYWkgd29yZCBsaXN0IHVzZWQgZm9yIHRlc3RpbmcgdGhlIFRoYWlDb2xsYXRvciBjbGFzcy4KKyMgVGhpcyBsaXN0IHdhcyB0YWtlbiBmcm9tIHRoZSBXZWI6IDxodHRwOi8vd3d3LmxpbmtzLm5lY3RlYy5vci50aC9pdGVjaC9kb3dubG9hZC5odG1sPgorIworIyBMaW5lcyBzdGFydGluZyB3aXRoICcjJyBhcmUgaWdub3JlZDsgb3RoZXJzIGFyZSB0cmVhdGVkIGFzIHNpbmdsZSB3b3JkcworIyBpbiB0aGUgVVRGLTggZW5jb2RpbmcuCisjCisjCisjIExpY2Vuc2UgaW5mb3JtYXRpb246CisjIFJJV29yZCBMaWNlbnNlCisjIAorIyBDT1BZUklHSFQgQU5EIFBFUk1JU1NJT04gTk9USUNFCisjIAorIyBDb3B5cmlnaHQgKGMpIDIwMDMgTmF0aW9uYWwgRWxlY3Ryb25pY3MgYW5kIENvbXB1dGVyIFRlY2hub2xvZ3kgQ2VudGVyIGFuZCBvdGhlcnMKKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgCisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisjIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyMgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworIyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisjIGRpc3RyaWJ1dGUsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucworIyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgb2YKKyMgdGhlIFNvZnR3YXJlIGFuZCB0aGF0IGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMKKyMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KKyMgCisjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisjIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyMgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5UCisjIE9GIFRISVJEIFBBUlRZIFJJR0hUUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyMgSE9MREVSUyBJTkNMVURFRCBJTiBUSElTIE5PVElDRSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgT1IgQU5ZIFNQRUNJQUwKKyMgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTLCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORworIyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorIyBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgorIyBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyMgCisjIEV4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIGEgY29weXJpZ2h0IGhvbGRlcgorIyBzaGFsbCBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBvdGhlcndpc2UgdG8gcHJvbW90ZSB0aGUgc2FsZSwgdXNlCisjIG9yIG90aGVyIGRlYWxpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24KKyMgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIuCisjIAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBbGwgdHJhZGVtYXJrcyBhbmQgcmVnaXN0ZXJlZCB0cmFkZW1hcmtzIG1lbnRpb25lZCBoZXJlaW4gYXJlIHRoZSBwcm9wZXJ0eSBvZiB0aGVpciByZXNwZWN0aXZlIG93bmVycy4KK+C4gQor4LiB4LmHCivguIHguIEKK+C4geC5iuC4gQor4LiB4LiB4LiC4LiZ4Liy4LiBCivguIHguIHguIrguYnguLLguIcKK+C4geC4geC4mOC4ueC4mwor4LiB4LiB4Lir4Li5CivguIEg4LiB4LiyCivguIHguIHguLjguJjguKDguLHguJPguJHguYwKK+C4gSDguIIKK+C4gSDguIIg4LmE4Lih4LmI4LiB4Lij4Liw4LiU4Li04LiB4Lir4Li5CivguIHguIcKK+C4geC5iOC4hwor4LiB4LmJ4LiHCivguIHguYrguIcKK+C4geC4h+C4geC4reC4mQor4LiB4LiH4LiB4Liy4LijCivguIHguIfguYDguIHguKfguLXguKLguJkKK+C4geC4h+C5gOC4geC4p+C4teC4ouC4meC4geC4s+C5gOC4geC4p+C4teC4ouC4mQor4LiB4LiH4LmC4LiB4LmJCivguIHguIfguITguYnguLLguIcKK+C4geC5ieC4h+C5guC4hOC5ieC4hwor4LiB4LmJ4LiH4LiHCivguIHguIfguIjguLHguIHguKMKK+C4geC4h+C4ieC4suC4gQor4LiB4LiH4LmE4LiJ4LmICivguIHguIfguYDguJXguYrguIEKK+C4geC4h+C4nuC4seC4lAor4LiB4LiH4Lin4Liy4LiZCivguIHguIfguKrguLUKK+C4geC4h+C4quC4uOC4pQor4LiB4LiKCivguIHguIotCivguIHguIrguIHguKMKK+C4geC4jgor4LiB4LiO4LiB4Lij4Liw4LiX4Lij4Lin4LiHCivguIHguI7guYDguIHguJPguJHguYwKK+C4geC4juC4guC5ieC4reC4muC4seC4h+C4hOC4seC4mgor4LiB4LiO4LiX4Lia4Lin4LiHCivguIHguI7guJjguKPguKPguKHguIrguLLguJXguLQKK+C4geC4juC4mOC4o+C4o+C4oeC4lOC4sgor4LiB4LiO4Lia4Lix4LiV4LijCivguIHguI7guJrguLHguJXguKPguIHguI7guKvguKHguLLguKIKK+C4geC4juC4muC4seC4leC4o+C4quC4q+C4m+C4o+C4sOC4iuC4suC4iuC4suC4leC4tAor4LiB4LiO4Lih4LiZ4LmA4LiX4Li14Lii4Lij4Lia4Liy4LilCivguIHguI7guKLguLjguJfguJjguKfguLTguJnguLHguKIKK+C4geC4juC4qOC4teC4peC4mOC4o+C4o+C4oQor4LiB4LiO4LmA4Liq4LiZ4Liy4Lia4LiU4Li1CivguIHguI7guKvguKHguLLguKIKK+C4geC4juC4q+C4oeC4suC4ouC4meC4suC4meC4suC4m+C4o+C4sOC5gOC4l+C4qAor4LiB4LiO4Lir4Lih4Liy4Lii4Lib4Li04LiU4Lib4Liy4LiBCivguIHguI7guKvguKHguLLguKLguJ7guLLguJPguLTguIrguKLguYwKK+C4geC4juC4q+C4oeC4suC4ouC5geC4nuC5iOC4hwor4LiB4LiO4Lir4Lih4Liy4Lii4Lij4Liw4Lir4Lin4LmI4Liy4LiH4Lib4Lij4Liw4LmA4LiX4LioCivguIHguI7guKvguKHguLLguKLguYDguKvguJXguLgKK+C4geC4juC4q+C4oeC4suC4ouC4reC4suC4jeC4sgor4LiB4LiO4Lir4Lih4Li54LmICivguIHguI7guYHguKvguYjguIfguIHguKPguKPguKEKK+C4geC4juC4reC4seC4ouC4geC4suC4o+C4qOC4tuC4gQor4LiB4LiP4Li0CivguIHguI/guLjguIEKK+C4geC4j+C4uOC4gS0KK+C4geC4j+C4uOC4geC4nOC4pQor4LiB4LiQ4Li04LiZCivguIHguJDguLTguJktCivguIHguJDguLTguJnguJfguLLguJkKK+C4geC4kOC4tOC4meC4seC4leC4luC4suC4o+C4geC4o+C4o+C4oQor4LiB4LiT4Li04LiB4LiZ4Lix4LiZ4LiV4LmMCivguIHguJPguLTguIHguLLguKPguYwKK+C4geC4lAor4LiB4LiU4LiC4Li14LmICivguIHguJTguITguK0KK+C4geC4lOC4iuC4sgor4LiB4LiU4LiU4Lix4LiZCivguIHguJTguJnguYnguLMKK+C4geC4lOC4o+C4suC4hOC4sgor4LiB4LiU4Lir4Lix4LinCivguIHguJTguYDguKvguKXguLfguK3guIcKK+C4geC5h+C4lOC4tQor4LiB4LmH4LmE4LiU4LmJCivguIHguJXguYDguKfguJfguLTguJXguLIKK+C4geC4leC5gOC4p+C4l+C4tQor4LiB4LiV4Lix4LiN4LiK4Lil4Li1CivguIHguJXguLHguI3guI3guLjguJXguLIKK+C4geC4leC4seC4jeC4jeC4uQor4LiB4LiV4Liy4LiY4Li04LiB4Liy4LijCivguIHguJXguLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC5h+C4leC4suC4oQor4LiB4LiV4Li04LiB4LiyCivguIHguJXguLTguIHguLLguKrguLHguI3guI3guLIKK+C4geC4luC4sgor4LiB4LiW4Liy4Lih4Lij4Lij4LiECivguIHguJbguLLguKHguKPguKPguITguYDguJfguKjguJnguLIKK+C4geC4luC4suC4oeC4uOC4ggor4LiB4LiW4Li04LiB4Liy4LiI4Liy4Lij4Lii4LmMCivguIHguJfguKPguKPguJsKK+C4geC4l+C4peC4tQor4LiB4LiZCivguIHguYjguJkKK+C4geC5ieC4mQor4LiB4LiZ4LiBCivguIHguYnguJnguIHguJoKK+C4geC5ieC4meC4geC4o+C4sOC4lOC4gQor4LiB4LmJ4LiZ4LiB4Li44LiP4Li0CivguIHguYnguJnguILguJoKK+C4geC5ieC4meC4hOC4o+C4seC4pwor4LiB4LmI4LiZ4LmC4LiE4LiV4LijCivguIHguYnguJnguJXguLDguIHguKPguJkKK+C4geC5iOC4meC5geC4leC5iAor4LiB4LiZ4LiZCivguIHguJnguJnguYDguIrguK0KK+C4geC5iOC4meC4meC5guC4luC4hwor4LiB4LiZ4LiZ4LmA4Lir4Li04LihCivguIHguYnguJnguJrguLbguYnguIcKK+C4geC5ieC4meC4m+C4peC5iOC4reC4hwor4LiB4LmJ4LiZ4Lib4Lit4LiUCivguIHguYnguJnguJvguLTguJQKK+C4geC5ieC4meC4m+C4ueC4lAor4LiB4LmJ4LiZ4LmB4Lih4Lil4LiH4Liq4Liy4LiaCivguIHguYnguJnguKLguYnguK3guKIKK+C4geC5iOC4meC4quC4o+C5ieC4suC4hwor4LiB4LmJ4LiZ4Lir4LiZ4Lix4LiBCivguIHguYnguJnguKvguKLguYjguK3guJkKK+C4geC5ieC4meC4q+C4reC4ogor4LiB4LmJ4LiZ4Lit4LmJ4Lit4LiiCivguIHguJnguLTguKnguJAtCivguIHguJnguLTguKnguJDguYwKK+C4geC4meC4tOC4qeC4kOC4oOC4hOC4tOC4meC4tQor4LiB4LiZ4Li04Lip4LiQ4Lig4Liy4LiU4LiyCivguIHguJnguLTguKnguJDguLIKK+C4geC4mgor4LiB4Lia4LiPCivguIHguJrguJTguLLguJkKK+C4geC4muC5gOC4leC5ieC4mQor4LiB4Lia4LiX4Li5CivguIHguJrguJfguLnguJQKK+C4geC4muC4muC4seC4pwor4LiB4Lia4LmA4Lil4Li34Lit4LiB4LiZ4Liy4LiiCivguIHguJrguLLguKUKK+C4geC4muC4tOC4meC4l+C4o+C5jAor4LiB4Lia4Li04LilCivguIHguJrguLXguYgKK+C4geC4muC4teC5iOC4mOC4uOC4igor4LiB4Lia4Li54LijCivguIHguYDguJrguJnguJfguKPguYwKK+C4geC5guC4muC4owor4LiB4LmC4Lia4LilCivguIHguJvguJMKK+C4geC4m+C4k+C4gQor4LiB4Lib4LiT4LiyCivguIHguJvguLQKK+C4geC4m+C4tOC4leC4seC4mQor4LiB4LihCivguIHguYnguKEKK+C4geC4oeC4k+C4keC4peC4suC4oOC4tOC5gOC4qeC4gQor4LiB4Lih4LiT4LiR4LmC4Lil4LiX4LiBCivguIHguKHguKUKK+C4geC4oeC4peC4sgor4LiB4Lih4Lil4Liy4LioCivguIHguKHguKXguLLguKrguJnguYwKK+C4geC4oeC5gOC4peC4qAor4LiB4LmJ4Lih4Lir4LiZ4LmJ4LiyCivguIHguYnguKHguKvguJnguYnguLLguIHguYnguKHguJXguLIKK+C4geC5ieC4oeC4q+C4peC4seC4hwor4LiB4LmJ4Lih4Lir4Lix4LinCivguIHguKHguLHguJPguJHguKXguLgKK+C4geC4oeC4uOC4lwor4LiB4LijCivguIHguKPguIEKK+C4geC4o+C4geC4igor4LiB4Lij4LiB4LiOCivguIHguKPguIHguI7guLLguITguKEKK+C4geC4o+C4geC4jwor4LiB4Lij4LiHCivguIHguKPguIfguJfguK3guIcKK+C4geC4o+C4h+C5gOC4peC5h+C4mgor4LiB4Lij4LiK4LiB4Liy4LiiCivguIHguKPguJPguJHguYwKK+C4geC4o+C4k+C4tOC4geC4suC4o+C5jAor4LiB4Lij4LiT4Li1CivguIHguKPguJPguLXguKItCivguIHguKPguJPguLXguKLguYwKK+C4geC4o+C4k+C4teC4ouC4sAor4LiB4Lij4LiUCivguIHguKPguJkKK+C4geC4o+C4meC4l+C4sgor4LiB4Lij4LiZ4LiZ4LmA4LiK4LmJ4LiyCivguIHguKPguJoKK+C4geC4o+C4muC4ueC4owor4LiB4Lij4Lie4Li04LiZ4LiY4Li44LmMCivguIHguKPguKDguLjguKEKK+C4geC4o+C4oQor4LiB4Lij4Lih4LiB4Lij4Lit4LihCivguIHguKPguKHguIHguLLguKMKK+C4geC4o+C4oeC4geC4suC4o+C4nuC4tOC5gOC4qOC4qQor4LiB4Lij4Lih4LmA4LiB4Lij4Li14Lii4LihCivguIHguKPguKHguJfguYjguLIKK+C4geC4o+C4oeC4l+C5iOC4suC4guC4p+C4sgor4LiB4Lij4Lih4LiX4LmI4Liy4LiL4LmJ4Liy4LiiCivguIHguKPguKHguJjguKPguKPguKHguYwKK+C4geC4o+C4oeC4mOC4o+C4o+C4oeC5jOC4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4LiB4Lij4Lih4LiZ4LiyCivguIHguKPguKHguKfguLHguIcKK+C4geC4o+C4oeC4qOC4seC4geC4lOC4tOC5jAor4LiB4Lij4LijCivguIHguKPguKPguIHguIcKK+C4geC4o+C4o+C4geC4jgor4LiB4Lij4Lij4LiB4LioCivguIHguKPguKPguYDguIHguJQKK+C4geC4o+C4o+C5hOC4geC4owor4LiB4Lij4Lij4LmA4LiI4Li14Lii4LiBCivguIHguKPguKPguIrguLTguIcKK+C4geC4o+C4o+C4iuC4tOC4lAor4LiB4Lij4Lij4LmA4LiK4LitCivguIHguKPguKPguYDguIrguYnguLIKK+C4geC4o+C4o+C5gOC4iuC4teC4ouC4hwor4LiB4Lij4Lij4LmC4LiK4LiBCivguIHguKPguKPguIvguYnguJnguJkKK+C4geC4o+C4o+C5geC4i+C4hwor4LiB4Lij4Lij4LiQ4LmMCivguIHguKPguKPguJDguLIKK+C4geC4o+C4o+C4kwor4LiB4Lij4Lij4LiT4Lii4Li44LiE4LilCivguIHguKPguKPguJPguLIKK+C4geC4o+C4o+C4k+C4tOC4geC4sgor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguIHguKPguKPguJTguLQKK+C4geC4o+C4o+C4lOC4tOC4gQor4LiB4Lij4Lij4LiU4Li24LiBCivguIHguKPguKPguJXguLgKK+C4geC4o+C4o+C4leC4uC0KK+C4geC4o+C4o+C4leC4uOC4geC4suC4o+C4gQor4LiB4Lij4Lij4LiV4Li44Lin4Liy4LiI4LiBCivguIHguKPguKPguJXguLjguKrguLHguI3guI3guLIKK+C4geC4o+C4o+C5hOC4leC4owor4LiB4Lij4Lij4LiX4LiaCivguIHguKPguKPguYHguJfguIEKK+C4geC4o+C4o+C5geC4l+C4o+C4gQor4LiB4Lij4Lij4Lia4Liy4Liq4Li04LiBCivguIHguKPguKPguJrguLLguKrguLTguIHguJ7guLHguKrguJXguKPguYwKK+C4geC4o+C4o+C4muC4tOC4lAor4LiB4Lij4Lij4Lia4Li54LijCivguIHguKPguKPguJvguLLguKrguLTguIEKK+C4geC4o+C4o+C4m+C4uOC4owor4LiB4Lij4Lij4Lie4Li44LihCivguIHguKPguKPguJ7guLjguYjguKEKK+C4geC4o+C4o+C4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lij4Lij4LihCivguIHguKPguKPguKEtCivguIHguKPguKPguKHguYwKK+C4geC4o+C4o+C4oeC4geC4owor4LiB4Lij4Lij4Lih4LiB4Lij4LiT4LmMCivguIHguKPguKPguKHguIHguLLguKMKK+C4geC4o+C4o+C4oeC4geC4suC4o+C4gQor4LiB4Lij4Lij4Lih4LiB4Liy4Lij4Li04LiT4Li1CivguIHguKPguKPguKHguILguLHguKIKK+C4geC4o+C4o+C4oeC4hOC4leC4tAor4LiB4Lij4Lij4Lih4LiK4Lij4Li54LibCivguIHguKPguKPguKHguIrguKfguLLguJUKK+C4geC4o+C4o+C4oeC4kOC4suC4mQor4LiB4Lij4Lij4Lih4Lia4LiWCivguIHguKPguKPguKHguJ7guLHguJnguJjguLjguYwKK+C4geC4o+C4o+C4oeC5jOC4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lij4Lij4Lih4Lin4Liy4LiI4LiBCivguIHguKPguKPguKHguKfguLLguIjguLIKK+C4geC4o+C4o+C4oeC4p+C4suC4iOC4suC4iOC4suC4o+C4ouC5jAor4LiB4Lij4Lij4Lih4Lin4Li04LiY4Li1CivguIHguKPguKPguKHguKfguLTguJrguLLguIEKK+C4geC4o+C4o+C4oeC5gOC4p+C4owor4LiB4Lij4Lij4Lih4Lio4Liy4Lil4LiyCivguIHguKPguKPguKHguKrguLHguKHguJvguLLguJfguLTguIEKK+C4geC4o+C4o+C4oeC4quC4tOC4l+C4mOC4tOC5jAor4LiB4Lij4Lij4Lih4Liq4Li04LiX4LiY4Li04LmM4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lih4Liy4Lii4LmB4Lil4Liw4Lii4Li14LmI4Lir4LmJ4Lit4LiB4Liy4Lij4LiE4LmJ4Liy4LiC4Liy4LiiCivguIHguKPguKPguKHguKrguLTguJfguJjguLTguYzguJzguLnguYnguYHguJXguYjguIfguKvguJnguLHguIfguKrguLfguK0KK+C4geC4o+C4o+C4oeC4quC4tOC4l+C4mOC4tOC5jOC4o+C4p+C4oQor4LiB4Lij4Lij4Lih4Lix4LiK4Lin4Liy4LiVCivguIHguKPguKPguKHguLLguIrguLXguJ4KK+C4geC4o+C4o+C4oeC4suC4mOC4tOC4geC4suC4owor4LiB4Lij4Lij4Lih4Liy4LijCivguIHguKPguKPguKXguLUKK+C4geC4o+C4o+C4peC4tuC4hwor4LiB4Lij4Lij4Lip4LiBCivguIHguKPguKPguKrguLAKK+C4geC4o+C4o+C5geC4quC4hwor4LiB4Lij4Lij4Lir4Liy4LiiCivguIHguKPguKPguYDguKvguLTguKEKK+C4geC4o+C4o+C5guC4q+C4ogor4LiB4Lij4Lij4LmA4Lit4LiyCivguIHguKPguKPguLjguJPguLIKK+C4geC4o+C4p+C4lAor4LiB4Lij4Lin4LiU4LiZ4LmJ4LizCivguIHguKPguKfguJkKK+C4geC4o+C4p+C4mgor4LiB4Lij4Lin4LihCivguIHguKPguYnguKfguKEKK+C4geC4o+C4p+C4ogor4LiB4Lij4Lin4Lii4LmA4LiK4Li04LiHCivguIHguKPguKfguKLguJrguYnguLLguJkKK+C4geC4o+C4p+C4ouC4m+C5iOC4sgor4LiB4Lij4Lin4Li04LiBCivguIHguKPguKrguLLguJvguJnguYwKK+C4geC4o+C4quC4uOC4l+C4mOC4tOC5jAor4LiB4Lij4LitCivguIHguKPguYnguK0KK+C4geC4o+C4reC4gQor4LiB4Lij4LmH4Lit4LiB4LiB4Lij4LmL4Lit4LiiCivguIHguKPguK3guIHguYHguIHguKPguIEKK+C4geC4o+C4reC4geC4o+C4uOC4ogor4LiB4Lij4Lit4LiHCivguIHguKPguK3guIfguIHguKPguK3guKIKK+C4geC4o+C4reC4h+C4l+C4reC4hwor4LiB4Lij4Lit4LiUCivguIHguKPguYjguK3guJkKK+C4geC4o+C4reC4mgor4LiB4Lij4Lit4Lia4LmA4LiB4Lij4Li14Lii4LiaCivguIHguKPguK3guJrguYHguIHguKPguJoKK+C4geC4o+C4reC4muC5gOC4iuC5h+C4lOC4q+C4meC5ieC4sgor4LiB4Lij4Lit4Lia4Lir4LiZ4LmJ4LiyCivguIHguKPguK3guKEKK+C4geC4o+C5iOC4reC4oQor4LiB4Lij4LmI4Lit4Lih4LmGCivguIHguKPguYjguK3guKIKK+C4geC4o+C4sAor4LiB4Lij4Liw4LiB4LijCivguIHguKPguLDguIHguKPguLHguJrguIHguKPguLDguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4sOC4geC4o+C4teC5iuC4lAor4LiB4Lij4Liw4LiB4Lij4Li44LmI4LiZCivguIHguKPguLDguIHguKXguLHguJrguIHguKXguK3guIEKK+C4geC4o+C4sOC4geC4p+C4lAor4LiB4Lij4Liw4LiB4Lit4LiHCivguIHguKPguLDguIHguLHguJQKK+C4geC4o+C4sOC4geC4teC5iQor4LiB4Lij4Liw4LiB4Li54LilCivguIHguKPguLDguYDguIHguKPguK3guIEKK+C4geC4o+C4sOC5gOC4geC4o+C4tOC4gQor4LiB4Lij4Liw4LmA4LiB4Lij4Li04LmI4LiZCist4LiB4Lij4Liw4LmA4LiB4Lij4Li14Lii4LiaCivguIHguKPguLDguYDguIHguKPguLXguKLguKEKK+C4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4pwor4LiB4Lij4Liw4LmA4LiB4Lij4Li14LmJ4Lii4LinCivguIHguKPguLDguYDguIHguKXguLfguK3guIEKK+C4geC4o+C4sOC4hOC4mQor4LiB4Lij4Liw4LiE4Liy4LiiCivguIHguKPguLDguITguLjguIEKK+C4geC4o+C4sOC4h+C4geC4geC4o+C4sOC4h+C4seC4mQor4LiB4Lij4Liw4LiH4LiB4LiB4Lij4Liw4LmA4LiH4Li04LmI4LiZCivguIHguKPguLDguIfguYjguK3guIfguIHguKPguLDguYHguIfguYjguIcKKy3guIHguKPguLDguIfguK3guJQKK+C4geC4o+C4sOC4h+C5iOC4reC4meC4geC4o+C4sOC5geC4h+C5iOC4mQor4LiB4Lij4Liw4LmA4LiH4LmJ4Liy4LiB4Lij4Liw4LiH4Lit4LiUCivguIHguKPguLDguYLguIfguIEKK+C4geC4o+C4sOC4iOC4gQor4LiB4Lij4Liw4LiI4LiB4LmA4LiH4LiyCivguIHguKPguLDguIjguIHguJXguLIKK+C4geC4o+C4sOC4iOC4geC4meC4ueC4mQor4LiB4Lij4Liw4LiI4LiB4Lid4LmJ4LiyCivguIHguKPguLDguIjguIHguYDguKfguYnguLIKK+C4geC4o+C4sOC4iOC4geC4q+C4uOC4hwor4LiB4Lij4Liw4LiI4LiHCivguIHguKPguLDguIjguKMKK+C4geC4o+C4sOC4iOC4reC4gQor4LiB4Lij4Liw4LiI4Lit4LiB4LiH4Lit4LiB4LiH4LmI4Lit4LiiCivguIHguKPguLDguIjguK3guIHguIrguKfguLIKK+C4geC4o+C4sOC4iOC4reC4geC5gOC4l+C4qAor4LiB4Lij4Liw4LiI4Lit4LiH4Lir4LiH4LmI4Lit4LiHCivguIHguKPguLDguIjguYvguK3guIfguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4iOC4reC4h+C4reC5geC4hwor4LiB4Lij4Liw4LiI4LmJ4Lit4LiZCivguIHguKPguLDguIjguK3guJnguKvguLkKK+C4geC4o+C4sOC4iOC5ieC4reC4ogor4LiB4Lij4Liw4LiI4LmJ4Lit4Lii4Lij4LmI4Lit4LiiCivguIHguKPguLDguIjguYvguK3guKvguKfguK0KK+C4geC4o+C4sOC4iOC4sAor4LiB4Lij4Liw4LiI4Lix4LiBCivguIHguKPguLDguIjguLHguIcKK+C4geC4o+C4sOC4iOC4seC4h+C4q+C4peC4seC4h+C5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4LiI4Lix4LiUCivguIHguKPguLDguIjguLHguJTguIHguKPguLDguIjguLLguKIKK+C4geC4o+C4sOC4iOC4seC4lOC4nuC4peC4seC4lOC4nuC4o+C4suC4ogor4LiB4Lij4Liw4LiI4Lix4LiaCivguIHguKPguLDguIjguLHguJrguJrguIEKK+C4geC4o+C4sOC4iOC4seC4muC4m+C4tOC5ieC4hwor4LiB4Lij4Liw4LiI4Lix4Lia4Lib4Li14LmICivguIHguKPguLDguIjguYjguLIKK+C4geC4o+C4sOC4iOC5iOC4suC4hwor4LiB4Lij4Liw4LiI4Liy4LiUCivguIHguKPguLDguIjguLLguJkKK+C4geC4o+C4sOC4iOC4suC4mgorLeC4geC4o+C4sOC4iOC4suC4oQor4LiB4Lij4Liw4LiI4Liy4LiiCivguIHguKPguLDguIjguLLguKLguJnguLDguKHguJPguJHguKUKK+C4geC4o+C4sOC4iOC4suC4ouC5gOC4quC4teC4ouC4hwor4LiB4Lij4Liw4LiI4Liy4Lii4Lir4Liy4LiH4LiU4Lit4LiBCivguIHguKPguLDguIjguLLguKcKKy3guIHguKPguLDguIjguLTguIEKKy3guIHguKPguLDguIjguLTguYvguIcKK+C4geC4o+C4sOC4iOC4tOC4lAor4LiB4Lij4Liw4LiI4Li04LiaCist4LiB4Lij4Liw4LiI4Li04LiaCist4LiB4Lij4Liw4LiI4Li04LmL4LihCivguIHguKPguLDguIjguLTguKPguLTguJQKK+C4geC4o+C4sOC4iOC4tOC5i+C4pwor4LiB4Lij4Liw4LiI4Li04LmL4Lin4Lir4Lil4Li04LinCivguIHguKPguLDguIjguLXguYkKKy3guIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4uOC4gQor4LiB4Lij4Liw4LiI4Li44LiB4LiB4Lij4Liw4LiI4Li04LiBCivguIHguKPguLDguIjguLjguIHguIHguKPguLDguIjguLjguKIKK+C4geC4o+C4sOC4iOC4uOC5i+C4h+C4geC4o+C4sOC4iOC4tOC5i+C4hwor4LiB4Lij4Liw4LiI4Li44LiaCivguIHguKPguLDguIjguLjguYrguJoKK+C4geC4o+C4sOC4iOC4uOC4muC4geC4o+C4sOC4iOC4tOC4mgor4LiB4Lij4Liw4LiI4Li44LmL4Lih4LiB4Lij4Liw4LiI4Li04LmL4LihCivguIHguKPguLDguIjguLjguKIKK+C4geC4o+C4sOC4iOC4uOC4ouC4geC4o+C4sOC4iOC4suC4ogor4LiB4Lij4Liw4LiI4Li54LmJCivguIHguKPguLDguIjguLnguYvguIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4ueC4lAor4LiB4Lij4Liw4LmA4LiI4Lit4Liw4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLIKK+C4geC4o+C4sOC5gOC4iOC5iOC4sgor4LiB4Lij4Liw4LmA4LiI4LmJ4LiyCivguIHguKPguLDguYDguIjguLLguLAKK+C4geC4o+C4sOC5gOC4iOC4tOC4hwor4LiB4Lij4Liw4LmA4LiI4Li04LiU4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLXguYnguKLguIcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4mgor4LiB4Lij4Liw4LmA4LiI4Li14LmK4Lii4Lia4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguIHguKPguLDguYDguIjguLXguKLguKcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4pwor4LiB4Lij4Liw4LmB4LiI4LiwCivguIHguKPguLDguYLguIjguJkKK+C4geC4o+C4sOC5guC4iOC4oQor4LiB4Lij4Liw4LmC4LiI4Lih4LiB4Lij4Liw4LiI4Liy4LihCivguIHguKPguLDguYLguIjguKHguJfguK3guIcKK+C4geC4o+C4sOC5guC4iOC4oeC5hOC4nwor4LiB4Lij4Liw4LmC4LiI4Lih4Lit4LiBCivguIHguKPguLDguInguIcKK+C4geC4o+C4sOC4ieC4reC4gQor4LiB4Lij4Liw4LiJ4Lit4LiB4LiB4Lij4Liw4LmB4LiJ4LiBCivguIHguKPguLDguInguYjguK3guJkKK+C4geC4o+C4sOC4ieC4seC4muC4geC4o+C4sOC5gOC4ieC4hwor4LiB4Lij4Liw4LiJ4Li04LmI4LiHCivguIHguKPguLDguInguLXguIEKK+C4geC4o+C4sOC4ieC4ueC4lAor4LiB4Lij4Liw4LmA4LiJ4LiBCist4LiB4Lij4Liw4LmA4LiJ4LiHCivguIHguKPguLDguYDguInguJQKKy3guIHguKPguLDguYHguInguIEKK+C4geC4o+C4sOC5geC4ieC5iOC4mQor4LiB4Lij4Liw4LmC4LiJ4LiB4LiB4Lij4Liw4LmA4LiJ4LiBCivguIHguKPguLDguYLguInguKEKK+C4geC4o+C4sOC4iuC4hwor4LiB4Lij4Liw4LiK4LiU4LiB4Lij4Liw4LiK4LmJ4Lit4LiiCist4LiB4Lij4Liw4LiK4Lin4LiiCivguIHguKPguLDguIrguK3guIEKK+C4geC4o+C4sOC4iuC4reC4mQor4LiB4Lij4Liw4LiK4Lit4LihCivguIHguKPguLDguIrguK3guKHguJTguK3guIEKK+C4geC4o+C4sOC4iuC5ieC4reC4ogor4LiB4Lij4Liw4LiK4LmJ4Lit4Lii4LiZ4Liy4LiH4Lij4LizCivguIHguKPguLDguIrguLHguIcKK+C4geC4o+C4sOC4iuC4seC4h+C4q+C4meC5ieC4suC5g+C4q+C4jeC5iAor4LiB4Lij4Liw4LiK4Lix4LmJ4LiZCivguIHguKPguLDguIrguLHguJoKK+C4geC4o+C4sOC4iuC4suC4gQor4LiB4Lij4Liw4LiK4LmI4Liy4LiHCivguIHguKPguLDguIrguLLguYDguJTguLTguKEKK+C4geC4o+C4sOC4iuC4suC4ogor4LiB4Lij4Liw4LiK4Li04LiHCivguIHguKPguLDguIrguLTguJQKK+C4geC4o+C4sOC4iuC4uAor4LiB4Lij4Liw4LiK4Li44LiBCivguIHguKPguLDguIrguLjguYjguKHguIHguKPguLDguIrguKfguKIKK+C4geC4o+C4sOC5gOC4iuC4rQor4LiB4Lij4Liw4LmA4LiK4Lit4LiB4LmJ4LiZ4Lij4Lix4LmI4LinCivguIHguKPguLDguYDguIrguLIKK+C4geC4o+C4sOC5gOC4iuC5ieC4sgor4LiB4Lij4Liw4LmA4LiK4LmJ4Liy4Lic4Li14Lih4LiUCivguIHguKPguLDguYDguIrguYnguLLguKrguKfguKPguKPguITguYwKK+C4geC4o+C4sOC5gOC4iuC5ieC4suC4quC4teC4lOC4sgor4LiB4Lij4Liw4LmA4LiK4Li14Lii4LiHCivguIHguKPguLDguYHguIrguIcKK+C4geC4o+C4sOC5geC4iuC4sAor4LiB4Lij4Liw4LmC4LiK4LiBCivguIHguKPguLDguYLguIrguIHguIHguKPguLDguIrguLHguYnguJkKK+C4geC4o+C4sOC5guC4iuC4geC4geC4o+C4sOC4iuC4suC4gQor4LiB4Lij4Liw4LmC4LiK4LiB4LmC4Liu4LiB4Liu4Liy4LiBCivguIHguKPguLDguIvguKfguKIKKy3guIHguKPguLDguIvguKfguKIKKy3guIHguKPguLDguIvguYnguK0KK+C4geC4o+C4sOC4i+C5iOC4reC4h+C4geC4o+C4sOC5geC4i+C5iOC4hwor4LiB4Lij4Liw4LiL4Lix4LiaCivguIHguKPguLDguIvguYjguLLguIcKK+C4geC4o+C4sOC4i+C4suC4mgor4LiB4Lij4Liw4LiL4Li04LiBCivguIHguKPguLDguIvguLTguIHguYYKK+C4geC4o+C4sOC4i+C4tOC4geC4geC4o+C4sOC4i+C4p+C4ogor4LiB4Lij4Liw4LiL4Li04LiB4LiB4Lij4Liw4LiL4Li14LmJCivguIHguKPguLDguIvguLTguJoKK+C4geC4o+C4sOC4i+C4tOC4muC4geC4o+C4sOC4i+C4suC4mgorLeC4geC4o+C4sOC4i+C4teC5iQor4LiB4Lij4Liw4LiL4Li14LmJ4LiB4Lij4Liw4LiL4LmJ4LitCivguIHguKPguLDguIvguLjguIcKK+C4geC4o+C4sOC4i+C4uOC4muC4geC4o+C4sOC4i+C4tOC4mgor4LiB4Lij4Liw4LiL4Li44LmJ4LihCivguIHguKPguLDguIvguLnguYgKKy3guIHguKPguLDguYDguIsKK+C4geC4o+C4sOC5gOC4i+C5h+C4mQor4LiB4Lij4Liw4LmA4LiL4LitCivguIHguKPguLDguYDguIvguK3guLDguIHguKPguLDguYDguIvguK0KK+C4geC4o+C4sOC5gOC4i+C4reC4sOC4geC4o+C4sOC5gOC4i+C4tOC4hwor4LiB4Lij4Liw4LmA4LiL4LmJ4LiyCivguIHguKPguLDguYDguIvguYnguLLguIHguKPguLDguIvguLXguYkKK+C4geC4o+C4sOC5gOC4i+C4tOC4hworLeC4geC4o+C4sOC5gOC4i+C4tOC4hwor4LiB4Lij4Liw4LmB4LiLCivguIHguKPguLDguYHguIvguLAKK+C4geC4o+C4sOC5guC4i+C4geC4o+C4sOC5gOC4iwor4LiB4Lij4Liw4LiO4Li1CivguIHguKPguLDguI7guLjguKHguJ7guLUKK+C4geC4o+C4sOC4lOC4gQor4LiB4Lij4Liw4LiU4LiB4LiB4Lij4Liw4LiU4LiZ4LmC4LiU4LmICivguIHguKPguLDguJTguYnguIcKKy3guIHguKPguLDguJTguJnguYLguJTguYgKK+C4geC4o+C4sOC4lOC4p+C4hwor4LiB4Lij4Liw4LiU4Lin4LiZCivguIHguKPguLDguJTguYnguKfguKHguIHguKPguLDguYDguJTguLXguYnguKLguKEKK+C4geC4o+C4sOC4lOC4rQor4LiB4Lij4Liw4LiU4Lit4LiHCivguIHguKPguLDguJTguK3guIfguKvguLLguKIKK+C4geC4o+C4sOC4lOC4reC4mQor4LiB4Lij4Liw4LiU4Lit4LihCivguIHguKPguLDguJTguLHguIHguIHguKPguLDguYDguJTguLXguYnguKIKK+C4geC4o+C4sOC4lOC4seC4h+C4h+C4seC4pwor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4LiyCivguIHguKPguLDguJTguLHguIfguIfguLLguIjguLXguJkKK+C4geC4o+C4sOC4lOC4seC4h+C4h+C4suC5gOC4luC4sgor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4Liy4Lil4LiZ4LmE4LifCivguIHguKPguLDguJTguLLguIEKK+C4geC4o+C4sOC4lOC4suC4geC4geC4o+C4sOC5gOC4lOC4t+C5iOC4reC4hwor4LiB4Lij4Liw4LiU4LmJ4Liy4LiHCivguIHguKPguLDguJTguYnguLLguIfguIHguKPguLDguYDguJTguLfguYjguK3guIcKK+C4geC4o+C4sOC4lOC4suC4h+C4peC4suC4hwor4LiB4Lij4Liw4LiU4Liy4LiUCivguIHguKPguLDguJTguLLguJTguILguLLguKcKK+C4geC4o+C4sOC4lOC4suC4lOC4lOC4swor4LiB4Lij4Liw4LiU4Liy4LiU4LmB4LiU4LiHCivguIHguKPguLDguJTguLLguJkKK+C4geC4o+C4sOC4lOC4suC4meC4iuC4meC4p+C4mQor4LiB4Lij4Liw4LiU4Liy4LiZ4LiK4Lix4LiiCivguIHguKPguLDguJTguLLguJnguJTguLMKK+C4geC4o+C4sOC4lOC4suC4meC5guC4leC5ieC4hOC4peC4t+C5iOC4mQor4LiB4Lij4Liw4LiU4Liy4LiZ4LiW4Li14LiaCivguIHguKPguLDguJTguLLguJnguJ7guJkKK+C4geC4o+C4sOC4lOC4suC4meC4nuC4tOC4hwor4LiB4Lij4Liw4LiU4Liy4LiZ4LmE4LifCivguIHguKPguLDguJTguLLguJnguKXguLfguYjguJkKK+C4geC4o+C4sOC4lOC4suC4meC5gOC4peC4teC4ouC4mgor4LiB4Lij4Liw4LiU4Liy4LiZ4Lir4LiBCivguIHguKPguLDguJTguLLguKkKK+C4geC4o+C4sOC4lOC4suC4qeC5geC4geC5ieC4pwor4LiB4Lij4Liw4LiU4Liy4Lip4LiC4LmI4Lit4LiiCivguIHguKPguLDguJTguLLguKnguYTguIIKK+C4geC4o+C4sOC4lOC4suC4qeC5gOC4h+C4tOC4meC4geC4o+C4sOC4lOC4suC4qeC4l+C4reC4hwor4LiB4Lij4Liw4LiU4Liy4Lip4LiL4Lix4LiaCivguIHguKPguLDguJTguLLguKnguJfguKPguLLguKIKK+C4geC4o+C4sOC4lOC4suC4qeC5gOC4l+C4qAor4LiB4Lij4Liw4LiU4Liy4Lip4Lif4Liy4LiHCivguIHguKPguLDguJTguLLguKnguKfguYjguLLguKcKK+C4geC4o+C4sOC4lOC4suC4qeC4quC4sgor4LiB4Lij4Liw4LiU4Liz4LiB4Lij4Liw4LiU4LmI4Liy4LiHCivguIHguKPguLDguJTguLTguIEKK+C4geC4o+C4sOC4lOC4tOC4geC4geC4o+C4sOC5gOC4lOC4teC5ieC4ogor4LiB4Lij4Liw4LiU4Li04LmI4LiHCist4LiB4Lij4Liw4LiU4Li04LmJ4LiHCivguIHguKPguLDguJTguLTguYjguIfguJfguK3guIcKK+C4geC4o+C4sOC4lOC4tOC4mgor4LiB4Lij4Liw4LiU4Li04Lia4LmGCivguIHguKPguLDguJTguLXguYgKK+C4geC4o+C4sOC4lOC4teC5ieC4geC4o+C4sOC5gOC4lOC4teC4ouC4oQor4LiB4Lij4Liw4LiU4Li14LmI4LmE4LiU4LmJ4LiZ4LmJ4LizCivguIHguKPguLDguJTguLbguIcKK+C4geC4o+C4sOC4lOC4tuC4h+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiB4Lij4Liw4LiU4Li24LiH4Lie4Lij4Liw4Lij4Liy4LihCivguIHguKPguLDguJTguLfguJoKK+C4geC4o+C4sOC4lOC4uAor4LiB4Lij4Liw4LiU4Li44LiB4LiB4Lij4Liw4LiU4Li04LiBCivguIHguKPguLDguJTguLjguYnguIfguIHguKPguLDguJTguLTguYnguIcKK+C4geC4o+C4sOC4lOC4uOC4muC5hgor4LiB4Lij4Liw4LiU4Li44Lia4LiB4Lij4Liw4LiU4Li04LiaCivguIHguKPguLDguJTguLjguKEKK+C4geC4o+C4sOC4lOC4ueC4gQor4LiB4Lij4Liw4LiU4Li54LiB4LiB4LiaCivguIHguKPguLDguJTguLnguIHguYTguIHguYjguJTguLMKK+C4geC4o+C4sOC4lOC4ueC4geC4guC4seC4lOC4oeC4seC4mQor4LiB4Lij4Liw4LiU4Li54LiB4LmA4LiC4Li14Lii4LiUCivguIHguKPguLDguJTguLnguIHguYHguILguYfguIcKK+C4geC4o+C4sOC4lOC4ueC4geC4hOC5iOC4suC4hwor4LiB4Lij4Liw4LiU4Li54LiB4LiH4Li5CivguIHguKPguLDguJTguLnguIHguJTguLMKK+C4geC4o+C4sOC4lOC4ueC4geC4o+C5ieC4reC4h+C5hOC4lOC5iQor4LiB4Lij4Liw4LiU4Li54LiB4Liq4Lix4LiZ4Lir4Lil4Lix4LiHCivguIHguKPguLDguJTguLnguIHguK3guLbguYjguIcKKy3guIHguKPguLDguYDguJTguIEKK+C4geC4o+C4sOC5gOC4lOC5ieC4hwor4LiB4Lij4Liw4LmA4LiU4LmH4LiZCivguIHguKPguLDguYDguJTguYnguLIKK+C4geC4o+C4sOC5gOC4lOC5ieC4suC4lOC4tOC4mQor4LiB4Lij4Liw4LmA4LiU4LmJ4Liy4Lil4LihCivguIHguKPguLDguYDguJTguLLguLAKK+C4geC4o+C4sOC5gOC4lOC4suC4sOC4m+C4suC4gQor4LiB4Lij4Liw4LmA4LiU4Li04LiUCist4LiB4Lij4Liw4LmA4LiU4Li14LmJ4LiiCivguIHguKPguLDguYDguJTguLXguKLguJQKKy3guIHguKPguLDguYDguJTguLXguKLguKEKKy3guIHguKPguLDguYDguJTguLXguYnguKLguKEKK+C4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4LiB4Lij4Liw4LmA4LiU4Li34LmI4Lit4LiHCivguIHguKPguLDguYHguJTguYfguIHguYYKK+C4geC4o+C4sOC5geC4lOC5ieC4hwor4LiB4Lij4Liw4LmB4LiU4LmJ4LmB4Lij4LmICivguIHguKPguLDguYHguJTguYjguKfguYYKK+C4geC4o+C4sOC5geC4lOC4sAor4LiB4Lij4Liw4LmB4LiU4Liw4LiB4Lij4Liw4LmB4LiU4LmLCivguIHguKPguLDguYLguJTguIEKK+C4geC4o+C4sOC5guC4lOC4geC4geC4o+C4sOC5gOC4lOC4gQor4LiB4Lij4Liw4LmC4LiU4LiHCivguIHguKPguLDguYLguJTguIfguITguLLguIcKK+C4geC4o+C4sOC5guC4lOC4h+C5geC4lOC4hwor4LiB4Lij4Liw4LmC4LiU4LiUCivguIHguKPguLDguYLguJTguJTguKPguYjguKEKK+C4geC4o+C4sOC5guC4lOC4mQor4LiB4Lij4Liw4LmC4LiU4LiZ4LiU4Li04LiZCivguIHguKPguLDguYPguJQKK+C4geC4o+C4sOC5hOC4lAor4LiB4Lij4Liw4LmE4LiU4LmB4LiB4LmJ4LinCivguIHguKPguLDguYTguJTguKXguLTguIcKK+C4geC4o+C4sOC4leC4o+C4geC4geC4o+C4sOC4leC4o+C4swor4LiB4Lij4Liw4LiV4Lij4LmJ4LitCivguIHguKPguLDguJXguKPguLHguJoKK+C4geC4o+C4sOC4leC4o+C4suC4gQorLeC4geC4o+C4sOC4leC4o+C4swor4LiB4Lij4Liw4LiV4Lij4Li44LiUCivguIHguKPguLDguJXguKPguLjguKEKK+C4geC4o+C4sOC4leC5ieC4p+C4oeC4geC4o+C4sOC5gOC4leC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LiV4LmJ4LitCivguIHguKPguLDguJXguYjguK3guIfguIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC4leC5iuC4reC4mgor4LiB4Lij4Liw4LiV4LmJ4Lit4Lii4LiV4Li14Lin4Li04LiUCivguIHguKPguLDguJXguLHguIEKK+C4geC4o+C4sOC4leC4seC5ieC4pworLeC4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguIHguKPguLDguJXguYjguLLguKLguILguLnguJQKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4iOC4seC4meC4l+C4o+C5jAor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiI4Liy4LihCivguIHguKPguLDguJXguYjguLLguKLguIjguLXguJkKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4iuC4oeC4iOC4seC4meC4l+C4o+C5jAor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiV4LmJ4Lit4LiH4LmB4Lij4LmJ4LinCivguIHguKPguLDguJXguYjguLLguKLguJXguLfguYjguJnguJXguLnguKEKK+C4geC4o+C4sOC4leC5iOC4suC4ouC5gOC4leC5ieC4mQor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4Liq4Liy4Lih4LiC4LiyCivguIHguKPguLDguJXguYjguLLguKLguKvguKHguLLguKLguIjguLHguJnguJfguKPguYwKK+C4geC4o+C4sOC4leC4tOC4gQorLeC4geC4o+C4sOC4leC4tOC4gQorLeC4geC4o+C4sOC4leC4tOC5ieC4hwor4LiB4Lij4Liw4LiV4Li04LmK4LiUCivguIHguKPguLDguJXguLTguYrguJTguILguLXguYnguKvguKHguLkKK+C4geC4o+C4sOC4leC4tOC4mgor4LiB4Lij4Liw4LiV4Li34Lit4Lij4Li34Lit4Lij4LmJ4LiZCivguIHguKPguLDguJXguLjguIEKK+C4geC4o+C4sOC4leC4uOC4geC4geC4o+C4sOC4leC4tOC4gQor4LiB4Lij4Liw4LiV4Li44LmJ4LiH4LiB4Lij4Liw4LiV4Li04LmJ4LiHCivguIHguKPguLDguJXguLjguYjguJkKK+C4geC4o+C4sOC4leC4uOC5ieC4mQor4LiB4Lij4Liw4LiV4Li54LiaCivguIHguKPguLDguYDguJXguIcKK+C4geC4o+C4sOC5gOC4leC5h+C4mQor4LiB4Lij4Liw4LmA4LiV4Lit4LiwCivguIHguKPguLDguYDguJXguLLguLAKK+C4geC4o+C4sOC5gOC4leC4suC4sOC4geC4o+C4sOC5geC4leC4sAorLeC4geC4o+C4sOC5gOC4leC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LmA4LiV4Li34LmJ4Lit4LiHCivguIHguKPguLDguYHguJUKKy3guIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC5geC4leC5geC4leC5ieC5geC4p+C5ieC4lAor4LiB4Lij4Liw4LmB4LiV4LmE4LiV4LmI4LmE4Lih4LmJCivguIHguKPguLDguYHguJXguKfguLHguJoKKy3guIHguKPguLDguYHguJXguLAKK+C4geC4o+C4sOC5guC4leC4geC4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LmC4LiV4LiZCivguIHguKPguLDguYTguJXguKMKK+C4geC4o+C4sOC4luC4lAor4LiB4Lij4Liw4LiW4Lit4LiaCivguIHguKPguLDguJbguLHguYjguKcKK+C4geC4o+C4sOC4luC4suC4hwor4LiB4Lij4Liw4LiW4Li04LiBCivguIHguKPguLDguJbguLTguJkKK+C4geC4o+C4sOC4luC4tOC4meC4q+C4reC4oQor4LiB4Lij4Liw4LiW4Li24LiBCivguIHguKPguLDguYDguJbguLTguJoKK+C4geC4o+C4sOC5guC4luC4mQor4LiB4Lij4Liw4LmC4LiW4LiZ4LiX4LmJ4Lit4LiH4Lie4Lij4Liw4LmC4Lij4LiHCivguIHguKPguLDguYLguJbguJnguJvguLLguIHguYHguJXguKMKK+C4geC4o+C4sOC5guC4luC4meC4pOC5heC4qeC4tQor4LiB4Lij4Liw4LiX4LiBCivguIHguKPguLDguJfguIcKK+C4geC4o+C4sOC4l+C4h+C5geC4luC4peC4hwor4LiB4Lij4Liw4LiX4LiH4LiZ4LmJ4Lit4LiiCivguIHguKPguLDguJfguIfguJvguYjguLIKK+C4geC4o+C4sOC4l+C4h+C5gOC4nuC4iuC4owor4LiB4Lij4Liw4LiX4LiH4Lil4Lit4LiiCivguIHguKPguLDguJfguIfguKXguLLguKIKK+C4geC4o+C4sOC4l+C4h+C5gOC4q+C4tOC4mQor4LiB4Lij4Liw4LiX4LiUCivguIHguKPguLDguJfguJTguIHguKPguLDguJfguLHguJkKK+C4geC4o+C4sOC4l+C4mgor4LiB4Lij4Liw4LiX4Lia4LiB4Lij4Liw4LiX4Lix4LmI4LiHCivguIHguKPguLDguJfguJrguIHguKPguLDguYDguJfguLXguKLguJoKK+C4geC4o+C4sOC4l+C4muC4geC4o+C4sOC5gOC4l+C4t+C4reC4mQor4LiB4Lij4Liw4LiX4Lia4LiB4Lij4Liw4LmB4LiX4LiBCivguIHguKPguLDguJfguKPguKfguIcKK+C4geC4o+C4sOC4l+C4p+C4ogor4LiB4Lij4Liw4LiX4Lit4LiBCivguIHguKPguLDguJfguYnguK3guJkKK+C4geC4o+C4sOC4l+C5iOC4reC4meC4geC4o+C4sOC5geC4l+C5iOC4mQor4LiB4Lij4Liw4LiX4LmI4Lit4LihCivguIHguKPguLDguJfguYnguK3guKHguIHguKPguLDguYHguJfguYnguKEKK+C4geC4o+C4sOC4l+C5iOC4reC4oeC4guC4teC5ieC4q+C4oeC4uQor4LiB4Lij4Liw4LiX4LmI4Lit4Lih4LmA4Lil4Li34Lit4LiUCivguIHguKPguLDguJfguLAKK+C4geC4o+C4sOC4l+C4sOC5g+C4muC4muC4seC4pwor4LiB4Lij4Liw4LiX4Lix4LmI4LiHCivguIHguKPguLDguJfguLHguYjguIfguJXguLTguJQKKy3guIHguKPguLDguJfguLHguJkKKy3guIHguKPguLDguJfguLHguYnguJkKK+C4geC4o+C4sOC4l+C4sgor4LiB4Lij4Liw4LiX4Liy4LiK4Liy4LiiCivguIHguKPguLDguJfguLLguKIKK+C4geC4o+C4sOC4l+C4suC4ouC5gOC4q+C4tOC4mQor4LiB4Lij4Liw4LiX4Liy4Liq4Li1CivguIHguKPguLDguJfguLLguKvguK3guIcKK+C4geC4o+C4sOC4l+C4swor4LiB4Lij4Liw4LiX4Liz4LiE4Lin4Liy4Lih4Lic4Li04LiUCivguIHguKPguLDguJfguLTguIHguIHguKPguLDguJfguKfguKIKK+C4geC4o+C4sOC4l+C4tOC4hwor4LiB4Lij4Liw4LiX4Li04LiH4LmC4LiX4LiZCivguIHguKPguLDguJfguLbguIcKK+C4geC4o+C4sOC4l+C4t+C4mgor4LiB4Lij4Liw4LiX4Li34Lia4LiY4Lij4LiT4Li1CivguIHguKPguLDguJfguLfguJrguKLguK3guJoKK+C4geC4o+C4sOC4l+C4uAor4LiB4Lij4Liw4LiX4Li44LiHCivguIHguKPguLDguJfguLjguYnguIcKK+C4geC4o+C4sOC4l+C4uOC4h+C4peC4suC4ogor4LiB4Lij4Liw4LiX4Li44LmJ4LiH4LmA4Liq4LmJ4LiyCivguIHguKPguLDguJfguLjguIfguKvguKHguLLguJrguYnguLIKK+C4geC4o+C4sOC4l+C4uOC4h+C5gOC4q+C4pwor4LiB4Lij4Liw4LiX4Li44LmI4LihCivguIHguKPguLDguJfguLjguYjguKHguILguLXguYnguKvguKHguLkKK+C4geC4o+C4sOC4l+C4uOC5iOC4oeC4meC4sgor4LiB4Lij4Liw4LiX4Li44LmI4Lih4Lir4Lih4Li5CivguIHguKPguLDguJfguLnguYkKK+C4geC4o+C4sOC4l+C4ueC5ieC4luC4suC4oQor4LiB4Lij4Liw4LmA4LiX4LmICivguIHguKPguLDguYDguJfguYjguYDguKPguYgKKy3guIHguKPguLDguYDguJfguLXguKLguJoKK+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiX4Li14Lii4Lih4Lir4Lit4LihCivguIHguKPguLDguYDguJfguLfguK3guJkKK+C4geC4o+C4sOC5gOC4l+C4t+C4reC4meC5g+C4iAor4LiB4Lij4Liw4LmA4LiX4Li34LmJ4Lit4LihCivguIHguKPguLDguYHguJfguIEKK+C4geC4o+C4sOC5geC4l+C4geC4geC4o+C4sOC4l+C4seC5ieC4mQor4LiB4Lij4Liw4LmB4LiX4LmI4LiZCist4LiB4Lij4Liw4LmB4LiX4LmJ4LihCivguIHguKPguLDguYHguJfguLAKK+C4geC4o+C4sOC5hOC4l+C4iuC4suC4ogor4LiB4Lij4Liw4LiZ4LiBCivguIHguKPguLDguJnguYjguK3guIcKK+C4geC4o+C4sOC4meC4seC5ieC4mQor4LiB4Lij4Liw4LiZ4Li14LmJCivguIHguKPguLDguYLguJnguYnguJkKK+C4geC4o+C4sOC5hOC4mQor4LiB4Lij4Liw4Lia4LiBCivguIHguKPguLDguJrguIHguITguLLguKIKK+C4geC4o+C4sOC4muC4lgor4LiB4Lij4Liw4Lia4LihCivguIHguKPguLDguJrguKfguJkKK+C4geC4o+C4sOC4muC4p+C4meC4geC4o+C4sOC4muC4tOC4lAor4LiB4Lij4Liw4Lia4Lin4LiZ4LiB4Liy4LijCivguIHguKPguLDguJrguKfguJnguIHguLLguKPguKLguLjguJXguLTguJjguKPguKPguKEKK+C4geC4o+C4sOC4muC4p+C4meC4hOC4p+C4suC4oQor4LiB4Lij4Liw4Lia4Lin4LiZ4LiI4Li14LiZCivguIHguKPguLDguJrguKfguKIKK+C4geC4o+C4sOC4muC4p+C4owor4LiB4Lij4Liw4Lia4Lit4LiBCivguIHguKPguLDguJrguK3guIHguYDguJ7guKXguLIKK+C4geC4o+C4sOC4muC4reC4geC4quC4ueC4mgor4LiB4Lij4Liw4Lia4Lit4LiB4LmA4Liq4Li14Lii4LiHCivguIHguKPguLDguJrguK3guIHguKvguLHguKcKK+C4geC4o+C4sOC4muC4reC4hwor4LiB4Lij4Liw4Lia4Lit4LiH4LiB4Lil4Li24LiHCivguIHguKPguLDguJrguK3guIfguIHguLHguJkKK+C4geC4o+C4sOC4muC4reC4h+C5gOC4nuC4iuC4owor4LiB4Lij4Liw4Lia4Lit4LiH4Lij4Liy4Lir4Li5CivguIHguKPguLDguJrguLAKK+C4geC4o+C4sOC4muC4seC4lAor4LiB4Lij4Liw4Lia4Lix4LmJ4Lin4LiB4Lij4Liw4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguJrguYjguLIKK+C4geC4o+C4sOC4muC5ieC4sgor4LiB4Lij4Liw4Lia4Liy4LiBCivguIHguKPguLDguJrguLLguKIKK+C4geC4o+C4sOC4muC4suC4pQor4LiB4Lij4Liw4Lia4Li0CivguIHguKPguLDguJrguLTguYnguIcKK+C4geC4o+C4sOC4muC4tOC4lAor4LiB4Lij4Liw4Lia4Li04LiU4LiB4Lij4Liw4Lia4Lin4LiZCivguIHguKPguLDguJrguLTguKUKK+C4geC4o+C4sOC4muC4teC5iAor4LiB4Lij4Liw4Lia4Li14LmI4LiB4Lij4Liw4Lia4Lit4LiHCivguIHguKPguLDguJrguLXguYjguJjguLjguIoKK+C4geC4o+C4sOC4muC4teC5iOC4peC4teC4peC4sgor4LiB4Lij4Liw4Lia4Li34LitCivguIHguKPguLDguJrguLfguK3guYDguIjguYfguJTguJXguLHguKcKK+C4geC4o+C4sOC4muC4uOC4hwor4LiB4Lij4Liw4Lia4Li44LmI4Lih4LiB4Lij4Liw4Lia4LmI4Liy4LihCivguIHguKPguLDguJrguLnguYnguIHguKPguLDguJrguLXguYkKK+C4geC4o+C4sOC4muC4ueC4mQor4LiB4Lij4Liw4Lia4Li54LiZ4LmA4Lil4Li34Lit4LiUCivguIHguKPguLDguJrguLnguKMKK+C4geC4o+C4sOC5gOC4muC4hwor4LiB4Lij4Liw4LmA4Lia4LiNCivguIHguKPguLDguYDguJrguYfguJTguIHguKPguLDguJrguKfguJkKK+C4geC4o+C4sOC5gOC4muC4mQor4LiB4Lij4Liw4LmA4Lia4LiZ4LmA4Lir4LiZ4LmH4LiaCivguIHguKPguLDguYDguJrguLIKK+C4geC4o+C4sOC5gOC4muC4tOC4gQorLeC4geC4o+C4sOC5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4LmA4Lia4Li14Lii4LiUCivguIHguKPguLDguYDguJrguLXguKLguJTguIHguKPguLDguJXguLHguIEKK+C4geC4o+C4sOC5gOC4muC4teC4ouC4lOC4geC4o+C4sOC5gOC4quC4teC4ouC4owor4LiB4Lij4Liw4LmA4Lia4Li14Lii4LiZCivguIHguKPguLDguYDguJrguLfguYnguK3guIcKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C5gOC4geC4peC5h+C4lOC5gOC4leC5iOC4sgor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiH4LiW4LmJ4Lin4LiiCivguIHguKPguLDguYDguJrguLfguYnguK3guIfguJbguYnguKfguKLguIHguLDguKXguLLguYHguJXguIEKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C4m+C4o+C4uAor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiH4Lij4Li5CivguIHguKPguLDguYDguJrguLfguYnguK3guIfguKvguJnguYnguLLguKfguLHguKcKK+C4geC4o+C4sOC5geC4muC5iAor4LiB4Lij4Liw4LmB4Lia4LiBCivguIHguKPguLDguYHguJrguIHguIfguLIKK+C4geC4o+C4sOC5geC4muC4sAor4LiB4Lij4Liw4LmB4Lia4Liw4Lih4Li34LitCivguIHguKPguLDguYLguJrguKEKK+C4geC4o+C4sOC4m+C4oeC4geC4o+C4sOC4m+C4swor4LiB4Lij4Liw4Lib4Lih4LiB4Lij4Liw4LmA4Lib4LiyCivguIHguKPguLDguJvguKPguK3guIEKK+C4geC4o+C4sOC4m+C4o+C4reC4geC4p+C5iOC4suC4pwor4LiB4Lij4Liw4Lib4Lij4Li14LmJ4LiB4Lij4Liw4LmA4Lib4Lij4LmI4LiyCivguIHguKPguLDguJvguK3guIEKK+C4geC4o+C4sOC4m+C5ieC4reC4geC4o+C4sOC5geC4m+C5iQor4LiB4Lij4Liw4Lib4LmI4Lit4LiHCivguIHguKPguLDguJvguYvguK3guIcKK+C4geC4o+C4sOC4m+C4reC4lOC4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4Lib4LmL4Lit4Lir4Lil4LitCivguIHguKPguLDguJvguLHguYnguKfguIHguKPguLDguYDguJvguLXguYnguKIKKy3guIHguKPguLDguJvguLMKK+C4geC4o+C4sOC4m+C5iOC4sworLeC4geC4o+C4sOC4m+C4tOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LiBCivguIHguKPguLDguJvguLjguIHguKvguKXguLjguIEKK+C4geC4o+C4sOC4m+C4uOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LmI4Lih4LiB4Lij4Liw4Lib4LmI4LizCivguIHguKPguLDguJvguLjguYjguKHguIHguKPguLDguJvguLTguYjguKEKKy3guIHguKPguLDguYDguJvguLIKK+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4LiB4Lij4Liw4LmA4Lib4LmL4Liy4Lir4LiZ4Lix4LiBCivguIHguKPguLDguYDguJvguLLguLAKK+C4geC4o+C4sOC5gOC4m+C4suC4sOC5gOC4q+C4peC4suC4sAorLeC4geC4o+C4sOC5gOC4m+C4teC5ieC4ogorLeC4geC4o+C4sOC5geC4m+C5iQorLeC4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4LmC4Lib4LiBCivguIHguKPguLDguYLguJvguKPguIcKK+C4geC4o+C4sOC5guC4m+C4o+C4h+C4l+C4reC4hwor4LiB4Lij4Liw4Lic4LihCist4LiB4Lij4Liw4Lic4Lil4Liy4LihCivguIHguKPguLDguJzguKXguLXguIHguKPguLDguJzguKXguLLguKEKK+C4geC4o+C4sOC4nOC4suC4mQor4LiB4Lij4Liw4Lic4Li14LiBCivguIHguKPguLDguJzguLXguIHguKPguLTguYnguJkKK+C4geC4o+C4sOC4nuC4o+C4p+C4mQor4LiB4Lij4Liw4Lie4Lij4Li04LmJ4LihCivguIHguKPguLDguJ7guK3guIEKK+C4geC4o+C4sOC4nuC4reC4geC4p+C4seC4pwor4LiB4Lij4Liw4Lie4Lit4LiHCivguIHguKPguLDguJ7guYnguK3guKEKK+C4geC4o+C4sOC4nuC4seC4gQor4LiB4Lij4Liw4Lie4Lix4LiHCivguIHguKPguLDguJ7guLHguIfguYDguKvguLTguKMKK+C4geC4o+C4sOC4nuC4seC4h+C5guC4q+C4oQor4LiB4Lij4Liw4Lie4Lix4LiUCivguIHguKPguLDguJ7guLHguJTguYHguKHguYjguKHguYjguLLguKIKK+C4geC4o+C4sOC4nuC4seC4leC4owor4LiB4Lij4Liw4Lie4Lix4LiZCivguIHguKPguLDguJ7guLHguYjguJkKK+C4geC4o+C4sOC4nuC4sgor4LiB4Lij4Liw4Lie4Liy4LiBCivguIHguKPguLDguJ7guLXguYkKK+C4geC4o+C4sOC4nuC4teC5ieC5gOC4guC4suC4hOC4p+C4suC4ogor4LiB4Lij4Liw4Lie4Li34LitCivguIHguKPguLDguJ7guLfguK3guILguYjguLLguKcKK+C4geC4o+C4sOC4nuC4t+C4reC4m+C4teC4gQor4LiB4Lij4Liw4Lie4Li44LmJ4LiHCivguIHguKPguLDguJ7guLjguYjguKEKK+C4geC4o+C4sOC4nuC4uOC5iOC4oeC4oeC4t+C4rQor4LiB4Lij4Liw4LmA4Lie4Lil4Li04LioCivguIHguKPguLDguYDguJ7guLLguLAKK+C4geC4o+C4sOC5gOC4nuC4suC4sOC4m+C4peC4sgor4LiB4Lij4Liw4LmA4Lie4Li04LiHCivguIHguKPguLDguYDguJ7guLfguYjguK3guKEKK+C4geC4o+C4sOC5geC4nuC4hwor4LiB4Lij4Liw4LmB4Lie4LmJ4LiHCivguIHguKPguLDguJ/guLHguJTguIHguKPguLDguYDguJ/guLXguKLguJQKKy3guIHguKPguLDguJ/guLLguKIKK+C4geC4o+C4sOC4n+C4ueC4oeC4geC4o+C4sOC4n+C4suC4ogorLeC4geC4o+C4sOC5gOC4n+C4teC4ouC4lAor4LiB4Lij4Liw4Lih4LilCivguIHguKPguLDguKHguK3guJoKK+C4geC4o+C4sOC4oeC4reC4oeC4geC4o+C4sOC5geC4oeC4oQor4LiB4Lij4Liw4Lih4Lix4LiHCivguIHguKPguLDguKHguLHguJkKK+C4geC4o+C4sOC4oeC4tOC4lOC4geC4o+C4sOC5gOC4oeC4teC5ieC4ouC4mQor4LiB4Lij4Liw4Lih4Li24LiZCivguIHguKPguLDguKHguLjguJcKK+C4geC4o+C4sOC5gOC4oeC4suC4sAorLeC4geC4o+C4sOC5gOC4oeC4teC5ieC4ouC4mQorLeC4geC4o+C4sOC5geC4oeC4oQor4LiB4Lij4Liw4Lii4LmI4Lit4LiHCist4LiB4Lij4Liw4Lii4LmI4Lit4LiHCivguIHguKPguLDguKLguYjguK3guIfguIHguKPguLDguYHguKLguYjguIcKK+C4geC4o+C4sOC4ouC5iOC4reC4mQor4LiB4Lij4Liw4Lii4LmI4Lit4LihCivguIHguKPguLDguKLguLIKK+C4geC4o+C4sOC4ouC4suC4hOC4iuC4p+C4suC4hwor4LiB4Lij4Liw4Lii4Liy4LiHCivguIHguKPguLDguKLguLLguIjguIEKKy3guIHguKPguLDguKLguLLguJQKK+C4geC4o+C4sOC4ouC4suC4lOC4reC4gQor4LiB4Lij4Liw4Lii4Liy4LiU4Lit4LiB4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguKLguLLguJfguLLguJkKK+C4geC4o+C4sOC4ouC4suC4l+C4tOC4nuC4ouC5jAor4LiB4Lij4Liw4Lii4Liy4Lia4Lin4LiKCivguIHguKPguLDguKLguLLguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC4ouC4suC4o+C4h+C4hOC5jAor4LiB4Lij4Liw4Lii4Liy4LmA4Lil4LiiCivguIHguKPguLDguKLguLLguKrguJnguLLguJkKK+C4geC4o+C4sOC4ouC4suC4quC4seC4h+C5gOC4p+C4ogor4LiB4Lij4Liw4Lii4Liy4Liq4Lix4LiH4LmB4Lin4LiHCivguIHguKPguLDguKLguLLguKrguLLguKPguJcKK+C4geC4o+C4sOC4ouC4suC5gOC4quC4p+C4ogor4LiB4Lij4Liw4Lii4Liy4Lir4LiH4Lix4LiZCivguIHguKPguLDguKLguLLguKvguLLguKMKK+C4geC4o+C4sOC4ouC4tOC4gQor4LiB4Lij4Liw4Lii4Li04LmJ4Lih4LiB4Lij4Liw4Lii4LmI4Lit4LiHCivguIHguKPguLDguKLguLbguIHguIHguKPguLDguKLguLfguK0KK+C4geC4o+C4sOC4ouC4t+C4lOC4geC4o+C4sOC4ouC4suC4lAor4LiB4Lij4Liw4LmA4Lii4LmJ4Lit4LiB4Lij4Liw4LmB4Lir4Lii4LmI4LiHCist4LiB4Lij4Liw4LmB4Lii4LmI4LiHCivguIHguKPguLDguKPguK3guIEKK+C4geC4o+C4sOC4o+C4reC4geC4meC5ieC4s+C4guC5ieC4suC4pwor4LiB4Lij4Liw4LmA4Lij4Li14Lii4LiZCivguIHguKPguLDguYLguKPguIHguJnguYnguLPguILguYnguLLguKcKK+C4geC4o+C4sOC5guC4o+C4geC5g+C4q+C4jeC5iAor4LiB4Lij4Liw4LmE4LijCivguIHguKPguLDguKXguJQKK+C4geC4o+C4sOC4peC4mgor4LiB4Lij4Liw4Lil4Lit4LiBCivguIHguKPguLDguKXguK3guKEKK+C4geC4o+C4sOC4peC4sOC4q+C4peC5iOC4swor4LiB4Lij4Liw4Lil4Lix4LiUCivguIHguKPguLDguKXguLHguJoKK+C4geC4o+C4sOC4peC4seC4muC4geC4o+C4sOC5gOC4peC4t+C4reC4gQor4LiB4Lij4Liw4Lil4Lix4Lih4Lie4LijCivguIHguKPguLDguKXguLIKK+C4geC4o+C4sOC4peC4suC4geC4suC4owor4LiB4Lij4Liw4Lil4Liy4Lie4Li04LiZCivguIHguKPguLDguKXguLLguKLguIHguKPguLDguKXguK3guIEKK+C4geC4o+C4sOC4peC4suC4qOC4o+C4tQor4LiB4Lij4Liw4Lil4LizCivguIHguKPguLDguKXguLPguJ7guKMKK+C4geC4o+C4sOC4peC4s+C4nuC4seC4gQor4LiB4Lij4Liw4Lil4Liz4Lie4Li44LiBCivguIHguKPguLDguKXguLTguIcKK+C4geC4o+C4sOC4peC4tQor4LiB4Lij4Liw4Lil4Li24LiHCivguIHguKPguLDguKXguLjguKHguJ7guLLguIcKK+C4geC4o+C4sOC4peC4uOC4oeC4nuC4uOC4gQor4LiB4Lij4Liw4Lil4Li44Lih4Lie4Li5CivguIHguKPguLDguKXguLnguJkKK+C4geC4o+C4sOC4peC4ueC5iOC4meC5jAor4LiB4Lij4Liw4LmA4Lil4LmH4LiZCivguIHguKPguLDguYDguKXguLXguKLguJQKK+C4geC4o+C4sOC5gOC4peC4t+C4reC4gQor4LiB4Lij4Liw4LmC4Lil4LiHCivguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC4p+C4meC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4Lin4Lix4LiUCivguIHguKPguLDguKfguYjguLIKKy3guIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC4p+C4suC4mQor4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguKfguLLguKLguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC4p+C4tOC4mQor4LiB4Lij4Liw4Lin4Li1CivguIHguKPguLDguKfguLXguIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC4p+C4ueC4lOC4geC4o+C4sOC4p+C4suC4lAor4LiB4Lij4Liw4LmA4Lin4LiZCivguIHguKPguLDguYDguKfguJnguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC5gOC4p+C4ouC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4LmB4Lin4LiZCivguIHguKPguLDguYLguKfguKLguIHguKPguLDguKfguLLguKIKK+C4geC4o+C4sOC4qOC4gQor4LiB4Lij4Liw4Lio4Lix4LiiCivguIHguKPguLDguKnguLHguJXguKPguLTguKLguYwKK+C4geC4o+C4sOC4qeC4seC4leC4o+C4tQor4LiB4Lij4Liw4Lip4Lix4LiiCivguIHguKPguLDguKnguLHguKLguIHguKXguYjguK3guJkKK+C4geC4o+C4sOC4qeC4suC4m+C4k+C5jAor4LiB4Lij4Liw4Lip4Li04LijCivguIHguKPguLDguYDguKnguKEKK+C4geC4o+C4sOC5gOC4qeC4oeC4quC4suC4meC4leC5jAor4LiB4Lij4Liw4LmA4Lip4Li14Lii4LijCivguIHguKPguLDguKrguIcKKy3guIHguKPguLDguKrguJkKK+C4geC4o+C4sOC4quC4mgor4LiB4Lij4Liw4Liq4LihCivguIHguKPguLDguKrguKPguKfguKUKK+C4geC4o+C4sOC4quC4o+C5ieC4reC4ogor4LiB4Lij4Liw4Liq4Lin4LiZCivguIHguKPguLDguKrguKfguKIKK+C4geC4o+C4sOC4quC4reC4mgor4LiB4Lij4Liw4Liq4LiwCivguIHguKPguLDguKrguLHguIcKK+C4geC4o+C4sOC4quC4seC4mQor4LiB4Lij4Liw4Liq4Lix4Lia4LiB4Lij4Liw4Liq4LmI4Liy4LiiCivguIHguKPguLDguKrguLIKK+C4geC4o+C4sOC4quC4suC4meC4leC4tOC5jAor4LiB4Lij4Liw4Liq4Liy4LiaCivguIHguKPguLDguKrguLLguKIKKy3guIHguKPguLDguKrguYjguLLguKIKK+C4geC4o+C4sOC4quC4tOC4meC4mOC4uAor4LiB4Lij4Liw4Liq4Li34LitCivguIHguKPguLDguKrguLfguK3guJTguLnguJQKK+C4geC4o+C4sOC4quC4uOC4h+C4geC4o+C4sOC4quC4tOC4hwor4LiB4Lij4Liw4Liq4Li44LiZCivguIHguKPguLDguKrguLjguJnguJvguLfguJkKK+C4geC4o+C4sOC4quC4uOC4meC4p+C4tOC4luC4tQor4LiB4Lij4Liw4Liq4Li54LiX4LiY4Li04LmMCivguIHguKPguLDguKrguLnguJoKK+C4geC4o+C4sOC5gOC4quC4lAor4LiB4Lij4Liw4LmA4Liq4LmH4LiZ4LiB4Lij4Liw4Liq4Liy4LiiCivguIHguKPguLDguYDguKrguYjguLIKK+C4geC4o+C4sOC5gOC4quC4suC4sOC4geC4o+C4sOC5geC4quC4sAor4LiB4Lij4Liw4LmA4Liq4Li14Lii4LiZCivguIHguKPguLDguYDguKrguLXguKLguKMKK+C4geC4o+C4sOC5gOC4quC4t+C4reC4geC4geC4o+C4sOC4quC4mQor4LiB4Lij4Liw4LmB4LiqCivguIHguKPguLDguYHguKrguIHguLLguKPguYDguIfguLTguJkKK+C4geC4o+C4sOC5geC4quC4hOC4p+C4suC4oQor4LiB4Lij4Liw4LmB4Liq4LiHCivguIHguKPguLDguYHguKrguIjguLTguJUKK+C4geC4o+C4sOC5geC4quC4leC4o+C4hwor4LiB4Lij4Liw4LmB4Liq4LiZ4LmJ4LizCivguIHguKPguLDguYHguKrguJ7guKPguLDguKPguLLguIrguJTguLPguKPguLHguKoKK+C4geC4o+C4sOC5geC4quC4o+C4seC4muC4quC4seC5iOC4hwor4LiB4Lij4Liw4LmB4Liq4Lil4LihCivguIHguKPguLDguYHguKrguKrguKXguLHguJoKK+C4geC4o+C4sOC5geC4quC5gOC4quC4teC4ouC4hwor4LiB4Lij4Liw4LmB4Liq4LiwCivguIHguKPguLDguYLguKrguIcKK+C4geC4o+C4sOC5hOC4qgor4LiB4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguIHguKPguLDguKvguJkKK+C4geC4o+C4sOC4q+C4meC4gQor4LiB4Lij4Liw4Lir4LiZ4LiB4LiB4Li04LiZ4Lij4Li1CivguIHguKPguLDguKvguJnguIHguJnguKTguKHguLTguJUKK+C4geC4o+C4sOC4q+C4meC4geC4meC4suC4o+C4tQor4LiB4Lij4Liw4Lir4LiZ4LmI4Lit4LiHCivguIHguKPguLDguKvguJnguLLguIEKK+C4geC4o+C4sOC4q+C4meC4suC4mgor4LiB4Lij4Liw4Lir4LiZ4Liy4Lia4LiE4Liy4Lia4LmA4LiB4Li14LmI4Lii4LinCivguIHguKPguLDguKvguJnguYjguLMKK+C4geC4o+C4sOC4q+C4oeC4p+C4lAor4LiB4Lij4Liw4Lir4Lih4Lit4LiaCivguIHguKPguLDguKvguKHguYjguK3guKEKK+C4geC4o+C4sOC4q+C4oeC5iOC4reC4oeC4muC4suC4hwor4LiB4Lij4Liw4Lir4Lih4Lix4LmI4LiHCivguIHguKPguLDguKvguKHguYjguLIKKy3guIHguKPguLDguKvguKHguLTguJQKK+C4geC4o+C4sOC4q+C4oeC4tOC4mgor4LiB4Lij4Liw4Lir4Lih4Li44LiU4LiB4Lij4Liw4Lir4Lih4Li04LiUCivguIHguKPguLDguKvguKHguLjguYjguJkKK+C4geC4o+C4sOC4q+C4oeC4uOC4mgor4LiB4Lij4Liw4Lir4Lih4Li44Lia4LiB4Lij4Liw4Lir4Lih4Li04LiaCivguIHguKPguLDguKvguKLguYjguIcKK+C4geC4o+C4sOC4q+C4ouC4lAor4LiB4Lij4Liw4Lir4Lii4LiaCivguIHguKPguLDguKvguKLguYjguK3guJkKK+C4geC4o+C4sOC4q+C4ouC5iOC4reC4oQor4LiB4Lij4Liw4Lir4Lii4LiwCivguIHguKPguLDguKvguKLguLHguIcKK+C4geC4o+C4sOC4q+C4ouC4seC4mgor4LiB4Lij4Liw4Lir4Lii4Li04LmI4LihCivguIHguKPguLDguKvguKPguK3guJQKK+C4geC4o+C4sOC4q+C4o+C4tOC5iOC4hwor4LiB4Lij4Liw4Lir4Lin4LiZCivguIHguKPguLDguKvguKfguLHguJQKK+C4geC4o+C4sOC4q+C4p+C4seC4lOC5gOC4geC4peC5ieC4sgor4LiB4Lij4Liw4Lir4Lin4LmI4LiyCivguIHguKPguLDguKvguK3guIcKK+C4geC4o+C4sOC4q+C4seC4hwor4LiB4Lij4Liw4Lir4Lix4LiUCivguIHguKPguLDguKvguLLguIcKK+C4geC4o+C4sOC4q+C4suC4ogor4LiB4Lij4Liw4Lir4Li24LihCivguIHguKPguLDguKvguLbguYjguKEKK+C4geC4o+C4sOC4q+C4t+C4lOC4geC4o+C4sOC4q+C4reC4mgor4LiB4Lij4Liw4LmA4Lir4LmH4LiZCivguIHguKPguLDguYDguKvguJnguYfguIgKK+C4geC4o+C4sOC5gOC4q+C4meC5h+C4iOC4geC4o+C4sOC5geC4q+C4meC5iAor4LiB4Lij4Liw4LmA4Lir4LiZ4Li14Lii4LiUCivguIHguKPguLDguYDguKvguKHguYfguJTguIHguKPguLDguYDguKvguKHguLXguKLguJQKK+C4geC4o+C4sOC5gOC4q+C4oeC5h+C4lOC4geC4o+C4sOC5geC4q+C4oeC5iAor4LiB4Lij4Liw4LmA4Lir4Lih4LmI4LiZCivguIHguKPguLDguYDguKvguKHguYjguLIKK+C4geC4o+C4sOC5gOC4q+C4peC4teC4ouC4gQor4LiB4Lij4Liw4LmA4Lir4Lin4LmI4LiyCivguIHguKPguLDguYDguKvguYjguK0KK+C4geC4o+C4sOC5gOC4q+C4tOC4oQor4LiB4Lij4Liw4LmA4Lir4Li14LmJ4Lii4LiZ4LiB4Lij4Liw4Lir4Li34Lit4Lij4Li34LitCivguIHguKPguLDguYHguKsKK+C4geC4o+C4sOC5geC4q+C4l+C4reC4hworLeC4geC4o+C4sOC5geC4q+C4mQor4LiB4Lij4Liw4LmB4Lir4LiZ4LmICivguIHguKPguLDguYHguKvguJnguJoKK+C4geC4o+C4sOC5geC4q+C4meC4sAor4LiB4Lij4Liw4LmB4Lir4LiZ4Liw4LiB4Lij4Liw4LmB4Lir4LiZCivguIHguKPguLDguYHguKvguKHguJoKK+C4geC4o+C4sOC5geC4q+C4oeC5iOC4pwor4LiB4Lij4Liw4LmB4Lir4Lii4LmI4LiHCivguIHguKPguLDguYHguKvguKPguYjguKEKK+C4geC4o+C4sOC5geC4q+C4peC5iOC4hwor4LiB4Lij4Liw4LmC4Lir4LmJCivguIHguKPguLDguYLguKvguJnguJQKK+C4geC4o+C4sOC5guC4q+C4oQor4LiB4Lij4Liw4LmC4Lir4LiiCivguIHguKPguLDguYLguKvguKLguYjguIcKKy3guIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4p+C4pQor4LiB4Lij4Liw4Lit4LmJ4Lit4LiB4Lij4Liw4LmB4Lit4LmJCivguIHguKPguLDguK3guK3guJTguIHguKPguLDguYHguK3guJQKK+C4geC4o+C4sOC4reC4reC4mgor4LiB4Lij4Liw4Lit4Lit4LihCivguIHguKPguLDguK3guYnguK3guKHguIHguKPguLDguYHguK3guYnguKEKK+C4geC4o+C4sOC4reC4reC4oeC4meC5ieC4swor4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLHguIHguIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4seC4geC4geC4o+C4sOC5hOC4rQor4LiB4Lij4Liw4Lit4Lix4LmJ4Lin4LmB4LiX4LiH4LiE4Lin4Liy4LiiCivguIHguKPguLDguK3guYnguLIKK+C4geC4o+C4sOC4reC4suC4mQor4LiB4Lij4Liw4Lit4Li04LiUCivguIHguKPguLDguK3guLTguJTguIHguKPguLDguYDguK3guLfguYnguK3guJkKK+C4geC4o+C4sOC4reC4tuC4gQor4LiB4Lij4Liw4Lit4Li24LiB4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLbguJQKK+C4geC4o+C4sOC4reC4t+C4lAor4LiB4Lij4Liw4Lit4Li4CivguIHguKPguLDguK3guLjguIEKK+C4geC4o+C4sOC5gOC4reC4mgor4LiB4Lij4Liw4LmA4Lit4LiyCivguIHguKPguLDguYDguK3guLTguIEKK+C4geC4o+C4sOC5gOC4reC4tOC4mgorLeC4geC4o+C4sOC5geC4reC5iQor4LiB4Lij4Liw4LmB4Lit4LiBCist4LiB4Lij4Liw4LmB4Lit4LiUCivguIHguKPguLDguYHguK3guJoKK+C4geC4o+C4sOC5geC4reC4oQorLeC4geC4o+C4sOC5geC4reC5ieC4oQor4LiB4Lij4Liw4LmE4LitCivguIHguKPguLDguYTguK3guIHguKPguLDguYHguK3guKEKK+C4geC4o+C4seC4gQor4LiB4Lij4Lix4LiB4LiC4Li1CivguIHguKPguLHguIcKK+C4geC4o+C4seC4iuC4geC4suC4ogor4LiB4Lij4Lix4LiT4LiRLQor4LiB4Lij4Lix4LiT4LiR4LmMCivguIHguKPguLHguJPguKLguYwKK+C4geC4o+C4seC4mQor4LiB4Lij4Lix4LiaCivguIHguKPguLHguKEKK+C4geC4o+C4suC4gQor4LiB4Lij4Liy4LiHCivguIHguKPguYjguLLguIcKK+C4geC4o+C4suC4h+C5gOC4geC4o+C4teC4ouC4hwor4LiB4Lij4Liy4LiUCist4LiB4Lij4Liy4LiUCivguIHguKPguLLguJTguYDguIHguKPguLXguYnguKLguKcKK+C4geC4o+C4suC4lOC4p+C4hwor4LiB4Lij4Liy4LiZCivguIHguKPguYnguLLguJkKK+C4geC4o+C4suC4meC4geC4kOC4tOC4mQor4LiB4Lij4Liy4LiaCivguIHguKPguLLguJrguJ7guKPguLAKK+C4geC4o+C4suC4nwor4LiB4Lij4Liy4LihCivguIHguKPguLLguKHguIrguYnguLLguIcKK+C4geC4o+C4suC4oeC4nuC4peC4uQor4LiB4Lij4Liy4LiiCivguIHguKPguYjguLLguKIKK+C4geC4o+C4suC4pQor4LiB4Lij4Liy4LinCivguIHguKPguYnguLLguKcKK+C4geC4o+C4suC4p+C4lOC5iOC4suC4hwor4LiB4Lij4Liy4Lin4Lij4Li54LiUCivguIHguKPguLLguKrguLTguIEKK+C4geC4o+C4swor4LiB4Lij4LmI4LizCivguIHguKPguYjguLPguIHguKPguLjguYjguJkKK+C4geC4o+C4tOC4gQor4LiB4Lij4Li04LmK4LiBCivguIHguKPguLTguIHguIHguKPguLTguKcKK+C4geC4o+C4tOC4geC4geC4o+C4tQor4LiB4Lij4Li04LmI4LiHCivguIHguKPguLTguYrguIcKK+C4geC4o+C4tOC4h+C4geC4o+C4tOC4pwor4LiB4Lij4Li04LmJ4LiH4LiB4Lij4Li04LmJ4LinCivguIHguKPguLTguYjguIfguYDguIHguKPguIcKK+C4geC4o+C4tOC5iOC4h+C5g+C4iAor4LiB4Lij4Li04LiKCivguIHguKPguLTguJPguLUKK+C4geC4o+C4tOC4leC4oi0KK+C4geC4o+C4tOC4mQor4LiB4Lij4Li04LiZ4LiX4Lij4LmMCivguIHguKPguLTguJnguLUKK+C4geC4o+C4tOC4mgor4LiB4Lij4Li04LihCivguIHguKPguLTguYjguKEKK+C4geC4o+C4tOC4ouC4sgor4LiB4Lij4Li04Lii4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguIHguKPguLTguKLguLLguKfguLTguYDguKjguKnguJPguYwKK+C4geC4o+C4tOC4ouC4suC4p+C4tOC5gOC4qOC4qeC4k+C5jOC4p+C4peC4tQor4LiB4Lij4Li04Lii4Liy4Lin4Li04LmA4Lio4Lip4LiT4Liy4LiZ4Li44Lib4Lij4Liw4LmC4Lii4LiECivguIHguKPguLTguKcKK+C4geC4o+C4tOC5ieC4pwor4LiB4Lij4Li04Lin4LiB4Lij4Liy4LinCivguIHguKPguLTguKfguKXguLLguKIKK+C4geC4o+C4tQor4LiB4Lij4Li14LiR4LiyCivguIHguKPguLXguJHguLLguIHguKMKK+C4geC4o+C4teC4keC4suC4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lij4Li14LiR4Liy4Lij4Lih4Lii4LmMCivguIHguKPguLXguJHguLLguKrguJbguLLguJkKK+C4geC4o+C4teC4lAor4LiB4Lij4Li14LmK4LiUCivguIHguKPguLXguJTguIHguKPguLLguJQKK+C4geC4o+C4teC4lOC4geC4o+C4suC4ogor4LiB4Lij4Li14LiU4LiZ4Li04LmJ4LinCivguIHguKPguLXguJjguLIKK+C4geC4o+C4teC4mOC4suC4l+C4seC4ngor4LiB4Lij4Li14LiY4Liy4Lie4LilCivguIHguKPguLXguKkKK+C4geC4o+C4teC4qgor4LiB4Lij4Li24LiHCivguIHguKPguLgKK+C4geC4o+C4uOC4gQor4LiB4Lij4Li44LiB4LiB4Lij4Lix4LiBCivguIHguKPguLjguIHguIHguKPguLnguYoKK+C4geC4o+C4uOC4hwor4LiB4Lij4Li44LmJ4LiH4LiB4Lij4Li04LmI4LiHCivguIHguKPguLjguIfguYDguILguKHguLIKK+C4geC4o+C4uOC4h+C4nuC4suC4peC4tQor4LiB4Lij4Li44LiTCivguIHguKPguLjguJPguLIKK+C4geC4o+C4uOC4k+C4suC4l+C4pOC4hOC4uOC4kwor4LiB4Lij4Li44LiZCivguIHguKPguLjguYjguJkKK+C4geC4o+C4uOC4mgor4LiB4Lij4Li44Lia4LiB4Lij4Li04LiaCivguIHguKPguLjguYjguKEKK+C4geC4o+C4uOC5ieC4oeC4geC4o+C4tOC5iOC4oQor4LiB4Lij4Li44LiiCivguIHguKPguLjguKLguIHguKPguLLguKIKK+C4geC4o+C4uOC4ouC5gOC4geC4o+C4teC4ouC4pwor4LiB4Lij4Li5CivguIHguKPguLnguJQKK+C4geC4o+C4ueC4oQor4LiB4LmA4Lij4LiT4Li4CivguIHguYDguKPguJPguLjguIHguLIKK+C4geC5gOC4o+C4meC4l+C4owor4LiB4LmA4Lij4LiZ4LiX4Lij4LmMCivguIHguKTguIoKK+C4geC4pOC4lC0KK+C4geC4pOC4lOC4ouC4suC5gOC4geC4teC4ouC4o+C4kwor4LiB4Lik4LiU4LiyCivguIHguKTguJTguLLguIHguLLguKMKK+C4geC4pOC4lOC4suC4jeC4iuC4peC4tQor4LiB4Lik4LiU4Liy4LiY4Li04LiB4Liy4LijCivguIHguKTguJTguLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC4pOC4lOC4suC4reC4seC4jeC4iuC4peC4tQor4LiB4Lik4LiU4Li0CivguIHguKTguJTguLXguIHguLIKK+C4geC4pOC4leC4leC4tOC4geC4sgor4LiB4Lik4LiV4LiiLQor4LiB4Lik4LiV4Lii4LiO4Li14LiB4LiyCivguIHguKTguJXguKLguLIKK+C4geC4pOC4leC4tOC4geC4sgor4LiB4Lik4LiV4Li04Lii4LiyCivguIHguKTguKnguI7guLIKK+C4geC4pOC4qeC4juC4suC4jQor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lil4Li04LiVCivguIHguKTguKnguI7guLLguI3guIrguKXguLUKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4p+C4peC4tOC4leC4p+C4sgor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lin4Lil4Li04LioCivguIHguKTguKnguI7guLLguI3guIrguKfguYDguKXguKgKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4uOC4peC4tQor4LiB4Lik4Lip4LiO4Liy4LiY4Liy4LijCivguIHguKTguKnguI7guLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC4pOC4qeC4juC4tQor4LiB4Lik4Lip4LiO4Li14LiB4LiyCivguIHguKTguKnguJPguLIKK+C4geC4pQor4LiB4LilLQor4LiB4Lil4LmE4LiBCivguIHguKXguInguYnguK3guInguKUKK+C4geC4peC4lAor4LiB4Lil4LiU4LiB4Liz4Lih4Liw4Lil4LitCivguIHguKXguJTguJ7guKPguLDguKrguLjguYDguKHguKPguLgKK+C4geC4peC5iOC4mQor4LiB4Lil4LiaCivguIHguKXguJrguYDguIHguKXguLXguYjguKIKK+C4geC4peC4muC5gOC4geC4peC4t+C5iOC4reC4mQor4LiB4Lil4Lia4LiXCivguIHguKXguJrguJrguLHguJXguKPguKrguLjguKHguYDguJ7guKXguLTguIcKK+C4geC4peC4nuC4ouC4suC4mQor4LiB4Lil4LmE4LifCivguIHguKXguKEKK+C4geC4peC4oeC4geC4peC5iOC4reC4oQor4LiB4Lil4Lih4LiB4Lil4Li34LiZCivguIHguKXguKHguIHguKXguLfguJnguIHguKXguK3guJkKK+C4geC4peC4oeC5gOC4geC4peC4teC4ouC4pwor4LiB4Lil4Lih4LiU4Li04LiBCivguIHguKXguKHguYDguJvguYfguJnguKXguLnguIHguKHguLDguJnguLLguKcKK+C4geC4peC4oeC4oAor4LiB4Lil4LmA4Lih4LmH4LiUCivguIHguKXguKLguLjguJfguJjguYwKK+C4geC4peC4peC4sAor4LiB4Lil4Lin4LiHCivguIHguKXguKfguKEKK+C4geC4peC5ieC4p+C4ogor4LiB4Lil4LmJ4Lin4Lii4LiB4Lil4LmJ4Liy4LiiCivguIHguKXguYnguKfguKLguYHguILguIEKK+C4geC4peC5ieC4p+C4ouC4h+C4p+C4h+C4iuC5ieC4suC4hwor4LiB4Lil4LmJ4Lin4Lii4LmA4LiV4LmI4LiyCivguIHguKXguYnguKfguKLguYPguJXguYkKK+C4geC4peC5ieC4p+C4ouC4meC5ieC4reC4ogor4LiB4Lil4LmJ4Lin4Lii4LmE4Lih4LmJCivguIHguKXguYnguKfguKLguKrguLHguYnguJkKK+C4geC4peC5ieC4p+C4ouC4q+C4oeC4ueC4quC4seC4hwor4LiB4Lil4Lin4Li04LiY4Li1CivguIHguKXguKgKK+C4geC4peC4qOC4suC4quC4leC4o+C5jAor4LiB4Lil4Lir4Liy4LiiCivguIHguKXguYDguKvguKIKK+C4geC4peC5ieC4rQor4LiB4Lil4Lit4LiBCivguIHguKXguK3guIHguIHguKXguLHguJoKK+C4geC4peC4reC4geC5geC4geC4peC4gQor4LiB4Lil4Lit4LiHCivguIHguKXguYjguK3guIcKK+C4geC4peC5ieC4reC4hwor4LiB4Lil4LmJ4Lit4LiH4LmB4LiB4Lil4LmJ4LiHCivguIHguKXguYnguK3guIfguIjguLjguKXguJfguKPguKPguKjguJnguYwKK+C4geC4peC5ieC4reC4h+C4leC4uOC4lAor4LiB4Lil4LmJ4Lit4LiH4LmC4LiX4Lij4LiX4Lij4Lij4Lio4LiZ4LmMCivguIHguKXguK3guIfguYDguJ7guKUKK+C4geC4peC5ieC4reC4h+C4o+C4sOC4lOC4seC4mgor4LiB4Lil4LmJ4Lit4LiH4Lin4Lix4LiU4Lih4Li44LihCivguIHguKXguYnguK3guIfguKrguJnguLLguKEKK+C4geC4peC5ieC4reC4h+C4quC4peC4seC4lAor4LiB4Lil4LmJ4Lit4LiH4Liq4LmI4Lit4LiH4LiX4Liy4LiH4LmE4LiB4LilCivguIHguKXguYnguK3guIfguKrguLPguKPguKfguIgKK+C4geC4peC4reC4mQor4LiB4Lil4LmI4Lit4LiZCivguIHguKXguYnguK3guJkKK+C4geC4peC4reC4meC4lOC5ieC4mQor4LiB4Lil4Lit4LiZ4LiV4Lil4Liy4LiUCivguIHguKXguK3guJnguKXguLTguKXguLTguJUKK+C4geC4peC4reC4meC4quC4lAor4LiB4Lil4Lit4LiZ4Liq4Lin4LiUCivguIHguKXguK3guJnguKrguLjguKDguLLguJ4KK+C4geC4peC5iOC4reC4oQor4LiB4Lil4LmI4Lit4Lih4LmA4LiB4Lil4LiyCivguIHguKXguYjguK3guKHguYDguIHguKXguLXguYnguKLguIcKK+C4geC4peC5ieC4reC4oeC5geC4geC4peC5ieC4oQor4LiB4Lil4LmI4Lit4Lih4LiX4LmJ4Lit4LiHCivguIHguKXguYjguK3guKHguKHguJTguKXguLnguIEKK+C4geC4peC5iOC4reC4oeC4q+C4rQor4LiB4Lil4Lit4LiiCivguIHguKXguK3guLHguIHguKnguKMKK+C4geC4peC4reC4uOC4m+C4geC4o+C4k+C5jAor4LiB4Lil4Lix4LiBCivguIHguKXguLHguIcKK+C4geC4peC4seC4lAor4LiB4Lil4Lix4LiU4LiB4Lil4Li44LmJ4LihCivguIHguKXguLHguJTguKHguLHguJkKK+C4geC4peC4seC5iOC4mQor4LiB4Lil4Lix4LmJ4LiZCivguIHguKXguLHguYjguJnguIHguKPguK3guIcKK+C4geC4peC4seC5iOC4meC5geC4geC4peC5ieC4hwor4LiB4Lil4Lix4LmJ4LiZ4LmD4LiICivguIHguKXguLHguJnguJcKK+C4geC4peC4seC4meC4l+C4geC5jAor4LiB4Lil4Lix4LiaCivguIHguKXguLHguJrguIHguKXguK3guIEKK+C4geC4peC4seC4muC4geC4peC4suC4ogor4LiB4Lil4Lix4Lia4LmA4LiB4Lil4Li34Lit4LiBCivguIHguKXguLHguJrguITguLMKK+C4geC4peC4seC4muC4hOC4t+C4mQor4LiB4Lil4Lix4Lia4LiV4Liy4Lil4Lib4Lix4LiV4LijCivguIHguKXguLHguJrguYDguJnguLfguYnguK3guIHguKXguLHguJrguJXguLHguKcKK+C4geC4peC4seC4muC5hOC4m+C4geC4peC4seC4muC4oeC4sgor4LiB4Lil4Lix4Lia4Lir4LiZ4LmJ4Liy4Lih4Li34Lit4LmA4Lib4LmH4LiZ4Lir4Lil4Lix4LiH4Lih4Li34LitCivguIHguKXguLHguKHguJ7guIEKK+C4geC4peC4seC4oeC4nuC4owor4LiB4Lil4Lix4Lih4Lie4Lix4LiBCivguIHguKXguLHguKcKK+C4geC4peC4seC5ieC4pwor4LiB4Lil4Lix4LmJ4Lin4LmA4LiB4Lil4Li14LmJ4LiiCivguIHguKXguLHguYnguKfguITguK0KK+C4geC4peC4seC4p+C4meC5ieC4swor4LiB4Lil4Lix4Lin4Lil4Liy4LiZCivguIHguKXguLIKK+C4geC4peC5iOC4sgor4LiB4Lil4LmJ4LiyCivguIHguKXguLLguIEKK+C4geC4peC4suC4geC4peC4suC4lAor4LiB4Lil4Liy4LiHCivguIHguKXguLLguIfguYDguIHguYjguLLguIHguKXguLLguIfguYPguKvguKHguYgKK+C4geC4peC4suC4h+C4hOC4mQor4LiB4Lil4Liy4LiH4LiE4Lix4LiZCivguIHguKXguLLguIfguITguYjguLMKK+C4geC4peC4suC4h+C4hOC4t+C4mQor4LiB4Lil4Liy4LiH4LmB4LiI4LmJ4LiHCivguIHguKXguLLguIfguYPguIjguKHguLfguK0KK+C4geC4peC4suC4h+C4iuC5ieC4suC4hwor4LiB4Lil4Liy4LiH4LiU4Li04LiZCivguIHguKXguLLguIfguJTguLbguIEKK+C4geC4peC4suC4h+C5gOC4lOC4t+C4reC4mQor4LiB4Lil4Liy4LiH4LiX4Liy4Liq4Li1CivguIHguKXguLLguIfguJnguK3guIEKK+C4geC4peC4suC4h+C4muC5ieC4suC4mQor4LiB4Lil4Liy4LiH4LmB4Lib4Lil4LiHCivguIHguKXguLLguIfguYDguKHguLfguK3guIcKK+C4geC4peC4suC4h+C4p+C4seC4mQor4LiB4Lil4Liy4LiH4Lir4Liy4LinCivguIHguKXguLLguJQKK+C4geC4peC4suC4lOC5gOC4geC4peC4t+C5iOC4reC4mQor4LiB4Lil4LmJ4Liy4LmE4LiU4LmJ4LiB4Lil4LmJ4Liy4LmA4Liq4Li14LiiCivguIHguKXguYnguLLguJnguLHguIHguKHguLHguIHguJrguLTguYjguJkKK+C4geC4peC4suC4muC4suC4lQor4LiB4Lil4Liy4LibCivguIHguKXguYnguLLguKEKK+C4geC4peC4suC4ogor4LiB4Lil4LmJ4Liy4LiiCivguIHguKXguLLguKLguIHguKXguK3guIEKK+C4geC4peC5iOC4suC4pwor4LiB4Lil4LmI4Liy4Lin4LmA4LiB4Lil4Li14LmJ4Lii4LiHCivguIHguKXguYjguLLguKfguILguKfguLHguI0KK+C4geC4peC5iOC4suC4p+C5guC4l+C4qQor4LiB4Lil4LmI4Liy4Lin4Lir4LiyCivguIHguKXguYjguLLguKfguYLguK3guKEKK+C4geC4peC4suC5guC4q+C4oQor4LiB4Lil4LmI4LizCivguIHguKXguYnguLMKK+C4geC4peC5ieC4s+C4geC4o+C4suC4ogor4LiB4Lil4LmJ4Liz4LiB4Lil4Li34LiZCivguIHguKXguLTguYjguIcKK+C4geC4peC4tOC5ieC4hwor4LiB4Lil4Li04LmJ4LiH4LiB4Lil4Lit4LiBCivguIHguKXguLTguYnguIfguIHguKXguLLguIfguJTguIcKK+C4geC4peC4tOC5ieC4h+C5gOC4geC4peC4t+C4reC4gQor4LiB4Lil4Li04LiH4LiE4LmMCivguIHguKXguLTguYnguIfguITguKPguIHguILguLbguYnguJnguYDguILguLIKK+C4geC4peC4tOC5ieC4h+C5gOC4m+C5h+C4meC4peC4ueC4geC4oeC4sOC4meC4suC4pwor4LiB4Lil4Li04LmI4LiZCivguIHguKXguLTguYjguJnguK3guLLguKIKK+C4geC4peC4tOC5ieC4oQor4LiB4Lil4Li1CivguIHguKXguLXguYgKK+C4geC4peC4teC4mgor4LiB4Lil4Li14Lia4LiV4LiyCivguIHguKXguLXguJrguJrguLHguKcKK+C4geC4peC4teC4muC4q+C4tOC4mQor4LiB4Lil4Li24LiHCivguIHguKXguLbguYnguIcKK+C4geC4peC4tuC4h+C4geC4peC5iOC4reC4oQor4LiB4Lil4Li24LiH4LiE4LmMCivguIHguKXguLfguJkKK+C4geC4peC4t+C4meC5hOC4oeC5iOC5gOC4guC5ieC4suC4hOC4suC4ouC5hOC4oeC5iOC4reC4reC4gQor4LiB4Lil4Li44LmI4LihCivguIHguKXguLjguYnguKEKK+C4geC4peC4uOC5ieC4oeC5g+C4iAor4LiB4Lil4Li44LmJ4Lih4Lij4Li44LihCivguIHguKXguLjguYnguKHguK3guIHguIHguKXguLjguYnguKHguYPguIgKK+C4geC4peC4ueC5iAor4LiB4Lil4Li54LmC4LiE4LiqCivguIHguKXguLnguJkKK+C4geC4peC4ueC4meC5jAor4LiB4LmA4Lil4Lin4Lij4LiwCivguIHguKfguJQKK+C4geC4p+C4lOC4guC4seC4mQor4LiB4Lin4LiZCivguIHguKfguJnguJnguYnguLPguYPguKvguYnguILguLjguYjguJkKK+C4geC4p+C4oQor4LiB4Lin4LiiCivguIHguKfguKLguIjguLHguYrguJoKK+C4geC4p+C4ouC4iOC4teC5igor4LiB4LmL4Lin4Lii4LmA4LiV4Li14LmL4Lii4LinCivguIHguKfguLAKK+C4geC4p+C4sOC4geC4p+C4seC4gQor4LiB4Lin4Liw4LmB4LiB4Lin4LmI4LiHCivguIHguKfguLHguIEKK+C4geC4p+C4seC4lAor4LiB4Lin4Lix4LiU4LmB4LiB4Lin4LmI4LiHCivguIHguKfguLHguJTguYTguIHguKcKK+C4geC4p+C4seC4lOC5hOC4geC4p+C5hOC4quC4quC5iOC4hwor4LiB4Lin4LiyCivguIHguKfguYjguLIKK+C4geC4p+C5ieC4sgor4LiB4Lin4Liy4LiHCivguIHguKfguYjguLLguIcKK+C4geC4p+C5ieC4suC4hwor4LiB4Lin4LmJ4Liy4LiH4LiC4Lin4Liy4LiHCivguIHguKfguLLguIfguYDguILguJkKK+C4geC4p+C4suC4h+C5geC4guC4oQor4LiB4Lin4Liy4LiH4LiI4Li44LiBCivguIHguKfguLLguIfguYLguIjguJkKK+C4geC4p+C5iOC4suC4h+C4iuC4mQor4LiB4Lin4Liy4LiH4LiK4Liw4Lih4LiUCivguIHguKfguYjguLLguIfguYLguIvguYnguIcKK+C4geC4p+C4suC4h+C5gOC4lOC4tOC4meC4lOC4hwor4LiB4Lin4Liy4LiH4LiV4Li44LmJ4LiHCivguIHguKfguLLguIfguJfguKPguLLguKIKK+C4geC4p+C4suC4h+C4l+C4reC4hwor4LiB4Lin4Liy4LiH4Lib4LmI4LiyCivguIHguKfguLLguIfguKHguYnguLIKK+C4geC4p+C5ieC4suC4h+C5g+C4q+C4jeC5iAor4LiB4Lin4LmI4Liy4LiK4Li34LmI4LiZCivguIHguKfguLLguJQKK+C4geC4p+C4suC4lOC4leC5ieC4reC4mQor4LiB4Lin4Liy4LiU4LiV4LiyCivguIHguKfguLLguJTguKXguYnguLLguIcKK+C4geC4p+C4suC4mQor4LiB4Lin4LmI4Liy4LiZCivguIHguKfguYnguLLguJkKK+C4geC4p+C5iuC4suC4mQor4LiB4Lin4LmI4Liy4LmA4Lie4Li34LmI4Lit4LiZCivguIHguKfguYnguLLguKcKK+C4geC4p+C4suC4p+C5gOC4hOC4o+C4t+C4rQor4LiB4Lin4Li04LiZCivguIHguKfguLUKK+C4geC4p+C4teC4meC4tOC4nuC4meC4mOC5jAor4LiB4Lip4LiT4LiwCivguIHguKnguKHguLIKK+C4geC4qeC4seC4leC4owor4LiB4Lip4Lix4LiV4Lij4LiyCivguIHguKnguLHguJXguKPguLLguJjguLTguKPguLLguIoKK+C4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiB4Lip4Lix4LiV4Lij4Li04Lii4LiK4Liy4LiV4Li0CivguIHguKnguLHguJXguKPguLUKK+C4geC4qeC4seC4leC4o+C4teC4ouC5jAor4LiB4Lip4Lix4LiV4Lij4Li14Lio4Li54LijCivguIHguKnguLHguKIKK+C4geC4qeC4seC4oi0KK+C4geC4qeC4seC4ouC4geC4peC5iOC4reC4mQor4LiB4Lip4Lix4Lii4LiB4Liy4LijCivguIHguKnguLHguKLguJnguYnguLMKK+C4geC4qeC4seC4ouC5gOC4peC4t+C4reC4lAor4LiB4Lip4Liy4Lib4LiT4LmMCivguIHguKnguLTguJTguLQKK+C4geC4qeC4teC4k+C4suC4qOC4o+C4ngor4LiB4Lip4Li14LiU4Li0CivguIHguKnguLXguKMKK+C4geC4qeC4teC4oy0KK+C4geC4qeC4teC4o+C4mOC4suC4o+C4sgor4LiB4Lip4Li14Lij4Lij4LiqCivguIHguKnguLXguKPguLLguKHguJ7guLgKK+C4geC4qeC4teC4o+C4suC4o+C4k+C4ngor4LiB4Liq4Liy4LiZ4LiV4Li04LmMCivguIHguKrguLQKK+C4geC4quC4tOC4geC4owor4LiB4Liq4Li04LiB4Lij4Lij4LihCivguIHguKrguLTguJMKK+C4geC4q+C4seC4h+C4m+C4suC4ouC4sgor4LiBIOC4q+C4seC4mQor4LiB4Lir4Liy4Lib4LiT4LiwCivguIHguYfguYHguKvguKXguLAKK+C4geC5gOC4rOC4p+C4o+C4suC4gQor4LiB4LitCivguIHguYjguK0KK+C4geC5ieC4rQor4LiB4LmK4LitCivguIHguK3guIEKK+C4geC5iuC4reC4gQor4LiB4LmI4Lit4LiB4Lij4Lij4Lih4LiX4Liz4LmA4LiC4LmH4LiNCivguIHguYjguK3guIHguKfguJkKK+C4geC5iOC4reC4geC4suC4owor4LiB4Lit4LmB4LiBCivguIHguK3guIcKK+C4geC5iOC4reC4hwor4LiB4LmJ4Lit4LiHCivguIHguK3guIfguIHguKXguLLguIcKK+C4geC4reC4h+C4geC4reC4ogor4LiB4Lit4LiH4LiB4Li54LiT4LiR4LmMCivguIHguK3guIfguYDguIHguLTguJkKK+C4geC4reC4h+C5gOC4geC4teC4ouC4o+C4leC4tOC4ouC4qAor4LiB4Lit4LiH4LiC4LmJ4Liy4LinCivguIHguK3guIfguYLguIjguKMKK+C4geC4reC4h+C4l+C4seC4ngor4LiB4Lit4LiH4LiX4Lix4Lie4LiZ4LmJ4Lit4LiiCivguIHguK3guIfguJfguLjguJkKK+C4geC4reC4h+C4nuC4pQor4LiB4Lit4LiH4Lie4Lix4LiZCivguIHguK3guIfguJ/guK3guJkKK+C4geC4reC4h+C4oeC4o+C4lOC4gQor4LiB4Lit4LiH4Lij4LmJ4Lit4LiiCivguIHguK3guIfguKvguJnguLjguJkKK+C4geC4reC4iwor4LiB4Lit4LiUCivguIHguK3guJTguYHguILguYnguIfguIHguK3guJTguILguLIKK+C4geC4reC4lOC4oeC4t+C4reC4geC4reC4lOC4leC4teC4mQor4LiB4Lit4LiU4Lit4LiBCivguIHguYjguK3guJXguLHguYnguIcKK+C4geC5iOC4reC4mQor4LiB4LmJ4Lit4LiZCivguIHguYnguK3guJnguILguLXguYnguKvguKHguLIKK+C4geC5ieC4reC4meC5gOC4quC5ieC4sgor4LiB4Lit4LiaCivguIHguK3guJrguYLguIHguKIKK+C4geC4reC4muC4lOC5ieC4p+C4ogor4LiB4Lit4Lia4LiZ4Liy4LiHCivguIHguYrguK3guJrguJvguLXguYkKK+C4geC4reC4m+C4owor4LiB4LmJ4Lit4LihCivguIHguK3guKHguIHguYnguK0KK+C4geC5iOC4reC4oeC4geC5ieC4rQor4LiB4Lit4LiiCivguIHguYnguK3guKIKK+C4geC5i+C4reC4ogor4LiB4LmJ4Lit4Lij4LmI4LitCivguIHguYnguK3guKPguYjguK3guIHguYnguK3guJXguLTguIEKK+C4geC5iOC4reC4o+C5iOC4suC4h+C4quC4o+C5ieC4suC4h+C4leC4seC4pwor4LiB4Lit4Lij4Li04Lil4Lil4LiyCivguIHguYjguK3guKTguIHguKnguYwKK+C4geC4reC4peC5jOC4nwor4LiB4LmI4Lit4LmB4Lil4LmJ4Lin4LiV4LmJ4Lit4LiH4Liq4Liy4LiZCivguIHguK3guYHguKXguLAKK+C4geC5iOC4reC4quC4o+C5ieC4suC4hwor4LiB4LmI4Lit4Lir4Lin4Lit4LiUCivguIHguK3guYDguK3guLXguYrguKLguLAKK+C4geC4sAor4LiB4Liw4LiB4Lij4LmI4Lit4LihCivguIHguLDguIHguKPguYnguLLguKcKK+C4geC4sOC4geC4peC4tOC5ieC4hwor4LiB4Liw4LiB4LmI4Lit4LiHCivguIHguLDguIHguLHguIcKK+C4geC4sOC4geC4tuC4gQor4LiB4Liw4LmA4LiB4LiT4LiR4LmMCivguIHguLDguYDguIHguLLguLAKK+C4geC4sOC5guC4geC4o+C4sAor4LiB4Liw4LiH4LmJ4Lit4LiZ4LiB4Liw4LmB4LiH4LmJ4LiZCivguIHguLDguIjguLHguIcKK+C4geC4sOC5geC4iOC4sAor4LiB4Liw4LiK4LiwCivguIHguLDguIrguLHguIcKK+C4geC4sOC4iuC4suC4oeC4suC4qAor4LiB4Liw4LiK4Li04LiHCivguIHguLDguIrguLbguYjguIHguIHguLDguIrguLHguYjguIEKK+C4geC4sOC5geC4iuC5iAor4LiB4Liw4LiL4Lin4LiBCivguIHguLDguIvguYnguLLguKvguK3guKIKK+C4geC4sOC4i+C4teC5iAor4LiB4Liw4LmC4LiL4LmICivguIHguLDguYLguIvguYkKK+C4geC4sOC4lOC4gQor4LiB4Liw4LiU4LiHCivguIHguLDguJTguKfguJkKK+C4geC4sOC4lOC4reC4geC5hgor4LiB4Liw4LiU4LiwCivguIHguLDguJTguLHguIfguJrguLLguKIKK+C4geC4sOC4lOC4seC4lAor4LiB4Liw4LiU4LmJ4Liy4LiHCivguIHguLDguJTguLPguIHguLDguJTguYjguLLguIcKK+C4geC4sOC4lOC4tQor4LiB4Liw4LiU4Li14LmICivguIHguLDguJTguLjguYnguIcKK+C4geC4sOC5gOC4lOC5iQor4LiB4Liw4LmA4LiU4LiBCivguIHguLDguYDguJTguLXguYvguKLguKcKK+C4geC4sOC5hOC4lAor4LiB4Liw4LiV4Lij4Li44LiUCivguIHguLDguJXguK3guIEKK+C4geC4sOC4leC5iOC4reC4ogor4LiB4Liw4LiV4Lix4LiBCivguIHguLDguJXguLHguIcKK+C4geC4sOC4leC4seC4h+C4geC4sOC4leC4tOC5ieC4pwor4LiB4Liw4LiV4Lix4LiH4LmD4LiaCivguIHguLDguJXguLHguIfguKHguLnguJXguKMKK+C4geC4sOC4leC5iOC4sgor4LiB4Liw4LiV4LmK4Liy4LiBCivguIHguLDguJXguYnguLMKK+C4geC4sOC4leC4tOC5iuC4geC4o+C4tOC4gQor4LiB4Liw4LiV4Li04LiH4LiB4Liw4LmB4LiV4LiHCivguIHguLDguJXguLXguJoKK+C4geC4sOC4leC4tuC4h+C4geC4sOC5geC4leC4hwor4LiB4Liw4LiV4Li44LmK4LiBCivguIHguLDguJXguLjguJQKK+C4geC4sOC4leC4uOC4oeC4uQor4LiB4Liw4LiV4Li54LiBCivguIHguLDguYDguJXguIEKK+C4geC4sOC5gOC4leC4h+C5hgor4LiB4Liw4LmA4LiV4LiH4LmA4Lij4LiHCivguIHguLDguYHguJXguKcKK+C4geC4sOC5geC4leC5iOC4pwor4LiB4Liw4LmC4LiV4LmK4LiBCivguIHguLDguYLguJXguIfguIHguLDguYDguJXguIcKK+C4geC4sOC5guC4leC5ieC4h+C5guC4q+C5iOC4hwor4LiB4Liw4LiW4Lix4LinCivguIHguLDguJfguIHguKPguIEKK+C4geC4sOC4l+C4rQor4LiB4Liw4LiX4Lix4LiHCivguIHguLDguJfguLHguIfguKvguLHguJkKK+C4geC4sOC4l+C4seC4lOC4o+C4seC4lAor4LiB4Liw4LiX4Lix4LiZCivguIHguLDguJfguLHguJnguKvguLHguJkKK+C4geC4sOC4l+C4seC4mgor4LiB4Liw4LiX4LizCivguIHguLDguJfguLQKK+C4geC4sOC4l+C4tOC4guC4ueC4lAor4LiB4Liw4LiX4Li34LitCivguIHguLDguJfguLjguJkKK+C4geC4sOC5gOC4l+C4ogor4LiB4Liw4LmA4LiX4Lii4LiZ4Liy4LiH4Lir4Lih4Lix4LmI4LiZCivguIHguLDguYDguJfguLLguLAKK+C4geC4sOC5geC4l+C5iQor4LiB4Liw4LmB4LiX4LmI4LiHCivguIHguLDguYHguJfguJkKK+C4geC4sOC4meC4p+C4pQor4LiB4Liw4LiZ4Lix4LiUCivguIHguLDguJrguK3guJnguIHguLDguJrguLbguIcKK+C4geC4sOC4muC5iOC4reC4meC4geC4sOC5geC4muC5iOC4mQor4LiB4Liw4Lia4Lix4LiHCivguIHguLDguJrguLHguYnguIcKK+C4geC4sOC4muC4seC4h+C4o+C4seC4h+C5gOC4neC4t+C4reC4gQor4LiB4Liw4Lia4Lix4LiH4Lil4LihCivguIHguLDguJrguLHguIfguKvguJnguYnguLIKK+C4geC4sOC4muC4tOC5ieC4hwor4LiB4Liw4Lia4Li04LilCivguIHguLDguJrguLbguIfguIHguLDguJrguK3guJkKK+C4geC4sOC4muC4uOC4lAor4LiB4Liw4LmA4Lia4LmJ4LitCivguIHguLDguYDguJrguLXguKLguJkKK+C4geC4sOC5gOC4muC4t+C4rQor4LiB4Liw4Lib4Lij4Li04LiU4LiB4Liw4Lib4Lij4Lit4LiiCivguIHguLDguJvguKPguLTguJoKK+C4geC4sOC4m+C4o+C4tOC4muC4geC4sOC4m+C4o+C4reC4ogor4LiB4Liw4Lib4Lil4LiB4LiB4Liw4LmA4Lib4Lil4Li14LmJ4LiiCivguIHguLDguJvguKfguIHguIHguLDguYDguJvguLXguKLguIEKK+C4geC4sOC4m+C4reC4oQor4LiB4Liw4Lib4Lit4Lih4LiC4Liy4LiHCivguIHguLDguJvguLAKK+C4geC4sOC4m+C4seC5iOC4mQor4LiB4Liw4Lib4LmJ4Liz4LiB4Liw4LmA4Lib4LmL4LitCivguIHguLDguJvguLQKK+C4geC4sOC4m+C4uQor4LiB4Liw4Lib4Li54LiUCivguIHguLDguJvguLnguJTguKvguKXguLnguJQKK+C4geC4sOC5gOC4m+C4sAor4LiB4Liw4LmA4Lib4Li04LmK4Lia4LiB4Liw4Lib4LmK4Liy4LiaCivguIHguLDguYDguJvguLXguKLguJQKK+C4geC4sOC5geC4m+C5ieC4mQor4LiB4Liw4LmB4Lib4LiwCivguIHguLDguYLguJvguKPguIcKK+C4geC4sOC5guC4m+C5guC4pQor4LiB4Liw4Lic4Lil4Li44Lia4LiB4Liw4LmC4Lic4Lil4LmICivguIHguLDguYDguJzguYjguJkKK+C4geC4sOC5gOC4nOC4peC4gQor4LiB4Liw4LmC4Lic4Lil4LiB4LiB4Liw4LmA4Lic4Lil4LiBCivguIHguLDguJ7guIcKK+C4geC4sOC4nuC4o+C4p+C4lOC4geC4sOC4nuC4o+C4suC4lAor4LiB4Liw4Lie4Lij4LmI4Lit4LiH4LiB4Liw4LmB4Lie4Lij4LmI4LiHCivguIHguLDguJ7guKPguLTguJoKK+C4geC4sOC4nuC4o+C4uOC4mQor4LiB4Liw4Lie4Lij4Li54LiU4LiB4Liw4Lie4Lij4Liy4LiUCivguIHguLDguJ7guKXguYnguK0KK+C4geC4sOC4nuC4peC5iOC4reC4h+C4geC4sOC5geC4nuC4peC5iOC4hwor4LiB4Liw4Lie4LmJ4LitCivguIHguLDguYDguJ7guKPguLIKK+C4geC4sOC5gOC4nuC4teC4ouC4lAor4LiB4Liw4LmA4Lie4Li14Lii4LiU4LiK4LmJ4Liy4LiHCivguIHguLDguYDguJ7guLXguKLguJTguKvguJnguLkKK+C4geC4sOC4oeC4hwor4LiB4Liw4Lih4LmI4LiHCivguIHguLDguYDguKHguYfguIcKK+C4geC4sOC5gOC4oeC5h+C4h+C4leC4seC4p+C4nOC4ueC5iQor4LiB4Liw4LmA4Lih4Li14LiiCivguIHguLDguKLguLgKK+C4geC4sOC4o+C5iOC4reC4h+C4geC4sOC5geC4o+C5iOC4hwor4LiB4Liw4Lij4Liw4LiV4LiwCivguIHguLDguKPguLDguKvguJnguLAKK+C4geC4sOC4o+C4seC4hwor4LiB4Liw4Lij4Lix4LiVCivguIHguLDguKPguLHguJXguKvguKXguKfguIcKK+C4geC4sOC4o+C4suC4hwor4LiB4Liw4Lij4Liy4LiH4Lir4Lix4Lin4LiC4Lin4Liy4LiZCivguIHguLDguKPguLTguIcKK+C4geC4sOC4o+C4tOC4h+C4geC4sOC5gOC4o+C4teC4ouC4lAor4LiB4Liw4Lij4Li44LiH4LiB4Liw4Lij4Lix4LiHCivguIHguLDguKPguLjguYjguIfguIHguLDguKPguLTguYjguIcKK+C4geC4sOC4o+C4uOC4mQor4LiB4Liw4LmA4LijCivguIHguLDguYDguKPguIHguLDguKPguYjguK3guJkKK+C4geC4sOC5gOC4o+C5iOC4geC4sOC4o+C5iOC4reC4mQor4LiB4Liw4LmA4Lij4LmI4LitCivguIHguLDguYDguKPguYjguK3guIHguLDguKPguYjguLIKK+C4geC4sOC5gOC4o+C4teC5iOC4ouC4geC4sOC4o+C4suC4lAor4LiB4Liw4LmC4Lij4LiB4Liw4LmA4LijCivguIHguLDguKXguKfguKIKK+C4geC4sOC4peC4rQor4LiB4Liw4Lil4LmI4Lit4LiB4Liw4LmB4Lil4LmICivguIHguLDguKXguK3guIjguLXguYoKK+C4geC4sOC4peC5iOC4reC4mQor4LiB4Liw4Lil4LmI4Lit4Lih4LiB4Liw4LmB4Lil4LmI4LihCivguIHguLDguKXguYjguK3guKLguIHguLDguKvguKXguLTguJoKK+C4geC4sOC4peC4sOC4m+C4seC4h+C4q+C4sgor4LiB4Liw4Lil4Liw4Lih4Lix4LiHCivguIHguLDguKXguLDguYHguKEKK+C4geC4sOC4peC4sOC4reC4reC4oQor4LiB4Liw4Lil4Lix4LiH4LiV4Lix4LiH4LmE4LiB4LmICivguIHguLDguKXguLHguJkKK+C4geC4sOC4peC4seC4meC4l+C4sgor4LiB4Liw4Lil4LiyCivguIHguLDguKXguLLguIcKK+C4geC4sOC4peC4suC4i+C4rQor4LiB4Liw4Lil4Liy4Liq4Li1CivguIHguLDguKXguLPguJ7guK0KK+C4geC4sOC4peC4tOC4hwor4LiB4Liw4Lil4Li04LiH4Lib4Lil4Li04LiHCivguIHguLDguKXguLTguYnguKHguIHguLDguYDguKvguKXguLXguYjguKIKK+C4geC4sOC4peC4tOC4reC5iOC4reC4hwor4LiB4Liw4Lil4Li44Lih4Lie4Li1CivguIHguLDguYDguKXguYfguIcKK+C4geC4sOC5gOC4peC5iOC4reC4geC4sOC4peC5iOC4sgor4LiB4Liw4LmA4Lil4Li04LiUCivguIHguLDguYDguKXguLXguKLguKcKK+C4geC4sOC5geC4pQor4LiB4Liw4LmC4Lil4LmICivguIHguLDguYLguKXguIcKK+C4geC4sOC4p+C4reC4geC4geC4sOC5geC4p+C4gQor4LiB4Liw4Lin4LiwCivguIHguLDguKrguYnguKHguIrguLfguYjguJkKK+C4geC4sOC4quC5ieC4suC4q+C4reC4ogor4LiB4Liw4Lir4LiZ4Lit4LiB4Liw4LmB4Lir4LiZCivguIHguLDguKvguJnguYfguK3guIfguIHguLDguYHguKvguJnguYfguIcKK+C4geC4sOC4q+C4meC4sAor4LiB4Liw4Lir4LiZ4Li44LiH4LiB4Liw4Lir4LiZ4Li04LiHCivguIHguLDguKvguKHguK3guIEKK+C4geC4sOC4q+C4o+C5iOC4reC4hwor4LiB4Liw4Lir4Lij4Lit4LiUCivguIHguLDguKvguKPguYfguK3guKHguIHguLDguYHguKvguKPguYfguKEKK+C4geC4sOC4q+C4o+C4suC4mQor4LiB4Liw4Lir4Lij4Li14LmICivguIHguLDguKvguKPguLXguYjguJvguLHguYrguJoKK+C4geC4sOC4q+C4peC4suC4m+C5i+C4sgor4LiB4Liw4Lir4Lil4LmI4LizCivguIHguLDguKvguKXguLXguYgKK+C4geC4sOC4q+C4peC4teC4geC4sOC4q+C4peC4rQor4LiB4Liw4Lir4Lil4Li44LiB4LiB4Liw4Lir4Lil4Li04LiBCivguIHguLDguKvguLMKK+C4geC4sOC4q+C4s+C5geC4nuC4sAor4LiB4Liw4Lir4Li34LitCivguIHguLDguKvguLnguJQKK+C4geC4sOC5gOC4q+C4o+C4teC5iOC4ouC4hwor4LiB4Liw4LmA4Lir4Lil4Liy4Liw4LmA4Lib4Liy4LiwCivguIHguLDguYHguKvguKLguIEKK+C4geC4sOC5geC4q+C4sAor4LiB4Liw4LmC4Lir4Lil4LiBCivguIHguLDguYLguKvguKXguYnguIcKK+C4geC4sOC5hOC4q+C4peC5iAor4LiB4Liw4Lit4Lin4LihCivguIHguLDguK3guK3guKEKK+C4geC4sOC4reC4suC4mQor4LiB4Liw4Lit4Liy4LihCivguIHguLDguK3guLTguJQKK+C4geC4sOC4reC4uOC4mgor4LiB4Liw4LmA4Lit4LinCivguIHguLDguYHguK0KK+C4geC4sOC5geC4reC4mQor4LiB4Lix4LiBCivguIHguLHguYrguIEKK+C4geC4seC4geC4geC4o+C4sgor4LiB4Lix4LiB4LiB4Lix4LiZCivguIHguLHguIHguIHguLLguKPguLgKK+C4geC4seC4geC4guC4rOC4sAor4LiB4Lix4LiB4LiC4Lix4LiHCivguIHguLHguIHguITguLjguKEKK+C4geC4seC4geC4lOC5iOC4suC4mQor4LiB4Lix4LiB4LiV4Lix4LinCivguIHguLHguIHguJXguLjguJkKK+C4geC4seC4geC4muC4o+C4tOC5gOC4p+C4kwor4LiB4Lix4LiHCivguIHguLHguYnguIcKK+C4geC4seC4h+C4gQor4LiB4Lix4LmJ4LiH4LiB4Lij4Liw4LiU4Liy4LiZCivguIHguLHguIfguIHguYnguLIKK+C4geC4seC4h+C5gOC4geC4teC4ouC4hwor4LiB4Lix4LiH4LiC4LiyCivguIHguLHguIfguInguLTguJkKK+C4geC4seC4h+C4n+C4uQor4LiB4Lix4LiH4Lin4LilCivguIHguLHguIfguKfguLLguJkKK+C4geC4seC4h+C5gOC4p+C4teC4ouC4mQor4LiB4Lix4LiH4LiqCivguIHguLHguIfguKrguJTguLLguKUKK+C4geC4seC4h+C5hOC4qgor4LiB4Lix4LiH4Lir4Lix4LiZCivguIHguLHguIfguKvguLHguJnguYPguJrguJ7guLHguJQKK+C4geC4seC4h+C4q+C4seC4meC5hOC4reC4nuC5iOC4mQor4LiB4Lix4LiI4LiJ4Lib4LiwCivguIHguLHguIjguInguLAKK+C4geC4seC4iOC4ieC4sgor4LiB4Lix4LiNCivguIHguLHguI3guIjguLjguIEKK+C4geC4seC4jeC4iOC4uOC4geC4suC4o+C4sgor4LiB4Lix4LiN4LiK4LiyCivguIHguLHguI3guI3guLIKK+C4geC4seC4kAor4LiB4Lix4LiT4LiP4LiB4LiwCivguIHguLHguJPguJAtCivguIHguLHguJPguJDguIEKK+C4geC4seC4k+C4kOC4geC4sAor4LiB4Lix4LiT4LiQ4LiK4LiwCivguIHguLHguJPguJDguLHguKgKK+C4geC4seC4k+C4kOC4seC4qOC4p+C5jAor4LiB4Lix4LiT4LiQ4LiyCivguIHguLHguJPguJDguLUKK+C4geC4seC4k+C4keC5jAor4LiB4Lix4LiT4LiR4LmM4LmA4LiX4Lio4LiZ4LmMCivguIHguLHguJPguJPguYwKK+C4geC4seC4k+C4qy0KK+C4geC4seC4k+C4q+C4mOC4o+C4o+C4oQor4LiB4Lix4LiT4Lir4Lib4Lix4LiB4Lip4LmMCivguIHguLHguJQKK+C4geC4seC4lOC4m+C5iOC4sgor4LiB4Lix4LiU4Lif4Lix4LiZCivguIHguLHguJTguKXguLLguIEKK+C4geC4seC4lOC4p+C4suC4hwor4LiB4Lix4LiU4Lir4Liy4LiH4LiV4Lix4Lin4LmA4Lit4LiHCivguIHguLHguJXguJXguLTguIHguKHguLLguKoKK+C4geC4seC4leC4leC4tOC4geC4sgor4LiB4Lix4LiV4LiV4Li04LmA4LiB4Lii4LiyCivguIHguLHguJXguKPguJfguLHguJPguJHguYwKK+C4geC4seC4leC4o+C4sgor4LiB4Lix4LiX4Lil4Li1CivguIHguLHguJkKK+C4geC4seC5iOC4mQor4LiB4Lix4LmJ4LiZCivguIHguLHguJnguIHguIcKK+C4geC4seC5ieC4meC4geC4suC4hwor4LiB4Lix4LiZ4LmA4LiB4Lij4LiyCivguIHguLHguJnguYTguIHguKMKK+C4geC4seC4meC5gOC4guC4suC4geC4seC4meC5gOC4o+C4sgor4LiB4Lix4LiZ4LiK4LiZCivguIHguLHguJnguIrguLTguIcKK+C4geC4seC4meC4iuC4teC4ngor4LiB4Lix4LiZ4LmA4LiK4LitCivguIHguLHguYnguJnguIvguLnguYgKK+C4geC4seC4meC5geC4i+C4hwor4LiB4Lix4LiZ4LiU4Lit4LiHCivguIHguLHguJnguJTguLLguKMKK+C4geC4seC4meC4lOC4suC4pQor4LiB4Lix4LiZ4LmB4LiU4LiUCivguIHguLHguJnguYTguJQKK+C4geC4seC4meC4leC5jAor4LiB4Lix4LiZ4LiV4Lix4LiHCivguIHguLHguJnguJXguLHguKcKK+C4geC4seC4meC5hOC4leC4owor4LiB4Lix4LiZ4LiX4LijCivguIHguLHguJnguJfguKPguLLguIHguKMKK+C4geC4seC4meC4l+C4sAor4LiB4Lix4LiZ4LiX4LmI4LiyCivguIHguLHguJnguYHguJfguKPguIEKK+C4geC4seC5ieC4meC4muC4seC4hwor4LiB4Lix4LiZ4Lie4Li04Lij4Li44LiTCivguIHguLHguJnguKDguLHguKIKK+C4geC4seC4meC4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lix4LiZ4LmA4Lih4Li14Lii4LiHCivguIHguLHguJnguKLguYwKK+C4geC4seC4meC4ouC4sgor4LiB4Lix4LiZ4Lii4Liy4Lii4LiZCivguIHguLHguJnguKXguIcKK+C4geC4seC4meC4peC4reC4hwor4LiB4Lix4LiZ4Lil4Li24LiHCivguIHguLHguJnguYHguKXguLDguIHguLHguJkKK+C4geC4seC4meC4quC4suC4lAor4LiB4Lix4LiZ4LmB4Liq4LiHCivguIHguLHguYnguJnguKvguKLguLHguYjguJkKK+C4geC4seC4meC5gOC4reC4hwor4LiB4Lix4LiZ4LmA4Lit4LiyCivguIHguLHguJoKK+C4geC4seC4muC5geC4geC5iQor4LiB4Lix4Lia4LmB4LiB4Lil4LmJ4LihCivguIHguLHguJrguILguYnguLLguKcKK+C4geC4seC4muC4muC4uOC5gOC4o+C4qAor4LiB4Lix4Lia4Lij4Liw4LmA4Lia4Li04LiUCivguIHguLHguJsKK+C4geC4seC4m+C4leC4seC4mQor4LiB4Lix4Lib4LiZ4LiBCivguIHguLHguJvguJrguLLguKrguLTguIEKK+C4geC4seC4m+C4m+C4suC4quC4tOC4gQor4LiB4Lix4Lib4Lib4Li04LiiLQor4LiB4Lix4Lib4Lib4Li04Lii4LiB4Liy4Lij4LiBCivguIHguLHguJvguJvguLTguKLguKDguLHguJPguJHguYwKK+C4geC4seC4m+C4m+C4tOC4ouC5guC4p+C4q+C4suC4owor4LiB4Lix4Lib4Lib4Li04Lii4LiwCivguIHguLHguJvguJvguLXguKLguYwKK+C4geC4seC4oeC4muC4mQor4LiB4Lix4Lih4LibLQor4LiB4Lix4Lih4Lib4LiZLQor4LiB4Lix4Lih4Lib4LiZ4Liy4LiB4Liy4LijCivguIHguLHguKHguJvguJnguLLguJcKK+C4geC4seC4oeC4m+C4o+C4sOC5guC4lAor4LiB4Lix4Lih4Lib4Li1CivguIHguLHguKHguJ7guKUKK+C4geC4seC4oeC4nuC4uOC4igor4LiB4Lix4Lih4Lie4Li44LiKLQor4LiB4Lix4Lih4Lie4Li44LiK4Lie4Liy4LiB4Lii4LmMCivguIHguLHguKHguJ7guLkKK+C4geC4seC4oeC4nuC4ueC4iuC4sgor4LiB4Lix4Lih4LmC4Lie4LiKCivguIHguLHguKHguKHguLHguIrguKfguLLguJUKK+C4geC4seC4oeC4oeC4seC4j+C4kOC4suC4mQor4LiB4Lix4Lih4Lih4Lix4LiZ4LiV4Lig4Liy4Lie4Lij4Lix4LiH4Liq4Li1CivguIHguLHguKHguKHguLHguJnguJXguKPguLHguIfguKrguLUKK+C4geC4seC4oeC4oeC4suC4owor4LiB4Lix4Lih4Lil4Liy4LioCivguIHguLHguKLguKfguLTguIHguLHguKIKK+C4geC4seC4peC4iuC4suC4jQor4LiB4Lix4Lil4Lia4LiBCivguIHguLHguKXguJstCivguIHguLHguKXguJvguYwKK+C4geC4seC4peC4m+C4meC4sgor4LiB4Lix4Lil4Lib4Lie4Lik4LiB4Lip4LmMCivguIHguLHguKXguJvguLHguIfguKvguLIKK+C4geC4seC4peC4m+C4suC4p+C4quC4suC4mQor4LiB4Lix4Lil4Lib4Li04LiVCivguIHguLHguKXguJ7guLjguKEKK+C4geC4seC4peC5gOC4oeC5h+C4lAor4LiB4Lix4Lil4Lii4LiyCivguIHguLHguKXguKLguLLguJMtCivguIHguLHguKXguKLguLLguJPguKHguLTguJXguKMKK+C4geC4seC4peC4ouC4suC4k+C4tQor4LiB4Lix4Lil4Lii4Liy4LmA4Lii4Li14LmI4Lii4Lih4Lir4LmJ4Lit4LiHCivguIHguLHguKXguYDguKfguYnguLIKK+C4geC4seC4peC4q+C4suC4ogor4LiB4Lix4Lil4LmC4Lir4LiiCivguIHguLHguKXguK3guK3guKEKK+C4geC4seC4peC5gOC4reC4sgor4LiB4Lix4Lio4Lih4LilCivguIHguLHguKjguKLguJsKK+C4geC4seC4qeC4kwor4LiB4LiyCivguIHguYvguLIKK+C4geC4suC4gQor4LiB4Liy4LiBLQor4LiB4Liy4LiB4LiB4Liw4Lij4Li44LiZCivguIHguLLguIHguILguKLguLLguIEKK+C4geC4suC4geC4guC5ieC4suC4pwor4LiB4Liy4LiB4LiE4LiV4Li0CivguIHguLLguIHguJPguLbguIEKK+C4geC4suC4geC4muC4suC4lwor4LiB4Liy4LiB4LmA4Lie4LiK4LijCivguIHguLLguIHguKDguLLguKnguLIKK+C4geC4suC4geC4o+C4uOC4mQor4LiB4Liy4LiB4Lir4Lih4Li5CivguIHguLLguIHguLDguJfguLTguIcKK+C4geC4suC4geC4sOC5gOC4ouC4teC4ogor4LiB4LmL4Liy4LiB4Lix4LmI4LiZCivguIHguLLguIHguLUKK+C4geC4suC4geC4teC5geC4geC4oeC5gOC4guC4teC4ouC4pwor4LiB4Liy4LiE4Liy4Lia4Lie4Lij4Li04LiBCivguIHguLLguIcKK+C4geC5ieC4suC4hwor4LiB4Liy4LiH4LmA4LiB4LiHCivguIHguLLguIfguYDguIHguLXguKLguIcKK+C4geC5ieC4suC4h+C4guC4p+C4suC4h+C4hOC4rQor4LiB4Liy4LiH4LiC4Lit4LiHCivguIHguLLguIfguILguLXguYnguKHguK3guJQKK+C4geC4suC4h+C5gOC4guC4mQor4LiB4LmJ4Liy4LiH4Lib4Lil4LiyCivguIHguLLguIfguYDguKfguLXguKLguJkKK+C4geC4suC4iOC4seC4muC4q+C4peC4seC4gQor4LiB4Liy4LiK4Liy4LiUCivguIHguYrguLLguIsKK+C4geC5iuC4suC4i+C5hOC4guC5iOC5gOC4meC5iOC4sgor4LiB4LmK4Liy4LiL4LmA4LiJ4Li34LmI4Lit4LiiCivguIHguYrguLLguIvguJnguYnguLPguJXguLIKK+C4geC4suC4i+C4sOC4peC4reC4hwor4LiB4Liy4LiL4Liw4Lil4Lit4LiH4LiE4LizCivguIHguLLguI3guIjguJktCivguIHguLLguI3guIjguJnguLIKK+C4geC4suC4kAor4LiB4Liy4LiUCivguIHguYrguLLguJQKK+C4geC4suC4mQor4LiB4LmI4Liy4LiZCivguIHguYnguLLguJkKK+C4geC5iuC4suC4mQor4LiB4LmJ4Liy4LiZ4LiC4LiUCivguIHguYnguLLguJnguYHguILguYfguIcKK+C4geC5ieC4suC4meC4hOC4rQor4LiB4Liy4LiZ4LiU4LiyCivguIHguLLguJnguJXguYwKK+C4geC5ieC4suC4meC4leC4reC4hwor4LiB4LmJ4Liy4LiZ4LiV4LmI4Lit4LiU4Lit4LiBCivguIHguLLguJnguJfguYwKK+C4geC4suC4meC4mQor4LiB4LmJ4Liy4LiZ4Lia4Lix4LinCivguIHguYnguLLguJnguJ7guKPguYnguLLguKcKK+C4geC4suC4meC4nuC4peC4uQor4LiB4LmJ4Liy4LiZ4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguIHguYnguLLguJnguKLguLLguKcKK+C4geC5ieC4suC4meC5geC4ouC5iOC4hwor4LiB4LmJ4Liy4LiZ4LmA4Lir4Lil4Li34Lit4LiHCivguIHguLLguJnguYnguLIKK+C4geC4suC4meC5ieC4swor4LiB4Liy4LiaCivguIHguYnguLLguJrguYYKK+C4geC4suC4muC4geC4teC5iQor4LiB4Liy4Lia4LmA4LiC4Li14Lii4LiHCivguIHguLLguJrguITguLnguYgKK+C4geC4suC4muC5gOC4lOC4teC4ouC4pwor4LiB4Liy4Lia4LmA4LiU4Li14LmI4Lii4LinCivguIHguLLguJrguJnguYnguLPguIjguLfguJQKK+C4geC4suC4muC4muC4seC4pwor4LiB4Liy4Lia4Lib4Li54LmA4LilCivguIHguLLguJrguJ7guKPguKvguKHguKjguKMKK+C4geC4suC4muC4q+C4reC4ogor4LiB4Liy4Lia4Li44Lij4Li44LipCivguIHguLLguJrguLkKK+C4geC4suC5gOC4m+C4teC5ieC4ouC4lAor4LiB4Liy4Lid4Liy4LiBCivguIHguLLguJ7guKLguYwKK+C4geC4suC4nuC4ouC5jOC4geC4peC4reC4mQor4LiB4Liy4Lif4Lix4LiB4LmE4LiC4LmICivguIHguLLguYDguJ/guK3guLXguJkKK+C4geC4suC5geC4nwor4LiB4Liy4LihCivguIHguLLguKEtCivguIHguYnguLLguKEKK+C4geC5ieC4suC4oeC4geC4o+C4suC4oQor4LiB4Liy4Lih4LiB4Lij4Li14LiR4LiyCivguIHguLLguKHguIHguLTguIgKK+C4geC5ieC4suC4oeC4geC4uOC5ieC4hwor4LiB4LmJ4Liy4Lih4LmA4LiB4Lil4Li14LmJ4Lii4LiHCivguIHguLLguKHguITguLjguJMKK+C4geC4suC4oeC4ieC4seC4meC4l+C5jAor4LiB4LmJ4Liy4Lih4LiU4Liy4LiaCivguIHguLLguKHguJXguLHguJPguKvguLIKK+C4geC4suC4oeC4ly0KK+C4geC4suC4oeC5gOC4l+C4ngor4LiB4Liy4Lih4LiZCivguIHguYnguLLguKHguJvguLkKK+C4geC5ieC4suC4oeC4m+C4ueC4q+C4peC4uOC4lAor4LiB4Liy4Lih4Lig4LieCivguIHguLLguKHguKPguLLguIQKK+C4geC4suC4oeC5guC4o+C4hAor4LiB4Liy4Lih4Lin4Li04LiV4LiBCivguIHguLLguKHguKfguLTguJXguJbguLLguKMKK+C4geC4suC4oeC4quC4oeC4seC4h+C4hOC4tQor4LiB4Liy4Lih4Lix4LiKCivguIHguLLguKHguLIKK+C4geC4suC4oeC4suC4l+C4teC4meC4ngor4LiB4Liy4Lih4Liy4Lie4LiI4LijCivguIHguLLguKHguLLguKHguLTguKgKK+C4geC4suC4oeC4suC4o+C4oeC4k+C5jAor4LiB4Liy4Lih4Liy4Lin4LiI4LijCivguIHguLLguKHguLTguJnguLUKK+C4geC4suC4oeC4tOC4qAor4LiB4Liy4LmA4Lih4LioCivguIHguLLguYDguKHguKrguLjguKHguLTguIjguInguLLguIjguLLguKMKK+C4geC4suC5guC4oeC4l+C4ogor4LiB4Liy4LiiCivguIHguLLguKItCivguIHguYjguLLguKIKK+C4geC4suC4ouC4geC4o+C4o+C4oQor4LiB4LmI4Liy4Lii4LiB4Lit4LiHCivguIHguLLguKLguJfguKfguLLguKMKK+C4geC4suC4ouC4muC4o+C4tOC4q+C4suC4owor4LiB4Liy4Lii4Lie4Lix4LiZ4LiY4LiZ4LmMCivguIHguLLguKLguKDguLLguJ4KK+C4geC4suC4ouC4oOC4suC4nuC4muC4s+C4muC4seC4lAor4LiB4Liy4Lii4Lin4Li04Lig4Liy4LiE4Lio4Liy4Liq4LiV4Lij4LmMCivguIHguLLguKLguKrguLTguJfguJjguLTguYwKK+C4geC4suC4ouC4suC4nuC4ouC4ngor4LiB4Liy4Lii4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguIHguLLguYDguKLguJkKK+C4geC4suC5gOC4ouC4meC4l+C4o+C4teC4ouC5jAor4LiB4Liy4LijCivguIHguLLguKPguIEKK+C4geC4suC4o+C4geC4peC4seC5iOC4meC4l+C4s+C4peC4suC4ogor4LiB4Liy4Lij4LiC4LiZ4Liq4LmI4LiH4Lih4Lin4Lil4LiK4LiZCivguIHguLLguKPguITguKPguLHguKcKK+C4geC4suC4o+C4hOC4peC4seC4hwor4LiB4Liy4Lij4LmA4LiH4Li04LiZCivguIHguLLguKPguIjguKMKK+C4geC4suC4o+C4k+C5jAor4LiB4Liy4Lij4LiV4LmI4Liy4LiH4Lib4Lij4Liw4LmA4LiX4LioCivguIHguLLguKPguYzguJXguLnguJkKK+C4geC4suC4o+C5gOC4lQor4LiB4Liy4Lij4LiZ4LizCivguIHguLLguKPguJrguYnguLLguJkKK+C4geC4suC4o+C4muC5ieC4suC4meC4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4LiB4Liy4Lij4Lia4Li44LmA4Lij4Li14Lii4LiZCivguIHguLLguKPguJrguLnguKMKK+C4geC4suC4o+C4muC4ueC4o+C4m+C5iOC4sgor4LiB4Liy4Lij4LmA4Lib4Lij4Li14Lii4LiNCivguIHguLLguKPguYHguJzguYjguKPguLHguIfguKrguLUKK+C4geC4suC4o+C4nuC4sgor4LiB4Liy4Lij4LmA4Lih4Li34Lit4LiHCivguIHguLLguKPguKLguYwKK+C4geC4suC4o+C5gOC4o+C4t+C4reC4mQor4LiB4Liy4Lij4Lil4Liw4LmA4Lil4LmI4LiZCivguIHguLLguKPguKfguLTguIEKK+C4geC4suC4o+C5gOC4p+C4gQor4LiB4Liy4Lij4Liw4LmA4LiB4LiUCivguIHguLLguKPguLDguJrguLjguKvguJnguLTguIcKK+C4geC4suC4o+C4seC4k+C4ouC5jAor4LiB4Liy4Lij4Lix4LiZ4LiV4LmMCivguIHguLLguKPguLLguIfguKvguLHguKfguILguKfguLLguJkKK+C4geC4suC4o+C4tOC4leC4geC4suC4o+C4gQor4LiB4Liy4Lij4Li04LiV4Lin4Liy4LiI4LiBCivguIHguLLguKPguLjguI0KK+C4geC4suC4o+C4uOC4k+C4ouC5jAor4LiB4Liy4LmA4Lij4LiB4Liy4Lij4LmI4Lit4LiZCivguIHguLLguYDguKPguLXguKLguJkKK+C4geC4suC5gOC4o+C4teC4ouC4meC4l+C4reC4hwor4LiB4Liy4LilCivguIHguLLguKUtCivguIHguLLguKXguIHguKPguKPguJPguLUKK+C4geC4suC4peC4geC4tOC4k+C4tQor4LiB4Liy4Lil4LiB4Li04Lij4Li04Lii4LiyCivguIHguLLguKXguIjguLHguIHguKMKK+C4geC4suC4peC5gOC4l+C4qOC4sAor4LiB4Liy4Lil4LmC4Lii4LiECivguIHguLLguKXguKrguKHguLjguJXguJbguLLguJkKK+C4geC4suC4peC4seC4geC4meC5ieC4swor4LiB4Liy4Lil4Lix4LiN4LiN4Li44LiV4LiyCivguIHguLLguKXguLHguI3guI3guLkKK+C4geC4suC4peC4seC4lAor4LiB4Liy4Lil4Liy4LiZ4Li44LiB4Liy4LilCivguIHguLLguKXguLTguIEKK+C4geC4suC4peC4tQor4LiB4Liy4LmB4Lil4LmH4LiB4LiL4Li1CivguIHguLLguYHguKXguYfguIHguYLguJfguKoKK+C4geC4suC4pwor4LiB4LmJ4Liy4LinCivguIHguYnguLLguKfguIHguYjguLLguKIKK+C4geC5ieC4suC4p+C5gOC4ieC4teC4ouC4hwor4LiB4LmJ4Liy4Lin4Lij4LmJ4Liy4LinCivguIHguYnguLLguKfguKXguYjguKfguIcKK+C4geC4suC4p+C4p+C4suC4pwor4LiB4LmJ4Liy4Lin4Lir4LiZ4LmJ4LiyCivguIHguLLguKfguLLguIcKK+C4geC4suC5gOC4p+C4teC4ouC4mQor4LiB4Liy4LmB4Lin4LiZCivguIHguLLguKjguLTguIEKK+C4geC4suC4qOC4tOC4gS0KK+C4geC4suC4qOC4tOC4geC4nuC4seC4quC4leC4o+C5jAor4LiB4Liy4Lip4LiQ4LiwCivguIHguLLguKnguLIKK+C4geC4suC4quC4owor4LiB4Liy4Liq4LiwCivguIHguLLguKrguLHguIEKK+C4geC4suC4quC4sgor4LiB4Liy4Liq4Liy4Lih4Lib4Li14LiBCivguIHguLLguKrguLLguKMKK+C4geC4suC4quC4suC4py0KK+C4geC4suC4quC4suC4p+C4nuC4seC4quC4leC4o+C5jAor4LiB4Liy4Liq4Liy4Lin4LiwCivguIHguLLguKrguLTguYLguJkKK+C4geC4suC4q+C4pQor4LiB4Liy4Lir4Lil4LiHCivguIHguLLguKvguKXguIfguKPguLHguIcKK+C4geC4suC4q+C4peC4sgor4LiB4Liy4Lir4Lix4LiBCivguIHguLLguYDguKvguKfguYjguLIKK+C4geC4suC5hOC4q+C4peC5iAor4LiB4Liy4LisCivguIHguLLguKwtCivguIHguLLguKzguIjguLHguIHguKMKK+C4geC4suC4rOC4m+C4seC4geC4qeC5jAor4LiB4Liy4Lis4Lib4Lix4LiB4Lip4Li1CivguIHguLLguKzguJ7guKTguIHguKnguYwKK+C4geC4suC4rOC5guC4o+C4hAor4LiB4Liy4Lis4Lin4Liy4LiVCivguIHguLLguKzguLLguKfguIEKK+C4geC4suC4ruC4seC4hwor4LiB4LizCivguIHguYjguLMKK+C4geC5ieC4swor4LiB4Liz4LiB4Lin4LihCivguIHguLPguIHguLHguJQKK+C4geC4s+C4geC4seC4mgor4LiB4LmJ4Liz4LiB4Li24LmI4LiHCivguIHguLPguIHguLnguJkKK+C4geC4s+C5gOC4geC4o+C4teC4ouC4gQor4LiB4LmJ4Liz4LmA4LiB4Li04LiZCivguIHguLPguYDguIHguLXguKLguIcKK+C4geC4s+C4guC4teC5ieC4lOC4teC4geC4p+C5iOC4suC4geC4s+C4leC4lAor4LiB4Liz4LiE4Li54LiZCivguIHguYjguLPguYDguITguLfguK0KK+C4geC4s+C4iOC4owor4LiB4Liz4LiI4Lix4LiUCivguIHguLPguIjguLLguKIKK+C4geC4s+C4iuC4seC4mgor4LiB4Liz4LiK4Lix4Lia4LiB4Liz4LiK4LiyCivguIHguLPguIrguLMKK+C4geC4s+C5guC4iuC4gQor4LiB4Liz4LiL4Liy4LiaCivguIHguLPguIvguLMKK+C4geC4s+C4lOC5ieC4mQor4LiB4Liz4LiU4Lix4LiUCivguIHguLPguJTguLLguKUKK+C4geC4s+C5gOC4lOC4sgor4LiB4Liz4LmA4LiU4Liy4LiwCivguIHguYjguLPguJXguYnguJkKK+C4geC4s+C4leC4seC4lAor4LiB4Liz4LiV4Liy4LiBCivguIHguLPguJbguLHguYjguKcKK+C4geC4s+C4l+C4p+C4mQor4LiB4Liz4LiY4LijCivguIHguLPguJnguKUKK+C4geC4s+C4meC4seC4lAor4LiB4Liz4LiZ4Lix4LiZCivguIHguLPguJnguLHguKUKK+C4geC4s+C5gOC4meC4tOC4lAor4LiB4Liz4LmA4LiZ4Li14Lii4LiICivguIHguLPguJrguJQKK+C4geC4s+C4muC4mQor4LiB4Liz4Lia4Lix4LiHCivguIHguLPguJrguLHguJQKK+C4geC4s+C4muC4tOC4lAor4LiB4LmI4Liz4Lia4Li24LmJ4LiHCivguIHguLPguYDguJrguYnguK0KK+C4geC4s+C5guC4muC4pQor4LiB4Liz4Lib4LitCivguIHguLPguJvguLHguYjguJkKK+C4geC4s+C4m+C4seC5ieC4mQor4LiB4Liz4Lic4Lil4LiyCivguIHguLPguJ7guIcKK+C4geC4s+C4nuC4lAor4LiB4Liz4Lie4LiVCivguIHguLPguJ7guKPguYnguLIKK+C4geC4s+C4nuC4o+C4suC4gQor4LiB4Liz4Lie4Lin4LiUCivguIHguLPguJ7guK3guIcKK+C4geC4s+C4nuC4t+C4lAor4LiB4Liz4Lie4Li44LiUCivguIHguLPguJ7guLkKK+C4geC4s+C5gOC4nuC4peC4tOC4hwor4LiB4Liz4LmB4Lie4LiHCivguIHguLPguYHguJ7guYnguIcKK+C4geC4s+C5geC4nuC4h+C5geC4geC5ieC4pwor4LiB4Liz4LmB4Lie4LiH4LiC4Liy4LinCivguIHguLPguYHguJ7guIfguYDguILguKLguYjguIcKK+C4geC4s+C5geC4nuC4h+C5gOC4iOC5h+C4lOC4iuC4seC5ieC4mQor4LiB4Liz4LmB4Lie4LiH4Lih4Li14Lir4Li54Lib4Lij4Liw4LiV4Li54Lih4Li14LiK4LmI4Lit4LiHCivguIHguLPguYHguJ7guIfguKHguLXguKvguLnguJvguKPguLDguJXguLnguKHguLXguJXguLIKK+C4geC4s+C5geC4nuC4h+C5gOC4qOC4teC4ouC4owor4LiB4Liz4Lig4Li5CivguIHguLPguKEKK+C4geC4s+C4oeC4nuC4pOC4geC4qeC5jAor4LiB4Liz4Lih4Lil4Liy4Lio4LiZ4LmMCivguIHguLPguKHguYDguKXguKgKK+C4geC4s+C4oeC4sOC4luC4seC4mQor4LiB4Liz4Lih4Liw4Lil4LitCivguIHguLPguKHguLDguKvguKLguLXguYgKK+C4geC4s+C4oeC4sOC4q+C4o+C4tOC4lAor4LiB4Liz4Lih4Lix4LiH4Lil4Liw4LiB4Liy4LijCivguIHguLPguKHguLHguIfguKfguLTguKXguLTguJUKK+C4geC4s+C4oeC4seC4iuC4nuC4pQor4LiB4Liz4Lih4LiyCivguIHguLPguKHguLfguK0KK+C4geC4s+C4ouC4suC4mQor4LiB4Liz4Lii4LizCivguIHguLPguKPguK0KK+C4geC4s+C4o+C4suC4gQor4LiB4Liz4Lij4Liy4LiaCivguIHguLPguKPguLLguKUKK+C4geC4s+C4o+C4uQor4LiB4Liz4LmA4Lij4Li04LiaCivguIHguLPguYDguKPguLTguJrguYDguKrguLTguJrguKrguLLguJkKK+C4geC4s+C5hOC4owor4LiB4Liz4Lil4Lit4LiHCivguIHguLPguKXguLHguIcKK+C4geC4s+C4peC4seC4h+C4geC4tOC4mQor4LiB4Liz4Lil4Lix4LiH4LiB4Li04LiZ4LiB4Liz4Lil4Lix4LiH4LiZ4Lit4LiZCivguIHguLPguKXguLHguIfguYPguIgKK+C4geC4s+C4peC4seC4h+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiB4Liz4Lil4Lix4LiH4LiK4LmJ4Liy4LiH4Liq4Liy4LijCivguIHguLPguKXguLHguIfguJTguLUKK+C4geC4s+C4peC4seC4h+C5gOC4l+C4teC4ouC4mQor4LiB4Liz4Lil4Lix4LiH4Lig4Liy4Lii4LmD4LiZCivguIHguLPguKXguLHguIfguKHguYnguLIKK+C4geC4s+C4peC4seC4h+C4p+C4seC4h+C4iuC4sgor4LiB4Liz4Lil4Lix4LiH4Lin4Lix4Lin4LmA4LiW4Lil4Li04LiHCivguIHguLPguKXguLjguIcKK+C4geC4s+C4peC4ueC4mQor4LiB4Liz4LmA4Lil4LiyCivguIHguLPguYDguKXguLLguLAKK+C4geC4s+C5hOC4pQor4LiB4Liz4LmE4Lil4LiE4Li54LmI4Lic4Li1CivguIHguLPguKrguKPguJQKK+C4geC4s+C4quC4o+C4p+C4pQor4LiB4Liz4LmA4Liq4Liy4LiwCivguIHguLPguYHguKrguIcKK+C4geC4s+C4q+C4meC4lAor4LiB4Liz4Lir4LiZ4LiU4LiB4Liy4LijCivguIHguLPguKvguJnguLHguJQKK+C4geC4s+C4q+C4oeC4seC4lAor4LiB4Liz4Lir4Lij4Liy4LiBCivguIHguLPguYDguKvguJnguYfguIgKK+C4geC4s+C5geC4q+C4hwor4LiB4Li04LiBCivguIHguLTguYrguIEKK+C4geC4tOC5iOC4hwor4LiB4Li04LmI4LiH4LiB4LmJ4Lit4LiiCivguIHguLTguYnguIfguIHguYjguLIKK+C4geC4tOC5ieC4h+C4geC4t+C4rQor4LiB4Li04LmJ4LiH4LiB4Li34Lit4LmA4Lir4Lil4LmH4LiBCivguIHguLTguYnguIfguYLguITguKPguIcKK+C4geC4tOC5iOC4h+C4l+C4reC4h+C5g+C4muC4q+C4ouC4gQor4LiB4Li04LiH4Lia4Li44Lij4Li44LipCivguIHguLTguYjguIfguKvguLLguKIKK+C4geC4tOC4iAor4LiB4Li04LiILQor4LiB4Li04LiI4LiB4Lij4Lij4LihCivguIHguLTguIjguIHguLLguKMKK+C4geC4tOC4iOC4iOC4sAor4LiB4Li04LiI4LiI4Liw4Lil4Lix4LiB4Lip4LiT4LiwCivguIHguLTguIjguIjguLIKK+C4geC4tOC4iOC4iOC4suC4meC4uOC4geC4tOC4iAor4LiB4Li04LiI4Lin4Lix4LiV4LijCivguIHguLTguJTguLLguIHguLLguKMKK+C4geC4tOC4lOC4suC4q+C4ouC4seC4mQor4LiB4Li04LiV4LiV4Li0CivguIHguLTguJXguJXguLTguIHguKPguKPguKHguJvguKPguLDguIHguLLguKgKK+C4geC4tOC4leC4leC4tOC4hOC4uOC4kwor4LiB4Li04LiV4LiV4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMCivguIHguLTguJXguJXguLTguKjguLHguJ7guJfguYwKK+C4geC4tOC4mQor4LiB4Li04LiZ4LiB4Lij4Li04LiaCivguIHguLTguJnguIHguLHguJkKK+C4geC4tOC4meC4geC4s+C5hOC4owor4LiB4Li04LiZ4LmA4LiB4Lil4Li14Lii4LinCivguIHguLTguJnguYDguIHguKXguLfguK3guIHguLTguJnguIHguLDguJvguLQKK+C4geC4tOC4meC5geC4geC4peC4muC4geC4tOC4meC4o+C4swor4LiB4Li04LiZ4LiC4Lin4LiyCivguIHguLTguJnguILguLLguJQKK+C4geC4tOC4meC5geC4guC4gQor4LiB4Li04LiZ4LiE4Lin4Liy4LihCivguIHguLTguJnguYDguITguKPguLIKK+C4geC4tOC4meC5gOC4iAor4LiB4Li04LiZ4LmB4LiICivguIHguLTguJnguYPguIgKK+C4geC4tOC4meC4iuC5ieC4reC4mQor4LiB4Li04LiZ4LiK4Lix4LiZCivguIHguLTguJnguIvguYnguLLguKIKK+C4geC4tOC4meC4lOC4reC4gQor4LiB4Li04LiZ4LiU4Lit4LiB4LmA4Lia4Li14LmJ4LiiCivguIHguLTguJnguJTguK3guIcKK+C4geC4tOC4meC4lOC5iOC4suC4hwor4LiB4Li04LiZ4LiU4Liy4LiiCivguIHguLTguJnguJTguLTguJoKK+C4geC4tOC4meC4leC4sOC5gOC4geC4teC4ouC4mgor4LiB4Li04LiZ4LiV4Lix4LinCivguIHguLTguJnguJXguLIKK+C4geC4tOC4meC4leC4s+C5geC4q+C4meC5iOC4hwor4LiB4Li04LiZ4LmC4LiV4LmK4LiwCivguIHguLTguJnguYHguJbguKcKK+C4geC4tOC4meC4l+C4suC4hwor4LiB4Li04LiZ4LiX4Li14LmICivguIHguLTguJnguJfguLXguYjguKXguLHguJrguYTguILguJfguLXguYjguYHguIjguYnguIcKK+C4geC4tOC4meC4meC4owor4LiB4Li04LiZ4LiZ4Lij4LmA4LiB4LmH4Lia4Lia4Lix4LinCivguIHguLTguJnguJnguKPguJ/guYnguK3guJnguYLguK3guYgKK+C4geC4tOC4meC4meC4o+C4o+C4swor4LiB4Li04LiZ4LiZ4Lij4LmA4Lil4Li14Lii4Lia4LiW4LmJ4LizCivguIHguLTguJnguJnguK3guIHguIHguLTguJnguYPguJkKK+C4geC4tOC4meC4meC4reC4mQor4LiB4Li04LiZ4LiZ4LmJ4LizCivguIHguLTguJnguJnguYnguLPguJXguLIKK+C4geC4tOC4meC4meC5ieC4s+C5g+C4leC5ieC4qOC4reC4gQor4LiB4Li04LiZ4LiZ4LmJ4Liz4Lie4Lij4Li04LiB4LiW4LmJ4Lin4Lii4LmA4LiU4Li14Lii4LinCivguIHguLTguJnguJnguYnguLPguYTguKHguYjguYDguJzguLfguYjguK3guYHguKXguYnguIcKK+C4geC4tOC4meC4meC5ieC4s+C5gOC4q+C5h+C4meC4m+C4peC4tOC4hwor4LiB4Li04LiZ4LmD4LiZCivguIHguLTguJnguJrguJnguYDguKPguLfguK3guJnguILguLXguYnguJrguJnguKvguKXguLHguIfguITguLIKK+C4geC4tOC4meC4muC4p+C4igor4LiB4Li04LiZ4Lia4LmJ4Liy4LiZ4LiB4Li04LiZ4LmA4Lih4Li34Lit4LiHCivguIHguLTguJnguJrguLjguI0KK+C4geC4tOC4meC4muC4uOC4jeC5gOC4geC5iOC4sgor4LiB4Li04LiZ4LmB4Lia4LmI4LiHCivguIHguLTguJnguJvguKXguLTguIcKK+C4geC4tOC4meC4m+C4peC4tQor4LiB4Li04LiZ4Lib4Li54LiZ4Lij4LmJ4Lit4LiZ4LiX4LmJ4Lit4LiHCivguIHguLTguJnguYDguJvguKXguYjguLIKK+C4geC4tOC4meC5gOC4m+C4teC5ieC4ouC4pwor4LiB4Li04LiZ4Lic4Lix4LinCivguIHguLTguJnguYDguJ7guKPguLIKK+C4geC4tOC4meC4oeC4t+C4rQor4LiB4Li04LiZ4LmA4Lih4Li14LiiCivguIHguLTguJnguYDguKHguLfguK3guIcKK+C4geC4tOC4meC5hOC4oeC5iOC4peC4hwor4LiB4Li04LiZ4Lij4Lix4LiH4LmB4LiV4LiZCivguIHguLTguJnguKPguLTguJkKK+C4geC4tOC4meC4o+C4tQor4LiB4Li04LiZ4Lij4Li54LibCivguIHguLTguJnguYHguKPguIcKK+C4geC4tOC4meC4peC4oQor4LiB4Li04LiZ4Lil4Lih4LiB4Li04LiZ4LmB4Lil4LmJ4LiHCivguIHguLTguJnguKXguYnguLLguIfguIHguLTguJnguJzguKXguLLguI0KK+C4geC4tOC4meC4peC4tuC4gQor4LiB4Li04LiZ4LmA4Lin4Lil4LiyCivguIHguLTguJnguYDguKjguKnguIHguLTguJnguYDguKXguKIKK+C4geC4tOC4meC4quC5ieC4reC4oQor4LiB4Li04LiZ4Liq4Lix4LmI4LiHCivguIHguLTguJnguKrguLPguKPguLHguJoKK+C4geC4tOC4meC4quC4teC5iOC4luC5ieC4p+C4ogor4LiB4Li04LiZ4LmA4Liq4LmJ4LiZCivguIHguLTguJnguKvguJnguYnguLIKK+C4geC4tOC4meC4q+C4peC4seC4hwor4LiB4Li04LiZ4Lir4Liy4LiHCivguIHguLTguJnguKvguLnguYkKK+C4geC4tOC4meC5gOC4q+C4oeC4t+C4reC4meC4q+C4oeC4uSDguK3guKLguLnguYjguYDguKvguKHguLfguK3guJnguKvguKHguLIKK+C4geC4tOC4meC5gOC4q+C4peC5h+C4geC4geC4tOC4meC5hOC4q+C4pQor4LiB4Li04LiZ4LmB4Lir4LiZ4LiHCivguIHguLTguJnguK3guKLguLnguYjguIHguLHguJrguJvguLLguIEg4Lit4Lii4Liy4LiB4Lit4Lii4Li54LmI4LiB4Lix4Lia4LiX4LmJ4Lit4LiHCivguIHguLTguJnguK3guKLguLnguYjguJ7guLnguKfguLLguKIKK+C4geC4tOC5iuC4mgor4LiB4Li04Lih4LiV4Li24LmL4LiHCivguIHguLTguKHguLTguIrguLLguJXguLQKK+C4geC4tOC4oeC4tOC4p+C4tOC4l+C4ouC4sgor4LiB4Li04LmC4Lih4LmC4LiZCivguIHguLTguYLguKLguJXguLXguJkKK+C4geC4tOC4o+C4sAor4LiB4Li04Lij4Li04LiT4Li1CivguIHguLTguKPguLTguJnguJcKK+C4geC4tOC4o+C4tOC5gOC4meC4qOC4p+C4owor4LiB4Li04Lij4Li04Lii4LiyCivguIHguLTguKPguLTguKLguLLguKrguLDguJfguYnguK3guJkKK+C4geC4tOC5gOC4peC4mQor4LiB4Li04LmA4Lil4LiqCivguIHguLTguYDguKXguKotCivguIHguLTguYDguKXguKrguKHguLLguKMKK+C4geC4tOC5guC4pQor4LiB4Li04LmC4LilLQor4LiB4Li04LmC4Lil4LiB4Lij4Lix4LihCivguIHguLTguYLguKXguYTguIvguYDguIHguLTguKUKK+C4geC4tOC5guC4peC4oeC4geC4sAor4LiB4Li04LmC4Lil4LmA4Lih4LiV4LijCivguIHguLTguYLguKXguKXguLTguJXguKMKK+C4geC4tOC5guC4peC5gOC4ruC4tOC4o+C4leC4i+C5jAor4LiB4Li04LmI4LinCivguIHguLTguYvguKcKK+C4geC4tOC5i+C4p+C5hgor4LiB4Li1CivguIHguLXguYgKK+C4geC4teC5iQor4LiB4Li14LmLCivguIHguLXguYjguIHguKPguLDguJXguLjguIEKK+C4geC4teC4jy0KK+C4geC4teC4j+C4p+C4tOC4l+C4ouC4sgor4LiB4Li14LiUCivguIHguLXguJTguIHguLHguJkKK+C4geC4teC4lOC4geC4seC5ieC4mQor4LiB4Li14LiU4LiC4Lin4Liy4LiHCivguIHguLXguJTguKvguJnguYnguLLguILguKfguLLguIfguJXguLIKK+C4geC4teC4leC4suC4o+C5jAor4LiB4Li14LiaCivguIHguLXguJrguYHguKPguJQKK+C4geC4teC5iOC4oeC4suC4geC4meC5ieC4reC4ogor4LiB4Li14Lij4LiV4Li0CivguIHguLXguKzguLIKK+C4geC4tuC4gQor4LiB4Li24LiB4LiB4LmJ4Lit4LiHCivguIHguLbguIHguIHguLHguIEKK+C4geC4tuC4geC4geC4t+C4rQor4LiB4Li24LiB4LiW4Lit4LiHCivguIHguLbguIcKK+C4geC4tuC5iOC4hwor4LiB4Li24LmI4LiH4LiB4Lil4Liy4LiHCivguIHguLbguIfguIHguLHguIcKK+C4geC4tuC5iOC4h+C4o+C4suC4iuC4geC4suC4owor4LiB4Li24LmL4LiZCivguIHguLgKK+C4geC4uOC4gQor4LiB4Li44LmK4LiBCivguIHguLjguIHguIHguLHguIEKK+C4geC4uOC4geC5hiDguIHguLHguIHguYYKK+C4geC4uOC5iuC4geC4geC4tOC5iuC4gQor4LiB4Li44LmK4LiB4LmGIOC4geC4tOC5iuC4geC5hgor4LiB4Li44LiB4LiB4Li44LiPLQor4LiB4Li44LiB4LiB4Li44LijLQor4LiB4Li44LiB4LiC4Li14LmJ4Lir4Lih4Li5CivguIHguLjguIHguKPguKPguKEKK+C4geC4uOC4geC5iOC4reC4hwor4LiB4Li44LiB4LiwCivguIHguLjguIHguLDguKHguLDguYDguJfguLTguYjguIcKK+C4geC4uOC4geC4uOC4mOC4oOC4seC4k+C4keC5jAor4LiB4Li44LmJ4LiHCivguIHguLjguYnguIfguJTguLXguJQKK+C4geC4uOC5ieC4h+C4lOC4teC4lOC4guC4seC4mQor4LiB4Li44LmJ4LiH4LmA4LiV4LmJ4LiZCivguIHguLjguYnguIfguJnguLLguIcKK+C4geC4uOC5ieC4h+C4neC4reC4ogor4LiB4Li44LmJ4LiH4Lif4Lix4LiUCivguIHguLjguYnguIfguKHguLHguIfguIHguKMKK+C4geC4uOC5ieC4h+C5hOC4oeC5iQor4LiB4Li44LmJ4LiH4Lii4Li04LiHCivguIHguLjguYnguIfguKrguYnguKEKK+C4geC4uOC5ieC4h+C4q+C4meC4suC4oeC5g+C4q+C4jeC5iAor4LiB4Li44LmJ4LiH4Lir4Lil4Lin4LiHCivguIHguLjguYnguIfguYDguKvguKXguLfguK3guIcKK+C4geC4uOC5ieC4h+C5geC4qwor4LiB4Li44LmJ4LiH4LmB4Lir4LmJ4LiHCivguIHguLjguIfguK3guJkKK+C4geC4uOC4h+C4suC4mQor4LiB4Li44LmC4LiH4LiBCivguIHguLjguIjguLUKK+C4geC4uOC4jeC5geC4iAor4LiB4Li44LiN4LmB4LiI4LiB4LilCivguIHguLjguI3guYHguIjguJvguKPguLDguIjguLPguKvguKXguLHguIEKK+C4geC4uOC4jeC5geC4iOC4m+C4suC4geC4leC4suC4ogor4LiB4Li44LiN4LmB4LiI4Lic4Li1CivguIHguLjguI3guYHguIjguKHguLfguK0KK+C4geC4uOC4jeC5geC4iOC4o+C4q+C4seC4qgor4LiB4Li44LiN4LmB4LiI4LmA4Lil4Li34LmI4Lit4LiZCivguIHguLjguI3guYHguIjguYDguKrguLXguKLguIcKK+C4geC4uOC4jeC5geC4iOC5geC4q+C4p+C4mQor4LiB4Li44LiN4LiK4LijCivguIHguLjguI4KK+C4geC4uOC4juC4sgor4LiB4Li44LiO4Liy4LiE4Liy4LijCivguIHguLjguI7guLLguJjguLLguKMKK+C4geC4uOC4juC4tQor4LiB4Li44LiO4Li44Lih4Lie4Li1CivguIHguLjguI/guJDguLHguIcKK+C4geC4uOC4j+C5hOC4lQor4LiB4Li44LiP4Li0CivguIHguLjguJPguJHguYwKK+C4geC4uOC4k+C4keC4pQor4LiB4Li44LiT4LiR4Li1CivguIHguLjguJPguYLguJEKK+C4geC4uOC4k+C4suC4pQor4LiB4Li44LiT4Li0CivguIHguLjguJPguLUKK+C4geC4uOC4lAor4LiB4Li44LiU4Lix4LiHCivguIHguLjguJTguLHguYjguJkKK+C4geC4uOC4lOC4sgor4LiB4Li44LiX4Lix4LiT4LiR4LmMCivguIHguLjguJkKK+C4geC4uOC5iuC4mQor4LiB4Li44LiZ4LmA4LiK4Li14Lii4LiHCivguIHguLjguJnguJfguLUKK+C4geC4uOC5guC4meC4geC4suC4oeC4rQor4LiB4Li44LiaCivguIHguLjguJrguIHguLHguJoKK+C4geC4uOC4oQor4LiB4Li44LmI4LihCivguIHguLjguKHguJ3guK3guKIKK+C4geC4uOC4oeC4oC0KK+C4geC4uOC4oeC4oOC5jAor4LiB4Li44Lih4Lig4LiB4Liy4LijCivguIHguLjguKHguKDguJnguLTguKLguLIKK+C4geC4uOC4oeC4oOC4seC4k+C4kS0KK+C4geC4uOC4oeC4oOC4seC4k+C4keC5jAor4LiB4Li44Lih4Lig4Lix4LiT4LiR4Lii4Lix4LiB4Lip4LmMCivguIHguLjguKHguKDguLIKK+C4geC4uOC4oeC4oOC4suC4nuC4seC4meC4mOC5jAor4LiB4Li44Lih4Lig4Li04LilCivguIHguLjguKHguKDguLXguKXguYwKK+C4geC4uOC4oeC4peC4seC4hOC4meC5jAor4LiB4Li44Lih4LmA4Lir4LiHCivguIHguLjguKHguLLguKMKK+C4geC4uOC4oeC4suC4o+C4peC4rOC4tOC4leC4sgor4LiB4Li44Lih4Liy4Lij4LiyCivguIHguLjguKHguLLguKPguLUKK+C4geC4uOC4oeC4uOC4lwor4LiB4Li44LiiCivguIHguLjguYrguKIKK+C4geC4uOC5i+C4ogor4LiB4Li44LmL4Lii4LmGCivguIHguLjguKLguIrguYjguLLguKIKK+C4geC4uOC4ouC5gOC4ruC4hwor4LiB4Li44Lij4LijCivguIHguLjguKPguLAKK+C4geC4uOC4o+C4uOC4hwor4LiB4Li44Lij4Li44Lie4Li04LiZ4LiX4LmMCivguIHguLjguKPguLjguKMKK+C4geC4uOC5gOC4o+C4sgor4LiB4Li44LilCivguIHguLjguKUtCivguIHguLjguKXguJfguLnguKrguIEKK+C4geC4uOC4peC4mOC4tOC4lOC4sgor4LiB4Li44Lil4Lia4LiU4Li1CivguIHguLjguKXguJrguLjguJXguKMKK+C4geC4uOC4peC4quC4leC4o+C4tQor4LiB4Li44Lil4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguIHguLjguKXguLIKK+C4geC4uOC4peC4suC4i+C5iOC4reC4meC4nOC5ieC4sgor4LiB4Li44Lil4Liy4LiU4LizCivguIHguLjguKXguLLguJXguLXguYTguKHguYkKK+C4geC4uOC4peC4suC4leC4teC4reC4gQor4LiB4Li44Lil4Liy4Lil4Liy4LiiCivguIHguLjguKXguLLguKvguKUKK+C4geC4uOC4peC4tQor4LiB4Li44Lil4Li14LiB4Li44LiI4LitCivguIHguLjguYDguKXguLIKK+C4geC4uOC5geC4pQor4LiB4Li44LmA4Lin4LijCivguIHguLjguKjguKPguLLguIoKK+C4geC4uOC4qOC4pQor4LiB4Li44Lio4Lil4LiB4Lij4Lij4Lih4Lia4LiWCivguIHguLjguKjguYLguKXguJrguLLguKIKK+C4geC4uOC4quC4pQor4LiB4Li44Liq4Li44LihCivguIHguLjguKrguLjguKEtCivguIHguLjguKrguLjguKHguKDguYwKK+C4geC4uOC4quC4uOC4oeC4p+C4tOC4iOC4tOC4leC4owor4LiB4Li44Liq4Li44Lih4LiyCivguIHguLjguKrguLjguKHguLLguKXguKLguYwKK+C4geC4uOC4quC4uOC4oeC4tOC4leC4peC4lOC4suC5gOC4p+C4peC4peC4tOC4leC4sgor4LiB4Li44Lir4LiZ4Li1CivguIHguLjguKvguJnguLjguIcKK+C4geC4uOC4q+C4o+C5iOC4sgor4LiB4Li44Lir4Lil4LmI4LiyCivguIHguLjguKvguKXguLLguJoKK+C4geC4uOC5geC4q+C4peC4sAor4LiB4Li5CivguIHguLnguYgKK+C4geC4ueC5iQor4LiB4Li54LmK4LiBCivguIHguLnguI8KK+C4geC4ueC4j+C4sgor4LiB4Li54LiP4Liy4LiE4Liy4LijCivguIHguLnguJPguJHguYwKK+C4geC4ueC4lAor4LiB4Li54LiZCivguIHguLnguJoKK+C4geC4ueC4m+C4o+C4tQor4LiB4Li54LmJ4Lig4Lix4LiiCivguIHguLnguYjguYTguKHguYjguIHguKXguLHguJoKK+C4geC4ueC5ieC4ouC4t+C4oQor4LiB4Li54Lij4LihLQor4LiB4Li54Lij4Lih4LiwCivguIHguLnguKPguKHguLLguKfguJXguLLguKMKK+C4geC4ueC4o+C4swor4LiB4Li54LmJ4Lir4LiZ4LmJ4LiyCivguYDguIEKK+C5gOC4geC5iAor4LmA4LiB4LmKCivguYDguIHguYsKK+C5gOC4geC4gQor4LmA4LiB4LmK4LiBCivguYDguIHguIHguKHguLDguYDguKvguKPguIEKK+C5gOC4geC5iuC4geC4q+C4meC5ieC4sgor4LmA4LiB4LmK4LiB4Liu4Lin4LiiCivguYDguIHguYnguIHguLHguIcKK+C5gOC4geC5ieC5hiDguIHguLHguIfguYYKK+C5gOC4geC5h+C4hwor4LmA4LiB4LmI4LiHCivguYDguIHguYnguIcKK+C5gOC4geC5i+C4hworLeC5gOC4geC4h+C4geC4reC4ogor4LmA4LiB4LmJ4LiH4LiB4LmJ4Liy4LiHCivguYDguIHguYjguIfguIHguLLguIgKK+C5gOC4geC5h+C4h+C4geC4s+C5hOC4owor4LmA4LiB4LiH4LmA4LiC4LiHCivguYDguIHguYvguIfguYDguITguIcKK+C5gOC4geC5iOC4h+C5geC4leC5iOC4m+C4suC4gQor4LmA4LiB4LmL4LiH4Lie4Lix4LmJ4LiHCivguYDguIHguYfguIgKK+C5gOC4geC4iOC4tOC4reC4suC4iOC4suC4o+C4ouC5jAor4LmA4LiB4LiK4LiyCivguYDguIHguJPguJHguYwKK+C5gOC4geC4k+C4keC5jOC4leC4sOC4nuC4seC4lAor4LmA4LiB4LiT4LiR4LmM4LmA4Lih4Li34Lit4LiH4Lij4Lix4LmJ4LiHCivguYDguIHguJPguJHguYzguKvguLHguJQKK+C5gOC4geC4lAor4LmA4LiB4LmH4LiUCivguYDguIHguJXguLgKK+C5gOC4geC4leC4uC0KK+C5gOC4geC4leC4uOC4oeC4suC4peC4sgor4LmA4LiB4LiZCivguYDguIHguJnguYYKK+C5gOC4geC5iOC4mQor4LmA4LiB4LmH4LiaCivguYDguIHguYfguJrguYDguIHguLXguYjguKLguKcKK+C5gOC4geC5h+C4muC4guC5ieC4suC4pwor4LmA4LiB4LmH4Lia4LiC4LmJ4Liy4Lin4LiV4LiBCivguYDguIHguYfguJrguITguKfguLLguKEKK+C5gOC4geC5h+C4muC4h+C4swor4LmA4LiB4LmH4Lia4LiV4LiBCivguYDguIHguYfguJrguJXguLHguKcKK+C5gOC4geC5h+C4muC5gOC4meC4t+C5ieC4reC5gOC4geC5h+C4muC4leC4seC4pwor4LmA4LiB4LmH4Lia4LmA4Lia4Li14LmJ4Lii4LmD4LiV4LmJ4LiW4Li44LiZ4Lij4LmJ4Liy4LiZCivguYDguIHguYfguJrguJzguKEKK+C5gOC4geC5h+C4muC5hOC4owor4LmA4LiB4LmH4Lia4LmA4Lil4LmH4LiB4Lic4Liq4Lih4LiZ4LmJ4Lit4LiiCivguYDguIHguYfguJrguYDguKXguYfguKEKK+C5gOC4geC5h+C4muC5gOC4peC5iOC4oQor4LmA4LiB4LmH4Lia4Liq4Li1CivguYDguIHguYfguJrguKvguJnguYnguLLguJzguYnguLIKK+C5gOC4geC5h+C4muC4q+C4reC4oeC4o+C4reC4oeC4o+C4tOC4mgor4LmA4LiB4LihCivguYDguIHguKIKK+C5gOC4geC4ouC4peC4sgor4LmA4LiB4Lii4LmB4Lir4LmJ4LiHCivguYDguIHguKLguLnguKMKK+C5gOC4geC4o+C4hwor4LmA4LiB4Lij4LmH4LiHCivguYDguIHguKPguIfguILguLLguKEKK+C5gOC4geC4o+C4h+C5g+C4iAor4LmA4LiB4Lij4LiH4Lit4LiB4LmA4LiB4Lij4LiH4LmD4LiICivguYDguIHguKPguYfguJQKK+C5gOC4geC4o+C4mQor4LmA4LiB4Lij4LmI4LitCivguYDguIHguKPguK3guLAKK+C5gOC4geC4o+C4reC4sOC4geC4o+C4seC4hwor4LmA4LiB4Lij4Liy4LiwCivguYDguIHguKPguLTguIEKK+C5gOC4geC4o+C4tOC4mQor4LmA4LiB4Lij4Li04LmI4LiZCivguYDguIHguKPguLXguKLguIEKK+C5gOC4geC4o+C4teC4ouC4hwor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijCivguYDguIHguKPguLXguKLguJQKK+C5gOC4geC4o+C4teC4ouC4mQor4LmA4LiB4Lij4Li14Lii4LiaCivguYDguIHguKPguLXguKLguKEKK+C5gOC4geC4o+C4teC4ouC4oeC4geC4o+C4oQor4LmA4LiB4Lij4Li14Lii4LinCivguYDguIHguKPguLXguYnguKLguKcKK+C5gOC4geC4o+C4teC5ieC4ouC4p+C5hgor4LmA4LiB4Lij4Li14LmJ4Lii4Lin4LiB4Lij4Liy4LiUCivguYDguIHguKPguLXguKLguKfguIHguKPguLLguKcKK+C5gOC4geC5gOC4owor4LmA4LiB4LmA4Lij4LmA4LiB4LiV4Li44LiHCivguYDguIHguYDguKPguYDguIHguYDguKoKK+C5gOC4geC4peC5h+C4lAor4LmA4LiB4Lil4LmH4LiU4LiB4Lij4Liw4LiU4Li14LmICivguYDguIHguKXguYfguJTguIHguKPguLDguYLguKvguYkKK+C5gOC4geC4peC5h+C4lOC4guC5ieC4suC4p+C5gOC4oeC5iOC4sgor4LmA4LiB4Lil4LmH4LiU4LiW4Li14LmICivguYDguIHguKXguYfguJTguJnguLLguIQKK+C5gOC4geC4peC5h+C4lOC4m+C4peC4suC4iuC5iOC4reC4mQor4LmA4LiB4Lil4LmH4LiU4Lir4Lit4LiiCivguYDguIHguKXguKgKK+C5gOC4geC4peC4rQor4LmA4LiB4Lil4LiyCivguYDguIHguKXguYnguLIKK+C5gOC4geC4peC5ieC4suC4geC4o+C4sOC4nOC4oQor4LmA4LiB4Lil4LmJ4Liy4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguYDguIHguKXguLLguLAKK+C5gOC4geC4peC4teC5iOC4ogor4LmA4LiB4Lil4Li14LmJ4LiiCivguYDguIHguKXguLXguYnguKLguIHguKXguYjguK3guKEKK+C5gOC4geC4peC4teC5iOC4ouC5hOC4geC4peC5iAor4LmA4LiB4Lil4Li14Lii4LiHCivguYDguIHguKXguLXguYnguKLguIcKK+C5gOC4geC4peC4teC5ieC4ouC4h+C5gOC4geC4peC4sgor4LmA4LiB4Lil4Li14Lii4LiUCivguYDguIHguKXguLXguKLguJTguJXguLHguKfguIHguLTguJnguYTguILguYgKK+C5gOC4geC4peC4teC4ouC4lOC4m+C4peC4suC5hOC4q+C4peC4geC4tOC4meC4meC5ieC4s+C5geC4geC4hwor4LmA4LiB4Lil4Li14Lii4LinCivguYDguIHguKXguLXguKLguKfguIHguKXguKEKK+C5gOC4geC4peC4teC4ouC4p+C4guC5ieC4suC4hwor4LmA4LiB4Lil4Li14Lii4Lin4LiE4LitCivguYDguIHguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4geC4peC4teC4ouC4p+C4q+C4p+C4suC4mQor4LmA4LiB4Lil4Li34LitCivguYDguIHguKXguLfguYnguK0KK+C5gOC4geC4peC4t+C4reC4gQor4LmA4LiB4Lil4Li34Lit4LiB4LiB4Lil4Lix4LmJ4LinCivguYDguIHguKXguLfguK3guIHguIHguKXguLTguYnguIcKK+C5gOC4geC4peC4t+C4reC4geC4o+C4lAor4LmA4LiB4Lil4Li34Lit4LmB4LiB4LiHCivguYDguIHguKXguLfguK3guYDguIfguLTguJkKK+C5gOC4geC4peC4t+C4reC4iOC4tOC5ieC4oeC5gOC4geC4peC4t+C4rQor4LmA4LiB4Lil4Li34Lit4LiI4Li34LiUCivguYDguIHguKXguLfguK3guJTguYjguLLguIcKK+C5gOC4geC4peC4t+C4reC4lOC5iOC4suC4h+C4hOC4peC4tQor4LmA4LiB4Lil4Li34LmI4Lit4LiZCivguYDguIHguKXguLfguYnguK3guJkKK+C5gOC4geC4peC4t+C5iOC4reC4meC4geC4peC5iOC4mQor4LmA4LiB4Lil4Li34LmI4Lit4LiZ4LiB4Lil4Liy4LiUCivguYDguIHguKXguLfguYjguK3guJnguITguKfguLLguKEKK+C5gOC4geC4peC4t+C4reC5gOC4muC4quC4tOC4gQor4LmA4LiB4Lil4Li34Lit4Lib4Lij4LiB4LiV4Li0CivguYDguIHguKXguLfguK3guYDguJvguYfguJnguKvguJnguK3guJkKK+C5gOC4geC4peC4t+C4reC4n+C4reC4hwor4LmA4LiB4Lil4Li34Lit4Lii4Li54LmA4Lij4LiVCivguYDguIHguKXguLfguK3guKrguKHguLjguJfguKMKK+C5gOC4geC4peC4t+C4reC4quC4tOC4meC5gOC4mOC4suC4p+C5jAor4LmA4LiB4LmE4LilCivguYDguIHguKfguLHguI8KK+C5gOC4geC4p+C4teC4ouC4mQor4LmA4LiB4Lin4Li14Lii4LiZ4Lir4Lil4Lin4LiHCivguYDguIHguKgKK+C5gOC4geC4qC0KK+C5gOC4geC4qOC4mOC4suC4leC4uAor4LmA4LiB4Lio4LieCivguYDguIHguKjguKcKK+C5gOC4geC4qOC4sgor4LmA4LiB4Lio4Liy4LiB4Lix4LiZ4LiV4LmMCivguYDguIHguKjguLTguJnguLUKK+C5gOC4geC4qOC4tQor4LmA4LiB4Lip4LiV4LijCivguYDguIHguKnguJXguKPguIHguKMKK+C5gOC4geC4qeC4leC4o+C4geC4o+C4o+C4oQor4LmA4LiB4Lip4LiV4Lij4LmB4Lil4Liw4Liq4Lir4LiB4Lij4LiT4LmMCivguYDguIHguKnguJXguKPguKjguLLguKrguJXguKPguYwKK+C5gOC4geC4qeC4oQor4LmA4LiB4Lip4Lih4Lio4Liy4LiZ4LiV4LmMCivguYDguIHguKnguKHguKrguLHguJnguJXguYwKK+C5gOC4geC4qeC4teC4ouC4kwor4LmA4LiB4Lip4Li14Lii4LiT4Lit4Liy4Lii4Li4CivguYDguIHguKnguLXguKLguJkKK+C5gOC4geC4qeC4teC4ouC4owor4LmA4LiB4Lip4Li14Lii4Lij4Liq4Lih4Li44LiX4LijCivguYDguIHguKoKK+C5gOC4geC4quC4owor4LmA4LiB4Liq4Lij4LiX4Lix4LmJ4LiH4Lir4LmJ4LiyCivguYDguIHguKrguKPguLUKK+C5gOC4geC4quC4sgor4LmA4LiB4Liq4Li1CivguYDguIHguYnguK0KK+C5gOC4geC4reC4tOC4iuC4sgor4LmA4LiB4LiwCivguYDguIHguLDguIHguLAKK+C5gOC4geC4sgor4LmA4LiB4LmI4LiyCivguYDguIHguYnguLIKK+C5gOC4geC5i+C4sgor4LmA4LiB4Liy4LiV4LmMCivguYDguIHguLLguJfguLHguJPguJHguYwKK+C5gOC4geC4suC4l+C4uOC4oeC4nuC4owor4LmA4LiB4Liy4Lia4Li04LiZCivguYDguIHguLLguJrguLTguKUKK+C5gOC4geC4suC4oeC4suC4owor4LmA4LiB4Liy4Lil4Lix4LiUCivguYDguIHguLLguKXguLHguJTguIjguLXguJkKK+C5gOC4geC4suC4peC4tOC4mQor4LmA4LiB4Liy4LmE4Lio4LiiCivguYDguIHguLLguKvguKXguLUKK+C5gOC4geC4suC5gOC4q+C4peC4sgor4LmA4LiB4Liy4LmA4Lir4Lil4Li14Lii4LiHCivguYDguIHguYnguLLguK3guLXguYkKK+C5gOC4geC4suC4sAor4LmA4LiB4Liy4Liw4LiB4Li04LiZCivguYDguIHguLLguLDguYHguIHguLAKK+C5gOC4geC4tOC4hwor4LmA4LiB4Li04LmJ4LiHCivguYDguIHguLTguJQKK+C5gOC4geC4tOC4lOC4quC4ueC4o+C4ouC5jAor4LmA4LiB4Li04LiZCivguYDguIHguLTguJnguIHguLLguKMKK+C5gOC4geC4tOC4meC4geC4tOC4mQor4LmA4LiB4Li04LiZ4LiE4LiZCivguYDguIHguLTguJnguIfguLLguKEKK+C5gOC4geC4tOC4meC4lOC4tQor4LmA4LiB4Li04LiZ4LiV4Lix4LinCivguYDguIHguLTguJnguYTguJsKK+C5gOC4geC4tOC4meC5gOC4peC4ogor4LmA4LiB4Li04LiZ4Lir4LiZ4LmJ4LiyCivguYDguIHguLTguJoKK+C5gOC4geC4teC4ogor4LmA4LiB4Li14Lii4LiB4LiB4Liy4LiiCivguYDguIHguLXguKLguIcKK+C5gOC4geC4teC5iOC4ouC4hwor4LmA4LiB4Li14LmL4Lii4LiHCivguYDguIHguLXguYjguKLguIfguIfguK3guJkKK+C5gOC4geC4teC5iOC4ouC4h+C4leC4suC4ogor4LmA4LiB4Li14Lii4LiICivguYDguIHguLXguKLguIjguIHguKUKK+C5gOC4geC4teC4ouC4iOC4hOC4o+C5ieC4suC4mQor4LmA4LiB4Li14Lii4LiUCivguYDguIHguLXguKLguJTguIHguLHguJkKK+C5gOC4geC4teC4ouC4mQor4LmA4LiB4Li14LmJ4Lii4Lih4LmE4LiJ4LmICivguYDguIHguLXguYnguKLguKHguK3guLXguYsKK+C5gOC4geC4teC4ouC4o+C5jAor4LmA4LiB4Li14Lii4Lij4LiV4Li0CivguYDguIHguLXguKLguKPguJXguLQtCivguYDguIHguLXguKLguKPguJXguLTguYwKK+C5gOC4geC4teC4ouC4o+C4leC4tOC4hOC4uOC4kwor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiZ4Li04Lii4LihCivguYDguIHguLXguKLguKPguJXguLTguJvguKPguLDguKfguLHguJXguLQKK+C5gOC4geC4teC4ouC4o+C4leC4tOC4oOC4ueC4oeC4tAor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4LioCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwKK+C5gOC4geC4teC5iOC4ouC4pwor4LmA4LiB4Li14LmJ4Lii4LinCivguYDguIHguLXguYrguKLguKcKK+C5gOC4geC4teC5iOC4ouC4p+C4geC5ieC4reC4ogor4LmA4LiB4Li14LmJ4Lii4Lin4LmA4LiB4LmE4LilCivguYDguIHguLXguYjguKLguKfguILguYnguK3guIcKK+C5gOC4geC4teC5iOC4ouC4p+C4guC5ieC4suC4pwor4LmA4LiB4Li14LmJ4Lii4Lin4LiE4Lit4LmE4LiB4LmICivguYDguIHguLXguYjguKLguKfguJTguK3guIcKK+C5gOC4geC4teC5iOC4ouC4p+C4lOC4reC4h+C4q+C4meC4reC4h+C4ouC4uOC5iOC4hwor4LmA4LiB4Li14LmJ4Lii4Lin4LiZ4Lin4LihCivguYDguIHguLXguYjguKLguKfguYDguJrguYfguJQKK+C5gOC4geC4teC5ieC4ouC4p+C4m+C4o+C4sOC4l+C4teC4mwor4LmA4LiB4Li14LmI4Lii4Lin4LmB4Lid4LiB4Lih4Li44LiH4Lib4LmI4LiyCivguYDguIHguLXguYjguKLguKfguJ7guLHguJkKK+C5gOC4geC4teC5ieC4ouC4p+C4nuC4suC4mQor4LmA4LiB4Li14LmJ4Lii4Lin4Lie4Liy4Lij4Liy4Liq4Li1CivguYDguIHguLXguYjguKLguKfguYLguKLguIcKK+C5gOC4geC4teC5iuC4ouC4sAor4LmA4LiB4Li34LmJ4LitCivguYDguIHguLfguK3guIEKK+C5gOC4geC4t+C4reC4geC4oeC5ieC4sgor4LmA4LiB4Li34LmJ4Lit4LiB4Li54LilCivguYDguIHguLfguK3guJoKK+C5gOC4geC4t+C4reC4muC5hOC4mwor4LmB4LiBCivguYHguIHguYgKK+C5geC4geC5iQor4LmB4LiB4LmI4LiB4Lil4LmJ4LiyCivguYHguIHguYnguYDguIHguLXguYnguKLguKcKK+C5geC4geC5ieC4guC4seC4lAor4LmB4LiB4LmJ4LmE4LiCCivguYHguIHguYnguYHguITguYnguJkKK+C5geC4geC4hwor4LmB4LiB4LmI4LiHCivguYHguIHguYnguIcKK+C5geC4geC5iuC4hwor4LmB4LiB4LmJ4LiH4LiB4LmJ4LiZCivguYHguIHguIfguILguKEKK+C5geC4geC4h+C4iOC4t+C4lAor4LmB4LiB4LiH4LmE4LiUCivguYHguIHguIfguYHguJnguIcKK+C5geC4geC4h+C4muC4p+C4lAor4LmB4LiB4LiH4LmA4Lic4LmH4LiUCivguYHguIHguYjguIfguYHguKLguYjguIcKK+C5geC4geC4h+C4o+C5ieC4reC4mQor4LmB4LiB4LiH4Liq4LmJ4LihCivguYHguIHguYjguJTguLXguIHguKPguLUKK+C5geC4geC5iOC5geC4lOC4lAor4LmB4LiB4LmC4LiU4Lil4Li04LmA4LiZ4Li14Lii4LihCivguYHguIHguYnguJXguIEKK+C5geC4geC5iOC4leC4seC4pwor4LmB4LiB4LmJ4LiV4Lix4LinCivguYHguIHguYnguJXguYjguLLguIcKK+C5geC4geC5ieC4l+C4tQor4LmB4LiB4LmJ4LmC4LiX4LipCivguYHguIHguJkKK+C5geC4geC5iOC4mQor4LmB4LiB4LmI4LiZ4LmB4LiB4LmJ4LinCivguYHguIHguYjguJnguKrguLLguKMKK+C5geC4geC4meC4sAor4LmB4LiB4LmB4LiZCivguYHguIHguYnguJrguJkKK+C5geC4geC5iOC4muC5ieC4suC4mQor4LmB4LiB4LmJ4Lia4Liy4LibCivguYHguIHguYrguJsKK+C5geC4geC5ieC5gOC4nOC5h+C4lAor4LmB4LiB4LmJ4Lid4Lix4LiZCivguYHguIHguYjguYTguJ8KK+C5geC4geC4oQor4LmB4LiB4LmJ4LihCivguYHguIHguYnguKHguIrguYnguLMKK+C5geC4geC5ieC4oeC5geC4lOC4hwor4LmB4LiB4Lih4Lih4LiyCivguYHguIHguYnguKHguYHguKvguKHguYjguKEKK+C5geC4geC5ieC4oeC4t+C4rQor4LmB4LiB4Lij4LiBCivguYHguIHguKPguYjguIcKK+C5geC4geC4o+C5h+C4mQor4LmB4LiB4Lij4LiZ4Li04LiVCivguYHguIHguKPguYTguJ/guJXguYwKK+C5geC4geC4o+C5iOC4pwor4LmB4LiB4Lij4LiwCivguYHguIHguYjguYHguKPguJQKK+C5geC4geC4pQor4LmB4LiB4Lil4LmICivguYHguIHguKXguYnguIcKK+C5geC4geC4peC5ieC4h+C5gOC4geC4peC4sgor4LmB4LiB4Lil4LiZCivguYHguIHguKXguJoKK+C5geC4geC4peC4muC4q+C4meC4uQor4LmB4LiB4Lil4Lia4Lir4Li54Lir4LiZ4Li5CivguYHguIHguKXguYnguKEKK+C5geC4geC4peC4peC4reC4mQor4LmB4LiB4Lil4LmA4Lil4Li14Lii4LihCivguYHguIHguKXguYnguKcKK+C5geC4geC4peC4sAor4LmB4LiB4LmJ4Lil4LizCivguYHguIHguYHguKUKK+C5geC4geC4pwor4LmB4LiB4LmJ4LinCivguYHguIHguYnguKfguIHguYrguK0KK+C5geC4geC5ieC4p+C4geC4uOC5ieC4hwor4LmB4LiB4LmJ4Lin4LmB4LiB4Lil4LiaCivguYHguIHguKfguYjguIcKK+C5geC4geC4p+C5iOC4h+C5hOC4geC4pwor4LmB4LiB4Lin4LmI4LiH4LiV4Li14LiZ4Lir4Liy4LmA4Liq4Li14LmJ4Lii4LiZCivguYHguIHguYnguKfguIrguLTguIfguJTguKfguIcKK+C5geC4geC5ieC4p+C4leC4sgor4LmB4LiB4Lin4LmI4LiZCivguYHguIHguYnguKfguJzguKXguLbguIEKK+C5geC4geC5ieC4p+C4oeC4o+C4geC4lQor4LmB4LiB4LmJ4Lin4Lin4Li04LmA4LiK4Li14Lii4LijCivguYHguIHguYnguKfguKrguLLguKPguJ7guLHguJTguJnguLbguIEKK+C5geC4geC5ieC4p+C4quC4teC5hOC4oeC5ieC5hOC4nOC5iAor4LmB4LiB4LmJ4Lin4Lir4Li04LiZCivguYHguIHguYnguKfguKvguLkKK+C5geC4geC5iOC4p+C4seC4lAor4LmB4LiB4LmK4LiqCivguYHguIHguYrguKrguYTguILguYjguYDguJnguYjguLIKK+C5geC4geC5iuC4quC5gOC4ieC4t+C5iOC4reC4ogor4LmB4LiB4LmK4Liq4LiZ4LmJ4Liz4LiV4LiyCivguYHguIHguYnguKvguJnguYnguLIKK+C5geC4geC4sAor4LmB4LiB4Liw4LiU4LizCivguYHguIHguLDguKPguK3guKIKK+C5geC4geC4sOC4quC4sOC5gOC4geC5h+C4lAor4LmC4LiB4LmICivguYLguIHguYkKK+C5guC4geC5iwor4LmC4LiB4LiBCivguYLguIHguIHguYDguIHguIEKK+C5guC4geC4geC4meC4uOC4lwor4LmC4LiB4LiB4Li04LilLQor4LmC4LiB4LiB4Li04Lil4LiyCivguYLguIHguYLguIHguYkKK+C5guC4geC4hwor4LmC4LiB4LmI4LiHCivguYLguIHguIfguIHguLLguIcKK+C5guC4geC5ieC4h+C5gOC4geC5ieC4hwor4LmC4LiB4LiH4LmC4LiB4LmJCivguYLguIHguYnguIfguYLguITguYnguIcKK+C5guC4geC5gOC4iuC4suC4p+C5jAor4LmC4LiB4LiN4LiILQor4LmC4LiB4LiN4LiI4LiZCivguYLguIHguI3guIjguJnguLLguJcKK+C5guC4geC4jeC4iOC4sgor4LmC4LiB4LiP4Li0CivguYLguIHguJAKK+C5guC4geC4kOC4geC4o+C4sOC4lOC4ueC4gQor4LmC4LiB4LiQ4LiB4Liw4LiB4Lil4Li04LmJ4LiHCivguYLguIHguJDguIHguLHguIHguIHguKPguLIKK+C5guC4geC4kOC4geC5ieC4suC4meC4nuC4o+C5ieC4suC4pwor4LmC4LiB4LiQ4LmA4LiC4Lih4LiyCivguYLguIHguJDguIjguLjguKzguLLguKXguLHguKHguJ7guLIKK+C5guC4geC4kOC4iOC4uOC4rOC4suC4peC4s+C4nuC4sgor4LmC4LiB4LiQ4LiK4LiO4Liy4Lih4Lix4LiH4Lip4Li1CivguYLguIHguJDguIrguI7guLLguKHguLHguIfguKrguLUKK+C5guC4geC4kOC5gOC4iuC4teC4ouC4hwor4LmC4LiB4LiQ4LiZ4LmJ4Liz4LmA4LiV4LmJ4LiyCivguYLguIHguJDguJ7guLjguIfguJvguKXguLIKK+C5guC4geC4kOC4quC4rQor4LmC4LiB4LiQ4Lir4Lit4LihCivguYLguIHguJDguKvguLHguKfguJrguLHguKcKK+C5guC4geC4kOC4suC4qgor4LmC4LiB4LiTCivguYLguIHguJPguIEKK+C5guC4geC4lOC4seC4hwor4LmC4LiB4LiV4LmE4LiVCivguYLguIHguJfguLHguJPguJHguYwKK+C5guC4geC4mQor4LmC4LiB4LmI4LiZCivguYLguIHguYvguJkKK+C5guC4geC4m+C4tOC4meC4swor4LmC4LiB4Lih4LilCivguYLguIHguKHguLjguJcKK+C5guC4geC5gOC4oeC4mQor4LmC4LiB4LmA4Lih4LioCivguYLguIHguKIKK+C5guC4geC4ouC4l+C5ieC4reC4hwor4LmC4LiB4Lij4LmJCivguYLguIHguKPguIEKK+C5guC4geC4o+C4geC4geC4o+C4suC4gQor4LmC4LiB4Lij4LiB4LmE4LiB4LijCivguYLguIHguKPguIHguJjguLLguKMKK+C5guC4geC4o+C4geC4q+C4p+C4seC4lAor4LmC4LiB4Lij4LiHCivguYLguIHguKPguYjguIcKK+C5guC4geC4o+C5iOC4h+C4geC4o+C5iOC4suC4hwor4LmC4LiB4Lij4LiH4LmA4LiB4Lij4LiHCivguYLguIHguKPguYvguIfguYDguIHguKPguYvguIcKK+C5guC4geC4o+C4jeC4iAor4LmC4LiB4Lij4LiUCivguYLguIHguKPguJXguYvguJkKK+C5guC4geC4o+C4mAor4LmC4LiB4Lij4LiY4LiC4Li24LmJ4LiHCivguYLguIHguKPguJjguLIKK+C5guC4geC4o+C5i+C4mQor4LmC4LiB4Lij4LmL4LiZ4LmA4LiB4Lij4LmL4LiZCivguYLguIHguKPguKEKK+C5guC4geC4o+C4oeC4mOC4suC4leC4uAor4LmC4LiB4Lij4LiiCivguYLguIHguKPguKgKK+C5guC4geC5guC4o+C5guC4geC5gOC4lQor4LmC4LiB4LmC4Lij4LmC4LiB4LmC4Lij4LiBCivguYLguIHguYLguKPguYLguIHguYLguKoKK+C5guC4geC4peC4hwor4LmC4LiB4Lil4LiZCivguYLguIHguKXguLLguKvguKUKK+C5guC4geC5hOC4pQor4LmC4LiB4Lin4Li04LiXCivguYLguIHguKfguLTguKzguLLguKMKK+C5guC4geC4qAor4LmC4LiB4Lio4LilCivguYLguIHguKkKK+C5guC4geC4qeC4oQor4LmC4LiB4Lip4LiiCivguYLguIHguKnguLXguKLguYwKK+C5guC4geC4qgor4LmC4LiB4Liq4LiZCivguYLguIHguKrguLHguIoKK+C5guC4geC4quC4tOC4meC4l+C4o+C5jAor4LmC4LiB4Liq4Li14Lii4LmMCivguYLguIHguKrguLjguKEKK+C5guC4geC5hOC4quC4ogor4LmC4LiB4Lir4LiBCivguYLguIHguKvguKfguLIKK+C5g+C4geC4peC5iQor4LmD4LiB4Lil4LmJ4LmA4LiB4Lil4Li34Lit4LiB4Li04LiZ4LiU4LmI4Liy4LiHCivguYTguIEKK+C5hOC4geC5iAor4LmE4LiB4LmJCivguYTguIHguYoKK+C5hOC4geC5iwor4LmE4LiB4LmI4LiB4Lit4LihCivguYTguIHguYjguYHguIHguYjguYHguKHguYjguJvguKXguLLguIrguYjguK3guJkKK+C5hOC4geC5iOC5geC4geC5ieC4pwor4LmE4LiB4LmI4LmA4LiC4Li14LmI4LiiCivguYTguIHguYjguIrguJkKK+C5hOC4geC5i+C5geC4lOC4hwor4LmE4LiB4LmI4LmA4LiV4Li14LmJ4LiiCivguYTguIHguYjguJnguLIKK+C5hOC4geC5iOC4m+C5iOC4sgor4LmE4LiB4Lie4Lix4LilCivguYTguIHguYjguJ/guYnguLIKK+C5hOC4geC5iOC4n+C5ieC4suC4nuC4jeC4suC4peC4rQor4LmE4LiB4LijCivguYTguIHguKPguJ4KK+C5hOC4geC4o+C4peC4suC4qgor4LmE4LiB4Lij4Lio4LijCivguYTguIHguKPguKjguKPguLUKK+C5hOC4geC4o+C4quC4owor4LmE4LiB4Lij4Liq4Lij4Li1CivguYTguIHguKPguKrguLTguJfguJjguLQKK+C5hOC4geC5iOC4o+C4reC4h+C4muC5iOC4reC4mQor4LmE4LiB4LilCivguYTguIHguKXguYgKK+C5hOC4geC4peC5iOC5gOC4geC4peC4teC5iOC4ogor4LmE4LiB4Lil4Lib4Li34LiZ4LmA4LiX4Li14LmI4Lii4LiHCivguYTguIHguKXguLLguKoKK+C5hOC4geC4pwor4LmE4LiB4Lin4Lix4LilCivguYTguIHguYjguKrguLLguKHguK3guKLguYjguLLguIcKK+C5hOC4geC5iOC5gOC4q+C5h+C4meC4leC4teC4meC4h+C4uSDguIfguLnguYDguKvguYfguJnguJnguKHguYTguIHguYgKK+C5hOC4geC5iOC5guC4q+C5iAor4LmE4LiB4LmI4LmE4Lir4LmJCivguYTguIHguYjguK3guYjguK3guJkKK+C4ggor4LiC4LiHCivguILguIfguIjguLfguYrguK0KK+C4guC4iOC4owor4LiC4LiI4Lij4LiI4LiaCivguILguIjguK3guIEKK+C4guC4iOC4seC4lAor4LiC4LiI4Lix4LiU4LiC4LiI4Liy4LiiCivguILguIjguYjguLLguIcKK+C4guC4iOC4suC4ogor4LiC4LiI4Liy4LinCivguILguIjguLTguJUKK+C4guC4iOC4tOC4o+C4tOC4lAor4LiC4LiI4Li1CivguILguIjguLjguKIKK+C4guC5gOC4iOC4sgor4LiC4LiT4LiwCivguILguJQKK+C4guC4lOC4luC4p+C4suC4ogor4LiC4LiU4Liy4LiZCivguILguJXguK3guKIKK+C4guC4l+C4tOC4hwor4LiC4LiX4Li24LiHCivguILguJkKK+C4guC5ieC4mQor4LiC4LmJ4LiZ4LmB4LiE4LmJ4LiZCivguILguJnguIcKK+C4guC4meC4h+C5gOC4meC4t+C5ieC4rQor4LiC4LiZ4LiUCivguILguJnguJfguKPguLLguKLguYDguILguYnguLLguKfguLHguJQKK+C4guC4meC4mQor4LiC4LiZ4LiaCivguILguJnguJrguJjguKPguKPguKHguYDguJnguLXguKLguKEKK+C4guC4meC4muC4m+C4o+C4sOC5gOC4nuC4k+C4tQor4LiC4LiZ4Lie4Lit4LiHCivguILguJnguYDguJ7guIrguKMKK+C4guC4meC4oQor4LiC4LiZ4Lih4LiE4Lij4LiBCivguILguJnguKHguIjguLXguJkKK+C4guC4meC4oeC4l+C4o+C4suC4ogor4LiC4LiZ4Lih4Lic4Liq4Lih4LiZ4LmJ4Liz4Lii4LiyCivguILguJnguKHguJzguLHguIHguIHguLLguJQKK+C4guC4meC4oeC5gOC4quC5ieC4mQor4LiC4LiZ4Lih4Lir4Lix4Lin4Lic4Lix4LiB4LiB4Liy4LiUCivguILguJnguYHguKHguKcKK+C4guC4meC4peC4uOC4gQor4LiC4LiZ4Lil4Li44LiB4LiC4LiZ4Lie4Lit4LiHCivguILguJnguKrguYjguIcKK+C4guC4meC4quC4seC4leC4p+C5jAor4LiC4LiZ4Lir4LiZ4LmJ4Liy4LmB4LiC4LmJ4LiH4LmE4Lih4LmI4Lij4LmI4Lin4LiHCivguILguJnguKvguJnguLkKK+C4guC4meC4q+C4ouC4reC4hwor4LiC4LiZ4Lit4LiHCivguILguJnguK3guJkKK+C4guC4meC4reC4mgor4LiC4LiZ4Lit4Li44LiiCivguILguJnguLHguJQKK+C4guC4meC4seC4mQor4LiC4LiZ4Liy4LiBCivguILguJnguLLguIcKK+C4guC4meC4suC4lAor4LiC4LiZ4Liy4LiZCivguILguJnguLLguJnguJnguYnguLMKK+C4guC4meC4suC4meC4peC4teC5iAor4LiC4LiZ4Liy4LiaCivguILguJnguLLguKIKK+C4guC4meC4swor4LiC4LiZ4Li04Lip4LiQCivguILguJnguLTguKnguJDguLIKK+C4guC4meC4uOC4mQor4LiC4LiZ4Li44LiZ4LiZ4LiBCivguILguJnguLjguJnguJvguYjguLIKK+C4guC4meC4uOC4meC4quC4s+C4m+C4sOC4peC4rQor4LiC4LiaCivguILguJrguILguLHguJkKK+C4guC4muC5gOC4guC4teC5ieC4ouC4p+C5gOC4hOC4teC5ieC4ouC4p+C4n+C4seC4mQor4LiC4Lia4LiE4Li04LiUCivguILguJrguInguLHguJkKK+C4guC4muC4lgor4LiC4Lia4Lib4Lix4LiN4Lir4LiyCivguILguJrguYDguJzguLLguLAKK+C4guC4muC5hOC4oeC5iOC5geC4leC4gQor4LiC4Lia4Lin4LiZCivguILguJrguKfguJnguIHguLLguKMKK+C4guC4muC4p+C4owor4LiC4Lia4Li54LijCivguILguKEKK+C4guC5iOC4oQor4LiC4LmI4Lih4LiC4Lin4Lix4LiNCivguILguYjguKHguILguLXguYgKK+C4guC4oeC4guC4t+C5iOC4mQor4LiC4LmI4Lih4LiC4Li34LiZCivguILguYjguKHguILguLfguJnguIHguKPguLDguJfguLPguIrguLPguYDguKPguLIKK+C4guC5iOC4oeC4guC4t+C4meC5g+C4iAor4LiC4LmI4Lih4LiC4Li54LmICivguILguYjguKHguYDguILguLLguYLguITguILguLfguJnguYPguKvguYnguIHguLTguJnguKvguI3guYnguLIKK+C4guC4oeC4h+C5guC4geC4o+C4ogor4LiC4LmI4Lih4LiX4LmJ4Lit4LiHCivguILguYjguKHguJnguLLguKEKK+C4guC4oeC5gOC4m+C5h+C4meC4ouC4sgor4LiC4Lih4LihCivguILguKHguKfguJQKK+C4guC4oeC4p+C4lOC4ouC4sgor4LiC4Lih4Lin4LiZCivguILguYjguKHguKvguKHguLkKK+C4guC4oeC4q+C4tOC4mQor4LiC4LmI4Lih4LmA4Lir4LiHCivguILguYjguKHguYDguKvguIfguITguLDguYDguJnguIfguKPguYnguLLguKIKK+C4guC4oeC4reC4hwor4LiC4Lih4LmI4Lit4LihCivguILguKHguYjguK3guKHguJrguLLguIcKK+C4guC4oeC4reC4ogor4LiC4Lih4Lix4LiHCivguILguKHguLHguJoKK+C4guC4oeC4sgor4LiC4Lih4LmJ4LizCivguILguKHguLTguYnguJkKK+C4guC4oeC4tOC5ieC4meC4geC4seC4muC4m+C4ueC4mQor4LiC4Lih4Li04LmJ4LiZ4LiC4Liy4LinCivguILguKHguLTguYnguJnguILguLbguYnguJkKK+C4guC4oeC4tOC5ieC4meC5gOC4hOC4o+C4t+C4rQor4LiC4Lih4Li04LmJ4LiZ4LiK4Lix4LiZCivguILguKHguLTguYnguJnguJnguLLguIcKK+C4guC4oeC4tOC5ieC4meC4peC4tOC4hwor4LiC4Lih4Li04LmJ4LiZ4Lir4Lix4Lin4LiC4Li24LmJ4LiZCivguILguKHguLTguYnguJnguK3guYnguK3guKIKK+C4guC4oeC4tOC4mgor4LiC4Lih4Li14LiC4Lih4Lix4LiZCivguILguKHguLbguIcKK+C4guC4oeC4tuC4h+C4l+C4tuC4hwor4LiC4Lih4Li4CivguILguKHguLjguIHguILguKHguLHguKcKK+C4guC4oeC4uOC4lOC4guC4oeC4tOC4lAor4LiC4Lih4Li44LiaCivguILguKHguLjguJrguILguKHguLTguJoKK+C4guC4oeC4uOC4oQor4LiC4LmC4Lih4LiiCivguILguKItCivguILguKLguJQKK+C4guC4ouC4oQor4LiC4Lii4LmI4LihCivguILguKLguKUKK+C4guC4ouC4reC4gQor4LiC4Lii4Lit4LiHCivguILguKLguYjguK3guJkKK+C4guC4ouC5ieC4reC4mQor4LiC4Lii4LiwCivguILguKLguLDguYHguILguKLguIcKK+C4guC4ouC4seC4gQor4LiC4Lii4Lix4LiB4LiC4Lii4LmI4Lit4LiZCivguILguKLguLHguIHguILguKLguYnguK3guJkKK+C4guC4ouC4seC4mQor4LiC4Lii4Lix4LmJ4LiZCivguILguKLguLHguJoKK+C4guC4ouC4seC4muC4guC4ouC4suC4ogor4LiC4Lii4Lix4Lia4LmA4LiC4Lii4Li34LmJ4Lit4LiZCivguILguKLguLLguJQKK+C4guC4ouC4suC4mgor4LiC4Lii4Liy4LiiCivguILguKLguLLguKLguILguLXguYnguYDguJfguYjguK0KK+C4guC4ouC4swor4LiC4Lii4LmJ4LizCivguILguKLguLTguIEKK+C4guC4ouC4tOC4mgor4LiC4Lii4Li04LmI4LihCivguILguKLguLXguYkKK+C4guC4ouC4teC5iOC4guC4ouC4seC4mQor4LiC4Lii4Li44LiB4LiC4Lii4Li04LiBCivguILguKLguLjguIHguILguKLguLjguKIKK+C4guC4ouC4uOC4mgor4LiC4Lii4Li44Lia4LiC4Lii4Li04LiaCivguILguKLguLjguKEKK+C4guC4ouC4uOC5ieC4oQor4LiC4Lii4Li44LmJ4Lih4LiV4Li14LiZ4Lir4Lih4LiyCivguILguKLguLjguKIKK+C4guC4o+C4oQor4LiC4Lij4Lij4LiELQor4LiC4Lij4Lij4LiE4LmMCivguILguKPguLHguKcKK+C4guC4o+C4seC4p+C4ouC4suC4ogor4LiC4Lij4Li04LiaCivguILguKPguLUKK+C4guC4o+C4tuC4oQor4LiC4Lij4Li44LiC4Lij4LiwCivguILguKXguYnguIcKK+C4guC4peC4mgor4LiC4Lil4LihCivguILguKXguKfguJkKK+C4guC4peC5ieC4reC5gOC4h+C4suC4sAor4LiC4Lil4LmJ4Lit4LmA4LiX4Li14Lii4LiZCivguILguKXguLHguIcKK+C4guC4peC4seC4mgor4LiC4Lil4LiyCivguILguKXguLLguJQKK+C4guC4peC4suC4ogor4LiC4Lil4Li04LiaCivguILguKXguLbguIcKK+C4guC4peC4uOC4gQor4LiC4Lil4Li44LiB4LiC4Lil4Lix4LiBCivguILguKXguLjguIHguILguKXguLTguIEKK+C4guC4peC4uOC4geC4guC4peC4uOC5iOC4ogor4LiC4Lil4Li44LiaCivguILguKXguLjguKEKK+C4guC4peC4uOC4oeC4m+C4o+C4sOC5gOC4iOC4teC4ouC4lAor4LiC4Lil4Li44LmI4LiiCivguILguKXguLkKK+C4guC4peC4ueC5iAor4LiC4Lin4LiHCivguILguYjguKfguIcKK+C4guC4p+C4lAor4LiC4Lin4LiU4LiV4Li14LiZ4LiK4LmJ4Liy4LiHCivguILguKfguJTguYLguKvguKUKK+C4guC4p+C4mQor4LiC4LmI4Lin4LiZCivguILguKfguJnguILguKfguLLguKIKK+C4guC4p+C4mgor4LiC4Lin4LiiCivguILguKfguKLguYDguILguLTguJkKK+C4guC4p+C4ouC5g+C4iAor4LiC4Lin4Liw4LmE4LiC4Lin4LmI4LmA4LiC4Lin4Li14LmI4LiiCivguILguKfguLHguIHguYTguILguKfguYgKK+C4guC4p+C4seC4jQor4LiC4Lin4Lix4LiN4LmA4LiB4Li14LmI4Lii4LiHCivguILguKfguLHguI3guILguYnguLLguKcKK+C4guC4p+C4seC4jeC5geC4guC4p+C4mQor4LiC4Lin4Lix4LiN4LmD4LiICivguILguKfguLHguI3guJTguLUKK+C4guC4p+C4seC4jeC4leC4sgor4LiC4Lin4Lix4LiN4Lia4LmI4LiyCivguILguKfguLHguI3guJrguLTguJkKK+C4guC4p+C4seC4jeC5gOC4oeC4t+C4reC4hwor4LiC4Lin4Lix4LiN4Lir4LiZ4Li1CivguILguKfguLHguI3guKvguJnguLXguJTguLXguJ3guYjguK0KK+C4guC4p+C4seC4jeC4q+C4suC4ogor4LiC4Lin4Lix4LiN4Lit4LmI4Lit4LiZCivguILguKfguLHguJQKK+C4guC4p+C4seC4lOC4guC4p+C4tOC4lAor4LiC4Lin4Lix4LiU4LmB4LiE4Lin4LmJ4LiHCivguILguKfguLHguYnguJkKK+C4guC4p+C4seC4mgor4LiC4Lin4Lix4Lia4LmA4LiC4Lin4Li14Lii4LinCivguILguKfguLIKK+C4guC4p+C4suC4gQor4LiC4Lin4Liy4LiB4Lir4LiZ4Liy4LihCivguILguKfguLLguIcKK+C4guC4p+C5ieC4suC4hwor4LiC4Lin4LmJ4Liy4LiH4LiB4LiyCivguILguKfguYnguLLguIfguILguYnguLLguKfguYDguKHguYjguLIKK+C4guC4p+C5ieC4suC4h+C4hOC5ieC4reC4mQor4LiC4Lin4LmJ4Liy4LiH4LiH4Li54LmE4Lih4LmI4Lie4LmJ4LiZ4LiE4LitCivguILguKfguYnguLLguIfguIjguLHguIHguKMKK+C4guC4p+C4suC4h+C5gOC4iuC4tOC4hwor4LiC4Lin4Liy4LiH4LmGIOC4o+C4teC5hgor4LiC4Lin4Liy4LiH4LmC4Lil4LiBCivguILguKfguLLguJQKK+C4guC4p+C4suC4mQor4LiC4Lin4Liy4LiZ4Lic4LmI4Liy4LiL4Liy4LiBCivguILguKfguLLguJnguJ/guYnguLIKK+C4guC4p+C4suC4ouC4guC4p+C4mQor4LiC4Lin4Liy4LinCivguILguKfguYnguLLguKcKK+C4guC4p+C4tOC4lAor4LiC4Lip4LiT4LiwCivguILguKnguLHguKIKK+C4guC4qeC4teC4k+C4suC4qOC4o+C4ngor4LiC4Lip4Li14LijCivguILguK0KK+C4guC5iOC4rQor4LiC4LmJ4LitCivguILguK3guIEKK+C4guC5ieC4reC4geC4juC4q+C4oeC4suC4ogor4LiC4LmJ4Lit4LiB4LiV4Li04LiB4LiyCivguILguYnguK3guIHguLPguKvguJnguJQKK+C4guC4reC5geC4geC4pwor4LiC4LmJ4Lit4LmA4LiC4Li14Lii4LiZCivguILguYnguK3guYTguIIKK+C4guC5ieC4reC4hOC4p+C4suC4oQor4LiC4LmJ4Lit4LiE4Lix4LiU4Lii4LmI4LitCivguILguK3guITguLPguJnguYnguK3guKIKK+C4guC5ieC4reC4hOC4tOC4lAor4LiC4LmJ4Lit4LiE4Li04LiU4LmA4Lir4LmH4LiZCivguILguK3guIcKK+C4guC5ieC4reC4hwor4LiC4Lit4LiH4LiB4Lil4Liy4LiHCivguILguK3guIfguIHguK3guIcKK+C4guC4reC4h+C4geC4s+C4meC4seC4pQor4LiC4Lit4LiH4LiB4Li04LiZCivguILguK3guIfguYDguIHguYjguLIKK+C4guC4reC4h+C4guC4muC5gOC4hOC4teC5ieC4ouC4pwor4LiC4Lit4LiH4LiC4Lil4Lix4LiHCivguILguK3guIfguILguKfguLHguI0KK+C4guC5ieC4reC4h+C4guC4seC4lAor4LiC4Lit4LiH4LmB4LiC4LmH4LiHCivguILguK3guIfguITguYnguLLguIcKK+C4guC4reC4h+C4hOC4suC4pwor4LiC4Lit4LiH4LmA4LiE4LmH4LihCivguILguK3guIfguYDguITguLXguKLguIcKK+C4guC4reC4h+C5guC4iOC4owor4LiC4LmJ4Lit4LiH4LmD4LiICivguILguK3guIfguIrguLMKK+C4guC4reC4h+C5g+C4iuC5iQor4LiC4Lit4LiH4LiU4Li1CivguILguK3guIfguYDguJbguLfguYjguK3guJkKK+C4guC4reC4h+C4meC4reC4gQor4LiC4Lit4LiH4Lij4LmJ4Lit4LiZCivguILguK3guIfguKXguLHguJoKK+C4guC4reC4h+C5gOC4peC5iOC4mQor4LiC4Lit4LiH4LmA4Lil4Li34LmI4Lit4LiZCivguILguK3guIfguYDguKXguLfguYjguK3guJnguYDguJXguLfguK3guJnguILguLHguJnguKvguKHguLLguIEKK+C4guC4reC4h+C4p+C4seC4lAor4LiC4Lit4LiH4Lin4LmI4Liy4LiHCivguILguYnguK3guIfguYHguKfguLAKK+C4guC4reC4h+C4quC4h+C4huC5jAor4LiC4Lit4LiH4Liq4LiH4Lin4LiZCivguILguK3guIfguKrguJQKK+C4guC4reC4h+C4quC4lOC4guC4reC4h+C4hOC4suC4pwor4LiC4Lit4LiH4Liq4LiU4LiE4Liy4LinCivguILguK3guIfguKvguKXguKfguIcKK+C4guC4reC4h+C4q+C4p+C4suC4mQor4LiC4Lit4LiH4Lir4Liy4Lii4LiV4Liw4Lie4Liy4Lii4Lia4Liy4LibCivguILguK3guIfguYDguKvguKXguKcKK+C4guC4reC4h+C5geC4q+C5ieC4hwor4LiC4Lit4LiH4LmE4Lir4LilCivguILguK3guIfguYTguKvguKfguYkKK+C4guC4reC4h+C5ieC4rQor4LiC4Lit4LiH4LmJ4Liy4LinCivguILguK3guInguLLguKIKK+C4guC4reC4iuC5ieC4suC4hwor4LiC4Lit4LiUCivguILguK3guJTguITguYjguK3guJkKK+C4guC4reC5gOC4lOC4iuC4sAor4LiC4Lit4LiV4Lix4LinCivguILguK3guJfguK3guIcKK+C4guC4reC4l+C4suC4mQor4LiC4Lit4LiX4Li1CivguILguYnguK3guYDguJfguYfguIjguIjguKPguLTguIcKK+C4guC4reC5guC4l+C4qQor4LiC4Lit4LiZCivguILguYjguK3guJkKK+C4guC5ieC4reC4mQor4LiC4Lit4LiZ4LiU4Lit4LiBCivguILguK3guJnguKrguLHguIEKK+C4guC4reC4meC4tOC4quC4seC4ogor4LiC4Lit4LiaCivguILguK3guJrguILguYjguLLguKIKK+C4guC4reC4muC5gOC4guC4lQor4LiC4Lit4Lia4LiE4Li44LiTCivguILguK3guJrguYPguIgKK+C4guC4reC4muC4l+C4suC4hwor4LiC4Lit4Lia4Lie4Lij4Liw4LiE4Li44LiTCivguILguK3guJrguYTguKMKK+C4guC4reC4muC5gOC4q+C4peC5h+C4gQor4LiC4LmJ4Lit4Lia4Lix4LiH4LiE4Lix4LiaCivguILguYnguK3guJrguLHguI3guI3guLHguJXguLQKK+C4guC4reC4m+C4o+C4sOC4l+C4suC4mQor4LiC4Lit4Lib4Lij4Liw4LiX4Liy4LiZ4LmC4LiX4LipCivguILguYnguK3guJvguKXguLXguIHguKLguYjguK3guKIKK+C4guC4reC5hOC4m+C4l+C4tQor4LiC4Lit4LmA4Lid4LmJ4LiyCivguILguK3guJ7guKPguLDguKPguLLguIrguJfguLLguJkKK+C4guC5ieC4reC4nuC4seC4mgor4LiC4Lit4LihCivguILguYnguK3guKHguLfguK3guILguLLguKcKK+C4guC5ieC4reC4oeC4ueC4pQor4LiC4LmJ4Lit4LmB4Lih4LmJCivguILguYjguK3guKIKK+C4guC5ieC4reC4ogor4LiC4LmI4Lit4Lii4LiZ4LmJ4LizCivguILguYjguK3guKLguKvguJnguLLguKEKK+C4guC5iOC4reC4ouC4q+C4ouC4reC4hwor4LiC4Lit4Lii4Li34LihCivguILguK3guKPguYnguK3guIcKK+C4guC4reC4o+C4seC4mgor4LiC4Lit4Lij4Lix4Lia4LiB4Lij4Liw4Lic4LihCivguILguK3guKPguLHguJrguJzguKEKK+C4guC5ieC4reC4o+C4suC4iuC4geC4suC4owor4LiC4Lit4LmB4Lij4LiHCivguILguYnguK3guKjguK3guIEKK+C4guC5ieC4reC4quC4reC4mgor4LiC4Lit4Liq4Lix4LiaCivguILguYnguK3guYDguKrguLfguK0KK+C4guC5ieC4reC4q+C4sgor4LiC4LmJ4Lit4LmD4Lir4LiN4LmI4LmD4LiI4LiE4Lin4Liy4LihCivguILguK3guK3guKDguLHguKIKK+C4guC5ieC4reC4reC5ieC4reC4ogor4LiC4LmJ4Lit4Lit4LmJ4Liy4LiHCivguILguLDguILguYjguLMKK+C4guC4sOC5geC4guC5iOC4mQor4LiC4Liw4LmB4LiC4LmJ4LiZCivguILguLDguYHguIjguLAKK+C4guC4sOC5geC4luC4gQor4LiC4Liw4LiZ4Liy4LiZCivguILguLDguYDguJnguYfguJQKK+C4guC4sOC4oeC4reC4oeC4guC4sOC5geC4oeC4oQor4LiC4Liw4Lih4Lix4LiB4LmA4LiC4Lih4LmJ4LiZCivguILguLDguKHguLjguIHguILguLDguKHguK3guKEKK+C4guC4sOC5geC4oeC4i+C4rQor4LiC4Liw4LmB4Lih4LiY4LihCivguILguLDguKLguLTguIEKK+C4guC4sOC4ouC4uOC4gQor4LiC4Liw4LmA4Lii4LmJ4Lit4LmB4LiC4Lii4LmI4LiHCivguILguLDguYHguKLguLAKK+C4guC4seC4hAor4LiC4Lix4LiHCivguILguLHguIfguILguYnguK0KK+C4guC4seC4h+C4guC4reC4gQor4LiC4Lix4LiH4Lib4Lil4LmJ4Lit4LiHCivguILguLHguIfguKvguJnguYjguKfguKIKK+C4guC4seC4igor4LiC4Lix4LiK4LiBCivguILguLHguJPguJEtCivguILguLHguJPguJHguKrguIHguKMKK+C4guC4seC4k+C4keC4quC4teC4oeC4sgor4LiC4Lix4LiUCivguILguLHguJTguYDguIHguKXguLIKK+C4guC4seC4lOC4guC4p+C4suC4hwor4LiC4Lix4LiU4LiC4LmJ4Lit4LiHCivguILguLHguJTguILguLfguJkKK+C4guC4seC4lOC5gOC4guC4oeC4owor4LiC4Lix4LiU4LmA4LiC4Li04LiZCivguILguLHguJTguYHguILguYfguIcKK+C4guC4seC4lOC4hOC4rQor4LiC4Lix4LiU4LmA4LiE4Li34Lit4LiHCivguILguLHguJTguYHguITguYnguJkKK+C4guC4seC4lOC4iOC4seC4h+C4q+C4p+C4sAor4LiC4Lix4LiU4LmD4LiICivguILguLHguJTguJTguK3guIEKK+C4guC4seC4lOC4leC4sgor4LiC4Lix4LiU4LiV4Liy4LiX4Lix4LieCivguILguLHguJTguJXguLPguJnguLLguJkKK+C4guC4seC4lOC5geC4leC4sAor4LiC4Lix4LiU4Lia4LiXCivguILguLHguJTguYDguJrguLIKK+C4guC4seC4lOC4oeC4reC4mQor4LiC4Lix4LiU4Lih4Lit4LiZ4LiV4Lix4Lin4Lic4Li54LmJCivguILguLHguJTguKHguK3guJnguKvguKXguKfguIcKK+C4guC4seC4lOC4ouC4reC4gQor4LiC4Lix4LiU4LmB4Lii4LmJ4LiHCivguILguLHguJTguKXguLLguKAKK+C4guC4seC4lOC4quC4mQor4LiC4Lix4LiU4Liq4Lih4Liy4LiY4Li0CivguILguLHguJTguKvguJnguLHguIEKK+C4guC4seC4lOC4q+C5ieC4suC4hwor4LiC4Lix4LiU4Lir4Li5CivguILguLHguJXguJXguLTguKItCivguILguLHguJXguJXguLTguKLguKHguLLguJnguLAKK+C4guC4seC4mQor4LiC4Lix4LmJ4LiZCivguILguLHguJnguIHguKfguYnguLLguJkKK+C4guC4seC4meC5geC4guC5h+C4hwor4LiC4Lix4LiZ4LiK4Liw4LmA4LiZ4Liy4LiwCivguILguLHguJnguYDguIrguLTguIcKK+C4guC4seC4meC4leC5iOC4rQor4LiC4Lix4LiZ4LiV4Li0CivguILguLHguJnguJXguLUKK+C4guC4seC4meC5guC4leC4gQor4LiC4Lix4LiZ4LiX4Lit4LiH4Lie4Lii4Liy4Lia4Liy4LiXCivguILguLHguJnguJfguLUKK+C4guC4seC4meC4mOC5jAor4LiC4Lix4LiZ4LiY4Liy4Lin4Liy4LijCivguILguLHguJnguJnguYnguLPguJ7guLLguJnguKPguK3guIcKK+C4guC4seC4meC4peC4h+C4q+C4tOC4mQor4LiC4Lix4LiZ4Liq4Lih4LitCivguILguLHguJnguKrguLLguITguKMKK+C4guC4seC4meC4quC4ueC5iQor4LiC4Lix4LiZ4Lir4Lih4Liy4LiBCivguILguLHguJnguYDguKvguKEKK+C4guC4seC4meC4reC4suC4quC4sgor4LiC4Lix4LiaCivguILguLHguJrguILguLHguJkKK+C4guC4seC4muC4guC4teC5iAor4LiC4Lix4Lia4LmA4LiE4Lil4Li34LmI4Lit4LiZCivguILguLHguJrguYDguITguLXguYjguKLguKcKK+C4guC4seC4muC4i+C4rQor4LiC4Lix4Lia4LiW4LmI4Liy4LiiCivguILguLHguJrguJ7guKUKK+C4guC4seC4muC5hOC4oeC5iQor4LiC4Lix4Lia4LmE4Lih4LmJ4Lia4Lix4LiT4LmA4LiR4Liy4Liw4Lin4LmMCivguILguLHguJrguKPguYnguK3guIcKK+C4guC4seC4ogor4LiC4Lix4LinCivguILguLHguYnguKcKK+C4guC4seC5ieC4p+C4geC4o+C4sOC4iOC4gQor4LiC4Lix4LmJ4Lin4Lia4Lin4LiBCivguILguLHguYnguKfguYHguKHguYjguYDguKvguKXguYfguIEKK+C4guC4seC5ieC4p+C5geC4oeC5iOC5gOC4q+C4peC5h+C4geC5guC4peC4gQor4LiC4Lix4LmJ4Lin4Lil4LiaCivguILguLHguYnguKfguYLguKXguIEKK+C4guC4sgor4LiC4LmI4LiyCivguILguYnguLIKK+C4guC4suC4gQor4LiC4Liy4LiB4LiaCivguILguLLguIHguKPguKPguYTguJXguKMKK+C4guC4suC4geC5iuC4p+C4ogor4LiC4Liy4LiB4Lit4LihCivguILguLLguYDguIHguKfguLXguKLguJkKK+C4guC5ieC4suC5gOC4geC5iOC4suC5gOC4leC5iOC4suC5gOC4peC4teC5ieC4ouC4hwor4LiC4Liy4LmE4LiB4LmICivguILguLLguYDguILguLXguKLguJQKK+C4guC4suC4hwor4LiC4LmI4Liy4LiHCivguILguYnguLLguIcKK+C4guC5ieC4suC4h+C5hgor4LiC4LmJ4Liy4LiH4LiB4LiaCivguILguYnguLLguIfguIHguKPguLDguJTguLLguJkKK+C4guC5ieC4suC4h+C4guC4tuC5ieC4mQor4LiC4LmJ4Liy4LiH4LiE4Lin4Liy4LiiCivguILguYnguLLguIfguYYg4LiE4Li54LmGCivguILguYnguLLguIfguYDguIfguLTguJkKK+C4guC5ieC4suC4h+C4iOC4seC4mQor4LiC4Liy4LiH4LiU4Lix4LiHCivguILguLLguIfguYHguJTguIcKK+C4guC5ieC4suC4h+C4leC4gQor4LiC4LmJ4Liy4LiH4LiV4Liw4LmA4Lig4LiyCivguILguYnguLLguIfguJXguLXguJkKK+C4guC5ieC4suC4h+C5geC4o+C4oQor4LiC4LmJ4Liy4LiH4Lil4Liy4LiiCivguILguYnguLLguIfguKvguLHguKfguJnguK3guJkKK+C4guC5ieC4suC4h+C4reC4reC4gQor4LiC4Liy4LiI4LijCivguILguYnguLLguYDguIjguYnguLIKK+C4guC4suC4k+C4uAor4LiC4Liy4LiUCivguILguLLguJTguIHguLHguJkKK+C4guC4suC4lOC4hOC4o+C4suC4pwor4LiC4Liy4LiU4LiE4Lit4LiK4LmJ4Liy4LiHCivguILguLLguJTguITguYjguLIKK+C4guC4suC4lOC4hOC4swor4LiC4Liy4LiU4LmB4LiE4Lil4LiZCivguILguLLguJTguYPguIgKK+C4guC4suC4lOC4leC4geC4muC4geC4nuC4o+C5iOC4reC4hwor4LiC4Liy4LiU4LiV4Lil4Liy4LiUCivguILguLLguJTguJXguK3guJkKK+C4guC4suC4lOC4leC4seC4pwor4LiC4Liy4LiU4LiX4Li44LiZCivguILguLLguJTguJvguLLguIEKK+C4guC4suC4lOC4oeC4t+C4rQor4LiC4Liy4LiU4LmA4Lih4LmH4LiUCivguILguLLguJTguKXguK3guKIKK+C4guC4suC4lOC4q+C4seC4p+C4iuC5ieC4suC4hwor4LiC4Liy4LiU4LmA4Lir4Lil4Li34LitCivguILguLLguJTguK3guLLguKLguLgKK+C4guC5iOC4suC5geC4lOC4hwor4LiC4LmI4Liy4LiV4LmJ4LiZCivguILguLLguJfguJnguLXguKLguLAKK+C4guC4suC4l+C4o+C4suC4ogor4LiC4LmJ4Liy4LmE4LiXCivguILguLLguJkKK+C4guC4suC4meC4geC4ouC4suC4hwor4LiC4Liy4LiZ4LmE4LiCCivguILguLLguJnguJnguLLguIQKK+C4guC4suC4meC4o+C4q+C4seC4qgor4LiC4LmJ4Liy4LiZ4Lit4LiB4LmA4LiI4LmJ4LiyIOC4guC5ieC4suC4p+C4meC4reC4geC4q+C4oeC5ieC4rQor4LiC4LmJ4Liy4LiZ4LmJ4Lit4LiiCivguILguLLguJnguLLguIcKK+C4guC4suC4mgor4LiC4Liy4Lib4Lij4Liw4LiI4LizCivguILguYnguLLguYHguJzguYjguJnguJTguLTguJkKK+C4guC5ieC4suC5gOC4neC5ieC4sgor4LiC4LmJ4Liy4Lie4LmA4LiI4LmJ4LiyCivguILguYnguLLguJ7guKPguLAKK+C4guC5ieC4suC4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4sgor4LiC4Liy4Lie4Lix4LiaCivguILguLLguKEKK+C4guC5iOC4suC4oQor4LiC4LmJ4Liy4LihCivguILguYnguLLguKHguYYKK+C4guC5ieC4suC4oeC4meC5ieC4s+C4guC5ieC4suC4oeC4l+C4sOC5gOC4pQor4LiC4LmJ4Liy4Lih4LiZ4LmJ4Liz4LiC4LmJ4Liy4Lih4LiX4LmI4LiyCivguILguYnguLLguKHguKrguKHguLjguJfguKMKK+C4guC5ieC4suC4oeC4q+C4meC5ieC4sgor4LiC4LmJ4Liy4Lih4Lir4LiZ4LmJ4Liy4LiC4LmJ4Liy4Lih4LiV4LiyCivguILguYnguLLguKHguKvguLHguKcKK+C4guC4suC4oeC5ieC4sgor4LiC4Liy4LiiCivguILguYjguLLguKIKK+C4guC4suC4ouC4guC4suC4lAor4LiC4LmI4Liy4Lii4LiH4Liy4LiZCivguILguLLguKLguIrguLLguJXguLQKK+C4guC4suC4ouC4iuC4t+C5iOC4rQor4LiC4Liy4Lii4LiV4Lix4LinCivguILguLLguKLguJXguLLguKHguITguLPguJ7guKPguKPguJPguJnguLIKK+C4guC4suC4ouC4leC4suC4oeC4leC4seC4p+C4reC4ouC5iOC4suC4hwor4LiC4Liy4Lii4LiX4Lit4LiU4LiV4Lil4Liy4LiUCivguILguLLguKLguJrguYnguLLguJnguILguLLguKLguYDguKHguLfguK3guIcKK+C4guC4suC4ouC4m+C4peC4teC4gQor4LiC4Liy4Lii4Lic4LmJ4Liy4LmA4Lit4Liy4Lir4LiZ4LmJ4Liy4Lij4Lit4LiUCivguILguLLguKLguYDguJzguLfguYjguK3guIrguK3guJoKK+C4guC4suC4ouC4neC4suC4gQor4LiC4Liy4Lii4Liq4LmI4LiHCivguILguLLguKLguKvguJnguYnguLIKK+C4guC4suC4ouC4q+C4meC5ieC4suC4guC4suC4ouC4leC4sgor4LiC4Liy4Lii4Lir4LiZ4LmJ4Liy4Lin4Lix4LiZ4Lil4Liw4Lir4LmJ4Liy4LmA4Lia4Li14LmJ4LiiCivguILguLLguKLguKvguLkKK+C4guC4suC4ouC5gOC4q+C4oeC4sgor4LiC4LmJ4Liy4Lij4Liy4LiK4LiB4Liy4LijCivguILguLLguKUKK+C4guC4suC4pwor4LiC4LmI4Liy4LinCivguILguYnguLLguKcKK+C4guC5iOC4suC4p+C4geC4o+C4reC4hwor4LiC4LmJ4Liy4Lin4LiB4Lij4Li5CivguILguYnguLLguKfguIHguKXguYnguK3guIcKK+C4guC5ieC4suC4p+C4geC4peC5ieC4sgor4LiC4LmJ4Liy4Lin4LmA4LiB4Lij4Li14Lii4LiaCivguILguYnguLLguKfguYDguIHguKPguLXguKLguJrguJvguLLguIHguKvguKHguYnguK0KK+C4guC5ieC4suC4p+C5gOC4geC4o+C4teC4ouC4muC4reC5iOC4reC4mQor4LiC4LmJ4Liy4Lin4LmA4LiB4LmI4LiyCivguILguYnguLLguKfguYHguIHguIcKK+C4guC5ieC4suC4p+C5guC4geC4mgor4LiC4LmJ4Liy4Lin4LiC4Lin4Lix4LiNCivguILguYnguLLguKfguILguK3guIcKK+C4guC5ieC4suC4p+C4guC5ieC4sgor4LiC4LmJ4Liy4Lin4LmB4LiC4LiBCivguILguYjguLLguKfguITguKPguLLguKcKK+C4guC5ieC4suC4p+C4hOC4p+C4mgor4LiC4LmJ4Liy4Lin4LiE4LizCivguILguYnguLLguKfguYHguITguJoKK+C4guC5ieC4suC4p+C4h+C4seC4mQor4LiC4LmJ4Liy4Lin4LiI4Li14LmICivguILguLLguKfguIjguLXguJoKK+C4guC5ieC4suC4p+C5gOC4iOC5ieC4sgor4LiC4LmJ4Liy4Lin4LmB4LiI4LiBCivguILguYnguLLguKfguYHguIrguYgKK+C4guC5ieC4suC4p+C4i+C5ieC4reC4oQor4LiC4LmJ4Liy4Lin4LiL4Lit4LiiCivguILguYnguLLguKfguYHguJTguIHguIfguLIKK+C4guC5ieC4suC4p+C5geC4lOC4h+C5geC4geC4h+C4o+C5ieC4reC4mQor4LiC4LmJ4Liy4Lin4LiV4LmJ4LihCivguILguYnguLLguKfguJXguYnguKHguJnguYnguLPguKfguLjguYnguJkKK+C4guC5ieC4suC4p+C4leC5ieC4oeC4m+C4seC4lAor4LiC4LmJ4Liy4Lin4LiV4Lit4LiBCivguILguYnguLLguKfguJXguK3guIHguJXguLHguYnguIcKK+C4guC5ieC4suC4p+C4leC4reC4geC5geC4leC4gQor4LiC4LmJ4Liy4Lin4LiV4Lix4LiHCivguILguYnguLLguKfguJXguLLguIEKK+C4guC5ieC4suC4p+C4leC4uQor4LiC4LmJ4Liy4Lin4LmB4LiV4LiBCivguILguYnguLLguKfguYHguJXguJkKK+C4guC5ieC4suC4p+C4l+C4tOC4nuC4ouC5jAor4LiC4LmJ4Liy4Lin4LiZ4LiBCivguILguYnguLLguKfguJnguLbguYjguIcKK+C4guC5ieC4suC4p+C4muC4suC4leC4owor4LiC4LmJ4Liy4Lin4Lia4Li04LiT4LiR4LmMCivguILguYnguLLguKfguJrguLjguKvguKPguLXguYgKK+C4guC5ieC4suC4p+C5gOC4muC4sgor4LiC4LmJ4Liy4Lin4LmA4Lia4Li34LitCivguILguYnguLLguKfguJvguKPguLDguJTguLHguJrguJTguLTguJkKK+C4guC5ieC4suC4p+C4m+C4peC4ueC4gQor4LiC4LmJ4Liy4Lin4Lib4Lix4LiUCivguILguYnguLLguKfguJvguYjguLIKK+C4guC5ieC4suC4p+C4m+C4suC4lAor4LiC4LmJ4Liy4Lin4Lib4Li44LmJ4LiZCivguILguYnguLLguKfguYDguJvguKPguJUKK+C4guC5ieC4suC4p+C5gOC4m+C4peC4t+C4reC4gQor4LiC4LmJ4Liy4Lin4LmA4Lib4Li14Lii4LiBCivguILguYnguLLguKfguJzguK3guIEKK+C4guC5ieC4suC4p+C4nOC4reC4geC4geC4o+C4sOC4muC4reC4geC4meC5ieC4swor4LiC4LmJ4Liy4Lin4Lie4Lij4LiwCivguILguLLguKfguJ7guKfguIcKK+C4guC5ieC4suC4p+C4nuC4reC4hwor4LiC4LmI4Liy4Lin4Lie4Liy4LiU4Lir4Lix4LinCivguILguYnguLLguKfguYLguJ7guJQKK+C4guC5ieC4suC4p+C4n+C5iOC4suC4hwor4LiC4LmJ4Liy4Lin4LmA4Lig4LiyCivguILguYnguLLguKfguKHguLHguJkKK+C4guC4suC4p+C4oeC5ieC4sgor4LiC4LmJ4Liy4Lin4Lih4Li04LmI4LiZCivguILguYnguLLguKfguYDguKHguYjguLIKK+C4guC5ieC4suC4p+C5gOC4oeC5iOC4suC4l+C4reC4lAor4LiC4LmI4Liy4Lin4Lii4LiB4LmA4Lih4LiGCivguILguYnguLLguKfguKLguLLguIHguKvguKHguLLguIHguYHguJ7guIcKK+C4guC5ieC4suC4p+C4ouC4suC4hOC4uQor4LiC4LmJ4Liy4Lin4Lii4LizCivguILguYnguLLguKfguYDguKLguYfguJnguYPguJXguYkKK+C4guC5ieC4suC4p+C5gOC4ouC5h+C4meC5gOC4q+C4meC4t+C4rQor4LiC4LmJ4Liy4Lin4Lil4Liw4Lih4Liy4LiZCivguILguYjguLLguKfguKXguYjguLIKK+C4guC5iOC4suC4p+C4quC4lAor4LiC4LmJ4Liy4Lin4Liq4Lin4LiiCivguILguYnguLLguKfguKrguLLguIEKK+C4guC5iOC4suC4p+C4quC4suC4owor4LiC4LmJ4Liy4Lin4Liq4Liy4LijCivguILguYnguLLguKfguKrguLjguIEKK+C4guC5ieC4suC4p+C5gOC4quC5ieC4mQor4LiC4LmJ4Liy4Lin4Lir4LiZ4Lix4LiBCivguILguYnguLLguKfguKvguKHguIEKK+C4guC5ieC4suC4p+C4q+C4oeC4suC4gQor4LiC4LmJ4Liy4Lin4Lir4Lil4Liy4LihCivguILguYnguLLguKfguKvguKXguLLguKHguJXguLHguJQKK+C4guC5ieC4suC4p+C4q+C4seC4p+C5guC4guC4mQor4LiC4LmJ4Liy4Lin4Lir4Liy4LiH4LiK4LmJ4Liy4LiHCivguILguYnguLLguKfguYDguKvguJnguLXguKLguKcKK+C4guC5ieC4suC4p+C5gOC4q+C4meC4teC4ouC4p+C4lOC4swor4LiC4LmJ4Liy4Lin4LmA4Lir4Lil4Li34Lit4LmA4LiB4Lil4Li34Lit4Lit4Li04LmI4LihCivguILguLLguKfguYPguKvguI3guYgKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iAor4LiC4LmJ4Liy4Lin4LmD4Lir4Lih4LmI4LiZ4LmJ4Lit4LiiCivguILguYnguLLguKfguYPguKvguKHguYjguJvguKXguLLguKHguLHguJkKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iOC5g+C4q+C4jeC5iAor4LiC4LmJ4Liy4Lin4Lit4Lix4LiH4LiB4Li44Lil4Li1CivguILguYnguLLguKfguK7guLLguIcKK+C4guC5ieC4suC4qOC4tuC4gQor4LiC4Liy4Lir4Lih4LiyCivguILguLLguKvguKLguLHguYjguIcKK+C4guC5ieC4suC4q+C4peC4p+C4hwor4LiC4LmJ4Liy4Lir4Lil4Lin4LiH4LmA4LiU4Li04LihCivguILguYnguLLguKvguKXguKfguIfguJnguYnguK3guKIKK+C4guC5ieC4suC4q+C4peC4p+C4h+C4q+C4peC4seC4h+C4peC4suC4ogor4LiC4Liy4Lit4LmI4Lit4LiZCivguILguLMKK+C4guC5iOC4s+C5gOC4guC4teC4ouC4pwor4LiC4Li04LiBCivguILguLTguIHguYYKK+C4guC4tOC4hwor4LiC4Li04LmI4LiHCivguILguLTguIfguIHguYfguKPguLIg4LiC4LmI4Liy4LiB4LmH4LmB4Lij4LiHCivguILguLTguIfguYHguIHguKXguIcKK+C4guC4tOC4h+C5geC4hOC4o+C4hwor4LiC4Li04LiH4LmB4Lir4LmJ4LiHCivguILguLTguJQKK+C4guC4tOC4m+C4quC4seC4l+C5guC4lwor4LiC4Li04LihCivguILguLXguYgKK+C4guC4teC5iQor4LiC4Li14LmJ4LiB4LiaCivguILguLXguYnguIHguKPguLDguJfguLLguYDguIHguKXguLfguK0KK+C4guC4teC5ieC4geC5ieC4reC4meC5g+C4q+C4jeC5iOC5g+C4q+C5ieC5gOC4lOC5h+C4geC5gOC4q+C5h+C4mQor4LiC4Li14LmJ4LiB4Liw4LmC4Lil4LmJ4LmC4LiX4LmJCivguILguLXguYnguIHguLIKK+C4guC4teC5ieC4geC5ieC4suC4hwor4LiC4Li14LmJ4LiB4Liy4LiU4LiHCivguILguLXguYnguIHguLLguYHguJTguIcKK+C4guC4teC5ieC4geC4suC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiC4Li14LmJ4LmA4LiB4Lil4Li34LitCivguILguLXguYnguILguKEKK+C4guC4teC5ieC4guC4p+C4hwor4LiC4Li14LmJ4LiC4LmJ4LiyCivguILguLXguYnguILguLjguKIKK+C4guC4teC5ieC5gOC4guC5h+C4mgor4LiC4Li14LmJ4LiE4Lij4Lit4LiBCivguILguLXguYnguITguKPguLHguYjguIcKK+C4guC4teC5ieC4hOC4p+C4suC4ogor4LiC4Li14LmJ4LiE4Li44LiBCivguILguLXguYnguYDguITguYnguLIKK+C4guC4teC5ieC5guC4hOC4o+C4hwor4LiC4Li14LmJ4LiI4Liy4LiaCivguILguLXguYjguIrguYnguLLguIfguIjguLHguJrguJXguLHguYrguIHguYHguJXguJkKK+C4guC4teC5ieC4i+C5ieC4suC4ogor4LiC4Li14LmJ4LmA4LiL4LiyCivguILguLXguYnguYTguIvguYkKK+C4guC4teC4k+C4sAor4LiC4Li14LiT4Liy4Liq4LieCivguILguLXguJQKK+C4guC4teC4lOC4guC4seC5ieC4mQor4LiC4Li14LiU4LiE4Lij4LmI4Lit4LihCivguILguLXguJTguITguLHguYjguJkKK+C4guC4teC4lOC5gOC4quC5ieC4meC4leC4suC4ogor4LiC4Li14LmJ4LmA4LiU4Li34Lit4LiUCivguILguLXguYnguYHguJTguJQKK+C4guC4teC5ieC4leC4lAor4LiC4Li14LmJ4LiV4Lix4LiH4LiZ4Li1CivguILguLXguYnguJXguLTguYnguKcKK+C4guC4teC5ieC4leC4t+C4lAor4LiC4Li14LmJ4LmA4LiV4LmI4LiyCivguILguLXguYnguYHguJXguYkKK+C4guC4teC5ieC5hOC4leC5iQor4LiC4Li14LmJ4LiW4Lix4LiHCivguILguLXguYnguYDguJbguYnguLIKK+C4guC4teC5ieC5hOC4lgor4LiC4Li14LmJ4LiX4LiyCivguILguLXguYnguJfguLnguJQKK+C4guC4teC5ieC5gOC4l+C5iOC4rQor4LiC4Li14LmJ4LmA4LiX4LiyCivguILguLXguYnguYDguJfguLfguK3guIEKK+C4guC4teC5ieC4meC4gQor4LiC4Li14Lib4LiZ4Liy4Lin4Li44LiYCivguILguLXguJvguJnguLLguKfguLjguJjguJnguLPguKfguLTguJbguLUKK+C4guC4teC5ieC4m+C4sOC4leC4tOC5i+C4pwor4LiC4Li14LmJ4Lib4Liy4LiBCivguILguLXguYnguYDguJvguYkKK+C4guC4teC5ieC5gOC4m+C5h+C4lAor4LiC4Li14LmJ4Lic4LiHCivguILguLXguYnguJzguLbguYnguIcKK+C4guC4teC5ieC4neC4tOC5iOC4mQor4LiC4Li14LmJ4LmB4Lie4LmJ4LiK4Lin4LiZ4LiV4Li1CivguILguLXguYnguKHguK3guJQKK+C4guC4teC5ieC4oeC5ieC4sgor4LiC4Li14LmI4Lih4LmJ4Liy4LiV4Li14LiE4Lil4Li1CivguILguLXguYjguKHguYnguLLguYDguKXguLXguKLguJrguITguYjguLLguKIKK+C4guC4teC5iOC4oeC5ieC4suC4quC5iOC4h+C5gOC4oeC4t+C4reC4hwor4LiC4Li14LmJ4Lih4Li04LmI4LiZCivguILguLXguYnguKHguLnguIEKK+C4guC4teC5ieC5gOC4oeC4hgor4LiC4Li14LmJ4LmB4Lih4Lil4LiH4Lin4Lix4LiZCivguILguLXguYnguYHguKHguKcKK+C4guC4teC5ieC5hOC4oeC5iOC5g+C4q+C5ieC4q+C4oeC4suC4geC4tOC4mQor4LiC4Li14LmJ4Lii4Lit4LiBCivguILguLXguYnguKLguLIKK+C4guC4teC5ieC5geC4ogor4LiC4Li14LijCivguILguLXguYnguKPguLHguIfguYHguIQKK+C4guC4teC5ieC4o+C4suC4lOC5guC4l+C4qeC4peC5iOC4reC4hwor4LiC4Li14LmJ4Lij4Li04LmJ4LinCivguILguLXguYnguYDguKPguLfguYnguK3guJkKK+C4guC4teC5ieC5gOC4o+C4t+C5ieC4reC4meC4geC4p+C4suC4hwor4LiC4Li14LmJ4LmB4Lij4LiUCivguILguLXguYnguYHguKPguJTguKXguYnguK3guKHguJvguKPguKfguJQKK+C4guC4teC5ieC4peC4oQor4LiC4Li14LmJ4Lil4Lit4LiBCivguILguLXguYnguKXguLXguJoKK+C4guC4teC5ieC5gOC4peC5h+C4mgor4LiC4Li14LmJ4LmC4Lil4LmJCivguILguLXguYnguKrguLnguJQKK+C4guC4teC5ieC4q+C4lOC4leC4lOC4q+C4suC4ogor4LiC4Li14LmJ4Lir4LiZ4Lit4LiZCivguILguLXguYnguKvguJnguYnguLIKK+C4guC4teC5ieC4q+C4meC4uQor4LiC4Li14LmJ4Lir4Lih4LiyCivguILguLXguYnguYDguKvguKPguYgKK+C4guC4teC5ieC5gOC4q+C4peC5h+C4gQor4LiC4Li14LmJ4LmD4Lir4Lih4LmI4Lir4Lih4Liy4Lir4Lit4LihCivguILguLXguYnguK3guYnguJkKK+C4guC4teC5ieC4reC5ieC4suC4ogor4LiC4Li24LiHCivguILguLbguYnguIcKK+C4guC4tuC5ieC4h+C5guC4geC4o+C4mAor4LiC4Li24LiH4LiC4Lix4LiHCivguILguLbguYnguIfguYDguITguLXguKLguJQKK+C4guC4tuC4h+C4leC4sgor4LiC4Li24LiH4Lie4Li34LiUCivguILguLbguIfguK3guLnguJQKK+C4guC4tuC5ieC4mQor4LiC4Li24LmJ4LiZ4LmA4LiC4Li14Lii4LiHCivguILguLbguYnguJnguITguKPguLkKK+C4guC4tuC5ieC4meC4hOC4suC4mQor4LiC4Li24LmJ4LiZ4LmD4LiICivguILguLbguYnguJnguInguYjguLLguKIKK+C4guC4tuC5ieC4meC4iuC4t+C5iOC4rQor4LiC4Li24LmJ4LiZ4LiK4Li34LmI4Lit4Lin4LmI4LiyCivguILguLbguYnguJnguIvguLHguIcKK+C4guC4tuC5ieC4meC4leC5ieC4meC5hOC4oeC5ieC4quC4uOC4lOC4ouC4reC4lAor4LiC4Li24LmJ4LiZ4Lib4Liy4LiBCivguILguLbguYnguJnguJ7guKXguLHguJrguJ7guKXguLIKK+C4guC4tuC5ieC4meC5hOC4oeC5ieC4guC4tuC5ieC4meC4oeC4t+C4rQor4LiC4Li24LmJ4LiZ4Lij4Liw4Lin4Liy4LiHCivguILguLbguYnguJnguKPguYnguLLguJkKK+C4guC4tuC5ieC4meC4quC4suC4ogor4LiC4Li24LmJ4LiZ4LmA4Liq4Li14Lii4LiHCivguILguLbguYnguJnguKvguJnguYnguLLguILguLbguYnguJnguJXguLIKK+C4guC4tuC5ieC4meC4q+C4oeC5ieC4rQor4LiC4Li24LmJ4LiZ4Lir4LiyCivguILguLbguYnguJnguYDguKvguJnguLfguK3guKXguYjguK3guIfguYPguJXguYkKK+C4guC4t+C4mQor4LiC4Li34LmI4LiZCivguILguLfguYjguJnguILguKEKK+C4guC4t+C4meC5g+C4iAor4LiC4Li34LmI4LitCivguILguLfguYjguK3guIHguLDguKXguLDguJvguLHguIfguKvguLIKK+C4guC4t+C5iOC4reC4guC4p+C4suC4hwor4LiC4Li34LmI4Lit4LiE4Lix4LiUCivguILguLfguYjguK3guIjguKHguLnguIEKK+C4guC4t+C5iOC4reC5gOC4l+C5iOC4suC4leC5iOC4rQor4LiC4Li34LmI4Lit4Lic4Li1CivguILguLfguYjguK3guKHguLjguIEKK+C4guC4t+C5iOC4reC4q+C4oeC4ueC5iAor4LiC4Li44LiBCivguILguLjguJQKK+C4guC4uOC4lOC4hOC4uOC5ieC4ogor4LiC4Li44LiU4LiU4LmJ4Lin4Lii4Lib4Liy4LiB4LiW4Liy4LiB4LiU4LmJ4Lin4Lii4LiV4LiyCivguILguLjguJTguJTguLTguJnguIHguLTguJnguKvguI3guYnguLIKK+C4guC4uOC4lOC4muC5iOC4reC4peC5iOC4reC4m+C4peC4sgor4LiC4Li44LiZCivguILguLjguYjguJkKK+C4guC4uOC5iOC4meC4guC5ieC4reC4h+C4q+C4oeC4reC4h+C5g+C4iAor4LiC4Li44LmI4LiZ4LmA4LiE4Li34Lit4LiHCivguILguLjguYjguJnguYHguITguYnguJkKK+C4guC4uOC5iOC4meC5g+C4iAor4LiC4Li44LiZ4LiX4Lit4LiHCivguILguLjguJnguJnguLLguIcKK+C4guC4uOC4meC4meC4suC4h+C5g+C4iuC5iOC4nuC5iOC4reC5geC4oeC5iCDguKvguLTguJnguYHguIfguYjguYPguIrguYjguJXguLLguKLguLLguKIKK+C4guC4uOC4meC4meC5ieC4swor4LiC4Li44LiZ4Lia4Liy4LilCivguILguLjguJnguYHguJzguJkKK+C4guC4uOC4meC4nuC4pQor4LiC4Li44LiZ4Lie4Lix4LiS4LiZ4LmMCivguILguLjguJnguYDguJ7guYfguJQKK+C4guC4uOC5iOC4meC4oeC4seC4pwor4LiC4Li44LiZ4LmE4Lih4LmI4LiC4Li24LmJ4LiZCivguILguLjguJnguKjguLLguKUKK+C4guC4uOC4meC4qOC4tuC4gQor4LiC4Li44LmI4LiZ4Lir4Lih4Lit4LiHCivguILguLjguJnguKvguKHguLfguYjguJkKK+C4guC4uOC4meC4q+C4peC4p+C4hwor4LiC4Li44LihCivguILguLjguKIKK+C4guC4uOC4ouC5hOC4nOC5iAor4LiC4Li44Lii4Lit4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguILguLkKK+C4guC4ueC5iAor4LiC4Li54LmI4LiB4Lij4Lij4LmC4LiK4LiBCivguILguLnguYjguILguKfguLHguI0KK+C4guC4ueC5iOC5gOC4guC5h+C4jQor4LiC4Li54LiUCivguILguLnguJTguKPguLXguJQKK+C4guC4ueC4lOC5gOC4peC4t+C4reC4lAor4LiC4Li54LiU4LmA4Lil4Li34Lit4LiU4LiC4Li54LiU4LmA4LiZ4Li34LmJ4LitCivguYDguIIKK+C5gOC4guC5iQor4LmA4LiC4LiBCivguYDguILguYfguIcKK+C5gOC4guC5iOC4hwor4LmA4LiC4LiI4LijCivguYDguILguYfguI0KK+C5gOC4guC5h+C4jeC5g+C4iAor4LmA4LiC4LmH4LiUCivguYDguILguYfguJTguILguYnguK0KK+C5gOC4guC5h+C4lOC4guC5ieC4reC5gOC4guC5h+C4lOC4peC4swor4LmA4LiC4LmH4LiU4LmA4LiC4Li14LmJ4Lii4LinCivguYDguILguYfguJTguJ/guLHguJkKK+C5gOC4guC4lOC4sgor4LmA4LiC4LiVCivguYDguILguJXguYHguJTguJkKK+C5gOC4guC4leC5gOC4peC4t+C4reC4geC4leC4seC5ieC4hwor4LmA4LiC4LiV4Lit4Liz4LiZ4Liy4LiI4Lio4Liy4LilCivguYDguILguJkKK+C5gOC4guC5h+C4mQor4LmA4LiC4LmI4LiZCivguYDguILguYjguJnguYDguILguLXguYnguKLguKcKK+C5gOC4guC5h+C4meC4hOC4o+C4geC4guC4tuC5ieC4meC4oOC4ueC5gOC4guC4sgor4LmA4LiC4LmI4LiZ4LiG4LmI4LiyCivguYDguILguJnguIcKK+C5gOC4guC4meC4h+C4meC4suC4ouC4nuC4o+C4suC4mQor4LmA4LiC4LiZ4LmH4LiUCivguYDguILguJnguKIKK+C5gOC4guC4muC5h+C4iOC4guC4muC4p+C4mQor4LmA4LiC4Lia4LmH4LiVCivguYDguILguKEtCivguYDguILguYfguKEKK+C5gOC4guC5ieC4oQor4LmA4LiC4LmH4Lih4LiB4Lil4Lix4LiUCivguYDguILguYnguKHguILguYnguJkKK+C5gOC4guC5h+C4oeC4guC4seC4lAor4LmA4LiC4LmJ4Lih4LiC4Liy4LiaCivguYDguILguYnguKHguILguLLguJrguYTguKvguKEKK+C5gOC4guC5ieC4oeC5geC4guC5h+C4hwor4LmA4LiC4LmH4Lih4LiE4Lin4Lix4LiBCivguYDguILguKHguYfguIcKK+C5gOC4guC5ieC4oeC4h+C4p+C4lAor4LmA4LiC4LmH4Lih4LiL4LmI4Lit4LiZ4Lib4Lil4Liy4LiiCivguYDguILguKHguYfguJTguYHguILguKHguYgKK+C5gOC4guC5h+C4oeC4l+C4tOC4qAor4LmA4LiC4Lih4LmI4LiZCivguYDguILguKHguYnguJkKK+C5gOC4guC4oeC5ieC4meC4guC4sOC4oeC4seC4gQor4LmA4LiC4Lih4LijCivguYDguILguKHguKPguYTguJfguKPguYLguKLguIQKK+C5gOC4guC4oeC4o+C4nuC4p+C4hwor4LmA4LiC4Lih4Lij4Lij4Liy4LiK4Lia4Li44Lij4Li1CivguYDguILguKHguKPguYDguKvguKXguLfguK3guIcKK+C5gOC4guC4oeC4o+C5g+C4q+C4jeC5iAor4LmA4LiC4Lih4LiyCivguYDguILguKHguYjguLIKK+C5gOC4guC4oeC4suC5guC4geC4o+C4ogor4LmA4LiC4Lih4LmI4Liy4LiL4Liy4LiHCivguYDguILguKHguLfguK3guJoKK+C5gOC4guC4ogor4LmA4LiC4Lii4LiBCivguYDguILguKLguYjguIcKK+C5gOC4guC4ouC5iOC4h+C5gOC4geC5h+C4h+C4geC4reC4ogor4LmA4LiC4Lii4LiV4Liy4LiiCivguYDguILguKLguYnguK3guYHguILguKLguYjguIcKK+C5gOC4guC4ouC4reC4sOC4guC4ouC4sAor4LmA4LiC4Lii4LmI4LiyCivguYDguILguKLguLTguJkKK+C5gOC4guC4ouC4tOC4mgor4LmA4LiC4Lii4Li04Lia4LiC4Lii4Liy4LiaCivguYDguILguKLguLTguJrguJDguLLguJnguLAKK+C5gOC4guC4ouC4teC4ouC4p+C4guC4ouC4reC4mQor4LmA4LiC4Lii4Li34LmJ4Lit4LiZCivguYDguILguKPguK3guLAKK+C5gOC4guC4peC4hwor4LmA4LiC4Lil4Lit4LiwCivguYDguILguKXguLAKK+C5gOC4guC4peC4sgor4LmA4LiC4Lil4Liy4LiwCivguYDguILguKcKK+C5gOC4guC4qeC4leC4owor4LmA4LiC4Lip4LihCivguYDguILguKnguLXguKLguKMKK+C5gOC4guC4rOC4sAor4LmA4LiC4Liw4LiC4LiwCivguYDguILguLIKK+C5gOC4guC5iOC4sgor4LmA4LiC4LmJ4LiyCivguYDguILguYnguLLguIHguKPguLDguYLguIjguKEKK+C5gOC4guC5ieC4suC4geC4o+C4sOC4lOC4ueC4geC4lOC4swor4LmA4LiC4Liy4LiB4Lin4Liy4LiHCivguYDguILguYnguLLguYDguIHguJPguJHguYwKK+C5gOC4guC5ieC4suC5gOC4geC4teC4ogor4LmA4LiC4Liy4LmB4LiB4LiwCivguYDguILguYnguLLguILguYnguK0KK+C5gOC4guC5ieC4suC4guC4sgor4LmA4LiC4LmJ4Liy4LiC4LmJ4Liy4LiHCivguYDguILguYnguLLguITguK0KK+C5gOC4guC5ieC4suC4hOC4tOC4pwor4LmA4LiC4LmJ4Liy4LiE4Li54LmICivguYDguILguYnguLLguYDguITguKPguLfguYjguK3guIcKK+C5gOC4guC5ieC4suC5gOC4hOC5ieC4sgor4LmA4LiC4LmJ4Liy4LmE4LiE4LilCivguYDguILguYnguLLguYDguIfguLXguKLguJoKK+C5gOC4guC5ieC4suC5geC4h+C5iAor4LmA4LiC4LmJ4Liy4LmA4LiI4LmJ4LiyCivguYDguILguYnguLLguYDguIjguYnguLLguYDguILguYnguLLguJnguLLguKIKK+C5gOC4guC5ieC4suC5g+C4iAor4LmA4LiC4LmJ4Liy4LiK4Li34LmI4LitCivguYDguILguYnguLLguIzguLLguJkKK+C5gOC4guC5ieC4suC4lOC5ieC4suC4ouC5gOC4guC5ieC4suC5gOC4guC5h+C4oQor4LmA4LiC4LmJ4Liy4LmA4LiU4Li34Lit4LiiCivguYDguILguYnguLLguJXguKPguLXguJfguLnguJUKK+C5gOC4guC5ieC4suC4leC4reC4hwor4LmA4LiC4LmJ4Liy4LiV4Lix4LinCivguYDguILguYnguLLguJXguLLguIjguJkKK+C5gOC4guC5ieC4suC4leC4suC4oeC4leC4o+C4reC4geC4reC4reC4geC4leC4suC4oeC4m+C4o+C4sOC4leC4uQor4LmA4LiC4LmJ4Liy4LiV4Liy4Lij4LmJ4Liy4LiiCivguYDguILguYnguLLguJXguLPguKPguLIKK+C5gOC4guC5ieC4suC4leC4ueC5iQor4LmA4LiC4LmJ4Liy4LmE4LiV4LmJ4LmA4LiC4LmJ4Liy4LmE4LifCivguYDguILguYnguLLguJbguYnguLMKK+C5gOC4guC5ieC4suC4luC4tuC4hwor4LmA4LiC4LmJ4Liy4LmA4LiW4Li34LmI4Lit4LiZ4Lit4Lii4LmI4Liy4Lil4Li34Lih4Lie4Lij4LmJ4LiyCivguYDguILguYnguLLguJfguKPguIcKK+C5gOC4guC5ieC4suC4l+C5iOC4sgor4LmA4LiC4LmJ4Liy4LiX4Li1CivguYDguILguYnguLLguJfguLXguYgKK+C5gOC4guC5ieC4suC4l+C4uOC4mQor4LmA4LiC4LmJ4Liy4LiZ4Lit4LiB4Lit4Lit4LiB4LmD4LiZCivguYDguILguYnguLLguYDguJnguLfguYnguK0KK+C5gOC4guC5ieC4suC5geC4muC4mgor4LmA4LiC4LmJ4Liy4LmB4Lia4Lia4LmA4LiC4LmJ4Liy4LmB4Lic4LiZCivguYDguILguYnguLLguJvguIEKK+C5gOC4guC5ieC4suC4m+C4suC4geC5hOC4oeC5iQor4LmA4LiC4LmJ4Liy4Lib4Li04LmJ4LiHCivguYDguILguYnguLLguJvguLXguIEKK+C5gOC4guC4suC5gOC4m+C4peC5ieC4sgor4LmA4LiC4LmJ4Liy4LmE4LibCivguYDguILguYnguLLguJzguLUKK+C5gOC4guC5ieC4suC4nOC4ueC5ieC5gOC4guC5ieC4suC4hOC4mQor4LmA4LiC4LmJ4Liy4Lid4Lix4LiBCivguYDguILguYnguLLguJ3guLHguJkKK+C5gOC4guC5ieC4suC5gOC4neC5ieC4sgor4LmA4LiC4LmJ4Liy4LmA4Lid4Li34Lit4LiBCivguYDguILguYnguLLguJ7guIHguYDguILguYnguLLguKvguYjguK0KK+C5gOC4guC5ieC4suC4nuC4o+C4o+C4qeC4sgor4LmA4LiC4LmJ4Liy4Lie4Lij4Liw4LmA4LiC4LmJ4Liy4LiZ4Liy4LiHCivguYDguILguYnguLLguJ7guLjguIcKK+C5gOC4guC4suC4oeC4rQor4LmA4LiC4LmJ4Liy4Lih4LmI4Liy4LiZCivguYDguILguYnguLLguYDguKHguLfguK3guIfguJXguLLguKvguKXguLTguYjguKfguJXguYnguK3guIfguKvguKXguLTguYjguKfguJXguLLguJXguLLguKEKK+C5gOC4guC5ieC4suC5hOC4oeC5iQor4LmA4LiC4LmJ4Liy4Lii4LiyCivguYDguILguYnguLLguKPguIHguYDguILguYnguLLguJ7guIcKK+C5gOC4guC5ieC4suC4o+C4q+C4seC4qgor4LmA4LiC4LmJ4Liy4Lij4LmI4Lit4LiH4LmA4LiC4LmJ4Liy4Lij4Lit4LiiCivguYDguILguYnguLLguKPguK3guJoKK+C5gOC4guC5ieC4suC4o+C4reC4ogor4LmA4LiC4LmJ4Liy4Lij4LmJ4Liy4LiiCivguYDguILguYnguLLguKPguLXguJUKK+C5gOC4guC5ieC4suC4o+C4ueC4mwor4LmA4LiC4LmJ4Liy4Lij4Li54Lib4LmA4LiC4LmJ4Liy4Lij4Lit4LiiCivguYDguILguYjguLLguKXguLIKK+C5gOC4guC5ieC4suC4peC4tOC5ieC4mQor4LmA4LiC4LmJ4Liy4LmA4Lil4LmI4LihCivguYDguILguYnguLLguYDguKXguLfguK3guJQKK+C5gOC4guC5ieC4suC5gOC4peC4t+C4reC4lOC5gOC4guC5ieC4suC5gOC4meC4t+C5ieC4rQor4LmA4LiC4LmJ4Liy4LmC4Lil4LiHCivguYDguILguYnguLLguKfguLHguJTguYDguILguYnguLLguKfguLIKK+C5gOC4guC5ieC4suC4p+C5iOC4sgor4LmA4LiC4LmJ4Liy4LmA4Lin4LijCivguYDguILguYnguLLguYHguKfguYjguJkKK+C5gOC4guC5ieC4suC5gOC4qOC4teC4ouC4owor4LmA4LiC4LmJ4Liy4Liq4Lih4Liy4LiY4Li0CivguYDguILguYnguLLguKrguLjguKvguJnguLHguJUKK+C5gOC4guC5ieC4suC5g+C4quC5iAor4LmA4LiC4LmJ4Liy4LmE4Liq4LmJCivguYDguILguYnguLLguKvguJnguYnguLIKK+C5gOC4guC5ieC4suC4q+C4oeC5ieC4rQor4LmA4LiC4LmJ4Liy4Lir4Lih4Li04LmJ4LiZCivguYDguILguYnguLLguKvguKXguLHguIEKK+C5gOC4guC5ieC4suC4q+C4sgor4LmA4LiC4LmJ4Liy4Lir4Li44LmJ4LiZCivguYDguILguYnguLLguKvguLkKK+C5gOC4guC5ieC4suC4q+C4ueC4i+C5ieC4suC4ouC4l+C4sOC4peC4uOC4q+C4ueC4guC4p+C4sgor4LmA4LiC4LmJ4Liy4LmD4Lir4LmJCivguYDguILguYnguLLguYTguKvguJnguYDguILguYnguLLguYTguJTguYkKK+C5gOC4guC4suC4reC5iOC4reC4mQor4LmA4LiC4LmI4Liy4Lit4LmI4Lit4LiZCivguYDguILguLTguIcKK+C5gOC4guC4tOC4mQor4LmA4LiC4Li04LiaCivguYDguILguLXguYjguKIKK+C5gOC4guC4teC4ouC4hwor4LmA4LiC4Li14Lii4LiH4LmA4LiX4LmJ4LiyCivguYDguILguLXguKLguIfguJ7guKPguLDguJnguLLguIfguK3guLXguYgKK+C5gOC4guC4teC4ouC4h+C4nuC4o+C5ieC4sgor4LmA4LiC4Li14Lii4LiUCivguYDguILguLXguKLguJTguJXguLDguJvguLLguJQKK+C5gOC4guC4teC4ouC4mQor4LmA4LiC4Li14LmI4Lii4LiZCivguYDguILguLXguKLguJnguJTguYnguKfguKLguKHguLfguK3guKXguJrguJTguYnguKfguKLguJXguLXguJkKK+C5gOC4guC4teC4ouC4meC4l+C4reC4hwor4LmA4LiC4Li14Lii4LiZ4LmE4LiX4LiiCivguYDguILguLXguKLguJnguYDguKrguLfguK3guYPguKvguYnguKfguLHguKfguIHguKXguLHguKcKK+C5gOC4guC4teC4ouC4oQor4LmA4LiC4Li14Lii4LinCivguYDguILguLXguYnguKLguKcKK+C5gOC4guC4teC5ieC4ouC4p+C4geC4o+C4sOC5geC4lQor4LmA4LiC4Li14LmJ4Lii4Lin4LmB4LiB4LmJ4LinCivguYDguILguLXguKLguKfguYTguILguYjguIHguLIKK+C5gOC4guC4teC5ieC4ouC4p+C4h+C4uQor4LmA4LiC4Li14LmJ4Lii4Lin4LiV4Liw4LiC4Liy4LiaCivguYDguILguLXguYnguKLguKfguYDguJnguLfguYnguK0KK+C5gOC4guC4teC4ouC4p+C4nuC4o+C4sOC4reC4tOC4meC4l+C4o+C5jAor4LmA4LiC4Li14LmJ4Lii4Lin4LmA4Lil4LmH4LiaCivguYDguILguLXguKLguKfguYDguKrguKfguKIKK+C5gOC4guC4teC5ieC4ouC4p+C4q+C4meC4uOC4oeC4suC4mQor4LmA4LiC4Li14LmJ4Lii4Lin4Lir4Lih4LiyCivguYDguILguLXguKLguKfguKvguKfguLLguJkKK+C5gOC4guC4teC4ouC4p+C4q+C4suC4h+C5hOC4q+C4oeC5iQor4LmA4LiC4Li14Lii4LiwCivguYDguILguLfguK0KK+C5gOC4guC4t+C4reC4hwor4LmA4LiC4Li34LmI4Lit4LiHCivguYDguILguLfguYjguK3guJkKK+C5gOC4guC4t+C5iOC4reC4meC5gOC4nuC4iuC4owor4LmA4LiC4Li34Lit4LihCivguYHguIIKK+C5geC4guC5iQor4LmB4LiC4LiBCivguYHguILguIHguYDguJXguYnguLIKK+C5geC4guC4geC5gOC4leC5ieC4suC5gOC4guC5ieC4suC4o+C4seC4hwor4LmB4LiC4LiB4LmA4Lih4Li34Lit4LiHCivguYHguILguYfguIcKK+C5geC4guC5iOC4hwor4LmB4LiC4LmJ4LiHCivguYHguILguYfguIfguIHguKPguYnguLLguKcKK+C5geC4guC5h+C4h+C4geC4peC5ieC4sgor4LmB4LiC4LmH4LiH4LmB4LiB4Lij4LmI4LiHCivguYHguILguYnguIfguYTguIHguYgKK+C5geC4guC5h+C4h+C4guC5ieC4rQor4LmB4LiC4LmH4LiH4LiC4Lix4LiZCivguYHguILguYjguIfguILguLHguJkKK+C5geC4guC5h+C4h+C5g+C4iAor4LmB4LiC4LmH4LiH4LiV4Lix4LinCivguYHguILguYfguIfguKHguLfguK0KK+C5geC4guC5h+C4h+C5gOC4oeC4t+C4reC4hwor4LmB4LiC4LmH4LiH4LmB4Lij4LiHCivguYHguILguYnguIfguKrguLTguIfguKvguYwKK+C5geC4guC4mQor4LmB4LiC4LmI4LiZCivguYHguILguYnguJkKK+C5geC4guC4meC4guC4p+C4sgor4LmB4LiC4LiZ4LiE4Li54LmJCivguYHguILguJnguIcKK+C5geC4guC4meC4i+C5ieC4suC4ouC5geC4guC4meC4guC4p+C4sgor4LmB4LiC4LiZ4LiX4Li44LiB4LiC4LmMCivguYHguILguJnguJnguLLguIcKK+C5geC4guC4meC4nuC4seC4mgor4LmB4LiC4LiZ4LiwCivguYHguILguKEKK+C5geC4guC4oeC5h+C4mgor4LmB4LiC4Lih4LmI4LinCivguYHguILguKLguYfguIHguYYKK+C5geC4guC4ouC4hwor4LmB4LiC4Lii4LmI4LiHCivguYHguILguKLguIfguYHguILguIfguILguJkKK+C5geC4guC4ouC4h+C4q+C4meC4uQor4LmB4LiC4Lil4LiwCivguYHguILguKfguIEKK+C5geC4guC4p+C4hwor4LmB4LiC4Lin4LiZCivguYHguILguKfguJnguITguK0KK+C5geC4guC4p+C4meC4meC4p+C4oQor4LmB4LiC4Lin4LiZ4Lil4Lit4LiiCivguYHguILguKfguLAKK+C5geC4guC4quC4o+C5jAor4LmC4LiCCivguYLguILguIEKK+C5guC4guC4geC4quC4seC4mgor4LmC4LiC4LiHCivguYLguILguYjguIcKK+C5guC4guC5iOC4h+C4l+C4sOC5gOC4pQor4LmC4LiC4LiUCivguYLguILguJTguIcKK+C5guC4guC4mQor4LmC4LiC4LiZ4LiHCivguYLguILguKEKK+C5guC4guC4oS0KK+C5guC4guC4oeC4hwor4LmC4LiC4Lih4LiUCivguYLguILguKHguJTguKLguLIKK+C5guC4guC4ouC4gQor4LmC4LiC4Lii4LiB4LmA4LiC4Lii4LiBCivguYLguILguKLguIcKK+C5guC4guC4ouC5iOC4hwor4LmC4LiC4Lii4LiUCivguYLguILguKLguKEKK+C5guC4guC4peC4gQor4LmC4LiC4Lil4LiB4LmGCivguYLguILguKXguIcKK+C5guC4guC4peC4mQor4LmC4LiC4Lil4LiZ4LiX4Lin4Liy4LijCivguYLguILguKnguKEKK+C5hOC4ggor4LmE4LiC4LmICivguYTguILguYkKK+C5hOC4guC4geC4o+C4sOC4lOC4ueC4gQor4LmE4LiC4LmJ4LiB4Liy4LisCivguYTguILguYnguIHguLLguKzguJnguIHguJnguLLguIfguYHguK3guYjguJkKK+C5hOC4guC5ieC4geC4suC4rOC4q+C4peC4seC4h+C5geC4reC5iOC4mQor4LmE4LiC4LmJ4LiB4Liz4LmA4LiU4LiyCivguYTguILguYjguYTguIHguYgKK+C5hOC4guC5iOC4guC4p+C4seC4jQor4LmE4LiC4LiC4LmJ4LitCivguYTguILguYjguILguLLguIcKK+C5hOC4guC5iOC4guC4suC4pwor4LmE4LiC4LmI4LiC4LmJ4Liy4LinCivguYTguILguITguKfguIcKK+C5hOC4guC5ieC4hOC4p+C4suC4oeC4o+C5ieC4reC4mQor4LmE4LiC4LmI4LmA4LiE4LmH4LihCivguYTguILguYjguIjguKPguLDguYDguILguYkKK+C5hOC4guC5ieC4iOC4seC4muC4quC4seC5iOC4mQor4LmE4LiC4LmI4LiI4Li04LmJ4LiH4LiI4LiBCivguYTguILguYjguIjguLTguYnguIfguKvguKPguLXguJQKK+C5hOC4guC5iOC5gOC4iOC4teC4ouC4pwor4LmE4LiC4LmJ4LmD4LiICivguYTguILguYjguI3guLXguYjguJvguLjguYjguJkKK+C5hOC4guC5iOC4lOC4seC4mQor4LmE4LiC4LmI4LiU4Lix4LiZ4Lir4Lih4Li5CivguYTguILguYjguJTguLLguKcKK+C5hOC4guC5iOC5geC4lOC4hwor4LmE4LiC4LmJ4LmB4LiU4LiUCivguYTguILguYjguJXguLLguKLguYLguITguKEKK+C5hOC4guC5iOC4leC4uOC5i+C4mQor4LmE4LiC4LmI4LmA4LiV4LmI4LiyCivguYTguILguYnguJfguKPguJ7guLTguKkKK+C5hOC4guC5ieC4l+C4seC4muC4o+C4sOC4lOC4uQor4LmE4LiC4LmI4LiZ4LiB4LiB4Lij4Liw4Liq4LiyCivguYTguILguJnguYnguLMKK+C5hOC4guC5iOC4meC5ieC4swor4LmE4LiC4LmI4LiZ4LmJ4Liz4LiE4LmJ4Liy4LiHCivguYTguILguYjguYDguJnguYjguLIKK+C5hOC4guC5iOC5g+C4meC4q+C4tOC4mQor4LmE4LiC4LmI4Lib4Lil4LiyCivguYTguILguYnguJvguK3guJTguJrguKfguKEKK+C5hOC4guC5ieC4m+C5iOC4sgor4LmE4LiC4Lie4Lij4Liw4Lin4Li04Liq4Li54LiV4LijCivguYTguILguYjguJ7guK3guIEKK+C5hOC4guC5ieC4nuC4tOC4qQor4LmE4LiC4Lih4Lix4LiZCivguYTguILguYnguKHguLLguKXguLLguYDguKPguLXguKIKK+C5hOC4guC5iOC4oeC4uOC4gQor4LmE4LiC4Lii4LmI4LiZCivguYTguILguYjguYDguKLguLXguYjguKLguKfguKHguYnguLIKK+C5hOC4guC4o+C4sgor4LmE4LiC4LmI4Lil4LihCivguYTguILguKXguLLguJkKK+C5hOC4guC5iOC4peC4ueC4geC5gOC4guC4ogor4LmE4LiC4LmI4Lil4Li54LiB4Lii4Lit4LiUCivguYTguILguYnguYDguKXguLfguK3guJTguK3guK3guIEKK+C5hOC4guC4p+C5iAor4LmE4LiC4Lin4LmJCivguYTguILguKfguYnguYDguILguKcKK+C5hOC4guC4p+C5iOC4hOC4p+C5ieC4sgor4LmE4LiC4Lin4LmJ4LmC4Lij4LiHCivguYTguILguKfguYjguKvguYnguLLguIcKK+C5hOC4guC4qeC4ogor4LmE4LiC4LmJ4Liq4Lix4LiZ4LiZ4Li04Lia4Liy4LiVCivguYTguILguKrguLHguJnguKvguKXguLHguIcKK+C5hOC4guC4quC4seC4meC4q+C4peC4seC4h+C4reC4seC4geC5gOC4quC4mgor4LmE4LiC4LmI4Liq4Liz4LmA4Lig4LiyCivguYTguILguKrguLfguK0KK+C5hOC4guC5gOC4quC4meC4teC4ouC4lAor4LmE4LiC4LmI4Lir4LiH4Liq4LmMCivguYTguILguYnguKvguKfguLHguJQKK+C5hOC4guC5ieC4q+C4p+C4seC4lOC5g+C4q+C4jeC5iAor4LmE4LiC4LmI4Lir4Lin4Liy4LiZCivguYTguILguYnguKvguLHguKcKK+C5hOC4guC5ieC4q+C4seC4p+C4peC4oQor4LmE4LiC4LmI4Lir4LizCivguYTguILguYjguKvguLTguJkKK+C5hOC4guC4q+C4uQor4LmE4LiC4LmJ4LmA4Lir4Lil4Li34Lit4LiHCivguYTguILguYjguYDguKvguLIKK+C5hOC4guC5iOC5gOC4q+C4teC5ieC4ogor4LmE4LiC4LmI4LmB4Lir4LiZCivguIMKK+C4hAor4LiE4LiE4LiZLQor4LiE4LiE4LiZ4LiwCivguITguITguJnguLHguKHguJ7guKMKK+C4hOC4hOC4meC4suC4h+C4hOC5jAor4LiE4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguIcKK+C4hOC4h+C4geC4o+C4sOC4nuC4seC4mQor4LiE4LiH4LiB4Lij4Liw4Lie4Lix4LiZ4LiK4Liy4LiV4Lij4Li1CivguITguIfguYHguIHguYjguYDguKPguLXguKLguJkKK+C4hOC4h+C4guC4suC4lAor4LiE4LiH4LiE4Lil4Lix4LiHCivguITguIfguITguLIKK+C4hOC4h+C4hOC4suC5gOC4lOC4t+C4reC4lAor4LiE4LiH4LiE4Liy4Lil4Lix4LiiCivguITguIfguYTguITguKIKK+C4hOC4h+C4leC4seC4pwor4LiE4LiH4LiX4LiZCivguITguIfguJfguLXguYgKK+C4hOC4h+C5gOC4quC5ieC4meC4hOC4h+C4p+C4sgor4LiE4LiH4LmA4Lir4Lil4Li34LitCivguITguIotCivguITguIrguIHguKPguKPguKEKK+C4hOC4iuC4meC4suC4oQor4LiE4LiK4Lij4Liy4LiKCivguITguIrguKXguLHguIHguKnguJPguYwKK+C4hOC4iuC4qOC4suC4quC4leC4o+C5jAor4LiE4LiK4Liq4LmI4Liy4LiZCivguITguIrguKrguLLguKMKK+C4hOC4iuC4quC4teC4q+C5jAor4LiE4LiK4Liy4LiK4Liy4LiV4Li0CivguITguIrguLLguIrguLXguJ4KK+C4hOC4iuC4suC4mOC4suC4owor4LiE4LiK4Liy4Lig4Lij4LiT4LmMCivguITguIrguLTguJnguJfguKPguYwKK+C4hOC5gOC4iuC4meC4l+C4o+C5jAor4LiE4LiTLQor4LiE4LiT4LiZCivguITguJPguJnguLIKK+C4hOC4k+C4muC4lOC4tQor4LiE4LiT4LiwCivguITguJPguLDguKPguLHguJDguKHguJnguJXguKPguLUKK+C4hOC4k+C4suC4iOC4suC4o+C4ouC5jAor4LiE4LiT4Liy4LiY4Li04LiB4Liy4LijCivguITguJPguLLguJjguLTguJvguYTguJXguKIKK+C4hOC4k+C4tOC4geC4sgor4LiE4LiT4Li04LiVCivguITguJPguLTguJUtCivguITguJPguLTguJXguKjguLLguKrguJXguKPguYwKK+C4hOC5gOC4k+C4qAor4LiE4LiUCivguITguJTguIHguKPguLTguIoKK+C4hOC4lOC5guC4geC4hwor4LiE4LiU4LmA4LiE4Li14LmJ4Lii4LinCivguITguJTguIfguK0KK+C4hOC4lOC4i+C5iOC4suC4hwor4LiE4LiU4LmD4LiZ4LiC4LmJ4Lit4LiH4Lit4LmD4LiZ4LiB4Lij4Liw4LiU4Li54LiBCivguITguJTguKrguKPguYnguLLguIcKK+C4hOC4lOC4tQor4LiE4LiU4Li14LiU4LizCivguITguJTguLXguYHguJTguIcKK+C4hOC4lOC4teC5geC4nuC5iOC4hwor4LiE4LiU4Li14Lih4LmC4LiZ4Liq4Liy4LmA4Lij4LmICivguITguJTguLXguK3guJnguLLguJbguLIKK+C4hOC4lOC4teC4reC4suC4jeC4sgorLeC4hOC4lQor4LiE4LiV4Li0CivguITguJXguLTguIrguLLguKfguJrguYnguLLguJkKK+C4hOC4leC4tOC4mOC4o+C4o+C4oQor4LiE4LiV4Li04LiZ4Li04Lii4LihCivguITguJXguLTguJ7guIjguJnguYwKK+C4hOC4l+C4sgor4LiE4LiZCivguITguYnguJkKK+C4hOC4meC4geC4peC4suC4hwor4LiE4LiZ4LmE4LiC4LmJCivguITguJnguYTguILguYnguJnguK3guIEKK+C4hOC4meC5hOC4guC5ieC5g+C4mQor4LiE4LmJ4LiZ4LiE4Lin4LmJ4LiyCivguITguJnguIjguKMKK+C4hOC4meC4iOC4o+C4tOC4hwor4LiE4LiZ4LmD4LiK4LmJCivguITguJnguJTguLXguJzguLXguITguLjguYnguKEKK+C4hOC4meC4leC5ieC4reC4h+C4guC4seC4hwor4LiE4LiZ4LiX4Lij4LiHCivguITguJnguJfguLIKK+C4hOC4meC4l+C4tOC4quC4rQor4LiE4LiZ4LiX4Li04Liq4Lit4LiX4Liw4LmA4LilCivguITguJnguJfguLUKK+C4hOC4meC4l+C4teC5gOC4guC4oeC4sgor4LiE4LiZ4LiX4Li14Liq4LitCivguITguJnguYLguJcKK+C4hOC4meC4mOC5jAor4LiE4LiZ4LiY4Lij4Lij4LieLQor4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguITguJnguJjguKPguKPguJ7guKfguLTguKfguLLguKvguYwKK+C4hOC4meC4mOC4o+C4o+C4nuC4qOC4suC4quC4leC4o+C5jAor4LiE4LiZ4LiZ4Lit4LiBCivguITguJnguYPguJkKK+C4hOC4meC5gOC4oeC4t+C4reC4hwor4LiE4LiZ4Lij4Lix4LiB4LmA4LiX4LmI4Liy4Lic4Li34LiZ4Lir4LiZ4Lix4LiHIOC4hOC4meC4iuC4seC4h+C5gOC4l+C5iOC4suC4nOC4t+C4meC5gOC4quC4t+C5iOC4rQor4LiE4LiZ4Lij4LmJ4Liy4LiiCivguITguJnguYTguKPguYnguITguKfguLLguKHguKrguLLguKHguLLguKPguJYKK+C4hOC4meC4peC4sAor4LiE4LiZ4Lil4Liw4LmE4Lih4LmJ4LiE4LiZ4Lil4Liw4Lih4Li34LitCivguITguJnguKrguKfguJkKK+C4hOC4meC4quC4suC4muC4quC4ueC4jQor4LiE4LiZ4LmA4Liq4Lih4Li34Lit4LiZ4LmE4Lij4LmJ4LiE4Lin4Liy4Lih4Liq4Liy4Lih4Liy4Lij4LiWCivguITguYnguJnguKvguLnguIEKK+C4hOC4meC5g+C4q+C4jeC5iOC4hOC4meC5guC4lQor4LiE4LmA4LiZ4LiI4LijCivguITguJoKK+C4hOC4muC4hOC4meC5g+C4q+C5ieC4lOC4ueC4q+C4meC5ieC4siDguIvguLfguYnguK3guJzguYnguLLguYPguKvguYnguJTguLnguYDguJnguLfguYnguK0KK+C4hOC4muC4hOC5ieC4sgor4LiE4Lia4LiE4Li04LiUCivguITguJrguIrguLnguYkKK+C4hOC4muC5gOC4nuC4peC4tOC4hwor4LiE4Lia4LmE4LifCivguITguJrguKvguLIKK+C4hOC4oQor4LiE4Lih4LiB4Lij4Li04LiaCivguITguKHguILguLMKK+C4hOC4oeC4hOC4suC4ogor4LiE4Lih4LiZLQor4LiE4Lih4LiZ4LmMCivguITguKHguJnguLLguIHguLLguKMKK+C4hOC4oeC4meC4suC4hOC4oQor4LiE4Lih4LmD4LiZ4Lid4Lix4LiBCivguITguKHguJrguLLguIcKK+C4hOC4oeC4quC4seC4mQor4LiE4Lih4Li04LiB4Lig4Lix4LiVCivguITguKPguIEKK+C4hOC4o+C4geC4geC4sOC5gOC4muC4t+C4rQor4LiE4Lij4LmI4LiHCivguITguKPguJoKK+C4hOC4o+C4muC4hOC4o+C4seC4mQor4LiE4Lij4Lia4LiW4LmJ4Lin4LiZCivguITguKPguJrguKHguLfguK0KK+C4hOC4o+C4o+C4iuC4tOC4lQor4LiE4Lij4Lij4LigCivguITguKPguKPguKAtCivguITguKPguKPguKDguYwKK+C4hOC4o+C4o+C4oOC4mOC4suC4leC4uAor4LiE4Lij4Lij4Lig4LiY4Liy4LiV4Li44Lih4LiT4LiR4LilCivguITguKPguKPguKDguKHguJPguJHguKUKK+C4hOC4o+C4o+C4oOC4oeC4pQor4LiE4Lij4Lij4LmC4Lig4LiX4LijCivguITguKPguKPguKXguK3guIcKK+C4hOC4o+C4o+C5guC4peC4hwor4LiE4Lij4Lij4LmE4LilCivguITguKPguKPguKvguLTguJUKK+C4hOC4o+C4p+C4jQor4LiE4Lij4Lin4LiN4LiE4Lij4Liy4LiHCivguITguKPguKfguI3guKvguLIKK+C4hOC4o+C4p+C4seC4gQor4LiE4Lij4Lin4Li1CivguITguKPguKvguLIKK+C4hOC4o+C4reC4gQor4LiE4Lij4Lit4LiHCivguITguKPguK3guIfguYHguITguKPguIcKK+C4hOC4o+C4reC4h+C4o+C4suC4iuC4quC4oeC4muC4seC4leC4tAor4LiE4Lij4LmI4Lit4LmA4LiH4Liy4LiwCivguITguKPguYjguK3guYDguJfguLXguKLguJkKK+C4hOC4o+C4reC4mgor4LiE4Lij4Lit4Lia4LiE4Lij4Lit4LiHCivguITguKPguK3guJrguITguKPguK3guIfguJvguKPguJvguLHguIHguKnguYwKK+C4hOC4o+C4reC4muC4hOC4o+C4seC4pwor4LiE4Lij4Lit4Lia4LiH4LizCivguITguKPguK3guJrguIjguLHguIHguKPguKfguLLguKUKK+C4hOC4o+C4reC4muC4leC4peC4seC4mgor4LiE4Lij4LmI4Lit4LihCivguITguKPguLAKK+C4hOC4o+C4sOC5gOC4oeC4tOC4oQor4LiE4Lij4Liw4LmB4Lil4LiHCivguITguKPguLDguYTguKUKK+C4hOC4o+C4sOC5geC4p+C4hwor4LiE4Lij4Liw4Lir4LiZCivguITguKPguLDguKvguKfguJkKK+C4hOC4o+C4sOC4q+C4suC4ogor4LiE4Lij4Liw4Lir4Li04LinCivguITguKPguLDguYLguKvguKIKK+C4hOC4o+C4seC5iOC4hwor4LiE4Lij4Lix4LmJ4LiHCivguITguKPguLHguJTguYDguITguKPguYjguIcKK+C4hOC4o+C4seC4mQor4LiE4Lij4Lix4LmI4LiZCivguITguKPguLHguYnguJkKK+C4hOC4o+C4seC5iOC4meC4hOC4o+C5ieC4suC4oQor4LiE4Lij4Lix4LmI4LiZ4LiV4Lix4LinCivguITguKPguLHguYjguJnguYDguJnguLfguYnguK3guITguKPguLHguYjguJnguJXguLHguKcKK+C4hOC4o+C4seC4mgor4LiE4Lij4Lix4LinCivguITguKPguLHguKfguJfguLLguJkKK+C4hOC4o+C4seC4p+C5hOC4nwor4LiE4Lij4Lix4Lin4LmA4Lij4Li34Lit4LiZCivguITguKPguLIKK+C4hOC4o+C5iOC4sgor4LiE4Lij4Liy4LiBCivguITguKPguLLguIcKK+C4hOC4o+C4suC4jQor4LiE4Lij4Liy4LiUCivguITguKPguYnguLLguJkKK+C4hOC4o+C4suC4mgor4LiE4Lij4Liy4Lia4Lir4Lih4Li5CivguITguKPguLLguKEKK+C4hOC4o+C5ieC4suC4oQor4LiE4Lij4Liy4Lih4LiE4Lij4Lix4LiZCivguITguKPguLLguKcKK+C4hOC4o+C5iOC4suC4pwor4LiE4Lij4LmI4Liy4Lin4LmGCivguITguKPguLLguKoKK+C4hOC4o+C4swor4LiE4Lij4LmI4LizCivguITguKPguYjguLPguITguKPguKfguI0KK+C4hOC4o+C5iOC4s+C4hOC4o+C5iOC4sgor4LiE4Lij4LmI4Liz4LiE4Lij4Li2CivguITguKPguYjguLPguYDguITguKPguYjguIcKK+C4hOC4o+C5iOC4s+C5gOC4hOC4o+C4reC4sAor4LiE4Lij4LmI4Liz4LmA4LiH4Li04LiZCivguITguKPguYjguLPguJfguK3guIcKK+C4hOC4o+C5iOC4s+C4q+C4p+C4reC4lAor4LiE4Lij4Li04Lib4LiX4Lit4LiZCivguITguKPguLTguKrguJXguYwKK+C4hOC4o+C4tOC4quC4leC5jOC4oeC4suC4qgor4LiE4Lij4Li04Liq4LiV4LmM4Lio4Lix4LiB4Lij4Liy4LiKCivguITguKPguLTguKrguJXguLHguIcKK+C4hOC4o+C4tOC4quC5gOC4leC4teC4ouC4mQor4LiE4Lij4Li14LmJCivguITguKPguLXguITguKPguK0KK+C4hOC4o+C4teC4mgor4LiE4Lij4Li14Lia4Liq4Li04LiH4Lir4LmMCivguITguKPguLXguKEKK+C4hOC4o+C4teC4qeC4oeC4suC4ouC4seC4mQor4LiE4Lij4Li2CivguITguKPguLbguIHguITguKPguLfguYnguJkKK+C4hOC4o+C4tuC4geC5guC4hOC4o+C4oQor4LiE4Lij4Li24LmI4LiHCivguITguKPguLbguYjguIfguYYg4LiB4Lil4Liy4LiH4LmGCivguITguKPguLbguYjguIfguIrguLLguJXguLQKK+C4hOC4o+C4tuC5iOC4h+C4leC5iOC4reC4hOC4o+C4tuC5iOC4hwor4LiE4Lij4Li24LiZCivguITguKPguLbguKEKK+C4hOC4o+C4tuC5ieC4oQor4LiE4Lij4Li24Lih4LiE4Lij4Li4CivguITguKPguLfguJQKK+C4hOC4o+C4t+C4mQor4LiE4Lij4Li34LmJ4LiZCivguITguKPguLfguJnguITguKPguLHguYjguJkKK+C4hOC4o+C4t+C5ieC4meC4hOC4o+C4seC5iOC4mQor4LiE4Lij4Li34LmJ4LiZ4LiE4Lij4Li24LiBCivguITguKPguLfguYnguJnguYDguITguKPguIcKK+C4hOC4o+C4t+C4rQor4LiE4Lij4Li4CivguITguKPguLjguIEtCivguITguKPguLjguITguKPguLAKK+C4hOC4o+C4uOC4kQor4LiE4Lij4Li44LiR4LiB4Lij4Liw4LiX4LiHCivguITguKPguLjguJHguJ7guYjguLLguKvguYwKK+C4hOC4o+C4uOC5iOC4mQor4LiE4Lij4Li44LmI4LiZ4LiE4Li04LiUCivguITguKPguLjguKDguLHguJPguJHguYwKK+C4hOC4o+C4uOC4oeC5gOC4hOC4o+C4t+C4rQor4LiE4Lij4Li44LiiCivguITguKPguLjguKfguJnguLIKK+C4hOC4o+C4uOC4p+C4suC4owor4LiE4Lij4Li44Lio4Liy4Liq4LiV4Lij4LmMCivguITguKPguLkKK+C4hOC4o+C4ueC5iAor4LiE4Lij4Li54LiUCivguITguKTguYLguIbguKkKK+C4hOC4pOC4meC4luC5jAor4LiE4Lik4LirCivguITguKTguKstCivguITguKTguKvguJrguJTguLUKK+C4hOC4pOC4q+C4m+C4seC4leC4meC4tQor4LiE4Lik4Lir4Lix4Liq4LiW4LmMCivguITguKTguKvguLIKK+C4hOC4pOC4q+C4suC4quC4meC5jAor4LiE4LilCivguITguKXguKfguIcKK+C4hOC4peC4rQor4LiE4Lil4LmJ4LitCivguITguKXguK3guIEKK+C4hOC4peC4reC5gOC4hOC4peC4teC4ogor4LiE4Lil4Lit4LmB4LiE4LilCivguITguKXguYnguK3guYHguITguKXguYkKK+C4hOC4peC4reC4hwor4LiE4Lil4LmI4Lit4LiHCivguITguKXguYnguK3guIcKK+C4hOC4peC5iOC4reC4h+C5geC4hOC4peC5iOC4pwor4LiE4Lil4LmJ4Lit4LiH4LiI4Lit4LiHCivguITguKXguYjguK3guIfguJXguLHguKcKK+C4hOC4peC4reC4h+C5gOC4peC4t+C5iOC4reC4ogor4LiE4Lil4Lit4LiH4Liq4LmI4LiH4LiZ4LmJ4LizCivguITguKXguK3guJQKK+C4hOC4peC4reC4mQor4LiE4Lil4Lit4LiZ4LmB4LiE4Lil4LiZCivguITguKXguYnguK3guKIKK+C4hOC4peC5ieC4reC4ouC4hOC4peC5ieC4reC4ogor4LiE4Lil4Lit4Lij4Li14LiZCivguITguKXguK3guYLguKPguJ/guK3guKPguYzguKEKK+C4hOC4peC4reC5guC4o+C4n+C4teC4peC4peC5jAor4LiE4Lil4LiwCivguITguKXguLDguITguKXguYjguLMKK+C4hOC4peC4sOC4hOC4peC4uOC5ieC4hwor4LiE4Lil4Liw4Lib4LiZCivguITguKXguLHguIEKK+C4hOC4peC4seC5iOC4gQor4LiE4Lil4Lix4LmI4LiB4LmGCivguITguKXguLHguIcKK+C4hOC4peC4seC5iOC4hwor4LiE4Lil4Lix4LiH4Lie4Li04Lih4Liy4LiZ4Lit4Liy4LiB4Liy4LioCivguITguKXguLHguIfguYDguKXguLfguK3guJQKK+C4hOC4peC4seC4h+C4quC4tOC4meC4hOC5ieC4sgor4LiE4Lil4Lix4LiH4Liq4Li04LiZ4LiE4LmJ4Liy4LiX4Lix4LiT4LiR4LmM4Lia4LiZCivguITguKXguLHguJXguIrguYwKK+C4hOC4peC4seC4muC4hOC4peC5ieC4suC4ogor4LiE4Lil4Lix4Lia4LiE4Lil4LmJ4Liy4Lii4LiE4Lil4Lix4Lia4LiE4Lil4LiyCivguITguKXguLIKK+C4hOC4peC5ieC4sgor4LiE4Lil4Liy4LiE4Lil4LmI4LizCivguITguKXguLLguYTguITguKUKK+C4hOC4peC4suC4h+C5geC4hOC4peC4hwor4LiE4Lil4Liy4LiUCivguITguKXguLLguJTguYDguITguKXguLfguYjguK3guJkKK+C4hOC4peC4suC4lOC5geC4hOC4peC5ieC4pwor4LiE4Lil4Liy4LiZCivguITguKXguLLguKIKK+C4hOC4peC5ieC4suC4ogor4LiE4Lil4Liy4Lii4LiE4Lil4LmJ4Liy4LiiCivguITguKXguYnguLLguKLguITguKXguYnguLLguKIKK+C4hOC4peC5ieC4suC4ouC4hOC4peC4tuC4hwor4LiE4Lil4Liy4Lii4LmA4LiE4Lil4LmI4LiHCivguITguKXguYjguLLguKcKK+C4hOC4peC4suC4qAor4LiE4Lil4LizCivguITguKXguYjguLMKK+C4hOC4peC5ieC4swor4LiE4Lil4Li04LiHCivguITguKXguLTguYnguIfguYLguITguKXguIcKK+C4hOC4peC4tOC4lAor4LiE4Lil4Li04LiZ4Li04LiBCivguITguKXguLUKK+C4hOC4peC4teC5iAor4LiE4Lil4Li14LmI4LiE4Lil4Liy4LiiCivguITguKXguLbguIcKK+C4hOC4peC4tuC4h+C5gOC4hOC4peC5ieC4mQor4LiE4Lil4Li24LiH4LmA4LiE4Lil4LmJ4LiyCivguITguKXguLfguYjguJkKK+C4hOC4peC4t+C5iOC4meC4geC4o+C4sOC4l+C4muC4neC4seC5iOC4hwor4LiE4Lil4Li34LmI4LiZ4LmD4LiV4LmJ4LiZ4LmJ4LizCivguITguKXguLfguYjguJnguJvguLLguJnguIHguKXguLLguIcKK+C4hOC4peC4t+C5iOC4meC5geC4oeC5iOC5gOC4q+C4peC5h+C4geC5hOC4n+C4n+C5ieC4sgor4LiE4Lil4Li34LmI4LiZ4Lii4Liy4LinCivguITguKXguLfguYjguJnguKfguLTguJfguKLguLgKK+C4hOC4peC4t+C5iOC4meC4quC4seC5ieC4mQor4LiE4Lil4Li34LmI4LiZ4LmE4Liq4LmJCivguITguKXguLfguYjguJnguYDguKvguLXguKLguJkKK+C4hOC4peC4uOC4gQor4LiE4Lil4Li44LiB4LiE4Lil4Liy4LiZCivguITguKXguLjguIHguITguKXguLUKK+C4hOC4peC4uOC4geC4hOC4peC4teC4leC4teC5guC4oeC4hwor4LiE4Lil4Li44LmJ4LiHCivguITguKXguLjguJoKK+C4hOC4peC4uOC4oQor4LiE4Lil4Li44LmI4LihCivguITguKXguLjguYnguKEKK+C4hOC4peC4uOC5ieC4oeC4hOC4peC4seC5iOC4hwor4LiE4Lil4Li44Lih4LmA4LiE4Lij4Li34LitCivguITguKXguLjguKHguJbguLjguIfguIrguJkKK+C4hOC4peC4uOC4oeC4m+C4o+C4sOC4l+C4oQor4LiE4Lil4Li44Lih4LmC4Lib4LiHCivguITguKXguLjguKHguJzguJfguKEKK+C4hOC4p+C4hwor4LiE4Lin4LiH4LmB4LiC4LiZCivguITguKfguIfguKrguKfguYjguLLguJkKK+C4hOC4p+C4kwor4LiE4Lin4LiZCivguITguKfguJoKK+C4hOC4p+C4muC4hOC4uOC4oQor4LiE4Lin4Lia4LmB4LiZ4LmI4LiZCivguITguKfguKIKK+C4hOC4p+C4owor4LiE4Lin4Lix4LiBCivguITguKfguLHguIHguITguYnguK3guJkKK+C4hOC4p+C4seC4geC4peC4h+C4q+C4peC4uOC4oQor4LiE4Lin4Lix4LmI4LiH4LiE4Lin4LmJ4Liy4LiHCivguITguKfguLHguJkKK+C4hOC4p+C4seC5iOC4mQor4LiE4Lin4Lix4LmI4LiZ4LiI4Li44LiBCivguITguKfguLHguJnguKvguKXguIcKK+C4hOC4p+C5ieC4sgor4LiE4Lin4Liy4LiBCivguITguKfguYnguLLguYTguILguKfguYgKK+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4LmJ4Liy4LiH4LmGCivguITguKfguYnguLLguIfguYDguITguKfguYnguIcKK+C4hOC4p+C4suC4jQor4LiE4Lin4Liy4LiZCivguITguKfguYnguLLguJkKK+C4hOC4p+C5ieC4suC4meC4l+C5ieC4reC4hwor4LiE4Lin4LmJ4Liy4LiZ4LmJ4Liz4LmA4Lir4Lil4LinCivguITguKfguLLguKEKK+C4hOC4p+C4suC4oeC4hOC4peC4suC4lAor4LiE4Lin4Liy4Lih4LmA4LiE4LmJ4LiZCivguITguKfguLLguKHguYDguITguKPguLXguKLguJQKK+C4hOC4p+C4suC4oeC5gOC4ieC4t+C5iOC4reC4ogor4LiE4Lin4Liy4Lih4LiK4Lit4LiaCivguITguKfguLLguKHguIrguLfguYnguJkKK+C4hOC4p+C4suC4oeC4iuC4t+C5ieC4meC4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4LiE4Lin4Liy4Lih4LiK4Li34LmJ4LiZ4Liq4Lix4Lih4Lie4Lix4LiX4LiY4LmMCivguITguKfguLLguKHguJbguYjguKfguIcKK+C4hOC4p+C4suC4oeC4luC5iOC4p+C4h+C4iOC4s+C5gOC4nuC4suC4sAor4LiE4Lin4Liy4Lih4LiW4Li14LmICivguITguKfguLLguKHguJbguLXguYjguKfguLTguJfguKLguLgKK+C4hOC4p+C4suC4oeC5guC4meC5ieC4oeC4luC5iOC4p+C4hwor4LiE4Lin4Liy4Lih4Lii4Liy4Lin4LiE4Lil4Li34LmI4LiZCivguITguKfguLLguKHguKPguLnguYnguJfguYjguKfguKHguKvguLHguKfguYDguK3guLLguJXguLHguKfguYTguKHguYjguKPguK3guJQKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4quC4tuC4geC5gOC4guC4t+C5iOC4reC4hwor4LiE4Lin4Liy4Lih4Lij4Li54LmJ4Liq4Li24LiB4LiU4LmJ4Lit4LiiCivguITguKfguLLguKHguKPguLnguYnguKrguLbguIHguYDguJTguYjguJkKK+C4hOC4p+C4suC4oeC5gOC4o+C5iOC4hwor4LiE4Lin4Liy4Lih4LmA4Lij4LmH4LinCivguITguKfguLLguKHguKvguJnguYjguKfguIcKK+C4hOC4p+C4suC4oeC4q+C4peC4seC4hwor4LiE4Lin4Liy4LiiCivguITguKfguLLguKLguJvguKXguLAKK+C4hOC4p+C4suC4ouC4nuC4o+C4sOC4reC4tOC4meC4l+C4o+C5jAor4LiE4Lin4LmI4Liy4LinCivguITguKfguYjguLMKK+C4hOC4p+C5iOC4s+C4muC4suC4leC4owor4LiE4Lin4LmI4Liz4Lir4Lil4Lix4LiHCivguITguKfguLTguJnguLTguJkKK+C4hOC4p+C4tOC4p+C5hgor4LiE4Lin4Li04Lin4LiE4Lin4Lix4LiHCivguITguKfguLTguKfguITguKfguYjguLLguIcKK+C4hOC4p+C4tOC4p+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4Li14LiZ4Liq4Li04Lij4Li04LiB4Li04LiV4Li04LmMCivguITguKstCivguITguKvguIHguKPguKPguKHguKjguLLguKrguJXguKPguYwKK+C4hOC4q+C4muC4lOC4tQor4LiE4Lir4Lib4LiV4Liy4LiZ4Li1CivguITguKvguLHguJAKK+C4hOC4rQor4LiE4LmJ4LitCivguITguK3guIEKK+C4hOC5h+C4reC4geC4hOC4seC4qgor4LiE4Lit4LiB4LiK4LmJ4Liy4LiHCivguITguYfguK3guIHguYDguJfguKUKK+C4hOC4reC4geC4o+C4sOC5gOC4iuC5ieC4sgor4LiE4Lit4LiB4Lil4LihCivguITguK3guIHguLDguKXguLLguKrguLUKK+C4hOC4reC4guC4suC4lOC4muC4suC4lOC4leC4suC4ogor4LiE4Lit4LmB4LiC4LmH4LiHCivguITguK3guITguK3guJQKK+C4hOC4reC5gOC4hOC4i+C4reC4ouC4lOC5jAor4LiE4LmI4Lit4LiH4Lit4LmJ4Lit4LiiCivguITguK3guYDguIrguLTguYnguJUKK+C4hOC4reC4i+C4reC4hwor4LiE4Lit4LiUCivguITguK3guYHguJTguIcKK+C4hOC4reC4leC4gQor4LiE4Lit4LiV4LmI4LitCivguITguK3guJXguLHguYnguIcKK+C4hOC4reC4leC4seC5ieC4h+C4muC5iOC4sgor4LiE4Lit4LiV4Li14LiaCivguITguK3guJbguYjguKfguIcKK+C4hOC4reC4l+C4reC4h+C5geC4lOC4hwor4LiE4Lit4LiZCivguITguYjguK3guJkKK+C4hOC5ieC4reC4mQor4LiE4Lit4LiZ4LiB4Lij4Li14LiVCivguITguK3guJnguIHguKPguLXguJXguYDguKrguKPguLTguKHguYDguKvguKXguYfguIEKK+C4hOC4reC4meC4geC4o+C4teC4leC4reC4seC4lOC5geC4o+C4hwor4LiE4LmJ4Lit4LiZ4LiB4Lil4Lit4LiHCivguITguYjguK3guJnguILguK3guJQKK+C4hOC5iOC4reC4meC4guC5ieC4suC4hwor4LiE4LmJ4Lit4LiZ4LiE4Lin4Lix4LiBCivguITguYjguK3guJnguYHguITguLAKK+C4hOC4reC4meC5gOC4lOC4meC5gOC4i+C4reC4o+C5jAor4LiE4LmJ4Lit4LiZ4LiV4Li04LiHCivguITguYnguK3guJnguJXguLXguKvguKHguLIKK+C4hOC5ieC4reC4meC4l+C4reC4hwor4LiE4Lit4LiZ4LmB4Lin4LiZ4LiV4LmMCivguITguK3guJnguYDguKrguLTguKPguYzguJUKK+C4hOC5ieC4reC4meC4q+C4reC4ogor4LiE4Lit4LiZ4Liy4LiECivguITguK3guJoKK+C4hOC4reC4muC4seC4pwor4LiE4Lit4LmB4Lia4LiwCivguITguK3guJvguLLguJQKK+C4hOC4reC5gOC4m+C5h+C4meC5gOC4reC5h+C4mQor4LiE4Lit4Lie4Lit4LiBCivguITguK3guJ7guLHguJoKK+C4hOC4reC5hOC4nwor4LiE4Lit4LihCivguITguYjguK3guKEKK+C4hOC5ieC4reC4oQor4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmMCivguITguK3guKHguKHguLLguJnguYLguJQKK+C4hOC4reC4oeC4oeC4tOC4p+C4meC4tOC4quC4leC5jAor4LiE4Lit4Lih4LmJ4LiyCivguITguK3guKIKK+C4hOC5iOC4reC4ogor4LiE4LmI4Lit4Lii4LmGCivguITguYnguK3guKIKK+C4hOC5iOC4reC4ouC4lOC4teC4guC4tuC5ieC4mQor4LiE4Lit4Lii4LiX4LmI4LiyCivguITguYjguK3guKLguYDguJvguYfguJnguITguYjguK3guKLguYTguJsKK+C4hOC5iOC4reC4ouC4ouC4seC4h+C4iuC4seC5iOC4pwor4LiE4Lit4Lii4Lil4LmMCivguITguK3guKLguYDguKvguJXguLgKK+C4hOC4reC4o+C5jOC4lAor4LiE4Lit4Lij4Lin4LiHCivguITguK3guKPguLDguIbguLHguIcKK+C4hOC4reC5geC4o+C5ieC4hwor4LiE4Lit4LmB4Lil4LiZCivguITguK3guKfguLUKK+C4hOC4reC4quC4leC4tOC4geC5guC4i+C4lOC4sgor4LiE4Lit4Liq4Lit4LiHCivguITguK3guKrguLDguJ7guLLguJkKK+C4hOC4reC4quC4ueC4hwor4LiE4Lit4LmA4Liq4Li34LmJ4LitCivguITguK3guKvguK3guKIKK+C4hOC4reC4q+C4reC4ouC4geC4seC4muC4peC4ueC4geC4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4LiE4Lit4Lir4Lit4Lii4LiV4Li14LiaCivguITguK3guKvguK3guKLguJ7guK3guIEKK+C4hOC4reC4q+C5iOC4suC4mQor4LiE4Lit4LmB4Lir4LmJ4LiHCivguITguK3guYHguKvguKXguKEKK+C4hOC4reC4reC5iOC4reC4mQor4LiE4Lit4Liu4Liy4Lin4Liy4LiiCivguITguLAKK+C4hOC5iOC4sAor4LiE4Liw4LmE4LiC4Lin4LmICivguITguLDguITguYnguK3guKIKK+C4hOC4sOC4hOC4suC4mQor4LiE4Liw4LiE4Li24LiHCivguITguLDguJnguJkKK+C4hOC4sOC4meC4reC4hwor4LiE4Liw4LiZ4LmJ4LiyCivguITguLDguJnguLbguIcKK+C4hOC4sOC5gOC4mQor4LiE4Liw4LmA4LiZ4LiH4Lij4LmJ4Liy4LiiCivguITguLDguYDguJnguYfguJQKK+C4hOC4sOC5geC4meC4mQor4LiE4Liw4LmB4LiZ4LiZ4LiZ4Li04Lii4LihCivguITguLDguYHguJnguJnguYDguKrguLXguKLguIcKK+C4hOC4sOC5g+C4mQor4LiE4Liw4Lih4LizCivguITguLDguKHguLbguIEKK+C4hOC4sOC4ouC4seC5ieC4meC4hOC4sOC4ouC4rQor4LiE4Liw4LmA4Lii4LitCivguITguLHguIEKK+C4hOC4seC5iOC4gQor4LiE4Lix4LiE4LiZLQor4LiE4Lix4LiE4LiZ4LiwCivguITguLHguITguJnguLHguKHguJ7guKMKK+C4hOC4seC4hOC4meC4suC4h+C4hOC5jAor4LiE4Lix4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguLHguYjguIcKK+C4hOC4seC5iOC4h+C4hOC5ieC4suC4hwor4LiE4Lix4LmI4LiH4LmB4LiE4LmJ4LiZCivguITguLHguIfguYTguITguKIKK+C4hOC4seC4iOC4iQor4LiE4Lix4LiT4LiR4Lih4Liy4Lil4LiyCivguITguLHguJPguJHguKrguLnguJXguKMKK+C4hOC4seC4lAor4LiE4Lix4LiU4LiE4LmJ4Liy4LiZCivguITguLHguJTguYDguITguYnguLIKK+C4hOC4seC4lOC4h+C5ieC4suC4hwor4LiE4Lix4LiU4LiJ4Liy4LiBCivguITguLHguJTguIrguYnguK3guJkKK+C4hOC4seC4lOC4iuC4uOC4mQor4LiE4Lix4LiU4LiX4LmJ4Liy4LiiCivguITguLHguJTguKHguK3guJkKK+C4hOC4seC4lOC5gOC4oeC5h+C4hwor4LiE4Lix4LiU4LmA4Lil4Li34Lit4LiBCivguITguLHguJTguYDguKXguLfguK3guJQKK+C4hOC4seC4l+C4peC4teC4ouC4sgor4LiE4Lix4LiZCivguITguLHguYjguJkKK+C4hOC4seC5ieC4mQor4LiE4Lix4LiZ4LiC4LiyCivguITguLHguJnguIjguLLguKEKK+C4hOC4seC4meC4ieC5iOC4reC4hwor4LiE4Lix4LiZ4LiJ4Lix4LiV4LijCivguITguLHguJnguInguLLguKIKK+C4hOC4seC4meC4iuC4seC4gQor4LiE4Lix4LiZ4LiK4Lix4LmI4LiHCivguITguLHguJnguIrguLXguJ4KK+C4hOC4seC4meC4lOC4suC4peC4ieC4seC4leC4owor4LiE4Lix4LiZ4LmC4LiU4LiHCivguITguLHguJnguJYtCivguITguLHguJnguJbguJjguLjguKPguLAKK+C4hOC4seC4meC4luC4o+C4iOC4meC4suC4iOC4suC4o+C4ouC5jAor4LiE4Lix4LiZ4LiX4Lij4LiHCivguITguLHguJnguJgKK+C4hOC4seC4meC4mC0KK+C4hOC4seC4meC4mOC5jAor4LiE4Lix4LiZ4LiY4LiB4Li44LiO4Li1CivguITguLHguJnguJjguKHguLLguJfguJnguYwKK+C4hOC4seC4meC4mOC4suC4o+C4o+C4suC4qeC4juC4o+C5jAor4LiE4Lix4LiZ4LiZ4LiyCivguITguLHguJnguJrguKfguKIKK+C4hOC4seC4meC5guC4nuC4hwor4LiE4Lix4LiZ4LmA4Lij4LmI4LiHCivguITguLHguJnguKvguLLguKHguYDguKrguLfguK0KK+C4hOC4seC4mgor4LiE4Lix4Lia4LiC4Lix4LiZCivguITguLHguJrguITguYnguK3guJkKK+C4hOC4seC4muC4hOC4seC5iOC4hwor4LiE4Lix4Lia4LiE4LiyCivguITguLHguJrguYHguIQKK+C4hOC4seC4muC5geC4hOC5ieC4mQor4LiE4Lix4Lia4LmB4LiE4LiaCivguITguLHguJrguYPguIgKK+C4hOC4seC4muC4reC4geC4hOC4seC4muC5g+C4iAor4LiE4Lix4Lie4LigLQor4LiE4Lix4Lie4Lig4LmMCivguITguLHguJ7guKDguKrguLLguKXguLUKK+C4hOC4seC4nuC5guC4oOC4l+C4owor4LiE4Lix4Lih4Lig4Li14LijLQor4LiE4Lix4Lih4Lig4Li14Lij4LmMCivguITguLHguKHguKDguLXguKPguKDguLLguJ4KK+C4hOC4seC4pQor4LiE4Lix4LinCivguITguLHguYjguKcKK+C4hOC4sgor4LiE4LmI4LiyCivguITguYnguLIKK+C4hOC4suC4geC4o+C4reC4hwor4LiE4LmJ4Liy4LiC4Liy4LiiCivguITguYjguLLguILguLbguYnguJnguKjguLLguKUKK+C4hOC5iOC4suC4hOC4mgor4LiE4LmI4Liy4LiE4Lij4Lit4LiH4LiK4Li14LieCivguITguYnguLLguITguKfguLLguKEKK+C4hOC5ieC4suC4hOC5ieC4sgor4LiE4Liy4LiHCivguITguYjguLLguIcKK+C4hOC5ieC4suC4hwor4LiE4Liy4LiH4LiE4LiBCivguITguLLguIfguITguIHguILguLbguYnguJnguKfguK0KK+C4hOC4suC4h+C4hOC4geC5hOC4nwor4LiE4LmJ4Liy4LiH4LiE4Liy4LinCivguITguYnguLLguIfguITguLfguJkKK+C4hOC5ieC4suC4h+C5gOC4lOC4t+C4reC4meC4hOC5ieC4suC4h+C4m+C4tQor4LiE4LmJ4Liy4LiH4LmA4LiV4Li04LmI4LiHCivguITguLLguIfguJfguLnguKEKK+C4hOC4suC4h+C5guC4l+C4mQor4LiE4Liy4LiH4LmA4Lia4Li34Lit4LiZCivguITguYnguLLguIfguJvguLUKK+C4hOC4suC4h+C4q+C4oeC4uQor4LiE4Liy4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguITguLLguJQKK+C4hOC4suC4lOC4hOC4seC5ieC4mQor4LiE4Liy4LiU4LiE4LmI4LiyCivguITguLLguJTguYTguKHguYjguJbguLbguIcKK+C4hOC4suC4lOC4q+C4meC5ieC4sgor4LiE4Liy4LiU4Lir4Lih4Lix4LiUCivguITguYjguLLguJXguLHguKcKK+C4hOC4suC4luC4sgor4LiE4Liy4LiW4Liy4Lie4Lix4LiZCivguITguLLguJbguLLguK3guLLguITguKEKK+C4hOC4suC4l+C4reC4peC4tOC4gQor4LiE4LmI4Liy4LiX4Li14LmICivguITguLLguJgKK+C4hOC5iOC4suC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oQor4LiE4LmI4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4Lio4Liy4LilCivguITguLLguJkKK+C4hOC5ieC4suC4mQor4LiE4Liy4LiZ4LiE4Lit4LiU4Li04LiZCivguITguLLguJnguKvguLLguKEKK+C4hOC4suC4meC5ieC4sgor4LiE4LmI4Liy4LiZ4LmJ4LizCivguITguLLguJoKK+C4hOC4suC4muC5gOC4geC4teC5iOC4ouC4pwor4LiE4Liy4Lia4LiK4Li44LiUCivguITguLLguJrguKXguLnguIHguITguLLguJrguJTguK3guIEKK+C4hOC4suC4muC4qOC4tOC4peC4sgor4LiE4Liy4Lia4Liq4Lih4Li44LiX4LijCivguITguLLguJrguYDguKrguYnguJkKK+C4hOC5ieC4suC4m+C4o+C4sOC5gOC4p+C4k+C4tQor4LiE4LmI4Liy4Lib4LmI4Lin4Lii4LiB4Liy4LijCivguITguYjguLLguJvguLLguIHguYDguKPguLfguK0KK+C4hOC5iOC4suC5gOC4nOC4sgor4LiE4Liy4Lie4Lii4Li44LiVCivguITguYjguLLguKDguLLguITguKvguKXguKfguIcKK+C4hOC4suC4oQor4LiE4Liy4LihLQor4LiE4Liy4Lih4LiT4Li1CivguITguLLguKHguJPguLXguKLguYwKK+C4hOC4suC4oeC4oOC4teC4o+C5jAor4LiE4Liy4Lih4LmC4Lig4LiK4LiBCivguITguLLguKHguKfguLLguKrguLUKK+C4hOC4suC4oeC4tQor4LiE4Liy4LiiCivguITguYjguLLguKIKK+C4hOC4suC4ouC4gQor4LiE4Liy4Lii4LiBLQor4LiE4Liy4Lii4LiB4LiE4LiT4LiwCivguITguYjguLLguKLguIHguLHguIHguIHguLHguJkKK+C4hOC5iOC4suC4ouC5gOC4ouC4suC4p+C4iuC4mQor4LiE4LmI4Liy4Lii4Lit4Liy4Liq4Liy4Lie4Lix4LiS4LiZ4LiyCivguITguLLguKLguLHguJkKK+C4hOC4suC4o+C5jOC4muC4reC4mQor4LiE4Liy4Lij4LmM4Lia4Lit4LiZ4LmE4LiU4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguITguLLguKPguYzguJrguK3guJnguKHguK3guJnguK3guIHguYTguIvguJTguYwKK+C4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LiE4Liy4Lij4LmM4Lia4Lit4Lil4Li04LiBCivguITguLLguKPguYzguJrguLnguYDguKPguYDguJXguK3guKPguYwKK+C4hOC4suC4o+C5jOC5guC4muC4o+C4seC4meC4lOC4seC4oQor4LiE4Liy4Lij4LmM4LmC4Lia4LmE4Liu4LmA4LiU4Lij4LiVCivguITguLLguKPguJ4KK+C4hOC4suC4o+C4oQor4LiE4Liy4Lij4Lin4LiwCivguITguLLguKPguLLguITguLLguIHguYjguLIKK+C4hOC4suC4o+C4suC4hOC4suC4i+C4seC4hwor4LiE4Liy4Lij4Liy4LmA4LiV4LmJCivguITguLLguKPguLLguKfguLLguJkKK+C4hOC5iOC4suC4pOC4iuC4suC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oQor4LiE4Liy4LinCivguITguYjguLLguKcKK+C4hOC5ieC4suC4pwor4LiE4Liy4Lin4LiV4Lit4LiHCivguITguLLguKfguJvguKXguLIKK+C4hOC4suC4p+C4tQor4LiE4Liy4Lin4Li44LiVCivguITguLLguKoKK+C4hOC5iOC4suC4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4LiE4LmI4Liy4Liq4Li04LiZ4LmE4Lir4Lih4LiX4LiU4LmB4LiX4LiZCivguITguYjguLLguYDguKrguKHguK3guKDguLLguIQKK+C4hOC5iOC4suC5gOC4quC4teC4ouC4q+C4suC4ogor4LiE4LmI4Liy4Lir4LiUCivguITguLLguKvguJnguLHguIfguITguLLguYDguILguLIKK+C4hOC5iOC4suC4q+C4meC5ieC4suC4lOC4tOC4mQor4LiE4LmI4Liy4Lir4Lix4LinCivguITguLMKK+C4hOC5iOC4swor4LiE4LmJ4LizCivguITguLPguILguKfguLHguI0KK+C4hOC4s+C4guC4rQor4LiE4Liz4LiC4Liy4LiUCivguITguLPguITguKEKK+C4hOC5ieC4s+C4hOC4rQor4LiE4LmI4Liz4LiE4Li34LiZCivguITguLPguITguLnguYjguITguKfguLLguKEKK+C4hOC5ieC4s+C5gOC4h+C4tOC4mQor4LiE4LmJ4Liz4LiI4Li44LiZCivguITguYnguLPguIrguLkKK+C4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4LiE4Liz4LmC4LiU4LiUCivguITguLPguJXguLHguYnguIcKK+C4hOC4s+C4leC4suC4ogor4LiE4Liz4LiV4Li04LiU4LiV4LmI4LitCivguITguLPguYDguJXguLTguKEKK+C4hOC4s+C5g+C4leC5iQor4LiE4Liz4LmB4LiW4Lil4LiHCivguITguLPguYHguJbguKXguIfguIHguLLguKPguJPguYwKK+C4hOC4s+C4l+C4suC4ogor4LiE4Liz4LmA4LiX4Li14Lii4LiaCivguITguLPguJnguKfguJMKK+C4hOC4s+C4meC4p+C4owor4LiE4Liz4LiZ4Lix4LiaCivguITguLPguJnguLHguKUKK+C4hOC4s+C4meC4swor4LiE4Liz4LiZ4Li24LiHCivguITguLPguJnguLnguJMKK+C4hOC4s+C4muC4seC4h+C4hOC4seC4mgor4LiE4Liz4LmC4Lia4LilCivguITguYnguLPguJvguKPguLDguIHguLHguJkKK+C4hOC4s+C4m+C4o+C4sOC4quC4oQor4LiE4Liz4Lib4Lij4Liy4Lij4LigCivguITguLPguYDguJvguYfguJkKK+C4hOC4s+C4neC4reC4ogor4LiE4Liz4Lie4Li04Lie4Liy4LiB4Lip4LiyCivguITguLPguYDguJ7guKXguLTguIcKK+C4hOC4s+C4n+C5ieC4reC4hwor4LiE4Liz4Lif4LmJ4Lit4LiH4LmB4Lii4LmJ4LiHCivguITguYnguLPguJ/guYnguLIKK+C4hOC4s+C4oeC4seC5iOC4mQor4LiE4Liz4Lih4Lix4LmI4LiZ4Lin4LmI4Liy4LiI4Liw4LmD4Lir4LmJ4Lij4Liy4LiH4Lin4Lix4LilCivguITguLPguKHguLLguIHguJ7guKLguLLguIfguITguYwKK+C4hOC4s+C4oeC4ueC4pQor4LiE4Liz4LmA4Lih4Li34Lit4LiHCivguITguLPguKPguJkKK+C4hOC4s+C4o+C4mgor4LiE4Liz4Lij4LmJ4Lit4LiHCivguITguLPguKPguYnguK3guIfguILguK0KK+C4hOC4s+C4o+C5ieC4reC4h+C4l+C4uOC4geC4guC5jAor4LiE4Liz4Lij4Liy4LihCivguITguLPguKrguLjguKDguLLguJ4KK+C4hOC4s+C5geC4quC4lAor4LiE4Liz4Lir4Lil4Lin4LiHCivguITguYnguLPguKvguLHguKcKK+C4hOC4s+C5geC4q+C4hwor4LiE4Liz4LmC4Lit4LiHCivguITguLTguIHguYYKK+C4hOC4tOC4hwor4LiE4Li04LiUCivguITguLTguJTguIHguLLguKPguYPguKvguI3guYgKK+C4hOC4tOC4lOC4hOC4lAor4LiE4Li04LiU4LiE4LmJ4LiZCivguITguLTguJTguJXguIEKK+C4hOC4tOC4lOC4luC4tuC4hwor4LiE4Li04LiU4Lih4Liy4LiBCivguITguLTguJTguYDguKXguYfguIHguITguLTguJTguJnguYnguK3guKIKK+C4hOC4tOC4lOC4quC4oeC4muC4seC4leC4tOC4muC5ieC4sgor4LiE4Li04LiU4Liq4Lix4LmJ4LiZCivguITguLTguJTguKvguJnguYnguLLguITguLTguJTguKvguKXguLHguIcKK+C4hOC4tOC4lOC5gOC4q+C5h+C4mQor4LiE4Li04LiU4Lit4LmI4Liy4LiZCivguITguLTguKHguKsKK+C4hOC4tOC4oeC4q+C4seC4meC4leC5jAor4LiE4Li04Lih4Lir4Liy4LiZ4LiwCivguITguLTguKPguLQKK+C4hOC4tOC4o+C4tQor4LiE4Li04Lil4Liy4LiZLQor4LiE4Li04Lil4Liy4LiZ4Lib4Lix4LiI4LiI4Lix4LiiCivguITguLTguKXguLLguJnguYDguKDguKrguLHguIoKK+C4hOC4tOC4peC4suC4meC4sAor4LiE4Li04LinCivguITguLTguYnguKcKK+C4hOC4tOC5ieC4p+C4meC4suC4hwor4LiE4Li14LmICivguITguLXguJUKK+C4hOC4teC4leC4geC4sAor4LiE4Li14LiaCivguITguLXguKEKK+C4hOC4teC4o+C4tQor4LiE4Li14Lij4Li14Lia4Li54LiZCivguITguLbguIEKK+C4hOC4tuC5iOC4gQor4LiE4Li24LmI4LiB4LmGCivguITguLbguIHguITguLHguIEKK+C4hOC4tuC4geC4hOC4suC4oQor4LiE4Li34LiZCivguITguLfguJnguITguLMKK+C4hOC4t+C4meC4iuC4teC4ngor4LiE4Li34LiZ4LiU4Li1CivguITguLfguJnguJXguLHguKcKK+C4hOC4t+C4meC4ouC4seC4h+C4o+C4uOC5iOC4hwor4LiE4Li34LiZ4LmD4Lir4LmJCivguITguLfguJoKK+C4hOC4t+C4muC4geC5h+C4l+C4sOC5gOC4pSDguKjguK3guIHguIHguYfguJfguLDguYDguKUKK+C4hOC4t+C4rQor4LiE4Li4CivguITguLjguIEKK+C4hOC4uOC4geC4geC4teC5iQor4LiE4Li44LiB4LmA4LiC4LmI4LiyCivguITguLjguIHguITguKXguLLguJkKK+C4hOC4uOC4geC4hOC4suC4oQor4LiE4Li44LiB4Lie4Liy4LiX4Lii4LmMCivguITguLjguITguLAKK+C4hOC4uOC4hwor4LiE4Li44LmJ4LiHCivguITguLjguJMKK+C4hOC4uOC4ky0KK+C4hOC4uOC4k+C4iuC4suC4ogor4LiE4Li44LiT4LiY4Lij4Lij4LihCivguITguLjguJPguJnguLLguKEKK+C4hOC4uOC4k+C4meC4suC4ogor4LiE4Li44LiT4Lia4LiXCivguITguLjguJPguJ7guLTguYDguKjguKkKK+C4hOC4uOC4k+C4oOC4suC4ngor4LiE4Li44LiT4Lil4Lix4LiB4Lip4LiT4LiwCivguITguLjguJPguKXguLjguIfguITguLjguJPguJvguYnguLIKK+C4hOC4uOC4k+C4p+C4tOC5gOC4qOC4qQor4LiE4Li44LiT4Lin4Li44LiS4Li0CivguITguLjguJPguKjguLHguJ7guJfguYwKK+C4hOC4uOC4k+C4quC4oeC4muC4seC4leC4tAor4LiE4Li44LiT4Lir4LiN4Li04LiHCivguITguLjguJPguLLguIHguKMKK+C4hOC4uOC4k+C4ueC4m+C4geC4suC4owor4LiE4Li44LmC4LiT4Lib4LiB4Liy4LijCivguITguLjguJQKK+C4hOC4uOC4lOC4hOC4ueC5iQor4LiE4Li44LiU4LiX4Liw4Lij4Liy4LiUCivguITguLjguJTguJfguLDguKPguLLguJTguYDguKvguKLguLXguKLguJrguIHguKPguKfguJQKK+C4hOC4uOC4lQor4LiE4Li44LiV4LiV4Li0CivguITguLjguYjguJkKK+C4hOC4uOC5ieC4mQor4LiE4Li44LmJ4LiZ4LmA4LiE4LiiCivguITguLjguJsKK+C4hOC4uOC4m+C4leC5jAor4LiE4Li44Lib4LiV4Li0CivguITguLjguKEKK+C4hOC4uOC5iOC4oQor4LiE4Li44LmJ4LihCivguITguLjguYnguKHguIHguLHguJkKK+C4hOC4uOC4oeC4geC4s+C5gOC4meC4tOC4lAor4LiE4Li44LmJ4Lih4LmA4LiB4Lij4LiHCivguITguLjguYnguKHguITguKPguK3guIcKK+C4hOC4uOC4oeC5geC4hOC5ieC4mQor4LiE4Li44Lih4LmA4LiK4Li04LiHCivguITguLjguYnguKHguJTguLXguITguLjguYnguKHguKPguYnguLLguKIKK+C4hOC4uOC5ieC4oeC5gOC4l+C5ieC4sgor4LiE4Li44LmJ4Lih4LmC4LiX4LipCivguITguLjguKHguJjguLLguJXguLgKK+C4hOC4uOC4oeC4meC4uOC4oQor4LiE4Li44Lih4Lid4Lit4LiiCivguITguLjguYnguKHguKvguYnguLLguKEKK+C4hOC4uOC4ogor4LiE4Li44LmJ4LiiCivguITguLjguYnguKLguYDguILguLXguYjguKIKK+C4hOC4uOC4ouC4iuC5ieC4suC4hwor4LiE4Li44Lii4LirLQor4LiE4Li44Lii4Lir4LiQ4Liy4LiZCivguITguLjguKLguKvguJvguKPguLDguYDguJfguKgKK+C4hOC4uOC4ouC4q+C4o+C4q+C4seC4quC4ouC5jAor4LiE4Li44Lij4Li4CivguITguLjguKPguLjguIHguKPguKPguKEKK+C4hOC4uOC4o+C4uOC4p+C4suC4owor4LiE4Li44Lij4Li44Lio4Li24LiB4Lip4LiyCivguITguLjguKXguLIKK+C4hOC4uOC4peC4suC4i+C5iOC4reC4meC4peC4ueC4gQor4LiE4Li44Lil4Li04LiB4LmI4LiyCivguITguLjguKXguLXguIHguLLguKMKK+C4hOC4uOC4q+C4sgor4LiE4Li5CivguITguLnguYgKK+C4hOC4ueC5iQor4LiE4Li54LmI4LiB4Lij4LiT4Li1CivguITguLnguYjguILguLIKK+C4hOC4ueC5iOC5geC4guC5iOC4hwor4LiE4Li54LmI4LiE4Lij4Lit4LiHCivguITguLnguYjguITguKfguKMKK+C4hOC4ueC5iOC4hOC4p+C4suC4oQor4LiE4Li54LmI4LiE4Lin4Liy4Lih4Lij4LmI4Lin4LihCivguITguLnguYjguITguLTguJQKK+C4hOC4ueC5iOC4hOC4teC5iAor4LiE4Li54LmI4LmA4LiE4Li14Lii4LiHCivguITguLnguYjguYLguIQKK+C4hOC4ueC5iOC5g+C4iAor4LiE4Li54LmI4LiJ4Lia4Lix4LiaCivguITguLnguYjguInguLXguIEKK+C4hOC4ueC5iOC4iuC4seC4gQor4LiE4Li54LmI4LiK4Li14LieCivguITguLnguYjguIrguLXguKfguLTguJUKK+C4hOC4ueC4kwor4LiE4Li54LiT4Lij4LmI4Lin4Lih4LiZ4LmJ4Lit4LiiCivguITguLnguJYKK+C4hOC4ueC5iOC4l+C4uOC4geC4guC5jOC4hOC4ueC5iOC4ouC4suC4gQor4LiE4Li54LiZCivguITguLnguYnguJrguLHguKXguKXguLHguIfguIHguYwKK+C4hOC4ueC5iOC4muC5ieC4suC4meC4hOC4ueC5iOC5gOC4oeC4t+C4reC4hwor4LiE4Li54LmI4Lia4Liy4Lij4Lih4Li1CivguITguLnguYjguJrguLjguI0KK+C4hOC4ueC5iOC4m+C4o+C4m+C4seC4geC4qeC5jAor4LiE4Li54LmI4Lib4Lij4Lix4LiaCivguITguLnguJvguK3guIcKK+C4hOC4ueC5iOC4nOC4quC4oQor4LiE4Li54LmI4Lic4Lix4Lin4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguITguLnguYjguJ7guKPguLDguITguLnguYjguJnguLLguIcKK+C4hOC4ueC5iOC4nuC4tOC4nuC4suC4lwor4LiE4Li54LmI4Lih4LmJ4LiyCivguITguLnguYjguKHguLTguJXguKMKK+C4hOC4ueC5iOC4oeC4t+C4rQor4LiE4Li54LmI4Lii4Liy4LiBCivguITguLnguYjguKPguLHguIEKK+C4hOC4ueC5gOC4o+C4teC4ouC4h+C4hOC4ueC4o+C4suC4ogor4LiE4Li54LmI4LmA4Lij4Li14Lii4LiH4LmA4LiE4Li14Lii4LiH4Lir4Lih4Lit4LiZCivguITguLnguYDguKPguLXguKLguKEKK+C4hOC4ueC5iOC4peC4s+C4lOC4seC4mgor4LiE4Li54LmI4Lio4Lix4LiV4Lij4Li5CivguITguLnguYjguKrguKPguYnguLLguIcKK+C4hOC4ueC5iOC4quC4p+C4lAor4LiE4Li54LmI4Liq4Lix4LiN4LiN4LiyCivguITguLnguYjguKrguLLguKLguYLguJfguKPguKjguLHguJ7guJfguYwKK+C4hOC4ueC5iOC4q+C4oeC4seC5ieC4mQor4LiE4Li54Lir4LiyCivguITguLnguYjguKvguLkKK+C4hOC4ueC5iOC5geC4q+C5iAor4LiE4Li54LmI4Lit4Lij4Li0CivguITguLnguYjguK3guLLguIbguLLguJUKK+C4hOC4ueC5iOC4reC4suC4qOC4seC4ogor4LmA4LiE4LmJ4LiBCivguYDguITguYnguYDguIHguYkKK+C5gOC4hOC5ieC4hwor4LmA4LiE4LiI4LiJCivguYDguITguJPguJHguLAKK+C5gOC4hOC4lAor4LmA4LiE4LiZCivguYDguITguYnguJkKK+C5gOC4hOC5gOC4muC4tOC4pQor4LmA4LiE4LmH4LihCivguYDguITguKHguLUKK+C5gOC4hOC4oeC4teC4oOC4seC4k+C4keC5jAor4LmA4LiE4Lih4Li14Lit4LiZ4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguYDguITguKHguLXguK3guLTguJnguJfguKPguLXguKLguYwKK+C5gOC4hOC4ogor4LmA4LiE4Lii4LiV4Lix4LinCivguYDguITguKLguJvguLLguIEKK+C5gOC4hOC4ouC4oeC4t+C4rQor4LmA4LiE4Lij4LiHCivguYDguITguKPguYjguIcKK+C5gOC4hOC4o+C5iOC4h+C4guC4o+C4tuC4oQor4LmA4LiE4Lij4LmI4LiH4LiE4Lij4Lix4LiUCivguYDguITguKPguIfguITguKPguLIKK+C5gOC4hOC4o+C4h+C4hOC4o+C4swor4LmA4LiE4Lij4LiH4LiE4Lij4LmI4LizCivguYDguITguKPguIfguITguKPguLfguYnguJkKK+C5gOC4hOC4o+C5iOC4h+C5gOC4hOC4o+C4teC4ouC4lAor4LmA4LiE4Lij4LiH4LmA4LiE4Lij4Li14Lii4LinCivguYDguITguKPguJTguLTguJUKK+C5gOC4hOC4o+C4lOC4tOC4leC4n+C4reC4h+C4i+C4tOC5gOC4reC4o+C5jAor4LmA4LiE4Lij4LiZCivguYDguITguKPguLIKK+C5gOC4hOC4o+C5iOC4sgor4LmA4LiE4Lij4Liy4LmB4Lie4LiwCivguYDguITguKPguLLguKvguJPguLUKK+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LmA4LiE4Lij4Liy4Liw4Lir4LmM4Lir4Liy4Lih4Lii4Liy4Lih4Lij4LmJ4Liy4LiiCivguYDguITguKPguLXguKLguJQKK+C5gOC4hOC4o+C4teC4ouC4pwor4LmA4LiE4Lij4Li34LitCivguYDguITguKPguLfguK3guYDguILguLIKK+C5gOC4hOC4o+C4t+C4reC5gOC4guC4suC4meC5ieC4swor4LmA4LiE4Lij4Li34Lit4LmA4LiC4Liy4Lih4Lin4LiBCivguYDguITguKPguLfguYjguK3guIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4geC4pQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiB4Lix4LiT4LiR4LmMCivguYDguITguKPguLfguYjguK3guIfguIHguLTguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5geC4geC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4LiC4Li04LiZCivguYDguITguKPguLfguYjguK3guIfguITguKPguLHguKcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4hOC4p+C4muC5geC4meC5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiE4Li54LmICivguYDguITguKPguLfguYjguK3guIfguYDguITguKPguLIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4h+C4tOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiI4Lix4LiB4LijCivguYDguITguKPguLfguYjguK3guIfguIrguYjguKfguIfguKXguYjguLLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4i+C5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiU4LiZ4LiV4Lij4Li1CivguYDguITguKPguLfguYjguK3guIfguJXguYnguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4leC4seC5ieC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiX4Lit4LiHCivguYDguITguKPguLfguYjguK3guIfguJfguK3guIfguJfguLTguKgKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4l+C4reC4h+C4meC5ieC4reC4ogor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4LiX4LioCivguYDguITguKPguLfguYjguK3guIfguYPguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4muC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lia4Lix4LiZ4LiX4Li24LiB4LmA4Liq4Li14Lii4LiHCivguYDguITguKPguLfguYjguK3guIfguJrguLTguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4muC4ueC4iuC4sgor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmB4Lia4LiaCivguYDguITguKPguLfguYjguK3guIfguJvguKPguLDguJTguLHguJoKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4m+C4o+C4uOC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lib4Lix4LmJ4LiZ4LiU4Li04LiZ4LmA4Lic4LiyCivguYDguITguKPguLfguYjguK3guIfguJzguLnguIEKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4oeC4seC5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lih4Li34LitCivguYDguITguKPguLfguYjguK3guIfguKLguJnguJXguYwKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4ouC4meC4leC5jOC5hOC4reC4nuC5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lij4LmI4Lit4LiZCivguYDguITguKPguLfguYjguK3guIfguKPguLLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4o+C4suC4iuC4reC4tOC4quC4o+C4tOC4ouC4suC4oOC4o+C4k+C5jAor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lij4LmI4LizCivguYDguITguKPguLfguYjguK3guIfguYDguKPguLfguK3guJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4peC5iOC4suC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4Lil4LmI4LiZCivguYDguITguKPguLfguYjguK3guIfguKfguYjguLLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4lAor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Liw4LiU4Li44LmJ4LiHCivguYDguITguKPguLfguYjguK3guIfguKrguLHguJoKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4suC4ogor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Liz4Lit4Liy4LiHCivguYDguITguKPguLfguYjguK3guIfguKrguLjguIHguLPguKjguJ4KK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4ueC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lih4Liy4LiiCivguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKLguIHguLLguKPguITguYnguLIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C4ouC4p+C4gQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lil4Lix4LiHCivguYDguITguKPguLfguYjguK3guIfguKvguYnguLIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4q+C4peC5h+C4gQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmD4Lir4LiN4LmICivguYDguITguKPguLfguYjguK3guIfguK3guLHguIfguJfguKPguLLguKIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4reC4seC4h+C4meC5ieC4swor4LmA4LiE4Lij4Li34Lit4LiI4Lix4LiB4Lij4Lig4LieCivguYDguITguKPguLfguK3guJTguLTguJkKK+C5gOC4hOC4o+C4t+C4reC5geC4ouC5iOC4hwor4LmA4LiE4Lij4Li34Lit4Lij4Lix4LiQCivguYDguITguKPguLfguK3guKfguLHguKXguKLguYzguJ7guLHguJnguYTguKHguYkKK+C5gOC4hOC4peC5ieC4hwor4LmA4LiE4Lil4LmH4LiUCivguYDguITguKXguYnguJkKK+C5gOC4hOC4peC5ieC4sgor4LmA4LiE4Lil4LmI4Liy4LiE4Lil4LmI4Lit4LiHCivguYDguITguKXguYnguLLguITguKXguLbguIcKK+C5gOC4hOC4peC5ieC4suC5gOC4hOC4peC4teC4ogor4LmA4LiE4Lil4Li04Lia4LmA4LiE4Lil4Li04LmJ4LihCivguYDguITguKXguLTguYnguKEKK+C5gOC4hOC4peC4teC4ogor4LmA4LiE4Lil4Li14Lii4LiE4Lil4LitCivguYDguITguKXguLXguYnguKLguITguKXguLTguIcKK+C5gOC4hOC4peC4teC4ouC5gOC4hOC4peC5ieC4sgor4LmA4LiE4Lil4Li34LmI4Lit4LiZCivguYDguITguKXguLfguYjguK3guJnguITguKXguLLguJQKK+C5gOC4hOC4peC4t+C5iOC4reC4meC4l+C4teC5iAor4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LmE4Lir4LinCivguYDguITguKXguLfguK3guJoKK+C5gOC4hOC4peC4t+C4reC4muC4hOC4peC4uOC4oQor4LmA4LiE4Lil4Li34Lit4Lia4LmB4LiE4Lil4LiHCivguYDguITguKXguLfguK3guJrguYHguJ3guIcKK+C5gOC4hOC4peC4t+C4reC4muC4n+C4seC4mQor4LmA4LiE4Lin4LmJ4LiHCivguYDguITguKfguYnguIfguITguKfguYnguLLguIcKK+C5gOC4hOC4qy0KK+C5gOC4hOC4q+C4qOC4suC4quC4leC4o+C5jAor4LmA4LiE4Lir4LmA4Lio4Lij4Lip4LiQ4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguITguKvguKrguJbguLLguJkKK+C5gOC4hOC4q+C4sAor4LmA4LiE4Lir4LiyCivguYDguITguK3guKIKK+C5gOC4hOC4reC4sAor4LmA4LiE4LiyCivguYDguITguYnguLIKK+C5gOC4hOC5ieC4suC5guC4hOC4o+C4hwor4LmA4LiE4LmJ4Liy4LmA4LiH4Li34LmI4Lit4LiZCivguYDguITguLLguJnguYzguYDguJXguK3guKPguYwKK+C5gOC4hOC5ieC4suC4oeC4ueC4pQor4LmA4LiE4Liy4Lij4LieCivguYDguITguYnguLLguKrguJnguLLguKHguKvguKXguKfguIcKK+C5gOC4hOC4suC4sAor4LmA4LiE4Liy4Liw4LmB4LiE4LiwCivguYDguITguLXguYnguKIKK+C5gOC4hOC4teC4ouC4hwor4LmA4LiE4Li14Lii4LiH4Lia4LmI4Liy4LmA4LiE4Li14Lii4LiH4LmE4Lir4Lil4LmICivguYDguITguLXguKLguJQKK+C5gOC4hOC4teC4ouC4lOC5geC4hOC5ieC4mQor4LmA4LiE4Li14Lii4LiZCivguYDguITguLXguKLguKEKK+C5gOC4hOC4teC5iOC4ouC4oQor4LmA4LiE4Li14LmI4Lii4Lih4LiE4Liw4LiZ4Lit4LiHCivguYDguITguLXguKLguKMKK+C5gOC4hOC4teC4ouC4pwor4LmA4LiE4Li14LmI4Lii4LinCivguYDguITguLXguYnguKLguKcKK+C5gOC4hOC4teC5iOC4ouC4p+C4guC4seC4mQor4LmA4LiE4Li14LmI4Lii4Lin4LiC4Lix4LiaCivguYDguITguLXguYjguKLguKfguYDguILguYfguI0KK+C5gOC4hOC4teC5ieC4ouC4p+C4n+C4seC4mQor4LmA4LiE4Li14LmJ4Lii4Lin4LmA4Lit4Li34LmJ4Lit4LiHCivguYDguITguLfguYnguK0KK+C5gOC4hOC4t+C4reC4hwor4LmB4LiECivguYHguITguYgKK+C5geC4hOC5iQor4LmB4LiE4LmB4LiB4LilCivguYHguITguJTguYDguKHguLXguKLguKEKK+C5geC4hOC5h+C4leC4leC4suC4peC5h+C4reC4gQor4LmB4LiE4LmB4LiV4LijCivguYHguITguYLguJfguJQKK+C5geC4hOC4mQor4LmB4LiE4LmI4LiZCivguYHguITguYnguJkKK+C5geC4hOC5ieC4meC4hOC4rQor4LmB4LiE4LmI4LiZ4LmB4LiE4LiwCivguYHguITguYjguJnguYTguITguYkKK+C5geC4hOC4mgor4LmB4LiE4Lia4Lir4Lih4Li5CivguYHguITguJvguIvguLnguKUKK+C5geC4hOC4neC4o+C4seC5iOC4hwor4LmB4LiE4Lid4Lit4LiiCivguYHguITguKEKK+C5geC4hOC4o+C5iAor4LmB4LiE4Lij4LiBCivguYHguITguKPguITguKPguLHguYjguIcKK+C5geC4hOC4o+C4hwor4LmB4LiE4Lij4LiH4LmA4LiE4Lij4Li14Lii4LinCivguYHguITguKPguLAKK+C5geC4hOC4peC4hOC4ueC4peC4seC4qgor4LmB4LiE4Lil4LiHCivguYHguITguKXguIfguYPguIgKK+C5geC4hOC4peC5gOC4i+C4teC4ouC4oQor4LmB4LiE4Lil4LmA4LiL4Li14Lii4Lih4LiE4Liy4Lij4LmM4LmE4Lia4LiU4LmMCivguYHguITguKXguYDguIvguLXguKLguKHguYTguIvguITguKXguLLguYDguKHguJUKK+C5geC4hOC4peC4mQor4LmB4LiE4Lil4LmJ4LinCivguYHguITguKXguYjguKfguITguKXguYjguK3guIcKK+C5geC4hOC4peC5ieC4p+C4hOC4peC4suC4lAor4LmB4LiE4Lil4Lit4Lij4Li1CivguYHguITguKXguLTguJ/guK3guKPguYzguYDguJnguLXguKLguKEKK+C5geC4hOC5geC4pQor4LmB4LiE4LinCivguYHguITguKfguIEKK+C5geC4hOC4p+C5ieC4hwor4LmB4LiE4Lin4LmJ4LiZCivguYHguITguYHguKrguJQKK+C5geC4hOC4sAor4LmB4LiE4Liw4LmE4LiE4LmJCivguYLguIQKK+C5guC4hOC4gQor4LmC4LiE4LiB4LiB4Lij4Liw4Liq4Li44LiZCivguYLguITguIHguIHguKPguLDguK3guK3guKEKK+C5guC4hOC4geC4oeC5ieC4sgor4LmC4LiE4LmB4LiB4LmI4LiK4Lit4Lia4LiB4Li04LiZ4Lir4LiN4LmJ4Liy4Lit4LmI4Lit4LiZCivguYLguITguITguKXguLLguJkKK+C5guC4hOC5gOC4hOC4mQor4LmC4LiE4LmI4LiHCivguYLguITguYnguIcKK+C5guC4hOC4iOC4owor4LmC4LiE4LiI4LijLQor4LmC4LiE4LiI4Lij4LiE4Liy4LihCivguYLguITguYDguIvguYHguITguJnguJXguYwKK+C5guC4hOC5hOC4i+C4meC5jAor4LmC4LiE4LiV4LijCivguYLguITguJXguKMtCivguYLguITguJXguKPguKDguLkKK+C5guC4hOC4leC4o+C4oOC4ueC4jeC4suC4kwor4LmC4LiE4LmA4LiW4Lil4Li04LiHCivguYLguITguYHguJfguJnguYDguIjguJnguJXguYwKK+C5guC4hOC4mOC4sgor4LmC4LiE4LiZCivguYLguITguYjguJkKK+C5guC4hOC4meC4lOC4tOC4meC4quC4rQor4LmC4LiE4LiZ4LiV4Liy4Lii4Lib4Lil4Liy4Lii4LmA4Lib4LmH4LiZCivguYLguITguJnguKEKK+C5guC4hOC4meC4quC4oeC4rQor4LmC4LiE4Lia4Lit4Lil4LiV4LmMCivguYLguITguJrguLLguKUKK+C5guC4hOC4muC4uOC4leC4owor4LmC4LiE4Lib4Lic4LiB4LiwCivguYLguITguYDguJ7guKXguLLguLAKK+C5guC4hOC5hOC4nuC4owor4LmC4LiE4LihCivguYLguITguKHguJTguK3guIHguYTguKHguYkKK+C5guC4hOC4oeC4leC4suC4p+C4seC4pwor4LmC4LiE4Lih4Lil4Lit4LiiCivguYLguITguKHguYDguKfguLXguKLguJkKK+C5guC4hOC4oeC4seC4ogor4LmC4LiE4Lih4LmI4LiyCivguYLguITguKHguLnguJXguKMKK+C5guC4hOC4o+C4gQor4LmC4LiE4Lij4LiB4LiE4Lij4Lit4LiBCivguYLguITguKPguIHguITguKPguLLguIEKK+C5guC4hOC4o+C4hwor4LmC4LiE4Lij4LmI4LiHCivguYLguITguKPguIfguIHguLLguKMKK+C5guC4hOC4o+C5iOC4h+C4hOC4o+C5iOC4suC4hwor4LmC4LiE4Lij4LiH4LmB4LiE4LijCivguYLguITguKPguIfguIjguKHguLnguIEKK+C5guC4hOC4o+C4h+C5gOC4o+C4t+C5iOC4reC4hwor4LmC4LiE4Lij4LiH4Liq4Lij4LmJ4Liy4LiHCivguYLguITguKPguKEKK+C5guC4hOC4o+C4oeC4hOC4o+C4suC4oQor4LmC4LiE4Lij4LmA4Lih4Li14Lii4LihCivguYLguITguKPguYLguKHguYLguIvguKEKK+C5guC4hOC4o+C4qgor4LmC4LiE4Lij4Liy4LiKCivguYLguITguKPguLMKK+C5guC4hOC5guC4o+C4hAor4LmC4LiE4LilCivguYLguITguKXguIcKK+C5guC4hOC4peC4h+C5gOC4hOC4peC4hwor4LmC4LiE4Lil4LiZCivguYLguITguKfguJXguLIKK+C5guC4hOC4p+C4tOC4luC4tQor4LmC4LiE4Lio4Lix4Lie4LiX4LmMCivguYLguITguK3guK3guKPguYzguJTguLTguYDguJnguJUKK+C5g+C4hOC4owor4LmD4LiE4Lij4LmICivguYPguITguKPguYjguITguKPguKfguI0KK+C5hOC4hAor4LmE4LiE4LmJCivguYTguITguKPguYkKK+C5hOC4hOC4o+C5ieC5gOC4hOC4o+C4t+C4rQor4LmE4LiE4LilCivguYTguITguKXguYkKK+C4hQor4LiGCivguIbguJkKK+C4huC4o+C4suC4p+C4suC4qgor4LiG4LmJ4Lit4LiHCivguIbguYnguK3guIfguIHguKPguLDguYHguJUKK+C4huC5ieC4reC4h+C4iuC4seC4ogor4LiG4LmJ4Lit4LiH4Lib4Liy4LiB4LmB4LiV4LiBCivguIbguYnguK3guIfguKfguIcKK+C4huC5ieC4reC4h+C4quC4suC4oeC4ouC5iOC4suC4mQor4LiG4LmJ4Lit4LiH4Lir4Li44LmI4LiiCivguIbguYnguK3guIfguYDguKvguKHguYjguIcKK+C4huC5ieC4reC4h+C5guC4q+C4oeC5iOC4hwor4LiG4LmI4LiyCivguIbguYjguLLguITguKfguLLguKLguK3guKLguYjguLLguYDguKrguLXguKLguJTguLLguKLguJ7guKPguLTguIEKK+C4huC4suC4jwor4LiG4Liy4LiVCivguIbguLLguJUtCivguIbguLLguJXguIHguKMKK+C4huC4suC4leC4geC4o+C4o+C4oQor4LiG4Liy4LiZCivguIbguLLguJktCivguIbguLLguJnguJvguKPguLDguKrguLLguJcKK+C4huC5iOC4suC5hOC4oeC5iOC4leC4suC4ouC4guC4suC4ouC5hOC4oeC5iOC4guC4suC4lAor4LmA4LiG4Li14LmI4Lii4LiZCivguYLguIbguKPguKfguLTguKoKK+C5guC4huC4qeC4gQor4LmC4LiG4Lip4LiT4LiyCivguYLguIbguKnguJPguLLguIHguLLguKMKK+C5guC4huC4qeC4k+C4suC4iuC4p+C4meC5gOC4iuC4t+C5iOC4rQor4LmC4LiG4Lip4LiwCivguYLguIbguKnguLTguJUKK+C4hwor4LiH4LiBCivguIfguIHguYDguIfguLTguYjguJkKK+C4h+C4geC5hiDguYDguIfguLTguYjguJnguYYKK+C4h+C4hwor4LiH4LiH4LiH4Lin4LiiCivguIfguIfguIfguLHguJkKK+C4h+C4h+C4tOC4lAor4LiH4LiUCivguIfguJTguIfguLLguKEKK+C4h+C4mgor4LiH4Lia4LiU4Li44LilCivguIfguJrguJvguKPguLDguKHguLLguJMKK+C4h+C4oQor4LiH4Lih4LmA4LiC4LmH4Lih4LmD4LiZ4Lih4Lir4Liy4Liq4Lih4Li44LiX4LijCivguIfguKHguYLguILguYjguIcKK+C4h+C4oeC4h+C4suC4ogor4LiH4Lin4LiHCivguIfguYjguKfguIcKK+C4h+C5iOC4p+C4h+C4h+C4uOC4mQor4LiH4Lin4LiH4LiK4LmJ4Liy4LiHCivguIfguYjguKfguIfguYDguKvguIfguLIKK+C4h+C5iOC4p+C4h+C5gOC4q+C4h+C4suC4q+C4suC4p+C4meC4reC4mQor4LiH4Lin4LiUCivguIfguYjguKfguJkKK+C4h+C5ieC4p+C4mQor4LiH4Lin4Lii4LiH4LiHCivguIfguK0KK+C4h+C5ieC4rQor4LiH4Lit4LiBCivguIfguK3guIHguIfguLLguKEKK+C4h+C4reC4geC5gOC4h+C4ogor4LiH4Lit4LiB4LmB4LiH4LiBCivguIfguK3guIHguYjguK3guIfguK3guILguLTguIcKK+C4h+C5iOC4reC4hwor4LiH4LmI4Lit4LiH4LmB4LiH4LmI4LiHCivguIfguYnguK3guIfguK3guJkKK+C4h+C4reC5geC4hwor4LiH4Lit4LiUCivguIfguK3guJTguYHguIfguJQKK+C4h+C4reC4mQor4LiH4LmI4Lit4LiZCivguIfguK3guJnguIfguYnguK0KK+C4h+C5iOC4reC4meC5geC4h+C5iOC4mQor4LiH4Lit4LiZ4LmE4LiWCivguIfguK3guJnguKvguIfguYjguK0KK+C4h+C5ieC4reC4meC4q+C4oeC4uQor4LiH4Lit4LiaCivguIfguK3guKEKK+C4h+C5ieC4reC4oQor4LiH4Lit4Lih4LmB4LiH4LihCivguIfguK3guKHguJ7guKPguLDguKPguLLguKEKK+C4h+C4reC4oeC4t+C4reC4h+C4reC4leC4teC4mQor4LiH4Lit4LiiCivguIfguYjguK3guKIKK+C4h+C5iOC4reC4ouC5gOC4m+C4peC4teC5ieC4ouC5gOC4quC4teC4ouC4guC4sgor4LiH4Lit4Lir4Liy4LiiCivguIfguLAKK+C4h+C4seC4geC5hgor4LiH4Lix4LmI4LiB4LmGCivguIfguLHguIfguYYKK+C4h+C4seC5iOC4hwor4LiH4Lix4LiUCivguIfguLHguJTguILguYnguK0KK+C4h+C4seC4mQor4LiH4Lix4LiZ4LiH4LiBCivguIfguLHguJoKK+C4h+C4seC4muC5geC4hwor4LiH4Lix4LinCivguIfguLHguYjguKcKK+C4h+C4seC4p+C5gOC4h+C4teC4ogor4LiH4Lix4Lin4LiL4Lix4LiHCivguIfguLHguKfguYDguKXguLXguKIKK+C4h+C4sgor4LiH4LmI4LiyCivguIfguLLguIHguLPguIjguLLguKIKK+C4h+C4suC5gOC4hOC4o+C4t+C4rQor4LiH4LmJ4Liy4LiHCivguIfguYjguLLguYDguIfguKIKK+C4h+C4suC4iuC5ieC4suC4hwor4LiH4Liy4LmB4LiL4LiHCivguIfguLLguYTguIsKK+C4h+C4suC4leC4seC4lAor4LiH4Liy4LiZCivguIfguYjguLLguJkKK+C4h+C4suC4meC4geC4suC4owor4LiH4Liy4LiZ4Lir4Lil4Lin4LiH4LmE4Lih4LmI4LmD4Lir4LmJ4LiC4Liy4LiUIOC4h+C4suC4meC4o+C4suC4qeC4juC4o+C5jOC5hOC4oeC5iOC5g+C4q+C5ieC5gOC4quC4teC4ogor4LiH4Liy4Lia4LmGCivguIfguLLguKEKK+C4h+C5iOC4suC4oQor4LiH4Liy4Lih4LiH4Lit4LiZCivguIfguLLguKHguYHguIfguLAKK+C4h+C5iOC4suC4oeC4luC5iOC4rQor4LiH4Liy4Lih4Lir4LiZ4LmJ4LiyCivguIfguLLguKIKK+C4h+C5iOC4suC4ogor4LiH4LmI4Liy4Lii4LmGCivguIfguYjguLLguKLguJTguLLguKIKK+C4h+C5iOC4suC4ouC5ieC4reC4ogor4LiH4Liy4Lil4Lix4LmI4LinCivguIfguYnguLLguKcKK+C4h+C4suC4quC4suC4mQor4LiH4LizCivguIfguYjguLMKK+C4h+C5iOC4s+C5hgor4LiH4LmJ4LizCivguIfguLTguYnguKcKK+C4h+C4teC4mgor4LiH4Li24LiB4LmGCivguIfguLbguJkKK+C4h+C4tuC4oQor4LiH4Li24Lih4LiH4LizCivguIfguLjguJQKK+C4h+C4uOC4lOC5hgor4LiH4Li44LiZ4LiH4LiHCivguIfguLjguYjguJnguIfguYjguLLguJkKK+C4h+C4uOC4mgor4LiH4Li44Lia4LmGCivguIfguLjguJrguIfguLTguJoKK+C4h+C4uOC5ieC4oQor4LiH4Li44LmI4Lih4LiH4LmI4Liy4LihCivguIfguLjguKIKK+C4h+C4uQor4LiH4Li54LiB4Lil4Li34LiZ4Lir4Liy4LiHCivguIfguLnguIHguLTguJnguKvguLLguIcKK+C4h+C4ueC4mgor4LiH4Li54LmGIOC4m+C4peC4suC5hgor4LiH4Li54Lic4Li54LmJCivguIfguLnguYDguKHguLXguKIKK+C4h+C4ueC4quC4p+C4seC4lAor4LiH4Li54LmI4Lir4LiZ4Li1CivguIfguLnguYDguKvguKXguLfguK3guKEKK+C4h+C4ueC5gOC4q+C5iOC4sgor4LmA4LiH4LmJCivguYDguIfguIEKK+C5gOC4h+C5h+C4mQor4LmA4LiH4LiiCivguYDguIfguKLguKvguJnguYnguLLguK3guYnguLLguJvguLLguIEKK+C5gOC4h+C4reC4sAor4LmA4LiH4Lit4Liw4LiH4LiwCivguYDguIfguLIKK+C5gOC4h+C4suC5hgor4LmA4LiH4LmI4LiyCivguYDguIfguYnguLIKK+C5gOC4h+C5ieC4suC4h+C4reC4lAor4LmA4LiH4LmJ4Liy4LmGIOC4h+C4reC4lOC5hgor4LmA4LiH4Liy4LiV4Liy4Lih4LiV4Lix4LinCivguYDguIfguLLguKHguLHguKcKK+C5gOC4h+C4suC4oeC4t+C4lAor4LmA4LiH4Liy4LiwCivguYDguIfguLLguLDguJvguYjguLIKK+C5gOC4h+C4tOC4mQor4LmA4LiH4Li04LiZ4LiB4LmJ4LiZ4LiW4Li44LiHCivguYDguIfguLTguJnguIHguYnguK3guJkKK+C5gOC4h+C4tOC4meC4geC4ueC5iQor4LmA4LiH4Li04LiZ4LmA4LiK4Li34LmI4LitCivguYDguIfguLTguJnguJTguLLguKfguJnguYwKK+C5gOC4h+C4tOC4meC5gOC4lOC4t+C4reC4mQor4LmA4LiH4Li04LiZ4LmB4LiU4LiHCivguYDguIfguLTguJnguYTguJTguYnguIHguLPguJrguLHguIcKK+C5gOC4h+C4tOC4meC4leC5ieC4mQor4LmA4LiH4Li04LiZ4LiV4Lij4LiyCivguYDguIfguLTguJnguJXguLLguKIKK+C5gOC4h+C4tOC4meC4l+C4reC4h+C4leC4o+C4sgor4LmA4LiH4Li04LiZ4LiX4Lit4LiZCivguYDguIfguLTguJnguJnguK3guJkKK+C5gOC4h+C4tOC4meC4meC5ieC4s+C4q+C5ieC4suC4meC5ieC4s+C4q+C4gQor4LmA4LiH4Li04LiZ4Lib4Lil4Li14LiBCivguYDguIfguLTguJnguJvguLHguJnguJzguKUKK+C5gOC4h+C4tOC4meC4m+C4suC4geC4luC4uOC4hwor4LmA4LiH4Li04LiZ4Lib4Liy4LiB4Lic4Li1CivguYDguIfguLTguJnguJvguLUKK+C5gOC4h+C4tOC4meC5geC4mwor4LmA4LiH4Li04LiZ4Lic4LmI4Lit4LiZCivguYDguIfguLTguJnguJ3guLfguJQKK+C5gOC4h+C4tOC4meC5gOC4n+C5ieC4rQor4LmA4LiH4Li04LiZ4Lih4Li44LmI4LiZCivguYDguIfguLTguJnguKLguKfguIcKK+C5gOC4h+C4tOC4meC5gOC4ouC4reC4o+C4oeC4seC4mQor4LmA4LiH4Li04LiZ4Lij4LmJ4Lit4LiZCivguYDguIfguLTguJnguKPguLLguKLguJvguLUKK+C5gOC4h+C4tOC4meC4quC4lAor4LmA4LiH4Li04LiZ4Liq4LmA4LiV4Lit4Lij4LmM4Lil4Li04LiHCivguYDguIfguLTguJnguKvguKXguKfguIcKK+C5gOC4h+C4tOC4meC5geC4q+C5ieC4hwor4LmA4LiH4Li14LmI4Lii4LiHCivguYDguIfguLXguYjguKLguJkKK+C5gOC4h+C4teC4ouC4mgor4LmA4LiH4Li14Lii4Lia4LiB4Lij4Li04LiaCivguYDguIfguLXguKLguJrguYDguIrguLXguKLguJoKK+C5gOC4h+C4teC4ouC4muC5gOC4m+C5h+C4meC5gOC4m+C5iOC4suC4quC4suC4gQor4LmA4LiH4Li14Lii4Lia4LmA4Lir4LiH4LiyCivguYDguIfguLXguYnguKLguKcKK+C5gOC4h+C4teC5ieC4ouC4p+C4o+C4sOC5gOC4o+C4tOC4hwor4LmA4LiH4Li14LmJ4Lii4Lin4Lij4Liz4Lil4Li24LiBCivguYDguIfguLXguYjguKLguKvguLkKK+C5gOC4h+C4t+C5ieC4rQor4LmA4LiH4Li34Lit4LiBCivguYDguIfguLfguYjguK3guIcKK+C5gOC4h+C4t+C5iOC4reC4h+C5hgor4LmA4LiH4Li34LmI4Lit4LiH4Lir4LiH4Lit4LiiCivguYDguIfguLfguYnguK3guIfguYjguLLguKPguLLguITguLLguYHguJ7guIcKK+C5gOC4h+C4t+C4reC4lAor4LmA4LiH4Li34Lit4LiU4LiH4LiUCivguYDguIfguLfguK3guJTguYDguIfguLfguYnguK0KK+C5gOC4h+C4t+C4reC4mQor4LmA4LiH4Li34LmI4Lit4LiZCivguYDguIfguLfguYjguK3guJnguYTguIIKK+C5gOC4h+C4t+C5iOC4reC4meC5hOC4guC4muC4seC4h+C4hOC4seC4muC4geC5iOC4reC4mQor4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4Lia4Lix4LiH4LiE4Lix4Lia4Lir4Lil4Lix4LiHCivguYDguIfguLfguYjguK3guJnguIfguLMKK+C5gOC4h+C4t+C5iOC4reC4meC5gOC4p+C4peC4sgor4LmA4LiH4Li34LmI4Lit4LiZ4LmA4Lin4Lil4Liy4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZCivguYDguIfguLfguYjguK3guJnguYDguKfguKXguLLguKrguLTguYnguJnguKrguLjguJQKK+C5gOC4h+C4t+C4reC4mgor4LmA4LiH4Li34LmJ4Lit4LihCivguYDguIfguLfguYnguK3guKHguKHguLfguK0KK+C5geC4hwor4LmB4LiH4LmGCivguYHguIfguYgKK+C5geC4h+C5iOC4hwor4LmB4LiH4LmI4LiH4LmGCivguYHguIfguYjguIfguILguLTguIcKK+C5geC4h+C5iOC4h+C4reC4mQor4LmB4LiH4LmI4LiZCivguYHguIfguYjguJnguYYKK+C5geC4h+C5ieC4oQor4LmB4LiH4LiwCivguYLguIcKK+C5guC4h+C5iAor4LmC4LiH4LiBCivguYLguIfguIHguYDguIfguIEKK+C5guC4h+C5iOC5geC4geC4oeC4q+C4ouC4tOC5iOC4hwor4LmC4LiH4LiHCivguYLguIfguYjguIfguYYKK+C5guC4h+C5ieC4hwor4LmC4LiH4LiH4LmA4LiH4LiHCivguYLguIfguYjguIfguYDguIfguYjguIcKK+C5guC4h+C5gOC4hwor4LmC4LiH4LmI4LmA4LiH4LmI4LiyCivguYLguIfguYjguYDguIfguYjguLLguYDguJXguYjguLLguJXguLjguYjguJkKK+C5guC4h+C4mQor4LmC4LiH4LiZ4LmA4LiH4LiZCivguYLguIfguYjguYHguKXguYnguKfguK3guKLguLLguIHguJnguK3guJnguYDguJXguLXguKLguIcKK+C5hOC4h+C5iQor4LiICivguIjguIEKK+C4iOC4hwor4LiI4LmI4LiHCivguIjguYvguIcKK+C4iOC4h+C4geC4o+C4oQor4LiI4LiH4LiB4Lij4Lih4LmB4LiB4LmJ4LinCivguIjguIfguIHguKUKK+C4iOC4h+C4geC4peC4meC4tQor4LiI4LiH4LmA4LiB4Lil4Li14Lii4LiU4LiI4LiH4LiK4Lix4LiHCivguIjguIfguYLguITguKPguYjguIcKK+C4iOC4h+C5g+C4iAor4LiI4LiH4LiU4Li1CivguIjguIfguKPguLHguIEKK+C4iOC4h+C4o+C4seC4geC4oOC4seC4geC4lOC4tQor4LiI4LiH4Lit4LijCivguIjguIfguK3guLLguIcKK+C4iOC5geC4iOC5ieC4mQor4LiI4LiNCivguIjguJQKK+C4iOC4lOC4iOC5iOC4rQor4LiI4LiU4LiI4LmJ4Lit4LiHCivguIjguJTguYYg4LiI4LmJ4Lit4LiH4LmGCivguIjguJTguIjguLMKK+C4iOC4lOC4l+C4sOC5gOC4muC4teC4ouC4mQor4LiI4LiU4Lir4Lih4Lix4LiUCivguIjguJTguKvguKHguLLguKIKK+C4iOC4lOC4q+C4oeC4suC4ouC5gOC4p+C4teC4ouC4mQor4LiI4LiU4Lir4Lih4Liy4Lii4LmA4Lir4LiV4Li4CivguIjguJTguLjguKMKK+C4iOC4lOC4uOC4o+C4h+C4hOC5jAor4LiI4LiU4Li54LijLQor4LiI4LiV4Li4LQor4LiI4LiV4Li44LiB4Liy4Lil4LiY4Liy4LiV4Li4CivguIjguJXguLjguJXguJYtCivguIjguJXguLjguJXguJbguLUKK+C4iOC4leC4uOC4l+C4tOC4nuC4ouC4hOC4seC4meC4mOC4sgor4LiI4LiV4Li44Lia4LiXCivguIjguJXguLjguJrguKPguLTguKnguLHguJcKK+C4iOC4leC4uOC4m+C4seC4iOC4iOC4seC4ogor4LiI4LiV4Li44Lib4Liy4Lij4Li04Liq4Li44LiX4LiY4Li04Lio4Li14LilCivguIjguJXguLjguKMtCivguIjguJXguLjguKPguITguLnguJMKK+C4iOC4leC4uOC4o+C4h+C4hOC5jAor4LiI4LiV4Li44Lij4LiH4LiE4LiZ4Liy4Lii4LiBCivguIjguJXguLjguKPguIfguITguJvguKPguLDguJTguLHguJoKK+C4iOC4leC4uOC4o+C4h+C4hOC4ouC4oeC4gQor4LiI4LiV4Li44Lij4LiWLQor4LiI4LiV4Li44Lij4Lie4Lix4LiB4LiV4Lij4LmMCivguIjguJXguLjguKPguJ7guLTguJgKK+C4iOC4leC4uOC4o+C4nuC4tOC4mOC4nuC4owor4LiI4LiV4Li44Lij4Lig4Li44LiKCivguIjguJXguLjguKPguKDguLnguKHguLQKK+C4iOC4leC4uOC4o+C4ouC4uOC4hAor4LiI4LiV4Li44Lij4Liy4Lij4Li04Lii4Liq4Lix4LiICivguIjguJXguLjguKXguLHguIfguITguJrguLLguJcKK+C4iOC4leC4uOC5guC4peC4geC4muC4suC4pQor4LiI4LiV4Li44Liq4LiU4Lih4Lig4LmMCivguIjguJfguLbguIcKK+C4iOC4mQor4LiI4LmJ4LiZCivguIjguJnguIHguKPguLDguJfguLHguYjguIcKK+C4iOC4meC4geC4p+C5iOC4sgor4LiI4LiZ4LiK4Lix4LmJ4LiZCivguIjguJnguJTguYnguKfguKLguYDguIHguKXguYnguLIKK+C4iOC4meC4luC4tuC4hwor4LiI4LiZ4LmB4Lil4LmJ4Lin4LiI4LiZ4Lij4Lit4LiUCivguIjguJoKK+C4iOC4muC5gOC4q+C5iAor4LiI4LihCivguIjguYjguKEKK+C4iOC4oeC5gOC4muC5ieC4sgor4LiI4Lih4Lib4Lil4Lix4LiBCivguIjguKHguYTguKHguYjguKXguIcKK+C4iOC4oeC4owor4LiI4Lih4Lij4Li1CivguIjguKHguLnguIEKK+C4iOC4oeC4ueC4geC4m+C4peC4suC4q+C4peC4lAor4LiI4Lih4Li54LiB4Lib4Lil4Liy4LmE4Lir4LilCivguIjguKHguLnguIHguKHguJQKK+C4iOC4oeC4ueC4geC4p+C4seC4pwor4LiI4Lih4Li54LiB4Lir4Lil4Lit4LiUCivguIjguKLguLjguJXguLQKK+C4iOC4owor4LiI4LijLQor4LiI4Lij4LiBCivguIjguKPguIHguKXguLnguYgKK+C4iOC4o+C5geC4geC4p+C5iOC4hwor4LiI4Lij4LiE4Lix4LmI4LiHCivguIjguKPguIjguKPguLHguKUKK+C4iOC4o+C4iOC4seC4lAor4LiI4Lij4LiT4LiwCivguIjguKPguJQKK+C4iOC4o+C4lOC4nuC4o+C4sOC4geC4o+C4o+C5hOC4leC4o+C4geC4o+C4o+C4muC4tOC4lAor4LiI4Lij4LiU4Lie4Lij4Liw4LiZ4Lix4LiH4LiE4Lix4LilCivguIjguKPguJTguKUKK+C4iOC4o+C4muC4mQor4LiI4Lij4Lia4Lix4LiZCivguIjguKPguJrguLLguJcKK+C4iOC4o+C4oeC4seC4mQor4LiI4Lij4Lih4Li54LiBCivguIjguKPguKPguIjguLIKK+C4iOC4o+C4o+C5guC4iOC4qQor4LiI4Lij4Lij4LihCivguIjguKPguKPguKEtCivguIjguKPguKPguKHguIHguLLguKMKK+C4iOC4o+C4o+C4oeC4guC4seC4k+C4keC5jAor4LiI4Lij4Lij4Lii4LiyCivguIjguKPguKPguKLguLLguJrguKPguKPguJMKK+C4iOC4o+C4o+C5guC4peC4hwor4LiI4Lij4Lil4Lin4LiHCivguIjguKPguKXguYjguKfguIcKK+C4iOC4o+C4peC4suC4lAor4LiI4Lij4Lil4Liy4LiiCivguIjguKPguKXguYjguLMKK+C4iOC4o+C4peC4tOC5iOC4pwor4LiI4Lij4Lil4Li1CivguIjguKPguKXguLnguYgKK+C4iOC4o+C4p+C4iAor4LiI4Lij4Lin4LiI4LmE4LiI4LijCivguIjguKPguKfguJQKK+C4iOC4o+C4p+C4lOC4iOC4o+C4tQor4LiI4Lij4Lin4LiU4LiZ4Liz4Lin4Li04LiW4Li1CivguIjguKPguKfguLHguIEKK+C4iOC4o+C4qgor4LiI4Lij4Lit4LiBCivguIjguKPguLDguIHguKXguYnguLLguKIKK+C4iOC4o+C4sOC4guC4suC4mgor4LiI4Lij4Liw4LmA4LiC4LmJCivguIjguKPguLDguYDguILguYnguJvguLLguIHguIHguKPguLDguJfguLjguIfguYDguKvguKcKK+C4iOC4o+C4sOC5gOC4guC5ieC4q+C4suC4h+C4ouC4suC4pwor4LiI4Lij4Liw4LiE4Lil4Lix4LiaCivguIjguKPguLDguITguKXguYnguLLguKIKK+C4iOC4o+C4sOC4hOC4peC4uOC5iOC4oQor4LiI4Lij4Liw4LmB4LiE4LiHCivguIjguKPguLDguIjguLjguYjguKEKK+C4iOC4o+C4sOC4l+C4gQor4LiI4Lij4Liw4LmA4LiX4Li04LiZCivguIjguKPguLDguJnguLMKK+C4iOC4o+C4sOC4muC4suC4mQor4LiI4Lij4Liw4Lia4Li1CivguIjguKPguLDguKXguLTguYjguIcKK+C4iOC4o+C4sOC4peC4tuC4hwor4LiI4Lij4Liw4Lil4Li44LiHCivguIjguKPguLHguKUKK+C4iOC4o+C4seC4qgor4LiI4Lij4Liy4LiBCivguIjguKPguLLguIcKK+C4iOC4o+C4suC4iOC4owor4LiI4Lij4Liy4LiNCivguIjguKPguLLguKIKK+C4iOC4o+C4suC4pwor4LiI4Lij4Liy4LiqCivguIjguKPguLTguIEKK+C4iOC4o+C4tOC4hwor4LiI4Lij4Li04LiH4LmGCivguIjguKPguLTguIfguIjguLHguIcKK+C4iOC4o+C4tOC4h+C5g+C4iAor4LiI4Lij4Li04LiH4Lit4Lii4Li54LmICivguIjguKPguLTguJUKK+C4iOC4o+C4tOC4oS0KK+C4iOC4o+C4tOC4oi0KK+C4iOC4o+C4tOC4ouC4mOC4o+C4o+C4oQor4LiI4Lij4Li04Lii4Lin4Lix4LiV4LijCivguIjguKPguLTguKLguKjguLLguKrguJXguKPguYwKK+C4iOC4o+C4tOC4ouC4qOC4tuC4geC4qeC4sgor4LiI4Lij4Li04Lii4LiyCivguIjguKPguLTguKLguLLguJvguLTguI7guIEKK+C4iOC4o+C4tOC4ouC4suC4p+C4seC4leC4owor4LiI4Lij4Li04LinCivguIjguKPguLUKK+C4iOC4o+C4tuC4hwor4LiI4Lij4Li44LiBCivguIjguKPguLjguIcKK+C4iOC4o+C4ueC4hwor4LiI4Lij4Li54LiNCivguIjguKPguLnguKoKK+C4iOC5gOC4owor4LiI4LilCivguIjguKXguJnguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4iOC4peC4meC4qOC4suC4quC4leC4o+C5jAor4LiI4Lil4LiZ4Li1CivguIjguKXguLIKK+C4iOC4peC4suC4iOC4pQor4LiI4Lin4LiBCivguIjguYrguKfguIEKK+C4iOC4p+C4hwor4LiI4LmJ4Lin4LiHCivguIjguYvguKfguIcKK+C4iOC5i+C4p+C4h+C5gOC4hOC4o+C4t+C4rQor4LiI4Lin4LiH4LiI4Lix4LiZ4LiX4LiZ4LmMCivguIjguYnguKfguIfguIjguLLguJoKK+C4iOC4p+C4h+C4q+C4reC4oQor4LiI4Lin4LiUCivguIjguKfguJTguKXguLLguIEKK+C4iOC4p+C4mQor4LiI4Lin4LiZ4LmA4LiI4Li14Lii4LiZCivguIjguKfguJnguYHguIgKK+C4iOC4p+C4meC4leC4seC4pwor4LiI4Lin4LiaCivguIjguKfguJrguIjguKfguJkKK+C4iOC4p+C4seC4gQor4LiI4LitCivguIjguYjguK0KK+C4iOC5ieC4rQor4LiI4LmL4LitCivguIjguK3guIEKK+C4iOC5ieC4reC4gQor4LiI4LmJ4Lit4LiB4LmGCivguIjguYrguK3guIEKK+C4iOC5iuC4reC4geC5hgor4LiI4LmJ4Lit4LiB4LmB4LiI4LmJ4LiBCivguIjguYnguK3guIHguKfguK3guIEKK+C4iOC4reC4geC4q+C4ueC4q+C4meC4uQor4LiI4Lit4LiHCivguIjguYjguK3guIcKK+C4iOC5ieC4reC4hwor4LiI4LmL4Lit4LiHCivguIjguK3guIfguITguIoKK+C4iOC4reC4h+C4iOC4swor4LiI4LmJ4Lit4LiH4LmA4LiVCivguIjguK3guIfguJbguJnguJkKK+C4iOC4reC4h+C5gOC4m+C4o+C4teC4ouC4hwor4LiI4Lit4LiH4LmA4Lin4Lij4LiI4Lit4LiH4LiB4Lij4Lij4LihCivguIjguK3guIfguKvguIfguYjguK3guIcKK+C4iOC5ieC4reC4h+C4q+C4meC5iOC4reC4hwor4LiI4Lit4LiH4Lir4Lit4LiHCivguIjguK3guIfguKvguK3guIfguJ7guK3guIfguILguJkKK+C4iOC4reC5geC4iAor4LiI4LmL4Lit4LmB4LiI4LmLCivguIjguK3guJQKK+C4iOC4reC4mQor4LiI4LmJ4Lit4LiZCivguIjguK3guJnguIjguYjguK0KK+C4iOC4reC4meC4q+C4uQor4LiI4Lit4LiaCivguIjguK3guKEKK+C4iOC5iOC4reC4oQor4LiI4Lit4Lih4LiC4Lin4Lix4LiNCivguIjguYjguK3guKHguIjguYjguLLguKIKK+C4iOC4reC4oeC5g+C4iAor4LiI4Lit4Lih4LmE4LiV4LijCivguIjguK3guKHguJfguK3guIcKK+C4iOC4reC4oeC4l+C4seC4ngor4LiI4Lit4Lih4Lib4Lil4Lin4LiBCivguIjguK3guKHguJvguKXguK3guKEKK+C4iOC5ieC4reC4oeC4m+C5ieC4reC4oQor4LiI4Lit4Lih4LmA4Lib4Liy4LiwCivguIjguK3guKHguJ7guKUKK+C4iOC4reC4oeC4oeC4suC4o+C4lOC4sgor4LiI4Lit4Lih4Liq4Li44Lij4Liy4LiH4LiE4LmMCivguIjguYjguK3guKIKK+C4iOC5ieC4reC4ogor4LiI4LmL4Lit4LiiCivguIjguYvguK3guKLguYYKK+C4iOC4reC5geC4qgor4LiI4LiwCivguIjguYnguLAKK+C4iOC5iuC4sAor4LiI4LmL4LiwCivguIjguLDguIHguKPguLHguIjguIjguLDguIHguKPguLLguIgKK+C4iOC4sOC4geC4o+C4uOC4mQor4LiI4Liw4LiB4Lij4Li44Lih4LiI4Liw4LiB4Lij4Liy4LihCivguIjguLDguIHguKPguLnguJkKK+C4iOC4sOC4geC4peC4sAor4LiI4Liw4LiB4Lil4Liy4LihCivguIjguLDguIHguKfguJQKK+C4iOC4sOC4geC4ueC4lAor4LiI4Liw4LmA4LiB4Lij4LmH4LiHCivguIjguLDguILguLLguJoKK+C4iOC4sOC5gOC4guC5iQor4LiI4Liw4LmA4LiC4LmH4LiaCivguIjguLDguIfguK3guKIKK+C4iOC4sOC4iOC4sAor4LiI4Liw4LiI4LmJ4LiyCivguIjguLDguYHguIjguYnguIcKK+C4iOC4sOC5geC4iOC5iOC4oQor4LiI4Liw4LmE4LiI4LmJCivguIjguLDguJrguLHguJkKK+C4iOC4sOC4m+C4tOC5ieC4hwor4LiI4Liw4Lib4Li04LmJ4LiH4LmA4Lij4Li34LitCivguIjguLDguYDguJ7guKXguLTguIcKK+C4iOC4sOC4peC4sOC5gOC4oeC5h+C4lAor4LiI4Liw4Lil4Liw4Lir4Lin4Lix4LmI4LiZCivguIjguLDguKXguLjguIcKK+C4iOC5iuC4sOC5gOC4reC5iwor4LiI4Lix4LiBCivguIjguLHguYnguIHguYYKK+C4iOC4seC4geC4geC4suC4ogor4LiI4Lix4LmK4LiB4LiB4Li04LmJ4LihCivguIjguLHguIHguILguLgKK+C4iOC4seC4geC4guC4uOC4l+C4p+C4suC4owor4LiI4Lix4LiB4LiC4Li44Lib4Lij4Liw4Liq4Liy4LiXCivguIjguLHguIHguILguLjguKfguLTguI3guI3guLLguJMKK+C4iOC4seC4geC4guC4uOC4quC4seC4oeC4nOC4seC4qgor4LiI4Lix4LiB4LiI4Lix4LmI4LiZCivguIjguLHguIHguIjguLXguYkKK+C4iOC4seC5iuC4geC4iOC4teC5iQor4LiI4Lix4LmK4LiB4LmA4LiU4Li14Lii4LihCivguIjguLHguIHguKMKK+C4iOC4seC4geC4oy0KK+C4iOC4seC4geC4o+C4m+C4suC4k+C4tAor4LiI4Lix4LiB4Lij4Lib4Liy4LiT4Li1CivguIjguLHguIHguKPguJ7guKPguKPguJTguLQKK+C4iOC4seC4geC4o+C4nuC4suC4gQor4LiI4Lix4LiB4Lij4Lie4Liy4LilCivguIjguLHguIHguKPguKDguJ4KK+C4iOC4seC4geC4o+C4ouC4suC4mQor4LiI4Lix4LiB4Lij4Lii4Liy4LiZ4Lii4LiZ4LiV4LmMCivguIjguLHguIHguKPguKPguLLguKjguLUKK+C4iOC4seC4geC4o+C4p+C4o+C4o+C4lOC4tAor4LiI4Lix4LiB4Lij4Lin4Lij4Lij4LiU4Li04LiZ4Li04Lii4LihCivguIjguLHguIHguKPguKfguLLguIEKK+C4iOC4seC4geC4o+C4p+C4suC4lQor4LiI4Lix4LiB4Lij4Lin4Liy4LilCivguIjguLHguIHguKPguLTguJkKK+C4iOC4seC4geC4o+C4tQor4LiI4Lix4LmK4LiB4LmA4Lil4LmJ4LitCivguIjguLHguIHguKnguLgKK+C4iOC4seC4geC4quC4suC4mQor4LiI4Lix4LiB4LmB4Lir4Lil4LmI4LiZCivguIjguLHguIcKK+C4iOC4seC5ieC4hwor4LiI4Lix4LmL4LiH4LmRCivguIjguLHguIfguIHguKfguJQKK+C4iOC4seC4h+C4geC4reC4mgor4LiI4Lix4LiH4LiB4LiyCivguIjguLHguIfguIHguYnguLIKK+C4iOC4seC4h+C4geC4ueC4lAor4LiI4Lix4LiH4LmA4LiBCivguIjguLHguIfguYLguIHguI/guIHguYwKK+C4iOC4seC4h+C4h+C4seC4hwor4LiI4Lix4LiH4Lih4Lix4LiHCivguIjguLHguYnguIfguKHguLHguYjguIcKK+C4iOC4seC4h+C5hOC4owor4LiI4Lix4LiH4Lil4Lit4LiZCivguIjguLHguIfguYDguKfguYfguIgKK+C4iOC4seC4h+C4q+C4meC4seC4mgor4LiI4Lix4LiH4Lir4LiZ4LmJ4LiyCivguIjguLHguIfguKvguKPguLXguJQKK+C4iOC4seC4h+C4q+C4peC5iOC4rQor4LiI4Lix4LiH4Lir4Lin4LiwCivguIjguLHguIfguKvguKfguLHguJQKK+C4iOC4seC4h+C4q+C4seC4mQor4LiI4Lix4LiH4Lit4Lit4LiZCivguIjguLHguI3guYTguKMKK+C4iOC4seC4k+C4kS0KK+C4iOC4seC4k+C4keC5jAor4LiI4Lix4LiT4LiR4Lin4Liy4LiV4LiyCivguIjguLHguJPguJHguLLguKUKK+C4iOC4seC4lAor4LiI4Lix4LiU4LiB4Liy4LijCivguIjguLHguJTguIjguK3guIcKK+C4iOC4seC4lOC4iOC5ieC4sgor4LiI4Lix4LiU4LiI4LmJ4Liy4LiZCivguIjguLHguJTguYDguIjguJkKK+C4iOC4seC4lOC5geC4iOC4hwor4LiI4Lix4LiU4LiV4Lix4LmJ4LiHCivguIjguLHguJTguJvguKPguLDguIHguLHguJkKK+C4iOC4seC4lOC4oeC4seC5iOC4mQor4LiI4Lix4LiU4Liq4Lij4LijCivguIjguLHguJTguKvguLIKK+C4iOC4seC4leC4leC4suC4rOC4teC4qgor4LiI4Lix4LiV4Lin4LiyCivguIjguLHguJXguKfguLLguJfguLHguJPguJHguLUKK+C4iOC4seC4leC4p+C4suC4qOC4gQor4LiI4Lix4LiV4Li4CivguIjguLHguJXguLjguKMtCivguIjguLHguJXguLjguKPguIfguITguYwKK+C4iOC4seC4leC4uOC4o+C4nuC4seC4geC4leC4o+C5jAor4LiI4Lix4LiV4Li44Lij4Lig4Li44LiKCivguIjguLHguJXguLjguKPguKHguLjguIIKK+C4iOC4seC4leC4uOC4o+C4seC4qgor4LiI4Lix4LiV4Li44LmC4Lil4LiB4Lia4Liy4LilCivguIjguLHguJXguLjguKrguJTguKHguKDguYwKK+C4iOC4seC4mQor4LiI4Lix4LmI4LiZCivguIjguLHguJnguYLguIjguKkKK+C4iOC4seC5iOC4meC4lOC4tOC4mQor4LiI4Lix4LiZ4LiX4LmMCivguIjguLHguJnguJfguJnguYwKK+C4iOC4seC4meC4l+C4meC5jOC4geC4sOC4nuC5ieC4rQor4LiI4Lix4LiZ4LiX4LiZ4LmM4LiC4Liy4LinCivguIjguLHguJnguJfguJnguYzguIrguLDguKHguJQKK+C4iOC4seC4meC4l+C4meC5jOC5geC4lOC4hwor4LiI4Lix4LiZ4LiX4LiZ4LmM4LmA4LiX4LioCivguIjguLHguJnguJfguJnguYzguJzguLIKK+C4iOC4seC4meC4l+C4meC5jOC4q+C4reC4oQor4LiI4Lix4LiZ4LiX4LiZ4LiyCivguIjguLHguJnguJfguKMtCivguIjguLHguJnguJfguKPguYwKK+C4iOC4seC4meC4l+C4o+C4geC4peC4sgor4LiI4Lix4LiZ4LiX4Lij4LiB4Liy4LiZ4LiV4LmMCivguIjguLHguJnguJfguKPguITguJXguLQKK+C4iOC4seC4meC4l+C4o+C4hOC4o+C4suC4qgor4LiI4Lix4LiZ4LiX4Lij4Lie4Li04Lih4Lie4LmMCivguIjguLHguJnguJfguKPguKHguJPguJHguKUKK+C4iOC4seC4meC4l+C4o+C5gOC4oeC5h+C4lAor4LiI4Lix4LiZ4LiX4Lij4Lin4LiH4Lio4LmMCivguIjguLHguJnguJfguKPguYDguKjguILguKMKK+C4iOC4seC4meC4l+C4o+C4uOC4m+C4o+C4suC4hOC4sgor4LiI4Lix4LiZ4LiX4Lix4LiZCivguIjguLHguJnguJfguLHguJnguJ7guKPguLLguIcKK+C4iOC4seC4meC4peC4reC4hwor4LiI4Lix4LiZ4LmA4Lil4LiyCivguIjguLHguJnguYDguKXguLLguLAKK+C4iOC4seC5ieC4meC4q+C4peC5iOC4rQor4LiI4Lix4LmI4LiZ4Lir4Lix4LiaCivguIjguLHguYjguJnguKvguYnguLLguKcKK+C4iOC4seC4meC4reC4seC4mgor4LiI4Lix4LiaCivguIjguLHguJrguIHguKXguLjguYjguKEKK+C4iOC4seC4muC4geC4seC4hwor4LiI4Lix4Lia4LiB4Li44LihCivguIjguLHguJrguYDguILguKHguYjguLIKK+C4iOC4seC4muC5hOC4guC5iQor4LiI4Lix4Lia4LiE4Lin4Liy4LihCivguIjguLHguJrguIfguLnguILguYnguLLguIfguKvguLLguIcKK+C4iOC4seC4muC4iOC4lAor4LiI4Lix4Lia4LiI4Lit4LiHCivguIjguLHguJrguIjguYjguLLguKIKK+C4iOC4seC4muC4iOC4tOC4lQor4LiI4Lix4Lia4LmA4LiI4LmI4LiyCivguIjguLHguJrguYDguIjguLXguYvguKLguKcKK+C4iOC4seC4muC5g+C4iAor4LiI4Lix4Lia4LiJ4LmI4Liy4LiiCivguIjguLHguJrguYDguIrguLTguIcKK+C4iOC4seC4muC4lOC4s+C4luC4peC4s+C5geC4lOC4hwor4LiI4Lix4Lia4LmA4LiU4Li04LihCivguIjguLHguJrguJXguLHguKfguKfguLLguIfguJXguLLguKIKK+C4iOC4seC4muC4leC4sgor4LiI4Lix4Lia4LiV4Liy4LiU4Li5CivguIjguLHguJrguJXguLLguKIKK+C4iOC4seC4muC4m+C4tOC5ieC4hwor4LiI4Lix4Lia4LmA4Lib4LmH4LiZCivguIjguLHguJrguYLguJvguIcKK+C4iOC4seC4muC4nOC4tOC4lAor4LiI4Lix4Lia4Lie4Lil4Lix4LiU4LiI4Lix4Lia4Lic4Lil4Li5CivguIjguLHguJrguYHguJ7guLDguIrguJnguYHguIHguLAKK+C4iOC4seC4muC4ouC4suC4oQor4LiI4Lix4Lia4Lii4Li14LmI4LiB4Li1CivguIjguLHguJrguKPguLDguJrguLMKK+C4iOC4seC4muC5gOC4p+C4peC4sgor4LiI4Lix4Lia4Liq4Lix4LmI4LiZCivguIjguLHguJrguKrguLLguKLguKrguLTguI3guIjguJnguYwKK+C4iOC4seC4muC5gOC4quC4t+C4reC4oeC4t+C4reC5gOC4m+C4peC5iOC4sgor4LiI4Lix4Lia4Lir4Lil4Lix4LiBCivguIjguLHguJrguKvguKfguLHguJQKK+C4iOC4seC4muC4q+C4seC4p+C5gOC4guC5iOC4suC4nuC4ueC4lAor4LiI4Lix4Lih4Lia4LiBCivguIjguLHguKHguJvguIEKK+C4iOC4seC4oeC4oeC4sAor4LiI4Lix4LinCivguIjguLHguYjguKcKK+C4iOC4seC5iuC4p+C4sAor4LiI4LiyCivguIjguYjguLIKK+C4iOC5ieC4sgor4LiI4LmL4LiyCivguIjguLLguIEKK+C4iOC4suC4geC4nuC4o+C4suC4gQor4LiI4Liy4LiB4Lie4Liy4LiBCivguIjguYjguLLguIHguKXguK3guIcKK+C4iOC4suC4hC0KK+C4iOC4suC4hOC4tQor4LiI4Liy4LiHCivguIjguYjguLLguIcKK+C4iOC5ieC4suC4hwor4LiI4Liy4LiH4Lin4Liy4LiHCivguIjguLLguJQKK+C4iOC4suC4lOC4leC4sOC4geC4seC5iOC4pwor4LiI4Liy4LiV4Li4LQor4LiI4Liy4LiV4Li44LiB4Lij4LiT4Li14Lii4LmMCivguIjguLLguJXguLjguJfguKrguLUKK+C4iOC4suC4leC4uOC4oeC4q+C4suC4o+C4suC4igor4LiI4Liy4LiV4Li44LijLQor4LiI4Liy4LiV4Li44Lij4LiH4LiELQor4LiI4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguIjguLLguJXguLjguKPguIfguITguKrguLHguJnguJnguLTguJrguLLguJUKK+C4iOC4suC4leC4uOC4o+C4meC4leC5jAor4LiI4Liy4LiV4Li44Lij4LiZ4LiV4LmM4Lij4Lix4Lio4Lih4Li1CivguIjguLLguJXguLjguKPguKPguLLguIrguIHguLLguKMKK+C4iOC4suC4leC4uOC4o+C4seC4meC4leC5jAor4LiI4Liy4LiZCivguIjguYnguLLguJkKK+C4iOC4suC4meC4iOC5iOC4suC4ogor4LiI4Liy4LiZ4LmA4LiI4Li34LitCivguIjguLLguJnguYDguIrguLTguIcKK+C4iOC4suC4meC4muC4tOC4mQor4LiI4Liy4LiZ4Lic4Li1CivguIjguLLguJnguYDguKrguLXguKLguIcKK+C4iOC4suC4mgor4LiI4Liy4Lia4LiI4LmJ4Lin4LiHCivguIjguLLguJrguLHguKUKK+C4iOC4suC4muC4seC4peC4ouC5jAor4LiI4Liy4LibCivguIjguYjguLLguJvguLXguYgKK+C4iOC4suC4oQor4LiI4LmI4Liy4Lih4LiH4LiB4Li44LiOCivguIjguLLguKHguIjguLjguKPguLUKK+C4iOC4suC4oeC4owor4LiI4Liy4Lih4Lij4Li1CivguIjguLLguKHguLXguIHguKMKK+C4iOC5iOC4suC4ogor4LiI4LmI4Liy4Lii4LiV4Lil4Liy4LiUCivguIjguLLguKMKK+C4iOC5iOC4suC4o+C4hwor4LiI4Liy4Lij4Lin4Liy4LiBCivguIjguLLguKPguLDguYTguJkKK+C4iOC4suC4o+C4sOC4muC4tQor4LiI4Liy4Lij4Li04LiBCivguIjguLLguKPguLUKK+C4iOC4suC4o+C4teC4lQor4LiI4Liy4Lij4Li14LiV4LiZ4LiE4Lij4Lia4Liy4LilCivguIjguLLguKPguLXguJXguJvguKPguLDguYDguJ7guJPguLUKK+C4iOC4suC4o+C4tuC4gQor4LiI4Liy4Lij4Li4CivguIjguYnguLLguKXguLDguKvguKfguLHguYjguJkKK+C4iOC4suC4pwor4LiI4Liy4Lin4LmGCivguIjguYjguLLguKcKK+C4iOC5ieC4suC4pwor4LiI4Liy4Lin4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguIjguYjguLLguKvguJnguYnguLIKK+C4iOC5iOC4suC4q+C4p+C4seC4gQor4LiI4LizCivguIjguYnguLMKK+C4iOC4s+C4geC4p+C5iOC4sgor4LiI4Liz4LiB4Lix4LiUCivguIjguLPguIHguLHguJTguITguKfguLLguKEKK+C4iOC4s+C4geC4seC4lOC4iOC4s+C5gOC4guC4teC5iOC4ogor4LiI4Liz4LiB4Lix4LiU4Liq4Li04LiZ4LmD4LiK4LmJCivguIjguLPguITguKPguJoKK+C4iOC4s+C4h+C4suC4ogor4LiI4Liz4LiI4Lit4LiHCivguIjguYnguLPguIjguLXguYkKK+C4iOC5ieC4s+C4iOC4teC5ieC4iOC5ieC4s+C5hOC4igor4LiI4Liz4LmA4LiICivguIjguLPguYDguJTguLTguKEKK+C4iOC4s+C4l+C4p+C4ogor4LiI4Liz4LiX4Lix4LiaCivguIjguLPguJfguLLguJoKK+C4iOC4s+C5gOC4l+C4tOC4lAor4LiI4Liz4LmB4LiX4LiHCivguIjguLPguJnguIcKK+C4iOC4s+C4meC4mQor4LiI4Liz4LiZ4Lij4Lij4LiI4LmMCivguIjguLPguJnguKPguKPguIjguLIKK+C4iOC4s+C4meC4p+C4mQor4LiI4Liz4LiZ4Lin4LiZ4LiI4Lij4Li04LiHCivguIjguLPguJnguKfguJnguIjguLTguJnguJXguKDguLLguJ4KK+C4iOC4s+C4meC4p+C4meC5gOC4iuC4tOC4h+C4i+C5ieC4reC4mQor4LiI4Liz4LiZ4Lin4LiZ4LiV4Lij4Lij4LiB4Lii4LiwCivguIjguLPguJnguKfguJnguYDguJXguYfguKEKK+C4iOC4s+C4meC4p+C4meC4meC4seC4mgor4LiI4Liz4LiZ4Lin4LiZ4Lit4LiV4Lij4Lij4LiB4Lii4LiwCivguIjguLPguJnguK3guIcKK+C4iOC4s+C4meC4seC4mgor4LiI4Liz4LiZ4Lix4LilCivguIjguLPguJnguLMKK+C4iOC4s+C4meC4s+C4nuC4o+C4o+C4qeC4sgor4LiI4Liz4LmA4LiZ4Li14Lii4LiZCivguIjguLPguYDguJnguLXguKLguKEKK+C4iOC4s+C5gOC4meC4teC4ouC4owor4LiI4Liz4LmB4LiZ4LiBCivguIjguLPguYLguJnguJfguKLguYwKK+C4iOC4s+C4muC5iOC4oQor4LiI4Liz4Lia4Lix4LiHCivguIjguLPguJrguLHguJoKK+C4iOC4s+C5gOC4muC4qAor4LiI4LmJ4Liz4LmA4Lia4LmJ4LiyCivguIjguLPguYHguJoKK+C4iOC4s+C4m+C4sgor4LiI4Liz4Lib4Liy4LiC4Lit4LihCivguIjguLPguJvguLLguYHguILguIEKK+C4iOC4s+C4m+C4suC4lOC4sAor4LiI4Liz4Lib4Liy4LiX4Lit4LiH4LmA4LiX4LioCivguIjguLPguJvguLLguKXguLLguKcKK+C4iOC4s+C4m+C4suC4q+C4reC4oQor4LiI4Liz4Lib4Li1CivguIjguLPguJvguLXguYHguILguIEKK+C4iOC4s+C4m+C4ueC4mQor4LiI4Liz4LmA4Lib4LmH4LiZCivguIjguLPguJ7guKPguKPguKnguLIKK+C4iOC4s+C4nuC4p+C4gQor4LiI4Liz4LmA4Lie4Liy4LiwCivguIjguLPguYHguJ7guKPguIEKK+C4iOC5ieC4s+C4oeC5iOC4swor4LiI4Liz4Lij4LiUCivguIjguLPguKPguLHguKoKK+C4iOC4s+C4o+C4suC4jQor4LiI4Liz4Lij4Liy4LiiCivguIjguLPguKPguLnguI0KK+C4iOC4s+C5gOC4o+C4tOC4jQor4LiI4Liz4LmA4Lij4Li14Lii4LiHCivguIjguLPguKXguK3guIcKK+C4iOC4s+C4peC4reC4h+C4l+C4reC4hwor4LiI4Liz4Lil4Liy4LiiCivguIjguLPguYDguKXguKIKK+C4iOC4s+C5gOC4peC4suC4sAor4LiI4Liz4LmA4Lil4Liy4Liw4LiV4LiyCivguIjguLPguYHguKXguIcKK+C4iOC4s+C5geC4peC5iOC4mQor4LiI4Liz4Lin4Lix4LiUCivguIjguLPguKjguLXguKUKK+C4iOC4s+C4q+C4meC4seC4mgor4LiI4LmL4Liz4Lir4LiZ4Lix4LiaCivguIjguLPguKvguJnguYjguLLguKIKK+C4iOC4s+C4q+C4o+C4sAor4LiI4Liz4Lir4Lil4LmI4LitCivguIjguLPguKvguKXguK3guIEKK+C4iOC4s+C4q+C4peC4seC4gQor4LiI4Liz4Lir4Lix4LiZCivguIjguLPguKvguYnguLLguJvguKPguLDguIHguLLguKMKK+C4iOC4s+C4q+C4suC4ogor4LiI4Liz4Lir4Li44LiUCivguIjguLPguYDguKvguLXguKLguIcKK+C4iOC4s+C4reC4p+C4lAor4LiI4Liz4Lit4Li34LmI4LiZCivguIjguLQKK+C4iOC4tOC4gQor4LiI4Li04LiB4Lib4Li14LiBCivguIjguLTguIHguKvguLHguKcKK+C4iOC4tOC5iOC4hwor4LiI4Li04LmJ4LiH4LiI4LiBCivguIjguLTguIfguIjguYnguK0KK+C4iOC4tOC5ieC4h+C4iOC4reC4gQor4LiI4Li04LiH4LiI4Lix4LiHCivguIjguLTguYnguIfguIjguLHguIcKK+C4iOC4tOC4h+C5guC4iOC5iQor4LiI4Li04LiH4LmC4LiI4LmJ4LiZ4LmJ4LizCivguIjguLTguYnguIfguKvguKPguLXguJQKK+C4iOC4tOC5ieC4h+C4q+C4o+C4teC4lOC4nOC4tQor4LiI4Li04LmJ4LiH4LmA4Lir4Lil4LiZCivguIjguLTguYnguIfguYDguKvguKXguJnguJTguYnguKfguIcKK+C4iOC4tOC4lQor4LiI4Li04LiVLQor4LiI4Li04LiV4LiB4Liy4LiY4Liy4LiZCivguIjguLTguJXguIHguLbguYjguIfguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC5g+C4iAor4LiI4Li04LiV4LiVLQor4LiI4Li04LiV4LiV4LmMCivguIjguLTguJXguJXguKDguLLguKfguJnguLIKK+C4iOC4tOC4leC4leC4p+C4tOC4quC4uOC4l+C4mOC4tAor4LiI4Li04LiV4LiV4Liy4LiZ4Li44Lib4Lix4Liq4Liq4LiZ4LiyCivguIjguLTguJXguYPguJXguYnguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC4meC4tOC4ouC4oQor4LiI4Li04LiV4Lia4Liz4Lia4Lix4LiUCivguIjguLTguJXguYHguJ7guJfguKLguYwKK+C4iOC4tOC4leC4oOC4suC4ngor4LiI4Li04LiV4LijCivguIjguLTguJXguKMtCivguIjguLTguJXguKPguIHguKMKK+C4iOC4tOC4leC4o+C4geC4o+C4o+C4oQor4LiI4Li04LiV4Lij4LiI4Li44LilCivguIjguLTguJXguKPguJvguJfguLIKK+C4iOC4tOC4leC4o+C4peC4lOC4sgor4LiI4Li04LiV4Lij4LmA4Lil4LiC4LiyCivguIjguLTguJXguKPguLAKK+C4iOC4tOC4leC4o+C4sgor4LiI4Li04LiV4LmE4Lij4LmJ4Liq4Liz4LiZ4Li24LiBCivguIjguLTguJXguKfguLTguJfguKLguLIKK+C4iOC4tOC4leC4p+C4tOC4quC4seC4ogor4LiI4Li04LiV4LmA4Lin4LiK4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguLTguJXguKrguLPguJnguLbguIEKK+C4iOC4tOC4meC5gOC4iOC4sgor4LiI4Li04LiZ4LiU4LiyCivguIjguLTguJnguJTguLLguKHguJPguLUKK+C4iOC4tOC4meC4lOC4suC4oeC4seC4ogor4LiI4Li04LiZ4LiU4Liy4Lir4LiZ4LiyCivguIjguLTguJnguJTguLLguKvguKPguLIKK+C4iOC4tOC4meC4lS0KK+C4iOC4tOC4meC4leC5jAor4LiI4Li04LiZ4LiV4LiB4Lin4Li1CivguIjguLTguJnguJXguYzguIjguKUKK+C4iOC4tOC4meC4leC4meC4suC4geC4suC4owor4LiI4Li04LiZ4LiV4Lig4Liy4LieCivguIjguLTguJoKK+C4iOC4tOC4m+C4suC4luC4sAor4LiI4Li04LmI4LihCivguIjguLTguYnguKEKK+C4iOC4tOC5ieC4oeC4geC5ieC4reC4hwor4LiI4Li04LmJ4Lih4Lif4Lix4LiZ4LiI4Lij4Liw4LmA4LiC4LmJCivguIjguLTguYnguKHguKXguLTguYnguKEKK+C4iOC4tOC4oy0KK+C4iOC4tOC4o+C4geC4suC4pQor4LiI4Li04Lij4Lix4LiQ4Li04LiV4Li04LiB4Liy4LilCivguIjguLTguYvguKcKK+C4iOC4tQor4LiI4Li14LmICivguIjguLXguYkKK+C4iOC4teC5iwor4LiI4Li14LmL4LiI4LmJ4LitCivguIjguLXguYjguIjguLnguYkKK+C4iOC4teC5geC4iOC5iuC4mgor4LiI4Li14LmK4LiUCivguIjguLXguJkKK+C4iOC4teC4meC5gOC4leC5h+C4hwor4LiI4Li14LiZ4LmB4LiqCivguIjguLXguJnguYHguKrguYLguKrguIHguLIKK+C4iOC4teC4mgor4LiI4Li14Lia4Lib4Liy4LiB4LiI4Li14Lia4LiE4LitCivguIjguLXguJrguJ7guKXguLkKK+C4iOC4teC5guC4mgor4LiI4Li14Lie4LijCivguIjguLXguKEKK+C4iOC4teC4p+C4owor4LiI4Li14Lin4LijLQor4LiI4Li14Lin4Lij4LiB4Lij4Lij4LihCivguIjguLXguKfguKPguIHguLLguKPguKrguKHguLHguKIKK+C4iOC4teC4p+C4o+C4geC4suC4peC4quC4oeC4seC4ogor4LiI4Li14Lin4Lij4LiX4Liy4LiZ4Liq4Lih4Lix4LiiCivguIjguLXguKfguKPguKDguLLguIrguIEKK+C4iOC4teC5ieC5gOC4quC5ieC4mQor4LiI4Li24LiHCivguIjguLbguYjguIcKK+C4iOC4tuC5ieC4hwor4LiI4Li34LiUCivguIjguLfguJTguIjguLLguIcKK+C4iOC4t+C4lOC4iuC4t+C4lAor4LiI4Li34LiU4LiV4LiyCivguIjguLfguYnguJnguYDguIjguLfguK3guIEKK+C4iOC4uAor4LiI4Li44LmGCivguIjguLjguIEKK+C4iOC4uOC5iuC4geC4geC4o+C4ueC5igor4LiI4Li44LiB4LiI4Li04LiBCivguIjguLjguIHguYDguIjguYjguLIKK+C4iOC4uOC4geC4iuC5iOC4reC4h+C4peC5ieC4reC4oeC4p+C4hwor4LiI4Li44LiB4LiK4Li1CivguIjguLjguIHguJzguLLguKEKK+C4iOC4uOC4geC4nOC4suC4oeC4oeC5ieC4suC4oeC4ouC5ieC4reC4ogor4LiI4Li44LiB4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguIjguLjguIHguKLguLIKK+C4iOC4uOC4geC5guC4o+C4q+C4tOC4meC4tQor4LiI4Li44LmI4LiHCivguIjguLjguYnguIfguIjguLHguIcKK+C4iOC4uOC5i+C4h+C4iOC4tOC5i+C4hwor4LiI4Li44LmD4LiICivguIjguLjguJHguLIKK+C4iOC4uOC4keC4suC4mOC4tOC4m+C5hOC4leC4ogor4LiI4Li44LiR4Liy4Lih4LiT4Li1CivguIjguLjguJHguLLguKHguLLguKgKK+C4iOC4uOC4keC4suC4o+C4seC4leC4meC5jAor4LiI4Li44LiTCivguIjguLjguJPguJPguLXguKLguJrguJcKK+C4iOC4uOC4lAor4LiI4Li44LiU4LiI4LiaCivguIjguLjguJTguYDguJTguYjguJkKK+C4iOC4uOC4lOC5gOC4lOC4t+C4reC4lAor4LiI4Li44LiU4LmE4LiV4LmJ4LiV4Liz4LiV4LitCivguIjguLjguJTguJfguKjguJnguLTguKLguKEKK+C4iOC4uOC4lOC4meC5ieC4s+C4hOC5ieC4suC4hwor4LiI4Li44LiU4Lia4Lit4LiUCivguIjguLjguJTguKLguLfguJkKK+C4iOC4uOC4lOC4ouC4uOC4l+C4mOC4qOC4suC4quC4leC4o+C5jAor4LiI4Li44LiU4LmA4Lii4Li34Lit4LiB4LmB4LiC4LmH4LiHCivguIjguLjguJTguKPguKfguKEKK+C4iOC4uOC4lOC4peC4ueC4geC4meC5ieC4swor4LiI4Li44LiU4Lio4Li54LiZ4Lii4LmM4LiB4Lil4Liy4LiHCivguIjguLjguJTguKjguLnguJnguKLguYzguJbguYjguKfguIcKK+C4iOC4uOC4lOC4quC4seC4oeC4nOC4seC4qgor4LiI4Li44LiU4Lir4Lih4Liy4LiiCivguIjguLjguJTguKvguKHguLLguKLguJvguKXguLLguKLguJfguLLguIcKK+C4iOC4uOC4lOC4q+C4peC4reC4oeC5gOC4q+C4peC4pwor4LiI4Li44LiU4Lir4Lil4Lix4LiHCivguIjguLjguJTguYDguKvguLXguYjguKLguKfguYDguInguLIKK+C4iOC4uOC4lOC4reC5iOC4reC4mQor4LiI4Li44LiU4Lit4Li04LmI4Lih4LiV4Lix4LinCivguIjguLjguJXguLQKK+C4iOC4uOC4leC4ueC4m+C4m+C4suC4leC4jeC4suC4kwor4LiI4Li44LiX4LiqCivguIjguLjguJfguKrguKHguKrguLjguKPguJfguLTguJkKK+C4iOC4uOC4mQor4LiI4Li44LmI4LiZCivguIjguLjguYnguJkKK+C4iOC4uOC5ieC4meC4iOC5ieC4suC4mQor4LiI4Li44LiZ4LiI4Li54LmLCivguIjguLjguYnguJnguIjguLnguYoKK+C4iOC4uOC4meC5gOC4iOC4t+C4rQor4LiI4Li44LiZ4LiX4LiB4Liy4LijCivguIjguLjguJnguKrguLUKK+C4iOC4uOC4mgor4LiI4Li44LmK4LiaCivguIjguLjguJrguIjguLTguJoKK+C4iOC4uOC5iuC4muC5geC4iOC4hwor4LiI4Li44Lib4Liy4LiBCivguIjguLjguYjguKEKK+C4iOC4uOC5ieC4oQor4LiI4Li44LmL4Lih4LiI4Li04LmL4LihCivguIjguLjguKHguJ7guI8KK+C4iOC4uOC4oeC4nuC4o+C4p+C4lAor4LiI4Li44Lih4Lie4LilCivguIjguLjguKHguJ7guLTguJUKK+C4iOC4uOC4oeC5guC4nuC4peC5iAor4LiI4Li44LmJ4LiiCivguIjguLjguKPguJMKK+C4iOC4uOC4o+C4tQor4LiI4Li44LmE4LijCivguIjguLjguKUtCivguIjguLjguKXguIHguJDguLTguJkKK+C4iOC4uOC4peC4iOC4reC4oeC5gOC4geC4peC5ieC4sgor4LiI4Li44Lil4LiK4Li14LieCivguIjguLjguKXguIrguLXguKfguLHguJkKK+C4iOC4uOC4peC4iuC4teC4p+C4tOC4mQor4LiI4Li44Lil4LiX4Lij4Lij4Lio4LiZ4LmMCivguIjguLjguKXguKDguLLguIQKK+C4iOC4uOC4peC4p+C4h+C4qOC5jAor4LiI4Li44Lil4Lin4Lij4Lij4LiECivguIjguLjguKXguKjguLHguIHguKPguLLguIoKK+C4iOC4uOC4peC4quC4suC4owor4LiI4Li44Lil4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguIjguLjguKzguLIKK+C4iOC4uOC4rOC4suC4oeC4k+C4tQor4LiI4Li44Lis4Liy4Lij4Liy4LiK4Lih4LiZ4LiV4Lij4Li1CivguIjguLjguKzguLLguKXguLHguIHguKnguJPguYwKK+C4iOC4uOC4rOC4suC4peC4seC4oeC4nuC4sgor4LiI4Li5CivguIjguLnguYgKK+C4iOC4ueC5iOC5hgor4LiI4Li54LmJCivguIjguLnguYsKK+C4iOC4ueC4hwor4LiI4Li54LiH4LiI4Lih4Li54LiBCivguIjguLnguIfguYPguIgKK+C4iOC4ueC4h+C4meC4suC4h+C5gOC4guC5ieC4suC4q+C5ieC4reC4hwor4LiI4Li54LiH4LiZ4Liy4LiH4Lil4Li14Lil4LiyCivguIjguLnguIfguKHguLfguK0KK+C4iOC4ueC5ieC4iOC4teC5iQor4LiI4Li54LmL4LiI4Li14LmLCivguIjguLnguYjguYLguIjguKEKK+C4iOC4ueC5iuC4lAor4LiI4Li54LiaCivguIjguLnguJrguJ3guLjguYjguJkKK+C4iOC4ueC4o+C4kwor4LiI4Li54LmI4Lil4Li54LmICivguYDguIgKK+C5gOC4iOC5iuC4gQor4LmA4LiI4LmK4LiB4LiV4Li34LmI4LiZ4LmE4LifCivguYDguIjguYjguIcKK+C5gOC4iOC5ieC4hwor4LmA4LiI4LmK4LiHCivguYDguIjguYfguJQKK+C5gOC4iOC5h+C4lOC4iuC4seC5iOC4p+C5guC4hOC4leC4owor4LmA4LiI4LmH4LiU4LiV4Liw4LiE4Lil4Li1CivguYDguIjguJTguLXguKItCivguYDguIjguJTguLXguKLguYwKK+C5gOC4iOC4lOC4teC4ouC4luC4suC4mQor4LmA4LiI4LiU4Li14Lii4LmM4LiX4Li04LioCivguYDguIjguJTguLXguKLguKrguJbguLLguJkKK+C5gOC4iOC4lQor4LmA4LiI4LiVLQor4LmA4LiI4LiV4LiE4LiV4Li0CivguYDguIjguJXguIjguLPguJnguIcKK+C5gOC4iOC4leC4meC4sgor4LmA4LiI4LiV4LiZ4Liy4Lij4Lih4LiT4LmMCivguYDguIjguJXguJ7guLHguIfguITguLUKK+C5gOC4iOC4leC4oOC4ueC4lQor4LmA4LiI4LiV4Lih4Li54Lil4LmA4Lie4Lil4Li04LiHCivguYDguIjguJXguKHguLnguKXguYDguJ7guKXguLTguIfguJ3guKPguLHguYjguIcKK+C5gOC4iOC4leC4quC4tOC4gQor4LmA4LiI4LiV4Li04LiiLQor4LmA4LiI4LmC4LiV4Lin4Li04Lih4Li44LiV4Li0CivguYDguIjguJkKK+C5gOC4iOC4meC4iOC4mgor4LmA4LiI4LiZ4LiI4Lix4LiUCivguYDguIjguJnguYPguIgKK+C5gOC4iOC5h+C4mgor4LmA4LiI4LmH4Lia4LmE4LiC4LmJCivguYDguIjguYfguJrguYHguITguYnguJkKK+C5gOC4iOC5h+C4muC5g+C4iAor4LmA4LiI4LmH4Lia4LiK4LmJ4Liz4LiZ4LmJ4Liz4LmD4LiICivguYDguIjguYfguJrguJfguYnguK3guIcKK+C5gOC4iOC5h+C4muC4m+C4p+C4lAor4LmA4LiI4LmH4Lia4Lib4LmI4Lin4LiiCivguYDguIjguYfguJrguKPguYnguK3guJkKK+C5gOC4iOC5h+C4muC5geC4quC4mgor4LmA4LiI4Lij4LiI4LiyCivguYDguIjguKPguLTguI0KK+C5gOC4iOC4o+C4tOC4jeC4leC4suC5gOC4iOC4o+C4tOC4jeC5g+C4iAor4LmA4LiI4Lij4Li04LiN4Lie4LijCivguYDguIjguKPguLTguI3guJ7guLHguJnguJjguLjguYwKK+C5gOC4iOC4o+C4tOC4jeC4o+C4reC4ogor4LmA4LiI4Lij4Li04LiN4Liq4Lih4LiT4LiY4Lij4Lij4LihCivguYDguIjguKPguLTguI3guK3guLLguKvguLLguKMKK+C5gOC4iOC4o+C4tOC4lAor4LmA4LiI4Lij4Li14Lii4LiHCivguYDguIjguKXguLXguKLguIcKK+C5gOC4iOC4p+C5h+C4lAor4LmA4LiI4Lip4LiO4LiyCivguYDguIjguYrguKrguLHguKcKK+C5gOC4iOC4rQor4LmA4LiI4LmI4LitCivguYDguIjguYvguK0KK+C5gOC4iOC5i+C4reC5gOC4iOC5iuC4reC4sAor4LmA4LiI4Lit4Lij4LmM4LmA4Lih4LmA4LiZ4Li14Lii4LihCivguYDguIjguK3guLAKK+C5gOC4iOC4sgor4LmA4LiI4LmI4LiyCivguYDguIjguYnguLIKK+C5gOC4iOC5iuC4sgor4LmA4LiI4LmJ4Liy4LiB4Lij4LihCivguYDguIjguYnguLLguIHguKPguKPguKEKK+C5gOC4iOC5ieC4suC4geC4o+C4o+C4oeC4meC4suC4ouC5gOC4p+C4owor4LmA4LiI4LmJ4Liy4LiB4Lij4Liw4LiX4Lij4Lin4LiHCivguYDguIjguYnguLLguIHguLXguYnguYDguIjguYnguLLguIHguLLguKMKK+C5gOC4iOC5ieC4suC4geC4uQor4LmA4LiI4LmJ4Liy4LiC4Lij4Lix4LinCivguYDguIjguYnguLLguILguK3guIcKK+C5gOC4iOC5ieC4suC4guC4sgor4LmA4LiI4LmJ4Liy4LiC4LmJ4LiyCivguYDguIjguYnguLLguILguYnguLLguKfguYHguJTguIfguYHguIHguIfguKPguYnguK3guJkKK+C5gOC4iOC5ieC4suC4guC4uOC4meC4oeC4uOC4peC4meC4suC4ogor4LmA4LiI4LmJ4Liy4LiC4Li44LiZ4Lih4Li54Lil4LiZ4Liy4LiiCivguYDguIjguYnguLLguYTguILguYkKK+C5gOC4iOC5ieC4suC4hOC4k+C4sAor4LmA4LiI4LmJ4Liy4LiE4Lij4Lit4LiBCivguYDguIjguYnguLLguITguLLguKPguKEKK+C5gOC4iOC5ieC4suC4hOC4uOC4kwor4LmA4LiI4LmJ4Liy4LiE4Li44LiT4LiI4Lit4LihCivguYDguIjguYnguLLguYHguIfguYjguYDguIjguYnguLLguIfguK3guJkKK+C5gOC4iOC5ieC4suC5geC4h+C5iOC5geC4quC4meC4h+C4reC4mQor4LmA4LiI4LmJ4Liy4LiI4Lit4LihCivguYDguIjguYnguLLguIjguK3guKHguKHguLLguKPguJTguLIKK+C5gOC4iOC5ieC4suC4iOC4s+C4meC4p+C4mQor4LmA4LiI4LmJ4Liy4LiI4Liz4LiZ4LizCivguYDguIjguYjguLLguIjguLjguIEKK+C5gOC4iOC5ieC4suC4iuC4teC4p+C4tOC4lQor4LmA4LiI4LmJ4Liy4LiK4Li54LmJCivguYDguIjguYnguLLguYDguIvguYfguJkKK+C5gOC4iOC5ieC4suC5gOC4i+C5h+C4meC5gOC4leC5ieC4meC4leC5ieC4s+C4muC4uOC4lAor4LmA4LiI4LmJ4Liy4LiV4Lix4LinCivguYDguIjguYnguLLguJbguYnguK3guKLguKvguKHguK3guITguKfguLLguKEKK+C5gOC4iOC5ieC4suC4l+C5iOC4sgor4LmA4LiI4LmJ4Liy4LiX4Li14LmICivguYDguIjguYnguLLguJfguLjguIHguILguYwKK+C5gOC4iOC5ieC4suC5hOC4l+C4ogor4LmA4LiI4LmJ4Liy4LiZ4Liy4LiiCivguYDguIjguYnguLLguYDguJnguLfguYnguK0KK+C5gOC4iOC5ieC4suC4muC5ieC4suC4mQor4LmA4LiI4LmJ4Liy4Lia4LmI4Liy4LinCivguYDguIjguYnguLLguJrguLjguI3guJnguLLguKLguITguLjguJMKK+C5gOC4iOC5ieC4suC5gOC4muC4teC5ieC4ogor4LmA4LiI4LmJ4Liy4Lib4Lij4Liw4LiE4Li44LiTCivguYDguIjguYnguLLguJvguKPguLDguITguLnguYnguJkKK+C5gOC4iOC5ieC4suC4m+C4ueC5iAor4LmA4LiI4LmJ4Liy4Lie4LiZ4Lix4LiB4LiH4Liy4LiZCivguYDguIjguYnguLLguJ7guJnguLHguIHguIfguLLguJnguJrguLHguIfguITguLHguJrguITguJTguLUKK+C5gOC4iOC5ieC4suC4nuC4meC4seC4geC4h+C4suC4meC4nuC4tOC4l+C4seC4geC4qeC5jOC4l+C4o+C4seC4nuC4ouC5jAor4LmA4LiI4LmJ4Liy4Lie4LiZ4Lix4LiB4LiH4Liy4LiZ4Lig4Li54Lip4Liy4Lih4Liy4Lil4LiyCivguYDguIjguYnguLLguJ7guJnguLHguIHguIfguLLguJnguKrguJnguKHguJ7guKXguYDguKPguLfguK3guJkKK+C5gOC4iOC5ieC4suC4nuC4o+C4sOC5gOC4lOC4iuC4meC4suC4ouC4nuC4o+C4sOC4hOC4uOC4kwor4LmA4LiI4LmJ4Liy4Lie4Lij4Liw4Lii4LiyCivguYDguIjguYnguLLguJ7guYjguK0KK+C5gOC4iOC5ieC4suC4nuC4suC4ouC4uAor4LmA4LiI4LmJ4Liy4Lif4LmJ4LiyCivguYDguIjguYnguLLguJ/guYnguLLguKvguI3guLTguIfguKrguLTguKPguLTguJnguJjguKMKK+C5gOC4iOC5ieC4suC4oOC4suC4ngor4LmA4LiI4LmJ4Liy4Lig4Liy4Lip4Li1CivguYDguIjguYnguLLguKHguKPguJTguIEKK+C5gOC4iOC5ieC4suC4oeC4t+C4rQor4LmA4LiI4LmJ4Liy4LmB4Lih4LmICivguYDguIjguYnguLLguYTguKHguYjguKHguLXguKjguLLguKUg4Liq4Lih4Lig4Liy4Lij4LmE4Lih4LmI4Lih4Li14Lin4Lix4LiUCivguYDguIjguYnguLLguKLguKgKK+C5gOC4iOC5ieC4suC5gOC4o+C4t+C4reC4mQor4LmA4LiI4LmJ4Liy4LmA4Lil4LmI4Lir4LmMCivguYDguIjguYnguLLguKrguLHguKcKK+C5gOC4iOC5ieC4suC4quC4suC4pwor4LmA4LiI4LmJ4Liy4Liq4Liz4LiZ4Lin4LiZCivguYDguIjguYnguLLguKrguLPguJrguLHguJTguKrguLPguJnguKfguJkKK+C5gOC4iOC5ieC4suC4quC4s+C4o+C4suC4jQor4LmA4LiI4LmJ4Liy4Lir4LiZ4LmJ4LiyCivguYDguIjguYnguLLguKvguJnguYnguLLguYDguIjguYnguLLguJXguLIKK+C5gOC4iOC5ieC4suC4q+C4meC5ieC4suC4l+C4teC5iAor4LmA4LiI4LmJ4Liy4Lir4LiZ4Li14LmJCivguYDguIjguYnguLLguKvguKXguKfguIcKK+C5gOC4iOC5ieC4suC4q+C4peC5iOC4reC4mQor4LmA4LiI4LmJ4Liy4Lir4Lix4LinCivguYDguIjguYnguLLguK3guJjguLTguIHguLLguKMKK+C5gOC4iOC5ieC4suC4reC4suC4o+C4oeC4k+C5jAor4LmA4LiI4LmJ4Liy4Lit4Liy4Lin4Liy4LiqCivguYDguIjguLLguLAKK+C5gOC4iOC4suC4sOC4iOC4hwor4LmA4LiI4Liy4Liw4LiI4Lih4Li54LiBCivguYDguIjguLTguYjguIcKK+C5gOC4iOC4tOC4lAor4LmA4LiI4Li04LiU4LiI4LmJ4LiyCivguYDguIjguLTguYjguJkKK+C5gOC4iOC4tOC4oQor4LmA4LiI4Li14LiiCivguYDguIjguLXguKLguIcKK+C5gOC4iOC4teC4ouC4lAor4LmA4LiI4Li14Lii4LiU4Lii4LiyCivguYDguIjguLXguKLguJkKK+C5gOC4iOC4teC5i+C4ouC4mQor4LmA4LiI4Li14LmK4Lii4LiaCivguYDguIjguLXguKLguKEKK+C5gOC4iOC4teC5i+C4ouC4oeC5gOC4iOC4teC5ieC4ouC4oQor4LmA4LiI4Li14Lii4Lih4Liq4Lix4LiH4LiC4Liy4LijCivguYDguIjguLXguKLguKMKK+C5gOC4iOC4teC4ouC4o+C4sOC5hOC4mQor4LmA4LiI4Li14Lii4Lij4Liw4Lia4Liy4LiUCivguYDguIjguLXguKLguKcKK+C5gOC4iOC4teC5iuC4ouC4p+C4iOC5iuC4suC4pwor4LmA4LiI4Li34LitCivguYDguIjguLfguK3guIjguLLguIcKK+C5gOC4iOC4t+C4reC4iOC4suC4mQor4LmA4LiI4Li34LmI4Lit4LiZCivguYDguIjguLfguK3guJvguJkKK+C5gOC4iOC4t+C5ieC4reC4ogor4LmA4LiI4Li34LmJ4Lit4Lii4LmB4LiI4LmJ4LinCivguYDguIjguLfguK3guKrguKEKK+C5geC4iAor4LmB4LiI4LmJCivguYHguIjguYsKK+C5geC4iOC4gQor4LmB4LiI4LiB4LiI4LmI4Liy4LiiCivguYHguIjguIHguYHguIjguIcKK+C5geC4iOC4geC5hOC4nuC5iAor4LmB4LiI4LiB4Lix4LiZCivguYHguIjguIcKK+C5geC4iOC5iOC4hwor4LmB4LiI4LmJ4LiHCivguYHguIjguYnguIfguITguKfguLLguKEKK+C5geC4iOC4h+C4o+C4ueC4mwor4LmB4LiI4LiH4Lil4Lit4LiZCivguYHguIjguIfguKrguLXguYjguYDguJrguLXguYnguKIKK+C5geC4iOC4iOC4mQor4LmB4LiI4LiI4Lix4LiZCivguYHguIjguYrguJQKK+C5geC4iOC4lOC5geC4iOC5iQor4LmB4LiI4LmK4LiU4LmB4LiI4LmLCivguYHguIjguJXguKMKK+C5geC4iOC5ieC4mQor4LmB4LiI4LiaCivguYHguIjguYjguKEKK+C5geC4iOC5iOC4oeC5geC4iOC5ieC4hwor4LmB4LiI4LmI4Lih4LmD4LiqCivguYHguIjguKMKK+C5geC4iOC4o+C4gQor4LmB4LiI4Lij4LiHCivguYHguIjguKcKK+C5geC4iOC5iOC4pwor4LmB4LiI4LmJ4LinCivguYHguIjguYnguKfguYYKK+C5geC4iOC5i+C4pwor4LmB4LiI4LmL4Lin4LmB4Lir4Lin4LinCivguYHguIjguLAKK+C5guC4iOC4gQor4LmC4LiI4LmK4LiBCivguYLguIjguIcKK+C5guC4iOC4h+C4geC4o+C4sOC5gOC4muC4mQor4LmC4LiI4LiH4LiB4Lij4Liw4LmA4Lia4LiZ4LiV4Li14LmA4Lir4Lil4LmH4LiBCivguYLguIjguYjguIfguITguKPguLbguYjguKEKK+C5guC4iOC5i+C4h+C4hOC4o+C4tuC5iOC4oQor4LmC4LiI4LmI4LiH4LiE4Lij4Li44LmI4LihCivguYLguIjguIfguYLguITguKPguYjguIcKK+C5guC4iOC5i+C4h+C5gOC4iOC5i+C4hwor4LmC4LiI4LmI4LiH4LmB4LiI4LmJ4LiHCivguYLguIjguJcKK+C5guC4iOC4l+C4geC5jAor4LmC4LiI4LiX4LmA4LiI4LmJ4LiyCivguYLguIjguJfguJnguLIKK+C5guC4iOC4l+C4ouC5jAor4LmC4LiI4LiZCivguYLguIjguJnguKPguYjguKEKK+C5guC4iOC4oQor4LmC4LiI4Lih4LiV4Li1CivguYLguIjguKHguJfguLHguJ4KK+C5guC4iOC4owor4LmC4LiI4LijLQor4LmC4LiI4Lij4LiB4Lij4Lij4LihCivguYLguIjguKPguKrguKXguLHguJQKK+C5guC4iOC4pQor4LmC4LiI4LipCivguYLguIjguKnguIjguJkKK+C5guC4iOC4qeC4iOC4seC4mQor4LmC4LiI4Lip4LmB4LiICivguYPguIgKK+C5g+C4iOC4geC4peC4suC4hwor4LmD4LiI4LiB4Lin4LmJ4Liy4LiHCivguYPguIjguILguLjguYjguJkKK+C5g+C4iOC5geC4guC5h+C4hwor4LmD4LiI4LiE4Lin4Liy4LihCivguYPguIjguITguK0KK+C5g+C4iOC5geC4hOC4mgor4LmD4LiI4LiH4LmI4Liy4LiiCivguYPguIjguIjguJTguYPguIjguIjguYjguK0KK+C5g+C4iOC4iOC4t+C4lAor4LmD4LiI4LmA4LiJ4Li34LmI4Lit4LiiCivguYPguIjguIrguLfguYnguJkKK+C5g+C4iOC4lOC4swor4LmD4LiI4LiU4Li1CivguYPguIjguYDguJTguYfguJQKK+C5g+C4iOC5gOC4lOC4teC4ouC4pwor4LmD4LiI4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguYPguIjguJXguYjguLMKK+C5g+C4iOC5gOC4leC4tOC4mgor4LmD4LiI4LmB4LiV4LiBCivguYPguIjguYLguJUKK+C5g+C4iOC4luC4tuC4hwor4LmD4LiI4LiZ4LmJ4Lit4LiiCivguYPguIjguJrguLLguJkKK+C5g+C4iOC4muC4uOC4jQor4LmD4LiI4LmA4Lia4LiyCivguYPguIjguJvguKXguLLguIvguLTguKcKK+C5g+C4iOC4m+C5ieC4swor4LmD4LiI4LmB4Lib4LmJ4LinCivguYPguIjguJ3guYjguK0KK+C5g+C4iOC5gOC4nuC4iuC4owor4LmD4LiI4Lih4LiyCivguYPguIjguKHguLfguK0KK+C5g+C4iOC5hOC4oeC5iOC4lOC4tQor4LmD4LiI4LmE4Lih4LmJ4LmE4Liq4LmJ4Lij4Liw4LiB4LizCivguYPguIjguKLguLHguIHguKnguYwKK+C5g+C4iOC5gOC4ouC5h+C4mQor4LmD4LiI4Lij4LmJ4Lit4LiZCivguYPguIjguKPguYnguLLguKIKK+C5g+C4iOC5gOC4o+C5h+C4pwor4LmD4LiI4Lil4Lit4LiiCivguYPguIjguKrguLnguIcKK+C5g+C4iOC5gOC4quC4suC4sAor4LmD4LiI4LmA4Liq4Li14LiiCivguYPguIjguKvguJnguLHguIHguYHguJnguYjguJkKK+C5g+C4iOC4q+C4suC4ogor4LmD4LiI4LmA4Lir4Li14LmI4Lii4Lin4LmB4Lir4LmJ4LiHCivguYPguIjguYPguKvguI3guYjguYPguIjguYLguJUKK+C5g+C4iOC4reC5iOC4reC4mQor4LmE4LiICivguYTguIjguYkKK+C5hOC4iOC5ieC5hgor4LmE4LiI4LijCivguIkKK+C4ieC4gQor4LiJ4LiB4LiI4Lin4Lix4LiBCivguInguIHguInguKfguKIKK+C4ieC4geC4iuC4tOC4hwor4LiJ4LiB4Lij4Lij4LiI4LmMCivguInguIHguKPguKPguIjguYzguKXguLPguYDguITguKPguLfguYjguK3guIcKK+C4ieC4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiJ4LiB4Liy4LiICivguInguIHguLLguIjguInguIHguKPguKPguIjguYwKK+C4ieC4geC4suC4oeC4suC4nuC4iOC4owor4LiJ4LiB4Liy4Lih4Liy4Lin4LiI4LijCivguInguIcKK+C4ieC4h+C4mQor4LiJ4LiH4Liy4LiiCivguInguJfguKfguLLguKMKK+C4ieC4l+C4suC4meC4qOC4suC4peC4sgor4LiJ4LiX4Li24LiHCivguInguJnguKfguJkKK+C4ieC4meC4seC4hwor4LiJ4LiZ4Liy4LiBCivguInguJnguLMKK+C4ieC4muC4mgor4LiJ4Lia4Lix4LiHCivguInguJrguLHguJQKK+C4ieC4muC4seC4mgor4LiJ4Lia4LizCivguInguJ7guLXguKrguJXguLTguKEtCivguInguKEKK+C4ieC4oeC4mgor4LiJ4Lih4Lin4LiBCivguInguKHguKfguKIKK+C4ieC4oeC5iOC4reC4hwor4LiJ4Lih4Lix4LiHCivguInguKHguLHguJkKK+C4ieC4oeC4sgor4LiJ4Lih4LizCivguInguKUKK+C4ieC4peC4p+C4ogor4LiJ4Lil4Lin4Lii4LiJ4Lil4Liy4LiUCivguInguKXguK3guIcKK+C4ieC4peC4reC4h+C5hOC4lAor4LiJ4Lil4Lit4LiH4Lie4Lij4Liw4LiB4Lij4LiZ4LmJ4Lit4LiiCivguInguKXguK3guIfguJ7guKPguLDguYDguJnguJXguKMKK+C4ieC4peC4reC4h+C4nuC4o+C4sOC4muC4suC4lwor4LiJ4Lil4Lit4LiH4Lie4Lij4Liw4Lio4LitCivguInguKXguK3guIfguJ7guKPguLDguKvguLHguJXguJbguYwKK+C4ieC4peC4reC4h+C4nuC4o+C4sOC4reC4h+C4hOC5jAor4LiJ4Lil4Lit4LiH4Lit4LiH4LiE4LmMCivguInguKXguK3guKEKK+C4ieC4peC4reC4oeC4l+C5ieC4suC4ouC4jeC4p+C4mQor4LiJ4Lil4Lix4LiBCivguInguKXguLHguJoKK+C4ieC4peC4suC4gQor4LiJ4Lil4Liy4LiB4Lia4Liy4LiHCivguInguKXguLLguIcKK+C4ieC4peC4suC4lAor4LiJ4Lil4Liy4LihCivguInguKXguLLguKHguYDguKrguLfguK0KK+C4ieC4peC4suC4ogor4LiJ4Lil4Li04LinCivguInguKXguLXguIEKK+C4ieC4peC4uAor4LiJ4Lil4Li44LiB4LiJ4Lil4Lin4LiiCivguInguKXguLjguKXguLLguKIKK+C4ieC4peC4uQor4LiJ4Lin4LiiCivguInguKfguKLguInguLLguJoKK+C4ieC4p+C4sAor4LiJ4Lin4Lix4LiU4LmA4LiJ4Lin4Li14Lii4LiZCivguInguKfguLLguIcKK+C4ieC4p+C4tQor4LiJ4Lio4LiBCivguInguYnguK0KK+C4ieC4reC4gQor4LiJ4LmJ4Lit4LmC4LiB4LiHCivguInguYjguK3guIcKK+C4ieC5ieC4reC4ieC4pQor4LiJ4Lit4LiU4LmGCivguInguYjguK3guKIKK+C4ieC5ieC4reC4o+C4suC4qeC4juC4o+C5jOC4muC4seC4h+C4q+C4peC4p+C4hwor4LiJ4Lit4LmA4Lil4Liy4LiwCivguInguLAKK+C4ieC4sOC4geC4sAor4LiJ4Liw4LiJ4Liy4LiUCivguInguLDguInguLLguJkKK+C4ieC4sOC4ieC5iOC4swor4LiJ4Liw4LiJ4Li14LmICivguInguLDguYDguInguLfguYjguK3guKIKK+C4ieC4sOC4leC5ieC4sgor4LiJ4Liw4LiZ4Lix4LmJ4LiZCivguInguLDguJnguLXguYkKK+C4ieC4sOC4q+C4meC5ieC4suC5guC4o+C4hwor4LiJ4Liw4Lit4LmJ4Lit4LiZCivguInguLHguIHguIHguLAKK+C4ieC4seC4kAor4LiJ4Lix4LiUCivguInguLHguJXguKMKK+C4ieC4seC4leC4oy0KK+C4ieC4seC4leC4o+C4muC4o+C4o+C4kwor4LiJ4Lix4LiV4Lij4Lih4LiH4LiE4LilCivguInguLHguJXguKPguKrguLLguKHguIrguLHguYnguJkKK+C4ieC4seC4l+C4l+C4seC4meC4leC5jAor4LiJ4Lix4LiZCivguInguLHguJnguYPguJQKK+C4ieC4seC4meC4ly0KK+C4ieC4seC4meC4l+C5jAor4LiJ4Lix4LiZ4LiX4Lil4Lix4LiB4Lip4LiT4LmMCivguInguLHguJnguJfguKfguLTguKXguLLguKoKK+C4ieC4seC4meC4l+C4qOC4suC4quC4leC4o+C5jAor4LiJ4Lix4LiZ4LiX4LiwCivguInguLHguJnguJfguLIKK+C4ieC4seC4meC4l+C4suC4hOC4leC4tAor4LiJ4Lix4LiZ4LiX4Liy4LiZ4Li44Lih4Lix4LiV4Li0CivguInguLHguJnguJnguLHguYnguJkKK+C4ieC4seC4meC4p+C4uOC4leC4tAor4LiJ4Lix4LiaCivguInguLHguJrguYYKK+C4ieC4seC4muC4nuC4peC4seC4mQor4LiJ4Lix4Lia4LmE4LinCivguInguLHguJ7guJ7guKPguKPguJPguKPguLHguIfguKrguLUKK+C4ieC4seC4ouC4ouC4sgor4LiJ4LmI4LiyCivguInguLLguIEKK+C4ieC4suC4geC4jeC4teC5iOC4m+C4uOC5iOC4mQor4LiJ4Liy4LiB4LiV4Lix4LmJ4LiHCivguInguLLguIHguJfguLTguYnguIcKK+C4ieC4suC4geC4meC5ieC4reC4ogor4LiJ4Liy4LiB4Lia4Lix4LiH4LmA4Lie4Lil4Li04LiHCivguInguLLguIHguYPguKvguI3guYgKK+C4ieC4suC4hwor4LiJ4LmI4Liy4LiHCivguInguYjguLLguInguLLguKcKK+C4ieC4suC4lAor4LiJ4Liy4LiU4LiJ4Liy4LiZCivguInguLLguJXguIHguKDguLHguKIKK+C4ieC4suC4l+C4mQor4LiJ4Liy4LiZCivguInguLLguJoKK+C4ieC4suC4muC4ieC4p+C4ogor4LiJ4Liy4LibCivguInguLLguKIKK+C4ieC4suC4ouC5gOC4ieC4tOC4lAor4LiJ4Liy4Lii4LiyCivguInguLLguKLguLLguKXguLHguIHguKnguJPguYwKK+C4ieC4suC4pwor4LiJ4Liy4Lin4LmC4LiJ4LmICivguInguYjguLMKK+C4ieC4s+C4ieC4sgor4LiJ4Liz4LmA4LiJ4LiHCivguInguLPguYHguInguLAKK+C4ieC4tOC5iOC4hwor4LiJ4Li04LmI4LiH4LiV4Lij4Lix4LiHCivguInguLTguJkKK+C4ieC4tOC4meC4ly0KK+C4ieC4tOC4meC4l+C5jAor4LiJ4Li04LiZ4LiX4Lik4LiB4Lip4LmMCivguInguLTguJoKK+C4ieC4tOC4muC4q+C4suC4ogor4LiJ4Li04Lih4Lie4Lil4Li1CivguInguLTguKcKK+C4ieC4teC5iAor4LiJ4Li14LiBCivguInguLXguIHguKvguJnguYnguLIKK+C4ieC4teC4lAor4LiJ4Li14LiU4Lii4LiyCivguInguLgKK+C4ieC4uOC4gQor4LiJ4Li44LiB4LiE4Li04LiUCivguInguLjguIHguYPguIgKK+C4ieC4uOC4geC5gOC4ieC4tOC4mQor4LiJ4Li44LiB4Lil4Liw4Lir4Li44LiBCivguInguLjguJQKK+C4ieC4uOC4mQor4LiJ4Li44LiZ4LmA4LiJ4Li14Lii4LinCivguInguLjguJsKK+C4ieC4uOC4my0KK+C4ieC4uOC4m+C4qOC4suC4quC4leC4o+C5jAor4LiJ4Li44LiiCivguInguLjguKLguInguLLguKIKK+C4ieC4uOC4ouC4ieC4suC4ouC5gOC4guC5ieC4suC4p+C4seC4hwor4LiJ4Li54LmICivguInguLnguYjguInguLXguYgKK+C4ieC4ueC4lAor4LiJ4Li54LiU4LiJ4Liy4LiUCivguYDguIkKK+C5gOC4ieC4gQor4LmA4LiJ4LmC4LiBCivguYDguInguYjguIcKK+C5gOC4ieC5hOC4iQor4LmA4LiJ4LiUCivguYDguInguJcKK+C5gOC4ieC4meC4teC4ouC4mQor4LmA4LiJ4Lie4Liy4LiwCivguYDguInguJ7guLLguLDguIHguLLguKUKK+C5gOC4ieC4nuC4suC4sOC4geC4tOC4iAor4LmA4LiJ4Lie4Liy4Liw4LiV4Lix4LinCivguYDguInguJ7guLLguLDguJ7guKPguLDguJ7guLHguIHguJXguKPguYwKK+C5gOC4ieC4nuC4suC4sOC4q+C4meC5ieC4sgor4LmA4LiJ4LiiCivguYDguInguKLguYYKK+C5gOC4ieC4ouC5gOC4oeC4ogor4LmA4LiJ4Lil4LiiCivguYDguInguKXguKcKK+C5gOC4ieC4peC4sgor4LmA4LiJ4Lil4Li04LihCivguYDguInguKXguLTguKHguJ7guKPguLDguIrguJnguKHguJ7guKPguKPguKnguLIKK+C5gOC4ieC4peC4teC5iOC4ogor4LmA4LiJ4Lil4Li14Lii4LiHCivguYDguInguKXguLXguYjguKLguIcKK+C5gOC4ieC4peC4teC4ouC4mgor4LmA4LiJ4Lil4Li14Lii4LinCivguYDguInguKXguLXguKLguKfguYPguIgKK+C5gOC4ieC4peC4teC4ouC4p+C4ieC4peC4suC4lAor4LmA4LiJ4Lin4Li14Lii4LiHCivguYDguInguKfguLXguKLguIfguJrguYjguLIKK+C5gOC4ieC4p+C4teC4ouC4mQor4LmA4LiJ4Lit4Liw4LmB4LiJ4LiwCivguYDguInguLIKK+C5gOC4ieC4suC4geC5iuC4p+C4ogor4LmA4LiJ4Liy4LmC4LiJ4LiUCivguYDguInguLLguK7guLfguYnguK0KK+C5gOC4ieC4suC4sAor4LmA4LiJ4Liy4Liw4LmGCivguYDguInguLLguLDguJvguKXguYjguK3guIcKK+C5gOC4ieC4tOC4lAor4LmA4LiJ4Li04LiU4LiJ4Lix4LiZCivguYDguInguLTguJTguInguLLguKIKK+C5gOC4ieC4tOC4lOC4ieC4tOC4mQor4LmA4LiJ4Li04LiaCivguYDguInguLTguJrguYYKK+C5gOC4ieC4teC4ouC4hwor4LmA4LiJ4Li14Lii4LiH4Lie4Lij4LmJ4Liy4LiU4LizCivguYDguInguLXguKLguIfguJ7guKPguYnguLLguJnguLLguIfguYHguK0KK+C5gOC4ieC4teC4ouC4h+C4nuC4o+C5ieC4suC4oeC4reC4jQor4LmA4LiJ4Li14Lii4LiUCivguYDguInguLXguKLguJoKK+C5gOC4ieC4teC4ouC4muC4guC4suC4lAor4LmA4LiJ4Li14Lii4Lia4Lie4Lil4Lix4LiZCivguYDguInguLXguKLguJrguYHguKvguKXguKEKK+C5gOC4ieC4teC4ouC4pwor4LmA4LiJ4Li14LmI4Lii4LinCivguYDguInguLXguKLguKfguInguLjguJkKK+C5gOC4ieC4t+C4reC4mQor4LmA4LiJ4Li34LmI4Lit4LiiCivguYDguInguLfguYjguK3guKLguYYKK+C5gOC4ieC4t+C5iOC4reC4ouC4iuC4sgor4LmB4LiJCivguYHguInguYgKK+C5geC4ieC4gQor4LmB4LiJ4LiB4LmGCivguYHguInguIcKK+C5geC4ieC5iOC4hwor4LmB4LiJ4LmC4Lie4LiiCivguYHguInguKXguJoKK+C5geC4ieC4peC5ieC4oQor4LmB4LiJ4Lil4LiwCivguYHguInguKcKK+C5geC4ieC4sAor4LmB4LiJ4Liw4LmB4Lia4LiwCivguYLguIkKK+C5guC4ieC5iAor4LmC4LiJ4LmA4LiBCivguYLguInguYjguIfguInguYjguLLguIcKK+C5guC4ieC4h+C5gOC4ieC4hwor4LmC4LiJ4LmI4LiJ4Liy4LinCivguYLguInguJQKK+C5guC4ieC4lOC5gOC4ieC4sgor4LmC4LiJ4LiZ4LiUCivguYLguInguJoKK+C5guC4ieC5gOC4muC5igor4LmC4LiJ4LihCivguYLguInguKHguIfguLLguKEKK+C5guC4ieC4oeC4ieC4suC4ogor4LmC4LiJ4Lih4LmA4LiJ4Lil4LiyCivguYLguInguKHguJXguKPguLkKK+C5guC4ieC4oeC4ouC4hwor4LmC4LiJ4Lih4Lio4Lij4Li1CivguYLguInguKHguKvguJnguYnguLIKK+C5guC4ieC4peC4gQor4LmE4LiJ4LiZCivguYTguInguYTguKUKK+C4igor4LiK4LiBCivguIrguIHguKHguKfguKIKK+C4iuC4geC4sgor4LiK4LiELQor4LiK4LiE4LiU4Li1CivguIrguITguLHguJXguJXguKPguLHguKIKK+C4iuC4hwor4LiK4LiH4LiE4LiyCivguIrguIfguYLguIQKK+C4iuC4h+C4hi0KK+C4iuC4h+C4huC5jAor4LiK4LiH4LiG4LiyCivguIrguIfguYLguKXguIcKK+C4iuC4juC4sgor4LiK4LiO4Liy4LiB4Lil4Li14LiaCivguIrguI7guLLguYDguJTguLTguJnguKvguJkKK+C4iuC4juC4suC4mOC4suC4owor4LiK4LiO4Liy4LmB4Lib4Lil4LiHCivguIrguI7guLLguJ7guK3guIEKK+C4iuC4juC4suC4oeC4q+C4suC4geC4kOC4tOC4mQor4LiK4LiO4Liy4Lih4Lix4LiH4Lip4Li1CivguIrguI7guLLguKHguLHguIfguKrguLUKK+C4iuC4juC4tOC4pQor4LiK4LiUCivguIrguJTguIrguYnguK3guKIKK+C4iuC4lOC5gOC4iuC4ogor4LiK4LiU4LmD4LiK4LmJCivguIrguJfguLbguIcKK+C4iuC4mQor4LiK4LiZLQor4LiK4LiZ4LiBCivguIrguJnguIEtCivguIrguJnguIHguIHguKPguKPguKEKK+C4iuC4meC4iuC5ieC4suC4hwor4LiK4LiZ4LiZ4Li1CivguIrguJnguJrguJcKK+C4iuC4meC4oS0KK+C4iuC4meC4oeC5jAor4LiK4LiZ4Lih4Lie4Lij4Lij4Lip4LiyCivguIrguJnguKHguLLguJ7guLTguJjguLUKK+C4iuC4meC4oeC4suC4ouC4uOC4nuC4tOC4mOC4tQor4LiK4LiZ4Lin4LiZCivguIrguJnguKvguKHguLnguYjguJnguYnguK3guKIKK+C4iuC4meC4sAor4LiK4LiZ4Lix4LiBCivguIrguJnguLHguIHguJXguLTguJTguKvguKXguLHguIcKK+C4iuC4meC4sgor4LiK4LiZ4Liy4LiHCivguIrguJnguLTguJQKK+C4iuC4meC4tOC4meC4l+C4o+C5jAor4LiK4LmA4LiZ4LiV4LiV4Li1CivguIrguJrguLIKK+C4iuC4muC4suC4q+C4meC4uQor4LiK4Lib4LmC4Lii4LiECivguIrguKEKK+C4iuC4oeC4iuC4seC4pwor4LiK4Lih4LiK4Liy4LiNCivguIrguKHguYDguIrguKIKK+C4iuC4oeC5hOC4igor4LiK4Lih4LiU4LiK4Lih4LmJ4Lit4LiiCivguIrguKHguJnguLLguJQKK+C4iuC4oeC4mgor4LiK4Lih4LmA4Lib4Liy4LiwCivguIrguKHguJ7guLkKK+C4iuC4oeC4nuC4ueC5iAor4LiK4Lih4Lie4Li54LiX4Lin4Li14LibCivguIrguKHguJ7guLnguJnguJcKK+C4iuC4oeC4nuC4ueC4meC4uOC4lwor4LiK4Lih4Lie4Li54Lie4Liy4LiU4Lia4LmI4LiyCivguIrguKHguKPguKEKK+C4iuC4oeC5gOC4peC4suC4sAor4LiK4Lih4Liq4Lin4LiZ4Liq4Lin4Lij4Lij4LiE4LmMCivguIrguKHguYnguK3guKIKK+C4iuC4oeC4seC4mQor4LiK4Lih4LiyCivguIrguKHguYnguLLguKIKK+C4iuC5hOC4oQor4LiK4LiiCivguIrguKItCivguIrguKLguLIKK+C4iuC5guC4ogor4LiK4LijCivguIrguKPguJfguLbguIcKK+C4iuC4o+C5guC4oeC4pQor4LiK4Lij4LmE4LihCivguIrguKPguKPguLLguIcKK+C4iuC4o+C4o+C4tOC4mQor4LiK4Lij4LmA4Lij4Li34Lit4LiUCivguIrguKPguYHguKPguIcKK+C4iuC4o+C5geC4o+C5iOC4hwor4LiK4Lij4LmC4Lil4LiHCivguIrguKPguK3guIHguIrguKPguLHguIcKK+C4iuC4o+C4reC4reC4mgor4LiK4Lij4Lit4Lix4LiUCivguIrguKPguK3guYjguLMKK+C4iuC4o+C4reC4t+C5ieC4rQor4LiK4Lij4Lit4Li44LmI4LihCivguIrguKPguLAKK+C4iuC4o+C4sOC4h+C4oQor4LiK4Lij4Liw4LiH4LmI4Lit4LiZCivguIrguKPguLDguIfguLMKK+C4iuC4o+C4sOC4lOC4seC4lAor4LiK4Lij4Liw4LiU4Li34LmI4LiZCivguIrguKPguLDguYDguJTguLXguKLguJQKK+C4iuC4o+C4sOC5gOC4lOC4teC4ouC4lOC4iuC4o+C4sOC4lOC4seC4lAor4LiK4Lij4Liw4Lia4Lit4LiaCivguIrguKPguLDguJrguLLguJoKK+C4iuC4o+C4sOC4oeC4lAor4LiK4Lij4Liw4Lih4Lix4LinCivguIrguKPguLDguKHguLfguYjguJkKK+C4iuC4o+C4sOC4oeC4uOC4geC4iuC4o+C4sOC4oeC4reC4oQor4LiK4Lij4Liw4Lih4Li44LmI4LiZCivguIrguKPguLDguYDguKHguLXguKLguIcKK+C4iuC4o+C4sOC5gOC4oeC4teC4ouC4mQor4LiK4Lij4Liw4Lil4LitCivguIrguKPguLDguKXguK3guIcKK+C4iuC4o+C4sOC4peC5iOC4reC4hwor4LiK4Lij4Liw4Lil4Lix4LmI4LiHCivguIrguKPguLDguKXguLHguJQKK+C4iuC4o+C4sOC4peC5ieC4swor4LiK4Lij4Liw4Lil4Li4CivguIrguKPguLDguYHguKXguIcKK+C4iuC4o+C4sOC4reC4seC4mgor4LiK4Lij4Liw4Lit4Liy4LiaCivguIrguKPguLDguYDguK3guKEKK+C4iuC4o+C4seC4lAor4LiK4Lij4Lix4LinCivguIrguKPguLIKK+C4iuC4o+C4suC4geC4suC4geC4tQor4LiK4Lij4Liy4LiY4Lij4Lij4LihCivguIrguKPguLLguJoKK+C4iuC4o+C4suC4muC4iuC4o+C4seC4mgor4LiK4Lij4Liy4Lig4Liy4LieCivguIrguKPguLLguKLguLgKK+C4iuC4o+C4tOC4mQor4LiK4Lij4Li44LiBCivguIrguKPguLnguJoKK+C4iuC4pQor4LiK4LilLQor4LiK4Lil4LiI4LijCivguIrguKXguIjguLHguJPguJHguYwKK+C4iuC4peC4iuC4suC4leC4tAor4LiK4Lil4LiY4Liy4LijCivguIrguKXguJjguLLguKPguIEKK+C4iuC4peC4mOC4tOC4qAor4LiK4Lil4LiY4Li1CivguIrguKXguJnguLHguKLguJnguYwKK+C4iuC4peC4meC4sgor4LiK4Lil4LmA4LiZ4LiV4LijCivguIrguKXguJvguKPguLDguJfguLLguJkKK+C4iuC4peC4oeC4suC4o+C4hAor4LiK4Lil4Liq4LiW4Liy4LiZCivguIrguKXguLHguKHguJ7guLgKK+C4iuC4peC4suC4mOC4suC4owor4LiK4Lil4Liy4Lie4Li44LiKCivguIrguKXguLLguKHguJ7guLjguIoKK+C4iuC4peC4suC4peC4seC4ogor4LiK4Lil4Liy4Lio4Lix4LiiCivguIrguKXguLUKK+C4iuC4peC4ueC4geC4sgor4LiK4LmA4LilCivguIrguYLguKXguIcKK+C4iuC5guC4peC4l+C4owor4LiK4LmC4Lil4LihCivguIrguKctCivguIrguYjguKfguIcKK+C4iuC5iOC4p+C4h+C4iuC4seC4ogor4LiK4LmI4Lin4LiH4LiK4Li04LiHCivguIrguYjguKfguIfguYLguIrguJXguLQKK+C4iuC5iOC4p+C4h+C5g+C4iuC5iQor4LiK4LmI4Lin4LiH4LiX4Lij4Lix4Lie4Lii4LmMCivguIrguYjguKfguIfguJrguLLguJcKK+C4iuC5iOC4p+C4h+C5gOC4oeC4t+C4reC4hwor4LiK4LmI4Lin4LiH4Liq4Li04LiX4LiY4Li04LmMCivguIrguKfguJQKK+C4iuC4p+C4mQor4LiK4Lin4LiZ4LiK4LihCivguIrguKfguJnguKvguLHguKcKK+C4iuC4p+C4ogor4LiK4LmI4Lin4LiiCivguIrguYjguKfguKLguYDguKvguKXguLfguK0KK+C4iuC4p+C4owor4LiK4Lin4Lil4Li04LiVCivguIrguKfguLHguIEKK+C4iuC4p+C4sgor4LiK4Lin4Liy4LilCivguIrguKfguLLguKXguLIKK+C4iuC5iOC4rQor4LiK4Lit4LiBCivguIrguYfguK3guIHguYLguIHguYDguKXguJUKK+C4iuC5h+C4reC4geC5guC4geC5geC4peC4lQor4LiK4Lit4LiB4LiK4LmJ4LizCivguIrguK3guIcKK+C4iuC5iOC4reC4hwor4LiK4LmJ4Lit4LiHCivguIrguYjguK3guIfguIHguLjguJQKK+C4iuC5iOC4reC4h+C5gOC4guC4sgor4LiK4LmI4Lit4LiH4LmB4LiE4LiaCivguIrguYjguK3guIfguJTguLLguKUKK+C4iuC5iOC4reC4h+C4leC4teC4meC4geC4sgor4LiK4LmJ4Lit4LiH4LiZ4Liy4LiHCivguIrguYnguK3guIfguJnguLLguIfguITguKXguLXguYgKK+C4iuC5iOC4reC4h+C5hOC4nwor4LiK4LmJ4Lit4LiH4LmB4Lih4LinCivguIrguK3guIfguKPguLDguK3guLIKK+C4iuC4reC4mQor4LiK4LmI4Lit4LiZCivguIrguYnguK3guJkKK+C4iuC5ieC4reC4meC4meC4suC4hwor4LiK4LmJ4Lit4LiZ4Lir4Lit4LiiCivguIrguK3guJoKK+C4iuC4reC4muC4geC4pQor4LiK4Lit4Lia4LmD4LiICivguIrguK3guJrguJjguKPguKPguKEKK+C4iuC4reC4muC4nuC4rQor4LiK4Lit4Lia4Lih4Liy4Lie4Liy4LiB4LilCivguIrguYjguK3guJ/guYnguLIKK+C4iuC4reC4oQor4LiK4LmI4Lit4Lih4LmI4Lin4LiHCivguIrguYjguK3guKIKK+C4iuC5ieC4reC4ogor4LiK4LmJ4Lit4Lii4LiK4LiUCivguIrguYnguK3guKLguIrguYjguLLguIfguKPguLMKK+C4iuC5ieC4reC4ouC4meC4suC4h+C4o+C4swor4LiK4Lit4Lil4LmM4LiBCivguIrguYjguK3guK3guLTguJnguJfguJnguLTguKUKK+C4iuC4reC5iOC4swor4LiK4Lit4Li34LmJ4LitCivguIrguK3guLjguYjguKEKK+C4iuC4sAor4LiK4Liw4LiE4Lij4Liy4LihCivguIrguLDguIfguK3guIEKK+C4iuC4sOC4h+C5iOC4reC4mQor4LiK4Liw4LiH4Lix4LiBCivguIrguLDguIfguLHguJQKK+C4iuC4sOC4h+C4suC4mgor4LiK4Liw4LiH4LmJ4LizCivguIrguLDguIfguLjguYnguKEKK+C4iuC4sOC5gOC4h+C5ieC4rQor4LiK4Liw4LmA4LiH4Li34LmJ4Lit4LihCivguIrguLDguYHguIfguYkKK+C4iuC4sOC5guC4h+C4gQor4LiK4Liw4LmC4LiH4LiB4Lic4LiyCivguIrguLDguInguYjguLIKK+C4iuC4sOC4iuC5iOC4reC4hwor4LiK4Liw4LiK4LiwCivguIrguLDguIrguYnguLIKK+C4iuC4sOC4iuC4tOC4lAor4LiK4Liw4LiU4Li14LiK4Liw4Lij4LmJ4Liy4LiiCivguIrguLDguYLguJQKK+C4iuC4sOC4leC4sgor4LiK4Liw4LiV4LmJ4LiyCivguIrguLDguJnguLUKK+C4iuC4sOC4meC4teC4o+C5iOC4suC4ouC5hOC4oeC5iQor4LiK4Liw4LiZ4Li44LiHCivguIrguLDguYDguJnguLLguLAKK+C4iuC4sOC5gOC4meC4teC4ouC4hwor4LiK4Liw4Lie4Lil4Li5CivguIrguLDguYDguJ7guKXguLTguIcKK+C4iuC4sOC4oeC4lAor4LiK4Liw4Lih4LiU4LmA4LiK4Li14Lii4LiHCivguIrguLDguKHguJTguJXguYnguJkKK+C4iuC4sOC4oeC4mgor4LiK4Liw4Lih4Lin4LiHCivguIrguLDguKHguLHguIcKK+C4iuC4sOC4oeC4seC4lAor4LiK4Liw4LmB4Lih4LmICivguIrguLDguKPguK3guKIKK+C4iuC4sOC4peC4rQor4LiK4Liw4Lil4Lit4LihCivguIrguLDguKXguYjguLIKK+C4iuC4sOC4peC4suC4mQor4LiK4Liw4Lil4Li04LiZCivguIrguLDguKXguLnguJQKK+C4iuC4sOC5gOC4peC4hwor4LiK4Liw4LmA4Lil4LiiCivguIrguLDguYHguKXguYfguIEKK+C4iuC4sOC5geC4peC4hwor4LiK4Liw4Lin4Lix4LiHCivguIrguLDguKfguLLguIEKK+C4iuC4sOC4p+C4suC4geC4l+C4sOC5gOC4pQor4LiK4Liw4Lin4Liy4LiUCivguIrguLDguKfguLjguYnguIcKK+C4iuC4sOC5gOC4p+C4tOC4geC4iuC4sOC4p+C4suC4gQor4LiK4Liw4LmB4Lin4LiHCivguIrguLDguK3guKEKK+C4iuC4sOC4reC5ieC4reC4mQor4LiK4Liw4LmA4Lit4LihCivguIrguLDguYLguK3guJkKK+C4iuC4seC4gQor4LiK4Lix4LiB4LiB4Lij4Liw4Lia4Li14LmI4Liq4Li14LmI4LiX4LmI4LiyCivguIrguLHguIHguITguKPguLLguKEKK+C4iuC4seC4geC5guC4hOC4o+C4gQor4LiK4Lix4LiB4LmA4LiH4LiyCivguIrguLHguIHguIjguLnguIcKK+C4iuC4seC4geC4iuC4p+C4mQor4LiK4Lix4LiB4LiK4LmJ4LiyCivguIrguLHguIHguIvguK3guKrguLLguKHguKrguLLguKIKK+C4iuC4seC4geC4i+C4uOC4h+C4leC4suC4oeC4guC4p+C4suC4hwor4LiK4Lix4LiB4LiV4Liw4Lie4Liy4LiZ4LmB4Lir4LiH4LiZ4LmA4LiW4LmI4LitCivguIrguLHguIHguJnguLMKK+C4iuC4seC4geC4meC5ieC4s+C5gOC4guC5ieC4suC4peC4tuC4gSDguIrguLHguIHguKjguLbguIHguYDguILguYnguLLguJrguYnguLLguJkKK+C4iuC4seC4geC5gOC4meC4t+C5ieC4rQor4LiK4Lix4LiB4LmD4Lia4LmD4Lir4LmJ4LmA4Lij4Li34Lit4LmA4Liq4Li14LiiCivguIrguLHguIHguYHguJvguYnguIfguJzguLHguJTguKvguJnguYnguLIKK+C4iuC4seC4geC4nuC4o+C4sAor4LiK4Lix4LiB4LmB4Lih4LmI4LiZ4LmJ4Liz4LiX4Lix4LmJ4LiH4Lir4LmJ4LiyCivguIrguLHguIHguKLguLHguJnguJXguYwKK+C4iuC4seC4geC5gOC4ouC5iOC4rQor4LiK4Lix4LiB4LmD4LiiCivguIrguLHguIHguKPguLnguJsKK+C4iuC4seC4geC4qOC4ngor4LiK4Lix4LiB4Liq4Lit4LiH4LmB4LiW4LinCivguIrguLHguIHguKrguLfguYjguK0KK+C4iuC4seC4geC4q+C4meC5ieC4sgor4LiK4Lix4LiB4Lir4LiZ4LmJ4Liy4LmE4Lih4LmI4LiW4Li24LiH4Lir4Lil4Lix4LiHCivguIrguLHguIQtCivguIrguLHguIcKK+C4iuC4seC5iOC4hwor4LiK4Lix4LiH4LiE4LiyCivguIrguLHguIfguIYtCivguIrguLHguIfguIbguKfguLTguKvguLLguKMKK+C4iuC4seC5iOC4h+C5g+C4iAor4LiK4Lix4LmI4LiH4Lir4Lil4Lin4LiHCivguIrguLHguIrguKfguLLguKUKK+C4iuC4seC4jwor4LiK4Lix4LiUCivguIrguLHguJTguYDguIjguJkKK+C4iuC4seC4lOC4iuC5ieC4sgor4LiK4Lix4LiZCivguIrguLHguYnguJkKK+C4iuC4seC4meC4geC4suC4lAor4LiK4Lix4LiZ4LiE4LitCivguIrguLHguYnguJnguInguLLguKIKK+C4iuC4seC5ieC4meC4iuC4seC5iOC4pwor4LiK4Lix4LiZ4LiK4Li1CivguIrguLHguYnguJnguYDguIrguLTguIcKK+C4iuC4seC4meC4leC4suC4huC4owor4LiK4Lix4LiZ4LiV4Li4CivguIrguLHguJnguJnguLDguJXguLgKK+C4iuC4seC4meC4meC4uAor4LiK4Lix4LiZ4LiZ4Li44LiB4LiwCivguIrguLHguJnguJ7guK3guJkKK+C4iuC4seC4meC5guC4o+C4hwor4LiK4Lix4LiZ4Lip4LiyCivguIrguLHguJnguKrguJkKK+C4iuC4seC4meC4quC4ueC4leC4owor4LiK4Lix4LiZ4Liq4Li54LiV4Lij4Lie4Lil4Li04LiB4Lio4LieCivguIrguLHguJvguJkKK+C4iuC4seC4ngor4LiK4Lix4Lih4Lie4Li54LiZ4LiXCivguIrguLHguKIKK+C4iuC4seC4oi0KK+C4iuC4seC4ouC4muC4suC4mQor4LiK4Lix4Lii4Lie4Lik4LiB4Lip4LmMCivguIrguLHguKLguKDguLnguKHguLQKK+C4iuC4seC4ouC5gOC4oOC4o+C4tQor4LiK4Lix4Lii4Lio4Lij4Li1CivguIrguLHguKXguKXguLjguIHguLIKK+C4iuC4seC5iOC4pwor4LiK4Lix4LmJ4LinCivguIrguLHguYjguKfguITguJkKK+C4iuC4seC5iOC4p+C4hOC4o+C4suC4pwor4LiK4Lix4Lin4LiK4LihCivguIrguLHguYjguKfguIrguYnguLIKK+C4iuC4seC5iOC4p+C4iuC5iOC4suC4h+C4iuC4tSDguJTguLXguIrguYjguLLguIfguKrguIfguIbguYwKK+C4iuC4seC5iOC4p+C5geC4leC5iOC4p+C5iOC4sgor4LiK4Lix4LmI4Lin4LiZ4Liy4LiV4Liy4Lib4Li1CivguIrguLHguYjguKfguYLguKHguIcKK+C4iuC4seC5iOC4p+C5geC4peC5iOC4mQor4LiK4LiyCivguIrguYnguLIKK+C4iuC5ieC4suC4geC5iOC4reC4mQor4LiK4Liy4LiE4LijCivguIrguLLguITguKPguLTguJUKK+C4iuC4suC4hOC4o+C4tOC4ouC4suC4meC4uOC5guC4ouC4hAor4LiK4LmI4Liy4LiHCivguIrguYnguLLguIcKK+C4iuC5iOC4suC4h+C4geC4o+C4sOC5hOC4owor4LiK4LmI4Liy4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguIrguYnguLLguIfguIfguKfguIcKK+C4iuC5ieC4suC4h+C4iuC4s+C4meC4tAor4LiK4LmJ4Liy4LiH4LiK4Li54LiH4Lin4LiHCivguIrguYnguLLguIfguJXguYjguK0KK+C4iuC5ieC4suC4h+C4leC4suC4ouC4l+C4seC5ieC4h+C4leC4seC4p+C5gOC4reC4suC5g+C4muC4muC4seC4p+C4oeC4suC4m+C4tOC4lAor4LiK4LmI4Liy4LiH4LiX4Lit4LiHCivguIrguYnguLLguIfguJfguLPguKXguLLguKLguYLguKPguIcKK+C4iuC5ieC4suC4h+C4meC5ieC4reC4ogor4LiK4LmJ4Liy4LiH4LiZ4LmJ4Liy4LinCivguIrguYnguLLguIfguJnguYnguLMKK+C4iuC5ieC4suC4h+C4m+C4o+C4sOC4quC4suC4meC4h+C4sgor4LiK4LmI4Liy4LiH4Lib4Liw4LmE4LijCivguIrguYnguLLguIfguJzguLDguIrguJQKK+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiK4LmJ4Liy4LiH4Lie4Lil4Liy4LiiCivguIrguYnguLLguIfguJ7guLHguIcKK+C4iuC5iOC4suC4h+C4n+C4tOC4lQor4LiK4LmI4Liy4LiH4LmE4LifCivguIrguYnguLLguIfguKPguYnguK3guIcKK+C4iuC5ieC4suC4h+C4quC4sOC4muC4seC4lOC4q+C4jeC5ieC4sgor4LiK4LmJ4Liy4LiH4LmA4Lir4Lii4Li14Lii4LiaCivguIrguYjguLLguIfguYDguKvguKXguYfguIEKK+C4iuC5ieC4suC4h+C5g+C4q+C4jeC5iAor4LiK4LmJ4Liy4LiK4LmI4Lit4LiZCivguIrguLLguI0KK+C4iuC4suC4lAor4LiK4Liy4LiU4LiBCivguIrguLLguJTguKvguKPguITguLjguJMKK+C4iuC5ieC4suC5hiDguYTguJTguYnguJ7guKPguYnguLLguKrguK3guIfguYDguKXguYjguKHguIfguLLguKEKK+C4iuC4suC4lS0KK+C4iuC4suC4leC4muC4uOC4qeC4ouC5jAor4LiK4Liy4LiV4Lij4Li1CivguIrguLLguJXguKPguLnguJsKK+C4iuC4suC4leC4quC4o+C4sAor4LiK4Liy4LiV4LiwCivguIrguLLguJXguLIKK+C4iuC4suC4leC4tAor4LiK4Liy4LiV4Li0LQor4LiK4Liy4LiV4Li04LiY4Lij4Lij4LihCivguIrguLLguJXguLTguJnguLTguKLguKEKK+C4iuC4suC4leC4tOC4nuC4seC4meC4mOC4uOC5jAor4LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4Lin4Lij4Lij4LiT4LiZ4LiyCivguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYzguKfguLTguJfguKLguLIKK+C4iuC4suC4leC4tOC4oOC4ueC4oeC4tAor4LiK4Liy4LiV4Li04Lih4Liy4Lil4LiyCivguIrguLLguJXguLTguKPguKoKK+C4iuC4suC4mQor4LiK4Liy4LiZ4LiK4Liy4Lil4LiyCivguIrguLLguJnguKfguLLguJfguLTguIEKK+C4iuC5ieC4suC4meC4suC4h+C4meC4reC4mQor4LiK4LmJ4Liy4LiZ4Liy4LiZCivguIrguLLguJnguLgKK+C4iuC4suC4meC4uOC4geC4sAor4LiK4Liy4LiZ4Li44Lih4LiT4LiR4LilCivguIrguYnguLLguJvguLXguYgKK+C4iuC4suC4m+C4teC5hOC4q+C4mQor4LiK4LmJ4Liy4LmA4Lib4LmH4LiZ4LiB4Liy4LijIOC4meC4suC4meC5gOC4m+C5h+C4meC4hOC4uOC4kwor4LiK4LmJ4Liy4LmB4Lib4LmJ4LiZCivguIrguYnguLLguJ7guKXguLkKK+C4iuC4suC4oQor4LiK4Liy4Lih4Lie4Li54LiZ4LiXCivguIrguLLguKHguLLguJTguKMKK+C4iuC4suC4oeC4suC4lOC4sgor4LiK4Liy4Lih4Liy4LiV4Li4CivguIrguLLguKIKK+C4iuC4suC4ouC4geC4o+C4sOC5gOC4muC4mQor4LiK4Liy4Lii4LiB4Lij4Liw4LmA4Lia4LiZ4LmA4Lir4LiZ4LmH4LiaCivguIrguLLguKLguITguLIKK+C4iuC4suC4ouC5geC4hOC4o+C4hwor4LiK4Liy4Lii4LiK4Liy4LiV4Lij4Li1CivguIrguLLguKLguJXguLIKK+C4iuC4suC4ouC4l+C4sOC5gOC4pQor4LiK4Liy4Lii4LiY4LiHCivguIrguLLguKLguJzguYnguLLguKrguLXguJTguLIKK+C4iuC4suC4ouC4neC4seC5iOC4hwor4LiK4Liy4Lii4LmA4Lif4Li34Lit4LiiCivguIrguLLguKLguKrguLLguKHguYLguJrguKrguJbguYwKK+C4iuC4suC4ouC5hOC4q+C4pwor4LiK4Liy4Lii4LiyCivguIrguLLguKLguLLguIrguLXguJ4KK+C4iuC4suC4ouC4suC4meC4uOC4iuC4teC4ngor4LiK4Liy4LmA4Lii4LiZ4LiX4Lij4LmMCivguIrguLLguYDguKLguKgKK+C4iuC4suC4owor4LiK4Liy4Lij4Li1CivguIrguLLguKUKK+C4iuC4suC4pS0KK+C4iuC4suC4peC4geC4o+C4o+C4oQor4LiK4Liy4Lil4LiyCivguIrguLLguKXguLTguJnguLUKK+C4iuC5ieC4suC4peC4ueC4geC4q+C4peC4p+C4hwor4LiK4LmJ4Liy4LmA4Lil4Li34Lit4LiUCivguIrguLLguKcKK+C4iuC4suC4p+C4meC4reC4gQor4LiK4Liy4Lin4LiZ4LmJ4LizCivguIrguLLguKfguKHguYjguLLguJkKK+C4iuC4suC4p+C5gOC4pQor4LiK4Liy4Lin4Lin4Lix4LiHCivguIrguLLguKfguLUKK+C4iuC5ieC4suC4q+C4oeC4reC4hwor4LiK4LizCivguIrguYjguLMKK+C4iuC5ieC4swor4LiK4Liz4LiH4Lix4LiUCivguIrguLPguIfguLLguKIKK+C4iuC4s+C4h+C4t+C4rQor4LiK4LmI4Liz4LmD4LiICivguIrguYnguLPguYPguIgKK+C4iuC5ieC4s+C4iuC4reC4gQor4LiK4LmI4Liz4LiK4Lit4LiHCivguIrguYjguLPguIrguYjguLIKK+C4iuC4s+C4meC4mQor4LiK4Liz4LiZ4Lij4LijCivguIrguLPguJnguLAKK+C4iuC4s+C4meC4seC4jQor4LiK4Liz4LiZ4Lix4LiN4Lie4Li04LmA4Lio4LipCivguIrguLPguJnguLHguJkKK+C4iuC4s+C4meC4suC4jQor4LiK4Liz4LiZ4Liy4LiN4LmA4LiB4Lil4Liy4LiB4Lil4Lit4LiZCivguIrguLPguJnguLQKK+C4iuC4s+C4meC4tOC4iuC4s+C4meC4suC4jQor4LiK4Liz4LmA4LiZ4Li14Lii4LiZCivguIrguLPguYDguJnguLXguKLguKMKK+C4iuC5iOC4s+C4m+C4reC4lAor4LiK4Liz4Lih4Liw4LiZ4Liy4LiUCivguIrguLPguKHguLDguYDguKXguLXguKLguIcKK+C4iuC4s+C4o+C5iOC4p+C4ogor4LiK4Liz4Lij4LiwCivguIrguYnguLPguKPguLHguYjguKcKK+C4iuC4s+C4o+C4uOC4lAor4LiK4Liz4LmA4Lij4LiyCivguIrguLPguYDguKPguLLguLAKK+C4iuC4s+C5geC4o+C4gQor4LiK4Liz4LmB4Lij4LiwCivguIrguLPguKXguLIKK+C4iuC4s+C5gOC4peC4t+C4reC4hwor4LiK4LmJ4Liz4LmA4Lil4Li34Lit4LiU4LiK4LmJ4Liz4Lir4LiZ4Lit4LiHCivguIrguLPguYHguKvguKXguLAKK+C4iuC4tAor4LiK4Li04LiHCivguIrguLTguYjguIcKK+C4iuC4tOC4h+C4hOC4oQor4LiK4Li04LiH4LiK4LmI4Lin4LiHCivguIrguLTguIfguIrguLHguIcKK+C4iuC4tOC4h+C4iuC4seC4mQor4LiK4Li04LiH4LiK4Lix4LiiCivguIrguLTguIfguIrguYnguLIKK+C4iuC4tOC4h+C4iuC5ieC4suC4iuC4suC4peC4tQor4LiK4Li04LiH4LiK4LmJ4Liy4Liq4Lin4Lij4Lij4LiE4LmMCivguIrguLTguIfguIrguLXguYgKK+C4iuC4tOC4h+C5gOC4iuC4tOC4hwor4LiK4Li04LiH4LiU4Lin4LiHCivguIrguLTguIfguJTguLXguIrguLTguIfguYDguJTguYjguJkKK+C4iuC4tOC4h+C4l+C4o+C4seC4nuC4ouC5jAor4LiK4Li04LiH4LmA4Lib4Lij4LiVCivguIrguLTguIfguJ7guKXguJoKK+C4iuC4tOC4h+C4quC4uOC4geC4geC5iOC4reC4meC4q+C5iOC4suC4oQor4LiK4Li04LiH4LmE4Lir4Lin4LiK4Li04LiH4Lie4Lij4Li04LiaCivguIrguLTguIfguK7guLfguYnguK0KK+C4iuC4tOC4iuC4sAor4LiK4Li04LiK4Li0CivguIrguLTguJPguJPguLAKK+C4iuC4tOC4lAor4LiK4Li04LmA4LiU4LiZ4LiX4Lij4Li14Lii4LmMCivguIrguLTguJUKK+C4iuC4tOC4lS0KK+C4iuC4tOC4leC4tOC4meC4l+C4o+C4teC4ouC5jAor4LiK4Li04LiZCivguIrguLTguYjguJkKK+C4iuC4tOC5ieC4mQor4LiK4Li04LiZ4LmC4LiVCivguIrguLTguJnguJrguLjguJXguKMKK+C4iuC4tOC5ieC4meC5gOC4reC4gQor4LiK4Li04LmC4LiZ4Lij4LiqCivguIrguLTguKEKK+C4iuC4tOC4oeC5geC4m+C4meC4i+C4tQor4LiK4Li04Lih4Lil4Liy4LiHCivguIrguLTguKLguLIKK+C4iuC4tOC4o+C4ky0KK+C4iuC4tOC4o+C4k+C4sAor4LiK4Li04Lij4LiT4Lix4LiE4LiE4Li0CivguIrguLTguKPguLAKK+C4iuC4tOC4p+C4q+C4sgor4LiK4Li04Lin4Lir4Liy4Liq4LiU4Lih4Lig4LmMCivguIrguLTguKrguLIKK+C4iuC4tQor4LiK4Li14LmICivguIrguLXguYkKK+C4iuC4teC5ieC4guC4suC4lAor4LiK4Li14LmJ4LmB4LiI4LiHCivguIrguLXguYnguIrguYjguK3guIcKK+C4iuC4teC4leC5ieC4mQor4LiK4Li14LmJ4LiV4Lix4LinCivguIrguLXguYnguJnguIHguJrguJnguJvguKXguLLguKLguYTguKHguYkKK+C4iuC4teC5ieC4meC4geC5gOC4m+C5h+C4meC4meC4gSDguIrguLXguYnguYTguKHguYnguYDguJvguYfguJnguYTguKHguYkKK+C4iuC4teC5ieC4meC4swor4LiK4Li14LmJ4LiZ4Li04LmJ4LinCivguIrguLXguYnguYHguJnguLAKK+C4iuC4teC4m+C4sOC4guC4suC4pwor4LiK4Li14LmA4Lib4Lil4Li34Lit4LiiCivguIrguLXguJzguLDguILguLLguKcKK+C4iuC4teC4nOC5ieC4suC4guC4suC4pwor4LiK4Li14Lid4Lij4Lix4LmI4LiHCivguIrguLXguJ4KK+C4iuC4teC4ni0KK+C4iuC4teC4nuC4iOC4owor4LiK4Li14Lie4Li04LiVCivguIrguLXguJ7guLTguJXguLHguIHguKnguLHguKIKK+C4iuC4teC4nuC4uOC4gQor4LiK4Li14Lif4Lit4LiHCivguIrguLXguYnguJ/guYnguLIKK+C4iuC4teC4oeC4t+C4lAor4LiK4Li14Lij4LiTLQor4LiK4Li14Lij4LiT4Lix4LiE4LiE4Li0CivguIrguLXguKPguLAKK+C4iuC4teC4peC5ieC4reC4oQor4LiK4Li14Lil4LiyCivguIrguLXguKXguLLguKcKK+C4iuC4teC4py0KK+C4iuC4teC4p+C5gOC4hOC4oeC4tQor4LiK4Li14Lin4LiH4LiE4LiVCivguIrguLXguKfguJvguKPguLDguKfguLHguJXguLQKK+C4iuC4teC4p+C5guC4peC4gQor4LiK4Li14Lin4Lin4Li04LiX4Lii4LiyCivguIrguLXguKfguLAKK+C4iuC4teC4p+C4seC4mQor4LiK4Li14Lin4Lix4LiZ4LiV4Lij4Liy4LiiCivguIrguLXguKfguLIKK+C4iuC4teC4p+C4suC4leC4oeC5jAor4LiK4Li14Lin4Liy4Lil4Lix4LiiCivguIrguLXguKfguLTguJUKK+C4iuC4teC4p+C4tOC4leC4iuC4teC4p+C4sgor4LiK4Li14Lin4Li04LiV4Lix4LiB4Lip4Lix4LiiCivguIrguLXguKfguLTguJXguLTguJnguJfguKPguLXguKLguYwKK+C4iuC4teC4p+C4tOC4mQor4LiK4Li14Lin4Li1CivguIrguLXguYnguKrguK3guIfguKrguJbguLLguJkKK+C4iuC4t+C4lAor4LiK4Li34LmI4LiZCivguIrguLfguYnguJkKK+C4iuC4t+C5iOC4meC4iuC4oQor4LiK4Li34LmI4LiZ4LiK4Lih4Lii4Li04LiZ4LiU4Li1CivguIrguLfguYjguJnguJrguLLguJkKK+C4iuC4t+C5iOC4meC4oeC4t+C5iOC4mQor4LiK4Li34LmI4LitCivguIrguLfguYnguK0KK+C4iuC4t+C5iOC4reC4leC4seC4pwor4LiK4Li34LmI4Lit4Lii4LmI4LitCivguIrguLfguYjguK3guYDguKXguYjguJkKK+C4iuC4t+C5iOC4reC4p+C5iOC4sgor4LiK4Li34LmI4Lit4Liq4LiB4Li44LilCivguIrguLfguYjguK3guYDguKrguLXguKLguIcKK+C4iuC4uAor4LiK4Li44LiBCivguIrguLjguIHguIrguLUKK+C4iuC4uOC4geC4iuC4uOC4oQor4LiK4Li44LmI4LiHCivguIrguLjguYnguIcKK+C4iuC4uOC4k+C4qy0KK+C4iuC4uOC4k+C4q+C4m+C4seC4geC4qeC5jAor4LiK4Li44LiUCivguIrguLjguJXguLQKK+C4iuC4uOC4leC4tOC4oeC4sgor4LiK4Li44LiZCivguIrguLjguJoKK+C4iuC4uOC4muC4iuC4teC4p+C4tOC4lQor4LiK4Li44Lia4LiK4Li5CivguIrguLjguJrguJXguLHguKcKK+C4iuC4uOC4muC4oeC4t+C4reC5gOC4m+C4tOC4mgor4LiK4Li44Lia4Lii4LmJ4Lit4LihCivguIrguLjguJrguYDguKXguLXguYnguKLguIcKK+C4iuC4uOC4muC4quC4o+C4hwor4LiK4Li44Lia4Lit4Liy4LiaCivguIrguLjguKEKK+C4iuC4uOC5iOC4oQor4LiK4Li44LmI4Lih4LmD4LiICivguIrguLjguKHguIrguJkKK+C4iuC4uOC5iOC4oeC4iuC4t+C5iOC4mQor4LiK4Li44LmI4Lih4LiK4Li34LmJ4LiZCivguIrguLjguKHguJfguLLguIfguKPguJbguYTguJ8KK+C4iuC4uOC4oeC4meC4uOC4oQor4LiK4Li44Lih4LiZ4Li44Lih4LiK4LiZCivguIrguLjguKHguJ7guKMKK+C4iuC4uOC4oeC4nuC4sgor4LiK4Li44Lih4LmA4Lie4LmH4LiUCivguIrguLjguKHguYHguJ7guKPguIEKK+C4iuC4uOC4oeC4o+C4uOC4oQor4LiK4Li44Lih4Liq4Liy4LiiCivguIrguLjguKHguKrguLLguKLguYLguJfguKPguKjguLHguJ7guJfguYwKK+C4iuC4uOC4oeC5geC4quC4hwor4LiK4Li44Lih4LmA4Lir4LmH4LiUCivguIrguLjguYjguKIKK+C4iuC4uOC5iOC4ouC5hgor4LiK4Li44Lil4Lih4Li44LiZCivguIrguLjguKXguLUKK+C4iuC4uOC4qeC4ky0KK+C4iuC4uOC4qeC4k+C4m+C4seC4geC4qeC5jAor4LiK4Li44Lip4LiT4LiwCivguIrguLkKK+C4iuC4ueC5iQor4LiK4Li54LiB4Lil4Li04LmI4LiZCivguIrguLnguITguK0KK+C4iuC4ueC5g+C4iAor4LiK4Li54LiK4Li14LieCivguIrguLnguKPguKoKK+C4iuC4ueC5guC4o+C4hwor4LiK4Li54LmJ4Liq4Liy4LinCivguIrguLnguKvguJnguYnguLLguIrguLnguJXguLIKK+C4iuC4ueC5ieC5gOC4q+C4meC4t+C4reC4guC4seC4meC4q+C4oeC4suC4gQor4LiK4Li54LmJ4LmA4Lir4LiZ4Li34Lit4Lic4Lix4LinCivguIrguLnguYnguYDguKvguJnguLfguK3guJzguLUKK+C5gOC4iuC5h+C4hAor4LmA4LiK4LmH4LiE4LiC4Li14LiU4LiE4Lij4LmI4Lit4LihCivguYDguIrguYfguITguYTguJvguKPguKnguJPguLXguKLguYwKK+C5gOC4iuC5ieC4hwor4LmA4LiK4LiH4LmA4Lil4LiHCivguYDguIrguYnguIfguKfguLHguJoKK+C5gOC4iuC5h+C4lAor4LmA4LiK4LmH4LiU4LiZ4LmJ4LizCivguYDguIrguYfguJTguKvguJnguYnguLIKK+C5gOC4iuC5h+C4lOC4q+C4oeC5ieC4rQor4LmA4LiK4LiZCivguYDguIrguYjguJkKK+C5gOC4iuC4ogor4LmA4LiK4Lii4LiK4LihCivguYDguIrguKPguLIKK+C5gOC4iuC4o+C4suC4sAor4LmA4LiK4Lij4Li04LiUCivguYDguIrguKXguIcKK+C5gOC4iuC4peC4ogor4LmA4LiK4Lil4Lii4Lio4Lix4LiB4LiU4Li04LmMCivguYDguIrguKXguKLguKjguLbguIEKK+C5gOC4iuC4peC5geC4peC5h+C4gQor4LmA4LiK4Lil4Li14Lii4LiHCivguYDguIrguKfguIcKK+C5gOC4iuC4qeC4kC0KK+C5gOC4iuC4qeC4kOC4sAor4LmA4LiK4Lip4LiQ4LiyCivguYDguIrguK0KK+C5gOC4iuC5iOC4sgor4LmA4LiK4LmJ4LiyCivguYDguIrguYjguLLguIrguYjguKfguIcKK+C5gOC4iuC5iOC4suC4i+C4t+C5ieC4rQor4LmA4LiK4LmJ4Liy4LiV4Lij4Li54LmICivguYDguIrguYjguLLguJbguLfguK3guKrguKfguJkKK+C5gOC4iuC5iOC4suC4l+C4o+C4seC4nuC4ouC5jAor4LmA4LiK4LmI4Liy4Lie4Lij4LiwCivguYDguIrguYnguLLguKHguLfguJQKK+C5gOC4iuC4suC4p+C5jAor4LmA4LiK4Liy4Lin4LiZ4LmMCivguYDguIrguLTguIcKK+C5gOC4iuC4tOC4h+C4geC4o+C4p+C4ogor4LmA4LiK4Li04LiH4LiB4Lij4Liy4LiZCivguYDguIrguLTguIfguIHguKUKK+C5gOC4iuC4tOC4h+C4geC4peC4reC4mQor4LmA4LiK4Li04LiH4LiK4Lix4LmJ4LiZCivguYDguIrguLTguIfguIrguLLguKIKK+C5gOC4iuC4tOC4h+C4i+C5ieC4reC4mQor4LmA4LiK4Li04LiH4LmA4LiU4Li04LiZCivguYDguIrguLTguIfguYDguJTguLXguKLguKcKK+C5gOC4iuC4tOC4h+C5gOC4lOC4teC5iOC4ouC4pwor4LmA4LiK4Li04LiH4LiV4Liw4LiB4Lit4LiZCivguYDguIrguLTguIfguJfguKPguIcKK+C5gOC4iuC4tOC4h+C5gOC4l+C4tOC4mQor4LmA4LiK4Li04LiH4Lih4Li44LihCivguYDguIrguLTguIfguYDguKfguLXguKLguJkKK+C5gOC4iuC4tOC4h+C4reC4o+C4o+C4lgor4LmA4LiK4Li04LiNCivguYDguIrguLTguJQKK+C5gOC4iuC4tOC4lOC4iOC4teC4mQor4LmA4LiK4Li04LiU4LiJ4Li04LmI4LiHCivguYDguIrguLTguJTguIrguLkKK+C5gOC4iuC4tOC4lOC4q+C4meC4seC4hwor4LmA4LiK4Li04LiU4Lir4LiZ4LmJ4Liy4LiK4Li54LiV4LiyCivguYDguIrguLTguJTguKvguLjguYjguJkKK+C5gOC4iuC4tOC5ieC4lQor4LmA4LiK4Li14LiiCivguYDguIrguLXguYnguKIKK+C5gOC4iuC4teC4ouC4hwor4LmA4LiK4Li14LmI4Lii4LiZCivguYDguIrguLXguYjguKLguJnguKvguKHguLLguIEKK+C5gOC4iuC4teC4ouC4mgor4LmA4LiK4Li14LmI4Lii4LihCivguYDguIrguLXguKLguKMKK+C5gOC4iuC4teC4ouC4o+C5jAor4LmA4LiK4Li14Lii4Lij4LiT4LmMCivguYDguIrguLXguKLguKcKK+C5gOC4iuC4teC5iOC4ouC4pwor4LmA4LiK4Li14LmI4Lii4Lin4LiK4Liy4LiNCivguYDguIrguLfguYjguK0KK+C5gOC4iuC4t+C5ieC4rQor4LmA4LiK4Li34Lit4LiBCivguYDguIrguLfguK3guIHguYDguILguLIKK+C5gOC4iuC4t+C4reC4geC4muC4suC4qAor4LmA4LiK4Li34LmI4Lit4LiHCivguYDguIrguLfguYjguK3guIfguIrguYnguLIKK+C5gOC4iuC4t+C5iOC4reC5g+C4iAor4LmA4LiK4Li34LmJ4Lit4LiK4Liy4LiV4Li0CivguYDguIrguLfguYnguK3guYDguIrguLTguI0KK+C5gOC4iuC4t+C4reC4lAor4LmA4LiK4Li34LmI4Lit4LiW4Li34LitCivguYDguIrguLfguK3guJkKK+C5gOC4iuC4t+C4reC4meC5geC4igor4LmA4LiK4Li34LmJ4Lit4LmA4Lie4Lil4Li04LiHCivguYDguIrguLfguYjguK3guJ/guLHguIcKK+C5gOC4iuC4t+C5ieC4reC5hOC4nwor4LmA4LiK4Li34LmI4Lit4LihCivguYDguIrguLfguYjguK3guKHguLfguK0KK+C5gOC4iuC4t+C5ieC4reC5hOC4oeC5iOC4l+C4tOC5ieC4h+C5geC4luC4pwor4LmA4LiK4Li34LmJ4Lit4Lij4LiyCivguYDguIrguLfguYnguK3guYLguKPguIQKK+C5gOC4iuC4t+C5iOC4reC4p+C4seC4mQor4LmA4LiK4Li34LmJ4Lit4Liq4Liy4LiiCivguYDguIrguLfguYnguK3guKvguKHguLHguIEKK+C5geC4igor4LmB4LiK4LmICivguYHguIrguYjguIcKK+C5geC4iuC5iOC4h+C4iuC4seC4geC4q+C4seC4geC4geC4o+C4sOC4lOC4ueC4gQor4LmB4LiK4LmI4LiH4LiZ4LmJ4LizCivguYHguIrguIfguKHguLIKK+C5geC4iuC4muC5iuC4p+C4ogor4LmB4LiK4LmI4LmA4Lia4LmJ4LiyCivguYHguIrguYjguKEKK+C5geC4iuC5iOC4oeC4iuC5ieC4reC4ogor4LmB4LiK4LmI4Lih4LiK4Li34LmI4LiZCivguYHguIrguYjguYDguKLguYfguJkKK+C5geC4iuC4o+C5jAor4LmB4LiK4Lij4LiHCivguYHguIrguKXguYjguKEKK+C5geC4iuC5iOC4reC4tOC5iOC4oQor4LmB4LiK4LiwCivguYLguIrguIEKK+C5guC4iuC4geC5hgor4LmC4LiK4LiB4LmC4LiK4LiZCivguYLguIrguIQKK+C5guC4iuC4h+C5guC4peC4hwor4LmC4LiK4LiU4LiBCivguYLguIrguJTguLbguIEKK+C5guC4iuC4lQor4LmC4LiK4LiV4LiBCivguYLguIrguJXguLQKK+C5guC4iuC4leC4tC0KK+C5guC4iuC4leC4tOC4gS0KK+C5guC4iuC4leC4tOC4iuC5iOC4p+C4hwor4LmC4LiK4LiV4Li04Lij4LiqCivguYLguIrguJkKK+C5guC4iuC4oeC5guC4o+C4oQor4LmC4LiK4LiiCivguYLguIrguKLguIfguIHguLLguKMKK+C5guC4iuC4ouC4iuC4suC4ogor4LmC4LiK4Lii4LiV4Li04LiqCivguYLguIrguKPguKEKK+C5guC4iuC4p+C5jAor4LmC4LiK4LmC4Lir4LinCivguYPguIrguYgKK+C5g+C4iuC5iQor4LmD4LiK4LmJ4LiB4Lij4Lij4LihCivguYPguIrguYnguYTguJTguYkKK+C5g+C4iuC5ieC5gOC4meC4t+C5ieC4rQor4LmD4LiK4LmJ4Lia4LiZCivguYPguIrguYnguYPguJoKK+C5g+C4iuC5ieC5gOC4o+C4t+C4rQor4LmD4LiK4LmJ4Liq4Lit4LiiCivguYTguIoKK+C5hOC4iuC4meC4sAor4LmE4LiK4LiiCivguYTguIrguKItCivguYTguIrguKLguYDguKDguJcKK+C5hOC4iuC5guC4ogor4LiLCivguIvguIEKK+C4i+C5iOC4gQor4LiL4LiH4LiU4LizCivguIvguYjguIfguK7guLfguYnguK0KK+C4i+C4h+C5ieC4sgor4LiL4LiUCivguIvguJkKK+C4i+C5iOC4mQor4LiL4LmJ4LiZCivguIvguJoKK+C4i+C4muC5gOC4i+C4sgor4LiL4LihCivguIvguKHguIvguLLguJkKK+C4i+C4o+C4reC4geC4i+C4o+C4seC4hwor4LiL4Lin4LiUCivguIvguKfguJTguYDguIsKK+C4i+C4p+C4lOC4l+C4o+C4hwor4LiL4Lin4LiZCivguIvguKfguJnguYDguIsKK+C4i+C4p+C4ogor4LiL4LitCivguIvguK3guIEKK+C4i+C4reC4geC4i+C4reC4mQor4LiL4Lit4LiB4LiL4Lix4LiHCivguIvguK3guIHguYHguIvguIEKK+C4i+C4reC4hwor4LiL4LmI4Lit4LiHCivguIvguYjguK3guIfguYYKK+C4i+C5ieC4reC4hwor4LiL4LmI4Lit4LiH4LmB4LiL4LmI4LiHCivguIvguK3guIfguJ7guKXguLkKK+C4i+C4reC4h+C4oeC4t+C4rQor4LiL4Lit4LiH4LmB4Lih4LinCivguIvguYnguK3guIfguYHguKHguKcKK+C4i+C5iOC4reC4h+C4quC4uOC4oQor4LiL4LmI4Lit4LiH4LmA4Liq4LieCivguIvguK3guIfguKvguLLguIcKK+C4i+C4reC5geC4iwor4LiL4LmJ4Lit4LmB4LiL4LmJCivguIvguK3guJkKK+C4i+C5iOC4reC4mQor4LiL4LmJ4Lit4LiZCivguIvguYnguK3guJnguIHguKUKK+C4i+C5iOC4reC4meC4geC4peC4tOC5iOC4mQor4LiL4LmI4Lit4LiZ4LmA4LiH4Li34LmI4Lit4LiZCivguIvguYnguK3guJnguIvguLHguJoKK+C4i+C5iOC4reC4meC4l+C4o+C4suC4ogor4LiL4LmI4Lit4LiZ4Lij4Li54LibCivguIvguYjguK3guJnguKvguLIKK+C4i+C4reC4oQor4LiL4LmI4Lit4LihCivguIvguYnguK3guKEKK+C4i+C5ieC4reC4oeC4hOC5ieC4suC4hwor4LiL4Lit4Lih4LiL4LmI4LitCivguIvguYnguK3guKHguIvguLHguIEKK+C4i+C5iOC4reC4oeC5geC4i+C4oQor4LiL4LmI4Lit4Lih4LmB4Lib4Lil4LiHCivguIvguYnguK3guKHguJ7guKLguLLguJkKK+C4i+C5ieC4reC4oeC4nuC4p+C4mQor4LiL4LmJ4Lit4Lih4LmD4Lir4LiN4LmICivguIvguK3guKIKK+C4i+C4reC4ouC4nOC4oQor4LiL4Lit4LiqCivguIvguLDguIvguKPguYnguLLguKcKK+C4i+C4sOC4i+C5iOC4reC4hwor4LiL4Liw4LiL4Lit4LmA4LiL4Li14LiiCivguIvguLDguIvguLTguIHguIvguLDguYHguIsKK+C4i+C4sOC4i+C4tOC4mgor4LiL4Liw4LmA4LiL4Liy4LiwCivguIvguLDguYDguIvguLXguKLguJoKK+C4i+C4seC4gQor4LiL4Lix4LiB4LiL4LmJ4Lit4LihCivguIvguLHguIHguYTguIvguYkKK+C4i+C4seC4geC4n+C4reC4gQor4LiL4Lix4LiB4Liq4LmJ4Liy4LinCivguIvguLHguIHguYHguKvguYnguIcKK+C4i+C4seC4hwor4LiL4Lix4LmJ4LiHCivguIvguLHguIfguIHguLDguJXguLLguKIKK+C4i+C4seC4h+C5geC4i+C4pwor4LiL4Lix4LiH4LiV4Liy4LiiCivguIvguLHguJQKK+C4i+C4seC4lOC4guC5ieC4suC4p+C4quC4suC4owor4LiL4Lix4LiU4LmA4LiLCivguIvguLHguJTguJfguK3guJQKK+C4i+C4seC4lOC4meC5ieC4swor4LiL4Lix4LiU4Lii4LiyCivguIvguLHguYnguJkKK+C4i+C4seC4mgor4LiL4Lix4Lia4LiC4LiZ4Li44LiZCivguIvguLHguJrguIvguYnguK3guJkKK+C4i+C4seC4muC4i+C4suC4mgor4LiL4Lix4Lia4LiL4Li14LmICivguIvguLHguJrguYPguJkKK+C4i+C4seC4muC4nuC4o+C4sOC4nuC4seC4geC4leC4o+C5jAor4LiL4Lix4Lia4Lih4Lix4LiZCivguIvguLHguKEKK+C4i+C4seC4peC4n+C4sgor4LiL4Lix4LmJ4LinCivguIvguLIKK+C4i+C5iOC4sgor4LiL4Liy4LiBCivguIvguLLguIHguJTguLbguIHguJTguLPguJrguKPguKPguJ7guYwKK+C4i+C4suC4geC4qOC4ngor4LiL4Liy4LiHCivguIvguYjguLLguIcKK+C4i+C4suC4lAor4LiL4Liy4LiZCivguIvguYjguLLguJkKK+C4i+C5iOC4suC4meC5gOC4i+C5h+C4mQor4LiL4Liy4Lia4LiL4LmI4Liy4LiZCivguIvguLLguJrguIvguLbguYnguIcKK+C4i+C5iOC4suC5guC4muC4sAor4LiL4Liy4LmB4Lih4LmA4Lij4Li14Lii4LihCivguIvguYnguLLguKIKK+C4i+C4suC4peC4suC5gOC4m+C4sgor4LiL4Liy4LinCivguIvguLLguKfguJnguYnguLMKK+C4i+C4suC4p+C5gOC4quC4teC4ouC4hwor4LiL4LmI4Liy4Lir4Lij4Li04LmI4LihCivguIvguYnguLMKK+C4i+C5ieC4s+C4i+C5ieC4reC4mQor4LiL4LmJ4Liz4LiL4Liy4LiBCivguIvguYnguLPguYDguJXguLTguKEKK+C4i+C5ieC4s+C4o+C5ieC4suC4ogor4LiL4LmJ4Liz4Liq4Liy4LihCivguIvguLQKK+C4i+C4tOC4gQor4LiL4Li04LiB4LmGCivguIvguLTguIHguIvguLXguYkKK+C4i+C4tOC4geC5geC4i+C5h+C4gQor4LiL4Li04LiB4Liy4Lij4LmMCivguIvguLTguIfguYLguITguJnguLIKK+C4i+C4tOC5iOC4mQor4LiL4Li04LiZ4LiZ4Liy4Lih4Li04LiBCivguIvguLTguJnguYHguKoKK+C4i+C4tOC4mgor4LiL4Li04Lia4LmGCivguIvguLTguJrguIvguLHguJoKK+C4i+C4tOC4mwor4LiL4Li04Lif4Li04Lil4Li04LiqCivguIvguLTguKXguLTguITguK3guJkKK+C4i+C4tOC4pwor4LiL4Li1CivguIvguLXguYgKK+C4i+C4teC4gQor4LiL4Li14LmI4LmC4LiE4Lij4LiHCivguIvguLXguYnguIvguK3guJkKK+C4i+C4teC5gOC4i+C4teC4ouC4oQor4LiL4Li14LiUCivguIvguLXguJTguYDguIvguLXguKLguKcKK+C4i+C4teC4meC4reC4mQor4LiL4Li14Lib4LmI4Liy4LiiCivguIvguLXguYDguKHguJnguJXguYwKK+C4i+C4teC5gOC4o+C4teC4ouC4oQor4LiL4Li14Lil4Li14LmA4LiZ4Li14Lii4LihCivguIvguLbguIEKK+C4i+C4tuC4hwor4LiL4Li24LmI4LiHCivguIvguLbguYnguIcKK+C4i+C4tuC5iOC4h+C4q+C4meC5ieC4sgor4LiL4Li24LihCivguIvguLbguKHguIHguLDguJfguLfguK0KK+C4i+C4tuC4oeC4i+C4suC4mgor4LiL4Li24Lih4LiX4Lij4Liy4LiaCivguIvguLfguYjguK0KK+C4i+C4t+C5iOC4reC5hgor4LiL4Li34LmJ4LitCivguIvguLfguYnguK3guILguLLguKIKK+C4i+C4t+C5ieC4reC4hOC4p+C4suC4ouC4q+C4meC5ieC4suC4meC4siDguIvguLfguYnguK3guJzguYnguLLguKvguJnguYnguLLguJXguKPguLjguKkKK+C4i+C4t+C5ieC4reC4h+C4seC4p+C4q+C4meC5ieC4suC4meC4siDguIvguLfguYnguK3guJzguYnguLLguKvguJnguYnguLLguKvguJnguLLguKcKK+C4i+C4t+C5iOC4reC4leC4o+C4hwor4LiL4Li34LmJ4Lit4Lij4Liz4LiE4Liy4LiNCivguIvguLfguYnguK3guKPguLnguYkKK+C4i+C4t+C5iOC4reC4quC4seC4leC4ouC5jAor4LiL4Li34LmJ4Lit4Lir4LiZ4LmJ4LiyCivguIvguLfguYjguK3guYDguKvguKHguLfguK3guJnguYHguKHguKfguJnguK3guJnguKvguKfguJQKK+C4i+C4uOC4gQor4LiL4Li44LiB4LiL4LiZCivguIvguLjguIHguIvguYjguK3guJkKK+C4i+C4uOC4geC4i+C4tOC4gQor4LiL4Li44LiHCivguIvguLjguJkKK+C4i+C4uOC4mgor4LiL4Li44Lia4LiL4Li04LiaCivguIvguLjguJrguIvguLnguYgKK+C4i+C4uOC4mwor4LiL4Li44LmI4LihCivguIvguLjguYnguKEKK+C4i+C4uOC5ieC4oeC4geC4o+C4sOC4leC5iOC4suC4ogor4LiL4Li44LmI4Lih4LiE4LihCivguIvguLjguYjguKHguIvguYjguLLguKEKK+C4i+C4uOC4oeC5geC4i+C4pwor4LiL4Li44LmI4Lih4LmA4Liq4Li14Lii4LiHCivguIvguLjguKIKK+C4i+C4ueC5iAor4LiL4Li54LmI4LmGCivguIvguLnguYjguIHguLHguYnguJnguKPguLHguYnguKfguYTguIvguKHguLLguJkKK+C4i+C4ueC5guC4hOC4o+C4qgor4LiL4Li54LmI4LiL4LmI4LiyCivguIvguLnguJQKK+C4i+C4ueC5ieC4lAor4LiL4Li54LiU4LiL4Liy4LiUCivguIvguLnguJoKK+C5gOC4iwor4LmA4LiL4LmH4LiBCivguYDguIvguYHguITguJnguJXguYwKK+C5gOC4i+C5h+C4hwor4LmA4LiL4LmI4LiHCivguYDguIvguYnguIcKK+C5gOC4i+C5h+C4h+C5geC4i+C5iAor4LmA4LiL4LiL4Lix4LiHCivguYDguIvguJUKK+C5gOC4i+C4mQor4LmA4LiL4LmH4LiZCivguYDguIvguYjguJkKK+C5gOC4i+C4meC4leC4tOC4geC4o+C4seC4oQor4LmA4LiL4LiZ4LiV4Li04LmA4LiB4Lij4LiUCivguYDguIvguJnguJXguLTguYDguKHguJXguKMKK+C5gOC4i+C4meC4leC4tOC4peC4tOC4leC4owor4LmA4LiL4LmI4LiZ4LmA4Lir4Lil4LmJ4LiyCivguYDguIvguJvguLHguIHguJXguLDguIHguKPguYnguK0KK+C5gOC4i+C4o+C4sgor4LmA4LiL4Lij4Liy4LiwCivguYDguIvguKPguLjguYjguKEKK+C5gOC4i+C4peC5gOC4i+C4teC4ouC4qgor4LmA4LiL4Lil4Lil4LmMCivguYDguIvguKXguKXguYzguJfguLjguJXguLTguKLguKDguLnguKHguLQKK+C5gOC4i+C4peC4peC5jOC4m+C4kOC4oeC4oOC4ueC4oeC4tAor4LmA4LiL4Lil4Lil4Li54Lil4Lit4Lii4LiU4LmMCivguYDguIvguKXguKXguLnguYLguKXguKoKK+C5gOC4i+C5iOC4rQor4LmA4LiL4LmI4Lit4LiL4LmI4LiyCivguYDguIvguK3guKPguYzguYLguITguYDguJnguLXguKLguKEKK+C5gOC4i+C4reC4sAor4LmA4LiL4LiyCivguYDguIvguYnguLLguIvguLXguYkKK+C5gOC4i+C4suC4sAor4LmA4LiL4Liy4Liw4Lil4Liy4LiiCivguYDguIvguLTguIcKK+C5gOC4i+C4tOC5ieC4hwor4LmA4LiL4Li14Lii4LiZCivguYDguIvguLXguKLguJoKK+C5gOC4i+C4teC4ouC4oeC4i+C4tQor4LmA4LiL4Li14Lii4LinCivguYDguIvguLXguYjguKLguKcKK+C5gOC4i+C4teC5iOC4ouC4p+C4geC4suC4hwor4LmA4LiL4Li34LmI4Lit4LiHCivguYHguIsKK+C5geC4i+C5iAor4LmB4LiL4LmH4LiB4LiE4Liy4Lij4Li04LiZCivguYHguIvguYfguIHguITguLLguKPguLTguJnguYLguIvguYDguJTguLXguKLguKEKK+C5geC4i+C4hwor4LmB4LiL4LiH4LmB4LiL4LinCivguYHguIvguYjguIvguYnguK3guIcKK+C5geC4i+C4lAor4LmB4LiL4LiU4LmGCivguYHguIvguJoKK+C5geC4i+C4oQor4LmB4LiL4Lii4Li04LiUCivguYHguIvguYjguKcKK+C5geC4i+C4sAor4LmC4LiLCivguYLguIvguYgKK+C5guC4i+C4gQor4LmC4LiL4LmI4LiHCivguYLguIvguIfguYLguILguJTguIcKK+C5guC4i+C4i+C4seC4lOC5guC4i+C5gOC4iwor4LmC4LiL4LmA4LiLCivguYLguIvguJTguLIKK+C5guC4i+C4lOC4suC5geC4nOC4lOC5gOC4nOC4sgor4LmC4LiL4LiU4Liy4LmE4LifCivguYLguIvguYDguJTguLXguKLguKEKK+C5guC4i+C5gOC4lOC4teC4ouC4oeC4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LmC4LiL4LmA4LiU4Li14Lii4Lih4LiL4Lix4Lil4LmA4Lif4LiVCivguYLguIvguYDguJTguLXguKLguKHguYTguIvguITguKXguLLguYDguKHguJUKK+C5guC4i+C5gOC4lOC4teC4ouC4oeC5hOC4ruC5guC4lOC4o+C5gOC4iOC4meC4geC4peC4ueC4l+C4suC5gOC4oeC4lQor4LmC4LiL4LmA4LiU4Li14Lii4Lih4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LiE4Liy4Lij4LmM4Lia4Lit4LmA4LiZ4LiVCivguYLguIvguYDguJTguLXguKLguKHguYTguK7guYLguJTguKPguYDguIjguJnguIvguLHguKXguYDguJ/guJUKK+C5guC4i+C4oQor4LmC4LiL4Lij4LihCivguYLguIvguKPguKHguJvguKPguLDguJfguKLguJQKK+C5guC4i+C4o+C4oeC5guC4o+C4oQor4LmC4LiL4Lij4Lih4Lio4Lix4Liq4LiV4Lij4Liy4Lin4Li44LiYCivguYLguIvguKXguLIKK+C5hOC4iwor4LmE4LiL4LmJCivguYTguIvguYDguIHguLTguKUKK+C5hOC4i+C5guC4hOC4peC4mQor4LmE4LiL4LiZ4LmMCivguYTguIvguKLguLLguYTguJnguJTguYwKK+C5hOC4i+C4o+C5iQor4LmE4LiL4LmA4Lij4LiZCivguYTguIvguYLguKUKK+C4jAor4LiM4Liy4LiZCivguIzguLLguJvguJktCivguIzguLLguJvguJnguIHguLTguIgKK+C4jOC4suC4m+C4meC4quC4luC4suC4mQor4LmA4LiM4LitCivguYDguIzguK3guYDguK3guKEKK+C4jQor4LiN4LiN4LmI4Liy4LiiCivguI3guKfguJkKK+C4jeC4seC4leC4leC4tAor4LiN4Liy4LiTCivguI3guLLguJMtCivguI3guLLguJPguJfguLHguKrguJnguLAKK+C4jeC4suC4k+C4p+C4tOC4l+C4ouC4sgor4LiN4Liy4LiT4Lio4Liy4Liq4LiV4Lij4LmMCivguI3guLLguJXguLQKK+C4jeC4suC4leC4tC0KK+C4jeC4suC4leC4tOC4geC4sgor4LiN4Liy4LiV4Li04LiU4Li14LiB4Lix4LiZCivguI3guLLguJXguLTguYDguKDguJcKK+C4jeC4tOC4mgor4LiN4Li14LmICivguI3guLXguYjguJvguLjguYjguJkKK+C5gOC4jeC4ouC4mOC4o+C4o+C4oQor4LmE4LiN4Lii4LiY4Lij4Lij4LihCivguI4KK+C4juC4teC4geC4sgor4LiPCivguJAKK+C4kOC4geC4seC4lAor4LiQ4Liy4LiB4Li54LijCivguJDguLLguJkKK+C4kOC4suC4mS0KK+C4kOC4suC4meC4geC4o+C4k+C5jAor4LiQ4Liy4LiZ4LmA4LiC4Li14Lii4LiHCivguJDguLLguJnguYDguIrguLTguIfguJrguLLguJXguKMKK+C4kOC4suC4meC5gOC4l+C5ieC4suC4quC4tOC4h+C4q+C5jAor4LiQ4Liy4LiZ4Lia4Lix4LiX4Lih4LmMCivguJDguLLguJnguKPguLLguIEKK+C4kOC4suC4meC4quC4tOC4h+C4q+C5jAor4LiQ4Liy4LiZ4LiwCivguJDguLLguJnguLHguJnguJTguKMKK+C4kOC4suC4meC4suC4meC4uOC4geC4o+C4oQor4LiQ4Liy4LiZ4Liy4LiZ4Li44Lij4Li54LibCivguJDguLLguJnguLLguJnguLjguKjguLHguIHguJTguLTguYwKK+C4kOC4suC4meC4teC4ouC4sAor4LiQ4Liy4Lib4LiZLQor4LiQ4Liy4Lib4LiZ4LiyCivguJDguLLguKLguLUKK+C4kOC4tOC4lQor4LiQ4Li04LiV4Li0CivguJEKK+C4keC4seC4h+C4qi0KK+C4keC4suC4gS0KK+C4keC4suC4q+C4gQor4LiR4Liy4Lir4LiwCivguJIKK+C5gOC4kuC5iOC4sgor4LmA4LiS4LmI4Liy4LmB4LiB4LmICivguYDguJLguYjguLLguKvguLHguKfguIfguLkKK+C4kwor4LiT4Lij4LiH4LiE4LmMCivguYDguJPguKMKK+C5gOC4k+C4o+C4q+C4meC5ieC4suC5hOC4nwor4LmA4LiT4Lij4Lir4Liy4LiH4LiZ4Liy4LiECivguJQKK+C4lOC4gQor4LiU4LiB4LiU4Li34LmI4LiZCivguJTguIcKK+C4lOC5ieC4hwor4LiU4LiH4LiU4Liy4LiZCivguJTguIfguJTguLTguJoKK+C4lOC4h+C4lOC4tuC4gQor4LiU4LiH4Lin4Liy4LiiCivguJTguYnguJkKK+C4lOC5ieC4meC4lOC4seC5ieC4mQor4LiU4LiZ4LmC4LiU4LmICivguJTguJnguJXguKPguLUKK+C4lOC5ieC4meC4luC4reC4ouC4q+C4peC4seC4hwor4LiU4LiZ4LiiCivguJTguJnguLHguKIKK+C4lOC4meC4uAor4LiU4LiZ4Li44LiKCivguJTguJnguLkKK+C4lOC4muC4seC4quC4p+C4tOC4mQor4LiU4Lia4Lix4Liq4Lin4Li1CivguJTguKEKK+C4lOC4oeC5hOC4owor4LiU4LijCivguJTguKPguIfguITguYwKK+C4lOC4o+C4k+C4tQor4LiU4Lij4LiY4Liy4LiZCivguJTguKPguKPguIrguJnguLUKK+C4lOC4o+C4o+C4iuC4meC4teC4q+C4seC4geC5gOC4qwor4LiU4Lij4Liy4Lif4LiV4LmMCivguJTguKPguLgKK+C4lOC4o+C4uOC4kwor4LiU4Lij4Li44LiT4Liy4LiT4Lix4LiV4Li0CivguJTguKPguLjguJPguLUKK+C4lOC4pOC4luC4tQor4LiU4LilCivguJTguKUtCivguJTguKXguYPguIgKK+C4lOC4peC4muC4seC4meC4lOC4suC4pQor4LiU4Lil4Lig4Liy4LiECivguJTguKfguIcKK+C4lOC5ieC4p+C4hwor4LiU4Lin4LiH4LmB4LiB4LmJ4LinCivguJTguKfguIfguYPguIgKK+C4lOC4p+C4h+C5gOC4lOC4t+C4reC4meC4m+C4o+C4sOC4lOC4seC4muC4lOC4suC4pwor4LiU4Lin4LiH4LiV4LiyCivguJTguKfguIfguKrguKHguKMKK+C4lOC5ieC4p+C4h+C5guC4quC4mQor4LiU4Lin4LiICivguJTguKfguJQKK+C4lOC5iOC4p+C4mQor4LiU4LmJ4Lin4LiZCivguJTguYnguKfguKHguYDguJTguLXguYnguKLguKEKK+C4lOC5ieC4p+C4ogor4LiU4LmJ4Lin4Lii4Lin4LmI4LiyCivguJTguK3guIEKK+C4lOC4reC4geC4geC4o+C4sOC4muC4reC4gQor4LiU4Lit4LiB4LiB4Liw4LiX4Li34LitCivguJTguK3guIHguIHguYnguLLguJkKK+C4lOC4reC4geC4guC5ieC4suC4p+C5g+C4q+C4oeC5iAor4LiU4Lit4LiB4LiI4Lit4LiBCivguJTguK3guIHguIjguLHguJkKK+C4lOC4reC4geC4iOC4seC4meC4l+C4meC5jAor4LiU4Lit4LiB4LiI4Li04LiBCivguJTguK3guIHguIrguJnguJXguYnguJkKK+C4lOC4reC4geC4lOC4seC5ieC4pwor4LiU4Lit4LiB4LiU4LmJ4Liy4LiiCivguJTguK3guIHguJTguLTguJkKK+C4lOC4reC4geC4luC4p+C4suC4ouC4nuC4o+C4sAor4LiU4Lit4LiB4LiX4Lit4LiHCivguJTguK3guIHguJnguYnguLPguJzguLbguYnguIcKK+C4lOC4reC4geC4muC4seC4pwor4LiU4Lit4LiB4Lia4Li44LiBCivguJTguK3guIHguYDguJrguLXguYnguKIKK+C4lOC4reC4geC5gOC4muC4teC5ieC4ouC4l+C4muC4leC5ieC4mQor4LiU4Lit4LiB4Lie4Li04LiB4Li44Lil4Lij4LmI4Lin4LiHCivguJTguK3guIHguJ/guYnguK3guJkKK+C4lOC4reC4geC4n+C5ieC4sgor4LiU4Lit4LiB4Lih4Liw4LiC4Liy4LihCivguJTguK3guIHguKHguLDguJXguLLguJQKK+C4lOC4reC4geC5hOC4oeC5iQor4LiU4Lit4LiB4LmE4Lih4LmJ4LiI4Lix4LiZ4LiX4LiZ4LmMCivguJTguK3guIHguYTguKHguYnguIjguLXguJkKK+C4lOC4reC4geC5hOC4oeC5ieC4iOC4teC4mgor4LiU4Lit4LiB4LmE4Lih4LmJ4LmA4LiI4LmJ4LiyCivguJTguK3guIHguYTguKHguYnguJXguLLguJQKK+C4lOC4reC4geC5hOC4oeC5ieC4l+C4sOC5gOC4pQor4LiU4Lit4LiB4LmE4Lih4LmJ4LmA4LiX4Li14Lii4LiZCivguJTguK3guIHguYTguKHguYnguYTguJfguKMKK+C4lOC4reC4geC5hOC4oeC5ieC4meC5ieC4swor4LiU4Lit4LiB4LmE4Lih4LmJ4Lie4Lin4LiHCivguJTguK3guIHguYTguKHguYnguJ7guLjguYjguKEKK+C4lOC4reC4geC5hOC4oeC5ieC5gOC4nuC4peC4tOC4hwor4LiU4Lit4LiB4LmE4Lih4LmJ4LmE4LifCivguJTguK3guIHguYTguKHguYnguKPguYjguKfguIcKK+C4lOC4reC4geC5hOC4oeC5ieC4o+C4uOC5iOC4hwor4LiU4Lit4LiB4LmE4Lih4LmJ4LmE4Lir4LinCivguJTguK3guIHguKPguLHguIEKK+C4lOC4reC4geC4peC4s+C4lOC4p+C4mQor4LiU4Lit4LiB4Lil4Liz4LmC4Lie4LiHCivguJTguK3guIHguYDguKXguYfguJoKK+C4lOC4reC4geC4quC4o+C5ieC4reC4ogor4LiU4Lit4LiB4Lir4Lih4Liy4LiBCivguJTguK3guIHguKvguLTguJkKK+C4lOC4reC4geC4reC4suC4pwor4LiU4Lit4LiB4Lit4Liy4Lin4LmB4LiU4LiHCivguJTguK3guIcKK+C4lOC5iOC4reC4h+C5hgor4LiU4LmJ4Lit4LiHCivguJTguYnguK3guIfguYYKK+C4lOC4reC4h+C4ieC4suC4ogor4LiU4Lit4LiH4LiU4Li24LiHCivguJTguK3guIfguKLguLIKK+C4lOC4reC4h+C4q+C4suC4ogor4LiU4Lit4LiUCivguJTguK3guJkKK+C4lOC5iOC4reC4mQor4LiU4Lit4LihCivguJTguYjguK3guKEKK+C4lOC5ieC4reC4oQor4LiU4Lit4LiiCivguJTguYnguK3guKIKK+C4lOC4reC4peC4peC4suC4o+C5jAor4LiU4LiwCivguJTguLDguYLguJXguYrguLDguKLguLjguJXguLTguJjguKPguKPguKEKK+C4lOC4sOC4q+C4oeC4seC4hwor4LiU4Lix4LiBCivguJTguLHguIHguITguK0KK+C4lOC4seC4geC4lOC4mQor4LiU4Lix4LiB4LiU4Liy4LiZCivguJTguLHguIHguYDguJTguLXguYnguKIKK+C4lOC4seC4geC5geC4lOC5iQor4LiU4Lix4LiB4Lif4Lix4LiHCivguJTguLHguIHguKnguIEKK+C4lOC4seC4geC4qeC4kwor4LiU4Lix4LiB4Lip4LiT4Li1CivguJTguLHguIHguKnguLHguJkKK+C4lOC4seC4hwor4LiU4Lix4LmI4LiHCivguJTguLHguYnguIcKK+C4lOC4seC4h+C4iOC4o+C4tOC4hwor4LiU4Lix4LmJ4LiH4LmA4LiU4Li04LihCivguJTguLHguIfguJnguLHguYnguJkKK+C4lOC4seC4h+C4meC4teC5iQor4LiU4Lix4LiH4Lij4Li34LitCivguJTguLHguIfguKTguYUKK+C4lOC4seC4h+C4q+C4meC4tuC5iOC4hwor4LiU4Lix4LiK4LiZ4Li1CivguJTguLHguJQKK+C4lOC4seC4lOC4iOC4o+C4tOC4lQor4LiU4Lix4LiU4LiU4Lix4LmJ4LiZCivguJTguLHguJTguJXguJkKK+C4lOC4seC4lOC4m+C4peC4seC4gQor4LiU4Lix4LiU4LmB4Lib4Lil4LiHCivguJTguLHguJTguKrguLHguJnguJTguLLguJkKK+C4lOC4seC4leC4iuC5jAor4LiU4Lix4LiZCivguJTguLHguYnguJkKK+C4lOC4seC4meC4l+C4uOC4o+C4seC4hwor4LiU4Lix4LmJ4LiZ4LmA4Lih4LiGCivguJTguLHguJnguYDguKvguLTguKEKK+C4lOC4seC4mgor4LiU4Lix4Lia4LiC4Lix4LiZ4LiY4LmMCivguJTguLHguJrguYDguITguKPguLfguYjguK3guIcKK+C4lOC4seC4muC4iOC4tOC4lQor4LiU4Lix4Lia4LiK4Li14LieCivguJTguLHguJrguKXguKEKK+C4lOC4seC4oeC4nuC5jAor4LiU4Lix4LmJ4Lin4LmA4LiU4Li14LmJ4LiiCivguJTguLHguKrguIHguKMKK+C4lOC4seC4quC4geC4o+C4tQor4LiU4LiyCivguJTguYjguLIKK+C4lOC4suC4gQor4LiU4LmI4Liy4LiHCivguJTguYnguLLguIcKK+C4lOC5iOC4suC4h+C4l+C4seC4muC4l+C4tOC4oQor4LiU4LmI4Liy4LiH4Lie4Lij4LmJ4Lit4LiiCivguJTguLLguJQKK+C4lOC4suC4lOC5hgor4LiU4Liy4LiU4LiV4Liw4LiB4Lix4LmI4LinCivguJTguLLguJTguJ/guYnguLIKK+C4lOC4suC4lOC4suC4qQor4LiU4Liy4LiU4LizCivguJTguYjguLLguJfguK0KK+C4lOC4suC4mQor4LiU4LmI4Liy4LiZCivguJTguYnguLLguJkKK+C4lOC5ieC4suC4meC5hOC4oeC5iQor4LiU4LmJ4Liy4LiZ4Lir4LiZ4LmJ4LiyCivguJTguLLguJoKK+C4lOC4suC4muC5gOC4h+C4tOC4mQor4LiU4Liy4Lia4Lib4Lil4Liy4Lii4Lib4Li34LiZCivguJTguLLguJrguKXguLLguKcKK+C4lOC4suC4muC4qgor4LiU4Liy4Lia4Liq4Lit4LiH4LiE4LihCivguJTguLLguKEKK+C4lOC5ieC4suC4oQor4LiU4LmJ4Liy4Lih4LiI4Li04LmJ4LinCivguJTguLLguKHguJ4tCivguJTguLLguKHguJ7guYwKK+C4lOC4suC4oeC4nuC4p+C4o+C4o+C4kwor4LiU4Liy4Lih4LijCivguJTguLLguKIKK+C4lOC5ieC4suC4ogor4LiU4LmJ4Liy4Lii4LiL4Lix4LiHCivguJTguYnguLLguKLguJTguLTguJoKK+C4lOC4suC4owor4LiU4Liy4Lij4LiBCivguJTguLLguKPguJPguLUKK+C4lOC4suC4o+C4lOC4suC4qQor4LiU4Liy4Lij4LiyCivguJTguLLguKPguLLguJrguJYKK+C4lOC4suC4o+C4suC4qOC4suC4quC4leC4o+C5jAor4LiU4Liy4LilCivguJTguLLguKXguInguLHguJXguKMKK+C4lOC4suC4peC5gOC4lOC4t+C4reC4lAor4LiU4Liy4Lil4LmC4LiX4Liq4LiwCivguJTguLLguKXguLHguJQKK+C4lOC4suC4peC4uAor4LiU4Liy4Lil4Li44LiKCivguJTguLLguKcKK+C4lOC5iOC4suC4pwor4LiU4LmJ4Liy4LinCivguJTguLLguKfguIHguKPguLDguIjguLLguKIKK+C4lOC4suC4p+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiU4Liy4Lin4LiU4Li24LiH4Liq4LmMCivguJTguLLguKfguJXguIEKK+C4lOC4suC4p+C5gOC4l+C4teC4ouC4oQor4LiU4Liy4Lin4Lia4LiqCivguJTguLLguKfguKPguLjguYjguIcKK+C4lOC4suC4p+C5gOC4o+C4t+C4reC4hwor4LiU4Liy4Lin4Lik4LiB4Lip4LmMCivguJTguLLguKfguKXguYnguK3guKHguYDguJTguLfguK3guJkKK+C4lOC4suC4p+C4q+C4suC4hwor4LiU4Liy4Lin4LmA4Lir4LiZ4Li34LitCivguJTguLLguKkKK+C4lOC4suC4qeC4lOC4sgor4LiU4Liy4Lip4LiU4Li34LmI4LiZCivguJTguLLguKnguYDguJTguLXguKLguKMKK+C4lOC4suC4q+C4h+C4seC4mQor4LiU4Liy4LisCivguJTguLMKK+C4lOC5iOC4swor4LiU4LmJ4LizCivguJTguLPguIHguKUKK+C4lOC4s+C5gOC4geC4tOC4hwor4LiU4Liz4LmB4LiE4LiHCivguJTguLPguJTguIcKK+C4lOC4s+C4lOC4tOC4mQor4LiU4Liz4LmB4LiU4LiHCivguJTguLPguYYg4LmB4LiU4LiH4LmGCivguJTguLPguJnguLIKK+C4lOC4s+C4meC4suC4kwor4LiU4Liz4LiZ4Liy4LiZCivguJTguLPguJnguLkKK+C4lOC4s+C5gOC4meC4tOC4mQor4LiU4Liz4LmA4LiZ4Li04LiZ4LiE4LiU4Li1CivguJTguLPguYDguJnguLXguKLguJkKK+C4lOC4s+C5gOC4meC4teC4ouC4owor4LiU4Liz4Lia4LilCivguJTguLPguJvguLfguJkKK+C4lOC4s+C4nuC4reC4hwor4LiU4Liz4LmC4Lie4LiHCivguJTguLPguKPguIcKK+C4lOC4s+C4o+C4p+C4iAor4LiU4Liz4Lij4Lix4LiqCivguJTguLPguKPguLQKK+C4lOC4s+C4o+C4tQor4LiU4Liz4Lij4Li5CivguJTguLPguYTguKMKK+C4lOC4s+C4pOC4qeC4k+C4sgor4LiU4Liz4LmA4Lil4Li04LiHCivguJTguLPguYHguKXguIcKK+C4lOC4s+C4q+C4meC4seC4gQor4LiU4Liz4Lir4LiZ4Li0CivguJTguLPguKvguLHguKcKK+C4lOC4s+C4reC4p+C4lAor4LiU4Li04LiBCivguJTguLTguIHguYYKK+C4lOC4tOC4hwor4LiU4Li04LmI4LiHCivguJTguLTguYjguIfguJ7guKrguLjguJjguLIKK+C4lOC4tOC4ieC4seC4mQor4LiU4Li04LiQCivguJTguLTguJXguJbguYwKK+C4lOC4tOC4luC4tQor4LiU4Li04LiZCivguJTguLTguYnguJkKK+C4lOC4tOC4meC4geC4o+C4lAor4LiU4Li04LiZ4LiC4Liy4LinCivguJTguLTguJnguYDguITguYfguKEKK+C4lOC4tOC4meC4lOC4reC4meC4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiU4Li04LiZ4LiU4LizCivguJTguLTguJnguYHguJTguIcKK+C4lOC4tOC4meC4meC4p+C4pQor4LiU4Li04LiZ4Lib4Lij4Liw4Liq4Li04LinCivguJTguLTguJnguJvguLfguJkKK+C4lOC4tOC4meC5gOC4m+C4o+C4teC5ieC4ouC4pwor4LiU4Li04LiZ4Lie4Lit4LiB4Lir4Liy4LiH4Lir4Lih4Li5CivguJTguLTguYnguJnguKPguJkKK+C4lOC4tOC4meC4o+C5iOC4p+C4mQor4LiU4Li04LiZ4Lij4Liw4LmA4Lia4Li04LiUCivguJTguLTguJnguKrguYnguKEKK+C4lOC4tOC4meC4quC4rQor4LiU4Li04LiZ4Liq4Lit4Lie4Lit4LiHCivguJTguLTguJnguKrguLPguKXguLUKK+C4lOC4tOC4meC4q+C4uQor4LiU4Li04LiZ4Lit4Li14Lir4Lij4Lit4LiaCivguJTguLTguJoKK+C4lOC4tOC4muC4lOC4tQor4LiU4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJTguLTguKXguIEKK+C4lOC4tOC5iOC4pwor4LiU4Li04LmJ4LinCivguJTguLTguYnguKfguYDguJTguLXguYnguKLguKcKK+C4lOC4tOC4qeC4kOC5jAor4LiU4Li04Liq4LmC4Lie4Lij4LmA4LiL4Li14Lii4LihCivguJTguLUKK+C4lOC4teC5hgor4LiU4Li14LmA4LiB4Lil4Li34LitCivguJTguLXguYDguIHguKXguLfguK3guJ3guKPguLHguYjguIcKK+C4lOC4teC4h+C4uQor4LiU4Li14LmD4LiICivguJTguLXguInguLHguJkKK+C4lOC4teC4ieC4suC4mQor4LiU4Li14LiL4LmI4Liy4LiZCivguJTguLXguYDguIvguKUKK+C4lOC4teC4lAor4LiU4Li14LiU4LiC4Lix4LiZCivguJTguLXguJTguJTguLTguYnguJkKK+C4lOC4teC4lOC4neC5ieC4suC4ogor4LiU4Li14LiU4Lie4Li04Lih4Lie4LmMCivguJTguLXguJTguKXguLnguIHguITguLTguJQKK+C4lOC4teC4lOC4peC4ueC4geC4hOC4tOC4lOC4o+C4suC4h+C5geC4geC5ieC4pworLeC4lOC4teC4lOC4seC4gQor4LiU4Li14LiU4Li14LiX4Li1CivguJTguLXguYDguJTguLfguK3guJQKK+C4lOC4teC5geC4leC4gQor4LiU4Li14LiZ4Liy4LiE4Lij4Liy4LiKCivguJTguLXguYDguJnguLfguYnguK3guJTguLXguYPguIgKK+C4lOC4teC4muC4seC4pwor4LiU4Li14Lia4Li44LiBCivguJTguLXguJvguKXguLUKK+C4lOC4teC5gOC4m+C4o+C4quC4iuC4seC4mQor4LiU4Li14Lic4LiyCivguJTguLXguJ3guYjguK0KK+C4lOC4teC4nuC4owor4LiU4Li14LmE4Lih4LmI4LiU4Li1CivguJTguLXguKLguLIKK+C4lOC4teC4o+C5ieC4suC4ogor4LiU4Li14Lil4LiwCivguJTguLXguYHguKXguYnguKcKK+C4lOC4teC4q+C4oeC4tQor4LiU4Li14Lir4Lil4Li1CivguJTguLXguKvguLTguJkKK+C4lOC4teC4reC4geC4lOC4teC5g+C4iAor4LiU4Li24LiBCivguJTguLbguIHguJTguLPguJrguKPguKPguJ7guYwKK+C4lOC4tuC4geC4lOC4t+C5iOC4mQor4LiU4Li24LiHCivguJTguLbguYjguIcKK+C4lOC4tuC4h+C4lOC4seC4mQor4LiU4Li24LiH4LiU4Li34LmJ4LitCivguJTguLbguIfguJTguLnguJQKK+C4lOC4tuC4h+C4quC4sAor4LiU4Li24LmI4LihCivguJTguLfguYjguJkKK+C4lOC4t+C5iOC4meC4lOC4suC4qQor4LiU4Li34LmI4LiZ4LiU4Li24LiBCivguJTguLfguYjguKEKK+C4lOC4t+C5iOC4oeC4lOC5iOC4swor4LiU4Li34LitCivguJTguLfguYnguK0KK+C4lOC4t+C5ieC4reC4lOC4seC4mQor4LiU4Li34LmJ4Lit4LiU4LmJ4Liy4LiZCivguJTguLfguYnguK3guJTguLbguIcKK+C4lOC4t+C5ieC4reC5geC4nuC5iOC4hwor4LiU4Li34LmJ4Lit4Lii4LiyCivguJTguLgKK+C4lOC4uOC4gQor4LiU4Li44LiB4LiU4Li04LiBCivguJTguLjguIHguJfguLDguYDguKUKK+C4lOC4uOC4geC4peC4s+C4nuC4seC4mQor4LiU4Li44LmJ4LiHCivguJTguLjguYnguIfguJTguLTguYnguIcKK+C4lOC4uOC4iAor4LiU4Li44LiI4LiU4Lix4LiHCivguJTguLjguIjguKvguJnguLbguYjguIcKK+C4lOC4uOC4lAor4LiU4Li44LiU4Lix4LiZCivguJTguLjguYDguJTguLfguK3guJQKK+C4lOC4uOC4mQor4LiU4Li44LmJ4LiZCivguJTguLjguJrguYYKK+C4lOC4uOC4oQor4LiU4Li44LmI4LihCivguJTguLjguYjguKHguYYKK+C4lOC4uOC5iOC4ogor4LiU4Li44Lij4LiECivguJTguLjguKPguIfguITguYwKK+C4lOC4uOC4o+C4h+C4hOC4tQor4LiU4Li44Lij4LmJ4Liy4LiiCivguJTguLjguKPguLTguKItCivguJTguLjguKPguLTguKLguLAKK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hC0KK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LiU4Li44Lij4Li04Lii4Liy4LiH4LiE4LmM4LiI4Liz4LmA4Lij4Li14Lii4LiHCivguJTguLjguKPguLTguKLguLLguIfguITguKjguLLguKrguJXguKPguYwKK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC4qOC4tOC4peC4m+C5jAor4LiU4Li44LilCivguJTguLjguKUtCivguJTguLjguKXguIHguLLguKPguITguYnguLIKK+C4lOC4uOC4peC4geC4suC4o+C4iuC4s+C4o+C4sOC5gOC4h+C4tOC4mQor4LiU4Li44Lil4LiK4Liz4Lij4Liw4Lir4LiZ4Li14LmJCivguJTguLjguKXguJ7guLTguJnguLTguIgKK+C4lOC4uOC4peC4oOC4suC4hAor4LiU4Li44Lil4LiiLQor4LiU4Li44Lil4Lii4Lie4Li04LiZ4Li04LiICivguJTguLjguKXguKLguKDguLLguJ4KK+C4lOC4uOC4peC4reC4s+C4meC4suC4iAor4LiU4Li44Lip4LiO4Li1CivguJTguLjguKnguI7guLXguJnguLTguJ7guJnguJjguYwKK+C4lOC4uOC4qeC4juC4teC4muC4seC4k+C4keC4tOC4lQor4LiU4Li44Lip4LiO4Li14Lih4Liy4Lil4LiyCivguJTguLjguKnguI7guLXguKrguLHguIfguYDguKfguKIKK+C4lOC4uOC4qeC4k+C4tQor4LiU4Li44Lip4LiT4Li14Lig4Liy4LieCivguJTguLjguKnguLTguJUKK+C4lOC4uOC4quC4tOC4lQor4LiU4Li44LmA4Lir4Lin4LmI4LiyCivguJTguLkKK+C4lOC4ueC4geC5hOC4geC5iOC4lOC4swor4LiU4Li54LiB4LiE4LmI4Liy4LiHCivguJTguLnguIHguKMKK+C4lOC4ueC4geC5iOC4reC4mQor4LiU4Li54LmB4LiE4Lil4LiZCivguJTguLnguYPguIgKK+C4lOC4ueC4iuC5ieC4suC4h+C5g+C4q+C5ieC4lOC4ueC4q+C4suC4hyDguJTguLnguJnguLLguIfguYPguKvguYnguJTguLnguYHguKHguYgKK+C4lOC4ueC4i+C4tAor4LiU4Li54LiUCivguJTguLnguJTguJTguLbguIcKK+C4lOC4ueC4lOC4lOC4t+C5iOC4oQor4LiU4Li54LiU4Lit4Lih4LiU4Li54LiU4Liy4LiiCivguJTguLnguJTguLLguKIKK+C4lOC4ueC4lOC4ueC5iwor4LiU4Li54LiV4Liy4Lih4LmJ4Liy4LiV4Liy4LmA4Lij4Li34LitCivguJTguLnguJbguLnguIEKK+C4lOC4ueC4luC4ueC4geC4lOC4ueC5geC4hOC4peC4mQor4LiU4Li54LmA4LiW4Lit4LiwCivguJTguLnguYDguJbguLTguJQKK+C4lOC4ueC5geC4meC5iOC4sAor4LiU4Li54LmA4Lia4LiyCivguJTguLnguYTguJvguIHguYjguK3guJkKK+C4lOC4ueC4o+C4sgor4LiU4Li54Lij4LmJ4Liy4LiiCivguJTguLnguKPguLYKK+C4lOC4ueC5geC4pQor4LiU4Li54Lir4Lih4Li04LmI4LiZCivguJTguLnguKvguKHguLTguYjguJnguJbguLTguYjguJnguYHguITguKXguJkKK+C4lOC4ueC4q+C4o+C4t+C4rQor4LiU4Li54Lir4Lij4Li5CivguJTguLnguYDguKvguKHguLfguK3guJkKK+C5gOC4lAor4LmA4LiU4LmICivguYDguJTguIEKK+C5gOC4lOC5h+C4gQor4LmA4LiU4LmH4LiB4LiK4LiyCivguYDguJTguYfguIHguIrguLLguKIKK+C5gOC4lOC4geC4i+C5jOC5guC4l+C4o+C4qgor4LmA4LiU4LmH4LiB4LmB4LiU4LiHCivguYDguJTguYfguIHguYDguKHguLfguYjguK3guKfguLLguJnguIvguLfguJkKK+C5gOC4lOC5h+C4geC4q+C4jeC4tOC4hwor4LmA4LiU4LmH4LiB4Lit4Lih4Lih4Li34LitCivguYDguJTguITguLLguIHguKPguLHguKEKK+C5gOC4lOC4hOC4suC5gOC4oeC4leC4owor4LmA4LiU4LiE4Liy4Lil4Li04LiV4LijCivguYDguJTguYnguIcKK+C5gOC4lOC5h+C4iAor4LmA4LiU4LiKCivguYDguJTguIrguJnguYwKK+C5gOC4lOC4iuC4meC4sAor4LmA4LiU4LiK4LiwCivguYDguJTguYLguIoKK+C5gOC4lOC5guC4iuC4iuC4seC4ogor4LmA4LiU4LmC4LiK4Lie4LilCivguYDguJTguIvguLTguIHguKPguLHguKEKK+C5gOC4lOC4i+C4tOC5gOC4oeC4leC4owor4LmA4LiU4LiL4Li04Lil4Li04LiV4LijCivguYDguJTguYfguJQKK+C5gOC4lOC5h+C4lOC4guC4suC4lAor4LmA4LiU4LmH4LiU4LiU4Lin4LiHCivguYDguJTguYfguJTguJTguK3guIHguYTguKHguYnguKPguYjguKfguKHguJXguYnguJkKK+C5gOC4lOC5h+C4lOC4lOC4reC4geC5hOC4oeC5iOC5hOC4p+C5ieC4guC4seC5ieC4pwor4LmA4LiU4LmH4LiU4LmA4LiU4Li14LmI4Lii4LinCivguYDguJTguYfguJTguJrguLHguKfguYTguKHguYjguYTguKfguYnguYPguKIKK+C5gOC4lOC5h+C4lOC4m+C4peC4teC5hOC4oeC5iOC4oeC4teC5g+C4ogor4LmA4LiU4LiZCivguYDguJTguYjguJkKK+C5gOC4lOC4meC4leC4suC4ogor4LmA4LiU4LiZ4Lih4Liy4Lij4LmM4LiBCivguYDguJTguKPguLHguIjguInguLLguJkKK+C5gOC4lOC5i+C4rQor4LmA4LiU4LmL4Lit4LiU4LmL4LiyCivguYDguJTguLIKK+C5gOC4lOC5iOC4sgor4LmA4LiU4LmI4Liy4LmGCivguYDguJTguYnguLIKK+C5gOC4lOC5ieC4suC4lOC4tOC4mQor4LmA4LiU4LmJ4Liy4Lil4LihCivguYDguJTguLLguKrguKfguJQKK+C5gOC4lOC4suC4quC4uOC5iOC4oQor4LmA4LiU4Liy4LiwCivguYDguJTguLTguJkKK+C5gOC4lOC4tOC5iOC4mQor4LmA4LiU4Li04LiZ4LiC4Lia4Lin4LiZCivguYDguJTguLTguJnguITguLLguJbguLIKK+C5gOC4lOC4tOC4meC4iOC4seC4geC4owor4LmA4LiU4Li04LiZ4LiV4Lil4Liy4LiUCivguYDguJTguLTguJnguJXguLLguKHguKvguKXguLHguIfguJzguLnguYnguYPguKvguI3guYjguKvguKHguLLguYTguKHguYjguIHguLHguJQKK+C5gOC4lOC4tOC4meC5geC4leC5ieC4oQor4LmA4LiU4Li04LiZ4LmC4LiV4LmK4LiwCivguYDguJTguLTguJnguJfguK3guIcKK+C5gOC4lOC4tOC4meC4l+C4seC4ngor4LmA4LiU4Li04LiZ4LiX4Liy4LiHCivguYDguJTguLTguJnguJfguLjguYjguIcKK+C5gOC4lOC4tOC4meC5gOC4l+C4teC4ouC4mQor4LmA4LiU4Li04LiZ4LiY4Li44Lij4Liw4LmD4Lir4LmJCivguYDguJTguLTguJnguJnguLIKK+C5gOC4lOC4tOC4meC4m+C5ieC4suC4ogor4LmA4LiU4Li04LiZ4Lij4LiWCivguYDguJTguLTguJnguYDguKPguLfguK0KK+C5gOC4lOC4tOC4meC5gOC4o+C4t+C5iOC4reC4hwor4LmA4LiU4Li04LiZ4Liq4Lin4LiZCivguYDguJTguLTguJnguKrguLDguJ7guLHguJQKK+C5gOC4lOC4tOC4meC4quC4suC4ogor4LmA4LiU4Li04LiZ4LmA4Liq4LmJ4LiZCivguYDguJTguLTguJnguKvguJkKK+C5gOC4lOC4tOC4meC5gOC4q+C4tOC4mQor4LmA4LiU4Li04LiZ4LmE4Lir4LihCivguYDguJTguLTguJnguK3guLLguIHguLLguKgKK+C5gOC4lOC4tOC4oQor4LmA4LiU4Li04Lih4LiX4Li1CivguYDguJTguLTguKHguJ7guLHguJkKK+C5gOC4lOC4teC5ieC4ogor4LmA4LiU4Li14Lii4LiHCivguYDguJTguLXguKLguIfguKrguLIKK+C5gOC4lOC4teC4ouC4lAor4LmA4LiU4Li14Lii4LiU4LiJ4Lix4LiZ4LiX4LmMCivguYDguJTguLXguKLguKMKK+C5gOC4lOC4teC4ouC4o+C4lOC4suC4qQor4LmA4LiU4Li14Lii4Lij4LiW4LmMCivguYDguJTguLXguKLguKPguJbguLXguKLguYwKK+C5gOC4lOC4teC4ouC4o+C4seC4iOC4ieC4suC4mQor4LmA4LiU4Li14Lii4LinCivguYDguJTguLXguYjguKLguKcKK+C5gOC4lOC4teC5i+C4ouC4pwor4LmA4LiU4Li14LmL4Lii4Lin4LiB4LmI4Lit4LiZCivguYDguJTguLXguKLguKfguIHguLHguJkKK+C5gOC4lOC4teC4ouC4p+C4lOC4suC4ogor4LmA4LiU4Li14LmL4Lii4Lin4LmA4LiU4Li14Lii4LinCivguYDguJTguLXguYvguKLguKfguJnguLXguYkKK+C5gOC4lOC4teC4ouC4sAor4LmA4LiU4Li34LmI4LitCivguYDguJTguLfguK3guIEKK+C5gOC4lOC4t+C5iOC4reC4hwor4LmA4LiU4Li34Lit4LiUCivguYDguJTguLfguK3guJTguJTguLLguKUKK+C5gOC4lOC4t+C4reC4lOC4o+C5ieC4reC4mQor4LmA4LiU4Li34Lit4LiZCivguYDguJTguLfguK3guJnguILguLLguJQKK+C5gOC4lOC4t+C4reC4meC4hOC5ieC4suC4h+C4n+C5ieC4sgor4LmA4LiU4Li34Lit4LiZ4LiE4Li14LmICivguYDguJTguLfguK3guJnguITguLnguYgKK+C5gOC4lOC4t+C4reC4meC5gOC4leC5h+C4oQor4LmA4LiU4Li34Lit4LiZ4Lih4Li34LiUCivguYDguJTguLfguK3guJnguYDguKLguYfguJkKK+C5gOC4lOC4t+C4reC4meC4o+C5ieC4reC4mQor4LmA4LiU4Li34Lit4LiZ4Lir4LiH4Liy4LiiCivguYDguJTguLfguK3guKIKK+C5gOC4lOC4t+C4reC4ouC5hOC4geC5iAor4LmB4LiUCivguYHguJTguYgKK+C5geC4lOC4gQor4LmB4LiU4LmH4LiB4LmGCivguYHguJTguIHguIfguLIKK+C5geC4lOC4geC4lOC4seC4mQor4LmB4LiU4LiB4LmB4LiU4LmJCivguYHguJTguYfguIHguYHguJTguYkKK+C5geC4lOC4geC4q+C5iOC4sgor4LmB4LiU4LiHCivguYHguJTguIfguJnguYnguLMKK+C5geC4lOC4lAor4LmB4LiU4LiU4Liy4LilCivguYHguJTguJTguLTguYnguJkKK+C5geC4lOC4mQor4LmB4LiU4LmI4LiZCivguYHguJTguJnguYTguJXguKMKK+C5geC4lOC4ouC4seC4mQor4LmB4LiU4LmI4Lin4LmGCivguYHguJTguLAKK+C5geC4lOC4sOC5geC4lOC5iwor4LmC4LiUCivguYLguJTguYgKK+C5guC4lOC4geC5gOC4lOC4gQor4LmC4LiU4LmI4LiHCivguYLguJTguYjguIfguJTguLHguIcKK+C5guC4lOC4lAor4LmC4LiU4LiU4LmGCivguYLguJTguJTguYDguJTguLXguYjguKLguKcKK+C5guC4lOC4lOC4o+C5iOC4oQor4LmC4LiU4LmI4LmA4LiU4LmICivguYLguJTguJkKK+C5guC4lOC4meC4lOC4tQor4LmC4LiU4LihCivguYLguJTguKHguYTguJ7guKMKK+C5guC4lOC4oeC4owor4LmC4LiU4LmI4LmE4Lih4LmI4Lij4Li54LmJ4Lil4LmJ4LihCivguYLguJTguKIKK+C5guC4lOC4ouC4iOC4o+C4tOC4hwor4LmC4LiU4Lii4LiX4Li14LmICivguYLguJTguKLguJ7guKLguLHguI3guIrguJnguLAKK+C5guC4lOC4ouC4quC4suC4owor4LmC4LiU4Lii4LmA4Liq4LiU4LmH4LiICivguYLguJTguKLguK3guKPguKPguJYKK+C5guC4lOC4owor4LmC4LiU4Lij4LiTCivguYPguJQKKy4uLuC5g+C4lC4uLuC4q+C4meC4tuC5iOC4hwor4LmE4LiUCivguYTguJTguYkKK+C5hOC4lOC5ieC4geC4seC4mQor4LmE4LiU4LmJ4LiB4Liy4LijCivguYTguJTguYnguYHguIHguYgKK+C5hOC4lOC5ieC5geC4geC4h+C5gOC4l+C4meC5ieC4s+C4nuC4o+C4tOC4gQor4LmE4LiU4LmJ4LiE4Lin4Liy4LihCivguYTguJTguYnguITguLTguJQKK+C5hOC4lOC5ieC5g+C4iAor4LmE4LiU4LmJ4LiK4LmI4Lit4LiHCivguYTguJTguYnguIrguLfguYjguK0KK+C5hOC4lOC5geC4i+C5h+C4geC4hOC4suC5hOC4o+C4lOC5jAor4LmE4LiU4LmJ4LiX4LmI4LiyCivguYTguJTguYnguJfguYnguLLguKIKK+C5hOC4lOC5ieC4l+C4tQor4LmE4LiU4LmJ4LiX4Li14LmICivguYTguJTguYnguJfguLXguILguLXguYjguYHguJ7guLDguYTguKXguYgKK+C5hOC4lOC4meC4suC5guC4oQor4LmE4LiU4LiZ4Liy4LmE4Lih4LiV4LmMCivguYTguJTguYLguJnguYDguKrguLLguKPguYwKK+C5hOC4lOC5ieC4ouC4tOC4mQor4LmE4LiU4LmA4Lij4LiB4LiV4Lij4Li04LiB4LiL4LmMCivguYTguJTguYnguKTguIHguKnguYwKK+C5hOC4lOC5ieC4quC4leC4tAor4LmE4LiU4LmJ4Liq4LmI4Lin4LiZCivguYTguJTguYnguKrguYjguKfguJnguKrguLHguJQKK+C5hOC4lOC5ieC5gOC4quC4teC4ogor4LmE4LiU4LmJ4LmA4Liq4Li14Lii4LiB4Lix4LiZCivguYTguJTguYnguKvguJnguYnguLIKK+C5hOC4lOC5ieC4q+C4meC5ieC4suC4peC4t+C4oeC4q+C4peC4seC4hwor4LiVCivguJXguIEKK+C4leC4geC4geC4o+C4sAor4LiV4LiB4LiB4Lij4Liw4LmE4LiU4Lie4Lil4Lit4Lii4LmC4LiI4LiZCivguJXguIHguILguK3guJoKK+C4leC4geC4guC4suC4pwor4LiV4LiB4LiC4LmJ4Liy4LinCivguJXguIHguILguLjguKIKK+C4leC4geC4hOC4peC4seC4gQor4LiV4LiB4LiE4LmJ4Liy4LiHCivguJXguIHguYDguITguKPguLfguK0KK+C4leC4geC4h+C4suC4mQor4LiV4LiB4LiI4Lix4LmI4LiZCivguJXguIHguYPguIgKK+C4leC4geC4lOC4tOC4mQor4LiV4LiB4LiV4Liw4LiB4Lit4LiZCivguJXguIHguJXguLDguKXguLbguIcKK+C4leC4geC4leC5iOC4swor4LiV4LiB4LmB4LiV4LmI4LiHCivguJXguYrguIHguYLguJUKK+C4leC4geC5g+C4leC5ieC5gOC4luC4o+C5gOC4l+C4p+C4l+C4seC4lQor4LiV4LiB4LiX4LmJ4Lit4LiH4LiK4LmJ4Liy4LiHCivguJXguIHguJfguK3guJQKK+C4leC4geC4l+C4teC5iOC4meC4seC5iOC4hwor4LiV4LiB4LiZ4Lij4LiB4LiX4Lix4LmJ4LiH4LmA4Lib4LmH4LiZCivguJXguIHguJnguYnguLPguKHguLHguJkKK+C4leC4geC4meC5ieC4s+C5hOC4oeC5iOC4p+C5iOC4suC4ogor4LiV4LiB4LiZ4LmJ4Liz4LmE4Lih4LmI4LmE4Lir4LilIOC4leC4geC5hOC4n+C5hOC4oeC5iOC5hOC4q+C4oeC5iQor4LiV4LiB4LmD4LiZCivguJXguIHguYDguJrguYfguJQKK+C4leC4geC5gOC4muC4tOC4gQor4LiV4LiB4Lib4Lij4Liw4Lir4Lih4LmI4LiyCivguJXguIHguJvguKXguK3guIEKK+C4leC4geC4m+C4peC4seC4gQor4LiV4LiB4Lib4Liy4LiB4LiV4LiB4LiE4LizCivguJXguIHguYDguJvguYfguJkKK+C4leC4geC5gOC4m+C5h+C4meC5gOC4muC4teC5ieC4ouC4peC5iOC4suC4hwor4LiV4LiB4Lic4Lil4Li24LiBCivguJXguIHguJ7guLjguYjguKHguKHguYjguLLguKIKK+C4leC4geC4n+C4reC4hwor4LiV4LiB4Lif4Liy4LiBCivguJXguIHguKHguLHguJkKK+C4leC4geC4oeC4ueC4gQor4LiV4LiB4Lii4Liy4LiBCivguJXguIHguKPguLLguIfguKfguLHguKUKK+C4leC4geC4peC4hwor4LiV4LiB4Lil4LmI4Lit4LiH4Lib4Lil4LmI4Lit4LiH4LiK4Li04LmJ4LiZCivguJXguIHguKXguLnguIEKK+C4leC4geC5gOC4peC4t+C4reC4lAor4LiV4LiB4Lin4LmI4LiyCivguJXguIHguKrguJnguLHguJoKK+C4leC4geC4quC4sOC5gOC4geC5h+C4lAor4LiV4LiB4LmB4Liq4LiBCivguJXguIHguKvguJnguLHguIEKK+C4leC4geC4q+C4oeC4gQor4LiV4LiB4Lir4Lil4LmI4LiZCivguJXguIHguKvguKXguLjguKEKK+C4leC4geC4q+C4peC4uOC4oeC4nuC4o+C4suC4hwor4LiV4LiB4Lit4Lix4LiaCivguJXguIcKK+C4leC5i+C4hwor4LiV4LiH4LiJ4Li04LiZCivguJXguIfguLTguJQKK+C4leC4h+C4uOC5iOC4mQor4LiV4LiILQor4LiV4LiI4Lib4Lix4LiN4LiI4LiB4LiB4Lij4Lij4Lih4LiQ4Liy4LiZCivguJXguIjguKrguLLguKMKK+C4leC4lAor4LiV4LiU4Lir4Lih4Li54LiV4LiU4Lir4Lih4LiyCivguJXguJXguLTguKItCivguJXguJbguLLguITguJUKK+C4leC4mQor4LiV4LmJ4LiZCivguJXguYnguJnguIHguKUKK+C4leC5ieC4meC4guC4seC5ieC4pwor4LiV4LmJ4LiZ4LiE4LitCivguJXguYnguJnguITguLTguJQKK+C4leC5ieC4meC5gOC4h+C4tOC4mQor4LiV4LmJ4LiZ4LiJ4Lia4Lix4LiaCivguJXguYnguJnguIrguJnguJTguK3guIEKK+C4leC5ieC4meC5gOC4iuC4t+C4reC4gQor4LiV4LmJ4LiZ4LiV4Lij4Liw4LiB4Li54LilCivguJXguYnguJnguJXguK0KK+C4leC5ieC4meC4leC4suC4ouC5g+C4muC5gOC4m+C5h+C4mQor4LiV4LmJ4LiZ4LiV4Liz4Lij4Lix4LiaCivguJXguYnguJnguJfguLLguIcKK+C4leC5ieC4meC4l+C4uOC4mQor4LiV4LmJ4LiZ4LmA4LiX4Li14Lii4LihCivguJXguYnguJnguJnguYnguLMKK+C4leC5ieC4meC4muC4lwor4LiV4LmJ4LiZ4LmB4Lia4LiaCivguJXguYnguJnguYDguJ7guKXguLTguIcKK+C4leC5ieC4meC4oeC4t+C4rQor4LiV4LmJ4LiZ4LmE4Lih4LmJCivguJXguYnguJnguKPguYjguLLguIcKK+C4leC5ieC4meC4o+C5ieC4suC4ouC4m+C4peC4suC4ouC4lOC4tQor4LiV4LmJ4LiZ4LmA4Lij4Li34LitCivguJXguYnguJnguYDguKPguLfguYjguK3guIcKK+C4leC5ieC4meC4p+C4suC4ouC4m+C4peC4suC4ouC4lOC4gQor4LiV4LmJ4LiZ4Liq4Lix4LiH4LiB4Lix4LiUCivguJXguYnguJnguKrguLLguKLguJvguKXguLLguKLguYDguKvguJXguLgKK+C4leC5ieC4meC5gOC4quC4teC4ouC4hwor4LiV4LmJ4LiZ4Lir4LiZCivguJXguYnguJnguYDguKvguJXguLgKK+C4leC4meC4seC4ogor4LiV4LiZ4Li4CivguJXguJnguLjguKHguLHguJjguKLguKHguLIKK+C4leC4meC4uOC4oeC4seC4mOC4ouC4sgor4LiV4LiaCivguJXguJrguJXguLIKK+C4leC4muC5geC4leC5iOC4hwor4LiV4Lia4LmA4LiX4LmJ4LiyCivguJXguJrguYHguJzguKXguLAKK+C4leC4muC4oeC4t+C4rQor4LiV4Lia4Lih4Li34Lit4LiC4LmJ4Liy4LiH4LmA4LiU4Li14Lii4Lin4LmE4Lih4LmI4LiU4Lix4LiHCivguJXguJrguKLguLjguIcKK+C4leC4muC4q+C4seC4p+C4geC4peC4suC4h+C4qOC4suC4peC4siDguILguK3guILguKHguLLguJfguLXguYjguJrguYnguLLguJkKK+C4leC4muC4q+C4seC4p+C4peC4ueC4muC4q+C4peC4seC4hwor4LiV4Lia4LiwCivguJXguJvguJnguLXguKLguLAKK+C4leC4oS0KK+C4leC5ieC4oQor4LiV4LmJ4Lih4LiB4Liw4LiX4Li0CivguJXguYnguKHguIHguLDguJvguLQKK+C4leC5ieC4oeC4guC5iOC4sgor4LiV4LmJ4Lih4LmA4LiE4LmH4LihCivguJXguYnguKHguYLguITguKXguYnguIcKK+C4leC5ieC4oeC4m+C4peC4suC4o+C5ieC4sgor4LiV4LmJ4Lih4LmA4Lib4Lij4LiVCivguJXguYnguKHguYDguJvguK3guLAKK+C4leC5ieC4oeC4ouC4swor4LiV4LmJ4Lih4Lii4Liz4LiB4Liw4LiX4Li0CivguJXguYnguKHguKrguYnguKEKK+C4leC5ieC4oeC4quC4uOC4gQor4LiV4Lih4Li54LiBCivguJXguYLguKEtCivguJXguYLguKHguJnguLjguJcKK+C4leC5guC4oeC5hOC4nuC4o+C4tQor4LiV4LmC4Lih4Lir4LijCivguJXguKLguLLguIQKK+C4leC4ouC4suC4hOC4tQor4LiV4Lii4Li44LiV4Li0CivguJXguKPguIcKK+C4leC4o+C4h+C5hgor4LiV4Lij4LiH4LiB4Lix4LiZCivguJXguKPguIfguIHguLHguJnguILguYnguLLguKEKK+C4leC4o+C4k+C4tQor4LiV4Lij4LihCivguJXguKPguKHguJXguKPguK3guKEKK+C4leC4o+C4oeC5gOC4leC4o+C4teC4ouC4oQor4LiV4Lij4Lih4Lin4LilCivguJXguKPguKPguIEtCivguJXguKPguKPguIHguKjguLLguKrguJXguKPguYwKK+C4leC4o+C4o+C4geC4sAor4LiV4Lij4Lil4LiaCivguJXguKPguKXguK3guJQKK+C4leC4o+C4peC4sAor4LiV4Lij4Lil4LiyCivguJXguKPguKXguLLguJQKK+C4leC4o+C5gOC4peC4tOC4lAor4LiV4Lij4Lin4LiICivguJXguKPguKfguIjguIHguLLguKPguJPguYwKK+C4leC4o+C4p+C4iOC4guC5iOC4suC4pwor4LiV4Lij4Lin4LiI4LiV4Lij4LiyCivguJXguKPguKfguIjguYDguKXguLfguK3guJQKK+C4leC4o+C4p+C4lAor4LiV4Lij4Lin4LiZCivguJXguKPguKfguKIKK+C4leC4o+C4reC4gQor4LiV4Lij4Lit4LiHCivguJXguKPguK3guKHguYPguIgKK+C4leC4o+C4reC4oeC4leC4o+C4oQor4LiV4Lij4LiwCivguJXguKPguLDguIHguKUKK+C4leC4o+C4sOC4geC4p+C4mQor4LiV4Lij4Liw4LiB4Lit4LiHCivguJXguKPguLDguIHguLHguJQKK+C4leC4o+C4sOC4geC4suC4owor4LiV4Lij4Liw4LiB4Li54LilCivguJXguKPguLDguIHguLnguKXguKHguLnguKXguIrguLLguJXguLQKK+C4leC4o+C4sOC4hOC4seC4owor4LiV4Lij4Liw4LiH4LmI4Lit4LiHCivguJXguKPguLDguIjguLHguIEKK+C4leC4o+C4sOC4iuC4seC4gQor4LiV4Lij4Liw4LmA4LiK4Li04LiNCivguJXguKPguLDguJTguIEKK+C4leC4o+C4sOC4lOC4suC4qQor4LiV4Lij4Liw4LmA4LiV4Lij4Li14Lii4LihCivguJXguKPguLDguYHguJXguKPguYnguJkKK+C4leC4o+C4sOC4l+C4o+C4p+C4hwor4LiV4Lij4Liw4LiZ4Liy4LinCivguJXguKPguLDguYTguJkKK+C4leC4o+C4sOC4muC4gQor4LiV4Lij4Liw4Lia4Lit4LiBCivguJXguKPguLDguJrguK3guIcKK+C4leC4o+C4sOC4muC4seC4lAor4LiV4Lij4Liw4Lia4Lix4LiU4Liq4Lix4LiV4Lii4LmMCivguJXguKPguLDguJrguLHguJkKK+C4leC4o+C4sOC5gOC4muC5h+C4hwor4LiV4Lij4Liw4LmB4Lia4LmICivguJXguKPguLDguYHguJrguIEKK+C4leC4o+C4sOC5geC4muC4hwor4LiV4Lij4Liw4LmB4Lia4LiZCivguJXguKPguLDguYHguJrguYjguJkKK+C4leC4o+C4sOC5guC4muC4oQor4LiV4Lij4Liw4Lie4Lit4LiHCivguJXguKPguLDguJ7guLHguIcKK+C4leC4o+C4sOC4oeC4t+C5iOC4mQor4LiV4Lij4Liw4LmC4Lih4LiICivguJXguKPguLDguKXguLLguIHguLLguKMKK+C4leC4o+C4sOC4p+C4seC4mQor4LiV4Lij4Liw4LmA4Lin4LmH4LiUCivguJXguKPguLDguYDguKfguJkKK+C4leC4o+C4sOC5gOC4p+C4meC5hOC4nuC4owor4LiV4Lij4Liw4LmA4Lin4LiZ4Lin4Lix4LiZCivguJXguKPguLDguYDguKfguJnguYDguKfguKvguLIKK+C4leC4o+C4sOC4quC4seC4gQor4LiV4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguJXguKPguLDguKvguIfguYjguLLguJkKK+C4leC4o+C4sOC4q+C4meC4gQor4LiV4Lij4Liw4Lir4LiZ4Lix4LiBCivguJXguKPguLDguKvguJnguYjguLMKK+C4leC4o+C4sOC4q+C4meC4teC5iAor4LiV4Lij4Liw4Lir4LiZ4Li14LmI4LiV4Lix4LinCivguJXguKPguLDguK3guKMKK+C4leC4o+C4sOC4reC4suC4pQor4LiV4Lij4Liw4LmC4Lit4LihCivguJXguKPguLHguIcKK+C4leC4o+C4seC4h+C4hC0KK+C4leC4o+C4seC4h+C4hOC5jAor4LiV4Lij4Lix4LiH4LiE4LiZ4LiX4Li1CivguJXguKPguLHguIfguITguKfguIrguLTguKPguLLguKfguJTguLUKK+C4leC4o+C4seC4mgor4LiV4Lij4Lix4Lia4Lif4Lix4LiHCivguJXguKPguLHguKIKK+C4leC4o+C4seC4ouC4leC4o+C4tuC4h+C4qOC5jAor4LiV4Lij4Lix4LiqCivguJXguKPguLHguKrguKPguLnguYkKK+C4leC4o+C4seC4quC4quC4sgor4LiV4Lij4LiyCivguJXguKPguLLguIHguJXguKPguLMKK+C4leC4o+C4suC4guC4uOC4meC4nuC4pQor4LiV4Lij4Liy4LiI4Lit4LiHCivguJXguKPguLLguIrguLkKK+C4leC4o+C4suC5geC4lOC4hwor4LiV4Lij4Liy4LiV4Lix4LmJ4LiHCivguJXguKPguLLguJoKK+C4leC4o+C4suC4muC5gOC4l+C5iOC4sgor4LiV4Lij4Liy4Lia4Liy4LibCivguJXguKPguLLguYTguJvguKPguKnguJPguLXguKLguLLguIHguKMKK+C4leC4o+C4suC4oOC4ueC4oeC4tAor4LiV4Lij4Liy4Lii4Liy4LiHCivguJXguKPguLLguKrguLHguIcKK+C4leC4o+C4suC4quC4suC4owor4LiV4Lij4Liy4Liq4Li04LiZCivguJXguKPguLLguKvguJnguYnguLIKK+C4leC4o+C4swor4LiV4Lij4LmI4LizCivguJXguKPguLQKK+C4leC4o+C4tOC4leC4o+C4reC4hwor4LiV4Lij4Li04LinCivguJXguKPguLUKK+C4leC4o+C4teC4geC4j+C4uOC4gQor4LiV4Lij4Li14LiB4Lix4LiZ4Liq4Lin4Liy4LiVCivguJXguKPguLXguIHguLLguKUKK+C4leC4o+C4teC4geC4suC4rOC4nuC4tOC4qQor4LiV4Lij4Li14LiB4Li54LiPCivguJXguKPguLXguYDguIHguKrguKPguKHguLLguKgKK+C4leC4o+C4teC5guC4geC4kwor4LiV4Lij4Li14LmC4LiB4LiT4Lih4Li04LiV4Li0CivguJXguKPguLXguITguLnguJMKK+C4leC4o+C4teC4iOC4teC4p+C4owor4LiV4Lij4Li14LiJ4Li04LiZ4LiX4Lil4Liy4Lih4LiB4LiyCivguJXguKPguLXguIrguLLguJUKK+C4leC4o+C4teC4jeC4suC4k+C4o+C4qgor4LiV4Lij4Li14LiX4LioCivguJXguKPguLXguJfguLTguJ4KK+C4leC4o+C4teC4l+C4tOC4nuC4ouC4o+C4qgor4LiV4Lij4Li14LiX4Li44Lij4Lin4Liq4LiyCivguJXguKPguLXguJfguLnguJUKK+C4leC4o+C4teC5gOC4l+C4p+C4leC4o+C4teC4hOC4seC4meC4mOC4sgor4LiV4Lij4Li14LmC4LiX4LipCivguJXguKPguLXguJjguLLguKPguJfguLTguJ7guKLguYwKK+C4leC4o+C4teC4meC4tOC4qOC4gQor4LiV4Lij4Li14LmA4LiZ4LiV4LijCivguJXguKPguLXguJrguJYKK+C4leC4o+C4teC4muC4ueC4owor4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4LiaCivguJXguKPguLXguJvguKfguLLguKIKK+C4leC4o+C4teC4m+C4tOC4juC4gQor4LiV4Lij4Li14Lib4Li04LiV4Lic4LilCivguJXguKPguLXguJzguKXguJjguLLguJXguLgKK+C4leC4o+C4teC4nOC4peC4quC4oeC4uOC4leC4luC4suC4mQor4LiV4Lij4Li14Lic4Lil4LiyCivguJXguKPguLXguJ7guLTguJjguJ7guKPguKPguJMKK+C4leC4o+C4teC4nuC4tOC4qeC4iOC4seC4geC4owor4LiV4Lij4Li14LmA4Lie4LiK4Lij4LiX4Lix4LiT4LiR4Li1CivguJXguKPguLXguYDguJ7guIrguKPguJ7guKfguIcKK+C4leC4o+C4teC5gOC4nuC4iuC4o+C4quC4oeC4hOC4uOC4kwor4LiV4Lij4Li14Lig4LieCivguJXguKPguLXguKDguJ7guJnguLLguJYKK+C4leC4o+C4teC4oOC4ueC4oeC4tAor4LiV4Lij4Li14Lig4Li54LinCivguJXguKPguLXguKHguJjguLjguKMKK+C4leC4o+C4teC4oeC4ueC4o+C4leC4tAor4LiV4Lij4Li14Lii4Lih4LiBCivguJXguKPguLXguKLguLHguKHguJvguKfguLLguKIKK+C4leC4o+C4teC4o+C4seC4leC4meC5jAor4LiV4Lij4Li14LmC4Lil4LiBCivguJXguKPguLXguYLguKXguIHguJnguLLguJYKK+C4leC4o+C4teC5guC4peC5gOC4geC4qAor4LiV4Lij4Li14LmC4Lil4LiI4LiZ4LmMCivguJXguKPguLXguYLguKXguKvguIEKK+C4leC4o+C4teC5guC4peC4q+C4sAor4LiV4Lij4Li14Lin4Liy4LiV4Lic4LilCivguJXguKPguLXguKjguIEKK+C4leC4o+C4teC4qOC4ueC4pQor4LiV4Lij4Li14Liq4Lih4LitCivguJXguKPguLXguKrguKHguLjguJXguJbguLLguJkKK+C4leC4o+C4teC4quC4seC4leC4geC4uOC4peC4sgor4LiV4Lij4Li14Liq4Lix4LiZ4LiZ4Li04Lia4Liy4LiV4Lic4LilCivguJXguKPguLXguKrguLLguKMKK+C4leC4o+C4teC4quC4tOC4meC4mOC4uOC4o+C4qgor4LiV4Lij4Li14Liq4Li44LiE4LiZ4LiY4LmMCivguJXguKPguLXguKrguLjguKPguJzguKUKK+C4leC4o+C4teC5gOC4quC4oeC4q+C4nOC4pQor4LiV4Lij4Li14Lit4Lih4Lik4LiVCivguJXguKPguLXguK3guLLguIHguLLguKjguJzguKUKK+C4leC4o+C4teC5gOC4reC4geC4oOC4suC4ngor4LiV4Lij4Li14LmA4Lit4LiB4Liy4LiZ4Li44Lig4Liy4LieCivguJXguKPguLbguIEKK+C4leC4o+C4tuC4geC4leC4o+C4reC4hwor4LiV4Lij4Li24LiB4LiW4Lit4LiHCivguJXguKPguLbguIcKK+C4leC4o+C4tuC4h+C4leC4o+C4sgor4LiV4Lij4Li24LiH4LioLQor4LiV4Lij4Li4CivguJXguKPguLjguJMKK+C4leC4o+C4uOC4ogor4LiV4Lij4Li44LipCivguJXguKPguLjguKnguIjguLXguJkKK+C4leC4o+C4uQor4LiV4Lij4Li54LmICivguJXguKTguJMKK+C4leC4pOC4ky0KK+C4leC4pOC4k+C4iuC4suC4leC4tAor4LiV4Lik4LiT4Lih4Lix4LiiCivguJXguKTguJXguLXguKItCivguJXguKTguJXguLXguKLguLAKK+C4leC4pOC4lwor4LiV4Lik4LibCivguJXguKTguKnguJPguLIKK+C4leC4pOC5hQor4LiV4LilCivguJXguKXguIEKK+C4leC4peC4geC4hOC4sOC4meC4reC4hwor4LiV4Lil4LiB4Lia4Liy4LiV4LijCivguJXguKXguIHguYLguJvguIHguK7guLIKK+C4leC4peC4geC4q+C4seC4p+C5gOC4o+C4suC4sAor4LiV4Lil4LiaCivguJXguKXguJrguJXguLDguYHguKXguIcKK+C4leC4peC4muC4meC4gQor4LiV4Lil4Lia4Lir4Lil4Lix4LiHCivguJXguKXguK3guJQKK+C4leC4peC4reC4lOC4o+C4reC4lOC4neC4seC5iOC4hwor4LiV4Lil4LiwCivguJXguKXguLHguJoKK+C4leC4peC4seC4muC4meC4suC4gQor4LiV4Lil4Liy4LiUCivguJXguKXguLLguJTguYDguIfguLTguJkKK+C4leC4peC4suC4lOC4l+C5ieC4reC4h+C4meC5ieC4swor4LiV4Lil4Liy4LiU4LiZ4Lix4LiUCivguJXguKXguLLguJTguJnguYnguLMKK+C4leC4peC4suC4lOC4oeC4t+C4lAor4LiV4Lil4Liy4LiU4Lii4Li14LmI4Liq4Liy4LiZCivguJXguKXguLLguJTguKrguJQKK+C4leC4peC4suC4lOC4q+C4meC5ieC4suC4hOC4uOC4gQor4LiV4Lil4Liy4LiU4Lir4Lil4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguJXguKXguLLguJTguKvguLjguYnguJkKK+C4leC4peC4tOC5iOC4hwor4LiV4Lil4Li24LiHCivguJXguKfguIcKK+C4leC4p+C4h+C4nuC4o+C4sOC4mOC4suC4leC4uAor4LiV4LmI4Lin4LiZCivguJXguYnguKfguKHguYDguJXguLXguYnguKLguKEKK+C4leC4p+C4seC4gQor4LiV4Lin4Lix4LiUCivguJXguKfguLLguJQKK+C4leC4rQor4LiV4LmI4LitCivguJXguYnguK0KK+C4leC4reC4gQor4LiV4LmK4Lit4LiBCivguJXguYrguK3guIHguYYKK+C4leC5iuC4reC4geC4leC5i+C4reC4ogor4LiV4LmI4Lit4LiB4LijCivguJXguYnguK3guIHguKPguLDguIjguIEKK+C4leC4reC4geC4q+C4meC5ieC4sgor4LiV4LmI4Lit4LiB4Li04LmI4LiHCivguJXguYjguK3guITguKfguLLguKHguKLguLLguKfguKrguLLguKfguITguKfguLLguKHguKLguLfguJQKK+C4leC4reC4hwor4LiV4LmJ4Lit4LiHCivguJXguK3guIfguIHguKPguLLguKIKK+C4leC5ieC4reC4h+C4geC4seC4mQor4LiV4LmJ4Lit4LiH4LiB4Liy4LijCivguJXguYnguK3guIfguITguJTguLUKK+C4leC5ieC4reC4h+C5g+C4iAor4LiV4Lit4LiH4LiV4Lit4LiiCivguJXguYnguK3guIfguJXguLIKK+C4leC5ieC4reC4h+C5gOC4lQor4LiV4Lit4LiH4LmB4LiV4LiBCivguJXguYjguK3guIfguYHguJXguYjguIcKK+C4leC5ieC4reC4h+C5guC4l+C4qQor4LiV4LmJ4Lit4LiH4LiY4Lij4LiT4Li14Liq4Liy4LijCivguJXguK3guIfguYDguJvguKPguLXguKLguIcKK+C4leC5ieC4reC4h+C4quC4ueC5iQor4LiV4LmJ4Lit4LiH4Lir4LiyCivguJXguK3guIfguYDguKvguKXguLfguK3guIcKK+C4leC4reC4lAor4LiV4Lit4LiU4LiV4LmI4LitCivguJXguYjguK3guJXguLIKK+C4leC5iOC4reC4leC5ieC4suC4mQor4LiV4LmI4Lit4LiV4Liy4LihCivguJXguYjguK3guJXguLUKK+C4leC5iOC4reC5geC4leC5ieC4oQor4LiV4Lit4LiZCivguJXguYnguK3guJkKK+C4leC5ieC4reC4meC4o+C4seC4mgor4LiV4LmJ4Lit4LiZ4Lij4Lix4Lia4LiC4Lix4Lia4Liq4Li54LmJCivguJXguYnguK3guJnguKvguKHguLnguYDguILguYnguLLguYDguKXguYnguLIKK+C4leC5iOC4reC4meC4seC4lOC4leC5iOC4reC5geC4meC4hwor4LiV4LmJ4Lit4LmA4LiZ4Li34LmJ4LitCivguJXguK3guJoKK+C4leC4reC4muC5guC4leC5iQor4LiV4Lit4Lia4LmB4LiX4LiZCivguJXguK3guYDguJrguLIKK+C4leC5iOC4reC4m+C4suC4gQor4LiV4LmI4Lit4Lib4Liy4LiB4LiV4LmI4Lit4LiE4LizCivguJXguYjguK3guJvguLLguIHguKvguKXguLLguIHguITguLMKK+C4leC4reC4oQor4LiV4LmI4Lit4LihCivguJXguYvguK3guKEKK+C4leC5iOC4reC4oeC4meC5ieC4swor4LiV4LmI4Lit4Lih4LmC4Lil4Lir4Li04LiVCivguJXguK3guKHguYjguK0KK+C4leC5iOC4reC4ogor4LiV4LmJ4Lit4LiiCivguJXguYnguK3guKLguYYKK+C4leC5ieC4reC4ouC4leC4o+C4tOC5iOC4hwor4LiV4LmJ4Lit4Lii4LiV4Li04LmI4LiHCivguJXguYnguK3guKLguJXguLXguKfguLTguJQKK+C4leC5iOC4reC4ouC4q+C4reC4ogor4LiV4Lit4LmB4LiiCivguJXguYjguK3guYHguKLguYnguIcKK+C4leC4reC4o+C5jOC4m+C4tOC5guC4lAor4LiV4LmI4Lit4Lil4LmJ4Lit4LiV4LmI4Lit4LmA4LiW4Li14Lii4LiHCivguJXguYnguK3guKXguLPguYTguKIKK+C4leC5ieC4reC4peC4tOC5ieC4meC4q+C4oeC4sgor4LiV4LmI4Lit4Lin4LmI4LiyCivguJXguYjguK3guKrguLnguYkKK+C4leC5iOC4reC5hOC4quC5iQor4LiV4LmI4Lit4Lir4LiZ4LmJ4LiyCivguJXguYjguK3guKvguJnguYnguLLguKHguLDguJ7guKXguLHguJog4Lil4Lix4Lia4Lir4Lil4Lix4LiH4LiV4Liw4LmC4LiBCivguJXguYnguK3guKvguLTguJkKK+C4leC4reC5geC4q+C4pQor4LiV4LmI4Lit4Lit4Liy4Lii4Li4CivguJXguLAKK+C4leC4sOC4geC4o+C4mQor4LiV4Liw4LiB4Lij4Lin4LiiCivguJXguLDguIHguKPguYnguK0KK+C4leC4sOC4geC4o+C5iOC4reC4oQor4LiV4Liw4LiB4Lij4Lix4LiZCivguJXguLDguIHguKPguLHguJoKK+C4leC4sOC4geC4o+C5ieC4sgor4LiV4Liw4LiB4Lij4Liy4LihCivguJXguLDguIHguKPguLjguJQKK+C4leC4sOC4geC4o+C4uOC4oQor4LiV4Liw4LiB4Lij4Li44Lih4LiV4Liw4LiB4Lij4Liy4LihCivguJXguLDguIHguKXguLAKK+C4leC4sOC4geC4peC4suC4oQor4LiV4Liw4LiB4Lin4LiUCivguJXguLDguIHguK0KK+C4leC4sOC4geC4reC4mQor4LiV4Liw4LiB4Lix4LiHCivguJXguLDguIHguLHguYjguKcKK+C4leC4sOC4geC4seC5iOC4p+C5gOC4geC4o+C4teC4ouC4mgor4LiV4Liw4LiB4Lix4LmI4Lin4LmB4LiU4LiHCivguJXguLDguIHguLHguYjguKfguJXguLHguJQKK+C4leC4sOC4geC4suC4hwor4LiV4Liw4LiB4Liy4LiUCivguJXguLDguIHguLLguKIKK+C4leC4sOC4geC4suC4pwor4LiV4Liw4LiB4Li44LiB4LiV4Liw4LiB4Lix4LiBCivguJXguLDguIHguLjguKIKK+C4leC4sOC4geC4uOC4ouC4leC4sOC4geC4suC4ogor4LiV4Liw4LiB4Li5CivguJXguLDguIHguLnguJQKK+C4leC4sOC5gOC4geC4teC4ouC4geC4leC4sOC4geC4suC4ogor4LiV4Liw4LmA4LiB4Li14Lii4LiHCivguJXguLDguYDguIHguLXguKLguIfguYHguIHguYrguKoKK+C4leC4sOC5gOC4geC4teC4ouC4h+C4o+C4seC5ieC4pwor4LiV4Liw4LmA4LiB4Li14Lii4LiH4Lil4Liy4LiZCivguJXguLDguYDguIHguLXguKLguJoKK+C4leC4sOC5geC4gQor4LiV4Liw4LmB4LiB4LmICivguJXguLDguYHguIHguKPguIcKK+C4leC4sOC5guC4gQor4LiV4Liw4LmC4LiB4LmJCivguJXguLDguYLguIHguIEKK+C4leC4sOC5guC4geC4guC4suC4pwor4LiV4Liw4LmC4LiB4LiU4LizCivguJXguLDguYLguIHguJkKK+C4leC4sOC5guC4geC4o+C4hwor4LiV4Liw4LmC4LiB4Lij4LihCivguJXguLDguYLguIHguKrguYnguKEKK+C4leC4sOC5hOC4geC4owor4LiV4Liw4LiC4LiaCivguJXguLDguILguJrguJ3guKPguLHguYjguIcKK+C4leC4sOC4guC4rQor4LiV4Liw4LiC4Liy4LiaCivguJXguLDguILguLTguJTguJXguLDguILguKfguIcKK+C4leC4sOC5gOC4guC5iQor4LiV4Liw4LmA4LiC4LmJ4LiC4Lia4Lif4Lix4LiZCivguJXguLDguYDguILguYfguJoKK+C4leC4sOC5gOC4guC5h+C4muC5hOC4leC5iOC4guC4reC4mQor4LiV4Liw4LmA4LiC4Li04LiHCivguJXguLDguYLguILguIcKK+C4leC4sOC4hOC4o+C5ieC4rQor4LiV4Liw4LiE4Lij4Lit4LiHCivguJXguLDguITguKPguLHguYjguJnguJXguLDguITguKPguK0KK+C4leC4sOC4hOC4o+C5ieC4swor4LiV4Liw4LiE4Lij4Li04LinCivguJXguLDguITguKPguLjguJoKK+C4leC4sOC4hOC4o+C4uOC4muC4geC4mgor4LiV4Liw4LiE4Lil4Lix4Lia4LiV4Liw4LiE4Lil4LmJ4Liy4LiiCivguJXguLDguITguK3guIEKK+C4leC4sOC4hOC4seC4mQor4LiV4Liw4LiE4LmJ4LiyCivguJXguLDguITguLLguIEKK+C4leC4sOC4hOC4suC4hwor4LiV4Liw4LiE4LmJ4Liy4LiX4Lit4LiHCivguJXguLDguITguYnguLLguJkKK+C4leC4sOC4hOC4tOC4pwor4LiV4Liw4LiE4Li44LmI4LihCivguJXguLDguITguLjguYjguKHguYYKK+C4leC4sOC5gOC4hOC4o+C4teC4ouC4pwor4LiV4Liw4LmA4LiE4Li14Lii4LiZCivguJXguLDguYDguITguLXguKLguJnguJfguK3guIcKK+C4leC4sOC5gOC4hOC4teC4ouC4meC5gOC4nOC4t+C4reC4gQor4LiV4Liw4LmA4LiE4Li14Lii4LinCivguJXguLDguYHguITguIcKK+C4leC4sOC5hOC4hOC4o+C5iAor4LiV4Liw4LmE4LiE4Lij4LmJCivguJXguLDguYTguITguKPguYnguYHguJTguIcKK+C4leC4sOC5hOC4hOC4o+C5ieC4meC5ieC4swor4LiV4Liw4LmE4LiE4Lij4LmJ4Lia4LiBCivguJXguLDguYTguITguKPguYnguKvguK3guKEKK+C4leC4sOC5hOC4hOC4o+C5ieC4q+C4suC4h+C4meC4suC4hAor4LiV4Liw4LmA4LiG4LmICivguJXguLDguYHguIfguYkKK+C4leC4sOC4leC4tOC4mQor4LiV4Liw4LmB4LiV4Lij4LmJ4LiZCivguJXguLDguJnguK3guKIKK+C4leC4sOC4meC4suC4pwor4LiV4Liw4Lia4LihCivguJXguLDguJrguK3guIcKK+C4leC4sOC4muC4reC4h+C4geC4seC4mQor4LiV4Liw4Lia4Lit4LiH4LmB4LiU4LiHCivguJXguLDguJrguK3guIfguYDguJ7guIrguKMKK+C4leC4sOC4muC4reC4ogor4LiV4Liw4Lia4Lix4LiZCivguJXguLDguJrguLHguJnguYTguJ8KK+C4leC4sOC4muC4tOC5ieC4hwor4LiV4Liw4Lia4Li04LiUCivguJXguLDguJrguLTguJTguJXguLDguJrguK3guKIKK+C4leC4sOC4muC4teC5ieC4leC4sOC4muC4seC4mQor4LiV4Liw4Lia4Li24LiHCivguJXguLDguJrguLjguYnguKIKK+C4leC4sOC4muC4uOC5ieC4ouC5hgor4LiV4Liw4Lia4Li54LiZCivguJXguLDguYDguJrguYfguIcKK+C4leC4sOC5gOC4muC5h+C4h+C4oeC4suC4mQor4LiV4Liw4LmB4Lia4LiBCivguJXguLDguYHguJrguIcKK+C4leC4sOC5geC4muC4h+C4oeC4suC4mQor4LiV4Liw4LmC4Lia4LihCivguJXguLDguYTguJoKK+C4leC4sOC4m+C4mgor4LiV4Liw4Lib4Lil4Li04LiHCivguJXguLDguJvguLHguJTguJXguLDguJvguYjguK3guIcKK+C4leC4sOC4m+C4tOC5ieC4hwor4LiV4Liw4Lib4Li44LmI4Lih4LiV4Liw4Lib4LmI4LizCivguJXguLDguJvguLkKK+C4leC4sOC4m+C4ueC5gOC4guC5h+C4oQor4LiV4Liw4Lib4Li54LiE4Lin4LiHCivguJXguLDguJvguLnguKvguLHguKfguYDguKvguYfguJQKK+C4leC4sOC4nuC4hwor4LiV4Liw4Lie4LiUCivguJXguLDguJ7guK3guIcKK+C4leC4sOC4nuC4seC4gQor4LiV4Liw4Lie4Lix4LiHCivguJXguLDguJ7guLHguJQKK+C4leC4sOC4nuC4seC5ieC4mQor4LiV4Liw4Lie4Liy4LiBCivguJXguLDguJ7guLLguJkKK+C4leC4sOC4nuC4suC4meC4iuC5ieC4suC4hwor4LiV4Liw4Lie4Liy4LiZ4Lir4LiZ4Li5CivguJXguLDguJ7guLLguJoKK+C4leC4sOC4nuC4suC4muC4meC5ieC4swor4LiV4Liw4Lie4Liy4LiiCivguJXguLDguJ7guLLguKLguYHguKXguYjguIcKK+C4leC4sOC4nuC4tuC4lAor4LiV4Liw4Lie4Li24LiU4LiV4Liw4Lie4Li34LitCivguJXguLDguJ7guLjguYjguJkKK+C4leC4sOC4nuC4uOC5iOC4meC4q+C4jeC5ieC4suC4iuC5ieC4suC4hwor4LiV4Liw4LmA4Lie4Lij4LiyCivguJXguLDguYDguJ7guLTguIcKK+C4leC4sOC5gOC4nuC4tOC4lAor4LiV4Liw4LmA4Lie4Li04LmI4LiZCivguJXguLDguYDguJ7guLXguKLguJkKK+C4leC4sOC5gOC4nuC4teC4ouC4meC4l+C4reC4hwor4LiV4Liw4LmA4Lie4Li14Lii4LiZ4LiZ4LmJ4Liz4LmA4LiE4LmH4LihCivguJXguLDguYLguJ7guIEKK+C4leC4sOC5guC4nuC4hwor4LiV4Liw4LmC4Lie4LiZCivguJXguLDguYDguKDguLIKK+C4leC4sOC5gOC4oOC4suC5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4LiV4Liw4LmD4Lig4LmJCivguJXguLDguKHguYjguK0KK+C4leC4sOC4oeC4reC4ogor4LiV4Liw4Lii4Lit4LiH4Liq4Liw4Lil4LiyCivguJXguLDguKPguLHguIcKK+C4leC4sOC4o+C4seC4h+C4geC4sOC4meC4uQor4LiV4Liw4Lij4Lix4LiH4LiV4Lix4LiH4LiB4Lin4Liy4LiHCivguJXguLDguKPguLHguIfguJXguLHguIfguIrguYnguLLguIcKK+C4leC4sOC4o+C4suC4hwor4LiV4Liw4Lil4Lit4LiHCivguJXguLDguKXguK3guJkKK+C4leC4sOC4peC5iOC4reC4oQor4LiV4Liw4Lil4LmI4Lit4Lih4LiC4LmJ4Liy4LinCivguJXguLDguKXguYjguK3guKHguJvguYnguK3guKEKK+C4leC4sOC4peC4sAor4LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLTguIfguJvguKXguLTguIcKK+C4leC4sOC4peC4tOC4mgor4LiV4Liw4Lil4Li14LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLbguIcKK+C4leC4sOC4peC4tuC4h+C4nuC4o+C4tuC4h+C5gOC4nuC4o+C4tOC4lAor4LiV4Liw4Lil4Li44LiHCivguJXguLDguKXguLjguYjguKEKK+C4leC4sOC4peC4uOC5iOC4oeC4meC4gQor4LiV4Liw4Lil4Li44Lih4Lia4Lit4LiZCivguJXguLDguKXguLjguYjguKHguYLguJvguIcKK+C4leC4sOC4peC4uOC4oeC4nuC4rQor4LiV4Liw4Lil4Li44Lih4Lie4Li44LiBCivguJXguLDguKXguLjguYjguKHguK3guLTguJQKK+C4leC4sOC4peC4uOC4ogor4LiV4Liw4LmA4Lil4LiHCivguJXguLDguYHguKXguIfguYHguIHguIcKK+C4leC4sOC5hOC4pQor4LiV4Liw4Lin4Lix4LiZCivguJXguLDguKfguLHguJnguILguLbguYnguJkKK+C4leC4sOC4p+C4seC4meC4leC4gQor4LiV4Liw4Lin4Lix4LiZ4Lii4Lit4LmB4Liq4LiHCivguJXguLDguKfguLHguJnguK3guK3guIEKK+C4leC4sOC4p+C4seC4meC4reC4reC4geC4geC4peC4suC4hwor4LiV4Liw4Lin4Lix4LiZ4Lit4Lit4LiB4LmD4LiB4Lil4LmJCivguJXguLDguKfguLHguJnguK3guK3guIHguYTguIHguKUKK+C4leC4sOC4p+C4seC4meC4reC5ieC4reC4oeC4guC5ieC4suC4pwor4LiV4Liw4Lin4Liy4LiHCivguJXguLDguYDguKfguJkKK+C4leC4sOC4q+C4meC4tuC5iOC4h+C4o+C4seC4lAor4LiV4Liw4Lir4Lil4Li04LinCivguJXguLDguKvguKXguLjguIEKK+C4leC4sOC4q+C4peC4uOC4hwor4LiV4Liw4LmA4Lir4Lil4LiZ4LmA4Lib4LmL4LiZCivguJXguLDguYDguKvguKXguLLguLDguYDguJvguLLguLAKK+C4leC4sOC5geC4q+C4h+C5iOC4p+C5hgor4LiV4Liw4LmB4Lir4Lih4Liw4LmB4LiC4LiwCivguJXguLDguYHguKvguKXguJnguYHguJvguYvguJkKK+C4leC4sOC5guC4q+C4h+C4gQor4LiV4Lix4LiBCivguJXguLHguIHguIHguLAKK+C4leC4seC4geC4leC4p+C4hwor4LiV4Lix4LiB4LmA4LiV4Li34Lit4LiZCivguJXguLHguYrguIHguYHguJXguJkKK+C4leC4seC4geC4meC5ieC4s+C4o+C4lOC4q+C4seC4p+C4leC4rQor4LiV4Lix4LiB4LiZ4LmJ4Liz4Lij4LiU4Lir4Lix4Lin4Liq4Liy4LiBCivguJXguLHguIHguJnguYnguLPguYPguKrguYjguIHguLDguYLguKvguKXguIEg4LiK4Liw4LmC4LiH4LiB4LiU4Li54LmA4LiH4LiyCivguJXguLHguIHguJrguLLguJXguKMKK+C4leC4seC4geC4muC4suC4leC4o+C4reC4ouC5iOC4suC4luC4suC4oeC4nuC4o+C4sAor4LiV4Lix4LiB4Lip4LiTCivguJXguLHguIHguKnguJPguLUKK+C4leC4seC4geC4qeC4seC4ogor4LiV4Lix4LiHCivguJXguLHguYjguIcKK+C4leC4seC5ieC4hwor4LiV4Lix4LmJ4LiH4LiB4Lij4LihCivguJXguLHguIfguYDguIEKK+C4leC4seC5ieC4h+C5gOC4guC5h+C4oQor4LiV4Lix4LmJ4LiH4LmE4LiC4LmICivguJXguLHguYnguIfguYDguITguYnguLIKK+C4leC4seC5ieC4h+C5geC4h+C5iAor4LiV4Lix4LmJ4LiH4LmD4LiICivguJXguLHguIfguInguYjguLLguKIKK+C4leC4seC5ieC4h+C4leC5ieC4mQor4LiV4Lix4LmJ4LiH4LiV4Lix4LinCivguJXguLHguYnguIfguJXguLLguITguK3guKIKK+C4leC4seC4h+C4leC4tOC4lAor4LiV4Lix4LmJ4LiH4LmB4LiV4LmICivguJXguLHguYnguIfguYHguJXguYjguIcKK+C4leC4seC5ieC4h+C5guC4leC5iuC4sAor4LiV4Lix4LmJ4LiH4LiX4LmI4LiyCivguJXguLHguYnguIfguJjguLLguJXguLgKK+C4leC4seC5ieC4h+C4meC4suC4rOC4tOC4geC4sgor4LiV4Lix4LmJ4LiH4LiZ4Liy4Lis4Li04LiB4Liy4Lib4Lil4Li44LiBCivguJXguLHguYnguIfguYDguJvguYnguLLguKvguKHguLLguKIKK+C4leC4seC4h+C5gOC4oQor4LiV4Lix4LiH4Lin4Liy4LiiCivguJXguLHguYnguIfguKvguJnguYnguLIKK+C4leC4seC5ieC4h+C4q+C4meC5ieC4suC4leC4seC5ieC4h+C4leC4sgor4LiV4Lix4LmJ4LiH4Lir4Lix4Lin4LmA4Lij4Li34LitCivguJXguLHguYnguIfguK3guIHguJXguLHguYnguIfguYPguIgKK+C4leC4seC4h+C5guC4reC5iwor4LiV4Lix4LiI4LiJ4LiBCivguJXguLHguIjguInguJnguLUKK+C4leC4seC4k+C4keC4uOC4pQor4LiV4Lix4LiT4Lir4Lix4LiB4Lip4Lix4LiiCivguJXguLHguJPguKvguLIKK+C4leC4seC4lAor4LiV4Lix4LiU4LiB4Lix4LiZCivguJXguLHguJTguILguLLguJQKK+C4leC4seC4lOC5g+C4iAor4LiV4Lix4LiU4LiK4LmI4Lit4LiH4LiZ4LmJ4Lit4Lii4LmB4LiV4LmI4Lie4Lit4LiV4Lix4LinCivguJXguLHguJTguIrguYjguK3guIfguKLguYjguK3guIfguYDguJrguLIKK+C4leC4seC4lOC5gOC4iuC4t+C4reC4gQor4LiV4Lix4LiU4LiN4Liy4LiV4Li04LiC4Liy4LiU4Lih4Li04LiV4LijCivguJXguLHguJTguJXguYnguJnguYTguJ8KK+C4leC4seC4lOC4leC4reC4mQor4LiV4Lix4LiU4LiW4LiZ4LiZCivguJXguLHguJTguJfguLLguIcKK+C4leC4seC4lOC4muC4lwor4LiV4Lix4LiU4Lib4Lij4Liw4LmA4LiU4LmH4LiZCivguJXguLHguJTguYDguJvguYfguJnguJXguLHguJTguJXguLLguKIKK+C4leC4seC4lOC4nuC5ieC4rQor4LiV4Lix4LiU4LmE4Lie4LmICivguJXguLHguJTguYTguJ/guJXguYnguJnguKXguKEKK+C4leC4seC4lOC5hOC4n+C4q+C4seC4p+C4peC4oQor4LiV4Lix4LiU4LmE4Lih4LmJ4LiC4LmI4Lih4LiZ4Liy4LihCivguJXguLHguJTguKPguK3guJkKK+C4leC4seC4lOC4o+C4suC4hOC4sgor4LiV4Lix4LiU4Liq4Li04LiZCivguJXguLHguJTguKrguLTguJnguYPguIgKK+C4leC4seC4lOC5gOC4quC5ieC4mQor4LiV4Lix4LiU4Lir4LiZ4LiX4Liy4LiHCivguJXguLHguJTguKvguJnguYnguLIKK+C4leC4seC4lOC4q+C4meC5ieC4suC4ieC4suC4mQor4LiV4Lix4LiU4Lir4LiZ4Liy4Lih4Lit4Lii4LmI4Liy4LmE4Lin4LmJ4Lir4LiZ4LmI4LitCivguJXguLHguJTguKvguLLguIfguJvguKXguYjguK3guKLguKfguLHguJQKK+C4leC4seC4leC4py0KK+C4leC4seC4leC4p+C4qOC4suC4quC4leC4o+C5jAor4LiV4Lix4LiW4Lii4LmMCivguJXguLHguJkKK+C4leC4seC4meC4hOC4reC4q+C4reC4ogor4LiV4Lix4LiZ4LiV4Lij4LiwCivguJXguLHguJnguJXguLQKK+C4leC4seC4meC4leC4tOC4oOC4suC4qeC4sgor4LiV4Lix4LiZ4Lib4Lix4LiN4LiN4LiyCivguJXguLHguJnguKvguKLguIcKK+C4leC4seC4meC5gOC4q+C4tOC4oQor4LiV4Lix4LiZ4Lit4LiB4LiV4Lix4LiZ4LmD4LiICivguJXguLHguJoKK+C4leC4seC4muC5geC4guC5h+C4hwor4LiV4Lix4Lia4LmA4LiV4LmI4LiyCivguJXguLHguJrguYDguJXguYjguLLguILguLLguKcKK+C4leC4seC4muC4m+C4tOC5ieC4hwor4LiV4Lix4Lia4LmA4Lib4LmH4LiUCivguJXguLHguJrguYDguJ7guKXguIcKK+C4leC4seC4muC5gOC4o+C4t+C5iOC4reC4hwor4LiV4Lix4Lia4LmA4Lir4Lil4LmH4LiBCivguJXguLHguJrguK3guYjguK3guJkKK+C4leC4seC4pwor4LiV4Lix4LmL4LinCivguJXguLHguKfguIHguKXguLHguYjguJkKK+C4leC4seC4p+C4geC4peC4suC4hwor4LiV4Lix4Lin4LiB4Liy4LijCivguJXguLHguKfguYDguIHguYfguIcKK+C4leC4seC4p+C4hOC4ueC4k+C4o+C5iOC4p+C4oeC4meC5ieC4reC4ogor4LiV4Lix4Lin4LmC4LiECivguJXguLHguKfguYPguITguKPguJXguLHguKfguKHguLHguJkKK+C4leC4seC4p+C5gOC4h+C4tOC4mQor4LiV4Lix4LmL4Lin4LmA4LiH4Li04LiZCivguJXguLHguYvguKfguYDguIfguLTguJnguITguKXguLHguIcKK+C4leC4seC5i+C4p+C5gOC4h+C4tOC4meC4iOC5iOC4suC4ogor4LiV4Lix4LmL4Lin4LmA4LiH4Li04LiZ4Lij4Lix4LiaCivguJXguLHguKfguIjguLHguIHguKPguYPguKvguI3guYgKK+C4leC4seC4p+C4iOC4s+C4meC4swor4LiV4Lix4Lin4LiI4Li14LmK4LiUCivguJXguLHguKfguYDguIrguLTguJQKK+C4leC4seC4p+C4lOC4tQor4LiV4Lix4Lin4LiV4LmI4Lit4LiV4Lix4LinCivguJXguLHguKfguJXguLHguYnguIcKK+C4leC4seC4p+C4leC4seC5ieC4h+C4leC4seC4p+C4leC4tQor4LiV4Lix4Lin4LiV4Liy4Lii4LiV4Lix4Lin4LmB4LiX4LiZCivguJXguLHguKfguJXguLfguJQKK+C4leC4seC4p+C5gOC4leC5h+C4hwor4LiV4Lix4Lin4LmB4LiX4LiZCivguJXguLHguKfguYHguJfguJnguITguYnguLLguJXguYjguLLguIcKK+C4leC4seC4p+C5geC4l+C4meC4iuC5iOC4p+C4hwor4LiV4Lix4Lin4LmB4LiX4LiZ4LmA4LiK4Li04LiUCivguJXguLHguKfguJnguLLguIcKK+C4leC4seC4p+C4meC4swor4LiV4Lix4Lin4Lib4Lij4Liw4LiB4Lit4LiaCivguJXguLHguKfguJvguKPguLDguIHguLHguJkKK+C4leC4seC4p+C5gOC4m+C5h+C4meC5gOC4geC4peC4teC4ouC4pwor4LiV4Lix4Lin4LmA4Lib4Lil4LmI4LiyCivguJXguLHguKfguYHguJvguKMKK+C4leC4seC4p+C4nOC4ueC5iQor4LiV4Lix4LmJ4Lin4LmC4LicCivguJXguLHguKfguJ7guKPguLAKK+C4leC4seC4p+C4nuC4tOC4oeC4nuC5jAor4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguJXguLHguKfguYDguKHguLfguK3guIcKK+C4leC4seC4p+C5hOC4oeC5iQor4LiV4Lix4Lin4Lii4Li34LiZCivguJXguLHguKfguYDguKXguIIKK+C4leC4seC5i+C4p+C5geC4peC4geC5gOC4h+C4tOC4mQor4LiV4Lix4Lin4Liq4Liw4LiB4LiUCivguJXguLHguYvguKfguKrguLHguI3guI3guLLguYPguIrguYnguYDguIfguLTguJkKK+C4leC4seC5ieC4p+C4quC4tOC4pwor4LiV4Lix4Lin4Lir4LiZ4Lix4LiH4Liq4Li34LitCivguJXguLHguKfguKvguLLguKPguKPguYjguKfguKHguKHguLLguIEKK+C4leC4seC5ieC4p+C5gOC4q+C4teC5iOC4ogor4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiHCivguJXguLHguKfguYDguK3guIEKK+C4leC4sgor4LiV4Liy4LiBCivguJXguLLguIHguJXguJkKK+C4leC4suC4geC4mgor4LiV4Liy4LiB4Lia4LiV4Liy4LmA4LiC4Li14Lii4LiUCivguJXguLLguIHguKXguYnguK3guIcKK+C4leC4suC4geC4peC4seC4mgor4LiV4Liy4LiB4Lil4LmJ4LiyCivguJXguLLguIHguKfguLLguIcKK+C4leC4suC4geC4quC4oeC4reC4hwor4LiV4Liy4LiB4Lir4LiZ4LmJ4LiyCivguJXguLLguIHguK3guLLguIHguLLguKgKK+C4leC4suC4geC4uOC5ieC4hwor4LiV4Liy4LmC4LiB4LmJ4LiHCivguJXguLLguYTguIHguYgKK+C4leC4suC4guC4p+C4suC4hwor4LiV4Liy4LiC4LitCivguJXguLLguILguYjguLLguKIKK+C4leC4suC4guC4suC4pwor4LiV4Liy4LiC4Li44LmI4LiZ4LiV4Liy4LmA4LiC4Li14Lii4LinCivguJXguLLguYDguIIKK+C4leC4suC5geC4guC5h+C4hwor4LiV4Liy4LiE4LihCivguJXguLLguITguYnguLLguIcKK+C4leC4suC4hwor4LiV4LmI4Liy4LiHCivguJXguYjguLLguIfguYYKK+C4leC5iOC4suC4h+C4lOC5ieC4suC4pwor4LiV4LmI4Liy4LiH4Lin4LmI4LiyCivguJXguYjguLLguIfguKvguLLguIEKK+C4leC4suC4h+C4seC4pwor4LiV4Liy4LiI4Lij4Liw4LmA4LiC4LmJCivguJXguLLguIrguLHguYjguIcKK+C4leC4suC4iuC5ieC4suC4hwor4LiV4Liy4LiUCivguJXguLLguYDguJTguLXguKLguKcKK+C4leC4suC5geC4lOC4hwor4LiV4Liy4LiV4LiB4LiB4Lil4LmJ4LiyCivguJXguLLguJXguLHguYrguIHguYHguJXguJkKK+C4leC4suC4leC4seC5ieC4hwor4LiV4Liy4LiV4Liy4Lij4Liy4LiHCivguJXguLLguJXguLXguYgKK+C4leC4suC4leC4uOC5iOC4oQor4LiV4Liy4LmA4LiV4LmH4LiHCivguJXguLLguYLguJUKK+C4leC4suC4luC4seC5iOC4pwor4LiV4Liy4LiX4Lin4LiUCivguJXguLLguJfguLHguJ4KK+C4leC4suC4mQor4LiV4LmI4Liy4LiZCivguJXguYnguLLguJkKK+C4leC4suC4meC4geC5geC4geC5ieC4pwor4LiV4Liy4LiZ4LiC4LmC4Lih4LiiCivguJXguYnguLLguJnguJfguLLguJkKK+C4leC4suC4meC4meC4geC4geC4lAor4LiV4Liy4LiZ4LmA4Liq4Li14LmJ4Lii4LiZCivguJXguLLguJnguKvguIEKK+C4leC4suC4meC4q+C4oeC5iOC4reC4mQor4LiV4Liy4LiZ4LmA4Lir4Lil4Li34Lit4LiHCivguJXguLLguJnguYnguLMKK+C4leC4suC4meC4tQor4LiV4Liy4LiaCivguJXguLLguJrguJfguLHguJoKK+C4leC4suC4muC4l+C4tOC4qAor4LiV4Liy4Lia4Lit4LiUCivguJXguLLguJrguK3guJTguITguKXguLPguIrguYnguLLguIcKK+C4leC4suC4muC4reC4lOC5hOC4lOC5ieC5geC4p+C5iOC4mQor4LiV4Liy4Lia4Lit4LiU4LiV4Liy4LmD4LiqCivguJXguLLguJrguK3guJTguKrguK3guJTguJXguLLguYDguKvguYfguJkKK+C4leC4suC4muC4reC4lOC4quC4tQor4LiV4Liy4Lib4Lil4LiyCivguJXguLLguJvguKXguLLguJTguLjguIEKK+C4leC4suC4m+C4tQor4LiV4Liy4Lib4Li14LiV4Liy4LiK4Liy4LiV4Li0CivguJXguLLguJvguLkKK+C4leC4suC5gOC4m+C5h+C4meC4oeC4seC4mQor4LiV4Liy4LmA4Lib4LmH4LiZ4Liq4Lix4Lia4Lib4Liw4Lij4LiUCivguJXguLLguYLguJvguYjguIcKK+C4leC4suC4neC4seC5iOC4hwor4LiV4Liy4Lid4Liy4LiUCivguJXguLLguJ7guKPguYjguLIKK+C4leC4suC4nuC4reC4hwor4LiV4Liy4Lif4Liy4LiHCivguJXguLLguJ/guLLguIfguYTguIHguYgKK+C4leC4suC5gOC4n+C4t+C5ieC4reC4h+C4leC4suC4quC4peC4tuC4hwor4LiV4Liy4LihCivguJXguLLguKHguIHguKfguLLguIcKK+C4leC4suC4oeC4hOC4p+C4suC4ogor4LiV4Liy4Lih4LmD4LiICivguJXguLLguKHguYPguIjguJvguLLguIHguKHguLLguIHguKvguJnguLXguYkKK+C4leC4suC4oeC5g+C4iOC4m+C4suC4geC4peC4s+C4muC4suC4geC4l+C5ieC4reC4hwor4LiV4Liy4Lih4LiUCivguJXguLLguKHguJfguLUKK+C4leC4suC4oeC5gOC4meC4t+C5ieC4reC4nOC5ieC4sgor4LiV4Liy4Lih4Lia4Li44LiN4LiV4Liy4Lih4LiB4Lij4Lij4LihCivguJXguLLguKHguJ4tCivguJXguLLguKHguJ7guKvguLHguJXguJbguLUKK+C4leC4suC4oeC4nuC4sAor4LiV4Liy4Lih4LmA4Lie4Lil4LiHCivguJXguLLguKHguKHguLUKK+C4leC4suC4oeC4oeC4teC4leC4suC4oeC5gOC4geC4tOC4lAor4LiV4Liy4Lih4Lii4LiW4Liy4LiB4Lij4Lij4LihCivguJXguLLguKHguYDguKPguLfguYjguK3guIfguJXguLLguKHguKPguLLguKcKK+C4leC4suC4oeC4peC4oeC4leC4suC4oeC5geC4peC5ieC4hwor4LiV4Liy4Lih4Lil4Liz4Lie4Lix4LiHCivguJXguLLguKHguK3guLPguYDguKDguK3guYPguIgKK+C4leC4suC4oeC4sOC5geC4mQor4LiV4Liy4Lih4Li04LiZCivguJXguLLguKHguLXguJXguLLguKHguLIKK+C4leC4suC5geC4oeC4pwor4LiV4Liy4LiiCivguJXguYnguLLguKIKK+C4leC4suC4ouC4guC4suC4mQor4LiV4Liy4Lii4LiC4Li44LiiCivguJXguLLguKLguITguLLguJfguLXguYgKK+C4leC4suC4ouC5guC4hOC4oQor4LiV4Liy4Lii4LmD4LiICivguJXguLLguKLguIvguLLguIEKK+C4leC4suC4ouC4lOC5ieC4suC4mQor4LiV4Liy4Lii4LiU4Liy4Lia4Lir4LiZ4LmJ4LiyCivguJXguLLguKLguJXguLHguKcKK+C4leC4suC4ouC4l+C4seC5ieC4h+C4geC4peC4oQor4LiV4Liy4Lii4LiZ4LmJ4Lit4LiiCivguJXguLLguKLguJnguLbguYjguIcKK+C4leC4suC4ouC4m+C4o+C4sOC4iuC4lOC4m+C5iOC4suC4iuC5ieC4sgor4LiV4Liy4Lii4LmA4Lib4LmH4LiZ4LmA4Lia4Li34LitCivguJXguLLguKLguJ3guK3guKIKK+C4leC4suC4ouC4neC4seC4h+C4ouC4seC4h+C5gOC4peC4teC5ieC4ouC4hwor4LiV4Liy4Lii4Lie4Lij4Liy4LiiCivguJXguLLguKLguKPguLLguJoKK+C4leC4suC4ouC4peC4suC4oAor4LiV4Liy4Lii4Lir4LmI4LiyCivguJXguLLguKLguYLguKvguIcKK+C4leC4suC4ouC4reC4lOC4leC4suC4ouC4reC4ouC4suC4gQor4LiV4Liy4Lij4Liy4LiHCivguJXguLLguKPguLLguIfguKrguK3guJkKK+C4leC4suC4o+C4suC4h+C5gOC4q+C4peC4teC5iOC4ouC4oQor4LiV4Liy4Lij4Liy4LmE4LiVCivguJXguLLguKPguYnguLLguKIKK+C4leC4suC4o+C4tOC5ieC4pwor4LiV4Liy4LmA4Lij4Li34LitCivguJXguLLguYDguKPguLfguK3guIrguLHguKIKK+C4leC4suC4pQor4LiV4Liy4Lil4Lib4Lix4LiV4LijCivguJXguLLguKXguJvguLHguJXguKPguJrguLHguIfguYDguJ7guKXguLTguIcKK+C4leC4suC4peC4m+C4seC4leC4o+C4pOC5heC4qeC4tQor4LiV4Liy4Lil4LihCivguJXguLLguKXguKLguK3guJTguJTguYnguKfguJkKK+C4leC4suC4peC4rQor4LiV4Liy4Lil4Lit4LiiCivguJXguLLguKXguLLguJkKK+C4leC4suC4peC4suC4ogor4LiV4Liy4Lil4Li14LiV4Liy4LmA4Lir4Lil4Li34Lit4LiBCivguJXguLLguKXguLgKK+C4leC4suC4peC4uOC4gQor4LiV4Liy4Lil4Li44LiB4LiV4Liy4LiK4Lix4LiZCivguJXguLLguKXguLjguIrguLAKK+C4leC4suC5gOC4peC5h+C4geC4leC4suC4meC5ieC4reC4ogor4LiV4Liy4LinCivguJXguYvguLLguKcKK+C4leC4suC5guC4qOC4gQor4LiV4Liy4Liq4LmI4Lit4LiZCivguJXguLLguKrguLPguYDguKDguLIKK+C4leC4suC4quC4teC4leC4suC4quC4sgor4LiV4Liy4LmA4Liq4Li34LitCivguJXguLLguKvguJnguLkKK+C4leC4suC4q+C4oeC4suC4geC4o+C4uOC4gQor4LiV4Liy4Lir4Lii4Li1CivguJXguLLguKvguKXguLTguYjguIcKK+C4leC4suC4q+C4p+C4suC4mQor4LiV4Liy4LmA4Lir4Lil4LmICivguJXguLLguYDguKvguKXguKcKK+C4leC4suC5gOC4q+C4peC4t+C4reC4gQor4LiV4Liy4LmA4Lir4Lil4Li34Lit4LiB4LiV4Liy4Lie4Lit4LiHCivguJXguLLguYHguKvguKfguJkKK+C4leC4suC4rAor4LiV4Liy4Lit4LmJ4Lit4LiiCivguJXguLLguYDguK3guIEKK+C4leC4swor4LiV4LmI4LizCivguJXguLPguILguYnguLLguKfguKrguLLguKPguIHguKPguK3guIHguKvguKHguYnguK0KK+C4leC5iOC4s+C5g+C4iAor4LiV4LmI4Liz4LiK4LmJ4LiyCivguJXguYjguLPguJXguJkKK+C4leC5iOC4s+C4leC5ieC4reC4ogor4LiV4Liz4LiV4LiyCivguJXguLPguJnguLLguJkKK+C4leC4s+C4meC5ieC4s+C4nuC4o+C4tOC4geC4peC4sOC4peC4suC4ouC5geC4oeC5iOC4meC5ieC4swor4LiV4Liz4LmA4LiZ4Li04LiZCivguJXguLPguYDguJnguLXguKLguJkKK+C4leC4s+C4muC4pQor4LiV4Liz4LmB4LiaCivguJXguYnguLPguJvguLjguIEKK+C4leC5ieC4s+C4nOC4suC4hwor4LiV4LmJ4Liz4Lie4Lij4Lin4LiUCivguJXguLPguYHguKIKK+C4leC4s+C5geC4ouC5geC4oeC4pwor4LiV4Liz4Lij4Lin4LiICivguJXguLPguKPguKfguIjguJnguITguKPguJrguLLguKUKK+C4leC4s+C4o+C4p+C4iOC4oOC4ueC4mOC4owor4LiV4Liz4Lij4Lin4LiI4Lin4Lix4LiHCivguJXguLPguKPguKfguIjguKvguKXguKfguIcKK+C4leC4s+C4o+C4seC4mgor4LiV4Liz4Lij4LiyCivguJXguLPguKPguLgKK+C4leC4s+C4peC4tuC4hwor4LiV4Liz4Liq4LmJ4LihCivguJXguLPguYDguKrguLIKK+C4leC4s+C4q+C4meC4seC4gQor4LiV4Liz4Lir4LiZ4Lix4LiB4LiZ4LmJ4LizCivguJXguLPguKvguJnguLHguIHguYHguJ4KK+C4leC4s+C4q+C4meC4tAor4LiV4Liz4Lir4Lij4LiwCivguJXguLPguYHguKvguJnguYjguIcKK+C4leC4s+C5geC4q+C4meC5iOC4h+C4l+C4teC5iOC4leC4seC5ieC4hwor4LiV4Li0CivguJXguLTguIEtCivguJXguLTguIHguLAKK+C4leC4tOC4geC4suC4q+C4o+C4seC4hwor4LiV4Li04LiHCivguJXguLTguYjguIcKK+C4leC4tOC5i+C4hwor4LiV4Li04LmL4LiH4LmGCivguJXguLTguYjguIfguJXguLHguYjguIcKK+C4leC4tOC4h+C4l+C4uOC5gOC4peC4sgor4LiV4Li04LiH4LiqLQor4LiV4Li04LiH4Liq4LiV4Li0CivguJXguLTguIfguKrguJXguLTguKEtCivguJXguLTguYjguIfguKvguLLguKIKK+C4leC4tOC4kwor4LiV4Li04LiTLQor4LiV4Li04LiT4LiK4Liy4LiV4Li0CivguJXguLTguJQKK+C4leC4tOC4lOC5hgor4LiV4Li04LiU4LiB4Lij4Liw4LiU4Li44LihCivguJXguLTguJTguIHguLHguJPguJHguYzguYDguJfguKjguJnguYwKK+C4leC4tOC4lOC5gOC4geC5ieC4hwor4LiV4Li04LiU4LiC4Lix4LiUCivguJXguLTguJTguYDguITguKPguLfguYjguK3guIcKK+C4leC4tOC4lOC4iOC4sAor4LiV4Li04LiU4LiI4Lix4LiB4Lij4Lii4Liy4LiZCivguJXguLTguJTguYPguIgKK+C4leC4tOC4lOC4leC4peC4gQor4LiV4Li04LiU4LiV4Lil4Liy4LiUCivguJXguLTguJTguJXguYjguK0KK+C4leC4tOC4lOC4leC5ieC4reC4ouC4q+C5ieC4reC4ouC4leC4suC4oQor4LiV4Li04LiU4LiV4Liw4LiB4Lij4LmJ4LitCivguJXguLTguJTguJXguLHguKcKK+C4leC4tOC4lOC4leC4sgor4LiV4Li04LiU4LiV4Liy4LihCivguJXguLTguJTguJXguLfguYnguJkKK+C4leC4tOC4lOC4muC4p+C4gQor4LiV4Li04LiU4Lia4LmI4Lit4LiZCivguJXguLTguJTguJvguLLguIEKK+C4leC4tOC4lOC4nuC4seC4mQor4LiV4Li04LiU4LmE4LifCivguJXguLTguJTguKHguLfguK0KK+C4leC4tOC4lOC5hOC4oeC5ieC4leC4tOC4lOC4oeC4t+C4rQor4LiV4Li04LiU4Lij4LmI4Liy4LiH4LmB4LirCivguJXguLTguJTguKXguJoKK+C4leC4tOC4lOC4peC4oQor4LiV4Li04LiU4Lio4Lix4Lie4LiX4LmMCivguJXguLTguJTguKrguK3guKLguKvguYnguK3guKLguJXguLLguKEKK+C4leC4tOC4lOC4quC4seC4lAor4LiV4Li04LiU4Liq4Liz4LiZ4Lin4LiZCivguJXguLTguJTguKrguLTguJnguJrguJkKK+C4leC4tOC4lOC4q+C4meC5ieC4suC4leC4suC4oeC4q+C4peC4seC4hwor4LiV4Li04LiU4Lir4Lih4Lix4LiUCivguJXguLTguJTguKvguKXguLHguIfguYHguKsKK+C4leC4tOC4lOC5geC4q+C5ieC4hwor4LiV4Li04LiU4Lit4Lix4LiZ4LiU4Lix4LiaCivguJXguLTguJTguK3guYjguLLguIcKK+C4leC4tOC4leC4leC4tOC4gQor4LiV4Li04LiV4LiV4Li04LijCivguJXguLTguJXguJYKK+C4leC4tOC5gOC4leC4teC4ouC4mQor4LiV4Li04LiW4Li1CivguJXguLTguJvguLIKK+C4leC4tOC4m+C4suC4luC4sAor4LiV4Li04Lih4Li0CivguJXguLTguKHguLTguIfguITguKXguLAKK+C4leC4tOC4owor4LiV4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJXguLTguYDguKPguLfguK3guJfguLHguYnguIfguYLguIHguKXguJkKK+C4leC4tOC4pQor4LiV4Li04Lil4LiBCivguJXguLTguYnguKcKK+C4leC4tOC5ieC4p+C5g+C4muC5gOC4peC4t+C5iOC4reC4oQor4LiV4Li1CivguJXguLXguYgKK+C4leC4teC4geC4o+C4o+C5gOC4iuC4teC4ouC4hwor4LiV4Li14LiB4Liy4LiBCivguJXguLXguIHguLTguJkKK+C4leC4teC5gOC4geC4peC5h+C4lAor4LiV4Li14LmA4LiB4Lil4Li14Lii4LinCivguJXguLXguYTguIHguYgKK+C4leC4teC4guC4meC4suC4mgor4LiV4Li14LiC4Lil4Li44LihCivguJXguLXguITguKfguLLguKEKK+C4leC4teC4hOC4rQor4LiV4Li14LiE4Li54LmICivguJXguLXguIfguLnguYPguKvguYnguIHguLLguIHguLTguJkKK+C4leC4teC4h+C4ueC5g+C4q+C5ieC4q+C4peC4seC4h+C4q+C4seC4gQor4LiV4Li14LiI4Liy4LiBCivguJXguLXguIrguLTguIcKK+C4leC4teC4leC4meC4geC5iOC4reC4meC5hOC4guC5iQor4LiV4Li14LiV4LiZ4LiV4Liy4Lii4LiB4LmI4Lit4LiZ4LmE4LiC4LmJCivguJXguLXguJXguKPguKfguJkKK+C4leC4teC4leC4seC5i+C4pwor4LiV4Li14LiV4LmI4Liy4LiHCivguJXguLXguJXguLfguYnguJkKK+C4leC4teC5geC4leC4sAor4LiV4Li14LmC4LiV4LmJCivguJXguLXguJfguK3guIcKK+C4leC4teC4l+C4sOC5gOC4muC4teC4ouC4mQor4LiV4Li14LiX4LmJ4Liy4Lii4LiE4Lij4Lix4LinCivguJXguLXguJfguYnguLLguKLguJnguYnguLMKK+C4leC4teC4mQor4LiV4Li14LiZ4LiB4LiyCivguJXguLXguJnguITguKPguLgKK+C4leC4teC4meC4hOC4ueC5iQor4LiV4Li14LiZ4LiI4LiBCivguJXguLXguJnguIjguYnguLMKK+C4leC4teC4meC4leC4sOC4guC4suC4mgor4LiV4Li14LiZ4LiV4Li44LmK4LiB4LmB4LiBCivguJXguLXguJnguYDguJXguYjguLIKK+C4leC4teC4meC4luC4teC4muC4m+C4suC4geC4geC4seC4lAor4LiV4Li14LiZ4LmA4LiX4LmI4Liy4Lid4Liy4Lir4Lit4LiiCivguJXguLXguJnguYDguJfguLXguKLguJkKK+C4leC4teC4meC4meC4gQor4LiV4Li14LiZ4LmA4Lib4LmH4LiUCivguJXguLXguJnguJzguLUKK+C4leC4teC4meC5geC4o+C4lAor4LiV4Li14LiZ4LmC4Lij4LiH4LiV4Li14LiZ4Lio4Liy4LilCivguJXguLXguJnguYDguKvguKLguLXguKLguJQKK+C4leC4teC4mgor4LiV4Li14Lia4Lij4Lij4LiX4Lix4LiUCivguJXguLXguJrguLHguIfguIHguLHguYnguJkKK+C4leC4teC5iOC5g+C4muC5iQor4LiV4Li14Lib4Lil4Liy4Lir4LiZ4LmJ4Liy4LmE4LiLCivguJXguLXguJvguYjguLIKK+C4leC4teC5iOC4m+C5ieC4suC4mgor4LiV4Li14Lib4LmI4Liy4LmD4Lir4LmJ4LmA4Liq4Li34Lit4LiB4Lil4Lix4LinCivguJXguLXguJvguLXguIEKK+C4leC4teC5geC4m+C4peC4hwor4LiV4Li14Lic4Li1CivguJXguLXguJzguLbguYnguIcKK+C4leC4teC5geC4nOC5iAor4LiV4Li14Lid4Li14Lib4Liy4LiBCivguJXguLXguYLguJ7guKLguJXguLXguJ7guLLguKIKK+C4leC4teC4oeC4reC4hwor4LiV4Li14Lij4LiW4LiwCivguJXguLXguKPguLAKK+C4leC4teC4o+C4seC5ieC4hwor4LiV4Li14Lil4Lix4LiH4LiB4LiyCivguJXguLXguKfguIcKK+C4leC4teC4p+C4seC4p+C4geC4o+C4sOC4l+C4muC4hOC4o+C4suC4lAor4LiV4Li14Liq4LiZ4Li04LiXCivguJXguLXguKrguK3guIfguKvguJnguYnguLIKK+C4leC4teC4quC4s+C4meC4p+C4mQor4LiV4Li14LmA4Liq4LmJ4LiZCivguJXguLXguYDguKrguKHguK0KK+C4leC4teC5gOC4quC4teC4ouC4hwor4LiV4Li14LmA4Liq4Li14Lii4Lin4LmI4LiyCivguJXguLXguKvguJnguYnguLIKK+C4leC4teC4q+C4meC5ieC4suC4leC4suC4ogor4LiV4Li14Lir4LiZ4LmJ4Liy4Lii4Lix4LiB4Lip4LmMCivguJXguLXguKvguKXguLLguKLguKvguJnguYnguLIKK+C4leC4teC4q+C5iOC4suC4hwor4LiV4Li14Lit4Lin4LiZCivguJXguLXguK3guLXguJXguLfguYnguK0KK+C4leC4tgor4LiV4Li24LmGCivguJXguLbguIEKK+C4leC4tuC4geC5hgor4LiV4Li24LmJ4LiB4LmGCivguJXguLbguYnguIHguJXguLHguYnguIEKK+C4leC4tuC4geC5geC4luC4pwor4LiV4Li24LiB4Lij4Liw4Lif4LmJ4LiyCivguJXguLbguIcKK+C4leC4tuC4h+C5hgor4LiV4Li24LiH4LmA4LiE4Lij4Li14Lii4LiUCivguJXguLbguIfguJXguLHguIcKK+C4leC4tuC4h+C4leC4seC4pwor4LiV4Li24LiH4LmA4Lib4Lij4Li14LmK4Lii4LiwCivguJXguLbguJTguJXguLfguYvguK0KK+C4leC4tuC5iuC4lOC4leC4t+C5i+C4rQor4LiV4Li24LiV4Lix4LiHCivguJXguLfguJQKK+C4leC4t+C5iOC4mQor4LiV4Li34LmJ4LiZCivguJXguLfguYjguJnguILguYjguLLguKcKK+C4leC4t+C5ieC4meC4leC4seC4mQor4LiV4Li34LmJ4LiZ4LiV4Lix4LiZ4LmD4LiICivguJXguLfguYjguJnguJXguLHguKcKK+C4leC4t+C5iOC4meC4leC4suC4leC4t+C5iOC4meC5g+C4iAor4LiV4Li34LmI4LiZ4LiV4Liy4LiiCivguJXguLfguYjguJnguJXguLnguKEKK+C4leC4t+C5iOC4meC5gOC4leC5ieC4mQor4LiV4Li34LmI4LiZ4LmB4LiV4LmI4LiU4Li24LiBIOC4quC4tuC4geC5geC4leC5iOC4q+C4meC4uOC5iOC4oQor4LiV4Li34LmI4LiZ4Lif4LmJ4LiyCivguJXguLfguYnguK0KK+C4leC4t+C5iuC4rQor4LiV4Li34LmL4LitCivguJXguLgKK+C4leC4uOC5hgor4LiV4Li44LmKCivguJXguLjguYrguIHguYHguIEKK+C4leC4uOC5iuC4geC5geC4geC5g+C4muC4geC4peC4oQor4LiV4Li44LmK4LiB4LiV4LiyCivguJXguLjguYrguIHguJXguLLguKXguYnguKHguKXguLjguIEKK+C4leC4uOC5iuC4geC4leC4suC5gOC4quC4teC4ouC4geC4muC4suC4pQor4LiV4Li44LmK4LiB4LiV4LmI4LizCivguJXguLjguYrguIHguJXguYjguLPguJnguYnguLPguJfguK3guIcKK+C4leC4uOC4geC4leC4tOC4gQor4LiV4Li44LmK4LiB4LiV4Li04LmK4LiBCivguJXguLjguYrguIHguJXguLjguYjguJkKK+C4leC4uOC5iuC4geC4leC4uOC5i+C4ogor4LiV4Li44LiHCivguJXguLjguYnguIfguIHguYjguLIKK+C4leC4uOC5ieC4h+C4leC4tOC5ieC4hwor4LiV4Li44LmK4LiU4LiV4Li54LmICivguJXguLjguYrguJXguYrguLAKK+C4leC4uOC4leC4seC4hwor4LiV4Li44LiZCivguJXguLjguYjguJkKK+C4leC4uOC5iOC4meC5hgor4LiV4Li44LmL4LiZCivguJXguLjguYjguJnguJXguYjguLLguJkKK+C4leC4uOC4meC4suC4q+C4h+C4seC4mQor4LiV4Li44Lia4LmGCivguJXguLjguYnguJoKK+C4leC4uOC5ieC4muC5hgor4LiV4Li44LmJ4Lia4LiV4Lix4LmJ4LiaCivguJXguLjguYrguJrguJvguYjguK3guIcKK+C4leC4uOC4m+C4seC4lOC4leC4uOC4m+C5iOC4reC4hwor4LiV4Li44Lib4Lix4LiU4LiV4Li44LmA4Lib4LmLCivguJXguLjguYjguKEKK+C4leC4uOC5ieC4oQor4LiV4Li44LmL4LihCivguJXguLjguYnguKHguIHguKfguYnguLLguKcKK+C4leC4uOC4oeC4geC4sgor4LiV4Li44LmJ4Lih4LmB4LiL4LiwCivguJXguLjguKHguJXguLHguIcKK+C4leC4uOC5ieC4oeC5gOC4leC5i+C4mQor4LiV4Li44LmJ4Lih4Lib4Li14LmICivguJXguLjguKHguJ4KK+C4leC4uOC4oeC4nuC4o+C4p+C4lAor4LiV4Li44LmJ4Lih4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguJXguLjguYnguKHguKvguLkKK+C4leC4uOC5iOC4ogor4LiV4Li44LmI4Lii4LmGCivguJXguLjguYnguKIKK+C4leC4uOC5ieC4ouC5hgor4LiV4Li44LmK4LiiCivguJXguLjguYvguKLguJXguLjguYjguKIKK+C4leC4uOC4o+C4hAor4LiV4Li44Lij4LiH4LiELQor4LiV4Li44Lij4LiH4LiE4LmMCivguJXguLjguKPguIfguITguKPguLLguKfguLUKK+C4leC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LiV4Li44LilCivguJXguLjguKXguKrguLQKK+C4leC4uOC4peC4sgor4LiV4Li44Lil4Liy4LiB4Liy4LijCivguJXguLjguKXguLLguITguKEKK+C4leC4uOC4q+C4o+C4seC4lOC4leC4uOC5gOC4q+C4o+C5iAor4LiV4Li5CivguJXguLnguYgKK+C4leC4ueC5iQor4LiV4Li54LiBCivguJXguLnguILguYnguLIKK+C4leC4ueC4lAor4LiV4Li54LiU4LiH4Lit4LiZCivguJXguLnguYjguJXguLHguKcKK+C4leC4ueC5ieC4meC4tOC4o+C4oOC4seC4ogor4LiV4Li54LiaCivguJXguLnguYnguJ7guKPguLDguKHguLLguKXguLHguKIKK+C4leC4ueC5iOC4nuC4uOC4l+C4mOC4nuC4iOC4meC5jAor4LiV4Li54LihCivguJXguLnguKHguYYKK+C4leC4ueC4oeC4leC4suC4oQor4LiV4Li54Lil4Li04LmI4LiZ4Liu4Li34LmJ4LitCivguJXguLnguKvguJnguLIKK+C5gOC4lQor4LmA4LiV4LiBCivguYDguJXguYrguIEKK+C5gOC4leC5h+C4hwor4LmA4LiV4LmI4LiHCivguYDguJXguIoKK+C5gOC4leC5guC4igor4LmA4LiV4LmC4LiK4LiY4Liy4LiV4Li4CivguYDguJXguYnguJkKK+C5gOC4leC5ieC4meC4geC4tOC4meC4o+C4s+C4geC4tOC4mQor4LmA4LiV4LmJ4LiZ4LmA4LiC4LiZCivguYDguJXguYfguJnguJfguYwKK+C5gOC4leC5ieC4meC4o+C4swor4LmA4LiV4LmJ4LiZ4LmB4Lij4LmJ4LiH4LmA4LiV4LmJ4LiZ4LiB4LiyCivguYDguJXguYnguJnguYHguKPguYnguIfguYDguJXguYnguJnguYHguInguYjguIcKK+C5gOC4leC5h+C4oQor4LmA4LiV4LmH4Lih4LmB4LiB4LiZCivguYDguJXguYfguKHguITguKPguLLguJoKK+C5gOC4leC5h+C4oeC5g+C4iAor4LmA4LiV4LmH4Lih4LiV4Lix4LinCivguYDguJXguYfguKHguJXguLIKK+C5gOC4leC5h+C4oeC4leC4t+C5ieC4mQor4LmA4LiV4LmH4Lih4LmA4LiV4LmH4LiHCivguYDguJXguYfguKHguJfguLUKK+C5gOC4leC5h+C4oeC4l+C4teC5iAor4LmA4LiV4LmH4Lih4Lia4Liy4LiXCivguYDguJXguYfguKHguJvguKPguLDguJTguLIKK+C5gOC4leC5h+C4oeC4m+C4o+C4sOC4leC4uQor4LmA4LiV4LmH4Lih4Lib4Liy4LiBCivguYDguJXguYfguKHguYDguJvguLIKK+C5gOC4leC5h+C4oeC4oeC4t+C4rQor4LmA4LiV4LmH4Lih4LmA4Lih4LmH4LiU4LmA4LiV4LmH4Lih4Lir4LiZ4LmI4Lin4LiiCivguYDguJXguYfguKHguYTguKHguYnguYDguJXguYfguKHguKHguLfguK0KK+C5gOC4leC5h+C4oeC4ouC4qAor4LmA4LiV4LmH4Lih4Lij4Lix4LiBCivguYDguJXguYfguKHguKvguLkKK+C5gOC4leC5h+C4oeC5gOC4q+C4meC4teC5iOC4ouC4pwor4LmA4LiV4LmH4Lih4LmA4Lir4Lii4Li14Lii4LiUCivguYDguJXguYfguKHguK3guIEKK+C5gOC4leC5h+C4oeC4reC4geC5gOC4leC5h+C4oeC5g+C4iAor4LmA4LiV4LmH4Lih4Lit4Lix4LiV4Lij4LiyCivguYDguJXguKIKK+C5gOC4leC4ouC5gOC4peC4t+C5ieC4reC4ogor4LmA4LiV4Lij4LmICivguYDguJXguKPguYfguJQKK+C5gOC4leC4o+C5h+C4lOC5gOC4leC4o+C5iAor4LmA4LiV4Lij4LmH4LiU4LmA4LiV4Lij4LiZCivguYDguJXguKPguJkKK+C5gOC4leC4o+C4tOC4hwor4LmA4LiV4Lij4Li14Lii4LiUCivguYDguJXguKPguLXguKLguJoKK+C5gOC4leC4o+C4teC4ouC4oQor4LmA4LiV4Lij4Li14Lii4Lih4LiV4Lij4LihCivguYDguJXguKPguLXguKLguKHguJXguLHguKcKK+C5gOC4leC4o+C4teC4ouC4oeC4nuC4o+C5ieC4reC4oQor4LmA4LiV4Lil4LiwCivguYDguJXguKXguLTguJQKK+C5gOC4leC4p+C5h+C4lAor4LmA4LiV4LmI4LitCivguYDguJXguK3guLAKK+C5gOC4leC4sAor4LmA4LiV4Liw4LiI4Lih4Li54LiBCivguYDguJXguLDguInguLLguIEKK+C5gOC4leC4sOC5guC4lOC5iOC4hwor4LmA4LiV4Liw4LiV4LiyCivguYDguJXguLDguJ3guLjguYjguJkKK+C5gOC4leC4sgor4LmA4LiV4LmI4LiyCivguYDguJXguYnguLIKK+C5gOC4leC5i+C4sgor4LmA4LiV4LmI4Liy4LiB4Lij4Liw4Liq4Li44LiZCivguYDguJXguYjguLLguIHguLTguJnguJzguLHguIHguJrguLjguYnguIcKK+C5gOC4leC5iOC4suC5gOC4geC4teC4ouC4lAor4LmA4LiV4Liy4LmB4LiB4LmK4LiqCivguYDguJXguYvguLLguYDguILguKLguYjguLIKK+C5gOC4leC5ieC4suC5geC4hOC4mQor4LmA4LiV4LmJ4Liy4LmA4LiI4Li14LmJ4Lii4LinCivguYDguJXguYjguLLguJTguLMKK+C5gOC4leC5iOC4suC4l+C4reC4hwor4LmA4LiV4LmI4Liy4LiX4Lit4LmA4Liq4Li34LmI4LitCivguYDguJXguYnguLLguJfguLbguIcKK+C5gOC4leC4suC4l+C4uOC5gOC4o+C4teC4ouC4hwor4LmA4LiV4LmI4Liy4LiZ4LiyCivguYDguJXguYjguLLguJrguYnguLIKK+C5gOC4leC5ieC4suC4m+C4t+C4mQor4LmA4LiV4Liy4Lic4Li04LiHCivguYDguJXguLLguJ/guLnguYgKK+C5gOC4leC4suC5hOC4nwor4LmA4LiV4LmI4Liy4Lij4Lix4LmJ4LiHCivguYDguJXguYnguLLguKPguLHguJoKK+C5gOC4leC5iOC4suC4o+C5ieC4suC4hwor4LmA4LiV4Liy4Lij4Li14LiUCivguYDguJXguYjguLLguYDguKXguLfguK3guJkKK+C5gOC4leC5ieC4suC4quC5iOC4p+C4mQor4LmA4LiV4Liy4Liq4Li54LiaCivguYDguJXguYnguLLguYDguKrguLXguKLguJoKK+C5gOC4leC5iOC4suC4q+C4gQor4LmA4LiV4LmI4Liy4Lir4Lin4Liy4LiiCivguYDguJXguYjguLLguKvguLHguJoKK+C5gOC4leC5ieC4suC4q+C4ueC5iQor4LmA4LiV4LmJ4Liy4Lir4Li54LmJ4Lii4Li14LmJCivguYDguJXguYjguLLguYDguKvguKXguLXguYjguKLguKEKK+C5gOC4leC5iOC4suC5gOC4q+C4peC4t+C4reC4hwor4LmA4LiV4LmJ4Liy4Liu4Lin4LiiCivguYDguJXguYrguLLguLAKK+C5gOC4leC4suC4sOC5geC4leC4sAor4LmA4LiV4Li04LmI4LiHCivguYDguJXguLTguJnguYDguJXguYjguK0KK+C5gOC4leC4tOC4mgor4LmA4LiV4Li04Lia4LmC4LiVCivguYDguJXguLTguKEKK+C5gOC4leC4teC5ieC4ogor4LmA4LiV4Li14Lii4LiHCivguYDguJXguLXguKLguIfguKXguLIKK+C5gOC4leC4teC5ieC4ouC4leC4mQor4LmA4LiV4Li14Lii4LiZCivguYDguJXguLXguKLguJoKK+C5gOC4leC4teC5i+C4ouC4oQor4LmA4LiV4Li14Lii4Lij4LiW4LmMCivguYDguJXguLXguKLguKcKK+C5gOC4leC4teC5iOC4ouC4pwor4LmA4LiV4Li14LmJ4Lii4Lit4Li44LmJ4Lih4LiE4LmI4Lit4LihCivguYDguJXguLfguYnguK0KK+C5gOC4leC4t+C4reC4mQor4LmA4LiV4Li34Lit4LiZ4LmD4LiICivguYDguJXguLfguK3guJnguJXguLIKK+C5gOC4leC4t+C4reC4meC4quC4leC4tAor4LmB4LiV4LmICivguYHguJXguYjguYYKK+C5geC4leC5iQor4LmB4LiV4LiBCivguYHguJXguIHguITguK0KK+C5geC4leC4geC5gOC4h+C4tOC4mQor4LmB4LiV4LiB4LiJ4Liy4LiZCivguYHguJXguIHguInguLLguJnguIvguYjguLLguJnguYDguIvguYfguJkKK+C5geC4leC4geC4lOC4seC4mgor4LmB4LiV4LiB4LiV4Li34LmI4LiZCivguYHguJXguIHguYHguJXguJkKK+C5geC4leC4geC4l+C4seC4ngor4LmB4LiV4LiB4LmA4LiZ4Li34LmJ4Lit4Liq4Liy4LinCivguYHguJXguIHguYDguJnguLfguYnguK3guKvguJnguLjguYjguKEKK+C5geC4leC4geC4neC4ueC4hwor4LmB4LiV4LiB4Lie4Liy4LiZCivguYHguJXguIHguKHguLHguJkKK+C5geC4leC4geC5geC4ouC4gQor4LmB4LiV4LiB4Lij4Liw4LmB4Lir4LiHCivguYHguJXguIHguKPguYnguLLguKcKK+C5geC4leC4geC4q+C4seC4gQor4LmB4LiV4LmI4LiB4LmI4Lit4LiZ4LmB4LiV4LmI4LiB4Li14LmJCivguYHguJXguYjguIHguLXguYnguYHguJXguYjguIHguYjguK3guJkKK+C5geC4leC4hwor4LmB4LiV4LmI4LiHCivguYHguJXguYjguIfguIHguKfguYnguLLguJkKK+C5geC4leC5iOC4h+C4geC4suC4owor4LmB4LiV4LmI4LiH4LiH4Liy4LiZCivguYHguJXguYjguIfguJXguLHguYnguIcKK+C5geC4leC5iOC4h+C4leC4seC4pwor4LmB4LiV4LiH4LmA4LiW4Liy4LiV4Liy4LiiCivguYHguJXguIfguYDguKEKK+C5geC4leC4h+C4o+C5iOC4oeC5g+C4mgor4LmB4LiV4LmI4LiH4Lir4LiZ4LmJ4LiyCivguYHguJXguYjguIfguKvguJnguYnguLLguILguJnguKEKK+C5geC4leC5ieC4iOC4tOC5i+C4pwor4LmB4LiV4LiUCivguYHguJXguYrguJTguYHguJXguYsKK+C5geC4leC5iOC4l+C4p+C5iOC4sgor4LmB4LiV4LiZCivguYHguJXguYnguKEKK+C5geC4leC5ieC4oeC4hOC4uQor4LmB4LiV4LmJ4Lih4LiV4LmI4LitCivguYHguJXguKMKK+C5geC4leC4o+C4h+C4reC4mQor4LmB4LiV4Lij4LmA4LiU4Li14LmI4Lii4LinCivguYHguJXguKPguJ3guKPguLHguYjguIcKK+C5geC4leC4o+C4n+C4seC4meC4n+C4suC4o+C5jAor4LmB4LiV4Lij4Lij4LiW4Lii4LiZ4LiV4LmMCivguYHguJXguKPguKXguLPguYLguJ7guIcKK+C5geC4leC4o+C4p+C4hwor4LmB4LiV4Lij4Lin4LiH4LmC4Lii4LiY4Lin4Liy4LiX4Li04LiVCivguYHguJXguKPguLAKK+C5geC4leC5iOC4peC4sAor4LmB4LiV4LmJ4LinCivguYHguJXguYnguKfguYHguKPguYnguKcKK+C5geC4leC5ieC4p+C5geC4peC5ieC4pwor4LmB4LiV4LmI4Lin4LmI4LiyCivguYHguJXguYnguYHguKfguYnguJQKK+C5geC4leC4sAor4LmB4LiV4Liw4LiV4LmJ4Lit4LiHCivguYLguJUKK+C5guC4leC5iQor4LmC4LiV4LiBCivguYLguJXguYnguITguLLguKPguKEKK+C5guC4leC5iOC4hwor4LmC4LiV4LmJ4LiHCivguYLguJXguYnguIfguYYKK+C5guC4leC4h+C5gOC4leC4hwor4LmC4LiV4LiH4LmGIOC5gOC4leC4h+C5hgor4LmC4LiV4LiO4LiBCivguYLguJXguYrguJQKK+C5guC4leC5ieC4leC4reC4mgor4LmC4LiV4LmJ4LmA4LiW4Li14Lii4LiHCivguYLguJXguJkKK+C5guC4leC4meC4lAor4LmC4LiV4LmJ4LmC4LicCivguYLguJXguKHguKMKK+C5guC4leC4oeC4oy0KK+C5guC4leC4oeC4o+C4mOC4owor4LmC4LiV4LiiCivguYLguJXguYnguYHguKLguYnguIcKK+C5guC4leC4o+C4gQor4LmC4LiV4Lij4LiB4LmE4LiV4LijCivguYLguJXguKPguJQKK+C5guC4leC5ieC4o+C4uOC5iOC4hwor4LmC4LiV4LmA4Lil4LmI4LiZ4Lir4Liy4LiHCivguYLguJXguYnguKfguLLguJfguLUKK+C5guC4leC5ieC4q+C4peC4hwor4LmC4LiV4LmK4LiwCivguYLguJXguYrguLDguIHguKXguKEKK+C5guC4leC5iuC4sOC5guC4guC4gQor4LmC4LiV4LmK4Liw4LmA4LiX4LmJ4Liy4LiK4LmJ4Liy4LiHCivguYLguJXguYrguLDguKvguKHguLnguYgKK+C5guC4leC5iuC4sOC4q+C4oeC4ueC5iOC4muC4ueC4iuC4sgor4LmC4LiV4LmK4Liw4Lit4Li04Lir4Lih4LmI4Liy4LihCivguYPguJXguYkKK+C5g+C4leC5ieC4lOC4tOC4mQor4LmD4LiV4LmJ4LiW4Li44LiZCivguYPguJXguYnguYDguJfguYnguLIKK+C5g+C4leC5ieC5gOC4l+C5ieC4suC4geC4o+C4uOC4k+C4sgor4LmD4LiV4LmJ4LmA4LiX4LmJ4Liy4LiB4Lij4Li44LiT4Liy4LmA4LiI4LmJ4LiyCivguYPguJXguYnguJ3guYjguLLguJ7guKPguLDguJrguLLguJcKK+C5g+C4leC5ieC4neC5iOC4suC4peC4sOC4reC4reC4h+C4mOC4uOC4peC4teC4nuC4o+C4sOC4muC4suC4lwor4LmD4LiV4LmJ4Lid4LmI4Liy4Lil4Liw4Lit4Lit4LiH4Lie4Lij4Liw4Lia4Liy4LiXCivguYTguJUKK+C5hOC4leC5iAor4LmE4LiV4LmJCivguYTguJXguYsKK+C5hOC4leC5ieC4geC5i+C4hwor4LmE4LiV4LmI4LiE4Li54LmJCivguYTguJXguYjguYDguJXguYnguLIKK+C5hOC4leC5iOC4luC4suC4oQor4LmE4LiV4Lib4Lil4LiyCivguYTguJXguYnguJ3guLjguYjguJkKK+C5hOC4leC5ieC5hOC4nwor4LmE4LiV4LmI4LmE4Lih4LmJCivguYTguJXguYjguYTguKHguYnguKXguLPguYDguJTguLXguKLguKcKK+C5hOC4leC4owor4LmE4LiV4Lij4LiB4Li04Lio4Lii4LiyCivguYTguJXguKPguIjguLHguIHguKMKK+C5hOC4leC4o+C4iOC4teC4p+C4owor4LmE4LiV4Lij4LiU4Liy4Lii4Li44LiECivguYTguJXguKPguYjguJXguKPguK3guIcKK+C5hOC4leC4o+C4leC4o+C4sgor4LmE4LiV4Lij4LiV4Lij4Li24LiH4Lip4LmMCivguYTguJXguKPguJfguKfguLLguKMKK+C5hOC4leC4o+C4l+C4qAor4LmE4LiV4Lij4LiX4Li04LieCivguYTguJXguKPguJfguLTguJ7guKLguYwKK+C5hOC4leC4o+C4m+C4tOC4juC4gQor4LmE4LiV4Lij4LmA4Lie4LiXCivguYTguJXguKPguKDguJ4KK+C5hOC4leC4o+C4oOC4suC4hOC4tQor4LmE4LiV4Lij4Lig4Li54Lih4Li0CivguYTguJXguKPguKIKK+C5hOC4leC4o+C4ouC4suC4h+C4qOC5jAor4LmE4LiV4Lij4Lij4LiH4LiE4LmMCivguYTguJXguKPguKPguLHguJXguJnguYwKK+C5hOC4leC4o+C4peC4seC4geC4qeC4k+C5jAor4LmE4LiV4Lij4LmC4Lil4LiBCivguYTguJXguKPguYLguKXguIHguKLguYwKK+C5hOC4leC4o+C4p+C4seC4jwor4LmE4LiV4Lij4Lin4Li04LiK4LiK4LiyCivguYTguJXguKPguKrguKPguJPguITguKHguJnguYwKK+C5hOC4leC4o+C4quC4o+C4k+C4suC4hOC4oeC4meC5jAor4LmE4LiV4Lij4Liq4Li04LiB4LiC4LiyCivguYTguJXguYjguKXguKfguJQKK+C5hOC4leC5iOC4quC4p+C4mQor4LmE4LiV4LmJ4Lir4Lin4Lix4LiZCivguJYKK+C4luC4gQor4LiW4LiB4LmA4LiC4Lih4LijCivguJbguIHguYDguJbguLXguKLguIcKK+C4luC4geC4pQor4LiW4LiH4Lix4LiZCivguJbguIfguLLguJQKK+C4luC4lAor4LiW4LiU4LiW4Lit4LiiCivguJbguJkKK+C4luC4meC4mQor4LiW4LiZ4LiZ4Lil4Liy4LiU4Lii4Liy4LiHCivguJbguJnguJsKK+C4luC4meC4reC4oQor4LiW4LiZ4Lit4Lih4Lit4Liy4Lir4Liy4LijCivguJbguJnguLHguJQKK+C4luC4meC4seC4lOC4guC4p+C4sgor4LiW4LiZ4Lix4LiU4LmD4LiICivguJbguJnguLHguJTguIvguYnguLLguKIKK+C4luC4meC4seC4lOC4luC4meC4teC5iAor4LiW4LiZ4Lix4LiU4Lib4Liy4LiBCivguJbguJnguLHguJTguKHguLfguK0KK+C4luC4meC4seC4mQor4LiW4LiZ4LizCivguJbguJnguLPguJfguLbguIEKK+C4luC4meC4tOC4oQor4LiW4LiZ4Li04Lih4LiB4Liy4LihCivguJbguJnguLTguKHguKrguKPguYnguK3guKIKK+C4luC4mgor4LiW4Lia4LiU4Li1CivguJbguKEKK+C4luC5iOC4oQor4LiW4Lih4LmA4LiH4Li04LiZCivguJbguKHguJXguLDguJfguK3guIcKK+C4luC4oeC4luC4t+C4lAor4LiW4Lih4LmA4LiWCivguJbguKHguJfguK3guIcKK+C4luC5iOC4oeC4meC5ieC4s+C4peC4suC4ouC4o+C4lOC4n+C5ieC4sgor4LiW4Lih4Lib4Lij4Lix4LiB4Lih4Liy4LioCivguJbguKHguJvguLHguJQKK+C4luC4oeC5hOC4mwor4LiW4LmI4Lih4Lij4LmJ4Liy4LiiCivguJbguKHguK0KK+C4luC4oeC4tuC4h+C4l+C4tuC4hwor4LiW4LilCivguJbguKXguIEKK+C4luC4peC4geC4muC4suC4leC4owor4LiW4Lil4LiZCivguJbguKXguKEKK+C4luC4peC5iOC4oQor4LiW4Lil4Lit4LiBCivguJbguKXguLHguJkKK+C4luC4peC4sgor4LiW4Lil4Liy4LiBCivguJbguKXguLLguIHguJbguKXguLMKK+C4luC4peC4suC4geC5hOC4luC4pQor4LiW4Lil4Liy4LiiCivguJbguKXguLMKK+C4luC4peC4s+C5g+C4iAor4LiW4Lil4Liz4LiV4Lix4LinCivguJbguKXguLPguJbguKXguLLguIEKK+C4luC4peC4teC4luC4peC4swor4LiW4Lil4Li24LiH4LiV4LiyCivguJbguKXguLjguIcKK+C4luC4peC4uOC4mQor4LiW4LmI4Lin4LiHCivguJbguYjguKfguIfguJTguLjguKUKK+C4luC5iOC4p+C4h+C4peC5ieC4rQor4LiW4LmJ4Lin4LiZCivguJbguYnguKfguJnguJbguLXguYgKK+C4luC5ieC4p+C4ogor4LiW4LmJ4Lin4Lii4LiV4Lin4LiHCivguJbguYnguKfguKLguYLguJbguIcKK+C4luC5ieC4p+C4ouC4o+C4suC4h+C4p+C4seC4pQor4LiW4Lin4Lix4LiUCivguJbguKfguLHguJTguJbguKfguLHguJkKK+C4luC4p+C4seC4pQor4LiW4Lin4Lix4Lil4Lii4LmMCivguJbguKfguLLguKIKK+C4luC4p+C4suC4ouC4geC4owor4LiW4Lin4Liy4Lii4LiV4Lix4LinCivguJbguKfguLLguKLguYDguJnguJXguKMKK+C4luC4p+C4suC4ouC4nuC4o+C4sOC4nuC4owor4LiW4Lin4Liy4Lii4Lir4Lix4LinCivguJbguKfguLTguJkKK+C4luC4p+C4tOC4pQor4LiW4LmI4LitCivguJbguYnguK0KK+C4luC4reC4gQor4LiW4Lit4LiHCivguJbguYjguK3guIcKK+C4luC5ieC4reC4hwor4LiW4LmI4Lit4LiH4LmB4LiW4LinCivguJbguYjguK3guIfguYHguJfguYkKK+C4luC4reC4lAor4LiW4Lit4LiU4LmA4LiC4Li14LmJ4Lii4Lin4LiW4Lit4LiU4LmA4Lil4LmH4LiaCivguJbguK3guJTguITguKfguLLguKEKK+C4luC4reC4lOC4luC4reC4mQor4LiW4Lit4LiU4LmE4Lie4LmICivguJbguK3guJTguKPguKvguLHguKoKK+C4luC4reC4lOC4o+C4ueC4mwor4LiW4Lit4LiU4Liq4Li1CivguJbguK3guJTguKvguLHguKfguYLguILguJkKK+C4luC5ieC4reC4luC4reC4ogor4LiW4LmJ4Lit4LiW4LmJ4Lit4LiiCivguJbguK3guJkKK+C4luC4reC4meC5gOC4h+C4tOC4mQor4LiW4Lit4LiZ4LmD4LiI4LmD4Lir4LiN4LmICivguJbguK3guJnguJXguYnguJnguIHguYjguJnguKPguLLguIEKK+C4luC4reC4meC4l+C4uOC4mQor4LiW4Lit4LiZ4Lie4Li04LipCivguJbguK3guJnguKLguKfguIcKK+C4luC4reC4meC4o+C4suC4geC4luC4reC4meC5guC4hOC4mQor4LiW4Lit4LiZ4Liq4Lih4LitCivguJbguK3guJnguKrguLLguKLguJrguLHguKcKK+C4luC4reC4meC4q+C4h+C4reC4gQor4LiW4Lit4LiaCivguJbguK3guJrguYHguJbguJoKK+C4luC5iOC4reC4oQor4LiW4LmI4Lit4Lih4LiV4Lix4LinCivguJbguK3guKIKK+C4luC5iOC4reC4ogor4LiW4LmJ4Lit4LiiCivguJbguK3guKLguIHguKPguLnguJQKK+C4luC5ieC4reC4ouC4hOC4p+C4suC4oQor4LiW4LmJ4Lit4Lii4LiE4LizCivguJbguK3guKLguYPguIjguYPguKvguI3guYgKK+C4luC4reC4ouC4ieC4sAor4LiW4Lit4Lii4LiJ4Liy4LiBCivguJbguK3guKLguJbguJQKK+C4luC5ieC4reC4ouC5geC4luC4peC4hwor4LiW4Lit4Lii4LiX4LiUCivguJbguK3guKLguJfguLHguJ4KK+C4luC5ieC4reC4ouC4l+C4teC4luC5ieC4reC4ouC4m+C4j+C4tOC4muC4seC4leC4tOC4leC5iOC4reC4geC4seC4mQor4LiW4LmJ4Lit4Lii4LiX4Li14LiW4LmJ4Lit4Lii4Lit4Liy4Lio4Lix4Lii4LiB4Lix4LiZCivguJbguK3guKLguKvguKXguLHguIcKK+C4luC4reC4ouC4q+C4peC4seC4h+C5gOC4guC5ieC4suC4hOC4peC4reC4hwor4LiW4LiwCivguJbguLDguIHguLHguJQKK+C4luC4sOC5gOC4geC4tOC4mQor4LiW4Liw4LmC4LiB4LiZCivguJbguLDguJbguLHguYjguJkKK+C4luC4sOC4luC4seC4mgor4LiW4Liw4LiW4Li44LiZ4LiW4Liw4LiW4Lix4LiZCivguJbguLDguKHguLHguJTguJbguLDguYHguKHguIcKK+C4luC4seC4gQor4LiW4Lix4LiHCivguJbguLHguYjguIcKK+C4luC4seC5iOC4h+C4luC5ieC4reC4ogor4LiW4Lix4LiT4LiR4Li04LilCivguJbguLHguJPguJHguLTguKUtCivguJbguLHguJPguJHguLTguKXguKrguLLguKLguLUKK+C4luC4seC4lAor4LiW4Lix4LiX4LiYCivguJbguLHguJkKK+C4luC4seC5iOC4mQor4LiW4Lix4LmI4LiZ4LmGCivguJbguLHguJoKK+C4luC4seC4muC5hgor4LiW4Lix4Lih4Lig4LmMCivguJbguLHguKcKK+C4luC4seC5iOC4pwor4LiW4Lix4LmI4Lin4LiC4Liy4LinCivguJbguLHguYjguKfguITguKPguYnguLIKK+C4luC4seC5iOC4p+C4hOC5ieC4suC4hwor4LiW4Lix4LmI4Lin4LiH4Lit4LiBCivguJbguLHguYjguKfguJTguLMKK+C4luC4seC5iOC4p+C4meC4sgor4LiW4Lix4LmI4Lin4LmB4Lib4LiaCivguJbguLHguYjguKfguYHguJvguJrguIrguYnguLLguIcKK+C4luC4seC5iOC4p+C4neC4seC4geC4ouC4suC4pwor4LiW4Lix4LmI4Lin4Lie4Lij4LmJ4LiyCivguJbguLHguYjguKfguJ7guLkKK+C4luC4seC5iOC4p+C5gOC4nuC4suC4sAor4LiW4Lix4LmI4Lin4LmB4Lih4LmI4LiV4Liy4LiiCivguJbguLHguYjguKfguYHguKPguLAKK+C4luC4seC5iOC4p+C5gOC4q+C4peC4t+C4reC4hwor4LiW4LiyCivguJbguYnguLIKK+C4luC4suC4gQor4LiW4Liy4LiB4LiW4Liy4LiHCivguJbguLLguIcKK+C4luC5iOC4suC4hwor4LiW4LmI4Liy4LiH4LiV4LiyCivguJbguLLguJQKK+C4luC4suC5guC4luC4oQor4LiW4Liy4LiZCivguJbguYjguLLguJkKK+C4luC5iOC4suC4meC5guC4hOC5ieC4gQor4LiW4LmI4Liy4LiZ4LmE4Lif4LmA4LiB4LmI4LiyCivguJbguYjguLLguJnguYTguJ/guInguLLguKIKK+C4luC5iOC4suC4meC5hOC4n+C5geC4iuC5h+C4gQor4LiW4LmI4Liy4LiZ4Lir4Li04LiZCivguJbguLLguJoKK+C4luC4suC4oQor4LiW4Liy4Lih4LiE4LmJ4Liy4LiZCivguJbguLLguKHguJXguLTguIcKK+C4luC4suC4oeC5hOC4luC5iAor4LiW4Liy4Lih4LiZ4LizCivguJbguLLguKHguJvguLLguIHguITguLMKK+C4luC4suC4oeC4sAor4LiW4LmI4Liy4LiiCivguJbguYjguLLguKLguYDguJTguLXguKLguKcKK+C4luC5iOC4suC4ouC4l+C4reC4lAor4LiW4LmI4Liy4Lii4LiX4Li44LiB4LiC4LmMCivguJbguYjguLLguKLguYDguJcKK+C4luC5iOC4suC4ouC5geC4muC4mgor4LiW4LmI4Liy4Lii4Lib4Lix4Liq4Liq4Liy4Lin4LiwCivguJbguYjguLLguKLguKDguLLguJ7guKLguJnguJXguKPguYwKK+C4luC5iOC4suC4ouC4ouC4sgor4LiW4LmI4Liy4Lii4Lij4Li54LibCivguJbguYjguLLguKLguK3guLjguIjguIjguLLguKPguLAKK+C4luC5iOC4suC4pwor4LiW4Liy4Lin4LijCivguJbguLLguKfguKMtCivguJbguLLguKfguKPguJjguLTguKPguLIKK+C4luC4suC4p+C4o+C4p+C4seC4leC4luC4uAor4LiW4LmJ4Liy4Lin4LmI4LiyCivguJbguYnguLLguKvguLLguIHguKfguYjguLIKK+C4luC5ieC4swor4LiW4LmJ4Liz4LiK4LiyCivguJbguYnguLPguKHguK3guIcKK+C4luC5ieC4s+C4ouC4suC4lOC4oQor4LiW4Li04LmI4LiZCivguJbguLTguKMtCivguJbguLUKK+C4luC4teC5iAor4LiW4Li14LmI4LmGCivguJbguLXguYjguJbguYnguKfguJkKK+C4luC4teC5iOC5gOC4l+C5ieC4sgor4LiW4Li14LiZLQor4LiW4Li14LiaCivguJbguLXguJrguIHguKPguLDguJTguLLguJkKK+C4luC4teC4muC4iOC4seC4geC4owor4LiW4Li14Lia4LiI4Lix4LiB4Lij4Lii4Liy4LiZCivguJbguLXguJrguInguLHguJQKK+C4luC4teC4muC4leC4seC4pwor4LiW4Li14Lia4LiX4Liy4LiHCivguJbguLXguJrguKPguJYKK+C4luC4teC4muC4q+C4seC4p+C4quC5iOC4hwor4LiW4Li14LmI4Lii4Li04LiaCivguJbguLXguYjguKXguK3guJTguJXguLLguIrguYnguLLguIcg4Lir4LmI4Liy4LiH4Lil4Lit4LiU4LiV4Liy4LmA4Lil4LmH4LiZCivguJbguLbguIEKK+C4luC4tuC4hwor4LiW4Li24LiH4LiB4Lix4LiZCivguJbguLbguIfguYHguIHguYjguIHguKPguKPguKEKK+C4luC4tuC4h+C5geC4geC5iOC4mQor4LiW4Li24LiH4LmB4LiB4LmI4Lie4Li04Lij4Liy4Lil4Lix4LiiCivguJbguLbguIfguYHguIHguYjguKHguKPguJPguKDguLLguJ4KK+C4luC4tuC4h+C5geC4geC5iOC4reC4meC4tOC4iOC4geC4o+C4o+C4oQor4LiW4Li24LiH4LmB4LiB4LmI4Lit4Liq4Lix4LiN4LiB4Lij4Lij4LihCivguJbguLbguIfguILguJnguLLguJQKK+C4luC4tuC4h+C4hOC4o+C4suC4pwor4LiW4Li24LiH4LiG4Liy4LiVCivguJbguLbguIfguYDguIfguLTguJkKK+C4luC4tuC4h+C5g+C4iAor4LiW4Li24LiH4LiK4Li14Lie4Li04LiV4Lix4LiB4Lip4Lix4LiiCivguJbguLbguIfguIrguLXguKfguLTguJXguLHguJnguJXguKPguLLguKIKK+C4luC4tuC4h+C4l+C4teC5iAor4LiW4Li24LiH4LmA4Lib4LmH4LiZ4LiW4Li24LiH4LiV4Liy4LiiCivguJbguLbguIfguJzguYnguLIKK+C4luC4tuC4h+C4nuC4o+C4tOC4geC4luC4tuC4h+C4guC4tOC4hwor4LiW4Li24LiH4Lil4Li54LiB4LiW4Li24LiH4LiE4LiZCivguJbguLbguIfguKfguYjguLIKK+C4luC4tuC4h+C5hOC4q+C4meC4luC4tuC4h+C4geC4seC4mQor4LiW4Li34LitCivguJbguLfguK3guIHguLPguYDguJnguLTguJQKK+C4luC4t+C4reC5guC4geC4o+C4mAor4LiW4Li34Lit4LmA4LiC4Liy4LiW4Li34Lit4LmA4Lij4LiyCivguJbguLfguK3guYPguIgKK+C4luC4t+C4reC4lOC4tQor4LiW4Li34Lit4LiV4Lix4LinCivguJbguLfguK3guJfguYnguLLguKIKK+C4luC4t+C4reC4meC5ieC4s+C4nuC4o+C4sOC4nuC4tOC4nuC4seC4kuC4meC5jOC4quC4seC4leC4ouC4sgor4LiW4Li34Lit4Lia4Lin4LiKCivguJbguLfguK3guJrguLHguIfguYDguKvguLXguKLguJkKK+C4luC4t+C4reC4m+C4ueC4mQor4LiW4Li34Lit4Lic4Li04LinCivguJbguLfguK3guJ7guKUKK+C4luC4t+C4reC4ouC4qAor4LiW4Li34Lit4Lii4Lio4LiW4Li34Lit4Lio4Lix4LiB4LiU4Li04LmMCivguJbguLfguK3guYDguKPguLLguJbguLfguK3guYDguILguLIKK+C4luC4t+C4reC4p+C5iOC4sgor4LiW4Li34Lit4Lio4Lix4LiB4LiU4Li04LiZ4LiyCivguJbguLfguK3guKjguLXguKUKK+C4luC4t+C4reC4quC4sgor4LiW4Li34Lit4Liq4Li04LiX4LiY4Li04LmMCivguJbguLfguK3guKvguLLguIcKK+C4luC4t+C4reC5guC4reC4geC4suC4qgor4LiW4Li44LiHCivguJbguLjguIfguYDguITguYnguLIKK+C4luC4uOC4h+C4leC4sOC5gOC4hOC4o+C4teC4ouC4pwor4LiW4Li44LiH4LiV4Liw4LmA4LiE4Li14Lii4LinCivguJbguLjguIfguKLguYjguLLguKEKK+C4luC4uOC4h+C4quC4s+C5gOC4o+C5h+C4iAor4LiW4Li44LiZCivguJbguLjguKIKK+C4luC4uOC4pS0KK+C4luC4uOC4peC4peC4sAor4LiW4Li5CivguJbguLnguIEKK+C4luC4ueC4geC4geC4o+C4sOC4l+C4swor4LiW4Li54LiB4LiB4Lix4LiZCivguJbguLnguIHguILguLIKK+C4luC4ueC4geC4hOC4rQor4LiW4Li54LiB4LiE4Li54LmICivguJbguLnguIHguYPguIgKK+C4luC4ueC4geC5guC4ieC4peC4gQor4LiW4Li54LiB4LiK4Liw4LiV4LiyCivguJbguLnguIHguJXguLIKK+C4luC4ueC4geC4meC5ieC4reC4ogor4LiW4Li54LiB4Lib4Liy4LiBCivguJbguLnguIHguKrguYjguKfguJkKK+C4luC4ueC4geC5gOC4quC5ieC4mQor4LiW4Li54LiB4LmD4Lir4LiN4LmICivguJbguLnguIHguK3guIHguJbguLnguIHguYPguIgKK+C4luC4ueC5hOC4lgor4LiW4Li54LibLQor4LiW4Li54Lib4Liy4Lij4Lir4Lia4Li44LiE4LiE4LilCivguJbguLnguKUtCivguJbguLnguKXguLnguYjguJbguLnguIHguLHguIcKK+C5gOC4luC4geC4tOC4hwor4LmA4LiW4LiZCivguYDguJbguKHguLTguJkKK+C5gOC4luC4oeC4tOC4meC5gOC4iuC4tOC4hwor4LmA4LiW4Lih4Li04LiZ4LmE4Lie4LijCivguYDguJbguKItCivguYDguJbguKLguIjguLTguJUKK+C5gOC4luC4ouC5gOC4iOC4leC4meC4sgor4LmA4LiW4Lii4Liq4Lix4LiH4Lin4Liy4LiqCivguYDguJbguKMKK+C5gOC4luC4oy0KK+C5gOC4luC4o+C4leC4o+C4hwor4LmA4LiW4Lij4Lig4Li54Lih4Li0CivguYDguJbguKPguKfguLLguJcKK+C5gOC4luC4o+C4quC5iOC4reC4h+C4muC4suC4leC4owor4LmA4LiW4Lij4LiwCivguYDguJbguKPguLLguJnguLjguYDguJbguKPguLAKK+C5gOC4luC4o+C4tQor4LmA4LiW4Lil4LmE4LiW4LilCivguYDguJbguKXguLTguIEKK+C5gOC4luC4peC4tOC4hwor4LmA4LiW4Lil4Li04LiH4Lio4LiBCivguYDguJbguKXguLfguK3guIHguJbguKXguJkKK+C5gOC4luC5iOC4rQor4LmA4LiW4Lit4LiwCivguYDguJbguK3guLDguJnguYjguLIKK+C5gOC4luC4sOC5hgor4LmA4LiW4LiyCivguYDguJbguYnguLIKK+C5gOC4luC5ieC4suC5geC4geC5iAor4LmA4LiW4Liy4LiE4Lix4LiZCivguYDguJbguLLguITguLHguJnguYDguKvguKXguYfguIEKK+C5gOC4luC4suC5gOC4h+C4suC4sAor4LmA4LiW4Liy4LiU4Liy4LiZCivguYDguJbguLLguKHguKfguIEKK+C5gOC4luC5ieC4suC4o+C4tuC4hwor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmMCivguYDguJbguLLguKfguLHguKXguKLguYzguIHguKPguJQKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC5gOC4guC4teC4ouC4pwor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4Lib4Li54LiZCivguYDguJbguLLguKfguLHguKXguKLguYzguYDguJvguKPguLXguKLguIcKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC4ouC4reC4lOC4lOC5ieC4p+C4mQor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4LmA4Lir4Lil4LmH4LiBCivguYDguJbguLLguKrguLTguIfguYLguJUKK+C5gOC4luC4suC4q+C4seC4p+C4lOC5ieC4p+C4mQor4LmA4LiW4Liy4LiwCivguYDguJbguLTguIEKK+C5gOC4luC4tOC4hwor4LmA4LiW4Li04LiUCivguYDguJbguLTguJTguYDguJfguLTguIcKK+C5gOC4luC4tOC4lOC4meC5iOC4sgor4LmA4LiW4Li04LiZCivguYDguJbguLXguKLguIcKK+C5gOC4luC4teC4ouC4owor4LmA4LiW4Li34LitCivguYDguJbguLfguK3guIEKK+C5gOC4luC4t+C5iOC4reC4mQor4LmB4LiWCivguYHguJbguIEKK+C5geC4luC4hwor4LmB4LiW4LiZCivguYHguJbguJoKK+C5geC4luC4muC4muC4seC4meC4l+C4tuC4geC4oOC4suC4ngor4LmB4LiW4Lia4Lia4Lix4LiZ4LiX4Li24LiB4LmA4Liq4Li14Lii4LiHCivguYHguJbguJrguYDguKvguKXguYfguIHguJ7guLfguJQKK+C5geC4luC4oQor4LmB4LiW4Lih4Lie4LiBCivguYHguJbguKXguIcKK+C5geC4luC4peC4h+C4geC4suC4o+C4k+C5jAor4LmB4LiW4Lil4LiH4LiB4Liy4Lij4LiT4LmM4Lij4LmI4Lin4LihCivguYHguJbguKXguIfguILguYjguLLguKcKK+C5geC4luC4peC4mgor4LmB4LiW4LinCivguYLguJYKK+C5guC4luC5gOC4hOC4o+C4t+C5iOC4reC4h+C5geC4m+C5ieC4hwor4LmC4LiW4LiHCivguYLguJbguIfguYDguJbguIcKK+C5guC4luC4mgor4LmC4LiW4Lib4Lij4Li04LiBCivguYLguJbguKEKK+C5guC4luC4oeC4meC4suC4geC4suC4owor4LmC4LiW4Liq4LmJ4Lin4LihCivguYTguJYKK+C5hOC4luC5iAor4LmE4LiW4LmJCivguYTguJbguIHguKXguJoKK+C5hOC4luC4hwor4LmE4LiW4LiU4LiwCivguYTguJbguYjguJbguK3guJkKK+C5hOC4luC5iOC4luC4suC4oQor4LmE4LiW4LiZ4LiyCivguYTguJbguYjguJrguLLguJsKK+C5hOC4luC5geC4m+C4owor4LmE4LiW4LiiLQor4LmE4LiW4LilCivguJcKK+C4l+C4gQor4LiX4LiB4Lil4LmJ4LiyCivguJfguYHguIHguKXguYnguKcKK+C4l+C5iOC4hwor4LiX4LiH4Lix4LiZCivguJfguIrguLUKK+C4l+C4lAor4LiX4LiU4LiW4Lit4LiiCivguJfguJTguYHguJfguJkKK+C4l+C4lOC5guC4l+C4o+C5iOC4qwor4LiX4LiU4Lij4Lit4LiHCivguJfguJTguKXguK3guIcKK+C4l+C4lOC5gOC4peC4ggor4LiX4LiU4Liq4Lit4LiaCivguJfguJcKK+C4l+C4mOC4tAor4LiX4LiZCivguJfguYnguJkKK+C4l+C4meC4lOC4tQor4LiX4LiZ4LiVLQor4LiX4LiZ4LiV4LmMCivguJfguJnguJXguIHguLLguKnguJDguYwKK+C4l+C4meC4l+C4suC4mQor4LiX4LiZ4LmC4LiX4LmICivguJfguJnguKEKK+C4l+C4meC4suC4ogor4LiX4LiZ4Liy4Lii4LiE4Lin4Liy4LihCivguJfguJnguLLguKLguYDguKPguLfguK3guJkKK+C4l+C4meC4suC4ouC5gOC4peC4t+C4reC4gQor4LiX4LiZ4Liy4Lii4Lir4LiZ4LmJ4Liy4Lir4LitCivguJfguJoKK+C4l+C4muC4l+C4p+C4mQor4LiX4Lia4Lin4LiHCivguJfguJrguKfguIfguIHguLLguKMKK+C4l+C4muC4p+C4h+C4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4LiX4LihCivguJfguKHguIEKK+C4l+C4oeC4mQor4LiX4Lih4LiaCivguJfguKHguK0KK+C4l+C4oeC4tOC4rAor4LiX4LmA4Lih4Li04LiZCivguJfguYLguKHguJkKK+C4l+C4ouC4reC4ogor4LiX4Lii4LiyCivguJfguKLguLLguKXguLgKK+C4l+C4ouC4suC4peC4uOC4gQor4LiX4LmB4Lii4LiHCivguJfguYHguKLguIfguKHguLjguKEKK+C4l+C4oy0KK+C4l+C4o+C4geC4o+C4o+C4oQor4LiX4Lij4LiHCivguJfguKPguIfguIHguKPguLDguYDguJfguLXguKLguKEKK+C4l+C4o+C4h+C4geC4peC4lAor4LiX4Lij4LiH4LiC4LmJ4Liy4Lin4Lia4Li04LiT4LiR4LmMCivguJfguKPguIfguYDguITguKPguLfguYjguK3guIcKK+C4l+C4o+C4h+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5g+C4q+C4jeC5iAor4LiX4Lij4LiH4LmA4LiI4LmJ4LiyCivguJfguKPguIfguYDguIjguYnguLLguYDguILguYnguLLguJzguLUKK+C4l+C4o+C4h+C4leC4seC4gQor4LiX4Lij4LiH4Lia4Liy4LiU4Liy4LilCivguJfguKPguIfguJvguKPguLDguJ7guLLguKoKK+C4l+C4o+C4h+C4nuC4o+C4sOC5gOC4hOC4o+C4t+C5iOC4reC4h+C5g+C4q+C4jeC5iAor4LiX4Lij4LiH4Lih4Lix4LiT4LiR4LmMCivguJfguKPguIfguKXguLHguIfguIHguLIKK+C4l+C4o+C4h+C4q+C4oeC5ieC4reC4leC4suC4pQor4LiX4Lij4LiK4LiZCivguJfguKPguIrguLLguJXguLQKK+C4l+C4o+C4l+C4tuC4hwor4LiX4Lij4LiY4Li24LiBCivguJfguKPguJ7guKUKK+C4l+C4o+C4nuC4tOC4qQor4LiX4Lij4Lie4Li1CivguJfguKPguKDguLTguIHguKnguYwKK+C4l+C4o+C4oeC4suC4l+C4o+C4geC4o+C4o+C4oQor4LiX4Lij4Lih4Liy4LiZCivguJfguKPguKHguLjguIEKK+C4l+C4o+C4ouC4qAor4LiX4Lij4Lii4Li44LiECivguJfguKPguKPguJfguLbguIcKK+C4l+C4o+C4o+C4mwor4LiX4Lij4Lij4Lib4LiT4LmMCivguJfguKPguKPguJvguJPguLAKK+C4l+C4o+C4o+C4qOC4meC4sAor4LiX4Lij4Lij4Lio4LiZ4Liy4LiB4Liy4LijCivguJfguKPguKPguKjguJnguLXguKLguYwKK+C4l+C4o+C4o+C4suC4igor4LiX4Lij4Lil4Lix4LiB4Lip4LiT4LmMCivguJfguKPguYDguKXguYjguKvguYwKK+C4l+C4o+C4p+C4hwor4LiX4Lij4Lin4LiUCivguJfguKPguKfguJTguJfguKPguIcKK+C4l+C4o+C4p+C4suC4owor4LiX4Lij4Liq4Lit4LiH4LiX4Lij4Liq4Li44LihCivguJfguKPguKrguLLguKIKK+C4l+C4o+C4quC4uOC4oQor4LiX4Lij4Lir4LiUCivguJfguKPguKvguJkKK+C4l+C4o+C4q+C4p+C4pQor4LiX4Lij4Lir4Li24LiHCivguJfguKPguKvguLbguIfguJfguKPguKvguKfguKUKK+C4l+C4o+C4q+C4uQor4LiX4Lij4LmA4Lir4LilCivguJfguKPguK0KK+C4l+C4o+C4reC4oeC5guC4muC4mQor4LiX4Lij4Lit4Li24LiHCivguJfguKPguK3guLjguYnguKEKK+C4l+C4o+C4sOC4meC4hwor4LiX4Lij4Liw4LiZ4Liy4LinCivguJfguKPguLHguJ7guKItCivguJfguKPguLHguJ7guKLguYwKK+C4l+C4o+C4seC4nuC4ouC5jOC4meC4reC4geC4nuC4suC4k+C4tOC4iuC4ouC5jAor4LiX4Lij4Lix4Lie4Lii4LmM4LmD4LiZ4LiU4Li04LiZIOC4quC4tOC4meC5g+C4meC4meC5ieC4swor4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Lih4Lia4Lix4LiV4Li0CivguJfguKPguLHguJ7guKLguKrguLTguJfguJjguLQKK+C4l+C4o+C4seC4nuC4ouC5jOC4quC4tOC4mQor4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Li04LiZ4Liq4LmI4Lin4LiZ4Lie4Lij4Liw4Lih4Lir4Liy4LiB4Lip4Lix4LiV4Lij4Li04Lii4LmMCivguJfguKPguLHguJ7guKLguYzguKrguLTguJnguKrguYjguKfguJnguJ7guKPguLDguK3guIfguITguYwKK+C4l+C4o+C4seC4nuC4ouC5jOC4quC4tOC4meC4quC5iOC4p+C4meC4quC4suC4mOC4suC4o+C4k+C4quC4oeC4muC4seC4leC4tOC4guC4reC4h+C5geC4nOC5iOC4meC4lOC4tOC4mQor4LiX4Lij4Lix4Lie4Lii4Liy4LiB4LijCivguJfguKPguLHguJ7guKLguLLguIHguKPguJjguKPguJPguLUKK+C4l+C4o+C4seC4nuC4ouC4suC4geC4o+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tAor4LiX4Lij4Lix4Lih4LmA4Lib4LmH4LiVCivguJfguKPguLLguJnguIvguLTguKrguYDguJXguK3guKPguYwKK+C4l+C4o+C4suC4mgor4LiX4Lij4Liy4Lia4LmA4LiB4Lil4LmJ4Liy4LiX4Lij4Liy4Lia4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguJfguKPguLLguJrguJ3guYjguLLguJ7guKPguLDguJrguLLguJcKK+C4l+C4o+C4suC4muC4neC5iOC4suC4peC4sOC4reC4reC4h+C4mOC4uOC4peC4teC4nuC4o+C4sOC4muC4suC4lwor4LiX4Lij4Liy4Lia4Lid4LmI4Liy4Lil4Liw4Lit4Lit4LiH4Lie4Lij4Liw4Lia4Liy4LiXCivguJfguKPguLLguKEKK+C4l+C4o+C4suC4oeC4iuC4oQor4LiX4Lij4Liy4Lih4LmA4LiK4LiiCivguJfguKPguLLguKHguKfguLHguKIKK+C4l+C4o+C4suC4oeC4quC4h+C4p+C4mQor4LiX4Lij4Liy4Lih4Liq4Lin4Liy4LiXCivguJfguKPguLLguKIKK+C4l+C4o+C4suC4ouC5geC4geC5ieC4pwor4LiX4Lij4Liy4Lii4LiC4Liy4LinCivguJfguKPguLLguKLguYHguJvguYnguIcKK+C4l+C4o+C4tOC4l+C4owor4LiX4Lij4Li44LiUCivguJfguKPguLjguJTguYLguJfguKPguKEKK+C4l+C4o+C4uOC4lOC4meC4seC5iOC4hwor4LiX4Lij4Li44LihCivguJfguKPguLnguYgKK+C4l+C4pOC4hi0KK+C4l+C4pOC4qeC4juC4tQor4LiX4Lik4Lip4LiO4Li14Lia4LiXCivguJfguKUKK+C4l+C4peC4muC4oQor4LiX4Lil4Lit4Li24LiHCivguJfguKXguLLguKIKK+C4l+C4peC4tOC4lwor4LiX4Lil4Li04LiX4LiX4LiBCivguJfguKfguIcKK+C4l+C5ieC4p+C4hwor4LiX4LmJ4Lin4LiH4LiV4Li04LiHCivguJfguKfguIfguJbguLLguKEKK+C4l+C5iOC4p+C4h+C4l+C5iOC4sgor4LiX4LmI4Lin4LiH4LiX4Liz4LiZ4Lit4LiHCivguJfguYjguKfguIfguJfguLUKK+C4l+C4p+C4lAor4LiX4Lin4LiU4LiZ4LmJ4Lit4LiiCivguJfguKfguJTguLbguIfguKrguYwKK+C4l+C4p+C4mQor4LiX4LmJ4Lin4LiZCivguJfguKfguJnguJfguJoKK+C4l+C4p+C4meC4quC4muC4lgor4LiX4Lin4LiZ4Liq4Liy4Lia4Liy4LiZCivguJfguYjguKfguKEKK+C4l+C5ieC4p+C4oQor4LiX4LmJ4Lin4Lih4LmGCivguJfguYjguKfguKHguJfguYnguJkKK+C4l+C4p+C4ogor4LiX4LmI4Lin4LiiCivguJfguYnguKfguKIKK+C4l+C4p+C4ouC5guC4luC4hwor4LiX4LmI4Lin4Lii4LmC4LiW4LiHCivguJfguKfguKLguLAKK+C4l+C4p+C4reC4ogor4LiX4Lin4Lix4LiV4LiU4Li24LiH4Liq4LmMCivguJfguKfguLHguJXguJTguLbguIfguKrguLLguIHguLLguKMKK+C4l+C4p+C4seC4ogor4LiX4Lin4LiyCivguJfguKfguYjguLIKK+C4l+C4p+C4suC4leC4o+C4tuC4h+C4m+C4o+C4sOC4lOC4seC4mgor4LiX4Lin4Liy4LiX4LioCivguJfguKfguLLguJfguKjguKEtCivguJfguKfguLLguJfguKjguKHguJPguJHguKUKK+C4l+C4p+C4suC4l+C4qOC4tQor4LiX4Lin4Liy4Lia4LijCivguJfguKfguLLguJrguKPguKLguLjguIQKK+C4l+C4p+C4suC4ogor4LiX4Lin4Liy4LijCivguJfguKfguLLguKPguJfguLHguYnguIfguYDguIHguYnguLIKK+C4l+C4p+C4suC4o+C4muC4lgor4LiX4Lin4Liy4Lij4Lia4Liy4LilCivguJfguKfguLLguKPguJvguKPguLDguJTguLHguJoKK+C4l+C4p+C4tAor4LiX4Lin4Li04LiKCivguJfguKfguLTguIotCivguJfguKfguLTguIrguIfguITguYwKK+C4l+C4p+C4tOC4iuC4suC4geC4owor4LiX4Lin4Li04LiK4Liy4LiV4Li0CivguJfguKfguLTguJXguLXguKIKK+C4l+C4p+C4tOC4leC4teC4ouC4sgor4LiX4Lin4Li04Lia4LiWCivguJfguKfguLTguJrguJcKK+C4l+C4p+C4tOC4muC4suC4lwor4LiX4Lin4Li04LibCivguJfguKfguLTguKDguLLguIQKK+C4l+C4p+C4tOC4oOC4suC4hOC4tQor4LiX4Lin4Li04LijCivguJfguKfguLUKK+C4l+C4p+C4teC4hOC4ueC4kwor4LiX4Lin4Li14LiY4Liy4Lig4Li04LmA4Lip4LiBCivguJfguKfguLXguJsKK+C4l+C4p+C4teC4m+C4tQor4LiX4LioCivguJfguKgtCivguJfguKjguIrguLLguJXguLQKK+C4l+C4qOC4l+C4tOC4qAor4LiX4Lio4LiZ4Li04Lii4LihCivguJfguKjguYDguJrguI3guIjguIHguLnguKUKK+C4l+C4qOC4nuC4owor4LiX4Lio4Lie4LilCivguJfguKjguJ7guLTguJjguKPguLLguIrguJjguKPguKPguKEKK+C4l+C4qOC4oS0KK+C4l+C4qOC4oeC4suC4qgor4LiX4Lio4Lih4Li1CivguJfguKjguKfguKPguKPguKkKK+C4l+C4qOC4sgor4LiX4Lio4Liy4LiH4LiE4LmMCivguJfguKrguLIKK+C4l+C4q+C4o+C4sAor4LiX4Lir4Liy4LijCivguJfguKvguLLguKPguIHguK3guIfguJvguKPguLDguIjguLPguIHguLLguKMKK+C4l+C4q+C4suC4o+C4nOC5iOC4suC4meC4qOC4tuC4gQor4LiX4Lir4Liy4Lij4LmA4Lil4LinCivguJfguK0KK+C4l+C5iOC4rQor4LiX4LmJ4LitCivguJfguK3guIEKK+C4l+C4reC4hwor4LiX4LmI4Lit4LiHCivguJfguYnguK3guIcKK+C4l+C4reC4h+C4geC4owor4LiX4Lit4LiH4LiB4Lin4Liy4LinCivguJfguYnguK3guIfguIHguLLguIcKK+C4l+C5ieC4reC4h+C5geC4geC5iAor4LiX4Lit4LiH4LiC4Liy4LinCivguJfguYnguK3guIfguILguLLguKcKK+C4l+C5ieC4reC4h+C4guC4tuC5ieC4mQor4LiX4LmJ4Lit4LiH4LiC4Li24LmJ4LiZ4LiX4LmJ4Lit4LiH4Lie4Lit4LiHCivguJfguYnguK3guIfguYHguILguJkKK+C4l+C5ieC4reC4h+C5geC4guC4p+C4mQor4LiX4LmJ4Lit4LiH4LiE4Lix4LiU4LiX4LmJ4Lit4LiH4LmB4LiC4LmH4LiHCivguJfguK3guIfguITguLMKK+C4l+C4reC4h+C4hOC4s+C4guC4suC4pwor4LiX4Lit4LiH4LiE4Liz4LmA4Lib4Lil4LinCivguJfguYnguK3guIfguITguLjguYnguIcKK+C4l+C4reC4h+C5gOC4hAor4LiX4Lit4LiH4LmA4LiE4Lij4Li34LitCivguJfguYjguK3guIfguIjguLMKK+C4l+C5ieC4reC4h+C4ieC4meC4p+C4mQor4LiX4Lit4LiH4LiK4Lih4Lie4Li54LiZ4Li44LiXCivguJfguK3guIfguIrguLjguJoKK+C4l+C4reC4h+C4lOC4reC4geC4muC4p+C4mgor4LiX4Lit4LiH4LiU4LizCivguJfguYnguK3guIfguYDguJTguLTguJkKK+C4l+C4reC4h+C5geC4lOC4hwor4LiX4Lit4LiH4LiV4LmJ4LiZ4LmB4LiC4LiZCivguJfguYnguK3guIfguJXguKPguLIKK+C4l+C5ieC4reC4h+C4leC4peC4suC4lAor4LiX4Lit4LiH4LiV4Liy4LiB4Li5CivguJfguYnguK3guIfguJbguLTguYjguJkKK+C4l+C4reC4h+C4l+C4o+C4suC4ogor4LiX4Lit4LiH4LiX4LioCivguJfguYnguK3guIfguJfguLXguYgKK+C4l+C4reC4h+C4l+C4tuC4mgor4LiX4LmI4Lit4LiH4LmA4LiX4Li14LmI4Lii4LinCivguJfguK3guIfguJjguKPguKPguKHguIrguLLguJXguLQKK+C4l+C4reC4h+C4meC4nuC4hOC4uOC4kwor4LiX4LmJ4Lit4LiH4LiZ4LmI4Lit4LiHCivguJfguYnguK3guIfguJnguYnguK3guKIKK+C4l+C4reC4h+C4muC4o+C4reC4meC4i+C5jAor4LiX4LmJ4Lit4LiH4LmB4Lia4LiZCivguJfguK3guIfguYPguJoKK+C4l+C4reC4h+C4m+C4o+C4suC4ogor4LiX4Lit4LiH4Lib4Lil4Liy4Lii4LmB4LiC4LiZCivguJfguYnguK3guIfguJvguKXguLTguIcKK+C4l+C4reC4h+C5geC4mwor4LiX4LmJ4Lit4LiH4Lic4Li44LiX4LmJ4Lit4LiH4Lie4Lix4LiHCivguJfguYnguK3guIfguJzguLnguIEKK+C4l+C4reC4h+C5gOC4nOC4t+C4reC4gQor4LiX4Lit4LiH4LmB4Lic4LmI4LiZ4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguJfguK3guIfguJ7guKPguLDguIHguKMKK+C4l+C4reC4h+C4nuC4o+C4sOC4guC4uOC4mQor4LiX4LmJ4Lit4LiH4Lie4Lij4Liw4LiE4Lil4Lix4LiHCivguJfguYnguK3guIfguJ7guKPguLDguYLguKPguIcKK+C4l+C4reC4h+C4nuC4peC4uAor4LiX4LmJ4Lit4LiH4Lie4Lil4Li4CivguJfguYnguK3guIfguJ7guK3guIcKK+C4l+C4reC4h+C4nuC4seC4lOC4lOC4tuC4h+C4quC5jAor4LiX4Lit4LiH4Lie4Lix4LiZ4LiK4Lix4LmI4LiHCivguJfguK3guIfguJ7guLHguJnguJTguLjguKUKK+C4l+C4reC4h+C4nuC4tOC4qAor4LiX4LmJ4Lit4LiH4LmA4Lif4LmJ4LitCivguJfguK3guIfguKDguLkKK+C4l+C4reC4h+C4oeC5ieC4p+C4mQor4LiX4LmJ4Lit4LiH4Lih4Liy4LiZCivguJfguYnguK3guIfguYTguKHguYkKK+C4l+C4reC4h+C5hOC4oeC5iOC4o+C4ueC5ieC4o+C5ieC4reC4mQor4LiX4Lit4LiH4Lii4LmJ4Lit4LiiCivguJfguYnguK3guIfguKLguLjguYnguIfguJ7guLjguIfguIHguKPguLDguKrguK3guJoKK+C4l+C5ieC4reC4h+C4o+C5iOC4p+C4hwor4LiX4LmJ4Lit4LiH4Lij4LmI4Lit4LiHCivguJfguK3guIfguKPguLnguJvguJ7guKPguKPguJMKK+C4l+C5ieC4reC4h+C5gOC4o+C4t+C5iOC4reC4hwor4LiX4LmJ4Lit4LiH4Lil4Liy4LiZCivguJfguK3guIfguKXguLTguJkKK+C4l+C5ieC4reC4h+C5gOC4peC4pwor4LiX4Lit4LiH4LmB4Lil4LmI4LiHCivguJfguK3guIfguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYwKK+C4l+C4reC4h+C4quC4seC4geC5guC4gQor4LiX4Lit4LiH4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMCivguJfguYnguK3guIfguKrguLLguKcKK+C4l+C5ieC4reC4h+C4quC4s+C4meC4p+C4mQor4LiX4LmI4Lit4LiH4Liq4Li34LmI4LitCivguJfguYnguK3guIfguYDguKrguLXguKIKK+C4l+C4reC4h+C4q+C4oeC4seC5ieC4mQor4LiX4LmJ4Lit4LiH4Lir4Lih4LiyCivguJfguYnguK3guIfguKvguKHguLkKK+C4l+C4reC4h+C4q+C4ouC4reC4hwor4LiX4Lit4LiH4Lir4Lii4Lit4LiUCivguJfguK3guIfguKvguKLguLTguJoKK+C4l+C4reC4h+C4q+C4peC4suC4hwor4LiX4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJfguYnguK3guIfguYHguKvguYnguIcKK+C4l+C4reC4h+C5guC4q+C4peC4hwor4LiX4Lit4LiH4Lit4Lix4LiH4LiB4Lik4LipCivguJfguYnguK3guIfguK3guLHguKrguJTguIfguITguJUKK+C4l+C5ieC4reC4h+C4reC4t+C4lAor4LiX4Lit4LiH4Lit4Li44LmE4LijCivguJfguK3guIfguYDguK3guIEKK+C4l+C4reC4lAor4LiX4Lit4LiU4LiB4LiQ4Li04LiZCivguJfguK3guJTguYLguIHguKXguJkKK+C4l+C4reC4lOC4leC4seC4pwor4LiX4Lit4LiU4LiV4LiyCivguJfguK3guJTguJfguKTguKnguI7guLUKK+C4l+C4reC4lOC4l+C4tOC5ieC4hwor4LiX4Lit4LiU4LiX4Li14LmICivguJfguK3guJTguJnguYjguK3guIcKK+C4l+C4reC4lOC4meC5ieC4swor4LiX4Lit4LiU4Lic4LmJ4Liy4Lib4LmI4LiyCivguJfguK3guJTguJ7guKPguLDguJfguLXguYgKK+C4l+C4reC4lOC4nuC4o+C4sOC5gOC4meC4leC4owor4LiX4Lit4LiU4Lih4Lix4LiZCivguJfguK3guJTguKLguK3guJQKK+C4l+C4reC4lOC4o+C4p+C4hwor4LiX4Lit4LiU4Liq4LiB4LiyCivguJfguK3guJTguKrguKHguK0KK+C4l+C4reC4lOC4quC4sOC4nuC4suC4mQor4LiX4Lit4LiU4Liq4Liy4Lii4LiV4LiyCivguJfguK3guJTguYDguKrguLXguKLguIcKK+C4l+C4reC4lOC4q+C4jeC5ieC4sgor4LiX4Lit4LiU4Lir4Li44LmI4LiiCivguJfguK3guJTguYHguKsKK+C4l+C4reC4lOC4reC4suC4peC4seC4ogor4LiX4LmI4Lit4LiW4LmJ4Lit4LiiCivguJfguYnguK3guJbguK3guKIKK+C4l+C5ieC4reC4luC5ieC4reC4ogor4LiX4LmJ4Lit4LmB4LiX4LmJCivguJfguK3guJkKK+C4l+C5iOC4reC4mQor4LiX4Lit4LiZ4LiL4Li04LilCivguJfguK3guJ/guJ/guLXguYgKK+C4l+C5iOC4reC4oeC5hgor4LiX4Lit4LiiCivguJfguK3guKLguIHguK3guIcKK+C4l+C4reC5gOC4o+C4teC4ouC4oQor4LiX4Lit4LmB4Liq4LiHCivguJfguK3guKvguLnguIEKK+C4l+C5iOC4reC5hOC4reC5gOC4quC4teC4ogor4LiX4LiwCivguJfguLDguIfguLHguJkKK+C4l+C4sOC4l+C4seC4lAor4LiX4Liw4LiX4LiyCivguJfguLDguJfguLLguKIKK+C4l+C4sOC4l+C5iOC4suC4pwor4LiX4Liw4LiX4LmJ4Liy4LinCivguJfguLDguJfguLbguIEKK+C4l+C4sOC5gOC4l+C4teC4ouC4lAor4LiX4Liw4LiZ4LiHCivguJfguLDguJnguIfguJXguLHguKcKK+C4l+C4sOC4meC4h+C4qOC4seC4geC4lOC4tOC5jAor4LiX4Liw4LiZ4LiZCivguJfguLDguJnguLAKK+C4l+C4sOC4meC4sgor4LiX4Liw4LiZ4Liy4LiZCivguJfguLDguJnguLLguJnguKvguKXguKfguIcKK+C4l+C4sOC4meC4uAor4LiX4Liw4LiZ4Li44LiBCivguJfguLDguJnguLjguIHguJbguJnguK3guKEKK+C4l+C4sOC4meC4uOC4luC4meC4reC4oQor4LiX4Liw4LiZ4Li44Lia4Liz4Lij4Li44LiHCivguJfguLDguJrguLkKK+C4l+C4sOC5gOC4muC4teC4ouC4mQor4LiX4Liw4LmA4Lia4Li14Lii4LiZ4Lia4LmJ4Liy4LiZCivguJfguLDguYDguJrguLXguKLguJnguKPguLLguKnguI7guKMKK+C4l+C4sOC5gOC4muC4teC4ouC4meC4quC4s+C4oeC4sOC5guC4meC4hOC4o+C4seC4pwor4LiX4Liw4Lih4Lix4LiU4LiX4Liw4LmB4Lih4LiHCivguJfguLDguKHguLbguJkKK+C4l+C4sOC4oeC4t+C5iOC4mQor4LiX4Liw4LmB4Lih4LmI4LiHCivguJfguLDguYHguKHguYjguIfguYYKK+C4l+C4sOC4ouC4suC4l+C4sOC5geC4ouC5geC4qgor4LiX4Liw4Lii4Liy4LiZCivguJfguLDguKLguLLguJnguYPguIgKK+C4l+C4sOC4ouC4suC4meC4reC4ouC4suC4gQor4LiX4Liw4LmA4Lii4Lit4LiX4Liw4Lii4Liy4LiZCivguJfguLDguYHguKIKK+C4l+C4sOC5geC4ouC4quC4suC4oeC4iuC4seC5ieC4mQor4LiX4Liw4Lij4LmI4Lit4LiX4Liw4LmB4Lij4LmICivguJfguLDguKXguKfguIcKK+C4l+C4sOC4peC4reC4gQor4LiX4Liw4Lil4Lix4LiBCivguJfguLDguKXguLHguIHguJfguLDguYHguKXguIcKK+C4l+C4sOC4peC4suC4ogor4LiX4Liw4Lil4Li04LmI4LiZCivguJfguLDguKXguLTguYjguJnguIrguKPguLDguKXguLHguYjguIcKK+C4l+C4sOC4peC4tuC5iOC4hwor4LiX4Liw4Lil4Li24LmI4LiH4LiX4Liw4Lil4Lix4LmI4LiHCivguJfguLDguKXguLgKK+C4l+C4sOC4peC4uOC4geC4peC4suC4h+C4m+C4peC5ieC4reC4hwor4LiX4Liw4Lil4Li44LiU4LiX4Liw4Lil4Liy4LiUCivguJfguLDguKXguLjguJvguKPguLjguYLguJvguKPguYjguIcKK+C4l+C4sOC5gOC4pQor4LiX4Liw4LmA4Lil4LiX4Lij4Liy4LiiCivguJfguLDguYDguKXguYnguJkKK+C4l+C4sOC5gOC4peC5g+C4mQor4LiX4Liw4LmA4Lil4Lia4LmJ4LiyCivguJfguLDguYDguKXguKDguLLguKLguYPguJkKK+C4l+C4sOC5gOC4peC4quC4suC4mgor4LiX4Liw4LmA4Lil4Lir4LiZ4LmJ4Liy4LmD4LiZCivguJfguLDguYDguKXguKvguKXguKfguIcKK+C4l+C4sOC5gOC4peC5hOC4q+C4peC5iOC4l+C4p+C4teC4mwor4LiX4Liw4LmA4Lil4LmI4Lit4LiX4Liw4Lil4LmI4LiyCivguJfguLDguYDguKXguK3guLLguJPguLLguYDguILguJUKK+C4l+C4sOC5gOC4peC4suC4sAor4LiX4Liw4LmA4Lil4Liy4Liw4LmA4Lia4Liy4Liw4LmB4Lin4LmJ4LiHCivguJfguLDguKfguLLguKIKK+C4l+C4sOC5gOC4p+C4mQor4LiX4Lix4LiBCivguJfguLHguIHguILguYwKK+C4l+C4seC4geC4guC4tOC4jQor4LiX4Lix4LiB4LiC4Li04LiTCivguJfguLHguIHguILguLTguJPguLIKK+C4l+C4seC4geC4guC4tOC4k+C4suC4muC4lgor4LiX4Lix4LiB4LiC4Li04LiT4Liy4Lin4Lix4LiPCivguJfguLHguIHguILguLTguYLguJPguJfguIEKK+C4l+C4seC4geC4guC4tOC5hOC4k+C4ouC4muC4uOC4hOC4hOC4pQor4LiX4Lix4LiB4LiX4LmJ4Lin4LiHCivguJfguLHguIHguJfguLLguKIKK+C4l+C4seC4geC4l+C4tOC4mQor4LiX4Lix4LiB4LiZ4Li04Lih4Li04LiVCivguJfguLHguIHguKktCivguJfguLHguIHguKnguLAKK+C4l+C4seC4geC4qeC4sgor4LiX4Lix4LiB4Lip4Li04LiTCivguJfguLHguIHguKnguLTguJPguJnguLTguIHguLLguKIKK+C4l+C4seC4geC4qeC4tOC4k+C4sgor4LiX4Lix4LiB4Lip4Li04LiT4Liy4LiI4Liy4LijCivguJfguLHguIHguKnguLTguJPguLLguJfguLLguJkKK+C4l+C4seC4geC4qeC4tOC4k+C4suC4meC4uOC4m+C4o+C4sOC4l+C4suC4mQor4LiX4Lix4LiB4Lip4Li04LiT4Liy4Lii4Lix4LiZCivguJfguLHguIHguKnguLTguJPguLLguKfguKPguKPguJUKK+C4l+C4seC4geC4qeC4tOC5guC4k+C4l+C4gQor4LiX4Lix4LiE4LiY4LmMCivguJfguLHguIcKK+C4l+C4seC5iOC4hwor4LiX4Lix4LmJ4LiHCivguJfguLHguYnguIcuLi7guIHguLHguJoKK+C4l+C4seC5ieC4h+C4guC4tuC5ieC4meC4l+C4seC5ieC4h+C4peC5iOC4reC4hwor4LiX4Lix4LmJ4LiH4LiE4LiZCivguJfguLHguYnguIfguJTguLjguYnguJkKK+C4l+C4seC5ieC4hy4uLuC4l+C4seC5ieC4hwor4LiX4Lix4LmJ4LiH4LiX4Li1CivguJfguLHguYnguIfguJfguLXguYgKK+C4l+C4seC5ieC4h+C5hiDguJfguLXguYgKK+C4l+C4seC5ieC4h+C4meC4seC5ieC4mQor4LiX4Lix4LmJ4LiH4LiZ4Li14LmJCivguJfguLHguYnguIfguJnguLXguYnguJfguLHguYnguIfguJnguLHguYnguJkKK+C4l+C4seC5ieC4h+C5gOC4meC4t+C5ieC4reC4l+C4seC5ieC4h+C4leC4seC4pwor4LiX4Lix4LmJ4LiH4Lib4Lin4LiHCivguJfguLHguYnguIfguJzguK3guIcKK+C4l+C4seC5ieC4h+C5gOC4ngor4LiX4Lix4LmJ4LiH4Lih4Lin4LilCivguJfguLHguYnguIcuLi7guYHguKXguLAKK+C4l+C4seC4h+C4p+C4pQor4LiX4Lix4LiH4Lin4Li14LmJ4LiX4Lix4LiH4Lin4LilCivguJfguLHguIfguKrguYDguJXguJkKK+C4l+C4seC5ieC4h+C4quC4tOC5ieC4mQor4LiX4Lix4LmJ4LiH4Lir4Lih4LiUCivguJfguLHguYnguIfguKvguKXguLLguKIKK+C4l+C4seC5ieC4h+C4reC4ouC5iOC4suC4h+C4meC4seC5ieC4mQor4LiX4Lix4LiT4LiRLQor4LiX4Lix4LiT4LiR4LmMCivguJfguLHguJPguJHguIHguKPguKPguKEKK+C4l+C4seC4k+C4keC4huC4suC4lQor4LiX4Lix4LiT4LiR4LiZ4Li04LiE4LihCivguJfguLHguJPguJHguYzguJrguJkKK+C4l+C4seC4k+C4keC4p+C4tOC4l+C4ouC4sgor4LiX4Lix4LiT4LiR4Liq4LiW4Liy4LiZCivguJfguLHguJPguJHguLAKK+C4l+C4seC4k+C4keC4tOC4geC4sgor4LiX4Lix4LiT4LiR4Li04Lih4LiyCivguJfguLHguJPguJHguLXguJrguJcKK+C4l+C4seC4lAor4LiX4Lix4LiU4LiU4Lit4LiB4LmE4Lih4LmJCivguJfguLHguJTguJfguLIKK+C4l+C4seC4lOC4l+C4suC4mQor4LiX4Lix4LiU4LmA4LiX4Li14Lii4LihCist4LiX4Lix4LiVCivguJfguLHguJkKK+C4l+C4seC4meC4geC4tOC4mQor4LiX4Lix4LiZ4LiE4Lin4Lix4LiZCivguJfguLHguJnguYPguIgKK+C4l+C4seC4meC5g+C4lAor4LiX4Lix4LiZ4LiVLQor4LiX4Lix4LiZ4LiV4LmMCivguJfguLHguJnguJXguIrguLAKK+C4l+C4seC4meC4leC5geC4nuC4l+C4ouC5jAor4LiX4Lix4LiZ4LiV4LiyCivguJfguLHguJnguJXguLTguJkKK+C4l+C4seC4meC4leC4tQor4LiX4Lix4LiZ4LiX4LmI4Lin4LiH4LiX4Li1CivguJfguLHguJnguJfguLUKK+C4l+C4seC4meC4mOC5jAor4LiX4Lix4LiZ4LiZ4LmJ4LizCivguJfguLHguJnguJnguYnguLPguJfguLHguJnguJ3guJkKK+C4l+C4seC4meC4quC4oeC4seC4ogor4LiX4Lix4LiaCivguJfguLHguJrguYDguIHguKnguJXguKMKK+C4l+C4seC4muC4luC4oQor4LiX4Lix4Lia4LiX4Lij4Lin4LiHCivguJfguLHguJrguJfguLLguIcKK+C4l+C4seC4muC4l+C4suC4h+C4guC4suC4pwor4LiX4Lix4Lia4LiX4Li04LihCivguJfguLHguJrguJfguLXguYgKK+C4l+C4seC4muC5geC4ngor4LiX4Lix4Lia4Lil4Lix4LiE4LiZ4LmMCivguJfguLHguJrguYDguKXguYfguIEKK+C4l+C4seC4muC4qOC4seC4nuC4l+C5jAor4LiX4Lix4Lia4Liq4Lih4Li04LiH4LiE4Lil4LiyCivguJfguLHguJrguKrguLTguJfguJjguLTguYwKK+C4l+C4seC4muC4q+C4peC4seC4hwor4LiX4Lix4Lia4Lir4Lil4Lix4LiH4Lil4Lix4LiE4LiZ4LmMCivguJfguLHguJsKK+C4l+C4seC4m+C4mQor4LiX4Lix4LieCivguJfguLHguJ7guJ7guLAKK+C4l+C4seC4nuC4nuC4tQor4LiX4Lix4Lie4Liq4Lix4Lih4Lig4Liy4Lij4LiwCivguJfguLHguYjguKcKK+C4l+C4seC5iOC4p+C4luC4tuC4hwor4LiX4Lix4LmI4Lin4LiX4Li44LiB4Liq4Liy4Lij4LiX4Li04LioCivguJfguLHguYjguKfguJfguLjguIHguKvguLHguKfguKPguLDguYHguKvguIcKK+C4l+C4seC5iOC4p+C5hOC4mwor4LiX4Lix4LmI4Lin4LmGIOC5hOC4mwor4LiX4Lix4LioCivguJfguLHguKjguJktCivguJfguLHguKjguJnguYwKK+C4l+C4seC4qOC4meC4hOC4leC4tAor4LiX4Lix4Lio4LiZ4Lin4Li04Liq4Lix4LiiCivguJfguLHguKjguJnguKjguLLguKrguJXguKPguYwKK+C4l+C4seC4qOC4meC4qOC4tuC4geC4qeC4sgor4LiX4Lix4Lio4LiZ4LiwCivguJfguLHguKjguJnguLIKK+C4l+C4seC4qOC4meC4suC4geC4suC4owor4LiX4Lix4Lio4LiZ4Liy4LiI4LijCivguJfguLHguKjguJnguLXguKItCivguJfguLHguKjguJnguLXguKLguYwKK+C4l+C4seC4qOC4meC4teC4ouC4oOC4suC4ngor4LiX4Lix4Lio4LiZ4Li54Lib4LiB4Lij4LiT4LmMCivguJfguLHguKjguYTguJnguKIKK+C4l+C4seC4quC4meC4suC4meC4uOC4leC4o+C4tOC4ouC4sAor4LiX4Lix4Lis4LirCivguJfguLHguKzguKvguLQKK+C4l+C4seC4rOC4q+C4tOC4geC4o+C4k+C5jAor4LiX4Lix4Lis4Lir4Li1CivguJfguLHguKzguKvguLXguIHguKPguKPguKEKK+C4l+C4sgor4LiX4LmI4LiyCivguJfguYnguLIKK+C4l+C4suC4gQor4LiX4Liy4LiHCivguJfguYnguLLguIcKK+C4l+C4suC4h+C4geC4suC4owor4LiX4Liy4LiH4LmA4LiB4LmH4LiaCivguJfguLLguIfguILguYnguLLguKEKK+C4l+C4suC4h+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiX4Liy4LiH4LiU4LmI4Lin4LiZCivguJfguLLguIfguYDguJfguYnguLIKK+C4l+C4suC4h+C5guC4lwor4LiX4Liy4LiH4LmD4LiZCivguJfguLLguIfguJzguYjguLLguJkKK+C4l+C4suC4h+C4nuC4tOC5gOC4qOC4qQor4LiX4Liy4LiH4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguJfguLLguIfguKHguYnguLLguKXguLLguKIKK+C4l+C4suC4h+C4quC4suC4mOC4suC4o+C4k+C4sAor4LiX4Liy4LiH4Lir4Lil4Lin4LiHCivguJfguLLguIfguK3guK3guIEKK+C4l+C4suC4h+C5gOC4reC4gQor4LiX4Liy4LiQ4LiwCivguJfguLLguJDguLTguIHguLAKK+C4l+C4suC4kuC4sAor4LiX4Liy4LiS4Li04LiB4LiwCivguJfguYjguLLguJTguLXguJfguLXguYDguKvguKXguKcKK+C4l+C5iOC4suC5gOC4lOC4teC4ouC4pwor4LiX4LmI4Liy4LiX4Liy4LiHCivguJfguYnguLLguJfguLLguKIKK+C4l+C5iOC4suC4l+C4tQor4LiX4Liy4LiZCivguJfguLLguJktCivguJfguYjguLLguJkKK+C4l+C4suC4meC4geC4seC4k+C4keC5jAor4LiX4LmI4Liy4LiZ4LiK4Liy4LiiCivguJfguLLguJnguJXguYwKK+C4l+C4suC4meC4leC4sOC4p+C4seC4mQor4LiX4Liy4LiZ4Lia4LiU4Li1CivguJfguLLguJnguJrguLLguKPguKHguLUKK+C4l+C5iOC4suC4meC4nOC4ueC5ieC4q+C4jeC4tOC4hwor4LiX4Liy4LiZ4LieCivguJfguLLguJnguKHguLHguKIKK+C4l+C4suC4meC4qOC4teC4pQor4LiX4LmI4Liy4LiZ4Lir4LiN4Li04LiHCivguJfguYjguLLguJnguLHguYnguJnguJfguYjguLLguJnguLXguYkKK+C4l+C4suC4meC4suC4mOC4tOC4muC4lOC4tQor4LiX4Liy4LiaCivguJfguLLguJrguJfguLLguKEKK+C4l+C4suC4oQor4LiX4LmI4Liy4Lih4LiB4Lil4Liy4LiHCivguJfguLLguKIKK+C4l+C5ieC4suC4ogor4LiX4Liy4Lii4LiBCivguJfguYnguLLguKLguYDguILguLfguYjguK3guJkKK+C4l+C5ieC4suC4ouC4hOC4o+C4seC4pwor4LiX4LmJ4Liy4Lii4LmC4LiV4LmI4LiHCivguJfguYnguLLguKLguJfguK3guKIKK+C4l+C5ieC4suC4ouC4meC5ieC4swor4LiX4LmJ4Liy4Lii4Lid4LiZCivguJfguLLguKLguLHguIoKK+C4l+C4suC4ouC4sgor4LiX4Liy4Lii4Liy4LiUCivguJfguLLguKLguLLguJcKK+C4l+C4suC4ouC4suC4l+C5guC4lOC4ouC4mOC4o+C4o+C4oQor4LiX4Liy4LijLQor4LiX4Liy4Lij4LiBCivguJfguLLguKPguJ7guLUKK+C4l+C4suC4o+C4tOC4geC4sgor4LiX4Liy4Lij4Li4CivguJfguLLguKPguLjguJMKK+C4l+C4suC4o+C4uOC4ky0KK+C4l+C4suC4o+C4uOC4k+C4geC4o+C4o+C4oQor4LiX4LmI4Liy4LmA4Lij4Li34LitCivguJfguLLguKcKK+C4l+C5iOC4suC4pwor4LiX4LmJ4Liy4LinCivguJfguYjguLLguKfguIHguLPguKXguLHguIcKK+C4l+C5iOC4suC4p+C4l+C4muC4o+C4sOC4meC4seC4mgor4LiX4LmJ4Liy4Lin4LiZ4Liy4LiHCivguJfguYnguLLguKfguJ7guI3guLIKK+C4l+C5ieC4suC4p+C4nuC4o+C4sOC4ouC4sgor4LiX4Liy4LipCivguJfguLLguKoKK+C4l+C4suC4qi0KK+C4l+C4suC4quC4l+C4suC4mQor4LiX4Liy4Liq4Lib4Lix4LiN4LiN4LiyCivguJfguLLguKrguLUKK+C4l+C5iOC4suC4reC4suC4geC4suC4qOC4ouC4suC4mQor4LiX4LizCivguJfguLPguIHguKPguKPguKEKK+C4l+C4s+C4geC4suC4o+C4muC5ieC4suC4mQor4LiX4Liz4LiC4Lin4Lix4LiNCivguJfguLPguITguKPguLHguKcKK+C4l+C4s+C4hOC4peC4reC4lAor4LiX4Liz4LiE4Lin4Liy4LihCivguJfguLPguITguLjguJMKK+C4l+C4s+C4hOC4uOC4k+C4muC4ueC4iuC4suC5guC4l+C4qQor4LiX4Liz4LiH4LiZCivguJfguLPguYDguIjguYfguJoKK+C4l+C4s+C5g+C4iAor4LiX4Liz4LmE4LiU4LmJCivguJfguLPguYTguJTguYnguKXguIfguITguK0KK+C4l+C4s+C4leC4seC4pwor4LiX4Liz4LiV4LiyCivguJfguLPguJfguYjguLIKK+C4l+C4s+C4l+C4tQor4LiX4Liz4LmB4LiX4LmJ4LiHCivguJfguLPguYLguJfguKkKK+C4l+C4s+C4meC4mgor4LiX4Liz4LiZ4Lin4LiiCivguJfguLPguJnguK3guIcKK+C4l+C4s+C4meC4reC4h+C5gOC4quC4meC4suC4sAor4LiX4Liz4LiZ4Liy4Lia4LiZ4Lir4Lil4Lix4LiH4LiE4LiZCivguJfguLPguJnguLLguKIKK+C4l+C4s+C4meC4suC4reC4reC4oeC4geC4peC5ieC4siDguJfguLPguJvguKXguLLguK3guK3guKHguYDguIHguKXguLfguK0KK+C4l+C4s+C4meC4uAor4LiX4Liz4LiZ4Li44Lia4Liz4Lij4Li44LiHCivguJfguLPguJnguLnguKUKK+C4l+C4s+C5gOC4meC4sgor4LiX4Liz4LmA4LiZ4Li14Lii4LiaCivguJfguLPguYDguJnguLXguKLguJrguJfguYjguLLguYDguKPguLfguK0KK+C4l+C4s+C5gOC4meC4teC4ouC4muC4meC4suC4oQor4LiX4Liz4LmA4LiZ4Li14Lii4LihCivguJfguLPguJrguLLguJsKK+C4l+C4s+C4muC4uOC4jQor4LiX4Liz4Lia4Li44LiN4LmA4Lit4Liy4Lir4LiZ4LmJ4LiyCivguJfguLPguJvguKXguLIKK+C4l+C4s+C4m+C4suC4geC4l+C4s+C4hOC4rQor4LiX4Liz4LmA4Lib4LmH4LiZCivguJfguLPguYTguJvguJfguLPguKHguLIKK+C4l+C4s+C4nuC4tOC4qQor4LiX4Liz4LmE4Lie4LmICivguJfguLPguJ/guLHguJkKK+C4l+C4s+C5hOC4nwor4LiX4Liz4Lih4Lix4LiHCivguJfguLPguYTguKEKK+C4l+C4s+C4o+C5ieC4suC4ogor4LiX4Liz4Lik4LiX4LiY4Li04LmMCivguJfguLPguKXguLLguKIKK+C4l+C4s+C4peC4suC4ouC4guC4p+C4seC4jQor4LiX4Liz4Lil4Liy4Lii4Liq4LiW4Li04LiV4Li0CivguJfguLPguKXguLTguIcKK+C4l+C4s+C5gOC4pQor4LiX4Liz4Lin4LiZCivguJfguLPguKfguLHguJXguKMKK+C4l+C4s+C4p+C4seC4leC4o+C4hOC5iOC4swor4LiX4Liz4Lin4Lix4LiV4Lij4LmA4LiK4LmJ4LiyCivguJfguLPguYDguKfguKMKK+C4l+C4s+C5gOC4p+C4peC4sgor4LiX4Liz4Liq4Liy4LinCivguJfguLPguYDguKrguJnguYjguKvguYwKK+C4l+C4s+C5gOC4quC4teC4ouC5gOC4iOC5h+C4mgor4LiX4Liz4Lir4LiZ4LmJ4Liy4LiX4Liz4LiV4LiyCivguJfguLPguKvguKHguLHguJkKK+C4l+C4s+C4q+C4ueC4l+C4p+C4meC4peC4oQor4LiX4Liz4LmA4Lir4LiV4Li4CivguJfguLPguYPguKvguYkKK+C4l+C4s+C5gOC4reC4sgor4LiX4Liz4LmA4Lit4Liy4LmA4LiI4LmH4LiaCivguJfguLTguITguLHguKHguJ7guKMKK+C4l+C4tOC4huC4seC4oeC4nuC4owor4LiX4Li04LmJ4LiHCivguJfguLTguYnguIfguIHguKPguLDguIjguLLguJQKK+C4l+C4tOC5ieC4h+C4guC4p+C5ieC4suC4hwor4LiX4Li04LmJ4LiH4LmGIOC4guC4p+C5ieC4suC4h+C5hgor4LiX4Li04LmJ4LiH4LiI4LiU4Lir4Lih4Liy4LiiCivguJfguLTguIfguYDguIjguK3guKPguYwKK+C4l+C4tOC5ieC4h+C4luC5iOC4reC4mQor4LiX4Li04LmJ4LiH4LiX4Lin4LiZCivguJfguLTguYnguIfguJfguLLguJkKK+C4l+C4tOC5ieC4h+C4l+C5ieC4suC4ogor4LiX4Li04LmJ4LiH4LiX4Li54LiUCivguJfguLTguYnguIfguYTguJ7guYgKK+C4l+C4tOC5ieC4h+C4n+C5ieC4reC4hwor4LiX4Li04LmJ4LiH4Lih4Liw4Lie4Lij4LmJ4Liy4Lin4Lir4LmJ4Liy4LinCivguJfguLTguYnguIfguKLguYjguK0KK+C4l+C4tOC4igor4LiX4Li04LiKLQor4LiX4Li04LiK4Liy4LiB4LijCivguJfguLTguI/guJDguLAKK+C4l+C4tOC4j+C4kOC4suC4meC4uOC4hOC4leC4tAor4LiX4Li04LiP4LiQ4Li44LiK4Li44LiB4Lij4Lij4LihCivguJfguLTguJAtCivguJfguLTguJDguJjguKPguKPguKEKK+C4l+C4tOC4kOC4tAor4LiX4Li04LiUCivguJfguLTguJUKK+C4l+C4tOC4mQor4LiX4Li04LiZLQor4LiX4Li04LiZ4LiB4LijCivguJfguLTguJnguKjguLnguJnguKLguYwKK+C4l+C4tOC4meC4suC4lwor4LiX4Li04LieCivguJfguLTguJ4tCivguJfguLTguJ7guKItCivguJfguLTguJ7guKLguYwKK+C4l+C4tOC4nuC4ouC4iOC4seC4geC4qeC4uAor4LiX4Li04Lie4Lii4LiI4Lix4LiB4Lip4Li44LiN4Liy4LiTCivguJfguLTguJ7guKLguI3guLLguJMKK+C4l+C4tOC4nuC4ouC5gOC4meC4leC4owor4LiX4Li04Lie4Lii4Lie4Lii4Liy4LiZCivguJfguLTguJ7guKLguKHguLLguJnguLjguKkKK+C4l+C4tOC4nuC4ouC4o+C4qgor4LiX4Li04Lie4Lii4LmC4Lio4Lij4LiV4LijCivguJfguLTguJ7guYLguKrguJUKK+C4l+C4tOC4nuC4sgor4LiX4Li04Lie4Liy4LiB4LijCivguJfguLTguKEKK+C4l+C4tOC5iOC4oQor4LiX4Li04Lih4LiU4Liy4LiaCivguJfguLTguYjguKHguJXguLMKK+C4l+C4tOC4oeC4l+C4reC4hwor4LiX4Li04LmI4Lih4LmB4LiX4LiHCivguJfguLTguKcKK+C4l+C4tOC4py0KK+C4l+C4tOC4p+C4geC4suC4pQor4LiX4Li04Lin4LiH4LiE4LiVCivguJfguLTguKfguJfguLHguKjguJnguYwKK+C4l+C4tOC4p+C4qi0KK+C4l+C4tOC4p+C4quC4oOC4suC4hAor4LiX4Li04Lin4Liq4LiwCivguJfguLTguKfguLIKK+C4l+C4tOC4p+C4suC4geC4owor4LiX4Li04Lin4Liy4LiB4Liy4LilCivguJfguLTguKgKK+C4l+C4tOC4qOC4l+C4suC4hwor4LiX4Li04Lio4LiyCivguJfguLTguKjguLLguJTguKMKK+C4l+C4tOC4qOC4suC4meC4uOC4l+C4tOC4qAor4LiX4Li04Lio4Liy4Lib4Liy4LmC4Lih4LiB4LiC4LmMCivguJfguLUKK+C4l+C4teC5iAor4LiX4Li14LmI4LiB4Lix4Lil4Lib4LiZ4LiyCivguJfguLXguYPguITguKPguJfguLXguKHguLHguJkKK+C4l+C4teC4hi0KK+C4l+C4teC4huC4iuC4suC4leC4tAor4LiX4Li14LiG4LiZ4Li04LiB4Liy4LiiCivguJfguLXguIbguKrguKPguLAKK+C4l+C4teC4huC4suC4ouC4uAor4LiX4Li14LmI4LiI4Lij4Li04LiHCivguJfguLXguYjguJTguLTguJkKK+C4l+C4teC5iOC4lOC4tOC4meC4oeC4t+C4reC5gOC4m+C4peC5iOC4sgor4LiX4Li14LmA4LiU4LmH4LiUCivguJfguLXguYDguJTguLXguKLguKcKK+C4l+C4teC4l+C5iOC4sgor4LiX4Li14LmI4LiX4Liy4LiHCivguJfguLXguYjguJfguLPguIHguLLguKMKK+C4l+C4teC5iOC5gOC4l+C5iOC4suC5geC4oeC4p+C4lOC4tOC5ieC4meC4leC4suC4ogor4LiX4Li14LmI4LmB4LiX4LmJCivguJfguLXguYjguJjguKPguJPguLXguKrguIfguIbguYwKK+C4l+C4teC5iOC4meC4reC4mQor4LiX4Li14LmI4LiZ4Lix4LmI4LiHCivguJfguLXguJnguLXguYkKK+C4l+C4teC4mwor4LiX4Li14LmI4Lie4Li24LmI4LiHCivguJfguLXguKEKK+C4l+C4teC5iOC4oeC4seC5iOC4mQor4LiX4Li14LmI4Lih4LiyCivguJfguLXguKPguIYtCivguJfguLXguYjguKPguLHguIEKK+C4l+C4teC5iOC4o+C4suC4mgor4LiX4Li14LmI4Lij4Liy4Lia4Liq4Li54LiHCivguJfguLXguYDguKXguYjguJnguJfguLXguIjguKPguLTguIcKK+C4l+C4teC5iOC4p+C4seC4lAor4LiX4Li14LmI4Lin4LmI4Liy4LiB4Liy4LijCivguJfguLXguYjguKrguLjguJQKK+C4l+C4teC5iOC4q+C4oeC4suC4ogor4LiX4Li14Lir4Lil4Lix4LiHCivguJfguLXguYjguYTguKvguJkKK+C4l+C4teC5iOC5hOC4q+C4meC5hOC4lOC5iQor4LiX4Li14LmA4Lit4LmH4LiZ4LiX4Li1CivguJfguLbguIEKK+C4l+C4tuC4geC4l+C4seC4gQor4LiX4Li24LmI4LiHCivguJfguLbguYnguIcKK+C4l+C4tuC4lOC4l+C4t+C4rQor4LiX4Li24LiZ4LiX4Li24LiBCivguJfguLbguJoKK+C4l+C4tuC4oQor4LiX4Li24Lih4LmGCivguJfguLbguYjguKEKK+C4l+C4t+C5iOC4rQor4LiX4Li4CivguJfguLjguIEKK+C4l+C4uOC4geC5hgor4LiX4Li44LiB4LiCLQor4LiX4Li44LiB4LiC4LmMCivguJfguLjguIHguILguJnguLTguYLguKPguJgKK+C4l+C4uOC4geC4guC4peC4suC4oAor4LiX4Li44LiB4LiC4LmA4Lin4LiX4LiZ4LiyCivguJfguLjguIHguILguKrguKHguLjguJfguLHguKIKK+C4l+C4uOC4geC4guC5jOC4quC4uOC4ggor4LiX4Li44LiB4LiC4Lix4LiB4Lip4Lix4LiiCivguJfguLjguIHguILguLLguKPguKHguJPguYwKK+C4l+C4uOC4geC4jwor4LiX4Li44LiB4LiX4Li1CivguJfguLjguIHguJnguLTguJrguLLguJUKK+C4l+C4uOC4geC4nuC4suC4ogor4LiX4Li44LiB4LmA4Lih4Li34LmI4LitCivguJfguLjguIHguYDguKHguLfguYjguK3guYDguIrguLfguYjguK3guKfguLHguJkKK+C4l+C4uOC4geC4oy0KK+C4l+C4uOC4geC4o+C4geC4tOC4o+C4tOC4ouC4sgor4LiX4Li44LiB4Lin4Lix4LiZ4LiZ4Li14LmJCivguJfguLjguIHguKnguJTguKMKK+C4l+C4uOC4geC4quC4tOC5iOC4h+C4l+C4uOC4geC4reC4ouC5iOC4suC4hwor4LiX4Li44LiB4Lir4LiZCivguJfguLjguIHguKvguJnguJfguLjguIHguYHguKvguYjguIcKK+C4l+C4uOC4geC4q+C4ouC5iOC4reC4oeC4q+C4jeC5ieC4sgor4LiX4Li44LiB4Lir4Lix4Lin4Lij4Liw4LmB4Lir4LiHCivguJfguLjguIHguYHguKvguYjguIcKK+C4l+C4uOC4geC4sAor4LiX4Li44LiB4Lix4LiHCivguJfguLjguIHguLnguKUKK+C4l+C4uOC4hOC4leC4sAor4LiX4Li44LiE4LiV4Li0CivguJfguLjguYjguIcKK+C4l+C4uOC5ieC4hwor4LiX4Li44LiH4LiH4LiwCivguJfguLjguIfguYDguJfguIcKK+C4l+C4uOC4iOC4iOC4tOC4k+C4k+C4sAor4LiX4Li44LiI4Lij4Li04LiVCivguJfguLjguJQKK+C4l+C4uOC4leC4p+C4tOC4peC4seC4oeC4nuC4tOC4leC4oeC4suC4peC4sgor4LiX4Li44LiV4Li04LiiLQor4LiX4Li44LiV4Li04Lii4Liy4Liq4Liy4Lis4LirCivguJfguLjguJfguKPguKPguKjguJnguJnguLTguKLguKEKK+C4l+C4uOC4mQor4LiX4Li44LmI4LiZCivguJfguLjguJnguIjguJTguJfguLDguYDguJrguLXguKLguJkKK+C4l+C4uOC4meC4l+C4o+C4seC4nuC4ouC5jAor4LiX4Li44LiZ4LiZ4Lit4LiZCivguJfguLjguJnguJnguLTguKHguLTguJUKK+C4l+C4uOC4meC4meC4tOC4ouC4oQor4LiX4Li44LmI4LiZ4LmA4Lia4LmH4LiUCivguJfguLjguJnguKPguK3guJkKK+C4l+C4uOC5iOC4meC4o+C4sOC5gOC4muC4tOC4lAor4LiX4Li44LiZ4LmA4Lij4Li34Lit4LiZ4Lir4Li44LmJ4LiZCivguJfguLjguJnguKrguLPguKPguK3guIcKK+C4l+C4uOC4meC4quC4s+C4o+C4reC4h+C5gOC4h+C4tOC4meC4leC4o+C4sgor4LiX4Li44LiZ4Lir4Lih4Li44LiZ4LmA4Lin4Li14Lii4LiZCivguJfguLjguYjguJnguK3guKfguJkKK+C4l+C4uOC4meC4tOC4ouC4oQor4LiX4Li44LiaCivguJfguLjguJrguJXguLUKK+C4l+C4uOC4muC4l+C4uQor4LiX4Li44Lia4Lir4Lih4LmJ4Lit4LiC4LmJ4Liy4LinCivguJfguLjguJvguJvguLHguI3guI3guLIKK+C4l+C4uOC4nuC4nuC4o+C4o+C4kwor4LiX4Li44Lie4Lie4LilCivguJfguLjguJ7guJ7guKXguKDguLLguJ4KK+C4l+C4uOC4nuC4oOC4tOC4geC4guC4oOC4seC4ogor4LiX4Li44Lie4Lig4Li04LiB4LiC4Lix4LiZ4LiU4Lij4LiB4Lix4LibCivguJfguLjguKEKK+C4l+C4uOC4oS0KK+C4l+C4uOC5iOC4oQor4LiX4Li44LmJ4LihCivguJfguLjguYjguKHguJXguKXguLLguJQKK+C4l+C4uOC5iOC4oeC5gOC4luC4teC4ouC4hwor4LiX4Li44LmI4Lih4LmA4LiXCivguJfguLjguKHguYLguJkKK+C4l+C4uOC4oeC4o+C4suC4iuC4sgor4LiX4Li44LiiCivguJfguLjguYnguKIKK+C4l+C4uOC4oy0KK+C4l+C4uOC4o+C4geC4seC4meC4lOC4suC4owor4LiX4Li44Lij4LiE4LihCivguJfguLjguKPguIrguJkKK+C4l+C4uOC4o+C4iuC4suC4leC4tAor4LiX4Li44Lij4LiZCivguJfguLjguKPguJnguJfguLjguKPguLLguKIKK+C4l+C4uOC4o+C4nuC4pQor4LiX4Li44Lij4Lig4Li04LiB4Lip4LmMCivguJfguLjguKPguKXguLHguIHguKnguJPguYwKK+C4l+C4uOC4o+C4seC4luC4ouC4sgor4LiX4Li44Lij4Lix4LioCivguJfguLjguKPguLLguITguKEKK+C4l+C4uOC4o+C4suC4iOC4suC4owor4LiX4Li44Lij4Liy4LiY4Lin4LiyCivguJfguLjguYDguKPguKgKK+C4l+C4uOC5gOC4o+C4teC4ouC4mQor4LiX4Li44LmA4Lij4Li14Lii4LiZ4LmB4LiC4LiBCivguJfguLjguYDguKPguLXguKLguJnguYDguJfguKgKK+C4l+C4uOC4peC4seC4geC4l+C4uOC5gOC4pQor4LiX4Li44LmA4Lil4LiyCivguJfguLjguKfguLTguJgKK+C4l+C4uOC4qOC4teC4pQor4LiX4Li44Lip4LiQLQor4LiX4Li44LiqLQor4LiX4Li44Liq4Liq4LiwCivguJfguLjguKrguKrguLXguKUKK+C4l+C4uQor4LiX4Li54LmICivguJfguLnguYkKK+C4l+C4ueC4geC4seC4hwor4LiX4Li54LmI4LiL4Li14LmJCivguJfguLnguJUKK+C4l+C4ueC4leC4suC4meC4uOC4l+C4ueC4lQor4LiX4Li54LiZCivguJfguLnguJnguYnguLPguIjguLfguJQKK+C4l+C4ueC4mgor4LiX4Li54LihCivguJfguLnguKHguJfguLLguKEKK+C4l+C4ueC5guC4oeC5iOC4hwor4LiX4Li54LijLQor4LiX4Li54LilCivguJfguLnguKXguIHguKPguLDguKvguKHguYjguK3guKEKK+C4l+C4ueC4peC5gOC4geC4peC5ieC4suC4l+C4ueC4peC4geC4o+C4sOC4q+C4oeC5iOC4reC4oeC4luC4p+C4suC4ogor4LiX4Li54LmA4Lil4Li14Lii4LihCivguJfguLnguKnguIEKK+C5gOC4lwor4LmA4LiX4LmICivguYDguJfguIHguKPguLDguIjguLLguJQKK+C5gOC4l+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4LmA4LiX4LiE4LiZ4Li04LiECivguYDguJfguITguJnguLXguYDguIrguLXguKLguKEKK+C5gOC4l+C4hOC5guC4meC5guC4peC4ouC4tQor4LmA4LiX4LiE4Lij4Lix4LinCivguYDguJfguITguK3guJnguIHguKPguLXguJUKK+C5gOC4l+C4hwor4LmA4LiX4LmJ4LiHCivguYDguJfguYnguIfguYDguJXguYnguIcKK+C5gOC4l+C5ieC4h+C4l+C4ueC4lAor4LmA4LiX4LmH4LiICivguYDguJfguYfguIjguIjguKPguLTguIcKK+C5gOC4l+C5h+C4iOC5gOC4l+C4teC4ouC4oQor4LmA4LiX4LiZ4LiZ4Li04LiqCivguYDguJfguJnguYnguLPguYDguJfguJfguYjguLIKK+C5gOC4l+C4m+C4ueC4mQor4LmA4LiX4LieCivguYDguJfguJ4tCivguYDguJfguJ7guIHguLjguKrguLjguKEKK+C5gOC4l+C4nuC5gOC4iOC5ieC4sgor4LmA4LiX4Lie4LiK4Li44Lih4LiZ4Li44LihCivguYDguJfguJ7guJTguLIKK+C5gOC4l+C4nuC4lOC4s+C4o+C4uQor4LmA4LiX4Lie4LiX4Lix4LiT4LiR4LmMCivguYDguJfguJ7guJfguLLguKPguLkKK+C5gOC4l+C4nuC4l+C4suC5guC4owor4LmA4LiX4Lie4LiY4Li04LiU4LiyCivguYDguJfguJ7guJnguKEKK+C5gOC4l+C4nuC4meC4suC4o+C4tQor4LmA4LiX4Lie4LiZ4Li04Lii4LihCivguYDguJfguJ7guJnguLTguKLguLLguKIKK+C5gOC4l+C4nuC4meC4tOC4ouC4suC4ouC4p+C4tOC4l+C4ouC4sgor4LmA4LiX4Lie4LiZ4Li04Lij4Lih4Li04LiVCivguYDguJfguJ7guJrguJTguLUKK+C5gOC4l+C4nuC4muC4o+C4tOC4qeC4seC4lwor4LmA4LiX4Lie4Lia4Li44LiV4LijCivguYDguJfguJ7guJvguKPguLDguJXguLTguKHguLIKK+C5gOC4l+C4nuC4nuC4ouC4suC4geC4o+C4k+C5jAor4LmA4LiX4Lie4LiiLQor4LmA4LiX4Lie4Lii4LmA4LiI4LmJ4LiyCivguYDguJfguJ7guKLguJTguLIKK+C5gOC4l+C4nuC4ouC4uOC4lOC4sgor4LmA4LiX4Lie4Liq4Lix4LiH4Lir4Lij4LiT4LmMCivguYDguJfguJ7guLIKK+C5gOC4l+C4nuC4suC4lOC4tOC5gOC4l+C4ngor4LmA4LiX4Lie4Liy4LiY4Li04Lia4LiU4Li1CivguYDguJfguJ7guLLguKPguLHguIHguKnguYwKK+C5gOC4l+C4nuC4tOC4mQor4LmA4LiX4Lie4Li04LiZ4LiX4Lij4LmMCivguYDguJfguJ7guLUKK+C5gOC4l+C4nuC4teC4m+C4seC4geC4qeC4tQor4LmA4LiX4LmA4Lie4LiZ4LiX4Lij4LmMCivguYDguJfguYLguJ4KK+C5gOC4l+C4o+C4tOC4lAor4LmA4LiX4Lil4Lil4Li54LmA4Lij4Li14Lii4LihCivguYDguJfguKctCivguYDguJfguKfguJTguLIKK+C5gOC4l+C4p+C4l+C4seC4k+C4keC5jAor4LmA4LiX4Lin4LiX4Li54LiVCivguYDguJfguKfguJjguKPguKPguKEKK+C5gOC4l+C4p+C4mOC4tOC4lOC4sgor4LmA4LiX4Lin4LiZ4LiwCivguYDguJfguKfguJnguLLguITguKPguLUKK+C5gOC4l+C4p+C4meC4tOC4ouC4oQor4LmA4LiX4Lin4Lig4Liy4Lin4LiwCivguYDguJfguKfguKPguLAKK+C5gOC4l+C4p+C4o+C4ueC4mwor4LmA4LiX4Lin4LmC4Lil4LiBCivguYDguJfguKfguKfguLLguIjguLTguIHguLAKK+C5gOC4l+C4p+C4p+C4tOC4l+C4ouC4sgor4LmA4LiX4Lin4LioCivguYDguJfguKfguKkKK+C5gOC4l+C4p+C4quC4luC4suC4mQor4LmA4LiX4Lin4Liq4Li44LiE4LiZ4LiY4LmMCivguYDguJfguKfguK0KK+C5gOC4l+C4p+C4seC4jQor4LmA4LiX4Lin4Lix4LiZCivguYDguJfguKfguLLguITguLLguKMKK+C5gOC4l+C4p+C4suC4o+C4seC4k+C4ouC5jAor4LmA4LiX4Lin4Liy4Lil4Lix4LiiCivguYDguJfguKfguLLguKfguLLguKoKK+C5gOC4l+C4p+C4tOC4meC4l+C4o+C5jAor4LmA4LiX4Lin4Li1CivguYDguJfguYDguKfguJnguJfguKPguYwKK+C5gOC4l+C5gOC4p+C4qAor4LmA4LiX4LmA4Lin4Lio4Lij4LmMCivguYDguJfguYDguKfguKjguKfguKPguYwKK+C5gOC4l+C4qAor4LmA4LiX4LioLQor4LmA4LiX4Lio4LiBCivguYDguJfguKjguIHguLLguKUKK+C5gOC4l+C4qOC4meC5jAor4LmA4LiX4Lio4LiZ4LmM4LmB4LiI4LiHCivguYDguJfguKjguJnguLIKK+C5gOC4l+C4qOC4muC4seC4jeC4jeC4seC4leC4tAor4LmA4LiX4Lio4Lia4Liy4LilCivguYDguJfguKjguKHguJnguJXguKPguLUKK+C5gOC4l+C4qOC4sAor4LmA4LiX4Lio4Liy4LiI4Liy4LijCivguYDguJfguKjguLLguKDguLTguJrguLLguKUKK+C5gOC4l+C4qy0KK+C5gOC4l+C4q+C5jAor4LmA4LiX4LmI4Lir4LmMCivguYDguJfguKvguYzguJ/guLLguIHguJ/guYnguLIKK+C5gOC4l+C4q+C4p+C4seC4leC4luC4uAor4LmA4LiX4LmI4LitCivguYDguJfguYnguK0KK+C5gOC4l+C4reC4jQor4LmA4LiX4Lit4LihCivguYDguJfguK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4l+C4reC4o+C5jOC5guC4oeC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmA4LiX4Lit4Liw4LiX4LiwCivguYDguJfguLIKK+C5gOC4l+C5iOC4sgor4LmA4LiX4LmJ4LiyCivguYDguJfguYjguLLguIHguLHguJoKK+C5gOC4l+C5ieC4suC5geC4guC4mQor4LmA4LiX4LmJ4Liy4LiE4Li54LmJCivguYDguJfguYnguLLguIrguYnguLLguIcKK+C5gOC4l+C5iOC4suC5g+C4lAor4LmA4LiX4LmI4Liy4LiV4Lix4LinCivguYDguJfguYjguLLguJfguLHguJkKK+C5gOC4l+C5iOC4suC4l+C4uOC4mQor4LmA4LiX4LmI4Liy4LmA4LiX4Li14Lii4LihCivguYDguJfguYjguLLguJnguLHguYnguJkKK+C5gOC4l+C5iOC4suC5gOC4nOC5ieC4sgor4LmA4LiX4LmJ4Liy4Lii4Liy4Lii4Lih4LmI4Lit4LihCivguYDguJfguYjguLLguKPguLbguIcKK+C5gOC4l+C5iOC4suC5hOC4owor4LmA4LiX4LmJ4Liy4Liq4Liy4LiZCivguYDguJfguYnguLLguKrguLTguIfguKvguYwKK+C5gOC4l+C4suC4sOC4q+C5jAor4LmA4LiX4Li04LiBCivguYDguJfguLTguYjguIcKK+C5gOC4l+C4tOC4h+C4muC4reC4hwor4LmA4LiX4Li04LiUCivguYDguJfguLTguJTguJfguLnguJkKK+C5gOC4l+C4tOC4mQor4LmA4LiX4Li04LiaCivguYDguJfguLTguJrguYYKK+C5gOC4l+C4tOC4muC4l+C4suC4mgor4LmA4LiX4Li04LmJ4LihCivguYDguJfguLXguKLguIcKK+C5gOC4l+C4teC5iOC4ouC4hwor4LmA4LiX4Li14LmI4Lii4LiH4LmGCivguYDguJfguLXguYjguKLguIfguJXguKPguIcKK+C5gOC4l+C4teC5iOC4ouC4h+C5geC4l+C5iQor4LmA4LiX4Li14LmI4Lii4LiH4LiY4Lij4Lij4LihCivguYDguJfguLXguKLguJkKK+C5gOC4l+C4teC5ieC4ouC4mQor4LmA4LiX4Li14Lii4LiZ4LiB4Li04LmI4LiHCivguYDguJfguLXguKLguJnguYDguIHguKXguYfguJTguKvguK3guKIKK+C5gOC4l+C4teC4ouC4meC5geC4geC4peC4mgor4LmA4LiX4Li14Lii4LiZ4LiC4LihCivguYDguJfguLXguKLguJnguILguLLguKcKK+C5gOC4l+C4teC4ouC4meC4guC5ieC4suC4p+C5gOC4m+C4peC4t+C4reC4gQor4LmA4LiX4Li14Lii4LiZ4LiU4LizCivguYDguJfguLXguKLguJnguYHguJTguIcKK+C5gOC4l+C4teC4ouC4meC4leC4suC4geC4mgor4LmA4LiX4Li14Lii4LiZ4LiV4Liy4LiV4Lix4LmK4LiB4LmB4LiV4LiZCivguYDguJfguLXguKLguJnguJrguYnguLLguJkKK+C5gOC4l+C4teC4ouC4meC4nuC4o+C4o+C4qeC4sgor4LmA4LiX4Li14Lii4LiZ4LmA4Lii4Liy4Lin4Lie4Liy4LiT4Li1CivguYDguJfguLXguKLguJnguKPguLjguYjguIcKK+C5gOC4l+C4teC4ouC4meC4peC4p+C4lAor4LmA4LiX4Li14Lii4LiZ4Liq4Lix4LiV4LiV4Lia4Li44Lip4Lii4LmMCivguYDguJfguLXguKLguJnguK3guJoKK+C5gOC4l+C4teC4ouC4mgor4LmA4LiX4Li14Lii4Lia4LmA4LiE4Li14Lii4LiHCivguYDguJfguLXguKLguJrguYDguJfguYjguLIKK+C5gOC4l+C4teC4ouC4oQor4LmA4LiX4Li14Lii4LijCivguYDguJfguLXguYnguKLguKMKK+C5gOC4l+C4teC4ouC4o+C4hi0KK+C5gOC4l+C4teC4ouC4o+C4huC4iuC4suC4leC4tAor4LmA4LiX4Li14Lii4Lij4LiG4Lij4Liy4LiV4LijCivguYDguJfguLXguKLguKcKK+C5gOC4l+C4teC5iOC4ouC4pwor4LmA4LiX4Li34LitCivguYDguJfguLfguYjguK0KK+C5gOC4l+C4t+C5ieC4rQor4LmA4LiX4Li34Lit4LiBCivguYDguJfguLfguK3guIHguYDguILguLIKK+C5gOC4l+C4t+C4reC4geC5gOC4luC4suC5gOC4q+C4peC5iOC4suC4geC4rQor4LmA4LiX4Li34Lit4LiZCivguYHguJfguYgKK+C5geC4l+C5iQor4LmB4LiX4LmJ4LmGCivguYHguJfguYfguIHguIvguLXguYgKK+C5geC4l+C5h+C4geC4i+C4teC5iOC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmB4LiX4LiHCivguYHguJfguYjguIcKK+C5geC4l+C5ieC4hwor4LmB4LiX4LmH4LiH4LiB4LmM4LiZ4LmJ4LizCivguYHguJfguIfguYPguIgKK+C5geC4l+C4h+C5g+C4iOC4lOC4swor4LmB4LiX4LiH4LiV4Liw4LmE4LiaCivguYHguJfguIfguJfguKfguKIKK+C5geC4l+C4h+C4p+C4tOC4quC4seC4ogor4LmB4LiX4LiH4Lir4Lii4Lin4LiBCivguYHguJfguYnguIjguKPguLTguIcKK+C5geC4l+C4leC4ouC5jAor4LmB4LiX4LmJ4LiX4Li14LmI4LiI4Lij4Li04LiHCivguYHguJfguJkKK+C5geC4l+C5iOC4mQor4LmB4LiX4LiZ4LmA4LiI4LiZ4LiV4LmMCivguYHguJfguJnguJfguLLguKXguLHguKEKK+C5geC4l+C4meC4l+C4teC5iOC4iOC4sAor4LmB4LiX4LmI4LiZ4Lie4Li04Lih4Lie4LmMCivguYHguJfguYjguJnguKHguJPguJHguKUKK+C5geC4l+C5iOC4meC4peC4sgor4LmB4LiX4LmI4LiZ4Lir4Lih4Li24LiBCivguYHguJfguJoKK+C5geC4l+C4o+C4gQor4LmB4LiX4Lij4LiB4LiL4Lit4LiZCivguYHguJfguKPguIHguIvguYnguK3guJkKK+C5geC4l+C4o+C4geC4i+C4tuC4oQor4LmB4LiX4Lij4LiB4LmB4LiL4LiHCivguYHguJfguKPguIHguYDguJXguK3guKPguYwKK+C5geC4l+C4o+C4geC5geC4nOC5iOC4meC4lOC4tOC4mQor4LmB4LiX4Lij4LiB4LmC4Lie4LiZCivguYHguJfguKXguYDguKXguLXguKLguKEKK+C5geC4l+C4sAor4LmB4LiX4Liw4LmC4Lil4LihCivguYLguJcKK+C5guC4l+C5iAor4LmC4LiX4LiB4LmA4LiX4LiBCivguYLguJfguIfguYYKK+C5guC4l+C4h+C5gOC4l+C4hwor4LmC4LiX4LiT4LiwCivguYLguJfguYLguJfguKkKK+C5guC4l+C4mOC4gQor4LmC4LiX4LiZCivguYLguJfguJnguYLguJfguYgKK+C5guC4l+C4oeC4meC4seC4qgor4LmC4LiX4LijLQor4LmC4LiX4Lij4LiE4Lih4LiZ4Liy4LiE4LihCivguYLguJfguKPguJfguKPguKPguKjguJnguYwKK+C5guC4l+C4o+C4l+C4seC4qOC4meC5jAor4LmC4LiX4Lij4Lie4Li04Lih4Lie4LmMCivguYLguJfguKPguKDguLLguJ4KK+C5guC4l+C4o+C4oQor4LmC4LiX4Lij4Lih4Lio4Lix4Liq4LiV4Lij4Liy4Lin4Li44LiYCivguYLguJfguKPguKHguKvguI3guLTguIcKK+C5guC4l+C4o+C5gOC4peC4ggor4LmC4LiX4Lij4Lio4Lix4Lie4LiX4LmMCivguYLguJfguKPguKrguLLguKMKK+C5guC4l+C4peC4sgor4LmC4LiX4Lio4LiBCivguYLguJfguKkKK+C5guC4l+C4qS0KK+C5guC4l+C4qeC4geC4o+C4k+C5jAor4LmC4LiX4Lip4LiV4Lij4Lix4LiiCivguYLguJfguKnguJfguLLguIfguKfguLTguJnguLHguKIKK+C5guC4l+C4qeC5guC4nuC4ogor4LmC4LiX4Lip4LiyCivguYLguJfguKnguLLguIHguKMKK+C5guC4l+C4qeC4suC4lOC4tOC4peC4gQor4LmC4LiX4Lip4Liy4LiZ4Li44LmC4LiX4LipCivguYLguJfguKnguLLguKPguKHguJPguYwKK+C5guC4l+C4qi0KK+C5guC4l+C4quC4sAor4LmC4LiX4Liq4Liy4LiE4LiV4Li0CivguYLguJfguYLguKoKK+C5guC4l+C4q+C4rOC4sAor4LmC4LiX4Lir4Lis4Li04LiZ4Li1CivguYTguJcKK+C5hOC4l+C5iQor4LmE4LiX4LmA4LiX4LmA4LiZ4Li14Lii4LihCivguYTguJfguYDguJfguKPguJUKK+C5hOC4l+C4ogor4LmE4LiX4Lii4LiU4LizCivguYTguJfguKLguJfguLLguJkKK+C5hOC4l+C4ouC4mOC4o+C4o+C4oQor4LmE4LiX4Lii4LiZ4LmJ4Lit4LiiCivguYTguJfguKLguJnguLHguJrguKrguLLguKEKK+C5hOC4l+C4ouC4meC4seC4muC4q+C5ieC4sgor4LmE4LiX4Lii4Lir4Lil4LiHCivguYTguJfguKLguKvguKXguKfguIcKK+C5hOC4l+C4ouC5g+C4q+C4jeC5iAor4LmE4LiX4LijCivguYTguJfguKPguJfguK3guIcKK+C5hOC4l+C4o+C5gOC4peC4teC4ouC4mgor4LmE4LiX4Lin4LiwCivguJgKK+C4mOC4hwor4LiY4LiH4LiB4LmMCivguJjguIfguIHguKPguLDguJrguLXguYjguJjguLjguIoKK+C4mOC4h+C4iOC4o+C4sOC5gOC4guC5iQor4LiY4LiH4LiJ4Liy4LiZCivguJjguIfguIrguLHguKIKK+C4mOC4h+C4iuC4seC4ouC5gOC4ieC4peC4tOC4oeC4nuC4peC4guC4reC4h+C4l+C4q+C4suC4o+C4muC4gQor4LiY4LiH4LiK4Lix4Lii4LmA4LiJ4Lil4Li04Lih4Lie4Lil4LiC4Lit4LiH4LiX4Lir4Liy4Lij4LmA4Lij4Li34LitCivguJjguIfguIrguLHguKLguYDguInguKXguLTguKHguJ7guKXguILguK3guIfguJfguKvguLLguKPguK3guLLguIHguLLguKgKK+C4mOC4h+C4iuC4suC4leC4tAor4LiY4LiH4LiK4Liy4LiiCivguJjguIfguJXguLDguILguLLguJoKK+C4mOC4h+C4meC4s+C4o+C4tOC5ieC4pwor4LiY4LiH4Lia4Lij4Lih4Lij4Liy4LiK4Lin4LiH4Lio4LmM4LiZ4LmJ4Lit4LiiCivguJjguIfguJrguKPguKHguKPguLLguIrguKfguIfguKjguYzguYPguKvguI3guYgKK+C4mOC4h+C4m+C4o+C4sOC4iOC4s+C4geC4reC4h+C4l+C4seC4nuC4muC4gQor4LiY4LiH4Lib4Lij4Liw4LiI4Liz4LiB4Lit4LiH4LiX4Lix4Lie4LmA4Lij4Li34LitCivguJjguIfguJvguKPguLDguIjguLPguIHguK3guIfguJfguLHguJ7guK3guLLguIHguLLguKgKK+C4mOC4h+C4nuC4o+C4sOC4hOC4o+C4uOC4keC4nuC5iOC4suC4q+C5jAor4LiY4LiH4Lie4Li04LiX4Lix4LiB4Lip4LmM4Liq4Lix4LiZ4LiV4Li04Lij4Liy4Lip4LiO4Lij4LmMCivguJjguIfguKHguKvguLLguKPguLLguIrguJnguYnguK3guKIKK+C4mOC4h+C4oeC4q+C4suC4o+C4suC4iuC5g+C4q+C4jeC5iAor4LiY4LiH4LmA4Lii4Liy4Lin4Lij4Liy4LiK4LiZ4LmJ4Lit4LiiCivguJjguIfguYDguKLguLLguKfguKPguLLguIrguYPguKvguI3guYgKK+C4mOC4h+C4o+C4suC4iuC4meC4suC4p+C4tQor4LiY4LiH4Lij4Liy4LiK4Li04LiZ4Li14LiZ4LmJ4Lit4LiiCivguJjguIfguKPguLLguIrguLTguJnguLXguYPguKvguI3guYgKK+C4mOC4h+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiY4LiKCivguJjguIrguLUKK+C4mOC4leC4o+C4kAor4LiY4LiZCivguJjguJktCivguJjguJnguJjguLLguJnguLUKK+C4mOC4meC4muC4lOC4tQor4LiY4LiZ4Lia4Lix4LiV4LijCivguJjguJnguKrguKHguJrguLHguJXguLQKK+C4mOC4meC4quC4suC4owor4LiY4LiZ4Lix4LiHCivguJjguJnguLLguITguKEKK+C4mOC4meC4suC4hOC4suC4owor4LiY4LiZ4Liy4LiE4Liy4Lij4Lie4Liy4LiT4Li04LiK4Lii4LmMCivguJjguJnguLLguITguLLguKPguYLguKXguIEKK+C4mOC4meC4suC4hOC4suC4o+C4reC4reC4oeC4quC4tOC4mQor4LiY4LiZ4Liy4LiT4Lix4LiV4Li0CivguJjguJnguLTguJUKK+C4mOC4meC4tOC4qeC4kOC4sAor4LiY4LiZ4Li04Lip4LiQ4LiyCivguJjguJnguLgKK+C4mOC4meC4uOC4oy0KK+C4mOC4meC4uOC4o+C4oeC4suC4o+C4hAor4LiY4LiZ4Li44Lij4Lin4Li04LiX4Lii4LiyCivguJjguJnguLjguKPguYDguKfguJcKK+C4mOC4meC4uQor4LiY4LiZ4Li54Lio4Li04Lil4Lib4LmMCivguJjguYDguJnguKgKK+C4mOC5gOC4meC4qOC4p+C4owor4LiY4LmC4LiZ4Lib4LiI4Lix4LiiCivguJjguYTguJnguKjguKfguKPguKPguKLguYwKK+C4mOC4oQor4LiY4Lih4LiB4Lij4LiBCivguJjguKMKK+C4mOC4o+C4hwor4LiY4Lij4LiTCivguJjguKPguJPguLTguJkKK+C4mOC4o+C4k+C4tOC4meC4l+C4o+C5jAor4LiY4Lij4LiT4Li04LioCivguJjguKPguJPguLTguKjguKMKK+C4mOC4o+C4k+C4tOC4qOC4p+C4o+C5jAor4LiY4Lij4LiT4Li1CivguJjguKPguJPguLXguIHguLHguJnguYHguKrguIcKK+C4mOC4o+C4k+C4teC4m+C4o+C4sOC4leC4uQor4LiY4Lij4LiT4Li14Lih4LiT4LiR4LilCivguJjguKPguJPguLXguKPguYnguK3guIfguYTguKvguYkKK+C4mOC4o+C4k+C4teC4p+C4tOC4l+C4ouC4sgor4LiY4Lij4LiT4Li14Lio4Lin4LijCivguJjguKPguJPguLXguKrguIfguIbguYwKK+C4mOC4o+C4k+C4teC4quC4suC4owor4LiY4Lij4LiT4Li14Liq4Li54LiaCivguJjguKPguKHguLLguJkKK+C4mOC4o+C4o+C4oQor4LiY4Lij4Lij4LihLQor4LiY4Lij4Lij4Lih4LiB4LiW4LiyCivguJjguKPguKPguKHguIHguJbguLbguIEKK+C4mOC4o+C4o+C4oeC4geC4suC4oQor4LiY4Lij4Lij4Lih4LiB4Liy4LiiCivguJjguKPguKPguKHguIHguLLguKMKK+C4mOC4o+C4o+C4oeC4geC4suC4o+C4ouC5jAor4LiY4Lij4Lij4Lih4LmA4LiB4Lip4LiV4LijCivguJjguKPguKPguKHguILguLHguJnguJjguYwKK+C4mOC4o+C4o+C4oeC4hOC4uOC4kwor4LiY4Lij4Lij4Lih4LiI4Lij4LiT4LiwCivguJjguKPguKPguKHguIjguKPguKPguKLguLIKK+C4mOC4o+C4o+C4oeC4iOC4o+C4tOC4ouC4sgor4LiY4Lij4Lij4Lih4LiI4Lix4LiB4LijCivguJjguKPguKPguKHguIjguLHguIHguKnguLgKK+C4mOC4o+C4o+C4oeC4iOC4suC4hOC4sAor4LiY4Lij4Lij4Lih4LiI4Liy4Lij4Li1CivguJjguKPguKPguKHguIjguLTguJnguJTguLIKK+C4mOC4o+C4o+C4oeC5gOC4iOC4lOC4teC4ouC5jAor4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0CivguJjguKPguKPguKHguJDguLTguJXguLQKK+C4mOC4o+C4o+C4oeC4lOC4sgor4LiY4Lij4Lij4Lih4LiX4Lij4Lij4Lio4LiZ4LiwCivguJjguKPguKPguKHguJjguLLguJTguLIKK+C4mOC4o+C4o+C4oeC4mOC4suC4leC4uAor4LiY4Lij4Lij4Lih4LiZ4Liy4LiWCivguJjguKPguKPguKHguJnguLTguJXguKLguYwKK+C4mOC4o+C4o+C4oeC4meC4tOC4ouC4oQor4LiY4Lij4Lij4Lih4LiZ4Li04Lii4Liy4LihCivguJjguKPguKPguKHguJnguLTguYDguKfguKgKK+C4mOC4o+C4o+C4oeC4meC4ueC4jQor4LiY4Lij4Lij4Lih4LiZ4Li54LiN4LiB4Liy4Lij4Lib4LiB4LiE4Lij4Lit4LiH4Lij4Liy4LiK4Lit4Liy4LiT4Liy4LiI4Lix4LiB4LijCivguJjguKPguKPguKHguYDguJnguLXguKLguKEKK+C4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oeC4m+C4o+C4sOC5gOC4nuC4k+C4tQor4LiY4Lij4Lij4Lih4Lia4LiXCivguJjguKPguKPguKHguJrguLLguKUKK+C4mOC4o+C4o+C4oeC4muC4tOC4kAor4LiY4Lij4Lij4Lih4Lib4LiP4Li04Lij4Li54LibCivguJjguKPguKPguKHguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4mOC4o+C4o+C4oeC4m+C4o+C4sOC4leC4tOC4o+C4ueC4mwor4LiY4Lij4Lij4Lih4Lii4Li44LiVCivguJjguKPguKPguKHguKLguLjguJfguJjguYwKK+C4mOC4o+C4o+C4oeC4o+C4seC4leC4meC5jAor4LiY4Lij4Lij4Lih4Lij4Liy4LiK4LiyCivguJjguKPguKPguKHguKfguLHguJXguKMKK+C4mOC4o+C4o+C4oeC4qOC4suC4quC4leC4o+C5jAor4LiY4Lij4Lij4Lih4Liq4LiW4Li04LiV4Li0CivguJjguKPguKPguKHguKrguKDguLIKK+C4mOC4o+C4o+C4oeC4quC4o+C4teC4o+C4sAor4LiY4Lij4Lij4Lih4Liq4Lix4LiH4LiE4Li14LiV4Li0CivguJjguKPguKPguKHguKrguLHguIfguYDguKfguIoKK+C4mOC4o+C4o+C4oeC4quC4suC4geC4seC4iOC4ieC4sgor4LiY4Lij4Lij4Lih4Liq4Liy4Lih4Li04Liq4LijCivguJjguKPguKPguKHguKrguLLguKHguLUKK+C4mOC4o+C4o+C4oeC4quC4suC4owor4LiY4Lij4Lij4Lih4LiwCivguJjguKPguKPguKHguLDguJjguLHguKHguYLguKEKK+C4mOC4o+C4o+C4oeC4seC4meC5gOC4leC4p+C4suC4quC4tOC4gQor4LiY4Lij4Lij4Lih4Liy4LiX4Li04LiV4Lii4LmMCivguJjguKPguKPguKHguLLguJjguKPguKPguKEKK+C4mOC4o+C4o+C4oeC4suC4mOC4tOC4m+C5hOC4leC4ogor4LiY4Lij4Lij4Lih4Liy4LiY4Li04Lip4LiQ4Liy4LiZCivguJjguKPguKPguKHguLLguJnguLjguJjguKPguKPguKHguJvguI/guLTguJrguLHguJXguLQKK+C4mOC4o+C4o+C4oeC4suC4meC4uOC4quC4suC4owor4LiY4Lij4Lij4Lih4Liy4Lig4Li04Lih4Li44LiCCivguJjguKPguKPguKHguLLguKDguLTguKrguKHguLHguKIKK+C4mOC4o+C4o+C4oeC4suC4ouC4leC4meC4sAor4LiY4Lij4Lij4Lih4Liy4Lij4Lih4LiT4LmMCivguJjguKPguKPguKHguLLguKrguJnguYwKK+C4mOC4o+C4o+C4oeC4tOC4gQor4LiY4Lij4Lij4Lih4Li04LiBLQor4LiY4Lij4LiyCivguJjguKPguLLguJTguKUKK+C4mOC4o+C4suC4mOC4owor4LiY4Lij4Liy4LiY4Liy4LijCivguJjguKPguLLguJjguLTguJrguJTguLUKK+C4mOC4o+C4suC4mOC4tOC4mwor4LiY4Lij4Li04Lip4LiV4Lij4Li1CivguJjguYDguKPguKgKK+C4mOC5gOC4o+C4qeC4leC4o+C4tQor4LiY4LmA4Lij4Lip4LiV4Lij4Li14Lio4Lin4LijCivguJjguKfguLHguIoKK+C4mOC4seC4h+C4gQor4LiY4Lix4LiKCivguJjguLHguI0KK+C4mOC4seC4jS0KK+C4mOC4seC4jeC5guC4geC4qAor4LiY4Lix4LiN4LmA4LiC4LiVCivguJjguLHguI3guIrguLLguJXguLQKK+C4mOC4seC4jeC4jeC4suC4q+C4suC4owor4LiY4Lix4LiN4LiU4Lix4LiICivguJjguLHguI3guYDguJrguI3guIjguIEKK+C4mOC4seC4jeC4nuC4t+C4igor4LiY4Lix4LiN4Lih4Liy4LiqCivguJjguLHguJnguKLguLIKK+C4mOC4seC4meC4ouC4suC4p+C4suC4lwor4LiY4Lix4LiZ4Lin4Liy4LiE4LihCivguJjguLHguKHguKHguLAKK+C4mOC4suC4lOC4sgor4LiY4Liy4LiV4Lij4Li1CivguJjguLLguJXguKfguLLguIHguKMKK+C4mOC4suC4leC4uAor4LiY4Liy4LiV4Li4LQor4LiY4Liy4LiV4Li44LmC4LiC4LigCivguJjguLLguJXguLjguITguKPguKPguKAKK+C4mOC4suC4leC4uOC5gOC4iOC4lOC4teC4ouC5jAor4LiY4Liy4LiV4Li44LmA4Lia4LiyCivguJjguLLguJXguLjguKHguKHguLTguKrguKrguLIKK+C4mOC4suC4leC4uOC4quC4luC4ueC4mwor4LiY4Liy4LiV4Li44Lir4LiZ4Lix4LiBCivguJjguLLguJnguLTguJkKK+C4mOC4suC4meC4tOC4meC4l+C4o+C5jAor4LiY4Liy4LiZ4Li1CivguJjguLLguKMKK+C4mOC4suC4o+C4geC4s+C4meC4seC4pQor4LiY4Liy4Lij4LiE4Liz4LiZ4Lix4LilCivguJjguLLguKPguJMKK+C4mOC4suC4o+C4k+C4sAor4LiY4Liy4Lij4LiT4LiyCivguJjguLLguKPguJPguLLguKHguLHguKIKK+C4mOC4suC4o+C4nuC4o+C4sOC4geC4owor4LiY4Liy4Lij4Lii4Lix4LiB4Lip4LmMCivguJjguLLguKPguLIKK+C4mOC4suC4o+C4suC5gOC4hOC4q+C4sAor4LiY4Liy4Lij4Liy4LiY4Li04LiE4Li44LiTCivguJjguLLguKPguLLguKLguJnguJXguYwKK+C4mOC4suC4qeC4leC4o+C4tQor4LiY4Liz4Lih4Lij4LiH4LiE4LmMCivguJjguLPguKPguIcKK+C4mOC4tOC4lOC4sgor4LiY4Li04LiV4Li0CivguJjguLXguKMtCivguJjguLXguKPguKDguLLguJ4KK+C4mOC4teC4o+C4o+C4suC4igor4LiY4Li44LiKCivguJjguLjguJTguIfguIQtCivguJjguLjguJTguIfguITguYwKK+C4mOC4uOC4lOC4h+C4hOC4p+C4seC4leC4owor4LiY4Li44LiU4LiH4LiE4Liq4Lih4Liy4LiX4Liy4LiZCivguJjguLjguJUKK+C4mOC4uOC4leC4leC4sAor4LiY4Li44LihLQor4LiY4Li44Lih4LmA4LiB4LiV4Li4CivguJjguLjguKHguIrguLLguKUKK+C4mOC4uOC4oeC5gOC4nuC4peC4tOC4hwor4LiY4Li44Lih4LiyCivguJjguLjguKMtCivguJjguLjguKPguIHguLLguKMKK+C4mOC4uOC4o+C4geC4tOC4iAor4LiY4Li44Lij4LiwCivguJjguLjguKPguLMKK+C4mOC4uOC4peC4tQor4LiY4Li44LinLQor4LiY4Li44Lin4LiU4Liy4Lij4LiyCivguJjguLjguKfguKDguLLguIQKK+C4mOC4uOC4p+C4oeC4k+C4keC4pQor4LiY4Li44Lin4Lii4Lix4Lip4LiO4Li1CivguJjguLnguJsKK+C4mOC4ueC4my0KK+C4mOC4ueC4m+C4muC4suC4leC4owor4LiY4Li54Lib4LmB4Lie4LmA4LiX4Li14Lii4LiZ4LmB4LieCivguJjguLnguJvguYTguKHguYnguKPguLDguIHguLMKK+C4mOC4ueC4m+C4pOC5heC4qeC4tQor4LmA4LiY4LiZ4Li4CivguYDguJjguK0KK+C5gOC4mOC4teC4ouC4owor4LmC4LiY4LmICivguYLguJjguKfguJkKK+C4mQor4LiZ4LiBCivguJnguIHguIHguKPguLDguIjguK3guIEKK+C4meC4geC4geC4o+C4sOC4iOC4reC4geC4l+C4reC4hwor4LiZ4LiB4LiB4Lij4Liw4LiX4Li44LiHCivguJnguIHguIHguLDguJvguLnguJQKK+C4meC4geC4geC4suC4h+C4m+C4teC4gQor4LiZ4LiB4LmA4LiC4LiyCivguJnguIHguITguLjguYjguKEKK+C4meC4geC4iOC4suC4gQor4LiZ4LiB4LiV4LmI4LitCivguJnguIHguKLguLnguIcKK+C4meC4geC4o+C4ueC5iQor4LiZ4LiB4Liq4Lit4LiH4Lir4Lix4LinCivguJnguIHguKvguIEKK+C4meC4geC4q+C4p+C4teC4lAor4LiZ4LiB4Lit4Lii4Li54LmI4LmD4LiZ4Lib4Lil4LmI4Lit4LiHCivguJnguIHguLjguKUKK+C4meC4ggor4LiZ4LiCLQor4LiZ4LiC4LiX4Liy4Lij4LiT4LmMCivguJnguILguKXguLTguILguLTguJUKK+C4meC4guC5gOC4peC4guC4sgor4LiZ4LiC4LiyCivguJnguIQKK+C4meC4hOC4owor4LiZ4LiE4LijLQor4LiZ4LiE4Lij4Lia4Liy4LilCivguJnguITguKPguJrguLLguKXguIjguLHguIfguKvguKfguLHguJQKK+C4meC4hOC4o+C4o+C4seC4kAor4LiZ4LiE4Lij4Lin4Liy4Liq4Li1CivguJnguITguKPguYLguKrguKDguLTguJPguLUKK+C4meC4hOC4o+C5guC4quC5gOC4oOC4k+C4tQor4LiZ4LiE4Lij4Liy4LiX4LijCivguJnguITguKPguLTguJnguJfguKPguYwKK+C4meC4hOC5gOC4o+C4qAor4LiZ4LiE4Li04LiZ4LiX4LijCivguJnguITguLTguJnguJfguKPguYwKK+C4meC5gOC4hOC4meC4l+C4o+C5jAor4LiZ4LmA4LiE4Lio4Lin4LijCivguJnguYLguITguJfguKMKK+C4meC4hwor4LiZ4LiH4LiE4Lij4Liy4LiNCivguJnguIfguITguLjguJAKK+C4meC4h+C4meC4uOC4igor4LiZ4LiH4Lie4Liw4LiH4LiyCivguJnguIfguJ7guLLguKUKK+C4meC4h+C4nuC4uOC4mAor4LiZ4LiH4LmC4Lie4LiYCivguJnguIfguYDguKLguLLguKfguYwKK+C4meC4h+C4o+C4suC4oQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMCivguJnguJcKK+C4meC4l+C4tQor4LiZ4LiX4Li14Lij4Lix4LiiCivguJnguJnguJXguKPguLIKK+C4meC4meC4l+C5jAor4LiZ4LiZ4LiX4Lij4Li1CivguJnguJnguJfguKXguLUKK+C4meC4meC4l+C4tAor4LiZ4LiaCivguJnguJrguJnguK3guJoKK+C4meC4m+C4uOC4h+C4quC4geC4peC4tOC4h+C4hOC5jAor4LiZ4Lib4Li44LiH4Liq4LiB4Lil4Li24LiH4LiE4LmMCivguJnguJ4KK+C4meC4ni0KK+C4meC4nuC4geC4sAor4LiZ4Lie4LmA4LiB4LmJ4LiyCivguJnguJ7guITguLjguJMKK+C4meC4nuC5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiZ4Lie4LiZ4Li04LiVCivguJnguJ7guJvguI7guKUKK+C4meC4nuC4nuC4pQor4LiZ4Lie4Lie4Lin4LiHCivguJnguJ7guJ7guLHguJkKK+C4meC4nuC4o+C4seC4leC4meC5jAor4LiZ4Lie4Lio4LiBCivguJnguJ7guKjguLnguKUKK+C4meC4oC0KK+C4meC4oOC4iOC4owor4LiZ4Lig4LiU4LilCivguJnguKDguKHguJPguJHguKUKK+C4meC4oOC4p+C4tOC4luC4tQor4LiZ4Lig4Lio4Li54LilCivguJnguKDguKrguLTguJnguJjguLjguYwKK+C4meC4oOC4sgor4LiZ4Lig4Liy4Lil4Lix4LiiCivguJnguKEKK+C4meC4oeC4geC4o+C4sOC5geC4iuC4hwor4LiZ4Lih4LiC4LmJ4LiZCivguJnguKHguITguKfguLLguKIKK+C4meC4oeC4iuC4sOC4meC4tQor4LiZ4Lih4LiK4LmJ4Liy4LiHCivguJnguKHguJXguLLguJrguK3guJQKK+C4meC4oeC4leC4suC4quC4sOC5geC4gQor4LiZ4Lih4LiV4Liz4LmA4Lij4Li14LiiCivguJnguKHguJXguLPguYDguKXguLXguKIKK+C4meC4oeC4meC4suC4hwor4LiZ4Lih4LiZ4Liy4LiZCivguJnguKHguJrguIHguK3guIHguJ7guKPguYjguK3guIcKK+C4meC4oeC4muC4reC4lAor4LiZ4Lih4Lic4LiHCivguJnguKHguJzguLIKK+C4meC4oeC4nuC4p+C4hwor4LiZ4Lih4Lie4Li04LiI4Li04LiV4LijCivguJnguKHguYHguKHguKcKK+C4meC4oeC5hOC4oeC5iQor4LiZ4Lih4Lin4Lix4LinCivguJnguKHguKrguKfguKPguKPguITguYwKK+C4meC4oeC4quC4suC4pwor4LiZ4Lih4Lir4LiZ4Li5CivguJnguKHguLAKK+C4meC4oeC4seC4geC4geC4suC4owor4LiZ4Lih4Lix4Liq4LiB4Liy4LijCivguJnguKHguLLguIsKK+C4meC4oi0KK+C4meC4ouC4meC4sAor4LiZ4Lii4LiZ4LiyCivguJnguKLguLAKK+C4meC4ouC4seC4geC4qeC5jAor4LiZ4LmC4Lii4Lia4Liy4LiiCivguJnguKMtCivguJnguKPguIEKK+C4meC4o+C4geC4suC4meC4leC5jAor4LiZ4Lij4LiB4Liy4LijCivguJnguKPguYDguJfguJ4KK+C4meC4o+C4meC4suC4lgor4LiZ4Lij4LiZ4Liy4Lii4LiBCivguJnguKPguJrguJTguLUKK+C4meC4o+C4muC4suC4pQor4LiZ4Lij4Lie4Lii4Lix4LiE4LiG4LmMCivguJnguKPguKPguLLguIoKK+C4meC4o+C5gOC4qOC4o+C4qeC4kOC5jAor4LiZ4Lij4Liq4Li04LiH4Lir4LmMCivguJnguKPguKrguLXguKvguYwKK+C4meC4o+C4sgor4LiZ4Lij4Liy4LiY4Li04LibCivguJnguKPguLTguJnguJfguKPguYwKK+C4meC4o+C4tOC4qAor4LiZ4Lij4Li04Lio4LijCivguJnguKPguLTguKjguKfguKMKK+C4meC4o+C4tQor4LiZ4Lij4Li14LmA4Lin4LiK4Lin4Li04LiX4Lii4LiyCivguJnguYDguKPguJnguJfguKPguKrguLnguKMKK+C4meC5gOC4o+C4qAor4LiZ4LmA4Lij4Lio4Lin4LijCivguJnguYDguKPguKjguKfguKPguYzguIrguJnguIrguYnguLLguIcKK+C4meC5gOC4o+C4qOC4ueC4owor4LiZ4LmC4Lij4LiU4LihCivguJnguKQtCivguJnguKTguITguKvguLTguJUKK+C4meC4pOC5guC4huC4qQor4LiZ4Lik4LiU4LihCivguJnguKTguJXguKItCivguJnguKTguJXguKLguYwKK+C4meC4pOC4leC4ouC4qOC4suC4peC4sgor4LiZ4Lik4LiV4Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguJnguKTguJXguKLguKrguJbguLLguJkKK+C4meC4pOC5gOC4l+C4ngor4LiZ4Lik4LiZ4Liy4LiXCivguJnguKTguJrguJTguLUKK+C4meC4pOC4muC4suC4pQor4LiZ4Lik4LmA4Lia4LioCivguJnguKTguJsKK+C4meC4pOC4m+C4meC4teC4leC4tAor4LiZ4Lik4Lib4LmA4Lin4Lio4Lih4LmMCivguJnguKTguJvguLHguJXguJnguLUKK+C4meC4pOC4nuC4suC4mQor4LiZ4Lik4Lih4LilCivguJnguKTguKHguLLguJMKK+C4meC4pOC4oeC4tOC4lQor4LiZ4Lil4Liy4LiPCivguJnguKXguLTguJkKK+C4meC4peC4tOC4meC4tQor4LiZ4LinLQor4LiZ4Lin4LiBLQor4LiZ4Lin4LiB4Lig4Li54Lih4Li0CivguJnguKfguIHguKPguKPguKEKK+C4meC4p+C4geC4o+C4o+C4oeC4tOC4gQor4LiZ4Lin4LiB4LiwCivguJnguKfguIHguLLguKMKK+C4meC4p+C4geC4tOC4iAor4LiZ4Lin4LmC4LiB4Lin4Liy4LiXCivguJnguKfguITguKPguKvguLAKK+C4meC4p+C4hOC4uOC4kwor4LiZ4Lin4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguKfguIrguLLguJUKK+C4meC4p+C4lAor4LiZ4Lin4LiU4LiC4LmJ4Liy4LinCivguJnguKfguJTguYHguJvguYnguIcKK+C4meC4p+C4lOC4n+C4seC5ieC4mQor4LiZ4Lin4LiX4Lin4Liy4LijCivguJnguKfguJnguLTguJUKK+C4meC4p+C4meC4tOC4ouC4suC4ogor4LiZ4Lin4Lib4LiO4LilCivguJnguKfguJ7guJjguLkKK+C4meC4p+C4oQor4LiZ4LmI4Lin4LihCivguJnguKfguKHguLUKK+C4meC4p+C4oeC4uOC4ggor4LiZ4Lin4LiiCivguJnguKfguKLguJnguLLguJQKK+C4meC4p+C4o+C4seC4leC4meC5jAor4LiZ4Lin4LilCivguJnguKfguKXguIjguLHguJnguJfguKPguYwKK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jOC4l+C4sOC5gOC4pQor4LiZ4Lin4Lil4LiZ4LmJ4Lit4LiiCivguJnguKfguKXguKPguLDguKvguIcKK+C4meC4p+C4peC4peC4reC4rQor4LiZ4Lin4Lil4Lil4Liw4Lit4Lit4LiHCivguJnguKfguKXguKvguIcKK+C4meC4p+C5guC4peC4q+C4sAor4LiZ4Lin4Lin4Li04LiYCivguJnguKfguK3guKPguKvguLLguJfguLTguITguLjguJMKK+C4meC4p+C4seC4h+C4hOC4quC4seC4leC4luC4uOC4qOC4suC4quC4meC5jAor4LiZ4Lin4Liy4Lij4Lir4Liy4LiX4Li04LiE4Li44LiTCivguJnguKfguLLguKPguLAKK+C4meC4q+C4suC4lOC4gQor4LiZ4Lir4Liy4LiZCivguJnguKvguLLguKPguLgKK+C4meC4q+C4uOC4lQor4LiZ4LisCivguJnguKwtCivguJnguKzguIHguLLguKMKK+C4meC4rOC4mwor4LiZ4LitCivguJnguK3guIEKK+C4meC4reC4geC4geC4juC4q+C4oeC4suC4ogor4LiZ4Lit4LiB4LiE4Lij4Li5CivguJnguK3guIHguITguK3guIEKK+C4meC4reC4geC4iOC4suC4gQor4LiZ4Lit4LiB4LmD4LiICivguJnguK3guIHguIrguLLguJkKK+C4meC4reC4geC4leC4s+C4o+C4sgor4LiZ4Lit4LiB4LiW4LiZ4LiZCivguJnguK3guIHguJrguLLguKXguLUKK+C4meC4reC4geC4o+C4teC4lQor4LiZ4Lit4LiB4Lij4Li14LiV4LiZ4Lit4LiB4Lij4Lit4LiiCivguJnguK3guIHguKXguLnguYjguJnguK3guIHguJfguLLguIcKK+C4meC4reC4geC5gOC4q+C4meC4t+C4rQor4LiZ4Lit4LiHCivguJnguYjguK3guIcKK+C4meC5ieC4reC4hwor4LiZ4LmJ4Lit4LiH4LmGCivguJnguK3guIfguYDguJnguLfguK3guIcKK+C4meC5iOC4reC4h+C5geC4meC5iOC4hwor4LiZ4LmJ4Lit4LiH4LmA4Lie4LilCivguJnguK3guIfguYDguKXguLfguK3guJQKK+C4meC5iOC4reC4h+C4quC4tOC4h+C4q+C5jAor4LiZ4Lit4LiH4Lir4LiZ4LmJ4LiyCivguJnguK3guJUKK+C4meC4reC4mQor4LiZ4Lit4LiZ4LiB4LmJ4LiZCivguJnguK3guJnguIHguLTguJkKK+C4meC4reC4meC5g+C4iAor4LiZ4Lit4LiZ4LiV4Liy4LmE4Lih4LmI4Lir4Lil4Lix4LiaCivguJnguK3guJnguJXguLXguJ7guLjguIcKK+C4meC4reC4meC4meC4gQor4LiZ4Lit4LiZ4LmB4Lia4LmH4LiaCivguJnguK3guJnguYLguKPguIcKK+C4meC4reC4meC5gOC4peC5iOC4mQor4LiZ4Lit4LiZ4Lin4Lix4LiZCivguJnguK3guJnguYDguKfguKMKK+C4meC4reC4meC4q+C4peC4seC4muC4l+C4seC4muC4quC4tOC4l+C4mOC4tOC5jAor4LiZ4Lit4LiZ4Lir4Lil4Lix4Lia4LmE4Lih4LmI4Lij4Li54LmJIOC4meC4reC4meC4hOC4ueC5ieC5hOC4oeC5iOC5gOC4q+C5h+C4mQor4LiZ4Lit4LiaCivguJnguK3guJrguJnguJoKK+C4meC4reC4muC4meC5ieC4reC4oQor4LiZ4LmJ4Lit4LihCivguJnguYnguK3guKHguYDguIHguKXguYnguLLguJnguYnguK3guKHguIHguKPguLDguKvguKHguYjguK3guKHguJbguKfguLLguKIKK+C4meC5ieC4reC4oeC4meC4swor4LiZ4LmJ4Lit4LiiCivguJnguYnguK3guKLguYHguIfguYgKK+C4meC5ieC4reC4ouC5g+C4iAor4LiZ4LmJ4Lit4Lii4LmA4LiZ4Li34LmJ4Lit4LiV4LmI4Liz4LmD4LiICivguJnguYnguK3guKLguKvguJnguYjguLIKK+C4meC5ieC4reC4ouC4q+C4meC5ieC4sgor4LiZ4LmJ4Lit4Lii4Lir4Lij4Li34LitCivguJnguYnguK3guKLguYLguKvguJnguYjguIcKK+C4meC4sAor4LiZ4Liw4LmB4LiZ4LmI4LiHCivguJnguLHguIEKK+C4meC4seC4geC4geC4sAor4LiZ4Lix4LiB4LiB4Liy4LijCivguJnguLHguIHguIHguLLguKPguYDguKHguLfguK3guIcKK+C4meC4seC4geC4geC4teC4rOC4sgor4LiZ4Lix4LiB4LiC4Lix4LiVCivguJnguLHguIHguILguLHguJUtCivguJnguLHguIHguILguLHguJXguKTguIHguKnguYwKK+C4meC4seC4geC4guC5iOC4suC4pwor4LiZ4Lix4LiB4LiH4Liy4LiZCivguJnguLHguIHguJXguLAKK+C4meC4seC4geC4l+C5iOC4reC4h+C5gOC4l+C4teC5iOC4ouC4pwor4LiZ4Lix4LiB4LmA4LiX4LioCivguJnguLHguIHguYDguJfguKjguJnguYwKK+C4meC4seC4geC5guC4l+C4qQor4LiZ4Lix4LiB4LmC4LiX4Lip4LmA4LiU4LmH4LiU4LiC4Liy4LiUCivguJnguLHguIHguYLguJfguKnguJ7guLTguYDguKjguKkKK+C4meC4seC4geC4mOC4o+C4o+C4oQor4LiZ4Lix4LiB4Lia4Lin4LiKCivguJnguLHguIHguJrguLTguJkKK+C4meC4seC4geC4muC4uOC4jQor4LiZ4Lix4LiB4Lib4Lij4Liy4LiK4LiN4LmMCivguJnguLHguIHguJ7guKPguJUKK+C4meC4seC4geC4owor4LiZ4Lix4LiB4Lij4LiaCivguJnguLHguIHguYDguKPguLXguKLguJkKK+C4meC4seC4geC5gOC4peC4hwor4LiZ4Lix4LiB4Lio4Li24LiB4Lip4LiyCivguJnguLHguIHguKnguLHguJXguKMKK+C4meC4seC4geC4qeC4seC4leC4oy0KK+C4meC4seC4geC4qeC4seC4leC4o+C4iOC4seC4geC4owor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4LmA4LiZ4Lih4Li1CivguJnguLHguIHguKnguLHguJXguKPguJrguJTguLUKK+C4meC4seC4geC4qeC4seC4leC4o+C4muC4lgor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4Lib4Liy4LiQ4LiBCivguJnguLHguIHguKnguLHguJXguKPguKHguJPguJHguKUKK+C4meC4seC4geC4qeC4seC4leC4o+C4oeC4suC4peC4sgor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4LmC4Lii4LiECivguJnguLHguIHguKnguLHguJXguKPguKfguLTguJfguKLguLIKK+C4meC4seC4geC4quC4meC4oQor4LiZ4Lix4LiB4Liq4Lij4Liy4LiKCivguJnguLHguIHguKrguKfguJQKK+C4meC4seC4geC4quC4tOC4l+C4mOC4tOC5jAor4LiZ4Lix4LiB4Liq4Li34LiaCivguJnguLHguIHguKvguJnguLIKK+C4meC4seC4ggor4LiZ4Lix4LiECivguJnguLHguITguITguLAKK+C4meC4seC5iOC4hwor4LiZ4Lix4LmI4LiH4LiB4Li04LiZ4LiZ4Lit4LiZ4LiB4Li04LiZCivguJnguLHguYjguIfguILguLHguJTguKrguKHguLLguJjguLQKK+C4meC4seC4h+C4hOC4seC4pQor4LiZ4Lix4LmI4LiH4LiE4Li44LiB4LmA4LiC4LmI4LiyCivguJnguLHguYjguIfguIvguLHguIcKK+C4meC4seC5iOC4h+C4l+C4suC4hwor4LiZ4Lix4LmI4LiH4LiX4Liy4LiH4LmD4LiZCivguJnguLHguYjguIfguYDguJfguLXguKLguJkKK+C4meC4seC5iOC4h+C5g+C4meC4q+C4seC4p+C5g+C4iAor4LiZ4Lix4LmI4LiH4Lib4Lij4LiBCivguJnguLHguYjguIfguYLguJvguYjguIcKK+C4meC4seC5iOC4h+C4nuC4seC4muC5gOC4nuC4teC4ouC4mgor4LiZ4Lix4LmI4LiH4LmA4Lih4Li34Lit4LiHCivguJnguLHguYjguIfguKLguK3guIfguYYKK+C4meC4seC5iOC4h+C4o+C5ieC4suC4mQor4LiZ4Lix4LmI4LiH4Lij4Liy4LinCivguJnguLHguYjguIfguYDguKXguYjguJkKK+C4meC4seC5iOC4h+C4q+C5ieC4suC4hwor4LiZ4Lix4LiICivguJnguLHguI8KK+C4meC4seC4j+C4gQor4LiZ4Lix4LiRCivguJnguLHguJQKK+C4meC4seC4lOC4lOC4sgor4LiZ4Lix4LiU4LmB4LiZ4LiwCivguJnguLHguJTguKvguKHguLLguKIKK+C4meC4seC4leC4luC4uOC5jAor4LiZ4Lix4LmI4LiZCivguJnguLHguYnguJkKK+C4meC4seC5iOC4meC4i+C4tQor4LiZ4Lix4LiZ4LiXLQor4LiZ4Lix4LiZ4LiX4LiX4Liy4Lii4Li1CivguJnguLHguJnguJfguJnguYwKK+C4meC4seC4meC4l+C4meC4suC4geC4suC4owor4LiZ4Lix4LiZ4LiX4Lib4Lix4LiB4Lip4Li1CivguJnguLHguJnguJfguLQKK+C4meC4seC5iOC4meC5geC4meC5iAor4LiZ4Lix4LmI4LiZ4Lib4Liw4LmE4LijCivguJnguLHguYnguJnguYHguKUKK+C4meC4seC5iOC4meC5geC4q+C4peC4sAor4LiZ4Lix4LmI4LiZ4LmA4Lit4LiHCivguJnguLHguJoKK+C4meC4seC4muC4luC4t+C4rQor4LiZ4Lix4Lia4Lib4Lij4Liw4Liq4LiyCivguJnguLHguJrguKvguJnguYnguLLguJbguLfguK3guJXguLIKK+C4meC4seC4ogor4LiZ4Lix4Lii4LiZ4LmMCivguJnguLHguKLguJnguYzguJXguLIKK+C4meC4seC4ouC4meC5jOC5gOC4meC4leC4owor4LiZ4Lix4Lii4LiZ4LiyCivguJnguLHguKLguJnguLLguKHguJ7guLgKK+C4meC4seC4ouC4p+C5iOC4sgor4LiZ4Lix4LinCivguJnguLHguKfguYDguJnguLXguKIKK+C4meC4sgor4LiZ4LmI4LiyCivguJnguYnguLIKK+C4meC4suC4gQor4LiZ4Liy4LiB4Lia4Li44LiUCivguJnguLLguIHguKrguKfguLLguJQKK+C4meC4suC4geC4suC4quC4suC4q+C4o+C4tQor4LiZ4LmI4Liy4LmA4LiB4Lil4Li14Lii4LiU4LiZ4LmI4Liy4LiK4Lix4LiHCivguJnguLLguILguK3guJrguYDguKvguKXguYfguIEKK+C4meC4suC4hAor4LiZ4Liy4LiELQor4LiZ4Liy4LiE4LmA4LiB4Li14LmI4Lii4LinCivguJnguLLguITguYDguIHguLXguYnguKLguKcKK+C4meC4suC4hOC5gOC4geC4teC5ieC4ouC4p+C4geC4o+C4sOC4q+C4p+C4seC4lAor4LiZ4Liy4LiE4LmA4LiB4Li14LmI4Lii4Lin4Lie4Lij4Liw4Liq4Li44LmA4Lih4Lij4Li4CivguJnguLLguITguJfguJnguJXguYwKK+C4meC4suC4hOC4muC4o+C4tOC4nuC4seC4meC4mOC5jAor4LiZ4Liy4LiE4Lia4Liy4LioCivguJnguLLguITguJvguKPguIEKK+C4meC4suC4hOC4m+C4seC4gQor4LiZ4Liy4LiE4Lie4Lix4LiZ4LiY4LmMCivguJnguLLguITguKMKK+C4meC4suC4hOC4o+C4p+C4ogor4LiZ4Liy4LiE4Lij4Liy4LiKCivguJnguLLguITguKPguLLguIrguYHguJzguKXguIfguKTguJfguJjguLTguYwKK+C4meC4suC4hOC4peC4lOC4sgor4LiZ4Liy4LiE4LmA4Lil4LmI4LiZ4LiZ4LmJ4LizCivguJnguLLguITguKfguLTguJbguLUKK+C4meC4suC4hOC4quC4sOC4lOC4uOC5ieC4hwor4LiZ4Liy4LiE4Liq4Lix4LiH4Lin4Lix4LiI4LiJ4LijCivguJnguLLguITguLIKK+C4meC4suC4hOC4suC4p+C5guC4peC4gQor4LiZ4Liy4LiE4Li04LiZ4LiX4Lij4LmMCivguJnguLLguITguLUKK+C4meC4suC4hOC4ueC5iOC5guC4hAor4LiZ4Liy4LmA4LiE4LiZ4LiX4Lij4LmMCivguJnguLLguYDguITguKgKK+C4meC4suC5gOC4hOC4qOC4p+C4owor4LiZ4Liy4LmC4LiE4Lij4LiE4Li04LiZ4LiX4LijCivguJnguLLguIcKK+C4meC4suC4h+C4geC4o+C4suC4ogor4LiZ4Liy4LiH4LiB4Lin4Lix4LiBCivguJnguLLguIfguYDguIHguKXguYfguJQKK+C4meC4suC4h+C4h+C4suC4oQor4LiZ4Liy4LiH4LiI4Lij4Lix4LilCivguJnguLLguIfguIjguLjguKEKK+C4meC4suC4h+C4iuC4oQor4LiZ4Liy4LiH4LiU4LizCivguJnguLLguIfguJfguYnguLLguKcKK+C4meC4suC4h+C4meC4p+C4pQor4LiZ4Liy4LiH4LiZ4Li54LiZCivguJnguLLguIfguYHguJnguJoKK+C4meC4suC4h+C5g+C4mQor4LiZ4Liy4LiH4Lia4Liz4LmA4Lij4LitCivguJnguLLguIfguJ7guI3guLIKK+C4meC4suC4h+C4nuC4o+C4sOC4geC4s+C4meC4seC4pQor4LiZ4Liy4LiH4Lif4LmJ4LiyCivguJnguLLguIfguYDguKHguLfguK3guIcKK+C4meC4suC4h+C5hOC4oeC5iQor4LiZ4Liy4LiH4LmB4Lii4LmJ4LihCivguJnguLLguIfguKPguKEKK+C4meC4suC4h+C4o+C4oeC5g+C4q+C4jeC5iAor4LiZ4Liy4LiH4Lij4Lit4LiHCivguJnguLLguIfguKPguYnguK3guIfguYTguKvguYkKK+C4meC4suC4h+C4o+C4swor4LiZ4Liy4LiH4LmA4Lij4Li14Lii4LiHCivguJnguLLguIfguKXguYnguK3guKEKK+C4meC4suC4h+C5gOC4peC5h+C4lAor4LiZ4Liy4LiH4LmA4Lil4Li04LmJ4LiHCivguJnguLLguIfguKrguJnguK3guIfguJ7guKPguLDguYLguK3guKnguJDguYwKK+C4meC4suC4h+C4quC4suC4pwor4LiZ4Liy4LiH4Lir4LiH4Liq4LmMCivguJnguLLguIfguKvguYnguLLguKEKK+C4meC4suC4h+C4reC5ieC4reC4oQor4LiZ4Liy4LiH4Lit4Liy4LiiCivguJnguLLguIfguYDguK3guIEKK+C4meC4suC4h+C5geC4reC5iOC4mQor4LiZ4Liy4LmA4LiK4Li04LiH4LiX4Lij4LiHCivguJnguLLguI8KK+C4meC4suC4jy0KK+C4meC4suC4j+C4gQor4LiZ4Liy4LiP4LiB4Lij4Lij4LihCivguJnguLLguI/guJTguJnguJXguKPguLUKK+C4meC4suC4j+C4oi0KK+C4meC4suC4j+C4qOC4tOC4peC4m+C5jAor4LiZ4Liy4LiUCivguJnguLLguJTguLMKK+C4meC4suC4lgor4LiZ4Liy4LiXCivguJnguLLguJfguLUKK+C4meC4suC4mQor4LiZ4LmI4Liy4LiZCivguJnguLLguJnguJnguKEKK+C4meC5iOC4suC4meC4meC5ieC4swor4LiZ4LmI4Liy4LiZ4LiZ4LmJ4Liz4Lit4Liy4LiT4Liy4LmA4LiC4LiVCivguJnguYjguLLguJnguJ/guYnguLIKK+C4meC4suC4meC4quC4reC4h+C4meC4suC4mQor4LiZ4Liy4LiZ4LmB4Liq4LiZ4LiZ4Liy4LiZCivguJnguLLguJnguLHguITguKPguKoKK+C4meC4suC4meC4seC4leC4pwor4LiZ4Liy4LiZ4Lix4Lib4LiB4Liy4LijCivguJnguLLguJnguLIKK+C4meC4suC4meC4suC5gOC4meC4gQor4LiZ4Liy4LiZ4Liy4Lib4Lij4Liw4LiB4Liy4LijCivguJnguLLguYDguJnguIEKK+C4meC4suC4mgor4LiZ4Liy4Lia4LiC4LmJ4Liy4LinCivguJnguLLguJvguKPguLHguIcKK+C4meC4suC4m+C4tQor4LiZ4Liy4Lif4Liy4LiH4Lil4Lit4LiiCivguJnguLLguKDguLQKK+C4meC4suC4oOC4tQor4LiZ4Liy4LihCivguJnguLLguKEtCivguJnguLLguKHguIHguKMKK+C4meC4suC4oeC4mOC4o+C4o+C4oQor4LiZ4Liy4Lih4LmE4LiY4LiiCivguJnguLLguKHguJrguLHguJXguKMKK+C4meC4suC4oeC4m+C4suC4geC4geC4sgor4LiZ4Liy4Lih4LmB4Lid4LiHCivguJnguLLguKHguKrguIHguLjguKUKK+C4meC4suC4oeC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiZ4Liy4Lih4Liq4Lih4LiN4LiyCivguJnguLLguKHguLLguJnguLjguIHguKPguKEKK+C4meC4suC4oeC4suC4meC4uOC4qOC4suC4quC4leC4o+C5jAor4LiZ4Liy4Lih4Liy4Lig4Li04LmE4LiY4LiiCivguJnguLLguYDguKHguLfguK3guIcKK+C4meC4suC4ogor4LiZ4LmI4Liy4LiiCivguJnguLLguKLguIEKK+C4meC4suC4ouC4geC5gOC4l+C4qOC4oeC4meC4leC4o+C4tQor4LiZ4Liy4Lii4LiB4Lij4Lix4LiQ4Lih4LiZ4LiV4Lij4Li1CivguJnguLLguKLguIfguLLguJkKK+C4meC4suC4ouC5gOC4h+C4tOC4mQor4LiZ4Liy4Lii4LiI4LmJ4Liy4LiHCivguJnguLLguKLguJXguKPguKfguIgKK+C4meC4suC4ouC4l+C5iOC4sgor4LiZ4Liy4Lii4LiX4LmJ4Liy4LiiCivguJnguLLguKLguJfguLjguJkKK+C4meC4suC4ouC4mOC4hwor4LiZ4Liy4Lii4Lib4Lij4Liw4LiB4Lix4LiZCivguJnguLLguKLguJvguKPguLDguYDguJ7guJPguLUKK+C4meC4suC4ouC5guC4o+C4hwor4LiZ4Liy4Lii4Lin4LmI4Liy4LiC4Li14LmJ4LiC4LmJ4Liy4Lie4Lil4Lit4LiiCivguJnguLLguKLguYDguKfguKMKK+C4meC4suC4ouC4q+C4meC5ieC4sgor4LiZ4Liy4Lii4Lit4Liy4LiB4LijCivguJnguLLguKLguK3guLPguYDguKDguK0KK+C4meC4suC4ouC4tOC4geC4sgor4LiZ4Liy4Lij4LiyCivguJnguLLguKPguLLguKLguJPguYwKK+C4meC4suC4o+C4suC4ouC4k+C5jOC4l+C4o+C4h+C5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiZ4Liy4Lij4Liy4Lii4LiT4LmM4Lib4Lij4Liw4Lil4Lit4LiH4Lio4Li04Lil4Lib4LmMCivguJnguLLguKPguLLguKLguJPguYzguKvguLHguJXguJbguYwKK+C4meC4suC4o+C4tQor4LiZ4Liy4Lij4Li14Lia4Li54LijCivguJnguLLguKPguLXguJzguKUKK+C4meC4suC4o+C4teC4quC4ueC4owor4LiZ4Liy4LmA4Lij4LioCivguJnguLLguKXguLTguKfguLHguJkKK+C4meC4suC4peC4tQor4LiZ4Liy4LinCivguJnguYnguLLguKcKK+C4meC4suC4p+C4sgor4LiZ4Liy4Lin4Li04LiBCivguJnguLLguKfguLTguIEtCivguJnguLLguKfguLTguIHguYLguKLguJjguLTguJkKK+C4meC4suC4p+C4tOC4mQor4LiZ4Liy4Lin4Li1CivguJnguLLguYDguKfguKgKK+C4meC4suC4qAor4LiZ4Liy4Liq4Lin4LiZCivguJnguLLguKrguLIKK+C4meC4suC4quC4tOC4gQor4LiZ4Liy4Lir4Lin4LmI4Liy4LiZCivguJnguLLguKzguLTguIHguLIKK+C4meC4suC4rOC4tOC4geC4suC5geC4lOC4lAor4LiZ4Liy4Lis4Li04LiB4Liy4LiX4Lij4Liy4LiiCivguJnguLLguKzguLTguIHguLLguJnguYnguLMKK+C4meC4suC4rOC4tOC5gOC4gQor4LiZ4Liy4Lis4Li1CivguJnguLMKK+C4meC5ieC4swor4LiZ4LmJ4Liz4LiB4Lij4LiUCivguJnguYnguLPguIHguKPguLDguJTguYnguLLguIcKK+C4meC5ieC4s+C4geC4o+C4sOC4quC4suC4ogor4LiZ4LmJ4Liz4LiB4Liw4LiX4Li0CivguJnguYnguLPguIHguLLguKEKK+C4meC5ieC4s+C5gOC4geC4peC4t+C4rQor4LiZ4LmJ4Liz4LmA4LiB4Li04LiUCivguJnguYnguLPguILguLLguKcKK+C4meC5ieC4s+C4guC5ieC4suC4pwor4LiZ4LmJ4Liz4LiC4Li24LmJ4LiZCivguJnguYnguLPguILguLbguYnguJnguYPguKvguYnguKPguLXguJrguJXguLHguIEKK+C4meC5ieC4s+C4guC4uOC5iOC4meC5hOC4p+C5ieC5g+C4mSDguJnguYnguLPguYPguKrguYTguKfguYnguJnguK3guIEKK+C4meC5ieC4s+C5geC4guC5h+C4hwor4LiZ4LmJ4Liz4LmB4LiC4LmH4LiH4LmB4Lir4LmJ4LiHCivguJnguYnguLPguITguKPguLMKK+C4meC5ieC4s+C4hOC4o+C5iOC4swor4LiZ4LmJ4Liz4LiE4Lix4LiZCivguJnguYnguLPguITguYnguLLguIcKK+C4meC5ieC4s+C4hOC5ieC4suC4h+C5geC4guC5h+C4hwor4LiZ4LmJ4Liz4LiE4Liy4Lin4Lib4Lil4LiyCivguJnguYnguLPguITguLMKK+C4meC5ieC4s+C5gOC4hOC5h+C4oQor4LiZ4LmJ4Liz4LmA4LiE4LiiCivguJnguYnguLPguYDguIfguLTguJkKK+C4meC5ieC4s+C4iOC4seC4k+C4keC5jAor4LiZ4Liz4LiI4Lix4LiaCivguJnguYnguLPguIjguLTguYnguKEKK+C4meC5ieC4s+C5g+C4iAor4LiZ4LmJ4Liz4LmD4LiI4LmD4LiE4Lij4LmICivguJnguYnguLPguIrguJkKK+C4meC5ieC4s+C4iuC4uOC4mgor4LiZ4LmJ4Liz4LmA4LiK4Li14LmI4Lii4Lin4Lit4Lii4LmI4Liy4LiC4Lin4Liy4LiH4LmA4Lij4Li34LitCivguJnguYnguLPguYDguIrguLfguYnguK0KK+C4meC5ieC4s+C5gOC4iuC4t+C5iOC4reC4oQor4LiZ4LmJ4Liz4LiL4Lix4LiaCivguJnguYnguLPguIvguLLguKfguILguYnguLLguKcKK+C4meC5ieC4s+C4i+C4tuC4oQor4LiZ4LmJ4Liz4LiL4Li24Lih4Lia4LmI4Lit4LiX4Lij4Liy4LiiCivguJnguYnguLPguJTguK3guIHguYTguKHguYkKK+C4meC5ieC4s+C4lOC4reC4geC5hOC4oeC5ieC5gOC4l+C4qAor4LiZ4LmJ4Liz4LiU4Lit4LiB4LmE4Lih4LmJ4Liq4LiUCivguJnguYnguLPguJTguLHguJrguYTguJ8KK+C4meC5ieC4s+C4lOC4tOC4mgor4LiZ4LmJ4Liz4LiU4Li1CivguJnguYnguLPguJXguIEKK+C4meC5ieC4s+C4leC5ieC4reC4ogor4LiZ4LmJ4Liz4LiV4Liw4LiB4Li5CivguJnguYnguLPguJXguLDguYLguIEKK+C4meC5ieC4s+C4leC4sOC5hOC4hOC4o+C5iQor4LiZ4LmJ4Liz4LiV4Lix4LiaCivguJnguYnguLPguJXguLIKK+C4meC5ieC4s+C4leC4suC5gOC4iuC5h+C4lOC4q+C4seC4p+C5gOC4guC5iOC4sgor4LiZ4LmJ4Liz4LiV4Liy4LiV4LiB4LmD4LiZCivguJnguYnguLPguJXguLLguYDguJfguLXguKLguJkKK+C4meC5ieC4s+C4leC4suC4ogor4LiZ4LmJ4Liz4LiV4Liy4LilCivguJnguYnguLPguJXguLLguKXguYPguIHguKXguYnguKHguJQg4LmD4LiE4Lij4LiI4Liw4Lit4LiU4LmE4LiU4LmJCivguJnguYnguLPguJXguLLguKXguIjguLXguJkKK+C4meC5ieC4s+C5gOC4leC5ieC4sgor4LiZ4LmJ4Liz4LmD4LiV4LmJ4LiU4Li04LiZCivguJnguYnguLPguJfguKPguIcKK+C4meC5ieC4s+C4l+C5iOC4p+C4oeC4l+C4uOC5iOC4hyDguJzguLHguIHguJrguLjguYnguIfguYLguKvguKPguIfguYDguKvguKPguIcKK+C4meC5ieC4s+C4l+C5iOC4p+C4oeC4m+C4suC4gQor4LiZ4LmJ4Liz4LiX4LmI4LiyCivguJnguLPguJfguLLguIcKK+C4meC5ieC4s+C4l+C4ueC4meC4q+C4seC4pwor4LiZ4Liz4LmA4LiX4Li14LmI4Lii4LinCivguJnguYnguLPguYTguJfguKIKK+C4meC5ieC4s+C4meC4oQor4LiZ4LmJ4Liz4LiZ4Lih4LmB4Lih4LinCivguJnguYnguLPguJnguKHguKPguLLguIrguKrguLXguKvguYwKK+C4meC5ieC4s+C4meC4p+C4pQor4LiZ4LmJ4Liz4LiZ4Lit4LiHCivguJnguYnguLPguJnguK3guJnguITguKXguK3guIcKK+C4meC5ieC4s+C4meC5ieC4reC4ouC5geC4nuC5ieC5hOC4nwor4LiZ4LmJ4Liz4LiZ4Li04LmI4LiH4LmE4Lir4Lil4Lil4Li24LiBCivguJnguYnguLPguJrguYjguK3guJnguYnguK3guKIKK+C4meC5ieC4s+C5guC4muC4ogor4LiZ4LmJ4Liz4Lib4Lij4Liw4Liq4Liy4LiZ4LiX4Lit4LiHCivguJnguYnguLPguJvguKXguLIKK+C4meC5ieC4s+C4m+C5iOC4sgor4LiZ4LmJ4Liz4Lic4Lil4Li24LiBCivguJnguYnguLPguJzguLbguYnguIcKK+C4meC5ieC4s+C4nuC4o+C4sOC4nuC4tOC4nuC4seC4kuC4meC5jOC4quC4seC4leC4ouC4sgor4LiZ4LmJ4Liz4Lie4Lij4Li04LiBCivguJnguYnguLPguJ7guKPguLTguIHguYDguJzguLIKK+C4meC5ieC4s+C4nuC4seC4geC4meC5ieC4s+C5geC4o+C4hwor4LiZ4Liz4Lie4LiyCivguJnguYnguLPguJ7guLbguYjguIfguYDguKPguLfguK3guYDguKrguLfguK3guJ7guLbguYjguIfguJvguYjguLIKK+C4meC5ieC4s+C4nuC4uAor4LiZ4LmJ4Liz4Lih4LiZ4LiV4LmMCivguJnguYnguLPguKHguJnguJXguKPguYwKK+C4meC5ieC4s+C4oeC4seC4mQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiB4LmK4Liy4LiUCivguJnguYnguLPguKHguLHguJnguYDguILguLXguKLguKcKK+C4meC5ieC4s+C4oeC4seC4meC5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiI4Lix4LiZ4LiX4LiZ4LmMCivguJnguYnguLPguKHguLHguJnguYLguIvguKXguLIKK+C4meC5ieC4s+C4oeC4seC4meC4lOC4tOC4mQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiU4Li04LiaCivguJnguYnguLPguKHguLHguJnguJTguLXguYDguIvguKUKK+C4meC5ieC4s+C4oeC4seC4meC4leC4suC4meC4tQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LmA4LiV4LiyCivguJnguYnguLPguKHguLHguJnguYDguJrguJnguIvguLTguJkKK+C4meC5ieC4s+C4oeC4seC4meC4nuC4o+C4suC4ogor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Lih4LiZ4LiV4Lij4LmMCivguJnguYnguLPguKHguLHguJnguKLguLLguIcKK+C4meC5ieC4s+C4oeC4seC4meC4o+C4sOC4geC4swor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Liq4LiZCivguJnguYnguLPguKHguLHguJnguKrguKXguLHguJQKK+C4meC5ieC4s+C4oeC4seC4meC4q+C4oeC5iOC4reC4hwor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Lir4Lil4LmI4Lit4Lil4Li34LmI4LiZCivguJnguYnguLPguKHguLLguJvguKXguLLguIHguLTguJnguKHguJQg4LiZ4LmJ4Liz4Lil4LiU4Lih4LiU4LiB4Li04LiZ4Lib4Lil4LiyCivguJnguYnguLPguKHguLfguK0KK+C4meC5ieC4s+C4oeC4ueC4gQor4LiZ4LmJ4Liz4LmA4Lih4LiyCivguJnguYnguLPguKLguYjguK3guKIKK+C4meC5ieC4s+C4ouC4sgor4LiZ4LmJ4Liz4Lii4Liy4LmA4LiE4Lih4Li1CivguJnguYnguLPguYDguKLguYfguJnguJvguKXguLLguJXguLLguKIKK+C4meC4s+C4o+C5iOC4reC4hwor4LiZ4LmJ4Liz4Lij4LmJ4Lit4LiZ4Lib4Lil4Liy4LmA4Lib4LmH4LiZCivguJnguYnguLPguKPguLHguIEKK+C4meC5ieC4s+C5geC4o+C5iAor4LiZ4LmJ4Liz4Lil4LiHCivguJnguYnguLPguKXguJTguJXguK3guJzguLjguJQKK+C4meC5ieC4s+C4peC4sOC4p+C5ieC4sgor4LiZ4LmJ4Liz4Lil4Liy4LiiCivguJnguYnguLPguKXguLLguKLguKrguK0KK+C4meC5ieC4s+C4peC4suC4ouC4q+C4gQor4LiZ4LmJ4Liz4Lil4Liy4Lii4LmE4Lir4LilCivguJnguYnguLPguYDguKXguLXguYnguKLguIcKK+C4meC5ieC4s+C4p+C4mQor4LiZ4LmJ4Liz4Lin4LmJ4LiyCivguJnguYnguLPguYTguKcKK+C4meC5ieC4s+C4quC5ieC4oQor4LiZ4LmJ4Liz4Liq4LmJ4Lih4Liq4Liy4Lii4LiK4Li5CivguJnguLPguKrguKHguLHguKIKK+C4meC5ieC4s+C4quC4seC4h+C4guC5jAor4LiZ4LmJ4Liz4Liq4Lix4LmI4LiH4Lif4LmJ4LiyIOC4m+C4peC4suC4quC4seC5iOC4h+C4neC4mQor4LiZ4Liz4Liq4Li34LiaCivguJnguYnguLPguKrguLjguIEKK+C4meC5ieC4s+C5gOC4quC4teC4ouC4hwor4LiZ4Liz4LmB4Liq4LiU4LiHCivguJnguYnguLPguKvguJnguKfguIEKK+C4meC5ieC4s+C4q+C4meC4seC4gQor4LiZ4LmJ4Liz4Lir4LiZ4LmJ4LiyCivguJnguYnguLPguKvguJnguLbguYjguIcKK+C4meC5ieC4s+C4q+C4meC4tuC5iOC4h+C5g+C4iOC5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4LiZ4LmJ4Liz4Lir4Lih4Liy4LiBCivguJnguYnguLPguKvguK3guKEKK+C4meC5ieC4s+C5gOC4q+C4peC4t+C4reC4hwor4LiZ4LmJ4Liz4LmA4Lir4Lil4Li34Lit4LiH4LiZ4LmJ4Liz4LiV4Liy4LilCivguJnguYnguLPguYTguKvguKXguYTguJ/guJTguLHguJoKK+C4meC5ieC4s+C4reC4lOC4meC5ieC4s+C4l+C4mQor4LiZ4LmJ4Liz4Lit4LiaCivguJnguYnguLPguK3guJrguJ3guKPguLHguYjguIcKK+C4meC5ieC4s+C4reC5iOC4reC4mQor4LiZ4LmJ4Liz4Lit4LmJ4Lit4LiiCivguJnguYnguLPguK3guLHguJTguKXguKEKK+C4meC5ieC4s+C4reC4suC4muC4h+C4seC4pwor4LiZ4Li0CivguJnguLTguIHguYDguIHguLTguKUKK+C4meC4tOC4geC4guC4sAor4LiZ4Li04LiB4LiC4Lix4LiZ4LiV4LmMCivguJnguLTguIHguKMKK+C4meC4tOC4geC4o+C4reC4ouC4lOC5jAor4LiZ4Li04LiB4Liy4LiiCivguJnguLTguITguKEKK+C4meC4tOC4hOC4oeC4l+C4teC5iOC4lOC4tOC4mQor4LiZ4Li04LiE4Lih4Liq4Lij4LmJ4Liy4LiH4LiV4LiZ4LmA4Lit4LiHCivguJnguLTguITguKHguKrguKvguIHguKPguJPguYwKK+C4meC4tOC4hOC4oeC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oQor4LiZ4Li04LiE4Lij4LiZ4LiW4LmMCivguJnguLTguITguKstCivguJnguLTguITguKvguIHguKPguKPguKEKK+C4meC4tOC4hOC4q+C4sAor4LiZ4Li04LiE4Lir4Li04LiVCivguJnguLTguITguLLguKXguLHguKIKK+C4meC4tOC4hOC4suC4q+C4gQor4LiZ4Li04LiE4Liy4Lir4LiBLQor4LiZ4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguLTguYLguITguJXguLTguJkKK+C4meC4tOC5guC4hOC4o+C4mAor4LiZ4Li04LmC4LiE4Lij4LihCivguJnguLTguIcKK+C4meC4tOC5iOC4hwor4LiZ4Li04LmI4LiH4LmA4LiH4Li14Lii4LiaCivguJnguLTguYjguIfguYDguInguKIKK+C4meC4tOC5iOC4h+C5geC4meC5iAor4LiZ4Li04LiICivguJnguLTguIgtCivguJnguLTguIjguKjguLXguKUKK+C4meC4tOC4lAor4LiZ4Li04LiU4LmA4LiU4Li14Lii4LinCivguJnguLTguJTguKvguJnguYjguK3guKIKK+C4meC4tOC4lOC4q+C4meC4tuC5iOC4hwor4LiZ4Li04LiV4LiiLQor4LiZ4Li04LiV4Lii4LmMCivguJnguLTguJXguKLguJfguLLguJkKK+C4meC4tOC4leC4ouC4oOC4seC4lQor4LiZ4Li04LiV4Lii4Liq4Liy4LijCivguJnguLTguJXguLQKK+C4meC4tOC4leC4tOC4geC4owor4LiZ4Li04LiV4Li04LiB4Lij4LiT4LmMCivguJnguLTguJXguLTguIHguKPguKPguKEKK+C4meC4tOC4leC4tOC4geC4suC4owor4LiZ4Li04LiV4Li04LiB4Liy4Lij4LiT4LmMCivguJnguLTguJXguLTguJjguKPguKPguKEKK+C4meC4tOC4leC4tOC4meC4seC4ogor4LiZ4Li04LiV4Li04Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJnguLTguJXguLTguJrguLjguITguITguKUKK+C4meC4tOC4leC4tOC4oOC4suC4p+C4sAor4LiZ4Li04LiV4Li04Lin4Li04LiX4Lii4Liy4Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLTguJXguLTguYDguKfguIrguKjguLLguKrguJXguKPguYwKK+C4meC4tOC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4LiZ4Li04LiV4Li04Liq4Lih4Lih4LiV4Li0CivguJnguLTguJXguLTguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4meC4tOC4leC4tOC5gOC4q+C4leC4uAor4LiZ4Li04LiX4LijCivguJnguLTguJfguKPguKPguKjguIHguLLguKMKK+C4meC4tOC4l+C4o+C4sgor4LiZ4Li04LiX4Lij4Liy4Lij4Lih4LiT4LmMCivguJnguLTguJfguLHguKjguJnguYwKK+C4meC4tOC4l+C4suC4hgor4LiZ4Li04LiX4Liy4LiZCivguJnguLTguJfguLLguJnguKfguIjguJnguLAKK+C4meC4tOC5gOC4l+C4qAor4LiZ4Li04LmA4LiX4Lio4Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLTguJjguLLguJkKK+C4meC4tOC4mOC4tAor4LiZ4Li04LiZ4LiX4LiyCivguJnguLTguJnguJnguLAKK+C4meC4tOC4meC4meC4suC4lwor4LiZ4Li04LiZ4Lir4Li44LiVCivguJnguLTguJnguLLguJcKK+C4meC4tOC4muC4suC4lQor4LiZ4Li04Lib4Lij4Li04Lii4Liy4LiiCivguJnguLTguJvguLHguIjguIHguLLguKMKK+C4meC4tOC4nuC4iOC4meC5jAor4LiZ4Li04Lie4LiZ4LiY4LmMCivguJnguLTguJ7guJ7guLLguJkKK+C4meC4tOC4nuC4nuC4tOC4l+C4sgor4LiZ4Li04Lie4Lie4Li04LiX4Liy4LiN4Liy4LiTCivguJnguLTguJ7guLHguJfguJgtCivguJnguLTguJ7guLHguJfguJjguYwKK+C4meC4tOC4nuC4seC4l+C4mOC4geC4uOC4qOC4pQor4LiZ4Li04Lie4Lix4LiZ4LiY4LmMCivguJnguLTguJ7guLTguJcKK+C4meC4tOC5gOC4nuC4lwor4LiZ4Li04Lig4LiyCivguJnguLTguYjguKEKK+C4meC4tOC5ieC4oQor4LiZ4Li04Lih4LiZ4LiV4LmMCivguJnguLTguYjguKHguJnguKfguKUKK+C4meC4tOC4oeC4oeC4suC4mQor4LiZ4Li04Lih4Lih4Liy4LiZ4Lij4LiU4Li1CivguJnguLTguKHguLTguJUKK+C4meC4tOC4ouC4lQor4LiZ4Li04Lii4LiVLQor4LiZ4Li04Lii4LihCivguJnguLTguKLguKHguJnguLTguKLguLLguKIKK+C4meC4tOC4ouC4ouC4suC4mQor4LiZ4Li04Lii4Lii4Liy4LiZ4Li04LiBLQor4LiZ4Li04Lii4Lix4LiV4Li04LiZ4Li04Lii4LihCivguJnguLTguKLguLLguKEKK+C4meC4tOC4ouC4suC4ogor4LiZ4Li04Lii4Li44LiVCivguJnguLTguKMKK+C4meC4tOC4o+C4hOC4uOC4kwor4LiZ4Li04Lij4LmC4LiG4LipCivguJnguLTguKPguIrguKMKK+C4meC4tOC4o+C4iuC4o+C4sgor4LiZ4Li04Lij4LiX4Li44LiB4LiC4LmMCivguJnguLTguKPguYDguJfguKgKK+C4meC4tOC4o+C5guC4l+C4qQor4LiZ4Li04Lij4LmC4LiX4Lip4LiB4Lij4Lij4LihCivguJnguLTguKPguJnguLHguKIKK+C4meC4tOC4o+C4meC4suC4oQor4LiZ4Li04Lij4Lie4Lix4LiV4LijCivguJnguLTguKPguKDguLHguKIKK+C4meC4tOC4o+C4oeC4pQor4LiZ4Li04Lij4Lih4Liy4LiTCivguJnguLTguKPguKHguLLguJPguIHguLLguKIKK+C4meC4tOC4o+C4oeC4suC4mQor4LiZ4Li04Lij4Lih4Li04LiVCivguJnguLTguKPguKItCivguJnguLTguKPguKLguJrguLLguKUKK+C4meC4tOC4o+C4seC4leC4tOC4qOC4seC4ogor4LiZ4Li04Lij4Lix4LiZ4LiU4LijCivguJnguLTguKPguLHguJnguJXguKMtCivguJnguLTguKPguLHguJnguJXguKPguLLguKIKK+C4meC4tOC4o+C4seC4nuC4nuC4uOC4lwor4LiZ4Li04Lij4LiyCivguJnguLTguKPguLLguJ7guLLguJgKK+C4meC4tOC4o+C4suC4oeC4seC4ogor4LiZ4Li04Lij4Liy4Lih4Li04LipCivguJnguLTguKPguLLguKXguLHguKIKK+C4meC4tOC4o+C4suC4qAor4LiZ4Li04Lij4Liy4Lio4Lij4LieCivguJnguLTguKPguLLguKjguKPguLHguKIKK+C4meC4tOC4o+C4tOC4meC4mOC4meC5jAor4LiZ4Li04Lij4Li04LiZ4LiY4LiZ4Lie4Li04LiZ4Liy4LioCivguJnguLTguKPguLjguIHguJXguLQKK+C4meC4tOC4o+C4uOC4geC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4LiZ4Li04Lij4Li44LiV4LiV4Li0CivguJnguLTguKPguLjguJXguJXguLTguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4meC4tOC4o+C4uOC4l+C4gQor4LiZ4Li04Lij4Li44LiX4LiY4LmMCivguJnguLTguYLguKPguIoKK+C4meC4tOC5guC4o+C4mAor4LiZ4Li04LmC4Lij4LiYLQor4LiZ4Li04LmC4Lij4LiY4Liq4Lih4Liy4Lia4Lix4LiV4Li0CivguJnguLTguKUKK+C4meC4tOC4pS0KK+C4meC4tOC4peC4muC4seC4leC4owor4LiZ4Li04Lil4Lib4Lix4LiX4Lih4LmMCivguJnguLTguKXguKPguLHguJXguJnguYwKK+C4meC4tOC4peC4uOC4muC4pQor4LiZ4Li04LmC4Lil4LiV4Lia4LilCivguJnguLTguYLguKXguJrguKUKK+C4meC4tOC5iOC4pwor4LiZ4Li04LmJ4LinCivguJnguLTguKfguITguKXguLTguK3guLTguIEKK+C4meC4tOC4p+C5gOC4hOC4peC4teC4ouC4o+C5jAor4LiZ4Li04Lin4LmA4LiE4Lil4Li14Lii4LiqCivguJnguLTguKfguJXguKPguK3guJkKK+C4meC4tOC4p+C4o+C4k+C5jAor4LiZ4Li04LmJ4Lin4LmE4Lir4LiZ4Lij4LmJ4Liy4Lii4LiB4LmH4LiV4Lix4LiU4LiZ4Li04LmJ4Lin4LiZ4Lix4LmJ4LiZCivguJnguLTguKfguLHguJUKK+C4meC4tOC4p+C4seC4leC4meC5jAor4LiZ4Li04Lin4Liy4LiVCivguJnguLTguKfguLLguKoKK+C4meC4tOC5gOC4p+C4qAor4LiZ4Li04LmA4Lin4LioLQor4LiZ4Li04LmA4Lin4Lio4LiZ4LmMCivguJnguLTguYDguKfguKjguKfguLTguJfguKLguLIKK+C4meC4tOC4qOC4sgor4LiZ4Li04Lio4Liy4LiB4LijCivguJnguLTguKjguLLguIHguLLguKUKK+C4meC4tOC4qOC4suC4hOC4oQor4LiZ4Li04Lio4Liy4LiK4LilCivguJnguLTguKjguLLguJfguLQKK+C4meC4tOC4qOC4suC4meC4suC4lgor4LiZ4Li04Lio4Liy4Lia4LiU4Li1CivguJnguLTguKjguLLguKHguJPguLUKK+C4meC4tOC4qOC4suC4o+C4seC4leC4meC5jAor4LiZ4Li04Lip4LiB4Lij4LihCivguJnguLTguKnguLLguJcKK+C4meC4tOC4quC4oC0KK+C4meC4tOC4quC4seC4igor4LiZ4Li04Liq4Lix4LiK4LiK4Liy4LiB4Liy4LijCivguJnguLTguKrguLHguKIKK+C4meC4tOC4quC4seC4ouC5g+C4iOC4hOC4rQor4LiZ4Li04Liq4Liy4LiXCivguJnguLTguKrguLTguJUKK+C4meC4tOC4quC4teC4l+C4mS0KK+C4meC4tOC4quC4teC4l+C4meC4sAor4LiZ4Li04Liq4Li14LiX4LiZ4Liy4LiB4Liy4LijCivguJnguLTguYDguKrguJgKK+C4meC4teC5iAor4LiZ4Li14LmJCivguJnguLXguJXguLQKK+C4meC4teC4leC4tOC4mOC4o+C4o+C4oQor4LiZ4Li14LiV4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLXguYjguJnguLHguJkKK+C4meC4teC5iOC5geC4meC5iOC4sAor4LiZ4Li14LijLQor4LiZ4Li14Lij4LiI4LijCivguJnguLXguKPguIoKK+C4meC4teC4o+C4meC4suC4lwor4LiZ4Li14LmI4LmB4Lir4Lil4LiwCivguJnguLXguK3guK3guJkKK+C4meC4teC5iOC5gOC4reC4hwor4LiZ4Li14LmC4Lit4LiU4Li04LmA4Lih4Li14Lii4LihCivguJnguLbguIEKK+C4meC4tuC4geC4hOC4tOC4lAor4LiZ4Li24LiB4LiU4Li5CivguJnguLbguIHguJbguLbguIcKK+C4meC4tuC4geC5gOC4q+C5h+C4mQor4LiZ4Li24LiB4Lit4Lit4LiBCivguJnguLbguYjguIcKK+C4meC4tuC5iOC4h+C4q+C4oeC5ieC4reC5gOC4geC4peC4t+C4rQor4LiZ4Li4CivguJnguLjguIcKK+C4meC4uOC5iOC4hwor4LiZ4Li44LmI4LiH4LiB4Lij4Liw4LmC4LiI4Lih4Lit4LiBCivguJnguLjguYjguIfguYDguIjguLXguKLguKHguKvguYjguKHguYDguIjguLXguKLguKEKK+C4meC4uOC4h+C4luC4uOC4hwor4LiZ4Li44LiH4LiZ4Lix4LiHCivguJnguLjguYjguIfguKvguYjguKEKK+C4meC4uOC4igor4LiZ4Li44LiUCivguJnguLjguJUKK+C4meC4uOC5iOC4mQor4LiZ4Li44LmI4LihCivguJnguLjguYjguKHguJnguKfguKUKK+C4meC4uOC5iOC4oeC4meC4tOC5iOC4oQor4LiZ4Li44LmI4Lih4LmA4LiZ4Li34LmJ4LitCivguJnguLjguYnguKIKK+C4meC4ueC4mQor4LiZ4Li54LmI4LiZCivguJnguLnguYnguJkKK+C5gOC4meC4geC4guC4sAor4LmA4LiZ4LiB4LiC4Lix4LihCivguYDguJnguYjguIcKK+C5gOC4meC4leC4muC4reC4pQor4LmA4LiZ4LiV4LijCivguYDguJnguJXguLQKK+C5gOC4meC4leC4tOC4muC4seC4k+C4keC4tOC4lQor4LmA4LiZ4LmJ4LiZCivguYDguJnguJrguLTguKfguKXguLIKK+C5gOC4meC4m+C4iOC4ueC4mQor4LmA4LiZ4Lib4LiX4Li54LmA4LiZ4Li14Lii4LihCivguYDguJnguKHguLQKK+C5gOC4meC4oeC4tOC4leC4gS0KK+C5gOC4meC4oeC4tOC4leC4geC4meC4suC4oQor4LmA4LiZ4Lih4Li04LiV4LiB4LiwCivguYDguJnguKIKK+C5gOC4meC4ouC5gOC4l+C4teC4ouC4oQor4LmA4LiZ4Lii4LmD4LiqCivguYDguJnguKPguIHguLHguJPguJDguLUKK+C5gOC4meC4o+C4hOC4uOC4kwor4LmA4LiZ4Lij4LmA4LiX4LioCivguYDguJnguKPguJnguLLguJQKK+C5gOC4meC4o+C4meC4suC4lgor4LmA4LiZ4Lij4Lih4Li04LiVCivguYDguJnguKPguLDguJ7guLnguKrguLUKK+C5gOC4meC4qeC4suC4lwor4LmA4LiZ4LitCivguYDguJnguYnguK0KK+C5gOC4meC4sgor4LmA4LiZ4LmI4LiyCivguYDguJnguYjguLLguYTguJ8KK+C5gOC4meC4suC4py0KK+C5gOC4meC4suC4p+C4meC4tOC4lQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMCivguYDguJnguLTguJkKK+C5gOC4meC4tOC5iOC4mQor4LmA4LiZ4Li04LmI4LiZ4LmGCivguYDguJnguLTguYjguJnguJnguLLguJkKK+C5gOC4meC4tOC4mgor4LmA4LiZ4Li04Lia4LmGCivguYDguJnguLTguJrguJnguLLguJoKK+C5gOC4meC4teC4ouC4hwor4LmA4LiZ4Li14Lii4LiZCivguYDguJnguLXguKLguKEKK+C5gOC4meC4teC4ouC4owor4LmA4LiZ4Li14Lii4Lij4LiX4Li44LiB4LiC4LmMCivguYDguJnguLXguKLguKPguYDguJfguKgKK+C5gOC4meC4teC4ouC4o+C4meC4suC4lwor4LmA4LiZ4Li34LmJ4LitCivguYDguJnguLfguYnguK3guIHguKnguLHguJXguKPguLTguKLguYwKK+C5gOC4meC4t+C5ieC4reC4hOC4p+C4suC4oQor4LmA4LiZ4Li34LmJ4Lit4LiE4Li54LmICivguYDguJnguLfguYnguK3guYDguITguYfguKEKK+C5gOC4meC4t+C4reC4hwor4LmA4LiZ4Li34Lit4LiH4LmGCivguYDguJnguLfguYjguK3guIcKK+C5gOC4meC4t+C5iOC4reC4h+C4iOC4suC4gQor4LmA4LiZ4Li34LmI4Lit4LiH4LiU4LmJ4Lin4LiiCivguYDguJnguLfguYjguK3guIfguYHguJXguYgKK+C5gOC4meC4t+C4reC4h+C4meC4reC4hwor4LmA4LiZ4Li34Lit4LiH4LiZ4Li04LiV4Lii4LmMCivguYDguJnguLfguK3guIfguYHguJnguYjguJkKK+C5gOC4meC4t+C5ieC4reC4h+C4reC4gQor4LmA4LiZ4Li34LmJ4Lit4LiV4Lix4LinCivguYDguJnguLfguYnguK3guJXguLLguKIKK+C5gOC4meC4t+C5ieC4reC5gOC4leC5iOC4suC4ouC4s+C5gOC4leC5iOC4sgor4LmA4LiZ4Li34LmJ4Lit4LiW4LmJ4Lit4Lii4LiB4Lij4Liw4LiX4LiH4LiE4Lin4Liy4LihCivguYDguJnguLfguYnguK3guJfguKPguLLguKIKK+C5gOC4meC4t+C5ieC4reC4l+C4teC5iAor4LmA4LiZ4Li34LmJ4Lit4LmB4LiX4LmJCivguYDguJnguLfguYnguK3guYDguJvguLfguYjguK3guKIKK+C5gOC4meC4t+C5ieC4reC5gOC4nuC4peC4hwor4LmA4LiZ4Li34LmJ4Lit4LmE4Lih4LmJCivguYDguJnguLfguK3guKIKK+C5gOC4meC4t+C4reC4ouC5hgor4LmA4LiZ4Li34LmJ4Lit4LmA4Lii4Li34LmI4LitCivguYDguJnguLfguYnguK3guYDguKLguLfguYjguK3guIHguKXguYnguLLguKHguYDguJnguLfguYnguK0KK+C5gOC4meC4t+C5ieC4reC5gOC4ouC4t+C5iOC4reC4muC4uOC4nOC4tOC4pwor4LmA4LiZ4Li34LmJ4Lit4LmA4Lii4Li34LmI4Lit4Lib4Lij4Liw4Liq4Liy4LiXCivguYDguJnguLfguYnguK3guYDguKLguLfguYjguK3guKLguLbguJTguJXguYjguK0KK+C5gOC4meC4t+C5ieC4reC4o+C5ieC4reC4hwor4LmA4LiZ4Li34LmJ4Lit4Lij4LmJ4Liy4LiiCivguYDguJnguLfguYnguK3guYDguKPguLfguYjguK3guIcKK+C5gOC4meC4t+C5ieC4reC4quC4oeC4seC4mQor4LmA4LiZ4Li34LmJ4Lit4Lir4LiyCivguYDguJnguLfguYnguK3guK3guYjguK3guJkKK+C5geC4meC5iAor4LmB4LiZ4LmI4LiHCivguYHguJnguYjguIfguJnguYnguK3guKIKK+C5geC4meC5iOC5g+C4iAor4LmB4LiZ4LmI4LiK4Lix4LiUCivguYHguJnguYjguYHguJfguYkKK+C5geC4meC5iOC4mQor4LmB4LiZ4LmI4LiZ4LiC4LiZ4Lix4LiUCivguYHguJnguYjguJnguJfguYnguK3guIcKK+C5geC4meC5iOC4meC4meC4seC4meC4leC5jAor4LmB4LiZ4LmI4LiZ4LmB4Lif4LmJ4LiZCivguYHguJnguYjguJnguKvguJnguLIKK+C5geC4meC5iOC4meC4q+C4meC5ieC4suC4reC4gQor4LmB4LiZ4LmI4LiZ4Lit4LiZCivguYHguJnguYjguJnguLTguYjguIcKK+C5geC4meC5iOC5geC4meC5iOC4pwor4LmB4LiZ4LiaCivguYHguJnguJrguYDguJnguLXguKLguJkKK+C5geC4meC4muC5geC4meC5iOC4mQor4LmB4LiZ4LihCivguYHguJnguKcKK+C5geC4meC5iOC4pwor4LmB4LiZ4Lin4LiX4Liy4LiHCivguYHguJnguKfguJfguLXguYjguKvguYnguLIKK+C5geC4meC5iOC4p+C5geC4meC5iAor4LmB4LiZ4Lin4LmC4LiZ4LmJ4LihCivguYHguJnguKfguJvguYjguLIKK+C5geC4meC4p+C4o+C4mgor4LmB4LiZ4Lin4Lij4LmI4Lin4LihCivguYHguJnguKfguYDguKPguLfguK0KK+C5geC4meC4p+C4q+C4meC5ieC4sgor4LmB4LiZ4Lin4Lir4Lil4Lix4LiHCivguYHguJnguLAKK+C5geC4meC5iOC4sAor4LmB4LiZ4Liw4LiZ4Lix4LiUCivguYHguJnguLDguJnguLMKK+C5geC4meC4sOC5geC4meC4pwor4LmB4LiZ4Liw4LmB4Lir4LiZCivguYLguJkKK+C5guC4meC5ieC4lQor4LmC4LiZ4LmJ4LiV4LmA4Lie4Lil4LiHCivguYLguJnguJkKK+C5guC4meC5iOC4mQor4LmC4LiZ4LmJ4LiZCivguYLguJnguYDguJkKK+C5guC4meC5gOC4muC5gOC4peC4teC4ouC4oQor4LmC4LiZ4LmJ4LihCivguYLguJnguYnguKHguJnguYnguLLguKcKK+C5guC4meC4oeC4nuC4o+C4o+C4kwor4LmC4LiZ4Lij4LiyCivguYLguJnguKPguLUKK+C5g+C4mQor4LmD4LiZ4LiB4Lij4LihCivguYPguJnguYTguKrguYkKK+C5g+C4meC4q+C4peC4p+C4hwor4LmE4LiZCivguYTguJnguJXguYzguITguKXguLHguJoKK+C5hOC4meC5guC4leC4o+C5gOC4iOC4mQor4LmE4LiZ4Lil4Lit4LiZCivguYTguJnguYLguK3guYDguJrguLXguKLguKEKK+C4mgor4Lia4LmICivguJrguIEKK+C4muC4geC4nuC4o+C5iOC4reC4hwor4Lia4LiHCivguJrguYjguIcKK+C4muC4h+C4gS0KK+C4muC4h+C4geC5jAor4Lia4LiH4LiB4LiKCivguJrguIfguIHguIrguIHguKMKK+C4muC4h+C4geC4suC4owor4Lia4LmK4LiH4LmA4Lia4LmK4LiHCivguJrguIfguKrguLgtCivguJrguIfguKrguLjguYwKK+C4muC4h+C4quC4uOC4geC4uOC4pQor4Lia4LiH4Liq4Li44LiB4Li54Lil4Li04LiBCivguJrguIfguK3guLHguJrguJrguIfguKPguLIKK+C4muC5iOC4h+C4reC4seC4muC4muC5iOC4h+C4o+C4sgor4Lia4LiPCivguJrguJQKK+C4muC4lOC4guC4ouC4teC5iQor4Lia4LiU4Lia4Lix4LiHCivguJrguJTguYDguK3guLfguYnguK3guIcKK+C4muC4lOC4tOC4meC4l+C4o+C5jAor4Lia4LiU4Li1CivguJrguJTguLXguJjguKPguKPguKEKK+C4muC4lOC4teC4nuC4o+C4lQor4Lia4LiU4Li14Lin4Lij4LiU4LiyCivguJrguJTguLXguKjguKMKK+C4muC4lgor4Lia4LiXCivguJrguJctCivguJrguJfguIHguKXguK3guJkKK+C4muC4l+C4geC4p+C4teC4meC4tOC4nuC4meC4mOC5jAor4Lia4LiX4LiB4Liz4Lir4LiZ4LiU4LmC4LiX4LipCivguJrguJfguITguKfguLLguKEKK+C4muC4l+C4hOC4seC4lOC4ouC5iOC4rQor4Lia4LiX4LiI4LijCivguJrguJfguYDguIjguKPguIjguLIKK+C4muC4l+C5gOC4ieC4nuC4suC4sOC4geC4suC4pQor4Lia4LiX4LiU4Lit4LiB4Liq4Lij4LmJ4Lit4LiiCivguJrguJfguJnguLMKK+C4muC4l+C4muC4h+C4geC4igor4Lia4LiX4Lia4LiH4Liq4Li44LmMCivguJrguJfguJrguKPguKPguJPguLLguJjguLTguIHguLLguKMKK+C4muC4l+C4muC4seC4jeC4jeC4seC4leC4tAor4Lia4LiX4Lia4Liy4LiXCivguJrguJfguJrguLLguJfguKHguLLguIEKK+C4muC4l+C4muC4ueC4o+C4k+C5jAor4Lia4LiX4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMCivguJrguJfguJ7guLLguIHguKLguYwKK+C4muC4l+C5gOC4nuC4peC4hwor4Lia4LiX4Lig4Liy4LiK4LiZ4LmMCivguJrguJfguKDguLLguIrguJnguLXguKLguYwKK+C4muC4l+C4oeC4suC4peC4ouC5jAor4Lia4LiX4Lij4LmJ4Lit4LiHCivguJrguJfguKPguLHguIoKK+C4muC4l+C5gOC4o+C4qAor4Lia4LiX4LmA4Lij4Li14Lii4LiZCivguJrguJfguKfguYDguKPguKgKK+C4muC4l+C4p+C4peC4seC4jeC4iuC5jAor4Lia4LiX4Lin4Liy4LijCivguJrguJfguKjguKPguLUKK+C4muC4l+C4quC4meC4l+C4meC4sgor4Lia4LiX4Liq4Lix4LiH4LiC4Lii4LiyCivguJrguJfguLLguKHguJ7guLjguIoKK+C4muC5guC4l+C4mQor4Lia4LiZCivguJrguYjguJkKK+C4muC4meC4guC5ieC4suC4p+C4nOC4tSDguJXguLXguILguYnguLLguKfguJ7guKPguLAKK+C4muC5iOC4meC4luC4tuC4hwor4Lia4LiZ4Lia4Liy4LiZCivguJrguJnguJrguLLguJnguKjguLLguKXguIHguKXguYjguLLguKcKK+C4muC4nuC4tOC4leC4owor4Lia4Lie4Li04LiV4Lij4Lie4Lij4Liw4Lij4Liy4LiK4Liq4Lih4Lig4Liy4LijCivguJrguJ7guLTguJgKK+C4muC5iOC4oQor4Lia4LmI4Lih4Lic4Li04LinCivguJrguYjguKHguKHguLHguJkKK+C4muC5iOC4oeC4q+C4meC4reC4hwor4Lia4Lih4Li0CivguJrguKMtCivguJrguKPguJfguLLguKMKK+C4muC4o+C4l+C4suC4o+C4geC4o+C4o+C4oQor4Lia4Lij4LihCivguJrguKPguKEtCivguJrguKPguKHguJjguLLguJXguLgKK+C4muC4o+C4oeC4muC4nuC4tOC4leC4owor4Lia4Lij4Lih4Lin4LiH4Lio4Liy4LiZ4Li44Lin4LiH4Lio4LmMCivguJrguKPguKHguK3guLHguJDguLQKK+C4muC4o+C4oeC4seC4leC4luC5jAor4Lia4Lij4Lij4LiB4Lin4LiUCivguJrguKPguKPguIjguIcKK+C4muC4o+C4o+C4iOC4luC4o+C4k+C5jAor4Lia4Lij4Lij4LiI4LiaCivguJrguKPguKPguIjguKfguJoKK+C4muC4o+C4o+C4iOC4uAor4Lia4Lij4Lij4LmA4LiI4Li04LiUCivguJrguKPguKPguJMKK+C4muC4o+C4o+C4ky0KK+C4muC4o+C4o+C4k+C4geC4uOC4juC4tQor4Lia4Lij4Lij4LiT4Lie4Li04Lig4LieCivguJrguKPguKPguJPguYLguKXguIEKK+C4muC4o+C4o+C4k+C4qOC4suC4peC4sgor4Lia4Lij4Lij4LiT4Liq4Liy4LijCivguJrguKPguKPguJPguLLguIHguLLguKMKK+C4muC4o+C4o+C4k+C4suC4hOC4oQor4Lia4Lij4Lij4LiT4Liy4LiY4Li04LiB4LijCivguJrguKPguKPguJPguLLguJjguLTguIHguLLguKMKK+C4muC4o+C4o+C4k+C4suC4meC4uOC4geC4o+C4oQor4Lia4Lij4Lij4LiT4Liy4Lij4Lix4LiB4Lip4LmMCivguJrguKPguKPguJPguLLguKPguLHguIHguKnguKjguLLguKrguJXguKPguYwKK+C4muC4o+C4o+C4lOC4sgor4Lia4Lij4Lij4LiU4Liy4LiBCivguJrguKPguKPguJTguLLguKHguLUKK+C4muC4o+C4o+C4lOC4suC4qOC4seC4geC4lOC4tOC5jAor4Lia4Lij4Lij4LiV4Liy4LiZ4Li24LiBCivguJrguKPguKPguJbguKMKK+C4muC4o+C4o+C4l+C4oQor4Lia4Lij4Lij4LiX4Lix4LiUCivguJrguKPguKPguJfguLHguJTguJDguLLguJkKK+C4muC4o+C4o+C4l+C4seC4mgor4Lia4Lij4Lij4LiX4Liy4LiZCivguJrguKPguKPguJfguLjguIEKK+C4muC4o+C4o+C5gOC4l+C4sgor4Lia4Lij4Lij4LmA4LiX4Li34Lit4LiHCivguJrguKPguKPguJ4KK+C4muC4o+C4o+C4ni0KK+C4muC4o+C4o+C4nuC5jAor4Lia4Lij4Lij4Lie4LiK4LiyCivguJrguKPguKPguJ7guIrguLTguJUKK+C4muC4o+C4o+C4nuC4lQor4Lia4Lij4Lij4Lie4LiVLQor4Lia4Lij4Lij4Lie4LiV4LiB4Li14Lil4LiyCivguJrguKPguKPguJ7guJXguIrguLLguKUKK+C4muC4o+C4o+C4nuC4leC4mOC4suC4leC4uAor4Lia4Lij4Lij4Lie4LiV4Lih4Liy4Lil4LiyCivguJrguKPguKPguJ7guJXguKPguLLguIoKK+C4muC4o+C4o+C4nuC4leC4p+C4suC4quC4tQor4Lia4Lij4Lij4Lie4LiV4Lio4Li04LiC4LijCivguJrguKPguKPguJ7guJrguLjguKPguLjguKkKK+C4muC4o+C4o+C4nuC4oOC4suC4hAor4Lia4Lij4Lij4Lie4LmA4Lig4LiXCivguJrguKPguKPguJ7guKHguLnguKUKK+C4muC4o+C4o+C4nuC4quC4leC4o+C4tQor4Lia4Lij4Lij4Lii4LiHCivguJrguKPguKPguKLguIfguIHguYwKK+C4muC4o+C4o+C4ouC5gOC4p+C4geC4qeC4geC5jAor4Lia4Lij4Lij4Lii4Liy4LiB4Liy4LioCivguJrguKPguKPguKLguLLguKIKK+C4muC4o+C4o+C4peC4seC4ogor4Lia4Lij4Lij4Lil4Lix4Lii4LiB4Lix4Lil4Lib4LmMCivguJrguKPguKPguKXguLHguKLguIjguLHguIHguKMKK+C4muC4o+C4o+C4peC4suC4ogor4Lia4Lij4Lij4Lil4Li4CivguJrguKPguKPguKXguLjguJnguLTguJXguLTguKDguLLguKfguLAKK+C4muC4o+C4o+C5gOC4peC4hwor4Lia4Lij4Lij4LmC4Lil4LihCivguJrguKPguKPguKnguLHguJcKK+C4muC4o+C4o+C4quC4mgor4Lia4Lij4Lij4Liq4LieCivguJrguKPguKPguKrguKEKK+C4muC4o+C4o+C4quC4suC4mQor4Lia4Lij4Lij4Liq4Liy4LijCivguJrguKPguKPguKvguLLguJkKK+C4muC4o+C4o+C4q+C4suC4owor4Lia4Lij4Lit4LiZ4LiL4LmMCivguJrguKPguLHguJQKK+C4muC4o+C4seC5iOC4meC4lOC4tQor4Lia4Lij4Lix4Lio4Lin4LmMCivguJrguKPguLLguIHguKPguKEKK+C4muC4o+C4suC4hwor4Lia4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJrguKPguLLguKXguLUKK+C4muC4o+C4tOC4geC4o+C4oQor4Lia4Lij4Li04LiB4Lij4Lij4LihCivguJrguKPguLTguIHguLHguJsKK+C4muC4o+C4tOC4geC4suC4owor4Lia4Lij4Li04LiC4LiyCivguJrguKPguLTguILguLLguKMKK+C4muC4o+C4tOC4guC4suC4o+C5guC4iOC4pQor4Lia4Lij4Li04LiE4LiT4Lir4LmMCivguJrguKPguLTguITguJPguKvguYzguKrguJnguJjguLQKK+C4muC4o+C4tOC4iOC4suC4hAor4Lia4Lij4Li04LiI4Liy4Lij4LiBCivguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4o+C4tOC5gOC4ieC4lwor4Lia4Lij4Li04LmA4LiJ4LiXLQor4Lia4Lij4Li04LmA4LiJ4LiX4LiB4Liy4LilCivguJrguKPguLTguIrguJkKK+C4muC4o+C4tOC4k+C4suC4ouC4gQor4Lia4Lij4Li04LiT4Liy4Lii4LiB4Lij4Lix4LiV4LiZ4LmMCivguJrguKPguLTguJTguIjguYwKK+C4muC4o+C4tOC4muC4lwor4Lia4Lij4Li04Lia4Lin4Lij4LiT4LmMCivguJrguKPguLTguJrguLLguKUKK+C4muC4o+C4tOC4muC4ueC4o+C4k+C5jAor4Lia4Lij4Li04Lie4LiZ4LiY4LmMCivguJrguKPguLTguJ7guLHguJXguKMKK+C4muC4o+C4tOC4nuC4seC4meC4mOC5jAor4Lia4Lij4Li04Lie4Liy4LiK4LiBCivguJrguKPguLTguJ7guLLguIrguLTguIHguLIKK+C4muC4o+C4tOC4nuC4suC4iuC4tQor4Lia4Lij4Li04Lie4Liy4LijCivguJrguKPguLTguKDguLHguJPguJHguYwKK+C4muC4o+C4tOC4oOC4suC4qQor4Lia4Lij4Li04LmC4Lig4LiECivguJrguKPguLTguYLguKDguITguYDguIjguJTguLXguKLguYwKK+C4muC4o+C4tOC4oeC4suC4qgor4Lia4Lij4Li04Lii4Liy4LiiCivguJrguKPguLTguKPguKEKK+C4muC4o+C4tOC4o+C4seC4geC4qeC5jAor4Lia4Lij4Li04Lij4Liy4LiKCivguJrguKPguLTguKfguKPguKPguJUKK+C4muC4o+C4tOC4p+C4suC4owor4Lia4Lij4Li04Lin4Liy4LiqCivguJrguKPguLTguYDguKfguJMKK+C4muC4o+C4tOC4qeC4geC4suC4owor4Lia4Lij4Li04Lip4Lix4LiXCivguJrguKPguLTguKnguLHguJfguYDguITguKPguJTguLTguJXguJ/guK3guIfguIvguLTguYDguK3guKPguYwKK+C4muC4o+C4tOC4qeC4seC4l+C4iOC4s+C4geC4seC4lAor4Lia4Lij4Li04Lip4Lix4LiX4Lia4Lij4Li04Lin4Liy4LijCivguJrguKPguLTguKnguLHguJfguKHguKvguLLguIrguJnguIjguLPguIHguLHguJQKK+C4muC4o+C4tOC4quC4iuC4mQor4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMCivguJrguKPguLTguKrguLjguJfguJjguLTguYzguYPguIgKK+C4muC4o+C4tOC4q+C4suC4owor4Lia4Lij4Li04Lir4Liy4LiqCivguJrguYHguKPguIcKK+C4muC5geC4o+C4h+C4oOC4seC4geC4qeC5jAor4Lia4Lik4LiH4LiE4LieCivguJrguKXguYfguK3guIEKK+C4muC4p+C4gQor4Lia4Lin4LiHCivguJrguYjguKfguIcKK+C4muC5iOC4p+C4h+C4muC4suC4qAor4Lia4Lin4LiH4Liq4Lij4Lin4LiHCivguJrguKfguIoKK+C4muC4p+C4iuC4iuC4tQor4Lia4Lin4LiZCivguJrguYnguKfguJkKK+C4muC5ieC4p+C4meC4m+C4suC4gQor4Lia4LmJ4Lin4LiZ4Lie4Lij4Liw4LmC4Lit4Lip4LiQ4LmMCivguJrguKfguJoKK+C4muC4p+C4muC4guC4oQor4Lia4Lin4LihCivguJrguKfguKHguJnguYnguLMKK+C4muC5iuC4p+C4ogor4Lia4Lin4LijCivguJrguKfguKMtCivguJrguKfguKPguYLguJXguI7guIEKK+C4muC4q+C4peC4tOC5iOC4oQor4Lia4LitCivguJrguYjguK0KK+C4muC4reC4gQor4Lia4Lit4LiB4LiB4Lil4LmI4Liy4LinCivguJrguK3guIHguYHguILguIEKK+C4muC4reC4geC4hOC4s+C4muC4reC4gQor4Lia4Lit4LiB4Lia4LiXCivguJrguK3guIHguJrguLHguI3guIrguLUKK+C4muC4reC4geC4muC4uOC4jQor4Lia4Lit4LiB4LmD4Lia4LmJCivguJrguK3guIHguJvguLHguJQKK+C4muC4reC4geC5gOC4m+C4tOC4lAor4Lia4Lit4LiB4Lii4Li14LmI4Lir4LmJ4LitCivguJrguK3guIHguYDguKXguYjguLLguYDguIHguYnguLLguKrguLTguJoKK+C4muC4reC4geC4p+C4seC4leC4owor4Lia4Lit4LiB4Lio4Liy4Lil4LiyCivguJrguK3guIHguKvguJnguJfguLLguIcKK+C4muC4reC4geC4q+C4meC4seC4h+C4quC4t+C4reC4quC4seC4h+C4huC4o+C4suC4igor4Lia4LmI4Lit4LmA4LiB4Li04LiUCivguJrguK3guIcKK+C4muC5iOC4reC4hwor4Lia4LmJ4Lit4LiHCivguJrguYrguK3guIcKK+C4muC5iuC4reC4h+C5hgor4Lia4LmJ4Lit4LiH4LiB4Lix4LiN4LiK4LiyCivguJrguYnguK3guIfguJXguLDguKXguLIKK+C4muC5ieC4reC4h+C4leC4seC4mQor4Lia4LmJ4Lit4LiH4LiV4Li34LmJ4LiZCivguJrguYnguK3guIfguYHguJrguYrguKcKK+C4muC5ieC4reC4h+C5hOC4nwor4Lia4LmJ4Lit4LiH4Lii4Liy4LmB4LiU4LiHCivguJrguK3guIfguKvguKXguLIKK+C4muC5ieC4reC4h+C4q+C4uQor4Lia4Lit4LiUCivguJrguK3guJTguKrguLUKK+C4muC4reC4mQor4Lia4LmI4Lit4LiZCivguJrguYjguK3guJnguYHguJXguIEKK+C4muC5iOC4reC4meC4l+C4s+C4peC4suC4ogor4Lia4Lit4LiZ4Lil4Liy4Lii4LiB4Lij4Liw4Lir4LiZ4LiBCivguJrguYjguK3guJnguYnguLPguKPguYnguK3guJkKK+C4muC4reC4mgor4Lia4Lit4Lia4LiK4LmJ4LizCivguJrguK3guJrguJrguLLguIcKK+C4muC4reC4muC5geC4muC4mgor4Lia4LmJ4Lit4LihCivguJrguYvguK3guKEKK+C4muC5iOC4reC4ogor4Lia4LmI4Lit4Lii4LmGCivguJrguK3guKPguLDguYDguJ7guYfguJQKK+C4muC4reC4o+C4sOC4oeC4suC4mQor4Lia4Lit4LilCivguJrguK3guKXguKXguLnguJkKK+C4muC5ieC4reC4q+C4uOC5ieC4mQor4Lia4LmA4LitCivguJrguYrguLAKK+C4muC4sOC4q+C4oeC4teC5iAor4Lia4Lix4LiBCivguJrguLHguIHguYLguIHguKPguIEKK+C4muC4seC4geC4reC4suC4mQor4Lia4Lix4LiE4LmA4LiV4Lij4Li1CivguJrguLHguIcKK+C4muC4seC5ieC4hwor4Lia4Lix4LiH4LiB4Liw4LmC4LilCivguJrguLHguIfguIHguLHguJQKK+C4muC4seC4h+C5gOC4geC4tOC4lAor4Lia4Lix4LiH4LmC4LiB4Lij4Lii4LiV4Lix4Lin4Lic4Li54LmJCivguJrguLHguIfguYLguIHguKPguKLguJXguLHguKfguYDguKHguLXguKIKK+C4muC4seC4h+C5guC4geC4peC4mQor4Lia4Lix4LiH4LiE4LiZCivguJrguLHguIfguITguJnguYDguJrguLIKK+C4muC4seC4h+C4hOC4meC4q+C4meC4seC4gQor4Lia4Lix4LiH4LiE4LihCivguJrguLHguIfguITguKUKK+C4muC4seC4h+C4hOC4p+C4owor4Lia4Lix4LiH4LiE4Lin4Liy4LihCivguJrguLHguIfguITguLHguJoKK+C4muC4seC4h+C4hOC4seC4muC4geC4suC4owor4Lia4Lix4LiH4LiE4Lix4Lia4LiE4Lij4Li4CivguJrguLHguIfguITguLHguJrguYPguIgKK+C4muC4seC4h+C4hOC4seC4muC5guC4lwor4Lia4Lix4LiH4LiE4Lix4Lia4Lia4Lix4LiN4LiK4LiyCivguJrguLHguIfguITguLHguJrguKXguKvguLgKK+C4muC4seC4h+C4hOC4seC4muC4quC4seC4oeC4nOC4seC4qgor4Lia4Lix4LiH4LiE4Lix4Lia4LmA4Lit4LiBCivguJrguLHguIfguITguLHguKUKK+C4muC4seC4h+C5guC4hOC4peC4mQor4Lia4Lix4LiH4LmA4LiH4LiyCivguJrguLHguIfguJXguLDguKfguLHguJkKK+C4muC4seC4h+C4leC4sgor4Lia4Lix4LiH4LmB4LiX4Lij4LiBCivguJrguLHguIfguYPguJoKK+C4muC4seC4h+C5gOC4nuC4peC4tOC4hwor4Lia4Lix4LiH4LmE4Lie4LijCivguJrguLHguIfguJ/guLHguJkKK+C4muC4seC5ieC4h+C5hOC4nwor4Lia4Lix4LiH4Lih4Li34LiUCivguJrguLHguIfguKfguLLguKIKK+C4muC4seC4h+C5gOC4p+C4teC4ouC4mQor4Lia4Lix4LiH4Liq4Liy4LiUCivguJrguLHguIfguKrguLjguIHguLjguKUKK+C4muC4seC4h+C4quC4uOC4geC4ueC4peC4tOC4gQor4Lia4Lix4LiH4Liq4Li54Lij4Lii4LmMCivguJrguLHguIfguKvguJnguYnguLIKK+C4muC4seC4h+C4q+C4p+C4meC4hOC4p+C4seC4mQor4Lia4Lix4LiH4LmA4Lir4LiV4Li4CivguJrguLHguIfguYDguKvguLTguJkKK+C4muC4seC4h+C5gOC4q+C4teC4ouC4mQor4Lia4Lix4LiH4Lit4LijCivguJrguLHguIfguK3guKfguIgKK+C4muC4seC4h+C4reC4suC4iAor4Lia4Lix4LiH4Lit4Li04LiHCivguJrguLHguIfguK3guLnguKMKK+C4muC4seC4h+C5gOC4reC4tOC4jQor4Lia4Lix4LiN4LiI4LiBCivguJrguLHguI3guIjguKPguIfguITguYwKK+C4muC4seC4jeC4iuC4owor4Lia4Lix4LiN4LiK4LiyCivguJrguLHguI3guIrguLLguIHguLLguKMKK+C4muC4seC4jeC4iuC4tQor4Lia4Lix4LiN4LiK4Li14LiB4Lij4Liw4LmB4Liq4Lij4Liy4Lii4Lin4Lix4LiZCivguJrguLHguI3guIrguLXguYDguJTguLTguJnguKrguLDguJ7guLHguJQKK+C4muC4seC4jeC4jeC4seC4leC4tAor4Lia4Lix4LiN4LiN4Lix4LiV4Li04LmE4LiV4Lij4Lii4Liy4LiH4Lio4LmMCivguJrguLHguI3guKvguLIKK+C4muC4seC4jwor4Lia4Lix4LiQ4Lii4Liy4Lie4Lik4LiVCivguJrguLHguJPguJHguKMKK+C4muC4seC4k+C4keC4oy0KK+C4muC4seC4k+C4keC4o+C4meC4suC4hAor4Lia4Lix4LiT4LiR4Li04LiVCivguJrguLHguJPguJHguLTguJXguKLguYwKK+C4muC4seC4k+C4keC4uAor4Lia4Lix4LiT4LiR4Li44LiB4Lix4Lih4Lie4LilCivguJrguLHguJPguJHguLjguIHguLHguKHguJ7guKXguKjguLTguKXguLLguK3guLLguKrguJnguYwKK+C4muC4seC4k+C4keC4uOC4meC4suC4hAor4Lia4Lix4LiT4LiR4Li44LmC4Lij4LiECivguJrguLHguJPguJHguLnguKMKK+C4muC4seC4k+C5gOC4keC4suC4sOC4geC5jAor4Lia4Lix4LiT4LmA4LiR4Liy4Liw4Lin4LmMCivguJrguLHguJPguJPguLLguKoKK+C4muC4seC4k+C4o+C4qgor4Lia4Lix4LiT4Lij4Liq4Li1CivguJrguLHguJQKK+C4muC4seC4lOC4geC4o+C4tQor4Lia4Lix4LiU4LiL4LiaCivguJrguLHguJTguJTguKUKK+C4muC4seC4lOC5gOC4lOC4teC5i+C4ouC4pwor4Lia4Lix4LiU4LiZ4Lix4LmJ4LiZCivguJrguLHguJTguJnguLXguYkKK+C4muC4seC4lOC4muC4hwor4Lia4Lix4LiU4LmB4Lia4LmI4LiHCivguJrguLHguJTguYHguKHguKXguYjguIcKK+C4muC4seC4lOC4quC4tQor4Lia4Lix4LiU4Liq4Li14Lia4Lix4LiU4LmA4LiW4Lil4Li04LiHCivguJrguLHguJXguKMKK+C4muC4seC4leC4o+C5gOC4l+C4p+C4lOC4sgor4Lia4Lix4LiV4Lij4LiY4LiZ4Liy4LiE4Liy4LijCivguJrguLHguJXguKPguJ7guKXguLUKK+C4muC4seC4leC4o+C4quC4meC5gOC4l+C5iOC4q+C5jAor4Lia4Lix4LiV4Lij4Lir4Lih4Liy4LiiCivguJrguLHguJfguKHguYwKK+C4muC4seC4mQor4Lia4Lix4LmI4LiZCivguJrguLHguYnguJkKK+C4muC4seC4meC4geC4p+C4lAor4Lia4Lix4LiZ4LiI4Lin4LiaCivguJrguLHguJnguIjguK3guKIKK+C4muC4seC4meC4lOC4pQor4Lia4Lix4LiZ4LiU4Liy4LilCivguJrguLHguJnguYDguJTguLTguJkKK+C4muC4seC4meC5guC4lOC4ogor4Lia4Lix4LiZ4LmE4LiUCivguJrguLHguJnguYTguJTguYHguIHguYnguKcKK+C4muC4seC4meC5hOC4lOC4peC4tOC4hwor4Lia4Lix4LiZ4LmE4LiU4LmA4Lil4Li34LmI4Lit4LiZCivguJrguLHguJnguYHguJbguKXguIcKK+C4muC4seC5iOC4meC4l+C4reC4mQor4Lia4Lix4LmJ4LiZ4LiX4LmJ4Liy4LiiCivguJrguLHguJnguJfguLbguIEKK+C4muC4seC4meC4l+C4tuC4hwor4Lia4Lix4LiZ4LmA4LiX4Li04LiHCivguJrguLHguJnguYDguJfguLTguIfguITguJTguLUKK+C4muC4seC4meC5gOC4muC4sgor4Lia4Lix4LmJ4LiZ4Lib4Lil4Liy4LiiCivguJrguLHguYnguJnguJ7guKPguLDguK3guIfguITguYwKK+C4muC4seC4meC4ouC4sOC4muC4seC4meC4ouC4seC4hwor4Lia4Lix4LiZ4Lil4Li34LitCivguJrguLHguYnguJnguKvguKXguKfguIcKK+C4muC4seC4meC5gOC4q+C4tOC4mQor4Lia4Lix4LmJ4LiZ4LmA4Lit4LinCivguJrguLHguJvguJzguLLguKrguLAKK+C4muC4seC4ngor4Lia4Lix4Lie4LiK4LiyCivguJrguLHguJ7guIrguLTguJUKK+C4muC4seC4nuC4nuC4suC4igor4Lia4Lix4Lie4Lie4Liy4LiK4LiZ4LmMCivguJrguLHguJ7guJ7guLLguIrguJnguLXguKLguIHguKPguKPguKEKK+C4muC4seC4pQor4Lia4Lix4Lil4Lil4LieCivguJrguLHguKXguKXguLHguIfguIHguYwKK+C4muC4seC4peC4peC4ueC4mQor4Lia4Lix4Lil4Lin4LiwCivguJrguLHguKcKK+C4muC4seC4p+C4geC4peC4uOC5iOC4oQor4Lia4Lix4Lin4LiC4Liy4LiaCivguJrguLHguKfguITguK3guYDguKrguLfguYnguK0KK+C4muC4seC4p+C4leC4sOC4geC4seC5iOC4pwor4Lia4Lix4Lin4LiV4Li54LihCivguJrguLHguKfguJbguKXguLIKK+C4muC4seC4p+C4meC4suC4hwor4Lia4Lix4Lin4Lia4LiBCivguJrguLHguKfguJrguLHguIfguYPguJoKK+C4muC4seC4p+C4muC4suC4lwor4Lia4Lix4Lin4Lic4Li44LiUCivguJrguLHguKfguYTguKHguYjguIrguYnguLMg4LiZ4LmJ4Liz4LmE4Lih4LmI4LiC4Li44LmI4LiZCivguJrguLHguKfguYLguKPguKIKK+C4muC4seC4p+C4peC4reC4ogor4Lia4Lix4Lin4Liq4Lin4Lij4Lij4LiE4LmMCivguJrguLHguKfguKrguLLguKLguJXguLTguYjguIcKK+C4muC4seC4p+C4quC4suC4ouC4l+C4tOC5ieC4hwor4Lia4Lix4Lin4Liu4Liy4LiU4LizCivguJrguLIKK+C4muC5iOC4sgor4Lia4LmJ4LiyCivguJrguYnguLLguYYKK+C4muC4suC4gQor4Lia4Liy4LiB4LiX4LmI4LiyCivguJrguLLguIHguJrguLHguYjguJkKK+C4muC4suC4geC4q+C4meC5ieC4sgor4Lia4Liy4LiHCivguJrguYjguLLguIcKK+C4muC5ieC4suC4hwor4Lia4Liy4LiH4LiC4Li44LiZ4LiZ4LiZ4LiX4LmMCivguJrguYjguLLguIfguIrguYjguLLguIfguKLguLgKK+C4muC4suC4h+C4leC4sgor4Lia4Liy4LiH4LiX4Li1CivguJrguLLguIfguYDguJrguLIKK+C4muC4suC4h+C4quC4uAor4Lia4Liy4LiI4LiBCivguJrguLLguIjguKPguLXguKLguYwKK+C4muC4suC4iOC4tOC4geC4sgor4Lia4LmJ4Liy4LiI4Li14LmJCivguJrguLLguIvguLTguKXguKXguLHguKoKK+C4muC4suC4lAor4Lia4Liy4LiU4LiE4LitCivguJrguLLguJTguYDguIjguYfguJoKK+C4muC4suC4lOC5g+C4iAor4Lia4Liy4LiU4LiV4LiyCivguJrguLLguJTguJfguLDguIjguLTguJUKK+C4muC4suC4lOC4l+C4sOC4nuC4tOC4qQor4Lia4Liy4LiU4LiX4Liw4Lii4Lix4LiBCivguJrguLLguJTguYHguJzguKUKK+C4muC4suC4lOC5gOC4quC4teC5ieC4ouC4meC4muC4suC4lOC4q+C4meC4suC4oQor4Lia4Liy4LiU4Lir4Lih4Liy4LiHCivguJrguLLguJTguKvguKHguLLguKIKK+C4muC4suC4lOC4q+C4uQor4Lia4Liy4LiU4LmE4Lir4LihCivguJrguLLguJTguLLguKUKK+C4muC5ieC4suC4lOC4teC5gOC4lOC4t+C4reC4lAor4Lia4Liy4LmB4LiU4LiHCivguJrguLLguJUKK+C4muC4suC4leC4owor4Lia4Liy4LiV4Lij4LmB4LiB4LmJ4LinCivguJrguLLguJXguKPguYPguKvguI3guYgKK+C4muC4suC4lwor4Lia4Liy4LiXLQor4Lia4Liy4LiX4LiZ4Li04LmA4LiB4LiVCivguJrguLLguJfguJoKK+C4muC4suC4l+C4muC4h+C4geC4igor4Lia4Liy4LiX4Lia4LiH4Liq4Li44LmMCivguJrguLLguJfguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4suC4l+C4muC4ueC4o+C4k+C5jAor4Lia4Liy4LiX4Lig4Lix4LiPCivguJrguLLguJfguKDguLLguIQKK+C4muC4suC4l+C4oeC4uOC4l+C4o+C4sgor4Lia4Liy4LiX4Lih4Li54LilCivguJrguLLguJfguKHguLnguKXguLTguIHguLLguIHguKMKK+C4muC4suC4l+C4ouC4uOC4hOC4pQor4Lia4Liy4LiX4Lij4LiKCivguJrguLLguJfguKPguLHguIoKK+C4muC4suC4l+C4quC4geC4uOC4k+C4tQor4Lia4Liy4LiX4Lir4Lil4Lin4LiHCivguJrguLLguJfguLLguJjguLbguIEKK+C4muC4suC4l+C4uOC4geC4sgor4Lia4Liy4LiY4Lij4Lij4LihCivguJrguLLguJkKK+C4muC4suC4mS0KK+C4muC5ieC4suC4mQor4Lia4Liy4LiZ4LiB4LiaCivguJrguLLguJnguYDguIHguKXguYfguJQKK+C4muC5ieC4suC4meC5gOC4geC4tOC4lOC5gOC4oeC4t+C4reC4h+C4meC4reC4mQor4Lia4LmJ4Liy4LiZ4LmA4LiE4Lii4Lit4Lii4Li54LmIIOC4reC4ueC5iOC5gOC4hOC4ouC4meC4reC4mQor4Lia4LmJ4Liy4LiZ4LiI4Lix4LiU4Liq4Lij4LijCivguJrguYnguLLguJnguIrguYjguK3guIcKK+C4muC4suC4meC4iuC4t+C5iOC4mQor4Lia4Liy4LiZ4LmA4LiK4LmJ4LiyCivguJrguLLguJnguJXguLDguYDguIHguLXguKLguIcKK+C4muC4suC4meC4leC4sOC5guC4geC5iQor4Lia4Liy4LiZ4LiV4Liw4LmE4LiXCivguJrguYnguLLguJnguYHguJXguIHguKrguLLguYHguKvguKPguIHguILguLLguJQKK+C4muC4suC4meC4l+C4sOC5guC4o+C4hAor4Lia4LmJ4Liy4LiZ4LiZ4Lit4LiBCivguJrguYnguLLguJnguJnguK3guIHguILguK3guIHguJnguLIKK+C4muC4suC4meC4muC4suC4leC4owor4Lia4Liy4LiZ4Lia4Li44Lij4Li1CivguJrguLLguJnguJrguLjguKPguLXguKHguYjguKfguIcKK+C4muC4suC4meC5gOC4muC4reC4sAor4Lia4Liy4LiZ4LmA4Lia4Li04LiBCivguJrguLLguJnguYDguJrguLXguKLguIcKK+C4muC4suC4meC5geC4muC4sAor4Lia4Liy4LiZ4Lib4Lil4Liy4LiiCivguJrguLLguJnguYHguJzguJnguIEKK+C4muC4suC4meC5geC4nOC4peC4sAor4Lia4LmJ4Liy4LiZ4Lie4Lix4LiBCivguJrguLLguJnguJ7guLHguJoKK+C4muC4suC4meC5geC4nuC4meC4gQor4Lia4Liy4LiZ4LmC4Lig4LiK4LiZ4LmMCivguJrguLLguJnguKHguIfguITguKUKK+C4muC5ieC4suC4meC5gOC4oeC4t+C4reC4hwor4Lia4LmJ4Liy4LiZ4LmA4Lih4Li34Lit4LiH4Lih4Li14LiC4Li34LmI4Lit4Lih4Li14LmB4LibCivguJrguLLguJnguYTguKHguYjguKPguLnguYnguYLguKPguKIKK+C4muC4suC4meC5gOC4ouC5h+C4mQor4Lia4LmJ4Liy4LiZ4Lij4Lix4Lia4Lij4Lit4LiHCivguJrguYnguLLguJnguYDguKPguLfguK3guJkKK+C4muC5ieC4suC4meC5ieC4s+C4peC4suC4ogor4Lia4LmI4Liy4LiZ4Li14LmICivguJrguLLguJnguLXguKLguLAKK+C4muC4suC4meC4teC5guC4ouC4l+C4gQor4Lia4LmJ4Liy4Lia4LmI4LiZCivguJrguYnguLLguJrguYvguLIKK+C4muC5ieC4suC4muC4tOC5iOC4mQor4Lia4Liy4Lia4Li1CivguJrguLLguJsKK+C4muC4suC4my0KK+C4muC4suC4m+C4geC4o+C4o+C4oQor4Lia4Liy4Lib4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJrguLLguJvguKHguLTguJXguKMKK+C4muC4suC4m+C4q+C4meC4sgor4Lia4Liy4Lie4LiBCivguJrguLLguKIKK+C4muC5iOC4suC4ogor4Lia4LmJ4Liy4LiiCivguJrguYjguLLguKLguITguKfguLLguKIKK+C4muC5iOC4suC4ouC5gOC4muC4teC5iOC4ouC4hwor4Lia4Liy4Lii4Lio4Lij4Li1CivguJrguLLguKLguKjguKPguLXguJvguLLguIHguIrguLLguKEKK+C4muC4suC4ouC4quC4uOC4q+C4o+C4tQor4Lia4LmI4Liy4Lii4Lir4LiZ4LmJ4LiyCivguJrguLLguKPguYwKK+C4muC4suC4o+C4meC4tQor4Lia4Liy4Lij4Lih4Li1CivguJrguLLguKPguYzguYDguKPguKUKK+C4muC4suC4o+C5jOC5gOC4peC4ouC5jAor4Lia4Liy4Lij4Lit4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguJrguYnguLLguKPguLDguJrguLjguYjguJkKK+C4muC5ieC4suC4o+C4sOC4q+C5iOC4swor4Lia4LmJ4Liy4Lij4LmI4Liy4LiX4LmI4LiyCivguJrguLLguYDguKPguLXguKLguJkKK+C4muC4suC5gOC4o+C4teC4ouC4oQor4Lia4Liy4LilCivguJrguYnguLLguKXguLPguYLguJ7guIcKK+C4muC4suC4peC4tQor4Lia4LmJ4Liy4LmA4Lil4Li34Lit4LiUCivguJrguYjguLLguKcKK+C4muC5iOC4suC4p+C4guC4uOC4mQor4Lia4LmI4Liy4Lin4LmE4Lie4Lij4LmICivguJrguLLguKgKK+C4muC4suC4qOC4geC5jAor4Lia4Liy4Liq4LmA4LiB4LiV4Lia4Lit4LilCivguJrguYnguLLguKrguKHguJrguLHguJXguLQKK+C4muC5ieC4suC4q+C4oeC4uQor4Lia4Liy4Lir4Lil4Li1CivguJrguYnguLLguKvguKfguYjguLIKK+C4muC5ieC4suC4q+C4reC4muC4n+C4suC4hwor4Lia4LmJ4Liy4Lir4LmJ4Liy4Lij4LmJ4Lit4Lii4LiI4Liz4Lie4Lin4LiBCivguJrguYvguLMKK+C4muC4s+C5gOC4l+C4tOC4hwor4Lia4Liz4LiZ4Liy4LiNCivguJrguLPguJrguKfguIcKK+C4muC4s+C4muC4seC4lAor4Lia4Liz4LmC4LiaCivguJrguLPguYLguJrguKIKK+C4muC4s+C5guC4muC4pQor4Lia4Liz4LmA4Lie4LmH4LiNCivguJrguLPguKPguLLguJoKK+C4muC4s+C4o+C4suC4qAor4Lia4Liz4Lij4Li44LiHCivguJrguLPguKPguLjguIfguILguKfguLHguI0KK+C4muC4s+C4o+C4uQor4Lia4Liz4LmA4Lij4LitCivguJrguLPguYDguKPguK3guYDguIrguK3guKDguLHguIHguJTguLTguYwKK+C4muC4s+C4q+C4ouC4seC4lAor4Lia4Liz4LmA4Lir4LiZ4LmH4LiICivguJrguLQKK+C4muC4tOC4geC4uQor4Lia4Li04LiB4Li54Lib4Liw4Lij4Liw4Lih4Liy4Lir4LiZ4LiyCivguJrguLTguIHguLnguJvguLDguKPguLDguKvguKHguLHguYjguJnguKvguJnguLIKK+C4muC4tOC4kAor4Lia4Li04LiT4LiRLQor4Lia4Li04LiT4LiR4Lia4Liy4LiVCivguJrguLTguJQKK+C4muC4tOC4lOC4guC4p+C4sgor4Lia4Li04LiU4LiC4Li14LmJ4LmA4LiB4Li14Lii4LiICivguJrguLTguJTguIjguLDguIHguLnguJQKK+C4muC4tOC4lOC4i+C5ieC4suC4ogor4Lia4Li04LiU4LiV4Liw4LiB4Li54LiUCivguJrguLTguJTguYDguJrguLXguYnguKLguKcKK+C4muC4tOC4lOC5gOC4muC4t+C4reC4mQor4Lia4Li04LiU4Lie4Lil4Li04LmJ4LinCivguJrguLTguJTguKMKK+C4muC4tOC4lOC5hOC4quC5iQor4Lia4Li04LiU4Lir4Lil4LmI4LiyCivguJrguLTguJTguKvguLHguKfguKXguLnguIEKK+C4muC4tOC4lOC4sgor4Lia4Li04LiV4Li4CivguJrguLTguJXguLjguIjguInguLIKK+C4muC4tOC4leC4uOC4o+C4h+C4hOC5jAor4Lia4Li04LiV4Li44LmA4Lij4LioCivguJrguLTguJXguLjguKUKK+C4muC4tOC4leC4uOC4peC4sgor4Lia4Li04LiV4Li44Lil4Liy4LiZ4Li1CivguJrguLTguJkKK+C4muC4tOC5iOC4mQor4Lia4Li04LiZ4Lii4LiyCivguJrguLTguKXguYDguKXguLXguKLguJQKK+C4muC4tOC4p+C5gOC4o+C4leC4leC5jAor4Lia4Li04Lio4Liy4LiICivguJrguLTguKrguKHguLHguJcKK+C4muC4teC5iQor4Lia4Li14LiB4Li5CivguJrguLXguJHguLIKK+C4muC4teC4leC4sgor4Lia4Li14LiaCivguJrguLXguJrguILguJnguKHguIjguLXguJkKK+C4muC4teC4muC4guC4oeC4seC4mgor4Lia4Li14Lia4LiE4Lix4LmJ4LiZCivguJrguLXguJrguJnguYnguLPguJXguLIKK+C4muC4teC4muC4muC4seC4h+C4hOC4seC4mgor4Lia4Li14Lia4Lij4Lix4LiUCivguJrguLXguYnguYHguJrguJkKK+C4muC4teC5gOC4ouC4qAor4Lia4Li24LiBCivguJrguLbguIHguJrguLbguJkKK+C4muC4tuC4hwor4Lia4Li24LmI4LiHCivguJrguLbguYnguIcKK+C4muC4tuC5ieC4h+C4leC4tuC4hwor4Lia4Li24LiH4Lia4Liy4LiHCivguJrguLbguYnguIfguJrguLnguJQKK+C4muC4uAor4Lia4Li44LiBCivguJrguLjguIHguJrguLHguJkKK+C4muC4uOC4geC4muC4seC5iOC4mQor4Lia4Li44LiB4LmA4Lia4Li04LiBCivguJrguLjguIHguJvguYjguLLguJ3guYjguLLguJTguIcKK+C4muC4uOC4geC4o+C4uOC4gQor4Lia4Li44LiE4LiE4LilCivguJrguLjguITguITguKUtCivguJrguLjguITguITguKXguJjguKPguKPguKHguJTguLIKK+C4muC4uOC4hOC4hOC4peC4meC4tOC4leC4tOC4quC4oeC4oeC4leC4tAor4Lia4Li44LiE4LiE4Lil4Lic4Li54LmJ4LmE4Lij4LmJ4LiE4Lin4Liy4Lih4Liq4Liy4Lih4Liy4Lij4LiWCivguJrguLjguITguITguKXguKrguLTguJfguJjguLQKK+C4muC4uOC4hOC4peC4suC4geC4owor4Lia4Li44LiE4Lil4Liy4LiY4Li04Lip4LiQ4Liy4LiZCivguJrguLjguITguKXguLTguIEKK+C4muC4uOC4hOC4peC4tOC4gS0KK+C4muC4uOC4hOC4peC4tOC4geC4l+C4suC4mQor4Lia4Li44LiE4Lil4Li04LiB4Lig4Liy4LieCivguJrguLjguITguKXguLTguIHguKXguLHguIHguKnguJPguLAKK+C4muC4uOC4hwor4Lia4Li44LmI4LiHCivguJrguLjguYnguIcKK+C4muC4uOC5ieC4h+C4guC4seC4mQor4Lia4Li44LmJ4LiH4LiI4Li14LiZCivguJrguLjguYnguIfguJfguLDguYDguKUKK+C4muC4uOC5ieC4h+C4neC4o+C4seC5iOC4hwor4Lia4Li44LmJ4LiH4Lij4LmJ4Lin4LihCivguJrguLjguI0KK+C4muC4uOC4jS0KK+C4muC4uOC4jeC5gOC4guC4lQor4Lia4Li44LiN4LiN4Liy4LiZ4Li44Lig4Liy4LieCivguJrguLjguI3guI3guLLguKDguLTguJnguLTguKvguLLguKMKK+C4muC4uOC4jeC4jeC4suC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lia4Li44LiN4LiX4Liy4LiiCivguJrguLjguI3guJfguLPguIHguKPguKPguKHguYHguJXguYjguIcKK+C4muC4uOC4jeC4mOC4o+C4o+C4oQor4Lia4Li44LiN4LiZ4Li04LiY4Li0CivguJrguLjguI3guKHguLLguKfguLLguKrguJnguLLguKrguYjguIcKK+C4muC4uOC4jeC4o+C4suC4qOC4tQor4Lia4Li44LiN4Lik4LiX4LiY4Li04LmMCivguJrguLjguI3guKvguJnguLHguIHguKjguLHguIHguJTguLTguYzguYPguKvguI3guYgKK+C4muC4uOC4k+C4keC4o+C4tOC4gQor4Lia4Li44LiT4Lih4Li1CivguJrguLjguJPguKLguYwKK+C4muC4uOC4leC4owor4Lia4Li44LiV4LijLQor4Lia4Li44LiV4Lij4LiY4Lij4Lij4LihCivguJrguLjguJXguKPguJrguLjguI3guJjguKPguKPguKEKK+C4muC4uOC4leC4o+C4sgor4Lia4Li44LiV4Lij4Li1CivguJrguLjguJXguKPguLXguJXguKPguLDguKrguLjguKEKK+C4muC4uOC4luC4uOC4iuC4mQor4Lia4Li44LiX4LiE4LilCivguJrguLjguJnguJnguLDguJrguLjguJnguJnguLHguIcKK+C4muC4uOC4meC4meC4suC4hAor4Lia4Li44LiaCivguJrguLjguJrguJrguLTguJoKK+C4muC4uOC4muC4quC4peC4suC4ogor4Lia4Li44Lib4LicLQor4Lia4Li44Lib4Lic4LiK4Liy4LiV4Li0CivguJrguLjguJvguJzguKfguLTguIHguLHguJXguLQKK+C4muC4uOC4ni0KK+C4muC4uOC4nuC4geC4o+C4o+C4oQor4Lia4Li44Lie4LiB4Liy4Lij4Li1CivguJrguLjguJ7guIHguLTguIgKK+C4muC4uOC4nuC4iuC4suC4leC4tAor4Lia4Li44Lie4LiX4Lix4LiB4Lip4Li04LiTCivguJrguLjguJ7guJnguLTguKHguLTguJUKK+C4muC4uOC4nuC4muC4lwor4Lia4Li44Lie4LmA4Lib4LiV4Lie4Lil4Li1CivguJrguLjguJ7guJ4tCivguJrguLjguJ7guJ7guLHguJPguIrguLLguJXguLQKK+C4muC4uOC4nuC4nuC4seC4k+C4q+C4quC4oeC4seC4ogor4Lia4Li44Lie4Lie4Liy4LiI4Liy4Lij4Lii4LmMCivguJrguLjguJ7guJ7guLLguKnguLLguJIKK+C4muC4uOC4nuC4nuC4suC4quC4suC4rOC4q+C4sAor4Lia4Li44Lie4LmA4Lie4LiZ4Li04Lin4Liy4Liq4Liy4LiZ4Li44Liq4LiV4Li04LiN4Liy4LiTCivguJrguLjguJ7guYDguJ7guKrguLHguJnguJnguLTguKfguLLguKoKK+C4muC4uOC4nuC5guC4ngor4Lia4Li44Lie4Lig4Liy4LiECivguJrguLjguJ7guKfguLTguYDguJfguKvguYwKK+C4muC4uOC5i+C4oQor4Lia4Li44LmI4Lih4Lia4LmI4Liy4LihCivguJrguLjguYnguKIKK+C4muC4uOC5ieC4ouC5g+C4muC5iQor4Lia4Li44LmJ4Lii4Lib4Liy4LiBCivguJrguLjguKPguJPguLAKK+C4muC4uOC4o+C4ni0KK+C4muC4uOC4o+C4nuC4l+C4tOC4qAor4Lia4Li44Lij4Lie4Lia4LiXCivguJrguLjguKPguJ7guJzguKXguITguLjguJnguLUKK+C4muC4uOC4o+C4nuC4oOC4seC4l+C4o+C4muC4lwor4Lia4Li44Lij4Lie4Lit4Liy4Lip4Liy4LiSCivguJrguLjguKPguJ7guLLguIjguLLguKPguKLguYwKK+C4muC4uOC4o+C4sAor4Lia4Li44Lij4Lix4LiV4LiW4Li04Lih4LiX4Li04LioCivguJrguLjguKPguLLguJMKK+C4muC4uOC4o+C4suC4k+C4l+C4uOC4leC4tOC4ouC4tOC4geC4sgor4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmMCivguJrguLjguKPguLTguKHguJfguLTguKgKK+C4muC4uOC4o+C4tOC4oeC4nuC4o+C4o+C4qeC4sgor4Lia4Li44Lij4Li04Lih4Liq4Li04LiX4LiY4Li0CivguJrguLjguKPguLUKK+C4muC4uOC4o+C4uOC4qQor4Lia4Li44Lij4Li44LipLQor4Lia4Li44Lij4Li44Lip4LmC4LiX4LipCivguJrguLjguKPguLjguKnguJjguKPguKPguKEKK+C4muC4uOC5guC4o+C4l+C4seC5iOC4hwor4Lia4Li44Lip4LiB4LijCivguJrguLjguKnguJotCivguJrguLjguKnguJrguIEKK+C4muC4uOC4qeC4muC4hwor4Lia4Li44Lip4Lia4Lij4Liy4LiECivguJrguLjguKnguJrguKfguKPguKPguKkKK+C4muC4uOC4qeC4muC4seC4mQor4Lia4Li44Lip4Lia4LiyCivguJrguLjguKnguJrguLLguIHguKMKK+C4muC4uOC4qeC4muC4suC4hOC4oQor4Lia4Li44Lip4Lia4Liy4Lia4Lix4LiTCivguJrguLjguKnguJrguLLguKHguLTguJnguJXguKPguLIKK+C4muC4uOC4qeC4muC4suC4o+C4seC4geC4o+C5ieC4reC4ogor4Lia4Li44Lip4LibLQor4Lia4Li44Lip4Lib4Lij4Liy4LiECivguJrguLjguKnguJvguLAKK+C4muC4uOC4qeC4oi0KK+C4muC4uOC4qeC4ouC5jAor4Lia4Li44Lip4Lii4LmM4LiZ4LmJ4Liz4LiX4Lit4LiHCivguJrguLjguKnguKLguKHguLLguKoKK+C4muC4uOC4qeC4ouC4quC4meC4suC4mQor4Lia4Li44Lip4Lii4LiwCivguJrguLjguKnguKLguLLguKDguLTguYDguKnguIEKK+C4muC4uOC4qeC4o+C4suC4hOC4seC4oQor4Lia4Li44Lir4LiH4LiHCivguJrguLjguKvguIfguLHguJkKK+C4muC4uOC4q+C4h+C4sgor4Lia4Li44Lir4LiH4Liy4Lib4Lij4Liw4Lir4LiH4Lix4LiZCivguJrguLjguKvguIfguLLguKHguKXguLLguIvguK0KK+C4muC4uOC4q+C4h+C4suC4o+C4s+C5hOC4mwor4Lia4Li44Lir4LiH4Liy4Lil4Liz4LmA4LiI4Li14Lii4LiBCivguJrguLjguKvguKPguIcKK+C4muC4uOC4q+C4o+C4teC5iAor4Lia4Li44Lir4Lij4Li14LmI4Lie4Lij4Liw4Lij4Liy4LihCivguJrguLjguKvguKXguLHguJkKK+C4muC4ueC5iAor4Lia4Li54LmJCivguJrguLnguIrguJnguLXguKItCivguJrguLnguIrguJnguLXguKLguKrguJbguLLguJkKK+C4muC4ueC4iuC4sgor4Lia4Li54LiK4Liy4LiB4Lix4LiT4LiR4LmM4LmA4LiX4Lio4LiZ4LmMCivguJrguLnguIrguLLguKLguLHguI0KK+C4muC4ueC4iuC4tOC4lQor4Lia4Li54LiUCivguJrguLnguJTguJrguLbguYnguIcKK+C4muC4ueC4lOC5gOC4muC4teC5ieC4ouC4pwor4Lia4Li54LmI4LiX4Liw4LmA4LilCivguJrguLnguYnguJrguLXguYkKK+C4muC4ueC4owor4Lia4Li54Lij4LiTLQor4Lia4Li54Lij4LiT4LmMCivguJrguLnguKPguJPguKDguLLguJ4KK+C4muC4ueC4o+C4k+C4oeC4tQor4Lia4Li54Lij4LiT4LiwCivguJrguLnguKPguJPguLLguIHguLLguKPguKPguKfguKHguKvguJnguYjguKfguKIKK+C4muC4ueC4o+C4ngor4Lia4Li54Lij4Lie4LiyCivguJrguLnguKPguJ7guLLguIjguLLguKPguKLguYwKK+C4muC4ueC4o+C4nuC4suC4qeC4suC4kgor4Lia4Li54Lij4Li1CivguYDguJrguYkKK+C5gOC4muC5iOC4hwor4LmA4Lia4LmK4LiI4Li14LmLCivguYDguJrguI3guIHguLLguJnguLUKK+C5gOC4muC4jeC4iAor4LmA4Lia4LiN4LiILQor4LmA4Lia4LiN4LiI4LiBCivguYDguJrguI3guIjguIHguLHguKXguKLguLLguJPguLUKK+C5gOC4muC4jeC4iOC4geC4suC4oeC4hOC4uOC4kwor4LmA4Lia4LiN4LiI4LiB4Li54LilCivguYDguJrguI3guIjguILguLHguJnguJjguYwKK+C5gOC4muC4jeC4iOC4hOC4seC4nuC4ouC5jAor4LmA4Lia4LiN4LiI4LiE4Li14Lij4Li14LiZ4LiE4LijCivguYDguJrguI3guIjguYLguITguKPguKoKK+C5gOC4muC4jeC4iOC4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LmA4Lia4LiN4LiI4LiY4Lij4Lij4LihCivguYDguJrguI3guIjguJrguKPguKPguJ7guJUKK+C5gOC4muC4jeC4iOC4nuC4o+C4o+C4kwor4LmA4Lia4LiN4LiI4Lie4LilCivguYDguJrguI3guIjguYDguJ7guKoKK+C5gOC4muC4jeC4iOC4oOC4ueC4lQor4LmA4Lia4LiN4LiI4LihLQor4LmA4Lia4LiN4LiI4Lih4Liq4Li44Lij4LiX4Li04LiZCivguYDguJrguI3guIjguKHguLLguKgKK+C5gOC4muC4jeC4iOC4oeC4suC4qOC4quC4p+C4mQor4LmA4Lia4LiN4LiI4Lih4Liy4Lio4Lir4LiZ4Li5CivguYDguJrguI3guIjguKPguIfguITguYwKK+C5gOC4muC4jeC4iOC5guC4peC4q+C4geC4sAor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiECivguYDguJrguI3guIjguKfguKPguKPguJMKK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4k+C4q+C5ieC4suC4quC4tQor4LmA4Lia4LiN4LiI4Lio4LiBCivguYDguJrguI3guIjguKjguLXguKUKK+C5gOC4muC4jeC4iOC4sgor4LmA4Lia4LiN4LiI4Liy4LiH4LiELQor4LmA4Lia4LiN4LiI4Liy4LiH4LiE4LmMCivguYDguJrguI3guIjguLLguIfguITguJvguKPguLDguJTguLTguKnguJDguYwKK+C5gOC4muC4jeC4jeC4sgor4LmA4Lia4LiN4Lie4Liy4LiUCivguYDguJrguYfguJQKK+C5gOC4muC5h+C4lOC5gOC4leC4peC5h+C4lAor4LmA4Lia4LmH4LiU4LmA4Liq4Lij4LmH4LiICivguYDguJrguJkKK+C5gOC4muC4meC4i+C4tOC4mQor4LmA4Lia4Lij4LiBCivguYDguJrguKPguLTguKXguYDguKXguLXguKLguKEKK+C5gOC4muC4o+C4teC4ouC4mQor4LmA4Lia4LiqCivguYDguJrguYnguK0KK+C5gOC4muC4reC4o+C5jAor4LmA4Lia4Lit4Lij4LmM4LiE4Li14LmA4Lil4Li14Lii4LihCivguYDguJrguYnguK3guYDguKPguYjguK0KK+C5gOC4muC5ieC4reC5gOC4o+C5iOC4reC5gOC4l+C5iOC4rQor4LmA4Lia4LmJ4Lit4LmA4Lij4Li04LmI4LihCivguYDguJrguYnguK3guYDguKPguLTguYjguKHguYDguJfguLTguYjguKEKK+C5gOC4muC4reC4sAor4LmA4Lia4Lit4Liw4Lia4LiwCivguYDguJrguLAKK+C5gOC4muC4sgor4LmA4Lia4LmJ4LiyCivguYDguJrguYnguLLguILguKXguLjguJoKK+C5gOC4muC4suC4hOC4p+C4suC4oQor4LmA4Lia4Liy4LmD4LiICivguYDguJrguLLguJXguLHguKcKK+C5gOC4muC5ieC4suC4leC4sgor4LmA4Lia4Liy4LmA4LiV4LmH4LiHCivguYDguJrguLLguYDguJnguLfguYnguK3guYDguJrguLLguJXguLHguKcKK+C5gOC4muC4suC4muC4suC4hwor4LmA4Lia4Liy4Lib4Lix4LiN4LiN4LiyCivguYDguJrguLLguKHguLfguK0KK+C5gOC4muC4suC5hOC4oeC5iQor4LmA4Lia4Liy4LmE4Lih4LmJ4LmA4Lia4Liy4Lih4Li34LitCivguYDguJrguLLguKPguLLguJMKK+C5gOC4muC4suC5geC4o+C4hwor4LmA4Lia4Liy4Liq4Lih4Lit4LiHCivguYDguJrguYnguLLguKvguKXguLjguJQKK+C5gOC4muC4suC4q+C4p+C4suC4mQor4LmA4Lia4Liy4LmA4Lir4Lin4LiHCivguYDguJrguLLguYLguKvguKfguIcKK+C5gOC4muC4suC4sAor4LmA4Lia4Liy4Liw4LmGCivguYDguJrguLLguLDguKXguKEKK+C5gOC4muC4suC4sOC5geC4qgor4LmA4Lia4Li04LiBCivguYDguJrguLTguIHguITguKfguLLguKEKK+C5gOC4muC4tOC4geC4l+C4suC4hwor4LmA4Lia4Li04LiB4LiX4Li54LiVCivguYDguJrguLTguIHguJrguLLguJkKK+C5gOC4muC4tOC4geC4nuC4ouC4suC4mQor4LmA4Lia4Li04LiB4Lie4Lij4Liw4LmA4LiZ4LiV4LijCivguYDguJrguLTguIHguJ7guKPguLDguYLguK3guKnguJDguYwKK+C5gOC4muC4tOC4geC5hOC4nuC4owor4LmA4Lia4Li04LiB4LmE4Lih4LmJCivguYDguJrguLTguIHguYDguKPguLfguK0KK+C5gOC4muC4tOC4geC5guC4o+C4hwor4LmA4Lia4Li04LiB4LmC4Lil4LiHCivguYDguJrguLTguIHguYHguKfguYjguJnguYDguKfguLXguKLguJnguYDguJfguLXguKLguJkKK+C5gOC4muC4tOC4geC4reC4o+C4uOC4kwor4LmA4Lia4Li04LmI4LiHCivguYDguJrguLXguYnguKIKK+C5gOC4muC4teC4ouC4gQor4LmA4Lia4Li14Lii4LiB4Lia4LmJ4Liy4LiiCivguYDguJrguLXguYnguKLguIHguLHguJnguJTguLLguKMKK+C5gOC4muC4teC5ieC4ouC5geC4geC5iQor4LmA4Lia4Li14LmI4Lii4LiHCivguYDguJrguLXguYjguKLguIfguJrguYjguLLguKIKK+C5gOC4muC4teC4ouC4lAor4LmA4Lia4Li14Lii4LiU4LiB4Lij4LitCivguYDguJrguLXguKLguJTguJrguLHguIcKK+C5gOC4muC4teC4ouC4lOC5gOC4muC4teC4ouC4mQor4LmA4Lia4Li14Lii4LiU4LmB4Lin4LmJ4LiHCivguYDguJrguLXguKLguJTguYDguKrguLXguKLguJQKK+C5gOC4muC4teC5ieC4ouC4leC5iOC4reC5hOC4quC5iQor4LmA4Lia4Li14LmJ4Lii4LiX4Liz4LiC4Lin4Lix4LiNCivguYDguJrguLXguKLguJkKK+C5gOC4muC4teC4ouC4meC4mOC4suC4leC4uAor4LmA4Lia4Li14LmJ4Lii4LiZ4LmJ4Lit4Lii4Lir4Lit4Lii4LiZ4LmJ4Lit4LiiCivguYDguJrguLXguYnguKLguJrguJkKK+C5gOC4muC4teC5ieC4ouC4muC5ieC4suC4ouC4o+C4suC4ouC4l+C4suC4hwor4LmA4Lia4Li14LmJ4Lii4Lia4Liz4LiZ4Liy4LiNCivguYDguJrguLXguYnguKLguYLguJrguIEKK+C5gOC4muC4teC5ieC4ouC4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4LmA4Lia4Li14LmJ4Lii4Lib4Lij4Liw4LiK4Li44LihCivguYDguJrguLXguYnguKLguJvguKPguLHguJoKK+C5gOC4muC4teC4ouC4o+C5jAor4LmA4Lia4Li14LmJ4Lii4Lil4LmI4Liy4LiHCivguYDguJrguLXguYnguKLguYDguKXguLXguYnguKLguIcKK+C5gOC4muC4teC5ieC4ouC4pwor4LmA4Lia4Li14LmJ4Lii4Lin4LmGIOC4muC4ueC4lOC5hgor4LmA4Lia4Li14LmJ4Lii4Lir4Lin4Lix4LiUCivguYDguJrguLXguYnguKLguKvguLHguKfguYHguJXguIEKK+C5gOC4muC4teC5ieC4ouC4q+C4seC4p+C5geC4q+C4peC4gQor4LmA4Lia4Li34LitCivguYDguJrguLfguYjguK0KK+C5gOC4muC4t+C5ieC4rQor4LmA4Lia4Li34LmJ4Lit4LiHCivguYDguJrguLfguYnguK3guIfguI3guKfguJkKK+C5gOC4muC4t+C5ieC4reC4h+C4leC5ieC4mQor4LmA4Lia4Li34LmJ4Lit4LiH4Lia4LiZCivguYDguJrguLfguYnguK3guIfguKfguYjguLIKK+C5gOC4muC4t+C5ieC4reC4h+C4q+C4meC5ieC4sgor4LmA4Lia4Li34LmJ4Lit4LiH4Lir4Lil4Lix4LiHCivguYDguJrguLfguK3guJkKK+C5geC4mgor4LmB4Lia4LmJCivguYHguJrguIEKK+C5geC4muC4geC4q+C4meC5ieC4sgor4LmB4Lia4LiB4Liw4LiU4Li04LiZCivguYHguJrguITguJfguLXguYDguKPguLXguKIKK+C5geC4muC5iOC4hwor4LmB4Lia4LiH4LiB4LmMCivguYHguJrguYjguIfguITguYnguLLguIcKK+C5geC4muC5iOC4h+C5gOC4muC4sgor4LmB4Lia4LmI4LiH4Lib4Lix4LiZCivguYHguJrguYjguIfguKDguLLguIQKK+C5geC4muC5iOC4h+C5geC4ouC4gQor4LmB4Lia4LmI4LiH4Lij4Lix4Lia4LmB4Lia4LmI4LiH4Liq4Li54LmJCivguYHguJrguYjguIfguKrguLHguJnguJvguLHguJnguKrguYjguKfguJkKK+C5geC4muC4lOC4oeC4tOC4meC4leC4seC4mQor4LmB4Lia4LiV4LmA4LiV4Lit4Lij4Li14LmICivguYHguJrguYTguJXguYsKK+C5geC4muC4mQor4LmB4Lia4LiZ4LmC4LiICivguYHguJrguJoKK+C5geC4muC5h+C4mgor4LmB4Lia4Lia4LiC4LmJ4Lit4LiE4Liz4LiW4Liy4LihCivguYHguJrguJrguInguJrguLHguJoKK+C5geC4muC4muC4muC4suC4hwor4LmB4Lia4Lia4LmB4Lic4LiZCivguYHguJrguJrguJ3guLbguIHguKvguLHguJQKK+C5geC4muC4muC4nuC4tOC4mOC4tQor4LmB4Lia4Lia4Lie4Li04Lih4Lie4LmMCivguYHguJrguJrguKrguK3guJrguJbguLLguKEKK+C5geC4muC4muC4reC4ouC5iOC4suC4hwor4LmB4Lia4LmA4Lia4Liy4LiwCivguYHguJrguKHguLfguK0KK+C5geC4muC4o+C4gQor4LmB4Lia4LmA4Lij4Li14Lii4LihCivguYHguJrguKvguKXguLIKK+C5geC4muC4sAor4LmB4Lia4Liw4LmB4LiJ4LiwCivguYHguJrguLDguJfguYjguLIKK+C5geC4muC4sOC4m+C4suC4gQor4LmB4Lia4Liw4Lit4LiBCivguYLguJoKK+C5guC4muC5iQor4LmC4Lia4LmLCivguYLguJrguIEKK+C5guC4muC4geC4guC4oy0KK+C5guC4muC4geC4guC4o+C4k+C4tQor4LmC4Lia4LiB4LiC4Lij4Lie4Lij4Lij4LipCivguYLguJrguIHguKHguLfguK0KK+C5guC4muC4iuC4uOC4gQor4LmC4Lia4LiU4LiBCivguYLguJrguYHguJTguIcKK+C5guC4muC4lQor4LmC4Lia4LiZ4Lix4LiqCivguYLguJrguYrguYDguJrguYoKK+C5guC4muC4ogor4LmC4Lia4Lii4Lia4Li04LiZCivguYLguJrguKPguKHguLXguJkKK+C5guC4muC4o+C4reC4mQor4LmC4Lia4Lij4Liy4LiTCivguYLguJrguKPguLLguJMtCivguYLguJrguKPguLLguJPguITguJTguLUKK+C5guC4muC4o+C4suC4k+C4p+C4seC4leC4luC4uAor4LmC4Lia4Lij4Liy4LiT4Liq4LiW4Liy4LiZCivguYLguJrguKrguJbguYwKK+C5g+C4mgor4LmD4Lia4LmJCivguYPguJrguIHguYnguJnguJvguLTguJQKK+C5g+C4muC4geC4reC4h+C5gOC4geC4tOC4mQor4LmD4Lia4LiB4Lit4LiH4Lir4LiZ4Li44LiZCivguYPguJrguILguJnguKrguLTguJnguITguYnguLIKK+C5g+C4muC4guC4meC4uOC4mQor4LmD4Lia4LiC4Lix4Lia4LiC4Li14LmICivguYPguJrguYHguILguYfguIcKK+C5g+C4muC5ieC4hOC4peC4seC5iOC4hwor4LmD4Lia4LmA4LiH4Li04LiZCivguYPguJrguIjguK3guIcKK+C5g+C4muC4juC4teC4geC4sgor4LmD4Lia4LiU4Liy4LilCivguYPguJrguJTguLMKK+C5g+C4muC5geC4lOC4hwor4LmD4Lia4LmB4LiU4LiH4LmB4LiI4LmJ4LiH4LmC4LiX4LipCivguYPguJrguJXguKPguLLguKrguYjguIcKK+C5g+C4muC4leC4reC4hwor4LmD4Lia4LiV4Liy4LilCivguYPguJrguJfguK3guIcKK+C5g+C4muC4l+C5ieC4reC4h+C5geC4lOC4hwor4LmD4Lia4LmB4LiX4Lij4LiBCivguYPguJrguJnguLLguIEKK+C5g+C4muC4muC4reC4gQor4LmD4Lia4Lia4Li44LiNCivguYPguJrguYDguJrguLTguIEKK+C5g+C4muC5gOC4muC4tOC4geC4l+C4suC4hwor4LmD4Lia4LmA4Lia4Li04LiB4Lij4LmI4Lit4LiHCivguYPguJrguJvguIEKK+C5g+C4muC4m+C4o+C4t+C4rQor4LmD4Lia4Lib4Lil4Li04LinCivguYPguJrguJ7guLHguJQKK+C5g+C4muC4nuC4seC4l+C4mOC4quC4teC4oeC4sgor4LmD4Lia4LmC4LieCivguYPguJrguYDguKHguLXguYjguKLguIcKK+C5g+C4muC5hOC4oeC5iQor4LmD4Lia4Lij4Liw4LiB4LiyCivguYPguJrguKPguLHguJoKK+C5g+C4muC4o+C4seC4muC4o+C4reC4hwor4LmD4Lia4Lil4LiyCivguYPguJrguYDguKXguLXguYnguKLguIcKK+C5g+C4muC4quC4rQor4LmD4Lia4Liq4Lix4LmI4LiHCivguYPguJrguKrguLHguYjguIfguIjguYjguLLguKIKK+C5g+C4muC4quC4seC4iAor4LmD4Lia4Liq4Liz4LiE4Lix4LiNCivguYPguJrguKrguLPguITguLHguI3guITguLnguYjguIjguYjguLLguKIKK+C5g+C4muC4quC4teC4oeC4sgor4LmD4Lia4Liq4Li44LiX4LiY4Li0CivguYPguJrguYDguKrguKHguLIKK+C5g+C4muC5gOC4quC4o+C5h+C4iAor4LmD4Lia4Lir4LiZ4LmJ4LiyCivguYPguJrguKvguLjguYnguJkKK+C5g+C4muC4q+C4ueC4iuC5ieC4suC4hwor4LmD4Lia4LmA4Lir4Lii4Li14Lii4Lia4Lii4LmI4LizCivguYPguJrguK3guJnguLjguI3guLLguJXguILguLHguJrguILguLXguYgKK+C5hOC4muC5iOC5hgor4LibCivguJvguIEKK+C4m+C4geC4geC4o+C4sOC4nuC4reC4hwor4Lib4LiB4LmA4LiB4LioCivguJvguIHguITguKPguK3guIcKK+C4m+C4geC4hOC4peC4uOC4oQor4Lib4LiB4LiV4Li0CivguJvguIHguJvguYnguK3guIcKK+C4m+C4geC4m+C4seC4geC4o+C4seC4geC4qeC4sgor4Lib4LiB4Lib4Li04LiUCivguJvguIHguKPguJPguYwKK+C4m+C4geC4o+C4k+C4seC4oQor4Lib4LiB4Liy4LijCivguJvguIHguLTguJPguIHguLAKK+C4m+C4geC4teC4o+C4k+C4seC4oQor4Lib4LmC4LiB4LiP4Li0CivguJvguIcKK+C4m+C5iOC4hwor4Lib4LiH4LiK4LmJ4Liy4LiHCivguJvguIfguJvguLHguIcKK+C4m+C4juC4pQor4Lib4LiP4Lix4LiBCivguJvguI/guLQtCivguJvguI/guLTguIHguKPguJPguYwKK+C4m+C4j+C4tOC4geC4o+C4o+C4oeC4quC4h+C4hOC4o+C4suC4oQor4Lib4LiP4Li04LiB4Liy4LijLQor4Lib4LiP4Li04LiB4Liy4Lij4LiwCivguJvguI/guLTguIHguLTguKPguLTguKLguLIKK+C4m+C4j+C4tOC4geC4ueC4pQor4Lib4LiP4Li04LiE4LiE4Lir4Li04LiVCivguJvguI/guLTguITguKEKK+C4m+C4j+C4tOC4hOC4q+C4tOC4lS0KK+C4m+C4j+C4tOC4hOC4suC4q+C4gQor4Lib4LiP4Li04LiG4LiwCivguJvguI/guLTguIrguLXguKfguJnguLAKK+C4m+C4j+C4tOC4jeC4jeC4sgor4Lib4LiP4Li04LiN4LiN4Liy4Liq4Liy4LiB4Lil4Lin4LmI4Liy4LiU4LmJ4Lin4Lii4Liq4Li04LiX4LiY4Li04Lih4LiZ4Li44Lip4Lii4LiK4LiZCivguJvguI/guLTguI3guLLguJMKK+C4m+C4j+C4tOC4l+C4tOC4mQor4Lib4LiP4Li04Lia4LiWCivguJvguI/guLTguJrguLHguJXguLQKK+C4m+C4j+C4tOC4muC4seC4leC4tOC4geC4suC4owor4Lib4LiP4Li04Lia4Lix4LiV4Li04LiY4Lij4Lij4LihCivguJvguI/guLTguJvguJfguLIKK+C4m+C4j+C4tOC4m+C4seC4geC4qeC5jAor4Lib4LiP4Li04Lib4Lix4LiZCivguJvguI/guLTguJvguLjguIjguInguLLguJ7guKLguLLguIHguKPguJPguYwKK+C4m+C4j+C4tOC4m+C4uOC4iOC4ieC4suC4p+C4suC4l+C4tQor4Lib4LiP4Li04Lie4Lix4LiX4LiY4LmMCivguJvguI/guLTguJ7guLLguIHguKLguYwKK+C4m+C4j+C4tOC4oOC4suC4hAor4Lib4LiP4Li04Lig4Liy4LiELQor4Lib4LiP4Li04Lig4Liy4LiE4LiZ4Li04Lih4Li04LiVCivguJvguI/guLTguKDguLLguJMKK+C4m+C4j+C4tOC4oOC4suC4ky0KK+C4m+C4j+C4tOC4oOC4suC4k+C4geC4p+C4tQor4Lib4LiP4Li04Lig4Liy4LiT4Lib4LiP4Li04Liq4Lix4Lih4Lig4Li04LiX4LiyCivguJvguI/guLTguKDguLLguJPguYLguKfguKvguLLguKMKK+C4m+C4j+C4tOC4oeC4sgor4Lib4LiP4Li04Lih4Liy4LiB4LijCivguJvguI/guLTguKLguLjguJfguJjguYwKK+C4m+C4j+C4tOC4o+C4ngor4Lib4LiP4Li04Lij4Li54LibCivguJvguI/guLTguKPguLnguJstCivguJvguI/guLTguYLguKXguKEKK+C4m+C4j+C4tOC4p+C4seC4leC4tAor4Lib4LiP4Li04Lin4Liy4LiVCivguJvguI/guLTguKfguLLguJcKK+C4m+C4j+C4tOC5gOC4p+C4mAor4Lib4LiP4Li04Liq4LiZ4LiY4Li0CivguJvguI/guLTguKrguKfguLAKK+C4m+C4j+C4tOC4quC4seC4h+C4guC4o+C4k+C5jAor4Lib4LiP4Li04Liq4Lix4LiZ4LiW4Liy4LijCivguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4m+C4j+C4tOC5gOC4quC4mAor4Lib4LiP4Li04LmA4Liq4LiY4LiC4LmI4Liy4LinCivguJvguJDguJ7guLUKK+C4m+C4kOC4nuC4teC4p+C4tOC4l+C4ouC4sgor4Lib4LiQ4LihCivguJvguJDguKEtCivguJvguJDguKHguIHguKPguKPguKEKK+C4m+C4kOC4oeC4jOC4suC4mQor4Lib4LiQ4Lih4LiU4Li44Liq4Li04LiVCivguJvguJDguKHguJfguLHguKjguJnguYwKK+C4m+C4kOC4oeC5gOC4l+C4qOC4meC4sgor4Lib4LiQ4Lih4LiZ4Li04LmA4LiX4LioCivguJvguJDguKHguJrguLjguKPguLjguKkKK+C4m+C4kOC4oeC4nuC4ouC4suC4muC4suC4pQor4Lib4LiQ4Lih4LmC4Lie4LiY4Li04LiB4Liy4LilCivguJvguJDguKHguKLguLLguKEKK+C4m+C4kOC4oeC4pOC4geC4qeC5jAor4Lib4LiQ4Lih4Lin4Lix4LiiCivguJvguJDguKHguKrguKHguYLguJ7guJjguLQKK+C4m+C4kOC4oeC4quC4uOC4o+C4l+C4tOC4mQor4Lib4LiQ4Lih4Liy4Lip4Liy4LiSCivguJvguJDguKfguLUKK+C4m+C4k+C4lQor4Lib4LiT4Liy4LihCivguJvguJPguLTguJjguLLguJkKK+C4m+C4k+C4tOC4mOC4tAor4Lib4LiT4Li14LiVCivguJvguJQKK+C4m+C4lOC5guC4m+C5iQor4Lib4LiU4Li04Lin4Lij4Lix4LiU4LiyCivguJvguJXguLQKK+C4m+C4leC4tOC4ouC4seC4lQor4Lib4LiV4Li04Lin4Lix4LiV4LijCivguJvguJbguJ7guLUKK+C4m+C4luC4oeC4seC4hwor4Lib4LiW4Lin4Li1CivguJvguJfguLHguI/guJDguLLguJkKK+C4m+C4l+C4seC4quC4luC4suC4mQor4Lib4LiX4Liy4LiZ4Li44LiB4Lij4LihCivguJvguJfguLXguJsKK+C4m+C4l+C4uOC4oQor4Lib4LiZCivguJvguYjguJkKK+C4m+C5iOC4meC4m+C4teC5iQor4Lib4LiZ4LmA4LibCivguJvguJnguLHguJTguJTguLIKK+C4m+C4mgor4Lib4Lib4Lix4LiN4LiILQor4Lib4Lib4Lix4LiN4LiI4LiY4Lij4Lij4LihCivguJvguJvguLHguI3guIjguLAKK+C4m+C4oQor4Lib4Lih4LmA4LiC4Li34LmI4Lit4LiHCivguJvguKHguIjguLTguJUKK+C4m+C4oeC4lOC5ieC4reC4ogor4Lib4Lih4LmA4LiU4LmI4LiZCivguJvguKHguJvguKPguLDguKrguLLguJcKK+C4m+C4oeC5gOC4m+C4sgor4Lib4LmC4LiiLQor4Lib4LmC4Lii4LiK4LiZ4Lih4LmMCivguJvguYLguKLguJjguKMKK+C4m+C5guC4ouC4mOC4o+C4sgor4Lib4LmC4Lii4LiZ4Li04LiY4Li0CivguJvguYLguKLguKPguLLguKjguLQKK+C4m+C4oy0KK+C4m+C4o+C4gQor4Lib4Lij4LiB4LiV4Li0CivguJvguKPguIcKK+C4m+C4o+C4lAor4Lib4Lij4LiV4Lii4Lix4LiB4Lip4LmMCivguJvguKPguJXguKLguLLguIQKK+C4m+C4o+C4leC5gOC4ouC4gQor4Lib4Lij4LiZCivguJvguKPguJnguJnguLTguJrguLHguJXguLQKK+C4m+C4o+C4meC4m+C4o+C4t+C4rQor4Lib4Lij4LiZ4LmA4Lib4Lij4LitCivguJvguKPguJnguLHguKIKK+C4m+C4o+C4mgor4Lib4Lij4Lia4LmE4LiB4LmICivguJvguKPguJrguKHguLfguK3guYPguKvguYkKK+C4m+C4o+C4m+C4seC4geC4qeC5jAor4Lib4Lij4LihLQor4Lib4Lij4Lih4Lix4LiV4LiW4LmMCivguJvguKPguKHguLLguIjguLLguKPguKLguYwKK+C4m+C4o+C4oeC4suC4k+C4uQor4Lib4Lij4Lih4Liy4LiV4Lih4Lix4LiZCivguJvguKPguKHguLLguKDguLTguYTguJjguKIKK+C4m+C4o+C4oeC4suC4oOC4tOC5gOC4qeC4gQor4Lib4Lij4Lih4Li04LiZ4LiX4Lij4LmMCivguJvguKPguYDguKHguJnguJfguKPguYwKK+C4m+C4o+C5gOC4oeC4qOC4p+C4o+C5jAor4Lib4Lij4LmA4Lih4Lip4LiQ4LmMCivguJvguKPguYDguKHguKvguLAKK+C4m+C4o+C5guC4peC4gQor4Lib4Lij4Lin4LiUCivguJvguKPguKfguJnguYHguJvguKMKK+C4m+C4o+C4p+C4suC4l+C4tQor4Lib4Lij4Lio4Li4CivguJvguKPguKrguLTguJUKK+C4m+C4o+C4quC4tOC4lS0KK+C4m+C4o+C4quC4tOC4leC4p+C4tOC4l+C4ouC4sgor4Lib4Lij4LmL4LitCivguJvguKPguK3guIfguJTguK3guIcKK+C4m+C4o+C4reC4lAor4Lib4Lij4Lit4LiU4LmGCivguJvguKPguK3guJcKK+C4m+C4o+C4reC4ogor4Lib4Lij4Lit4Lii4LmGCivguJvguKPguLAtCivguJvguKPguLDguIHguJoKK+C4m+C4o+C4sOC4geC4muC4leC4seC4pwor4Lib4Lij4Liw4LiB4Lik4LiVCivguJvguKPguLDguIHguKTguJXguLQKK+C4m+C4o+C4sOC4geC4pQor4Lib4Lij4Liw4LiB4Lin4LiUCivguJvguKPguLDguIHguKfguJTguJvguKPguLDguILguLHguJkKK+C4m+C4o+C4sOC4geC4p+C4lOC4o+C4suC4hOC4sgor4Lib4Lij4Liw4LiB4Lit4LiaCivguJvguKPguLDguIHguK3guJrguJTguYnguKfguKIKK+C4m+C4o+C4sOC4geC4reC4muC4reC4suC4q+C4suC4owor4Lib4Lij4Liw4LiB4Lix4LiZCivguJvguKPguLDguIHguLHguJnguIrguLXguKfguLTguJUKK+C4m+C4o+C4sOC4geC4seC4meC5gOC4iuC4tOC4h+C4peC4sgor4Lib4Lij4Liw4LiB4Lix4LiZ4LiV4Lix4Lin4Lic4Li54LmJ4LiV4LmJ4Lit4LiH4Lir4Liy4Lir4Lij4Li34Lit4LiI4Liz4LmA4Lil4LiiCivguJvguKPguLDguIHguLHguJnguKDguLHguKIKK+C4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ouC4hOC5ieC4s+C4iOC4uOC4mQor4Lib4Lij4Liw4LiB4Lix4LiZ4Lin4Li04LiZ4Liy4Lio4Lig4Lix4LiiCivguJvguKPguLDguIHguLHguJoKK+C4m+C4o+C4sOC4geC4suC4ogor4Lib4Lij4Liw4LiB4Liy4Lii4Lie4Lij4Li24LiBCivguJvguKPguLDguIHguLLguKMKK+C4m+C4o+C4sOC4geC4suC4qAor4Lib4Lij4Liw4LiB4Liy4Lio4LiBCivguJvguKPguLDguIHguLLguKjguJnguLXguKLguJrguLHguJXguKMKK+C4m+C4o+C4sOC4geC4suC4qOC4tOC4lQor4Lib4Lij4Liw4LiB4LizCivguJvguKPguLDguIHguLTguJQKK+C4m+C4o+C4sOC4geC4tOC4lQor4Lib4Lij4Liw4LiB4Li14Lij4LiT4LiBCivguJvguKPguLDguYDguIHguLXguKLguKPguJPguIEKK+C4m+C4o+C4sOC5geC4geC4gQor4Lib4Lij4Liw4LiE4LiUCivguJvguKPguLDguITguJnguJjguKPguKPguJ4KK+C4m+C4o+C4sOC4hOC4meC4mOC4o+C4o+C4nuC5jAor4Lib4Lij4Liw4LiE4LiaCivguJvguKPguLDguITguJrguJvguKPguLDguKvguIfguKEKK+C4m+C4o+C4sOC4hOC4reC4hwor4Lib4Lij4Liw4LiE4Lix4Lia4Lib4Lij4Liw4LiE4Lit4LiHCivguJvguKPguLDguITguLHguKXguKDguYwKK+C4m+C4o+C4sOC4hOC4suC4o+C4oQor4Lib4Lij4Liw4LiE4LizCivguJvguKPguLDguITguLPguYTguIHguYgKK+C4m+C4o+C4sOC4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4Lib4Lij4Liw4LiE4Liz4Lij4LmJ4Lit4LiiCivguJvguKPguLDguITguLTguYjguJkKK+C4m+C4o+C4sOC4hOC4tOC5iOC4meC4p+C4tOC4meC4iuC4sgor4Lib4Lij4Liw4LiE4Li44LiTCivguJvguKPguLDguYDguITguJkKK+C4m+C4o+C4sOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lib4Lij4Liw4LmC4LiE4LiZCivguJvguKPguLDguYLguITguJnguJjguKPguKPguJ4KK+C4m+C4o+C4sOC5guC4hOC4meC4mOC4o+C4o+C4nuC5jAor4Lib4Lij4Liw4LmC4LiE4LihCivguJvguKPguLDguYLguITguKHguILguYjguLLguKcKK+C4m+C4o+C4sOC4iOC4hwor4Lib4Lij4Liw4LiI4LiNCivguJvguKPguLDguIjguJoKK+C4m+C4o+C4sOC4iOC4muC4m+C4o+C4sOC5geC4iOC4hwor4Lib4Lij4Liw4LiI4Lin4LiaCivguJvguKPguLDguIjguYvguK3guJvguKPguLDguYHguIjguYsKK+C4m+C4o+C4sOC4iOC4seC4geC4qS0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jAor4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LiZ4Li04Lii4LihCivguJvguKPguLDguIjguLHguIHguKnguYzguJ7guKLguLLguJkKK+C4m+C4o+C4sOC4iOC4seC4jQor4Lib4Lij4Liw4LiI4Lix4LiN4Lia4Liy4LiZCivguJvguKPguLDguIjguLHguJkKK+C4m+C4o+C4sOC4iOC4seC4meC4q+C4meC5ieC4sgor4Lib4Lij4Liw4LiI4Liy4LiBCivguJvguKPguLDguIjguLLguIQKK+C4m+C4o+C4sOC4iOC4suC4mQor4Lib4Lij4Liw4LiI4LizCivguJvguKPguLDguIjguLPguIHguLLguKMKK+C4m+C4o+C4sOC4iOC4s+C4hOC4o+C4seC5iOC4hwor4Lib4Lij4Liw4LiI4Liz4LiJ4Lix4LiV4LijCivguJvguKPguLDguIjguLPguIvguK3guIcKK+C4m+C4o+C4sOC4iOC4s+C5gOC4lOC4t+C4reC4mQor4Lib4Lij4Liw4LiI4Liz4LiV4Lij4LiyCivguJvguKPguLDguIjguLPguYDguKHguLfguK3guIcKK+C4m+C4o+C4sOC4iOC4s+C4ouC4suC4oQor4Lib4Lij4Liw4LiI4Li04LihCivguJvguKPguLDguIjguLTguYnguKHguJvguKPguLDguIjguYjguK3guIcKK+C4m+C4o+C4sOC4iOC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4iOC5i+C4rQor4Lib4Lij4Liw4LiI4Li4CivguJvguKPguLDguIjguLjguILguLLguJQKK+C4m+C4o+C4sOC4iOC4uOC4hOC4oeC4meC5jAor4Lib4Lij4Liw4LiI4Li44Lia4Lix4LiZCivguJvguKPguLDguIjguLjguYTguJ/guJ/guYnguLIKK+C4m+C4o+C4sOC4iOC4uOC5guC4peC4q+C4tOC4lQor4Lib4Lij4Liw4LmA4LiI4LiBCivguJvguKPguLDguYDguIjguLTguJQKK+C4m+C4o+C4sOC5gOC4iOC4tOC4lOC4m+C4o+C4sOC5gOC4iOC5ieC4rQor4Lib4Lij4Liw4LmA4LiI4Li14Lii4LiUCivguJvguKPguLDguYHguIgKK+C4m+C4o+C4sOC5geC4iOC4iOC4teC4mQor4Lib4Lij4Liw4LiK4LiUCivguJvguKPguLDguIrguJTguJvguKPguLDguIrguLHguJkKK+C4m+C4o+C4sOC4iuC4mQor4Lib4Lij4Liw4LiK4Lin4LihCivguJvguKPguLDguIrguKfguKMKK+C4m+C4o+C4sOC4iuC4seC4mQor4Lib4Lij4Liw4LiK4LiyCivguJvguKPguLDguIrguLLguIHguKMKK+C4m+C4o+C4sOC4iuC4suC4geC4o+C4qOC4suC4quC4leC4o+C5jAor4Lib4Lij4Liw4LiK4Liy4LiE4LihCivguJvguKPguLDguIrguLLguIrguJkKK+C4m+C4o+C4sOC4iuC4suC4iuC4suC4leC4tAor4Lib4Lij4Liw4LiK4Liy4LiX4Lix4LiT4LiR4LmMCivguJvguKPguLDguIrguLLguJjguLTguJvguYTguJXguKIKK+C4m+C4o+C4sOC4iuC4suC4meC4suC4lgor4Lib4Lij4Liw4LiK4Liy4Lia4LiU4Li1CivguJvguKPguLDguIrguLLguJrguLLguKUKK+C4m+C4o+C4sOC4iuC4suC4oOC4tOC4muC4suC4pQor4Lib4Lij4Liw4LiK4Liy4Lih4LiV4Li0CivguJvguKPguLDguIrguLLguKPguLLguKnguI7guKPguYwKK+C4m+C4o+C4sOC4iuC4suC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lib4Lij4Liw4LiK4Liy4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguJvguKPguLDguIrguLTguJQKK+C4m+C4o+C4sOC4iuC4tQor4Lib4Lij4Liw4LiK4Li44LihCivguJvguKPguLDguIrguLjguKHguYDguJ7guKXguLTguIcKK+C4m+C4o+C4sOC4iuC4uOC4oeC4quC4uOC4lOC4ouC4reC4lAor4Lib4Lij4Liw4LmA4LiK4Li04LiNCivguJvguKPguLDguJPguJUKK+C4m+C4o+C4sOC4k+C4oQor4Lib4Lij4Liw4LiT4Liy4LihCivguJvguKPguLDguJPguLTguJjguLLguJkKK+C4m+C4o+C4sOC4k+C4tOC4mOC4tAor4Lib4Lij4Liw4LiT4Li14LiVCivguJvguKPguLDguJPguLjguJcKK+C4m+C4o+C4sOC4lOC4hwor4Lib4Lij4Liw4LiU4LiH4LmB4LiU4LiHCivguJvguKPguLDguJTguJkKK+C4m+C4o+C4sOC4lOC4meC4mOC4o+C4o+C4oQor4Lib4Lij4Liw4LiU4Lin4LiZCivguJvguKPguLDguJTguK3guJkKK+C4m+C4o+C4sOC4lOC4reC4ogor4Lib4Lij4Liw4LiU4Lix4LiB4LmGCivguJvguKPguLDguJTguLHguIHguJvguKPguLDguYDguJTguLTguJQKK+C4m+C4o+C4sOC4lOC4seC4hwor4Lib4Lij4Liw4LiU4Lix4LiaCivguJvguKPguLDguJTguLHguJrguJvguKPguLDguJTguLIKK+C4m+C4o+C4sOC4lOC4sgor4Lib4Lij4Liw4LiU4Liy4LiBCivguJvguKPguLDguJTguLLguJXguLLguKIKK+C4m+C4o+C4sOC4lOC4suC4l+C4seC4ngor4Lib4Lij4Liw4LiU4Liy4LiZ4LmJ4LizCivguJvguKPguLDguJTguLLguJsKK+C4m+C4o+C4sOC4lOC4suC4nuC4pQor4Lib4Lij4Liw4LiU4Liy4Lih4Li1CivguJvguKPguLDguJTguLLguKkKK+C4m+C4o+C4sOC4lOC4suC5gOC4quC4teC4ogor4Lib4Lij4Liw4LiU4Li0LQor4Lib4Lij4Liw4LiU4Li04LiK4LiN4LiyCivguJvguKPguLDguJTguLTguJTguJvguKPguLDguJTguK3guKIKK+C4m+C4o+C4sOC4lOC4tOC4l+C4tOC4mQor4Lib4Lij4Liw4LiU4Li04Lij4LieCivguJvguKPguLDguJTguLTguKnguJAtCivguJvguKPguLDguJTguLTguKnguJDguYwKK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC4geC4o+C4o+C4oQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Liy4LiZCivguJvguKPguLDguJTguLjguIcKK+C4m+C4o+C4sOC4lOC4uOC4iAor4Lib4Lij4Liw4LiU4Li54LmICivguJvguKPguLDguJTguLnguYjguYHguILguIEKK+C4m+C4o+C4sOC4lOC4ueC5iOC4iuC4tOC4h+C4iuC4seC4mQor4Lib4Lij4Liw4LiU4Li54LmI4LmB4LiU4LiHCivguJvguKPguLDguJTguLnguYjguKXguLLguKIKK+C4m+C4o+C4sOC5gOC4lAor4Lib4Lij4Liw4LmA4LiU4LmH4LiZCivguJvguKPguLDguYDguJTguKLguIEKK+C4m+C4o+C4sOC5gOC4lOC4tOC4oQor4Lib4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguJvguKPguLDguYDguJTguLXguYvguKLguKcKK+C4m+C4o+C4sOC5gOC4lOC4teC5i+C4ouC4p+C4geC5iOC4reC4mQor4Lib4Lij4Liw4LmA4LiU4Li14LmL4Lii4Lin4LmA4LiU4Li14Lii4LinCivguJvguKPguLDguYDguJTguLXguYvguKLguKfguJnguLXguYkKK+C4m+C4o+C4sOC5gOC4lOC4teC5i+C4ouC4p+C4m+C4o+C4sOC4lOC5i+C4suC4pwor4Lib4Lij4Liw4LmB4LiU4LiHCivguJvguKPguLDguYHguJTguLAKK+C4m+C4o+C4sOC5guC4lOC4ogor4Lib4Lij4Liw4LiV4LiHCivguJvguKPguLDguJXguKLguLLguIQKK+C4m+C4o+C4sOC4leC4seC4gQor4Lib4Lij4Liw4LiV4Liy4Lib4LiwCivguJvguKPguLDguJXguLQtCivguJvguKPguLDguJXguLTguIrguI3guLIKK+C4m+C4o+C4sOC4leC4tOC4jeC4suC4kwor4Lib4Lij4Liw4LiV4Li04LiX4Li04LiZCivguJvguKPguLDguJXguLTguKHguLLguIHguKPguKPguKEKK+C4m+C4o+C4sOC4leC4tOC4o+C4ngor4Lib4Lij4Liw4LiV4Li04Lio4Lij4Lix4LieCivguJvguKPguLDguJXguLkKK+C4m+C4o+C4sOC4leC4ueC4iuC4seC4ogor4Lib4Lij4Liw4LiV4Li54LiZ4LmJ4LizCivguJvguKPguLDguJXguLnguJvguYjguLIKK+C4m+C4o+C4sOC4leC4ueC4nOC4tQor4Lib4Lij4Liw4LiV4Li54Lif4Li44LiV4Lia4Lit4LilCivguJvguKPguLDguJXguLnguKPguLDguJrguLLguKIKK+C4m+C4o+C4sOC4leC4ueC4o+C4seC4muC4meC5ieC4swor4Lib4Lij4Liw4LiV4Li54Lil4LihCivguJvguKPguLDguJbguKEKK+C4m+C4o+C4sOC4luC4oeC4iOC4tOC4meC4lOC4sgor4Lib4Lij4Liw4LiX4LihCivguJvguKPguLDguJfguKLguJQKK+C4m+C4o+C4sOC4l+C5ieC4p+C4hwor4Lib4Lij4Liw4LiX4Lin4LiZCivguJvguKPguLDguJfguKfguJnguKrguLTguJnguITguYnguLIKK+C4m+C4o+C4sOC4l+C4seC4geC4qeC5jAor4Lib4Lij4Liw4LiX4Lix4LiB4Lip4Li04LiTCivguJvguKPguLDguJfguLHguIcKK+C4m+C4o+C4sOC4l+C4seC4lAor4Lib4Lij4Liw4LiX4Lix4LiU4LiI4Li14LiZCivguJvguKPguLDguJfguLHguJTguJfguK3guIcKK+C4m+C4o+C4sOC4l+C4seC4lOC4neC4o+C4seC5iOC4hwor4Lib4Lij4Liw4LiX4Lix4LiU4Lil4LihCivguJvguKPguLDguJfguLHguJTguYDguKXguYfguIEKK+C4m+C4o+C4sOC4l+C4seC4lOC5g+C4q+C4jeC5iAor4Lib4Lij4Liw4LiX4Lix4LiaCivguJvguKPguLDguJfguLHguJrguYPguIgKK+C4m+C4o+C4sOC4l+C4seC4muC4leC4o+C4sgor4Lib4Lij4Liw4LiX4Lix4Lia4Lif4LmJ4Lit4LiHCivguJvguKPguLDguJfguLHguJrguYHguKPguKEKK+C4m+C4o+C4sOC4l+C5iOC4sgor4Lib4Lij4Liw4LiX4Liy4LiB4Lil4LmJ4Lit4LiHCivguJvguKPguLDguJfguLLguJkKK+C4m+C4o+C4sOC4l+C4suC4meC4muC4seC4leC4owor4Lib4Lij4Liw4LiX4Liy4LiiCivguJvguKPguLDguJfguLLguKjguLUKK+C4m+C4o+C4sOC4l+C4tOC4mQor4Lib4Lij4Liw4LiX4Li04LmI4LiZCivguJvguKPguLDguJfguLXguJsKK+C4m+C4o+C4sOC4l+C4uOC4gQor4Lib4Lij4Liw4LiX4Li44LiQCivguJvguKPguLDguJfguLjguJDguIjguLTguJUKK+C4m+C4o+C4sOC4l+C4uOC4mQor4Lib4Lij4Liw4LiX4Li44Lih4Lij4Liy4LiECivguJvguKPguLDguJfguLjguKkKK+C4m+C4o+C4sOC4l+C4uOC4qeC4j+C5jAor4Lib4Lij4Liw4LiX4Li44Lip4LiP4LiI4Li04LiVCivguJvguKPguLDguJfguLjguKnguJDguYwKK+C4m+C4o+C4sOC4l+C4uOC4qeC4kOC4iOC4tOC4lQor4Lib4Lij4Liw4LiX4Li44Lip4Lij4LmJ4Liy4LiiCivguJvguKPguLDguYDguJfguKgKK+C4m+C4o+C4sOC5gOC4l+C4qOC4geC4seC4meC4iuC4mQor4Lib4Lij4Liw4LmA4LiX4Lio4LiK4Liy4LiV4Li0CivguJvguKPguLDguYDguJfguKjguKPguLLguIoKK+C4m+C4o+C4sOC5gOC4l+C4sgor4Lib4Lij4Liw4LmA4LiX4LmJ4LiyCivguJvguKPguLDguYDguJfguLXguKLguJQKK+C4m+C4o+C4sOC5gOC4l+C4teC4ouC4mgor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHCivguJvguKPguLDguJjguLLguJkKK+C4m+C4o+C4sOC4mOC4suC4meC4suC4mOC4tOC4muC4lOC4tQor4Lib4Lij4Liw4LiZ4LihCivguJvguKPguLDguJnguKHguKHguLfguK0KK+C4m+C4o+C4sOC4meC4rQor4Lib4Lij4Liw4LiZ4Lit4LihCivguJvguKPguLDguJnguK3guKHguKvguJnguLXguYkKK+C4m+C4o+C4sOC4meC4seC4hwor4Lib4Lij4Liw4LiZ4Lix4Lib4LiU4LiyCivguJvguKPguLDguJnguLXguYkKK+C4m+C4o+C4sOC4meC4teC4m+C4o+C4sOC4meC4reC4oQor4Lib4Lij4Liw4LiZ4Li14Lib4Lij4Liw4LiZ4Lit4Lih4Lii4Lit4Lih4LiE4Lin4Liy4LihCivguJvguKPguLDguJrguLHguJQKK+C4m+C4o+C4sOC4muC4suC4lQor4Lib4Lij4Liw4Lib4Lij4Liy4LiZCivguJvguKPguLDguJvguKPguLLguKIKK+C4m+C4o+C4sOC4m+C4sgor4Lib4Lij4Liw4LmA4Lib4Lij4Li14LmJ4Lii4LiHCivguJvguKPguLDguYDguJvguKPguLXguKLguKcKK+C4m+C4o+C4sOC5geC4m+C5ieC4hwor4Lib4Lij4Liw4LmB4Lib4Lij4LmJ4LiZCivguJvguKPguLDguJ7guIjguJnguYwKK+C4m+C4o+C4sOC4nuC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Lij4LihCivguJvguKPguLDguJ7guKTguJXguLQKK+C4m+C4o+C4sOC4nuC4pOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Lie4Lix4LiUCivguJvguKPguLDguJ7guLHguJfguJjguYwKK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Liy4LiVCivguJvguKPguLDguJ7guLLguKoKK+C4m+C4o+C4sOC4nuC4suC4quC4leC5ieC4mQor4Lib4Lij4Liw4Lie4Liy4Liq4Lih4Lir4Lij4LiT4LieCivguJvguKPguLDguJ7guLLguKwKK+C4m+C4o+C4sOC4nuC4tOC4kwor4Lib4Lij4Liw4Lie4Li04Lih4Lie4LmM4Lib4Lij4Liw4Lie4Liy4LiiCivguJvguKPguLDguJ7guLjguJfguJjguYwKK+C4m+C4o+C4sOC5gOC4nuC4k+C4tQor4Lib4Lij4Liw4LmA4Lie4LiT4Li14LiZ4Li04Lii4LihCivguJvguKPguLDguYDguJ7guYnguK0KK+C4m+C4o+C4sOC5geC4nuC4o+C5iOC4h+C4m+C4o+C4sOC5geC4nuC4o+C4pwor4Lib4Lij4Liw4LmC4Lie4LiYCivguJvguKPguLDguYTguJ4KK+C4m+C4o+C4sOC5hOC4nuC4owor4Lib4Lij4Liw4Lig4LieCivguJvguKPguLDguKDguLHguKrguKrguKMKK+C4m+C4o+C4sOC4oOC4sgor4Lib4Lij4Liw4Lig4Liy4LiB4LijCivguJvguKPguLDguKDguLLguITguLLguKMKK+C4m+C4o+C4sOC4oOC4suC4ngor4Lib4Lij4Liw4Lig4Liy4Lih4LiT4LiR4LilCivguJvguKPguLDguKDguLLguKkKK+C4m+C4o+C4sOC4oOC4suC4qgor4Lib4Lij4Liw4LmA4Lig4LiXCivguJvguKPguLDguKHguIcKK+C4m+C4o+C4sOC4oeC4p+C4jQor4Lib4Lij4Liw4Lih4Lin4LilCivguJvguKPguLDguKHguKfguKXguIHguI7guKvguKHguLLguKIKK+C4m+C4o+C4sOC4oeC4p+C4peC4geC4suC4o+C4quC4reC4mQor4Lib4Lij4Liw4Lih4Lin4Lil4Lij4Lix4Lip4LiO4Liy4LiB4LijCivguJvguKPguLDguKHguLHguJXguJXguLAKK+C4m+C4o+C4sOC4oeC4suC4kwor4Lib4Lij4Liw4Lih4Liy4LiT4LiB4Liy4LijCivguJvguKPguLDguKHguLLguJPguJXguJkKK+C4m+C4o+C4sOC4oeC4suC4k+C4leC4seC4pwor4Lib4Lij4Liw4Lih4Liy4LiXCivguJvguKPguLDguKHguLLguJfguKvguJnguYnguLIKK+C4m+C4o+C4sOC4oeC4uOC4ggor4Lib4Lij4Liw4Lih4Li44LiXCivguJvguKPguLDguKHguLnguKUKK+C4m+C4o+C4sOC5gOC4oeC4tOC4mQor4Lib4Lij4Liw4LmA4Lih4Li04LiZ4Lig4Liy4Lip4Li1CivguJvguKPguLDguYLguKHguIcKK+C4m+C4o+C4sOC5guC4oeC4l+C4ouC5jAor4Lib4Lij4Liw4Lii4LiH4LiE4LmMCivguJvguKPguLDguKLguLjguIHguJXguYwKK+C4m+C4o+C4sOC4ouC4uOC4l+C4mOC5jAor4Lib4Lij4Liw4Lii4Li44LijCivguJvguKPguLDguKLguLnguKMKK+C4m+C4o+C4sOC5guC4ouC4hAor4Lib4Lij4Liw4LmC4Lii4LiE4Lib4Lij4Liw4LiY4Liy4LiZCivguJvguKPguLDguYLguKLguITguKrguLHguKHguJvguJfguLIKK+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lib4Lij4Liw4LmC4Lij4Lir4Li04LiVCivguJvguKPguLDguKXguKHguJ7guYwKK+C4m+C4o+C4sOC4peC4reC4hwor4Lib4Lij4Liw4Lil4Lit4LiH4Lii4Li44LiX4LiY4LmMCivguJvguKPguLDguKXguLHguKIKK+C4m+C4o+C4sOC4peC4seC4ouC4geC4seC4peC4m+C5jAor4Lib4Lij4Liw4Lil4Lix4Lii4Lin4Liy4LiVCivguJvguKPguLDguKXguLLguJUKK+C4m+C4o+C4sOC4peC4suC4ogor4Lib4Lij4Liw4Lil4Li24LiHCivguJvguKPguLDguKXguLgKK+C4m+C4o+C4sOC4peC4uOC4hwor4Lib4Lij4Liw4LmA4Lil4LmI4Lir4LmMCivguJvguKPguLDguYDguKXguYnguLLguJvguKPguLDguYLguKXguKEKK+C4m+C4o+C4sOC5guC4peC4m+C4o+C4sOC5gOC4pQor4Lib4Lij4Liw4LmC4Lil4LihCivguJvguKPguLDguYLguKXguKHguYLguKXguIEKK+C4m+C4o+C4sOC4p+C4o+C4o+C4lQor4Lib4Lij4Liw4Lin4Lij4Lij4LiV4LiZ4LmMCivguJvguKPguLDguKfguLHguJXguLQKK+C4m+C4o+C4sOC4p+C4seC4leC4tC0KK+C4m+C4o+C4sOC4p+C4seC4leC4tOC4geC4suC4owor4Lib4Lij4Liw4Lin4Lix4LiV4Li04LiB4Liy4Lij4LiT4LmMCivguJvguKPguLDguKfguLHguJXguLTguIHguLLguKUKK+C4m+C4o+C4sOC4p+C4seC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4Lib4Lij4Liw4Lin4Liy4LiVCivguJvguKPguLDguKfguLLguKUKK+C4m+C4o+C4sOC4p+C4suC4peC4m+C4seC4l+C4oeC5jAor4Lib4Lij4Liw4Lin4Liy4Lil4Lic4LilCivguJvguKPguLDguKfguLLguKXguKfguKPguKPguJMKK+C4m+C4o+C4sOC4p+C4suC4qgor4Lib4Lij4Liw4Lin4Li04LiHCivguJvguKPguLDguKfguLTguIoKK+C4m+C4o+C4sOC4p+C4tOC4leC4owor4Lib4Lij4Liw4Lin4Li04Liq4Lij4Lij4LiK4LiZ4Li14Lii4LmMCivguJvguKPguLDguKfguLXguJMKK+C4m+C4o+C4sOC5gOC4p+C4k+C4tQor4Lib4Lij4Liw4LmA4Lin4Lib4Lij4Liw4Lin4Li04LiHCivguJvguKPguLDguYDguKfguKgKK+C4m+C4o+C4sOC5gOC4p+C4qOC4meC5jAor4Lib4Lij4Liw4Lio4LihCivguJvguKPguLDguKjguLLguKrguJnguYwKK+C4m+C4o+C4sOC4qOC4uAor4Lib4Lij4Liw4Liq4LiBCivguJvguKPguLDguKrguIfguITguYwKK+C4m+C4o+C4sOC4quC4h+C4hOC5jOC4o+C5ieC4suC4ogor4Lib4Lij4Liw4Liq4LiaCivguJvguKPguLDguKrguJrguIHguLLguKPguJPguYwKK+C4m+C4o+C4sOC4quC4muC4geC4suC4o+C4k+C5jOC4meC4tOC4ouC4oQor4Lib4Lij4Liw4Liq4LieCivguJvguKPguLDguKrguKEKK+C4m+C4o+C4sOC4quC4oeC4m+C4o+C4sOC4quC4suC4mQor4Lib4Lij4Liw4Liq4Lih4Lib4Lij4Liw4LmA4LiqCivguJvguKPguLDguKrguKHguJ7guLHguJnguJjguLjguYwKK+C4m+C4o+C4sOC4quC4oeC5guC4o+C4hwor4Lib4Lij4Liw4Liq4LiwCivguJvguKPguLDguKrguLHguIEKK+C4m+C4o+C4sOC4quC4seC4meC4meC4suC4geC4suC4owor4Lib4Lij4Liw4Liq4Lix4Lii4LirLQor4Lib4Lij4Liw4Liq4Lix4Lii4Lir4LmMCivguJvguKPguLDguKrguLHguKLguKvguLLguIHguLLguKMKK+C4m+C4o+C4sOC4quC4seC4ouC4q+C4suC4p+C4q+C4suC4owor4Lib4Lij4Liw4Liq4LiyCivguJvguKPguLDguKrguLLguJcKK+C4m+C4o+C4sOC4quC4suC4ly0KK+C4m+C4o+C4sOC4quC4suC4l+C4geC4suC4owor4Lib4Lij4Liw4Liq4Liy4LiX4Lij4Li54LibCivguJvguKPguLDguKrguLLguJfguKvguKXguK3guJkKK+C4m+C4o+C4sOC4quC4suC4mOC4meC5jAor4Lib4Lij4Liw4Liq4Liy4LiZCivguJvguKPguLDguKrguLLguJnguIfguLIKK+C4m+C4o+C4sOC4quC4suC4meC5gOC4meC4o+C4oeC4tOC4lQor4Lib4Lij4Liw4Liq4Liy4LiZ4LmA4Liq4Li14Lii4LiHCivguJvguKPguLDguKrguLLguKMKK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tC0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmM4Lib4Lij4Liw4Liq4Liy4LiXCivguJvguKPguLDguKrguLTguJfguJjguLTguJzguKUKK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC4oOC4suC4ngor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmA4LihCivguJvguKPguLDguKrguLXguJvguKPguLDguKrguLIKK+C4m+C4o+C4sOC4quC4ueC4lQor4Lib4Lij4Liw4Liq4Li54LiV4Li0CivguJvguKPguLDguYDguKrguJrguLHguJnguK3guLLguIHguIcKK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kAor4Lib4Lij4Liw4LmB4Liq4Lia4Lix4LiZCivguJvguKPguLDguKvguJnguLbguYjguIcKK+C4m+C4o+C4sOC4q+C4oeC5iOC4sgor4Lib4Lij4Liw4Lir4Lii4Lix4LiUCivguJvguKPguLDguKvguKPguJPguYwKK+C4m+C4o+C4sOC4q+C4peC4suC4lAor4Lib4Lij4Liw4Lir4Lil4LmI4LizCivguJvguKPguLDguKvguKXguLTguYjguKEKK+C4m+C4o+C4sOC4q+C4p+C4seC4lAor4Lib4Lij4Liw4Lir4Lin4Lix4LmI4LiZCivguJvguKPguLDguKvguKfguYjguLIKK+C4m+C4o+C4sOC4q+C4seC4lQor4Lib4Lij4Liw4Lir4Lix4LiV4Lib4Lij4Liw4Lir4Liy4LijCivguJvguKPguLDguKvguLLguJMKK+C4m+C4o+C4sOC4q+C4suC4owor4Lib4Lij4Liw4Lir4Liy4Lij4LiK4Li14Lin4Li04LiVCivguJvguKPguLDguKvguLLguKoKK+C4m+C4o+C4sOC5gOC4q+C4pQor4Lib4Lij4Liw4LmA4Lir4LiqCivguJvguKPguLDguYDguKvguLXguKLguKUKK+C4m+C4o+C4sOC4reC4mgor4Lib4Lij4Liw4Lit4LijCivguJvguKPguLDguK3guKPguJvguKPguLDguYDguK3guLXguKLguIcKK+C4m+C4o+C4sOC4reC4tuC4hwor4Lib4Lij4Liw4Lit4Li44LiBCivguJvguKPguLDguYDguK3guLXguKLguIcKK+C4m+C4o+C4sOC5geC4reC4gQor4Lib4Lij4Liw4Liu4Liy4LihCivguJvguKPguLHguIEKK+C4m+C4o+C4seC4geC4m+C4o+C4swor4Lib4Lij4Lix4LiB4Lih4LiwCivguJvguKPguLHguIHguKvguLHguIHguJ7guLHguIcKK+C4m+C4o+C4seC4hwor4Lib4Lij4Lix4LiK4LiN4LiyCivguJvguKPguLHguJQKK+C4m+C4o+C4seC4leC4luC4iOC4o+C4tOC4ouC4sgor4Lib4Lij4Lix4LiV4Lii4LiZ4LiV4LmMCivguJvguKPguLHguJXguKLguLHguIHguKnguYwKK+C4m+C4o+C4seC4leC4ouC4seC4meC4leC5jAor4Lib4Lij4Lix4LiV4Lii4Lix4LiiCivguJvguKPguLHguJXguKLguLjguJXguJrguLHguJkKK+C4m+C4o+C4seC4leC4ouC4uOC4muC4seC4mQor4Lib4Lij4Lix4LiV4Lii4Li54LipCivguJvguKPguLHguJXguKLguLnguKvguYwKK+C4m+C4o+C4seC4leC5gOC4ouC4gQor4Lib4Lij4Lix4LiZCivguJvguKPguLHguYjguJkKK+C4m+C4o+C4seC5ieC4mQor4Lib4Lij4Lix4LiaCivguJvguKPguLHguJrguJfguLjguIHguILguYwKK+C4m+C4o+C4seC4muC5guC4l+C4qQor4Lib4Lij4Lix4Lia4Lib4Lij4Li44LiHCivguJvguKPguLHguJrguYTguKvguKEKK+C4m+C4o+C4seC4muC4reC4suC4geC4suC4qAor4Lib4Lij4Lix4Lia4Lit4Liy4Lia4Lix4LiV4Li0CivguJvguKPguLHguKHguJvguKPguLIKK+C4m+C4o+C4seC4qOC4iOC4tOC4oQor4Lib4Lij4Lix4Lio4LiZ4LiyCivguJvguKPguLHguKjguJnguLUKK+C4m+C4o+C4seC4qOC4p+C5jAor4Lib4Lij4LmI4LiyCivguJvguKPguLLguIHguI8KK+C4m+C4o+C4suC4geC4j+C4geC4suC4o+C4k+C5jAor4Lib4Lij4Liy4LiB4Lij4LihCivguJvguKPguLLguIHguKTguJUKK+C4m+C4o+C4suC4geC4suC4owor4Lib4Lij4Liy4LiE4Lig4Liy4LijCivguJvguKPguLLguITguLLguKMKK+C4m+C4o+C4suC4hwor4Lib4Lij4Liy4LiH4LiE4LmMCivguJvguKPguLLguIfguITguJPguLAKK+C4m+C4o+C4suC4h+C4hOC5jOC4m+C4o+C4sgor4Lib4Lij4Liy4LiI4Li14LiZCivguJvguKPguLLguIrguI3guYwKK+C4m+C4o+C4suC4iuC4jeC4sgor4Lib4Lij4Liy4LiK4Lix4LiiCivguJvguKPguLLguIrguLLguJvguLHguJXguKLguKfguLTguKfguLLguKvguLAKK+C4m+C4o+C4suC4iuC4tOC4lQor4Lib4Lij4Liy4LiTCivguJvguKPguLLguJPguLUKK+C4m+C4o+C4suC4lAor4Lib4Lij4Liy4LiU4LmA4Lib4Lij4Li14Lii4LinCivguJvguKPguLLguJTguYDguJvguKPguLfguYjguK3guIcKK+C4m+C4o+C4suC4leC4tOC4q+C4suC4o+C4ouC5jAor4Lib4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJvguKPguLLguJkKK+C4m+C4o+C4suC4meC4tQor4Lib4Lij4Liy4LiZ4Li14LiV4Li14LmA4Lit4Liy4LmA4Lij4Li34LitCivguJvguKPguLLguJnguLXguJvguKPguLLguKjguKPguLHguKIKK+C4m+C4o+C4suC4mgor4Lib4Lij4Liy4Lia4LiU4Liy4Lig4Li04LmA4Lip4LiBCivguJvguKPguLLguJrguJvguKPguLLguKEKK+C4m+C4o+C4suC4m+C4leC5jAor4Lib4Lij4Liy4Lig4LieCivguJvguKPguLLguKEKK+C4m+C4o+C4suC4oeC4suC4qgor4Lib4Lij4Liy4LmC4Lih4LiKCivguJvguKPguLLguYLguKHguJfguKLguYwKK+C4m+C4o+C4suC4ogor4Lib4Lij4Liy4Lij4LiW4LiZ4LiyCivguJvguKPguLLguKPguKAKK+C4m+C4o+C4suC4o+C4oeC4oOC5jAor4Lib4Lij4Liy4LioCivguJvguKPguLLguKjguIjguLLguIEKK+C4m+C4o+C4suC4qOC4o+C4seC4ogor4Lib4Lij4Liy4Lip4LiT4Li1CivguJvguKPguLLguKnguLLguJMKK+C4m+C4o+C4suC4quC4seC4ogor4Lib4Lij4Liy4Liq4Liy4LiXCivguJvguKPguLMKK+C4m+C4o+C4tC0KK+C4m+C4o+C4tOC4gQor4Lib4Lij4Li04LiB4LiC4Liy4LijCivguJvguKPguLTguIHguKPguKPguKEKK+C4m+C4o+C4tOC4geC4seC4mwor4Lib4Lij4Li04LiB4Lix4Lil4LibLQor4Lib4Lij4Li04LiB4Lix4Lil4Lib4Lih4Liy4Lil4LiyLQor4Lib4Lij4Li04LiC4LiyCivguJvguKPguLTguITguJPguKvguYwKK+C4m+C4o+C4tOC4iOC4suC4hAor4Lib4Lij4Li04LiI4Liy4Lij4Li04LiB4LiyCivguJvguKPguLTguYDguInguJcKK+C4m+C4o+C4tOC4iuC4mQor4Lib4Lij4Li04LiL4Li24LihCivguJvguKPguLTguI3guI3guLIKK+C4m+C4o+C4tOC4jeC4jeC4suC4muC4seC4leC4owor4Lib4Lij4Li04LiT4Liy4LihCivguJvguKPguLTguJPguLLguKHguLHguITguITguLQKK+C4m+C4o+C4tOC4k+C4suC4ouC4gQor4Lib4Lij4Li04LiVCivguJvguKPguLTguJUtCivguJvguKPguLTguJXguJXguLAKK+C4m+C4o+C4tOC4leC5guC4leC4l+C4gQor4Lib4Lij4Li04LiV4LiX4Lin4Li14LibCivguJvguKPguLTguJXguKLguLLguIQKK+C4m+C4o+C4tOC4leC4owor4Lib4Lij4Li04LiX4Lij4Lij4Lio4LiZ4LmMCivguJvguKPguLTguJfguLHguKLguKvguLHguITguITguLUKK+C4m+C4o+C4tOC4l+C4seC4qOC4meC5jAor4Lib4Lij4Li04LmA4LiX4LieCivguJvguKPguLTguYDguJfguJ7guJnguYwKK+C4m+C4o+C4tOC5gOC4l+C4p+C4meC4sAor4Lib4Lij4Li04LmA4LiX4Lin4LiwCivguJvguKPguLTguJnguLTguJ7guJ7guLLguJkKK+C4m+C4o+C4tOC4mgor4Lib4Lij4Li04Lib4Lix4LiZ4LiW4LmMCivguJvguKPguLTguJvguLLguIEKK+C4m+C4o+C4tOC4nuC4meC4mOC5jAor4Lib4Lij4Li04Lie4Lix4LiV4LijCivguJvguKPguLTguJ7guLHguJnguJjguYwKK+C4m+C4o+C4tOC4nuC4suC4iuC4gQor4Lib4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguJvguKPguLTguKDguLLguKkKK+C4m+C4o+C4tOC4oOC4suC4qeC4k+C5jAor4Lib4Lij4Li04Lig4Li44LiN4LiK4LmMCivguJvguKPguLTguKDguLnguKHguLQKK+C4m+C4o+C4tOC5guC4oOC4hAor4Lib4Lij4Li04LmI4LihCivguJvguKPguLTguKHguJPguJHguKUKK+C4m+C4o+C4tOC4oeC4seC4lwor4Lib4Lij4Li04Lih4Liy4LiTCivguJvguKPguLTguKHguLLguJXguKMKK+C4m+C4o+C4tOC4oi0KK+C4m+C4o+C4tOC4ouC4o+C4kwor4Lib4Lij4Li04Lii4Lin4Liy4LiXCivguJvguKPguLTguKLguKfguLLguJfguLUKK+C4m+C4o+C4tOC4ouC4seC4leC4tAor4Lib4Lij4Li04Lii4Lix4LiV4Li04LiY4Lij4Lij4LihCivguJvguKPguLTguKLguLLguJnguLjguIoKK+C4m+C4o+C4tOC4ouC4suC4ogor4Lib4Lij4Li04LmA4Lii4LioCivguJvguKPguLTguYLguKLguKrguLLguJkKK+C4m+C4o+C4tOC4p+C4o+C4o+C4lQor4Lib4Lij4Li04Lin4Lij4Lij4LiVLQor4Lib4Lij4Li04Lin4Lij4Lij4LiV4LiB4Lij4Lij4LihCivguJvguKPguLTguKfguLHguJXguKMKK+C4m+C4o+C4tOC4p+C4suC4owor4Lib4Lij4Li04Lin4Liy4LiqCivguJvguKPguLTguKfguLTguJXguIEKK+C4m+C4o+C4tOC5gOC4p+C4kwor4Lib4Lij4Li04Lio4LiZ4LiyCivguJvguKPguLTguKjguJnguLLguJjguKPguKPguKEKK+C4m+C4o+C4tOC4qOC4meC4suC4peC4suC4ouC5geC4l+C4hwor4Lib4Lij4Li04Lio4LiZ4Liy4Lit4Lix4LiB4Lip4Lij4LmE4LiC4Lin4LmJCivguJvguKPguLTguKnguIHguLLguKMKK+C4m+C4o+C4tOC4qeC4seC4lwor4Lib4Lij4Li04Liq4Lix4LiN4LiN4Li5CivguJvguKPguLTguKrguLjguJfguJjguLQKK+C4m+C4o+C4tOC4q+C4suC4mQor4Lib4Lij4Li04Lir4Liy4LijCivguJvguKPguLTguKvguLLguKoKK+C4m+C4o+C4teC5iAor4Lib4Lij4Li14LiK4LiN4LiyCivguJvguKPguLXguIrguLIKK+C4m+C4o+C4teC5iuC4lAor4Lib4Lij4Li14LiU4LiyCivguJvguKPguLXguJTguLQKK+C4m+C4o+C4teC4lOC4tOC5jAor4Lib4Lij4Li14LiU4Li1CivguJvguKPguLXguJXguLQKK+C4m+C4o+C4teC4ogor4Lib4Lij4Li14Lii4LiyCivguJvguKPguLbguIEKK+C4m+C4o+C4tuC4geC4qeC4sgor4Lib4Lij4Li24LiHCivguJvguKPguLfguK0KK+C4m+C4o+C4t+C5i+C4rQor4Lib4Lij4Li4CivguJvguKPguLjguIcKK+C4m+C4o+C4uOC5guC4m+C4o+C5iOC4hwor4Lib4Lij4Li5CivguJvguKPguLnguYsKK+C4m+C4o+C4ueC4lAor4Lib4Lij4Li54LiU4Lib4Lij4Liy4LiUCivguJvguKPguLnguYrguJTguJvguKPguYrguLLguJQKK+C4m+C4o+C4ueC5iuC4nwor4Lib4Lik4LiH4LiE4LieCivguJvguKTguIjguInguLIKK+C4m+C4pOC4iOC4ieC4suC4hOC4uOC4k+C4qOC4seC4nuC4l+C5jAor4Lib4Lik4LiI4LiJ4Liy4Liq4Lij4Lij4Lie4LiZ4Liy4LihCivguJvguKTguKnguI7guYwKK+C4m+C4pOC4qeC4juC4suC4h+C4hOC5jAor4Lib4Lik4Lip4LiQCivguJvguKXguIEKK+C4m+C4peC4geC5gOC4m+C4peC4teC5ieC4ogor4Lib4Lil4LiHCivguJvguKXguYjguIcKK+C4m+C4peC4h+C4geC4o+C4o+C4oeC4kOC4suC4mQor4Lib4Lil4LiH4LmD4LiICivguJvguKXguIfguIrguYnguLLguIcKK+C4m+C4peC4h+C4iuC4teC4p+C4tOC4lQor4Lib4Lil4LiH4LiV4LiBCivguJvguKXguIfguJjguKPguKPguKHguKrguLHguIfguYDguKfguIoKK+C4m+C4peC4h+C4mOC4uOC4o+C4sAor4Lib4Lil4LiH4Lia4Lij4Li04LiC4Liy4LijCivguJvguKXguIfguJzguKEKK+C4m+C4peC4h+C4qOC4ngor4Lib4Lil4LiH4Liq4Lix4LiH4LiC4Liy4LijCivguJvguKXguIfguKrguLHguIfguYDguKfguIoKK+C4m+C4peC4h+C4reC4meC4tOC4iOC4iOC4seC4hwor4Lib4Lil4LiH4Lit4Liy4Lia4Lix4LiV4Li0CivguJvguKXguIfguK3guLLguKLguLjguKrguLHguIfguILguLLguKMKK+C4m+C4peC4lAor4Lib4Lil4LiU4LmA4LiB4Lip4Li14Lii4LiTCivguJvguKXguJTguYDguIHguKnguLXguKLguJPguK3guLLguKLguLgKK+C4m+C4peC4lOC4l+C4uOC4geC4guC5jAor4Lib4Lil4LiU4Lib4Lil4LiHCivguJvguKXguJTguJvguKXguYjguK3guKIKK+C4m+C4peC4lOC5gOC4m+C4peC4t+C5ieC4reC4hwor4Lib4Lil4LiU4Lij4Liw4Lin4Liy4LiHCivguJvguKXguJTguKvguJnguLXguYkKK+C4m+C4peC4lOC4reC4reC4gQor4Lib4Lil4LiU4Lit4Liy4Lin4Li44LiYCivguJvguKXguJTguYHguK3guIEKK+C4m+C4peC5ieC4mQor4Lib4Lil4LmJ4LiZ4LiX4Lij4Lix4Lie4Lii4LmMCivguJvguKXguKfguIEKK+C4m+C4peC4p+C4seC4h+C4hC0KK+C4m+C4peC4reC4gQor4Lib4Lil4Lit4LiB4LiB4Lij4Liw4Liq4Li44LiZCivguJvguKXguK3guIHguITguK0KK+C4m+C4peC4reC4geC4oeC4teC4lAor4Lib4Lil4Lit4LiB4Lih4Li34LitCivguJvguKXguYjguK3guIcKK+C4m+C4peC5ieC4reC4hwor4Lib4Lil4LmJ4Lit4LiH4LiC4LiZCivguJvguKXguYnguK3guIfguInguJnguKfguJkKK+C4m+C4peC5ieC4reC4h+C5hOC4ieC4mQor4Lib4Lil4LmJ4Lit4LiH4LiX4Lit4LiHCivguJvguKXguYnguK3guIfguK3guYnguK3guKIKK+C4m+C4peC4reC4lAor4Lib4Lil4Lit4LiU4LiX4Lir4Liy4LijCivguJvguKXguK3guJTguYLguJvguKPguYjguIcKK+C4m+C4peC4reC4lOC4oOC4seC4ogor4Lib4Lil4LmJ4Lit4LiZCivguJvguKXguK3guJoKK+C4m+C4peC4reC4muC4guC4p+C4seC4jQor4Lib4Lil4Lit4Lia4LmC4Lii4LiZCivguJvguKXguK3guKEKK+C4m+C4peC4reC4oeC4m+C4mQor4Lib4Lil4Lit4Lih4LmB4Lib4Lil4LiHCivguJvguKXguYjguK3guKIKK+C4m+C4peC5iOC4reC4ouC5gOC4geC4suC4sAor4Lib4Lil4LmI4Lit4Lii4LmB4LiB4LmICivguJvguKXguYjguK3guKLguYTguIHguYgKK+C4m+C4peC5iOC4reC4ouC4guC4reC4hwor4Lib4Lil4LmI4Lit4Lii4LmD4LiICivguJvguKXguYjguK3guKLguJXguLHguKcKK+C4m+C4peC5iOC4reC4ouC4leC4seC4p+C4m+C4peC5iOC4reC4ouC5g+C4iAor4Lib4Lil4LmI4Lit4Lii4LiZ4LiB4Lib4Lil4LmI4Lit4Lii4LiB4LiyCivguJvguKXguYjguK3guKLguYDguJnguLfguYnguK3guJvguKXguYjguK3guKLguJXguLHguKcKK+C4m+C4peC5iOC4reC4ouC4m+C4peC4sOC4peC4sOC5gOC4peC4ogor4Lib4Lil4LmI4Lit4Lii4Lib4Lil4Liy4Lil4LiH4LiZ4LmJ4LizCivguJvguKXguYjguK3guKLguJvguKXguLTguIcKK+C4m+C4peC5iOC4reC4ouC4oeC4t+C4rQor4Lib4Lil4LmI4Lit4Lii4LmA4Liq4Li34Lit4LmA4LiC4LmJ4Liy4Lib4LmI4LiyCivguJvguKXguLAKK+C4m+C4peC4seC4gQor4Lib4Lil4Lix4LmK4LiBCivguJvguKXguLHguYrguIHguYTguJ8KK+C4m+C4peC4seC4hwor4Lib4Lil4Lix4LmI4LiHCivguJvguKXguLHguJQKK+C4m+C4peC4seC4lOC4guC4tOC4gQor4Lib4Lil4LiyCivguJvguKXguLLguIEKK+C4m+C4peC4suC4geC4o+C4tOC4oQor4Lib4Lil4Liy4LmA4LiB4Lil4Li34LitCivguJvguKXguLLguILguYnguK3guIfguYDguJTguLXguKLguKfguIHguLHguJkKK+C4m+C4peC4suC5gOC4hOC5h+C4oQor4Lib4Lil4Liy4LmA4LiH4Li04LiZ4Lib4Lil4Liy4LiX4Lit4LiHCivguJvguKXguLLguIjguYjguK3guKEKK+C4m+C4peC4suC4iOC4teC4mQor4Lib4Lil4Liy4LmA4LiI4LmI4LiyCivguJvguKXguLLguIrguLIKK+C4m+C4peC4suC4lOC4suC4pwor4Lib4Lil4Liy4LmB4LiU4LiBCivguJvguKXguLLguYHguJTguIcKK+C4m+C4peC4suC4lQor4Lib4Lil4Liy4LiV4LiB4LiZ4LmJ4Liz4LiV4Lix4Lin4LmC4LiVCivguJvguKXguLLguJXguLDguYDguJ7guLXguKLguJkKK+C4m+C4peC4suC4leC4tOC4lOC4q+C4peC4seC4h+C5geC4qwor4Lib4Lil4Liy4LiV4Li54LmJCivguJvguKXguLLguJfguK3guIcKK+C4m+C4peC4suC5geC4meC4oQor4Lib4Lil4Liy4LiaCivguJvguKXguLLguJrguJvguKXguLfguYnguKEKK+C4m+C4peC4suC4muC4tOC4mQor4Lib4Lil4Liy4Lid4LiyCivguJvguKXguLLguKHguYnguLMKK+C4m+C4peC4suC4ogor4Lib4Lil4Liy4Lii4LiC4LmJ4Liy4LinCivguJvguKXguLLguKLguJXguLXguJkKK+C4m+C4peC4suC4ouC4l+C4suC4hwor4Lib4Lil4Liy4Lii4LiZ4Liy4LiB4Liy4LijCivguJvguKXguLLguKLguJnguYnguLMKK+C4m+C4peC4suC4ouC4oeC4t+C4rQor4Lib4Lil4Liy4Lii4Lit4LmJ4Lit4Lib4Lil4Liy4Lii4LmB4LiC4LihCivguJvguKXguLLguKPguYnguLIKK+C4m+C4peC4suC5guC4peC4oeC4sgor4Lib4Lil4Liy4Lin4Liy4LisCivguJvguKXguLLguKrguYDguJXguK3guKPguYwKK+C4m+C4peC4suC4quC4meC4suC4geC4suC4owor4Lib4Lil4Liy4Liq4LmJ4LihCivguJvguKXguLLguKvguJnguYnguLLguJTguLTguJkKK+C4m+C4peC4suC4q+C4oeC4reC4leC4suC4ouC5gOC4nuC4o+C4suC4sOC4m+C4suC4gQor4Lib4Lil4Liy4Lir4Lih4Li24LiBCivguJvguKXguLLguYDguKvguYfguJQKK+C4m+C4peC4suC5g+C4q+C4jeC5iOC4geC4tOC4meC4m+C4peC4suC5gOC4peC5h+C4gQor4Lib4Lil4Liy4LmE4Lir4Lil4LmA4Lic4Li34Lit4LiBCivguJvguKXguYnguLMKK+C4m+C4peC5ieC4s+C4m+C4peC4uOC4gQor4Lib4Lil4LmJ4Liz4Lic4Li14Lil4Li44LiB4Lib4Lil4Li44LiB4Lic4Li14LiZ4Lix4LmI4LiHCivguJvguKXguLTguIcKK+C4m+C4peC4tOC4h+C4l+C4sOC5gOC4pQor4Lib4Lil4Li04LiUCivguJvguKXguLTguYnguJkKK+C4m+C4peC4tOC5ieC4meC4m+C4peC4reC4gQor4Lib4Lil4Li04LmJ4LiZ4Lib4Lil4LmJ4Lit4LiZCivguJvguKXguLTguYLguJ7guJgKK+C4m+C4peC4tOC4oQor4Lib4Lil4Li04LmI4LihCivguJvguKXguLTguKcKK+C4m+C4peC4tQor4Lib4Lil4Li14LiBCivguJvguKXguLXguIHguJXguLHguKcKK+C4m+C4peC4teC4geC4ouC5iOC4reC4ogor4Lib4Lil4Li14LiB4LmA4Lin4Lil4LiyCivguJvguKXguLXguYHguILguYnguIcKK+C4m+C4peC4t+C5ieC4oQor4Lib4Lil4Li44LiBCivguJvguKXguLjguIHguYPguIgKK+C4m+C4peC4uOC4geC4leC4seC4pwor4Lib4Lil4Li44LiB4Lib4Lil4LmJ4LizCivguJvguKXguLjguIHguJvguLHguYjguJkKK+C4m+C4peC4uOC4geC4nOC4tQor4Lib4Lil4Li44LiB4Lie4Lij4LiwCivguJvguKXguLjguIHguKPguLDguJTguKEKK+C4m+C4peC4uOC4geC5gOC4quC4gQor4Lib4Lil4Li54LiBCivguJvguKXguLnguIHguJ3guLHguIcKK+C4m+C4peC4ueC4geC4neC4tQor4Lib4Lil4Li54LiB4LmA4Lij4Li34Lit4LiZ4LiE4Lij4LmI4Lit4Lih4LiV4LitCivguJvguKXguLnguIHguYDguKPguLfguK3guJnguJXguLLguKHguYPguIjguJzguLnguYnguK3guKLguLnguYgKK+C4m+C4peC4ueC4geC5gOC4o+C4t+C4reC4meC4nuC4reC4leC4seC4pyDguKvguKfguLXguKvguLHguKfguJ7guK3guYDguIHguKXguYnguLIKK+C4m+C4p+C4geC5gOC4m+C4teC4ouC4gQor4Lib4Lin4LiHCivguJvguYjguKfguIcKK+C4m+C4p+C4lAor4Lib4Lin4LiU4LiW4LmI4Lin4LiHCivguJvguKfguJTguJfguYnguK3guIfguJfguLjguYjguIcKK+C4m+C4p+C4lOC4l+C5ieC4reC4h+C5gOC4muC4sgor4Lib4Lin4LiU4LiX4LmJ4Lit4LiH4LmA4Lii4Li14LmI4Lii4LinCivguJvguKfguJTguKHguKfguJkKK+C4m+C4p+C4lOC4o+C5ieC4suC4pwor4Lib4Lin4LiU4LmA4Lio4Li14Lii4Lij4LmA4Lin4Li14Lii4LiZ4LmA4LiB4Lil4LmJ4LiyCivguJvguKfguJTguYHguKrguJrguJvguKfguJTguKPguYnguK3guJkKK+C4m+C5iOC4p+C4mQor4Lib4LmJ4Lin4LiZCivguJvguYjguKfguJnguJvguLHguYjguJkKK+C4m+C5ieC4p+C4meC5gOC4m+C4teC5ieC4ouC4mQor4Lib4LmI4Lin4LiiCivguJvguYjguKfguKLguIHguKXguYjguLLguKcKK+C4m+C5iOC4p+C4ouC4geC4suC4owor4Lib4Lin4Lix4LiV4LiZLQor4Lib4Lin4Lix4LiV4LiZ4LmMCivguJvguKfguLHguJXguJnguLLguIHguLLguKMKK+C4m+C4p+C4suC4o+C4k+C4sgor4Lib4Lin4Liy4LilCivguJvguKfguLLguKoKK+C4m+C4p+C4suC4rAor4Lib4Lin4Li04LiKCivguJvguKfguLTguJXguKMKK+C4m+C4p+C4tOC4mAor4Lib4Lin4Li04LmA4Lin4LiBCivguJvguKfguLXguJMKK+C4m+C4p+C4uOC4leC4tAor4Lib4LmA4Lin4LiT4Li1CivguJvguYDguKfguKoKK+C4m+C5gOC4p+C4quC4meC5jAor4Lib4Lio4Li4CivguJvguKrguJ4KK+C4m+C4quC4seC4meC4mS0KK+C4m+C4quC4seC4meC4meC4sAor4Lib4Liq4Lix4LiZ4LiZ4Liy4LiB4Liy4LijCivguJvguKrguLHguKLguKstCivguJvguKrguLHguKLguKvguLAKK+C4m+C4quC4seC4ouC4q+C4suC4geC4suC4owor4Lib4Liq4Lix4Lii4Lir4Liy4Lin4Lir4Liy4LijCivguJvguKrguLLguJcKK+C4m+C4quC4suC4mQor4Lib4Liq4Liy4Liq4LiZ4LmMCivguJvguKrguLgKK+C4m+C4quC4uOC4lQor4Lib4Liq4Li54LiV4Li0CivguJvguKvguLHguIfguKoKK+C4m+C4q+C4seC4h+C4quC4mQor4Lib4Lir4Liy4LiZCivguJvguKvguLLguKMKK+C4m+C4q+C4suC4qgor4Lib4LitCivguJvguYnguK0KK+C4m+C5i+C4rQor4Lib4Lit4LiBCivguJvguK3guIHguIHguKXguYnguKfguKLguYDguILguYnguLLguJvguLLguIEKK+C4m+C4reC4geC4peC4reC4gQor4Lib4Lit4LiHCivguJvguYjguK3guIcKK+C4m+C5iOC4reC4h+C5hgor4Lib4LmJ4Lit4LiHCivguJvguYnguK3guIfguIHguLHguJkKK+C4m+C5iOC4reC4h+C4o+C5iOC4sgor4Lib4Lit4LiUCivguJvguK3guJTguIrguLfguYnguJkKK+C4m+C4reC4lOC4muC4p+C4oQor4Lib4Lit4LiU4LmB4Lib4LiUCivguJvguK3guJTguKXguK3guKIKK+C4m+C4reC4lOC5gOC4q+C4peC5h+C4gQor4Lib4Lit4LiZCivguJvguK3guJnguYYKK+C4m+C5ieC4reC4mQor4Lib4Lit4LiZ4LiU4LmMCivguJvguK3guYDguJnguLLguLAKK+C4m+C4reC4mgor4Lib4LmJ4Lit4LmB4Lib4LmJCivguJvguK3guKEKK+C4m+C5ieC4reC4oQor4Lib4LmJ4Lit4Lih4LmGCivguJvguYvguK3guKEKK+C4m+C4reC4oeC4guC4suC4hwor4Lib4Lit4Lih4LiC4LmI4Liy4LiHCivguJvguYnguK3guKHguJrguLHguIfguITguLHguJrguIHguLLguKMKK+C4m+C4reC4ogor4Lib4LmJ4Lit4LiiCivguJvguYnguK3guKLguK0KK+C4m+C4reC5gOC4peC4teC4ouC4h+C4neC5ieC4suC4ogor4Lib4LiwCivguJvguLDguIHguJkKK+C4m+C4sOC4geC4seC4hwor4Lib4Liw4LiB4Liy4Lib4Liw4LiB4Lix4LiHCivguJvguLDguIHguLLguKPguLHguIcKK+C4m+C4sOC4geC4swor4Lib4Liw4LiC4Liy4LinCivguJvguLDguIfguLHguJrguJvguLDguIfguYjguK3guJkKK+C4m+C4sOC4leC4suC4m+C4sgor4Lib4Liw4LiV4Liy4Lij4Liw4LiB4Liy4Lir4Lil4LiyCivguJvguLDguJXguLTguJTguJvguLDguJXguYjguK0KK+C4m+C4sOC4leC4tOC4ouC4suC4mQor4Lib4Liw4LmA4LiV4LiwCivguJvguLDguJfguLAKK+C4m+C4sOC4l+C4sOC4m+C4sOC4l+C4seC4hwor4Lib4Liw4LiX4Li4CivguJvguLDguJfguLjguJkKK+C4m+C4sOC4muC4uOC4gQor4Lib4Liw4Lib4LiZCivguJvguLDguKHguIcKK+C4m+C4sOC4o+C4suC4peC4tQor4Lib4Liw4Lij4LizCivguJvguLDguKXguK3guKEKK+C4m+C4sOC5gOC4peC4hwor4Lib4Liw4LmB4Lil4LmI4LihCivguJvguLDguYHguKXguYjguKHguYYKK+C4m+C4sOC5guC4peC4hwor4Lib4Liw4Lin4Liw4Lir4Lil4LmI4LizCivguJvguLDguKfguLDguKvguKXguLTguYjguKEKK+C4m+C4sOC4p+C5iOC4sgor4Lib4Liw4LmA4Liq4Lir4Lij4Lix4LiZ4Lit4Liy4LiB4LiHCivguJvguLDguKvguIfguLHguJoKK+C4m+C4sOC4q+C4h+C4seC4muC5hgor4Lib4Liw4Lir4LiH4Lix4Lia4Lib4Liw4LiH4LmI4Lit4LiZCivguJvguLDguKvguJnguLHguJkKK+C4m+C4sOC4q+C4oeC4seC4meC4reC4suC4q+C4ouC4tQor4Lib4Liw4Lir4Lil4Li04LmI4LihCivguJvguLDguKvguLHguIcKK+C4m+C4sOC5gOC4q+C4peC4suC4sAor4Lib4Liw4LmA4Lir4Lil4Liy4Liw4Lib4Liw4LmB4Lir4Lil4LiwCivguJvguLHguIEKK+C4m+C4seC4geC4gi0KK+C4m+C4seC4geC4guC5jAor4Lib4Lix4LiB4LiC4LiE4LiT4LiZ4LiyCivguJvguLHguIHguILguJ7guLTguKzguLLguKMKK+C4m+C4seC4geC4guC4seC4meC4lOC4owor4Lib4Lix4LiB4LmD4LiICivguJvguLHguIHguYDguJvguYnguLIKK+C4m+C4seC4geC4qS0KK+C4m+C4seC4geC4qeC5jAor4Lib4Lix4LiB4Lip4LiB4Lip4Lix4LiiCivguJvguLHguIHguKnguITguJPguJnguLIKK+C4m+C4seC4geC4qeC4hOC4oQor4Lib4Lix4LiB4Lip4LiY4LijCivguJvguLHguIHguKnguYDguKDguJcKK+C4m+C4seC4geC4qeC4p+C4suC4q+C4mQor4Lib4Lix4LiB4Lip4LiyCivguJvguLHguIHguKnguLLguJnguJTguKMKK+C4m+C4seC4geC4qeC4suC4p+C4quC4suC4mQor4Lib4Lix4LiB4Lip4Liy4Liq4Lin4Lij4Lij4LiE4LmMCivguJvguLHguIHguKnguLTguJkKK+C4m+C4seC4geC4qeC4tQor4Lib4Lix4LiB4Lir4Lil4Lix4LiBCivguJvguLHguITguKvguLAKK+C4m+C4seC4hwor4Lib4Lix4LmL4LiHCivguJvguLHguIfguKrguLjguYwKK+C4m+C4seC4h+C4quC4uOC4geC4uOC4pQor4Lib4Lix4LiI4LiI4Lix4LiV4LiV4LiwCivguJvguLHguIjguIjguLHguJXguJbguKPguJPguYwKK+C4m+C4seC4iOC4iOC4seC4meC4lS0KK+C4m+C4seC4iOC4iOC4seC4meC4leC5jAor4Lib4Lix4LiI4LiI4Lix4LiZ4LiV4LiE4Liy4LihCivguJvguLHguIjguIjguLHguJnguJXguIrguJnguJrguJcKK+C4m+C4seC4iOC4iOC4seC4meC4leC4m+C4o+C4sOC5gOC4l+C4qAor4Lib4Lix4LiI4LiI4Lix4LiiCivguJvguLHguIjguIjguLLguKHguLTguJXguKMKK+C4m+C4seC4iOC4iOC4uOC4hOC4oeC4meC5jAor4Lib4Lix4LiI4LiI4Li44LiX4LiY4Lij4LiT4LmMCivguJvguLHguIjguIjguLjguJrguLHguJkKK+C4m+C4seC4iOC4iOC4uOC4muC4seC4meC4l+C4seC4meC4lOC5iOC4p+C4mQor4Lib4Lix4LiI4LiI4Li44LiqLQor4Lib4Lix4LiI4LiI4Li44Liq4LiB4Liy4LilCivguJvguLHguIjguIjguLjguKrguKHguLHguKIKK+C4m+C4seC4iOC4iOC4ueC4qgor4Lib4Lix4LiI4LiI4Li54Lir4LiwCivguJvguLHguIjguYDguIjguIEKK+C4m+C4seC4iOC5gOC4iOC4gS0KK+C4m+C4seC4iOC5gOC4iOC4geC4muC4uOC4hOC4hOC4pQor4Lib4Lix4LiI4LmA4LiI4LiB4Lie4Li44LiX4LiY4LiwCivguJvguLHguIjguYDguIjguIHguYLguJ7guJjguLQKK+C4m+C4seC4iOC5gOC4iOC4geC4quC4oeC4suC4l+C4suC4mQor4Lib4Lix4LiI4LmC4LiI4Lib4LiB4Liy4Lij4LiB4Li04LiICivguJvguLHguIjguYLguIjguKrguIHguLLguKUKK+C4m+C4seC4iOC4ieC4sgor4Lib4Lix4LiI4LiJ4Liy4Lig4Lix4LiVCivguJvguLHguIjguInguLLguKrguKHguJPguLAKK+C4m+C4seC4iOC4ieC4tOC4oQor4Lib4Lix4LiI4LiJ4Li04LihLQor4Lib4Lix4LiI4LiJ4Li04Lih4LiK4LiZCivguJvguLHguIjguInguLTguKHguKDguLLguIQKK+C4m+C4seC4iOC4ieC4tOC4oeC4ouC4suC4oQor4Lib4Lix4LiI4LiJ4Li04Lih4Lil4Li04LiC4Li04LiVCivguJvguLHguIjguInguLTguKHguKfguLHguKIKK+C4m+C4seC4iOC4ieC4tOC4oeC4p+C4suC4iOC4sgor4Lib4Lix4LiI4LiW4Lij4LiT4LmMCivguJvguLHguIjguJnguLbguIEKK+C4m+C4seC4iOC4ouC4suC4geC4suC4owor4Lib4Lix4LiI4LmA4Lin4LiB4LiC4LiT4LmMCivguJvguLHguIrguIrguKMKK+C4m+C4seC4iuC4iuC4uOC4mQor4Lib4Lix4LiN4LiILQor4Lib4Lix4LiN4LiI4LiBCivguJvguLHguI3guIjguJnguJfguLUKK+C4m+C4seC4jeC4iOC4oS0KK+C4m+C4seC4jeC4iOC4oeC4tQor4Lib4Lix4LiN4LiI4Lih4Li14LiU4Li04LiW4Li1CivguJvguLHguI3guIjguKfguLHguITguITguLXguKLguYwKK+C4m+C4seC4jeC4iOC4p+C4teC4quC4leC4tAor4Lib4Lix4LiN4LiI4Liq4Liy4LiC4LiyCivguJvguLHguI3guI3guLHguJXguLQKK+C4m+C4seC4jeC4jeC4sgor4Lib4Lix4LiN4LiN4Liy4LmB4LiE4LmI4Lir4Liy4LiH4Lit4Li24LmI4LiHCivguJvguLHguI3guI3guLLguIrguJkKK+C4m+C4seC4jeC4jeC4suC4qi0KK+C4m+C4seC4jeC4jeC4suC4reC5iOC4reC4mQor4Lib4Lix4LiN4Lir4LiyCivguJvguLHguI3guKvguLLguYLguKXguIHguYHguJXguIEKK+C4m+C4seC4jwor4Lib4Lix4LiP4LiZ4LiwCivguJvguLHguJDguKLguLLguKfguLHguJUKK+C4m+C4seC4k+C4keC4o+C4q+C4seC4leC4luC4tQor4Lib4Lix4LiT4LiT4LiwCivguJvguLHguJPguJPguLLguKoKK+C4m+C4seC4k+C4k+C4suC4quC4geC5jAor4Lib4Lix4LiT4Lij4LiqLQor4Lib4Lix4LiT4Lij4Liq4LihLQor4Lib4Lix4LiT4Lij4Liq4Lih4Liq4Li44Lij4LiX4Li04LiZCivguJvguLHguJPguKPguKrguLUKK+C4m+C4seC4k+C4o+C4quC4teC4lOC4tOC4luC4tQor4Lib4Lix4LiT4Lir4Li0CivguJvguLHguJQKK+C4m+C4seC4lOC5hgor4Lib4Lix4LiU4LmA4LiB4Lil4LmJ4LiyCivguJvguLHguJTguILguLIKK+C4m+C4seC4lOC5geC4guC5ieC4h+C4m+C4seC4lOC4guC4sgor4Lib4Lix4LiU4LiV4Lil4Lit4LiUCivguJvguLHguJTguYTguJbguKEKK+C4m+C4seC4lOC5gOC4m+C5iOC4sgor4Lib4Lix4LiU4Lij4Lix4LiH4LiE4Lin4Liy4LiZCivguJvguLHguJTguYDguKjguKkKK+C4m+C4seC4lOC4quC4p+C4sAor4Lib4Lix4LiV4LiE4Liy4LiUCivguJvguLHguJXguJXguLAKK+C4m+C4seC4leC4leC4suC4meC4teC4geC4sAor4Lib4Lix4LiV4LiV4Liy4LiZ4Li24LiBCivguJvguLHguJXguJXguLLguJnguLjguYLguKHguJfguJnguLIKK+C4m+C4seC4leC4leC4suC5gOC4p+C4teC4ogor4Lib4Lix4LiV4LiV4Li0CivguJvguLHguJXguJXguLTguIEKK+C4m+C4seC4leC4leC4tOC4l+C4suC4mQor4Lib4Lix4LiV4LiW4LijCivguJvguLHguJXguJbguLAKK+C4m+C4seC4leC4meC4tAor4Lib4Lix4LiV4LiZ4Li1CivguJvguLHguJXguKLguLHguKIKK+C4m+C4seC4leC4q+C4peC5iOC4sgor4Lib4Lix4LiW4Lie4Li1CivguJvguLHguJbguKfguLUKK+C4m+C4seC4l+C4oS0KK+C4m+C4seC4l+C4oeC5jAor4Lib4Lix4LiX4Lih4Lib4Liy4LiT4Li1CivguJvguLHguJfguKHguKPguLLguIQKK+C4m+C4seC4l+C4oeC4o+C4suC4igor4Lib4Lix4LiX4Lih4LiwCivguJvguLHguJfguKHguLLguKrguJnguYwKK+C4m+C4seC4mQor4Lib4Lix4LmI4LiZCivguJvguLHguYnguJkKK+C4m+C4seC5ieC4meC4iOC4seC5iOC4mQor4Lib4Lix4LmJ4LiZ4LiI4Li04LmJ4Lih4Lib4Lix4LmJ4LiZ4LmA4LiI4LmL4LitCivguJvguLHguJnguIjguLjguYDguKvguKPguYfguIgKK+C4m+C4seC5ieC4meC5gOC4iOC5i+C4rQor4Lib4Lix4LmI4LiZ4Lib4LmI4Lin4LiZCivguJvguLHguYnguJnguJvguLbguYjguIcKK+C4m+C4seC5iOC4meC5geC4m+C4sAor4Lib4Lix4LmI4LiZ4Lid4LmJ4Liy4LiiCivguJvguLHguYjguJnguYTguJ8KK+C4m+C4seC5ieC4meC4ouC4qAor4Lib4Lix4LmJ4LiZ4Lil4LihCivguJvguLHguYnguJnguKXguYjguLMKK+C4m+C4seC4meC4quC5iOC4p+C4mQor4Lib4Lix4LmJ4LiZ4Liq4Li04LiaCivguJvguLHguYnguJnguKrguLXguKvguJnguYnguLIKK+C4m+C4seC5ieC4meC4q+C4ouC4sgor4Lib4Lix4LmI4LiZ4Lir4Lix4LinCivguJvguLHguYnguJnguYDguKvguJnguYjguIcKK+C4m+C4seC4mgor4Lib4Lix4LmK4LiaCivguJvguLHguJvguJzguLLguKrguLAKK+C4m+C4seC4nuC4nuC4suC4iuC4meC4sAor4Lib4Lix4Lie4Lie4Liy4LiK4LiZ4Li14Lii4LiB4Lij4Lij4LihCivguJvguLHguJ7guKDguLLguKPguLAKK+C4m+C4seC5iuC4oeC4meC5ieC4s+C4oeC4seC4mQor4Lib4Lix4Lii4LiB4LiwCivguJvguLHguKLguIHguLIKK+C4m+C4seC4ouC4ouC4tOC4geC4sgor4Lib4Lix4LmI4LinCivguJvguLHguKfguYDguJvguLXguKIKK+C4m+C4seC5ieC4p+C5gOC4m+C4teC5ieC4ogor4Lib4Lix4Lio4LiI4Li04LihCivguJvguLHguKjguJXguLHguJkKK+C4m+C4seC4qOC4leC4uQor4Lib4Lix4Liq4Liq4Liy4Lin4LiwCivguJvguLHguKrguKrguLLguKrguLAKK+C4m+C4sgor4Lib4LmI4LiyCivguJvguYnguLIKK+C4m+C4suC4gQor4Lib4Liy4LiB4LiB4LiaCivguJvguLLguIHguIHguKPguLDguIjguLHguJoKK+C4m+C4suC4geC4geC4o+C4sOC4muC4sAor4Lib4Liy4LiB4LiB4Lij4Li04LinCivguJvguLLguIHguIHguKXguYnguLIKK+C4m+C4suC4geC4geC4p+C5ieC4suC4hwor4Lib4Liy4LiB4LiB4LiyCivguJvguLLguIHguIHguLLguKXguLnguIHguKXguLfguYjguJkKK+C4m+C4suC4geC4geC4suC4q+C4oeC4tuC4geC4i+C4tuC4oQor4Lib4Liy4LiB4LiB4Liy4Lir4Lih4Li24LiB4LmB4Lir4LmJ4LiHCivguJvguLLguIHguYTguIHguYgKK+C4m+C4suC4geC4guC4oQor4Lib4Liy4LiB4LiC4LitCivguJvguLLguIHguYHguILguYfguIcKK+C4m+C4suC4geC4hOC4oQor4Lib4Liy4LiB4LiE4Lit4LiBCivguJvguLLguIHguITguK3guYDguKPguLLguLDguKPguLLguKIKK+C4m+C4suC4geC4hOC4seC4mQor4Lib4Liy4LiB4LiE4LizCivguJvguLLguIHguITguLXguJoKK+C4m+C4suC4geC4iOC4reC4mgor4Lib4Liy4LiB4LiI4Liw4LiC4Liy4LiaCivguJvguLLguIHguIjguLHguJQKK+C4m+C4suC4geC4iOC4tOC5ieC4h+C4iOC4gQor4Lib4Liy4LiB4LiJ4Lil4Liy4LihCivguJvguLLguIHguIrguYnguLLguIcKK+C4m+C4suC4geC4i+C5iOC4reC4oQor4Lib4Liy4LiB4LiV4Lil4Liy4LiUCivguJvguLLguIHguJXguYjguK3guJvguLLguIEKK+C4m+C4suC4geC4leC4sOC4geC4o+C5ieC4rQor4Lib4Liy4LiB4LiV4Liw4LmE4LiB4LijCivguJvguLLguIHguJXguLDguILguLLguJoKK+C4m+C4suC4geC4leC4s+C5geC4ogor4Lib4Liy4LiB4LmB4LiV4LijCivguJvguLLguIHguYPguJXguYkKK+C4m+C4suC4geC4meC4gQor4Lib4Liy4LiB4LiZ4LiB4LiB4Lij4Liw4LiI4Lit4LiBCivguJvguLLguIHguJnguIHguYHguIHguYnguKcKK+C4m+C4suC4geC4meC5ieC4swor4Lib4Liy4LiB4Lia4Lit4LiZCivguJvguLLguIHguJrguLLguJXguKMKK+C4m+C4suC4geC5gOC4muC4sgor4Lib4Liy4LiB4LmB4Lia4LiwCivguJvguLLguIHguJvguKPguLLguKjguKPguLHguKLguYPguIjguYDguIrguLfguK3guJTguITguK0KK+C4m+C4suC4geC4m+C4peC4sgor4Lib4Liy4LiB4Lib4Lil4Liy4Lij4LmJ4LiyCivguJvguLLguIHguJvguKXguLTguIcKK+C4m+C4suC4geC5gOC4m+C5h+C4lAor4Lib4Liy4LiB4LmA4Lib4LmH4LiZ4LiK4Lix4LiB4Lii4LiZ4LiV4LmMCivguJvguLLguIHguYDguJvguKPguLLguLAKK+C4m+C4suC4geC5gOC4m+C4o+C4suC4sOC5gOC4o+C4suC4sOC4o+C4suC4ogor4Lib4Liy4LiB4LmA4Lib4Lil4LmI4LiyCivguJvguLLguIHguYDguJvguLXguKLguIEKK+C4m+C4suC4geC5gOC4m+C4teC4ouC4geC4m+C4suC4geC5geC4ieC4sAor4Lib4Liy4LiB4LmC4Lib4LmJ4LiHCivguJvguLLguIHguYTguJvguKXguYgKK+C4m+C4suC4geC4oeC4suC4gQor4Lib4Liy4LiB4LmE4Lih4LmJCivguJvguLLguIHguYTguKHguYjguKrguLTguYnguJnguIHguKXguLTguYjguJnguJnguYnguLPguJnguKEKK+C4m+C4suC4geC4o+C4suC4gQor4Lib4Liy4LiB4Lij4LmJ4Liy4LiiCivguJvguLLguIHguYDguKPguLfguK0KK+C4m+C4suC4geC4p+C5iOC4suC4leC4suC4guC4ouC4tOC4mgor4Lib4Liy4LiB4Lin4LmI4Liy4Lih4Li34Lit4LiW4Li24LiHCivguJvguLLguIHguKrguKfguYjguLLguIcKK+C4m+C4suC4geC4q+C4meC4seC4gQor4Lib4Liy4LiB4Lir4Lin4Liy4LiZCivguJvguLLguIHguKvguKfguLLguJnguIHguYnguJnguYDguJvguKPguLXguYnguKLguKcKK+C4m+C4suC4geC4q+C4reC4ouC4m+C4suC4geC4m+C4uQor4Lib4Liy4LiB4Lir4LmI4Liy4LiHCivguJvguLLguIHguYDguKvguKLguLXguYjguKLguKfguJvguLLguIHguIHguLIKK+C4m+C4suC4geC4reC5iOC4suC4pwor4Lib4LmI4Liy4LmB4LiE4Lij4LiwCivguJvguLLguIcKK+C4m+C5iOC4suC4hwor4Lib4LmJ4Liy4LiHCivguJvguYnguLLguIfguJvguYjguLIKK+C4m+C4suC4iOC4meC4sAor4Lib4Liy4LiI4Lij4Li14Lii4LmMCivguJvguLLguIjguLLguKPguKLguYwKK+C4m+C4suC4iOC4tOC4leC4leC4teC4ouC5jAor4Lib4Liy4LiI4Li14LiZCivguJvguYjguLLguIrguYnguLIKK+C4m+C5iOC4suC4iuC4suC4ouC5gOC4peC4mQor4Lib4Liy4LiP4Lil4Li0CivguJvguLLguI/guLTguJrguJcKK+C4m+C4suC4j+C4tOC4muC4uOC4hOC4peC4tOC4gQor4Lib4Liy4LiP4Li04LmC4Lig4LiECivguJvguLLguI/guLTguKvguLLguKPguLTguKLguYwKK+C4m+C4suC4kC0KK+C4m+C4suC4kOC4gQor4Lib4Liy4LiQ4LiB4LiW4LiyCivguJvguLLguJDguLAKK+C4m+C4suC4ky0KK+C4m+C4suC4k+C4gS0KK+C4m+C4suC4k+C4geC4iuC4suC4leC4tAor4Lib4Liy4LiT4LiX4Lix4LiT4LiR4LmMCivguJvguLLguJPguJnguLLguKgKK+C4m+C4suC4k+C4oOC4ueC4lQor4Lib4Liy4LiT4Lin4Li04LiZ4Liy4LioCivguJvguLLguJPguKrguLLguKMKK+C4m+C4suC4k+C4sAor4Lib4Liy4LiT4Liy4LiV4Li04Lia4Liy4LiVCivguJvguLLguJPguLQKK+C4m+C4suC4k+C4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lib4Liy4LiT4Li04LiU4LilCivguJvguLLguJPguLTguJjguKPguKPguKEKK+C4m+C4suC4k+C4tOC4oeC4uOC4geC4leC5jAor4Lib4Liy4LiT4Li04Lih4Li54LilCivguJvguLLguJPguLUKK+C4m+C4suC4lAor4Lib4LmI4Liy4LiU4LiH4LiU4Li04LiaCivguJvguLLguJTguKvguLLguKcKK+C4m+C5iOC4suC4lOC4tOC4mgor4Lib4LmI4Liy4LmB4LiU4LiHCivguJvguLLguJXguLTguYLguKHguIHguILguYwKK+C4m+C4suC4leC4tQor4Lib4Liy4LmA4LiV4LmK4LiwCivguJvguYjguLLguYDguJbguLfguYjguK3guJkKK+C4m+C4suC4lwor4Lib4Liy4LiX4LibCivguJvguLLguJfguYjguK3guIfguYLguIHguYsKK+C4m+C4suC4l+C4seC4h+C4geC4sgor4Lib4Liy4LiX4Liy4LiZCivguJvguYjguLLguJfguLbguJoKK+C4m+C4suC4l+C4uOC4geC4sgor4Lib4Liy4LiZCivguJvguYjguLLguJkKK+C4m+C5ieC4suC4mQor4Lib4Liy4LiZ4LiB4Lil4Liy4LiHCivguJvguYjguLLguJnguITguKEKK+C4m+C4suC4meC4ieC4sOC4meC4teC5iQor4Lib4Liy4LiZ4LiU4LiHCivguJvguLLguJnguJnguLXguYkKK+C4m+C5iOC4suC4meC4meC4teC5iQor4Lib4LmJ4Liy4LiZ4Lil4LihCivguJvguLLguJnguLAKK+C4m+C4suC4meC4tOC5gOC4ouC4mQor4Lib4Liy4LiZ4Li14LiiLQor4Lib4Liy4LiZ4Li14Lii4LiwCivguJvguLLguJnguLXguYLguKLguJfguIEKK+C4m+C5ieC4suC4mgor4Lib4LmK4Liy4LiaCivguJvguYjguLLguYDguJrguI3guIjguJ7guKPguKPguJMKK+C4m+C4suC4my0KK+C4m+C4suC4m+C4oeC4uOC4lQor4Lib4Liy4Lib4Lit4Lir4Lii4Li14Liq4Lix4LiH4LiG4Liy4LiV4LiyCivguJvguYjguLLguYLguJvguKPguYjguIcKK+C4m+C5iOC4suC4nOC4peC4seC4lOC5g+C4mgor4Lib4Liy4Lie4LiI4LiZ4LmMCivguJvguYjguLLguYHguJ7guLAKK+C4m+C4suC4oQor4Lib4Liy4Lih4Lib4Li24LiH4Lih4LiyCivguJvguLLguYLguKHguIHguILguYwKK+C4m+C5iOC4suC5hOC4oeC5ieC4nuC4uOC5iOC4oQor4Lib4LmI4Liy4LiiCivguJvguYnguLLguKIKK+C4m+C5ieC4suC4ouC4quC4tQor4Lib4Liy4Lii4Liy4LiqCivguJvguLLguKMtCivguJvguLLguKPguYzguYDguIHguJXguYwKK+C4m+C4suC4o+C4hOC4uQor4Lib4Liy4Lij4Lih4Li1CivguJvguLLguKPguYDguKHguKgKK+C4m+C4suC4o+C4qeC4k+C4tQor4Lib4LmI4Liy4Lij4Liw4LiZ4Liy4LihCivguJvguLLguKPguLLguIrguLTguIEKK+C4m+C4suC4o+C4tOC4ieC4seC4leC4owor4Lib4Liy4Lij4Li04LiK4Liy4LiVCivguJvguLLguKPguLjguJvguJnguLAKK+C4m+C4suC4pQor4Lib4Liy4Lil4LmM4LihCivguJvguYjguLLguKXguLDguYDguKHguLLguLAKK+C4m+C4suC4peC4tOC5hOC4peC4ouC4geC5jAor4Lib4Liy4Lil4Li1CivguJvguYjguLLguYDguKXguJkKK+C4m+C4suC4p+C5hgor4Lib4LmI4Liy4LinCivguJvguYrguLLguKcKK+C4m+C4suC4p+C4gQor4Lib4Liy4Lin4LiI4LiZ4LiwCivguJvguYjguLLguKfguJvguKPguLDguIHguLLguKgKK+C4m+C5iOC4suC4p+C4o+C5ieC4reC4hwor4Lib4Liy4Lin4Liy4LijCivguJvguLLguKnguLLguJMKK+C4m+C4suC4qgor4Lib4Liy4Liq4Liy4LiTCivguJvguLLguKrguLLguJfguLTguIHguLAKK+C4m+C5iOC4suC4quC4ueC4hwor4Lib4LmI4Liy4LmA4Liq4LmH4LiH4LmA4LiE4Lij4LmH4LiHCivguJvguYjguLLguYPguKoKK+C4m+C4suC4q+C4meC4seC4mQor4Lib4Liy4Lir4Li14LmICivguJvguLLguKvguLjguJMKK+C4m+C4suC4q+C4uOC5hOC4k+C4oi0KK+C4m+C4suC4q+C4uOC5hOC4k+C4ouC4muC4uOC4hOC4hOC4pQor4Lib4LizCivguJvguYnguLMKK+C4m+C5ieC4s+C5gOC4m+C5ieC4rQor4Lib4LmJ4Liz4LmA4Lib4LmL4LitCivguJvguYnguLPguYYg4LmA4Lib4LmL4Lit4LmGCivguJvguLTguIHguJnguLTguIEKK+C4m+C4tOC5ieC4hwor4Lib4Li04LiH4LiE4LilLQor4Lib4Li04LiH4LiE4Lil4Lir4Lix4LiV4LiW4Li1CivguJvguLTguIfguITguKXguLAKK+C4m+C4tOC5ieC4h+C4m+C4peC4suC4m+C4o+C4sOC4iuC4lOC5geC4oeC4pwor4Lib4Li04LiH4Lib4Lit4LiHCivguJvguLTguI7guIEKK+C4m+C4tOC4j+C4kOC4sAor4Lib4Li04LiQ4Li0CivguJvguLTguJPguJHguLAKK+C4m+C4tOC4lAor4Lib4Li04LiU4LiB4Lil4LmJ4Lit4LiHCivguJvguLTguJTguITguJTguLUKK+C4m+C4tOC4lOC4hOC4p+C4seC4meC5hOC4n+C5hOC4oeC5iOC4oeC4tOC4lAor4Lib4Li04LiU4LiJ4Liy4LiBCivguJvguLTguJTguJXguLLguKIKK+C4m+C4tOC4lOC5gOC4leC5iuC4suC4sAor4Lib4Li04LiU4LiX4Lit4LiH4Lir4Lil4Lix4LiH4Lie4Lij4LiwCivguJvguLTguJTguJrguLHguIcKK+C4m+C4tOC4lOC4muC4seC4jeC4iuC4tQor4Lib4Li04LiU4LmA4Lia4LiyCivguJvguLTguJTguJvguKPguLDguJXguLnguITguYnguLIKK+C4m+C4tOC4lOC4m+C4o+C4sOC4leC4ueC4leC4teC5geC4oeC4pwor4Lib4Li04LiU4Lib4Liy4LiBCivguJvguLTguJTguKrguLPguJnguKfguJkKK+C4m+C4tOC4lOC4q+C4meC4seC4gQor4Lib4Li04LiU4Lir4Li14Lia4LmE4Lih4LmI4Lil4LiHCivguJvguLTguJXguJXguLAKK+C4m+C4tOC4leC4sgor4Lib4Li04LiV4Liy4Lih4Lir4LiwCivguJvguLTguJXguLLguKHguKvguLHguKLguIHguLIKK+C4m+C4tOC4leC4suC4oeC4q+C4seC4ouC4ouC4tOC4geC4sgor4Lib4Li04LiV4Li4CivguJvguLTguJXguLjguIbguLLguJUKK+C4m+C4tOC4leC4uOC4iOC4ieC4sgor4Lib4Li04LiV4Li44Lig4Li54Lih4Li0CivguJvguLTguJXguLjguKUKK+C4m+C4tOC4leC4uOC4peC4sgor4Lib4Li04LiV4Li44Lil4Liy4LiZ4Li1CivguJvguLTguYLguJXguKPguYDguKXguLXguKLguKEKK+C4m+C4tOC5iOC4mQor4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4LinCivguJvguLTguYjguJnguIvguYjguJkKK+C4m+C4tOC5iOC4meC4leC4rQor4Lib4Li04LmI4LiZ4LmC4LiVCivguJvguLTguJvguJzguKXguLUKK+C4m+C4tOC5iOC4oQor4Lib4Li04LmJ4LihCivguJvguLTguKItCivguJvguLTguKLguLHguIfguITguLgKK+C4m+C4tOC4peC4seC4meC4mOC4meC5jAor4Lib4Li04LmL4LinCivguJvguLTguKjguLLguIgKK+C4m+C4tOC4qOC4suC4iOC4muC4lOC4tQor4Lib4Li04Liq4Lix4LiHCivguJvguLTguYTguKoKK+C4m+C4tOC4q+C4gQor4Lib4Li04Lir4Lil4Lix4LmI4LiZCivguJvguLUKK+C4m+C4teC5iAor4Lib4Li14LmJCivguJvguLXguYsKK+C4m+C4teC4gQor4Lib4Li14LiB4LiB4Lil4LmJ4Liy4LiC4Liy4LmB4LiC4LmH4LiHCivguJvguLXguIHguIHguLIKK+C4m+C4teC4geC4hOC5ieC4suC4h+C4hOC4suC4pwor4Lib4Li14LiB4LiZ4LiBCivguJvguLXguIHguYTguKHguYkKK+C4m+C4teC4geC4peC4suC4ogor4Lib4Li14LiB4Lir4Lix4LiBCivguJvguLXguIHguLLguKPguKjguLbguIHguKnguLIKK+C4m+C4teC5iOC5geC4geC5ieC4pwor4Lib4Li14LiH4Lia4Lib4Lij4Liw4Lih4Liy4LiTCivguJvguLXguJDguIHguLAKK+C4m+C4teC4kOC4sAor4Lib4Li14LmK4LiUCivguJvguLXguJXguLQKK+C4m+C4teC4mQor4Lib4Li14LiZ4LmA4LiB4Lil4Li14Lii4LinCivguJvguLXguJoKK+C4m+C4teC5iuC4mgor4Lib4Li14Lib4LiP4Li04LiX4Li04LiZCivguJvguLXguYjguJ7guLLguJfguKLguYwKK+C4m+C4teC4oeC4sOC5guC4p+C5iQor4Lib4Li14Lio4Liy4LiICivguJvguLXguYHguKrguIcKK+C4m+C4teC4q+C4meC5ieC4suC4n+C5ieC4suC5g+C4q+C4oeC5iAor4Lib4Li14LisCivguJvguLXguKzguIEKK+C4m+C4teC4rOC4sgor4Lib4Li24LiBCivguJvguLbguIHguYHguJzguYjguJkKK+C4m+C4tuC4hwor4Lib4Li24LmI4LiHCivguJvguLbguYvguIcKK+C4m+C4tuC5iOC4h+C4iuC4sgor4Lib4Li24LiH4Lib4Lix4LiHCivguJvguLbguYnguJQKK+C4m+C4tuC4oeC4m+C4t+C5ieC4rQor4Lib4Li34LiU4Lib4Li24LiHCivguJvguLfguJkKK+C4m+C4t+C5ieC4mQor4Lib4Li34LiZ4Lii4LiyCivguJvguLfguK0KK+C4m+C4t+C5ieC4rQor4Lib4Li34LmL4LitCivguJvguLgKK+C4m+C4uOC5igor4Lib4Li44LiBCivguJvguLjguIHguJvguLjguKIKK+C4m+C4uOC4hOC4peC4sAor4Lib4Li44LmJ4LiH4LiB4Li14LmLCivguJvguLjguIfguITguJ4KK+C4m+C4uOC4h+C4hOC4p+C4sAor4Lib4Li44LiH4Lil4Li04LiH4LiE4LmMCivguJvguLjguIfguKXguLbguIfguITguYwKK+C4m+C4uOC4iOC4ieC4sgor4Lib4Li44LiPCivguJvguLjguJPguJHguKPguLTguIEKK+C4m+C4uOC4lAor4Lib4Li44LiU4LiB4Liw4Lil4LiyCivguJvguLjguJXguJXguLAKK+C4m+C4uOC4luC4uOC4iuC4mQor4Lib4Li44LiZ4LiZ4Liy4LiECivguJvguLjguJnguKDguJ4KK+C4m+C4uOC4meC4seC4nuC4nuC4quC4uQor4Lib4Li44LiZ4Lix4Lie4Liq4Li4CivguJvguLjguJoKK+C4m+C4uOC5iuC4mgor4Lib4Li44Lia4Lib4Lix4LiaCivguJvguLjguYrguJrguJvguLHguYrguJoKK+C4m+C4uOC4m+C4nOC4sAor4Lib4Li44Lib4LiwCivguJvguLjguJ7guJ4tCivguJvguLjguJ7guJ7guJzguKXguITguLjguJnguLUKK+C4m+C4uOC4nuC4nuC4nOC4peC4hOC4uOC4meC4tS0KK+C4m+C4uOC4nuC4nuC4sAor4Lib4Li44Lie4Lie4Liw4Lig4Lix4LiX4LiX4LiwCivguJvguLjguKEtCivguJvguLjguYjguKEKK+C4m+C4uOC5ieC4oQor4Lib4Li44LmL4LihCivguJvguLjguYjguKHguJvguKXguLIKK+C4m+C4uOC5iOC4oeC4m+C5iOC4swor4Lib4Li44LmJ4Lih4LmA4Lib4LmJ4LiHCivguJvguLjguYjguKHguYDguJvguLfguK3guIEKK+C4m+C4uOC5ieC4oeC5gOC4m+C4t+C4reC4gQor4Lib4Li44Lih4LiyCivguJvguLjguKIKK+C4m+C4uOC5ieC4ogor4Lib4Li44LmL4LiiCivguJvguLjguKLguIHguKPguLDguYLguJTguJkKK+C4m+C4uOC4ouC4guC4suC4pwor4Lib4Li44LmL4Lii4LiE4Lit4LiBCivguJvguLjguKLguJ3guYnguLLguKIKK+C4m+C4uOC4owor4Lib4Li44Lij4LiT4LiwCivguJvguLjguKPguJ4tCivguJvguLjguKPguJ7guJzguKXguITguLjguJnguLUKK+C4m+C4uOC4o+C4nuC4qeC4suC4kgor4Lib4Li44Lij4Liy4LiTCivguJvguLjguKPguLLguJPguLAKK+C4m+C4uOC5gOC4o+C4iOC4suC4o+C4tOC4gQor4Lib4Li44LmC4Lij4Lir4Li04LiVCivguJvguLjguKXguKXguLTguIfguITguYwKK+C4m+C4uOC4peC4peC4tuC4h+C4hOC5jAor4Lib4Li44Lil4Li04LiZ4LiX4LmMCivguJvguLjguKXguLkKK+C4m+C4uOC5guC4peC4m+C4uOC5gOC4pQor4Lib4Li44Lip4Lii4LiwCivguJvguLjguKrguKrguLAKK+C4m+C4uOC4rOC4p+C4sAor4Lib4Li5CivguJvguLnguYgKK+C4m+C4ueC5iOC4hOC4o+C4uQor4Lib4Li54LiI4LmL4LiyCivguJvguLnguYjguYDguIjguYnguLIKK+C4m+C4ueC4iuC4geC4sAor4Lib4Li54LiK4LiZ4Li14LiiLQor4Lib4Li54LiK4LiZ4Li14Lii4LiwCivguJvguLnguIrguLIKK+C4m+C4ueC4iuC4tOC4lQor4Lib4Li54LiUCivguJvguLnguJTguIHguIHguKrguYnguKHguKHguK0KK+C4m+C4ueC4leC4tAor4Lib4Li54LiV4Li04Lil4LiU4LiyCivguJvguLnguYjguJfguKfguJQKK+C4m+C4ueC4mQor4Lib4Li54LiZ4LiC4Liy4LinCivguJvguLnguJnguIvguLXguYDguKHguJnguJXguYwKK+C4m+C4ueC4meC4lOC4tOC4mgor4Lib4Li54LiZ4LmB4LiU4LiHCivguJvguLnguJnguJvguKXguLLguKrguYDguJXguK3guKPguYwKK+C4m+C4ueC4meC4m+C4seC5ieC4mQor4Lib4Li54LiZ4LmA4Lib4Li14Lii4LiBCivguJvguLnguJnguJzguLTguKcKK+C4m+C4ueC4meC5gOC4nuC4iuC4owor4Lib4Li54LiZ4LmE4LifCivguJvguLnguJnguKrguK0KK+C4m+C4ueC4meC4quC4uOC4gQor4Lib4Li54LmI4LiZ4LmJ4Lit4LiiCivguJvguLnguKEKK+C4m+C4ueC5iOC4ouC5iOC4sgor4Lib4Li54LmJ4Lii4Li14LmI4Lib4Li54LmJ4Lii4LizCivguJvguLnguKPguLAKK+C4m+C4ueC4peC4uQor4Lib4Li54LmA4LilCivguJvguLnguKfguLIKK+C4m+C4ueC5gOC4quC4ieC4p+C4mQor4LmA4Lib4LmJCivguYDguJvguYsKK+C5gOC4m+C4gQor4LmA4Lib4LmK4LiBCist4LmA4Lib4LiB4LiC4LmMCivguYDguJvguYjguIcKK+C5gOC4m+C5ieC4hwor4LmA4Lib4LmL4LiHCivguYDguJvguYfguJQKK+C5gOC4m+C5h+C4lOC4geC5iOC4sgor4LmA4Lib4LmH4LiU4LmB4LiB4LmJ4LinCivguYDguJvguYfguJTguILguLHguJnguJvguKPguLDguIrguLHguJnguYTguIHguYgKK+C5gOC4m+C5h+C4lOC4luC4mgor4LmA4Lib4LmH4LiU4LmA4LiX4LioCivguYDguJvguYfguJTguJnguYnguLMKK+C5gOC4m+C5h+C4lOC4nOC4tQor4LmA4Lib4LmH4LiU4LmE4Lif4LmB4LiU4LiHCivguYDguJvguYfguJTguKvguIfguKrguYwKK+C5gOC4m+C4lS0KK+C5gOC4m+C4leC4nuC4peC4tQor4LmA4Lib4LiV4Lin4Li04Liq4Lix4LiiCivguYDguJvguJXguK3guIcKK+C5gOC4m+C4leC4sgor4LmA4Lib4LmH4LiZCivguYDguJvguYfguJnguIHguKXguLLguIcKK+C5gOC4m+C5h+C4meC4geC4reC4hwor4LmA4Lib4LmH4LiZ4LiB4Lit4Lia4LmA4Lib4LmH4LiZ4LiB4LizCivguYDguJvguYfguJnguIHguLLguKMKK+C5gOC4m+C5h+C4meC4hOC4p+C4seC4mQor4LmA4Lib4LmH4LiZ4LiE4Lin4Liy4LihCivguYDguJvguYfguJnguITguLjguYnguIfguYDguJvguYfguJnguYHguITguKcKK+C5gOC4m+C5h+C4meC4h+C4suC4meC5gOC4m+C5h+C4meC4geC4suC4owor4LmA4Lib4LmH4LiZ4LmA4LiH4Liy4LiV4Liy4Lih4LiV4Lix4LinCivguYDguJvguYfguJnguYDguIfguLTguJnguYDguJvguYfguJnguJfguK3guIcKK+C5gOC4m+C5h+C4meC4iOC4o+C4tOC4h+C5gOC4m+C5h+C4meC4iOC4seC4hwor4LmA4Lib4LmH4LiZ4LmD4LiICivguYDguJvguYfguJnguIrguLTguYnguJnguYDguJvguYfguJnguK3guLHguJkKK+C5gOC4m+C5h+C4meC4iuC4ueC5iQor4LmA4Lib4LmH4LiZ4LiU4Lix4LmJ4LiH4Lir4LiZ4LmJ4LiyCivguYDguJvguYfguJnguYHguJTguJkKK+C5gOC4m+C5h+C4meC5g+C4lAor4LmA4Lib4LmH4LiZ4LmE4LiU4LmJCivguYDguJvguYfguJnguJXguYnguJkKK+C5gOC4m+C5h+C4meC4leC5iOC4rQor4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LmA4Lib4LmH4LiZ4LiV4LiZCivguYDguJvguYfguJnguJXguLjguYDguJvguYfguJnguJXguLAKK+C5gOC4m+C5h+C4meC4meC5ieC4swor4LmA4Lib4LmH4LiZ4LiZ4LmJ4Liz4LmA4Lib4LmH4LiZ4LiZ4Lin4LilCivguYDguJvguYfguJnguJnguYnguLPguKLguLLguYDguKLguYfguJkKK+C5gOC4m+C5h+C4meC4meC4tOC4leC4ouC5jAor4LmA4Lib4LmH4LiZ4LmA4LiZ4Li34LmJ4Lit4LmA4Lib4LmH4LiZ4LiV4Lix4LinCivguYDguJvguYfguJnguYDguJnguLfguYnguK3guYDguJvguYfguJnguKvguJnguLHguIcKK+C5gOC4m+C5h+C4meC4muC5ieC4sgor4LmA4Lib4LmH4LiZ4Lia4LmJ4Liy4LmA4Lib4LmH4LiZ4Lir4Lil4Lix4LiHCivguYDguJvguYfguJnguJvguLLguIHguYDguKrguLXguKLguIcKK+C5gOC4m+C5h+C4meC4m+C4teC5iOC5gOC4m+C5h+C4meC4guC4peC4uOC5iOC4ogor4LmA4Lib4LmH4LiZ4Lic4Li54LmJ4LmA4Lib4LmH4LiZ4LiE4LiZCivguYDguJvguYfguJnguJ3guLHguYjguIfguYDguJvguYfguJnguJ3guLIKK+C5gOC4m+C5h+C4meC4n+C4t+C4meC5gOC4m+C5h+C4meC5hOC4nwor4LmA4Lib4LmH4LiZ4LmE4LifCivguYDguJvguYfguJnguKHguLHguYjguJnguYDguJvguYfguJnguYDguKvguKHguLLguLAKK+C5gOC4m+C5h+C4meC4o+C4reC4hwor4LmA4Lib4LmH4LiZ4LmE4LijCivguYDguJvguYfguJnguKXguKHguYYKK+C5gOC4m+C5h+C4meC4peC5iOC4s+C5gOC4m+C5h+C4meC4quC4seC4mQor4LmA4Lib4LmH4LiZ4LmC4Lil4LmJ4LmA4Lib4LmH4LiZ4Lie4Liy4LiiCivguYDguJvguYfguJnguKfguKPguKPguITguYDguJvguYfguJnguYDguKfguKMKK+C5gOC4m+C5h+C4meC4q+C4meC5ieC4suC5gOC4m+C5h+C4meC4leC4sgor4LmA4Lib4LmH4LiZ4Lir4Li44LmI4LiZ4LmD4Lir4LmJ4LmA4LiK4Li04LiUCivguYDguJvguYfguJnguKvguLnguYDguJvguYfguJnguJXguLIKK+C5gOC4m+C5h+C4meC4reC4seC4mQor4LmA4Lib4LmH4LiZ4Lit4Lix4LiZ4LiC4Liy4LiUCivguYDguJvguYfguJnguK3guLHguJnguKHguLLguIEKK+C5gOC4m+C5h+C4meC5gOC4reC4hwor4LmA4Lib4Lii4Lii4Liy4LilCivguYDguJvguKMKK+C5gOC4m+C4o+C5h+C4hwor4LmA4Lib4Lij4LiVCivguYDguJvguKPguJUtCivguYDguJvguKPguJXguKfguLTguKnguLHguKIKK+C5gOC4m+C4o+C4leC4p+C4tOC4quC4seC4ogor4LmA4Lib4Lij4LihCivguYDguJvguKPguKHguJvguKPguLIKK+C5gOC4m+C4o+C4ogor4LmA4Lib4Lij4Lii4LmGCivguYDguJvguKPguKLguJvguKPguLLguKIKK+C5gOC4m+C4o+C4rQor4LmA4Lib4Lij4Lit4LiwCivguYDguJvguKPguLIKK+C5gOC4m+C4o+C4suC4sAor4LmA4Lib4Lij4Liy4Liw4LmB4Lib4Lij4LiwCivguYDguJvguKPguLLguLDguKvguK3guKEKK+C5gOC4m+C4o+C4teC4ouC4hwor4LmA4Lib4Lij4Li14LmJ4Lii4LiHCivguYDguJvguKPguLXguKLguI0KK+C5gOC4m+C4o+C4teC4ouC4mgor4LmA4Lib4Lij4Li14Lii4Lia4LmA4LiX4Li14Lii4LiaCivguYDguJvguKPguLXguKLguJrguJvguKPguLLguKIKK+C5gOC4m+C4o+C4teC4ouC4muC5gOC4m+C4o+C4ogor4LmA4Lib4Lij4Li14LmI4Lii4LihCivguYDguJvguKPguLXguKLguKcKK+C5gOC4m+C4o+C4teC5ieC4ouC4pwor4LmA4Lib4Lij4Li14LmJ4Lii4Lin4Lib4Liy4LiBCivguYDguJvguKPguLXguYnguKLguKfguKvguKfguLLguJkKK+C5gOC4m+C4o+C4teC4ouC4sAor4LmA4Lib4Lij4Li14LmK4Lii4LiwCivguYDguJvguKPguLfguYjguK3guIcKK+C5gOC4m+C4o+C4t+C5iOC4reC4h+C4m+C4o+C4suC4lAor4LmA4Lib4Lij4Li34LmJ4Lit4LiiCivguYDguJvguKUKK+C5gOC4m+C4peC5iOC4hwor4LmA4Lib4Lil4LiN4Lin4LiZCivguYDguJvguKXguKcKK+C5gOC4m+C4peC4sgor4LmA4Lib4Lil4LmI4LiyCivguYDguJvguKXguYnguLIKK+C5gOC4m+C4peC5ieC4suC4guC4peC4tOC4muC4l+C4reC4hwor4LmA4Lib4Lil4LmI4Liy4LiU4Liy4LiiCivguYDguJvguKXguLLguLAKK+C5gOC4m+C4peC4teC5ieC4ogor4LmA4Lib4Lil4Li14LmI4Lii4LiZCivguYDguJvguKXguLXguYjguKLguJnguYPguIgKK+C5gOC4m+C4peC4teC5iOC4ouC4meC4leC4seC4pwor4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHCivguYDguJvguKXguLXguYjguKLguJnguYHguJzguYjguJnguJTguLTguJkKK+C5gOC4m+C4peC4teC5iOC4ouC4meC4oeC4t+C4rQor4LmA4Lib4Lil4Li14LmI4Lii4LiZ4Lih4Li34Lit4LmE4Lih4LmI4LmE4LiU4LmJCivguYDguJvguKXguLXguYjguKLguJnguKvguJnguYnguLIKK+C5gOC4m+C4peC4teC5iOC4ouC4oQor4LmA4Lib4Lil4Li14LmI4Lii4LinCivguYDguJvguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4m+C4peC4t+C4reC4gQor4LmA4Lib4Lil4Li34Lit4LiB4LiB4Lij4Liw4LmA4LiX4Li14Lii4LihCivguYDguJvguKXguLfguK3guIHguJXguLIKK+C5gOC4m+C4peC4t+C4reC4geC5guC4peC4gQor4LmA4Lib4Lil4Li34Lit4LiHCivguYDguJvguKXguLfguYnguK3guIcKK+C5gOC4m+C4peC4t+C5ieC4reC4h+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4uOC4geC4s+C4qOC4ngor4LmA4Lib4Lil4Li34Lit4LiH4LmD4LiICivguYDguJvguKXguLfguK3guKIKK+C5gOC4m+C4peC4t+C4reC4ouC4geC4suC4ogor4LmA4Lib4LioCivguYDguJvguKjguKUKK+C5gOC4m+C4qOC4peC4oeC4seC4mOC4ouC5jAor4LmA4Lib4Lio4Lix4LiqCivguYDguJvguKjguLHguKotCivguYDguJvguKjguLHguKrguIHguLLguKPguLTguJkKK+C5gOC4m+C4qOC4seC4quC4geC4suC4o+C4tQor4LmA4Lib4Liq4LiB4Liy4LijCivguYDguJvguKrguKUKK+C5gOC4m+C4quC4uOC4jQor4LmA4Lib4Liq4Li44LiNLQor4LmA4Lib4Liq4Li44LiN4Lin4Liy4LiXCivguYDguJvguKrguLjguYTguJPguKIKK+C5gOC4m+C5i+C4rQor4LmA4Lib4LmJ4Lit4LmA4Lii4LmJ4LitCivguYDguJvguK3guKPguYzguYDguIvguYfguJnguJXguYwKK+C5gOC4m+C5i+C4reC5gOC4q+C4peC4rQor4LmA4Lib4LiwCivguYDguJvguLDguJvguLAKK+C5gOC4m+C4sgor4LmA4Lib4LmI4LiyCivguYDguJvguYnguLIKK+C5gOC4m+C5iuC4sgor4LmA4Lib4LmL4LiyCivguYDguJvguYjguLLguIHguJoKK+C5gOC4m+C5iOC4suC5geC4leC4owor4LmA4Lib4LmJ4Liy4Lib4Lij4Liw4Liq4LiH4LiE4LmMCivguYDguJvguYjguLLguJvguLXguYgKK+C5gOC4m+C5iOC4suC4neC4uOC5iOC4mQor4LmA4Lib4LmI4Liy4LmB4Lil4LmI4LiZCivguYDguJvguYnguLLguKvguKHguLLguKIKK+C5gOC4m+C5iOC4suC4q+C4peC4reC4lAor4LmA4Lib4LmI4Liy4Lir4Li5CivguYDguJvguYvguLLguK7guLfguYnguK0KK+C5gOC4m+C4suC4sAor4LmA4Lib4Liy4Liw4LmA4Lib4Li14LmK4Lii4LiwCivguYDguJvguLLguLDguYHguJvguLAKK+C5gOC4m+C4suC4sOC5gOC4q+C4peC4suC4sAor4LmA4Lib4Li04LiBCivguYDguJvguLTguIcKK+C5gOC4m+C4tOC4h+C5hgor4LmA4Lib4Li04LiH4Lih4Liy4LiHCivguYDguJvguLTguJQKK+C5gOC4m+C4tOC4lOC4geC4peC5ieC4reC4hwor4LmA4Lib4Li04LiU4LiE4LiU4Li1CivguYDguJvguLTguJTguInguLLguIEKK+C5gOC4m+C4tOC4lOC4muC4seC4jeC4iuC4tQor4LmA4Lib4Li04LiU4LmA4Lib4Li04LiHCivguYDguJvguLTguJTguYLguJvguIcKK+C5gOC4m+C4tOC4lOC5gOC4nOC4ogor4LmA4Lib4Li04LiU4LmC4Lil4LiBCivguYDguJvguLTguJTguKvguKHguKfguIHguKXguLIKK+C5gOC4m+C4tOC4lOC4q+C4oeC4p+C4geC5g+C4q+C5iQor4LmA4Lib4Li04LiU4Lir4Li54LmA4Lib4Li04LiU4LiV4LiyCivguYDguJvguLTguJTguK3guIEKK+C5gOC4m+C4tOC5iOC4mQor4LmA4Lib4Li04LiaCivguYDguJvguLTguYrguJoKK+C5gOC4m+C4tOC4muC4guC5ieC4suC4pwor4LmA4Lib4Li14LiiCivguYDguJvguLXguKLguIEKK+C5gOC4m+C4teC5iuC4ouC4gQor4LmA4Lib4Li14LmI4Lii4LihCivguYDguJvguLXguKLguKcKK+C5gOC4m+C4teC5ieC4ouC4pwor4LmA4Lib4Li14Lii4LiwCivguYDguJvguLXguYrguKLguLAKK+C5gOC4m+C4t+C4reC4gQor4LmA4Lib4Li34Lit4LiB4LiV4LihCivguYDguJvguLfguYnguK3guJkKK+C5gOC4m+C4t+C5iOC4reC4ogor4LmB4LibCivguYHguJvguYnguIcKK+C5geC4m+C5i+C4hwor4LmB4Lib4LmJ4LiH4LiC4LmJ4Liy4Lin4Liq4Liy4Lil4Li1CivguYHguJvguYnguIfguILguYnguLLguKfguKvguKHguLLguIEKK+C5geC4m+C5ieC4h+C5geC4guC5h+C4hwor4LmB4Lib4LmJ4LiH4LiI4Li14LmICivguYHguJvguYnguIfguYHguIrguYgKK+C5geC4m+C5ieC4h+C4jeC4p+C4mQor4LmB4Lib4LmJ4LiH4LiZ4Lin4LilCivguYHguJvguYnguIfguJ3guLjguYjguJkKK+C5geC4m+C5ieC4h+C4oeC4seC4mQor4LmB4Lib4LmJ4LiH4Lih4Li14LmICivguYHguJvguYnguIfguKPguYjguLMKK+C5geC4m+C5ieC4h+C4quC4lAor4LmB4Lib4LmJ4LiH4Liq4Liy4Lij4Lig4Li1CivguYHguJvguYnguIfguKrguLLguKXguLUKK+C5geC4m+C5ieC4h+C4quC4tOC4h+C4hOC5guC4m+C4o+C5jAor4LmB4Lib4LmJ4LiH4Lir4Lih4Li14LmICivguYHguJvguYnguIfguYDguKvguKXguYnguLIKK+C5geC4m+C4lAor4LmB4Lib4LmK4LiUCivguYHguJvguJTguJrguJcKK+C5geC4m+C4lOC4m+C4mQor4LmB4Lib4LiU4LmA4Lib4Li34LmJ4Lit4LiZCivguYHguJvguJTguKrguLLguYHguKvguKPguIEKK+C5geC4m+C4lOC5gOC4q+C4peC4teC5iOC4ouC4oeC5geC4m+C4lOC4hOC4oQor4LmB4Lib4LiU4LmA4Lir4Lil4Li14LmI4Lii4Lih4Liq4Li04Lia4Liq4Lit4LiH4LiE4LihCivguYHguJvguJfguLkKK+C5geC4m+C5ieC4mQor4LmB4Lib4LiaCivguYHguJvguYrguJoKK+C5geC4m+C4oQor4LmB4Lib4LijCivguYHguJvguKPguYsKK+C5geC4m+C4o+C4gQor4LmB4Lib4Lij4LiC4Lia4Lin4LiZCivguYHguJvguKPguYTguILguYkKK+C5geC4m+C4o+C4hwor4LmB4Lib4Lij4LmI4LiHCivguYHguJvguKPguIfguKXguYnguLLguIfguILguKfguJQKK+C5geC4m+C4o+C4h+C4q+C4ueC4q+C4meC4uQor4LmB4Lib4Lij4LiN4Lix4LiV4LiV4Li0CivguYHguJvguKPguYrguJQKK+C5geC4m+C4o+C4mOC4suC4leC4uAor4LmB4Lib4Lij4LmJ4LiZCivguYHguJvguKPguYnguJnguYHguJvguKPguYsKK+C5geC4m+C4o+C4m+C4o+C4p+C4mQor4LmB4Lib4Lij4Lib4Liy4LiB4Lir4Lil4Liy4LiB4LiE4LizCivguYHguJvguKPguYvguYHguJvguKPguYnguJkKK+C5geC4m+C4o+C4nOC4seC4mQor4LmB4Lib4Lij4Lic4Lix4LiZ4LmC4LiU4Lii4LiV4Lij4LiHCivguYHguJvguKPguJzguLHguJnguYHguJrguJrguJzguIHguJzguLHguJkKK+C5geC4m+C4o+C4nuC4seC4geC4leC4o+C5jAor4LmB4Lib4Lij4Lij4Li54LibCivguYHguJvguKPguK3guLHguIHguKnguKMKK+C5geC4m+C4o+C4sAor4LmB4Lib4LilCivguYHguJvguKXguYkKK+C5geC4m+C4peC4gQor4LmB4Lib4Lil4LiB4Lib4Lil4Lit4LihCivguYHguJvguKXguIcKK+C5geC4m+C4peC4h+C4iuC4suC4leC4tAor4LmB4Lib4Lil4LiH4Lic4Li1CivguYHguJvguKXguIfguKrguLHguI3guIrguLLguJXguLQKK+C5geC4m+C4peC4leC4suC4oeC5gOC4meC4t+C5ieC4reC4hOC4p+C4suC4oQor4LmB4Lib4Lil4LiV4Liy4Lih4Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguYHguJvguKXguJXguLLguKHguK3guKPguKPguJYKK+C5geC4m+C4peC4mQor4LmB4Lib4Lil4LiaCivguYHguJvguKXguKLguIHguKjguLHguJ7guJfguYwKK+C5geC4m+C4peC4o+C5ieC4reC4ogor4LmB4Lib4LmJ4LinCivguYHguJvguYrguKcKK+C5geC4m+C4sAor4LmB4Lib4LmK4LiwCivguYHguJvguYrguLDguIvguLAKK+C5guC4mwor4LmC4Lib4LmICivguYLguJvguYkKK+C5guC4m+C5igor4LmC4Lib4LiBCivguYLguJvguYrguIEKK+C5guC4m+C5iuC4geC5gOC4geC4reC4o+C5jAor4LmC4Lib4LiB4LiC4LijLQor4LmC4Lib4LiB4LiC4Lij4LiT4Li1CivguYLguJvguIHguILguKPguJ7guKPguKPguKkKK+C5guC4m+C4geC4swor4LmC4Lib4LmA4LiBCivguYLguJvguIcKK+C5guC4m+C5iOC4hwor4LmC4Lib4LmJ4LiHCivguYLguJvguYjguIfguILguYjguLLguKEKK+C5guC4m+C5iOC4h+C4lOC4tOC4mQor4LmC4Lib4LmI4LiH4LiZ4LmJ4LizCivguYLguJvguYnguIfguYDguJvguYnguIcKK+C5guC4m+C5ieC4h+C5guC4ouC5ieC4hwor4LmC4Lib4LiH4Lil4Liy4LiHCivguYLguJvguYnguIfguYLguKXguYnguIcKK+C5guC4m+C5iOC4h+C4p+C4tOC4lAor4LmC4Lib4LmJ4LiH4LmC4Lir4Lii4LiHCivguYLguJvguJDguJrguJcKK+C5guC4m+C4kOC4m+C4l+C4oeC4suC4qgor4LmC4Lib4LiU4LiBCivguYLguJvguJXguJbguIHguLAKK+C5guC4m+C4mQor4LmC4Lib4LmJ4Lib4LiUCivguYLguJvguYrguKLguYDguIvguLXguKLguJkKK+C5guC4m+C4o+C4hwor4LmC4Lib4Lij4LmI4LiHCivguYLguJvguKPguYjguIfguYDguJvguKPguYjguIcKK+C5guC4m+C4o+C5iOC4h+C4n+C5ieC4sgor4LmC4Lib4Lij4LmI4LiH4LmB4Liq4LiHCivguYLguJvguKPguYjguIfguYPguKoKK+C5guC4m+C4o+C4lAor4LmC4Lib4Lij4LiU4Lib4Lij4Liy4LiZCivguYLguJvguKPguJTguKrguLHguJXguKfguYwKK+C5guC4m+C4o+C4lOC4quC4seC4leC4p+C5jOC5hOC4lOC5ieC4muC4suC4mwor4LmC4Lib4Lij4LiV4Lit4LiZCivguYLguJvguKPguJXguLXguJkKK+C5guC4m+C4o+C5gOC4leC4quC5geC4leC4meC4leC5jAor4LmC4Lib4Lij4LiiCivguYLguJvguKPguKLguJvguKPguLLguKIKK+C5guC4m+C4o+C4teC4quC4oOC4sgor4LmC4Lib4Lil4LmI4LiHCivguYLguJvguKXguLTguYLguK0KK+C5guC4m+C4qgor4LmC4Lib4Liq4LiBCivguYLguJvguKrguLLguKfguJnguLTguIHguKHguLnguKUKK+C5guC4m+C4sAor4LmC4Lib4LmK4LiwCivguYLguJvguYrguLDguIjguYnguLLguKIKK+C5hOC4mwor4LmE4Lib4LmICivguYTguJvguYsKK+C5hOC4m+C4hOC5ieC4suC4luC5iOC4suC4mQor4LmE4Lib4LiV4Liy4Lii4LmA4Lit4Liy4LiU4Liy4Lia4Lir4LiZ4LmJ4LiyCivguYTguJvguJfguLjguYjguIcKK+C5hOC4m+C5hiDguKHguLLguYYKK+C5hOC4m+C4oi0KK+C5hOC4m+C4ouC4suC4pQor4LmE4Lib4Lij4Lip4LiT4Li14LiiLQor4LmE4Lib4Lij4Lip4LiT4Li14Lii4LmMCivguYTguJvguKPguKnguJPguLXguKLguJnguLTguYDguJfguKgKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC4muC4o+C4o+C4kwor4LmE4Lib4Lij4Lip4LiT4Li14Lii4Lia4Lix4LiV4LijCivguYTguJvguKPguKnguJPguLXguKLguKDguLHguJPguJHguYwKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC5jOC4o+C4seC4muC4o+C4reC4hwor4LmE4Lib4Lij4Lip4LiT4Li14Lii4Lin4Lix4LiV4LiW4Li4CivguYTguJvguKPguKnguJPguLXguKLguLLguIHguKMKK+C5hOC4m+C4peC5iAor4LmE4Lib4Lil4LmI4Lib4Lil4Li04LinCivguYTguJvguKXguLLguJQKK+C5hOC4m+C4p+C4seC4lOC5hOC4m+C4p+C4suC5hOC4lOC5iQor4LmE4Lib4Lio4Liy4LiICivguYTguJvguYTguKvguJnguKHguLLguKrguLLguKHguKfguLLguKrguK3guIfguKjguK3guIEKK+C5hOC4m+C4reC4ouC5iOC4suC4h+C4meC5ieC4s+C4guC4uOC5iOC4meC5hgor4LicCivguJzguIEKK+C4nOC4geC4nOC4h+C4gQor4Lic4LiB4Lic4Lix4LiZCivguJzguIHguYDguKPguLfguK3guIEKK+C4nOC4geC4sgor4Lic4LiB4Liy4LiB4Lij4Lit4LiHCivguJzguIHguLLguKIKK+C4nOC4geC4suC4o+C4suC4ogor4Lic4LiE4LihCivguJzguIcKK+C4nOC4h+C4gQor4Lic4LiH4LiC4Liy4LinCivguJzguIfguYDguILguYnguLLguJXguLLguJXguLHguKfguYDguK3guIcKK+C4nOC4h+C4hOC4peC4tQor4Lic4LiH4LiK4Li54Lij4LiqCivguJzguIfguIvguLHguIHguJ/guK3guIEKK+C4nOC4h+C4n+C4uQor4Lic4LiH4LihCivguJzguIfguKMKK+C4nOC4h+C4reC4mQor4Lic4LiH4Lit4LiaCivguJzguIfguLAKK+C4nOC4h+C4suC4lAor4Lic4LiH4LmI4Liy4LiZCivguJzguIjguIcKK+C4nOC4iOC4jQor4Lic4LiI4Lix4LiNCivguJzguIjguLLguJkKK+C4nOC4iuC4uOC4oQor4Lic4LiT4Li04LiZCivguJzguJPguLTguJnguJfguKMKK+C4nOC4k+C4tOC4meC4l+C4o+C4quC4oeC4nuC4seC4leC4quC4owor4Lic4LiT4Li04Lio4Lin4LijCivguJzguJQKK+C4nOC4lOC4uOC4hwor4Lic4LiU4Li44LiH4LiE4Lij4Lij4Lig4LmMCivguJzguYDguJTguLTguJkKK+C4nOC4l+C4oQor4Lic4LiX4Lih4LmA4Lie4Lil4Li04LiHCivguJzguJnguKfguIEKK+C4nOC4meC4p+C4igor4Lic4LiZ4Lix4LiHCivguJzguJnguLTguJQKK+C4nOC4meC4tuC4gQor4Lic4LihCivguJzguKHguIrguLTguIfguYDguIHguLTguKUKK+C4nOC4oeC4l+C4o+C4h+C4oeC4q+C4suC4lOC5hOC4l+C4ogor4Lic4Lih4LiX4Lix4LiUCivguJzguKHguJnguLLguIcKK+C4nOC4oeC4muC5iuC4reC4mgor4Lic4Lih4Lib4Li14LiBCivguJzguKHguYDguJvguYsKK+C4nOC4oeC5gOC4m+C4teC4ogor4Lic4Lih4LmC4Lib4LmI4LiHCivguJzguKHguYTguJ8KK+C4nOC4oeC4oeC4q+C4suC4lOC5hOC4l+C4ogor4Lic4Lih4Lih4LmJ4LiyCivguJzguKHguKvguKXguLHguIHguYHguIjguKcKK+C4nOC4ouC4reC4hwor4Lic4Lii4LmI4Liz4LmA4Lic4Lii4LitCivguJzguKPguJMtCivguJzguKPguJPguLLguJvguLXguJXguLQKK+C4nOC4o+C4quC4uAor4Lic4Lij4Li04LiVCivguJzguKPguLTguJUtCivguJzguKPguLjguJ7guIEKK+C4nOC4o+C4uOC4qi0KK+C4nOC4o+C4uOC4quC4p+C4suC4lwor4Lic4LilCivguJzguKXguIEKK+C4nOC4peC4hOC4uOC4mQor4Lic4Lil4LiE4Li44LiZ4Li1CivguJzguKXguITguLjguJnguLXguJrguLnguKPguJ7guKHguLLguKoKK+C4nOC4peC4hwor4Lic4Lil4Lie4Lil4Lit4Lii4LmE4LiU4LmJCivguJzguKXguKXguLHguJ7guJjguYwKK+C4nOC4peC4rQor4Lic4Lil4LmH4Lit4LiHCivguJzguKXguYfguK3guKIKK+C4nOC4peC4sAor4Lic4Lil4Lix4LiBCivguJzguKXguLHguJQKK+C4nOC4peC4seC4lOC5gOC4m+C4peC4teC5iOC4ouC4mQor4Lic4Lil4Lix4LiU4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguJzguKXguLHguJoKK+C4nOC4peC4seC4p+C4sAor4Lic4Lil4LiyCivguJzguKXguLLguI0KK+C4nOC4peC4suC4meC4tOC4quC4h+C4quC5jAor4Lic4Lil4Liy4Lic4LilCivguJzguKXguLLguKvguLLguKMKK+C4nOC4peC4tAor4Lic4Lil4Li04LiBLQor4Lic4Lil4Li04LiB4Lio4Li04LiC4Lij4Li1CivguJzguKXguLTguIHguKjguLTguKXguLIKK+C4nOC4peC4tOC4geC4sAor4Lic4Lil4Li04LiVCivguJzguKXguLTguJUtCivguJzguKXguLTguJXguIHguKPguKPguKEKK+C4nOC4peC4tOC4leC4nOC4pQor4Lic4Lil4Li04LiV4Lig4Lix4LiT4LiR4LmMCivguJzguKXguLTguJkKK+C4nOC4peC4tQor4Lic4Lil4Li14Lic4Lil4Liy4LihCivguJzguKXguLbguIEKK+C4nOC4peC4tuC5iOC4hwor4Lic4Lil4Li34LitCivguJzguKXguLgKK+C4nOC4peC4uOC4hwor4Lic4Lil4Li44LiUCivguJzguKXguLjguJkKK+C4nOC4peC4uOC4meC4nOC4peC4seC4mQor4Lic4Lil4Li44LiaCivguJzguKXguLjguJrguJzguKXguLHguJoKK+C4nOC4peC4uOC4muC5guC4nOC4peC5iAor4Lic4Lil4Li44Lia4LmGIOC5guC4nOC4peC5iOC5hgor4Lic4Lil4Li44LiiCivguJzguKXguLkKK+C4nOC4peC4ueC4muC4lAor4Lic4Lil4Li54LmB4Lia4LiBCivguJzguKfguJkKK+C4nOC4p+C4ogor4Lic4Lin4LiyCivguJzguKrguKEKK+C4nOC4quC4oeC5gOC4l+C4teC4ouC4oQor4Lic4Liq4Lih4Lic4Liq4Liy4LiZCivguJzguKrguKHguJzguYDguKoKK+C4nOC4quC4oeC4nuC4seC4meC4mOC4uOC5jAor4Lic4Liq4Lih4LmC4Lij4LiHCivguJzguKrguKHguYDguKrguKPguYfguIgKK+C4nOC4quC4suC4mQor4Lic4Liq4Liy4LiiCivguJzguKrguLLguKMKK+C4nOC4reC4gQor4Lic4Lit4LiHCivguJzguYjguK3guIcKK+C4nOC5iOC4reC4h+C5geC4nOC5ieC4pwor4Lic4LmI4Lit4LiH4LmD4LiqCivguJzguK3guJQKK+C4nOC5iOC4reC4mQor4Lic4LmI4Lit4LiZ4LiE4Lil4Liy4LiiCivguJzguYjguK3guJnguIrguLPguKPguLAKK+C4nOC5iOC4reC4meC4m+C4o+C4mQor4Lic4LmI4Lit4LiZ4Lic4Lix4LiZCivguJzguYjguK3guJnguKrguYjguIcKK+C4nOC5iOC4reC4meC4quC4seC5ieC4meC4nOC5iOC4reC4meC4ouC4suC4pwor4Lic4LmI4Lit4LiZ4Lir4LiZ4Lix4LiB4LmA4Lib4LmH4LiZ4LmA4Lia4LiyCivguJzguK3guJoKK+C4nOC4reC4oQor4Lic4Lit4Lih4LmA4LiB4Lij4LmH4LiHCivguJzguK3guKHguYLguIsKK+C4nOC4reC4oeC5geC4q+C5ieC4hwor4Lic4LmH4Lit4LiiCivguJzguYjguK3guKIKK+C4nOC4reC4p+C4lAor4Lic4Lit4Li54LiZCivguJzguLAKK+C4nOC4sOC5geC4hOC4hwor4Lic4Liw4LiU4LiyCivguJzguLDguKrguLIKK+C4nOC4sOC4reC4reC4mgor4Lic4Lix4LiBCivguJzguLHguIHguYTguIEKK+C4nOC4seC4geC4guC4p+C4hwor4Lic4Lix4LiB4LiC4Li14LmJ4LiC4Lin4LiHCivguJzguLHguIHguYLguInguKEKK+C4nOC4seC4geC4iuC4tQor4Lic4Lix4LiB4LiK4Li14LmC4Lij4Lii4Lir4LiZ4LmJ4LiyCivguJzguLHguIHguJXguJrguIrguKfguLIKK+C4nOC4seC4geC4leC5ieC4oeC4guC4meC4oeC4ouC4swor4Lic4Lix4LiB4LiX4Lit4LiU4Lii4Lit4LiUCivguJzguLHguIHguJrguLjguYnguIcKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4guC4seC4mQor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4LiI4Li14LiZCivguJzguLHguIHguJrguLjguYnguIfguJfguLDguYDguKUKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4neC4o+C4seC5iOC4hwor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4Lij4LmJ4Lin4LihCivguJzguLHguIHguJrguLjguYnguIfguKPguLHguYnguKcKK+C4nOC4seC4geC5gOC4muC4teC5ieC4ogor4Lic4Lix4LiB4LmA4Lia4Li14LmJ4Lii4LmD4Lir4LiN4LmICivguJzguLHguIHguJvguKXguLHguIcKK+C4nOC4seC4geC4m+C4uOC5iOC4oeC4m+C4peC4sgor4Lic4Lix4LiB4LmA4Lic4LmH4LiUCivguJzguLHguIHguYTguJzguYgKK+C4nOC4seC4geC4o+C4ueC5ieC4meC4reC4mQor4Lic4Lix4LiB4LmB4Lin4LmI4LiZCivguJzguLHguIHguKrguLLguJoKK+C4nOC4seC4geC4quC4suC4oeC4q+C4suC4pwor4Lic4Lix4LiB4LmA4Liq4Li14LmJ4Lii4LiZCivguJzguLHguIHguKvguJnguK3guIEKK+C4nOC4seC4geC4q+C4meC4reC4hwor4Lic4Lix4LiB4Lir4LiZ4Liy4LihCivguJzguLHguIHguKvguKfguLLguJkKK+C4nOC4seC4geC4q+C4p+C4suC4meC4muC5ieC4suC4mQor4Lic4Lix4LiB4Lir4Lin4Liy4LiZ4Lib4LmI4LiyCivguJzguLHguIHguYTguKvguKEKK+C4nOC4seC4geC4reC4teC5geC4m+C4sAor4Lic4Lix4LiE4LiE4Li44LiTCivguJzguLHguITguITguLjguJMtCivguJzguLHguITguITguLjguJPguKHguLLguKoKK+C4nOC4seC4hOC4hOC4uOC4k+C4tQor4Lic4Lix4LiHCivguJzguLHguIfguYDguKHguLfguK3guIcKK+C4nOC4seC4lAor4Lic4Lix4LiU4LmA4LiI4LmJ4Liy4Lil4LmI4LitCivguJzguLHguJTguIrguYnguLLguIcKK+C4nOC4seC4lOC4nOC5iOC4reC4mQor4Lic4Lix4LiU4Lic4Lix4LiZCivguJzguLHguJTguYDguJ7guLXguYnguKLguJkKK+C4nOC4seC4lOC4p+C4seC4meC4m+C4o+C4sOC4geC4seC4meC4nuC4o+C4uOC5iOC4hwor4Lic4Lix4LiZCivguJzguLHguJnguYHguJvguKMKK+C4nOC4seC4meC4nOC4ouC4reC4hwor4Lic4Lix4LiZ4Lic4Lin4LiZCivguJzguLHguJnguJzguYjguK3guJkKK+C4nOC4seC4meC4nOC4suC4lAor4Lic4Lix4LiZ4Lic4Liy4LiiCivguJzguLHguJnguKvguKHguYnguK0KK+C4nOC4seC4meC4reC4seC4geC4qeC4owor4Lic4Lix4LiaCivguJzguLHguJrguYYKK+C4nOC4seC4peC4hOC4uOC4meC4tQor4Lic4Lix4LinCivguJzguLHguKfguKvguLLguJrguYDguKHguLXguKLguITguK3guJkKK+C4nOC4seC4p+C4sAor4Lic4Lix4Liq4LiqLQor4Lic4Lix4Liq4Liq4LiwCivguJzguLHguKrguKrguLLguKvguLLguKMKK+C4nOC4sgor4Lic4LmI4LiyCivguJzguYnguLIKK+C4nOC4suC4gQor4Lic4Liy4LiB4LmB4Lic4LmJ4LiHCivguJzguYnguLLguIHguKPguLLguJoKK+C4nOC5ieC4suC5gOC4geC4teC5ieC4ouC4pwor4Lic4LmJ4Liy4LiC4Liy4Lin4Lih4LmJ4LiyCivguJzguYnguLLguILguLXguYnguKPguLTguYnguKcKK+C4nOC5ieC4suC4guC4teC5ieC4o+C4tOC5ieC4p+C4q+C5iOC4reC4l+C4reC4hwor4Lic4Liy4LiHCivguJzguYnguLLguYDguIrguYfguJTguJXguLHguKcKK+C4nOC5ieC4suC5gOC4iuC5h+C4lOC4q+C4meC5ieC4sgor4Lic4Liy4LiT4Li04LiVCivguJzguLLguJQKK+C4nOC4suC4lOC4nOC4seC4hwor4Lic4Liy4LiU4LmB4Lic4Lil4LiHCivguJzguLLguJTguYLguJzguJkKK+C4nOC4suC4lOC5gOC4nuC5iOC4hwor4Lic4Liy4LiU4LizCivguJzguYnguLLguJTguLMKK+C4nOC5ieC4suC4lOC4tOC4mgor4Lic4LmJ4Liy4LmB4LiU4LiHCivguJzguYnguLLguJXguLIKK+C4nOC4suC4leC4tAor4Lic4Liy4LiV4Li04LiB4Lij4Lij4LihCivguJzguYnguLLguJbguLjguIcKK+C4nOC5ieC4suC5geC4luC4mgor4Lic4LmJ4Liy4LiX4Li04Lie4Lii4LmMCivguJzguYnguLLguYDguJfguKgKK+C4nOC5iOC4suC4mQor4Lic4LmJ4Liy4LiZ4Li44LmI4LiHCivguJzguYnguLLguYPguJoKK+C4nOC5ieC4suC5g+C4muC4geC4peC4reC4ogor4Lic4LmJ4Liy4LmD4Lia4LmA4Lih4Li14LmI4Lii4LiHCivguJzguYnguLLguJvguYjguLIKK+C4nOC5ieC4suC4nOC5iOC4reC4mQor4Lic4LmI4Liy4LmA4Lic4LiiCivguJzguLLguYDguJzguLfguK3guIEKK+C4nOC5ieC4suC5geC4neC4hwor4Lic4LmJ4Liy4Lie4Lix4LiZ4LiE4LitCivguJzguYnguLLguJ7guLHguJnguYHguJzguKUKK+C4nOC5ieC4suC4nuC4t+C5ieC4mQor4Lic4Liy4LihCivguJzguYnguLLguKHguLHguJTguKvguKHguLXguYgKK+C4nOC4suC4ogor4Lic4LmI4Liy4LiiCivguJzguYnguLLguKIKK+C4nOC4suC4ouC4m+C4reC4lAor4Lic4LmI4Liy4Lii4Lic4Lit4LihCivguJzguLLguKLguJzguLHguIcKK+C4nOC4suC4ouC4nOC4seC4mQor4Lic4Liy4Lii4Lil4LihCivguJzguYnguLLguKLguLLguIcKK+C4nOC4suC4pQor4Lic4Liy4Lil4LiE4Li44LiZCivguJzguLLguKXguLIKK+C4nOC4suC4peC4suC5gOC4nuC4teC4ouC4h+C5hOC4q+C4peC5iAor4Lic4LmJ4Liy4Lil4Liy4LiiCivguJzguYnguLLguKXguLnguIHguYTguKHguYkKK+C4nOC5iOC4suC4pwor4Lic4Liy4Liq4Liy4Lih4LmA4Liq4LmJ4LiyCivguJzguYnguLLguKrguLPguKXguLUKK+C4nOC4suC4quC4uOC4gQor4Lic4LmI4Liy4Lir4Lih4Liy4LiBCivguJzguLLguKvguK3guKEKK+C4nOC5ieC4suC4q+C5ieC4reC4ouC4q+C4rQor4Lic4LmI4Liy4LmA4Lir4Lil4LmI4LiyCivguJzguYnguLLguYDguKvguKXguLfguK3guIcKK+C4nOC5ieC4suC5gOC4q+C4peC4t+C4reC4h+C4o+C5ieC4reC4mQor4Lic4LmJ4Liy4LmE4Lir4Lin4LmJCivguJzguYnguLLguK3guJnguLLguKHguLHguKIKK+C4nOC5ieC4suC4reC5ieC4reC4oQor4Lic4LmJ4Liy4Lit4Liy4LiaCivguJzguYnguLLguK7guLLguJQKK+C4nOC4swor4Lic4LmJ4Liz4LmGCivguJzguLQKK+C4nOC4tOC4hwor4Lic4Li04LiUCivguJzguLTguJTguIEKK+C4nOC4tOC4lOC5g+C4iAor4Lic4Li04LiU4LiV4LiyCivguJzguLTguJTguJfguYjguLIKK+C4nOC4tOC4lOC4meC4seC4gQor4Lic4Li04LiU4LiZ4Lix4LiUCivguJzguLTguJTguJnguYnguLMKK+C4nOC4tOC4lOC4m+C4o+C4sOC4q+C4peC4suC4lAor4Lic4Li04LiU4Lic4Li1CivguJzguLTguJTguJzguLnguYnguJzguLTguJTguITguJkKK+C4nOC4tOC4lOC5geC4nOC4gQor4Lic4Li04LiU4Lid4Liy4Lic4Li04LiU4LiV4Lix4LinCivguJzguLTguJTguJ7guYnguK3guIfguKvguKHguK3guIfguYPguIgKK+C4nOC4tOC4lOC5gOC4nuC4teC5ieC4ouC4mQor4Lic4Li04LiU4LmA4Lih4Li14LiiCivguJzguLTguJTguKPguLnguJvguJzguLTguJTguKPguYjguLLguIcKK+C4nOC4tOC4lOC4quC4seC4h+C5gOC4geC4lQor4Lic4Li04LiU4Liq4Liz4LmB4Lil4LiHCivguJzguLTguJTguYDguKrguYnguJkKK+C4nOC4tOC4lOC4q+C4p+C4seC4hwor4Lic4Li04LiU4Lir4Li5CivguJzguLTguJTguKvguLnguJzguLTguJTguJXguLIKK+C4nOC4tOC4lQor4Lic4Li04LiZCivguJzguLTguJnguKvguKXguLHguIfguYPguKvguYkKK+C4nOC4tOC4pwor4Lic4Li04Lin4LiZ4LmJ4LizCivguJzguLTguKfguJrguLLguIcKK+C4nOC4tOC4p+C4m+C4suC4gQor4Lic4Li04Lin4LmA4Lic4Li04LiZCivguJzguLTguKfguJ7guKPguKPguJMKK+C4nOC4tOC4p+C4q+C4meC4seC4hwor4Lic4Li04Lin4LmI4LiyCivguJzguLUKK+C4nOC4teC5gOC4guC5ieC4suC4nOC4teC4reC4reC4gQor4Lic4Li14LiL4LmJ4Liz4LiU4LmJ4Liz4Lie4Lil4Lit4LiiCivguJzguLXguJTguLTguJoKK+C4nOC4teC4lQor4Lic4Li14LiV4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJzguLXguJXguLLguIHguJzguYnguLLguK3guYnguK3guKEKK+C4nOC4teC4luC5ieC4p+C4ouC5geC4geC5ieC4pwor4Lic4Li14LiW4Li24LiH4Lib4LmI4Liy4LiK4LmJ4LiyCivguJzguLXguJrguYnguLLguJnguYTguKHguYjguJTguLUg4Lic4Li14Lib4LmI4Liy4LiB4LmH4Lie4Lil4Lit4LiiCivguJzguLXguJrguLjguI0KK+C4nOC4teC4nuC4uOC5iOC4h+C5hOC4leC5iQor4Lic4Li14LmA4Lie4Lil4Li14LiiCivguJzguLXguJ/guYnguLIKK+C4nOC4teC5hOC4oeC5iOC4oeC4teC4qOC4suC4pQor4Lic4Li14LmA4Lij4Li34Lit4LiZCivguJzguLXguYDguKPguLfguK3guJnguYTguKHguYjguJTguLUg4Lic4Li14Lib4LmI4Liy4LiB4LmH4Lie4Lil4Lit4LiiCivguJzguLXguYnguKfguYwKK+C4nOC4teC5gOC4quC4t+C5ieC4rQor4Lic4Li14LmA4Liq4Li34LmJ4Lit4LmA4LiH4Li04LiZCivguJzguLXguYDguKrguLfguYnguK3guJnguYnguK3guKIKK+C4nOC4teC5gOC4quC4t+C5ieC4reC4meC5ieC4swor4Lic4Li14LmA4Liq4Li34LmJ4Lit4Lii4Lix4LiB4Lip4LmMCivguJzguLXguKvguKXguK3guIEKK+C4nOC4teC4reC4swor4Lic4Li24LiHCivguJzguLbguYjguIcKK+C4nOC4tuC5ieC4hwor4Lic4Li24LmI4LiH4Lic4Liy4LiiCivguJzguLbguYnguIfguKPguKfguIcKK+C4nOC4t+C4mQor4Lic4Li34LmI4LiZCivguJzguLgKK+C4nOC4uOC4lAor4Lic4Li44LiU4Lic4LmI4Lit4LiHCivguJzguLjguJTguJzguLLguJQKK+C4nOC4uOC4lOC4nOC4suC4ogor4Lic4Li44LiU4Lic4LmJ4Liy4LiiCivguJzguLjguJTguKXguLjguIHguJzguLjguJTguJnguLHguYjguIcKK+C4nOC4uOC4ouC4nOC4hwor4Lic4Li44Liq4Lij4Liy4LiE4LiyCivguJzguLnguYkKK+C4nOC4ueC4gQor4Lic4Li54LiB4LiB4Lij4Liw4LmE4LiUCivguJzguLnguIHguILguKfguLHguI0KK+C4nOC4ueC4geC4guC4suC4lAor4Lic4Li54LiB4LiU4Lin4LiHCivguJzguLnguIHguJTguK3guIEKK+C4nOC4ueC4geC4nuC4seC4l+C4mOC4quC4teC4oeC4sgor4Lic4Li54LiB4Lie4Lix4LiZCivguJzguLnguIHguKDguLLguKnguLUKK+C4nOC4ueC4geC4oeC4seC4lAor4Lic4Li54LmJ4LiB4Lin4LmJ4Liy4LiH4LiC4Lin4Liy4LiHCivguJzguLnguIHguKvguLkKK+C4nOC4ueC5ieC4geC5iOC4reC4geC4suC4o+C4o+C5ieC4suC4ogor4Lic4Li54LmJ4LiE4LiZCivguJzguLnguYnguIjguLHguJTguIHguLLguKMKK+C4nOC4ueC5ieC4iuC4suC4ogor4Lic4Li54LmJ4LiK4Liy4Lii4Lie4Liy4Lii4LmA4Lij4Li34LitCivguJzguLnguYnguIrguLPguJnguLLguI3guIHguLLguKPguJ7guLTguYDguKjguKkKK+C4nOC4ueC5ieC5gOC4iuC4teC5iOC4ouC4p+C4iuC4suC4jQor4Lic4Li54LmJ4LiN4Liy4LiTCivguJzguLnguYnguJTguLUKK+C4nOC4ueC5ieC4lOC4teC5geC4m+C4lOC4quC4suC5geC4q+C4o+C4gQor4Lic4Li54LmJ4LmC4LiU4Lii4Liq4Liy4LijCivguJzguLnguYnguJXguYnguK3guIfguILguLHguIcKK+C4nOC4ueC5ieC4leC5ieC4reC4h+C4q+C4sgor4Lic4Li54LmJ4LiX4Lij4LiHCivguJzguLnguYnguYHguJfguJnguYDguInguJ7guLLguLDguITguJTguLUKK+C4nOC4ueC5ieC5geC4l+C4meC5guC4lOC4ouC4iuC4reC4muC4mOC4o+C4o+C4oQor4Lic4Li54LmJ4LmB4LiX4LiZ4Lij4Liy4Lip4LiO4LijCivguJzguLnguYnguYTguJfguKIKK+C4nOC4ueC5ieC4meC5ieC4reC4ogor4Lic4Li54LmJ4LmA4Lib4LmH4LiZ4Lir4Li44LmJ4LiZ4Liq4LmI4Lin4LiZCivguJzguLnguYnguJ7guLTguJfguLHguIHguKnguYzguKrguLHguJnguJXguLTguKPguLLguKnguI7guKPguYwKK+C4nOC4ueC5ieC5gOC4ouC4suC4p+C5jAor4Lic4Li54LmJ4Lij4Lix4LmJ4LiHCivguJzguLnguYnguKPguLHguJrguJvguKPguLDguIHguLHguJnguKDguLHguKIKK+C4nOC4ueC5ieC4o+C4seC4muC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lic4Li54LmJ4Lij4Lix4Lia4LmA4Lij4Li34Lit4LiZCivguJzguLnguYnguKPguLHguJrguYDguKvguKHguLLguIHguYjguK3guKrguKPguYnguLLguIcKK+C4nOC4ueC5ieC4o+C5ieC4suC4ogor4Lic4Li54LmJ4Lil4Liy4LiB4Lih4Liy4LiB4LiU4Li1CivguJzguLnguYnguKfguLTguYDguKjguKkKK+C4nOC4ueC5ieC4quC4s+C5gOC4o+C5h+C4iAor4Lic4Li54LmJ4Liq4Li34Lia4LiV4Lij4Liw4LiB4Li54LilCivguJzguLnguYnguKrguLfguJrguKrguLHguJnguJTguLLguJkKK+C4nOC4ueC5ieC4quC4t+C5iOC4reC4guC5iOC4suC4pwor4Lic4Li54LmJ4LmA4Liq4Li14Lii4Lir4Liy4LiiCivguJzguLnguYnguKvguI3guLTguIcKK+C4nOC4ueC5ieC4q+C4jeC4tOC4h+C4ouC4tOC4h+C5gOC4o+C4t+C4rQor4Lic4Li54LmJ4LmD4Lir4LiN4LmICivguJzguLnguYnguYPguKvguI3guYjguJrguYnguLLguJkKK+C4nOC4ueC5ieC4reC4meC4uOC4muC4suC4pQor4Lic4Li54LmJ4LmA4Lit4Liy4Lib4Lij4Liw4LiB4Lix4LiZ4Lig4Lix4LiiCivguYDguJwKK+C5gOC4nOC4hwor4LmA4Lic4LiK4Li04LiNCivguYDguJzguIrguLTguI3guKDguLHguKIKK+C5gOC4nOC4iuC4tOC4jeC4q+C4meC5ieC4sgor4LmA4Lic4LmH4LiUCivguYDguJzguJTguYfguIgKK+C5gOC4nOC4lOC5h+C4iOC4geC4suC4owor4LmA4Lic4LmH4LiU4Lij4LmJ4Lit4LiZCivguYDguJzguJTguLTguKEKK+C5gOC4nOC4lOC4teC4ouC4hwor4LmA4Lic4LiZLQor4LmA4Lic4LmI4LiZCivguYDguJzguJnguJjguKPguKPguKEKK+C5gOC4nOC4meC4tOC4gQor4LmA4Lic4LiiCivguYDguJzguKLguYHguJzguYgKK+C5gOC4nOC4ouC5geC4nuC4o+C5iAor4LmA4Lic4Lii4LitCivguYDguJzguKLguLTguJoKK+C5gOC4nOC4ouC4tOC4muC4nOC4ouC4suC4mgor4LmA4Lic4LilCivguYDguJzguKXguYgKK+C5gOC4nOC4peC5iQor4LmA4Lic4Lil4LmH4LiUCivguYDguJzguKXguK0KK+C5gOC4nOC4peC4reC5hOC4nOC4pQor4LmA4Lic4Lil4LiwCivguYDguJzguKXguLLguLAKK+C5gOC4nOC4peC4suC4sOC5geC4nOC4peC4sAor4LmA4Lic4Lil4Li14Lii4LiHCivguYDguJzguK3guYDguKPguK0KK+C5gOC4nOC4reC5gOC4o+C4reC4geC4o+C4sOC5gOC4iuC4reC4geC5ieC4meC4o+C4seC5iOC4pwor4LmA4Lic4Lit4Li04LiNCivguYDguJzguK3guLTguKUKK+C5gOC4nOC4sAor4LmA4Lic4LiyCivguYDguJzguYjguLIKK+C5gOC4nOC5ieC4sgor4LmA4Lic4Liy4LiC4LiZCivguYDguJzguLLguIjguKPguLTguIcKK+C5gOC4nOC5ieC4suC4nOC4hwor4LmA4Lic4LmI4Liy4Lie4Lix4LiZ4LiY4Li44LmMCivguYDguJzguLLguKvguKXguK3guIEKK+C5gOC4nOC4suC4q+C4seC4pwor4LmA4Lic4Liy4LiwCivguYDguJzguLTguYnguIcKK+C5gOC4nOC4tOC4mQor4LmA4Lic4Li04LiZ4LmGCivguYDguJzguLXguKLguJkKK+C5gOC4nOC4t+C4rQor4LmA4Lic4Li34LmI4LitCivguYDguJzguLfguK3guIEKK+C5gOC4nOC4t+C4reC4geC4geC4sOC4peC4sgor4LmA4Lic4Li34Lit4LiB4LmC4LiX4Lib4LmJ4Liy4LiUCivguYDguJzguLfguYjguK3guILguLLguJTguYDguJzguLfguYjguK3guYDguKvguKXguLfguK0KK+C5gOC4nOC4t+C4reC4lAor4LmA4Lic4Li34Lit4LiZCivguYDguJzguLfguYjguK3guJkKK+C5gOC4nOC4t+C5iOC4reC5geC4nOC5iAor4LmA4Lic4Li34LmI4Lit4Lin4LmI4LiyCivguYDguJzguLfguYjguK3guYDguKvguJnguLXguKLguKcKK+C5gOC4nOC4t+C5iOC4reC5gOC4q+C4peC4t+C4reC5gOC4nOC4t+C5iOC4reC4guC4suC4lAor4LmB4Lic4LmICivguYHguJzguIEKK+C5geC4nOC5iOC4geC4o+C4sOC4iOC4suC4lAor4LmB4Lic4LiHCivguYHguJzguIfguITguK0KK+C5geC4nOC4h+C4peC4reC4ogor4LmB4Lic4LmI4LmB4LiH4LmICivguYHguJzguYjguIvguYjguLLguJkKK+C5geC4nOC4lAor4LmB4Lic4LmI4LiV4LiZCivguYHguJzguJkKK+C5geC4nOC5iOC4mQor4LmB4Lic4LiZ4LiBCivguYHguJzguJnguIHguLLguKMKK+C5geC4nOC4meC4h+C4suC4mQor4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguYHguJzguYjguJnguJTguLTguJnguIHguKXguJrguKvguJnguYnguLIKK+C5geC4nOC5iOC4meC4lOC4tOC4meC5hOC4q+C4pwor4LmB4Lic4LiZ4LiX4Li14LmICivguYHguJzguYjguJnguJzguIfguK3guJkKK+C5geC4nOC4meC4nOC4seC4hwor4LmB4Lic4LmI4LiZ4Lie4LiBCivguYHguJzguYjguJnguKDguJ4KK+C5geC4nOC4meC4oOC4suC4ngor4LmB4Lic4LiZ4Lig4Li54Lih4Li0CivguYHguJzguYjguJnguYDguKrguLXguKLguIcKK+C5geC4nOC5iOC5gOC4nOC4t+C5iOC4rQor4LmB4Lic4LmI4LmA4Lih4LiV4LiV4LiyCivguYHguJzguKUKK+C5geC4nOC4peC5gOC4geC5iOC4sgor4LmB4Lic4Lil4LiHCivguYHguJzguKXguIfguKTguJfguJjguLTguYwKK+C5geC4nOC4peC5h+C4mgor4LmB4Lic4Lil4LmH4Lia4LmGCivguYHguJzguKXguYDguJvguYfguJkKK+C5geC4nOC4peC4o+C4tOC4oeC5geC4guC5h+C4hwor4LmB4Lic4Lil4Lij4Li04Lih4Lit4LmI4Lit4LiZCivguYHguJzguKXguYfguKcKK+C5geC4nOC4peC4sAor4LmB4Lic4LmI4LinCivguYHguJzguYjguKfguYYKK+C5geC4nOC5ieC4pwor4LmB4Lic4LmJ4Lin4Lie4Liy4LiZCivguYHguJzguYjguKrguK3guIfguKrguKXguLbguIcKK+C5geC4nOC5iOC4q+C4peC4sgor4LmB4Lic4LmI4Lit4Liz4LiZ4Liy4LiICivguYLguJwKK+C5guC4nOC4hwor4LmC4Lic4LiH4Lic4Liy4LiHCivguYLguJzguIfguYDguJzguIcKK+C5guC4nOC4j+C4kOC4seC4ni0KK+C5guC4nOC4j+C4kOC4seC4nuC4mOC4o+C4o+C4oQor4LmC4Lic4LiP4LiQ4Lix4Lie4Lie4LiwCivguYLguJzguJkKK+C5guC4nOC5gOC4nAor4LmC4Lic4LiiCivguYLguJzguKXguYgKK+C5guC4nOC4peC4geC5gOC4nOC4peC4gQor4LmC4Lic4Lil4LiwCivguYLguJzguK3guJkKK+C5guC4nOC4sAor4LmE4LicCivguYTguJzguYgKK+C5hOC4nOC4lwor4LmE4Lic4LiX4LmC4LiB4Lij4LihCivguYTguJzguYjguJzguLHguIcKK+C4nQor4Lid4LiZCivguJ3guJnguIrguLDguIrguYjguK3guKHguLDguKHguYjguKfguIcKK+C4neC4meC4iuC4sOC4peC4suC4mQor4Lid4LiZ4LiL4Li54LmICivguJ3guJnguJXguIHguIHguYfguYHguIrguYjguIcg4Lid4LiZ4LmB4Lil4LmJ4LiH4LiB4LmH4LiU4LmI4LiyCivguJ3guJnguJXguIHguILguLXguYnguKvguKHguLnguYTguKvguKUKK+C4neC4meC4leC4geC5hOC4oeC5iOC4l+C4seC5iOC4p+C4n+C5ieC4sgor4Lid4LiZ4LiV4LiB4LmE4Lih4LmI4Lih4Li14LmA4LiE4LmJ4LiyCivguJ3guJnguJXguIHguK3guKLguYjguLLguYDguIrguLfguYjguK3guJTguLLguKcKK+C4neC4meC4l+C4reC4hwor4Lid4LiZ4LiX4Lix4LmI4LiH4LmD4Lir4LmJ4LmA4Lib4LmH4LiZ4LmA4LiC4LmH4LihCivguJ3guJnguYDguJfguLXguKLguKEKK+C4neC4meC5hOC4peC5iOC4iuC5ieC4suC4hwor4Lid4LiZ4Liq4Lix4LmI4LiH4Lif4LmJ4LiyCivguJ3guJnguKrguLHguYjguIfguJ/guYnguLIg4Lib4Lil4Liy4Liq4Lix4LmI4LiH4Lir4LiZ4Lit4LiHCivguJ3guJnguYHguKrguJnguKvguYjguLIKK+C4neC4meC4q+C5iOC4suC5geC4geC5ieC4pwor4Lid4Lij4Lix4LmI4LiHCivguJ3guKPguLHguYjguIfguIHguLHguIfguYTguKoKK+C4neC4o+C4seC5iOC4h+C4guC4teC5ieC4meC4gQor4Lid4Lij4Lix4LmI4LiH4Lih4Lix4LiH4LiE4LmI4LiyCivguJ3guKPguLHguYjguIfguYDguKjguKoKK+C4neC5iOC4rQor4Lid4Lit4LiiCivguJ3guK3guKLguJfguK3guIcKK+C4neC4seC4gQor4Lid4Lix4LiB4LmB4LiECivguJ3guLHguIHguJbguLHguYjguKcKK+C4neC4seC4geC4muC4seC4pwor4Lid4Lix4LiB4Lid4LmI4Liy4LiiCivguJ3guLHguIHguYPguJ3guYgKK+C4neC4seC4geC4nuC4o+C5ieC4sgor4Lid4Lix4LiB4LmA4Lie4LiB4LiyCivguJ3guLHguIHguKHguLDguILguLLguKEKK+C4neC4seC4geC4ouC4suC4pwor4Lid4Lix4LiHCivguJ3guLHguYjguIcKK+C4neC4seC4h+C5gOC4guC5h+C4oQor4Lid4Lix4LiH4LmD4LiICivguJ3guLHguYjguIfguJ3guLIKK+C4neC4seC4h+C4o+C4geC4neC4seC4h+C4o+C4suC4gQor4Lid4Lix4LiH4Lij4Lit4LiiCivguJ3guLHguIfguKPguLnguJsKK+C4neC4seC4h+C4q+C4seC4pwor4Lid4Lix4LiUCivguJ3guLHguJkKK+C4neC4seC4meC4geC4peC4suC4h+C4p+C4seC4mQor4Lid4Lix4LiZ4LmA4Lib4Li14Lii4LiBCivguJ3guLHguJnguYDguJ/guLfguYjguK3guIcKK+C4neC4sgor4Lid4LmI4LiyCivguJ3guYnguLIKK+C4neC4suC4gQor4Lid4Liy4LiB4LiB4Lit4LiHCivguJ3guLLguIHguIHguLLguKIKK+C4neC4suC4geC5hOC4guC5iQor4Lid4Liy4LiB4LiE4Lij4Lij4Lig4LmMCivguJ3guLLguIHguJXguLHguKcKK+C4neC4suC4geC4l+C5ieC4reC4hwor4Lid4Liy4LiB4LmA4LiZ4Li34LmJ4Lit4Lid4Liy4LiB4LiV4Lix4LinCivguJ3guLLguIHguYDguJnguLfguYnguK3guYTguKfguYnguIHguLHguJrguYDguKrguLfguK0KK+C4neC4suC4geC4muC4s+C5gOC4o+C4rQor4Lid4Liy4LiB4Lib4Lij4Liw4LiI4LizCivguJ3guLLguIHguJvguKXguLLguYTguKfguYnguIHguLHguJrguYHguKHguKcKK+C4neC4suC4geC4nOC4tQor4Lid4Liy4LiB4Lic4Li14Lid4Liy4LiB4LmE4LiC4LmJCivguJ3guLLguIHguYDguJzguLfguYjguK3guYDguKPguLXguKLguIEKK+C4neC4suC4geC4neC4seC4hwor4Lid4Liy4LiB4Lij4Liw4LiU4Liy4LiZCivguJ3guLLguIHguYLguKPguIfguYDguKPguLXguKLguJkKK+C4neC4suC4geC5hOC4p+C5ieC4geC5iOC4reC4mQor4Lid4Liy4LiB4Liq4Li54LmICivguJ3guYjguLLguITguKHguKvguK3guIHguITguKHguJTguLLguJoKK+C4neC4suC4hwor4Lid4Liy4LiK4Li1CivguJ3guLLguJQKK+C4neC4suC4mQor4Lid4LmI4Liy4Lid4Li34LiZCivguJ3guLLguYHguJ3guJQKK+C4neC5iOC4suC4nuC4o+C4sOC4muC4suC4lwor4Lid4LmI4Liy4Lif4Lix4LiZCivguJ3guYjguLLguKHguKPguKrguLjguKEKK+C4neC4suC4ogor4Lid4LmI4Liy4LiiCivguJ3guYnguLLguKIKK+C4neC5iOC4suC4ouC4guC4p+C4sgor4Lid4LmI4Liy4Lii4LiE4LmJ4Liy4LiZCivguJ3guYnguLLguKLguITguLMKK+C4neC5iOC4suC4ouC4i+C5ieC4suC4ogor4Lid4LmI4Liy4Lii4LmD4LiZCivguJ3guYjguLLguKLguYDguJvguYfguJnguIHguKXguLLguIcKK+C4neC5ieC4suC4ouC4nOC4tQor4Lid4LmI4Liy4Lii4LmA4Liq4LiZ4LitCivguJ3guYjguLLguKLguKvguJnguYnguLIKK+C4neC4suC4peC4sOC4oeC4tQor4Lid4Liy4Liq4Liy4Lii4Lia4Lix4LinCivguJ3guLLguKrguLPguKvguKPguKfguJQKK+C4neC4suC5gOC4quC4teC5ieC4ouC4pwor4Lid4Liy4Lir4Lit4Lii4LmC4LiC4LmI4LiHCivguJ3guLLguKvguLjguYnguKHguIHguKXguK3guIcKK+C4neC4suC5hOC4q+C4pQor4Lid4Li04LmI4LiZCivguJ3guLTguYjguJnguJXguYnguJkKK+C4neC4tQor4Lid4Li14LmICivguJ3guLXguIEKK+C4neC4teC4geC4suC4rAor4Lid4Li14LiI4Lix4LiBCivguJ3guLXguIjguLHguIHguKMKK+C4neC4teC4lOC4suC4qQor4Lid4Li14LiU4Li04LiaCivguJ3guLXguYDguJfguYnguLIKK+C4neC4teC5g+C4meC4l+C5ieC4reC4hwor4Lid4Li14Lib4Liy4LiBCivguJ3guLXguJ7guLLguKIKK+C4neC4teC4oeC4sOC4oeC5iOC4p+C4hwor4Lid4Li14Lih4Li34LitCivguJ3guLXguYTguKHguYnguKXguLLguKLguKHguLfguK0KK+C4neC4teC5gOC4ouC5h+C4mgor4Lid4Li14Lir4Lih4Lit4LiaCivguJ3guLbguIEKK+C4neC4tuC4geC4h+C4suC4mQor4Lid4Li24LiB4Lib4Lij4Li34LitCivguJ3guLbguIHguJ3guJkKK+C4neC4tuC4geC4quC4reC4mQor4Lid4Li24LiB4Lir4Lix4LiUCivguJ3guLfguJQKK+C4neC4t+C4lOC5gOC4hOC4t+C4reC4hwor4Lid4Li34LiZCivguJ3guLfguJnguJfguYnguK3guIcKK+C4neC4uOC5iOC4mQor4Lid4Li44LmI4LiZ4LmA4Lih4Li34Lit4LiHCivguJ3guLnguIcKK+C4neC4ueC4h+C4muC4tOC4mQor4LmA4Lid4LmJ4LiyCivguYDguJ3guYnguLLguYTguILguYkKK+C5gOC4neC5ieC4suC4hOC4reC4ogor4LmA4Lid4LmJ4Liy4LmB4Lir4LiZCivguYDguJ3guLfguK0KK+C5gOC4neC4t+C4reC4gQor4LmA4Lid4Li34Lit4LiHCivguYDguJ3guLfguYjguK3guJkKK+C5geC4neC4gQor4LmB4Lid4LiB4Lir4Lit4LihCivguYHguJ3guIcKK+C5geC4neC4lAor4LmB4Lid4LiU4LiZ4LmJ4LizCivguYHguJ3guJTguYDguKXguLfguK3guJQKK+C5g+C4neC5iAor4LmD4Lid4LmI4LmD4LiICivguYPguJ3guYjguJXguYjguLMKK+C5g+C4neC5iOC4neC4seC4mQor4LmD4Lid4LmI4Lij4LmJ4Lit4LiZ4LiI4Liw4LiZ4Lit4LiZ4LmA4Lii4LmH4LiZIOC5g+C4neC5iOC5gOC4ouC5h+C4meC4iOC4sOC4lOC4tOC5ieC4meC4leC4suC4ogor4LmD4Lid4LmI4Liq4Li54LiHCivguYPguJ3guYjguKrguLnguIfguIjguJnguYDguIHguLTguJnguKjguLHguIHguJTguLTguYwKK+C5g+C4neC5iOC4quC4ueC4h+C5g+C4q+C5ieC5gOC4geC4tOC4meC4qOC4seC4geC4lOC4tOC5jAor4LmE4LidCivguJ4KK+C4nuC4gQor4Lie4LiB4LiI4LijCivguJ7guIHguJnguLjguYjguJkKK+C4nuC4geC4nuC5iOC4suC4ogor4Lie4LiB4Lil4LihCivguJ7guIHguKvguLTguJkKK+C4nuC4geC4sgor4Lie4LiB4Li44Lij4LiwCivguJ7guIHguLjguKUKK+C4nuC4hwor4Lie4LiH4Lie4Li1CivguJ7guIfguKgtCivguJ7guIfguKjguYwKK+C4nuC4h+C4qOC4geC4owor4Lie4LiH4Lio4LiY4LijCivguJ7guIfguKjguYzguJ7guLHguJnguJjguLjguYwKK+C4nuC4h+C4qOC4sgor4Lie4LiH4Lio4Liy4Lin4LiU4Liy4LijCivguJ7guIfguKjguLLguKfguKXguLUKK+C4nuC4iOC4mS0KK+C4nuC4iOC4meC5jAor4Lie4LiI4LiZ4LiyCivguJ7guIjguJnguLLguJnguLjguIHguKPguKEKK+C4nuC4iOC4meC4suC4o+C4lgor4Lie4LiI4LiZ4Li14Lii4LmMCivguJ7guIjguKHguLLguJkKK+C4nuC4iOC4tQor4Lie4LiK4Lij4LiwCivguJ7guI3guLIKK+C4nuC4jeC4suC4geC4suC4quC4seC4gQor4Lie4LiN4Liy4LiC4Liy4Lih4Lib4LmJ4Lit4LihCivguJ7guI3guLLguInguLHguJfguJfguLHguJnguJXguYwKK+C4nuC4jeC4suC4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4Lie4LiN4Liy4LiTCivguJ7guI3guLLguJTguLLguJrguKvguLHguIEKK+C4nuC4jeC4suC5gOC4lOC4tOC4mQor4Lie4LiN4Liy4LmE4LiX4LiiCivguJ7guI3guLLguJvguLLguIHguIHguKfguYnguLLguIcKK+C4nuC4jeC4suC5geC4m+C5geC4pQor4Lie4LiN4Liy4Lie4Lii4Liy4LiVCivguJ7guI3guLLguYTguJ8KK+C4nuC4jeC4suC4oeC4sOC4guC4suC4oeC4m+C5ieC4reC4oQor4Lie4LiN4Liy4Lih4Li34Lit4LmA4Lir4Lil4LmH4LiBCivguJ7guI3guLLguKHguLjguJXguJXguLQKK+C4nuC4jeC4suC4oeC4ueC4oeC4tOC4mQor4Lie4LiN4Liy4LmE4Lih4LmJCivguJ7guI3guLLguKLguLIKK+C4nuC4jeC4suC4o+C4suC4geC4lOC4swor4Lie4LiN4Liy4Lij4Liy4LiB4LmA4LiU4Li14Lii4LinCivguJ7guI3guLLguYTguKPguYnguYPguJoKK+C4nuC4jeC4suC4peC4rQor4Lie4LiN4Liy4LmC4Lio4LiBCivguJ7guI3guLLguKrguLHguJXguJrguKPguKPguJMKK+C4r+C4nuC4k+C4rwor4Lie4LiT4Li04LiKCivguJ7guJPguLTguIrguKLguYwKK+C4nuC4lAor4Lie4LiU4LiB4Lij4Li04LiKCivguJ7guJTguJTguYnguKfguIcKK+C4nuC4mOC4uQor4Lie4LiZCivguJ7guJktCivguJ7guYjguJkKK+C4nuC5ieC4mQor4Lie4LiZ4LiC4Lix4LiT4LiR4LmMCivguJ7guJnguYLguITguIjguKMKK+C4nuC4meC4iOC4owor4Lie4LiZ4LiI4Lij4LiBCivguJ7guJnguIrguLXguKfguLUKK+C4nuC4meC4mOC4suC4o+C4sgor4Lie4LiZ4LihCivguJ7guJnguKHguYDguJ7guKXguLTguIcKK+C4nuC4meC4oeC4qOC4gQor4Lie4LiZ4Lih4Lio4LieCivguJ7guJnguKHguKrguKfguKPguKPguITguYwKK+C4nuC4meC4p+C4suC4quC4tQor4Lie4LmJ4LiZ4Lin4Li04Liq4Lix4LiiCivguJ7guJnguKrguJPguJHguYwKK+C4nuC4meC4reC4hwor4Lie4LiZ4Lit4LihCivguJ7guJnguLHguIEKK+C4nuC4meC4seC4geC4h+C4suC4mQor4Lie4LiZ4Lix4LiB4LiH4Liy4LiZ4LmA4LiI4LmJ4Liy4Lir4LiZ4LmJ4Liy4LiX4Li14LmICivguJ7guJnguLHguIHguIfguLLguJnguKrguK3guJrguKrguKfguJkKK+C4nuC4meC4seC4geC4h+C4suC4meC4reC4seC4ouC4geC4suC4owor4Lie4LiZ4Lix4LiHCivguJ7guJnguLHguJkKK+C4nuC4meC4seC4meC4lOC4owor4Lie4LiZ4Lix4LiqCivguJ7guJnguLHguKotCivguJ7guJnguLHguKrguJTguKEKK+C4nuC4meC4seC4quC4muC4lOC4tQor4Lie4LiZ4LiyCivguJ7guJnguLLguJQKK+C4nuC4meC4suC4lOC4owor4Lie4LiZ4Liy4LiU4Lit4LiZCivguJ7guJnguLLguJjguKfguLIKK+C4nuC4meC4suC4meC4lOC4owor4Lie4LiZ4Liy4LiiCivguJ7guJnguLLguKPguLLguKEKK+C4nuC4meC4suC4peC4seC4ogor4Lie4LiZ4Liy4Lil4Li1CivguJ7guJnguLLguKfguLIKK+C4nuC4meC4suC4p+C4suC4qgor4Lie4LiZ4Liy4LmA4Lin4LioCivguJ7guJnguLLguKjguKPguKEKK+C4nuC4meC4suC4qOC4o+C4seC4ogor4Lie4LiZ4Liy4Liq4LiT4LiR4LmMCivguJ7guJnguLLguKrguLHguJPguJHguYwKK+C4nuC4meC4tOC4lOC4sgor4Lie4LiZ4Li04LiVCivguJ7guJnguLXguKLguIEKK+C4nuC5gOC4meC4gQor4Lie4LmA4LiZ4LiI4LijCivguJ7guJoKK+C4nuC4muC4m+C4sAor4Lie4Lia4Lie4Liy4LiZCivguJ7guJrguYTguKHguYnguIfguLLguKHguYDguKHguLfguYjguK3guILguKfguLLguJnguJrguLTguYjguJkKK+C4nuC4muC4uQor4Lie4Lih4LmI4LiyCivguJ7guKHguYjguLLguYHguJfguIfguIHguJoKK+C4nuC4oeC5iOC4suC4o+C4s+C4guC4p+C4suC4mQor4Lie4Lii4LiKCivguJ7guKLguIrguJnguYwKK+C4nuC4ouC4leC4tOC5gOC4o+C4gQor4Lie4Lii4LiZ4LiV4LmMCivguJ7guKLguKgKK+C4nuC4ouC4seC4gQor4Lie4Lii4Lix4LiB4Lie4LmA4Lii4Li04LiUCivguJ7guKLguLHguIHguKLguLTguYnguKEKK+C4nuC4ouC4seC4hOC4hi0KK+C4nuC4ouC4seC4hOC4huC5jAor4Lie4Lii4Lix4LiE4LiG4LiyCivguJ7guKLguLHguITguIbguLTguJkKK+C4nuC4ouC4seC4hOC4huC4tOC4meC4l+C4o+C5jAor4Lie4Lii4Lix4LiE4LiG4Li1CivguJ7guKLguLHguITguYDguIbguJnguJfguKPguYwKK+C4nuC4ouC4seC4iuC4meC5jAor4Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguJ7guKLguLHguJUKK+C4nuC4ouC4seC4mgor4Lie4Lii4Lix4Lia4LmB4LiU4LiUCivguJ7guKLguLHguJrguJ3guJkKK+C4nuC4ouC4seC4muC5gOC4oeC4hgor4Lie4Lii4Lix4Lia4Lir4Lih4Lit4LiBCivguJ7guKLguLLguIHguKPguJPguYwKK+C4nuC4ouC4suC4huC4o+C5jAor4Lie4Lii4Liy4LiH4LiE4LmMCivguJ7guKLguLLguJjguLQKK+C4nuC4ouC4suC4mQor4Lie4Lii4Liy4Lia4Liy4LiXCivguJ7guKLguLLguJrguLLguKUKK+C4nuC4ouC4suC4oQor4Lie4Lii4Liy4Lii4Liy4LihCivguJ7guKLguLLguKUKK+C4nuC4ouC4suC4pS0KK+C4nuC4ouC4suC4peC4oeC4pOC4hAor4Lie4Lii4Li4CivguJ7guKLguLjguIcKK+C4nuC4ouC4uOC4h+C4m+C4teC4gQor4Lie4Lii4Li44LirLQor4Lie4Lii4Li44Lir4Lia4Liy4LiV4LijCivguJ7guKLguLjguKvguJrguLLguJXguKPguLIKK+C4nuC4ouC4uOC4q+C4ouC4suC4leC4o+C4sgor4Lie4Lii4Li44Lir4LmC4Lii4LiY4LiyCivguJ7guKLguLjguKvguKMKK+C4nuC4ouC4uOC4q+C5gOC4quC4meC4sgor4Lie4Lii4Li44Lir4LmB4Liq4LiZ4Lii4LiyCivguJ7guKLguLjguKvguYHguKrguJnguKLguLLguIHguKMKK+C4nuC4ouC4uOC4q+C4sAor4Lie4Lii4Li54LmI4Lir4LmMCivguJ7guYDguKLguLXguKIKK+C4nuC4owor4Lie4Lij4LiVCivguJ7guKPguKEKK+C4nuC4o+C4oeC4hOC4lAor4Lie4Lij4Lih4LiE4LiU4LiV4Li14LiZ4LmA4LiV4LmI4LiyCivguJ7guKPguKHguYHguJTguJkKK+C4nuC4o+C4oeC4meC5ieC4s+C4oeC4seC4mQor4Lie4Lij4Lih4LiZ4Li04LmJ4LinCivguJ7guKPguKHguKHguLQKK+C4nuC4o+C4o+C4hAor4Lie4Lij4Lij4LiELQor4Lie4Lij4Lij4LiE4LmMCivguJ7guKPguKPguITguIHguKXguLTguJkKK+C4nuC4o+C4o+C4hOC4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4Lie4Lij4Lij4LiE4LiZ4Liy4Lin4Li04LiB4LmC4Lii4LiY4Li04LiZCivguJ7guKPguKPguITguJnguLLguKfguLTguJkKK+C4nuC4o+C4o+C4hOC4nuC4p+C4gQor4Lie4Lij4Lij4LiE4Liy4LiZ4LiV4LmMCivguJ7guKPguKPguJMKK+C4nuC4o+C4o+C4k+C4meC4sgor4Lie4Lij4Lij4LiT4Lij4Liy4LiiCivguJ7guKPguKPguJTguLbguIEKK+C4nuC4o+C4o+C4peC4suC4ogor4Lie4Lij4Lij4LipCivguJ7guKPguKPguKktCivguJ7guKPguKPguKnguJvguKPguLDguYDguKfguKgKK+C4nuC4o+C4o+C4qeC4pOC4lOC4uQor4Lie4Lij4Lij4Lip4Lin4Li44LiS4Li0CivguJ7guKPguKPguKnguLIKK+C4nuC4o+C4o+C4qeC4suC4geC4suC4pQor4Lie4Lij4Lij4Lip4Liy4LiE4LihCivguJ7guKPguKPguKnguLLguKLguLjguJUKK+C4nuC4o+C4o+C5guC4qeC4l+C4gQor4Lie4Lij4Lij4LmC4Lip4Lia4LilCivguJ7guKPguKPguYDguKvguLIKK+C4nuC4o+C4o+C5gOC4reC4tOC4jQor4Lie4Lij4Lin4LiH4LmA4Lie4Lij4Li14Lii4LiHCivguJ7guKPguKfguJQKK+C4nuC4o+C4p+C4lOC4nuC4o+C4suC4lAor4Lie4Lij4Lin4LiZCivguJ7guKPguKrguKfguKPguKPguITguYwKK+C4nuC4o+C4q+C4oQor4Lie4Lij4Lir4LihLQor4Lie4Lij4Lir4Lih4LiB4Liy4LiiCivguJ7guKPguKvguKHguYLguITguKUKK+C4nuC4o+C4q+C4oeC4iOC4o+C4o+C4ouC5jAor4Lie4Lij4Lir4Lih4LiI4Lix4LiB4LijCivguJ7guKPguKvguKHguIjguLLguKPguLTguJPguLUKK+C4nuC4o+C4q+C4oeC4iOC4suC4o+C4tQor4Lie4Lij4Lir4Lih4LiK4Liy4LiV4Li0CivguJ7guKPguKvguKHguJfguLHguJPguJHguYwKK+C4nuC4o+C4q+C4oeC5hOC4l+C4ogor4Lie4Lij4Lir4Lih4LiY4Liy4LiU4LiyCivguJ7guKPguKvguKHguJrguJYKK+C4nuC4o+C4q+C4oeC4muC4lwor4Lie4Lij4Lir4Lih4Lia4Lij4Li04Lip4Lix4LiXCivguJ7guKPguKvguKHguJrguLjguJXguKMKK+C4nuC4o+C4q+C4oeC4m+C4uOC5guC4o+C4q+C4tOC4lQor4Lie4Lij4Lir4Lih4Lie4Lix4LiB4LiV4Lij4LmMCivguJ7guKPguKvguKHguJ7guLHguJnguJjguLjguYwKK+C4nuC4o+C4q+C4oeC4oOC4ueC4leC4tAor4Lie4Lij4Lir4Lih4Lii4Liy4LiZCivguJ7guKPguKvguKHguYDguKPguILguLIKK+C4nuC4o+C4q+C4oeC4pOC4qeC4tQor4Lie4Lij4Lir4Lih4Lil4Li04LiC4Li04LiVCivguJ7guKPguKvguKHguKfguLTguKvguLLguKMKK+C4nuC4o+C4q+C4oeC4qOC4owor4Lie4Lij4Lir4Lih4Liq4Li14LmI4Lir4LiZ4LmJ4LiyCivguJ7guKPguKvguKHguKrguLnguJXguKMKK+C4nuC4o+C4q+C4oeC4q+C4seC4p+C5gOC4q+C4oeC5h+C4mQor4Lie4Lij4Lir4Lih4LmC4Lit4LiH4LiB4Liy4LijCivguJ7guKPguKvguKHguLHguI3guJXguLIKK+C4nuC4o+C4q+C4oeC4sgor4Lie4Lij4Lir4Lih4Liy4LiT4LiR4LmMCivguJ7guKPguKvguKHguLLguKrguJXguKPguYwKK+C4nuC4o+C4q+C4oeC4tOC4meC4l+C4o+C5jAor4Lie4Lij4Lir4LmA4Lih4LiZ4LiX4Lij4LmMCivguJ7guKPguKvguYDguKHguKjguKfguKMKK+C4nuC4o+C4reC4gQor4Lie4Lij4LmI4Lit4LiHCivguJ7guKPguYnguK3guIcKK+C4nuC4o+C5ieC4reC4h+C5gOC4nuC4o+C4teC4ouC4gQor4Lie4Lij4Lit4LiUCivguJ7guKPguYnguK3guKEKK+C4nuC4o+C5iOC4reC4oeC4nuC4o+C5ieC4rQor4Lie4Lij4LmJ4Lit4Lih4Lie4Lij4Lix4LiBCivguJ7guKPguYnguK3guKHguJ7guKPguLHguYjguIcKK+C4nuC4o+C5ieC4reC4oeC5gOC4nuC4o+C4teC4ouC4hwor4Lie4Lij4LmJ4Lit4Lih4Lih4Li54LilCivguJ7guKPguYnguK3guKHguKvguJnguYnguLIKK+C4nuC4o+C5ieC4reC4oeC4q+C4meC5ieC4suC4nuC4o+C5ieC4reC4oeC4leC4sgor4Lie4Lij4LmI4Lit4LiiCivguJ7guKPguYnguK3guKIKK+C4nuC4o+C4sAor4Lie4Lij4Liw4LiB4Lij4LiZ4LmJ4Lit4LiiCivguJ7guKPguLDguITguKPguLkKK+C4nuC4o+C4sOC4hOC4uOC4k+C5gOC4iOC5ieC4sgor4Lie4Lij4Liw4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJ7guKPguLDguYDguITguKPguLfguYjguK3guIcKK+C4nuC4o+C4sOC4iOC4seC4meC4l+C4o+C5jOC4hOC4o+C4tuC5iOC4h+C4i+C4teC4gQor4Lie4Lij4Liw4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguYDguIjguYnguLLguKXguK3guKLguJbguLLguJQKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4q+C4peC4p+C4hwor4Lie4Lij4Liw4LmA4LiI4LmJ4Liy4Lir4LmJ4Liy4Lie4Lij4Liw4Lit4LiH4LiE4LmMCivguJ7guKPguLDguYDguIjguYnguLLguK3guKLguLnguYjguKvguLHguKcKK+C4nuC4o+C4sOC5gOC4lOC4iuC4nuC4o+C4sOC4hOC4uOC4kwor4Lie4Lij4Liw4LiX4Lit4LiHCivguJ7guKPguLDguJfguLHguKIKK+C4nuC4o+C4sOC4mOC4o+C4o+C4oeC4qOC4suC4quC4leC4o+C5jAor4Lie4Lij4Liw4LiZ4LihCivguJ7guKPguLDguJnguK3guKEKK+C4nuC4o+C4sOC4meC4suC4hwor4Lie4Lij4Liw4LiZ4Liy4LiH4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguJnguLLguIfguYDguJjguK0KK+C4nuC4o+C4sOC4meC4suC4lAor4Lie4Lij4Liw4LiZ4Liy4LiiCivguJ7guKPguLDguJrguI8KK+C4nuC4o+C4sOC4muC4lwor4Lie4Lij4Liw4Lib4Lij4Liw4LiY4Liy4LiZCivguJ7guKPguLDguYDguJvguYfguJnguYDguIjguYnguLIKK+C4nuC4o+C4sOC4nOC4ueC5ieC5gOC4m+C5h+C4meC5gOC4iOC5ieC4sgor4Lie4Lij4Liw4LmB4Lic4LiHCivguJ7guKPguLDguJ7guLTguKHguJ7guYwKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4sgor4Lie4Lij4Liw4Lie4Li44LiX4LiY4LmA4LiI4LmJ4Liy4LiC4LmJ4LiyCivguJ7guKPguLDguJ7guLjguJfguJjguYDguIjguYnguLLguILguYnguLLguILguK3guKPguLHguJoKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4suC4guC5ieC4suC4guC4reC4o+C4seC4muC5g+C4quC5iOC5gOC4geC4peC5ieC4suC5g+C4quC5iOC4geC4o+C4sOC4q+C4oeC5iOC4reC4oQor4Lie4Lij4Liw4Lie4Li44LiX4LiY4LmA4LiI4LmJ4Liy4Lir4Lil4Lin4LiHCivguJ7guKPguLDguJ7guLjguJfguJjguYDguIjguYnguLLguK3guKLguLnguYjguKvguLHguKcKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC4reC4h+C4hOC5jAor4Lie4Lij4Liw4Lig4Li54Lih4Li0CivguJ7guKPguLDguKHguLLguKXguLHguKLguKHguLLguYLguJvguKPguJQKK+C4nuC4o+C4sOC4ouC4sgor4Lie4Lij4Liw4Lii4Liy4LmA4LiX4LiE4Lij4Lix4LinCivguJ7guKPguLDguKLguLLguYDguKXguYfguJrguITguKPguLjguJEKK+C4nuC4o+C4sOC4ouC4suC4p+C4seC4mQor4Lie4Lij4Liw4Lij4Lit4LiHCivguJ7guKPguLDguKPguLLguIrguIHguKTguKnguI7guLXguIHguLIKK+C4nuC4o+C4sOC4o+C4suC4iuC4geC4s+C4q+C4meC4lAor4Lie4Lij4Liw4Lij4Liy4LiK4Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJ7guKPguLDguKPguLnguJsKK+C4nuC4o+C4sOC4o+C4ueC4m+C4iuC4tQor4Lie4Lij4Liw4Lik4LmF4Lip4Li1CivguJ7guKPguLDguKXguJoKK+C4nuC4o+C4sOC4peC4t+C4rQor4Lie4Lij4Liw4LmB4Lin4LinCivguJ7guKPguLDguKjguLjguIHguKPguYzguYDguILguYnguLLguJ7guKPguLDguYDguKrguLLguKPguYzguYHguJfguKPguIEKK+C4nuC4o+C4sOC4q+C4sgor4Lie4Lij4Liw4Lir4Liy4LihCivguJ7guKPguLDguKvguLLguKPguJPguKLguYwKK+C4nuC4o+C4sOC4q+C4suC4o+C4seC4k+C4ouC5jAor4Lie4Lij4Liw4Lir4Li04LiUCivguJ7guKPguLDguK3guIfguITguYwKK+C4nuC4o+C4sOC4reC4h+C4hOC5jOC5gOC4iOC5ieC4sgor4Lie4Lij4Liw4Lit4Lix4LiZ4LiU4Lix4LiaCivguJ7guKPguLDguK3guLTguJDguJ7guKPguLDguJvguLnguJkKK+C4nuC4o+C4sOC5gOC4reC4gQor4Lie4Lij4Liw4Liu4Liy4LihCivguJ7guKPguLHguIHguJ7guKPguYnguK3guKEKK+C4nuC4o+C4seC5iOC4hwor4Lie4Lij4Lix4LmI4LiH4Lie4Lij4LmJ4Lit4LihCivguJ7guKPguLHguYjguIfguJ7guKPguLkKK+C4nuC4o+C4seC4lAor4Lie4Lij4Lix4LmI4LiZCivguJ7guKPguLHguYjguJnguJ7guKPguLbguIcKK+C4nuC4o+C4seC4mgor4Lie4Lij4LmI4LiyCivguJ7guKPguYnguLIKK+C4nuC4o+C4suC4gQor4Lie4Lij4Liy4LiB4LmA4LiU4LmH4LiBCivguJ7guKPguLLguIHguJzguLnguYnguYDguKLguLLguKfguYwKK+C4nuC4o+C4suC4geC4peC4ueC4geC4meC4geC4peC4ueC4geC4geC4sgor4Lie4Lij4Liy4LiHCivguJ7guKPguYjguLLguIcKK+C4nuC4o+C4suC4h+C4nuC4o+C4reC4gQor4Lie4Lij4LmJ4Liy4LiH4Lix4LiU4Lib4Liy4LiB4LmE4Lih4LmI4Lit4Lit4LiBCivguJ7guKPguLLguJQKK+C4nuC4o+C4suC4mQor4Lie4Lij4Liy4LiiCivguJ7guKPguLLguKLguJfguLDguYDguKUKK+C4nuC4o+C4suC4ouC4meC5ieC4swor4Lie4Lij4Liy4Lii4LmB4Lie4Lij4LinCivguJ7guKPguLLguKLguKLguYnguLMKK+C4nuC4o+C4suC4pwor4Lie4Lij4Liy4Lin4LmB4Lie4Lij4LinCivguJ7guKPguLLguKvguKHguJPguYwKK+C4nuC4o+C4suC4q+C4oeC4k+C5jOC5gOC4geC5h+C4muC4q+C4seC4p+C5geC4q+C4p+C4mQor4Lie4Lij4Liy4Lir4Lih4LiT4LmM4LiC4Liy4Lii4LmA4Lih4Li14LiiCivguJ7guKPguLLguKvguKHguJPguYzguJTguLXguJTguJnguYnguLPguYDguJXguYnguLIKK+C4nuC4o+C4suC4q+C4oeC4k+C4seC4qOC4muC4lOC4tQor4Lie4Lij4Liy4Lir4Lih4LiT4Li1CivguJ7guKPguLLguKvguKHguLUKK+C4nuC4o+C4swor4Lie4Lij4Liz4LmGCivguJ7guKPguYjguLMKK+C4nuC4o+C5ieC4swor4Lie4Lij4LmI4Liz4Lie4Lil4Lit4LiUCivguJ7guKPguYjguLPguYDguJ7guKPguLfguYjguK0KK+C4nuC4o+C5iOC4s+C5gOC4nuC5ieC4rQor4Lie4Lij4Li04LiBCivguJ7guKPguLTguIHguIHguKPguLDguJXguYjguLLguKIKK+C4nuC4o+C4tOC4geC4geC4sOC5gOC4geC4peC4t+C4rQor4Lie4Lij4Li04LiB4LmB4LiB4LinCivguJ7guKPguLTguIHguILguLTguIcKK+C4nuC4o+C4tOC4geC4lOC4reC4hwor4Lie4Lij4Li04LiB4LmA4LiX4LioCivguJ7guKPguLTguIHguYTguJfguKIKK+C4nuC4o+C4tOC4geC4meC5ieC4s+C4quC5ieC4oQor4Lie4Lij4Li04LiB4Lir4Lit4LihCivguJ7guKPguLTguIHguYDguKvguKXguLfguK3guIcKK+C4nuC4o+C4tOC5ieC4hwor4Lie4Lij4Li04LmJ4LiH4Lie4Lij4Liy4LiiCivguJ7guKPguLTguYnguIfguYDguJ7guKPguLTguKgKK+C4nuC4o+C4tOC4mgor4Lie4Lij4Li04Lia4LiV4Liy4LmA4LiU4Li14Lii4LinCivguJ7guKPguLTguJrguYTguKvguKcKK+C4nuC4o+C4tOC5ieC4oQor4Lie4Lij4Li04LmJ4Lih4Lie4Lij4Liy4LiiCivguJ7guKPguLTguYnguKHguYDguJ7guKPguLIKK+C4nuC4o+C4tuC4hwor4Lie4Lij4Li24LiZCivguJ7guKPguLbguJoKK+C4nuC4o+C4t+C4lAor4Lie4Lij4Li4CivguJ7guKPguLjguIEKK+C4nuC4o+C4uOC5iOC4hwor4Lie4Lij4Li44LmI4LiH4LiZ4Li14LmJCivguJ7guKPguLjguJkKK+C4nuC4o+C4uQor4Lie4Lij4Li54LiUCivguJ7guKTguIHguKktCivguJ7guKTguIHguKnguYwKK+C4nuC4pOC4geC4qeC4iuC4suC4leC4tAor4Lie4Lik4LiB4Lip4LiX4LilCivguJ7guKTguIHguKnguYDguJfguKfguJTguLIKK+C4nuC4pOC4geC4qeC4o+C4suC4igor4Lie4Lik4LiB4Lip4Lio4Liy4Liq4LiV4Lij4LmMCivguJ7guKTguIHguKnguLIKK+C4nuC4pOC4kgor4Lie4Lik4LiS4LiyCivguJ7guKTguJLguLLguIjguLLguKPguKLguYwKK+C4nuC4pOC4kuC4tAor4Lie4Lik4LiS4Li0LQor4Lie4Lik4LiS4Li04Lia4Liy4LioCivguJ7guKTguJUKK+C4nuC4pOC4leC4tAor4Lie4Lik4LiV4Li0LQor4Lie4Lik4LiV4Li04LiB4Lij4Lij4LihCivguJ7guKTguJXguLTguIHguLLguKPguJPguYwKK+C4nuC4pOC4leC4tOC4meC4seC4ogor4Lie4Lik4LiX4LiY4LmMCivguJ7guKTguJfguJjguLTguYwKK+C4nuC4pOC4meC4leC5jAor4Lie4Lik4LiZ4LiX4LmMCivguJ7guKTguKDguLnguKnguJMKK+C4nuC4pOC4oOC4ueC4qeC4tOC4lQor4Lie4Lik4Lio4LiI4Li04LiBCivguJ7guKTguKjguIjguLTguIHguLLguKLguJkKK+C4nuC4pOC4qeC4oAor4Lie4Lik4Lip4Lig4Liy4LiE4LihCivguJ7guKTguKvguLHguKrguJrguJTguLUKK+C4nuC4pOC4q+C4seC4quC4muC4lOC4teC4iOC4seC4geC4owor4Lie4LilCivguJ7guKUtCivguJ7guKXguIHguLLguKIKK+C4nuC4peC4geC4suC4owor4Lie4Lil4LiC4Lix4LiZ4LiY4LmMCivguJ7guKXguITguKfguLLguKEKK+C4nuC4peC4leC4o+C4sOC5gOC4p+C4mQor4Lie4Lil4LmA4LiX4LieCivguJ7guKXguJoKK+C4nuC4peC5gOC4oeC4t+C4reC4hwor4Lie4Lil4LmA4Lij4Li34Lit4LiZCivguJ7guKXguYLguKXguIEKK+C4nuC4peC4py0KK+C4nuC4peC4p+C4gQor4Lie4Lil4Lin4LiHCivguJ7guKXguKfguJTguIHguLTguJnguKXguLnguIEKK+C4nuC4peC4p+C4lOC5g+C4q+C4jeC5iAor4Lie4Lil4Lin4Lix4LiVCivguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4nuC4peC4qOC4tuC4geC4qeC4sgor4Lie4Lil4Liq4Li04LiH4Lir4LmMCivguJ7guKXguK0KK+C4nuC4peC5ieC4rQor4Lie4Lil4Lit4LiHCivguJ7guKXguK3guJQKK+C4nuC4peC4reC4lOC4o+C4seC4gQor4Lie4Lil4Lit4LiZCivguJ7guKXguK3guKHguYHguJ7guKXguKEKK+C4nuC4peC4reC4ogor4Lie4Lil4LmI4Lit4LiiCivguJ7guKXguK3guKLguJ/guYnguLLguJ7guKXguK3guKLguJ3guJkKK+C4nuC4peC4sAor4Lie4Lil4Liw4Lie4Lil4LiyCivguJ7guKXguLHguYjguIEKK+C4nuC4peC4seC4hwor4Lie4Lil4Lix4LmI4LiHCivguJ7guKXguLHguYnguIcKK+C4nuC4peC4seC4h+C4h+C4suC4mQor4Lie4Lil4Lix4LiH4LiH4Liy4LiZ4LiI4Lil4LiZ4LmMCivguJ7guKXguLHguIfguIfguLLguJnguKjguLHguIHguKLguYwKK+C4nuC4peC4seC4h+C4iOC4tOC4lQor4Lie4Lil4Lix4LmJ4LiH4Lib4Liy4LiBCivguJ7guKXguLHguYnguIfguJvguLLguIHguYDguKrguLXguKLguKjguLXguKUg4Lie4Lil4Lix4LmJ4LiH4LiV4Li14LiZ4LiV4LiB4LiV4LmJ4LiZ4LmE4Lih4LmJCivguJ7guKXguLHguYnguIfguYDguJzguKXguK0KK+C4nuC4peC4seC4lAor4Lie4Lil4Lix4LiU4LiW4Li04LmI4LiZCivguJ7guKXguLHguJTguJfguLXguYjguJnguLLguITguLLguJfguLXguYjguK3guKLguLnguYgKK+C4nuC4peC4seC4lOC4nuC4o+C4suC4gQor4Lie4Lil4Lix4LiZCivguJ7guKXguLHguJoKK+C4nuC4peC4seC4muC5gOC4guC4sgor4Lie4Lil4Lix4Lia4Lie4Lil4LiyCivguJ7guKXguLHguJrguJ7guKXguLbguIcKK+C4nuC4peC4seC5iOC4pwor4Lie4Lil4LmI4LiyCivguJ7guKXguLLguIHguKMKK+C4nuC4peC4suC4hwor4Lie4Lil4Liy4LiNCivguJ7guKXguLLguJQKK+C4nuC4peC4suC4lOC4l+C5iOC4sgor4Lie4Lil4Liy4LiU4Li04Lio4Lix4LiiCivguJ7guKXguLLguJjguLTguIHguLLguKMKK+C4nuC4peC5iOC4suC4mQor4Lie4Lil4Liy4LiZ4Liy4Lih4Lix4LiiCivguJ7guKXguLLguJnguLbguIEKK+C4nuC4peC4suC4oQor4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLLguKIKK+C4nuC4peC4suC4ouC4oeC5ieC4sgor4Lie4Lil4Liy4Liq4LiV4Li04LiBCivguJ7guKXguLLguKrguKHguLIKK+C4nuC4peC4suC4q+C4gQor4Lie4Lil4LizCivguJ7guKXguYnguLMKK+C4nuC4peC4s+C4oOC4seC4hwor4Lie4Lil4Li0CivguJ7guKXguLTguIEKK+C4nuC4peC4tOC4geC4geC4o+C4sOC5gOC4m+C5i+C4sgor4Lie4Lil4Li04LiB4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguJ7guKXguLTguIHguYHguJ7guKXguIcKK+C4nuC4peC4tOC4geC4qOC4ngor4Lie4Lil4Li04LiB4Lir4LiZ4LmJ4Liy4Lih4Li34Lit4LmA4Lib4LmH4LiZ4Lir4Lil4Lix4LiH4Lih4Li34LitCivguJ7guKXguLTguJ7guLHguJcKK+C4nuC4peC4tOC5ieC4pwor4Lie4Lil4Li1CivguJ7guKXguLXguIHguKPguKPguKEKK+C4nuC4peC4teC4oeC4uOC4ggor4Lie4Lil4Li4CivguJ7guKXguLjguIEKK+C4nuC4peC4uOC5iOC4gQor4Lie4Lil4Li44LiB4Lie4Lil4LmI4Liy4LiZCivguJ7guKXguLjguYjguIcKK+C4nuC4peC4uOC5ieC4mQor4Lie4Lil4Li44LmI4Lih4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLjguYjguKIKK+C4nuC4peC4uOC5ieC4ogor4Lie4Lil4Li5CivguJ7guKXguLnguYHguIEKK+C4nuC4peC4ueC4hOC4suC4pwor4Lie4Lil4Li54LiV4LmJ4LiZCivguJ7guKXguLnguYLguJUKK+C4nuC4peC4ueC5guC4l+C5gOC4meC4teC4ouC4oQor4Lie4Lin4LiBCivguJ7guKfguIHguJ7guYnguK3guIcKK+C4nuC4p+C4hwor4Lie4LmI4Lin4LiHCivguJ7guKfguIfguYLguIHguYDguKHguJkKK+C4nuC4p+C4h+C4hOC4o+C4suC4oQor4Lie4Lin4LiH4LiK4Lih4Lie4Li5CivguJ7guKfguIfguJTguK3guIHguYTguKHguYkKK+C4nuC5iOC4p+C4h+C4nuC4tQor4Lie4Lin4LiH4Lih4Liy4Lil4Lix4LiiCivguJ7guKfguIfguKHguLLguKXguLIKK+C4nuC4p+C4h+C5geC4quC4lAor4Lie4Lin4LiH4Lir4Lii4LiBCivguJ7guKfguIfguKvguKPguLXguJQKK+C4nuC4p+C4h+C4reC4uOC5hOC4owor4Lie4Lin4LiZCivguJ7guKfguKIKK+C4nuC4p+C4ouC4meC5ieC4swor4Lie4Lin4Lii4Lie4Li44LmI4LiHCivguJ7guKrguIEKK+C4nuC4quC4gS0KK+C4nuC4quC4geC4meC4tOC4geC4owor4Lie4Liq4LiZCivguJ7guKrguLgKK+C4nuC4quC4uOC4mOC4sgor4Lie4Liq4Li44LiY4Liy4LiU4LilCivguJ7guKrguLjguJnguJjguKPguLIKK+C4nuC4quC4uOC4oeC4lOC4tQor4Lie4Liq4Li44Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguJ7guKvguKUKK+C4nuC4q+C4uAor4Lie4Lir4Li44LiE4Li54LiTCivguJ7guKvguLjguJ7guIjguJnguYwKK+C4nuC4q+C4uOC4oOC4suC4hOC4tQor4Lie4Lir4Li44LilCivguJ7guKvguLkKK+C4nuC4q+C4ueC4nuC4iOC4meC5jAor4Lie4Lir4Li54Liq4Li54LiVCivguJ7guK0KK+C4nuC5iOC4rQor4Lie4LmJ4LitCivguJ7guK3guIEKK+C4nuC4reC4geC4nuC4ueC4mQor4Lie4Lit4LiB4Lix4LiZCivguJ7guK3guIHguLHguJnguJfguLUKK+C4nuC4reC4geC4suC4owor4Lie4Lit4LiB4LmJ4Liy4Lin4LiC4Liy4LiB4LmH4Lil4Liy4LmC4Lij4LiHCivguJ7guYjguK3guYDguIHguKXguK0KK+C4nuC5iOC4reC4guC4uOC4mQor4Lie4LmI4Lit4LiE4Lij4Lix4LinCivguJ7guK3guITguKfguKMKK+C4nuC5iOC4reC4hOC5ieC4suC4leC4teC5gOC4oeC4teC4ogor4Lie4LmI4Lit4LiE4Li44LiTCivguJ7guK3guIcKK+C4nuC5ieC4reC4hwor4Lie4LmJ4Lit4LiH4Lie4Liy4LiZCivguJ7guYjguK3guYDguIjguYnguLIKK+C4nuC5iOC4reC5geC4iOC5ieC5geC4oeC5iOC4reC4uQor4Lie4Lit4LmD4LiICivguJ7guK3guYPguIrguYkKK+C4nuC4reC5g+C4iuC5ieC5hOC4lOC5iQor4Lie4Lit4LiU4Li1CivguJ7guK3guJTguLXguJ7guK3guKPguYnguLLguKIKK+C4nuC4reC4lOC4uQor4Lie4Lit4LiU4Li54LmE4LiU4LmJCivguJ7guK3guYTguJTguYkKK+C4nuC4reC4leC4seC4pwor4Lie4LmI4Lit4LiV4LiyCivguJ7guK3guJfguLPguYDguJnguLIKK+C4nuC4reC4l+C4s+C4nuC4reC4geC4tOC4mQor4Lie4Lit4LiX4Li1CivguJ7guK3guJfguLXguYgKK+C4nuC4reC4mQor4Lie4Lit4LiZ4LmA4Lij4Li34LitCivguJ7guYjguK3guJrguYnguLLguJkKK+C4nuC4reC4m+C4o+C4sOC4oeC4suC4kwor4Lie4Lit4LmE4Lib4LmE4LiU4LmJCivguJ7guYjguK3guJ7guKfguIfguKHguLLguKXguLHguKIKK+C4nuC4reC4n+C4seC4lAor4Lie4Lit4Lif4Lix4LiU4Lie4Lit4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguJ7guYnguK3guKEKK+C4nuC5iOC4reC4oeC5iOC4suC4ogor4Lie4Lit4Lih4Li14Lie4Lit4LiB4Li04LiZCivguJ7guK3guKHguLXguK3guLHguJnguIjguLDguIHguLTguJkKK+C4nuC5iOC4reC5gOC4oeC4t+C4reC4hwor4Lie4Lit4Lii4LiB4LiC4Liy4LiB4LmH4Lil4Liy4LmC4Lij4LiHCivguJ7guK3guYHguKLguYnguKHguJvguLLguIHguIHguYfguYDguKvguYfguJnguYTguKPguJ/guLHguJkKK+C4nuC5iOC4reC4o+C5ieC4suC4hwor4Lie4LmI4Lit4LmA4Lij4Li34Lit4LiZCivguJ7guK3guYHguKPguIcKK+C4nuC5iOC4reC4peC4tOC5ieC4meC4l+C4reC4hwor4Lie4LmI4Lit4LmA4Lil4Li14LmJ4Lii4LiHCivguJ7guK3guYDguKXguLXguYnguKLguIfguJvguLLguIHguYDguKXguLXguYnguKLguIfguJfguYnguK3guIcKK+C4nuC4reC5guC4peC5gOC4meC4teC4ouC4oQor4Lie4Lit4Liq4LiW4Liy4LiZ4Lib4Lij4Liw4Lih4Liy4LiTCivguJ7guYjguK3guKrguLfguYjguK0KK+C4nuC4reC4q+C4reC4oeC4m+C4suC4geC4q+C4reC4oeC4hOC4rQor4Lie4Lit4LmA4Lir4Lih4Liy4LiwCivguJ7guK3guK3guYnguLLguJvguLLguIHguIHguYfguYDguKvguYfguJnguKXguLTguYnguJnguYTguIHguYgKK+C4nuC4sAor4Lie4LmI4LiwCivguJ7guLDguIfguLIKK+C4nuC4sOC4h+C4suC4mgor4Lie4Liw4LiH4Liy4Lia4LmGCivguJ7guLDguIjguIcKK+C4nuC4sOC4l+C4s+C4oeC4sOC4o+C4hwor4Lie4Liw4LiZ4LitCivguJ7guLDguYDguJnguYnguLLguJ7guLDguJnguK0KK+C4nuC4sOC5gOC4meC5ieC4suC4nuC4sOC4meC4tuC4hwor4Lie4Liw4LmA4LiZ4Li04LiZCivguJ7guLDguYDguJnguLTguJnguYDguJfguLTguJnguJfguLbguIEKK+C4nuC4sOC5gOC4meC4teC4ouC4hwor4Lie4Liw4LmB4LiZ4LiHCivguJ7guLDguJ7guLLguJkKK+C4nuC4sOC4nuC4tOC4hwor4Lie4Liw4LmA4Lie4Li04LiHCivguJ7guLDguKLguK3guKEKK+C4nuC5iOC4sOC4ouC5iOC4sOC4hOC5iOC4sAor4Lie4Liw4Lii4Li44Lie4Lii4Li44LiHCivguJ7guLDguKLguLnguIcKK+C4nuC4sOC4ouC4ueC4mQor4Lie4Liw4LmA4Lii4Li04LiaCivguJ7guLDguYDguKLguLTguJrguYYKK+C4nuC4sOC5gOC4ouC4tOC4muC4nuC4sOC4ouC4suC4mgor4Lie4Liw4Lij4Li44LiH4Lie4Liw4Lij4Lix4LiHCivguJ7guLDguYDguKXguKIKK+C4nuC4sOC5guC4peC5iQor4Lie4Liw4LmE4LilCivguJ7guLDguKfguIcKK+C4nuC4sOC4p+C4seC4geC4nuC4sOC4p+C4mQor4Lie4Liw4Lin4LiyCivguJ7guLDguKfguYnguLLguJ7guLDguKfguLHguIcKK+C4nuC4sOC4reC4hwor4Lie4Liw4Lit4Liy4LiB4Lie4Liw4Lit4LizCivguJ7guLDguK3guLfguJTguJ7guLDguK3guKEKK+C4nuC4seC4gQor4Lie4Lix4LiB4LiV4LijLQor4Lie4Lix4LiB4LiV4Lij4LmMCivguJ7guLHguIHguJXguKPguLIKK+C4nuC4seC4geC4leC4o+C4suC4geC4pOC4leC4tAor4Lie4Lix4LiB4LiV4LiyCivguJ7guLHguIHguJzguYjguK3guJkKK+C4nuC4seC4geC4nuC4tOC4hwor4Lie4Lix4LiB4LmB4Lie4LinCivguJ7guLHguIHguJ/guLfguYnguJkKK+C4nuC4seC4geC4owor4Lie4Lix4LiB4Liq4Lih4Lit4LiHCivguJ7guLHguIcKK+C4nuC4seC4h+C4geC4sgor4Lie4Lix4LiH4LiE4LiyCivguJ7guLHguIfguIfguLIKK+C4nuC4seC4h+C4nOC4t+C4lAor4Lie4Lix4LiH4Lie4Lin4LiiCivguJ7guLHguIfguJ7guK3guJkKK+C4nuC4seC4h+C4nuC4suC4mQor4Lie4Lix4LiH4Lie4Liy4LiaCivguJ7guLHguIfguYDguJ7guKIKK+C4nuC4seC4igor4Lie4Lix4LiK4LiZ4Li1CivguJ7guLHguIrguKMKK+C4nuC4seC4jeC4iOC4gQor4Lie4Lix4LiN4LiI4LiZ4LmMCivguJ7guLHguJLguIHguLUKK+C4nuC4seC4kuC4mS0KK+C4nuC4seC4kuC4meC4sAor4Lie4Lix4LiS4LiZ4LiyCivguJ7guLHguJLguJnguLLguIHguKMKK+C4nuC4seC4kuC4meC4suC4geC4suC4owor4Lie4Lix4LiUCivguJ7guLHguJTguIrguLHguIEKK+C4nuC4seC4lOC4iuC4sgor4Lie4Lix4LiU4LiU4Li24LiH4Liq4LmMCivguJ7guLHguJTguYLguJrguIEKK+C4nuC4seC4lOC5geC4nuC4pwor4Lie4Lix4LiU4Lii4LioCivguJ7guLHguJTguKXguKEKK+C4nuC4seC4lOC4q+C4peC4p+C4hwor4Lie4Lix4LiV4LiV4Li04LiH4Liq4LiwCivguJ7guLHguJXguKMKK+C4nuC4seC4l+C4mC0KK+C4nuC4seC4l+C4mOC5jAor4Lie4Lix4LiX4LiY4Lii4LiyCivguJ7guLHguJfguJjguKLguLLguIHguKMKK+C4nuC4seC4l+C4mOC4quC4teC4oeC4sgor4Lie4Lix4LiX4LijCivguJ7guLHguJkKK+C4nuC4seC4meC4h+C4uQor4Lie4Lix4LiZ4LiI4LmI4LiyCivguJ7guLHguJnguIjguLMKK+C4nuC4seC4meC5hOC4ieC4mQor4Lie4Lix4LiZ4LiL4Liy4LiUCivguJ7guLHguJnguJXguLHguJkKK+C4nuC4seC4meC4leC4sgor4Lie4Lix4LiZ4LiV4Li5CivguJ7guLHguJnguJfguLLguIcKK+C4nuC4seC4meC4mC0KK+C4nuC4seC4meC4mOC5jAor4Lie4Lix4LiZ4LiY4LiB4Lij4LiT4Li1CivguJ7guLHguJnguJjguJktCivguJ7guLHguJnguJjguJnguLAKK+C4nuC4seC4meC4mOC4meC4suC4geC4suC4owor4Lie4Lix4LiZ4LiY4LiZ4Liy4LiE4Liy4LijCivguJ7guLHguJnguJjguJnguLMKK+C4nuC4seC4meC4mOC4muC4seC4leC4owor4Lie4Lix4LiZ4LiY4Lih4Li04LiV4LijCivguJ7guLHguJnguJjguLAKK+C4nuC4seC4meC4mOC4uAor4Lie4Lix4LiZ4LiY4Li44LmMCivguJ7guLHguJnguYDguJnguJXguKMKK+C4nuC4seC4meC4m+C4tQor4Lie4Lix4LiZ4Lie4Lix4LinCivguJ7guLHguJnguKXguK3guIEKK+C4nuC4seC4meC4peC4suC4ogor4Lie4Lix4LiZ4Lil4LizCivguJ7guLHguJnguKXguLbguIEKKy3guJ7guLHguJnguKXguLfguK0KK+C4nuC4seC4meC5gOC4peC4tOC4qAor4Lie4Lix4LiZ4Lin4Lij4Lij4Lip4LiyCivguJ7guLHguJnguYHguKrguIcKK+C4nuC4seC4meC5gOC4reC4tOC4jQor4Lie4Lix4LiaCivguJ7guLHguJrguYDguILguLXguKLguIcKK+C4nuC4seC4muC4kOC4suC4mQor4Lie4Lix4Lia4Lic4LmJ4LiyCivguJ7guLHguJrguYDguJ7guLXguKLguJoKK+C4nuC4seC4muC5geC4nuC4meC4h+C5gOC4iuC4tOC4hwor4Lie4Lix4Lil4Lil4LigCivguJ7guLHguKXguKfguLHguJkKK+C4nuC4seC4pwor4Lie4Lix4Lin4Lie4Lix4LiZCivguJ7guLHguKfguLAKK+C4nuC4seC4qOC4lOC4tQor4Lie4Lix4Liq4LiU4Li4CivguJ7guLHguKrguJTguLjguYTguJvguKPguKnguJPguLXguKLguYwKK+C4nuC4seC4quC4lOC4uOC4oOC4seC4k+C4keC5jAor4Lie4Lix4Liq4LmA4LiU4LiyCivguJ7guLHguKrguJXguKPguYwKK+C4nuC4seC4quC4luC4suC4mQor4Lie4LiyCivguJ7guLLguIEKK+C4nuC4suC4geC5gOC4nuC4teC4ouC4owor4Lie4Liy4LiB4Lii4LmMCivguJ7guLLguIHguKLguYzguKvguJnguLHguIcKK+C4nuC4suC4hwor4Lie4LmI4Liy4LiHCivguJ7guLLguIrguLUKK+C4nuC4suC4i+C4t+C5iOC4rQor4Lie4Liy4LiTCivguJ7guLLguJMtCivguJ7guLLguJPguYLguKLguIrguJnguYwKK+C4nuC4suC4k+C4p+C4suC4owor4Lie4Liy4LiT4Liy4Liq4LiZ4LmMCivguJ7guLLguJPguLTguIoKK+C4nuC4suC4k+C4tOC4iuC4ouC5jAor4Lie4Liy4LiT4Li04LiZ4Li1CivguJ7guLLguJPguLUKK+C4nuC4suC4lAor4Lie4Liy4LiU4LiE4Lin4Liy4LiiCivguJ7guLLguJTguYTguInguJkKK+C4nuC4suC4lOC4nuC4tOC4hwor4Lie4Liy4LiU4Lir4Lix4Lin4LiC4LmI4Liy4LinCivguJ7guLLguJUKK+C4nuC4suC4lwor4Lie4Liy4LiX4Lii4LmMCivguJ7guLLguJgKK+C4nuC4suC4mOC4sgor4Lie4Liy4LiZCivguJ7guYjguLLguJkKK+C4nuC4suC4meC4geC4peC4teC4muC4muC4seC4pwor4Lie4Liy4LiZ4Lib4Liy4LiB4LiB4Lij4Liw4LiI4Lix4LiaCivguJ7guLLguJnguKMKK+C4nuC4suC4meC4o+C4tOC4meC4l+C4o+C5jAor4Lie4Liy4LiZ4LmA4Lij4LioCivguJ7guLLguJnguYHguKfguYjguJnguJ/guYnguLIKK+C4nuC4suC4oQor4Lie4Liy4LiiCivguJ7guYjguLLguKIKK+C4nuC4suC4ouC4oeC5ieC4sgor4Lie4Liy4Lii4LmA4Lij4Li34Lit4LiE4LiZ4Lil4Liw4LiX4Li1CivguJ7guLLguKLguYDguKPguLfguK3guJfguKfguJnguJnguYnguLMKK+C4nuC4suC4ouC5gOC4o+C4t+C4reC5g+C4meC4q+C4meC4reC4hwor4Lie4Liy4Lii4LmA4Lij4Li34Lit4LmD4LiZ4Lit4LmI4Liy4LiHCivguJ7guLLguKLguLHguJ4KK+C4nuC4suC4ouC4uAor4Lie4Liy4Lij4LmM4LmA4LiL4LiBCivguJ7guLLguKPguJMKK+C4nuC4suC4o+C4k+C4sAor4Lie4Liy4Lij4LiyCivguJ7guLLguKPguLLguJ/guLTguJkKK+C4nuC4suC4pQor4Lie4Liy4Lil4LiB4Lij4Liw4LmB4LiK4LiHCivguJ7guLLguKXguKPguLXguJ7guLLguKXguILguKfguLLguIcKK+C4nuC4suC4peC4sgor4Lie4Liy4Lil4Li1CivguJ7guLLguKXguLXguKvguKXguLLguKLguKvguJnguYnguLIKK+C4nuC4suC4peC4uOC4gQor4Lie4Liy4LmC4LilCivguJ7guLLguYTguKUKK+C4nuC4suC4qgor4Lie4Liy4Liq4LiZ4LmMCivguJ7guLLguKrguJnguLIKK+C4nuC4suC4quC4uOC4geC4o+C4tQor4Lie4Liy4LirCivguJ7guYjguLLguKvguYwKK+C4nuC4suC4q+C4meC4sAor4Lie4Liy4Lir4LiwCivguJ7guLLguKvguLIKK+C4nuC4suC4q+C4tOC4o+C4geC4sAor4Lie4Liy4Lir4Li04Lij4LiwCivguJ7guLLguKvguLgKK+C4nuC4suC4q+C4uOC4ouC4uOC4l+C4mOC5jAor4Lie4Liy4Lir4Li44Lij4Lix4LiUCivguJ7guLLguYDguKvguLXguKLguKMKK+C4nuC4suC4rAor4Lie4Liy4LisLQor4Lie4Liy4Lis4Lih4Lik4LiECivguJ7guLLguKzguKvguLAKK+C4nuC4swor4Lie4Liz4LiZ4Lix4LiBCivguJ7guLPguJ7guKfguIEKK+C4nuC4s+C4nuC4tuC4oQor4Lie4Liz4LmGIOC4nuC4tuC4oeC5hgor4Lie4Liz4Lil4LiyCivguJ7guLTguIHguKUKK+C4nuC4tOC4geC5gOC4peC4meC4l+C4o+C4teC4ouC5jAor4Lie4Li04LiB4Liq4Li04LiVCivguJ7guLTguIHguLHguJQKK+C4nuC4tOC4geC4seC4lOC4reC4seC4leC4o+C4suC4qOC4uOC4peC4geC4suC4geC4owor4Lie4Li04LiB4Lix4LiV4Li0CivguJ7guLTguIHguLHguJkKK+C4nuC4tOC4geC4suC4owor4Lie4Li04LiB4Li44LilCivguJ7guLTguIHguLjguKXguJvguYjguLIKK+C4nuC4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lie4Li04LiG4LiZ4LmMCivguJ7guLTguIbguYDguJnguKgKK+C4nuC4tOC4huC5gOC4meC4qOC4p+C4owor4Lie4Li04LiG4Liy4LiVCivguJ7guLTguIcKK+C4nuC4tOC4iOC4ogor4Lie4Li04LiI4LilCivguJ7guLTguIjguLHguKIKK+C4nuC4tOC4iOC4suC4owor4Lie4Li04LiI4Liy4Lij4LiT4LmMCivguJ7guLTguIjguLLguKPguJPguLIKK+C4nuC4tOC4iOC4tOC4gQor4Lie4Li04LiI4Li04LiVCivguJ7guLTguIjguLTguJXguKMKK+C4nuC4tOC4iuC4jeC5jAor4Lie4Li04LiK4LiiCivguJ7guLTguIrguLHguKIKK+C4nuC4tOC4iuC4seC4ouC4quC4h+C4hOC4o+C4suC4oQor4Lie4Li04LiK4Liy4LiZCivguJ7guLTguIrguLTguJUKK+C4nuC4tOC4iuC4tOC4lS0KK+C4nuC4tOC4iuC4tOC4leC4oeC4suC4owor4Lie4Li04LmA4LiK4LiQCivguJ7guLTguYDguIrguLXguKLguKMKK+C4nuC4tOC4keC4ueC4o+C4ouC5jAor4Lie4Li04LiTCivguJ7guLTguJPguJ7guLLguJfguKLguYwKK+C4nuC4tOC4lOC4l+C4ueC4pQor4Lie4Li04LiU4Lij4LiBCivguJ7guLTguJTguLLguJkKK+C4nuC4tOC5guC4lOC4owor4Lie4Li04LiV4LijCivguJ7guLTguJbguKItCivguJ7guLTguJbguKLguLHguJnguJTguKMKK+C4nuC4tOC4luC4tQor4Lie4Li04LiW4Li14Lie4Li04LiW4Lix4LiZCivguJ7guLTguJfguKItCivguJ7guLTguJfguKLguYwKK+C4nuC4tOC4l+C4ouC4sgor4Lie4Li04LiX4Lii4Liy4LiE4LihCivguJ7guLTguJfguKLguLLguITguLLguKMKK+C4nuC4tOC4l+C4ouC4suC4mOC4owor4Lie4Li04LiX4Lii4Liy4Lie4LilCivguJ7guLTguJfguKLguLLguKXguLHguKIKK+C4nuC4tOC4l+C4seC4geC4qeC5jAor4Lie4Li04LiX4Lix4LiB4Lip4LmM4Liq4Lix4LiZ4LiV4Li0CivguJ7guLTguJfguLnguKMKK+C4nuC4tOC5gOC4l+C4qAor4Lie4Li04LiY4Liy4LiZCivguJ7guLTguJjguLUKK+C4nuC4tOC4mOC4teC4geC4owor4Lie4Li04LiY4Li14LiB4Lij4Lij4LihCivguJ7guLTguJjguLXguIHguLLguKMKK+C4nuC4tOC4mOC4teC4iOC4uOC5iOC4oQor4Lie4Li04LiY4Li14LmB4LiV4LiBCivguJ7guLTguJjguLXguJjguKPguKPguKEKK+C4nuC4tOC4mOC4teC4oeC4k+C4keC4pQor4Lie4Li04LiY4Li14Lij4Li14LiV4Lit4LiHCivguJ7guLTguJjguLXguKrguLLguKMKK+C4nuC4tOC4mOC4uAor4Lie4Li04LiY4Li44LijCivguJ7guLTguJnguJfguLgKK+C4nuC4tOC4meC4l+C4uOC4geC4seC4mwor4Lie4Li04LiZ4LiX4Li44Liq4LijCivguJ7guLTguJnguJ7guIcKK+C4nuC4tOC5iOC4meC4nuC4seC5iOC4hwor4Lie4Li04LiZ4Lit4Lia4Lie4Li04LmA4LiX4LiyCivguJ7guLTguJnguLHguKIKK+C4nuC4tOC4meC4seC4ouC4geC4o+C4o+C4oQor4Lie4Li04LiZ4Liy4LioCivguJ7guLTguJnguLTguIgKK+C4nuC4tOC4meC4tOC4lQor4Lie4Li04LiZ4Li04LioCivguJ7guLTguJnguLTguKjguIjguLHguKIKK+C4nuC4tOC5gOC4meC4lQor4Lie4Li04Lia4Lix4LiV4Li0CivguJ7guLTguJrguLLguIEKK+C4nuC4tOC4muC4uOC4pQor4Lie4Li04Lia4Li54LilCivguJ7guLTguJvguKPguLTguJUKK+C4nuC4tOC4m+C4peC4suC4qgor4Lie4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguJ7guLTguJ7guKPguKPguJgKK+C4nuC4tOC4nuC4o+C4o+C4mOC4meC5jAor4Lie4Li04Lie4Lix4LiB4Lie4Li04Lie4LmI4Lin4LiZCivguJ7guLTguJ7guLHguJIKK+C4nuC4tOC4nuC4seC4kuC4meC5jAor4Lie4Li04Lie4Liy4LiB4Lip4LmMCivguJ7guLTguJ7guLLguIHguKnguLIKK+C4nuC4tOC4nuC4suC4lwor4Lie4Li04Lie4Li04LiYCivguJ7guLTguJ7guLTguJgtCivguJ7guLTguJ7guLTguJjguKDguLHguJPguJHguYwKK+C4nuC4tOC4nuC4tOC4mOC4oOC4seC4k+C4keC4quC4luC4suC4mQor4Lie4Li04Lig4LieCivguJ7guLTguKDguLHguIoKK+C4nuC4tOC4oOC4suC4hAor4Lie4Li04Lig4Li54Lip4LiT4LiwCivguJ7guLTguYDguKDguIEKK+C4nuC4tOC4oeC4m+C4sOC4geC4suC4o+C4seC4hwor4Lie4Li04Lih4LieLQor4Lie4Li04Lih4Lie4LmMCivguJ7guLTguKHguJ7guIHguLLguKPguLHguIcKK+C4nuC4tOC4oeC4nuC5jOC5gOC4guC4teC4ouC4pwor4Lie4Li04Lih4Lie4LmM4LmD4LiICivguJ7guLTguKHguJ7guYzguJTguLXguJQKK+C4nuC4tOC4oeC4nuC5jOC4l+C4reC4hwor4Lie4Li04Lih4Lie4LmM4Lil4Liy4Lii4Lih4Li34LitCivguJ7guLTguKHguJ7guYzguKrguLHguKHguJzguLHguKoKK+C4nuC4tOC4oeC4nuC4sgor4Lie4Li04Lih4Lie4Liy4Lig4Lij4LiT4LmMCivguJ7guLTguKHguYLguJ7guKvguJnguLAKK+C4nuC4tOC4oeC4pQor4Lie4Li04Lih4LmA4Liq4LiZCivguJ7guLTguKHguLLguJkKK+C4nuC4tOC4oeC4uOC4ggor4Lie4Li04LmC4Lih4LiB4LiC4LmMCivguJ7guLTguYLguKHguIHguKnguYwKK+C4nuC4tOC5guC4ouC4geC4nuC4tOC5gOC4geC4mQor4Lie4Li04LmC4Lii4LiECivguJ7guLTguKMKK+C4nuC4tOC4o+C4reC4lAor4Lie4Li04Lij4Liy4LiB4LilCivguJ7guLTguKPguLLguJoKK+C4nuC4tOC4o+C4suC4oQor4Lie4Li04Lij4Liy4Lil4Lix4LiiCivguJ7guLTguKPguLTguKItCivguJ7guLTguKPguLTguKLguJ7guKTguJnguJfguYwKK+C4nuC4tOC4o+C4tOC4ouC5guC4ouC4mOC4sgor4Lie4Li04Lij4Li04Lii4LiwCivguJ7guLTguKPguLXguYnguJ7guLTguYTguKMKK+C4nuC4tOC4o+C4uOC4kwor4Lie4Li04Lij4Li44LiYCivguJ7guLTguKPguLjguKzguKvguYwKK+C4nuC4tOC5gOC4o+C4suC4sAor4Lie4Li04LmC4Lij4LiYCivguJ7guLTguYLguKPguJjguJnguLAKK+C4nuC4tOC5hOC4owor4Lie4Li04Lil4Lix4LiH4LiB4Liy4Liq4LiyCivguJ7guLTguKXguLLguJsKK+C4nuC4tOC4peC4suC4peC4qgor4Lie4Li04Lil4Liy4LiqCivguJ7guLTguKXguLTguJvguJTguLIKK+C4nuC4tOC4peC4tuC4gQor4Lie4Li04Lil4Li24LiB4LiB4Li24LiB4LiB4Li34LitCivguJ7guLTguKXguLbguIHguJ7guLTguKXguLHguYjguJkKK+C4nuC4tOC5guC4peC4mQor4Lie4Li04LmC4Lil4LilCivguJ7guLTguYTguKUKK+C4nuC4tOC4qAor4Lie4Li04Lio4Lin4LiHCivguJ7guLTguKjguKfguLLguKoKK+C4nuC4tOC4qOC4suC4pQor4Lie4Li04Lio4Li44LiX4LiY4LmMCivguJ7guLTguKjguLjguJfguJjguLTguYwKK+C4nuC4tOC5gOC4qOC4qQor4Lie4Li04LipCivguJ7guLTguKktCivguJ7guLTguKnguJDguLLguJkKK+C4nuC4tOC4qeC4meC4suC4qOC4meC5jAor4Lie4Li04Lip4Liq4LiHCivguJ7guLTguKnguKrguKHguYLguKLguIQKK+C4nuC4tOC4qeC4quC4uOC4meC4seC4guC4muC5ieC4sgor4Lie4Li04Lip4Liq4Li44Lij4Liy4LmA4Lij4Li34LmJ4Lit4Lij4Lix4LiHCivguJ7guLTguKrguJTguLLguKMKK+C4nuC4tOC4quC4oeC4owor4Lie4Li04Liq4Lih4Lix4LiiCivguJ7guLTguKrguKHguLHguKLguYDguKPguLXguKLguIfguKvguKHguK3guJkKK+C4nuC4tOC4quC4seC4hwor4Lie4Li04Liq4Lix4LiKCivguJ7guLTguKrguLHguI3guI3guLUKK+C4nuC4tOC4quC4seC4ogor4Lie4Li04Liq4Li04LiQCivguJ7guLTguKrguLjguJfguJjguLTguYwKK+C4nuC4tOC4quC4ueC4iOC4meC5jAor4Lie4Li04Lir4LiECivguJ7guLTguKvguYDguITguJnguJfguKPguYwKK+C4nuC4tOC4q+C4suC4owor4Lie4Li04Lis4Liy4LijCivguJ7guLUKK+C4nuC4teC5iAor4Lie4Li14LmJCivguJ7guLXguIrguITguJPguLTguJUKK+C4nuC4teC5iOC4meC5ieC4reC4hwor4Lie4Li14LmI4LmA4Lia4Li04LmJ4LihCivguJ7guLXguYnguYLguJ7guYkKK+C4nuC4teC4oy0KK+C4nuC4teC4o+C4sOC4oeC4tOC4lAor4Lie4Li14LmI4LmA4Lil4Li14LmJ4Lii4LiHCivguJ7guLbguIcKK+C4nuC4tuC5iOC4hwor4Lie4Li24LmI4LiH4LiI4Lih4Li54LiB4LiE4LiZ4Lit4Li34LmI4LiZ4Lir4Liy4Lii4LmD4LiICivguJ7guLbguIfguYPguIgKK+C4nuC4tuC4h+C4leC4sgor4Lie4Li24LmI4LiH4Lil4Liz4LmB4LiC4LmJ4LiH4LiV4Lix4Lin4LmA4Lit4LiHCivguJ7guLbguYjguJoKK+C4nuC4tuC4oQor4Lie4Li24Lih4Lie4LizCivguJ7guLfguIoKK+C4nuC4t+C4iuC4hOC4suC4oQor4Lie4Li34LiK4LiK4Lix4LmJ4LiZ4LiV4LmI4LizCivguJ7guLfguIrguIrguLHguYnguJnguKrguLnguIcKK+C4nuC4t+C4iuC4nuC4seC4meC4mOC4uOC5jAor4Lie4Li34LiUCivguJ7guLfguYnguJkKK+C4nuC4t+C5ieC4meC5hgor4Lie4Li34LmJ4LiZ4LiE4Lin4Liy4Lih4Lij4Li54LmJCivguJ7guLfguYnguJnguJDguLLguJkKK+C4nuC4t+C5ieC4meC4lOC4tQor4Lie4Li34LmJ4LiZ4LmA4LiU4Li04LihCivguJ7guLfguYnguJnguJfguLXguYgKK+C4nuC4t+C5ieC4meC4muC5ieC4suC4mQor4Lie4Li34LmJ4LiZ4LmA4LieCivguJ7guLfguYnguJnguYDguKHguLfguK3guIcKK+C4nuC4t+C5ieC4meC5gOC4quC4teC4ogor4Lie4Li4CivguJ7guLjguIEKK+C4nuC4uOC4geC4suC4oQor4Lie4Li44LiHCivguJ7guLjguYjguIcKK+C4nuC4uOC4h+C5geC4gQor4Lie4Li44LiH4LiI4LiHCivguJ7guLjguIfguJTguK0KK+C4nuC4uOC4h+C4l+C4sOC4peC4suC4ogor4Lie4Li44LiH4Lib4Lil4LiyCivguJ7guLjguIfguJvguKXguLLguIrguYjguK3guJkKK+C4nuC4uOC4h+C4nuC4p+C4hwor4Lie4Li44LiH4Lie4LmI4Lin4LiHCivguJ7guLjguYjguIfguKvguKXguLLguKcKK+C4nuC4uOC5iOC4h+C4q+C4reC4geC5gOC4guC5ieC4suC4o+C4gQor4Lie4Li44LmI4LiH4LmB4Lir4Lil4LiZCivguJ7guLjguJIKK+C4nuC4uOC4kuC4tAor4Lie4Li44LiUCivguJ7guLjguJTguJXguLLguJkKK+C4nuC4uOC4l+C4mAor4Lie4Li44LiX4LiYLQor4Lie4Li44LiX4LiY4LiB4Liy4LilCivguJ7guLjguJfguJjguITguLjguJMKK+C4nuC4uOC4l+C4mOC4iOC4seC4geC4owor4Lie4Li44LiX4LiY4LmA4LiI4LiU4Li14Lii4LmMCivguJ7guLjguJfguJjguIrguLLguJQKK+C4nuC4uOC4l+C4mOC4juC4teC4geC4sgor4Lie4Li44LiX4LiY4LiV4Lix4LiZ4LiV4Lij4LiwCivguJ7guLjguJfguJjguJvguI/guLTguKHguLIKK+C4nuC4uOC4l+C4mOC4m+C4j+C4tOC4oeC4suC4geC4owor4Lie4Li44LiX4LiY4Lih4Liy4Lih4LiB4LiwCivguJ7guLjguJfguJjguKPguLHguIHguKnguLIKK+C4nuC4uOC4l+C4mOC4qOC4seC4geC4o+C4suC4igor4Lie4Li44LiX4LiY4Lio4Liy4Liq4LiZ4Li04LiB4LiK4LiZCivguJ7guLjguJfguJjguKrguKHguLHguKIKK+C4nuC4uOC4l+C4mOC4sAor4Lie4Li44LiX4LiY4Lix4LiH4LiB4Li54LijCivguJ7guLjguJfguJjguLHguJnguJTguKMKK+C4nuC4uOC4l+C4mOC4suC4h+C4geC4ueC4owor4Lie4Li44LiX4LiY4Liy4Lin4Liy4LiqCivguJ7guLjguJfguJjguLQKK+C4nuC4uOC4l+C4mOC4uOC4m+C4muC4suC4l+C4geC4suC4pQor4Lie4Li44LiX4LmC4LiY4LmICivguJ7guLjguJfguKPguLIKK+C4nuC4uOC4mAor4Lie4Li44Lie4Lit4LiHCivguJ7guLjguYjguKEKK+C4nuC4uOC5iOC4oeC4guC5ieC4suC4p+C4muC4tOC4k+C4keC5jAor4Lie4Li44LmI4Lih4Lie4Lin4LiHCivguJ7guLjguYjguKHguKHguYjguLLguKIKK+C4nuC4uOC4oeC5gOC4o+C4teC4ouC4hwor4Lie4Li44LmJ4LiiCivguJ7guLkKK+C4nuC4ueC5iAor4Lie4Li54LmI4LiB4Lil4Li04LmI4LiZCivguJ7guLnguYjguIHguLHguJkKK+C4nuC4ueC4geC4suC4oQor4Lie4Li54LiUCivguJ7guLnguJTguITguKXguYjguK3guIfguYDguKvguKHguLfguK3guJnguKXguYjguK3guIfguJnguYnguLMKK+C4nuC4ueC4lOC4iOC4meC4peC4tOC4h+C4q+C4peC4seC4mgor4Lie4Li54LiU4LiI4Lij4Li04LiH4LiX4Liz4LiI4Lij4Li04LiHCivguJ7guLnguJTguYDguJvguYfguJnguJXguYjguK3guKLguKvguK3guKIKK+C4nuC4ueC4lOC5gOC4m+C5h+C4meC4meC4seC4ogor4Lie4Li54LiU4LmA4Lib4LmH4LiZ4LiZ4LmJ4Liz4LmE4Lir4Lil4LmE4Lif4LiU4Lix4LiaCivguJ7guLnguJTguYDguJvguYfguJnguYTguJ8KK+C4nuC4ueC4lOC5hOC4m+C4quC4reC4h+C5hOC4nuC5gOC4muC4teC5ieC4oiDguJnguLTguYjguIfguYDguKrguLXguKLguJXguLPguKXguLbguIfguJfguK3guIcKK+C4nuC4ueC4lOC4reC4ouC5iOC4suC4h+C4oeC4sOC4meC4suC4p+C5hOC4oeC5iOC4oeC4teC4meC5ieC4swor4Lie4Li54LiZCivguJ7guLnguYnguJkKK+C4nuC4ueC4nuC4reC4mQor4Lie4Li54LmI4Lij4Liw4Lir4LiHCivguYDguJ4KK+C5gOC4nuC5h+C4gQor4LmA4Lie4LiB4LiyCivguYDguJ7guITguLAKK+C5gOC4nuC5h+C4hwor4LmA4Lie4LmI4LiHCivguYDguJ7guYjguIfguYDguKXguYfguIcKK+C5gOC4nuC5h+C4iAor4LmA4Lie4LmH4LiI4LmE4Lih4LmJCivguYDguJ7guIrguInguKXguLnguIHguKPguKPguKEKK+C5gOC4nuC4iuC4jOC4huC4suC4lQor4LmA4Lie4LiK4LijCivguYDguJ7guIrguKMtCivguYDguJ7guIrguKPguIHguKXguLHguJoKK+C5gOC4nuC4iuC4o+C4i+C4teC4gQor4LmA4Lie4LiK4Lij4LiU4LiyCivguYDguJ7guIrguKPguJXguLHguJTguYDguJ7guIrguKMKK+C5gOC4nuC4iuC4o+C4leC4suC5geC4oeC4pwor4LmA4Lie4LiK4Lij4LiZ4LmJ4Liz4LiE4LmJ4Liy4LiHCivguYDguJ7guIrguKPguJnguYnguLPguKvguJnguLbguYjguIcKK+C5gOC4nuC4iuC4o+C4meC4tOC4peC4iOC4tOC4meC4lOC4sgor4LmA4Lie4LiK4Lij4Lib4Liy4LiT4Li1CivguYDguJ7guIrguKPguKPguYjguKfguIcKK+C5gOC4nuC4iuC4o+C4o+C5ieC4suC4pwor4LmA4Lie4LiK4Lij4Lik4LiB4Lip4LmMCivguYDguJ7guIrguKPguKXguLnguIEKK+C5gOC4nuC4iuC4o+C4quC4seC4h+C4huC4suC4lQor4LmA4Lie4LiK4Lij4Lir4Lil4Li14LiBCivguYDguJ7guIrguKPguKvguLbguIcKK+C5gOC4nuC4iuC4o+C4suC4ouC4uOC4mAor4LmA4Lie4LmH4LiNCivguYDguJ7guJHguLnguKPguLTguKLguYwKK+C5gOC4nuC4k+C4tQor4LmA4Lie4LmH4LiU4LiX4Li54LilCivguYDguJ7guJTguLLguJkKK+C5gOC4nuC4lOC4suC4meC4muC4tOC4mQor4LmA4Lie4LiV4LijCivguYDguJ7guJcKK+C5gOC4nuC4l+C4meC4sgor4LmA4Lie4LiX4Liy4LiiCivguYDguJ7guJfguLjguJrguLLguKIKK+C5gOC4nuC5guC4lwor4LmA4Lie4LmC4LiX4Lia4Liy4LiiCivguYDguJ7guYjguJnguJ7guYjguLLguJkKK+C5gOC4nuC4meC4teC4ouC4lAor4LmA4Lie4LmE4LiZ4LiiCivguYDguJ7guYnguKIKK+C5gOC4nuC4o+C4hwor4LmA4Lie4Lij4LiL4Li14LmC4Lit4LiU4Li04LmA4Lih4Li14Lii4LihCivguYDguJ7guKPguLIKK+C5gOC4nuC4o+C4suC4h+C4suC4ogor4LmA4Lie4Lij4Liy4Lie4Lij4Li04LmJ4LiHCivguYDguJ7guKPguLLguYDguJ7guKPguLTguKgKK+C5gOC4nuC4o+C4suC4sAor4LmA4Lie4Lij4Liy4Liw4LiJ4Liw4LiZ4Lix4LmJ4LiZCivguYDguJ7guKPguLLguLDguKfguYjguLIKK+C5gOC4nuC4o+C4tOC4lAor4LmA4Lie4Lij4Li04LioCivguYDguJ7guKPguLTguKjguJ7guKPguLLguKIKK+C5gOC4nuC4o+C4tOC4qOC4nuC4o+C4tOC5ieC4hwor4LmA4Lie4Lij4Li04Lio4LmB4Lie4Lij4LmJ4LinCivguYDguJ7guKPguLXguKLguIEKK+C5gOC4nuC4o+C4teC4ouC4geC4nuC4o+C5ieC4reC4hwor4LmA4Lie4Lij4Li14Lii4LiHCivguYDguJ7guKPguLXguKLguIfguITguK3guKvguYjguLLguJkKK+C5gOC4nuC4o+C4teC4ouC4h+C5gOC4oeC4t+C4reC4hwor4LmA4Lie4Lij4Li14Lii4LiaCivguYDguJ7guKPguLXguYnguKLguKEKK+C5gOC4nuC4o+C4teC5ieC4ouC4oeC4nuC4o+C4suC4ogor4LmA4Lie4Lij4Li14Lii4LinCivguYDguJ7guKPguLXguKLguKfguKXguKEKK+C5gOC4nuC4o+C4t+C5iOC4rQor4LmA4Lie4Lij4Li34Lit4LiHCivguYDguJ7guKUKK+C5gOC4nuC4peC4hwor4LmA4Lie4Lil4LiH4LmA4LiK4Li04LiUCivguYDguJ7guKXguIfguJXguKPguLDguYDguIrguLTguI0KK+C5gOC4nuC4peC4h+C4ouC4suC4pwor4LmA4Lie4Lil4LiH4Liq4Liy4LiY4Li44LiB4Liy4LijCivguYDguJ7guKXguIfguYDguKrguKHguK0KK+C5gOC4nuC4peC4h+C4q+C4meC5ieC4suC4nuC4suC4l+C4ouC5jAor4LmA4Lie4Lil4LmH4LiUCivguYDguJ7guKXguYnguYLguJ7guKXguYkKK+C5gOC4nuC4peC4sgor4LmA4Lie4Lil4Liy4LiwCivguYDguJ7guKXguLLguLDguYHguJ7guKXguLAKK+C5gOC4nuC4peC4tOC4hwor4LmA4Lie4Lil4Li04LiH4LiB4Lix4Lil4Lib4LmMCivguYDguJ7guKXguLTguIfguJ/guYnguLIKK+C5gOC4nuC4peC4tOC4lOC5gOC4nuC4peC4tOC4mQor4LmA4Lie4Lil4Li04LiZCivguYDguJ7guKXguLXguKIKK+C5gOC4nuC4peC4teC5ieC4ogor4LmA4Lie4Lil4Li14LmI4Lii4LiHCivguYDguJ7guKXguLXguYjguKLguIfguJ7guKXguYnguLMKK+C5gOC4nuC4peC4teC4ouC5g+C4iAor4LmA4Lie4LioCivguYDguJ7guKjguKLguLHguJnguJTguKMKK+C5gOC4nuC4qgor4LmA4Lie4Liq4Lil4Liy4LiUCivguYDguJ7guYjguK0KK+C5gOC4nuC5ieC4rQor4LmA4Lie4LmJ4Lit4LmA4LiI4LmJ4LitCivguYDguJ7guK3guLTguI0KK+C5gOC4nuC4sAor4LmA4Lie4LiyCivguYDguJ7guLLguJ7guLDguIfguLIKK+C5gOC4nuC4suC4nuC4suC4pQor4LmA4Lie4Liy4LiwCivguYDguJ7guLTguIEKK+C5gOC4nuC4tOC4geC5gOC4ieC4ogor4LmA4Lie4Li04LiB4LiW4Lit4LiZCivguYDguJ7guLTguIcKK+C5gOC4nuC4tOC5iOC4hwor4LmA4Lie4Li04LiU4LmA4Lie4LmJ4LiiCivguYDguJ7guLTguYjguKEKK+C5gOC4nuC4tOC5iOC4oeC5gOC4leC4tOC4oQor4LmA4Lie4Li04LmI4Lih4Lie4Li54LiZCivguYDguJ7guLXguYnguKIKK+C5gOC4nuC4teC5ieC4ouC4geC4p+C4suC4mQor4LmA4Lie4Li14LmJ4Lii4LiB4Lin4LmJ4Liy4LiZCivguYDguJ7guLXguKLguIcKK+C5gOC4nuC4teC5ieC4ouC4hwor4LmA4Lie4Li14Lii4LiH4LiU4Lix4LiHCivguYDguJ7guLXguKLguIfguJnguLHguYnguJkKK+C5gOC4nuC4teC4ouC4h+C4meC4teC5iQor4LmA4Lie4Li14Lii4LiH4Lie4LitCivguYDguJ7guLXguKLguIfguK3guK0KK+C5gOC4nuC4teC4ouC4iuC4meC5jAor4LmA4Lie4Li14Lii4LiZCivguYDguJ7guLXguYnguKLguJkKK+C5gOC4nuC4teC5ieC4ouC4meC4nOC4seC4lAor4LmA4Lie4Li14Lii4LiaCivguYDguJ7guLXguKLguJrguJ7guKPguYnguK3guKEKK+C5gOC4nuC4teC4ouC4owor4LmA4Lie4Li34LmI4LitCivguYDguJ7guLfguYjguK3guJkKK+C5gOC4nuC4t+C5iOC4reC4meC5gOC4geC4peC4rQor4LmA4Lie4Li34LmI4Lit4LiZ4LmA4LiI4LmJ4Liy4Lia4LmI4Liy4LinCivguYDguJ7guLfguYjguK3guJnguYDguIjguYnguLLguKrguLLguKcKK+C5gOC4nuC4t+C5iOC4reC4meC4muC5ieC4suC4mQor4LmA4Lie4Li34LmI4Lit4LiZ4Lid4Li54LiHCivguYHguJ4KK+C5geC4nuC5iQor4LmB4Lie4LiC4LiZ4Liy4LiZ4Lii4LiZ4LiV4LmMCivguYHguJ7guIcKK+C5geC4nuC5iOC4hwor4LmB4Lie4LiH4Lie4Lin4LiiCivguYHguJ7guIfguJ7guKfguKLguJ3guKPguLHguYjguIcKK+C5geC4nuC5h+C4h+C5geC4nuC4pwor4LmB4Lie4LmB4LiV4LiBCivguYHguJ7guJfguKItCivguYHguJ7guJfguKLguYwKK+C5geC4nuC4l+C4ouC4qOC4suC4quC4leC4o+C5jAor4LmB4Lie4LiX4Lii4LiyCivguYHguJ7guYnguJfguYnguK3guIcKK+C5geC4nuC4mQor4LmB4Lie4LmI4LiZCivguYHguJ7guJnguIEKK+C5geC4nuC4meC4h+C5gOC4iuC4tOC4hwor4LmB4Lie4LmJ4LmA4Lib4LmH4LiZ4Lie4Lij4LiwIOC4iuC4meC4sOC5gOC4m+C5h+C4meC4oeC4suC4owor4LmB4Lie4LmJ4LmA4Lib4Lij4Li14Lii4LiaCivguYHguJ7guYnguJzguKEKK+C5geC4nuC5ieC4nOC4seC4pwor4LmB4Lie4LmJ4Lif4Lix4LiZCivguYHguJ7guYnguKDguLHguKLguJXguLHguKcKK+C5geC4nuC5ieC5gOC4oeC4teC4ogor4LmB4Lie4LijCivguYHguJ7guKPguYgKK+C5geC4nuC4o+C4gQor4LmB4Lie4Lij4LmI4LiC4LmI4Liy4LinCivguYHguJ7guKPguYjguIcKK+C5geC4nuC4o+C5iOC4h+C4nuC4o+C4suC4ogor4LmB4Lie4Lij4LinCivguYHguJ7guKPguYnguKcKK+C5geC4nuC4o+C4p+C4nuC4o+C4suC4ogor4LmB4Lie4Lij4Lin4Lie4Lij4Liy4LinCivguYHguJ7guKPguYjguKvguKXguLLguKIKK+C5geC4nuC5ieC4o+C4ueC5iQor4LmB4Lie4LmJ4LmB4Lij4LiHCivguYHguJ7guKXguIcKK+C5geC4nuC4peC4l+C4tOC4meC4seC4oQor4LmB4Lie4Lil4LihCivguYHguJ7guKXguYDguKXguYDguJTguLXguKLguKEKK+C5geC4nuC4peC4sAor4LmB4Lie4Lil4Liw4LmC4Lil4LihCivguYHguJ7guKXguLnguIHguJrguKfguJoKK+C5geC4nuC4pwor4LmB4Lie4LmJ4LinCivguYHguJ7guKjguKLguYwKK+C5geC4nuC4qOC4ouC4sgor4LmB4Lie4LiwCivguYHguJ7guLDguKPguLHguJrguJrguLLguJsKK+C5geC4nuC4sOC5guC4peC4oQor4LmC4LieCivguYLguJ7guIEKK+C5guC4nuC4geC4nuC4suC4ogor4LmC4Lie4LiHCivguYLguJ7guIfguJ7guLLguIcKK+C5guC4nuC4iuC4jOC4h+C4hOC5jAor4LmC4Lie4LiL4Li04LiV4Lij4Lit4LiZCivguYLguJ7guJQKK+C5guC4nuC4l+C4sOC5gOC4pQor4LmC4Lie4LmB4LiX4Liq4LmA4LiL4Li14Lii4LihCivguYLguJ7guJgKK+C5guC4nuC4mOC4tC0KK+C5guC4nuC4mOC4tOC5jAor4LmC4Lie4LiY4Li04LiN4Liy4LiTCivguYLguJ7guJjguLTguJrguLHguKXguKXguLHguIfguIHguYwKK+C5guC4nuC4mOC4tOC4m+C4seC4geC4guC4tOC4ouC4mOC4o+C4o+C4oQor4LmC4Lie4LiY4Li04Liq4Lih4Lig4Liy4LijCivguYLguJ7guJjguLTguKrguLHguJXguKfguYwKK+C5guC4nuC4mQor4LmC4Lie4LmJ4LiZCivguYLguJ7guJnguJfguLDguJnguLIKK+C5guC4nuC5ieC4meC4l+C4sOC5gOC4pQor4LmC4Lie4LiZ4LmA4Lie4LiZCivguYLguJ7guJrguLLguKIKK+C5guC4nuC4nOC4seC4mQor4LmC4Lie4LiiCivguYLguJ7guKLguIHguYrguKfguJkKK+C5guC4nuC4ouC4oQor4LmC4Lie4Lii4Lih4Lii4Liy4LiZCivguYLguJ7guKLguKHguLHguJkKK+C5guC4nuC4ouC4oeC4suC4mQor4LmC4Lie4Lij4LiBCivguYLguJ7guKPguIcKK+C5guC4nuC4o+C4h+C5geC4quC4oQor4LmC4Lie4Lij4LmC4LiX4LmB4Lit4LiB4LiX4Li04LmA4LiZ4Li14Lii4LihCivguYLguJ7guKPguKHguLXguYDguJfguLXguKLguKEKK+C5guC4nuC4o+C4sOC4lOC4gQor4LmC4Lie4Lil4LmICivguYLguJ7guKXguIcKK+C5guC4nuC4peC5iOC4hwor4LmC4Lie4Lil4LmJ4LiHCivguYLguJ7guKXguJkKK+C5guC4nuC4peC5ieC5gOC4nuC4peC5iQor4LmC4Lie4Lil4LiwCivguYLguJ7guKrguJ4KK+C5hOC4ngor4LmE4Lie4LmICivguYTguJ7guIjguLTguJXguKMKK+C5hOC4nuC4iuC4mQor4LmE4Lie4LiK4Lii4LiZ4LiV4LmMCivguYTguJ7guJHguLnguKPguKLguYwKK+C5hOC4nuC5guC4lOC4owor4LmE4Lie4LiX4Li1CivguYTguJ7guJrguLnguKXguKLguYwKK+C5hOC4nuC5iOC4m+C5iuC4reC4gQor4LmE4Lie4Lie4Lij4Lij4LiTCivguYTguJ7guYDguJ7guLTguJQKK+C5hOC4nuC5iOC5hOC4nwor4LmE4Lie4Lih4Lit4LiBCivguYTguJ7guKHguYnguLIKK+C5hOC4nuC4owor4LmE4Lie4Lij4LmICivguYTguJ7guKPguITguLTguYnguKcKK+C5hOC4nuC4o+C4iOC4tOC4leC4owor4LmE4Lie4Lij4LiK4LiZCivguYTguJ7guKPguIrguKLguJnguJXguYwKK+C5hOC4nuC4o+C4keC4ueC4o+C4ouC5jAor4LmE4Lie4Lij4LiX4Li1CivguYTguJ7guKPguJrguLnguKXguKLguYwKK+C5hOC4nuC4o+C4m+C4suC4gQor4LmE4Lie4Lij4LmI4Lie4LilCivguYTguJ7guKPguYjguJ/guYnguLIKK+C5hOC4nuC4o+C4o+C4sOC4q+C4hwor4LmE4Lie4Lij4LmA4Lij4Liy4LiwCivguYTguJ7guKPguKfguLHguJkKK+C5hOC4nuC4o+C4quC4k+C4keC5jAor4LmE4Lie4Lij4LmI4Liq4LihCivguYTguJ7guKPguYjguKrguYjguKfguKIKK+C5hOC4nuC4o+C4quC4seC4k+C4keC5jAor4LmE4Lie4Lij4Liq4Liy4LiT4LiR4LmMCivguYTguJ7guKPguKrguLLguKHguIHguK0KK+C5hOC4nuC4o+C5iOC4q+C4peC4p+C4hwor4LmE4Lie4Lij4Lix4LiKCivguYTguJ7guKPguLHguIotCivguYTguJ7guKPguLMKK+C5hOC4nuC4o+C4tOC4mQor4LmE4Lie4Lij4Li04LiZ4LiX4Lij4LmMCivguYTguJ7guKPguLUKK+C5hOC4nuC4o+C4uQor4LmE4Lie4LmA4Lij4Liy4LiwCivguYTguJ7guYLguKPguIjguJnguYwKK+C5hOC4nuC4pQor4LmE4Lie4Lil4LmICivguYTguJ7guKXguYjguKvguKXguLHguIcKK+C5hOC4nuC4qOC4suC4ggor4LmE4Lie4Lio4Liy4LiCLQor4LmE4Lie4Lio4Liy4LiC4Lia4Li44Lij4LiT4Lih4Li1CivguYTguJ7guKjguLLguILguKHguLLguKoKK+C5hOC4nuC4qOC4suC4pQor4LmE4Lie4LmA4Lio4LipCivguYTguJ7guKrguJ4KK+C5hOC4nuC4quC4tOC4kAor4LmE4Lie4Lir4Liy4LijCivguJ8KK+C4n+C4gQor4Lif4LiB4LiK4LmJ4Liz4LiU4Liz4LmA4LiC4Li14Lii4LinCivguJ/guYnguIcKK+C4n+C4o+C4seC4geC5guC4l+C4qgor4Lif4Lij4Li1CivguJ/guKPguLXguJrguLLguKPguYwKK+C4n+C4peC4ueC4reC4reC4o+C4teC4mQor4Lif4LmI4LitCivguJ/guYnguK0KK+C4n+C4reC4gQor4Lif4Lit4LiB4LiL4Lix4LiBCivguJ/guK3guIHguJzguYnguLIKK+C4n+C4reC4geC4nuC4ouC4suC4mQor4Lif4Lit4LiB4LmC4Lil4Lir4Li04LiVCivguJ/guK3guIHguKvguJnguLHguIcKK+C4n+C4reC4hwor4Lif4LmI4Lit4LiHCivguJ/guYnguK3guIcKK+C4n+C5ieC4reC4h+C4geC4peC4seC4mgor4Lif4Lit4LiH4LiB4Liy4LihCivguJ/guYnguK3guIfguJXguLHguKfguYDguK3guIcKK+C4n+C4reC4h+C5gOC4leC5ieC4suC4q+C4ueC5iQor4Lif4Lit4LiH4LiX4Liw4LmA4LilCivguJ/guK3guIfguJnguYnguLMKK+C4n+C5iOC4reC4h+C4n+C4uQor4Lif4Lit4LiH4Lih4Lix4LiZCivguJ/guYnguK3guIfguYHguKLguYnguIcKK+C4n+C5ieC4reC4h+C4o+C5ieC4reC4hwor4Lif4Lit4LiUCivguJ/guK3guJTguYHguJ/guJQKK+C4n+C4reC4mQor4Lif4LmI4Lit4LiZCivguJ/guYnguK3guJkKK+C4n+C5ieC4reC5geC4n+C5iQor4Lif4Lit4Lij4LmM4Lih4Liy4Lil4LiU4Li14LmE4Liu4LiU4LmMCivguJ/guK3guKPguYzguKHguLLguKXguLTguJkKK+C4n+C4reC4quC4n+C4reC4o+C4seC4qgor4Lif4Lit4Liq4LmA4Lif4LiVCivguJ/guLDguJ/guLHguJQKK+C4n+C4sOC4n+C4seC5iOC4mQor4Lif4Liw4Lif4LmI4Liy4LiiCivguJ/guLHguIEKK+C4n+C4seC4geC4guC5ieC4suC4pwor4Lif4Lix4LiB4LiV4Lix4LinCivguJ/guLHguIHguJfguK3guIcKK+C4n+C4seC4geC4n+C4uOC5ieC4mQor4Lif4Lix4LiB4Lif4Li54LihCivguJ/guLHguIHguYDguKvguKXguLfguK3guIcKK+C4n+C4seC4hwor4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZCivguJ/guLHguIfguILguLbguYnguJkKK+C4n+C4seC4h+C5hOC4lOC5iQor4Lif4Lix4LiH4LmE4Lih4LmI4LmE4LiU4LmJ4Lio4Lix4Lie4LiX4LmMIOC4iOC4seC4muC5hOC4m+C4geC4o+C4sOC5gOC4lOC4teC4ouC4lAor4Lif4Lix4LiH4Lir4Li54LmE4Lin4LmJ4Lir4Li5CivguJ/guLHguIfguK3guK3guIEKK+C4n+C4seC4lAor4Lif4Lix4LiU4LmA4Lif4Li14Lii4LiUCivguJ/guLHguJkKK+C4n+C4seC5iOC4mQor4Lif4Lix4LmJ4LiZCivguJ/guLHguJnguITguKXguLfguYjguJkKK+C4n+C4seC4meC4iuC5ieC4suC4hwor4Lif4Lix4LiZ4LiU4Liy4LiaCivguJ/guLHguJnguJbguLLguKfguKMKK+C4n+C4seC4meC5geC4l+C5iQor4Lif4Lix4LiZ4LiZ4LmJ4Liz4LiZ4LihCivguJ/guLHguJnguJvguKXguLIKK+C4n+C4seC4meC4neC5iOC4sgor4Lif4Lix4LmI4LiZ4LmA4Lid4Li34LitCivguJ/guLHguJnguYDguJ/guLfguK3guIcKK+C4n+C4seC5iOC4meC5gOC4n+C4t+C4reC4mQor4Lif4Lix4LiZ4Lih4LmJ4LiyCivguJ/guLHguJnguYDguKXguLfguYjguK3guKIKK+C4n+C4seC4meC4q+C4meC4uQor4Lif4Lix4LiZ4Lir4Lil4LitCivguJ/guYnguLIKK+C4n+C4suC4gQor4Lif4LmJ4Liy4LiE4Liw4LiZ4Lit4LiHCivguJ/guYnguLLguYDguITguLfguK3guIfguKrguLHguJnguKvguKXguLHguIcKK+C4n+C4suC4hwor4Lif4LmI4Liy4LiHCivguJ/guLLguIfguKXguK3guKIKK+C4n+C4suC4lAor4Lif4Liy4LiU4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJ/guLLguJTguKvguLHguKcKK+C4n+C4suC4l+C4reC4oQor4Lif4Liy4LiZCivguJ/guYnguLLguJzguYjguLIKK+C4n+C5ieC4suC4neC5iOC4rQor4Lif4LmI4Liy4LihCivguJ/guYnguLLguKHguLjguYjguKIKK+C4n+C5ieC4suC5hOC4oeC5iOC4geC4o+C4sOC5gOC4l+C4t+C4reC4meC4quC4seC4meC4q+C4peC4seC4hwor4Lif4Liy4LiiCivguJ/guLLguKLguJnguYnguLPguJXguLIKK+C4n+C4suC4ouC4oeC4t+C4rQor4Lif4Liy4Lij4LmM4LihCivguJ/guYnguLLguKPguYnguK3guIcKK+C4n+C5ieC4suC5geC4peC4mgor4Lif4Liy4Liq4LiL4Li04Liq4LiV4LmMCivguJ/guYnguLLguKvguKXguLHguKcKK+C4n+C4tOC4gQor4Lif4Li04LiUCivguJ/guLTguJoKK+C4n+C4tOC4peC5jOC4oQor4Lif4Li04Lin4Liq4LmMCivguJ/guLTguKrguLTguIHguKrguYwKK+C4n+C4teC5iAor4Lif4Li14LmJCivguJ/guLfguJkKK+C4n+C4t+C5ieC4mQor4Lif4Li34LmJ4LiZ4LiV4Lix4LinCivguJ/guLfguYnguJnguJ3guK3guKIKK+C4n+C4t+C5ieC4meC4n+C4uQor4Lif4Li34LmJ4LiZ4Lit4LiH4LiE4LmMCivguJ/guLfguKEKK+C4n+C4uAor4Lif4Li44LmJ4LiHCivguJ/guLjguYnguIfguIvguYjguLLguJkKK+C4n+C4uOC5ieC4h+C5gOC4n+C5ieC4rQor4Lif4Li44LmJ4LiH4LmA4Lif4Li34LmI4Lit4LiHCivguJ/guLjguJUKK+C4n+C4uOC4leC4muC4reC4pQor4Lif4Li44LiZCivguJ/guLjguJoKK+C4n+C4uOC5iOC4mgor4Lif4Li44Lif4LiwCivguJ/guLjguYjguKHguYDguJ/guLfguK3guKIKK+C4n+C4uOC4peC4quC5geC4geC5iuC4mwor4Lif4Li5CivguJ/guLnguYgKK+C4n+C4ueC4gQor4Lif4Li54LiUCivguJ/guLnguJTguJ/guLLguJQKK+C4n+C4ueC4n+C5iOC4reC4hwor4Lif4Li54LihCivguJ/guLnguKHguJnguYnguLMKK+C4n+C4ueC4oeC4n+C4seC4gQor4Lif4Li54Lih4Lif4Liy4LiiCivguJ/guLnguKHguYDguKXguLXguYnguKLguIcKK+C5gOC4n+C5h+C4lAor4LmA4Lif4LmH4LiU4Lir4Liy4LinCivguYDguJ/guYnguJkKK+C5gOC4n+C4peC4lOC5jOC4quC4m+C4suC4o+C5jAor4LmA4Lif4LmJ4LitCivguYDguJ/guK3guKPguYzguYDguKHguLXguKLguKEKK+C5gOC4n+C4reC4sAor4LmA4Lif4Lit4Liw4Lif4LiwCivguYDguJ/guLAKK+C5gOC4n+C4sOC4n+C4sAor4LmA4Lif4Li04LiZCivguYDguJ/guLXguYnguKLguKEKK+C5gOC4n+C4teC5ieC4ouC4oeC5gOC4neC5ieC4sgor4LmA4Lif4Li14LmJ4Lii4LinCivguYDguJ/guLfguK0KK+C5gOC4n+C4t+C5iOC4rQor4LmA4Lif4Li34LmJ4LitCivguYDguJ/guLfguK3guIcKK+C5gOC4n+C4t+C5iOC4reC4hwor4LmA4Lif4Li34LmJ4Lit4LiHCivguYDguJ/guLfguYjguK3guIfguJ/guYnguLIKK+C5gOC4n+C4t+C5iOC4reC4h+C4n+C4uOC5ieC4hwor4LmA4Lif4Li34LmI4Lit4LiH4Lif4Li5CivguYDguJ/guLfguK3guJkKK+C5gOC4n+C4t+C4reC4ogor4LmA4Lif4Li34LmJ4Lit4LiiCivguYHguJ/guYgKK+C5geC4n+C4hwor4LmB4Lif4LiK4Lix4LmI4LiZCivguYHguJ/guJoKK+C5geC4n+C5ieC4oQor4LmB4Lif4Lij4LiZ4LmA4LiL4Li14Lii4LihCivguYHguJ/guKXguIHguIvguYwKK+C5geC4n+C4peC4lQor4LmB4Lif4LiwCivguYLguJ/guIHguLHguKoKK+C5hOC4nwor4LmE4Lif4LiB4Lix4Lil4Lib4LmMCivguYTguJ/guIjguLjguIHguJXguLnguJQKK+C5hOC4n+C4ieC4suC4ogor4LmE4Lif4LmB4LiK4LmH4LiBCivguYTguJ/guJjguLLguJXguLgKK+C5hOC4n+C4n+C5ieC4sgor4LmE4Lif4Lif4LmJ4Liy4LiB4Lij4Liw4LmB4LiqCivguYTguJ/guJ/guYnguLLguKrguJbguLTguJUKK+C5hOC4n+C4peC4suC4oeC4l+C4uOC5iOC4hwor4LmE4Lif4Liq4Li44Lih4LiC4Lit4LiZCivguKAKK+C4oOC4hAor4Lig4LiE4Lin4LiU4Li1CivguKDguITguKfguLHguJUKK+C4oOC4hOC4p+C4seC4meC4leC5jAor4Lig4LiE4Lin4Lix4LihCivguKDguITguKfguLIKK+C4oOC4hOC4p+C4suC4mQor4Lig4LiE4Lix4LiZ4LiX4Lil4LiyCivguKDguITguLTguJnguLUKK+C4oOC4kwor4Lig4LiT4Li04LiU4LiyCivguKDguJ4KK+C4oOC4oeC4geC4suC4owor4Lig4Lih4LijCivguKDguKHguKPguLTguJkKK+C4oOC4oeC4o+C4tQor4Lig4Lih4Li4CivguKDguKHguLjguIHguLAKK+C4oOC4oeC4uOC4geC4sgor4Lig4LiiLQor4Lig4Lii4Lix4LiZ4LiV4Lij4Liy4LiiCivguKDguKLguLLguITguJXguLQKK+C4oOC4owor4Lig4Lij4LiT4Li1CivguKDguKPguJPguLXguKDguLkKK+C4oOC4o+C4lQor4Lig4Lij4LiVLQor4Lig4Lij4LiV4Lin4Lij4Lij4LipCivguKDguKPguJXguKjguLLguKrguJXguKPguYwKK+C4oOC4o+C4o+C4lOC4owor4Lig4Lij4Lij4LiU4LiyCivguKDguKPguKPguKLguLIKK+C4oOC4o+C4sOC4oeC4owor4Lig4Lij4Liw4Lih4Lij4Li1CivguKDguKPguLHguKrguJTguLLguKkKK+C4oOC4o+C4suC4lOC4owor4Lig4Lij4Liy4LiU4Lij4Lig4Liy4LieCivguKDguKPguLLguJTguLIKK+C4oOC4o+C4suC4leC4oy0KK+C4oOC4o+C4suC4leC4o+C4oOC4suC4ngor4Lig4Lij4Liy4LiV4LikLQor4Lig4Lij4Liy4LiV4Lik4Lig4Liy4LieCivguKDguKPguLTguKLguLIKK+C4oOC4o+C4uQor4Lig4Lij4Li54Lih4LiT4LiR4LilCivguKDguKTguIfguITguLLguKMKK+C4oOC4pOC4lOC4gQor4Lig4Lik4LiU4Li1CivguKDguKTguJXguKLguYwKK+C4oOC4pOC4qAor4Lig4Lik4Lip4LiP4LmMCivguKDguKcKK+C4oOC4py0KK+C4oOC4p+C4geC4qeC4seC4ogor4Lig4Lin4LiV4Lix4LiT4Lir4LiyCivguKDguKfguJnguLAKK+C4oOC4p+C4m+C4suC4o+C4sAor4Lig4Lin4Lix4LiE4LijCivguKDguKfguLHguIfguIQtCivguKDguKfguLHguIfguITguYwKK+C4oOC4p+C4seC4h+C4hOC4iOC4tOC4lQor4Lig4Lin4Lix4LiZ4LiU4LijCivguKDguKfguLLguKDguJ4KK+C4oOC4seC4geC4guC4sAor4Lig4Lix4LiB4LiU4Li1CivguKDguLHguIHguJUtCivguKDguLHguIHguJXguIHguKTguJXguKLguYwKK+C4oOC4seC4geC4leC4sAor4Lig4Lix4LiB4LiV4Li0CivguKDguLHguIHguKktCivguKDguLHguIHguKnguYwKK+C4oOC4seC4geC4qeC4geC4suC4owor4Lig4Lix4LiB4Lip4LiyCivguKDguLHguIHguKnguLLguKvguLLguKMKK+C4oOC4seC4hAor4Lig4Lix4LiE4LiZ4LmMCivguKDguLHguIfguIQtCivguKDguLHguIfguITguLAKK+C4oOC4seC4h+C4hOC4tQor4Lig4Lix4LiICivguKDguLHguI3guIrguLAKK+C4oOC4seC4k+C4kS0KK+C4oOC4seC4k+C4keC5jAor4Lig4Lix4LiT4LiR4LiE4Lij4Lij4LigCivguKDguLHguJPguJHguJnguLAKK+C4oOC4seC4k+C4keC4suC4hOC4suC4owor4Lig4Lix4LiT4LiR4Liy4LiE4Liy4Lij4Li04LiBCivguKDguLHguJPguJHguLLguKPguLHguIHguKnguYwKK+C4oOC4seC4k+C4keC4uQor4Lig4Lix4LiT4LiR4Li54LiB4Lij4Lij4LihCivguKDguLHguJUKK+C4oOC4seC4lS0KK+C4oOC4seC4leC4geC4tOC4iAor4Lig4Lix4LiV4LiV4Liy4LiE4Liy4LijCivguKDguLHguJXguJXguLLguKvguLLguKMKK+C4oOC4seC4leC4owor4Lig4Lix4LiX4LijCivguKDguLHguJfguKMtCivguKDguLHguJfguKPguIHguLHguJsKK+C4oOC4seC4l+C4o+C4geC4uOC4oeC4oOC5jAor4Lig4Lix4LiX4Lij4Lia4LiX4Lih4Liy4LiqCivguKDguLHguJfguKPguJrguLTguJAKK+C4oOC4seC4ngor4Lig4Lix4LiiCivguKDguLHguKrguJTguLIKK+C4oOC4seC4quC4leC4o+C4sgor4Lig4Lix4Liq4Lih4LiwCivguKDguLHguKrguKrguKMKK+C4oOC4sgor4Lig4Liy4LiB4LijCivguKDguLLguIQKK+C4oOC4suC4hC0KK+C4oOC4suC4hOC4leC4seC4lOC4geC4o+C4p+C4ogor4Lig4Liy4LiE4LiX4Lik4Lip4LiO4Li1CivguKDguLLguITguJfguLHguJPguJHguYwKK+C4oOC4suC4hOC4meC4tOC4nuC4meC4mOC5jAor4Lig4Liy4LiE4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguKDguLLguITguJ7guLfguYnguJkKK+C4oOC4suC4hOC4oOC4ueC4oeC4tAor4Lig4Liy4LiE4Lii4LmMCivguKDguLLguITguKLguLLguJnguLjguKfguLHguJXguLQKK+C4oOC4suC4hOC5gOC4o+C4teC4ouC4mQor4Lig4Liy4LiE4LmA4Liq4LiYCivguKDguLLguITguLTguJnguLUKK+C4oOC4suC4hOC4tOC5hOC4meC4ogor4Lig4Liy4LiE4Li1CivguKDguLLguITguLXguKLguLAKK+C4oOC4suC4iuC4meC4sAor4Lig4Liy4LiK4LiZ4Li14LiiLQor4Lig4Liy4LiK4Li1CivguKDguLLguJMKK+C4oOC4suC4ky0KK+C4oOC4suC4k+C4gQor4Lig4Liy4LiT4Lin4Liy4LijCivguKDguLLguJPguLUKK+C4oOC4suC4k+C4uAor4Lig4Liy4LiT4Li44Lih4Liy4LioCivguKDguLLguJTguKMKK+C4oOC4suC4lOC4sgor4Lig4Liy4LiV4LijCivguKDguLLguJXguLIKK+C4oOC4suC4leC4tOC4geC4sAor4Lig4Liy4LiV4Li04Lii4LiwCivguKDguLLguJXguLgKK+C4oOC4suC4ngor4Lig4Liy4LieLQor4Lig4Liy4Lie4LiB4Liy4LiBCivguKDguLLguJ7guIjguKPguLTguIcKK+C4oOC4suC4nuC4luC5iOC4suC4ogor4Lig4Liy4Lie4LiZ4Li04LmI4LiHCivguKDguLLguJ7guJvguKPguLDguIHguK3guJoKK+C4oOC4suC4nuC4m+C4ueC4meC5gOC4m+C4teC4ouC4gQor4Lig4Liy4Lie4Lie4LiI4LiZ4LmMCivguKDguLLguJ7guKLguYwKK+C4oOC4suC4nuC4ouC4meC4leC4o+C5jAor4Lig4Liy4Lie4Lil4Lin4LiH4LiV4LiyCivguKDguLLguJ7guKXguLHguIHguKnguJPguYwKK+C4oOC4suC4nuC5gOC4quC4oeC4t+C4reC4mQor4Lig4Liy4Lie4Lir4Li44LmI4LiZ4LiZ4Li04LmI4LiHCivguKDguLLguKEKK+C4oOC4suC4ogor4Lig4Liy4Lii4LiZ4Lit4LiBCivguKDguLLguKLguYPguJkKK+C4oOC4suC4ouC4q+C4meC5ieC4sgor4Lig4Liy4Lii4Lir4Lil4Lix4LiHCivguKDguLLguKMKK+C4oOC4suC4oy0KK+C4oOC4suC4o+C4geC4tOC4iAor4Lig4Liy4Lij4LiU4Li1CivguKDguLLguKPguJUKK+C4oOC4suC4o+C4lS0KK+C4oOC4suC4o+C4leC4p+C4tOC4l+C4ouC4sgor4Lig4Liy4Lij4LiV4Li1CivguKDguLLguKPguJjguLjguKPguLAKK+C4oOC4suC4o+C4ouC4l+C4o+C4seC4nuC4ouC5jAor4Lig4Liy4Lij4Lii4LiyCivguKDguLLguKPguYLguKPguIcKK+C4oOC4suC4o+C4sAor4Lig4Liy4Lij4Liw4LiI4Liz4Lii4Lit4LihCivguKDguLLguKPguLDguJXguLTguJTguJ7guLHguJkKK+C4oOC4suC4o+C4sOC4leC4tOC4lOC4nuC4seC4meC5g+C4meC4reC4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Lig4Liy4Lij4LiyCivguKDguLLguKctCivguKDguLLguKfguJnguLIKK+C4oOC4suC4p+C4meC4suC4oeC4seC4ogor4Lig4Liy4Lin4Lio4Li44LiX4LiY4Li0CivguKDguLLguKfguLAKK+C4oOC4suC4p+C4sOC4ieC4uOC4geC5gOC4ieC4tOC4mQor4Lig4Liy4LipCivguKDguLLguKnguIEKK+C4oOC4suC4qeC4k+C5jAor4Lig4Liy4Lip4LiyCivguKDguLLguKnguLLguKjguLLguKrguJXguKPguYwKK+C4oOC4suC4qeC4tOC4lQor4Lig4Liy4Lip4Li1CivguKDguLLguKnguLXguYDguIfguLTguJnguYTguJTguYkKK+C4oOC4suC4qeC4teC4muC4s+C4o+C4uOC4h+C4l+C5ieC4reC4h+C4l+C4teC5iAor4Lig4Liy4Lip4Li14Lih4Li54Lil4LiE4LmI4Liy4LmA4Lie4Li04LmI4LihCivguKDguLLguKnguLXguYLguKPguIfguYDguKPguLfguK3guJnguYHguKXguLDguJfguLXguYjguJTguLTguJkKK+C4oOC4suC4qeC4teC4quC4o+C4o+C4nuC4quC4suC4oeC4tOC4lQor4Lig4Liy4LiqCivguKDguLLguKotCivguKDguLLguKrguIHguKMKK+C4oOC4suC4quC4meC5jAor4Lig4Liy4Liq4Lin4LijCivguKDguLLguKrguLIKK+C4oOC4suC4quC4uOC4owor4Lig4Li04LiB4LiC4LiyCivguKDguLTguIHguILguLLguIjguLLguKMKK+C4oOC4tOC4geC4guC4suC4q+C4suC4owor4Lig4Li04LiB4LiC4Li4CivguKDguLTguIHguILguLjguJnguLUKK+C4oOC4tOC4geC4qeC4sgor4Lig4Li04LiB4Lip4Liy4LiI4Liy4LijCivguKDguLTguIHguKnguLLguKvguLLguKMKK+C4oOC4tOC4geC4qeC4uAor4Lig4Li04LiB4Lip4Li44LiT4Li1CivguKDguLTguIfguITguLLguKMKK+C4oOC4tOC4h+C4qgor4Lig4Li04LiH4Liq4LiZ4LiwCivguKDguLTguIfguKrguKMKK+C4oOC4tOC4jeC5guC4jQor4Lig4Li04LiN4LmC4LiN4Lig4Liy4LieCivguKDguLTguJXguJXguLQKK+C4oOC4tOC4lwor4Lig4Li04LiZLQor4Lig4Li04LiZ4LiK4Liy4LiV4Li0CivguKDguLTguJnguJctCivguKDguLTguJnguJfguYwKK+C4oOC4tOC4meC4l+C4mS0KK+C4oOC4tOC4meC4l+C4meC4suC4geC4suC4owor4Lig4Li04LiZ4Lin4Lij4Lij4LiTCivguKDguLTguKLguYLguKIKK+C4oOC4tOC4ouC5guC4ouC4oOC4suC4ngor4Lig4Li04Lij4Lih4Lii4LmMCivguKDguLTguKPguKHguKLguYzguKrguLjguKPguLLguIfguITguYwKK+C4oOC4tOC4qeC4seC4igor4Lig4Li04LiqCivguKDguLTguKrguLHguIEKK+C4oOC4teC4leC4sAor4Lig4Li14LihCivguKDguLXguKPguLgKK+C4oOC4teC4o+C4uOC4gS0KK+C4oOC4teC4o+C4uOC4geC4iuC4suC4leC4tAor4Lig4Li44LiB4LiVLQor4Lig4Li44LiB4LiV4LmMCivguKDguLjguIHguJXguYDguKjguKkKK+C4oOC4uOC4geC4leC4suC4q+C4suC4owor4Lig4Li44LiC4Lix4LiZCivguKDguLjguIoKK+C4oOC4uOC4ii0KK+C4oOC4uOC4iuC4hAor4Lig4Li44LiK4LiH4LiE4LmMCivguKDguLjguIrguIfguITguJvguKPguLDguKLguLLguJUKK+C4oOC4uOC4iuC4h+C4hOC4oQor4Lig4Li44LiK4Liq4Lih4LmC4Lig4LiECivguKDguLjguIrguLIKK+C4oOC4uOC4jeC4igor4Lig4Li44LiVCivguKDguLjguKEKK+C4oOC4uOC4oS0KK+C4oOC4uOC4oeC5gOC4l+C4p+C4lOC4sgor4Lig4Li44Lih4Lij4LiwCivguKDguLjguKHguKPguLHguJXguJnguYwKK+C4oOC4uOC4oeC4o+C4sgor4Lig4Li44Lih4Lij4Li04LiZCivguKDguLjguKHguKPguLUKK+C4oOC4uOC4oeC5gOC4o+C4qAor4Lig4Li44Lih4Lin4Liy4LijCivguKDguLjguKoKK+C4oOC4uQor4Lig4Li54LmICivguKDguLnguYDguILguLIKK+C4oOC4ueC5gOC4guC4suC4meC5ieC4s+C5geC4guC5h+C4hwor4Lig4Li54LmA4LiC4Liy4LmE4LifCivguKDguLnguYLguIoKK+C4oOC4ueC4lOC4pQor4Lig4Li54LiU4Liy4LiUCivguKDguLnguJUKK+C4oOC4ueC4lS0KK+C4oOC4ueC4leC4hOC4suC4oQor4Lig4Li54LiV4Lia4LiU4Li1CivguKDguLnguJXguKPguLnguJsKK+C4oOC4ueC4leC4tAor4Lig4Li54LiV4Li1CivguKDguLnguYDguJXguKjguKfguKMKK+C4oOC4ueC4mOC4owor4Lig4Li54LiY4LmA4Lij4LioCivguKDguLnguJjguYDguKPguKjguKfguKMKK+C4oOC4ueC4meC4suC4lgor4Lig4Li54LiZ4Liy4Lii4LiBCivguKDguLnguYDguJnguJXguLgKK+C4oOC4ueC4muC4lOC4tOC4meC4l+C4o+C5jAor4Lig4Li54Lia4LiU4Li1CivguKDguLnguJrguLLguKUKK+C4oOC4ueC5gOC4muC4meC4l+C4o+C5jAor4Lig4Li54LmA4Lia4LioCivguKDguLnguYDguJrguKjguKfguKPguYwKK+C4oOC4ueC4mwor4Lig4Li54Lic4LiyCivguKDguLnguKDguLjguIoKK+C4oOC4ueC4oQor4Lig4Li54Lih4Li0CivguKDguLnguKHguLQtCivguKDguLnguKHguLTguITguLjguYnguKHguIHguLHguJkKK+C4oOC4ueC4oeC4tOC5g+C4iAor4Lig4Li54Lih4Li04LiQ4Liy4LiZCivguKDguLnguKHguLTguJjguKMKK+C4oOC4ueC4oeC4tOC4mOC4o+C4o+C4oQor4Lig4Li54Lih4Li04LiZ4LiX4Lij4LmMCivguKDguLnguKHguLTguJnguLLguJYKK+C4oOC4ueC4oeC4tOC4muC4lOC4tQor4Lig4Li54Lih4Li04Lia4Lij4Li04Lih4Liy4LiTCivguKDguLnguKHguLTguJrguLLguKUKK+C4oOC4ueC4oeC4tOC4m+C4o+C4sOC5gOC4l+C4qAor4Lig4Li54Lih4Li04Lib4Lix4LiN4LiN4LiyCivguKDguLnguKHguLTguYHguJ7guYkKK+C4oOC4ueC4oeC4tOC4oOC4suC4hAor4Lig4Li54Lih4Li04Lig4Li44LiKCivguKDguLnguKHguLTguKPguLHguJDguKjguLLguKrguJXguKPguYwKK+C4oOC4ueC4oeC4tOC4o+C4ueC5iQor4Lig4Li54Lih4Li04Lil4Liz4LmA4LiZ4LiyCivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYwKK+C4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jOC4geC4suC4ouC4oOC4suC4ngor4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmM4LiB4Liy4Lij4LmA4LiB4Lip4LiV4LijCivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYzguIHguLLguKPguYDguKHguLfguK3guIcKK+C4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jOC4m+C4o+C4sOC4iuC4suC4geC4owor4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmM4Lib4Lij4Liw4Lin4Lix4LiV4Li0CivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYzguYDguKjguKPguKnguJDguIHguLTguIgKK+C4oOC4ueC4oeC4tQor4Lig4Li54Lih4Li14Lio4Lin4LijCivguKDguLnguKPguYLguKXguIEKK+C4oOC4ueC4o+C4tAor4Lig4Li54Lij4Li1CivguKDguLnguKctCivguKDguLnguKfguJTguKUKK+C4oOC4ueC4p+C4mS0KK+C4oOC4ueC4p+C4meC4leC4o+C4seC4ogor4Lig4Li54Lin4LiZ4Lix4LiV4LiV4Lij4Lix4LiiCivguKDguLnguKfguJnguLLguJYKK+C4oOC4ueC4p+C5gOC4meC4leC4owor4Lig4Li54Lin4LmE4LiZ4LiiCivguKDguLnguKnguJMtCivguKDguLnguKnguJPguJ7guLLguKoKK+C4oOC4ueC4qeC4sgor4Lig4Li54Lip4Liy4Lih4Liy4Lil4LiyCivguKDguLnguKnguLLguYLguKLguIcKK+C4oOC4ueC4qeC4tOC4lQor4LmA4Lig4LiB4LiwCivguYDguKDguITguLAKK+C5gOC4oOC4leC4o+C4sgor4LmA4Lig4LiXCivguYDguKDguJfguKDguLHguKIKK+C5gOC4oOC4l+C4uOC4muC4suC4ogor4LmA4Lig4Lij4LinCivguYDguKDguKPguLQKK+C5gOC4oOC4o+C4tQor4LmA4Lig4Liq4Lix4LiKCivguYDguKDguKrguLHguIotCivguYDguKDguKrguLHguIrguIHguKMKK+C5gOC4oOC4quC4seC4iuC4geC4o+C4o+C4oQor4LmA4Lig4Liq4Lix4LiK4LmA4LiE4Lih4Li1CivguYDguKDguKrguLHguIrguJ7guKTguIHguKnguKjguLLguKrguJXguKPguYwKK+C5gOC4oOC4quC4seC4iuC5gOC4nuC4peC4sgor4LmA4Lig4Liq4Lix4LiK4Lin4Li04LiX4Lii4LiyCivguYDguKDguKrguLHguIrguYDguKfguJcKK+C5gOC4oOC4quC4seC4iuC4qOC4suC4quC4leC4o+C5jAor4LmA4Lig4Liq4Lix4LiK4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4LihCivguYLguKDguIQKK+C5guC4oOC4hC0KK+C5guC4oOC4hOC4l+C4o+C4seC4nuC4ouC5jAor4LmC4Lig4LiE4Lig4Lix4LiT4LiR4LmMCivguYLguKDguITguKLguJfguKPguLHguJ7guKLguYwKK+C5guC4oOC4hOC4sAor4LmC4Lig4LiE4Li04LiZCivguYLguKDguITguLUKK+C5guC4oOC5hOC4hOC4ogor4LmC4Lig4LmE4LiE4Lio4Lin4Lij4Lij4Lii4LmMCivguYLguKDguIoKK+C5guC4oOC4iuC4gQor4LmC4Lig4LiK4LiZLQor4LmC4Lig4LiK4LiZ4LiwCivguYLguKDguIrguJnguLDguKvguYnguLIKK+C5guC4oOC4iuC4meC4suC4geC4owor4LmC4Lig4LiK4LiZ4Liy4LiB4Liy4LijCivguYLguKDguIrguJnguLLguKvguLLguKMKK+C5guC4oOC4iuC4ouC5jAor4LmE4Lig4Lij4Li04LiZCivguYTguKDguKPguLUKK+C5hOC4oOC4qeC4seC4iuC4hOC4uOC4o+C4uAor4LmE4Lig4Lip4Lix4LiK4Lii4LmMCivguKEKK+C4oeC4gQor4Lih4LiB4LijCivguKHguIHguKMtCivguKHguIHguKPguIHguLjguJPguJHguKUKK+C4oeC4geC4o+C4suC4hOC4oQor4Lih4LiB4LiqCivguKHguIHguLjguI4KK+C4oeC4geC4uOC4juC4o+C4suC4iuC4geC4uOC4oeC4suC4owor4Lih4LiB4Li44LilCivguKHguITguJgKK+C4oeC4hgor4Lih4LiG4Lin4Lix4LiZCivguKHguIbguLIKK+C4oeC5iOC4hwor4Lih4LiH4LiB4Li44LiOCivguKHguIfguIHguLjguI7guYTguJfguKIKK+C4oeC4h+C5guC4geC4o+C4ogor4Lih4LiH4LiE4LilCivguKHguIfguITguKUtCivguKHguIfguITguKXguIjguLHguIHguKMKK+C4oeC4h+C4hOC4peC5geC4neC4lAor4Lih4LiH4LiE4Lil4Lin4Liy4LiXCivguKHguIfguITguKXguKfguLLguKMKK+C4oeC4h+C4hOC4peC4quC4ueC4leC4owor4Lih4LiH4LiE4Lil4Lir4Lix4LiV4LiW4Li1CivguKHguJPguJHguYwKK+C4oeC4k+C4keC4gQor4Lih4LiT4LiR4LiZ4LiwCivguKHguJPguJHguJsKK+C4oeC4k+C4keC4pQor4Lih4LiT4LiR4LiyCivguKHguJPguJHguLLguKPguJ4KK+C4oeC4k+C4keC4tOC4owor4Lih4LiT4LmA4LiR4Li14Lii4LijCivguKHguJPguYDguJHguLXguKLguKPguJrguLLguKUKK+C4oeC4k+C4tQor4Lih4LiT4Li14LiB4Liy4LijCivguKHguJPguLXguJ7guLfguIoKK+C4oeC4k+C4teC4o+C4seC4leC4meC5jAor4Lih4LiT4Li14Lij4Liy4LiECivguKHguJPguLXguKjguLTguKXguLIKK+C4oeC4lAor4Lih4LiU4LiU4LizCivguKHguJTguYHguJTguIcKK+C4oeC4lOC5geC4lOC4h+C5gOC4neC5ieC4suC4oeC4sOC4oeC5iOC4p+C4hwor4Lih4LiU4LmA4LiX4LmH4LiICivguKHguJTguKLguK3guJoKK+C4oeC4lOC4peC4ueC4gQor4Lih4LiU4Liq4LmJ4LihCivguKHguJTguLLguKIKK+C4oeC4lOC4tQor4Lih4LiVLQor4Lih4LiV4LiBCivguKHguJXguIHguKDguLHguJUKK+C4oeC4leC4sAor4Lih4LiV4Li0CivguKHguJXguLTguKHguKvguLLguIrguJkKK+C4oeC4lwor4Lih4LiX4LiZ4LiwCivguKHguJfguJnguLXguKLguLAKK+C4oeC4mOC4uAor4Lih4LiY4Li44LiB4LijCivguKHguJjguLjguIHguKPguLUKK+C4oeC4mOC4uOC4geC4suC4o+C4tQor4Lih4LiY4Li44LmC4LiB4LioCivguKHguJjguLjguJXguKTguJMKK+C4oeC4mOC4uOC4mwor4Lih4LiY4Li44Lib4LiO4LilCivguKHguJjguLjguJvguLLguKLguLLguKoKK+C4oeC4mOC4uOC4nuC4o+C4lQor4Lih4LiY4Li44Lih4Lix4LiB4LiC4Li04LiB4LiyCivguKHguJjguLjguKHguLTguKjguKMKK+C4oeC4mOC4uOC4oy0KK+C4oeC4mOC4uOC4o+C4leC4o+C4seC4ogor4Lih4LiY4Li44Lij4Lie4LiI4LiZ4LmMCivguKHguJjguLjguKPguKoKK+C4oeC4mOC4uOC4o+C4sAor4Lih4LiY4Li44Lil4Li14Lir4LmMCivguKHguJjguLjguYDguKjguKkKK+C4oeC4mOC4uOC4quC4owor4Lih4LiZCivguKHguYjguJkKK+C4oeC4meC4leC5jAor4Lih4LiZ4LiV4Lij4LmMCivguKHguJnguJXguKPguLUKK+C4oeC4meC4ly0KK+C4oeC4meC4l+C5jAor4Lih4LiZ4LiX4LiB4Liy4LiZ4LiV4Li0CivguKHguJnguJfguLLguJfguKMKK+C4oeC4meC4l+C4tOC4owor4Lih4LiZ4LiX4Li04Lij4Liy4Lil4Lix4LiiCivguKHguJnguYDguJfguLXguKLguKMKK+C4oeC4meC5gOC4l+C4teC4ouC4o+C4muC4suC4pQor4Lih4LiZ4Liq4Li04LiB4Liy4LijCivguKHguJnguLHguKoKK+C4oeC4meC4seC4qi0KK+C4oeC4meC4seC4quC4lOC4suC4mwor4Lih4LiZ4Lix4Liq4Lin4Li1CivguKHguJnguLTguKHguJnguLIKK+C4oeC4meC4tOC4peC4sgor4Lih4LiZ4Li14Lih4LiZ4LiyCivguKHguJnguLgKK+C4oeC4meC4uOC4igor4Lih4LiZ4Li44LiK4Liy4LiY4Li04LibCivguKHguJnguLjguI0KK+C4oeC4meC4uOC4qeC4oi0KK+C4oeC4meC4uOC4qeC4ouC5jAor4Lih4LiZ4Li44Lip4Lii4LmM4LiB4LiaCivguKHguJnguLjguKnguKLguIrguLLguJXguLQKK+C4oeC4meC4uOC4qeC4ouC5gOC4l+C4ngor4Lih4LiZ4Li44Lip4Lii4LiY4Lij4Lij4LihCivguKHguJnguLjguKnguKLguYLguKXguIEKK+C4oeC4meC4uOC4qeC4ouC4qOC4suC4quC4leC4o+C5jAor4Lih4LiZ4Li44Lip4Lii4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguKHguJnguLjguKnguKLguYzguK3guKfguIHguLLguKgKK+C4oeC4meC4uOC4quC4suC4owor4Lih4LiZ4Li5CivguKHguJnguLnguKrguLLguKMKK+C4oeC5guC4mQor4Lih4LmC4LiZ4LiB4Lij4Lij4LihCivguKHguYLguJnguITguJXguLQKK+C4oeC5guC4meC4igor4Lih4LmC4LiZ4LiK4LiN4LmMCivguKHguYLguJnguJjguKPguKPguKEKK+C4oeC5guC4meC4meC4uOC4geC4ueC4pQor4Lih4LmC4LiZ4Lig4Liy4LieCivguKHguYLguJnguKDguLTguJnguLTguYDguKfguKgKK+C4oeC5guC4meC4oeC4seC4ogor4Lih4LmC4LiZ4Lij4LiWCivguKHguYLguJnguKPguKEKK+C4oeC5guC4meC4o+C4oeC4ouC5jAor4Lih4LmC4LiZ4Lij4Liy4Lir4LmMCivguKHguYLguJnguKjguLTguKXguLIKK+C4oeC5guC4meC4quC4suC4owor4Lih4LmC4LiZ4Liq4Liy4LmA4Lij4LmICivguKHguYLguJnguKvguKMKK+C4oeC4oeC4seC4h+C4geC4suC4owor4Lih4Lih4Liy4LiBCivguKHguKLguLjguKMtCivguKHguKLguLjguKPguITguJXguLQKK+C4oeC4ouC4uOC4o+C4ieC4seC4leC4owor4Lih4Lii4Li44Lij4Lit4Liy4Liq4LiZ4LmMCivguKHguKLguLjguKPguLAKK+C4oeC4ouC4uOC4o+C4sgor4Lih4Lii4Li44Lij4Li1CivguKHguKLguLjguYDguKPguKgKK+C4oeC4ouC4ueC4ggor4Lih4Lii4Li54LijCivguKHguKMKK+C4oeC4o+C4geC4lQor4Lih4Lij4LiE4LiyCivguKHguKPguJHguJsKK+C4oeC4o+C4ky0KK+C4oeC4o+C4k+C5jAor4Lih4Lij4LiT4LiB4Lij4Lij4LihCivguKHguKPguJPguJjguKPguKPguKEKK+C4oeC4o+C4k+C4muC4seC4leC4owor4Lih4Lij4LiT4Lig4Lix4LiiCivguKHguKPguJPguKDguLLguJ4KK+C4oeC4o+C4k+C4sAor4Lih4Lij4LiT4Lix4LiZ4LiV4Li04LiBLQor4Lih4Lij4LiT4Liy4LiZ4LiV4LmMCivguKHguKPguJTguIEKK+C4oeC4o+C4o+C4hAor4Lih4Lij4Lij4LiE4LiZ4Liy4Lii4LiBCivguKHguKPguKPguITguLIKK+C4oeC4o+C4o+C4leC4ogor4Lih4Lij4Lij4LiV4Lix4LiiCivguKHguKPguKPguJfguJkKK+C4oeC4o+C4o+C4ouC4suC4lwor4Lih4Lij4Lij4LipCivguKHguKPguKrguLjguKEKK+C4oeC4o+C4seC4oeC5gOC4l+C4qAor4Lih4Lij4Liy4LiZ4LiE4Lin4Liy4LiZCivguKHguKPguLTguIgKK+C4oeC4o+C4tOC4ouC4suC4lwor4Lih4Lij4Li14LiI4Li0CivguKHguKPguLgKK+C4oeC4o+C4uOC4lQor4Lih4Lik4LiECivguKHguKTguIQtCivguKHguKTguITguJfguLLguKLguKfguLHguJkKK+C4oeC4pOC4hOC4ouC5jAor4Lih4Lik4LiE4Lij4Liy4LiKCivguKHguKTguITguKjguLTguKMKK+C4oeC4pOC4hOC4qOC4tOC4o+C4oeC4suC4qgor4Lih4Lik4LiE4Lio4Li04Lij4Lix4LiqCivguKHguKTguITguYDguKjguLXguKLguKMKK+C4oeC4pOC4hOC4tOC4meC4l+C4o+C5jAor4Lih4Lik4LmA4LiE4LiZ4LiX4Lij4LmMCivguKHguKTguIjguInguLIKK+C4oeC4pOC4iOC4ieC4suC4iuC4teC4ngor4Lih4Lik4LiI4LiJ4Liy4LiX4Li04LiQ4Li0CivguKHguKTguJTguIEKK+C4oeC4pOC4lQor4Lih4Lik4LiV4LiBCivguKHguKTguJXguKLguLkKK+C4oeC4pOC4leC4ouC4ueC4o+C4suC4igor4Lih4Lik4LiX4Li04LiH4LiE4LmMCivguKHguKTguJfguLgKK+C4oeC4pOC4l+C4uOC4geC4sAor4Lih4Lik4LiY4Li4CivguKHguKTguKnguLIKK+C4oeC4pOC4qeC4suC4p+C4suC4lwor4Lih4LilCivguKHguKUtCivguKHguKXguYLguIQKK+C4oeC4peC4l+C4tOC4mQor4Lih4Lil4LiZCivguKHguKXguYjguJkKK+C4oeC4peC4meC4oeC4peC4suC4mQor4Lih4Lil4Lie4Li04LipCivguKHguKXguKfguIEKK+C4oeC4peC5iOC4reC4mQor4Lih4Lil4LmI4Lit4LiiCivguKHguKXguLAKK+C4oeC4peC4seC4gQor4Lih4Lil4Lix4LiH4LmA4Lih4Lil4Li34Lit4LiHCivguKHguKXguYnguLIKK+C4oeC4peC4suC4gQor4Lih4Lil4LmJ4Liy4LiHCivguKHguKXguLLguJkKK+C4oeC4peC5iOC4suC4mQor4Lih4Lil4Liy4LiiCivguKHguKXguLLguKLguLkKK+C4oeC4peC4suC4pwor4Lih4Lil4LmI4Liy4Lin4LmA4Lih4Lil4LiyCivguKHguKXguLTguJkKK+C4oeC4peC4tOC5ieC4mQor4Lih4Lil4Li34LmI4LiZCivguKHguKfguIEKK+C4oeC4p+C4geC4nOC4sgor4Lih4Lin4LiB4LmA4Lir4Lil4LmH4LiBCivguKHguKfguIHguYPguKvguI3guYgKK+C4oeC5iOC4p+C4hwor4Lih4Lin4LiZCivguKHguYjguKfguJkKK+C4oeC5ieC4p+C4mQor4Lih4LmJ4Lin4LiZ4LiV4LmJ4Lin4LiZCivguKHguYnguKfguJnguYDguKrguLfguYjguK0KK+C4oeC5ieC4p+C4meC4q+C4meC5ieC4sgor4Lih4Lin4LiiCivguKHguYnguKfguKIKK+C4oeC4p+C4ouC5hOC4l+C4ogor4Lih4Lin4Lii4Lib4Lil4LmJ4LizCivguKHguKfguKLguKXguYnguKEKK+C4oeC4p+C4ouC4p+C4seC4lAor4Lih4Lin4Lii4Liq4Liy4LiB4LilCivguKHguKfguKLguKvguKHguLnguYgKK+C4oeC4p+C4pQor4Lih4Lin4Lil4Liq4Liy4LijCivguKHguKfguKXguK3guLLguIHguLLguKgKK+C4oeC4quC4suC4owor4Lih4Liq4Liy4Lij4LiBCivguKHguKrguLLguKPguITguLHguKUKK+C4oeC4quC4tAor4Lih4Lir4LiB4Lij4Lij4LihCivguKHguKvguKPguJPguJ4KK+C4oeC4q+C4o+C4o+C4hgor4Lih4Lir4Lij4Lij4LiT4LieCivguKHguKvguKPguKrguJ4KK+C4oeC4q+C4seC4hOC4hgor4Lih4Lir4Lix4LiI4LiJ4Lij4Li04LiiLQor4Lih4Lir4Lix4LiI4LiJ4Lij4Li04Lii4LiwCivguKHguKvguLHguJPguJPguJ4KK+C4oeC4q+C4seC4lQor4Lih4Lir4Lix4LiX4LiY4LiZ4LiwCivguKHguKvguLHguJnguJUtCivguKHguKvguLHguJnguJXguYwKK+C4oeC4q+C4seC4meC4leC5guC4l+C4qQor4Lih4Lir4Lix4Lie4Lig4Liy4LiECivguKHguKvguLHguKUKK+C4oeC4q+C4seC4peC4geC4sAor4Lih4Lir4Lix4Lio4LiI4Lij4Lij4Lii4LmMCivguKHguKvguLIKK+C4oeC4q+C4suC4geC4kOC4tOC4mQor4Lih4Lir4Liy4LiB4Liy4LisCivguKHguKvguLLguILguLHguJnguJjguIEKK+C4oeC4q+C4suC4iOC4seC4geC4owor4Lih4Lir4Liy4LiK4LiZCivguKHguKvguLLguIrguLHguKIKK+C4oeC4q+C4suC4iuC4suC4leC4tAor4Lih4Lir4Liy4LmC4LiK4LiV4Lij4Lix4LiVCivguKHguKvguLLguJTguYTguJfguKIKK+C4oeC4q+C4suC4lOC5gOC4peC5h+C4gQor4Lih4Lir4Liy4LiU4LmA4Lil4LmH4LiB4Lij4Liy4Lii4LiH4Liy4LiZCivguKHguKvguLLguJXguKHguLAKK+C4oeC4q+C4suC5hOC4luC5iAor4Lih4Lir4Liy4LmA4LiX4LieCivguKHguKvguLLguYDguJfguJ7guLUKK+C4oeC4q+C4suC5gOC4l+C4p+C4tQor4Lih4Lir4Liy4LiY4Liy4LiV4Li4CivguKHguKvguLLguJnguKrguLAKK+C4oeC4q+C4suC4meC4tOC4geC4suC4ogor4Lih4Lir4Liy4LiZ4Li04LilCivguKHguKvguLLguJrguJ7guLTguJXguKMKK+C4oeC4q+C4suC4muC4seC4k+C4keC4tOC4lQor4Lih4Lir4Liy4Lie4LiZCivguKHguKvguLLguJ7guKPguKvguKEKK+C4oeC4q+C4suC4oOC4suC4o+C4lQor4Lih4Lir4Liy4Lig4Li04LmA4LiZ4Lip4LiB4Lij4Lih4LiT4LmMCivguKHguKvguLLguKDguLnguJUKK+C4oeC4q+C4suC5gOC4oeC4hgor4Lih4Lir4Liy4Lii4Liy4LiZCivguKHguKvguLLguKLguLjguIQKK+C4oeC4q+C4suC4o+C4k+C4ngor4Lih4Lir4Liy4Lij4Liy4LiKCivguKHguKvguLLguKPguLLguIrguKXguLXguKXguLIKK+C4oeC4q+C4suC4pOC4geC4qeC5jAor4Lih4Lir4Liy4Lil4Liw4Lil4Lin4LiiCivguKHguKvguLLguKXguLDguKXguLLguKIKK+C4oeC4q+C4suC4p+C4h+C4qOC5jAor4Lih4Lir4Liy4Lin4Lij4Lij4LiECivguKHguKvguLLguKfguLTguJfguKLguLLguKXguLHguKIKK+C4oeC4q+C4suC4qOC4suC4pQor4Lih4Lir4Liy4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguKHguKvguLLguKrguJTguKHguKDguYwKK+C4oeC4q+C4suC4quC4lOC4swor4Lih4Lir4Liy4Liq4Lih4Li44LiX4LijCivguKHguKvguLLguKrguLLguKfguIEKK+C4oeC4q+C4suC4q+C4h+C4quC5jAor4Lih4Lir4Liy4Lir4Li04LiH4LiE4Li44LmMCivguKHguKvguLLguK3guLPguJnguLLguIgKK+C4oeC4q+C4suC4reC4uOC4iAor4Lih4Lir4Liy4Lit4Li44LiUCivguKHguKvguLLguK3guLjguJvguKPguLLguIHguKMKK+C4oeC4q+C4tAor4Lih4Lir4Li04LiH4Liq4LmMCivguKHguKvguLTguJTguKUKK+C4oeC4q+C4tOC4l+C4mOC4tAor4Lih4Lir4Li04LiY4LijCivguKHguKvguLTguJnguJfguYwKK+C4oeC4q+C4tOC4muC4lOC4tQor4Lih4Lir4Li04Lia4Liy4LilCivguKHguKvguLTguJsKK+C4oeC4q+C4tOC4oeC4sgor4Lih4Lir4Li04Lio4LijCivguKHguKvguLTguKjguKfguKMKK+C4oeC4q+C4tOC4qQor4Lih4Lir4Li04Lip4Li1CivguKHguKvguLbguKHguLIKK+C4oeC4q+C4uOC4lOC4tOC4pOC4geC4qeC5jAor4Lih4Lir4Li44Lij4LiU4Li1CivguKHguKvguLkKK+C4oeC5gOC4q+C4meC4l+C4o+C5jAor4Lih4LmA4Lir4Lii4LiH4LiE4LmMCivguKHguYDguKvguKgKK+C4oeC5gOC4q+C4qOC4p+C4owor4Lih4LmA4Lir4Lio4Lix4LiB4LiU4Li04LmMCivguKHguYDguKvguKrguLHguIHguILguYwKK+C4oeC5gOC4q+C4quC4tAor4Lih4LmA4Lir4Liq4Li1CivguKHguYDguKvguLLguKnguJgKK+C4oeC5gOC4q+C4suC4rOC4suC4owor4Lih4LmC4Lir4LiGCivguKHguYLguKvguKPguKrguJ4KK+C4oeC5guC4q+C4o+C4sOC4l+C4tuC4gQor4Lih4LmC4Lir4Lij4Li1CivguKHguYLguKvguKnguJgKK+C4oeC5guC4q+C4rOC4suC4owor4Lih4LmE4Lir4Lio4Lin4Lij4Lij4Lii4LmMCivguKHguK0KK+C4oeC4reC4hOC4o+C4suC4oQor4Lih4Lit4LiHCivguKHguK3guIfguYLguIHguKXguK3guKLguJTguYwKK+C4oeC4reC4h+C4hOC4o+C5iOC4rQor4Lih4Lit4LiH4LmA4Liq4Li14LmJ4Lii4LinCivguKHguK3guIvguK0KK+C4oeC4reC4jQor4Lih4Lit4LiN4LiL4LmI4Lit4LiZ4Lic4LmJ4LiyCivguKHguK3guI3guJXguLXguJTguLHguYnguIcKK+C4oeC4reC4lAor4Lih4LmI4Lit4LiV4LmJ4LitCivguKHguK3guYDguJXguK3guKPguYwKK+C4oeC4reC4mQor4Lih4LmI4Lit4LiZCivguKHguK3guJnguYTguILguYgKK+C4oeC4reC4mgor4Lih4Lit4Lia4LiJ4Lix4LiZ4LiX4LiwCivguKHguK3guJrguKvguKHguLLguKIKK+C4oeC4reC4muC4reC4s+C4meC4suC4iAor4Lih4Lit4LihCivguKHguK3guKHguYDguKHguLIKK+C4oeC4reC4oeC5geC4oeC4oQor4Lih4Lit4Lih4LmA4Lir4Lil4LmJ4LiyCivguKHguYjguK3guKIKK+C4oeC4reC4o+C5jOC4n+C4teC4mQor4Lih4Lit4Lij4Liw4LiB4Li54LmICivguKHguK3guKXguYLguJfguKoKK+C4oeC5iOC4reC4peC4reC4geC4oeC5iOC4reC5geC4peC4gQor4Lih4Lit4Lir4Lih4Li24LiBCivguKHguYjguK3guKvguYnguK3guKEKK+C4oeC5iOC4reC4ruC5iOC4reC4oQor4Lih4LiwCivguKHguLDguIHguKPguLnguJQKK+C4oeC4sOC4geC4peC5iOC4swor4Lih4Liw4LiB4Lit4LiBCivguKHguLDguIHguK3guIHguJnguYnguLMKK+C4oeC4sOC4geC4reC4geC4muC5ieC4suC4mQor4Lih4Liw4LiB4Lit4LiB4Lib4LmI4LiyCivguKHguLDguIHguK3guIHguJ3guKPguLHguYjguIcKK+C4oeC4sOC4geC4reC4geC4nuC4o+C4suC4mQor4Lih4Liw4LiB4Lit4LiB4Liq4Liy4Lih4LiV4Liw4LiB4Lij4LmJ4Liy4Lib4Liy4LmE4Lih4LmI4LiW4Li54LiBCivguKHguLDguIHguYjguK3guIcKK+C4oeC4sOC4geC4sOC5guC4o+C4meC4tQor4Lih4Liw4LiB4LiyCivguKHguLDguYDguIHguKXguLfguK0KK+C4oeC4sOC5gOC4geC4teC5i+C4ouC4hwor4Lih4Liw4LiC4LmI4Lin4LiHCivguKHguLDguILguKfguLTguJQKK+C4oeC4sOC4guC4suC4oQor4Lih4Liw4LiC4Liy4Lih4LiE4Lij4Liy4Lia4Lir4Lih4Li5CivguKHguLDguILguLLguKHguYDguJfguKgKK+C4oeC4sOC4guC4suC4oeC4m+C5ieC4reC4oQor4Lih4Liw4LiC4Liy4Lih4LmA4Lib4Li14Lii4LiBCivguKHguLDguYDguILguLfguK0KK+C4oeC4sOC5gOC4guC4t+C4reC4l+C4p+C4suC4ogor4Lih4Liw4LmA4LiC4Li34Lit4LmA4LiX4LioCivguKHguLDguYDguILguLfguK3guJ7guKfguIcKK+C4oeC4sOC5gOC4guC4t+C4reC4oeC4reC4jQor4Lih4Liw4LmB4LiC4LmI4LiZCivguKHguLDguITguLAKK+C4oeC4sOC4hOC4seC4h+C5geC4lOC4hwor4Lih4Liw4LiE4LmI4LiyCivguKHguLDguITguYjguLLguYHguJXguYkKK+C4oeC4sOC4hOC5iOC4suC5guC4oeC4hwor4Lih4Liw4LiE4LmI4Liy4Lir4LiZ4Liy4LihCivguKHguLDguITguYjguLLguYPguKvguI3guYgKK+C4oeC4sOC4hOC4s+C5hOC4geC5iAor4Lih4Liw4LiE4Liz4LiU4Li14LiE4Lin4Liy4LiiCivguKHguLDguIfguLHguJkKK+C4oeC4sOC4h+C4seC5iOC4pwor4Lih4Liw4LiH4Li44Lih4Lih4Liw4LiH4Liy4Lir4Lij4LiyCivguKHguLDguIvguLHguIEKK+C4oeC4sOC4i+C4suC4hwor4Lih4Liw4LiL4LmI4Liy4LiZCivguKHguLDguJTguLDguILguLXguYnguJnguIEKK+C4oeC4sOC4lOC4seC4mQor4Lih4Liw4LiU4LiyCivguKHguLDguJTguLnguIEKK+C4oeC4sOC5gOC4lOC4q+C4p+C4tQor4Lih4Liw4LmA4LiU4Li34LmI4LitCivguKHguLDguYDguJTguLfguYjguK3guJTguLTguJkKK+C4oeC4sOC4leC5ieC4reC4hwor4Lih4Liw4LiV4Liw4Lia4LiwCivguKHguLDguJXguLLguJQKK+C4oeC4sOC4leC4suC4q+C4sOC4o+C4tQor4Lih4Liw4LiV4Li1CivguKHguLDguJXguLbguYjguIcKK+C4oeC4sOC4leC4t+C5i+C4mQor4Lih4Liw4LiV4Li54LihCivguKHguLDguYHguJXguIEKK+C4oeC4sOC4meC4suC4pwor4Lih4Liw4LiZ4Liy4Lin4LmA4LiX4LioCivguKHguLDguJvguKPguLLguIcKK+C4oeC4sOC4m+C4o+C4tOC4hwor4Lih4Liw4Lib4LmI4Lit4LiHCivguKHguLDguJvguYjguK3guIfguJXguYnguJkKK+C4oeC4sOC4neC5iOC4rQor4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguKHguLDguJ7guKPguYnguLLguKfguYHguIHguYnguKcKK+C4oeC4sOC4nuC4o+C5ieC4suC4p+C4leC4t+C5iOC4meC4lOC4gQor4Lih4Liw4Lie4Lij4LmJ4Liy4Lin4LiX4Li44LiiCivguKHguLDguJ7guKPguYnguLLguKfguKvguYnguLLguKcKK+C4oeC4sOC4nuC4peC4seC4mgor4Lih4Liw4Lie4Li54LiUCivguKHguLDguYHguJ7guJkKK+C4oeC4sOC5geC4nuC4o+C5ieC4pwor4Lih4Liw4LmA4Lif4Li34Lit4LiHCivguKHguLDguYHguJ/guJkKK+C4oeC4sOC5hOC4nwor4Lih4Liw4LmE4Lif4LmA4LiU4Li34Lit4LiZ4Lir4LmJ4LiyCivguKHguLDguKHguYjguKfguIcKK+C4oeC4sOC4oeC5iOC4p+C4h+C4q+C4tOC4oeC4nuC4suC4meC4leC5jAor4Lih4Liw4Lih4LmI4Liy4LinCivguKHguLDguKHguLXguYgKK+C4oeC4sOC4oeC4t+C5iOC4mQor4Lih4Liw4Lih4Li44LiUCivguKHguLDguYDguKHguK0KK+C4oeC4sOC5gOC4oeC4teC4ogor4Lih4Liw4LmA4Lih4Li34LmI4Lit4LiiCivguKHguLDguYHguKEKK+C4oeC4sOC4ouC4hwor4Lih4Liw4Lii4LiH4LiK4Li04LiUCivguKHguLDguKLguKEKK+C4oeC4sOC4o+C4sAor4Lih4Liw4Lij4Li04LiUCivguKHguLDguKPguLfguJkKK+C4oeC4sOC4o+C4uOC4oQor4Lih4Liw4Lij4Li44Lih4Lih4Liw4LiV4Li44LmJ4LihCivguKHguLDguYDguKPguYfguIcKK+C4oeC4sOC5gOC4o+C4t+C5iOC4reC4hwor4Lih4Liw4LmC4Lij4LiHCivguKHguLDguKXguLDguIHguK0KK+C4oeC4sOC4peC4suC4o+C4reC4geC4seC4mQor4Lih4Liw4Lil4LizCivguKHguLDguKXguLQKK+C4oeC4sOC4peC4tOC4i+C5iOC4reC4oQor4Lih4Liw4Lil4Li04LiZCivguKHguLDguKXguLTguYjguKEKK+C4oeC4sOC4peC4tOC5gOC4peC4t+C5ieC4reC4ogor4Lih4Liw4Lil4Li04Lit4LmI4Lit4LiHCivguKHguLDguKXguLfguYjguJkKK+C4oeC4sOC4peC4t+C4oeC4lOC4swor4Lih4Liw4Lil4Li44Lil4Li1CivguKHguLDguKfguLLguKMKK+C4oeC4sOC5geC4p+C5ieC4hwor4Lih4Liw4Liq4Lix4LiHCivguKHguLDguYDguKrguYfguIcKK+C4oeC4sOC4q+C4peC4tOC5iOC4oQor4Lih4Liw4Lir4Lin4LiUCivguKHguLDguKvguLDguKvguKHguLHguJQKK+C4oeC4sOC4q+C4seC4pQor4Lih4Liw4Lir4Liy4LiUCivguKHguLDguKvguLTguYjguIcKK+C4oeC4sOC5gOC4q+C4h+C4gQor4Lih4Liw4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguKHguLDguK3guLbguIEKK+C4oeC4sOC4ruC4reC4geC4geC4suC4meC4tQor4Lih4Lix4LiBCivguKHguLHguIHguIHguLDguKXguLXguJzguKUKK+C4oeC4seC4geC4geC4sOC4quC4seC4mQor4Lih4Lix4LiB4LiC4LiwCivguKHguLHguYjguIHguILguLHguYnguIEKK+C4oeC4seC4geC4guC4tOC4geC4sgor4Lih4Lix4LiB4LiC4Li04LiB4Liy4LiK4Liy4LiV4Li0CivguKHguLHguIHguITguLjguYnguJkKK+C4oeC4seC4geC4h+C5iOC4suC4ogor4Lih4Lix4LiB4LiP4LiB4LiwCivguKHguLHguIHguI/guLAKK+C4oeC4seC4geC5hOC4lOC5iQor4Lih4Lix4LiB4LiZ4LmJ4Lit4LiiCivguKHguLHguIHguKHguLLguIEKK+C4oeC4seC4geC5g+C4q+C4jeC5iAor4Lih4Lix4LiELQor4Lih4Lix4LiE4LiE4LiwCivguKHguLHguITguITguLjguYDguJfguKjguIHguYwKK+C4oeC4seC4hOC4meC4suC4ouC4gQor4Lih4Lix4LiE4Liq4Li04Lij4LiwCivguKHguLHguIbguKfguLIKK+C4oeC4seC4huC4p+C4suC4mQor4Lih4Lix4LmI4LiHCivguKHguLHguIfguIHguIcKK+C4oeC4seC4h+C4geC4owor4Lih4Lix4LiH4LiB4Li4CivguKHguLHguIfguITguKXguLAKK+C4oeC4seC5iOC4h+C4hOC4seC5iOC4hwor4Lih4Lix4LiH4LiE4LmI4LiyCivguKHguLHguIfguITguLjguJQKK+C4oeC4seC4h+C4leC4suC4mQor4Lih4Lix4LmI4LiH4Lih4Li1CivguKHguLHguYjguIfguKHguLXguYPguJnguYPguIgg4LmB4Lil4LmI4LiZ4LmD4Lia4Lia4LiZ4Lia4LiBCivguKHguLHguIfguKotCivguKHguLHguIfguKrguKfguLTguKPguLHguJXguLQKK+C4oeC4seC4h+C4quC4sAor4Lih4Lix4LiH4Liq4Li1CivguKHguLHguIfguKvguIfguLHguJkKK+C4oeC4seC4iOC4iOC4sAor4Lih4Lix4LiI4LiI4Li4CivguKHguLHguIjguIjguLjguKPguLLguIoKK+C4oeC4seC4iOC4ieC4o+C4sAor4Lih4Lix4LiI4LiJ4Lij4Li04Lii4LiwCivguKHguLHguIjguInguKPguLUKK+C4oeC4seC4iOC4ieC4sAor4Lih4Lix4LiI4LiJ4LiyCivguKHguLHguIjguInguLLguIrguLLguJXguLQKK+C4oeC4seC4ii0KK+C4oeC4seC4iuC4iuC4sAor4Lih4Lix4LiK4LiK4Liy4LijCivguKHguLHguIrguIwtCivguKHguLHguIrguIzguLHguJnguJXguLTguIEtCivguKHguLHguIrguIzguLHguJnguJXguLTguIHguKrguKHguLHguKIKK+C4oeC4seC4iuC4jOC4tOC4oS0KK+C4oeC4seC4iuC4jOC4tOC4oeC4meC4tOC4geC4suC4ogor4Lih4Lix4LiK4LiM4Li04Lih4Lia4Li44Lij4Li44LipCivguKHguLHguIrguIzguLTguKHguJvguKPguLDguYDguJfguKgKK+C4oeC4seC4iuC4jOC4tOC4oeC4oOC4ueC4oeC4tAor4Lih4Lix4LiK4LiM4Li04Lih4Lii4Liy4LihCivguKHguLHguIrguIzguLTguKHguKfguLHguKIKK+C4oeC4seC4iuC4jOC4tOC4oeC4sgor4Lih4Lix4LiK4LiM4Li04Lih4Liy4Lib4LiP4Li04Lib4LiX4LiyCivguKHguLHguIrguKfguLTguKPguLHguJXguLQKK+C4oeC4seC4jeC4iOC4gQor4Lih4Lix4LiN4LiI4LiyCivguKHguLHguI3guIrguLTguKnguJAKK+C4oeC4seC4jeC4iuC4tOC4qeC4kOC4sgor4Lih4Lix4LiN4LiK4Li14LijCivguKHguLHguI3guIrguLgKK+C4oeC4seC4jeC4iuC4uOC4quC4sgor4Lih4Lix4LiN4LiK4Li54Liq4LiyCivguKHguLHguI3guYDguIrguI/guJDguLAKK+C4oeC4seC4jeC5gOC4iuC4j+C4kOC4tOC4geC4sgor4Lih4Lix4LiN4LmA4LiK4LiP4LiQ4Li04LiB4Liy4LiB4LijCivguKHguLHguI3guYDguIrguLXguKLguKMKK+C4oeC4seC4j+C4kOC4sAor4Lih4Lix4LiT4LiRLQor4Lih4Lix4LiT4LiR4LiZLQor4Lih4Lix4LiT4LiR4LiZ4Lio4Li04Lil4Lib4LmMCivguKHguLHguJPguJHguJnguLIKK+C4oeC4seC4k+C4keC4uOC4gQor4Lih4Lix4LiUCivguKHguLHguJTguIjguLMKK+C4oeC4seC4lOC5gOC4iuC4t+C5ieC4reC5gOC4nuC4peC4tOC4hwor4Lih4Lix4LiU4Lih4Li34Lit4LiK4LiBCivguKHguLHguJTguKvguKHguLXguYgKK+C4oeC4seC4lOC4q+C4oeC4uQor4Lih4Lix4LiU4Lir4Lin4Liy4LiiCivguKHguLHguJXguJXguLAKK+C4oeC4seC4leC4leC4seC4jeC4jeC4uQor4Lih4Lix4LiV4LiV4Lix4LiiCivguKHguLHguJXguJXguLIKK+C4oeC4seC4leC4leC4tOC4geC4sgor4Lih4Lix4LiV4LiW4LiBCivguKHguLHguJXguJbguKXguLjguIfguITguYwKK+C4oeC4seC4leC4ogor4Lih4Lix4LiV4Liq4Lii4LiwCivguKHguLHguJXguKrguKLguLIKK+C4oeC4seC4leC4quC4owor4Lih4Lix4LiV4Liq4Lij4Lij4Lii4LmMCivguKHguLHguJXguKrguKPguLTguJkKK+C4oeC4seC4l+C4meC4sAor4Lih4Lix4LiX4LiZ4Li14Lii4LiwCivguKHguLHguJfguKLguLAKK+C4oeC4seC4mOC4oi0KK+C4oeC4seC4mOC4ouC4kOC4suC4mQor4Lih4Lix4LiY4Lii4LihCivguKHguLHguJjguKLguKEtCivguKHguLHguJjguKLguKHguIHguLLguKUKK+C4oeC4seC4mOC4ouC4oeC4qOC4tuC4geC4qeC4sgor4Lih4Lix4LiY4Lii4Lih4LiyCivguKHguLHguJjguKLguLHguJnguKvguYwKK+C4oeC4seC4mOC4ouC4seC4quC4luC5jAor4Lih4Lix4LiZCivguKHguLHguYjguJkKK+C4oeC4seC4meC5geC4geC4pwor4Lih4Lix4LmI4LiZ4LiE4LiHCivguKHguLHguYjguJnguYPguIgKK+C4oeC4seC4meC4lOC4tQor4Lih4Lix4LiZ4LiV4LiyCivguKHguLHguJnguJbguLAKK+C4oeC4seC4meC4l+C4tOC4owor4Lih4Lix4LiZ4LiX4Li04Lij4Liy4Lil4Lix4LiiCivguKHguLHguJnguYDguJfguKgKK+C4oeC4seC4meC4meC4gQor4Lih4Lix4LiZ4Lib4Lil4LiyCivguKHguLHguJnguJvguLkKK+C4oeC4seC4meC4neC4o+C4seC5iOC4hwor4Lih4Lix4LiZ4Lii4LmI4Lit4LiHCivguKHguLHguJnguKrguKHguK3guIcKK+C4oeC4seC4meC5gOC4quC4sgor4Lih4Lix4LiZ4LmE4Liq4LmJCivguKHguLHguYjguJnguKvguKHguLLguKIKK+C4oeC4seC5iOC4meC5gOC4q+C4oeC4suC4sAor4Lih4Lix4LiaCivguKHguLHguJrguYYKK+C4oeC4seC5ieC4oQor4Lih4Lix4Lih4Lih4Li14LmICivguKHguLHguKIKK+C4oeC4seC4peC4gQor4Lih4Lix4Lil4Lil4LiwCivguKHguLHguKXguKXguLTguIHguLIKK+C4oeC4seC4pwor4Lih4Lix4LmI4LinCivguKHguLHguKfguIvguLHguKcKK+C4oeC4seC4p+C4oeC4reC4oQor4Lih4Lix4LmI4Lin4Lih4Li54LilCivguKHguLHguKfguYDguKHguLIKK+C4oeC4seC4p+C5gOC4oeC4teC4ogor4Lih4Lix4LmI4Lin4Liq4Li44LihCivguKHguLHguKfguKvguKHguK3guIcKK+C4oeC4seC4qOC4ouC4sgor4Lih4Lix4Liq4LiU4LiBCivguKHguLHguKrguJTguLgKK+C4oeC4seC4quC4leC4suC4o+C5jOC4lAor4Lih4Lix4Liq4LiV4Li4CivguKHguLHguKrguKHguLHguYjguJkKK+C4oeC4seC4quC4ouC4tOC4lAor4Lih4Lix4Liq4Lij4Li54LmICivguKHguLHguKrguKXguLTguJkKK+C4oeC4seC4quC4quC4uAor4Lih4LiyCivguKHguYnguLIKK+C4oeC4suC4gQor4Lih4Liy4LiB4LiC4Li14LmJ4LiE4Lin4Liy4Lii4Lir4Lil4Liy4Lii4LiC4Li14LmJ4LiK4LmJ4Liy4LiHCivguKHguLLguIHguKHguLLguKIKK+C4oeC4suC4geC4oeC4suC4ouC4geC5iOC4suC4ouC4geC4reC4hwor4Lih4Liy4LiB4Lir4LiZ4LmJ4Liy4Lir4Lil4Liy4Lii4LiV4LiyCivguKHguLLguIHguKvguKHguK3guKHguLLguIHguITguKfguLLguKEKK+C4oeC4suC5geC4guC4gQor4Lih4Liy4LiE4Liq4Li04LijLQor4Lih4Liy4LiE4Liq4Li04Lij4LiwCivguKHguLLguIYtCivguKHguLLguIbguJrguLnguIrguLIKK+C4oeC4suC4huC4sAor4Lih4LmJ4Liy4LiHCivguKHguLLguIfguKrguLAKK+C4oeC5ieC4suC5g+C4iuC5iQor4Lih4Liy4LiT4LieCivguKHguLLguJPguKfguLTguIHguLIKK+C4oeC4suC4lAor4Lih4Liy4LiU4LiyCivguKHguYnguLLguJTguLXguJTguIHguLDguYLguKvguKXguIEKK+C4oeC4suC4leC4h+C4hOC5jAor4Lih4LmJ4Liy4LiV4LmJ4LiZCivguKHguLLguJXguKMKK+C4oeC4suC4leC4oy0KK+C4oeC4suC4leC4o+C4geC4suC4owor4Lih4Liy4LiV4Lij4LiQ4Liy4LiZCivguKHguLLguJXguKPguYHguKHguYnguJkKK+C4oeC4suC4leC4o+C4p+C5iOC4sgor4Lih4Liy4LiV4Lij4LiyCivguKHguLLguJXguKPguLLguJ7guKTguJXguLQKK+C4oeC4suC4leC4o+C4suC4quC5iOC4p+C4mQor4Lih4Liy4LiV4LikCivguKHguLLguJXguKTguIHguLAKK+C4oeC4suC4leC4quC4o+C4o+C4ouC5jAor4Lih4Liy4LiV4Lix4LiH4LiECivguKHguLLguJXguLIKK+C4oeC4suC4leC4suC4oeC4q+C4sAor4Lih4Liy4LiV4Liy4Lih4Lir4Lix4Lii4LiB4LiwCivguKHguLLguJXguLLguKHguKvguLHguKLguIHguLIKK+C4oeC4suC4leC4suC4oeC4q+C4seC4ouC4ouC4tOC4geC4sgor4Lih4Liy4LiV4Liy4Lih4Lir4LiyCivguKHguLLguJXguLTguIEKK+C4oeC4suC4leC4tOC4geC4sgor4Lih4Liy4LiV4Li1CivguKHguLLguJXguLgKK+C4oeC4suC4leC4uOC4hOC4suC4oQor4Lih4Liy4LiV4Li44LiG4Liy4LiVCivguKHguLLguJXguLjguIjguInguLIKK+C4oeC4suC4leC4uOC4oOC4ueC4oeC4tAor4Lih4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguKHguLLguJXguLjguYDguKPguKgKK+C4oeC4suC4leC4uOC4peC4sAor4Lih4Liy4LiV4Li44Lil4LiyCivguKHguLLguJXguLjguKXguLLguJnguLUKK+C4oeC4suC4leC4uOC4peC4uOC4h+C4hOC5jAor4Lih4Liy4LiXCivguKHguLLguJfguJkKK+C4oeC5ieC4suC4l+C4peC4suC4ouC5guC4o+C4hwor4Lih4LmJ4Liy4LmA4LiX4LioCivguKHguLLguJjguKLguKHguLTguIHguLAKK+C4oeC4suC4mOC4uOC4owor4Lih4Liy4LiY4Li44Liq4LijCivguKHguLLguJjguLnguKMKK+C4oeC4suC4mQor4Lih4LmI4Liy4LiZCivguKHguYnguLLguJkKK+C4oeC5iOC4suC4meC4leC4sgor4Lih4Liy4LiZ4LiX4Liw4Lil4Li44LiZCivguKHguYjguLLguJnguJrguLHguIfguYDguJ7guKXguLTguIcKK+C4oeC4suC4meC4ngor4Lih4LmI4Liy4LiZ4LmA4Lih4Lij4Li4CivguKHguYjguLLguJnguKXguLLguKIKK+C4oeC5iOC4suC4meC4quC4reC4h+C5hOC4ggor4Lih4LmI4Liy4LiZ4Lit4Li04LiZ4LiX4LiZ4Li04LilCivguKHguLLguJnguLAKK+C4oeC4suC4meC4seC4lQor4Lih4Liy4LiZ4Lix4LiqCivguKHguYnguLLguJnguYnguLMKK+C4oeC4suC4meC4tOC4lQor4Lih4Liy4LiZ4Li1CivguKHguLLguJnguLjguKkKK+C4oeC4suC4meC4uOC4qeC4oi0KK+C4oeC4suC4meC4uOC4qeC4ouC4p+C4tOC4l+C4ouC4sgor4Lih4Liy4LmC4LiZ4LiK4LiN4LmMCivguKHguLLguJoKK+C4oeC4suC4m+C4gQor4Lih4Liy4Lig4LiyCivguKHguYnguLLguKEKK+C4oeC5ieC4suC4oeC4t+C4lAor4Lih4Liy4LiiCivguKHguYjguLLguKIKK+C4oeC5iOC4suC4ouC5gOC4oeC4teC4ouC4hwor4Lih4LmJ4Liy4Lii4LmI4Lit4LiHCivguKHguLLguKLguLHguIcKK+C4oeC4suC4ouC4sgor4Lih4Liy4Lii4Liy4LiB4LijCivguKHguLLguKLguLLguIHguKUKK+C4oeC4suC4ouC4suC4geC4suC4owor4Lih4Liy4Lii4Liy4Lib4Lij4Liw4Liq4Liy4LiZCivguKHguLLguKLguLLguKfguLUKK+C4oeC4suC4owor4Lih4Liy4LijLQor4Lih4Liy4Lij4LiECivguKHguLLguKPguITguK3guKvguK3guKIKK+C4oeC4suC4o+C4iuC4tAor4Lih4Liy4Lij4LiK4Li04LiVCivguKHguLLguKPguJTguKMKK+C4oeC4suC4o+C4lOC4sgor4Lih4Liy4Lij4Lic4LiI4LiNCivguKHguLLguKPguKLguLIKK+C4oeC4suC4o+C4ouC4suC4lwor4Lih4Liy4Lij4Lin4Li04LiK4Lix4LiiCivguKHguLLguKPguKfguLTguIrguLTguJUKK+C4oeC4suC4o+C4qOC4o+C4tQor4Lih4Liy4Lij4Lip4LiyCivguKHguLLguKPguKrguLHguIfguITguKEKK+C4oeC4suC4o+C4q+C4seC4p+C4guC4mQor4Lih4Liy4Lij4LiwCivguKHguLLguKPguLLguJjguLTguKPguLLguIoKK+C4oeC5ieC4suC4o+C4swor4Lih4Liy4Lij4Li0CivguKHguLLguKPguLTguJUKK+C4oeC4suC4o+C4uOC4lQor4Lih4Liy4Lij4Li44Lih4Lih4Liy4LiV4Li44LmJ4LihCivguKHguYnguLLguYDguKPguYfguKcKK+C4oeC4suC4peC4ouC5jAor4Lih4LmJ4Liy4Lil4LmI4LitCivguKHguLLguKXguLHguKIKK+C4oeC4suC4peC4sgor4Lih4Liy4Lil4Liy4LiB4Lij4Lij4LihCivguKHguLLguKXguLLguIHguLLguKMKK+C4oeC4suC4peC4suC4leC4tQor4Lih4LmJ4Liy4Lil4Liy4LiiCivguKHguLLguKXguLLguYDguKPguLXguKIKK+C4oeC4suC4peC4swor4Lih4Liy4Lil4Li04LiZ4Li1CivguKHguLLguKXguLUKK+C4oeC4suC4peC4uOC4lQor4Lih4Liy4Lin4Liy4LijCivguKHguLLguKgKK+C4oeC4suC4qgor4Lih4Liy4Liq4LiBCivguKHguYnguLLguKrguLDguJrguLHguJTguIHguLXguJoKK+C4oeC4suC4q+C5jAor4Lih4LmI4Liy4Lir4LmMCivguKHguLLguKvguLTguKoKK+C4oeC4suC5gOC4q+C4meC4t+C4reC5gOC4oeC4hgor4Lih4LmI4Liy4LmA4Lir4Lih4Li14LmI4Lii4LinCivguKHguLLguKzguIEKK+C4oeC5ieC4suC4reC5ieC4p+C4mQor4Lih4Liz4LmA4Lil4Li34Lit4LiHCivguKHguLQKK+C4oeC4tOC4hAor4Lih4Li04LiELQor4Lih4Li04LiE4Lil4Li44LiXCivguKHguLTguITguKXguLjguJfguIEKK+C4oeC4tOC4hOC5gOC4qOC4teC4ouC4owor4Lih4Li04LiE4Liq4Lix4LiN4LiN4Li1CivguKHguLTguITguKrguLTguKMtCivguKHguLTguITguKrguLTguKPguLAKK+C4oeC4tOC4hOC4tQor4Lih4Li04LmI4LiHCivguKHguLTguYjguIfguILguKfguLHguI0KK+C4oeC4tOC4h+C5guC4hAor4Lih4Li04LmI4LiH4Lih4Li04LiV4LijCivguKHguLTguIjguInguLIKK+C4oeC4tOC4iOC4ieC4suC4geC4seC4oeC4oeC4seC4meC4leC4sAor4Lih4Li04LiI4LiJ4Liy4LiI4Lij4Li04Lii4LiyCivguKHguLTguIjguInguLLguIjguLLguKMKK+C4oeC4tOC4iOC4ieC4suC4iuC4teC4ngor4Lih4Li04LiI4LiJ4Liy4LiX4Li04LiQ4Li0CivguKHguLTguIjguInguLLguJrguJYKK+C4oeC4tOC4iOC4ieC4suC4p+C4suC4iOC4sgor4Lih4Li04LiI4LiJ4Liy4Lin4Liy4Lii4Liy4Lih4LiwCivguKHguLTguIjguInguLLguKrguJXguLQKK+C4oeC4tOC4iOC4ieC4suC4quC4oeC4suC4mOC4tAor4Lih4Li04LiI4LiJ4Liy4Liq4Lix4LiH4LiB4Lix4Lib4Lib4LiwCivguKHguLTguIjguInguLLguK3guLLguIrguLXguKfguLAKK+C4oeC4tOC4jeC4ii0KK+C4oeC4tOC4lAor4Lih4Li04LiU4LiK4Li04LiUCivguKHguLTguJTguYDguKHguYnguJkKK+C4oeC4tOC4lOC5gOC4oeC4teC5ieC4ouC4mQor4Lih4Li04LiU4Lir4Lih4Li1CivguKHguLTguJTguLXguKHguLTguKPguYnguLLguKIKK+C4oeC4tOC5hOC4lOC5iQor4Lih4Li04LiVLQor4Lih4Li04LiV4Lig4Liy4LiT4Li1CivguKHguLTguJXguKMKK+C4oeC4tOC4leC4oy0KK+C4oeC4tOC4leC4o+C4iOC4tOC4lQor4Lih4Li04LiV4Lij4LiI4Li04LiV4Lih4Li04LiV4Lij4LmD4LiICivguKHguLTguJXguKPguKDguLLguJ4KK+C4oeC4tOC4leC4o+C4quC4q+C4suC4ogor4Lih4Li04LiV4Li0CivguKHguLTguJbguKLguLIKK+C4oeC4tOC4luC4uOC4mQor4Lih4Li04LiW4Li44LiZ4Liy4Lii4LiZCivguKHguLTguJfguJjguLAKK+C4oeC4tOC4l+C4mOC4tQor4Lih4Li04LiZ4LiV4Lij4LiyCivguKHguLTguJnguJXguLIKK+C4oeC4tOC4meC4q+C4oeC5ieC4rQor4Lih4Li04LiZ4LmI4LiyCivguKHguLTguJnguYjguLLguKXguYjguLAKK+C4oeC4tOC4meC5iOC4suC5gOC4peC5iOC4sgor4Lih4Li04LmI4LihCivguKHguLTguYnguKEKK+C4oeC4tOC4ouC4sgor4Lih4Li04LmE4LiiCivguKHguLTguKPguLHguJnguJXguLUKK+C4oeC4tOC4peC4peC4tOC4geC4o+C4seC4oQor4Lih4Li04Lil4Lil4Li04Lia4Liy4Lij4LmMCivguKHguLTguKXguKXguLTguYDguKHguJXguKMKK+C4oeC4tOC4peC4peC4tOC4peC4tOC4leC4owor4Lih4Li04Lil4Lix4LiB4LiC4LiwCivguKHguLTguKXguLHguIHguILguLkKK+C4oeC4tOC4peC4suC4lQor4Lih4Li04Lio4LijLQor4Lih4Li04Lio4Lij4LiBLQor4Lih4Li04LiqLQor4Lih4Li04Liq4LiBLQor4Lih4Li04Liq4LiB4Lij4Li1CivguKHguLTguKrguIHguKfguLHguJkKK+C4oeC4tOC4quC4i+C4sgor4Lih4Li04Lit4Lii4LmI4Liy4Lij4LiyCivguKHguLTguK3guKLguYjguLLguYDguKXguKIKK+C4oeC4tQor4Lih4Li14LmICivguKHguLXguYHguIHguYjguYPguIgKK+C4oeC4teC5iOC4ieC4suC4pwor4Lih4Li14LiK4Li34LmI4LitCivguKHguLXguIrguLnguYkKK+C4oeC4teC4lAor4Lih4Li14LiU4LmC4LiB4LiZCivguKHguLXguJTguJXguK3guIEKK+C4oeC4teC4lOC4ouC4seC4mgor4Lih4Li14LiU4Lir4Lih4LitCivguKHguLXguJXguLLguYHguJXguYjguKvguLLguKHguLXguYHguKfguKfguYTguKHguYgKK+C4oeC4teC4l+C4reC4h+C5gOC4l+C5iOC4suC4q+C4meC4p+C4lOC4geC4uOC5ieC4hyDguJnguK3guJnguKrguLDguJTguLjguYnguIfguIjguJnguYDguKPguLfguK3guJnguYTguKvguKcKK+C4oeC4teC5gOC4l+C4mQor4Lih4Li14LiZCivguKHguLXguJnguLLguITguKEKK+C4oeC4teC5gOC4n+C4t+C5ieC4reC4h+C4oeC4teC4quC4peC4tuC4hwor4Lih4Li14Lig4Liy4Lip4Li14LiB4Lin4LmI4LiyCivguKHguLXguYDguKPguLfguK3guJkKK+C4oeC4teC5iOC4quC4seC5ieC4pwor4Lih4Li14LmA4Liq4Li14Lii4LiHCivguKHguLXguKvguJnguYnguLIKK+C4oeC4teC4q+C4meC5ieC4suC4oeC4teC4leC4sgor4Lih4Li14Lis4LirLQor4Lih4Li14Lit4Lix4LiZ4LiI4Liw4LiB4Li04LiZCivguKHguLXguK3guLHguJnguYDguJvguYfguJkKK+C4oeC4teC4reC4suC4ouC4uAor4Lih4Li24LiBCivguKHguLbguIHguKHguKfguKIKK+C4oeC4tuC4hwor4Lih4Li24LiH4Lin4Liy4Lie4Liy4LmC4Lin4LiiCivguKHguLbguJkKK+C4oeC4tuC4meC4h+C4hwor4Lih4Li24LiZ4LiK4LiyCivguKHguLbguJnguIvguLbguKEKK+C4oeC4tuC4meC4leC4tuC4hwor4Lih4Li24LiZ4LmA4Lih4LiyCivguKHguLfguJQKK+C4oeC4t+C4lOC4hOC5iOC4swor4Lih4Li34LiU4LmB4Lib4LiU4LiU4LmJ4Liy4LiZCivguKHguLfguJTguJ/guYnguLLguKHguLHguKfguJTguLTguJkKK+C4oeC4t+C4lOC4oeC4mQor4Lih4Li34LiU4Lih4Lix4LinCivguKHguLfguJTguKvguJnguYnguLIKK+C4oeC4t+C4mQor4Lih4Li34LmI4LiZCivguKHguLfguK0KK+C4oeC4t+C5ieC4rQor4Lih4Li34Lit4LiB4Liy4LinCivguKHguLfguK3guYDguIHguYjguLIKK+C4oeC4t+C4reC4guC4p+C4sgor4Lih4Li34Lit4LiC4Li24LmJ4LiZCivguKHguLfguK3guYHguILguYfguIcKK+C4oeC4t+C4reC4lOC4tQor4Lih4Li34Lit4LiV4LiBCivguKHguLfguK3guYDguJXguLTguJoKK+C4oeC4t+C4reC4luC4t+C4reC4quC4suC4gSDguJvguLLguIHguJbguLfguK3guKjguLXguKUKK+C4oeC4t+C4reC4l+C4teC5iOC4quC4suC4oQor4Lih4Li34Lit4Lia4Lit4LiZCivguKHguLfguK3guYDguJrguLIKK+C4oeC4t+C4reC4m+C4t+C4mQor4Lih4Li34Lit4Lic4Li1CivguKHguLfguK3guKHguLfguJQKK+C4oeC4t+C4reC5hOC4oeC5iOC4luC4tuC4hwor4Lih4Li34Lit4LmE4Lih4LmI4Lie4Liy4LiiIOC5gOC4reC4suC4leC4teC4meC4o+C4suC4meC5ieC4swor4Lih4Li34Lit4LmA4Lii4LmH4LiZCivguKHguLfguK3guKPguYnguK3guJkKK+C4oeC4t+C4reC4peC4tOC4hwor4Lih4Li34Lit4LmE4LinCivguKHguLfguK3guKrguLDguK3guLLguJQKK+C4oeC4t+C4reC4quC4seC5ieC4meC4leC4teC4meC4quC4seC5ieC4mQor4Lih4Li34Lit4Liq4Li1CivguKHguLfguK3guYDguKrguLfguK0KK+C4oeC4t+C4reC4q+C4meC4seC4gQor4Lih4Li34Lit4Lir4LiZ4Li24LmI4LiHCivguKHguLfguK3guKvguYjguLLguIfguJXguLXguJnguKvguYjguLLguIcKK+C4oeC4t+C4reC5g+C4q+C4oeC5iAor4Lih4Li34Lit4Lit4LmI4Lit4LiZCivguKHguLfguK3guK3guYjguK3guJnguJXguLXguJnguK3guYjguK3guJkKK+C4oeC4uAor4Lih4Li44LiBCivguKHguLjguIHguJTguLIKK+C4oeC4uOC4geC4lOC4suC4q+C4suC4owor4Lih4Li44LiB4Li44LijCivguKHguLjguIHguLjguKUKK+C4oeC4uOC4ggor4Lih4Li44LiCLQor4Lih4Li44LiC4LiB4Lij4Liw4Liq4Lix4LiZCivguKHguLjguILguYDguJTguYfguIgKK+C4oeC4uOC4guC4muC4suC4kAor4Lih4Li44LiC4Lih4LiZ4LiV4Lij4Li1CivguKHguLjguILguKItCivguKHguLjguILguKLguJvguKPguLDguYLguKLguIQKK+C4oeC4uOC4guC4peC4lAor4Lih4Li44LmC4LiC4LmC4Lil4LiB4LiZ4LiwCivguKHguLjguITguITguLAKK+C4oeC4uOC4hOC4mOC5jAor4Lih4Li44LiE4LijCivguKHguLjguIcKK+C4oeC4uOC5iOC4hwor4Lih4Li44LmJ4LiHCivguKHguLjguYnguIfguIHguKPguLDguJXguYjguLLguKIKK+C4oeC4uOC5ieC4h+C4m+C4o+C4sOC4l+C4uOC4mQor4Lih4Li44LmI4LiH4Lih4Liy4LiUCivguKHguLjguYjguIfguKPguYnguLLguKLguKvguKHguLLguKLguILguKfguLHguI0KK+C4oeC4uOC5ieC4h+C4peC4p+C4lAor4Lih4Li44LmJ4LiH4Liq4Liy4Lii4Lia4Lix4LinCivguKHguLjguYjguIfguKvguKHguLLguKIKK+C4oeC4uOC4iOC4ieC4sgor4Lih4Li44LiI4LiZCivguKHguLjguIjguKXguLTguJnguJfguYwKK+C4oeC4uOC4jeC4iOC4meC4sAor4Lih4Li44LiN4LiKCivguKHguLjguJDguLQKK+C4oeC4uOC4k+C4kQor4Lih4Li44LiT4LiR4LiBCivguKHguLjguJQKK+C4oeC4uOC4lOC4q+C4seC4pwor4Lih4Li44LiVCivguKHguLjguJUtCivguKHguLjguJXguIHguLTguJQKK+C4oeC4uOC4leC4huC4suC4lQor4Lih4Li44LiV4LiV4LiwCivguKHguLjguJXguJXguLIKK+C4oeC4uOC4leC4leC4tAor4Lih4Li44LiV4Li0CivguKHguLjguJXguLTguIfguITguYwKK+C4oeC4uOC4l+C4hAor4Lih4Li44LiX4LiE4LijCivguKHguLjguJfguJfguLIKK+C4oeC4uOC4l+C4mOC4iuC4sAor4Lih4Li44LiX4LiY4LiyCivguKHguLjguJfguJjguLLguKDguLTguYDguKnguIEKK+C4oeC4uOC4l+C4o+C4sgor4Lih4Li44LiX4Lij4Li04LiB4LiyCivguKHguLjguJfguLDguKXguLgKK+C4oeC4uOC4l+C4sgor4Lih4Li44LiX4Li04LiB4LiyCivguKHguLjguJfguLTguIfguITguYwKK+C4oeC4uOC4l+C4tOC4leC4sgor4Lih4Li44LiX4Li04LiZCivguKHguLjguJfguLgKK+C4oeC4uOC4l+C4uOC4leC4sgor4Lih4Li44LmI4LiZCivguKHguLjguYjguJnguYPguIgKK+C4oeC4uOC5iOC4meC4q+C4oeC4gQor4Lih4Li44LiZ4Li0CivguKHguLjguJnguLTguIHguLjguI3guIrguKMKK+C4oeC4uOC4meC4tOC4meC4l+C4o+C5jAor4Lih4Li44LiZ4Li1CivguKHguLjguJoKK+C4oeC4uOC4muC5hgor4Lih4Li44Lia4Lih4Li04LiaCivguKHguLjguKEKK+C4oeC4uOC5iOC4oQor4Lih4Li44LmJ4LihCivguKHguLjguKHguIHguJTguKXguIcKK+C4oeC4uOC4oeC4geC5ieC4oQor4Lih4Li44Lih4LiB4Lil4Lix4LiaCivguKHguLjguKHguYDguIfguKIKK+C4oeC4uOC4oeC4ieC4suC4gQor4Lih4Li44Lih4LiV4LiB4LiB4Lij4Liw4LiX4LiaCivguKHguLjguKHguJXguKPguIcKK+C4oeC4uOC4oeC5gOC4lwor4Lih4Li44Lih4Lia4LmI4Liy4Lii4LmA4Lia4LiZCivguKHguLjguKHguJvguKPguLDguIrguLTguJQKK+C4oeC4uOC4oeC4m+C5ieC4suC4mQor4Lih4Li44Lih4Lih4Li34LiUCivguKHguLjguKHguKLguIHguILguLbguYnguJkKK+C4oeC4uOC4oeC5geC4ouC5ieC4hwor4Lih4Li44Lih4Liq4Liw4LiX4LmJ4Lit4LiZCivguKHguLjguKHguKvguLHguIHguYDguKsKK+C4oeC4uOC4oeC5gOC4qwor4Lih4Li44Lih4LmB4Lir4Lil4LihCivguKHguLjguYjguKIKK+C4oeC4uOC4o+C4igor4Lih4Li44Lij4LiY4LiyCivguKHguLjguKPguJjguLLguKDguLTguYDguKnguIEKK+C4oeC4uOC4peC4uOC4lQor4Lih4Li44Lil4Li5CivguKHguLjguKrguKXguLAKK+C4oeC4uOC4quC4peC4tOC4oQor4Lih4Li44Liq4LiwCivguKHguLjguKrguLIKK+C4oeC4uOC4quC4suC4p+C4suC4lwor4Lih4Li44Liq4Li04LiBCivguKHguLjguKvguIfguLTguJQKK+C4oeC4uOC4q+C4meC5iOC4suC4ogor4Lih4Li44Lir4Li44LiVCivguKHguLjguK7guLHguKHguKHguLHguJQKK+C4oeC4ueC4gQor4Lih4Li54LiB4Lih4Lix4LiZCivguKHguLnguIHguYDguKXguLfguK3guJQKK+C4oeC4ueC4geC4q+C4peC4p+C4hwor4Lih4Li54LiELQor4Lih4Li54LmA4LiL4LitCivguKHguLnguJXguKMKK+C4oeC4ueC5iOC4l+C4ueC5iAor4Lih4Li54LiZCivguKHguLnguJnguKHguK3guIcKK+C4oeC4ueC4oeC4oeC4suC4oQor4Lih4Li54Lij4LiU4Li1CivguKHguLnguKPguJXguLQKK+C4oeC4ueC4o+C4mC0KK+C4oeC4ueC4o+C4mOC4sgor4Lih4Li54Lij4LiY4Liy4Lig4Li04LmA4Lip4LiBCivguKHguLnguKUKK+C4oeC4ueC4pS0KK+C4oeC4ueC4peC4hOC5iOC4sgor4Lih4Li54Lil4LmC4LiECivguKHguLnguKXguIjguLTguJUKK+C4oeC4ueC4peC4kOC4suC4mQor4Lih4Li54Lil4LmE4LiWCivguKHguLnguKXguJnguIHguIHguLLguKPguYDguKfguIEKK+C4oeC4ueC4peC4meC4suC4ogor4Lih4Li54Lil4LiZ4Li04LiY4Li0CivguKHguLnguKXguJ3guK3guKIKK+C4oeC4ueC4peC4oOC4seC4k+C4keC5jOC4geC4seC4meC4iuC4mQor4Lih4Li54Lil4LiwCivguKHguLnguKXguLIKK+C4oeC4ueC4peC4tOC4geC4suC4geC4owor4Lih4Li54LmI4Lil4Li14LmICivguKHguLnguYjguYDguKXguYgKK+C4oeC4ueC4quC4seC4hwor4Lih4Li54Liq4Li04LiBCivguKHguLnguKrguLTguIEtCivguKHguLnguKrguLTguIHguJfguLHguJnguJXguYwKK+C4oeC4ueC4rOC4qy0KK+C5gOC4oQor4LmA4Lih4LmH4LiBCivguYDguKHguIHguLDguYDguK7guLTguKPguJXguIvguYwKK+C5gOC4oeC4guC4peC4sgor4LmA4Lih4LiGCivguYDguKHguIbguITguKXguLjguYnguKEKK+C5gOC4oeC4huC4ieC4suC4ogor4LmA4Lih4LiG4Lie4Lix4LiUCivguYDguKHguIbguKHguLLguIEKK+C5gOC4oeC4huC4sgor4LmA4Lih4LiG4Li04LiZ4LiX4Lij4LmMCivguYDguKHguIbguLUKK+C5gOC4oeC5h+C4hwor4LmA4Lih4LiH4Lit4Liw4Lib4LiyCivguYDguKHguYfguJQKK+C5gOC4oeC5h+C4lOC4lOC4tQor4LmA4Lih4LmH4LiU4Lie4Lij4Liw4Lio4LiBCivguYDguKHguYfguJTguJ7guKPguLLguKIKK+C5gOC4oeC5h+C4lOC4oeC4sOC4ouC4oQor4LmA4Lih4LmH4LiU4Lil4Liw4Lih4Li44LiUCivguYDguKHguYfguJTguYDguKXguLfguK3guJQKK+C5gOC4oeC5h+C4lOC5guC4peC4q+C4tOC4lQor4LmA4Lih4LiV4LiV4LiyCivguYDguKHguJXguYTguJXguKPguKIKK+C5gOC4oeC4leC4owor4LmA4Lih4LiV4Lij4Li04LiBCivguYDguKHguJXguKPguLTguIHguJXguLHguJkKK+C5gOC4oeC4luC4uOC4mQor4LmA4Lih4LiXCivguYDguKHguJfguJnguLUKK+C5gOC4oeC4l+C4meC4teC4lOC4pQor4LmA4Lih4LiX4Li04LiZ4Li1CivguYDguKHguJfguLTguKXguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5gOC4oeC5guC4lwor4LmA4Lih4LiYCivguYDguKHguJjguLIKK+C5gOC4oeC4mOC4suC4p+C4tQor4LmA4Lih4LiY4Li1CivguYDguKHguJkKK+C5gOC4oeC5iOC4mQor4LmA4Lih4LmJ4LiZCivguYDguKHguJnguYDguJTguKXguLXguYDguKfguLXguKLguKEKK+C5gOC4oeC4meC4l+C4reC4pQor4LmA4Lih4LmI4LiZ4LiX4Liw4LmA4LilCivguYDguKHguYnguKEKK+C5gOC4oeC5ieC4oeC4m+C4suC4gQor4LmA4Lih4Lij4LiiLQor4LmA4Lih4Lij4Lix4LiiCivguYDguKHguKPguLgKK+C5gOC4oeC4o+C4uC0KK+C5gOC4oeC4o+C4uOC4oeC4suC4qAor4LmA4Lih4Lij4Li44Lij4Liy4LiKCivguYDguKHguKXguYwKK+C5gOC4oeC4peC4gQor4LmA4Lih4Lil4LmH4LiUCivguYDguKHguKXguLfguK3guIcKK+C5gOC4oeC4peC4t+C5iOC4reC4ogor4LmA4Lih4Lil4Li34LmJ4Lit4LiiCivguYDguKHguKXguLfguYjguK3guKLguKHguKXguYnguLIKK+C5gOC4oeC4qQor4LmA4Lih4Lip4Liy4Lii4LiZCivguYDguKHguKsKK+C5gOC4oeC4q+C5jAor4LmA4Lih4Lir4LiZCivguYDguKHguLAKK+C5gOC4oeC4sgor4LmA4Lih4LmI4LiyCivguYDguKHguYnguLIKK+C5gOC4oeC5ieC4suC5gOC4hOC5ieC4sgor4LmA4Lih4Liy4LiU4Li04LiaCivguYDguKHguLLguKHguLHguJkKK+C5gOC4oeC4suC4oeC4seC4pwor4LmA4Lih4Liy4Lih4Liy4LiiCivguYDguKHguLLguKLguKgKK+C5gOC4oeC4suC4o+C4tQor4LmA4Lih4Liy4Lil4Li1CivguYDguKHguLLguKvguYwKK+C5gOC4oeC4suC4reC4s+C4meC4suC4iAor4LmA4Lih4Liy4LiwCivguYDguKHguLLguLDguJXguLLguYLguKLguIHguLHguIEKK+C5gOC4oeC4suC4sOC4p+C5iOC4sgor4LmA4Lih4Li04LiHCivguYDguKHguLTguJkKK+C5gOC4oeC4tOC4pQor4LmA4Lih4Li14LiiCivguYDguKHguLXguKLguIcKK+C5gOC4oeC4teC5iOC4ouC4hwor4LmA4Lih4Li14Lii4LiH4Lih4LmI4Liy4LiiCivguYDguKHguLXguYnguKLguJkKK+C5gOC4oeC4teC4ouC4meC5ieC4reC4ogor4LmA4Lih4Li14Lii4Lir4Lil4Lin4LiHCivguYDguKHguLfguK0KK+C5gOC4oeC4t+C5iOC4rQor4LmA4Lih4Li34LmJ4LitCivguYDguKHguLfguK3guIEKK+C5gOC4oeC4t+C5iOC4reC4geC4teC5iQor4LmA4Lih4Li34Lit4LiHCivguYDguKHguLfguK3guIfguILguLbguYnguJkKK+C5gOC4oeC4t+C4reC4h+C4l+C5iOC4sgor4LmA4Lih4Li34Lit4LiH4LiX4LmI4Liy4Lib4Lil4Lit4LiU4Lig4Liy4Lip4Li1CivguYDguKHguLfguK3guIfguJnguK3guIEKK+C5gOC4oeC4t+C4reC4h+C4q+C4peC4p+C4hwor4LmA4Lih4Li34Lit4LiH4Lit4Lit4LiBCivguYDguKHguLfguYjguK3guJXguLDguIHguLXguYkKK+C5gOC4oeC4t+C5iOC4reC4meC4seC5ieC4mQor4LmA4Lih4Li34Lit4LiaCivguYDguKHguLfguYjguK3guJ7guLXguYDguJnguLfguYnguK3guKvguK3guKEg4LmA4Lih4Li34LmI4Lit4Lic4Lit4Lih4LmA4LiZ4Li34LmJ4Lit4LmA4Lir4Lih4LmH4LiZCivguYDguKHguLfguYjguK3guKIKK+C5gOC4oeC4t+C5iOC4reC4ouC4m+C4suC4gQor4LmA4Lih4Li34LmI4Lit4LmA4Lit4Lii4LiB4LmH4LmA4Lih4Li34LmI4Lit4LiZ4Lix4LmJ4LiZCivguYDguKHguLfguYjguK3guYDguK3guKLguYDguKHguLfguYjguK3guJnguLHguYnguJkKK+C5geC4oeC5iAor4LmB4Lih4LmJCivguYHguKHguIEKK+C5geC4oeC4geC4meC4teC5gOC4i+C4teC4ouC4oQor4LmB4Lih4LmI4LiB4Lij4Liw4LiK4Lix4LiH4Lir4LiZ4LmJ4Liy4LmD4Lir4LiN4LmICivguYHguKHguYjguIHguKPguLDguYHguIrguIcKK+C5geC4oeC5iOC4geC4reC4hwor4LmB4Lih4LmI4LiB4Li44LiN4LmB4LiICivguYHguKHguYjguITguLjguJMKK+C5geC4oeC5iOC4hOC4ueC5iAor4LmB4Lih4LiHCivguYHguKHguIfguIHguKfguLLguIcKK+C5geC4oeC4h+C4geC4sOC4nuC4o+C4uOC4mQor4LmB4Lih4LiH4LiB4Liy4LiZ4Li04LiZCivguYHguKHguIfguIHguLLguJnguLXguKoKK+C5geC4oeC4h+C4hOC4suC5gOC4o+C4t+C4reC4hwor4LmB4Lih4LiH4LiK4LmJ4Liy4LiHCivguYHguKHguIfguJTguLIKK+C5geC4oeC4h+C4lOC4suC4l+C4sOC5gOC4pQor4LmB4Lih4LiH4Lib4Liy4LiB4LiI4Lit4LiaCivguYHguKHguIfguYTguJ/guYDguJTguLfguK3guJnguKvguYnguLIKK+C5geC4oeC5iOC4h+C4oeC5ieC4suC4hwor4LmB4Lih4LiH4Lih4Li44LihCivguYHguKHguIfguKXguLHguIEKK+C5geC4oeC5iOC4h+C4suC4mQor4LmB4Lih4LmI4LmA4LiI4LmJ4LiyCivguYHguKHguYjguYDguIjguYnguLLguYLguKfguYnguKIKK+C5geC4oeC5iOC4i+C4t+C5ieC4rQor4LmB4Lih4LmI4LiV4Liw4LiH4Liy4LinCivguYHguKHguYjguJXguLLguKIKK+C5geC4oeC5iOC5gOC4leC4suC5hOC4nwor4LmB4Lih4LmJ4LmB4LiV4LmICivguYHguKHguYjguJfguLHguJ4KK+C5geC4oeC5iOC4l+C5iOC4sgor4LmB4Lih4LiZCivguYHguKHguYjguJkKK+C5geC4oeC5ieC4mQor4LmB4Lih4LmJ4LiZ4LmA4LiC4Li14Lii4LiZCivguYHguKHguYjguJnguKEKK+C5geC4oeC5iOC4meC4ouC4swor4LmB4Lih4LmI4LiZ4LmJ4LizCivguYHguKHguYjguJrguJcKK+C5geC4oeC5iOC4muC5ieC4suC4mQor4LmB4Lih4LmI4LmA4Lia4Li14LmJ4LiiCivguYHguKHguYjguJvguLAKK+C5geC4oeC5iOC5geC4m+C4o+C4gQor4LmB4Lih4LmI4Lie4Li04Lih4Lie4LmMCivguYHguKHguYjguKHguJQKK+C5geC4oeC5iOC4oeC5iOC4suC4ogor4LmB4Lih4LmI4Lih4LmI4Liy4Lii4LiX4Lij4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguYHguKHguYjguKHguYjguLLguKLguKXguK3guIfguYTguJkKK+C5geC4oeC5iOC4ouC4seC5iOC4p+C5gOC4oeC4t+C4reC4hwor4LmB4Lih4LmI4Lii4LmI4Liy4LiZ4Liy4LiHCivguYHguKHguYjguKLguLLguKIKK+C5geC4oeC5iOC4ouC5ieC4suC4pwor4LmB4Lih4LijCivguYHguKHguYjguKPguYnguLIKK+C5geC4oeC5iOC4o+C5ieC4suC4hwor4LmB4Lih4LmI4Lij4Li14LmB4Lih4LmI4LmB4Lij4LiUCivguYHguKHguYjguYDguKPguLfguK3guJkKK+C5geC4oeC5iOC5geC4o+C4hwor4LmB4Lih4Lil4LiHCivguYHguKHguKXguIfguIrguYnguLLguIcKK+C5geC4oeC4peC4h+C4lOC4sgor4LmB4Lih4Lil4LiH4LiU4LizCivguYHguKHguKXguIfguJTguLPguKvguJnguLLguKEKK+C5geC4oeC4peC4h+C4l+C4seC4muC5gOC4peC5h+C4gQor4LmB4Lih4Lil4LiH4Lib4LitCivguYHguKHguKXguIfguKDguLnguYgKK+C5geC4oeC4peC4h+C4p+C4seC4mQor4LmB4Lih4Lil4LiH4Lin4Lix4LiZ4LiX4Lit4LiHCivguYHguKHguKXguIfguKfguLHguJnguKrguYDguJvguJkKK+C5geC4oeC4peC4h+C4p+C4seC4meC4q+C4seC4p+C5gOC4guC4teC4ouC4pwor4LmB4Lih4Lil4LiaCivguYHguKHguYjguKXguLLguKIKK+C5geC4oeC5iOC5gOC4peC5ieC4sgor4LmB4Lih4LmI4LmA4Lil4Li14LmJ4Lii4LiHCivguYHguKHguKcKK+C5geC4oeC5ieC4pwor4LmB4Lih4Lin4LmA4LiL4LiyCivguYHguKHguKfguJTguLLguKcKK+C5geC4oeC4p+C4meC5ieC4swor4LmB4Lih4Lin4Lib4LmI4LiyCivguYHguKHguKfguKHguK3guIcKK+C5geC4oeC5iOC4p+C4tQor4LmB4Lih4LmI4Liq4Liy4Lii4Lia4Lix4Lin4LmB4LiV4LmI4LiH4LiV4Lix4Lin4LiE4LmJ4Liy4LiHCivguYHguKHguYjguKrguLUKK+C5geC4oeC5iOC4quC4t+C5iOC4rQor4LmB4Lih4LmI4Lir4LiZ4Lix4LiBCivguYHguKHguYjguKvguKLguLHguYjguKfguYDguKHguLfguK3guIcKK+C5geC4oeC5iOC5gOC4q+C4ouC5ieC4suC5geC4oeC5iOC5gOC4o+C4t+C4reC4mQor4LmB4Lih4LmI4LmA4Lir4Lil4LmH4LiBCivguYHguKHguYjguK3guKLguLnguYjguKvguLHguKcKK+C5geC4oeC4sAor4LmC4LihCivguYLguKHguYgKK+C5guC4oeC5iQor4LmC4Lih4LiBCivguYLguKHguIHguIItCivguYLguKHguIHguILguYwKK+C5guC4oeC4geC4guC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4LmC4Lih4LiB4LmC4LiE4LiBCivguYLguKHguIHguKHguLHguJkKK+C5guC4oeC4geC4qS0KK+C5guC4oeC4geC4qeC4sAor4LmC4Lih4LiB4Lip4Liw4Lie4Lii4Liy4LiZCivguYLguKHguIHguYPguKvguI3guYgKK+C5guC4oeC4hi0KK+C5guC4oeC4huC4geC4o+C4o+C4oQor4LmC4Lih4LiG4LiwCivguYLguKHguIbguLXguKItCivguYLguKHguIbguLXguKLguIHguKPguKPguKEKK+C5guC4oeC4huC4teC4ouC4sAor4LmC4Lih4LiHCivguYLguKHguYjguIcKK+C5guC4oeC4h+C4hOC4o+C4uOC5iOC4oQor4LmC4Lih4LmI4LiH4LmC4LiE4LmI4LiHCivguYLguKHguIjguJktCivguYLguKHguJfguJnguLIKK+C5guC4oeC4mQor4LmC4Lih4LmC4LiZ4LmB4LiL4LmH4LiB4LiE4Liy4LmE4Lij4LiU4LmMCivguYLguKHguYTguJnguKIKK+C5guC4oeC4oeC4ueC4q+C5jAor4LmC4Lih4Lih4Li54Lir4LiwCivguYLguKHguYDguKEKK+C5guC4oeC5gOC4oeC4meC4leC5jAor4LmC4Lih4LijLQor4LmC4Lih4Lij4LiB4Lil4Liy4LibCivguYLguKHguKPguLIKK+C5guC4oeC4o+C4tQor4LmC4Lih4LmA4Lij4LiqCivguYLguKHguKXguLTguJrguJTguLXguJnguLHguKEKK+C5guC4oeC4peC4tQor4LmC4Lih4LmA4Lil4LiB4Li44LilCivguYLguKHguKkKK+C5guC4oeC4qeC4gQor4LmC4Lih4Lip4LiTCivguYLguKHguYDguKrguIEKK+C5guC4oeC5gOC4quC4qgor4LmC4Lih4LirLQor4LmC4Lih4LmI4Lir4LmMCivguYLguKHguKvguLAKK+C5guC4oeC4q+C4seC4meC4mOC5jAor4LmC4Lih4Lir4Liy4LiE4LiV4Li0CivguYLguKHguYLguKsKK+C5hOC4oeC5iAor4LmE4Lih4LmJCivguYTguKHguYnguIHguIcKK+C5hOC4oeC4geC4sgor4LmE4Lih4LmJ4LiB4Liy4LiB4Lia4Liy4LiXCivguYTguKHguYnguIHguLLguIfguYDguILguJkKK+C5hOC4oeC5iOC4geC4teC5iOC4meC5ieC4swor4LmE4Lih4LmI4LiB4Li14LmI4Lit4Lix4LiQCivguYTguKHguYjguIHguLXguYjguK3guLHguJDguKzguKoKK+C5hOC4oeC5ieC5g+C4geC4peC5ieC4neC4seC5iOC4hwor4LmE4Lih4LmJ4LiC4Li14LmJ4LiJ4LmJ4LitCivguYTguKHguYnguILguLXguJTguYTguJ8KK+C5hOC4oeC5iOC5gOC4guC5ieC4suC5g+C4hOC4o+C4reC4reC4geC5g+C4hOC4owor4LmE4Lih4LmI4LmA4LiC4LmJ4Liy4Lii4LiyCivguYTguKHguYnguYHguILguYfguIcKK+C5hOC4oeC5ieC4hOC4oeC5geC4neC4gQor4LmE4Lih4LiE4Lij4Lit4LiZCivguYTguKHguYjguITguYjguK3guKIKK+C5hOC4oeC5guC4hOC4o+C4geC4o+C4seC4oQor4LmE4Lih4LmC4LiE4Lij4Lif4Li04Lil4LmM4LihCivguYTguKHguYLguITguKPguYLguJ/guJkKK+C5hOC4oeC5guC4hOC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Lih4LmC4LiE4Lij4LmA4Lih4LiV4LijCivguYTguKHguYLguITguKPguKXguLTguJXguKMKK+C5hOC4oeC5guC4hOC4o+C5gOC4p+C4nwor4LmE4Lih4LmI4LmD4LiE4Lij4LmICivguYTguKHguYnguIfguLLguKHguIHguKPguLDguKPguK3guIHguYDguIjguLLguLAKK+C5hOC4oeC5ieC4iOC4o+C4tOC4hwor4LmE4Lih4LmJ4LiI4Lix4LiV4Lin4LiyCivguYTguKHguYnguIjguLPguJvguLIKK+C5hOC4oeC5iOC4iuC4reC4muC4oeC4suC4nuC4suC4geC4pQor4LmE4Lih4LmI4LmA4LiK4Li04LiHCivguYTguKHguYjguYPguIrguYjguILguLXguYnguYTguIHguYgKK+C5hOC4oeC5ieC4lOC4seC4lAor4LmE4Lih4LmJ4LiU4LizCivguYTguKHguYjguJTguLnguJTguLPguJTguLnguJTguLUKK+C5hOC4oeC5iOC4lOC4ueC4lOC4s+C4lOC4ueC5geC4lOC4hwor4LmE4Lih4LmI4LiU4Li54LiV4Liy4Lih4LmJ4Liy4LiV4Liy4LmA4Lij4Li34LitCivguYTguKHguYnguYDguJTguYfguJQKK+C5hOC4oeC5ieC5geC4lOC4hwor4LmE4Lih4LmI4LmE4LiU4LmJ4LmA4Lia4Li14LmJ4Lii4Lit4Lit4LiB4LiC4LmJ4Liy4LinCivguYTguKHguYjguYTguJTguYnguYDguJrguLXguYnguKLguYDguK3guLLguILguYnguLLguKcKK+C5hOC4oeC5iOC5hOC4lOC5ieC4qOC4seC4nuC4l+C5jAor4LmE4Lih4LmI4LmE4LiU4LmJ4Liq4Li04LiaCivguYTguKHguJXguKPguLUKK+C5hOC4oeC5ieC4leC4o+C4tQor4LmE4Lih4LmJ4LiV4Liy4LiiCivguYTguKHguYnguJXguLLguKLguILguLLguJkKK+C5hOC4oeC5ieC4leC4teC4nuC4o+C4tOC4gQor4LmE4Lih4LmI4LmA4LiV4LmH4Lih4LmA4LiV4LmH4LiHCivguYTguKHguYjguYDguJXguYfguKHguJrguLLguJcKK+C5hOC4oeC5iOC5gOC4leC5h+C4oeC4q+C4uOC4mQor4LmE4Lih4LmJ4LmE4LiV4LmI4LiE4Li54LmJCivguYTguKHguYjguJbguLnguIHguYLguKPguITguIHguLHguJkKK+C5hOC4oeC5ieC4l+C4seC4k+C4keC4huC4suC4lQor4LmE4Lih4LmI4LiX4Lix4LiZCivguYTguKHguYnguYDguJfguYnguLIKK+C5hOC4oeC5ieC5gOC4l+C5ieC4suC4ouC4suC4ouC4oeC5iOC4reC4oQor4LmE4Lih4LmJ4LmC4LiXCivguYTguKHguYnguJnguKfguKEKK+C5hOC4oeC5ieC4meC4reC4geC4geC4rQor4LmE4Lih4LmJ4LiZ4Li04LmJ4LinCivguYTguKHguYnguJrguKPguKPguJfguLHguJQKK+C5hOC4oeC5ieC5gOC4muC4t+C5iOC4reC5hOC4oeC5ieC5gOC4oeC4sgor4LmE4Lih4LmJ4Lib4LmI4Liy4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguYTguKHguYnguYDguJvguYfguJkKK+C5hOC4oeC5ieC4nOC4seC4lAor4LmE4Lih4LmI4Lie4Li54LiU4Lie4Lij4LmI4Liz4LiX4Liz4LmA4Lie4Lil4LiHCivguYTguKHguYnguYLguJ4KK+C5hOC4oeC5iOC4n+C4seC4h+C5gOC4quC4teC4ouC4hwor4LmE4Lih4LmJ4Lih4Lil4Liy4LiiCivguYTguKHguYnguKHguYnguKfguJkKK+C5hOC4oeC5iOC4oeC4teC4m+C4teC5iOC4oeC4teC4geC4peC4reC4hwor4LmE4Lih4LmI4Lih4Li14Lih4Li54Lil4Lid4Lit4Lii4Lir4Lih4Liy4LmE4Lih4LmI4LiC4Li14LmJCivguYTguKHguYjguKHguLXguKfguLHguJnguYDguKrguLXguKLguKXguLAKK+C5hOC4oeC5ieC4oeC4t+C4lAor4LmE4Lih4LmJ4Lih4Li34LitCivguYTguKHguYnguYDguKHguJXguKMKK+C5hOC4oeC5ieC4ouC4oeC4gQor4LmE4Lih4Lii4Lij4Liy4LiaCivguYTguKHguYnguKLguLLguKHguLHguIHguIHguLLguKMKK+C5hOC4oeC5ieC4ouC4suC4pwor4LmE4Lih4LmJ4Lij4LmI4Lih4LiZ4LiB4LiI4Lix4LiaCivguYTguKHguYjguKPguLnguYnguIjguLHguIHguYDguKrguLfguK3guYDguK3guLLguYDguKPguLfguK3guYDguILguYnguLLguKHguLLguIjguK3guJQg4LmE4Lih4LmI4Lij4Li54LmJ4LiI4Lix4LiB4Lih4Lit4LiU4LmA4Lit4Liy4LmE4Lih4LmJ4LmA4LiC4LmJ4Liy4Lih4Liy4Lin4Liy4LiHCivguYTguKHguYjguKPguLnguYnguIjguLHguIHguKvguLHguKfguJnguK3guJnguJvguKXguLLguKLguJXguLXguJkKK+C5hOC4oeC5iOC4o+C4ueC5ieC4reC4teC5guC4q+C4meC5iOC4reC4teC5gOC4q+C4meC5iAor4LmE4Lih4LmJ4LmA4Lij4Li14Lii4LinCivguYTguKHguKXguYwKK+C5hOC4oeC5iOC4peC4h+C5guC4muC4quC4luC5jOC4geC4seC4mQor4LmE4Lih4LmJ4Lil4LmJ4Lih4LmA4LiH4Liy4Lir4Liy4LiiCivguYTguKHguYnguKXguYnguKHguKXguLjguIEKK+C5hOC4oeC5ieC4peC4reC4ogor4LmE4Lih4LmJ4LmA4Lil4Li14LmJ4Lii4LiHCivguYTguKHguYnguYTguKXguYgKK+C5hOC4oeC5ieC4p+C4sgor4LmE4Lih4LmJ4Liq4Lit4LiiCivguYTguKHguYnguKrguLHguYnguJkKK+C5hOC4oeC5ieC4quC4seC5ieC4meC5hOC4oeC5ieC4ouC4suC4pwor4LmE4Lih4LmJ4Liq4Liy4Lih4Lit4Lix4LiZCivguYTguKHguYjguKrguLnguYkKK+C5hOC4oeC5ieC4quC4ueC4hwor4LmE4Lih4LmJ4Lir4LiZ4LmJ4LiyCivguYTguKHguYnguKvguKHguK3guJkKK+C5hOC4oeC5ieC4q+C4oeC4uOC4mQor4LmE4Lih4LmJ4Lir4Lil4Lix4LiB4Lib4Lix4LiB4LmA4Lil4LiZCivguYTguKHguYnguKvguLHguJnguK3guLLguIHguLLguKgKK+C5hOC4oeC5ieC4q+C4tuC5iOC4hwor4LmE4Lih4LmI4LmA4Lir4LmH4LiZ4LiZ4LmJ4Liz4LiV4Lix4LiU4LiB4Lij4Liw4Lia4Lit4LiBIOC5hOC4oeC5iOC5gOC4q+C5h+C4meC4geC4o+C4sOC4o+C4reC4geC4geC5iOC4h+C4q+C4meC5ieC4suC5hOC4oeC5iQor4LmE4Lih4LmI4LmA4Lir4Lil4Li34Lit4Lia4LmI4Liy4LiB4Lin4LmI4Liy4LmB4Lij4LiHCivguYTguKHguYnguK3guYjguK3guJnguJTguLHguJTguIfguYjguLLguKIg4LmE4Lih4LmJ4LmB4LiB4LmI4LiU4Lix4LiU4Lii4Liy4LiBCivguYTguKHguYnguK3guLHguJQKK+C5hOC4oeC5ieC5gOC4reC4gQor4LmE4Lih4LmI4LmA4Lit4Lit4Lit4Lit4Lir4LmI4Lit4Lir4Lih4LiBCivguYTguKHguYnguYLguK0KK+C4ogor4Lii4LiBCivguKLguIHguIHguKPguLDguJrguLHguJXguKMKK+C4ouC4geC4hOC4o+C4uQor4Lii4LiB4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguKLguIHguYDguITguYnguLIKK+C4ouC4geC4leC4meC4guC5iOC4oeC4l+C5iOC4suC4mQor4Lii4LiB4LiV4Lix4Lin4LiC4Li24LmJ4LiZ4LmA4Lir4LiZ4Li34Lit4Lil4LihCivguKLguIHguJfguKPguIcKK+C4ouC4geC4mOC4h+C4guC4suC4pwor4Lii4LiB4LiZCivguKLguIHguJnguLTguYnguKcKK+C4ouC4geC4nuC4t+C5ieC4mQor4Lii4LiB4Lif4LmJ4Lit4LiHCivguKLguIHguKDguLnguYDguILguLLguK3guK3guIHguIjguLLguIHguK3guIEKK+C4ouC4geC4oeC4t+C4rQor4Lii4LiB4LmA4Lih4LiGCivguKLguIHguKLguK0KK+C4ouC4geC4ouC5iOC4reC4hwor4Lii4LiB4Lii4Lit4LiUCivguKLguIHguKLguK3guJvguK3guJvguLHguYnguJkKK+C4ouC4geC5gOC4peC4tOC4gQor4Lii4LiB4LmA4Lin4LmJ4LiZCivguKLguIHguYTguKfguYkKK+C4ouC4geC4q+C4suC4h+C4leC4seC4p+C5gOC4reC4hwor4Lii4LiB4LmD4Lir4LiN4LmICivguKLguIcKK+C4ouC4h+C5guC4ouC5iAor4Lii4LiK4Li44Lij4LmA4Lin4LiXCivguKLguJXguLQKK+C4ouC4leC4tOC4oOC4seC4h+C4hOC5jAor4Lii4LiW4Liy4LiB4Lij4Lij4LihCivguKLguJbguLLguKDguLnguJXguI3guLLguJMKK+C4ouC5iOC4mQor4Lii4LiZ4LiV4LmMCivguKLguJnguJXguKPguYwKK+C4ouC5iOC4meC4ouC5iOC4rQor4Lii4LihCivguKLguKEtCivguKLguKHguIEKK+C4ouC4oeC4geC4m+C4suC4j+C4tOC4q+C4suC4o+C4tOC4ouC5jAor4Lii4Lih4LiC4Lix4LiZ4LiY4LmMCivguKLguKHguYLguJTguKIKK+C4ouC4oeC4l+C4seC4k+C4keC5jAor4Lii4Lih4LiX4Li54LiVCivguKLguKHguJnguLIKK+C4ouC4oeC4muC4suC4pQor4Lii4Lih4Lij4Liy4LiKCivguKLguKHguKUKK+C4ouC4oeC5guC4peC4gQor4Lii4Lij4Lij4Lii4LiHCivguKLguKUKK+C4ouC4pwor4Lii4Lin4LiB4Liq4LiyCivguKLguKfguIcKK+C4ouC4p+C4lAor4Lii4Lin4LiU4Lii4LiHCivguKLguKfguJTguKLguLLguJkKK+C4ouC4p+C4lOC4ouC4tOC5iOC4hwor4Lii4Lin4LiZCivguKLguKfguJnguKLguLUKK+C4ouC4p+C4mgor4Lii4Lin4Lia4LmGCivguKLguKfguJrguKLguLLguJoKK+C4ouC5ieC4p+C4ogor4Lii4Lin4Lij4Lii4Liy4LiV4LijCivguKLguKfguLIKK+C4ouC4p+C4suC4hOC4uAor4Lii4LioCivguKLguKjguK3guKLguYjguLLguIcKK+C4ouC5guC4qgor4Lii4LitCivguKLguYjguK0KK+C4ouC4reC4gQor4Lii4Lit4LiB4Lii4LmJ4Lit4LiZCivguKLguYfguK3guIHguYHguKLguYfguIEKK+C4ouC5h+C4reC4geC5geC4ouC5h+C4geC5hgor4Lii4Lit4LiHCivguKLguK3guIfguYYKK+C4ouC5iOC4reC4hwor4Lii4LmJ4Lit4LiHCivguKLguYjguK3guIfguIHguKPguLTguJoKK+C4ouC5iOC4reC4h+C5gOC4muC4sgor4Lii4LmI4Lit4LiH4LmB4Lii4LmI4LiHCivguKLguK3guIfguYPguKIKK+C4ouC4reC4h+C5hOC4ouC5iAor4Lii4LmI4Lit4LiH4LmA4Lir4LiH4LmH4LiUCivguKLguK3guJQKK+C4ouC4reC4lOC4iOC4suC4gQor4Lii4Lit4LiU4LiU4LmJ4Lin4LiZCivguKLguK3guJTguJTguLUKK+C4ouC4reC4lOC4meC5ieC4swor4Lii4Lit4LiU4Liq4Lij4LmJ4Lit4LiiCivguKLguYjguK3guJfguYnguK0KK+C4ouC4reC4mQor4Lii4LmJ4Lit4LiZCivguKLguYnguK3guJnguYDguJnguLfguYnguK0KK+C4ouC5ieC4reC4meC4ouC4reC4gQor4Lii4Lit4LiaCivguKLguK3guJrguYHguKLguJoKK+C4ouC5iOC4reC4nuC4pQor4Lii4Lit4LihCivguKLguYjguK3guKEKK+C4ouC5ieC4reC4oQor4Lii4Lit4Lih4LiE4Lin4Liy4LihCivguKLguYnguK3guKHguYPguIgKK+C4ouC5ieC4reC4oeC5geC4oeC4p+C4guC4suC4ogor4Lii4LmI4Lit4Lih4LmA4Lii4LiyCivguKLguYjguK3guKHguLjguKEKK+C4ouC5iOC4reC4ogor4Lii4LmJ4Lit4LiiCivguKLguYjguK3guKLguYjguJkKK+C4ouC5iOC4reC4ouC4ouC4seC4mgor4Lii4LmI4Lit4LmB4Lii4LmICivguKLguYnguK3guYHguKLguYkKK+C4ouC4reC5geC4quC4hwor4Lii4LmI4Lit4Lir4LiZ4LmJ4LiyCivguKLguYjguK3guKvguKLguYjguK3guJkKK+C4ouC5iOC4reC5geC4q+C4ouC4hwor4Lii4LiwCivguKLguYjguLAKK+C4ouC4sOC4h+C4seC4meC4iOC4sOC4hOC4seC4mgor4Lii4Liw4Lii4Lit4LiaCivguKLguLDguKLguLHguJkKK+C4ouC4sOC4ouC4seC4mgor4Lii4Liw4Lii4Liy4LiZCivguKLguLDguKLguYnguLLguKIKK+C4ouC4sOC4ouC5ieC4suC4pwor4Lii4Liw4LmB4Lii4LmJ4LiHCivguKLguLDguKvguLTguJfguLIKK+C4ouC4seC4gQor4Lii4Lix4LiB4LiB4Lij4Liw4Liq4Liy4LiiCivguKLguLHguIHguILguYwKK+C4ouC4seC4geC4guC4tOC4meC4tQor4Lii4Lix4LiB4LiX4LmI4LiyCivguKLguLHguIHguYDguJ7guKPguLXguKIKK+C4ouC4seC4geC4ouC4reC4gQor4Lii4Lix4LiB4Lii4LmJ4Liy4LiiCivguKLguLHguIHguKLguLTguYnguKEKK+C4ouC4seC4geC4ouC4teC5iOC4ouC4seC4geC4ouC4seC4mQor4Lii4Lix4LiB4Lii4Li14LmI4Lii4Lix4LiB4LmA4Lir4Lii4LiyCivguKLguLHguIHguYDguKLguLfguYnguK3guIcKK+C4ouC4seC4geC5geC4ouC5iOC4ouC4seC4geC4ouC4seC4mQor4Lii4Lix4LiB4Lip4LmMCivguKLguLHguIHguKnguYzguJvguLHguIHguKvguKXguLHguYjguJkKK+C4ouC4seC4geC4qeC5jOC4oeC4seC4geC4geC4sOC4quC4seC4mQor4Lii4Lix4LiB4Lip4Li04LiT4Li1CivguKLguLHguIHguKnguLUKK+C4ouC4seC4geC4q+C4ouC4suC4pwor4Lii4Lix4LiB4Lir4Lil4LmI4LihCivguKLguLHguIcKK+C4ouC4seC5ieC4hwor4Lii4Lix4LiH4LiB4Liy4Lir4Lil4LiyCivguKLguLHguIfguIrguLHguYjguKcKK+C4ouC4seC5iOC4h+C4ouC4t+C4mQor4Lii4Lix4LiH4LmB4Lil4LmJ4LinCivguKLguLHguIfguKvguKLguLHguIcKK+C4ouC4seC4iuC5guC4jeC4m+C4p+C4teC4lQor4Lii4Lix4LiK4LiZCivguKLguLHguIrguKHguLLguJkKK+C4ouC4seC4jQor4Lii4Lix4LiNLQor4Lii4Lix4LiN4LiB4Lij4Lij4LihCivguKLguLHguI3guI3guLAKK+C4ouC4seC4jeC4jeC4seC4h+C4hOC5jAor4Lii4Lix4LiN4Lie4Li04LiY4Li1CivguKLguLHguJDguLQKK+C4ouC4seC4kOC4tOC4oeC4mOC4uOC4geC4sgor4Lii4Lix4LiUCivguKLguLHguJTguYDguKLguLXguKLguJQKK+C4ouC4seC4leC4tOC4oOC4seC4h+C4hOC5jAor4Lii4Lix4LiZCivguKLguLHguYjguJkKK+C4ouC4seC4meC4leC5jAor4Lii4Lix4LiZ4LiV4LijLQor4Lii4Lix4LiZ4LiV4Lij4LmMCivguKLguLHguJnguJXguKPguIHguKPguKPguKEKK+C4ouC4seC5iOC4meC4leC4sOC4meC4tQor4Lii4Lix4LiZ4LmA4Lii4LmJ4LiyCivguKLguLHguJoKK+C4ouC4seC4muC5hgor4Lii4Lix4Lia4Lii4LiHCivguKLguLHguJrguKLguYjguK3guKIKK+C4ouC4seC4muC4ouC4seC5ieC4hwor4Lii4Lix4Lia4Lii4Lix4LmJ4LiH4LiK4Lix4LmI4LiH4LmD4LiICivguKLguLHguJrguKLguLLguJkKK+C4ouC4seC4muC4ouC4suC4mgor4Lii4Lix4Lia4LmA4Lii4Li04LiZCivguKLguLHguYjguKcKK+C4ouC4seC5ieC4pwor4Lii4Lix4LmI4Lin4Lii4Lin4LiZCivguKLguLHguYjguKfguYDguKLguYnguLIKK+C4ouC4seC5ieC4p+C5gOC4ouC4teC5ieC4ogor4Lii4Lix4Lin4Lij4Lii4Liy4LiV4LijCivguKLguLHguKnguI/guLQKK+C4ouC4sgor4Lii4LmI4LiyCivguKLguLLguIEKK+C4ouC4suC4geC5geC4hOC5ieC4mQor4Lii4Liy4LiB4LiI4LiZCivguKLguLLguIHguJnguLLguJkKK+C4ouC4suC4geC5gOC4ouC5h+C4mQor4Lii4Liy4LiB4LmE4Lij4LmJCivguKLguLLguYDguILguLXguKLguKcKK+C4ouC4suC4hAor4Lii4Liy4LiE4Li4CivguKLguLLguITguLkKK+C4ouC4suC4hwor4Lii4LmI4Liy4LiHCivguKLguLLguIfguIHguKPguLLguJQKK+C4ouC5iOC4suC4h+C4leC4teC4mQor4Lii4LmI4Liy4LiH4LiX4Lij4Liy4LiiCivguKLguYjguLLguIfguYDguJfguYnguLIKK+C4ouC4suC4h+C4meC5iOC4reC4hwor4Lii4Liy4LiH4Lia4Lit4LiZCivguKLguLLguIfguJ7guLLguKPguLIKK+C4ouC4suC4h+C4oeC4sOC4leC4reC4ogor4Lii4LmI4Liy4LiH4LmA4Lii4Li34LmJ4Lit4LiHCivguKLguLLguIfguKXguJoKK+C4ouC4suC4h+C4quC4mQor4Lii4LmI4Liy4LiH4Liq4Liy4Lih4LiC4Li44LihCivguKLguLLguIfguK3guLLguKIKK+C4ouC4suC4iOC4gQor4Lii4Liy4LiI4LiZCivguKLguLLguIjguJnguIEKK+C4ouC4suC4iOC4meC4sgor4Lii4Liy4LiI4Li34LiUCivguKLguLLguYPguIgKK+C4ouC4suC4ieC4uOC4mQor4Lii4Liy4LmE4LiJ4LiZCivguKLguLLguIrguIEKK+C4ouC4suC4lAor4Lii4Liy4LiU4LiyCivguKLguLLguJTguLMKK+C4ouC4suC5geC4lOC4hwor4Lii4Liy4LiV4LiZ4LiyCivguKLguLLguJXguKMKK+C4ouC4suC4leC4o+C4sgor4Lii4Liy4LiV4Lix4LmJ4LiHCivguKLguYjguLLguJfguKfguJQKK+C4ouC4suC4mOC4suC4leC4uAor4Lii4Liy4LiZCivguKLguYjguLLguJkKK+C4ouC4suC4meC4gQor4Lii4LmI4Liy4LiZ4LiB4Lit4Lia4LiZ4Liy4LiHCivguKLguLLguJnguITguLLguIcKK+C4ouC5iOC4suC4meC4i+C4t+C5iOC4rQor4Lii4LmI4Liy4LiZ4LiX4Lij4Liy4LiiCivguKLguYjguLLguJnguJnguKHguITguKfguLLguKIKK+C4ouC5iOC4suC4meC4nuC4suC5guC4q+C4oQor4Lii4Liy4LiZ4Lih4Liy4LioCivguKLguYjguLLguJnguKLguLLguKcKK+C4ouC5iOC4suC4meC4peC4tOC5gOC4oOC4sgor4Lii4Liy4LiZ4Lix4LiV4LiW4Li44LmMCivguKLguYjguLLguJnguLLguIcKK+C4ouC5iOC4suC4meC4suC4h+C4iuC5ieC4suC4hwor4Lii4Liy4LiZ4Li1CivguKLguLLguJnguLjguKHguLLguKgKK+C4ouC4suC4mgor4Lii4Liy4Lia4LmGCivguKLguLLguJvguJktCivguKLguLLguJvguJnguKHguLHguJUKK+C4ouC4suC4neC4reC4ogor4Lii4Liy4LmB4Lid4LiUCivguKLguLLguKEKK+C4ouC4suC4oS0KK+C4ouC5iOC4suC4oQor4Lii4Liy4Lih4LiB4Liy4Lil4Li04LiBCivguKLguLLguKHguYDguIHguLIKK+C4ouC4suC4oeC4leC4ueC4lOC4iuC4suC4ogor4Lii4Liy4Lih4Lie4Liy4LiUCivguKLguLLguKHguYLguKLguIQKK+C4ouC4suC4oeC4quC4suC4oeC4leC4sgor4Lii4Liy4Lih4Lix4LiB4LiB4Liy4LijCivguKLguLLguKHguLTguIEKK+C4ouC4suC4ogor4Lii4LmJ4Liy4LiiCivguKLguLLguKLguJfguKfguJQKK+C4ouC4suC4ouC4tQor4Lii4Liy4LmA4Lii4Li14LiiCivguKLguLLguKcKK+C4ouC5ieC4suC4pwor4Lii4Liy4Lin4LiB4Liy4Lil4Li04LiBCivguKLguLLguKfguIrguLXguKfguLTguIEKK+C4ouC4suC4p+C4muC4seC5iOC4mSDguKrguLHguYnguJnguJXguYjguK0KK+C4ouC4suC4p+C4o+C4tQor4Lii4Liy4Lin4Lix4LiqCivguKLguLLguKrguKXguJoKK+C4ouC4suC4quC4seC5iOC4hwor4Lii4Liy4Liq4Li54LiaCivguKLguLLguYDguKrguYnguJkKK+C4ouC4suC5gOC4quC4nuC4ouC5jOC4leC4tOC4lAor4Lii4Liy4LmA4Liq4Lie4Lii4LmM4LiV4Li04LiU4LmD4Lir4LmJ4LmC4LiX4LipCivguKLguLLguYTguKrguYkKK+C4ouC4suC4q+C4oeC5ieC4reC5g+C4q+C4jeC5iAor4Lii4Liy4Lir4Lih4Li54LmICivguKLguLLguKvguKLguLHguIcKK+C4ouC5iOC4suC4q+C4ouC4sgor4Lii4Liy4Lir4Lii4Li1CivguKLguLLguKvguLHguJQKK+C4ouC4suC4reC4seC4lAor4Lii4LizCivguKLguYjguLMKK+C4ouC5ieC4swor4Lii4Liz4LmA4LiB4Lij4LiHCivguKLguYjguLPguYDguJfguLfguK3guIEKK+C4ouC4s+C4ouC4suC4oQor4Lii4LmI4Liz4Lii4Li1CivguKLguLPguYDguKLguIcKK+C4ouC4s+C5gOC4ouC4teC4ogor4Lii4LmI4Liz4LmB4Lii4LmICivguKLguYnguLPguYDguKvguKLguK0KK+C4ouC4tOC4gQor4Lii4Li04LiB4LmGCivguKLguLTguIcKK+C4ouC4tOC5iOC4hwor4Lii4Li04LiH4Lib4Li34LiZ4LiZ4Lix4LiU4LmA4LiU4Li14Lii4LinIOC5hOC4lOC5ieC4meC4geC4quC4reC4h+C4leC4seC4pwor4Lii4Li04LiH4Lif4Lix4LiZCivguKLguLTguYjguIfguKLguKfguJQKK+C4ouC4tOC4j+C4kOC4sAor4Lii4Li04LiQCivguKLguLTguJkKK+C4ouC4tOC4meC5geC4hOC4peC4mQor4Lii4Li04LiZ4LmD4LiICivguKLguLTguJnguJTguLUKK+C4ouC4tOC4meC4oeC4peC4suC4gQor4Lii4Li04LiZ4Lii4Lit4LihCivguKLguLTguJnguKPguYnguLLguKIKK+C4ouC4tOC4meC4peC4suC4geC4guC4suC4geC4lOC4tQor4Lii4Li04LiaCivguKLguLTguJrguYYKK+C4ouC4tOC4m+C4i+C4seC4oQor4Lii4Li04Lib4LiL4Li1CivguKLguLTguYnguKEKK+C4ouC4tOC5ieC4oeC4geC4o+C4tOC5iOC4oQor4Lii4Li04LmJ4Lih4LmB4LiJ4LmI4LiHCivguKLguLTguYnguKHguJTguYnguKfguKLguJvguLLguIEg4LiW4Liy4LiB4LiU4LmJ4Lin4Lii4LiV4LiyCivguKLguLTguKHguJnguLLguKrguJXguLTguIEKK+C4ouC4tOC5ieC4oeC5geC4m+C5ieC4mQor4Lii4Li04LmJ4Lih4Lii4LmI4Lit4LiHCivguKLguLTguYnguKHguYDguKLguLLguLAKK+C4ouC4tOC5ieC4oeC5geC4ouC5ieC4oQor4Lii4Li04LmJ4Lih4Lil4Liw4LmE4LihCivguKLguLTguYnguKHguKvguLHguKcKK+C4ouC4tOC5ieC4oeC5gOC4q+C4ogor4Lii4Li04LmJ4Lih4LmB4Lir4LmJ4LiHCivguKLguLTguYnguKHguYHguKvguKIKK+C4ouC4tOC4q+C4p+C4sgor4Lii4Li1CivguKLguLXguYgKK+C4ouC4teC5iQor4Lii4Li14LmI4LiB4LmI4LiyCivguKLguLXguYjguYDguIEKK+C4ouC4teC5iOC5gOC4guC5iOC4hwor4Lii4Li14LmI4LmC4LiWCivguKLguLXguYjguYLguJbguJ3guKPguLHguYjguIcKK+C4ouC4teC4mQor4Lii4Li14LmI4LmC4Lib4LmJCivguKLguLXguYjguKDguLnguYgKK+C4ouC4teC4ouC4p+C4mQor4Lii4Li14Lij4Liy4LifCivguKLguLXguYjguKrguIEKK+C4ouC4teC5iOC4quC4hwor4Lii4Li14LmI4Liq4LiZCivguKLguLXguYjguKrguLLguJkKK+C4ouC4teC5iOC4quC5iOC4suC4mQor4Lii4Li14LmI4Liq4Li04LiaCivguKLguLXguYjguKrguLjguYjguJkKK+C4ouC4teC5iOC4q+C4o+C4sAor4Lii4Li14LmI4Lir4Lij4LmI4LiyCivguKLguLXguYjguKvguKPguYjguLLguKvguKfguLLguJkKK+C4ouC4teC5iOC4q+C5ieC4rQor4Lii4Li14LmI4Lir4Li44LiaCivguKLguLbguIHguKLguLfguK0KK+C4ouC4tuC4lAor4Lii4Li24LiU4LiE4Lij4Lit4LiHCivguKLguLbguJTguJbguLfguK0KK+C4ouC4tuC4lOC4l+C4o+C4seC4nuC4ouC5jAor4Lii4Li24LiU4LmA4Lir4LiZ4Li14LmI4Lii4LinCivguKLguLfguJQKK+C4ouC4t+C4lOC4ouC4suC4lAor4Lii4Li34LiU4LmA4Lii4Li34LmJ4LitCivguKLguLfguJTguKvguKLguLjguYjguJkKK+C4ouC4t+C4mQor4Lii4Li34LmI4LiZCivguKLguLfguJnguIHguKPguLDguJXguYjguLLguKLguKrguLLguKHguILguLIKK+C4ouC4t+C4meC4geC4o+C4suC4mQor4Lii4Li34LmI4LiZ4LmB4LiB4LmJ4Lin4LmD4Lir4LmJ4Lin4Liy4LiZ4LijCivguKLguLfguJnguITguYnguLPguKvguLHguKcKK+C4ouC4t+C4meC5gOC4hOC4o+C4t+C5iOC4reC4hwor4Lii4Li34LmI4LiZ4LiI4Lih4Li54LiBCivguKLguLfguJnguIrguLTguIfguIrguYnguLIKK+C4ouC4t+C4meC4leC5ieC4mQor4Lii4Li34LiZ4Lie4Li34LmJ4LiZCivguKLguLfguYjguJnguKHguLfguK0KK+C4ouC4t+C4meC4ouC4hwor4Lii4Li34LiZ4Lii4Lix4LiZCivguKLguLfguJnguKLguLLguKEKK+C4ouC4t+C4meC5guC4o+C4hwor4Lii4Li34LmI4LiZ4Lir4Lih4Li54Lii4Li34LmI4LiZ4LmB4Lih4LinCivguKLguLfguJnguKvguKLguLHguJQKK+C4ouC4t+C4oQor4Lii4Li34Lih4LiI4Lih4Li54LiB4LiE4LiZ4Lit4Li34LmI4LiZ4Lir4Liy4Lii4LmD4LiICivguKLguLfguKHguYPguIrguYnguITguIfguKPguLnguJsKK+C4ouC4t+C4oeC5g+C4iuC5ieC4quC4tOC5ieC4meC5gOC4m+C4peC4t+C4reC4hwor4Lii4Li34LmJ4LitCivguKLguLfguYnguK3guKLguLjguJQKK+C4ouC4uAor4Lii4Li44LiB4LiB4Lij4Liw4Lia4Lix4LiV4LijCivguKLguLjguIHguJTguLQKK+C4ouC4uOC4geC4leC5jAor4Lii4Li44LiB4LiV4Li0CivguKLguLjguIHguJXguLTguJjguKPguKPguKEKK+C4ouC4uOC4hAor4Lii4Li44LiE4LmA4LiC4LmH4LiNCivguKLguLjguITguJnguJjguKMKK+C4ouC4uOC4hOC4pQor4Lii4Li44LiE4Lil4Lia4Liy4LiXCivguKLguLjguITguLHguJnguJUtCivguKLguLjguITguLHguJnguJXguYwKK+C4ouC4uOC4hOC4seC4meC4leC4p+C4suC4lQor4Lii4Li44LiE4Lix4LiZ4LiY4LijCivguKLguLjguITguLjguJnguJjguKMKK+C4ouC4uOC4hwor4Lii4Li44LmI4LiHCivguKLguLjguYnguIcKK+C4ouC4uOC4h+C4geC4p+C4suC4lAor4Lii4Li44LmI4LiH4LiC4Li04LiHCivguKLguLjguYjguIfguYPguIgKK+C4ouC4uOC4h+C4m+C4seC4lAor4Lii4Li44LiH4Lib4Lix4LiU4LmB4Lih4LmI4Lih4LmI4Liy4LiiCivguKLguLjguYjguIfguKLguLLguIEKK+C4ouC4uOC5iOC4h+C4ouC4tOC5iOC4hwor4Lii4Li44LmI4LiH4LmA4Lir4Lih4Li34Lit4LiZ4Lii4Li44LiH4LiV4Li14LiB4Lix4LiZCivguKLguLjguYjguIfguYDguKvguKLguLTguIcKK+C4ouC4uOC4lAor4Lii4Li44LiVCivguKLguLjguJXguLQtCivguKLguLjguJXguLTguJjguKPguKPguKEKK+C4ouC4uOC4l+C4mC0KK+C4ouC4uOC4l+C4mOC5jAor4Lii4Li44LiX4LiY4LiB4Liy4LijCivguKLguLjguJfguJjguJnguLIKK+C4ouC4uOC4l+C4mOC4meC4suC4geC4suC4owor4Lii4Li44LiX4LiY4LiZ4Liy4LiY4Li04LiB4Liy4LijCivguKLguLjguJfguJjguKDguLHguJPguJHguYwKK+C4ouC4uOC4l+C4mOC4oOC4ueC4oeC4tAor4Lii4Li44LiX4LiY4LmC4Lii4LiY4LiyCivguKLguLjguJfguJjguKfguLTguJjguLUKK+C4ouC4uOC4l+C4mOC4p+C4tOC4meC4seC4ogor4Lii4Li44LiX4LiY4Lio4Liy4Liq4LiV4Lij4LmMCivguKLguLjguJfguJjguKvguLHguJXguJbguLUKK+C4ouC4uOC4l+C5guC4mOC4m+C4geC4o+C4k+C5jAor4Lii4Li44LiaCivguKLguLjguJrguKLguK3guJoKK+C4ouC4uOC4muC4ouC4seC4mgor4Lii4Li44Lia4Lii4Li04LiaCivguKLguLjguJrguKUKK+C4ouC4uOC4ni0KK+C4ouC4uOC4nuC4lOC4tQor4Lii4Li44Lie4Lii4LiHCivguKLguLjguJ7guYDguKLguLLguKfguYwKK+C4ouC4uOC4nuC4o+C4suC4igor4Lii4Li44Lie4Lij4Liy4LiK4LiyCivguKLguLjguJ7guYDguKPguKgKK+C4ouC4uOC4nuC4sgor4Lii4Li44Lie4Liy4LiZCivguKLguLjguJ7guLLguJ7guLLguKUKK+C4ouC4uOC4nuC4suC4nuC4tOC4mQor4Lii4Li44LmI4Lih4Lii4LmI4Liy4LihCivguKLguLjguYjguKIKK+C4ouC4uOC5ieC4ogor4Lii4Li44Lii4LiHCivguKLguLjguYHguKLguIcKK+C4ouC4uOC5geC4ouC4h+C4leC4sOC5geC4hOC4h+C5geC4i+C4sAor4Lii4Li44LmB4Lii4LiH4LiV4Liw4LmB4LiE4LiH4Lij4Lix4LmI4LinCivguKLguLjguKPguJrguLLguJXguKMKK+C4ouC4uOC4o+C4ouC4suC4leC4owor4Lii4Li44LinLQor4Lii4Li44Lin4LiK4LiZCivguKLguLjguKfguJTguLUKK+C4ouC4uOC4p+C4o+C4suC4igor4Lii4Li44Lin4Lij4Liy4LiK4LiyCivguKLguLjguKfguLIKK+C4ouC4uOC4p+C4suC4mQor4Lii4Li44Lir4Lia4Liy4LiV4LijCivguKLguLjguYHguKvguKLguYgKK+C4ouC4uOC5g+C4q+C5ieC4o+C4s+C4leC4s+C5g+C4q+C5ieC4o+C4seC5iOC4pwor4Lii4Li5CivguKLguLnguYgKK+C4ouC4ueC4hwor4Lii4Li54LmC4LiUCivguKLguLnguJbguLAKK+C4ouC4ueC4luC4tOC4geC4sgor4Lii4Li54Lib4LiwCivguKLguLnguYjguKLguLXguYgKK+C4ouC4ueC4o+C4ouC4suC4leC4owor4Lii4Li54Lij4Li04LiBCivguKLguLnguYDguKPguJnguLHguKoKK+C4ouC4ueC5gOC4o+C5gOC4meC4teC4ouC4oQor4Lii4Li54LmC4Lij4LmA4Lie4Li14Lii4LihCivguKLguLnguKnguLAKK+C5gOC4ouC5hgor4LmA4Lii4LmJCivguYDguKLguIcKK+C5gOC4ouC4i+C4uQor4LmA4Lii4LmH4LiUCivguYDguKLguYfguJkKK+C5gOC4ouC5h+C4meC5g+C4iAor4LmA4Lii4LmH4LiZ4LiK4Li34LiUCivguYDguKLguYfguJnguJXguLIKK+C5gOC4ouC5h+C4meC4leC4suC5guC4nwor4LmA4Lii4LmH4LiZ4LmA4LiV4Liy4LmC4LifCivguYDguKLguYfguJnguYDguKLguLXguKLguJoKK+C5gOC4ouC5h+C4meC5gOC4ouC4t+C4reC4gQor4LmA4Lii4LmH4LiZ4Lir4Li5CivguYDguKLguYfguJoKK+C5gOC4ouC5h+C4muC4geC4teC5iAor4LmA4Lii4LmH4Lia4LiU4LmJ4Liy4LiiCivguYDguKLguYfguJrguKXguKfguJQKK+C5gOC4ouC5h+C4muC5gOC4peC5iOC4oQor4LmA4Lii4LmH4Lia4Lit4LiBCivguYDguKLguKDguLjguKItCivguYDguKLguKDguLjguKLguJnguLHguKIKK+C5gOC4ouC4oOC4uOC4ouC4ouC4sAor4LmA4Lii4Lig4Li44Lii4Liq4Li04LiB4LiyCivguYDguKLguYnguKIKK+C5gOC4ouC4rQor4LmA4Lii4LmI4LitCivguYDguKLguK3guKPguKHguLHguJkKK+C5gOC4ouC4reC4pwor4LmA4Lii4LmI4Lit4Lir4Lii4Li04LmI4LiHCivguYDguKLguK3guLAKK+C5gOC4ouC4reC4sOC5geC4ouC4sAor4LmA4Lii4LiyCivguYDguKLguYnguLIKK+C5gOC4ouC4suC4py0KK+C5gOC4ouC4suC4p+C5jAor4LmA4Lii4Liy4Lin4LiK4LiZCivguYDguKLguLLguKfguJktCivguYDguKLguLLguKfguJnguLAKK+C5gOC4ouC4suC4p+C4nuC4sgor4LmA4Lii4Liy4Lin4Lie4Liy4LiT4Li1CivguYDguKLguLLguKfguJ7guLLguJkKK+C5gOC4ouC4suC4p+C4oeC4suC4peC4ouC5jAor4LmA4Lii4Liy4Lin4Lii4Lit4LiUCivguYDguKLguLLguKfguKPguLLguIoKK+C5gOC4ouC4suC4p+C5gOC4o+C4qAor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMCivguYDguKLguLLguLAKK+C5gOC4ouC4tOC4hwor4LmA4Lii4Li04LiZCivguYDguKLguLTguYjguJkKK+C5gOC4ouC4tOC4meC4ouC4rQor4LmA4Lii4Li04LmI4LiZ4LmA4Lii4LmJ4LitCivguYDguKLguLTguJrguYYKK+C5gOC4ouC4tOC4muC4ouC4suC4mgor4LmA4Lii4Li04LmJ4LihCivguYDguKLguLXguKIKK+C5gOC4ouC4teC5iOC4ouC4hwor4LmA4Lii4Li14Lii4LiH4Lic4LiyCivguYDguKLguLXguYjguKLguIfguK3guKLguYjguLLguIcKK+C5gOC4ouC4teC4ouC4lOC4ouC4seC4lAor4LmA4Lii4Li14Lii4LmD4LiUCivguYDguKLguLXguKLguJkKK+C5gOC4ouC4teC4ouC4mgor4LmA4Lii4Li14LmI4Lii4LihCivguYDguKLguLXguYjguKLguKHguYYg4Lih4Lit4LiH4LmGCivguYDguKLguLXguYjguKLguKHguKLguK3guJQKK+C5gOC4ouC4teC5iOC4ouC4oeC5gOC4ouC4teC4ouC4mQor4LmA4Lii4Li14LmI4Lii4Lih4LmA4Lii4Li34Lit4LiZCivguYDguKLguLXguYjguKLguKHguKfguLTguKHguLLguJkKK+C5gOC4ouC4teC4ouC4oeC4seC5iOC4hwor4LmA4Lii4Li14Lii4Lij4Lia4Lix4LiaCivguYDguKLguLXguKLguKPguKLguIcKK+C5gOC4ouC4teC4ouC4pwor4LmA4Lii4Li14LmI4Lii4LinCivguYDguKLguLXguYjguKLguKfguIfguLHguKcKK+C5gOC4ouC4teC4ouC4p+C4ouC4hwor4LmA4Lii4Li14Lii4Lin4Lii4LiyCivguYDguKLguLXguYjguKLguKfguK3guLnguJAKK+C5gOC4ouC4teC4ouC5g+C4q+C4jeC5iAor4LmA4Lii4Li34LitCivguYDguKLguLfguYjguK0KK+C5gOC4ouC4t+C5ieC4rQor4LmA4Lii4Li34Lit4LiBCivguYDguKLguLfguK3guIHguYDguKLguYfguJkKK+C5gOC4ouC4t+C5iOC4reC5gOC4hOC4ogor4LmA4Lii4Li34Lit4LiHCivguYDguKLguLfguYjguK3guIcKK+C5gOC4ouC4t+C5ieC4reC4hwor4LmA4Lii4Li34LmJ4Lit4LiH4LiB4Lij4Liy4LiiCivguYDguKLguLfguYnguK3guIfguKLguLHguIEKK+C5gOC4ouC4t+C4reC4mQor4LmA4Lii4Li34LmJ4Lit4LiZCivguYDguKLguLfguYjguK3guYPguKIKK+C5geC4ouC5iAor4LmB4Lii4LmJCivguYHguKLguIEKK+C5geC4ouC4geC5gOC4guC4teC5ieC4ouC4pwor4LmB4Lii4LiB4Lii4LmJ4Liy4LiiCivguYHguKLguIHguYHguKLguYnguIcKK+C5geC4ouC4geC5geC4ouC4sAor4LmB4Lii4LiHCivguYHguKLguYjguIcKK+C5geC4ouC5ieC4hwor4LmB4Lii4LiH4Lii4LilCivguYHguKLguIfguYHguKLguYgKK+C5geC4ouC4h+C5geC4ouC5iQor4LmB4Lii4LmI4LmB4LiV4LmJCivguYHguKLguJoKK+C5geC4ouC5h+C4mgor4LmB4Lii4Lia4LiE4Liy4LiiCivguYHguKLguJrguKLguKUKK+C5geC4ouC4oQor4LmB4Lii4LmJ4LihCivguYHguKLguYnguKHguJ7guKPguLLguKIKK+C5geC4ouC5geC4qgor4LmB4Lii4LiwCivguYLguKIKK+C5guC4ouC5iQor4LmC4Lii4LiBCivguYLguKLguIHguJXguKPguYwKK+C5guC4ouC4geC4ouC5ieC4suC4ogor4LmC4Lii4LiB4LmA4Lii4LiBCivguYLguKLguIHguYLguKLguYkKK+C5guC4ouC4hC0KK+C5guC4ouC4hOC5gOC4geC4k+C4keC5jAor4LmC4Lii4LiE4LiI4Lix4LiB4Lip4Li4CivguYLguKLguITguJnguLTguJfguKPguLIKK+C5guC4ouC4hOC4ouC4sAor4LmC4Lii4LiE4LiwCivguYLguKLguITguLLguJ7guIjguKMKK+C5guC4ouC4hOC4suC4p+C4iOC4owor4LmC4Lii4LiE4Li04LiZCivguYLguKLguITguLUKK+C5guC4ouC4hwor4LmC4Lii4LmI4LiHCivguYLguKLguYjguIfguYYKK+C5guC4ouC5iOC4h+C5gOC4ouC5iOC4hwor4LmC4Lii4LiH4LmC4Lii4LmICivguYLguKLguIrguIEKK+C5guC4ouC4iuC4meC5jAor4LmC4Lii4LiK4LiZ4LiyCivguYLguKLguJQKK+C5guC4ouC4lQor4LmC4Lii4LiW4Li04LiB4LiwCivguYLguKLguJfguLDguIHguLIKK+C5guC4ouC4mC0KK+C5guC4ouC4mOC4p+C4suC4l+C4tOC4lQor4LmC4Lii4LiY4LiyCivguYLguKLguJjguLTguJkKK+C5guC4ouC4mQor4LmC4Lii4LiZ4LiBCivguYLguKLguJnguIHguKXguK3guIcKK+C5guC4ouC4meC4geC4peC4reC4mQor4LmC4Lii4LiZ4Lii4Liy4LinCivguYLguKLguJnguKvguKXguLjguKEKK+C5guC4ouC4meC4q+C5iOC4p+C4hwor4LmC4Lii4LiZ4Lir4Lix4Lin4LmC4Lii4LiZ4LiB4LmJ4Lit4LiiCivguYLguKLguJnguLTguYLguKoKK+C5guC4ouC4meC4tOC5guC4quC4oeC4meC4quC4tOC4geC4suC4owor4LmC4Lii4LiZ4Li1CivguYLguKLguJ7guJnguKHguLHguJcKK+C5guC4ouC4nuC4meC4sAor4LmC4Lii4LihCivguYLguKLguYDguKIKK+C5guC4ouC5ieC5gOC4ouC5iQor4LmC4Lii4LmC4LiqCivguYPguKIKK+C5g+C4ouC4n+C5ieC4sgor4LmD4Lii4Lii4Lit4LiHCivguYPguKLguKvguLTguJkKK+C5hOC4ogor4LmE4Lii4LmICivguYTguKLguJTguLUKK+C5hOC4ouC5hOC4ngor4LmE4Lii4LmE4LiiCivguYTguKLguYjguYTguKLguYgKK+C4owor4Lij4LiBCivguKPguIHguIrguLHguI8KK+C4o+C4geC4iuC5ieC4suC4hwor4Lij4LiB4Lia4Li04LiZCivguKPguIHguJ/guYnguLIKK+C4o+C4geC4o+C4suC4gQor4Lij4LiB4Lij4LmJ4Liy4LiHCivguKPguIHguYDguKPguLXguYnguKLguKcKK+C4o+C4hwor4Lij4LiH4LiB4Li44LmMCivguKPguIfguIQtCivguKPguIfguITguYwKK+C4o+C4h+C4hOC4p+C4seC4leC4luC4uAor4Lij4LiH4Lij4Lit4LiHCivguKPguIjguJnguLIKK+C4o+C4iOC5gOC4o+C4ggor4Lij4LiI4LmA4Lil4LiCCivguKPguIjguLTguJUKK+C4o+C4iuC4geC4sAor4Lij4LiK4LiV4LiwCivguKPguIrguJnguLQKK+C4o+C4iuC4meC4tQor4Lij4LiK4LiZ4Li14LiB4LijCivguKPguIrguJnguLXguIjguKMKK+C4o+C4iuC4sAor4Lij4LiTCivguKPguJMtCivguKPguJPguYDguIHguKnguJXguKMKK+C4o+C4k+C4oOC4uQor4Lij4LiT4Lig4Li54Lih4Li0CivguKPguJPguKPguIfguITguYwKK+C4o+C4k+C4quC4luC4suC4mQor4Lij4LiUCivguKPguJTguJnguYnguLMKK+C4o+C4lOC4tQor4Lij4LiV4LiZ4LiwCivguKPguJXguLAKK+C4o+C4leC4tAor4Lij4LiWCivguKPguJYtCivguKPguJbguIjguLHguIHguKPguKLguLLguJkKK+C4o+C4luC4iOC4seC4geC4o+C4ouC4suC4meC4ouC4meC4leC5jAor4Lij4LiW4LiJ4Li44LiB4LmA4LiJ4Li04LiZCivguKPguJbguYLguJTguKLguKrguLLguKPguJvguKPguLDguIjguLPguJfguLLguIcKK+C4o+C4luC4m+C4uOC4h+C4hOC4ngor4Lij4LiW4Lib4Li44LiH4LiE4Lin4LiwCivguKPguJbguYTguJ8KK+C4o+C4luC5hOC4n+C4n+C5ieC4sgor4Lij4LiW4Lii4LiZ4LiV4LmMCivguKPguJbguKLguLIKK+C4o+C4luC4suC4meC4tuC4gQor4Lij4LmA4LiW4Liq4Lig4LiwCivguKPguJcKK+C4o+C4l+C4meC4sAor4Lij4LiZCivguKPguYjguJkKK+C4o+C5ieC4mQor4Lij4LiZ4LiUCivguKPguJnguKvguLLguJfguLXguYgKK+C4o+C4mgor4Lij4Lia4LiB4Lin4LiZCivguKPguJrguKPguLIKK+C4o+C4muC5gOC4o+C5ieC4sgor4Lij4Lia4LiqCivguKPguJrguLLguI0KK+C4o+C4ngor4Lij4Lie4LiyCivguKPguJ7guLQKK+C4o+C4nuC4tQor4Lij4LihCivguKPguYjguKEKK+C4o+C5iOC4oeC5gOC4geC4peC5ieC4sgor4Lij4LmI4Lih4LmA4LiB4LioCivguKPguYjguKHguIrguLnguIrguLXguJ4KK+C4o+C4oeC4k+C4tQor4Lij4Lih4LiT4Li14LiiLQor4Lij4Lih4LiT4Li14Lii4LmMCivguKPguYjguKHguJjguIcKK+C4o+C5iOC4oeC4nOC5ieC4sgor4Lij4LmI4Lih4LmC4Lie4LiY4Li04LmM4Lij4LmI4Lih4LmE4LiX4LijCivguKPguYjguKHguYTguKHguYnguIrguLLguKLguITguLIKK+C4o+C4oeC4ouC5jAor4Lij4LmI4Lih4LmA4Lii4LmH4LiZCivguKPguKHguYDguKLguKgKK+C4o+C4ouC4sAor4Lij4Lii4Liy4LiH4LiE4LmMCivguKPguKfguIEKK+C4o+C4p+C4hwor4Lij4LmI4Lin4LiHCivguKPguKfguIfguJzguLbguYnguIcKK+C4o+C5iOC4p+C4h+C4o+C4uOC5ieC4hwor4Lij4LmI4Lin4LiH4LmC4Lij4LiiCivguKPguKfguJQKK+C4o+C4p+C4lOC5gOC4lOC4teC4ouC4pwor4Lij4Lin4LiU4LmA4Lij4LmH4LinCivguKPguKfguJkKK+C4o+C5iOC4p+C4mQor4Lij4Lin4LiZ4LmA4LijCivguKPguKfguJoKK+C4o+C4p+C4muC4o+C4p+C4oQor4Lij4Lin4Lia4Lij4Lix4LiUCivguKPguKfguJrguKvguLHguKfguKPguKfguJrguKvguLLguIcKK+C4o+C4p+C4oQor4Lij4LmI4Lin4LihCivguKPguYjguKfguKHguYPguIgKK+C4o+C5iOC4p+C4oeC4l+C5ieC4reC4hwor4Lij4LmI4Lin4Lih4Lib4Lij4Liw4LmA4Lin4LiT4Li1CivguKPguYjguKfguKHguYDguJ7guKgKK+C4o+C5iOC4p+C4oeC4oeC4t+C4rQor4Lij4LmI4Lin4Lih4Lij4Lix4LiBCivguKPguYjguKfguKHguYDguKPguLXguKLguIfguYDguITguLXguKLguIfguKvguKHguK3guJkKK+C4o+C5iOC4p+C4oeC4q+C4reC4peC4h+C5guC4o+C4hwor4Lij4Lin4Lih4Lir4Lix4LinCivguKPguYjguKfguKHguKvguLHguKfguIfguLLguJkKK+C4o+C5iOC4p+C4oeC4reC4uOC4l+C4owor4Lij4Lin4LiiCivguKPguKfguKLguYYKK+C4o+C4p+C4ouC4o+C4tOC4mQor4Lij4Lin4Lii4Lij4Li34LmI4LiZCivguKPguKfguLAKK+C4o+C4p+C4tAor4Lij4Lin4Li04Lin4Liy4LijCivguKPguKfguLUKK+C4o+C4qOC4meC4sgor4Lij4LiqCivguKPguKrguIEKK+C4o+C4quC4iuC4suC4leC4tAor4Lij4Liq4LiZ4LiyCivguKPguKrguJnguLTguKLguKEKK+C4o+C4quC4quC4uOC4hOC4meC4mOC5jAor4Lij4Liq4Liy4Lii4LiZ4LmA4Lin4LiXCivguKPguKrguLTguIEKK+C4o+C4q+C4seC4lwor4Lij4Lir4Lix4LiqCivguKPguKvguLTguJUKK+C4o+C5guC4qwor4Lij4LmC4Lir4LiE4LiVCivguKPguYLguKvguJDguLLguJkKK+C4o+C4rQor4Lij4LmI4LitCivguKPguK3guIEKK+C4o+C4reC4hwor4Lij4LmI4Lit4LiHCivguKPguYnguK3guIcKK+C4o+C5ieC4reC4h+C4guC4rQor4Lij4Lit4LiH4LiE4LitCivguKPguK3guIfguYDguIfguYfguIcKK+C4o+C4reC4h+C4iOC5iOC4suC4ogor4Lij4Lit4LiH4LiK4LmJ4LizCivguKPguYnguK3guIfguI7guLXguIHguLIKK+C4o+C4reC4h+C4l+C4o+C4hwor4Lij4Lit4LiH4LiX4LmJ4Lit4LiHCivguKPguYnguK3guIfguJfguLjguIHguILguYwKK+C4o+C4reC4h+C4l+C4uOC4mQor4Lij4Lit4LiH4LmA4LiX4LmJ4LiyCivguKPguYjguK3guIfguJnguYnguLMKK+C4o+C4reC4h+C4muC5iOC4reC4mQor4Lij4Lit4LiH4Lie4Li34LmJ4LiZCivguKPguYnguK3guIfguYDguJ7guKXguIcKK+C4o+C5iOC4reC4h+C4oeC4lAor4Lij4LmJ4Lit4LiH4LmC4Lii4LiZ4Lii4Liy4LinCivguKPguYjguK3guIfguKPguK3guKIKK+C4o+C4reC4h+C4o+C4seC4hwor4Lij4LmJ4Lit4LiH4LmA4Lij4Li14Lii4LiB4Lij4LmJ4Lit4LiH4Lir4LiyCivguKPguYnguK3guIfguYDguKPguLXguKLguJkKK+C4o+C5ieC4reC4h+C5gOC4o+C4t+C4rQor4Lij4LmJ4Lit4LiH4LmB4Lij4LiBCivguKPguYjguK3guIfguYHguKPguYjguIcKK+C4o+C5ieC4reC4h+C4quC5iOC4hwor4Lij4LmJ4Lit4LiH4Lir4LmI4LihCivguKPguYnguK3guIfguKvguYjguKHguKPguYnguK3guIfguYTguKvguYkKK+C4o+C5ieC4reC4h+C5hOC4q+C5iQor4Lij4Lit4LiUCivguKPguK3guJTguIrguLXguKfguLTguJUKK+C4o+C4reC4lOC4leC4seC4pwor4Lij4Lit4LiU4Lir4Li54Lij4Lit4LiU4LiV4LiyCivguKPguK3guJkKK+C4o+C4reC4meC5hgor4Lij4LmI4Lit4LiZCivguKPguYnguK3guJkKK+C4o+C5ieC4reC4meC4leC4seC4pwor4Lij4LmI4Lit4LiZ4LiX4Lit4LiHCivguKPguYnguK3guJnguJzguYnguLLguYDguKvguKXguLfguK3guIcKK+C4o+C5ieC4reC4meC4o+C4mQor4Lij4LmI4Lit4LiZ4Lij4LmI4Lit4LiZCivguKPguYjguK3guJnguKPguLHguJrguKPguYjguK3guJnguYDguKPguYgKK+C4o+C5iOC4reC4meC5gOC4o+C5iAor4Lij4Lit4LiZ4LmB4Lij4LihCivguKPguYnguK3guJnguKfguLTguIrguLIKK+C4o+C4reC4meC4quC4tOC4l+C4mOC4tOC5jAor4Lij4LmJ4Lit4LiZ4Lit4Liy4Liq4LiZ4LmMCivguKPguK3guJoKK+C4o+C4reC4muC4hOC4reC4mgor4Lij4Lit4Lia4Lij4Li54LmJCivguKPguK3guKEKK+C4o+C4reC4oeC4iuC4reC4oQor4Lij4Lit4Lih4Lij4LmI4LitCivguKPguK3guKIKK+C4o+C5iOC4reC4ogor4Lij4LmJ4Lit4LiiCivguKPguYnguK3guKLguIHguKPguK3guIcKK+C4o+C5ieC4reC4ouC5geC4geC5ieC4pwor4Lij4LmJ4Lit4Lii4LiK4Lix4LmI4LiHCivguKPguYnguK3guKLguJfguLHguYnguIfguKPguYnguK3guKIKK+C4o+C5ieC4reC4ouC5geC4m+C4lAor4Lij4Lit4Lii4Lij4LmJ4Liy4LinCivguKPguYnguK3guKLguKXguLTguYnguJkKK+C4o+C5ieC4reC4ouC4peC4tOC5ieC4meC4geC4sOC4peC4suC4p+C4mQor4Lij4LmJ4Lit4Lii4Liq4Li14Lij4LmJ4Lit4Lii4Lit4Lii4LmI4Liy4LiHCivguKPguYjguK3guKLguKvguKPguK0KK+C4o+C5ieC4reC4ouC4q+C4p+C4suC4ogor4Lij4LmJ4Lit4Lii4Lir4Lin4Li1CivguKPguYnguK3guKLguYDguK3guYfguJQKK+C4o+C5ieC4reC4ouC5gOC4reC5h+C4lOC5gOC4iOC5h+C4lOC4q+C4seC4p+C5gOC4oeC4t+C4reC4hwor4Lij4LmI4Lit4LmB4Lij4LmICivguKPguLAKK+C4o+C4sOC4geC4sAor4Lij4Liw4LiB4LiyCivguKPguLDguIHguLMKK+C4o+C4sOC4geC4s+C4meC4sgor4Lij4Liw4LiB4Liz4Lib4LmI4LiyCivguKPguLDguYDguIHguLDguKPguLDguIHguLAKK+C4o+C4sOC4hOC4mQor4Lij4Liw4LiE4Liy4LiHCivguKPguLDguITguLLguKIKK+C4o+C4sOC5gOC4hOC5h+C4lOC4o+C4sOC4hOC4suC4ogor4Lij4Liw4LmB4LiE4LiwCivguKPguLDguYHguITguLDguKPguLDguITguLLguKIKK+C4o+C4sOC4huC4seC4hwor4Lij4Liw4LiH4LihCivguKPguLDguIfguKHguYTguJ7guKMKK+C4o+C4sOC4h+C4seC4mgor4Lij4Liw4LiH4Lix4Lia4Lie4Li04LipCivguKPguLDguIfguLXguYgKK+C4o+C4sOC5geC4h+C5iQor4Lij4Liw4LmC4LiH4LiB4Lir4Li04LiZCivguKPguLDguIrguKfguKIKK+C4o+C4sOC4lOC4oQor4Lij4Liw4LiU4LiwCivguKPguLDguJTguLHguJoKK+C4o+C4sOC4lOC4seC4muC4l+C4sOC5gOC4pQor4Lij4Liw4LiU4Lix4Lia4LiX4Liw4LmA4Lil4Lib4Liy4LiZ4LiB4Lil4Liy4LiHCivguKPguLDguJTguLIKK+C4o+C4sOC4lOC5iOC4suC4pwor4Lij4Liw4LiU4Li5CivguKPguLDguJTguLnguILguLLguKcKK+C4o+C4sOC5gOC4lOC5iOC4mQor4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguKPguLDguYHguJQKK+C4o+C4sOC4leC4uQor4Lij4Liw4LiX4LiBCivguKPguLDguJfguJQKK+C4o+C4sOC4l+C4oQor4Lij4Liw4LiX4Lin4LiiCivguKPguLDguJfguK3guJQKK+C4o+C4sOC4l+C4sgor4Lij4Liw4LiX4Li24LiBCivguKPguLDguJfguLbguIcKK+C4o+C4sOC5geC4l+C4sAor4Lij4Liw4LiZ4Lix4LihCivguKPguLDguJnguLLguJQKK+C4o+C4sOC4meC4suC4lOC5geC4geC5ieC4pwor4Lij4Liw4LiZ4Liy4LiU4LiX4Li44LmJ4LihCivguKPguLDguJnguLLguJTguYDguK3guIEKK+C4o+C4sOC4meC4suC4mgor4Lij4Liw4LiZ4Liy4Lia4LmA4Lit4Li14Lii4LiHCivguKPguLDguJnguLLguKEKK+C4o+C4sOC4meC4suC4pwor4Lij4Liw4LmA4LiZ4LiZCivguKPguLDguYDguJnguKPguLDguJnguLLguJQKK+C4o+C4sOC5gOC4meC4teC4ouC4lAor4Lij4Liw4LmB4LiZ4LiHCivguKPguLDguYHguJnguLAKK+C4o+C4sOC4muC4mgor4Lij4Liw4Lia4Lia4Liq4Li44Lij4Li04Lii4LiwCivguKPguLDguJrguKEKK+C4o+C4sOC4muC4reC4mgor4Lij4Liw4Lia4Lix4LiUCivguKPguLDguJrguLHguJoKK+C4o+C4sOC4muC4suC4jQor4Lij4Liw4Lia4Liy4LiUCivguKPguLDguJrguLLguJnguLUKK+C4o+C4sOC4muC4suC4meC4teC5iQor4Lij4Liw4Lia4Liy4LiiCivguKPguLDguJrguLLguKLguKrguLUKK+C4o+C4sOC4muC4swor4Lij4Liw4Lia4Li0CivguKPguLDguJrguLTguKUKK+C4o+C4sOC4muC4tOC4peC5gOC4oeC4t+C4reC4hwor4Lij4Liw4Lia4Li34LitCivguKPguLDguJrguLgKK+C4o+C4sOC5gOC4muC4hwor4Lij4Liw4LmA4Lia4LmH4LiHCivguKPguLDguYDguJrguLTguJQKK+C4o+C4sOC5gOC4muC4tOC4lOC4guC4p+C4lAor4Lij4Liw4LmA4Lia4Li04LiU4LiX4Liz4Lil4Liy4LiiCivguKPguLDguYDguJrguLTguJTguJnguYnguLPguJXguLIKK+C4o+C4sOC5gOC4muC4tOC4lOC4m+C4o+C4oeC4suC4k+C4uQor4Lij4Liw4LmA4Lia4Li04LiU4LmA4Lie4Lil4Li04LiHCivguKPguLDguYDguJrguLTguJTguKHguLfguK0KK+C4o+C4sOC5gOC4muC4tOC4lOC5gOC4p+C4peC4sgor4Lij4Liw4LmA4Lia4Li04LiU4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZCivguKPguLDguYDguJrguLXguKLguIcKK+C4o+C4sOC5gOC4muC4teC4ouC4mQor4Lij4Liw4LmA4Lia4Li14Lii4LiaCivguKPguLDguYDguJrguLXguKLguJrguIHguLLguKMKK+C4o+C4sOC5gOC4muC4teC4ouC4muC4p+C4suC4o+C4sAor4Lij4Liw4LmB4Lia4LiaCivguKPguLDguYPguJoKK+C4o+C4sOC4n+C5ieC4sgor4Lij4Liw4Lih4Lix4LiU4Lij4Liw4Lin4Lix4LiHCivguKPguLDguKHguLIKK+C4o+C4sOC4oeC4suC4lAor4Lij4Liw4LmA4Lih4Li14Lii4LijCivguKPguLDguKLguYjguK0KK+C4o+C4sOC4ouC5iOC4reC4oQor4Lij4Liw4Lii4LiwCivguKPguLDguKLguLHguIcKK+C4o+C4sOC4ouC4seC5ieC4hwor4Lij4Liw4Lii4Lix4LiUCivguKPguLDguKLguLHguJoKK+C4o+C4sOC4ouC5ieC4sgor4Lij4Liw4Lii4Liy4LiZCivguKPguLDguKLguLLguJoKK+C4o+C4sOC4ouC4swor4Lij4Liw4Lii4Liz4LiV4Liz4Lia4Lit4LiZCivguKPguLDguKLguLTguJrguKPguLDguKLguLHguJoKK+C4o+C4sOC5guC4ouC4hwor4Lij4Liw4LmC4Lii4LiH4Lij4Liw4Lii4Liy4LiHCivguKPguLDguKPguKfguKIKK+C4o+C4sOC4o+C4reC4hwor4Lij4Liw4Lij4LmI4Lit4LiZCivguKPguLDguKPguLHguKcKK+C4o+C4sOC4o+C4suC4mQor4Lij4Liw4Lij4LmI4Liy4LiiCivguKPguLDguKPguLLguKcKK+C4o+C4sOC4o+C4tOC4gQor4Lij4Liw4Lij4Li14LmICivguKPguLDguKPguLbguIcKK+C4o+C4sOC4o+C4t+C5iOC4mQor4Lij4Liw4Lij4Li34LmJ4LiZCivguKPguLDguYDguKMKK+C4o+C4sOC5gOC4o+C5iAor4Lij4Liw4LmA4Lij4LmJ4LiHCivguKPguLDguYDguKPguYfguKcKK+C4o+C4sOC5gOC4o+C4tOC4hwor4Lij4Liw4LmA4Lij4Li14Lii4LiHCivguKPguLDguYDguKPguLXguKLguKEKK+C4o+C4sOC5gOC4o+C4t+C5iOC4reC4ogor4Lij4Liw4LmB4Lij4LmICivguKPguLDguYHguKPguIcKK+C4o+C4sOC4peC4hwor4Lij4Liw4Lil4Lin4LiHCivguKPguLDguKXguK3guIEKK+C4o+C4sOC4peC4reC4hwor4Lij4Liw4Lil4Lix4LiUCivguKPguLDguKXguLHguJTguYTguJQKK+C4o+C4sOC4peC4tuC4gQor4Lij4Liw4Lil4Li44LiBCivguKPguLDguKXguLjguIcKK+C4o+C4sOC5gOC4peC4tOC4hwor4Lij4Liw4LmA4Lil4Li14Lii4LiUCivguKPguLDguKfguLHguIcKK+C4o+C4sOC4p+C4seC4h+C5hOC4nuC4owor4Lij4Liw4Lin4Lix4LiH4Lin4Lix4LiZCivguKPguLDguKfguLLguIcKK+C4o+C4sOC4p+C4suC4lOC4o+C4sOC5hOC4pwor4Lij4Liw4Lin4Liy4LihCivguKPguLDguKfguLLguKIKK+C4o+C4sOC4p+C4tOC4hwor4Lij4Liw4LmB4Lin4LiHCivguKPguLDguYHguKfguJTguKPguLDguKfguLHguIcKK+C4o+C4sOC5hOC4pwor4Lij4Liw4Liq4Liw4LmA4LiB4LmH4LiUCivguKPguLDguKrguLLguKIKK+C4o+C4sOC4quC5iOC4s+C4o+C4sOC4quC4suC4ogor4Lij4Liw4Liq4Li1CivguKPguLDguYDguKrguLTguJTguKPguLDguKrguLHguIcKK+C4o+C4sOC4q+C4geC4o+C4sOC5gOC4q+C4tOC4mQor4Lij4Liw4Lir4LiHCivguKPguLDguKvguKfguKIKK+C4o+C4sOC4q+C4p+C5iOC4suC4hwor4Lij4Liw4Lir4Lit4LiH4Lij4Liw4LmB4Lir4LiHCivguKPguLDguKvguK3guJoKK+C4o+C4sOC4q+C4seC4lAor4Lij4Liw4Lir4Liy4LiiCivguKPguLDguKvguLjguKIKK+C4o+C4sOC5gOC4q+C5h+C4iAor4Lij4Liw4LmA4Lir4LiiCivguKPguLDguYDguKvguKPguLDguKvguJkKK+C4o+C4sOC5gOC4q+C4q+C4mQor4Lij4Liw4LmA4Lir4Lir4Lix4LiZCivguKPguLDguYDguKvguLTguJQKK+C4o+C4sOC5gOC4q+C4tOC4meC4o+C4sOC4q+C4gQor4Lij4Liw4LmB4Lir4LiBCivguKPguLDguYHguKvguIcKK+C4o+C4sOC5guC4q+C4ogor4Lij4Liw4Lit4Lih4Lij4Liw4Lit4LiyCivguKPguLDguK3guLIKK+C4o+C4sOC4reC4tOC4lOC4o+C4sOC4reC4sgor4Lij4Liw4Lit4Li4CivguKPguLHguIEKK+C4o+C4seC4geC4guC5jAor4Lij4Lix4LiB4LiC4Liq4LiwCivguKPguLHguIHguILguLIKK+C4o+C4seC4geC4guC4tOC4lQor4Lij4Lix4LiB4LiU4LibCivguKPguLHguIHguJTguLAKK+C4o+C4seC4geC4lOC4teC4q+C4suC4oeC4iOC4seC5iOC4pyDguKPguLHguIHguIrguLHguYjguKfguKvguLLguKHguYDguKrguLIKK+C4o+C4seC4geC4leC4sAor4Lij4Lix4LiB4Lia4Li14LmJCivguKPguLHguIHguJ7guLXguYjguYDguKrguLXguKLguJTguLLguKLguJnguYnguK3guIcKK+C4o+C4seC4geC4ouC4oQor4Lij4Lix4LiB4Lii4Liy4Lin4LmD4Lir4LmJ4Lia4Lix4LmI4LiZIOC4o+C4seC4geC4quC4seC5ieC4meC5g+C4q+C5ieC4leC5iOC4rQor4Lij4Lix4LiB4Lij4LmJ4Lit4LiiCivguKPguLHguIHguYDguKPguYgKK+C4o+C4seC4geC5geC4o+C5iQor4Lij4Lix4LiB4Lip4LmMCivguKPguLHguIHguKnguLIKK+C4o+C4seC4geC4qeC4suC4geC4suC4owor4Lij4Lix4LiB4Lip4Liy4LiB4Liy4Lij4LiT4LmMCivguKPguLHguIHguKvguKHguLkKK+C4o+C4seC4hwor4Lij4Lix4LmJ4LiHCivguKPguLHguIfguIHguLIKK+C4o+C4seC4h+C5gOC4geC4teC4ouC4iAor4Lij4Lix4LiH4LmB4LiBCivguKPguLHguIfguYTguILguYgKK+C4o+C4seC4h+C4hOC5jAor4Lij4Lix4LiH4LiE4Lin4Liy4LiZCivguKPguLHguIfguYHguIQKK+C4o+C4seC4h+C4lOC4uOC4oQor4Lij4Lix4LiH4LmB4LiV4LiZCivguKPguLHguIfguJnguIEKK+C4o+C4seC4h+C4meC4suC4mQor4Lij4Lix4LiH4Lia4Lin4LiaCivguKPguLHguIfguJzguLbguYnguIcKK+C4o+C4seC4h+C5gOC4nuC4peC4tOC4hwor4Lij4Lix4LiH4Lih4LiUCivguKPguLHguIfguKPguK3guIcKK+C4o+C4seC4h+C4o+C4seC4geC4qeC5jAor4Lij4Lix4LiH4LmA4Lij4LiCCivguKPguLHguIfguYHguKPguIEKK+C4o+C4seC4h+C4p+C4seC4lAor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMCivguKPguLHguIfguKrguKPguLHguIcKK+C4o+C4seC4h+C4quC4pOC4qeC4j+C5jAor4Lij4Lix4LiH4Liq4Li0CivguKPguLHguIfguKrguLTguKHguLHguJnguJXguLjguYwKK+C4o+C4seC4h+C4quC4tOC4oeC4sgor4Lij4Lix4LiH4Liq4Li1CivguKPguLHguIfguKrguLXguITguKfguLLguKHguKPguYnguK3guJkKK+C4o+C4seC4h+C4quC4teC4hOC4reC4quC4oeC4tOC4gQor4Lij4Lix4LiH4Liq4Li14LmB4Lie4LiX4Lii4LmMCivguKPguLHguIfguKrguLXguKfguLTguJfguKLguLIKK+C4o+C4seC4h+C4quC4teC5gOC4q+C4meC4t+C4reC4oeC5iOC4p+C4hwor4Lij4Lix4LiH4Lir4Lii4Liy4LinCivguKPguLHguIjguInguLIKK+C4o+C4seC4igor4Lij4Lix4LiKLQor4Lij4Lix4LiK4LiB4LiwCivguKPguLHguIrguIHguLLguKUKK+C4o+C4seC4iuC4iuC4uAor4Lij4Lix4LiK4LiK4Li54Lib4LiB4Liy4LijCivguKPguLHguIrguI7guLLguKDguLTguYDguKnguIEKK+C4o+C4seC4iuC4lC0KK+C4o+C4seC4iuC4lOC4suC4oOC4tOC5gOC4qeC4gQor4Lij4Lix4LiK4LiVLQor4Lij4Lix4LiK4LiX4Liy4Lii4Liy4LiXCivguKPguLHguIrguJnguLAKK+C4o+C4seC4iuC4meC4tQor4Lij4Lix4LiK4LiZ4Li14LiB4LijCivguKPguLHguI3guIjguKfguJkKK+C4o+C4seC4j+C4kOC4suC4oOC4tOC4m+C4suC4peC5guC4meC4muC4suC4ogor4Lij4Lix4LiQCivguKPguLHguJAtCivguKPguLHguJDguJfguLnguJUKK+C4o+C4seC4kOC4mOC4o+C4o+C4oeC4meC4ueC4jQor4Lij4Lix4LiQ4Lia4Liy4LilCivguKPguLHguJDguJrguLjguKPguLjguKkKK+C4o+C4seC4kOC4m+C4o+C4sOC4qOC4suC4quC4meC5jAor4Lij4Lix4LiQ4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LiZ4Lix4LiiCivguKPguLHguJDguJvguKPguLDguKjguLLguKrguJnguKjguLLguKrguJXguKPguYwKK+C4o+C4seC4kOC4m+C4o+C4sOC4qOC4suC4quC5guC4meC4muC4suC4ogor4Lij4Lix4LiQ4Lib4Lij4Liw4Lir4Liy4LijCivguKPguLHguJDguKHguJnguJXguKPguLUKK+C4o+C4seC4kOC4p+C4tOC4quC4suC4q+C4geC4tOC4iAor4Lij4Lix4LiQ4Lio4Liy4Liq4LiV4Lij4LmMCivguKPguLHguJDguKrguKDguLIKK+C4o+C4seC4lAor4Lij4Lix4LiU4LiB4Li44LihCivguKPguLHguJTguYDguIHguKXguYnguLIKK+C4o+C4seC4lOC5gOC4guC5h+C4oeC4guC4seC4lAor4Lij4Lix4LiU4LiK4LmJ4Lit4LiHCivguKPguLHguJTguJXguLHguKcKK+C4o+C4seC4lOC4l+C4tuC4mgor4Lij4Lix4LiU4Lib4Lij4Liw4LiE4LiUCivguKPguLHguJTguJvguKPguLDguITguJkKK+C4o+C4seC4lOC4nuC4seC4quC4leC4o+C5jAor4Lij4Lix4LiU4Lij4Li24LiHCivguKPguLHguJTguKPguLnguJsKK+C4o+C4seC4lQor4Lij4Lix4LiVLQor4Lij4Lix4LiV4LiB4Lix4Lih4Lie4LilCivguKPguLHguJXguITguJkKK+C4o+C4seC4leC4iOC4seC4meC4l+C4meC5jAor4Lij4Lix4LiV4LiV4Lix4LiN4LiN4Li5CivguKPguLHguJXguJXguLQKK+C4o+C4seC4leC4leC4tOC4geC4suC4pQor4Lij4Lix4LiV4LiZLQor4Lij4Lix4LiV4LiZ4LmMCivguKPguLHguJXguJnguYLguIHguKrguLTguJnguJfguKPguYwKK+C4o+C4seC4leC4meC4leC4o+C4seC4ogor4Lij4Lix4LiV4LiZ4Lia4Lix4Lil4Lil4Lix4LiH4LiB4LmMCivguKPguLHguJXguJnguKrguLTguIfguKvguLLguKrguJnguYwKK+C4o+C4seC4leC4meC4sAor4Lij4Lix4LiV4LiZ4LiyCivguKPguLHguJXguJnguLLguIHguKMKK+C4o+C4seC4leC4meC4suC4p+C4peC4tQor4Lij4Lix4LiV4Lih4LiT4Li1CivguKPguLHguJXguKHguLIKK+C4o+C4seC4lgor4Lij4Lix4LiW4Lii4LiyCivguKPguLHguJfguYDguJfguK3guKPguYzguJ/guK3guKPguYzguYDguJTguLXguKLguKEKK+C4o+C4seC4mQor4Lij4Lix4LmJ4LiZCivguKPguLHguJnguIrguJnguKPguLHguJnguYHguIrguIcKK+C4o+C4seC4meC4l+C4lAor4Lij4Lix4LiZ4LiX4Lin4LiiCivguKPguLHguJnguJfguLMKK+C4o+C4seC4meC5geC4l+C4sAor4Lij4Lix4LiZ4LiY4LiwCivguKPguLHguJoKK+C4o+C4seC4muC4guC4p+C4seC4jQor4Lij4Lix4Lia4LmB4LiC4LiBCivguKPguLHguJrguITguLMKK+C4o+C4seC4muC4iOC5ieC4suC4hwor4Lij4Lix4Lia4LiX4LmJ4Lit4LiHCivguKPguLHguJrguJvguKPguLDguIHguLHguJkKK+C4o+C4seC4muC4m+C4o+C4sOC4l+C4suC4mQor4Lij4Lix4Lia4Lib4Liy4LiBCivguKPguLHguJrguJzguLTguJQKK+C4o+C4seC4muC4nOC4tOC4lOC4iuC4reC4mgor4Lij4Lix4Lia4Lih4Li34LitCivguKPguLHguJrguKPguK3guIcKK+C4o+C4seC4muC5gOC4o+C4t+C4reC4mQor4Lij4Lix4Lia4Liq4Lix4LmI4LiHCivguKPguLHguJrguKvguJnguYnguLIKK+C4o+C4seC4muC5hOC4q+C4p+C5iQor4Lij4Lix4Lih4LiBLQor4Lij4Lix4Lih4LiT4Li14LiiLQor4Lij4Lix4Lih4Lig4LiyCivguKPguLHguKHguKHguLXguYgKK+C4o+C4seC4oeC4ouC5jAor4Lij4Lix4LiiCivguKPguLHguKcKK+C4o+C4seC5iOC4pwor4Lij4Lix4LmJ4LinCivguKPguLHguYnguKfguYTguIHguYgKK+C4o+C4seC4qOC4oeC4tOC4oeC4seC4lQor4Lij4Lix4Lio4Lih4Li04Lih4Liy4LiZCivguKPguLHguKjguKHguLUKK+C4o+C4seC4qeC4juC4suC4geC4owor4Lij4Lix4LiqLQor4Lij4Lix4Liq4Liq4Lij4LiwCivguKPguLHguKrguKrguLAKK+C4o+C4sgor4Lij4LmI4LiyCivguKPguYnguLIKK+C4o+C4suC4gQor4Lij4Liy4LiB4LmB4LiB4LmJ4LinCivguKPguLLguIHguILguKfguLHguI0KK+C4o+C4suC4geC4kOC4suC4mQor4Lij4Liy4LiB4LiU4Li04LiZCivguKPguLLguIHguJ3guK3guKIKK+C4o+C4suC4geC4n+C4seC4mQor4Lij4Liy4LiB4Lio4Lix4Lie4LiX4LmMCivguKPguLLguIHguKnguKoKK+C4o+C4suC4geC5guC4qeC4qgor4Lij4Liy4LiB4Liq4Liy4LiUCivguKPguLLguIHguKrguLLguJTguJnguYnguK3guKIKK+C4o+C4suC4geC4quC4suC4lOC5g+C4q+C4jeC5iAor4Lij4Liy4LiB4Liq4Liy4Lih4Liq4Li04LiaCivguKPguLLguIHguYDguKvguIfguYnguLIKK+C4o+C4suC4guC5ieC4rQor4Lij4Liy4LiE4LiwCivguKPguLLguITguLIKK+C4o+C4suC4hOC4suC4leC4peC4suC4lAor4Lij4Liy4LiE4Li04LiZCivguKPguLLguITguLUKK+C4o+C4suC4hwor4Lij4LmI4Liy4LiHCivguKPguYnguLLguIcKK+C4o+C5iOC4suC4h+C4geC4suC4ogor4Lij4Liy4LiH4LiI4Li34LiUCivguKPguLLguIfguIrguLLguIcKK+C4o+C4suC4h+C4lOC4swor4Lij4Liy4LiH4LmB4LiU4LiHCivguKPguLLguIfguJnguLLguJkKK+C4o+C4suC4h+C4muC4o+C4o+C4l+C4seC4lAor4Lij4LmI4Liy4LiH4Lij4LmJ4Liy4LiZCivguKPguLLguIfguKfguLHguKUKK+C4o+C5iOC4suC4h+C5geC4qwor4Lij4Liy4LiKCivguKPguLLguIotCivguKPguLLguIrguIHguLLguKMKK+C4o+C4suC4iuC4geC4tOC4iOC4iOC4suC4meC4uOC5gOC4muC4geC4qeC4sgor4Lij4Liy4LiK4LiE4Lij4Li5CivguKPguLLguIrguI3guLUKK+C4o+C4suC4iuC4lOC4seC4lAor4Lij4Liy4LiK4LiX4Lix4LiT4LiR4LmMCivguKPguLLguIrguJfguLTguJnguJnguLLguKEKK+C4o+C4suC4iuC4l+C4ueC4lQor4Lij4Liy4LiK4LmC4LiX4Lij4Lir4LiwCivguKPguLLguIrguJjguKPguKPguKEKK+C4o+C4suC4iuC4mOC4suC4meC4tQor4Lij4Liy4LiK4LiZ4Li04LiB4Li44LilCivguKPguLLguIrguJnguLXguJXguLQKK+C4o+C4suC4iuC4muC4seC4k+C4keC4tOC4lQor4Lij4Liy4LiK4Lia4Liy4LiV4LijCivguKPguLLguIrguJrguLjguJXguKMKK+C4o+C4suC4iuC4muC4uOC4o+C4uOC4qQor4Lij4Liy4LiK4Lib4Liw4LmB4LiV4LiZCivguKPguLLguIrguJ7guKTguIHguKnguYwKK+C4o+C4suC4iuC4oOC4seC4jwor4Lij4Liy4LiK4Lih4Lix4LilCivguKPguLLguIrguKHguLLguJPguJ4KK+C4o+C4suC4iuC4oeC4suC4qQor4Lij4Liy4LiK4Lih4Liy4LiqCivguKPguLLguIrguKLguYwKK+C4o+C4suC4iuC4ouC4suC4mQor4Lij4Liy4LiK4LmC4Lii4LiECivguKPguLLguIrguYLguKLguIfguIHguLLguKMKK+C4o+C4suC4iuC4o+C4luC4oeC4suC5gOC4geC4ogor4Lij4Liy4LiK4Lin4LiH4Lio4LmMCivguKPguLLguIrguKfguKPguKHguKvguLLguKfguLTguKvguLLguKMKK+C4o+C4suC4iuC4p+C4o+C4p+C4tOC4q+C4suC4owor4Lij4Liy4LiK4Lin4LmC4Lij4LiH4LiB4Liy4LijCivguKPguLLguIrguKfguLHguJXguLQKK+C4o+C4suC4iuC4qOC4suC4quC4leC4o+C5jAor4Lij4Liy4LiK4Liq4LiB4Li44LilCivguKPguLLguIrguKrguLHguJnguJXguJXguLTguKfguIfguKjguYwKK+C4o+C4suC4iuC4quC4suC4quC4meC5jAor4Lij4Liy4LiK4Liq4Li14Lir4LmMCivguKPguLLguIrguKrguLXguKvguYzguJXguLHguKfguJzguLnguYkKK+C4o+C4suC4iuC4quC4teC4q+C5jOC4leC4seC4p+C5gOC4oeC4teC4ogor4Lij4Liy4LiK4Liq4Li14Lir4LmM4Liq4Lit4LiH4LiV4Lix4Lin4Lit4Lii4Li54LmI4LiW4LmJ4Liz4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4LmE4Lih4LmI4LmE4LiU4LmJCivguKPguLLguIrguKrguLnguKLguLAKK+C4o+C4suC4iuC4q+C4seC4leC4luC5gOC4peC4guC4sgor4Lij4Liy4LiK4Lit4LiH4LiE4Lij4Lix4LiB4Lip4LmMCivguKPguLLguIrguYLguK3guIfguIHguLLguKMKK+C4o+C4suC4iuC4sAor4Lij4Liy4LiK4Lix4LiZCivguKPguLLguIrguLHguJnguKLguYwKK+C4o+C4suC4iuC4seC4ogor4Lij4Liy4LiK4LiyCivguKPguLLguIrguLLguITguJPguLAKK+C4o+C4suC4iuC4suC5guC4iuC4hAor4Lij4Liy4LiK4Liy4LiY4Li04Lij4Liy4LiKCivguKPguLLguIrguLLguKDguLTguYDguKnguIEKK+C4o+C4suC4iuC4suC4ouC4leC4meC4sAor4Lij4Liy4LiK4Liy4Lik4LiB4Lip4LmMCivguKPguLLguIrguLLguKfguJTguLUKK+C4o+C4suC4iuC4suC4p+C4peC4tQor4Lij4Liy4LiK4Liy4Lio4Lix4Lie4LiX4LmMCivguKPguLLguIrguLQKK+C4o+C4suC4iuC4tOC4meC4tOC4geC4uOC4pQor4Lij4Liy4LiK4Li04LiZ4Li1CivguKPguLLguIrguLTguJnguLXguIHguLjguKUKK+C4o+C4suC4iuC4tOC4meC4teC4meC4suC4lgor4Lij4Liy4LiK4Li04LiZ4Li54Lib4LiW4Lix4Lih4Lig4LmMCivguKPguLLguIrguLUKK+C4o+C4suC4iuC4ueC4m+C4luC4seC4oeC4oOC5jAor4Lij4Liy4LiK4Li54Lib4LmC4Lig4LiECivguKPguLLguYDguIrguJkKK+C4o+C4suC5gOC4iuC4meC4l+C4o+C5jAor4Lij4Liy4LmA4LiK4LiZ4LiX4Lij4Lii4Liy4LiZCivguKPguLLguYLguIrguIfguIHguLLguKMKK+C4o+C4suC5guC4iuC4m+C4luC4seC4oeC4oOC5jAor4Lij4Liy4LmC4LiK4Lib4LmC4Lig4LiECivguKPguLLguYLguIrguKfguLLguJcKK+C4o+C4suC5hOC4iuC4qOC4p+C4o+C4o+C4ouC5jAor4Lij4Liy4LiNCivguKPguLLguI3guKPguK3guJkKK+C4o+C4suC4lAor4Lij4Liy4LiVCivguKPguLLguJXguKMKK+C4o+C4suC4leC4o+C4tQor4Lij4Liy4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4Lia4LiU4Liy4LinCivguKPguLLguYLguJcKK+C4o+C4suC4mQor4Lij4LmI4Liy4LiZCivguKPguYnguLLguJkKK+C4o+C5ieC4suC4meC4oeC5ieC4sgor4Lij4Liy4LiaCivguKPguLLguJrguITguLLguJoKK+C4o+C4suC4muC5gOC4m+C5h+C4meC4q+C4meC5ieC4suC4geC4peC4reC4hwor4Lij4Liy4Lia4Lij4Li34LmI4LiZCivguKPguLLguJrguYDguKPguLXguKLguJoKK+C4o+C4suC4m+C4teC4gQor4Lij4Liy4Lie4LiT4LmMCivguKPguLLguJ7guJPguLLguKrguLnguKMKK+C4o+C4suC4oQor4Lij4Liy4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li04LmMCivguKPguLLguKHguKrguLnguKMKK+C4o+C4suC4oeC4seC4jQor4Lij4Liy4Lih4LiyCivguKPguLLguKIKK+C4o+C5iOC4suC4ogor4Lij4LmJ4Liy4LiiCivguKPguYnguLLguKLguIHguLLguIgKK+C4o+C4suC4ouC4geC4suC4owor4Lij4Liy4Lii4LiH4Liy4LiZCivguKPguLLguKLguIfguLLguJnguIHguLLguKPguJvguKPguLDguIrguLjguKEKK+C4o+C4suC4ouC4iOC5iOC4suC4ogor4Lij4Liy4Lii4LiX4Liy4LiHCivguKPguYjguLLguKLguYTguKHguYkKK+C4o+C5iOC4suC4ouC4o+C4seC4hwor4Lij4Liy4Lii4Lij4Lix4LiaCivguKPguYnguLLguKLguYHguKPguIcKK+C4o+C4suC4ouC4p+C4tOC4iuC4sgor4Lij4LmI4Liy4LmA4Lij4Li04LiHCivguKPguLLguYDguKPguLTguJQKK+C4o+C4suC5geC4o+C4oQor4Lij4Liy4LinCivguKPguYnguLLguKcKK+C4o+C4suC4p+C4geC4sAor4Lij4Liy4Lin4LiB4Lix4LiaCivguKPguLLguKfguILguYjguLLguKcKK+C4o+C5ieC4suC4p+C4ieC4suC4mQor4Lij4Liy4Lin4Lib4LmI4LiyCivguKPguYnguLLguKfguKPguLLguJkKK+C4o+C4suC4p+C4tQor4Lij4Liy4Lio4Li1CivguKPguLLguKnguI7guKMKK+C4o+C4suC4qeC4juC4o+C5jAor4Lij4Liy4Lip4LiV4Lij4Li1CivguKPguLLguKnguKPguLLguJXguKPguLTguJkKK+C4o+C4suC4qeC4o+C4suC4leC4o+C4tQor4Lij4Liy4Liq4Li1CivguKPguLLguKvguLgKK+C4o+C5iOC4suC4q+C4uOC5jAor4Lij4Liy4Lir4Li5CivguKPguLMKK+C4o+C5iOC4swor4Lij4Liz4LmA4LiC4LiZ4LiHCivguKPguLPguITguLLguI0KK+C4o+C4s+C5guC4hOC4oQor4Lij4Liz4LiH4Lix4LiaCivguKPguLPguIjguKfguJkKK+C4o+C4s+C4iuC4seC5iOC4p+C5guC4l+C4qeC4nuC4suC4geC4ouC5jAor4Lij4Liz4LiL4Li44LiiCivguKPguLPguYDguJfguYnguLIKK+C4o+C4s+C4muC4suC4jQor4Lij4LmI4Liz4LmE4LibCivguKPguLPguJzguLUKK+C4o+C4s+C4nuC4seC4lAor4Lij4Liz4Lie4Lix4LiU4LiK4LiyCivguKPguLPguJ7guLHguJkKK+C4o+C4s+C4nuC4suC4ogor4Lij4Liz4Lie4Li24LiHCivguKPguLPguYDguJ7guKIKK+C4o+C4s+C5geC4nuC4mQor4Lij4Liz4LmE4LieCivguKPguLPguKHguLDguYHguIIKK+C4o+C4s+C4oeC4sOC4meC4sgor4Lij4Liz4Lih4Liw4LiZ4Liy4LiUCivguKPguLPguKHguLDguKPguYjguK0KK+C4o+C4s+C5hOC4oeC5iOC4lOC4teC5guC4l+C4qeC4m+C4teC5iOC5guC4l+C4qeC4geC4peC4reC4hwor4Lij4Liz4Lii4Lin4LiZCivguKPguLPguKLguYnguK3guKIKK+C4o+C4s+C5geC4ouC5iQor4Lij4Liz4Lij4LiH4LiE4LmMCivguKPguYjguLPguKPguKfguKIKK+C4o+C4s+C4o+C4suC4jQor4Lij4Liz4Lij4LizCivguKPguYjguLPguKPguLXguYnguKPguYjguLPguYTguKMKK+C4o+C4s+C5gOC4owor4Lij4LmI4Liz4LmA4Lij4Li14Lii4LiZCivguKPguLPguYTguKMKK+C4o+C5iOC4s+C5hOC4owor4Lij4Liz4Lil4Li24LiBCivguKPguLPguKfguIcKK+C4o+C4s+C4q+C4seC4lAor4Lij4Liz4Lir4Lix4LiqCivguKPguYjguLPguYTguKvguYkKK+C4o+C4tAor4Lij4Li04LiBCivguKPguLTguIHguYYKK+C4o+C4tOC4lOC4quC4teC4lOC4p+C4hwor4Lij4Li04LiZCivguKPguLTguJnguYYKK+C4o+C4tOC5ieC4mQor4Lij4Li04LiaCivguKPguLTguJrguJfguKPguLHguJ7guKLguYzguKrguLTguJkKK+C4o+C4tOC4muC4muC4tOC5ieC4mQor4Lij4Li04Lia4Lij4Liy4LiK4Lia4Liy4LiV4LijCivguKPguLTguJrguKPguLXguYgKK+C4o+C4tOC4muC4q+C4o+C4teC5iAor4Lij4Li04Lib4Lit4LiHCivguKPguLTguJvguLgKK+C4o+C4tOC4m+C4uQor4Lij4Li04LihCivguKPguLTguKHguJ3guLXguJvguLLguIEKK+C4o+C4tOC5gOC4o+C4tOC5iOC4oQor4Lij4Li04LmJ4LinCivguKPguLTguKnguKLguLIKK+C4o+C4tOC4reC5iOC4suC4mQor4Lij4Li1CivguKPguLXguYgKK+C4o+C4teC5iQor4Lij4Li14LmGIOC4guC4p+C4suC4h+C5hgor4Lij4Li14LiUCivguKPguLXguJTguJnguLLguJfguLLguYDguJnguYnguJkKK+C4o+C4teC4lOC4meC4suC4l+C4suC5gOC4o+C5ieC4mQor4Lij4Li14LiU4Lil4Li54LiBCivguKPguLXguJTguLHguIHguIrguLHguJkKK+C4o+C4teC4lQor4Lij4Li14LmA4LiZ4Li14Lii4LihCivguKPguLXguJoKK+C4o+C4teC4muC4o+C4uOC4lAor4Lij4Li14LmJ4Lie4LilCivguKPguLXguKEKK+C4o+C4teC4o+C4rQor4Lij4Li14LmGIOC4o+C4reC5hgor4Lij4Li14LmJ4Lij4Li04LiBCivguKPguLbguIHguJXguYwKK+C4o+C4tuC4hwor4Lij4Li24LmJ4LiHCivguKPguLfguYjguJkKK+C4o+C4t+C5ieC4mQor4Lij4Li34LmI4LiZ4Lij4Lih4Lii4LmMCivguKPguLfguYjguJnguYDguKPguLTguIcKK+C4o+C4t+C5ieC4rQor4Lij4Li34LmJ4Lit4LmB4LiV4LmI4Lir4Lil4Lix4LiH4LiE4Liy4LmA4LiC4LiyIOC4q+C4peC4seC4h+C4hOC4suC5gOC4o+C4suC5hOC4oeC5iOC4o+C4t+C5ieC4rQor4Lij4Li34LmJ4Lit4Lif4Li34LmJ4LiZCivguKPguLgKK+C4o+C4uOC4gQor4Lij4Li44LiB4LiCLQor4Lij4Li44LiB4LiC4LmMCivguKPguLjguIHguILguIHguLAKK+C4o+C4uOC4geC4guC4iuC4suC4leC4tAor4Lij4Li44LiB4LiC4Lih4Li54LilCivguKPguLjguIHguILguKHguLnguKXguLTguIHguJjguLjguJTguIfguITguYwKK+C4o+C4uOC4geC4guC4sgor4Lij4Li44LiB4LiG4Liy4LiVCivguKPguLjguIHguKPguYnguJkKK+C4o+C4uOC4geC4o+C4suC4mQor4Lij4Li44LiB4Lij4Li44LiiCivguKPguLjguIHguKnguLAKK+C4o+C4uOC4guC5ieC4suC4pwor4Lij4Li44LmI4LiHCivguKPguLjguYnguIcKK+C4o+C4uOC5iOC4h+C5gOC4iuC5ieC4sgor4Lij4Li44LmJ4LiH4Lie4Lij4Liy4LiiCivguKPguLjguYnguIfguKPguYjguKfguIcKK+C4o+C4uOC4h+C4o+C4seC4hwor4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHCivguKPguLjguYjguIfguYLguKPguIjguJnguYwKK+C4o+C4uOC4iAor4Lij4Li44LiI4LiZCivguKPguLjguIjguLIKK+C4o+C4uOC4iOC4tAor4Lij4Li44LiI4Li04Lij4LiwCivguKPguLjguIjguLTguKPguLIKK+C4o+C4uOC4iOC4tOC5gOC4o+C4ggor4Lij4Li44LiI4Li1CivguKPguLjguIrguLIKK+C4o+C4uOC4lAor4Lij4Li44LiU4Lir4LiZ4LmJ4LiyCivguKPguLjguJUKK+C4o+C4uOC4l+C4mOC5jAor4Lij4Li44LiX4LijCivguKPguLjguJjguLTguKMKK+C4o+C4uOC5gOC4mOC4teC4ouC4owor4Lij4Li44LiZCivguKPguLjguYjguJkKK+C4o+C4uOC5iOC4meC4geC4o+C4sOC4l+C4hwor4Lij4Li44LmI4LiZ4LiV4Liw4LiB4LitCivguKPguLjguYjguJnguKPguLLguKfguITguKPguLLguKfguYDguJTguLXguKLguKfguIHguLHguJkKK+C4o+C4uOC4meC5geC4o+C4hwor4Lij4Li44Lia4Lij4Li54LmICivguKPguLjguJrguLLguIHguLLguKMKK+C4o+C4uOC4oQor4Lij4Li44LmI4LihCivguKPguLjguKHguYTguILguYkKK+C4o+C4uOC4oeC5hOC4nwor4Lij4Li44LmI4Lih4Lij4Lin4LiiCivguKPguLjguYjguKHguKPguYjguLLguKEKK+C4o+C4uOC4ogor4Lij4Li44LmI4LiiCivguKPguLjguYjguKLguKPguYjguLLguKIKK+C4o+C4uOC4o+C4uAor4Lij4Li44Lip4LiP4LmMCivguKPguLjguKvguLAKK+C4o+C4uOC4q+C4suC4jQor4Lij4Li5CivguKPguLnguYgKK+C4o+C4ueC5iQor4Lij4Li54LmJ4LmB4LiB4LinCivguKPguLnguYnguITguKfguLLguKEKK+C4o+C4ueC5ieC4hOC4tOC4lAor4Lij4Li54LmJ4LiE4Li04LiU4Lij4Li54LmJ4Lit4LmI4Liy4LiZCivguKPguLnguYnguITguLjguJMKK+C4o+C4ueC5ieC4h+C4ueC5hiDguJvguKXguLLguYYKK+C4o+C4ueC5ieC4iOC4seC4gQor4Lij4Li54LmJ4LiI4Lix4LiB4LmA4LiB4LmH4Lia4Lij4Li54LmJ4LiI4Lix4LiB4LmA4LiC4Li14LmI4LiiCivguKPguLnguYnguIjguLHguIHguYDguIHguYfguJrguKPguLnguYnguIjguLHguIHguIfguLMKK+C4o+C4ueC5ieC4iOC4seC4geC4oeC4seC4geC4hOC4uOC5ieC4mQor4Lij4Li54LmJ4LiI4Lix4LiB4Lih4Lix4LiB4LiI4Li14LmICivguKPguLnguIjguLUKK+C4o+C4ueC5ieC4ieC4peC4suC4lAor4Lij4Li54LmJ4LmA4LiK4LmI4LiZ4LmA4Lir4LmH4LiZ4LiK4Liy4LiV4Li0CivguKPguLnguJQKK+C4o+C4ueC5ieC4leC4seC4pwor4Lij4Li54LmJ4LiV4Li34LmJ4LiZ4Lil4Li24LiB4Lir4LiZ4Liy4Lia4Liy4LiHCivguKPguLnguYnguJfguLHguJkKK+C4o+C4ueC5ieC4l+C4tQor4Lij4Li54LiX4Li14LmA4LiZ4Li14Lii4LihCivguKPguLnguYnguYDguJfguYjguLIKK+C4o+C4ueC5ieC5gOC4l+C5iOC4suC5hOC4oeC5iOC4luC4tuC4h+C4geC4suC4o+C4k+C5jAor4Lij4Li54LmJ4LiZ4LmJ4Lit4Lii4Lie4Lil4Lit4Lii4Lij4Liz4LiE4Liy4LiNCivguKPguLnguJrguLTguYDguJTguLXguKLguKEKK+C4o+C4ueC4mwor4Lij4Li54LibLQor4Lij4Li54Lib4LiK4Li1CivguKPguLnguJvguJjguKPguKPguKEKK+C4o+C4ueC4m+C4nuC4ouC4seC4jeC4iuC4meC4sAor4Lij4Li54Lib4Lie4Lij4Lij4LiTCivguKPguLnguJvguKDguLLguJ4KK+C4o+C4ueC4m+C4o+C5iOC4suC4hwor4Lij4Li54Lib4Lil4Lit4LiBCivguKPguLnguJvguKrguKHguJrguLHguJXguLQKK+C4o+C4ueC4m+C4quC4o+C4sAor4Lij4Li54Lib4Li04Lii4LiwCivguKPguLnguJvguLUKK+C4o+C4ueC5ieC4oeC4peC4seC4gQor4Lij4Li54LmJ4Lih4Lil4Liy4LiBCivguKPguLnguYnguKHguLLguIEKK+C4o+C4ueC5ieC4oeC4suC4geC4ouC4suC4geC4meC4suC4mQor4Lij4Li54LmJ4Lii4Liy4Lin4Lij4Li54LmJ4Liq4Lix4LmJ4LiZCivguKPguLnguYDguKXguYfguJXguJXguYwKK+C4o+C4ueC5ieC5hOC4p+C5ieC5g+C4iuC5iOC4p+C5iOC4siDguYPguKrguYjguJrguYjguLLguYHguJrguIHguKvguLLguKEKK+C4o+C4ueC5ieC4quC4tuC4gQor4Lij4Li54LmJ4LmE4Liq4LmJCivguKPguLnguYnguKvguKXguJrguYDguJvguYfguJnguJvguLXguIEg4Lij4Li54LmJ4Lir4Lil4Li14LiB4LmA4Lib4LmH4LiZ4Lir4Liy4LiHCivguKPguLnguKvguLAKK+C4o+C4ueC5ieC4q+C4suC4jeC4o+C4ueC5ieC4guC4peC4suC4lAor4Lij4Li54LmJ4LmA4Lir4LmH4LiZCivguKPguLnguYnguYDguKvguYfguJnguYDguJvguYfguJnguYPguIgKK+C4o+C4ueC5ieC4reC4ouC5iOC4suC4h+C5gOC4m+C5h+C4lAor4Lij4Li54LmJ4Lit4Lii4Li54LmICivguKPguLnguYnguYDguK3guIfguYDguJvguYfguJnguYDguK3guIcKK+C5gOC4o+C5iAor4LmA4Lij4LiCCivguYDguKPguILguLIKK+C5gOC4o+C4guC4suC4hOC4k+C4tOC4lQor4LmA4Lij4LiC4Liy4LiE4LiT4Li04LiV4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMCivguYDguKPguILguLLguITguJPguLTguJXguKfguLTguYDguITguKPguLLguLDguKvguYwKK+C5gOC4o+C5h+C4hwor4LmA4Lij4LmI4LiHCivguYDguKPguYnguIcKK+C5gOC4o+C5iOC4h+C4oeC4t+C4rQor4LmA4Lij4LmI4LiH4Lij4Lix4LiUCivguYDguKPguYjguIfguKPguYjguLLguKIKK+C5gOC4o+C5iOC4h+C4o+C4teC4mgor4LmA4Lij4LmI4LiH4LmA4Lij4LmJ4LiyCivguYDguKPguJPguLgKK+C5gOC4o+C4k+C4uOC4gQor4LmA4Lij4LiT4Li5CivguYDguKPguJTguK3guJkKK+C5gOC4o+C4lOC4suC4o+C5jAor4LmA4Lij4LmA4LiU4Li14Lii4LihCivguYDguKPguYnguJkKK+C5gOC4o+C5ieC4meC4peC4seC4mgor4LmA4Lij4Lij4Lin4LiZCivguYDguKPguYjguKPguYjguK3guJkKK+C5gOC4o+C5iOC4o+C5iOC4suC4ogor4LmA4Lij4LmE4LijCivguYDguKPguYfguKcKK+C5gOC4o+C5iOC4pwor4LmA4Lij4Lin4LiU4Li1CivguYDguKPguK0KK+C5gOC4o+C5iOC4rQor4LmA4Lij4LmI4Lit4Lij4LmI4LiyCivguYDguKPguLIKK+C5gOC4o+C5iOC4sgor4LmA4Lij4LmI4Liy4LmGCivguYDguKPguYnguLIKK+C5gOC4o+C5iOC4suC4o+C5ieC4reC4mQor4LmA4Lij4Liy4LiwCivguYDguKPguLLguLDguKPguLLguKIKK+C5gOC4o+C4suC4sOC4o+C5ieC4suC4ogor4LmA4Lij4Li04LiHCivguYDguKPguLTguJQKK+C5gOC4o+C4tOC4oQor4LmA4Lij4Li04LmI4LihCivguYDguKPguLTguYnguKEKK+C5gOC4o+C4tOC4qOC4o+C5ieC4suC4hwor4LmA4Lij4Li14LmI4LiiCivguYDguKPguLXguYnguKLguYYKK+C5gOC4o+C4teC4ouC4gQor4LmA4Lij4Li14Lii4LiB4LmA4LiZ4Li34LmJ4LitCivguYDguKPguLXguKLguIcKK+C5gOC4o+C4teC4ouC4h+C5hgor4LmA4Lij4Li14Lii4LiH4LiE4Lin4Liy4LihCivguYDguKPguLXguKLguIfguJ7guLTguKHguJ7guYwKK+C5gOC4o+C4teC4ouC4h+C4nuC4teC5iOC5gOC4o+C4teC4ouC4h+C4meC5ieC4reC4hwor4LmA4Lij4Li14Lii4LiH4Lij4Lix4LiZCivguYDguKPguLXguKLguIfguKPguLLguKIKK+C5gOC4o+C4teC4ouC4h+C4q+C4meC5ieC4suC4geC4o+C4sOC4lOC4suC4mQor4LmA4Lij4Li14Lii4LiH4Lir4Lih4Lit4LiZCivguYDguKPguLXguKLguJQKK+C5gOC4o+C4teC4ouC4mQor4LmA4Lij4Li14Lii4LiZ4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguYDguKPguLXguKLguJnguJzguLnguIHguJXguYnguK3guIfguYDguKPguLXguKLguJnguYHguIHguYkKK+C5gOC4o+C4teC4ouC4mgor4LmA4Lij4Li14Lii4Lia4LmGCivguYDguKPguLXguKLguJrguKPguYnguK3guKIKK+C5gOC4o+C4teC4ouC4muC5gOC4o+C4teC4ouC4hwor4LmA4Lij4Li14Lii4Lia4Lin4Li44LiYCivguYDguKPguLXguKLguKEKK+C5gOC4o+C4teC5iOC4ouC4oQor4LmA4Lij4Li14LmI4Lii4Lij4Liy4LiUCivguYDguKPguLXguYjguKLguKPguLLguKIKK+C5gOC4o+C4teC5iOC4ouC5hOC4owor4LmA4Lij4Li14Lii4LinCivguYDguKPguLXguYjguKLguKcKK+C5gOC4o+C4teC5ieC4ouC4p+C4o+C4gQor4LmA4Lij4Li14LmI4Lii4Lin4LmB4Lij4LiHCivguYDguKPguLXguKLguKfguKvguJnguLLguKEKK+C5gOC4o+C4t+C4rQor4LmA4Lij4Li34LmI4LitCivguYDguKPguLfguYnguK0KK+C5gOC4o+C4t+C4reC4gQor4LmA4Lij4Li34Lit4LiB4Liq4Lin4LiZCivguYDguKPguLfguK3guILguJnguLLguJkKK+C5gOC4o+C4t+C4reC4guC4suC4lOC4q+C4suC4h+C5gOC4quC4t+C4rQor4LmA4Lij4Li34Lit4LiHCivguYDguKPguLfguYjguK3guIcKK+C5gOC4o+C4t+C5ieC4reC4hwor4LmA4Lij4Li34Lit4LiH4LiZ4Liy4LihCivguYDguKPguLfguK3guIfguKPguK3guIcKK+C5gOC4o+C4t+C5iOC4reC4h+C4o+C4suC4pwor4LmA4Lij4Li34Lit4LiH4LmE4LijCivguYDguKPguLfguYjguK3guIfguKrguLHguYnguJkKK+C5gOC4o+C4t+C4reC4h+C4reC4s+C4meC4suC4iAor4LmA4Lij4Li34Lit4LiUCivguYDguKPguLfguK3guJTguYTguKHguYkKK+C5gOC4o+C4t+C4reC4mQor4LmA4Lij4Li34LmJ4Lit4LiZCivguYDguKPguLfguK3guJnguYHguIHguYnguKcKK+C5gOC4o+C4t+C4reC4meC5gOC4hOC4o+C4t+C5iOC4reC4h+C4nOC4ueC4gQor4LmA4Lij4Li34Lit4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Lix4LiaCivguYDguKPguLfguK3guJnguIjguLMKK+C5gOC4o+C4t+C4reC4meC4leC4sOC5gOC4geC4teC4ouC4hwor4LmA4Lij4Li34Lit4LiZ4LiY4Liy4LiV4Li4CivguYDguKPguLfguK3guJnguYDguJrguLXguYnguKIKK+C5gOC4o+C4t+C4reC4meC4neC4suC4geC4o+C4sOC4lOC4suC4mQor4LmA4Lij4Li34Lit4LiZ4LmB4Lid4LiUCivguYDguKPguLfguK3guJnguYHguJ4KK+C5gOC4o+C4t+C4reC4meC5hOC4nwor4LmA4Lij4Li34Lit4LiZ4Lii4Lit4LiUCivguYDguKPguLfguK3guJnguKvguK0KK+C5gOC4o+C4t+C4reC4muC4tOC4mQor4LmA4Lij4Li34Lit4Lie4LmI4Lin4LiHCivguYDguKPguLfguK3guYTguJ8KK+C5gOC4o+C4t+C5iOC4reC4ogor4LmA4Lij4Li34LmJ4Lit4LiiCivguYDguKPguLfguYjguK3guKLguYDguIjguLfguYnguK3guKIKK+C5gOC4o+C4t+C5iOC4reC4ouC5gOC4m+C4t+C5iOC4reC4ogor4LmA4Lij4Li34Lit4LmC4Lii4LiHCivguYDguKPguLfguK3guKPguJoKK+C5gOC4o+C4t+C5ieC4reC4o+C4seC4hwor4LmA4Lij4Li34Lit4Lil4LmI4Lih4LmD4LiZ4Lir4LiZ4Lit4LiHIOC4l+C4reC4h+C4iOC4sOC5hOC4m+C5hOC4q+C4mQor4LmA4Lij4Li34Lit4Lil4LmI4Lih4LmA4Lih4Li34LmI4Lit4LiI4Lit4LiUIOC4leC4suC4muC4reC4lOC5gOC4oeC4t+C5iOC4reC5geC4geC5iAor4LmA4Lij4Li34Lit4LmB4Lir4Lin4LiUCivguYDguKPguLfguK3guYPguKvguI3guYjguITguLHguJrguITguKXguK3guIcKK+C5geC4owor4LmB4Lij4LmICivguYHguKPguIEKK+C5geC4o+C5h+C4geC5gOC4geC4lQor4LmB4Lij4LiB4LiZ4LiyCivguYHguKPguIHguJnguLLguILguKfguLHguI0KK+C5geC4o+C4hwor4LmB4Lij4LmI4LiHCivguYHguKPguYnguIcKK+C5geC4o+C4h+C4h+C4suC4mQor4LmB4Lij4LiH4LiH4Liy4LiZ4LmB4Lil4Liw4Liq4Lin4Lix4Liq4LiU4Li04LiB4Liy4Lij4Liq4Lix4LiH4LiE4LihCivguYHguKPguIfguIfguLLguJnguKrguLHguKHguJ7guLHguJnguJjguYwKK+C5geC4o+C4h+C4lOC4tuC4h+C4lOC4ueC4lAor4LmB4Lij4LiH4LmA4LiX4Li14Lii4LiZCivguYHguKPguIfguKHguYnguLIKK+C5geC4o+C5iOC4h+C4o+C4tOC5ieC4pwor4LmB4Lij4LiH4Liq4Li54LmI4Lio4Li54LiZ4Lii4LmM4LiB4Lil4Liy4LiHCivguYHguKPguIfguKvguJnguLXguKjguLnguJnguKLguYzguIHguKXguLLguIcKK+C5geC4o+C4h+C5gOC4q+C4p+C4teC5iOC4ouC4hwor4LmB4Lij4LmI4LiH4LmE4Lir4LihCivguYHguKPguYDguIfguLIKK+C5geC4o+C4lAor4LmB4Lij4LiU4LiV4Lix4Lin4Lic4Li54LmJCivguYHguKPguJTguJXguLHguKfguYDguKHguLXguKIKK+C5geC4o+C5ieC4meC5geC4hOC5ieC4mQor4LmB4Lij4LihCivguYHguKPguKHguKPguK3guJkKK+C5geC4o+C4oeC4o+C4sgor4LmB4Lij4Lih4LmC4Lij4LiiCivguYHguKPguYnguKcKK+C5geC4o+C5gOC4quC5ieC4mQor4LmB4Lij4LiwCivguYLguKMKK+C5guC4o+C5iAor4LmC4Lij4LiECivguYLguKPguIQtCivguYLguKPguITguIjguLTguJUKK+C5guC4o+C4hOC4iOC4tOC4leC5gOC4oOC4lwor4LmC4Lij4LiE4LiZ4Li04LiX4Liy4LiZCivguYLguKPguITguJvguKPguLDguIjguLPguJXguLHguKcKK+C5guC4o+C4hOC4m+C4o+C4sOC4quC4suC4lwor4LmC4Lij4LiE4Lij4Liw4Lia4Lia4Lib4Lij4Liw4Liq4Liy4LiXCivguYLguKPguITguKjguLTguKXguJvguLAKK+C5guC4o+C4hOC4quC4oeC4reC4hwor4LmC4Lij4LiE4LiyCivguYLguKPguITguLLguJ7guKLguLLguJjguLQKK+C5guC4o+C4hOC4suC4nuC4suC4mAor4LmC4Lij4LiHCivguYLguKPguIfguITguLHguKUKK+C5guC4o+C4h+C4h+C4suC4mQor4LmC4Lij4LiH4LiY4Liy4LijCivguYLguKPguIfguJjguLLguKPguITguLPguJnguLHguKUKK+C5guC4o+C4h+C4meC4sgor4LmC4Lij4LiH4Lij4Lix4Lia4LiI4Liz4LiZ4LizCivguYLguKPguIfguYDguKPguLXguKLguJkKK+C5guC4o+C4h+C5gOC4o+C4teC4ouC4meC4m+C4o+C4sOC4iOC4swor4LmC4Lij4LiH4LmA4Lij4Li14Lii4LiZ4Liq4Liy4LiY4Li04LiVCivguYLguKPguIfguYDguKPguLfguK3guJkKK+C5guC4o+C4h+C5geC4o+C4oQor4LmC4Lij4LiH4LmB4Liq4LiHCivguYLguKPguIgKK+C5guC4o+C4iOC4meC5jAor4LmC4Lij4LmA4LiU4Li14Lii4LihCivguYLguKPguJXguLUKK+C5guC4o+C4leC4teC4quC4suC4ouC5hOC4q+C4oQor4LmC4Lij4LiXCivguYLguKPguJfguJnguLAKK+C5guC4o+C4mAor4LmC4Lij4LiY4LijCivguYLguKPguJvguJnguLAKK+C5guC4o+C4oQor4LmC4Lij4Lih4Lih4Lix4LiiCivguYLguKPguKHguKPguLHguJkKK+C5guC4o+C4oeC4seC4jeC4iAor4LmC4Lij4Lih4Lix4LiZCivguYLguKPguKHguLHguJnguITguLLguJfguK3guKXguLTguIEKK+C5guC4o+C5gOC4oeC4reC4o+C5jAor4LmC4Lij4LiiCivguYLguKPguKLguILguJnguKHguIjguLXguJkKK+C5guC4o+C4ouC4o+C4sgor4LmC4Lij4Lii4Lir4LiZ4LmJ4LiyCivguYLguKPguYDguKMKK+C5guC4o+C4qQor4LmC4Lij4Lip4LiT4LiwCivguYLguKPguKvguLTguJPguLUKK+C5guC4o+C4q+C4tOC4lQor4LmE4LijCivguYTguKPguYgKK+C5hOC4o+C5iQor4LmE4Lij4Lif4Lix4LiZCivguYTguKPguKLguYwKK+C5hOC4o+C5gOC4o+C4t+C4reC4hwor4LikCivguKTguIHguKnguYwKK+C4pOC4geC4qeC4k+C4sAor4Lik4LiB4Lip4LmM4Lia4LiZCivguKTguIHguKnguYzguJ7guLLguJnguLLguJfguLUKK+C4pOC4geC4qeC5jOC4peC5iOC4suC4hwor4Lik4LiE4LmA4Lin4LiXCivguKTguIrguLIKK+C4pOC4iuC4suC4geC4owor4Lik4LiK4Li4CivguKTguJMKK+C4pOC4lOC4tQor4Lik4LiU4Li14Lii4LiyCivguKTguJTguLkKK+C4pOC4lOC4ueC4geC4suC4pQor4Lik4LiVCivguKTguJXguLTguKLguLIKK+C4pOC4leC4uAor4Lik4LiV4Li44Liq4LiZ4Liy4LiZCivguKTguJfguJjguLIKK+C4pOC4l+C4mOC4tOC5jAor4Lik4LiX4Lix4LiiCivguKTguKnguKAKK+C4pOC4qeC4ouC4sgor4Lik4Lip4Li1CivguKTguYUKK+C4pOC5heC4iuC4uAor4Lik4LmF4LiK4Li44LiV4LiyCivguKTguYXguJTguLUKK+C4pOC5heC4l+C4seC4ogor4Lik4LmF4LmA4Lii4LiyCivguKTguYXguKnguLUKK+C4pOC5heC4qeC4teC5geC4m+C4peC4h+C4quC4suC4owor4Lik4LmF4Lip4Li14Lic4Liq4Lih4LmB4Lil4LmJ4LinCivguKTguYXguKnguLXguYDguKXguLXguYnguKLguIfguKXguLTguIcKK+C4pOC5heC4quC4suC4ogor4LilCivguKXguIEKK+C4peC4geC4suC4owor4Lil4LiB4Li44LiICivguKXguITguLjguJEKK+C4peC4hOC4uOC4rAor4Lil4LiG4Li4CivguKXguIbguLjguIjguLTguJUKK+C4peC4huC4uOC4oOC4suC4ngor4Lil4LiG4Li44LmC4Lig4LiK4LiZ4LmMCivguKXguIcKK+C4peC5iOC4hwor4Lil4LiH4LiB4Lil4Lit4LiZCivguKXguIfguIHguLIKK+C4peC4h+C4guC4seC4mQor4Lil4LiH4LiC4LmI4Liy4LinCivguKXguIfguYHguILguIEKK+C4peC4h+C4hOC4rQor4Lil4LiH4LmA4LiH4Li04LiZCivguKXguIfguIrguLfguYjguK0KK+C4peC4h+C5geC4lOC4hwor4Lil4LiH4LiV4Lix4LinCivguKXguIfguJfguK3guIcKK+C4peC4h+C4l+C5ieC4reC4hwor4Lil4LiH4LiX4LmI4LiyCivguKXguIfguJfguYnguLLguKIKK+C4peC4h+C4l+C4uOC4mQor4Lil4LiH4LmC4LiX4LipCivguKXguIfguJnguLIKK+C4peC4h+C5gOC4meC4t+C5ieC4reC5gOC4q+C5h+C4meC4lOC5ieC4p+C4ogor4Lil4LiH4LmC4Lia4Liq4LiW4LmMCivguKXguIfguYHguJvguYnguIcKK+C4peC4h+C4nOC4tQor4Lil4LiH4Lid4Lix4LiBCivguKXguIfguJ7guKPguLDguJrguLHguIfguITguJkKK+C4peC4h+C4nuC4t+C5ieC4mQor4Lil4LiH4Lie4Li44LiHCivguKXguIfguKHguLXguJQKK+C4peC4h+C4oeC4t+C4rQor4Lil4LiH4Lii4LiyCivguKXguIfguKPguK3guKLguIHguLHguJkKK+C4peC4h+C4o+C4seC4gQor4Lil4LiH4Lij4Liy4LiBCivguKXguIfguYHguKPguIcKK+C4peC4h+C5guC4o+C4hwor4Lil4LmJ4LiH4LmA4Lil4LmJ4LiHCivguKXguIfguKrguKPguIcKK+C4peC4h+C4q+C4jeC5ieC4suC4iuC5ieC4suC4hwor4Lil4LiH4Lir4Li04LiZCivguKXguIfguK3guLLguIrguI3guLIKK+C4peC4h+C4reC4suC4jeC4sgor4Lil4LiH4Lit4Li44LmC4Lia4Liq4LiWCivguKXguIfguYDguK3guKIKK+C4peC4lAor4Lil4LiU4LmA4LiC4Li34LmI4Lit4LiZCivguKXguJTguKPguLLguKfguLLguKjguK3guIEKK+C4peC4lOC4peC4sAor4Lil4LiU4LmA4Lil4Li14LmJ4Lii4LinCivguKXguJTguYDguKXguLXguYnguKLguKfguYDguIHguLXguYnguKLguKfguJ7guLIKK+C4peC4lOC4q+C4ouC5iOC4reC4mQor4Lil4LiU4Lir4Lil4Lix4LmI4LiZCivguKXguJTguLIKK+C4peC4lOC4suC4p+C4seC4peC4ouC5jAor4Lil4LiZCivguKXguYjguJkKK+C4peC5ieC4mQor4Lil4LmJ4LiZ4LmA4LiB4Lil4LmJ4Liy4Lil4LmJ4LiZ4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguKXguJnguITguKfguLHguJkKK+C4peC5ieC4meC4nuC5ieC4mQor4Lil4LiZ4Lil4Liy4LiZCivguKXguYnguJnguKvguKXguLLguKEKK+C4peC4mgor4Lil4Lia4LihCivguKXguJrguKPguK3guKIKK+C4peC4muC4peC5ieC4suC4hwor4Lil4Lia4LmA4Lil4Li34Lit4LiZCivguKXguJrguYLguKXguIEKK+C4peC4muC4qOC4seC4geC4o+C4suC4igor4Lil4Lia4Lir4Lil4Li54LmICivguKXguJrguYDguKvguKXguLXguYjguKLguKEKK+C4peC4muC4reC4hwor4Lil4Lib4LiBCivguKXguJvguJkKK+C4peC4ngor4Lil4Lie4Li44LiKCivguKXguKEKK+C4peC4oeC5hgor4Lil4LmI4LihCivguKXguYnguKEKK+C4peC4oeC4geC4o+C4lAor4Lil4Lih4LiC4Li24LmJ4LiZCivguKXguYnguKHguITguKfguYjguLMKK+C4peC4oeC4hOC5ieC4sgor4Lil4Lih4LiH4Lin4LiHCivguKXguYjguKHguIjguKEKK+C4peC4oeC4iOC4seC4mgor4Lil4Lih4LmB4LiU4LiHCivguKXguKHguJfguKfguJnguKXguKHguITguYnguLIKK+C4peC4oeC4l+C4sOC5gOC4pQor4Lil4LmJ4Lih4LiX4Lix4LmJ4LiH4Lii4Li34LiZCivguKXguKHguJrguIEKK+C4peC4oeC4muC5ieC4suC4q+C4oeC4uQor4Lil4Lih4Lib4Lij4Liy4LiTCivguKXguKHguJvguLLguIEKK+C4peC4oeC4nuC4seC4lOC4iuC4suC4ouC5gOC4guC4sgor4Lil4Lih4Lie4Lix4LiU4Lir4Lil4Lin4LiHCivguKXguKHguJ7guLTguKkKK+C4peC4oeC5gOC4nuC4peC4oeC4nuC4seC4lAor4Lil4LmI4Lih4Lif4LmJ4LiyCivguKXguKHguYTguKHguYjguJTguLUKK+C4peC4oeC4peC5iOC4reC4hwor4Lil4LmJ4Lih4Lil4Liw4Lil4Liy4LiiCivguKXguYnguKHguKXguLjguIEKK+C4peC5ieC4oeC4peC4uOC4geC4hOC4peC4uOC4geC4hOC4peC4suC4mQor4Lil4LmJ4Lih4LmA4Lil4Li04LiBCivguKXguKHguYHguKXguYnguIcKK+C4peC4oeC5hiDguYHguKXguYnguIfguYYKK+C4peC4oeC4p+C5iOC4suC4pwor4Lil4Lih4LmA4Liq4Li14LiiCivguKXguYnguKHguKvguKHguK3guJnguJnguK3guJnguYDguKrguLfguYjguK0KK+C4peC4oeC4suC4lAor4Lil4Lij4Lij4Lil4Li44LiHCivguKXguKXguJnguLIKK+C4peC4peC4suC4jwor4Lil4Lil4Li04LiVCivguKXguKfguIEKK+C4peC4p+C4hwor4Lil4LmI4Lin4LiHCivguKXguYnguKfguIcKK+C4peC5ieC4p+C4h+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4Lil4LmI4Lin4LiH4LmA4LiB4Li04LiZCivguKXguYjguKfguIfguILguLfguYjguK0KK+C4peC4p+C4h+C4hOC5jAor4Lil4LmJ4Lin4LiH4LiE4Lit4LiH4Li54LmA4Lir4LmI4LiyCivguKXguYjguKfguIfguITguLMKK+C4peC5ieC4p+C4h+C4leC4seC4mgor4Lil4Lin4LiH4LiV4LiyCivguKXguYjguKfguIfguJvguKPguLDguYDguKfguJPguLUKK+C4peC5iOC4p+C4h+C5geC4mwor4Lil4LmI4Lin4LiH4Lie4LmJ4LiZCivguKXguYnguKfguIfguKHguLfguK0KK+C4peC5iOC4p+C4h+C4o+C4ueC5iQor4Lil4LmI4Lin4LiH4Lil4Lix4LiaCivguKXguYjguKfguIfguKXguYnguLMKK+C4peC5iOC4p+C4h+C5gOC4peC4ogor4Lil4Lin4LiH4LmA4Lil4LmJ4LiyCivguKXguYjguKfguIfguKfguYjguLIKK+C4peC5iOC4p+C4h+C5gOC4p+C4peC4sgor4Lil4LmJ4Lin4LiH4LmE4Liq4LmJCivguKXguYjguKfguIfguKvguJnguYnguLIKK+C4peC4p+C4k+C4sAor4Lil4Lin4LiUCivguKXguKfguJTguKXguLLguKIKK+C4peC4p+C4lOC4quC4m+C4o+C4tOC4hwor4Lil4Lin4LiU4Lir4LiZ4Lix4LiHCivguKXguKfguJTguKvguJnguLLguKEKK+C4peC5ieC4p+C4mQor4Lil4LmJ4Lin4LiZ4LmGCivguKXguKfguJnguKXguLLguKEKK+C4peC4p+C4meC4sAor4Lil4LmI4Lin4LihCivguKXguKfguLAKK+C4peC4p+C4tOC4leC4owor4Lil4Lir4Li4CivguKXguKvguLjguIEtCivguKXguKvguLjguIHguLAKK+C4peC4q+C4uOC4geC4suC4muC4seC4leC4tAor4Lil4Lir4Li44LmC4LiX4LipCivguKXguYjguK0KK+C4peC5ieC4rQor4Lil4Lit4LiBCivguKXguYfguK3guIHguYDguIHguJUKK+C4peC4reC4geC4hOC4o+C4suC4mgor4Lil4Lit4LiB4LiX4LmJ4Lit4LiH4Lij4LmI4Lit4LiHCivguKXguK3guIHguYDguKXguJkKK+C4peC4reC4geC5geC4peC4gQor4Lil4Lit4LiB4Liy4Lij4Li04LiX4Li24LihCivguKXguK3guIcKK+C4peC5iOC4reC4hwor4Lil4Lit4LiH4LiB4Lit4LiHCivguKXguYjguK3guIfguYHguIHguYjguIcKK+C4peC5iOC4reC4h+C4iOC4p+C4mQor4Lil4Lit4LiH4LiI4Li04LiI4Li54LiUCivguKXguK3guIfguYPguIgKK+C4peC5iOC4reC4h+C4iuC4suC4lAor4Lil4Lit4LiH4LmA4LiK4Li04LiHCivguKXguK3guIfguJTguLUKK+C4peC5iOC4reC4h+C4luC4uOC4mQor4Lil4Lit4LiH4LiY4Lij4Lij4Lih4LmMCivguKXguK3guIfguYPguJkKK+C4peC4reC4h+C5hOC4mQor4Lil4Lit4LiH4Lig4Li54Lih4Li0CivguKXguYjguK3guIfguYHguKHguKcKK+C4peC5iOC4reC4h+C4q+C4mQor4Lil4Lit4LiUCivguKXguK3guJTguIrguYjguK3guIcKK+C4peC4reC4mQor4Lil4LmI4Lit4LiZCivguKXguYjguK3guJnguYHguIHguYjguJkKK+C4peC5iOC4reC4meC4iOC5ieC4reC4mQor4Lil4Lit4LiZ4LiX4Lit4LiHCivguKXguK3guJoKK+C4peC4reC4muC4geC4seC4lAor4Lil4Lit4LihCivguKXguYnguK3guKEKK+C4peC4reC4oeC4iuC4reC4oQor4Lil4LmJ4Lit4Lih4Lib4Lij4Lin4LiUCivguKXguK3guKHguJ7guK3guIEKK+C4peC5ieC4reC4oeC4p+C4hwor4Lil4Lit4LiiCivguKXguK3guKLguYYKK+C4peC5iOC4reC4ouC5hgor4Lil4Lit4Lii4LiB4Lij4Liw4LiX4LiHCivguKXguK3guKLguYHguIHguYnguKcKK+C4peC4reC4ouC4hOC4rQor4Lil4Lit4Lii4LiK4LmJ4Lit4LiZCivguKXguK3guKLguIrguLLguKIKK+C4peC4reC4ouC4lOC4reC4gQor4Lil4Lit4Lii4LiV4Lix4LinCivguKXguK3guKLguJnguKfguKUKK+C4peC4reC4ouC4muC4suC4mwor4Lil4Lit4Lii4LmB4LieCivguKXguK3guKLguJ/guYnguLIKK+C4peC4reC4ouC5gOC4oeC4hgor4Lil4Lit4Lii4Lil4LizCivguKXguK3guKLguKvguJnguYnguLIKK+C4peC5iOC4reC4peC4p+C4hwor4Lil4LmJ4Lit4LmA4Lil4Li14Lii4LiZCivguKXguYnguK3guYDguKXguLfguYjguK3guJkKK+C4peC5iOC4reC5geC4peC5iAor4Lil4Lit4Lin4LmM4LmA4Lij4LiZ4LmA4LiL4Li14Lii4LihCivguKXguYjguK3guKvguKXguK3guIEKK+C4peC5ieC4reC4q+C4peC4reC4gQor4Lil4LmI4Lit4LmB4Lir4Lil4LihCivguKXguK3guK0KK+C4peC4sAor4Lil4LmI4LiwCivguKXguLDguIHguKUKK+C4peC4sOC4geC4ueC4oeC4sOC4meC4tOC4qgor4Lil4Liw4LiC4Lix4LiU4Lil4Liw4LiC4Li34LiZCivguKXguLDguITguKMKK+C4peC4sOC4hOC4o+C4ouC4gQor4Lil4Liw4LiE4Li0CivguKXguLDguITguLbguIEKK+C4peC4sOC4h+C4suC4lAor4Lil4Liw4LiH4Li04LiUCivguKXguLDguJXguLTguIjguLnguJQKK+C4peC4sOC4l+C4tOC5ieC4hwor4Lil4Liw4Lia4LihCivguKXguLDguJrguK3guIcKK+C4peC4sOC4muC4reC4h+C5hOC4nwor4Lil4Liw4Lia4Lit4LiH4Lij4Liy4Lir4Li5CivguKXguLDguJrguLHguJQKK+C4peC4sOC4muC4t+C4rQor4Lil4Liw4LmA4Lia4LmH4LiHCivguKXguLDguYLguJrguKEKK+C4peC4sOC4oeC5iOC4reC4oQor4Lil4Liw4Lih4Lix4LmI4LiHCivguKXguLDguKHguLIKK+C4peC4sOC4oeC4suC4mQor4Lil4Liw4Lih4LmJ4Liy4LiiCivguKXguLDguKHguLgKK+C4peC4sOC4oeC4uOC4lAor4Lil4Liw4Lih4Li44LiZCivguKXguLDguKHguLjguJnguKXguLDguYTguKEKK+C4peC4sOC5gOC4oeC5h+C4lAor4Lil4Liw4LmA4Lih4LitCivguKXguLDguYDguKHguLLguLAKK+C4peC4sOC5gOC4oeC4tOC4lAor4Lil4Liw4LmA4Lih4Li04LiU4Lil4Li04LiC4Liq4Li04LiX4LiY4Li04LmMCivguKXguLDguYDguKHguLTguJkKK+C4peC4sOC5gOC4oeC4teC4ouC4lAor4Lil4Liw4LmA4Lih4Li14Lii4LiaCivguKXguLDguYHguKHguLAKK+C4peC4sOC5guC4oeC4gQor4Lil4Liw4LmC4Lih4LiaCivguKXguLDguYTguKEKK+C4peC4sOC4o+C4tQor4Lil4Liw4Lil4LiUCivguKXguLDguKXguJnguKXguLDguKXguLLguJkKK+C4peC4sOC4peC4oeC4peC4sOC4peC4suC4ogor4Lil4Liw4Lil4Lin4LiiCivguKXguLDguKXguK3guIEKK+C4peC4sOC4peC4reC4muC4peC4sOC5gOC4peC5ieC4sgor4Lil4Liw4Lil4Lix4LiHCivguKXguLDguKXguLHguJQKK+C4peC4sOC4peC5ieC4sgor4Lil4Liw4Lil4Liy4LiZCivguKXguLDguKXguLLguJrguKXguLDguKXguYnguKfguIcKK+C4peC4sOC4peC4suC4ogor4Lil4Liw4Lil4LmJ4Liy4Lil4Liw4Lil4Lix4LiHCivguKXguLDguKXguYnguLLguKcKK+C4peC4sOC4peC5iOC4s+C4peC4sOC4peC4seC4gQor4Lil4Liw4Lil4Li04LiaCivguKXguLDguKXguLjguIcKK+C4peC4sOC4peC4uOC4oQor4Lil4Liw4LmA4Lil4LiHCivguKXguLDguYDguKXguIfguILguJnguKHguYDguJrguLfguYnguK3guIfguJTguYnguKfguKLguJvguLLguIEKK+C4peC4sOC5gOC4peC4ogor4Lil4Liw4LmA4Lil4LmJ4LiyCivguKXguLDguYDguKXguLLguLAKK+C4peC4sOC5gOC4peC4suC4sOC4peC4sOC4peC4reC4hwor4Lil4Liw4LmA4Lil4Li04LiHCivguKXguLDguYDguKXguLXguKLguJQKK+C4peC4sOC5gOC4peC4teC4ouC4mgor4Lil4Liw4LmA4Lil4Li34Lit4LiBCivguKXguLDguYTguKXguYkKK+C4peC4sOC4p+C4pQor4Lil4Liw4Lin4LmJ4LitCivguKXguLDguKfguYnguLIKK+C4peC4sOC4p+C4suC4hwor4Lil4Liw4Lin4Liy4LiUCivguKXguLDguYDguKfguIcKK+C4peC4sOC5gOC4p+C5ieC4mQor4Lil4Liw4LmB4Lin4LiBCivguKXguLDguYLguKfguYkKK+C4peC4sOC4q+C4oeC4suC4lAor4Lil4Liw4Lir4Lih4Liy4LiU4LiN4Liy4LiZ4Liy4LiL4Liw4Liu4LmMCivguKXguLDguKvguKXguLHguJQKK+C4peC4sOC4q+C5ieC4reC4ogor4Lil4Liw4Lir4Liy4LiZCivguKXguLDguKvguLjguYjguIcKK+C4peC4sOC5gOC4q+C4ogor4Lil4Liw4LmA4Lir4Li14LmI4LiiCivguKXguLDguK3guIfguKXguLDguKHguLHguYjguIcKK+C4peC4sOC4reC4reC4hwor4Lil4Liw4Lit4Liy4LiiCivguKXguLDguYDguK3guLXguKLguJQKK+C4peC4sOC5gOC4reC4teC4ouC4lOC4peC4reC4rQor4Lil4Liw4LmB4Lit4LiZCivguKXguLHguIEKK+C4peC4seC4geC5hOC4geC5iAor4Lil4Lix4LiB4LiC4LiT4LiwCivguKXguLHguIHguILguJPguLIKK+C4peC4seC4geC4guC4sAor4Lil4Lix4LiB4LiC4Li1CivguKXguLHguIHguYDguITguYnguLIKK+C4peC4seC4geC4iOC4seC5iOC4mQor4Lil4Lix4LiB4Lib4Li04LiU4Lil4Lix4LiB4LmA4Lib4Li04LiUCivguKXguLHguIHguJ7guLIKK+C4peC4seC4geC5gOC4nuC4qAor4Lil4Lix4LiB4Lii4Li04LmJ4LihCivguKXguLHguIHguKXguK3guJoKK+C4peC4seC4geC4peC4seC5iOC4mQor4Lil4Lix4LiB4Lil4Liy4LiiCivguKXguLHguIHguYDguKXguLXguKLguKEKK+C4peC4seC4geC4qOC4ngor4Lil4Lix4LiB4Lip4LiTLQor4Lil4Lix4LiB4Lip4LiT4LiZ4Liy4LihCivguKXguLHguIHguKnguJPguLAKK+C4peC4seC4geC4qeC4k+C4suC4geC4suC4owor4Lil4Lix4LiB4Lip4Lih4LiT4LmMCivguKXguLHguIHguKnguKHguLLguJPguLIKK+C4peC4seC4geC4qeC4oeC4tQor4Lil4Lix4LiB4Lip4LiwCivguKXguLHguIHguKrguKPguYnguK3guKIKK+C4peC4seC4geC4quC4tQor4Lil4Lix4LiB4Lir4Lil4Lix4LiaCivguKXguLHguITguITguLAKK+C4peC4seC4hOC4mS0KK+C4peC4seC4hOC4meC5jAor4Lil4Lix4LiE4LiZ4LiyCivguKXguLHguIcKK+C4peC4seC5iOC4hwor4Lil4Lix4LiH4LiB4LiyCivguKXguLHguIfguITguLQKK+C4peC4seC4h+C4hOC4tQor4Lil4Lix4LiH4LiW4Li24LiHCivguKXguLHguIfguKXguK3guIcKK+C4peC4seC4h+C5gOC4pQor4Lil4Lix4LiH4Liq4Liy4LiUCivguKXguLHguIrguIrguLIKK+C4peC4seC4iuC4iuC4tQor4Lil4Lix4LiN4LiI4LmMCivguKXguLHguI3guIjguIHguKMKK+C4peC4seC4jeC4iQor4Lil4Lix4LiN4LiJ4LiB4LijCivguKXguLHguI3guInguJnguYwKK+C4peC4seC4kOC4tAor4Lil4Lix4LiQ4Li04LiB4LiyCivguKXguLHguJQKK+C4peC4seC4lOC4meC4tOC5ieC4p+C4oeC4t+C4rQor4Lil4Lix4LiU4LmA4LiZ4Li34LmJ4LitCivguKXguLHguJTguYDguKXguLLguLAKK+C4peC4seC4lOC5geC4peC4hwor4Lil4Lix4LiU4Lin4LiH4LiI4LijCivguKXguLHguJTguLIKK+C4peC4seC4l+C4mOC5jAor4Lil4Lix4LiX4LiY4Li0CivguKXguLHguJkKK+C4peC4seC5iOC4mQor4Lil4Lix4LmI4LiZ4LiB4Li44LiN4LmB4LiICivguKXguLHguYjguJnguYTguIEKK+C4peC4seC5iOC4meC4huC5ieC4reC4hwor4Lil4Lix4LmI4LiZ4LiU4Liy4LilCivguKXguLHguJnguYDguJUKK+C4peC4seC4meC5gOC4leC4sgor4Lil4Lix4LiZ4LmE4LiVCivguKXguLHguYjguJnguJbguLHguJkKK+C4peC4seC5iOC4meC4l+C4oQor4Lil4Lix4LiZ4LiX4Lin4LiiCivguKXguLHguJnguYLguJfguKEKK+C4peC4seC5iOC4meC4meC4gQor4Lil4Lix4LmI4LiZ4Lib4Liy4LiBCivguKXguLHguYjguJnguKfguLLguIjguLIKK+C4peC4seC4mgor4Lil4Lix4Lia4LiV4LiyCivguKXguLHguJrguJvguLLguIEKK+C4peC4seC4muC4neC4teC4m+C4suC4gQor4Lil4Lix4Lia4Lil4Lih4LiE4Lih4LmD4LiZCivguKXguLHguJrguKXguYjguK0KK+C4peC4seC4muC5hiDguKXguYjguK3guYYKK+C4peC4seC4muC4peC4teC5iQor4Lil4Lix4Lia4LmB4LilCivguKXguLHguJrguKrguKHguK3guIcKK+C4peC4seC4muC4q+C4peC4seC4hwor4Lil4Lix4Lia4Lir4Li5CivguKXguLHguJ7guJjguYwKK+C4peC4seC4nuC4mOC4tAor4Lil4Lix4LigCivguKXguLHguKDguJnguLAKK+C4peC4seC4oOC4ouC5jAor4Lil4Lix4Lih4Lie4LmMCivguKXguLHguKIKK+C4peC4seC4oi0KK+C4peC4seC4ouC4geC4suC4pQor4Lil4Lix4Lii4LiE4LiVCivguKXguLIKK+C4peC5iOC4sgor4Lil4LmJ4LiyCivguKXguLLguIEKK+C4peC4suC4geC4guC5ieC4suC4hwor4Lil4Liy4LiB4Lip4LiyCivguKXguLLguIHguYDguKrguYnguJkKK+C4peC4suC4geC4q+C4meC4suC4oeC4iOC4uOC4geC4iuC5iOC4reC4hwor4Lil4Liy4LiC4LiyCivguKXguLLguILguYnguLLguKfguJ7guKPguLAKK+C4peC4suC4hwor4Lil4LmI4Liy4LiHCivguKXguYnguLLguIcKK+C4peC4suC4h+C4hOC4seC4pQor4Lil4LmJ4Liy4LiH4LmB4LiE4LmJ4LiZCivguKXguLLguIfguIfguLTguJQKK+C4peC5ieC4suC4h+C4l+C5ieC4reC4hwor4Lil4Liy4LiH4LiX4Li1CivguKXguLLguIfguYDguJnguLfguYnguK3guIrguK3guJrguKXguLLguIfguKLguLIKK+C4peC5ieC4suC4h+C4m+C4suC4gQor4Lil4LmJ4Liy4LiH4Lib4LmI4Liy4LiK4LmJ4LiyCivguKXguYnguLLguIfguJzguKXguLLguI0KK+C4peC5ieC4suC4h+C5hOC4nuC5iAor4Lil4LmJ4Liy4LiH4Lih4Li34LitCivguKXguLLguIfguKXguLTguIcKK+C4peC5ieC4suC4h+C5guC4peC4gQor4Lil4LmJ4Liy4LiH4Liq4Lih4Lit4LiHCivguKXguLLguIfguKrguLLguJQKK+C4peC5ieC4suC4h+C4reC4suC4ogor4Lil4Liy4LiH4Liy4LiUCivguKXguYnguLLguIfguLLguJQKK+C4peC4suC5gOC4h+C5h+C4lAor4Lil4Liy4LiKCivguKXguLLguIrguLIKK+C4peC4suC4jQor4Lil4Liy4LiN4LiX4Lix4LiBCivguKXguLLguJQKK+C4peC4suC4lOC5gOC4guC4sgor4Lil4Liy4LiU4LiV4Lij4Liw4LmA4Lin4LiZCivguKXguLLguJTguJfguKfguLXguJsKK+C4peC4suC4lOC5gOC4lwor4Lil4Liy4LiU4Lie4Lij4Liw4Lia4Liy4LiXCivguKXguLLguJTguKLguLLguIcKK+C4peC4suC4lOC5gOC4peC4sgor4Lil4LmJ4Liy4LiV4LmJ4LiyCivguKXguLLguJXguLLguKIKK+C4peC5iOC4suC5gOC4leC4teC4ouC4hwor4Lil4LmJ4Liy4LmA4LiV4Li14Lii4LiHCivguKXguLLguJkKK+C4peC5iOC4suC4mQor4Lil4LmJ4Liy4LiZCivguKXguLLguJoKK+C4peC4suC4mwor4Lil4Liy4Lie4Lij4Lij4Lip4LiyCivguKXguLLguJ7guK3guJkKK+C4peC4suC4nuC4uAor4Lil4Liy4Lie4Li44LiKCivguKXguLLguYDguJ4KK+C4peC4suC5gOC4nuC4sgor4Lil4Liy4LigCivguKXguLLguKDguKHguLTguITguKfguKPguYTguJTguYkKK+C4peC4suC4oQor4Lil4LmI4Liy4LihCivguKXguLLguKHguIEKK+C4peC4suC4oeC4m+C4suC4oQor4Lil4Liy4Lih4Lil4Lin4LiZCivguKXguLLguKIKK+C4peC5ieC4suC4ogor4Lil4Liy4Lii4LiC4Lix4LiUCivguKXguLLguKLguITguKPguLLguKEKK+C4peC4suC4ouC4leC4sgor4Lil4Liy4Lii4LmA4LiX4LioCivguKXguLLguKLguYHguJfguIcKK+C4peC4suC4ouC4meC5ieC4swor4Lil4Liy4Lii4LiZ4LmJ4Liz4LiX4Lit4LiHCivguKXguLLguKLguJ7guKPguLDguKvguLHguJXguJbguYwKK+C4peC4suC4ouC4nuC4suC4lOC4geC4peC4reC4mQor4Lil4Liy4Lii4Lih4Li34LitCivguKXguLLguKLguKHguLfguK3guIrguLfguYjguK0KK+C4peC4suC4ouC5hOC4oeC5iQor4Lil4Liy4Lii4Lil4Lix4LiB4Lip4LiT4LmMCivguKXguLLguKLguKrguK0KK+C4peC4suC4ouC4quC4reC4hwor4Lil4Liy4Lii4Liq4Liy4LiaCivguKXguLLguKLguKrguLfguK0KK+C4peC4suC4ouC4reC4ouC5iOC4suC4hwor4Lil4Liy4Lii4Liu4LmI4LitCivguKXguLLguYLguKPguIcKK+C4peC4suC4peC4meC4sAor4Lil4Liy4Lil4LiqCivguKXguLLguKXguLIKK+C4peC4suC5guC4peC4gQor4Lil4Liy4LinCivguKXguLLguKfguIEKK+C4peC4suC4p+C4seC4k+C4ouC5jAor4Lil4Liy4Lin4LiyCivguKXguLLguKrguJnguLAKK+C4peC5ieC4suC4quC4oeC4seC4ogor4Lil4Liy4Liq4Li04LiB4LiC4LiyCivguKXguYnguLLguKvguKXguLHguIcKK+C4peC4swor4Lil4LmI4LizCivguKXguYnguLMKK+C4peC4s+C4geC4o+C4sOC5guC4lOC4hwor4Lil4Liz4LiB4Lil4LmJ4Lit4LiHCivguKXguLPguYDguILguYfguI0KK+C4peC4s+C5geC4ggor4Lil4Liz4LmB4LiC4LmJ4LiHCivguKXguLPguYDguITguYfguI0KK+C4peC4s+C5gOC4hOC4t+C4reC4hwor4Lil4Liz4LiH4Liy4LiUCivguKXguLPguYDguIjguLXguKLguIEKK+C4peC4s+C5gOC4iOC4teC4ouC4geC4q+C4meC4uQor4Lil4Liz4LiU4Lin4LiZCivguKXguLPguJTguLHguJoKK+C4peC4s+C4leC4seC4lAor4Lil4Liz4LiY4Liy4LijCivguKXguLPguJnguLHguIEKK+C4peC4s+C4meC4swor4Lil4Liz4LmA4LiZ4LiyCivguKXguLPguJrguK3guIcKK+C4peC4s+C4muC4suC4gQor4Lil4Liz4Lia4Li4CivguKXguLPguJvguLMKK+C4peC4s+C4nuC4p+C4mQor4Lil4Liz4Lie4Lit4LiHCivguKXguLPguJ7guLHguIcKK+C4peC4s+C4nuC4uQor4Lil4Liz4Lie4Li54LmI4LiB4Lix4LiZCivguKXguLPguYDguJ7guYfguI0KK+C4peC4s+C5gOC4nuC4sgor4Lil4Liz4LmB4Lie4LiHCivguKXguLPguYHguJ7guJkKK+C4peC4s+C5guC4nuC4hwor4Lil4Liz4LmE4Lie4LmICivguKXguLPguKDguLjguILguLHguJkKK+C4peC4s+C4oeC4sOC4peC4reC4gQor4Lil4Liz4Lih4Liy4LiUCivguKXguLPguKHguLLguJoKK+C4peC4s+C5gOC4oeC4suC4sAor4Lil4Liz4LmA4Lih4Li14Lii4LiaCivguKXguLPguKLguK3guIcKK+C4peC4s+C4ouC4sgor4Lil4Liz4LmE4LiiCivguKXguLPguKXguK3guIcKK+C4peC5iOC4s+C4peC4sgor4Lil4Liz4Lil4Liy4LiaCivguKXguLPguKXguLMKK+C4peC4s+C4peC4tuC4gQor4Lil4Liz4LmA4Lil4Liy4LiwCivguKXguLPguYDguKXguLTguIEKK+C4peC5ieC4s+C5gOC4peC4tOC4qAor4Lil4Liz4LmA4Lil4Li14Lii4LiHCivguKXguLPguYDguKXguLXguKLguJoKK+C4peC4s+C5gOC4p+C4teC4ouC4hwor4Lil4Liz4LmA4Lin4Li14Lii4LiZCivguKXguYjguLPguKrguLHguJkKK+C4peC4s+C5gOC4quC4sgor4Lil4Liz4LmE4Liq4LmJCivguKXguLPguKvguJnguLHguIEKK+C4peC5ieC4s+C4q+C4meC5ieC4sgor4Lil4Liz4Lir4LmJ4Lin4LiiCivguKXguLPguKvguLHguIHguKXguLPguYLguITguYjguJkKK+C4peC4s+C4reC4uOC4lAor4Lil4Liz4LmA4Lit4Li14Lii4LiBCivguKXguLPguYDguK3guLXguKLguIcKK+C4peC4s+C5guC4reC4hwor4Lil4Li0CivguKXguLTguIHguILguLIKK+C4peC4tOC4geC5hOC4meC4leC5jAor4Lil4Li04LiB4Lip4LiyCivguKXguLTguIHguLjguIgKK+C4peC4tOC5gOC4gQor4Lil4Li04LiC4LiZ4LiwCivguKXguLTguILguKrguLTguJfguJjguLTguYwKK+C4peC4tOC4guC4tOC4lQor4Lil4Li04LiHCivguKXguLTguIfguITguYwKK+C4peC4tOC4h+C4iOC4uOC5iOC4mQor4Lil4Li04LiH4LiK4Li04LiH4Lir4Lil4Lix4LiBCivguKXguLTguIfguJXguIHguJXguYnguJnguYTguKHguYkKK+C4peC4tOC4h+C4peC4oQor4Lil4Li04LiH4LmC4Lil4LiUCivguKXguLTguIfguKvguKXguK3guIHguYDguIjguYnguLIKK+C4peC4tOC4lAor4Lil4Li04LiU4LiV4Li14LiZ4Lib4Li5CivguKXguLTguJTguKPguK3guJkKK+C4peC4tOC4lQor4Lil4Li04LiV4Lih4Lix4LiqCivguKXguLTguJXguKMKK+C4peC4tOC5gOC4l+C4teC4ouC4oQor4Lil4Li04LmI4LiZCivguKXguLTguYnguJkKK+C4peC4tOC5ieC4meC4geC4o+C4sOC4lOC5ieC4suC4h+C4hOC4suC4h+C5geC4guC5h+C4hwor4Lil4Li04LmJ4LiZ4LiB4Lij4Liw4Lia4Li34LitCivguKXguLTguJnguYLguIHguKPguKIKK+C4peC4tOC5ieC4meC5hOC4geC5iAor4Lil4Li04LmJ4LiZ4LiE4Lin4Liy4LiiCivguKXguLTguYnguJnguIfguLnguYDguKvguYjguLIKK+C4peC4tOC4meC4iOC4hwor4Lil4Li04LmJ4LiZ4LiI4Liw4LiB4Lin4LiUCivguKXguLTguYnguJnguIjguLXguYgKK+C4peC4tOC5ieC4meC4iuC4seC4gQor4Lil4Li04LmI4LiZ4LiV4LmJ4LiZCivguKXguLTguYnguJnguJXguKfguLHguJTguJbguLbguIfguKvguLkKK+C4peC4tOC5ieC4meC4leC4sOC4geC4p+C4lAor4Lil4Li04LmJ4LiZ4LiX4Lit4LiHCivguKXguLTguYjguJnguJfguLDguYDguKUKK+C4peC4tOC5ieC4meC4l+C4sOC5gOC4pQor4Lil4Li04LmJ4LiZ4Lib4Li14LmICivguKXguLTguYnguJnguKHguLHguIfguIHguKMKK+C4peC4tOC5ieC4meC5hOC4oeC5iOC4oeC4teC4geC4o+C4sOC4lOC4ueC4gQor4Lil4Li04LmJ4LiZ4Lil4LihCivguKXguLTguYnguJnguKXguLHguIfguIHguLIKK+C4peC4tOC4meC4peC4sgor4Lil4Li04LiZ4Lil4Liy4LiB4Lij4Liw4LiX4Li44LmI4LihCivguKXguLTguJnguKXguLLguIHguKPguLDguJrguLXguYgKK+C4peC4tOC5ieC4meC4peC4suC4ogor4Lil4Li04LiZ4Liq4Li14LiUCivguKXguLTguYnguJnguYDguKrguLfguK0KK+C4peC4tOC5ieC4meC4q+C4oeC4sgor4Lil4Li04LmI4LiZ4Liu4Li34LmJ4LitCivguKXguLTguJnguLTguJkKK+C4peC4tOC4mgor4Lil4Li04Lia4Lil4Lix4LiaCivguKXguLTguJrguKXguLTguYjguKcKK+C4peC4tOC4m+C4lOC4sgor4Lil4Li04Lib4LiV4LmMCivguKXguLTguJvguKrguJXguLTguIEKK+C4peC4tOC4m+C4tAor4Lil4Li04Lib4Li04LiB4LijCivguKXguLTguJvguLTguIHguLLguKMKK+C4peC4tOC4n+C4leC5jAor4Lil4Li04LmA4Lig4LiyCivguKXguLTguYjguKEKK+C4peC4tOC5ieC4oQor4Lil4Li04Lih4Lib4LmMCivguKXguLTguKHguJvguJnguLAKK+C4peC4tOC4peC4tOC4lQor4Lil4Li04LinCivguKXguLTguYjguKcKK+C4peC4tOC4quC4hwor4Lil4Li1CivguKXguLXguYgKK+C4peC4teC5iQor4Lil4Li14LiL4LitCivguKXguLXguJoKK+C4peC4teC5ieC4peC4seC4mgor4Lil4Li14Lil4LiyCivguKXguLXguKXguLLguIHguKPguLDguJfguLjguYjguKEKK+C4peC4teC4peC4suC4qAor4Lil4Li14Lis4Lir4LiyCivguKXguLbguIEKK+C4peC4tuC4geC4i+C4tuC5ieC4hwor4Lil4Li24LiB4Lil4Lix4LiaCivguKXguLbguIHguKXguYnguLMKK+C4peC4tuC4h+C4hOC5jAor4Lil4Li24LiH4LiE4LmM4LiZ4Liy4Lii4Lie4Lij4Liy4LiZCivguKXguLfguJQKK+C4peC4t+C5iOC4mQor4Lil4Li34LmJ4LiZCivguKXguLfguJoKK+C4peC4t+C4oQor4Lil4Li34Lih4LiV4LiZCivguKXguLfguKHguJXguYnguJkKK+C4peC4t+C4oeC4leC4seC4pwor4Lil4Li34Lih4LiV4LiyCivguKXguLfguK0KK+C4peC4t+C5iOC4rQor4Lil4Li34LmJ4LitCivguKXguLfguK3guIrguLIKK+C4peC4t+C4reC4iuC4suC4m+C4o+C4suC4geC4jwor4Lil4Li34LmI4Lit4LiK4Li34LmI4LitCivguKXguLfguK3guKrguLLguKIKK+C4peC4uAor4Lil4Li44LiBCivguKXguLjguIHguKXguJkKK+C4peC4uOC4geC4peC4suC4oQor4Lil4Li44LiB4Lil4Li14LmJ4Lil4Li44LiB4Lil4LiZCivguKXguLjguIHguK7guLfguK0KK+C4peC4uOC5geC4geC5iOC5guC4l+C4qQor4Lil4Li44LmB4LiB4LmI4Lit4Liz4LiZ4Liy4LiICivguKXguLjguIcKK+C4peC4uOC5ieC4hwor4Lil4Li44LiVCivguKXguLjguJcKK+C4peC4uOC4l+C4geC4sAor4Lil4Li44LiX4LiY4LmMCivguKXguLjguYjguJkKK+C4peC4uOC5iOC4meC5hgor4Lil4Li44LmI4LiZ4LiV4Li44LmJ4LiZCivguKXguLjguYjguJnguYLguJXguIcKK+C4peC4uOC4m+C4leC5jAor4Lil4Li44Lie4LiY4LmMCivguKXguLjguJ7guJjguIHguLAKK+C4peC4uOC5iOC4oQor4Lil4Li44LmI4Lih4LmGIOC4lOC4reC4meC5hgor4Lil4Li44LmI4Lih4LiZ4LmJ4LizCivguKXguLjguYjguKHguYDguJnguLfguYnguK0KK+C4peC4uOC4oeC4m+C5jAor4Lil4Li44Lih4Lie4Li1CivguKXguLjguKHguJ7guLkKK+C4peC4uOC5iOC4oeC5gOC4peC5ieC4sgor4Lil4Li44LmI4Lih4Lir4Lil4LiHCivguKXguLjguKIKK+C4peC4uOC5iOC4ogor4Lil4Li44LmJ4LiiCivguKXguLjguYjguKLguKvguLkKK+C4peC4uOC4peC5iOC4p+C4hwor4Lil4Li44Lil4Liy4LiiCivguKXguLjguKrguLIKK+C4peC4uOC4reC4s+C4meC4suC4iAor4Lil4Li54LmICivguKXguLnguIEKK+C4peC4ueC4geC4geC4gQor4Lil4Li54LiB4LiB4Lij4LiHCivguKXguLnguIHguIHguKPguK3guIEKK+C4peC4ueC4geC4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4Lil4Li54LiB4LiB4Lij4Liw4Lie4Lij4Lin4LiZCivguKXguLnguIHguIHguKPguLDguYHguK3guKEKK+C4peC4ueC4geC4geC4peC4reC4mQor4Lil4Li54LiB4LiB4Lil4Li04LmJ4LiHCivguKXguLnguIHguIHguKfguLLguJQKK+C4peC4ueC4geC4geC4sOC5guC4peC5iAor4Lil4Li54LiB4LiB4Liw4LmB4LitCivguKXguLnguIHguIHguLHguKXguJvguJ7guKTguIHguKnguYwKK+C4peC4ueC4geC5geC4geC5ieC4pwor4Lil4Li54LiB4LmC4LiB4Lil4LiZCivguKXguLnguIHguYTguIHguYgKK+C4peC4ueC4geC5hOC4geC5iOC4reC4ouC4ueC5iOC5g+C4meC4geC4s+C4oeC4t+C4rQor4Lil4Li54LiB4LiC4Lin4Lix4LiNCivguKXguLnguIHguILguLHguJQKK+C4peC4ueC4geC4guC5iOC4suC4hwor4Lil4Li54LiB4LiC4LmJ4Liy4LinCivguKXguLnguIHguILguLjguJkKK+C4peC4ueC4geC4guC4uOC4mSDguJMg4Lio4Liy4Lil4Lir4Lil4Lin4LiHCivguKXguLnguIHguILguLjguJkg4LiTIOC4qOC4suC4peC4sgor4Lil4Li54LiB4LiC4Li44LiZ4Lie4Lil4Lit4Lii4Lie4Lii4Lix4LiBCivguKXguLnguIHguYDguILguKIKK+C4peC4ueC4geC5gOC4guC4ouC4leC4suC4ouC5geC4oeC5iOC4ouC4suC4ouC4iuC4seC4geC4m+C4o+C4gQor4Lil4Li54LiB4LmA4LiC4Lii4LiV4Liy4Lii4LmB4Lih4LmI4Lii4Liy4Lii4LiX4Liz4Lio4LieCivguKXguLnguIHguITguKPguK3guIEKK+C4peC4ueC4geC4hOC4o+C4tuC5iOC4hwor4Lil4Li54LiB4LiE4Lil4Lix4LiBCivguKXguLnguIHguITguKfguLLguKEKK+C4peC4ueC4geC4hOC4rQor4Lil4Li54LiB4LiE4Lit4LiBCivguKXguLnguIHguITguLHguJkKK+C4peC4ueC4geC4hOC5ieC4sgor4Lil4Li54LiB4LiE4LizCivguKXguLnguIHguITguLTguJQKK+C4peC4ueC4geC5gOC4hOC4peC5ieC4sgor4Lil4Li54LiB4LiG4LmJ4Lit4LiHCivguKXguLnguIHguIjguYrguK3guIEKK+C4peC4ueC4geC4iOC5ieC4suC4hwor4Lil4Li54LiB4LmA4LiI4Li14LmK4Lii4LiaCivguKXguLnguIHguIrguYjguKfguIcKK+C4peC4ueC4geC4iuC5ieC4suC4hwor4Lil4Li54LiB4LiK4Li04LiUCivguKXguLnguIHguIrguLTguYnguJkKK+C4peC4ueC4geC5guC4i+C5iAor4Lil4Li54LiB4LiU4Lit4LiBCivguKXguLnguIHguJTguLTguYjguIcKK+C4peC4ueC4geC5guC4lOC4lAor4Lil4Li54LiB4LiV4Lix4LmJ4LiHCivguKXguLnguIHguJXguLjguYnguKEKK+C4peC4ueC4geC5gOC4leC5ieC4sgor4Lil4Li54LiB4LmA4LiV4LmL4LiyCivguKXguLnguIHguYHguJXguIEKK+C4peC4ueC4geC4luC5ieC4p+C4ogor4Lil4Li54LiB4LmA4LiW4Li34LmI4Lit4LiZCivguKXguLnguIHguYHguJbguKcKK+C4peC4ueC4geC4l+C4reC4ogor4Lil4Li54LiB4LiX4LmI4Liy4LiZ4Lir4Lil4Liy4LiZ4LmA4LiY4LitCivguKXguLnguIHguJfguLjguYjguIcKK+C4peC4ueC4geC5gOC4mOC4rQor4Lil4Li54LiB4LiZ4LmJ4Lit4LiHCivguKXguLnguIHguJnguLIKK+C4peC4ueC4geC4meC5ieC4swor4Lil4Li54LiB4LiZ4Li04Lih4Li04LiVCivguKXguLnguIHguJrguJcKK+C4peC4ueC4geC4muC4p+C4mgor4Lil4Li54LiB4Lia4LmJ4Liy4LiZCivguKXguLnguIHguJrguLLguKjguIHguYwKK+C4peC4ueC4geC4muC4tOC4lAor4Lil4Li54LiB4Lia4Li44LiN4LiY4Lij4Lij4LihCivguKXguLnguIHguYDguJrguLXguYnguKLguKcKK+C4peC4ueC4geC4m+C4o+C4sOC4hOC4mgor4Lil4Li54LiB4Lib4Lij4Liw4LiE4LizCivguKXguLnguIHguJvguKPguLDguITguLPguJzguLUKK+C4peC4ueC4geC4m+C4o+C4sOC4quC4oQor4Lil4Li54LiB4Lib4Lij4Liw4Liq4Lix4LiBCivguKXguLnguIHguJvguKPguLDguKvguKXguYjguLMKK+C4peC4ueC4geC4m+C4o+C4suC4ogor4Lil4Li54LiB4Lib4Lil4LiwCivguKXguLnguIHguJvguKXguLIKK+C4peC4ueC4geC4m+C4sOC4geC4mQor4Lil4Li54LiB4Lib4Lix4LiUCivguKXguLnguIHguJvguLIKK+C4peC4ueC4geC4m+C5iOC4sgor4Lil4Li54LiB4Lib4Li34LiZCivguKXguLnguIHguJvguLfguJnguYPguKvguI3guYgKK+C4peC4ueC4geC5geC4mwor4Lil4Li54LiB4LmC4Lib4LmI4LiHCivguKXguLnguIHguYLguJvguYjguIfguKrguKfguKPguKPguITguYwKK+C4peC4ueC4geC4nOC4quC4oQor4Lil4Li54LiB4Lic4Lix4LiB4LiK4Li1CivguKXguLnguIHguJzguLXguKXguLnguIHguITguJkKK+C4peC4ueC4geC4nOC4ueC5ieC4iuC4suC4ogor4Lil4Li54LiB4Lic4Li54LmJ4LiZ4LmJ4Lit4LiHCivguKXguLnguIHguJzguLnguYnguJ7guLXguYgKK+C4peC4ueC4geC4nOC4ueC5ieC4q+C4jeC4tOC4hwor4Lil4Li54LiB4LmE4Lic4LmICivguKXguLnguIHguJ3guLLguYHguJ3guJQKK+C4peC4ueC4geC5geC4neC4lAor4Lil4Li54LiB4Lie4Lij4Lin4LiZCivguKXguLnguIHguJ7guKPguLTguIEKK+C4peC4ueC4geC4nuC4peC4uQor4Lil4Li54LiB4Lie4Li14LmICivguKXguLnguIHguJ7guLXguYjguKXguLnguIHguJnguYnguK3guIcKK+C4peC4ueC4geC4n+C4seC4gQor4Lil4Li54LiB4Lif4Li54LiBCivguKXguLnguIHguYTguJ8KK+C4peC4ueC4geC4oeC5guC4q+C4leC4owor4Lil4Li54LiB4Lih4Liw4Lir4Lin4LiUCivguKXguLnguIHguKHguLLguJQKK+C4peC4ueC4geC4oeC4t+C4rQor4Lil4Li54LiB4LmC4Lih4LmICivguKXguLnguIHguYTguKHguYkKK+C4peC4ueC4geC5hOC4oeC5ieC4q+C4peC5iOC4meC5hOC4oeC5iOC5hOC4geC4peC4leC5ieC4mQor4Lil4Li54LiB4Lii4LitCivguKXguLnguIHguKLguYjguLLguIcKK+C4peC4ueC4geC4ouC4suC5gOC4mOC4rQor4Lil4Li54LiB4LmC4Lii4LiZCivguKXguLnguIHguKPguK3guIEKK+C4peC4ueC4geC4o+C4sOC4oeC4suC4qAor4Lil4Li54LiB4Lij4Lix4LiHCivguKXguLnguIHguKPguLjguYjguKIKK+C4peC4ueC4geC5gOC4o+C4t+C4rQor4Lil4Li54LiB4Lil4LihCivguKXguLnguIHguKXguYnguK0KK+C4peC4ueC4geC4peC5iOC4sgor4Lil4Li54LiB4LmA4Lil4LmI4LiZCivguKXguLnguIHguYDguKXguLXguYnguKLguIcKK+C4peC4ueC4geC5geC4peC5iOC4hwor4Lil4Li54LiB4LmC4Lil4LiBCivguKXguLnguIHguYTguKXguYgKK+C4peC4ueC4geC4p+C4seC4lAor4Lil4Li54LiB4Lio4Li04Lip4Lii4LmMCivguKXguLnguIHguKrguKHguKDguLLguKPguKvguKXguLLguJnguYDguIjguYnguLLguKfguLHguJQKK+C4peC4ueC4geC4quC4oeC4uOC4mQor4Lil4Li54LiB4Liq4Lin4Lij4Lij4LiE4LmMCivguKXguLnguIHguKrguKfguLLguJcKK+C4peC4ueC4geC4quC4sOC4muC5ieC4sgor4Lil4Li54LiB4Liq4Liw4LmD4Lig4LmJCivguKXguLnguIHguKrguLHguIfguIHguLDguKrguLUKK+C4peC4ueC4geC4quC4ueC4mgor4Lil4Li54LiB4LmA4Liq4Li34LitCivguKXguLnguIHguKvguJnguLXguYkKK+C4peC4ueC4geC4q+C4meC4uQor4Lil4Li54LiB4Lir4Lih4LiUCivguKXguLnguIHguKvguKHguYnguK0KK+C4peC4ueC4geC4q+C4oeC4suC4gQor4Lil4Li54LiB4Lir4Lih4Li54LmICivguKXguLnguIHguKvguKXguIcKK+C4peC4ueC4geC4q+C4peC4p+C4hwor4Lil4Li54LiB4Lir4Liy4LiaCivguKXguLnguIHguKvguLTguJkKK+C4peC4ueC4geC4q+C4tOC4meC4muC4lAor4Lil4Li54LiB4Lir4Li14LiaCivguKXguLnguIHguYDguKvguYfguJoKK+C4peC4ueC4geC5geC4qwor4Lil4Li54LiB4LmB4Lir4LiH4LmICivguKXguLnguIHguK3guKEKK+C4peC4ueC4geC5gOC4reC5h+C4mQor4Lil4Li54LiB4LmA4Lit4LmH4LilCivguKXguLnguILguLAKK+C4peC4ueC4leC4sgor4Lil4Li54LiV4Li04LiB4LiyCivguKXguLnguYjguJfguLLguIcKK+C4peC4ueC4l+C4teC5gOC4iuC4teC4ouC4oQor4Lil4Li54LiZ4LiwCivguKXguLnguJoKK+C4peC4ueC4muC4hOC4oQor4Lil4Li54Lia4LiE4Lil4LizCivguKXguLnguJrguJXguLHguKcKK+C4peC4ueC4muC5hOC4peC5iQor4Lil4Li54Lia4Lir4LiZ4LmJ4Liy4Lib4Liw4LiI4Lih4Li54LiBCivguKXguLnguYjguKvguKXguLXguYgKK+C5gOC4peC4gQor4LmA4Lil4LmH4LiBCivguYDguKXguYfguIHguJTguLIKK+C5gOC4peC5h+C4geC4meC5ieC4reC4ogor4LmA4Lil4LmH4LiB4Lie4Lij4Li04LiB4LiC4Li14LmJ4Lir4LiZ4Li5CivguYDguKXguIHguKfguLHguJQKK+C5gOC4peC4ggor4LmA4Lil4LiC4LiB4LiwCivguYDguKXguILguITguJPguLTguJUKK+C5gOC4peC4guC4iOC4s+C4meC4p+C4mQor4LmA4Lil4LiC4LiK4Li14LmJ4LiB4Liz4Lil4Lix4LiHCivguYDguKXguILguYLguJTguJQKK+C5gOC4peC4guC4meC4sAor4LmA4Lil4LiC4Lic4LiyCivguYDguKXguILguKLguLAKK+C5gOC4peC4guC4ouC4seC4meC4leC5jAor4LmA4Lil4LiC4Lil4Liz4LiU4Lix4LiaCivguYDguKXguILguKvguKHguLLguKIKK+C5gOC4peC4guC4sgor4LmA4Lil4LiC4Liy4LiY4Li04LiB4Liy4LijCivguYDguKXguILguLLguJnguLjguIHguLLguKMKK+C5gOC4peC5h+C4hwor4LmA4Lil4LmJ4LiHCivguYDguKXguYfguIfguKXguLHguITguJnguYwKK+C5gOC4peC5iOC4h+C4ruC4t+C5ieC4rQor4LmA4Lil4LmA4LiL4Lit4Lij4LmMCivguYDguKXguJHguJHguLgKK+C5gOC4peC4kwor4LmA4Lil4LiT4LiR4Li4CivguYDguKXguYfguJQKK+C5gOC4peC5h+C4lOC4peC4reC4lAor4LmA4Lil4LiVCivguYDguKXguJkKK+C5gOC4peC5h+C4mQor4LmA4Lil4LmI4LiZCivguYDguKXguYjguJnguIHguKUKK+C5gOC4peC5iOC4meC4geC4seC4muC5hOC4nwor4LmA4Lil4LmI4LiZ4LiC4Liy4Lii4LiC4Lit4LiHCivguYDguKXguYjguJnguITguLMKK+C5gOC4peC5iOC4meC4h+C4suC4mQor4LmA4Lil4LiZ4LiI4LiHCivguYDguKXguYjguJnguIrguLnguYkKK+C5gOC4peC5iOC4meC4leC4peC4gQor4LmA4Lil4LmI4LiZ4LiV4Lix4LinCivguYDguKXguYjguJnguYDguJrguLXguYnguKIKK+C5gOC4peC5iOC4meC4nuC4p+C4gQor4LmA4Lil4LmI4LiZ4Lie4Li04LmA4Lij4LiZ4LiX4Lij4LmMCivguYDguKXguYjguJnguYDguJ7guKXguIfguKLguLLguKcKK+C5gOC4peC5iOC4meC5gOC4nuC4t+C5iOC4reC4mQor4LmA4Lil4LmI4LiZ4LmB4Lij4LmI4LmB4Lib4Lij4LiY4Liy4LiV4Li4CivguYDguKXguYjguJnguKXguLTguYnguJkKK+C5gOC4peC4meC4quC5jAor4LmA4Lil4LiZ4Liq4LmM4LiV4Li14Lia4LmB4Liq4LiHCivguYDguKXguJnguKrguYzguJbguYjguLLguIfguYHguKrguIcKK+C5gOC4peC4meC4quC5jOC4meC4ueC4mQor4LmA4Lil4LmI4LiZ4Liq4Lin4Liy4LiXCivguYDguKXguJnguKrguYzguYDguKfguYnguLIKK+C5gOC4peC4meC4quC5jOC4quC4seC4oeC4nOC4seC4qgor4LmA4Lil4LmI4LiZ4Liq4Liz4LiZ4Lin4LiZCivguYDguKXguJnguKvguLDguKPguLUKK+C5gOC4peC5iOC4meC4q+C4seC4pwor4LmA4Lil4LmI4LiZ4Lir4Liy4LiHCivguYDguKXguYjguJnguKvguLnguYDguKXguYjguJnguJXguLIKK+C5gOC4peC5iOC4meC5gOC4reC4suC5gOC4luC4tOC4lOC5gOC4iOC5ieC4suC4peC5iOC4rQor4LmA4Lil4LmH4LiaCivguYDguKXguYfguJrguITguKPguLjguJEKK+C5gOC4peC5h+C4muC4hOC4p+C4suC4ogor4LmA4Lil4Lia4LiHCivguYDguKXguYfguJrguJnguLLguIcKK+C5gOC4peC5h+C4muC4oeC4t+C4reC4meC4suC4hwor4LmA4Lil4LmH4Lia4LmA4Lir4Lii4Li14LmI4Lii4LinCivguYDguKXguJstCivguYDguKXguJvguIHguKMKK+C5gOC4peC4m+C4meC5jAor4LmA4Lil4LmA4LibCivguYDguKXguYDguJ4KK+C5gOC4peC5gOC4nuC4peC4suC4lOC4nuC4suC4lAor4LmA4Lil4LmH4LihCivguYDguKXguYjguKEKK+C5gOC4peC5h+C4oeC4peC5iOC4sgor4LmA4Lil4LiiCivguYDguKXguKLguJXguLLguKHguYDguKXguKIKK+C5gOC4peC4ouC5gOC4luC4tOC4lAor4LmA4Lil4LinCivguYDguKXguKfguIcKK+C5gOC4peC4p+C4ueC5guC4peC4qgor4LmA4Lil4LioCivguYDguKXguKnguI/guLgKK+C5gOC4peC4qwor4LmA4Lil4LmI4Lir4LmMCivguYDguKXguYjguKvguYzguIHguKPguLDguYDguJfguYjguKvguYwKK+C5gOC4peC4q+C4ouC4sAor4LmA4Lil4Lir4Lil4Lix4LiHCivguYDguKXguKvguKXguLIKK+C5gOC4peC5iOC4q+C5jOC5gOC4q+C4peC4teC5iOC4ouC4oQor4LmA4Lil4Lir4LiwCivguYDguKXguK0KK+C5gOC4peC5iOC4rQor4LmA4Lil4Lit4Lih4Liy4LiZCivguYDguKXguYjguK3guKXguYjguLIKK+C5gOC4peC4reC4sAor4LmA4Lil4Lit4Liw4LmA4LiX4Lit4LiwCivguYDguKXguLAKK+C5gOC4peC4sOC5gOC4l+C4sAor4LmA4Lil4LiyCivguYDguKXguLLguYYKK+C5gOC4peC5iOC4sgor4LmA4Lil4LmJ4LiyCivguYDguKXguLLguIHguLHguKIKK+C5gOC4peC5iOC4suC5gOC4o+C4teC4ouC4mQor4LmA4Lil4LmI4Liy4Lil4Li34LitCivguYDguKXguYnguLLguYLguKXguKEKK+C5gOC4peC4suC4sAor4LmA4Lil4Li04LiBCivguYDguKXguLTguIHguKXguYnguKEKK+C5gOC4peC4tOC5iOC4geC4peC4seC5iOC4gQor4LmA4Lil4Li04LmJ4LiHCivguYDguKXguLTguJnguYDguKXguYjguK0KK+C5gOC4peC4tOC4qAor4LmA4Lil4Li14LiiCivguYDguKXguLXguKLguIcKK+C5gOC4peC4teC5iOC4ouC4hwor4LmA4Lil4Li14LmJ4Lii4LiHCivguYDguKXguLXguKLguIfguILguLLguKcKK+C5gOC4peC4teC5ieC4ouC4h+C5geC4guC4gQor4LmA4Lil4Li14LmJ4Lii4LiH4LiK4LmJ4Liy4LiH4LiB4Li04LiZ4LiC4Li14LmJ4LiK4LmJ4Liy4LiHCivguYDguKXguLXguYnguKLguIfguJTguLkKK+C5gOC4peC4teC5ieC4ouC4h+C4leC5ieC4reC4ogor4LmA4Lil4Li14LmJ4Lii4LiH4LmC4LiV4LmK4LiwCivguYDguKXguLXguYnguKLguIfguJvguLLguIHguYDguKXguLXguYnguKLguIfguJfguYnguK3guIcKK+C5gOC4peC4teC4ouC4h+C4nOC4sgor4LmA4Lil4Li14Lii4LiH4Lid4LmJ4Liy4LiiCivguYDguKXguLXguKLguIfguKHguLHguJkKK+C5gOC4peC4teC5ieC4ouC4h+C4o+C4seC4mgor4LmA4Lil4Li14LmJ4Lii4LiH4Lil4LiyCivguYDguKXguLXguYnguKLguIfguKXguLnguIHguYDguKrguLfguK3guKXguLnguIHguIjguKPguLDguYDguILguYkKK+C5gOC4peC4teC5ieC4ouC4h+C4quC5iOC4hwor4LmA4Lil4Li14Lii4LiZCivguYDguKXguLXguYjguKLguJkKK+C5gOC4peC4teC4ouC4meC5hOC4nwor4LmA4Lil4Li14Lii4LiaCivguYDguKXguLXguKLguJrguITguYjguLLguKIKK+C5gOC4peC4teC4ouC4muC5gOC4hOC4teC4ouC4hwor4LmA4Lil4Li14Lii4Lia4LmA4Lih4Li34Lit4LiHCivguYDguKXguLXguKLguKEKK+C5gOC4peC4teC5iOC4ouC4oQor4LmA4Lil4Li14Lii4LinCivguYDguKXguLXguYnguKLguKcKK+C5gOC4peC4teC5ieC4ouC4p+C4peC4lAor4LmA4Lil4Li34Lit4LiBCivguYDguKXguLfguK3guIHguJXguLHguYnguIcKK+C5gOC4peC4t+C4reC4geC4l+C4teC5iOC4o+C4seC4geC4oeC4seC4geC4l+C4teC5iOC4iuC4seC4hwor4LmA4Lil4Li34Lit4LiB4LiZ4Lix4LiB4Lih4Lix4LiB4LmE4LiU4LmJ4LmB4Lij4LmICivguYDguKXguLfguK3guIHguKrguKPguKMKK+C5gOC4peC4t+C4reC4hwor4LmA4Lil4Li34LmI4Lit4LiHCivguYDguKXguLfguYjguK3guIfguKXguLfguK0KK+C5gOC4peC4t+C4reC4lAor4LmA4Lil4Li34Lit4LiU4LiC4Li24LmJ4LiZ4Lir4LiZ4LmJ4LiyCivguYDguKXguLfguK3guJTguYDguILguYnguLLguJXguLIKK+C5gOC4peC4t+C4reC4lOC5gOC4meC4t+C5ieC4rQor4LmA4Lil4Li34Lit4LiU4LmA4LiZ4Li34LmJ4Lit4LmA4LiK4Li34LmJ4Lit4LmE4LiCCivguYDguKXguLfguK3guJTguYPguJnguK3guIEKK+C5gOC4peC4t+C4reC4lOC4neC4suC4lAor4LmA4Lil4Li34Lit4LiU4LmE4Lih4LmJCivguYDguKXguLfguK3guJTguYDguKLguYfguJkKK+C5gOC4peC4t+C4reC4lOC4o+C5ieC4reC4mQor4LmA4Lil4Li34Lit4LiU4Lil4LmJ4Liy4LiH4Lir4LiZ4LmJ4LiyCivguYDguKXguLfguK3guJTguK3guLjguYjguJkKK+C5gOC4peC4t+C4reC4mQor4LmA4Lil4Li34LmI4Lit4LiZCivguYDguKXguLfguYjguK3guJnguJfguLXguYgKK+C5gOC4peC4t+C5iOC4reC4meC5gOC4m+C4t+C5ieC4reC4mQor4LmA4Lil4Li34LmI4Lit4LiZ4Lil4Lit4LiiCivguYDguKXguLfguYjguK3guKEKK+C5gOC4peC4t+C5iOC4reC4oeC5g+C4qgor4LmA4Lil4Li34LmI4Lit4LiiCivguYDguKXguLfguYnguK3guKIKK+C5gOC4peC4t+C5ieC4reC4ouC4hOC4peC4suC4mQor4LmA4Lil4Li34LmJ4Lit4Lii4LmA4LiI4Li34LmJ4Lit4LiiCivguYDguKXguLfguYjguK3guKLguKXguYnguLIKK+C5geC4pQor4LmB4Lil4LmICivguYHguKXguYkKK+C5geC4peC4gQor4LmB4Lil4LmH4LiB4LmC4LiX4LiqCivguYHguKXguIHguYDguJvguKXguLXguYjguKLguJkKK+C5geC4peC4hwor4LmB4Lil4LmI4LiHCivguYHguKXguYnguIcKK+C5geC4peC4h+C4geC4tOC4meC4n+C4seC4mQor4LmB4Lil4LmI4LiH4Lie4Lij4Liw4Lij4Liy4LihCivguYHguKXguJkKK+C5geC4peC5iOC4mQor4LmB4Lil4LiZ4LiX4Liy4LiZ4Lix4LihCivguYHguKXguJoKK+C5geC4peC5ieC4pwor4LmB4Lil4LmJ4Lin4LiB4Lix4LiZCivguYHguKXguYnguKfguJTguYnguKfguKIKK+C5geC4peC5ieC4p+C5geC4leC5iAor4LmB4Lil4LmJ4Lin4LmE4LibCivguYHguKXguYnguKcuLi7guYDguKXguYjguLIKK+C5geC4peC5ieC4p+C5hiDguYDguKXguYjguLLguYYKK+C5geC4peC4sAor4LmB4Lil4Liw4LmA4Lil4LmH4LihCivguYHguKXguLDguYDguKXguLXguKLguKEKK+C5guC4peC5iAor4LmC4Lil4LmJCivguYLguKXguIEKK+C5guC4peC4gS0KK+C5guC4peC4geC5gOC4iuC4qeC4kOC5jAor4LmC4Lil4LiB4LiY4Lij4Lij4LihCivguYLguKXguIHguJjguLLguJTguLIKK+C5guC4peC4geC4mOC4suC4leC4uAor4LmC4Lil4LiB4LiZ4Liy4LiWCivguYLguKXguIHguJrguLLguKUKK+C5guC4peC4geC4ouC5jAor4LmC4Lil4LiB4Lii4LiwCivguYLguKXguIHguKfguLHguIrguIrguLAKK+C5guC4peC4geC4p+C4tOC4l+C4uQor4LmC4Lil4LiB4Liq4LiW4Li04LiV4Li0CivguYLguKXguIHguK3guLjguJTguKMKK+C5guC4peC4geC4seC4leC4luC4iOC4o+C4tOC4ouC4sgor4LmC4Lil4LiB4Lix4LiZ4LiV4Lij4LmMCivguYLguKXguIHguLHguKIKK+C5guC4peC4geC4sgor4LmC4Lil4LiB4Liy4LiY4Li04Lia4LiU4Li1CivguYLguKXguIHguLLguJjguLTguJvguYTguJXguKIKK+C5guC4peC4geC4suC4meC4uOC4p+C4seC4leC4owor4LmC4Lil4LiB4Liy4Lig4Li04Lin4Lix4LiV4LiZ4LmMCivguYLguKXguIHguLLguKHguLTguKoKK+C5guC4peC4geC4suC4ouC4seC4lQor4LmC4Lil4LiB4Liy4Lin4Li04LiZ4Liy4LioCivguYLguKXguIHguLTguKLguLAKK+C5guC4peC4geC4teC4ouC5jAor4LmC4Lil4LiB4Li14Lii4Lin4Lix4LiV4LijCivguYLguKXguIHguLjguJXguKPguJjguKPguKPguKEKK+C5guC4peC4geC4uOC4leC4o+C4sAor4LmC4Lil4LmA4LiB4LioCivguYLguKXguIcKK+C5guC4peC5iOC4hwor4LmC4Lil4LmJ4LiHCivguYLguKXguYnguIfguYLguJXguYnguIcKK+C5guC4peC5iOC4h+C5guC4luC4hwor4LmC4Lil4LiI4LiZ4LiwCivguYLguKXguJPguLAKK+C5guC4peC4lAor4LmC4Lil4LiU4LmA4LiV4LmJ4LiZCivguYLguKXguJTguJfguLDguJnguIcKK+C5guC4peC4lOC5guC4nOC4mQor4LmC4Lil4LiU4LmB4Lil4LmI4LiZCivguYLguKXguYjguJXguLTguYrguJkKK+C5guC4peC5guC4lQor4LmC4Lil4LiXCivguYLguKXguJkKK+C5guC4peC5ieC4mQor4LmC4Lil4Lib4LiwCivguYLguKXguKAKK+C5guC4peC4oOC5guC4oeC5guC4l+C4quC4seC4mQor4LmC4Lil4LihCivguYLguKXguKHguIrguLLguJXguLQKK+C5guC4peC4oeC5gOC4peC5ieC4sgor4LmC4Lil4Lih4LiwCivguYLguKXguKHguLIKK+C5guC4peC4pQor4LmC4Lil4Lil4Li44LibCivguYLguKXguYDguKUKK+C5guC4peC5ieC5gOC4peC5iQor4LmC4Lil4LmC4LilCivguYLguKXguYLguKXguYkKK+C5guC4peC4qy0KK+C5guC4peC4q+C4geC4uOC4oeC4oOC4tQor4LmC4Lil4Lir4LiwCivguYLguKXguKvguLDguYDguIjguLfguK0KK+C5guC4peC4q+C4seC4igor4LmC4Lil4Lir4Li04LiVCivguYTguKXguYgKK+C5hOC4peC5iQor4LmE4Lil4LmI4LiK4LmJ4Liy4LiHCivguYTguKXguYjguJfguLXguYjguJfguLPguKfguLHguIcKK+C5hOC4peC5iOC4meC5ieC4swor4LmE4Lil4LmI4LmA4Lia4Li14LmJ4LiiCivguYTguKXguKIKK+C5hOC4peC4peC4sgor4LmE4Lil4LmI4Lil4Li54LiB4LiG4LmJ4Lit4LiHCivguYTguKXguYDguKXguKIKK+C5hOC4peC5iOC5gOC4peC4teC5iOC4ogor4LmE4Lil4LmI4LmA4Lil4Li14Lii4LiHCivguYTguKXguYTguKXguYkKK+C5hOC4peC5iOC4reC4reC4gQor4LimCivguKbguYUKK+C4puC5heC4iuC4sgor4Lim4LmF4Liq4Liy4LiiCivguKcKK+C4p+C4gQor4Lin4LiB4LiwCivguKfguIHguLjguKUKK+C4p+C4hwor4Lin4LiH4LiB4LmMCivguKfguIfguIHguJUKK+C4p+C4h+C4geC4mgor4Lin4LiH4LiB4Lil4LihCivguKfguIfguIHguLLguKMKK+C4p+C4h+C5gOC4h+C4tOC4mQor4Lin4LiH4LiI4LijCivguKfguIfguIjguKPguJvguLTguJQKK+C4p+C4h+C4iOC4o+C5gOC4m+C4tOC4lAor4Lin4LiH4LmA4LiU4Li34Lit4LiZCivguKfguIfguJnguK3guIEKK+C4p+C4h+C5g+C4mQor4Lin4LiH4Lie4Liy4LiUCivguKfguIfguKPguLUKK+C4p+C4h+C5gOC4peC5h+C4mgor4Lin4LiH4Lin4Lix4LiHCivguKfguIfguYDguKfguLXguKLguJkKK+C4p+C4h+C4qC0KK+C4p+C4h+C4qOC5jAor4Lin4LiH4Lio4LiB4LijCivguKfguIfguKjguYzguKfguLLguJkKK+C4p+C4h+C4qOC4sgor4Lin4LiH4Lio4Liy4LiE4LiT4Liy4LiN4Liy4LiV4Li0CivguKfguIfguKnguYwKK+C4p+C4h+C5geC4q+C4p+C4mQor4Lin4LiI4LiZ4LiwCivguKfguIjguLAKK+C4p+C4iOC4sgor4Lin4LiI4Li1CivguKfguIjguLXguIHguKPguKPguKEKK+C4p+C4iOC4teC5gOC4oOC4lwor4Lin4LiK4LiwCivguKfguIrguLTguKMtCivguKfguIrguLTguKPguJvguLLguJPguLUKK+C4p+C4iuC4tOC4o+C4q+C4seC4leC4luC5jAor4Lin4LiK4Li04Lij4LiwCivguKfguIrguLTguKPguLLguKfguLjguJgKK+C4p+C4j+C4sAor4Lin4LiP4Liy4LiB4Liy4LijCivguKfguI/guLjguKHguLAKK+C4p+C4ky0KK+C4p+C4k+C4muC4seC4leC4owor4Lin4LiT4Lie4Lix4LiZ4LiY4LiZ4LmMCivguKfguJPguLAKK+C4p+C4k+C4tOC4igor4Lin4LiT4Li04LiK4LiK4LiyCivguKfguJPguLTguIrguIrguLLguIHguKMKK+C4p+C4k+C4tOC4iuC4ouC5jAor4Lin4LiT4Li04LiK4Lii4LiyCivguKfguJPguLTguJ7guIEKK+C4p+C4lOC4tQor4Lin4LiVLQor4Lin4LiV4LiwCivguKfguJfguJnguLAKK+C4p+C4l+C4sAor4Lin4LiX4Lix4LiN4LiN4Li44LiV4LiyCivguKfguJfguLHguI3guI3guLkKK+C4p+C4l+C4suC4meC4tOC4oi0KK+C4p+C4mC0KK+C4p+C4mOC4gS0KK+C4p+C4mOC4uOC4geC4sgor4Lin4LiY4Li5CivguKfguJkKK+C4p+C4meC4iOC4owor4Lin4LiZ4LiI4Lij4LiBCivguKfguJnguKDguLkKK+C4p+C4meC4oOC4ueC4oeC4tAor4Lin4LiZ4LmA4Lin4Li14Lii4LiZCivguKfguJnguKjguLLguKrguJXguKPguYwKK+C4p+C4meC4quC4k+C4keC5jAor4Lin4LiZ4Liq4Lix4LiT4LiR4LmMCivguKfguJnguK3guLjguJfguKLguLLguJkKK+C4p+C4meC4seC4m+C4leC4tAor4Lin4LiZ4Lix4LiqCivguKfguJnguLHguKotCivguKfguJnguLHguKrguJrguJTguLUKK+C4p+C4meC4sgor4Lin4LiZ4Liy4LiU4Lit4LiZCivguKfguJnguLLguJnguJXguYwKK+C4p+C4meC4suC4peC4seC4ogor4Lin4LiZ4Liy4Lil4Li1CivguKfguJnguLLguKfguLLguKoKK+C4p+C4meC4suC4qOC4o+C4oQor4Lin4LiZ4Liy4Liq4LiT4LiR4LmMCivguKfguJnguLLguKrguLHguJPguJHguYwKK+C4p+C4meC4tOC4lOC4sgor4Lin4LiZ4Li04Lie4LiBCivguKfguYDguJnguIjguKMKK+C4p+C5guC4meC4l+C4ouC4suC4mQor4Lin4Lib4LiZ4LiwCivguKfguJvguLgKK+C4p+C4ouC4seC4hOC4huC5jAor4Lin4Lii4Lix4LiN4LiK4LiZ4LiwCivguKfguKLguLHguKHguKvguLAKK+C4p+C4ouC4seC4quC4ouC5jAor4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguKfguKLguLLguIbguKPguYwKK+C4p+C4ouC4suC4mOC4tAor4Lin4Lii4Liy4LihCivguKfguKLguLLguKLguLLguKEKK+C4p+C4oy0KK+C4p+C4o+C4h+C4hOC5jAor4Lin4Lij4LiT4LiwCivguKfguKPguJTguJnguLkKK+C4p+C4o+C4lwor4Lin4Lij4LiX4Liy4LiZCivguKfguKPguKHguKvguLLguKfguLTguKvguLLguKMKK+C4p+C4o+C4o+C4hAor4Lin4Lij4Lij4LiE4Lii4LmMCivguKfguKPguKPguIoKK+C4p+C4o+C4o+C4iuC4ouC5jAor4Lin4Lij4Lij4LiTLQor4Lin4Lij4Lij4LiT4LiB4Lij4Lij4LihCivguKfguKPguKPguJPguITguJTguLUKK+C4p+C4o+C4o+C4k+C4meC4sgor4Lin4Lij4Lij4LiT4Lie4Lik4LiV4Li0CivguKfguKPguKPguJPguKLguLjguIHguJXguYwKK+C4p+C4o+C4o+C4k+C4ouC4uOC4lQor4Lin4Lij4Lij4LiT4Lio4Li04Lil4Lib4LmMCivguKfguKPguKPguJPguLAKK+C4p+C4o+C4o+C4k+C4tuC4gQor4Lin4Lij4Lij4LiY4LiBCivguKfguKPguKPguJjguJnguLAKK+C4p+C4o+C4o+C4qQor4Lin4Lij4Lij4Lip4LiyCivguKfguKPguKfguLTguKvguLLguKMKK+C4p+C4o+C4seC4jeC4jeC4uQor4Lin4Lij4Liy4LiB4LiwCivguKfguKPguLLguIfguITguJPguLIKK+C4p+C4o+C4suC4q+C5jAor4Lin4Lij4Liy4Lir4LiwCivguKfguKPguLjguJMKK+C4p+C4o+C4uOC4leC4lOC4oQor4Lin4Lij4Li44LiV4Lih4LiwCivguKfguKPguLnguJYKK+C4p+C5guC4o+C4lOC4oQor4Lin4LmC4Lij4LiV4Lih4LiwCivguKfguKTguIEKK+C4p+C4pOC4qeC4oAor4Lin4Lik4Lip4LilCivguKfguKXguLHguIoKK+C4p+C4peC4seC4jeC4iuC5jAor4Lin4Lil4Lix4LiN4LiK4LiZ4LmMCivguKfguKXguLHguKIKK+C4p+C4peC4suC4q+C4gQor4Lin4Lil4Li1CivguKfguKjguIQKK+C4p+C4qOC4sAor4Lin4Lio4Li04LiZCivguKfguKrguJnguLAKK+C4p+C4quC4oOC4sAor4Lin4Liq4Lil4LiwCivguKfguKrguKXguLUKK+C4p+C4quC4p+C4seC4lOC4lOC4tQor4Lin4Liq4Lin4Lix4LiV4LiV4Li1CivguKfguKrguLAKK+C4p+C4quC4seC4meC4lS0KK+C4p+C4quC4seC4meC4leC5jAor4Lin4Liq4Lix4LiZ4LiV4LiU4Li04Lil4LiBCivguKfguKrguLHguJnguJXguKfguLTguKnguLjguKfguLHguJUKK+C4p+C4quC4sgor4Lin4Liq4Li1CivguKfguKrguLgKK+C4p+C4quC4uOC4mOC4sgor4Lin4Liq4Li44LiZ4LiY4Lij4LiyCivguKfguKrguLjguKHguJTguLUKK+C4p+C4q+C4sAor4Lin4Lir4LiyCivguKfguK0KK+C4p+C4reC4gQor4Lin4Lit4LiB4LmB4Lin4LiBCivguKfguYjguK3guIcKK+C4p+C5iOC4reC4h+C5hOC4pwor4Lin4Lit4LiUCivguKfguK3guJTguKfguLLguKIKK+C4p+C4reC4mQor4Lin4LmI4Lit4LiZCivguKfguK3guKXguYDguKXguKLguYzguJrguK3guKUKK+C4p+C4reC5geC4pwor4Lin4LiwCivguKfguLHguIEKK+C4p+C4seC4geC4geC4sAor4Lin4Lix4LiECivguKfguLHguITguITguLTguKIKK+C4p+C4seC4hOC4hOC4teC4ouC5jAor4Lin4Lix4LiE4LiE4Li4CivguKfguLHguITguITguLjguKfguLHguJcKK+C4p+C4seC4hOC4i+C4teC4mQor4Lin4Lix4LiHCivguKfguLHguIfguIHguYwKK+C4p+C4seC4h+C4iuC4sgor4Lin4Lix4LiH4LiK4LmJ4Liy4LiHCivguKfguLHguIfguKfguJkKK+C4p+C4seC4h+C5gOC4p+C4hwor4Lin4Lix4LiH4Lio4LiwCivguKfguLHguIfguKrguLAKK+C4p+C4seC4h+C4q+C4meC5ieC4sgor4Lin4Lix4LiH4Lir4Lil4Lin4LiHCivguKfguLHguIfguKvguKXguLHguIcKK+C4p+C4seC4iC0KK+C4p+C4seC4iOC4geC4uOC4juC4tQor4Lin4Lix4LiI4LiI4LiwCivguKfguLHguIjguInguYwKK+C4p+C4seC4iOC4ieC4gQor4Lin4Lix4LiI4LiJ4Lil4LiwCivguKfguLHguIjguJnguYwKK+C4p+C4seC4iOC4oeC4o+C4o+C4hAor4Lin4Lix4LiKCivguKfguLHguIotCivguKfguLHguIrguIrguLAKK+C4p+C4seC4iuC4jOC5jAor4Lin4Lix4LiK4Lie4Li34LiKCivguKfguLHguIrguKMtCivguKfguLHguIrguKPguJjguLLguJXguLjguKHguJPguJHguKUKK+C4p+C4seC4iuC4o+C4m+C4suC4k+C4tQor4Lin4Lix4LiK4Lij4Lii4Liy4LiZCivguKfguLHguIrguKPguK3guLLguKrguJnguYwKK+C4p+C4seC4iuC4o+C4sAor4Lin4Lix4LiK4Lij4Liy4Liq4LiZ4LmMCivguKfguLHguIrguKPguLTguJnguJfguKPguYwKK+C4p+C4seC4iuC4o+C4tQor4Lin4Lix4LiK4LmA4Lij4LiZ4LiX4Lij4LmMCivguKfguLHguI3guIjguIEKK+C4p+C4seC4jeC4iOC4meC4sAor4Lin4Lix4LiN4LiM4LmMCivguKfguLHguI8tCivguKfguLHguI/guIHguLAKK+C4p+C4seC4j+C4iOC4seC4geC4owor4Lin4Lix4LiP4LiP4LiwCivguKfguLHguI/guI/guLQKK+C4p+C4seC4j+C4l+C4uOC4geC4guC5jAor4Lin4Lix4LiP4Liq4LiH4Liq4Liy4LijCivguKfguLHguJLguIHguLAKK+C4p+C4seC4kuC4geC4tQor4Lin4Lix4LiS4LiZLQor4Lin4Lix4LiS4LiZ4LiY4Lij4Lij4LihCivguKfguLHguJLguJnguLAKK+C4p+C4seC4kuC4meC4sgor4Lin4Lix4LiTCivguKfguLHguJMtCivguKfguLHguJPguI/guYwKK+C4p+C4seC4k+C4k+C4sAor4Lin4Lix4LiT4LiZ4LiyCivguKfguLHguJPguYLguKPguIQKK+C4p+C4seC4lAor4Lin4Lix4LiU4LmB4LiU4LiUCivguKfguLHguJTguJzguKUKK+C4p+C4seC4lOC4nuC4t+C5ieC4mQor4Lin4Lix4LiU4Lij4Lit4Lii4LiV4Li14LiZCivguKfguLHguJTguKPguK3guKLguYDguJfguYnguLIKK+C4p+C4seC4lOC4o+C4suC4qeC4juC4o+C5jAor4Lin4Lix4LiU4Lin4LiyCivguKfguLHguJTguKfguLLguK3guLLguKPguLLguKEKK+C4p+C4seC4lOC4q+C4peC4p+C4hwor4Lin4Lix4LiU4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguKfguLHguJUKK+C4p+C4seC4leC4leC5jAor4Lin4Lix4LiV4LiV4LiyCivguKfguLHguJXguJbguYwKK+C4p+C4seC4leC4luC4suC4oOC4o+C4k+C5jAor4Lin4Lix4LiV4LiW4Liy4Lil4Lix4LiH4LiB4Liy4LijCivguKfguLHguJXguJbguLgKK+C4p+C4seC4leC4luC4uOC4lOC4tOC4mgor4Lin4Lix4LiV4LiW4Li44LiZ4Li04Lii4LihCivguKfguLHguJXguJbguLjguKfguLTguKrguLHguKIKK+C4p+C4seC4leC4meC4sAor4Lin4Lix4LiV4LijCivguKfguLHguJXguKMtCivguKfguLHguJXguKPguJvguI/guLTguJrguLHguJXguLQKK+C4p+C4seC4leC4quC4lOC4owor4Lin4Lix4LiV4Liq4LiwCivguKfguLHguJXguLQKK+C4p+C4seC4l+C4meC5jAor4Lin4Lix4LiZCivguKfguLHguJnguYLguIHguJkKK+C4p+C4seC4meC5geC4guC5h+C4hwor4Lin4Lix4LiZ4LiE4Lij4Li5CivguKfguLHguJnguIjguKEKK+C4p+C4seC4meC4lOC4seC4mgor4Lin4Lix4LiZ4LiU4Li14LiE4Li34LiZ4LiU4Li1CivguKfguLHguJnguJXguYwKK+C4p+C4seC4meC4leC4seC4pwor4Lin4Lix4LiZ4LmA4LiW4Lil4Li04LiH4Lio4LiBCivguKfguLHguJnguJfguJktCivguKfguLHguJnguJfguJnguLIKK+C4p+C4seC4meC4l+C4meC4suC4geC4suC4owor4Lin4Lix4LiZ4LiX4LiZ4Li14Lii4LmMCivguKfguLHguJnguJfguKItCivguKfguLHguJnguJfguKLguKvguLHguJXguJbguYwKK+C4p+C4seC4meC4l+C4ouC4suC4p+C4uOC4mAor4Lin4Lix4LiZ4LiX4LiyCivguKfguLHguJnguJfguLQKK+C4p+C4seC4meC4meC4tOC4nuC4gQor4Lin4Lix4LiZ4LmA4LiZ4LiyCivguKfguLHguJnguJ7guKPguLAKK+C4p+C4seC4meC4nuC4o+C4sOC5hOC4oeC5iOC4oeC4teC4q+C4meC5gOC4lOC4teC4ouC4pwor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNCivguKfguLHguJnguJ/guLkKK+C4p+C4seC4meC4ouC4seC4h+C4hOC5iOC4swor4Lin4Lix4LiZ4Lil4Lit4LiiCivguKfguLHguJnguYHguKXguYnguKfguKfguLHguJnguYDguKXguYjguLIKK+C4p+C4seC4meC4quC4uOC4geC4lOC4tOC4mgor4Lin4Lix4LiZ4Lit4Li44LmC4Lia4Liq4LiWCivguKfguLHguJoKK+C4p+C4seC4muC5hgor4Lin4Lix4Lia4Lin4Liy4LiaCivguKfguLHguJrguKfguLLguKEKK+C4p+C4seC4muC5geC4p+C4mgor4Lin4Lix4Lia4LmB4Lin4LihCivguKfguLHguJrguYYg4Lir4Lin4Liz4LmGCivguKfguLHguJvguJvguLAKK+C4p+C4seC4oeC4oeC4tOC4gQor4Lin4Lix4LiiCivguKfguLHguKItCivguKfguLHguKLguKPguLjguYjguJkKK+C4p+C4seC4ouC4p+C4uOC4kuC4tAor4Lin4Lix4Lil4LiB4LmMCivguKfguLHguKXguITguLgKK+C4p+C4seC4peC4ouC5jAor4Lin4Lix4Lil4Lil4LigCivguKfguLHguKXguKXguLUKK+C4p+C4seC4pwor4Lin4Lix4Lin4LmD4LiE4Lij4LmA4LiC4LmJ4Liy4LiE4Lit4LiB4LiE4LiZ4LiZ4Lix4LmJ4LiZCivguKfguLHguKfguJXguLHguKfguJzguLnguYkKK+C4p+C4seC4p+C4leC4seC4p+C5gOC4oeC4teC4ogor4Lin4Lix4Lin4LiX4Liw4LmA4LilCivguKfguLHguKfguJ7guLHguJnguKvguKXguLHguIEKK+C4p+C4seC4p+C4peC4t+C4oeC4leC4teC4mQor4Lin4Lix4Lin4Liq4Lix4LiZ4Lir4Lil4Lix4LiH4Lir4Lin4LiwCivguKfguLHguKfguKvguLLguKLguKXguYnguK3guKHguITguK3guIEKK+C4p+C4seC4qi0KK+C4p+C4seC4quC4hOC4k+C4meC4sgor4Lin4Lix4Liq4LiU4Li4CivguKfguLHguKrguJXguKPguYwKK+C4p+C4seC4quC4meC5jAor4Lin4Lix4Liq4LiZ4LiwCivguKfguLHguKrguKrguLAKK+C4p+C4seC4quC4quC4suC4meC4sAor4Lin4Lix4Liq4LmC4Liq4LiX4LiBCivguKfguLIKK+C4p+C5iOC4sgor4Lin4LmJ4LiyCivguKfguLLguIEKK+C4p+C5ieC4suC4gQor4Lin4Liy4LiB4LiI4Li04Lij4Lie4Lix4Liq4LiV4Lij4LmMCivguKfguLLguIHguKItCivguKfguLLguIHguKLguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4p+C4suC4geC4ouC4sAor4Lin4Liy4LiB4Lij4LiyCivguKfguYjguLLguIHguKXguYjguLLguKcKK+C4p+C4suC4geC4sAor4Lin4LmI4Liy4LiB4Liy4LijCivguKfguYjguLLguILguLLguJkKK+C4p+C5iOC4suC4hOC4p+C4suC4oQor4Lin4Liy4LiHCivguKfguYjguLLguIcKK+C4p+C5ieC4suC4hwor4Lin4Liy4LiH4LiB4LmJ4Liy4LihCivguKfguLLguIfguILguYnguK0KK+C4p+C4suC4h+C5hOC4guC5iAor4Lin4LmI4Liy4LiH4LiH4Liy4LiZCivguKfguLLguIfguYDguIfguLTguJkKK+C4p+C4suC4h+C5g+C4iAor4Lin4Liy4LiH4LiV4Lil4Liy4LiUCivguKfguLLguIfguJXguLHguKcKK+C4p+C4suC4h+C4leC4sgor4Lin4Liy4LiH4LmC4LiVCivguKfguLLguIfguJfguYjguLIKK+C4p+C4suC4h+C4m+C4uOC5iOC4oQor4Lin4Liy4LiH4LmA4Lie4Lil4Li04LiHCivguKfguLLguIfguKHguKfguKIKK+C4p+C4suC4h+C4oeC4suC4lAor4Lin4Liy4LiH4Lih4Li34LitCivguKfguLLguIfguKLguLIKK+C4p+C4suC4h+C4p+C4suC4ogor4Lin4LmI4Liy4LiH4LmA4Lin4LmJ4LiZCivguKfguYnguLLguIfguYDguKfguLTguYnguIcKK+C4p+C4suC4h+C4reC4s+C4meC4suC4iAor4Lin4LmI4Liy4LiH4LmI4Liy4LiiCivguKfguLLguIjguIEKK+C4p+C4suC4iOC4sgor4Lin4LmI4Liy4LiI4LmJ4Liy4LiHCivguKfguLLguIjguLLguYTguJvguKLguLAKK+C4p+C4suC4iOC4suC4pQor4Lin4Liy4LiK4LmA4Lib4Lii4LiwCivguKfguLLguI/guIHguLAKK+C4p+C4suC4k+C4tOC4igor4Lin4Liy4LiT4Li04LiK4LiB4LiwCivguKfguLLguJPguLTguIrguKLguYwKK+C4p+C4suC4k+C4tQor4Lin4Liy4LiUCivguKfguLLguJTguYDguILguLXguKLguJkKK+C4p+C4suC4lS0KK+C4p+C4suC4leC4m+C4suC4meC4sAor4Lin4Liy4LiV4Lig4Lix4LiiCivguKfguLLguJXguLAKK+C4p+C5iOC4suC4leC5iOC4suC4hwor4Lin4Liy4LiV4Liy4Lij4Liy4LiH4LmA4Lir4Lil4Li14LmI4Lii4LihCivguKfguYjguLLguYHguJXguYjguYDguILguLLguK3guLTguYDguKvguJnguLLguYDguJvguYfguJnguYDguK3guIcKK+C4p+C4suC4lwor4Lin4Liy4LiXLQor4Lin4Liy4LiX4LiBCivguKfguLLguJfguJkKK+C4p+C4suC4l+C4oi0KK+C4p+C4suC4l+C4ouC5jAor4Lin4Liy4LiX4Lii4LiB4LijCivguKfguLLguJfguKjguLLguKrguJXguKPguYwKK+C4p+C4suC4l+C4qOC4tOC4peC4m+C5jAor4Lin4Liy4LiX4Li04LiVCivguKfguLLguJfguLTguJkKK+C4p+C4suC4l+C4tQor4Lin4LmI4Liy4LiX4Li14LmICivguKfguLLguJkKK+C4p+C5iOC4suC4mQor4Lin4LmI4Liy4LiZ4LiB4Li14Lia4Lih4LmJ4LiyCivguKfguYjguLLguJnguIHguLXguJrguYHguKPguJQKK+C4p+C5iOC4suC4meC5gOC4hOC4o+C4t+C4rQor4Lin4Liy4LiZ4LiL4Li34LiZCivguKfguYjguLLguJnguJjguKPguJPguLXguKrguLLguKMKK+C4p+C5iOC4suC4meC4meC4suC4h+C4geC4p+C4seC4gQor4Lin4LmI4Liy4LiZ4LiZ4Liy4LiH4Lil4LmJ4Lit4LihCivguKfguYjguLLguJnguJnguYnguLMKK+C4p+C5iOC4suC4meC5gOC4nuC4iuC4o+C4q+C4tuC4hwor4Lin4LmI4Liy4LiZ4Lih4Lir4Liy4LmA4Lih4LiGCivguKfguYjguLLguJnguKHguLXguJTguKLguLHguJoKK+C4p+C4suC4meC4owor4Lin4Liy4LiZ4Lij4Li04LiZ4LiX4Lij4LmMCivguKfguYjguLLguJnguYDguKrguJnguYjguKvguYzguIjguLHguJnguJfguKPguYzguILguLLguKcKK+C4p+C5iOC4suC4meC5gOC4quC4meC5iOC4q+C5jOC4iOC4seC4meC4l+C4o+C5jOC5geC4lOC4hwor4Lin4LmI4Liy4LiZ4Lir4Liy4LiH4LiK4LmJ4Liy4LiHCivguKfguYjguLLguJnguK3guJnguKrguK3guJnguIfguYjguLLguKIKK+C4p+C4suC5gOC4meC5gOC4lOC4teC4ouC4oQor4Lin4Liy4LiaCivguKfguLLguJrguKvguKfguLLguKEKK+C4p+C4suC4m+C4sAor4Lin4Liy4Lib4Li04LiV4LiwCivguKfguLLguJvguLUKK+C4p+C4suC4oQor4Lin4Liy4Lih4LiZLQor4Lin4Liy4Lih4LiZ4Liy4Lin4LiV4Liy4LijCivguKfguLLguKHguYHguKfguKEKK+C4p+C4suC4oeC4sAor4Lin4Liy4Lih4Liy4LiI4Liy4LijCivguKfguLLguYLguKHguKMKK+C4p+C5iOC4suC5hOC4oeC5iOC5hOC4lOC5iQor4Lin4Liy4LiiCivguKfguYjguLLguKIKK+C4p+C5ieC4suC4ogor4Lin4Liy4Lii4LiK4LiZ4Lih4LmMCivguKfguLLguKLguIrguLXguKfguLTguJUKK+C4p+C5iOC4suC4ouC4leC4sgor4Lin4LmI4Liy4Lii4LiZ4LmJ4Liz4Lir4Liy4LiI4Lij4Liw4LmA4LiC4LmJCivguKfguLLguKLguJvguKPguLLguJMKK+C4p+C4suC4ouC4o+C5ieC4suC4ogor4Lin4Liy4Lii4Lin4Lit4LiUCivguKfguLLguKLguKrguLAKK+C4p+C4suC4ouC4quC4seC4h+C4guC4suC4owor4Lin4Liy4Lii4LiwCivguKfguYjguLLguKLguLLguIEKK+C4p+C4suC4ouC4suC4oeC4sAor4Lin4Liy4Lii4Li4CivguKfguLLguKLguLjguIHguLnguKUKK+C4p+C4suC4ouC4uOC4muC4uOC4leC4o+C4ouC4suC4leC4o+C4sgor4Lin4Liy4Lii4Li44Lig4Lix4LiB4Lip4LmMCivguKfguLLguYLguKIKK+C4p+C4suC5guC4ouC4mOC4suC4leC4uAor4Lin4Liy4LijCivguKfguLLguKPguJMtCivguKfguLLguKPguJPguIHguKMKK+C4p+C4suC4o+C4p+C4suC4o+C4tAor4Lin4Liy4Lij4Liq4Liy4LijCivguKfguLLguKPguKrguLLguKPguKjguLLguKrguJXguKPguYwKK+C4p+C4suC4o+C4sAor4Lin4Liy4Lij4Li0CivguKfguLLguKPguLTguIjguKMKK+C4p+C4suC4o+C4tOC4igor4Lin4Liy4Lij4Li04LiXCivguKfguLLguKPguLTguJjguKMKK+C4p+C4suC4o+C4tOC4nuC4tOC4meC4l+C4uAor4Lin4Liy4Lij4Li1CivguKfguLLguKPguLXguIoKK+C4p+C4suC4o+C4uOC4kwor4Lin4Liy4Lij4Li44LiT4Li1CivguKfguLLguKUKK+C4p+C4suC4pS0KK+C4p+C4suC4peC4geC4seC4oeC4nuC4pQor4Lin4Liy4Lil4LiY4Li0CivguKfguLLguKXguYzguKcKK+C4p+C4suC4peC4p+C4teC4iuC4meC4tQor4Lin4Liy4Lil4Li04LiB4LiyCivguKfguLLguKXguLjguIHguLIKK+C4p+C4suC4pwor4Lin4LmI4Liy4LinCivguKfguYjguLLguKfguJXguLTguJTguKXguKEKK+C4p+C4suC4p+C4p+C4seC4mgor4Lin4Liy4Lin4Lin4Liy4LihCivguKfguLLguKfguYHguKfguKcKK+C4p+C5iOC4suC4p+C5gOC4q+C4peC4tOC4hwor4Lin4LmI4Liy4Lin4Lit4LiZCivguKfguYnguLLguKfguYjguK3guJkKK+C4p+C5ieC4suC4p+C4uOC5iOC4mQor4Lin4Liy4Liq4LiZ4LiwCivguKfguLLguKrguJnguLIKK+C4p+C4suC4quC4ngor4Lin4Liy4Liq4LiwCivguKfguYjguLLguKrguLLguJTguYDguKrguLXguKLguYDguJfguYDguKrguLXguKIKK+C4p+C4suC4quC4tOC4mQor4Lin4Liy4Liq4Li1CivguKfguLLguKrguLjguIHguKPguLUKK+C4p+C4suC4quC4uOC4geC4tQor4Lin4Liy4Liq4Li44LmA4LiX4LieCivguKfguLLguKvguJnguLAKK+C4p+C4suC4q+C4sAor4Lin4Liy4Lir4Li04LiZ4Li1CivguKfguYnguLLguYDguKvguKfguYgKK+C4p+C4suC4rAor4Lin4Liy4LisLQor4Lin4Liy4Lis4Lih4Li04LiECivguKfguLQKK+C4p+C4tOC4geC4guC4seC4oeC4oOC5jAor4Lin4Li04LiB4LiC4Lix4Lih4Lig4LiZ4LiwCivguKfguLTguIHguYDguILguJsKK+C4p+C4tOC4geC4iOC4sAor4Lin4Li04LiB4Lij4LihCivguKfguLTguIHguKPguLHguKIKK+C4p+C4tOC4geC4o+C4suC4meC4leC5jAor4Lin4Li04LiB4Lik4LiVCivguKfguLTguIHguKTguJUtCivguKfguLTguIHguKTguJXguIHguLLguKPguJPguYwKK+C4p+C4tOC4geC4pOC4leC4geC4suC4pQor4Lin4Li04LiB4Lik4LiV4Li0CivguKfguLTguIHguKTguJXguLQtCivguKfguLTguIHguKTguJXguLTguIHguLLguKPguJPguYwKK+C4p+C4tOC4geC4pOC4leC4tOC4geC4suC4pQor4Lin4Li04LiB4LilCivguKfguLTguIHguKXguIjguKPguLTguJUKK+C4p+C4tOC4geC4quC4tOC4lQor4Lin4Li04LiB4Lix4LiVCivguKfguLTguIHguLHguJXguLQKK+C4p+C4tOC4geC4seC4leC4tOC4geC4suC4o+C4gQor4Lin4Li04LiB4Lix4LibCivguKfguLTguIHguLHguKIKK+C4p+C4tOC4geC4suC4owor4Lin4Li04LiB4Liy4LilCivguKfguLTguIHguLLguKUtCivguKfguLTguIHguLLguKXguYLguKDguIrguJnguYwKK+C4p+C4tOC4hOC4q+C4sAor4Lin4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKfguLTguIbguJnguLAKK+C4p+C4tOC4huC5gOC4meC4qAor4Lin4Li04LiG4LmA4LiZ4Lio4Lin4LijCivguKfguLTguIbguLLguJUKK+C4p+C4tOC4huC4suC4qgor4Lin4Li04LiHCivguKfguLTguYjguIcKK+C4p+C4tOC5iOC4h+C4geC4o+C4sOC5guC4lOC4lOC4guC5ieC4suC4oeC4o+C4seC5ieC4pwor4Lin4Li04LmI4LiH4LiC4LmJ4Liy4Lih4Lij4Lix4LmJ4LinCivguKfguLTguYjguIfguIfguLHguKcKK+C4p+C4tOC5iOC4h+C5gOC4leC5ieC4mQor4Lin4Li04LmI4LiH4LmA4Lib4Li14LmJ4Lii4LinCivguKfguLTguYjguIfguJzguKXguLHguJQKK+C4p+C4tOC5iOC4h+C4oeC5ieC4sgor4Lin4Li04LmI4LiH4Lij4Lit4LiBCivguKfguLTguYjguIfguKPguLDguYHguJrguIcKK+C4p+C4tOC5iOC4h+C4o+C4suC4pwor4Lin4Li04LiH4Lin4Lit4LiZCivguKfguLTguYjguIfguKfguLHguKcKK+C4p+C4tOC5iOC4h+C4p+C5iOC4suC4pwor4Lin4Li04LmI4LiH4Lin4Li04Lia4Liy4LiBCivguKfguLTguIfguYDguKfguLXguKLguJkKK+C4p+C4tOC5iOC4h+C4quC4suC4oeC4guC4sgor4Lin4Li04LiI4LiJ4Li04LiB4LiwCivguKfguLTguIjguKLguLjguJUKK+C4p+C4tOC4iOC4o+C4k+C4sAor4Lin4Li04LiI4LilCivguKfguLTguIjguLHguIHguILguJPguYwKK+C4p+C4tOC4iOC4seC4geC4qeC4k+C5jAor4Lin4Li04LiI4Lix4LiiCivguKfguLTguIjguLLguKMKK+C4p+C4tOC4iOC4suC4o+C4ky0KK+C4p+C4tOC4iOC4suC4o+C4k+C5jAor4Lin4Li04LiI4Liy4Lij4LiT4LiN4Liy4LiTCivguKfguLTguIjguLQKK+C4p+C4tOC4iOC4tOC4geC4tOC4iOC4ieC4sgor4Lin4Li04LiI4Li04LiVCivguKfguLTguIjguLTguJXguKMKK+C4p+C4tOC4iOC4tOC4leC4o+C4nuC4tOC4quC4lOC4suC4owor4Lin4Li04LiI4Li04LiZCivguKfguLTguIjguLjguJMKK+C4p+C4tOC4iOC4uOC4o+C4kwor4Lin4Li04LiK4LiK4LiyCivguKfguLTguIrguIrguLgKK+C4p+C4tOC4iuC4iuC4uOC4lOC4sgor4Lin4Li04LiK4LiK4Li44LiV4LiyCivguKfguLTguIrguIrguLjguKXguJTguLIKK+C4p+C4tOC4iuC4jeC4sAor4Lin4Li04LiK4LiZCivguKfguLTguIrguJnguLUKK+C4p+C4tOC4iuC4oi0KK+C4p+C4tOC4iuC4seC4ogor4Lin4Li04LiK4LiyCivguKfguLTguIrguLLguIHguLLguKMKK+C4p+C4tOC4iuC4suC4iuC4teC4ngor4Lin4Li04LiK4Liy4LmC4LiXCivguKfguLTguIrguLLguJjguKMKK+C4p+C4tOC4iuC4suC4meC4meC4sAor4Lin4Li04LiK4Liy4LmA4Lit4LiBCivguKfguLTguIrguLTguJUKK+C4p+C4tOC5gOC4iuC4teC4ouC4owor4Lin4Li04LiN4LiN4Lix4LiV4LiV4Li0CivguKfguLTguI3guI3guLLguJMKK+C4p+C4tOC4jeC4jeC4suC4k+C4geC4l+C4o+C4seC4nuC4ouC5jAor4Lin4Li04LiN4LiN4Li5CivguKfguLTguI3guI3guLnguIrguJkKK+C4p+C4tOC4jeC4jeC4ueC4oOC4suC4ngor4Lin4Li04LiR4Li54Lij4Lii4LmMCivguKfguLTguJPguKvguLgKK+C4p+C4tOC4lAor4Lin4Li04LiU4Lie4Li34LmJ4LiZCivguKfguLTguJTguLHguKrguJTguLUKK+C4p+C4tOC4leC4gQor4Lin4Li04LiV4LiBLQor4Lin4Li04LiV4LiB4LiI4Lij4Li04LiVCivguKfguLTguJXguJbguLLguKMKK+C4p+C4tOC4leC4suC4oeC4tOC4mQor4Lin4Li04LiW4Li1CivguKfguLTguJfguJjguLAKK+C4p+C4tOC4l+C4oi0KK+C4p+C4tOC4l+C4ouC4kOC4suC4meC4sAor4Lin4Li04LiX4Lii4LiyCivguKfguLTguJfguKLguLLguIHguKMKK+C4p+C4tOC4l+C4ouC4suC4geC4pQor4Lin4Li04LiX4Lii4Liy4LmA4LiC4LiVCivguKfguLTguJfguKLguLLguITguKEKK+C4p+C4tOC4l+C4ouC4suC4hOC4suC4owor4Lin4Li04LiX4Lii4Liy4LiX4Liy4LiZCivguKfguLTguJfguKLguLLguJjguKMKK+C4p+C4tOC4l+C4ouC4suC4meC4tOC4nuC4meC4mOC5jAor4Lin4Li04LiX4Lii4Liy4Lil4Lix4LiiCivguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYwKK+C4p+C4tOC4l+C4ouC4suC4qOC4suC4quC4leC4o+C5jOC4geC4suC4ouC4oOC4suC4ngor4Lin4Li04LiX4Lii4Liy4Lio4Liy4Liq4LiV4Lij4LmM4LiK4Li14Lin4Lig4Liy4LieCivguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYzguYDguJfguITguYLguJnguYLguKXguKLguLXguYHguKXguLDguKrguLTguYjguIfguYHguKfguJTguKXguYnguK3guKEKK+C4p+C4tOC4l+C4ouC4suC4qOC4suC4quC4leC4o+C5jOC4m+C4o+C4sOC4ouC4uOC4geC4leC5jAor4Lin4Li04LiX4Lii4Li4CivguKfguLTguJfguKLguLjguJUKK+C4p+C4tOC4l+C4o+C4uOC4oeC4sAor4Lin4Li04LiX4Lin4Lix4LiqCivguKfguLTguJfguLHguJXguJbguLQKK+C4p+C4tOC4l+C4suC4o+C4k+C5jAor4Lin4Li04LiX4Liy4Lil4LiZ4LmMCivguKfguLTguJfguLTguJUKK+C4p+C4tOC4l+C4uQor4Lin4Li04LiX4Li54LijCivguKfguLTguYDguJfguKfguKkKK+C4p+C4tOC5gOC4l+C4qAor4Lin4Li04LmA4LiX4Lio4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguKfguLTguYDguJfguYLguKjguJrguLLguKIKK+C4p+C4tOC4mAor4Lin4Li04LiY4Lin4LiyCivguKfguLTguJjguLIKK+C4p+C4tOC4mOC4suC4mQor4Lin4Li04LiY4Li1CivguKfguLTguJjguLjguKPguLAKK+C4p+C4tOC4mOC4uQor4Lin4Li04LiY4Li54Lib4LiZ4LiwCivguKfguLTguYjguJkKK+C4p+C4tOC4meC4oi0KK+C4p+C4tOC4meC4seC4meC4leC4uQor4Lin4Li04LiZ4Lix4LiiCivguKfguLTguJnguLHguKLguJjguKMKK+C4p+C4tOC4meC4suC4l+C4tQor4Lin4Li04LiZ4Liy4Lii4LiBCivguKfguLTguJnguLLguKgKK+C4p+C4tOC4meC4suC4qC0KK+C4p+C4tOC4meC4suC4qOC4geC4o+C4o+C4oQor4Lin4Li04LiZ4Liy4Lio4Lig4Lix4LiiCivguKfguLTguJnguLTguIgKK+C4p+C4tOC4meC4tOC4iOC4ieC4seC4ogor4Lin4Li04LiZ4Li04LiVCivguKfguLTguJnguLTguJrguLLguJUKK+C4p+C4tOC4meC4tOC4m+C4suC4leC4tOC4gQor4Lin4Li04LmA4LiZ4LiVCivguKfguLTguYLguJnguJfguIEKK+C4p+C4tOC4muC4seC4leC4tAor4Lin4Li04Lia4Liy4LiBCivguKfguLTguJrguLjguKUKK+C4p+C4tOC4muC4uOC4peC4ouC5jAor4Lin4Li04Lia4Li54LilCivguKfguLTguJrguLnguKXguKLguYwKK+C4p+C4tOC4m+C4geC4suC4owor4Lin4Li04Lib4LiP4Li04Liq4Liy4LijCivguKfguLTguJvguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4geC4suC4owor4Lin4Li04Lib4Lij4Liw4LiV4Li04Liq4Liy4LijCivguKfguLTguJvguKPguLDguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4peC4suC4mwor4Lin4Li04Lib4Lij4Liw4Lin4Liy4LiqCivguKfguLTguJvguKPguLTguJUKK+C4p+C4tOC4m+C4peC4suC4mwor4Lin4Li04Lib4Lil4Liy4LiqCivguKfguLTguJvguKfguLLguKoKK+C4p+C4tOC4m+C4seC4geC4qeC5jAor4Lin4Li04Lib4Lix4Liq4Liq4LiBCivguKfguLTguJvguLHguKrguKrguJnguLIKK+C4p+C4tOC4nuC4suC4geC4qeC5jAor4Lin4Li04Lie4Liy4LiB4Lip4LmM4Lin4Li04LiI4Liy4Lij4LiT4LmMCivguKfguLTguJ7guLTguJjguJfguLHguKjguJnguLIKK+C4p+C4tOC4nuC4uOC4mAor4Lin4Li04Lig4LinLQor4Lin4Li04Lig4Lin4LiV4Lix4LiT4Lir4LiyCivguKfguLTguKDguLHguIfguITguYwKK+C4p+C4tOC4oOC4seC4igor4Lin4Li04Lig4Lix4LiKLQor4Lin4Li04Lig4Lix4LiK4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguKfguLTguKDguLHguIrguKfguLLguJfguLUKK+C4p+C4tOC4oOC4seC4leC4leC4tAor4Lin4Li04Lig4LiyCivguKfguLTguKDguLLguIQKK+C4p+C4tOC4oOC4suC4igor4Lin4Li04Lig4Liy4LiU4LiyCivguKfguLTguKDguLLguKfguLUKK+C4p+C4tOC4oOC4suC4qQor4Lin4Li04Lig4Liy4LiqCivguKfguLTguKDguLkKK+C4p+C4tOC4oOC4ueC4qeC4k+C4sAor4Lin4Li04Lig4Li54Lip4LiyCivguKfguLTguKDguLnguKnguLTguJUKK+C4p+C4tOC5gOC4oOC4leC4geC5jAor4Lin4Li04LmA4Lig4LiX4LiB4LmMCivguKfguLTguKHguJkKK+C4p+C4tOC4oeC4pQor4Lin4Li04Lih4Lil4Lix4LiBCivguKfguLTguKHguKXguLLguIEKK+C4p+C4tOC4oeC4seC4h+C4quC4sgor4Lin4Li04Lih4Lix4LiV4Li0CivguKfguLTguKHguLLguJkKK+C4p+C4tOC4oeC4uOC4ggor4Lin4Li04Lih4Li44LiVCivguKfguLTguKHguLjguJXguJXguLQKK+C4p+C4tOC5gOC4oeC4peC4t+C4reC4hwor4Lin4Li04LmC4Lih4LiB4LiC4LmMCivguKfguLTguYDguKLguJkKK+C4p+C4tOC5guC4ouC4hAor4Lin4Li04LijLQor4Lin4Li04Lij4LiH4Lij4Lit4LiHCivguKfguLTguKPguJXguLAKK+C4p+C4tOC4o+C4oeC4k+C4sAor4Lin4Li04Lij4Lin4LiwCivguKfguLTguKPguLAKK+C4p+C4tOC4o+C4seC4h+C4o+C4reC4hwor4Lin4Li04Lij4Lix4LiKCivguKfguLTguKPguLHguJUKK+C4p+C4tOC4o+C4seC4leC4tAor4Lin4Li04Lij4Liy4LiE4LiwCivguKfguLTguKPguLLguKEKK+C4p+C4tOC4o+C4suC4p+C4sAor4Lin4Li04Lij4Li04Lii4Lig4Liy4LieCivguKfguLTguKPguLTguKLguLAKK+C4p+C4tOC4o+C4uOC4mAor4Lin4Li04Lij4Li44Lis4Lir4LmMCivguKfguLTguKPguLjguKzguKvguIEKK+C4p+C4tOC4o+C4ueC4mwor4Lin4Li04Lij4Li54Lib4Lix4LiB4Lip4LmMCivguKfguLTguYDguKPguJnguJfguKPguYwKK+C4p+C4tOC5guC4o+C4hAor4Lin4Li04LmC4Lij4LiICivguKfguLTguYLguKPguIjguJnguYwKK+C4p+C4tOC5guC4o+C4kgor4Lin4Li04LmC4Lij4LiYCivguKfguLTguYLguKPguJjguJnguYwKK+C4p+C4tOC4peC4oi0KK+C4p+C4tOC4peC4seC4meC4lOC4sgor4Lin4Li04Lil4Lix4LiiCivguKfguLTguKXguLLguJQKK+C4p+C4tOC4peC4suC4mwor4Lin4Li04Lil4Liy4Lin4Lix4LiT4Lii4LmMCivguKfguLTguKXguLLguKgKK+C4p+C4tOC4peC4suC4qgor4Lin4Li04Lil4Liy4Liq4Li04LiZ4Li1CivguKfguLTguKXguLTguJvguJTguLIKK+C4p+C4tOC5gOC4peC4mwor4Lin4Li04LmA4Lil4LibLQor4Lin4Li04LmA4Lil4Lib4LiZ4LiwCivguKfguLTguYLguKXguIEKK+C4p+C4tOC5guC4peC4geC4meC4sAor4Lin4Li04LmC4Lil4LiI4LiZ4LiwCivguKfguLTguYLguKXguKEKK+C4p+C4tOC5hOC4pQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTCivguKfguLTguKfguKPguJPguYwKK+C4p+C4tOC4p+C4o+C4o+C4mOC4meC5jAor4Lin4Li04Lin4Lij4LiwCivguKfguLTguKfguLHguI8KK+C4p+C4tOC4p+C4seC4kuC4mS0KK+C4p+C4tOC4p+C4seC4kuC4meC5jAor4Lin4Li04Lin4Lix4LiS4LiZ4Liy4LiB4Liy4LijCivguKfguLTguKfguLHguJkKK+C4p+C4tOC4p+C4suC4lwor4Lin4Li04Lin4Liy4LirLQor4Lin4Li04Lin4Liy4Lir4LmMCivguKfguLTguKfguLLguKvguLAKK+C4p+C4tOC4p+C4tOC4iAor4Lin4Li04Lin4Li04LiVCivguKfguLTguKfguLTguJgKK+C4p+C4tOC5gOC4p+C4gQor4Lin4Li04Lio4Lij4Li44LiVCivguKfguLTguKjguKctCivguKfguLTguKjguKfguIHguKMKK+C4p+C4tOC4qOC4p+C4geC4o+C4o+C4oQor4Lin4Li04Lio4Lin4LiB4Lij4Lij4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguKfguLTguKjguLHguKXguKLguYwKK+C4p+C4tOC4qOC4suC4gi0KK+C4p+C4tOC4qOC4suC4guC4muC4ueC4iuC4sgor4Lin4Li04Lio4Liy4LiC4LiwCivguKfguLTguKjguLLguILguLIKK+C4p+C4tOC4qOC4suC4h+C4hOC5jAor4Lin4Li04Lio4Liy4LilCivguKfguLTguKjguLTguKnguI/guYwKK+C4p+C4tOC4qOC4uOC4l+C4mOC5jAor4Lin4Li04Lio4Li44LiX4LiY4Li04LmMCivguKfguLTguYDguKjguKkKK+C4p+C4tOC5gOC4qOC4qeC4ky0KK+C4p+C4tOC5gOC4qOC4qeC4k+C5jAor4Lin4Li04LmA4Lio4Lip4LiT4LiB4Liy4Lij4LiBCivguKfguLTguKnguJPguLgKK+C4p+C4tOC4qeC4k+C4uOC4geC4o+C4o+C4oQor4Lin4Li04Lip4LiT4Li44LmC4Lil4LiBCivguKfguLTguKnguJPguLjguYDguKfguJcKK+C4p+C4tOC4qeC4mOC4owor4Lin4Li04Lip4Lix4LiB4LiV4LmMCivguKfguLTguKnguLHguKIKK+C4p+C4tOC4qeC4suC4kwor4Lin4Li04Lip4Li44Lin4Lix4LiVCivguKfguLTguKrguIHguLXguYkKK+C4p+C4tOC4quC4oS0KK+C4p+C4tOC4quC4oi0KK+C4p+C4tOC4quC4o+C4o+C4iuC4meC4teC4ouC5jAor4Lin4Li04Liq4Lik4LiVCivguKfguLTguKrguKrguLjguIHguKPguKPguKEKK+C4p+C4tOC4quC4seC4iuC4meC4sgor4Lin4Li04Liq4Lix4LiN4LiN4Li1CivguKfguLTguKrguLHguI3guI3guLXguYHguJ7guJfguKLguYwKK+C4p+C4tOC4quC4seC4jeC4jeC4teC4p+C4tOC4l+C4ouC4sgor4Lin4Li04Liq4Lix4LiiCivguKfguLTguKrguLLguIItCivguKfguLTguKrguLLguILguJrguLnguIrguLIKK+C4p+C4tOC4quC4suC4guC4sAor4Lin4Li04Liq4Liy4LiC4LiyCivguKfguLTguKrguLLguKHguLHguI0KK+C4p+C4tOC4quC4suC4oeC4seC4jeC4huC4suC4leC4geC4o+C4o+C4oQor4Lin4Li04Liq4Liy4Lih4Liy4LiZ4Lii4LiZ4Liy4LihCivguKfguLTguKrguLLguKMKK+C4p+C4tOC4quC4suC4o+C4lwor4Lin4Li04Liq4Liy4LilCivguKfguLTguKrguLLguKrguLAKK+C4p+C4tOC4quC4suC4q+C4geC4tOC4iAor4Lin4Li04Liq4Li04LiQCivguKfguLTguKrguLjguIfguITguLLguKHguKrguLXguKHguLIKK+C4p+C4tOC4quC4uOC4l+C4mOC5jAor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMCivguKfguLTguKrguLnguJXguKMKK+C4p+C4tOC5gOC4quC4lwor4Lin4Li04Lir4LiECivguKfguLTguKvguIfguITguYwKK+C4p+C4tOC4q+C4peC4seC5iOC4mQor4Lin4Li04Lir4Liy4Lii4Liq4LiwCivguKfguLTguKvguLLguKMKK+C4p+C4tOC4q+C4suC4oy0KK+C4p+C4tOC4q+C4suC4o+C5geC4geC4peC4mgor4Lin4Li04Lir4Liy4Lij4LiE4LiUCivguKfguLTguKvguLLguKPguJfguLTguKgKK+C4p+C4tOC4q+C4suC4o+C4mOC4o+C4o+C4oQor4Lin4Li04Lir4Liy4Lij4Lii4Lit4LiUCivguKfguLTguKvguLLguKPguKvguKXguKfguIcKK+C4p+C4tOC4q+C4tOC4h+C4quC4sAor4Lin4Li04Lir4Li04LiH4Liq4LiyCivguKfguLTguYDguKvguKrguLIKK+C4p+C4tOC4rOC4seC4h+C4hOC5jAor4Lin4Li04Lis4Liy4LijCivguKfguLTguKzguLLguKPguYwKK+C4p+C4tQor4Lin4Li14LiI4Li0CivguKfguLXguIrguJnguLUKK+C4p+C4teC4k+C4sgor4Lin4Li14LmJ4LiUCivguKfguLXguJUtCivguKfguLXguKMtCivguKfguLXguKPguIHguKPguKPguKEKK+C4p+C4teC4o+C4iuC4mQor4Lin4Li14Lij4Lia4Li44Lij4Li44LipCivguKfguLXguKPguKrguJXguKPguLUKK+C4p+C4teC5iOC4p+C4seC4mQor4Lin4Li14LmI4LmB4Lin4LinCivguKfguLXguKrguLAKK+C4p+C4uOC5ieC4hwor4Lin4Li44LiQ4Li0CivguKfguLjguJIKK+C4p+C4uOC4kuC4tAor4Lin4Li44LiS4Li0LQor4Lin4Li44LiS4Li04Lia4Lix4LiV4LijCivguKfguLjguJLguLTguKrguKDguLIKK+C4p+C4uOC4kuC4tOC4quC4oeC4suC4iuC4tOC4gQor4Lin4Li44LiUCivguKfguLjguYjguJkKK+C4p+C4uOC5ieC4mQor4Lin4Li44LmJ4LiZ4LiK4LiyCivguKfguLjguYjguJnguYDguJvguYfguJnguIjguLjguKXguIHguJDguLTguJkKK+C4p+C4uOC5iOC4meC4p+C4suC4ogor4Lin4Li44LmJ4LiZ4LmA4Liq4LmJ4LiZCivguKfguLjguJoKK+C4p+C4uOC5ieC4ogor4Lin4Li44Lil4LmB4Lif4Lij4LihCivguKfguLnguYkKK+C4p+C4ueC4lOC4p+C4suC4lAor4Lin4Li54LiaCivguKfguLnguJrguKfguLLguJoKK+C4p+C4ueC5iOC4p+C4suC4oQor4LmA4Lin4LmJCivguYDguKfguIQKK+C5gOC4p+C4hOC4tOC4mQor4LmA4Lin4LiE4Li1CivguYDguKfguIgKK+C5gOC4p+C4iC0KK+C5gOC4p+C4iOC4geC4uOC4juC4tQor4LmA4Lin4LiI4Lih4Lij4Lij4LiECivguYDguKfguIoKK+C5gOC4p+C4ii0KK+C5gOC4p+C4iuC4geC4o+C4o+C4oQor4LmA4Lin4LiK4Lig4Lix4LiT4LiR4LmMCivguYDguKfguIrguKLguLHguJnguJXguYwKK+C5gOC4p+C4iuC4qOC4suC4quC4leC4o+C5jAor4LmA4Lin4LiQ4LiZ4LmMCivguYDguKfguJPguLAKK+C5gOC4p+C4k+C4tAor4LmA4Lin4LiT4Li04LiBCivguYDguKfguJPguLgKK+C5gOC4p+C4k+C4uOC4p+C4seC4mQor4LmA4Lin4LiV4LiZ4LmMCivguYDguKfguJXguKMKK+C5gOC4p+C4leC4suC4pQor4LmA4Lin4LiXCivguYDguKfguJctCivguYDguKfguJfguITguLkKK+C5gOC4p+C4l+C4meC4sgor4LmA4Lin4LiX4Lih4LiZ4LiV4Lij4LmMCivguYDguKfguJfguKLguYwKK+C5gOC4p+C4l+C4suC4h+C4hOC5jAor4LmA4Lin4LiX4Liy4LiH4LiE4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguKfguJfguLLguJnguJXguYwKK+C5gOC4p+C4l+C4suC4meC4leC4sAor4LmA4Lin4LiX4Li0CivguYDguKfguJfguLUKK+C5gOC4p+C4mOC4sAor4LmA4Lin4LiZCivguYDguKfguYnguJkKK+C5gOC4p+C4meC4hOC4t+C4meC4reC4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4LmA4Lin4LmJ4LiZ4LmB4LiV4LmICivguYDguKfguJnguYTguJXguKIKK+C5gOC4p+C5hOC4meC4ogor4LmA4Lin4Lih4LiwCivguYDguKfguKHguLHguJUKK+C5gOC4p+C4oeC4seC4leC4tOC4gS0KK+C5gOC4p+C4oeC4suC4leC4tOC4gQor4LmA4Lin4LmJ4LiiCivguYDguKfguKMKK+C5gOC4p+C4o+C4oeC4k+C4tQor4LmA4Lin4Lij4Li1CivguYDguKfguYLguKPguIjguJnguYwKK+C5gOC4p+C4peC4sgor4LmA4Lin4LmA4Lil4LiZ4LiL4Li1CivguYDguKfguKfguLHguJMKK+C5gOC4p+C4p+C4seC4k+C4k+C4tOC4ouC4sAor4LmA4Lin4Lio4Lih4LmMCivguYDguKfguKjguKLguYwKK+C5gOC4p+C4qOC4ouC4sgor4LmA4Lin4Liq4LiZ4LmMCivguYDguKfguKrguKDguLkKK+C5gOC4p+C4quC4oeC5jAor4LmA4Lin4Liq4Lih4LiwCivguYDguKfguKrguKfguLHguJMKK+C5gOC4p+C4quC4quC4sAor4LmA4Lin4Liq4Liq4Lix4LiZ4LiU4LijCivguYDguKfguKrguKrguLjguIHguKPguKPguKEKK+C5gOC4p+C4quC4quC4uOC4p+C4seC4kwor4LmA4Lin4Liq4Liy4Lij4Lix4LiKCivguYDguKfguKrguLQKK+C5gOC4p+C4quC4tOC4ouC4sgor4LmA4Lin4Lir4LiZCivguYDguKfguKvguLAKK+C5gOC4p+C4q+C4seC4h+C4hOC5jAor4LmA4Lin4Lir4Lix4Lib4LiV4Li0CivguYDguKfguKvguLIKK+C5gOC4p+C4q+C4suC4ouC4qgor4LmA4Lin4Lir4Liy4LiqCivguYDguKfguKzguLgKK+C5gOC4p+C4rOC4uOC4geC4suC4owor4LmA4Lin4Lis4Li44Lij4Li04LiiCivguYDguKfguKzguLjguKfguLHguJkKK+C5gOC4p+C5iOC4rQor4LmA4Lin4LmJ4LiyCivguYDguKfguYnguLLguKfguK3guJkKK+C5gOC4p+C4tOC4gQor4LmA4Lin4Li04LmJ4LiHCivguYDguKfguLTguYnguIfguKfguYnguLLguIcKK+C5gOC4p+C4teC5iOC4ogor4LmA4Lin4Li14Lii4LiHCivguYDguKfguLXguKLguJkKK+C5gOC4p+C4teC4ouC4meC5gOC4l+C4teC4ouC4mQor4LmA4Lin4Li14Lii4LiZ4Lir4Lix4LinCivguYDguKfguLXguKLguKMKK+C5gOC4p+C4teC5iOC4ouC4pwor4LmB4Lin4LmJCivguYHguKfguIcKK+C5geC4p+C5ieC4hwor4LmB4Lin4LmJ4LiH4LiB4Lix4LiUCivguYHguKfguJQKK+C5geC4p+C4lOC4peC5ieC4reC4oQor4LmB4Lin4LiU4Lin4LiHCivguYHguKfguJXguKMKK+C5geC4p+C4mQor4LmB4Lin4LmI4LiZCivguYHguKfguYjguJnguILguKLguLLguKIKK+C5geC4p+C4meC4lOC4sgor4LmB4Lin4LmI4LiZ4LiV4LiyCivguYHguKfguYjguJnguJ/guYnguLIKK+C5geC4p+C5iOC4meC5hOC4pwor4LmB4Lin4LiaCivguYHguKfguJrguYYKK+C5geC4p+C4muC4p+C4seC4mgor4LmB4Lin4LihCivguYHguKfguKcKK+C5geC4p+C5iOC4pwor4LmB4Lin4Lin4Lin4Liy4LihCivguYHguKfguKfguKfguLLguKcKK+C5geC4p+C4p+C4p+C4tOC5gOC4iuC4teC4ouC4owor4LmB4Lin4LiwCivguYLguKcKK+C5guC4p+C5iAor4LmC4Lin4LiB4Liy4LijCivguYLguKfguYjguIcKK+C5guC4p+C4l+C4suC4mQor4LmC4Lin4LmJ4LiiCivguYLguKfguKLguKfguLLguKIKK+C5guC4p+C5ieC5gOC4p+C5iQor4LmC4Lin4Liq4Liy4LiZCivguYLguKfguKvguLLguKMKK+C5hOC4pwor4LmE4Lin4LmJCivguYTguKfguIHguLnguJPguJDguYwKK+C5hOC4p+C5ieC5g+C4iAor4LmE4Lin4LiR4Li54Lij4Lii4LmMCivguYTguKfguYnguJXguLHguKcKK+C5hOC4p+C4l+C4ouC5jAor4LmE4Lin4LmJ4LiX4Li44LiB4LiC4LmMCivguYTguKfguYnguJjguLjguKPguLAKK+C5hOC4p+C5ieC5gOC4meC4t+C5ieC4reC5gOC4iuC4t+C5iOC4reC5g+C4iAor4LmE4Lin4Lie4LiI4LiZ4LmMCivguYTguKfguYTguJ8KK+C5hOC4p+C5ieC4ouC4qAor4LmE4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguYTguKfguKLguLLguKfguLHguIjguIHguKMKK+C5hOC4p+C4ouC4suC4p+C4seC4iOC4oeC4seC4ogor4LmE4Lin4LmJ4Lil4Liy4LiiCivguYTguKfguKfguKPguKPguJMKK+C5hOC4p+C4qeC4k+C4ngor4LmE4Lin4LmJ4Lir4LiZ4LmJ4LiyCivguYTguKfguYnguK3guLLguKXguLHguKIKK+C5hOC4p+C5guC4reC4peC4tOC4mQor4LioCivguKjguIEKK+C4qOC4geC4jwor4Lio4LiB4LilCivguKjguIHguLjguJkKK+C4qOC4geC4uOC4meC4leC5jAor4Lio4LiB4Li44LiZ4Li0CivguKjguIHguLjguJnguLUKK+C4qOC4h+C4geC4sgor4Lio4LiI4Li1CivguKjguJAKK+C4qOC4lOC4gQor4Lio4LiVCivguKjguJUtCivguKjguJXguIEKK+C4qOC4leC4muC4suC4lwor4Lio4LiV4Lib4LiX4Li1CivguKjguJXguJ7guKPguKPguKkKK+C4qOC4leC4oOC4tOC4qeC4seC4igor4Lio4LiV4Lin4Lij4Lij4LipCivguKjguJXguKrguLHguIfguKfguLHguJXguKrguKPguYwKK+C4qOC4leC4seC4huC4meC4tQor4Lio4LiZ4Li0CivguKjguJnguLTguKfguLLguKMKK+C4qOC4ngor4Lio4Lie4LilCivguKjguKEKK+C4qOC4oeC4mQor4Lio4LiiCivguKjguKLguJnguLAKK+C4qOC4ouC4suC4oQor4Lio4Lii4Liy4Lih4LilCivguKjguKMKK+C4qOC4o+C4meC4suC4o+C4suC4ouC4k+C5jAor4Lio4Lij4LigCivguKjguKPguKHguJPguLAKK+C4qOC4o+C4o+C4geC4o+C4sgor4Lio4Lij4Lin4LiT4LiwCivguKjguKPguKfguJPguLXguKLguYwKK+C4qOC4o+C4p+C4tOC4qeC4kOC4sgor4Lio4Lij4Lio4Li04Lil4Lib4LmM4LmE4Lih4LmI4LiB4Li04LiZ4LiB4Lix4LiZCivguKjguKPguLDguKfguJMKK+C4qOC4o+C4seC4k+C4ouC5jAor4Lio4Lij4Lix4LiT4Lii4Li5CivguKjguKPguLHguJbguJnguLAKK+C4qOC4o+C4seC4lwor4Lio4Lij4Lix4LiX4LiY4LiyCivguKjguKPguLHguKIKK+C4qOC4o+C4suC4l+C4mC0KK+C4qOC4o+C4suC4l+C4mOC5jAor4Lio4Lij4Liy4LiX4LiY4Lie4Lij4LiVCivguKjguKPguLLguJ4KK+C4qOC4o+C4suC4nuC4gQor4Lio4Lij4Liy4Lii4Li44LiYCivguKjguKPguLLguKfguIEKK+C4qOC4o+C4suC4p+C4k+C4sAor4Lio4Lij4Liy4Lin4Lij4LiT4LmMCivguKjguKPguLLguKrguJnguYwKK+C4qOC4o+C4tQor4Lio4Lij4Li14LiV4Lij4Lix4LiHCivguKjguKPguLXguKrguLHguIfguITguLXguJUKK+C4qOC4o+C4uOC4lQor4Lio4Lij4Li44LiV4Li0CivguKjguKTguITguLLguKUKK+C4qOC4pOC4h+C4hOC5jAor4Lio4Lik4LiH4LiE4Liy4LijCivguKjguKTguIfguITguLLguKPguLTguJkKK+C4qOC4pOC4h+C4hOC4suC4o+C4tQor4Lio4Lil4LigCivguKjguKXguLHguJYKK+C4qOC4peC4tOC4qeC4j+C5jAor4Lio4Lil4Li04Lip4LiyCivguKjguKcKK+C4qOC4p+C4qOC4uOC4owor4Lio4Lin4Lix4LiqCivguKjguKfguLHguKrguJkKK+C4qOC4p+C4sgor4Lio4Lin4Liy4LiZCivguKjguKfguLLguKoKK+C4qOC4qC0KK+C4qOC4qOC4mOC4owor4Lio4Lio4Lie4Li04LiZ4LiX4Li44LmMCivguKjguKjguKXguLHguIHguKnguJPguYwKK+C4qOC4qOC4sAor4Lio4Lio4Li0CivguKjguKjguLTguIHguKnguLHguKIKK+C4qOC4qOC4tOC4guC4seC4k+C4keC5jAor4Lio4Lio4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKjguKjguLTguJjguKMKK+C4qOC4qOC4tOC4mQor4Lio4Lio4Li04Lih4LiT4LiR4LilCivguKjguKjguLTguKfguLTguKHguKUKK+C4qOC4qOC4tQor4Lio4Liq4LiyCivguKjguK0KK+C4qOC4reC4gQor4Lio4Lit4LiB4LiB4Lil4Lix4LiaCivguKjguK3guIHguIHguLMKK+C4qOC4reC4geC4geC4s+C4oeC4sgor4Lio4Lit4LiB4LiE4Li54LmJCivguKjguK3guIHguJXguLnguKEKK+C4qOC4seC4geC4lOC4sgor4Lio4Lix4LiB4LiU4Li0CivguKjguLHguIHguJTguLTguYwKK+C4qOC4seC4geC4lOC4tOC4meC4sgor4Lio4Lix4LiB4LiU4Li04LmM4Lio4Lij4Li1CivguKjguLHguIHguJTguLTguYzguKrguLTguJfguJjguLTguYwKK+C4qOC4seC4geC4leC4tAor4Lio4Lix4LiB4LiiLQor4Lio4Lix4LiB4Lii4LmMCivguKjguLHguIHguKLguKDguLLguJ4KK+C4qOC4seC4geC4ouC4sAor4Lio4Lix4LiB4LijLQor4Lio4Lix4LiB4Lij4Lig4Lie4LiZ4LmMCivguKjguLHguIHguKPguLLguIoKK+C4qOC4seC4geC4o+C4tOC4meC4l+C4o+C5jAor4Lio4Lix4LiB4LmA4Lij4LiZ4LiX4Lij4LmMCivguKjguLHguIfguIHguKMKK+C4qOC4seC4h+C4geC4sgor4Lio4Lix4LiH4LiB4Li4CivguKjguLHguJXguKPguLkKK+C4qOC4seC4l+C4mOC4meC4sAor4Lio4Lix4LiZ4Liq4LiZ4LiwCivguKjguLHguJnguKrguJnguLXguKLguYwKK+C4qOC4seC4nuC4ly0KK+C4qOC4seC4nuC4l+C5jAor4Lio4Lix4Lie4LiX4Lih4Li54Lil4Lin4Li04LiX4Lii4LiyCivguKjguLHguKLguKLguLIKK+C4qOC4seC4pQor4Lio4Lix4Lil4LiBCivguKjguLHguKXguIHguLUKK+C4qOC4seC4peC4oi0KK+C4qOC4seC4peC4ouC4geC4o+C4o+C4oQor4Lio4Lix4Lil4Lii4LmB4Lie4LiX4Lii4LmMCivguKjguLHguKXguKLguKjguLLguKrguJXguKPguYwKK+C4qOC4seC4quC4lOC4owor4Lio4Lix4Liq4LiV4LijLQor4Lio4Lix4Liq4LiV4Lij4LiB4Lij4Lij4LihCivguKjguLHguKrguJXguKPguIHguLLguKMKK+C4qOC4seC4quC4leC4o+C4qOC4suC4quC4leC4o+C5jAor4Lio4Lix4Liq4LiV4Lij4LiyCivguKjguLHguKrguKIKK+C4qOC4suC4gQor4Lio4Liy4LiBLQor4Lio4Liy4LiB4LiV4LiwCivguKjguLLguIHguKDguLHguIHguKnguYwKK+C4qOC4suC4geC4oi0KK+C4qOC4suC4geC4ouC5gOC4geC4leC4uAor4Lio4Liy4LiB4Lii4Lie4Li44LiX4LiYCivguKjguLLguIHguKLguKHguLjguJnguLUKK+C4qOC4suC4geC4ouC4sAor4Lio4Liy4LiO4LiBCivguKjguLLguJDguKLguLAKK+C4qOC4suC4kwor4Lio4Liy4LiVCivguKjguLLguJnguJUtCivguKjguLLguJnguJXguYwKK+C4qOC4suC4meC4leC4o+C4qgor4Lio4Liy4LiZ4LiV4Li0CivguKjguLLguJnguJXguLTguIEtCivguKjguLLguJnguJXguLTguYLguKvguKEKK+C4qOC4suC4mwor4Lio4Liy4LibLQor4Lio4Liy4Lib4Lih4Li44LiB4LiV4Li04LmMCivguKjguLLguJvguLLguJnguJXguYwKK+C4qOC4suC4nuC4owor4Lio4Liy4Lij4LiXCivguKjguLLguKPguJfguKfguLTguKnguLjguKfguLHguJUKK+C4qOC4suC4o+C4l+C4ueC4pQor4Lio4Liy4Lij4Li04LiB4LiyCivguKjguLLguKUKK+C4qOC4suC4peC4geC4h+C4quC4uOC4pQor4Lio4Liy4Lil4LmB4LiC4Lin4LiHCivguKjguLLguKXguITguJTguLXguYDguJTguYfguIHguYHguKXguLDguYDguKLguLLguKfguIrguJkKK+C4qOC4suC4peC4iOC4seC4h+C4q+C4p+C4seC4lAor4Lio4Liy4Lil4LiK4Lix4LmJ4LiZ4LiV4LmJ4LiZCivguKjguLLguKXguI7guLXguIHguLIKK+C4qOC4suC4peC5gOC4leC4teC5ieC4ogor4Lio4Liy4Lil4LiX4Lir4Liy4LijCivguKjguLLguKXguJvguIHguITguKPguK3guIcKK+C4qOC4suC4peC5guC4m+C4o+C4tOC4quC4oOC4sgor4Lio4Liy4Lil4LmA4Lie4Li14Lii4LiH4LiV4LiyCivguKjguLLguKXguYHguJ7guYjguIcKK+C4qOC4suC4peC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4Lio4Liy4Lil4LmA4Lii4Liy4Lin4LiK4LiZ4LmB4Lil4Liw4LiE4Lij4Lit4Lia4LiE4Lij4Lix4LinCivguKjguLLguKXguYLguKXguIEKK+C4qOC4suC4peC4quC4luC4tOC4leC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4Lio4Liy4Lil4Liq4Li54LiHCivguKjguLLguKXguKrguLnguIfguKrguLjguJQKK+C4qOC4suC4peC4reC4suC4jeC4sgor4Lio4Liy4Lil4Lit4Li44LiX4LiY4Lij4LiT4LmMCivguKjguLLguKXguK3guLjguJfguJjguKPguJPguYzguKDguLLguIQKK+C4qOC4suC4peC4sgor4Lio4Liy4Lil4Liy4Lib4Lij4Liw4LiK4Liy4LiE4LihCivguKjguLLguKXguLLguKPguLLguKIKK+C4qOC4suC4peC4suC4quC4o+C4hwor4Lio4Liy4Lio4Lin4Lix4LiVCivguKjguLLguKrguIEKK+C4qOC4suC4quC4lOC4sgor4Lio4Liy4Liq4LiV4LijLQor4Lio4Liy4Liq4LiV4Lij4LmMCivguKjguLLguKrguJXguKPguLIKK+C4qOC4suC4quC4leC4o+C4suC4iOC4suC4o+C4ouC5jAor4Lio4Liy4Liq4LiZLQor4Lio4Liy4Liq4LiZ4LmMCivguKjguLLguKrguJnguIjguLHguIHguKMKK+C4qOC4suC4quC4meC4sgor4Lio4Liy4Liq4LiZ4Li14LiiLQor4Lio4Liy4Liq4LiZ4Li14Lii4LmMCivguKjguLLguKrguJnguLnguJvguJbguLHguKHguKDguIEKK+C4qOC4tOC4geC4qeC4gQor4Lio4Li04LiB4Liy4LijCivguKjguLTguILguKMKK+C4qOC4tOC4guC4o+C4tOC4mQor4Lio4Li04LiC4Lij4Li1CivguKjguLTguILguLHguJPguJHguYwKK+C4qOC4tOC4guC4sgor4Lio4Li04LiE4Liy4LilCivguKjguLTguIfguILguKMKK+C4qOC4tOC4h+C4guC4o+C4tOC4mQor4Lio4Li04LiVCivguKjguLTguJbguLUKK+C4qOC4tOC4nuC4tOC4o+C4sAor4Lio4Li04LijLQor4Lio4Li04Lij4Lib4Lij4Liw4Lig4LiyCivguKjguLTguKPguLAKK+C4qOC4tOC4o+C4sgor4Lio4Li04Lij4Liy4Lih4Lie4Li44LiKCivguKjguLTguYLguKPguKPguLHguJXguJnguYwKK+C4qOC4tOC5guC4o+C4o+C4suC4mgor4Lio4Li04LmC4Lij4LmA4Lin4LiQ4LiZ4LmMCivguKjguLTguKXguJstCivguKjguLTguKXguJvguYwKK+C4qOC4tOC4peC4m+C4geC4owor4Lio4Li04Lil4Lib4LiB4Lij4Lij4LihCivguKjguLTguKXguJvguIHguLLguKMKK+C4qOC4tOC4peC4m+C4geC4tOC4iAor4Lio4Li04Lil4Lib4Lin4Li04LiX4Lii4LiyCivguKjguLTguKXguJvguKjguLLguKrguJXguKPguYwKK+C4qOC4tOC4peC4m+C4sAor4Lio4Li04Lil4Lib4Li04LiZCivguKjguLTguKXguJvguLUKK+C4qOC4tOC4peC4sgor4Lio4Li04Lil4Liy4Lik4LiB4Lip4LmMCivguKjguLTguKXguLLguYHguKXguIcKK+C4qOC4tOC4py0KK+C4qOC4tOC4p+C5guC4oeC4geC4guC5jAor4Lio4Li04Lin4Lil4Li24LiH4LiE4LmMCivguKjguLTguKfguYDguKfguJcKK+C4qOC4tOC4p+C4sAor4Lio4Li04Lio4Li14Lij4LiwCivguKjguLTguKjguLgKK+C4qOC4tOC4qeC4juC4tAor4Lio4Li04Lip4LiP4LmMCivguKjguLTguKnguKLguYwKK+C4qOC4tOC4qeC4ouC5jOC4oeC4teC4hOC4o+C4uQor4Lio4Li14LiC4LijCivguKjguLXguILguKPguLTguJkKK+C4qOC4teC4guC4o+C4tQor4Lio4Li14LiVLQor4Lio4Li14LiV4LiB4Liy4LilCivguKjguLXguJXguKUKK+C4qOC4teC4o+C4qeC4sAor4Lio4Li14Lij4Lip4Liw4LiB4Lij4Liw4Lia4Li34LitCivguKjguLXguKPguKnguLDguYLguIQKK+C4qOC4teC4o+C4qeC4sOC4iuC5ieC4suC4hwor4Lio4Li14Lij4Lip4Liw4LmA4LiZ4Li34LmJ4LitCivguKjguLXguKUKK+C4qOC4teC4peC4iOC4uOC5iOC4oQor4Lio4Li14Lil4LiY4Lij4Lij4LihCivguKjguLXguKXguKHguKvguLLguKrguJnguLTguJcKK+C4qOC4teC4peC4peC5ieC4suC4h+C4muC4suC4mwor4Lio4Li14Lil4Lin4Lix4LiVCivguKjguLXguKXguK3guJQKK+C4qOC4tuC4gQor4Lio4Li24LiB4Lip4LiyCivguKjguLbguIHguKnguLLguJjguLTguIHguLLguKMKK+C4qOC4tuC4geC4qeC4suC4meC4tOC5gOC4l+C4qOC4geC5jAor4Lio4Li24LiB4Lir4LiZ4LmJ4Liy4LiZ4Liy4LiHCivguKjguLjguIHguKMtCivguKjguLjguIHguKPguYwKK+C4qOC4uOC4geC4o+C4p+C4o+C4o+C4kwor4Lio4Li44LiB4LilLQor4Lio4Li44LiB4Lil4Lib4Lix4LiB4Lip4LmMCivguKjguLjguIHguKXguLHguKEKK+C4qOC4uOC4geC4sAor4Lio4Li44LiI4Li0CivguKjguLjguIjguLTguIHguKPguKPguKEKK+C4qOC4uOC4l+C4mAor4Lio4Li44LiX4LiY4Li0CivguKjguLjguJkKK+C4qOC4uOC4meC4seC4gQor4Lio4Li44LiZ4Li0CivguKjguLjguKAtCivguKjguLjguKDguIHguKMKK+C4qOC4uOC4oOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lio4Li44Lig4LiZ4Li04Lih4Li04LiVCivguKjguLjguKDguKHguLHguKrguJTguLgKK+C4qOC4uOC4oOC4oeC4suC4leC4o+C4sgor4Lio4Li44Lig4Lih4Liy4LiqCivguKjguLjguKDguKMtCivguKjguLjguKDguK3guLHguIHguKnguKMKK+C4qOC4uOC4oOC4suC4h+C4hOC5jAor4Lio4Li44Lil4LiBLQor4Lio4Li44Lil4LiB4Liy4LiB4LijCivguKjguLjguKXguIHguLLguKPguLHguIHguKnguYwKK+C4qOC4uOC4peC4tQor4Lio4Li44Lip4Li04LijCivguKjguLnguIHguKMKK+C4qOC4ueC4l+C4owor4Lio4Li54LiZ4LiiLQor4Lio4Li54LiZ4Lii4LmMCivguKjguLnguJnguKLguYzguIHguLLguKPguITguYnguLIKK+C4qOC4ueC4meC4ouC5jOC4iuC4uOC4oeC4iuC4mQor4Lio4Li54LiZ4Lii4LmM4Lie4LmI4Liy4Lir4LmMCivguKjguLnguJnguKLguKDguLLguJ4KK+C4qOC4ueC4meC4ouC5jOC5gOC4ouC4suC4p+C4iuC4mQor4Lio4Li54LiZ4Lii4Lin4Liy4LiXCivguKjguLnguJnguKLguYzguKrguLHguKHguJrguLnguKPguJPguYwKK+C4qOC4ueC4meC4ouC5jOC4quC4ueC4leC4owor4Lio4Li54LilCivguKjguLnguKXguLTguJkKK+C5gOC4qOC4o+C4k+C4tQor4LmA4Lio4Lij4Lip4LiQLQor4LmA4Lio4Lij4Lip4LiQ4LmMCivguYDguKjguKPguKnguJDguIHguLTguIgKK+C5gOC4qOC4o+C4qeC4kOC4qOC4suC4quC4leC4o+C5jAor4LmA4Lio4Lij4Lip4LiQ4Li1CivguYDguKjguKPguYnguLIKK+C5gOC4qOC4o+C5ieC4suC4q+C4oeC4reC4hwor4LmA4Lio4Lil4LipCivguYDguKjguKfguJTguIfguITguYwKK+C5gOC4qOC4p+C4lOC4teC4oAor4LmA4Lio4Lin4LiVCivguYDguKjguKfguJUtCivguYDguKjguKfguJXguIfguITguYwKK+C5gOC4qOC4p+C4leC4ieC4seC4leC4owor4LmA4Lio4Lin4LiV4LijCivguYDguKjguKfguJXguLHguKHguJ7guKMKK+C5gOC4qOC4p+C4leC4tOC4oAor4LmA4Lio4Lin4LiV4Li14LigCivguYDguKjguKfguYDguJXguKAKK+C5gOC4qOC4p+C4suC4pQor4LmA4Lio4LipCivguYDguKjguKnguYDguIHguLTguJkKK+C5gOC4qOC4qeC4i+C5ieC4reC4mQor4LmA4Lio4Lip4Liq4LmI4Lin4LiZCivguYDguKjguKnguKrguLTguJoKK+C5gOC4qOC4suC4iC0KK+C5gOC4qOC4suC5hOC4iOC4ogor4LmA4Lio4Liy4Lij4LmMCivguYDguKjguLLguKPguKLguLAKK+C5gOC4qOC4tOC4gQor4LmA4Lio4Li14Lii4LijCivguYLguKjguIEKK+C5guC4qOC4gS0KK+C5guC4qOC4geC4meC4suC4j+C4geC4o+C4o+C4oQor4LmC4Lio4LiB4Lio4Lix4Lil4Lii4LmMCivguYLguKjguIHguLIKK+C5guC4qOC4geC4suC4lOC4ueC4owor4LmC4Lio4LiB4Liy4Lil4Lix4LiiCivguYLguKjguIHguLUKK+C5guC4qOC4iOC4meC4sAor4LmC4Lio4LiI4LiZ4Li14Lii4LiwCivguYLguKjguIjguLQKK+C5guC4qOC4luC4sAor4LmC4Lio4LiY4LiZ4LiwCivguYLguKjguJzguLAKK+C5guC4qOC4oAor4LmC4Lio4Lig4LiZCivguYLguKjguKDguLIKK+C5guC4qOC4oOC4tOC4lQor4LmC4Lio4Lig4Li04LiZCivguYLguKjguKDguLTguKnguJDguYwKK+C5guC4qOC4oOC4tQor4LmC4Lio4Lij4LiT4Li0CivguYLguKjguKPguJPguLUKK+C5guC4qOC4o+C4lOC4sgor4LmC4Lio4Lij4LiV4LijCivguYLguKjguKXguIEKK+C5hOC4qOC4pQor4LmE4Lio4LilLQor4LmE4Lio4Lin4LiwCivguKkKK+C4qeC4oeC4sgor4Lip4Lih4Liy4Lii4Li44Lih4LmB4Lib4Lil4LiHCivguKnguLHguI8KK+C4qeC4seC4j+C4geC4sAor4Lip4Lix4LiRCivguKnguLHguJMKK+C4qeC4seC4qQor4Lip4Lix4Lip4LiP4Li1CivguKnguLHguKnguJAKK+C4qeC4seC4qeC4kOC4tQor4LmC4Lip4LiR4LioCivguYLguKnguJHguKjguLHguJkKK+C4qgor4Liq4LiBLQor4Liq4LiB4LiPLQor4Liq4LiB4LiP4Lig4Liy4LijCivguKrguIHguI/guLAKK+C4quC4geC4l+C4suC4hOC4suC4oeC4tOC4nOC4pQor4Liq4LiB4LiX4Liy4LiE4Liy4Lih4Li04Lih4Lij4Lij4LiECivguKrguIHguJfguLLguITguLLguKHguLUKK+C4quC4geC4meC4mOC5jAor4Liq4LiB4Lib4Lij4LiBCivguKrguIHguKPguJPguLXguKLguYwKK+C4quC4geC4o+C4o+C4iOC5jAor4Liq4LiB4Lij4Lij4Lih4LiB4Lij4Li04Lii4LiyCivguKrguIHguKUKK+C4quC4geC4pS0KK+C4quC4geC4peC4oeC4q+C4suC4quC4seC4h+C4huC4m+C4o+C4tOC4k+C4suC4ouC4gQor4Liq4LiB4Lil4LmC4Lil4LiBCivguKrguIHguKfguLLguJfguLUKK+C4quC4geC4seC4lAor4Liq4LiB4Lix4LiU4LmB4LiE4Lij4LmICivguKrguIHguLIKK+C4quC4geC4suC4pwor4Liq4LiB4Li04LiX4Liy4LiE4Liy4Lih4Li1CivguKrguIHguLUKK+C4quC4geC4teC4meC5ieC4swor4Liq4LiB4Li44LiTCivguKrguIHguLjguJPguLIKK+C4quC4geC4uOC4k+C4tQor4Liq4LiB4Li44LiZCivguKrguIHguLjguJnguJXguYwKK+C4quC4geC4uOC4pQor4Liq4LiB4Li44Lil4Lij4Li44LiZ4LiK4Liy4LiV4Li0CivguKrguYDguIHguJUKK+C4quC5gOC4geC4leC4meC5ieC4s+C5geC4guC5h+C4hwor4Liq4LmB4LiB4LiZ4LmA4LiU4Li14Lii4LihCivguKrguILguLAKK+C4quC4guC4sgor4Liq4LiC4Li0CivguKrguIcKK+C4quC5iOC4hwor4Liq4LiH4LiB4LijCivguKrguIfguIHguKPguLLguJnguJXguYwKK+C4quC5iOC4h+C4geC4peC4tOC5iOC4mQor4Liq4LiH4LiB4LiyCivguKrguIfguYLguIHguIgKK+C4quC5iOC4h+C4guC5iOC4suC4pwor4Liq4LiH4LiE4LmMCivguKrguIfguITguKMKK+C4quC4h+C4hOC4o+C4suC4oQor4Liq4LiH4LiE4Lij4Liy4Lih4LiB4Lil4Liy4LiH4LmA4Lih4Li34Lit4LiHCivguKrguIfguITguKPguLLguKHguYDguKLguYfguJkKK+C4quC4h+C4hOC4o+C4suC4oeC5guC4peC4gQor4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguIfguIbguYwKK+C4quC5iOC4h+C4lOC4reC4gQor4Liq4LmI4LiH4LmA4LiU4LiKCivguKrguYjguIfguJXguLHguKcKK+C4quC5iOC4h+C4l+C5ieC4suC4ogor4Liq4LiH4LiaCivguKrguIfguJrguYDguKrguIfguLXguYjguKLguKEKK+C4quC5iOC4h+C4oOC4suC4qeC4sgor4Liq4LmI4LiH4Lil4LizCivguKrguIfguKfguJkKK+C4quC4h+C5gOC4qeC4mwor4Liq4LmI4LiH4Liq4LiB4Liy4LijCivguKrguIfguKrguLHguKIKK+C4quC4h+C4quC4suC4owor4Liq4LiH4Liq4Liy4LijLQor4Liq4LiH4Liq4Liy4Lij4LiX4Li44LiB4LiC4LmMCivguKrguIfguKrguLLguKPguKfguLHguI8KK+C4quC5iOC4h+C5gOC4quC4o+C4tOC4oQor4Liq4LmI4LiH4LmA4Liq4Li14LiiCivguKrguYjguIfguYDguKrguLXguKLguIcKK+C4quC4h+C4seC4lAor4Liq4LiH4LmI4LiyCivguKrguJAKK+C4quC4k+C4keC5jAor4Liq4LiUCivguKrguJTguIEKK+C4quC4lOC4hOC4suC4pwor4Liq4LiU4LiK4Li34LmI4LiZCivguKrguJTguJkKK+C4quC4lOC4oeC4oOC5jAor4Liq4LiU4LmGIOC4o+C5ieC4reC4meC5hgor4Liq4LiU4LmD4LiqCivguKrguJTguLHguJkKK+C4quC4lOC4seC4mgor4Liq4LiU4Lix4Lia4LiV4Lij4Lix4Lia4Lif4Lix4LiHCivguKrguJTguLHguJrguJvguIHguKPguJPguYwKK+C4quC4lOC4swor4Liq4LiU4Li1CivguKrguJTguLjguJTguLUKK+C4quC4lOC4ueC4mwor4Liq4LiVCivguKrguJXguIEKK+C4quC4leC4mQor4Liq4LiV4Lig4Li04Liq4LiK4LiwCivguKrguJXguKHguLLguKvguLAKK+C4quC4leC4o+C4reC4meC5gOC4iuC4teC4ouC4oQor4Liq4LiV4Lij4Li04LiB4LiZ4Li04LiZCivguKrguJXguKPguLUKK+C4quC4leC4o+C4teC4peC4tOC4h+C4hOC5jAor4Liq4LiV4Lij4Li14Lil4Li24LiH4LiE4LmMCivguKrguJXguLHguJkKK+C4quC4leC4seC4meC4ouC5jAor4Liq4LiV4Lix4Lie4LiY4LmMCivguKrguJXguLHguJ/guJ/guYwKK+C4quC4leC4seC4oeC4oOC5jAor4Liq4LiV4Liy4LiH4LiE4LmMCivguKrguJXguLQKK+C4quC4leC4tOC4m+C4seC4jeC4jeC4sgor4Liq4LiV4Li04Lib4Lix4LiP4LiQ4Liy4LiZCivguKrguJXguLTguKfguLTguJnguLHguKIKK+C4quC4leC4tOC4quC4seC4oeC4m+C4iuC4seC4jeC4jeC4sAor4Liq4LiV4Li1CivguKrguJXguLkKK+C4quC4leC4ueC4mwor4Liq4LiW4LiZCivguKrguJbguJrguJTguLUKK+C4quC4luC4pQor4Liq4LiW4LilLQor4Liq4LiW4Lil4LiX4Li04LiZCivguKrguJbguKXguJrguJYKK+C4quC4luC4peC4oeC4suC4o+C4hAor4Liq4LiW4Lin4Li04LijLQor4Liq4LiW4Lin4Li14LijLQor4Liq4LiW4Lin4Li14Lij4LiwCivguKrguJbguLLguJkKK+C4quC4luC4suC4meC4geC4suC4o+C4k+C5jAor4Liq4LiW4Liy4LiZ4Lig4Liy4LieCivguKrguJbguLLguJnguLAKK+C4quC4luC4suC4meC4tQor4Liq4LiW4Liy4Lia4LiBCivguKrguJbguLLguJrguLHguJkKK+C4quC4luC4suC4m+C4meC4sgor4Liq4LiW4Liy4Lib4LiZ4Li04LiBCivguKrguJbguLLguJvguJnguLXguKLguJ7guKLguLLguIHguKPguJPguYwKK+C4quC4luC4suC4m+C4meC4teC4ouC4p+C4suC4l+C4tQor4Liq4LiW4Liy4Lib4Lix4LiV4Lii4LiB4Lij4Lij4LihCivguKrguJbguLLguJvguLHguJXguKLguIHguKPguKPguKHguKjguLLguKrguJXguKPguYwKK+C4quC4luC4suC4nuC4owor4Liq4LiW4Liy4LilCivguKrguJbguLLguKfguKMKK+C4quC4luC4tOC4lQor4Liq4LiW4Li04LiV4Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguJbguLTguJXguLQKK+C4quC4luC4tOC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4Liq4LiW4Li04LijLQor4Liq4LiW4Li44LilCivguKrguJbguLnguJsKK+C4quC4l+C4tuC4hwor4Liq4LiX4Li44LihCivguKrguJjguJkKK+C4quC4mOC4uOC4quC4sAor4Liq4LiZCivguKrguYnguJkKK+C4quC4meC5g+C4iAor4Liq4LiZ4LmA4LiU4LiBCivguKrguJnguJXguLDguJ7guLLguKIKK+C4quC5ieC4meC4leC4teC4mQor4Liq4LiZ4LiX4LiZ4LiyCivguKrguJnguJfguKPguKPguKgKK+C4quC4meC4l+C4o+C4o+C4qOC4meC5jAor4Liq4LiZ4LiX4Li04LioCivguKrguJnguYDguJfguKgKK+C4quC4meC5gOC4l+C5iOC4q+C5jAor4Liq4LiZ4LiY4Lii4LiyCivguKrguJnguJjguLQKK+C4quC4meC4mOC4tOC4quC4seC4jeC4jeC4sgor4Liq4LiZ4LiY4Li04Lit4Lil4LiH4LiB4LiVCivguKrguJnguJnguKPguLLguITguLIKK+C4quC4meC5geC4nOC4hwor4Liq4LiZ4LihCivguKrguJnguKHguYDguK3guIEKK+C4quC4meC4p+C4mQor4Liq4LiZ4Lir4Liy4LiH4Liq4Li04LiH4Lir4LmMCivguKrguJnguK3guIcKK+C4quC4meC4reC4h+C5hOC4ggor4Liq4LiZ4Lit4LiH4LmE4LiUCivguKrguJnguK3guIfguYLguK3guKnguJDguYwKK+C4quC4meC4reC4mgor4Liq4LiZ4Lit4LihCivguKrguJnguLAKK+C4quC4meC4seC4lAor4Liq4LiZ4Lix4LiU4LmD4LiICivguKrguJnguLHguYjguJkKK+C4quC4meC4seC4mgor4Liq4LiZ4Lix4Lia4LmB4LiC4LmJ4LiHCivguKrguJnguLHguJrguIfguLIKK+C4quC4meC4seC4muC4l+C4tuC4mgor4Liq4LiZ4Lix4Lia4LiZ4Li04LmJ4Lin4Lih4Li34LitCivguKrguJnguLHguJrguYDguJ7guKXguLIKK+C4quC4meC4seC4muC4oeC4t+C4rQor4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZCivguKrguJnguLLguJTguIEKK+C4quC4meC4suC4mQor4Liq4LiZ4Liy4Lia4LiBCivguKrguJnguLLguJrguLHguJkKK+C4quC4meC4suC4oQor4Liq4LiZ4Liy4Lih4LmA4Lie4Lil4Liy4LiwCivguKrguJnguLLguKHguKvguKXguKfguIcKK+C4quC4meC4suC4ouC4uAor4Liq4LiZ4Li04LiBCivguKrguJnguLTguJcKK+C4quC4meC4tOC4l+C4quC4meC4oQor4Liq4LiZ4Li04LiYCivguKrguJnguLTguKEKK+C4quC4meC4tOC4oeC4quC4o+C5ieC4reC4ogor4Liq4LiZ4Li44LiBCivguKrguJnguLjguIHguYDguIHguK3guKPguYwKK+C4quC4meC4uOC4geC4quC4meC4suC4mQor4Liq4LiZ4Li44LiCCivguKrguJnguLjguJUKK+C4quC4meC4uOC5iOC4mQor4Liq4LiaCivguKrguJrguIcKK+C4quC4muC4iAor4Liq4Lia4LiWCivguKrguJrguJvguKPguLDguKHguLLguJcKK+C4quC4muC4quC4seC4h+C4p+C4suC4qgor4Liq4Lia4LmA4Liq4Li14LiiCivguKrguJrguLHguJkKK+C4quC4muC4suC4ogor4Liq4Lia4Li54LmICivguKrguJrguLnguYjguYDguKXguLfguK3guJQKK+C4quC5hOC4mgor4Liq4LmE4Lia4LmA4LiJ4Li14Lii4LiHCivguKrguYTguJrguJnguLLguIcKK+C4quC4m+C4o+C4tOC4hwor4Liq4Lib4Liy4LmA4LiB4LiV4LiV4Li1CivguKrguYDguJvguIHguJXguKPguLHguKEKK+C4quC5gOC4m+C4geC5guC4l+C4o+C4quC5guC4hOC4mwor4Liq4LmE4Lib4Lij4Li04Lil4Lil4Lix4LihCivguKrguJ7guLHguYnguJkKK+C4quC4nuC4suC4mgor4Liq4Lig4LiyCivguKrguKDguLLguIHguLLguIrguLLguJQKK+C4quC4oOC4suC4hAor4Liq4Lig4Liy4LiI4Liy4LijCivguKrguKDguLLguJnguLLguKLguIEKK+C4quC4oOC4suC4muC4lOC4tQor4Liq4Lig4Liy4LieCivguKrguKDguLLguJ7guJjguKPguKPguKEKK+C4quC4oOC4suC4py0KK+C4quC4oOC4suC4p+C4geC4suC4o+C4k+C5jAor4Liq4Lig4Liy4Lin4LiwCivguKrguKEKK+C4quC5ieC4oQor4Liq4Lih4LiB4Liy4LijCivguKrguKHguIHguLLguKPguYDguITguKHguLUKK+C4quC5ieC4oeC4geC4uOC5ieC4hwor4Liq4Lih4LiE4LiaCivguKrguKHguITguKfguKMKK+C4quC4oeC4hOC4sOC5gOC4mQor4Liq4Lih4LiI4LijCivguKrguKHguIjguKPguLTguIcKK+C4quC4oeC4iOC4suC4o+C4tQor4Liq4LmJ4Lih4LiK4Li34LmI4LiZCivguKrguYnguKHguYDguIrguYnguLIKK+C4quC4oeC4jeC4sgor4Liq4Lih4LmA4LiN4LioCivguKrguKHguJMtCivguKrguKHguJPguJrguKPguLTguILguLLguKMKK+C4quC4oeC4k+C5guC4p+C4q+C4suC4owor4Liq4Lih4LiT4Lio4Lix4LiB4LiU4Li04LmMCivguKrguKHguJPguKrguLLguKPguLnguJsKK+C4quC4oeC4k+C4quC4suC4quC4meC5jAor4Liq4Lih4LiT4LiwCivguKrguKHguJTguLjguKUKK+C4quC4oeC5gOC4lOC5h+C4iAor4Liq4Lih4LmA4LiU4LmH4LiI4Lie4Lij4Liw4Liq4Lix4LiH4LiG4Lij4Liy4LiKCivguKrguYnguKHguJXguLMKK+C4quC4oeC4li0KK+C4quC4oeC4luC4ouC4suC4meC4tOC4gQor4Liq4Lih4LiW4Lin4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguKrguKHguJbguLAKK+C4quC4oeC4l+C4mgor4Liq4LmJ4Lih4LiX4Lix4LiaCivguKrguKHguJnguK3guIEKK+C4quC4oeC4meC4seC4ogor4Liq4Lih4LiZ4Liy4LiE4Li44LiTCivguKrguKHguJnguYnguLPguKrguKHguYDguJnguLfguYnguK0KK+C4quC4oeC4meC5ieC4s+C4q+C4meC5ieC4sgor4Liq4Lih4LmD4LiZCivguKrguKHguJrguLHguJXguLQKK+C4quC4oeC4muC4seC4leC4tOC4meC4seC4geC5gOC4peC4hwor4Liq4Lih4Lia4Lix4LiV4Li04Lic4Li54LmJ4LiU4Li1CivguKrguKHguJrguLjguIHguKrguKHguJrguLHguJkKK+C4quC4oeC4muC4uOC4jQor4Liq4Lih4Lia4Li54Lij4LiT4LmMCivguKrguKHguJrguLnguKPguJPguLLguI3guLLguKrguLTguJfguJjguLTguKPguLLguIrguKLguYwKK+C4quC4oeC4m+C4o+C4sOC4geC4reC4mgor4Liq4Lih4Lib4Lij4Liw4LiU4Li1CivguKrguKHguJvguKTguJTguLUKK+C4quC4oeC4m+C4pOC5heC4lOC4tQor4Liq4LmJ4Lih4Lib4LmI4Lit4LiiCivguKrguKHguJvguLHguIEKK+C4quC4oeC4nOC4uOC4qgor4Liq4LmJ4Lih4LmB4Lic4LmI4LiZCivguKrguKHguJ7guIcKK+C4quC4oeC4nuC4h+C4qOC5jAor4Liq4Lih4Lie4Lij4Lib4Liy4LiBCivguKrguKHguJ7guKUKK+C4quC4oeC4nuC4seC4leC4quC4owor4Liq4Lih4Lie4Liy4LiqCivguKrguKHguYDguJ7guIoKK+C4quC4oeC5guC4nuC4mOC4meC5jAor4Liq4Lih4LmC4Lie4LiY4Li0CivguKrguYnguKHguJ/guLHguIEKK+C4quC4oeC4oOC4ngor4Liq4Lih4Lig4Liy4LijCivguKrguKHguYLguKDguIQKK+C4quC4oeC5guC4oOC4igor4Liq4Lih4Lih4LiVCivguKrguKHguKHguJXguLQKK+C4quC4oeC4oeC4leC4tC0KK+C4quC4oeC4oeC4leC4tOC4kOC4suC4mQor4Liq4LmJ4Lih4Lih4Liw4LiC4Liy4LihCivguKrguKHguKHguLLguJXguKMKK+C4quC5ieC4oeC4oeC4t+C4rQor4Liq4Lih4Lih4Li44LiV4Li0CivguKrguKHguKHguLjguJXguLQtCivguKrguKHguKHguLjguJXguLTguJDguLLguJkKK+C4quC4oeC4oeC4ueC4pQor4Liq4Lih4Lih4Li54Lil4LmA4LiE4Lih4Li1CivguKrguKHguYLguKHguJcKK+C4quC4oeC4ouC4reC4oQor4Liq4Lih4LmC4Lii4LiECivguKrguKHguKMKK+C4quC4oeC4oy0KK+C4quC4oeC4o+C4lAor4Liq4Lih4Lij4Lig4Li54Lih4Li0CivguKrguKHguKPguKPguJYKK+C4quC4oeC4o+C4o+C4li0KK+C4quC4oeC4o+C4o+C4luC4meC4sAor4Liq4Lih4Lij4Lij4LiW4Lig4Liy4LieCivguKrguKHguKPguKoKK+C4quC4oeC4o+C4ueC5iQor4Liq4Lih4Lik4LiU4Li1CivguKrguKHguKTguJXguLQKK+C4quC4oeC4pOC5heC4lOC4tQor4Liq4LmJ4Lih4Lil4Li04LmJ4LihCivguKrguKHguKfguLHguKIKK+C4quC4oeC4p+C4suC4ouC4sAor4Liq4Lih4Liq4Lix4LiBCivguKrguYnguKHguKrguLHguJnguJTguLLguJkKK+C4quC4oeC4quC4ueC5iAor4Liq4Lih4LmA4Liq4Lij4LmH4LiICivguKrguYnguKHguYDguKrguLXguYnguKLguKcKK+C4quC4oeC4q+C4meC5ieC4suC4quC4oeC4leC4sgor4Liq4Lih4LmA4Lir4LiV4Li44Liq4Lih4Lic4LilCivguKrguKHguK0KK+C4quC4oeC4reC4geC4suC4meC4mQor4Liq4Lih4Lit4LiHCivguKrguKHguK3guIfguJXguLLguKIKK+C4quC4oeC4reC4h+C4neC5iOC4rQor4Liq4Lih4Lit4LiI4Li14LiZCivguKrguKHguK3guJfguLDguYDguKUKK+C4quC4oeC4reC4quC4s+C5gOC4oOC4sgor4Liq4Lih4Lit4LmJ4Liy4LiHCivguKrguKHguLHguIQKK+C4quC4oeC4seC4hOC4owor4Liq4Lih4Lix4LiE4Lij4Lie4Lij4Lij4LiE4Lie4Lin4LiBCivguKrguKHguLHguITguKPguKrguKHguLIKK+C4quC4oeC4seC4hOC4o+C4quC4oeC4suC4mQor4Liq4Lih4Lix4LiH4LiE4Li1CivguKrguKHguLHguIoKK+C4quC4oeC4seC4iuC4iuC4sgor4Liq4Lih4Lix4LiN4LiN4LiyCivguKrguKHguLHguJUKK+C4quC4oeC4seC4mQor4Liq4Lih4Lix4LiZ4LiV4LmMCivguKrguKHguLHguKIKK+C4quC4oeC4seC4ouC5gOC4geC5iOC4sgor4Liq4Lih4Lix4Lii4LmD4Lir4Lih4LmICivguKrguKHguLIKK+C4quC4oeC4suC4hOC4oQor4Liq4Lih4Liy4LiI4Liy4LijCivguKrguKHguLLguIrguLTguIEKK+C4quC4oeC4suC4l+C4suC4mQor4Liq4Lih4Liy4LiY4Li0CivguKrguKHguLLguJktCivguKrguKHguLLguJnguITguJXguLQKK+C4quC4oeC4suC4meC4ieC4seC4meC4l+C5jAor4Liq4Lih4Liy4LiZ4Liq4Lix4LiH4Lin4Liy4LiqCivguKrguKHguLLguJrguLHguJXguLQKK+C4quC4oeC4suC4nuC4seC4meC4mOC4o+C4seC4kAor4Liq4Lih4Liy4LiqCivguKrguKHguYjguLPguYDguKrguKHguK0KK+C4quC4oeC4tOC4hwor4Liq4Lih4Li04LiH4LiX4Lit4LiHCivguKrguKHguLTguIfguJ7guKPguLLguKIKK+C4quC4oeC4tOC4h+C4oeC4tOC5iOC4h+C4iuC4suC4ogor4Liq4Lih4Li04LiVCivguKrguKHguLTguJXguLQKK+C4quC4oeC4tOC4l+C4mOC5jAor4Liq4Lih4Li04LiX4LiY4Li0CivguKrguKHguLUKK+C4quC4oeC4teC4mwor4Liq4Lih4Li14LijCivguKrguKHguLjguIEKK+C4quC4oeC4uOC4iOC4iOC4seC4ogor4Liq4Lih4Li44LiI4LmA4LiJ4LiXCivguKrguKHguLjguIjguYDguInguJctCivguKrguKHguLjguIjguYDguInguJfguJvguKvguLLguJkKK+C4quC4oeC4uOC4j+C4kOC4suC4mQor4Liq4Lih4Li44LiUCivguKrguKHguLjguJTguYTguJfguKIKK+C4quC4oeC4uOC4lOC4m+C4ueC4oeC5gOC4lOC4tOC4meC4l+C4suC4hwor4Liq4Lih4Li44LiV4LiW4Liy4LiZCivguKrguKHguLjguJfguKMKK+C4quC4oeC4uOC4l+C4oy0KK+C4quC4oeC4uOC4l+C4o+C5guC4hOC4lOC4oQor4Liq4Lih4Li44LiX4Lij4LmC4LiI4LijCivguKrguKHguLjguJfguKPguKjguLLguKrguJXguKPguYwKK+C4quC4oeC4uOC4l+C4o+C5gOC4quC4meC4sgor4Liq4Lih4Li44LiX4Lix4LiiCivguKrguKHguLjguJkKK+C4quC4oeC4uOC4meC5hOC4nuC4owor4Liq4Lih4Li44Lil4LmB4Lin4LmJ4LiHCivguKrguKHguLjguKstCivguKrguKHguLjguKvguYwKK+C4quC4oeC4uOC4q+C4geC4peC4suC5guC4q+C4oQor4Liq4Lih4Li44Lir4LmA4LiX4Lio4Liy4Lig4Li04Lia4Liy4LilCivguKrguKHguLjguKvguJnguLLguKEKK+C4quC4oeC4uOC4q+C4meC4suC4ouC4gQor4Liq4Lih4Li44Lir4Lib4Lij4Liw4LiY4Liy4LiZCivguKrguKHguLjguKvguJ7guKPguLDguIHguKXguLLguYLguKvguKEKK+C4quC5guC4oeC4mOC4suC4mQor4Liq4LmC4Lih4Liq4LijCivguKrguYLguKHguKrguKPguKrguLHguJnguJnguLTguJrguLLguJUKK+C4quC4ouC4lAor4Liq4Lii4LiU4Liq4Lii4Lit4LiHCivguKrguKLguJTguYHguKrguKLguIcKK+C4quC4ouC4meC4sAor4Liq4Lii4LiaCivguKrguKLguKHguJ7guKMKK+C4quC4ouC4oeC4oOC4uQor4Liq4Lii4Lit4LiHCivguKrguKLguK3guJkKK+C4quC4ouC4seC4oeC4nuC4owor4Liq4Lii4Lix4Lih4Lin4Lij4LiyCivguKrguKLguLLguKEKK+C4quC4ouC4suC4oS0KK+C4quC4ouC4suC4oeC4o+C4seC4kAor4Liq4Lii4Liy4LiiCivguKrguKLguLTguKcKK+C4quC4ouC4tOC5ieC4pwor4Liq4Lii4Li44LmI4LiZCivguKrguKLguLjguKHguJ7guKMKK+C4quC4ouC4uOC4oeC4oOC4uQor4Liq4LijCivguKrguKPguIEKK+C4quC4o+C4hwor4Liq4Lij4LmI4LiHCivguKrguKPguI/guLAKK+C4quC4o+C4ky0KK+C4quC4o+C4k+C4hOC4oeC4meC5jAor4Liq4Lij4LiT4LiV4Lij4Lix4LiiCivguKrguKPguJPguLAKK+C4quC4o+C4k+C4suC4hOC4oeC4meC5jAor4Liq4Lij4LiU4Lix4LiBCivguKrguKPguJTguLbguYjguJkKK+C4quC4o+C4lOC4t+C5iOC4mQor4Liq4Lij4LiV4LiwCivguKrguKPguJXguLHguIEKK+C4quC4o+C4l+C4sAor4Liq4Lij4LiX4Li24LiHCivguKrguKPguYHguJfguJoKK+C4quC4o+C4meC4uOC4gQor4Liq4Lij4LmA4LiZ4Liy4LiwCivguKrguKPguYTguJkKK+C4quC4o+C4mgor4Liq4Lij4Lia4LiaCivguKrguKPguJrguLHguJoKK+C4quC4o+C4ngor4Liq4Lij4LmA4Lie4LiK4LiNCivguKrguKPguKDguLAKK+C4quC4o+C4oOC4seC4jeC4jeC4sAor4Liq4Lij4Lig4Li5CivguKrguKPguKEKK+C4quC4o+C4owor4Liq4Lij4Lij4LiE4LmMCivguKrguKPguKPguJ4KK+C4quC4o+C4o+C4ni0KK+C4quC4o+C4o+C4nuC4hOC4o+C4suC4qgor4Liq4Lij4Lij4Lie4LiE4Li44LiTCivguKrguKPguKPguJ7guJnguLLguKEKK+C4quC4o+C4o+C4nuC4quC4suC4oeC4tOC4lQor4Liq4Lij4Lij4Lie4Lix4LiK4LiNCivguKrguKPguKPguJ7guLLguIHguKMKK+C4quC4o+C4o+C4nuC4suC4h+C4hOC5jAor4Liq4Lij4Lij4LmA4Lie4LiK4LiNCivguKrguKPguKPguYDguJ7guIrguLjguJTguLIKK+C4quC4o+C4o+C5gOC4nuC4iuC4uOC4lOC4suC4jeC4suC4kwor4Liq4Lij4Lij4Lin4LiHCivguKrguKPguKPguYDguKrguKPguLTguI0KK+C4quC4o+C4o+C5geC4quC4o+C5ieC4hwor4Liq4Lij4Lil4LiZCivguKrguKPguKXguKEKK+C4quC4o+C4peC4oeC4quC4peC4p+C4mQor4Liq4Lij4Lil4Lit4LiUCivguKrguKPguKXguK3guJkKK+C4quC4o+C4peC4sAor4Liq4Lij4Lil4LmJ4Liy4LiiCivguKrguKPguKXguLTguJQKK+C4quC4o+C5gOC4peC4ggor4Liq4Lij4Lin4LiHCivguKrguKPguKfguIfguYDguKoKK+C4quC4o+C4p+C4mwor4Liq4Lij4Lin4LihCivguKrguKPguKfguKHguIrguLXguJ4KK+C4quC4o+C4p+C4pQor4Liq4Lij4Lin4Lil4LmA4LiqCivguKrguKPguKfguKXguYDguKrguYDguK7guK7guLIKK+C4quC4o+C5gOC4quC4o+C4tOC4jQor4Liq4Lij4LmJ4Lit4LiiCivguKrguKPguYnguK3guKLguJfguK3guIcKK+C4quC4o+C5ieC4reC4ouC4l+C4sOC5geC4ogor4Liq4Lij4LmJ4Lit4Lii4LiZ4LiB4LmA4LiC4LiyCivguKrguKPguYnguK3guKLguJnguYnguLPguJzguLbguYnguIcKK+C4quC4o+C5ieC4reC4ouC4o+C4sOC4ouC5ieC4sgor4Liq4Lij4LmJ4Lit4Lii4LmA4Lio4Lij4LmJ4LiyCivguKrguKPguYnguK3guKLguKrguJkKK+C4quC4o+C5ieC4reC4ouC4reC5iOC4reC4mQor4Liq4Lij4LmJ4Lit4Lii4Lit4Li04LiZ4LiX4LiZ4Li04LilCivguKrguKPguLAKK+C4quC4o+C4sOC4geC4rQor4Liq4Lij4Liw4LiE4Lij4Liy4LiNCivguKrguKPguLDguJTguLAKK+C4quC4o+C4sOC4l+C5ieC4reC4mQor4Liq4Lij4Liw4Lie4Lij4Lix4LmI4LiHCivguKrguKPguLDguK3guLLguJQKK+C4quC4o+C4sOC4reC4t+C5ieC4mQor4Liq4Lij4Lix4LmI4LiHCivguKrguKPguLHguKrguKfguJTguLUKK+C4quC4o+C5iOC4suC4hwor4Liq4Lij4LmJ4Liy4LiHCivguKrguKPguYnguLLguIfguKfguLTguKHguLLguJnguYPguJnguK3guLLguIHguLLguKgKK+C4quC4o+C5ieC4suC4h+C4quC4o+C4o+C4hOC5jAor4Liq4Lij4Liy4LiNCivguKrguKPguYnguLLguKfguYDguKrguLXguKLguKcKK+C4quC4o+C4tOC4lQor4Liq4Lij4Li14LmJCivguKrguKPguLXguKMtCivguKrguKPguLXguKPguIHguLTguIgKK+C4quC4o+C4teC4o+C4mOC4suC4leC4uAor4Liq4Lij4Li14Lij4Lin4Li04LiX4Lii4LiyCivguKrguKPguLXguKPguKjguLLguKrguJXguKPguYwKK+C4quC4o+C4teC4o+C4sAor4Liq4Lij4Li14Lij4Lix4LiH4LiE4Liy4LijCivguKrguKPguLXguKPguLLguIfguITguLLguKMKK+C4quC4o+C4teC4quC4pOC4mgor4Liq4Lij4Li44LiBCivguKrguKPguLjguIHguYDguIHguKPguLIKK+C4quC4o+C4uOC4hwor4Liq4Lij4Li44LmC4LiZ4LiBCivguKrguKPguLjguJsKK+C4quC4o+C4uOC4quC4o+C4sAor4Liq4Lij4Li54LibCivguKrguYLguKPguIoKK+C4quC4pOC4gQor4Liq4Lik4LiE4Liy4LilCivguKrguKTguJUKK+C4quC4pOC4qeC4juC4tQor4Liq4Lik4Lip4LiP4LmMCivguKrguKUKK+C4quC4peC4lAor4Liq4Lil4LiaCivguKrguKXguJrguYTguKrguKUKK+C4quC4peC4muC5gOC4q+C4oeC4t+C4reC4lAor4Liq4Lil4Lin4LiZCivguKrguKXguKfguKIKK+C4quC4peC4reC4lAor4Liq4Lil4Lit4LiZCivguKrguKXguK3guKIKK+C4quC4peC4sAor4Liq4Lil4Liw4Liq4Lil4Lin4LiiCivguKrguKXguLHguIEKK+C4quC4peC4seC4geC5gOC4geC4peC4teC4ouC4pwor4Liq4Lil4Lix4LiB4LmA4LiV4LmJCivguKrguKXguLHguIHguYDguJ7guIrguKMKK+C4quC4peC4seC4geC4quC4s+C4hOC4seC4jQor4Liq4Lil4Lix4LiB4LmA4Liq4Lil4LiyCivguKrguKXguLHguIHguKvguKXguLHguIcKK+C4quC4peC4seC4lAor4Liq4Lil4Lix4LiU4LmE4LiUCivguKrguKXguLHguJoKK+C4quC4peC4seC4muC4ieC4suC4gQor4Liq4Lil4Lix4LinCivguKrguKXguLIKK+C4quC4peC4suC4gQor4Liq4Lil4Liy4LiB4LiB4Li04LiZ4LmB4Lia4LmI4LiHCivguKrguKXguLLguIHguIHguLTguJnguKPguKfguJoKK+C4quC4peC4suC4geC4oOC4seC4lQor4Liq4Lil4Liy4LiHCivguKrguKXguYnguLLguIcKK+C4quC4peC4suC4lAor4Liq4Lil4Liy4LiV4Lix4LiZCivguKrguKXguLLguJoKK+C4quC4peC4suC4ogor4Liq4Lil4Liy4LmA4Lir4Li04LiZCivguKrguKXguLTguJQKK+C4quC4peC4tOC4pQor4Liq4Lil4Li24LiBCivguKrguKXguLbguIcKK+C4quC4peC4uOC4lQor4Liq4Lil4Li44LiaCivguKrguKXguLjguKHguJ7guKMKK+C4quC5geC4peC4hwor4Liq4LinLQor4Liq4Lin4LiBCivguKrguKfguIHguKPguKPguKEKK+C4quC4p+C4geC4suC4o+C4ouC5jAor4Liq4LmJ4Lin4LiHCivguKrguKfguJQKK+C4quC4p+C4mQor4Liq4LmI4Lin4LiZCivguKrguYjguKfguJnguIHguKXguLLguIcKK+C4quC4p+C4meC4hOC4p+C4seC4mQor4Liq4Lin4LiZ4LiE4Lin4Liy4LihCivguKrguYjguKfguJnguYTguJTguYnguKrguYjguKfguJnguYDguKrguLXguKIKK+C4quC5iOC4p+C4meC4leC4seC4pwor4Liq4LmI4Lin4LiZ4LiX4LmJ4Lit4LiH4LiW4Li04LmI4LiZCivguKrguKfguJnguYHguJfguIcKK+C4quC5iOC4p+C4meC4m+C4o+C4sOC4geC4reC4mgor4Liq4Lin4LiZ4Lib4Liy4LiB4Liq4Lin4LiZ4LiE4LizCivguKrguYjguKfguJnguJzguKrguKEKK+C4quC5iOC4p+C4meC4oOC4ueC4oeC4tOC4oOC4suC4hAor4Liq4LmI4Lin4LiZ4Lij4Lin4LihCivguKrguYjguKfguJnguKXguJQKK+C4quC4p+C4meC4quC4meC4suC4oQor4Liq4LmI4Lin4LiZ4Liq4Lix4LiUCivguKrguYjguKfguJnguKvguJnguYnguLIKK+C4quC5iOC4p+C4meC4q+C4peC4seC4hwor4Liq4Lin4LiZ4LiwCivguKrguKfguJnguLLguIHguLLguKMKK+C4quC4p+C4meC4tOC4lQor4Liq4Lin4LiZ4Li14LiiLQor4Liq4Lin4LiaCivguKrguKfguKDguLLguJ4KK+C4quC4p+C4oQor4Liq4LmJ4Lin4LihCivguKrguKfguKHguIHguK3guJQKK+C4quC4p+C4oeC4o+C4reC4ogor4Liq4Lin4Lih4Lir4Lix4Lin4LmC4LiC4LiZCivguKrguKfguKIKK+C4quC5iOC4p+C4ogor4Liq4LmJ4Lin4LiiCivguKrguKfguKLguYHguJXguYjguKPguLnguJsg4LiI4Li54Lia4LmE4Lih4LmI4Lir4Lit4LihCivguKrguKfguKLguKEKK+C4quC4p+C4ouC4oeC4nuC4owor4Liq4Lin4Lii4Lih4Lig4Li5CivguKrguYnguKfguKLguYDguKrguLXguYnguKLguKcKK+C4quC4p+C4owor4Liq4Lin4Lij4Lij4LiELQor4Liq4Lin4Lij4Lij4LiE4LmMCivguKrguKfguKPguKPguITguJUKK+C4quC4p+C4o+C4o+C4hOC4muC4lOC4tQor4Liq4Lin4Lij4Lij4LiE4LmM4Lit4Lii4Li54LmI4LmD4LiZ4Lit4LiBIOC4meC4o+C4geC4reC4ouC4ueC5iOC5g+C4meC5g+C4iAor4Liq4Lin4Lij4Lij4LiE4Liy4Lil4Lix4LiiCivguKrguKfguKPguKPguKLguLIKK+C4quC4p+C4o+C4suC4iuC4ouC5jAor4Liq4Lin4LiwCivguKrguKfguLHguKrguJTguLTguYwKK+C4quC4p+C4seC4quC4lOC4tOC4geC4suC4owor4Liq4Lin4Lix4Liq4LiU4Li1CivguKrguKfguLHguKrguJXguLQKK+C4quC4p+C4seC4quC4leC4tOC4geC4sAor4Liq4Lin4LiyCivguKrguKfguLLguITguJUKK+C4quC4p+C4suC4hwor4Liq4Lin4LmI4Liy4LiHCivguKrguKfguYjguLLguIfguYTguKrguKcKK+C4quC4p+C4suC4lAor4Liq4Lin4Liy4LiU4Li0CivguKrguKfguLLguJXguLUKK+C4quC4p+C4suC4lwor4Liq4Lin4LmI4Liy4LiZCivguKrguKfguYnguLLguJkKK+C4quC4p+C4suC4mgor4Liq4Lin4Liy4Lib4Liy4LihCivguKrguKfguLLguKHguLQKK+C4quC4p+C4suC4oeC4tOC4meC4tQor4Liq4Lin4Liy4Lih4Li04Lig4Lix4LiB4LiU4Li04LmMCivguKrguKfguLLguKHguLUKK+C4quC4p+C4suC4ogor4Liq4Lin4Liy4Lii4Liq4LitCivguKrguKfguLLguKrguJTguLTguYwKK+C4quC4p+C4suC4q+C4sAor4Liq4Lin4Li04LiHCivguKrguKfguLTguIfguKrguKfguLLguKIKK+C4quC4p+C4tOC4jeC4jeC4suC4k+C4geC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lin4Li04LiV4LiK4LmMCivguKrguKrguLLguKMKK+C4quC4quC4suC4oy0KK+C4quC4quC4suC4o+C4meC4tOC4ouC4oQor4Liq4Liq4Li44Lij4LiwCivguKrguKrguLjguKPguLUKK+C4quC4qy0KK+C4quC4q+C4geC4o+C4k+C5jAor4Liq4Lir4LiB4Liy4LijCivguKrguKvguIjguKMKK+C4quC4q+C4iuC4suC4lQor4Liq4Lir4LiK4Liy4LiV4Li0CivguKrguKvguJjguKPguKPguKEKK+C4quC4q+C4mOC4o+C4o+C4oeC4tOC4gQor4Liq4Lir4Lia4Liy4LiZCivguKrguKvguJvguKPguLDguIrguLLguIrguLLguJXguLQKK+C4quC4q+C4nuC4seC4meC4mOC5jAor4Liq4Lir4Lie4Lix4LiZ4LiY4Lij4Lix4LiQCivguKrguKvguKDguLLguJ4KK+C4quC4q+C4oOC4suC4nuC5geC4o+C4h+C4h+C4suC4mQor4Liq4Lir4Lio4Li24LiB4Lip4LiyCivguKrguKvguLHguIoKK+C4quC4q+C4seC4oeC4muC4lOC4tQor4Liq4Lir4Lix4LiqLQor4Liq4Lir4Lix4Liq4LiY4Liy4Lij4LiyCivguKrguKvguLHguKrguJnguLHguKLguJnguYwKK+C4quC4q+C4seC4quC5gOC4meC4leC4owor4Liq4Lir4Lix4Liq4Lij4Lix4LiH4Liq4Li1CivguKrguKvguLHguKrguKrguLAKK+C4quC4q+C4seC4quC4sgor4Liq4Lir4Liy4LiiCivguKrguK0KK+C4quC5iOC4rQor4Liq4Lit4LiHCivguKrguYjguK3guIcKK+C4quC5ieC4reC4hwor4Liq4Lit4LiH4LmA4LiB4Lil4LitCivguKrguK3guIfguIjguLTguJXguKrguK3guIfguYPguIgKK+C4quC4reC4h+C5g+C4iAor4Liq4Lit4LiH4LiV4LmI4Lit4Liq4Lit4LiHCivguKrguK3guIfguJzguKEKK+C4quC4reC4h+C4neC4seC4geC4quC4reC4h+C4neC5iOC4suC4ogor4Liq4Lit4LiH4LmE4Lih4LmJCivguKrguK3guIfguKTguJTguLkKK+C4quC4reC4h+C4quC4peC4tuC4h+C5gOC4n+C4t+C5ieC4reC4hwor4Liq4Lit4LiH4Lir4LiZ4LmJ4LiyCivguKrguK3guJQKK+C4quC4reC4lOC4hOC4peC5ieC4reC4hwor4Liq4Lit4LiU4LmB4LiE4Lil4LmJ4LinCivguKrguK3guJTguYHguJnguKEKK+C4quC4reC4lOC4o+C4ueC5iQor4Liq4Lit4LiU4Lij4Li54LmJ4Liq4Lit4LiU4LmA4Lir4LmH4LiZCivguKrguK3guJTguKrguYjguK3guIcKK+C4quC4reC4lOC5g+C4quC5iAor4Liq4Lit4LiU4LmE4Liq4LmJCivguKrguK3guJkKK+C4quC5iOC4reC4mQor4Liq4Lit4LiZ4LiI4Lij4Liw4LmA4LiC4LmJ4LmD4Lir4LmJ4Lin4LmI4Liy4Lii4LiZ4LmJ4LizCivguKrguK3guJnguKvguJnguLHguIfguKrguLfguK3guKrguLHguIfguIbguKPguLLguIoKK+C4quC4reC4mgor4Liq4Lit4Lia4LiL4LmJ4Lit4LihCivguKrguK3guJrguJvguLLguIHguITguLMKK+C4quC4reC4muC4nuC4ouC4suC4mQor4Liq4Lit4Lia4LmE4Lil4LmICivguKrguK3guJrguKrguKfguJkKK+C4quC4reC4muC4quC4p+C4meC4l+C4p+C4meC4nuC4ouC4suC4mQor4Liq4Lit4Lib4Li54LiZCivguKrguK3guJ7guKXguK0KK+C4quC5ieC4reC4oQor4Liq4Lit4LiiCivguKrguK3guKLguJTguK3guIHguJ/guYnguLIKK+C4quC4reC4ouC4lOC4suC4pwor4Liq4Lit4Lii4Lic4LihCivguKrguK3guKLguYTguKMKK+C4quC5iOC4reC5gOC4quC4teC4ouC4lAor4Liq4LiwCivguKrguLDguIHguJQKK+C4quC4sOC4geC4rQor4Liq4Liw4LiB4Liy4LiHCivguKrguLDguIHguLLguKPguLAKK+C4quC4sOC4geC4suC4o+C4sOC4leC4suC4q+C4o+C4sgor4Liq4Liw4LiB4Li04LiUCivguKrguLDguYDguIHguYfguJQKK+C4quC4sOC5geC4gQor4Liq4Liw4LmB4LiB4Lin4Lix4Lil4Lii4LmMCivguKrguLDguYHguIHguYHguKrguIcKK+C4quC4sOC4hOC4o+C5ieC4rQor4Liq4Liw4LiE4Lij4Liy4LiNCivguKrguLDguITguYnguLLguJkKK+C4quC4sOC5gOC4h+C4suC4sOC4quC4sOC5geC4h+C4sAor4Liq4Liw4LmD4LiICivguKrguLDguJTguKEKK+C4quC4sOC4lOC4p+C4gQor4Liq4Liw4LiU4Lix4LiBCivguKrguLDguJTguLTguYnguIcKK+C4quC4sOC4lOC4tuC4hwor4Liq4Liw4LiU4Li34LitCivguKrguLDguJTguLjguYnguIcKK+C4quC4sOC4lOC4uOC5ieC4h+C4oeC4suC4owor4Liq4Liw4LiU4Li44LiUCivguKrguLDguJTguLjguJTguYPguIgKK+C4quC4sOC4lOC4uOC4lOC4leC4sgor4Liq4Liw4LiU4Li44LiU4Lir4Li5CivguKrguLDguYDguJTguYfguJQKK+C4quC4sOC5gOC4lOC4sgor4Liq4Liw4LmA4LiU4Liy4LiU4Li04LiZCivguKrguLDguYDguJTguLLguK3guLTguJnguYDguJTguLXguKIKK+C4quC4sOC5gOC4lOC4suC4sAor4Liq4Liw4LiV4LitCivguKrguLDguJXguK3guYDguJrguLIKK+C4quC4sOC4leC4suC4q+C4oeC4seC4mQor4Liq4Liw4LiV4Li2CivguKrguLDguJXguLfguK0KK+C4quC4sOC4leC4uAor4Liq4Liw4LmA4LiV4LmK4LiwCivguKrguLDguYLguJXguIEKK+C4quC4sOC4l+C4gQor4Liq4Liw4LiX4LiZCivguKrguLDguJfguYnguK3guJkKK+C4quC4sOC4l+C5ieC4reC4meC5g+C4iAor4Liq4Liw4LiX4LmJ4Liy4LiZCivguKrguLDguJfguLbguIEKK+C4quC4sOC4l+C4tuC4mQor4Liq4Liw4LiX4Li24LmI4LiZCivguKrguLDguYDguJfguLTguJkKK+C4quC4sOC5gOC4l+C4tOC5ieC4mQor4Liq4Liw4LmA4LiX4Li04LiZ4LiZ4LmJ4Liz4Liq4Liw4LmA4LiX4Li04LiZ4Lia4LiBCivguKrguLDguYDguJfguLfguK3guJkKK+C4quC4sOC5gOC4l+C4t+C5ieC4reC4mQor4Liq4Liw4LmA4LiX4Li34Lit4LiZ4LmD4LiICivguKrguLDguJrguLAKK+C4quC4sOC4muC4seC4gQor4Liq4Liw4Lia4Lix4LiB4LiI4LihCivguKrguLDguJrguLHguIHguKrguLDguJrguK3guKEKK+C4quC4sOC4muC4seC4lAor4Liq4Liw4Lia4Lix4LiU4LiB4LmJ4LiZCivguKrguLDguJrguLHguJTguKHguLfguK0KK+C4quC4sOC4muC4seC4lOC4o+C5ieC4reC4meC4quC4sOC4muC4seC4lOC4q+C4meC4suC4pwor4Liq4Liw4Lia4Lix4LiU4Lil4Li44LiB4Liq4Liw4Lia4Lix4LiU4LiZ4Lix4LmI4LiHCivguKrguLDguJrguLHguJTguKrguLDguJrguLTguYnguIcKK+C4quC4sOC4muC4seC4lOC4q+C4meC5ieC4sgor4Liq4Liw4Lia4Lix4LmJ4LiZCivguKrguLDguJrguLHguJnguIfguLIKK+C4quC4sOC4muC4seC4meC4h+C4suC4iOC4teC4mQor4Liq4Liw4Lia4Lix4LiZ4LiH4Liy4LiV4LmJ4LiZCivguKrguLDguJrguYnguLIKK+C4quC4sOC4muC5ieC4suC4q+C4seC4p+C5gOC4guC5iOC4sgor4Liq4Liw4Lia4Li5CivguKrguLDguYHguJrguIcKK+C4quC4sOC5gOC4m+C4sOC4quC4sOC4m+C4sAor4Liq4Liw4Lie4Lij4Lix4LiBCivguKrguLDguJ7guKPguLHguYjguIcKK+C4quC4sOC4nuC4o+C4tuC4h+C4geC4peC4seC4pwor4Liq4Liw4Lie4Lij4Li24LiaCivguKrguLDguJ7guLHguIEKK+C4quC4sOC4nuC4seC4hwor4Liq4Liw4Lie4Lix4LiUCivguKrguLDguJ7guLHguYnguJkKK+C4quC4sOC4nuC4suC4mQor4Liq4Liw4Lie4Liy4LiZ4LmB4LiC4Lin4LiZCivguKrguLDguJ7guLLguJnguIrguLHguIEKK+C4quC4sOC4nuC4suC4meC5gOC4iuC4t+C4reC4gQor4Liq4Liw4Lie4Liy4LiZ4LmA4LiU4Li04LiZ4LmA4Lij4Li34LitCivguKrguLDguJ7guLLguJnguJfguLjguYjguJkKK+C4quC4sOC4nuC4suC4meC5gOC4muC4teC5iOC4ouC4hwor4Liq4Liw4Lie4Liy4LiZ4Lib4Lil4LiyCivguKrguLDguJ7guLLguJnguYTguJ8KK+C4quC4sOC4nuC4suC4meC4peC4reC4ogor4Liq4Liw4Lie4Liy4LiZ4LmA4Liq4Li14LmJ4Lii4LinCivguKrguLDguJ7guLLguJnguKvguIEKK+C4quC4sOC4nuC4suC4meC4q+C4seC4mQor4Liq4Liw4Lie4Liy4LiiCivguKrguLDguJ7guLLguKLguYHguKXguYjguIcKK+C4quC4sOC5gOC4nuC4o+C5iOC4sgor4Liq4Liw4LmC4Lie4LiBCivguKrguLDguYDguKDguLIKK+C4quC4sOC5g+C4oOC5iQor4Liq4Liw4LmC4Lih4LiHCivguKrguLDguKPguLDguJXguLAKK+C4quC4sOC4o+C4sOC5geC4q+C4meC5iAor4Liq4Liw4Lil4Liw4Lib4Liw4LiV4Li44LmI4LiZCivguKrguLDguKXguLLguIcKK+C4quC4sOC4peC4tuC4oeC4quC4sOC4peC4t+C4rQor4Liq4Liw4Lin4Li14LmJ4LiU4Liq4Liw4Lin4LmJ4Liy4LiUCivguKrguLDguKrguKEKK+C4quC4sOC4quC4p+C4ogor4Liq4Liw4Liq4Liy4LiHCivguKrguLDguK3guLLguIcKK+C4quC4sOC4reC4suC4lAor4Liq4Liw4Lit4LmJ4Liy4LiZCivguKrguLDguK3guLTguYnguIcKK+C4quC4sOC4reC4tOC4lOC4quC4sOC5gOC4reC4teC4ouC4mQor4Liq4Liw4Lit4Li24LiBCivguKrguLDguK3guLbguIHguYDguILguYnguLLguYPguKrguYgKK+C4quC4sOC4reC4tuC4geC4quC4sOC4reC4t+C5ieC4mQor4Liq4Liw4Lit4Li34LmJ4LiZCivguKrguLDguYDguK3guYnguIcKK+C4quC4sOC5gOC4reC4pwor4Liq4Liw4LmA4Lit4Lit4LiwCivguKrguLDguYLguK3guJTguKrguLDguK3guIcKK+C4quC4sOC5hOC4rQor4Liq4Lix4LiBCivguKrguLHguIHguIHguLAKK+C4quC4seC4geC4geC4seC4iOC4iOC4sAor4Liq4Lix4LiB4LiB4Liy4LiiLQor4Liq4Lix4LiB4LiB4Liy4Lii4LiX4Li04LiQ4Li0CivguKrguLHguIHguIHguLLguKMtCivguKrguLHguIHguIHguLLguKPguLAKK+C4quC4seC4geC4guC4o+C4sgor4Liq4Lix4LiB4LiC4Li1CivguKrguLHguIHguILguLXguYnguYTguIHguYgKK+C4quC4seC4geC4j+C4sAor4Liq4Lix4LiB4LiV4LiwCivguKrguLHguIHguYHguJXguYjguKfguYjguLIKK+C4quC4seC4geC4ouC4sAor4Liq4Lix4LiB4Lin4LiyCivguKrguLHguIHguKfguYjguLIKK+C4quC4seC4geC4q+C4peC4suC4lAor4Liq4Lix4LiC4Lii4LiwCivguKrguLHguIQKK+C4quC4seC4hOC4hOC4sAor4Liq4Lix4LmI4LiHCivguKrguLHguIfguIHguKHguJfguKPguLHguJ7guKLguYwKK+C4quC4seC4h+C4geC4owor4Liq4Lix4LiH4LiB4Lij4LiT4Li1CivguKrguLHguIfguIHguLDguJXguLHguIcKK+C4quC4seC4h+C4geC4sOC4p+C4seC4hwor4Liq4Lix4LiH4LiB4Liw4Lin4Liy4LiUCivguKrguLHguIfguIHguLDguKrguLUKK+C4quC4seC4h+C4geC4seC4lAor4Liq4Lix4LiH4LiB4Lix4Lib4Lib4LiwCivguKrguLHguIfguIHguLIKK+C4quC4seC4h+C4geC4suC4owor4Liq4Lix4LiH4LiB4Liy4LioCivguKrguLHguIfguIHguLTguYDguKXguKoKK+C4quC4seC4h+C5gOC4geC4lQor4Liq4Lix4LiH4LmA4LiB4LiV4LiB4Liy4Lij4LiT4LmMCivguKrguLHguIfguIItCivguKrguLHguIfguILguYwKK+C4quC4seC4h+C4guC4geC4owor4Liq4Lix4LiH4LiC4LiVLQor4Liq4Lix4LiH4LiC4LiV4LiY4Lij4Lij4LihCivguKrguLHguIfguILguJXguLAKK+C4quC4seC4h+C4guC4ouC4sgor4Liq4Lix4LiH4LiC4Lil4Li04LiBCivguKrguLHguIfguILguKXguLTguIHguLIKK+C4quC4seC4h+C4guC4suC4owor4Liq4Lix4LiH4LiC4Liy4LijLQor4Liq4Lix4LiH4LiC4Liy4Lij4LiY4Lij4Lij4LihCivguKrguLHguIfguILguLLguKPguYLguKXguIEKK+C4quC4seC4h+C5gOC4guC4mwor4Liq4Lix4LiH4LmC4LiC4LigCivguKrguLHguIfguIQtCivguKrguLHguIfguITguYwKK+C4quC4seC4h+C4hOC4jeC4suC4leC4tAor4Liq4Lix4LiH4LiE4LihCivguKrguLHguIfguITguKEtCivguKrguLHguIfguITguKHguJnguLTguKLguKEKK+C4quC4seC4h+C4hOC4oeC4p+C4tOC4l+C4ouC4sgor4Liq4Lix4LiH4LiE4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguLHguIfguITguKHguKjguLbguIHguKnguLIKK+C4quC4seC4h+C4hOC4oeC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiE4Lir4LiwCivguKrguLHguIfguITguLHguIcKK+C4quC4seC4h+C4hOC4suC4leC4sgor4Liq4Lix4LiH4LiE4Liy4Lii4LiZ4LiyCivguKrguLHguIfguITguLLguKLguJnguLLguKIKK+C4quC4seC4h+C4hOC4teC4lQor4Liq4Lix4LiH4LiE4Li14LiV4Li0CivguKrguLHguIfguYDguITguYfguJQKK+C4quC4seC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiGLQor4Liq4Lix4LiH4LiG4LiB4Lij4Lij4LihCivguKrguLHguIfguIbguIHguLLguKPguLUKK+C4quC4seC4h+C4huC5gOC4luC4o+C4sAor4Liq4Lix4LiH4LiG4LiX4Liy4LiZCivguKrguLHguIfguIbguJnguLLguKLguIEKK+C4quC4seC4h+C4huC4m+C4suC5guC4oeC4geC4guC5jAor4Liq4Lix4LiH4LiG4Lig4Lix4LiVCivguKrguLHguIfguIbguYDguKDguJcKK+C4quC4seC4h+C4huC4oeC4k+C4keC4pQor4Liq4Lix4LiH4LiG4Lih4LiZ4LiV4Lij4Li1CivguKrguLHguIfguIbguKPguLLguIoKK+C4quC4seC4h+C4huC4quC4oOC4sgor4Liq4Lix4LiH4LiG4Liy4LiP4Li0CivguKrguLHguIfguIbguLLguJPguLHguJXguLQKK+C4quC4seC4h+C4huC4suC4l+C4tOC5gOC4quC4qgor4Liq4Lix4LiH4LiG4Liy4LiY4Li04LiB4Liy4LijCivguKrguLHguIfguIbguLLguJnguLjguKrguJXguLQKK+C4quC4seC4h+C4huC4suC4p+C4suC4qgor4Liq4Lix4LiH4LiU4Lix4LiBCivguKrguLHguIfguJvguLDguJXguLTguYHguKvguIfguLAKK+C4quC4seC4h+C4m+C4sOC4peC4tOC5gOC4q+C4h+C4sAor4Liq4Lix4LiH4LmC4Lii4LiECivguKrguLHguIfguYLguKLguIrguJnguYwKK+C4quC4seC4h+C4p+C4owor4Liq4Lix4LiH4Lin4Lix4LiI4LiJ4Lij4LiwCivguKrguLHguIfguKfguLHguJjguKLguLLguKIKK+C4quC4seC4h+C4p+C4suC4pQor4Liq4Lix4LiH4Lin4Liy4Lil4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguKrguLHguIfguKfguLLguKoKK+C4quC4seC4h+C5gOC4p+C4hOC4sAor4Liq4Lix4LiH4LmA4Lin4LiKCivguKrguLHguIfguYDguKfguKIKK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mQor4Liq4Lix4LiH4Liq4LiB4Lik4LiVCivguKrguLHguIfguKrguIHguLLguKMKK+C4quC4seC4h+C4quC4lOC4oeC4oOC5jAor4Liq4Lix4LiH4Liq4LiZ4LiX4LiZ4LiyCivguKrguLHguYjguIfguKrguJnguJfguJnguLIKK+C4quC4seC5iOC4h+C4quC4oQor4Liq4Lix4LiH4Liq4Lij4Lij4LiE4LmMCivguKrguLHguYjguIfguKrguK3guJkKK+C4quC4seC4h+C4quC4suC4o+C4p+C4seC4jwor4Liq4Lix4LiH4Liq4Li04LiX4LiY4Li0CivguKrguLHguIfguKrguLjguJfguJjguYwKK+C4quC4seC4h+C4quC4uOC4l+C4mOC4tAor4Liq4Lix4LmI4LiH4LmA4Liq4Li14LiiCivguKrguLHguIfguKvguKMKK+C4quC4seC4h+C4q+C4o+C4k+C5jAor4Liq4Lix4LiH4Lir4Lij4Lij4LipCivguKrguLHguIfguKvguLLguKMKK+C4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiwCivguKrguLHguIfguKvguLTguJUKK+C4quC4seC4iAor4Liq4Lix4LiILQor4Liq4Lix4LiI4LiB4Li04Lij4Li04Lii4LiyCivguKrguLHguIjguIjguLAKK+C4quC4seC4iOC4jeC4suC4kwor4Liq4Lix4LiI4LiZ4Li04Lii4LihCivguKrguLHguIjguJ7guIjguJnguYwKK+C4quC4seC4iuC4jC0KK+C4quC4seC4iuC4jOC4geC4owor4Liq4Lix4LiK4LiM4LiB4Liy4LijCivguKrguLHguIrguIzguLAKK+C4quC4seC4iuC4jOC4suC4ouC4sAor4Liq4Lix4LiK4LiM4Li4CivguKrguLHguIrguIzguLjguIHguKMKK+C4quC4seC4iuC4jOC4uOC4geC4suC4owor4Liq4Lix4LiN4LiI4LijCivguKrguLHguI3guIjguKPguYLguKPguIQKK+C4quC4seC4jeC4iOC4suC4owor4Liq4Lix4LiN4LmA4LiI4LiV4LiZ4LiyCivguKrguLHguI3guIrguLLguJUtCivguKrguLHguI3guIrguLLguJXguI3guLLguJMKK+C4quC4seC4jeC4iuC4suC4leC4tAor4Liq4Lix4LiN4LiM4LiyCivguKrguLHguI3guI3guLIKK+C4quC4seC4jeC4jeC4suC4kwor4Liq4Lix4LiN4LiN4Liy4Lia4Lix4LiV4LijCivguKrguLHguI3guI3guLLguJvguKPguLDguIHguLHguJnguIrguLXguKfguLTguJUKK+C4quC4seC4jeC4jeC4suC4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4Liq4Lix4LiN4LiN4Liy4Lin4Li04Lib4Lil4Liy4LiqCivguKrguLHguI3guI3guLUKK+C4quC4seC4jeC5guC4jeC4iuC4meC5jAor4Liq4Lix4LiN4Lib4Lij4Liw4LiB4Liy4LioCivguKrguLHguI3guYLguKLguIQKK+C4quC4seC4jeC4peC4seC4geC4qeC4k+C5jAor4Liq4Lix4LiQ4Li0CivguKrguLHguJPguJDguLLguJkKK+C4quC4seC4k+C4kOC4tOC4leC4tAor4Liq4Lix4LiT4LiR4LmMCivguKrguLHguJPguKvguYwKK+C4quC4seC4lAor4Liq4Lix4LiU4LiI4Lit4LiHCivguKrguLHguJTguKrguYjguKfguJkKK+C4quC4seC4lQor4Liq4Lix4LiVLQor4Liq4Lix4LiV4LiB4Liy4LijCivguKrguLHguJXguJXguJrguIfguIHguIoKK+C4quC4seC4leC4leC4muC4o+C4o+C4kwor4Liq4Lix4LiV4LiV4Lia4Li44Lip4Lii4LmMCivguKrguLHguJXguJXguLAKK+C4quC4seC4leC4leC4suC4qy0KK+C4quC4seC4leC4leC4suC4q+C4geC4suC4peC4tOC4gQor4Liq4Lix4LiV4LiV4Li5CivguKrguLHguJXguJYtCivguKrguLHguJXguJbguLHguJnguJTguKMKK+C4quC4seC4leC4luC4sgor4Liq4Lix4LiV4LiW4Li0CivguKrguLHguJXguJbguLgKK+C4quC4seC4leC4luC4uOC4qOC4suC4quC4meC4sgor4Liq4Lix4LiV4Lia4LiWCivguKrguLHguJXguJrguKPguKPguJMKK+C4quC4seC4leC4muC4o+C4tOC4oOC4seC4k+C4keC5jAor4Liq4Lix4LiV4Lia4Li44Lij4Li44LipCivguKrguLHguJXguKDguLHguJPguJHguYwKK+C4quC4seC4leC4oS0KK+C4quC4seC4leC4oeC4p+C4suC4owor4Liq4Lix4LiV4LiiLQor4Liq4Lix4LiV4Lii4LmMCivguKrguLHguJXguKLguJ7guKPguJUKK+C4quC4seC4leC4ouC4p+C4suC4l+C4tQor4Liq4Lix4LiV4Lii4Liy4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguJXguKLguLLguJjguLTguKnguJDguLLguJkKK+C4quC4seC4leC4ouC4suC4muC4seC4mQor4Liq4Lix4LiV4LinLQor4Liq4Lix4LiV4Lin4LmMCivguKrguLHguJXguKfguJrguLLguKUKK+C4quC4seC4leC4p+C5geC4nuC4l+C4ouC5jAor4Liq4Lix4LiV4Lin4LmC4Lil4LiBCivguKrguLHguJXguKfguKfguLTguJfguKLguLIKK+C4quC4seC4leC4p+C4sgor4Liq4Lix4LiV4Lin4Liy4LijCivguKrguLHguJXguKrguJTguIEKK+C4quC4seC4l+C4mOC4o+C4o+C4oQor4Liq4Lix4LiX4LiY4LiyCivguKrguLHguJfguJjguLLguIjguKPguLTguJUKK+C4quC4seC4l+C4mOC4suC4mOC4tOC4gQor4Liq4Lix4LiX4LiY4Li04LiH4Lin4Li04Lir4Liy4Lij4Li04LiBCivguKrguLHguJfguJjguLTguJnguJfguKPguLXguKLguYwKK+C4quC4seC4l+C4mOC4tOC4p+C4tOC4q+C4suC4o+C4tOC4gQor4Liq4Lix4LiX4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguLHguJkKK+C4quC4seC5iOC4mQor4Liq4Lix4LmJ4LiZCivguKrguLHguJnguYDguILguLIKK+C4quC4seC4meC4lOC4reC4mQor4Liq4Lix4LiZ4LiU4Liy4LiZCivguKrguLHguJnguJTguLLguJsKK+C4quC4seC4meC5gOC4lOC4gQor4Liq4Lix4LiZ4LmC4LiU4LipCivguKrguLHguJnguJXguYwKK+C4quC4seC4meC4leC4leC4tAor4Liq4Lix4LiZ4LiV4Liw4Lib4Liy4Lib4LiyCivguKrguLHguJnguJXguLDguKfguLIKK+C4quC4seC4meC4leC4tAor4Liq4Lix4LiZ4LiV4Li04LiB4LiwCivguKrguLHguJnguJXguLTguKDguLLguJ4KK+C4quC4seC4meC4leC4uOC4j+C4kOC4tQor4Liq4Lix4LiZ4LiW4Lij4LiwCivguKrguLHguJnguJbguKctCivguKrguLHguJnguJbguKfguYTguKHguJXguKPguLUKK+C4quC4seC4meC4luC4p+C4sAor4Liq4Lix4LiZ4LiW4Lix4LiVCivguKrguLHguJnguJbguLLguKMKK+C4quC4seC4meC4l+C4meC4sAor4Liq4Lix4LiZ4LiX4LiwCivguKrguLHguJnguJfguLHguJQKK+C4quC4seC4meC4l+C4seC4lOC4geC4o+C4k+C4tQor4Liq4Lix4LiZ4LiX4Lix4Liq4LiZ4LiwCivguKrguLHguJnguJfguLLguJkKK+C4quC4seC4meC4l+C4tOC4kOC4tOC4gS0KK+C4quC4seC4meC4l+C4tOC4qgor4Liq4Lix4LiZ4LmA4LiX4LiqCivguKrguLHguJnguYDguJfguKsKK+C4quC4seC4meC4mOC4suC4mQor4Liq4Lix4LiZ4LiZ4Li04LiY4Li0CivguKrguLHguJnguJnguLTguJrguLLguJUKK+C4quC4seC4meC4meC4tOC4p+C4suC4qgor4Liq4Lix4LiZ4LiZ4Li04LmA4Lin4LiqCivguKrguLHguJnguJnguLTguKnguJDguLLguJkKK+C4quC4seC4meC4m+C4seC4meC4meC5ieC4swor4Liq4Lix4LiZ4Lie4Lij4LmJ4Liy4LiZ4Liy4LiH4LmB4LitCivguKrguLHguJnguJ7guKPguYnguLLguKHguK3guI0KK+C4quC4seC4meC4nuC4o+C5ieC4suC4q+C4reC4oQor4Liq4Lix4LiZ4Lij4Lin4LiHCivguKrguLHguJnguKXguLbguIEKK+C4quC4seC4meC4quC4geC4pOC4lQor4Liq4Lix4LiZ4Lir4Lil4Lix4LiHCivguKrguLHguJnguKvguKXguLHguIfguKLguLLguKcKK+C4quC4seC4mgor4Liq4Lix4Lia4LmA4LiB4Lil4Li14Lii4LinCivguKrguLHguJrguYDguIfguLIKK+C4quC4seC4muC5gOC4iuC4t+C4reC4gQor4Liq4Lix4Lia4LiZ4LiBCivguKrguLHguJrguJvguKXguLHguJoKK+C4quC4seC4muC4m+C4peC4teC5iQor4Liq4Lix4Lia4Lib4Liw4LiC4Liy4LinCivguKrguLHguJrguJvguLDguKPguJQKK+C4quC4seC4muC5gOC4m+C4peC4teC5iOC4ouC4mQor4Liq4Lix4Lia4Liq4LiZCivguKrguLHguJrguKvguKXguLXguIEKK+C4quC4seC4m+C4hOC4seC4mgor4Liq4Lix4Lib4LiE4Lix4Lia4LiK4LmJ4Liy4LiHCivguKrguLHguJvguJQtCivguKrguLHguJvguJTguJkKK+C4quC4seC4m+C4lOC4m+C4geC4o+C4k+C5jAor4Liq4Lix4Lib4LiU4Lib4Lij4Liw4LiB4Lij4LiT4LmMCivguKrguLHguJvguJTguKrguJTguIEKK+C4quC4seC4m+C4lOC4suC4q+C5jAor4Liq4Lix4Lib4LiU4Liy4Lir4LiwCivguKrguLHguJvguJUtCivguKrguLHguJvguJXguKjguIEKK+C4quC4seC4m+C4l+C4mQor4Liq4Lix4Lib4Lib4LiwCivguKrguLHguJvguJvguLQKK+C4quC4seC4m+C4m+C4uOC4o+C4tOC4qi0KK+C4quC4seC4m+C4m+C4uOC4o+C4uOC4qQor4Liq4Lix4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMCivguKrguLHguJvguKvguIfguIEKK+C4quC4seC4m+C5gOC4q+C4o+C5iOC4rQor4Liq4Lix4LieCivguKrguLHguJ7guJ7guLAKK+C4quC4seC4nuC4nuC4seC4jeC4jeC4uQor4Liq4Lix4Lie4LmA4Lie4LmA4Lir4Lij4LiwCivguKrguLHguJ7guKLguK3guIEKK+C4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4Liq4Lix4Lih4Lib4LiK4Lix4LiN4LiN4LiwCivguKrguLHguKHguJvguJfguLIKK+C4quC4seC4oeC4m+C4l+C4suC4mQor4Liq4Lix4Lih4Lib4Lii4Li44LiVCivguKrguLHguKHguJvguYLguKLguIQKK+C4quC4seC4oeC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Liq4Lix4Lih4Lib4Lij4Liw4Lir4Liy4LijCivguKrguLHguKHguJvguKPguLLguKLguKDguJ4KK+C4quC4seC4oeC4m+C4o+C4suC4ouC4tOC4geC4oOC4ngor4Liq4Lix4Lih4Lib4Lix4LiV4LiV4Li0CivguKrguLHguKHguJzguLHguJvguKXguLLguJsKK+C4quC4seC4oeC4nOC4seC4qgor4Liq4Lix4Lih4Lic4Lix4Liq4LiZ4Lit4LiBCivguKrguLHguKHguJzguLHguKrguYPguJkKK+C4quC4seC4oeC4nOC4seC4quC4quC4o+C4sAor4Liq4Lix4Lih4Lic4Lix4Liq4Lit4Lix4LiB4Lip4LijCivguKrguLHguKHguJ7guKUKK+C4quC4seC4oeC4nuC4q+C4uOC4peC4sgor4Liq4Lix4Lih4Lie4Lix4LiI4LiJ4LijLQor4Liq4Lix4Lih4Lie4Lix4LiI4LiJ4Lij4LiJ4Li04LiZ4LiX4LmMCivguKrguLHguKHguJ7guLHguJXguKrguKMKK+C4quC4seC4oeC4nuC4seC4l+C4mOC5jAor4Liq4Lix4Lih4Lie4Lix4LiZ4LiYLQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguKrguLHguKHguJ7guLHguJnguJjguJnguYwKK+C4quC4seC4oeC4nuC4seC4meC4mOC4oOC4suC4ngor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4Lih4Li04LiV4LijCivguKrguLHguKHguJ7guLHguJnguJjguYTguKHguJXguKPguLUKK+C4quC4seC4oeC4nuC4suC4mOC4sAor4Liq4Lix4Lih4Lie4Liy4Lir4LiZ4LmMCivguKrguLHguKHguJ7guLLguKvguLAKK+C4quC4seC4oeC4nuC4uOC4l+C4mC0KK+C4quC4seC4oeC4nuC4uOC4l+C4mOC4sAor4Liq4Lix4Lih4LmC4Lie4LiY4Li0CivguKrguLHguKHguKDguKfguLAKK+C4quC4seC4oeC4oOC5gOC4p+C4quC4tQor4Liq4Lix4Lih4Lig4Lix4LiVCivguKrguLHguKHguKDguLHguJXguJXguLAKK+C4quC4seC4oeC4oOC4suC4o+C4sAor4Liq4Lix4Lih4Lig4Liy4Lip4LiT4LmMCivguKrguLHguKHguYDguKDguJfguLAKK+C4quC4seC4oeC5guC4oOC4hOC4geC4suC4ogor4Liq4Lix4Lih4Lih4LiZ4LiyCivguKrguLHguKHguKHguLHguJvguJjguLLguJkKK+C4quC4seC4oeC4oeC4sgor4Liq4Lix4Lih4Lih4Liy4LiB4Lix4Lih4Lih4Lix4LiZ4LiV4LiwCivguKrguLHguKHguKHguLLguIjguKPguLTguKLguLIKK+C4quC4seC4oeC4oeC4suC4iuC4teC4ngor4Liq4Lix4Lih4Lih4Liy4LiX4Li04LiQ4Li0CivguKrguLHguKHguKHguLLguKfguLLguIjguLIKK+C4quC4seC4oeC4oeC4suC4p+C4suC4ouC4suC4oeC4sAor4Liq4Lix4Lih4Lih4Liy4Liq4LiV4Li0CivguKrguLHguKHguKHguLLguKrguKHguLLguJjguLQKK+C4quC4seC4oeC4oeC4suC4quC4seC4h+C4geC4seC4m+C4m+C4sAor4Liq4Lix4Lih4Lih4Liy4Lit4Liy4LiK4Li14Lin4LiwCivguKrguLHguKHguYLguKHguJfguJnguLXguKLguIHguJbguLIKK+C4quC4seC4oeC4pOC4l+C4mOC4tC0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jAor4Liq4Lix4Lih4Lik4LiX4LiY4Li04Lio4LiBCivguKrguLHguKLguJnguYwKK+C4quC4seC4peC4peC4suC4my0KK+C4quC4seC4peC5gOC4peC4gi0KK+C4quC4seC4quC4lOC4tQor4Liq4Lix4Liq4LiVLQor4Liq4Lix4Liq4LiV4LiX4Li04LiQ4Li0CivguKrguLHguKrguKrguLAKK+C4quC4seC4quC4quC4uAor4Liq4Lix4Liq4Liq4Li5CivguKrguLHguKrguLjguKPguLUKK+C4quC4sgor4Liq4LmI4LiyCivguKrguLLguIEKK+C4quC4suC4geC4geC4sOC5gOC4muC4t+C4rQor4Liq4Liy4LiB4Lij4Lij4LiI4LmMCivguKrguLLguIHguKUKK+C4quC4suC4geC4qeC4tOC4mQor4Liq4Liy4LiB4Lip4Li1CivguKrguLLguIHguKvguKLguLLguIEKK+C4quC4suC4geC4seC4iOC4ieC4sgor4Liq4Liy4LiB4Lix4Lil4Lii4LmMCivguKrguLLguIHguLTguKItCivguKrguLLguIHguLTguKLguJrguLjguJXguKMKK+C4quC4suC4geC4tOC4ouC4oeC4uOC4meC4tQor4Liq4Liy4LiB4Li04Lii4LiwCivguKrguLLguYDguIEKK+C4quC5iOC4suC4guC4meC4uOC4mQor4Liq4Liy4LiC4LiyCivguKrguYjguLLguYTguILguYkKK+C4quC4suC4hOC4owor4Liq4Liy4LiE4LmA4Lij4LioCivguKrguLLguITguLkKK+C4quC4suC4hOC4ueC4peC4suC4mQor4Liq4Liy4LiE4Li54Lin4Li04Lil4Liy4LiUCivguKrguLLguIcKK+C4quC5ieC4suC4hwor4Liq4Liy4LiH4LiE4Lil4Li34LmI4LiZCivguKrguLLguIfguKvguYjguLIKK+C4quC4suC4juC4gQor4Liq4Liy4LiP4Li04LiBLQor4Liq4Liy4LiTLQor4Liq4Liy4LiT4Li1CivguKrguLLguJQKK+C4quC4suC4lOC5guC4hOC4peC4mQor4Liq4Liy4LiU4LiZ4LmJ4Liz4Lij4LiU4LiB4Lix4LiZCivguKrguLLguJTguYDguKrguLXguKLguYDguJfguYDguKrguLXguKIKK+C4quC4suC4lQor4Liq4Liy4LiV4Lij4LiyCivguKrguLLguYTguJbguKIKK+C4quC4suC4l+C4owor4Liq4Liy4LiX4Li04LiqCivguKrguLLguJfguLTguKotCivguKrguLLguJfguLTguKrguKXguLHguIHguKnguJPguYwKK+C4quC4suC4l+C4uAor4Liq4Liy4LmC4LiXCivguKrguLLguJjguIEKK+C4quC4suC4mOC4oi0KK+C4quC4suC4mOC4ouC4sAor4Liq4Liy4LiY4Lii4Liy4LiiCivguKrguLLguJjguLLguKPguJMtCivguKrguLLguJjguLLguKPguJPguYwKK+C4quC4suC4mOC4suC4o+C4k+C4oOC4seC4ogor4Liq4Liy4LiY4Liy4Lij4LiT4Lij4Lix4LiQCivguKrguLLguJjguLLguKPguJPguKrguJbguLLguJkKK+C4quC4suC4mOC4suC4o+C4k+C4quC4oeC4muC4seC4leC4tAor4Liq4Liy4LiY4Liy4Lij4LiT4Liq4Lih4Lia4Lix4LiV4Li04LiC4Lit4LiH4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguKrguLLguJjguLLguKPguJPguKrguLjguIIKK+C4quC4suC4mOC4suC4o+C4k+C4sAor4Liq4Liy4LiY4Liy4Lij4LiT4Li54Lib4LiB4Liy4LijCivguKrguLLguJjguLLguKPguJPguLnguJvguYLguKDguIQKK+C4quC4suC4mOC4tOC4lQor4Liq4Liy4LiY4Li4CivguKrguLLguJjguLjguIHguLLguKMKK+C4quC4suC4mOC4uOC4iuC4mQor4Liq4Liy4LiY4Li44Liq4LiwCivguKrguLLguJkKK+C4quC5iOC4suC4mQor4Liq4Liy4LiZ4LiV4Lin4LiwCivguKrguLLguJnguLgKK+C4quC4suC4meC4uOC4qOC4tOC4qeC4ouC5jAor4Liq4Liy4LiZ4Li5CivguKrguLLguJoKK+C4quC4suC4muC4guC4meC4uOC4mQor4Liq4Liy4Lia4LmB4Lij4LmJ4LiHCivguKrguLLguJrguYHguKPguYnguIfguKrguLLguJrguIHguLIKK+C4quC4suC4muC4quC4ueC4jQor4Liq4Liy4Lia4LmA4Liq4Li34LitCivguKrguLLguJrguLLguJkKK+C4quC4suC4muC4suC4meC4mOC4hwor4Liq4Liy4LibCivguKrguLLguJvguYTguJXguKIKK+C4quC4suC4m+C4quC4o+C4owor4Liq4Liy4LihCivguKrguLLguKHguIHguKnguLHguJXguKPguLTguKLguYwKK+C4quC4suC4oeC5gOC4geC4peC4rQor4Liq4Liy4Lih4LmB4LiB4LmJ4LinCivguKrguLLguKHguILguLIKK+C4quC4suC4oeC4guC4uOC4oQor4Liq4Liy4Lih4LmA4LiC4Li14LmJ4Lii4LinCivguKrguLLguKHguITguLLguJkKK+C4quC4suC4oeC4h+C5iOC4suC4oQor4Liq4Liy4Lih4LiK4Li44LiBCivguKrguLLguKHguYHguIvguYgKK+C4quC4suC4oeC5gOC4k+C4owor4Liq4Liy4Lih4LmA4LiT4Lij4Li1CivguKrguLLguKHguJXguLIKK+C4quC4suC4oeC4meC4lS0KK+C4quC4suC4oeC4meC4leC5jAor4Liq4Liy4Lih4LiZ4LiV4Lij4Liy4LiKCivguKrguLLguKHguYPguJrguYDguJbguLIKK+C4quC4suC4oeC5gOC4nuC4peC4h+C4leC4geC4oeC5ieC4suC4leC4suC4ogor4Liq4Liy4Lih4LmA4Lih4LiyCivguKrguLLguKHguKLguJfguKPguLHguJ7guKLguYwKK+C4quC4suC4oeC4o+C4qgor4Liq4Liy4Lih4LilCivguKrguLLguKHguKXguYnguK0KK+C4quC4suC4oeC4peC4s+C4hOC4suC4mQor4Liq4Liy4Lih4Lin4Lix4LiZ4LiU4Li14Liq4Li14LmI4Lin4Lix4LiZ4LmE4LiC4LmJCivguKrguLLguKHguYDguKfguJcKK+C4quC4suC4oeC5gOC4qOC4teC4ouC4owor4Liq4Liy4Lih4Liq4Lil4Li24LiH4LmA4Lif4Li34LmJ4Lit4LiHCivguKrguLLguKHguKrguLTguJrguIHguKXguLXguJoKK+C4quC4suC4oeC5gOC4quC5ieC4sgor4Liq4Liy4Lih4Lir4Lih4Li44LiUCivguKrguLLguKHguKvguLLguJoKK+C4quC4suC4oeC4q+C4suC4pwor4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4LihCivguKrguLLguKHguYDguKvguKXguLXguYjguKLguKHguJTguYnguLLguJnguYDguJfguYjguLIKK+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oeC4oeC4uOC4oeC4ieC4suC4gQor4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lih4Li44Lih4Lib4LmJ4Liy4LiZCivguKrguLLguKHguYDguKvguKXguLXguYjguKLguKHguKHguLjguKHguYHguKvguKXguKEKK+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oeC4q+C4meC5ieC4suC4iOC4seC5iOC4pwor4Liq4Liy4Lih4Lix4LiE4LiE4Li1CivguKrguLLguKHguLHguI0tCivguKrguLLguKHguLHguI3guKrguLPguJnguLbguIEKK+C4quC4suC4oeC4seC4leC4luC4tOC4ouC4sAor4Liq4Liy4Lih4Liy4LiZ4LiiLQor4Liq4Liy4Lih4Liy4LiZ4Lii4LmMCivguKrguLLguKHguLLguJnguKLguJnguLLguKEKK+C4quC4suC4oeC4suC4o+C4lgor4Liq4Liy4Lih4Li04LiBCivguKrguLLguKHguLTguJUKK+C4quC4suC4oeC4tOC4meC4tQor4Liq4Liy4Lih4Li04Lig4Lix4LiB4LiU4Li04LmMCivguKrguLLguKHguLUKK+C4quC4suC4oeC4teC4iOC4tOC4geC4o+C4o+C4oQor4Liq4Liy4LiiCivguKrguYjguLLguKIKK+C4quC5ieC4suC4ogor4Liq4Liy4Lii4LiB4Lij4Liw4LmE4LiUCivguKrguLLguKLguYPguIgKK+C4quC4suC4ouC4iuC4uQor4Liq4Liy4Lii4LiL4Li44LiHCivguKrguLLguKLguJTguLTguJkKK+C4quC4suC4ouC4leC4sOC4nuC4suC4ogor4Liq4Liy4Lii4LiV4Lix4LinCivguKrguLLguKLguJXguLIKK+C4quC4suC4ouC4leC4suC4nuC4tOC4geC4suC4owor4Liq4Liy4Lii4LiV4Li04LmI4LiHCivguKrguLLguKLguJnguYnguLMKK+C4quC4suC4ouC4meC5ieC4s+C4nOC4tuC5ieC4hwor4Liq4Liy4Lii4Lia4Lix4LinCivguKrguLLguKLguJ7guLLguJkKK+C4quC4suC4ouC4n+C5ieC4sgor4Liq4Liy4Lii4Lih4LiH4LiE4LilCivguKrguLLguKLguKHguYjguLLguJkKK+C4quC4suC4ouC4ouC4uQor4Liq4Liy4Lii4LmC4Lii4LiBCivguKrguLLguKLguYPguKIKK+C4quC4suC4ouC4o+C4sOC5gOC4lOC4teC4ouC4hwor4Liq4Liy4Lii4Lij4Liw4Lii4Liy4LiHCivguKrguLLguKLguKPguLDguYLguKLguIcKK+C4quC4suC4ouC4o+C4seC4lOC4l+C4tuC4mgor4Liq4Liy4Lii4Lij4Li44LmJ4LiHCivguKrguLLguKLguKXguYjguK3guJ/guYnguLIKK+C4quC4suC4ouC4peC4seC4mgor4Liq4Liy4Lii4LmA4Lil4Li34Lit4LiUCivguKrguLLguKLguYLguKXguKvguLTguJUKK+C4quC5iOC4suC4ouC4qOC4tuC4gQor4Liq4LmI4Liy4Lii4LmA4Lio4Li04LiBCivguKrguLLguKLguKrguJnguIHguKXguYPguJkKK+C4quC4suC4ouC4quC4oeC4owor4Liq4Liy4Lii4Liq4Lij4LmJ4Lit4LiiCivguKrguLLguKLguKrguKfguLLguJcKK+C4quC4suC4ouC4quC4sOC4nuC4suC4ogor4Liq4Liy4Lii4Liq4Li04LiN4LiI4LiZ4LmMCivguKrguLLguKLguKrguLnguJXguKMKK+C4quC4suC4ouC4q+C4ouC4uOC4lAor4Liq4Liy4Lii4LmA4Lir4LiyCivguKrguLLguKLguK3guLLguIHguLLguKgKK+C4quC4suC4ouC5gOC4reC4gQor4Liq4Liy4Lii4Lix4LiT4Lir4LmMCivguKrguLLguKLguLLguKvguYwKK+C4quC4suC4owor4Liq4Liy4LijLQor4Liq4Liy4Lij4LiB4Lij4Lih4LiY4Lij4Lij4Lih4LmMCivguKrguLLguKPguITguJTguLUKK+C4quC4suC4o+C4leC4o+C4sgor4Liq4Liy4Lij4LiW4Li1CivguKrguLLguKPguJbguLXguIrguLHguIHguKPguJYKK+C4quC4suC4o+C4lwor4Liq4Liy4Lij4LiX4LiyCivguKrguLLguKPguJfguLjguIHguILguYzguKrguLjguIHguJTguLTguJoKK+C4quC4suC4o+C4mOC4o+C4o+C4oQor4Liq4Liy4Lij4LiZ4Li04LmA4LiX4LioCivguKrguLLguKPguJrguJoKK+C4quC4suC4o+C4muC4o+C4o+C4kwor4Liq4Liy4Lij4Lia4Lix4LiNCivguKrguLLguKPguJrguLHguJoKK+C4quC5ieC4suC4o+C4muC4seC4mgor4Liq4Liy4Lij4Lia4Liy4LiNCivguKrguLLguKPguJrguLLguI3guIrguLUKK+C4quC4suC4o+C4m+C4o+C4sOC4geC4reC4mgor4Liq4Liy4Lij4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguKrguLLguKPguJ7guLHguJQKK+C4quC4suC4o+C4nuC4seC4mQor4Liq4Liy4Lij4Lie4Liy4LiH4LiE4LmMCivguKrguLLguKPguKDguLLguJ4KK+C4quC4suC4o+C4oOC4tQor4Liq4Liy4Lij4Lig4Li14LiX4Liw4LmA4LilCivguKrguLLguKPguKDguLXguJvguYjguLIKK+C4quC4suC4o+C5hOC4oeC4ogor4Liq4Liy4Lij4Lil4Liw4Lil4Liy4LiiCivguKrguLLguKPguKfguLHguJQKK+C4quC4suC4o+C4p+C4seC4leC4owor4Liq4Liy4Lij4Liq4LiZ4LmA4LiX4LioCivguKrguLLguKPguKrguYnguKEKK+C4quC4suC4o+C4q+C4meC4uQor4Liq4Liy4Lij4Lir4LiZ4Li54LiC4Liy4LinCivguKrguLLguKPguLAKK+C4quC4suC4o+C4sOC5guC4geC4gQor4Liq4Liy4Lij4Liw4LmB4LiZCivguKrguLLguKPguLDguJ7guLIKK+C4quC4suC4o+C4sOC4nuC4suC5gOC4ruC5guC4pQor4Liq4Liy4Lij4Liw4Lin4Lit4LiZCivguKrguLLguKPguLDguKfguLLguKPguLUKK+C4quC4suC4o+C4sOC4quC4sOC4oeC4sgor4Liq4Liy4Lij4Lix4LiV4LiWLQor4Liq4Liy4Lij4Lix4LiV4LiW4LiwCivguKrguLLguKPguLHguJXguJbguLDguJvguKPguLDguYLguKLguIrguJnguYwKK+C4quC4suC4o+C4seC4l+C4mOC5jAor4Liq4Liy4Lij4Lix4Lih4Lig4LmMCivguKrguLLguKPguLLguJPguLXguKItCivguKrguLLguKPguLLguJPguLXguKLguIHguKMKK+C4quC4suC4o+C4suC4k+C4teC4ouC4mOC4o+C4o+C4oQor4Liq4Liy4Lij4Liy4LiT4Li14Lii4LiwCivguKrguLLguKPguLLguJnguLjguIHguKPguKEKK+C4quC4suC4o+C4teC4o+C4tOC4geC4mOC4suC4leC4uAor4Liq4Liy4Lij4Li54LibCivguKrguLLguYLguKPguIoKK+C4quC4suC4peC4sAor4Liq4Liy4Lil4Liw4Lin4LiZCivguKrguLLguKXguLQKK+C4quC4suC4peC4tOC4geC4sgor4Liq4Liy4Lil4Li04LiZ4Li1CivguKrguLLguKXguLUKK+C4quC4suC4peC4teC5iAor4Liq4Liy4Lil4Li5CivguKrguYjguLLguYDguKXguLfguK3guJQKK+C4quC4suC5guC4peC4q+C4tOC4lQor4Liq4Liy4LinCivguKrguLLguKfguIEKK+C4quC4suC4p+C4geC4o+C4sOC4l+C4t+C4muC4q+C4rQor4Liq4Liy4Lin4LiB4LmJ4Liy4LinCivguKrguLLguKfguYHguIHguYgKK+C4quC4suC4p+C5gOC4l+C5ieC4sgor4Liq4Liy4Lin4LiZ4LmJ4Lit4Lii4LmA4Lil4LmI4LiZ4LiZ4LmJ4LizCivguKrguLLguKfguJnguLAKK+C4quC4suC4p+C5geC4quC5iQor4Liq4Liy4Lin4LmE4Liq4LmJCivguKrguLLguKfguYTguKrguYnguYPguKvguYnguIHguLLguIHguLTguJkKK+C4quC4suC4p+C4tOC4geC4sgor4Liq4Liy4Lin4Li04LiV4LijCivguKrguLLguKfguLTguJXguKPguLUKK+C4quC4suC4quC4mQor4Liq4Liy4Liq4LiZLQor4Liq4Liy4Liq4LiZ4LmMCivguKrguLLguKrguJnguJjguKPguKPguKEKK+C4quC4suC4quC4meC4sgor4Liq4Liy4Lir4Lij4LmI4Liy4LiiCivguKrguLLguKvguKPguLUKK+C4quC5iOC4suC4q+C4o+C4tQor4Liq4Liy4Lir4Lix4LiV4LiWLQor4Liq4Liy4Lir4Lix4LiV4LiW4Li04LiBLQor4Liq4Liy4Lir4Lix4LiqCivguKrguLLguKvguLHguKrguKrguLLguIHguKPguKPguIjguYwKK+C4quC5iOC4suC5gOC4q+C5h+C4lAor4Liq4Liy4LmA4Lir4LiV4Li4CivguKrguYjguLLguYDguKvguKXguYnguLIKK+C4quC4suC5geC4q+C4o+C4gQor4Liq4Liy4Lis4Li44Lij4LiwCivguKrguLMKK+C4quC5iOC4swor4Liq4Liz4LiE4Lix4LiNCivguKrguLPguIvguYjguLLguIcKK+C4quC4s+C5geC4lOC4hwor4Liq4Liz4LiX4Lix4LiaCivguKrguLPguJnguKfguJQKK+C4quC4s+C4meC4p+C4mQor4Liq4Liz4LiZ4Lin4LiZ4LiE4Lin4Liy4LihCivguKrguLPguJnguK3guIcKK+C4quC4s+C4meC4seC4gQor4Liq4Liz4LiZ4Lix4LiB4Liq4LiH4LiG4LmMCivguKrguLPguJnguLLguJkKK+C4quC4s+C4meC4tuC4gQor4Liq4Liz4LiZ4Li24LiHCivguKrguLPguYDguJnguLIKK+C4quC4s+C5gOC4meC4teC4ouC4hwor4Liq4Liz4Lia4Lit4LiBCivguKrguLPguJrguLHguJTguKrguLPguJnguKfguJkKK+C4quC4s+C4m+C4sOC4peC4rQor4Liq4Liz4Lib4Liw4Lir4Lil4Lix4LiHCivguKrguLPguJvguLHguYnguJkKK+C4quC4s+C4m+C4seC4meC4meC4tQor4Liq4Liz4LmA4Lig4LiyCivguKrguLPguYDguKDguLLguJfguK3guIcKK+C4quC4s+C4oeC4sOC4h+C4sgor4Liq4Liz4Lih4Liw4LmC4LiZCivguKrguLPguKHguLDguYLguJnguITguKPguLHguKcKK+C4quC4s+C4oeC4sOC5guC4meC4m+C4o+C4sOC4iuC4suC4geC4owor4Liq4Liz4Lih4Liw4Lil4LitCivguKrguLPguKHguLDguYDguKXguYDguJfguYDguKHguLIKK+C4quC4s+C4oeC4sOC4q+C4sgor4Liq4Liz4Lij4LiUCivguKrguLPguKPguKfguIgKK+C4quC4s+C4o+C4p+C4oQor4Liq4Liz4Lij4Lin4Lih4LmD4LiICivguKrguLPguKPguKfguKIKK+C4quC4s+C4o+C4p+C4pQor4Liq4Liz4Lij4Lit4LiBCivguKrguLPguKPguK3guIcKK+C4quC4s+C4o+C4seC4mgor4Liq4Liz4Lij4Liy4LiBCivguKrguLPguKPguLLguI0KK+C4quC4s+C4o+C4tOC4lAor4Liq4Liz4LmA4Lij4LmH4LiICivguKrguLPguYDguKPguYfguIjguYLguJfguKkKK+C4quC4s+C5gOC4o+C5h+C4iOC4o+C4ueC4mwor4Liq4Liz4LmA4Lij4LiyCivguKrguLPguYDguKPguLTguIcKK+C4quC4s+C5guC4o+C4hwor4Liq4Liz4Lil4Lix4LiBCivguKrguLPguKXguLLguJkKK+C4quC4s+C4peC4tQor4Liq4Liz4LmB4Lil4LiHCivguKrguLPguKrguKPguYnguLLguIcKK+C4quC4s+C4quC5iOC4reC4mQor4Liq4Liz4Liq4LiyCivguKrguLPguYDguKrguYfguJQKK+C4quC5iOC4s+C5gOC4quC4teC4ogor4Liq4Liz4Lir4Lij4Lin4LiUCivguKrguLPguKvguKPguLHguJoKK+C4quC4s+C4q+C4sgor4Liq4Liz4LmA4Lir4LiZ4Li14Lii4LiBCivguKrguLPguYDguKvguKPguYgKK+C4quC4s+C4reC4reC4ogor4Liq4Liz4Lit4Liy4LiHCivguKrguLQKK+C4quC4tOC4geC4guC5jAor4Liq4Li04LiB4LiC4Lih4Liy4LiZ4LiyCivguKrguLTguIHguILguLIKK+C4quC4tOC4geC4guC4suC4geC4suC4oS0KK+C4quC4tOC4geC4guC4suC4muC4lwor4Liq4Li04LiC4LijCivguKrguLTguILguKPguLUKK+C4quC4tOC4guC5gOC4o+C4qAor4Liq4Li04LiC4LiyCivguKrguLTguILguLLguJnguKUKK+C4quC4tOC4guC4tQor4Liq4Li04LiE4Liy4LilCivguKrguLTguIcKK+C4quC4tOC5iOC4hwor4Liq4Li04LiH4LiC4LijCivguKrguLTguYjguIfguILguK3guIcKK+C4quC4tOC4h+C4hOC5jAor4Liq4Li04LiH4LiE4Lil4Li04LmJ4LiHCivguKrguLTguIfguITguKXguLUKK+C4quC4tOC4h+C4hOC4suC4owor4Liq4Li04LiH4LiE4Liy4LilCivguKrguLTguIfguITguLUKK+C4quC4tOC4h+C5guC4lQor4Liq4Li04LiH4LmC4LiV4LiX4Liw4LmA4LilCivguKrguLTguYjguIfguJ7guLTguKHguJ7guYwKK+C4quC4tOC5iOC4h+C4peC4sOC4reC4seC4meC4nuC4seC4meC4peC4sOC4meC5ieC4reC4ogor4Liq4Li04LmI4LiH4LmB4Lin4LiU4Lil4LmJ4Lit4LihCivguKrguLTguIfguKrguJbguLTguJUKK+C4quC4tOC4h+C4quC4suC4o+C4suC4quC4seC4leC4p+C5jAor4Liq4Li04LiH4Liq4Li54LmICivguKrguLTguIfguKstCivguKrguLTguIfguKvguYwKK+C4quC4tOC4h+C4q+C4meC4suC4lwor4Liq4Li04LiH4Lir4Lia4Lix4LiN4LiK4LijCivguKrguLTguIfguKvguKPguLIKK+C4quC4tOC4h+C4q+C4o+C4suC4igor4Liq4Li04LiH4Lir4LilCivguKrguLTguIfguKvguKXguIEtCivguKrguLTguIfguKvguLLguITguKEKK+C4quC4tOC4h+C4q+C4suC4quC4meC5jAor4Liq4Li04LiN4LiILQor4Liq4Li04LiN4LiI4LiZ4LmMCivguKrguLTguJUtCivguKrguLTguJXguLLguIfguKjguLjguYwKK+C4quC4tOC4luC4tOC4pQor4Liq4Li04LiX4LiYLQor4Liq4Li04LiX4LiY4LmMCivguKrguLTguJfguJjguLIKK+C4quC4tOC4l+C4mOC4suC4iOC4suC4o+C4ouC5jAor4Liq4Li04LiX4LiY4Liy4LiZ4LiV4LmMCivguKrguLTguJfguJjguLLguKPguJYKK+C4quC4tOC4l+C4mOC4tAor4Liq4Li04LiX4LiY4Li04LmMCivguKrguLTguJfguJjguLTguIHguKMKK+C4quC4tOC4l+C4mOC4tOC4geC4suC4o+C4tOC4ouC4sAor4Liq4Li04LiX4LiY4Li04LmM4LiC4Liy4LiUCivguKrguLTguJfguJjguLTguITguKPguK3guJrguITguKPguK3guIcKK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4ogor4Liq4Li04LiX4LiY4Li04LmC4LiK4LiECivguKrguLTguJfguJjguLTguJrguLHguJXguKMKK+C4quC4tOC4l+C4mOC4tOC4ouC4tuC4lOC4q+C4meC5iOC4p+C4hwor4Liq4Li04LiX4LiY4Li04Liq4Lig4Liy4Lie4LiZ4Lit4LiB4Lit4Liy4LiT4Liy4LmA4LiC4LiVCivguKrguLTguJjguKLguLAKK+C4quC4tOC4mQor4Liq4Li04LmJ4LiZCivguKrguLTguJnguITguYnguLIKK+C4quC4tOC4meC4hOC5ieC4suC5gOC4guC5ieC4sgor4Liq4Li04LiZ4LiE4LmJ4Liy4Lit4Lit4LiBCivguKrguLTguYnguJnguITguLTguJQKK+C4quC4tOC4meC4iOC5ieC4suC4hwor4Liq4Li04LmJ4LiZ4LmD4LiICivguKrguLTguYnguJnguIrguLXguJ4KK+C4quC4tOC5ieC4meC4iuC4teC4nuC4leC4seC4geC4qeC4seC4ogor4Liq4Li04LmJ4LiZ4LiK4Li14Lin4Li04LiVCivguKrguLTguYnguJnguYDguIrguLTguIcKK+C4quC4tOC4meC5gOC4iuC4t+C5iOC4rQor4Liq4Li04LiZ4LmD4LiK4LmJCivguKrguLTguJnguYDguJTguLTguKEKK+C4quC4tOC5ieC4meC4leC4s+C4o+C4sgor4Liq4Li04LmJ4LiZ4LmB4LiV4LmJ4LihCivguKrguLTguJnguYTguJbguYgKK+C4quC4tOC4meC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Li04LmJ4LiZ4LiX4LmI4LiyCivguKrguLTguJnguJfguLnguKPguLAKK+C4quC4tOC4meC5gOC4l+C4sgor4Liq4Li04LiZ4LiY4LieCivguKrguLTguJnguJjguLgKK+C4quC4tOC4meC4mOC4uOC4o+C4sAor4Liq4Li04LiZ4LmA4LiY4Liy4Lin4LmMCivguKrguLTguJnguJnguYnguLPguYPguIgKK+C4quC4tOC5ieC4meC5gOC4meC4t+C5ieC4reC4m+C4o+C4sOC4lOC4suC4leC4seC4pwor4Liq4Li04LiZ4Lia4LiZCivguKrguLTguJnguJrguKPguLTguITguJPguKvguYwKK+C4quC4tOC5ieC4meC4muC4uOC4jQor4Liq4Li04LmJ4LiZ4Lib4Lij4Liw4LiV4Li5CivguKrguLTguYnguJnguJ7guKPguLDguIrguJnguKHguYwKK+C4quC4tOC4meC4o+C4sOC4muC4suC4lAor4Liq4Li04LiZ4LmB4Lij4LmICivguKrguLTguYnguJnguYTguKPguYnguYTguKHguYnguJXguK3guIEKK+C4quC4tOC5ieC4meC4pOC4l+C4mOC4tOC5jAor4Liq4Li04LmJ4LiZ4Lil4LihCivguKrguLTguJnguKrguKHguKPguKoKK+C4quC4tOC4meC4quC5iOC4p+C4meC4leC4seC4pwor4Liq4Li04LiZ4Liq4Lit4LiUCivguKrguLTguYnguJnguKrguLjguJQKK+C4quC4tOC4meC4q+C4seC4p+C4muC4seC4p+C4meC4suC4hwor4Liq4Li04LiZ4LmE4Lir4LihCivguKrguLTguJnguYTguKvguKHguJfguJTguYHguJfguJkKK+C4quC4tOC4meC4sAor4Liq4Li04LiZ4Liy4LiUCivguKrguLTguJnguLTguJfguJjguYwKK+C4quC4tOC4meC4tQor4Liq4Li04LmA4LiZ4Lij4Li4CivguKrguLTguYDguJnguKvguIEKK+C4quC4tOC5gOC4meC4q+C4meC4teC4ouC4sAor4Liq4Li04LmA4LiZ4Lir4LiwCivguKrguLTguYDguJnguKvguLIKK+C4quC4tOC5gOC4meC5iOC4q+C4sgor4Liq4Li04LiaCivguKrguLTguJrguYDguJrguLXguYnguKLguYPguIHguKXguYnguKHguLfguK0KK+C4quC4tOC4muC5geC4m+C4lOC4oeC4h+C4geC4uOC4jgor4Liq4Li04Lib4Lib4LiwCivguKrguLTguJ7guJnguLAKK+C4quC4tOC4oeC4nuC4peC4tQor4Liq4Li04LijLQor4Liq4Li04Lij4LiwCivguKrguLTguKPguLQKK+C4quC4tOC4o+C4tQor4Liq4Li04LmC4Lij4LiU4LihCivguKrguLTguYLguKPguJXguKHguYwKK+C4quC4tOC4peC4sgor4Liq4Li04LmC4Lil4LiBCivguKrguLTguKcKK+C4quC4tOC5iOC4pwor4Liq4Li04LmI4Lin4LiZ4LmI4Lit4LiHCivguKrguLTguKfguYDguKrguLXguYnguKLguJkKK+C4quC4tOC4p+C4sAor4Liq4Li04Lin4Liy4Lil4Lix4LiiCivguKrguLTguKfguLTguIHguLIKK+C4quC4tOC4q+C4meC4sgor4Liq4Li1CivguKrguLXguYgKK+C4quC4teC5iQor4Liq4Li14LiB4Lij4Li44LiUCivguKrguLXguIHguLIKK+C4quC4teC4geC4uOC4mQor4Liq4Li14LiC4LmJ4Liy4LiHCivguKrguLXguIYtCivguKrguLXguIjguLHguIEKK+C4quC4teC4iuC4oeC4nuC4ueC4lOC4hwor4Liq4Li14LiK4Lih4Lie4Li54Liq4Lin4LiZCivguKrguLXguIvguK3guYPguKvguYnguITguKfguLLguKLguJ/guLHguIcKK+C4quC4teC4lAor4Liq4Li14LiU4LitCivguKrguLXguJUtCivguKrguLXguJXguYnguJkKK+C4quC4teC4leC4pS0KK+C4quC4teC4leC4peC4o+C4seC4qOC4oeC4tQor4Liq4Li14LiV4Lil4Lir4Lik4LiX4Lix4LiiCivguKrguLXguJXguYLguKXguJfguIEKK+C4quC4teC5guC4leC4l+C4gQor4Liq4Li14LiX4Lix4LiZ4LiU4LijCivguKrguLXguYjguJrguJcKK+C4quC4teC4nOC4tuC5ieC4hwor4Liq4Li14Lid4Lix4LiUCivguKrguLXguJ/guLHguJnguITguJnguJfguLIKK+C4quC4teC4n+C4seC4meC4meC4suC4h+C5geC4rQor4Liq4Li14LmE4LifCivguKrguLXguKHguLHguJnguJXguYwKK+C4quC4teC4oeC4sgor4Liq4Li14Lil4LihCivguKrguLXguKXguLDguKHguLHguJkKK+C4quC4teC4p+C4tOC4geC4sgor4Liq4Li14Liq4Lin4Lij4Lij4LiE4LmMCivguKrguLXguKrguK0KK+C4quC4teC4quC4sAor4Liq4Li14Liq4LiyCivguKrguLXguKrguLjguIEKK+C4quC4teC5gOC4quC4teC4ouC4lAor4Liq4Li14LmA4Liq4Li14Lii4LiU4LmB4LiB4LmI4LiZCivguKrguLXguYDguKrguLXguKLguJTguYDguJvguKXguLfguK3guIEKK+C4quC4teC5gOC4quC4teC4ouC4lOC5gOC4q+C4meC4t+C4rQor4Liq4Li14LmA4Liq4Li34LmJ4Lit4LiZ4LmJ4Lit4LiiCivguKrguLXguKstCivguKrguLXguKvguYwKK+C4quC4teC4q+C4meC5ieC4sgor4Liq4Li14Lir4LiZ4Liy4LiXCivguKrguLXguKvguJrguLHguI3guIrguKMKK+C4quC4teC4q+C4o+C4suC4igor4Liq4Li14Lir4LiwCivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKEKK+C4quC4teC5iOC5gOC4q+C4peC4teC5iOC4ouC4oeC4guC4meC4oeC5gOC4m+C4teC4ouC4geC4m+C4ueC4mQor4Liq4Li14LmI4LmA4Lir4Lil4Li14LmI4Lii4Lih4LiE4Liy4LiH4Lir4Lih4Li5CivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKHguIjguLHguJXguLjguKPguLHguKoKK+C4quC4teC5iOC5gOC4q+C4peC4teC5iOC4ouC4oeC4lOC5ieC4suC4meC4guC4meC4suC4mQor4Liq4Li14LmI4LmA4Lir4Lil4Li14LmI4Lii4Lih4LiU4LmJ4Liy4LiZ4LmE4Lih4LmI4LmA4LiX4LmI4LiyCivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKHguJzguLfguJnguJzguYnguLIKK+C4quC4tuC4gQor4Liq4Li24LiB4Lir4Lij4LitCivguKrguLbguIcKK+C4quC4t+C4mgor4Liq4Li34Lia4LmE4LibCivguKrguLfguJrguJ7guKLguLLguJkKK+C4quC4t+C4muC4nuC4seC4meC4mOC4uOC5jAor4Liq4Li34Lia4Lie4Lix4LiZ4LiY4Li44LmM4LmB4Lia4Lia4LmE4Lih4LmI4Lit4Liy4Lio4Lix4Lii4LmA4Lie4LioCivguKrguLfguJrguJ7guLHguJnguJjguLjguYzguYHguJrguJrguK3guLLguKjguLHguKLguYDguJ7guKgKK+C4quC4t+C4muC4o+C4suC4iuC4quC4oeC4muC4seC4leC4tAor4Liq4Li34Lia4Lij4Liy4LiK4Liq4Lix4LiZ4LiV4LiV4Li04Lin4LiH4Lio4LmMCivguKrguLfguJrguKjguLLguKrguJnguLIKK+C4quC4t+C4muC4quC4p+C4mQor4Liq4Li34Lia4Liq4Lix4LiZ4LiU4Liy4LiZCivguKrguLfguJrguKrguLLguKIKK+C4quC4t+C4muC4quC4suC4p+C4o+C4suC4p+C5gOC4o+C4t+C5iOC4reC4hwor4Liq4Li34Lia4LmA4Liq4Liy4LiwCivguKrguLfguJrguKvguLnguIEKK+C4quC4t+C5iOC4rQor4Liq4Li34LmI4Lit4LiB4Liy4Lij4Lio4Li24LiB4Lip4LiyCivguKrguLfguYjguK3guKHguKfguKXguIrguJkKK+C4quC4t+C5iOC4reC4quC4suC4owor4Liq4Li34LmI4Lit4Liq4Liy4Lij4Lih4Lin4Lil4LiK4LiZCivguKrguLgKK+C4quC4uOC4gQor4Liq4Li44LiB4LiB4LmI4Lit4LiZ4Lir4LmI4Liy4LihCivguKrguLjguIHguILguYwKK+C4quC4uOC4geC4lOC4tOC4mgor4Liq4Li44LiB4LmGIOC4lOC4tOC4muC5hgor4Liq4Li44LiB4LmB4LiU4LiUCivguKrguLjguIHguKMKK+C4quC4uOC4geC4o+C4oQor4Liq4Li44LiB4LmD4LiqCivguKrguLjguIHguYDguK3guLLguYDguJzguLLguIHguLTguJkKK+C4quC4uOC4geC4s+C4qOC4ngor4Liq4Li44LiB4Li14Lii4Liy4LiB4Li14LmJCivguKrguLjguIIKK+C4quC4uOC4gi0KK+C4quC4uOC4guC4meC4suC4j+C4geC4o+C4o+C4oQor4Liq4Li44LiC4Lig4Lix4LiT4LiR4LmMCivguKrguLjguILguKDguLLguJ4KK+C4quC4uOC4guC4peC4seC4geC4qeC4k+C4sAor4Liq4Li44LiC4Lin4Li04LiX4Lii4LiyCivguKrguLjguILguKjguLLguKXguLIKK+C4quC4uOC4guC4qOC4tuC4geC4qeC4sgor4Liq4Li44LiC4LiyCivguKrguLjguILguLLguKDguLTguJrguLLguKUKK+C4quC4uOC4guC4suC4o+C4oeC4k+C5jAor4Liq4Li44LiC4Liy4Lin4LiU4Li1CivguKrguLjguILguLTguJkKK+C4quC4uOC4guC4tQor4Liq4Li44LiC4Li44LihCivguKrguLjguILguLjguKHguLLguKUKK+C4quC4uOC4hOC4lQor4Liq4Li44LiE4LiV4Li0CivguKrguLjguITguJnguJgtCivguKrguLjguITguJnguJjguYwKK+C4quC4uOC4hOC4meC4mOC4o+C4qgor4Liq4Li44LiE4Lix4LiZ4LiY4LmMCivguKrguLjguIfguIEtCivguKrguLjguIfguIHguLAKK+C4quC4uOC4h+C4geC4suC4geC4owor4Liq4Li44LiH4Liq4Li04LiHCivguKrguLjguIfguKrguLjguKHguLLguKMKK+C4quC4uOC4h+C4quC4uOC4oeC4suC4o+C4tQor4Liq4Li44LiI4Lij4Li04LiVCivguKrguLjguIjguKvguJnguLXguYgKK+C4quC4uOC4iOC4sAor4Liq4Li44LiI4Li0CivguKrguLjguIjguLTguJUKK+C4quC4uOC4iOC4tOC4leC4owor4Liq4Li44LiK4LiZCivguKrguLjguIrguLHguKHguJrguJTguLUKK+C4quC4uOC4iuC4sgor4Liq4Li44LiK4Liy4LiU4LiyCivguKrguLjguI0KK+C4quC4uOC4jS0KK+C4quC4uOC4jeC4jS0KK+C4quC4uOC4jeC4jeC4suC4geC4suC4qAor4Liq4Li44LiN4LiV4LiyCivguKrguLjguI3guJnguLTguKLguKEKK+C4quC4uOC4kwor4Liq4Li44LiT4Lir4LiyCivguKrguLjguJPguLTguKrguLIKK+C4quC4uOC4lAor4Liq4Li44LiU4LiB4Liz4Lil4Lix4LiHCivguKrguLjguJTguIHguLnguYgKK+C4quC4uOC4lOC4guC4teC4lAor4Liq4Li44LiU4LiE4LiZCivguKrguLjguJTguITguLTguJQKK+C4quC4uOC4lOC4iOC4tOC4lQor4Liq4Li44LiU4LmD4LiICivguKrguLjguJTguJTguYnguLLguKEKK+C4quC4uOC4lOC5geC4leC5iAor4Liq4Li44LiU4LmC4LiV4LmI4LiHCivguKrguLjguJTguJfguYnguK3guIcKK+C4quC4uOC4lOC4l+C5ieC4suC4ogor4Liq4Li44LiU4LiX4LmJ4Liy4Lii4Lib4Lil4Liy4Lii4LmC4LiV4LmI4LiHCivguKrguLjguJTguYHguKPguIfguYDguIHguLTguJQKK+C4quC4uOC4lOC4peC4tOC5iOC4oQor4Liq4Li44LiU4Lin4Li04Liq4Lix4LiiCivguKrguLjguJTguKrguIfguKfguJkKK+C4quC4uOC4lOC4quC4p+C4suC4l+C4guC4suC4lOC5g+C4iAor4Liq4Li44LiU4Liq4Liy4Lii4Lib4LmI4Liy4LiZCivguKrguLjguJTguYDguKrguLXguKLguIcKK+C4quC4uOC4lOC5gOC4quC4teC4ouC4h+C4quC4seC4h+C4guC5jAor4Liq4Li44LiU4Lir4Lil4LmJ4Liy4Lif4LmJ4Liy4LmA4LiC4Li14Lii4LinCivguKrguLjguJTguYDguKvguKfguLXguYjguKLguIcKK+C4quC4uOC4lOC4sgor4Liq4Li44LiVCivguKrguLjguJXguIHguKfguLUKK+C4quC4uOC4leC4leC4sAor4Liq4Li44LiV4LiV4Lix4LiZ4LiV4Lib4Li04LiO4LiBCivguKrguLjguJXguJXguLHguJnguJXguLAKK+C4quC4uOC4leC4tAor4Liq4Li44LiX4LiYLQor4Liq4Li44LiX4LiY4LmMCivguKrguLjguJfguJjguLLguKfguLLguKoKK+C4quC4uOC4l+C4mOC4tAor4Liq4Li44LiX4Lij4Lij4Lio4LiZ4LmMCivguKrguLjguJfguLHguKjguJnguYwKK+C4quC4uOC4mOC4sgor4Liq4Li44LiY4Liy4LiB4Liy4LijCivguKrguLjguJjguLLguYLguKDguIrguJnguYwKK+C4quC4uOC4mOC4suC4o+C4qgor4Liq4Li44LiY4Liy4Lij4Liq4LiK4LiyCivguKrguLjguJjguLLguKrguLTguJnguLUKK+C4quC4uOC4mOC4suC4quC4tQor4Liq4Li44LiY4Li1CivguKrguLjguJnguJfguKMKK+C4quC4uOC4meC4l+C4oy0KK+C4quC4uOC4meC4l+C4o+C4nuC4iOC4meC5jAor4Liq4Li44LiZ4LiX4Lij4Li1CivguKrguLjguJnguJfguKPguLXguKItCivguKrguLjguJnguJfguKPguLXguKLguKDguLLguJ4KK+C4quC4uOC4meC4l+C4o+C4teC4ouC4qOC4suC4quC4leC4o+C5jAor4Liq4Li44LiZ4LiX4Lij4Li14Lii4LiwCivguKrguLjguJnguLHguIIKK+C4quC4uOC4meC4seC4meC4l+C5jAor4Liq4Li44LmC4LiZ4LiBCivguKrguLjguJrguJTguLUKK+C4quC4uOC4muC4o+C4o+C4kwor4Liq4Li44Lia4Li04LiZCivguKrguLjguJvguKPguLXguJTguLTguYwKK+C4quC4uOC4m+C4o+C4teC4ouC5jAor4Liq4Li44Lib4Liy4LiT4Li1CivguKrguLjguJ7guJ7guLHguJUKK+C4quC4uOC4nuC4o+C4o+C4kwor4Liq4Li44Lie4Lij4Lij4LiTLQor4Liq4Li44Lie4Lij4Lij4LiT4LiW4Lix4LiZCivguKrguLjguJ7guKPguKPguJPguJrguLHguI8KK+C4quC4uOC4nuC4o+C4o+C4k+C4oOC4suC4iuC4meC5jAor4Liq4Li44Lie4Lij4Lij4LiT4Lij4Liy4LiKCivguKrguLjguJ7guKPguKPguJPguKjguKPguLUKK+C4quC4uOC4nuC4o+C4o+C4k+C4tOC4geC4suC4o+C5jAor4Liq4Li44LigLQor4Liq4Li44Lig4LijCivguKrguLjguKDguLHguIQKK+C4quC4uOC4oOC4sgor4Liq4Li44Lig4Liy4LieCivguKrguLjguKDguLLguJ7guIrguJkKK+C4quC4uOC4oOC4suC4nuC4muC4uOC4o+C4uOC4qQor4Liq4Li44Lig4Liy4Lie4Liq4LiV4Lij4Li1CivguKrguLjguKDguLLguKnguLTguJUKK+C4quC4uOC4oQor4Liq4Li44LmI4LihCivguKrguLjguKHguILguK3guJkKK+C4quC4uOC4oeC4hOC4p+C4seC4mQor4Liq4Li44LmI4Lih4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiHCivguKrguLjguKHguJfguLjguKEKK+C4quC4uOC4oeC4mQor4Liq4Li44Lih4LiZ4LiwCivguKrguLjguKHguJnguLHguKoKK+C4quC4uOC4oeC4meC4sgor4Liq4Li44Lih4Lii4Li44LiHCivguKrguLjguYjguKHguKrguLXguYjguKrguLjguYjguKHguKvguYnguLIKK+C4quC4uOC5ieC4oeC5gOC4quC4teC4ouC4hwor4Liq4Li44Lih4Lir4Lix4LinCivguKrguLjguKHguLAKK+C4quC4uOC4oeC4suC4peC4tQor4Liq4Li44LmA4Lih4LiYCivguKrguLjguYDguKHguKPguLgKK+C4quC4uOC4oy0KK+C4quC4uOC4o+C4hOC4lQor4Liq4Li44Lij4LiH4LiE4LmMCivguKrguLjguKPguYDguIrguKnguJDguYwKK+C4quC4uOC4o+C4muC4lOC4tQor4Liq4Li44Lij4Lia4LiWCivguKrguLjguKPguKDguLLguJ4KK+C4quC4uOC4o+C4oOC4tQor4Liq4Li44Lij4LmC4Lil4LiBCivguKrguLjguKPguKrguLXguKvguJnguLLguJcKK+C4quC4uOC4o+C5gOC4quC4teC4ouC4hwor4Liq4Li44Lij4Lix4LiH4LiE4LmMCivguKrguLjguKPguLHguJXguLQKK+C4quC4uOC4o+C4seC4quC4p+C4lOC4tQor4Liq4Li44Lij4LiyCivguKrguLjguKPguLLguIfguITguYzguIjguLPguYDguKPguLXguKLguIcKK+C4quC4uOC4o+C4suC4h+C4hOC4meC4sgor4Liq4Li44Lij4Liy4LiH4LiE4LiZ4Liy4LiH4LiE4LmMCivguKrguLjguKPguLLguJrguLLguJkKK+C4quC4uOC4o+C4suC4o+C4seC4geC4qeC5jAor4Liq4Li44Lij4Liy4Lil4Lix4LiiCivguKrguLjguKPguLTguJnguJfguKPguYwKK+C4quC4uOC4o+C4tOC4meC4l+C4o+C4suC4q+C4uQor4Liq4Li44Lij4Li04LiiLQor4Liq4Li44Lij4Li04Lii4LiB4Lix4LiZ4LiV4LmMCivguKrguLjguKPguLTguKLguIHguLLguJnguJXguYwKK+C4quC4uOC4o+C4tOC4ouC4geC4suC4owor4Liq4Li44Lij4Li04Lii4LiB4Liy4LilCivguKrguLjguKPguLTguKLguITguJXguLQKK+C4quC4uOC4o+C4tOC4ouC4hOC4o+C4suC4qgor4Liq4Li44Lij4Li04Lii4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLjguKPguLTguKLguIcKK+C4quC4uOC4o+C4tOC4ouC4mQor4Liq4Li44Lij4Li04Lii4Lih4LiT4LiR4LilCivguKrguLjguKPguLTguKLguLAKK+C4quC4uOC4o+C4tOC4ouC4seC4mQor4Liq4Li44Lij4Li04Lii4LiyCivguKrguLjguKPguLTguKLguLjguJvguKPguLLguITguLIKK+C4quC4uOC4o+C4tOC5gOC4ouC4meC4l+C4o+C5jAor4Liq4Li44Lij4Li04LmA4Lii4LioCivguKrguLjguKPguLTguYLguKIKK+C4quC4uOC4o+C4teC4ouC5jAor4Liq4Li44Lij4Li44LmI4Lii4Liq4Li44Lij4LmI4Liy4LiiCivguKrguLjguYDguKPguJnguJfguKPguYwKK+C4quC4uOC4peC4leC5iOC4suC4mQor4Liq4Li44LinCivguKrguLjguKfguKDguLLguJ4KK+C4quC4uOC4p+C4o+C4o+C4kwor4Liq4Li44Lin4Lij4Lij4LiTLQor4Liq4Li44Lin4Lij4Lij4LiT4Lig4Li54Lih4Li0CivguKrguLjguKfguLLguJkKK+C4quC4uOC4p+C4tOC4meC4seC4ogor4Liq4Li44Lin4Li04Lih4LilCivguKrguLjguKnguLTguKMKK+C4quC4uOC4quC4suC4mQor4Liq4Li44Lir4LiZ4Lix4LiVCivguKrguLjguKvguKPguYjguIcKK+C4quC4uOC4q+C4o+C5iOC4suC4ogor4Liq4Li44Lir4Lik4LiXCivguKrguLjguKvguLHguJcKK+C4quC4uOC5gOC4q+C4o+C5iOC4sgor4Liq4Li5CivguKrguLnguYgKK+C4quC4ueC5iQor4Liq4Li54LiB4Lip4LihCivguKrguLnguYjguILguKfguLHguI0KK+C4quC4ueC5iOC4guC4rQor4Liq4Li54LiHCivguKrguLnguIfguYDguJfguYjguLLguJnguIHguYDguILguLLguYDguKvguLTguJkKK+C4quC4ueC4h+C5gOC4l+C4teC4ouC4oeC5gOC4oeC4hgor4Liq4Li54LiH4Liq4LmI4LiHCivguKrguLnguIfguKrguLjguJTguKrguK3guKIKK+C4quC4ueC4h+C4reC4suC4ouC4uAor4Liq4Li54LiI4LiB4LiwCivguKrguLnguIjguJnguLAKK+C4quC4ueC4iOC4tAor4Liq4Li54LiI4Li04Lia4Lix4LiV4LijCivguKrguLnguYDguIjguYnguLIKK+C4quC4ueC4jQor4Liq4Li54LiUCivguKrguLnguJUKK+C4quC4ueC4leC4owor4Liq4Li54LiV4Lij4LmA4LiE4Lih4Li1CivguKrguLnguJXguLQtCivguKrguLnguJXguLTguIHguKPguKPguKEKK+C4quC4ueC4leC4tOC4muC4seC4leC4owor4Liq4Li54LiV4Li04LmB4Lie4LiX4Lii4LmMCivguKrguLnguJXguLTguKjguLLguKrguJXguKPguYwKK+C4quC4ueC4lwor4Liq4Li54LiXLQor4Liq4Li54LiX4LiB4Lij4Lij4LihCivguKrguLnguJfguKjguLLguKrguJXguKPguYwKK+C4quC4ueC4mQor4Liq4Li54LiZ4Li4CivguKrguLnguJoKK+C4quC4ueC4muC5gOC4peC4t+C4reC4lAor4Liq4Li54Lia4LmA4Lil4Li34Lit4LiU4Liq4Li54Lia4LmA4LiZ4Li34LmJ4LitCivguKrguLnguJstCivguKrguLnguJvguIHguLLguKMKK+C4quC4ueC4m+C4sAor4Liq4Li54LmJ4Lii4Li04Lia4LiV4LiyCivguKrguLnguYnguYDguKLguYfguJrguJXguLIKK+C4quC4ueC4owor4Liq4Li54LmJ4Lij4Lia4LiV4Lia4Lih4Li34LitCivguKrguLnguKPguKItCivguKrguLnguKPguKLguYwKK+C4quC4ueC4o+C4ouC4geC4suC4meC4leC5jAor4Liq4Li54Lij4Lii4LiE4Lij4Liy4LiqCivguKrguLnguKPguLQKK+C4quC4ueC5iOC4o+C4ueC5iQor4Liq4Li54LmI4Liq4LihCivguKrguLnguKrguLUKK+C4quC4ueC5ieC4q+C4meC5ieC4sgor4Liq4Li54LmI4Lir4LiyCivguKrguLnguYnguYDguKvguKHguLfguK3guJnguKvguKHguLLguIjguJnguJXguKPguK3guIEKK+C5gOC4qgor4LmA4Liq4LiBCivguYDguKrguIHguIItCivguYDguKrguIHguILguJrguLjguITguITguKUKK+C5gOC4quC4geC4guC4sAor4LmA4Liq4LiB4Liq4Lij4LijCivguYDguKrguIItCivguYDguKrguILguJrguLjguITguITguKUKK+C5gOC4quC4guC4sAor4LmA4Liq4LiE4Lin4Liy4LihCivguYDguKrguYfguIcKK+C5gOC4quC5ieC4hwor4LmA4Liq4LmH4LiH4LmA4LiE4Lij4LmH4LiHCivguYDguKrguIfguLXguYjguKLguKEKK+C5gOC4quC4j+C4kOC4tQor4LmA4Liq4LiT4Li1CivguYDguKrguJQKK+C5gOC4quC4lOC5h+C4iAor4LmA4Liq4LiU4LmH4LiI4LmD4LiZ4LiB4Lij4LihCivguYDguKrguJTguYfguIjguJ7guKPguLDguKPguLLguIrguJTguLPguYDguJnguLTguJkKK+C5gOC4quC4lS0KK+C5gOC4quC4leC4uAor4LmA4Liq4LiW4Li14Lii4LijCivguYDguKrguJbguLXguKLguKMtCivguYDguKrguJbguLXguKLguKPguKDguLLguJ4KK+C5gOC4quC4lwor4LmA4Liq4LmC4LiXCivguYDguKrguJkKK+C5gOC4quC5ieC4mQor4LmA4Liq4LmJ4LiZ4LmB4LiB4LiH4Lij4LmJ4Lit4LiZCivguYDguKrguYnguJnguILguJnguLLguJkKK+C5gOC4quC5ieC4meC5geC4guC5h+C4hwor4LmA4Liq4LiZ4LiHCivguYDguKrguJnguYjguIcKK+C5gOC4quC5ieC4meC4lOC5ieC4suC4ogor4LmA4Liq4LmJ4LiZ4LiV4Liy4LiiCivguYDguKrguYnguJnguJXguLfguYnguJkKK+C5gOC4quC5ieC4meC4l+C4suC4hwor4LmA4Liq4LmJ4LiZ4Lia4Lix4LiH4LiE4Lix4LiaCivguYDguKrguYnguJnguJzguKHguJrguLHguIfguKDguLnguYDguILguLIKK+C5gOC4quC5ieC4meC4nOC5iOC4suC4meC4qOC4ueC4meC4ouC5jOC4geC4peC4suC4hwor4LmA4Liq4LmJ4LiZ4Lic4LmI4Liy4Lio4Li54LiZ4Lii4LmM4LiB4Lil4Liy4LiHCivguYDguKrguYnguJnguYHguJzguKXguIcKK+C5gOC4quC5ieC4meC4ouC4suC5geC4lOC4h+C4nOC5iOC4suC5geC4m+C4lAor4LmA4Liq4LmJ4LiZ4LmD4LiiCivguYDguKrguYnguJnguYPguKLguYHguIHguYnguKcKK+C5gOC4quC5ieC4meC4o+C4reC4muC4p+C4hwor4LmA4Liq4LmJ4LiZ4Lij4Lix4Lio4Lih4Li1CivguYDguKrguYnguJnguYHguKMKK+C5gOC4quC5ieC4meC4peC4suC4ouC4oeC4t+C4rQor4LmA4Liq4LmJ4LiZ4Lil4Li24LiBCivguYDguKrguYnguJnguYDguKXguLfguK3guJQKK+C5gOC4quC5ieC4meC4p+C4seC4meC4l+C4teC5iAor4LmA4Liq4LmJ4LiZ4Lio4Li54LiZ4Lii4LmM4Liq4Li54LiV4LijCivguYDguKrguYnguJnguKrguKHguKHguLLguJXguKMKK+C5gOC4quC5ieC4meC4quC4seC4oeC4nOC4seC4qgor4LmA4Liq4LmJ4LiZ4Liq4Liy4LiiCivguYDguKrguJnguKstCivguYDguKrguJnguYjguKvguYwKK+C5gOC4quC4meC5iOC4q+C5jOC4iOC4seC4meC4l+C4o+C5jOC4guC4suC4pwor4LmA4Liq4LiZ4LmI4Lir4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiU4LiHCivguYDguKrguJnguYjguKvguYzguJvguKXguLLguKLguIjguKfguLHguIEKK+C5gOC4quC5ieC4meC4q+C4oeC4teC5iAor4LmA4Liq4LiZ4Lir4LiyCivguYDguKrguJnguYjguKvguLIKK+C5gOC4quC4meC4rQor4LmA4Liq4LmJ4LiZ4Liu4LmI4LitCivguYDguKrguJnguLAKK+C5gOC4quC4meC4sgor4LmA4Liq4LiZ4LmI4LiyCivguYDguKrguJnguLLguIHguLjguI4KK+C5gOC4quC4meC4suC4h+C4hOC5jAor4LmA4Liq4LiZ4Liy4LiH4LiE4LiZ4Li04LiB4LijCivguYDguKrguJnguLLguJjguLTguIHguLLguKMKK+C5gOC4quC4meC4suC4mOC4tOC4m+C4seC4lQor4LmA4Liq4LiZ4Liy4LiZ4Li1CivguYDguKrguJnguLLguJrguJTguLUKK+C5gOC4quC4meC4suC4nuC4ouC4uOC4q+C5jAor4LmA4Liq4LiZ4Liy4Lie4Lii4Li54Lir4LmMCivguYDguKrguJnguLLguKrguJnguLAKK+C5gOC4quC4meC4suC4sAor4LmA4Liq4LiZ4Li1CivguYDguKrguJnguLXguKLguYwKK+C5gOC4quC4meC4teC4ouC4lAor4LmA4Liq4LiZ4Li14Lii4LiwCivguYDguKrguJrguKIKK+C5gOC4quC4muC4teC4ouC4hwor4LmA4Liq4Lia4Li14Lii4LiH4LiB4Lij4Lix4LiHCivguYDguKrguJ4KK+C5gOC4quC4nuC4ouC5jOC4leC4tOC4lAor4LmA4Liq4LmA4Lie4LilCivguYDguKrguKDguLIKK+C5gOC4quC4oeC5h+C4lAor4LmA4Liq4Lih4Lir4LiwCivguYDguKrguKHguK0KK+C5gOC4quC4oeC4reC5g+C4iAor4LmA4Liq4Lih4Lit4LiV4LmJ4LiZ4LmA4Liq4Lih4Lit4Lib4Lil4Liy4LiiCivguYDguKrguKHguK3guJXguLHguKcKK+C5gOC4quC4oeC4reC4meC4reC4gQor4LmA4Liq4Lih4Lit4Lia4LmI4Liy4LmA4Liq4Lih4Lit4LmE4Lir4Lil4LmICivguYDguKrguKHguK3guKDguLLguIQKK+C5gOC4quC4oeC4reC4q+C4meC5ieC4sgor4LmA4Liq4Lih4LiyCivguYDguKrguKHguLXguKLguJkKK+C5gOC4quC4oeC4t+C4reC4mQor4LmA4Liq4LiiCivguYDguKrguKPguYfguIgKK+C5gOC4quC4o+C4tOC4lAor4LmA4Liq4Lij4Li04LihCivguYDguKrguKPguLTguKHguKrguKfguKIKK+C5gOC4quC4o+C4tQor4LmA4Liq4Lij4Li14LmE4LiX4LiiCivguYDguKrguKPguLXguJjguKPguKPguKEKK+C5gOC4quC4o+C4teC4meC4tOC4ouC4oQor4LmA4Liq4Lij4Li14Lig4Liy4LieCivguYDguKrguKUtCivguYDguKrguKXguJQKK+C5gOC4quC4peC4lOC4nuC4seC4h+C4nuC4reC4mQor4LmA4Liq4Lil4LiU4Lir4Liy4LiH4Lin4Lix4LinCivguYDguKrguKXguJrguKPguKPguJ7guJUKK+C5gOC4quC4peC4sgor4LmA4Liq4Lil4Li14LmI4Lii4LiHCivguYDguKrguKXguLfguK3guIHguKrguKXguJkKK+C5gOC4quC5guC4pQor4LmA4Liq4Lin4LiBCivguYDguKrguKfguIHguLLguKHguLLguJXguKLguYwKK+C5gOC4quC4p+C4meC4sAor4LmA4Liq4Lin4LiZ4LiyCivguYDguKrguKfguKIKK+C5gOC4quC4p+C4ouC4nuC4o+C4sOC4iuC4suC4leC4tAor4LmA4Liq4Lin4Li14Lii4LiZCivguYDguKrguKrguKPguKfguIcKK+C5gOC4quC4quC4o+C4p+C4pQor4LmA4Liq4LmB4Liq4Lij4LmJ4LiHCivguYDguKrguLIKK+C5gOC4quC5ieC4sgor4LmA4Liq4Liy4LiB4Lij4Liw4LmC4LiU4LiHCivguYDguKrguLLguYDguILguYfguKEKK+C5gOC4quC4suC4iuC4teC5iQor4LmA4Liq4Liy4LiU4Lix4LmJ4LiHCivguYDguKrguLLguJXguLDguKXguLjguIcKK+C5gOC4quC4suC4meC4suC4h+C5gOC4o+C4teC4ouC4hwor4LmA4Liq4Liy4Lij4LmMCivguYDguKrguLLguKPguKDguKLguYwKK+C5gOC4quC4suC4o+C4tQor4LmA4Liq4Liy4LinLQor4LmA4Liq4Liy4Lin4LiE4LiZ4LiY4LmMCivguYDguKrguLLguKfguITguLHguJnguJjguYwKK+C5gOC4quC4suC4p+C4k+C4tOC4lQor4LmA4Liq4Liy4Lin4LiY4Liy4LijCivguYDguKrguLLguKfguJnguLAKK+C5gOC4quC4suC4p+C4meC4sgor4LmA4Liq4Liy4Lin4LiZ4Liy4LiB4Liy4LijCivguYDguKrguLLguKfguJnguLXguKLguYwKK+C5gOC4quC4suC4p+C4oOC4sgor4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMCivguYDguKrguLLguKfguKDguLLguJ4KK+C5gOC4quC4suC4p+C4o+C4oOC4ouC5jAor4LmA4Liq4Liy4Lin4Lij4LiqCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwKK+C5gOC4quC4suC4q+C4oeC4rQor4LmA4Liq4Liy4Lir4Lik4LiXCivguYDguKrguLLguKvguLLguJkKK+C5gOC4quC4suC5gOC4reC4gQor4LmA4Liq4Liy4LiwCivguYDguKrguLLguLDguJTguYnguLLguKIKK+C5gOC4quC4suC4sOC4m+C5iOC4suC4mQor4LmA4Liq4Liy4Liw4LmB4Liq4LiwCivguYDguKrguLTguKPguYzguIgKK+C5gOC4quC4tOC4o+C5jOC4nwor4LmA4Liq4Li14LiiCivguYDguKrguLXguKLguIHguJrguLLguKUKK+C5gOC4quC4teC4ouC4geC4o+C4sOC4muC4p+C4mQor4LmA4Liq4Li14Lii4LiB4LilCivguYDguKrguLXguKLguIHguLLguKMKK+C5gOC4quC4teC4ouC4geC4s+C4i+C5ieC4s+C4geC4reC4mgor4LmA4Liq4Li14Lii4LiB4Liz4LmE4LiU4LmJ4LiB4Lit4LiaCivguYDguKrguLXguKLguIHguLPguKXguLHguIfguYPguIgKK+C5gOC4quC4teC4ouC4geC4tOC4o+C4tOC4ouC4sgor4LmA4Liq4Li14Lii4LiC4Lin4LiHCivguYDguKrguLXguKLguILguKfguLHguI0KK+C5gOC4quC4teC4ouC4hOC4mQor4LmA4Liq4Li14Lii4LiE4Liz4Lie4Li54LiUCivguYDguKrguLXguKLguIcKK+C5gOC4quC4teC5iOC4ouC4hwor4LmA4Liq4Li14Lii4LiH4LmA4LiC4Li14Lii4LinCivguYDguKrguLXguKLguIfguYHguILguYfguIcKK+C5gOC4quC4teC5iOC4ouC4h+C4iuC4teC4p+C4tOC4lQor4LmA4Liq4Li14Lii4LiH4LmB4LiV4LiBCivguYDguKrguLXguKLguIfguJfguK3guIcKK+C5gOC4quC4teC5iOC4ouC4h+C4l+C4suC4ogor4LmA4Liq4Li14LmI4Lii4LiH4Lia4Li44LiN4LmA4Liq4Li14LmI4Lii4LiH4LiB4Lij4Lij4LihCivguYDguKrguLXguKLguIfguJ7guKLguLHguI3guIrguJnguLAKK+C5gOC4quC4teC5iOC4ouC4h+C4oOC4seC4ogor4LmA4Liq4Li14Lii4LiH4Liq4Lij4LiwCivguYDguKrguLXguKLguIfguKvguKXguIcKK+C5gOC4quC4teC4ouC4h+C4reC5iOC4reC4mQor4LmA4Liq4Li14Lii4LiI4Lij4Li04LiVCivguYDguKrguLXguKLguYPguIgKK+C5gOC4quC4teC4ouC5guC4ieC4oQor4LmA4Liq4Li14Lii4LiK4Liy4LiV4Li04LmA4LiB4Li04LiUCivguYDguKrguLXguKLguIrguLfguYjguK0KK+C5gOC4quC4teC4ouC5gOC4iuC4tOC4hwor4LmA4Liq4Li14Lii4LiUCivguYDguKrguLXguKLguJTguYPguJoKK+C5gOC4quC4teC4ouC4lOC4quC4tQor4LmA4Liq4Li14Lii4LiU4Liy4LiiCivguYDguKrguLXguKLguYDguJTguYfguIEKK+C5gOC4quC4teC4ouC4leC4seC4pwor4LmA4Liq4Li14Lii4LmB4LiV4LmJ4LihCivguYDguKrguLXguKLguYDguJbguK3guLAKK+C5gOC4quC4teC4ouC5gOC4luC4tOC4lAor4LmA4Liq4Li14Lii4LiX4LmI4LiyCivguYDguKrguLXguKLguJfguLUKK+C5gOC4quC4teC5ieC4ouC4mQor4LmA4Liq4Li14LmJ4Lii4LiZ4Lio4Li24LiBCivguYDguKrguLXguYnguKLguJnguKvguJnguLLguKEKK+C5gOC4quC4teC4ouC4meC5ieC4s+C5g+C4iAor4LmA4Liq4Li14Lii4LiZ4LmJ4Liz4LiV4LiyCivguYDguKrguLXguKLguYDguJnguLfguYnguK3guYDguKrguLXguKLguJXguLHguKcKK+C5gOC4quC4teC4ouC4mgor4LmA4Liq4Li14Lii4Lia4LiZCivguYDguKrguLXguKLguJrguKvguJnguLkKK+C5gOC4quC4teC4ouC4m+C4suC4gQor4LmA4Liq4Li14Lii4LmA4Lib4Lij4Li14Lii4LiaCivguYDguKrguLXguKLguJzguLUKK+C5gOC4quC4teC4ouC4nOC4ueC5ieC5g+C4q+C4jeC5iAor4LmA4Liq4Li14Lii4Lig4Li54Lih4Li0CivguYDguKrguLXguKLguKEKK+C5gOC4quC4teC5iOC4ouC4oQor4LmA4Liq4Li14LmJ4Lii4LihCivguYDguKrguLXguYnguKLguKHguYDguILguLLguITguKfguLLguKLguYPguKvguYnguIrguJnguIHguLHguJkKK+C5gOC4quC4teC5ieC4ouC4oeC4quC4reC4mQor4LmA4Liq4Li14LmI4Lii4Lih4Liq4Liy4LijCivguYDguKrguLXguKLguKPguK3guKIKK+C5gOC4quC4teC4ouC4o+C4seC4h+C4p+C4seC4lAor4LmA4Liq4Li14Lii4Lij4Liy4Lio4Li1CivguYDguKrguLXguKLguKPguLnguYkKK+C5gOC4quC4teC4ouC4o+C4ueC4mwor4LmA4Liq4Li14Lii4Lij4Li54Lib4LiE4LiU4Li1CivguYDguKrguLXguKLguYHguKPguIcKK+C5gOC4quC4teC4ouC4pwor4LmA4Liq4Li14LmI4Lii4LinCivguYDguKrguLXguYnguKLguKcKK+C5gOC4quC4teC4ouC4p+C4i+C5iOC4suC4mQor4LmA4Liq4Li14Lii4Lin4LmE4Liq4LmJCivguYDguKrguLXguKLguYDguKjguKfguJXguInguLHguJXguKMKK+C5gOC4quC4teC4ouC4quC4peC4sAor4LmA4Liq4Li14Lii4Liq4Liy4LinCivguYDguKrguLXguKLguYDguKrguYnguJkKK+C5gOC4quC4teC4ouC4q+C4meC5iOC4reC4ogor4LmA4Liq4Li14Lii4Lir4LiZ4LmJ4LiyCivguYDguKrguLXguKLguKvguKXguLHguIEKK+C5gOC4quC4teC4ouC4q+C4peC4suC4ogor4LmA4Liq4Li14Lii4Lir4Lix4LinCivguYDguKrguLXguKLguKvguLLguKIKK+C5gOC4quC4teC4ouC5gOC4q+C4peC4teC5iOC4ouC4oQor4LmA4Liq4Li34LitCivguYDguKrguLfguYjguK0KK+C5gOC4quC4t+C5ieC4rQor4LmA4Liq4Li34Lit4LiBCivguYDguKrguLfguK3guIHguIHguLDguYLguKvguKXguIEKK+C5gOC4quC4t+C4reC4geC4hOC4peC4suC4mQor4LmA4Liq4Li34Lit4LiB4Lij4Liw4LiU4Liy4LipCivguYDguKrguLfguK3guIHguKPguLDguJXguYjguLLguKIKK+C5gOC4quC4t+C5ieC4reC4geC4peC5ieC4suC4oQor4LmA4Liq4Li34Lit4LiB4Liq4LiZCivguYDguKrguLfguK3guIHguYTguKoKK+C5gOC4quC4t+C5ieC4reC4geC4seC5iuC4gQor4LmA4Liq4Li34Lit4LiB4Li04LiZ4Lin4Lix4LinCivguYDguKrguLfguK3guYDguIHguYjguLIKK+C5gOC4quC4t+C4reC4guC5ieC4suC4oeC4q+C5ieC4p+C4ogor4LmA4Liq4Li34Lit4LiI4LiZ4LiX4LmI4LiyIOC4guC5ieC4suC4iOC4meC4l+C4suC4hwor4LmA4Liq4Li34Lit4LiL4LmI4Lit4LiZ4LmA4Lil4LmH4LiaCivguYDguKrguLfguK3guYDguJLguYjguLLguIjguLPguKjguLXguKUKK+C5gOC4quC4t+C4reC4lOC4suC4pwor4LmA4Liq4Li34Lit4LiU4LizCivguYDguKrguLfguK3guJXguIHguJbguLHguIcKK+C5gOC4quC4t+C4reC4leC4muC4geC5ieC4mQor4LmA4Liq4Li34Lit4LiX4Lil4Liy4Lii4Lir4LmJ4Liy4LiHIOC4iuC5ieC4suC4h+C4l+C4peC4suC4ouC5guC4o+C4hwor4LmA4Liq4Li34Lit4LiX4Liw4LmA4LilCivguYDguKrguLfguK3guJnguK3guJnguIHguLTguJkKK+C5gOC4quC4t+C4reC4meC4seC5iOC4h+C4o+C5iOC4oQor4LmA4Liq4Li34LmJ4Lit4LiZ4LmJ4LizCivguYDguKrguLfguYjguK3guJnguYnguLPguKHguLHguJkKK+C5gOC4quC4t+C4reC5g+C4meC4o+C5iOC4suC4h+C4quC4oeC4seC4mQor4LmA4Liq4Li34Lit4Lia4Lit4LiHCivguYDguKrguLfguK3guJvguKXguLIKK+C5gOC4quC4t+C4reC4m+C5iOC4sgor4LmA4Liq4Li34Lit4Lib4LmI4Liy4LmB4Lih4Lin4LmA4LiL4LiyCivguYDguKrguLfguK3guJvguYjguLLguYHguKHguKfguKHguK3guIcKK+C5gOC4quC4t+C4reC5hOC4nwor4LmA4Liq4Li34LmI4Lit4LihCivguYDguKrguLfguYjguK3guKHguJfguKPguLLguKEKK+C5gOC4quC4t+C5iOC4reC4oeC5guC4l+C4o+C4oQor4LmA4Liq4Li34LmI4Lit4Lih4Liq4Li04LiX4LiY4Li04LmMCivguYDguKrguLfguYjguK3guKHguYDguKrguLXguKIKK+C5gOC4quC4t+C4reC5geC4oeC4peC4h+C4p+C4seC4mQor4LmA4Liq4Li34Lit4Lij4Li54LmJCivguYDguKrguLfguYjguK3guKXguKfguJQKK+C5gOC4quC4t+C4reC4peC4suC4geC4q+C4suC4hwor4LmA4Liq4Li34LmI4Lit4Lil4Liz4LmB4Lie4LiZCivguYDguKrguLfguK3guKrguKHguLTguIcKK+C5gOC4quC4t+C4reC4quC4tOC5ieC4meC4leC4p+C4seC4gQor4LmA4Liq4Li34Lit4Liq4Li44Lih4Liy4LiV4Lij4LiyCivguYDguKrguLfguYnguK3guYHguKrguIcKK+C5gOC4quC4t+C4reC4q+C4oeC4reC4mgor4LmA4Liq4Li34Lit4Lir4Li04LinCivguYHguKoKK+C5geC4quC5iAor4LmB4Liq4LmJCivguYHguKrguIEKK+C5geC4quC4geC5hgor4LmB4Liq4LiB4Lir4LiZ4LmJ4LiyCivguYHguKrguIcKK+C5geC4quC4h+C5gOC4h+C4tOC4meC5geC4quC4h+C4l+C4reC4hwor4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMCivguYHguKrguIfguKrguKfguYjguLLguIcKK+C5geC4quC4h+C4reC4suC4l+C4tOC4leC4ouC5jAor4LmB4Liq4LiUCivguYHguKrguJTguIcKK+C5geC4quC4lOC4h+C4reC4reC4gQor4LmB4Liq4LiV4Lih4Lib4LmMCivguYHguKrguYDguJbguLIKK+C5geC4quC4mQor4LmB4Liq4LiZ4LiB4LilCivguYHguKrguJnguIcKK+C5geC4quC4meC4h+C4reC4mQor4LmB4Liq4LiZ4LiiLQor4LmB4Liq4LiZ4Lii4LmMCivguYHguKrguJnguKLguLLguIHguKMKK+C5geC4quC4meC4ouC4suC4meC4uOC4oOC4suC4ngor4LmB4Liq4LiZ4Lij4Li54LmJCivguYHguKrguJnguYDguKrguJnguLLguLAKK+C5geC4quC4meC4sgor4LmB4Liq4LiaCivguYHguKrguJrguIEKK+C5geC4quC4oQor4LmB4Liq4Lih4Liq4Liy4LijCivguYHguKrguYnguKHguYnguLIKK+C5geC4quC5ieC4oeC5ieC4suC4l+C4sOC4peC4suC4ogor4LmB4Liq4Lii4LiBCivguYHguKrguKLguIcKK+C5geC4quC4ouC4h+C4guC4mQor4LmB4Liq4Lii4LiwCivguYHguKrguKPguIEKK+C5geC4quC4o+C5ieC4hwor4LmB4Liq4Lij4LmJ4LiH4Lin4LmI4LiyCivguYHguKrguKXguIcKK+C5geC4quC4peC4h+C5g+C4iAor4LmB4Liq4Lil4LiH4LmA4Lia4Li34LmI4LitCivguYHguKrguKfguIcKK+C5geC4quC4reC4gQor4LmB4Liq4LiwCivguYLguKrguIEKK+C5guC4quC4geC5guC4lOC4gQor4LmC4Liq4LiB4Lix4LiZ4LiV4LmMCivguYLguKrguIHguLLguJTguLLguJnguLIKK+C5guC4quC5guC4hOC4o+C4gQor4LmC4Liq4LiTCivguYLguKrguJPguJHguYwKK+C5guC4quC4k+C4tAor4LmC4Liq4LiT4Li1CivguYLguKrguJQKK+C5guC4quC4lOC4gQor4LmC4Liq4LiU4LihCivguYLguKrguJTguLIKK+C5guC4quC4lOC4suC4muC4seC4mQor4LmC4Liq4LiU4Liy4Lib4Lix4LiV4LiV4Li04Lic4LilCivguYLguKrguJTguLLguJvguLHguJXguJXguLTguKHguKPguKPguIQKK+C5guC4quC4lQor4LmC4Liq4LiVLQor4LmC4Liq4LiV4LiW4Li0CivguYLguKrguJXguJfguLHguKjguJnguKfguLHguKrguJTguLgKK+C5guC4quC4leC4l+C4seC4qOC4meC4reC4uOC4m+C4geC4o+C4k+C5jAor4LmC4Liq4LiX4LiBCivguYLguKrguJfguKMKK+C5guC4quC4mOC4gQor4LmC4Liq4LiY4LiZ4LiwCivguYLguKrguJkKK+C5guC4quC4meC4geC4tOC4meC4lOC4reC4gQor4LmC4Liq4LiZ4LiE4Liy4LiH4LiE4LiBCivguYLguKrguJnguKvguLLguIfguYTguIHguYgKK+C5guC4quC4meC4q+C4tOC4mQor4LmC4Liq4LigLQor4LmC4Liq4Lig4LiTCivguYLguKrguKDguLIKK+C5guC4quC4oOC4tOC4k+C4tQor4LmC4Liq4Lig4Li1CivguYLguKrguYDguKDguJPguLUKK+C5guC4quC4oQor4LmC4Liq4Lih4LiZ4Lix4LiqCivguYLguKrguKHguKEKK+C5guC4quC4oeC4ouC5jAor4LmC4Liq4Lih4Liq4LmI4Lit4LiH4LmB4Liq4LiHCivguYLguKrguKPguYjguIcKK+C5guC4quC4o+C4iAor4LmC4Liq4Lij4LiI4Liq4Lij4LiHCivguYLguKrguKfguKPguKPguJMKK+C5guC4quC4q+C4uOC5ieC4ogor4LmC4Liq4Lis4LiqCivguYPguKoKK+C5g+C4quC5iAor4LmD4Liq4LmI4LiE4Lin4Liy4LihCivguYPguKrguYjguITguLDguYHguJnguJnguYTguKHguYjguJfguLHguJkKK+C5g+C4quC5iOC5hOC4hOC4peC5iQor4LmD4Liq4LmI4LmD4LiICivguYPguKrguYjguJXguLDguIHguKPguYnguLLguKXguYnguLLguIfguJnguYnguLMKK+C5g+C4quC5iOC4luC5ieC4reC4ouC4o+C5ieC4reC4ouC4hOC4p+C4suC4oQor4LmD4Liq4LmI4LmE4LifCivguYPguKrguYjguKLguLIKK+C5g+C4quC5iOC4o+C5ieC4suC4ogor4LmD4Liq4LmI4Liq4Liy4LmB4Lir4Lij4LiB4LmB4LiC4Lin4LiZ4LmE4Lin4LmJCivguYPguKrguYjguKrguLXguKrguLHguJkKK+C5g+C4quC5iOC5hOC4quC5iQor4LmD4Liq4LmI4Lir4LiZ4LmJ4Liy4LiB4Liy4LiBCivguYPguKrguYjguKvguJnguYnguLLguKLguLHguIHguKnguYwKK+C5hOC4qgor4LmE4Liq4LmJCivguYTguKrguYnguIHguKPguK3guIEKK+C5hOC4quC5ieC5hOC4geC5iAor4LmE4Liq4LmJ4LmB4LiC4Lin4LiZCivguYTguKrguYnguYDguJTguLfguK3guJkKK+C5hOC4quC5ieC4leC4seC4mQor4LmE4Liq4LmJ4LiV4Li04LmI4LiHCivguYTguKrguYnguYDguJvguYfguJnguJnguYnguLPguYDguKvguKXguLfguK3guIcKK+C5hOC4quC5ieC5gOC4m+C5h+C4meC4q+C4meC4reC4mQor4LmE4Liq4LiiCivguYTguKrguKItCivguYTguKrguKLguYDguKfguJcKK+C5hOC4quC4ouC4qOC4suC4quC4leC4o+C5jAor4LmE4Liq4Lii4LiyCivguYTguKrguKLguLLguKrguJnguYwKK+C5hOC4quC4o+C5iQor4LmE4Liq4LmJ4Lil4Liw4Lih4Liy4LiZCivguYTguKrguYnguYDguKXguLfguYjguK3guJkKK+C5hOC4quC4pwor4LmE4Liq4LmJ4Lio4Li24LiBCivguYTguKrguKvguLHguKcKK+C5hOC4quC5ieC5geC4q+C5ieC4hwor4LmE4Liq4LmJ4Lit4Lix4LmI4LinCivguKsKK+C4q+C4gQor4Lir4LiB4LiE4Lin4LmI4LizCivguKvguIHguITguLDguYDguKHguJkKK+C4q+C4geC4muC4lwor4Lir4LiB4Lil4LmJ4LihCivguKvguIHguYLguKXguYgKK+C4q+C4geC4q+C4seC4mQor4Lir4LiHCivguKvguIfguIHguYYKK+C4q+C4h+C4qi0KK+C4q+C4h+C4quC5jAor4Lir4LiH4Liq4LiE4LiV4Li0CivguKvguIfguKrguYzguJfguK3guIcKK+C4q+C4h+C4quC4muC4suC4lwor4Lir4LiH4Liq4Lij4LiWCivguKvguIfguKrguYzguKPguYjguK3guJnguKHguLHguIfguIHguKPguKPguLMKK+C4q+C4h+C4quC4o+C4suC4igor4Lir4LiH4Liq4LmM4Lil4Li14Lil4LiyCivguKvguIfguKrguYzguKvguKLguIEKK+C4q+C4h+C4rQor4Lir4LiH4Lit4LiBCivguKvguIfguYjguK3guIfguYYKK+C4q+C4h+C4reC4h+C5geC4q+C4h+C4hwor4Lir4LiH4Lit4LiUCivguKvguIfguK3guJTguYYKK+C4q+C4h+C4reC4mQor4Lir4LiH4Lit4LiZ4LmE4LiB4LmICivguKvguIfguK3guJnguYTguIHguYjguJvguYjguLIKK+C4q+C4h+C5iOC4reC4oQor4Lir4LiH4Lit4LiiCivguKvguIfguYjguK3guKIKK+C4q+C4h+C4reC4ouC4geC5i+C4reC4ogor4Lir4LiH4Lit4Lii4LmA4Lir4LiH4LiyCivguKvguIfguLHguIHguYYKK+C4q+C4h+C4seC4muC5hgor4Lir4LiH4LmI4Liy4LiHCivguKvguIfguLLguKIKK+C4q+C4h+C4suC4ouC4l+C5ieC4reC4hwor4Lir4LiH4Liy4Lii4Lir4Lil4Lix4LiHCivguKvguIfguYjguLLguKcKK+C4q+C4h+C4swor4Lir4LiH4Liz4LmA4Lir4LiH4Lit4LiwCivguKvguIfguLTguIEKK+C4q+C4h+C4tOC4h+C5hgor4Lir4LiH4Li04LihCivguKvguIfguLTguKHguYYKK+C4q+C4h+C4tuC4geC5hgor4Lir4LiH4Li44LiH4Lir4LiH4Li04LiHCivguKvguIfguLjguJTguKvguIfguLTguJQKK+C4q+C4h+C4uOC4mgor4Lir4LiH4Li44Lia4Lir4LiH4Lix4LiaCivguKvguIfguLjguYjguKIKK+C4q+C4jeC5ieC4sgor4Lir4LiN4LmJ4Liy4LiB4Lij4Liw4LiI4Liy4LihCivguKvguI3guYnguLLguYDguIHguKXguYfguJTguKvguK3guKIKK+C4q+C4jeC5ieC4suC4guC4seC4lAor4Lir4LiN4LmJ4Liy4LiC4Lix4LiU4LmD4Lia4Lii4Liy4LinCivguKvguI3guYnguLLguILguLHguJTguKvguKXguKfguIcKK+C4q+C4jeC5ieC4suC4h+C4p+C4h+C4iuC5ieC4suC4hwor4Lir4LiN4LmJ4Liy4LiI4Liy4LihCivguKvguI3guYnguLLguYPguJXguYnguYPguJoKK+C4q+C4jeC5ieC4suC4luC4reC4lOC4m+C4peC5ieC4reC4hwor4Lir4LiN4LmJ4Liy4LiZ4LmJ4Liz4LiU4Lix4Lia4LmE4LifCivguKvguI3guYnguLLguJrguLHguKcKK+C4q+C4jeC5ieC4suC4m+C4suC4geC4hOC4reC4gQor4Lir4LiN4LmJ4Liy4Lib4Li14LiZ4LiV4LitCivguKvguI3guYnguLLguJ3guKPguLHguYjguJkKK+C4q+C4jeC5ieC4suC4nuC4seC4meC4h+C4uQor4Lir4LiN4LmJ4Liy4LmA4Lie4LmH4LiBCivguKvguI3guYnguLLguYHguJ7guKPguIEKK+C4q+C4jeC5ieC4suC4ouC4reC4h+C5hOC4nwor4Lir4LiN4LmJ4Liy4Lii4Liy4Lii4LmA4Lig4LiyCivguKvguI3guYnguLLguKPguIHguIrguYnguLLguIcKK+C4q+C4jeC5ieC4suC4o+C4suC4geC4guC4suC4pwor4Lir4LiN4LmJ4Liy4Lil4Li04LmA4Lig4LiyCivguKvguI3guYnguLLguKvguJnguKfguJTguYHguKHguKcKK+C4q+C4jeC5ieC4suC5geC4q+C5ieC4p+C4q+C4oeC4uQor4Lir4LiN4Li04LiHCivguKvguI3guLTguJoKK+C4q+C4lAor4Lir4LiU4Lir4Liy4LiiCivguKvguJTguKvguLnguYgKK+C4q+C4leC4sAor4Lir4LiX4LiiLQor4Lir4LiX4Lix4LiiCivguKvguJkKK+C4q+C4meC4l+C4suC4hwor4Lir4LiZ4LiZ4LiwCivguKvguJnguKfguIEKK+C4q+C4meC4p+C4geC4q+C4uQor4Lir4LiZ4LmI4Lin4LiHCivguKvguJnguYjguKfguIfguYDguKvguJnguLXguYjguKLguKcKK+C4q+C4meC4p+C4lAor4Lir4LiZ4Lin4LiU4LiZ4Liy4LiE4Lij4Liy4LiKCivguKvguJnguKfguJTguJ7guKPguLLguKvguKHguJPguYwKK+C4q+C4meC4p+C4lOC5geC4oeC4pwor4Lir4LiZ4LmI4Lin4LiiCivguKvguJnguYjguKfguKLguIHguYnguLLguJkKK+C4q+C4meC5iOC4p+C4ouC4geC4tOC4lQor4Lir4LiZ4LmI4Lin4Lii4LiU4Liy4Lij4Liy4Lio4Liy4Liq4LiV4Lij4LmMCivguKvguJnguK0KK+C4q+C4meC5iOC4rQor4Lir4LiZ4Lit4LiBCivguKvguJnguK3guIHguIrguYnguLLguIcKK+C4q+C4meC4reC4hwor4Lir4LiZ4Lit4LiH4LmB4LiL4LiHCivguKvguJnguK3guIfguYPguJkKK+C4q+C4meC5h+C4reC4h+C5geC4q+C4meC5h+C4hwor4Lir4LiZ4Lit4LiZCivguKvguJnguK3guJnguIHguKPguLDguJfguLnguYkKK+C4q+C4meC4reC4meC4geC4o+C4sOC4quC4t+C4rQor4Lir4LiZ4Lit4LiZ4LiB4LitCivguKvguJnguK3guJnguJTguYnguJkKK+C4q+C4meC4reC4meC4leC4suC4ouC4q+C4ouC4suC4gQor4Lir4LiZ4Lit4LiZ4Lia4LmI4Lit4LiZ4LmE4Liq4LmJCivguKvguJnguK3guJnguJ7guKLguLLguJjguLQKK+C4q+C4meC4reC4meC4oeC5ieC4p+C4meC5g+C4muC4guC5ieC4suC4pwor4Lir4LiZ4Lit4LiZ4Lir4LiZ4Lix4LiH4Liq4Li34LitCivguKvguJnguYjguK3guYDguJnguLfguYnguK3guYDguIrguLfguYnguK3guYTguIIKK+C4q+C4meC5iOC4reC5hOC4oeC5iQor4Lir4LiZ4LmI4Lit4LmE4Lih4LmJ4LiZ4LmJ4LizCivguKvguJnguYjguK3guYTguKHguYnguJ3guKPguLHguYjguIcKK+C4q+C4meC5iOC4reC4ogor4Lir4LiZ4LmH4Lit4Lii4LmB4LiZ4LmICivguKvguJnguLHguIEKK+C4q+C4meC4seC4geC4guC5ieC4rQor4Lir4LiZ4Lix4LiB4LmD4LiICivguKvguJnguLHguIHguYHguJnguYjguJkKK+C4q+C4meC4seC4geC4m+C4suC4gQor4Lir4LiZ4Lix4LiB4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguKvguJnguLHguIHguKHguLfguK0KK+C4q+C4meC4seC4geC5hOC4oeC5iOC5gOC4reC4siDguYDguJrguLLguYTguKHguYjguKrguLnguYkKK+C4q+C4meC4seC4geC4q+C4meC5iOC4p+C4hwor4Lir4LiZ4Lix4LiB4Lir4LiZ4LiyCivguKvguJnguLHguIHguKvguJnguYnguLIKK+C4q+C4meC4seC4geC4reC4gQor4Lir4LiZ4Lix4LiHCivguKvguJnguLHguIfguIHguKXguLLguIfguKfguLHguJkKK+C4q+C4meC4seC4h+C4geC4s+C4nuC4o+C5ieC4sgor4Lir4LiZ4Lix4LiH4LmE4LiB4LmICivguKvguJnguLHguIfguJXguLDguKXguLjguIcKK+C4q+C4meC4seC4h+C5gOC4o+C4teC4ouC4lAor4Lir4LiZ4Lix4LiH4Liq4LiV4Li04LmK4LiBCivguKvguJnguLHguIfguKrguLfguK0KK+C4q+C4meC4seC4h+C4quC4t+C4reC5gOC4lOC4tOC4meC4l+C4suC4hwor4Lir4LiZ4Lix4LiH4Liq4Li34Lit4Lia4Lij4Li04LiE4LiT4Lir4LmM4Liq4LiZ4LiY4Li0CivguKvguJnguLHguIfguKrguLfguK3guJ7guLTguKHguJ7guYwKK+C4q+C4meC4seC4h+C4quC4t+C4reC4o+C4seC4muC4o+C4reC4h+C4geC4suC4o+C4l+C4s+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lir4LiZ4Lix4LiH4Liq4Li34Lit4LmA4Lin4Li14Lii4LiZCivguKvguJnguLHguIfguKrguLfguK3guKrguLHguI3guI3guLIKK+C4q+C4meC4seC4h+C4q+C4meC5ieC4suC5hOC4nwor4Lir4LiZ4Lix4LiH4LmD4Lir4LiN4LmICivguKvguJnguLHguYjguJkKK+C4q+C4meC4seC4mgor4Lir4LiZ4LiyCivguKvguJnguYnguLIKK+C4q+C4meC5ieC4suC4geC4o+C4sOC4ieC4teC4gQor4Lir4LiZ4LmJ4Liy4LiB4Lij4Liw4LiU4Liy4LiZCivguKvguJnguYnguLLguIHguLLguIEKK+C4q+C4meC4suC4geC4suC4quC4o+C4tQor4Lir4LiZ4LmJ4Liy4LmA4LiB4LmJ4LitCivguKvguJnguYnguLLguILguLIKK+C4q+C4meC5ieC4suC4guC5ieC4suC4p+C4leC4seC4hwor4Lir4LiZ4LmJ4Liy4LmB4LiC4LmJ4LiHCivguKvguJnguYnguLLguITguKfguYjguLMKK+C4q+C4meC5iOC4suC4hwor4Lir4LiZ4LmJ4Liy4LiH4LitCivguKvguJnguYnguLLguIfguK3guIEKK+C4q+C4meC5ieC4suC5gOC4h+C5ieC4sgor4Lir4LiZ4LmJ4Liy4LmB4LiHCivguKvguJnguYnguLLguIjguYvguK3guKIKK+C4q+C4meC5ieC4suC4iOC4seC5iOC4pwor4Lir4LiZ4LmJ4Liy4LiI4Li34LiUCivguKvguJnguYnguLLguInguLLguIEKK+C4q+C4meC5ieC4suC4ieC4suC4mQor4Lir4LiZ4LmJ4Liy4LmC4LiJ4LiZ4LiUCivguKvguJnguYnguLLguIvguLXguJQKK+C4q+C4meC5ieC4suC4i+C4t+C5iOC4reC5g+C4iOC4hOC4lAor4Lir4LiZ4LmJ4Liy4LmA4LiL4Li14Lii4LinCivguKvguJnguLLguJQKK+C4q+C4meC5ieC4suC4lOC5ieC4suC4mQor4Lir4LiZ4LmJ4Liy4LiV4Lix4LiBCivguKvguJnguYnguLLguJXguLHguYnguIcKK+C4q+C4meC4suC4leC4sgor4Lir4LiZ4LmJ4Liy4LiV4LiyCivguKvguJnguYnguLLguJXguYjguLLguIcKK+C4q+C4meC5ieC4suC4leC4suC4ogor4Lir4LiZ4LmJ4Liy4LiV4Li24LiHCivguKvguJnguYnguLLguJXguLfguYjguJkKK+C4q+C4meC5ieC4suC4leC4ueC4oQor4Lir4LiZ4LmJ4Liy4LmA4LiV4LiyCivguKvguJnguYnguLLguJbguLHguIcKK+C4q+C4meC5ieC4suC4l+C4seC4mgor4Lir4LiZ4LmJ4Liy4LiX4Li14LmICivguKvguJnguYnguLLguJfguLXguYjguJnguLHguYjguIcKK+C4q+C4meC4suC4mQor4Lir4LiZ4LmJ4Liy4LiZ4Lin4LilCivguKvguJnguYnguLLguYDguJnguLfguYnguK3guYPguIjguYDguKrguLfguK0KK+C4q+C4meC4suC5geC4meC5iOC4mQor4Lir4LiZ4LmJ4Liy4Lia4Lix4LiZCivguKvguJnguYnguLLguJrguLLguIcKK+C4q+C4meC5ieC4suC4muC4suC4mQor4Lir4LiZ4LmJ4Liy4Lia4Li54LiUCivguKvguJnguYnguLLguJvguLHguJQKK+C4q+C4meC5ieC4suC5gOC4m+C5h+C4mQor4Lir4LiZ4LmJ4Liy4Lic4LiyCivguKvguJnguYnguLLguJzguLLguIEKK+C4q+C4meC5ieC4suC4nuC4suC4l+C4ouC5jAor4Lir4LiZ4LmJ4Liy4LmE4LifCivguKvguJnguLLguKEKK+C4q+C4meC4suC4oeC4guC4teC5ieC5geC4o+C4lAor4Lir4LiZ4Liy4Lih4LmA4LiC4Li14Lii4LiwCivguKvguJnguLLguKHguITguKfguLLguKLguJnguK3guJkKK+C4q+C4meC4suC4oeC4iOC4teC5iQor4Lir4LiZ4Liy4Lih4LmB4LiU4LiHCivguKvguJnguLLguKHguYDguJXguKIKK+C4q+C4meC4suC4oeC4nuC4o+C4oQor4Lir4LiZ4Liy4Lih4Lie4Li44LiH4LiU4LitCivguKvguJnguLLguKHguKLguK3guIHguK3guIEKK+C4q+C4meC4suC4oeC4ouC4reC4geC5gOC4reC4suC4q+C4meC4suC4oeC4muC5iOC4hwor4Lir4LiZ4Liy4Lih4Lij4Lit4Lia4LiV4Lix4LinCivguKvguJnguLLguKHguKvguKXguLHguIcKK+C4q+C4meC4suC4oeC5gOC4q+C4oeC5h+C4mQor4Lir4LiZ4Liy4Lih4LmB4Lir4Lil4Lih4LmE4Lih4LmI4Lih4Li14LmD4LiE4Lij4LmA4Liq4Li14LmJ4Lii4LihCivguKvguJnguLLguKHguYPguKvguI3guYgKK+C4q+C4meC5ieC4suC4oeC4reC4lAor4Lir4LiZ4LmJ4Liy4Lih4LmI4Lit4LiiCivguKvguJnguYnguLLguKHguYnguLIKK+C4q+C4meC5ieC4suC4oeC4t+C4lAor4Lir4LiZ4LmJ4Liy4Lih4Li44LiCCivguKvguJnguYnguLLguYTguKHguYkKK+C4q+C4meC5iOC4suC4ogor4Lir4LiZ4LmI4Liy4Lii4Lir4LiZ4Li1CivguKvguJnguYjguLLguKLguYHguKvguJnguIcKK+C4q+C4meC5ieC4suC4o+C5iOC4suC4q+C4uOC5jAor4Lir4LiZ4LmJ4Liy4Lij4Liy4Lir4Li5CivguKvguJnguYnguLLguYDguKXguLfguK3guJQKK+C4q+C4meC4suC4pwor4Lir4LiZ4Liy4Lin4LmD4LiICivguKvguJnguYnguLLguKfguLHguKcKK+C4q+C4meC5ieC4suC5geC4p+C5iOC4mQor4Lir4LiZ4LmJ4Liy4Liq4Li04LmI4Lin4Lir4LiZ4LmJ4Liy4LiC4Lin4Liy4LiZCivguKvguJnguYnguLLguYDguKrguLXguKIKK+C4q+C4meC5ieC4suC5gOC4quC4teC5ieC4ouC4pwor4Lir4LiZ4LmJ4Liy4Lir4LiZ4LiyCivguKvguJnguYnguLLguKvguLHguIEKK+C4q+C4meC4suC4q+C4uQor4Lir4LiZ4Liy4Lir4Li54Lir4LiZ4Liy4LiV4LiyCivguKvguJnguYnguLLguYPguKvguI3guYjguYPguIjguYLguJUKK+C4q+C4meC5ieC4suC5hOC4q+C4p+C5ieC4q+C4peC4seC4h+C4q+C4peC4reC4gQor4Lir4LiZ4LmJ4Liy4Lit4LiBCivguKvguJnguYnguLLguK3guLHguJQKK+C4q+C4meC4swor4Lir4LiZ4Liz4LmD4LiICivguKvguJnguLPguYDguKXguLXguYnguKLguJoKK+C4q+C4meC4tQor4Lir4LiZ4Li14LmJCivguKvguJnguLXguYnguYDguIHguKXguLfguYjguK3guJnguIHguKXguLfguJnguIHguLHguJkKK+C4q+C4meC4teC4mgor4Lir4LiZ4Li14LmJ4Liq4Li04LiZCivguKvguJnguLXguYnguKrguLnguI0KK+C4q+C4meC4teC5gOC4quC4t+C4rQor4Lir4LiZ4Li14LmA4Liq4Li34Lit4Lib4Liw4LiI4Lij4Liw4LmA4LiC4LmJCivguKvguJnguLbguIEKK+C4q+C4meC4tuC5iOC4hwor4Lir4LiZ4Li24LiaCivguKvguJnguLfguJQKK+C4q+C4meC4uAor4Lir4LiZ4Li44LiZCivguKvguJnguLjguJnguYDguJnguLfguYjguK3guIcKK+C4q+C4meC4uOC4meC4q+C4peC4seC4hwor4Lir4LiZ4Li44LiaCivguKvguJnguLjguJrguYYKK+C4q+C4meC4uOC4muC4q+C4meC4seC4mgor4Lir4LiZ4Li44LmI4LihCivguKvguJnguLjguYjguKHguJfguLHguYnguIfguYHguJfguYjguIcKK+C4q+C4meC4uOC5iOC4oeC5geC4meC5iOC4mQor4Lir4LiZ4Li44LmI4Lih4LmA4Lir4LiZ4LmJ4LiyCivguKvguJnguLjguYjguKIKK+C4q+C4meC4uQor4Lir4LiZ4Li54LiV4LiB4LiW4Lix4LiH4LiC4LmJ4Liy4Lin4Liq4Liy4LijCivguKvguJnguLnguJXguLTguJTguIjguLHguYjguJkKK+C4q+C4meC4ueC4nOC4tQor4Lir4LmI4LihCivguKvguKHguIEKK+C4q+C4oeC4geC4oeC4uOC5iOC4mQor4Lir4Lih4LiB4LmE4Lir4Lih4LmJCivguKvguKHguJQKK+C4q+C4oeC4lOC4geC4o+C4sOC5gOC4m+C5i+C4sgor4Lir4Lih4LiU4LiB4Lix4LiZCivguKvguKHguJTguYDguILguJUKK+C4q+C4oeC4lOC5gOC4guC4teC5ieC4ouC4p+C4q+C4oeC4lOC4h+C4sgor4Lir4Lih4LiU4LiI4LiUCivguKvguKHguJTguJXguLHguKcKK+C4q+C4oeC4lOC4leC4s+C4o+C4sgor4Lir4Lih4LiU4LiV4Li54LiUCivguKvguKHguJTguYDguJnguLfguYnguK3guKvguKHguJTguJXguLHguKcKK+C4q+C4oeC4lOC4muC4uOC4jQor4Lir4Lih4LiU4Lib4Lij4Liw4LiV4Li5CivguKvguKHguJTguYDguJvguKXguLfguK3guIEKK+C4q+C4oeC4lOC4nuC4gQor4Lir4Lih4LiU4Lie4Li44LiHCivguKvguKHguJTguKPguLnguJsKK+C4q+C4oeC4lOC5hOC4quC5ieC4q+C4oeC4lOC4nuC4uOC4hwor4Lir4LmI4Lih4LiU4Lit4LiHCivguKvguKHguJTguK3guLLguKLguLgKK+C4q+C4oeC4lOC4reC4suC4peC4seC4ogor4Lir4Lih4LiU4Lit4Liy4Lil4Lix4Lii4LiV4Liy4Lii4Lit4Lii4Liy4LiBCivguKvguKHguJTguK3guLLguKXguLHguKLguYTguKLguJTguLUKK+C4q+C4oeC5iOC4mQor4Lir4Lih4LmI4LiZ4Lir4Lih4Lit4LiHCivguKvguKHguYjguJnguYTguKvguKHguYkKK+C4q+C4oeC4p+C4gQor4Lir4Lih4Lin4LiB4LiB4Liw4LmC4Lil4LmICivguKvguKHguKfguIHguYHguIHguYrguJsKK+C4q+C4oeC4p+C4geC5geC4iOC4pwor4Lir4Lih4Lin4LiB4LiX4Lij4LiH4Lir4Lih4LmJ4Lit4LiV4Liy4LilCivguKvguKHguKfguIHguJnguLTguKPguKDguLHguKIKK+C4q+C4oeC4p+C4geC4q+C4ueC4geC4o+C4sOC4leC5iOC4suC4ogor4Lir4Lih4Lin4LiUCivguKvguKHguK0KK+C4q+C4oeC5iOC4rQor4Lir4Lih4LmJ4LitCivguKvguKHguK3guIEKK+C4q+C4oeC5ieC4reC5geC4geC4hwor4Lir4Lih4LmJ4Lit4LmB4LiB4LiH4LiE4LmI4Liy4LiHCivguKvguKHguYnguK3guYHguIHguIfguKXguLTguIcKK+C4q+C4oeC4reC4guC4p+C4seC4jQor4Lir4Lih4LmJ4Lit4LiC4LmJ4Liy4Lin4Lir4Lih4LmJ4Lit4LmB4LiB4LiH4Lil4Li04LiHCivguKvguKHguK3guITguKfguLLguKEKK+C4q+C4oeC4reC4hwor4Lir4Lih4LmI4Lit4LiHCivguKvguKHguK3guIfguYPguIgKK+C4q+C4oeC4reC4h+C4oeC4seC4pwor4Lir4Lih4Lit4LiH4Lir4Lih4Liy4LiHCivguKvguKHguK3guIrguYnguLLguIfguYDguKvguKLguLXguKLguJoKK+C4q+C4oeC4reC5gOC4kuC5iOC4sgor4Lir4Lih4Lit4LiU4Li5CivguKvguKHguK3guJXguLLguKUKK+C4q+C4oeC5ieC4reC4leC4suC4pQor4Lir4Lih4Lit4LiV4Liz4LmB4LiiCivguKvguKHguYnguK3guJfguLDguJnguJkKK+C4q+C4oeC4reC5hOC4l+C4ogor4Lir4Lih4Lit4LiZCivguKvguKHguYjguK3guJkKK+C4q+C4oeC4reC4meC4guC4p+C4suC4mQor4Lir4Lih4Lit4LiZ4LiC4LmJ4Liy4LiHCivguKvguKHguK3guJnguJfguK3guIcKK+C4q+C4oeC4reC4meC5ieC4reC4ogor4Lir4Lih4LmJ4Lit4LiZ4LmJ4LizCivguKvguKHguK3guJnguYnguLPguKHguLHguJkKK+C4q+C4oeC4reC4mgor4Lir4Lih4Lit4Lia4LiB4Lij4Liw4LmB4LiVCivguKvguKHguK3guJrguKPguLLguJrguITguLLguJrguYHguIHguYnguKcKK+C4q+C4oeC5ieC4reC5geC4m+C4peC4hwor4Lir4Lih4LmJ4Lit4LmB4Lib4Lil4LiH4LmE4LifCivguKvguKHguK3guJzguLUKK+C4q+C4oeC4reC4nuC4seC4lOC5guC4leC4meC4lAor4Lir4Lih4LmI4Lit4LihCivguKvguKHguYjguK3guKHguYDguIjguYnguLIKK+C4q+C4oeC5iOC4reC4oeC4ieC4seC4mQor4Lir4Lih4LmI4Lit4Lih4Lij4Liy4LiK4Lin4LiH4Lio4LmMCivguKvguKHguYjguK3guKHguKvguKXguKfguIcKK+C4q+C4oeC5iOC4reC4oeC4q+C5ieC4suC4oQor4Lir4Lih4Lit4LiiCivguKvguKHguK3guKXguLMKK+C4q+C4oeC5ieC4reC4q+C4meC4uQor4Lir4Lih4LmJ4Lit4Lir4LmJ4Lit4LihCivguKvguKHguLHguIEKK+C4q+C4oeC4seC4geC4q+C4oeC4oQor4Lir4Lih4Lix4LiUCivguKvguKHguLHguJkKK+C4q+C4oeC4seC5iOC4mQor4Lir4Lih4Lix4LmJ4LiZCivguKvguKHguLHguYjguJnguYTguKrguYkKK+C4q+C4oeC4seC4mgor4Lir4Lih4Lix4Lia4LmGCivguKvguKHguLIKK+C4q+C4oeC5iOC4sgor4Lir4Lih4LmJ4LiyCivguKvguKHguLLguIEKK+C4q+C4oeC4suC4geC5gOC4geC5h+C4mgor4Lir4Lih4Liy4LiB4LiC4LmI4Lin4LiHCivguKvguKHguLLguIHguYDguILguLXguKLguKcKK+C4q+C4oeC4suC4geC5geC4guC5ieC4hwor4Lir4Lih4Liy4LiB4LiE4Lix4LiZCivguKvguKHguLLguIHguJTguLTguJoKK+C4q+C4oeC4suC4geC5geC4lOC4hwor4Lir4Lih4Liy4LiB4LiX4Lix4LiZCivguKvguKHguLLguIHguJzguLLguIcKK+C4q+C4oeC4suC4geC4nOC4ueC5ieC4q+C4oeC4suC4geC5gOC4oeC4teC4ogor4Lir4Lih4Liy4LiB4Lid4Lij4Lix4LmI4LiHCivguKvguKHguLLguIHguKHguYjguKfguJkKK+C4q+C4oeC4suC4geC4oeC4suC4qAor4Lir4Lih4Liy4LiB4LmA4Lih4LmI4LiyCivguKvguKHguLLguIHguYDguKHguYjguLLguITguKfguLLguKIKK+C4q+C4oeC4suC4geC4ouC4seC4mgor4Lir4Lih4Liy4LiB4LmB4Lii4LiBCivguKvguKHguLLguIHguKPguLjguIEKK+C4q+C4oeC4suC4geC4peC4tOC4hwor4Lir4Lih4Liy4LiB4Liq4LiHCivguKvguKHguLLguIHguKvguJnguLLguKEKK+C4q+C4oeC4suC4geC4q+C4reC4oeC4hOC4p+C4suC4ogor4Lir4Lih4Liy4LiB4LmA4Lir4Lil4Li34Lit4LiHCivguKvguKHguLLguIHguK3guLXguYHguJvguLAKK+C4q+C4oeC4suC4geC4ruC4reC4qgor4Lir4Lih4Liy4LiC4Li14LmJ4LmE4Lih4LmI4Lih4Li14LmD4LiE4Lij4Lii4LiB4Lir4Liy4LiHCivguKvguKHguLLguIcKK+C4q+C4oeC4suC4h+C5g+C4iAor4Lir4Lih4Liy4LiH4LmA4Lih4Li04LiZCivguKvguKHguLLguIjguLTguYnguIfguIjguK3guIEKK+C4q+C4oeC4suC4lAor4Lir4Lih4Liy4LmD4LiZCivguKvguKHguLLguJvguYjguLIKK+C4q+C4oeC4suC4oeC4uOC5iOC4ogor4Lir4Lih4Liy4Lih4Li44LmJ4LiiCivguKvguKHguLLguYTguKHguYkKK+C4q+C4oeC4suC4ogor4Lir4Lih4LmJ4Liy4LiiCivguKvguKHguLLguKLguIHguLPguKvguJnguJTguIHguLLguKMKK+C4q+C4oeC4suC4ouC5gOC4geC4k+C4keC5jAor4Lir4Lih4Liy4Lii4LiC4Lix4LiHCivguKvguKHguLLguKLguITguYnguJkKK+C4q+C4oeC4suC4ouC4hOC4p+C4suC4oQor4Lir4Lih4Liy4Lii4LiI4Lix4LiaCivguKvguKHguLLguKLguIjguLPguITguLjguIEKK+C4q+C4oeC4suC4ouC5g+C4iAor4Lir4Lih4Liy4Lii4LiV4Lix4LinCivguKvguKHguLLguKLguJXguLIKK+C4q+C4oeC4suC4ouC4meC5ieC4s+C4muC5iOC4reC4q+C4meC5ieC4sgor4Lir4Lih4Liy4Lii4Lib4Lil4LmI4Lit4LiiCivguKvguKHguLLguKLguKHguLHguYjguJkKK+C4q+C4oeC4suC4ouC4oeC4seC5iOC4meC4m+C4seC5ieC4meC4oeC4t+C4rQor4Lir4Lih4Liy4Lii4Lii4LiyCivguKvguKHguLLguKLguYDguKPguLXguKLguIEKK+C4q+C4oeC4suC4ouC5gOC4peC4ggor4Lir4Lih4Liy4Lii4Lir4Lix4LinCivguKvguKHguLLguKLguYDguKvguJXguLgKK+C4q+C4oeC4suC4ouC4reC4suC4jeC4sgor4Lir4Lih4Liy4Lij4LmI4LiyCivguKvguKHguLLguKrguK3guIfguKPguLLguIcKK+C4q+C4oeC4suC4q+C4oeC4ueC5iAor4Lir4Lih4Liy4Lir4Lii4Lit4LiB4LmE4LiB4LmICivguKvguKHguLLguKvguKfguIfguIHguYnguLLguIcKK+C4q+C4oeC4suC4q+C4seC4p+C5gOC4meC5iOC4sgor4Lir4Lih4Liy4Lir4Liy4LiH4LiU4LmJ4Lin4LiZCivguKvguKHguLLguYDguKvguYjguLLguYPguJrguJXguK3guIfguYHguKvguYnguIcKK+C4q+C4oeC5iOC4swor4Lir4Lih4LmJ4LizCivguKvguKHguYnguLPguJXguLHguJoKK+C4q+C4oeC4tOC5iOC4mQor4Lir4Lih4Li04LmI4LiZ4Lib4Lij4Liw4Lih4Liy4LiXCivguKvguKHguLTguYjguJnguJ7guKPguLDguJrguKPguKHguYDguJTguIrguLLguJnguLjguKDguLLguJ4KK+C4q+C4oeC4tOC5iOC4meC5gOC4q+C4oeC5iAor4Lir4Lih4Li1CivguKvguKHguLXguYgKK+C4q+C4oeC4teC5gOC4q+C4oeC5h+C4mQor4Lir4Lih4Li24LiBCivguKvguKHguLfguJkKK+C4q+C4oeC4t+C5iOC4mQor4Lir4Lih4Li44LiUCivguKvguKHguLjguJkKK+C4q+C4oeC4uOC4meC5gOC4h+C4tOC4mQor4Lir4Lih4Li44LiZ4LmA4Lin4Li14Lii4LiZCivguKvguKHguLjguJoKK+C4q+C4oeC4uOC4muC4q+C4oeC4seC4mgor4Lir4Lih4Li44Lia4Lir4Lih4Li04LiaCivguKvguKHguLjguYjguKIKK+C4q+C4oeC4uOC4ouC4guC4suC4pwor4Lir4Lih4Li5CivguKvguKHguLnguYgKK+C4q+C4oeC4ueC5gOC4guC4suC4iOC4sOC4q+C4suC4oeC5gOC4reC4suC4hOC4suC4meC5gOC4guC5ieC4suC5hOC4m+C4quC4reC4lAor4Lir4Lih4Li54LmB4LiU4LiHCivguKvguKHguLnguJXguLHguYnguIcKK+C4q+C4oeC4ueC5gOC4l+C5guC4ngor4Lir4Lih4Li54LiZ4LmJ4LizCivguKvguKHguLnguYHguJnguKEKK+C4q+C4oeC4ueC5g+C4meC5gOC4peC5ieC4sgor4Lir4Lih4Li54LmD4LiZ4Lit4Lin4LiiCivguKvguKHguLnguJvguYjguLIKK+C4q+C4oeC4ueC5hOC4m+C5hOC4geC5iOC4oeC4sgor4Lir4Lih4Li54LmB4Lic4LmI4LiZCivguKvguKHguLnguKLguK0KK+C4q+C4oeC4ueC4quC4meC4suC4oQor4Lir4Lih4Li54Liq4Liy4Lih4LiK4Lix4LmJ4LiZCivguKvguKHguLnguKrguLUKK+C4q+C4oeC4ueC4q+C4ouC5h+C4reC4hwor4Lir4Lih4Li54Lir4Lij4Li04LmI4LiHCivguKvguKHguLnguKvguKPguLbguYjguIcKK+C4q+C4oeC4ueC4q+C4seC4mQor4Lir4Lih4Li54LmB4Liu4LihCivguKvguKItCivguKvguKLguIEKK+C4q+C4ouC4geC5hgor4Lir4Lii4LmI4LiHCivguKvguKLguYjguIfguYYKK+C4q+C4ouC4lAor4Lir4Lii4LiU4Lii4LmJ4Lit4LiiCivguKvguKLguKfguIEKK+C4q+C4ouC4p+C4mgor4Lir4Lii4Lin4Lia4LmGCivguKvguKLguK3guIEKK+C4q+C4ouC4reC4geC5gOC4ouC5ieC4sgor4Lir4Lii4LmH4Lit4LiB4Lir4Lii4LmH4Lit4LiiCivguKvguKLguK3guIHguYDguK3guLTguJkKK+C4q+C4ouC5h+C4reC4hwor4Lir4Lii4LmI4Lit4LiHCivguKvguKLguYjguK3guIfguYYKK+C4q+C4ouC5h+C4reC4h+C4geC4o+C4reC4lAor4Lir4Lii4LmH4Lit4LiH4LmB4Lir4Lii4LmH4LiHCivguKvguKLguK3guJQKK+C4q+C4ouC4reC4lOC4q+C4peC4uOC4oQor4Lir4Lii4Lit4LiZCivguKvguKLguYjguK3guJkKK+C4q+C4ouC5iOC4reC4meC5g+C4iAor4Lir4Lii4LmI4Lit4LiZ4Lit4Liy4Lij4Lih4LiT4LmMCivguKvguKLguYjguK3guKEKK+C4q+C4ouC5h+C4reC4oeC5geC4q+C4ouC5h+C4oQor4Lir4Lii4LmH4Lit4LiiCivguKvguKLguYjguK3guKIKK+C4q+C4ouC4seC4gQor4Lir4Lii4Lix4LiB4LmE4Lii4LmICivguKvguKLguLHguIHguKPguLHguYnguIcKK+C4q+C4ouC4seC4geC4qOC4gQor4Lir4Lii4Lix4LiB4LmA4Lir4Lii4LiyCivguKvguKLguLHguIcKK+C4q+C4ouC4seC5iOC4hwor4Lir4Lii4Lix4LmI4LiH4LiX4Lij4Liy4LiaCivguKvguKLguLHguYjguIfguKPguLnguYkKK+C4q+C4ouC4seC5iOC4h+C5gOC4quC4teC4ouC4hwor4Lir4Lii4Lix4LiH4Lir4Lii4Lix4LiHCivguKvguKLguLHguJQKK+C4q+C4ouC4seC4mQor4Lir4Lii4Lix4LiaCivguKvguKLguLHguJrguYYKK+C4q+C4ouC4seC5iOC4p+C5gOC4oeC4t+C4reC4hwor4Lir4Lii4LmI4LiyCivguKvguKLguLLguIHguYDguKLguLfguYjguK0KK+C4q+C4ouC4suC4geC5hOC4ouC5iAor4Lir4Lii4LmI4Liy4LiB4Lix4LiZCivguKvguKLguLLguJQKK+C4q+C4ouC4suC4lOC4meC5ieC4s+C4hOC5ieC4suC4hwor4Lir4Lii4Liy4LiU4LiZ4LmJ4Liz4Lif4LmJ4LiyCivguKvguKLguYjguLLguJnguKEKK+C4q+C4ouC4suC4mgor4Lir4Lii4Liy4Lia4LiE4Liy4LiiCivguKvguKLguLLguJrguIrguYnguLIKK+C4q+C4ouC4suC4muC4q+C4ouC4suC4oQor4Lir4Lii4Liy4LihCivguKvguKLguLLguKHguJnguYnguLPguKvguJnguYnguLIKK+C4q+C4ouC4suC4pwor4Lir4Lii4LmJ4Liy4LinCivguKvguKLguLPguYDguJsKK+C4q+C4ouC4s+C5gOC4q+C4ouC4reC4sAor4Lir4Lii4Liz4LmB4Lir4Lii4LiwCivguKvguKLguLTguIEKK+C4q+C4ouC4tOC4geC5geC4geC4oeC4q+C4ouC4reC4gQor4Lir4Lii4Li04LiB4Lir4Lii4LmH4Lit4LiHCivguKvguKLguLTguYjguIcKK+C4q+C4ouC4tOC4mgor4Lir4Lii4Li04Lia4Lic4Li04LiUCivguKvguKLguLTguJrguKLguIEKK+C4q+C4ouC4tOC4muC4ouC4t+C4oQor4Lir4Lii4Li04Lia4Lir4Lii4LmI4LiHCivguKvguKLguLTguKHguYYKK+C4q+C4ouC4tQor4Lir4Lii4Li14LmICivguKvguKLguLgKK+C4q+C4ouC4uOC4geC4q+C4ouC4tOC4gQor4Lir4Lii4Li44LiUCivguKvguKLguLjguJTguKvguKLguYjguK3guJkKK+C4q+C4ouC4uOC5iOC4mQor4Lir4Lii4Li44Lia4LmGCivguKvguKLguLjguKHguKvguKLguLTguKEKK+C4q+C4ouC4ueC4geC4ouC4sgor4Lir4LmC4Lii4LiU4LihCivguKvguKMKK+C4q+C4o+C4hOC4uOC4kwor4Lir4Lij4LiTCivguKvguKPguJTguLLguKUKK+C4q+C4o+C4lOC4suC4peC4geC4peC4teC4muC4l+C4reC4hwor4Lir4Lij4LiU4Liy4Lil4LmB4LiU4LiHCivguKvguKPguJTguLUKK+C4q+C4o+C4muC5hgor4Lir4Lij4Lij4LipLQor4Lir4Lij4Lij4Lip4LiyCivguKvguKPguK0KK+C4q+C4o+C4reC4gQor4Lir4Lij4LmH4Lit4Lih4LmB4Lir4Lij4LmH4LihCivguKvguKPguK3guKLguYYKK+C4q+C4o+C4sAor4Lir4Lij4Lix4Lia4LmGCivguKvguKPguLHguKrguKctCivguKvguKPguLHguKrguKfguKHguLnguKPguJTguLUKK+C4q+C4o+C4seC4quC4p+C4suC4h+C4hOC5jAor4Lir4Lij4LiyCivguKvguKPguLQKK+C4q+C4o+C4tOC4hOC4seC4meC4mOC5jAor4Lir4Lij4Li04LmI4LiHCivguKvguKPguLTguYjguIfguYYKK+C4q+C4o+C4tOC4iOC4seC4meC4l+C4meC5jAor4Lir4Lij4Li04LiT4LiwCivguKvguKPguLTguJUKK+C4q+C4o+C4tOC4leC4geC4tQor4Lir4Lij4Li04Lij4Lix4LiB4Lip4LmMCivguKvguKPguLTguKfguIfguKjguYwKK+C4q+C4o+C4teC5iAor4Lir4Lij4Li14LiUCivguKvguKPguLXguJXguIHguLUKK+C4q+C4o+C4t+C4rQor4Lir4Lij4Li44Lia4LmGCivguKvguKPguLjguJrguKPguLnguYgKK+C4q+C4o+C4uOC4muC4q+C4o+C4ueC5iAor4Lir4Lij4Li44LmI4LihCivguKvguKPguLkKK+C4q+C4o+C4ueC4q+C4o+C4sgor4Lir4Lik4LiX4LiiCivguKvguKTguJfguKLguYwKK+C4q+C4pOC4l+C4seC4ogor4Lir4Lik4LiX4Lix4LiiLQor4Lir4Lik4LiX4Lix4Lii4LiB4Lil4LihCivguKvguKTguJfguLHguKLguIHguLHguJvguJnguYwKK+C4q+C4pOC4l+C4seC4ouC4geC4seC4oeC4m+C5jAor4Lir4Lik4LiX4Lix4Lii4Lib4Lij4Li14Lii4LmMCivguKvguKTguJfguLHguKLguJ7guLHguJnguJjguJnguYwKK+C4q+C4pOC4qeC4juC5jAor4Lir4Lik4Lip4LiO4Li1CivguKvguKTguKvguKPguKPguKnguYwKK+C4q+C4pOC5guC4q+C4lAor4Lir4LilCivguKvguKXguIcKK+C4q+C4peC4h+C4geC4pQor4Lir4Lil4LiH4LiV4LiyCivguKvguKXguIfguKXguKEKK+C4q+C4peC4h+C4peC4t+C4oQor4Lir4Lil4LiH4Lir4Li54Lir4Lil4LiH4LiV4LiyCivguKvguKXguIfguYDguKvguKXguLfguK0KK+C4q+C4peC4h+C5g+C4q+C4pQor4Lir4Lil4LiUCivguKvguKXguJkKK+C4q+C4peC5iOC4mQor4Lir4Lil4LiaCivguKvguKXguJrguJXguLIKK+C4q+C4peC4muC4neC4suC4gQor4Lir4Lil4Lia4Lih4Li44LihCivguKvguKXguJrguKvguJnguYnguLIKK+C4q+C4peC4muC4q+C4meC5ieC4suC4q+C4peC4muC4leC4sgor4Lir4Lil4Lia4Lir4Lil4Lix4LiH4LiE4LiyCivguKvguKXguYjguKEKK+C4q+C4peC4p+C4hwor4Lir4Lil4Lin4LiH4LiI4Li14LiZCivguKvguKXguKfguKEKK+C4q+C4peC4p+C4oeC4leC4seC4pwor4Lir4Lil4LitCivguKvguKXguYjguK0KK+C4q+C4peC4reC4gQor4Lir4Lil4Lit4LiB4LmGCivguKvguKXguK3guIHguKXguKfguIcKK+C4q+C4peC4reC4geC4peC5iOC4rQor4Lir4Lil4Lit4LiB4Lir4Lil4Lit4LiZCivguKvguKXguK3guJQKK+C4q+C4peC4reC4lOC4peC4oQor4Lir4Lil4Lit4LiU4Lil4Lih4LiE4LitCivguKvguKXguK3guJTguKXguKHguJ3guK3guKIKK+C4q+C4peC4reC4lOC5gOC4peC4t+C4reC4lAor4Lir4Lil4Lit4LiU4Lit4Liy4Lir4Liy4LijCivguKvguKXguK3guJkKK+C4q+C4peC5h+C4reC4mQor4Lir4Lil4LmH4Lit4LiZ4LmGCivguKvguKXguYjguK3guJkKK+C4q+C4peC4reC4oQor4Lir4Lil4Lit4Lih4LiV4Lix4LinCivguKvguKXguK3guKHguKXguLDguKXguLLguKIKK+C4q+C4peC4reC4oeC5gOC4q+C4peC4pwor4Lir4Lil4LmI4Lit4Lil4Li34LmI4LiZCivguKvguKXguYjguK3guYDguKXguLXguYnguKLguIcKK+C4q+C4peC5iOC4reC5gOC4q+C4peC4sgor4Lir4Lil4LiwCivguKvguKXguLDguKvguKXguKfguKEKK+C4q+C4peC4seC4gQor4Lir4Lil4Lix4LiB4LiB4Liy4LijCivguKvguKXguLHguIHguYDguIHguJPguJHguYwKK+C4q+C4peC4seC4geC5geC4iOC4pwor4Lir4Lil4Lix4LiB4LiK4Lix4LiiCivguKvguKXguLHguIHguJDguLLguJkKK+C4q+C4peC4seC4geC4leC4rQor4Lir4Lil4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguKvguKXguLHguIHguJvguKPguLDguIHguLHguJkKK+C4q+C4peC4seC4geC4nuC4ouC4suC4mQor4Lir4Lil4Lix4LiB4Lil4Lit4LiiCivguKvguKXguLHguIHguKrguLnguJXguKMKK+C4q+C4peC4seC4geC5geC4q+C4peC5iOC4hwor4Lir4Lil4Lix4LiB4LmB4Lir4Lil4LihCivguKvguKXguLHguIcKK+C4q+C4peC4seC5iOC4hwor4Lir4Lil4Lix4LiH4LmA4LiC4Li14Lii4LinCivguKvguKXguLHguIfguITguLIKK+C4q+C4peC4seC4h+C4hOC4suC5gOC4o+C4t+C4reC4mQor4Lir4Lil4Lix4LiH4LiI4Liy4LiBCivguKvguKXguLHguIfguInguLLguIEKK+C4q+C4peC4seC4h+C5gOC4leC5iOC4sgor4Lir4Lil4Lix4LiH4Lii4Liy4LinCivguKvguKXguLHguYjguIfguYTguKvguKUKK+C4q+C4peC4seC4lOC5hgor4Lir4Lil4Lix4LmI4LiZCivguKvguKXguLHguJoKK+C4q+C4peC4seC4muC4leC4sgor4Lir4Lil4Lix4Lia4LiZ4LiBCivguKvguKXguLHguJrguYPguJkKK+C4q+C4peC4seC4pwor4Lir4Lil4LiyCivguKvguKXguYnguLIKK+C4q+C4peC4suC4gQor4Lir4Lil4Liy4LiB4LmD4LiICivguKvguKXguLLguIHguKvguKXguLLguKIKK+C4q+C4peC4suC4lwor4Lir4Lil4Liy4LiZCivguKvguKXguLLguJoKK+C4q+C4peC4suC4muC4iOC4swor4Lir4Lil4Liy4LihCivguKvguKXguLLguKIKK+C4q+C4peC4suC4ouC5gOC4leC4tOC4mgor4Lir4Lil4Liy4Lii4Lir4Lil4Liy4LiBCivguKvguKXguLLguKLguYHguKvguKXguYgKK+C4q+C4peC4suC4pwor4Lir4Lil4Liy4Lin4LmA4Lir4Lil4LmH4LiBCivguKvguKXguLLguKvguKUKK+C4q+C4peC4tOC4gQor4Lir4Lil4Li04LmI4LiHCivguKvguKXguLTguJcKK+C4q+C4peC4tOC4mQor4Lir4Lil4Li04LihCivguKvguKXguLTguKcKK+C4q+C4peC4tOC5iOC4pwor4Lir4Lil4Li04LmI4Lin4LiV4LiyCivguKvguKXguLUKK+C4q+C4peC4teC4gQor4Lir4Lil4Li14LmC4LiBCivguKvguKXguLXguJoKK+C4q+C4peC4teC4ruC4t+C5ieC4rQor4Lir4Lil4Li34LiaCivguKvguKXguLjguIHguKvguKXguLTguIEKK+C4q+C4peC4uOC4lAor4Lir4Lil4Li44LiU4Lib4Liy4LiBCivguKvguKXguLjguJTguJ7guYnguJkKK+C4q+C4peC4uOC4lOC4oeC4t+C4rQor4Lir4Lil4Li44LiU4Lil4Lit4LiiCivguKvguKXguLjguJTguKXguLjguYjguKIKK+C4q+C4peC4uOC4meC5hgor4Lir4Lil4Li44LiaCivguKvguKXguLjguJrguKXguLnguYgKK+C4q+C4peC4uOC4oQor4Lir4Lil4Li44Lih4LmC4LiI4LiZCivguKvguKXguLjguKHguJ7guKPguLLguIcKK+C4q+C4peC4uOC4oeC4nuC4rQor4Lir4Lil4Li44Lih4Lie4Li1CivguKvguKXguLjguKHguKvguKXguJrguKDguLHguKIKK+C4q+C4peC4uOC4oeC4reC4suC4geC4suC4qAor4Lir4Lil4Li54LmICivguKvguKXguLnguYjguKvguKXguLXguYgKK+C4q+C4p+C4hwor4Lir4LmI4Lin4LiHCivguKvguYnguKfguIcKK+C4q+C4p+C4h+C4geC5ieC4suC4hwor4Lir4LmI4Lin4LiH4LmD4LiiCivguKvguKfguIfguKvguYnguLLguKEKK+C4q+C4p+C4h+C5geC4q+C4mQor4Lir4Lin4LiUCivguKvguKfguJkKK+C4q+C5ieC4p+C4mQor4Lir4LmJ4Lin4LiZ4LmGCivguKvguKfguJnguITguLPguJnguLbguIcKK+C4q+C4p+C4ogor4Lir4LmJ4Lin4LiiCivguKvguKfguK0KK+C4q+C4p+C4reC4lAor4Lir4Lin4LmH4Lit4Lii4LmGCivguKvguKfguLAKK+C4q+C4p+C4seC4hwor4Lir4Lin4Lix4LiUCivguKvguKfguLHguJTguYYKK+C4q+C4p+C4seC5iOC4mQor4Lir4Lin4Lix4LiZ4Lii4Li04Lir4Lin4LiyCivguKvguKfguLHguYjguJnguKvguKfguLLguJQKK+C4q+C4p+C4seC5iOC4meC5hOC4q+C4pwor4Lir4Lin4Lix4LinCivguKvguKfguLHguKfguKPguYjguK0KK+C4q+C4p+C4seC4p+C5gOC4o+C4suC4sAor4Lir4Lin4LiyCivguKvguKfguYjguLIKK+C4q+C4p+C5ieC4sgor4Lir4Lin4Liy4LiBCivguKvguKfguYjguLLguIcKK+C4q+C4p+C4suC4lAor4Lir4Lin4Liy4LiU4Lij4Liw4LmB4Lin4LiHCivguKvguKfguLLguJTguYDguKrguLXguKLguKcKK+C4q+C4p+C4suC4lOC4q+C4p+C4seC5iOC4mQor4Lir4Lin4Liy4LiU4LmE4Lir4LinCivguKvguKfguLLguJkKK+C4q+C4p+C5iOC4suC4mQor4Lir4Lin4Liy4LiZ4LiE4Lit4LmB4Lij4LmJ4LiHCivguKvguKfguYjguLLguJnguKXguYnguK3guKEKK+C4q+C4p+C4suC4oQor4Lir4Lin4Liy4LiiCivguKvguKfguLLguKLguJTguLTguJkKK+C4q+C4p+C4suC4ouC4leC4sOC4oeC4reC4ogor4Lir4Lin4LizCivguKvguKfguLTguJQKK+C4q+C4p+C4tOC4pwor4Lir4Lin4Li1CivguKvguKfguLXguYgKK+C4q+C4p+C4teC4lAor4Lir4Lin4Li34LitCivguKvguKfguLjguJTguKvguKfguLTguJQKK+C4q+C4p+C4uOC4oQor4Lir4Lin4Li54LiUCivguKvguKrguJktCivguKvguK0KK+C4q+C5iOC4rQor4Lir4LmJ4LitCivguKvguK3guIEKK+C4q+C4reC4geC4guC5ieC4suC4h+C5geC4hOC4o+C5iAor4Lir4Lit4LiB4LiL4Lix4LiUCivguKvguK3guIHguLLguKPguITguYnguLIKK+C4q+C4reC4hOC4reC4ogor4Lir4Lit4LiE4LizCivguKvguK3guIcKK+C4q+C5ieC4reC4hwor4Lir4LmJ4Lit4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguKvguYnguK3guIfguIrguLjguJQKK+C4q+C5ieC4reC4h+C5geC4luC4pwor4Lir4LmJ4Lit4LiH4LiZ4LmJ4LizCivguKvguYnguK3guIfguKrguKHguLjguJQKK+C4q+C4reC4iOC4lOC4q+C4oeC4suC4ouC5gOC4q+C4leC4uAor4Lir4LmI4Lit4LiV4Lix4LinCivguKvguK3guYTguJXguKMKK+C4q+C4reC4mQor4Lir4LmI4Lit4LiZCivguKvguK3guJoKK+C4q+C4reC4muC4q+C4tOC5ieC4pwor4Lir4Lit4Lia4Lir4Li34LiUCivguKvguK3guJrguLHguIfguITguLHguJrguIHguLLguKMKK+C4q+C4reC4m+C4o+C4sOC4iuC4uOC4oQor4Lir4Lit4Lie4Lix4LiBCivguKvguK3guKEKK+C4q+C5ieC4reC4oQor4Lir4Lit4Lih4LiB4Lij4Liy4LiiCivguKvguK3guKHguILguLLguKcKK+C4q+C4reC4oeC4iOC4seC4meC4l+C4o+C5jAor4Lir4Lit4Lih4LmB4LiU4LiHCivguKvguK3guKHguYDguJXguLXguKLguKEKK+C4q+C4reC4oeC4m+C5ieC4reC4oQor4Lir4Lit4Lih4LmB4Lib4LmJ4LiZCivguKvguYnguK3guKHguYDguKHguLfguK3guIcKK+C4q+C4reC4oeC4ouC4seC4mgor4Lir4LmJ4Lit4Lih4Lil4LmJ4Lit4LihCivguKvguK3guKHguKvguKfguJkKK+C4q+C4reC4ogor4Lir4LmJ4Lit4LiiCivguKvguK3guKLguYLguILguYjguIcKK+C4q+C5ieC4reC4ouC4l+C5ieC4suC4ogor4Lir4Lit4Lii4Lib4Liy4LiB4LmA4Lib4LmH4LiUCivguKvguK3guKLguYHguJvguJTguYDguIHguKXguYfguJQKK+C4q+C4reC4ouC5gOC4oeC5iOC4mQor4Lir4LmJ4Lit4Lii4LmC4Lir4LiZCivguKvguK3guKrguKHguLjguJQKK+C4q+C5iOC4reC4q+C4oeC4gQor4Lir4LmI4Lit4LmA4Lir4Li14LmI4Lii4LinCivguKvguYjguK3guYHguKvguYgKK+C4q+C5ieC4reC5geC4q+C5iQor4Lir4LiwCivguKvguLDguKLguLUKK+C4q+C4sOC5geC4o+C4gQor4Lir4Liw4Lir4Liy4LiiCivguKvguLDguKvguYnguLLguKIKK+C4q+C4sOC5geC4q+C5ieC4mQor4Lir4Lix4LiBCivguKvguLHguIHguIHguKXguJrguKXguJrguKvguJnguLXguYkKK+C4q+C4seC4geC4hOC4rQor4Lir4Lix4LiB4LmD4LiICivguKvguLHguIHguJTguYnguLLguKHguJ7guKPguYnguLLguJTguYnguKfguKLguYDguILguYjguLIKK+C4q+C4seC4geC4l+C4reC4h+C4guC4p+C4suC4hwor4Lir4Lix4LiB4Lia4Lix4LiN4LiK4Li1CivguKvguLHguIHguKHguLjguIEKK+C4q+C4seC4geC4o+C4suC4hOC4sgor4Lir4Lix4LiB4Lij4LmJ4Liy4LiHCivguKvguLHguIHguYHguKPguIcKK+C4q+C4seC4geC4peC5ieC4suC4hwor4Lir4Lix4LiB4Lil4LizCivguKvguLHguIHguKvguJnguYnguLIKK+C4q+C4seC4geC4q+C4peC4seC4hwor4Lir4Lix4LiB4Lir4Liy4LiNCivguKvguLHguIHguKvguYnguLLguKEKK+C4q+C4seC4geC5gOC4qwor4Lir4Lix4LiB4LmC4Lir4LihCivguKvguLHguIHguK3guIEKK+C4q+C4seC4geC4reC4geC4q+C4seC4geC5g+C4iAor4Lir4Lix4LiH4LiqLQor4Lir4Lix4LiI4LiN4LmMCivguKvguLHguIjguI3guLUKK+C4q+C4seC4igor4Lir4Lix4LiP4LiQ4LiwCivguKvguLHguJQKK+C4q+C4seC4lOC5gOC4ouC4reC4o+C4oeC4seC4mQor4Lir4Lix4LiVCivguKvguLHguJXguJYtCivguKvguLHguJXguJbguYwKK+C4q+C4seC4leC4luC4geC4o+C4o+C4oQor4Lir4Lix4LiV4LiW4LiB4Liy4LijCivguKvguLHguJXguJbguIHguLTguIgKK+C4q+C4seC4leC4luC4muC4suC4qgor4Lir4Lix4LiV4LiW4Lie4Lix4LiZ4LiY4LmMCivguKvguLHguJXguJbguKjguLTguKXguJvguYwKK+C4q+C4seC4leC4luC4qOC4tuC4geC4qeC4sgor4Lir4Lix4LiV4LiW4Liy4LiI4Liy4Lij4Lii4LmMCivguKvguLHguJXguJbguLLguJnguLbguIEKK+C4q+C4seC4leC4luC4suC4oOC4o+C4k+C5jAor4Lir4Lix4LiV4LiW4Liy4LmC4Lij4Lir4LiwCivguKvguLHguJXguJbguLLguKXguLHguIfguIHguLLguKMKK+C4q+C4seC4leC4luC4tOC4meC4tQor4Lir4Lix4LiV4LiW4Li1CivguKvguLHguJkKK+C4q+C4seC5iOC4mQor4Lir4Lix4LmJ4LiZCivguKvguLHguJnguJXguKPguLIKK+C4q+C4seC4meC4leC4sgor4Lir4Lix4LiZ4Lij4Li14Lir4Lix4LiZ4LiC4Lin4Liy4LiHCivguKvguLHguJnguKvguJnguYnguLLguYDguILguYnguLLguKvguLLguIHguLHguJkKK+C4q+C4seC4meC4q+C4peC4seC4h+C5g+C4q+C5ieC4geC4seC4mQor4Lir4Lix4LiZ4LmA4LirCivguKvguLHguYjguJnguYHguKvguKXguIEKK+C4q+C4seC4meC4reC4suC4geC4suC4qAor4Lir4Lix4LiaCivguKvguLHguJrguYDguJzguKIKK+C4q+C4seC4oeC4oeC4teC4ouC4sAor4Lir4Lix4LiiCivguKvguLHguKcKK+C4q+C4seC4p+C4geC4o+C4sOC5gOC4lOC5h+C4mQor4Lir4Lix4Lin4LiB4Lij4Liw4LmE4LiU4LmE4Lih4LmI4LmB4Lir4LmJ4LiHCivguKvguLHguKfguIHguKPguLDguKrguLjguJkKK+C4q+C4seC4p+C4geC5iuC4reC4gQor4Lir4Lix4Lin4LiB4Liw4LiX4Li0CivguKvguLHguKfguIHguYjguLLguKLguJfguYnguLLguKLguYDguIHguKIKK+C4q+C4seC4p+C4geC4uOC4jeC5geC4iAor4Lir4Lix4Lin4LmA4LiB4LmI4LiyCivguKvguLHguKfguYHguIHguYnguKfguKvguLHguKfguYHguKvguKfguJkKK+C4q+C4seC4p+C4guC5guC4oeC4ogor4Lir4Lix4Lin4LiC4Lin4Liy4LiZCivguKvguLHguKfguILguYnguK0KK+C4q+C4seC4p+C4guC4seC5ieC4pwor4Lir4Lix4Lin4LiC4Liy4LiUCivguKvguLHguKfguILguLXguYnguYHguJXguYkKK+C4q+C4seC4p+C4guC4teC5ieC4q+C4oeC4sgor4Lir4Lix4Lin4LmA4LiC4LmJ4LiyCivguKvguLHguKfguYHguILguYfguIcKK+C4q+C4seC4p+C5guC4guC4mQor4Lir4Lix4Lin4LiE4Lin4LmI4LizCivguKvguLHguKfguITguLDguYHguJnguJkKK+C4q+C4seC4p+C4hOC5iOC4swor4Lir4Lix4Lin4LiE4Li04LiUCivguKvguLHguKfguYPguITguKPguYgKK+C4q+C4seC4p+C4h+C4reC4mQor4Lir4Lix4Lin4LiH4Liy4LiZCivguKvguLHguKfguYDguIfguLTguJkKK+C4q+C4seC4p+C5gOC4h+C4t+C5iOC4reC4mQor4Lir4Lix4Lin4LmC4LiI4LiBCivguKvguLHguKfguYPguIgKK+C4q+C4seC4p+C4iuC4meC4geC4s+C5geC4nuC4hwor4Lir4Lix4Lin4LiK4LiZ4Lid4LiyCivguKvguLHguKfguIvguLjguIHguKvguLHguKfguIvguLjguJkKK+C4q+C4seC4p+C4i+C4uOC4mQor4Lir4Lix4Lin4LiU4LmJ4Lin4LiZCivguKvguLHguKfguJTguLLguKfguKvguLHguKfguYDguJTguLfguK3guJkKK+C4q+C4seC4p+C4lOC4t+C5ieC4rQor4Lir4Lix4Lin4LmA4LiU4LmH4LiU4LiV4Li14LiZ4LiC4Liy4LiUCivguKvguLHguKfguYDguJTguLXguKLguKfguIHguKPguLDguYDguJfguLXguKLguKHguKXguLXguJoKK+C4q+C4seC4p+C4leC5iOC4rQor4Lir4Lix4Lin4LiV4Liw4LiB4Lix4LmI4LinCivguKvguLHguKfguJXguLDguITguLLguIEKK+C4q+C4seC4p+C4leC4sOC5guC4q+C4h+C4gQor4Lir4Lix4Lin4LmA4LiV4LmI4LiyCivguKvguLHguKfguYDguJXguLLguYTguJ8KK+C4q+C4seC4p+C4luC4reC4gQor4Lir4Lix4Lin4LmA4LiW4Li04LiBCivguKvguLHguKfguJfguLUKK+C4q+C4seC4p+C5gOC4l+C4teC4ouC4mQor4Lir4Lix4Lin4LmA4LiX4Li14Lii4LihCivguKvguLHguKfguJnguIHguIHguKPguLDguIjguK3guIEKK+C4q+C4seC4p+C4meC4oQor4Lir4Lix4Lin4LiZ4Lit4LiBCivguKvguLHguKfguJnguK3guJkKK+C4q+C4seC4p+C4meC4reC4meC4m+C4peC4suC4ouC4leC4teC4mQor4Lir4Lix4Lin4LiZ4LmJ4LizCivguKvguLHguKfguJnguYnguLPguILguLbguYnguJkKK+C4q+C4seC4p+C4meC5ieC4s+C4peC4hwor4Lir4Lix4Lin4LmA4LiZ4Li34LmJ4LitCivguKvguLHguKfguYDguJnguLfguYnguK3guJfguKPguLLguKIKK+C4q+C4seC4p+C4muC4seC4pwor4Lir4Lix4Lin4LmA4Lia4Li14LmJ4LiiCivguKvguLHguKfguYLguJrguKPguLLguJMKK+C4q+C4seC4p+C4m+C4peC4p+C4gQor4Lir4Lix4Lin4Lib4Lil4Li1CivguKvguLHguKfguJvguLHguIHguKvguLHguKfguJvguLMKK+C4q+C4seC4p+C4m+C4seC5iOC4mQor4Lir4Lix4Lin4Lib4LmI4LiyCivguKvguLHguKfguJvguLLguIEKK+C4q+C4seC4p+C4m+C4tQor4Lir4Lix4Lin4Lie4Lix4LiZCivguKvguLHguKfguJ7guLjguIfguKvguLHguKfguKHguLHguJkKK+C4q+C4seC4p+C4n+C4t+C4meC4q+C4seC4p+C5hOC4nwor4Lir4Lix4Lin4Lih4Lix4LiH4LiB4Li44LiX4LmJ4Liy4Lii4Lih4Lix4LiH4LiB4LijCivguKvguLHguKfguKHguLHguJkKK+C4q+C4seC4p+C5gOC4oeC5h+C4lAor4Lir4Lix4Lin4LmA4Lih4Li34Lit4LiHCivguKvguLHguKfguYHguKHguYjguJXguLXguJkKK+C4q+C4seC4p+C5geC4oeC5iOC5gOC4l+C5ieC4sgor4Lir4Lix4Lin4LmB4Lih4LmI4Lih4Li34LitCivguKvguLHguKfguYHguKHguKXguIfguKfguLHguJkKK+C4q+C4seC4p+C5hOC4oeC5iQor4Lir4Lix4Lin4LmE4Lih4LmI4Lin4Liy4LiH4Lir4Liy4LiH4LmE4Lih4LmI4LmA4Lin4LmJ4LiZCivguKvguLHguKfguKPguK0KK+C4q+C4seC4p+C4o+C5iOC4rQor4Lir4Lix4Lin4Lij4LmJ4Lit4Lii4Lij4Li5CivguKvguLHguKfguKPguLDguYHguKvguIcKK+C4q+C4seC4p+C4o+C4seC4geC4q+C4seC4p+C5g+C4hOC4o+C5iAor4Lir4Lix4Lin4Lij4Lix4LmJ4LiZCivguKvguLHguKfguKPguLLguJnguYnguLMKK+C4q+C4seC4p+C4o+C4uOC4meC5geC4o+C4hwor4Lir4Lix4Lin4LmA4Lij4Liy4LiwCivguKvguLHguKfguYDguKPguLXguYjguKLguKfguKvguLHguKfguYHguKPguIcKK+C4q+C4seC4p+C5gOC4o+C4t+C5iOC4reC4hwor4Lir4Lix4Lin4LmA4Lij4Li34Lit4LmD4Lir4LiN4LmICivguKvguLHguKfguYHguKPguIcKK+C4q+C4seC4p+C5geC4o+C5ieC4hwor4Lir4Lix4Lin4Lil4LihCivguKvguLHguKfguKXguYnguLLguJkKK+C4q+C4seC4p+C4peC4tOC4hwor4Lir4Lix4Lin4LmA4Lil4Li14LmJ4Lii4LinCivguKvguLHguKfguYDguKXguLXguYnguKLguKfguKvguLHguKfguJXguYjguK0KK+C4q+C4seC4p+C5guC4peC5ieC4mQor4Lir4Lix4Lin4Lin4LmI4Liy4LinCivguKvguLHguKfguKrguLPguYDguKDguLIKK+C4q+C4seC4p+C4quC4ueC4hwor4Lir4Lix4Lin4LmA4Liq4Li14LiiCivguKvguLHguKfguYTguKrguYkKK+C4q+C4seC4p+C4q+C4geC4geC5ieC4meC4guC4p+C4tOC4lAor4Lir4Lix4Lin4Lir4LiH4Lit4LiBCivguKvguLHguKfguKvguJQKK+C4q+C4seC4p+C4q+C4meC5ieC4sgor4Lir4Lix4Lin4Lir4LiZ4LmI4Liy4LinCivguKvguLHguKfguKvguKHguK0KK+C4q+C4seC4p+C4q+C4oeC4t+C5iOC4mQor4Lir4Lix4Lin4Lir4Lih4Li44LiZCivguKvguLHguKfguKvguKHguLkKK+C4q+C4seC4p+C4q+C4peC4seC4geC4q+C4seC4p+C4leC4rQor4Lir4Lix4Lin4Lir4Liy4LiUCivguKvguLHguKfguKvguLLguKLguJXguLDguJ7guLLguKLguILguLLguJQKK+C4q+C4seC4p+C5gOC4q+C5h+C4lAor4Lir4Lix4Lin4LmB4Lir4Lil4LihCivguKvguLHguKfguYHguKvguKfguJkKK+C4q+C4seC4p+C5g+C4q+C4oeC5iAor4Lir4Lix4Lin4LmE4Lir4Lil4LmICivguKvguLHguKfguK3guIEKK+C4q+C4seC4p+C4reC4reC4gQor4Lir4Lix4Lin4Lit4LmI4Lit4LiZCivguKvguLHguKoKK+C4q+C4seC4quC4lOC4tOC4mQor4Lir4Lix4Liq4LiU4Li1CivguKvguLHguKrguJUKK+C4q+C4seC4quC4leC5jAor4Lir4Lix4Liq4LiV4LiwCivguKvguLIKK+C4q+C5iOC4sgor4Lir4LmJ4LiyCivguKvguLLguIEKK+C4q+C4suC4geC4p+C5iOC4sgor4Lir4Liy4LiB4Li04LiZCivguKvguYjguLLguIHguLTguJkKK+C4q+C4suC4hOC4p+C4suC4oQor4Lir4Liy4LiE4LmI4Liy4Lih4Li04LmE4LiU4LmJCivguKvguLLguIcKK+C4q+C5iOC4suC4hwor4Lir4LmJ4Liy4LiHCivguKvguLLguIfguIHguKPguLDguYDguJrguJkKK+C4q+C4suC4h+C4geC4o+C4sOC4o+C4reC4gQor4Lir4Liy4LiH4LiB4Lij4Liw4Lir4Lih4Lin4LiUCivguKvguLLguIfguIHguKPguLLguKIKK+C4q+C4suC4h+C4geC4sOC4peC4p+C4ogor4Lir4Liy4LiH4LiB4Liw4Lil4Lin4Lii4LmE4LiB4LmICivguKvguLLguIfguIHguLHguIfguKvguLHguJkKK+C4q+C4suC4h+C4geC4tOC5iOC4pwor4Lir4Liy4LiH4LmB4LiB4Lil4LiwCivguKvguLLguIfguYTguIHguYgKK+C4q+C4suC4h+C4guC4oeC4p+C4lAor4Lir4Liy4LiH4LiC4Lit4LiUCivguKvguLLguIfguILguYnguLLguKcKK+C4q+C4suC4h+C5geC4guC5h+C4hwor4Lir4Liy4LiH4LiE4LmJ4LitCivguKvguLLguIfguYDguITguKPguLfguYjguK3guIcKK+C4q+C4suC4h+C4iOC4o+C4sOC5gOC4guC5iQor4Lir4Liy4LiH4LiI4Li04LmJ4LiH4LmA4Lir4Lil4LiZCivguKvguLLguIfguIrguYnguLLguIcKK+C4q+C4suC4h+C5gOC4leC5iOC4sgor4Lir4Liy4LiH4LmB4LiW4LinCivguKvguLLguIfguJnguIHguIHguLDguKXguLTguIcKK+C4q+C4suC4h+C4meC4geC4ouC4ueC4hwor4Lir4Liy4LiH4LiZ4LiB4Lii4Li54LiH4Lid4Lij4Lix4LmI4LiHCivguKvguLLguIfguJnguLLguIQKK+C4q+C4suC4h+C4m+C4peC4sgor4Lir4Liy4LiH4LmA4Lib4Li14LiiCivguKvguLLguIfguYHguJ7guJkKK+C4q+C4suC4h+C5geC4oeC4h+C4m+C5iOC4reC4hwor4Lir4Liy4LiH4Lii4Liy4LihCivguKvguLLguIfguKLguLLguKcKK+C4q+C4suC4h+C5gOC4peC4ggor4Lir4Liy4LiH4Lin4LmI4Liy4LinCivguKvguLLguIfguKrguLTguIfguKvguYwKK+C4q+C4suC4h+C5gOC4quC4teC4ouC4hwor4Lir4Liy4LiH4LmA4Liq4Li34LitCivguKvguLLguIfguKvguIfguKrguYwKK+C4q+C4suC4h+C4q+C4meC4uQor4Lir4LmJ4Liy4LiH4Lir4Li44LmJ4LiZ4Liq4LmI4Lin4LiZCivguKvguYnguLLguIfguKvguLjguYnguJnguKrguYjguKfguJnguIjguLPguIHguLHguJQKK+C4q+C5ieC4suC4h+C4q+C4uOC5ieC4meC4quC5iOC4p+C4meC4quC4suC4oeC4seC4jQor4Lir4LmI4Liy4LiH4LmA4LirCivguKvguYjguLLguIfguYDguKvguLTguJkKK+C4q+C4suC4h+C5hOC4q+C4pQor4Lir4Liy4LiH4LmE4Lir4Lil4LmB4LiU4LiHCivguKvguLLguIfguYTguKvguKXguYDguJzguLfguK3guIEKK+C4q+C4suC5gOC4h+C4tOC4mQor4Lir4Liy4LmA4LiK4LmJ4Liy4LiB4Li04LiZ4LiE4LmI4LizCivguKvguLLguI0KK+C4q+C4suC4lAor4Lir4Liy4LiU4LiBCivguKvguLLguJXguIEKK+C4q+C4suC4leC4seC4p+C4iOC4seC4muC4ouC4suC4gQor4Lir4LmJ4Liy4LmB4LiV4LmJ4LihCivguKvguLLguJkKK+C4q+C5iOC4suC4mQor4Lir4Liy4LiaCivguKvguLLguJrguKHguLTguYTguJTguYkKK+C4q+C4suC4muC5gOC4o+C5iAor4Lir4Liy4Lia4Lir4Lil4Lin4LiHCivguKvguLLguKEKK+C4q+C5iOC4suC4oQor4Lir4LmJ4Liy4LihCivguKvguYnguLLguKHguI3guLLguJXguLQKK+C4q+C5ieC4suC4oeC4l+C4seC4ngor4Lir4LmJ4Liy4Lih4Lib4Lij4Liy4LihCivguKvguYnguLLguKHguYDguJvguKXguLXguYjguKLguJnguKHguLfguK0KK+C4q+C5ieC4suC4oeC4nuC4o+C4sOC5geC4geC5iOC4meC4iOC4seC4meC4l+C4meC5jAor4Lir4Liy4Lih4Lij4Lit4LiBCivguKvguLLguKHguKPguLjguYjguIfguKvguLLguKHguITguYjguLMKK+C4q+C5ieC4suC4oeC4peC5ieC4rQor4Lir4LmJ4Liy4Lih4LmA4Lil4Li34Lit4LiUCivguKvguLLguKHguYHguKXguYjguJkKK+C4q+C5ieC4suC4oeC4quC4oeC4uOC4l+C4owor4Lir4Liy4Lih4Li04LmE4LiU4LmJCivguKvguLLguYTguKHguYgKK+C4q+C4suC5hOC4oeC5iOC4geC5hwor4Lir4Liy4LiiCivguKvguLLguKLguIHguLHguJkKK+C4q+C4suC4ouC4guC4suC4lAor4Lir4Liy4Lii4LmA4LiC4LmJ4Liy4LiB4Lil4Li14Lia4LmA4Lih4LiGCivguKvguLLguKLguYPguIgKK+C4q+C4suC4ouC5g+C4iOC5hOC4oeC5iOC4l+C4seC5iOC4p+C4l+C5ieC4reC4hwor4Lir4Liy4Lii4LiV4Lix4LinCivguKvguLLguKLguJnguLAKK+C4q+C4suC4ouC4q+C4geC4leC4geC4q+C4peC5iOC4mQor4Lir4Liy4Lii4Lir4LiZ4LmJ4LiyCivguKvguLLguKLguKvguYjguKfguIcKK+C4q+C4suC4ouC4q+C4seC4pwor4Lir4Liy4LijCivguKvguLLguKPguKPguYjguKfguKHguKHguLLguIEKK+C4q+C4suC4o+C4tAor4Lir4Liy4Lij4Li04LiZCivguKvguLLguKPguLUKK+C4q+C4suC4o+C4t+C4rQor4Lir4Liy4LmA4Lij4Li34LmI4Lit4LiHCivguKvguYjguLLguKXguIcKK+C4q+C4suC4peC4tOC4lwor4Lir4Liy4LmA4Lil4Li34Lit4LiU4LiB4Lix4Lia4Lib4Li5CivguKvguLLguKcKK+C4q+C5ieC4suC4pwor4Lir4Liy4Lin4LiZ4Lit4LiZCivguKvguYnguLLguKfguKvguLLguI0KK+C4q+C4suC5gOC4qOC4qeC4q+C4suC5gOC4peC4ogor4Lir4Liy4LiqCivguKvguLLguKrguIEKK+C4q+C4suC4quC4ouC4sAor4Lir4Liy4Liq4Li54LmICivguKvguLLguYDguKrguLXguKLguIcKK+C4q+C4suC4q+C5iOC4p+C4h+C4oeC4suC4hOC4peC5ieC4reC4h+C4hOC4rQor4Lir4Liy4LmA4Lir4LiV4Li4CivguKvguLMKK+C4q+C5ieC4swor4Lir4LmJ4Liz4Lir4Lix4LiBCivguKvguYnguLPguKvguLHguYjguJkKK+C4q+C4tOC5ieC4hwor4Lir4Li04LiH4LiE4Li4CivguKvguLTguIfguKrguLIKK+C4q+C4tOC4h+C4q+C5ieC4reC4ogor4Lir4Li04LmI4LiH4Lir4LmJ4Lit4LiiCivguKvguLTguYjguIfguKvguLLguKIKK+C4q+C4tOC4lAor4Lir4Li04LiVCivguKvguLTguJUtCivguKvguLTguJXguIHguKMKK+C4q+C4tOC4leC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lir4Li04LiV4Lie4LiI4LiZ4LmMCivguKvguLTguJXguKfguIjguJnguLAKK+C4q+C4tOC4leC4suC4meC4uOC4q+C4tOC4leC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lir4Li04LiZCivguKvguLTguJktCivguKvguLTguJnguIfguK3guIEKK+C4q+C4tOC4meC4iuC4meC4p+C4mQor4Lir4Li04LiZ4LiK4Lix4LmJ4LiZCivguKvguLTguJnguIrguLLguJXguLQKK+C4q+C4tOC4meC4lOC4tOC4meC4lOC4suC4mQor4Lir4Li04LiZ4LiU4Li04LiZ4Liq4Lit4Lie4Lit4LiHCivguKvguLTguJnguJXguLDguIHguK3guJkKK+C4q+C4tOC4meC4leC4seC4muC5gOC4m+C5h+C4lAor4Lir4Li04LiZ4LiX4Lij4Liy4LiiCivguKvguLTguJnguJnguYnguLPguKHguLHguJkKK+C4q+C4tOC4meC4m+C4ueC4mQor4Lir4Li04LiZ4LmB4Lib4LijCivguKvguLTguJnguJ3guJnguJfguK3guIcKK+C4q+C4tOC4meC4ouC5ieC4reC4ogor4Lir4Li04LiZ4Lii4Liy4LiZCivguKvguLTguJnguYHguKXguIcKK+C4q+C4tOC4meC4quC4muC4ueC5iAor4Lir4Li04LiZ4LmC4Liq4LmC4LiE4Lij4LiBCivguKvguLTguJnguKvguJnguLfguJQKK+C4q+C4tOC4meC4reC5iOC4reC4mQor4Lir4Li04LiZ4Lit4Lix4LiE4LiZ4Li1CivguKvguLTguKEtCivguKvguLTguKHguJ7guLLguJkKK+C4q+C4tOC4oeC4nuC4suC4meC4leC5jAor4Lir4Li04Lih4Lin4Lix4LiVCivguKvguLTguKHguKfguLHguJnguJXguYwKK+C4q+C4tOC4oeC4p+C4sgor4Lir4Li04Lih4Lin4Liy4LiVCivguKvguLTguKHguKfguLLguJkKK+C4q+C4tOC4oeC4p+C4suC4qgor4Lir4Li04Lih4LmA4Lin4LioCivguKvguLTguKHguLAKK+C4q+C4tOC4oeC4suC4peC4seC4ogor4Lir4Li04Lij4Lix4LiNCivguKvguLTguKPguLHguI0tCivguKvguLTguKPguLHguI3guI3guLTguIHguLLguKPguYwKK+C4q+C4tOC4o+C4seC4jeC4muC4seC4jwor4Lir4Li04Lij4Lix4LiT4LiiLQor4Lir4Li04Lij4Lix4LiT4Lii4LmMCivguKvguLTguKPguLHguJPguKLguIHguLLguKMKK+C4q+C4tOC4o+C4seC4k+C4ouC5gOC4geC4qAor4Lir4Li04Lij4Lix4LiT4Lii4Lij4Lix4Lio4Lih4Li1CivguKvguLTguKPguLQKK+C4q+C4tOC4o+C4tOC5guC4reC4leC4leC4seC4m+C4m+C4sAor4Lir4Li04LinCivguKvguLTguYnguKcKK+C4q+C4tOC5ieC4p+C4l+C5ieC4reC4hwor4Lir4Li04LmJ4Lin4Lib4Li14LiBCivguKvguLUKK+C4q+C4teC4lAor4Lir4Li14LiV4LiyCivguKvguLXguYDguJXguYjguLIKK+C4q+C4teC4mS0KK+C4q+C4teC4meC4ouC4suC4mQor4Lir4Li14LiaCivguKvguLXguJrguIrguLHguIEKK+C4q+C4teC4muC5gOC4iuC4tOC4h+C4iuC4suC4ogor4Lir4Li14Lia4Lid4LmJ4Liy4LiiCivguKvguLXguJrguJ7guKPguLDguKHguLLguKXguLHguKIKK+C4q+C4teC4muC5gOC4nuC4peC4hwor4Lir4Li14Lia4LmA4Lie4Lil4LiH4LiK4Lix4LiBCivguKvguLXguJrguYDguJ7guKXguIfguJvguLLguIEKK+C4q+C4teC4muC4quC5hOC4mgor4Lir4Li14Lia4LmA4Liq4Li14Lii4LiHCivguKvguLXguJrguKvguYjguK0KK+C4q+C4tuC5hgor4Lir4Li24LiHCivguKvguLbguYjguIcKK+C4q+C4tuC5iOC4h+C5hgor4Lir4Li24LiH4LiqLQor4Lir4Li24LiH4Liq4LiyCivguKvguLfguJQKK+C4q+C4t+C4mQor4Lir4Li34LmI4LiZCivguKvguLfguYjguJnguKvguKPguKPguKnguYwKK+C4q+C4t+C4rQor4Lir4Li34LmJ4LitCivguKvguLfguK3guYTguKHguYjguILguLbguYnguJkKK+C4q+C4t+C4reC4o+C4t+C4reC5guC4q+C4lAor4Lir4Li44LiHCivguKvguLjguIfguILguYnguLLguKfguJvguKPguLDguIrguJTguKvguKHguLIKK+C4q+C4uOC4lS0KK+C4q+C4uOC4leC5guC4geC4p+C4tOC4lwor4Lir4Li44LiV4Liy4LiI4Liy4Lij4Lii4LmMCivguKvguLjguJkKK+C4q+C4uOC5iOC4mQor4Lir4Li44LmJ4LiZCivguKvguLjguYnguJnguIHguLnguYkKK+C4q+C4uOC5iOC4meC4meC4tOC5iOC4hwor4Lir4Li44LmJ4LiZ4Lia4Li44Lij4Li04Lih4Liq4Li04LiX4LiY4Li0CivguKvguLjguYjguJnguJ7guKLguJnguJXguYwKK+C4q+C4uOC5ieC4meC4peC4oQor4Lir4Li44LmI4LiZ4LmE4Lil4LmI4LiB4LiyCivguKvguLjguYnguJnguKrguYjguKfguJkKK+C4q+C4uOC4meC4q+C4seC4mQor4Lir4Li44LiZ4Lir4Lix4LiZ4Lie4Lil4Lix4LiZ4LmB4Lil4LmI4LiZCivguKvguLjguJoKK+C4q+C4uOC4muC5gOC4guC4sgor4Lir4Li44Lia4Lib4Liy4LiBCivguKvguLjguJrguJzguLIKK+C4q+C4uOC4muC5gOC4q+C4pwor4Lir4Li44LmJ4LihCivguKvguLjguYnguKHguIHguKXguK3guIcKK+C4q+C4uOC5ieC4oeC5geC4nOC4peC4hwor4Lir4Li44LmJ4Lih4LmB4Lie4LijCivguKvguLjguYnguKLguKvguLjguKIKK+C4q+C4uOC4ouC4ruC4sgor4Lir4Li44Lij4Lix4LihCivguKvguLjguKvguJnguLTguIfguKvguIfguLHguJkKK+C4q+C4uQor4Lir4Li54LmICivguKvguLnguIEKK+C4q+C4ueC4geC4o+C4sOC4leC5iOC4suC4ogor4Lir4Li54LiB4Lin4Liy4LiHCivguKvguLnguYHguIjguKcKK+C4q+C4ueC4ieC4peC4suC4oQor4Lir4Li54LiJ4Li14LmICivguKvguLnguIrguK3guIcKK+C4q+C4ueC4iuC5ieC4suC4hwor4Lir4Li54LiUCivguKvguLnguJTguLHguJrguJXguLHguJrguYTguKvguKHguYkKK+C4q+C4ueC4leC4suC4quC4p+C5iOC4suC4hwor4Lir4Li54LiV4Li0CivguKvguLnguJXguLbguIcKK+C4q+C4ueC4leC4ueC4mgor4Lir4Li54LiX4Lin4LiZ4Lil4LihCivguKvguLnguYDguJrguLIKK+C4q+C4ueC4m+C4peC4suC4iuC5iOC4reC4mQor4Lir4Li54Lib4LmI4Liy4LiV4Liy4LmA4LiW4Li34LmI4Lit4LiZCivguKvguLnguJzguLXguIjguKHguLnguIHguKHguJQKK+C4q+C4ueC4nOC4tuC5iOC4hwor4Lir4Li54Lij4Li54LiUCivguKvguLnguYTguKcKK+C4q+C4ueC5hOC4p+C4leC4suC5hOC4pwor4Lir4Li54LmA4Liq4Li34LitCivguKvguLnguKvguJnguLLguJXguLLguYLguJUKK+C4q+C4ueC4q+C4meC4suC4leC4suC5gOC4peC5iOC4rQor4Lir4Li54Lir4LiZ4Li5CivguKvguLnguYjguKvguLXguYgKK+C4q+C4ueC5hOC4qwor4LmA4LirCivguYDguKvguYgKK+C5gOC4q+C4hwor4LmA4Lir4LiH4LmI4LiHCivguYDguKvguIfguLIKK+C5gOC4q+C4h+C5ieC4sgor4LmA4Lir4LiH4Liy4Lir4LiH4Lit4LiiCivguYDguKvguIfguLfguYjguK0KK+C5gOC4q+C4h+C4t+C4reC4gQor4LmA4Lir4LiH4Li34Lit4LiB4Lib4Lil4Liy4Lir4Lih4LitCivguYDguKvguIfguLfguYjguK3guIHguLLguKwKK+C5gOC4q+C5h+C4iAor4LmA4Lir4LmH4LiUCivguYDguKvguYfguJTguYLguITguJkKK+C5gOC4q+C5h+C4lOC4q+C4peC4uOC4mgor4LmA4Lir4LiV4Li0CivguYDguKvguJXguLgKK+C5gOC4q+C4leC4uOC4geC4suC4o+C4k+C5jAor4LmA4Lir4LiV4Li44Lic4LilCivguYDguKvguJXguLjguKrguLjguJTguKfguLTguKrguLHguKIKK+C5gOC4q+C5h+C4mQor4LmA4Lir4LmH4LiZ4LiB4LiH4LiI4Lix4LiB4Lij4LmA4Lib4LmH4LiZ4LiU4Lit4LiB4Lia4Lix4LinCivguYDguKvguYfguJnguYHguIHguYgKK+C5gOC4q+C5h+C4meC5geC4geC5iOC4q+C4meC5ieC4sgor4LmA4Lir4LmH4LiZ4LiC4Li14LmJ4LiU4Li14LiB4Lin4LmI4Liy4LmE4Liq4LmJCivguYDguKvguYfguJnguYDguILguLLguILguLbguYnguJnguITguLLguJnguKvguLLguKEg4LmA4Lit4Liy4Lih4Li34Lit4Lib4Lij4Liw4Liq4Liy4LiZ4LiB4LmJ4LiZCivguYDguKvguJnguYjguIcKK+C5gOC4q+C4meC4h+C4meC4suC4ouC4nuC4o+C4suC4mQor4LmA4Lir4LmH4LiZ4LiI4LiwCivguYDguKvguYfguJnguYPguIgKK+C5gOC4q+C5h+C4meC4iuC5ieC4suC4h+C4guC4teC5iSDguILguLXguYnguJXguLLguKHguIrguYnguLLguIcKK+C5gOC4q+C4meC5h+C4lAor4LmA4Lir4LiZ4LmH4LiU4LmA4Lir4LiZ4Li34LmI4Lit4LiiCivguYDguKvguYfguJnguJTguLPguYDguKvguYfguJnguYHguJTguIcKK+C5gOC4q+C5h+C4meC4lOC4tQor4LmA4Lir4LiZ4LmH4LiaCivguYDguKvguJnguYfguJrguIrguLIKK+C5gOC4q+C4meC5h+C4muC5geC4meC4oQor4LmA4Lir4LmH4LiZ4Lir4LiZ4LmJ4Liy4LmA4Lir4LmH4LiZ4Lir4Lil4Lix4LiHCivguYDguKvguJnguYjguK0KK+C5gOC4q+C5h+C4meC4reC5ieC4oQor4LmA4Lir4LiZ4Lit4LiwCivguYDguKvguJnguK3guLDguKvguJnguLAKK+C5gOC4q+C4meC5ieC4sgor4LmA4Lir4LiZ4Liy4Liw4LmGCivguYDguKvguJnguLXguKLguIcKK+C5gOC4q+C4meC4teC5iOC4ouC4hwor4LmA4Lir4LiZ4Li14Lii4LiH4LiZ4LiB4LiB4Lij4Liw4LiX4Li44LiHCivguYDguKvguJnguLXguYjguKLguJkKK+C5gOC4q+C4meC4teC4ouC4oQor4LmA4Lir4LiZ4Li14Lii4LinCivguYDguKvguJnguLXguYjguKLguKcKK+C5gOC4q+C4meC4teC5iOC4ouC4p+C4meC4s+C5geC4oeC5iOC5gOC4q+C4peC5h+C4geC5hOC4n+C4n+C5ieC4sgor4LmA4Lir4LiZ4Li14Lii4Lin4LmB4LiZ4LmI4LiZCivguYDguKvguJnguLXguYjguKLguKfguKPguLHguYnguIcKK+C5gOC4q+C4meC4teC4ouC4p+C4q+C4meC4t+C4lAor4LmA4Lir4LiZ4Li14Lii4Lin4Lir4Lih4LiyCivguYDguKvguJnguLfguK0KK+C5gOC4q+C4meC4t+C5iOC4reC4ogor4LmA4Lir4LiZ4Li34LmI4Lit4Lii4Lir4LiZ4LmI4Liy4LiiCivguYDguKvguYfguJoKK+C5gOC4q+C5h+C4muC4meC5ieC4swor4LmA4Lir4LihCivguYDguKvguKEtCivguYDguKvguKHguYgKK+C5gOC4q+C4oeC5iOC4hwor4LmA4Lir4Lih4LmH4LiZCivguYDguKvguKHguYfguJnguYDguILguLXguKLguKcKK+C5gOC4q+C4oeC5h+C4meC5gOC4muC4t+C5iOC4rQor4LmA4Lir4Lih4LmH4LiZ4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguYDguKvguKHguKfguJTguLUKK+C5gOC4q+C4oeC5iOC4rQor4LmA4Lir4Lih4Lix4LiZ4LiVLQor4LmA4Lir4Lih4Lix4LiZ4LiV4LmMCivguYDguKvguKHguLIKK+C5gOC4q+C4oeC4suC4ouC4seC4mQor4LmA4Lir4Lih4Liy4LiwCivguYDguKvguKHguLLguLDguYDguIjguLLguLAKK+C5gOC4q+C4oeC4suC4sOC4quC4oQor4LmA4Lir4Lih4Liy4Liw4LmA4Lir4Lih4LmH4LiHCivguYDguKvguKHguLXguKLguKcKK+C5gOC4q+C4oeC4teC5iOC4ouC4pwor4LmA4Lir4Lih4Li34Lit4LiHCivguYDguKvguKHguLfguK3guIfguJ3guLLguKIKK+C5gOC4q+C4oeC4t+C4reC4lAor4LmA4Lir4Lih4Li34Lit4LiU4LiE4LiZCivguYDguKvguKHguLfguK3guJTguYLguKXguJQKK+C5gOC4q+C4oeC4t+C4reC4mQor4LmA4Lir4Lih4Li34Lit4LiZ4LiB4Lix4LiaCivguYDguKvguKHguLfguK3guJnguKfguYjguLIKK+C5gOC4q+C4oeC4t+C4reC4meC4q+C4meC4tuC5iOC4h+C4p+C5iOC4sgor4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguYDguKvguKHguLfguYjguK3guKLguYYKK+C5gOC4q+C4ogor4LmA4Lir4Lii4LmA4LiBCivguYDguKvguKLguIcKK+C5gOC4q+C4ouC5iOC4reC4ogor4LmA4Lir4Lii4LiyCivguYDguKvguKLguYjguLIKK+C5gOC4q+C4ouC5iOC4suC5hgor4LmA4Lir4Lii4LmJ4LiyCivguYDguKvguKLguLLguLAKK+C5gOC4q+C4ouC4suC4sOC5hgor4LmA4Lir4Lii4Liy4Liw4LmB4Lir4Lii4LiwCivguYDguKvguKLguLTguIcKK+C5gOC4q+C4ouC4tOC4muC5hgor4LmA4Lir4Lii4Li14Lii4LiUCivguYDguKvguKLguLXguKLguJTguJzguLTguKcKK+C5gOC4q+C4ouC4teC4ouC4lOC4q+C4ouC4suC4oQor4LmA4Lir4Lii4Li14Lii4LiaCivguYDguKvguKLguLXguKLguJrguILguLXguYnguYTguIHguYjguYTguKHguYjguJ3guYjguK0KK+C5gOC4q+C4ouC4teC4ouC4muC4iOC4oeC4ueC4gQor4LmA4Lir4Lii4Li14Lii4Lia4Lii4LmI4LizCivguYDguKvguKLguLXguKLguJrguYDguKPguLfguK3guKrguK3guIfguYHguITguKEKK+C5gOC4q+C4ouC4teC5iOC4ouC4pwor4LmA4Lir4Lii4Li14LmI4Lii4Lin4LiC4LmI4Liy4LinCivguYDguKvguKLguLfguYjguK0KK+C5gOC4q+C4ouC4t+C4reC4gQor4LmA4Lir4Lij4Lix4LiN4LiN4Li04LiBCivguYDguKvguKPguLIKK+C5gOC4q+C4o+C4suC5gOC4peC5iOC4meC4meC5ieC4swor4LmA4Lir4Lij4Liy4Liw4LmGCivguYDguKvguKPguLXguKLguI0KK+C5gOC4q+C4o+C4teC4ouC4jeC4geC4o+C4sOC4qeC4suC4m+C4k+C5jAor4LmA4Lir4LmI4LmA4Lij4Li34LitCivguYDguKvguKXguYgKK+C5gOC4q+C4peC5h+C4gQor4LmA4Lir4Lil4LmH4LiB4LiB4Lil4LmJ4LiyCivguYDguKvguKXguYfguIHguIHguKXguYnguLLguYTguKHguYjguYDguJvguYfguJnguKrguJnguLTguKEKK+C5gOC4q+C4peC5h+C4geC5g+C4mQor4LmA4Lir4Lil4LmH4LiB4Lie4Li34LiUCivguYDguKvguKXguYfguIHguKfguLTguKXguLLguJQKK+C5gOC4q+C4peC5h+C4geC4quC5iOC4hwor4LmA4Lir4Lil4LmH4LiB4LmA4Liq4LmJ4LiZCivguYDguKvguKXguYfguIHguKvguKHguLLguJQKK+C5gOC4q+C4peC5h+C4geC4q+C4peC5iOC4rQor4LmA4Lir4Lil4LmH4LiB4LmA4Lir4LiZ4Li14Lii4LinCivguYDguKvguKXguYfguIHguYTguKvguKUKK+C5gOC4q+C4peC4mQor4LmA4Lir4Lil4LinCivguYDguKvguKXguKfguYHguKvguKXguIEKK+C5gOC4q+C4peC4p+C5hOC4q+C4pQor4LmA4Lir4Lil4LitCivguYDguKvguKXguLIKK+C5gOC4q+C4peC5iOC4sgor4LmA4Lir4Lil4LmJ4LiyCivguYDguKvguKXguYjguLLguIHguK0KK+C5gOC4q+C4peC4suC4iuC4sOC5guC4reC4mQor4LmA4Lir4Lil4Liy4Lir4Lil4LiBCivguYDguKvguKXguYnguLLguYHguKvguYnguIcKK+C5gOC4q+C4peC4suC4sOC5geC4q+C4peC4sAor4LmA4Lir4Lil4Li04LiHCivguYDguKvguKXguLTguIfguYDguIjguLTguYnguIcKK+C5gOC4q+C4peC4teC4ouC4mQor4LmA4Lir4Lil4Li14LmI4Lii4LihCivguYDguKvguKXguLXguYjguKLguKHguITguLkKK+C5gOC4q+C4peC4teC5iOC4ouC4oeC4peC4ueC4geC4muC4suC4qOC4geC5jAor4LmA4Lir4Lil4Li14Lii4LinCivguYDguKvguKXguLXguKLguKfguYHguKUKK+C5gOC4q+C4peC4teC4ouC4p+C4q+C4peC4seC4hwor4LmA4Lir4Lil4Li34LitCivguYDguKvguKXguLfguK3guIEKK+C5gOC4q+C4peC4t+C4reC4geC4s+C4peC4seC4hwor4LmA4Lir4Lil4Li34Lit4LmA4LiB4Li04LiZCivguYDguKvguKXguLfguK3guILguK0KK+C5gOC4q+C4peC4t+C4reC5gOC4guC5h+C4jQor4LmA4Lir4Lil4Li34Lit4LmA4LiC4LmH4LiZCivguYDguKvguKXguLfguK3guIcKK+C5gOC4q+C4peC4t+C4reC4h+C4q+C4suC4h+C4n+C5ieC4sgor4LmA4Lir4Lil4Li34Lit4LiH4Lir4Li04LiZCivguYDguKvguKXguLfguK3guYPguIgKK+C5gOC4q+C4peC4t+C4reC5gOC4iuC4t+C5iOC4rQor4LmA4Lir4Lil4Li34Lit4LmD4LiK4LmJCivguYDguKvguKXguLfguK3guJfguJkKK+C5gOC4q+C4peC4t+C4reC4mgor4LmA4Lir4Lil4Li34Lit4Lia4LmI4Liy4LiB4Lin4LmI4Liy4LmB4Lij4LiHCivguYDguKvguKXguLfguK3guYDguJ/guLfguK0KK+C5gOC4q+C4peC4t+C4reC4oQor4LmA4Lir4Lil4Li34LmI4Lit4LihCivguYDguKvguKXguLfguYjguK3guKHguKXguYnguLPguJXguYjguLPguKrguLnguIcKK+C5gOC4q+C4peC4t+C4reC4oeC4t+C4rQor4LmA4Lir4Lil4Li34Lit4Lij4Lix4LiaCivguYDguKvguKXguLfguK3guKPguYnguLLguKIKK+C5gOC4q+C4peC4t+C4reC4peC5ieC4mQor4LmA4Lir4Lil4Li34Lit4Lin4Li04Liq4Lix4LiiCivguYDguKvguKXguLfguK3guKrguJXguLTguIHguLPguKXguLHguIcKK+C5gOC4q+C4peC4t+C4reC5geC4quC4mQor4LmA4Lir4Lil4Li34Lit4Lir4Lil4LitCivguYDguKvguKXguLfguK3guKvguKXguLLguKIKK+C5gOC4q+C4peC4t+C4reC5geC4q+C4peC5iAor4LmA4Lir4Lil4Li34Lit4Lit4LiUCivguYDguKvguKXguLfguK3guK3guJTguYDguKvguKXguLfguK3guJfguJkKK+C5gOC4q+C4pwor4LmA4Lir4Lin4LmICivguYDguKvguKfguIcKK+C5gOC4q+C4p+C4l+C4sOC5gOC4pQor4LmA4Lir4Lin4LiiCivguYDguKvguKfguK3guLAKK+C5gOC4q+C4p+C4reC4sOC4q+C4p+C4sAor4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguYDguKvguKfguLXguYjguKLguIfguYHguKsKK+C5gOC4q+C5iOC4rQor4LmA4Lir4LmI4Lit4LmA4Lir4Li04LihCivguYDguKvguK3guLAKK+C5gOC4q+C4reC4sOC4meC5iOC4sgor4LmA4Lir4LiwCivguYDguKvguLDguKvguLAKK+C5gOC4q+C4sgor4LmA4Lir4LmI4LiyCivguYDguKvguLLguInguKXguLLguKEKK+C5gOC4q+C4suC4l+C4sOC5gOC4pQor4LmA4Lir4Liy4LiZ4LmJ4LizCivguYDguKvguLLguYTguKHguYkKK+C5gOC4q+C4suC4sAor4LmA4Lir4Li04LiZCivguYDguKvguLTguJnguKvguYjguLLguIcKK+C5gOC4q+C4tOC4meC5gOC4q+C5iOC4rQor4LmA4Lir4Li04LihCivguYDguKvguLTguKHguKvguLLguI0KK+C5gOC4q+C4tOC4oeC4q+C5ieC4suC4pwor4LmA4Lir4Li04Lih4Liu4Li24LiBCivguYDguKvguLXguYnguKIKK+C5gOC4q+C4teC4ouC4hwor4LmA4Lir4Li14Lii4LiH4LiB4Lij4Liy4LiUCivguYDguKvguLXguKLguJkKK+C5gOC4q+C4teC5ieC4ouC4mQor4LmA4Lir4Li14Lii4LiZ4Lij4Liy4LiBCivguYDguKvguLXguYnguKLguKEKK+C5gOC4q+C4teC5ieC4ouC4oeC5gOC4geC4o+C4teC4ouC4oQor4LmA4Lir4Li14LmJ4Lii4Lih4Lir4Liy4LiNCivguYDguKvguLXguYnguKLguKHguYLguKvguJQKK+C5gOC4q+C4teC5iOC4ouC4pwor4LmA4Lir4Li14LmI4Lii4Lin4LmB4Lir4LmJ4LiHCivguYDguKvguLfguYjguK0KK+C5gOC4q+C4t+C4reC4lAor4LmA4Lir4Li34Lit4LiU4Lir4Liy4LiiCivguYDguKvguLfguK3guJTguYHguKvguYnguIcKK+C5geC4qwor4LmB4Lir4LmICivguYHguKvguYkKK+C5geC4q+C4gQor4LmB4Lir4LiB4LiE4Lit4LiBCivguYHguKvguIHguJvguLLguIEKK+C5geC4q+C4hwor4LmB4Lir4LiH4LmICivguYHguKvguYjguIcKK+C5geC4q+C5ieC4hwor4LmB4Lir4LiH4LmB4LiB4LmLCivguYHguKvguIfguYjguIcKK+C5geC4q+C4h+C4mQor4LmB4Lir4LiH4LiZ4LmA4LiV4LmI4LitCivguYHguKvguIfguJnguYDguJbguYjguK0KK+C5geC4q+C5ieC4h+C4nOC4suC4gQor4LmB4Lir4LmJ4LiH4LmB4Lil4LmJ4LiHCivguYHguKvguYnguIfguYDguKvguLXguYjguKLguKcKK+C5geC4q+C5ieC4h+C5gOC4q+C4t+C4reC4lAor4LmB4Lir4LiZCivguYHguKvguYnguJkKK+C5geC4q+C4meC4hwor4LmB4Lir4LiZ4LiH4LmD4LiICivguYHguKvguJnguIfguKvguJnguYjguLLguKIKK+C5geC4q+C4meC4mgor4LmB4Lir4LiZ4LihCivguYHguKvguJoKK+C5geC4q+C4oQor4LmB4Lir4Lih4LmICivguYHguKvguKHguYjguKEKK+C5geC4q+C4oeC4sAor4LmB4Lir4LiiCivguYHguKvguKLguYgKK+C5geC4q+C4ouC4hwor4LmB4Lir4Lii4LmI4LiHCivguYHguKvguKLguKEKK+C5geC4q+C4ouC5h+C4oQor4LmB4Lir4Lii4LiwCivguYHguKvguKLguLDguYYKK+C5geC4q+C4pQor4LmB4Lir4Lil4LmICivguYHguKvguKXguIEKK+C5geC4q+C4peC4geC4peC4suC4jQor4LmB4Lir4Lil4LiB4LmA4Lir4Lil4LinCivguYHguKvguKXguYjguIcKK+C5geC4q+C4peC5iOC4h+C5gOC4quC4t+C5iOC4reC4oeC5guC4l+C4o+C4oQor4LmB4Lir4Lil4LmI4LiH4Lir4Lil4LmJ4LiyCivguYHguKvguKXguJkKK+C5geC4q+C4peC5iOC4meC4reC4gQor4LmB4Lir4Lil4LmI4LmD4LiZCivguYHguKvguKXguKEKK+C5geC4q+C4peC4oeC4q+C4peC4seC4gQor4LmB4Lir4Lil4LiwCivguYHguKvguKcKK+C5geC4q+C5ieC4pwor4LmB4Lir4Lin4LiBCivguYHguKvguKfguIHguYHguJnguKcKK+C5geC4q+C4p+C5iOC4hwor4LmB4Lir4Lin4LiUCivguYHguKvguKfguJkKK+C5geC4q+C4p+C4meC4q+C4seC4pwor4LmB4Lir4LmJ4Lin4Lir4Lih4Li5CivguYHguKvguKfguLAKK+C5geC4q+C5iOC4q+C5ieC4reC4oQor4LmB4Lir4LmI4LmB4Lir4LiZCivguYHguKvguLAKK+C5geC4q+C4sOC5hgor4LmC4Lir4LmICivguYLguKvguIEKK+C5guC4q+C4hwor4LmC4Lir4LiH4Lie4Lij4Liy4LiiCivguYLguKvguJQKK+C5guC4q+C4lOC4o+C5ieC4suC4ogor4LmC4Lir4LiU4LmA4Lir4Li14LmJ4Lii4LihCivguYLguKvguJkKK+C5guC4q+C4meC4gQor4LmC4Lir4LiZ4LiB4LmB4LiB4LmJ4LihCivguYLguKvguJnguYjguIcKK+C5guC4q+C4oQor4LmC4Lir4LihLQor4LmC4Lir4Lih4LmICivguYLguKvguKHguIHguKPguKPguKEKK+C5guC4q+C4oeC4geC4ueC4k+C4keC5jAor4LmC4Lir4Lih4LmI4LiHCivguYLguKvguKHguJQKK+C5guC4q+C4oeC4lOC5gOC4l+C4qAor4LmC4Lir4Lih4LmC4Lij4LiHCivguYLguKvguKHguKvguLHguIEKK+C5guC4q+C4oeC4ruC4tuC4gQor4LmC4Lir4LiiCivguYLguKvguKLguIHguYDguKvguKLguIEKK+C5guC4q+C4ouC4hwor4LmC4Lir4Lii4LmI4LiHCivguYLguKvguKLguYjguIfguYYKK+C5guC4q+C4ouC4q+C4p+C4mQor4LmC4Lir4Lii4LmE4Lir4LmJCivguYLguKvguKMKK+C5guC4q+C4o+C4hwor4LmC4Lir4Lij4LiH4LmA4Lir4Lij4LiHCivguYLguKvguKPguJTguLLguIjguLLguKPguKLguYwKK+C5guC4q+C4o+C4sOC4nuC4sgor4LmC4Lir4Lij4LiyCivguYLguKvguKPguLLguIHguKPguLDguJrguLfguK0KK+C5guC4q+C4o+C4suC5gOC4guC4suC5gOC4meC4t+C5ieC4rQor4LmC4Lir4Lij4Liy4LiI4Liy4Lij4Lii4LmMCivguYLguKvguKPguLLguYDguJTguLfguK3guKLguYTguIHguYgKK+C5guC4q+C4o+C4suC4leC4teC4meC4q+C4oeC4sgor4LmC4Lir4Lij4Liy4LmA4LiX4LmJ4Liy4Liq4Li44LiZ4Lix4LiCCivguYLguKvguKPguLLguJrguK3guJkKK+C5guC4q+C4o+C4suC4qOC4suC4quC4leC4o+C5jAor4LmC4Lir4LilCivguYLguKvguKXguYgKK+C5guC4q+C4peC4h+C5guC4iOC5ieC4hwor4LmC4Lir4LinCivguYLguKvguKfguYgKK+C5guC4q+C4p+C5iQor4LmC4Lir4Lin4LiB4LmA4Lir4Lin4LiBCivguYLguKvguKfguIcKK+C5guC4q+C4p+C4h+C5gOC4q+C4p+C4hwor4LmC4Lir4Lin4LiUCivguYLguKvguKfguJUKK+C5g+C4q+C5iQor4LmD4Lir4LmJ4LiB4Liy4LijCivguYPguKvguI3guYgKK+C5g+C4q+C5ieC5guC4lOC4ouC5gOC4quC4meC5iOC4q+C4sgor4LmD4Lir4LmJ4LiX4LmI4LiyCivguYPguKvguYnguJfguYnguLLguKIKK+C5g+C4q+C4oeC5iAor4LmD4Lir4Lih4LmI4LiW4Lit4LiU4LiU4LmJ4Liy4LihCivguYPguKvguKHguYjguYDguK3guLXguYjguKLguKEKK+C5g+C4q+C5ieC4o+C5ieC4suC4ogor4LmD4Lir4LmJ4Lij4LmJ4Liy4Lii4Lib4LmJ4Liy4Lii4Liq4Li1CivguYPguKvguYnguKrguLHguJXguKLguLLguJrguLHguJkKK+C5g+C4q+C5ieC4q+C4sgor4LmD4Lir4LmJ4Lit4Lig4Lix4LiiCivguYPguKvguYnguK3guK3guIEKK+C5hOC4qwor4LmE4Lir4LmICivguYTguKvguYkKK+C5hOC4q+C4i+C4reC4hwor4LmE4Lir4LiZCivguYTguKvguJvguKXguLLguKPguYnguLIKK+C5hOC4q+C4oQor4LmE4Lir4Lih4LmJCivguYTguKvguKHguJfguK3guIcKK+C5hOC4q+C4oeC4quC4seC4muC4m+C4sOC4o+C4lAor4LmE4Lir4Lij4LiT4Lii4LmMCivguYTguKvguKUKK+C5hOC4q+C4peC5iAor4LmE4Lir4Lil4LmI4LmA4LiC4LiyCivguYTguKvguKXguYjguJbguJnguJkKK+C5hOC4q+C4peC5iOC4l+C4p+C4teC4mwor4LmE4Lir4Lil4LmI4LiX4Liy4LiHCivguYTguKvguKXguJnguYnguLMKK+C5hOC4q+C4peC5iOC4o+C4p+C4mgor4LmE4Lir4LinCivguYTguKvguKfguYYKK+C5hOC4q+C4p+C5iQor4LmE4Lir4Lin4LmJ4LiE4Lij4Li5CivguYTguKvguKfguYnguYDguIjguYnguLIKK+C5hOC4q+C4p+C4leC4seC4pwor4LmE4Lir4Lin4LiV4Li04LiHCivguYTguKvguKfguJfguLHguJkKK+C5hOC4q+C4p+C5ieC4nOC4tQor4LmE4Lir4Lin4Lie4Lij4Li04LiaCivguYTguKvguKfguYnguKfguLLguJkKK+C5hOC4q+C4q+C4peC4swor4LisCivguK0KK+C4reC4gQor4Lit4LiB4LmE4LiB4LmICivguK3guIHguITguKPguLLguIEKK+C4reC4geC4leC4seC5ieC4hwor4Lit4LiB4LiV4Lix4LiN4LiN4Li44LiV4LiyCivguK3guIHguJXguLHguI3guI3guLkKK+C4reC4geC5gOC4leC5iOC4sgor4Lit4LiB4LmB4LiV4LiBCivguK3guIHguJfguLDguYDguKUKK+C4reC4geC4meC4tOC4qeC4kOC5jAor4Lit4LiB4LmA4Lih4Li34Lit4LiHCivguK3guIHguKPguJPguLXguKLguYwKK+C4reC4geC4o+C4o+C4oeC4geC4o+C4tOC4ouC4sgor4Lit4LiB4Lij4Lin4LiaCivguK3guIHguKPguYjguK3guIcKK+C4reC4geC5guC4o+C4ogor4Lit4LiB4LmA4Lil4LiyCivguK3guIHguKvguLHguIEKK+C4reC4geC4seC4m+C4m+C4tOC4oi0KK+C4reC4geC4seC4m+C4m+C4tOC4ouC4p+C4seC4leC4luC4uAor4Lit4LiB4Lix4Lib4Lib4Li04Lii4LmC4Lin4Lir4Liy4LijCivguK3guIHguLHguJvguJvguLTguKLguLAKK+C4reC4geC4uOC4qOC4pQor4Lit4LiB4Li44Lio4LilLQor4Lit4LiB4Li44Lio4Lil4LiB4Lij4Lij4LihCivguK3guIHguLjguKjguKXguIHguKPguKPguKHguJrguJYKK+C4reC4geC4uOC4qOC4peC5gOC4iOC4leC4meC4sgor4Lit4LiB4Li44Lio4Lil4Lih4Li54LilCivguK3guITguJXguLQKK+C4reC4hOC5gOC4meC4quC4seC4mQor4Lit4LiE4Liy4LiYCivguK3guITguLLguKMtCivguK3guIYKK+C4reC5guC4huC4qeC4sAor4Lit4LiHCivguK3guIfguIHguYwKK+C4reC4h+C4hC0KK+C4reC4h+C4hOC5jAor4Lit4LiH4LiE4LmM4LiB4LiQ4Li04LiZCivguK3guIfguITguYzguIHguKMKK+C4reC4h+C4hOC5jOC4geC4suC4owor4Lit4LiH4LiE4LmM4LiB4Liy4Lij4Liq4Lir4Lib4Lij4Liw4LiK4Liy4LiK4Liy4LiV4Li0CivguK3guIfguITguIrguLLguJUKK+C4reC4h+C4hOC5jOC4m+C4o+C4sOC4geC4reC4mgor4Lit4LiH4LiE4LmM4Lib4Lij4Liw4LiK4Li44LihCivguK3guIfguITguKHguJnguJXguKPguLUKK+C4reC4h+C4hOC4oeC4o+C4o+C4qQor4Lit4LiH4LiE4Lij4Lix4LiB4Lip4LmMCivguK3guIfguITguKfguLTguIHguLLguKMKK+C4reC4h+C4hOC4p+C4tOC5gOC4geC4qeC4mwor4Lit4LiH4LiE4Lin4Li04LiX4Lii4LiyCivguK3guIfguITguLLguJ7guKLguJ4KK+C4reC4h+C4hOC4uOC4pQor4Lit4LiH4LiE4Li44Lil4Li1CivguK3guIfguKjguYwKK+C4reC4h+C4qOC4sgor4Lit4LiH4Lit4Liy4LiICivguK3guIfguLjguYjguJkKK+C4reC4iOC4owor4Lit4LiI4LilLQor4Lit4LiI4Lil4LiyCivguK3guIjguLTguJXguJXguLQKK+C4reC4iOC4tOC4meC4leC4sgor4Lit4LiI4Li04LiZ4LmE4LiV4LiiCivguK3guIjguLTguKMtCivguK3guIjguLTguKPguLAKK+C4reC5gOC4iOC4peC4gQor4Lit4LmA4LiI4Lil4LiwCivguK3guIoKK+C4reC4iuC4sgor4Lit4LiK4Li04LiZCivguK3guIrguLTguJnguLUKK+C4reC4iuC4tOC4owor4Lit4LiP4Lin4Li1CivguK3guJPguLQKK+C4reC4k+C4uAor4Lit4LiT4Li5CivguK3guYLguJPguJfguLHguKIKK+C4reC4lAor4Lit4LiU4LiB4Lil4Lix4LmJ4LiZCivguK3guJTguYPguIgKK+C4reC4lOC4leC4suC4q+C4peC4seC4muC4guC4seC4muC4leC4suC4meC4reC4mQor4Lit4LiU4LiX4LiZCivguK3guJTguJnguKEKK+C4reC4lOC5gOC4m+C4o+C4teC5ieC4ouC4p+C5hOC4p+C5ieC4geC4tOC4meC4q+C4p+C4suC4mQor4Lit4LiU4Liq4Li5CivguK3guJTguYHguKvguYnguIfguK3guJTguYHguKXguYnguIcKK+C4reC4lOC4reC4ouC4suC4gQor4Lit4LiU4Lit4Lit4LihCivguK3guJTguLQKK+C4reC4lOC4tOC4luC4tQor4Lit4LiU4Li04LmA4LiX4LieCivguK3guJTguLTguYDguKPguIEKK+C4reC4lOC4tOC5gOC4o+C4gS0KK+C4reC4lOC4tOC5gOC4o+C4geC4peC4suC4oAor4Lit4LiU4Li04Lio4LijCivguK3guJTguLTguKjguKfguKMKK+C4reC4lOC4tOC4qOC4seC4ogor4Lit4LiU4Li14LiVCivguK3guJTguLXguJUtCivguK3guJTguLXguJXguIHguLLguKUKK+C4reC4lOC4teC4leC4iuC4suC4leC4tAor4Lit4LiU4Li14LiV4Lig4LieCivguK3guJTguLXguJXguKrguKHguLHguKIKK+C4reC4lOC4uOC4pQor4Lit4LiU4Li44Lil4LiiLQor4Lit4LiU4Li44Lil4Lii4LmMCivguK3guJXguLQKK+C4reC4leC4tOC4iuC4suC4lQor4Lit4LiV4Li04LiK4Liy4LiVLQor4Lit4LiV4Li04LiK4Liy4LiV4Lia4Li44LiV4LijCivguK3guJXguLTguKHguLLguJnguLAKK+C4reC4leC4tOC4o+C4suC4igor4Lit4LiV4Li04LmA4Lij4LiBCivguK3guJXguLTguYDguKPguIEtCivguK3guJXguLTguYDguKPguIHguIjguLXguKfguKMKK+C4reC4leC4tOC5gOC4o+C4geC4peC4suC4oAor4Lit4LiV4Li04Liq4Liy4LijCivguK3guJbguKPguKPguJ7guYDguKfguJcKK+C4reC4l+C4o+C4sAor4Lit4LiX4Li04LiZ4LiZ4Liy4LiX4Liy4LiZCivguK3guJfguLTguJnguJnguLLguJfguLLguKLguLUKK+C4reC4mOC4o+C4o+C4oQor4Lit4LiY4Li0CivguK3guJjguLTguIEtCivguK3guJjguLTguIHguKHguLLguKoKK+C4reC4mOC4tOC4geC4o+C4k+C5jAor4Lit4LiY4Li04LiB4Lin4Liy4LijCivguK3guJjguLTguIHguKrguLjguKPguJfguLTguJkKK+C4reC4mOC4tOC4geC4suC4owor4Lit4LiY4Li04LiB4Liy4Lij4Lia4LiU4Li1CivguK3guJjguLTguITguKEKK+C4reC4mOC4tOC4j+C4kOC4suC4mQor4Lit4LiY4Li04Lia4LiU4Li1CivguK3guJjguLTguJrguLLguKIKK+C4reC4mOC4tOC4mwor4Lit4LiY4Li04LibLQor4Lit4LiY4Li04Lib4LmE4LiV4LiiCivguK3guJjguLTguKHguLLguJXguKMKK+C4reC4mOC4tOC4oeC4uOC4leC4leC4tAor4Lit4LiY4Li04LmC4Lih4LiB4LiC4LmMCivguK3guJjguLTguKPguLLguIoKK+C4reC4mOC4tOC4p+C4suC4qgor4Lit4LiY4Li04Lin4Liy4Liq4LiZ4LiwCivguK3guJjguLTguKjguLXguKUKK+C4reC4mOC4tOC4qeC4kOC4suC4mQor4Lit4LiY4Li24LiBCivguK3guJktCivguK3guYnguJkKK+C4reC4meC4h+C4hC0KK+C4reC4meC4h+C4hOC5jAor4Lit4LiZ4LiH4LiE4LiT4LiwCivguK3guJnguIfguITguYDguKXguIIKK+C4reC4meC4h+C4hOC5gOC4peC4guC4sgor4Lit4LiZ4LiYLQor4Lit4LiZ4LiY4LiB4Liy4LijCivguK3guJnguJnguJXguYwKK+C4reC4meC4ouC4sAor4Lit4LiZ4Lij4Lij4LiGCivguK3guJnguKPguKPguJYKK+C4reC4meC4pQor4Lit4LiZ4Lin4Lix4LiKCivguK3guJnguKfguLHguIotCivguK3guYnguJnguK3guYnguK0KK+C4reC4meC4seC4jQor4Lit4LiZ4Lix4LiNLQor4Lit4LiZ4Lix4LiN4LiE4LiV4Li0CivguK3guJnguLHguI3guKrguLLguJjguLLguKPguJPguYwKK+C4reC4meC4seC4leC4leC4sgor4Lit4LiZ4Lix4LiV4LiWLQor4Lit4LiZ4Lix4LiZ4LiVLQor4Lit4LiZ4Lix4LiZ4LiV4LmMCivguK3guJnguLHguJnguJXguKMtCivguK3guJnguLHguJnguJXguKPguLTguKLguIHguKPguKPguKEKK+C4reC4meC4seC4oQor4Lit4LiZ4Liy4LiB4Li54LilCivguK3guJnguLLguITguJUKK+C4reC4meC4suC4hOC4lS0KK+C4reC4meC4suC4hOC4leC4geC4suC4pQor4Lit4LiZ4Liy4LiE4Liy4Lih4Li04Lic4LilCivguK3guJnguLLguITguLLguKHguLTguKHguKPguKPguIQKK+C4reC4meC4suC4hOC4suC4oeC4tQor4Lit4LiZ4Liy4LiI4Liy4LijCivguK3guJnguLLguJYKK+C4reC4meC4suC4luC4sgor4Lit4LiZ4Liy4LiX4LijCivguK3guJnguLLguJjguLTguJvguYTguJXguKIKK+C4reC4meC4suC4oeC4seC4ogor4Lit4LiZ4Liy4Lij4LiiLQor4Lit4LiZ4Liy4Lij4Lii4LiK4LiZCivguK3guJnguLLguKPguKLguJjguKPguKPguKEKK+C4reC4meC4suC4o+C4ouC4sAor4Lit4LiZ4Liy4Lil4Lix4LiiCivguK3guJnguLMKK+C4reC4meC4tOC4iAor4Lit4LiZ4Li04LiILQor4Lit4LiZ4Li04LiI4LiB4Lij4Lij4LihCivguK3guJnguLTguIjguIjguLHguIcKK+C4reC4meC4tOC4iOC4iOC4sgor4Lit4LiZ4Li04LiP4LiQ4Liy4Lij4Lih4LiT4LmMCivguK3guJnguLTguKLguJUKK+C4reC4meC4tOC4ouC4oQor4Lit4LiZ4Li04Lii4LihLQor4Lit4LiZ4Li04LilCivguK3guJnguLTguKUtCivguK3guJnguLTguKXguJrguJYKK+C4reC4meC4tOC4p+C4o+C4o+C4lQor4Lit4LiZ4Li04Lin4Lij4Lij4LiV4LiZ4LmMCivguK3guJnguLTguKnguI/guYwKK+C4reC4meC4teC4gS0KK+C4reC4meC4teC4geC4l+C4o+C4o+C4qOC4meC4sAor4Lit4LiZ4Li14LiB4LiX4Lix4Lio4LiZ4LiwCivguK3guJnguLXguIHguLAKK+C4reC4meC4teC4geC4seC4kAor4Lit4LiZ4Li14LiICivguK3guJnguLbguIEKK+C4reC4meC4tuC5iOC4hwor4Lit4LiZ4Li4CivguK3guJnguLjguIHguKMKK+C4reC4meC4uOC4geC4o+C4oQor4Lit4LiZ4Li44LiB4Lij4Lij4Lih4LiB4Liy4LijCivguK3guJnguLjguIHguKPguLDguYDguJrguLXguKLguJQKK+C4reC4meC4uOC4geC4suC4iuC4suC4lAor4Lit4LiZ4Li44LiB4Liy4LijCivguK3guJnguLjguIHguLnguKUKK+C4reC4meC4uOC4hOC4suC4oeC4tOC4gQor4Lit4LiZ4Li44LiE4Liy4Lih4Li1CivguK3guJnguLjguYDguITguKPguLLguLDguKvguYwKK+C4reC4meC4uOC4iOC4owor4Lit4LiZ4Li44LiKCivguK3guJnguLjguIrguJkKK+C4reC4meC4uOC4iuC4sgor4Lit4LiZ4Li44LiK4Liy4LiVCivguK3guJnguLjguIrguLLguJUtCivguK3guJnguLjguIrguLLguJXguJrguLjguJXguKMKK+C4reC4meC4uOC4iuC4tOC4lQor4Lit4LiZ4Li44LiN4Liy4LiVCivguK3guJnguLjguI3guLLguYLguJXguJXguLjguKXguLLguIHguLLguKMKK+C4reC4meC4uOC4leC4oy0KK+C4reC4meC4uOC5gOC4luC4o+C4sAor4Lit4LiZ4Li44LiX4Li04LiZCivguK3guJnguLjguJrguJcKK+C4reC4meC4uOC4muC4suC4pQor4Lit4LiZ4Li44Lib4Lij4Li04LiN4LiN4LiyCivguK3guJnguLjguJvguKrguLHguKHguJrguLHguJkKK+C4reC4meC4uOC4m+C4seC4quC4meC4sgor4Lit4LiZ4Li44Lie4LiH4Lio4LmMCivguK3guJnguLjguJ7guLHguJfguJjguYwKK+C4reC4meC4uOC4nuC4seC4meC4mOC5jAor4Lit4LiZ4Li44LmC4Lie4LiYCivguK3guJnguLjguKDguKPguKPguKLguLIKK+C4reC4meC4uOC4oOC4o+C4tOC4ouC4sgor4Lit4LiZ4Li44Lig4Liy4LiECivguK3guJnguLjguKDguLLguKkKK+C4reC4meC4uOC4oeC4seC4leC4tAor4Lit4LiZ4Li44Lih4Liy4LiV4Lij4LiyCivguK3guJnguLjguKHguLLguJkKK+C4reC4meC4uOC4oeC4ueC4pQor4Lit4LiZ4Li44Lih4Li54Lil4LiB4Lij4LiUCivguK3guJnguLjguYLguKHguJfguJnguLIKK+C4reC4meC4uOC5guC4oeC4l+C4meC4suC4muC4seC4leC4owor4Lit4LiZ4Li44LmC4Lii4LiECivguK3guJnguLjguKPguLHguIHguKktCivguK3guJnguLjguKPguLHguIHguKnguYwKK+C4reC4meC4uOC4o+C4seC4geC4qeC4meC4tOC4ouC4oQor4Lit4LiZ4Li44Lij4Liy4LiKCivguK3guJnguLjguKPguLLguJgKK+C4reC4meC4uOC4o+C4suC4mOC4sAor4Lit4LiZ4Li44Lij4Liy4LiY4LiyCivguK3guJnguLjguKPguLnguJsKK+C4reC4meC4uOC5guC4peC4oQor4Lit4LiZ4Li44Lin4LiH4Lio4LmMCivguK3guJnguLjguKfguLHguJUKK+C4reC4meC4uOC4p+C4suC4lQor4Lit4LiZ4Li44Lio4Liy4Liq4LiBCivguK3guJnguLjguKjguLLguKrguJnguYwKK+C4reC4meC4uOC4qOC4suC4quC4meC4suC4iOC4suC4o+C4ouC5jAor4Lit4LiZ4Li44Lio4Li04Lip4LiP4LmMCivguK3guJnguLjguKrguJXguLQKK+C4reC4meC4uOC4quC4meC4mOC4tAor4Lit4LiZ4Li44Liq4Lig4Liy4LiB4Liy4LiK4Liy4LiUCivguK3guJnguLjguKrguKMKK+C4reC4meC4uOC4quC4o+C4k+C5jAor4Lit4LiZ4Li44Liq4Lix4LiN4LiN4LiyCivguK3guJnguLjguKrguLHguKIKK+C4reC4meC4uOC4quC4suC4p+C4o+C4teC4ouC5jAor4Lit4LiZ4Li44Liq4Liy4Liq4LiZ4Li1CivguK3guYDguJnguIEKK+C4reC5gOC4meC4gS0KK+C4reC5gOC4meC4geC4hOC4uOC4kwor4Lit4LmA4LiZ4LiB4Lib4Lij4Liw4Liq4LiH4LiE4LmMCivguK3guYDguJnguIHguKfguLTguJgKK+C4reC5gOC4meC4geC4reC4meC4seC4meC4leC5jAor4Lit4LmA4LiZ4LiB4Lit4LiZ4Lix4LiZ4LiV4Lix4LiHCivguK3guYDguJnguIjguK3guJnguLLguJYKK+C4reC5guC4meC4iuC4sgor4Lit4LmC4LiZ4LiU4Liy4LiVCivguK3guJoKK+C4reC4muC5gOC4iuC4ogor4Lit4Lia4Lij4LihCivguK3guJrguK3guKfguKUKK+C4reC4muC4reC5ieC4suC4pwor4Lit4Lia4Lit4Li44LmI4LiZCivguK3guJrguLLguKIKK+C4reC4muC4suC4oi0KK+C4reC4muC4suC4ouC4oOC4ueC4oeC4tAor4Lit4Lia4Liy4Lii4Lih4Li44LiCCivguK3guJsKK+C4reC4m+C4geC4suC4owor4Lit4Lib4LiI4Liy4Lii4LiZLQor4Lit4Lib4LiI4Liy4Lii4LiZ4LiY4Lij4Lij4LihCivguK3guJvguIjguLLguKLguJnguKHguLHguKIKK+C4reC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lib4Lih4LiH4LiE4LilCivguK3guJvguKHguLLguJkKK+C4reC4m+C4ouC4qAor4Lit4Lib4LijLQor4Lit4Lib4Lij4Lig4Liy4LiECivguK3guJvguKPguLDguKHguLLguJMKK+C4reC4m+C4o+C4sOC4oeC4suC4lwor4Lit4Lib4Lij4Liw4LmE4Lih4LiiCivguK3guJvguKPguLHguJPguJPguIrguLLguJXguLQKK+C4reC4m+C4o+C4sgor4Lit4Lib4Lij4Liy4LiK4Lix4LiiCivguK3guJvguKPguLLguIrguLTguJUKK+C4reC4m+C4o+C4suC4mAor4Lit4Lib4Lij4Li04Lih4Liy4LiTCivguK3guJvguKXguLHguIHguKnguJPguYwKK+C4reC4m+C5guC4peC4geC4meC5jAor4Lit4Lib4Lin4Liy4LiXCivguK3guJvguKvguLLguKMKK+C4reC4m+C4suC4iOC4tQor4Lit4Lib4Liy4LiI4Li14LiZCivguK3guJvguLLguJkKK+C4reC5gOC4m+C4q+C4tAor4Lit4Lie4Lie4LiwCivguK3guJ7guKLguJ4KK+C4reC4oOC4pwor4Lit4Lig4Lix4LieCivguK3guKDguLHguJ4tCivguK3guKDguLHguJ7guJrguLjguITguITguKUKK+C4reC4oOC4seC4nuC4nOC4pQor4Lit4Lig4Lix4LiiCivguK3guKDguLHguKItCivguK3guKDguLHguKLguJfguLLguJkKK+C4reC4oOC4seC4ouC5guC4l+C4qQor4Lit4Lig4Li0CivguK3guKDguLTguIbguLLguJUKK+C4reC4oOC4tOC4iOC4ieC4sgor4Lit4Lig4Li04LiK4LiM4LiyCivguK3guKDguLTguIrguJkKK+C4reC4oOC4tOC4iuC4mS0KK+C4reC4oOC4tOC4iuC4meC4suC4mOC4tOC4m+C5hOC4leC4ogor4Lit4Lig4Li04LiK4Lix4LiiCivguK3guKDguLTguIrguLLguJUKK+C4reC4oOC4tOC4iuC4suC4lS0KK+C4reC4oOC4tOC4iuC4suC4leC4muC4uOC4leC4owor4Lit4Lig4Li04LiK4Li04LiVCivguK3guKDguLTguI3guI3guLIKK+C4reC4oOC4tOC4jeC4jeC4suC4kwor4Lit4Lig4Li04LiT4LirLQor4Lit4Lig4Li04LiY4Lij4Lij4LihCivguK3guKDguLTguJjguLLguJkKK+C4reC4oOC4tOC5hOC4mOC4ogor4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmMCivguK3guKDguLTguJnguLHguJnguJfguJnguLLguIHguLLguKMKK+C4reC4oOC4tOC4meC4seC4ogor4Lit4Lig4Li04LiZ4Li04Lir4Liy4LijCivguK3guKDguLTguYDguJnguKnguIHguKPguKHguJPguYwKK+C4reC4oOC4tOC4muC4suC4pQor4Lit4Lig4Li04Lib4Lij4Lix4LiK4LiN4LiyCivguK3guKDguLTguJvguKPguLLguKIKK+C4reC4oOC4tOC4oeC4q+C4suC4reC4s+C4meC4suC4iAor4Lit4Lig4Li04Lih4Liy4LiZ4LiwCivguK3guKDguLTguKHguLjguIIKK+C4reC4oOC4tOC4o+C4lOC4tQor4Lit4Lig4Li04Lij4LiV4Li0CivguK3guKDguLTguKPguKHguKLguYwKK+C4reC4oOC4tOC4o+C4seC4geC4qeC5jAor4Lit4Lig4Li04Lij4Lix4LiQ4Lih4LiZ4LiV4Lij4Li1CivguK3guKDguLTguKPguLLguKEKK+C4reC4oOC4tOC4o+C4uOC4lQor4Lit4Lig4Li04Lij4Li44LihCivguK3guKDguLTguKPguLnguJsKK+C4reC4oOC4tOC4peC4seC4geC4guC4tOC4lQor4Lit4Lig4Li04Lil4Lix4LiB4LiC4Li04LiVLQor4Lit4Lig4Li04Lil4Lix4LiB4LiC4Li04LiV4LiB4Liy4LilCivguK3guKDguLTguKXguLHguIHguILguLTguJXguKrguKHguLHguKIKK+C4reC4oOC4tOC5gOC4peC4m+C4meC5jAor4Lit4Lig4Li04Lin4Lix4LiZ4LiX4LmMCivguK3guKDguLTguKfguLLguJcKK+C4reC4oOC4tOC4p+C4suC4l+C4meC5jAor4Lit4Lig4Li04LmA4Lip4LiBCivguK3guKDguLTguYDguKnguIHguKrguKHguKPguKoKK+C4reC4oOC4tOC4quC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Lih4Lix4LiiCivguK3guKDguLTguKrguKHguLLguIjguLLguKMKK+C4reC4oOC4tOC4quC4seC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Lix4Lih4LmC4Lie4LiY4Li04LiN4Liy4LiTCivguK3guKDguLTguKrguLTguJUKK+C4reC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jAor4Lit4Lig4Li54LiVCivguK3guKEKK+C4reC5ieC4oQor4Lit4Lih4LiE4Lin4Liy4LihCivguK3guKHguJUtCivguK3guKHguJXguJrguJcKK+C4reC4oeC4leC4sAor4Lit4Lih4LiZ4Li44Lip4Lii4LmMCivguK3guKHguJvguLLguIEKK+C4reC4oeC4nuC4sOC4meC4swor4Lit4Lih4LmA4Lie4Lil4Li04LiHCivguK3guKHguKDguLnguKHguLQKK+C4reC4oeC4oeC4t+C4rQor4Lit4Lih4Lii4Li04LmJ4LihCivguK3guKHguKMKK+C4reC4oeC4oy0KK+C4reC4oeC4o+C4muC4lOC4tQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMCivguK3guKHguKPguKPguLLguIoKK+C4reC4oeC4o+C4quC4leC4o+C4tQor4Lit4Lih4Lij4LiyCivguK3guKHguKPguLLguKfguJTguLUKK+C4reC4oeC4o+C4tOC4meC4l+C4o+C5jAor4Lit4Lih4LmA4Lij4LiZ4LiX4Lij4LmMCivguK3guKHguYDguKPguKgKK+C4reC4oeC5gOC4o+C4qOC4p+C4owor4Lit4Lih4LmC4Lij4LiECivguK3guKHguKTguJUKK+C4reC4oeC4pOC4lS0KK+C4reC4oeC4pOC4leC4muC4lwor4Lit4Lih4Lik4LiV4Lii4Li5CivguK3guKHguKTguJXguKPguKoKK+C4reC4oeC5gOC4peC4t+C4reC4lOC4reC4oeC4neC4suC4lAor4Lit4Lih4LmA4Lil4Li34Lit4LiU4Lit4Lih4Lir4LiZ4Lit4LiHCivguK3guKHguKvguJnguK3guIcKK+C4reC4oeC4seC4iOC4iOC4sAor4Lit4Lih4Lix4LiV4LijCivguK3guKHguLLguJXguKLguYwKK+C4reC4oeC4suC4p+C4quC4tQor4Lit4Lih4Liy4Lin4Liq4Li4CivguK3guKHguLLguKfguLLguKrguLUKK+C4reC4oeC4tOC4leC4owor4Lit4LmA4Lih4Lij4Li04LiB4Lix4LiZCivguK3guKIKK+C4reC4ouC4mQor4Lit4Lii4Lix4LiqCivguK3guKLguYjguLIKK+C4reC4ouC4suC4gQor4Lit4Lii4LmI4Liy4LiHCivguK3guKLguYjguLLguIfguYTguKMKK+C4reC4ouC5iOC4suC4h+C5hOC4o+C4geC5h+C4lOC4tQor4Lit4Lii4LmI4Liy4LiH4LmE4Lij4LiB4LmH4LiV4Liy4LihCivguK3guKLguLjguJfguJjguYwKK+C4reC4ouC4ueC5iAor4Lit4Lii4Li54LmI4LiB4Lij4Lij4LihCivguK3guKLguLnguYjguIHguLTguJkKK+C4reC4ouC4ueC5iOC4hOC4hwor4Lit4Lii4Li54LmI4LiH4Liy4LiZCivguK3guKLguLnguYjguIjguKPguLTguIcKK+C4reC4ouC4ueC5iOC4lOC4teC4geC4tOC4meC4lOC4tQor4Lit4Lii4Li54LmI4LiV4Lix4LinCivguK3guKLguLnguYjguJfguYnguK3guIcKK+C4reC4ouC4ueC5iOC5hOC4nwor4Lit4Lii4Li54LmI4Lih4Li34LitCivguK3guKLguLnguYjguYTguKHguYjguKrguLjguIIKK+C4reC4ouC4ueC5iOC4ouC4h+C4hOC4h+C4geC4o+C4sOC4nuC4seC4mQor4Lit4Lii4Li54LmI4Lii4Liy4LihCivguK3guKLguLnguYjguYLguKLguIcKK+C4reC4ouC4ueC5iOC5gOC4p+C4owor4Lit4Lii4Li54LmI4Lir4Lih4Lix4LiUCivguK3guKMKK+C4reC4o+C4igor4Lit4Lij4LiK4LijCivguK3guKPguIrguLjguJkKK+C4reC4o+C4kwor4Lit4Lij4LiU4Li1CivguK3guKPguJXguLQKK+C4reC4o+C4l+C4seC4ogor4Lit4Lij4LmE4LiXCivguK3guKPguJjguLLguJkKK+C4reC4o+C4meC4uOC4igor4Lit4Lij4Lie4Li04LiZ4LiX4LmMCivguK3guKPguJ7guLTguKEKK+C4reC4o+C4o+C4hAor4Lit4Lij4Lij4LiGCivguK3guKPguKPguIbguKLguYwKK+C4reC4o+C4o+C4iOC4meC5jAor4Lit4Lij4Lij4LiT4LieCivguK3guKPguKPguJYKK+C4reC4o+C4o+C4li0KK+C4reC4o+C4o+C4luC4geC4luC4sgor4Lit4Lij4Lij4LiW4LiB4LiW4Liy4LiI4Liy4Lij4Lii4LmMCivguK3guKPguKPguJbguIHguKMKK+C4reC4o+C4o+C4luC4geC4p+C4tQor4Lit4Lij4Lij4LiW4LiE4LiU4Li1CivguK3guKPguKPguJbguJrguJcKK+C4reC4o+C4o+C4luC4m+C4j+C4tOC4quC4seC4oeC4oOC4tOC4l+C4sgor4Lit4Lij4Lij4LiW4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguK3guKPguKPguJbguKPguKoKK+C4reC4o+C4o+C4luC4suC4mOC4tOC4muC4suC4ogor4Lit4Lij4Lij4LiYCivguK3guKPguKPguJgtCivguK3guKPguKPguJjguIHguKPguKPguJMKK+C4reC4o+C4o+C4mOC4hOC4o+C4suC4qgor4Lit4Lij4Lij4LiY4LiI4Lix4LiB4LijCivguK3guKPguKPguJjguIjguLHguJnguJfguKPguYwKK+C4reC4o+C4o+C4mOC4meC4tOC4qOC4sgor4Lit4Lij4Lij4LiY4Lia4LiXCivguK3guKPguKPguJjguKDguLLguIQKK+C4reC4o+C4o+C4mOC4quC4o+C4sAor4Lit4Lij4Liq4Li44LihCivguK3guKPguKrguLjguKHguJ7guKUKK+C4reC4o+C4q+C4sAor4Lit4Lij4Lir4Lix4LiHCivguK3guKPguKvguLHguJUKK+C4reC4o+C4q+C4seC4lS0KK+C4reC4o+C4q+C4seC4leC4nOC4pQor4Lit4Lij4Lir4Lix4LiV4Lih4Lij4Lij4LiECivguK3guKPguKvguLHguJXguKfguLTguYLguKHguIHguILguYwKK+C4reC4o+C4q+C4seC4mQor4Lit4Lij4Lir4Lix4LiZ4LiVLQor4Lit4Lij4Lir4Lix4LiZ4LiV4LmMCivguK3guKPguKvguLHguJnguJXguIbguLLguJUKK+C4reC4o+C5iOC4reC4ogor4Lit4Lij4Lix4LiNCivguK3guKPguLHguI0tCivguK3guKPguLHguI3guI3guLTguIEKK+C4reC4o+C4seC4jeC4p+C4suC4qgor4Lit4Lij4Lix4LiN4Lin4Liy4Liq4Li1CivguK3guKPguLHguJPguKLguYwKK+C4reC4o+C4suC4lOC4tQor4Lit4Lij4Liy4LiV4Li0CivguK3guKPguYjguLLguKEKK+C4reC4o+C4tAor4Lit4Lij4Li04LiZCivguK3guKPguLTguJnguJfguKPguYwKK+C4reC4o+C4tOC4oi0KK+C4reC4o+C4tOC4ouC4geC4sAor4Lit4Lij4Li04Lii4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKPguLTguKLguJrguLjguITguITguKUKK+C4reC4o+C4tOC4ouC4nOC4pQor4Lit4Lij4Li04Lii4Lih4Lij4Lij4LiECivguK3guKPguLTguKLguKrguLHguIgKK+C4reC4o+C4tOC4ouC4sAor4Lit4Lij4Li4CivguK3guKPguLjguJMKK+C4reC4o+C4uOC5guC4k+C4l+C4seC4ogor4Lit4Lij4Li44LmI4LihCivguK3guKPguLnguJsKK+C4reC4peC4h+C4geC4lQor4Lit4Lil4LiH4LiB4Lij4LiT4LmMCivguK3guKXguIfguIHguLLguKMKK+C4reC4peC4p+C4mQor4Lit4Lil4LmA4Lin4LiHCivguK3guKXguKvguKHguYjguLLguJkKK+C4reC4peC5iOC4reC4h+C4ieC5iOC4reC4hwor4Lit4Lil4Lix4LiB4LmA4Lit4Lil4Li34LmI4LitCivguK3guKXguLHguIfguIHguLLguKMKK+C4reC4peC4seC4iuC4iuC4tQor4Lit4Lil4LmI4Liy4LiH4LiJ4LmI4Liy4LiHCivguK3guKXguLTguIfguITguYwKK+C4reC4peC4tuC4h+C4hOC5jAor4Lit4Lil4Li24LmI4LiH4LiJ4Li24LmI4LiHCivguK3guYLguKXguKvguLAKK+C4reC4p+C4gQor4Lit4LmJ4Lin4LiBCivguK3guKfguIHguLLguKgKK+C4reC4p+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lit4Lin4LiI4LijCivguK3guKfguIrguLHguKIKK+C4reC4p+C4iuC4suC4lQor4Lit4Lin4LiK4Liy4LiVLQor4Lit4Lin4LiK4Liy4LiV4Lia4Li44LiV4LijCivguK3guKfguJQKK+C4reC4p+C4lOC4lOC4tQor4Lit4Lin4LiU4Lij4Li54LmJCivguK3guKfguJTguK3guYnguLLguIcKK+C4reC4p+C4leC4suC4owor4Lit4Lin4LiZCivguK3guYnguKfguJkKK+C4reC5ieC4p+C4meC4l+C5ieC4p+C4mQor4Lit4Lin4LiZ4Lil4Lit4LiiCivguK3guKfguJnguKXguLLguIEKK+C4reC4p+C4mgor4Lit4Lin4Lia4LiZ4LmJ4LizCivguK3guKfguKHguIfguITguKUKK+C4reC4p+C4oeC4reC4swor4Lit4Lin4LiiCivguK3guKfguKLguKfguLAKK+C4reC4p+C4o+C4uOC4l+C4mOC5jAor4Lit4Lin4Lij4Li44LiX4LiY4LiBCivguK3guKfguKUKK+C4reC4p+C4quC4suC4mQor4Lit4Lin4Lir4Liy4LijCivguK3guKfguLHguKLguKfguLAKK+C4reC4p+C4seC4quC4lOC4sgor4Lit4Lin4Liy4LiI4Li1CivguK3guKfguLTguIjguLUKK+C4reC4p+C4tOC4iuC4iuC4sgor4Lit4Lin4Li04LiN4LiN4Liy4LiT4LiBLQor4Lit4Lin4Li04LiN4LiN4Liy4LiT4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKfguLTguI3guI3guLkKK+C4reC4p+C4tOC4o+C4uOC4l+C4mOC5jAor4Lit4Lin4Li04LmC4Lij4LiY4LiZ4LmMCivguK3guKfguLXguIjguLQKK+C4reC5gOC4p+C4iOC4tQor4Lit4LmC4Lio4LiBCivguK3guKrguIfguYTguILguKIKK+C4reC4quC4meC4tQor4Lit4Liq4LiZ4Li14Lia4Liy4LiVCivguK3guKrguKAKK+C4reC4quC4oeC4geC4suC4owor4Lit4Liq4Lih4Lih4Liy4LiV4LijCivguK3guKrguKPguJ7guLTguKkKK+C4reC4quC4seC4h+C4geC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04LihLQor4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKrguLHguIfguKvguLLguKPguLTguKHguLAKK+C4reC4quC4seC4jS0KK+C4reC4quC4seC4jeC4geC4o+C4o+C4oQor4Lit4Liq4Lix4LiN4LiN4Li1CivguK3guKrguLHguI3guI3guLXguKDguLLguJ4KK+C4reC4quC4seC4jeC4jeC4teC4oOC4suC4p+C4sAor4Lit4Liq4Lix4LiN4LiN4Li14Liq4Lix4LiV4Lin4LmMCivguK3guKrguLHguI3guYHguJTguKvguKfguLIKK+C4reC4quC4seC4leC4luC4nuC4pOC4geC4qeC5jAor4Lit4Liq4Lix4LiV4Lii4LmMCivguK3guKrguLHguKHguKDguLTguJktCivguK3guKrguLHguKHguKDguLTguJnguJ7guIfguKjguYwKK+C4reC4quC4seC4oeC4oOC4tOC4meC4p+C4h+C4qOC5jAor4Lit4Liq4Liy4LiY4LijCivguK3guKrguLLguJjguLgKK+C4reC4quC4tAor4Lit4Liq4Li04LiI4Lij4Lij4Lii4Liy4LiB4Liy4LijCivguK3guKrguLTguJUKK+C4reC4quC4tOC4mOC4suC4o+C4sgor4Lit4Liq4Li04LmA4Lil4Liq4LiwCivguK3guKrguLXguJXguKLguLLguJnguLjguJ7guKLguLHguI3guIrguJnguLAKK+C4reC4quC4teC4leC4tAor4Lit4Liq4Li14LiV4Li04Lih4Lir4Liy4Liq4Liy4Lin4LiBCivguK3guKrguLgKK+C4reC4quC4uOC4iOC4tAor4Lit4Liq4Li44LiZ4Li14Lia4Liy4LiVCivguK3guKrguLjguKAKK+C4reC4quC4uOC4oC0KK+C4reC4quC4uOC4oOC4geC4o+C4o+C4oeC4kOC4suC4mQor4Lit4Liq4Li44Lig4Liq4Lix4LiN4LiN4LiyCivguK3guKrguLjguKMtCivguK3guKrguLjguKPguIHguLLguKIKK+C4reC4quC4uOC4o+C4tQor4Lit4Liq4Li44LmA4Lij4LioCivguK3guKrguLnguKMKK+C4reC5gOC4qgor4Lit4LmA4Liq4LiB4LiCLQor4Lit4LmA4Liq4LiB4LiC4Lia4Li44LiE4LiE4LilCivguK3guYDguKrguIHguILguLAKK+C4reC5gOC4quC4gi0KK+C4reC5gOC4quC4guC4sAor4Lit4LirCivguK3guKvguLHguIfguIHguLLguKMKK+C4reC4q+C4tAor4Lit4Lir4Li04LiH4Liq4LiyCivguK3guKvguLTguKfguLLguJXguIHguYLguKPguIQKK+C4reC4q+C4tuC4h+C4quC4sgor4Lit4LmA4Lir4LiV4Li44LiB4LiX4Li04LiQ4Li0CivguK3guYLguKvguKrguLTguIHguKPguKPguKEKK+C4reC4rQor4Lit4LmJ4LitCivguK3guYvguK0KK+C4reC4reC4gQor4Lit4Lit4LiB4LiB4Liz4Lil4Lix4LiHCivguK3guK3guIHguILguLjguJnguJnguLLguIcKK+C4reC4reC4geC5geC4guC4gQor4Lit4Lit4LiB4LmC4LiC4LiZCivguK3guK3guIHguYTguILguYnguKvguLHguKcKK+C4reC4reC4geC4h+C4suC4mQor4Lit4Lit4LiB4LiH4Li04LmJ4LinCivguK3guK3guIHguIrguLfguYjguK0KK+C4reC4reC4geC4i+C4tOC5gOC4iOC4mQor4Lit4Lit4LiB4LiL4Li04LmA4LiU4LiK4Lix4LiZCivguK3guK3guIHguYTguIvguJTguYwKK+C4reC4reC4geC4jeC4sgor4Lit4Lit4LiB4LiU4Lit4LiBCivguK3guK3guIHguJTguK3guIHguK3guK3guIHguJzguKUKK+C4reC4reC4geC4leC4seC4pwor4Lit4Lit4LiB4LiX4LmI4LiyCivguK3guK3guIHguJfguYjguLLguK3guK3guIHguJfguLLguIcKK+C4reC4reC4geC4l+C4uOC4geC4guC5jAor4Lit4Lit4LiB4LiX4Li44LiZCivguK3guK3guIHguJnguK3guIHguKvguJnguYnguLIKK+C4reC4reC4geC4muC4p+C4igor4Lit4Lit4LiB4Lib4Liy4LiBCivguK3guK3guIHguJzguLfguYjguJkKK+C4reC4reC4geC4neC4tQor4Lit4Lit4LiB4Lid4Li14LiU4Liy4LipCivguK3guK3guIHguJ7guKPguKPguKnguLIKK+C4reC4reC4geC5hOC4nwor4Lit4Lit4LiB4Lig4Liy4Lip4LiyCivguK3guK3guIHguKHguKvguLLguKrguKHguLLguITguKEKK+C4reC4reC4geC4ouC4seC4geC4qeC5jOC4reC4reC4geC5guC4guC4mQor4Lit4Lit4LiB4Lij4LiqCivguK3guK3guIHguKPguLHguJoKK+C4reC4reC4geC4o+C5ieC4suC4mQor4Lit4Lit4LiB4LmA4Lij4Li34Lit4LiZCivguK3guK3guIHguYHguKPguIcKK+C4reC4reC4geC5guC4o+C4hwor4Lit4Lit4LiB4Lik4LiX4LiY4Li04LmMCivguK3guK3guIHguKXguLLguKIKK+C4reC4reC4geC4peC4tOC4h+C4reC4reC4geC4hOC5iOC4suC4hwor4Lit4Lit4LiB4Lil4Li54LiBCivguK3guK3guIHguKfguLHguIcKK+C4reC4reC4geC5gOC4quC4teC4ouC4hwor4Lit4Lit4LiB4Lir4LiZ4LmJ4Liy4Lit4Lit4LiB4LiV4LiyCivguK3guK3guIHguKvguLHguJQKK+C4reC4reC4geC4q+C4suC4gQor4Lit4Lit4LiB4Lit4Liy4LiB4Liy4LioCivguK3guYjguK3guIcKK+C4reC5i+C4reC4hwor4Lit4LmJ4Lit4LiH4LmB4Lit4LmJ4LiHCivguK3guK3guYDguIjguYnguLIKK+C4reC4reC5gOC4i+C4suC4sAor4Lit4Lit4LiUCivguK3guK3guJTguYYKK+C4reC4reC4lOC4reC5ieC4reC4mQor4Lit4Lit4LiU4LmB4Lit4LiUCivguK3guK3guJTguYYg4LmB4Lit4LiU4LmGCivguK3guYrguK3guJTguYHguK3guYrguJQKK+C4reC5iuC4reC4lOC5hiDguYHguK3guYrguJTguYYKK+C4reC5ieC4reC4lOC4tOC4mgor4Lit4LmI4Lit4LiZCivguK3guYnguK3guJkKK+C4reC5iOC4reC4meC4guC5ieC4rQor4Lit4LmI4Lit4LiZ4LiE4Lin4Liy4LihCivguK3guYjguK3guJnguIjguLTguJXguK3guYjguK3guJnguYPguIgKK+C4reC5iOC4reC4meC5g+C4iAor4Lit4LmI4Lit4LiZ4LiK4LmJ4Lit4LiiCivguK3guK3guJnguIvguYwKK+C4reC4reC4meC4i+C4reC4mQor4Lit4LmI4Lit4LiZ4LiL4Lit4LiZCivguK3guYjguK3guJnguYTguJfguYkKK+C4reC5iOC4reC4meC4meC5ieC4reC4oQor4Lit4LmI4Lit4LiZ4Lib4Lin4LiB4LmA4Lib4Li14Lii4LiBCivguK3guYjguK3guJnguYDguJvguKXguLXguYnguKIKK+C4reC5iOC4reC4meC5gOC4m+C4teC4ouC4gQor4Lit4LmI4Lit4LiZ4LmA4Lie4Lil4Li14LiiCivguK3guYjguK3guJnguYLguKLguJkKK+C4reC5ieC4reC4meC4p+C4reC4mQor4Lit4LmI4Lit4LiZ4Lir4Lin4Liy4LiZCivguK3guYjguK3guJnguKvguLHguJQKK+C4reC5iOC4reC4meC4q+C4uQor4Lit4LmI4Lit4LiZ4LmE4Lir4LinCivguK3guYjguK3guJnguK3guIHguK3guYjguK3guJnguYPguIgKK+C4reC5ieC4reC4meC4reC4reC4lAor4Lit4LmI4Lit4LiZ4LmB4LitCivguK3guYnguK3guJnguYHguK3guYnguJkKK+C4reC4reC4n+C4n+C4tOC4qAor4Lit4Lit4LihCivguK3guYjguK3guKEKK+C4reC5ieC4reC4oQor4Lit4Lit4Lih4LiE4Lij4Lit4LihCivguK3guYnguK3guKHguITguYnguK3guKEKK+C4reC4reC4oeC4iuC4reC4oQor4Lit4Lit4Lih4LiL4Lit4LihCivguK3guK3guKHguKrguLTguJkKK+C4reC5ieC4reC4oeC4reC4gQor4Lit4Lit4Lih4Lit4LiUCivguK3guYnguK3guKHguYHguK3guYnguKEKK+C4reC5iOC4reC4ogor4Lit4LmJ4Lit4LiiCivguK3guYvguK3guKIKK+C4reC5ieC4reC4ouC5gOC4guC5ieC4suC4m+C4suC4geC4iuC5ieC4suC4hwor4Lit4LmJ4Lit4Lii4LiK4LmJ4Liy4LiHCivguK3guYnguK3guKLguYHguJTguIcKK+C4reC5ieC4reC4ouC5gOC4peC4sgor4Lit4LmJ4Lit4Lii4Liq4LmJ4Lit4LiiCivguK3guYnguK3guKLguK3guLTguYjguIcKK+C4reC4reC4quC5gOC4oeC4teC4ouC4oQor4Lit4LmJ4Lit4LmB4Lit4LmJCivguK3guYrguLAKK+C4reC4sOC4hOC4o+C5ieC4suC4pwor4Lit4Liw4LmA4LiE4Li34LmJ4LitCivguK3guLDguIjguLXguJkKK+C4reC4sOC5geC4iAor4Lit4Liw4LmA4LiL4LiX4Li04Lil4Li14LiZCivguK3guLDguJTguKPguLXguJnguLLguKXguLXguJkKK+C4reC4sOC4lOC4seC4gQor4Lit4Liw4LiU4Lix4LiB4Lit4Liw4LmA4LiU4Li14LmJ4LiiCivguK3guLDguJTguLHguIHguK3guLDguYDguJTguLfguYjguK0KK+C4reC4sOC4lOC4seC4geC4reC4sOC5geC4lOC5iQor4Lit4Liw4LiU4Li44LiHCivguK3guLDguJXguK3guKEKK+C4reC4sOC4meC4sAor4Lit4Liw4LiZ4Lix4LmJ4LiZCivguK3guLDguJnguLXguYkKK+C4reC4sOC4oeC4teC4muC4sgor4Lit4Liw4LmA4Lih4Lij4Li04LmA4LiL4Li14Lii4LihCivguK3guLDguKPguYnguLLguK3guKPguYjguLLguKEKK+C4reC4sOC5hOC4owor4Lit4Liw4Lil4Li44LmI4Lih4Lit4Lil4LmI4Lin4LiiCivguK3guLDguKXguLjguYnguKHguK3guKXguYjguKfguKIKK+C4reC4sOC4peC4ueC4oeC4tOC5gOC4meC4teC4ouC4oQor4Lit4Liw4Lir4LihCivguK3guLDguYTguKvguKXguYgKK+C4reC4sOC4reC4t+C5ieC4rQor4Lit4Liw4LmA4Lit4Li34LmJ4Lit4LiiCivguK3guLHguIEKK+C4reC4seC5ieC4gQor4Lit4Lix4LmJ4LiB4LmGCivguK3guLHguYrguIEKK+C4reC4seC5iuC4geC5hgor4Lit4Lix4LiB4LiB4LiwCivguK3guLHguIHguYLguIHguJjguLAKK+C4reC4seC4geC4ggor4Lit4Lix4LiB4LiC4LijLQor4Lit4Lix4LiB4LiC4Lij4Lin4Li04LiY4Li1CivguK3guLHguIHguILguKPguKfguLTguJrguLHguJXguLQKK+C4reC4seC4geC4guC4o+C4quC4oeC4seC4ogor4Lit4Lix4LiB4LiC4Lij4LiwCivguK3guLHguIHguILguKPguLLguJnguLjguIHguKPguKEKK+C4reC4seC4geC4guC4o+C4suC4meC4uOC4geC4o+C4oeC4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jAor4Lit4Lix4LiB4LmC4LiCCivguK3guLHguIHguYLguILguKDguLTguJPguLUKK+C4reC4seC4geC5guC4guC5gOC4oOC4k+C4tQor4Lit4Lix4LiB4Lip4LijCivguK3guLHguIHguKnguKMtCivguK3guLHguIHguKnguKPguIHguKXguLLguIcKK+C4reC4seC4geC4qeC4o+C4leC5iOC4swor4Lit4Lix4LiB4Lip4Lij4Lia4LiPCivguK3guLHguIHguKnguKPguKXguLHguIHguKnguJPguYwKK+C4reC4seC4geC4qeC4o+C5gOC4peC4ggor4Lit4Lix4LiB4Lip4Lij4Lio4Liy4Liq4LiV4Lij4LmMCivguK3guLHguIHguKnguKPguKrguKHguLHguKIKK+C4reC4seC4geC4qeC4o+C4quC4suC4quC4meC5jAor4Lit4Lix4LiB4Lip4Lij4Liq4Li54LiHCivguK3guLHguIHguKnguLAKK+C4reC4seC4geC5gOC4qeC4suC4q+C4tOC4k+C4tQor4Lit4Lix4LiB4LmA4Liq4LiaCivguK3guLHguIHguK3guYjguKfguJkKK+C4reC4seC4hOC4hOC4sAor4Lit4Lix4LiE4LiE4Li0CivguK3guLHguITguITguLUKK+C4reC4seC4hOC4hOC4teC4oOC4seC4ogor4Lit4Lix4LiE4LiZ4Li0CivguK3guLHguITguJnguLTguITguJPguLAKK+C4reC4seC4hOC4meC4tOC4nuC5iOC4suC4q+C5jAor4Lit4Lix4LiE4LiZ4Li04Lij4Li44LiX4LijCivguK3guLHguITguJnguLTguKfguLLguKvguLAKK+C4reC4seC4hOC4meC4tOC5guC4q+C4leC4owor4Lit4Lix4LiE4LiZ4Li1CivguK3guLHguITguKMtCivguK3guLHguITguKPguIrguLLguKLguLIKK+C4reC4seC4hOC4o+C4oeC4q+C4suC5gOC4quC4meC4suC4muC4lOC4tQor4Lit4Lix4LiE4Lij4Lih4LmA4Lir4Liq4Li1CivguK3guLHguITguKPguKPguLLguIrguJfguLnguJUKK+C4reC4seC4hOC4o+C4quC4oeC4k+C4l+C4ueC4lQor4Lit4Lix4LiHCivguK3guLHguIfguIHguYwKK+C4reC4seC4h+C4geC4meC4sAor4Lit4Lix4LiH4LiB4Lik4LipCivguK3guLHguIfguIHguKfguJQKK+C4reC4seC4h+C4geC4sOC4peC4uOC4hwor4Lit4Lix4LiH4LiB4LiyCivguK3guLHguIfguIHguLLguJoKK+C4reC4seC4h+C4geC4suC4muC4neC4o+C4seC5iOC4hwor4Lit4Lix4LiH4LiB4Liy4Lia4Lir4LiZ4Li5CivguK3guLHguIfguIHguLjguKMKK+C4reC4seC4h+C4geC4uOC4qAor4Lit4Lix4LiH4LiB4Li54LijCivguK3guLHguIfguITguJPguLAKK+C4reC4seC4h+C4hOC4k+C4sgor4Lit4Lix4LiH4LiE4Liy4LijCivguK3guLHguIfguITguLLguKoKK+C4reC4seC4h+C4hOC4teC4o+C4qgor4Lit4Lix4LiH4LiE4Li44LiQCivguK3guLHguIfguIbguLLguJUKK+C4reC4seC5ieC4h+C4ouC4teC5iAor4Lit4Lix4LmJ4LiH4LmC4Lil4LmICivguK3guLHguIfguKjguLgKK+C4reC4seC4h+C4qOC4uOC4gQor4Lit4Lix4LiH4Lio4Li44LiY4LijCivguK3guLHguIfguKjguLjguKHguLLguKXguLUKK+C4reC4seC4h+C4qi0KK+C4reC4seC4h+C4quC4geC4uOC4jwor4Lit4Lix4LiH4Liq4LiV4Lij4Lit4LihCivguK3guLHguIfguKrguJnguLIKK+C4reC4seC4h+C4quC4oOC4suC4o+C4sAor4Lit4Lix4LiH4Liq4LiwCivguK3guLHguIfguKrguLIKK+C4reC4seC4iOC4geC4peC4seC4mgor4Lit4Lix4LiI4LiI4Lix4LiZ4LiV4LmMCivguK3guLHguIjguIjguLHguKIKK+C4reC4seC4iOC4iOC4tAor4Lit4Lix4LiI4LiI4Li04Lih4LiyCivguK3guLHguIjguIjguLjguJUKK+C4reC4seC4iOC5gOC4iOC4geC4sAor4Lit4Lix4LiI4LiJ4Lij4LiyCivguK3guLHguIjguInguKPguLTguKItCivguK3guLHguIjguInguKPguLTguKLguJrguLjguITguITguKUKK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4oOC4suC4ngor4Lit4Lix4LiI4LiJ4Lij4Li04Lii4Lil4Lix4LiB4Lip4LiT4LmMCivguK3guLHguIjguInguKPguLTguKLguKXguLHguIHguKnguJPguLAKK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4sAor4Lit4Lix4LiI4LiZ4LiyCivguK3guLHguIrguIzguLHguJXguJXguLTguIEtCivguK3guLHguIrguIzguLIKK+C4reC4seC4iuC4jOC4suC4iOC4suC4owor4Lit4Lix4LiK4LiM4Liy4Lio4Lix4LiiCivguK3guLHguIrguIzguLLguKrguLHguKIKK+C4reC4seC4jS0KK+C4reC4seC4jeC4guC4ouC4oQor4Lit4Lix4LiN4LiK4LiZ4LiwCivguK3guLHguI3guIrguKXguLUKK+C4reC4seC4jeC4iuC4seC4mQor4Lit4Lix4LiN4LiK4Lix4LiZ4Lib4LmI4LiyCivguK3guLHguI3guYDguIrguLTguI0KK+C4reC4seC4jeC4jeC4sAor4Lit4Lix4LiN4LiU4Li04LiV4LiW4Li14Lii4LmMCivguK3guLHguI3guYDguJTguLXguKLguKPguJbguLXguKLguYwKK+C4reC4seC4jeC4m+C4o+C4sOC4geC4suC4qAor4Lit4Lix4LiN4Lib4Lij4Liw4LiB4Liy4Lio4LmA4LiU4Li14LmI4Lii4LinCivguK3guLHguI3guKHguJPguLUKK+C4reC4seC4jeC4oeC4seC4jS0KK+C4reC4seC4jeC4o+C4ueC4mwor4Lit4Lix4LiPCivguK3guLHguI/guJAtCivguK3guLHguI/guJDguLAKK+C4reC4seC4j+C4kOC4seC4h+C4hOC5jAor4Lit4Lix4LiP4LiQ4Lix4LiH4LiE4Li04LiB4Lih4Lij4Lij4LiECivguK3guLHguI/guJDguLHguIfguKrguLAKK+C4reC4seC4j+C4meC4sgor4Lit4Lix4LiQCivguK3guLHguJDguYDguITguKPguLLguLDguKvguYwKK+C4reC4seC4kOC4l+C4tOC4qAor4Lit4Lix4LiQ4Lia4Lij4Li04LiC4Liy4LijCivguK3guLHguJDguJrguLLguJkKK+C4reC4seC4kOC4oS0KK+C4reC4seC4kOC4oeC4sAor4Lit4Lix4LiQ4Lii4Liy4Lii4LiL4Li34LmJ4Lit4LiC4LiZ4Lih4Lii4Liy4LiiCivguK3guLHguJDguKjguIEKK+C4reC4seC4kOC4rOC4qgor4Lit4Lix4LiQ4Li0CivguK3guLHguJDguLTguKHguLTguI3guIrguLAKK+C4reC4seC4kOC4tOC4quC4seC4k+C4kOC4suC4mQor4Lit4Lix4LiSLQor4Lit4Lix4LiS4LiI4Lix4LiZ4LiX4Lij4LmMCivguK3guLHguJLguKDguLLguIQKK+C4reC4seC4kuC4oeC4k+C4keC4pQor4Lit4Lix4LiS4Lih4Liy4LiqCivguK3guLHguJLguKPguLHguJXguJXguLQKK+C4reC4seC4k+C4kS0KK+C4reC4seC4k+C4keC5guC4geC4qgor4Lit4Lix4LiT4LiR4LiK4LiwCivguK3guLHguJPguJHguLAKK+C4reC4seC4k+C4keC4suC4geC4suC4owor4Lit4Lix4LiT4LiT4LieCivguK3guLHguJQKK+C4reC4seC4lOC4geC5iuC4reC4muC4m+C4teC5iQor4Lit4Lix4LiU4LmB4LiICivguK3guLHguJTguInguLXguJQKK+C4reC4seC4lOC5geC4muC4leC5gOC4leC4reC4o+C4teC5iAor4Lit4Lix4LiU4LmB4Lic4LmI4LiZ4LmA4Liq4Li14Lii4LiHCivguK3guLHguJTguKPguLnguJsKK+C4reC4seC4lOC4peC4oQor4Lit4Lix4LiU4Liq4Liz4LmA4LiZ4LiyCivguK3guLHguJTguYDguKrguLXguKLguIcKK+C4reC4seC4lOC4reC4seC5ieC4mQor4Lit4Lix4LiU4Lit4Lix4LmJ4LiZ4LiV4Lix4LiZ4LmD4LiICivguK3guLHguJTguYHguK0KK+C4reC4seC4lS0KK+C4reC4seC4leC4hOC4seC4lAor4Lit4Lix4LiV4LiK4Li14Lin4Lib4Lij4Liw4Lin4Lix4LiV4Li0CivguK3guLHguJXguJXguLAKK+C4reC4seC4leC4leC4sgor4Lit4Lix4LiV4LiV4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguK3guLHguJXguJbguYwKK+C4reC4seC4leC4luC4sAor4Lit4Lix4LiV4LiZ4Lix4LiiCivguK3guLHguJXguYLguJnguKHguLHguJXguLQKK+C4reC4seC4leC4oOC4suC4ngor4Lit4Lix4LiV4Lij4LiK4LiwCivguK3guLHguJXguKPguLIKK+C4reC4seC4leC4o+C4suC5gOC4o+C5h+C4pwor4Lit4Lix4LiV4Lij4Liy4Liq4LmI4Lin4LiZCivguK3guLHguJXguKXguLHguJQKK+C4reC4seC4leC4p+C4tOC4meC4tOC4muC4suC4leC4geC4o+C4o+C4oQor4Lit4Lix4LiV4Lir4Li04LiVLQor4Lit4Lix4LiV4LmA4Lir4LiV4Li4CivguK3guLHguJfguJfguLIKK+C4reC4seC4l+C4mC0KK+C4reC4seC4l+C4mOC5jAor4Lit4Lix4LiX4LiY4LiE4LiVCivguK3guLHguJfguJjguITguLkKK+C4reC4seC4l+C4mOC4sgor4Lit4Lix4LiX4LiY4Liy4LiZCivguK3guLHguJfguJjguLLguKLguLgKK+C4reC4seC4mOC4ouC4suC4leC4oeC4p+C4tOC4l+C4ouC4sgor4Lit4Lix4LiY4Lii4Liy4LiiCivguK3guLHguJjguKLguLLguKjguLHguKIKK+C4reC4seC4mQor4Lit4Lix4LmJ4LiZCivguK3guLHguYvguJkKK+C4reC4seC4meC4lOC4gQor4Lit4Lix4LiZ4LiU4LijCivguK3guLHguJnguJTguLHguJoKK+C4reC4seC4meC4lOC5iuC4suC4gQor4Lit4Lix4LiZ4LmC4LiU4LmK4LiBCivguK3guLHguJnguJUtCivguK3guLHguJnguJXguIEKK+C4reC4seC4meC4leC4geC4suC4pQor4Lit4Lix4LiZ4LiV4LiB4Li04Lij4Li04Lii4LiyCivguK3guLHguJnguJXguITguLjguJMKK+C4reC4seC4meC4leC4hOC4uQor4Lit4Lix4LiZ4LiV4LiK4Liy4LiV4Li0CivguK3guLHguJnguJXguKMKK+C4reC4seC4meC4leC4oy0KK+C4reC4seC4meC4leC4o+C4geC4suC4o+C4k+C5jAor4Lit4Lix4LiZ4LiV4Lij4LiY4Liy4LiZCivguK3guLHguJnguJXguKPguKDguLLguIQKK+C4reC4seC4meC4leC4o+C4p+C4suC4quC4gQor4Lit4Lix4LiZ4LiV4Lij4LiyCivguK3guLHguJnguJXguKPguLLguKIKK+C4reC4seC4meC4leC4o+C4suC4ouC4tOC4geC4mOC4o+C4o+C4oQor4Lit4Lix4LiZ4LiV4Lil4Li04LiB4LiC4LiwCivguK3guLHguJnguJXguLAKK+C4reC4seC5ieC4meC4leC4seC5ieC4mQor4Lit4Lix4LiZ4LiV4Li04LiBCivguK3guLHguJnguJXguLTguKEtCivguK3guLHguJnguJXguLTguKHguKrguLHguIgKK+C4reC4seC4meC4leC4tOC4oeC4sAor4Lit4Lix4LmJ4LiZ4LiV4Li54LmJCivguK3guLHguJnguYDguJUKK+C4reC4seC4meC5gOC4leC4muC4uOC4o+C4sAor4Lit4Lix4LiZ4LmA4LiV4Lia4Li44Lij4Li04LiBCivguK3guLHguJnguYDguJXguJrguLjguKPguLTguIHguLIKK+C4reC4seC4meC5gOC4leC4m+C4uOC4o+C4sAor4Lit4Lix4LiZ4LmA4LiV4Lib4Li44Lij4Li04LiBCivguK3guLHguJnguYDguJXguJvguLjguKPguLTguIHguLIKK+C4reC4seC4meC5gOC4leC4p+C4suC4quC4tOC4gQor4Lit4Lix4LiZ4LmC4LiVCivguK3guLHguJnguYLguJXguIrguJkKK+C4reC4seC4meC5guC4leC4meC4suC4l+C4tQor4Lit4Lix4LiZ4LmB4LiW4LmJ4LiHCivguK3guLHguJnguJfguLgKK+C4reC4seC4meC5guC4l+C4pQor4Lit4Lix4LiZ4LiYLQor4Lit4Lix4LiZ4LiY4LiB4Liy4LijCivguK3guLHguJnguJjguJ7guLLguKUKK+C4reC4seC4meC4mOC4tOC4geC4sgor4Lit4Lix4LiZ4LiZ4LiwCivguK3guLHguJnguJnguLIKK+C4reC4seC4meC5gOC4m+C5h+C4mQor4Lit4Lix4LiZ4LmA4Lib4LmH4LiZ4LmE4LibCivguK3guLHguJnguYLguKLguJnguKItCivguK3guLHguJnguYLguKLguJnguKLguLAKK+C4reC4seC4meC4p+C4oi0KK+C4reC4seC4meC4p+C4seC4ogor4Lit4Lix4LiZ4Lin4LmI4LiyCivguK3guLHguJnguYDguKfguKoKK+C4reC4seC5ieC4meC4reC5ieC4mQor4Lit4Lix4LiaCivguK3guLHguJrguIjguJkKK+C4reC4seC4muC5gOC4ieC4sgor4Lit4Lix4Lia4Lib4Liy4LiHCivguK3guLHguJrguK3guLLguKIKK+C4reC4seC4my0KK+C4reC4seC4m+C4geC4sAor4Lit4Lix4Lib4LiB4Liy4LijCivguK3guLHguJvguI/guLTguIbguLAKK+C4reC4seC4m+C4j+C4tOC4oOC4suC4hAor4Lit4Lix4Lib4Lib4LiwCivguK3guLHguJvguYDguJvguKvguLQKK+C4reC4seC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lix4Lib4Lih4LiH4LiE4LilCivguK3guLHguJvguKLguKgKK+C4reC4seC4m+C4o+C4sOC4oeC4suC4kwor4Lit4Lix4Lib4Lij4Liw4Lih4Liy4LiXCivguK3guLHguJvguKPguLDguYTguKHguKIKK+C4reC4seC4m+C4o+C4suC4iuC4seC4ogor4Lit4Lix4Lib4Lij4Li14Lii4LmMCivguK3guLHguJvguKXguLHguIHguKnguJPguYwKK+C4reC4seC4m+C4quC4owor4Lit4Lix4Lie4Lie4Li44LiXCivguK3guLHguJ7guYLguJ7guKvguLLguKPguLTguIEKK+C4reC4seC4nuC4oOC4seC4meC4lOC4owor4Lit4Lix4Lie4Lig4Lix4LiZ4LiV4LijLQor4Lit4Lix4Lie4Lig4Liy4LiZCivguK3guLHguJ7guKDguLLguKoKK+C4reC4seC4oQor4Lit4Lix4Lih4LieLQor4Lit4Lix4Lih4Lie4LijCivguK3guLHguKHguJ7guKTguIHguKnguYwKK+C4reC4seC4oeC4nuC4p+C4seC4mQor4Lit4Lix4Lih4Lie4Lin4LiyCivguK3guLHguKHguJ7guLIKK+C4reC4seC4oeC4nuC4suC4lQor4Lit4Lix4Lih4Lie4Li04LilCivguK3guLHguKHguJ7guLgKK+C4reC4seC4oeC4nuC4uOC4igor4Lit4Lix4Lih4Lie4Li44LiK4Li04LiZ4Li1CivguK3guLHguKHguJ7guLjguJcKK+C4reC4seC4ouC4geC4sAor4Lit4Lix4Lii4LiB4LiyCivguK3guLHguKLguIHguLLguKMKK+C4reC4seC4ouC4geC4tQor4Lit4Lix4Lii4Lii4LiwCivguK3guLHguKLguKLguLTguIHguLIKK+C4reC4seC4peC4geC4uOC4o+C4reC4suC4mQor4Lit4Lix4Lil4LiV4Lij4Liy4LmE4Lin4LmC4Lit4LmA4Lil4LiVCivguK3guLHguYjguKcKK+C4reC4seC4qOC4iOC4o+C4o+C4ouC5jAor4Lit4Lix4Lio4LmA4LiI4Lij4Li14Lii4LmMCivguK3guLHguKjguKctCivguK3guLHguKjguKfguYLguIHguKfguLTguJcKK+C4reC4seC4qOC4p+C4oeC4uOC4ggor4Lit4Lix4Lio4Lin4Lih4Li44LiC4Li1CivguK3guLHguKjguKfguYDguKHguJgKK+C4reC4seC4qOC4p+C4ouC4uOC4igor4Lit4Lix4Lio4Lin4Liy4LiZ4Li24LiBCivguK3guLHguKjguKfguLTguJkKK+C4reC4seC4qOC4p+C4tOC4meC4tQor4Lit4Lix4Lip4LiOLQor4Lit4Lix4Lip4LiO4LiB4LiJ4Lix4LiZ4LiX4LmMCivguK3guLHguKnguI7guKHguIfguITguKUKK+C4reC4seC4qeC4juC4oeC4sAor4Lit4Lix4Lip4LiO4Liy4LiH4LiE4Li04LiB4Lih4Lij4Lij4LiECivguK3guLHguKnguI7guLLguKLguLjguJgKK+C4reC4seC4qeC4juC4suC4p+C4uOC4mAor4Lit4Lix4Lip4LiP4Lih4LiH4LiE4LilCivguK3guLHguKotCivguK3guLHguKrguJTguIcKK+C4reC4seC4quC4lOC4h+C4hOC4lQor4Lit4Lix4Liq4LiU4LihCivguK3guLHguKrguJTguKMKK+C4reC4seC4quC4meC4tQor4Lit4Lix4Liq4Lih4Li04Lih4Liy4LiZ4LiwCivguK3guLHguKrguKHguLjguILguLUKK+C4reC4seC4quC4quC4meC4tQor4Lit4Lix4Liq4Liq4LiwCivguK3guLHguKrguKrguLHguJXguJbguJ7guKTguIHguKnguYwKK+C4reC4seC4quC4quC4suC4meC4tOC4gQor4Lit4Lix4Liq4Liq4Liy4LiZ4Li14LiBCivguK3guLHguKrguKrguLLguJnguLbguIEKK+C4reC4seC4quC4quC4suC4quC4sAor4Lit4Lix4Liq4Liq4Li4CivguK3guLHguKrguKrguLjguIrguKUKK+C4reC4seC4quC4quC4uOC4mOC4suC4o+C4sgor4Lit4LiyCivguK3guYjguLIKK+C4reC5ieC4sgor4Lit4Liy4LiB4LijCivguK3guLLguIHguKPguYHguKrguJXguKHguJvguYwKK+C4reC4suC4geC4seC4h+C4guC4sgor4Lit4Liy4LiB4Lix4LibCivguK3guLLguIHguLHguJvguIHguLTguKPguLTguKLguLIKK+C4reC4suC4geC4seC4oeC4m+C4meC4sAor4Lit4Liy4LiB4Lix4Lih4Lib4LiwCivguK3guLLguIHguLLguKMKK+C4reC4suC4geC4suC4oy0KK+C4reC4suC4geC4suC4o+C4meC4suC4oQor4Lit4Liy4LiB4Liy4LioCivguK3guLLguIHguLLguKgtCivguK3guLLguIHguLLguKjguJjguLLguJXguLgKK+C4reC4suC4geC4suC4qOC4ouC4suC4mQor4Lit4Liy4LiB4Li54LilCivguK3guLLguYDguIHguLXguKLguKPguJPguYwKK+C4reC4suC4guC4ouC4suC4lQor4Lit4Liy4LiC4Lii4Liy4LiZCivguK3guLLguITguYDguJnguKLguYwKK+C4reC4suC4hOC4oQor4Lit4Liy4LiE4Lij4Lir4Liy4Lii4LiT4Li1CivguK3guLLguITguLHguJnguJXguLjguIEtCivguK3guLLguITguLHguJnguJXguLjguIHguKDguLHguJUKK+C4reC4suC4hOC4seC4meC4leC4uOC4geC4p+C4seC4leC4owor4Lit4Liy4LiE4Lix4LiZ4LiV4Li44LiB4LiwCivguK3guLLguITguLLguKMKK+C4reC4suC4hOC4suC4o+C4iuC4uOC4lAor4Lit4Liy4LiG4Liy4LiVCivguK3guLLguIbguLLguJXguJnguLAKK+C4reC4suC4huC4suC4leC4oeC4suC4lOC4o+C5ieC4suC4ogor4Lit4LmI4Liy4LiHCivguK3guYnguLLguIcKK+C4reC5iOC4suC4h+C5gOC4geC5h+C4muC4meC5ieC4swor4Lit4Liy4LiH4LiC4LiZ4Liy4LiHCivguK3guYnguLLguIfguKfguYnguLLguIcKK+C4reC5ieC4suC4h+C4reC4tOC4hwor4Lit4Liy4LiICivguK3guLLguIjguKEKK+C4reC4suC4iOC4oeC4mQor4Lit4Liy4LiI4Lij4Li04LiiLQor4Lit4Liy4LiI4Lij4Li04Lii4Lin4Lix4LiV4LijCivguK3guLLguIjguKPguLTguKLguKfguLLguJcKK+C4reC4suC4iOC4q+C4suC4jQor4Lit4Liy4LiI4Lit4LiHCivguK3guLLguIjguYDguK3guLfguYnguK3guKEKK+C4reC4suC4iOC4suC4lAor4Lit4Liy4LiI4Liy4LijCivguK3guLLguIjguLLguKMtCivguK3guLLguIjguLLguKPguKLguYwKK+C4reC4suC4iOC4suC4o+C4tQor4Lit4Liy4LiI4Li04LiTCivguK3guLLguIjguLTguJMtCivguK3guLLguIjguLTguJPguKrguKHguLLguIjguLLguKMKK+C4reC4suC5gOC4iOC4teC4ouC4mQor4Lit4Liy4LiK4LiN4Lix4Lib4LiV4Li0CivguK3guLLguIrguI3guLHguJvguJXguLTguYwKK+C4reC4suC4iuC4jeC4sgor4Lit4Liy4LiK4LiN4Liy4LiB4LijCivguK3guLLguIrguI3guLLguIHguKPguKPguKEKK+C4reC4suC4iuC4jeC4suC4geC4o+C4quC4h+C4hOC4o+C4suC4oQor4Lit4Liy4LiK4LiN4Liy4Lia4LiXCivguK3guLLguIrguI3guLLguJrguLHguJXguKMKK+C4reC4suC4iuC4jeC4suC4qOC4tuC4gQor4Lit4Liy4LiK4LiN4Liy4Liq4Li04LiX4LiY4Li04LmMCivguK3guLLguIrguKfguLAKK+C4reC4suC4iuC4sgor4Lit4Liy4LiK4Liy4LiZCivguK3guLLguIrguLLguJnguLQKK+C4reC4suC4iuC4suC5hOC4meC4ogor4Lit4Liy4LiK4Li14LieCivguK3guLLguIrguLXguKctCivguK3guLLguIrguLXguKfguIEKK+C4reC4suC4iuC4teC4p+C4qOC4tuC4geC4qeC4sgor4Lit4Liy4LiK4Li14Lin4LiwCivguK3guYnguLLguIvguYjguLIKK+C4reC4suC4jeC4sgor4Lit4Liy4LiN4Liy4Liq4Li04LiX4LiY4Li04LmMCivguK3guLLguI/guLLguJnguLIKK+C4reC4suC4k+C4seC4leC4tAor4Lit4Liy4LiT4Lix4LiV4Li04Liq4Lix4LiN4LiN4Liy4LiTCivguK3guLLguJPguLIKK+C4reC4suC4k+C4suC5gOC4geC4qeC4leC4owor4Lit4Liy4LiT4Liy4LmA4LiC4LiVCivguK3guLLguJPguLLguIjguLHguIHguKMKK+C4reC4suC4k+C4suC4meC4tOC4hOC4oQor4Lit4Liy4LiT4Liy4Lib4Lij4Liw4LiK4Liy4Lij4Liy4Lip4LiO4Lij4LmMCivguK3guLLguJPguLLguJvguKPguLDguYLguKLguIrguJnguYwKK+C4reC4suC4lAor4Lit4Liy4LiU4LmGCivguK3guLLguJTguLjguKMKK+C4reC4suC4lOC4uOC4peC4ouC5jAor4Lit4Liy4LiU4Li54LijCivguK3guLLguJTguLnguKXguKLguYwKK+C4reC4suC5gOC4lOC5iuC4sAor4Lit4Liy4LiV4LihLQor4Lit4Liy4LiV4Lih4LiX4Liy4LiZCivguK3guLLguJXguKHguKDguLLguJ4KK+C4reC4suC4leC4oeC4seC4mQor4Lit4Liy4LiV4Lih4LiyCivguK3guLLguJXguLjguKMKK+C4reC4suC4luC4o+C4o+C4nuC5jAor4Lit4Liy4LiW4Lij4Lij4Lie4LiT4LmMCivguK3guLLguJbguKPguKPguJ7guJPguLAKK+C4reC4suC4l+C4owor4Lit4Liy4LiX4Liy4LiV4LiyCivguK3guLLguJfguLLguJkKK+C4reC4suC4l+C4tAor4Lit4Liy4LiX4Li04LiV4LiiLQor4Lit4Liy4LiX4Li04LiV4Lii4LmMCivguK3guLLguJfguLTguJXguKLguKHguJPguJHguKUKK+C4reC4suC4l+C4tOC4leC4ouC4p+C4suC4owor4Lit4Liy4LiX4Li14LiZ4LieCivguK3guLLguJfguLXguJnguKcKK+C4reC4suC4l+C4tuC4gQor4Lit4Liy4LmA4LiX4LioCivguK3guLLguJjguKPguKPguKEKK+C4reC4suC4mOC4o+C4o+C4oeC5jAor4Lit4Liy4LiY4Lij4Lij4Lih4Li04LiBCivguK3guLLguJjguKPguKPguKHguLbguIEKK+C4reC4suC4mOC4suC4mQor4Lit4Liy4LiY4Liy4LijCivguK3guLLguJkKK+C4reC5iOC4suC4mQor4Lit4Liy4LiZ4LiBCivguK3guLLguJnguJkKK+C4reC4suC4meC4meC4l+C5jAor4Lit4Liy4LiZ4Lih4LmJ4LiyCivguK3guYjguLLguJnguYDguKXguYjguJkKK+C4reC4suC4meC4sAor4Lit4Liy4LiZ4Lix4LiZ4LiX4LmMCivguK3guLLguJnguLHguJnguJfguJnguLAKK+C4reC4suC4meC4seC4oQor4Lit4Liy4LiZ4Liy4Lib4Liy4LiZCivguK3guLLguJnguLLguJvguLLguJktCivguK3guLLguJnguLLguJvguLLguJnguLHguKrguKrguJXguLQKK+C4reC4suC4meC4swor4Lit4Liy4LiZ4Li04LiBCivguK3guLLguJnguLTguKrguIfguKrguYwKK+C4reC4suC4meC4uOC4oOC4suC4ngor4Lit4Liy4LiZ4Li44Lig4Liy4Lin4LiwCivguK3guLLguJoKK+C4reC4suC4muC5geC4lOC4lAor4Lit4Liy4Lia4LiZ4LmJ4Liz4Lij4LmJ4Lit4LiZ4Lih4Liy4LiB4LmI4Lit4LiZCivguK3guLLguJrguYDguKvguIfguLfguYjguK3guJXguYjguLLguIfguJnguYnguLMKK+C4reC4suC4muC5gOC4reC4tOC4mgor4Lit4Liy4Lia4Lix4LiV4Li0CivguK3guLLguJrguLHguJkKK+C4reC4suC4m+C4k+C4geC4sAor4Lit4Liy4Lib4LiT4LiwCivguK3guLLguJvguLAKK+C4reC4suC4m+C4suC4mS0KK+C4reC4suC4m+C4suC4meC4oOC4ueC4oeC4tAor4Lit4Liy4Lib4Liy4LiZ4Lio4Liy4Lil4LiyCivguK3guLLguJvguLLguJnguLAKK+C4reC4suC5guC4mwor4Lit4Liy4LmC4Lib4LiB4Liq4Li04LiTCivguK3guLLguYLguJvguJjguLLguJXguLgKK+C4reC4suC4nuC4seC4lAor4Lit4Liy4Lie4Lix4LiX4LiY4LmMCivguK3guLLguJ7guLHguJnguJjguYwKK+C4reC4suC4nuC4seC4meC4mOC4meC4sAor4Lit4Liy4Lie4Liy4LiYCivguK3guLLguJ7guLLguJjguLTguIEKK+C4reC4suC4nuC4suC4mOC4tuC4gQor4Lit4Liy4Lie4Li04LilCivguK3guLLguYDguJ7guKgKK+C4reC4suC4oOC4o+C4k+C5jAor4Lit4Liy4Lig4Lix4LieCivguK3guLLguKDguLHguKrguKPguLAKK+C4reC4suC4oOC4sgor4Lit4Liy4Lig4Liy4LiB4LijCivguK3guLLguKDguLLguKoKK+C4reC4suC4oQor4Lit4LmI4Liy4LihCivguK3guLLguKHguKXguIEKK+C4reC4suC4oeC4seC4ogor4Lit4Liy4Lih4Li04LipCivguK3guLLguKHguLTguKoKK+C4reC4suC4ogor4Lit4LmJ4Liy4LiiCivguK3guYnguLLguKLguILguLTguIEKK+C4reC5ieC4suC4ouC5gOC4guC5iQor4Lit4LmJ4Liy4Lii4LiH4Lix4LmI4LinCivguK3guYnguLLguKLguYDguIjguLXguYrguKLguKcKK+C4reC5ieC4suC4ouC4iuC4t+C5iOC4mQor4Lit4Liy4Lii4LiVCivguK3guLLguKLguJXguJnguLAKK+C4reC4suC4ouC4mQor4Lit4LmJ4Liy4Lii4Lia4LmJ4LiyCivguK3guYnguLLguKLguYDguJrguLXguYnguKLguKcKK+C4reC5ieC4suC4ouC4m+C5iuC4reC4gQor4Lit4Liy4Lii4LmA4Lir4LiZ4Li14Lii4LihCivguK3guYnguLLguKLguK3guYnguLLguKcKK+C4reC4suC4ouC4seC4lAor4Lit4Liy4Lii4Lix4LiVCivguK3guLLguKLguLHguJkKK+C4reC4suC4ouC4suC4iOC4meC4sAor4Lit4Liy4Lii4Liy4LiZCivguK3guLLguKLguLgKK+C4reC4suC4ouC4uOC4geC4leC4geC4sAor4Lit4Liy4Lii4Li44LiB4Lip4Lix4LiiCivguK3guLLguKLguLjguILguLHguKIKK+C4reC4suC4ouC4uOC4hOC4p+C4suC4oQor4Lit4Liy4Lii4Li44LiV4LiB4LiwCivguK3guLLguKLguLjguJgKK+C4reC4suC4ouC4uOC4oy0KK+C4reC4suC4ouC4uOC4o+C5geC4nuC4l+C4ouC5jAor4Lit4Liy4Lii4Li44Lij4LmA4Lin4LiKCivguK3guLLguKLguLjguKPguYDguKfguJcKK+C4reC4suC4ouC4uOC4o+C4qOC4suC4quC4leC4o+C5jAor4Lit4Liy4Lii4Li44Lin4Lix4LiS4LiZ4LiwCivguK3guLLguKLguLjguKkKK+C4reC4suC4o+C5jOC4geC4reC4mQor4Lit4Liy4Lij4LiU4Li1CivguK3guLLguKPguYzguJUKK+C4reC4suC4o+C4leC4tAor4Lit4Liy4Lij4LiX4Lij4LiyCivguK3guLLguKPguYzguKEKK+C4reC4suC4o+C4oeC4k+C5jAor4Lit4Liy4Lij4Lih4LiT4LmM4LiC4Lix4LiZCivguK3guLLguKPguKItCivguK3guLLguKPguKLguIrguJkKK+C4reC4suC4o+C4ouC4iuC4suC4leC4tAor4Lit4Liy4Lij4Lii4LiY4Lij4Lij4LihCivguK3guLLguKPguKLguJvguKPguLDguYDguJfguKgKK+C4reC4suC4o+C4ouC4sAor4Lit4Liy4Lij4Lii4Lix4LiZCivguK3guLLguKPguLAKK+C4reC4suC4o+C4seC4geC4guC4sgor4Lit4Liy4Lij4Lix4LiB4Lip4LmMCivguK3guLLguKPguLHguI0KK+C4reC4suC4o+C4seC4jeC4jeC4tOC4gQor4Lit4Liy4Lij4Lix4LiT4Lii4LmMCivguK3guLLguKPguLHguJPguKLguIHguLAKK+C4reC4suC4o+C4seC4leC4tAor4Lit4Liy4Lij4Lix4Lih4LigLQor4Lit4Liy4Lij4Lix4Lih4Lig4LmMCivguK3guLLguKPguLHguKHguKDguIHguJbguLIKK+C4reC4suC4o+C4seC4oeC4oOC4muC4lwor4Lit4Liy4Lij4Liy4LiY4LiZ4LmMCivguK3guLLguKPguLLguJjguJnguLIKK+C4reC4suC4o+C4suC4mOC4meC4suC4mOC4o+C4o+C4oQor4Lit4Liy4Lij4Liy4LiY4LiZ4Liy4Lie4Lij4Liw4Lib4Lij4Li04LiV4LijCivguK3guLLguKPguLLguJjguJnguLLguKjguLXguKUKK+C4reC4suC4o+C4suC4oQor4Lit4Liy4Lij4Liy4Lih4Li04LiBCivguK3guLLguKPguLUKK+C4reC4suC4o+C4teC4reC4suC4o+C4reC4mgor4Lit4Liy4Lij4Li44LihCivguK3guLLguKXguJvguJnguYwKK+C4reC4suC4peC4m+C4meC4sAor4Lit4Liy4Lil4Liw4Lin4Liy4LiUCivguK3guLLguKXguLHguIHguKnguJPguYwKK+C4reC4suC4peC4seC4ogor4Lit4Liy4Lil4Lix4Lii4Lit4Liy4Lin4Lij4LiT4LmMCivguK3guLLguKXguLHguKcKK+C4reC4suC4peC4tAor4Lit4Liy4Lil4Li1CivguK3guLLguYLguKXguIEKK+C4reC4suC5guC4peC4gS0KK+C4reC4suC5guC4peC4geC4geC4quC4tOC4kwor4Lit4Liy4LmC4Lil4LiB4LiZ4LiwCivguK3guLLguKcKK+C4reC5iOC4suC4pwor4Lit4LmJ4Liy4LinCivguK3guLLguKfguKPguJPguYwKK+C4reC4suC4p+C4seC4iuC4meC4suC4geC4suC4owor4Lit4Liy4Lin4Lix4LilCivguK3guLLguKfguLLguKoKK+C4reC4suC4p+C4suC4quC4tOC4gQor4Lit4Liy4Lin4Liy4LirLQor4Lit4Liy4Lin4Liy4Lir4LiwCivguK3guLLguKfguLTguKUKK+C4reC4suC4p+C4uOC4lQor4Lit4Liy4Lin4Li44LiYCivguK3guLLguKfguLjguYLguKoKK+C4reC4suC5gOC4p+C4hAor4Lit4Liy4LmA4Lin4LioCivguK3guLLguKjguKPguKEKK+C4reC4suC4qOC4o+C4oeC4muC4lwor4Lit4Liy4Lio4LmA4Lil4Lip4LiyCivguK3guLLguKjguLHguKIKK+C4reC4suC4qOC4seC4ouC4l+C4teC5iAor4Lit4Liy4Lio4Lix4Lii4Lil4Liz4LmB4LiC4LmJ4LiH4LiV4Lix4Lin4LmA4Lit4LiHCivguK3guLLguKjguLTguKMtCivguK3guLLguKjguLTguKPguJ7guIjguJnguYwKK+C4reC4suC4qOC4tOC4o+C4nuC4suC4lwor4Lit4Liy4Lio4Li04Lij4Lie4Li04LipCivguK3guLLguKjguLTguKPguKfguIjguJnguLAKK+C4reC4suC4qOC4tOC4o+C4p+C4suC4lwor4Lit4Liy4Lio4Li04Lij4Lin4Li04LipCivguK3guLLguKjguLXguKPguJ7guLTguKkKK+C4reC4suC4qOC4teC4o+C4p+C4tOC4qQor4Lit4Liy4Lio4Li4CivguK3guLLguYDguKjguLXguKLguKMtCivguK3guLLguYDguKjguLXguKLguKPguJ7guIjguJnguYwKK+C4reC4suC5gOC4qOC4teC4ouC4o+C4nuC4suC4lwor4Lit4Liy4LmA4Lio4Li14Lii4Lij4Lin4LiI4LiZ4LiwCivguK3guLLguYDguKjguLXguKLguKPguKfguLLguJcKK+C4reC4suC4qeC4suC4kgor4Lit4Liy4Liq4LiZCivguK3guLLguKrguJnguYwKK+C4reC4suC4quC4meC5jOC4quC4h+C4huC5jAor4Lit4Liy4Liq4LiZ4LiwCivguK3guLLguKrguLHguI0KK+C4reC4suC4quC4seC4leC4ouC5jAor4Lit4Liy4Liq4Lix4LiZ4LiZ4LiwCivguK3guLLguKrguLIKK+C4reC4suC4quC4suC4rOC4qy0KK+C4reC4suC4quC4suC4rOC4q+C5jAor4Lit4Liy4Liq4Liy4Lis4Lir4Lia4Li54LiK4LiyCivguK3guLLguKrguLTguI3guIjguYwKK+C4reC4suC4quC4tOC4mQor4Lit4Liy4Liq4Li54LijCivguK3guLLguYHguKrguLAKK+C4reC4suC4q+C4lQor4Lit4Liy4Lir4LiZ4Li1CivguK3guLLguKvguJnguLkKK+C4reC4suC4q+C4oQor4Lit4Liy4Lir4LijCivguK3guLLguKvguKPguLHguJTguIHguLHguJTguJXguLTguIHguLIKK+C4reC4suC4q+C4o+C4seC4mgor4Lit4Liy4Lir4Lil4Lix4LiB4Lit4Liy4LmA4Lir4Lil4Li34LmI4LitCivguK3guLLguKvguLLguKMKK+C4reC4suC4q+C4suC4o+C4p+C5iOC4suC4hwor4Lit4Liy4Lir4Li44LiU4Li1CivguK3guLLguKzguKvguIEKK+C4reC4suC4rOC4suC4o+C4tOC4gQor4Lit4LmI4Liy4Lit4LiH4LiE4LmMCivguK3guLMKK+C4reC5iOC4swor4Lit4Liz4LmB4LiU4LiHCivguK3guLPguJnguJQKK+C4reC4s+C4meC4meC4leC5jAor4Lit4Liz4LiZ4Lij4Lij4LiGCivguK3guLPguJnguKfguKIKK+C4reC4s+C4meC4suC4iAor4Lit4Liz4LiZ4Liy4LiI4Lia4Liy4LiV4Lij4LmD4Lir4LiN4LmICivguK3guLPguJnguLLguJYKK+C4reC4s+C4meC4tOC4kAor4Lit4Liz4LiZ4Li04Lip4LiQ4LmMCivguK3guLPguJvguKXguLHguIcKK+C4reC4s+C4nuC4mQor4Lit4Liz4Lie4Lij4Liy4LiHCivguK3guLPguJ7guLDguJnguLMKK+C4reC4s+C4nuC4seC4mQor4Lit4Liz4Lie4Lix4LiZ4LiC4Li14LmJ4Lib4Lil4LiyCivguK3guLPguJ7guLHguJnguJfguK3guIcKK+C4reC4s+C5hOC4ngor4Lit4Liz4LmA4Lig4LitCivguK3guLPguYDguKDguK3guYPguIgKK+C4reC4s+C4oeC4owor4Lit4Liz4Lih4Lik4LiE4LmC4LiK4LiECivguK3guLPguKHguKTguJUKK+C4reC4s+C4oeC4q+C4tOC4lQor4Lit4Liz4Lih4Liy4LiV4Lii4LmMCivguK3guLPguKLguKfguJkKK+C4reC4s+C4o+C4uOC4hwor4Lit4Liz4Lil4LiyCivguK3guLPguK3guKfguKEKK+C4reC5ieC4s+C4reC4tuC5ieC4hwor4Lit4Li04LiBCivguK3guLTguIcKK+C4reC4tOC4h+C4hOC5jAor4Lit4Li04LiH4Lit4LijCivguK3guLTguIfguYHguK3guJoKK+C4reC4tOC4iOC4ieC4sgor4Lit4Li04LiJ4Lix4LiZCivguK3guLTguIrguKLguLIKK+C4reC4tOC4j+C4kC0KK+C4reC4tOC4j+C4kOC4suC4o+C4oeC4k+C5jAor4Lit4Li04LiQLQor4Lit4Li04LiQ4Lic4LilCivguK3guLTguJMKK+C4reC4tOC4lAor4Lit4Li04LiU4LmC4Lij4LiiCivguK3guLTguJTguKvguJnguLLguKPguLDguK3guLLguYPguIgKK+C4reC4tOC4lOC4reC4reC4lAor4Lit4Li04LiU4LmGIOC4reC4reC4lOC5hgor4Lit4Li04LiU4LmA4Lit4Li34LmJ4Lit4LiZCivguK3guLTguJTguYYg4LmA4Lit4Li34LmJ4Lit4LiZ4LmGCivguK3guLTguJXguJbguLUKK+C4reC4tOC4leC4luC4teC4peC4tOC4h+C4hOC5jAor4Lit4Li04LiV4LmA4LiX4Lij4Li14Lii4LihCivguK3guLTguJXguYDguJfguK3guKPguYzguYDguJrguLXguKLguKEKK+C4reC4tOC4l+C4mOC4tAor4Lit4Li04LiX4LiY4Li0LQor4Lit4Li04LiX4LiY4Li04Lib4Liy4LiP4Li04Lir4Liy4Lij4Li04Lii4LmMCivguK3guLTguJfguJjguLTguJ7guKUKK+C4reC4tOC4l+C4mOC4tOC4pOC4l+C4mOC4tOC5jAor4Lit4Li04LiZCivguK3guLTguJnguIvguLnguKXguLTguJkKK+C4reC4tOC4meC5gOC4lOC4teC4ogor4Lit4Li04LiZ4LmA4LiU4Li14Lii4LiZ4LmB4LiU4LiHCivguK3guLTguJnguYDguJTguLXguKLguKEKK+C4reC4tOC4meC4l+C5jAor4Lit4Li04LiZ4LiX4LiC4Li14LilCivguK3guLTguJnguJfguJnguLTguKUKK+C4reC4tOC4meC4l+C4meC4tOC4peC4meC5ieC4swor4Lit4Li04LiZ4LiX4Lic4Lil4Lix4LihCivguK3guLTguJnguJfguKMtCivguK3guLTguJnguJfguKPguYwKK+C4reC4tOC4meC4l+C4o+C4mOC4meC4uQor4Lit4Li04LiZ4LiX4Lij4Lin4LiH4Lio4LmMCivguK3guLTguJnguJfguKPguKfguLTguYDguIrguLXguKLguKMKK+C4reC4tOC4meC4l+C4o+C4qOC4seC4geC4lOC4tOC5jAor4Lit4Li04LiZ4LiX4Lij4Liy4LiT4Li1CivguK3guLTguJnguJfguKPguLLguKDguLTguYDguKnguIEKK+C4reC4tOC4meC4l+C4o+C4suC4ouC4uOC4mAor4Lit4Li04LiZ4LiX4Lij4Li1CivguK3guLTguJnguJfguKPguLXguKItCivguK3guLTguJnguJfguKPguLXguKLguYwKK+C4reC4tOC4meC4l+C4o+C4teC4ouC5guC4hOC4iOC4owor4Lit4Li04LiZ4LiX4Lij4Li14Lii4LiN4Liy4LiTCivguK3guLTguJnguJfguKPguLXguKLguKrguLHguIfguKfguKMKK+C4reC4tOC4meC4l+C4teC4p+C4owor4Lit4Li04LiZ4LiX4Li4CivguK3guLTguJnguJjguJnguYwKK+C4reC4tOC4meC4n+C4o+C4suC5gOC4o+C4lAor4Lit4Li04LiZ4Lix4LiHCivguK3guLTguJnguLHguIfguILguLHguIfguILguK3guJoKK+C4reC4tOC5iOC4oQor4Lit4Li04LmI4Lih4LmD4LiICivguK3guLTguYjguKHguJXguLHguKcKK+C4reC4tOC5iOC4oeC4q+C4meC4swor4Lit4Li04LmI4Lih4Lir4Lih4Li14Lie4Li14Lih4Lix4LiZCivguK3guLTguYjguKHguK3guIHguK3guLTguYjguKHguYPguIgKK+C4reC4tOC5iOC4oeC5gOC4reC4tOC4mgor4Lit4Li04Lih4Lix4Lil4LiK4Lix4LiZCivguK3guLTguKPguLTguYDguJTguLXguKLguKEKK+C4reC4tOC4o+C4tOC4ouC4sgor4Lit4Li04Lij4Li04Lii4Liy4Lia4LiWCivguK3guLTguKPguLjguJ7guYDguJ7guJcKK+C4reC4tOC4peC4uQor4Lit4Li04LmA4Lil4LmH4LiB4LiV4Lij4Lit4LiZCivguK3guLTguYDguKXguYfguIHguJfguKPguK3guJnguLTguIHguKrguYwKK+C4reC4tOC5gOC4peC5h+C4geC5guC4l+C4mQor4Lit4Li04Lio4LijCivguK3guLTguKjguKfguKMKK+C4reC4tOC4qeC4j+C5jAor4Lit4Li04Lip4LiP4Li1CivguK3guLTguKoKK+C4reC4tOC4quC4leC4o+C4tQor4Lit4Li04Liq4LijLQor4Lit4Li04Liq4Lij4Lig4Liy4LieCivguK3guLTguKrguKPguLAKK+C4reC4tOC4quC4o+C4tOC4oi0KK+C4reC4tOC4quC4o+C4tOC4ouC4ouC4qAor4Lit4Li04Liq4Lij4Li04Lii4LiwCivguK3guLTguKrguKPguLTguKLguLLguKDguKPguJPguYwKK+C4reC4tOC4quC4peC4suC4oQor4Lit4Li04Liq4Liq4LiyCivguK3guLTguKrguLHguJXguKPguLUKK+C4reC4tOC4quC4tAor4Lit4Li04Liq4Li1CivguK3guLTguKvguKHguYjguLLguKEKK+C4reC4tOC4q+C4peC4seC4geC4reC4tOC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Li1CivguK3guLXguYgKK+C4reC4teC5iQor4Lit4Li14LmKCivguK3guLXguYsKK+C4reC4teC4gQor4Lit4Li14LiB4LmJ4LitCivguK3guLXguIHguYvguK3guKIKK+C4reC4teC4geC4sgor4Lit4Li14LiB4LmL4LiyCivguK3guLXguYDguIHguYnguIcKK+C4reC4teC5gOC4geC4o+C5h+C4hwor4Lit4Li14LmA4LiB4LmJ4Lit4Li14LiB4Lix4LiHCivguK3guLXguYHguIEKK+C4reC4teC5geC4geC5iAor4Lit4Li14LmB4LiB4LmJCivguK3guLXguYLguIHguYnguIcKK+C4reC4teC5guC4geC5iuC4sAor4Lit4Li14LiE4Lin4LmI4Liz4Lit4Li14Lir4LiH4Liy4LiiCivguK3guLXguIjguLnguYkKK+C4reC4teC4ieC4seC4mQor4Lit4Li14LiJ4Li44Lii4Lit4Li14LmB4LiJ4LiBCivguK3guLXguIrguLjguIEKK+C4reC4teC5iuC4lAor4Lit4Li14LiU4Liz4Lit4Li14LmB4LiU4LiHCivguK3guLXguJXguLLguKUKK+C4reC4teC5gOC4leC5ieC4rQor4Lit4Li14LmC4LiV4LmJCivguK3guLXguJbguYjguLLguIcKK+C4reC4teC4l+C4uOC4gQor4Lit4Li14LiX4Li44LiaCivguK3guLXguYDguJfguK3guKPguYwKK+C4reC4teC4meC4uOC4h+C4leC4uOC4h+C4meC4seC4hwor4Lit4Li14LiZ4Li54LiZCivguK3guLXguYLguJkKK+C4reC4teC5guC4meC4h+C5guC4leC4h+C5gOC4meC4hwor4Lit4Li14Lia4Li24LmJ4LiHCivguK3guLXguYDguJvguYfguJQKK+C4reC4teC5gOC4m+C5ieC4sgor4Lit4Li14LmB4Lib4LiwCivguK3guLXguYLguJvguIcKK+C4reC4teC5guC4m+C4h+C4hOC4o+C4reC4mgor4Lit4Li14LmA4Lie4LiyCivguK3guLXguKHguLkKK+C4reC4teC4o+C4oQor4Lit4Li14Lij4Li44LmJ4LiHCivguK3guLXguKXguK3guIcKK+C4reC4teC4peC5iOC4reC4ouC4m+C5iOC4reC4ouC5geC4rQor4Lit4Li14Lil4Li44LmJ4LihCivguK3guLXguKXguLjguYjguKLguInguLjguKLguYHguInguIEKK+C4reC4teC5gOC4peC4tOC5ieC4hwor4Lit4Li14LmB4Lil4LmI4LiHCivguK3guLXguYLguKXguIcKK+C4reC4teC4qAor4Lit4Li14Lio4Lin4LijCivguK3guLXguKoKK+C4reC4teC4quC4sgor4Lit4Li14Liq4Liy4LiZCivguK3guLXguKrguLjguIHguK3guLXguYPguKoKK+C4reC4teC4q+C4meC5h+C4reC4h+C4reC4teC5geC4q+C4meC5h+C4hwor4Lit4Li14Lir4Lij4Lit4LiaCivguK3guLXguKvguKPguK3guJrguYDguJTguLXguKLguKfguIHguLHguJkKK+C4reC4teC4q+C4peC4seC4geC4reC4teC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Li14Lir4Lil4Lix4LiU4LiW4Lix4LiU4LiX4LiyCivguK3guLXguKvguKXguLUKK+C4reC4teC4q+C4peC4uOC4geC4guC4peC4uOC4geC4guC4peC4seC4gQor4Lit4Li14Lir4Lil4Li44LiB4LiC4Lil4Li44LiB4LiC4Lil4Li44LmI4LiiCivguK3guLXguKvguKXguLjguKLguInguLjguKLguYHguInguIEKK+C4reC4teC5gOC4q+C5h+C4mQor4Lit4Li14LmA4Lir4LiZ4LmH4LiaCivguK3guLXguYDguKvguJnguLXguKLguKcKK+C4reC4teC5gOC4q+C4peC4sOC5gOC4guC4peC4sOC4guC4peC4sAor4Lit4Li14LmA4Lir4Lil4Liw4LmA4LiC4Liw4LiC4LiwCivguK3guLXguYLguKvguJnguYjguK3guLXguYDguKvguJnguYgKK+C4reC4teC5guC4q+C4peC4geC5guC4guC4peC4geC5gOC4guC4peC4gQor4Lit4Li14LmL4Lit4LmL4LitCivguK3guLXguYHguK3guYjguJkKK+C4reC4tgor4Lit4Li24LiBCivguK3guLbguYrguIEKK+C4reC4tuC4geC4l+C4tuC4gQor4Lit4Li24LiB4Lit4Lix4LiBCivguK3guLbguIcKK+C4reC4tuC5iOC4hwor4Lit4Li24LmJ4LiHCivguK3guLbguIfguITguLDguJnguLbguIcKK+C4reC4tuC4h+C4oeC4teC5iAor4Lit4Li24LmI4LiH4Lii4Liy4LiHCivguK3guLbguYjguIfguYPguKvguI3guYgKK+C4reC4tuC4h+C4reC4pQor4Lit4Li24LmI4LiH4Lit4LmI4Liy4LiHCivguK3guLbguJQKK+C4reC4tuC4lOC5g+C4iAor4Lit4Li24LiU4LiV4Liw4Lib4Li34LitCivguK3guLbguYnguJTguJfguLbguYjguJQKK+C4reC4tuC4lOC4reC4seC4lAor4Lit4Li24LiZCivguK3guLfguJQKK+C4reC4t+C4lOC4reC4suC4lAor4Lit4Li34LmI4LiZCivguK3guLfguYnguJkKK+C4reC4t+C4rQor4Lit4Li34LmJ4LitCivguK3guLfguYnguK3guInguLLguKcKK+C4reC4t+C5ieC4reC4reC4tuC4hwor4Lit4Li4CivguK3guLjguIEKK+C4reC4uOC4geC4geC4sgor4Lit4Li44LiB4LiB4Liy4Lia4Liy4LiVCivguK3guLjguIHguInguIHguKPguKPguIjguYwKK+C4reC4uOC4geC4pOC4qeC4j+C5jAor4Lit4Li44LiB4Lil4LiyCivguK3guLjguIHguKXguLLguJrguLLguJUKK+C4reC4uOC4geC4reC4suC4iAor4Lit4Li44LiECivguK3guLjguITguKMKK+C4reC4uOC4hOC4qy0KK+C4reC4uOC4hOC4q+C4meC4tOC4oeC4tOC4lQor4Lit4Li44LiE4Lir4LiwCivguK3guLjguYLguIbguKkKK+C4reC4uOC5ieC4hwor4Lit4Li44LiICivguK3guLjguIjguIjguLLguKMtCivguK3guLjguIjguIjguLLguKPguKHguKPguKPguIQKK+C4reC4uOC4iOC4iOC4suC4o+C4sAor4Lit4Li44LiI4LiJ4Li4CivguK3guLjguIjguYDguInguJcKK+C4reC4uOC4iOC5gOC4ieC4ly0KK+C4reC4uOC4iOC5gOC4ieC4l+C4l+C4tOC4kOC4tAor4Lit4Li44LiI4Liy4LiUCivguK3guLjguIrguLgKK+C4reC4uOC4j+C4kOC4suC4geC4suC4owor4Lit4Li44LiT4LirLQor4Lit4Li44LiT4Lir4Lig4Li54Lih4Li0CivguK3guLjguJPguKvguLAKK+C4reC4uOC4k+C4q+C4suC4geC4suC4owor4Lit4Li44LiT4Lir4Li04LiqCivguK3guLjguJPguLIKK+C4reC4uOC4k+C4suC4meC4suC4oOC4tQor4Lit4Li44LiT4Liy4LmC4Lil4LihCivguK3guLjguJQKK+C4reC4uOC4lOC5gOC4leC4sgor4Lit4Li44LiU4LihCivguK3guLjguJTguKEtCivguK3guLjguJTguKHguIHguLLguKPguJPguYwKK+C4reC4uOC4lOC4oeC4hOC4leC4tAor4Lit4Li44LiU4Lih4Lio4Li24LiB4Lip4LiyCivguK3guLjguJTguKMKK+C4reC4uOC4lOC4q+C4meC4uOC4mQor4Lit4Li44LiU4Lit4Li54LmJCivguK3guLjguJTguLLguIHguLHguJkKK+C4reC4uOC4leC4lOC4oQor4Lit4Li44LiV4LiU4LijCivguK3guLjguJXguJXguKHguLAKK+C4reC4uOC4leC4leC4o+C4nOC4peC4hOC4uOC4meC4tQor4Lit4Li44LiV4LiV4Lij4Lig4Lix4LiX4Lij4Lia4LiXCivguK3guLjguJXguJXguKPguK3guLLguKnguLLguJIKK+C4reC4uOC4leC4leC4o+C4suC4quC4suC4rOC4q+C4sAor4Lit4Li44LiV4LiV4Liw4Lig4Lix4LiX4LiX4LiwCivguK3guLjguJXguJrguKUKK+C4reC4uOC4leC4nuC4tOC4lAor4Lit4Li44LiV4Lie4Li04LiU4Lic4Li1CivguK3guLjguJXguKEtCivguK3guLjguJXguKHguKDguLLguJ4KK+C4reC4uOC4leC4oeC4seC4leC4luC5jAor4Lit4Li44LiV4Lih4Liy4LiH4LiE4LmMCivguK3guLjguJXguKMtCivguK3guLjguJXguKPguIHguLjguKPguLgKK+C4reC4uOC4leC4o+C4geC4uOC4o+C4uQor4Lit4Li44LiV4Lij4LiZ4Li04LiB4Liy4LiiCivguK3guLjguJXguKPguJzguKXguITguLjguJnguLUKK+C4reC4uOC4leC4o+C4oOC4seC4l+C4o+C4muC4lwor4Lit4Li44LiV4Lij4LiyCivguK3guLjguJXguKPguLLguKDguLTguKHguLjguIIKK+C4reC4uOC4leC4o+C4suC4p+C4seC4jwor4Lit4Li44LiV4Lij4Liy4Lip4Liy4LiSCivguK3guLjguJXguKPguLLguKrguIfguITguYwKK+C4reC4uOC4leC4o+C4tAor4Lit4Li44LiV4Lij4Li04Lih4LiZ4Li44Liq4LiY4Lij4Lij4LihCivguK3guLjguJXguKXguLjguJQKK+C4reC4uOC4leC4quC4suC4qy0KK+C4reC4uOC4leC4quC5iOC4suC4q+C5jAor4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4LihCivguK3guLjguJXguKrguLLguKvguIHguKPguKPguKHguKjguLTguKXguJvguYwKK+C4reC4uOC4leC4quC4suC4q+C4sAor4Lit4Li44LiV4Li4CivguK3guLjguJXguLjguJnguLTguKLguKHguKfguLTguJfguKLguLIKK+C4reC4uOC4ly0KK+C4reC4uOC4l+C4gQor4Lit4Li44LiX4LiBLQor4Lit4Li44LiX4LiB4LiY4Liy4LijCivguK3guLjguJfguIHguJjguLLguKPguLIKK+C4reC4uOC4l+C4geC4oOC4seC4ogor4Lit4Li44LiX4LiB4Lin4Li04LiX4Lii4LiyCivguK3guLjguJfguIHguKjguLLguKrguJXguKPguYwKK+C4reC4uOC4l+C4l+C4suC4oQor4Lit4Li44LiX4LiY4Lij4LiT4LmMCivguK3guLjguJfguJjguLHguIgKK+C4reC4uOC4l+C4muC4suC4leC4owor4Lit4Li44LiX4Lia4Liy4LiZCivguK3guLjguJfguJ7guLTguJnguJfguLjguYwKK+C4reC4uOC4l+C4ouC4suC4mQor4Lit4Li44LiX4Lii4Liy4LiZ4LmB4Lir4LmI4LiH4LiK4Liy4LiV4Li0CivguK3guLjguJfguKMKK+C4reC4uOC4l+C4o+C4tOC4ouC4sAor4Lit4Li44LiX4Lil4Li44LihCivguK3guLjguJfguLHguIoKK+C4reC4uOC4l+C4seC4ogor4Lit4Li44LiX4Liy4LiZCivguK3guLjguJfguLLguKMKK+C4reC4uOC4l+C4suC4q+C4o+C4k+C5jAor4Lit4Li44LiX4Li04LioCivguK3guLjguJfguLjguKHguJ7guKMKK+C4reC4uOC5gOC4l+C4qAor4Lit4Li44LiY4Lix4LiICivguK3guLjguYjguJkKK+C4reC4uOC5iOC4meC5gOC4hOC4o+C4t+C5iOC4reC4hwor4Lit4Li44LmI4LiZ4LmD4LiICivguK3guLjguYjguJnguKvguJnguLLguJ3guLLguITguLHguYjguIcKK+C4reC4uOC4meC4suC4geC4seC4mQor4Lit4Li44LiaCivguK3guLjguJrguKUKK+C4reC4uOC4muC4reC4tOC4mgor4Lit4Li44Lia4LiwCivguK3guLjguJrguYrguLAKK+C4reC4uOC4muC4seC4leC4tAor4Lit4Li44Lia4Lix4LiV4Li0LQor4Lit4Li44Lia4Lix4LiV4Li04Lig4Lix4LiiCivguK3guLjguJrguLHguJXguLTguYDguKvguJXguLgKK+C4reC4uOC4muC4suC4lwor4Lit4Li44Lia4Liy4LiX4Lin4LmMCivguK3guLjguJrguLLguKIKK+C4reC4uOC4muC4suC4quC4gQor4Lit4Li44Lia4Liy4Liq4Li04LiB4LiyCivguK3guLjguYDguJrguIHguILguLIKK+C4reC4uOC5guC4muC4quC4lgor4Lit4Li44LmC4Lia4Liq4LiW4LiB4Lij4Lij4LihCivguK3guLjguYLguJrguKrguJbguKvguLHguJXguJbguLUKK+C4reC4uOC4mwor4Lit4Li44Lib4LiB4Lij4LiT4LmMCivguK3guLjguJvguIHguKPguKEKK+C4reC4uOC4m+C4geC4suC4oy0KK+C4reC4uOC4m+C4geC4suC4o+C4sAor4Lit4Li44Lib4LiB4Liy4Lij4Li1CivguK3guLjguJvguIHguLTguJPguJPguLAKK+C4reC4uOC4m+C4geC4tOC5gOC4peC4qgor4Lit4Li44Lib4LiI4Liy4LijCivguK3guLjguJvguJbguLHguKHguKDguYwKK+C4reC4uOC4m+C4luC4seC4oeC4oOC4gQor4Lit4Li44Lib4LiX4LihCivguK3guLjguJvguJfguLnguJUKK+C4reC4uOC4m+C5gOC4l+C4qAor4Lit4Li44Lib4LmA4LiX4LmI4Lir4LmMCivguK3guLjguJvguJjguLQKK+C4reC4uOC4m+C4meC4seC4ogor4Lit4Li44Lib4LiZ4Li04LiB4LiC4Li04LiVCivguK3guLjguJvguJnguLTguIHguKnguLTguJUKK+C4reC4uOC4m+C4meC4tOC4qeC4seC4lwor4Lit4Li44Lib4LiZ4Li04Liq4Lix4LiiCivguK3guLjguJvguJrguKUKK+C4reC4uOC4m+C4muC4seC4leC4tAor4Lit4Li44Lib4Lia4Liy4LiXCivguK3guLjguJvguJvguLLguJXguLTguIEtCivguK3guLjguJvguJ7guLHguJfguJjguYwKK+C4reC4uOC4m+C4nuC4seC4meC4mOC5jAor4Lit4Li44Lib4LmC4Lig4LiECivguK3guLjguJvguKHguLIKK+C4reC4uOC4m+C4oeC4suC4mQor4Lit4Li44Lib4Lih4Liy4LmC4Lin4Lir4Liy4LijCivguK3guLjguJvguKHguLLguK3guLjguJvguYTguKHguKIKK+C4reC4uOC4m+C5hOC4oeC4ogor4Lit4Li44Lib4Lii4Li44Lin4Lij4Liy4LiKCivguK3guLjguJvguYLguKLguIQKK+C4reC4uOC4m+C5guC4ouC4hOC4muC4uOC4o+C4nuC4muC4lwor4Lit4Li44Lib4Lij4Liy4LiB4LijCivguK3guLjguJvguKPguLLguITguLIKK+C4reC4uOC4m+C4o+C4suC4igor4Lit4Li44Lib4Lij4Li0CivguK3guLjguJvguKPguLTguIjguKMKK+C4reC4uOC4m+C4o+C4tOC4nuC4uOC4l+C4mOC4tAor4Lit4Li44Lib4Lij4Li04Lig4Liy4LiECivguK3guLjguJvguKPguLTguKDguLLguJ4KK+C4reC4uOC4m+C4o+C4tOC4oS0KK+C4reC4uOC4m+C4o+C4tOC4oeC4m+C4o+C4tOC4ouC4suC4ogor4Lit4Li44Lib4Lij4Li04Lin4Lix4Liq4LiZ4LmMCivguK3guLjguJvguKPguLTguKrguLHguIgKK+C4reC4uOC4m+C5guC4peC4geC4meC5jAor4Lit4Li44Lib4Liq4Lih4Lia4LiXCivguK3guLjguJvguKrguKHguJrguJfguIHguKPguKPguKEKK+C4reC4uOC4m+C4quC4oeC4muC4seC4mQor4Lit4Li44Lib4Liq4Lij4Lij4LiECivguK3guLjguJvguKrguLHguKHguJrguLHguJkKK+C4reC4uOC4m+C4quC4seC4oeC4m+C4l+C4sgor4Lit4Li44Lib4Liq4Lix4Lih4Lib4LiX4Liy4LmA4Lib4LiB4LiC4LmMCivguK3guLjguJvguKrguLHguKHguJvguJfguLLguYDguJvguIHguKnguYwKK+C4reC4uOC4m+C4ruC4suC4lAor4Lit4Li44Lib4Lix4LiK4LiM4Liy4LiiLQor4Lit4Li44Lib4Lix4LiK4LiM4Liy4Lii4LmMCivguK3guLjguJvguLHguIrguIzguLLguKLguKfguLHguJXguKMKK+C4reC4uOC4m+C4seC4iuC4jOC4suC4ouC4sAor4Lit4Li44Lib4Lix4LiP4LiQ4Liy4LiBCivguK3guLjguJvguLHguI/guJDguLLguJnguLAKK+C4reC4uOC4m+C4seC4l+C4o+C4ngor4Lit4Li44Lib4Lix4LiX4LinLQor4Lit4Li44Lib4Lix4LiX4Lin4LiwCivguK3guLjguJvguLHguJfguKfguLHguJnguJXguKPguLLguKIKK+C4reC4uOC4m+C4suC4ky0KK+C4reC4uOC4m+C4suC4l+C4suC4mQor4Lit4Li44Lib4Liy4LiY4Lii4Liy4LiiCivguK3guLjguJvguLLguKvguJnguLIKK+C4reC4uOC4oOC4seC4ogor4Lit4Li44LmJ4LihCivguK3guLjguKHguIfguITguYwKK+C4reC4uOC5ieC4oeC4iuC4uQor4Lit4Li44LmJ4Lih4LiX4LmJ4Lit4LiHCivguK3guLjguYnguKHguJnguYnguLMKK+C4reC4uOC5ieC4oeC4quC4oQor4Lit4Li44LmC4Lih4LiH4LiE4LmMCivguK3guLjguKIKK+C4reC4uOC5iOC4ogor4Lit4Li44LmJ4LiiCivguK3guLjguYrguKIKK+C4reC4uOC4ouC4ouC4suC4mQor4Lit4Li44Lii4Lii4Liy4LihCivguK3guLjguYnguKLguKLguLjguYnguKIKK+C4reC4uOC4ouC5guC4ouC4hAor4Lit4Li44Lii4Lir4LiZ4LmI4LiyCivguK3guLjguYjguKLguKvguJnguYjguLIKK+C4reC4uOC5ieC4ouC4reC5ieC4suC4ogor4Lit4Li44LijLQor4Lit4Li44Lij4LiECivguK3guLjguKPguYDguITguJnguJfguKPguYwKK+C4reC4uOC4o+C4kwor4Lit4Li44Lij4Lie4Li1CivguK3guLjguKPguKoKK+C4reC4uOC4o+C4sAor4Lit4Li44Lij4Lix4LiH4Lit4Li44LiV4Lix4LiHCivguK3guLjguKPguLHguIjguInguJfguLAKK+C4reC4uOC4o+C4seC4iOC4ieC4seC4lwor4Lit4Li44Lij4LiyCivguK3guLjguKPguLgKK+C4reC4uOC5hOC4owor4Lit4Li44Lil4Lib4LiZ4LiwCivguK3guLjguKXguYLguKXguIgKK+C4reC4uOC4peC5guC4peC4peC4sAor4Lit4Li44Lil4Liy4Lih4LiBCivguK3guLjguKXguLTguJQKK+C4reC4uOC4peC4ueC4gQor4Lit4Li44LmC4Lil4LiBCivguK3guLjguYHguKfguYkKK+C4reC4uOC4qeC4ky0KK+C4reC4uOC4qeC4k+C4geC4owor4Lit4Li44Lip4LiT4LiB4Liy4LilCivguK3guLjguKnguJPguKPguLHguKjguKHguLUKK+C4reC4uOC4qeC4k+C4o+C4ueC4iOC4tQor4Lit4Li44Lip4LiT4Liy4LiB4Liy4LijCivguK3guLjguKnguJPguLXguKnguYwKK+C4reC4uOC4qeC4oQor4Lit4Li44Lip4Lih4Lix4LiZCivguK3guLjguKnguLIKK+C4reC4uOC4qeC4suC5guC4ouC4hAor4Lit4Li44Liq4LigCivguK3guLjguKrguKfguLAKK+C4reC4uOC4quC4quC5iOC4suC4q+C5jAor4Lit4Li44Liq4Liq4Liy4Lir4LiwCivguK3guLjguKrguLIKK+C4reC4uOC4quC4uAor4Lit4Li44Liq4Li44LiB4Liy4LijCivguK3guLjguKrguLjguKAKK+C4reC4uOC4quC4uOC4oQor4Lit4Li44Lir4Lij4Lix4LiaCivguK3guLjguKvguKXguJoKK+C4reC4uOC5gOC4q+C4oeC5iAor4Lit4Li44Lis4Liy4LijCivguK3guLkKK+C4reC4ueC5iAor4Lit4Li54LmJCivguK3guLnguJAKK+C4reC4ueC4lAor4Lit4Li54LmI4LiZ4LmJ4LizCivguK3guLnguKEKK+C4reC4ueC4ogor4Lit4Li54Lij4Li4CivguK3guLnguYjguKXguK3guKIKK+C4reC4ueC5iOC5geC4q+C5ieC4hwor4Lit4Li54LmJ4Lit4Li14LmJCivguK3guLnguYvguK3guLXguYsKK+C5gOC4rQor4LmA4Lit4LmJCivguYDguK3guIEKK+C5gOC4reC4gS0KK+C5gOC4reC5iuC4gQor4LmA4Lit4LiB4LmA4LiC4LiZ4LiBCivguYDguK3guIHguIjguLTguJUKK+C5gOC4reC4geC4ieC4seC4meC4l+C5jAor4LmA4Lit4LiB4LiK4LiZCivguYDguK3guIHguIvguYDguKPguKLguYwKK+C5gOC4reC4geC5gOC4l+C4qAor4LmA4Lit4LiB4LmC4LiX4LipCivguYDguK3guIHguJnguLHguKIKK+C5gOC4reC4geC4muC4uOC4hOC4hOC4pQor4LmA4Lit4LiB4Lia4Li44Lij4Li44LipCivguYDguK3guIHguJ7guIjguJnguYwKK+C5gOC4reC4geC4oOC4ngor4LmA4Lit4LiB4Lig4Lij4Li04Lii4LiyCivguYDguK3guIHguKDguLHguIHguJTguLTguYwKK+C5gOC4reC4geC4oOC4suC4hOC4tQor4LmA4Lit4LiB4Lig4Liy4LieCivguYDguK3guIHguKEKK+C5gOC4reC4geC4oeC4seC4ogor4LmA4Lit4LiB4Lij4Lij4LiW4Lib4Lij4Liw4LmC4Lii4LiECivguYDguK3guIHguKPguKoKK+C5gOC4reC4geC4o+C4sAor4LmA4Lit4LiB4Lij4Liy4LiKCivguYDguK3guIHguKPguLnguJsKK+C5gOC4reC4geC4peC4seC4geC4qeC4k+C5jAor4LmA4Lit4LiB4Lio4LiBCivguYDguK3guIHguKoKK+C5gOC4reC4geC4quC4suC4owor4LmA4Lit4LiB4Liq4Liy4Lij4Lij4Liy4LiK4LiB4Liy4LijCivguYDguK3guIHguKrguLLguKPguKrguLTguJfguJjguLQKK+C5gOC4reC4geC4quC4tOC4l+C4mOC4tOC5jAor4LmA4Lit4LiB4Lit4Lix4LiE4Lij4Lij4Liy4LiK4LiX4Li54LiVCivguYDguK3guIHguK3guLHguITguKPguKrguKHguJPguJfguLnguJUKK+C5gOC4reC4geC4reC4uAor4LmA4Lit4LiB4Lix4LiE4LiV4LiyCivguYDguK3guIHguLHguIfguKrguJ7guKLguLLguIHguKPguJPguYwKK+C5gOC4reC4geC4seC4h+C4quC4p+C4suC4l+C4tQor4LmA4Lit4LiB4LiyCivguYDguK3guYnguIHguLIKK+C5gOC4reC4geC4suC4mOC4tOC4m+C5hOC4leC4ogor4LmA4Lit4LmA4LiE4Lit4Lij4LmMCivguYDguK3guIcKK+C5gOC4reC5h+C4hwor4LmA4Lit4LmL4LiHCivguYDguK3guYfguJQKK+C5gOC4reC5h+C4lOC4leC4sOC5guC4owor4LmA4Lit4LmH4LiU4Lit4Li24LiHCivguYDguK3guJXguJfguLHguITguITguLAKK+C5gOC4reC5ieC5gOC4lQor4LmA4Lit4LiX4Li04Lil4LmB4Lit4Lil4LiB4Lit4Liu4Lit4Lil4LmMCivguYDguK3guJkKK+C5gOC4reC5h+C4mQor4LmA4Lit4LiZ4LiB4Liy4LiiCivguYDguK3guJnguYTguIvguKHguYwKK+C5gOC4reC5h+C4meC4lOC4uQor4LmA4Lit4LiZ4LiV4Lix4LinCivguYDguK3guJnguKvguKXguLHguIcKK+C5gOC4reC5h+C4meC4reC5iOC4reC4mQor4LmA4Lit4LiZ4LmA4Lit4Li14Lii4LiHCivguYDguK3guKEKK+C5gOC4reC5h+C4oeC4muC4o+C4tOC5guC4rQor4LmA4Lit4Lih4Lit4LijCivguYDguK3guKHguYLguK3guIoKK+C5gOC4reC4ogor4LmA4Lit4LmI4LiiCivguYDguK3guYrguKIKK+C5gOC4reC5i+C4ogor4LmA4Lit4Lij4LmH4LiU4Lit4Lij4LmI4Lit4LiiCivguYDguK3guKPguLLguKfguLHguJMKK+C5gOC4reC4peC4sgor4LmA4Lit4Lil4Liy4Lis4Li44LiBCivguYDguK3guKcKK+C5gOC4reC5iuC4pwor4LmA4Lit4Lin4Lix4LiHCivguYDguK3guKzguIEKK+C5gOC4reC4rOC4sgor4LmA4Lit4LitCivguYDguK3guYjguK0KK+C5gOC4reC4reC5hiDguITguLDguYYKK+C5gOC4reC4reC4meC5iOC4sAor4LmA4Lit4Lit4LmB4LiZ4LmI4LiwCivguYDguK3guK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4reC5ieC4reC4o+C4sOC5gOC4q+C4ogor4LmA4Lit4LmJ4Lit4LmA4Lij4LmJ4LitCivguYDguK3guYnguK3guYDguKPguYnguK3guYDguK3guYnguK3guYDguJXguYjguK0KK+C5gOC4reC4reC4reC4p+C4ogor4LmA4Lit4Lit4Lit4LitCivguYDguK3guK3guK3guK3guKvguYjguK3guKvguKHguIEKK+C5gOC4reC5ieC4reC5gOC4ruC4rQor4LmA4Lit4LmJ4LmB4Lit4LmI4LiZCivguYDguK3guYnguYYg4LmB4Lit4LmI4LiZ4LmGCivguYDguK3guYrguLAKK+C5gOC4reC4sOC5g+C4iAor4LmA4Lit4Liw4Lit4LiwCivguYDguK3guLDguK3guLDguKHguLDguYDguJfguLTguYjguIcKK+C5gOC4reC4sgor4LmA4Lit4Liy4LiB4Liy4LijCivguYDguK3guLLguIHguLLguKPguYDguK3guLLguIfguLLguJkKK+C5gOC4reC4suC4geC4uOC5ieC4h+C4neC4reC4ouC5hOC4m+C4leC4geC4m+C4peC4suC4geC4sOC4nuC4hwor4LmA4Lit4Liy4LiC4LmJ4Liy4LiH4LmA4LiC4LmJ4Liy4LiW4Li5CivguYDguK3guLLguIfguLLguJkKK+C5gOC4reC4suC4iOC4oeC4ueC4geC4nOC4ueC5ieC4reC4t+C5iOC4meC4oeC4suC4q+C4suC4ouC5g+C4iAor4LmA4Lit4Liy4LiI4Lij4Li04LiHCivguYDguK3guLLguIjguKPguLTguIfguYDguK3guLLguIjguLHguIcKK+C5gOC4reC4suC5g+C4iAor4LmA4Lit4Liy4LmD4LiI4LiK4LmI4Lin4LiiCivguYDguK3guLLguYPguIjguYPguKrguYgKK+C5gOC4reC4suC4iuC4meC4sAor4LmA4Lit4Liy4LiK4Lix4LmJ4LiZ4LmA4Lit4Liy4LmA4LiK4Li04LiHCivguYDguK3guLLguIrguLHguKIKK+C5gOC4reC4suC4iuC4teC4p+C4tOC4lQor4LmA4Lit4Liy4LiK4Li34LmI4LitCivguYDguK3guLLguYDguIrguLTguIcKK+C5gOC4reC4suC5g+C4iuC5iQor4LmA4Lit4Liy4LiU4Li14LmA4Lit4Liy4LmA4LiU4LmI4LiZCivguYDguK3guLLguJXguLLguKIKK+C5gOC4reC4suC5geC4leC5iAor4LmA4Lit4Liy4LmB4LiV4LmI4LmD4LiICivguYDguK3guLLguJbguYjguLLguJkKK+C5gOC4reC4suC5gOC4luC4tOC4lAor4LmA4Lit4Liy4LmA4LiW4Li04LiU4LmA4LiI4LmJ4Liy4Lil4LmI4LitCivguYDguK3guLLguJfguK3guIfguYTguJvguKPguLnguYjguIHguKPguLDguYDguJrguLfguYnguK3guIcKK+C5gOC4reC4suC4l+C4suC4owor4LmA4Lit4Liy4LiX4Liy4Lij4Lii4LmMCivguYDguK3guLLguJnguYnguLPguYDguKLguYfguJnguYDguILguYnguLLguKXguLnguJoKK+C5gOC4reC4suC4meC5ieC4s+C4peC4ueC4muC4l+C5ieC4reC4hwor4LmA4Lit4Liy4LmA4LiZ4Li34LmJ4Lit4Lir4LiZ4Li54LmE4Lib4Lib4Liw4LmA4LiZ4Li34LmJ4Lit4LiK4LmJ4Liy4LiHCivguYDguK3guLLguJrguLjguI3guYDguK3guLLguITguLjguJMKK+C5gOC4reC4suC4m+C4ueC4meC4q+C4oeC4suC4ouC4q+C4seC4pwor4LmA4Lit4Liy4LmA4Lib4LmH4LiZ4LiY4Li44Lij4LiwCivguYDguK3guLLguYDguJvguYfguJnguKfguYjguLIKK+C5gOC4reC4suC5gOC4m+C5h+C4meC5gOC4reC4suC4leC4suC4ogor4LmA4Lit4Liy4LmA4Lib4Lij4Li14Lii4LiaCivguYDguK3guLLguJzguLTguJQKK+C5gOC4reC4suC4nuC4tOC4oeC5gOC4quC4meC5hOC4m+C5geC4peC4geC5gOC4geC4peC4t+C4rQor4LmA4Lit4Liy4Lih4Liw4Lie4Lij4LmJ4Liy4Lin4Lir4LmJ4Liy4Lin4LmE4Lib4LiC4Liy4Lii4Liq4Lin4LiZCivguYDguK3guLLguKHguLfguK3guIvguLjguIHguKvguLXguJoKK+C5gOC4reC4suC5hOC4oeC5ieC4i+C4teC4geC5hOC4m+C4h+C4seC4lOC5hOC4oeC5ieC4i+C4uOC4hwor4LmA4Lit4Liy4LmE4Lih4LmJ4Liq4Lix4LmJ4LiZ4LmE4Lib4Lij4Lix4LiZ4LiC4Li14LmJCivguYDguK3guLLguKPguKoKK+C5gOC4reC4suC4o+C4seC4lOC5gOC4reC4suC5gOC4m+C4o+C4teC4ouC4mgor4LmA4Lit4Liy4LmA4Lij4Li34LmI4Lit4LiHCivguYDguK3guLLguKTguIHguKnguYwKK+C5gOC4reC4suC4peC4sAor4LmA4Lit4Liy4LmA4Lil4LiiCivguYDguK3guLLguYDguKXguLfguK3guJTguIHguLHguJrguJvguLkKK+C5gOC4reC4suC4q+C4meC5ieC4sgor4LmA4Lit4Liy4Lir4Li54LmE4Lib4LiZ4LiyIOC5gOC4reC4suC4leC4suC5hOC4m+C5hOC4o+C5iAor4LmA4Lit4Liy4LmD4Lir4LiN4LmICivguYDguK3guLLguKzguLLguKMKK+C5gOC4reC4suC4rOC4suC4o+C4tOC4gQor4LmA4Lit4Liy4Lis4Liy4Lij4Li24LiBCivguYDguK3guLLguK3guIHguYDguK3guLLguYPguIgKK+C5gOC4reC4suC4reC4ouC5iOC4suC4hwor4LmA4Lit4Liy4Lit4Lii4Li54LmICivguYDguK3guLLguLDguKXguLLguKIKK+C5gOC4reC4tOC4gQor4LmA4Lit4Li04LiB4LmA4LiB4Lij4Li04LiBCivguYDguK3guLTguYnguJkKK+C5gOC4reC4tOC4mgor4LmA4Lit4Li04Lia4Lit4Liy4LiaCivguYDguK3guLXguKLguIcKK+C5gOC4reC4teC5ieC4ouC4hwor4LmA4Lit4Li14LmJ4Lii4LiH4LiE4LizCivguYDguK3guLXguKLguIfguK3guLLguKIKK+C5gOC4reC4teC4ouC4h+C5gOC4reC4mQor4LmA4Lit4Li14Lii4LiUCivguYDguK3guLXguYrguKLguJQKK+C5gOC4reC4teC4ouC4mQor4LmA4Lit4Li14LmI4Lii4LiZCivguYDguK3guLXguYjguKLguKEKK+C5gOC4reC4teC5iuC4ouC4oQor4LmA4Lit4Li14LmJ4Lii4Lih4LiI4Li44LmK4LiZCivguYDguK3guLXguYnguKLguKHguYDguJ/guLXguYnguKLguKEKK+C5gOC4reC4teC5iOC4ouC4oeC4reC5iOC4reC4hwor4LmA4Lit4Li14LmI4Lii4LinCivguYDguK3guLXguYnguKLguKcKK+C5gOC4reC4teC5iOC4ouC4p+C4peC4oQor4LmA4Lit4Li34LmJ4LitCivguYDguK3guLfguYnguK3guIcKK+C5gOC4reC4t+C5ieC4reC4h+C4hOC4o+C4seC5iOC4hwor4LmA4Lit4Li34LmJ4Lit4LiH4LiZ4LmJ4Liz4LiE4Lij4Lix4LmI4LiHCivguYDguK3guLfguYnguK3guIfguKjguKPguLXguYDguJfguLXguYjguKLguIcKK+C5gOC4reC4t+C5ieC4reC4h+C4q+C4meC4p+C4lOC4nuC4o+C4suC4q+C4oeC4k+C5jAor4LmA4Lit4Li34Lit4LiUCivguYDguK3guLfguK3guJkKK+C5gOC4reC4t+C5ieC4reC4mQor4LmA4Lit4Li34Lit4LiZ4LiB4Li04LiZCivguYDguK3guLfguYnguK3guYDguJ/guLfguYnguK0KK+C5gOC4reC4t+C4reC4oQor4LmA4Lit4Li34LmJ4Lit4LihCivguYDguK3guLfguYnguK3guKHguK3guLLguIgKK+C5gOC4reC4t+C5iOC4reC4ogor4LmA4Lit4Li34LmI4Lit4Lii4LmGCivguYDguK3guLfguYnguK3guKIKK+C5gOC4reC4t+C5ieC4reC4reC4s+C4meC4p+C4ogor4LmB4LitCivguYHguK3guYkKK+C5geC4reC5iwor4LmB4Lit4LiBCivguYHguK3guIHguJfguLTguYDguJnguLXguKLguKEKK+C5geC4reC4geC4meC5ieC4reC4ogor4LmB4Lit4LmI4LiHCivguYHguK3guYnguIfguYHguKHguYnguIcKK+C5geC4reC4lAor4LmB4Lit4LiU4LmGCivguYHguK3guYnguJQKK+C5geC4reC5ieC4lOC5hgor4LmB4Lit4LmK4LiUCivguYHguK3guYrguJTguYYKK+C5geC4reC5iOC4mQor4LmB4Lit4LiZ4LiV4Li04LmA4LiI4LiZCivguYHguK3guJnguJXguLTguJrguK3guJTguLUKK+C5geC4reC4meC4leC4tOC4reC4tOC5gOC4peC5h+C4geC4leC4o+C4reC4mQor4LmB4Lit4LmI4LiZ4Lil4LihCivguYHguK3guYLguJnguJQKK+C5geC4reC4mgor4LmB4Lit4Lia4LmB4Lid4LiHCivguYHguK3guJrguK3guYnguLLguIcKK+C5geC4reC4muC4reC4tOC4hwor4LmB4Lit4LmJ4LihCivguYHguK3guKHguYHguJvguKPguYwKK+C5geC4reC4oeC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmB4Lit4Lih4LmC4Lih4LmA4LiZ4Li14LiiCivguYHguK3guKPguYjguKEKK+C5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmB4Lit4Lil4Lif4LiyCivguYHguK3guKcKK+C5geC4reC5iOC4pwor4LmB4Lit4LmJ4Lin4LmB4LiL4LmI4LinCivguYHguK3guKrguJfguLLguJfguLXguJkKK+C5geC4reC4quC5hOC4nuC4o+C4tOC4mQor4LmB4Lit4Liq4Lif4Lix4Lil4LiV4LmMCivguYHguK3guKvguJnguLHguIcKK+C5geC4reC4reC4p+C4ogor4LmB4Lit4Lit4Lix4LiUCivguYLguK0KK+C5guC4reC5iAor4LmC4Lit4LmJCivguYLguK3guYsKK+C5guC4reC4gQor4LmC4Lit4LmJ4LiBCivguYLguK3guYrguIEKK+C5guC4reC4geC4suC4qgor4LmC4Lit4LiGLQor4LmC4Lit4LiG4LiK4LilCivguYLguK3guIbguKrguIfguKrguLLguKMKK+C5guC4reC4huC4sAor4LmC4Lit4LmI4LiHCivguYLguK3guIfguIHguLLguKMKK+C5guC4reC4h+C5guC4guC4lOC4hwor4LmC4Lit4LmI4LiH4Lih4Lix4LiH4LiB4LijCivguYLguK3guIrguLAKK+C5guC4reC4iuC4sgor4LmC4Lit4LmC4LiL4LiZCivguYLguK3guJAKK+C5guC4reC4lAor4LmC4Lit4LiU4LiB4Liy4LmA4Lir4Lin4LmI4LiyCivguYLguK3guJTguITguKPguKfguI0KK+C5guC4reC4lOC5guC4reC4ogor4LmC4Lit4LmK4LiVCivguYLguK3guJXguJXguLHguJvguJvguLAKK+C5guC4reC5iOC5guC4luC4hwor4LmC4Lit4LmJ4LmC4LiW4LiHCivguYLguK3guJfguJktCivguYLguK3guJfguJnguLAKK+C5guC4reC4mQor4LmC4Lit4LiZ4LiB4Lij4Lij4Lih4Liq4Li04LiX4LiY4Li04LmMCivguYLguK3guJnguIrguLLguJXguLQKK+C5guC4reC4meC4reC5iOC4reC4mQor4LmC4Lit4LiZ4LmA4Lit4LiZCivguYLguK3guJoKK+C5guC4reC4muC4reC5ieC4reC4oeC4reC4suC4o+C4tQor4LmC4Lit4Lia4Lit4Li44LmJ4LihCivguYLguK3guJrguYDguK3guLfguYnguK0KK+C5guC4reC4m+C4m+C4suC4leC4tOC4geC4sAor4LmC4Lit4Lig4LiyCivguYLguK3guKDguLLguJvguKPguLLguKjguKPguLHguKIKK+C5guC4reC4oOC4suC4qgor4LmC4Lit4LihCivguYLguK3guKIKK+C5guC4reC5iuC4ogor4LmC4Lit4LijLQor4LmC4Lit4Lij4LiqCivguYLguK3guKXguLDguJ7guYjguK0KK+C5guC4reC4peC4tOC4oeC4m+C4tOC4gQor4LmC4Lit4LmJ4LmC4Lil4LihCivguYLguK3guYnguYLguKXguKHguJvguI/guLTguYLguKXguKEKK+C5guC4reC5ieC4p+C5iOC4sgor4LmC4Lit4Lin4Liy4LiXCivguYLguK3guKnguJAtCivguYLguK3guKnguJDguYwKK+C5guC4reC4qeC4kOC4iuC4sAor4LmC4Lit4Lip4LiQ4Lig4Lix4LiiCivguYLguK3guKrguJYKK+C5guC4reC4quC4li0KK+C5guC4reC4quC4luC4geC4o+C4o+C4oQor4LmC4Lit4Liq4Liy4LiZCivguYLguK3guKvguJnguK0KK+C5guC4reC4q+C5jOC4oQor4LmC4Lit4Lir4LmM4Lih4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYLguK3guKvguLHguIcKK+C5guC4reC4rOC4suC4owor4LmC4Lit4Lis4Liy4Lij4Li04LiBCivguYLguK3guKzguLLguKPguLbguIEKK+C5guC4reC5iOC4reC4p+C4lAor4LmC4Lit4LmJ4Lit4Lin4LiUCivguYLguK3guYjguK3guYjguLIKK+C5guC4reC5ieC5gOC4reC5iQor4LmC4Lit4LmA4Lit4LiL4Li04LiqCivguYLguK3guYnguYLguK4KK+C5hOC4rQor4LmE4Lit4LmJCivguYTguK3guIHguKPguJkKK+C5hOC4reC5guC4i+C5guC4l+C4mwor4LmE4Lit4LmB4LiU4LiUCivguYTguK3guJXguLHguKcKK+C5hOC4reC4meC5jOC4quC5hOC4leC5gOC4meC4teC4ouC4oQor4LmE4Lit4Lie4LmI4LiZCivguYTguK3guJ7guLTguKkKK+C5hOC4reC4ouC4o+C4sgor4LmE4Lit4Lii4LmA4Lij4LioCivguYTguK3guKPguLLguJ7guJUKK+C5hOC4reC4o+C4suC4p+C4seC4kwor4LmE4Lit4Lio4LiB4Lij4Li14LihCivguYTguK3guKjguKfguKPguKPguKLguYwKK+C5hOC4reC4qOC4uOC4o+C4tOC4oi0KK+C5hOC4reC4qOC4uOC4o+C4tOC4ouC4quC4oeC4muC4seC4leC4tAor4LmE4Lit4Lio4Li54Lij4Lii4LmMCivguYTguK3guYDguKrguLXguKIKK+C5hOC4reC4reC4reC4mQor4LmE4Lit4LmC4Lit4LiU4Li14LiZCivguK4KK+C4ruC4geC5gOC4geC4teC5ieC4ouC4mQor4Liu4LiUCivguK7guKfguIfguIvguLjguYnguKIKK+C4ruC4p+C4mQor4Liu4LmJ4Lin4LiZ4Lir4Lih4Li5CivguK7guKfguJoKK+C4ruC4p+C4muC4ruC4suC4mgor4Liu4LmI4LitCivguK7guYnguK0KK+C4ruC4reC4geC4geC4teC5iQor4Liu4Lit4LiUCivguK7guYjguK3guKEKK+C4ruC5iOC4reC4oeC4lOC4hwor4Liu4LmI4Lit4Lih4LmA4Lih4Li34Lit4LiHCivguK7guK3guKPguYzguYLguKHguJkKK+C4ruC4reC4peC5geC4peC4meC4lOC5jAor4Liu4Lit4Lil4Lix4LiZ4LiU4LiyCivguK7guLAKK+C4ruC4sOC4ruC5ieC4suC4ogor4Liu4Liw4LmE4Liu4LmJCivguK7guLHguIEKK+C4ruC4seC4geC5hgor4Liu4Lix4LiH4LmA4LilCivguK7guLHguIjguI3guYwKK+C4ruC4seC4iOC4jeC4sOC4ruC5jAor4Liu4Lix4LiI4LiN4Li1CivguK7guLHguYjguJkKK+C4ruC4sgor4Liu4LmJ4LiyCivguK7guYjguLLguIfguKvguKXguKfguIcKK+C4ruC4suC4m+C5iOC4sgor4Liu4Liy4LihCivguK7guLLguYDguKPguYfguKEKK+C4ruC4suC4q+C5jOC5gOC4meC4teC4ouC4oQor4Liu4LmJ4Liy4LmE4Liu4LmJCivguK7guLTguIjguYDguKPguLLguLDguKvguYwKK+C4ruC4tOC4meC4lOC4uQor4Liu4Li04Lib4LmC4Lib4LmC4Lib4LmA4LiV4Lih4Lix4LiqCivguK7guLTguKrguJfguLXguYDguKPguLXguKIKK+C4ruC4teC5gOC4peC4teC4ouC4oQor4Liu4Li2CivguK7guLbguIEKK+C4ruC4tuC4geC4q+C4suC4jQor4Liu4Li24LiB4Lir4LmJ4Liy4LinCivguK7guLbguIHguYDguKvguLTguKEKK+C4ruC4tuC4geC5guC4q+C4oQor4Liu4Li24LiB4Liu4Lix4LiBCivguK7guLbguJQKK+C4ruC4tuC4lOC4ruC4seC4lAor4Liu4Li24LmI4LihCivguK7guLbguKIKK+C4ruC4tuC4ouC5hgor4Liu4Li24LmI4LiiCivguK7guLfguJTguK7guLLguJQKK+C4ruC4t+C4rQor4Liu4Li34Lit4LmGCivguK7guLfguYjguK0KK+C4ruC4t+C5ieC4rQor4Liu4Li44LiUCivguK7guLjguJoKK+C4ruC4uOC4ouC5gOC4peC4ruC4uOC4ogor4Liu4Li54LmJCivguK7guLnguIEKK+C4ruC4ueC4oQor4LmA4LiuCivguYDguK7guIHguJXguLLguKPguYwKK+C5gOC4ruC4geC5guC4leC4geC4o+C4seC4oQor4LmA4Liu4LiB4LmC4LiV4LmA4Lih4LiV4LijCivguYDguK7guIHguYLguJXguKXguLTguJXguKMKK+C5gOC4ruC4hwor4LmA4Liu4LiH4LiL4Lin4LiiCivguYDguK7guYfguJQKK+C5gOC4ruC5guC4oeC5guC4geC4peC4muC4tOC4mQor4LmA4Liu4LiiCivguYDguK7guYnguKIKK+C5gOC4ruC5guC4o+C4reC4teC4mQor4LmA4Liu4Lil4Li04LiE4Lit4Lib4LmA4LiV4Lit4Lij4LmMCivguYDguK7guYLguKXguKrguLLguKPguLDguJ7guLIKK+C5gOC4ruC5ieC4pwor4LmA4Liu4LitCivguYDguK7guYnguK0KK+C5gOC4ruC4ruC4sgor4LmA4Liu4Li04Lij4LiV4LiL4LmMCivguYDguK7guLXguYnguKLguJkKK+C5gOC4ruC4teC5ieC4ouC4mgor4LmA4Liu4Li14LmJ4Lii4LinCivguYDguK7guLfguK3guIEKK+C5gOC4ruC4t+C4reC4geC5hgor4LmA4Liu4Li34Lit4LiB4Liq4Li44LiU4LiX4LmJ4Liy4LiiCivguYDguK7guLfguK3guJkKK+C5geC4rgor4LmB4Liu4LmICivguYHguK7guIEKK+C5geC4ruC4geC5hgor4LmB4Liu4LmI4LiB4Li24LmK4LiZCivguYHguK7guJnguJTguYzguJrguK3guKUKK+C5geC4ruC4n+C5gOC4meC4teC4ouC4oQor4LmB4Liu4LihCivguYHguK7guLAKK+C5guC4rgor4LmC4Liu4LiBCivguYLguK7guIHguK3guLfguK0KK+C5guC4ruC4geC4ruC4suC4gQor4LmC4Liu4LmA4LiV4LmH4LilCivguYLguK7guKXguYDguKHguLXguKLguKEKK+C5guC4ruC4sAor4LmE4Liu4LmJCivguYTguK7guYLguIHguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4ruC4lOC4o+C4sgor4LmE4Liu4LmC4LiU4Lij4LiE4Liy4Lij4LmM4Lia4Lit4LiZCivguYTguK7guYLguJTguKPguYDguIjguJkKK+C5hOC4ruC5guC4lOC4o+C5gOC4iOC4meC4i+C4seC4peC5hOC4n+C4lOC5jAor4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LmA4Lie4Lit4Lij4LmM4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguYTguK7guYLguJTguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4ruC5hOC4nwor4LmE4Liu4LmC4LilCivguYTguK7guK7guLUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMzNjMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyCkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojg4NTIxMzQ1MTRiMzdmMWZiMjVjNzQ3N2U5Mzk3OWQ2YTc4ZWJlY2NjNDdiM2ViMTI3ZjBjMGE0ZTdmMTdhMWMKK3NpemUgNjkxNDY0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGgxODA1Ny50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGgxODA1Ny50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk5NWU3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aDE4MDU3LnR4dApAQCAtMCwwICsxLDE3OTE3IEBACivvu78jKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyoKKyMqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworIyAKKyMgU29ydGVkIFRoYWkgd29yZCBsaXN0IHVzZWQgZm9yIHRlc3RpbmcgdGhlIFRoYWlDb2xsYXRvciBjbGFzcy4KKyMgVGhpcyBsaXN0IHdhcyB0YWtlbiBmcm9tIHRoZSBXZWI6IDxodHRwOi8vc2Vhc3JjLnRoLm5ldC9kaWN0L2RpY3QuaHRtPgorIyBhbmQgc29tZSBvYnZpb3VzIGdhcmJhZ2UgbGluZXMgKG51bGxzLCBldGMpIHdlcmUgZGVsZXRlZAorIworIyBMaW5lcyBzdGFydGluZyB3aXRoICcjJyBhcmUgaWdub3JlZDsgb3RoZXJzIGFyZSB0cmVhdGVkIGFzIHNpbmdsZSB3b3JkcworIyBpbiB0aGUgVVRGLTggZW5jb2RpbmcuCisjCisjIFsxMi8xNS85OSBhbGl1XSByZWNvZGVkIGZyb20gVElTLTYyMCB0byBVVEYtOAorIwor4LiBCivguIHguYcKK+C4geC4gQor4LiB4LmK4LiBCivguIHguIHguILguJnguLLguIEKK+C4geC4geC4seC4k+C4j+C4geC4sAor4LiB4LiB4Li44LiPCivguIHguIHguLjguJcKK+C4geC4geC4uOC4mOC4oOC4seC4k+C4keC5jAor4LiB4LiB4Li44Liq4Lix4LiZ4LmC4LiYCivguIHguIcKK+C4geC5iOC4hwor4LiB4LmJ4LiHCivguIHguYrguIcKK+C4geC4h+C4geC4reC4mQor4LiB4LiH4LiB4Liy4LijCivguIHguIfguYLguIHguYkKK+C4geC5ieC4h+C5guC4hOC5ieC4hwor4LiB4LmJ4LiH4LiHCivguIHguIfguInguLLguIEKK+C4geC4h+C5hOC4ieC5iAor4LiB4LiH4LmA4LiV4LmH4LiBCivguIHguIfguKrguLUKK+C4geC4h+C4quC4uOC4pQor4LiB4LiKCivguIHguIrguIHguKMKK+C4geC4juC4uOC4oeC4nuC4tQor4LiB4LiPCivguIHguI/guKvguKHguLLguKIKK+C4geC4j+C4sAor4LiB4LiP4Liy4Lir4LiwCivguIHguI/guLQKK+C4geC4j+C4uOC4gQor4LiB4LiQ4Li04LiZCivguIHguJDguLTguJnguIHguLLguKUKK+C4geC4kOC4tOC4meC4leC5ieC4mQor4LiB4LiQ4Li04LiZ4LiX4Liy4LiZCivguIHguJDguLTguJnguKPguLLguKnguI7guKPguYwKK+C4geC4kOC4tOC4meC4q+C4peC4p+C4hwor4LiB4LiQ4Li04LiZ4Lix4LiV4LiW4Liy4Lij4LiB4Lij4Lij4LihCivguIHguJDguLTguJnguLjguJfguJjguLLguKPguLAKK+C4geC4k+C4tOC4geC4meC4seC4meC4leC5jAor4LiB4LiT4Li04LiB4Liy4Lij4LmMCivguIHguYDguJPguKPguLgKK+C4geC5gOC4k+C4o+C4uOC4geC4sgor4LiB4LiUCivguIHguJTguITguLHguIcKK+C4geC4lOC5geC4lOC4hwor4LiB4LiU4LiX4Liw4LmA4LilCivguIHguJTguYLguJvguYrguLAKK+C4geC4lOC4q+C4seC4p+C5guC4lQor4LiB4LiU4LmA4Lir4Lil4Li34Lit4LiHCivguIHguJXguI3guLLguJMKK+C4geC4leC4oeC4suC4peC4tQor4LiB4LiV4LmA4Lin4LiX4Li04LiV4LiyCivguIHguJXguYDguKfguJfguLUKK+C4geC4leC4seC4jeC4iuC4peC4tQor4LiB4LiV4Lix4LiN4LiN4Li44LiV4LiyCivguIHguJXguLHguI3guI3guLkKK+C4geC4leC4suC4mOC4tOC4geC4suC4owor4LiB4LiV4Liy4Lig4Li04LiZ4Li04Lir4Liy4LijCivguIHguJXguLTguIHguLIKK+C4geC4luC4sgor4LiB4LiW4Li04LiBCivguIHguJbguLTguIHguLLguIjguLLguKPguKLguYwKK+C4geC4l+C4o+C4o+C4mwor4LiB4LiX4Lil4Li04Lih4Lik4LiECivguIHguJfguKXguLUKK+C4geC4mQor4LiB4LmI4LiZCivguIHguYnguJkKK+C4geC4meC4gQor4LiB4LiZ4LiZCivguIHguJnguJnguYDguIrguK0KK+C4geC5iOC4meC4meC5guC4luC4hwor4LiB4LiZ4LiZ4LmA4Lir4Li04LihCivguIHguJnguLTguKnguJDguYwKK+C4geC4meC4tOC4qeC4kOC4sgor4LiB4LiaCivguIHguJrguI8KK+C4geC4muC4lOC4suC4mQor4LiB4Lia4LiU4Liz4LiB4Lia4LmB4LiU4LiHCivguIHguJrguJfguLkKK+C4geC4muC4suC4pQor4LiB4Lia4Li04LiZ4LiX4Lij4LmMCivguIHguJrguLTguKUKK+C4geC4muC4tOC4peC4nuC4seC4quC4lOC4uOC5jAor4LiB4Lia4Li14LmICivguIHguJrguLnguKMKK+C4geC5gOC4muC4meC4l+C4o+C5jAor4LiB4LmC4Lia4LijCivguIHguYLguJrguKUKK+C4geC4m+C4kwor4LiB4Lib4LiT4LiBCivguIHguJvguJPguLIKK+C4geC4m+C4tAor4LiB4Lib4Li04LiV4Lix4LiZCivguIHguKEKK+C4geC5ieC4oQor4LiB4Lih4LiT4LiR4Lil4Liy4Lig4Li04LmA4Lip4LiBCivguIHguKHguJPguJHguYLguKXguJfguIEKK+C4geC4oeC4pQor4LiB4Lih4Lil4LiC4Lix4LiT4LiR4LmMCivguIHguKHguKXguITguKPguKPguKDguYwKK+C4geC4oeC4peC4ieC4seC4meC4l+C5jAor4LiB4Lih4Lil4Lie4Liy4LiZ4LiY4LieCivguIHguKHguKXguLIKK+C4geC4oeC4peC4suC4qAor4LiB4Lih4Lil4Liy4Liq4LiZ4LmMCivguIHguKHguYDguKXguKgKK+C4geC4oeC4seC4k+C4keC4peC4uAor4LiB4Lih4Li44LiXCivguIHguKMKK+C4geC4o+C4gQor4LiB4Lij4LiB4LiOCivguIHguKPguIHguI7guLLguITguKEKK+C4geC4o+C4hwor4LiB4Lij4LiK4LiB4Liy4LiiCivguIHguKPguJPguJHguYwKK+C4geC4o+C4k+C4tOC4geC4suC4o+C5jAor4LiB4Lij4LiT4Li1CivguIHguKPguJPguLXguKLguYwKK+C4geC4o+C4k+C4teC4ouC4sAor4LiB4Lij4LiUCivguIHguKPguJkKK+C4geC4o+C4meC4l+C4sgor4LiB4Lij4LiZ4LiZ4LmA4LiK4LmJ4LiyCivguIHguKPguJoKK+C4geC4o+C4muC4ueC4owor4LiB4Lij4Lie4Li04LiZ4LiY4Li44LmMCivguIHguKPguKDguIEKK+C4geC4o+C4oOC4tOC4mQor4LiB4Lij4Lig4Li14Lij4LmMCivguIHguKPguKDguLjguKEKK+C4geC4o+C4oQor4LiB4Lij4Lih4LiB4Lij4Lit4LihCivguIHguKPguKHguIHguLLguKMKK+C4geC4o+C4oeC4geC4suC4o+C4nuC4tOC5gOC4qOC4qQor4LiB4Lij4Lih4LmA4LiB4Lij4Li14Lii4LihCivguIHguKPguKHguILguLjguJkKK+C4geC4o+C4oeC4iuC4sOC5geC4oeC5iAor4LiB4Lij4Lih4LiX4LmI4LiyCivguIHguKPguKHguJfguYjguLLguIHguKXguLLguIcKK+C4geC4o+C4oeC4l+C5iOC4suC4guC4p+C4sgor4LiB4Lij4Lih4LiX4LmI4Liy4LiL4LmJ4Liy4LiiCivguIHguKPguKHguJjguKPguKPguKHguYwKK+C4geC4o+C4oeC4meC4hOC4o+C4muC4suC4pQor4LiB4Lij4Lih4LiZ4LiyCivguIHguKPguKHguJ7guKPguLAKK+C4geC4o+C4oeC4nuC4o+C4sOC4geC4peC4suC5guC4q+C4oQor4LiB4Lij4Lih4Lie4Lij4Liw4Lii4LiyCivguIHguKPguKHguKHguKvguLLguJTguYTguJfguKIKK+C4geC4o+C4oeC5gOC4oeC4t+C4reC4hwor4LiB4Lij4Lih4Lin4Lix4LiHCivguIHguKPguKHguKjguLHguIHguJTguLQKK+C4geC4o+C4oeC4quC4oeC5gOC4lOC5h+C4iAor4LiB4Lij4Lih4Lir4Lih4Li34LmI4LiZCivguIHguKPguKHguKvguKXguKfguIcKK+C4geC4o+C4oeC4seC4j+C4j+C5jAor4LiB4Lij4LijCivguIHguKPguKPguYTguIHguKMKK+C4geC4o+C4o+C5gOC4iOC4teC4ouC4gQor4LiB4Lij4Lij4LiK4Li04LiHCivguIHguKPguKPguIrguLTguJQKK+C4geC4o+C4o+C5gOC4iuC4rQor4LiB4Lij4Lij4LmA4LiK4LmJ4LiyCivguIHguKPguKPguYDguIrguLXguKLguIcKK+C4geC4o+C4o+C5guC4iuC4gQor4LiB4Lij4Lij4LiL4LmJ4LiZ4LiZCivguIHguKPguKPguYHguIvguIcKK+C4geC4o+C4o+C4kOC5jAor4LiB4Lij4Lij4LiQ4LiyCivguIHguKPguKPguJMKK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jAor4LiB4Lij4Lij4LiU4Li0CivguIHguKPguKPguJTguLTguIEKK+C4geC4o+C4o+C4lOC4tuC4gQor4LiB4Lij4Lij4LiV4Li4CivguIHguKPguKPguYTguJXguKMKK+C4geC4o+C4o+C4l+C4mgor4LiB4Lij4Lij4LmB4LiX4LiBCivguIHguKPguKPguYHguJfguKPguIEKK+C4geC4o+C4o+C4muC4suC4quC4tOC4gQor4LiB4Lij4Lij4Lia4Li04LiUCivguIHguKPguKPguJrguLnguKMKK+C4geC4o+C4o+C4m+C4suC4quC4tOC4gQor4LiB4Lij4Lij4Lib4Li44Lij4LiwCivguIHguKPguKPguJ7guLjguKEKK+C4geC4o+C4o+C4nuC4uOC5iOC4oQor4LiB4Lij4Lij4Lig4Li04Lij4Lih4Lii4LmMCivguIHguKPguKPguKEKK+C4geC4o+C4o+C4oeC5jAor4LiB4Lij4Lij4Lih4Liy4LiK4Li14LieCivguIHguKPguKPguKHguLLguJjguLTguIHguLLguKMKK+C4geC4o+C4o+C4oeC4suC4owor4LiB4Lij4Lij4Lil4Li1CivguIHguKPguKPguKXguLbguIcKK+C4geC4o+C4o+C4qeC4gQor4LiB4Lij4Lij4Liq4LiwCivguIHguKPguKPguYHguKrguIcKK+C4geC4o+C4o+C4q+C4suC4ogor4LiB4Lij4Lij4LmA4Lir4Li04LihCivguIHguKPguKPguYLguKvguKIKK+C4geC4o+C4o+C5gOC4reC4sgor4LiB4Lij4Lij4Li44LiT4LiyCivguIHguKPguKfguJQKK+C4geC4o+C4p+C4mQor4LiB4Lij4Lin4LiaCivguIHguKPguKfguKEKK+C4geC4o+C5ieC4p+C4oQor4LiB4Lij4Lin4LiiCivguIHguKPguKfguLTguIEKK+C4geC4o+C4quC4suC4m+C4meC5jAor4LiB4Lij4Liq4Li44LiX4LiY4Li04LmMCivguIHguKPguK0KK+C4geC4o+C5ieC4rQor4LiB4Lij4Lit4LiBCivguIHguKPguYfguK3guIHguIHguKPguYvguK3guKIKK+C4geC4o+C4reC4geC5geC4geC4o+C4gQor4LiB4Lij4Lit4LiHCivguIHguKPguK3guIfguIHguKPguK3guKIKK+C4geC4o+C4reC4lAor4LiB4Lij4LmI4Lit4LiZCivguIHguKPguK3guJoKK+C4geC4o+C4reC4oQor4LiB4Lij4LmI4Lit4LihCivguIHguKPguYjguK3guKIKK+C4geC4o+C4sAor4LiB4Lij4Liw4LiB4LijCivguIHguKPguLDguIHguKPguLHguJrguIHguKPguLDguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4sOC4geC4o+C4teC5iuC4lAor4LiB4Lij4Liw4LiB4Lij4Li44LmI4LiZCivguIHguKPguLDguIHguKXguLHguJrguIHguKXguK3guIEKK+C4geC4o+C4sOC4geC4p+C4lAor4LiB4Lij4Liw4LiB4Lit4LiHCivguIHguKPguLDguIHguLHguJQKK+C4geC4o+C4sOC4geC4teC5iQor4LiB4Lij4Liw4LiB4Li54LilCivguIHguKPguLDguYDguIHguKPguK3guIEKK+C4geC4o+C4sOC5gOC4geC4o+C4tOC4gQor4LiB4Lij4Liw4LmA4LiB4Lij4Li04LmI4LiZCivguIHguKPguLDguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiB4Lij4Li14Lii4LinCivguIHguKPguLDguYDguIHguKPguLXguYnguKLguKcKK+C4geC4o+C4sOC5gOC4geC4peC4t+C4reC4gQor4LiB4Lij4Liw4LiE4LiZCivguIHguKPguLDguITguLLguKIKK+C4geC4o+C4sOC4hOC4uOC4gQor4LiB4Lij4Liw4LiH4LiB4LiB4Lij4Liw4LiH4Lix4LiZCivguIHguKPguLDguIfguIHguIHguKPguLDguYDguIfguLTguYjguJkKK+C4geC4o+C4sOC4h+C5iOC4reC4h+C4geC4o+C4sOC5geC4h+C5iOC4hwor4LiB4Lij4Liw4LiH4Lit4LiUCivguIHguKPguLDguIfguYjguK3guJnguIHguKPguLDguYHguIfguYjguJkKK+C4geC4o+C4sOC5guC4h+C4gQor4LiB4Lij4Liw4LiI4LiBCivguIHguKPguLDguIjguIcKK+C4geC4o+C4sOC4iOC4owor4LiB4Lij4Liw4LiI4Lit4LiBCivguIHguKPguLDguIjguK3guIfguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4iOC4reC4h+C4reC5geC4hwor4LiB4Lij4Liw4LiI4LmJ4Lit4LiZCivguIHguKPguLDguIjguK3guJnguKvguLkKK+C4geC4o+C4sOC4iOC5ieC4reC4ogor4LiB4Lij4Liw4LiI4LmL4Lit4Lir4Lin4LitCivguIHguKPguLDguIjguLAKK+C4geC4o+C4sOC4iOC4seC4gQor4LiB4Lij4Liw4LiI4Lix4LiHCivguIHguKPguLDguIjguLHguIfguKvguKXguLHguIfguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC4iOC4seC4lAor4LiB4Lij4Liw4LiI4Lix4LiaCivguIHguKPguLDguIjguLHguJrguJvguLTguYnguIcKK+C4geC4o+C4sOC4iOC4seC4muC4m+C4teC5iAor4LiB4Lij4Liw4LiI4LmI4LiyCivguIHguKPguLDguIjguYjguLLguIcKK+C4geC4o+C4sOC4iOC4suC4lAor4LiB4Lij4Liw4LiI4Liy4LiZCivguIHguKPguLDguIjguLLguJoKK+C4geC4o+C4sOC4iOC4suC4oQor4LiB4Lij4Liw4LiI4Liy4LiiCivguIHguKPguLDguIjguLLguKcKK+C4geC4o+C4sOC4iOC4tOC4gQor4LiB4Lij4Liw4LiI4Li04LmL4LiHCivguIHguKPguLDguIjguLTguJQKK+C4geC4o+C4sOC4iOC4tOC4mgor4LiB4Lij4Liw4LiI4Li04LmL4LihCivguIHguKPguLDguIjguLTguKPguLTguJQKK+C4geC4o+C4sOC4iOC4tOC5i+C4pwor4LiB4Lij4Liw4LiI4Li14LmJCivguIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4uOC4gQor4LiB4Lij4Liw4LiI4Li44LmL4LiH4LiB4Lij4Liw4LiI4Li04LmL4LiHCivguIHguKPguLDguIjguLjguJoKK+C4geC4o+C4sOC4iOC4uOC5iuC4mgor4LiB4Lij4Liw4LiI4Li44Lia4LiB4Lij4Liw4LiI4Li04LiaCivguIHguKPguLDguIjguLjguYvguKHguIHguKPguLDguIjguLTguYvguKEKK+C4geC4o+C4sOC4iOC4uOC4ogor4LiB4Lij4Liw4LiI4Li54LmJCivguIHguKPguLDguIjguLnguYvguIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4ueC4lAor4LiB4Lij4Liw4LmA4LiI4Lit4Liw4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLIKK+C4geC4o+C4sOC5gOC4iOC5iOC4sgor4LiB4Lij4Liw4LmA4LiI4LmJ4LiyCivguIHguKPguLDguYDguIjguLLguLAKK+C4geC4o+C4sOC5gOC4iOC4tOC4hwor4LiB4Lij4Liw4LmA4LiI4Li04LiU4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLXguYnguKLguIcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4mgor4LiB4Lij4Liw4LmA4LiI4Li14Lii4LinCivguIHguKPguLDguYDguIjguLXguYrguKLguKcKK+C4geC4o+C4sOC5geC4iOC4sAor4LiB4Lij4Liw4LmC4LiI4LiZCivguIHguKPguLDguYLguIjguKEKK+C4geC4o+C4sOC4ieC4hwor4LiB4Lij4Liw4LiJ4Lit4LiBCivguIHguKPguLDguInguYjguK3guJkKK+C4geC4o+C4sOC4ieC4seC4muC4geC4o+C4sOC5gOC4ieC4hwor4LiB4Lij4Liw4LiJ4Li04LmI4LiHCivguIHguKPguLDguInguLXguIEKK+C4geC4o+C4sOC4ieC4uOC4gQor4LiB4Lij4Liw4LiJ4Li54LiUCivguIHguKPguLDguYDguInguIEKK+C4geC4o+C4sOC5gOC4ieC4hwor4LiB4Lij4Liw4LmA4LiJ4LiUCivguIHguKPguLDguYHguInguIEKK+C4geC4o+C4sOC5geC4ieC5iOC4mQor4LiB4Lij4Liw4LmC4LiJ4LiB4LiB4Lij4Liw4LmA4LiJ4LiBCivguIHguKPguLDguYLguInguKEKK+C4geC4o+C4sOC4iuC4hwor4LiB4Lij4Liw4LiK4LiU4LiB4Lij4Liw4LiK4LmJ4Lit4LiiCivguIHguKPguLDguIrguKfguKIKK+C4geC4o+C4sOC4iuC4reC4gQor4LiB4Lij4Liw4LiK4Lit4LiZCivguIHguKPguLDguIrguK3guKEKK+C4geC4o+C4sOC4iuC4reC4oeC4lOC4reC4gQor4LiB4Lij4Liw4LiK4LmJ4Lit4LiiCivguIHguKPguLDguIrguYnguK3guKLguJnguLLguIfguKPguLMKK+C4geC4o+C4sOC4iuC4seC4hwor4LiB4Lij4Liw4LiK4Lix4LmJ4LiZCivguIHguKPguLDguIrguLHguJoKK+C4geC4o+C4sOC4iuC4suC4gQor4LiB4Lij4Liw4LiK4LmI4Liy4LiHCivguIHguKPguLDguIrguLLguYDguJTguLTguKEKK+C4geC4o+C4sOC4iuC4suC4ogor4LiB4Lij4Liw4LiK4Li04LiHCivguIHguKPguLDguIrguLTguJQKK+C4geC4o+C4sOC4iuC4uAor4LiB4Lij4Liw4LiK4Li44LiBCivguIHguKPguLDguIrguLjguYjguKHguIHguKPguLDguIrguKfguKIKK+C4geC4o+C4sOC5gOC4iuC4rQor4LiB4Lij4Liw4LmA4LiK4LiyCivguIHguKPguLDguYDguIrguYnguLIKK+C4geC4o+C4sOC5gOC4iuC4teC4ouC4hwor4LiB4Lij4Liw4LmB4LiK4LiHCivguIHguKPguLDguYHguIrguLAKK+C4geC4o+C4sOC5guC4iuC4gQor4LiB4Lij4Liw4LiL4Lin4LiiCivguIHguKPguLDguIvguYnguK0KK+C4geC4o+C4sOC4i+C5iOC4reC4h+C4geC4o+C4sOC5geC4i+C5iOC4hwor4LiB4Lij4Liw4LiL4Lix4LiaCivguIHguKPguLDguIvguLHguJrguJvguLLguIHguYDguKPguLfguK0KK+C4geC4o+C4sOC4i+C5iOC4suC4hwor4LiB4Lij4Liw4LiL4Liy4LiaCivguIHguKPguLDguIvguLTguIEKK+C4geC4o+C4sOC4i+C4tOC4mgor4LiB4Lij4Liw4LiL4Li14LmJCivguIHguKPguLDguIvguLXguYnguIHguKPguLDguIvguYnguK0KK+C4geC4o+C4sOC4i+C4uOC4hwor4LiB4Lij4Liw4LiL4Li44Lia4LiB4Lij4Liw4LiL4Li04LiaCivguIHguKPguLDguIvguLjguYnguKEKK+C4geC4o+C4sOC4i+C4ueC5iAor4LiB4Lij4Liw4LmA4LiLCivguIHguKPguLDguYDguIvguYfguJkKK+C4geC4o+C4sOC5gOC4i+C4rQor4LiB4Lij4Liw4LmA4LiL4Lit4Liw4LiB4Lij4Liw4LmA4LiL4LitCivguIHguKPguLDguYDguIvguK3guLDguIHguKPguLDguYDguIvguLTguIcKK+C4geC4o+C4sOC5gOC4i+C5ieC4sgor4LiB4Lij4Liw4LmA4LiL4Li04LiHCivguIHguKPguLDguYHguIsKK+C4geC4o+C4sOC5geC4i+C4sAor4LiB4Lij4Liw4LmC4LiL4LiB4Lij4Liw4LmA4LiLCivguIHguKPguLDguI7guLUKK+C4geC4o+C4sOC4juC4uOC4oeC4nuC4tQor4LiB4Lij4Liw4LiU4LiBCivguIHguKPguLDguJTguYnguIcKK+C4geC4o+C4sOC4lOC4meC5guC4lOC5iAor4LiB4Lij4Liw4LiU4Lin4LiHCivguIHguKPguLDguJTguKfguJkKK+C4geC4o+C4sOC4lOC5ieC4p+C4oeC4geC4o+C4sOC5gOC4lOC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LiU4LitCivguIHguKPguLDguJTguK3guIcKK+C4geC4o+C4sOC4lOC4reC4h+C4q+C4suC4ogor4LiB4Lij4Liw4LiU4Lit4LiZCivguIHguKPguLDguJTguK3guKEKK+C4geC4o+C4sOC4lOC4seC4geC4geC4o+C4sOC5gOC4lOC4teC5ieC4ogor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4Lix4LinCivguIHguKPguLDguJTguLHguIfguIfguLIKK+C4geC4o+C4sOC4lOC4suC4gQor4LiB4Lij4Liw4LiU4LmJ4Liy4LiHCivguIHguKPguLDguJTguLLguIfguKXguLLguIcKK+C4geC4o+C4sOC4lOC4suC4lAor4LiB4Lij4Liw4LiU4Liy4LiU4LiC4Liy4LinCivguIHguKPguLDguJTguLLguJkKK+C4geC4o+C4sOC4lOC4suC4qQor4LiB4Lij4Liw4LiU4Liy4Lip4LmA4LiX4LioCivguIHguKPguLDguJTguLPguIHguKPguLDguJTguYjguLLguIcKK+C4geC4o+C4sOC4lOC4tOC4gQor4LiB4Lij4Liw4LiU4Li04LmI4LiHCivguIHguKPguLDguJTguLTguYnguIcKK+C4geC4o+C4sOC4lOC4tOC5iOC4h+C4l+C4reC4hwor4LiB4Lij4Liw4LiU4Li04Lia4LmGCivguIHguKPguLDguJTguLXguYgKK+C4geC4o+C4sOC4lOC4teC5ieC4geC4o+C4sOC5gOC4lOC4teC4ouC4oQor4LiB4Lij4Liw4LiU4Li14LmI4Lir4Lih4LmJ4LitCivguIHguKPguLDguJTguLbguIcKK+C4geC4o+C4sOC4lOC4t+C4mgor4LiB4Lij4Liw4LiU4Li4CivguIHguKPguLDguJTguLjguIHguIHguKPguLDguJTguLTguIEKK+C4geC4o+C4sOC4lOC4uOC5ieC4h+C4geC4o+C4sOC4lOC4tOC5ieC4hwor4LiB4Lij4Liw4LiU4Li44Lia4LmGCivguIHguKPguLDguJTguLjguJrguIHguKPguLDguJTguLTguJoKK+C4geC4o+C4sOC4lOC4uOC4oQor4LiB4Lij4Liw4LiU4Li54LiBCivguIHguKPguLDguYDguJTguYnguIcKK+C4geC4o+C4sOC5gOC4lOC5h+C4mQor4LiB4Lij4Liw4LmA4LiU4LmJ4LiyCivguIHguKPguLDguYDguJTguLLguLAKK+C4geC4o+C4sOC5gOC4lOC4tOC4lAor4LiB4Lij4Liw4LmA4LiU4Li14LmJ4LiiCivguIHguKPguLDguYDguJTguLXguKLguJQKK+C4geC4o+C4sOC5gOC4lOC4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiU4Li14LmJ4Lii4LihCivguIHguKPguLDguYDguJTguLfguK3guIEKK+C4geC4o+C4sOC5gOC4lOC4t+C5iOC4reC4hwor4LiB4Lij4Liw4LmB4LiU4LmH4LiB4LmGCivguIHguKPguLDguYHguJTguYnguIcKK+C4geC4o+C4sOC5geC4lOC5ieC5geC4o+C5iAor4LiB4Lij4Liw4LmB4LiU4LmI4Lin4LmGCivguIHguKPguLDguYHguJTguLAKK+C4geC4o+C4sOC5guC4lOC4gQor4LiB4Lij4Liw4LmC4LiU4LiHCivguIHguKPguLDguYLguJTguIfguYHguJTguIcKK+C4geC4o+C4sOC5guC4lOC4lAor4LiB4Lij4Liw4LmC4LiU4LiZCivguIHguKPguLDguYPguJQKK+C4geC4o+C4sOC5hOC4lAor4LiB4Lij4Liw4LiV4Lij4LiB4LiB4Lij4Liw4LiV4Lij4LizCivguIHguKPguLDguJXguKPguYnguK0KK+C4geC4o+C4sOC4leC4o+C4seC4mgor4LiB4Lij4Liw4LiV4Lij4Liy4LiBCivguIHguKPguLDguJXguKPguLMKK+C4geC4o+C4sOC4leC4o+C4uOC4lAor4LiB4Lij4Liw4LiV4Lij4Li44LihCivguIHguKPguLDguJXguYnguKfguKHguIHguKPguLDguYDguJXguLXguYnguKLguKEKK+C4geC4o+C4sOC4leC5ieC4rQor4LiB4Lij4Liw4LiV4LmI4Lit4LiH4LiB4Lij4Liw4LmB4LiV4LmI4LiHCivguIHguKPguLDguJXguYrguK3guJoKK+C4geC4o+C4sOC4leC5iOC4reC4oSB7IOC4geC4uuC4o+C4sOC4leC5iOC4reC4oSB9CivguIHguKPguLDguJXguYnguK3guKLguJXguLXguKfguLTguJQKK+C4geC4o+C4sOC4leC4seC4gQor4LiB4Lij4Liw4LiV4Lix4LmJ4LinCivguIHguKPguLDguJXguLLguIEKK+C4geC4o+C4sOC4leC5iuC4suC4gQor4LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguIHguKPguLDguJXguLTguIEKK+C4geC4o+C4sOC4leC4tOC5ieC4hwor4LiB4Lij4Liw4LiV4Li04LmK4LiUCivguIHguKPguLDguJXguLTguJoKK+C4geC4o+C4sOC4leC4t+C4reC4o+C4t+C4reC4o+C5ieC4mQor4LiB4Lij4Liw4LiV4Li44LiBCivguIHguKPguLDguJXguLjguIHguIHguKPguLDguJXguLTguIEKK+C4geC4o+C4sOC4leC4uOC5ieC4h+C4geC4o+C4sOC4leC4tOC5ieC4hwor4LiB4Lij4Liw4LiV4Li44LmI4LiZCivguIHguKPguLDguJXguLjguYnguJkKK+C4geC4o+C4sOC4leC4ueC4mgor4LiB4Lij4Liw4LmA4LiV4LiHCivguIHguKPguLDguYDguJXguYfguJkKK+C4geC4o+C4sOC5gOC4leC4reC4sAor4LiB4Lij4Liw4LmA4LiV4LmI4LiyCivguIHguKPguLDguYDguJXguLLguLAKK+C4geC4o+C4sOC5gOC4leC4suC4sOC4geC4o+C4sOC5geC4leC4sAor4LiB4Lij4Liw4LmA4LiV4Li14LmJ4Lii4LihCivguIHguKPguLDguYDguJXguLfguYnguK3guIcKK+C4geC4o+C4sOC5geC4lQor4LiB4Lij4Liw4LmB4LiV4LmI4LiHCivguIHguKPguLDguYHguJXguYHguJXguYnguYHguKfguYnguJQKK+C4geC4o+C4sOC5geC4leC4p+C4seC4mgor4LiB4Lij4Liw4LmB4LiV4LiwCivguIHguKPguLDguYLguJXguIHguIHguKPguLDguJXguLLguIEKK+C4geC4o+C4sOC5guC4leC4mQor4LiB4Lij4Liw4LmE4LiV4LijCivguIHguKPguLDguJbguJQKK+C4geC4o+C4sOC4luC4reC4mgor4LiB4Lij4Liw4LiW4Lix4LmI4LinCivguIHguKPguLDguJbguLLguIcKK+C4geC4o+C4sOC4luC4tOC4gQor4LiB4Lij4Liw4LiW4Li04LiZCivguIHguKPguLDguJbguLbguIEKK+C4geC4o+C4sOC5gOC4luC4tOC4mgor4LiB4Lij4Liw4LmC4LiW4LiZCivguIHguKPguLDguJfguIEKK+C4geC4o+C4sOC4l+C4hwor4LiB4Lij4Liw4LiX4LiH4Lil4Liy4LiiCivguIHguKPguLDguJfguJQKK+C4geC4o+C4sOC4l+C4mgor4LiB4Lij4Liw4LiX4Lij4Lin4LiHCivguIHguKPguLDguJfguKfguKIgeyDguIHguLrguKPguLDguJfguKfguKIgfQor4LiB4Lij4Liw4LiX4Lit4LiBCivguIHguKPguLDguJfguYnguK3guJkKK+C4geC4o+C4sOC4l+C5iOC4reC4meC4geC4o+C4sOC5geC4l+C5iOC4mQor4LiB4Lij4Liw4LiX4LmI4Lit4LihCivguIHguKPguLDguJfguYnguK3guKHguIHguKPguLDguYHguJfguYnguKEKK+C4geC4o+C4sOC4l+C4sAor4LiB4Lij4Liw4LiX4Lix4LmI4LiHCivguIHguKPguLDguJfguLHguYjguIfguJXguLTguJQKK+C4geC4o+C4sOC4l+C4seC4mQor4LiB4Lij4Liw4LiX4Lix4LmJ4LiZCivguIHguKPguLDguJfguLIKK+C4geC4o+C4sOC4l+C4suC4iuC4suC4ogor4LiB4Lij4Liw4LiX4Liy4LiiCivguIHguKPguLDguJfguLLguKLguYDguKvguLTguJkKK+C4geC4o+C4sOC4l+C4suC4quC4tQor4LiB4Lij4Liw4LiX4Liy4Lir4Lit4LiHCivguIHguKPguLDguJfguLMKK+C4geC4o+C4sOC4l+C4tOC4geC4geC4o+C4sOC4l+C4p+C4ogor4LiB4Lij4Liw4LiX4Li04LiHCivguIHguKPguLDguJfguLbguIcKK+C4geC4o+C4sOC4l+C4t+C4mgor4LiB4Lij4Liw4LiX4Li4CivguIHguKPguLDguJfguLjguIcKK+C4geC4o+C4sOC4l+C4uOC5ieC4hwor4LiB4Lij4Liw4LiX4Li44LiH4Lil4Liy4LiiCivguIHguKPguLDguJfguLjguIfguKvguKHguLLguJrguYnguLIKK+C4geC4o+C4sOC4l+C4uOC4h+C5gOC4q+C4pwor4LiB4Lij4Liw4LiX4Li44LmI4LihCivguIHguKPguLDguJfguLjguYjguKHguILguLXguYnguKvguKHguLkKK+C4geC4o+C4sOC4l+C4uOC5iOC4oeC4meC4sgor4LiB4Lij4Liw4LiX4Li44LmI4Lih4Lir4Lih4Li5CivguIHguKPguLDguJfguLnguYkKK+C4geC4o+C4sOC5gOC4l+C5iAor4LiB4Lij4Liw4LmA4LiX4Li14Lii4LiaCivguIHguKPguLDguYDguJfguLXguKLguKEKK+C4geC4o+C4sOC5gOC4l+C4t+C4reC4mQor4LiB4Lij4Liw4LmA4LiX4Li34LmJ4Lit4LihCivguIHguKPguLDguYHguJfguIEKK+C4geC4o+C4sOC5geC4l+C5iOC4mQor4LiB4Lij4Liw4LmB4LiX4LmJ4LihCivguIHguKPguLDguYHguJfguLAKK+C4geC4o+C4sOC5hOC4l+C4iuC4suC4ogor4LiB4Lij4Liw4LiZ4LiBCivguIHguKPguLDguJnguYjguK3guIcKK+C4geC4o+C4sOC4meC4seC5ieC4mQor4LiB4Lij4Liw4LiZ4Li14LmJCivguIHguKPguLDguYLguJnguYnguJkKK+C4geC4o+C4sOC5hOC4mQor4LiB4Lij4Liw4Lia4LiBCivguIHguKPguLDguJrguIHguITguLLguKIKK+C4geC4o+C4sOC4muC4lgor4LiB4Lij4Liw4Lia4Lin4LiZCivguIHguKPguLDguJrguKfguKIKK+C4geC4o+C4sOC4muC4p+C4owor4LiB4Lij4Liw4Lia4Lit4LiBCivguIHguKPguLDguJrguK3guIHguYDguKrguLXguKLguIcKK+C4geC4o+C4sOC4muC4reC4hwor4LiB4Lij4Liw4Lia4Lit4LiH4LiB4Lix4LiZCivguIHguKPguLDguJrguK3guIfguYDguJ7guIrguKMKK+C4geC4o+C4sOC4muC4reC4h+C4o+C4suC4q+C4uQor4LiB4Lij4Liw4Lia4LiwCivguIHguKPguLDguJrguLHguJQKK+C4geC4o+C4sOC4muC4seC5ieC4p+C4geC4o+C4sOC5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4Lia4LmI4LiyCivguIHguKPguLDguJrguYnguLIKK+C4geC4o+C4sOC4muC4suC4gQor4LiB4Lij4Liw4Lia4Liy4LiiCivguIHguKPguLDguJrguLLguKUgeyDguIHguLrguKPguLDguJrguLLguJkgfQor4LiB4Lij4Liw4Lia4Li0CivguIHguKPguLDguJrguLTguYnguIcKK+C4geC4o+C4sOC4muC4tOC4lAor4LiB4Lij4Liw4Lia4Li04LilCivguIHguKPguLDguJrguLXguYgKK+C4geC4o+C4sOC4muC4t+C4rQor4LiB4Lij4Liw4Lia4Li44LiHCivguIHguKPguLDguJrguLjguKEKK+C4geC4o+C4sOC4muC4uOC5iOC4oeC4geC4o+C4sOC4muC5iOC4suC4oQor4LiB4Lij4Liw4Lia4Li54LmJ4LiB4Lij4Liw4Lia4Li14LmJCivguIHguKPguLDguJrguLnguJkKK+C4geC4o+C4sOC4muC4ueC4owor4LiB4Lij4Liw4LmA4Lia4LiHCivguIHguKPguLDguYDguJrguI0KK+C4geC4o+C4sOC5gOC4muC5h+C4lOC4geC4o+C4sOC4muC4p+C4mQor4LiB4Lij4Liw4LmA4Lia4LiZCivguIHguKPguLDguYDguJrguLIKK+C4geC4o+C4sOC5gOC4muC4tOC4gQor4LiB4Lij4Liw4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguYDguJrguLXguKLguJQKK+C4geC4o+C4sOC5gOC4muC4teC4ouC4mQor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiHCivguIHguKPguLDguYDguJrguLfguYnguK3guIfguJbguYnguKfguKIKK+C4geC4o+C4sOC5geC4muC5iAor4LiB4Lij4Liw4LmB4Lia4LiBCivguIHguKPguLDguYHguJrguIHguIfguLIKK+C4geC4o+C4sOC5geC4muC4sAor4LiB4Lij4Liw4LmC4Lia4LihCivguIHguKPguLDguJvguKHguIHguKPguLDguJvguLMKK+C4geC4o+C4sOC4m+C4oeC4geC4o+C4sOC5gOC4m+C4sgor4LiB4Lij4Liw4Lib4Lij4Lit4LiBCivguIHguKPguLDguJvguKPguK3guIHguKfguYjguLLguKcKK+C4geC4o+C4sOC4m+C4o+C4teC5ieC4geC4o+C4sOC5gOC4m+C4o+C5iOC4sgor4LiB4Lij4Liw4Lib4Lit4LiBCivguIHguKPguLDguJvguYnguK3guIHguKPguLDguYHguJvguYkKK+C4geC4o+C4sOC4m+C5iOC4reC4hwor4LiB4Lij4Liw4Lib4LmL4Lit4LiHCivguIHguKPguLDguJvguK3guJTguIHguKPguLDguYHguJvguJQKK+C4geC4o+C4sOC4m+C5i+C4reC4q+C4peC4rQor4LiB4Lij4Liw4Lib4Lix4LmJ4Lin4LiB4Lij4Liw4LmA4Lib4Li14LmJ4LiiCivguIHguKPguLDguJvguYjguLMKK+C4geC4o+C4sOC4m+C4tOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LiBCivguIHguKPguLDguJvguLjguYjguKEKK+C4geC4o+C4sOC4m+C4uOC5iOC4oeC4geC4o+C4sOC4m+C5iOC4swor4LiB4Lij4Liw4Lib4Li44LmI4Lih4LiB4Lij4Liw4Lib4Li04LmI4LihCivguIHguKPguLDguYDguJvguLIKK+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4LiB4Lij4Liw4LmA4Lib4Liy4LiwCivguIHguKPguLDguYDguJvguLXguYnguKIgeyDguIHguLrguKPguLDguYDguJvguLXguYnguKIgfQor4LiB4Lij4Liw4LmB4Lib4LmJCivguIHguKPguLDguYHguJvguJQKK+C4geC4o+C4sOC5guC4m+C4gQor4LiB4Lij4Liw4LmC4Lib4Lij4LiHCivguIHguKPguLDguYLguJvguKPguIfguJfguK3guIcKK+C4geC4o+C4sOC4nOC4oQor4LiB4Lij4Liw4Lic4Lil4Liy4LihCivguIHguKPguLDguJzguKXguLXguIHguKPguLDguJzguKXguLLguKEKK+C4geC4o+C4sOC4nOC4suC4mQor4LiB4Lij4Liw4Lic4Li14LiBCivguIHguKPguLDguJ7guKPguKfguJkKK+C4geC4o+C4sOC4nuC4o+C4tOC5ieC4oQor4LiB4Lij4Liw4Lie4Lit4LiBCivguIHguKPguLDguJ7guK3guIHguKfguLHguKcKK+C4geC4o+C4sOC4nuC4reC4hwor4LiB4Lij4Liw4Lie4LmJ4Lit4LihCivguIHguKPguLDguJ7guLHguIEKK+C4geC4o+C4sOC4nuC4seC4hwor4LiB4Lij4Liw4Lie4Lix4LiH4LmA4Lir4Li04LijCivguIHguKPguLDguJ7guLHguIfguYLguKvguKEKK+C4geC4o+C4sOC4nuC4seC4lAor4LiB4Lij4Liw4Lie4Lix4LiU4LmB4Lih4LmI4Lih4LmI4Liy4LiiCivguIHguKPguLDguJ7guLHguJXguKMKK+C4geC4o+C4sOC4nuC4seC4mQor4LiB4Lij4Liw4Lie4Lix4LmI4LiZCivguIHguKPguLDguJ7guLIKK+C4geC4o+C4sOC4nuC4suC4gSB7IOC4geC4uuC4o+C4sOC4nuC4suC4gSB9CivguIHguKPguLDguJ7guLXguYkKK+C4geC4o+C4sOC4nuC4t+C4rQor4LiB4Lij4Liw4Lie4Li44LmJ4LiHCivguIHguKPguLDguJ7guLjguYjguKEKK+C4geC4o+C4sOC5gOC4nuC4peC4tOC4qAor4LiB4Lij4Liw4LmA4Lie4Liy4LiwCivguIHguKPguLDguYDguJ7guLLguLDguJvguKXguLIKK+C4geC4o+C4sOC5gOC4nuC4tOC4hwor4LiB4Lij4Liw4LmA4Lie4Li34LmI4Lit4LihCivguIHguKPguLDguYHguJ7guIcKK+C4geC4o+C4sOC5geC4nuC5ieC4hwor4LiB4Lij4Liw4Lif4Lix4LiU4LiB4Lij4Liw4LmA4Lif4Li14Lii4LiUCivguIHguKPguLDguJ/guLLguKIKK+C4geC4o+C4sOC4n+C4ueC4oeC4geC4o+C4sOC4n+C4suC4ogor4LiB4Lij4Liw4LmA4Lif4Li14Lii4LiUCivguIHguKPguLDguKHguKUKK+C4geC4o+C4sOC4oeC4reC4mgor4LiB4Lij4Liw4Lih4Lit4Lih4LiB4Lij4Liw4LmB4Lih4LihCivguIHguKPguLDguKHguLHguIcKK+C4geC4o+C4sOC4oeC4seC4mQor4LiB4Lij4Liw4Lih4Li04LiU4LiB4Lij4Liw4LmA4Lih4Li14LmJ4Lii4LiZCivguIHguKPguLDguKHguLbguJkKK+C4geC4o+C4sOC4oeC4uOC4lwor4LiB4Lij4Liw4LmA4Lih4Liy4LiwCivguIHguKPguLDguYDguKHguLXguYnguKLguJkKK+C4geC4o+C4sOC5geC4oeC4oQor4LiB4Lij4Liw4Lii4LmI4Lit4LiHCivguIHguKPguLDguKLguYjguK3guIfguIHguKPguLDguYHguKLguYjguIcKK+C4geC4o+C4sOC4ouC5iOC4reC4mQor4LiB4Lij4Liw4Lii4LmI4Lit4LihCivguIHguKPguLDguKLguLIKK+C4geC4o+C4sOC4ouC4suC4hwor4LiB4Lij4Liw4Lii4Liy4LiI4LiBCivguIHguKPguLDguKLguLLguJQKK+C4geC4o+C4sOC4ouC4suC4q+C4h+C4seC4mQor4LiB4Lij4Liw4Lii4Li04LiBCivguIHguKPguLDguKLguLTguYnguKHguIHguKPguLDguKLguYjguK3guIcKK+C4geC4o+C4sOC4ouC4tuC4geC4geC4o+C4sOC4ouC4t+C4rQor4LiB4Lij4Liw4Lii4Li24LiU4LiB4Lij4Liw4Lii4Liy4LiUCivguIHguKPguLDguYDguKLguYnguK3guIHguKPguLDguYHguKvguKLguYjguIcKK+C4geC4o+C4sOC5geC4ouC5iOC4hwor4LiB4Lij4Liw4Lij4Lit4LiBCivguIHguKPguLDguKPguK3guIHguJnguYnguLPguILguYnguLLguKcKK+C4geC4o+C4sOC5gOC4o+C4teC4ouC4mQor4LiB4Lij4Liw4LmC4Lij4LiB4LiZ4LmJ4Liz4LiC4LmJ4Liy4LinCivguIHguKPguLDguYLguKPguIHguYPguKvguI3guYgKK+C4geC4o+C4sOC5hOC4owor4LiB4Lij4Liw4Lil4LiUCivguIHguKPguLDguKXguJoKK+C4geC4o+C4sOC4peC4reC4gQor4LiB4Lij4Liw4Lil4Lit4LihCivguIHguKPguLDguKXguLDguKvguKXguYjguLMKK+C4geC4o+C4sOC4peC4seC4lAor4LiB4Lij4Liw4Lil4Lix4LiaCivguIHguKPguLDguKXguLHguKHguJ7guKMKK+C4geC4o+C4sOC4peC4sgor4LiB4Lij4Liw4Lil4Liy4LiB4Liy4LijCivguIHguKPguLDguKXguLLguKLguIHguKPguLDguKXguK3guIEKK+C4geC4o+C4sOC4peC4swor4LiB4Lij4Liw4Lil4Liz4Lie4LijCivguIHguKPguLDguKXguLPguJ7guLHguIEKK+C4geC4o+C4sOC4peC4s+C4nuC4uOC4gQor4LiB4Lij4Liw4Lil4Li04LiHCivguIHguKPguLDguKXguLUKK+C4geC4o+C4sOC4peC4tuC4hwor4LiB4Lij4Liw4Lil4Li44Lih4Lie4Liy4LiHCivguIHguKPguLDguKXguLjguKHguJ7guLjguIEKK+C4geC4o+C4sOC4peC4uOC4oeC4nuC4uQor4LiB4Lij4Liw4Lil4Li54LiZCivguIHguKPguLDguKXguLnguYjguJnguYwKK+C4geC4o+C4sOC5gOC4peC5h+C4mQor4LiB4Lij4Liw4LmA4Lil4Li14Lii4LiUCivguIHguKPguLDguYDguKXguLfguK3guIEKK+C4geC4o+C4sOC5guC4peC4hwor4LiB4Lij4Liw4Lin4LiZCivguIHguKPguLDguKfguLHguJQKK+C4geC4o+C4sOC4p+C5iOC4sgor4LiB4Lij4Liw4Lin4Liy4LiUCivguIHguKPguLDguKfguLLguJkKK+C4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4Lin4Li04LiZCivguIHguKPguLDguKfguLUKK+C4geC4o+C4sOC4p+C4teC4geC4o+C4sOC4p+C4suC4lAor4LiB4Lij4Liw4Lin4Li54LiU4LiB4Lij4Liw4Lin4Liy4LiUCivguIHguKPguLDguYDguKfguJkKK+C4geC4o+C4sOC5gOC4p+C4ouC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4LmB4Lin4LiZCivguIHguKPguLDguYLguKfguKLguIHguKPguLDguKfguLLguKIKK+C4geC4o+C4sOC4qOC4gQor4LiB4Lij4Liw4Lio4Lix4LiiCivguIHguKPguLDguKnguLHguJXguKPguLTguKLguYwKK+C4geC4o+C4sOC4qeC4seC4leC4o+C4tQor4LiB4Lij4Liw4Lip4Lix4LiiCivguIHguKPguLDguKnguLLguJvguJPguYwKK+C4geC4o+C4sOC4qeC4tOC4owor4LiB4Lij4Liw4LmA4Lip4LihCivguIHguKPguLDguYDguKnguLXguKLguKMKK+C4geC4o+C4sOC4quC4hwor4LiB4Lij4Liw4Liq4LiZCivguIHguKPguLDguKrguJoKK+C4geC4o+C4sOC4quC4oQor4LiB4Lij4Liw4Liq4Lij4Lin4LilCivguIHguKPguLDguKrguKPguYnguK3guKIKK+C4geC4o+C4sOC4quC4p+C4mQor4LiB4Lij4Liw4Liq4Lin4LiiCivguIHguKPguLDguKrguK3guJoKK+C4geC4o+C4sOC4quC4sAor4LiB4Lij4Liw4Liq4Lix4LiHCivguIHguKPguLDguKrguLHguJkKK+C4geC4o+C4sOC4quC4seC4muC4geC4o+C4sOC4quC5iOC4suC4ogor4LiB4Lij4Liw4Liq4LiyCivguIHguKPguLDguKrguLLguJnguJXguLTguYwKK+C4geC4o+C4sOC4quC4suC4mgor4LiB4Lij4Liw4Liq4Liy4LiiCivguIHguKPguLDguKrguYjguLLguKIKK+C4geC4o+C4sOC4quC4tOC4meC4mOC4uAor4LiB4Lij4Liw4Liq4Li34LitCivguIHguKPguLDguKrguLjguIfguIHguKPguLDguKrguLTguIcKK+C4geC4o+C4sOC4quC4uOC4mQor4LiB4Lij4Liw4Liq4Li54LiX4LiY4Li04LmMCivguIHguKPguLDguKrguLnguJoKK+C4geC4o+C4sOC5gOC4quC4lAor4LiB4Lij4Liw4LmA4Liq4LmH4LiZ4LiB4Lij4Liw4Liq4Liy4LiiCivguIHguKPguLDguYDguKrguYjguLIKK+C4geC4o+C4sOC5gOC4quC4suC4sOC4geC4o+C4sOC5geC4quC4sAor4LiB4Lij4Liw4LmA4Liq4Li14Lii4LiZCivguIHguKPguLDguYDguKrguLXguKLguKMKK+C4geC4o+C4sOC5gOC4quC4t+C4reC4geC4geC4o+C4sOC4quC4mQor4LiB4Lij4Liw4LmB4LiqCivguIHguKPguLDguYHguKrguIcKK+C4geC4o+C4sOC5geC4quC4sCB7IOC4geC4uuC4o+C4sOC5geC4quC4sCB9CivguIHguKPguLDguYLguKrguIcKK+C4geC4o+C4sOC5hOC4qgor4LiB4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguIHguKPguLDguKvguJkKK+C4geC4o+C4sOC4q+C4meC4gQor4LiB4Lij4Liw4Lir4LiZ4LiB4LiB4Li04LiZ4Lij4Li1CivguIHguKPguLDguKvguJnguIHguJnguKTguKHguLTguJUKK+C4geC4o+C4sOC4q+C4meC4geC4meC4suC4o+C4tQor4LiB4Lij4Liw4Lir4LiZ4LmI4Lit4LiHCivguIHguKPguLDguKvguJnguLLguIEKK+C4geC4o+C4sOC4q+C4meC5iOC4swor4LiB4Lij4Liw4Lir4Lih4Lin4LiUCivguIHguKPguLDguKvguKHguK3guJoKK+C4geC4o+C4sOC4q+C4oeC5iOC4reC4oQor4LiB4Lij4Liw4Lir4Lih4Lix4LmI4LiHCivguIHguKPguLDguKvguKHguYjguLIKK+C4geC4o+C4sOC4q+C4oeC4tOC4lAor4LiB4Lij4Liw4Lir4Lih4Li04LiaCivguIHguKPguLDguKvguKHguLjguJTguIHguKPguLDguKvguKHguLTguJQKK+C4geC4o+C4sOC4q+C4oeC4uOC5iOC4mQor4LiB4Lij4Liw4Lir4Lih4Li44LiaCivguIHguKPguLDguKvguKLguYjguIcKK+C4geC4o+C4sOC4q+C4ouC4lAor4LiB4Lij4Liw4Lir4Lii4LiaCivguIHguKPguLDguKvguKLguYjguK3guJkKK+C4geC4o+C4sOC4q+C4ouC5iOC4reC4oQor4LiB4Lij4Liw4Lir4Lii4LiwCivguIHguKPguLDguKvguKLguLHguIcKK+C4geC4o+C4sOC4q+C4ouC4seC4mgor4LiB4Lij4Liw4Lir4Lii4Li04LmI4LihCivguIHguKPguLDguKvguKPguK3guJQKK+C4geC4o+C4sOC4q+C4o+C4tOC5iOC4hwor4LiB4Lij4Liw4Lir4Lin4LiZCivguIHguKPguLDguKvguKfguLHguJQKK+C4geC4o+C4sOC4q+C4p+C4seC4lOC5gOC4geC4peC5ieC4sgor4LiB4Lij4Liw4Lir4Lin4LmI4LiyCivguIHguKPguLDguKvguK3guIcKK+C4geC4o+C4sOC4q+C4seC4hwor4LiB4Lij4Liw4Lir4Lix4LiUCivguIHguKPguLDguKvguLLguIcgeyDguIHguLrguKPguLDguKvguLLguIcgfQor4LiB4Lij4Liw4Lir4Liy4LiiCivguIHguKPguLDguKvguLbguKEKK+C4geC4o+C4sOC4q+C4tuC5iOC4oQor4LiB4Lij4Liw4Lir4Li34LiU4LiB4Lij4Liw4Lir4Lit4LiaCivguIHguKPguLDguYDguKvguYfguJkKK+C4geC4o+C4sOC5gOC4q+C4meC5h+C4iAor4LiB4Lij4Liw4LmA4Lir4LiZ4Li14Lii4LiUCivguIHguKPguLDguYDguKvguKHguYfguJTguIHguKPguLDguYDguKvguKHguLXguKLguJQKK+C4geC4o+C4sOC5gOC4q+C4oeC5h+C4lOC4geC4o+C4sOC5geC4q+C4oeC5iAor4LiB4Lij4Liw4LmA4Lir4Lih4LmI4LiZCivguIHguKPguLDguYDguKvguKHguYjguLIKK+C4geC4o+C4sOC5gOC4q+C4peC4teC4ouC4gQor4LiB4Lij4Liw4LmA4Lir4Lin4LmI4LiyCivguIHguKPguLDguYDguKvguYjguK0KK+C4geC4o+C4sOC5gOC4q+C4tOC4oQor4LiB4Lij4Liw4LmA4Lir4Li14LmJ4Lii4LiZ4LiB4Lij4Liw4Lir4Li34Lit4Lij4Li34LitCivguIHguKPguLDguYHguKvguJfguK3guIcKK+C4geC4o+C4sOC5geC4q+C4mQor4LiB4Lij4Liw4LmB4Lir4LiZ4LmICivguIHguKPguLDguYHguKvguJnguJoKK+C4geC4o+C4sOC5geC4q+C4meC4sAor4LiB4Lij4Liw4LmB4Lir4Lih4LiaCivguIHguKPguLDguYHguKvguKHguYjguKcKK+C4geC4o+C4sOC5geC4q+C4ouC5iOC4hwor4LiB4Lij4Liw4LmB4Lir4Lij4LmI4LihCivguIHguKPguLDguYHguKvguKXguYjguIcKK+C4geC4o+C4sOC5guC4q+C5iQor4LiB4Lij4Liw4LmC4Lir4LiZ4LiUCivguIHguKPguLDguYLguKvguKEKK+C4geC4o+C4sOC5guC4q+C4ogor4LiB4Lij4Liw4LmC4Lir4Lii4LmI4LiHCivguIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4p+C4pQor4LiB4Lij4Liw4Lit4LmJ4Lit4LiB4Lij4Liw4LmB4Lit4LmJCivguIHguKPguLDguK3guK3guJTguIHguKPguLDguYHguK3guJQKK+C4geC4o+C4sOC4reC4reC4mgor4LiB4Lij4Liw4Lit4Lit4LihCivguIHguKPguLDguK3guYnguK3guKHguIHguKPguLDguYHguK3guYnguKEKK+C4geC4o+C4sOC4reC4reC4oeC4meC5ieC4swor4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLHguIHguIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4seC4geC4geC4o+C4sOC5hOC4rQor4LiB4Lij4Liw4Lit4Lix4LmJ4Lin4LmB4LiX4LiH4LiE4Lin4Liy4LiiCivguIHguKPguLDguK3guYnguLIKK+C4geC4o+C4sOC4reC4suC4mQor4LiB4Lij4Liw4Lit4Li04LiUCivguIHguKPguLDguK3guLTguJTguIHguKPguLDguYDguK3guLfguYnguK3guJkKK+C4geC4o+C4sOC4reC4tuC4gQor4LiB4Lij4Liw4Lit4Li24LiB4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLbguJQKK+C4geC4o+C4sOC4reC4t+C4lAor4LiB4Lij4Liw4Lit4Li4CivguIHguKPguLDguK3guLjguIEKK+C4geC4o+C4sOC5gOC4reC4mgor4LiB4Lij4Liw4LmA4Lit4LiyCivguIHguKPguLDguYDguK3guLTguIEKK+C4geC4o+C4sOC5gOC4reC4tOC4mgor4LiB4Lij4Liw4LmB4Lit4LmJCivguIHguKPguLDguYHguK3guIEKK+C4geC4o+C4sOC5geC4reC4lAor4LiB4Lij4Liw4LmB4Lit4LiaCivguIHguKPguLDguYHguK3guKEKK+C4geC4o+C4sOC5geC4reC5ieC4oQor4LiB4Lij4Liw4LmE4LitCivguIHguKPguLHguIEKK+C4geC4o+C4seC4geC4guC4tQor4LiB4Lij4Lix4LiHCivguIHguKPguLHguIrguIHguLLguKIKK+C4geC4o+C4seC4k+C4keC5jAor4LiB4Lij4Lix4LiT4Lii4LmMCivguIHguKPguLHguJkKK+C4geC4o+C4seC4mgor4LiB4Lij4Lix4LihCivguIHguKPguLLguIEKK+C4geC4o+C4suC4hwor4LiB4Lij4LmI4Liy4LiHCivguIHguKPguLLguJQKK+C4geC4o+C4suC4lOC5gOC4geC4o+C4teC5ieC4ouC4pwor4LiB4Lij4Liy4LiU4Lin4LiHCivguIHguKPguLLguJkKK+C4geC4o+C5ieC4suC4mQor4LiB4Lij4Liy4LiaCivguIHguKPguLLguJ8KK+C4geC4o+C4suC4oQor4LiB4Lij4Liy4Lih4Lie4Lil4Li5CivguIHguKPguLLguKIKK+C4geC4o+C5iOC4suC4ogor4LiB4Lij4Liy4LilCivguIHguKPguLLguKcKK+C4geC4o+C5ieC4suC4pwor4LiB4Lij4Liy4Lin4LiU4LmI4Liy4LiHCivguIHguKPguLLguKfguKPguLnguJQKK+C4geC4o+C4suC4quC4tOC4gQor4LiB4Lij4LizCivguIHguKPguYjguLMKK+C4geC4o+C5iOC4s+C4geC4o+C4uOC5iOC4mQor4LiB4Lij4Li04LiBCivguIHguKPguLTguYrguIEKK+C4geC4o+C4tOC4geC4geC4o+C4tOC4pwor4LiB4Lij4Li04LiB4LiB4Lij4Li1CivguIHguKPguLTguYjguIcKK+C4geC4o+C4tOC5iuC4hwor4LiB4Lij4Li04LiH4LiB4Lij4Li04LinCivguIHguKPguLTguYnguIfguIHguKPguLTguYnguKcKK+C4geC4o+C4tOC4igor4LiB4Lij4Li04LiT4Li1CivguIHguKPguLTguJXguKIKK+C4geC4o+C4tOC4mQor4LiB4Lij4Li04LiZ4Li1CivguIHguKPguLTguJoKK+C4geC4o+C4tOC4oQor4LiB4Lij4Li04LmI4LihCivguIHguKPguLTguKLguLIKK+C4geC4o+C4tOC4pwor4LiB4Lij4Li04LmJ4LinCivguIHguKPguLUKK+C4geC4o+C4teC4keC4sgor4LiB4Lij4Li14LiUCivguIHguKPguLXguYrguJQKK+C4geC4o+C4teC4mOC4sgor4LiB4Lij4Li14LipCivguIHguKPguLXguKoKK+C4geC4o+C4tuC4hwor4LiB4Lij4Li4CivguIHguKPguLjguIEKK+C4geC4o+C4uOC4geC4geC4o+C4ueC5igor4LiB4Lij4Li44LiHCivguIHguKPguLjguYnguIfguIHguKPguLTguYjguIcKK+C4geC4o+C4uOC4h+C5gOC4guC4oeC4sgor4LiB4Lij4Li44LiH4Lie4Liy4Lil4Li1CivguIHguKPguLjguJMKK+C4geC4o+C4uOC4k+C4sgor4LiB4Lij4Li44LiZCivguIHguKPguLjguYjguJkKK+C4geC4o+C4uOC4mgor4LiB4Lij4Li44LmI4LihCivguIHguKPguLjguYnguKHguIHguKPguLTguYjguKEKK+C4geC4o+C4uOC4ogor4LiB4Lij4Li44Lii4LmA4LiB4Lij4Li14Lii4LinCivguIHguKPguLkKK+C4geC4o+C4ueC4lAor4LiB4Lij4Li54LihCivguIHguYDguKPguJPguLgKK+C4geC5gOC4o+C4meC4l+C4owor4LiB4LmA4Lij4LiZ4LiX4Lij4LmMCivguIHguKTguIoKK+C4geC4pOC4lOC4ouC4suC5gOC4geC4teC4ouC4o+C4kwor4LiB4Lik4LiU4LiyCivguIHguKTguJTguLLguIHguLLguKMKK+C4geC4pOC4lOC4suC4reC4seC4jeC4iuC4peC4tQor4LiB4Lik4LiU4Li0CivguIHguKTguJTguLXguIHguLIKK+C4geC4pOC4lQor4LiB4Lik4LiV4LiB4LiyCivguIHguKTguJXguKLguI7guLXguIHguLIKK+C4geC4pOC4leC4tOC4geC4sgor4LiB4Lik4LioCivguIHguKTguYLguKjguJfguKMKK+C4geC4pOC4qeC4juC4sgor4LiB4Lik4Lip4LiO4Liy4LiNCivguIHguKTguKnguI7guLLguI3guIrguKXguLTguJUKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4peC4tQor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lin4Lil4Li04LiV4Lin4LiyCivguIHguKTguKnguI7guLLguI3guIrguKfguKXguLTguKgKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4p+C5gOC4peC4qAor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Li44Lil4Li1CivguIHguKTguKnguI7guLLguJjguLLguKMKK+C4geC4pOC4qeC4juC4tQor4LiB4Lik4Lip4LiO4Li14LiB4LiyCivguIHguKTguKnguJMKK+C4geC4pOC4qeC4k+C4sgor4LiB4Lik4Lip4Liy4LiTCivguIHguKTguKnguLQKK+C4geC4pQor4LiB4Lil4LiUCivguIHguKXguYjguJkKK+C4geC4peC4mgor4LiB4Lil4Lia4LiXCivguIHguKXguKEKK+C4geC4peC4oeC4oAor4LiB4Lil4LmA4Lih4LmH4LiUCivguIHguKXguKLguLjguJfguJjguYwKK+C4geC4peC4peC4sAor4LiB4Lil4Lin4LiHCivguIHguKXguKfguKEKK+C4geC4peC5ieC4p+C4ogor4LiB4Lil4LmJ4Lin4Lii4LiZ4LmJ4Lit4LiiCivguIHguKXguYnguKfguKLguYTguKHguYkKK+C4geC4peC5ieC4p+C4ouC4q+C4oeC4ueC4quC4seC4hwor4LiB4Lil4Lin4Li04LiY4Li1CivguIHguKXguKgKK+C4geC4peC4qOC4suC4quC4leC4o+C5jAor4LiB4Lil4Lio4Li24LiBCivguIHguKXguKvguLLguKIKK+C4geC4peC5gOC4q+C4ogor4LiB4Lil4LmJ4LitCivguIHguKXguK3guIEKK+C4geC4peC4reC4hwor4LiB4Lil4LmI4Lit4LiHCivguIHguKXguYnguK3guIcKK+C4geC4peC5ieC4reC4h+C5geC4geC4peC5ieC4hwor4LiB4Lil4Lit4LiZCivguIHguKXguYjguK3guJkKK+C4geC4peC5ieC4reC4mQor4LiB4Lil4LmI4Lit4LihCivguIHguKXguYnguK3guKHguYHguIHguKXguYnguKEKK+C4geC4peC4reC4ogor4LiB4Lil4Lix4LiBCivguIHguKXguLHguIcKK+C4geC4peC4seC4lAor4LiB4Lil4Lix4LmI4LiZCivguIHguKXguLHguYnguJkKK+C4geC4peC4seC4meC4lwor4LiB4Lil4Lix4LiZ4LiX4LiB4LmMCivguIHguKXguLHguJnguJfguIHguJnguLTguKfguLLguJvguKrguJbguLLguJkKK+C4geC4peC4seC4mgor4LiB4Lil4Lix4Lih4Lie4LiBCivguIHguKXguLHguKHguJ7guKMKK+C4geC4peC4seC4oeC4nuC4seC4gQor4LiB4Lil4Lix4LinCivguIHguKXguLHguYnguKcKK+C4geC4peC4sgor4LiB4Lil4LmI4LiyCivguIHguKXguYnguLIKK+C4geC4peC4suC4gQor4LiB4Lil4Liy4LiB4Lil4Liy4LiUCivguIHguKXguLLguIcKK+C4geC4peC4suC5gOC4i+C4teC4ouC4o+C5jAor4LiB4Lil4Liy4LiUCivguIHguKXguLLguJrguLLguJUKK+C4geC4peC4suC4mwor4LiB4Lil4LmJ4Liy4LihCivguIHguKXguLLguKIKK+C4geC4peC5ieC4suC4ogor4LiB4Lil4Liy4Lii4LiB4Lil4Lit4LiBCivguIHguKXguYjguLLguKcKK+C4geC4peC4suC5guC4q+C4oQor4LiB4Lil4LmI4LizCivguIHguKXguYnguLMKK+C4geC4peC4tAor4LiB4Lil4Li04LiB4Liy4LilCivguIHguKXguLTguIHguLjguI3guIjguLTguIHguLIKK+C4geC4peC4tOC5iOC4hwor4LiB4Lil4Li04LmJ4LiHCivguIHguKXguLTguYnguIfguIHguKXguLLguIfguJTguIcKK+C4geC4peC4tOC4h+C4hOC5jAor4LiB4Lil4Li04LmI4LiZCivguIHguKXguLTguJvguKPguLXguKLguYwKK+C4geC4peC4tOC5ieC4oQor4LiB4Lil4Li04Lii4Li44LiECivguIHguKXguLUKK+C4geC4peC4teC5iAor4LiB4Lil4Li14LmA4LiL4Lit4Lij4Li14LiZCivguIHguKXguLXguJoKK+C4geC4peC4tuC4hwor4LiB4Lil4Li24LmJ4LiHCivguIHguKXguLbguIfguIHguKXguYjguK3guKEKK+C4geC4peC4tuC4h+C4hOC5jAor4LiB4Lil4Li34LiZCivguIHguKXguLjguYjguKEKK+C4geC4peC4uOC5ieC4oQor4LiB4Lil4Li54LmICivguIHguKXguLnguYLguITguKoKK+C4geC4peC4ueC4mQor4LiB4Lil4Li54LiZ4LmMCivguIHguYDguKXguKfguKPguLAKK+C4geC4p+C4lAor4LiB4Lin4LiZCivguIHguYrguKfguJkKK+C4geC4p+C4meC4reC4tOC4oQor4LiB4Lin4LihCivguIHguKfguKIKK+C4geC4p+C4ouC4iOC4seC5iuC4mgor4LiB4Lin4Lii4LiI4Li14LmKCivguIHguYvguKfguKLguYDguJXguLXguYvguKLguKcKK+C4geC5i+C4p+C4ouC4quC4peC4suC4gQor4LiB4Lin4Lis4Li04LiH4LiB4Liy4Lij4Liy4Lir4Liy4LijCivguIHguKfguLAKK+C4geC4p+C4sOC4geC4p+C4seC4gQor4LiB4Lin4Liw4LmB4LiB4Lin4LmI4LiHCivguIHguKfguLHguIEKK+C4geC4p+C4seC4lAor4LiB4Lin4LiyCivguIHguKfguYjguLIKK+C4geC4p+C5ieC4sgor4LiB4Lin4Liy4LiHCivguIHguKfguYjguLLguIcKK+C4geC4p+C5ieC4suC4hwor4LiB4Lin4Liy4LiH4LmA4LiC4LiZCivguIHguKfguLLguIfguYLguIjguJkKK+C4geC4p+C5iOC4suC4h+C4iuC4mQor4LiB4Lin4Liy4LiH4LiK4Liw4Lih4LiUCivguIHguKfguYjguLLguIfguYLguIvguYnguIcKK+C4geC4p+C4suC4h+C4leC4uOC5ieC4hwor4LiB4Lin4Liy4LiH4LiX4Lit4LiHCivguIHguKfguLLguIfguJvguYjguLIKK+C4geC4p+C4suC4h+C4oeC5ieC4sgor4LiB4Lin4Liy4LiUCivguIHguKfguLLguJkKK+C4geC4p+C5iOC4suC4mQor4LiB4Lin4LmJ4Liy4LiZCivguIHguKfguYrguLLguJkKK+C4geC4p+C5ieC4suC4pwor4LiB4Lin4Liy4Lin4LmA4LiE4Lij4Li34LitCivguIHguKfguLTguJkKK+C4geC4p+C4tQor4LiB4Lip4LiT4LiwCivguIHguKnguKHguLIKK+C4geC4qeC4seC4leC4owor4LiB4Lip4Lix4LiV4Lij4LiyCivguIHguKnguLHguJXguKPguLTguKLguYwKK+C4geC4qeC4seC4leC4o+C4tQor4LiB4Lip4Lix4LiV4Lij4Li14Lii4LmMCivguIHguKnguLHguJXguKPguLXguKjguLnguKMKK+C4geC4qeC4seC4ogor4LiB4Lip4Lix4Lii4LiB4Liy4LijCivguIHguKnguLLguJvguJPguYwKK+C4geC4qeC4suC4ogor4LiB4Lip4Li04LiU4Li0CivguIHguKnguLTguJTguLTguJnguJfguKMKK+C4geC4qeC4tOC4lOC4tOC4meC4l+C4o+C5jAor4LiB4Lip4Li14LiT4Liy4Lio4Lij4LieCivguIHguKnguLXguJTguLQKK+C4geC4qeC4teC4owor4LiB4Lip4Li14Lij4Liy4Lih4Lie4Li4CivguIHguKnguLXguKPguLLguKPguJPguJ4KK+C4geC4qeC4uOC4mOC4sgor4LiB4Lip4Li44Lij4Li1CivguIHguKrguLLguJnguJXguLTguYwKK+C4geC4quC4tAor4LiB4Liq4Li04LiTCivguIHguKsKK+C4geC4q+C4seC4h+C4m+C4suC4ouC4sgor4LiB4Lir4Liy4Lib4LiT4LiwCivguIHguYDguKzguKfguKPguLLguIEKK+C4geC4rQor4LiB4LmI4LitCivguIHguYnguK0KK+C4geC5iuC4rQor4LiB4Lit4LiBCivguIHguYrguK3guIEKK+C4geC4reC5geC4gQor4LiB4Lit4LiHCivguIHguYjguK3guIcKK+C4geC5ieC4reC4hwor4LiB4Lit4LiH4LiB4Lit4LiiCivguIHguK3guIsKK+C4geC4reC4lAor4LiB4LmI4Lit4LiZCivguIHguYnguK3guJkKK+C4geC4reC4mgor4LiB4Lit4Lia4LiZ4Liy4LiHCivguIHguYrguK3guJrguJvguLXguYkKK+C4geC4reC4m+C4owor4LiB4LmJ4Lit4LihCivguIHguK3guKHguIHguYnguK0KK+C4geC5iOC4reC4oeC4geC5ieC4rQor4LiB4LmJ4Lit4Lih4LiB4LmJ4LitCivguIHguK3guKIKK+C4geC5ieC4reC4ogor4LiB4LmL4Lit4LiiCivguIHguK3guKPguLTguKXguKXguLIKK+C4geC4reC4peC5jOC4nwor4LiB4Lit4LmB4Lir4Lil4LiwCivguIHguK3guYDguK3guLXguYrguKLguLAKK+C4geC4sAor4LiB4Liw4LiB4Lij4LmI4Lit4LihCivguIHguLDguIHguKPguYnguLLguKcKK+C4geC4sOC4geC4peC4tOC5ieC4hwor4LiB4Liw4LiB4LmI4Lit4LiHCivguIHguLDguIHguLHguIcKK+C4geC4sOC4geC4tuC4gQor4LiB4Liw4LmA4LiB4Liy4LiwCivguIHguLDguYLguIHguKPguLAKK+C4geC4sOC4h+C5ieC4reC4meC4geC4sOC5geC4h+C5ieC4mQor4LiB4Liw4LiI4Lix4LiHCivguIHguLDguIjguLHguYrguKcKK+C4geC4sOC5geC4iOC4sAor4LiB4Liw4LiK4LiwCivguIHguLDguIrguLHguIcKK+C4geC4sOC4iuC4suC4oeC4suC4qAor4LiB4Liw4LiK4Li04LiHCivguIHguLDguIrguLbguYjguIHguIHguLDguIrguLHguYjguIEKK+C4geC4sOC5geC4iuC5iAor4LiB4Liw4LiL4Lin4LiBCivguIHguLDguIvguYnguLLguKvguK3guKIKK+C4geC4sOC4i+C4teC5iAor4LiB4Liw4LiL4Li14LmJCivguIHguLDguYLguIvguYgKK+C4geC4sOC5guC4i+C5iQor4LiB4Liw4LiU4LiBCivguIHguLDguJTguIcKK+C4geC4sOC4lOC4p+C4mQor4LiB4Liw4LiU4Lit4LiB4LmGCivguIHguLDguJTguLAKK+C4geC4sOC4lOC4seC4h+C4muC4suC4ogor4LiB4Liw4LiU4Lix4LiUCivguIHguLDguJTguYnguLLguIcKK+C4geC4sOC4lOC4s+C4geC4sOC4lOC5iOC4suC4hwor4LiB4Liw4LiU4Li1CivguIHguLDguJTguLXguYgKK+C4geC4sOC4lOC4uOC5ieC4hwor4LiB4Liw4LmA4LiU4LmJCivguIHguLDguYDguJTguIEKK+C4geC4sOC5gOC4lOC4teC5i+C4ouC4pwor4LiB4Liw4LmE4LiUCivguIHguLDguJXguKPguLjguJQKK+C4geC4sOC4leC4reC4gQor4LiB4Liw4LiV4LmI4Lit4LiiCivguIHguLDguJXguLHguIEKK+C4geC4sOC4leC4seC4hwor4LiB4Liw4LiV4Lix4LiH4LiB4Liw4LiV4Li04LmJ4LinCivguIHguLDguJXguLHguIfguYPguJoKK+C4geC4sOC4leC5iOC4sgor4LiB4Liw4LiV4LmK4Liy4LiBCivguIHguLDguJXguYnguLMKK+C4geC4sOC4leC4tOC5iuC4geC4o+C4tOC4gQor4LiB4Liw4LiV4Li04LiH4LiB4Liw4LmB4LiV4LiHCivguIHguLDguJXguLXguJoKK+C4geC4sOC4leC4tuC4h+C4geC4sOC5geC4leC4hwor4LiB4Liw4LiV4Li44LmK4LiBCivguIHguLDguJXguLjguJQKK+C4geC4sOC4leC4uOC4oeC4uQor4LiB4Liw4LiV4Li54LiBCivguIHguLDguJXguLnguYnguKfguLnguYkKK+C4geC4sOC5gOC4leC4gQor4LiB4Liw4LmA4LiV4LiH4LmGCivguIHguLDguYDguJXguIfguYDguKPguIcKK+C4geC4sOC5geC4leC4pwor4LiB4Liw4LmB4LiV4LmI4LinCivguIHguLDguYLguJXguYrguIEKK+C4geC4sOC5guC4leC4geC4geC4sOC4leC4suC4gQor4LiB4Liw4LmC4LiV4LiH4LiB4Liw4LmA4LiV4LiHCivguIHguLDguYLguJXguYnguIfguYLguKvguYjguIcKK+C4geC4sOC4luC4seC4pwor4LiB4Liw4LiX4LiB4Lij4LiBCivguIHguLDguJfguK0KK+C4geC4sOC4l+C4seC4hwor4LiB4Liw4LiX4Lix4LiU4Lij4Lix4LiUCivguIHguLDguJfguLHguJkKK+C4geC4sOC4l+C4seC4meC4q+C4seC4mQor4LiB4Liw4LiX4Lix4LiaCivguIHguLDguJfguLMKK+C4geC4sOC4l+C4tAor4LiB4Liw4LiX4Li34LitCivguIHguLDguJfguLjguJkKK+C4geC4sOC4l+C4ueC5ieC5gOC4iOC5h+C4lOC4leC4seC4pwor4LiB4Liw4LmA4LiX4LiiCivguIHguLDguYDguJfguYjguYDguKPguYgKK+C4geC4sOC5gOC4l+C4suC4sAor4LiB4Liw4LmB4LiX4LmJCivguIHguLDguYHguJfguYjguIcKK+C4geC4sOC5geC4l+C4mQor4LiB4Liw4LiZ4Lin4LilCivguIHguLDguJnguLHguJQKK+C4geC4sOC4muC4reC4hwor4LiB4Liw4Lia4Lit4LiZ4LiB4Liw4Lia4Li24LiHCivguIHguLDguJrguYjguK3guJnguIHguLDguYHguJrguYjguJkKK+C4geC4sOC4muC4seC4hwor4LiB4Liw4Lia4Lix4LmJ4LiHCivguIHguLDguJrguLHguIfguKPguLHguIfguYDguJ3guLfguK3guIEKK+C4geC4sOC4muC4tAor4LiB4Liw4Lia4Li04LmJ4LiHCivguIHguLDguJrguLTguKUKK+C4geC4sOC4muC4tuC4h+C4geC4sOC4muC4reC4mQor4LiB4Liw4Lia4Li44LiUCivguIHguLDguYDguJrguYnguK0KK+C4geC4sOC5gOC4muC4teC4ouC4mQor4LiB4Liw4LmA4Lia4Li34LitCivguIHguLDguYHguJrguIcKK+C4geC4sOC4m+C4o+C4tOC4lOC4geC4sOC4m+C4o+C4reC4ogor4LiB4Liw4Lib4Lij4Li04LiaCivguIHguLDguJvguKXguIHguIHguLDguYDguJvguKXguLXguYnguKIKK+C4geC4sOC4m+C4p+C4geC4geC4sOC5gOC4m+C4teC4ouC4gQor4LiB4Liw4Lib4Lit4LihCivguIHguLDguJvguK3guKHguILguLLguIcKK+C4geC4sOC4m+C4sAor4LiB4Liw4Lib4Lix4LmI4LiZCivguIHguLDguJvguYnguLPguIHguLDguYDguJvguYvguK0KK+C4geC4sOC4m+C4tAor4LiB4Liw4Lib4Li5CivguIHguLDguJvguLnguJQKK+C4geC4sOC4m+C4ueC4lOC4q+C4peC4ueC4lAor4LiB4Liw4LmA4Lib4LiwCivguIHguLDguYDguJvguLIKK+C4geC4sOC5gOC4m+C4tOC5iuC4muC4geC4sOC4m+C5iuC4suC4mgor4LiB4Liw4LmA4Lib4Li14Lii4LiUCivguIHguLDguYHguJvguYnguJkKK+C4geC4sOC5geC4m+C4sAor4LiB4Liw4LmC4Lib4Lij4LiHCivguIHguLDguYLguJvguYLguKUKK+C4geC4sOC4nOC4peC4tuC4geC4geC4sOC4nOC4peC4suC4oQor4LiB4Liw4Lic4Lil4Li44Lia4LiB4Liw4LmC4Lic4Lil4LmICivguIHguLDguYDguJzguYjguJkKK+C4geC4sOC5gOC4nOC4peC4gQor4LiB4Liw4LmC4Lic4Lil4LiB4LiB4Liw4LmA4Lic4Lil4LiBCivguIHguLDguJ7guIcKK+C4geC4sOC4nuC4o+C4p+C4lOC4geC4sOC4nuC4o+C4suC4lAor4LiB4Liw4Lie4Lij4LmI4Lit4LiH4LiB4Liw4LmB4Lie4Lij4LmI4LiHCivguIHguLDguJ7guKPguLTguJoKK+C4geC4sOC4nuC4o+C4uOC4mQor4LiB4Liw4Lie4Lij4Li54LiU4LiB4Liw4Lie4Lij4Liy4LiUCivguIHguLDguJ7guKXguYnguK0KK+C4geC4sOC4nuC4peC5iOC4reC4h+C4geC4sOC5geC4nuC4peC5iOC4hwor4LiB4Liw4Lie4LmJ4LitCivguIHguLDguJ7guK3guIEKK+C4geC4sOC4nuC4reC4hwor4LiB4Liw4Lie4Lix4LiHCivguIHguLDguYDguJ7guKPguLIKK+C4geC4sOC5gOC4nuC4teC4ouC4lAor4LiB4Liw4LmA4Lie4Li14Lii4LiU4LiK4LmJ4Liy4LiHCivguIHguLDguYDguJ7guLXguKLguJTguKvguJnguLkKK+C4geC4sOC4oeC4tOC4lOC4geC4sOC5gOC4oeC4teC5ieC4ouC4mQor4LiB4Liw4Lih4Li54LiV4Li04LiHCivguIHguLDguYDguKHguYfguIcKK+C4geC4sOC5gOC4oeC4teC4ogor4LiB4Liw4Lii4Liy4Lir4LiH4Lix4LiZCivguIHguLDguKLguLbguIHguIHguLDguKLguLfguK0KK+C4geC4sOC4ouC4uAor4LiB4Liw4Lij4LmI4Lit4LiH4LiB4Liw4LmB4Lij4LmI4LiHCivguIHguLDguKPguLDguJXguLAKK+C4geC4sOC4o+C4sOC4q+C4meC4sAor4LiB4Liw4Lij4Lix4LiHCivguIHguLDguKPguLHguJUKK+C4geC4sOC4o+C4suC4hwor4LiB4Liw4Lij4Li04LiHCivguIHguLDguKPguLTguIfguIHguLDguYDguKPguLXguKLguJQKK+C4geC4sOC4o+C4uOC4h+C4geC4sOC4o+C4seC4hwor4LiB4Liw4Lij4Li44LmI4LiH4LiB4Liw4Lij4Li04LmI4LiHCivguIHguLDguKPguLjguJkKK+C4geC4sOC5gOC4owor4LiB4Liw4LmA4Lij4LiB4Liw4Lij4LmI4Lit4LiZCivguIHguLDguYDguKPguYjguIHguLDguKPguYjguK3guJkKK+C4geC4sOC5gOC4o+C5iOC4rQor4LiB4Liw4LmA4Lij4Li14LmI4Lii4LiB4Liw4Lij4Liy4LiUCivguIHguLDguYLguKPguIHguLDguYDguKMKK+C4geC4sOC4peC4p+C4ogor4LiB4Liw4Lil4LitCivguIHguLDguKXguYjguK3guIHguLDguYHguKXguYgKK+C4geC4sOC4peC4reC4iOC4teC5igor4LiB4Liw4Lil4LmI4Lit4LiZCivguIHguLDguKXguYjguK3guKHguIHguLDguYHguKXguYjguKEKK+C4geC4sOC4peC5iOC4reC4ouC4geC4sOC4q+C4peC4tOC4mgor4LiB4Liw4Lil4Liw4Lib4Lix4LiH4Lir4LiyCivguIHguLDguKXguLDguKHguLHguIcKK+C4geC4sOC4peC4sOC5geC4oQor4LiB4Liw4Lil4Liw4Lit4Lit4LihCivguIHguLDguKXguLHguIfguJXguLHguIfguYTguIHguYgKK+C4geC4sOC4peC4seC4mQor4LiB4Liw4Lil4Lix4LiZ4LiX4LiyCivguIHguLDguKXguLIKK+C4geC4sOC4peC4suC4hwor4LiB4Liw4Lil4Liy4Liq4Li1CivguIHguLDguKXguLLguKvguJnguLIKK+C4geC4sOC4peC4s+C4nuC4rQor4LiB4Liw4Lil4Liz4Lie4Lix4LiBCivguIHguLDguKXguLPguYDguJ7guLLguLAKK+C4geC4sOC4peC4tOC4hwor4LiB4Liw4Lil4Li04LmJ4Lih4LiB4Liw4LmA4Lir4Lil4Li14LmI4LiiCivguIHguLDguKXguLTguK3guYjguK3guIcKK+C4geC4sOC4peC4uOC4oeC4nuC4tQor4LiB4Liw4LmA4Lil4LmH4LiHCivguIHguLDguYDguKXguYjguK3guIHguLDguKXguYjguLIKK+C4geC4sOC5gOC4peC4tOC4lAor4LiB4Liw4LmA4Lil4Li14Lii4LinCivguIHguLDguYHguKUKK+C4geC4sOC5guC4peC5iAor4LiB4Liw4LmC4Lil4LiHCivguIHguLDguKfguK3guIHguIHguLDguYHguKfguIEKK+C4geC4sOC4p+C4sAor4LiB4Liw4Liq4LmJ4Lih4LiK4Li34LmI4LiZCivguIHguLDguKrguYnguLLguKvguK3guKIKK+C4geC4sOC4q+C4meC4reC4geC4sOC5geC4q+C4mQor4LiB4Liw4Lir4LiZ4LmH4Lit4LiH4LiB4Liw4LmB4Lir4LiZ4LmH4LiHCivguIHguLDguKvguJnguLAKK+C4geC4sOC4q+C4meC4uOC4h+C4geC4sOC4q+C4meC4tOC4hwor4LiB4Liw4Lir4Lih4Lit4LiBCivguIHguLDguKvguKPguYjguK3guIcKK+C4geC4sOC4q+C4o+C4reC4lAor4LiB4Liw4Lir4Lij4LmH4Lit4Lih4LiB4Liw4LmB4Lir4Lij4LmH4LihCivguIHguLDguKvguKPguLHguJTguIHguLDguJXguLXguIHguLIKK+C4geC4sOC4q+C4o+C4seC4lOC4leC4sOC4m+C4suC4leC4tQor4LiB4Liw4Lir4Lij4LmI4Liy4LiHCivguIHguLDguKvguKPguLLguJkKK+C4geC4sOC4q+C4o+C4tOC5iOC4hwor4LiB4Liw4Lir4Lij4Li14LmICivguIHguLDguKvguKPguLXguYjguJvguLHguYrguJoKK+C4geC4sOC4q+C4peC4seC4muC4geC4sOC5gOC4q+C4peC4t+C4reC4gQor4LiB4Liw4Lir4Lil4Liy4Lib4LmL4LiyCivguIHguLDguKvguKXguYjguLMKK+C4geC4sOC4q+C4peC4teC5iAor4LiB4Liw4Lir4Lil4Li14LiB4Liw4Lir4Lil4LitCivguIHguLDguKvguKXguLjguIHguIHguLDguKvguKXguLTguIEKK+C4geC4sOC4q+C4swor4LiB4Liw4Lir4Li24LihCivguIHguLDguKvguLfguJTguIHguLDguKvguK3guJoKK+C4geC4sOC4q+C4t+C4rQor4LiB4Liw4Lir4Li54LiUCivguIHguLDguYDguKvguJnguYfguJQKK+C4geC4sOC5gOC4q+C4o+C4teC5iOC4ouC4hwor4LiB4Liw4LmA4Lir4Lil4Liy4Liw4LmA4Lib4Liy4LiwCivguIHguLDguYDguKvguKfguLXguKLguIEKK+C4geC4sOC5geC4qwor4LiB4Liw4LmB4Lir4LiZ4LmICivguIHguLDguYHguKvguJnguLAKK+C4geC4sOC5geC4q+C4ouC4gQor4LiB4Liw4LmB4Lir4LiwCivguIHguLDguYLguKvguYkKK+C4geC4sOC5guC4q+C4peC4gQor4LiB4Liw4LmC4Lir4Lil4LmJ4LiHCivguIHguLDguYTguKvguKXguYgKK+C4geC4sOC4reC4p+C4oQor4LiB4Liw4Lit4LmJ4Lit4LiB4Liw4LmB4Lit4LmJCivguIHguLDguK3guK3guKEKK+C4geC4sOC4reC5ieC4reC4oeC4geC4sOC5geC4reC5ieC4oQor4LiB4Liw4Lit4Lix4LiBCivguIHguLDguK3guLHguIHguIHguLDguYTguK0KK+C4geC4sOC4reC4suC4mQor4LiB4Liw4Lit4Liy4LihCivguIHguLDguK3guLTguJQKK+C4geC4sOC4reC4uOC4mgor4LiB4Liw4LmB4LitCivguIHguLDguYHguK3guIEKK+C4geC4sOC5geC4reC4mQor4LiB4Liw4LmB4Lit4LiaCivguIHguLDguYHguK3guKEKK+C4geC4sOC5geC4reC4pwor4LiB4Lix4LiBCivguIHguLHguYrguIEKK+C4geC4seC5ieC4geC5hgor4LiB4Lix4LiB4LiB4Lij4LiyCivguIHguLHguIHguIHguKrguLAKK+C4geC4seC4geC4geC4sAor4LiB4Lix4LiB4LiB4Liy4Lij4Li1CivguIHguLHguIHguIHguLLguKPguLgKK+C4geC4seC4geC4guC4rOC4sAor4LiB4Lix4LiB4Lip4Lix4LiZ4LiV4Lij4Lix4LiHCivguIHguLHguIcKK+C4geC4seC5ieC4hwor4LiB4Lix4LiH4LiBCivguIHguLHguYnguIfguIHguKPguLDguJTguLLguJkKK+C4geC4seC4h+C4geC5ieC4sgor4LiB4Lix4LiH4LmA4LiB4Li14Lii4LiHCivguIHguLHguIfguILguLIKK+C4geC4seC4h+C4guC4suC4p+C4tOC4leC4o+C4k+C4p+C4tOC4quC4uOC4l+C4mOC4tAor4LiB4Lix4LiH4LiE4Li4CivguIHguLHguIfguInguLTguJkKK+C4geC4seC4h+C4n+C4uQor4LiB4Lix4LiH4Lin4LilCivguIHguLHguIfguKfguLLguJkKK+C4geC4seC4h+C5gOC4p+C4teC4ouC4mQor4LiB4Lix4LiH4LiqCivguIHguLHguIfguKrguJTguLLguKUKK+C4geC4seC4h+C5hOC4qgor4LiB4Lix4LiH4Lir4Lix4LiZCivguIHguLHguIjguInguJvguLAKK+C4geC4seC4iOC4ieC4sAor4LiB4Lix4LiI4LiJ4LiyCivguIHguLHguIjguInguLgKK+C4geC4seC4iOC5guC4ieC4l+C4gQor4LiB4Lix4LiNCivguIHguLHguI3guIjguLjguIEKK+C4geC4seC4jeC4iOC4uOC4geC4suC4o+C4sgor4LiB4Lix4LiN4LiK4LiyCivguIHguLHguI3guI3guLIKK+C4geC4seC4jeC4kOC4geC4sAor4LiB4Lix4LiQCivguIHguLHguJPguI/guIHguLAKK+C4geC4seC4k+C4kOC4gQor4LiB4Lix4LiT4LiQ4Lix4LioCivguIHguLHguJPguJDguLHguKjguKfguYwKK+C4geC4seC4k+C4kOC4sgor4LiB4Lix4LiT4LiQ4Li1CivguIHguLHguJPguJHguYwKK+C4geC4seC4k+C4keC4oeC4suC4meC4p+C4gQor4LiB4Lix4LiT4LiR4Lij4LiyCivguIHguLHguJPguJHguLgKK+C4geC4seC4k+C4keC4ueC4p+C4meC4sAor4LiB4Lix4LiT4LiT4LmMCivguIHguLHguJPguKsKK+C4geC4seC4lAor4LiB4Lix4LiV4LiV4Li04LiB4Lih4Liy4LiqCivguIHguLHguJXguJXguLTguIHguLIKK+C4geC4seC4leC4leC4tOC5gOC4geC4ouC4sgor4LiB4Lix4LiV4Lij4LiX4Lix4LiT4LiR4LmMCivguIHguLHguJXguKPguLIKK+C4geC4seC4l+C4peC4tQor4LiB4Lix4LiZCivguIHguLHguYjguJkKK+C4geC4seC5ieC4mQor4LiB4Lix4LiZ4LmA4LiB4Lij4LiyCivguIHguLHguJnguYTguIHguKMKK+C4geC4seC4meC4iuC4tOC4hwor4LiB4Lix4LiZ4LmA4LiK4LitCivguIHguLHguYnguJnguIvguLnguYgKK+C4geC4seC4meC5geC4i+C4hwor4LiB4Lix4LiZ4LiU4Lit4LiHCivguIHguLHguJnguJTguLLguKMKK+C4geC4seC4meC4lOC4suC4pQor4LiB4Lix4LiZ4LmE4LiUCivguIHguLHguJnguJXguYwKK+C4geC4seC4meC4leC4seC4hwor4LiB4Lix4LiZ4LmE4LiV4LijCivguIHguLHguJnguJfguKMKK+C4geC4seC4meC4l+C4o+C4suC4geC4owor4LiB4Lix4LiZ4LiX4LiwCivguIHguLHguYnguJnguJrguLHguIcKK+C4geC4seC4meC4oOC4seC4ogor4LiB4Lix4LiZ4Lig4Li04Lij4Lih4Lii4LmMCivguIHguLHguJnguYDguKHguLXguKLguIcKK+C4geC4seC4meC4ouC5jAor4LiB4Lix4LiZ4Lii4LiyCivguIHguLHguJnguKXguIcKK+C4geC4seC4meC4peC4reC4hwor4LiB4Lix4LiZ4Lil4Li24LiHCivguIHguLHguJnguYHguKrguIcKK+C4geC4seC5ieC4meC4q+C4ouC4seC5iOC4mQor4LiB4Lix4LiZ4LmA4Lit4LiyCivguIHguLHguJoKK+C4geC4seC4muC5geC4geC5iQor4LiB4Lix4Lia4LmB4LiB4Lil4LmJ4LihCivguIHguLHguJrguJrguLjguYDguKPguKgKK+C4geC4seC4mwor4LiB4Lix4Lib4LiV4Lix4LiZCivguIHguLHguJvguJnguIEKK+C4geC4seC4m+C4muC4suC4quC4tOC4gQor4LiB4Lix4Lib4Lib4Liy4Liq4Li04LiBCivguIHguLHguJvguJvguLTguKLguLAKK+C4geC4seC4m+C4m+C4teC4ouC5jAor4LiB4Lix4Lih4Lia4LiZCivguIHguLHguKHguJvguJnguLLguIHguLLguKMKK+C4geC4seC4oeC4m+C4meC4suC4lwor4LiB4Lix4Lih4Lib4LiZ4Li1CivguIHguLHguKHguJvguKPguLDguYLguJQKK+C4geC4seC4oeC4m+C4tQor4LiB4Lix4Lih4Lie4LilCivguIHguLHguKHguJ7guLjguIoKK+C4geC4seC4oeC4nuC4uOC4iuC4nuC4suC4geC4ouC5jAor4LiB4Lix4Lih4Lie4Li5CivguIHguLHguKHguJ7guLnguIrguLIKK+C4geC4seC4oeC5guC4nuC4igor4LiB4Lix4Lih4Lih4Liq4Lix4LiX4LiY4LiyCivguIHguLHguKHguKHguLHguIrguKfguLLguJUKK+C4geC4seC4oeC4oeC4seC4j+C4kOC4suC4mQor4LiB4Lix4Lih4Lih4Lix4LiZ4LiV4Lig4Liy4Lie4Lij4Lix4LiH4Liq4Li1CivguIHguLHguKHguKHguLHguJnguJXguKPguLHguIfguKrguLUKK+C4geC4seC4oeC4oeC4seC4quC4quC4geC4leC4sgor4LiB4Lix4Lih4Lih4Liy4LijCivguIHguLHguKHguKXguLLguKgKK+C4geC4seC4ouC4p+C4tOC4geC4seC4ogor4LiB4Lix4Lil4LiK4Liy4LiNCivguIHguLHguKXguJrguIEKK+C4geC4seC4peC4m+C5jAor4LiB4Lix4Lil4Lib4LiZ4LiyCivguIHguLHguKXguJvguLHguIfguKvguLIKK+C4geC4seC4peC4m+C4suC4p+C4quC4suC4mQor4LiB4Lix4Lil4Lib4Li04LiVCivguIHguLHguKXguJ7guLjguKEKK+C4geC4seC4peC5gOC4oeC5h+C4lAor4LiB4Lix4Lil4Lii4LiyCivguIHguLHguKXguKLguLLguJPguKHguLTguJXguKMKK+C4geC4seC4peC4ouC4suC4k+C4tQor4LiB4Lix4Lil4LmA4Lin4LmJ4LiyCivguIHguLHguKXguKvguLLguKIKK+C4geC4seC4peC5guC4q+C4ogor4LiB4Lix4Lil4Lit4Lit4LihCivguIHguLHguKXguYDguK3guLIKK+C4geC4seC4qOC4oeC4pQor4LiB4Lix4Lio4Lii4LibCivguIHguLHguKnguJMKK+C4geC4sgor4LiB4LmL4LiyCivguIHguLLguIEKK+C4geC4suC4geC4hOC4leC4tAor4LiB4Liy4LiB4LiT4Li24LiBCivguIHguLLguIHguJnguLLguKrguLnguKMKK+C4geC4suC4geC4muC4suC4lwor4LiB4Liy4LiB4Lig4Liy4Lip4LiyCivguIHguLLguIHguKrguLnguKMKK+C4geC4suC4geC4sOC4l+C4tOC4hwor4LiB4Liy4LiB4Liw4LmA4Lii4Li14LiiCivguIHguLLguIHguLUKK+C4geC4suC4hwor4LiB4LmJ4Liy4LiHCivguIHguLLguIfguYDguIHguIcKK+C4geC4suC4h+C5gOC4geC4teC4ouC4hwor4LiB4Liy4LiH4LiC4Lit4LiHCivguIHguLLguIfguYDguILguJkKK+C4geC4suC4iAor4LiB4LmK4Liy4LiLCivguIHguLLguIvguLDguKXguK3guIcKK+C4geC4suC4i+C4sOC4peC4reC4h+C4hOC4swor4LiB4Liy4LiN4LiI4LiZ4LiyCivguIHguLLguJAKK+C4geC4suC4lAor4LiB4LmK4Liy4LiUCivguIHguLLguJkKK+C4geC5iOC4suC4mQor4LiB4LmJ4Liy4LiZCivguIHguYrguLLguJkKK+C4geC4suC4meC4lOC4sgor4LiB4Liy4LiZ4LiV4LmMCivguIHguLLguJnguJfguYwKK+C4geC4suC4meC4mQor4LiB4Liy4LiZ4Lie4Lil4Li5CivguIHguLLguJnguYnguLIKK+C4geC4suC4mgor4LiB4LmJ4Liy4Lia4LmGCivguIHguLLguJrguJrguLHguKcKK+C4geC4suC4muC4sAor4LiB4Liy4Lia4Li44Lij4Li44LipCivguIHguLLguJrguLkKK+C4geC4suC5gOC4m+C4teC5ieC4ouC4lAor4LiB4Liy4Lie4Lii4LmMCivguIHguLLguYDguJ/guK3guLXguJkKK+C4geC4suC5geC4nwor4LiB4Liy4LihCivguIHguYnguLLguKEKK+C4geC4suC4oeC4geC4p+C4oQor4LiB4LmJ4Liy4Lih4LiB4Li44LmJ4LiHCivguIHguLLguKHguJcKK+C4geC4suC4oeC4mQor4LiB4LmJ4Liy4Lih4Lib4Li5CivguIHguYnguLLguKHguJvguLnguKvguKXguLjguJQKK+C4geC4suC4oeC5guC4oeC4l+C4ogor4LiB4Liy4Lih4Lin4Li04LiV4LiW4Liy4LijCivguIHguLLguKHguLHguIoKK+C4geC4suC4oeC4sgor4LiB4Liy4Lih4Liy4LiX4Li14LiZ4LieCivguIHguLLguKHguLLguJ7guIjguKMKK+C4geC4suC4oeC4suC4oeC4tOC4qAor4LiB4Liy4Lih4Liy4Lij4Lih4LiT4LmMCivguIHguLLguKHguLLguKfguIjguKMKK+C4geC4suC4oeC4tOC4meC4tQor4LiB4Liy4Lih4Li04LioCivguIHguLLguYDguKHguKgKK+C4geC4suC5gOC4oeC4quC4uOC4oeC4tOC4iOC4ieC4suC4iOC4suC4owor4LiB4Liy4LiiCivguIHguYjguLLguKIKK+C4geC4suC4ouC4geC4o+C4o+C4oQor4LiB4Liy4Lii4LiE4LiV4Liy4Liq4LiV4Li0CivguIHguLLguKLguJfguKfguLLguKMKK+C4geC4suC4ouC4l+C4uOC4iOC4o+C4tOC4lQor4LiB4Liy4Lii4Lia4Lij4Li04Lir4Liy4LijCivguIHguLLguKLguJ7guLHguJnguJjguJnguYwKK+C4geC4suC4ouC4oOC4suC4ngor4LiB4Liy4Lii4Lig4Liy4Lie4Lia4Liz4Lia4Lix4LiUCivguIHguLLguKLguKfguLTguKDguLLguITguKjguLLguKrguJXguKPguYwKK+C4geC4suC4ouC4quC4tOC4l+C4mOC4tOC5jAor4LiB4Liy4Lii4Liq4Li44LiI4Lij4Li04LiVCivguIHguLLguKLguLLguJ7guKLguJ4KK+C4geC4suC4ouC4tOC4meC4l+C4o+C4teC4ouC5jAor4LiB4Liy4LmA4Lii4LiZCivguIHguLLguYDguKLguJnguJfguKPguLXguKLguYwKK+C4geC4suC4owor4LiB4Liy4Lij4LiBCivguIHguLLguKPguJPguYwKK+C4geC4suC4o+C5jOC4lAor4LiB4Liy4Lij4LiV4Li04LmA4LiB4Lii4LiwCivguIHguLLguKPguYzguJXguLnguJkKK+C4geC4suC4o+C5gOC4lQor4LiB4Liy4Lij4LmC4LiZ4LmJ4Lih4LiW4LmI4Lin4LiHCivguIHguLLguKPguJrguLnguKMKK+C4geC4suC4o+C4muC4ueC4o+C4m+C5iOC4sgor4LiB4Liy4Lij4Lii4LmMCivguIHguLLguKPguKXguLDguYDguKXguYjguJkKK+C4geC4suC4o+C4p+C4tOC4gQor4LiB4Liy4Lij4LmA4Lin4LiBCivguIHguLLguKPguLDguYDguIHguJQKK+C4geC4suC4o+C4sOC4muC4uOC4q+C4meC4tOC4hwor4LiB4Liy4Lij4Lix4LiT4LiR4Lin4LiwCivguIHguLLguKPguLHguJPguKLguYwKK+C4geC4suC4o+C4seC4meC4leC5jAor4LiB4Liy4Lij4Liy4LiH4Lir4Lix4Lin4LiC4Lin4Liy4LiZCivguIHguLLguKPguLjguI0KK+C4geC4suC4o+C4uOC4k+C4ouC5jAor4LiB4Liy4LmA4Lij4LiB4Liy4Lij4LmI4Lit4LiZCivguIHguLLguYDguKPguLXguKLguJkKK+C4geC4suC4pQor4LiB4Liy4Lil4LiB4Lij4Lij4LiT4Li1CivguIHguLLguKXguIHguLHguI3guIrguLTguIHguLLguKrguLnguKMKK+C4geC4suC4peC4geC4tOC4k+C4tQor4LiB4Liy4Lil4LiI4Lix4LiB4LijCivguIHguLLguKXguLHguI3guI3guLjguJXguLIKK+C4geC4suC4peC4seC4jeC4jeC4uQor4LiB4Liy4Lil4Lix4LiUCivguIHguLLguKXguLLguJnguLjguIHguLLguKUKK+C4geC4suC4peC4suC4oeC4quC4ueC4leC4owor4LiB4Liy4Lil4Li04LiBCivguIHguLLguKXguLUKK+C4geC4suC5geC4peC5h+C4geC4i+C4teC5iAor4LiB4Liy4LinCivguIHguYnguLLguKcKK+C4geC4suC4p+C4p+C4suC4pwor4LiB4Liy4LmB4Lin4LiZCivguIHguLLguKjguLTguIEKK+C4geC4suC4qeC4kOC4sAor4LiB4Liy4Lip4LiyCivguIHguLLguKrguKMKK+C4geC4suC4quC4sAor4LiB4Liy4Liq4LiyCivguIHguLLguKrguLLguKMKK+C4geC4suC4quC4suC4p+C4sAor4LiB4Liy4Liq4Li04LmC4LiZCivguIHguLLguKvguKUKK+C4geC4suC4q+C4peC4sgor4LiB4Liy4Lir4Lil4Li04LiaCivguIHguLLguKvguLHguIEKK+C4geC4suC5gOC4q+C4p+C5iOC4sgor4LiB4Liy4LmE4Lir4Lil4LmICivguIHguLLguKwKK+C4geC4suC4rOC4geC4ueC4jwor4LiB4Liy4Lis4Lib4Lix4LiB4Lip4LmMCivguIHguLLguKzguJvguLHguIHguKnguLUKK+C4geC4suC4rOC4nuC4pOC4geC4qeC5jAor4LiB4Liy4Lis4LmC4Lij4LiECivguIHguLLguKzguKfguLLguJUKK+C4geC4suC4rOC4suC4p+C4gQor4LiB4Liy4Liu4Lix4LiHCivguIHguLMKK+C4geC5iOC4swor4LiB4LmJ4LizCivguIHguLPguIHguKfguKEKK+C4geC4s+C4geC4seC4lAor4LiB4Liz4LiB4Lix4LiaCivguIHguYnguLPguIHguLbguYjguIcKK+C4geC4s+C4geC4ueC4mQor4LiB4LmJ4Liz4LmA4LiB4Li04LiZCivguIHguLPguYDguIHguLXguKLguIcKK+C4geC4s+C4hOC4ueC4mQor4LiB4LmI4Liz4LmA4LiE4Li34LitCivguIHguLPguIjguKMKK+C4geC4s+C4iOC4seC4lAor4LiB4Liz4LiI4Liy4LiiCivguIHguLPguIrguLHguJoKK+C4geC4s+C4iuC4swor4LiB4Liz4LmC4LiK4LiBCivguIHguLPguIvguLLguJoKK+C4geC4s+C4i+C4swor4LiB4Liz4LiU4LmJ4LiZCivguIHguLPguJTguLHguJQKK+C4geC4s+C4lOC4suC4pQor4LiB4Liz4LmA4LiU4LiyCivguIHguLPguYDguJTguLLguLAKK+C4geC4s+C4leC4suC4gQor4LiB4Liz4LiX4Lin4LiUCivguIHguLPguJfguKfguJkKK+C4geC4s+C4mOC4owor4LiB4Liz4LiZ4LilCivguIHguLPguJnguLHguJQKK+C4geC4s+C4meC4seC4mQor4LiB4Liz4LiZ4Lix4LilCivguIHguLPguYDguJnguLTguJQKK+C4geC4s+C5gOC4meC4teC4ouC4iAor4LiB4Liz4Lia4LiUCivguIHguLPguJrguJkKK+C4geC4s+C4muC4seC4hwor4LiB4Liz4Lia4Lix4LiUCivguIHguLPguJrguLTguJQKK+C4geC4s+C5gOC4muC5ieC4rQor4LiB4Liz4LmC4Lia4LilCivguIHguLPguJvguK0KK+C4geC4s+C4m+C4seC5iOC4mQor4LiB4Liz4Lib4Lix4LmJ4LiZCivguIHguLPguJzguKXguLIKK+C4geC4s+C4nuC4hwor4LiB4Liz4Lie4LiUCivguIHguLPguJ7guJUKK+C4geC4s+C4nuC4o+C5ieC4sgor4LiB4Liz4Lie4Lij4Liy4LiBCivguIHguLPguJ7guKfguJQKK+C4geC4s+C4nuC4reC4hwor4LiB4Liz4Lie4Li34LiUCivguIHguLPguJ7guLkKK+C4geC4s+C5gOC4nuC4peC4tOC4hwor4LiB4Liz4LmB4Lie4LiHCivguIHguLPguYHguJ7guYnguIcKK+C4geC4s+C4oOC4uQor4LiB4Liz4Lih4Lie4Lik4LiB4Lip4LmMCivguIHguLPguKHguKXguLLguKjguJnguYwKK+C4geC4s+C4oeC5gOC4peC4qAor4LiB4Liz4Lih4Liw4LiW4Lix4LiZCivguIHguLPguKHguLDguKXguK0KK+C4geC4s+C4oeC4sOC4q+C4ouC4teC5iAor4LiB4Liz4Lih4Liw4Lir4Lij4Li04LiUCivguIHguLPguKHguLHguIfguKXguLDguIHguLLguKMKK+C4geC4s+C4oeC4seC4h+C4p+C4tOC4peC4tOC4lQor4LiB4Liz4Lih4Lix4LiK4Lie4LilCivguIHguLPguKLguLLguJkKK+C4geC4s+C4ouC4swor4LiB4Liz4Lij4LitCivguIHguLPguKPguLLguIEKK+C4geC4s+C4o+C4suC4mgor4LiB4Liz4Lij4Liy4LilCivguIHguLPguKPguLkKK+C4geC4s+C5gOC4o+C4tOC4mgor4LiB4Liz4LmE4LijCivguIHguLPguKXguK3guIcKK+C4geC4s+C4peC4seC4hwor4LiB4Liz4Lil4Lix4LiH4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBCivguIHguLPguKXguLHguIfguIrguYnguLLguIfguKrguLLguKMKK+C4geC4s+C4peC4seC4h+C4p+C4seC4p+C5gOC4luC4peC4tOC4hwor4LiB4Liz4Lil4Li44LiHCivguIHguLPguKXguLnguJkKK+C4geC4s+C5gOC4peC4sgor4LiB4Liz4LmA4Lil4Liy4LiwCivguIHguLPguYTguKUKK+C4geC4s+C4quC4o+C4lAor4LiB4Liz4Liq4Lij4Lin4LilCivguIHguLPguYDguKrguLLguLAKK+C4geC4s+C5geC4quC4hwor4LiB4Liz4Lir4LiZ4LiUCivguIHguLPguKvguJnguLHguJQKK+C4geC4s+C4q+C4o+C4suC4gQor4LiB4Liz4LmA4Lir4LiZ4LmH4LiICivguIHguLPguYHguKvguIcKK+C4geC4tOC4gQor4LiB4Li04LmK4LiBCivguIHguLTguYjguIcKK+C4geC4tOC5ieC4h+C4geC5iOC4sgor4LiB4Li04LmJ4LiH4LiB4Li34LitCivguIHguLTguYnguIfguYLguITguKPguIcKK+C4geC4tOC4h+C4muC4uOC4o+C4uOC4qQor4LiB4Li04LiH4Liq4Li44LiBCivguIHguLTguYjguIfguKvguLLguKIKK+C4geC4tOC4iAor4LiB4Li04LiI4LiI4LiwCivguIHguLTguIjguIjguLDguKXguLHguIHguKnguJPguLAKK+C4geC4tOC4iOC4iOC4sgor4LiB4Li04LiU4Liy4LiB4Liy4LijCivguIHguLTguJTguLLguKvguKLguLHguJkKK+C4geC4tOC4leC4leC4tAor4LiB4Li04LiV4Liy4Lir4Lij4Lix4LiHCivguIHguLTguJkKK+C4geC4tOC4meC5gOC4hOC4o+C4sgor4LiB4Li04LiZ4LiZ4LijCivguIHguLTguJnguKPguLTguJkKK+C4geC4tOC4meC4o+C4tQor4LiB4Li04LiZ4Li54LiZCivguIHguLTguYrguJoKK+C4geC4tOC4oQor4LiB4Li04Lih4LiV4Li24LmL4LiHCivguIHguLTguKHguLTguIrguLLguJXguLQKK+C4geC4tOC4oeC4tOC4p+C4tOC4l+C4ouC4sgor4LiB4Li04LmC4Lih4LmC4LiZCivguIHguLTguYLguKLguJXguLXguJkKK+C4geC4tOC4o+C4sAor4LiB4Li04Lij4Li04LiT4Li1CivguIHguLTguKPguLTguJnguJcKK+C4geC4tOC4o+C4tOC5gOC4meC4qOC4p+C4owor4LiB4Li04Lij4Li04Lii4LiyCivguIHguLTguKXguKHguLAKK+C4geC4tOC5gOC4peC4mQor4LiB4Li04LmA4Lil4LiqCivguIHguLTguYLguKUKK+C4geC4tOC5guC4peC4oeC4geC4sAor4LiB4Li04LmI4LinCivguIHguLTguYvguKcKK+C4geC4teC5iAor4LiB4Li14LmJCivguIHguLXguYsKK+C4geC4teC4jwor4LiB4Li14LiUCivguIHguLXguJXguLLguKPguYwKK+C4geC4teC4mgor4LiB4Li14Lij4LiV4Li0CivguIHguLXguKfguLUKK+C4geC4teC4rOC4sgor4LiB4Li24LiBCivguIHguLbguIHguJbguK3guIcKK+C4geC4tuC4hwor4LiB4Li24LmI4LiHCivguIHguLbguYvguJkKK+C4geC4uAor4LiB4Li44LiBCivguIHguLjguYrguIEKK+C4geC4uOC4geC5huC4geC4seC4geC5hgor4LiB4Li44LmK4LiB4LmG4LiB4Li04LmK4LiB4LmGCivguIHguLjguIHguIHguLHguIEKK+C4geC4uOC5iuC4geC4geC4tOC5iuC4gQor4LiB4Li44LiB4LiB4Li44LiPCivguIHguLjguIHguIHguLjguKMKK+C4geC4uOC4geC4guC4teC5ieC4q+C4oeC4uQor4LiB4Li44LiB4Lij4Lij4LihCivguIHguLjguIHguYjguK3guIcKK+C4geC4uOC4geC4sAor4LiB4Li44LiB4Li44LiY4Lig4Lix4LiT4LiR4LmMCivguIHguLjguYnguIcKK+C4geC4uOC5ieC4h+C5gOC4leC5ieC4mQor4LiB4Li44LmJ4LiH4Lii4Li04LiHCivguIHguLjguIfguK3guJkKK+C4geC4uOC4h+C4suC4mQor4LiB4Li44LmC4LiH4LiBCivguIHguLjguIjguLUKK+C4geC4uOC4jeC5geC4iAor4LiB4Li44LiN4LiK4LijCivguIHguLjguI4KK+C4geC4uOC4juC4sgor4LiB4Li44LiO4Liy4LiY4Liy4LijCivguIHguLjguI7guLUKK+C4geC4uOC4j+C4kOC4seC4hwor4LiB4Li44LiP4Li0CivguIHguLjguJPguJHguYwKK+C4geC4uOC4k+C4keC4pQor4LiB4Li44LiT4LiR4Li04LiZCivguIHguLjguJPguJHguLUKK+C4geC4uOC4k+C5guC4kQor4LiB4Li44LiT4Liy4LilCivguIHguLjguJPguLQKK+C4geC4uOC4k+C4tQor4LiB4Li44LiUCivguIHguLjguJTguLHguIcKK+C4geC4uOC4lOC4seC5iOC4mQor4LiB4Li44LiU4LiyCivguIHguLjguJfguLHguJPguJHguYwKK+C4geC4uOC4mQor4LiB4Li44LmK4LiZCivguIHguLjguJnguYDguIrguLXguKLguIcKK+C4geC4uOC4meC4i+C4t+C4rQor4LiB4Li44LiZ4LiX4Li1CivguIHguLjguYLguJnguIHguLLguKHguK0KK+C4geC4uOC4mgor4LiB4Li44Lia4LiB4Lix4LiaCivguIHguLjguKEKK+C4geC4uOC5iOC4oQor4LiB4Li44Lih4Lid4Lit4LiiCivguIHguLjguKHguKDguYwKK+C4geC4uOC4oeC4oOC4meC4tOC4ouC4sgor4LiB4Li44Lih4Lig4Lix4LiT4LiR4LmMCivguIHguLjguKHguKDguLIKK+C4geC4uOC4oeC4oOC4tOC4pQor4LiB4Li44Lih4Lig4Li14Lil4LmMCivguIHguLjguKHguKHguLLguKoKK+C4geC4uOC4oeC5gOC4q+C4hwor4LiB4Li44Lih4Liy4LijCivguIHguLjguKHguLLguKPguKXguKzguLTguJXguLIKK+C4geC4uOC4oeC4suC4o+C4sgor4LiB4Li44Lih4Liy4Lij4Li04LiB4LiyCivguIHguLjguKHguLLguKPguLUKK+C4geC4uOC4oeC4uOC4lwor4LiB4Li44LiiCivguIHguLjguYrguKIKK+C4geC4uOC5i+C4ogor4LiB4Li44LmL4Lii4LmGCivguIHguLjguKLguIrguYjguLLguKIKK+C4geC4uOC5iOC4ouC4q+C4peC4uOC5iOC4ouC4quC5ieC4oQor4LiB4Li44Lii4LmA4Liu4LiHCivguIHguLjguKPguKMKK+C4geC4uOC4o+C4sAor4LiB4Li44Lij4Li44LmA4LiB4Lip4LiV4LijCivguIHguLjguKPguLjguIcKK+C4geC4uOC4o+C4uOC4nuC4tOC4meC4l+C5jAor4LiB4Li44Lij4Li44LijCivguIHguLjguYDguKPguLIKK+C4geC4uOC4pQor4LiB4Li44Lil4LiB4Lix4Lil4Lii4LiyCivguIHguLjguKXguIHguLnguJPguLUKK+C4geC4uOC4peC4hOC4uOC4o+C4uAor4LiB4Li44Lil4LiK4LiZCivguIHguLjguKXguIrguLLguJUKK+C4geC4uOC4peC4lOC4tOC4peC4gQor4LiB4Li44Lil4LiX4Li54Liq4LiBCivguIHguLjguKXguJjguKPguKPguKEKK+C4geC4uOC4peC4mOC4tOC4lOC4sgor4LiB4Li44Lil4LiZ4Liy4LiECivguIHguLjguKXguJnguLLguKPguLUKK+C4geC4uOC4peC4meC4suC4qAor4LiB4Li44Lil4Lia4LiU4Li1CivguIHguLjguKXguJrguLjguJXguKMKK+C4geC4uOC4peC4muC4uOC4o+C4uOC4qQor4LiB4Li44Lil4Lie4LiY4Li5CivguIHguLjguKXguKHguLHguIjguInguKPguLTguKLguLAKK+C4geC4uOC4peC4oeC4tOC4leC4owor4LiB4Li44Lil4Lin4Liy4LijCivguIHguLjguKXguYDguKfguJfguLTguJXguLIKK+C4geC4uOC4peC4quC4leC4o+C4tQor4LiB4Li44Lil4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguIHguLjguKXguLIKK+C4geC4uOC4peC4suC4q+C4pQor4LiB4Li44Lil4Li1CivguIHguLjguKXguLXguIHguLjguIjguK0KK+C4geC4uOC4peC4uOC4m+C4geC4suC4iOC4suC4o+C4ouC5jAor4LiB4Li44LmA4Lil4LiyCivguIHguLjguYHguKUKK+C4geC4uOC5hOC4pQor4LiB4Li44Lin4LiwCivguIHguLjguYDguKfguKMKK+C4geC4uOC4qOC4o+C4suC4igor4LiB4Li44Lio4LilCivguIHguLjguKjguYLguKXguJrguLLguKIKK+C4geC4uOC4quC4pQor4LiB4Li44Liq4LiwCivguIHguLjguKrguLjguKEKK+C4geC4uOC4quC4uOC4oeC4oOC5jAor4LiB4Li44Liq4Li44Lih4LiyCivguIHguLjguKrguLjguKHguLLguKXguKLguYwKK+C4geC4uOC4quC4uOC4oeC4tOC4leC4peC4lOC4suC5gOC4p+C4peC4peC4tOC4leC4sgor4LiB4Li44Lir4LiBCivguIHguLjguKvguJnguLUKK+C4geC4uOC4q+C4meC4uOC4hwor4LiB4Li44Lir4Lij4LmI4LiyCivguIHguLjguKvguKXguYjguLIKK+C4geC4uOC4q+C4peC4suC4mgor4LiB4Li44LmB4Lir4Lil4LiwCivguIHguLkKK+C4geC4ueC5iAor4LiB4Li54LmJCivguIHguLnguYrguIEKK+C4geC4ueC4jwor4LiB4Li54LiP4LiyCivguIHguLnguYLguI/guJrguLLguKIKK+C4geC4ueC4k+C4keC5jAor4LiB4Li54LiUCivguIHguLnguJkKK+C4geC4ueC4mgor4LiB4Li54Lib4Lij4Li1CivguIHguLnguKPguKHguLAKK+C4geC4ueC4o+C4oeC4suC4p+C4leC4suC4owor4LiB4Li54Lij4LizCivguYDguIEKK+C5gOC4geC5iAor4LmA4LiB4LmKCivguYDguIHguYsKK+C5gOC4geC5ieC5huC4geC4seC4h+C5hgor4LmA4LiB4LiBCivguYDguIHguYrguIEKK+C5gOC4geC4geC4oeC4sOC5gOC4q+C4o+C4gQor4LmA4LiB4LmK4LiB4Liu4Lin4LiiCivguYDguIHguYnguIHguLHguIcKK+C5gOC4geC5h+C4hwor4LmA4LiB4LmI4LiHCivguYDguIHguYnguIcKK+C5gOC4geC5i+C4hwor4LmA4LiB4LiH4LiB4Lit4LiiCivguYDguIHguYnguIfguIHguYnguLLguIcKK+C5gOC4geC4h+C5gOC4guC4hwor4LmA4LiB4LmL4LiH4LmA4LiE4LiHCivguYDguIHguYfguIgKK+C5gOC4geC4iOC4tOC4reC4suC4iOC4suC4o+C4ouC5jAor4LmA4LiB4LiK4LiyCivguYDguIHguJPguJHguYwKK+C5gOC4geC4k+C4keC5jOC4leC4sOC4nuC4seC4lAor4LmA4LiB4LiUCivguYDguIHguYfguJQKK+C5gOC4geC4leC4uAor4LmA4LiB4LiZCivguYDguIHguYjguJkKK+C5gOC4geC4meC5hgor4LmA4LiB4LmH4LiaCivguYDguIHguKEKK+C5gOC4geC4ogor4LmA4LiB4Lii4LmMCivguYDguIHguKLguLnguKMKK+C5gOC4geC4o+C4hwor4LmA4LiB4Lij4LmH4LiHCivguYDguIHguKPguJQKK+C5gOC4geC4o+C5h+C4lAor4LmA4LiB4Lij4LiZCivguYDguIHguKPguYjguK0KK+C5gOC4geC4o+C4reC4sAor4LmA4LiB4Lij4Liy4LiwCivguYDguIHguKPguLLguLDguYDguJ7guIrguKPguYTguJ7guJHguLnguKPguKLguYwKK+C5gOC4geC4o+C4tOC4gQor4LmA4LiB4Lij4Li04LiZCivguYDguIHguKPguLTguYjguJkKK+C5gOC4geC4o+C4teC4ouC4gQor4LmA4LiB4Lij4Li14Lii4LiHCivguYDguIHguKPguLXguKLguJQKK+C5gOC4geC4o+C4teC4ouC4mQor4LmA4LiB4Lij4Li14Lii4LiaCivguYDguIHguKPguLXguKLguKEKK+C5gOC4geC4o+C4teC4ouC4oeC4geC4o+C4oQor4LmA4LiB4Lij4Li14Lii4LinCivguYDguIHguKPguLXguYnguKLguKcKK+C5gOC4geC4o+C4teC5ieC4ouC4p+C5hgor4LmA4LiB4LmA4LijCivguYDguIHguKXguYfguJQKK+C5gOC4geC4peC4qAor4LmA4LiB4Lil4LitCivguYDguIHguKXguLIKK+C5gOC4geC4peC5ieC4sgor4LmA4LiB4Lil4Liy4LiwCivguYDguIHguKXguLXguYjguKIKK+C5gOC4geC4peC4teC5ieC4ogor4LmA4LiB4Lil4Li14Lii4LiHCivguYDguIHguKXguLXguYnguKLguIcKK+C5gOC4geC4peC4teC4ouC4lAor4LmA4LiB4Lil4Li14Lii4LinCivguYDguIHguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4geC4peC4t+C4rQor4LmA4LiB4Lil4Li34LmJ4LitCivguYDguIHguKXguLfguK3guIEKK+C5gOC4geC4peC4t+C5iOC4reC4mQor4LmA4LiB4Lil4Li34LmJ4Lit4LiZCivguYDguIHguYTguKUKK+C5gOC4geC4p+C4pQor4LmA4LiB4Lin4Lil4Liy4LiX4Li1CivguYDguIHguKfguKXguLTguJkKK+C5gOC4geC4p+C4peC4tQor4LmA4LiB4Lin4Lix4LiPCivguYDguIHguKfguLXguKLguJkKK+C5gOC4geC4qAor4LmA4LiB4Lio4LieCivguYDguIHguKjguKcKK+C5gOC4geC4qOC4sgor4LmA4LiB4Lio4Li04LiZ4Li1CivguYDguIHguKjguLUKK+C5gOC4geC4qeC4leC4owor4LmA4LiB4Lip4LiV4Lij4LiB4LijCivguYDguIHguKnguJXguKPguIHguKPguKPguKEKK+C5gOC4geC4qeC4leC4o+C4muC4lOC4tQor4LmA4LiB4Lip4LiV4Lij4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguIHguKnguKEKK+C5gOC4geC4qeC4teC4ouC4kwor4LmA4LiB4Lip4Li14Lii4LiZCivguYDguIHguKnguLXguKLguKMKK+C5gOC4geC4qgor4LmA4LiB4Liq4LiV4Liy4LmC4LibCivguYDguIHguKrguKMKK+C5gOC4geC4quC4o+C4tQor4LmA4LiB4Liq4LiyCivguYDguIHguKrguLUKK+C5gOC4geC5iOC4q+C4peC4tQor4LmA4LiB4LmJ4LitCivguYDguIHguK3guLTguIrguLIKK+C5gOC4geC4sAor4LmA4LiB4Liw4LiB4LiwCivguYDguIHguLIKK+C5gOC4geC5iOC4sgor4LmA4LiB4LmJ4LiyCivguYDguIHguYvguLIKK+C5gOC4geC4suC4leC5jAor4LmA4LiB4Liy4LiX4Lix4LiT4LiR4LmMCivguYDguIHguLLguJfguLjguKHguJ7guKMKK+C5gOC4geC4suC4muC4tOC4mQor4LmA4LiB4Liy4Lia4Li04LilCivguYDguIHguLLguKHguLLguKMKK+C5gOC4geC4suC4peC4seC4lAor4LmA4LiB4Liy4Lil4Li04LiZCivguYDguIHguLLguKjguLHguKXguKLguYwKK+C5gOC4geC4suC5hOC4qOC4ogor4LmA4LiB4Liy4LmA4Lir4Lil4LiyCivguYDguIHguLLguYDguKvguKXguLXguKLguIcKK+C5gOC4geC5ieC4suC4reC4teC5iQor4LmA4LiB4Liy4LiwCivguYDguIHguLLguLDguYHguIHguLAKK+C5gOC4geC4tOC4hwor4LmA4LiB4Li04LmJ4LiHCivguYDguIHguLTguJQKK+C5gOC4geC4tOC4mQor4LmA4LiB4Li04LiaCivguYDguIHguLXguKIKK+C5gOC4geC4teC4ouC4geC4geC4suC4ogor4LmA4LiB4Li14Lii4LiHCivguYDguIHguLXguYjguKLguIcKK+C5gOC4geC4teC5i+C4ouC4hwor4LmA4LiB4Li14Lii4LiICivguYDguIHguLXguKLguJQKK+C5gOC4geC4teC4ouC4mQor4LmA4LiB4Li14LmJ4Lii4Lih4LmE4LiJ4LmICivguYDguIHguLXguYnguKLguKHguK3guLXguYsKK+C5gOC4geC4teC4ouC4o+C4leC4tAor4LmA4LiB4Li14Lii4Lij4LiV4Li04LmMCivguYDguIHguLXguYjguKLguKcKK+C5gOC4geC4teC5ieC4ouC4pwor4LmA4LiB4Li14LmK4Lii4LinCivguYDguIHguLXguYrguKLguLAKK+C5gOC4geC4t+C5ieC4rQor4LmA4LiB4Li34Lit4LiBCivguYDguIHguLfguYnguK3guIHguLnguKUKK+C5gOC4geC4t+C4reC4mgor4LmB4LiBCivguYHguIHguYgKK+C5geC4geC5iQor4LmB4LiB4LiHCivguYHguIHguYjguIcKK+C5geC4geC5ieC4hwor4LmB4LiB4LmK4LiHCivguYHguIHguIfguILguKEKK+C5geC4geC4h+C5hOC4lAor4LmB4LiB4LiH4LmB4LiZ4LiHCivguYHguIHguYjguIfguYHguKLguYjguIcKK+C5geC4geC5guC4lOC4peC4tOC5gOC4meC4teC4ouC4oQor4LmB4LiB4LiZCivguYHguIHguYjguJkKK+C5geC4geC4meC4sAor4LmB4LiB4LmB4LiZCivguYHguIHguYrguJsKK+C5geC4geC4oQor4LmB4LiB4LmJ4LihCivguYHguIHguKHguKHguLIKK+C5geC4geC4o+C4gQor4LmB4LiB4Lij4LmI4LiHCivguYHguIHguKPguYfguJkKK+C5geC4geC4o+C4meC4tOC4lQor4LmB4LiB4Lij4LmE4Lif4LiV4LmMCivguYHguIHguKPguYjguKcKK+C5geC4geC4o+C4sAor4LmB4LiB4LilCivguYHguIHguKXguYgKK+C5geC4geC4peC5ieC4hwor4LmB4LiB4Lil4LiZCivguYHguIHguKXguJoKK+C5geC4geC4peC5ieC4oQor4LmB4LiB4Lil4Lil4Lit4LiZCivguYHguIHguKXguYDguKXguLXguKLguKEKK+C5geC4geC4peC5ieC4pwor4LmB4LiB4Lil4LiwCivguYHguIHguYHguKUKK+C5geC4geC4pwor4LmB4LiB4LmJ4LinCivguYHguIHguKfguYjguIcKK+C5geC4geC4p+C5iOC4mQor4LmB4LiB4LmH4LiqCivguYHguIHguYrguKoKK+C5geC4geC4sAor4LmC4LiBCivguYLguIHguYgKK+C5guC4geC5iQor4LmC4LiB4LmLCivguYLguIHguIEKK+C5guC4geC4geC4meC4uOC4lwor4LmC4LiB4LiB4Li04LilCivguYLguIHguIHguLTguKXguLIKK+C5guC4geC5guC4geC5iQor4LmC4LiB4LiHCivguYLguIHguYjguIcKK+C5guC4geC4h+C4geC4suC4hwor4LmC4LiB4LmJ4LiH4LmA4LiB4LmJ4LiHCivguYLguIHguIfguYLguIHguYkKK+C5guC4geC5ieC4h+C5guC4hOC5ieC4hwor4LmC4LiB4LmA4LiK4Liy4Lin4LmMCivguYLguIHguI3guIjguJkKK+C5guC4geC4jeC4iOC4sgor4LmC4LiB4LiP4Li0CivguYLguIHguJAKK+C5guC4geC4kOC4suC4qgor4LmC4LiB4LiTCivguYLguIHguJPguIEKK+C5guC4geC4k+C4keC4seC4jeC4jeC4sAor4LmC4LiB4LiU4Lix4LiHCivguYLguIHguJXguYTguJUKK+C5guC4geC4l+C4seC4k+C4keC5jAor4LmC4LiB4LiZCivguYLguIHguYjguJkKK+C5guC4geC5i+C4mQor4LmC4LiB4LiZ4Liy4LiE4Lih4LiZ4LmMCivguYLguIHguYLguJnguYDguKPguLXguKIKK+C5guC4geC4m+C4tOC4meC4swor4LmC4LiB4Lih4LilCivguYLguIHguKHguLLguKPguKDguLHguIjguIjguYwKK+C5guC4geC4oeC4uOC4lwor4LmC4LiB4LmA4Lih4LiZCivguYLguIHguYDguKHguKgKK+C5guC4geC4ogor4LmC4LiB4Lij4LmJCivguYLguIHguKPguIEKK+C5guC4geC4o+C4geC4geC4o+C4suC4gQor4LmC4LiB4Lij4LiHCivguYLguIHguKPguYjguIcKK+C5guC4geC4o+C5iOC4h+C4geC4o+C5iOC4suC4hwor4LmC4LiB4Lij4LiH4LmA4LiB4Lij4LiHCivguYLguIHguKPguYvguIfguYDguIHguKPguYvguIcKK+C5guC4geC4o+C4jeC4iAor4LmC4LiB4Lij4LiUCivguYLguIHguKPguJXguYvguJkKK+C5guC4geC4o+C4mAor4LmC4LiB4Lij4LiY4LiyCivguYLguIHguKPguYvguJkKK+C5guC4geC4o+C4oQor4LmC4LiB4Lij4LiiCivguYLguIHguKPguKgKK+C5guC4geC5guC4o+C5guC4geC5gOC4lQor4LmC4LiB4LmC4Lij4LmC4LiB4LmC4Lij4LiBCivguYLguIHguYLguKPguYLguIHguYLguKoKK+C5guC4geC4peC4hwor4LmC4LiB4Lil4LiZCivguYLguIHguKXguLLguKvguKUKK+C5guC4geC5hOC4pQor4LmC4LiB4Lin4Li04LiXCivguYLguIHguKfguLTguKzguLLguKMKK+C5guC4geC4qAor4LmC4LiB4Lio4LilCivguYLguIHguKkKK+C5guC4geC4qeC4oQor4LmC4LiB4Lip4LiiCivguYLguIHguKoKK+C5guC4geC4quC4mQor4LmC4LiB4Liq4Lix4LiKCivguYLguIHguKrguLTguJnguJfguKPguYwKK+C5guC4geC4quC4teC4ouC5jAor4LmC4LiB4Liq4Li44LihCivguYLguIHguYTguKrguKIKK+C5guC4geC4q+C4gQor4LmC4LiB4Lir4Lin4LiyCivguYLguIHguKvguLHguI0KK+C5g+C4geC4peC5iQor4LmE4LiBCivguYTguIHguYgKK+C5hOC4geC5iQor4LmE4LiB4LmKCivguYTguIHguYsKK+C5hOC4geC5iOC4geC4reC4oQor4LmE4LiB4LmL4LmB4LiU4LiHCivguYTguIHguYjguYDguJXguLXguYnguKIKK+C5hOC4geC5iOC4meC4sgor4LmE4LiB4LmI4Lie4Lix4LilCivguYTguIHguYjguJ/guYnguLIKK+C5hOC4geC4owor4LmE4LiB4Lij4LieCivguYTguIHguKPguKXguLLguKoKK+C5hOC4geC4o+C4qOC4owor4LmE4LiB4Lij4Lio4Lij4Li1CivguYTguIHguKPguKrguKMKK+C5hOC4geC4o+C4quC4tOC4l+C4mOC4tAor4LmE4LiB4LilCivguYTguIHguKXguYgKK+C5hOC4geC4peC4suC4qgor4LmE4LiB4LinCivguYTguIHguKfguLHguKUKK+C5hOC4geC5iOC5hOC4q+C5iQor4LiCCivguILguITguLAKK+C4guC4hOC4suC4mOC4tOC4mwor4LiC4LiE4Liy4Lig4Li04Lij4Liy4LihCivguILguITguLLguKrguJnguLAKK+C4guC5gOC4hOC4qOC4p+C4owor4LiC4LiHCivguILguIfguIjguLfguYrguK0KK+C4guC4iOC4owor4LiC4LiI4Lit4LiBCivguILguIjguLHguJQKK+C4guC4iOC5iOC4suC4hwor4LiC4LiI4Liy4LiiCivguILguIjguLLguKcKK+C4guC4iOC4tOC4lQor4LiC4LiI4Li04Lij4Li04LiUCivguILguIjguLUKK+C4guC4iOC4uOC4ogor4LiC4LmA4LiI4LiyCivguILguJPguLAKK+C4guC4k+C4sOC4iOC4tOC4lQor4LiC4LiT4Li04LiBCivguILguJPguLTguIHguKrguKHguLLguJjguLQKK+C4guC4lAor4LiC4LiU4Liy4LiZCivguILguJXguK3guKIKK+C4guC4l+C4tOC4hwor4LiC4LiX4Li24LiHCivguILguJkKK+C4guC5ieC4mQor4LiC4LiZ4LiHCivguILguJnguIfguYDguJnguLfguYnguK0KK+C4guC4meC4lAor4LiC4LiZ4LiZCivguILguJnguJoKK+C4guC4meC4oQor4LiC4LiZ4Lih4LiI4Li14LiZCivguILguJnguKHguYDguJrguLfguYnguK3guIfguI3guKfguJkKK+C4guC4meC4oeC4m+C4seC4hwor4LiC4LiZ4Lih4Lic4Liq4Lih4LiZ4LmJ4Liz4Lii4LiyCivguILguJnguKHguJzguLHguIHguIHguLLguJQKK+C4guC4meC4oeC5gOC4quC5ieC4mQor4LiC4LiZ4Lih4Lir4Lix4Lin4Lic4Lix4LiB4LiB4Liy4LiUCivguILguJnguK3guIcKK+C4guC4meC4reC4mQor4LiC4LiZ4Lit4LiaCivguILguJnguLHguJQKK+C4guC4meC4seC4mQor4LiC4LiZ4Liy4LiBCivguILguJnguLLguIcKK+C4guC4meC4suC4lAor4LiC4LiZ4Liy4LiZCivguILguJnguLLguJoKK+C4guC4meC4suC4ogor4LiC4LiZ4LizCivguILguJnguLTguKnguJAKK+C4guC4meC4tOC4qeC4kOC4sgor4LiC4LiZ4Li44LiZCivguILguJoKK+C4guC4muC4guC4seC4mQor4LiC4Lia4LiWCivguILguJrguKfguJkKK+C4guC4muC4p+C4owor4LiC4Lia4Li54LijCivguILguKEKK+C4guC5iOC4oQor4LiC4Lih4LiH4LmC4LiB4Lij4LiiCivguILguKHguKEKK+C4guC4oeC4p+C4lAor4LiC4Lih4Lin4LiU4Lii4LiyCivguILguKHguKfguJkKK+C4guC4oeC4q+C4tOC4mQor4LiC4Lih4Lit4LiHCivguILguKHguYjguK3guKEKK+C4guC4oeC4reC4ogor4LiC4Lih4Lix4LiB4LmA4LiC4Lih4LmJ4LiZCivguILguKHguLHguIcKK+C4guC4oeC4seC4mgor4LiC4Lih4LiyCivguILguKHguYnguLMKK+C4guC4oeC4tOC5ieC4mQor4LiC4Lih4Li04LiaCivguILguKHguLXguILguKHguLHguJkKK+C4guC4oeC4tuC4hwor4LiC4Lih4Li4CivguILguKHguLjguIHguILguKHguK3guKEKK+C4guC4oeC4uOC4geC4guC4oeC4seC4pwor4LiC4Lih4Li44LiU4LiC4Lih4Li04LiUCivguILguKHguLjguJoKK+C4guC4oeC4uOC4oQor4LiC4LmC4Lih4LiiCivguILguKLguJQKK+C4guC4ouC4oQor4LiC4Lii4LmI4LihCivguILguKLguKUKK+C4guC4ouC4reC4gQor4LiC4Lii4Lit4LiHCivguILguKLguYjguK3guJkKK+C4guC4ouC5ieC4reC4mQor4LiC4Lii4LiwCivguILguKLguLDguYHguILguKLguIcKK+C4guC4ouC4seC4gQor4LiC4Lii4Lix4LiZCivguILguKLguLHguYnguJkKK+C4guC4ouC4seC4mgor4LiC4Lii4Liy4LiUCivguILguKLguLLguJoKK+C4guC4ouC4suC4ogor4LiC4Lii4LizCivguILguKLguYnguLMKK+C4guC4ouC4tOC4gQor4LiC4Lii4Li04LiaCivguILguKLguLTguYjguKEKK+C4guC4ouC4teC5iQor4LiC4Lii4Li14LmI4LiC4Lii4Lix4LiZCivguILguKLguLjguIHguILguKLguLTguIEKK+C4guC4ouC4uOC4geC4guC4ouC4uOC4ogor4LiC4Lii4Li44LiaCivguILguKLguLjguKEKK+C4guC4ouC4uOC5ieC4oQor4LiC4Lii4Li44LmJ4Lih4LiV4Li14LiZ4Lir4Lih4LiyCivguILguKLguLjguKIKK+C4guC4o+C4oQor4LiC4Lij4Lij4LiE4LmMCivguILguKPguLHguKcKK+C4guC4o+C4tOC4mgor4LiC4Lij4Li1CivguILguKPguLbguKEKK+C4guC4o+C4uOC4guC4o+C4sAor4LiC4Lil4LmJ4LiHCivguILguKXguJoKK+C4guC4peC4oQor4LiC4Lil4Lin4LiZCivguILguKXguYnguK0KK+C4guC4peC4seC4hwor4LiC4Lil4Lix4LiaCivguILguKXguLIKK+C4guC4peC4suC4lAor4LiC4Lil4Liy4LiiCivguILguKXguLTguJoKK+C4guC4peC4tOC4muC4l+C4reC4hwor4LiC4Lil4Li24LiHCivguILguKXguLjguIEKK+C4guC4peC4uOC4mgor4LiC4Lil4Li44LihCivguILguKXguLjguKHguJvguKPguLDguYDguIjguLXguKLguJQKK+C4guC4peC4uOC5iOC4ogor4LiC4Lil4Li5CivguILguKXguLnguYgKK+C4guC4p+C4hwor4LiC4LmI4Lin4LiHCivguILguKfguJQKK+C4guC4p+C4mQor4LiC4LmI4Lin4LiZCivguILguKfguJoKK+C4guC4p+C4ogor4LiC4Lin4Liw4LmE4LiC4Lin4LmI4LmA4LiC4Lin4Li14LmI4LiiCivguILguKfguLHguIHguYTguILguKfguYgKK+C4guC4p+C4seC4jQor4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHCivguILguKfguLHguI3guK3guYjguK3guJkKK+C4guC4p+C4seC4lAor4LiC4Lin4Lix4LiU4LiC4Lin4Li04LiUCivguILguKfguLHguJTguYHguITguKfguYnguIcKK+C4guC4p+C4seC5ieC4mQor4LiC4Lin4Lix4LiaCivguILguKfguLIKK+C4guC4p+C4suC4gQor4LiC4Lin4Liy4LiHCivguILguKfguYnguLLguIcKK+C4guC4p+C4suC4lAor4LiC4Lin4Liy4LiZCivguILguKfguLLguKLguILguKfguJkKK+C4guC4p+C4suC4pwor4LiC4Lin4LmJ4Liy4LinCivguILguKfguLTguJQKK+C4guC4qeC4k+C4sAor4LiC4Lip4Lix4LiiCivguILguKnguLXguJPguLLguKjguKPguJ4KK+C4guC4qeC4teC4owor4LiC4LitCivguILguYjguK0KK+C4guC5ieC4rQor4LiC4Lit4LiBCivguILguK3guIcKK+C4guC5ieC4reC4hwor4LiC4Lit4LiH4Lij4Liw4Lit4LiyCivguILguK3guInguLLguKIKK+C4guC4reC4lAor4LiC4Lit4LiZCivguILguYjguK3guJkKK+C4guC5ieC4reC4mQor4LiC4Lit4LiaCivguILguK3guJrguILguYjguLLguKIKK+C4guC4reC4muC5gOC4guC4lQor4LiC4Lit4Lia4LiE4Li44LiTCivguILguK3guJrguYPguIgKK+C4guC4reC4muC4nuC4o+C4sOC4hOC4uOC4kwor4LiC4Lit4Lia4LmA4Lir4Lil4LmH4LiBCivguILguK3guKEKK+C4guC5iOC4reC4ogor4LiC4LmJ4Lit4LiiCivguILguLDguILguLMKK+C4guC4sOC5geC4guC5iOC4mQor4LiC4Liw4LmB4LiC4LmJ4LiZCivguILguLDguYHguIjguLAKK+C4guC4sOC5geC4luC4gQor4LiC4Liw4LiZ4Liy4LiZCivguILguLDguYDguJnguYfguJQKK+C4guC4sOC4oeC4reC4oeC4guC4sOC5geC4oeC4oQor4LiC4Liw4LmB4Lih4LiL4LitCivguILguLDguYHguKHguJjguKEKK+C4guC4sOC4ouC4tOC4gQor4LiC4Liw4Lii4Li44LiBCivguILguLDguYDguKLguYnguK3guYHguILguKLguYjguIcKK+C4guC4sOC5geC4ouC4sAor4LiC4Lix4LiECivguILguLHguIcKK+C4guC4seC4h+C4guC4reC4gQor4LiC4Lix4LiKCivguILguLHguIrguIEKK+C4guC4seC4k+C4keC4quC4geC4owor4LiC4Lix4LiUCivguILguLHguJTguKHguK3guJkKK+C4guC4seC4mQor4LiC4Lix4LmJ4LiZCivguILguLHguJnguYHguILguYfguIcKK+C4guC4seC4meC4leC4tAor4LiC4Lix4LiZ4LiV4Li1CivguILguLHguJnguYLguJXguIEKK+C4guC4seC4meC4l+C4reC4h+C4nuC4ouC4suC4muC4suC4lwor4LiC4Lix4LiZ4LiX4Li1CivguILguLHguJnguJjguYwKK+C4guC4seC4meC4mOC4geC4uOC4oeC4suC4owor4LiC4Lix4LiZ4LiY4Liq4Lix4LiZ4LiU4Liy4LiZCivguILguLHguJnguJjguLLguKfguLLguKMKK+C4guC4seC4meC4q+C4oeC4suC4gQor4LiC4Lix4LiaCivguILguLHguKIKK+C4guC4seC4pwor4LiC4Lix4LmJ4LinCivguILguLIKK+C4guC5iOC4sgor4LiC4LmJ4LiyCivguILguLLguIEKK+C4guC4suC4geC5iuC4p+C4ogor4LiC4Liy4LmA4LiB4Lin4Li14Lii4LiZCivguILguLLguIcKK+C4guC5iOC4suC4hwor4LiC4LmJ4Liy4LiHCivguILguYnguLLguIfguIHguKPguLDguJTguLLguJkKK+C4guC5ieC4suC4h+C5gOC4h+C4tOC4mQor4LiC4Liy4LiH4LmB4LiU4LiHCivguILguYnguLLguIfguJXguLDguYDguKDguLIKK+C4guC5ieC4suC4h+C4peC4suC4ogor4LiC4Liy4LiT4Li4CivguILguLLguJQKK+C4guC4suC4l+C4meC4teC4ouC4sAor4LiC4Liy4LiZCivguILguYjguLLguJkKK+C4guC4suC4mgor4LiC4Liy4LihCivguILguYnguLLguKEKK+C4guC4suC4ogor4LiC4LmI4Liy4LiiCivguILguLLguKUKK+C4guC4suC4pwor4LiC4LmI4Liy4LinCivguILguYnguLLguKcKK+C4guC5ieC4suC4p+C4hOC4swor4LiC4LmJ4Liy4Lin4LiI4Li14LmICivguILguLLguKfguIjguLXguJoKK+C4guC5ieC4suC4p+C4leC5ieC4oQor4LiC4LmJ4Liy4Lin4LiV4Lit4LiBCivguILguYnguLLguKfguJnguIEKK+C4guC4suC4p+C4nuC4p+C4hwor4LiC4Liy4Lin4Lih4LmJ4LiyCivguILguYnguLLguKfguKHguLTguYjguJkKK+C4guC5ieC4suC4p+C5gOC4ouC5h+C4meC5g+C4leC5iQor4LiC4LmJ4Liy4Lin4LmA4Lii4LmH4LiZ4LmA4Lir4LiZ4Li34LitCivguILguYnguLLguKfguKrguLLguKMKK+C4guC5ieC4suC4p+C4q+C4suC4h+C4iuC5ieC4suC4hwor4LiC4Liy4Lin4LmD4Lir4LiN4LmICivguILguYnguLLguKfguYPguKvguKHguYjguJnguYnguK3guKIKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iOC5g+C4q+C4jeC5iAor4LiC4LmJ4Liy4Lio4Li24LiBCivguILguYnguLLguKvguKXguKfguIcKK+C4guC5ieC4suC4q+C4peC4p+C4h+C4q+C4peC4seC4h+C4peC4suC4ogor4LiC4LizCivguILguYjguLPguYDguILguLXguKLguKcKK+C4guC4tOC4gQor4LiC4Li04LiB4LmGCivguILguLTguIcKK+C4guC4tOC5iOC4hwor4LiC4Li04Lib4Liq4Lix4LiX4LmC4LiXCivguILguLTguKEKK+C4guC4teC5iAor4LiC4Li14LmJCivguILguLXguYnguIHguLIKK+C4guC4teC5ieC4geC4suC4lOC4hwor4LiC4Li14LmJ4LiB4Liy4LmB4LiU4LiHCivguILguLXguYnguIHguLLguYDguKvguKXguLXguYjguKLguKEKK+C4guC4teC5ieC4guC4oQor4LiC4Li14LmJ4LiC4Lin4LiHCivguILguLXguYnguILguLjguKIKK+C4guC4teC5ieC4hOC4o+C4reC4gQor4LiC4Li14LmJ4LiE4Lin4Liy4LiiCivguILguLXguYnguYLguITguKPguIcKK+C4guC4teC4k+C4sAor4LiC4Li14LiT4Liy4Liq4LieCivguILguLXguJQKK+C4guC4teC5ieC4leC4seC4h+C4meC4tQor4LiC4Li14LmJ4LiV4Li04LmJ4LinCivguILguLXguYnguYTguJXguYkKK+C4guC4teC5ieC5hOC4lgor4LiC4Li14Lib4LiZ4Liy4Lin4Li44LiYCivguILguLXguYnguJzguLbguYnguIcKK+C4guC4teC5ieC4oeC4reC4lAor4LiC4Li14LmJ4Lii4Lit4LiBCivguILguLXguYnguKPguLLguJQKK+C4guC4teC5ieC5geC4o+C4lAor4LiC4Li14LmJ4Liq4Li54LiUCivguILguLXguYnguKvguJnguK3guJkKK+C4guC4teC5ieC4q+C4meC5ieC4sgor4LiC4Li14LmJ4Lir4LiZ4Li5CivguILguLXguYnguKvguKHguLkKK+C4guC4teC5ieC5gOC4q+C4peC5h+C4gQor4LiC4Li14LmJ4Lit4LmJ4LiZCivguILguLXguYnguK3guYnguLLguKIKK+C4guC4tuC4hwor4LiC4Li24LmJ4LiHCivguILguLbguYnguJkKK+C4guC4tuC5ieC4meC4ieC5iOC4suC4ogor4LiC4Li34LiZCivguILguLfguYjguJkKK+C4guC4t+C5iOC4rQor4LiC4Li34LmI4Lit4Lic4Li1CivguILguLjguIEKK+C4guC4uOC4lAor4LiC4Li44LiX4LiX4LiB4LiZ4Li04LiB4Liy4LiiCivguILguLjguJkKK+C4guC4uOC5iOC4mQor4LiC4Li44LiZ4LiX4Lit4LiHCivguILguLjguJnguYHguJzguJkKK+C4guC4uOC4meC5gOC4nuC5h+C4lAor4LiC4Li44Lib4Lib4Li04Lib4Liy4Liq4Li04LiB4LmA4Lib4Lij4LiVCivguILguLjguKEKK+C4guC4uOC4ogor4LiC4Li5CivguILguLnguYgKK+C4guC4ueC4lAor4LmA4LiCCivguYDguILguYkKK+C5gOC4guC4gQor4LmA4LiC4LmH4LiHCivguYDguILguYjguIcKK+C5gOC4guC4iOC4owor4LmA4LiC4LmH4LiNCivguYDguILguYfguI3guYPguIgKK+C5gOC4guC5h+C4lAor4LmA4LiC4LiU4LiyCivguYDguILguJUKK+C5gOC4guC4mQor4LmA4LiC4LmH4LiZCivguYDguILguYjguJkKK+C5gOC4guC4meC4hwor4LmA4LiC4LiZ4LmH4LiUCivguYDguILguJnguKIKK+C5gOC4guC4muC5h+C4iOC4guC4muC4p+C4mQor4LmA4LiC4Lia4LmH4LiVCivguYDguILguYfguKEKK+C5gOC4guC5ieC4oQor4LmA4LiC4LmJ4Lih4LiC4Liy4LiaCivguYDguILguKHguYfguIcKK+C5gOC4guC4oeC5h+C4lOC5geC4guC4oeC5iAor4LmA4LiC4Lih4LmI4LiZCivguYDguILguKHguYnguJkKK+C5gOC4guC4oeC5ieC4meC4guC4sOC4oeC4seC4gQor4LmA4LiC4Lih4LijCivguYDguILguKHguLIKK+C5gOC4guC4oeC5iOC4sgor4LmA4LiC4Lih4Liy4LmC4LiB4Lij4LiiCivguYDguILguKHguLfguK3guJoKK+C5gOC4guC4ogor4LmA4LiC4Lii4LiBCivguYDguILguKLguYjguIcKK+C5gOC4guC4ouC4leC4suC4ogor4LmA4LiC4Lii4LmJ4Lit4LmB4LiC4Lii4LmI4LiHCivguYDguILguKLguK3guLDguILguKLguLAKK+C5gOC4guC4ouC5iOC4sgor4LmA4LiC4Lii4Li04LiZCivguYDguILguKLguLTguJoKK+C5gOC4guC4ouC4teC4ouC4p+C4guC4ouC4reC4mQor4LmA4LiC4Lii4Li34LmJ4Lit4LiZCivguYDguILguKPguK3guLAKK+C5gOC4guC4peC4hwor4LmA4LiC4Lil4Lit4LiwCivguYDguILguKXguLAKK+C5gOC4guC4peC4sgor4LmA4LiC4Lil4Liy4LiwCivguYDguILguKcKK+C5gOC4guC4qeC4leC4owor4LmA4LiC4Lip4LihCivguYDguILguKnguLXguKLguKMKK+C5gOC4guC4rOC4sAor4LmA4LiC4Liw4LiC4LiwCivguYDguILguLIKK+C5gOC4guC5iOC4sgor4LmA4LiC4LmJ4LiyCivguYDguILguYnguLLguKvguKHguLTguYnguJkKK+C5gOC4guC4tOC4hwor4LmA4LiC4Li04LiZCivguYDguILguLTguJoKK+C5gOC4guC4teC5iOC4ogor4LmA4LiC4Li14Lii4LiHCivguYDguILguLXguKLguIfguJ7guKPguLDguJnguLLguIfguK3guLXguYgKK+C5gOC4guC4teC4ouC4h+C4nuC4o+C5ieC4sgor4LmA4LiC4Li14Lii4LiUCivguYDguILguLXguKLguJkKK+C5gOC4guC4teC5iOC4ouC4mQor4LmA4LiC4Li14Lii4LihCivguYDguILguLXguKLguKcKK+C5gOC4guC4teC5ieC4ouC4pwor4LmA4LiC4Li14Lii4LiwCivguYDguILguLfguK0KK+C5gOC4guC4t+C4reC4hwor4LmA4LiC4Li34LmI4Lit4LiHCivguYDguILguLfguYjguK3guJkKK+C5gOC4guC4t+C4reC4oQor4LmB4LiCCivguYHguILguYkKK+C5geC4guC4gQor4LmB4LiC4LiB4LmA4LiV4LmJ4LiyCivguYHguILguYfguIcKK+C5geC4guC5iOC4hwor4LmB4LiC4LmJ4LiHCivguYHguILguJkKK+C5geC4guC5iOC4mQor4LmB4LiC4LmJ4LiZCivguYHguILguJnguIcKK+C5geC4guC4meC4sAor4LmB4LiC4LihCivguYHguILguKHguYfguJoKK+C5geC4guC4oeC5iOC4pwor4LmB4LiC4Lii4LmH4LiB4LmGCivguYHguILguKLguIcKK+C5geC4guC4ouC5iOC4hwor4LmB4LiC4Lii4LiH4Lir4LiZ4Li5CivguYHguILguKXguLAKK+C5geC4guC4p+C4gQor4LmB4LiC4Lin4LiHCivguYHguILguKfguJkKK+C5geC4guC4p+C4meC4peC4reC4ogor4LmB4LiC4Lin4LiwCivguYHguILguKrguKPguYwKK+C5guC4ggor4LmC4LiC4LiBCivguYLguILguYjguIcKK+C5guC4guC4lAor4LmC4LiC4LiU4LiHCivguYLguILguJkKK+C5guC4guC4meC4hwor4LmC4LiC4LihCivguYLguILguKHguIcKK+C5guC4guC4oeC4lAor4LmC4LiC4Lih4LiU4Lii4LiyCivguYLguILguKLguIEKK+C5guC4guC4ouC4hwor4LmC4LiC4Lii4LmI4LiHCivguYLguILguKLguJQKK+C5guC4guC4ouC4oQor4LmC4LiC4Lil4LiBCivguYLguILguKXguIHguYYKK+C5guC4guC4peC4hwor4LmC4LiC4Lil4LiZCivguYLguILguKXguJnguJfguKfguLLguKMKK+C5guC4guC4qeC4oQor4LmE4LiCCivguYTguILguYgKK+C5hOC4guC5iQor4LmE4LiC4LmI4LiU4Lix4LiZCivguYTguILguYjguKHguLjguIEKK+C5hOC4guC4o+C4sgor4LmE4LiC4Lin4LmICivguYTguILguKfguYkKK+C5hOC4guC4qeC4ogor4LmE4LiC4Liq4Li34LitCivguYTguILguYDguKrguJnguLXguKLguJQKK+C5hOC4guC4q+C4uQor4LmE4LiC4LmI4LmA4Lir4Lil4Li34Lit4LiHCivguIQKK+C4hOC4gQor4LiE4LiE4LiZ4LiwCivguITguITguJnguLHguKHguJ7guKMKK+C4hOC4hOC4meC4suC4h+C4hOC5jAor4LiE4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguIcKK+C4hOC4h+C4hOC4sgor4LiE4LiH4LiE4Liy4LmA4LiU4Li34Lit4LiUCivguITguIfguYTguITguKIKK+C4hOC4iuC4o+C4suC4igor4LiE4LiK4Liq4LmI4Liy4LiZCivguITguIrguLLguIrguLLguJXguLQKK+C4hOC4iuC4suC4iuC4teC4ngor4LiE4LiK4Liy4LiY4Liy4LijCivguITguIrguLLguKDguKPguJPguYwKK+C4hOC4iuC4suC4ouC4uOC4o+C5gOC4p+C4igor4LiE4LiK4Liy4Lij4Li1CivguITguIrguLTguJnguJfguKMKK+C4hOC5gOC4iuC4meC4l+C4o+C5jAor4LiE4LiT4LiZCivguITguJPguJnguLIKK+C4hOC4k+C5guC4oOC4iuC4meC5jAor4LiE4LiT4LiwCivguITguJPguLTguIHguLIKK+C4hOC4k+C4tOC4lQor4LiE4LmA4LiT4LioCivguITguJQKK+C4hOC4lOC4tQor4LiE4LiVCivguITguJXguLQKK+C4hOC4l+C4sgor4LiE4LiZCivguITguYnguJkKK+C4hOC4meC4l+C4sgor4LiE4LiZ4LiX4Li04Liq4LitCivguITguJnguJfguLTguKrguK3guJfguLDguYDguKUKK+C4hOC4meC4l+C4tQor4LiE4LiZ4LiX4Li14LmA4LiC4Lih4LiyCivguITguJnguJfguLXguKrguK0KK+C4hOC4meC5guC4lwor4LiE4LiZ4LiY4LmMCivguITguJnguJjguKPguKPguJ7guYwKK+C4hOC4meC4peC4sAor4LiE4LmA4LiZ4LiI4LijCivguITguJoKK+C4hOC4oQor4LiE4Lih4LiZ4LmMCivguITguKHguJnguLLguIHguLLguKMKK+C4hOC4oeC4meC4suC4hOC4oQor4LiE4Lih4Li04LiB4Lig4Lix4LiVCivguITguKPguIEKK+C4hOC4o+C5iOC4hwor4LiE4Lij4LiaCivguITguKPguJrguJbguYnguKfguJkKK+C4hOC4o+C4o+C4iuC4tOC4lQor4LiE4Lij4Lij4LigCivguITguKPguKPguKDguYwKK+C4hOC4o+C4o+C4oOC4mOC4suC4leC4uAor4LiE4Lij4Lij4Lig4Lih4LilCivguITguKPguKPguKDguLLguJjguLLguJkKK+C4hOC4o+C4o+C5guC4oOC4l+C4owor4LiE4Lij4Lij4Lil4Lit4LiHCivguITguKPguKPguYLguKXguIcKK+C4hOC4o+C4o+C5hOC4pQor4LiE4Lij4Lij4Lir4Li04LiVCivguITguKPguKfguI0KK+C4hOC4o+C4p+C4jeC4q+C4sgor4LiE4Lij4Lin4Lix4LiBCivguITguKPguKfguLUKK+C4hOC4o+C4q+C4sgor4LiE4Lij4Lit4LiBCivguITguKPguK3guIcKK+C4hOC4o+C4reC4h+C5geC4hOC4o+C4hwor4LiE4Lij4LmI4Lit4LmA4LiH4Liy4LiwCivguITguKPguYjguK3guYDguJfguLXguKLguJkKK+C4hOC4o+C4reC4mgor4LiE4Lij4Lit4Lia4LiI4Lix4LiB4Lij4Lin4Liy4LilCivguITguKPguK3guJrguJXguKXguLHguJoKK+C4hOC4o+C5iOC4reC4oQor4LiE4Lij4LiwCivguITguKPguLDguYDguKHguLTguJkKK+C4hOC4o+C4sOC5geC4peC4hwor4LiE4Lij4Liw4LmE4LilCivguITguKPguLDguYHguKfguIcKK+C4hOC4o+C4sOC4q+C4mQor4LiE4Lij4Liw4Lir4Lin4LiZCivguITguKPguLDguKvguLLguKIKK+C4hOC4o+C4sOC4q+C4tOC4pwor4LiE4Lij4Liw4LmC4Lir4LiiCivguITguKPguLHguYjguIcKK+C4hOC4o+C4seC5ieC4hwor4LiE4Lij4Lix4LiU4LmA4LiE4Lij4LmI4LiHCivguITguKPguLHguJkKK+C4hOC4o+C4seC5iOC4mQor4LiE4Lij4Lix4LmJ4LiZCivguITguKPguLHguJoKK+C4hOC4o+C4seC4pwor4LiE4Lij4LiyCivguITguKPguYjguLIKK+C4hOC4o+C4suC4gQor4LiE4Lij4Liy4LiHCivguITguKPguLLguI0KK+C4hOC4o+C4suC4lAor4LiE4Lij4LmJ4Liy4LiZCivguITguKPguLLguJoKK+C4hOC4o+C4suC4muC4q+C4oeC4uQor4LiE4Lij4Liy4LihCivguITguKPguYnguLLguKEKK+C4hOC4o+C4suC4oeC4hOC4o+C4seC4mQor4LiE4Lij4Liy4LinCivguITguKPguYjguLLguKcKK+C4hOC4o+C4suC4qgor4LiE4Lij4LizCivguITguKPguYjguLMKK+C4hOC4o+C4tOC4m+C4l+C4reC4mQor4LiE4Lij4Li04Liq4LiV4LmMCivguITguKPguLXguITguKPguK0KK+C4hOC4o+C4teC4mgor4LiE4Lij4Li14LihCivguITguKPguLXguKnguKHguLLguKLguLHguJkKK+C4hOC4o+C4tgor4LiE4Lij4Li24LiB4LiE4Lij4Li34LmJ4LiZCivguITguKPguLbguIHguYLguITguKPguKEKK+C4hOC4o+C4tuC5iOC4hwor4LiE4Lij4Li24LiZCivguITguKPguLbguKEKK+C4hOC4o+C4tuC5ieC4oQor4LiE4Lij4Li24Lih4LiE4Lij4Li4CivguITguKPguLfguJQKK+C4hOC4o+C4t+C4mQor4LiE4Lij4Li34LmJ4LiZCivguITguKPguLfguJnguITguKPguLHguYjguJkKK+C4hOC4o+C4t+C5ieC4meC4hOC4o+C4tuC4gQor4LiE4Lij4Li34LmJ4LiZ4LmA4LiE4Lij4LiHCivguITguKPguLfguK0KK+C4hOC4o+C4uAor4LiE4Lij4Li44LiE4Lij4LiwCivguITguKPguLjguJEKK+C4hOC4o+C4uOC4keC4geC4o+C4sOC4l+C4hwor4LiE4Lij4Li44LmI4LiZCivguITguKPguLjguYjguJnguITguLTguJQKK+C4hOC4o+C4uOC4oeC5gOC4hOC4o+C4t+C4rQor4LiE4Lij4Li44LiiCivguITguKPguLjguKfguJnguLIKK+C4hOC4o+C4uQor4LiE4Lij4Li54LmICivguITguKPguLnguJQKK+C4hOC4pOC5guC4huC4qQor4LiE4Lik4LiZ4LiW4LmMCivguITguKTguKsKK+C4hOC4pOC4q+C4muC4lOC4tQor4LiE4Lik4Lir4Lib4Lix4LiV4LiZ4Li1CivguITguKTguKvguLHguKrguJbguYwKK+C4hOC4pOC4q+C4sgor4LiE4Lik4Lir4Liy4Liq4LiZ4LmMCivguITguKUKK+C4hOC4peC4p+C4hwor4LiE4Lil4LitCivguITguKXguYnguK0KK+C4hOC4peC4reC4gQor4LiE4Lil4Lit4LiHCivguITguKXguYjguK3guIcKK+C4hOC4peC5ieC4reC4hwor4LiE4Lil4Lit4LiUCivguITguKXguK3guJkKK+C4hOC4peC5ieC4reC4ogor4LiE4Lil4Lit4Lij4Li14LiZCivguITguKXguK3guYLguKPguJ/guK3guKPguKHguYwKK+C4hOC4peC4reC5guC4o+C4n+C4teC4peC4peC5jAor4LiE4Lil4LiwCivguITguKXguLDguITguKXguLjguYnguIcKK+C4hOC4peC4seC4gQor4LiE4Lil4Lix4LmI4LiBCivguITguKXguLHguYjguIHguYYKK+C4hOC4peC4seC4hwor4LiE4Lil4Lix4LmI4LiHCivguITguKXguLHguJXguIrguYwKK+C4hOC4peC4seC4mgor4LiE4Lil4Lix4Lia4LiE4Lil4LmJ4Liy4LiiCivguITguKXguLIKK+C4hOC4peC5ieC4sgor4LiE4Lil4Liy4LiH4LmB4LiE4Lil4LiHCivguITguKXguLLguJQKK+C4hOC4peC4suC4mQor4LiE4Lil4Liy4LiiCivguITguKXguYnguLLguKIKK+C4hOC4peC5ieC4suC4ouC4hOC4peC4tuC4hwor4LiE4Lil4LmI4Liy4LinCivguITguKXguLLguKgKK+C4hOC4peC4swor4LiE4Lil4LmI4LizCivguITguKXguYnguLMKK+C4hOC4peC4tOC4hwor4LiE4Lil4Li04LmJ4LiH4LmC4LiE4Lil4LiHCivguITguKXguLTguJnguLTguIEKK+C4hOC4peC4tQor4LiE4Lil4Li14LmICivguITguKXguLbguIcKK+C4hOC4peC4t+C5iOC4mQor4LiE4Lil4Li34LmI4LiZ4LmE4Liq4LmJCivguITguKXguLfguYjguJnguYDguKvguLXguKLguJkKK+C4hOC4peC4uOC4gQor4LiE4Lil4Li44LiB4LiE4Lil4Liy4LiZCivguITguKXguLjguYnguIcKK+C4hOC4peC4uOC4mgor4LiE4Lil4Li44LihCivguITguKXguLjguYjguKEKK+C4hOC4peC4uOC5ieC4oQor4LiE4Lin4LiHCivguITguKfguJMKK+C4hOC4p+C4mQor4LiE4Lin4LiaCivguITguKfguJrguYHguJnguYjguJkKK+C4hOC4p+C4ogor4LiE4Lin4LijCivguITguKfguLHguIEKK+C4hOC4p+C4seC4geC4hOC5ieC4reC4mQor4LiE4Lin4Lix4LmI4LiH4LiE4Lin4LmJ4Liy4LiHCivguITguKfguLHguJkKK+C4hOC4p+C4seC5iOC4mQor4LiE4Lin4LmJ4LiyCivguITguKfguLLguIEKK+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4Liy4LiNCivguITguKfguLLguJkKK+C4hOC4p+C5ieC4suC4mQor4LiE4Lin4Liy4LihCivguITguKfguLLguKHguITguKXguLLguJQKK+C4hOC4p+C4suC4oeC5gOC4hOC4o+C4teC4ouC4lAor4LiE4Lin4Liy4Lih4LmB4LiE4LmJ4LiZCivguITguKfguLLguKHguYDguInguLfguYjguK3guKIKK+C4hOC4p+C4suC4oeC4iuC4t+C5ieC4mQor4LiE4Lin4Liy4Lih4LiW4LmI4Lin4LiHCivguITguKfguLLguKHguJbguLXguYgKK+C4hOC4p+C4suC4oeC4ouC4suC4p+C4hOC4peC4t+C5iOC4mQor4LiE4Lin4Liy4Lih4Lij4Li54LmJ4Liq4Li24LiB4LmA4LiC4Li34LmI4Lit4LiHCivguITguKfguLLguKHguKPguLnguYnguKrguLbguIHguJTguYnguK3guKIKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4quC4tuC4geC5gOC4lOC5iOC4mQor4LiE4Lin4Liy4Lih4LmA4Lij4LmI4LiHCivguITguKfguLLguKHguYDguKPguYfguKcKK+C4hOC4p+C4suC4oeC4q+C4meC5iOC4p+C4hwor4LiE4Lin4Liy4LiiCivguITguKfguYjguLLguKcKK+C4hOC4p+C5iOC4swor4LiE4Lin4Li04LiZ4Li04LiZCivguITguKfguLTguKfguYYKK+C4hOC4p+C4tOC4p+C4hOC4p+C4seC4hwor4LiE4Lin4Li04Lin4LiE4Lin4LmI4Liy4LiHCivguITguKfguLTguKfguITguKfguYnguLLguIcKK+C4hOC4p+C4teC4meC4quC4tOC4o+C4tOC4geC4tOC4leC4tOC5jAor4LiE4Lir4Lix4LiQCivguITguK0KK+C4hOC5ieC4rQor4LiE4Lit4LiBCivguITguYfguK3guIHguITguLHguKoKK+C4hOC5h+C4reC4geC5gOC4l+C4pQor4LiE4Lit4LiE4Liy4LiZCivguITguK3guYDguITguIvguK3guKLguJTguYwKK+C4hOC4reC4h+C5gOC4geC4o+C4qgor4LiE4LmI4Lit4LiH4Lit4LmJ4Lit4LiiCivguITguK3guJQKK+C4hOC4reC5gOC4leC5h+C4mgor4LiE4Lit4LiZCivguITguYjguK3guJkKK+C4hOC5ieC4reC4mQor4LiE4Lit4LiZ4LiB4Lij4Li14LiVCivguITguYnguK3guJnguIHguKXguK3guIcKK+C4hOC4reC4meC5gOC4lOC4meC5gOC4i+C4reC4o+C5jAor4LiE4LmJ4Lit4LiZ4LiV4Li14LiZ4Lir4Lih4LiyCivguITguYnguK3guJnguJfguK3guIcKK+C4hOC4reC4meC4p+C4reC4ogor4LiE4Lit4LiZ4LmB4Lin4LiZ4LiV4LmMCivguITguK3guJnguYDguKrguLTguKPguYzguJUKK+C4hOC5ieC4reC4meC4q+C4reC4ogor4LiE4Lit4LiaCivguITguK3guKEKK+C4hOC5iOC4reC4oQor4LiE4LmJ4Lit4LihCivguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYwKK+C4hOC4reC4oeC4oeC4suC4meC5guC4lAor4LiE4Lit4Lih4Lih4Li04Lin4LiZ4Li04Liq4LiV4LmMCivguITguK3guKIKK+C4hOC5iOC4reC4ogor4LiE4LmJ4Lit4LiiCivguITguYjguK3guKLguYYKK+C4hOC4reC4ouC4peC5jAor4LiE4Lit4Lij4LmM4LiUCivguITguK3guKPguYzguJUKK+C4hOC4reC4o+C4seC4m+C4iuC4seC5iOC4mQor4LiE4Lit4Lil4Lix4Lih4LiZ4LmMCivguITguK3guYDguKXguKrguYDguJXguK3guKPguK3guKUKK+C4hOC4reC5geC4peC4mQor4LiE4Lit4Liq4LiV4Li04LiB4LmC4LiL4LiU4LiyCivguITguK3guYHguKvguYnguIcKK+C4hOC4sAor4LiE4LmI4LiwCivguITguLDguYTguILguKfguYgKK+C4hOC4sOC4hOC5ieC4reC4ogor4LiE4Liw4LiE4Liy4LiZCivguITguLDguITguLbguIcKK+C4hOC4sOC4meC4mQor4LiE4Liw4LiZ4Lit4LiHCivguITguLDguJnguYnguLIKK+C4hOC4sOC4meC4tuC4hwor4LiE4Liw4LmA4LiZCivguITguLDguYDguJnguIfguKPguYnguLLguKIKK+C4hOC4sOC5gOC4meC5h+C4lAor4LiE4Liw4LmB4LiZ4LiZCivguITguLDguYPguJkKK+C4hOC4sOC4oeC4swor4LiE4Liw4Lih4Li24LiBCivguITguLDguKLguLHguYnguJnguITguLDguKLguK0KK+C4hOC4sOC5gOC4ouC4rQor4LiE4Lix4LiBCivguITguLHguYjguIEKK+C4hOC4seC4hOC4mQor4LiE4Lix4LiE4LiZ4LiwCivguITguLHguITguJnguLHguKHguJ7guKMKK+C4hOC4seC4hOC4meC4suC4h+C4hOC5jAor4LiE4Lix4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguLHguYjguIcKK+C4hOC4seC4h+C5hOC4hOC4ogor4LiE4Lix4LiI4LiJCivguITguLHguJPguJHguKHguLLguKXguLIKK+C4hOC4seC4k+C4keC4quC4ueC4leC4owor4LiE4Lix4LiUCivguITguLHguJTguYDguITguYnguLIKK+C4hOC4seC4lOC4iuC5ieC4reC4mQor4LiE4Lix4LiU4Lih4Lit4LiZCivguITguLHguJfguKXguLXguKLguLIKK+C4hOC4seC4mQor4LiE4Lix4LmI4LiZCivguITguLHguYnguJkKK+C4hOC4seC4meC4iOC4suC4oQor4LiE4Lix4LiZ4LiJ4Liy4LiiCivguITguLHguJnguYLguJTguIcKK+C4hOC4seC4meC4l+C4o+C4hwor4LiE4Lix4LiZ4LiYCivguITguLHguJnguJjguYwKK+C4hOC4seC4meC4mOC4suC4o+C4o+C4suC4qeC4juC4o+C5jAor4LiE4Lix4LiZ4Lir4Liy4Lih4LmA4Liq4Li34LitCivguITguLHguJoKK+C4hOC4seC4muC4hOC5ieC4reC4mQor4LiE4Lix4Lia4LiE4LiyCivguITguLHguJrguYHguIQKK+C4hOC4seC4nuC4oOC5jAor4LiE4Lix4Lie4LmC4Lig4LiX4LijCivguITguLHguKHguKDguLXguKPguYwKK+C4hOC4seC4pQor4LiE4Lix4LinCivguITguLHguYjguKcKK+C4hOC4sgor4LiE4LmI4LiyCivguITguYnguLIKK+C4hOC5iOC4suC4hOC4mgor4LiE4Liy4LiHCivguITguYjguLLguIcKK+C4hOC5ieC4suC4hwor4LiE4Liy4LiH4LiE4LiBCivguITguYnguLLguIfguITguLLguKcKK+C4hOC4suC4lAor4LiE4Liy4LiU4LiE4Lix4LmJ4LiZCivguITguLLguJbguLIKK+C4hOC4suC4l+C4reC4peC4tOC4gQor4LiE4LmI4Liy4LiX4Li14LmICivguITguLLguJgKK+C4hOC4suC5gOC4mOC4ouC5jAor4LiE4Liy4LiZCivguITguYnguLLguJkKK+C4hOC4suC4meC5ieC4sgor4LiE4Liy4LiaCivguITguLLguJ7guKLguLjguJUKK+C4hOC4suC4oQor4LiE4Liy4Lih4LiT4Li14Lii4LmMCivguITguLLguKHguKDguLXguKPguYwKK+C4hOC4suC4oeC4tQor4LiE4Liy4LiiCivguITguYjguLLguKIKK+C4hOC4suC4ouC4gQor4LiE4Liy4Lii4Lix4LiZCivguITguLLguKPguYzguJrguK3guJkKK+C4hOC4suC4o+C5jOC4muC4reC4meC5hOC4lOC4reC4reC4geC5hOC4i+C4lOC5jAor4LiE4Liy4Lij4LmM4Lia4Lit4LiZ4Lih4Lit4LiZ4Lit4LiB4LmE4LiL4LiU4LmMCivguITguLLguKPguYzguJrguK3guYDguJnguJUKK+C4hOC4suC4o+C5jOC4muC4reC4peC4tOC4gQor4LiE4Liy4Lij4LmM4Lia4Li54LmA4Lij4LmA4LiV4Lit4Lij4LmMCivguITguLLguKPguYzguYLguJrguKPguLHguJnguJTguLHguKEKK+C4hOC4suC4o+C5jOC5guC4muC5hOC4ruC5gOC4lOC4o+C4lQor4LiE4Liy4Lij4LieCivguITguLLguKPguKEKK+C4hOC4suC4o+C4p+C4sAor4LiE4Liy4Lij4Liy4LmA4LiV4LmJCivguITguLLguKPguLLguKfguLLguJkKK+C4hOC4suC4pwor4LiE4LmI4Liy4LinCivguITguYnguLLguKcKK+C4hOC4suC4p+C4leC4reC4hwor4LiE4Liy4Lin4Li1CivguITguLLguKfguLjguJUKK+C4hOC4suC4qgor4LiE4LmI4Liy4Lir4LiUCivguITguLMKK+C4hOC5iOC4swor4LiE4LmJ4LizCivguITguLPguJTguLXguITguKfguLLguKIKK+C4hOC4s+C5g+C4leC5iQor4LiE4Liz4LiZ4Lin4LiTCivguITguLPguJnguKfguKMKK+C4hOC4s+C4meC4seC4mgor4LiE4Liz4LiZ4Lix4LilCivguITguLPguJnguLbguIcKK+C4hOC4s+C4meC4ueC4kwor4LiE4Liz4LmC4Lia4LilCivguITguLPguJ3guK3guKIKK+C4hOC4s+C5gOC4nuC4peC4tOC4hwor4LiE4Liz4Lij4LiZCivguITguLPguKPguJoKK+C4hOC4s+C4o+C4suC4oQor4LiE4Liz4LmB4Liq4LiUCivguITguLPguYHguKvguIcKK+C4hOC4s+C5guC4reC4hwor4LiE4Li04LiB4LmGCivguITguLTguIcKK+C4hOC4tOC4lAor4LiE4Li04LiZ4Li0CivguITguLTguKHguKsKK+C4hOC4tOC4oeC4q+C4seC4meC4leC5jAor4LiE4Li04Lih4Lir4Liy4LiZ4LiwCivguITguLTguKPguLQKK+C4hOC4tOC4o+C4tQor4LiE4Li04Lil4Liy4LiZ4LiwCivguITguLTguKcKK+C4hOC4tOC5ieC4pwor4LiE4Li04Lir4Li04Liq4Li44LiCCivguITguLXguYgKK+C4hOC4teC4lQor4LiE4Li14LiV4LiB4LiwCivguITguLXguJoKK+C4hOC4teC4oQor4LiE4Li14Lij4Li1CivguITguLXguKPguLXguJrguLnguJkKK+C4hOC4tuC4gQor4LiE4Li24LmI4LiBCivguITguLbguYjguIHguYYKK+C4hOC4tuC4geC4hOC4seC4gQor4LiE4Li24LiB4LiE4Liy4LihCivguITguLfguJkKK+C4hOC4t+C4mgor4LiE4Li34LitCivguITguLgKK+C4hOC4uOC4gQor4LiE4Li44LiB4LiB4Li14LmJCivguITguLjguIHguYDguILguYjguLIKK+C4hOC4uOC4geC4hOC4peC4suC4mQor4LiE4Li44LiB4LiE4Liy4LihCivguITguLjguIHguJ7guLLguJfguKLguYwKK+C4hOC4uOC4hOC4sAor4LiE4Li44LiHCivguITguLjguYnguIcKK+C4hOC4uOC4kwor4LiE4Li44LiT4LiE4LmI4LiyCivguITguLjguJPguJjguKPguKPguKEKK+C4hOC4uOC4k+C4meC4suC4oQor4LiE4Li44LiT4Lia4LiXCivguITguLjguJPguJvguKPguLDguYLguKLguIrguJnguYwKK+C4hOC4uOC4k+C4nuC4tOC5gOC4qOC4qQor4LiE4Li44LiT4Lig4Liy4LieCivguITguLjguJPguKXguLHguIHguKnguJPguLAKK+C4hOC4uOC4k+C4peC4uOC4h+C4hOC4uOC4k+C4m+C5ieC4sgor4LiE4Li44LiT4Lin4Li04LmA4Lio4LipCivguITguLjguJPguKfguLjguJLguLQKK+C4hOC4uOC4k+C4qOC4seC4nuC4l+C5jAor4LiE4Li44LiT4Liq4Lih4Lia4Lix4LiV4Li0CivguITguLjguJPguLLguIHguKMKK+C4hOC4uOC4k+C4suC4peC4seC4ogor4LiE4Li44LiT4Li54Lib4LiB4Liy4LijCivguITguLjguYLguJPguJvguIHguLLguKMKK+C4hOC4uOC4lAor4LiE4Li44LiU4LiX4Liw4Lij4Liy4LiUCivguITguLjguJUKK+C4hOC4uOC4leC4leC4tAor4LiE4Li44LmI4LiZCivguITguLjguYnguJkKK+C4hOC4uOC4mwor4LiE4Li44Lib4LiV4LmMCivguITguLjguJvguJXguLQKK+C4hOC4uOC4oQor4LiE4Li44LmI4LihCivguITguLjguYnguKEKK+C4hOC4uOC5ieC4oeC4lOC4teC4hOC4uOC5ieC4oeC4o+C5ieC4suC4ogor4LiE4Li44LmJ4Lih4LmA4LiX4LmJ4LiyCivguITguLjguKHguJ3guK3guKIKK+C4hOC4uOC4ogor4LiE4Li44LmJ4LiiCivguITguLjguKPguLgKK+C4hOC4uOC4peC4sgor4LiE4Li44Lil4Li04LiB4LmI4LiyCivguITguLjguKXguLXguIHguLLguKMKK+C4hOC4uQor4LiE4Li54LmICivguITguLnguYkKK+C4hOC4ueC4kwor4LiE4Li54LiWCivguITguLnguJkKK+C4hOC4ueC4m+C4reC4hwor4LiE4Li54LmA4Lij4Li14Lii4LihCivguITguLnguKvguLIKK+C5gOC4hOC5ieC5gOC4geC5iQor4LmA4LiE4LmJ4LiHCivguYDguITguIjguIkKK+C5gOC4hOC4k+C4keC4sAor4LmA4LiE4LiUCivguYDguITguJkKK+C5gOC4hOC5gOC4muC4tOC4pQor4LmA4LiE4LmH4LihCivguYDguITguKHguLUKK+C5gOC4hOC4ogor4LmA4LiE4Lij4LiHCivguYDguITguKPguYjguIcKK+C5gOC4hOC4o+C4h+C4hOC4o+C4swor4LmA4LiE4Lij4LiH4LiE4Lij4LmI4LizCivguYDguITguKPguJTguLTguJUKK+C5gOC4hOC4o+C4mQor4LmA4LiE4Lij4LiyCivguYDguITguKPguYjguLIKK+C5gOC4hOC4o+C4suC4q+C4k+C4tQor4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguYDguITguKPguLXguKLguJQKK+C5gOC4hOC4o+C4teC4ouC4pwor4LmA4LiE4Lij4Li34LitCivguYDguITguKPguLfguK3guYDguILguLLguJnguYnguLMKK+C5gOC4hOC4o+C4t+C4reC5gOC4guC4suC4oeC4p+C4gQor4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguYDguITguKPguLfguK3guIjguLHguIHguKPguKDguJ4KK+C5gOC4hOC4peC5ieC4hwor4LmA4LiE4Lil4LmH4LiUCivguYDguITguKXguYnguJkKK+C5gOC4hOC4peC5ieC4sgor4LmA4LiE4Lil4LmI4Liy4LiE4Lil4LmI4Lit4LiHCivguYDguITguKXguLTguJrguYDguITguKXguLTguYnguKEKK+C5gOC4hOC4peC4tOC5ieC4oQor4LmA4LiE4Lil4Li14LiiCivguYDguITguKXguLXguYnguKLguITguKXguLTguIcKK+C5gOC4hOC4peC4t+C5iOC4reC4mQor4LmA4LiE4Lil4Li34Lit4LiaCivguYDguITguKfguYnguIcKK+C5gOC4hOC4q+C4sAor4LmA4LiE4Lir4LiyCivguYDguITguK3guLAKK+C5gOC4hOC4sgor4LmA4LiE4LmJ4LiyCivguYDguITguLLguJnguYzguYDguJXguK3guKPguYwKK+C5gOC4hOC4suC5gOC4m+C5iwor4LmA4LiE4Liy4Lij4LieCivguYDguITguYnguLLguKrguJnguLLguKHguKvguKXguKfguIcKK+C5gOC4hOC4suC4sAor4LmA4LiE4Liy4Liw4LmB4LiE4LiwCivguYDguITguLXguYnguKIKK+C5gOC4hOC4teC4ouC4hwor4LmA4LiE4Li14Lii4LiUCivguYDguITguLXguKLguJkKK+C5gOC4hOC4teC4ouC4oQor4LmA4LiE4Li14LmI4Lii4LihCivguYDguITguLXguKLguKMKK+C5gOC4hOC4teC4ouC4pwor4LmA4LiE4Li14LmI4Lii4LinCivguYDguITguLXguYnguKLguKcKK+C5gOC4hOC4t+C5ieC4rQor4LmA4LiE4Li34Lit4LiHCivguYHguIQKK+C5geC4hOC5iAor4LmB4LiE4LmJCivguYHguITguYHguIHguKUKK+C5geC4hOC4iuC5gOC4iuC4teC4ouC4o+C5jAor4LmB4LiE4LiU4LmA4Lih4Li14Lii4LihCivguYHguITguYLguJfguJQKK+C5geC4hOC4mQor4LmB4LiE4LmI4LiZCivguYHguITguYnguJkKK+C5geC4hOC4mgor4LmB4LiE4Lia4Lir4Lih4Li5CivguYHguITguJvguIvguLnguKUKK+C5geC4hOC4oQor4LmB4LiE4Lij4LmICivguYHguITguKPguIEKK+C5geC4hOC4o+C4hOC4o+C4seC5iOC4hwor4LmB4LiE4Lij4LiHCivguYHguITguKPguIfguYDguITguKPguLXguKLguKcKK+C5geC4hOC4o+C4sAor4LmB4LiE4Lil4LiE4Li54Lil4Lix4LiqCivguYHguITguKXguIcKK+C5geC4hOC4peC5gOC4i+C4teC4ouC4oQor4LmB4LiE4Lil4LiZCivguYHguITguKXguYnguKcKK+C5geC4hOC4peC5iOC4p+C4hOC4peC5iOC4reC4hwor4LmB4LiE4Lil4Lit4Lij4Li1CivguYHguITguKXguLTguJ/guK3guKPguYzguYDguJnguLXguKLguKEKK+C5geC4hOC5geC4pQor4LmB4LiE4LinCivguYHguITguKfguIEKK+C5geC4hOC4p+C5ieC4hwor4LmB4LiE4Lin4LmJ4LiZCivguYHguITguLAKK+C5guC4hAor4LmC4LiE4LiBCivguYLguITguIHguIHguKPguLDguKrguLjguJkKK+C5guC4hOC4geC4geC4o+C4sOC4reC4reC4oQor4LmC4LiE4LiB4Lih4LmJ4LiyCivguYLguITguITguKXguLLguJkKK+C5guC4hOC5gOC4hOC4mQor4LmC4LiE4LmI4LiHCivguYLguITguYnguIcKK+C5guC4hOC4iOC4owor4LmC4LiE4LiI4Lij4LiE4Liy4LihCivguYLguITguYnguIoKK+C5guC4hOC5gOC4i+C5geC4hOC4meC4leC5jAor4LmC4LiE4LmE4LiL4LiZ4LmMCivguYLguITguJXguKMKK+C5guC4hOC5geC4l+C4meC5gOC4iOC4meC4leC5jAor4LmC4LiE4LiY4LiyCivguYLguITguJkKK+C5guC4hOC5iOC4mQor4LmC4LiE4LiZ4LiU4Li04LiZ4Liq4LitCivguYLguITguJnguJXguLLguKLguJvguKXguLLguKLguYDguJvguYfguJkKK+C5guC4hOC4meC4quC4oeC4rQor4LmC4LiE4Lia4Lit4Lil4LiV4LmMCivguYLguITguJvguJzguIHguLAKK+C5guC4hOC4oQor4LmC4LiE4Lih4LmI4LiyCivguYLguITguKPguIEKK+C5guC4hOC4o+C4geC4hOC4o+C4reC4gQor4LmC4LiE4Lij4LiB4LiE4Lij4Liy4LiBCivguYLguITguKPguIcKK+C5guC4hOC4o+C5iOC4hwor4LmC4LiE4Lij4LmI4LiH4LiE4Lij4LmI4Liy4LiHCivguYLguITguKPguIfguYHguITguKMKK+C5guC4hOC4o+C4oQor4LmC4LiE4Lij4LmA4Lih4Li14Lii4LihCivguYLguITguKPguYLguKHguYLguIvguKEKK+C5guC4hOC4o+C4suC4igor4LmC4LiE4LilCivguYLguITguKXguIcKK+C5guC4hOC4peC4mQor4LmC4LiE4Lin4LiV4LiyCivguYLguITguK3guK3guKPguYzguJTguLTguYDguJnguJUKK+C5g+C4hOC4owor4LmD4LiE4Lij4LmICivguYPguITguKPguYjguITguKPguKfguI0KK+C5hOC4hAor4LmE4LiE4LmJCivguYTguITguKPguYkKK+C5hOC4hOC4o+C5ieC5gOC4hOC4o+C4t+C4rQor4LmE4LiE4LilCivguYTguITguKXguYkKK+C4hgor4LiG4LiHCivguIbguI8KK+C4huC5guC4j+C4l+C4owor4LiG4LiVCivguIbguJkKK+C4huC4meC4suC4geC4owor4LiG4LiZ4Liy4LiE4LihCivguIbguJnguLLguKHguLHguKIKK+C4huC4meC4suC4qOC4seC4ogor4LiG4LmC4LiZ4Lia4LilCivguIbguKPguLLguKfguLLguKoKK+C4huC5ieC4reC4hwor4LiG4LmJ4Lit4LiH4Liq4Liy4Lih4Lii4LmI4Liy4LiZCivguIbguYjguLIKK+C4huC4suC4jwor4LiG4Liy4LiVCivguIbguLLguJkKK+C5gOC4huC4teC5iOC4ouC4mQor4LmC4LiG4Lij4Lin4Li04LiqCivguYLguIbguKkKK+C5guC4huC4qeC4gQor4LmC4LiG4Lip4LiT4LiyCivguYLguIbguKnguJPguLLguIHguLLguKMKK+C5guC4huC4qeC4k+C4suC4iuC4p+C4meC5gOC4iuC4t+C5iOC4rQor4LmC4LiG4Lip4Li04LiVCivguYLguIbguKrguKfguLHguJnguJXguYwKK+C4hwor4LiH4LiBCivguIfguIcKK+C4h+C4h+C4tOC4lAor4LiH4LiUCivguIfguJTguIfguLLguKEKK+C4h+C4mgor4LiH4LihCivguIfguKfguIcKK+C4h+C5iOC4p+C4hwor4LiH4Lin4LiUCivguIfguYjguKfguJkKK+C4h+C5ieC4p+C4mQor4LiH4Lin4Lii4LiH4LiHCivguIfguK0KK+C4h+C5ieC4rQor4LiH4Lit4LiBCivguIfguK3guIHguYHguIfguIEKK+C4h+C5iOC4reC4hwor4LiH4LmI4Lit4LiH4LmB4LiH4LmI4LiHCivguIfguK3guYHguIcKK+C4h+C4reC4lAor4LiH4Lit4LiU4LmB4LiH4LiUCivguIfguK3guJkKK+C4h+C5iOC4reC4mQor4LiH4LmI4Lit4LiZ4LmB4LiH4LmI4LiZCivguIfguK3guJnguKvguIfguYjguK0KK+C4h+C5ieC4reC4meC4q+C4oeC4uQor4LiH4Lit4LiaCivguIfguK3guKEKK+C4h+C5ieC4reC4oQor4LiH4Lit4LiiCivguIfguYjguK3guKIKK+C4h+C4sAor4LiH4Lix4LiB4LmGCivguIfguLHguYjguIHguYYKK+C4h+C4seC5iOC4hwor4LiH4Lix4LiH4LmGCivguIfguLHguJQKK+C4h+C4seC4mQor4LiH4Lix4LiZ4LiH4LiBCivguIfguLHguJoKK+C4h+C4seC4pwor4LiH4Lix4LmI4LinCivguIfguLHguKfguYDguIfguLXguKIKK+C4h+C4seC4p+C4i+C4seC4hwor4LiH4Lix4Lin4LmA4Lil4Li14LiiCivguIfguLIKK+C4h+C5iOC4sgor4LiH4LmJ4Liy4LiHCivguIfguYjguLLguYDguIfguKIKK+C4h+C4suC5hOC4iwor4LiH4Liy4LiZCivguIfguYjguLLguJkKK+C4h+C4suC4muC5hgor4LiH4Liy4LihCivguIfguYjguLLguKEKK+C4h+C4suC4ogor4LiH4LmI4Liy4LiiCivguIfguYjguLLguKLguYnguK3guKIKK+C4h+C5ieC4suC4pwor4LiH4LizCivguIfguYjguLMKK+C4h+C5ieC4swor4LiH4LmI4Liz4LmGCivguIfguLTguYnguKcKK+C4h+C4teC4mgor4LiH4Li24LiB4LmGCivguIfguLbguJkKK+C4h+C4tuC4oQor4LiH4Li24Lih4LiH4LizCivguIfguLjguJQKK+C4h+C4uOC4lOC5hgor4LiH4Li44LiZ4LiH4LiHCivguIfguLjguYjguJnguIfguYjguLLguJkKK+C4h+C4uOC4mgor4LiH4Li44Lia4LmGCivguIfguLjguJrguIfguLTguJoKK+C4h+C4uOC5ieC4oQor4LiH4Li44LmI4Lih4LiH4LmI4Liy4LihCivguIfguLjguKIKK+C4h+C4uQor4LiH4Li54LiaCivguIfguLnguYjguKvguJnguLUKK+C5gOC4h+C5iQor4LmA4LiH4LiBCivguYDguIfguYfguJkKK+C5gOC4h+C4ogor4LmA4LiH4LmI4Lir4Lih4Li24LiHCivguYDguIfguK3guLAKK+C5gOC4h+C4reC4sOC4h+C4sAor4LmA4LiH4LiyCivguYDguIfguYjguLIKK+C5gOC4h+C5ieC4sgor4LmA4LiH4Liy4LiwCivguYDguIfguLTguJkKK+C5gOC4h+C4teC5iOC4ogor4LmA4LiH4Li14LmI4Lii4LiHCivguYDguIfguLXguYjguKLguJkKK+C5gOC4h+C4teC4ouC4mgor4LmA4LiH4Li14LmJ4Lii4LinCivguYDguIfguLXguYnguKLguKfguKPguLDguYDguKPguLTguIcKK+C5gOC4h+C4teC5ieC4ouC4p+C4o+C4s+C4peC4tuC4gQor4LmA4LiH4Li14LmI4Lii4Lir4Li5CivguYDguIfguLfguYnguK0KK+C5gOC4h+C4t+C4reC4gQor4LmA4LiH4Li34LmI4Lit4LiHCivguYDguIfguLfguYjguK3guIfguYYKK+C5gOC4h+C4t+C4reC4lAor4LmA4LiH4Li34Lit4LiU4LiH4LiUCivguYDguIfguLfguK3guJkKK+C5gOC4h+C4t+C5iOC4reC4mQor4LmA4LiH4Li34Lit4LiaCivguYDguIfguLfguYnguK3guKEKK+C5geC4hwor4LmB4LiH4LmICivguYHguIfguYjguIcKK+C5geC4h+C5iOC4mQor4LmB4LiH4LmJ4LihCivguYHguIfguLAKK+C5guC4hwor4LmC4LiH4LmICivguYLguIfguIEKK+C5guC4h+C4geC5gOC4h+C4gQor4LmC4LiH4LiHCivguYLguIfguYnguIcKK+C5guC4h+C5iOC4h+C5hgor4LmC4LiH4LiH4LmA4LiH4LiHCivguYLguIfguYjguIfguYDguIfguYjguIcKK+C5guC4h+C5gOC4hwor4LmC4LiH4LiZCivguYTguIcKK+C5hOC4h+C5iQor4LiICivguIjguIEKK+C4iOC4hwor4LiI4LmI4LiHCivguIjguYvguIcKK+C4iOC4h+C4geC4o+C4oQor4LiI4LiH4LiB4LilCivguIjguIfguIHguKXguJnguLUKK+C4iOC4h+C5guC4hOC4o+C5iOC4hwor4LiI4LiH4Lit4LijCivguIjguIfguK3guLLguIcKK+C4iOC4jQor4LiI4LiUCivguIjguJTguLjguKPguIfguITguYwKK+C4iOC4lOC4uOC4o+C4sAor4LiI4LiV4Li44LiK4Liy4LiV4Li04Liq4Li44LiE4LiZ4LiY4LmMCivguIjguJXguLjguJXguJbguLUKK+C4iOC4leC4uOC4o+C4h+C4hOC5guC4iuC4hAor4LiI4LiV4Li44Lij4Liy4Lia4Liy4Lii4Lig4Li54Lih4Li0CivguIjguJXguLjguKPguLLguKPguLTguKLguKrguLHguIgKK+C4iOC4leC4uOC4quC4lOC4oeC4oOC5jAor4LiI4LiX4Li24LiHCivguIjguJkKK+C4iOC5ieC4mQor4LiI4LiaCivguIjguKEKK+C4iOC5iOC4oQor4LiI4Lih4LijCivguIjguKHguKPguLUKK+C4iOC4oeC4uQor4LiI4Lih4Li54LiBCivguIjguKHguLnguIHguJvguKXguLLguKvguKXguJQKK+C4iOC4oeC4ueC4geC4m+C4peC4suC5hOC4q+C4pQor4LiI4Lih4Li54LiB4Lir4Lil4Lit4LiUCivguIjguKLguLjguJXguLQKK+C4iOC4owor4LiI4Lij4LiBCivguIjguKPguIHguKXguLnguYgKK+C4iOC4o+C4geC4sgor4LiI4Lij4LmB4LiB4Lin4LmI4LiHCivguIjguKPguITguLHguYjguIcKK+C4iOC4o+C4iOC4o+C4seC4pQor4LiI4Lij4LiI4Lix4LiUCivguIjguKPguJPguLAKK+C4iOC4o+C4lAor4LiI4Lij4LiU4LilCivguIjguKPguJrguJkKK+C4iOC4o+C4muC4seC4mQor4LiI4Lij4Lia4Liy4LiXCivguIjguKPguKHguLHguJkKK+C4iOC4o+C4oeC4ueC4gQor4LiI4Lij4Lij4LiI4LiyCivguIjguKPguKPguYLguIjguKkKK+C4iOC4o+C4o+C4oQor4LiI4Lij4Lij4Lii4LiyCivguIjguKPguKPguYLguKXguIcKK+C4iOC4o+C4o+C5iOC4swor4LiI4Lij4Lil4Lin4LiHCivguIjguKPguKXguYjguKfguIcKK+C4iOC4o+C4peC4suC4lAor4LiI4Lij4Lil4Liy4LiiCivguIjguKPguKXguLTguYjguKcKK+C4iOC4o+C4peC4tQor4LiI4Lij4Lil4Li54LmICivguIjguKPguKfguIgKK+C4iOC4o+C4p+C4lAor4LiI4Lij4Lin4LiU4LiI4Lij4Li1CivguIjguKPguKfguLHguIEKK+C4iOC4o+C4qgor4LiI4Lij4Lit4LiBCivguIjguKPguLDguIHguKXguYnguLLguKIKK+C4iOC4o+C4sOC4guC4suC4mgor4LiI4Lij4Liw4LmA4LiC4LmJCivguIjguKPguLDguITguKXguLHguJoKK+C4iOC4o+C4sOC4hOC4peC5ieC4suC4ogor4LiI4Lij4Liw4LiE4Lil4Li44LmI4LihCivguIjguKPguLDguYHguITguIcKK+C4iOC4o+C4sOC4iOC4uOC5iOC4oQor4LiI4Lij4Liw4LiX4LiBCivguIjguKPguLDguYDguJfguLTguJkKK+C4iOC4o+C4sOC4meC4swor4LiI4Lij4Liw4Lia4Liy4LiZCivguIjguKPguLDguJrguLUKK+C4iOC4o+C4sOC4peC4tOC5iOC4hwor4LiI4Lij4Liw4Lil4Li24LiHCivguIjguKPguLDguKXguLjguIcKK+C4iOC4o+C4seC4pQor4LiI4Lij4Lix4LiqCivguIjguKPguLLguIEKK+C4iOC4o+C4suC4hwor4LiI4Lij4Liy4LiI4LijCivguIjguKPguLLguI0KK+C4iOC4o+C4suC4ogor4LiI4Lij4Liy4LinCivguIjguKPguLLguKoKK+C4iOC4o+C4tOC4gQor4LiI4Lij4Li04LiHCivguIjguKPguLTguIfguYYKK+C4iOC4o+C4tOC4kwor4LiI4Lij4Li04LiVCivguIjguKPguLTguKLguLIKK+C4iOC4o+C4tOC4pwor4LiI4Lij4Li1CivguIjguKPguLbguIcKK+C4iOC4o+C4uOC4gQor4LiI4Lij4Li44LiHCivguIjguKPguLnguIcKK+C4iOC4o+C4ueC4jQor4LiI4Lij4Li54LiqCivguIjguYDguKMKK+C4iOC4pQor4LiI4Lil4LiZ4Lie4Lil4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguKXguJnguKjguLLguKrguJXguKPguYwKK+C4iOC4peC4meC4tQor4LiI4Lil4LiyCivguIjguKXguLLguIjguKUKK+C4iOC4p+C4gQor4LiI4LmK4Lin4LiBCivguIjguKfguIcKK+C4iOC5ieC4p+C4hwor4LiI4LmL4Lin4LiHCivguIjguKfguIfguKvguK3guKEKK+C4iOC4p+C4lAor4LiI4Lin4LiU4Lil4Liy4LiBCivguIjguKfguJkKK+C4iOC4p+C4mgor4LiI4Lin4Lix4LiBCivguIjguK0KK+C4iOC5iOC4rQor4LiI4LmJ4LitCivguIjguYvguK0KK+C4iOC4reC4gQor4LiI4LmJ4Lit4LiBCivguIjguYrguK3guIEKK+C4iOC5ieC4reC4geC5hgor4LiI4LmK4Lit4LiB4LmGCivguIjguYnguK3guIHguYHguIjguYnguIEKK+C4iOC5ieC4reC4geC4p+C4reC4gQor4LiI4Lit4LiHCivguIjguYjguK3guIcKK+C4iOC5ieC4reC4hwor4LiI4LmL4Lit4LiHCivguIjguYnguK3guIfguYDguJUKK+C4iOC4reC4h+C5gOC4m+C4o+C4teC4ouC4hwor4LiI4Lit4LiH4Lir4LiH4LmI4Lit4LiHCivguIjguYnguK3guIfguKvguJnguYjguK3guIcKK+C4iOC4reC4h+C4q+C4reC4hwor4LiI4Lit4LmB4LiICivguIjguYvguK3guYHguIjguYsKK+C4iOC5ieC4reC4iuC5ieC4suC4hwor4LiI4Lit4LiUCivguIjguK3guJkKK+C4iOC5ieC4reC4mQor4LiI4Lit4LiZ4LiI4LmI4LitCivguIjguK3guJnguKvguLkKK+C4iOC4reC4mgor4LiI4Lit4LihCivguIjguYjguK3guKEKK+C4iOC5iOC4reC4oeC4iOC5iOC4suC4ogor4LiI4Lit4Lih4LiX4Lit4LiHCivguIjguK3guKHguJvguKXguK3guKEKK+C4iOC5ieC4reC4oeC4m+C5ieC4reC4oQor4LiI4Lit4Lih4LmA4Lib4Liy4LiwCivguIjguK3guKHguKrguLjguKPguLLguIfguITguYwKK+C4iOC5iOC4reC4ogor4LiI4LmJ4Lit4LiiCivguIjguYvguK3guKIKK+C4iOC4sAor4LiI4LmJ4LiwCivguIjguYrguLAKK+C4iOC5i+C4sAor4LiI4Liw4LiB4Lij4Lix4LiU4LiI4Liw4LiB4Lij4Liy4LiUCivguIjguLDguIHguKPguLjguJkKK+C4iOC4sOC4geC4o+C4uOC4oeC4iOC4sOC4geC4o+C4suC4oQor4LiI4Liw4LiB4Lij4Li54LiZCivguIjguLDguIHguKXguLAKK+C4iOC4sOC4geC4p+C4lAor4LiI4Liw4LmA4LiB4Lij4LmH4LiHCivguIjguLDguILguLLguJoKK+C4iOC4sOC5gOC4guC5iQor4LiI4Liw4LmA4LiC4LmH4LiaCivguIjguLDguIfguK3guKIKK+C4iOC4sOC4iOC4sAor4LiI4Liw4LiI4LmJ4LiyCivguIjguLDguYHguIgKK+C4iOC4sOC5geC4iOC5ieC4hwor4LiI4Liw4LmB4LiI4LmJ4LiZCivguIjguLDguYHguIjguYjguKEKK+C4iOC4sOC5hOC4iOC5iQor4LiI4Liw4Lia4Lix4LiZCivguIjguLDguJvguLTguYnguIcKK+C4iOC4sOC5gOC4nuC4peC4tOC4hwor4LiI4Liw4Lil4Liw4LmA4Lih4LmH4LiUCivguIjguLDguKXguLDguKvguKfguLHguYjguJkKK+C4iOC4sOC4peC4uOC4hwor4LiI4Lix4LiBCivguIjguLHguYnguIHguYYKK+C4iOC4seC4geC4geC4suC4ogor4LiI4Lix4LmK4LiB4LiB4Li04LmJ4LihCivguIjguLHguIHguILguLgKK+C4iOC4seC4geC4iOC4seC5iOC4mQor4LiI4Lix4LiB4LiI4Li14LmJCivguIjguLHguYrguIHguIjguLXguYkKK+C4iOC4seC5iuC4geC5gOC4lOC4teC4ouC4oQor4LiI4Lix4LiB4LijCivguIjguLHguIHguKPguJ7guLLguIEKK+C4iOC4seC4geC4o+C4p+C4suC4gQor4LiI4Lix4LiB4Lij4Li04LiZCivguIjguLHguIHguKPguLUKK+C4iOC4seC5iuC4geC5gOC4peC5ieC4rQor4LiI4Lix4LiB4Lip4Li4CivguIjguLHguIHguYHguKvguKXguYjguJkKK+C4iOC4seC4hwor4LiI4Lix4LmJ4LiHCivguIjguLHguYvguIcKK+C4iOC4seC4h+C4geC4p+C4lAor4LiI4Lix4LiH4LiB4Lit4LiaCivguIjguLHguIfguIHguLIKK+C4iOC4seC4h+C4geC4ueC4lAor4LiI4Lix4LiH4LmA4LiBCivguIjguLHguIfguYLguIEKK+C4iOC4seC4h+C5guC4geC5iwor4LiI4Lix4LiH4LmC4LiB4LiP4LiB4LmMCivguIjguLHguIfguIfguLHguIcKK+C4iOC4seC4h+C4oeC4seC4hwor4LiI4Lix4LiH4LmE4LijCivguIjguLHguIfguKXguK3guJkKK+C4iOC4seC4h+C5gOC4p+C5h+C4iAor4LiI4Lix4LiH4Lir4LiZ4Lix4LiaCivguIjguLHguIfguKvguKPguLXguJQKK+C4iOC4seC4h+C4q+C4peC5iOC4rQor4LiI4Lix4LiH4Lir4Lin4LiwCivguIjguLHguIfguKvguKfguLHguJQKK+C4iOC4seC4h+C4q+C4seC4mQor4LiI4Lix4LiH4Lit4Lit4LiZCivguIjguLHguI3guYTguKMKK+C4iOC4seC4k+C4keC5jAor4LiI4Lix4LiT4LiR4Liy4LilCivguIjguLHguJQKK+C4iOC4seC4lOC4iOC4reC4hwor4LiI4Lix4LiV4LiV4Liy4Lis4Li14LiqCivguIjguLHguJXguKfguLIKK+C4iOC4seC4leC4uAor4LiI4Lix4LiV4Li44LijCivguIjguLHguJXguLjguYLguKXguIHguJrguLLguKUKK+C4iOC4seC4leC4uOC4quC4lOC4oeC4oOC5jAor4LiI4Lix4LiZCivguIjguLHguYjguJkKK+C4iOC4seC4meC5guC4iOC4qQor4LiI4Lix4LiZ4LiX4LmMCivguIjguLHguJnguJfguJnguYwKK+C4iOC4seC4meC4l+C4meC4sgor4LiI4Lix4LiZ4LiX4Lij4LmMCivguIjguLHguJnguJfguKPguIHguKXguLIKK+C4iOC4seC4meC4l+C4o+C4geC4qeC4seC4ogor4LiI4Lix4LiZ4LiX4Lij4LiB4Liy4LiZ4LiV4LmMCivguIjguLHguJnguJfguKPguIHguLjguI4KK+C4iOC4seC4meC4l+C4o+C5gOC4geC4leC4uAor4LiI4Lix4LiZ4LiX4Lij4LiE4LiV4Li0CivguIjguLHguJnguJfguKPguITguKPguLLguKoKK+C4iOC4seC4meC4l+C4o+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiI4Lix4LiZ4LiX4Lij4LiK4LiZ4LiBCivguIjguLHguJnguJfguKPguJfguLHguIHguKnguLTguJMKK+C4iOC4seC4meC4l+C4o+C4l+C4suC4owor4LiI4Lix4LiZ4LiX4Lij4LiZ4Li04Lig4LiyCivguIjguLHguJnguJfguKPguJrguLjguJXguKMKK+C4iOC4seC4meC4l+C4o+C4m+C4o+C4sOC4oOC4suC4ngor4LiI4Lix4LiZ4LiX4Lij4Lie4Li04Lih4Lie4LmMCivguIjguLHguJnguJfguKPguKDguLLguKoKK+C4iOC4seC4meC4l+C4o+C4oOC4ueC4leC4tAor4LiI4Lix4LiZ4LiX4Lij4Lih4LiT4LiR4LilCivguIjguLHguJnguJfguKPguYDguKHguYfguJQKK+C4iOC4seC4meC4l+C4o+C5gOC4oeC4suC4sOC4q+C5jAor4LiI4Lix4LiZ4LiX4Lij4Lij4Lix4LiV4LiZ4LmMCivguIjguLHguJnguJfguKPguKfguIfguKjguYwKK+C4iOC4seC4meC4l+C4o+C4p+C4o+C4o+C4kwor4LiI4Lix4LiZ4LiX4Lij4LmA4Lio4LiC4LijCivguIjguLHguJnguJfguKPguLLguKPguLQKK+C4iOC4seC4meC4l+C4o+C4uOC4m+C4o+C4suC4hOC4sgor4LiI4Lix4LiZ4LiX4LmC4Lij4LiX4Lix4LiiCivguIjguLHguJnguJfguLHguJkKK+C4iOC4seC4meC4peC4reC4hwor4LiI4Lix4LiZ4LmA4Lil4LiyCivguIjguLHguJnguYDguKXguLLguLAKK+C4iOC4seC5ieC4meC4q+C4peC5iOC4rQor4LiI4Lix4LiZ4Lit4Lix4LiaCivguIjguLHguJoKK+C4iOC4seC4muC4geC4seC4hwor4LiI4Lix4Lia4LiI4LmI4Liy4LiiCivguIjguLHguJrguYDguIjguLXguYvguKLguKcKK+C4iOC4seC4muC4ieC5iOC4suC4ogor4LiI4Lix4Lia4LmA4LiU4Li04LihCivguIjguLHguJrguJvguLTguYnguIcKK+C4iOC4seC4muC5guC4m+C4hwor4LiI4Lix4Lia4Lii4Li14LmI4LiB4Li1CivguIjguLHguJrguKrguLHguYjguJkKK+C4iOC4seC4oeC4muC4gQor4LiI4Lix4Lih4Lib4LiBCivguIjguLHguKHguKHguLAKK+C4iOC4seC5iOC4pwor4LiI4Lix4Lin4LiI4Li14LmK4LiUCivguIjguLHguYrguKfguLAKK+C4iOC4sgor4LiI4LmI4LiyCivguIjguYnguLIKK+C4iOC5i+C4sgor4LiI4Liy4LiBCivguIjguLLguIHguJ7guKPguLLguIEKK+C4iOC4suC4geC4nuC4suC4gQor4LiI4Liy4LiE4LiwCivguIjguLLguITguLUKK+C4iOC4suC4hwor4LiI4LmI4Liy4LiHCivguIjguYnguLLguIcKK+C4iOC4suC4h+C4p+C4suC4hwor4LiI4Liy4LiUCivguIjguLLguJXguLgKK+C4iOC4suC4leC4uOC4o+C4h+C4hOC5jAor4LiI4Liy4LiV4Li44Lij4LiZ4LiV4LmMCivguIjguLLguJXguLjguKPguLHguJnguJXguYwKK+C4iOC4suC4leC4uOC4o+C4tOC4gQor4LiI4Liy4LiZCivguIjguYnguLLguJkKK+C4iOC4suC4mgor4LiI4Liy4Lia4Lix4LilCivguIjguLLguJrguLHguKXguKLguYwKK+C4iOC4suC4mwor4LiI4Liy4Lib4LiE4Li44LiTCivguIjguLLguJvguJjguKMKK+C4iOC4suC4m+C5gOC4p+C4lwor4LiI4Liy4LihCivguIjguLLguKHguIjguLjguKPguLUKK+C4iOC4suC4oeC4owor4LiI4Liy4Lih4Lij4Li1CivguIjguLLguKHguLXguIHguKMKK+C4iOC5iOC4suC4ogor4LiI4Liy4LijCivguIjguYjguLLguKPguIcKK+C4iOC4suC4o+C4p+C4suC4gQor4LiI4Liy4Lij4Liw4LmE4LiZCivguIjguLLguKPguLDguJrguLUKK+C4iOC4suC4o+C4tOC4gQor4LiI4Liy4Lij4Li1CivguIjguLLguKPguLXguJUKK+C4iOC4suC4o+C4tuC4gQor4LiI4Liy4Lij4Li4CivguIjguYnguLLguKXguLDguKvguKfguLHguYjguJkKK+C4iOC4suC4pwor4LiI4LmI4Liy4LinCivguIjguYnguLLguKcKK+C4iOC5iOC4suC4q+C4p+C4seC4gQor4LiI4LizCivguIjguYnguLMKK+C4iOC4s+C4geC4p+C5iOC4sgor4LiI4Liz4LiB4Lix4LiUCivguIjguLPguIfguLLguKIKK+C4iOC5ieC4s+C4iOC4teC5iQor4LiI4Liz4LmA4LiICivguIjguLPguYDguJTguLTguKEKK+C4iOC4s+C4l+C4p+C4ogor4LiI4Liz4LiX4Lix4LiaCivguIjguLPguJfguLLguJoKK+C4iOC4s+C5gOC4l+C4tOC4lAor4LiI4Liz4LmB4LiX4LiHCivguIjguLPguJnguIcKK+C4iOC4s+C4meC4mQor4LiI4Liz4LiZ4Lij4Lij4LiI4LmMCivguIjguLPguJnguKPguKPguIjguLIKK+C4iOC4s+C4meC4p+C4mQor4LiI4Liz4LiZ4Lit4LiHCivguIjguLPguJnguLHguJoKK+C4iOC4s+C4meC4seC4pQor4LiI4Liz4LiZ4LizCivguIjguLPguYDguJnguLXguKLguJkKK+C4iOC4s+C5gOC4meC4teC4ouC4oQor4LiI4Liz4LmA4LiZ4Li14Lii4LijCivguIjguLPguYHguJnguIEKK+C4iOC4s+C5guC4meC4l+C4ouC5jAor4LiI4Liz4Lia4LmI4LihCivguIjguYnguLPguJrguYrguLAKK+C4iOC4s+C4muC4seC4hwor4LiI4Liz4Lia4Lix4LiaCivguIjguLPguYDguJrguKgKK+C4iOC5ieC4s+C5gOC4muC5ieC4sgor4LiI4Liz4LmB4LiaCivguIjguLPguJvguLIKK+C4iOC4s+C4m+C4suC4lOC4sAor4LiI4Liz4Lib4Li1CivguIjguLPguJvguLnguJkKK+C4iOC4s+C4nuC4p+C4gQor4LiI4Liz4LmA4Lie4Liy4LiwCivguIjguLPguYHguJ7guKPguIEKK+C4iOC5ieC4s+C4oeC5iOC4swor4LiI4Liz4Lij4LiUCivguIjguLPguKPguLHguKoKK+C4iOC4s+C4o+C4suC4jQor4LiI4Liz4Lij4Liy4LiiCivguIjguLPguKPguLnguI0KK+C4iOC4s+C5gOC4o+C4tOC4jQor4LiI4Liz4LmA4Lij4Li14Lii4LiHCivguIjguLPguKXguK3guIcKK+C4iOC4s+C4peC4suC4ogor4LiI4Liz4LmA4Lil4Liy4LiwCivguIjguLPguYDguKXguLLguLDguJXguLIKK+C4iOC4s+C5geC4peC4hwor4LiI4Liz4LmB4Lil4LmI4LiZCivguIjguLPguKvguJnguLHguJoKK+C4iOC5i+C4s+C4q+C4meC4seC4mgor4LiI4Liz4Lir4LiZ4LmI4Liy4LiiCivguIjguLPguKvguKPguLAKK+C4iOC4s+C4q+C4peC5iOC4rQor4LiI4Liz4Lir4Lil4Lit4LiBCivguIjguLPguKvguKXguLHguIEKK+C4iOC4s+C4q+C4seC4mQor4LiI4Liz4Lir4Liy4LiiCivguIjguLPguKvguLjguJQKK+C4iOC4s+C5gOC4q+C4teC4ouC4hwor4LiI4Liz4Lit4Lin4LiUCivguIjguLPguK3guLfguYjguJkKK+C4iOC4tAor4LiI4Li04LiBCivguIjguLTguYrguIHguYLguIHguYsKK+C4iOC4tOC5iOC4hwor4LiI4Li04LmJ4LiH4LiI4LiBCivguIjguLTguIfguIjguYnguK0KK+C4iOC4tOC5ieC4h+C4iOC4reC4gQor4LiI4Li04LiH4LiI4Lix4LiHCivguIjguLTguYnguIfguIjguLHguIcKK+C4iOC4tOC4h+C5guC4iOC5iQor4LiI4Li04LmJ4LiH4Lir4Lij4Li14LiUCivguIjguLTguYnguIfguKvguKPguLXguJTguJzguLUKK+C4iOC4tOC4h+C4q+C4seC4mQor4LiI4Li04LiH4Lir4Li44LiZCivguIjguLTguYnguIfguYDguKvguKXguJkKK+C4iOC4tOC4lQor4LiI4Li04LiV4LiB4Liy4LiY4Liy4LiZCivguIjguLTguJXguIHguLbguYjguIfguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC5g+C4iAor4LiI4Li04LiV4LiV4LmMCivguIjguLTguJXguJXguLLguJnguLjguJvguLHguKrguKrguJnguLIKK+C4iOC4tOC4leC4meC4suC4lgor4LiI4Li04LiV4LiZ4Li04Lii4LihCivguIjguLTguJXguJrguLPguJrguLHguJQKK+C4iOC4tOC4leC5geC4nuC4l+C4ouC5jAor4LiI4Li04LiV4Lig4Liy4LieCivguIjguLTguJXguKDguLkKK+C4iOC4tOC4leC4owor4LiI4Li04LiV4Lij4LiI4Li44LilCivguIjguLTguJXguKPguKXguJTguLIKK+C4iOC4tOC4leC4o+C4sgor4LiI4Li04LiV4Lij4Liy4Lij4LiI4Li04LiqCivguIjguLTguJXguYTguKPguYnguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC4p+C4tOC4l+C4ouC4sgor4LiI4Li04LiV4Lin4Li04Liq4Lix4LiiCivguIjguLTguJXguYDguKfguIrguKjguLLguKrguJXguKPguYwKK+C4iOC4tOC4leC4qOC4suC4quC4leC4o+C5jAor4LiI4Li04LiV4Liq4Liz4LiZ4Li24LiBCivguIjguLTguJnguYDguIjguLIKK+C4iOC4tOC4meC4lOC4sgor4LiI4Li04LiZ4LiU4Liy4Liq4LmI4Liy4Lir4Lij4Li1CivguIjguLTguJnguJTguLLguKvguJnguLIKK+C4iOC4tOC4meC4lOC4suC4q+C4o+C4sgor4LiI4Li04LiZ4LiU4Liy4Lit4Lij4Liq4LiyCivguIjguLTguJnguJXguYwKK+C4iOC4tOC4mgor4LiI4Li04LmK4Lia4LiI4LmK4Lit4LiiCivguIjguLTguJvguLLguJbguLAKK+C4iOC4tOC5iOC4oQor4LiI4Li04LmJ4LihCivguIjguLTguYvguKEKK+C4iOC4tOC5ieC4oeC4geC5ieC4reC4hwor4LiI4Li04LmJ4Lih4Lil4Li04LmJ4LihCivguIjguLTguKPguLHguJnguJTguKMKK+C4iOC4tOC4o+C4suC4ouC4uOC4qgor4LiI4Li04LmK4LinCivguIjguLTguYvguKcKK+C4iOC4tQor4LiI4Li14LmICivguIjguLXguYkKK+C4iOC4teC5iwor4LiI4Li14LmL4LiI4LmJ4LitCivguIjguLXguIjguLnguYkKK+C4iOC4teC5iuC4iOC4ueC5iQor4LiI4Li14LmB4LiI4LmK4LiaCivguIjguLXguYrguJQKK+C4iOC4teC4mQor4LiI4Li14LiZ4LmB4LiqCivguIjguLXguJoKK+C4iOC4teC5guC4mgor4LiI4Li14Lie4LijCivguIjguLXguKEKK+C4iOC4teC4p+C4owor4LiI4Li24LiHCivguIjguLbguYjguIcKK+C4iOC4tuC5ieC4hwor4LiI4Li34LiUCivguIjguLfguYnguJnguYDguIjguLfguK3guIEKK+C4iOC4uAor4LiI4Li44LiBCivguIjguLjguYrguIHguIHguKPguLnguYoKK+C4iOC4uOC4geC4iOC4tOC4gQor4LiI4Li44LiB4LiK4Li1CivguIjguLjguIHguJzguLLguKEKK+C4iOC4uOC4geC4nuC4o+C4suC4q+C4oeC4k+C5jAor4LiI4Li44LiB4LmC4Lij4Lir4Li04LiZ4Li1CivguIjguLjguYjguIcKK+C4iOC4uOC5ieC4h+C4iOC4seC4hwor4LiI4Li44LmL4LiH4LiI4Li04LmL4LiHCivguIjguLjguYvguIjguLXguYsKK+C4iOC4uOC4keC4sgor4LiI4Li44LiTCivguIjguLjguJPguJPguLXguKLguJrguJcKK+C4iOC4uOC4lAor4LiI4Li44LiV4Li0CivguIjguLjguJXguLnguJvguJvguLLguJXguI3guLLguJMKK+C4iOC4uOC4l+C4qgor4LiI4Li44LiZCivguIjguLjguYjguJkKK+C4iOC4uOC5ieC4mQor4LiI4Li44LmJ4LiZ4LiI4LmJ4Liy4LiZCivguIjguLjguJnguIjguLnguYsKK+C4iOC4uOC5ieC4meC4iOC4ueC5igor4LiI4Li44LiZ4LiX4LiB4Liy4LijCivguIjguLjguJnguKrguLUKK+C4iOC4uOC4mgor4LiI4Li44LmK4LiaCivguIjguLjguJrguIjguLTguJoKK+C4iOC4uOC5iuC4muC5geC4iOC4hwor4LiI4Li44LmI4LihCivguIjguLjguYnguKEKK+C4iOC4uOC5i+C4oeC4iOC4tOC5i+C4oQor4LiI4Li44Lih4Lie4LiPCivguIjguLjguKHguJ7guKPguKfguJQKK+C4iOC4uOC4oeC4nuC4pQor4LiI4Li44Lih4Lie4Li04LiVCivguIjguLjguKHguYLguJ7guKXguYgKK+C4iOC4uOC5iOC4ogor4LiI4Li44LmJ4LiiCivguIjguLjguKPguJMKK+C4iOC4uOC4o+C4tQor4LiI4Li44LmE4LijCivguIjguLjguKXguIjguK3guKHguYDguIHguKXguYnguLIKK+C4iOC4uOC4peC4p+C4h+C4qOC5jAor4LiI4Li44Lis4LiyCivguIjguLjguKzguLLguKPguLLguIrguKHguJnguJXguKPguLUKK+C4iOC4uQor4LiI4Li54LmICivguIjguLnguYkKK+C4iOC4ueC5iwor4LiI4Li54LiHCivguIjguLnguYnguIjguLXguYkKK+C4iOC4ueC5iuC4lAor4LiI4Li54LiaCivguIjguLnguKPguJMKK+C5gOC4iAor4LmA4LiI4LmKCivguYDguIjguYrguIEKK+C5gOC4iOC5iOC4hwor4LmA4LiI4LmK4LiHCivguYDguIjguYfguJQKK+C5gOC4iOC5h+C4lOC4leC4sOC4hOC4peC4tQor4LmA4LiI4LiU4Li14Lii4LmMCivguYDguIjguJUKK+C5gOC4iOC4leC4meC4sgor4LmA4LiI4LiV4Lie4Lix4LiH4LiE4Li1CivguYDguIjguJXguKHguLnguKXguYDguJ7guKXguLTguIcKK+C5gOC4iOC4leC4quC4tOC4gQor4LmA4LiI4LiV4Li04LiiCivguYDguIjguYLguJXguJvguKPguLTguKLguI3guLLguJMKK+C5gOC4iOC5guC4leC4p+C4tOC4oeC4uOC4leC4tAor4LmA4LiI4LiZCivguYDguIjguYfguJoKK+C5gOC4iOC4o+C4iOC4sgor4LmA4LiI4Lij4Li04LiNCivguYDguIjguKPguLTguJQKK+C5gOC4iOC4o+C4teC4ouC4hwor4LmA4LiI4Lil4Li14Lii4LiHCivguYDguIjguKfguYfguJQKK+C5gOC4iOC4qeC4juC4sgor4LmA4LiI4LmK4Liq4Lix4LinCivguYDguIjguK0KK+C5gOC4iOC5iOC4rQor4LmA4LiI4LmL4LitCivguYDguIjguYvguK3guYDguIjguYrguK3guLAKK+C5gOC4iOC4reC4o+C5jOC5gOC4oeC5gOC4meC4teC4ouC4oQor4LmA4LiI4Lit4LiwCivguYDguIjguLIKK+C5gOC4iOC5iOC4sgor4LmA4LiI4LmJ4LiyCivguYDguIjguYrguLIKK+C5gOC4iOC5ieC4suC4nuC4o+C4sOC4ouC4sgor4LmA4LiI4LmJ4Liy4Lif4LmJ4Liy4Lir4LiN4Li04LiH4Liq4Li04Lij4Li04LiZ4LiY4LijCivguYDguIjguLLguLAKK+C5gOC4iOC4tOC5iOC4hwor4LmA4LiI4Li04LiUCivguYDguIjguLTguYjguJkKK+C5gOC4iOC4tOC4oQor4LmA4LiI4Li14LmK4Lii4LiBCivguYDguIjguLXguKLguIcKK+C5gOC4iOC4teC4ouC4lAor4LmA4LiI4Li14Lii4LiZCivguYDguIjguLXguYvguKLguJkKK+C5gOC4iOC4teC5iuC4ouC4mgor4LmA4LiI4Li14Lii4LihCivguYDguIjguLXguYvguKLguKHguYDguIjguLXguYnguKLguKEKK+C5gOC4iOC4teC4ouC4owor4LmA4LiI4Li14Lii4Lij4Liw4LmE4LiZCivguYDguIjguLXguKLguKPguLDguJrguLLguJQKK+C5gOC4iOC4teC4ouC4pwor4LmA4LiI4Li14LmK4Lii4Lin4LiI4LmK4Liy4LinCivguYDguIjguLfguK0KK+C5gOC4iOC4t+C5iOC4reC4mQor4LmA4LiI4Li34LmJ4Lit4LiiCivguYDguIjguLfguK3guKrguKEKK+C5geC4iAor4LmB4LiI4LmJCivguYHguIjguYsKK+C5geC4iOC4gQor4LmB4LiI4LiHCivguYHguIjguYnguIcKK+C5geC4iOC4h+C4peC4reC4mQor4LmB4LiI4LmK4LiUCivguYHguIjguJTguYHguIjguYkKK+C5geC4iOC5iuC4lOC5geC4iOC5iwor4LmB4LiI4LiV4LijCivguYHguIjguYnguJkKK+C5geC4iOC4mgor4LmB4LiI4LmI4LihCivguYHguIjguYjguKHguIjguLHguJnguJfguKPguYwKK+C5geC4iOC4owor4LmB4LiI4Lij4LiBCivguYHguIjguKPguIcKK+C5geC4iOC4pwor4LmB4LiI4LmJ4LinCivguYHguIjguYvguKcKK+C5geC4iOC5ieC4p+C5hgor4LmB4LiI4LiwCivguYLguIjguIEKK+C5guC4iOC5iuC4gQor4LmC4LiI4LiHCivguYLguIjguIfguIHguKPguLDguYDguJrguJnguJXguLXguYDguKvguKXguYfguIEKK+C5guC4iOC5iOC4h+C4hOC4o+C4tuC5iOC4oQor4LmC4LiI4LmL4LiH4LiE4Lij4Li24LmI4LihCivguYLguIjguYjguIfguITguKPguLjguYjguKEKK+C5guC4iOC4h+C5guC4hOC4o+C5iOC4hwor4LmC4LiI4LmL4LiH4LmA4LiI4LmL4LiHCivguYLguIjguYjguIfguYHguIjguYnguIcKK+C5guC4iOC4lwor4LmC4LiI4LiX4LiB4LmMCivguYLguIjguJfguJnguLIKK+C5guC4iOC4l+C4ouC5jAor4LmC4LiI4LiZCivguYLguIjguKEKK+C5guC4iOC4owor4LmC4LiI4Lij4LiB4Lij4Lij4LihCivguYLguIjguKUKK+C5guC4iOC4qQor4LmC4LiI4Lip4LiI4Lix4LiZCivguYPguIgKK+C5hOC4iAor4LmE4LiI4LmJCivguYTguIjguYnguYYKK+C5hOC4iOC4owor4LiJCivguInguIEKK+C4ieC4geC4oeC4suC4p+C4iOC4owor4LiJ4LiB4Lij4Lij4LiI4LmMCivguInguIHguLLguIgKK+C4ieC4geC4suC4iOC4ieC4geC4o+C4o+C4iOC5jAor4LiJ4LiB4Liy4Lih4Liy4Lie4LiI4LijCivguInguIfguJkKK+C4ieC4h+C4suC4ogor4LiJ4LiT4LiwCivguInguJfguKfguLLguKMKK+C4ieC4l+C4sAor4LiJ4LiX4Liy4LiZ4Lio4Liy4Lil4LiyCivguInguJfguLbguIcKK+C4ieC4meC4p+C4mQor4LiJ4LiZ4Lix4LiHCivguInguJnguLLguIEKK+C4ieC4meC4swor4LiJ4Lia4LiaCivguInguJrguLHguIcKK+C4ieC4muC4seC4lAor4LiJ4Lia4Lix4LiaCivguInguJrguLMKK+C4ieC4oQor4LiJ4Lih4LiaCivguInguKHguKfguIEKK+C4ieC4oeC4p+C4ogor4LiJ4Lih4LmI4Lit4LiHCivguInguKHguLHguIcKK+C4ieC4oeC4seC4mQor4LiJ4Lih4LiyCivguInguKHguLMKK+C4ieC4pQor4LiJ4Lil4Lin4LiiCivguInguKXguK3guIcKK+C4ieC4peC4reC4oQor4LiJ4Lil4Lix4LiBCivguInguKXguLHguJoKK+C4ieC4peC4suC4gQor4LiJ4Lil4Liy4LiB4Lia4Liy4LiHCivguInguKXguLLguIcKK+C4ieC4peC4suC4lAor4LiJ4Lil4Liy4LihCivguInguKXguLLguKIKK+C4ieC4peC4tOC4pwor4LiJ4Lil4Li14LiBCivguInguKXguLgKK+C4ieC4peC4uOC4geC4ieC4peC4p+C4ogor4LiJ4Lil4Li5CivguInguKfguKIKK+C4ieC4p+C4sAor4LiJ4Lin4Lix4LiU4LmA4LiJ4Lin4Li14Lii4LiZCivguInguKfguLLguIcKK+C4ieC4p+C4tQor4LiJ4Liq4LiBCivguInguKzguKDguLTguI3guYLguI0KK+C4ieC5ieC4rQor4LiJ4Lit4LiBCivguInguK3guIHguKnguLHguJXguKPguLTguKLguYwKK+C4ieC5iOC4reC4hwor4LiJ4Lit4LiU4LmGCivguInguLAKK+C4ieC4sOC4geC4sAor4LiJ4Liw4LiJ4Liy4LiUCivguInguLDguInguLLguJkKK+C4ieC4sOC4ieC5iOC4swor4LiJ4Liw4LiJ4Li14LmICivguInguLDguYDguInguLfguYjguK3guKIKK+C4ieC4sOC4leC5ieC4sgor4LiJ4Liw4LiZ4Lix4LmJ4LiZCivguInguLDguJnguLXguYkKK+C4ieC4sOC4reC5ieC4reC4mQor4LiJ4Lix4LiB4LiB4LiwCivguInguLHguJAKK+C4ieC4seC4kOC4oeC4sAor4LiJ4Lix4LiUCivguInguLHguJXguKMKK+C4ieC4seC4l+C4l+C4seC4meC4leC5jAor4LiJ4Lix4LiZCivguInguLHguJnguJfguYwKK+C4ieC4seC4meC4l+C4sAor4LiJ4Lix4LiZ4LiX4Li04LiVCivguInguLHguJnguKfguLjguJLguLQKK+C4ieC4seC4mgor4LiJ4Lix4Lia4LmGCivguInguLHguJ7guJ7guKPguKPguJPguKPguLHguIfguKrguLUKK+C4ieC4seC4ouC4ouC4sgor4LiJ4Liy4LiBCivguInguLLguIcKK+C4ieC5iOC4suC4hwor4LiJ4LmI4Liy4LiJ4Liy4LinCivguInguLLguJQKK+C4ieC4suC4lOC4ieC4suC4mQor4LiJ4Liy4LiV4LiB4Lig4Lix4LiiCivguInguLLguJfguJnguLAKK+C4ieC4suC4mQor4LiJ4Liy4LiaCivguInguLLguJrguInguKfguKIKK+C4ieC4suC4mwor4LiJ4Liy4LiiCivguInguLLguKLguLIKK+C4ieC4suC4o+C4tOC4geC4sgor4LiJ4Liy4LinCivguInguYjguLMKK+C4ieC4s+C4ieC4sgor4LiJ4Liz4LmA4LiJ4LiHCivguInguLPguYHguInguLAKK+C4ieC4tOC5iOC4hwor4LiJ4Li04LiZCivguInguLTguJnguJfguYwKK+C4ieC4tOC4mgor4LiJ4Li04Lih4Lie4Lil4Li1CivguInguLTguKcKK+C4ieC4teC5iAor4LiJ4Li14LiBCivguInguLXguJQKK+C4ieC4uAor4LiJ4Li44LiBCivguInguLjguJQKK+C4ieC4uOC4mQor4LiJ4Li44LibCivguInguLjguKIKK+C4ieC4uOC4ouC4ieC4suC4ogor4LiJ4Li44Lij4Li04LiB4LiyCivguInguLnguYgKK+C4ieC4ueC5iOC4ieC4teC5iAor4LiJ4Li54LiUCivguInguLnguJTguInguLLguJQKK+C5gOC4iQor4LmA4LiJ4LiBCivguYDguInguYLguIEKK+C5gOC4ieC5iOC4hwor4LmA4LiJ4LiUCivguYDguInguJcKK+C5gOC4ieC4meC4teC4ouC4mQor4LmA4LiJ4Lie4Liy4LiwCivguYDguInguKIKK+C5gOC4ieC4peC4ogor4LmA4LiJ4Lil4LinCivguYDguInguKXguLIKK+C5gOC4ieC4peC4tOC4oQor4LmA4LiJ4Lil4Li14LmI4LiiCivguYDguInguKXguLXguKLguIcKK+C5gOC4ieC4peC4teC5iOC4ouC4hwor4LmA4LiJ4Lil4Li14Lii4LiaCivguYDguInguKXguLXguKLguKcKK+C5gOC4ieC4p+C4teC4ouC4hwor4LmA4LiJ4Lin4Li14Lii4LiZCivguYDguInguK3guLAKK+C5gOC4ieC4sgor4LmA4LiJ4Liy4LiB4LmK4Lin4LiiCivguYDguInguLLguYLguInguJQKK+C5gOC4ieC4suC4ruC4t+C5ieC4rQor4LmA4LiJ4Liy4LiwCivguYDguInguLTguJQKK+C5gOC4ieC4tOC4mgor4LmA4LiJ4Li04Lia4LmGCivguYDguInguLXguKLguIcKK+C5gOC4ieC4teC4ouC4h+C4nuC4o+C5ieC4suC4lOC4swor4LmA4LiJ4Li14Lii4LiH4Lie4Lij4LmJ4Liy4LiZ4Liy4LiH4LmB4LitCivguYDguInguLXguKLguIfguJ7guKPguYnguLLguKHguK3guI0KK+C5gOC4ieC4teC4ouC4lAor4LmA4LiJ4Li14Lii4LiaCivguYDguInguLXguYjguKLguKcKK+C5gOC4ieC4t+C4reC4mQor4LmA4LiJ4Li34LmI4Lit4LiiCivguYHguIkKK+C5geC4ieC5iAor4LmB4LiJ4LiBCivguYHguInguIHguYYKK+C5geC4ieC4hwor4LmB4LiJ4LmI4LiHCivguYHguInguKXguJoKK+C5geC4ieC4peC5ieC4oQor4LmB4LiJ4Lil4LmJ4Lih4LmB4LiK4LmI4Lih4LiK4LmJ4Lit4LiiCivguYHguInguKXguLAKK+C5geC4ieC4pwor4LmB4LiJ4LiwCivguYLguIkKK+C5guC4ieC5iAor4LmC4LiJ4LmA4LiBCivguYLguInguYjguIfguInguYjguLLguIcKK+C5guC4ieC4h+C5gOC4ieC4hwor4LmC4LiJ4LiUCivguYLguInguJnguJQKK+C5guC4ieC4mgor4LmC4LiJ4LmA4Lia4LmKCivguYLguInguKEKK+C5guC4ieC4oeC4h+C4suC4oQor4LmC4LiJ4Lil4LiBCivguYTguInguJkKK+C5hOC4ieC5hOC4pQor4LiKCivguIrguIEKK+C4iuC4geC4sgor4LiK4LiE4LijCivguIrguITguLHguJUKK+C4iuC4hOC4seC4lwor4LiK4LiE4Lix4LiZCivguIrguIcKK+C4iuC4h+C4hOC4sgor4LiK4LiH4LmC4LiECivguIrguIfguIbguYwKK+C4iuC4h+C4huC4sgor4LiK4LiO4LiyCivguIrguI7guLTguKUKK+C4iuC4lAor4LiK4LiX4Li24LiHCivguIrguJkKK+C4iuC4meC4gQor4LiK4LiZ4LiB4LiB4Lij4Lij4LihCivguIrguJnguJnguLUKK+C4iuC4meC4muC4lwor4LiK4LiZ4Lih4LmMCivguIrguJnguKfguJkKK+C4iuC4meC4sAor4LiK4LiZ4Lix4LiBCivguIrguJnguLIKK+C4iuC4meC4suC4hwor4LiK4LiZ4Li0CivguIrguJnguLTguIEKK+C4iuC4meC4tOC4geC4sgor4LiK4LiZ4Li04LiUCivguIrguJnguLTguJTguLIKK+C4iuC4meC4tOC4qAor4LiK4LmA4LiZ4LiV4LiV4Li1CivguIrguJrguLIKK+C4iuC4m+C4mQor4LiK4Lib4LmC4Lii4LiECivguIrguKEKK+C4iuC4oeC4iuC4p+C4mQor4LiK4Lih4LiU4LiK4Lih4LmJ4Lit4LiiCivguIrguKHguJnguLLguJQKK+C4iuC4oeC4mgor4LiK4Lih4Lie4Li5CivguIrguKHguJ7guLnguYgKK+C4iuC4oeC4nuC4ueC4nuC4suC4lOC4muC5iOC4sgor4LiK4Lih4Lij4LihCivguIrguKHguYDguKXguLLguLAKK+C4iuC4oeC4quC4p+C4meC4quC4p+C4o+C4o+C4hOC5jAor4LiK4Lih4LmJ4Lit4LiiCivguIrguKHguLHguJkKK+C4iuC4oeC4sgor4LiK4Lih4LmJ4Liy4LiiCivguIrguYTguKEKK+C4iuC4ogor4LiK4Lii4Lix4Lih4Lia4LiU4Li1CivguIrguKLguLIKK+C4iuC4ouC4uOC4leC4tAor4LiK4LmC4LiiCivguIrguKMKK+C4iuC4o+C4leC4sgor4LiK4Lij4LiX4Li24LiHCivguIrguKPguYLguKHguKUKK+C4iuC4o+C5hOC4oQor4LiK4Lij4Lij4Liy4LiHCivguIrguKPguKPguLTguJkKK+C4iuC4o+C5geC4o+C4hwor4LiK4Lij4LmB4Lij4LmI4LiHCivguIrguKPguYDguKXguLfguK3guJQKK+C4iuC4o+C5guC4peC4hwor4LiK4Lij4Lit4LiB4LiK4Lij4Lix4LiHCivguIrguKPguK3guK3guJoKK+C4iuC4o+C4reC4seC4lAor4LiK4Lij4Lit4LmI4LizCivguIrguKPguK3guLfguYnguK0KK+C4iuC4o+C4reC4uOC5iOC4oQor4LiK4Lij4LiwCivguIrguKPguLDguIfguKEKK+C4iuC4o+C4sOC4h+C5iOC4reC4mQor4LiK4Lij4Liw4LiH4LizCivguIrguKPguLDguJTguLHguJQKK+C4iuC4o+C4sOC4lOC4t+C5iOC4mQor4LiK4Lij4Liw4LmA4LiU4Li14Lii4LiUCivguIrguKPguLDguJrguK3guJoKK+C4iuC4o+C4sOC4muC4suC4mgor4LiK4Lij4Liw4Lih4LiUCivguIrguKPguLDguKHguLHguKcKK+C4iuC4o+C4sOC4oeC4t+C5iOC4mQor4LiK4Lij4Liw4Lih4Li44LiB4LiK4Lij4Liw4Lih4Lit4LihCivguIrguKPguLDguKHguLjguYjguJkKK+C4iuC4o+C4sOC5gOC4oeC4teC4ouC4hwor4LiK4Lij4Liw4LmA4Lih4Li14Lii4LiZCivguIrguKPguLDguKXguK0KK+C4iuC4o+C4sOC4peC4reC4hwor4LiK4Lij4Liw4Lil4LmI4Lit4LiHCivguIrguKPguLDguKXguLHguYjguIcKK+C4iuC4o+C4sOC4peC4seC4lAor4LiK4Lij4Liw4Lil4LmJ4LizCivguIrguKPguLDguKXguLgKK+C4iuC4o+C4sOC5geC4peC4hwor4LiK4Lij4Liw4Lit4Lix4LiaCivguIrguKPguLDguK3guLLguJoKK+C4iuC4o+C4sOC5gOC4reC4oQor4LiK4Lij4Lix4LiUCivguIrguKPguLHguKcKK+C4iuC4o+C4sgor4LiK4Lij4Liy4LiB4Liy4LiB4Li1CivguIrguKPguLLguJoKK+C4iuC4o+C4suC4muC4iuC4o+C4seC4mgor4LiK4Lij4Liy4Lii4Li4CivguIrguKPguLTguJkKK+C4iuC4o+C4uOC4gQor4LiK4Lij4Li54LiaCivguIrguKUKK+C4iuC4peC4tQor4LiK4Lil4Li54LiB4LiyCivguIrguYDguKUKK+C4iuC5guC4peC4hwor4LiK4LmC4Lil4LihCivguIrguYjguKfguIcKK+C4iuC5iOC4p+C4h+C4l+C4o+C4seC4nuC4ouC5jAor4LiK4LmI4Lin4LiH4Liq4Li04LiX4LiY4Li04LmMCivguIrguKfguJQKK+C4iuC4p+C4mQor4LiK4Lin4LiiCivguIrguYjguKfguKIKK+C4iuC4p+C4owor4LiK4Lin4Lil4Li04LiVCivguIrguKfguLHguIEKK+C4iuC4p+C4sgor4LiK4Lin4Liy4LilCivguIrguKfguLLguKXguLIKK+C4iuC5geC4p+C4hwor4LiK4LmI4LitCivguIrguK3guIEKK+C4iuC5h+C4reC4gQor4LiK4LmH4Lit4LiB4LiB4Liy4Lij4Li1CivguIrguYfguK3guIHguYLguIHguYDguKXguJUKK+C4iuC5h+C4reC4geC5guC4geC5geC4peC4lQor4LiK4Lit4LiHCivguIrguYjguK3guIcKK+C4iuC5ieC4reC4hwor4LiK4LmJ4Lit4LiH4LiZ4Liy4LiHCivguIrguYnguK3guIfguJnguLLguIfguITguKXguLXguYgKK+C4iuC5ieC4reC4h+C5geC4oeC4pwor4LiK4Lit4LiZCivguIrguYjguK3guJkKK+C4iuC5ieC4reC4mQor4LiK4LmJ4Lit4LiZ4LiZ4Liy4LiHCivguIrguK3guJoKK+C4iuC4reC4oQor4LiK4LmI4Lit4LiiCivguIrguYnguK3guKIKK+C4iuC5ieC4reC4ouC4iuC5iOC4suC4h+C4o+C4swor4LiK4LmJ4Lit4Lii4LiZ4Liy4LiH4Lij4LizCivguIrguK3guKXguYzguIEKK+C4iuC4reC5iOC4swor4LiK4Lit4Li34LmJ4LitCivguIrguK3guLjguYjguKEKK+C4iuC4sAor4LiK4Liw4LiE4Lij4Liy4LihCivguIrguLDguIfguK3guIEKK+C4iuC4sOC4h+C5iOC4reC4mQor4LiK4Liw4LiH4Lix4LiBCivguIrguLDguIfguLHguJQKK+C4iuC4sOC4h+C4suC4mgor4LiK4Liw4LiH4LmJ4LizCivguIrguLDguIfguLjguYnguKEKK+C4iuC4sOC5gOC4h+C5ieC4rQor4LiK4Liw4LmA4LiH4Li34LmJ4Lit4LihCivguIrguLDguYHguIfguYkKK+C4iuC4sOC5guC4h+C4gQor4LiK4Liw4LiJ4LmI4LiyCivguIrguLDguIrguYjguK3guIcKK+C4iuC4sOC4iuC5ieC4sgor4LiK4Liw4LiK4Li04LiUCivguIrguLDguJTguLXguIrguLDguKPguYnguLLguKIKK+C4iuC4sOC5guC4lAor4LiK4Liw4LiV4LiyCivguIrguLDguJXguYnguLIKK+C4iuC4sOC4meC4tQor4LiK4Liw4LiZ4Li44LiHCivguIrguLDguYDguJnguLLguLAKK+C4iuC4sOC4nuC4peC4uQor4LiK4Liw4LmA4Lie4Lil4Li04LiHCivguIrguLDguKHguJQKK+C4iuC4sOC4oeC4lOC4leC5ieC4mQor4LiK4Liw4Lih4LiaCivguIrguLDguKHguKfguIcKK+C4iuC4sOC4oeC4seC4hwor4LiK4Liw4Lih4Lix4LiUCivguIrguLDguYHguKHguYgKK+C4iuC4sOC4o+C4reC4ogor4LiK4Liw4Lil4LitCivguIrguLDguKXguK3guKEKK+C4iuC4sOC4peC4sOC4geC4sgor4LiK4Liw4Lil4LmI4LiyCivguIrguLDguKXguLTguJkKK+C4iuC4sOC4peC4ueC4lAor4LiK4Liw4LmA4Lil4LiHCivguIrguLDguYDguKXguKIKK+C4iuC4sOC5geC4peC5h+C4gQor4LiK4Liw4LmB4Lil4LiHCivguIrguLDguKfguLHguIcKK+C4iuC4sOC4p+C4suC4gQor4LiK4Liw4Lin4Liy4LiUCivguIrguLDguKfguLjguYnguIcKK+C4iuC4sOC5gOC4p+C4tOC4geC4iuC4sOC4p+C4suC4gQor4LiK4Liw4LmB4Lin4LiHCivguIrguLDguK3guKEKK+C4iuC4sOC4reC5ieC4reC4mQor4LiK4Liw4LmA4Lit4LihCivguIrguLDguYLguK3guJkKK+C4iuC4seC4gQor4LiK4Lix4LiB4LiE4Lij4Liy4LihCivguIrguLHguIHguIrguYnguLIKK+C4iuC4seC4geC4q+C4meC5ieC4sgor4LiK4Lix4LiHCivguIrguLHguYjguIcKK+C4iuC4seC4h+C4hOC4sgor4LiK4Lix4LiH4LmA4LiG4Lii4Lii4LiB4LiwCivguIrguLHguIrguKfguLLguKUKK+C4iuC4seC4jwor4LiK4Lix4LiUCivguIrguLHguJTguIrguYnguLIKK+C4iuC4seC4mQor4LiK4Lix4LmJ4LiZCivguIrguLHguJnguIHguLLguJQKK+C4iuC4seC4meC4iuC4tQor4LiK4Lix4LiZ4LiV4Liy4LiG4LijCivguIrguLHguJnguJXguLgKK+C4iuC4seC4meC4meC4sOC4leC4uAor4LiK4Lix4LiZ4LiZ4Li4CivguIrguLHguJnguJnguLjguIHguLAKK+C4iuC4seC4meC5guC4o+C4hwor4LiK4Lix4LiZ4Lip4LiyCivguIrguLHguJnguKrguLnguJXguKMKK+C4iuC4seC4m+C4mQor4LiK4Lix4LieCivguIrguLHguKHguJ7guLnguJnguJcKK+C4iuC4seC4ogor4LiK4Lix4Lii4LiB4Lij4Liw4Liq4LieCivguIrguLHguKLguJrguLLguJkKK+C4iuC4seC4ouC4nuC4pOC4geC4qeC5jAor4LiK4Lix4Lii4Lig4Li54Lih4Li0CivguIrguLHguKLguYDguKDguKPguLUKK+C4iuC4seC4ouC4oeC4h+C4hOC4pQor4LiK4Lix4Lii4Lih4LiH4LiE4Lil4LiE4Liy4LiW4LiyCivguIrguLHguKXguKXguLjguIHguLIKK+C4iuC4seC5iOC4pwor4LiK4Lix4LmJ4LinCivguIrguLHguKfguIrguKEKK+C4iuC4seC5iOC4p+C5geC4leC5iOC4p+C5iOC4sgor4LiK4LiyCivguIrguYnguLIKK+C4iuC4suC4hOC4owor4LiK4Liy4LiE4Lij4Li04LiVCivguIrguLLguITguKPguLTguKLguLLguJnguLjguYLguKLguIQKK+C4iuC5iOC4suC4hwor4LiK4LmJ4Liy4LiHCivguIrguYnguLLguIfguIHguKPguLAKK+C4iuC5iOC4suC4h+C4geC4o+C4sOC5hOC4owor4LiK4LmJ4Liy4LiH4LiU4LizCivguIrguYnguLLguIfguYHguJTguIcKK+C4iuC5iOC4suC4h+C4l+C4reC4hwor4LiK4LmI4Liy4LiH4LiZ4LmJ4Liy4LinCivguIrguYnguLLguIfguYDguJzguLfguK3guIEKK+C4iuC5iOC4suC4h+C5gOC4q+C4peC5h+C4gQor4LiK4LmJ4Liy4LiK4LmI4Lit4LiZCivguIrguLLguI0KK+C4iuC4suC4lAor4LiK4Liy4LiU4LiBCivguIrguLLguJXguJrguLjguKnguKLguYwKK+C4iuC4suC4leC4o+C4tQor4LiK4Liy4LiV4LiwCivguIrguLLguJXguLIKK+C4iuC4suC4leC4tAor4LiK4Liy4LiV4Li04LiY4Lij4Lij4LihCivguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYwKK+C4iuC4suC4leC4tOC4nuC4seC4meC4mOC4uOC5jOC4p+C4o+C4o+C4k+C4meC4sgor4LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4Lin4Li04LiX4Lii4LiyCivguIrguLLguJXguLTguKDguLnguKHguLQKK+C4iuC4suC4leC4tOC4oeC4suC4peC4sgor4LiK4Liy4LiV4Li04Lij4LiqCivguIrguLLguJXguLTguKrguLHguKHguJrguLHguJnguJnguYwKK+C4iuC4suC4mQor4LiK4Liy4LiZ4Lin4Liy4LiX4Li04LiBCivguIrguLLguJnguLgKK+C4iuC4suC4meC4uOC4geC4sAor4LiK4LmJ4Liy4Lib4Li14LmICivguIrguYnguLLguJvguLXguYjguYTguKvguJkKK+C4iuC5ieC4suC5geC4m+C5ieC4mQor4LiK4LmJ4Liy4Lie4Lil4Li5CivguIrguLLguKEKK+C4iuC4suC4oeC4nuC4ueC4meC4lwor4LiK4Liy4Lih4Liy4LiU4LijCivguIrguLLguKHguLLguJTguLIKK+C4iuC4suC4oeC4suC4leC4uAor4LiK4Liy4LiiCivguIrguLLguKLguJjguIcKK+C4iuC4suC4ouC4nOC5ieC4suC4quC4teC4lOC4sgor4LiK4Liy4Lii4LiyCivguIrguLLguKMKK+C4iuC4suC4o+C4tQor4LiK4Liy4LilCivguIrguLLguKXguLIKK+C4iuC4suC4peC4tOC4meC4tQor4LiK4LmJ4Liy4LmA4Lil4Li34Lit4LiUCivguIrguLLguKcKK+C4iuC4suC4p+C4tQor4LiK4Liy4Lir4LmMCivguIrguYnguLLguKvguKHguK3guIcKK+C4iuC4suC4q+C4o+C4seC4meC4meC4suC4p+C4tQor4LiK4LizCivguIrguYjguLMKK+C4iuC5ieC4swor4LiK4Liz4LiH4Lix4LiUCivguIrguLPguIfguLLguKIKK+C4iuC4s+C4h+C4t+C4rQor4LiK4LmI4Liz4LiK4Lit4LiHCivguIrguYjguLPguIrguYjguLIKK+C4iuC4s+C4meC4mQor4LiK4Liz4LiZ4Lij4LijCivguIrguLPguJnguLAKK+C4iuC4s+C4meC4seC4jQor4LiK4Liz4LiZ4Lix4LiZCivguIrguLPguJnguLLguI0KK+C4iuC4s+C4meC4tAor4LiK4Liz4LmA4LiZ4Li14Lii4LiZCivguIrguLPguYDguJnguLXguKLguKMKK+C4iuC4s+C4oeC4sOC4meC4suC4lAor4LiK4Liz4Lih4Liw4LmA4Lil4Li14Lii4LiHCivguIrguLPguKPguYjguKfguKIKK+C4iuC4s+C4o+C4sAor4LiK4LmJ4Liz4Lij4Lix4LmI4LinCivguIrguLPguKPguLjguJQKK+C4iuC4s+C5gOC4o+C4sgor4LiK4Liz4LmA4Lij4Liy4LiwCivguIrguLPguKXguLIKK+C4iuC4s+C5gOC4peC4t+C4reC4hwor4LiK4Liz4LmB4Lir4Lil4LiwCivguIrguLQKK+C4iuC4tOC4hwor4LiK4Li04LmI4LiHCivguIrguLTguIfguIrguLHguIcKK+C4iuC4tOC4h+C4iuC4seC4mQor4LiK4Li04LiH4LiK4LmJ4LiyCivguIrguLTguIfguIrguYnguLLguIrguLLguKXguLUKK+C4iuC4tOC4h+C4iuC4teC5iAor4LiK4Li04LiH4Lie4Lil4LiaCivguIrguLTguIfguK7guLfguYnguK0KK+C4iuC4tOC4iuC4sAor4LiK4Li04LiK4Li0CivguIrguLTguJPguJPguLAKK+C4iuC4tOC4lAor4LiK4Li04LmA4LiU4LiZ4LiX4Lij4Li14Lii4LmMCivguIrguLTguJUKK+C4iuC4tOC4mQor4LiK4Li04LmI4LiZCivguIrguLTguYnguJkKK+C4iuC4tOC4meC5guC4lQor4LiK4Li04LiZ4Lia4Li44LiV4LijCivguIrguLTguJnguKrguLLguKrguJnguYwKK+C4iuC4tOC4oQor4LiK4Li04Lih4LmB4Lib4LiZ4LiL4Li1CivguIrguLTguKLguLIKK+C4iuC4tOC4o+C4k+C4sAor4LiK4Li04Lij4LiwCivguIrguLTguKfguKvguLIKK+C4iuC4tOC4quC4sgor4LiK4Li1CivguIrguLXguYgKK+C4iuC4teC5iQor4LiK4Li14LieCivguIrguLXguJ/guK3guIcKK+C4iuC4teC4o+C4kwor4LiK4Li14Lij4LiwCivguIrguLXguKfguLAKK+C4iuC4teC4reC4sOC4q+C5jAor4LiK4Li34LiUCivguIrguLfguYjguJkKK+C4iuC4t+C5ieC4mQor4LiK4Li34LmI4LitCivguIrguLfguYnguK0KK+C4iuC4uAor4LiK4Li44LiBCivguIrguLjguIHguIrguLUKK+C4iuC4uOC5iOC4hwor4LiK4Li44LmJ4LiHCivguIrguLjguJQKK+C4iuC4uOC4leC4tAor4LiK4Li44LiZCivguIrguLjguJoKK+C4iuC4uOC4muC4iuC4uQor4LiK4Li44LihCivguIrguLjguYjguKEKK+C4iuC4uOC4oeC4meC4uOC4oQor4LiK4Li44Lih4Lie4LijCivguIrguLjguKHguJ7guLIKK+C4iuC4uOC4oeC5gOC4nuC5h+C4lAor4LiK4Li44Lih4LmB4Lie4Lij4LiBCivguIrguLjguKHguKPguLjguKEKK+C4iuC4uOC4oeC4quC4suC4ogor4LiK4Li44Lih4LmB4Liq4LiHCivguIrguLjguKHguYDguKvguYfguJQKK+C4iuC4uOC5iOC4ogor4LiK4Li44LmI4Lii4LmGCivguIrguLjguKXguKHguLjguJkKK+C4iuC4uOC4peC4tQor4LiK4Li44Lip4LiT4LiwCivguIrguLkKK+C4iuC4ueC5iQor4LmA4LiK4LmH4LiECivguYDguIrguYnguIcKK+C5gOC4iuC4h+C5gOC4peC4hwor4LmA4LiK4LmJ4LiH4Lin4Lix4LiaCivguYDguIrguYfguJQKK+C5gOC4iuC5h+C4lOC4q+C4meC5ieC4sgor4LmA4LiK4LiZCivguYDguIrguYjguJkKK+C5gOC4iuC4ogor4LmA4LiK4Lij4LiyCivguYDguIrguKPguLLguLAKK+C5gOC4iuC4o+C4tOC4lAor4LmA4LiK4Lil4LiHCivguYDguIrguKXguKIKK+C5gOC4iuC4peC5geC4peC5h+C4gQor4LmA4LiK4Lil4Li14Lii4LiHCivguYDguIrguKfguIcKK+C5gOC4iuC4qeC4kOC4sgor4LmA4LiK4LitCivguYDguIrguYjguLIKK+C5gOC4iuC5ieC4sgor4LmA4LiK4Liy4Lin4LmMCivguYDguIrguLLguKfguJnguYwKK+C5gOC4iuC4tOC4hwor4LmA4LiK4Li04LiH4LiB4LilCivguYDguIrguLTguIfguIvguYnguK3guJkKK+C5gOC4iuC4tOC4h+C5gOC4lOC4teC4ouC4pwor4LmA4LiK4Li04LiH4LmA4LiU4Li14LmI4Lii4LinCivguYDguIrguLTguIfguKHguLjguKEKK+C5gOC4iuC4tOC4h+C5gOC4p+C4teC4ouC4mQor4LmA4LiK4Li04LiH4Lit4Lij4Lij4LiWCivguYDguIrguLTguI0KK+C5gOC4iuC4tOC4lAor4LmA4LiK4Li04LmJ4LiVCivguYDguIrguLXguKIKK+C5gOC4iuC4teC5ieC4ogor4LmA4LiK4Li14Lii4LiHCivguYDguIrguLXguYjguKLguJkKK+C5gOC4iuC4teC5iOC4ouC4meC4q+C4oeC4suC4gQor4LmA4LiK4Li14Lii4LiaCivguYDguIrguLXguYjguKLguKEKK+C5gOC4iuC4teC4ouC4owor4LmA4LiK4Li14Lii4Lij4LmMCivguYDguIrguLXguKLguKPguJPguYwKK+C5gOC4iuC4teC4ouC4pwor4LmA4LiK4Li14LmI4Lii4LinCivguYDguIrguLfguYjguK0KK+C5gOC4iuC4t+C5ieC4rQor4LmA4LiK4Li34Lit4LiBCivguYDguIrguLfguYjguK3guIcKK+C5gOC4iuC4t+C5iOC4reC4h+C4iuC5ieC4sgor4LmA4LiK4Li34Lit4LiUCivguYDguIrguLfguK3guJkKK+C5gOC4iuC4t+C5iOC4reC4oQor4LmA4LiK4Li34LmI4Lit4Lin4Lix4LiZCivguYHguIoKK+C5geC4iuC5iAor4LmB4LiK4LmI4LiHCivguYHguIrguIfguKHguLIKK+C5geC4iuC4muC5iuC4p+C4ogor4LmB4LiK4LmI4LihCivguYHguIrguKHguYDguJvguI0KK+C5geC4iuC4oeC4oOC4uQor4LmB4LiK4Lij4LmMCivguYHguIrguKPguIcKK+C5geC4iuC4peC5iOC4oQor4LmB4LiK4LiwCivguYLguIrguIEKK+C5guC4iuC4geC5hgor4LmC4LiK4LiB4Li44LiZCivguYLguIrguIQKK+C5guC4iuC4h+C5guC4peC4hwor4LmC4LiK4LiU4LiBCivguYLguIrguJTguLbguIEKK+C5guC4iuC4lQor4LmC4LiK4LiV4LiBCivguYLguIrguJXguLQKK+C5guC4iuC4mQor4LmC4LiK4Lih4LmC4Lij4LihCivguYLguIrguKIKK+C5guC4iuC4ouC4h+C4geC4suC4owor4LmC4LiK4Lii4LiK4Liy4LiiCivguYLguIrguKLguJXguLTguKoKK+C5guC4iuC4o+C4oQor4LmC4LiK4Lin4LmMCivguYPguIrguYgKK+C5g+C4iuC5iQor4LmE4LiKCivguYTguIrguJnguLAKK+C5hOC4iuC4ogor4LmE4LiK4LmC4LiiCivguIsKK+C4i+C4gQor4LiL4LmI4LiBCivguIvguIfguJTguLMKK+C4i+C5iOC4h+C4ruC4t+C5ieC4rQor4LiL4LiH4LmJ4LiyCivguIvguJQKK+C4i+C4mQor4LiL4LmI4LiZCivguIvguYnguJkKK+C4i+C4mgor4LiL4LihCivguIvguKPguK3guIHguIvguKPguLHguIcKK+C4i+C4p+C4lAor4LiL4Lin4LiU4LmA4LiLCivguIvguKfguJTguJfguKPguIcKK+C4i+C4p+C4mQor4LiL4Lin4LiiCivguIvguK0KK+C4i+C4reC4gQor4LiL4Lit4LiHCivguIvguYjguK3guIcKK+C4i+C5ieC4reC4hwor4LiL4Lit4LiH4Lie4Lil4Li5CivguIvguK3guIfguYHguKHguKcKK+C4i+C5ieC4reC4h+C5geC4oeC4pwor4LiL4Lit4LmB4LiLCivguIvguYnguK3guYHguIvguYkKK+C4i+C4reC4mQor4LiL4LmI4Lit4LiZCivguIvguYnguK3guJkKK+C4i+C5iOC4reC4meC4geC4peC4tOC5iOC4mQor4LiL4LmI4Lit4LiZ4LiX4Lij4Liy4LiiCivguIvguK3guKEKK+C4i+C5iOC4reC4oQor4LiL4LmJ4Lit4LihCivguIvguK3guKHguIvguYjguK0KK+C4i+C4reC4ogor4LiL4Lit4LiqCivguIvguLDguIvguKPguYnguLLguKcKK+C4i+C4sOC4i+C5iOC4reC4hwor4LiL4Liw4LiL4Lit4LmA4LiL4Li14LiiCivguIvguLDguIvguLTguIHguIvguLDguYHguIsKK+C4i+C4sOC4i+C4tOC4mgor4LiL4Liw4LmA4LiL4Liy4LiwCivguIvguLDguYDguIvguLXguKLguJoKK+C4i+C4seC4gQor4LiL4Lix4LiB4Liq4LmJ4Liy4LinCivguIvguLHguIcKK+C4i+C4seC5ieC4hwor4LiL4Lix4LiH4LiB4Liw4LiV4Liy4LiiCivguIvguLHguIfguYHguIvguKcKK+C4i+C4seC4h+C4leC4suC4ogor4LiL4Lix4LiUCivguIvguLHguYnguJkKK+C4i+C4seC4meC4leC4suC4hOC4peC4reC4qgor4LiL4Lix4LiaCivguIvguLHguJrguIvguLXguYgKK+C4i+C4seC4oQor4LiL4Lix4Lil4Lif4LiyCivguIvguLHguKXguYLguKcKK+C4i+C4seC5ieC4pwor4LiL4Lix4Lin4Lib4LiyCivguIvguLIKK+C4i+C5iOC4sgor4LiL4Liy4LiBCivguIvguLLguIHguLjguKPguLAKK+C4i+C4suC5hOC4gQor4LiL4Liy4LiHCivguIvguYjguLLguIcKK+C4i+C4suC4lAor4LiL4Liy4LiZCivguIvguYjguLLguJkKK+C4i+C4suC4muC4i+C5iOC4suC4mQor4LiL4Liy4Lia4LiL4Li24LmJ4LiHCivguIvguYjguLLguYLguJrguLAKK+C4i+C4suC4m+C4seC5iuC4pwor4LiL4Liy4LmB4Lih4LmA4Lij4Li14Lii4LihCivguIvguYnguLLguKIKK+C4i+C4suC5guC4ouC4meC4suC4o+C4sAor4LiL4Liy4Lij4LmMCivguIvguLLguKPguLTguJnguLIKK+C4i+C4suC4peC4suC5gOC4m+C4sgor4LiL4Liy4LinCivguIvguYjguLLguKvguKPguLTguYjguKEKK+C4i+C5ieC4swor4LiL4Li0CivguIvguLTguIEKK+C4i+C4tOC4geC4i+C4teC5iQor4LiL4Li04LiB4LmB4LiL4LmH4LiBCivguIvguLTguIHguLLguKPguYwKK+C4i+C4tOC4h+C5guC4hOC4meC4sgor4LiL4Li04LmI4LiZCivguIvguLTguJnguJXguLbguYrguIcKK+C4i+C4tOC4meC4meC4suC4oeC4tOC4gQor4LiL4Li04LiZ4LmB4LiqCivguIvguLTguJoKK+C4i+C4tOC4muC5hgor4LiL4Li04LibCivguIvguLTguJ/guLTguKXguLTguKoKK+C4i+C4tOC5ieC4oQor4LiL4Li04Lil4Li04LiE4Lit4LiZCivguIvguLTguKcKK+C4i+C4tQor4LiL4Li14LmICivguIvguLXguIEKK+C4i+C4teC5ieC4i+C4reC4mQor4LiL4Li14LmJ4LiL4Lix4LmJ4LinCivguIvguLXguYDguIvguYfguIHguYTguInguYgKK+C4i+C4teC5gOC4i+C4teC4ouC4oQor4LiL4Li14LiUCivguIvguLXguJnguK3guJkKK+C4i+C4teC4m+C5iOC4suC4ogor4LiL4Li14LmA4Lih4LiZ4LiV4LmMCivguIvguLXguYDguKPguLXguKLguKEKK+C4i+C4teC4peC4teC5gOC4meC4teC4ouC4oQor4LiL4Li14Lit4Li04LmJ4LinCivguIvguLbguIEKK+C4i+C4tuC5iOC4hwor4LiL4Li24LmJ4LiHCivguIvguLbguKEKK+C4i+C4t+C5iOC4rQor4LiL4Li34LmJ4LitCivguIvguLfguYjguK3guYYKK+C4i+C4t+C5ieC4reC4q+C4meC5ieC4sgor4LiL4Li44LiBCivguIvguLjguIHguIvguJkKK+C4i+C4uOC4hwor4LiL4Li44LiZCivguIvguLjguJoKK+C4i+C4uOC4muC4i+C4tOC4mgor4LiL4Li44Lia4LiL4Li54LmICivguIvguLjguJsKK+C4i+C4uOC5iOC4oQor4LiL4Li44LmJ4LihCivguIvguLjguYnguKHguIHguKPguLDguJXguYjguLLguKIKK+C4i+C4uOC5iOC4oeC4i+C5iOC4suC4oQor4LiL4Li44Lih4LmB4LiL4LinCivguIvguLjguYjguKHguYDguKrguLXguKLguIcKK+C4i+C4uOC4ogor4LiL4Li54LmICivguIvguLnguYjguIHguLHguYnguJnguKPguLHguYnguKfguYTguIvguKHguLLguJkKK+C4i+C4ueC5guC4hOC4o+C4qgor4LiL4Li54LiUCivguIvguLnguYnguJQKK+C4i+C4ueC4lOC4i+C4suC4lAor4LiL4Li54LiaCivguYDguIsKK+C5gOC4i+C5h+C4gQor4LmA4LiL4LmB4LiE4LiZ4LiV4LmMCivguYDguIvguYfguIcKK+C5gOC4i+C5iOC4hwor4LmA4LiL4LmJ4LiHCivguYDguIvguYfguIfguYHguIvguYgKK+C5gOC4i+C4lQor4LmA4LiL4LiZCivguYDguIvguYfguJkKK+C5gOC4i+C5iOC4mQor4LmA4LiL4LiZ4LiV4Li04LiB4Lij4Lix4LihCivguYDguIvguJnguJXguLTguYDguKHguJXguKMKK+C5gOC4i+C4meC4leC4tOC4peC4tOC4leC4owor4LmA4LiL4LmI4LiZ4LmA4Lir4Lil4LmJ4LiyCivguYDguIvguJvguLHguIHguJXguLDguIHguKPguYnguK0KK+C5gOC4i+C4nwor4LmA4LiL4Lij4LiyCivguYDguIvguKPguLLguLAKK+C5gOC4i+C4o+C4uOC5iOC4oQor4LmA4LiL4Lil4LmA4LiL4Li14Lii4LiqCivguYDguIvguKXguKXguYwKK+C5gOC4i+C4peC4peC4ueC4peC4reC4ouC4lOC5jAor4LmA4LiL4Lil4Lil4Li54LmC4Lil4LiqCivguYDguIvguKXguKrguYzguYHguKHguJkKK+C5gOC4i+C5iOC4rQor4LmA4LiL4Lit4Lij4LmMCivguYDguIvguK3guKPguYzguYLguITguYDguJnguLXguKLguKEKK+C5gOC4i+C4reC4sAor4LmA4LiL4LiyCivguYDguIvguYnguLLguIvguLXguYkKK+C5gOC4i+C4suC4sAor4LmA4LiL4Li04LiHCivguYDguIvguLTguYnguIcKK+C5gOC4i+C4teC4ouC4mQor4LmA4LiL4Li14Lii4LiaCivguYDguIvguLXguKLguKHguIvguLUKK+C5gOC4i+C4teC4ouC4pwor4LmA4LiL4Li14LmI4Lii4LinCivguYDguIvguLXguYnguKLguKcKK+C5gOC4i+C4teC5iOC4ouC4p+C4geC4suC4hwor4LmA4LiL4Li34LmI4Lit4LiHCivguYHguIsKK+C5geC4i+C5iAor4LmB4LiL4LmH4LiB4LiE4Liy4Lij4Li04LiZCivguYHguIvguIHguLjguKIKK+C5geC4i+C4hwor4LmB4LiL4LiH4LmB4LiL4LinCivguYHguIvguJQKK+C5geC4i+C4lOC5hgor4LmB4LiL4LiZ4LiU4LmM4Lin4Li04LiKCivguYHguIvguJoKK+C5geC4i+C4oQor4LmB4LiL4Lii4Li04LiUCivguYHguIvguYjguKcKK+C5geC4i+C4sAor4LmC4LiLCivguYLguIvguYgKK+C5guC4i+C4gQor4LmC4LiL4LmI4LiHCivguYLguIvguIfguYLguILguJTguIcKK+C5guC4i+C5gOC4iwor4LmC4LiL4LiU4LiyCivguYLguIvguJTguLLguYHguJzguJTguYDguJzguLIKK+C5guC4i+C4lOC4suC5hOC4nwor4LmC4LiL4LmA4LiU4Li14Lii4LihCivguYLguIvguKEKK+C5guC4i+C4o+C4oQor4LmC4LiL4Lil4LiyCivguYTguIsKK+C5hOC4i+C5iQor4LmE4LiL4LmA4LiB4Li04LilCivguYTguIvguYLguITguKXguJkKK+C5hOC4i+C4meC5jAor4LmE4LiL4Lii4Liy4LmE4LiZ4LiU4LmMCivguYTguIvguKPguYkKK+C5hOC4i+C5gOC4o+C4mQor4LmE4LiL4LmC4LilCivguYTguIvguYjguKvguLnguYkKK+C4jAor4LiM4Lil4LiyCivguIzguKXguLQKK+C4jOC4qQor4LiM4Lix4Lil4Lil4LmMCivguIzguLHguKXguKXguIHguLHguJPguJDguYwKK+C4jOC4suC4mQor4LiM4Liy4LiZ4Lil4Liy4Lig4Li1CivguIzguLLguJnguLLguJfguLTguKrguLHguIfguIHguLTguYDguKXguKrguLLguJfguLTguIzguLLguJkKK+C4jOC4ueC4gQor4LmA4LiM4LitCivguYLguIzguJEKK+C4jQor4LiN4LiN4LmI4Liy4LiiCivguI3guKfguJkKK+C4jeC4seC4leC4leC4tAor4LiN4Liy4LiT4Li1CivguI3guLLguJTguLIKK+C4jeC4suC4leC4m+C4o+C4tOC4jeC4jeC4sgor4LiN4Liy4LiV4Lix4LiV4LiW4LiI4Lij4Li04Lii4LiyCivguI3guLLguJXguLQKK+C4jeC4suC4mQor4LiN4Liy4Lib4LiBCivguI3guLLguKLguJvguI/guLTguJrguLHguJXguLQKK+C4jeC4suC4ouC4m+C4j+C4tOC4m+C4seC4meC5guC4mQor4LiN4Li04LiZCivguI3guLTguJoKK+C4jeC4teC5iAor4LiN4Li14LmI4Lib4Li44LmI4LiZCivguYDguI3guKLguJjguKPguKPguKEKK+C5hOC4jeC4ouC4mOC4o+C4o+C4oQor4LiOCivguI7guITguKPguLAKK+C4juC4teC4geC4sgor4LiPCivguI/guLHguIfguIHguJrguJTguLUKK+C4j+C4seC4h+C4geC4qOC4suC4peC4sgor4LiP4Lix4LiH4LiB4LiwCivguI/guLHguIfguIHguLLguKMKK+C4j+C4seC4h+C4hOC4sAor4LiP4Lix4LiH4LiE4LiyCivguI/guLHguI/guI/guJnguLUKK+C4j+C4suC4h+C4geC4owor4LiP4Liy4LijCivguI/guLjguJPguJDguLjguIEKK+C4kAor4LiQ4LiB4Lix4LiUCivguJDguLLguIHguLnguKMKK+C4kOC4suC4mQor4LiQ4Liy4LiZ4LiwCivguJDguLLguJnguLXguKLguLAKK+C4kOC4suC4m+C4meC4sgor4LiQ4Liy4Lii4Li1CivguJDguLTguJUKK+C4kOC4tOC4leC4tAor4LiRCivguJHguLLguKvguIEKK+C4keC4suC4q+C4sAor4LiR4Li04Lih4Lig4LmMCivguJIKK+C5gOC4kuC5iOC4sgor4LiTCivguJPguKPguIfguITguYwKK+C4k+C4seC4kAor4LmA4LiT4LijCivguJQKK+C4lOC4gQor4LiU4LiHCivguJTguYnguIcKK+C4lOC4h+C4p+C4suC4ogor4LiU4LmJ4LiZCivguJTguJnguYLguJTguYgKK+C4lOC4meC4leC4o+C4tQor4LiU4LiZ4LiiCivguJTguJnguKLguLIKK+C4lOC4meC4seC4ogor4LiU4LiZ4Li4CivguJTguJnguLkKK+C4lOC4muC4seC4mQor4LiU4Lia4Lix4Liq4Lin4Li04LiZCivguJTguJrguLHguKrguKfguLTguJnguLUKK+C4lOC4muC4seC4quC4p+C4tQor4LiU4LihCivguJTguKHguYTguKMKK+C4lOC4owor4LiU4Lij4LiH4LiE4LmMCivguJTguKPguJPguLQKK+C4lOC4o+C4k+C4tQor4LiU4Lij4LiY4Liy4LiZCivguJTguKPguKPguIrguJnguLUKK+C4lOC4o+C4peC4sgor4LiU4Lij4Liy4Lif4LiV4LmMCivguJTguKPguLQKK+C4lOC4o+C4tQor4LiU4Lij4Li4CivguJTguKPguLjguJMKK+C4lOC4o+C4uOC4k+C4tQor4LiU4Lik4LiW4Li1CivguJTguKUKK+C4lOC4peC4oOC4suC4hAor4LiU4Lin4LiHCivguJTguYnguKfguIcKK+C4lOC4p+C4iAor4LiU4Lin4LiUCivguJTguYjguKfguJkKK+C4lOC5ieC4p+C4mQor4LiU4LmJ4Lin4Lih4LmA4LiU4Li14LmJ4Lii4LihCivguJTguYnguKfguKIKK+C4lOC4p+C4pQor4LiU4Lit4LiBCivguJTguK3guIHguIHguLDguJfguLfguK0KK+C4lOC4reC4geC4l+C4reC4hwor4LiU4Lit4LiB4Lif4LmJ4Lit4LiZCivguJTguK3guIHguYTguKHguYnguJfguLDguYDguKUKK+C4lOC4reC4geC4quC4o+C5ieC4reC4ogor4LiU4Lit4LiB4Lit4Liy4LinCivguJTguK3guIcKK+C4lOC5ieC4reC4hwor4LiU4LmI4Lit4LiH4LmGCivguJTguYnguK3guIfguYYKK+C4lOC4reC4h+C4ieC4suC4ogor4LiU4Lit4LiH4LiU4Li24LiHCivguJTguK3guIfguKvguLLguKIKK+C4lOC4reC4lAor4LiU4Lit4LiZCivguJTguYjguK3guJkKK+C4lOC4reC4oQor4LiU4LmJ4Lit4LihCivguJTguK3guKIKK+C4lOC5ieC4reC4ogor4LiU4Lit4Lil4Lil4Liy4Lij4LmMCivguJTguLAKK+C4lOC4sOC5guC4leC5iuC4sOC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4LiU4Liw4Lir4Lih4Lix4LiHCivguJTguLHguIEKK+C4lOC4seC4geC4lOC4mQor4LiU4Lix4LiB4LiU4Liy4LiZCivguJTguLHguIHguYDguJTguLXguYnguKIKK+C4lOC4seC4geC5geC4lOC5iQor4LiU4Lix4LiB4Lip4LiBCivguJTguLHguIHguKnguJMKK+C4lOC4seC4geC4qeC4k+C4tQor4LiU4Lix4LiB4Lip4Lix4LiZCivguJTguLHguIcKK+C4lOC4seC5iOC4hwor4LiU4Lix4LmJ4LiHCivguJTguLHguYnguIfguYDguJTguLTguKEKK+C4lOC4seC4iuC4meC4tQor4LiU4Lix4LiUCivguJTguLHguJTguJvguKXguLHguIEKK+C4lOC4seC4leC4iuC5jAor4LiU4Lix4LiZCivguJTguLHguYnguJkKK+C4lOC4seC4meC5gOC4q+C4tOC4oQor4LiU4Lix4LiaCivguJTguLHguKHguJ7guYwKK+C4lOC4seC5ieC4p+C5gOC4lOC4teC5ieC4ogor4LiU4Lix4Liq4LiB4LijCivguJTguLHguKrguIHguKPguLUKK+C4lOC4sgor4LiU4LmI4LiyCivguJTguLLguIEKK+C4lOC5iOC4suC4hwor4LiU4LmJ4Liy4LiHCivguJTguLLguJQKK+C4lOC4suC4lOC4leC4sOC4geC4seC5iOC4pwor4LiU4Liy4LiZCivguJTguYjguLLguJkKK+C4lOC5ieC4suC4mQor4LiU4Liy4LiaCivguJTguLLguJrguKoKK+C4lOC4suC4oQor4LiU4LmJ4Liy4LihCivguJTguYnguLLguKHguIjguLTguYnguKcKK+C4lOC4suC4oeC4nuC5jAor4LiU4Liy4Lih4LijCivguJTguLLguKIKK+C4lOC5ieC4suC4ogor4LiU4Liy4LijCivguJTguLLguKPguIEKK+C4lOC4suC4o+C4k+C4tQor4LiU4Liy4Lij4LiU4Liy4LipCivguJTguLLguKPguLIKK+C4lOC4suC4pQor4LiU4Liy4Lil4Lix4LiUCivguJTguLLguKXguLgKK+C4lOC4suC4peC4uOC4igor4LiU4Liy4LmE4Lil4Lil4Liy4Lih4LiwCivguJTguLLguKcKK+C4lOC5iOC4suC4pwor4LiU4LmJ4Liy4LinCivguJTguLLguKfguIHguKPguLDguIjguLLguKIKK+C4lOC4suC4p+C4lOC4tuC4h+C4quC5jAor4LiU4Liy4Lin4Lia4LiqCivguJTguLLguKfguYDguKPguLfguK3guIcKK+C4lOC4suC4qQor4LiU4Liy4Lir4LiH4Lix4LiZCivguJTguLLguKvguKXguLHguIcKK+C4lOC4suC4rAor4LiU4LizCivguJTguYjguLMKK+C4lOC5ieC4swor4LiU4Liz4LmG4LmB4LiU4LiH4LmGCivguJTguLPguIHguKUKK+C4lOC4s+C5gOC4geC4tOC4hwor4LiU4Liz4LmB4LiE4LiHCivguJTguLPguJTguIcKK+C4lOC4s+C4meC4suC4kwor4LiU4Liz4LiZ4Liy4LiZCivguJTguLPguJnguLkKK+C4lOC4s+C5gOC4meC4tOC4mQor4LiU4Liz4LmA4LiZ4Li14Lii4LiZCivguJTguLPguYDguJnguLXguKLguKMKK+C4lOC4s+C4muC4pQor4LiU4Liz4Lie4Lit4LiHCivguJTguLPguKPguLHguKoKK+C4lOC4s+C4o+C4tAor4LiU4Liz4Lij4Li1CivguJTguLPguKPguLkKK+C4lOC4s+C5hOC4owor4LiU4Liz4Lik4Lip4LiT4LiyCivguJTguLPguYDguKXguLTguIcKK+C4lOC4s+C5geC4peC4hwor4LiU4Liz4Lir4LiZ4Lix4LiBCivguJTguLPguKvguJnguLQKK+C4lOC4s+C4reC4p+C4lAor4LiU4Li04LiBCivguJTguLTguIHguYYKK+C4lOC4tOC4hwor4LiU4Li04LmI4LiHCivguJTguLTguInguLHguJkKK+C4lOC4tOC4kAor4LiU4Li04LiV4LiW4LmMCivguJTguLTguJbguLUKK+C4lOC4tOC4mQor4LiU4Li04LmJ4LiZCivguJTguLTguJoKK+C4lOC4tOC4muC4lOC4tQor4LiU4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJTguLTguYDguKPguIEKK+C4lOC4tOC4peC4gQor4LiU4Li04LmI4LinCivguJTguLTguYnguKcKK+C4lOC4tOC5ieC4p+C5gOC4lOC4teC5ieC4ouC4pwor4LiU4Li04Lip4LiQ4LmMCivguJTguLTguKrguYLguJ7guKPguYDguIvguLXguKLguKEKK+C4lOC4tQor4LiU4Li14LiB4Lij4Li1CivguJTguLXguInguLHguJkKK+C4lOC4teC5gOC4i+C4pQor4LiU4Li14LiUCivguJTguLXguJTguLXguJfguLUKK+C4lOC4teC4meC4suC4hOC4o+C4suC4igor4LiU4Li14Lia4Li44LiBCivguJTguLXguJvguKXguLUKK+C4lOC4teC5gOC4m+C4o+C4quC4iuC4seC4mQor4LiU4Li14Lic4LiyCivguJTguLXguJ7guKMKK+C4lOC4teC4ouC4sgor4LiU4Li14Lir4Lih4Li1CivguJTguLXguKvguKXguLUKK+C4lOC4tuC4gQor4LiU4Li24LiHCivguJTguLbguYjguIcKK+C4lOC4tuC4h+C4quC4sAor4LiU4Li24LmI4LihCivguJTguLfguYjguJkKK+C4lOC4t+C5iOC4oQor4LiU4Li34LitCivguJTguLfguYnguK0KK+C4lOC4uAor4LiU4Li44LiBCivguJTguLjguIHguJTguLTguIEKK+C4lOC4uOC4geC4l+C4sOC5gOC4pQor4LiU4Li44LmJ4LiHCivguJTguLjguYnguIfguJTguLTguYnguIcKK+C4lOC4uOC4iAor4LiU4Li44LiI4LiU4Lix4LiHCivguJTguLjguIjguKvguJnguLbguYjguIcKK+C4lOC4uOC4lAor4LiU4Li44LiZCivguJTguLjguYnguJkKK+C4lOC4uOC4muC5hgor4LiU4Li44LihCivguJTguLjguYjguKEKK+C4lOC4uOC5iOC4oeC5hgor4LiU4Li44LmI4LiiCivguJTguLjguKPguIQKK+C4lOC4uOC4o+C4h+C4hOC5jAor4LiU4Li44Lij4LiH4LiE4Li1CivguJTguLjguKPguLTguKLguLAKK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LiU4Li44LilCivguJTguLjguKnguI7guLUKK+C4lOC4uOC4qeC4k+C4tQor4LiU4Li44Lip4LiT4Li14Lig4Liy4LieCivguJTguLjguKnguLTguJUKK+C4lOC4uOC4quC4tOC4lQor4LiU4Li44LmA4Lir4Lin4LmI4LiyCivguJTguLkKK+C4lOC4ueC4geC5hOC4geC5iOC4lOC4swor4LiU4Li54LiB4LiE4LmI4Liy4LiHCivguJTguLnguIHguIrguYnguLLguIcKK+C4lOC4ueC4geC4owor4LiU4Li54LiUCivguYDguJQKK+C5gOC4lOC5iAor4LmA4LiU4LiBCivguYDguJTguYfguIEKK+C5gOC4lOC4geC4i+C5jOC5guC4l+C4o+C4qgor4LmA4LiU4LiE4Liy4LiB4Lij4Lix4LihCivguYDguJTguITguLLguYDguKHguJXguKMKK+C5gOC4lOC4hOC4suC4peC4tOC4leC4owor4LmA4LiU4LmJ4LiHCivguYDguJTguYfguIgKK+C5gOC4lOC4igor4LmA4LiU4LiK4LiZ4LmMCivguYDguJTguIrguJnguLAKK+C5gOC4lOC4iuC4sAor4LmA4LiU4LmC4LiKCivguYDguJTguIvguLTguIHguKPguLHguKEKK+C5gOC4lOC4i+C4tOC5gOC4oeC4leC4owor4LmA4LiU4LiL4Li04Lil4Li04LiV4LijCivguYDguJTguYfguJQKK+C5gOC4lOC4mQor4LmA4LiU4LmI4LiZCivguYDguJTguJnguKHguLLguKPguYzguIEKK+C5gOC4lOC4o+C4seC4iOC4ieC4suC4mQor4LmA4LiU4LmL4LitCivguYDguJTguYvguK3guJTguYvguLIKK+C5gOC4lOC4sgor4LmA4LiU4LmI4LiyCivguYDguJTguYnguLIKK+C5gOC4lOC5iOC4suC5hgor4LmA4LiU4LmJ4Liy4LiU4Li04LiZCivguYDguJTguYnguLLguKXguKEKK+C5gOC4lOC4suC4sAor4LmA4LiU4Li04LiZCivguYDguJTguLTguYjguJkKK+C5gOC4lOC4tOC4oQor4LmA4LiU4Li14LmJ4LiiCivguYDguJTguLXguKLguIcKK+C5gOC4lOC4teC4ouC4lAor4LmA4LiU4Li14Lii4LijCivguYDguJTguLXguKLguKPguJTguLLguKkKK+C5gOC4lOC4teC4ouC4o+C4luC5jAor4LmA4LiU4Li14Lii4Lij4LiW4Li14Lii4LmMCivguYDguJTguLXguKLguKPguLHguIjguInguLLguJkKK+C5gOC4lOC4teC4ouC4pwor4LmA4LiU4Li14LmI4Lii4LinCivguYDguJTguLXguYvguKLguKcKK+C5gOC4lOC4teC4ouC4sAor4LmA4LiU4Li34LmI4LitCivguYDguJTguLfguK3guIEKK+C5gOC4lOC4t+C5iOC4reC4hwor4LmA4LiU4Li34Lit4LiUCivguYDguJTguLfguK3guJkKK+C5gOC4lOC4t+C4reC4ogor4LmB4LiUCivguYHguJTguYgKK+C5geC4lOC4gQor4LmB4LiU4LmH4LiB4LmGCivguYHguJTguIHguIfguLIKK+C5geC4lOC4geC5geC4lOC5iQor4LmB4LiU4LmH4LiB4LmB4LiU4LmJCivguYHguJTguIcKK+C5geC4lOC4h+C4meC5ieC4swor4LmB4LiU4LiUCivguYHguJTguJkKK+C5geC4lOC5iOC4mQor4LmB4LiU4LmI4Lin4LmGCivguYHguJTguLAKK+C5guC4lAor4LmC4LiU4LmICivguYLguJTguIHguYDguJTguIEKK+C5guC4lOC5iOC4hwor4LmC4LiU4LiUCivguYLguJTguJkKK+C5guC4lOC4meC4seC4lQor4LmC4LiU4LmK4Lib4Lii4LiyCivguYLguJTguKEKK+C5guC4lOC4oeC4owor4LmC4LiU4LiiCivguYLguJTguKMKK+C5guC4lOC4o+C4kwor4LmD4LiUCivguYTguJQKK+C5hOC4lOC5iQor4LmE4LiU4LmB4LiL4LmH4LiB4LiE4Liy4LmE4Lij4LiE4LmMCivguYTguJTguJnguLLguYTguKHguJXguYwKK+C5hOC4lOC5guC4meC5gOC4quC4suC4o+C5jAor4LmE4LiU4LmA4Lij4LiB4LiV4Lij4Li04LiB4LiL4LmMCivguYTguJTguK3guLLguKPguLUKK+C4lQor4LiV4LiBCivguJXguYrguIHguYLguJUKK+C4leC4hwor4LiV4LmL4LiHCivguJXguIfguInguLTguJkKK+C4leC4h+C4tOC4lAor4LiV4LiH4Li44LmI4LiZCivguJXguJQKK+C4leC4luC4suC4hOC4lQor4LiV4LiX4Lix4LiH4LiE4Lin4Li04Lih4Li44LiV4LiV4Li0CivguJXguJkKK+C4leC5ieC4mQor4LiV4LiZ4Lix4LiiCivguJXguJnguLgKK+C4leC4mgor4LiV4Lia4Lii4Li44LiHCivguJXguJrguLAKK+C4leC4m+C4sOC4meC4teC4ouC4sAor4LiV4LihCivguJXguYnguKEKK+C4leC4oeC4ueC4gQor4LiV4LmC4Lih4LmC4LiK4LiV4Li04Lib4Lij4Liy4Lii4LmC4LiZCivguJXguYLguKHguJXguKHguJvguKPguLLguKLguYLguJkKK+C4leC5guC4oeC4meC4uOC4lwor4LiV4LmC4Lih4LmE4Lie4Lij4Li1CivguJXguYLguKHguKvguKMKK+C4leC4ouC4suC4hAor4LiV4Lii4Liy4LiE4Li1CivguJXguKLguLjguJXguLQKK+C4leC4o+C4hwor4LiV4Lij4LiH4LmGCivguJXguKPguJPguLUKK+C4leC4o+C4oQor4LiV4Lij4Lih4Lin4LilCivguJXguKPguKPguIHguLAKK+C4leC4o+C4peC4mgor4LiV4Lij4Lil4Lit4LiUCivguJXguKPguKXguLAKK+C4leC4o+C4peC4sgor4LiV4Lij4Lil4Liy4LiUCivguJXguKPguYDguKXguLTguJQKK+C4leC4o+C4p+C4iAor4LiV4Lij4Lin4LiUCivguJXguKPguKfguJkKK+C4leC4o+C4p+C4ogor4LiV4Lij4Lit4LiBCivguJXguKPguK3guIcKK+C4leC4o+C4reC4oeC5g+C4iAor4LiV4Lij4Lit4Lih4LiV4Lij4LihCivguJXguKPguLAKK+C4leC4o+C4sOC4geC4pQor4LiV4Lij4Liw4LiB4Lin4LiZCivguJXguKPguLDguIHguK3guIcKK+C4leC4o+C4sOC4geC4seC4lAor4LiV4Lij4Liw4LiB4Liy4LijCivguJXguKPguLDguIHguLnguKUKK+C4leC4o+C4sOC4hOC4seC4owor4LiV4Lij4Liw4LiH4LmI4Lit4LiHCivguJXguKPguLDguIjguLHguIEKK+C4leC4o+C4sOC4iuC4seC4gQor4LiV4Lij4Liw4LiU4LiBCivguJXguKPguLDguJTguLLguKkKK+C4leC4o+C4sOC5gOC4leC4o+C4teC4ouC4oQor4LiV4Lij4Liw4LmB4LiV4LmJ4LiZCivguJXguKPguLDguJfguKPguKfguIcKK+C4leC4o+C4sOC4meC4suC4pwor4LiV4Lij4Liw4LmE4LiZCivguJXguKPguLDguJrguIEKK+C4leC4o+C4sOC4muC4reC4gQor4LiV4Lij4Liw4Lia4Lit4LiHCivguJXguKPguLDguJrguLHguJQKK+C4leC4o+C4sOC4muC4seC4mQor4LiV4Lij4Liw4LmA4Lia4LmH4LiHCivguJXguKPguLDguYHguJrguYgKK+C4leC4o+C4sOC5geC4muC4gQor4LiV4Lij4Liw4LmB4Lia4LiHCivguJXguKPguLDguYHguJrguJkKK+C4leC4o+C4sOC5geC4muC5iOC4mQor4LiV4Lij4Liw4LmC4Lia4LihCivguJXguKPguLDguJ7guK3guIcKK+C4leC4o+C4sOC4nuC4seC4hwor4LiV4Lij4Liw4Lih4Li34LmI4LiZCivguJXguKPguLDguYLguKHguIgKK+C4leC4o+C4sOC4peC4suC4geC4suC4owor4LiV4Lij4Liw4Lin4Lix4LiZCivguJXguKPguLDguYDguKfguYfguJQKK+C4leC4o+C4sOC5gOC4p+C4mQor4LiV4Lij4Liw4LmA4Lin4LiZ4LmE4Lie4LijCivguJXguKPguLDguYDguKfguJnguKfguLHguJkKK+C4leC4o+C4sOC4quC4seC4gQor4LiV4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguJXguKPguLDguKvguIfguYjguLLguJkKK+C4leC4o+C4sOC4q+C4meC4gQor4LiV4Lij4Liw4Lir4LiZ4Lix4LiBCivguJXguKPguLDguKvguJnguYjguLMKK+C4leC4o+C4sOC4q+C4meC4teC5iAor4LiV4Lij4Liw4Lit4LijCivguJXguKPguLDguK3guLLguKUKK+C4leC4o+C4sOC5guC4reC4oQor4LiV4Lij4Lix4LiHCivguJXguKPguLHguIfguITguYwKK+C4leC4o+C4seC4mgor4LiV4Lij4Lix4Lia4Lif4Lix4LiHCivguJXguKPguLHguKIKK+C4leC4o+C4seC4ouC4leC4o+C4tuC4h+C4qOC5jAor4LiV4Lij4Lix4LiqCivguJXguKPguLHguKrguKrguLIKK+C4leC4o+C4sgor4LiV4Lij4Liy4LiB4LiV4Lij4LizCivguJXguKPguLLguIrguLkKK+C4leC4o+C4suC4mgor4LiV4Lij4Liy4Liq4Lix4LiHCivguJXguKPguLMKK+C4leC4o+C5iOC4swor4LiV4Lij4Li0CivguJXguKPguLTguKcKK+C4leC4o+C4tQor4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4LiaCivguJXguKPguLXguJvguKfguLLguKIKK+C4leC4o+C4teC4nuC4tOC4mOC4nuC4o+C4o+C4kwor4LiV4Lij4Li14LmA4Lie4LiK4Lij4LiX4Lix4LiT4LiR4Li1CivguJXguKPguLXguYDguJ7guIrguKPguJ7guKfguIcKK+C4leC4o+C4teC4ouC4oeC4gQor4LiV4Lij4Li14Lii4Lix4Lih4Lib4Lin4Liy4LiiCivguJXguKPguLbguIEKK+C4leC4o+C4tuC4hwor4LiV4Lij4Li4CivguJXguKPguLjguJMKK+C4leC4o+C4uOC4ogor4LiV4Lij4Li44LipCivguJXguKPguLjguKnguIjguLXguJkKK+C4leC4o+C4uQor4LiV4Lij4Li54LmICivguJXguKTguJMKK+C4leC4pOC4leC4teC4ouC4sAor4LiV4Lik4LiXCivguJXguKTguJsKK+C4leC4pOC4qeC4k+C4sgor4LiV4Lik4LmFCivguJXguKUKK+C4leC4peC4gQor4LiV4Lil4LiB4Lia4Liy4LiV4LijCivguJXguKXguJoKK+C4leC4peC4reC4lAor4LiV4Lil4LiwCivguJXguKXguLHguJoKK+C4leC4peC4seC4muC4meC4suC4gQor4LiV4Lil4Liy4LiUCivguJXguKXguLTguYjguIcKK+C4leC4peC4tuC4hwor4LiV4Lin4LiHCivguJXguYjguKfguJkKK+C4leC5ieC4p+C4oeC5gOC4leC4teC5ieC4ouC4oQor4LiV4Lin4Lix4LiBCivguJXguKfguLHguJQKK+C4leC4p+C4suC4lAor4LiV4LitCivguJXguYjguK0KK+C4leC5ieC4rQor4LiV4Lit4LiBCivguJXguYrguK3guIEKK+C4leC5iuC4reC4geC4leC5i+C4reC4ogor4LiV4Lit4LiHCivguJXguYnguK3guIcKK+C4leC4reC4h+C4geC4o+C4suC4ogor4LiV4LmJ4Lit4LiH4LiB4Liy4LijCivguJXguK3guIfguJXguK3guKIKK+C4leC4reC4h+C4leC4tuC4hwor4LiV4LmJ4Lit4LiH4LmA4LiVCivguJXguK3guIfguYHguJXguIEKK+C4leC5iOC4reC4h+C5geC4leC5iOC4hwor4LiV4Lit4LiH4LmA4Lib4Lij4Li14Lii4LiHCivguJXguYnguK3guIfguKrguLnguYkKK+C4leC4reC4h+C5gOC4q+C4peC4t+C4reC4hwor4LiV4Lit4LiUCivguJXguK3guJTguJXguYjguK0KK+C4leC4reC4mQor4LiV4LmJ4Lit4LiZCivguJXguK3guJoKK+C4leC4reC5gOC4muC4sgor4LiV4Lit4LihCivguJXguYjguK3guKEKK+C4leC5i+C4reC4oQor4LiV4LmI4Lit4Lih4LiZ4LmJ4LizCivguJXguYjguK3guKIKK+C4leC5ieC4reC4ogor4LiV4LmJ4Lit4Lii4LiV4Lij4Li04LmI4LiHCivguJXguYnguK3guKLguJXguLTguYjguIcKK+C4leC5ieC4reC4ouC4leC4teC4p+C4tOC4lAor4LiV4Lit4LmB4LiiCivguJXguK3guKPguYzguJvguLTguYLguJQKK+C4leC5iOC4reC5hOC4quC5iQor4LiV4Lit4LmB4Lir4LilCivguJXguLAKK+C4leC4sOC4geC4o+C4mQor4LiV4Liw4LiB4Lij4LihCivguJXguLDguIHguKPguKfguKIKK+C4leC4sOC4geC4o+C5ieC4rQor4LiV4Liw4LiB4Lij4LmI4Lit4LihCivguJXguLDguIHguKPguLHguJkKK+C4leC4sOC4geC4o+C4seC4mgor4LiV4Liw4LiB4Lij4LmJ4LiyCivguJXguLDguIHguKPguLLguKEKK+C4leC4sOC4geC4o+C4uOC4lAor4LiV4Liw4LiB4Lij4Li44LihCivguJXguLDguIHguKPguLjguKHguJXguLDguIHguKPguLLguKEKK+C4leC4sOC4geC4peC4sAor4LiV4Liw4LiB4Lil4Liy4LihCivguJXguLDguIHguKfguJQKK+C4leC4sOC4geC4rQor4LiV4Liw4LiB4Lit4LiZCivguJXguLDguIHguLHguIcKK+C4leC4sOC4geC4seC5iOC4pwor4LiV4Liw4LiB4Liy4LiHCivguJXguLDguIHguLLguJQKK+C4leC4sOC4geC4suC4ogor4LiV4Liw4LiB4Liy4LinCivguJXguLDguIHguLXguYkKK+C4leC4sOC4geC4uOC4geC4leC4sOC4geC4seC4gQor4LiV4Liw4LiB4Li44LiiCivguJXguLDguIHguLkKK+C4leC4sOC4geC4ueC4lAor4LiV4Liw4LmA4LiB4Li14Lii4LiB4LiV4Liw4LiB4Liy4LiiCivguJXguLDguYDguIHguLXguKLguIcKK+C4leC4sOC5gOC4geC4teC4ouC4mgor4LiV4Liw4LmB4LiBCivguJXguLDguYHguIHguYgKK+C4leC4sOC5geC4geC4o+C4hwor4LiV4Liw4LmC4LiBCivguJXguLDguYLguIHguYkKK+C4leC4sOC5guC4geC4gQor4LiV4Liw4LmC4LiB4LiZCivguJXguLDguYLguIHguKPguIcKK+C4leC4sOC5guC4geC4o+C4oQor4LiV4Liw4LmE4LiB4LijCivguJXguLDguILguJoKK+C4leC4sOC4guC4rQor4LiV4Liw4LiC4Liy4LiaCivguJXguLDguILguLTguJTguJXguLDguILguKfguIcKK+C4leC4sOC5gOC4guC5iQor4LiV4Liw4LmA4LiC4LmH4LiaCivguJXguLDguYDguILguLTguIcKK+C4leC4sOC5guC4guC4hwor4LiV4Liw4LiE4Lij4LmJ4LitCivguJXguLDguITguKPguK3guIcKK+C4leC4sOC4hOC4o+C4seC5iOC4meC4leC4sOC4hOC4o+C4rQor4LiV4Liw4LiE4Lij4LmJ4LizCivguJXguLDguITguKPguLTguKcKK+C4leC4sOC4hOC4o+C4uOC4mgor4LiV4Liw4LiE4Lil4Lix4Lia4LiV4Liw4LiE4Lil4LmJ4Liy4LiiCivguJXguLDguITguK3guIEKK+C4leC4sOC4hOC4seC4mQor4LiV4Liw4LiE4LmJ4LiyCivguJXguLDguITguLLguIEKK+C4leC4sOC4hOC4suC4hwor4LiV4Liw4LiE4LmJ4Liy4LiZCivguJXguLDguITguLTguKcKK+C4leC4sOC4hOC4uOC5iOC4oQor4LiV4Liw4LmA4LiE4Lij4Li14Lii4LinCivguJXguLDguYDguITguLXguKLguJkKK+C4leC4sOC5gOC4hOC4teC4ouC4meC4l+C4reC4hwor4LiV4Liw4LmA4LiE4Li14Lii4LinCivguJXguLDguYHguITguIcKK+C4leC4sOC5hOC4hOC4o+C5iAor4LiV4Liw4LmE4LiE4Lij4LmJCivguJXguLDguYDguIbguYgKK+C4leC4sOC5geC4h+C5iQor4LiV4Liw4LiV4Li04LiZCivguJXguLDguYHguJXguKPguYnguJkKK+C4leC4sOC4meC4reC4ogor4LiV4Liw4LiZ4Liy4LinCivguJXguLDguJrguKEKK+C4leC4sOC4muC4reC4hwor4LiV4Liw4Lia4Lit4LiH4LiB4Lix4LiZCivguJXguLDguJrguK3guIfguYDguJ7guIrguKMKK+C4leC4sOC4muC4reC4ogor4LiV4Liw4Lia4Lix4LiZCivguJXguLDguJrguLTguYnguIcKK+C4leC4sOC4muC4tOC4lAor4LiV4Liw4Lia4Li04LiU4LiV4Liw4Lia4Lit4LiiCivguJXguLDguJrguLXguYnguJXguLDguJrguLHguJkKK+C4leC4sOC4muC4tuC4hwor4LiV4Liw4Lia4Li44LmJ4LiiCivguJXguLDguJrguLjguYnguKLguYYKK+C4leC4sOC4muC4ueC4mQor4LiV4Liw4LmA4Lia4LmH4LiHCivguJXguLDguYDguJrguYfguIfguKHguLLguJkKK+C4leC4sOC5geC4muC4gQor4LiV4Liw4LmB4Lia4LiHCivguJXguLDguYLguJrguKEKK+C4leC4sOC5hOC4mgor4LiV4Liw4Lib4LiaCivguJXguLDguJvguKXguLTguIcKK+C4leC4sOC4m+C4seC4lOC4leC4sOC4m+C5iOC4reC4hwor4LiV4Liw4Lib4Li04LmJ4LiHCivguJXguLDguJvguLjguYjguKHguJXguLDguJvguYjguLMKK+C4leC4sOC4m+C4uQor4LiV4Liw4Lie4LiHCivguJXguLDguJ7guJQKK+C4leC4sOC4nuC4reC4hwor4LiV4Liw4Lie4Lix4LiBCivguJXguLDguJ7guLHguIcKK+C4leC4sOC4nuC4seC4lAor4LiV4Liw4Lie4Lix4LmJ4LiZCivguJXguLDguJ7guLLguIEKK+C4leC4sOC4nuC4suC4mQor4LiV4Liw4Lie4Liy4LiaCivguJXguLDguJ7guLLguJrguJnguYnguLMKK+C4leC4sOC4nuC4suC4ogor4LiV4Liw4Lie4Li24LiUCivguJXguLDguJ7guLjguYjguJkKK+C4leC4sOC5gOC4nuC4o+C4sgor4LiV4Liw4LmA4Lie4Li04LiHCivguJXguLDguYDguJ7guLTguJQKK+C4leC4sOC5gOC4nuC4tOC5iOC4mQor4LiV4Liw4LmA4Lie4Li14Lii4LiZCivguJXguLDguYLguJ7guIEKK+C4leC4sOC5guC4nuC4hwor4LiV4Liw4LmC4Lie4LiZCivguJXguLDguYDguKDguLIKK+C4leC4sOC5g+C4oOC5iQor4LiV4Liw4Lih4LmI4LitCivguJXguLDguKHguK3guKIKK+C4leC4sOC4oeC4reC4ouC4quC4sOC4peC4sgor4LiV4Liw4Lij4Lix4LiHCivguJXguLDguKPguLHguIfguIHguLDguJnguLkKK+C4leC4sOC4o+C4seC4h+C4leC4seC4hwor4LiV4Liw4Lij4Liy4LiHCivguJXguLDguKXguK3guIcKK+C4leC4sOC4peC4reC4mQor4LiV4Liw4Lil4LmI4Lit4LihCivguJXguLDguKXguYjguK3guKHguJvguYnguK3guKEKK+C4leC4sOC4peC4sAor4LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLTguIfguJvguKXguLTguIcKK+C4leC4sOC4peC4tOC4mgor4LiV4Liw4Lil4Li14LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLbguIcKK+C4leC4sOC4peC4uOC4hwor4LiV4Liw4Lil4Li44LmI4LihCivguJXguLDguKXguLjguKHguJrguK3guJkKK+C4leC4sOC4peC4uOC5iOC4oeC5guC4m+C4hwor4LiV4Liw4Lil4Li44Lih4Lie4LitCivguJXguLDguKXguLjguKHguJ7guLjguIEKK+C4leC4sOC4peC4uOC5iOC4oeC4reC4tOC4lAor4LiV4Liw4Lil4Li44LiiCivguJXguLDguYDguKXguIcKK+C4leC4sOC5geC4peC4h+C5geC4geC4hwor4LiV4Liw4LmE4LilCivguJXguLDguKfguLHguJkKK+C4leC4sOC4p+C4suC4hwor4LiV4Liw4LmA4Lin4LiZCivguJXguLDguKvguJnguLbguYjguIfguKPguLHguJQKK+C4leC4sOC4q+C4peC4tOC4pwor4LiV4Liw4Lir4Lil4Li44LiBCivguJXguLDguKvguKXguLjguIcKK+C4leC4sOC5gOC4q+C4peC4meC5geC4m+C5i+C4mQor4LiV4Liw4LmA4Lir4Lil4Liy4Liw4LmA4Lib4Liy4LiwCivguJXguLDguYHguKvguIfguYjguKcKK+C4leC4sOC5geC4q+C4oeC4sOC5geC4guC4sAor4LiV4Liw4LmB4Lir4Lil4LiZ4LmB4Lib4LmL4LiZCivguJXguLDguYLguKvguIfguIEKK+C4leC4seC5iuC4gQor4LiV4Lix4LiB4LiB4LiwCivguJXguLHguIHguYDguJXguLfguK3guJkKK+C4leC4seC5iuC4geC5geC4leC4mQor4LiV4Lix4LiB4LijCivguJXguLHguIHguKnguIEKK+C4leC4seC4geC4qeC4kwor4LiV4Lix4LiB4Lip4LiT4Li1CivguJXguLHguIHguKnguLHguKIKK+C4leC4seC4hwor4LiV4Lix4LmI4LiHCivguJXguLHguYnguIcKK+C4leC4seC4h+C5gOC4gQor4LiV4Lix4LiH4LiJ4LmI4Liy4LiiCivguJXguLHguIfguJXguLTguJQKK+C4leC4seC4h+C5gOC4oQor4LiV4Lix4LiH4Lin4Liy4LiiCivguJXguLHguIfguYLguK3guYsKK+C4leC4seC4iOC4ieC4gQor4LiV4Lix4LiI4LiJ4LiZ4Li1CivguJXguLHguJPguJHguLjguKUKK+C4leC4seC4k+C4q+C4seC4geC4qeC4seC4ogor4LiV4Lix4LiT4Lir4LiyCivguJXguLHguJQKK+C4leC4seC4luC4ouC5jAor4LiV4Lix4LiZCivguJXguLHguJnguJXguKPguLAKK+C4leC4seC4meC4leC4tAor4LiV4Lix4LiZ4Lir4LiBCivguJXguLHguJnguKvguKLguIcKK+C4leC4seC4meC5gOC4q+C4tOC4oQor4LiV4Lix4LiaCivguJXguLHguJrguYDguJXguYjguLIKK+C4leC4seC4muC4m+C4tOC5ieC4hwor4LiV4Lix4Lia4LmA4Lib4LmH4LiUCivguJXguLHguKcKK+C4leC4seC5i+C4pwor4LiV4Lix4Lin4LiV4Li34LiUCivguJXguLHguYnguKfguYLguJwKK+C4leC4seC5ieC4p+C4quC4tOC4pwor4LiV4Lix4LmJ4Lin4LmA4Lir4Li14LmI4LiiCivguJXguLIKK+C4leC4suC4gQor4LiV4Liy4LiHCivguJXguYjguLLguIcKK+C4leC4suC4lAor4LiV4Liy4LiZCivguJXguYjguLLguJkKK+C4leC5ieC4suC4mQor4LiV4Liy4LiZ4LiZ4LiB4LiB4LiUCivguJXguLLguJnguYDguKrguLXguYnguKLguJkKK+C4leC4suC4meC4q+C4gQor4LiV4Liy4LiZ4Lir4Lih4LmI4Lit4LiZCivguJXguLLguJnguYDguKvguKXguLfguK3guIcKK+C4leC4suC4meC4tQor4LiV4Liy4LiaCivguJXguLLguJ3guLHguYjguIcKK+C4leC4suC4oQor4LiV4Liy4Lih4Lie4LiwCivguJXguLLguKHguLDguYHguJkKK+C4leC4suC4oeC4tOC4mQor4LiV4Liy4LiiCivguJXguYnguLLguKIKK+C4leC5iuC4suC4ouC4leC4suC4ogor4LiV4Liy4Lij4Liy4LmE4LiVCivguJXguLLguYDguKPguLfguK3guIrguLHguKIKK+C4leC4suC4pQor4LiV4Liy4Lil4Liy4LiZCivguJXguLLguKXguLgKK+C4leC4suC4peC4uOC4igor4LiV4Liy4LinCivguJXguLLguYDguKrguLfguK0KK+C4leC4suC4q+C4peC4tOC5iOC4hwor4LiV4Liy4LisCivguJXguLMKK+C4leC5iOC4swor4LiV4Liz4LiZ4Liy4LiZCivguJXguLPguYDguJnguLTguJkKK+C4leC4s+C5gOC4meC4teC4ouC4mQor4LiV4Liz4Lia4LilCivguJXguLPguYHguJoKK+C4leC5ieC4s+C4m+C4uOC4gQor4LiV4LmJ4Liz4Lic4Liy4LiHCivguJXguYnguLPguJ7guKPguKfguJQKK+C4leC4s+C4oeC4sOC4q+C4h+C4hwor4LiV4Liz4LmB4LiiCivguJXguLPguKPguKfguIgKK+C4leC4s+C4o+C4seC4mgor4LiV4Liz4Lij4LiyCivguJXguLPguKPguLgKK+C4leC4s+C4peC4tuC4hwor4LiV4Liz4LmA4Liq4LiyCivguJXguLPguKvguJnguLHguIEKK+C4leC4s+C4q+C4meC4tAor4LiV4Liz4Lir4Lij4LiwCivguJXguLPguYHguKvguJnguYjguIcKK+C4leC4tAor4LiV4Li04LiB4LiC4LiN4Liy4LiTCivguJXguLTguIHguLAKK+C4leC4tOC4geC4suC4q+C4peC4seC4hwor4LiV4Li04LiHCivguJXguLTguYjguIcKK+C4leC4tOC5i+C4hwor4LiV4Li04LmL4LiH4LmGCivguJXguLTguYjguIfguJXguLHguYjguIcKK+C4leC4tOC4h+C4quC4leC4tAor4LiV4Li04LmI4LiH4Lir4Liy4LiiCivguJXguLTguJMKK+C4leC4tOC4k+C4p+C4seC4leC4luC4suC4o+C4geC4p+C4tOC4meC4seC4ogor4LiV4Li04LiUCivguJXguLTguJTguYYKK+C4leC4tOC4leC4leC4tOC4gQor4LiV4Li04LiV4LiV4Li04LijCivguJXguLTguJXguJYKK+C4leC4tOC4luC4tQor4LiV4Li04Lib4LiyCivguJXguLTguJvguLLguJbguLAKK+C4leC4tOC4oeC4tAor4LiV4Li04Lih4Li04LiH4LiE4Lil4LiwCivguJXguLTguKMKK+C4leC4tOC4o+C4seC4iOC4ieC4suC4mQor4LiV4Li04LilCivguJXguLTguKXguIEKK+C4leC4tOC5ieC4pwor4LiV4Li04Liq4Lij4LiT4LiE4Lih4LiZ4Li54Lib4Liq4Lix4Lih4Lib4LiX4LiyCivguJXguLUKK+C4leC4teC5iAor4LiV4Li14LmLCivguJXguLXguJfguK3guIcKK+C4leC4teC4mQor4LiV4Li14LiZ4LiI4LmJ4LizCivguJXguLXguJnguYDguJfguLXguKLguJkKK+C4leC4teC4meC5geC4o+C4lAor4LiV4Li14LiaCivguJXguLXguKPguJbguLAKK+C4leC4teC4o+C4sAor4LiV4Li14Lir4Lih4LiyCivguJXguLYKK+C4leC4tuC5hgor4LiV4Li24LiBCivguJXguLbguIHguYYKK+C4leC4tuC5ieC4geC5hgor4LiV4Li24LmJ4LiB4LiV4Lix4LmJ4LiBCivguJXguLbguIcKK+C4leC4tuC4lOC4leC4t+C5i+C4rQor4LiV4Li24LmK4LiU4LiV4Li34LmL4LitCivguJXguLfguJQKK+C4leC4t+C5iOC4mQor4LiV4Li34LmJ4LiZCivguJXguLfguYnguK0KK+C4leC4t+C5iuC4rQor4LiV4Li34LmL4LitCivguJXguLfguK3guK7guKfguJkKK+C4leC4uAor4LiV4Li44LmKCivguJXguLjguYYKK+C4leC4uOC5iuC4geC5geC4gQor4LiV4Li44LmK4LiB4LiV4LiyCivguJXguLjguYrguIHguJXguYjguLMKK+C4leC4uOC5iuC4geC4leC5iOC4s+C4meC5ieC4s+C4l+C4reC4hwor4LiV4Li44LiB4LiV4Li04LiBCivguJXguLjguYrguIHguJXguLTguYrguIEKK+C4leC4uOC5iuC4geC4leC4uOC5iOC4mQor4LiV4Li44LmK4LiB4LiV4Li44LmL4LiiCivguJXguLjguIcKK+C4leC4uOC5ieC4h+C4geC5iOC4sgor4LiV4Li44LmJ4LiH4LiV4Li04LmJ4LiHCivguJXguLjguYrguJTguJXguLnguYgKK+C4leC4uOC4mQor4LiV4Li44LmI4LiZCivguJXguLjguYvguJkKK+C4leC4uOC5ieC4meC5geC4i+C4sAor4LiV4Li44LmI4LiZ4LiV4LmI4Liy4LiZCivguJXguLjguJnguLLguKvguIfguLHguJkKK+C4leC4uOC4muC5hgor4LiV4Li44LmJ4Lia4LmGCivguJXguLjguYrguJrguJvguYjguK3guIcKK+C4leC4uOC4m+C4seC4lOC4leC4uOC4m+C5iOC4reC4hwor4LiV4Li44Lib4Lix4LiU4LiV4Li44LmA4Lib4LmLCivguJXguLjguYjguKEKK+C4leC4uOC5ieC4oQor4LiV4Li44LmL4LihCivguJXguLjguYrguKHguYYKK+C4leC4uOC5iuC4oeC5huC4leC5ieC4reC4oeC5hgor4LiV4Li44LmJ4Lih4LiB4Lin4LmJ4Liy4LinCivguJXguLjguKHguIHguLIKK+C4leC4uOC5ieC4oeC5geC4i+C4sAor4LiV4Li44Lih4LiV4Lix4LiHCivguJXguLjguYnguKHguYDguJXguYvguJkKK+C4leC4uOC5ieC4oeC4m+C4teC5iAor4LiV4Li44Lih4LieCivguJXguLjguYjguKIKK+C4leC4uOC5ieC4ogor4LiV4Li44LmK4LiiCivguJXguLjguYjguKLguYYKK+C4leC4uOC5ieC4ouC5hgor4LiV4Li44LmL4Lii4LiV4Li44LmI4LiiCivguJXguLjguKPguIQKK+C4leC4uOC4o+C4h+C4hOC5jAor4LiV4Li44Lij4Li04Lii4Liy4LiH4LiE4LmMCivguJXguLjguKXguKrguLQKK+C4leC4uOC4peC4sgor4LiV4Li44Lir4Lij4Lix4LiU4LiV4Li44LmA4Lir4Lij4LmICivguJXguLkKK+C4leC4ueC5iAor4LiV4Li54LmJCivguJXguLnguIEKK+C4leC4ueC4lAor4LiV4Li54LiU4LiH4Lit4LiZCivguJXguLnguJoKK+C4leC4ueC4oQor4LiV4Li54Lil4Li04LmI4LiZ4Liu4Li34LmJ4LitCivguJXguLnguKvguJnguLIKK+C5gOC4lQor4LmA4LiV4LiBCivguYDguJXguYfguIEKK+C5gOC4leC5h+C4hwor4LmA4LiV4LmI4LiHCivguYDguJXguIoKK+C5gOC4leC5guC4igor4LmA4LiV4LmJ4LiZCivguYDguJXguYfguJnguJfguYwKK+C5gOC4leC5h+C4oQor4LmA4LiV4LiiCivguYDguJXguYnguKIKK+C5gOC4leC5iuC4ogor4LmA4LiV4Lij4LmICivguYDguJXguKPguYfguJQKK+C5gOC4leC4o+C5h+C4lOC5gOC4leC4o+C5iAor4LmA4LiV4Lij4LmH4LiU4LmA4LiV4Lij4LiZCivguYDguJXguKPguJkKK+C5gOC4leC4o+C4tOC4hwor4LmA4LiV4Lij4Li14Lii4LiUCivguYDguJXguKPguLXguKLguJoKK+C5gOC4leC4o+C4teC4ouC4oQor4LmA4LiV4Lij4Li14Lii4Lih4LiV4Lij4LihCivguYDguJXguKXguLAKK+C5gOC4leC4peC4tOC4lAor4LmA4LiV4Lin4LmH4LiUCivguYDguJXguYjguK0KK+C5gOC4leC4reC4sAor4LmA4LiV4LiwCivguYDguJXguYrguLAKK+C5gOC4leC5iuC4sOC4iOC4uOC5iuC4ogor4LmA4LiV4LmK4Liw4LiX4LmI4LiyCivguYDguJXguLIKK+C5gOC4leC5iOC4sgor4LmA4LiV4LmJ4LiyCivguYDguJXguYvguLIKK+C5gOC4leC5iOC4suC4geC4o+C4sOC4quC4uOC4mQor4LmA4LiV4LmI4Liy4LiB4Li04LiZ4Lic4Lix4LiB4Lia4Li44LmJ4LiHCivguYDguJXguYjguLLguYDguIHguLXguKLguJQKK+C5gOC4leC5ieC4suC5gOC4iOC4teC5ieC4ouC4pwor4LmA4LiV4LmI4Liy4LiX4Lit4LiHCivguYDguJXguYjguLLguJfguK3guYDguKrguLfguYjguK0KK+C5gOC4leC5ieC4suC4l+C4tuC4hwor4LmA4LiV4LmI4Liy4Lia4LmJ4LiyCivguYDguJXguYjguLLguKPguLHguYnguIcKK+C5gOC4leC5iOC4suC4o+C5ieC4suC4hwor4LmA4LiV4LmI4Liy4LmA4Lil4Li34Lit4LiZCivguYDguJXguYnguLLguKrguYjguKfguJkKK+C5gOC4leC5ieC4suC5gOC4quC4teC4ouC4mgor4LmA4LiV4LmI4Liy4Lir4Lix4LiaCivguYDguJXguYnguLLguKvguLnguYkKK+C5gOC4leC5ieC4suC4ruC4p+C4ogor4LmA4LiV4LmK4Liy4LiwCivguYDguJXguLLguLDguYHguJXguLAKK+C5gOC4leC4tOC5iOC4hwor4LmA4LiV4Li04LiZ4LmA4LiV4LmI4LitCivguYDguJXguLTguJoKK+C5gOC4leC4tOC4oQor4LmA4LiV4Li14LmI4LiiCivguYDguJXguLXguYnguKIKK+C5gOC4leC4teC4ouC4hwor4LmA4LiV4Li14Lii4LiZCivguYDguJXguLXguKLguJoKK+C5gOC4leC4teC5iuC4ouC4oQor4LmA4LiV4Li14LmL4Lii4LihCivguYDguJXguLXguKLguKPguJbguYwKK+C5gOC4leC4teC4ouC4pwor4LmA4LiV4Li14LmI4Lii4LinCivguYDguJXguLfguYnguK0KK+C5gOC4leC4t+C4reC4mQor4LmB4LiV4LmICivguYHguJXguYkKK+C5geC4leC5iOC5hgor4LmB4LiV4LiBCivguYHguJXguYjguIHguYjguK3guJnguYHguJXguYjguIHguLXguYkKK+C5geC4leC5iOC4geC4teC5ieC5geC4leC5iOC4geC5iOC4reC4mQor4LmB4LiV4LiHCivguYHguJXguYjguIcKK+C5geC4leC4h+C5gOC4oQor4LmB4LiV4LmJ4LiI4Li04LmL4LinCivguYHguJXguJQKK+C5geC4leC5iuC4lOC5geC4leC5iwor4LmB4LiV4LiZCivguYHguJXguYnguKEKK+C5geC4leC4owor4LmB4LiV4Lij4LiwCivguYHguJXguYnguKfguYHguKPguYnguKcKK+C5geC4leC4sAor4LmC4LiVCivguYLguJXguYkKK+C5guC4leC4gQor4LmC4LiV4LmJ4LiHCivguYLguJXguYnguIfguYYKK+C5guC4leC4h+C5huC5gOC4leC4h+C5hgor4LmC4LiV4LiH4LmA4LiV4LiHCivguYLguJXguI7guIEKK+C5guC4leC5iuC4lAor4LmC4LiV4LmL4LmA4LiV4LmLCivguYLguJXguJkKK+C5guC4leC4meC4lAor4LmC4LiV4LmJ4LmC4LicCivguYLguJXguKHguKMKK+C5guC4leC4oeC4o+C4mOC4owor4LmC4LiV4LiiCivguYLguJXguKPguIEKK+C5guC4leC4o+C4geC5hOC4leC4owor4LmC4LiV4Lij4LiUCivguYLguJXguYnguKvguKXguIcKK+C5guC4leC5iuC4sAor4LmD4LiV4LmJCivguYTguJUKK+C5hOC4leC5iAor4LmE4LiV4LmJCivguYTguJXguYsKK+C5hOC4leC5ieC4geC5i+C4hwor4LmE4LiV4LmJ4Lid4Li44LmI4LiZCivguYTguJXguYjguYTguKHguYkKK+C5hOC4leC4owor4LmE4LiV4Lij4LiB4Li04Lio4Lii4LiyCivguYTguJXguKPguJTguLLguKLguLjguIQKK+C5hOC4leC4o+C5iOC4leC4o+C4reC4hwor4LmE4LiV4Lij4LiiCivguYTguJXguYnguKvguKfguLHguJkKK+C5hOC4leC5ieC4reC5i+C4reC4hwor4LiWCivguJbguIEKK+C4luC4geC4pQor4LiW4LiH4Lix4LiZCivguJbguIfguLLguJQKK+C4luC4lAor4LiW4LiZCivguJbguJnguJkKK+C4luC4meC4mwor4LiW4LiZ4Lit4LihCivguJbguJnguLHguJQKK+C4luC4meC4seC4mQor4LiW4LiZ4LizCivguJbguJnguLTguKEKK+C4luC4meC4tOC4oeC4quC4o+C5ieC4reC4ogor4LiW4LiaCivguJbguJrguJTguLUKK+C4luC4oQor4LiW4LmI4LihCivguJbguKHguK0KK+C4luC4oeC4tuC4h+C4l+C4tuC4hwor4LiW4LilCivguJbguKXguIEKK+C4luC4peC4geC4muC4suC4leC4owor4LiW4Lil4LiZCivguJbguKXguKEKK+C4luC4peC5iOC4oQor4LiW4Lil4Lit4LiBCivguJbguKXguLHguIEKK+C4luC4peC4seC4mQor4LiW4Lil4LiyCivguJbguKXguLLguIEKK+C4luC4peC4suC4ogor4LiW4Lil4LizCivguJbguKXguLXguJbguKXguLMKK+C4luC4peC4tuC4h+C4leC4sgor4LiW4Lil4Li44LiHCivguJbguKXguLjguJkKK+C4luC5iOC4p+C4hwor4LiW4LmJ4Lin4LiZCivguJbguYnguKfguKIKK+C4luC5ieC4p+C4ouC5guC4luC4hwor4LiW4Lin4Lix4LiUCivguJbguKfguLHguKUKK+C4luC4p+C4seC4peC4ouC5jAor4LiW4Lin4Liy4LiiCivguJbguKfguLTguJkKK+C4luC4p+C4tOC4pQor4LiW4LmI4LitCivguJbguYnguK0KK+C4luC4reC4gQor4LiW4Lit4LiHCivguJbguYjguK3guIcKK+C4luC5ieC4reC4hwor4LiW4Lit4LiUCivguJbguK3guJkKK+C4luC4reC4mgor4LiW4Lit4Lia4LmB4LiW4LiaCivguJbguYjguK3guKEKK+C4luC4reC4ogor4LiW4LmI4Lit4LiiCivguJbguYnguK3guKIKK+C4luC4sAor4LiW4Liw4LiB4Lix4LiUCivguJbguLDguYDguIHguLTguJkKK+C4luC4sOC5guC4geC4mQor4LiW4Liw4LiW4Lix4LmI4LiZCivguJbguLDguJbguLHguJoKK+C4luC4sOC4luC4uOC4meC4luC4sOC4luC4seC4mQor4LiW4Liw4Lih4Lix4LiU4LiW4Liw4LmB4Lih4LiHCivguJbguLHguIEKK+C4luC4seC4hwor4LiW4Lix4LmI4LiHCivguJbguLHguJPguJHguLTguKUKK+C4luC4seC4lAor4LiW4Lix4LiX4LiYCivguJbguLHguJkKK+C4luC4seC5iOC4mQor4LiW4Lix4LmI4LiZ4LmGCivguJbguLHguJoKK+C4luC4seC4muC5hgor4LiW4Lix4Lih4Lig4LmMCivguJbguLHguKcKK+C4luC4seC5iOC4pwor4LiW4Lix4LmI4Lin4LiC4Liy4LinCivguJbguLIKK+C4luC5ieC4sgor4LiW4Liy4LiBCivguJbguLLguIcKK+C4luC5iOC4suC4hwor4LiW4Liy4LiUCivguJbguLLguJkKK+C4luC5iOC4suC4mQor4LiW4Liy4LiaCivguJbguLLguKEKK+C4luC4suC4oeC4sAor4LiW4LmI4Liy4LiiCivguJbguYjguLLguKLguYDguJTguLXguKLguKcKK+C4luC5iOC4suC4pwor4LiW4Liy4Lin4LijCivguJbguLLguKfguKPguJjguLTguKPguLIKK+C4luC4suC4p+C4o+C4p+C4seC4leC4luC4uAor4LiW4LmJ4LizCivguJbguLTguYjguJkKK+C4luC4tQor4LiW4Li14LmICivguJbguLXguYjguYYKK+C4luC4teC4mgor4LiW4Li14Lia4LiJ4Lix4LiUCivguJbguLbguIEKK+C4luC4tuC4hwor4LiW4Li34LitCivguJbguLjguIcKK+C4luC4uOC4mQor4LiW4Li44LiiCivguJbguLjguKUKK+C4luC4uOC4peC4peC4sAor4LiW4Li5CivguJbguLnguIEKK+C5gOC4luC4geC4tOC4hwor4LmA4LiW4LiZCivguYDguJbguKHguLTguJkKK+C5gOC4luC4owor4LmA4LiW4Lij4LiwCivguYDguJbguKXguYTguJbguKUKK+C5gOC4luC4peC4tOC4gQor4LmA4LiW4Lil4Li04LiHCivguYDguJbguKXguLfguK3guIHguJbguKXguJkKK+C5gOC4luC5iOC4rQor4LmA4LiW4Lit4LiwCivguYDguJbguLIKK+C5gOC4luC5ieC4sgor4LmA4LiW4Liy4LiE4Lix4LiZCivguYDguJbguLLguITguLHguJnguYDguKvguKXguYfguIEKK+C5gOC4luC4suC5gOC4h+C4suC4sAor4LmA4LiW4Liy4Lih4Lin4LiBCivguYDguJbguLLguKfguLHguKXguKLguYzguYDguILguLXguKLguKcKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC4m+C4ueC4mQor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4LmA4Lib4Lij4Li14Lii4LiHCivguYDguJbguLLguKfguLHguKXguKLguYzguKLguK3guJTguJTguYnguKfguJkKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC5gOC4q+C4peC5h+C4gQor4LmA4LiW4Liy4Liq4Li04LiH4LmC4LiVCivguYDguJbguLLguKvguLHguKfguJTguYnguKfguJkKK+C5gOC4luC4suC4sAor4LmA4LiW4Li04LiBCivguYDguJbguLTguIcKK+C5gOC4luC4tOC4lAor4LmA4LiW4Li04LiU4LmA4LiX4Li04LiHCivguYDguJbguLTguJkKK+C5gOC4luC4teC4ouC4hwor4LmA4LiW4Li14Lii4LijCivguYDguJbguLfguK0KK+C5gOC4luC4t+C4reC4gQor4LmA4LiW4Li34LmI4Lit4LiZCivguYHguJYKK+C5geC4luC4gQor4LmB4LiW4LiHCivguYHguJbguJkKK+C5geC4luC4mgor4LmB4LiW4LihCivguYHguJbguKXguIcKK+C5geC4luC4peC4mgor4LmB4LiW4LinCivguYLguJYKK+C5guC4luC4hwor4LmC4LiW4LiH4LmA4LiW4LiHCivguYLguJbguJoKK+C5guC4luC4oQor4LmC4LiW4Lih4LiZ4Liy4LiB4Liy4LijCivguYTguJYKK+C5hOC4luC5iAor4LmE4LiW4LmJCivguYTguJbguIcKK+C5hOC4luC4pQor4LiXCivguJfguIEKK+C4l+C4geC4peC5ieC4sgor4LiX4LmB4LiB4Lil4LmJ4LinCivguJfguYjguIcKK+C4l+C4h+C4seC4mQor4LiX4LiK4Li1CivguJfguJQKK+C4l+C4lOC5guC4l+C4o+C5iOC4qwor4LiX4LiXCivguJfguJjguLQKK+C4l+C4mQor4LiX4LmJ4LiZCivguJfguJnguJTguLUKK+C4l+C4meC4leC5jAor4LiX4LiZ4LmC4LiX4LmICivguJfguJnguKEKK+C4l+C4meC4quC4oeC4uOC4l+C4owor4LiX4LiZ4Liy4LiiCivguJfguJoKK+C4l+C4muC4p+C4hwor4LiX4LihCivguJfguKHguIEKK+C4l+C4oeC4mQor4LiX4Lih4LiaCivguJfguKHguK0KK+C4l+C4oeC4tOC4rAor4LiX4LmA4Lih4Li04LiZCivguJfguYLguKHguJkKK+C4l+C4ouC4reC4ogor4LiX4Lii4LiyCivguJfguYHguKLguIcKK+C4l+C4owor4LiX4Lij4LiHCivguJfguKPguIfguIHguKPguLDguYDguJfguLXguKLguKEKK+C4l+C4o+C4h+C4muC4suC4lOC4suC4pQor4LiX4Lij4LiX4Li24LiHCivguJfguKPguJ7guLUKK+C4l+C4o+C4oeC4suC4l+C4o+C4geC4o+C4o+C4oQor4LiX4Lij4Lih4Liy4LiZCivguJfguKPguKHguLjguIEKK+C4l+C4o+C4o+C4l+C4tuC4hwor4LiX4Lij4Lij4LibCivguJfguKPguKPguJvguJPguYwKK+C4l+C4o+C4o+C4m+C4k+C4sAor4LiX4Lij4Lij4Lio4LiZ4LiwCivguJfguKPguKPguKjguJnguLXguKLguYwKK+C4l+C4o+C5gOC4peC5iOC4q+C5jAor4LiX4Lij4Lin4LiHCivguJfguKPguKfguJQKK+C4l+C4o+C4p+C4lOC4l+C4o+C4hwor4LiX4Lij4Lin4Liy4LijCivguJfguKPguKrguK3guIfguJfguKPguKrguLjguKEKK+C4l+C4o+C4quC4suC4ogor4LiX4Lij4Liq4Li44LihCivguJfguKPguKvguJQKK+C4l+C4o+C4q+C4mQor4LiX4Lij4Lir4Lin4LilCivguJfguKPguKvguLbguIcKK+C4l+C4o+C4q+C4tuC4h+C4l+C4o+C4q+C4p+C4pQor4LiX4Lij4Lir4Li5CivguJfguKPguYDguKvguKUKK+C4l+C4o+C4rQor4LiX4Lij4Lit4Lih4LmC4Lia4LiZCivguJfguKPguK3guLbguIcKK+C4l+C4o+C4reC4uOC5ieC4oQor4LiX4Lij4Liw4LiZ4LiHCivguJfguKPguLDguJnguLLguKcKK+C4l+C4o+C4seC4nuC4ouC5jAor4LiX4Lij4Lix4Lih4LmA4Lib4LmH4LiVCivguJfguKPguLHguKrguJXguYwKK+C4l+C4o+C4suC4meC4i+C4tOC4quC5gOC4leC4reC4o+C5jAor4LiX4Lij4Liy4LiaCivguJfguKPguLLguKEKK+C4l+C4o+C4suC4ogor4LiX4Lij4Liy4Lii4LiC4Liy4LinCivguJfguKPguLTguJfguKMKK+C4l+C4o+C4uOC4lAor4LiX4Lij4Li44LihCivguJfguKPguLjguKHguILguLHguJPguJHguYwKK+C4l+C4o+C4uOC4oeC4oeC4seC4ogor4LiX4Lij4Li44Lih4Lin4Liy4Liq4Li1CivguJfguKPguLjguKHguYDguKjguKPguKnguJDguYwKK+C4l+C4o+C4uOC4oeC4suC4o+C4tAor4LiX4Lij4Li44Lih4Liy4Lil4Lix4LiiCivguJfguKPguLnguYgKK+C4l+C4pOC4qeC4juC4tQor4LiX4LilCivguJfguKXguJrguKEKK+C4l+C4peC4reC4tuC4hwor4LiX4Lil4Liy4LiiCivguJfguKXguLTguJcKK+C4l+C4peC4tOC4l+C4l+C4gQor4LiX4Lin4LiHCivguJfguYnguKfguIcKK+C4l+C5iOC4p+C4h+C4l+C5iOC4sgor4LiX4LmI4Lin4LiH4LiX4Liz4LiZ4Lit4LiHCivguJfguYjguKfguIfguJfguLUKK+C4l+C4p+C4lAor4LiX4Lin4LiU4Li24LiH4Liq4LmMCivguJfguKfguJkKK+C4l+C5ieC4p+C4mQor4LiX4LmI4Lin4LihCivguJfguYnguKfguKEKK+C4l+C5ieC4p+C4oeC5hgor4LiX4Lin4LiiCivguJfguYjguKfguKIKK+C4l+C5ieC4p+C4ogor4LiX4Lin4Lii4LiwCivguJfguKfguK3guKIKK+C4l+C4p+C4seC4leC4lOC4tuC4h+C4quC5jAor4LiX4Lin4Lix4LiiCivguJfguKfguLIKK+C4l+C4p+C5iOC4sgor4LiX4Lin4Liy4Lia4Lij4Lii4Li44LiECivguJfguKfguLLguKIKK+C4l+C4p+C4suC4owor4LiX4Lin4Liy4Lij4Liy4Lin4LiU4Li1CivguJfguKfguLQKK+C4l+C4p+C4tOC4igor4LiX4Lin4Li04LiV4Li14LiiCivguJfguKfguLTguJXguLXguKLguLIKK+C4l+C4p+C4tOC4owor4LiX4Lin4Li1CivguJfguKfguLXguJsKK+C4l+C4p+C4teC4m+C4tQor4LiX4LioCivguJfguKjguLIKK+C4l+C4qOC4suC4h+C4hOC5jAor4LiX4Liq4Lih4Li1CivguJfguKrguLIKK+C4l+C4q+C4o+C4sAor4LiX4Lir4Liy4LijCivguJfguK0KK+C4l+C5iOC4rQor4LiX4LmJ4LitCivguJfguK3guIEKK+C4l+C4reC4hwor4LiX4LmI4Lit4LiHCivguJfguYnguK3guIcKK+C4l+C4reC4h+C4geC4p+C4suC4pwor4LiX4Lit4LiH4LmA4LiE4Lij4Li34LitCivguJfguK3guIfguJjguKPguKPguKHguIrguLLguJXguLQKK+C4l+C4reC4h+C5gOC4nOC4t+C4reC4gQor4LiX4Lit4LiH4Lie4Lij4Liw4LiC4Li44LiZCivguJfguK3guIfguJ7guKXguLgKK+C4l+C5ieC4reC4h+C4nuC4peC4uAor4LiX4Lit4LiH4Lie4Lix4LiZ4LiK4LmI4Liy4LiHCivguJfguK3guIfguJ7guLHguJnguJTguLjguKUKK+C4l+C4reC4h+C4oOC4uQor4LiX4Lit4LiH4Lih4LmJ4Lin4LiZCivguJfguK3guIfguKLguYnguK3guKIKK+C4l+C4reC4h+C4peC4tOC4mQor4LiX4Lit4LiH4Lir4Lil4Liy4LiHCivguJfguK3guIfguYLguKvguKXguIcKK+C4l+C4reC4h+C4reC4uOC5hOC4owor4LiX4Lit4LiUCivguJfguK3guJkKK+C4l+C5iOC4reC4mQor4LiX4Lit4LiZ4LiL4Li04LilCivguJfguK3guJ/guJ/guLXguYgKK+C4l+C4reC4oQor4LiX4LmI4Lit4Lih4LmGCivguJfguK3guKIKK+C4l+C4reC4o+C5jOC4meC4suC5guC4lAor4LiX4Lit4LmA4Lij4Li14Lii4LihCivguJfguLAKK+C4l+C4sOC4h+C4seC4mQor4LiX4Liw4LiX4LmI4Liy4LinCivguJfguLDguYDguJfguLXguKLguJQKK+C4l+C4sOC4meC4hwor4LiX4Liw4LiZ4LiZCivguJfguLDguJnguLAKK+C4l+C4sOC4meC4sgor4LiX4Liw4LiZ4Liy4LiZCivguJfguLDguJnguLgKK+C4l+C4sOC4muC4uQor4LiX4Liw4LmA4Lia4Li14Lii4LiZCivguJfguLDguKHguLHguJTguJfguLDguYHguKHguIcKK+C4l+C4sOC4oeC4tuC4mQor4LiX4Liw4Lih4Li34LmI4LiZCivguJfguLDguYHguKHguYjguIcKK+C4l+C4sOC4ouC4suC4l+C4sOC5geC4ouC5geC4qgor4LiX4Liw4Lii4Liy4LiZCivguJfguLDguYDguKLguK3guJfguLDguKLguLLguJkKK+C4l+C4sOC5geC4ogor4LiX4Liw4Lij4LmI4Lit4LiX4Liw4LmB4Lij4LmICivguJfguLDguKXguKfguIcKK+C4l+C4sOC4peC4reC4gQor4LiX4Liw4Lil4LmI4Lit4LiX4Liw4Lil4LmI4LiyCivguJfguLDguKXguLHguIEKK+C4l+C4sOC4peC4seC4geC4l+C4sOC5geC4peC4hwor4LiX4Liw4Lil4Liy4LiiCivguJfguLDguKXguLTguYjguJkKK+C4l+C4sOC4peC4tuC5iOC4hwor4LiX4Liw4Lil4Li4CivguJfguLDguKXguLjguJfguLDguKXguLLguJQKK+C4l+C4sOC5gOC4pQor4LiX4Liw4LmA4Lil4LmJ4LiZCivguJfguLDguYDguKXguLLguLAKK+C4l+C4sOC4p+C4suC4ogor4LiX4Liw4LmA4Lin4LiZCivguJfguLHguIEKK+C4l+C4seC4geC4guC5jAor4LiX4Lix4LiB4LiC4Li04LiNCivguJfguLHguIHguILguLTguJMKK+C4l+C4seC4geC4guC4tOC4k+C4sgor4LiX4Lix4LiB4LiC4Li04LiT4Liy4Lia4LiWCivguJfguLHguIHguILguLTguJPguLLguKfguLHguI8KK+C4l+C4seC4geC4guC4tOC5guC4k+C4l+C4gQor4LiX4Lix4LiB4LiC4Li04LmE4LiT4Lii4Lia4Li44LiE4LiE4LilCivguJfguLHguIHguJfguK0KK+C4l+C4seC4geC4l+C4tOC4mQor4LiX4Lix4LiB4Lip4LiwCivguJfguLHguIHguKnguLIKK+C4l+C4seC4geC4qeC4tOC4kwor4LiX4Lix4LiB4Lip4Li04LiT4LiyCivguJfguLHguITguJjguYwKK+C4l+C4seC4hwor4LiX4Lix4LmI4LiHCivguJfguLHguYnguIcKK+C4l+C4seC4h+C4p+C4pQor4LiX4Lix4LiH4Lin4Li14LmJ4LiX4Lix4LiH4Lin4LilCivguJfguLHguIfguKrguYDguJXguJkKK+C4l+C4seC4k+C4keC4geC4o+C4o+C4oQor4LiX4Lix4LiT4LiR4LiG4Liy4LiVCivguJfguLHguJPguJHguJjguKMKK+C4l+C4seC4k+C4keC4meC4suC4ouC4gQor4LiX4Lix4LiT4LiR4LiZ4Li04LiE4LihCivguJfguLHguJPguJHguJnguLXguJXguLQKK+C4l+C4seC4k+C4keC5jOC4muC4mQor4LiX4Lix4LiT4LiR4Lib4Liy4Lio4LiBCivguJfguLHguJPguJHguKDguLHguKIKK+C4l+C4seC4k+C4keC4oeC4uOC4ggor4LiX4Lix4LiT4LiR4Lii4Liy4LiV4Lij4LiyCivguJfguLHguJPguJHguKfguLTguJfguKLguLIKK+C4l+C4seC4k+C4keC4quC4luC4suC4mQor4LiX4Lix4LiT4LiR4Liq4Lii4Liy4LihCivguJfguLHguJPguJHguLAKK+C4l+C4seC4k+C4keC4tOC4geC4sgor4LiX4Lix4LiT4LiR4Li04Lih4LiyCivguJfguLHguJPguJHguLUKK+C4l+C4seC4k+C4keC4teC4muC4lwor4LiX4Lix4LiUCivguJfguLHguJTguJfguLIKK+C4l+C4seC4lQor4LiX4Lix4LiZCivguJfguLHguJnguJXguYwKK+C4l+C4seC4meC4leC4tOC4mQor4LiX4Lix4LiZ4LiV4Li1CivguJfguLHguJnguJjguYwKK+C4l+C4seC4mgor4LiX4Lix4Lia4LmA4LiB4Lip4LiV4LijCivguJfguLHguJrguJfguLTguKEKK+C4l+C4seC4muC5gOC4peC5h+C4gQor4LiX4Lix4Lia4Liq4Lih4Li04LiH4LiE4Lil4LiyCivguJfguLHguJsKK+C4l+C4seC4m+C4mQor4LiX4Lix4LieCivguJfguLHguJ7guJ7guLAKK+C4l+C4seC4nuC4nuC4tQor4LiX4Lix4Lih4Lih4LiwCivguJfguLHguYjguKcKK+C4l+C4seC4qAor4LiX4Lix4Lio4LiZ4LmMCivguJfguLHguKjguJnguLAKK+C4l+C4seC4qOC4meC4sgor4LiX4Lix4Lio4LiZ4Li14Lii4LmMCivguJfguLHguKjguYTguJnguKIKK+C4l+C4seC4quC4meC4suC4meC4uOC4leC4o+C4tOC4ouC4sAor4LiX4Lix4Lis4LirCivguJfguLHguKzguKvguLTguIHguKPguJPguYwKK+C4l+C4seC4rOC4q+C4teC4geC4o+C4o+C4oQor4LiX4LiyCivguJfguYjguLIKK+C4l+C5ieC4sgor4LiX4Liy4LiBCivguJfguLLguIcKK+C4l+C5ieC4suC4hwor4LiX4Liy4LiQ4LiwCivguJfguLLguJDguLTguIHguLAKK+C4l+C4suC4kuC4sAor4LiX4Liy4LiS4Li04LiB4LiwCivguJfguLLguJkKK+C4l+C5iOC4suC4mQor4LiX4Liy4LiZ4LiB4Lix4LiT4LiR4LmMCivguJfguLLguJnguIHguLLguKEKK+C4l+C4suC4meC4leC5jAor4LiX4Liy4LiZ4LiV4Liw4Lin4Lix4LiZCivguJfguLLguJnguJjguKPguKPguKEKK+C4l+C4suC4meC4muC4lOC4tQor4LiX4Liy4LiZ4Lia4Liy4Lij4Lih4Li1CivguJfguLLguJnguJ4KK+C4l+C4suC4meC4qOC4teC4pQor4LiX4Liy4LiZ4Liq4Lih4Liy4Lia4Lix4LiV4Li0CivguJfguLLguJnguLLguJjguLTguJrguJTguLUKK+C4l+C4suC4mgor4LiX4Liy4LihCivguJfguYjguLLguKHguIHguKXguLLguIcKK+C4l+C4suC4oeC4o+C4tOC4gQor4LiX4Liy4LiiCivguJfguYnguLLguKIKK+C4l+C4suC4ouC4gQor4LiX4Liy4Lii4Lix4LiKCivguJfguLLguKLguLIKK+C4l+C4suC4ouC4suC4lAor4LiX4Liy4Lii4Liy4LiXCivguJfguLLguKPguIEKK+C4l+C4suC4o+C5jOC4i+C4suC4mQor4LiX4Liy4Lij4Lie4Li1CivguJfguLLguKPguLTguIHguLIKK+C4l+C4suC4o+C4uAor4LiX4Liy4Lij4Li44LiTCivguJfguLLguKPguLjguJPguIHguKPguKPguKEKK+C4l+C4suC4pwor4LiX4LmI4Liy4LinCivguJfguYnguLLguKcKK+C4l+C4suC4qQor4LiX4Liy4LiqCivguJfguLLguKrguLUKK+C4l+C4swor4LiX4Liz4LiH4LiZCivguJfguLPguJnguJoKK+C4l+C4s+C4meC4p+C4ogor4LiX4Liz4LiZ4Lit4LiHCivguJfguLPguJnguLLguKIKK+C4l+C4s+C4meC4uAor4LiX4Liz4LiZ4Li54LilCivguJfguLPguYDguJnguLIKK+C4l+C4s+C5gOC4meC4teC4ouC4mgor4LiX4Liz4LmA4LiZ4Li14Lii4LihCivguJfguLPguKHguLHguIcKK+C4l+C4s+C5hOC4oQor4LiX4Liz4Lil4Liy4LiiCivguJfguLPguYDguKUKK+C4l+C4s+C4p+C4mQor4LiX4Li04LiE4Lix4Lih4Lie4LijCivguJfguLTguIbguLHguKHguJ7guKMKK+C4l+C4tOC5ieC4hwor4LiX4Li04LiH4LmA4LiI4Lit4Lij4LmMCivguJfguLTguYnguIfguJbguYjguK3guJkKK+C4l+C4tOC5ieC4h+C4l+C4ueC4lAor4LiX4Li04LiKCivguJfguLTguI/guJDguIrguLjguIHguKPguKPguKEKK+C4l+C4tOC4j+C4kOC4sAor4LiX4Li04LiP4LiQ4Liy4LiZ4Li44LiE4LiV4Li0CivguJfguLTguJDguLQKK+C4l+C4tOC4lAor4LiX4Li04LiVCivguJfguLTguJkKK+C4l+C4tOC4meC4suC4lwor4LiX4Li04LieCivguJfguLTguJ7guKLguYwKK+C4l+C4tOC4nuC4sgor4LiX4Li04LihCivguJfguLTguYjguKEKK+C4l+C4tOC4oeC4l+C4reC4hwor4LiX4Li04LinCivguJfguLTguKfguIfguITguJUKK+C4l+C4tOC4p+C4l+C4seC4qOC4meC5jAor4LiX4Li04Lin4Liq4LiwCivguJfguLTguKfguLIKK+C4l+C4tOC4qAor4LiX4Li04Lio4LiyCivguJfguLUKK+C4l+C4teC5iAor4LiX4Li14LibCivguJfguLXguKEKK+C4l+C4teC4p+C4tQor4LiX4Li14LmA4Lit4LiZ4LiX4Li1CivguJfguLbguIEKK+C4l+C4tuC5iOC4hwor4LiX4Li24LmJ4LiHCivguJfguLbguJTguJfguLfguK0KK+C4l+C4tuC4meC4l+C4tuC4gQor4LiX4Li24LiaCivguJfguLbguKEKK+C4l+C4tuC5iOC4oQor4LiX4Li34LmI4LitCivguJfguLgKK+C4l+C4uOC4gQor4LiX4Li44LiB4LiCCivguJfguLjguIHguILguYwKK+C4l+C4uOC4geC4guC4seC4geC4qeC4seC4ogor4LiX4Li44LiB4LiPCivguJfguLjguIHguKnguJTguKMKK+C4l+C4uOC4geC4sAor4LiX4Li44LiB4Lix4LiHCivguJfguLjguIHguLnguKUKK+C4l+C4uOC4hOC4leC4sAor4LiX4Li44LiE4LiV4Li0CivguJfguLjguYjguIcKK+C4l+C4uOC5ieC4hwor4LiX4Li44LiH4LiH4LiwCivguJfguLjguIfguYDguJfguIcKK+C4l+C4uOC4iOC4iOC4tOC4k+C4k+C4sAor4LiX4Li44LiI4Lij4Li04LiVCivguJfguLjguI/guJDguLAKK+C4l+C4uOC4j+C4kOC4uOC4peC4peC4sAor4LiX4Li44LiUCivguJfguLjguJXguKfguLTguKXguLHguKHguJ7guLTguJXguKHguLLguKXguLIKK+C4l+C4uOC4leC4tOC4ouC4suC4quC4suC4rOC4qwor4LiX4Li44LiX4Lij4Lij4Lio4LiZ4LiZ4Li04Lii4LihCivguJfguLjguJkKK+C4l+C4uOC5iOC4mQor4LiX4Li44LiZ4LiZ4Li04Lih4Li04LiVCivguJfguLjguJnguLTguKLguKEKK+C4l+C4uOC4mgor4LiX4Li44Lia4LiX4Li5CivguJfguLjguJvguJvguLHguI3guI3guLIKK+C4l+C4uOC4nuC4nuC4o+C4o+C4kwor4LiX4Li44Lie4Lie4LilCivguJfguLjguJ7guJ7guKXguKDguLLguJ4KK+C4l+C4uOC4nuC4oOC4tOC4geC4guC4oOC4seC4ogor4LiX4Li44Lie4Lig4Li04LiB4LiC4Lix4LiZ4LiU4Lij4LiB4Lix4LibCivguJfguLjguKEKK+C4l+C4uOC5iOC4oQor4LiX4Li44LmJ4LihCivguJfguLjguKHguYLguJkKK+C4l+C4uOC4ogor4LiX4Li44LmJ4LiiCivguJfguLjguKPguJkKK+C4l+C4uOC4o+C4seC4luC4ouC4sgor4LiX4Li44Lij4Lix4LioCivguJfguLjguKPguLLguITguKEKK+C4l+C4uOC4o+C4suC4iOC4suC4owor4LiX4Li44Lij4Liy4LiY4Lin4LiyCivguJfguLjguYDguKPguKgKK+C4l+C4uOC5gOC4o+C4teC4ouC4mQor4LiX4Li44LmA4Lij4Li14Lii4LiZ4LmB4LiC4LiBCivguJfguLjguKXguLHguIHguJfguLjguYDguKUKK+C4l+C4uOC5gOC4peC4sgor4LiX4Li44Lin4Li04LiK4Liy4LiZCivguJfguLjguKfguLTguJgKK+C4l+C4uOC4qOC4teC4pQor4LiX4Li44Liq4Liq4LiwCivguJfguLjguKrguKrguLXguKUKK+C4l+C4uQor4LiX4Li54LmICivguJfguLnguYkKK+C4l+C4ueC5iOC4i+C4teC5iQor4LiX4Li54LiVCivguJfguLnguJXguLLguJnguLjguJfguLnguJUKK+C4l+C4ueC4mQor4LiX4Li54LiaCivguJfguLnguKEKK+C4l+C4ueC5gOC4o+C4meC4tOC4l+C4suC4mQor4LiX4Li54LilCivguJfguLnguYDguKXguLXguKLguKEKK+C4l+C4ueC4qeC4gQor4LmA4LiXCivguYDguJfguYgKK+C5gOC4l+C4hOC4meC4tOC4hAor4LmA4LiX4LiE4LiZ4Li14LmA4LiL4Li14Lii4LihCivguYDguJfguITguYLguJnguYLguKXguKLguLUKK+C5gOC4l+C4hwor4LmA4LiX4LmJ4LiHCivguYDguJfguYnguIfguYDguJXguYnguIcKK+C5gOC4l+C5ieC4h+C4l+C4ueC4lAor4LmA4LiX4LmH4LiICivguYDguJfguJnguJnguLTguKoKK+C5gOC4l+C5gOC4muC4tOC4peC5gOC4l+C4meC4meC4tOC4qgor4LmA4LiX4LibCivguYDguJfguJ4KK+C5gOC4l+C4nuC4l+C4suC4o+C4uQor4LmA4LiX4Lie4LiX4Liy4LmC4LijCivguYDguJfguJ7guLIKK+C5gOC4l+C4nuC4tOC4mQor4LmA4LiX4Lie4Li1CivguYDguJfguJ7guLXguJvguLHguIHguKnguLUKK+C5gOC4l+C5guC4ngor4LmA4LiX4Lih4Lib4Li44Lij4LiwCivguYDguJfguKPguLTguJQKK+C5gOC4l+C4peC4peC4ueC5gOC4o+C4teC4ouC4oQor4LmA4LiX4Lin4LiU4LiyCivguYDguJfguKfguJnguLAKK+C5gOC4l+C4p+C4oOC4suC4p+C4sAor4LmA4LiX4Lin4Lij4LiwCivguYDguJfguKfguKfguLLguIjguLTguIHguLAKK+C5gOC4l+C4p+C4p+C4suC4iOC4tOC4quC4o+C4k+C4hOC4oeC4meC5jAor4LmA4LiX4Lin4LioCivguYDguJfguKfguKkKK+C5gOC4l+C4p+C4quC4uOC4hOC4meC4mOC5jAor4LmA4LiX4Lin4LitCivguYDguJfguKfguLHguI0KK+C5gOC4l+C4p+C4seC4mQor4LmA4LiX4Lin4Li1CivguYDguJfguKgKK+C5gOC4l+C4qOC4gQor4LmA4LiX4Lio4LiZ4LmMCivguYDguJfguKjguJnguLIKK+C5gOC4l+C4qOC4sAor4LmA4LiX4Lir4LmMCivguYDguJfguYjguKvguYwKK+C5gOC4l+C5iOC4rQor4LmA4LiX4LmJ4LitCivguYDguJfguK3guI0KK+C5gOC4l+C4reC4oQor4LmA4LiX4Lit4Lij4LmM4LmA4Lia4Li14Lii4LihCivguYDguJfguK3guKPguYzguYLguKHguKHguLTguYDguJXguK3guKPguYwKK+C5gOC4l+C4reC4sOC4l+C4sAor4LmA4LiX4LiyCivguYDguJfguYjguLIKK+C5gOC4l+C5ieC4sgor4LmA4LiX4LmJ4Liy4LiK4LmJ4Liy4LiHCivguYDguJfguYjguLLguKHguLHguIEKK+C5gOC4l+C5ieC4suC4ouC4suC4ouC4oeC5iOC4reC4oQor4LmA4LiX4LmI4Liy4Lij4Li24LiHCivguYDguJfguYnguLLguKrguLLguJkKK+C5gOC4l+C4suC4sOC4q+C5jAor4LmA4LiX4Li04LiBCivguYDguJfguLTguYjguIcKK+C5gOC4l+C4tOC4h+C4muC4reC4hwor4LmA4LiX4Li04LiUCivguYDguJfguLTguJkKK+C5gOC4l+C4tOC4mgor4LmA4LiX4Li04Lia4LmGCivguYDguJfguLTguYnguKEKK+C5gOC4l+C4teC4ouC4hwor4LmA4LiX4Li14Lii4LiZCivguYDguJfguLXguYnguKLguJkKK+C5gOC4l+C4teC4ouC4mgor4LmA4LiX4Li14Lii4LijCivguYDguJfguLXguYnguKLguKMKK+C5gOC4l+C4teC4ouC4pwor4LmA4LiX4Li14LmI4Lii4LinCivguYDguJfguLfguK0KK+C5gOC4l+C4t+C5iOC4rQor4LmA4LiX4Li34LmJ4LitCivguYDguJfguLfguK3guIEKK+C5gOC4l+C4t+C4reC4geC5gOC4guC4sgor4LmA4LiX4Li34Lit4LiB4LmA4LiW4Liy4LmA4Lir4Lil4LmI4Liy4LiB4LitCivguYDguJfguLfguK3guJkKK+C5geC4l+C5iAor4LmB4LiX4LmJCivguYHguJfguYfguIHguIvguLXguYgKK+C5geC4l+C4hwor4LmB4LiX4LmI4LiHCivguYHguJfguYnguIcKK+C5geC4l+C5h+C4h+C4geC5jOC4meC5ieC4swor4LmB4LiX4LiH4LiX4Lin4LiiCivguYHguJfguIfguKfguLTguKrguLHguKIKK+C5geC4l+C4leC4ouC5jAor4LmB4LiX4LiZCivguYHguJfguYjguJkKK+C5geC4l+C4meC5gOC4iOC4meC4leC5jAor4LmB4LiX4LiZ4LiX4Liy4Lil4Lix4LihCivguYHguJfguJoKK+C5geC4l+C4o+C4gQor4LmB4LiX4Lij4LiB4LmA4LiV4Lit4Lij4LmMCivguYHguJfguKXguYDguKXguLXguKLguKEKK+C5geC4l+C4sAor4LmC4LiXCivguYLguJfguYgKK+C5guC4l+C4geC5gOC4l+C4gQor4LmC4LiX4LiH4LmGCivguYLguJfguIfguYDguJfguIcKK+C5guC4l+C4k+C4sAor4LmC4LiX4LiY4LiBCivguYLguJfguJkKK+C5guC4l+C4meC5guC4l+C5iAor4LmC4LiX4Lih4LiZ4Lix4LiqCivguYLguJfguKPguJMKK+C5guC4l+C4o+C4oQor4LmC4LiX4Lij4Liy4Lin4Li04LiBCivguYLguJfguKXguLIKK+C5guC4l+C4qQor4LmC4LiX4Lip4LiB4Lij4LiT4LmMCivguYLguJfguKnguITguLjguJMKK+C5guC4l+C4qeC4leC4o+C4seC4ogor4LmC4LiX4Lip4LiX4Lix4LiT4LiR4LmMCivguYLguJfguKnguYLguJ7guKIKK+C5guC4l+C4qeC4oeC4q+C4seC4meC4leC5jAor4LmC4LiX4Lip4LiyCivguYLguJfguKrguLAKK+C5guC4l+C5guC4qgor4LmC4LiX4Lir4Lis4LiwCivguYLguJfguKvguKzguLTguJnguLUKK+C5hOC4lwor4LmE4LiX4LmJCivguYTguJfguIHguK0KK+C5hOC4l+C5gOC4l+C5gOC4meC4teC4ouC4oQor4LmE4LiX4Lif4Lit4Lii4LiU4LmMCivguYTguJfguKIKK+C5hOC4l+C4ouC4mOC4o+C4o+C4oQor4LmE4LiX4LijCivguYTguJfguKPguK3guKLguJTguYwKK+C5hOC4l+C4p+C4sAor4LiYCivguJjguIcKK+C4mOC4h+C4geC5jAor4LiY4LiKCivguJjguIrguLUKK+C4mOC4leC4o+C4kAor4LiY4LiZCivguJjguJnguLHguIcKK+C4mOC4meC4suC4hOC4suC4owor4LiY4LiZ4Liy4LiT4Lix4LiV4Li0CivguJjguJnguLLguJXguKEKK+C4mOC4meC4suC4mOC4suC4owor4LiY4LiZ4Liy4LiY4Li04Lia4LiU4Li1CivguJjguJnguLLguJjguLTguJsKK+C4mOC4meC4suC4mOC4tOC4m+C4seC4leC4ouC5jAor4LiY4LiZ4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJjguJnguLLguKPguLHguIHguKnguYwKK+C4mOC4meC4tOC4lQor4LiY4LiZ4Li04Lip4LiQ4LiyCivguJjguJnguLgKK+C4mOC4meC4uQor4LiY4LmA4LiZ4LioCivguJjguYDguJnguKjguKfguKMKK+C4mOC5guC4meC4m+C4iOC4seC4ogor4LiY4LmE4LiZ4Lio4Lin4Lij4Lij4Lii4LmMCivguJjguKEKK+C4mOC4oeC4geC4o+C4gQor4LiY4LijCivguJjguKPguIcKK+C4mOC4o+C4kwor4LiY4Lij4LiT4Li04LiZCivguJjguKPguJPguLTguJnguJfguKPguYwKK+C4mOC4o+C4k+C4tOC4qAor4LiY4Lij4LiT4Li04Lio4LijCivguJjguKPguJPguLTguKjguKfguKPguYwKK+C4mOC4o+C4k+C4tQor4LiY4Lij4Lih4Liy4LiZCivguJjguKPguKPguKEKK+C4mOC4o+C4o+C4oeC4sAor4LiY4Lij4LiyCivguJjguKPguLTguKnguJXguKPguLUKK+C4mOC5gOC4o+C4qAor4LiY4LmA4Lij4Lip4LiV4Lij4Li1CivguJjguKfguLHguIoKK+C4mOC4seC4h+C4gQor4LiY4Lix4LiKCivguJjguLHguI0KK+C4mOC4seC4meC4ouC4sgor4LiY4Lix4LiZ4Lii4Liy4Lin4Liy4LiXCivguJjguLHguJnguKfguLLguITguKEKK+C4mOC4seC4oeC4oeC4sAor4LiY4Liy4LiU4LiyCivguJjguLLguJXguKPguLUKK+C4mOC4suC4leC4p+C4suC4geC4owor4LiY4Liy4LiV4Li4CivguJjguLLguJXguLjguKHguKHguLTguKrguKrguLIKK+C4mOC4suC4meC4tOC4mQor4LiY4Liy4LiZ4Li04LiZ4LiX4Lij4LmMCivguJjguLLguJnguLUKK+C4mOC4suC4owor4LiY4Liy4Lij4LiB4Liz4LiZ4Lix4LilCivguJjguLLguKPguITguLPguJnguLHguKUKK+C4mOC4suC4o+C4kwor4LiY4Liy4Lij4LiT4LiwCivguJjguLLguKPguJPguLIKK+C4mOC4suC4o+C4sgor4LiY4Liy4Lip4LiV4Lij4Li1CivguJjguLPguKHguKPguIfguITguYwKK+C4mOC4s+C4o+C4hwor4LiY4Li04LiU4LiyCivguJjguLTguJXguLQKK+C4mOC4teC4o+C4sAor4LiY4Li44LiKCivguJjguLjguJTguIfguITguYwKK+C4mOC4uOC4lQor4LiY4Li44LiV4LiV4LiwCivguJjguLjguKEKK+C4mOC4uOC4oeC4sAor4LiY4Li44Lij4LiwCivguJjguLjguKPguLMKK+C4mOC4uOC4peC4tQor4LiY4Li44Lir4Lij4LmI4LizCivguJjguLnguJsKK+C5gOC4mOC4meC4uAor4LmA4LiY4LitCivguYDguJjguLXguKLguKMKK+C5guC4mOC5iAor4LmC4LiY4Lin4LiZCivguJkKK+C4meC4gQor4LiZ4LiB4LiB4Lij4Liw4LiX4Li44LiHCivguJnguIHguLjguKUKK+C4meC4ggor4LiZ4LiECivguJnguITguKMKK+C4meC4hOC4o+C4geC4seC4k+C4keC5jAor4LiZ4LiE4Lij4Lia4Liy4LilCivguJnguITguKPguKHguLHguJPguJHguJnguLIKK+C4meC4hOC4o+C4o+C4seC4kAor4LiZ4LiE4Lij4Lin4Liy4Liq4Li1CivguJnguITguKPguYLguKrguKDguLTguJPguLUKK+C4meC4hOC4o+C5guC4quC5gOC4oOC4k+C4tQor4LiZ4LiE4Lij4Lir4Lil4Lin4LiHCivguJnguITguKPguLLguJfguKMKK+C4meC4hOC4o+C4tOC4meC4l+C4o+C5jAor4LiZ4LiE4LmA4Lij4LioCivguJnguIcKK+C4meC4h+C4hOC4uOC4kAor4LiZ4LiXCivguJnguJfguLUKK+C4meC4meC4leC4o+C4sgor4LiZ4LiZ4LiX4LmMCivguJnguJnguJfguIEKK+C4meC4meC4l+C4o+C4tQor4LiZ4LiZ4LiX4Lil4Li1CivguJnguJnguJfguLQKK+C4meC4mgor4LiZ4Lib4Li44LiH4Liq4LiB4Lil4Li04LiH4LiE4LmMCivguJnguJvguLjguIfguKrguIHguKXguLbguIfguITguYwKK+C4meC4nuC5gOC4geC4leC4meC5jAor4LiZ4Lie4LmA4LiB4LmJ4LiyCivguJnguJ7guITguLjguJMKK+C4meC4nuC5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiZ4Lie4LiZ4Li04LiVCivguJnguJ7guJvguI7guKUKK+C4meC4nuC4nuC4pQor4LiZ4Lie4Lie4Lin4LiHCivguJnguJ7guJ7guLHguJkKK+C4meC4nuC4o+C4seC4leC4meC5jAor4LiZ4Lie4Lio4LiBCivguJnguJ7guKjguLnguKUKK+C4meC4oOC4geC4suC4meC4leC5jAor4LiZ4Lig4LiE4LiKCivguJnguKDguITguJXguLQKK+C4meC4oOC4iOC4owor4LiZ4Lig4LiI4Lix4LiB4Lip4Li4CivguJnguKDguJTguKUKK+C4meC4oOC4l+C4p+C4teC4mwor4LiZ4Lig4Lib4Lij4Liy4LiTCivguJnguKDguKHguJPguJHguKUKK+C4meC4oOC4oeC4k+C4tQor4LiZ4Lig4Lih4Lix4LiiCivguJnguKDguKPguLnguJsKK+C4meC4oOC5gOC4o+C4k+C4uQor4LiZ4Lig4Lin4Li04LiW4Li1CivguJnguKDguKjguLnguKUKK+C4meC4oOC4quC4tOC4meC4mOC4uOC5jAor4LiZ4Lig4LiyCivguJnguKDguLLguIHguLLguKgKK+C4meC4oOC4suC4peC4seC4ogor4LiZ4LihCivguJnguKHguJnguLLguJkKK+C4meC4oeC4sAor4LiZ4Lih4Lix4LiB4LiB4Liy4LijCivguJnguKHguLHguKrguIHguLLguKMKK+C4meC4oeC4suC4iwor4LiZ4Lii4LiZ4LiwCivguJnguKLguJnguLIKK+C4meC4ouC4sAor4LiZ4Lii4Lix4LiB4Lip4LmMCivguJnguKPguIEKK+C4meC4o+C4geC4suC4owor4LiZ4Lij4Liy4LiY4Li04LibCivguJnguKPguLTguJnguJfguKPguYwKK+C4meC4o+C4tOC4qAor4LiZ4Lij4Li04Lio4Lin4LijCivguJnguKPguLUKK+C4meC5gOC4o+C4meC4l+C4o+C4quC4ueC4owor4LiZ4LmA4Lij4LioCivguJnguYDguKPguKjguKfguKMKK+C4meC5gOC4o+C4qOC4p+C4o+C5jOC4iuC4meC4iuC5ieC4suC4hwor4LiZ4LmA4Lij4Lio4Li54LijCivguJnguKTguYLguIbguKkKK+C4meC4pOC4leC4ouC5jAor4LiZ4Lik4LiZ4Liy4LiXCivguJnguKTguJ7guLLguJkKK+C4meC4pOC4oeC4pQor4LiZ4Lik4Lih4Liy4LiTCivguJnguKTguKHguLTguJUKK+C4meC4peC4suC4jwor4LiZ4Lil4Li04LiZCivguJnguKfguIHguLAKK+C4meC4p+C4lAor4LiZ4Lin4LiZ4Li04Lii4Liy4LiiCivguJnguKfguKEKK+C4meC5iOC4p+C4oQor4LiZ4Lin4LiiCivguJnguKfguKUKK+C4meC4p+C4reC4o+C4q+C4suC4l+C4tOC4hOC4uOC4kwor4LiZ4Lin4Lix4LiH4LiE4Liq4Lix4LiV4LiW4Li44Lio4Liy4Liq4LiZ4LmMCivguJnguKfguLLguKPguLAKK+C4meC4p+C4suC4reC4o+C4q+C4suC4mOC4tOC4hOC4uOC4kwor4LiZ4Lir4Liy4LiU4LiBCivguJnguKvguLLguJkKK+C4meC4q+C4suC4o+C4uAor4LiZ4Lir4Li44LiVCivguJnguKwKK+C4meC4rOC4mwor4LiZ4LitCivguJnguK3guIEKK+C4meC4reC4hwor4LiZ4LmI4Lit4LiHCivguJnguYnguK3guIcKK+C4meC5iOC4reC4h+C5geC4meC5iOC4hwor4LiZ4Lit4LiVCivguJnguK3guJkKK+C4meC4reC4mgor4LiZ4LmJ4Lit4LihCivguJnguYnguK3guKIKK+C4meC5ieC4reC4ouC4q+C4meC5iOC4sgor4LiZ4LmJ4Lit4Lii4LmC4Lir4LiZ4LmI4LiHCivguJnguLAKK+C4meC4sOC5geC4meC5iOC4hwor4LiZ4Lix4LiBCivguJnguLHguIHguIHguLAKK+C4meC4seC4geC4guC4seC4lQor4LiZ4Lix4LiB4LiH4Liy4LiZCivguJnguLHguIHguJXguLAKK+C4meC4seC4geC4owor4LiZ4Lix4LiB4Lip4Lix4LiV4LijCivguJnguLHguIHguKrguKPguLLguIoKK+C4meC4seC4ggor4LiZ4Lix4LiECivguJnguLHguITguITguLAKK+C4meC4seC4hwor4LiZ4Lix4LmI4LiHCivguJnguLHguIfguITguLHguKUKK+C4meC4seC4iAor4LiZ4Lix4LiPCivguJnguLHguI/guIEKK+C4meC4seC4kQor4LiZ4Lix4LiUCivguJnguLHguJTguJTguLIKK+C4meC4seC4leC4luC4uOC5jAor4LiZ4Lix4LmI4LiZCivguJnguLHguYnguJkKK+C4meC4seC4meC4l+C4l+C4suC4ouC4tQor4LiZ4Lix4LiZ4LiX4LiZ4LmMCivguJnguLHguJnguJfguJnguLLguIHguLLguKMKK+C4meC4seC4meC4l+C4tAor4LiZ4Lix4LiaCivguJnguLHguJrguJvguKPguLDguKrguLIKK+C4meC4seC4muC4m+C4o+C4sOC4quC4suC4reC4sOC5hOC4owor4LiZ4Lix4LiiCivguJnguLHguKLguJnguYwKK+C4meC4seC4ouC4meC4sgor4LiZ4Lix4LinCivguJnguLIKK+C4meC5iOC4sgor4LiZ4LmJ4LiyCivguJnguLLguIEKK+C4meC4suC4geC4muC4uOC4lAor4LiZ4Liy4LiB4Liy4Liq4Liy4Lir4Lij4Li1CivguJnguLLguIQKK+C4meC4suC4hOC4owor4LiZ4Liy4LiE4LiyCivguJnguLLguITguLLguKfguYLguKXguIEKK+C4meC4suC4hOC4suC4quC4meC5jAor4LiZ4Liy4LiE4Li04LiZ4LiX4Lij4LmMCivguJnguLLguITguLUKK+C4meC4suC5gOC4hOC4meC4l+C4o+C5jAor4LiZ4Liy4LmA4LiE4LioCivguJnguLLguYDguITguKjguKfguKMKK+C4meC4suC5guC4hOC4o+C4hOC4tOC4meC4l+C4owor4LiZ4Liy4LiHCivguJnguLLguIfguJnguKfguKUKK+C4meC4suC4h+C4meC4ueC4mQor4LiZ4Liy4LiH4LmB4Lii4LmJ4LihCivguJnguLLguIfguKPguKEKK+C4meC4suC4h+C5gOC4peC5h+C4lAor4LiZ4Liy4LiH4LmA4Lil4Li04LmJ4LiHCivguJnguLLguIfguKvguIfguKrguYwKK+C4meC4suC4h+C4reC4suC4ogor4LiZ4Liy4LiH4LmB4Lit4LmI4LiZCivguJnguLLguIvguLIKK+C4meC4suC4i+C4tQor4LiZ4Liy4LiPCivguJnguLLguI/guIEKK+C4meC4suC4j+C4geC4o+C4o+C4oQor4LiZ4Liy4LiP4LiU4LiZ4LiV4Lij4Li1CivguJnguLLguI/guKjguLTguKXguJvguYwKK+C4meC4suC4lAor4LiZ4Liy4LiWCivguJnguLLguJcKK+C4meC4suC4l+C4tQor4LiZ4Liy4LiZCivguJnguYjguLLguJkKK+C4meC4suC4meC4seC4hOC4o+C4qgor4LiZ4Liy4LiZ4Lix4LiV4LinCivguJnguLLguJnguLHguJvguIHguLLguKMKK+C4meC4suC4meC4sgor4LiZ4Liy4LmA4LiZ4LiBCivguJnguLLguJoKK+C4meC4suC4oOC4tAor4LiZ4Liy4Lig4Li1CivguJnguLLguKEKK+C4meC4suC4oeC4muC4seC4leC4owor4LiZ4Liy4Lih4Lib4Liy4LiB4LiB4LiyCivguJnguLLguKHguYHguJ3guIcKK+C4meC4suC4oeC4quC4geC4uOC4pQor4LiZ4Liy4LiiCivguJnguYjguLLguKIKK+C4meC4suC4ouC4gQor4LiZ4Liy4Lii4Li04LiB4LiyCivguJnguLLguKPguJcKK+C4meC4suC4o+C4sgor4LiZ4Liy4Lij4Liy4Lii4LiT4LmMCivguJnguLLguKPguLUKK+C4meC4suC5gOC4o+C4qAor4LiZ4Liy4Lil4Li04Lin4Lix4LiZCivguJnguLLguKXguLUKK+C4meC4suC4pwor4LiZ4LmJ4Liy4LinCivguJnguLLguKfguLIKK+C4meC4suC4p+C4tOC4gQor4LiZ4Liy4Lin4Li04LiZCivguJnguLLguKfguLUKK+C4meC4suC5gOC4p+C4qAor4LiZ4Liy4LioCivguJnguLLguKrguJnguLAKK+C4meC4suC4quC4sgor4LiZ4Liy4Liq4Li04LiBCivguJnguLLguKzguLTguIHguLIKK+C4meC4suC4rOC4tOC5gOC4gQor4LiZ4Liy4Lis4Li1CivguJnguLMKK+C4meC5ieC4swor4LiZ4LmJ4Liz4LiV4Liw4LiB4Li5CivguJnguYnguLPguJXguLDguYLguIEKK+C4meC4tAor4LiZ4Li04LiB4LiC4LiwCivguJnguLTguIHguILguLHguJnguJXguYwKK+C4meC4tOC4geC5gOC4guC4mwor4LiZ4Li04LiB4LijCivguJnguLTguIHguKPguK3guKLguJTguYwKK+C4meC4tOC4geC4suC4ogor4LiZ4Li04LmA4LiB4Li04LilCivguJnguLTguITguKEKK+C4meC4tOC4hOC4o+C4meC4luC5jAor4LiZ4Li04LiE4Lir4LiwCivguJnguLTguITguKvguLTguJUKK+C4meC4tOC4hOC4suC4peC4seC4ogor4LiZ4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguLTguYLguITguJXguLTguJkKK+C4meC4tOC5guC4hOC4o+C4mAor4LiZ4Li04LmC4LiE4Lij4LihCivguJnguLTguIcKK+C4meC4tOC5iOC4hwor4LiZ4Li04LiICivguJnguLTguJQKK+C4meC4tOC4leC4ouC5jAor4LiZ4Li04LiV4Li0CivguJnguLTguJfguKMKK+C4meC4tOC4l+C4o+C4o+C4qOC4geC4suC4owor4LiZ4Li04LiX4Lij4LiyCivguJnguLTguJfguLHguKjguJnguYwKK+C4meC4tOC4l+C4suC4hgor4LiZ4Li04LiX4Liy4LiZCivguJnguLTguYDguJfguKgKK+C4meC4tOC5gOC4l+C4qOC4geC5jAor4LiZ4Li04LiY4Liy4LiZCivguJnguLTguJjguLQKK+C4meC4tOC4meC4l+C4sgor4LiZ4Li04LiZ4LiZ4LiwCivguJnguLTguJnguJnguLLguJcKK+C4meC4tOC4meC4q+C4uOC4lQor4LiZ4Li04LiZ4Liy4LiXCivguJnguLTguJrguLLguJUKK+C4meC4tOC4m+C4o+C4tOC4ouC4suC4ogor4LiZ4Li04Lib4Lix4LiI4LiB4Liy4LijCivguJnguLTguJ7guIjguJnguYwKK+C4meC4tOC4nuC4meC4mOC5jAor4LiZ4Li04Lie4Lie4Liy4LiZCivguJnguLTguJ7guJ7guLTguJfguLIKK+C4meC4tOC4nuC4seC4l+C4mOC5jAor4LiZ4Li04Lie4Lix4LiZ4LiY4LmMCivguJnguLTguJ7guLTguJcKK+C4meC4tOC5gOC4nuC4lwor4LiZ4Li04Lig4LiyCivguJnguLTguYjguKEKK+C4meC4tOC5ieC4oQor4LiZ4Li04Lih4LiZ4LiV4LmMCivguJnguLTguKHguKHguLLguJkKK+C4meC4tOC4oeC4oeC4suC4meC4o+C4lOC4tQor4LiZ4Li04Lih4Li04LiVCivguJnguLTguKLguJUKK+C4meC4tOC4ouC4oQor4LiZ4Li04Lii4Lii4Liy4LiZCivguJnguLTguKLguKLguLLguJnguLTguIEKK+C4meC4tOC4ouC4seC4leC4tOC4meC4tOC4ouC4oQor4LiZ4Li04Lii4Liy4LihCivguJnguLTguKLguLLguKIKK+C4meC4tOC4ouC4uOC4lQor4LiZ4Li04Lij4Lie4Lix4LiV4LijCivguJnguLTguKPguKHguLLguJMKK+C4meC4tOC4o+C4oeC4tOC4lQor4LiZ4Li04Lij4Lix4Lie4Lie4Li44LiXCivguJnguLTguKPguLLguKgKK+C4meC4tOC4o+C4uOC4geC4leC4tAor4LiZ4Li04Lij4Li44LiV4LiV4Li0CivguJnguLTguKPguLjguJfguJjguYwKK+C4meC4tOC5guC4o+C4mAor4LiZ4Li04LilCivguJnguLTguYjguKcKK+C4meC4tOC5ieC4pwor4LiZ4Li04Lin4LiE4Lil4Li14Lit4Li04LiBCivguJnguLTguKfguYDguITguKXguLXguKLguKPguYwKK+C4meC4tOC4p+C5gOC4hOC4peC4teC4ouC4qgor4LiZ4Li04Lin4LiV4Lij4Lit4LiZCivguJnguLTguKfguKPguJPguYwKK+C4meC4tOC4p+C4seC4leC4meC5jAor4LiZ4Li04Lin4Lix4LiV4Li0CivguJnguLTguKfguLLguJUKK+C4meC4tOC4p+C4suC4qgor4LiZ4Li04Lin4Liy4Liq4LiZ4LmMCivguJnguLTguYDguKfguKgKK+C4meC4tOC5gOC4p+C4qOC4meC5jAor4LiZ4Li04Lio4LiyCivguJnguLTguKnguIHguKPguKEKK+C4meC4tOC4qeC4suC4lwor4LiZ4Li04Liq4Liq4Lix4LiE4LiE4Li04Lii4Lin4Lix4LiV4LiW4Li4CivguJnguLTguKrguKrguLHguITguITguLXguKLguYwKK+C4meC4tOC4quC4seC4igor4LiZ4Li04Liq4Lix4LiiCivguJnguLTguKrguLLguJcKK+C4meC4tOC4quC4tOC4lQor4LiZ4Li04Liq4Li14LiX4LiZ4LiwCivguJnguLTguYDguKrguJgKK+C4meC4tOC4q+C4teC4meC4sAor4LiZ4Li14LmICivguJnguLXguYkKK+C4meC4teC4leC4tAor4LiZ4Li14LmI4LiZ4Lix4LiZCivguJnguLXguKPguJnguLLguJcKK+C4meC4teC4reC4reC4mQor4LiZ4Li14LmC4Lit4LiU4Li14LmA4Lih4Li14Lii4LihCivguJnguLbguIEKK+C4meC4tuC4hwor4LiZ4Li24LmI4LiHCivguJnguLgKK+C4meC4uOC4hwor4LiZ4Li44LmI4LiHCivguJnguLjguIoKK+C4meC4uOC4lAor4LiZ4Li44LiVCivguJnguLjguYjguJkKK+C4meC4uOC5ieC4ogor4LiZ4Li54LiZCivguJnguLnguYjguJkKK+C4meC4ueC5ieC4mQor4LmA4LiZ4LiB4LiC4LiwCivguYDguJnguIHguILguLHguKEKK+C5gOC4meC4hOC5hOC4lwor4LmA4LiZ4LiVCivguYDguJnguJXguJrguK3guKUKK+C5gOC4meC4leC4owor4LmA4LiZ4LiV4Li0CivguYDguJnguYnguJkKK+C5gOC4meC4muC4tOC4p+C4peC4sgor4LmA4LiZ4Lib4LiI4Li54LiZCivguYDguJnguJvguJfguLnguYDguJnguLXguKLguKEKK+C5gOC4meC4oeC4tAor4LmA4LiZ4Lih4Li04LiV4LiB4LiwCivguYDguJnguKHguLTguJnguJjguKMKK+C5gOC4meC4ogor4LmA4LiZ4Lii4Lii4LiwCivguYDguJnguKPguIHguLHguJPguJDguLUKK+C5gOC4meC4o+C4hOC4uOC4kwor4LmA4LiZ4Lij4LmA4LiX4LioCivguYDguJnguKPguJnguLLguJYKK+C5gOC4meC4o+C4oeC4tOC4lQor4LmA4LiZ4Lij4Liw4Lie4Li54Liq4Li1CivguYDguJnguKnguLLguJcKK+C5gOC4meC4rQor4LmA4LiZ4LmJ4LitCivguYDguJnguLIKK+C5gOC4meC5iOC4sgor4LmA4LiZ4Liy4Lin4LiZ4Li04LiVCivguYDguJnguLTguJkKK+C5gOC4meC4tOC5iOC4mQor4LmA4LiZ4Li04LiaCivguYDguJnguLXguKLguIcKK+C5gOC4meC4teC4ouC4mQor4LmA4LiZ4Li14Lii4LihCivguYDguJnguLXguKLguKMKK+C5gOC4meC4teC4ouC4o+C4l+C4uOC4geC4guC5jAor4LmA4LiZ4Li14Lii4Lij4LmA4LiX4LioCivguYDguJnguLXguKLguKPguJnguLLguJcKK+C5gOC4meC4t+C5ieC4rQor4LmA4LiZ4Li34Lit4LiHCivguYDguJnguLfguYjguK3guIcKK+C5gOC4meC4t+C4reC4ogor4LmA4LiZ4Li34LmJ4Lit4LmA4Lii4Li34LmJ4LitCivguYHguJnguYgKK+C5geC4meC5iOC4hwor4LmB4LiZ4LmI4LiZCivguYHguJnguJoKK+C5geC4meC4oQor4LmB4LiZ4LinCivguYHguJnguYjguKcKK+C5geC4meC4sAor4LmB4LiZ4Liw4LmB4Lir4LiZCivguYLguJkKK+C5guC4meC5ieC4lQor4LmC4LiZ4LiZCivguYLguJnguYjguJkKK+C5guC4meC5ieC4mQor4LmC4LiZ4LmA4LiZCivguYLguJnguYDguJrguYDguKXguLXguKLguKEKK+C5guC4meC5ieC4oQor4LmC4LiZ4Lih4Lie4Lij4Lij4LiTCivguYLguJnguKPguLIKK+C5guC4meC4o+C4tQor4LmD4LiZCivguYTguJkKK+C5hOC4meC4leC5jOC4hOC4peC4seC4mgor4LmE4LiZ4LmC4LiV4Lij4LmA4LiI4LiZCivguYTguJnguJfguYzguITguKXguLHguJoKK+C5hOC4meC4peC4reC4mQor4LmE4LiZ4Lit4Liy4LiL4Li14LiZCivguYTguJnguYLguK3guYDguJrguLXguKLguKEKK+C4mgor4Lia4LmICivguJrguIEKK+C4muC4hwor4Lia4LmI4LiHCivguJrguIfguIHguYwKK+C4muC5iuC4h+C5gOC4muC5iuC4hwor4Lia4LiH4Liq4Li44LmMCivguJrguIfguK3guLHguJrguJrguIfguKPguLIKK+C4muC5iOC4h+C4reC4seC4muC4muC5iOC4h+C4o+C4sgor4Lia4LiPCivguJrguJQKK+C4muC4lOC4tOC4meC4l+C4o+C5jAor4Lia4LiU4Li1CivguJrguJYKK+C4muC4lwor4Lia4LiX4LiZ4Li1CivguJrguJfguJrguIfguIHguIoKK+C4muC4l+C4muC4h+C4quC4uOC5jAor4Lia4LiX4Lia4Li54Lij4LiT4LmMCivguJrguJfguJ7guLHguJnguJjguYwKK+C4muC4l+C4oOC4suC4iuC4meC5jAor4Lia4LiX4Lig4Liy4LiK4LiZ4Li14Lii4LmMCivguJrguJfguKHguLLguKXguKLguYwKK+C4muC4l+C4o+C4seC4igor4Lia4LiX4Lin4LmA4Lij4LioCivguJrguJfguKfguKXguLHguI3guIrguYwKK+C4muC4l+C4p+C4suC4owor4Lia4LiX4Lio4Lij4Li1CivguJrguJfguKjguLHguJ7guJfguYwKK+C4muC4l+C4quC4luC4suC4mQor4Lia4LiX4Liy4Lih4Lie4Li44LiKCivguJrguYLguJfguJkKK+C4muC4mQor4Lia4LmI4LiZCivguJrguJ7guLTguJXguKMKK+C4muC4nuC4tOC4mAor4Lia4LmI4LihCivguJrguKPguKEKK+C4muC4o+C4oeC4seC4leC4luC5jAor4Lia4Lij4Lij4LiB4Lin4LiUCivguJrguKPguKPguIjguIcKK+C4muC4o+C4o+C4iOC4luC4o+C4k+C5jAor4Lia4Lij4Lij4LiI4LiaCivguJrguKPguKPguIjguKfguJoKK+C4muC4o+C4o+C4iOC4uAor4Lia4Lij4Lij4LmA4LiI4Li04LiUCivguJrguKPguKPguJMKK+C4muC4o+C4o+C4k+C4suC4geC4suC4owor4Lia4Lij4Lij4LiT4Liy4LiE4LihCivguJrguKPguKPguJPguLLguJjguLTguIHguLLguKMKK+C4muC4o+C4o+C4k+C4suC4meC4uOC4geC4o+C4oQor4Lia4Lij4Lij4LiT4Liy4Lij4Lix4LiB4Lip4LmMCivguJrguKPguKPguJPguLLguKPguLHguIHguKnguKjguLLguKrguJXguKPguYwKK+C4muC4o+C4o+C4lOC4sgor4Lia4Lij4Lij4LiU4Liy4LiBCivguJrguKPguKPguJTguLLguKjguLHguIHguJTguLTguYwKK+C4muC4o+C4o+C4leC4suC4meC4tuC4gQor4Lia4Lij4Lij4LiW4LijCivguJrguKPguKPguJfguKEKK+C4muC4o+C4o+C4l+C4seC4lAor4Lia4Lij4Lij4LiX4Lix4LiaCivguJrguKPguKPguJfguLLguJkKK+C4muC4o+C4o+C4l+C4uOC4gQor4Lia4Lij4Lij4LmA4LiX4LiyCivguJrguKPguKPguYDguJfguLfguK3guIcKK+C4muC4o+C4o+C4ngor4Lia4Lij4Lij4Lie4LmMCivguJrguKPguKPguJ7guIrguLIKK+C4muC4o+C4o+C4nuC4iuC4tOC4lQor4Lia4Lij4Lij4Lie4LiVCivguJrguKPguKPguKLguIcKK+C4muC4o+C4o+C4ouC4h+C4hOC5jAor4Lia4Lij4Lij4Lii4LmA4Lin4LiB4Lip4LiB4LmMCivguJrguKPguKPguKLguLLguIHguLLguKgKK+C4muC4o+C4o+C4ouC4suC4ogor4Lia4Lij4Lij4Lil4Lix4LiiCivguJrguKPguKPguKXguLLguKIKK+C4muC4o+C4o+C4peC4uAor4Lia4Lij4Lij4LmA4Lil4LiHCivguJrguKPguKPguYLguKXguKEKK+C4muC4o+C4o+C4qeC4seC4lwor4Lia4Lij4Lij4Liq4LiaCivguJrguKPguKPguKrguJ4KK+C4muC4o+C4o+C4quC4oQor4Lia4Lij4Lij4Liq4Liy4LiZCivguJrguKPguKPguKrguLLguKMKK+C4muC4o+C4o+C4q+C4suC4mQor4Lia4Lij4Lij4Lir4Liy4LijCivguJrguKPguLHguJQKK+C4muC4o+C4seC5iOC4meC4lOC4tQor4Lia4Lij4Lix4Lio4Lin4LmMCivguJrguKPguLLguIHguKPguKEKK+C4muC4o+C4suC4l+C4uOC4geC4o+C4sgor4Lia4Lij4Liy4Lil4Li1CivguJrguKPguLTguIHguKPguKEKK+C4muC4o+C4tOC4geC4o+C4o+C4oQor4Lia4Lij4Li04LiB4Lix4LibCivguJrguKPguLTguIHguLLguKMKK+C4muC4o+C4tOC4guC4sgor4Lia4Lij4Li04LiC4Liy4LijCivguJrguKPguLTguITguJPguKvguYwKK+C4muC4o+C4tOC4iOC4suC4hAor4Lia4Lij4Li04LiI4Liy4Lij4LiBCivguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4o+C4tOC5gOC4ieC4lwor4Lia4Lij4Li04LiK4LiZCivguJrguKPguLTguJPguLLguKLguIEKK+C4muC4o+C4tOC4lOC4iOC5jAor4Lia4Lij4Li04Lia4LiXCivguJrguKPguLTguJrguKfguKPguJPguYwKK+C4muC4o+C4tOC4muC4suC4pQor4Lia4Lij4Li04Lia4Li54Lij4LiT4LmMCivguJrguKPguLTguJ7guJnguJjguYwKK+C4muC4o+C4tOC4nuC4seC4leC4owor4Lia4Lij4Li04Lie4Lix4LiZ4LiY4LmMCivguJrguKPguLTguJ7guLLguIrguIEKK+C4muC4o+C4tOC4nuC4suC4iuC4tOC4geC4sgor4Lia4Lij4Li04Lie4Liy4LiK4Li1CivguJrguKPguLTguJ7guLLguKMKK+C4muC4o+C4tOC4oOC4seC4k+C4keC5jAor4Lia4Lij4Li04Lig4Liy4LipCivguJrguKPguLTguYLguKDguIQKK+C4muC4o+C4tOC4oeC4suC4qgor4Lia4Lij4Li04Lii4Liy4LiiCivguJrguKPguLTguKPguKEKK+C4muC4o+C4tOC4o+C4seC4geC4qeC5jAor4Lia4Lij4Li04Lij4Liy4LiKCivguJrguKPguLTguKfguKPguKPguJUKK+C4muC4o+C4tOC4p+C4suC4owor4Lia4Lij4Li04Lin4Liy4LiqCivguJrguKPguLTguYDguKfguJMKK+C4muC4o+C4tOC4qeC4geC4suC4owor4Lia4Lij4Li04Lip4Lix4LiXCivguJrguKPguLTguKrguIrguJkKK+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4Lia4Lij4Li04Lir4Liy4LijCivguJrguKPguLTguKvguLLguKoKK+C4muC4o+C4t+C5i+C4rQor4Lia4Lik4LiH4LiE4LieCivguJrguKXguYfguK3guIEKK+C4muC4p+C4gQor4Lia4Lin4LiHCivguJrguYjguKfguIcKK+C4muC4p+C4igor4Lia4Lin4LiZCivguJrguYnguKfguJkKK+C4muC4p+C4mgor4Lia4Lin4LihCivguJrguYrguKfguKIKK+C4muC4p+C4owor4Lia4Lin4Lij4LmC4LiV4LiO4LiBCivguJrguKvguKXguLTguYjguKEKK+C4muC4rQor4Lia4LmI4LitCivguJrguYnguK0KK+C4muC4reC4gQor4Lia4Lit4LiHCivguJrguYjguK3guIcKK+C4muC5ieC4reC4hwor4Lia4LmK4Lit4LiHCivguJrguYrguK3guIfguYYKK+C4muC5ieC4reC4h+C4leC4sOC4peC4sgor4Lia4LmJ4Lit4LiH4LmB4Lia4LmK4LinCivguJrguK3guIfguKvguKXguLIKK+C4muC4reC4lAor4Lia4Lit4LiZCivguJrguYjguK3guJkKK+C4muC4reC4meC4peC4suC4ouC4geC4o+C4sOC4q+C4meC4gQor4Lia4Lit4LiaCivguJrguYnguK3guKEKK+C4muC5i+C4reC4oQor4Lia4Lit4Lih4Lia4LmMCivguJrguYjguK3guKIKK+C4muC5i+C4reC4ogor4Lia4LmI4Lit4Lii4LmGCivguJrguK3guKPguLDguYDguJ7guYfguJQKK+C4muC4reC4o+C4sOC4oeC4suC4mQor4Lia4Lit4LilCivguJrguK3guKXguKXguLnguJkKK+C4muC5ieC4reC4q+C4uOC5ieC4mQor4Lia4LmK4LiwCivguJrguLDguInguYjguK0KK+C4muC4sOC4q+C4oeC4teC5iAor4Lia4Lix4LiBCivguJrguLHguITguYDguJXguKPguLUKK+C4muC4seC4hwor4Lia4Lix4LmJ4LiHCivguJrguLHguIfguIHguLDguYLguKUKK+C4muC4seC4h+C4geC4seC4lAor4Lia4Lix4LiH4LmA4LiB4Li04LiUCivguJrguLHguIfguYLguIHguKPguKLguJXguLHguKfguJzguLnguYkKK+C4muC4seC4h+C5guC4geC4o+C4ouC4leC4seC4p+C5gOC4oeC4teC4ogor4Lia4Lix4LiH4LmC4LiB4Lil4LiZCivguJrguLHguIfguITguJkKK+C4muC4seC4h+C4hOC4oQor4Lia4Lix4LiH4LiE4LilCivguJrguLHguIfguITguKfguKMKK+C4muC4seC4h+C4hOC4seC4mgor4Lia4Lix4LiH4LiE4Lix4LilCivguJrguLHguIfguYLguITguKXguJkKK+C4muC4seC4h+C5geC4l+C4o+C4gQor4Lia4Lix4LiH4Lin4Liy4LiiCivguJrguLHguIfguYDguKfguLXguKLguJkKK+C4muC4seC4h+C4quC4uOC4geC4uOC4pQor4Lia4Lix4LiH4Liq4Li44LiB4Li54Lil4Li04LiBCivguJrguLHguIfguKrguLnguKPguKLguYwKK+C4muC4seC4h+C4q+C4p+C4mQor4Lia4Lix4LiH4Lir4Lin4LiZ4LiE4Lin4Lix4LiZCivguJrguLHguIfguYDguKvguJXguLgKK+C4muC4seC4h+C5gOC4q+C4tOC4mQor4Lia4Lix4LiH4LmA4Lir4Li14Lii4LiZCivguJrguLHguIfguK3guKMKK+C4muC4seC4h+C4reC4p+C4iAor4Lia4Lix4LiH4Lit4Liy4LiICivguJrguLHguIfguK3guLTguIcKK+C4muC4seC4h+C4reC4ueC4owor4Lia4Lix4LiH4LmA4Lit4Li04LiNCivguJrguLHguI3guIjguIEKK+C4muC4seC4jeC4iOC4o+C4h+C4hOC5jAor4Lia4Lix4LiN4LiK4LijCivguJrguLHguI3guIrguLIKK+C4muC4seC4jeC4iuC4tQor4Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJrguLHguI3guKvguLIKK+C4muC4seC4jwor4Lia4Lix4LiQ4Lii4Liy4Lie4Lik4LiVCivguJrguLHguJPguJHguKMKK+C4muC4seC4k+C4keC4tOC4lQor4Lia4Lix4LiT4LiR4Li04LiV4Lii4LmMCivguJrguLHguJPguJHguLgKK+C4muC4seC4k+C4keC4ueC4owor4Lia4Lix4LiT4LmA4LiR4Liy4Liw4LiB4LmMCivguJrguLHguJPguJPguLLguKoKK+C4muC4seC4k+C4o+C4qgor4Lia4Lix4LiT4Lij4Liq4Li1CivguJrguLHguJQKK+C4muC4seC4lOC4geC4o+C4tQor4Lia4Lix4LiU4LiL4LiaCivguJrguLHguJTguJrguIcKK+C4muC4seC4lOC4quC4tQor4Lia4Lix4LiV4LijCivguJrguLHguJfguKHguYwKK+C4muC4seC4mQor4Lia4Lix4LmI4LiZCivguJrguLHguYnguJkKK+C4muC4seC4meC4geC4p+C4lAor4Lia4Lix4LiZ4LiI4Lin4LiaCivguJrguLHguJnguIjguK3guKIKK+C4muC4seC4meC4lOC4pQor4Lia4Lix4LiZ4LiU4Liy4LilCivguJrguLHguJnguYDguJTguLTguJkKK+C4muC4seC4meC5guC4lOC4ogor4Lia4Lix4LiZ4LmE4LiUCivguJrguLHguJnguJfguLLguKIKK+C4muC4seC4meC4l+C4tuC4gQor4Lia4Lix4LiZ4LiX4Li24LiHCivguJrguLHguJnguYDguJfguLTguIcKK+C4muC4seC4meC4ouC4sOC4muC4seC4meC4ouC4seC4hwor4Lia4Lix4LiZ4Lil4Li34LitCivguJrguLHguJnguYDguKvguLTguJkKK+C4muC4seC4m+C4nOC4suC4quC4sAor4Lia4Lix4LieCivguJrguLHguJ7guIrguLIKK+C4muC4seC4nuC4iuC4tOC4lQor4Lia4Lix4Lie4Lie4Liy4LiKCivguJrguLHguJ7guJ7guLLguIrguJnguYwKK+C4muC4seC4nuC4nuC4suC4iuC4meC4teC4ouC4geC4o+C4o+C4oQor4Lia4Lix4LilCivguJrguLHguKXguKXguJ4KK+C4muC4seC4peC4peC4seC4h+C4geC5jAor4Lia4Lix4Lil4Lil4Li54LiZCivguJrguLHguKXguYDguKXguYjguJXguYwKK+C4muC4seC4peC4p+C4sAor4Lia4Lix4LinCivguJrguLHguKfguYDguJTguLfguYjguK0KK+C4muC4seC4p+C4leC4ueC4oQor4Lia4Lix4Lin4Lia4LiBCivguJrguLHguKfguKrguKfguKPguKPguITguYwKK+C4muC4sgor4Lia4LmI4LiyCivguJrguYnguLIKK+C4muC5ieC4suC5hgor4Lia4Liy4LiBCivguJrguLLguIcKK+C4muC5iOC4suC4hwor4Lia4LmJ4Liy4LiHCivguJrguLLguIfguIHguK3guIEKK+C4muC4suC4h+C4quC4uAor4Lia4Liy4LiI4LiBCivguJrguLLguIjguKPguLXguKLguYwKK+C4muC4suC4iOC4tOC4geC4sgor4Lia4Liy4LiL4Liy4Lij4LmMCivguJrguLLguIvguLTguKXguKXguLHguKoKK+C4muC4suC4lAor4Lia4Liy4LiU4LiX4Liw4LiI4Li04LiVCivguJrguLLguJTguJfguLDguJ7guLTguKkKK+C4muC4suC4lOC4l+C4sOC4ouC4seC4gQor4Lia4Liy4LiU4Lir4Lih4Liy4LiiCivguJrguLLguJTguYTguKvguKEKK+C4muC4suC4lOC4suC4pQor4Lia4Liy4LmB4LiU4LiHCivguJrguLLguJUKK+C4muC4suC4leC4owor4Lia4Liy4LiXCivguJrguLLguJfguJoKK+C4muC4suC4l+C4muC4h+C4geC4igor4Lia4Liy4LiX4Lia4Lij4Li04LiI4Liy4Lij4Li04LiB4LiyCivguJrguLLguJfguKfguLTguJbguLUKK+C4muC4suC4l+C4quC4geC4uOC4k+C4tQor4Lia4Liy4LiX4Lir4Lil4Lin4LiHCivguJrguLLguJfguLLguJjguLbguIEKK+C4muC4suC4l+C4uOC4geC4sgor4Lia4Liy4LiZCivguJrguYnguLLguJkKK+C4muC4suC4meC4oeC4h+C4hOC4pQor4Lia4Liy4LiZ4Li14Lii4LiwCivguJrguYnguLLguJrguYjguJkKK+C4muC5ieC4suC4muC5i+C4sgor4Lia4Liy4Lia4Li1CivguJrguLLguJrguLkKK+C4muC4suC4muC4ueC4mQor4Lia4Liy4LibCivguJrguLLguJvguYDguITguKPguLLguLDguKvguYwKK+C4muC4suC4m+C4l+C4pOC4qeC4juC4tQor4Lia4Liy4Lib4Lih4Li04LiV4LijCivguJrguLLguJvguKfguLLguJcKK+C4muC4suC4nuC4gQor4Lia4LmI4Liy4Lie4LiBCivguJrguLLguKIKK+C4muC5iOC4suC4ogor4Lia4LmJ4Liy4LiiCivguJrguLLguKLguKrguLjguKvguKPguLUKK+C4muC4suC5gOC4ouC4teC4ogor4Lia4Liy4LmC4LiiCivguJrguLLguKPguYwKK+C4muC4suC4o+C4meC4tQor4Lia4Liy4Lij4LmM4Lia4Li04LiE4Li04LinCivguJrguLLguKPguYzguYDguJrguKUKK+C4muC4suC4o+C4oeC4tQor4Lia4Liy4Lij4LmM4LmA4Lij4LilCivguJrguLLguKPguYzguYDguKXguKLguYwKK+C4muC4suC4o+C4reC4oeC4tOC5gOC4leC4reC4o+C5jAor4Lia4LmJ4Liy4Lij4Liw4Lia4Li44LmI4LiZCivguJrguYnguLLguKPguYjguLLguJfguYjguLIKK+C4muC4suC5gOC4o+C4teC4ouC4mQor4Lia4Liy4LmA4Lij4Li14Lii4LihCivguJrguLLguKUKK+C4muC4suC4peC4tQor4Lia4LmI4Liy4LinCivguJrguYjguLLguKfguILguLjguJkKK+C4muC4suC4qAor4Lia4Liy4Lio4LiB4LmMCivguJrguLLguKrguYDguIHguJXguJrguK3guKUKK+C4muC5ieC4suC4q+C4oeC4uQor4Lia4Liy4Lir4Lil4Li1CivguJrguYnguLLguKvguKfguYjguLIKK+C4muC5iOC4suC4reC5ieC4suC4ogor4Lia4LmL4LizCivguJrguLPguYDguJfguLTguIcKK+C4muC4s+C4meC4suC4jQor4Lia4Liz4Lia4Lin4LiHCivguJrguLPguJrguLHguJQKK+C4muC4s+C5guC4mgor4Lia4Liz4LmC4Lia4LiiCivguJrguLPguYLguJrguKUKK+C4muC4s+C5gOC4nuC5h+C4jQor4Lia4Liz4Lij4Liy4LiaCivguJrguLPguKPguLLguKgKK+C4muC4s+C4o+C4uOC4hwor4Lia4Liz4Lij4Li5CivguJrguLPguYDguKPguK0KK+C4muC4s+C4q+C4ouC4seC4lAor4Lia4Liz4LmA4Lir4LiZ4LmH4LiICivguJrguLQKK+C4muC4tOC4geC4uQor4Lia4Li04LiQCivguJrguLTguJQKK+C4muC4tOC4lOC4owor4Lia4Li04LiU4Lir4Lil4LmI4LiyCivguJrguLTguJTguLIKK+C4muC4tOC4leC4uAor4Lia4Li04LiV4Li44LiI4LiJ4LiyCivguJrguLTguJXguLjguKPguIfguITguYwKK+C4muC4tOC4leC4uOC5gOC4o+C4qAor4Lia4Li04LiV4Li44LilCivguJrguLTguJXguLjguKXguLIKK+C4muC4tOC4leC4uOC4peC4suC4meC4tQor4Lia4Li04LiZCivguJrguLTguYjguJkKK+C4muC4tOC4meC4ouC4sgor4Lia4Li04Lil4LmA4Lil4Li14Lii4LiUCivguJrguLTguKfguYDguKPguJXguJXguYwKK+C4muC4tOC4qOC4suC4iAor4Lia4Li04Liq4Lih4Lix4LiXCivguJrguLXguYkKK+C4muC4teC4geC4uQor4Lia4Li14LiR4LiyCivguJrguLXguJXguLIKK+C4muC4teC4mgor4Lia4Li14LmA4Lii4LioCivguJrguLbguIEKK+C4muC4tuC4geC4muC4tuC4mQor4Lia4Li24LiHCivguJrguLbguYjguIcKK+C4muC4tuC5ieC4hwor4Lia4Li4CivguJrguLjguIEKK+C4muC4uOC4hOC4hOC4pQor4Lia4Li44LiE4Lil4Liy4LiB4LijCivguJrguLjguITguKXguLLguJjguLTguKnguJDguLLguJkKK+C4muC4uOC4hOC4peC4tOC4gQor4Lia4Li44LiHCivguJrguLjguYjguIcKK+C4muC4uOC5ieC4hwor4Lia4Li44LiNCivguJrguLjguI3guYDguILguJUKK+C4muC4uOC4jeC4jeC4suC4meC4uOC4oOC4suC4ngor4Lia4Li44LiN4LiN4Liy4Lig4Li04LiZ4Li04Lir4Liy4LijCivguJrguLjguI3guI3guLLguKDguLTguKrguLHguIfguILguLLguKMKK+C4muC4uOC4jeC4meC4tOC4mOC4tAor4Lia4Li44LiN4Lij4Liy4Lio4Li1CivguJrguLjguI3guKTguJfguJjguLTguYwKK+C4muC4uOC4k+C4keC4o+C4tOC4gQor4Lia4Li44LiT4Lih4Li1CivguJrguLjguJPguKLguYwKK+C4muC4uOC4leC4owor4Lia4Li44LiV4Lij4LiY4Lij4Lij4LihCivguJrguLjguJXguKPguLIKK+C4muC4uOC4leC4o+C4tQor4Lia4Li44LiV4Lij4Li14LiV4Lij4Liw4Liq4Li44LihCivguJrguLjguJbguLjguIrguJkKK+C4muC4uOC4l+C4hOC4pQor4Lia4Li44LmL4LiZCivguJrguLjguJnguJnguLDguJrguLjguJnguJnguLHguIcKK+C4muC4uOC4meC4meC4suC4hAor4Lia4Li44LiaCivguJrguLjguJ7guYDguJ7guJnguLTguKfguLLguKrguLLguJnguLjguKrguJXguLTguI3guLLguJMKK+C4muC4uOC4nuC5gOC4nuC4quC4seC4meC4meC4tOC4p+C4suC4qgor4Lia4Li44Lie4LmC4LieCivguJrguLjguJ/guYDguJ/guYjguJXguYwKK+C4muC4uOC5i+C4oQor4Lia4Li44LmI4Lih4Lia4LmI4Liy4LihCivguJrguLjguYnguKIKK+C4muC4uOC5ieC4ouC4m+C4suC4gQor4Lia4Li44Lij4LiT4LiwCivguJrguLjguKPguJ7guIHguLjguKjguKUKK+C4muC4uOC4o+C4nuC4l+C4tOC4qAor4Lia4Li44Lij4Lie4LiZ4Li04Lih4Li04LiVCivguJrguLjguKPguJ7guJrguJcKK+C4muC4uOC4o+C4nuC4oOC4seC4l+C4o+C4muC4lwor4Lia4Li44Lij4Lie4Liy4LiI4Liy4Lij4Lii4LmMCivguJrguLjguKPguJ7guLLguKnguLLguJIKK+C4muC4uOC4o+C4sAor4Lia4Li44Lij4Lix4LiV4LiW4Li04Lih4LiX4Li04LioCivguJrguLjguKPguLLguJMKK+C4muC4uOC4o+C4suC4k+C4l+C4uOC4leC4tOC4ouC4tOC4geC4sgor4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmMCivguJrguLjguKPguLTguKHguJfguLTguKgKK+C4muC4uOC4o+C4tOC4oeC4nuC4o+C4o+C4qeC4sgor4Lia4Li44Lij4Li04Lih4Liq4Li04LiX4LiY4Li0CivguJrguLjguKPguLUKK+C4muC4uOC4o+C4uOC4qQor4Lia4Li44Lij4Li44Lip4LmC4LiX4LipCivguJrguLjguKPguLjguKnguJjguKPguKPguKEKK+C4muC4uOC5gOC4o+C4oOC4ngor4Lia4Li44LmA4Lij4Lig4Lix4LiVCivguJrguLjguYLguKPguJfguLHguYjguIcKK+C4muC4uOC4qeC4geC4owor4Lia4Li44Lip4Lia4LiBCivguJrguLjguKnguJrguIcKK+C4muC4uOC4qeC4muC4seC4mQor4Lia4Li44Lip4Lia4LiyCivguJrguLjguKnguJrguLLguKHguLTguJnguJXguKPguLIKK+C4muC4uOC4qeC4m+C4o+C4suC4hAor4Lia4Li44Lip4Lib4LiwCivguJrguLjguKnguKIKK+C4muC4uOC4qeC4ouC5jAor4Lia4Li44Lip4Lii4LmM4LiZ4LmJ4Liz4LiX4Lit4LiHCivguJrguLjguKnguKPguLLguITguLHguKEKK+C4muC4uOC4q+C4h+C4hwor4Lia4Li44Lir4LiH4Lix4LiZCivguJrguLjguKvguIfguLIKK+C4muC4uOC4q+C4o+C4hwor4Lia4Li44Lir4Lij4Li14LmICivguJrguLjguKvguKPguLXguYjguJ7guKPguLDguKPguLLguKEKK+C4muC4uOC4q+C4peC4seC4mQor4Lia4Li54LmICivguJrguLnguYkKK+C4muC4ueC5igor4Lia4Li54LiK4LiZ4Li14Lii4Liq4LiW4Liy4LiZCivguJrguLnguIrguLIKK+C4muC4ueC4iuC4tOC5guC4lAor4Lia4Li54LiK4Li04LiVCivguJrguLnguJQKK+C4muC4ueC4lOC4uQor4Lia4Li54LijCivguJrguLnguKPguJPguYwKK+C4muC4ueC4o+C4k+C4sAor4Lia4Li54Lij4LieCivguJrguLnguKPguJ7guLIKK+C4muC4ueC4o+C4nuC4suC4iOC4suC4o+C4ouC5jAor4Lia4Li54Lij4Li1CivguYDguJrguYkKK+C5gOC4muC5igor4LmA4Lia4LiE4Lit4LiZCivguYDguJrguYjguIcKK+C5gOC4muC4h+C4geC4suC4peC4sOC4meC4tQor4LmA4Lia4LmK4LiI4Li14LmLCivguYDguJrguI3guIHguLLguJnguLUKK+C5gOC4muC4jeC4iAor4LmA4Lia4LiN4LiI4LiBCivguYDguJrguI3guIjguKHguLLguKgKK+C5gOC4muC4jeC4iOC4sgor4LmA4Lia4LiN4LiI4Liy4LiH4LiE4LmMCivguYDguJrguI3guI3guLIKK+C5gOC4muC4jeC4nuC4suC4lAor4LmA4Lia4LmH4LiUCivguYDguJrguYfguJTguYDguJXguKXguYfguJQKK+C5gOC4muC5h+C4lOC5gOC4quC4o+C5h+C4iAor4LmA4Lia4LiV4LiyCivguYDguJrguJnguIvguLTguJkKK+C5gOC4muC4meC5hOC4i+C4meC5jAor4LmA4Lia4Lij4LiBCivguYDguJrguKPguLTguKXguYDguKXguLXguKLguKEKK+C5gOC4muC4o+C4teC4ouC4mQor4LmA4Lia4LmA4Lij4LmI4LiV4LmMCivguYDguJrguKoKK+C5gOC4muC4quC4muC4reC4pQor4LmA4Lia4LmJ4LitCivguYDguJrguK3guKPguYwKK+C5gOC4muC4reC4o+C5jOC4hOC4teC5gOC4peC4teC4ouC4oQor4LmA4Lia4LmJ4Lit4LmA4Lij4LmI4LitCivguYDguJrguYnguK3guYDguKPguYjguK3guYDguJfguYjguK0KK+C5gOC4muC5ieC4reC5gOC4o+C4tOC5iOC4oQor4LmA4Lia4LmJ4Lit4LmA4Lij4Li04LmI4Lih4LmA4LiX4Li04LmI4LihCivguYDguJrguK3guLAKK+C5gOC4muC4sAor4LmA4Lia4LiyCivguYDguJrguYnguLIKK+C5gOC4muC4suC4o+C4suC4kwor4LmA4Lia4Liy4LiwCivguYDguJrguLTguIEKK+C5gOC4muC4tOC5iOC4hwor4LmA4Lia4Li14LmJ4LiiCivguYDguJrguLXguKLguIEKK+C5gOC4muC4teC5iOC4ouC4hwor4LmA4Lia4Li14Lii4LiUCivguYDguJrguLXguKLguJkKK+C5gOC4muC4teC4ouC4o+C5jAor4LmA4Lia4Li14LmJ4Lii4LinCivguYDguJrguLfguK0KK+C5gOC4muC4t+C5iOC4rQor4LmA4Lia4Li34LmJ4LitCivguYDguJrguLfguYnguK3guIcKK+C5gOC4muC4t+C4reC4mQor4LmB4LiaCivguYHguJrguYkKK+C5geC4muC4gQor4LmB4Lia4LiE4LiX4Li14LmA4Lij4Li14LiiIEUKK+C5geC4muC5iOC4hwor4LmB4Lia4LiH4LiE4LmMCivguYHguJrguJTguKHguLTguJnguJXguLHguJkKK+C5geC4muC4leC5gOC4leC4reC4o+C4teC5iAor4LmB4Lia4LiZCivguYHguJrguJnguYLguIgKK+C5geC4muC4mgor4LmB4Lia4LmH4LiaCivguYHguJrguKPguIEKK+C5geC4muC5gOC4o+C4teC4ouC4oQor4LmB4Lia4Lir4Lil4LiyCivguYHguJrguLAKK+C5geC4muC4sOC5geC4iwor4LmC4LiaCivguYLguJrguYkKK+C5guC4muC5iwor4LmC4Lia4LiBCivguYLguJrguIHguILguKPguJPguLUKK+C5guC4muC4geC4teC5iQor4LmC4Lia4LiK4Li44LiBCivguYLguJrguJTguIEKK+C5guC4muC4lQor4LmC4Lia4LiV4Lix4LmL4LiZCivguYLguJrguJnguLHguKoKK+C5guC4muC5iuC5gOC4muC5igor4LmC4Lia4LiiCivguYLguJrguKPguKHguLXguJkKK+C5guC4muC4o+C4reC4mQor4LmC4Lia4Lij4Liy4LiTCivguYLguJrguKfguYzguKXguLTguYjguIcKK+C5guC4muC4quC4luC5jAor4LmD4LiaCivguYPguJrguYkKK+C5g+C4muC4o+C4sOC4geC4sgor4LmE4Lia4LmI4LmGCivguYTguJrguITguLLguKPguYzguJrguK3guYDguJnguJUKK+C5hOC4muC5gOC4muC4tOC4pQor4LibCivguJvguIEKK+C4m+C4geC4leC4tAor4Lib4LiB4Lij4LiT4LmMCivguJvguIHguKPguJPguLHguKEKK+C4m+C4geC4suC4owor4Lib4LiB4Li04LiT4LiB4LiwCivguJvguIHguLXguKPguJPguLHguKEKK+C4m+C5guC4geC4j+C4tAor4Lib4LiE4Li44LiTCivguJvguIcKK+C4m+C5iOC4hwor4Lib4LiH4Lib4Lix4LiHCivguJvguIrguLLguJrguJTguLUKK+C4m+C4juC4pQor4Lib4LiP4Lix4LiBCivguJvguI/guLTguIHguKPguJPguYwKK+C4m+C4j+C4tOC4geC4o+C4o+C4oQor4Lib4LiP4Li04LiB4Lij4Lij4Lih4Liq4LiH4LiE4Lij4Liy4LihCivguJvguI/guLTguIHguLLguKPguLAKK+C4m+C4j+C4tOC4geC4tOC4o+C4tOC4ouC4sgor4Lib4LiP4Li04LiB4Li54LilCivguJvguI/guLTguITguITguKvguLTguJUKK+C4m+C4j+C4tOC4hOC4oQor4Lib4LiP4Li04LiE4Liy4Lir4LiBCivguJvguI/guLTguIbguLAKK+C4m+C4j+C4tOC4iOC4iOC4quC4oeC4uOC4m+C4muC4suC4lwor4Lib4LiP4Li04LiK4Li14Lin4LiZ4LiwCivguJvguI/guLTguI3guI3guLIKK+C4m+C4j+C4tOC4jeC4suC4kwor4Lib4LiP4Li04LiX4Li04LiZCivguJvguI/guLTguJrguJYKK+C4m+C4j+C4tOC4muC4seC4leC4tAor4Lib4LiP4Li04Lib4LiX4LiyCivguJvguI/guLTguJvguLHguIHguKnguYwKK+C4m+C4j+C4tOC4m+C4seC4mQor4Lib4LiP4Li04Lib4Li44LiI4LiJ4Liy4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguJvguI/guLTguJvguLjguIjguInguLLguKfguLLguJfguLUKK+C4m+C4j+C4tOC4nuC4seC4l+C4mOC5jAor4Lib4LiP4Li04Lie4Liy4LiB4Lii4LmMCivguJvguI/guLTguKDguLLguIQKK+C4m+C4j+C4tOC4oOC4suC4kwor4Lib4LiP4Li04Lig4Liy4LiT4LiB4Lin4Li1CivguJvguI/guLTguKDguLLguJPguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4m+C4j+C4tOC4oOC4suC4k+C5guC4p+C4q+C4suC4owor4Lib4LiP4Li04Lih4LiyCivguJvguI/guLTguKHguLLguIHguKMKK+C4m+C4j+C4tOC4ouC4suC4ogor4Lib4LiP4Li04Lii4Li44LiX4LiY4LmMCivguJvguI/guLTguKPguJ4KK+C4m+C4j+C4tOC4o+C4ueC4mwor4Lib4LiP4Li04LmC4Lil4LihCivguJvguI/guLTguKfguLHguJXguLQKK+C4m+C4j+C4tOC4p+C4suC4lQor4Lib4LiP4Li04Lin4Liy4LiXCivguJvguI/guLTguYDguKfguJgKK+C4m+C4j+C4tOC4quC4meC4mOC4tAor4Lib4LiP4Li04Liq4Lin4LiwCivguJvguI/guLTguKrguLHguIfguILguKPguJPguYwKK+C4m+C4j+C4tOC4quC4seC4meC4luC4suC4owor4Lib4LiP4Li04Liq4Lix4Lih4Lig4Li04LiX4LiyCivguJvguI/guLTguYDguKrguJgKK+C4m+C4kOC4nuC4tQor4Lib4LiQ4LihCivguJvguJDguKHguJTguLjguKrguLTguJUKK+C4m+C4kOC4oeC4nuC4ouC4suC4muC4suC4pQor4Lib4LiQ4Lih4Liq4Lih4LmC4Lie4LiY4Li0CivguJvguJDguKHguLLguKrguLLguJIKK+C4m+C4kOC4p+C4tQor4Lib4LiT4LiVCivguJvguJPguLLguKEKK+C4m+C4k+C4tOC4mOC4suC4mQor4Lib4LiT4Li04LiY4Li0CivguJvguJPguLXguJUKK+C4m+C4lAor4Lib4LiU4LmC4Lib4LmJCivguJvguJTguLTguKfguKPguLHguJTguLIKK+C4m+C4leC4seC4leC4o+C4tQor4Lib4LiV4Li0CivguJvguJXguLTguKLguLHguJUKK+C4m+C4luC4nuC4tQor4Lib4LiW4Lih4Lix4LiHCivguJvguJbguKfguLUKK+C4m+C4l+C4seC4geC4guC4tOC4kwor4Lib4LiX4Lix4LiP4LiQ4Liy4LiZCivguJvguJfguLHguKrguJbguLLguJkKK+C4m+C4l+C4suC4mQor4Lib4LiX4Liy4LiZ4Li44LiB4Lij4LihCivguJvguJfguLXguJsKK+C4m+C4l+C4uOC4oQor4Lib4LiY4Liy4LiZCivguJvguJkKK+C4m+C5iOC4mQor4Lib4LiZ4Lix4LiU4LiU4LiyCivguJvguJnguLjguJcKK+C4m+C4mgor4Lib4Lib4Lix4LiN4LiI4LiwCivguJvguKEKK+C4m+C4o+C4gQor4Lib4Lij4LiB4LiV4Li0CivguJvguKPguIcKK+C4m+C4o+C4lAor4Lib4Lij4LiV4Lii4Lix4LiB4Lip4LmMCivguJvguKPguJXguKLguLLguIQKK+C4m+C4o+C4leC5gOC4ouC4gQor4Lib4Lij4LiX4Lix4LiV4LiV4Li54Lib4LiK4Li14Lin4Li1CivguJvguKPguJkKK+C4m+C4o+C4meC4meC4tOC4muC4seC4leC4tAor4Lib4Lij4LiZ4Lix4LiiCivguJvguKPguJoKK+C4m+C4o+C4m+C4seC4geC4qeC5jAor4Lib4Lij4LmA4Lih4Lir4LiwCivguJvguKPguYLguKXguIEKK+C4m+C4o+C4p+C4lAor4Lib4Lij4Lin4LiZ4LmB4Lib4LijCivguJvguKPguKfguLLguJfguLUKK+C4m+C4o+C4p+C4tOC4quC4seC4ouC4quC4teC4oeC4sgor4Lib4Lij4Lio4Li4CivguJvguKPguKrguLTguJUKK+C4m+C4o+C5i+C4rQor4Lib4Lij4Lit4LiH4LiU4Lit4LiHCivguJvguKPguK3guJQKK+C4m+C4o+C4reC4lOC5hgor4Lib4Lij4Lit4LiXCivguJvguKPguK3guKIKK+C4m+C4o+C4reC4ouC5hgor4Lib4Lij4LiwCivguJvguKPguLDguIHguJoKK+C4m+C4o+C4sOC4geC4pOC4lQor4Lib4Lij4Liw4LiB4Lik4LiV4Li0CivguJvguKPguLDguIHguKUKK+C4m+C4o+C4sOC4geC4p+C4lAor4Lib4Lij4Liw4LiB4Lit4LiaCivguJvguKPguLDguIHguLHguJkKK+C4m+C4o+C4sOC4geC4seC4mgor4Lib4Lij4Liw4LiB4Liy4LiiCivguJvguKPguLDguIHguLLguKMKK+C4m+C4o+C4sOC4geC4suC4qAor4Lib4Lij4Liw4LiB4Liy4Lio4LiBCivguJvguKPguLDguIHguLLguKjguJnguLXguKLguIHguKPguKPguKEKK+C4m+C4o+C4sOC4geC4suC4qOC4meC4teC4ouC4muC4seC4leC4owor4Lib4Lij4Liw4LiB4Liy4Lio4Li04LiVCivguJvguKPguLDguIHguLMKK+C4m+C4o+C4sOC4geC4tOC4lAor4Lib4Lij4Liw4LiB4Li04LiVCivguJvguKPguLDguIHguLXguKPguJPguIEKK+C4m+C4o+C4sOC5gOC4geC4teC4ouC4o+C4k+C4gQor4Lib4Lij4Liw4LmB4LiB4LiBCivguJvguKPguLDguITguJQKK+C4m+C4o+C4sOC4hOC4meC4mOC4o+C4o+C4ngor4Lib4Lij4Liw4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguJvguKPguLDguITguJoKK+C4m+C4o+C4sOC4hOC4reC4hwor4Lib4Lij4Liw4LiE4Lix4Lia4Lib4Lij4Liw4LiE4Lit4LiHCivguJvguKPguLDguITguLHguKXguKDguYwKK+C4m+C4o+C4sOC4hOC4swor4Lib4Lij4Liw4LiE4Liz4LmE4LiB4LmICivguJvguKPguLDguITguLPguJTguLXguITguKfguLLguKIKK+C4m+C4o+C4sOC4hOC4tOC5iOC4mQor4Lib4Lij4Liw4LiE4Li04LmI4LiZ4Lin4Li04LiZ4LiK4LiyCivguJvguKPguLDguITguLjguJMKK+C4m+C4o+C4sOC5gOC4hOC4mQor4Lib4Lij4Liw4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJvguKPguLDguYLguITguJkKK+C4m+C4o+C4sOC5guC4hOC4meC4mOC4o+C4o+C4mgor4Lib4Lij4Liw4LmC4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguJvguKPguLDguYLguITguKEKK+C4m+C4o+C4sOC4iOC4hwor4Lib4Lij4Liw4LiI4LiNCivguJvguKPguLDguIjguJoKK+C4m+C4o+C4sOC4iOC4p+C4mgor4Lib4Lij4Liw4LiI4LmL4Lit4Lib4Lij4Liw4LmB4LiI4LmLCivguJvguKPguLDguIjguLHguIHguKnguYwKK+C4m+C4o+C4sOC4iOC4seC4jQor4Lib4Lij4Liw4LiI4Lix4LiZCivguJvguKPguLDguIjguLLguIEKK+C4m+C4o+C4sOC4iOC4suC4hAor4Lib4Lij4Liw4LiI4Liy4LiZCivguJvguKPguLDguIjguLMKK+C4m+C4o+C4sOC4iOC4tOC4oQor4Lib4Lij4Liw4LiI4Li04LmJ4Lih4Lib4Lij4Liw4LiI4LmI4Lit4LiHCivguJvguKPguLDguIjguLTguYnguKHguJvguKPguLDguYDguIjguYvguK0KK+C4m+C4o+C4sOC4iOC4uAor4Lib4Lij4Liw4LiI4Li44LiE4Lih4LiZ4LmMCivguJvguKPguLDguIjguLjguJrguLHguJkKK+C4m+C4o+C4sOC5gOC4iOC4gQor4Lib4Lij4Liw4LmA4LiI4Li04LiUCivguJvguKPguLDguYDguIjguLXguKLguJQKK+C4m+C4o+C4sOC5geC4iAor4Lib4Lij4Liw4LiK4LiUCivguJvguKPguLDguIrguJkKK+C4m+C4o+C4sOC4iuC4p+C4oQor4Lib4Lij4Liw4LiK4Lin4LijCivguJvguKPguLDguIrguLHguJkKK+C4m+C4o+C4sOC4iuC4sgor4Lib4Lij4Liw4LiK4Li04LiUCivguJvguKPguLDguIrguLUKK+C4m+C4o+C4sOC4iuC4uOC4oQor4Lib4Lij4Liw4LmA4LiK4Li04LiNCivguJvguKPguLDguJPguJUKK+C4m+C4o+C4sOC4k+C4oQor4Lib4Lij4Liw4LiT4Liy4LihCivguJvguKPguLDguJPguLTguJjguLLguJkKK+C4m+C4o+C4sOC4k+C4tOC4mOC4tAor4Lib4Lij4Liw4LiT4Li14LiVCivguJvguKPguLDguJPguLjguJcKK+C4m+C4o+C4sOC4lOC4hwor4Lib4Lij4Liw4LiU4LiH4LmB4LiU4LiHCivguJvguKPguLDguJTguJkKK+C4m+C4o+C4sOC4lOC4p+C4mQor4Lib4Lij4Liw4LiU4Lit4LiZCivguJvguKPguLDguJTguK3guKIKK+C4m+C4o+C4sOC4lOC4seC4gQor4Lib4Lij4Liw4LiU4Lix4LiHCivguJvguKPguLDguJTguLHguJoKK+C4m+C4o+C4sOC4lOC4sgor4Lib4Lij4Liw4LiU4Liy4LiBCivguJvguKPguLDguJTguLLguJsKK+C4m+C4o+C4sOC4lOC4suC4qQor4Lib4Lij4Liw4LiU4Li04LiK4LiN4LiyCivguJvguKPguLDguJTguLTguJTguJvguKPguLDguJTguK3guKIKK+C4m+C4o+C4sOC4lOC4tOC4l+C4tOC4mQor4Lib4Lij4Liw4LiU4Li04Lij4LieCivguJvguKPguLDguJTguLTguKnguJDguYwKK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC4suC4mQor4Lib4Lij4Liw4LiU4Li4CivguJvguKPguLDguJTguLjguIcKK+C4m+C4o+C4sOC4lOC4uOC4iAor4Lib4Lij4Liw4LiU4Li54LmICivguJvguKPguLDguYDguJQKK+C4m+C4o+C4sOC5gOC4lOC5h+C4mQor4Lib4Lij4Liw4LmA4LiU4Lii4LiBCivguJvguKPguLDguYDguJTguLTguKEKK+C4m+C4o+C4sOC5gOC4lOC4teC4ouC4hwor4Lib4Lij4Liw4LmA4LiU4Li14LmL4Lii4LinCivguJvguKPguLDguYHguJTguIcKK+C4m+C4o+C4sOC5geC4lOC4sAor4Lib4Lij4Liw4LmC4LiU4LiiCivguJvguKPguLDguJXguIcKK+C4m+C4o+C4sOC4leC4ouC4suC4hAor4Lib4Lij4Liw4LiV4Lix4LiBCivguJvguKPguLDguJXguLLguJvguLAKK+C4m+C4o+C4sOC4leC4tOC4iuC4jeC4sgor4Lib4Lij4Liw4LiV4Li04LiN4Liy4LiTCivguJvguKPguLDguJXguLTguJfguLTguJkKK+C4m+C4o+C4sOC4leC4tOC4oeC4suC4geC4o+C4o+C4oQor4Lib4Lij4Liw4LiV4Li04Lij4LieCivguJvguKPguLDguJXguLTguKjguKPguLHguJ4KK+C4m+C4o+C4sOC4leC4uQor4Lib4Lij4Liw4LiW4LihCivguJvguKPguLDguJbguKHguIjguLTguJnguJTguLIKK+C4m+C4o+C4sOC4l+C4oQor4Lib4Lij4Liw4LiX4Lii4LiUCivguJvguKPguLDguJfguYnguKfguIcKK+C4m+C4o+C4sOC4l+C4p+C4mQor4Lib4Lij4Liw4LiX4Lix4LiB4Lip4LmMCivguJvguKPguLDguJfguLHguIHguKnguLTguJMKK+C4m+C4o+C4sOC4l+C4seC4hwor4Lib4Lij4Liw4LiX4Lix4LiUCivguJvguKPguLDguJfguLHguJoKK+C4m+C4o+C4sOC4l+C5iOC4sgor4Lib4Lij4Liw4LiX4Liy4LiB4Lil4LmJ4Lit4LiHCivguJvguKPguLDguJfguLLguJkKK+C4m+C4o+C4sOC4l+C4suC4ogor4Lib4Lij4Liw4LiX4Liy4Lio4Li1CivguJvguKPguLDguJfguLTguJkKK+C4m+C4o+C4sOC4l+C4tOC5iOC4mQor4Lib4Lij4Liw4LiX4Li14LibCivguJvguKPguLDguJfguLjguIEKK+C4m+C4o+C4sOC4l+C4uOC4kAor4Lib4Lij4Liw4LiX4Li44LiQ4LiI4Li04LiVCivguJvguKPguLDguJfguLjguJkKK+C4m+C4o+C4sOC4l+C4uOC4oeC4o+C4suC4hAor4Lib4Lij4Liw4LiX4Li44LipCivguJvguKPguLDguJfguLjguKnguI/guYwKK+C4m+C4o+C4sOC4l+C4uOC4qeC4j+C4iOC4tOC4lQor4Lib4Lij4Liw4LiX4Li44Lip4LiQ4LmMCivguJvguKPguLDguJfguLjguKnguJDguIjguLTguJUKK+C4m+C4o+C4sOC5gOC4l+C4qAor4Lib4Lij4Liw4LmA4LiX4LiyCivguJvguKPguLDguYDguJfguYnguLIKK+C4m+C4o+C4sOC5gOC4l+C4teC4ouC4lAor4Lib4Lij4Liw4LmA4LiX4Li14Lii4LiaCivguJvguKPguLDguYDguJfguLfguK3guIcKK+C4m+C4o+C4sOC4mOC4suC4mQor4Lib4Lij4Liw4LiY4Liy4LiZ4Liy4LiY4Li04Lia4LiU4Li1CivguJvguKPguLDguJnguKEKK+C4m+C4o+C4sOC4meC4rQor4Lib4Lij4Liw4LiZ4Lit4LihCivguJvguKPguLDguJnguLHguIcKK+C4m+C4o+C4sOC4meC4seC4m+C4lOC4sgor4Lib4Lij4Liw4LiZ4Li14LmJCivguJvguKPguLDguJnguLXguJvguKPguLDguJnguK3guKEKK+C4m+C4o+C4sOC4muC4seC4lAor4Lib4Lij4Liw4Lia4Liy4LiVCivguJvguKPguLDguJvguKPguLLguJkKK+C4m+C4o+C4sOC4m+C4o+C4suC4ogor4Lib4Lij4Liw4Lib4LiyCivguJvguKPguLDguYDguJvguKPguLXguYnguKLguIcKK+C4m+C4o+C4sOC5gOC4m+C4o+C4teC5ieC4ouC4pwor4Lib4Lij4Liw4LmB4Lib4Lij4LmJ4LiZCivguJvguKPguLDguJ7guIjguJnguYwKK+C4m+C4o+C4sOC4nuC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Lij4LihCivguJvguKPguLDguJ7guKTguJXguLQKK+C4m+C4o+C4sOC4nuC4pOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Lie4Lix4LiUCivguJvguKPguLDguJ7guLHguJfguJjguYwKK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Liy4LiVCivguJvguKPguLDguJ7guLLguKjguKHguKvguKPguJPguJ4KK+C4m+C4o+C4sOC4nuC4suC4qgor4Lib4Lij4Liw4Lie4Liy4LisCivguJvguKPguLDguJ7guLTguJMKK+C4m+C4o+C4sOC4nuC4tOC4oeC4nuC5jOC4m+C4o+C4sOC4nuC4suC4ogor4Lib4Lij4Liw4Lie4Li44LiX4LiY4LmMCivguJvguKPguLDguYDguJ7guJPguLUKK+C4m+C4o+C4sOC5gOC4nuC5ieC4rQor4Lib4Lij4Liw4LmB4Lie4Lij4LmI4LiH4Lib4Lij4Liw4LmB4Lie4Lij4LinCivguJvguKPguLDguYLguJ7guJgKK+C4m+C4o+C4sOC5hOC4ngor4Lib4Lij4Liw4LmE4Lie4LijCivguJvguKPguLDguKDguJ4KK+C4m+C4o+C4sOC4oOC4seC4quC4quC4owor4Lib4Lij4Liw4Lig4LiyCivguJvguKPguLDguKDguLLguJ4KK+C4m+C4o+C4sOC4oOC4suC4qQor4Lib4Lij4Liw4Lig4Liy4LiqCivguJvguKPguLDguKDguLnguKjguLHguIHguJTguLTguYwKK+C4m+C4o+C4sOC5gOC4oOC4lwor4Lib4Lij4Liw4Lih4LiHCivguJvguKPguLDguKHguKfguI0KK+C4m+C4o+C4sOC4oeC4p+C4pQor4Lib4Lij4Liw4Lih4Lix4LiV4LiV4LiwCivguJvguKPguLDguKHguLLguJMKK+C4m+C4o+C4sOC4oeC4suC4lwor4Lib4Lij4Liw4Lih4Li44LiCCivguJvguKPguLDguKHguLjguJcKK+C4m+C4o+C4sOC4oeC4ueC4pQor4Lib4Lij4Liw4LmA4Lih4Li04LiZCivguJvguKPguLDguYLguKHguIcKK+C4m+C4o+C4sOC5guC4oeC4l+C4ouC5jAor4Lib4Lij4Liw4Lii4LiH4LiE4LmMCivguJvguKPguLDguKLguLjguIHguJXguYwKK+C4m+C4o+C4sOC4ouC4uOC4l+C4mOC5jAor4Lib4Lij4Liw4Lii4Li44LijCivguJvguKPguLDguKLguLnguKMKK+C4m+C4o+C4sOC5guC4ouC4hAor4Lib4Lij4Liw4LmC4Lii4LiE4Liq4Lix4Lih4Lib4LiX4LiyCivguJvguKPguLDguYLguKLguIrguJnguYwKK+C4m+C4o+C4sOC5guC4o+C4q+C4tOC4lQor4Lib4Lij4Liw4Lil4Lih4Lie4LmMCivguJvguKPguLDguKXguK3guIcKK+C4m+C4o+C4sOC4peC4seC4ogor4Lib4Lij4Liw4Lil4Liy4LiVCivguJvguKPguLDguKXguLLguKIKK+C4m+C4o+C4sOC4peC4tuC4hwor4Lib4Lij4Liw4Lil4Li4CivguJvguKPguLDguKXguLjguIcKK+C4m+C4o+C4sOC5gOC4peC5iOC4q+C5jAor4Lib4Lij4Liw4LmA4Lil4LmJ4Liy4Lib4Lij4Liw4LmC4Lil4LihCivguJvguKPguLDguYLguKXguJvguKPguLDguYDguKUKK+C4m+C4o+C4sOC5guC4peC4oQor4Lib4Lij4Liw4Lin4Lij4Lij4LiVCivguJvguKPguLDguKfguKPguKPguJXguJnguYwKK+C4m+C4o+C4sOC4p+C4seC4leC4tAor4Lib4Lij4Liw4Lin4Liy4LiVCivguJvguKPguLDguKfguLLguJfguLUKK+C4m+C4o+C4sOC4p+C4suC4pQor4Lib4Lij4Liw4Lin4Liy4Lil4Lib4Lix4LiX4Lih4LmMCivguJvguKPguLDguKfguLLguKXguJzguKUKK+C4m+C4o+C4sOC4p+C4suC4peC4p+C4o+C4o+C4kwor4Lib4Lij4Liw4Lin4Liy4LiqCivguJvguKPguLDguKfguLTguIcKK+C4m+C4o+C4sOC4p+C4tOC4igor4Lib4Lij4Liw4Lin4Li04LiV4LijCivguJvguKPguLDguKfguLXguJMKK+C4m+C4o+C4sOC5gOC4p+C4k+C4tQor4Lib4Lij4Liw4LmA4Lin4Lib4Lij4Liw4Lin4Li04LiHCivguJvguKPguLDguYDguKfguKgKK+C4m+C4o+C4sOC5gOC4p+C4qOC4meC5jAor4Lib4Lij4Liw4Lio4LihCivguJvguKPguLDguKjguLLguKrguJnguYwKK+C4m+C4o+C4sOC4qOC4uAor4Lib4Lij4Liw4Liq4LiBCivguJvguKPguLDguKrguIfguITguYwKK+C4m+C4o+C4sOC4quC4mgor4Lib4Lij4Liw4Liq4LieCivguJvguKPguLDguKrguKEKK+C4m+C4o+C4sOC4quC4sAor4Lib4Lij4Liw4Liq4Lix4LiBCivguJvguKPguLDguKrguLHguJnguJnguLLguIHguLLguKMKK+C4m+C4o+C4sOC4quC4seC4ouC4q+C5jAor4Lib4Lij4Liw4Liq4LiyCivguJvguKPguLDguKrguLLguJcKK+C4m+C4o+C4sOC4quC4suC4l+C4geC4suC4owor4Lib4Lij4Liw4Liq4Liy4LiX4Lij4Li54LibCivguJvguKPguLDguKrguLLguJjguJnguYwKK+C4m+C4o+C4sOC4quC4suC4mQor4Lib4Lij4Liw4Liq4Liy4LijCivguJvguKPguLDguKrguLTguJfguJjguLTguYwKK+C4m+C4o+C4sOC4quC4teC4m+C4o+C4sOC4quC4sgor4Lib4Lij4Liw4Liq4Li54LiVCivguJvguKPguLDguKrguLnguJXguLQKK+C4m+C4o+C4sOC5gOC4quC4muC4seC4meC4reC4suC4geC4hwor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguJvguKPguLDguYHguKrguJrguLHguJkKK+C4m+C4o+C4sOC4q+C4meC4tuC5iOC4hwor4Lib4Lij4Liw4Lir4Lih4Lix4LiZCivguJvguKPguLDguKvguKHguYjguLIKK+C4m+C4o+C4sOC4q+C4ouC4seC4lAor4Lib4Lij4Liw4Lir4Lij4LiT4LmMCivguJvguKPguLDguKvguKXguLLguJQKK+C4m+C4o+C4sOC4q+C4peC4suC4lwor4Lib4Lij4Liw4Lir4Lil4LmI4LizCivguJvguKPguLDguKvguKXguLTguYjguKEKK+C4m+C4o+C4sOC4q+C4p+C4seC4lAor4Lib4Lij4Liw4Lir4Lin4Lix4LmI4LiZCivguJvguKPguLDguKvguKfguYjguLIKK+C4m+C4o+C4sOC4q+C4seC4lQor4Lib4Lij4Liw4Lir4Liy4LiTCivguJvguKPguLDguKvguLLguKMKK+C4m+C4o+C4sOC4q+C4suC4qgor4Lib4Lij4Liw4LmA4Lir4LilCivguJvguKPguLDguYDguKvguKoKK+C4m+C4o+C4sOC5gOC4q+C4teC4ouC4pQor4Lib4Lij4Liw4LmE4Lir4Lih4Liq4Li44Lir4Lij4Li1CivguJvguKPguLDguK3guJoKK+C4m+C4o+C4sOC4reC4owor4Lib4Lij4Liw4Lit4Li24LiHCivguJvguKPguLDguK3guLjguIEKK+C4m+C4o+C4sOC5gOC4reC4teC4ouC4hwor4Lib4Lij4Liw4LmB4Lit4LiBCivguJvguKPguLDguK7guLLguKEKK+C4m+C4o+C4seC4gQor4Lib4Lij4Lix4LiB4Lib4Lij4LizCivguJvguKPguLHguIHguKHguLAKK+C4m+C4o+C4seC4geC4q+C4seC4geC4nuC4seC4hwor4Lib4Lij4Lix4LiHCivguJvguKPguLHguIrguI3guLIKK+C4m+C4o+C4seC4lAor4Lib4Lij4Lix4LiV4LiW4LiI4Lij4Li04Lii4LiyCivguJvguKPguLHguJXguKLguJnguJXguYwKK+C4m+C4o+C4seC4leC4ouC4seC4geC4qeC5jAor4Lib4Lij4Lix4LiV4Lii4Lix4LiZ4LiV4LmMCivguJvguKPguLHguJXguKLguLHguKIKK+C4m+C4o+C4seC4leC4ouC4uOC4leC4muC4seC4mQor4Lib4Lij4Lix4LiV4Lii4Li44Lia4Lix4LiZCivguJvguKPguLHguJXguKLguLnguKkKK+C4m+C4o+C4seC4leC4ouC4ueC4q+C5jAor4Lib4Lij4Lix4LiV4LmA4Lii4LiBCivguJvguKPguLHguJkKK+C4m+C4o+C4seC5iOC4mQor4Lib4Lij4Lix4LmJ4LiZCivguJvguKPguLHguJoKK+C4m+C4o+C4seC4m+C4p+C4suC4lwor4Lib4Lij4Lix4Lih4Lib4Lij4LiyCivguJvguKPguLHguKHguKHguLjguILguLIKK+C4m+C4o+C4seC4qOC4iOC4tOC4oQor4Lib4Lij4Lix4Lio4LiZ4LiyCivguJvguKPguLHguKjguJnguLUKK+C4m+C4o+C4seC4qOC4p+C5jAor4Lib4Lij4LmI4LiyCivguJvguKPguLLguIHguI8KK+C4m+C4o+C4suC4geC4o+C4oQor4Lib4Lij4Liy4LiB4Lik4LiVCivguJvguKPguLLguIHguLLguKMKK+C4m+C4o+C4suC4hOC4oOC4suC4owor4Lib4Lij4Liy4LiE4Liy4LijCivguJvguKPguLLguIcKK+C4m+C4o+C4suC4h+C4hOC5jAor4Lib4Lij4Liy4LiH4LiE4LiT4LiwCivguJvguKPguLLguIjguLXguJkKK+C4m+C4o+C4suC4iuC4jeC5jAor4Lib4Lij4Liy4LiK4LiN4LiyCivguJvguKPguLLguIrguLHguKIKK+C4m+C4o+C4suC4iuC4suC4m+C4seC4leC4ouC4p+C4tOC4p+C4suC4q+C4sAor4Lib4Lij4Liy4LiK4Li04LiVCivguJvguKPguLLguJMKK+C4m+C4o+C4suC4k+C4tQor4Lib4Lij4Liy4LiUCivguJvguKPguLLguJXguLTguKvguLLguKPguKLguYwKK+C4m+C4o+C4suC4l+C4uOC4geC4o+C4sgor4Lib4Lij4Liy4LiZCivguJvguKPguLLguJnguLUKK+C4m+C4o+C4suC4mgor4Lib4Lij4Liy4Lia4LiU4Liy4Lig4Li04LmA4Lip4LiBCivguJvguKPguLLguJvguJXguYwKK+C4m+C4o+C4suC4oOC4ngor4Lib4Lij4Liy4LihCivguJvguKPguLLguKHguLLguKoKK+C4m+C4o+C4suC5guC4oeC4igor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMCivguJvguKPguLLguKIKK+C4m+C4o+C4suC4o+C4luC4meC4sgor4Lib4Lij4Liy4Lij4LigCivguJvguKPguLLguKPguKHguKDguYwKK+C4m+C4o+C4suC4qAor4Lib4Lij4Liy4Lio4LiI4Liy4LiBCivguJvguKPguLLguKjguLHguKIKK+C4m+C4o+C4suC4qeC4k+C4tQor4Lib4Lij4Liy4Lip4Liy4LiTCivguJvguKPguLLguKrguLHguKIKK+C4m+C4o+C4suC4quC4suC4lwor4Lib4Lij4LizCivguJvguKPguLQKK+C4m+C4o+C4tOC4gQor4Lib4Lij4Li04LiB4LiC4Liy4LijCivguJvguKPguLTguIHguKPguKPguKEKK+C4m+C4o+C4tOC4geC4seC4mwor4Lib4Lij4Li04LiC4LiyCivguJvguKPguLTguITguJPguKvguYwKK+C4m+C4o+C4tOC4hgor4Lib4Lij4Li04LiI4Liy4LiECivguJvguKPguLTguIjguLLguKPguLTguIHguLIKK+C4m+C4o+C4tOC5gOC4ieC4lwor4Lib4Lij4Li04LiK4LiZCivguJvguKPguLTguIvguLbguKEKK+C4m+C4o+C4tOC4jeC4jeC4sgor4Lib4Lij4Li04LiT4Liy4LihCivguJvguKPguLTguJPguLLguKLguIEKK+C4m+C4o+C4tOC4leC4leC4sAor4Lib4Lij4Li04LiV4LmC4LiV4LiX4LiBCivguJvguKPguLTguJXguKLguLLguIQKK+C4m+C4o+C4tOC4leC4owor4Lib4Lij4Li04LiX4Lij4Lij4Lio4LiZ4LmMCivguJvguKPguLTguJfguLHguKLguKvguLHguITguITguLUKK+C4m+C4o+C4tOC4l+C4seC4qOC4meC5jAor4Lib4Lij4Li04LmA4LiX4LieCivguJvguKPguLTguYDguJfguJ7guJnguYwKK+C4m+C4o+C4tOC5gOC4l+C4p+C4meC4sAor4Lib4Lij4Li04LmA4LiX4Lin4LiwCivguJvguKPguLTguJnguLTguJ7guJ7guLLguJkKK+C4m+C4o+C4tOC4mgor4Lib4Lij4Li04Lib4Lix4LiZ4LiW4LmMCivguJvguKPguLTguJ7guJnguJjguYwKK+C4m+C4o+C4tOC4nuC4seC4leC4owor4Lib4Lij4Li04Lie4Lix4LiZ4LiY4LmMCivguJvguKPguLTguJ7guLLguIrguIEKK+C4m+C4o+C4tOC4oOC4seC4k+C4keC5jAor4Lib4Lij4Li04Lig4Liy4LipCivguJvguKPguLTguKDguLLguKnguJPguYwKK+C4m+C4o+C4tOC4oOC4uOC4jeC4iuC5jAor4Lib4Lij4Li04Lig4Li54Lih4Li0CivguJvguKPguLTguYLguKDguIQKK+C4m+C4o+C4tOC5iOC4oQor4Lib4Lij4Li04Lih4LiT4LiR4LilCivguJvguKPguLTguKHguLHguJcKK+C4m+C4o+C4tOC4oeC4suC4kwor4Lib4Lij4Li04Lih4Liy4LiV4LijCivguJvguKPguLTguKLguLHguJXguLQKK+C4m+C4o+C4tOC4ouC4seC4leC4tOC4mOC4o+C4o+C4oQor4Lib4Lij4Li04Lii4Liy4LiiCivguJvguKPguLTguYDguKLguKgKK+C4m+C4o+C4tOC5guC4ouC4quC4suC4mQor4Lib4Lij4Li04Lin4Lij4Lij4LiVCivguJvguKPguLTguKfguLHguJXguKMKK+C4m+C4o+C4tOC4p+C4suC4owor4Lib4Lij4Li04Lin4Liy4LiqCivguJvguKPguLTguKfguLTguJXguIEKK+C4m+C4o+C4tOC5gOC4p+C4kwor4Lib4Lij4Li04Lio4LiZ4LiyCivguJvguKPguLTguKnguIHguLLguKMKK+C4m+C4o+C4tOC4qeC4seC4lwor4Lib4Lij4Li04Liq4Lix4LiN4LiN4Li5CivguJvguKPguLTguKrguLjguJfguJjguLQKK+C4m+C4o+C4tOC4q+C4suC4mQor4Lib4Lij4Li04Lir4Liy4LijCivguJvguKPguLTguKvguLLguKoKK+C4m+C4o+C4teC5iAor4Lib4Lij4Li14LiK4LiN4LiyCivguJvguKPguLXguIrguLIKK+C4m+C4o+C4teC5iuC4lAor4Lib4Lij4Li14LiU4LiyCivguJvguKPguLXguJTguLQKK+C4m+C4o+C4teC4lOC4tOC5jAor4Lib4Lij4Li14LiU4Li1CivguJvguKPguLXguJXguLQKK+C4m+C4o+C4teC4ogor4Lib4Lij4Li14Lii4LiyCivguJvguKPguLbguIEKK+C4m+C4o+C4tuC4geC4qeC4sgor4Lib4Lij4Li24LiHCivguJvguKPguLfguK0KK+C4m+C4o+C4t+C5i+C4rQor4Lib4Lij4Li4CivguJvguKPguLjguIcKK+C4m+C4o+C4uQor4Lib4Lij4Li54LmLCivguJvguKPguLnguJQKK+C4m+C4o+C4ueC5iuC4nwor4Lib4Lik4LiH4LiE4LieCivguJvguKTguIjguInguLIKK+C4m+C4pOC4qeC4juC4suC4h+C4hOC5jAor4Lib4Lik4Lip4LiQCivguJvguKTguKnguJPguYwKK+C4m+C4peC4gQor4Lib4Lil4LiB4LmA4Lib4Lil4Li14LmJ4LiiCivguJvguKXguIcKK+C4m+C4peC5iOC4hwor4Lib4Lil4LiUCivguJvguKXguYnguJkKK+C4m+C4peC4p+C4gQor4Lib4Lil4Lit4LiBCivguJvguKXguYjguK3guIcKK+C4m+C4peC5ieC4reC4hwor4Lib4Lil4Lit4LiUCivguJvguKXguYnguK3guJkKK+C4m+C4peC4reC4mgor4Lib4Lil4Lit4LihCivguJvguKXguYjguK3guKIKK+C4m+C4peC4sAor4Lib4Lil4Lix4LiBCivguJvguKXguLHguYrguIEKK+C4m+C4peC4seC5iuC4geC5hOC4nwor4Lib4Lil4Lix4LiHCivguJvguKXguLHguYjguIcKK+C4m+C4peC4seC4lAor4Lib4Lil4Lix4LiU4LiC4Li04LiBCivguJvguKXguLIKK+C4m+C4peC4suC4gQor4Lib4Lil4Liy4LiU4Liy4LinCivguJvguKXguLLguJUKK+C4m+C4peC4suC4mgor4Lib4Lil4Liy4Lid4LiyCivguJvguKXguLLguKIKK+C4m+C4peC4suC4ouC4meC4suC4geC4suC4owor4Lib4Lil4Liy4LmC4Lil4Lih4LiyCivguJvguKXguLLguKfguLLguKwKK+C4m+C4peC4suC4quC5gOC4leC4reC4o+C5jAor4Lib4Lil4Liy4Liq4LiZ4Liy4LiB4Liy4LijCivguJvguKXguLLguKvguKHguLbguIEKK+C4m+C4peC5ieC4swor4Lib4Lil4LmJ4Liz4Lib4Lil4Li44LiBCivguJvguKXguLTguIcKK+C4m+C4peC4tOC4lAor4Lib4Lil4Li04LmJ4LiZCivguJvguKXguLTguYLguJ7guJgKK+C4m+C4peC4tOC4oQor4Lib4Lil4Li04LmI4LihCivguJvguKXguLTguKcKK+C4m+C4peC4tQor4Lib4Lil4Li14LiBCivguJvguKXguLfguYnguKEKK+C4m+C4peC4uOC4gQor4Lib4Lil4Li54LiBCivguJvguKfguIHguYDguJvguLXguKLguIEKK+C4m+C4p+C4hwor4Lib4LmI4Lin4LiHCivguJvguKfguJQKK+C4m+C5iOC4p+C4mQor4Lib4LmJ4Lin4LiZCivguJvguYnguKfguJnguYDguJvguLXguYnguKLguJkKK+C4m+C5iOC4p+C4ogor4Lib4Lin4Lix4LiV4LiZ4LmMCivguJvguKfguLHguJXguKLguLLguIHguLLguKMKK+C4m+C4p+C4suC4lQor4Lib4Lin4Liy4Lij4LiT4LiyCivguJvguKfguLLguKUKK+C4m+C4p+C4suC4qgor4Lib4Lin4Liy4LisCivguJvguKfguLTguIoKK+C4m+C4p+C4tOC4leC4owor4Lib4Lin4Li04LiYCivguJvguKfguLTguYDguKfguIEKK+C4m+C4p+C4teC4kwor4Lib4Lin4Li44LiV4Li0CivguJvguYDguKfguJPguLUKK+C4m+C5gOC4p+C4qgor4Lib4LmA4Lin4Liq4LiZ4LmMCivguJvguKjguLgKK+C4m+C4quC4ngor4Lib4Liq4Lix4LiZ4LiZ4LiwCivguJvguKrguLHguKLguKvguLAKK+C4m+C4quC4suC4lwor4Lib4Liq4Liy4LiZCivguJvguKrguLLguKrguJnguYwKK+C4m+C4quC4uAor4Lib4Liq4Li44LiVCivguJvguKrguLnguJXguLQKK+C4m+C4q+C4seC4h+C4qgor4Lib4Lir4Lix4LiH4Liq4LiZCivguJvguKvguLLguJkKK+C4m+C4q+C4suC4owor4Lib4Lir4Liy4LiqCivguJvguK0KK+C4m+C5ieC4rQor4Lib4LmL4LitCivguJvguK3guIEKK+C4m+C4reC4hwor4Lib4LmI4Lit4LiHCivguJvguYnguK3guIcKK+C4m+C4reC4lAor4Lib4Lit4LiZCivguJvguYnguK3guJkKK+C4m+C4reC4meC5hgor4Lib4Lit4LiZ4LiU4LmMCivguJvguK3guYDguJnguLLguLAKK+C4m+C4reC4mgor4Lib4Lit4LihCivguJvguYnguK3guKEKK+C4m+C5i+C4reC4oQor4Lib4Lit4LiiCivguJvguYnguK3guKIKK+C4m+C4sAor4Lib4Liw4LiB4LiZCivguJvguLDguIHguLHguIcKK+C4m+C4sOC4geC4suC4m+C4sOC4geC4seC4hwor4Lib4Liw4LiB4Liy4Lij4Lix4LiHCivguJvguLDguIHguLMKK+C4m+C4sOC4guC4suC4pwor4Lib4Liw4LiH4Lix4Lia4Lib4Liw4LiH4LmI4Lit4LiZCivguJvguLDguJXguLLguJnguLUKK+C4m+C4sOC4leC4suC4m+C4sgor4Lib4Liw4LiV4Liy4Lij4Liw4LiB4Liy4Lir4Lil4LiyCivguJvguLDguJXguLTguJTguJvguLDguJXguYjguK0KK+C4m+C4sOC4leC4tOC4ouC4suC4mQor4Lib4Liw4LmA4LiV4LiwCivguJvguLDguJfguLAKK+C4m+C4sOC4l+C4sOC4m+C4sOC4l+C4seC4hwor4Lib4Liw4LiX4Li4CivguJvguLDguJfguLjguJkKK+C4m+C4sOC4muC4uOC4gQor4Lib4Liw4Lib4LiZCivguJvguLDguKHguIcKK+C4m+C4sOC4o+C4suC4peC4tQor4Lib4Liw4Lij4LizCivguJvguLDguKXguK3guKEKK+C4m+C4sOC5gOC4peC4hwor4Lib4Liw4LmB4Lil4LmI4LihCivguJvguLDguYHguKXguYjguKHguYYKK+C4m+C4sOC5guC4peC4hwor4Lib4Liw4Lin4Liw4Lir4Lil4LizCivguJvguLDguKfguLDguKvguKXguLTguYjguKEKK+C4m+C4sOC5gOC4quC4q+C4o+C4seC4meC4reC4suC4geC4hwor4Lib4Liw4Lir4LiH4Lix4LiaCivguJvguLDguKvguIfguLHguJrguYYKK+C4m+C4sOC4q+C4meC4seC4mQor4Lib4Liw4Lir4Lih4Lix4LiZ4Lit4Liy4Lir4Lii4Li1CivguJvguLDguKvguKXguLTguYjguKEKK+C4m+C4sOC4q+C4seC4hwor4Lib4Liw4LmA4Lir4Lil4Liy4LiwCivguJvguLDguYDguKvguKXguLLguLDguJvguLDguYHguKvguKXguLAKK+C4m+C4seC4gQor4Lib4Lix4LiB4LiC4LmMCivguJvguLHguIHguYDguJvguYnguLIKK+C4m+C4seC4geC4qeC5jAor4Lib4Lix4LiB4Lip4LiyCivguJvguLHguIHguKnguLLguKrguKfguKPguKPguITguYwKK+C4m+C4seC4geC4qeC4tOC4mQor4Lib4Lix4LiB4Lip4Li04Lia4LiU4Li1CivguJvguLHguIHguKnguLTguKHguLLguKPguIQKK+C4m+C4seC4geC4qeC4tOC4o+C4suC4igor4Lib4Lix4LiB4Lip4Li04Liq4Li04LiH4Lir4LmMCivguJvguLHguIHguKnguLUKK+C4m+C4seC4hOC4q+C4sAor4Lib4Lix4LiHCivguJvguLHguYjguIcKK+C4m+C4seC4h+C4quC4uOC5jAor4Lib4Lix4LiH4Liq4Li44LiB4Li44LilCivguJvguLHguIjguIjguLHguJXguJXguLAKK+C4m+C4seC4iOC4iOC4seC4ogor4Lib4Lix4LiI4LiI4Liy4Lih4Li04LiV4LijCivguJvguLHguIjguIjguLjguITguKHguJnguYwKK+C4m+C4seC4iOC4iOC4uOC4l+C4mOC4o+C4k+C5jAor4Lib4Lix4LiI4LiI4Li44Lia4Lix4LiZCivguJvguLHguIjguIjguLnguKoKK+C4m+C4seC4iOC4iOC4ueC4q+C4sAor4Lib4Lix4LiI4LmA4LiI4LiBCivguJvguLHguIjguYDguIjguIHguIrguJkKK+C4m+C4seC4iOC5gOC4iOC4geC4muC4uOC4hOC4hOC4pQor4Lib4Lix4LiI4LmA4LiI4LiB4Lie4Li44LiX4LiY4LiwCivguJvguLHguIjguYDguIjguIHguYLguJ7guJjguLQKK+C4m+C4seC4iOC5gOC4iOC4geC4quC4oeC4suC4l+C4suC4mQor4Lib4Lix4LiI4LmC4LiI4Lib4LiB4Liy4Lij4LiB4Li04LiICivguJvguLHguIjguInguLIKK+C4m+C4seC4iOC4ieC4tOC4oQor4Lib4Lix4LiI4LiW4Lij4LiT4LmMCivguJvguLHguIjguJnguLbguIEKK+C4m+C4seC4iOC4ouC4suC4geC4suC4owor4Lib4Lix4LiI4LmA4Lin4LiB4LiC4LiT4LmMCivguJvguLHguIrguIrguKMKK+C4m+C4seC4iuC4iuC4uOC4mQor4Lib4Lix4LiN4LiI4LiBCivguJvguLHguI3guIjguKEKK+C4m+C4seC4jeC4iOC4p+C4teC4quC4leC4tAor4Lib4Lix4LiN4LiN4Lix4LiV4Li0CivguJvguLHguI3guI3guLIKK+C4m+C4seC4jeC4q+C4sgor4Lib4Lix4LiPCivguJvguLHguI/guJnguLAKK+C4m+C4seC4kOC4ouC4suC4p+C4seC4lQor4Lib4Lix4LiT4LiR4Lij4Lir4Lix4LiV4LiW4Li1CivguJvguLHguJPguJHguLjguJvguKXguLLguKoKK+C4m+C4seC4k+C4k+C4sAor4Lib4Lix4LiT4LiT4Lix4LiV4LiV4Li04LiB4Lin4Lix4LiK4LiK4LiwCivguJvguLHguJPguJPguLLguKoKK+C4m+C4seC4k+C4k+C4suC4quC4geC5jAor4Lib4Lix4LiT4Lij4Liq4LihCivguJvguLHguJPguKPguKrguLUKK+C4m+C4seC4k+C4q+C4tAor4Lib4Lix4LiUCivguJvguLHguJTguYYKK+C4m+C4seC4lOC5hOC4luC4oQor4Lib4Lix4LiV4LiE4Liy4LiUCivguJvguLHguJXguIjguLHguJXguJbguKPguJPguYwKK+C4m+C4seC4leC4iOC4seC4meC4leC5jAor4Lib4Lix4LiV4LiV4LiwCivguJvguLHguJXguJXguLDguYDguKXguLXguYjguKLguJkKK+C4m+C4seC4leC4leC4suC4meC4teC4geC4sAor4Lib4Lix4LiV4LiV4Liy4LiZ4Li24LiBCivguJvguLHguJXguJXguLLguKHguLjguYLguKHguJfguJnguLIKK+C4m+C4seC4leC4leC4suC5gOC4p+C4teC4ogor4Lib4Lix4LiV4LiV4Li0CivguJvguLHguJXguJXguLTguIEKK+C4m+C4seC4leC4luC4owor4Lib4Lix4LiV4LiW4LiwCivguJvguLHguJXguJnguLQKK+C4m+C4seC4leC4meC4tQor4Lib4Lix4LiV4Lii4Lix4LiiCivguJvguLHguJXguKvguKXguYjguLIKK+C4m+C4seC4luC4nuC4tQor4Lib4Lix4LiW4Lin4Li1CivguJvguLHguJkKK+C4m+C4seC5iOC4mQor4Lib4Lix4LmJ4LiZCivguJvguLHguYnguJnguIjguLHguYjguJkKK+C4m+C4seC4meC4iOC4uOC5gOC4q+C4o+C5h+C4iAor4Lib4Lix4LiZ4Lil4LihCivguJvguLHguYnguJnguKvguKLguLIKK+C4m+C4seC5ieC4meC5gOC4q+C4meC5iOC4hwor4Lib4Lix4LiaCivguJvguLHguYrguJoKK+C4m+C4seC4m+C4nOC4suC4quC4sAor4Lib4Lix4Lie4Lie4Liy4LiK4LiZ4LiwCivguJvguLHguJ7guJ7guLLguIrguJnguLXguKLguIHguKPguKPguKEKK+C4m+C4seC4nuC4oOC4suC4o+C4sAor4Lib4Lix4LmK4LihCivguJvguLHguYrguKHguYHguIHguYfguKoKK+C4m+C4seC5iuC4oeC4meC5ieC4s+C4oeC4seC4mQor4Lib4Lix4Lii4LiB4LiwCivguJvguLHguKLguIHguLIKK+C4m+C4seC4ouC4ouC4tOC4geC4sgor4Lib4Lix4LmI4LinCivguJvguLHguKfguYDguJvguLXguKIKK+C4m+C4seC5ieC4p+C5gOC4m+C4teC5ieC4ogor4Lib4Lix4Lio4LiI4Li04LihCivguJvguLHguKjguJXguLHguJkKK+C4m+C4seC4qOC4leC4uQor4Lib4Lix4Liq4Liq4Lix4LiX4LiY4Li0CivguJvguLHguKrguKrguLLguKfguLAKK+C4m+C4seC4quC4quC4suC4quC4sAor4Lib4LiyCivguJvguYjguLIKK+C4m+C5ieC4sgor4Lib4LmL4LiyCivguJvguLLguIEKK+C4m+C4suC4hwor4Lib4LmI4Liy4LiHCivguJvguYnguLLguIcKK+C4m+C5ieC4suC4h+C4m+C5iOC4sgor4Lib4Liy4LiI4LiZ4LiwCivguJvguLLguIjguKPguLXguKLguYwKK+C4m+C4suC4iOC4suC4o+C4ouC5jAor4Lib4Liy4LiI4Li04LiV4LiV4Li14Lii4LmMCivguJvguLLguIjguLXguJkKK+C4m+C4suC4j+C4peC4tAor4Lib4Liy4LiP4Li04Lia4LiXCivguJvguLLguI/guLTguJrguLjguITguITguKXguLTguIEKK+C4m+C4suC4j+C4tOC5guC4oOC4hAor4Lib4Liy4LiP4Li04Lir4Liy4Lij4Li04Lii4LmMCivguJvguLLguJDguLAKK+C4m+C4suC4k+C4sAor4Lib4Liy4LiT4Li0CivguJvguLLguJPguLUKK+C4m+C4suC4lAor4Lib4Liy4LiU4Lir4Liy4LinCivguJvguLLguJXguLTguYLguKHguIHguILguYwKK+C4m+C4suC4leC4tQor4Lib4Liy4LmA4LiV4LmK4LiwCivguJvguLLguJcKK+C4m+C4suC4l+C4mwor4Lib4Liy4LiX4LmI4Lit4LiH4LmC4LiB4LmLCivguJvguLLguJfguLHguIfguIHguLIKK+C4m+C4suC4l+C4suC4mQor4Lib4Liy4LiX4Li44LiB4LiyCivguJvguLLguJkKK+C4m+C5iOC4suC4mQor4Lib4LmJ4Liy4LiZCivguJvguLLguJnguJTguIcKK+C4m+C5ieC4suC4meC4peC4oQor4Lib4Liy4LiZ4LiwCivguJvguLLguJnguLTguYDguKLguJkKK+C4m+C4suC4meC4teC4ouC4sAor4Lib4LmJ4Liy4LiaCivguJvguYrguLLguJoKK+C4m+C4suC4m+C4reC4q+C4ouC4teC4quC4seC4h+C4huC4suC4leC4sgor4Lib4Liy4Lie4LiI4LiZ4LmMCivguJvguLLguKEKK+C4m+C4suC5guC4oeC4geC4guC5jAor4Lib4LmI4Liy4LiiCivguJvguYnguLLguKIKK+C4m+C4suC4ouC4suC4qgor4Lib4Liy4Lij4LmM4LiBCivguJvguLLguKPguYzguYDguIHguJXguYwKK+C4m+C4suC4o+C5jOC4leC4tQor4Lib4Liy4Lij4Lih4Li1CivguJvguLLguKPguKnguJPguLUKK+C4m+C4suC4o+C4suC4iuC4tOC4gQor4Lib4Liy4Lij4Li04LiJ4Lix4LiV4LijCivguJvguLLguKPguLTguIrguLLguJUKK+C4m+C4suC4o+C4tOC4quC4uOC4l+C4mOC4tOC4qOC4teC4pQor4Lib4Liy4Lij4Li44Lib4LiZ4LiwCivguJvguLLguKUKK+C4m+C4suC4peC5jOC4oQor4Lib4Liy4Lil4Li04LmE4Lil4Lii4LiB4LmMCivguJvguLLguKXguLUKK+C4m+C5iOC4suC4pwor4Lib4LmK4Liy4LinCivguJvguLLguKfguYYKK+C4m+C4suC4p+C4gQor4Lib4Liy4Lin4LiI4LiZ4LiwCivguJvguLLguKfguLLguKMKK+C4m+C4suC4qeC4suC4kwor4Lib4Liy4LiqCivguJvguLLguKrguLLguJMKK+C4m+C4suC4quC4suC4l+C4tOC4geC4sAor4Lib4Liy4Lir4LiZ4Lix4LiZCivguJvguLLguKvguLXguYgKK+C4m+C4suC4q+C4uOC4kwor4Lib4LizCivguJvguYnguLMKK+C4m+C5ieC4s+C5huC5gOC4m+C5i+C4reC5hgor4Lib4LmJ4Liz4LmA4Lib4LmJ4LitCivguJvguYnguLPguYDguJvguYvguK0KK+C4m+C4tOC4geC4meC4tOC4gQor4Lib4Li04LiB4Lit4Lix4LieCivguJvguLTguIfguITguKUKK+C4m+C4tOC4h+C4hOC4peC4sAor4Lib4Li04LiH4Lib4Lit4LiHCivguJvguLTguI7guIEKK+C4m+C4tOC4j+C4kOC4sAor4Lib4Li04LiQ4Li0CivguJvguLTguJPguJHguLAKK+C4m+C4tOC4lAor4Lib4Li04LiU4LmA4LiV4LmK4Liy4LiwCivguJvguLTguJXguJXguLAKK+C4m+C4tOC4leC4sgor4Lib4Li04LiV4Li4CivguJvguLTguJXguLjguIjguInguLIKK+C4m+C4tOC4leC4uOC4pQor4Lib4Li04LiV4Li44Lil4LiyCivguJvguLTguJXguLjguKXguLLguJnguLUKK+C4m+C4tOC5guC4leC4o+C5gOC4peC4teC4ouC4oQor4Lib4Li04LmI4LiZCivguJvguLTguYrguJkKK+C4m+C4tOC5iuC4meC5hgor4Lib4Li04LmI4LiZ4LiV4LitCivguJvguLTguYjguJnguYLguJUKK+C4m+C4tOC4m+C4nOC4peC4tQor4Lib4Li04LmI4LihCivguJvguLTguYnguKEKK+C4m+C4tOC4ouC4seC4h+C4hOC4uAor4Lib4Li04Lij4Lix4LiZ4Liu4LiyCivguJvguLTguKXguLHguJnguJjguJnguYwKK+C4m+C4tOC5i+C4pwor4Lib4Li04Lio4Liy4LiICivguJvguLTguKrguLHguIcKK+C4m+C4tOC5hOC4qgor4Lib4Li04Lir4LiBCivguJvguLTguKvguKXguLHguYjguJkKK+C4m+C4tQor4Lib4Li14LmICivguJvguLXguYkKK+C4m+C4teC5iwor4Lib4Li14LiBCivguJvguLXguI7guIHguIbguKMKK+C4m+C4teC4kOC4geC4sAor4Lib4Li14LiQ4LiwCivguJvguLXguYrguJQKK+C4m+C4teC4leC4geC4quC4tOC4kwor4Lib4Li14LiV4Li0CivguJvguLXguJkKK+C4m+C4teC4mgor4Lib4Li14LmK4LiaCivguJvguLXguYLguJvguYoKK+C4m+C4teC4qOC4suC4iAor4Lib4Li14LisCivguJvguLXguKzguIEKK+C4m+C4teC4rOC4sgor4Lib4Li24LiBCivguJvguLbguIcKK+C4m+C4tuC5iOC4hwor4Lib4Li24LmK4LiHCivguJvguLbguYvguIcKK+C4m+C4tuC5ieC4lAor4Lib4Li24LmJ4LiZCivguJvguLbguKHguJvguLfguYnguK0KK+C4m+C4t+C4lOC4m+C4tuC4hwor4Lib4Li34LiZCivguJvguLfguK0KK+C4m+C4t+C5ieC4rQor4Lib4Li34LmL4LitCivguJvguLgKK+C4m+C4uOC5igor4Lib4Li44LiBCivguJvguLjguIHguJvguLjguKIKK+C4m+C4uOC5iuC4geC4peC4uOC4gQor4Lib4Li44LiE4Lil4LiwCivguJvguLjguYnguIfguIHguLXguYsKK+C4m+C4uOC4h+C4hOC4ngor4Lib4Li44LiH4LiE4Lin4LiwCivguJvguLjguIfguKXguLTguIfguITguYwKK+C4m+C4uOC4h+C4peC4tuC4h+C4hOC5jAor4Lib4Li44LiI4LiJ4LiyCivguJvguLjguI8KK+C4m+C4uOC4k+C4keC4o+C4tOC4gQor4Lib4Li44LiUCivguJvguLjguJXguJXguLAKK+C4m+C4uOC4leC4l+C4suC4o+C4l+C4suC4mQor4Lib4Li44LiW4Li44LiK4LiZCivguJvguLjguJnguYDguJfguYjguLLguIHguYvguIcKK+C4m+C4uOC4meC4meC4suC4hAor4Lib4Li44LiZ4Lig4LieCivguJvguLjguJnguLHguJrguJvguLjguJnguLHguIcKK+C4m+C4uOC4meC4seC4nuC4quC4uAor4Lib4Li44LiaCivguJvguLjguYrguJoKK+C4m+C4uOC4muC4m+C4seC4mgor4Lib4Li44LmK4Lia4Lib4Lix4LmK4LiaCivguJvguLjguJvguJzguLAKK+C4m+C4uOC4m+C4sAor4Lib4Li44Lie4Lie4LiwCivguJvguLjguYjguKEKK+C4m+C4uOC5ieC4oQor4Lib4Li44LmL4LihCivguJvguLjguYjguKHguJvguKXguLIKK+C4m+C4uOC5ieC4oeC5gOC4m+C5ieC4hwor4Lib4Li44LmI4Lih4LmA4Lib4Li34Lit4LiBCivguJvguLjguYnguKHguYDguJvguLfguK3guIEKK+C4m+C4uOC4oeC4sgor4Lib4Li44LiiCivguJvguLjguYnguKIKK+C4m+C4uOC5i+C4ogor4Lib4Li44LijCivguJvguLjguKPguJPguLAKK+C4m+C4uOC4o+C4seC4leC4luC4tOC4oeC4l+C4tOC4qAor4Lib4Li44Lij4Liy4LiTCivguJvguLjguKPguLLguJPguLAKK+C4m+C4uOC4o+C4tOC4oeC4l+C4tOC4qAor4Lib4Li44Lij4Li04Lih4Lie4Lij4Lij4Lip4LiyCivguJvguLjguKPguLTguKrguKDguLLguKfguLAKK+C4m+C4uOC4o+C4tOC5guC4quC4lOC4oQor4Lib4Li44LmA4Lij4LiI4Liy4Lij4Li04LiBCivguJvguLjguYLguKPguKvguLTguJUKK+C4m+C4uOC4peC4peC4tOC4h+C4hOC5jAor4Lib4Li44Lil4Lil4Li24LiH4LiE4LmMCivguJvguLjguKXguLTguJnguJfguYwKK+C4m+C4uOC4peC4uQor4Lib4Li44LmA4Lil4LiHCivguJvguLjguYDguKXguIfguYYKK+C4m+C4uOC5guC4peC4m+C4uOC5gOC4pQor4Lib4Li44LmB4Lir4Lil4LiwCivguJvguLjguKzguKfguLAKK+C4m+C4uQor4Lib4Li54LmICivguJvguLnguIrguIHguLAKK+C4m+C4ueC4iuC4meC4teC4ouC4sAor4Lib4Li54LiK4LiyCivguJvguLnguIrguLTguJUKK+C4m+C4ueC4lAor4Lib4Li54LiU4LiB4LiB4Liq4LmJ4Lih4Lih4LitCivguJvguLnguJXguLQKK+C4m+C4ueC4mQor4Lib4Li54LihCivguJvguLnguYnguKLguKLguLXguYnguJvguLnguYnguKLguLMKK+C4m+C4ueC5iOC4ouC5iOC4sgor4Lib4Li54Lij4LiwCivguJvguLnguKXguLkKK+C4m+C4ueC4p+C4sgor4LmA4Lib4LmJCivguYDguJvguYsKK+C5gOC4m+C4gQor4LmA4Lib4LmK4LiBCivguYDguJvguIHguILguYwKK+C5gOC4m+C5iOC4hwor4LmA4Lib4LmJ4LiHCivguYDguJvguYrguIcKK+C5gOC4m+C5i+C4hwor4LmA4Lib4LmH4LiUCivguYDguJvguYfguJTguYTguIvguYnguYTguIHguYjguJXguK3guJTguKrguKXguLHguIHguKPguK3guJTguKvguKHguLnguKrguLUKK+C5gOC4m+C5h+C4mQor4LmA4Lib4LmH4LiZ4LiV4LmJ4LiZCivguYDguJvguKLguKLguLLguKUKK+C5gOC4m+C4owor4LmA4Lib4Lij4LmH4LiHCivguYDguJvguKPguJUKK+C5gOC4m+C4o+C4oQor4LmA4Lib4Lij4LiiCivguYDguJvguKPguKLguYYKK+C5gOC4m+C4o+C4rQor4LmA4Lib4Lij4Lit4LiwCivguYDguJvguKPguLIKK+C5gOC4m+C4o+C4suC4sAor4LmA4Lib4Lij4Liy4Liw4LmB4Lib4Lij4LiwCivguYDguJvguKPguLXguKLguIcKK+C5gOC4m+C4o+C4teC5ieC4ouC4hwor4LmA4Lib4Lij4Li14Lii4LiNCivguYDguJvguKPguLXguKLguJoKK+C5gOC4m+C4o+C4teC5iOC4ouC4oQor4LmA4Lib4Lij4Li14Lii4LinCivguYDguJvguKPguLXguYnguKLguKcKK+C5gOC4m+C4o+C4teC5ieC4ouC4p+C4q+C4p+C4suC4mQor4LmA4Lib4Lij4Li14Lii4LiwCivguYDguJvguKPguLXguYrguKLguLAKK+C5gOC4m+C4o+C4t+C5iOC4reC4hwor4LmA4Lib4Lij4Li34LmJ4Lit4LiiCivguYDguJvguKUKK+C5gOC4m+C4peC5iOC4hwor4LmA4Lib4Lil4LinCivguYDguJvguKXguLIKK+C5gOC4m+C4peC5iOC4sgor4LmA4Lib4Lil4LmJ4LiyCivguYDguJvguKXguLLguLAKK+C5gOC4m+C4peC4teC5ieC4ogor4LmA4Lib4Lil4Li14LmI4Lii4LiZCivguYDguJvguKXguLXguYjguKLguKEKK+C5gOC4m+C4peC4teC5iOC4ouC4pwor4LmA4Lib4Lil4Li14LmI4Lii4Lin4LiU4LizCivguYDguJvguKXguLfguK3guIEKK+C5gOC4m+C4peC4t+C4reC4geC4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LmA4Lib4Lil4Li34Lit4LiHCivguYDguJvguKXguLfguYnguK3guIcKK+C5gOC4m+C4peC4t+C4reC4ogor4LmA4Lib4LioCivguYDguJvguKjguKUKK+C5gOC4m+C4qOC4seC4qgor4LmA4Lib4Liq4LiB4Liy4LijCivguYDguJvguKrguKUKK+C5gOC4m+C4quC4uOC4jQor4LmA4Lib4Liq4Li44LmE4LiT4LiiCivguYDguJvguYvguK0KK+C5gOC4m+C5ieC4reC5gOC4ouC5ieC4rQor4LmA4Lib4Lit4Lij4LmM4LmA4LiL4LmH4LiZ4LiV4LmMCivguYDguJvguYvguK3guYDguKvguKXguK0KK+C5gOC4m+C4sAor4LmA4Lib4Liw4Lib4LiwCivguYDguJvguLIKK+C5gOC4m+C5iOC4sgor4LmA4Lib4LmJ4LiyCivguYDguJvguYrguLIKK+C5gOC4m+C5i+C4sgor4LmA4Lib4LmL4Liy4Liu4Li34LmJ4LitCivguYDguJvguLLguLAKK+C5gOC4m+C4suC4sOC5gOC4m+C4teC5iuC4ouC4sAor4LmA4Lib4Liy4Liw4LmB4Lib4LiwCivguYDguJvguLLguLDguYDguKvguKXguLLguLAKK+C5gOC4m+C4tOC4gQor4LmA4Lib4Li04LiHCivguYDguJvguLTguIfguYYKK+C5gOC4m+C4tOC4h+C4oeC4suC4hwor4LmA4Lib4Li04LiUCivguYDguJvguLTguYjguJkKK+C5gOC4m+C4tOC4mgor4LmA4Lib4Li04LmK4LiaCivguYDguJvguLTguJrguILguYnguLLguKcKK+C5gOC4m+C4teC4ogor4LmA4Lib4Li14Lii4LiBCivguYDguJvguLXguYrguKLguIEKK+C5gOC4m+C4teC4ouC5geC4iuC4o+C5jAor4LmA4Lib4Li14LmK4Lii4LiaCivguYDguJvguLXguYjguKLguKEKK+C5gOC4m+C4teC4ouC4pwor4LmA4Lib4Li14LmJ4Lii4LinCivguYDguJvguLXguKLguKvguKfguKIKK+C5gOC4m+C4teC4ouC4sAor4LmA4Lib4Li34Lit4LiBCivguYDguJvguLfguYnguK3guJkKK+C5geC4mwor4LmB4Lib4LmJ4LiHCivguYHguJvguYvguIcKK+C5geC4m+C5ieC4h+C5geC4iuC5iAor4LmB4Lib4LiUCivguYHguJvguYrguJQKK+C5geC4m+C4l+C4uQor4LmB4Lib4LmJ4LiZCivguYHguJvguJoKK+C5geC4m+C5iuC4mgor4LmB4Lib4LihCivguYHguJvguKMKK+C5geC4m+C4o+C5iwor4LmB4Lib4Lij4LiBCivguYHguJvguKPguIcKK+C5geC4m+C4o+C5iOC4hwor4LmB4Lib4Lij4LiH4Lil4LmJ4Liy4LiH4LiC4Lin4LiUCivguYHguJvguKPguIfguKvguLnguKvguJnguLkKK+C5geC4m+C4o+C5iuC4lAor4LmB4Lib4Lij4LmJ4LiZCivguYHguJvguKPguYvguJkKK+C5geC4m+C4o+C5i+C5geC4m+C4o+C5ieC4mQor4LmB4Lib4Lij4LiwCivguYHguJvguKUKK+C5geC4m+C4peC5iQor4LmB4Lib4Lil4LiBCivguYHguJvguKXguIcKK+C5geC4m+C4peC4mQor4LmB4Lib4Lil4LiaCivguYHguJvguYnguKcKK+C5geC4m+C5iuC4pwor4LmB4Lib4LmL4LinCivguYHguJvguLAKK+C5geC4m+C5iuC4sAor4LmB4Lib4LmK4Liw4LiL4LiwCivguYLguJsKK+C5guC4m+C5iAor4LmC4Lib4LmJCivguYLguJvguYoKK+C5guC4m+C4gQor4LmC4Lib4LmK4LiBCivguYLguJvguYrguIHguYDguIHguK3guKPguYwKK+C5guC4m+C4geC4guC4o+C4k+C4tQor4LmC4Lib4LmA4LiBCivguYLguJvguIcKK+C5guC4m+C5iOC4hwor4LmC4Lib4LmJ4LiHCivguYLguJvguYjguIfguILguYjguLLguKEKK+C5guC4m+C4h+C4peC4suC4hwor4LmC4Lib4LmI4LiH4Lin4Li04LiUCivguYLguJvguYnguIfguYLguKvguKLguIcKK+C5guC4m+C4kOC4m+C4l+C4sgor4LmC4Lib4LiU4LiBCivguYLguJvguJXguJbguIHguLAKK+C5guC4m+C4mQor4LmC4Lib4LibCivguYLguJvguYrguKLguIHguLHguYnguIEKK+C5guC4m+C5iuC4ouC5gOC4i+C4teC4ouC4mQor4LmC4Lib4Lij4LiHCivguYLguJvguKPguYjguIcKK+C5guC4m+C4o+C4lAor4LmC4Lib4Lij4LiV4Lit4LiZCivguYLguJvguKPguJXguLXguJkKK+C5guC4m+C4o+C5gOC4leC4quC5geC4leC4meC4leC5jAor4LmC4Lib4Lij4LmB4LiX4Lij4LiB4LmA4LiV4Lit4Lij4LmMCivguYLguJvguKPguKIKK+C5guC4m+C4o+C4teC4quC4oOC4sgor4LmC4Lib4Lil4LmI4LiHCivguYLguJvguKXguLTguYLguK0KK+C5guC4m+C5guC4pQor4LmC4Lib4LiqCivguYLguJvguKrguIEKK+C5guC4m+C4quC4geC4suC4o+C5jOC4lAor4LmC4Lib4Liq4LmA4LiV4Lit4Lij4LmMCivguYLguJvguKrguLLguKfguJnguLTguIHguKHguLnguKUKK+C5guC4m+C4sAor4LmC4Lib4LmK4LiwCivguYLguJvguYrguLDguIjguYnguLLguKIKK+C5hOC4mwor4LmE4Lib4LmICivguYTguJvguYsKK+C5hOC4m+C5i+C5gOC4m+C5iwor4LmE4Lib4Lii4Liy4LilCivguYTguJvguKPguKnguJPguLXguKLguYwKK+C5hOC4m+C4peC5iAor4LmE4Lib4Lio4Liy4LiICivguYTguJvguKjguLLguIjguLUKK+C4nAor4Lic4LiBCivguJzguIHguYDguKPguLfguK3guIEKK+C4nOC4geC4sgor4Lic4LiB4Liy4LiiCivguJzguITguKEKK+C4nOC4hwor4Lic4LiH4LiBCivguJzguIfguKEKK+C4nOC4h+C4owor4Lic4LiH4Lit4LiZCivguJzguIfguK3guJoKK+C4nOC4h+C4sAor4Lic4LiH4Liy4LiUCivguJzguIfguYjguLLguJkKK+C4nOC4iOC4hwor4Lic4LiI4LiNCivguJzguIjguLHguI0KK+C4nOC4iOC4suC4mQor4Lic4LiK4Li44LihCivguJzguI3guLIKK+C4nOC4k+C4sAor4Lic4LiT4Li04LiZCivguJzguJQKK+C4nOC4lOC4uOC4hwor4Lic4LmA4LiU4Li04LiZCivguJzguJfguKEKK+C4nOC4meC4p+C4gQor4Lic4LiZ4Lin4LiKCivguJzguJnguLHguIcKK+C4nOC4meC4tOC4lAor4Lic4LiZ4Li24LiBCivguJzguKEKK+C4nOC4oeC4meC4suC4hwor4Lic4Lii4Lit4LiHCivguJzguKLguYjguLPguYDguJzguKLguK0KK+C4nOC4o+C4quC4uAor4Lic4Lij4Li04LiVCivguJzguKPguLjguJ7guIEKK+C4nOC4pQor4Lic4Lil4LiBCivguJzguKXguITguLjguJkKK+C4nOC4peC4hOC4uOC4meC4tQor4Lic4Lil4LiHCivguJzguKXguK0KK+C4nOC4peC5h+C4reC4hwor4Lic4Lil4LmH4Lit4LiiCivguJzguKXguLAKK+C4nOC4peC4seC4gQor4Lic4Lil4Lix4LiUCivguJzguKXguLHguJoKK+C4nOC4peC4seC4p+C4sAor4Lic4Lil4LiyCivguJzguKXguLLguI0KK+C4nOC4peC4tAor4Lic4Lil4Li04LiB4LiwCivguJzguKXguLTguJUKK+C4nOC4peC4tOC4mQor4Lic4Lil4Li1CivguJzguKXguLXguJzguKXguLLguKEKK+C4nOC4peC4tuC4gQor4Lic4Lil4Li24LmI4LiHCivguJzguKXguLfguK0KK+C4nOC4peC4uAor4Lic4Lil4Li44LiHCivguJzguKXguLjguJQKK+C4nOC4peC4uOC4mQor4Lic4Lil4Li44LiaCivguJzguKXguLjguKIKK+C4nOC4peC4uQor4Lic4Lin4LiyCivguJzguKrguKEKK+C4nOC4quC4oeC5gOC4quC4o+C5h+C4iAor4Lic4Liq4Liy4LiZCivguJzguKrguLLguKIKK+C4nOC4quC4suC4owor4Lic4Lit4LiBCivguJzguK3guIcKK+C4nOC5iOC4reC4hwor4Lic4LmI4Lit4LiZCivguJzguK3guJoKK+C4nOC4reC4oQor4Lic4LmH4Lit4LiiCivguJzguYjguK3guKIKK+C4nOC4reC4p+C4lAor4Lic4Lit4Li54LiZCivguJzguLAKK+C4nOC4sOC5geC4hOC4hwor4Lic4Liw4LiU4LiyCivguJzguLDguKrguLIKK+C4nOC4sOC4q+C4oeC4tQor4Lic4Liw4Lit4Lit4LiaCivguJzguLDguK3guLfguJTguJzguLDguK3guKEKK+C4nOC4seC4gQor4Lic4Lix4LiB4LmE4LiBCivguJzguLHguIHguILguKfguIcKK+C4nOC4seC4geC4guC4teC5ieC4guC4p+C4hwor4Lic4Lix4LiB4LmC4LiJ4LihCivguJzguLHguIHguIrguLUKK+C4nOC4seC4geC4leC4muC4iuC4p+C4sgor4Lic4Lix4LiB4LiX4Lit4LiU4Lii4Lit4LiUCivguJzguLHguIHguJrguLjguYnguIcKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4guC4seC4mQor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4LiI4Li14LiZCivguJzguLHguIHguJrguLjguYnguIfguJfguLDguYDguKUKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4neC4o+C4seC5iOC4hwor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4Lij4LmJ4Lin4LihCivguJzguLHguIHguJrguLjguYnguIfguKPguLHguYnguKcKK+C4nOC4seC4geC5gOC4muC4teC5ieC4ogor4Lic4Lix4LiB4LmA4Lia4Li14LmJ4Lii4LmD4Lir4LiN4LmICivguJzguLHguIHguJvguKXguLHguIcKK+C4nOC4seC4geC4m+C4uOC5iOC4oeC4m+C4peC4sgor4Lic4Lix4LiB4LmA4Lic4LmH4LiUCivguJzguLHguIHguYTguJzguYgKK+C4nOC4seC4geC4o+C4ueC5ieC4meC4reC4mQor4Lic4Lix4LiB4LmB4Lin4LmI4LiZCivguJzguLHguIHguKrguLLguJoKK+C4nOC4seC4geC4quC4suC4oeC4q+C4suC4pwor4Lic4Lix4LiB4LmA4Liq4Li14LmJ4Lii4LiZCivguJzguLHguIHguKvguJnguK3guIEKK+C4nOC4seC4geC4q+C4meC4reC4hwor4Lic4Lix4LiB4Lir4LiZ4Liy4LihCivguJzguLHguIHguKvguKfguLLguJkKK+C4nOC4seC4geC5hOC4q+C4oQor4Lic4Lix4LiB4Lit4Li14LmB4Lib4LiwCivguJzguLHguITguITguLjguJMKK+C4nOC4seC4hOC4hOC4uOC4k+C4tQor4Lic4Lix4LiHCivguJzguLHguJQKK+C4nOC4seC4mQor4Lic4Lix4LiaCivguJzguLHguKXguITguLjguJnguLUKK+C4nOC4seC4pwor4Lic4Lix4Lin4LiwCivguJzguLHguKrguKrguLAKK+C4nOC4sgor4Lic4LmI4LiyCivguJzguYnguLIKK+C4nOC4suC4gQor4Lic4Liy4LiHCivguJzguYjguLLguIcKK+C4nOC4suC4k+C4tOC4lQor4Lic4Liy4LiUCivguJzguLLguJXguLQKK+C4nOC5iOC4suC4mQor4Lic4Liy4LihCivguJzguLLguKIKK+C4nOC5iOC4suC4ogor4Lic4LmJ4Liy4LiiCivguJzguLLguKUKK+C4nOC4suC4peC4hOC4uOC4mQor4Lic4Liy4Lil4LiyCivguJzguYjguLLguKcKK+C4nOC4suC4quC4uOC4gQor4Lic4LmJ4Liy4Liu4Liy4LiUCivguJzguLMKK+C4nOC5ieC4s+C5hgor4Lic4Li0CivguJzguLTguIcKK+C4nOC4tOC4lAor4Lic4Li04LiU4LiBCivguJzguLTguJUKK+C4nOC4tOC4mQor4Lic4Li04LinCivguJzguLUKK+C4nOC4teC4leC4reC4h+C5gOC4q+C4peC4t+C4reC4hwor4Lic4Li14LmJ4Lin4LmMCivguJzguLbguIcKK+C4nOC4tuC5iOC4hwor4Lic4Li24LmJ4LiHCivguJzguLfguYjguJkKK+C4nOC4uAor4Lic4Li44LiUCivguJzguLjguKLguJzguIcKK+C4nOC4uOC4quC4o+C4suC4hOC4sgor4Lic4Li54LmJCivguJzguLnguIEKK+C5gOC4nAor4LmA4Lic4LiHCivguYDguJzguIrguLTguI0KK+C5gOC4nOC5h+C4lAor4LmA4Lic4LiU4LmH4LiICivguYDguJzguJTguLTguKEKK+C5gOC4nOC4lOC4teC4ouC4hwor4LmA4Lic4LmI4LiZCivguYDguJzguJnguLTguIEKK+C5gOC4nOC4ogor4LmA4Lic4Lii4LitCivguYDguJzguKLguLTguJoKK+C5gOC4nOC4pQor4LmA4Lic4Lil4LmICivguYDguJzguKXguYkKK+C5gOC4nOC4peC5h+C4lAor4LmA4Lic4Lil4LitCivguYDguJzguKXguLAKK+C5gOC4nOC4peC4suC4sAor4LmA4Lic4Lil4Liy4Liw4LmB4Lic4Lil4LiwCivguYDguJzguKXguLXguKLguIcKK+C5gOC4nOC4reC5gOC4o+C4rQor4LmA4Lic4Lit4Li04LiNCivguYDguJzguK3guLTguKUKK+C5gOC4nOC4sAor4LmA4Lic4LiyCivguYDguJzguYjguLIKK+C5gOC4nOC5ieC4sgor4LmA4Lic4LmJ4Liy4Lic4LiHCivguYDguJzguLLguLAKK+C5gOC4nOC4tOC5ieC4hwor4LmA4Lic4Li04LiZCivguYDguJzguLTguJnguYYKK+C5gOC4nOC4teC4ouC4mQor4LmA4Lic4Li14Lii4LiwCivguYDguJzguLfguK0KK+C5gOC4nOC4t+C5iOC4rQor4LmA4Lic4Li34Lit4LiBCivguYDguJzguLfguK3guJQKK+C5gOC4nOC4t+C4reC4mQor4LmA4Lic4Li34LmI4Lit4LiZCivguYHguJzguYgKK+C5geC4nOC4gQor4LmB4Lic4LiHCivguYHguJzguJQKK+C5geC4nOC4lOC5gOC4nOC4sgor4LmB4Lic4LiU4LmA4Liq4Li14Lii4LiHCivguYHguJzguJkKK+C5geC4nOC5iOC4mQor4LmB4Lic4LiZ4LiBCivguYHguJzguKUKK+C5geC4nOC4peC4hwor4LmB4Lic4Lil4LmH4LiaCivguYHguJzguKXguYfguJrguYYKK+C5geC4nOC4peC5h+C4pwor4LmB4Lic4Lil4LiwCivguYHguJzguYjguKcKK+C5geC4nOC5ieC4pwor4LmC4LicCivguYLguJzguIcKK+C5guC4nOC4j+C4kOC4seC4nuC4nuC4sAor4LmC4Lic4LiZCivguYLguJzguKIKK+C5guC4nOC4peC5iAor4LmC4Lic4Lil4LiB4LmA4Lic4Lil4LiBCivguYLguJzguKXguLAKK+C5guC4nOC4reC4mQor4LmC4Lic4LiwCivguYTguJwKK+C5hOC4nOC5iAor4LmE4Lic4LiXCivguYTguJzguYjguJzguLHguIcKK+C4nQor4Lid4LiZCivguJ3guKPguLHguYjguIcKK+C4neC4o+C4seC5iOC4h+C5gOC4qOC4qgor4Lid4Lij4Lix4LmI4LiZCivguJ3guYjguK0KK+C4neC4reC4ogor4Lid4Lix4LiBCivguJ3guLHguIHguJ3guYjguLLguKIKK+C4neC4seC4geC5g+C4neC5iAor4Lid4Lix4LiHCivguJ3guLHguYjguIcKK+C4neC4seC4lAor4Lid4Lix4LiZCivguJ3guLIKK+C4neC5iOC4sgor4Lid4LmJ4LiyCivguJ3guLLguIEKK+C4neC4suC4hwor4Lid4Liy4LiUCivguJ3guLLguJkKK+C4neC4suC4ogor4Lid4LmI4Liy4LiiCivguJ3guYnguLLguKIKK+C4neC4tOC5iOC4mQor4Lid4Li1CivguJ3guLXguYgKK+C4neC4teC4gQor4Lid4Li14Lir4Lih4Lit4LiaCivguJ3guLbguIEKK+C4neC4t+C4lAor4Lid4Li34LiZCivguJ3guLjguYjguJkKK+C4neC4ueC4hwor4LmA4Lid4LmJ4LiyCivguYDguJ3guLfguK0KK+C5gOC4neC4t+C4reC4gQor4LmA4Lid4Li34Lit4LiHCivguYDguJ3guLfguYjguK3guJkKK+C5geC4neC4gQor4LmB4Lid4LiHCivguYHguJ3guJQKK+C5g+C4neC5iAor4LmE4LidCivguJ4KK+C4nuC4gQor4Lie4LiB4LiI4LijCivguJ7guIHguJnguLjguYjguJkKK+C4nuC4geC4nuC5iOC4suC4ogor4Lie4LiB4Lil4LihCivguJ7guIHguKvguLTguJkKK+C4nuC4geC4reC4suC4p+C4uOC4mAor4Lie4LiB4LiyCivguJ7guIHguLjguKPguLAKK+C4nuC4geC4uOC4pQor4Lie4LiHCivguJ7guIfguKjguYwKK+C4nuC4iOC4meC5jAor4Lie4LiI4LiZ4LiyCivguJ7guIjguJnguLLguKPguJYKK+C4nuC4iOC4meC4teC4ouC5jAor4Lie4LiI4Lih4Liy4LiZCivguJ7guIjguLUKK+C4nuC4iuC4o+C4sAor4Lie4LiN4LiyCivguJ7guI3guLLguJMKK+C4nuC4jeC4suC5hOC4nwor4Lie4LiN4Liy4Lil4LitCivguJ7guJPguLTguIoKK+C4nuC4k+C4tOC4iuC4ouC5jAor4Lie4LiUCivguJ7guJjguLkKK+C4nuC4mQor4Lie4LmI4LiZCivguJ7guYnguJkKK+C4nuC4meC4oQor4Lie4LiZ4Lit4LiHCivguJ7guJnguK3guKEKK+C4nuC4meC4seC4gQor4Lie4LiZ4Lix4LiB4LiH4Liy4LiZCivguJ7guJnguLHguIcKK+C4nuC4meC4seC4lOC4owor4Lie4LiZ4Lix4LiZCivguJ7guJnguLHguKoKK+C4nuC4meC4sgor4Lie4LiZ4Liy4LiUCivguJ7guJnguLLguJnguJTguKMKK+C4nuC4meC4suC4meC4leC5jAor4Lie4LiZ4Liy4LiiCivguJ7guJnguLTguJTguLIKK+C4nuC4meC4tOC4lQor4Lie4LiZ4Li14Lii4LiBCivguJ7guYDguJnguIEKK+C4nuC5gOC4meC4iOC4owor4Lie4LiaCivguJ7guJrguLkKK+C4nuC4oeC5iOC4sgor4Lie4Lii4LiKCivguJ7guKLguIrguJnguYwKK+C4nuC4ouC4leC4tOC5gOC4o+C4gQor4Lie4Lii4LiZ4LiV4LmMCivguJ7guKLguKgKK+C4nuC4ouC4seC4gQor4Lie4Lii4Lix4LiE4LiG4LmMCivguJ7guKLguLHguIrguJnguYwKK+C4nuC4ouC4seC4jeC4iuC4meC4sAor4Lie4Lii4Lix4LiVCivguJ7guKLguLHguJoKK+C4nuC4ouC4suC4geC4o+C4k+C5jAor4Lie4Lii4Liy4LiG4Lij4LmMCivguJ7guKLguLLguIfguITguYwKK+C4nuC4ouC4suC4mOC4tAor4Lie4Lii4Liy4LiZCivguJ7guKLguLLguJrguLLguJcKK+C4nuC4ouC4suC4muC4suC4pQor4Lie4Lii4Liy4LihCivguJ7guKLguLLguKLguLLguKEKK+C4nuC4ouC4suC4pQor4Lie4Lii4Li4CivguJ7guKLguLjguIcKK+C4nuC4ouC4uOC4q+C4owor4Lie4Lii4Li44Lir4LiwCivguJ7guKLguLnguYjguKvguYwKK+C4nuC5gOC4ouC4teC4ogor4Lie4LijCivguJ7guKPguJUKK+C4nuC4o+C4oQor4Lie4Lij4Lih4LiE4LiUCivguJ7guKPguKHguYHguJTguJkKK+C4nuC4o+C4oeC4oeC4tAor4Lie4Lij4Lij4LiECivguJ7guKPguKPguITguYwKK+C4nuC4o+C4o+C4hOC4suC4meC4leC5jAor4Lie4Lij4Lij4LiTCivguJ7guKPguKPguJPguJnguLIKK+C4nuC4o+C4o+C4k+C4o+C4suC4ogor4Lie4Lij4Lij4LiU4Li24LiBCivguJ7guKPguKPguKXguLLguKIKK+C4nuC4o+C4o+C4qQor4Lie4Lij4Lij4LmA4Lir4LiyCivguJ7guKPguKPguYDguK3guLTguI0KK+C4nuC4o+C4p+C4h+C5gOC4nuC4o+C4teC4ouC4hwor4Lie4Lij4Lin4LiUCivguJ7guKPguKfguJkKK+C4nuC4o+C4q+C4oQor4Lie4Lij4Lit4LiBCivguJ7guKPguYjguK3guIcKK+C4nuC4o+C5ieC4reC4hwor4Lie4Lij4Lit4LiUCivguJ7guKPguYnguK3guKEKK+C4nuC4o+C5iOC4reC4oeC4nuC4o+C5ieC4rQor4Lie4Lij4LmI4Lit4LiiCivguJ7guKPguYnguK3guKIKK+C4nuC4o+C4sAor4Lie4Lij4Liw4LiI4Lix4LiZ4LiX4Lij4LmM4LiE4Lij4Li24LmI4LiH4LiL4Li14LiBCivguJ7guKPguLDguYDguIjguYnguLLguKXguK3guKLguJbguLLguJQKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4q+C5ieC4suC4nuC4o+C4sOC4reC4h+C4hOC5jAor4Lie4Lij4Liw4LiZ4Lit4LihCivguJ7guKPguLDguJnguLLguJQKK+C4nuC4o+C4sOC4ouC4suC5gOC4peC5h+C4muC4hOC4o+C4uOC4kQor4Lie4Lij4Liw4Lii4Liy4Lin4Lix4LiZCivguJ7guKPguLDguKXguJoKK+C4nuC4o+C4sOC4peC4t+C4rQor4Lie4Lij4Liw4LmB4Lin4LinCivguJ7guKPguLDguKvguLIKK+C4nuC4o+C4sOC4q+C4suC4oQor4Lie4Lij4Liw4Lir4Li04LiUCivguJ7guKPguLDguK7guLLguKEKK+C4nuC4o+C4seC4geC4nuC4o+C5ieC4reC4oQor4Lie4Lij4Lix4LmI4LiHCivguJ7guKPguLHguJQKK+C4nuC4o+C4seC5iOC4mQor4Lie4Lij4Lix4LiaCivguJ7guKPguYjguLIKK+C4nuC4o+C5ieC4sgor4Lie4Lij4Liy4LiBCivguJ7guKPguLLguIcKK+C4nuC4o+C5iOC4suC4hwor4Lie4Lij4Liy4LiUCivguJ7guKPguLLguJkKK+C4nuC4o+C4suC4ogor4Lie4Lij4Liy4LinCivguJ7guKPguLLguKvguKHguJPguYwKK+C4nuC4o+C4suC4q+C4oeC4k+C4tQor4Lie4Lij4Liy4Lir4Lih4Li1CivguJ7guKPguLMKK+C4nuC4o+C5iOC4swor4Lie4Lij4LmJ4LizCivguJ7guKPguLPguYYKK+C4nuC4o+C4tOC4gQor4Lie4Lij4Li04LmJ4LiHCivguJ7guKPguLTguJoKK+C4nuC4o+C4tOC4muC5hOC4q+C4pwor4Lie4Lij4Li04LmJ4LihCivguJ7guKPguLbguIcKK+C4nuC4o+C4tuC4mQor4Lie4Lij4Li24LiaCivguJ7guKPguLfguJQKK+C4nuC4o+C4t+C5ieC4rQor4Lie4Lij4Li4CivguJ7guKPguLjguIEKK+C4nuC4o+C4uOC5iOC4hwor4Lie4Lij4Li44LmI4LiH4LiZ4Li14LmJCivguJ7guKPguLjguJkKK+C4nuC4o+C4uQor4Lie4Lij4Li54LiUCivguJ7guKTguIHguKnguYwKK+C4nuC4pOC4kgor4Lie4Lik4LiS4LiyCivguJ7guKTguJLguLQKK+C4nuC4pOC4lQor4Lie4Lik4LiV4Li0CivguJ7guKTguJfguJjguYwKK+C4nuC4pOC4l+C4mOC4tOC5jAor4Lie4Lik4LiZ4LiV4LmMCivguJ7guKTguJnguJfguYwKK+C4nuC4pOC4meC4l+C4suC4owor4Lie4Lik4LiZ4LiX4Li04LmMCivguJ7guKTguKDguLnguKnguJMKK+C4nuC4pOC4oOC4ueC4qeC4tOC4lQor4Lie4Lik4Lip4LiI4Li04LiBCivguJ7guKTguKnguKAKK+C4nuC4pOC4q+C4seC4quC4muC4lOC4tQor4Lie4LilCivguJ7guKXguIHguLLguKIKK+C4nuC4peC4geC4suC4owor4Lie4Lil4LiC4Lix4LiZ4LiY4LmMCivguJ7guKXguITguKfguLLguKEKK+C4nuC4peC5gOC4l+C4ngor4Lie4Lil4LiaCivguJ7guKXguYDguKHguLfguK3guIcKK+C4nuC4peC5gOC4o+C4t+C4reC4mQor4Lie4Lil4LmC4Lil4LiBCivguJ7guKXguKfguIEKK+C4nuC4peC4p+C4hwor4Lie4Lil4Lin4LiU4LiB4Li04LiZ4Lil4Li54LiBCivguJ7guKXguKfguJTguYPguKvguI3guYgKK+C4nuC4peC4p+C4seC4lQor4Lie4Lil4Lio4Liy4Liq4LiV4Lij4LmMCivguJ7guKXguKjguLXguIHguKnguLIKK+C4nuC4peC4quC4tOC4h+C4q+C5jAor4Lie4Lil4LitCivguJ7guKXguYnguK0KK+C4nuC4peC4reC4hwor4Lie4Lil4Lit4LiUCivguJ7guKXguK3guJkKK+C4nuC4peC4reC4oeC5geC4nuC4peC4oQor4Lie4Lil4Lit4LiiCivguJ7guKXguYjguK3guKIKK+C4nuC4peC4sAor4Lie4Lil4Liw4LiB4Liz4Lil4Lix4LiHCivguJ7guKXguLDguJ7guKXguLIKK+C4nuC4peC4seC5iOC4gQor4Lie4Lil4Lix4LiHCivguJ7guKXguLHguYjguIcKK+C4nuC4peC4seC5ieC4hwor4Lie4Lil4Lix4LiUCivguJ7guKXguLHguJkKK+C4nuC4peC4seC4mgor4Lie4Lil4Lix4Lia4Lie4Lil4LiyCivguJ7guKXguLHguJrguJ7guKXguLbguIcKK+C4nuC4peC4seC5iOC4pwor4Lie4Lil4LmI4LiyCivguJ7guKXguLLguIHguKMKK+C4nuC4peC4suC4hwor4Lie4Lil4Liy4LiNCivguJ7guKXguLLguJQKK+C4nuC4peC4suC4lOC4tOC4qOC4seC4ogor4Lie4Lil4Liy4LiY4Li04LiB4Liy4LijCivguJ7guKXguYjguLLguJkKK+C4nuC4peC4suC4meC4suC4oeC4seC4ogor4Lie4Lil4Liy4LiZ4Li24LiBCivguJ7guKXguLLguKEKK+C4nuC4peC5iOC4suC4oQor4Lie4Lil4Liy4LiiCivguJ7guKXguLLguKLguKHguYnguLIKK+C4nuC4peC4suC4quC4leC4tOC4gQor4Lie4Lil4Liy4Liq4Lih4LiyCivguJ7guKXguLLguKvguIEKK+C4nuC4peC4swor4Lie4Lil4LmJ4LizCivguJ7guKXguLPguKDguLHguIcKK+C4nuC4peC4tAor4Lie4Lil4Li04LiBCivguJ7guKXguLTguJ7guLHguJcKK+C4nuC4peC4tOC5ieC4pwor4Lie4Lil4Li1CivguJ7guKXguLXguKHguLjguIIKK+C4nuC4peC4uAor4Lie4Lil4Li44LiBCivguJ7guKXguLjguYjguIEKK+C4nuC4peC4uOC4geC4nuC4peC5iOC4suC4mQor4Lie4Lil4Li44LmI4LiHCivguJ7guKXguLjguYnguJkKK+C4nuC4peC4uOC5iOC4oeC4nuC4peC5iOC4suC4oQor4Lie4Lil4Li44LmI4LiiCivguJ7guKXguLjguYnguKIKK+C4nuC4peC4uQor4Lie4Lil4Li54LmB4LiBCivguJ7guKXguLnguITguLLguKcKK+C4nuC4peC4ueC4leC5ieC4mQor4Lie4Lil4Li54LmC4LiVCivguJ7guKXguLnguYLguJfguYDguJnguLXguKLguKEKK+C4nuC4p+C4gQor4Lie4Lin4LiHCivguJ7guYjguKfguIcKK+C4nuC4p+C4mQor4Lie4Lin4LiiCivguJ7guKrguIEKK+C4nuC4quC4mQor4Lie4Liq4Li4CivguJ7guKrguLjguKrguIfguIHguKPguLLguJnguJXguYwKK+C4nuC4q+C4pQor4Lie4Lir4Li4CivguJ7guKvguLjguKUKK+C4nuC4q+C4uQor4Lie4LitCivguJ7guYjguK0KK+C4nuC5ieC4rQor4Lie4Lit4LiBCivguJ7guK3guIHguJ7guLnguJkKK+C4nuC4reC4hOC5gOC4geC4leC4muC4uOC4hAor4Lie4LmI4Lit4LiE4LmJ4Liy4LiV4Li14LmA4Lih4Li14LiiCivguJ7guK3guIcKK+C4nuC5ieC4reC4hwor4Lie4Lit4LiZCivguJ7guYnguK3guKEKK+C4nuC4reC5guC4peC5gOC4meC4teC4ouC4oQor4Lie4LiwCivguJ7guYjguLAKK+C4nuC4sOC4h+C4sgor4Lie4Liw4LiH4Liy4LiaCivguJ7guLDguIfguLLguJrguYYKK+C4nuC4sOC4iOC4hwor4Lie4Liw4LiX4Liz4Lih4Liw4Lij4LiHCivguJ7guLDguJnguK0KK+C4nuC4sOC5gOC4meC5ieC4suC4nuC4sOC4meC4rQor4Lie4Liw4LmA4LiZ4LmJ4Liy4Lie4Liw4LiZ4Li24LiHCivguJ7guLDguYDguJnguLTguJkKK+C4nuC4sOC5gOC4meC4teC4ouC4hwor4Lie4Liw4LmB4LiZ4LiHCivguJ7guLDguYTguJnguKIKK+C4nuC4sOC4nuC4suC4mQor4Lie4Liw4Lie4Li04LiHCivguJ7guLDguYDguJ7guLTguIcKK+C4nuC4sOC4ouC4reC4oQor4Lie4Liw4Lii4Li44Lie4Lii4Li44LiHCivguJ7guLDguKLguLnguIcKK+C4nuC4sOC4ouC4ueC4mQor4Lie4Liw4LmA4Lii4Li04LiaCivguJ7guLDguYDguKLguLTguJrguYYKK+C4nuC4sOC5gOC4ouC4teC4ogor4Lie4Liw4Lij4Li44LiH4Lie4Liw4Lij4Lix4LiHCivguJ7guLDguYDguKXguKIKK+C4nuC4sOC5guC4peC5iQor4Lie4Liw4LmE4LilCivguJ7guLDguKfguIcKK+C4nuC4sOC4p+C4seC4geC4nuC4sOC4p+C4mQor4Lie4Liw4Lin4LiyCivguJ7guLDguKfguYnguLLguJ7guLDguKfguLHguIcKK+C4nuC4sOC4reC4hwor4Lie4Liw4Lit4Liy4LiB4Lie4Liw4Lit4LizCivguJ7guLDguK3guLfguJTguJ7guLDguK3guKEKK+C4nuC4seC4gQor4Lie4Lix4LiB4LiV4Lij4LmMCivguJ7guLHguIHguJXguKPguLIKK+C4nuC4seC4geC4leC4sgor4Lie4Lix4LiB4LmB4Lie4LinCivguJ7guLHguIHguKMKK+C4nuC4seC4hwor4Lie4Lix4LiH4LiB4LiyCivguJ7guLHguIfguITguLIKK+C4nuC4seC4h+C4h+C4sgor4Lie4Lix4LiH4Lic4Li34LiUCivguJ7guLHguIfguJ7guKfguKIKK+C4nuC4seC4h+C4nuC4reC4mQor4Lie4Lix4LiH4Lie4Liy4LiZCivguJ7guLHguIfguJ7guLLguJoKK+C4nuC4seC4h+C5gOC4nuC4ogor4Lie4Lix4LiH4Lil4Liy4LiHCivguJ7guLHguIoKK+C4nuC4seC4iuC4meC4tQor4Lie4Lix4LiK4LijCivguJ7guLHguI3guIjguIEKK+C4nuC4seC4jeC4iOC4meC5jAor4Lie4Lix4LiS4LiB4Li1CivguJ7guLHguJLguJnguLAKK+C4nuC4seC4kuC4meC4sgor4Lie4Lix4LiUCivguJ7guLHguJTguIrguLIKK+C4nuC4seC4lOC4i+C4suC4lAor4Lie4Lix4LiU4LiU4Li24LiH4Liq4LmMCivguJ7guLHguJTguYHguJ7guKcKK+C4nuC4seC4lOC4q+C4peC4p+C4hwor4Lie4Lix4LiV4LiV4Li04LiH4Liq4LiwCivguJ7guLHguJXguKMKK+C4nuC4seC4l+C4mOC5jAor4Lie4Lix4LiX4LiY4Lii4LiyCivguJ7guLHguJfguKMKK+C4nuC4seC4mQor4Lie4Lix4LiZ4LiH4Li5CivguJ7guLHguJnguIjguLMKK+C4nuC4seC4meC5hOC4ieC4mQor4Lie4Lix4LiZ4LiV4Lix4LiZCivguJ7guLHguJnguJXguLkKK+C4nuC4seC4meC4l+C4suC4hwor4Lie4Lix4LiZ4LiY4LmMCivguJ7guLHguJnguJjguJnguLAKK+C4nuC4seC4meC4mOC4meC4swor4Lie4Lix4LiZ4LiY4LiwCivguJ7guLHguJnguJjguLgKK+C4nuC4seC4meC4mOC4uOC5jAor4Lie4Lix4LiZ4Lil4Lit4LiBCivguJ7guLHguJnguKXguLLguKIKK+C4nuC4seC4meC4peC4swor4Lie4Lix4LiZ4Lil4Li24LiBCivguJ7guLHguJnguKXguLbguIHguJ7guLHguJnguKXguLfguK0KK+C4nuC4seC4meC5gOC4peC4tOC4qAor4Lie4Lix4LiZ4LmA4Lit4Li04LiNCivguJ7guLHguJoKK+C4nuC4seC4muC4nOC5iOC4sgor4Lie4Lix4LifCivguJ7guLHguKXguKXguKAKK+C4nuC4seC4peC4p+C4seC4mQor4Lie4Lix4LinCivguJ7guLHguKfguLAKK+C4nuC4seC4qOC4lOC4tQor4Lie4Lix4Liq4LiU4Li4CivguJ7guLHguKrguYDguJTguLIKK+C4nuC4seC4quC4leC4o+C5jAor4Lie4Lix4Liq4LiW4Liy4LiZCivguJ7guLIKK+C4nuC4suC4gQor4Lie4Liy4LiB4LmA4Lie4Li14Lii4LijCivguJ7guLLguIHguKLguYwKK+C4nuC4suC4hwor4Lie4LmI4Liy4LiHCivguJ7guLLguIrguLUKK+C4nuC4suC4kwor4Lie4Liy4LiT4Li04LiKCivguJ7guLLguJPguLTguIrguKLguYwKK+C4nuC4suC4k+C4tOC4meC4tQor4Lie4Liy4LiT4Li1CivguJ7guLLguJQKK+C4nuC4suC4lOC5hOC4ieC4mQor4Lie4Liy4LiVCivguJ7guLLguJcKK+C4nuC4suC4l+C4ouC5jAor4Lie4Liy4LiYCivguJ7guLLguJjguLIKK+C4nuC4suC4mQor4Lie4LmI4Liy4LiZCivguJ7guLLguJnguKMKK+C4nuC4suC4oQor4Lie4Liy4LiiCivguJ7guYjguLLguKIKK+C4nuC4suC4ouC4oeC5ieC4sgor4Lie4Liy4Lii4Lix4LieCivguJ7guLLguKLguLgKK+C4nuC4suC4o+C5jOC5gOC4i+C4gQor4Lie4Liy4Lij4LiTCivguJ7guLLguKPguJPguLAKK+C4nuC4suC4o+C5jOC4leC5gOC4meC4reC4o+C5jAor4Lie4Liy4Lij4LiyCivguJ7guLLguKPguLLguJ/guLTguJkKK+C4nuC4suC4pQor4Lie4Liy4Lil4LiyCivguJ7guLLguKXguLUKK+C4nuC4suC4peC4teC4q+C4peC4suC4ouC4q+C4meC5ieC4sgor4Lie4Liy4Lil4Li44LiBCivguJ7guLLguYLguKUKK+C4nuC4suC5hOC4pQor4Lie4Liy4LiqCivguJ7guLLguKrguJnguYwKK+C4nuC4suC4quC4meC4sgor4Lie4Liy4Liq4Li44LiB4Lij4Li1CivguJ7guYjguLLguKvguYwKK+C4nuC4suC4q+C4meC4sAor4Lie4Liy4Lir4LiwCivguJ7guLLguKvguLIKK+C4nuC4suC4q+C4tOC4o+C4geC4sAor4Lie4Liy4Lir4Li04Lij4LiwCivguJ7guLLguKvguLgKK+C4nuC4suC5gOC4q+C4o+C4lAor4Lie4Liy4LmA4Lir4Li14Lii4LijCivguJ7guLLguKwKK+C4nuC4suC4rOC4q+C4sAor4Lie4Liy4Lis4LiwCivguJ7guLMKK+C4nuC4s+C5huC4nuC4tuC4oeC5hgor4Lie4Liz4LiZ4Lix4LiBCivguJ7guLPguJ7guKfguIEKK+C4nuC4s+C4nuC4tuC4oQor4Lie4Liz4Lil4LiyCivguJ7guLTguIHguKUKK+C4nuC4tOC4geC4quC4tOC4lQor4Lie4Li04LiB4Lix4LiUCivguJ7guLTguIHguLHguJXguLQKK+C4nuC4tOC4geC4seC4mQor4Lie4Li04LiB4Liy4LijCivguJ7guLTguIHguLjguKUKK+C4nuC4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lie4Li04LiG4LiZ4LmMCivguJ7guLTguIbguYDguJnguKgKK+C4nuC4tOC4huC5gOC4meC4qOC4p+C4owor4Lie4Li04LiG4Liy4LiVCivguJ7guLTguIcKK+C4nuC4tOC4iOC4pQor4Lie4Li04LiI4Lix4LiiCivguJ7guLTguIjguLLguKMKK+C4nuC4tOC4iOC4suC4o+C4k+C5jAor4Lie4Li04LiI4Liy4Lij4LiT4LiyCivguJ7guLTguIjguLTguJUKK+C4nuC4tOC4iOC4tOC4leC4owor4Lie4Li04LiK4LiN4LmMCivguJ7guLTguIrguKIKK+C4nuC4tOC4iuC4seC4ogor4Lie4Li04LiK4Liy4LiZCivguJ7guLTguIrguLTguJUKK+C4nuC4tOC5gOC4iuC4kAor4Lie4Li04LmA4LiK4Li14Lii4LijCivguJ7guLTguJHguLnguKPguKLguYwKK+C4nuC4tOC4kwor4Lie4Li04LiU4LiX4Li54LilCivguJ7guLTguJTguKPguIEKK+C4nuC4tOC4lOC4suC4mQor4Lie4Li04LmC4LiU4LijCivguJ7guLTguJXguKMKK+C4nuC4tOC4luC4tQor4Lie4Li04LiW4Li14Lie4Li04LiW4Lix4LiZCivguJ7guLTguJfguKLguYwKK+C4nuC4tOC4l+C4ouC4sgor4Lie4Li04LiX4Lix4LiB4Lip4LmMCivguJ7guLTguJfguLHguIHguKnguYzguKrguLHguJnguJXguLQKK+C4nuC4tOC4l+C4ueC4owor4Lie4Li04LmA4LiX4LioCivguJ7guLTguJjguLLguJkKK+C4nuC4tOC4mOC4tQor4Lie4Li04LiY4Li4CivguJ7guLTguJjguLjguKMKK+C4nuC4tOC5guC4mOC5iAor4Lie4Li04LiZ4LiX4Li4CivguJ7guLTguJnguJ7guIcKK+C4nuC4tOC5iOC4meC4nuC4seC5iOC4hwor4Lie4Li04LiZ4Lit4Lia4Lie4Li04LmA4LiX4LiyCivguJ7guLTguJnguLHguKIKK+C4nuC4tOC4meC4suC4qAor4Lie4Li04LiZ4Li04LiICivguJ7guLTguJnguLTguJUKK+C4nuC4tOC4meC4tOC4qAor4Lie4Li04LiZ4Li04Lio4LiI4Lix4LiiCivguJ7guLTguYDguJnguJUKK+C4nuC4tOC4muC4seC4leC4tAor4Lie4Li04Lia4Liy4LiBCivguJ7guLTguJrguLjguKUKK+C4nuC4tOC4muC4ueC4pQor4Lie4Li04Lib4Lij4Li04LiVCivguJ7guLTguJvguKXguLLguKgKK+C4nuC4tOC4m+C4seC4quC4quC4meC4sgor4Lie4Li04Lie4Lij4Lij4LiYCivguJ7guLTguJ7guKPguKPguJjguJnguYwKK+C4nuC4tOC4nuC4seC4geC4nuC4tOC4nuC5iOC4p+C4mQor4Lie4Li04Lie4Lix4LiSCivguJ7guLTguJ7guLHguJLguJnguYwKK+C4nuC4tOC4nuC4suC4geC4qeC5jAor4Lie4Li04Lie4Liy4LiB4Lip4LiyCivguJ7guLTguJ7guLLguJcKK+C4nuC4tOC4nuC4tOC4mAor4Lie4Li04Lig4LieCivguJ7guLTguKDguLHguIoKK+C4nuC4tOC4oOC4suC4hAor4Lie4Li04Lig4Li54Lip4LiT4LiwCivguJ7guLTguYDguKDguIEKK+C4nuC4tOC4oeC4nuC5jAor4Lie4Li04Lih4Lie4LiB4Liy4Lij4Lix4LiHCivguJ7guLTguKHguJ7guLIKK+C4nuC4tOC4oeC5guC4nuC4q+C4meC4sAor4Lie4Li04Lih4LilCivguJ7guLTguKHguYDguKrguJkKK+C4nuC4tOC4oeC4suC4mQor4Lie4Li04Lih4Li44LiCCivguJ7guLTguYLguKHguIHguILguYwKK+C4nuC4tOC5guC4oeC4geC4qeC5jAor4Lie4Li04LmC4Lii4LiB4Lie4Li04LmA4LiB4LiZCivguJ7guLTguYLguKLguIQKK+C4nuC4tOC4owor4Lie4Li04Lij4Lit4LiUCivguJ7guLTguKPguLLguIHguKUKK+C4nuC4tOC4o+C4suC4mgor4Lie4Li04Lij4Liy4LihCivguJ7guLTguKPguLLguKXguLHguKIKK+C4nuC4tOC4o+C4tOC4ouC4sAor4Lie4Li04Lij4Li14LmJ4Lie4Li04LmE4LijCivguJ7guLTguKPguLjguJMKK+C4nuC4tOC4o+C4uOC4mAor4Lie4Li04Lij4Li44Lis4Lir4LmMCivguJ7guLTguYDguKPguJnguJfguKPguYwKK+C4nuC4tOC5gOC4o+C4suC4sAor4Lie4Li04LmC4Lij4LiYCivguJ7guLTguYLguKPguJjguJnguLAKK+C4nuC4tOC5hOC4owor4Lie4Li04Lil4Lix4LiH4LiB4Liy4Liq4LiyCivguJ7guLTguKXguLLguJsKK+C4nuC4tOC4peC4suC4peC4qgor4Lie4Li04Lil4Liy4LiqCivguJ7guLTguKXguLTguJvguJTguLIKK+C4nuC4tOC5guC4peC4pQor4Lie4Li04LmE4LilCivguJ7guLTguKgKK+C4nuC4tOC4qOC4p+C4hwor4Lie4Li04Lio4Lin4Liy4LiqCivguJ7guLTguKjguLLguKUKK+C4nuC4tOC4qOC4uOC4l+C4mOC4tOC5jAor4Lie4Li04LmA4Lio4LipCivguJ7guLTguKkKK+C4nuC4tOC4qeC4kOC4suC4mQor4Lie4Li04Lip4LiZ4Liy4Lio4LiZ4LmMCivguJ7guLTguKrguJTguLLguKMKK+C4nuC4tOC4quC4oeC4owor4Lie4Li04Liq4Lih4Lix4LiiCivguJ7guLTguKrguLHguIcKK+C4nuC4tOC4quC4seC4igor4Lie4Li04Liq4Lix4LiN4LiN4Li1CivguJ7guLTguKrguLHguKIKK+C4nuC4tOC4quC4tOC4kAor4Lie4Li04Liq4Li44LiX4LiY4Li04LmMCivguJ7guLTguKrguLnguIjguJnguYwKK+C4nuC4tOC4q+C4hAor4Lie4Li04Lir4Liy4LijCivguJ7guLTguKzguLLguKMKK+C4nuC4tQor4Lie4Li14LmICivguJ7guLXguYkKK+C4nuC4teC4igor4Lie4Li14LiK4LiE4LiT4Li04LiVCivguJ7guLXguYnguYLguJ7guYkKK+C4nuC4teC4o+C4sOC4oeC4tOC4lAor4Lie4Li24LiHCivguJ7guLbguYjguIcKK+C4nuC4tuC5iOC4mgor4Lie4Li24LihCivguJ7guLbguKHguJ7guLMKK+C4nuC4t+C4igor4Lie4Li34LiUCivguJ7guLfguYnguJkKK+C4nuC4uAor4Lie4Li44LiBCivguJ7guLjguIHguLLguKEKK+C4nuC4uOC4hwor4Lie4Li44LmI4LiHCivguJ7guLjguIfguYHguIEKK+C4nuC4uOC4h+C4iOC4hwor4Lie4Li44LiH4LiU4LitCivguJ7guLjguIfguJfguLDguKXguLLguKIKK+C4nuC4uOC4h+C4m+C4peC4sgor4Lie4Li44LiSCivguJ7guLjguJLguLQKK+C4nuC4uOC4lAor4Lie4Li44LiU4LiV4Liy4LiZCivguJ7guLjguJfguJgKK+C4nuC4uOC4l+C4mOC4iuC4suC4lAor4Lie4Li44LiX4LiY4Lij4Lix4LiB4Lip4LiyCivguJ7guLjguJfguJjguLAKK+C4nuC4uOC4l+C4mOC4tAor4Lie4Li44LiX4LmC4LiY4LmICivguJ7guLjguJfguKPguLIKK+C4nuC4uOC4mAor4Lie4Li44LmI4LihCivguJ7guLjguKHguYDguKPguLXguKLguIcKK+C4nuC4uOC5ieC4ogor4Lie4Li5CivguJ7guLnguYgKK+C4nuC4ueC4geC4suC4oQor4Lie4Li54LiUCivguJ7guLnguJkKK+C4nuC4ueC5ieC4mQor4LmA4LieCivguYDguJ7guYfguIEKK+C5gOC4nuC4geC4sgor4LmA4Lie4LiE4LiwCivguYDguJ7guYfguIcKK+C5gOC4nuC5iOC4hwor4LmA4Lie4LmH4LiICivguYDguJ7guIrguInguKXguLnguIHguKPguKPguKEKK+C5gOC4nuC4iuC4jOC4huC4suC4lQor4LmA4Lie4LiK4LijCivguYDguJ7guIrguKPguIHguKXguLHguJoKK+C5gOC4nuC4iuC4o+C4lOC4sgor4LmA4Lie4LiK4Lij4LiZ4Li04Lil4LiI4Li04LiZ4LiU4LiyCivguYDguJ7guIrguKPguJvguKPguLLguJPguLUKK+C5gOC4nuC4iuC4o+C4pOC4geC4qeC5jAor4LmA4Lie4LiK4Lij4Liq4Lix4LiH4LiG4Liy4LiVCivguYDguJ7guIrguKPguKvguKXguLXguIEKK+C5gOC4nuC4iuC4o+C4q+C4tuC4hwor4LmA4Lie4LiK4Lij4Liy4Lii4Li44LiYCivguYDguJ7guYfguI0KK+C5gOC4nuC4keC4ueC4o+C4tOC4ouC5jAor4LmA4Lie4LiT4Li1CivguYDguJ7guYfguJTguJfguLnguKUKK+C5gOC4nuC4lOC4suC4mQor4LmA4Lie4LiV4LijCivguYDguJ7guJcKK+C5gOC4nuC4l+C4meC4sgor4LmA4Lie4LiX4Lii4Liy4LiY4LijCivguYDguJ7guJfguLLguKIKK+C5gOC4nuC4l+C4uOC4muC4suC4ogor4LmA4Lie4LmC4LiX4Lia4Liy4LiiCivguYDguJ7guJnguIHguKfguLTguJkKK+C5gOC4nuC5iOC4meC4nuC5iOC4suC4mQor4LmA4Lie4LiZ4Li14Lii4LiUCivguYDguJ7guYnguKIKK+C5gOC4nuC4o+C4hwor4LmA4Lie4Lij4LiL4Li14LmC4Lit4LiU4Li14LmA4Lih4Li14Lii4LihCivguYDguJ7guKPguLIKK+C5gOC4nuC4o+C4suC4sAor4LmA4Lie4Lij4Li04LiUCivguYDguJ7guKPguLTguKgKK+C5gOC4nuC4o+C4teC4ouC4gQor4LmA4Lie4Lij4Li14Lii4LiHCivguYDguJ7guKPguLXguKLguJoKK+C5gOC4nuC4o+C4teC5ieC4ouC4oQor4LmA4Lie4Lij4Li14Lii4LinCivguYDguJ7guKPguLfguYjguK0KK+C5gOC4nuC4o+C4t+C4reC4hwor4LmA4Lie4LilCivguYDguJ7guKXguIcKK+C5gOC4nuC4peC5h+C4lAor4LmA4Lie4Lil4LmJ4LmC4Lie4Lil4LmJCivguYDguJ7guKXguLIKK+C5gOC4nuC4peC4suC4sAor4LmA4Lie4Lil4Liy4Liw4LmB4Lie4Lil4LiwCivguYDguJ7guKXguLTguIcKK+C5gOC4nuC4peC4tOC4lOC5gOC4nuC4peC4tOC4mQor4LmA4Lie4Lil4Li04LiZCivguYDguJ7guKXguLXguKIKK+C5gOC4nuC4peC4teC5ieC4ogor4LmA4Lie4Lil4Li14LmI4Lii4LiHCivguYDguJ7guKgKK+C5gOC4nuC4qOC4ouC4seC4meC4lOC4owor4LmA4Lie4LiqCivguYDguJ7guKrguKXguLLguJQKK+C5gOC4nuC5iOC4rQor4LmA4Lie4LmJ4LitCivguYDguJ7guK3guLTguI0KK+C5gOC4nuC4sAor4LmA4Lie4Li04LiBCivguYDguJ7guLTguIHguYDguInguKIKK+C5gOC4nuC4tOC4hwor4LmA4Lie4Li04LmI4LiHCivguYDguJ7guLTguJTguYDguJ7guYnguKIKK+C5gOC4nuC4tOC5iOC4oQor4LmA4Lie4Li14LmJ4LiiCivguYDguJ7guLXguKLguIcKK+C5gOC4nuC4teC5ieC4ouC4hwor4LmA4Lie4Li14Lii4LiH4Lit4LitCivguYDguJ7guLXguKLguIrguJnguYwKK+C5gOC4nuC4teC4ouC4mQor4LmA4Lie4Li14LmJ4Lii4LiZCivguYDguJ7guLXguKLguJoKK+C5gOC4nuC4teC4ouC4owor4LmA4Lie4Li34LmI4LitCivguYDguJ7guLfguYjguK3guJkKK+C5geC4ngor4LmB4Lie4LmJCivguYHguJ7guIcKK+C5geC4nuC5iOC4hwor4LmB4Lie4LiH4Lie4Lin4LiiCivguYHguJ7guIfguJ7guKfguKLguJ3guKPguLHguYjguIcKK+C5geC4nuC5h+C4h+C5geC4nuC4pwor4LmB4Lie4LiX4Lii4LmMCivguYHguJ7guJfguKLguLIKK+C5geC4nuC4mQor4LmB4Lie4LmI4LiZCivguYHguJ7guJnguIEKK+C5geC4nuC4meC4h+C5gOC4iuC4tOC4hwor4LmB4Lie4LiZ4LiU4LiyCivguYHguJ7guKMKK+C5geC4nuC4o+C5iAor4LmB4Lie4Lij4LiBCivguYHguJ7guKPguYjguIcKK+C5geC4nuC4o+C4pwor4LmB4Lie4Lij4LmJ4LinCivguYHguJ7guKXguIcKK+C5geC4nuC4peC4l+C4tOC4meC4seC4oQor4LmB4Lie4Lil4LihCivguYHguJ7guKXguYDguKXguYDguJTguLXguKLguKEKK+C5geC4nuC4peC4sAor4LmB4Lie4Lil4Liw4LmC4Lil4LihCivguYHguJ7guKcKK+C5geC4nuC5ieC4pwor4LmB4Lie4Lio4Lii4LmMCivguYHguJ7guKjguKLguLIKK+C5geC4nuC4sAor4LmB4Lie4Liw4LmC4Lil4LihCivguYLguJ4KK+C5guC4nuC4gQor4LmC4Lie4LiB4Lie4Liy4LiiCivguYLguJ7guIcKK+C5guC4nuC4h+C4nuC4suC4hwor4LmC4Lie4LiK4LiM4LiH4LiE4LmMCivguYLguJ7guIvguLTguJXguKPguK3guJkKK+C5guC4nuC4lAor4LmC4Lie4LmB4LiX4Liq4LmA4LiL4Li14Lii4LihCivguYLguJ7guJgKK+C5guC4nuC4mOC4tOC5jAor4LmC4Lie4LiZCivguYLguJ7guYnguJkKK+C5guC4nuC4meC4l+C4sOC4meC4sgor4LmC4Lie4Lia4Liy4LiiCivguYLguJ7guJzguLHguJkKK+C5guC4nuC4ogor4LmC4Lie4Lii4LihCivguYLguJ7guKLguKHguLHguJkKK+C5guC4nuC4ouC4oeC4suC4mQor4LmC4Lie4Lij4LiBCivguYLguJ7guKPguIcKK+C5guC4nuC4o+C5guC4l+C5geC4reC4geC4l+C4tOC5gOC4meC4teC4ouC4oQor4LmC4Lie4Lij4Lih4Li14LmA4LiX4Li14Lii4LihCivguYLguJ7guKPguLDguJTguIEKK+C5guC4nuC4peC5iAor4LmC4Lie4Lil4LiHCivguYLguJ7guKXguYjguIcKK+C5guC4nuC4peC5ieC4hwor4LmC4Lie4Lil4LiZCivguYLguJ7guKXguYnguYDguJ7guKXguYkKK+C5guC4nuC4peC4sAor4LmC4Lie4Liq4LieCivguYTguJ4KK+C5hOC4nuC5iAor4LmE4Lie4LiI4Li04LiV4LijCivguYTguJ7guIrguJkKK+C5hOC4nuC4iuC4ouC4meC4leC5jAor4LmE4Lie4LiR4Li54Lij4Lii4LmMCivguYTguJ7guYLguJTguKMKK+C5hOC4nuC4l+C4tQor4LmE4Lie4Lia4Li54Lil4Lii4LmMCivguYTguJ7guJ7guKPguKPguJMKK+C5hOC4nuC5gOC4nuC4tOC4lAor4LmE4Lie4Lih4Lit4LiBCivguYTguJ7guKHguYnguLIKK+C5hOC4nuC4owor4LmE4Lie4Lij4LmICivguYTguJ7guKPguIjguLTguJXguKMKK+C5hOC4nuC4o+C4iuC4mQor4LmE4Lie4Lij4LiK4Lii4LiZ4LiV4LmMCivguYTguJ7guKPguJHguLnguKPguKLguYwKK+C5hOC4nuC4o+C4l+C4tQor4LmE4Lie4Lij4Lia4Li54Lil4Lii4LmMCivguYTguJ7guKPguYDguKPguLLguLAKK+C5hOC4nuC4o+C4quC4suC4oeC4geC4rQor4LmE4Lie4Lij4Lix4LiKCivguYTguJ7guKPguLMKK+C5hOC4nuC4o+C4tOC4mQor4LmE4Lie4Lij4Li1CivguYTguJ7guKPguLkKK+C5hOC4nuC5gOC4o+C4suC4sAor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMCivguYTguJ7guKUKK+C5hOC4nuC4peC5iAor4LmE4Lie4Lio4Liy4LiCCivguYTguJ7guKjguLLguKUKK+C5hOC4nuC5gOC4qOC4qQor4LmE4Lie4Liq4LieCivguYTguJ7guKrguLTguJAKK+C5hOC4nuC4q+C4suC4owor4LifCivguJ/guIEKK+C4n+C5ieC4hwor4Lif4Lij4Lix4LiB4LmC4LiX4LiqCivguJ/guKPguLUKK+C4n+C4peC4reC4o+C5jOC5guC4iuC4p+C5jAor4Lif4Lil4Li54Lit4Lit4Lij4Li14LiZCivguJ/guYjguK0KK+C4n+C5ieC4rQor4Lif4Lit4LiBCivguJ/guK3guIcKK+C4n+C5iOC4reC4hwor4Lif4LmJ4Lit4LiHCivguJ/guK3guJQKK+C4n+C4reC4mQor4Lif4LmI4Lit4LiZCivguJ/guYnguK3guJkKK+C4n+C5ieC4reC5geC4n+C5iQor4Lif4Lit4Lij4LmM4LihCivguJ/guK3guKPguYzguKHguLLguKXguJTguLXguYTguK7guJTguYwKK+C4n+C4reC4o+C5jOC4oeC4suC4peC4tOC4mQor4Lif4Lit4Liq4LiL4Li04LilCivguJ/guK3guKrguJ/guK3guKPguLHguKoKK+C4n+C4reC4quC5gOC4n+C4lQor4Lif4Liw4Lif4Lix4LiUCivguJ/guLDguJ/guLHguYjguJkKK+C4n+C4sOC4n+C5iOC4suC4ogor4Lif4Lix4LiBCivguJ/guLHguIHguJ/guLjguYnguJkKK+C4n+C4seC4hwor4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZCivguJ/guLHguIfguYDguJ7guKPguLLguLAKK+C4n+C4seC4lAor4Lif4Lix4LiZCivguJ/guLHguYjguJkKK+C4n+C4seC5ieC4mQor4Lif4Lix4LiZ4LiK4LmJ4Liy4LiHCivguJ/guYnguLIKK+C4n+C4suC4gQor4Lif4Liy4LiHCivguJ/guYjguLLguIcKK+C4n+C4suC4lAor4Lif4Liy4LiX4Lit4LihCivguJ/guLLguJkKK+C4n+C5ieC4suC4neC5iOC4rQor4Lif4LmI4Liy4LihCivguJ/guYnguLLguKHguLjguYjguKIKK+C4n+C4suC4ogor4Lif4Liy4Lij4LmM4LihCivguJ/guLLguKrguIvguLTguKrguJXguYwKK+C4n+C4tOC4gQor4Lif4Li04LiUCivguJ/guLTguJUKK+C4n+C4tOC4mgor4Lif4Li04Lil4LmM4LihCivguJ/guLTguKfguKrguYwKK+C4n+C4tOC4quC4tOC4geC4quC5jAor4Lif4Li14LmICivguJ/guLXguYkKK+C4n+C4t+C4mQor4Lif4Li34LmJ4LiZCivguJ/guLfguKEKK+C4n+C4uAor4Lif4Li44LmJ4LiHCivguJ/guLjguJUKK+C4n+C4uOC4mQor4Lif4Li44LiaCivguJ/guLjguYjguJoKK+C4n+C4uOC4n+C4sAor4Lif4Li44LmI4Lih4LmA4Lif4Li34Lit4LiiCivguJ/guLjguKXguKrguYHguIHguYrguJsKK+C4n+C4uQor4Lif4Li54LmICivguJ/guLnguIEKK+C4n+C4ueC4lAor4Lif4Li54LihCivguYDguJ/guYfguJQKK+C5gOC4n+C5ieC4mQor4LmA4Lif4Lil4LiU4LmM4Liq4Lib4Liy4Lij4LmMCivguYDguJ/guYnguK0KK+C5gOC4n+C4reC4o+C5jOC4meC4tOC5gOC4iOC4reC4o+C5jAor4LmA4Lif4Lit4Lij4LmM4LmA4Lih4Li14Lii4LihCivguYDguJ/guK3guLAKK+C5gOC4n+C4sAor4LmA4Lif4Li04LiZCivguYDguJ/guLTguKPguYzguJkKK+C5gOC4n+C4teC5ieC4ouC4oQor4LmA4Lif4Li14LmJ4Lii4LinCivguYDguJ/guLfguK0KK+C5gOC4n+C4t+C5iOC4rQor4LmA4Lif4Li34LmJ4LitCivguYDguJ/guLfguK3guIcKK+C5gOC4n+C4t+C5ieC4reC4hwor4LmA4Lif4Li34Lit4LiZCivguYDguJ/guLfguK3guKIKK+C5geC4n+C5iAor4LmB4Lif4LiHCivguYHguJ/guIrguLHguYjguJkKK+C5geC4n+C4mQor4LmB4Lif4LiZ4LiL4Li1CivguYHguJ/guJoKK+C5geC4n+C5ieC4oQor4LmB4Lif4Lij4LmMCivguYHguJ/guKPguJnguYDguIvguLXguKLguKEKK+C5geC4n+C4peC4geC4i+C5jAor4LmB4Lif4Lil4LiVCivguYHguJ/guLAKK+C5guC4n+C4geC4seC4qgor4LmE4LifCivguKAKK+C4oOC4hAor4Lig4LiE4Lin4LiU4Li1CivguKDguITguKfguLHguJUKK+C4oOC4hOC4p+C4seC4l+C4hOC4teC4leC4sgor4Lig4LiE4Lin4Lix4LiZ4LiV4LmMCivguKDguITguKfguLHguKEKK+C4oOC4hOC4p+C4sgor4Lig4LiE4Lin4Liy4LiZCivguKDguITguLHguJnguJfguKXguLIKK+C4oOC4hOC4tOC4meC4tQor4Lig4LiTCivguKDguJPguLTguJTguLIKK+C4oOC4ngor4Lig4Lih4LiB4Liy4LijCivguKDguKHguKMKK+C4oOC4oeC4uAor4Lig4Lih4Li44LiB4LiwCivguKDguKHguLjguIHguLIKK+C4oOC4ouC4seC4meC4leC4o+C4suC4ogor4Lig4Lii4Liy4LiE4LiV4Li0CivguKDguKMKK+C4oOC4o+C4k+C4tQor4Lig4Lij4LiVCivguKDguKPguJXguKfguKPguKPguKkKK+C4oOC4o+C4leC4qOC4suC4quC4leC4o+C5jAor4Lig4Lij4Lij4LiU4LijCivguKDguKPguKPguJTguLIKK+C4oOC4o+C4o+C4ouC4sgor4Lig4Lij4Liw4Lih4LijCivguKDguKPguLDguKHguKPguLUKK+C4oOC4o+C4seC4quC4lOC4suC4qQor4Lig4Lij4Liy4LiU4LijCivguKDguKPguLLguJTguLIKK+C4oOC4o+C4tOC4ouC4sgor4Lig4Lij4Li5CivguKDguKTguIfguITguLLguKMKK+C4oOC4pOC4lOC4gQor4Lig4Lik4LiU4Li1CivguKDguKTguJXguKLguYwKK+C4oOC4pOC4qAor4Lig4Lik4Lip4LiP4LmMCivguKDguKcKK+C4oOC4p+C4seC4hOC4owor4Lig4Lin4Lix4LiH4LiE4LmMCivguKDguLHguIHguILguLAKK+C4oOC4seC4geC4lOC4tQor4Lig4Lix4LiB4LiV4LiwCivguKDguLHguIHguJXguLQKK+C4oOC4seC4geC4qeC5jAor4Lig4Lix4LiECivguKDguLHguITguJnguYwKK+C4oOC4seC4h+C4hOC4sAor4Lig4Lix4LiH4LiE4Li1CivguKDguLHguIgKK+C4oOC4seC4jeC4iuC4sAor4Lig4Lix4LiT4LiR4LmMCivguKDguLHguJPguJHguITguKPguKPguKAKK+C4oOC4seC4k+C4keC4meC4sAor4Lig4Lix4LiT4LiR4Liy4LiE4Liy4LijCivguKDguLHguJPguJHguLLguITguLLguKPguLTguIEKK+C4oOC4seC4k+C4keC4suC4o+C4seC4geC4qeC5jAor4Lig4Lix4LiT4LiR4Li5CivguKDguLHguJUKK+C4oOC4seC4leC4owor4Lig4Lix4LiX4LijCivguKDguLHguJ4KK+C4oOC4seC4ogor4Lig4Lix4Liq4LiU4LiyCivguKDguLHguKrguJXguKPguLIKK+C4oOC4seC4quC4oeC4sAor4Lig4Lix4Liq4Liq4LijCivguKDguLIKK+C4oOC4suC4hAor4Lig4Liy4LiE4Lig4Li54Lih4Li0CivguKDguLLguITguKLguYwKK+C4oOC4suC4hOC4ouC4suC4meC4uOC4p+C4seC4leC4tAor4Lig4Liy4LiE4Li04LiZ4Li1CivguKDguLLguITguLTguYTguJnguKIKK+C4oOC4suC4hOC4tQor4Lig4Liy4LiE4Li14Lii4LiwCivguKDguLLguIrguJnguLAKK+C4oOC4suC4iuC4tQor4Lig4Liy4LiTCivguKDguLLguJPguIEKK+C4oOC4suC4k+C4tQor4Lig4Liy4LiT4Li4CivguKDguLLguJTguKMKK+C4oOC4suC4lOC4sgor4Lig4Liy4LiV4LijCivguKDguLLguJXguLIKK+C4oOC4suC4leC4tOC4geC4sAor4Lig4Liy4LiV4Li04Lii4LiwCivguKDguLLguJXguLgKK+C4oOC4suC4ngor4Lig4Liy4Lie4Lii4LmMCivguKDguLLguJ7guKLguJnguJXguYwKK+C4oOC4suC4oQor4Lig4Liy4LiiCivguKDguLLguKMKK+C4oOC4suC4o+C4lOC4tQor4Lig4Liy4Lij4LiVCivguKDguLLguKPguJXguLUKK+C4oOC4suC4o+C4ouC4l+C4o+C4seC4nuC4ouC5jAor4Lig4Liy4Lij4Lii4LiyCivguKDguLLguKPguYLguKPguIcKK+C4oOC4suC4o+C4sAor4Lig4Liy4Lij4LiyCivguKDguLLguKfguJnguLIKK+C4oOC4suC4p+C4sAor4Lig4Liy4LipCivguKDguLLguKnguIEKK+C4oOC4suC4qeC4k+C5jAor4Lig4Liy4Lip4LiyCivguKDguLLguKnguLTguJUKK+C4oOC4suC4qeC4tQor4Lig4Liy4LiqCivguKDguLLguKrguJnguYwKK+C4oOC4suC4quC4sgor4Lig4Liy4Liq4Li44LijCivguKDguLTguIHguILguLIKK+C4oOC4tOC4geC4guC4uAor4Lig4Li04LiB4LiC4Li44LiZ4Li1CivguKDguLTguIHguKnguLIKK+C4oOC4tOC4geC4qeC4uAor4Lig4Li04LiB4Lip4Li44LiT4Li1CivguKDguLTguIfguITguLLguKMKK+C4oOC4tOC4h+C4qgor4Lig4Li04LiH4Liq4LiZ4LiwCivguKDguLTguIfguKrguKMKK+C4oOC4tOC4jeC5guC4jQor4Lig4Li04LiV4LiV4Li0CivguKDguLTguJcKK+C4oOC4tOC4meC4l+C5jAor4Lig4Li04Lii4LmC4LiiCivguKDguLTguKPguKHguKLguYwKK+C4oOC4tOC4o+C4oeC4ouC5jOC4quC4uOC4o+C4suC4h+C4hOC5jAor4Lig4Li04Lip4Lix4LiKCivguKDguLTguKoKK+C4oOC4tOC4quC4seC4gQor4Lig4Li14LiV4LiwCivguKDguLXguKEKK+C4oOC4teC4o+C4uAor4Lig4Li44LiB4LiV4LmMCivguKDguLjguILguLHguJkKK+C4oOC4uOC4igor4Lig4Li44LiN4LiKCivguKDguLjguJUKK+C4oOC4uOC4oQor4Lig4Li44Lih4Lij4LiwCivguKDguLjguKHguKPguLIKK+C4oOC4uOC4oeC4o+C4tOC4mQor4Lig4Li44Lih4Lij4Li1CivguKDguLjguKHguYDguKPguKgKK+C4oOC4uOC4qgor4Lig4Li5CivguKDguLnguYgKK+C4oOC4ueC5guC4igor4Lig4Li54LiU4Liy4LiUCivguKDguLnguJUKK+C4oOC4ueC4leC4tAor4Lig4Li54LiV4Li1CivguKDguLnguKEKK+C4oOC4ueC4oeC4tAor4Lig4Li54Lih4Li04LiE4Li44LmJ4Lih4LiB4Lix4LiZCivguKDguLnguKHguLTguYHguJ7guYkKK+C4oOC4ueC4oeC4tQor4Lig4Li54Lij4LmC4Lil4LiBCivguKDguLnguKPguLQKK+C4oOC4ueC4o+C4tQor4Lig4Li54Lip4LiyCivguKDguLnguKnguLTguJUKK+C5gOC4oOC4geC4sAor4LmA4Lig4LiE4LiwCivguYDguKDguJXguKPguLIKK+C5gOC4oOC4lwor4LmA4Lig4Lij4LinCivguYDguKDguKPguLQKK+C5gOC4oOC4o+C4tQor4LmA4Lig4Liq4Lix4LiKCivguYDguKDguKrguLHguIrguYDguJ7guKXguLIKK+C5guC4oOC4hAor4LmC4Lig4LiE4LiX4Lij4Lix4Lie4Lii4LmMCivguYLguKDguITguKDguLHguJPguJHguYwKK+C5guC4oOC4hOC4ouC4l+C4o+C4seC4nuC4ouC5jAor4LmC4Lig4LiE4Li04LiZCivguYLguKDguITguLUKK+C5guC4oOC5hOC4hOC4ogor4LmC4Lig4LmE4LiE4Lio4Lin4Lij4Lij4Lii4LmMCivguYLguKDguIoKK+C5guC4oOC4iuC4gQor4LmC4Lig4LiK4LiZ4LmMCivguYLguKDguIrguJnguLAKK+C5guC4oOC4iuC4meC4suC4geC4owor4LmC4Lig4LiK4LiZ4Liy4LiB4Liy4LijCivguYLguKDguIrguJnguLLguKvguLLguKMKK+C5hOC4oOC4o+C4ngor4LmE4Lig4Lij4Li04LiZCivguYTguKDguKPguLUKK+C5hOC4oOC4qeC4seC4iuC4hOC4uOC4o+C4uAor4LmE4Lig4Lip4Lix4LiK4Lii4LmMCivguKEKK+C4oeC4gQor4Lih4LiB4LijCivguKHguIHguKPguIHguLjguJPguJHguKUKK+C4oeC4geC4o+C5gOC4geC4leC4meC5jAor4Lih4LiB4Lij4LiY4Lin4Lix4LiKCivguKHguIHguKPguJ7guLLguKvguJkKK+C4oeC4geC4o+C4suC4geC4owor4Lih4LiB4Lij4Liy4LiE4LihCivguKHguIHguKPguLLguKXguLHguKIKK+C4oeC4geC4o+C4suC4p+C4suC4qgor4Lih4LiB4LiqCivguKHguIHguLjguI4KK+C4oeC4geC4uOC4pQor4Lih4LiE4LiYCivguKHguIYKK+C4oeC4huC4p+C4seC4mQor4Lih4LiG4LiyCivguKHguYjguIcKK+C4oeC4h+C4geC4uOC4jgor4Lih4LiH4LmC4LiB4Lij4LiiCivguKHguIfguITguKUKK+C4oeC4h+C4hOC4peC4iOC4seC4geC4owor4Lih4LiH4LiE4Lil4Lie4Li04LiY4Li1CivguKHguIfguITguKXguKfguLLguJcKK+C4oeC4h+C4hOC4peC4p+C4suC4owor4Lih4LiH4LiE4Lil4Liq4Lih4Lij4LiqCivguKHguIfguITguKXguKrguKHguLHguKIKK+C4oeC4h+C4hOC4peC4quC4ueC4leC4owor4Lih4LiH4LiE4Lil4Lir4Lix4LiV4LiW4Li1CivguKHguJPguJHguYwKK+C4oeC4k+C4keC4gQor4Lih4LiT4LiR4LiZ4LiwCivguKHguJPguJHguJsKK+C4oeC4k+C4keC4pQor4Lih4LiT4LiR4LiyCivguKHguJPguJHguLLguKPguJ4KK+C4oeC4k+C4keC4tOC4owor4Lih4LiT4LmA4LiR4Li14Lii4LijCivguKHguJPguLUKK+C4oeC4lAor4Lih4LiU4LmA4LiX4LmH4LiICivguKHguJTguKLguK3guJoKK+C4oeC4lOC4peC4ueC4gQor4Lih4LiU4Liy4LiiCivguKHguJTguLUKK+C4oeC4leC4sAor4Lih4LiV4Li0CivguKHguJcKK+C4oeC4l+C4meC4sAor4Lih4LiX4LiZ4Li14Lii4LiwCivguKHguJjguLgKK+C4oeC4mOC4uOC4o+C4sAor4Lih4LiZCivguKHguYjguJkKK+C4oeC4meC4leC5jAor4Lih4LiZ4LiV4Lij4LmMCivguKHguJnguJXguKPguLUKK+C4oeC4meC4l+C5jAor4Lih4LiZ4LiX4Li04LijCivguKHguJnguJfguLTguKPguLLguKXguLHguKIKK+C4oeC4meC5gOC4l+C4teC4ouC4owor4Lih4LiZ4Liq4Li04LiB4Liy4LijCivguKHguJnguLHguKoKK+C4oeC4meC4suC5guC4mwor4Lih4LiZ4Li04Lih4LiZ4LiyCivguKHguJnguLTguKXguLIKK+C4oeC4meC4teC4oeC4meC4sgor4Lih4LiZ4Li4CivguKHguJnguLjguI0KK+C4oeC4meC4uOC4qeC4ouC5jAor4Lih4LiZ4Li44Liq4Liy4LijCivguKHguJnguLkKK+C4oeC4meC4ueC4quC4suC4owor4Lih4LmC4LiZCivguKHguYLguJnguKPguLLguKvguYwKK+C4oeC5guC4meC4quC4suC4owor4Lih4LmC4LiZ4Liq4Liy4LmA4Lij4LmICivguKHguYLguJnguKvguYzguKPguLIKK+C4oeC4oeC4seC4h+C4geC4suC4owor4Lih4Lih4Liy4LiBCivguKHguKLguLjguKPguLAKK+C4oeC4ouC4ueC4ggor4Lih4Lii4Li54LijCivguKHguKMKK+C4oeC4o+C4geC4lQor4Lih4Lij4LiE4LiyCivguKHguKPguJHguJsKK+C4oeC4o+C4k+C5jAor4Lih4Lij4LiT4LiwCivguKHguKPguJTguIEKK+C4oeC4o+C4o+C4hAor4Lih4Lij4Lij4LiE4LiyCivguKHguKPguKPguJXguKIKK+C4oeC4o+C4o+C4leC4seC4ogor4Lih4Lij4Lij4LiX4LiZCivguKHguKPguKPguKLguLLguJcKK+C4oeC4o+C4o+C4qQor4Lih4Lij4Liq4Li44LihCivguKHguKPguLHguKHguYDguJfguKgKK+C4oeC4o+C4suC4meC4hOC4p+C4suC4mQor4Lih4Lij4Li04LiICivguKHguKPguLTguKLguLLguJcKK+C4oeC4o+C4teC4iOC4tAor4Lih4Lij4Li4CivguKHguKPguLjguJUKK+C4oeC4pOC4hAor4Lih4Lik4LiE4Lii4LmMCivguKHguKTguIjguInguLIKK+C4oeC4pOC4lOC4gQor4Lih4Lik4LiVCivguKHguKTguJXguIEKK+C4oeC4pOC4leC4ouC4uQor4Lih4Lik4LiX4Li04LiH4LiE4LmMCivguKHguKTguJfguLgKK+C4oeC4pOC4mOC4uAor4Lih4Lik4Lip4LiyCivguKHguKUKK+C4oeC4peC5guC4hAor4Lih4Lil4LiX4Li04LiZCivguKHguKXguJkKK+C4oeC4peC5iOC4mQor4Lih4Lil4Lin4LiBCivguKHguKXguYjguK3guJkKK+C4oeC4peC5iOC4reC4ogor4Lih4Lil4LiwCivguKHguKXguLHguIEKK+C4oeC4peC4seC4h+C5gOC4oeC4peC4t+C4reC4hwor4Lih4Lil4LmJ4LiyCivguKHguKXguLLguIEKK+C4oeC4peC5ieC4suC4hwor4Lih4Lil4Liy4LiZCivguKHguKXguYjguLLguJkKK+C4oeC4peC4suC4ogor4Lih4Lil4Liy4Lii4Li5CivguKHguKXguLLguKcKK+C4oeC4peC5iOC4suC4p+C5gOC4oeC4peC4sgor4Lih4Lil4Liy4Lir4Lij4LiyCivguKHguKXguLTguJkKK+C4oeC4peC4tOC5ieC4mQor4Lih4Lil4Li34LmI4LiZCivguKHguKfguIEKK+C4oeC5iOC4p+C4hwor4Lih4Lin4LiZCivguKHguYjguKfguJkKK+C4oeC5ieC4p+C4mQor4Lih4Lin4LiiCivguKHguYjguKfguKIKK+C4oeC5ieC4p+C4ogor4Lih4Lin4LilCivguKHguKrguLLguKMKK+C4oeC4quC4suC4o+C4gQor4Lih4Liq4Liy4Lij4LiE4Lix4LilCivguKHguKrguLQKK+C4oeC4q+C4geC4o+C4o+C4oQor4Lih4Lir4Lij4LiT4LieCivguKHguKvguKPguKPguIYKK+C4oeC4q+C4o+C4o+C4k+C4ngor4Lih4Lir4Lij4Liq4LieCivguKHguKvguLHguIjguInguKPguLTguKLguLAKK+C4oeC4q+C4seC4k+C4k+C4ngor4Lih4Lir4Lix4LiVCivguKHguKvguLHguJXguIYKK+C4oeC4q+C4seC4l+C4mOC4meC4sAor4Lih4Lir4Lix4LiZ4LiV4LmMCivguKHguKvguLHguJ7guKDguLLguIQKK+C4oeC4q+C4seC4pQor4Lih4Lir4Lix4Lil4LiB4LiwCivguKHguKvguLHguKjguIjguKPguKPguKLguYwKK+C4oeC4q+C4sgor4Lih4Lir4Liy4LiB4LiQ4Li04LiZCivguKHguKvguLLguIHguLLguKwKK+C4oeC4q+C4suC4guC4seC4meC4mOC4gQor4Lih4Lir4Liy4LiI4Lix4LiB4LijCivguKHguKvguLLguIrguJkKK+C4oeC4q+C4suC4iuC4seC4ogor4Lih4Lir4Liy4LiK4Liy4LiV4Li0CivguKHguKvguLLguYLguIrguJXguKPguLHguJUKK+C4oeC4q+C4suC4lOC5hOC4l+C4ogor4Lih4Lir4Liy4LiU4LmA4Lil4LmH4LiBCivguKHguKvguLLguJXguKHguLAKK+C4oeC4q+C4suC5hOC4luC5iAor4Lih4Lir4Liy4LiX4Lin4Li14LibCivguKHguKvguLLguYDguJfguJ4KK+C4oeC4q+C4suC5gOC4l+C4nuC4tQor4Lih4Lir4Liy4LmA4LiX4Lin4Li1CivguKHguKvguLLguJjguLLguJXguLgKK+C4oeC4q+C4suC4meC4o+C4gQor4Lih4Lir4Liy4LiZ4Liq4LiwCivguKHguKvguLLguJnguLTguIHguLLguKIKK+C4oeC4q+C4suC4meC4tOC4pQor4Lih4Lir4Liy4Lia4Lie4Li04LiV4LijCivguKHguKvguLLguJrguKPguLTguIjguLLguIQKK+C4oeC4q+C4suC4muC4seC4k+C4keC4tOC4lQor4Lih4Lir4Liy4Lia4Li44Lij4Li44LipCivguKHguKvguLLguJ7guJkKK+C4oeC4q+C4suC4nuC4o+C4q+C4oQor4Lih4Lir4Liy4Lig4Liy4Lij4LiVCivguKHguKvguLLguKDguLTguYDguJnguKnguIHguKPguKHguJPguYwKK+C4oeC4q+C4suC4oOC4ueC4lQor4Lih4Lir4Liy4LmA4Lih4LiGCivguKHguKvguLLguKLguLLguJkKK+C4oeC4q+C4suC4ouC4uOC4hAor4Lih4Lir4Liy4Lij4LiT4LieCivguKHguKvguLLguKPguLLguIoKK+C4oeC4q+C4suC4o+C4suC4iuC4peC4teC4peC4sgor4Lih4Lir4Liy4Lik4LiB4Lip4LmMCivguKHguKvguLLguKXguLDguKXguKfguKIKK+C4oeC4q+C4suC4peC4sOC4peC4suC4ogor4Lih4Lir4Liy4Lin4LiH4Lio4LmMCivguKHguKvguLLguKfguKPguKPguIQKK+C4oeC4q+C4suC4p+C4seC4lQor4Lih4Lir4Liy4Lin4Li04LiX4Lii4Liy4Lil4Lix4LiiCivguKHguKvguLLguKjguLHguIHguKPguLLguIoKK+C4oeC4q+C4suC4qOC4suC4pQor4Lih4Lir4Liy4Lio4Li54LiZ4Lii4LmMCivguKHguKvguLLguYDguKjguKPguKnguJDguLUKK+C4oeC4q+C4suC4quC4h+C4geC4o+C4suC4meC4leC5jAor4Lih4Lir4Liy4Liq4LiH4LiE4Lij4Liy4LihCivguKHguKvguLLguKrguJTguKHguKDguYwKK+C4oeC4q+C4suC4quC4lOC4swor4Lih4Lir4Liy4Liq4Lih4Li44LiX4LijCivguKHguKvguLLguKrguLHguJnguJnguLTguJrguLLguJUKK+C4oeC4q+C4suC4quC4suC4p+C4gQor4Lih4Lir4Liy4Liq4Liy4Lin4Li04LiB4LiyCivguKHguKvguLLguKrguLTguJfguJjguLTguYLguIrguIQKK+C4oeC4q+C4suC4quC4teC4oeC4sgor4Lih4Lir4Liy4LmA4Liq4Lin4LiBCivguKHguKvguLLguKvguIfguKrguYwKK+C4oeC4q+C4suC4q+C4tOC4h+C4hOC4uOC5jAor4Lih4Lir4Liy4Lit4Liz4LiZ4Liy4LiICivguKHguKvguLLguK3guLPguKHguLLguJXguKLguYwKK+C4oeC4q+C4suC4reC4uOC4iAor4Lih4Lir4Liy4Lit4Li44LiUCivguKHguKvguLLguK3guLjguJvguKPguLLguIHguKMKK+C4oeC4q+C4tAor4Lih4Lir4Li04LiH4Liq4LmMCivguKHguKvguLTguJfguJjguLQKK+C4oeC4q+C4tOC4meC4l+C5jAor4Lih4Lir4Li04Lih4LiyCivguKHguKvguLTguKjguKMKK+C4oeC4q+C4tOC4qOC4p+C4owor4Lih4Lir4Li04LipCivguKHguKvguLTguKnguLUKK+C4oeC4q+C4tuC4oeC4sgor4Lih4Lir4Li44LiU4Li04Lik4LiB4Lip4LmMCivguKHguKvguLjguKPguJTguLUKK+C4oeC4q+C4uOC4o+C4leC4tOC4quC4seC4jeC4jeC4sgor4Lih4Lir4Li5CivguKHguYDguKvguJnguJfguKPguYwKK+C4oeC5gOC4q+C4ouC4h+C4hOC5jAor4Lih4LmA4Lir4LioCivguKHguYDguKvguKjguKfguKMKK+C4oeC5gOC4q+C4qOC4seC4geC4lOC4tOC5jAor4Lih4LmA4Lir4Liq4Lix4LiB4LiC4LmMCivguKHguYDguKvguKrguLQKK+C4oeC5gOC4q+C4quC4tQor4Lih4LmA4Lir4Liy4Lip4LiYCivguKHguYDguKvguLLguKzguLLguKMKK+C4oeC5guC4q+C4hgor4Lih4LmC4Lir4Lij4LiX4Li24LiBCivguKHguYLguKvguKPguKrguJ4KK+C4oeC5guC4q+C4o+C4tQor4Lih4LmC4Lir4Lip4LiYCivguKHguYLguKvguKzguLLguKMKK+C4oeC5hOC4q+C4qOC4p+C4o+C4o+C4ouC5jAor4Lih4LitCivguKHguK3guIcKK+C4oeC5iOC4reC4hwor4Lih4Lit4LiH4LmC4LiB4Lil4Lit4Lii4LiU4LmMCivguKHguK3guIfguITguKPguYjguK0KK+C4oeC5iOC4reC4h+C5gOC4l+C5iOC4hwor4Lih4Lit4LiNCivguKHguYjguK3guJXguYnguK0KK+C4oeC4reC5gOC4leC4reC4o+C5jAor4Lih4Lit4LiZCivguKHguYjguK3guJkKK+C4oeC4reC4meC5hOC4guC5iAor4Lih4Lit4LiaCivguKHguYjguK3guKIKK+C4oeC4reC4o+C5jOC4n+C4teC4mQor4Lih4Lit4Lij4Liw4LiB4Li54LmICivguKHguK3guKXguYLguJfguKoKK+C4oeC5iOC4reC4peC4reC4geC4oeC5iOC4reC5geC4peC4gQor4Lih4LmI4Lit4Liu4LmI4Lit4LihCivguKHguLAKK+C4oeC4sOC4geC4o+C4ueC4lAor4Lih4Liw4LiB4Lil4LmI4LizCivguKHguLDguIHguK3guIEKK+C4oeC4sOC4geC5iOC4reC4hwor4Lih4Liw4LiB4LmI4Lit4LiV4Liy4Lir4Lih4Li5CivguKHguLDguIHguLDguYLguKPguJnguLUKK+C4oeC4sOC4geC4sgor4Lih4Liw4LmA4LiB4Lil4Li34LitCivguKHguLDguYDguIHguLXguYvguKLguIcKK+C4oeC4sOC4guC5iOC4p+C4hwor4Lih4Liw4LiC4Lin4Li04LiUCivguKHguLDguILguLLguKEKK+C4oeC4sOC4guC4suC4oeC5gOC4l+C4qAor4Lih4Liw4LiC4Liy4Lih4Lib4LmJ4Lit4Lih4LiU4Li04LiZCivguKHguLDguYDguILguLfguK0KK+C4oeC4sOC5gOC4guC4t+C4reC4l+C4p+C4suC4ogor4Lih4Liw4LmA4LiC4Li34Lit4LmA4LiX4LioCivguKHguLDguYDguILguLfguK3guJ7guKfguIcKK+C4oeC4sOC5gOC4guC4t+C4reC4oeC4reC4jQor4Lih4Liw4LmB4LiC4LmI4LiZCivguKHguLDguITguLAKK+C4oeC4sOC4hOC4seC4h+C5geC4lOC4hwor4Lih4Liw4LiE4LmI4LiyCivguKHguLDguITguLPguYTguIHguYgKK+C4oeC4sOC4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4Lih4Liw4LiH4Lix4LiZCivguKHguLDguIfguLHguYjguKcKK+C4oeC4sOC4h+C4uOC4oeC4oeC4sOC4h+C4suC4q+C4peC4sgor4Lih4Liw4LiL4Lix4LiBCivguKHguLDguIvguLLguIcKK+C4oeC4sOC4i+C5iOC4suC4mQor4Lih4Liw4LiU4Liw4LiC4Li14LmJ4LiZ4LiBCivguKHguLDguJTguLHguJkKK+C4oeC4sOC4lOC4sgor4Lih4Liw4LiU4Li54LiBCivguKHguLDguYDguJTguKvguKfguLUKK+C4oeC4sOC5gOC4lOC4t+C5iOC4rQor4Lih4Liw4LiV4LmJ4Lit4LiHCivguKHguLDguJXguLDguJrguLAKK+C4oeC4sOC4leC4suC4lAor4Lih4Liw4LiV4Liy4Lir4Liw4Lij4Li1CivguKHguLDguJXguLUKK+C4oeC4sOC4leC4tuC5iOC4hwor4Lih4Liw4LiV4Li34LmL4LiZCivguKHguLDguJXguLnguKEKK+C4oeC4sOC5geC4leC4gQor4Lih4Liw4LiZ4Liy4LinCivguKHguLDguJvguKPguLLguIcKK+C4oeC4sOC4m+C4o+C4tOC4hwor4Lih4Liw4Lib4LmI4Lit4LiHCivguKHguLDguJ3guYjguK0KK+C4oeC4sOC4nuC4o+C5ieC4suC4pwor4Lih4Liw4Lie4Lil4Lix4LiaCivguKHguLDguJ7guLnguJQKK+C4oeC4sOC5geC4nuC4mQor4Lih4Liw4LmB4Lie4Lij4LmJ4LinCivguKHguLDguYDguJ/guLfguK3guIcKK+C4oeC4sOC5geC4n+C4mQor4Lih4Liw4LmE4LifCivguKHguLDguKHguYjguKfguIcKK+C4oeC4sOC4oeC5iOC4suC4pwor4Lih4Liw4Lih4Li14LmICivguKHguLDguKHguLfguYjguJkKK+C4oeC4sOC4oeC4uOC4lAor4Lih4Liw4LmA4Lih4LitCivguKHguLDguYDguKHguLXguKIKK+C4oeC4sOC5gOC4oeC4t+C5iOC4reC4ogor4Lih4Liw4LmB4LihCivguKHguLDguKLguIcKK+C4oeC4sOC4ouC4oQor4Lih4Liw4Lij4LiwCivguKHguLDguKPguLTguJQKK+C4oeC4sOC4o+C4t+C4mQor4Lih4Liw4Lij4Li44LihCivguKHguLDguKPguLjguKHguKHguLDguJXguLjguYnguKEKK+C4oeC4sOC5gOC4o+C5h+C4hwor4Lih4Liw4LmA4Lij4Li34LmI4Lit4LiHCivguKHguLDguYLguKPguIcKK+C4oeC4sOC4peC4sOC4geC4rQor4Lih4Liw4Lil4Liy4Lij4Lit4LiB4Lix4LiZCivguKHguLDguKXguLMKK+C4oeC4sOC4peC4tAor4Lih4Liw4Lil4Li04LiZCivguKHguLDguKXguLTguYjguKEKK+C4oeC4sOC4peC4tOC5gOC4peC4t+C5ieC4reC4ogor4Lih4Liw4Lil4Li04Lit4LmI4Lit4LiHCivguKHguLDguKXguLfguYjguJkKK+C4oeC4sOC4peC4t+C4oeC4lOC4swor4Lih4Liw4Lil4Li44Lil4Li1CivguKHguLDguKfguLLguKMKK+C4oeC4sOC4q+C4peC4tOC5iOC4oQor4Lih4Liw4Lir4Lin4LiUCivguKHguLDguKvguLDguKvguKHguLHguJQKK+C4oeC4sOC4q+C4seC4pQor4Lih4Liw4Lir4Liy4LiUCivguKHguLDguKvguLTguYjguIcKK+C4oeC4sOC5gOC4q+C4oeC4t+C5iOC4reC4ogor4Lih4Liw4Lit4Li24LiBCivguKHguLDguK7guK3guIHguIHguLLguJnguLUKK+C4oeC4seC4gQor4Lih4Lix4LiB4LiB4Liw4Lil4Li14Lic4LilCivguKHguLHguIHguIHguLDguKrguLHguJkKK+C4oeC4seC4geC4guC4sAor4Lih4Lix4LmI4LiB4LiC4Lix4LmJ4LiBCivguKHguLHguIHguILguLTguIHguLIKK+C4oeC4seC4geC4guC4tOC4geC4suC4iuC4suC4leC4tAor4Lih4Lix4LiB4LiP4LiB4LiwCivguKHguLHguIHguI/guLAKK+C4oeC4seC4hOC4hOC4sAor4Lih4Lix4LiE4LiE4Li44LmA4LiX4Lio4LiB4LmMCivguKHguLHguITguKrguLTguKPguLAKK+C4oeC4seC4huC4p+C4sgor4Lih4Lix4LiG4Lin4Liy4LiZCivguKHguLHguYjguIcKK+C4oeC4seC4h+C4geC4hwor4Lih4Lix4LiH4LiB4LijCivguKHguLHguIfguIHguLgKK+C4oeC4seC4h+C4hOC4peC4sAor4Lih4Lix4LiH4LiE4LmI4LiyCivguKHguLHguIfguITguLjguJQKK+C4oeC4seC4h+C4leC4suC4mQor4Lih4Lix4LiH4Liq4LiwCivguKHguLHguIfguKrguLUKK+C4oeC4seC4h+C4q+C4h+C4seC4mQor4Lih4Lix4LiI4LiI4LiwCivguKHguLHguIjguIjguLgKK+C4oeC4seC4iOC4ieC4o+C4sAor4Lih4Lix4LiI4LiJ4Lij4Li04Lii4LiwCivguKHguLHguIjguInguKPguLUKK+C4oeC4seC4iOC4ieC4sAor4Lih4Lix4LiI4LiJ4LiyCivguKHguLHguIrguIrguLAKK+C4oeC4seC4iuC4iuC4suC4owor4Lih4Lix4LiN4LiI4LiBCivguKHguLHguI3guIjguLIKK+C4oeC4seC4jeC4iuC4tOC4qeC4kAor4Lih4Lix4LiN4LiK4Li04Lip4LiQ4LiyCivguKHguLHguI3guIrguLXguKMKK+C4oeC4seC4jeC4iuC4uAor4Lih4Lix4LiN4LiK4Li44Liq4LiyCivguKHguLHguI3guIrguLnguKrguLIKK+C4oeC4seC4jeC5gOC4iuC4j+C4kOC4sAor4Lih4Lix4LiN4LmA4LiK4LiP4LiQ4Li04LiB4LiyCivguKHguLHguI3guYDguIrguLXguKLguKMKK+C4oeC4seC4j+C4kOC4sAor4Lih4Lix4LiT4LiR4LiZ4LiyCivguKHguLHguJPguJHguLjguIEKK+C4oeC4seC4lAor4Lih4Lix4LiU4Lir4Lih4Li14LmICivguKHguLHguJTguKvguKHguLkKK+C4oeC4seC4lOC4q+C4p+C4suC4ogor4Lih4Lix4LiV4LiV4LiwCivguKHguLHguJXguJXguLHguKIKK+C4oeC4seC4leC4leC4sgor4Lih4Lix4LiV4LiV4Li04LiB4LiyCivguKHguLHguJXguJbguIEKK+C4oeC4seC4leC4luC4peC4uOC4h+C4hOC5jAor4Lih4Lix4LiV4LiiCivguKHguLHguJXguKrguKLguLAKK+C4oeC4seC4leC4quC4ouC4sgor4Lih4Lix4LiV4Liq4LijCivguKHguLHguJXguKrguKPguKPguKLguYwKK+C4oeC4seC4l+C4meC4sAor4Lih4Lix4LiX4LiZ4Li14Lii4LiwCivguKHguLHguJfguKLguLAKK+C4oeC4seC4mOC4ouC4oQor4Lih4Lix4LiY4Lii4Lih4LiyCivguKHguLHguJjguKLguLHguJnguKvguYwKK+C4oeC4seC4mOC4ouC4seC4quC4luC5jAor4Lih4Lix4LiZCivguKHguLHguYjguJkKK+C4oeC4seC4meC4lOC4tQor4Lih4Lix4LiZ4LiV4LiyCivguKHguLHguJnguJbguLAKK+C4oeC4seC4meC4l+C4tOC4owor4Lih4Lix4LiZ4LiX4Li04Lij4Liy4Lil4Lix4LiiCivguKHguLHguJnguYTguKrguYkKK+C4oeC4seC4mgor4Lih4Lix4Lia4LmGCivguKHguLHguYnguKEKK+C4oeC4seC4oeC4oeC4teC5iAor4Lih4Lix4LiiCivguKHguLHguKXguIEKK+C4oeC4seC4peC4peC4sAor4Lih4Lix4Lil4Lil4Li04LiB4LiyCivguKHguLHguKcKK+C4oeC4seC5iOC4pwor4Lih4Lix4Lio4Lii4LiyCivguKHguLHguKrguJTguIEKK+C4oeC4seC4quC4lOC4uAor4Lih4Lix4Liq4LiV4Liy4Lij4LmM4LiUCivguKHguLHguKrguJXguLgKK+C4oeC4seC4quC4oeC4seC5iOC4mQor4Lih4Lix4Liq4Lii4Li04LiUCivguKHguLHguKrguKPguLnguYgKK+C4oeC4seC4quC4peC4tOC4mQor4Lih4Lix4Liq4Liq4Li4CivguKHguLIKK+C4oeC5ieC4sgor4Lih4Liy4LiBCivguKHguLLguITguKrguLTguKPguLAKK+C4oeC4suC4huC4sAor4Lih4LmJ4Liy4LiHCivguKHguLLguIfguKrguLAKK+C4oeC4suC4k+C4ngor4Lih4Liy4LiT4Lin4Li04LiB4LiyCivguKHguLLguJQKK+C4oeC4suC4lOC4sgor4Lih4Liy4LiV4LiH4LiE4LmMCivguKHguLLguJXguKMKK+C4oeC4suC4leC4o+C4geC4suC4owor4Lih4Liy4LiV4Lij4LiI4Lit4LiU4Lij4LiWCivguKHguLLguJXguKPguJDguLLguJkKK+C4oeC4suC4leC4o+C5geC4oeC5ieC4mQor4Lih4Liy4LiV4Lij4Lin4LmI4LiyCivguKHguLLguJXguKPguLIKK+C4oeC4suC4leC4pAor4Lih4Liy4LiV4Lik4LiB4LiwCivguKHguLLguJXguKrguKPguKPguKLguYwKK+C4oeC4suC4leC4seC4h+C4hAor4Lih4Liy4LiV4LiyCivguKHguLLguJXguLLguKHguKvguLAKK+C4oeC4suC4leC4suC4oeC4q+C4seC4ouC4geC4sAor4Lih4Liy4LiV4Liy4Lih4Lir4Lix4Lii4LiB4LiyCivguKHguLLguJXguLLguKHguKvguLHguKLguKLguLTguIHguLIKK+C4oeC4suC4leC4suC4oeC4q+C4sgor4Lih4Liy4LiV4Li04LiBCivguKHguLLguJXguLTguIHguLIKK+C4oeC4suC4leC4tQor4Lih4Liy4LiV4Li4CivguKHguLLguJXguLjguIjguInguLIKK+C4oeC4suC4leC4uOC4o+C4h+C4hOC5jAor4Lih4Liy4LiV4Li44LmA4Lij4LioCivguKHguLLguJXguLjguKXguLAKK+C4oeC4suC4leC4uOC4peC4sgor4Lih4Liy4LiV4Li44Lil4Liy4LiZ4Li1CivguKHguLLguJXguLjguKXguLjguIfguITguYwKK+C4oeC4suC4lwor4Lih4Liy4LiX4LiZCivguKHguYnguLLguJfguKXguLLguKLguYLguKPguIcKK+C4oeC4suC4mOC4ouC4oeC4tOC4geC4sAor4Lih4Liy4LiY4Li44LijCivguKHguLLguJjguLjguKrguKMKK+C4oeC4suC4mOC4ueC4owor4Lih4Liy4LiZCivguKHguYjguLLguJkKK+C4oeC5ieC4suC4mQor4Lih4Liy4LiZ4LieCivguKHguYjguLLguJnguKXguLLguKIKK+C4oeC5iOC4suC4meC4reC4tOC4meC4l+C4meC4tOC4pQor4Lih4Liy4LiZ4LiwCivguKHguLLguJnguLHguJUKK+C4oeC4suC4meC4seC4qgor4Lih4Liy4LiZ4Li04LiVCivguKHguLLguJnguLUKK+C4oeC4suC4meC4uOC4qQor4Lih4Liy4LmC4LiZ4LiK4LiN4LmMCivguKHguLLguJoKK+C4oeC4suC4m+C4gQor4Lih4Liy4Lig4LiyCivguKHguYnguLLguKEKK+C4oeC4suC4ogor4Lih4LmI4Liy4LiiCivguKHguYnguLLguKIKK+C4oeC4suC4ouC4seC4hwor4Lih4Liy4Lii4LiyCivguKHguLLguKMKK+C4oeC4suC4o+C4hAor4Lih4Liy4Lij4LiE4Lit4Lir4Lit4LiiCivguKHguLLguKPguIrguLQKK+C4oeC4suC4o+C4iuC4tOC4lQor4Lih4Liy4Lij4LiU4LijCivguKHguLLguKPguJTguLIKK+C4oeC4suC4o+C5jOC4lOC4tOC4geC4o+C4suC4quC5jAor4Lih4Liy4Lij4Lic4LiI4LiNCivguKHguLLguKPguKLguLIKK+C4oeC4suC4o+C4ouC4suC4lwor4Lih4Liy4Lij4Lin4Li04LiK4Lix4LiiCivguKHguLLguKPguKfguLTguIrguLTguJUKK+C4oeC4suC4o+C5gOC4p+C4leC4suC4pQor4Lih4Liy4Lij4Lio4Lij4Li1CivguKHguLLguKPguKnguLIKK+C4oeC4suC4o+C4quC4seC4h+C4hOC4oQor4Lih4Liy4Lij4Lir4Lix4Lin4LiC4LiZCivguKHguLLguKPguKvguLHguKfguYPguIgKK+C4oeC4suC4o+C4sAor4Lih4Liy4Lij4Liy4LiY4Lit4LiZCivguKHguYnguLLguKPguLMKK+C4oeC4suC4o+C4tAor4Lih4Liy4Lij4Li04LiVCivguKHguLLguKPguLTguKnguLAKK+C4oeC4suC4o+C4tOC4quC4sAor4Lih4Liy4Lij4Li44LiVCivguKHguLLguKPguLjguKHguKHguLLguJXguLjguYnguKEKK+C4oeC4suC4peC4ouC5jAor4Lih4Liy4Lil4Lix4LiiCivguKHguLLguKXguLIKK+C4oeC4suC4peC4suC4leC4tQor4Lih4Liy4Lil4Liy4LmA4Lij4Li14LiiCivguKHguLLguKXguLMKK+C4oeC4suC4peC4tOC4meC4tQor4Lih4Liy4Lil4Li1CivguKHguLLguKXguLjguJUKK+C4oeC4suC4p+C4quC4sAor4Lih4Liy4Lin4Liy4LijCivguKHguLLguKgKK+C4oeC4suC4qgor4Lih4Liy4Liq4LiBCivguKHguYnguLLguKrguLDguJrguLHguJTguIHguLXguJoKK+C4oeC4suC4q+C5jAor4Lih4LmI4Liy4Lir4LmMCivguKHguLLguKvguLTguKoKK+C4oeC5iOC4suC5gOC4q+C4oeC4teC5iOC4ouC4pwor4Lih4Liy4Lis4LiBCivguKHguYnguLLguK3guYnguKfguJkKK+C4oeC4s+C5gOC4peC4t+C4reC4hwor4Lih4Li0CivguKHguLTguIQKK+C4oeC4tOC5iOC4hwor4Lih4Li04LiH4LmC4LiECivguKHguLTguIjguInguLIKK+C4oeC4tOC4iuC4iuC4seC4meC4meC4suC4o+C4tQor4Lih4Li04LiL4LiL4Lix4LiHCivguKHguLTguJQKK+C4oeC4tOC4lOC4q+C4oeC4tQor4Lih4Li04LiV4LijCivguKHguLTguJXguLQKK+C4oeC4tOC4luC4ouC4sgor4Lih4Li04LiW4Li44LiZCivguKHguLTguJfguJjguLAKK+C4oeC4tOC4l+C4mOC4tQor4Lih4Li04LiZ4LiV4Lij4LiyCivguKHguLTguJnguJXguLIKK+C4oeC4tOC4meC4q+C4oeC5ieC4rQor4Lih4Li04LiZ4LmI4LiyCivguKHguLTguJnguYjguLLguKXguYjguLAKK+C4oeC4tOC4meC5iOC4suC5gOC4peC5iOC4sgor4Lih4Li04LmJ4LihCivguKHguLTguKLguLIKK+C4oeC4tOC5hOC4ogor4Lih4Li04Lij4Lix4LiZ4LiV4Li1CivguKHguLTguKXguKXguLTguIHguKPguLHguKEKK+C4oeC4tOC4peC4peC4tOC4muC4suC4o+C5jAor4Lih4Li04Lil4Lix4LiB4LiC4LiwCivguKHguLTguKXguLHguIHguILguLkKK+C4oeC4tOC4peC4suC4lQor4Lih4Li04Lil4Li04LmA4Lih4LiV4LijCivguKHguLTguKrguIHguKPguLUKK+C4oeC4tOC4quC4i+C4sgor4Lih4Li1CivguKHguLXguYgKK+C4oeC4teC4lAor4Lih4Li14LiU4Lii4Lix4LiaCivguKHguLXguYDguJfguJkKK+C4oeC4teC4mQor4Lih4Li14LmI4Liq4Lix4LmJ4LinCivguKHguLbguIEKK+C4oeC4tuC4hwor4Lih4Li24LiH4Lin4Liy4Lie4Liy4LmC4Lin4LiiCivguKHguLbguJkKK+C4oeC4t+C4lAor4Lih4Li34LiZCivguKHguLfguYjguJkKK+C4oeC4t+C4rQor4Lih4Li34LmJ4LitCivguKHguLgKK+C4oeC4uOC4gQor4Lih4Li44LiB4LiU4LiyCivguKHguLjguIHguJTguLLguKvguLLguKMKK+C4oeC4uOC4geC4uOC4owor4Lih4Li44LiB4Li44LilCivguKHguLjguIIKK+C4oeC4uOC5guC4guC5guC4peC4geC4meC4sAor4Lih4Li44LiE4LiE4LiwCivguKHguLjguITguJjguYwKK+C4oeC4uOC4hOC4owor4Lih4Li44LiHCivguKHguLjguYjguIcKK+C4oeC4uOC5ieC4hwor4Lih4Li44LiH4LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguKHguLjguIjguInguLIKK+C4oeC4uOC4iOC4mQor4Lih4Li44LiI4Lil4Li04LiZ4LiX4LmMCivguKHguLjguI3guIjguJnguLAKK+C4oeC4uOC4jeC4igor4Lih4Li44LiQ4Li0CivguKHguLjguJPguJEKK+C4oeC4uOC4k+C4keC4gQor4Lih4Li44LiUCivguKHguLjguJUKK+C4oeC4uOC4leC4leC4sAor4Lih4Li44LiV4LiV4LiyCivguKHguLjguJXguJXguLQKK+C4oeC4uOC4leC4tAor4Lih4Li44LiV4Li04LiH4LiE4LmMCivguKHguLjguJfguIQKK+C4oeC4uOC4l+C4hOC4owor4Lih4Li44LiX4LiX4LiyCivguKHguLjguJfguJjguIrguLAKK+C4oeC4uOC4l+C4mOC4sgor4Lih4Li44LiX4Lij4LiyCivguKHguLjguJfguKPguLTguIHguLIKK+C4oeC4uOC4l+C4sOC4peC4uAor4Lih4Li44LiX4LiyCivguKHguLjguJfguLTguIHguLIKK+C4oeC4uOC4l+C4tOC4h+C4hOC5jAor4Lih4Li44LiX4Li04LiV4LiyCivguKHguLjguJfguLTguJkKK+C4oeC4uOC4l+C4uAor4Lih4Li44LmI4LiZCivguKHguLjguJnguLQKK+C4oeC4uOC4meC4tQor4Lih4Li44LiaCivguKHguLjguJrguYYKK+C4oeC4uOC4oQor4Lih4Li44LmI4LihCivguKHguLjguYnguKEKK+C4oeC4uOC5iOC4ogor4Lih4Li44Lij4LiKCivguKHguLjguKPguJjguLIKK+C4oeC4uOC4peC4quC4sAor4Lih4Li44Lil4Li44LiVCivguKHguLjguKXguLkKK+C4oeC4uOC4quC4peC4tOC4oQor4Lih4Li44Liq4LiwCivguKHguLjguKrguLIKK+C4oeC4uOC4quC4tOC4gQor4Lih4Li44Lir4LiH4Li04LiUCivguKHguLjguKvguJnguYjguLLguKIKK+C4oeC4uOC4q+C4uOC4lQor4Lih4Li54LiBCivguKHguLnguIHguKHguLHguJkKK+C4oeC4ueC4geC4q+C4peC4p+C4hwor4Lih4Li54LiL4Lix4LiHCivguKHguLnguYDguIvguK0KK+C4oeC4ueC4leC4owor4Lih4Li54LmI4LiX4Li54LmICivguKHguLnguJkKK+C4oeC4ueC4oeC4oeC4suC4oQor4Lih4Li54Lij4LiU4Li1CivguKHguLnguKPguJXguLQKK+C4oeC4ueC4o+C4mOC4sgor4Lih4Li54LilCivguKHguLnguKXguLIKK+C4oeC4ueC4peC4tOC4geC4suC4geC4owor4Lih4Li54LmI4Lil4Li14LmICivguKHguLnguYjguYDguKXguYgKK+C4oeC4ueC4quC4tOC4gQor4LmA4LihCivguYDguKHguYfguIEKK+C5gOC4oeC4geC4sOC5gOC4ruC4tOC4o+C4leC4i+C5jAor4LmA4Lih4LiC4Lil4LiyCivguYDguKHguIYKK+C5gOC4oeC4huC4ieC4suC4ogor4LmA4Lih4LiG4Lie4Lix4LiUCivguYDguKHguYfguIcKK+C5gOC4oeC4h+C4reC4sOC4m+C4sgor4LmA4Lih4LmH4LiUCivguYDguKHguJXguJXguLIKK+C5gOC4oeC4leC5hOC4leC4o+C4ogor4LmA4Lih4LiV4LijCivguYDguKHguJXguKPguLTguIEKK+C5gOC4oeC4leC4o+C4tOC4geC4leC4seC4mQor4LmA4Lih4LiW4Li44LiZCivguYDguKHguJcKK+C5gOC4oeC4l+C4meC4tQor4LmA4Lih4LiX4Li04LiZ4Li1CivguYDguKHguJfguLTguKXguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5gOC4oeC5guC4lwor4LmA4Lih4LiYCivguYDguKHguJjguLIKK+C5gOC4oeC4mOC4suC4p+C4tQor4LmA4Lih4LiY4Li1CivguYDguKHguJkKK+C5gOC4oeC5iOC4mQor4LmA4Lih4LmJ4LiZCivguYDguKHguJnguYDguJTguKfguLXguYDguKXguLXguKLguKEKK+C5gOC4oeC4meC4l+C4reC4pQor4LmA4Lih4LiZ4Li5CivguYDguKHguYnguKEKK+C5gOC4oeC4ouC5jOC5gOC4lOC4ouC5jAor4LmA4Lih4Lij4Lix4LiiCivguYDguKHguKPguLgKK+C5gOC4oeC4peC5jAor4LmA4Lih4Lil4LiBCivguYDguKHguKXguYfguJQKK+C5gOC4oeC4peC4t+C4reC4hwor4LmA4Lih4Lil4Li34LmI4Lit4LiiCivguYDguKHguKXguLfguYnguK3guKIKK+C5gOC4oeC4qQor4LmA4Lih4LirCivguYDguKHguKvguYwKK+C5gOC4oeC4q+C4mQor4LmA4Lih4LiwCivguYDguKHguLIKK+C5gOC4oeC5iOC4sgor4LmA4Lih4LmJ4LiyCivguYDguKHguYnguLLguYDguITguYnguLIKK+C5gOC4oeC4suC4o+C4tQor4LmA4Lih4Liy4Lil4Li04LiUCivguYDguKHguLLguKXguLUKK+C5gOC4oeC4suC4q+C5jAor4LmA4Lih4Liy4LiwCivguYDguKHguLLguLDguJXguLLguYLguKLguIHguLHguIEKK+C5gOC4oeC4tOC4hwor4LmA4Lih4Li04LiZCivguYDguKHguLTguKUKK+C5gOC4oeC4teC4ogor4LmA4Lih4Li14Lii4LiHCivguYDguKHguLXguYjguKLguIcKK+C5gOC4oeC4teC5ieC4ouC4mQor4LmA4Lih4Li14LmJ4Lii4Lin4LmGCivguYDguKHguLfguK0KK+C5gOC4oeC4t+C5iOC4rQor4LmA4Lih4Li34LmJ4LitCivguYDguKHguLfguK3guIEKK+C5gOC4oeC4t+C4reC4hwor4LmA4Lih4Li34Lit4LiaCivguYDguKHguLfguYjguK3guKIKK+C5geC4oeC5iAor4LmB4Lih4LmJCivguYHguKHguIEKK+C5geC4oeC4geC4meC4teC5gOC4i+C4teC4ouC4oQor4LmB4Lih4LiHCivguYHguKHguIfguIHguLLguJnguLTguJkKK+C5geC4oeC4h+C4geC4suC4meC4teC4qgor4LmB4Lih4LiH4Lib4Liy4LiB4LiI4Lit4LiaCivguYHguKHguIfguYTguJ/guYDguJTguLfguK3guJnguKvguYnguLIKK+C5geC4oeC5iOC4h+C4oeC5ieC4suC4hwor4LmB4Lih4LiH4Lil4Lix4LiBCivguYHguKHguYjguJXguLDguIfguLLguKcKK+C5geC4oeC5iOC4leC4suC4ogor4LmB4Lih4LiZCivguYHguKHguYjguJkKK+C5geC4oeC5ieC4mQor4LmB4Lih4LmJ4LiZ4LmA4LiC4Li14Lii4LiZCivguYHguKHguJnguJTguLLguKPguLTguJkKK+C5geC4oeC5iOC4oeC5iOC4suC4meC4peC4reC4h+C5hOC4mQor4LmB4Lih4LijCivguYHguKHguKXguIcKK+C5geC4oeC4peC4mgor4LmB4Lih4LinCivguYHguKHguYnguKcKK+C5geC4oeC4sAor4LmC4LihCivguYLguKHguYgKK+C5guC4oeC5iQor4LmC4Lih4LiBCivguYLguKHguIHguILguYwKK+C5guC4oeC4geC5guC4hOC4gQor4LmC4Lih4LiB4Lip4LiwCivguYLguKHguIHguLjguKUKK+C5guC4oeC4huC4sAor4LmC4Lih4LiG4Li14Lii4LiwCivguYLguKHguIcKK+C5guC4oeC5iOC4hwor4LmC4Lih4LiH4LiE4Lij4Li44LmI4LihCivguYLguKHguYDguJXguYfguKUKK+C5guC4oeC4l+C4meC4sgor4LmC4Lih4LiZCivguYLguKHguYDguJnguJXguYwKK+C5guC4oeC5guC4meC5geC4i+C5h+C4geC4hOC4suC5hOC4o+C4lOC5jAor4LmC4Lih4LmE4LiZ4LiiCivguYLguKHguKHguLnguKvguYwKK+C5guC4oeC4oeC4ueC4q+C4sAor4LmC4Lih4LmA4LihCivguYLguKHguKPguLIKK+C5guC4oeC4o+C4tQor4LmC4Lih4LmA4Lij4LioCivguYLguKHguKXguLTguJrguJTguLXguJnguLHguKEKK+C5guC4oeC4peC4tQor4LmC4Lih4LmA4Lil4LiB4Li44LilCivguYLguKHguKkKK+C5guC4oeC4qeC4gQor4LmC4Lih4Lip4LiTCivguYLguKHguYDguKrguKoKK+C5guC4oeC5iOC4q+C5jAor4LmC4Lih4Lir4LiwCivguYLguKHguYLguKsKK+C5hOC4oeC4geC4sgor4LmE4Lih4LiE4Lij4Lit4LiZCivguYTguKHguYLguITguIHguKPguLHguKEKK+C5hOC4oeC5guC4hOC4o+C4n+C4tOC4peC5jOC4oQor4LmE4Lih4LmC4LiE4Lij4LmC4Lif4LiZCivguYTguKHguYLguITguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4oeC5guC4hOC4o+C5gOC4oeC4leC4owor4LmE4Lih4LmC4LiE4Lij4Lil4Li04LiV4LijCivguYTguKHguYLguITguKPguYDguKfguJ8KK+C5hOC4oeC4leC4o+C4tQor4LmE4Lih4LmI4LmE4Lih4LmJCivguYTguKHguKLguKPguLLguJoKK+C5hOC4oeC4peC5jAor4LiiCivguKLguIEKK+C4ouC4geC4geC4o+C4sOC4muC4seC4leC4owor4Lii4LiB4LiZCivguKLguIcKK+C4ouC4h+C4ouC4uOC4l+C4mOC5jAor4Lii4LiH4LmC4Lii4LmICivguKLguIrguLjguKPguYDguKfguJcKK+C4ouC4leC4tAor4Lii4LiW4LiyCivguKLguYjguJkKK+C4ouC4meC4leC5jAor4Lii4LiZ4LiV4Lij4LmMCivguKLguKEKK+C4ouC4oeC4gQor4Lii4Lih4LmC4LiU4LiiCivguKLguKHguJnguLIKK+C4ouC4oeC4pQor4Lii4Lij4Lij4Lii4LiHCivguKLguKUKK+C4ouC4pwor4Lii4Lin4LiB4Liq4LiyCivguKLguKfguIcKK+C4ouC4p+C4lAor4Lii4Lin4LiU4Lii4Liy4LiZCivguKLguKfguJkKK+C4ouC4p+C4mgor4Lii4LmJ4Lin4LiiCivguKLguKfguKPguKLguLLguJXguKMKK+C4ouC4p+C4sgor4Lii4Lin4Liy4LiE4Li4CivguKLguKgKK+C4ouC5guC4qgor4Lii4LitCivguKLguK3guIEKK+C4ouC4reC4geC4ouC5ieC4reC4mQor4Lii4LmH4Lit4LiB4LmB4Lii4LmH4LiBCivguKLguYfguK3guIHguYHguKLguYfguIHguYYKK+C4ouC4reC4hwor4Lii4LmI4Lit4LiHCivguKLguYnguK3guIcKK+C4ouC4reC4h+C5hgor4Lii4LmI4Lit4LiH4LmA4Lir4LiH4LmH4LiUCivguKLguK3guJQKK+C4ouC4reC4lOC4iOC4suC4gQor4Lii4Lit4LiZCivguKLguYnguK3guJkKK+C4ouC4reC4mgor4Lii4Lit4LihCivguKLguYjguK3guKEKK+C4ouC5ieC4reC4oQor4Lii4LmI4Lit4LiiCivguKLguYnguK3guKIKK+C4ouC5ieC4reC5geC4ouC5iQor4Lii4LiwCivguKLguYjguLAKK+C4ouC4sOC4h+C4seC4meC4iOC4sOC4hOC4seC4mgor4Lii4Liw4Lii4Lit4LiaCivguKLguLDguKLguLHguJkKK+C4ouC4sOC4ouC4seC4mgor4Lii4Liw4Lii4Liy4LiZCivguKLguLDguKLguYnguLLguKIKK+C4ouC4sOC4ouC5ieC4suC4pwor4Lii4Liw4LmB4Lii4LmJ4LiHCivguKLguLDguKvguLTguJfguLIKK+C4ouC4seC4gQor4Lii4Lix4LiB4LiC4LmMCivguKLguLHguIHguILguLTguJnguLUKK+C4ouC4seC4geC5gOC4nuC4o+C4teC4ogor4Lii4Lix4LiB4Lii4Li14LmI4Lii4Lix4LiB4Lii4Lix4LiZCivguKLguLHguIHguKLguLXguYjguKLguLHguIHguKvguKLguLIKK+C4ouC4seC4geC5geC4ouC5iOC4ouC4seC4geC4ouC4seC4mQor4Lii4Lix4LiB4Lip4LmMCivguKLguLHguIHguKnguLTguJPguLUKK+C4ouC4seC4geC4qeC4tQor4Lii4Lix4LiB4Lir4Lii4Liy4LinCivguKLguLHguIcKK+C4ouC4seC5ieC4hwor4Lii4Lix4LiH4LiB4Liy4Lir4Lil4LiyCivguKLguLHguYjguIfguKLguLfguJkKK+C4ouC4seC4h+C4q+C4ouC4seC4hwor4Lii4Lix4LiK4LmC4LiN4Lib4Lin4Li14LiVCivguKLguLHguIrguJkKK+C4ouC4seC4iuC4oeC4suC4mQor4Lii4Lix4LiNCivguKLguLHguI3guI3guLAKK+C4ouC4seC4jeC4jeC4seC4h+C4hOC5jAor4Lii4Lix4LiQ4Li0CivguKLguLHguJDguLTguKHguJjguLjguIHguLIKK+C4ouC4seC4lAor4Lii4Lix4LiV4Li04Lig4Lix4LiH4LiE4LmMCivguKLguLHguJkKK+C4ouC4seC5iOC4mQor4Lii4Lix4LiZ4LiV4LmMCivguKLguLHguJnguJXguKPguYwKK+C4ouC4seC5iOC4meC4leC4sOC4meC4tQor4Lii4Lix4LiZ4LmA4Lii4LmJ4LiyCivguKLguLHguJoKK+C4ouC4seC4muC5hgor4Lii4Lix4Lia4Lii4Lix4LmJ4LiHCivguKLguLHguYjguKcKK+C4ouC4seC5ieC4pwor4Lii4Lix4LmJ4Lin4LmA4Lii4Li14LmJ4LiiCivguKLguLHguKfguKPguKLguLLguJXguKMKK+C4ouC4seC4qeC4j+C4tAor4Lii4LiyCivguKLguYjguLIKK+C4ouC4suC4gQor4Lii4Liy4LiECivguKLguLLguITguLgKK+C4ouC4suC4hOC4uQor4Lii4Liy4LiHCivguKLguYjguLLguIcKK+C4ouC5iOC4suC4h+C4l+C4o+C4suC4ogor4Lii4Liy4LiI4LiBCivguKLguLLguIjguJkKK+C4ouC4suC4iOC4meC4gQor4Lii4Liy4LiI4LiZ4LiyCivguKLguLLguYTguInguJkKK+C4ouC4suC4iuC4gQor4Lii4Liy4LiUCivguKLguLLguJTguLIKK+C4ouC4suC4leC4meC4sgor4Lii4Liy4LiV4LijCivguKLguLLguJXguKPguLIKK+C4ouC4suC4mQor4Lii4LmI4Liy4LiZCivguKLguLLguJnguIEKK+C4ouC5iOC4suC4meC4geC4reC4muC4meC4suC4hwor4Lii4LmI4Liy4LiZ4LiX4Lij4Liy4LiiCivguKLguYjguLLguJnguJ7guLLguYLguKvguKEKK+C4ouC5iOC4suC4meC4oeC4hOC4p+C4suC4ogor4Lii4Liy4LiZ4Lih4Liy4LioCivguKLguYjguLLguJnguKXguLTguYDguKDguLIKK+C4ouC5iOC4suC4meC4suC4hwor4Lii4LmI4Liy4LiZ4Liy4LiH4LiK4LmJ4Liy4LiHCivguKLguLLguJnguLUKK+C4ouC4suC4meC4uOC4oeC4suC4qAor4Lii4Liy4LiaCivguKLguLLguJrguYYKK+C4ouC5iOC4suC4oQor4Lii4Liy4Lih4LiB4Liy4Lil4Li04LiBCivguKLguLLguKHguYDguIHguLIKK+C4ouC4suC4oeC4seC4geC4geC4suC4owor4Lii4Liy4Lih4Li04LiBCivguKLguLLguKIKK+C4ouC5ieC4suC4ogor4Lii4Liy4Lii4Li1CivguKLguLLguKcKK+C4ouC5ieC4suC4pwor4Lii4Liy4Lin4LiB4Liy4Lil4Li04LiBCivguKLguLLguKfguIrguLXguKfguLTguIEKK+C4ouC4suC4p+C4seC4qgor4Lii4Liy4Lir4Lii4Lix4LiHCivguKLguLLguKvguKLguLIKK+C4ouC4suC4q+C4ouC4tQor4Lii4LizCivguKLguYjguLMKK+C4ouC5ieC4swor4Lii4Liz4Lii4Liy4LihCivguKLguLPguYDguKLguLXguKIKK+C4ouC5iOC4s+C5geC4ouC5iAor4Lii4LmJ4Liz4LmA4Lir4Lii4LitCivguKLguLTguIEKK+C4ouC4tOC4geC5hgor4Lii4Li04LiHCivguKLguLTguYjguIcKK+C4ouC4tOC4h+C4n+C4seC4mQor4Lii4Li04LiP4LiQ4LiwCivguKLguLTguJAKK+C4ouC4tOC4mQor4Lii4Li04LiaCivguKLguLTguJrguYYKK+C4ouC4tOC4m+C4i+C4seC4oQor4Lii4Li04Lib4LiL4Li1CivguKLguLTguYnguKEKK+C4ouC4tOC4oeC4meC4suC4quC4leC4tOC4gQor4Lii4Li04Lir4Lin4LiyCivguKLguLUKK+C4ouC4teC5iAor4Lii4Li14LmI4LiB4LmI4LiyCivguKLguLXguYjguYDguIEKK+C4ouC4teC5iOC5gOC4guC5iOC4hwor4Lii4Li14LmI4LmC4LiWCivguKLguLXguJkKK+C4ouC4teC5iOC5guC4m+C5iQor4Lii4Li14LmI4Lig4Li54LmICivguKLguLXguKPguLLguJ8KK+C4ouC4teC5iOC4quC4gQor4Lii4Li14LmI4Liq4LiHCivguKLguLXguYjguKrguJkKK+C4ouC4teC5iOC4quC4suC4mQor4Lii4Li14LmI4Liq4LmI4Liy4LiZCivguKLguLXguYjguKrguLTguJoKK+C4ouC4teC5iOC4quC4uOC5iOC4mQor4Lii4Li14LmI4Lir4Lij4LiwCivguKLguLXguYjguKvguKPguYjguLIKK+C4ouC4teC5iOC4q+C5ieC4rQor4Lii4Li14LmI4Lir4Li44LiaCivguKLguLbguIHguKLguLfguK0KK+C4ouC4t+C4lAor4Lii4Li34LiZCivguKLguLfguYjguJkKK+C4ouC4t+C4oQor4Lii4Li34LmJ4LitCivguKLguLgKK+C4ouC4uOC4geC4geC4o+C4sOC4muC4seC4leC4owor4Lii4Li44LiB4LiU4Li0CivguKLguLjguIHguJXguYwKK+C4ouC4uOC4geC4leC4tAor4Lii4Li44LiECivguKLguLjguITguJnguJjguKMKK+C4ouC4uOC4hOC4pQor4Lii4Li44LiE4Lil4Lia4Liy4LiXCivguKLguLjguITguLHguJnguJXguYwKK+C4ouC4uOC4hOC4seC4meC4mOC4owor4Lii4Li44LiE4Li44LiZ4LiY4LijCivguKLguLjguIcKK+C4ouC4uOC5iOC4hwor4Lii4Li44LmJ4LiHCivguKLguLjguIfguIHguKfguLLguJQKK+C4ouC4uOC4h+C4m+C4seC4lAor4Lii4Li44LiUCivguKLguLjguJUKK+C4ouC4uOC4leC4tAor4Lii4Li44LiX4LiY4LmMCivguKLguLjguJfguJjguJnguLIKK+C4ouC4uOC4mgor4Lii4Li44LmI4Lia4Lii4Lix4LmI4LiaCivguKLguLjguJrguKLguLTguJoKK+C4ouC4uOC4muC4pQor4Lii4Li44Lie4LiU4Li1CivguKLguLjguJ7guLIKK+C4ouC4uOC4nuC4suC4mQor4Lii4Li44Lie4Liy4Lie4Liy4LilCivguKLguLjguJ7guLLguJ7guLTguJkKK+C4ouC4uOC5iOC4oeC4ouC5iOC4suC4oQor4Lii4Li44LmI4LiiCivguKLguLjguYnguKIKK+C4ouC4uOC4o+C4muC4suC4leC4owor4Lii4Li44Lij4Lii4Liy4LiV4LijCivguKLguLjguKfguJTguLUKK+C4ouC4uOC4p+C4sgor4Lii4Li44Lin4Liy4LiZCivguKLguLjguKvguJrguLLguJXguKMKK+C4ouC4uQor4Lii4Li54LmICivguKLguLnguITguLLguKXguLTguJvguJXguLHguKoKK+C4ouC4ueC4hwor4Lii4Li54LmC4LiUCivguKLguLnguJbguLAKK+C4ouC4ueC4luC4tOC4geC4sgor4Lii4Li54Lib4LiwCivguKLguLnguKPguKLguLLguJXguKMKK+C4ouC4ueC4o+C4tOC4gQor4Lii4Li54LmA4Lij4LiZ4Lix4LiqCivguKLguLnguYDguKPguYDguJnguLXguKLguKEKK+C4ouC4ueC5guC4o+C5gOC4nuC4teC4ouC4oQor4Lii4Li54Lip4LiwCivguKLguLnguYjguK3guLXguYgKK+C5gOC4ouC5iQor4LmA4Lii4LmGCivguYDguKLguIcKK+C5gOC4ouC4i+C4uQor4LmA4Lii4LmH4LiUCivguYDguKLguYfguJkKK+C5gOC4ouC5h+C4meC4leC4suC5guC4nwor4LmA4Lii4LmH4LiZ4LmA4LiV4Liy4LmC4LifCivguYDguKLguYfguJoKK+C5gOC4ouC4oOC4uOC4ouC4ouC4sAor4LmA4Lii4LmJ4LiiCivguYDguKLguK0KK+C5gOC4ouC5iOC4rQor4LmA4Lii4Lit4Lij4Lih4Lix4LiZCivguYDguKLguK3guKcKK+C5gOC4ouC5iOC4reC4q+C4ouC4tOC5iOC4hwor4LmA4Lii4Lit4LiwCivguYDguKLguLIKK+C5gOC4ouC5ieC4sgor4LmA4Lii4Liy4Lin4LmMCivguYDguKLguLLguKfguJ7guLIKK+C5gOC4ouC4suC4p+C4nuC4suC4k+C4tQor4LmA4Lii4Liy4Lin4Lie4Liy4LiZCivguYDguKLguLTguIcKK+C5gOC4ouC4tOC4mQor4LmA4Lii4Li04LmI4LiZCivguYDguKLguLTguJnguKLguK0KK+C5gOC4ouC4tOC4muC5hgor4LmA4Lii4Li04Lia4Lii4Liy4LiaCivguYDguKLguLTguYnguKEKK+C5gOC4ouC4teC4ogor4LmA4Lii4Li14LmI4Lii4LiHCivguYDguKLguLXguKLguIfguJzguLIKK+C5gOC4ouC4teC5iOC4ouC4h+C4reC4ouC5iOC4suC4hwor4LmA4Lii4Li14Lii4LiU4Lii4Lix4LiUCivguYDguKLguLXguKLguJkKK+C5gOC4ouC4teC4ouC4mgor4LmA4Lii4Li14LmI4Lii4LihCivguYDguKLguLXguYjguKLguKHguKfguLTguKHguLLguJkKK+C5gOC4ouC4teC4ouC4o+C4muC4seC4mgor4LmA4Lii4Li14Lii4Lij4Lii4LiHCivguYDguKLguLXguKLguKcKK+C5gOC4ouC4teC5iOC4ouC4pwor4LmA4Lii4Li14LmI4Lii4Lin4LiH4Li14LinCivguYDguKLguLXguKLguKfguKLguIcKK+C5gOC4ouC4teC4ouC4p+C4ouC4sgor4LmA4Lii4Li34LitCivguYDguKLguLfguYjguK0KK+C5gOC4ouC4t+C5ieC4rQor4LmA4Lii4Li34Lit4LiBCivguYDguKLguLfguK3guIcKK+C5gOC4ouC4t+C5iOC4reC4hwor4LmA4Lii4Li34LmJ4Lit4LiHCivguYDguKLguLfguK3guJkKK+C5gOC4ouC4t+C5ieC4reC4mQor4LmB4Lii4LmICivguYHguKLguYkKK+C5geC4ouC4gQor4LmB4Lii4LiHCivguYHguKLguYjguIcKK+C5geC4ouC5ieC4hwor4LmB4Lii4LiH4LmB4Lii4LmICivguYHguKLguIfguYHguKLguYkKK+C5geC4ouC4mgor4LmB4Lii4LmH4LiaCivguYHguKLguKEKK+C5geC4ouC5ieC4oQor4LmB4Lii4LmB4LiqCivguYHguKLguLAKK+C5guC4ogor4LmC4Lii4LmJCivguYLguKLguIEKK+C5guC4ouC4geC4leC4o+C5jAor4LmC4Lii4LiE4LmA4LiB4LiT4LiR4LmMCivguYLguKLguITguKLguLAKK+C5guC4ouC4hOC4sAor4LmC4Lii4LiE4Li04LiZCivguYLguKLguITguLUKK+C5guC4ouC4hwor4LmC4Lii4LmI4LiH4LmGCivguYLguKLguIfguYLguKLguYgKK+C5guC4ouC4iuC4gQor4LmC4Lii4LiK4LiZ4LmMCivguYLguKLguIrguJnguLIKK+C5guC4ouC4lAor4LmC4Lii4LiVCivguYLguKLguJbguLTguIHguLAKK+C5guC4ouC4l+C4sOC4geC4sgor4LmC4Lii4LiY4LiyCivguYLguKLguJkKK+C5guC4ouC4meC4gQor4LmC4Lii4LiZ4Li04LmC4LiqCivguYLguKLguJnguLTguYLguKrguKHguJnguKrguLTguIHguLLguKMKK+C5guC4ouC4meC4tQor4LmC4Lii4Lie4LiZ4LiwCivguYLguKLguKEKK+C5guC4ouC5guC4qgor4LmD4LiiCivguYTguKIKK+C5hOC4ouC5iAor4LmE4Lii4LiU4Li1CivguYTguKLguYTguJ4KK+C5hOC4ouC5hOC4ogor4LmE4Lii4LmI4LmE4Lii4LmICivguKMKK+C4o+C4gQor4Lij4LiB4LiK4LmJ4Liy4LiHCivguKPguIHguJ/guYnguLIKK+C4o+C4hwor4Lij4LiH4LiB4Li44LmMCivguKPguIfguITguYwKK+C4o+C4h+C4o+C4reC4hwor4Lij4LiI4LiZ4LiyCivguKPguIjguYDguKPguIIKK+C4o+C4iOC5gOC4peC4ggor4Lij4LiI4Li04LiVCivguKPguIrguIHguLAKK+C4o+C4iuC4leC4sAor4Lij4LiK4LiZ4Li0CivguKPguIrguJnguLUKK+C4o+C4iuC4meC4teC4ouC5jAor4Lij4LiK4LiwCivguKPguJMKK+C4o+C4lAor4Lij4LiU4Li1CivguKPguJXguJnguLAKK+C4o+C4leC4sAor4Lij4LiV4Li0CivguKPguJYKK+C4o+C4luC4m+C4uOC4h+C4hOC4ngor4Lij4LiW4Lib4Li44LiH4LiE4LinCivguKPguJbguKLguLIKK+C4o+C4luC4suC4meC4tuC4gQor4Lij4LmA4LiW4Liq4Lig4LiwCivguKPguJcKK+C4o+C4l+C4meC4sAor4Lij4LiZCivguKPguYjguJkKK+C4o+C5ieC4mQor4Lij4LiZ4LiUCivguKPguJoKK+C4o+C4muC4qgor4Lij4Lia4Liy4LiNCivguKPguJ4KK+C4o+C4nuC4sgor4Lij4Lie4Li0CivguKPguJ7guLUKK+C4o+C4oQor4Lij4Lih4LiT4Li14Lii4LmMCivguKPguKHguKLguYwKK+C4o+C4oeC5gOC4ouC4qAor4Lij4Lii4LiwCivguKPguKfguIEKK+C4o+C4p+C4hwor4Lij4LmI4Lin4LiHCivguKPguKfguJQKK+C4o+C4p+C4mQor4Lij4LmI4Lin4LiZCivguKPguKfguJoKK+C4o+C4p+C4oQor4Lij4LmI4Lin4LihCivguKPguKfguKIKK+C4o+C4p+C4ouC5hgor4Lij4Lin4LiwCivguKPguKfguLQKK+C4o+C4p+C4tQor4Lij4Lio4LiZ4LiyCivguKPguKoKK+C4o+C4quC4gQor4Lij4Liq4LiZ4LiyCivguKPguKrguKrguLjguITguJnguJjguYwKK+C4o+C4quC4suC4ouC4meC5gOC4p+C4lwor4Lij4Liq4Li04LiBCivguKPguKvguLHguJcKK+C4o+C4q+C4seC4qgor4Lij4Lir4Lix4Liq4Lii4LmMCivguKPguKvguLTguJUKK+C4o+C5guC4qwor4Lij4LitCivguKPguYjguK0KK+C4o+C4reC4gQor4Lij4Lit4LiHCivguKPguYjguK3guIcKK+C4o+C5ieC4reC4hwor4Lij4Lit4LiH4LmA4LiH4LmH4LiHCivguKPguYjguK3guIfguYHguKPguYjguIcKK+C4o+C4reC4lAor4Lij4Lit4LiZCivguKPguYjguK3guJkKK+C4o+C5ieC4reC4mQor4Lij4LmI4Lit4LiZ4LiX4Lit4LiHCivguKPguK3guJoKK+C4o+C4reC4oQor4Lij4Lit4Lih4LiK4Lit4LihCivguKPguK3guKHguKPguYjguK0KK+C4o+C4reC4ogor4Lij4LmI4Lit4LiiCivguKPguYnguK3guKIKK+C4o+C5ieC4reC4ouC4o+C4uQor4Lij4LmI4Lit4LmB4Lij4LmICivguKPguLAKK+C4o+C4sOC4geC4sAor4Lij4Liw4LiB4LiyCivguKPguLDguIHguLMKK+C4o+C4sOC5gOC4geC4sOC4o+C4sOC4geC4sAor4Lij4Liw4LiE4LiZCivguKPguLDguITguLLguIcKK+C4o+C4sOC4hOC4suC4ogor4Lij4Liw4LmA4LiE4LmH4LiU4Lij4Liw4LiE4Liy4LiiCivguKPguLDguYHguITguLAKK+C4o+C4sOC4huC4seC4hwor4Lij4Liw4LiH4LihCivguKPguLDguIfguKHguYTguJ7guKMKK+C4o+C4sOC4h+C4seC4mgor4Lij4Liw4LiH4Lix4Lia4Lie4Li04LipCivguKPguLDguIfguLXguYgKK+C4o+C4sOC5geC4h+C5iQor4Lij4Liw4LmC4LiH4LiB4Lir4Li04LiZCivguKPguLDguIrguKfguKIKK+C4o+C4sOC4lOC4oQor4Lij4Liw4LiU4LiwCivguKPguLDguJTguLHguJoKK+C4o+C4sOC4lOC4sgor4Lij4Liw4LiU4LmI4Liy4LinCivguKPguLDguJTguLkKK+C4o+C4sOC5gOC4lOC5iOC4mQor4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguKPguLDguYHguJQKK+C4o+C4sOC4leC4uQor4Lij4Liw4LiX4LiBCivguKPguLDguJfguJQKK+C4o+C4sOC4l+C4oQor4Lij4Liw4LiX4Lin4LiiCivguKPguLDguJfguK3guJQKK+C4o+C4sOC4l+C4sgor4Lij4Liw4LiX4Li24LiBCivguKPguLDguJfguLbguIcKK+C4o+C4sOC5geC4l+C4sAor4Lij4Liw4LiZ4Lix4LihCivguKPguLDguJnguLLguJQKK+C4o+C4sOC4meC4suC4mgor4Lij4Liw4LiZ4Liy4LihCivguKPguLDguJnguLLguKcKK+C4o+C4sOC5gOC4meC4mQor4Lij4Liw4LmA4LiZ4LiZ4Lij4Liw4LiZ4Liy4LiUCivguKPguLDguYDguJnguKPguLDguJnguLLguJQKK+C4o+C4sOC5gOC4meC4teC4ouC4lAor4Lij4Liw4LmB4LiZ4LiHCivguKPguLDguYHguJnguLAKK+C4o+C4sOC4muC4mgor4Lij4Liw4Lia4LihCivguKPguLDguJrguK3guJoKK+C4o+C4sOC4muC4seC4lAor4Lij4Liw4Lia4Lix4LiaCivguKPguLDguJrguLLguI0KK+C4o+C4sOC4muC4suC4lAor4Lij4Liw4Lia4Liy4LiZ4Li1CivguKPguLDguJrguLLguJnguLXguYkKK+C4o+C4sOC4muC4suC4ogor4Lij4Liw4Lia4LizCivguKPguLDguJrguLQKK+C4o+C4sOC4muC4tOC4pQor4Lij4Liw4Lia4Li34LitCivguKPguLDguJrguLgKK+C4o+C4sOC4muC4uQor4Lij4Liw4LmA4Lia4LiHCivguKPguLDguYDguJrguYfguIcKK+C4o+C4sOC5gOC4muC4tOC4lAor4Lij4Liw4LmA4Lia4Li14Lii4LiHCivguKPguLDguYDguJrguLXguKLguJkKK+C4o+C4sOC5gOC4muC4teC4ouC4mgor4Lij4Liw4LmB4Lia4LiaCivguKPguLDguYPguJoKK+C4o+C4sOC4oeC4seC4lOC4o+C4sOC4p+C4seC4hwor4Lij4Liw4Lih4LiyCivguKPguLDguKHguLLguJQKK+C4o+C4sOC5gOC4oeC4teC4ouC4owor4Lij4Liw4Lii4LmI4LitCivguKPguLDguKLguYjguK3guKEKK+C4o+C4sOC4ouC4sAor4Lij4Liw4Lii4Lix4LiHCivguKPguLDguKLguLHguYnguIcKK+C4o+C4sOC4ouC4seC4lAor4Lij4Liw4Lii4Lix4LiaCivguKPguLDguKLguYnguLIKK+C4o+C4sOC4ouC4suC4mQor4Lij4Liw4Lii4Liy4LiaCivguKPguLDguKLguLLguKHguKPguLDguKLguLHguJoKK+C4o+C4sOC4ouC4swor4Lij4Liw4Lii4Li04Lia4Lij4Liw4Lii4Lix4LiaCivguKPguLDguYLguKLguIcKK+C4o+C4sOC4o+C4p+C4ogor4Lij4Liw4Lij4Lit4LiHCivguKPguLDguKPguYjguK3guJkKK+C4o+C4sOC4o+C4seC4pwor4Lij4Liw4Lij4Liy4LiZCivguKPguLDguKPguYjguLLguKIKK+C4o+C4sOC4o+C4suC4pwor4Lij4Liw4Lij4Li04LiBCivguKPguLDguKPguLXguYgKK+C4o+C4sOC4o+C4tuC4hwor4Lij4Liw4Lij4Li34LmI4LiZCivguKPguLDguKPguLfguYnguJkKK+C4o+C4sOC5gOC4owor4Lij4Liw4LmA4Lij4LmICivguKPguLDguYDguKPguYnguIcKK+C4o+C4sOC5gOC4o+C5h+C4pwor4Lij4Liw4LmA4Lij4Li04LiHCivguKPguLDguYDguKPguLXguKLguIcKK+C4o+C4sOC5gOC4o+C4teC4ouC4oQor4Lij4Liw4LmA4Lij4Li34LmI4Lit4LiiCivguKPguLDguYHguKPguYgKK+C4o+C4sOC5geC4o+C4hwor4Lij4Liw4Lil4LiHCivguKPguLDguKXguKfguIcKK+C4o+C4sOC4peC4reC4gQor4Lij4Liw4Lil4Lix4LiUCivguKPguLDguKXguLbguIEKK+C4o+C4sOC4peC4uOC4gQor4Lij4Liw4Lil4Li44LiHCivguKPguLDguYDguKXguLTguIcKK+C4o+C4sOC5gOC4peC4teC4ouC4lAor4Lij4Liw4Lin4Lix4LiHCivguKPguLDguKfguLHguIfguYTguJ7guKMKK+C4o+C4sOC4p+C4seC4h+C4p+C4seC4mQor4Lij4Liw4Lin4Liy4LiHCivguKPguLDguKfguLLguJTguKPguLDguYTguKcKK+C4o+C4sOC4p+C4suC4oQor4Lij4Liw4Lin4Liy4LiiCivguKPguLDguKfguLTguIcKK+C4o+C4sOC5geC4p+C4hwor4Lij4Liw4LmB4Lin4LiU4Lij4Liw4Lin4Lix4LiHCivguKPguLDguYTguKcKK+C4o+C4sOC4quC4suC4ogor4Lij4Liw4Liq4LmI4Liz4Lij4Liw4Liq4Liy4LiiCivguKPguLDguKrguLUKK+C4o+C4sOC5gOC4quC4tOC4lOC4o+C4sOC4quC4seC4hwor4Lij4Liw4Lir4LiB4Lij4Liw4LmA4Lir4Li04LiZCivguKPguLDguKvguIcKK+C4o+C4sOC4q+C4p+C4ogor4Lij4Liw4Lir4Lin4LmI4Liy4LiHCivguKPguLDguKvguK3guIfguKPguLDguYHguKvguIcKK+C4o+C4sOC4q+C4reC4mgor4Lij4Liw4Lir4Lix4LiUCivguKPguLDguKvguLLguKIKK+C4o+C4sOC4q+C4uOC4ogor4Lij4Liw4LmA4Lir4LmH4LiICivguKPguLDguYDguKvguKIKK+C4o+C4sOC5gOC4q+C4o+C4sOC4q+C4mQor4Lij4Liw4LmA4Lir4Lir4LiZCivguKPguLDguYDguKvguKvguLHguJkKK+C4o+C4sOC5gOC4q+C4tOC4lAor4Lij4Liw4LmA4Lir4Li04LiZ4Lij4Liw4Lir4LiBCivguKPguLDguYHguKvguIEKK+C4o+C4sOC5geC4q+C4hwor4Lij4Liw4LmC4Lir4LiiCivguKPguLDguK3guKHguKPguLDguK3guLIKK+C4o+C4sOC4reC4sgor4Lij4Liw4Lit4Li04LiU4Lij4Liw4Lit4LiyCivguKPguLDguK3guLbguIEKK+C4o+C4sOC4reC4uAor4Lij4Liw4LmB4Lit4LiZCivguKPguLHguIEKK+C4o+C4seC4geC4guC5jAor4Lij4Lix4LiB4LiC4Liq4LiwCivguKPguLHguIHguILguLIKK+C4o+C4seC4geC4guC4tOC4lQor4Lij4Lix4LiB4LiU4LibCivguKPguLHguIHguJTguLAKK+C4o+C4seC4geC4leC4sAor4Lij4Lix4LiB4Lia4Li14LmJCivguKPguLHguIHguYDguKPguYgKK+C4o+C4seC4geC5geC4o+C5iQor4Lij4Lix4LiB4Lip4LmMCivguKPguLHguIHguKnguLIKK+C4o+C4seC4hwor4Lij4Lix4LmJ4LiHCivguKPguLHguIfguYHguIEKK+C4o+C4seC4h+C4hOC5jAor4Lij4Lix4LiH4LiE4Lin4Liy4LiZCivguKPguLHguIfguYHguIQKK+C4o+C4seC4h+C4meC4suC4mQor4Lij4Lix4LiH4Lij4Lit4LiHCivguKPguLHguIfguKfguLHguJQKK+C4o+C4seC4h+C4quC4tAor4Lij4Lix4LiH4Liq4Li04Lih4Lix4LiZ4LiV4Li44LmMCivguKPguLHguIfguKrguLTguKHguLIKK+C4o+C4seC4h+C4quC4tQor4Lij4Lix4LiH4Lir4Lii4Liy4LinCivguKPguLHguIjguInguLIKK+C4o+C4seC4igor4Lij4Lix4LiK4LiB4LiwCivguKPguLHguIrguIrguLgKK+C4o+C4seC4iuC4juC4suC4oOC4tOC5gOC4qeC4gQor4Lij4Lix4LiK4LiZ4LiwCivguKPguLHguIrguJnguLUKK+C4o+C4seC4jeC4iOC4p+C4mQor4Lij4Lix4LiP4LiQ4Liy4Lig4Li04Lib4Liy4Lil4LmC4LiZ4Lia4Liy4LiiCivguKPguLHguJAKK+C4o+C4seC4lAor4Lij4Lix4LiVCivguKPguLHguJXguITguJkKK+C4o+C4seC4leC4leC4seC4jeC4jeC4uQor4Lij4Lix4LiV4LiV4Li0CivguKPguLHguJXguJnguYwKK+C4o+C4seC4leC4meC4sAor4Lij4Lix4LiV4Lih4LiyCivguKPguLHguJYKK+C4o+C4seC4luC4ouC4sgor4Lij4Lix4LiX4LmA4LiX4Lit4Lij4LmM4Lif4Lit4Lij4LmM4LmA4LiU4Li14Lii4LihCivguKPguLHguJkKK+C4o+C4seC5ieC4mQor4Lij4Lix4LiZ4LiK4LiZ4Lij4Lix4LiZ4LmB4LiK4LiHCivguKPguLHguJnguJfguJQKK+C4o+C4seC4meC4l+C4p+C4ogor4Lij4Lix4LiZ4LiX4LizCivguKPguLHguJnguYHguJfguLAKK+C4o+C4seC4meC4mOC4sAor4Lij4Lix4LiaCivguKPguLHguKHguKDguLIKK+C4o+C4seC4oeC4oeC4teC5iAor4Lij4Lix4Lih4Lii4LmMCivguKPguLHguKIKK+C4o+C4seC4pwor4Lij4Lix4LmI4LinCivguKPguLHguYnguKcKK+C4o+C4seC4qOC4oeC4tOC4oeC4seC4leC4tAor4Lij4Lix4Lio4Lih4Li04Lih4Liy4LiZCivguKPguLHguKjguKHguLUKK+C4o+C4seC4qeC4juC4suC4geC4owor4Lij4Lix4Liq4Liq4LiwCivguKPguLIKK+C4o+C5iOC4sgor4Lij4LmJ4LiyCivguKPguLLguIEKK+C4o+C4suC4geC4qeC4qgor4Lij4Liy4LiB4LmC4Lip4LiqCivguKPguLLguIHguKrguLLguJQKK+C4o+C4suC4hOC4sAor4Lij4Liy4LiE4LiyCivguKPguLLguITguLTguJkKK+C4o+C4suC4hOC4tQor4Lij4Liy4LiHCivguKPguYjguLLguIcKK+C4o+C5ieC4suC4hwor4Lij4Liy4LiH4LiI4Li34LiUCivguKPguLLguIfguIrguLLguIcKK+C4o+C4suC4h+C4lOC4swor4Lij4Liy4LiH4LmB4LiU4LiHCivguKPguLLguIfguJnguLLguJkKK+C4o+C4suC4h+C4p+C4seC4pQor4Lij4Liy4LiKCivguKPguLLguIrguI3guLUKK+C4o+C4suC4iuC4lOC4seC4lAor4Lij4Liy4LiK4Lie4Lik4LiB4Lip4LmMCivguKPguLLguIrguKHguLLguJPguJ4KK+C4o+C4suC4iuC4ouC5jAor4Lij4Liy4LiK4LiwCivguKPguLLguIrguLHguJkKK+C4o+C4suC4iuC4seC4meC4ouC5jAor4Lij4Liy4LiK4Lix4LiiCivguKPguLLguIrguLIKK+C4o+C4suC4iuC4suC4ouC4leC4meC4sAor4Lij4Liy4LiK4Liy4Lin4LiU4Li1CivguKPguLLguIrguLQKK+C4o+C4suC4iuC4tOC4meC4tQor4Lij4Liy4LiK4Li1CivguKPguLLguYDguIrguJkKK+C4o+C4suC5gOC4iuC4meC4l+C4o+C4ouC4suC4mQor4Lij4Liy4LiNCivguKPguLLguI3guKPguK3guJkKK+C4o+C4suC4lAor4Lij4Liy4LiVCivguKPguLLguJXguKMKK+C4o+C4suC4leC4o+C4tQor4Lij4Liy4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4Lia4LiU4Liy4LinCivguKPguLLguYLguJcKK+C4o+C4suC4mOC4sgor4Lij4Liy4LiZCivguKPguYjguLLguJkKK+C4o+C5ieC4suC4mQor4Lij4Liy4LiaCivguKPguLLguJ7guJPguYwKK+C4o+C4suC4oQor4Lij4Liy4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li04LmMCivguKPguLLguKHguKrguLnguKMKK+C4o+C4suC4oeC4seC4jQor4Lij4Liy4Lih4LiyCivguKPguLLguKIKK+C4o+C5iOC4suC4ogor4Lij4LmJ4Liy4LiiCivguKPguYjguLLguKLguKPguLHguIcKK+C4o+C4suC4pwor4Lij4LmJ4Liy4LinCivguKPguLLguKfguLUKK+C4o+C4suC4qOC4tQor4Lij4Liy4Lip4LiO4LijCivguKPguLLguKnguI7guKPguYwKK+C4o+C4suC4qeC4leC4o+C4tQor4Lij4Liy4Lip4Lij4Liy4LiV4Lij4Li04LiZCivguKPguLLguKnguKPguLLguJXguKPguLUKK+C4o+C4suC4quC4tQor4Lij4Liy4Lir4Li4CivguKPguYjguLLguKvguLjguYwKK+C4o+C4suC4q+C4uQor4Lij4LizCivguKPguYjguLMKK+C4o+C4s+C4hOC4suC4jQor4Lij4Liz4LiH4Lix4LiaCivguKPguLPguIjguKfguJkKK+C4o+C4s+C4i+C4uOC4ogor4Lij4Liz4Lia4Liy4LiNCivguKPguLPguJ7guLHguJkKK+C4o+C4s+C4nuC4suC4ogor4Lij4Liz4Lie4Li24LiHCivguKPguLPguYDguJ7guKIKK+C4o+C4s+C5hOC4ngor4Lij4Liz4Lih4Liw4LmA4LiCCivguKPguLPguKHguLDguJnguLIKK+C4o+C4s+C4oeC4sOC4meC4suC4lAor4Lij4Liz4Lih4Liw4Lij4LmI4LitCivguKPguLPguKLguKfguJkKK+C4o+C4s+C4ouC5ieC4reC4ogor4Lij4Liz4LmB4Lii4LmJCivguKPguYjguLPguKPguKfguKIKK+C4o+C4s+C4o+C4suC4jQor4Lij4Liz4Lij4LizCivguKPguLPguYDguKMKK+C4o+C4s+C5hOC4owor4Lij4Liz4Lil4Li24LiBCivguKPguLPguKvguLHguJQKK+C4o+C4s+C4q+C4seC4qgor4Lij4Li0CivguKPguLTguIEKK+C4o+C4tOC4geC5hgor4Lij4Li04LiU4Liq4Li14LiU4Lin4LiHCivguKPguLTguJkKK+C4o+C4tOC5ieC4mQor4Lij4Li04LiZ4LmGCivguKPguLTguJoKK+C4o+C4tOC4muC4muC4tOC5ieC4mQor4Lij4Li04Lia4Lij4Li14LmICivguKPguLTguJrguKvguKPguLXguYgKK+C4o+C4tOC4m+C4uAor4Lij4Li04Lib4Li5CivguKPguLTguKEKK+C4o+C4tOC5ieC4pwor4Lij4Li04Lip4Lii4LiyCivguKPguLUKK+C4o+C4teC5iAor4Lij4Li14LmJCivguKPguLXguYbguILguKfguLLguIfguYYKK+C4o+C4teC5huC4o+C4reC5hgor4Lij4Li14LiUCivguKPguLXguJTguLHguIHguIrguLHguJkKK+C4o+C4teC4lQor4Lij4Li14LmA4LiZ4Li14Lii4LihCivguKPguLXguJoKK+C4o+C4teC4oQor4Lij4Li14Lij4LitCivguKPguLXguYnguKPguLTguIEKK+C4o+C4tuC4geC4leC5jAor4Lij4Li24LiHCivguKPguLbguYnguIcKK+C4o+C4t+C5iOC4mQor4Lij4Li34LmJ4LiZCivguKPguLfguYnguK0KK+C4o+C4uAor4Lij4Li44LiBCivguKPguLjguIHguILguYwKK+C4o+C4uOC4geC4guC4geC4sAor4Lij4Li44LiB4LiC4LiyCivguKPguLjguIHguKPguLjguKIKK+C4o+C4uOC4geC4qeC4sAor4Lij4Li44LmI4LiHCivguKPguLjguYnguIcKK+C4o+C4uOC4h+C4o+C4seC4hwor4Lij4Li44LiICivguKPguLjguIjguJkKK+C4o+C4uOC4iOC4sgor4Lij4Li44LiI4Li0CivguKPguLjguIjguLTguKPguLAKK+C4o+C4uOC4iOC4tOC4o+C4sgor4Lij4Li44LiI4Li1CivguKPguLjguIrguLIKK+C4o+C4uOC4lAor4Lij4Li44LiVCivguKPguLjguJfguJjguYwKK+C4o+C4uOC4l+C4owor4Lij4Li44LiY4Li04LijCivguKPguLjguYDguJjguLXguKLguKMKK+C4o+C4uOC4mQor4Lij4Li44LmI4LiZCivguKPguLjguJrguKPguLnguYgKK+C4o+C4uOC4muC4suC4geC4suC4owor4Lij4Li44LihCivguKPguLjguYjguKEKK+C4o+C4uOC5iOC4oeC4o+C5iOC4suC4oQor4Lij4Li44LiiCivguKPguLjguYjguKIKK+C4o+C4uOC4o+C4uAor4Lij4Li44Lip4LiP4LmMCivguKPguLjguKvguLAKK+C4o+C4uOC4q+C4suC4jQor4Lij4Li5CivguKPguLnguYgKK+C4o+C4ueC5iQor4Lij4Li54LiI4Li1CivguKPguLnguJQKK+C4o+C4ueC4l+C4teC5gOC4meC4teC4ouC4oQor4Lij4Li54LmJ4LiZ4Lit4LiZCivguKPguLnguJrguLTguYDguJTguLXguKLguKEKK+C4o+C4ueC4mwor4Lij4Li54Lib4Li04Lii4LiwCivguKPguLnguJvguLUKK+C4o+C4ueC5gOC4peC5h+C4leC4leC5jAor4Lij4Li54Lir4LiyCivguYDguKPguYgKK+C5gOC4o+C4ggor4LmA4Lij4LiC4LiyCivguYDguKPguILguLLguITguJPguLTguJUKK+C5gOC4o+C5h+C4hwor4LmA4Lij4LmI4LiHCivguYDguKPguYnguIcKK+C5gOC4o+C4k+C4uAor4LmA4Lij4LiT4Li44LiBCivguYDguKPguJPguLkKK+C5gOC4o+C4lOC4reC4mQor4LmA4Lij4LiU4Liy4Lij4LmMCivguYDguKPguYDguJTguLXguKLguKEKK+C5gOC4o+C5ieC4mQor4LmA4Lij4Lii4Lit4LiHCivguYDguKPguKPguKfguJkKK+C5gOC4o+C5hOC4owor4LmA4Lij4LmH4LinCivguYDguKPguYjguKcKK+C5gOC4o+C4p+C4lOC4tQor4LmA4Lij4LitCivguYDguKPguYjguK0KK+C5gOC4o+C4sgor4LmA4Lij4LmI4LiyCivguYDguKPguYnguLIKK+C5gOC4o+C5iOC4suC5hgor4LmA4Lij4Liy4LiwCivguYDguKPguLTguIcKK+C5gOC4o+C4tOC4lAor4LmA4Lij4Li04LihCivguYDguKPguLTguYjguKEKK+C5gOC4o+C4tOC5ieC4oQor4LmA4Lij4Li04Lio4Lij4LmJ4Liy4LiHCivguYDguKPguLXguYjguKIKK+C5gOC4o+C4teC5ieC4ouC5hgor4LmA4Lij4Li14Lii4LiBCivguYDguKPguLXguKLguIcKK+C5gOC4o+C4teC4ouC4h+C5hgor4LmA4Lij4Li14Lii4LiUCivguYDguKPguLXguKLguJkKK+C5gOC4o+C4teC4ouC4mgor4LmA4Lij4Li14Lii4LihCivguYDguKPguLXguYjguKLguKEKK+C5gOC4o+C4teC4ouC4pwor4LmA4Lij4Li14LmI4Lii4LinCivguYDguKPguLXguYnguKLguKfguKPguIEKK+C5gOC4o+C4t+C4rQor4LmA4Lij4Li34LmI4LitCivguYDguKPguLfguYnguK0KK+C5gOC4o+C4t+C4reC4gQor4LmA4Lij4Li34Lit4LiB4Liq4Lin4LiZCivguYDguKPguLfguK3guIcKK+C5gOC4o+C4t+C5iOC4reC4hwor4LmA4Lij4Li34LmJ4Lit4LiHCivguYDguKPguLfguK3guIfguKPguK3guIcKK+C5gOC4o+C4t+C4reC4lAor4LmA4Lij4Li34Lit4LiZCivguYDguKPguLfguYnguK3guJkKK+C5gOC4o+C4t+C5ieC4reC4ogor4LmB4LijCivguYHguKPguYgKK+C5geC4o+C4gQor4LmB4Lij4LmH4LiB4LmA4LiB4LiVCivguYHguKPguIcKK+C5geC4o+C5iOC4hwor4LmB4Lij4LmJ4LiHCivguYHguKPguYjguIfguKPguLTguYnguKcKK+C5geC4o+C5iOC4h+C5hOC4q+C4oQor4LmB4Lij4LiUCivguYHguKPguYnguJnguYHguITguYnguJkKK+C5geC4o+C4oQor4LmB4Lij4LmJ4LinCivguYHguKPguLAKK+C5guC4owor4LmC4Lij4LmICivguYLguKPguIQKK+C5guC4o+C4hwor4LmC4Lij4LiICivguYLguKPguIjguJnguYwKK+C5guC4o+C5gOC4lOC4teC4ouC4oQor4LmC4Lij4LiV4Li1CivguYLguKPguJcKK+C5guC4o+C4l+C4meC4sAor4LmC4Lij4LiYCivguYLguKPguJjguKMKK+C5guC4o+C5gOC4meC4teC4ouC4pwor4LmC4Lij4Lib4LiZ4LiwCivguYLguKPguKEKK+C5guC4o+C4oeC4seC4jeC4iAor4LmC4Lij4Lih4Lix4LiZCivguYLguKPguKHguLHguJnguITguLLguJfguK3guKXguLTguIEKK+C5guC4o+C5gOC4oeC4reC4o+C5jAor4LmC4Lij4LiiCivguYLguKPguYDguKMKK+C5guC4o+C4qQor4LmC4Lij4Lip4LiT4LiwCivguYLguKPguKvguLTguJPguLUKK+C5guC4o+C4q+C4tOC4lQor4LmE4LijCivguYTguKPguYgKK+C5hOC4o+C5iQor4LmE4Lij4Lif4Lix4LiZCivguYTguKPguKLguYwKK+C4pAor4Lik4LiB4Lip4LmMCivguKTguIHguKnguJPguLAKK+C4pOC4hOC5gOC4p+C4lwor4Lik4LiK4LiyCivguKTguIrguLgKK+C4pOC4kwor4Lik4LiU4Li1CivguKTguJTguLXguKLguLIKK+C4pOC4lOC4uQor4Lik4LiVCivguKTguJXguLTguKLguLIKK+C4pOC4leC4uAor4Lik4LiV4Li44Liq4LiZ4Liy4LiZCivguKTguJfguJjguLIKK+C4pOC4l+C4mOC4tOC5jAor4Lik4LiX4Lix4LiiCivguKTguKnguKAKK+C4pOC4qeC4ouC4sgor4Lik4Lip4Li1CivguKTguYUKK+C4pOC5heC4iuC4uAor4Lik4LmF4LiU4Li1CivguKTguYXguJfguLHguKIKK+C4pOC5heC4qeC4tQor4Lik4LmF4Liq4Liy4LiiCivguKUKK+C4peC4gQor4Lil4LiB4Liy4LijCivguKXguIHguLjguIgKK+C4peC4hOC4uOC4kQor4Lil4LiE4Li44LisCivguKXguIbguLgKK+C4peC4hwor4Lil4LmI4LiHCivguKXguIfguIHguLIKK+C4peC5ieC4h+C5gOC4peC5ieC4hwor4Lil4LiUCivguKXguJTguLIKK+C4peC4mQor4Lil4LmI4LiZCivguKXguYnguJkKK+C4peC4mgor4Lil4Lia4LihCivguKXguJrguK3guIcKK+C4peC4m+C4gQor4Lil4Lib4LiZCivguKXguJ4KK+C4peC4nuC4uOC4igor4Lil4LihCivguKXguYjguKEKK+C4peC5ieC4oQor4Lil4Lih4Liy4LiUCivguKXguKPguKPguKXguLjguIcKK+C4peC4peC4meC4sgor4Lil4Lil4Liy4LiPCivguKXguKXguLTguJUKK+C4peC4p+C4gQor4Lil4Lin4LiHCivguKXguYjguKfguIcKK+C4peC5ieC4p+C4hwor4Lil4Lin4LiH4LiE4LmMCivguKXguKfguIfguYDguKXguYnguLIKK+C4peC4p+C4k+C4sAor4Lil4Lin4LiUCivguKXguYnguKfguJkKK+C4peC4p+C4meC4peC4suC4oQor4Lil4Lin4LiZ4LiwCivguKXguYjguKfguKEKK+C4peC4p+C4sAor4Lil4Lin4Li04LiV4LijCivguKXguKvguLgKK+C4peC4q+C4uOC4geC4sAor4Lil4LmI4LitCivguKXguYnguK0KK+C4peC4reC4gQor4Lil4LmH4Lit4LiB4LmA4LiB4LiVCivguKXguK3guIHguYHguKXguIEKK+C4peC4reC4geC4suC4o+C4tOC4l+C4tuC4oQor4Lil4Lit4LiHCivguKXguYjguK3guIcKK+C4peC4reC4h+C4geC4reC4hwor4Lil4Lit4LiH4LiI4Li04LiI4Li54LiUCivguKXguK3guIfguYTguJkKK+C4peC4reC4lAor4Lil4Lit4LiV4LmA4LiV4Lit4Lij4Li14LmICivguKXguK3guJkKK+C4peC5iOC4reC4mQor4Lil4Lit4LiaCivguKXguK3guKEKK+C4peC5ieC4reC4oQor4Lil4Lit4Lih4LiK4Lit4LihCivguKXguYnguK3guKHguJvguKPguKfguJQKK+C4peC4reC4oeC4nuC4reC4gQor4Lil4Lit4LiiCivguKXguYjguK3guKIKK+C4peC5iOC4reC5geC4peC5iAor4Lil4Lit4Lin4LmM4LmA4Lij4LiZ4LmA4LiL4Li14Lii4LihCivguKXguK3guK0KK+C4peC4sAor4Lil4LmI4LiwCivguKXguLDguIHguKUKK+C4peC4sOC4geC4ueC4oeC4sOC4meC4tOC4qgor4Lil4Liw4LiC4Lix4LiU4Lil4Liw4LiC4Li34LiZCivguKXguLDguITguKMKK+C4peC4sOC4hOC4tAor4Lil4Liw4LiE4Li24LiBCivguKXguLDguIfguLLguJQKK+C4peC4sOC4h+C4tOC4lAor4Lil4Liw4LiV4Li04LiI4Li54LiUCivguKXguLDguJrguKHguKXguLDguJrguK3guIcKK+C4peC4sOC4muC4seC4lAor4Lil4Liw4Lia4Li34LitCivguKXguLDguYDguJrguYfguIcKK+C4peC4sOC5guC4muC4oQor4Lil4Liw4Lih4LmI4Lit4LihCivguKXguLDguKHguLHguYjguIcKK+C4peC4sOC4oeC4sgor4Lil4Liw4Lih4Liy4LiZCivguKXguLDguKHguYnguLLguKIKK+C4peC4sOC4oeC4uAor4Lil4Liw4Lih4Li44LiUCivguKXguLDguKHguLjguJkKK+C4peC4sOC5gOC4oeC5h+C4h+C4peC4sOC4hOC4owor4Lil4Liw4LmA4Lih4LmH4LiUCivguKXguLDguYDguKHguK0KK+C4peC4sOC5gOC4oeC4suC4sAor4Lil4Liw4LmA4Lih4Li04LiUCivguKXguLDguYDguKHguLXguKLguJQKK+C4peC4sOC5gOC4oeC4teC4ouC4mgor4Lil4Liw4LmB4Lih4LiwCivguKXguLDguYLguKHguIEKK+C4peC4sOC5guC4oeC4mgor4Lil4Liw4LmE4LihCivguKXguLDguKPguLUKK+C4peC4sOC4peC4meC4peC4sOC4peC4suC4mQor4Lil4Liw4Lil4Lih4Lil4Liw4Lil4Liy4LiiCivguKXguLDguKXguKfguKIKK+C4peC4sOC4peC4reC4gQor4Lil4Liw4Lil4Lit4Lia4Lil4Liw4LmA4Lil4LmJ4LiyCivguKXguLDguKXguLHguIcKK+C4peC4sOC4peC4seC4lAor4Lil4Liw4Lil4LmJ4LiyCivguKXguLDguKXguLLguJkKK+C4peC4sOC4peC4suC4muC4peC4sOC4peC5ieC4p+C4hwor4Lil4Liw4Lil4Liy4LiiCivguKXguLDguKXguYnguLLguKcKK+C4peC4sOC4peC5iOC4s+C4peC4sOC4peC4seC4gQor4Lil4Liw4Lil4Li04LiaCivguKXguLDguKXguLjguIcKK+C4peC4sOC4peC4uOC4oQor4Lil4Liw4LmA4Lil4LiHCivguKXguLDguYDguKXguYnguLIKK+C4peC4sOC5gOC4peC4suC4sAor4Lil4Liw4LmA4Lil4Liy4Liw4Lil4Liw4Lil4Lit4LiHCivguKXguLDguYDguKXguLTguIcKK+C4peC4sOC5gOC4peC4teC4ouC4lAor4Lil4Liw4LmA4Lil4Li14Lii4LiaCivguKXguLDguYDguKXguLfguK3guIEKK+C4peC4sOC5hOC4peC5iQor4Lil4Liw4Lin4LilCivguKXguLDguKfguYnguK0KK+C4peC4sOC4p+C5ieC4sgor4Lil4Liw4Lin4Liy4LiUCivguKXguLDguYDguKfguIcKK+C4peC4sOC5geC4p+C4gQor4Lil4Liw4LmC4Lin4LmJCivguKXguLDguKvguKHguLLguJQKK+C4peC4sOC4q+C4oeC4suC4lOC4jeC4suC4meC4suC4i+C4sOC4ruC5jAor4Lil4Liw4Lir4Lil4Lix4LiUCivguKXguLDguKvguYnguK3guKIKK+C4peC4sOC4q+C4suC4mQor4Lil4Liw4Lir4Li44LmI4LiHCivguKXguLDguYDguKvguKIKK+C4peC4sOC5gOC4q+C4teC5iOC4ogor4Lil4Liw4Lit4Lit4LiHCivguKXguLDguK3guK3guIfguKHguLHguYjguIcKK+C4peC4sOC4reC4suC4ogor4Lil4Liw4LmA4Lit4Li14Lii4LiUCivguKXguLDguYHguK3guJkKK+C4peC4seC4gQor4Lil4Lix4LiB4LiC4LiT4LiwCivguKXguLHguIHguILguJPguLIKK+C4peC4seC4geC4guC4sAor4Lil4Lix4LiB4LiI4Lix4LmI4LiZCivguKXguLHguIHguJvguLTguJTguKXguLHguIHguYDguJvguLTguJQKK+C4peC4seC4geC4qeC4k+C4sAor4Lil4Lix4LiB4Lip4Lih4LiT4LmMCivguKXguLHguIHguKnguKHguLLguJPguLIKK+C4peC4seC4geC4qeC4oeC4tQor4Lil4Lix4LiB4Lip4LiwCivguKXguLHguITguITguLAKK+C4peC4seC4hOC4meC5jAor4Lil4Lix4LiE4LiZ4LiyCivguKXguLHguIcKK+C4peC4seC5iOC4hwor4Lil4Lix4LiH4LiB4LiyCivguKXguLHguIfguITguLQKK+C4peC4seC4h+C4hOC4tQor4Lil4Lix4LiH4LiW4Li24LiHCivguKXguLHguIfguKXguK3guIcKK+C4peC4seC4h+C5gOC4pQor4Lil4Lix4LiH4Liq4Liy4LiUCivguKXguLHguIrguIrguLIKK+C4peC4seC4iuC4iuC4tQor4Lil4Lix4LiN4LiI4LmMCivguKXguLHguI3guIjguIHguKMKK+C4peC4seC4jeC4iQor4Lil4Lix4LiN4LiJ4LiB4LijCivguKXguLHguI3guInguJnguYwKK+C4peC4seC4kOC4tAor4Lil4Lix4LiQ4Li04LiB4LiyCivguKXguLHguJQKK+C4peC4seC4lOC4sgor4Lil4Lix4LiX4LiY4LmMCivguKXguLHguJfguJjguLQKK+C4peC4seC4mQor4Lil4Lix4LmI4LiZCivguKXguLHguJnguYDguJUKK+C4peC4seC4meC5gOC4leC4sgor4Lil4Lix4LiZ4LmE4LiVCivguKXguLHguYjguJnguJbguLHguJkKK+C4peC4seC5iOC4meC4l+C4oQor4Lil4Lix4LiZ4LiX4Lin4LiiCivguKXguLHguJnguYLguJfguKEKK+C4peC4seC4mgor4Lil4Lix4Lie4LiY4LmMCivguKXguLHguJ7guJjguLQKK+C4peC4seC4oAor4Lil4Lix4Lig4LiZ4LiwCivguKXguLHguKDguKLguYwKK+C4peC4seC4oeC4nuC5jAor4Lil4Lix4LiiCivguKXguLHguKfguLAKK+C4peC4sgor4Lil4LmI4LiyCivguKXguYnguLIKK+C4peC4suC4gQor4Lil4Liy4LiB4Lip4LiyCivguKXguLLguILguLIKK+C4peC4suC4hwor4Lil4LmI4Liy4LiHCivguKXguYnguLLguIcKK+C4peC4suC4h+C4hOC4seC4pQor4Lil4Liy4LiH4LiH4Li04LiUCivguKXguLLguIfguKXguLTguIcKK+C4peC4suC4h+C4quC4suC4lAor4Lil4Liy4LiH4Liy4LiUCivguKXguYnguLLguIfguLLguJQKK+C4peC4suC5gOC4h+C5h+C4lAor4Lil4Liy4LiKCivguKXguLLguIrguLIKK+C4peC4suC4jQor4Lil4Liy4LiUCivguKXguLLguJTguYDguKXguLIKK+C4peC5ieC4suC4leC5ieC4sgor4Lil4LmI4Liy4LmA4LiV4Li14Lii4LiHCivguKXguYnguLLguYDguJXguLXguKLguIcKK+C4peC4suC4mQor4Lil4LmI4Liy4LiZCivguKXguLLguJoKK+C4peC4suC4mwor4Lil4Liy4Lie4Lit4LiZCivguKXguLLguJ7guLgKK+C4peC4suC5gOC4ngor4Lil4Liy4LmA4Lie4LiyCivguKXguLLguKAKK+C4peC4suC4oQor4Lil4LmI4Liy4LihCivguKXguLLguKHguLAKK+C4peC4suC4ogor4Lil4LmJ4Liy4LiiCivguKXguLLguKXguJnguLAKK+C4peC4suC4peC4qgor4Lil4Liy4Lil4LiyCivguKXguLLguKcKK+C4peC4suC4p+C4gQor4Lil4Liy4Lin4Lix4LiT4Lii4LmMCivguKXguLLguKfguLIKK+C4peC4suC4quC4meC4sAor4Lil4LizCivguKXguYjguLMKK+C4peC5ieC4swor4Lil4Liz4LmA4LiC4LmH4LiNCivguKXguLPguYHguIIKK+C4peC4s+C5gOC4hOC5h+C4jQor4Lil4Liz4LmA4LiE4Li34Lit4LiHCivguKXguLPguIfguLLguJQKK+C4peC4s+C5gOC4iOC4teC4ouC4gQor4Lil4Liz4LiU4Lin4LiZCivguKXguLPguJTguLHguJoKK+C4peC4s+C4meC4seC4gQor4Lil4Liz4LmA4LiZ4LiyCivguKXguLPguJrguK3guIcKK+C4peC4s+C4muC4suC4gQor4Lil4Liz4Lia4Li4CivguKXguLPguJvguLMKK+C4peC4s+C4nuC4p+C4mQor4Lil4Liz4Lie4Lit4LiHCivguKXguLPguJ7guLHguIcKK+C4peC4s+C4nuC4uQor4Lil4Liz4LmA4Lie4LmH4LiNCivguKXguLPguYDguJ7guLIKK+C4peC4s+C5geC4nuC4hwor4Lil4Liz4LmB4Lie4LiZCivguKXguLPguYLguJ7guIcKK+C4peC4s+C5hOC4nuC5iAor4Lil4Liz4Lig4Li44LiC4Lix4LiZCivguKXguLPguKHguLDguKXguK3guIEKK+C4peC4s+C4oeC4suC4lAor4Lil4Liz4LmA4Lih4Liy4LiwCivguKXguLPguYDguKHguLXguKLguJoKK+C4peC4s+C4ouC4reC4hwor4Lil4Liz4Lii4LiyCivguKXguLPguYTguKIKK+C4peC4s+C4peC4reC4hwor4Lil4LmI4Liz4Lil4LiyCivguKXguLPguKXguLLguJoKK+C4peC4s+C4peC4swor4Lil4Liz4Lil4Li24LiBCivguKXguLPguYDguKXguLLguLAKK+C4peC4s+C5gOC4peC4tOC4gQor4Lil4Liz4LmA4Lil4Li14Lii4LiHCivguKXguLPguYDguKXguLXguKLguJoKK+C4peC4s+C5gOC4p+C4teC4ouC4hwor4Lil4Liz4LmA4Lin4Li14Lii4LiZCivguKXguLPguK3guLjguJQKK+C4peC4s+C5gOC4reC4teC4ouC4gQor4Lil4Liz4LmC4Lit4LiHCivguKXguLQKK+C4peC4tOC4geC4guC4sgor4Lil4Li04LiB4LmE4LiZ4LiV4LmMCivguKXguLTguIHguKnguLIKK+C4peC4tOC4geC4uOC4iAor4Lil4Li04LmA4LiBCivguKXguLTguILguJnguLAKK+C4peC4tOC4guC4quC4tOC4l+C4mOC5jAor4Lil4Li04LiC4Li04LiVCivguKXguLTguIcKK+C4peC4tOC4h+C4hOC5jAor4Lil4Li04LiH4LmC4Lil4LiUCivguKXguLTguJQKK+C4peC4tOC4lQor4Lil4Li04LiV4Lih4Lix4LiqCivguKXguLTguJXguKMKK+C4peC4tOC5gOC4l+C4teC4ouC4oQor4Lil4Li04LmI4LiZCivguKXguLTguYnguJkKK+C4peC4tOC4meC5guC4geC4o+C4ogor4Lil4Li04LiZ4LiI4LiHCivguKXguLTguYnguJnguIjguLXguYgKK+C4peC4tOC5iOC4meC4leC5ieC4mQor4Lil4Li04LmI4LiZ4LiX4Liw4LmA4LilCivguKXguLTguYjguJnguK7guLfguYnguK0KK+C4peC4tOC4meC4tOC4mQor4Lil4Li04LiaCivguKXguLTguJvguJTguLIKK+C4peC4tOC4m+C4leC5jAor4Lil4Li04Lib4Liq4LiV4Li04LiBCivguKXguLTguJvguLQKK+C4peC4tOC4n+C4leC5jAor4Lil4Li04LmA4Lig4LiyCivguKXguLTguYjguKEKK+C4peC4tOC5ieC4oQor4Lil4Li04Lih4Lib4LmMCivguKXguLTguKHguJvguJnguLAKK+C4peC4tOC4peC4tOC4lQor4Lil4Li04LinCivguKXguLTguYjguKcKK+C4peC4tOC4quC4hwor4Lil4Li1CivguKXguLXguYgKK+C4peC4teC5iQor4Lil4Li14LiL4LitCivguKXguLXguJoKK+C4peC4teC4peC4sgor4Lil4Li14Lil4Liy4LioCivguKXguLXguKzguKvguLIKK+C4peC4tuC4gQor4Lil4Li24LiH4LiE4LmMCivguKXguLbguIfguITguYzguJnguLLguKLguJ7guKPguLLguJkKK+C4peC4t+C4lAor4Lil4Li34LmI4LiZCivguKXguLfguYnguJkKK+C4peC4t+C4mgor4Lil4Li34LihCivguKXguLfguK0KK+C4peC4t+C5iOC4rQor4Lil4Li34LmJ4LitCivguKXguLgKK+C4peC4uOC4gQor4Lil4Li44LiB4Lil4LiZCivguKXguLjguIHguKXguLXguYnguKXguLjguIHguKXguJkKK+C4peC4uOC4hwor4Lil4Li44LmJ4LiHCivguKXguLjguJUKK+C4peC4uOC4lwor4Lil4Li44LiX4LiB4LiwCivguKXguLjguJfguJjguYwKK+C4peC4uOC5iOC4mQor4Lil4Li44Lib4LiV4LmMCivguKXguLjguJ7guJjguYwKK+C4peC4uOC4nuC4mOC4geC4sAor4Lil4Li44LmI4LihCivguKXguLjguYjguKHguYDguJnguLfguYnguK0KK+C4peC4uOC4oeC4m+C5jAor4Lil4Li44Lih4Lie4Li1CivguKXguLjguKHguJ7guLkKK+C4peC4uOC4oeC4q+C4oeC4sgor4Lil4Li44LiiCivguKXguLjguYjguKIKK+C4peC4uOC5ieC4ogor4Lil4Li44Lil4Liy4LiiCivguKXguLjguKrguLIKK+C4peC4ueC5iAor4Lil4Li54LiBCivguKXguLnguIHguYDguILguKLguJXguLLguKLguYHguKHguYjguKLguLLguKLguIrguLHguIHguJvguKPguIEKK+C4peC4ueC4geC5gOC4hOC4peC5ieC4sgor4Lil4Li54LiB4Lib4Lij4Liw4LiE4Liz4Lic4Li1CivguKXguLnguIHguJvguLfguJnguYPguKvguI3guYgKK+C4peC4ueC4geC5gOC4reC5h+C4mQor4Lil4Li54LiB4LmA4Lit4LmH4LilCivguKXguLnguILguLAKK+C4peC4ueC4leC4sgor4Lil4Li54LiV4Li04LiB4LiyCivguKXguLnguJfguLXguYDguIrguLXguKLguKEKK+C4peC4ueC4meC4sAor4Lil4Li54LiaCivguKXguLnguYjguKvguKXguLXguYgKK+C5gOC4peC4gQor4LmA4Lil4LmH4LiBCivguYDguKXguYfguIHguJTguLIKK+C5gOC4peC5h+C4geC4ruC4reC4o+C5jOC4mQor4LmA4Lil4LiCCivguYDguKXguILguIHguLAKK+C5gOC4peC4guC4meC4sAor4LmA4Lil4LiC4Lii4LiwCivguYDguKXguILguLIKK+C5gOC4peC5h+C4hwor4LmA4Lil4LmJ4LiHCivguYDguKXguYjguIfguK7guLfguYnguK0KK+C5gOC4peC5gOC4i+C4reC4o+C5jAor4LmA4Lil4LiR4LiR4Li4CivguYDguKXguJMKK+C5gOC4peC4k+C4keC4uAor4LmA4Lil4LmH4LiUCivguYDguKXguJUKK+C5gOC4peC4mQor4LmA4Lil4LmH4LiZCivguYDguKXguYjguJkKK+C5gOC4peC4meC4iOC4hwor4LmA4Lil4LiZ4Liq4LmMCivguYDguKXguJnguKvguLDguKPguLUKK+C5gOC4peC5h+C4mgor4LmA4Lil4Lia4LiHCivguYDguKXguJvguIHguKMKK+C5gOC4peC4m+C4meC5jAor4LmA4Lil4LmA4LibCivguYDguKXguYDguJ4KK+C5gOC4peC5h+C4oQor4LmA4Lil4LmI4LihCivguYDguKXguKIKK+C5gOC4peC4pwor4LmA4Lil4Lin4LiHCivguYDguKXguKfguLnguYLguKXguKoKK+C5gOC4peC4qAor4LmA4Lil4Lip4LiP4Li4CivguYDguKXguKrguYDguJrguLXguKLguJkKK+C5gOC4peC4qwor4LmA4Lil4LmI4Lir4LmMCivguYDguKXguKvguKLguLAKK+C5gOC4peC4q+C4peC4seC4hwor4LmA4Lil4Lir4Lil4LiyCivguYDguKXguKvguLAKK+C5gOC4peC4rQor4LmA4Lil4LiwCivguYDguKXguLIKK+C5gOC4peC5iOC4sgor4LmA4Lil4LmJ4LiyCivguYDguKXguLLguIHguLHguKIKK+C5gOC4peC5iOC4suC5gOC4leC5iuC4hwor4LmA4Lil4LmJ4Liy4LmC4Lil4LihCivguYDguKXguLLguLAKK+C5gOC4peC4tOC4gQor4LmA4Lil4Li04LmJ4LiHCivguYDguKXguLTguJnguYDguKXguYjguK0KK+C5gOC4peC4tOC4qAor4LmA4Lil4Li14LiiCivguYDguKXguLXguKLguIcKK+C5gOC4peC4teC5iOC4ouC4hwor4LmA4Lil4Li14LmJ4Lii4LiHCivguYDguKXguLXguKLguIfguILguLLguKcKK+C5gOC4peC4teC4ouC4h+C4nOC4sgor4LmA4Lil4Li14Lii4LiH4Lid4LmJ4Liy4LiiCivguYDguKXguLXguKLguIfguKHguLHguJkKK+C5gOC4peC4teC4ouC4mQor4LmA4Lil4Li14LmI4Lii4LiZCivguYDguKXguLXguKLguJnguYTguJ8KK+C5gOC4peC4teC4ouC4mgor4LmA4Lil4Li14Lii4LihCivguYDguKXguLXguYjguKLguKEKK+C5gOC4peC4teC4ouC4pwor4LmA4Lil4Li14LmJ4Lii4LinCivguYDguKXguLfguK3guIEKK+C5gOC4peC4t+C4reC4hwor4LmA4Lil4Li34LmI4Lit4LiHCivguYDguKXguLfguK3guJQKK+C5gOC4peC4t+C4reC4mQor4LmA4Lil4Li34LmI4Lit4LiZCivguYDguKXguLfguYjguK3guKEKK+C5gOC4peC4t+C5iOC4reC4oeC5g+C4qgor4LmA4Lil4Li34LmI4Lit4LiiCivguYDguKXguLfguYnguK3guKIKK+C5gOC4peC4t+C5iOC4reC4ouC4peC5ieC4sgor4LmB4LilCivguYHguKXguYgKK+C5geC4peC5iQor4LmB4Lil4LiBCivguYHguKXguYfguIHguYLguJfguKoKK+C5geC4peC4hwor4LmB4Lil4LmI4LiHCivguYHguKXguYnguIcKK+C5geC4peC4mQor4LmB4Lil4LmI4LiZCivguYHguKXguJnguJfguLLguJnguLHguKEKK+C5geC4peC4mgor4LmB4Lil4LmJ4LinCivguYHguKXguLAKK+C5guC4peC5iAor4LmC4Lil4LmJCivguYLguKXguIEKK+C5guC4peC4geC4hOC4leC4tAor4LmC4Lil4LiB4LiI4Lix4LiB4Lip4Li4CivguYLguKXguIHguIrguJnguJnguLUKK+C5guC4peC4geC5gOC4iuC4qeC4kOC5jAor4LmC4Lil4LiB4LiY4Lij4Lij4LihCivguYLguKXguIHguJjguLLguJTguLIKK+C5guC4peC4geC4mOC4suC4leC4uAor4LmC4Lil4LiB4LiZ4Liy4LiWCivguYLguKXguIHguJrguJYKK+C5guC4peC4geC4muC4suC4pQor4LmC4Lil4LiB4Lia4Li04LiU4LijCivguYLguKXguIHguJvguKPguLDguJfguLXguJsKK+C5guC4peC4geC4oeC4suC4o+C4lOC4sgor4LmC4Lil4LiB4Lii4LmMCivguYLguKXguIHguKLguLLguJXguKPguLIKK+C5guC4peC4geC4p+C4seC4iuC4iuC4sAor4LmC4Lil4LiB4Lin4Li04LiX4Li5CivguYLguKXguIHguKjguLHguJ7guJfguYwKK+C5guC4peC4geC4quC4luC4tOC4leC4tAor4LmC4Lil4LiB4Lit4Li44LiU4LijCivguYLguKXguIHguLHguJXguJbguIjguKPguLTguKLguLIKK+C5guC4peC4geC4seC4meC4leC4o+C5jAor4LmC4Lil4LiB4LiyCivguYLguKXguIHguLTguKLguLAKK+C5guC4peC4geC4teC4ouC5jAor4LmC4Lil4LiB4Li14Lii4LiK4LiZCivguYLguKXguIHguLXguKLguKfguLHguJXguKMKK+C5guC4peC4geC4uOC4leC4owor4LmC4Lil4LiB4Li44LiV4Lij4LiY4Lij4Lij4LihCivguYLguKXguIHguLjguJXguKPguKDguLnguKHguLQKK+C5guC4peC5gOC4geC4qAor4LmC4Lil4LiHCivguYLguKXguYjguIcKK+C5guC4peC5ieC4hwor4LmC4Lil4LmJ4LiH4LmC4LiV4LmJ4LiHCivguYLguKXguIjguJnguLAKK+C5guC4peC4k+C4sAor4LmC4Lil4LiUCivguYLguKXguJTguJfguLDguJnguIcKK+C5guC4peC5iOC4leC4tOC5iuC4mQor4LmC4Lil4LmC4LiVCivguYLguKXguJcKK+C5guC4peC4mQor4LmC4Lil4LmJ4LiZCivguYLguKXguJvguLAKK+C5guC4peC4oAor4LmC4Lil4LihCivguYLguKXguKHguLAKK+C5guC4peC4oeC4sgor4LmC4Lil4LilCivguYLguKXguKXguLjguJsKK+C5guC4peC5gOC4pQor4LmC4Lil4LmJ4LmA4Lil4LmJCivguYLguKXguYLguKUKK+C5guC4peC5guC4peC5iQor4LmC4Lil4Lir4LiwCivguYLguKXguKvguLHguIoKK+C5guC4peC4q+C4tOC4lQor4LmC4Lil4LiwCivguYTguKXguYgKK+C5hOC4peC5iQor4LmE4Lil4LiiCivguYTguKXguKXguLIKK+C5hOC4peC5gOC4peC4ogor4LmE4Lil4LmE4Lil4LmJCivguKcKK+C4p+C4gQor4Lin4LiB4LiwCivguKfguIHguLjguKUKK+C4p+C4hwor4Lin4LiH4LiB4LmMCivguKfguIfguIHguJUKK+C4p+C4h+C4qOC5jAor4Lin4LiH4Lio4LiyCivguKfguIfguKnguYwKK+C4p+C4iOC4meC4sAor4Lin4LiI4LiwCivguKfguIjguLIKK+C4p+C4iOC4tQor4Lin4LiK4LiwCivguKfguIrguLTguKPguLAKK+C4p+C4j+C4sAor4Lin4LiP4Liy4LiB4Liy4LijCivguKfguI/guLjguKHguLAKK+C4p+C4k+C4sAor4Lin4LiT4Li04LiKCivguKfguJPguLTguIrguIrguLIKK+C4p+C4k+C4tOC4iuC4ouC5jAor4Lin4LiT4Li04LiK4Lii4LiyCivguKfguJPguLTguJ7guIEKK+C4p+C4lOC4o+C4meC4uQor4Lin4LiU4Li1CivguKfguJXguLAKK+C4p+C4l+C4meC4sAor4Lin4LiX4LiwCivguKfguJfguLHguI3guI3guLjguJXguLIKK+C4p+C4l+C4seC4jeC4jeC4uQor4Lin4LiY4Li44LiB4LiyCivguKfguJjguLkKK+C4p+C4mQor4Lin4LiZ4LiI4LijCivguKfguJnguLHguJvguJXguLQKK+C4p+C4meC4seC4qgor4Lin4LiZ4LiyCivguKfguJnguLLguJnguJXguYwKK+C4p+C4meC4tOC4lOC4sgor4Lin4LiZ4Li04Lie4LiBCivguKfguYDguJnguIjguKMKK+C4p+C5guC4meC4l+C4ouC4suC4mQor4Lin4Lib4LiZ4LiwCivguKfguJvguLgKK+C4p+C4ouC4seC4hOC4huC5jAor4Lin4Lii4Lix4LiN4LiK4LiZ4LiwCivguKfguKLguLHguKHguKvguLAKK+C4p+C4ouC4seC4quC4ouC5jAor4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguKfguKLguLLguIbguKPguYwKK+C4p+C4ouC4suC4mOC4tAor4Lin4Lii4Liy4LihCivguKfguKLguLLguKLguLLguKEKK+C4p+C4o+C4geC4seC4jeC4jeC4sgor4Lin4Lij4LiB4Liy4LiiCivguKfguKPguIfguITguYwKK+C4p+C4o+C4k+C4sAor4Lin4Lij4LiXCivguKfguKPguJfguLLguJkKK+C4p+C4o+C4meC4suC4o+C4tQor4Lin4Lij4Lib4Lix4LiB4Lip4LmMCivguKfguKPguJ7guJnguLTguJUKK+C4p+C4o+C4oeC4q+C4suC4p+C4tOC4q+C4suC4owor4Lin4Lij4Lii4Li04LiV4LiyCivguKfguKPguKPguIQKK+C4p+C4o+C4o+C4hOC4ouC5jAor4Lin4Lij4Lij4LiKCivguKfguKPguKPguIrguKLguYwKK+C4p+C4o+C4o+C4k+C4meC4sgor4Lin4Lij4Lij4LiT4Lie4Lik4LiV4Li0CivguKfguKPguKPguJPguLAKK+C4p+C4o+C4o+C4k+C4tuC4gQor4Lin4Lij4Lij4LiY4LiBCivguKfguKPguKPguJjguJnguLAKK+C4p+C4o+C4o+C4qQor4Lin4Lij4Lij4Lip4LiyCivguKfguKPguKPguLnguJsKK+C4p+C4o+C4p+C4o+C4o+C4k+C4tOC4meC4tQor4Lin4Lij4Lin4Li04Lir4Liy4LijCivguKfguKPguLHguI3guI3guLkKK+C4p+C4o+C4suC4geC4sAor4Lin4Lij4Liy4LiH4LiE4LiT4LiyCivguKfguKPguLLguKDguKPguJPguYwKK+C4p+C4o+C4suC4ouC4uOC4l+C4mAor4Lin4Lij4Liy4LmC4Lij4Lir4Liy4LijCivguKfguKPguLLguKvguYwKK+C4p+C4o+C4suC4q+C4owor4Lin4Lij4Liy4Lir4LiwCivguKfguKPguLjguJMKK+C4p+C4o+C4uOC4leC4lOC4oQor4Lin4Lij4Li44LiV4Lih4LiwCivguKfguKPguLnguJYKK+C4p+C5guC4o+C4lOC4oQor4Lin4LmC4Lij4LiV4Lih4LiwCivguKfguKTguIEKK+C4p+C4pOC4qeC4oAor4Lin4Lik4Lip4LilCivguKfguKXguLHguIoKK+C4p+C4peC4seC4jeC4iuC5jAor4Lin4Lil4Lix4LiT4LiK4LiZ4LmMCivguKfguKXguLHguKIKK+C4p+C4peC4suC4q+C4gQor4Lin4Lil4Li1CivguKfguKjguIQKK+C4p+C4qOC4sAor4Lin4Lio4Li04LiZCivguKfguKrguJnguLAKK+C4p+C4quC4oOC4sAor4Lin4Liq4Lil4LiwCivguKfguKrguKXguLUKK+C4p+C4quC4p+C4seC4lOC4lOC4tQor4Lin4Liq4Lin4Lix4LiV4LiV4Li1CivguKfguKrguLAKK+C4p+C4quC4seC4meC4leC5jAor4Lin4Liq4Lix4LiZ4LiV4LiU4Li04Lil4LiBCivguKfguKrguLIKK+C4p+C4quC4tQor4Lin4Liq4Li4CivguKfguKrguLjguJjguLIKK+C4p+C4quC4uOC4meC4mOC4o+C4sgor4Lin4Liq4Li44Lih4LiU4Li1CivguKfguKvguLAKK+C4p+C4q+C4sgor4Lin4LitCivguKfguK3guIEKK+C4p+C4reC4geC5geC4p+C4gQor4Lin4LmI4Lit4LiHCivguKfguYjguK3guIfguYTguKcKK+C4p+C4reC4lAor4Lin4Lit4LiZCivguKfguYjguK3guJkKK+C4p+C4reC4peC5gOC4peC4ouC5jOC4muC4reC4pQor4Lin4Lit4LmB4LinCivguKfguLAKK+C4p+C4seC4gQor4Lin4Lix4LiB4LiB4LiwCivguKfguLHguIQKK+C4p+C4seC4hOC4hOC4tOC4ogor4Lin4Lix4LiE4LiE4Li14Lii4LmMCivguKfguLHguITguITguLgKK+C4p+C4seC4hOC4i+C4teC4mQor4Lin4Lix4LiHCivguKfguLHguIfguIHguYwKK+C4p+C4seC4h+C4iuC4sgor4Lin4Lix4LiH4LmA4Lin4LiHCivguKfguLHguIfguKjguLAKK+C4p+C4seC4h+C4quC4sAor4Lin4Lix4LiI4LiI4LiwCivguKfguLHguIjguInguYwKK+C4p+C4seC4iOC4ieC4gQor4Lin4Lix4LiI4LiJ4Lil4LiwCivguKfguLHguIjguJnguYwKK+C4p+C4seC4igor4Lin4Lix4LiK4LiK4LiwCivguKfguLHguIrguIzguYwKK+C4p+C4seC4iuC4nuC4t+C4igor4Lin4Lix4LiK4Lij4LiwCivguKfguLHguI3guIjguIEKK+C4p+C4seC4jeC4iOC4meC4sAor4Lin4Lix4LiN4LiM4LmMCivguKfguLHguI/guIHguLAKK+C4p+C4seC4j+C4j+C4sAor4Lin4Lix4LiP4LiP4Li0CivguKfguLHguJLguIHguLAKK+C4p+C4seC4kuC4geC4tQor4Lin4Lix4LiS4LiZ4LiwCivguKfguLHguJLguJnguLIKK+C4p+C4seC4kwor4Lin4Lix4LiT4LiP4LmMCivguKfguLHguJPguJPguLAKK+C4p+C4seC4k+C4meC4sgor4Lin4Lix4LiUCivguKfguLHguJUKK+C4p+C4seC4leC4leC5jAor4Lin4Lix4LiV4LiV4LiyCivguKfguLHguJXguJbguYwKK+C4p+C4seC4leC4luC4uAor4Lin4Lix4LiV4LiZ4LiwCivguKfguLHguJXguKMKK+C4p+C4seC4leC4o+C4m+C4j+C4tOC4muC4seC4leC4tAor4Lin4Lix4LiV4Liq4LiU4LijCivguKfguLHguJXguKrguLAKK+C4p+C4seC4leC4tAor4Lin4Lix4LiX4LiZ4LmMCivguKfguLHguJkKK+C4p+C4seC4meC4leC5jAor4Lin4Lix4LiZ4LiX4LiZ4LiyCivguKfguLHguJnguJfguJnguLXguKLguYwKK+C4p+C4seC4meC4l+C4sgor4Lin4Lix4LiZ4LiX4Li0CivguKfguLHguJnguJnguLTguJ7guIEKK+C4p+C4seC4meC5gOC4p+C4ouC5jAor4Lin4Lix4LiaCivguKfguLHguJrguYbguKvguKfguLPguYYKK+C4p+C4seC4m+C4m+C4sAor4Lin4Lix4Lih4Lih4Li04LiBCivguKfguLHguKIKK+C4p+C4seC4peC4geC5jAor4Lin4Lix4Lil4LiE4Li4CivguKfguLHguKXguKLguYwKK+C4p+C4seC4peC4peC4oAor4Lin4Lix4Lil4Lil4Li1CivguKfguLHguKcKK+C4p+C4seC4quC4lOC4uAor4Lin4Lix4Liq4LiV4Lij4LmMCivguKfguLHguKrguJnguYwKK+C4p+C4seC4quC4meC4sAor4Lin4Lix4Liq4Liq4LiwCivguKfguLIKK+C4p+C5iOC4sgor4Lin4LmJ4LiyCivguKfguLLguIEKK+C4p+C5ieC4suC4geC5gOC4nuC5ieC4ogor4Lin4Liy4LiB4Lii4LiwCivguKfguLLguIHguKPguLIKK+C4p+C4suC4geC4sAor4Lin4Liy4LiHCivguKfguYjguLLguIcKK+C4p+C5ieC4suC4hwor4Lin4Liy4LiI4LiBCivguKfguLLguIjguLIKK+C4p+C4suC4iOC4suC5hOC4m+C4ouC4sAor4Lin4Liy4LiI4Liy4LilCivguKfguLLguIrguYDguJvguKLguLAKK+C4p+C4suC4j+C4geC4sAor4Lin4Liy4LiT4Li04LiKCivguKfguLLguJPguLTguIrguIHguLAKK+C4p+C4suC4k+C4tOC4iuC4ouC5jAor4Lin4Liy4LiT4Li1CivguKfguLLguJQKK+C4p+C4suC4leC4sAor4Lin4Liy4LiXCivguKfguLLguJfguIEKK+C4p+C4suC4l+C4mQor4Lin4Liy4LiX4Lii4LmMCivguKfguLLguJfguLTguJUKK+C4p+C4suC4l+C4tOC4mQor4Lin4Liy4LiX4Li1CivguKfguLLguJkKK+C4p+C5iOC4suC4mQor4Lin4LmI4Liy4LiZ4LmA4LiE4Lij4Li34LitCivguKfguLLguJnguKMKK+C4p+C4suC5gOC4meC5gOC4lOC4teC4ouC4oQor4Lin4Liy4LiaCivguKfguLLguJvguLAKK+C4p+C4suC4m+C4tOC4leC4sAor4Lin4Liy4Lib4Li1CivguKfguLLguKEKK+C4p+C4suC4oeC4sAor4Lin4Liy4LmC4Lih4LijCivguKfguLLguKIKK+C4p+C5iOC4suC4ogor4Lin4LmJ4Liy4LiiCivguKfguLLguKLguKrguLAKK+C4p+C4suC4ouC4sAor4Lin4Liy4Lii4Lix4LiHCivguKfguLLguKLguLLguKHguLAKK+C4p+C4suC4ouC4uAor4Lin4Liy4Lii4Li44LiB4Li54LilCivguKfguLLguKLguLjguJrguLjguJXguKPguKLguLLguJXguKPguLIKK+C4p+C4suC5guC4ogor4Lin4Liy4LijCivguKfguLLguKPguKfguLLguKPguLQKK+C4p+C4suC4o+C4sAor4Lin4Liy4Lij4Li0CivguKfguLLguKPguLUKK+C4p+C4suC4o+C4uOC4kwor4Lin4Liy4Lij4Li44LiT4Li1CivguKfguLLguKUKK+C4p+C4suC4peC5jOC4pwor4Lin4Liy4Lil4Li04LiB4LiyCivguKfguLLguKXguLjguIHguLIKK+C4p+C4suC4pwor4Lin4LmI4Liy4LinCivguKfguYnguLLguKfguYjguK3guJkKK+C4p+C5ieC4suC4p+C4uOC5iOC4mQor4Lin4Liy4Liq4LiZ4LiwCivguKfguLLguKrguJnguLIKK+C4p+C4suC4quC4ngor4Lin4Liy4Liq4LiwCivguKfguLLguKrguLTguJkKK+C4p+C4suC4quC4tQor4Lin4Liy4Liq4Li44LiB4Lij4Li1CivguKfguLLguKrguLjguIHguLUKK+C4p+C4suC4quC4uOC5gOC4l+C4ngor4Lin4Liy4Lir4LiZ4LiwCivguKfguLLguKvguLAKK+C4p+C4suC4q+C4tOC4meC4tQor4Lin4Liy4LisCivguKfguLQKK+C4p+C4tOC4gQor4Lin4Li04LiB4LiC4Lix4Lih4Lig4LmMCivguKfguLTguIHguILguLHguKHguKDguJnguLAKK+C4p+C4tOC4geC5gOC4guC4mwor4Lin4Li04LiB4LiI4LiwCivguKfguLTguIHguKPguKEKK+C4p+C4tOC4geC4o+C4seC4ogor4Lin4Li04LiB4Lij4Liy4LiZ4LiV4LmMCivguKfguLTguIHguKTguJUKK+C4p+C4tOC4geC4pOC4leC4tAor4Lin4Li04LiB4LilCivguKfguLTguIHguKXguIjguKPguLTguJUKK+C4p+C4tOC4geC4quC4tOC4lQor4Lin4Li04LiB4Lix4LiVCivguKfguLTguIHguLHguJXguLQKK+C4p+C4tOC4geC4seC4mwor4Lin4Li04LiB4Lix4LiiCivguKfguLTguIHguLLguKMKK+C4p+C4tOC4geC4suC4pQor4Lin4Li04LiE4LiV4Lib4Lix4LiI4LiI4Lix4LiiCivguKfguLTguITguKvguLAKK+C4p+C4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lin4Li04LiG4LiZ4LiwCivguKfguLTguIbguYDguJnguKgKK+C4p+C4tOC4huC5gOC4meC4qOC4p+C4owor4Lin4Li04LiG4Liy4LiVCivguKfguLTguIbguLLguKoKK+C4p+C4tOC4hwor4Lin4Li04LmI4LiHCivguKfguLTguIfguKfguK3guJkKK+C4p+C4tOC4iOC4ieC4tOC4geC4sAor4Lin4Li04LiI4Lii4Li44LiVCivguKfguLTguIjguKPguJPguLAKK+C4p+C4tOC4iOC4pQor4Lin4Li04LiI4Lix4LiB4LiC4LiT4LmMCivguKfguLTguIjguLHguIHguKnguJPguYwKK+C4p+C4tOC4iOC4seC4ogor4Lin4Li04LiI4Liy4LijCivguKfguLTguIjguLLguKPguJPguYwKK+C4p+C4tOC4iOC4tAor4Lin4Li04LiI4Li04LiB4Li04LiI4LiJ4LiyCivguKfguLTguIjguLTguJUKK+C4p+C4tOC4iOC4tOC4leC4owor4Lin4Li04LiI4Li04LiZCivguKfguLTguIjguLjguJMKK+C4p+C4tOC4iOC4uOC4o+C4kwor4Lin4Li04LiK4LiK4LiyCivguKfguLTguIrguIrguLgKK+C4p+C4tOC4iuC4iuC4uOC4lOC4sgor4Lin4Li04LiK4LiK4Li44LiV4LiyCivguKfguLTguIrguIrguLjguKXguJTguLIKK+C4p+C4tOC4iuC4jeC4sAor4Lin4Li04LiK4LiZCivguKfguLTguIrguJnguLUKK+C4p+C4tOC4iuC4seC4ogor4Lin4Li04LiK4LiyCivguKfguLTguIrguLLguJnguJnguLAKK+C4p+C4tOC4iuC4tOC4lQor4Lin4Li04LmA4LiK4Li14Lii4LijCivguKfguLTguI3guI3guLHguJXguJXguLQKK+C4p+C4tOC4jeC4jeC4suC4kwor4Lin4Li04LiN4LiN4Liy4LiT4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguKfguLTguI3guI3guLkKK+C4p+C4tOC4keC4ueC4o+C4ouC5jAor4Lin4Li04LiT4Lir4Li4CivguKfguLTguJQKK+C4p+C4tOC4lOC4teC4quC4lOC4tQor4Lin4Li04LiV4LiBCivguKfguLTguJXguJbguLLguKMKK+C4p+C4tOC4leC4suC4oeC4tOC4mQor4Lin4Li04LiW4Li1CivguKfguLTguJfguJjguLAKK+C4p+C4tOC4l+C4mOC4seC4h+C4quC4sAor4Lin4Li04LiX4Lii4LiyCivguKfguLTguJfguKLguLgKK+C4p+C4tOC4l+C4ouC4uOC4lQor4Lin4Li04LiX4Lij4Li44Lih4LiwCivguKfguLTguJfguKfguLHguKoKK+C4p+C4tOC4l+C4seC4leC4luC4tAor4Lin4Li04LiX4Liy4Lij4LiT4LmMCivguKfguLTguJfguLLguKXguJnguYwKK+C4p+C4tOC4l+C4tOC4lQor4Lin4Li04LiX4Li5CivguKfguLTguJfguLnguKMKK+C4p+C4tOC5gOC4l+C4p+C4qQor4Lin4Li04LmA4LiX4LioCivguKfguLTguJgKK+C4p+C4tOC4mOC4p+C4sgor4Lin4Li04LiY4LiyCivguKfguLTguJjguLLguJkKK+C4p+C4tOC4mOC4tQor4Lin4Li04LiY4Li44Lij4LiwCivguKfguLTguJjguLkKK+C4p+C4tOC4mOC4ueC4m+C4meC4sAor4Lin4Li04LiZCivguKfguLTguYjguJkKK+C4p+C4tOC4meC4l+C5jAor4Lin4Li04LiZ4Lix4LiZ4LiV4Li5CivguKfguLTguJnguLHguKIKK+C4p+C4tOC4meC4suC4l+C4tQor4Lin4Li04LiZ4Liy4Lii4LiBCivguKfguLTguJnguLLguKgKK+C4p+C4tOC4meC4tOC4iAor4Lin4Li04LiZ4Li04LiI4LiJ4Lix4LiiCivguKfguLTguJnguLTguJUKK+C4p+C4tOC4meC4tOC4muC4suC4lQor4Lin4Li04LiZ4Li04Lib4Liy4LiV4Li04LiBCivguKfguLTguJnguLXguJUKK+C4p+C4tOC5gOC4meC4lQor4Lin4Li04LmC4LiZ4LiX4LiBCivguKfguLTguJrguLHguJXguLQKK+C4p+C4tOC4muC4suC4gQor4Lin4Li04Lia4Li44LilCivguKfguLTguJrguLnguKUKK+C4p+C4tOC4m+C4geC4suC4owor4Lin4Li04Lib4LiP4Li04Liq4Liy4LijCivguKfguLTguJvguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4geC4suC4owor4Lin4Li04Lib4Lij4Liw4LiV4Li04Liq4Liy4LijCivguKfguLTguJvguKPguLDguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4peC4suC4mwor4Lin4Li04Lib4Lij4Liw4Lin4Liy4LiqCivguKfguLTguJvguKPguLTguJPguLLguKHguJfguLjguIHguILguYwKK+C4p+C4tOC4m+C4o+C4tOC4lQor4Lin4Li04Lib4Lil4Liy4LibCivguKfguLTguJvguKXguLLguKoKK+C4p+C4tOC4m+C4p+C4suC4qgor4Lin4Li04Lib4Lix4LiB4Lip4LmMCivguKfguLTguJvguLHguKrguKrguIEKK+C4p+C4tOC4m+C4seC4quC4quC4meC4sgor4Lin4Li04Lib4Liy4LiB4LiC4Lix4LiZ4LiY4LmMCivguKfguLTguJ7guLLguIHguKnguYwKK+C4p+C4tOC4nuC4suC4geC4qeC5jOC4p+C4tOC4iOC4suC4o+C4k+C5jAor4Lin4Li04Lie4Li04LiY4LiX4Lix4Lio4LiZ4LiyCivguKfguLTguJ7guLjguJgKK+C4p+C4tOC4oOC4seC4h+C4hOC5jAor4Lin4Li04Lig4Lix4LiKCivguKfguLTguKDguLHguJXguJXguLQKK+C4p+C4tOC4oOC4sgor4Lin4Li04Lig4Liy4LiECivguKfguLTguKDguLLguIoKK+C4p+C4tOC4oOC4suC4lOC4sgor4Lin4Li04Lig4Liy4Lin4Li1CivguKfguLTguKDguLLguKkKK+C4p+C4tOC4oOC4suC4qgor4Lin4Li04Lig4Li5CivguKfguLTguKDguLnguKnguJPguLAKK+C4p+C4tOC4oOC4ueC4qeC4sgor4Lin4Li04Lig4Li54Lip4Li04LiVCivguKfguLTguYDguKDguJXguIHguYwKK+C4p+C4tOC5gOC4oOC4l+C4geC5jAor4Lin4Li04Lih4LiZCivguKfguLTguKHguKUKK+C4p+C4tOC4oeC4peC4seC4gQor4Lin4Li04Lih4Lil4Liy4LiBCivguKfguLTguKHguLHguIfguKrguLIKK+C4p+C4tOC4oeC4seC4leC4tAor4Lin4Li04Lih4Liy4LiZCivguKfguLTguKHguLLguJnguLTguIHguYDguJvguKPguJUKK+C4p+C4tOC4oeC4uOC4ggor4Lin4Li04Lih4Li44LiVCivguKfguLTguKHguLjguJXguJXguLQKK+C4p+C4tOC5gOC4oeC4peC4t+C4reC4hwor4Lin4Li04LmC4Lih4LiB4LiC4LmMCivguKfguLTguYLguKHguIHguKnguKfguLTguJbguLUKK+C4p+C4tOC5gOC4ouC4mQor4Lin4Li04LmC4Lii4LiECivguKfguLTguKPguIfguKPguK3guIcKK+C4p+C4tOC4o+C4leC4sAor4Lin4Li04Lij4Lih4LiT4LiwCivguKfguLTguKPguKfguLAKK+C4p+C4tOC4o+C4sAor4Lin4Li04Lij4Lix4LiH4Lij4Lit4LiHCivguKfguLTguKPguLHguIoKK+C4p+C4tOC4o+C4seC4lQor4Lin4Li04Lij4Lix4LiV4Li0CivguKfguLTguKPguLLguITguLAKK+C4p+C4tOC4o+C4suC4oQor4Lin4Li04Lij4Liy4Lin4LiwCivguKfguLTguKPguLjguJgKK+C4p+C4tOC4o+C4uOC4rOC4q+C5jAor4Lin4Li04Lij4Li44Lis4Lir4LiBCivguKfguLTguKPguLnguJsKK+C4p+C4tOC4o+C4ueC4m+C4seC4geC4qeC5jAor4Lin4Li04LmA4Lij4LiBCivguKfguLTguYDguKPguJnguJfguKPguYwKK+C4p+C4tOC5guC4o+C4hAor4Lin4Li04LmC4Lij4LiICivguKfguLTguYLguKPguIjguJnguYwKK+C4p+C4tOC5guC4o+C4kgor4Lin4Li04LmC4Lij4LiYCivguKfguLTguYLguKPguJjguJnguYwKK+C4p+C4tOC4peC4seC4meC4lOC4sgor4Lin4Li04Lil4Lix4LiiCivguKfguLTguKXguLLguJQKK+C4p+C4tOC4peC4suC4mwor4Lin4Li04Lil4Liy4Lin4Lix4LiT4Lii4LmMCivguKfguLTguKXguLLguKgKK+C4p+C4tOC4peC4suC4qgor4Lin4Li04Lil4Liy4Liq4Li04LiZ4Li1CivguKfguLTguKXguLTguJvguJTguLIKK+C4p+C4tOC4peC4tOC4qOC4oeC4suC4q+C4o+C4sgor4Lin4Li04LmA4Lil4LibCivguKfguLTguYDguKXguJvguJnguLAKK+C4p+C4tOC5guC4peC4gQor4Lin4Li04LmC4Lil4LiB4LiZ4LiwCivguKfguLTguYLguKXguIjguJnguLAKK+C4p+C4tOC5guC4peC4oQor4Lin4Li04LmE4LilCivguKfguLTguKcKK+C4p+C4tOC4p+C4o+C4k+C5jAor4Lin4Li04Lin4Lij4Lij4LiY4LiZ4LmMCivguKfguLTguKfguKPguLAKK+C4p+C4tOC4p+C4seC4jwor4Lin4Li04Lin4Lix4LiS4LiZ4LmMCivguKfguLTguKfguLHguJkKK+C4p+C4tOC4p+C4suC4lwor4Lin4Li04Lin4Liy4Lir4LmMCivguKfguLTguKfguLLguKvguLAKK+C4p+C4tOC4p+C4tOC4iAor4Lin4Li04Lin4Li04LiVCivguKfguLTguKfguLTguJgKK+C4p+C4tOC5gOC4p+C4gQor4Lin4Li04Lio4Lij4Li44LiVCivguKfguLTguKjguLHguJcKK+C4p+C4tOC4qOC4seC4peC4ouC5jAor4Lin4Li04Lio4Liy4LiC4LiwCivguKfguLTguKjguLLguILguLIKK+C4p+C4tOC4qOC4suC4h+C4hOC5jAor4Lin4Li04Lio4Liy4LilCivguKfguLTguKjguLTguKnguI/guYwKK+C4p+C4tOC4qOC4uOC4l+C4mOC5jAor4Lin4Li04Lio4Li44LiX4LiY4Li04LmMCivguKfguLTguYDguKjguKkKK+C4p+C4tOC5gOC4qOC4qeC4k+C5jAor4Lin4Li04Lip4LiT4Li4CivguKfguLTguKnguJPguLjguIHguKPguKPguKEKK+C4p+C4tOC4qeC4mOC4owor4Lin4Li04Lip4Lix4LiB4LiV4LmMCivguKfguLTguKnguLHguKIKK+C4p+C4tOC4qeC4suC4kwor4Lin4Li04Lip4Li44Lin4Lix4LiVCivguKfguLTguKrguIHguLXguYkKK+C4p+C4tOC4quC4o+C4o+C4iuC4meC4teC4ouC5jAor4Lin4Li04Liq4Lik4LiVCivguKfguLTguKrguKrguLjguIHguKPguKPguKEKK+C4p+C4tOC4quC4seC4h+C5guC4ouC4hAor4Lin4Li04Liq4Lix4LiK4LiZ4LiyCivguKfguLTguKrguLHguI3guI3guLUKK+C4p+C4tOC4quC4seC4ogor4Lin4Li04Liq4Liy4LiC4LiwCivguKfguLTguKrguLLguILguLIKK+C4p+C4tOC4quC4suC4oeC4seC4jQor4Lin4Li04Liq4Liy4LijCivguKfguLTguKrguLLguKPguJcKK+C4p+C4tOC4quC4suC4pQor4Lin4Li04Liq4Liy4Liq4LiwCivguKfguLTguKrguLLguKvguIHguLTguIgKK+C4p+C4tOC4quC4tOC4kAor4Lin4Li04Liq4Li44LiH4LiE4Liy4Lih4Liq4Li14Lih4LiyCivguKfguLTguKrguLjguJfguJjguYwKK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4Lin4Li04Liq4Li54LiV4LijCivguKfguLTguYDguKrguJcKK+C4p+C4tOC5gOC4quC4quC4meC4sAor4Lin4Li04Lir4LiECivguKfguLTguKvguIfguITguYwKK+C4p+C4tOC4q+C4peC4seC5iOC4mQor4Lin4Li04Lir4Lix4Lib4Lib4LiV4Li0CivguKfguLTguKvguLLguKLguKrguLAKK+C4p+C4tOC4q+C4suC4owor4Lin4Li04Lir4Li0CivguKfguLTguKvguLTguIfguKrguLAKK+C4p+C4tOC4q+C4tOC4h+C4quC4sgor4Lin4Li04LmA4Lir4Liq4Lig4Liy4LiE4Li1CivguKfguLTguYDguKvguKrguLIKK+C4p+C4tOC4rOC4seC4h+C4hOC5jAor4Lin4Li04Lis4Liy4LijCivguKfguLUKK+C4p+C4teC4iOC4tAor4Lin4Li14LiK4LiZ4Li1CivguKfguLXguIvguYjguLIKK+C4p+C4teC4k+C4sgor4Lin4Li14LmJ4LiUCivguKfguLXguYjguKfguLHguJkKK+C4p+C4teC5iOC5geC4p+C4pwor4Lin4Li14Liq4LiwCivguKfguLjguYnguIcKK+C4p+C4uOC4kOC4tAor4Lin4Li44LiSCivguKfguLjguJLguLQKK+C4p+C4uOC4lAor4Lin4Li44LmI4LiZCivguKfguLjguYnguJkKK+C4p+C4uOC4mgor4Lin4Li44LmJ4LiiCivguKfguLjguKXguYHguJ/guKPguKEKK+C4p+C4ueC5iQor4Lin4Li54LiU4Lin4Liy4LiUCivguKfguLnguJoKK+C4p+C4ueC5iOC4p+C4suC4oQor4LmA4Lin4LmJCivguYDguKfguIQKK+C5gOC4p+C4hOC4tOC4mQor4LmA4Lin4LiE4Li1CivguYDguKfguIgKK+C5gOC4p+C4igor4LmA4Lin4LiK4Lii4Lix4LiZ4LiV4LmMCivguYDguKfguYTguIrguKLguKLguLHguJnguJXguYzguKPguLLguIrguKPguJYKK+C5gOC4p+C4kOC4meC5jAor4LmA4Lin4LiT4LiwCivguYDguKfguJPguLQKK+C5gOC4p+C4k+C4tOC4gQor4LmA4Lin4LiT4Li4CivguYDguKfguJXguJnguYwKK+C5gOC4p+C4leC4owor4LmA4Lin4LiV4Liy4LilCivguYDguKfguJcKK+C5gOC4p+C4l+C4meC4sgor4LmA4Lin4LiX4Lii4LmMCivguYDguKfguJfguLLguIfguITguYwKK+C5gOC4p+C4l+C4suC4h+C4hOC4qOC4suC4quC4leC4o+C5jAor4LmA4Lin4LiX4Liy4LiZ4LiV4LmMCivguYDguKfguJfguLLguJnguJXguLAKK+C5gOC4p+C4l+C4tAor4LmA4Lin4LiX4Li1CivguYDguKfguJjguLAKK+C5gOC4p+C4mOC4tQor4LmA4Lin4LiZCivguYDguKfguYnguJkKK+C5gOC4p+C4meC5hOC4leC4ogor4LmA4Lin4LmE4LiZ4LiiCivguYDguKfguKHguLAKK+C5gOC4p+C4oeC4seC4lQor4LmA4Lin4Lih4Liy4LiV4Li04LiBCivguYDguKfguYnguKIKK+C5gOC4p+C4owor4LmA4Lin4Lij4Lih4LiT4Li1CivguYDguKfguKPguLUKK+C5gOC4p+C5guC4o+C4iOC4meC5jAor4LmA4Lin4Lil4LiyCivguYDguKfguYDguKXguJnguIvguLUKK+C5gOC4p+C4p+C4seC4kwor4LmA4Lin4Lin4Lix4LiT4LiT4Li04Lii4LiwCivguYDguKfguKjguKHguYwKK+C5gOC4p+C4qOC4ouC5jAor4LmA4Lin4Lio4Lii4LiyCivguYDguKfguKrguJnguYwKK+C5gOC4p+C4quC4oOC4uQor4LmA4Lin4Liq4Lih4LmMCivguYDguKfguKrguKHguLAKK+C5gOC4p+C4quC4p+C4seC4kwor4LmA4Lin4Liq4Liq4LiwCivguYDguKfguKrguKrguLHguJnguJTguKMKK+C5gOC4p+C4quC4quC4uOC4geC4o+C4o+C4oQor4LmA4Lin4Liq4Liq4Li44Lin4Lix4LiTCivguYDguKfguKrguLLguKPguLHguIoKK+C5gOC4p+C4quC4tAor4LmA4Lin4Liq4Li04Lii4LiyCivguYDguKfguKvguJkKK+C5gOC4p+C4q+C4sAor4LmA4Lin4Lir4Lix4LiH4LiE4LmMCivguYDguKfguKvguLHguJvguJXguLQKK+C5gOC4p+C4q+C4sgor4LmA4Lin4Lir4Liy4Lii4LiqCivguYDguKfguKzguLgKK+C5gOC4p+C4rOC4uOC4o+C4tOC4ogor4LmA4Lin4LmI4LitCivguYDguKfguYnguLIKK+C5gOC4p+C4tOC4gQor4LmA4Lin4Li04LmJ4LiHCivguYDguKfguLXguYjguKIKK+C5gOC4p+C4teC4ouC4hwor4LmA4Lin4Li14Lii4LiZCivguYDguKfguLXguKLguKMKK+C5gOC4p+C4teC5iOC4ouC4pwor4LmB4Lin4LmJCivguYHguKfguIcKK+C5geC4p+C5ieC4hwor4LmB4Lin4LiUCivguYHguKfguJXguKMKK+C5geC4p+C4mQor4LmB4Lin4LmI4LiZCivguYHguKfguJnguJTguLIKK+C5geC4p+C4mgor4LmB4Lin4LihCivguYHguKfguKcKK+C5geC4p+C5iOC4pwor4LmB4Lin4Lin4Lin4Li04LmA4LiK4Li14Lii4LijCivguYHguKfguLAKK+C5guC4pwor4LmC4Lin4LmICivguYLguKfguIHguLLguKMKK+C5guC4p+C5iOC4hwor4LmC4Lin4LiVCivguYLguKfguJfguLLguJkKK+C5guC4p+C4ogor4LmC4Lin4LmJ4LiiCivguYLguKfguKLguKfguLLguKIKK+C5guC4p+C5ieC5gOC4p+C5iQor4LmC4Lin4Liq4Liy4LiZCivguYLguKfguKvguLLguKMKK+C5hOC4pwor4LmE4Lin4LmJCivguYTguKfguIHguLnguJPguJDguYwKK+C5hOC4p+C4keC4ueC4o+C4ouC5jAor4LmE4Lin4LiX4Lii4LmMCivguYTguKfguJ7guIjguJnguYwKK+C5hOC4p+C4ouC4suC4geC4o+C4k+C5jAor4LmE4Lin4Lii4Liy4Lin4Lix4LiI4LiB4LijCivguYTguKfguKLguLLguKfguLHguIjguKHguLHguKIKK+C5hOC4p+C4o+C4seC4qgor4LmE4Lin4Lin4Lij4Lij4LiTCivguYTguKfguKnguJPguJ4KK+C5hOC4p+C5guC4reC4peC4tOC4mQor4LioCivguKjguIEKK+C4qOC4geC4jwor4Lio4LiB4LilCivguKjguIHguLjguJkKK+C4qOC4geC4uOC4meC4tAor4Lio4LiB4Li44LiZ4Li1CivguKjguIfguIHguLIKK+C4qOC4iOC4tOC4muC4lOC4tQor4Lio4LiI4Li1CivguKjguJAKK+C4qOC4lOC4gQor4Lio4LiVCivguKjguJXguIEKK+C4qOC4meC4tAor4Lio4LmE4LiZ4Liq4LmMCivguKjguJ4KK+C4qOC4nuC4pQor4Lio4LihCivguKjguKHguJkKK+C4qOC4oeC4meC4tQor4Lio4Lih4LiZ4Li14Lii4LmMCivguKjguKHguKjguLLguJkKK+C4qOC4ogor4Lio4Lii4LiZ4LiwCivguKjguKLguJnguLXguKLguYwKK+C4qOC4ouC4suC4oQor4Lio4Lii4Liy4Lih4LiB4Lix4LiT4LiQ4LmMCivguKjguKLguLLguKHguKUKK+C4qOC4owor4Lio4Lij4LiT4Li0CivguKjguKPguJnguLLguKPguLLguKLguJPguYwKK+C4qOC4o+C4oAor4Lio4Lij4Lih4LiT4LiwCivguKjguKPguKPguIHguKMKK+C4qOC4o+C4o+C4geC4o+C4sgor4Lio4Lij4Lij4Lie4Lij4Li1CivguKjguKPguKfguJPguLAKK+C4qOC4o+C4p+C4k+C4teC4ouC5jAor4Lio4Lij4Lin4Li04Lip4LiQ4LiyCivguKjguKPguLHguJYKK+C4qOC4o+C4seC4luC4meC4sAor4Lio4Lij4Lix4LiXCivguKjguKPguLHguJfguJjguLIKK+C4qOC4o+C4seC4meC4luC5jAor4Lio4Lij4Lix4LiZ4Lii4LmMCivguKjguKPguLHguJnguKLguLkKK+C4qOC4o+C4seC4ogor4Lio4Lij4Liy4LiX4LiY4LmMCivguKjguKPguLLguJnguJXguYwKK+C4qOC4o+C4suC4ngor4Lio4Lij4Liy4Lie4LiBCivguKjguKPguLLguKLguLAKK+C4qOC4o+C4suC4p+C4gQor4Lio4Lij4Liy4Lin4LiT4LiwCivguKjguKPguLLguKfguKPguJPguYwKK+C4qOC4o+C4suC4p+C4uOC4mAor4Lio4Lij4Liy4Liq4LiZ4LmMCivguKjguKPguLUKK+C4qOC4o+C4teC4leC4o+C4seC4hwor4Lio4Lij4Li14Lip4LiwCivguKjguKPguLXguKrguLHguIfguITguLXguJUKK+C4qOC4o+C4uOC4lQor4Lio4Lij4Li44LiV4Li0CivguKjguKTguIHguLLguKUKK+C4qOC4pOC4hOC4suC4pQor4Lio4Lik4LiH4LiE4LmMCivguKjguKTguIfguITguLLguKMKK+C4qOC4pOC4h+C4hOC4suC4o+C4tOC4mQor4Lio4Lik4LiH4LiE4Liy4Lij4Li1CivguKjguKXguKAKK+C4qOC4peC4seC4lgor4Lio4Lil4Li04Lip4LiP4LmMCivguKjguKXguLTguKnguLIKK+C4qOC4pwor4Lio4Lin4Lio4Li44LijCivguKjguKfguLHguKjguJkKK+C4qOC4p+C4seC4qgor4Lio4Lin4LiyCivguKjguKfguLLguJkKK+C4qOC4p+C4suC4qgor4Lio4Lin4Li04LiVCivguKjguKfguLTguJXguKMKK+C4qOC4qOC4sAor4Lio4Lio4Li0CivguKjguKjguLTguJkKK+C4qOC4qOC4tQor4Lio4Liq4LiyCivguKjguK0KK+C4qOC4reC4gQor4Lio4Lix4LiB4LiU4LiyCivguKjguLHguIHguJTguLQKK+C4qOC4seC4geC4lOC4tOC5jAor4Lio4Lix4LiB4LiV4Li0CivguKjguLHguIHguKLguYwKK+C4qOC4seC4geC4ouC4sAor4Lio4Lix4LiB4Lij4Liy4LiKCivguKjguLHguIfguIHguKMKK+C4qOC4seC4h+C4geC4sgor4Lio4Lix4LiH4LiB4Li4CivguKjguLHguJXguKPguLgKK+C4qOC4seC4leC4o+C4uQor4Lio4Lix4LiX4LiY4LiZ4LiwCivguKjguLHguJnguKrguJnguLAKK+C4qOC4seC4meC4quC4meC4teC4ouC5jAor4Lio4Lix4Lie4LiX4LmMCivguKjguLHguKHguKLguLgKK+C4qOC4seC4ouC4ouC4sgor4Lio4Lix4LilCivguKjguLHguKXguIEKK+C4qOC4seC4peC4geC4tQor4Lio4Lix4Liq4LiU4LijCivguKjguLHguKrguJXguKPguLIKK+C4qOC4seC4quC4leC4o+C4tQor4Lio4Lix4Liq4LiiCivguKjguLLguIEKK+C4qOC4suC4geC4leC4sAor4Lio4Liy4LiB4Lii4LiwCivguKjguLLguIHguKfguKMKK+C4qOC4suC4geC4suC4h+C4hOC5jAor4Lio4Liy4LiB4Li04LiZ4Li1CivguKjguLLguI7guIEKK+C4qOC4suC4kOC4ouC4sAor4Lio4Liy4LiTCivguKjguLLguJUKK+C4qOC4suC4mQor4Lio4Liy4LiZ4LiV4LmMCivguKjguLLguJnguJXguLQKK+C4qOC4suC4meC4tOC4lQor4Lio4Liy4LibCivguKjguLLguJ7guJfguYwKK+C4qOC4suC4nuC4owor4Lio4Liy4Lih4LiwCivguKjguLLguKHguLIKK+C4qOC4suC4oeC4teC4pQor4Lio4Liy4Lij4LiXCivguKjguLLguKPguJfguLnguKUKK+C4qOC4suC4o+C4tOC4geC4sgor4Lio4Liy4LilCivguKjguLLguKXguLIKK+C4qOC4suC4peC4tAor4Lio4Liy4Lio4Lin4Lix4LiVCivguKjguLLguKrguIEKK+C4qOC4suC4quC4lOC4sgor4Lio4Liy4Liq4LiV4Lij4LmMCivguKjguLLguKrguJXguKPguLIKK+C4qOC4suC4quC4meC5jAor4Lio4Liy4Liq4LiZ4LiyCivguKjguLLguKrguJnguLXguKLguYwKK+C4qOC4suC4quC5guC4meC4p+C4suC4lwor4Lio4Li04LiB4Lip4LiBCivguKjguLTguIHguLLguKMKK+C4qOC4tOC4guC4owor4Lio4Li04LiC4Lij4Li04LiZCivguKjguLTguILguKPguLUKK+C4qOC4tOC4guC4seC4k+C4keC5jAor4Lio4Li04LiC4LiyCivguKjguLTguITguLLguKUKK+C4qOC4tOC4h+C4guC4owor4Lio4Li04LiH4LiC4Lij4Li04LiZCivguKjguLTguJUKK+C4qOC4tOC4luC4tQor4Lio4Li04Lie4Li04Lij4LiwCivguKjguLTguKPguLAKK+C4qOC4tOC4o+C4sgor4Lio4Li04Lij4Liy4Lih4Lie4Li44LiKCivguKjguLTguYLguKPguKPguLLguJoKK+C4qOC4tOC4peC4m+C5jAor4Lio4Li04Lil4Lib4LiwCivguKjguLTguKXguLIKK+C4qOC4tOC4p+C4sAor4Lio4Li04Lin4Li04LiB4LiyCivguKjguLTguKjguLXguKPguLAKK+C4qOC4tOC4qOC4uAor4Lio4Li04Lip4LiO4Li0CivguKjguLTguKnguI/guYwKK+C4qOC4tOC4qeC4ouC5jAor4Lio4Li14LiB4LijCivguKjguLXguILguKMKK+C4qOC4teC4leC4pQor4Lio4Li14LilCivguKjguLbguIEKK+C4qOC4tuC4geC4qeC4sgor4Lio4Li44LiB4Lij4LmMCivguKjguLjguIHguKXguLHguKEKK+C4qOC4uOC4geC4sAor4Lio4Li44LiI4Li0CivguKjguLjguJPguJHguLIKK+C4qOC4uOC4k+C4keC4tQor4Lio4Li44LiX4LiYCivguKjguLjguJfguJjguLQKK+C4qOC4uOC4mQor4Lio4Li44LiZ4Lix4LiBCivguKjguLjguJnguLQKK+C4qOC4uOC4peC4tQor4Lio4Li44Lip4Li04LijCivguKjguLjguKnguLTguKUKK+C4qOC4ueC4geC4owor4Lio4Li54LiX4LijCivguKjguLnguJnguKLguYwKK+C4qOC4ueC4pQor4Lio4Li54Lil4Li04LiZCivguYDguKjguKPguJPguLUKK+C5gOC4qOC4o+C4qeC4kOC5jAor4LmA4Lio4Lij4Lip4LiQ4Li1CivguYDguKjguKPguYnguLIKK+C5gOC4qOC4peC4qQor4LmA4Lio4Lin4LiU4LiH4LiE4LmMCivguYDguKjguKfguJTguLXguKAKK+C5gOC4qOC4p+C4lQor4LmA4Lio4Lin4LiV4LijCivguYDguKjguKfguLLguKUKK+C5gOC4qOC4qQor4LmA4Lio4Liy4LmE4LiI4LiiCivguYDguKjguLLguKPguYwKK+C5gOC4qOC4suC4o+C4ouC4sAor4LmA4Lio4Li04LiBCivguYDguKjguLXguKLguKMKK+C5guC4qOC4gQor4LmC4Lio4LiB4LiyCivguYLguKjguIHguLUKK+C5guC4qOC4iOC4meC4sAor4LmC4Lio4LiI4LiZ4Li14Lii4LiwCivguYLguKjguIjguLQKK+C5guC4qOC4luC4sAor4LmC4Lio4LiY4LiZ4LiwCivguYLguKjguJzguLAKK+C5guC4qOC4oAor4LmC4Lio4Lig4LiZCivguYLguKjguKDguLIKK+C5guC4qOC4oOC4tOC4lQor4LmC4Lio4Lig4Li04LiZCivguYLguKjguKDguLTguKnguJDguYwKK+C5guC4qOC4oOC4tQor4LmC4Lio4Lij4LiT4Li0CivguYLguKjguKPguJPguLUKK+C5guC4qOC4o+C4lOC4sgor4LmC4Lio4Lij4LiV4LijCivguYLguKjguKXguIEKK+C5guC4qOC4p+C4oOC4suC4ngor4LmE4Lio4LilCivguYTguKjguKfguLAKK+C4qQor4Lip4Lih4LiyCivguKnguLHguI8KK+C4qeC4seC4j+C4geC4sAor4Lip4Lix4LiRCivguKnguLHguJMKK+C4qeC4seC4qQor4Lip4Lix4Lip4LiP4Li1CivguKnguLHguKnguJAKK+C4qeC4seC4qeC4kOC4tQor4Lip4Liy4Lij4Lig4Liy4LiE4Lit4LijCivguYLguKnguJHguKgKK+C5guC4qeC4keC4qOC4seC4mQor4LiqCivguKrguIEKK+C4quC4geC4j+C4sAor4Liq4LiB4LiQ4Liy4LiZCivguKrguIHguJfguLLguITguLLguKHguLUKK+C4quC4geC4meC4mOC5jAor4Liq4LiB4Lib4Lij4LiBCivguKrguIHguKPguJPguLXguKLguYwKK+C4quC4geC4o+C4o+C4iOC5jAor4Liq4LiB4Lij4Lij4LiWCivguKrguIHguKPguKPguKHguIHguKPguLTguKLguLIKK+C4quC4geC4o+C4seC4oQor4Liq4LiB4Lij4Li5CivguKrguIHguKUKK+C4quC4geC4seC4lAor4Liq4LiB4Lix4LiU4LmB4LiE4Lij4LmICivguKrguIHguLIKK+C4quC4geC4suC4ouC5geC4peC4mgor4Liq4LiB4Liy4LinCivguKrguIHguLTguJfguLLguITguLLguKHguLUKK+C4quC4geC4tQor4Liq4LiB4Li44LiTCivguKrguIHguLjguJPguLIKK+C4quC4geC4uOC4k+C4tQor4Liq4LiB4Li44LiZCivguKrguIHguLjguJnguJXguYwKK+C4quC4geC4uOC4pQor4Liq4LmA4LiB4LiVCivguKrguYHguIHguJnguYDguJTguLXguKLguKEKK+C4quC4guC4sAor4Liq4LiC4LiyCivguKrguILguLQKK+C4quC4hwor4Liq4LmI4LiHCivguKrguIfguIHguKMKK+C4quC4h+C4geC4o+C4suC4meC4leC5jAor4Liq4LiH4LiB4LiyCivguKrguIfguYLguIHguIgKK+C4quC4h+C4hOC5jAor4Liq4LiH4LiE4LijCivguKrguIfguITguKPguLLguKEKK+C4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4LiH4LiG4LmMCivguKrguIfguJoKK+C4quC4h+C4p+C4mQor4Liq4LiH4LmA4Lip4LibCivguKrguYjguIfguKrguIHguLLguKMKK+C4quC4h+C4quC4seC4ogor4Liq4LiH4Liq4Liy4LijCivguKrguIfguLHguJQKK+C4quC4h+C5iOC4sgor4Liq4LiI4LmK4Lin4LiUCivguKrguJAKK+C4quC4k+C4keC5jAor4Liq4LiUCivguKrguJTguIEKK+C4quC4lOC4mQor4Liq4LiU4Lih4Lig4LmMCivguKrguJTguLHguJkKK+C4quC4lOC4seC4mgor4Liq4LiU4Lix4Lia4Lib4LiB4Lij4LiT4LmMCivguKrguJTguLMKK+C4quC4lOC4tQor4Liq4LiU4Li44LiU4Li1CivguKrguJTguLnguJsKK+C4quC4lQor4Liq4LiV4LiBCivguKrguJXguJkKK+C4quC4leC4o+C4reC4meC5gOC4iuC4teC4ouC4oQor4Liq4LiV4Lij4Li04LiB4LiZ4Li04LiZCivguKrguJXguKPguLUKK+C4quC4leC4seC4mQor4Liq4LiV4Lix4LiZ4Lii4LmMCivguKrguJXguLHguJ7guJjguYwKK+C4quC4leC4seC4n+C4n+C5jAor4Liq4LiV4Lix4Lih4Lig4LmMCivguKrguJXguLLguIfguITguYwKK+C4quC4leC4suC4n+C4n+C5jAor4Liq4LiV4Li0CivguKrguJXguLTguYrguIEKK+C4quC4leC4tQor4Liq4LiV4Li14LihCivguKrguJXguLkKK+C4quC4leC4ueC4mwor4Liq4LmA4LiV4LmH4LiBCivguKrguYDguJXguJnguYDguKXguKoKK+C4quC5gOC4leC4ouC5jAor4Liq4LmE4LiV4Lij4LmK4LiE4LmMCivguKrguJbguJkKK+C4quC4luC4muC4lOC4tQor4Liq4LiW4LilCivguKrguJbguKfguLXguKPguLAKK+C4quC4luC4suC4mQor4Liq4LiW4Liy4LiZ4LiwCivguKrguJbguLLguJnguLUKK+C4quC4luC4suC4muC4gQor4Liq4LiW4Liy4Lia4Lix4LiZCivguKrguJbguLLguJvguJnguLIKK+C4quC4luC4suC4m+C4meC4tOC4gQor4Liq4LiW4Liy4Lib4LiZ4Li14Lii4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguKrguJbguLLguJvguJnguLXguKLguKfguLLguJfguLUKK+C4quC4luC4suC4m+C4seC4leC4ouC4geC4o+C4o+C4oQor4Liq4LiW4Liy4Lie4LijCivguKrguJbguLLguKUKK+C4quC4luC4suC4p+C4owor4Liq4LiW4Li04LiVCivguKrguJbguLTguJXguJnguKjguLLguKrguJXguKPguYwKK+C4quC4luC4tOC4leC4tAor4Liq4LiW4Li44LilCivguKrguJbguLnguJsKK+C4quC4l+C4suC4owor4Liq4LiX4Li24LiHCivguKrguJfguLjguKEKK+C4quC4mOC4mQor4Liq4LiY4Li44Liq4LiwCivguKrguJkKK+C4quC5ieC4mQor4Liq4LiZ4LmA4LiU4LiBCivguKrguJnguJfguJnguLIKK+C4quC4meC4l+C4o+C4o+C4qAor4Liq4LiZ4LiX4Lij4Lij4Lio4LiZ4LmMCivguKrguJnguJfguLTguKgKK+C4quC4meC5gOC4l+C4qAor4Liq4LiZ4LmA4LiX4LmI4Lir4LmMCivguKrguJnguJjguKLguLIKK+C4quC4meC4mOC4tAor4Liq4LiZ4LiY4Li04Lit4Lil4LiH4LiB4LiVCivguKrguJnguJnguKPguLLguITguLIKK+C4quC4meC4oQor4Liq4LiZ4Lin4LiZCivguKrguJnguKrguKPguYnguK3guKIKK+C4quC4meC4reC4hwor4Liq4LiZ4Lit4LiaCivguKrguJnguK3guKEKK+C4quC4meC4sAor4Liq4LiZ4Lix4LiUCivguKrguJnguLHguYjguJkKK+C4quC4meC4seC4mgor4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZCivguKrguJnguLLguJTguIEKK+C4quC4meC4suC4mQor4Liq4LiZ4Liy4Lia4LiBCivguKrguJnguLLguJrguLHguJkKK+C4quC4meC4suC4oQor4Liq4LiZ4Liy4Lii4Li4CivguKrguJnguLTguIEKK+C4quC4meC4tOC4lwor4Liq4LiZ4Li04LiYCivguKrguJnguLTguKEKK+C4quC4meC4tOC4oeC4quC4o+C5ieC4reC4ogor4Liq4LiZ4Li44LiBCivguKrguJnguLjguIHguYDguIHguK3guKPguYwKK+C4quC4meC4uOC4ggor4Liq4LiZ4Li44LiVCivguKrguJnguLjguYjguJkKK+C4quC4mgor4Liq4Lia4LiHCivguKrguJrguIgKK+C4quC4muC4lgor4Liq4Lia4LmA4Liq4Li14LiiCivguKrguJrguLHguJkKK+C4quC4muC4suC4ogor4Liq4Lia4Li54LmICivguKrguYTguJoKK+C4quC4m+C4o+C4tOC4hwor4Liq4Lib4Liy4LmA4LiB4LiV4LiV4Li1CivguKrguJvguLLguKIKK+C4quC4m+C4tOC4o+C4tOC4lQor4Liq4LmA4Lib4LiB4LiV4Lij4Lix4LihCivguKrguYDguJvguIHguYLguJfguKPguKrguYLguITguJsKK+C4quC5hOC4m+C4o+C4tOC4peC4peC4seC4oQor4Liq4Lie4Lix4LmJ4LiZCivguKrguJ7guLLguJoKK+C4quC4oOC4seC4h+C4hOC4oeC4k+C4keC4pQor4Liq4Lig4LiyCivguKrguKDguLLguIQKK+C4quC4oOC4suC4ngor4Liq4Lig4Liy4Lin4LiwCivguKrguKEKK+C4quC5ieC4oQor4Liq4Lih4LiB4Liy4LijCivguKrguKHguIjguLLguKPguLUKK+C4quC4oeC4iuC4teC4p+C4tOC4leC4sgor4Liq4Lih4LiK4Li14Lin4Li04LiY4Lij4Lij4LihCivguKrguKHguI3guLIKK+C4quC4oeC5gOC4jeC4qAor4Liq4Lih4LiT4LiwCivguKrguKHguJTguLbguIfguKrguYwKK+C4quC4oeC4lOC4uOC4pQor4Liq4Lih4LmA4LiU4LmH4LiICivguKrguKHguJbguLAKK+C4quC4oeC4meC4suC4hOC4uOC4kwor4Liq4Lih4Lia4Lix4LiV4Li0CivguKrguKHguJrguLjguIHguKrguKHguJrguLHguJkKK+C4quC4oeC4muC4ueC4o+C4k+C5jAor4Liq4Lih4Lia4Li54Lij4LiT4Liy4LiN4Liy4Liq4Li04LiX4LiY4Li04Lij4Liy4LiK4Lii4LmMCivguKrguKHguJvguKPguLDguJTguLUKK+C4quC4oeC4m+C4pOC4lOC4tQor4Liq4Lih4Lib4Lik4LmF4LiU4Li1CivguKrguKHguJzguLjguKoKK+C4quC4oeC4nuC4h+C4qOC5jAor4Liq4Lih4Lie4LilCivguKrguKHguJ7guLHguIHguJnguLHguIHguIHguLLguKMKK+C4quC4oeC4nuC4seC4leC4quC4owor4Liq4Lih4Lie4Liy4LiqCivguKrguKHguYDguJ7guIoKK+C4quC4oeC5guC4nuC4mOC4meC5jAor4Liq4Lih4LmC4Lie4LiY4Li0CivguKrguKHguKDguJ4KK+C4quC4oeC4oOC4suC4owor4Liq4Lih4LmC4Lig4LiECivguKrguKHguYLguKDguIoKK+C4quC4oeC4oeC4lQor4Liq4Lih4Lih4LiV4Li0CivguKrguKHguKHguLLguJXguKMKK+C4quC4oeC4oeC4uOC4leC4tAor4Liq4Lih4Lih4Li54LilCivguKrguKHguYLguKHguJcKK+C4quC4oeC5guC4ouC4hAor4Liq4Lih4LijCivguKrguKHguKPguJQKK+C4quC4oeC4o+C4o+C4lgor4Liq4Lih4Lij4LiqCivguKrguKHguKTguJTguLUKK+C4quC4oeC4pOC4leC4tAor4Liq4Lih4Lik4LmF4LiU4Li1CivguKrguKHguKfguLHguKIKK+C4quC4oeC4p+C4suC4ouC4sAor4Liq4Lih4LmA4Liq4Lij4LmH4LiICivguKrguKHguK0KK+C4quC4oeC4reC4hwor4Liq4Lih4Lit4Liq4Liz4LmA4Lig4LiyCivguKrguKHguLHguIQKK+C4quC4oeC4seC4hOC4owor4Liq4Lih4Lix4LiH4LiE4Li1CivguKrguKHguLHguIoKK+C4quC4oeC4seC4iuC4iuC4sgor4Liq4Lih4Lix4LiVCivguKrguKHguLHguJkKK+C4quC4oeC4seC4meC4leC5jAor4Liq4Lih4Lix4LiiCivguKrguKHguLIKK+C4quC4oeC4suC4hOC4oQor4Liq4Lih4Liy4LiI4Liy4LijCivguKrguKHguLLguIrguLTguIEKK+C4quC4oeC4suC4l+C4suC4mQor4Liq4Lih4Liy4LiY4Li0CivguKrguKHguLLguJkKK+C4quC4oeC4suC4meC4seC4leC4leC4sgor4Liq4Lih4Liy4LmC4LiZ4LiV4Lih4LmMCivguKrguKHguLLguJrguLHguJXguLQKK+C4quC4oeC4suC4nuC4seC4meC4mOC4o+C4seC4kAor4Liq4Lih4Liy4LiqCivguKrguKHguYjguLPguYDguKrguKHguK0KK+C4quC4oeC4tOC4hwor4Liq4Lih4Li04LiH4LiX4Lit4LiHCivguKrguKHguLTguJUKK+C4quC4oeC4tOC4leC4tAor4Liq4Lih4Li04LiX4LiY4LmMCivguKrguKHguLTguJfguJjguLQKK+C4quC4oeC4tQor4Liq4Lih4Li14LibCivguKrguKHguLXguKMKK+C4quC4oeC4uOC4gQor4Liq4Lih4Li44LiI4LiI4Lix4LiiCivguKrguKHguLjguIjguYDguInguJcKK+C4quC4oeC4uOC4j+C4kOC4suC4mQor4Liq4Lih4Li44LiUCivguKrguKHguLjguJXguJbguLLguJkKK+C4quC4oeC4uOC4l+C4owor4Liq4Lih4Li44LiX4Lij4LiBCivguKrguKHguLjguJfguLHguKIKK+C4quC4oeC4uOC4l+C4tOC4lQor4Liq4Lih4Li44LiZCivguKrguKHguLjguJnguYTguJ7guKMKK+C4quC4oeC4uOC4peC5geC4p+C5ieC4hwor4Liq4Lih4Li44Lir4LmMCivguKrguYLguKHguJjguLLguJkKK+C4quC5guC4oeC4quC4owor4Liq4Lii4LiUCivguKrguKLguJnguLAKK+C4quC4ouC4mgor4Liq4Lii4Lih4Lie4LijCivguKrguKLguKHguKDguLkKK+C4quC4ouC4reC4hwor4Liq4Lii4Lit4LiZCivguKrguKLguLHguKHguJ7guKMKK+C4quC4ouC4seC4oeC4p+C4o+C4sgor4Liq4Lii4Liy4LihCivguKrguKLguLLguKIKK+C4quC4ouC4tOC4pwor4Liq4Lii4Li04LmJ4LinCivguKrguKLguLjguYjguJkKK+C4quC4ouC4uOC4oeC4nuC4owor4Liq4Lii4Li44Lih4Lig4Li5CivguKrguKMKK+C4quC4o+C4gQor4Liq4Lij4LiHCivguKrguKPguYjguIcKK+C4quC4o+C4j+C4sAor4Liq4Lij4LiT4LiwCivguKrguKPguJTguLHguIEKK+C4quC4o+C4lOC4tuC5iOC4mQor4Liq4Lij4LiU4Li34LmI4LiZCivguKrguKPguJXguLAKK+C4quC4o+C4leC4seC4gQor4Liq4Lij4LiX4LiwCivguKrguKPguJfguLbguIcKK+C4quC4o+C5geC4l+C4mgor4Liq4Lij4LiZ4Li44LiBCivguKrguKPguYDguJnguLLguLAKK+C4quC4o+C5hOC4mQor4Liq4Lij4LiaCivguKrguKPguJrguJoKK+C4quC4o+C4muC4seC4mgor4Liq4Lij4LieCivguKrguKPguYDguJ7guIrguI0KK+C4quC4o+C4oOC4sAor4Liq4Lij4Lig4Lix4LiN4LiN4LiwCivguKrguKPguKDguLkKK+C4quC4o+C4oQor4Liq4Lij4LijCivguKrguKPguKPguITguYwKK+C4quC4o+C4o+C4ngor4Liq4Lij4Lij4Lie4Lix4LiK4LiNCivguKrguKPguKPguYDguJ7guIrguI0KK+C4quC4o+C4o+C5gOC4nuC4iuC4uOC4lOC4sgor4Liq4Lij4Lij4Lin4LiHCivguKrguKPguKPguYDguKrguKPguLTguI0KK+C4quC4o+C4peC4mQor4Liq4Lij4Lil4LihCivguKrguKPguKXguKHguKrguKXguKfguJkKK+C4quC4o+C4peC4reC4lAor4Liq4Lij4Lil4Lit4LiZCivguKrguKPguKXguLAKK+C4quC4o+C4peC5ieC4suC4ogor4Liq4Lij4Lil4Li04LiUCivguKrguKPguYDguKXguIIKK+C4quC4o+C4p+C4hwor4Liq4Lij4Lin4LibCivguKrguKPguKfguKEKK+C4quC4o+C4p+C4pQor4Liq4Lij4Lin4Lil4LmA4LiqCivguKrguKPguKfguKXguYDguKrguYDguK7guK7guLIKK+C4quC4o+C5gOC4quC4o+C4tOC4jQor4Liq4Lij4LmJ4Lit4LiiCivguKrguKPguYnguK3guKLguJfguLDguYHguKIKK+C4quC4o+C4sAor4Liq4Lij4Liw4LiB4LitCivguKrguKPguLDguITguKPguLLguI0KK+C4quC4o+C4sOC4lOC4sAor4Liq4Lij4Liw4LiX4LmJ4Lit4LiZCivguKrguKPguLDguJ7guKPguLHguYjguIcKK+C4quC4o+C4sOC4reC4suC4lAor4Liq4Lij4Liw4Lit4Li34LmJ4LiZCivguKrguKPguLHguYjguIcKK+C4quC4o+C4seC4quC4p+C4lOC4tQor4Liq4Lij4LmI4Liy4LiHCivguKrguKPguYnguLLguIcKK+C4quC4o+C4suC4jQor4Liq4Lij4LmJ4Liy4Lin4LmA4Liq4Li14Lii4LinCivguKrguKPguLTguJUKK+C4quC4o+C4teC5iQor4Liq4Lij4Li14Lij4LiwCivguKrguKPguLXguKrguKTguJoKK+C4quC4o+C4uOC4gQor4Liq4Lij4Li44LiHCivguKrguKPguLjguYLguJnguIEKK+C4quC4o+C4uOC4mwor4Liq4Lij4Li44Liq4Lij4LiwCivguKrguKPguLnguJsKK+C4quC5guC4o+C4igor4Liq4Lik4LiBCivguKrguKTguITguLLguKUKK+C4quC4pOC4lQor4Liq4Lik4Lip4LiO4LmMCivguKrguKTguKnguI7guLUKK+C4quC4pQor4Liq4Lil4LiUCivguKrguKXguJoKK+C4quC4peC4p+C4mQor4Liq4Lil4Lin4LiiCivguKrguKXguK3guJQKK+C4quC4peC4reC4mQor4Liq4Lil4Lit4LiiCivguKrguKXguLAKK+C4quC4peC4sOC4quC4peC4p+C4ogor4Liq4Lil4Lix4LiBCivguKrguKXguLHguIHguYDguJXguYkKK+C4quC4peC4seC4geC4quC4s+C4hOC4seC4jQor4Liq4Lil4Lix4LiUCivguKrguKXguLHguJTguYTguJQKK+C4quC4peC4seC4mgor4Liq4Lil4Lix4LihCivguKrguKXguLHguKcKK+C4quC4peC4sgor4Liq4Lil4Liy4LiBCivguKrguKXguLLguIHguLIKK+C4quC4peC4suC4hwor4Liq4Lil4LmJ4Liy4LiHCivguKrguKXguLLguJQKK+C4quC4peC4suC4leC4seC4mQor4Liq4Lil4Liy4LiaCivguKrguKXguLLguKEKK+C4quC4peC4suC4ogor4Liq4Lil4Li04LiUCivguKrguKXguLTguKUKK+C4quC4peC4tuC4gQor4Liq4Lil4Li24LiHCivguKrguKXguLjguJUKK+C4quC4peC4uOC4mgor4Liq4Lil4Li44Lih4Lie4LijCivguKrguYHguKXguIcKK+C4quC5guC4peC4lAor4Liq4LmE4Lil4LiU4LmMCivguKrguKfguIEKK+C4quC5ieC4p+C4hwor4Liq4Lin4LiUCivguKrguKfguJkKK+C4quC5iOC4p+C4mQor4Liq4Lin4LiZ4LiwCivguKrguKfguJnguLTguJUKK+C4quC4p+C4mgor4Liq4Lin4LihCivguKrguYnguKfguKEKK+C4quC4p+C4ogor4Liq4LmI4Lin4LiiCivguKrguYnguKfguKIKK+C4quC4p+C4ouC4oQor4Liq4Lin4LijCivguKrguKfguKPguKPguITguYwKK+C4quC4p+C4o+C4o+C4ouC4sgor4Liq4Lin4LiwCivguKrguKfguLHguKrguJTguLTguYwKK+C4quC4p+C4seC4quC4lOC4tQor4Liq4Lin4Lix4Liq4LiV4Li04LiB4LiwCivguKrguKfguLIKK+C4quC4p+C4suC4hOC4lQor4Liq4Lin4Liy4LiHCivguKrguKfguYjguLLguIcKK+C4quC4p+C4suC4lAor4Liq4Lin4Liy4LiU4Li0CivguKrguKfguLLguJcKK+C4quC4p+C4suC4mQor4Liq4Lin4LmI4Liy4LiZCivguKrguKfguYnguLLguJkKK+C4quC4p+C4suC4mgor4Liq4Lin4Liy4Lih4Li0CivguKrguKfguLLguKHguLUKK+C4quC4p+C4suC4ogor4Liq4Lin4Liy4Liq4LiU4Li04LmMCivguKrguKfguLLguKvguLAKK+C4quC4p+C4tOC4hwor4Liq4Lin4Li04LiH4Liq4Lin4Liy4LiiCivguKrguKfguLTguI3guI3guLLguJPguIHguJfguKPguLHguJ7guKLguYwKK+C4quC4p+C4tOC4leC4i+C5jAor4Liq4Liq4Liy4LijCivguKrguKrguLjguKPguLAKK+C4quC4quC4uOC4o+C4tQor4Liq4Lir4Lix4Lih4Lia4LiU4Li1CivguKrguKvguLHguKrguKPguLHguIfguKrguLUKK+C4quC4q+C4seC4quC4quC4sAor4Liq4Lir4Lix4Liq4LiyCivguKrguK0KK+C4quC5iOC4rQor4Liq4Lit4LiHCivguKrguYjguK3guIcKK+C4quC5ieC4reC4hwor4Liq4Lit4LiUCivguKrguK3guJkKK+C4quC5iOC4reC4mQor4Liq4Lit4LiaCivguKrguK3guJ7guKXguK0KK+C4quC5ieC4reC4oQor4Liq4Lit4LiiCivguKrguYjguK3guYDguKrguLXguKLguJQKK+C4quC4sAor4Liq4Liw4LiB4LiUCivguKrguLDguIHguK0KK+C4quC4sOC4geC4suC4hwor4Liq4Liw4LiB4Liy4Lij4LiwCivguKrguLDguIHguLLguKPguLDguJXguLLguKvguKPguLIKK+C4quC4sOC4geC4tOC4lAor4Liq4Liw4LmA4LiB4LmH4LiUCivguKrguLDguYHguIEKK+C4quC4sOC4hOC4o+C5ieC4rQor4Liq4Liw4LiE4Lij4Liy4LiNCivguKrguLDguITguYnguLLguJkKK+C4quC4sOC5gOC4h+C4suC4sOC4quC4sOC5geC4h+C4sAor4Liq4Liw4LmD4LiICivguKrguLDguJTguKEKK+C4quC4sOC4lOC4p+C4gQor4Liq4Liw4LiU4Lix4LiBCivguKrguLDguJTguLTguYnguIcKK+C4quC4sOC4lOC4tuC4hwor4Liq4Liw4LiU4Li34LitCivguKrguLDguJTguLjguYnguIcKK+C4quC4sOC4lOC4uOC4lAor4Liq4Liw4LmA4LiU4LmH4LiUCivguKrguLDguYDguJTguLIKK+C4quC4sOC5gOC4lOC4suC4sAor4Liq4Liw4LiV4LitCivguKrguLDguJXguLLguKvguKHguLHguJkKK+C4quC4sOC4leC4tgor4Liq4Liw4LiV4Li34LitCivguKrguLDguJXguLgKK+C4quC4sOC5gOC4leC5iuC4sAor4Liq4Liw4LmC4LiV4LiBCivguKrguLDguJfguIEKK+C4quC4sOC4l+C4mQor4Liq4Liw4LiX4LmJ4Lit4LiZCivguKrguLDguJfguYnguLLguJkKK+C4quC4sOC4l+C4tuC4gQor4Liq4Liw4LiX4Li24LiZCivguKrguLDguJfguLbguYjguJkKK+C4quC4sOC5gOC4l+C4tOC4mQor4Liq4Liw4LmA4LiX4Li04LmJ4LiZCivguKrguLDguYDguJfguLfguK3guJkKK+C4quC4sOC5gOC4l+C4t+C5ieC4reC4mQor4Liq4Liw4Lia4LiwCivguKrguLDguJrguLHguIEKK+C4quC4sOC4muC4seC4lAor4Liq4Liw4Lia4Lix4LmJ4LiZCivguKrguLDguJrguLHguJnguIfguLIKK+C4quC4sOC4muC4seC4meC4h+C4suC4leC5ieC4mQor4Liq4Liw4Lia4LmJ4LiyCivguKrguLDguJrguLkKK+C4quC4sOC5geC4muC4hwor4Liq4Liw4LmA4Lib4Liw4Liq4Liw4Lib4LiwCivguKrguLDguJ7guKPguLHguIEKK+C4quC4sOC4nuC4o+C4seC5iOC4hwor4Liq4Liw4Lie4Lij4Li24LiH4LiB4Lil4Lix4LinCivguKrguLDguJ7guKPguLbguJoKK+C4quC4sOC4nuC4seC4gQor4Liq4Liw4Lie4Lix4LiHCivguKrguLDguJ7guLHguJQKK+C4quC4sOC4nuC4seC5ieC4mQor4Liq4Liw4Lie4Liy4LiZCivguKrguLDguJ7guLLguKIKK+C4quC4sOC5gOC4nuC4o+C5iOC4sgor4Liq4Liw4LmC4Lie4LiBCivguKrguLDguYDguKDguLIKK+C4quC4sOC5g+C4oOC5iQor4Liq4Liw4LmC4Lih4LiHCivguKrguLDguKPguLDguJXguLAKK+C4quC4sOC4o+C4sOC5geC4q+C4meC5iAor4Liq4Liw4Lij4Li14LiV4Lie4LiH4Lio4LmMCivguKrguLDguKXguLDguJvguLDguJXguLjguYjguJkKK+C4quC4sOC4peC4suC4hwor4Liq4Liw4Lil4Li24Lih4Liq4Liw4Lil4Li34LitCivguKrguLDguKfguLXguYnguJTguKrguLDguKfguYnguLLguJQKK+C4quC4sOC4quC4oQor4Liq4Liw4Liq4Liy4LiHCivguKrguLDguK3guLLguIcKK+C4quC4sOC4reC4suC4lAor4Liq4Liw4Lit4LmJ4Liy4LiZCivguKrguLDguK3guLTguYnguIcKK+C4quC4sOC4reC4tOC4lOC4quC4sOC5gOC4reC4teC4ouC4mQor4Liq4Liw4Lit4Li24LiBCivguKrguLDguK3guLfguYnguJkKK+C4quC4sOC5gOC4reC4pwor4Liq4Liw4LmA4Lit4Lit4LiwCivguKrguLDguYLguK3guJTguKrguLDguK3guIcKK+C4quC4sOC5hOC4rQor4Liq4Lix4LiBCivguKrguLHguIHguIHguLAKK+C4quC4seC4geC4geC4seC4iOC4iOC4sAor4Liq4Lix4LiB4LiB4Liy4Lij4LiwCivguKrguLHguIHguILguKPguLIKK+C4quC4seC4geC4guC4tQor4Liq4Lix4LiB4LiP4LiwCivguKrguLHguIHguJXguLAKK+C4quC4seC4geC4ouC4sAor4Liq4Lix4LiB4Lin4LiyCivguKrguLHguIHguKvguKXguLLguJQKK+C4quC4seC4guC4ouC4sAor4Liq4Lix4LiECivguKrguLHguITguITguLAKK+C4quC4seC5iOC4hwor4Liq4Lix4LiH4LiB4Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguKrguLHguIfguIHguKMKK+C4quC4seC4h+C4geC4sOC4leC4seC4hwor4Liq4Lix4LiH4LiB4Liw4Lin4Lix4LiHCivguKrguLHguIfguIHguLDguKfguLLguJQKK+C4quC4seC4h+C4geC4sOC4quC4tQor4Liq4Lix4LiH4LiB4Lix4LiUCivguKrguLHguIfguIHguLHguJvguJvguLAKK+C4quC4seC4h+C4geC4sgor4Liq4Lix4LiH4LiB4Liy4LijCivguKrguLHguIfguIHguLLguKgKK+C4quC4seC4h+C4geC4tOC5gOC4peC4qgor4Liq4Lix4LiH4LmA4LiB4LiVCivguKrguLHguIfguILguYwKK+C4quC4seC4h+C4guC4leC4sAor4Liq4Lix4LiH4LiC4Lii4LiyCivguKrguLHguIfguILguKXguLTguIEKK+C4quC4seC4h+C4guC4peC4tOC4geC4sgor4Liq4Lix4LiH4LiC4Lin4Liy4LiZ4LijCivguKrguLHguIfguILguLLguKMKK+C4quC4seC4h+C4guC4suC4o+C4l+C4uOC4geC4guC5jAor4Liq4Lix4LiH4LiC4Liy4Lij4LiY4Lij4Lij4LihCivguKrguLHguIfguILguLLguKPguYLguKXguIEKK+C4quC4seC4h+C4guC4suC4o+C4reC4uOC5gOC4muC4geC4guC4sgor4Liq4Lix4LiH4LmA4LiC4LibCivguKrguLHguIfguYLguILguKAKK+C4quC4seC4h+C4hOC5jAor4Liq4Lix4LiH4LiE4LihCivguKrguLHguIfguITguKHguJnguLTguKLguKEKK+C4quC4seC4h+C4hOC4oeC4p+C4tOC4l+C4ouC4sgor4Liq4Lix4LiH4LiE4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguLHguIfguITguKHguKjguLbguIHguKnguLIKK+C4quC4seC4h+C4hOC4oeC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiE4Lir4LiwCivguKrguLHguIfguITguLHguIcKK+C4quC4seC4h+C4hOC4suC4leC4sgor4Liq4Lix4LiH4LiE4Liy4Lii4LiZ4LiyCivguKrguLHguIfguITguLLguKLguJnguLLguKIKK+C4quC4seC4h+C4hOC4teC4lQor4Liq4Lix4LiH4LiE4Li14LiV4Li0CivguKrguLHguIfguYDguITguYfguJQKK+C4quC4seC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiG4Liy4LiP4Li0CivguKrguLHguIfguJTguLHguIEKK+C4quC4seC4h+C4m+C4sOC4leC4tOC5gOC4q+C4h+C4sAor4Liq4Lix4LiH4Lib4Liw4Lil4Li04LmA4Lir4LiH4LiwCivguKrguLHguIfguYLguKLguIQKK+C4quC4seC4h+C5guC4ouC4iuC4meC5jAor4Liq4Lix4LiH4Lin4LijCivguKrguLHguIfguKfguLHguIjguInguKPguLAKK+C4quC4seC4h+C4p+C4seC4mOC4ouC4suC4ogor4Liq4Lix4LiH4Lin4Liy4LilCivguKrguLHguIfguKfguLLguKoKK+C4quC4seC4h+C5gOC4p+C4igor4Liq4Lix4LiH4LmA4Lin4LiiCivguKrguLHguIfguYDguKfguLXguKLguJkKK+C4quC4seC4h+C4quC4geC4pOC4lQor4Liq4Lix4LiH4Liq4LiB4Liy4LijCivguKrguLHguIfguKrguJTguKHguKDguYwKK+C4quC4seC4h+C4quC4meC4l+C4meC4sgor4Liq4Lix4LmI4LiH4Liq4LiZ4LiX4LiZ4LiyCivguKrguLHguIfguKrguKPguKPguITguYwKK+C4quC4seC4h+C4quC4suC4o+C4p+C4seC4jwor4Liq4Lix4LiH4Liq4Li04LiX4LiY4Li0CivguKrguLHguIfguKrguLjguJfguJjguYwKK+C4quC4seC4h+C4quC4uOC4l+C4mOC4tAor4Liq4Lix4LiH4Lir4LijCivguKrguLHguIfguKvguKPguJPguYwKK+C4quC4seC4h+C4q+C4o+C4o+C4qQor4Liq4Lix4LiH4Lir4Liy4LijCivguKrguLHguIfguKvguLLguKPguLTguKHguJfguKPguLHguJ7guKLguYwKK+C4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4sAor4Liq4Lix4LiH4Lir4Li04LiVCivguKrguLHguIgKK+C4quC4seC4iOC4iOC4sAor4Liq4Lix4LiI4LiI4LiyCivguKrguLHguIrguIzguLAKK+C4quC4seC4iuC4jOC4suC4ouC4sAor4Liq4Lix4LiK4LiM4Li4CivguKrguLHguI3guIjguKMKK+C4quC4seC4jeC4iOC4suC4owor4Liq4Lix4LiN4LmA4LiI4LiV4LiZ4LiyCivguKrguLHguI3guIrguLLguJXguI3guLLguJMKK+C4quC4seC4jeC4iuC4suC4leC4quC4o+C4sAor4Liq4Lix4LiN4LiK4Liy4LiV4Li0CivguKrguLHguI3guIrguLXguJ7guJnguKPguIEKK+C4quC4seC4jeC4jOC4sgor4Liq4Lix4LiN4LiN4LiyCivguKrguLHguI3guI3guLLguJMKK+C4quC4seC4jeC4jeC4tQor4Liq4Lix4LiN4LmC4LiN4LiK4LiZ4LmMCivguKrguLHguI3guYLguKLguIQKK+C4quC4seC4jeC4peC4seC4geC4qeC4k+C5jAor4Liq4Lix4LiQ4Li0CivguKrguLHguJPguJDguLLguJkKK+C4quC4seC4k+C4kOC4tOC4leC4tAor4Liq4Lix4LiT4LiR4LmMCivguKrguLHguJPguKvguYwKK+C4quC4seC4lAor4Liq4Lix4LiU4LiI4Lit4LiHCivguKrguLHguJUKK+C4quC4seC4leC4leC4muC4h+C4geC4igor4Liq4Lix4LiV4LiV4Lia4Lij4Lij4LiTCivguKrguLHguJXguJXguJrguLjguKnguKLguYwKK+C4quC4seC4leC4leC4p+C4k+C4tOC4iuC4iuC4sgor4Liq4Lix4LiV4LiV4LiwCivguKrguLHguJXguJXguLkKK+C4quC4seC4leC4lgor4Liq4Lix4LiV4LiW4Lix4LiZ4LiU4LijCivguKrguLHguJXguJbguLIKK+C4quC4seC4leC4luC4tAor4Liq4Lix4LiV4LiW4Li4CivguKrguLHguJXguJrguKPguKPguJMKK+C4quC4seC4leC4muC4o+C4tOC4oOC4seC4k+C4keC5jAor4Liq4Lix4LiV4Lii4LmMCivguKrguLHguJXguKfguYwKK+C4quC4seC4leC4p+C4sgor4Liq4Lix4LiX4LiY4Lij4Lij4LihCivguKrguLHguJfguJjguLIKK+C4quC4seC4l+C4mOC4tOC4h+C4p+C4tOC4q+C4suC4o+C4tOC4gQor4Liq4Lix4LiX4LiY4Li04Lin4Li04Lir4Liy4Lij4Li04LiBCivguKrguLHguJfguKjguLLguKrguJXguKPguYwKK+C4quC4seC4mQor4Liq4Lix4LmI4LiZCivguKrguLHguYnguJkKK+C4quC4seC4meC4lOC4suC4mQor4Liq4Lix4LiZ4LiU4Liy4LibCivguKrguLHguJnguJTguLjguKnguI7guLUKK+C4quC4seC4meC5gOC4lOC4gQor4Liq4Lix4LiZ4LmC4LiU4LipCivguKrguLHguJnguJXguYwKK+C4quC4seC4meC4leC4leC4tAor4Liq4Lix4LiZ4LiV4Liw4Lib4Liy4Lib4LiyCivguKrguLHguJnguJXguLDguYLguKMKK+C4quC4seC4meC4leC4sOC4p+C4sgor4Liq4Lix4LiZ4LiV4Li0CivguKrguLHguJnguJXguLTguIHguLAKK+C4quC4seC4meC4leC4tOC5gOC4geC4meC4tOC4l+C4suC4mQor4Liq4Lix4LiZ4LiV4Li44LiP4LiQ4Li1CivguKrguLHguJnguJbguKPguLAKK+C4quC4seC4meC4luC4p+C4sAor4Liq4Lix4LiZ4LiW4Lix4LiVCivguKrguLHguJnguJbguLLguKMKK+C4quC4seC4meC4l+C4meC4sAor4Liq4Lix4LiZ4LiX4LiZ4Liy4LiB4Liy4LijCivguKrguLHguJnguJfguLAKK+C4quC4seC4meC4l+C4seC4lAor4Liq4Lix4LiZ4LiX4Lix4Liq4LiZ4LiwCivguKrguLHguJnguJfguLLguJkKK+C4quC4seC4meC4l+C4tOC4kOC4tAor4Liq4Lix4LiZ4LiX4Li04LiqCivguKrguLHguJnguYDguJfguKoKK+C4quC4seC4meC5gOC4l+C4qwor4Liq4Lix4LiZ4LmA4LiX4LmI4Lir4LmMCivguKrguLHguJnguJjguLLguJkKK+C4quC4seC4meC4meC4tOC4mOC4tAor4Liq4Lix4LiZ4LiZ4Li04Lia4Liy4LiVCivguKrguLHguJnguJnguLTguKfguLLguKoKK+C4quC4seC4meC4meC4tOC5gOC4p+C4qgor4Liq4Lix4LiZ4LiZ4Li04Lip4LiQ4Liy4LiZCivguKrguLHguJnguJ7guKPguYnguLLguJnguLLguIfguYHguK0KK+C4quC4seC4meC4nuC4o+C5ieC4suC4oeC4reC4jQor4Liq4Lix4LiZ4Lie4Lij4LmJ4Liy4Lir4Lit4LihCivguKrguLHguJnguKPguKfguIcKK+C4quC4seC4meC4peC4tuC4gQor4Liq4Lix4LiZ4Liq4LiB4Lik4LiVCivguKrguLHguJoKK+C4quC4seC4muC4m+C4peC4seC4mgor4Liq4Lix4Lia4Lib4Lil4Li14LmJCivguKrguLHguJrguJvguLDguKPguLHguIfguYDguIQKK+C4quC4seC4muC4m+C4suC4gQor4Liq4Lix4Lib4LiE4Lix4LiaCivguKrguLHguJvguJTguJkKK+C4quC4seC4m+C5guC4lOC4gQor4Liq4Lix4Lib4LmC4LiU4LiB4Liq4Lix4Lib4LiU4LiZCivguKrguLHguJvguJfguJkKK+C4quC4seC4m+C4m+C4sAor4Liq4Lix4Lib4Lib4Liy4Lii4LiB4Liy4Lij4Li1CivguKrguLHguJvguJvguLQKK+C4quC4seC4m+C4m+C4uOC4o+C4uOC4qQor4Liq4Lix4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMCivguKrguLHguJvguKvguIfguIEKK+C4quC4seC4m+C5gOC4q+C4o+C5iOC4rQor4Liq4Lix4LieCivguKrguLHguJ7guJ7guLAKK+C4quC4seC4nuC4nuC4seC4jeC4jeC4uQor4Liq4Lix4Lie4LmA4Lie4Liq4Lix4LiV4LiV4LiyCivguKrguLHguJ7guYDguJ7guYDguKvguKPguLAKK+C4quC4seC4nuC4ouC4reC4gQor4Liq4Lix4Lif4Lix4LiZ4LiE4LiZ4LiX4LiyCivguKrguLHguKHguI3guI3guLIKK+C4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4Liq4Lix4Lih4Lib4LiK4Lix4LiN4LiN4LiwCivguKrguLHguKHguJvguJfguLIKK+C4quC4seC4oeC4m+C4l+C4suC4mQor4Liq4Lix4Lih4Lib4Lii4Li44LiVCivguKrguLHguKHguJvguYLguKLguIQKK+C4quC4seC4oeC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Liq4Lix4Lih4Lib4Lij4Liw4Lir4Liy4LijCivguKrguLHguKHguJvguKPguLLguKLguKDguJ4KK+C4quC4seC4oeC4m+C4o+C4suC4ouC4tOC4geC4oOC4ngor4Liq4Lix4Lih4Lib4Lix4LiV4LiV4Li0CivguKrguLHguKHguJzguLHguJvguKXguLLguJsKK+C4quC4seC4oeC4nOC4seC4qgor4Liq4Lix4Lih4Lie4LilCivguKrguLHguKHguJ7guKvguLjguKXguLIKK+C4quC4seC4oeC4nuC4seC4leC4quC4owor4Liq4Lix4Lih4Lie4Lix4LiX4LiY4LmMCivguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4quC4seC4oeC4nuC4seC4meC4mOC4meC5jAor4Liq4Lix4Lih4Lie4Liy4LiY4LiwCivguKrguLHguKHguJ7guLLguKPguLAKK+C4quC4seC4oeC4nuC4suC4q+C4meC5jAor4Liq4Lix4Lih4Lie4Liy4Lir4LiwCivguKrguLHguKHguJ7guLjguJfguJjguLAKK+C4quC4seC4oeC5guC4nuC4mOC4tAor4Liq4Lix4Lih4Lig4Lin4LiwCivguKrguLHguKHguKDguYDguKfguKrguLUKK+C4quC4seC4oeC4oOC4seC4lQor4Liq4Lix4Lih4Lig4Lix4LiV4LiV4LiwCivguKrguLHguKHguKDguLLguKnguJPguYwKK+C4quC4seC4oeC5gOC4oOC4l+C4sAor4Liq4Lix4Lih4LmC4Lig4LiE4LiB4Liy4LiiCivguKrguLHguKHguKHguJnguLIKK+C4quC4seC4oeC4oeC4seC4m+C4mOC4suC4mQor4Liq4Lix4Lih4Lih4LiyCivguKrguLHguKHguYLguKHguJfguJnguLXguKLguIHguJbguLIKK+C4quC4seC4oeC4pOC4l+C4mOC4tAor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMCivguKrguLHguKLguJnguYwKK+C4quC4seC4peC4peC4sAor4Liq4Lix4Lil4Lil4Liy4LibCivguKrguLHguKrguJTguLUKK+C4quC4seC4quC4quC4sAor4Liq4Lix4Liq4Liq4Li4CivguKrguLHguKrguKrguLkKK+C4quC4seC4quC4uOC4o+C4tQor4Liq4LiyCivguKrguYjguLIKK+C4quC4suC4gQor4Liq4Liy4LiB4Lij4Lij4LiI4LmMCivguKrguLLguIHguKUKK+C4quC4suC4geC4qeC4tOC4mQor4Liq4Liy4LiB4Lip4Li1CivguKrguLLguIHguLHguIjguInguLIKK+C4quC4suC4geC4seC4peC4ouC5jAor4Liq4Liy4LiB4Li04Lii4LiwCivguKrguLLguYDguIEKK+C4quC4suC4guC4sgor4Liq4Liy4LiE4LijCivguKrguLLguITguYDguKPguKgKK+C4quC4suC4hOC4uQor4Liq4Liy4LiHCivguKrguLLguIfguKvguYjguLIKK+C4quC4suC4juC4gQor4Liq4Liy4LiT4Li1CivguKrguLLguJQKK+C4quC4suC4lQor4Liq4Liy4LiV4Lij4LiyCivguKrguLLguYTguJbguKIKK+C4quC4suC4l+C4owor4Liq4Liy4LiX4Li04LiqCivguKrguLLguJfguLgKK+C4quC4suC5guC4lwor4Liq4Liy4LiY4LiBCivguKrguLLguJjguJkKK+C4quC4suC4mOC4ouC4sAor4Liq4Liy4LiY4Lii4Liy4LiiCivguKrguLLguJjguLLguKPguJPguYwKK+C4quC4suC4mOC4suC4o+C4k+C4sAor4Liq4Liy4LiY4Li04LiVCivguKrguLLguJjguLgKK+C4quC4suC4mOC4uOC4quC4sAor4Liq4Liy4LiZCivguKrguLLguJnguJXguKfguLAKK+C4quC4suC4meC4uAor4Liq4Liy4LiZ4Li44Lio4Li04Lip4Lii4LmMCivguKrguLLguJnguLkKK+C4quC4suC4mgor4Liq4Liy4Lia4Liq4Li54LiNCivguKrguLLguJrguLLguJkKK+C4quC4suC4mwor4Liq4Liy4Lib4LmE4LiV4LiiCivguKrguLLguJvguKrguKPguKMKK+C4quC4suC4oQor4Liq4Liy4Lih4LiK4Li44LiBCivguKrguLLguKHguYDguJPguKMKK+C4quC4suC4oeC5gOC4k+C4o+C4tQor4Liq4Liy4Lih4LiZ4LiV4LmMCivguKrguLLguKHguKLguJfguKPguLHguJ7guKLguYwKK+C4quC4suC4oeC4o+C4qgor4Liq4Liy4Lih4LilCivguKrguLLguKHguKrguLTguJoKK+C4quC4suC4oeC4seC4hOC4hOC4tQor4Liq4Liy4Lih4Lix4LiNCivguKrguLLguKHguLHguJXguJbguLTguKLguLAKK+C4quC4suC4oeC4suC4meC4ouC5jAor4Liq4Liy4Lih4Liy4Lij4LiWCivguKrguLLguKHguLTguIEKK+C4quC4suC4oeC4tOC4lQor4Liq4Liy4Lih4Li04LiZ4Li1CivguKrguLLguKHguLTguKDguLHguIHguJTguLTguYwKK+C4quC4suC4oeC4tOC4qgor4Liq4Liy4Lih4Li1CivguKrguLLguKHguLXguIjguLTguIHguKPguKPguKEKK+C4quC4suC4ogor4Liq4LmI4Liy4LiiCivguKrguYnguLLguKIKK+C4quC4suC4ouC4iuC4uQor4Liq4Liy4Lii4LiV4LiyCivguKrguLLguKLguYDguKfguJfguKLguYwKK+C4quC4suC4ouC4seC4k+C4q+C5jAor4Liq4Liy4Lii4Liy4Lir4LmMCivguKrguLLguKMKK+C4quC4suC4o+C4geC4o+C4oeC4mOC4o+C4o+C4oeC5jAor4Liq4Liy4Lij4LiE4LiU4Li1CivguKrguLLguKPguYDguITguKHguLUKK+C4quC4suC4o+C4k+C4teC4ouC4mOC4o+C4o+C4oQor4Liq4Liy4Lij4LiV4Lij4LiyCivguKrguLLguKPguJbguLUKK+C4quC4suC4o+C4lwor4Liq4Liy4Lij4LiX4LiyCivguKrguLLguKPguJfguLTguKgKK+C4quC4suC4o+C4l+C4uOC4geC4guC5jAor4Liq4Liy4Lij4LiY4Lij4Lij4LihCivguKrguLLguKPguJnguLTguYDguJfguKgKK+C4quC4suC4o+C4muC4mgor4Liq4Liy4Lij4Lia4Lij4Lij4LiTCivguKrguLLguKPguJrguKPguLTguKrguLjguJfguJjguLTguYwKK+C4quC4suC4o+C4muC4seC4jQor4Liq4Liy4Lij4Lia4Lix4LiaCivguKrguYnguLLguKPguJrguLHguJoKK+C4quC4suC4o+C4muC4suC4jQor4Liq4Liy4Lij4Lib4Lij4Liw4LiB4Lit4LiaCivguKrguLLguKPguJvguKPguLDguYLguKLguIrguJnguYwKK+C4quC4suC4o+C4nuC4seC4lAor4Liq4Liy4Lij4Lie4Lix4LiZCivguKrguLLguKPguJ7guLLguIfguITguYwKK+C4quC4suC4o+C4oOC4suC4ngor4Liq4Liy4Lij4Lig4Li1CivguKrguLLguKPguYTguKHguKIKK+C4quC4suC4o+C4o+C4seC4gQor4Liq4Liy4Lij4Lil4Liw4Lil4Liy4LiiCivguKrguLLguKPguYDguKXguKcKK+C4quC4suC4o+C4p+C4seC4lAor4Liq4Liy4Lij4Lin4Lix4LiV4LijCivguKrguLLguKPguKrguYnguKEKK+C4quC4suC4o+C4q+C4meC4uQor4Liq4Liy4Lij4LiwCivguKrguLLguKPguLDguYLguIHguIEKK+C4quC4suC4o+C4sOC5gOC4mQor4Liq4Liy4Lij4Liw4Lie4LiyCivguKrguLLguKPguLDguJ7guLLguYDguK7guYLguKUKK+C4quC4suC4o+C4sOC4p+C4reC4mQor4Liq4Liy4Lij4Liw4Lin4Liy4Lij4Li1CivguKrguLLguKPguLDguKrguLDguKHguLIKK+C4quC4suC4o+C4sOC4quC4s+C4hOC4seC4jQor4Liq4Liy4Lij4Lix4LiV4LiW4LiwCivguKrguLLguKPguLHguJfguJjguYwKK+C4quC4suC4o+C4seC4oeC4oOC5jAor4Liq4Liy4Lij4Liy4LiT4Li14Lii4LiB4LijCivguKrguLLguKPguLLguJPguLXguKLguLAKK+C4quC4suC4o+C4suC4meC4uOC4geC4o+C4oQor4Liq4Liy4Lij4Li14Lij4Li04LiB4LiY4Liy4LiV4Li4CivguKrguLLguKPguLnguJsKK+C4quC4suC5guC4o+C4igor4Liq4Liy4Lil4LiwCivguKrguLLguKXguLDguKfguJkKK+C4quC4suC4peC4tAor4Liq4Liy4Lil4Li04LiB4LiyCivguKrguLLguKXguLTguJnguLUKK+C4quC4suC4peC4tQor4Liq4Liy4Lil4Li14LmICivguKrguLLguKXguLkKK+C4quC4suC5guC4peC4q+C4tOC4lQor4Liq4Liy4LinCivguKrguLLguKfguIEKK+C4quC4suC4p+C4geC4o+C4sOC4l+C4t+C4muC4q+C4rQor4Liq4Liy4Lin4LiZ4LmJ4Lit4Lii4LmA4Lil4LmI4LiZ4LiZ4LmJ4LizCivguKrguLLguKfguJnguLAKK+C4quC4suC4p+C4tOC4geC4sgor4Liq4Liy4Lin4Li04LiV4LijCivguKrguLLguKfguLTguJXguKPguLUKK+C4quC4suC4quC4meC5jAor4Liq4Liy4Liq4LiZ4LiyCivguKrguLLguKvguKPguYjguLLguKIKK+C4quC4suC4q+C4o+C4tQor4Liq4LmI4Liy4Lir4Lij4Li1CivguKrguLLguKvguLHguKoKK+C4quC4suC5gOC4q+C4leC4uAor4Liq4Liy4LmB4Lir4Lij4LiBCivguKrguLLguKzguLjguKPguLAKK+C4quC4swor4Liq4LmI4LizCivguKrguLPguITguLHguI0KK+C4quC4s+C4i+C5iOC4suC4hwor4Liq4Liz4LmB4LiU4LiHCivguKrguLPguJfguLHguJoKK+C4quC4s+C4meC4p+C4lAor4Liq4Liz4LiZ4Lin4LiZCivguKrguLPguJnguK3guIcKK+C4quC4s+C4meC4seC4gQor4Liq4Liz4LiZ4Liy4LiZCivguKrguLPguJnguLbguIcKK+C4quC4s+C5gOC4meC4sgor4Liq4Liz4LmA4LiZ4Li14Lii4LiHCivguKrguLPguYDguJnguLXguKLguJkKK+C4quC4s+C4muC4reC4gQor4Liq4Liz4Lia4Lix4LiU4Liq4Liz4LiZ4Lin4LiZCivguKrguLPguJvguLDguKXguK0KK+C4quC4s+C4m+C4sOC4q+C4peC4seC4hwor4Liq4Liz4Lib4Lix4LmJ4LiZCivguKrguLPguJvguLHguJnguJnguLUKK+C4quC4s+C5gOC4oOC4sgor4Liq4Liz4LmA4Lig4Liy4LiX4Lit4LiHCivguKrguLPguKHguLDguIfguLIKK+C4quC4s+C4oeC4sOC5guC4meC4hOC4o+C4seC4pwor4Liq4Liz4Lih4Liw4LmC4LiZ4Lib4Liw4LiK4Liy4LiB4LijCivguKrguLPguKHguLDguKXguK0KK+C4quC4s+C4oeC4sOC5gOC4peC5gOC4l+C5gOC4oeC4sgor4Liq4Liz4Lih4Liw4Lir4LiyCivguKrguLPguKPguJQKK+C4quC4s+C4o+C4p+C4iAor4Liq4Liz4Lij4Lin4LihCivguKrguLPguKPguKfguKIKK+C4quC4s+C4o+C4p+C4pQor4Liq4Liz4Lij4Lit4LiBCivguKrguLPguKPguK3guIcKK+C4quC4s+C4o+C4seC4mgor4Liq4Liz4Lij4Liy4LiBCivguKrguLPguKPguLLguI0KK+C4quC4s+C4o+C4tOC4lAor4Liq4Liz4LmA4Lij4LmH4LiICivguKrguLPguYDguKPguLIKK+C4quC4s+C5gOC4o+C4tOC4hwor4Liq4Liz4LmC4Lij4LiHCivguKrguLPguKXguLHguIEKK+C4quC4s+C4peC4suC4mQor4Liq4Liz4Lil4Li1CivguKrguLPguYHguKXguIcKK+C4quC4s+C4quC4o+C5ieC4suC4hwor4Liq4Liz4Liq4LiyCivguKrguLPguYDguKrguYfguJQKK+C4quC5iOC4s+C5gOC4quC4teC4ogor4Liq4Liz4Lir4Lij4Lin4LiUCivguKrguLPguKvguKPguLHguJoKK+C4quC4s+C4q+C4sgor4Liq4Liz4LmA4Lir4LiZ4Li14Lii4LiBCivguKrguLPguYDguKvguKPguYgKK+C4quC4s+C4reC4reC4ogor4Liq4Liz4Lit4Liy4LiHCivguKrguLQKK+C4quC4tOC4geC4guC5jAor4Liq4Li04LiB4LiC4Lih4Liy4LiZ4LiyCivguKrguLTguIHguILguLIKK+C4quC4tOC4guC4owor4Liq4Li04LiC4Lij4Li1CivguKrguLTguILguYDguKPguKgKK+C4quC4tOC4guC4sgor4Liq4Li04LiC4Li1CivguKrguLTguITguLLguKUKK+C4quC4tOC4hwor4Liq4Li04LmI4LiHCivguKrguLTguIfguILguKMKK+C4quC4tOC4h+C4hOC5jAor4Liq4Li04LiH4LiE4Lil4Li04LmJ4LiHCivguKrguLTguIfguITguKXguLUKK+C4quC4tOC4h+C4hOC4suC4owor4Liq4Li04LiH4LiE4Liy4LilCivguKrguLTguIfguITguLUKK+C4quC4tOC4h+C5guC4lQor4Liq4Li04LiH4LmC4LiV4LiX4Liw4LmA4LilCivguKrguLTguIfguKrguLLguKPguLLguKrguLHguJXguKfguYwKK+C4quC4tOC4h+C4q+C5jAor4Liq4Li04LiH4Lir4LilCivguKrguLTguI3guIjguJnguYwKK+C4quC4tOC4lQor4Liq4Li04LmC4LiV4LiX4LiB4Lin4Liy4Lij4Li1CivguKrguLTguJbguLTguKUKK+C4quC4tOC4l+C4mOC5jAor4Liq4Li04LiX4LiY4Li0CivguKrguLTguJfguJjguLTguYwKK+C4quC4tOC4mOC4ouC4sAor4Liq4Li04LiZCivguKrguLTguYnguJkKK+C4quC4tOC4meC4l+C4ueC4o+C4sAor4Liq4Li04LiZ4LiY4LieCivguKrguLTguJnguJjguLgKK+C4quC4tOC4meC4mOC4uOC4o+C4sAor4Liq4Li04LiZ4LmA4LiY4Liy4Lin4LmMCivguKrguLTguJnguLAKK+C4quC4tOC4meC4suC4lAor4Liq4Li04LiZ4Li04LiX4LiY4LmMCivguKrguLTguJnguLUKK+C4quC4tOC5gOC4meC4o+C4uAor4Liq4Li04LmA4LiZ4Lir4LiBCivguKrguLTguYDguJnguKvguJnguLXguKLguLAKK+C4quC4tOC5gOC4meC4q+C4sAor4Liq4Li04LmA4LiZ4Lir4LiyCivguKrguLTguYDguJnguYjguKvguLIKK+C4quC4tOC4mgor4Liq4Li04Lib4Lib4LiwCivguKrguLTguJ7guJnguLAKK+C4quC4tOC4oeC4nuC4peC4tQor4Liq4Li04Lij4LiwCivguKrguLTguKPguLQKK+C4quC4tOC4o+C4tQor4Liq4Li04Lil4LiyCivguKrguLTguYLguKXguIEKK+C4quC4tOC4pwor4Liq4Li04LmI4LinCivguKrguLTguKfguLAKK+C4quC4tOC4p+C4tOC4geC4sgor4Liq4Li04Lir4LiZ4LiyCivguKrguLUKK+C4quC4teC5iAor4Liq4Li14LmJCivguKrguLXguIHguKPguLjguJQKK+C4quC4teC4geC4sgor4Liq4Li14LiB4Li44LiZCivguKrguLXguILguYnguLLguIcKK+C4quC4teC4iOC4seC4gQor4Liq4Li14LiK4Lih4Lie4Li54LiU4LiHCivguKrguLXguIrguKHguJ7guLnguKrguKfguJkKK+C4quC4teC4lAor4Liq4Li14LiU4LitCivguKrguLXguJXguYnguJkKK+C4quC4teC4l+C4seC4meC4lOC4owor4Liq4Li14LmI4Lia4LiXCivguKrguLXguJ/guLHguJnguJnguLLguIfguYHguK0KK+C4quC4teC4oeC4seC4meC4leC5jAor4Liq4Li14Lih4LiyCivguKrguLXguKXguLDguKHguLHguJkKK+C4quC4teC4peC4seC4nuC4nuC4leC4m+C4o+C4suC4oeC4suC4qgor4Liq4Li14Lin4Li04LiB4LiyCivguKrguLXguKfguLTguKDguLIKK+C4quC4teC4quC4rQor4Liq4Li14Liq4LiwCivguKrguLXguKrguLIKK+C4quC4teC4quC4uOC4gQor4Liq4Li14LmA4Liq4Li14Lii4LiUCivguKrguLXguYDguKrguLfguYnguK3guJnguYnguK3guKIKK+C4quC4teC4q+C5jAor4Liq4Li14Lir4LiwCivguKrguLbguIEKK+C4quC4tuC4hwor4Liq4Li34LiaCivguKrguLfguYjguK0KK+C4quC4uAor4Liq4Li44LiBCivguKrguLjguIHguILguYwKK+C4quC4uOC4geC4owor4Liq4Li44LiB4Lij4LihCivguKrguLjguIHguLMKK+C4quC4uOC4geC4teC5ieC4ouC4suC4geC4teC5iQor4Liq4Li44LiCCivguKrguLjguILguLTguJkKK+C4quC4uOC4guC4tQor4Liq4Li44LiC4Li44LihCivguKrguLjguILguLjguKHguLLguKUKK+C4quC4uOC4hOC4lQor4Liq4Li44LiE4LiV4Li0CivguKrguLjguITguJnguJjguYwKK+C4quC4uOC4hOC4seC4meC4mOC5jAor4Liq4Li44LiH4LiB4LiwCivguKrguLjguIfguKrguLTguIcKK+C4quC4uOC4h+C4quC4uOC4oeC4suC4owor4Liq4Li44LiH4Liq4Li44Lih4Liy4Lij4Li1CivguKrguLjguIjguKPguLTguJUKK+C4quC4uOC4iOC4q+C4meC4teC5iAor4Liq4Li44LiI4LiwCivguKrguLjguIjguLQKK+C4quC4uOC4iOC4tOC4lQor4Liq4Li44LiI4Li04LiV4LijCivguKrguLjguIrguJkKK+C4quC4uOC4iuC4seC4oeC4muC4lOC4tQor4Liq4Li44LiK4LiyCivguKrguLjguIrguLLguJTguLIKK+C4quC4uOC4jQor4Liq4Li44LiTCivguKrguLjguJPguKvguLIKK+C4quC4uOC4k+C4tOC4quC4sgor4Liq4Li44LiUCivguKrguLjguJTguKrguIfguKfguJkKK+C4quC4uOC4lOC4sgor4Liq4Li44LiVCivguKrguLjguJXguJXguLAKK+C4quC4uOC4leC4leC4seC4meC4leC4sAor4Liq4Li44LiV4LiV4Lix4LiZ4LiV4Liw4Lib4Li04LiO4LiBCivguKrguLjguJXguLQKK+C4quC4uOC4l+C4mOC5jAor4Liq4Li44LiX4LiY4Li0CivguKrguLjguJfguKPguKPguKjguJnguYwKK+C4quC4uOC4l+C4seC4qOC4meC5jAor4Liq4Li44LiY4Lij4Lij4Lih4LmA4LiX4Lin4Liq4Lig4LiyCivguKrguLjguJjguLIKK+C4quC4uOC4mOC4tQor4Liq4Li44LiZ4LiX4LijCivguKrguLjguJnguJfguKPguLUKK+C4quC4uOC4meC4l+C4o+C4teC4ouC4sAor4Liq4Li44LiZ4Lix4LiCCivguKrguLjguJnguLHguJnguJfguYwKK+C4quC4uOC5guC4meC4gQor4Liq4Li44Lia4LiU4Li1CivguKrguLjguJrguKPguKPguJMKK+C4quC4uOC4muC4tOC4mQor4Liq4Li44Lib4Lij4Li14LiU4Li04LmMCivguKrguLjguJvguKPguLXguKLguYwKK+C4quC4uOC4m+C4suC4k+C4tQor4Liq4Li44Lie4Lie4Lix4LiVCivguKrguLjguJ7guKPguKPguJMKK+C4quC4uOC4nuC4o+C4o+C4k+C4luC4seC4mQor4Liq4Li44Lie4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguKrguLjguKDguKMKK+C4quC4uOC4oOC4seC4hAor4Liq4Li44Lig4LiyCivguKrguLjguKDguLLguJ4KK+C4quC4uOC4oOC4suC4qeC4tOC4lQor4Liq4Li44LihCivguKrguLjguYjguKEKK+C4quC4uOC4oeC4l+C4uOC4oQor4Liq4Li44Lih4LiZCivguKrguLjguKHguJnguLAKK+C4quC4uOC4oeC4meC4seC4qgor4Liq4Li44Lih4LiZ4LiyCivguKrguLjguYnguKHguYDguKrguLXguKLguIcKK+C4quC4uOC4oeC4sAor4Liq4Li44Lih4Liy4Lil4Li1CivguKrguLjguYDguKHguJgKK+C4quC4uOC5gOC4oeC4o+C4uAor4Liq4Li44LmJ4LiiCivguKrguLjguKPguIfguITguYwKK+C4quC4uOC4o+C4oOC4tQor4Liq4Li44Lij4Lix4LiH4LiE4LmMCivguKrguLjguKPguLHguJXguLQKK+C4quC4uOC4o+C4seC4quC4p+C4lOC4tQor4Liq4Li44Lij4LiyCivguKrguLjguKPguLLguIfguITguYzguIjguLPguYDguKPguLXguKLguIcKK+C4quC4uOC4o+C4suC4mOC4tOC4m+C5hOC4leC4ogor4Liq4Li44Lij4Li04LiZ4LiX4Lij4Liy4Lir4Li5CivguKrguLjguKPguLTguKLguIcKK+C4quC4uOC4o+C4tOC4ouC4mQor4Liq4Li44Lij4Li04Lii4LiwCivguKrguLjguKPguLTguKLguLHguJkKK+C4quC4uOC4o+C4tOC4ouC4sgor4Liq4Li44Lij4Li04Lii4Li44Lib4Lij4Liy4LiE4LiyCivguKrguLjguKPguLTguYDguKLguJnguJfguKPguYwKK+C4quC4uOC4o+C4tOC5gOC4ouC4qAor4Liq4Li44Lij4Li04LmC4LiiCivguKrguLjguKPguLjguYjguKLguKrguLjguKPguYjguLLguKIKK+C4quC4uOC4peC4leC5iOC4suC4mQor4Liq4Li44LinCivguKrguLjguKfguKDguLLguJ4KK+C4quC4uOC4p+C4o+C4o+C4kwor4Liq4Li44Lin4Liy4LiZCivguKrguLjguKfguLTguJnguLHguKIKK+C4quC4uOC4p+C4tOC4oeC4pQor4Liq4Li44Lip4Li04LijCivguKrguLjguKrguLLguJkKK+C4quC4uOC4q+C4meC4seC4lQor4Liq4Li44Lir4Lij4LmI4LiHCivguKrguLjguKvguKPguYjguLLguKIKK+C4quC4uOC4q+C4pOC4lwor4Liq4Li44Lir4Lix4LiXCivguKrguLjguYDguKvguKPguYjguLIKK+C4quC4uQor4Liq4Li54LmJCivguKrguLnguIHguKnguKEKK+C4quC4ueC4hwor4Liq4Li54LiI4LiB4LiwCivguKrguLnguIjguJnguLAKK+C4quC4ueC4iOC4tAor4Liq4Li54LiNCivguKrguLnguJQKK+C4quC4ueC4lQor4Liq4Li54LiV4LijCivguKrguLnguJXguLQKK+C4quC4ueC4lwor4Liq4Li54LiZ4Li4CivguKrguLnguJoKK+C4quC4ueC4m+C4sAor4Liq4Li54LijCivguKrguLnguKPguKLguYwKK+C4quC4ueC4o+C4tAor4Liq4Li54Liq4Li1CivguYDguKoKK+C5gOC4quC4gQor4LmA4Liq4LiB4LiC4LiwCivguYDguKrguILguLAKK+C5gOC4quC5h+C4hwor4LmA4Liq4LmJ4LiHCivguYDguKrguIfguLXguYjguKLguKEKK+C5gOC4quC4ieC4p+C4mQor4LmA4Liq4LiP4LiQ4Li1CivguYDguKrguJPguLUKK+C5gOC4quC4lAor4LmA4Liq4LiU4LmH4LiICivguYDguKrguJXguLgKK+C5gOC4quC4luC4teC4ouC4owor4LmA4Liq4LmC4LiXCivguYDguKrguJkKK+C5gOC4quC5ieC4mQor4LmA4Liq4LiZ4LiHCivguYDguKrguJnguYjguIcKK+C5gOC4quC4meC5iOC4q+C5jAor4LmA4Liq4LiZ4LmI4Lir4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LiC4Liy4LinCivguYDguKrguJnguYjguKvguYzguIjguLHguJnguJfguKPguYzguYHguJTguIcKK+C5gOC4quC4meC4q+C4sgor4LmA4Liq4LiZ4LmI4Lir4LiyCivguYDguKrguJnguK0KK+C5gOC4quC4meC4sAor4LmA4Liq4LiZ4LiyCivguYDguKrguJnguYjguLIKK+C5gOC4quC4meC4suC4geC4uOC4jgor4LmA4Liq4LiZ4Liy4LiH4LiE4LmMCivguYDguKrguJnguLLguIfguITguJnguLTguIHguKMKK+C5gOC4quC4meC4suC4meC4tQor4LmA4Liq4LiZ4Liy4Liq4LiZ4LiwCivguYDguKrguJnguLLguLAKK+C5gOC4quC4meC4tQor4LmA4Liq4LiZ4Li14Lii4LmMCivguYDguKrguJnguLXguKLguJQKK+C5gOC4quC4meC4teC4ouC4sAor4LmA4Liq4Lia4LiiCivguYDguKrguJrguLXguKLguIcKK+C5gOC4quC4ngor4LmA4Liq4Lie4Lii4LmMCivguYDguKrguYDguJ7guKUKK+C5gOC4quC4oOC4sgor4LmA4Liq4Lih4LmH4LiUCivguYDguKrguKHguK0KK+C5gOC4quC4oeC4sgor4LmA4Liq4Lih4Li14Lii4LiZCivguYDguKrguKHguLfguK3guJkKK+C5gOC4quC4ogor4LmA4Liq4Lij4LmH4LiICivguYDguKrguKPguLTguJQKK+C5gOC4quC4o+C4tOC4oQor4LmA4Liq4Lij4Li1CivguYDguKrguKXguJQKK+C5gOC4quC4peC4lOC4nuC4seC4h+C4nuC4reC4mQor4LmA4Liq4Lil4LiyCivguYDguKrguKXguLXguYjguKLguIcKK+C5gOC4quC4peC4t+C4reC4geC4quC4peC4mQor4LmA4Liq4LmC4LilCivguYDguKrguKfguIEKK+C5gOC4quC4p+C4geC4suC4oeC4suC4leC4ouC5jAor4LmA4Liq4Lin4LiZ4LiwCivguYDguKrguKfguJnguLIKK+C5gOC4quC4p+C4ogor4LmA4Liq4Lin4Lii4Lie4Lij4Liw4LiK4Liy4LiV4Li0CivguYDguKrguKfguLXguKLguJkKK+C5gOC4quC4quC4o+C4p+C4hwor4LmA4Liq4Liq4Lij4Lin4LilCivguYDguKrguLIKK+C5gOC4quC5ieC4sgor4LmA4Liq4Liy4Lij4LmMCivguYDguKrguLLguKPguKDguKLguYwKK+C5gOC4quC4suC4o+C4tQor4LmA4Liq4Liy4Lin4LiT4Li04LiVCivguYDguKrguLLguKfguJnguLAKK+C5gOC4quC4suC4p+C4meC4sgor4LmA4Liq4Liy4Lin4LiZ4Liy4LiB4Liy4LijCivguYDguKrguLLguKfguJnguLXguKLguYwKK+C5gOC4quC4suC4q+C4pOC4lwor4LmA4Liq4Liy4LiwCivguYDguKrguLLguLDguYHguKrguLAKK+C5gOC4quC4tOC4o+C5jOC4iAor4LmA4Liq4Li04Lij4LmM4LifCivguYDguKrguLXguKIKK+C5gOC4quC4teC5iOC4ogor4LmA4Liq4Li14Lii4LiHCivguYDguKrguLXguYjguKLguIcKK+C5gOC4quC4teC4ouC4lAor4LmA4Liq4Li14LmJ4Lii4LiZCivguYDguKrguLXguKLguJoKK+C5gOC4quC4teC4ouC4oQor4LmA4Liq4Li14LmI4Lii4LihCivguYDguKrguLXguYnguKLguKEKK+C5gOC4quC4teC4ouC4pwor4LmA4Liq4Li14LmI4Lii4LinCivguYDguKrguLXguYnguKLguKcKK+C5gOC4quC4t+C4rQor4LmA4Liq4Li34LmI4LitCivguYDguKrguLfguYnguK0KK+C5gOC4quC4t+C4reC4gQor4LmA4Liq4Li34LmI4Lit4LihCivguYHguKoKK+C5geC4quC5iAor4LmB4Liq4LmJCivguYHguKrguIEKK+C5geC4quC4hwor4LmB4Liq4LiUCivguYHguKrguJTguIcKK+C5geC4quC4leC4oeC4m+C5jAor4LmB4Liq4LiZCivguYHguKrguJnguIcKK+C5geC4quC4meC4ouC5jAor4LmB4Liq4LiZ4LmA4Liq4LiZ4Liy4LiwCivguYHguKrguJoKK+C5geC4quC4muC4gQor4LmB4Liq4LihCivguYHguKrguKLguIEKK+C5geC4quC4ouC4hwor4LmB4Liq4Lii4LiwCivguYHguKrguKPguIEKK+C5geC4quC4o+C5ieC4hwor4LmB4Liq4Lil4LiHCivguYHguKrguKXguIfguYPguIgKK+C5geC4quC4peC4h+C5gOC4muC4t+C5iOC4rQor4LmB4Liq4Lin4LiHCivguYHguKrguK3guIEKK+C5geC4quC4sAor4LmC4Liq4LiBCivguYLguKrguIHguYLguJTguIEKK+C5guC4quC4geC4seC4meC4leC5jAor4LmC4Liq4LiB4Liy4LiU4Liy4LiZ4LiyCivguYLguKrguYLguITguKPguIEKK+C5guC4quC4kwor4LmC4Liq4LiT4LiR4LmMCivguYLguKrguJPguLQKK+C5guC4quC4k+C4tQor4LmC4Liq4LiUCivguYLguKrguJTguIEKK+C5guC4quC4lOC4oQor4LmC4Liq4LiU4LiyCivguYLguKrguJUKK+C5guC4quC4leC4luC4tAor4LmC4Liq4LiX4LiBCivguYLguKrguJfguKMKK+C5guC4quC4mOC4gQor4LmC4Liq4LiY4LiZ4LiwCivguYLguKrguJkKK+C5guC4quC4m+C4suC4mQor4LmC4Liq4Lig4LiTCivguYLguKrguKDguLIKK+C5guC4quC4oOC4tOC4k+C4tQor4LmC4Liq4Lig4Li1CivguYLguKrguYDguKDguJPguLUKK+C5guC4quC4oQor4LmC4Liq4Lih4LiZ4Lix4LiqCivguYLguKrguKHguKEKK+C5guC4quC4oeC4ouC5jAor4LmC4Liq4Lih4Liq4LmI4Lit4LiH4LmB4Liq4LiHCivguYLguKrguKPguYjguIcKK+C5guC4quC4o+C4iAor4LmC4Liq4Lij4Lix4LiI4LiI4LiwCivguYLguKrguKfguKPguKPguJMKK+C5guC4quC4q+C4uOC5ieC4ogor4LmC4Liq4Lis4LiqCivguYPguKoKK+C5g+C4quC5iAor4LmE4LiqCivguYTguKrguYkKK+C5hOC4quC4ogor4LmE4Liq4Lii4LiyCivguYTguKrguKPguYkKK+C5hOC4quC4pwor4LmE4Liq4LmJ4Lir4Li54LmJCivguKsKK+C4q+C4gQor4Lir4LiB4Lia4LiXCivguKvguIHguYLguKXguYgKK+C4q+C4hwor4Lir4LiH4LiBCivguKvguIfguKrguYwKK+C4q+C4h+C4quC5jOC4l+C4reC4hwor4Lir4LiH4Liq4LmM4Lir4Lii4LiBCivguKvguIfguK0KK+C4q+C4h+C4reC4gQor4Lir4LiH4LmI4Lit4LiHCivguKvguIfguK3guIfguYHguKvguIfguIcKK+C4q+C4h+C4reC4lAor4Lir4LiH4Lit4LiU4LmGCivguKvguIfguK3guJkKK+C4q+C4h+C5iOC4reC4oQor4Lir4LiH4Lit4LiiCivguKvguIfguYjguK3guKIKK+C4q+C4h+C4seC4gQor4Lir4LiH4Lix4LiaCivguKvguIfguYjguLLguIcKK+C4q+C4h+C4suC4ogor4Lir4LiH4LmI4Liy4LinCivguKvguIfguLMKK+C4q+C4h+C4tOC4gQor4Lir4LiH4Li04LiHCivguKvguIfguLTguKEKK+C4q+C4h+C4tuC4gQor4Lir4LiH4Li44LiH4Lir4LiH4Li04LiHCivguKvguIfguLjguJTguKvguIfguLTguJQKK+C4q+C4h+C4uOC4mgor4Lir4LiH4Li44Lia4Lir4LiH4Lix4LiaCivguKvguIfguLjguYjguKIKK+C4q+C4jeC5ieC4sgor4Lir4LiN4LmJ4Liy4Lib4Liy4LiB4LiE4Lit4LiBCivguKvguI3guYnguLLguJ3guKPguLHguYjguJkKK+C4q+C4jeC5ieC4suC4ouC4reC4h+C5hOC4nwor4Lir4LiN4LmJ4Liy4Lir4LiZ4Lin4LiU4LmB4Lih4LinCivguKvguI3guLTguIcKK+C4q+C4jeC4tOC4mgor4Lir4LiUCivguKvguJXguLAKK+C4q+C4l+C4seC4ogor4Lir4LiZCivguKvguJnguKfguIEKK+C4q+C4meC5iOC4p+C4hwor4Lir4LiZ4Lin4LiUCivguKvguJnguKfguJTguJnguLLguITguKPguLLguIoKK+C4q+C4meC4p+C4lOC4nuC4o+C4suC4q+C4oeC4k+C5jAor4Lir4LiZ4Lin4LiU4LmB4Lih4LinCivguKvguJnguYjguKfguKIKK+C4q+C4meC5iOC4p+C4ouC4geC4tOC4lQor4Lir4LiZ4LitCivguKvguJnguYjguK0KK+C4q+C4meC4reC4gQor4Lir4LiZ4Lit4LiB4LiK4LmJ4Liy4LiHCivguKvguJnguK3guIcKK+C4q+C4meC4reC4h+C5geC4i+C4hwor4Lir4LiZ4Lit4LiZCivguKvguJnguK3guJnguJXguLLguJnguKvguKLguLLguIEKK+C4q+C4meC5iOC4reC4ogor4Lir4LiZ4LmH4Lit4Lii4LmB4LiZ4LmICivguKvguJnguLAKK+C4q+C4meC4seC4gQor4Lir4LiZ4Lix4LiHCivguKvguJnguLHguIfguIHguKXguLLguIfguKfguLHguJkKK+C4q+C4meC4seC4h+C4quC4t+C4rQor4Lir4LiZ4Lix4LmI4LiZCivguKvguJnguLHguJoKK+C4q+C4meC4sgor4Lir4LiZ4LmJ4LiyCivguKvguJnguLLguIHguLLguKrguKPguLUKK+C4q+C4meC5iOC4suC4hwor4Lir4LiZ4Liy4LiUCivguKvguJnguLLguJkKK+C4q+C4meC4suC4oQor4Lir4LiZ4LmI4Liy4LiiCivguKvguJnguLLguKcKK+C4q+C4meC4swor4Lir4LiZ4Liz4LmA4Lil4Li14LmJ4Lii4LiaCivguKvguJnguLUKK+C4q+C4meC4teC5iQor4Lir4LiZ4Li14LiaCivguKvguJnguLXguYDguKrguLfguK0KK+C4q+C4meC4tuC4gQor4Lir4LiZ4Li24LmI4LiHCivguKvguJnguLbguJoKK+C4q+C4meC4t+C4lAor4Lir4LiZ4Li4CivguKvguJnguLjguIfguKvguJnguLTguIcKK+C4q+C4meC4uOC4mQor4Lir4LiZ4Li44LiaCivguKvguJnguLjguYjguKEKK+C4q+C4meC4uOC5iOC4ogor4Lir4LiZ4Li5CivguKvguYjguKEKK+C4q+C4oeC4gQor4Lir4Lih4LiUCivguKvguKHguYjguJkKK+C4q+C4oeC4p+C4gQor4Lir4Lih4Lin4LiUCivguKvguKHguK0KK+C4q+C4oeC5iOC4rQor4Lir4Lih4LmJ4LitCivguKvguKHguK3guIEKK+C4q+C4oeC4reC4hwor4Lir4Lih4LmI4Lit4LiHCivguKvguKHguK3guJkKK+C4q+C4oeC5iOC4reC4mQor4Lir4Lih4Lit4LiaCivguKvguKHguYjguK3guKEKK+C4q+C4oeC4reC4ogor4Lir4Lih4Lix4LiBCivguKvguKHguLHguJQKK+C4q+C4oeC4seC4mQor4Lir4Lih4Lix4LmI4LiZCivguKvguKHguLHguYnguJkKK+C4q+C4oeC4seC5iOC4meC5hOC4quC5iQor4Lir4Lih4Lix4LiaCivguKvguKHguLIKK+C4q+C4oeC5iOC4sgor4Lir4Lih4LmJ4LiyCivguKvguKHguLLguIEKK+C4q+C4oeC4suC4hwor4Lir4Lih4Liy4LiI4LmI4LitCivguKvguKHguLLguJQKK+C4q+C4oeC4suC4leC5i+C4sgor4Lir4Lih4Liy4Lih4Li44LmI4LiiCivguKvguKHguLLguKHguLjguYnguKIKK+C4q+C4oeC4suC5hOC4oeC5iQor4Lir4Lih4Liy4LiiCivguKvguKHguYnguLLguKIKK+C4q+C4oeC4suC4o+C5iOC4sgor4Lir4Lih4LmI4LizCivguKvguKHguLTguYjguJkKK+C4q+C4oeC4tQor4Lir4Lih4Li14LmICivguKvguKHguLXguYDguKvguKHguYfguJkKK+C4q+C4oeC4tuC4gQor4Lir4Lih4Li34LiZCivguKvguKHguLfguYjguJkKK+C4q+C4oeC4uOC4lAor4Lir4Lih4Li44LiZCivguKvguKHguLjguJoKK+C4q+C4oeC4uOC5iOC4ogor4Lir4Lih4Li44Lii4LiC4Liy4LinCivguKvguKHguLkKK+C4q+C4oeC4ueC5iAor4Lir4Lih4Li54Liq4Lix4LiHCivguKvguKHguLnguKrguLUKK+C4q+C4ouC4gQor4Lir4Lii4LmI4LiHCivguKvguKLguJQKK+C4q+C4ouC4p+C4gQor4Lir4Lii4Lin4LiZCivguKvguKLguKfguJnguYLguKXguYkKK+C4q+C4ouC4p+C4mgor4Lir4Lii4Lit4LiBCivguKvguKLguYfguK3guIHguKvguKLguYfguK3guKIKK+C4q+C4ouC4reC4hwor4Lir4Lii4LmI4Lit4LiHCivguKvguKLguYfguK3guIfguYHguKvguKLguYfguIcKK+C4q+C4ouC4reC4lAor4Lir4Lii4Lit4LiZCivguKvguKLguYjguK3guJkKK+C4q+C4ouC5iOC4reC4oQor4Lir4Lii4Lit4Lih4LmB4Lir4Lii4LihCivguKvguKLguK3guKIKK+C4q+C4ouC5iOC4reC4ogor4Lir4Lii4Lix4LiBCivguKvguKLguLHguIHguYDguKvguKLguLIKK+C4q+C4ouC4seC4hwor4Lir4Lii4Lix4LmI4LiHCivguKvguKLguLHguIfguKvguKLguLHguIcKK+C4q+C4ouC4seC4lAor4Lir4Lii4Lix4LiZCivguKvguKLguLHguJoKK+C4q+C4ouC4seC5iOC4p+C5gOC4oeC4t+C4reC4hwor4Lir4Lii4LmI4LiyCivguKvguKLguLLguIHguYDguKLguLfguYjguK0KK+C4q+C4ouC4suC4geC5hOC4ouC5iAor4Lir4Lii4LmI4Liy4LiH4LiE4LmJ4LizCivguKvguKLguLLguJQKK+C4q+C4ouC4suC4mgor4Lir4Lii4Liy4LihCivguKvguKLguLLguKcKK+C4q+C4ouC5ieC4suC4pwor4Lir4Lii4Liz4LiJ4LmI4LiyCivguKvguKLguLPguYDguJsKK+C4q+C4ouC4s+C5geC4q+C4ouC4reC4sAor4Lir4Lii4Liz4LmB4Lir4Lii4LiwCivguKvguKLguLTguIEKK+C4q+C4ouC4tOC5iOC4hwor4Lir4Lii4Li04LiaCivguKvguKLguLTguKEKK+C4q+C4ouC4tQor4Lir4Lii4Li14LmICivguKvguKLguLgKK+C4q+C4ouC4uOC4geC4q+C4ouC4tOC4gQor4Lir4Lii4Li44LiUCivguKvguKLguLjguYjguJkKK+C4q+C4ouC4uOC4muC5hgor4Lir4Lii4Li44Lih4Lir4Lii4Li04LihCivguKvguKLguLnguIHguKLguLIKK+C4q+C4owor4Lir4Lij4LiE4Li44LiTCivguKvguKPguJTguLLguKUKK+C4q+C4o+C4lOC4tQor4Lir4Lij4LiaCivguKvguKPguKPguKkKK+C4q+C4o+C4o+C4qeC4sgor4Lir4Lij4LitCivguKvguKPguK3guIEKK+C4q+C4o+C5h+C4reC4oeC5geC4q+C4o+C5h+C4oQor4Lir4Lij4Lit4Lii4LmGCivguKvguKPguLAKK+C4q+C4o+C4seC4muC5hgor4Lir4Lij4LiyCivguKvguKPguLQKK+C4q+C4o+C4tOC5iOC4hwor4Lir4Lij4Li04LiT4LiwCivguKvguKPguLTguJPguLHguIfguITguYwKK+C4q+C4o+C4tOC4lQor4Lir4Lij4Li04LiV4LiB4Li1CivguKvguKPguLXguYgKK+C4q+C4o+C4teC4lAor4Lir4Lij4Li14LiV4LiB4Li1CivguKvguKPguLfguK0KK+C4q+C4o+C4uOC5iOC4mQor4Lir4Lij4Li44Lia4LmGCivguKvguKPguLjguJrguKPguLnguYgKK+C4q+C4o+C4uOC4muC4q+C4o+C4ueC5iAor4Lir4Lij4Li44LmI4LihCivguKvguKPguLkKK+C4q+C4o+C4ueC4q+C4o+C4sgor4Lir4Lik4LiX4LiiCivguKvguKTguJfguKLguYwKK+C4q+C4pOC4l+C4seC4ogor4Lir4Lik4Lip4LiO4LmMCivguKvguKTguKnguI7guLUKK+C4q+C4pOC4q+C4o+C4o+C4qeC5jAor4Lir4Lik4LmC4Lir4LiUCivguKvguKUKK+C4q+C4peC4hwor4Lir4Lil4LiUCivguKvguKXguJkKK+C4q+C4peC5iOC4mQor4Lir4Lil4LiaCivguKvguKXguYjguKEKK+C4q+C4peC4p+C4hwor4Lir4Lil4Lin4LihCivguKvguKXguK0KK+C4q+C4peC5iOC4rQor4Lir4Lil4Lit4LiBCivguKvguKXguK3guJQKK+C4q+C4peC4reC4mQor4Lir4Lil4LmH4Lit4LiZCivguKvguKXguYjguK3guJkKK+C4q+C4peC5h+C4reC4meC5hgor4Lir4Lil4Lit4LihCivguKvguKXguLAKK+C4q+C4peC4sOC4q+C4peC4p+C4oQor4Lir4Lil4Lix4LiBCivguKvguKXguLHguIcKK+C4q+C4peC4seC5iOC4hwor4Lir4Lil4Lix4LiU4LmGCivguKvguKXguLHguYjguJkKK+C4q+C4peC4seC4mgor4Lir4Lil4Lix4LinCivguKvguKXguLIKK+C4q+C4peC5ieC4sgor4Lir4Lil4Liy4LiBCivguKvguKXguLLguJcKK+C4q+C4peC4suC4l+C4p+C4lAor4Lir4Lil4Liy4LiZCivguKvguKXguLLguJoKK+C4q+C4peC4suC4oQor4Lir4Lil4Liy4LiiCivguKvguKXguLLguKcKK+C4q+C4peC4suC4q+C4pQor4Lir4Lil4Li04LiBCivguKvguKXguLTguYjguIcKK+C4q+C4peC4tOC4lwor4Lir4Lil4Li04LiZCivguKvguKXguLTguKEKK+C4q+C4peC4tOC4pwor4Lir4Lil4Li04LmI4LinCivguKvguKXguLUKK+C4q+C4peC4teC4gQor4Lir4Lil4Li14LmC4LiBCivguKvguKXguLXguJoKK+C4q+C4peC4teC4ruC4t+C5ieC4rQor4Lir4Lil4Li34LiaCivguKvguKXguLjguIHguKvguKXguLTguIEKK+C4q+C4peC4uOC4lAor4Lir4Lil4Li44LiZ4LmGCivguKvguKXguLjguJoKK+C4q+C4peC4uOC4oQor4Lir4Lil4Li44Lih4Lie4LitCivguKvguKXguLjguKHguJ7guLUKK+C4q+C4peC4ueC5iAor4Lir4Lin4LiHCivguKvguYjguKfguIcKK+C4q+C5ieC4p+C4hwor4Lir4Lin4LiUCivguKvguKfguJkKK+C4q+C5ieC4p+C4mQor4Lir4Lin4LiZ4LiE4Liz4LiZ4Li24LiHCivguKvguKfguKIKK+C4q+C5iOC4p+C4ogor4Lir4LmJ4Lin4LiiCivguKvguKfguK0KK+C4q+C4p+C4reC4lAor4Lir4Lin4LmH4Lit4Lii4LmGCivguKvguKfguLAKK+C4q+C4p+C4seC4hwor4Lir4Lin4Lix4LiUCivguKvguKfguLHguYjguJkKK+C4q+C4p+C4seC4meC4ouC4tOC4q+C4p+C4sgor4Lir4Lin4Lix4LinCivguKvguKfguLHguKfguKPguYjguK0KK+C4q+C4p+C4seC4p+C5gOC4o+C4suC4sAor4Lir4Lin4LiyCivguKvguKfguYjguLIKK+C4q+C4p+C5ieC4sgor4Lir4Lin4Liy4LiBCivguKvguKfguYjguLLguIcKK+C4q+C4p+C4suC4lAor4Lir4Lin4Liy4LiZCivguKvguKfguYjguLLguJkKK+C4q+C4p+C4suC4oQor4Lir4Lin4Liy4LiiCivguKvguKfguLMKK+C4q+C4p+C4tOC4lAor4Lir4Lin4Li04LinCivguKvguKfguLUKK+C4q+C4p+C4teC5iAor4Lir4Lin4Li14LiUCivguKvguKfguLfguK0KK+C4q+C4p+C4uOC4lOC4q+C4p+C4tOC4lAor4Lir4Lin4Li44LihCivguKvguKfguLnguJQKK+C4q+C4rQor4Lir4LmI4LitCivguKvguYnguK0KK+C4q+C4reC4gQor4Lir4Lit4LiHCivguKvguYnguK3guIcKK+C4q+C4reC4mQor4Lir4LmI4Lit4LiZCivguKvguK3guJoKK+C4q+C4reC4oQor4Lir4LmJ4Lit4LihCivguKvguK3guKEw77+9CivguYDguKvguKHguLHguJnguJXguYwKK+C5gOC4q+C4oeC4sgor4LmA4Lir4Lih4Liy4Lii4Lix4LiZCivguYDguKvguKHguLLguLAKK+C5gOC4q+C4oeC4teC4ouC4pwor4LmA4Lir4Lih4Li14LmI4Lii4LinCivguYDguKvguKHguLfguK3guIcKK+C5gOC4q+C4oeC4t+C4reC4lAor4LmA4Lir4Lih4Li34Lit4LiU4LiE4LiZCivguYDguKvguKHguLfguK3guJTguYLguKXguJQKK+C5gOC4q+C4oeC4t+C4reC4mQor4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguYDguKvguKHguLfguYjguK3guKLguYYKK+C5gOC4q+C4ogor4LmA4Lir4Lii4LiHCivguYDguKvguKLguYjguK3guKIKK+C5gOC4q+C4ouC4sgor4LmA4Lir4Lii4LmI4LiyCivguYDguKvguKLguYnguLIKK+C5gOC4q+C4ouC5iOC4suC5hgor4LmA4Lir4Lii4Liy4LiwCivguYDguKvguKLguLLguLDguYYKK+C5gOC4q+C4ouC4suC4sOC4ouC5iOC4suC4hwor4LmA4Lir4Lii4Liy4Liw4LmB4Lir4Lii4LiwCivguYDguKvguKLguLTguIcKK+C5gOC4q+C4ouC4tOC4muC5hgor4LmA4Lir4Lii4Li14Lii4LiUCivguYDguKvguKLguLXguKLguJoKK+C5gOC4q+C4ouC4teC5iOC4ouC4pwor4LmA4Lir4Lii4Li34LmI4LitCivguYDguKvguKLguLfguK3guIEKK+C5gOC4q+C4o+C4seC4jeC4jeC4tOC4gQor4LmA4Lir4Lij4LiyCivguYDguKvguKPguLLguLDguYYKK+C5gOC4q+C4o+C4teC4ouC4jQor4LmA4Lir4Lil4LmICivguYDguKvguKXguYfguIEKK+C5gOC4q+C4peC4mQor4LmA4Lir4Lil4LinCivguYDguKvguKXguK0KK+C5gOC4q+C4peC4sgor4LmA4Lir4Lil4LmI4LiyCivguYDguKvguKXguYnguLIKK+C5gOC4q+C4peC4suC4iuC4sOC5guC4reC4mQor4LmA4Lir4Lil4Liy4Lir4Lil4LiBCivguYDguKvguKXguLLguYDguKvguKLguYgKK+C5gOC4q+C4peC4suC4sOC5geC4q+C4peC4sAor4LmA4Lir4Lil4Li04LiHCivguYDguKvguKXguLTguIfguYDguIjguLTguYnguIcKK+C5gOC4q+C4peC4teC4ouC4mQor4LmA4Lir4Lil4Li14LmI4Lii4LihCivguYDguKvguKXguLXguKLguKcKK+C5gOC4q+C4peC4t+C4rQor4LmA4Lir4Lil4Li34Lit4LiBCivguYDguKvguKXguLfguK3guIcKK+C5gOC4q+C4peC4t+C4reC4mgor4LmA4Lir4Lil4Li34Lit4LihCivguYDguKvguKXguLfguYjguK3guKEKK+C5gOC4q+C4pwor4LmA4Lir4Lin4LmICivguYDguKvguKfguIcKK+C5gOC4q+C4p+C4ogor4LmA4Lir4Lin4Lit4LiwCivguYDguKvguKfguK3guLDguKvguKfguLAKK+C5gOC4q+C4p+C4teC5iOC4ouC4hwor4LmA4Lir4LmI4LitCivguYDguKvguK3guLAKK+C5gOC4q+C4sAor4LmA4Lir4Liw4Lir4LiwCivguYDguKvguLIKK+C5gOC4q+C5iOC4sgor4LmA4Lir4Liy4LiwCivguYDguKvguLTguJkKK+C5gOC4q+C4tOC4oQor4LmA4Lir4Li14LmJ4LiiCivguYDguKvguLXguKLguIcKK+C5gOC4q+C4teC4ouC4mQor4LmA4Lir4Li14LmJ4Lii4LiZCivguYDguKvguLXguYnguKLguKEKK+C5gOC4q+C4teC5iOC4ouC4pwor4LmA4Lir4Li34LmI4LitCivguYDguKvguLfguK3guJQKK+C5geC4qwor4LmB4Lir4LmICivguYHguKvguYkKK+C5geC4q+C4gQor4LmB4Lir4LiHCivguYHguKvguIfguYgKK+C5geC4q+C5iOC4hwor4LmB4Lir4LmJ4LiHCivguYHguKvguIfguYfguIEKK+C5geC4q+C4h+C5geC4geC5iwor4LmB4Lir4LiH4LmI4LiHCivguYHguKvguIfguJkKK+C5geC4q+C4mQor4LmB4Lir4LmJ4LiZCivguYHguKvguJnguIcKK+C5geC4q+C4meC4mgor4LmB4Lir4LiZ4LihCivguYHguKvguJoKK+C5geC4q+C4oQor4LmB4Lir4Lih4LmICivguYHguKvguKHguYjguKEKK+C5geC4q+C4oeC4sAor4LmB4Lir4LiiCivguYHguKvguKLguYgKK+C5geC4q+C4ouC4hwor4LmB4Lir4Lii4LmI4LiHCivguYHguKvguKLguKEKK+C5geC4q+C4ouC4sAor4LmB4Lir4Lii4Liw4LmGCivguYHguKvguKUKK+C5geC4q+C4peC5iAor4LmB4Lir4Lil4LiBCivguYHguKvguKXguYjguIcKK+C5geC4q+C4peC4mQor4LmB4Lir4Lil4LihCivguYHguKvguKXguLAKK+C5geC4q+C4pwor4LmB4Lir4LmJ4LinCivguYHguKvguKfguIEKK+C5geC4q+C4p+C5iOC4hwor4LmB4Lir4Lin4LiUCivguYHguKvguKfguJkKK+C5geC4q+C4p+C4sAor4LmB4Lir4LiwCivguYHguKvguLDguYYKK+C5guC4q+C5iAor4LmC4Lir4LiBCivguYLguKvguIcKK+C5guC4q+C4lAor4LmC4Lir4LiZCivguYLguKvguJnguIEKK+C5guC4q+C4meC5iOC4hwor4LmC4Lir4LihCivguYLguKvguKHguYgKK+C5guC4q+C4oeC4geC4o+C4o+C4oQor4LmC4Lir4Lih4LiB4Li54LiT4LiR4LmMCivguYLguKvguKHguYjguIcKK+C5guC4q+C4oeC4lAor4LmC4Lir4LiiCivguYLguKvguKLguIHguYDguKvguKLguIEKK+C5guC4q+C4ouC4hwor4LmC4Lir4Lii4LmI4LiHCivguYLguKvguKMKK+C5guC4q+C4o+C4hwor4LmC4Lir4Lij4LiH4LmA4Lir4Lij4LiHCivguYLguKvguKPguJTguLLguIjguLLguKPguKLguYwKK+C5guC4q+C4o+C4sOC4nuC4sgor4LmC4Lir4LilCivguYLguKvguKXguYgKK+C5guC4q+C4peC4h+C5guC4iOC5ieC4hwor4LmC4Lir4LinCivguYLguKvguKfguYgKK+C5guC4q+C4p+C5iQor4LmC4Lir4Lin4LiB4LmA4Lir4Lin4LiBCivguYLguKvguKfguIcKK+C5guC4q+C4p+C4lAor4LmC4Lir4Lin4LiVCivguYPguKvguYkKK+C5g+C4q+C4jeC5iAor4LmD4Lir4Lih4LmICivguYTguKsKK+C5hOC4q+C5iAor4LmE4Lir4LmJCivguYTguKvguJkKK+C5hOC4q+C4oQor4LmE4Lir4Lih4LmJCivguYTguKvguKPguJMKK+C5hOC4q+C4pQor4LmE4Lir4Lil4LmICivguYTguKvguKcKK+C5hOC4q+C4p+C5iQor4LmE4Lir4Lin4LmGCivguYTguKvguKvguKXguLMKK+C4rQor4Lit4LiBCivguK3guIHguJXguLHguI3guI3guLjguJXguLIKK+C4reC4geC4leC4seC4jeC4jeC4uQor4Lit4LiB4LiZ4Li04Lip4LiQ4LmMCivguK3guIHguKPguJPguLXguKLguYwKK+C4reC4geC4o+C4o+C4oeC4geC4o+C4tOC4ouC4sgor4Lit4LiB4Lix4Lib4Lib4Li04Lii4LiwCivguK3guIHguLLguKXguIjguLXguKfguKMKK+C4reC4geC4suC4peC4tOC5guC4gQor4Lit4LiB4Li04Lij4Li04Lii4LiX4Li04LiQ4Li0CivguK3guIHguLjguKjguKUKK+C4reC4hOC4leC4tAor4Lit4LiE4LmA4LiZ4Liq4Lix4LiZCivguK3guITguLLguJgKK+C4reC4hgor4Lit4LiHCivguK3guIfguIHguYwKK+C4reC4h+C4hOC5jAor4Lit4LiH4LiE4Lih4LiZ4LiV4Lij4Li1CivguK3guIfguITguKHguKPguKPguKkKK+C4reC4h+C4hOC4uOC4pQor4Lit4LiH4LiE4Li44Lil4Li1CivguK3guIfguKjguYwKK+C4reC4h+C4qOC4sgor4Lit4LiH4Lit4Liy4LiICivguK3guIfguLjguYjguJkKK+C4reC4iOC4owor4Lit4LiI4Lil4LiyCivguK3guIjguLTguJXguJXguLQKK+C4reC4iOC4tOC4meC4leC4sgor4Lit4LiI4Li04LiZ4LmE4LiV4LiiCivguK3guIjguLTguKPguLAKK+C4reC5gOC4iOC4peC4gQor4Lit4LmA4LiI4Lil4LiwCivguK3guIoKK+C4reC4iuC4tOC4mQor4Lit4LiK4Li04LiZ4Li1CivguK3guIrguLTguKMKK+C4reC4iuC4teC4p+C4p+C4tOC4l+C4ogor4Lit4LiP4Lin4Li1CivguK3guJPguLQKK+C4reC4k+C4uAor4Lit4LiT4Li5CivguK3guYLguJPguJfguLHguKIKK+C4reC4lAor4Lit4LiU4Li0CivguK3guJTguLTguJbguLUKK+C4reC4lOC4tOC5gOC4l+C4ngor4Lit4LiU4Li04LmA4Lij4LiBCivguK3guJTguLTguKjguKMKK+C4reC4lOC4tOC4qOC4p+C4owor4Lit4LiU4Li04Lio4Lix4LiiCivguK3guJTguLXguJUKK+C4reC4lOC4uOC4pQor4Lit4LiU4Li44Lil4Lii4LmMCivguK3guJXguLQKK+C4reC4leC4tOC4iuC4suC4lQor4Lit4LiV4Li04LiV4Lix4LiT4Lir4LiyCivguK3guJXguLTguJbguLTguJ7guKXguLUKK+C4reC4leC4tOC5gOC4l+C4ngor4Lit4LiV4Li04Lij4Liy4LiKCivguK3guJXguLTguYDguKPguIEKK+C4reC4leC4tOC4quC4suC4owor4Lit4LiV4Li04Liy4Lih4LiZ4LiwCivguK3guJXguLXguJXguLHguIfguKrguI3guLLguJMKK+C4reC4luC4o+C4o+C4nuC5gOC4p+C4lwor4Lit4LiX4Li04LiV4Li0CivguK3guJfguLTguJnguJnguLLguJfguLLguJkKK+C4reC4l+C4tOC4meC4meC4suC4l+C4suC4ouC4tQor4Lit4LiY4Lij4Lij4LihCivguK3guJjguLQKK+C4reC4mOC4tOC4geC4o+C4k+C5jAor4Lit4LiY4Li04LiB4Liy4LijCivguK3guJjguLTguITguKEKK+C4reC4mOC4tOC4iOC4tOC4lQor4Lit4LiY4Li04LiP4LiQ4Liy4LiZCivguK3guJjguLTguJrguJTguLUKK+C4reC4mOC4tOC4muC4suC4ogor4Lit4LiY4Li04LibCivguK3guJjguLTguKHguLLguJXguKMKK+C4reC4mOC4tOC4oeC4uOC4leC4leC4tAor4Lit4LiY4Li04LmC4Lih4LiB4LiC4LmMCivguK3guJjguLTguKPguLLguIoKK+C4reC4mOC4tOC4p+C4suC4qgor4Lit4LiY4Li04Lin4Liy4Liq4LiZ4LiwCivguK3guJjguLTguKjguLXguKUKK+C4reC4mOC4tOC4qeC4kOC4suC4mQor4Lit4LiY4Li24LiBCivguK3guYnguJkKK+C4reC4meC4h+C4hOC5jAor4Lit4LiZ4LiH4LiE4LiT4LiwCivguK3guJnguJjguLTguKfguKMKK+C4reC4meC4meC4leC5jAor4Lit4LiZ4Lig4Li04Lij4LiV4Li0CivguK3guJnguKLguLAKK+C4reC4meC4o+C4o+C4hgor4Lit4LiZ4Lij4Lij4LiWCivguK3guJnguKPguLTguKLguJvguKPguLTguYDguKLguKrguJnguLIKK+C4reC4meC4pQor4Lit4LiZ4Lin4Lix4LiKCivguK3guYnguJnguK3guYnguK0KK+C4reC4meC4seC4jQor4Lit4LiZ4Lix4LiV4LiV4Lil4Lix4LiB4Lip4LiT4LiwCivguK3guJnguLHguJXguJXguLIKK+C4reC4meC4seC4meC4leC5jAor4Lit4LiZ4Lix4LihCivguK3guJnguLLguITguJUKK+C4reC4meC4suC4hOC4suC4oeC4tQor4Lit4LiZ4Liy4LiE4Liy4Lij4Li04LiBCivguK3guJnguLLguITguLLguKPguLTguKLguYDguJ7guKgKK+C4reC4meC4suC4iOC4suC4owor4Lit4LiZ4Liy4LiWCivguK3guJnguLLguJbguLIKK+C4reC4meC4suC4l+C4owor4Lit4LiZ4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguK3guJnguLLguKHguLHguKIKK+C4reC4meC4suC4o+C4ouC4sAor4Lit4LiZ4Liy4Lil4Lix4LiiCivguK3guJnguLLguKfguKPguJPguI3guLLguJMKK+C4reC4meC4swor4Lit4LiZ4Li04LiICivguK3guJnguLTguIjguIjguLHguIcKK+C4reC4meC4tOC4iOC4iOC4sgor4Lit4LiZ4Li04LiP4LiQ4Liy4Lij4Lih4LiT4LmMCivguK3guJnguLTguKLguJUKK+C4reC4meC4tOC4ouC4oQor4Lit4LiZ4Li04LilCivguK3guJnguLTguKfguKPguKPguJUKK+C4reC4meC4tOC4p+C4o+C4o+C4leC4meC5jAor4Lit4LiZ4Li04Lip4LiP4LmMCivguK3guJnguLXguIHguLAKK+C4reC4meC4teC4iAor4Lit4LiZ4Li24LiBCivguK3guJnguLbguYjguIcKK+C4reC4meC4uAor4Lit4LiZ4Li44LiB4LijCivguK3guJnguLjguIHguKPguKEKK+C4reC4meC4uOC4geC4o+C4o+C4oeC4geC4suC4owor4Lit4LiZ4Li44LiB4Lij4Liw4LmA4Lia4Li14Lii4LiUCivguK3guJnguLjguIHguLLguIrguLLguJQKK+C4reC4meC4uOC4geC4suC4owor4Lit4LiZ4Li44LiB4Li54LilCivguK3guJnguLjguITguLLguKHguLTguIEKK+C4reC4meC4uOC4hOC4suC4oeC4tQor4Lit4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguK3guJnguLjguIjguKMKK+C4reC4meC4uOC4igor4Lit4LiZ4Li44LiK4LiyCivguK3guJnguLjguIrguLLguJUKK+C4reC4meC4uOC4iuC4tOC4lQor4Lit4LiZ4Li44LiN4Liy4LiVCivguK3guJnguLjguI3guLLguYLguJXguJXguLjguKXguLLguIHguLLguKMKK+C4reC4meC4uOC5gOC4luC4o+C4sAor4Lit4LiZ4Li44LiX4Li04LiZCivguK3guJnguLjguJrguJcKK+C4reC4meC4uOC4muC4suC4pQor4Lit4LiZ4Li44Lia4Li44LieCivguK3guJnguLjguJvguKPguLTguI3guI3guLIKK+C4reC4meC4uOC4m+C4quC4seC4oeC4muC4seC4mQor4Lit4LiZ4Li44Lib4Lix4Liq4LiZ4LiyCivguK3guJnguLjguJ7guIfguKjguYwKK+C4reC4meC4uOC4nuC4meC4mOC5jAor4Lit4LiZ4Li44Lie4Lix4LiZ4LiY4LmMCivguK3guJnguLjguYLguJ7guJgKK+C4reC4meC4uOC4oOC4o+C4o+C4ouC4sgor4Lit4LiZ4Li44Lig4Liy4LiECivguK3guJnguLjguKDguLLguKkKK+C4reC4meC4uOC4oeC4seC4leC4tAor4Lit4LiZ4Li44Lih4Liy4LiV4Lij4LiyCivguK3guJnguLjguKHguLLguJkKK+C4reC4meC4uOC4oeC4ueC4pQor4Lit4LiZ4Li44LmC4Lih4LiX4LiZ4LiyCivguK3guJnguLjguYLguKLguIQKK+C4reC4meC4uOC4o+C4seC4geC4qeC5jAor4Lit4LiZ4Li44Lij4Liy4LiKCivguK3guJnguLjguKPguLLguJjguLIKK+C4reC4meC4uOC4o+C4ueC4mwor4Lit4LiZ4Li44LmC4Lil4LihCivguK3guJnguLjguKfguIfguKjguYwKK+C4reC4meC4uOC4p+C4seC4lQor4Lit4LiZ4Li44Lin4Liy4LiVCivguK3guJnguLjguKjguLLguKrguIEKK+C4reC4meC4uOC4qOC4suC4quC4meC5jAor4Lit4LiZ4Li44Lio4Liy4Liq4LiZ4Liy4LiI4Liy4Lij4Lii4LmMCivguK3guJnguLjguKjguLTguKnguI/guYwKK+C4reC4meC4uOC4quC4leC4tAor4Lit4LiZ4Li44Liq4LiZ4LiY4Li0CivguK3guJnguLjguKrguKDguLLguIHguLLguIrguLLguJQKK+C4reC4meC4uOC4quC4owor4Lit4LiZ4Li44Liq4Lij4LiT4LmMCivguK3guJnguLjguKrguLHguI3guI3guLIKK+C4reC4meC4uOC4quC4seC4ogor4Lit4LiZ4Li44Liq4Liy4Lin4Lij4Li14Lii4LmMCivguK3guJnguLjguKrguLLguKrguJnguLUKK+C4reC5gOC4meC4gQor4Lit4LmA4LiZ4LiB4LiE4Li44LiTCivguK3guYDguJnguIHguKfguLTguJgKK+C4reC5gOC4meC4iOC4reC4meC4suC4lgor4Lit4LmA4LiZ4LiN4LiK4Liy4Lig4Li04Liq4Lix4LiH4LiC4Liy4LijCivguK3guYDguJnguKrguJnguLIKK+C4reC5guC4meC4iuC4sgor4Lit4LmC4LiZ4LiU4Liy4LiVCivguK3guJoKK+C4reC4muC5gOC4iuC4ogor4Lit4Lia4Liy4LiiCivguK3guJsKK+C4reC4m+C4geC4suC4owor4Lit4Lib4LiX4Liy4LiZCivguK3guJvguYDguJfguKgKK+C4reC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lib4Lih4LiH4LiE4LilCivguK3guJvguKHguLLguJkKK+C4reC4m+C4ouC4qAor4Lit4Lib4Lij4LiB4LiV4Li0CivguK3guJvguKPguLDguKHguLLguJMKK+C4reC4m+C4o+C4sOC4oeC4suC4lwor4Lit4Lib4Lij4Liw4LmE4Lih4LiiCivguK3guJvguKPguLHguJMKK+C4reC4m+C4o+C4sgor4Lit4Lib4Lij4Liy4LiK4Lix4LiiCivguK3guJvguKPguLLguIrguLTguJUKK+C4reC4m+C4o+C4suC4mAor4Lit4Lib4Lij4Liy4Lib4Lij4LmA4LiI4LiV4LiZ4LiyCivguK3guJvguKPguLLguJvguKPguYDguKfguJfguJnguLXguKLguIHguKPguKPguKEKK+C4reC4m+C4o+C4tOC4oeC4suC4kwor4Lit4Lib4Lij4Li04Lir4Liy4Lij4Li04Lii4LiY4Lij4Lij4LihCivguK3guJvguKXguLHguIHguKnguJPguYwKK+C4reC4m+C5guC4peC4geC4meC5jAor4Lit4Lib4Lin4Liy4LiXCivguK3guJvguKvguLLguKMKK+C4reC4m+C4seC4k+C4k+C4geC4m+C4j+C4tOC4m+C4l+C4sgor4Lit4Lib4Lix4LiX4Lij4LieCivguK3guJvguLLguIjguLLguKLguJnguLAKK+C4reC4m+C4suC4iOC4tQor4Lit4Lib4Liy4LiI4Li14LiZCivguK3guJvguLjguI3guI3guLLguKDguLTguKrguLHguIfguILguLLguKMKK+C4reC5gOC4m+C4q+C4tAor4Lit4Lie4LiI4LiZ4LmMCivguK3guJ7guJ7guLAKK+C4reC4nuC4ouC4ngor4Lit4Lie4Lii4Liy4Lia4Liy4LiX4Lin4Li04LiV4LiBCivguK3guJ7guKUKK+C4reC4nuC4peC4sgor4Lit4Lie4Liy4Lij4LmM4LiV4LmA4Lih4LiZ4LiV4LmMCivguK3guKDguKcKK+C4reC4oOC4seC4ngor4Lit4Lig4Lix4LiiCivguK3guKDguLQKK+C4reC4oOC4tOC4hOC4oQor4Lit4Lig4Li04LiG4Liy4LiVCivguK3guKDguLTguIjguInguLIKK+C4reC4oOC4tOC4iOC4jOC4sgor4Lit4Lig4Li04LiK4LiZCivguK3guKDguLTguIrguLHguKIKK+C4reC4oOC4tOC4iuC4suC4lQor4Lit4Lig4Li04LiK4Li04LiVCivguK3guKDguLTguI3guI3guLIKK+C4reC4oOC4tOC4jeC4jeC4suC4kwor4Lit4Lig4Li04LiQ4Liy4LiZCivguK3guKDguLTguJjguKPguKPguKEKK+C4reC4oOC4tOC4mOC4suC4mQor4Lit4Lig4Li04LmE4LiY4LiiCivguK3guKDguLTguJnguLHguJnguJfguYwKK+C4reC4oOC4tOC4meC4seC4ogor4Lit4Lig4Li04LiZ4Liy4LiXCivguK3guKDguLTguJnguLTguKvguLLguKMKK+C4reC4oOC4tOC5gOC4meC4qeC4geC4o+C4oeC4k+C5jAor4Lit4Lig4Li04Lia4Liy4LilCivguK3guKDguLTguJvguKPguLHguIrguI3guLIKK+C4reC4oOC4tOC4m+C4o+C4suC4ogor4Lit4Lig4Li04Lih4Lir4Liy4Lit4Liz4LiZ4Liy4LiICivguK3guKDguLTguKHguLLguJnguLAKK+C4reC4oOC4tOC4oeC4uOC4ggor4Lit4Lig4Li04Lij4LiU4Li1CivguK3guKDguLTguKPguJXguLQKK+C4reC4oOC4tOC4o+C4oeC4ouC5jAor4Lit4Lig4Li04Lij4Lix4LiB4Lip4LmMCivguK3guKDguLTguKPguLHguJDguKHguJnguJXguKPguLUKK+C4reC4oOC4tOC4o+C4suC4oQor4Lit4Lig4Li04Lij4Li44LiVCivguK3guKDguLTguKPguLjguKEKK+C4reC4oOC4tOC4o+C4ueC4mwor4Lit4Lig4Li04Lil4Lix4LiB4LiC4Li04LiVCivguK3guKDguLTguKXguLLguKoKK+C4reC4oOC4tOC5gOC4peC4m+C4meC5jAor4Lit4Lig4Li04Lin4Lix4LiZ4LiX4LmMCivguK3guKDguLTguKfguLLguJcKK+C4reC4oOC4tOC4p+C4suC4l+C4meC5jAor4Lit4Lig4Li04LmA4Lip4LiBCivguK3guKDguLTguKrguJfguJjguLTguYwKK+C4reC4oOC4tOC4quC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Lih4Lix4LiiCivguK3guKDguLTguKrguLHguIfguILguLLguKMKK+C4reC4oOC4tOC4quC4seC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Li04LiVCivguK3guKDguLnguJUKK+C4reC4oQor4Lit4LmJ4LihCivguK3guKHguJXguLAKK+C4reC4oeC4meC4uOC4qeC4ouC5jAor4Lit4Lih4LijCivguK3guKHguKPguJrguJTguLUKK+C4reC4oeC4o+C4m+C4uOC4o+C4sAor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMCivguK3guKHguKPguKPguLLguIoKK+C4reC4oeC4o+C4quC4leC4o+C4tQor4Lit4Lih4LmA4Lij4LioCivguK3guKHguYDguKPguKjguKfguKMKK+C4reC4oeC4pOC4lQor4Lit4Lih4Lik4LiV4Lii4Li5CivguK3guKHguLHguIjguIjguLAKK+C4reC4oeC4seC4leC4owor4Lit4Lih4Liy4LiV4Lii4LmMCivguK3guKHguLLguKfguKrguLgKK+C4reC4oeC4suC4p+C4suC4quC4tQor4Lit4Lih4Li04LiV4LijCivguK3guYDguKHguKPguLTguIHguLHguJkKK+C4reC4ogor4Lit4Lii4LiZCivguK3guKLguLHguKoKK+C4reC4ouC5iOC4sgor4Lit4Lii4Liy4LiBCivguK3guKLguYjguLLguIcKK+C4reC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4Lit4Lii4Li44LiX4LiY4LmMCivguK3guKLguLnguYgKK+C4reC4owor4Lit4Lij4LiKCivguK3guKPguIrguKMKK+C4reC4o+C4iuC4uOC4mQor4Lit4Lij4LiTCivguK3guKPguJTguLUKK+C4reC4o+C4leC4tAor4Lit4Lij4LmE4LiXCivguK3guKPguJjguLLguJkKK+C4reC4o+C4meC4uOC4igor4Lit4Lij4Lie4Li04LiZ4LiX4LmMCivguK3guKPguJ7guLTguKEKK+C4reC4o+C4o+C4hAor4Lit4Lij4Lij4LiGCivguK3guKPguKPguIbguKLguYwKK+C4reC4o+C4o+C4iOC4meC5jAor4Lit4Lij4Lij4LiT4LieCivguK3guKPguKPguJYKK+C4reC4o+C4o+C4mAor4Lit4Lij4Lij4LiY4Liy4LiH4LiE4LmMCivguK3guKPguKrguLjguKEKK+C4reC4o+C4q+C4sAor4Lit4Lij4Lir4Lix4LiHCivguK3guKPguKvguLHguJUKK+C4reC4o+C4q+C4seC4mQor4Lit4Lij4Lir4Lix4LiZ4LiV4LmMCivguK3guKPguYjguK3guKIKK+C4reC4o+C4seC4jQor4Lit4Lij4Lix4LiZ4LiV4LmMCivguK3guKPguLLguJTguLUKK+C4reC4o+C4suC4leC4tAor4Lit4Lij4LmI4Liy4LihCivguK3guKPguLQKK+C4reC4o+C4tOC4mQor4Lit4Lij4Li04Lii4LiB4LiwCivguK3guKPguLTguKLguLAKK+C4reC4o+C4uAor4Lit4Lij4Li44LiTCivguK3guKPguLjguYjguKEKK+C4reC4o+C4ueC4mwor4Lit4Lil4LiH4LiB4LiVCivguK3guKXguIfguIHguKPguJPguYwKK+C4reC4peC4h+C4geC4suC4owor4Lit4Lil4Lin4LiZCivguK3guKXguYDguKfguIcKK+C4reC4peC4q+C4oeC5iOC4suC4mQor4Lit4Lil4LmI4Lit4LiH4LiJ4LmI4Lit4LiHCivguK3guKXguLHguIHguYDguK3guKXguLfguYjguK0KK+C4reC4peC4seC4iuC4iuC4tQor4Lit4Lil4LmI4Liy4LiH4LiJ4LmI4Liy4LiHCivguK3guKXguLQKK+C4reC4peC4tOC4h+C4hOC5jAor4Lit4Lil4Li24LiH4LiE4LmMCivguK3guKXguLbguYjguIfguInguLbguYjguIcKK+C4reC5guC4peC4q+C4sAor4Lit4Lin4LiBCivguK3guYnguKfguIEKK+C4reC4p+C4geC4suC4qAor4Lit4Lin4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguK3guKfguIjguKMKK+C4reC4p+C4iuC4seC4ogor4Lit4Lin4LiK4Liy4LiVCivguK3guKfguJQKK+C4reC4p+C4leC4suC4owor4Lit4Lin4LiZCivguK3guYnguKfguJkKK+C4reC4p+C4meC4tAor4Lit4Lin4LiaCivguK3guKfguKHguIfguITguKUKK+C4reC4p+C4oeC4reC4swor4Lit4LmJ4Lin4Lih4LmA4Lit4Li14LiiCivguK3guKfguKIKK+C4reC4p+C4ouC4p+C4sAor4Lit4Lin4Lij4Li44LiX4LiY4LmMCivguK3guKfguKPguLjguJjguJfguIEKK+C4reC4p+C4pQor4Lit4Lin4Liq4Liy4LiZCivguK3guKfguKvguLLguKMKK+C4reC4p+C4seC4leC4luC4sgor4Lit4Lin4Lix4Lii4Lin4LiwCivguK3guKfguLHguKrguJTguLIKK+C4reC4p+C4suC4iOC4tQor4Lit4Lin4Li04LiI4Li1CivguK3guKfguLTguIrguIrguLIKK+C4reC4p+C4tOC4jeC4jeC4uQor4Lit4Lin4Li04Lij4Li44LiX4LiY4LmMCivguK3guKfguLTguYLguKPguJjguJnguYwKK+C4reC4p+C4teC4iOC4tAor4Lit4LmA4Lin4LiI4Li1CivguK3guYDguKfguYTguJnguKLguKrguLHguJXguKfguYwKK+C4reC5guC4qOC4gQor4Lit4Liq4LiH4LmE4LiC4LiiCivguK3guKrguJnguLUKK+C4reC4quC4oAor4Lit4Liq4Lih4LiB4Liy4LijCivguK3guKrguKHguKHguLLguJXguKMKK+C4reC4quC4o+C4nuC4tOC4qQor4Lit4Liq4Lix4LiH4LiB4Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKrguLHguIfguILguJXguJjguKPguKPguKEKK+C4reC4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4sAor4Lit4Liq4Lix4LiN4LiN4Li1CivguK3guKrguLHguI3guYHguJTguKvguKfguLIKK+C4reC4quC4seC4leC4luC4nuC4pOC4geC4qeC5jAor4Lit4Liq4Lix4LiV4Lii4LmMCivguK3guKrguLLguJjguKMKK+C4reC4quC4suC4mOC4uAor4Lit4Liq4Liy4Lie4LiV4Li0CivguK3guKrguLQKK+C4reC4quC4tOC4lQor4Lit4Liq4Li14LiV4Lii4Liy4LiZ4Li44Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguK3guKrguLXguJXguLQKK+C4reC4quC4uAor4Lit4Liq4Li44LiI4Li0CivguK3guKrguLjguI3guIHguLHguKXguJvguYwKK+C4reC4quC4uOC4meC4teC4muC4suC4lQor4Lit4Liq4Li44LigCivguK3guKrguLjguKPguLTguJnguJfguKPguYwKK+C4reC4quC4uOC4o+C4tQor4Lit4Liq4Li44LmA4Lij4LiZ4LiX4Lij4LmMCivguK3guKrguLjguYDguKPguKgKK+C4reC4quC4ueC4owor4Lit4LmA4LiqCivguK3guYDguKrguIHguILguLAKK+C4reC5gOC4quC4guC4sAor4Lit4LmA4Liq4Lin4LiZ4LiwCivguK3guYDguKrguKfguJnguLIKK+C4reC4qwor4Lit4Lir4Lix4LiH4LiB4Liy4LijCivguK3guKvguLQKK+C4reC4q+C4tOC4h+C4quC4sgor4Lit4Lir4Li24LiH4Liq4LiyCivguK3guYDguKvguJXguLjguIHguJfguLTguJDguLQKK+C4reC5guC4q+C4quC4tAor4Lit4LitCivguK3guYnguK0KK+C4reC5i+C4rQor4Lit4Lit4LiBCivguK3guK3guIHguIvguLTguYDguIjguJkKK+C4reC4reC4geC4i+C4tOC5gOC4lOC4iuC4seC4mQor4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguK3guYjguK3guIcKK+C4reC5i+C4reC4hwor4Lit4LmJ4Lit4LiH4LmB4Lit4LmJ4LiHCivguK3guK3guYDguIvguLLguLAKK+C4reC4reC4lAor4Lit4LmK4Lit4LiU4LmG4LmB4Lit4LmK4LiU4LmGCivguK3guYrguK3guJTguYHguK3guYrguJQKK+C4reC5iOC4reC4mQor4Lit4LmJ4Lit4LiZCivguK3guK3guJnguIvguYwKK+C4reC4reC4meC4i+C4reC4mQor4Lit4LmI4Lit4LiZ4LiL4Lit4LiZCivguK3guYnguK3guJnguYHguK3guYnguJkKK+C4reC4reC4n+C4n+C4tOC4qAor4Lit4Lit4LihCivguK3guYjguK3guKEKK+C4reC5ieC4reC4oQor4Lit4Lit4Lih4LiE4Lij4Lit4LihCivguK3guK3guKHguIrguK3guKEKK+C4reC4reC4oeC4i+C4reC4oQor4Lit4LmJ4Lit4Lih4LmB4Lit4LmJ4LihCivguK3guYjguK3guKIKK+C4reC5ieC4reC4ogor4Lit4LmL4Lit4LiiCivguK3guYnguK3guKLguKrguYnguK3guKIKK+C4reC5ieC4reC4ouC4reC4tOC5iOC4hwor4Lit4Lit4Lij4LmM4LmB4LiB4LiZCivguK3guK3guKPguYzguYDguJTguLTguKPguYzguJ8KK+C4reC4reC4quC5gOC4oeC4teC4ouC4oQor4Lit4LmJ4Lit4LmB4Lit4LmJCivguK3guYrguLAKK+C4reC4sOC4hOC4o+C5ieC4suC4pwor4Lit4Liw4LmA4LiE4Li34LmJ4LitCivguK3guLDguIjguLXguJkKK+C4reC4sOC5geC4iAor4Lit4Liw4LmA4LiL4LiX4Li04Lil4Li14LiZCivguK3guLDguJTguKPguLfguJnguLLguKXguLTguJkKK+C4reC4sOC4lOC4seC4gQor4Lit4Liw4LiU4Li44LiHCivguK3guLDguJXguK3guKEKK+C4reC4sOC4meC4sAor4Lit4Liw4LiZ4Lix4LmJ4LiZCivguK3guLDguJnguLXguYkKK+C4reC4sOC4oeC4teC4muC4sgor4Lit4Liw4LmA4Lih4Lij4Li04LmA4LiL4Li14Lii4LihCivguK3guLDguKPguYnguLLguK3guKPguYjguLLguKEKK+C4reC4sOC5hOC4owor4Lit4Liw4Lil4Lix4LiH4LiB4Liy4LijCivguK3guLDguKXguLjguYjguKHguK3guKXguYjguKfguKIKK+C4reC4sOC4peC4uOC5ieC4oeC4reC4peC5iOC4p+C4ogor4Lit4Liw4Lil4Li54Lih4Li04LmA4LiZ4Li14Lii4LihCivguK3guLDguKvguKEKK+C4reC4sOC5hOC4q+C4peC5iAor4Lit4Liw4Lit4Li34LmJ4LitCivguK3guLDguYDguK3guLfguYnguK3guKIKK+C4reC4seC4gQor4Lit4Lix4LmJ4LiBCivguK3guLHguYrguIEKK+C4reC4seC5ieC4geC5hgor4Lit4Lix4LmK4LiB4LmGCivguK3guLHguIHguIHguLAKK+C4reC4seC4geC5guC4geC4mOC4sAor4Lit4Lix4LiB4LmC4LiB4Liq4Lin4Lix4LiV4LiW4Li4CivguK3guLHguIHguIIKK+C4reC4seC4geC4guC4o+C4sAor4Lit4Lix4LiB4LiC4Lij4Liy4LiZ4Li44LiB4Lij4Lih4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguK3guLHguIHguILguLLguJkKK+C4reC4seC4geC5guC4ggor4Lit4Lix4LiB4LmC4LiC4Lig4Li04LiT4Li1CivguK3guLHguIHguYLguILguYDguKDguJPguLUKK+C4reC4seC4geC4qeC4owor4Lit4Lix4LiB4Lip4LiwCivguK3guLHguIHguYDguKnguLLguKvguLTguJPguLUKK+C4reC4seC4geC5gOC4quC4mgor4Lit4Lix4LiB4Lit4LmI4Lin4LiZCivguK3guLHguITguITguLAKK+C4reC4seC4hOC4hOC4tAor4Lit4Lix4LiE4LiE4Li1CivguK3guLHguITguJnguLQKK+C4reC4seC4hOC4meC4tQor4Lit4Lix4LiE4LiZ4Li14LiB4Lij4Li14LiR4LiyCivguK3guLHguIcKK+C4reC4seC4h+C4geC5jAor4Lit4Lix4LiH4LiB4LiZ4LiwCivguK3guLHguIfguIHguKTguKkKK+C4reC4seC4h+C4geC4p+C4lAor4Lit4Lix4LiH4LiB4Liw4Lil4Li44LiHCivguK3guLHguIfguIHguLIKK+C4reC4seC4h+C4geC4suC4mgor4Lit4Lix4LiH4LiB4Li44LijCivguK3guLHguIfguIHguLjguKgKK+C4reC4seC4h+C4geC4ueC4owor4Lit4Lix4LiH4LiE4LiT4LiwCivguK3guLHguIfguITguJPguLIKK+C4reC4seC4h+C4hOC4sAor4Lit4Lix4LiH4LiE4Liy4LijCivguK3guLHguIfguITguLLguKoKK+C4reC4seC4h+C4hOC4teC4o+C4qgor4Lit4Lix4LiH4LiE4Li44LiQCivguK3guLHguIfguIbguLLguJUKK+C4reC4seC5ieC4h+C5gOC4m+C4sgor4Lit4Lix4LmJ4LiH4Lih4LmJ4LitCivguK3guLHguYnguIfguKLguLXguYgKK+C4reC4seC5ieC4h+C5guC4peC5iAor4Lit4Lix4LiH4Lio4LiwCivguK3guLHguIfguKjguLgKK+C4reC4seC4h+C4qOC4uOC4gQor4Lit4Lix4LiH4Liq4LiV4Lij4Lit4LihCivguK3guLHguIfguKrguJnguLIKK+C4reC4seC4h+C4quC4sAor4Lit4Lix4LiI4LiB4Lil4Lix4LiaCivguK3guLHguIjguIjguLHguJnguJXguYwKK+C4reC4seC4iOC4iOC4seC4ogor4Lit4Lix4LiI4LiI4Li0CivguK3guLHguIjguIjguLjguJUKK+C4reC4seC4iOC5gOC4iOC4geC4sAor4Lit4Lix4LiI4LiJ4Lij4LiyCivguK3guLHguIjguInguKPguLTguKLguLAKK+C4reC4seC4iOC4meC4sgor4Lit4Lix4LiK4LiM4LiyCivguK3guLHguIrguIzguLLguIjguLLguKMKK+C4reC4seC4iuC4jOC4suC4qOC4seC4ogor4Lit4Lix4LiK4LiM4Liy4Liq4Lix4LiiCivguK3guLHguIrguJrguLLguKUKK+C4reC4seC4jeC4guC4ouC4oQor4Lit4Lix4LiN4LiK4LiZ4LiwCivguK3guLHguI3guIrguKXguLUKK+C4reC4seC4jeC4iuC4seC4mQor4Lit4Lix4LiN4LmA4LiK4Li04LiNCivguK3guLHguI3guI3guLAKK+C4reC4seC4jeC4m+C4o+C4sOC4geC4suC4qAor4Lit4Lix4LiN4Lih4Lix4LiN4LiN4LiwCivguK3guLHguI3guKPguLnguJsKK+C4reC4seC4jwor4Lit4Lix4LiP4LiQCivguK3guLHguI/guJnguLIKK+C4reC4seC4kAor4Lit4Lix4LiQ4Lih4LiwCivguK3guLHguJDguKzguKoKK+C4reC4seC4kOC4tAor4Lit4Lix4LiT4LiR4LiwCivguK3guLHguJPguJPguJ4KK+C4reC4seC4lAor4Lit4Lix4LiU4LmB4LiICivguK3guLHguJXguITguLHguJQKK+C4reC4seC4leC4iOC4o+C4tOC4ouC4sgor4Lit4Lix4LiV4LiV4LiwCivguK3guLHguJXguJXguLIKK+C4reC4seC4leC4luC5jAor4Lit4Lix4LiV4LiW4LiwCivguK3guLHguJXguYLguJnguKHguLHguJXguLQKK+C4reC4seC4leC4o+C4iuC4sAor4Lit4Lix4LiV4Lij4LiyCivguK3guLHguJXguKXguLHguJQKK+C4reC4seC4l+C4l+C4sgor4Lit4Lix4LiX4LiY4LmMCivguK3guLHguJfguJjguLIKK+C4reC4seC4l+C4mOC4suC4mQor4Lit4Lix4LiY4Lii4Liy4LiV4Lih4Lin4Li04LiX4Lii4LiyCivguK3guLHguJjguKLguLLguKIKK+C4reC4seC4mOC4ouC4suC4qOC4seC4ogor4Lit4Lix4LiZCivguK3guLHguYnguJkKK+C4reC4seC5i+C4mQor4Lit4Lix4LiZ4LiU4LiBCivguK3guLHguJnguJTguKMKK+C4reC4seC4meC4lOC4seC4mgor4Lit4Lix4LiZ4LiU4LmK4Liy4LiBCivguK3guLHguJnguYLguJTguYrguIEKK+C4reC4seC4meC4leC4owor4Lit4Lix4LiZ4LiV4Lij4LiY4Liy4LiZCivguK3guLHguJnguJXguKPguLIKK+C4reC4seC4meC4leC4o+C4suC4ogor4Lit4Lix4LiZ4LiV4Li04LiBCivguK3guLHguJnguJXguLTguKHguLAKK+C4reC4seC4meC5gOC4lQor4Lit4Lix4LiZ4LmC4LiVCivguK3guLHguJnguYHguJbguYnguIcKK+C4reC4seC4meC4l+C4uAor4Lit4Lix4LiZ4LmC4LiX4LilCivguK3guLHguJnguJnguLAKK+C4reC4seC4meC4ouC4sAor4Lit4Lix4LiZ4LmC4Lii4LiZ4Lii4LiwCivguK3guLHguJnguKfguLHguKIKK+C4reC4seC4meC5gOC4p+C4qgor4Lit4Lix4LiaCivguK3guLHguJrguJvguLLguIcKK+C4reC4seC4m+C4geC4sAor4Lit4Lix4Lib4LiB4Liy4LijCivguK3guLHguJvguI/guLTguIbguLAKK+C4reC4seC4m+C4j+C4tOC4oOC4suC4hAor4Lit4Lix4Lib4Lib4LiwCivguK3guLHguJvguKDguLLguITguKLguYwKK+C4reC4seC4m+C4oeC4h+C4hOC4pQor4Lit4Lix4Lib4Lii4LioCivguK3guLHguJvguKPguLDguKHguLLguJMKK+C4reC4seC4m+C4o+C4sOC4oeC4suC4lwor4Lit4Lix4Lib4Lij4Liw4LmE4Lih4LiiCivguK3guLHguJvguKPguLLguIrguLHguKIKK+C4reC4seC4m+C4o+C4teC4ouC5jAor4Lit4Lix4Lib4Lil4Lix4LiB4Lip4LiT4LmMCivguK3guLHguJvguKrguKMKK+C4reC4seC4nuC4nuC4uOC4lwor4Lit4Lix4Lie4LmC4Lie4Lir4Liy4Lij4Li04LiBCivguK3guLHguJ7guKDguLHguJnguJTguKMKK+C4reC4seC4nuC4oOC4suC4mQor4Lit4Lix4Lie4Lig4Liy4LiqCivguK3guLHguKEKK+C4reC4seC4oeC4nuC4owor4Lit4Lix4Lih4Lie4LiyCivguK3guLHguKHguJ7guLTguKUKK+C4reC4seC4oeC4nuC4uAor4Lit4Lix4Lii4LiB4LiwCivguK3guLHguKLguIHguLIKK+C4reC4seC4ouC4geC4suC4owor4Lit4Lix4Lii4LiB4Li1CivguK3guLHguKLguKLguLAKK+C4reC4seC4ouC4ouC4suC4oOC4o+C4tOC4ouC4sgor4Lit4Lix4Lii4Lii4Li04LiB4LiyCivguK3guLHguKXguJXguKPguLLguYTguKfguYLguK3guYDguKXguJUKK+C4reC4seC5iOC4pwor4Lit4Lix4LmK4LinCivguK3guLHguKjguIjguKPguKPguKLguYwKK+C4reC4seC4qOC5gOC4iOC4o+C4teC4ouC5jAor4Lit4Lix4Lip4LiO4Lih4LiwCivguK3guLHguKrguJTguIcKK+C4reC4seC4quC4lOC4oQor4Lit4Lix4Liq4LiZ4Li1CivguK3guLHguKrguKHguLTguKHguLLguJnguLAKK+C4reC4seC4quC4quC4sAor4Lit4Lix4Liq4Liq4Lix4LiV4LiW4Lie4Lik4LiB4Lip4LmMCivguK3guLHguKrguKrguLgKK+C4reC4sgor4Lit4LmI4LiyCivguK3guYnguLIKK+C4reC4suC4geC4hwor4Lit4Liy4LiB4LijCivguK3guLLguIHguLHguIfguILguLIKK+C4reC4suC4geC4seC4mwor4Lit4Liy4LiB4Lix4Lih4Lib4LiZ4LiwCivguK3guLLguIHguLHguKHguJvguLAKK+C4reC4suC4geC4suC4owor4Lit4Liy4LiB4Liy4LioCivguK3guLLguIHguLTguI3guIjguLHguI3guI3guLAKK+C4reC4suC4geC4ueC4pQor4Lit4Liy4LmA4LiB4Li14Lii4Lij4LiT4LmMCivguK3guLLguILguKLguLLguJUKK+C4reC4suC4guC4ouC4suC4mQor4Lit4Liy4LiE4LmA4LiZ4Lii4LmMCivguK3guLLguITguKEKK+C4reC4suC4hOC4o+C4q+C4suC4ouC4k+C4tQor4Lit4Liy4LiE4Lix4LiZ4LiV4Li44LiB4LiwCivguK3guLLguITguLLguKMKK+C4reC4suC4huC4suC4lQor4Lit4Liy4LiG4Liy4LiV4LiZ4LiwCivguK3guYjguLLguIcKK+C4reC5ieC4suC4hwor4Lit4Liy4LiH4LiC4LiZ4Liy4LiHCivguK3guYnguLLguIfguKfguYnguLLguIcKK+C4reC4suC4iAor4Lit4Liy4LiI4LihCivguK3guLLguIjguKHguJkKK+C4reC4suC4iOC4suC4lAor4Lit4Liy4LiI4Liy4LijCivguK3guLLguIjguLLguKPguKLguYwKK+C4reC4suC4iOC4tOC4kwor4Lit4Liy4LmA4LiI4Li14Lii4LiZCivguK3guLLguIrguI3guLHguJvguJXguLQKK+C4reC4suC4iuC4jeC4seC4m+C4leC4tOC5jAor4Lit4Liy4LiK4LiN4LiyCivguK3guLLguIrguKfguLAKK+C4reC4suC4iuC4sgor4Lit4Liy4LiK4Liy4LiZCivguK3guLLguIrguLLguJnguLQKK+C4reC4suC4iuC4suC5hOC4meC4ogor4Lit4Liy4LiK4Li14LieCivguK3guLLguIrguLXguKfguIEKK+C4reC4suC4iuC4teC4p+C4meC4sAor4Lit4Liy4LiK4Li14Lin4LiwCivguK3guLLguI3guLIKK+C4reC4suC4j+C4suC4leC4sgor4Lit4Liy4LiT4Lix4LiV4Li0CivguK3guLLguJPguLIKK+C4reC4suC4k+C4suC4m+C4gQor4Lit4Liy4LiT4Liy4Lib4LiZCivguK3guLLguJQKK+C4reC4suC4lOC5hgor4Lit4Liy4LiU4Li44Lil4Lii4LmMCivguK3guLLguJTguLnguKMKK+C4reC4suC4lOC4ueC4peC4ouC5jAor4Lit4Liy4LmA4LiU4LmK4LiwCivguK3guLLguJXguKHguLHguJkKK+C4reC4suC4leC4uOC4owor4Lit4Liy4LiW4Lij4Lij4Lie4LmMCivguK3guLLguJbguKPguKPguJ7guJPguYwKK+C4reC4suC4luC4o+C4o+C4nuC4k+C4sAor4Lit4Liy4LiX4Lih4Liy4LiPCivguK3guLLguJfguKMKK+C4reC4suC4l+C4suC4leC4sgor4Lit4Liy4LiX4Liy4LiZCivguK3guLLguJfguLTguIHguKfguLUKK+C4reC4suC4l+C4tOC4leC4ouC5jAor4Lit4Liy4LiX4Li14LiZ4LieCivguK3guLLguJfguLXguJnguKcKK+C4reC4suC4l+C4tuC4gQor4Lit4Liy4LmA4LiX4LioCivguK3guLLguJjguKPguKPguKEKK+C4reC4suC4mOC4o+C4o+C4oeC5jAor4Lit4Liy4LiY4Lij4Lij4Lih4Li04LiBCivguK3guLLguJjguKPguKPguKHguLbguIEKK+C4reC4suC4mOC4suC4mQor4Lit4Liy4LiY4Liy4LijCivguK3guLLguJkKK+C4reC5iOC4suC4mQor4Lit4Liy4LiZ4LiBCivguK3guLLguJnguJkKK+C4reC4suC4meC4meC4l+C5jAor4Lit4Liy4LiZ4LiwCivguK3guLLguJnguLHguJnguJfguYwKK+C4reC4suC4meC4seC4meC4l+C4meC4sAor4Lit4Liy4LiZ4Lix4LihCivguK3guLLguJnguLMKK+C4reC4suC4meC4tOC4gQor4Lit4Liy4LiZ4Li04Liq4LiH4LiG4LmMCivguK3guLLguJnguLjguKDguLLguJ4KK+C4reC4suC4meC4uOC4oOC4suC4p+C4sAor4Lit4Liy4LiaCivguK3guLLguJrguLHguIcKK+C4reC4suC4muC4seC4leC4tAor4Lit4Liy4Lia4Lix4LiZCivguK3guLLguJrguLkKK+C4reC4suC4m+C4k+C4sAor4Lit4Liy4Lib4LiwCivguK3guLLguJvguLLguJnguLAKK+C4reC4suC5guC4mwor4Lit4Liy4Lie4Lix4LiUCivguK3guLLguJ7guLHguJfguJjguYwKK+C4reC4suC4nuC4seC4meC4mOC5jAor4Lit4Liy4Lie4Lix4LiZ4LiY4LiZ4LiwCivguK3guLLguJ7guLLguJgKK+C4reC4suC4nuC4tOC4pQor4Lit4Liy4LmA4Lie4LioCivguK3guLLguKDguKPguJPguYwKK+C4reC4suC4oOC4seC4ngor4Lit4Liy4Lig4Lix4Liq4Lij4LiwCivguK3guLLguKDguLIKK+C4reC4suC4oOC4suC4qgor4Lit4Liy4LmC4Lig4LiECivguK3guLLguKHguKXguIEKK+C4reC4suC4oeC4seC4ogor4Lit4Liy4Lih4LiyCivguK3guLLguKHguLTguKkKK+C4reC4suC4oeC4tOC4qgor4Lit4Liy4LiiCivguK3guYnguLLguKIKK+C4reC4suC4ouC4lQor4Lit4Liy4Lii4LiV4LiZ4LiwCivguK3guLLguKLguJkKK+C4reC4suC4ouC4seC4lAor4Lit4Liy4Lii4Lix4LiVCivguK3guLLguKLguLHguJkKK+C4reC4suC4ouC4suC4iOC4meC4sAor4Lit4Liy4Lii4Liy4LiZCivguK3guLLguKLguLgKK+C4reC4suC4ouC4uOC4geC4leC4geC4sAor4Lit4Liy4Lii4Li44LiV4LiB4LiwCivguK3guLLguKLguLjguJgKK+C4reC4suC4ouC4uOC4qQor4Lit4Liy4Lij4LmM4LiB4Lit4LiZCivguK3guLLguKPguJTguLUKK+C4reC4suC4o+C5jOC4lQor4Lit4Liy4Lij4LiV4Li0CivguK3guLLguKPguJfguKPguLIKK+C4reC4suC4o+C4muC4tOC4hAor4Lit4Liy4Lij4LmM4LihCivguK3guLLguKPguKHguJPguYwKK+C4reC4suC4o+C4ouC4sAor4Lit4Liy4Lij4LiwCivguK3guLLguKPguLHguIHguILguLIKK+C4reC4suC4o+C4seC4geC4qeC5jAor4Lit4Liy4Lij4Lix4LiNCivguK3guLLguKPguLHguI3guI3guLTguIEKK+C4reC4suC4o+C4seC4k+C4ouC5jAor4Lit4Liy4Lij4Lix4LiT4Lii4LiB4LiwCivguK3guLLguKPguLHguJXguLQKK+C4reC4suC4o+C4seC4oeC4oOC5jAor4Lit4Liy4Lij4Liy4LiY4LiZ4LmMCivguK3guLLguKPguLLguJjguJnguLIKK+C4reC4suC4o+C4suC4oQor4Lit4Liy4Lij4Li1CivguK3guLLguKPguLjguKEKK+C4reC4suC4peC4m+C4meC5jAor4Lit4Liy4Lil4Lib4LiZ4LiwCivguK3guLLguKXguLDguKfguLLguJQKK+C4reC4suC4peC4seC4geC4qeC4k+C5jAor4Lit4Liy4Lil4Lix4LiiCivguK3guLLguKXguLHguKcKK+C4reC4suC4peC4tAor4Lit4Liy4Lil4Li1CivguK3guLLguYLguKXguIEKK+C4reC4suC4pwor4Lit4LmI4Liy4LinCivguK3guYnguLLguKcKK+C4reC4suC4p+C4o+C4k+C5jAor4Lit4Liy4Lin4Lix4LiK4LiZ4Liy4LiB4Liy4LijCivguK3guLLguKfguLLguKoKK+C4reC4suC4p+C4suC4q+C4sAor4Lit4Liy4Lin4Li04LilCivguK3guLLguKfguLjguJUKK+C4reC4suC4p+C4uOC4mAor4Lit4Liy4Lin4Li44LmC4LiqCivguK3guLLguYDguKfguIQKK+C4reC4suC5gOC4p+C4qAor4Lit4Liy4Lio4Lij4LihCivguK3guLLguKjguKPguKHguJrguJcKK+C4reC4suC4qOC5gOC4peC4qeC4sgor4Lit4Liy4Lio4Lix4LiiCivguK3guLLguKjguLgKK+C4reC4suC5gOC4qOC4teC4ouC4owor4Lit4Liy4Lip4Liy4LiSCivguK3guLLguKrguJnguLAKK+C4reC4suC4quC4oOC4tOC4p+C4suC4iOC4sgor4Lit4Liy4Liq4Lii4Liy4LiZ4Li44Liq4Lix4LiiCivguK3guLLguKrguKfguIHguKnguLHguKIKK+C4reC4suC4quC4p+C4geC4tOC5gOC4peC4qgor4Lit4Liy4Liq4Lix4LiNCivguK3guLLguKrguLHguJXguKLguYwKK+C4reC4suC4quC4seC4meC4meC4sAor4Lit4Liy4Liq4LiyCivguK3guLLguKrguLLguKzguKvguYwKK+C4reC4suC4quC4tOC4jeC4iOC5jAor4Lit4Liy4Liq4Li04LiZCivguK3guLLguKrguLnguKMKK+C4reC4suC5gOC4quC4teC5iOC4ogor4Lit4Liy4LmB4Liq4LiwCivguK3guLLguKvguJUKK+C4reC4suC4q+C4leC4tQor4Lit4Liy4Lir4LiZ4Li1CivguK3guLLguKvguJnguLkKK+C4reC4suC4q+C4oQor4Lit4Liy4Lir4Lii4Lix4LiHCivguK3guLLguKvguKLguLHguJkKK+C4reC4suC4q+C4owor4Lit4Liy4Lir4Lij4Lix4LiU4LiB4Lix4LiU4LiV4Li04LiB4LiyCivguK3guLLguKvguKPguLHguJoKK+C4reC4suC4q+C4peC4seC4geC4reC4suC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Liy4Lir4Liy4LijCivguK3guLLguKvguLjguJTguLUKK+C4reC4suC4rOC4q+C4gQor4Lit4Liy4Lis4Liy4Lir4LiZ4LiwCivguK3guLMKK+C4reC5iOC4swor4Lit4Liz4LmB4LiU4LiHCivguK3guLPguJnguJQKK+C4reC4s+C4meC4meC4leC5jAor4Lit4Liz4LiZ4Lij4Lij4LiGCivguK3guLPguJnguKfguKIKK+C4reC4s+C4meC4suC4iAor4Lit4Liz4LiZ4Liy4LiWCivguK3guLPguJnguLTguJAKK+C4reC4s+C4meC4tOC4qeC4kOC5jAor4Lit4Liz4Lib4Lil4Lix4LiHCivguK3guLPguJ7guJkKK+C4reC4s+C4nuC4sOC4meC4swor4Lit4Liz4Lie4Lix4LiZCivguK3guLPguYTguJ4KK+C4reC4s+C5gOC4oOC4rQor4Lit4Liz4LmA4Lig4Lit4LmD4LiICivguK3guLPguKHguKMKK+C4reC4s+C4oeC4pOC4hOC5guC4iuC4hAor4Lit4Liz4Lih4Lik4LiVCivguK3guLPguKHguKvguLTguJUKK+C4reC4s+C4oeC4suC4leC4ouC5jAor4Lit4Liz4Lii4Lin4LiZCivguK3guLPguKPguLjguIcKK+C4reC4s+C4peC4sgor4Lit4Liz4Lit4Lin4LihCivguK3guYnguLPguK3guLbguYnguIcKK+C4reC4tOC4gQor4Lit4Li04LiHCivguK3guLTguIfguITguYwKK+C4reC4tOC4h+C4reC4owor4Lit4Li04LiI4LiJ4LiyCivguK3guLTguInguLHguJkKK+C4reC4tOC4iuC4ouC4sgor4Lit4Li04LiQCivguK3guLTguJMKK+C4reC4tOC4lAor4Lit4Li04LiV4LiW4Li1CivguK3guLTguJXguYDguJfguKPguLXguKLguKEKK+C4reC4tOC4leC5gOC4l+C4reC4o+C5jOC5gOC4muC4teC4ouC4oQor4Lit4Li04LiV4Li04Lir4Liy4LiqCivguK3guLTguJfguJjguLQKK+C4reC4tOC4mOC5guC4peC4gQor4Lit4Li04LiZCivguK3guLTguJnguIvguLnguKXguLTguJkKK+C4reC4tOC4meC5gOC4lOC4teC4ogor4Lit4Li04LiZ4LmA4LiU4Li14Lii4LiZ4LmB4LiU4LiHCivguK3guLTguJnguYDguJTguLXguKLguKEKK+C4reC4tOC4meC4l+C5jAor4Lit4Li04LiZ4LiX4LiC4Li14LilCivguK3guLTguJnguJfguJnguLTguKUKK+C4reC4tOC4meC4l+C4meC4tOC4peC4meC5ieC4swor4Lit4Li04LiZ4LiX4Lic4Lil4Lix4LihCivguK3guLTguJnguJfguKPguYwKK+C4reC4tOC4meC4l+C4o+C4tQor4Lit4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguK3guLTguJnguJfguLXguKfguKMKK+C4reC4tOC4meC4l+C4uAor4Lit4Li04LiZ4LiY4LiZ4LmMCivguK3guLTguJnguJ/guKPguLLguYDguKPguJQKK+C4reC4tOC4meC5geC4peC4sOC4q+C4ouC4seC4hwor4Lit4Li04LiZ4Lin4Lit4Lii4LiL4LmMCivguK3guLTguYjguKEKK+C4reC4tOC4oeC4seC4peC4iuC4seC4mQor4Lit4Li04Lij4Li04LmA4LiU4Li14Lii4LihCivguK3guLTguKPguLTguKLguLIKK+C4reC4tOC4o+C4uOC4nuC5gOC4nuC4lwor4Lit4Li04Lil4Li5CivguK3guLTguYDguKXguYfguIHguJXguKPguK3guJkKK+C4reC4tOC5gOC4peC5h+C4geC4l+C4o+C4reC4meC4tOC4geC4quC5jAor4Lit4Li04LmA4Lil4LmH4LiB4LmC4LiX4LiZCivguK3guLTguKgKK+C4reC4tOC4qOC4owor4Lit4Li04Lio4Lin4LijCivguK3guLTguKnguI/guYwKK+C4reC4tOC4qeC4j+C4tQor4Lit4Li04LiqCivguK3guLTguKrguJXguKPguLUKK+C4reC4tOC4quC4o+C4sAor4Lit4Li04Liq4Lij4Li04Lii4LiwCivguK3guLTguKrguKrguLIKK+C4reC4tOC4quC4seC4leC4o+C4tQor4Lit4Li04Liq4Li0CivguK3guLTguKrguLUKK+C4reC4tOC4q+C4oeC5iOC4suC4oQor4Lit4Li1CivguK3guLXguYgKK+C4reC4teC5iQor4Lit4Li14LmKCivguK3guLXguYsKK+C4reC4teC4gQor4Lit4Li14LiB4LmJ4LitCivguK3guLXguIHguYvguK3guKIKK+C4reC4teC4geC4sgor4Lit4Li14LiB4LmL4LiyCivguK3guLXguYDguIHguYnguIcKK+C4reC4teC5gOC4geC4o+C5h+C4hwor4Lit4Li14LmA4LiB4LmJ4Lit4Li14LiB4Lix4LiHCivguK3guLXguYHguIEKK+C4reC4teC5geC4geC5iAor4Lit4Li14LmB4LiB4LmJCivguK3guLXguYLguIHguYnguIcKK+C4reC4teC5guC4geC5iuC4sAor4Lit4Li14LiE4Lin4LmI4Liz4Lit4Li14Lir4LiH4Liy4LiiCivguK3guLXguIjguLnguYkKK+C4reC4teC4ieC4seC4mQor4Lit4Li14LiJ4Li44Lii4Lit4Li14LmB4LiJ4LiBCivguK3guLXguIrguLjguIEKK+C4reC4teC5iuC4lAor4Lit4Li14LiU4Lit4LiBCivguK3guLXguJTguLPguK3guLXguYHguJTguIcKK+C4reC4teC4leC4seC4pwor4Lit4Li14LiV4Liy4LilCivguK3guLXguYDguJXguYnguK0KK+C4reC4teC5guC4leC5iQor4Lit4Li14LiW4LmI4Liy4LiHCivguK3guLXguJfguLjguIEKK+C4reC4teC4l+C4uOC4mgor4Lit4Li14LmA4LiX4Lit4Lij4LmMCivguK3guLXguJnguLjguIfguJXguLjguIfguJnguLHguIcKK+C4reC4teC4meC4ueC4mQor4Lit4Li14LmC4LiZCivguK3guLXguYLguJnguIfguYLguJXguIfguYDguJnguIcKK+C4reC4teC4muC4tuC5ieC4hwor4Lit4Li14Lib4Li44LiUCivguK3guLXguYDguJvguYfguJQKK+C4reC4teC5gOC4m+C5ieC4sgor4Lit4Li14LmB4Lib4LiwCivguK3guLXguYLguJvguIcKK+C4reC4teC5gOC4nuC4sgor4Lit4Li14Lih4Li5CivguK3guLXguKPguKEKK+C4reC4teC4o+C4uOC5ieC4hwor4Lit4Li14LmB4Lij4LiU4LmB4LiI4LmK4LiU4LmB4LiI4LmLCivguK3guLXguYHguKPguYnguYHguJfguYnguYHguJXguYgKK+C4reC4teC4peC4reC4hwor4Lit4Li14Lil4LmI4Lit4Lii4Lib4LmI4Lit4Lii4LmB4LitCivguK3guLXguKXguLjguYnguKEKK+C4reC4teC4peC4uOC5iOC4ouC4ieC4uOC4ouC5geC4ieC4gQor4Lit4Li14LmA4Lil4Li04LmJ4LiHCivguK3guLXguYHguKXguYjguIcKK+C4reC4teC5guC4peC4hwor4Lit4Li14Lio4Lin4LijCivguK3guLXguKoKK+C4reC4teC4quC5gOC4leC4reC4o+C5jAor4Lit4Li14Liq4LiyCivguK3guLXguKrguLLguJkKK+C4reC4teC4quC4uOC4geC4reC4teC5g+C4qgor4Lit4Li14Lir4LiZ4Lit4LiH4Lit4Li14LmB4Lir4LiZ4LiHCivguK3guLXguKvguKPguK3guJoKK+C4reC4teC4q+C4peC4seC4geC4reC4teC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Li14Lir4Lil4Lix4LiU4LiW4Lix4LiU4LiX4LiyCivguK3guLXguKvguKXguLUKK+C4reC4teC4q+C4peC4uOC4geC4guC4peC4uOC4geC4guC4peC4seC4gQor4Lit4Li14Lir4Lil4Li44LiB4LiC4Lil4Li44LiB4LiC4Lil4Li44LmI4LiiCivguK3guLXguKvguKXguLjguKLguInguLjguKLguYHguInguIEKK+C4reC4teC5gOC4q+C5h+C4mQor4Lit4Li14LmA4Lir4LiZ4LmH4LiaCivguK3guLXguYDguKvguJnguLXguKLguKcKK+C4reC4teC5gOC4q+C4ouC4teC5iOC4ouC4pwor4Lit4Li14LmA4Lir4Lil4Liw4LmA4LiC4Lil4Liw4LiC4Lil4LiwCivguK3guLXguYDguKvguKXguLDguYDguILguLDguILguLAKK+C4reC4teC5guC4q+C4meC5iOC4reC4teC5gOC4q+C4meC5iAor4Lit4Li14LmC4Lir4Lil4LiB4LmC4LiC4Lil4LiB4LmA4LiC4Lil4LiBCivguK3guLXguYHguK3guYjguJkKK+C4reC4tgor4Lit4Li24LiBCivguK3guLbguYrguIEKK+C4reC4tuC4geC4l+C4tuC4gQor4Lit4Li24LiB4Lit4Lix4LiBCivguK3guLbguIcKK+C4reC4tuC5iOC4hwor4Lit4Li24LmJ4LiHCivguK3guLbguJQKK+C4reC4tuC4lOC4leC4sOC4m+C4t+C4rQor4Lit4Li24LmJ4LiU4LiX4Li24LmI4LiUCivguK3guLbguJkKK+C4reC4t+C4lAor4Lit4Li34LmI4LiZCivguK3guLfguYnguJkKK+C4reC4t+C4rQor4Lit4Li34LmJ4LitCivguK3guLgKK+C4reC4uOC4gQor4Lit4Li44LiB4LiB4LiyCivguK3guLjguIHguKTguKnguI/guYwKK+C4reC4uOC4geC4peC4sgor4Lit4Li44LiECivguK3guLjguITguKMKK+C4reC4uOC4hOC4q+C4meC4tOC4oeC4tOC4lQor4Lit4Li44LiE4Lir4LiwCivguK3guLjguYLguIbguKkKK+C4reC4uOC5ieC4hwor4Lit4Li44LiICivguK3guLjguIjguIjguLLguKPguLAKK+C4reC4uOC4iOC4ieC4uAor4Lit4Li44LiI4LmA4LiJ4LiXCivguK3guLjguIjguLLguJQKK+C4reC4uOC4iuC4uAor4Lit4Li44LiN4LiJ4Liy4LiI4Lij4Li04Lii4LiyCivguK3guLjguI/guJDguLLguIHguLLguKMKK+C4reC4uOC4k+C4q+C4sAor4Lit4Li44LiT4Lir4Li04LiqCivguK3guLjguJPguLIKK+C4reC4uOC4lAor4Lit4Li44LiU4LmA4LiV4LiyCivguK3guLjguJTguKEKK+C4reC4uOC4lOC4owor4Lit4Li44LiU4Lir4LiZ4Li44LiZCivguK3guLjguJTguLLguIHguLHguJkKK+C4reC4uOC4leC4lOC4oQor4Lit4Li44LiV4LiU4LijCivguK3guLjguJXguJXguKHguLAKK+C4reC4uOC4leC4muC4pQor4Lit4Li44LiV4Lie4Li04LiUCivguK3guLjguJXguKPguLIKK+C4reC4uOC4leC4o+C4tAor4Lit4Li44LiV4Lil4Li44LiUCivguK3guLjguJXguKrguYjguLLguKvguYwKK+C4reC4uOC4leC4quC4suC4q+C4sAor4Lit4Li44LiV4Li4CivguK3guLjguJfguIEKK+C4reC4uOC4l+C4l+C4suC4oQor4Lit4Li44LiX4LiY4Lij4LiT4LmMCivguK3guLjguJfguJjguLHguIgKK+C4reC4uOC4l+C4ouC4suC4mQor4Lit4Li44LiX4LijCivguK3guLjguJfguKPguLTguKLguLAKK+C4reC4uOC4l+C4peC4uOC4oQor4Lit4Li44LiX4Lix4LiiCivguK3guLjguJfguLLguJkKK+C4reC4uOC4l+C4suC4owor4Lit4Li44LiX4Liy4Lir4Lij4LiT4LmMCivguK3guLjguJfguLTguKgKK+C4reC4uOC4l+C4uOC4oeC4nuC4owor4Lit4Li44LmA4LiX4LioCivguK3guLjguYDguJfguKrguLTguIHguYDguIjguJTguLXguKLguYwKK+C4reC4uOC4mOC4seC4iAor4Lit4Li44LmI4LiZCivguK3guLjguJnguLLguIHguLHguJkKK+C4reC4uOC4mgor4Lit4Li44Lia4LilCivguK3guLjguJrguLAKK+C4reC4uOC4muC5iuC4sAor4Lit4Li44Lia4Lix4LiV4Li0CivguK3guLjguJrguLLguJcKK+C4reC4uOC4muC4suC4l+C4p+C5jAor4Lit4Li44Lia4Liy4LiiCivguK3guLjguJrguLLguKrguIEKK+C4reC4uOC4muC4suC4quC4tOC4geC4sgor4Lit4Li44LmA4Lia4LiB4LiC4LiyCivguK3guLjguYLguJrguKrguJYKK+C4reC4uOC5guC4muC4quC4luC4q+C4seC4leC4luC4tQor4Lit4Li44LibCivguK3guLjguJvguIHguKPguJPguYwKK+C4reC4uOC4m+C4geC4o+C4oQor4Lit4Li44Lib4LiB4Liy4LijCivguK3guLjguJvguIHguLLguKPguLAKK+C4reC4uOC4m+C4geC4suC4qOC4quC4suC4owor4Lit4Li44Lib4LiB4Li04LiT4LiT4LiwCivguK3guLjguJvguIHguLTguYDguKXguKoKK+C4reC4uOC4m+C4huC4suC4leC4geC4geC4o+C4o+C4oQor4Lit4Li44Lib4LiI4Liy4LijCivguK3guLjguJvguJbguLHguKHguKDguYwKK+C4reC4uOC4m+C4luC4seC4oeC4oOC4gQor4Lit4Li44Lib4LiX4LihCivguK3guLjguJvguJfguLnguJUKK+C4reC4uOC4m+C5gOC4l+C4qAor4Lit4Li44Lib4LmA4LiX4LmI4Lir4LmMCivguK3guLjguJvguJjguLQKK+C4reC4uOC4m+C4mOC4tOC4p+C4tOC5gOC4p+C4gQor4Lit4Li44Lib4LiZ4Lix4LiiCivguK3guLjguJvguJnguLLguKLguIEKK+C4reC4uOC4m+C4meC4suC4ouC4mQor4Lit4Li44Lib4LiZ4Li04LiB4LiC4Li04LiVCivguK3guLjguJvguJnguLTguIHguKnguLTguJUKK+C4reC4uOC4m+C4meC4tOC4qeC4seC4lwor4Lit4Li44Lib4LiZ4Li04Liq4Lix4LiiCivguK3guLjguJvguJrguKUKK+C4reC4uOC4m+C4muC4seC4leC4tAor4Lit4Li44Lib4Lia4Liy4LiXCivguK3guLjguJvguJ7guLHguJfguJjguYwKK+C4reC4uOC4m+C4nuC4seC4meC4mOC5jAor4Lit4Li44Lib4Lig4Li04LmA4Lip4LiBCivguK3guLjguJvguYLguKDguIQKK+C4reC4uOC4m+C4oeC4sgor4Lit4Li44Lib4Lih4Liy4LiZCivguK3guLjguJvguKHguLLguK3guLjguJvguYTguKHguKIKK+C4reC4uOC4m+C5hOC4oeC4ogor4Lit4Li44Lib4Lii4Li44Lin4Lij4Liy4LiKCivguK3guLjguJvguYLguKLguIQKK+C4reC4uOC4m+C5guC4ouC4o+C4suC4igor4Lit4Li44Lib4Lij4Liy4LiB4LijCivguK3guLjguJvguKPguLLguITguLIKK+C4reC4uOC4m+C4o+C4suC4igor4Lit4Li44Lib4Lij4Li0CivguK3guLjguJvguYLguKXguIHguJnguYwKK+C4reC4uOC4m+C5guC4peC4geC4q+C5jAor4Lit4Li44Lib4Liq4Lih4Lia4LiXCivguK3guLjguJvguKrguKHguJrguLHguJkKK+C4reC4uOC4m+C4quC4o+C4o+C4hAor4Lit4Li44Lib4Liq4Lix4Lih4Lia4Lix4LiZCivguK3guLjguJvguKrguLHguKHguJvguJfguLIKK+C4reC4uOC4m+C4ruC4suC4lAor4Lit4Li44Lib4Lix4LiK4LiM4Liy4Lii4LmMCivguK3guLjguJvguLHguIrguIzguLLguKLguLAKK+C4reC4uOC4m+C4seC4j+C4kOC4suC4gQor4Lit4Li44Lib4Lix4LiP4LiQ4Liy4LiZ4LiwCivguK3guLjguJvguLHguJfguKfguLAKK+C4reC4uOC4m+C4suC4guC4ouC4suC4mQor4Lit4Li44Lib4Liy4LiY4Lii4Liy4LiiCivguK3guLjguJvguLLguKLguLLguKoKK+C4reC4uOC4m+C4suC4q+C4meC4sgor4Lit4Li44Lig4LmC4LiV4Liq4LiH4LiG4LmMCivguK3guLjguKDguLHguKIKK+C4reC4uOC5ieC4oQor4Lit4Li44Lih4LiH4LiE4LmMCivguK3guLjguKHguKHguLHguJUKK+C4reC4uOC4oeC4sgor4Lit4Li44LmC4Lih4LiH4LiE4LmMCivguK3guLjguKIKK+C4reC4uOC5ieC4ogor4Lit4Li44LmK4LiiCivguK3guLjguKLguKLguLLguJkKK+C4reC4uOC4ouC4ouC4suC4oQor4Lit4Li44Lii4LmC4Lii4LiECivguK3guLjguKPguIQKK+C4reC4uOC4o+C4kwor4Lit4Li44Lij4Lie4Li1CivguK3guLjguKPguKoKK+C4reC4uOC4o+C4sAor4Lit4Li44Lij4Lix4LiH4Lit4Li44LiV4Lix4LiHCivguK3guLjguKPguLHguIjguInguJfguLAKK+C4reC4uOC4o+C4seC4iOC4ieC4seC4lwor4Lit4Li44Lij4LiyCivguK3guLjguKPguLgKK+C4reC4uOC5hOC4owor4Lit4Li44Lil4Lib4LiZ4LiwCivguK3guLjguKXguYLguKXguIgKK+C4reC4uOC4peC5guC4peC4peC4sAor4Lit4Li44Lil4Liy4Lih4LiBCivguK3guLjguKXguLTguJQKK+C4reC4uOC4peC4ueC4gQor4Lit4Li44LmC4Lil4LiBCivguK3guLjguKfguLAKK+C4reC4uOC5geC4p+C5iQor4Lit4Li44Lip4LiT4Li14Lip4LmMCivguK3guLjguKnguKEKK+C4reC4uOC4qeC4oeC4seC4mQor4Lit4Li44Lip4LiyCivguK3guLjguKnguLLguKvguLAKK+C4reC4uOC4quC4oAor4Lit4Li44Liq4Lin4LiwCivguK3guLjguKrguKrguYjguLLguKvguYwKK+C4reC4uOC4quC4quC4suC4q+C4sAor4Lit4Li44Liq4LiyCivguK3guLjguKrguLgKK+C4reC4uOC4quC4uOC4oAor4Lit4Li44Liq4Li44LihCivguK3guLjguKvguKPguLHguJoKK+C4reC4uOC4q+C4peC4mgor4Lit4Li44LmA4Lir4Lih4LmICivguK3guLjguKzguLLguKMKK+C4reC4uQor4Lit4Li54LmICivguK3guLnguYkKK+C4reC4ueC5iwor4Lit4Li54LiQCivguK3guLnguJQKK+C4reC4ueC4oQor4Lit4Li54Lij4Li5CivguK3guLnguYvguK3guLXguYsKK+C5gOC4rQor4LmA4Lit4LmJCivguYDguK3guYnguYbguYHguK3guYjguJkKK+C5gOC4reC4gQor4LmA4Lit4LmK4LiBCivguYDguK3guIHguYDguILguJnguIEKK+C5gOC4reC4geC4iOC4seC4geC4qeC4uAor4LmA4Lit4LiB4LiI4Li04LiVCivguYDguK3guIHguInguLHguJnguJfguYwKK+C5gOC4reC4geC4iuC4mQor4LmA4Lit4LiB4LiL4LmC4LibCivguYDguK3guIHguIvguYDguKPguKLguYwKK+C5gOC4reC4geC5gOC4l+C4qAor4LmA4Lit4LiB4LmC4LiX4LipCivguYDguK3guIHguJnguLHguKIKK+C5gOC4reC4geC4muC4uOC4hOC4hOC4pQor4LmA4Lit4LiB4Lia4Li44Lij4Li44LipCivguYDguK3guIHguJ7guIjguJnguYwKK+C5gOC4reC4geC4nuC4seC4meC4mOC5jAor4LmA4Lit4LiB4Lig4LieCivguYDguK3guIHguKDguKPguLTguKLguLIKK+C5gOC4reC4geC4oOC4seC4geC4lOC4tOC5jAor4LmA4Lit4LiB4Lig4Liy4LiE4Li1CivguYDguK3guIHguKDguLLguJ4KK+C5gOC4reC4geC4oQor4LmA4Lit4LiB4Lih4LiV4Li0CivguYDguK3guIHguKHguLHguKIKK+C5gOC4reC4geC4o+C4o+C4luC4m+C4o+C4sOC5guC4ouC4hAor4LmA4Lit4LiB4Lij4LiqCivguYDguK3guIHguKPguLAKK+C5gOC4reC4geC4o+C4suC4igor4LmA4Lit4LiB4Lil4Lix4LiB4Lip4LiT4LmMCivguYDguK3guIHguKjguIEKK+C5gOC4reC4geC4qgor4LmA4Lit4LiB4Liq4Lih4Lix4LiH4LiE4Li1CivguYDguK3guIHguKrguLLguKMKK+C5gOC4reC4geC4quC4tOC4l+C4mOC4tOC5jAor4LmA4Lit4LiB4Lit4Lix4LiE4Lij4Lij4Liy4LiK4LiX4Li54LiVCivguYDguK3guIHguK3guLgKK+C5gOC4reC4geC4seC4hOC4leC4sgor4LmA4Lit4LiB4Lix4LiH4Liq4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguYDguK3guIHguLHguIfguKrguKfguLLguJfguLUKK+C5gOC4reC4geC4seC4leC4oOC4suC4ngor4LmA4Lit4LiB4LiyCivguYDguK3guYnguIHguLIKK+C5gOC4reC4geC4tOC4geC4sgor4LmA4Lit4LiB4Li14Lig4Li54LiVCivguYDguK3guYDguITguK3guKPguYwKK+C5gOC4reC4hwor4LmA4Lit4LmH4LiHCivguYDguK3guYvguIcKK+C5gOC4reC5gOC4iuC4teC5iOC4ouC4meC5gOC4geC4oeC4quC5jAor4LmA4Lit4LmH4LiUCivguYDguK3guJTguKrguYwKK+C5gOC4reC4leC4l+C4seC4hOC4hOC4sAor4LmA4Lit4LmJ4LmA4LiVCivguYDguK3guJfguLTguKXguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5gOC4reC4mQor4LmA4Lit4LmH4LiZCivguYDguK3guJnguYTguIvguKHguYwKK+C5gOC4reC5h+C4meC4lOC4uQor4LmA4Lit4LiZ4LiX4Lij4Liy4LiZ4LiL4LmMCivguYDguK3guKEKK+C5gOC4reC5h+C4oeC4muC4o+C4tOC5guC4rQor4LmA4Lit4LiiCivguYDguK3guYjguKIKK+C5gOC4reC5iuC4ogor4LmA4Lit4LmL4LiiCivguYDguK3guYDguKLguYjguJnguJXguYwKK+C5gOC4reC4o+C5h+C4lOC4reC4o+C5iOC4reC4ogor4LmA4Lit4Lij4Liy4Lin4Lix4LiTCivguYDguK3guKXguLIKK+C5gOC4reC4peC4suC4rOC4uOC4gQor4LmA4Lit4LinCivguYDguK3guYrguKcKK+C5gOC4reC4p+C4seC4hwor4LmA4Lit4LmJ4Lir4Lih4Li24LiHCivguYDguK3guKvguLTguJvguLHguKrguKrguLTguYLguIEKK+C5gOC4reC4q+C4tOC4oOC4tOC4geC4guC4uOC4reC4uOC4m+C4quC4seC4oeC4m+C4l+C4sgor4LmA4Lit4Lis4LiBCivguYDguK3guKzguLIKK+C5gOC4reC4rQor4LmA4Lit4LmI4LitCivguYDguK3guK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4reC5ieC4reC4o+C4sOC5gOC4q+C4ogor4LmA4Lit4LmJ4Lit4LmA4Lij4LmJ4LitCivguYDguK3guYnguK3guYDguK7guK0KK+C5gOC4reC5ieC5geC4reC5iOC4mQor4LmA4Lit4LmK4LiwCivguYDguK3guLDguYPguIgKK+C5gOC4reC4sOC4reC4sAor4LmA4Lit4LiyCivguYDguK3guYnguLIKK+C5gOC4reC4suC4l+C4suC4owor4LmA4Lit4Liy4LiX4Liy4Lij4Lii4LmMCivguYDguK3guLLguKPguKoKK+C5gOC4reC4suC4rOC4suC4owor4LmA4Lit4Liy4Liw4Lil4Liy4LiiCivguYDguK3guLTguIEKK+C5gOC4reC4tOC5ieC4gQor4LmA4Lit4Li04LiZCivguYDguK3guLTguYnguJkKK+C5gOC4reC4tOC4mgor4LmA4Lit4Li14Lii4LiHCivguYDguK3guLXguYnguKLguIcKK+C5gOC4reC4teC4ouC4lAor4LmA4Lit4Li14LmK4Lii4LiUCivguYDguK3guLXguKLguJkKK+C5gOC4reC4teC5iOC4ouC4mQor4LmA4Lit4Li14LmI4Lii4LihCivguYDguK3guLXguYrguKLguKEKK+C5gOC4reC4teC5ieC4ouC4oeC4iOC4uOC5iuC4mQor4LmA4Lit4Li14LmJ4Lii4Lih4LmA4Lif4Li14LmJ4Lii4LihCivguYDguK3guLXguYjguKLguKcKK+C5gOC4reC4teC5ieC4ouC4pwor4LmA4Lit4Li34LmJ4LitCivguYDguK3guLfguYnguK3guIcKK+C5gOC4reC4t+C5ieC4reC4h+C4iuC4seC4mQor4LmA4Lit4Li34Lit4LiUCivguYDguK3guLfguK3guJkKK+C5gOC4reC4t+C5ieC4reC4mQor4LmA4Lit4Li34Lit4LihCivguYDguK3guLfguYnguK3guKEKK+C5gOC4reC4t+C5iOC4reC4ogor4LmA4Lit4Li34LmJ4Lit4LiiCivguYDguK3guLfguYjguK3guKLguYYKK+C5geC4rQor4LmB4Lit4LmJCivguYHguK3guYsKK+C5geC4reC4gQor4LmB4Lit4LiB4LiX4Li04LmA4LiZ4Li14Lii4LihCivguYHguK3guYjguIcKK+C5geC4reC5ieC4h+C5geC4oeC5ieC4hwor4LmB4Lit4LiUCivguYHguK3guYnguJQKK+C5geC4reC5iuC4lAor4LmB4Lit4LiU4LmGCivguYHguK3guYrguJTguYYKK+C5geC4reC5iOC4mQor4LmB4Lit4LiZ4LiV4Li04LmA4LiI4LiZCivguYHguK3guJnguJXguLTguJrguK3guJTguLUKK+C5geC4reC4meC4leC4tOC4reC4tOC5gOC4peC5h+C4geC4leC4o+C4reC4mQor4LmB4Lit4LmI4LiZ4Lil4LihCivguYHguK3guYLguJnguJQKK+C5geC4reC4mgor4LmB4Lit4LmJ4LihCivguYHguK3guKHguYHguJvguKPguYwKK+C5geC4reC4oeC5gOC4n+C4leC4suC4oeC4teC4mQor4LmB4Lit4Lih4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYHguK3guKHguYLguKHguYDguJnguLXguKIKK+C5geC4reC4o+C5iOC4oQor4LmB4Lit4Lij4LmM4LmC4Liu4Liq4LmA4LiV4LiqCivguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5geC4reC4peC4n+C4sgor4LmB4Lit4LinCivguYHguK3guYjguKcKK+C5geC4reC5ieC4p+C5geC4i+C5iOC4pwor4LmB4Lit4Liq4LiX4Liy4LiX4Li14LiZCivguYHguK3guKrguYTguJ7guKPguLTguJkKK+C5geC4reC4quC4n+C4seC4peC4leC5jAor4LmB4Lit4Lir4LiZ4Lix4LiHCivguYHguK3guK3guKfguKIKK+C5geC4reC4reC4seC4lAor4LmC4LitCivguYLguK3guYgKK+C5guC4reC5iQor4LmC4Lit4LmLCivguYLguK3guIEKK+C5guC4reC5ieC4gQor4LmC4Lit4LmK4LiBCivguYLguK3guIHguLLguKoKK+C5guC4reC4huC4sAor4LmC4Lit4LmI4LiHCivguYLguK3guIfguIHguLLguKMKK+C5guC4reC4h+C5guC4guC4lOC4hwor4LmC4Lit4LiK4LiwCivguYLguK3guIrguLIKK+C5guC4reC5guC4i+C4mQor4LmC4Lit4LiQCivguYLguK3guJQKK+C5guC4reC4lQor4LmC4Lit4LiV4LiV4Lix4Lib4Lib4LiwCivguYLguK3guJfguJnguLAKK+C5guC4reC4mQor4LmC4Lit4LiaCivguYLguK3guJvguJvguLLguJXguLTguIHguLAKK+C5guC4reC5gOC4m+C4gQor4LmC4Lit4Lig4LiyCivguYLguK3guKDguLLguKoKK+C5guC4reC4oQor4LmC4Lit4LiiCivguYLguK3guYrguKIKK+C5guC4reC4o+C4qgor4LmC4Lit4Lil4Liw4Lie4LmI4LitCivguYLguK3guKXguLTguKHguJvguLTguIEKK+C5guC4reC5gOC4peC4teC5ieC4ouC4hwor4LmC4Lit4Lin4Liy4LiXCivguYLguK3guKnguJDguYwKK+C5guC4reC4quC4lgor4LmC4Lit4Liq4Liy4LiZCivguYLguK3guKvguJnguK0KK+C5guC4reC4q+C5jOC4oQor4LmC4Lit4Lir4Lix4LiHCivguYLguK3guKzguLLguKMKK+C5guC4reC5ieC5gOC4reC5iQor4LmC4Lit4LmA4Lit4LiL4Li04LiqCivguYLguK3guYnguYLguK4KK+C5hOC4rQor4LmE4Lit4LmJ4LmA4LiC4LmJCivguYTguK3guYLguIvguYLguJfguJsKK+C5hOC4reC4meC5jOC4quC5hOC4leC5gOC4meC4teC4ouC4oQor4LmE4Lit4Lii4Lij4LiyCivguYTguK3guKLguYDguKPguKgKK+C5hOC4reC4o+C4suC4nuC4lQor4LmE4Lit4Lij4Liy4Lin4Lix4LiTCivguYTguK3guKjguIHguKPguLXguKEKK+C5hOC4reC4qOC4p+C4o+C4o+C4ouC5jAor4LmE4Lit4Lit4Lit4LiZCivguYTguK3guYLguK3guJTguLXguJkKK+C4rgor4Liu4LiB4LmA4LiB4Li14LmJ4Lii4LiZCivguK7guIHguKXguIHguIvguLTguYjguKcKK+C4ruC5ieC4hwor4Liu4LiUCivguK7guKfguIfguIvguLjguYnguKIKK+C4ruC4p+C4mQor4Liu4LmJ4Lin4LiZCivguK7guYnguKfguJnguKvguKHguLkKK+C4ruC4p+C4mgor4Liu4Lin4LiiCivguK7guYjguK0KK+C4ruC5ieC4rQor4Liu4Lit4LiB4LiB4Li14LmJCivguK7guYjguK3guIcKK+C4ruC5iOC4reC4h+C5gOC4leC5iQor4Liu4Lit4LiH4LmA4Liu4LiyCivguK7guK3guJQKK+C4ruC4reC4leC4lOC4reC4gQor4Liu4LmI4Lit4LihCivguK7guYjguK3guKHguJTguIcKK+C4ruC5iOC4reC4oeC5gOC4oeC4t+C4reC4hwor4Liu4LmI4Lit4Lih4Lij4Li04LiZCivguK7guK3guKPguYzguYLguKHguJkKK+C4ruC4reC4peC5geC4peC4meC4lOC5jAor4Liu4Lit4Lil4Lix4LiZ4LiU4LiyCivguK7guLAKK+C4ruC4seC4gQor4Liu4Lix4LiB4LmGCivguK7guLHguIfguYDguKUKK+C4ruC4seC4lOC5gOC4iuC5ieC4ogor4Liu4Lix4LmI4LiZCivguK7guLHguYnguKcKK+C4ruC4sgor4Liu4LmJ4LiyCivguK7guYjguLLguYYKK+C4ruC5iOC4suC4h+C4q+C4peC4p+C4hwor4Liu4Liy4LihCivguK7guLLguKPguLLguITguLXguKPguLUKK+C4ruC4suC5gOC4o+C5h+C4oQor4Liu4Liy4Lir4LmM4LmA4LiZ4Li14Lii4LihCivguK7guLTguYYKK+C4ruC4tOC4iOC5gOC4o+C4suC4sOC4q+C5jAor4Liu4Li04LiZ4LiU4Li5CivguK7guLTguJvguJvguLXguYkKK+C4ruC4tOC4m+C5guC4m+C5guC4m+C5gOC4leC4oeC4seC4qgor4Liu4Li04Liq4LiX4Li14LmA4Lij4Li14LiiCivguK7guLXguYkKK+C4ruC4teC5gOC4peC4teC4ouC4oQor4Liu4Li2CivguK7guLbguIEKK+C4ruC4tuC4lAor4Liu4Li24LihCivguK7guLbguYjguKEKK+C4ruC4tuC4ogor4Liu4Li34LiU4Liu4Liy4LiUCivguK7guLfguK0KK+C4ruC4t+C5iOC4rQor4Liu4Li34LmJ4LitCivguK7guLjguJQKK+C4ruC4uOC4mgor4Liu4Li44Lii4LmA4Lil4Liu4Li44LiiCivguK7guLnguYkKK+C4ruC4ueC4gQor4Liu4Li54LihCivguYDguK4KK+C5gOC4ruC5iQor4LmA4Liu4LiB4LiV4Liy4Lij4LmMCivguYDguK7guIHguYLguJXguIHguKPguLHguKEKK+C5gOC4ruC4geC5guC4leC5gOC4oeC4leC4owor4LmA4Liu4LiB4LmC4LiV4Lil4Li04LiV4LijCivguYDguK7guIcKK+C5gOC4ruC5guC4oeC5guC4geC4peC4muC4tOC4mQor4LmA4Liu4LiiCivguYDguK7guYnguKIKK+C5gOC4ruC5guC4o+C4reC4teC4mQor4LmA4Liu4Lil4Li04LiE4Lit4Lib4LmA4LiV4Lit4Lij4LmMCivguYDguK7guYnguKcKK+C5gOC4ruC4rQor4LmA4Liu4LmJ4LitCivguYDguK7guLTguKPguJXguIvguYwKK+C5gOC4ruC4teC4ogor4LmA4Liu4Li14LmJ4Lii4LiZCivguYDguK7guLXguYnguKLguJoKK+C5gOC4ruC4teC5ieC4ouC4pwor4LmA4Liu4Li34Lit4LiBCivguYDguK7guLfguK3guJkKK+C5geC4rgor4LmB4Liu4LmICivguYHguK7guYjguIHguLbguYrguJkKK+C5geC4ruC4meC4lOC5jOC4muC4reC4pQor4LmB4Liu4Lif4LmA4LiZ4Li14Lii4LihCivguYHguK7guKEKK+C5geC4ruC4oeC5gOC4muC4reC4o+C5jOC5gOC4geC4reC4o+C5jAor4LmB4Liu4LiwCivguYLguK4KK+C5guC4ruC4gQor4LmC4Liu4LmA4LiV4LmH4LilCivguYLguK7guKXguYDguKHguLXguKLguKEKK+C5guC4ruC4sAor4LmE4Liu4LmJCivguYTguK7guYLguIHguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4ruC4lOC5jOC4m+C4suC4o+C5jOC4gQor4LmE4Liu4LiU4Lij4LiyCivguYTguK7guYLguJTguKPguITguLLguKPguYzguJrguK3guJkKK+C5hOC4ruC5guC4lOC4o+C5gOC4iOC4mQor4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LiL4Lix4Lil4LmE4Lif4LiU4LmMCivguYTguK7guYLguJTguKPguYDguIjguJnguYDguJ7guK3guKPguYzguK3guK3guIHguYTguIvguJTguYwKK+C5hOC4ruC5guC4lOC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Liu4LmE4LifCivguYTguK7guYLguKUKK+C5hOC4ruC4ruC4tQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoYWk2LnVjcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aGFpNi51Y3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWFmN2JjMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aGFpNi51Y3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjIwNTI4YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy50eHQKQEAgLTAsMCArMSwxNzkgQEAKKyMgQ29tcG9zaXRpb25FeGNsdXNpb25zLTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTE3LCAxNToyMTowMCBQU1QgW0tXXQorIworIyBUaGlzIGZpbGUgbGlzdHMgdGhlIGNoYXJhY3RlcnMgZnJvbSB0aGUgVUFYICMxNSBDb21wb3NpdGlvbiBFeGNsdXNpb24gVGFibGUuCisjCisjIFRoaXMgZmlsZSBpcyBhIG5vcm1hdGl2ZSBjb250cmlidXRvcnkgZGF0YSBmaWxlIGluIHRoZQorIyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS4KKyMKKyMgQ29weXJpZ2h0IChjKSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLgorIyBGb3IgdGVybXMgb2YgdXNlLCBzZWUgaHR0cDovL3d3dy51bmljb2RlLm9yZy90ZXJtc19vZl91c2UuaHRtbAorIworIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCisjIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvI1ByaW1hcnkgRXhjbHVzaW9uIExpc3QgVGFibGUKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgKDEpIFNjcmlwdCBTcGVjaWZpY3MKKyMgVGhpcyBsaXN0IG9mIGNoYXJhY3RlcnMgY2Fubm90IGJlIGRlcml2ZWQgZnJvbSB0aGUgVW5pY29kZURhdGEgZmlsZS4KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzA5NTggICAgIyAgREVWQU5BR0FSSSBMRVRURVIgUUEKKzA5NTkgICAgIyAgREVWQU5BR0FSSSBMRVRURVIgS0hIQQorMDk1QSAgICAjICBERVZBTkFHQVJJIExFVFRFUiBHSEhBCiswOTVCICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIFpBCiswOTVDICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIEREREhBCiswOTVEICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIFJIQQorMDk1RSAgICAjICBERVZBTkFHQVJJIExFVFRFUiBGQQorMDk1RiAgICAjICBERVZBTkFHQVJJIExFVFRFUiBZWUEKKzA5REMgICAgIyAgQkVOR0FMSSBMRVRURVIgUlJBCiswOUREICAgICMgIEJFTkdBTEkgTEVUVEVSIFJIQQorMDlERiAgICAjICBCRU5HQUxJIExFVFRFUiBZWUEKKzBBMzMgICAgIyAgR1VSTVVLSEkgTEVUVEVSIExMQQorMEEzNiAgICAjICBHVVJNVUtISSBMRVRURVIgU0hBCiswQTU5ICAgICMgIEdVUk1VS0hJIExFVFRFUiBLSEhBCiswQTVBICAgICMgIEdVUk1VS0hJIExFVFRFUiBHSEhBCiswQTVCICAgICMgIEdVUk1VS0hJIExFVFRFUiBaQQorMEE1RSAgICAjICBHVVJNVUtISSBMRVRURVIgRkEKKzBCNUMgICAgIyAgT1JJWUEgTEVUVEVSIFJSQQorMEI1RCAgICAjICBPUklZQSBMRVRURVIgUkhBCiswRjQzICAgICMgIFRJQkVUQU4gTEVUVEVSIEdIQQorMEY0RCAgICAjICBUSUJFVEFOIExFVFRFUiBEREhBCiswRjUyICAgICMgIFRJQkVUQU4gTEVUVEVSIERIQQorMEY1NyAgICAjICBUSUJFVEFOIExFVFRFUiBCSEEKKzBGNUMgICAgIyAgVElCRVRBTiBMRVRURVIgRFpIQQorMEY2OSAgICAjICBUSUJFVEFOIExFVFRFUiBLU1NBCiswRjc2ICAgICMgIFRJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIFIKKzBGNzggICAgIyAgVElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgTAorMEY5MyAgICAjICBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0hBCiswRjlEICAgICMgIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREhBCiswRkEyICAgICMgIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBESEEKKzBGQTcgICAgIyAgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJIQQorMEZBQyAgICAjICBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQQorMEZCOSAgICAjICBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS1NTQQorRkIxRCAgICAjICBIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIEhJUklRCitGQjFGICAgICMgIEhFQlJFVyBMSUdBVFVSRSBZSURESVNIIFlPRCBZT0QgUEFUQUgKK0ZCMkEgICAgIyAgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0hJTiBET1QKK0ZCMkIgICAgIyAgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0lOIERPVAorRkIyQyAgICAjICBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNISU4gRE9UCitGQjJEICAgICMgIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0lOIERPVAorRkIyRSAgICAjICBIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBQQVRBSAorRkIyRiAgICAjICBIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBRQU1BVFMKK0ZCMzAgICAgIyAgSEVCUkVXIExFVFRFUiBBTEVGIFdJVEggTUFQSVEKK0ZCMzEgICAgIyAgSEVCUkVXIExFVFRFUiBCRVQgV0lUSCBEQUdFU0gKK0ZCMzIgICAgIyAgSEVCUkVXIExFVFRFUiBHSU1FTCBXSVRIIERBR0VTSAorRkIzMyAgICAjICBIRUJSRVcgTEVUVEVSIERBTEVUIFdJVEggREFHRVNICitGQjM0ICAgICMgIEhFQlJFVyBMRVRURVIgSEUgV0lUSCBNQVBJUQorRkIzNSAgICAjICBIRUJSRVcgTEVUVEVSIFZBViBXSVRIIERBR0VTSAorRkIzNiAgICAjICBIRUJSRVcgTEVUVEVSIFpBWUlOIFdJVEggREFHRVNICitGQjM4ICAgICMgIEhFQlJFVyBMRVRURVIgVEVUIFdJVEggREFHRVNICitGQjM5ICAgICMgIEhFQlJFVyBMRVRURVIgWU9EIFdJVEggREFHRVNICitGQjNBICAgICMgIEhFQlJFVyBMRVRURVIgRklOQUwgS0FGIFdJVEggREFHRVNICitGQjNCICAgICMgIEhFQlJFVyBMRVRURVIgS0FGIFdJVEggREFHRVNICitGQjNDICAgICMgIEhFQlJFVyBMRVRURVIgTEFNRUQgV0lUSCBEQUdFU0gKK0ZCM0UgICAgIyAgSEVCUkVXIExFVFRFUiBNRU0gV0lUSCBEQUdFU0gKK0ZCNDAgICAgIyAgSEVCUkVXIExFVFRFUiBOVU4gV0lUSCBEQUdFU0gKK0ZCNDEgICAgIyAgSEVCUkVXIExFVFRFUiBTQU1FS0ggV0lUSCBEQUdFU0gKK0ZCNDMgICAgIyAgSEVCUkVXIExFVFRFUiBGSU5BTCBQRSBXSVRIIERBR0VTSAorRkI0NCAgICAjICBIRUJSRVcgTEVUVEVSIFBFIFdJVEggREFHRVNICitGQjQ2ICAgICMgIEhFQlJFVyBMRVRURVIgVFNBREkgV0lUSCBEQUdFU0gKK0ZCNDcgICAgIyAgSEVCUkVXIExFVFRFUiBRT0YgV0lUSCBEQUdFU0gKK0ZCNDggICAgIyAgSEVCUkVXIExFVFRFUiBSRVNIIFdJVEggREFHRVNICitGQjQ5ICAgICMgIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSAorRkI0QSAgICAjICBIRUJSRVcgTEVUVEVSIFRBViBXSVRIIERBR0VTSAorRkI0QiAgICAjICBIRUJSRVcgTEVUVEVSIFZBViBXSVRIIEhPTEFNCitGQjRDICAgICMgIEhFQlJFVyBMRVRURVIgQkVUIFdJVEggUkFGRQorRkI0RCAgICAjICBIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIFJBRkUKK0ZCNEUgICAgIyAgSEVCUkVXIExFVFRFUiBQRSBXSVRIIFJBRkUKKworIyBUb3RhbCBjb2RlIHBvaW50czogNjcKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgKDIpIFBvc3QgQ29tcG9zaXRpb24gVmVyc2lvbiBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzCisjIFRoZXNlIGNoYXJhY3RlcnMgY2Fubm90IGJlIGRlcml2ZWQgc29sZWx5IGZyb20gdGhlIFVuaWNvZGVEYXRhLnR4dCBmaWxlCisjIGluIHRoaXMgdmVyc2lvbiBvZiBVbmljb2RlLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworMkFEQyAgICAjICBGT1JLSU5HCisxRDE1RSAgICMgIE1VU0lDQUwgU1lNQk9MIEhBTEYgTk9URQorMUQxNUYgICAjICBNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIE5PVEUKKzFEMTYwICAgIyAgTVVTSUNBTCBTWU1CT0wgRUlHSFRIIE5PVEUKKzFEMTYxICAgIyAgTVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIE5PVEUKKzFEMTYyICAgIyAgTVVTSUNBTCBTWU1CT0wgVEhJUlRZLVNFQ09ORCBOT1RFCisxRDE2MyAgICMgIE1VU0lDQUwgU1lNQk9MIFNJWFRZLUZPVVJUSCBOT1RFCisxRDE2NCAgICMgIE1VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggTk9URQorMUQxQkIgICAjICBNVVNJQ0FMIFNZTUJPTCBNSU5JTUEKKzFEMUJDICAgIyAgTVVTSUNBTCBTWU1CT0wgTUlOSU1BIEJMQUNLCisxRDFCRCAgICMgIE1VU0lDQUwgU1lNQk9MIFNFTUlNSU5JTUEgV0hJVEUKKzFEMUJFICAgIyAgTVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBCTEFDSworMUQxQkYgICAjICBNVVNJQ0FMIFNZTUJPTCBGVVNBIFdISVRFCisxRDFDMCAgICMgIE1VU0lDQUwgU1lNQk9MIEZVU0EgQkxBQ0sKKworIyBUb3RhbCBjb2RlIHBvaW50czogMTQKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgKDMpIFNpbmdsZXRvbiBEZWNvbXBvc2l0aW9ucworIyBUaGVzZSBjaGFyYWN0ZXJzIGNhbiBiZSBkZXJpdmVkIGZyb20gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyMgYnkgaW5jbHVkaW5nIGFsbCBjaGFyYWN0ZXJzIHdob3NlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uCisjIGNvbnNpc3RzIG9mIGEgc2luZ2xlIGNoYXJhY3Rlci4KKyMgVGhlc2UgY2hhcmFjdGVycyBhcmUgc2ltcGx5IHF1b3RlZCBoZXJlIGZvciByZWZlcmVuY2UuCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIDAzNDAuLjAzNDEgICAgICAgWzJdIENPTUJJTklORyBHUkFWRSBUT05FIE1BUksuLkNPTUJJTklORyBBQ1VURSBUT05FIE1BUksKKyMgMDM0MyAgICAgICAgICAgICAgICAgQ09NQklOSU5HIEdSRUVLIEtPUk9OSVMKKyMgMDM3NCAgICAgICAgICAgICAgICAgR1JFRUsgTlVNRVJBTCBTSUdOCisjIDAzN0UgICAgICAgICAgICAgICAgIEdSRUVLIFFVRVNUSU9OIE1BUksKKyMgMDM4NyAgICAgICAgICAgICAgICAgR1JFRUsgQU5PIFRFTEVJQQorIyAxRjcxICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBCisjIDFGNzMgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorIyAxRjc1ICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQQorIyAxRjc3ICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE9YSUEKKyMgMUY3OSAgICAgICAgICAgICAgICAgR1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBCisjIDFGN0IgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQQorIyAxRjdEICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCisjIDFGQkIgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQQorIyAxRkJFICAgICAgICAgICAgICAgICBHUkVFSyBQUk9TR0VHUkFNTUVOSQorIyAxRkM5ICAgICAgICAgICAgICAgICBHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorIyAxRkNCICAgICAgICAgICAgICAgICBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBPWElBCisjIDFGRDMgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisjIDFGREIgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBPWElBCisjIDFGRTMgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisjIDFGRUIgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBCisjIDFGRUUuLjFGRUYgICAgICAgWzJdIEdSRUVLIERJQUxZVElLQSBBTkQgT1hJQS4uR1JFRUsgVkFSSUEKKyMgMUZGOSAgICAgICAgICAgICAgICAgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUEKKyMgMUZGQiAgICAgICAgICAgICAgICAgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCisjIDFGRkQgICAgICAgICAgICAgICAgIEdSRUVLIE9YSUEKKyMgMjAwMC4uMjAwMSAgICAgICBbMl0gRU4gUVVBRC4uRU0gUVVBRAorIyAyMTI2ICAgICAgICAgICAgICAgICBPSE0gU0lHTgorIyAyMTJBLi4yMTJCICAgICAgIFsyXSBLRUxWSU4gU0lHTi4uQU5HU1RST00gU0lHTgorIyAyMzI5ICAgICAgICAgICAgICAgICBMRUZULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQKKyMgMjMyQSAgICAgICAgICAgICAgICAgUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVAorIyBGOTAwLi5GQTBEICAgICBbMjcwXSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMC4uQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEQKKyMgRkExMCAgICAgICAgICAgICAgICAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTAKKyMgRkExMiAgICAgICAgICAgICAgICAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTIKKyMgRkExNS4uRkExRSAgICAgIFsxMF0gQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTUuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFCisjIEZBMjAgICAgICAgICAgICAgICAgIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIwCisjIEZBMjIgICAgICAgICAgICAgICAgIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIyCisjIEZBMjUuLkZBMjYgICAgICAgWzJdIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI1Li5DSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNgorIyBGQTJBLi5GQTJEICAgICAgIFs0XSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQS4uQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkQKKyMgRkEzMC4uRkE2QSAgICAgIFs1OV0gQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzAuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTZBCisjIEZBNzAuLkZBRDkgICAgIFsxMDZdIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTcwLi5DSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEOQorIyAyRjgwMC4uMkZBMUQgICBbNTQyXSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDAuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExRAorCisjIFRvdGFsIGNvZGUgcG9pbnRzOiA5MjQKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgKDQpIE5vbi1TdGFydGVyIERlY29tcG9zaXRpb25zCisjIFRoZXNlIGNoYXJhY3RlcnMgY2FuIGJlIGRlcml2ZWQgZnJvbSB0aGUgVW5pY29kZURhdGEgZmlsZQorIyBieSBpbmNsdWRpbmcgYWxsIGNoYXJhY3RlcnMgd2hvc2UgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gY29uc2lzdHMKKyMgb2YgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLCB0aGUgZmlyc3Qgb2Ygd2hpY2ggaGFzIGEgbm9uLXplcm8KKyMgY29tYmluaW5nIGNsYXNzLgorIyBUaGVzZSBjaGFyYWN0ZXJzIGFyZSBzaW1wbHkgcXVvdGVkIGhlcmUgZm9yIHJlZmVyZW5jZS4KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgMDM0NCAgICAgICAgICAgICAgICAgQ09NQklOSU5HIEdSRUVLIERJQUxZVElLQSBUT05PUworIyAwRjczICAgICAgICAgICAgICAgICBUSUJFVEFOIFZPV0VMIFNJR04gSUkKKyMgMEY3NSAgICAgICAgICAgICAgICAgVElCRVRBTiBWT1dFTCBTSUdOIFVVCisjIDBGODEgICAgICAgICAgICAgICAgIFRJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJSQorCisjIFRvdGFsIGNvZGUgcG9pbnRzOiA0CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzOTFhY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0CkBAIC0wLDAgKzEsNDggQEAKKyMgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTE3LCAxNToyMTowMCBQU1QgW0tXXQorIworIyBUaGlzIGZpbGUgaXMgYSBub3JtYXRpdmUgY29udHJpYnV0b3J5IGRhdGEgZmlsZSBpbiB0aGUKKyMgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UuCisjCisjIENvcHlyaWdodCAoYykgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4KKyMgRm9yIHRlcm1zIG9mIHVzZSwgc2VlIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdGVybXNfb2ZfdXNlLmh0bWwKKyMKKyMgVGhlIG5vcm1hbGl6YXRpb24gc3RhYmlsaXphdGlvbiBwb2xpY3kgb2YgdGhlIFVuaWNvZGUKKyMgQ29uc29ydGl1bSBvcmRpbmFyaWx5IHByZWNsdWRlcyBhbnkgY2hhbmdlIHRvIHRoZSBkZWNvbXBvc2l0aW9uCisjIGZvciBhbnkgY2hhcmFjdGVyLCBvbmNlIGVzdGFibGlzaGVkIGluIGEgcmVsZXZhbnQgdmVyc2lvbgorIyBvZiB0aGUgVW5pY29kZURhdGEudHh0IGRhdGEgZmlsZS4gSG93ZXZlciwgdW5kZXIgY2VydGFpbgorIyBleGNlcHRpb25hbCAoYW5kIHJhcmUpIGNvbmRpdGlvbnMsIGFuIGVycm9yIGluIGEgZGVjb21wb3NpdGlvbgorIyBtYXBwaW5nIG1heSBiZSBkaXNjb3ZlcmVkIHRoYXQgaXMgdHJ1bHkganVzdCBhbiB1bmludGVuZGVkCisjIHR5cG8gaW4gdGhlIGRhdGEsIGFuZCBub3QgYSBtYXR0ZXIgb2YgZHViaW91cyBpbnRlcnByZXRhdGlvbi4KKyMKKyMgV2hlbmV2ZXIgc3VjaCBhbiBlcnJvciBtYXkgYmUgZm91bmQsIGFuZCBpZiBpdCBtZWV0cyB0aGUKKyMgcmVxdWlyZW1lbnRzIGZvciBwb3NzaWJsZSBleGNlcHRpb25zIHRvIG5vcm1hbGl6YXRpb24KKyMgc3RhYmlsaXR5LCB0aGUgY29ycmVjdGlvbiBpcyBlbnRlcmVkIGluIHRoaXMgZGF0YSBmaWxlLAorIyBzbyB0aGF0IGFueSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRpbmcgb24gYWJzb2x1dGUgc3RhYmlsaXR5CisjIG9mIG5vcm1hbGl6YXRpb24sICppbmNsdWRpbmcqIGFueSBlcnJvcnMgaW4gdGhlIGRhdGEsIGNhbgorIyBzYWZlbHkgcmVjb25zdHJ1Y3QgdGhlIGV4YWN0IHN0YXRlIG9mIHRoZSBkYXRhIHRhYmxlcyBhdAorIyBhbnkgZ2l2ZW4gdmVyc2lvbiBvZiBVbmljb2RlLgorIworIyBDdXJyZW50bHkgdGhpcyBsaXN0IGhhcyBleGFjdGx5IHNpeCBlbnRyaWVzIGluIGl0LCBvbmUgZm9yIHRoZQorIyB0eXBvIGZvdW5kIGFuZCBjb3JyZWN0ZWQgaW4gQ29ycmlnZW5kdW0gIzMsIGFuZCBmaXZlIGZvcgorIyB0aGUgdHlwb3MgYW5kIG1pc2lkZW50aWZpY2F0aW9ucyBmb3VuZCBhbmQgY29ycmVjdGVkIGluIAorIyBDb3JyaWdlbmR1bSAjNC4gQWxsIGVmZm9ydHMKKyMgd2lsbCBiZSBtYWRlIHRvIGtlZXAgdGhlIGVudHJpZXMgbGltaXRlZCB0byBqdXN0IHRob3NlIGZpeGVzLgorIworIyBJbnRlcnByZXRhdGlvbiBvZiB0aGUgZmllbGRzOgorIyAgIEZpZWxkIDE6IFVuaWNvZGUgY29kZSBwb2ludAorIyAgIEZpZWxkIDI6IE9yaWdpbmFsIChlcnJvbmVvdXMpIGRlY29tcG9zaXRpb24KKyMgICBGaWVsZCAzOiBDb3JyZWN0ZWQgZGVjb21wb3NpdGlvbgorIyAgIEZpZWxkIDQ6IFZlcnNpb24gb2YgVW5pY29kZSBmb3Igd2hpY2ggdGhlIGNvcnJlY3Rpb24gd2FzCisjICAgICAgICAgICAgZW50ZXJlZCBpbnRvIFVuaWNvZGVEYXRhLnR4dCwgaW4gbi5uLm4gZm9ybWF0LgorIyAgIENvbW1lbnQ6IEluZGljYXRlcyB0aGUgVW5pY29kZSBDb3JyaWdlbmR1bSB3aGljaCBkb2N1bWVudHMgCisjICAgICAgICAgICAgdGhlIGNvcnJlY3Rpb24KKyMKKyMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzE1LCBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMuCisjCitGOTUxOzk2RkI7OTY0QjszLjIuMCAjIENvcnJpZ2VuZHVtIDMKKzJGODY4OzIxMzZBOzM2RkM7NC4wLjAgIyBDb3JyaWdlbmR1bSA0CisyRjg3NDs1RjMzOzVGNTM7NC4wLjAgIyBDb3JyaWdlbmR1bSA0CisyRjkxRjs0M0FCOzI0M0FCOzQuMC4wICMgQ29ycmlnZW5kdW0gNAorMkY5NUY7N0FBRTs3QUVFOzQuMC4wICMgQ29ycmlnZW5kdW0gNAorMkY5QkY7NEQ1Nzs0NUQ3OzQuMC4wICMgQ29ycmlnZW5kdW0gNApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QtMy4yLjAudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QtMy4yLjAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzODUwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC0zLjIuMC50eHQKQEAgLTAsMCArMSwxNzA0MiBAQAorIyBOb3JtYWxpemF0aW9uVGVzdC0zLjIuMC50eHQKKyMgRGF0ZTogMjAwMi0wMy0xOSwyMzozMToxOCBHTVQgW01EXQorIworIyBOb3RlOiBDb2RlIHBvaW50cyB3aG9zZSBkZWNvbXBvc2l0aW9uIGNoYW5nZWQgc2luY2UgdGhlIFVuaWNvZGUgdmVyc2lvbgorIyBmb3IgdGhpcyBOb3JtYWxpemF0aW9uVGVzdC50eHQgYXJlIGNvbW1lbnRlZCBvdXQgYW5kIGFyZSBvbmx5IHRlc3RlZCB3aXRoCisjIHRoZSBjdXJyZW50IE5vcm1hbGl6YXRpb25UZXN0LnR4dCBpbiBpY3Uvc291cmNlL2RhdGEvdW5pZGF0YS8uCisjIFNlZSBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0CisjIGFuZCBzZWFyY2ggZm9yICJOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMiIGluIHRoaXMgZmlsZS4KKyMgbWFya3VzIDIwMDNtYXIwNQorIworIyBOb3JtYWxpemF0aW9uIFRlc3QgU3VpdGUKKyMgRm9ybWF0OgorIworIyAgIENvbHVtbnMgKGMxLCBjMiwuLi4pIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucworIyAgIENvbW1lbnRzIGFyZSBpbmRpY2F0ZWQgd2l0aCBoYXNoIG1hcmtzCisjCisjIENPTkZPUk1BTkNFOgorIyAxLiBUaGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBiZSB0cnVlIGZvciBhbGwgY29uZm9ybWFudCBpbXBsZW1lbnRhdGlvbnMKKyMKKyMgICAgTkZDCisjICAgICAgYzIgPT0gIE5GQyhjMSkgPT0gIE5GQyhjMikgPT0gIE5GQyhjMykKKyMgICAgICBjNCA9PSAgTkZDKGM0KSA9PSAgTkZDKGM1KQorIworIyAgICBORkQKKyMgICAgICBjMyA9PSAgTkZEKGMxKSA9PSAgTkZEKGMyKSA9PSAgTkZEKGMzKQorIyAgICAgIGM1ID09ICBORkQoYzQpID09ICBORkQoYzUpCisjCisjICAgIE5GS0MKKyMgICAgICBjNCA9PSBORktDKGMxKSA9PSBORktDKGMyKSA9PSBORktDKGMzKSA9PSBORktDKGM0KSA9PSBORktDKGM1KQorIworIyAgICBORktECisjICAgICAgYzUgPT0gTkZLRChjMSkgPT0gTkZLRChjMikgPT0gTkZLRChjMykgPT0gTkZLRChjNCkgPT0gTkZLRChjNSkKKyMKKyMgMi4gRm9yIGV2ZXJ5IGFzc2lnbmVkIFVuaWNvZGUgMy4xLjAgY29kZSBwb2ludCBYIHRoYXQgaXMgbm90IHNwZWNpZmljYWxseQorIyAgICBsaXN0ZWQgaW4gUGFydCAxLCB0aGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBiZSB0cnVlIGZvciBhbGwgY29uZm9ybWFudAorIyAgICBpbXBsZW1lbnRhdGlvbnM6CisjCisjICAgICAgWCA9PSBORkMoWCkgPT0gTkZEKFgpID09IE5GS0MoWCkgPT0gTkZLRChYKQorIworQFBhcnQwICMgU3BlY2lmaWMgY2FzZXMKKyMKKzFFMEE7MUUwQTswMDQ0IDAzMDc7MUUwQTswMDQ0IDAzMDc7CisxRTBDOzFFMEM7MDA0NCAwMzIzOzFFMEM7MDA0NCAwMzIzOworMUUwQSAwMzIzOzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CisxRTBDIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzAwNDQgMDMwNyAwMzIzOzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CiswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMUUwQSAwMzFCOzFFMEEgMDMxQjswMDQ0IDAzMUIgMDMwNzsxRTBBIDAzMUI7MDA0NCAwMzFCIDAzMDc7CisxRTBDIDAzMUI7MUUwQyAwMzFCOzAwNDQgMDMxQiAwMzIzOzFFMEMgMDMxQjswMDQ0IDAzMUIgMDMyMzsKKzFFMEEgMDMxQiAwMzIzOzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzFFMEMgMDMxQiAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzAwNDQgMDMxQiAwMzA3IDAzMjM7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CiswMEM4OzAwQzg7MDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOworMDExMjswMTEyOzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDsKKzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDsKKzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDsKKzFFMTQ7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMDExMiAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzFFMTQgMDMwNDsxRTE0IDAzMDQ7MDA0NSAwMzA0IDAzMDAgMDMwNDsxRTE0IDAzMDQ7MDA0NSAwMzA0IDAzMDAgMDMwNDsKKzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzAwNDUgMDMwMCAwMzA0OzAwQzggMDMwNDswMDQ1IDAzMDAgMDMwNDswMEM4IDAzMDQ7MDA0NSAwMzAwIDAzMDQ7CiswNUI4IDA1QjkgMDVCMSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOworMDU5MiAwNUI3IDA1QkMgMDVBNSAwNUIwIDA1QzAgMDVDNCAwNUFEOzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDsKKyMKK0BQYXJ0MSAjIENoYXJhY3RlciBieSBjaGFyYWN0ZXIgdGVzdAorIyBBbGwgY2hhcmFjdGVycyBub3QgZXhwbGljaXRseSBvY2N1cnJpbmcgaW4gYzEgb2YgUGFydCAxIGhhdmUgaWRlbnRpY2FsIE5GQywgRCwgS0MsIEtEIGZvcm1zLgorIworMDBBMDswMEEwOzAwQTA7MDAyMDswMDIwOworMDBBODswMEE4OzAwQTg7MDAyMCAwMzA4OzAwMjAgMDMwODsKKzAwQUE7MDBBQTswMEFBOzAwNjE7MDA2MTsKKzAwQUY7MDBBRjswMEFGOzAwMjAgMDMwNDswMDIwIDAzMDQ7CiswMEIyOzAwQjI7MDBCMjswMDMyOzAwMzI7CiswMEIzOzAwQjM7MDBCMzswMDMzOzAwMzM7CiswMEI0OzAwQjQ7MDBCNDswMDIwIDAzMDE7MDAyMCAwMzAxOworMDBCNTswMEI1OzAwQjU7MDNCQzswM0JDOworMDBCODswMEI4OzAwQjg7MDAyMCAwMzI3OzAwMjAgMDMyNzsKKzAwQjk7MDBCOTswMEI5OzAwMzE7MDAzMTsKKzAwQkE7MDBCQTswMEJBOzAwNkY7MDA2RjsKKzAwQkM7MDBCQzswMEJDOzAwMzEgMjA0NCAwMDM0OzAwMzEgMjA0NCAwMDM0OworMDBCRDswMEJEOzAwQkQ7MDAzMSAyMDQ0IDAwMzI7MDAzMSAyMDQ0IDAwMzI7CiswMEJFOzAwQkU7MDBCRTswMDMzIDIwNDQgMDAzNDswMDMzIDIwNDQgMDAzNDsKKzAwQzA7MDBDMDswMDQxIDAzMDA7MDBDMDswMDQxIDAzMDA7CiswMEMxOzAwQzE7MDA0MSAwMzAxOzAwQzE7MDA0MSAwMzAxOworMDBDMjswMEMyOzAwNDEgMDMwMjswMEMyOzAwNDEgMDMwMjsKKzAwQzM7MDBDMzswMDQxIDAzMDM7MDBDMzswMDQxIDAzMDM7CiswMEM0OzAwQzQ7MDA0MSAwMzA4OzAwQzQ7MDA0MSAwMzA4OworMDBDNTswMEM1OzAwNDEgMDMwQTswMEM1OzAwNDEgMDMwQTsKKzAwQzc7MDBDNzswMDQzIDAzMjc7MDBDNzswMDQzIDAzMjc7CiswMEM4OzAwQzg7MDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOworMDBDOTswMEM5OzAwNDUgMDMwMTswMEM5OzAwNDUgMDMwMTsKKzAwQ0E7MDBDQTswMDQ1IDAzMDI7MDBDQTswMDQ1IDAzMDI7CiswMENCOzAwQ0I7MDA0NSAwMzA4OzAwQ0I7MDA0NSAwMzA4OworMDBDQzswMENDOzAwNDkgMDMwMDswMENDOzAwNDkgMDMwMDsKKzAwQ0Q7MDBDRDswMDQ5IDAzMDE7MDBDRDswMDQ5IDAzMDE7CiswMENFOzAwQ0U7MDA0OSAwMzAyOzAwQ0U7MDA0OSAwMzAyOworMDBDRjswMENGOzAwNDkgMDMwODswMENGOzAwNDkgMDMwODsKKzAwRDE7MDBEMTswMDRFIDAzMDM7MDBEMTswMDRFIDAzMDM7CiswMEQyOzAwRDI7MDA0RiAwMzAwOzAwRDI7MDA0RiAwMzAwOworMDBEMzswMEQzOzAwNEYgMDMwMTswMEQzOzAwNEYgMDMwMTsKKzAwRDQ7MDBENDswMDRGIDAzMDI7MDBENDswMDRGIDAzMDI7CiswMEQ1OzAwRDU7MDA0RiAwMzAzOzAwRDU7MDA0RiAwMzAzOworMDBENjswMEQ2OzAwNEYgMDMwODswMEQ2OzAwNEYgMDMwODsKKzAwRDk7MDBEOTswMDU1IDAzMDA7MDBEOTswMDU1IDAzMDA7CiswMERBOzAwREE7MDA1NSAwMzAxOzAwREE7MDA1NSAwMzAxOworMDBEQjswMERCOzAwNTUgMDMwMjswMERCOzAwNTUgMDMwMjsKKzAwREM7MDBEQzswMDU1IDAzMDg7MDBEQzswMDU1IDAzMDg7CiswMEREOzAwREQ7MDA1OSAwMzAxOzAwREQ7MDA1OSAwMzAxOworMDBFMDswMEUwOzAwNjEgMDMwMDswMEUwOzAwNjEgMDMwMDsKKzAwRTE7MDBFMTswMDYxIDAzMDE7MDBFMTswMDYxIDAzMDE7CiswMEUyOzAwRTI7MDA2MSAwMzAyOzAwRTI7MDA2MSAwMzAyOworMDBFMzswMEUzOzAwNjEgMDMwMzswMEUzOzAwNjEgMDMwMzsKKzAwRTQ7MDBFNDswMDYxIDAzMDg7MDBFNDswMDYxIDAzMDg7CiswMEU1OzAwRTU7MDA2MSAwMzBBOzAwRTU7MDA2MSAwMzBBOworMDBFNzswMEU3OzAwNjMgMDMyNzswMEU3OzAwNjMgMDMyNzsKKzAwRTg7MDBFODswMDY1IDAzMDA7MDBFODswMDY1IDAzMDA7CiswMEU5OzAwRTk7MDA2NSAwMzAxOzAwRTk7MDA2NSAwMzAxOworMDBFQTswMEVBOzAwNjUgMDMwMjswMEVBOzAwNjUgMDMwMjsKKzAwRUI7MDBFQjswMDY1IDAzMDg7MDBFQjswMDY1IDAzMDg7CiswMEVDOzAwRUM7MDA2OSAwMzAwOzAwRUM7MDA2OSAwMzAwOworMDBFRDswMEVEOzAwNjkgMDMwMTswMEVEOzAwNjkgMDMwMTsKKzAwRUU7MDBFRTswMDY5IDAzMDI7MDBFRTswMDY5IDAzMDI7CiswMEVGOzAwRUY7MDA2OSAwMzA4OzAwRUY7MDA2OSAwMzA4OworMDBGMTswMEYxOzAwNkUgMDMwMzswMEYxOzAwNkUgMDMwMzsKKzAwRjI7MDBGMjswMDZGIDAzMDA7MDBGMjswMDZGIDAzMDA7CiswMEYzOzAwRjM7MDA2RiAwMzAxOzAwRjM7MDA2RiAwMzAxOworMDBGNDswMEY0OzAwNkYgMDMwMjswMEY0OzAwNkYgMDMwMjsKKzAwRjU7MDBGNTswMDZGIDAzMDM7MDBGNTswMDZGIDAzMDM7CiswMEY2OzAwRjY7MDA2RiAwMzA4OzAwRjY7MDA2RiAwMzA4OworMDBGOTswMEY5OzAwNzUgMDMwMDswMEY5OzAwNzUgMDMwMDsKKzAwRkE7MDBGQTswMDc1IDAzMDE7MDBGQTswMDc1IDAzMDE7CiswMEZCOzAwRkI7MDA3NSAwMzAyOzAwRkI7MDA3NSAwMzAyOworMDBGQzswMEZDOzAwNzUgMDMwODswMEZDOzAwNzUgMDMwODsKKzAwRkQ7MDBGRDswMDc5IDAzMDE7MDBGRDswMDc5IDAzMDE7CiswMEZGOzAwRkY7MDA3OSAwMzA4OzAwRkY7MDA3OSAwMzA4OworMDEwMDswMTAwOzAwNDEgMDMwNDswMTAwOzAwNDEgMDMwNDsKKzAxMDE7MDEwMTswMDYxIDAzMDQ7MDEwMTswMDYxIDAzMDQ7CiswMTAyOzAxMDI7MDA0MSAwMzA2OzAxMDI7MDA0MSAwMzA2OworMDEwMzswMTAzOzAwNjEgMDMwNjswMTAzOzAwNjEgMDMwNjsKKzAxMDQ7MDEwNDswMDQxIDAzMjg7MDEwNDswMDQxIDAzMjg7CiswMTA1OzAxMDU7MDA2MSAwMzI4OzAxMDU7MDA2MSAwMzI4OworMDEwNjswMTA2OzAwNDMgMDMwMTswMTA2OzAwNDMgMDMwMTsKKzAxMDc7MDEwNzswMDYzIDAzMDE7MDEwNzswMDYzIDAzMDE7CiswMTA4OzAxMDg7MDA0MyAwMzAyOzAxMDg7MDA0MyAwMzAyOworMDEwOTswMTA5OzAwNjMgMDMwMjswMTA5OzAwNjMgMDMwMjsKKzAxMEE7MDEwQTswMDQzIDAzMDc7MDEwQTswMDQzIDAzMDc7CiswMTBCOzAxMEI7MDA2MyAwMzA3OzAxMEI7MDA2MyAwMzA3OworMDEwQzswMTBDOzAwNDMgMDMwQzswMTBDOzAwNDMgMDMwQzsKKzAxMEQ7MDEwRDswMDYzIDAzMEM7MDEwRDswMDYzIDAzMEM7CiswMTBFOzAxMEU7MDA0NCAwMzBDOzAxMEU7MDA0NCAwMzBDOworMDEwRjswMTBGOzAwNjQgMDMwQzswMTBGOzAwNjQgMDMwQzsKKzAxMTI7MDExMjswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7CiswMTEzOzAxMTM7MDA2NSAwMzA0OzAxMTM7MDA2NSAwMzA0OworMDExNDswMTE0OzAwNDUgMDMwNjswMTE0OzAwNDUgMDMwNjsKKzAxMTU7MDExNTswMDY1IDAzMDY7MDExNTswMDY1IDAzMDY7CiswMTE2OzAxMTY7MDA0NSAwMzA3OzAxMTY7MDA0NSAwMzA3OworMDExNzswMTE3OzAwNjUgMDMwNzswMTE3OzAwNjUgMDMwNzsKKzAxMTg7MDExODswMDQ1IDAzMjg7MDExODswMDQ1IDAzMjg7CiswMTE5OzAxMTk7MDA2NSAwMzI4OzAxMTk7MDA2NSAwMzI4OworMDExQTswMTFBOzAwNDUgMDMwQzswMTFBOzAwNDUgMDMwQzsKKzAxMUI7MDExQjswMDY1IDAzMEM7MDExQjswMDY1IDAzMEM7CiswMTFDOzAxMUM7MDA0NyAwMzAyOzAxMUM7MDA0NyAwMzAyOworMDExRDswMTFEOzAwNjcgMDMwMjswMTFEOzAwNjcgMDMwMjsKKzAxMUU7MDExRTswMDQ3IDAzMDY7MDExRTswMDQ3IDAzMDY7CiswMTFGOzAxMUY7MDA2NyAwMzA2OzAxMUY7MDA2NyAwMzA2OworMDEyMDswMTIwOzAwNDcgMDMwNzswMTIwOzAwNDcgMDMwNzsKKzAxMjE7MDEyMTswMDY3IDAzMDc7MDEyMTswMDY3IDAzMDc7CiswMTIyOzAxMjI7MDA0NyAwMzI3OzAxMjI7MDA0NyAwMzI3OworMDEyMzswMTIzOzAwNjcgMDMyNzswMTIzOzAwNjcgMDMyNzsKKzAxMjQ7MDEyNDswMDQ4IDAzMDI7MDEyNDswMDQ4IDAzMDI7CiswMTI1OzAxMjU7MDA2OCAwMzAyOzAxMjU7MDA2OCAwMzAyOworMDEyODswMTI4OzAwNDkgMDMwMzswMTI4OzAwNDkgMDMwMzsKKzAxMjk7MDEyOTswMDY5IDAzMDM7MDEyOTswMDY5IDAzMDM7CiswMTJBOzAxMkE7MDA0OSAwMzA0OzAxMkE7MDA0OSAwMzA0OworMDEyQjswMTJCOzAwNjkgMDMwNDswMTJCOzAwNjkgMDMwNDsKKzAxMkM7MDEyQzswMDQ5IDAzMDY7MDEyQzswMDQ5IDAzMDY7CiswMTJEOzAxMkQ7MDA2OSAwMzA2OzAxMkQ7MDA2OSAwMzA2OworMDEyRTswMTJFOzAwNDkgMDMyODswMTJFOzAwNDkgMDMyODsKKzAxMkY7MDEyRjswMDY5IDAzMjg7MDEyRjswMDY5IDAzMjg7CiswMTMwOzAxMzA7MDA0OSAwMzA3OzAxMzA7MDA0OSAwMzA3OworMDEzMjswMTMyOzAxMzI7MDA0OSAwMDRBOzAwNDkgMDA0QTsKKzAxMzM7MDEzMzswMTMzOzAwNjkgMDA2QTswMDY5IDAwNkE7CiswMTM0OzAxMzQ7MDA0QSAwMzAyOzAxMzQ7MDA0QSAwMzAyOworMDEzNTswMTM1OzAwNkEgMDMwMjswMTM1OzAwNkEgMDMwMjsKKzAxMzY7MDEzNjswMDRCIDAzMjc7MDEzNjswMDRCIDAzMjc7CiswMTM3OzAxMzc7MDA2QiAwMzI3OzAxMzc7MDA2QiAwMzI3OworMDEzOTswMTM5OzAwNEMgMDMwMTswMTM5OzAwNEMgMDMwMTsKKzAxM0E7MDEzQTswMDZDIDAzMDE7MDEzQTswMDZDIDAzMDE7CiswMTNCOzAxM0I7MDA0QyAwMzI3OzAxM0I7MDA0QyAwMzI3OworMDEzQzswMTNDOzAwNkMgMDMyNzswMTNDOzAwNkMgMDMyNzsKKzAxM0Q7MDEzRDswMDRDIDAzMEM7MDEzRDswMDRDIDAzMEM7CiswMTNFOzAxM0U7MDA2QyAwMzBDOzAxM0U7MDA2QyAwMzBDOworMDEzRjswMTNGOzAxM0Y7MDA0QyAwMEI3OzAwNEMgMDBCNzsKKzAxNDA7MDE0MDswMTQwOzAwNkMgMDBCNzswMDZDIDAwQjc7CiswMTQzOzAxNDM7MDA0RSAwMzAxOzAxNDM7MDA0RSAwMzAxOworMDE0NDswMTQ0OzAwNkUgMDMwMTswMTQ0OzAwNkUgMDMwMTsKKzAxNDU7MDE0NTswMDRFIDAzMjc7MDE0NTswMDRFIDAzMjc7CiswMTQ2OzAxNDY7MDA2RSAwMzI3OzAxNDY7MDA2RSAwMzI3OworMDE0NzswMTQ3OzAwNEUgMDMwQzswMTQ3OzAwNEUgMDMwQzsKKzAxNDg7MDE0ODswMDZFIDAzMEM7MDE0ODswMDZFIDAzMEM7CiswMTQ5OzAxNDk7MDE0OTswMkJDIDAwNkU7MDJCQyAwMDZFOworMDE0QzswMTRDOzAwNEYgMDMwNDswMTRDOzAwNEYgMDMwNDsKKzAxNEQ7MDE0RDswMDZGIDAzMDQ7MDE0RDswMDZGIDAzMDQ7CiswMTRFOzAxNEU7MDA0RiAwMzA2OzAxNEU7MDA0RiAwMzA2OworMDE0RjswMTRGOzAwNkYgMDMwNjswMTRGOzAwNkYgMDMwNjsKKzAxNTA7MDE1MDswMDRGIDAzMEI7MDE1MDswMDRGIDAzMEI7CiswMTUxOzAxNTE7MDA2RiAwMzBCOzAxNTE7MDA2RiAwMzBCOworMDE1NDswMTU0OzAwNTIgMDMwMTswMTU0OzAwNTIgMDMwMTsKKzAxNTU7MDE1NTswMDcyIDAzMDE7MDE1NTswMDcyIDAzMDE7CiswMTU2OzAxNTY7MDA1MiAwMzI3OzAxNTY7MDA1MiAwMzI3OworMDE1NzswMTU3OzAwNzIgMDMyNzswMTU3OzAwNzIgMDMyNzsKKzAxNTg7MDE1ODswMDUyIDAzMEM7MDE1ODswMDUyIDAzMEM7CiswMTU5OzAxNTk7MDA3MiAwMzBDOzAxNTk7MDA3MiAwMzBDOworMDE1QTswMTVBOzAwNTMgMDMwMTswMTVBOzAwNTMgMDMwMTsKKzAxNUI7MDE1QjswMDczIDAzMDE7MDE1QjswMDczIDAzMDE7CiswMTVDOzAxNUM7MDA1MyAwMzAyOzAxNUM7MDA1MyAwMzAyOworMDE1RDswMTVEOzAwNzMgMDMwMjswMTVEOzAwNzMgMDMwMjsKKzAxNUU7MDE1RTswMDUzIDAzMjc7MDE1RTswMDUzIDAzMjc7CiswMTVGOzAxNUY7MDA3MyAwMzI3OzAxNUY7MDA3MyAwMzI3OworMDE2MDswMTYwOzAwNTMgMDMwQzswMTYwOzAwNTMgMDMwQzsKKzAxNjE7MDE2MTswMDczIDAzMEM7MDE2MTswMDczIDAzMEM7CiswMTYyOzAxNjI7MDA1NCAwMzI3OzAxNjI7MDA1NCAwMzI3OworMDE2MzswMTYzOzAwNzQgMDMyNzswMTYzOzAwNzQgMDMyNzsKKzAxNjQ7MDE2NDswMDU0IDAzMEM7MDE2NDswMDU0IDAzMEM7CiswMTY1OzAxNjU7MDA3NCAwMzBDOzAxNjU7MDA3NCAwMzBDOworMDE2ODswMTY4OzAwNTUgMDMwMzswMTY4OzAwNTUgMDMwMzsKKzAxNjk7MDE2OTswMDc1IDAzMDM7MDE2OTswMDc1IDAzMDM7CiswMTZBOzAxNkE7MDA1NSAwMzA0OzAxNkE7MDA1NSAwMzA0OworMDE2QjswMTZCOzAwNzUgMDMwNDswMTZCOzAwNzUgMDMwNDsKKzAxNkM7MDE2QzswMDU1IDAzMDY7MDE2QzswMDU1IDAzMDY7CiswMTZEOzAxNkQ7MDA3NSAwMzA2OzAxNkQ7MDA3NSAwMzA2OworMDE2RTswMTZFOzAwNTUgMDMwQTswMTZFOzAwNTUgMDMwQTsKKzAxNkY7MDE2RjswMDc1IDAzMEE7MDE2RjswMDc1IDAzMEE7CiswMTcwOzAxNzA7MDA1NSAwMzBCOzAxNzA7MDA1NSAwMzBCOworMDE3MTswMTcxOzAwNzUgMDMwQjswMTcxOzAwNzUgMDMwQjsKKzAxNzI7MDE3MjswMDU1IDAzMjg7MDE3MjswMDU1IDAzMjg7CiswMTczOzAxNzM7MDA3NSAwMzI4OzAxNzM7MDA3NSAwMzI4OworMDE3NDswMTc0OzAwNTcgMDMwMjswMTc0OzAwNTcgMDMwMjsKKzAxNzU7MDE3NTswMDc3IDAzMDI7MDE3NTswMDc3IDAzMDI7CiswMTc2OzAxNzY7MDA1OSAwMzAyOzAxNzY7MDA1OSAwMzAyOworMDE3NzswMTc3OzAwNzkgMDMwMjswMTc3OzAwNzkgMDMwMjsKKzAxNzg7MDE3ODswMDU5IDAzMDg7MDE3ODswMDU5IDAzMDg7CiswMTc5OzAxNzk7MDA1QSAwMzAxOzAxNzk7MDA1QSAwMzAxOworMDE3QTswMTdBOzAwN0EgMDMwMTswMTdBOzAwN0EgMDMwMTsKKzAxN0I7MDE3QjswMDVBIDAzMDc7MDE3QjswMDVBIDAzMDc7CiswMTdDOzAxN0M7MDA3QSAwMzA3OzAxN0M7MDA3QSAwMzA3OworMDE3RDswMTdEOzAwNUEgMDMwQzswMTdEOzAwNUEgMDMwQzsKKzAxN0U7MDE3RTswMDdBIDAzMEM7MDE3RTswMDdBIDAzMEM7CiswMTdGOzAxN0Y7MDE3RjswMDczOzAwNzM7CiswMUEwOzAxQTA7MDA0RiAwMzFCOzAxQTA7MDA0RiAwMzFCOworMDFBMTswMUExOzAwNkYgMDMxQjswMUExOzAwNkYgMDMxQjsKKzAxQUY7MDFBRjswMDU1IDAzMUI7MDFBRjswMDU1IDAzMUI7CiswMUIwOzAxQjA7MDA3NSAwMzFCOzAxQjA7MDA3NSAwMzFCOworMDFDNDswMUM0OzAxQzQ7MDA0NCAwMTdEOzAwNDQgMDA1QSAwMzBDOworMDFDNTswMUM1OzAxQzU7MDA0NCAwMTdFOzAwNDQgMDA3QSAwMzBDOworMDFDNjswMUM2OzAxQzY7MDA2NCAwMTdFOzAwNjQgMDA3QSAwMzBDOworMDFDNzswMUM3OzAxQzc7MDA0QyAwMDRBOzAwNEMgMDA0QTsKKzAxQzg7MDFDODswMUM4OzAwNEMgMDA2QTswMDRDIDAwNkE7CiswMUM5OzAxQzk7MDFDOTswMDZDIDAwNkE7MDA2QyAwMDZBOworMDFDQTswMUNBOzAxQ0E7MDA0RSAwMDRBOzAwNEUgMDA0QTsKKzAxQ0I7MDFDQjswMUNCOzAwNEUgMDA2QTswMDRFIDAwNkE7CiswMUNDOzAxQ0M7MDFDQzswMDZFIDAwNkE7MDA2RSAwMDZBOworMDFDRDswMUNEOzAwNDEgMDMwQzswMUNEOzAwNDEgMDMwQzsKKzAxQ0U7MDFDRTswMDYxIDAzMEM7MDFDRTswMDYxIDAzMEM7CiswMUNGOzAxQ0Y7MDA0OSAwMzBDOzAxQ0Y7MDA0OSAwMzBDOworMDFEMDswMUQwOzAwNjkgMDMwQzswMUQwOzAwNjkgMDMwQzsKKzAxRDE7MDFEMTswMDRGIDAzMEM7MDFEMTswMDRGIDAzMEM7CiswMUQyOzAxRDI7MDA2RiAwMzBDOzAxRDI7MDA2RiAwMzBDOworMDFEMzswMUQzOzAwNTUgMDMwQzswMUQzOzAwNTUgMDMwQzsKKzAxRDQ7MDFENDswMDc1IDAzMEM7MDFENDswMDc1IDAzMEM7CiswMUQ1OzAxRDU7MDA1NSAwMzA4IDAzMDQ7MDFENTswMDU1IDAzMDggMDMwNDsKKzAxRDY7MDFENjswMDc1IDAzMDggMDMwNDswMUQ2OzAwNzUgMDMwOCAwMzA0OworMDFENzswMUQ3OzAwNTUgMDMwOCAwMzAxOzAxRDc7MDA1NSAwMzA4IDAzMDE7CiswMUQ4OzAxRDg7MDA3NSAwMzA4IDAzMDE7MDFEODswMDc1IDAzMDggMDMwMTsKKzAxRDk7MDFEOTswMDU1IDAzMDggMDMwQzswMUQ5OzAwNTUgMDMwOCAwMzBDOworMDFEQTswMURBOzAwNzUgMDMwOCAwMzBDOzAxREE7MDA3NSAwMzA4IDAzMEM7CiswMURCOzAxREI7MDA1NSAwMzA4IDAzMDA7MDFEQjswMDU1IDAzMDggMDMwMDsKKzAxREM7MDFEQzswMDc1IDAzMDggMDMwMDswMURDOzAwNzUgMDMwOCAwMzAwOworMDFERTswMURFOzAwNDEgMDMwOCAwMzA0OzAxREU7MDA0MSAwMzA4IDAzMDQ7CiswMURGOzAxREY7MDA2MSAwMzA4IDAzMDQ7MDFERjswMDYxIDAzMDggMDMwNDsKKzAxRTA7MDFFMDswMDQxIDAzMDcgMDMwNDswMUUwOzAwNDEgMDMwNyAwMzA0OworMDFFMTswMUUxOzAwNjEgMDMwNyAwMzA0OzAxRTE7MDA2MSAwMzA3IDAzMDQ7CiswMUUyOzAxRTI7MDBDNiAwMzA0OzAxRTI7MDBDNiAwMzA0OworMDFFMzswMUUzOzAwRTYgMDMwNDswMUUzOzAwRTYgMDMwNDsKKzAxRTY7MDFFNjswMDQ3IDAzMEM7MDFFNjswMDQ3IDAzMEM7CiswMUU3OzAxRTc7MDA2NyAwMzBDOzAxRTc7MDA2NyAwMzBDOworMDFFODswMUU4OzAwNEIgMDMwQzswMUU4OzAwNEIgMDMwQzsKKzAxRTk7MDFFOTswMDZCIDAzMEM7MDFFOTswMDZCIDAzMEM7CiswMUVBOzAxRUE7MDA0RiAwMzI4OzAxRUE7MDA0RiAwMzI4OworMDFFQjswMUVCOzAwNkYgMDMyODswMUVCOzAwNkYgMDMyODsKKzAxRUM7MDFFQzswMDRGIDAzMjggMDMwNDswMUVDOzAwNEYgMDMyOCAwMzA0OworMDFFRDswMUVEOzAwNkYgMDMyOCAwMzA0OzAxRUQ7MDA2RiAwMzI4IDAzMDQ7CiswMUVFOzAxRUU7MDFCNyAwMzBDOzAxRUU7MDFCNyAwMzBDOworMDFFRjswMUVGOzAyOTIgMDMwQzswMUVGOzAyOTIgMDMwQzsKKzAxRjA7MDFGMDswMDZBIDAzMEM7MDFGMDswMDZBIDAzMEM7CiswMUYxOzAxRjE7MDFGMTswMDQ0IDAwNUE7MDA0NCAwMDVBOworMDFGMjswMUYyOzAxRjI7MDA0NCAwMDdBOzAwNDQgMDA3QTsKKzAxRjM7MDFGMzswMUYzOzAwNjQgMDA3QTswMDY0IDAwN0E7CiswMUY0OzAxRjQ7MDA0NyAwMzAxOzAxRjQ7MDA0NyAwMzAxOworMDFGNTswMUY1OzAwNjcgMDMwMTswMUY1OzAwNjcgMDMwMTsKKzAxRjg7MDFGODswMDRFIDAzMDA7MDFGODswMDRFIDAzMDA7CiswMUY5OzAxRjk7MDA2RSAwMzAwOzAxRjk7MDA2RSAwMzAwOworMDFGQTswMUZBOzAwNDEgMDMwQSAwMzAxOzAxRkE7MDA0MSAwMzBBIDAzMDE7CiswMUZCOzAxRkI7MDA2MSAwMzBBIDAzMDE7MDFGQjswMDYxIDAzMEEgMDMwMTsKKzAxRkM7MDFGQzswMEM2IDAzMDE7MDFGQzswMEM2IDAzMDE7CiswMUZEOzAxRkQ7MDBFNiAwMzAxOzAxRkQ7MDBFNiAwMzAxOworMDFGRTswMUZFOzAwRDggMDMwMTswMUZFOzAwRDggMDMwMTsKKzAxRkY7MDFGRjswMEY4IDAzMDE7MDFGRjswMEY4IDAzMDE7CiswMjAwOzAyMDA7MDA0MSAwMzBGOzAyMDA7MDA0MSAwMzBGOworMDIwMTswMjAxOzAwNjEgMDMwRjswMjAxOzAwNjEgMDMwRjsKKzAyMDI7MDIwMjswMDQxIDAzMTE7MDIwMjswMDQxIDAzMTE7CiswMjAzOzAyMDM7MDA2MSAwMzExOzAyMDM7MDA2MSAwMzExOworMDIwNDswMjA0OzAwNDUgMDMwRjswMjA0OzAwNDUgMDMwRjsKKzAyMDU7MDIwNTswMDY1IDAzMEY7MDIwNTswMDY1IDAzMEY7CiswMjA2OzAyMDY7MDA0NSAwMzExOzAyMDY7MDA0NSAwMzExOworMDIwNzswMjA3OzAwNjUgMDMxMTswMjA3OzAwNjUgMDMxMTsKKzAyMDg7MDIwODswMDQ5IDAzMEY7MDIwODswMDQ5IDAzMEY7CiswMjA5OzAyMDk7MDA2OSAwMzBGOzAyMDk7MDA2OSAwMzBGOworMDIwQTswMjBBOzAwNDkgMDMxMTswMjBBOzAwNDkgMDMxMTsKKzAyMEI7MDIwQjswMDY5IDAzMTE7MDIwQjswMDY5IDAzMTE7CiswMjBDOzAyMEM7MDA0RiAwMzBGOzAyMEM7MDA0RiAwMzBGOworMDIwRDswMjBEOzAwNkYgMDMwRjswMjBEOzAwNkYgMDMwRjsKKzAyMEU7MDIwRTswMDRGIDAzMTE7MDIwRTswMDRGIDAzMTE7CiswMjBGOzAyMEY7MDA2RiAwMzExOzAyMEY7MDA2RiAwMzExOworMDIxMDswMjEwOzAwNTIgMDMwRjswMjEwOzAwNTIgMDMwRjsKKzAyMTE7MDIxMTswMDcyIDAzMEY7MDIxMTswMDcyIDAzMEY7CiswMjEyOzAyMTI7MDA1MiAwMzExOzAyMTI7MDA1MiAwMzExOworMDIxMzswMjEzOzAwNzIgMDMxMTswMjEzOzAwNzIgMDMxMTsKKzAyMTQ7MDIxNDswMDU1IDAzMEY7MDIxNDswMDU1IDAzMEY7CiswMjE1OzAyMTU7MDA3NSAwMzBGOzAyMTU7MDA3NSAwMzBGOworMDIxNjswMjE2OzAwNTUgMDMxMTswMjE2OzAwNTUgMDMxMTsKKzAyMTc7MDIxNzswMDc1IDAzMTE7MDIxNzswMDc1IDAzMTE7CiswMjE4OzAyMTg7MDA1MyAwMzI2OzAyMTg7MDA1MyAwMzI2OworMDIxOTswMjE5OzAwNzMgMDMyNjswMjE5OzAwNzMgMDMyNjsKKzAyMUE7MDIxQTswMDU0IDAzMjY7MDIxQTswMDU0IDAzMjY7CiswMjFCOzAyMUI7MDA3NCAwMzI2OzAyMUI7MDA3NCAwMzI2OworMDIxRTswMjFFOzAwNDggMDMwQzswMjFFOzAwNDggMDMwQzsKKzAyMUY7MDIxRjswMDY4IDAzMEM7MDIxRjswMDY4IDAzMEM7CiswMjI2OzAyMjY7MDA0MSAwMzA3OzAyMjY7MDA0MSAwMzA3OworMDIyNzswMjI3OzAwNjEgMDMwNzswMjI3OzAwNjEgMDMwNzsKKzAyMjg7MDIyODswMDQ1IDAzMjc7MDIyODswMDQ1IDAzMjc7CiswMjI5OzAyMjk7MDA2NSAwMzI3OzAyMjk7MDA2NSAwMzI3OworMDIyQTswMjJBOzAwNEYgMDMwOCAwMzA0OzAyMkE7MDA0RiAwMzA4IDAzMDQ7CiswMjJCOzAyMkI7MDA2RiAwMzA4IDAzMDQ7MDIyQjswMDZGIDAzMDggMDMwNDsKKzAyMkM7MDIyQzswMDRGIDAzMDMgMDMwNDswMjJDOzAwNEYgMDMwMyAwMzA0OworMDIyRDswMjJEOzAwNkYgMDMwMyAwMzA0OzAyMkQ7MDA2RiAwMzAzIDAzMDQ7CiswMjJFOzAyMkU7MDA0RiAwMzA3OzAyMkU7MDA0RiAwMzA3OworMDIyRjswMjJGOzAwNkYgMDMwNzswMjJGOzAwNkYgMDMwNzsKKzAyMzA7MDIzMDswMDRGIDAzMDcgMDMwNDswMjMwOzAwNEYgMDMwNyAwMzA0OworMDIzMTswMjMxOzAwNkYgMDMwNyAwMzA0OzAyMzE7MDA2RiAwMzA3IDAzMDQ7CiswMjMyOzAyMzI7MDA1OSAwMzA0OzAyMzI7MDA1OSAwMzA0OworMDIzMzswMjMzOzAwNzkgMDMwNDswMjMzOzAwNzkgMDMwNDsKKzAyQjA7MDJCMDswMkIwOzAwNjg7MDA2ODsKKzAyQjE7MDJCMTswMkIxOzAyNjY7MDI2NjsKKzAyQjI7MDJCMjswMkIyOzAwNkE7MDA2QTsKKzAyQjM7MDJCMzswMkIzOzAwNzI7MDA3MjsKKzAyQjQ7MDJCNDswMkI0OzAyNzk7MDI3OTsKKzAyQjU7MDJCNTswMkI1OzAyN0I7MDI3QjsKKzAyQjY7MDJCNjswMkI2OzAyODE7MDI4MTsKKzAyQjc7MDJCNzswMkI3OzAwNzc7MDA3NzsKKzAyQjg7MDJCODswMkI4OzAwNzk7MDA3OTsKKzAyRDg7MDJEODswMkQ4OzAwMjAgMDMwNjswMDIwIDAzMDY7CiswMkQ5OzAyRDk7MDJEOTswMDIwIDAzMDc7MDAyMCAwMzA3OworMDJEQTswMkRBOzAyREE7MDAyMCAwMzBBOzAwMjAgMDMwQTsKKzAyREI7MDJEQjswMkRCOzAwMjAgMDMyODswMDIwIDAzMjg7CiswMkRDOzAyREM7MDJEQzswMDIwIDAzMDM7MDAyMCAwMzAzOworMDJERDswMkREOzAyREQ7MDAyMCAwMzBCOzAwMjAgMDMwQjsKKzAyRTA7MDJFMDswMkUwOzAyNjM7MDI2MzsKKzAyRTE7MDJFMTswMkUxOzAwNkM7MDA2QzsKKzAyRTI7MDJFMjswMkUyOzAwNzM7MDA3MzsKKzAyRTM7MDJFMzswMkUzOzAwNzg7MDA3ODsKKzAyRTQ7MDJFNDswMkU0OzAyOTU7MDI5NTsKKzAzNDA7MDMwMDswMzAwOzAzMDA7MDMwMDsKKzAzNDE7MDMwMTswMzAxOzAzMDE7MDMwMTsKKzAzNDM7MDMxMzswMzEzOzAzMTM7MDMxMzsKKzAzNDQ7MDMwOCAwMzAxOzAzMDggMDMwMTswMzA4IDAzMDE7MDMwOCAwMzAxOworMDM3NDswMkI5OzAyQjk7MDJCOTswMkI5OworMDM3QTswMzdBOzAzN0E7MDAyMCAwMzQ1OzAwMjAgMDM0NTsKKzAzN0U7MDAzQjswMDNCOzAwM0I7MDAzQjsKKzAzODQ7MDM4NDswMzg0OzAwMjAgMDMwMTswMDIwIDAzMDE7CiswMzg1OzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOworMDM4NjswMzg2OzAzOTEgMDMwMTswMzg2OzAzOTEgMDMwMTsKKzAzODc7MDBCNzswMEI3OzAwQjc7MDBCNzsKKzAzODg7MDM4ODswMzk1IDAzMDE7MDM4ODswMzk1IDAzMDE7CiswMzg5OzAzODk7MDM5NyAwMzAxOzAzODk7MDM5NyAwMzAxOworMDM4QTswMzhBOzAzOTkgMDMwMTswMzhBOzAzOTkgMDMwMTsKKzAzOEM7MDM4QzswMzlGIDAzMDE7MDM4QzswMzlGIDAzMDE7CiswMzhFOzAzOEU7MDNBNSAwMzAxOzAzOEU7MDNBNSAwMzAxOworMDM4RjswMzhGOzAzQTkgMDMwMTswMzhGOzAzQTkgMDMwMTsKKzAzOTA7MDM5MDswM0I5IDAzMDggMDMwMTswMzkwOzAzQjkgMDMwOCAwMzAxOworMDNBQTswM0FBOzAzOTkgMDMwODswM0FBOzAzOTkgMDMwODsKKzAzQUI7MDNBQjswM0E1IDAzMDg7MDNBQjswM0E1IDAzMDg7CiswM0FDOzAzQUM7MDNCMSAwMzAxOzAzQUM7MDNCMSAwMzAxOworMDNBRDswM0FEOzAzQjUgMDMwMTswM0FEOzAzQjUgMDMwMTsKKzAzQUU7MDNBRTswM0I3IDAzMDE7MDNBRTswM0I3IDAzMDE7CiswM0FGOzAzQUY7MDNCOSAwMzAxOzAzQUY7MDNCOSAwMzAxOworMDNCMDswM0IwOzAzQzUgMDMwOCAwMzAxOzAzQjA7MDNDNSAwMzA4IDAzMDE7CiswM0NBOzAzQ0E7MDNCOSAwMzA4OzAzQ0E7MDNCOSAwMzA4OworMDNDQjswM0NCOzAzQzUgMDMwODswM0NCOzAzQzUgMDMwODsKKzAzQ0M7MDNDQzswM0JGIDAzMDE7MDNDQzswM0JGIDAzMDE7CiswM0NEOzAzQ0Q7MDNDNSAwMzAxOzAzQ0Q7MDNDNSAwMzAxOworMDNDRTswM0NFOzAzQzkgMDMwMTswM0NFOzAzQzkgMDMwMTsKKzAzRDA7MDNEMDswM0QwOzAzQjI7MDNCMjsKKzAzRDE7MDNEMTswM0QxOzAzQjg7MDNCODsKKzAzRDI7MDNEMjswM0QyOzAzQTU7MDNBNTsKKzAzRDM7MDNEMzswM0QyIDAzMDE7MDM4RTswM0E1IDAzMDE7CiswM0Q0OzAzRDQ7MDNEMiAwMzA4OzAzQUI7MDNBNSAwMzA4OworMDNENTswM0Q1OzAzRDU7MDNDNjswM0M2OworMDNENjswM0Q2OzAzRDY7MDNDMDswM0MwOworMDNGMDswM0YwOzAzRjA7MDNCQTswM0JBOworMDNGMTswM0YxOzAzRjE7MDNDMTswM0MxOworMDNGMjswM0YyOzAzRjI7MDNDMjswM0MyOworMDNGNDswM0Y0OzAzRjQ7MDM5ODswMzk4OworMDNGNTswM0Y1OzAzRjU7MDNCNTswM0I1OworMDQwMDswNDAwOzA0MTUgMDMwMDswNDAwOzA0MTUgMDMwMDsKKzA0MDE7MDQwMTswNDE1IDAzMDg7MDQwMTswNDE1IDAzMDg7CiswNDAzOzA0MDM7MDQxMyAwMzAxOzA0MDM7MDQxMyAwMzAxOworMDQwNzswNDA3OzA0MDYgMDMwODswNDA3OzA0MDYgMDMwODsKKzA0MEM7MDQwQzswNDFBIDAzMDE7MDQwQzswNDFBIDAzMDE7CiswNDBEOzA0MEQ7MDQxOCAwMzAwOzA0MEQ7MDQxOCAwMzAwOworMDQwRTswNDBFOzA0MjMgMDMwNjswNDBFOzA0MjMgMDMwNjsKKzA0MTk7MDQxOTswNDE4IDAzMDY7MDQxOTswNDE4IDAzMDY7CiswNDM5OzA0Mzk7MDQzOCAwMzA2OzA0Mzk7MDQzOCAwMzA2OworMDQ1MDswNDUwOzA0MzUgMDMwMDswNDUwOzA0MzUgMDMwMDsKKzA0NTE7MDQ1MTswNDM1IDAzMDg7MDQ1MTswNDM1IDAzMDg7CiswNDUzOzA0NTM7MDQzMyAwMzAxOzA0NTM7MDQzMyAwMzAxOworMDQ1NzswNDU3OzA0NTYgMDMwODswNDU3OzA0NTYgMDMwODsKKzA0NUM7MDQ1QzswNDNBIDAzMDE7MDQ1QzswNDNBIDAzMDE7CiswNDVEOzA0NUQ7MDQzOCAwMzAwOzA0NUQ7MDQzOCAwMzAwOworMDQ1RTswNDVFOzA0NDMgMDMwNjswNDVFOzA0NDMgMDMwNjsKKzA0NzY7MDQ3NjswNDc0IDAzMEY7MDQ3NjswNDc0IDAzMEY7CiswNDc3OzA0Nzc7MDQ3NSAwMzBGOzA0Nzc7MDQ3NSAwMzBGOworMDRDMTswNEMxOzA0MTYgMDMwNjswNEMxOzA0MTYgMDMwNjsKKzA0QzI7MDRDMjswNDM2IDAzMDY7MDRDMjswNDM2IDAzMDY7CiswNEQwOzA0RDA7MDQxMCAwMzA2OzA0RDA7MDQxMCAwMzA2OworMDREMTswNEQxOzA0MzAgMDMwNjswNEQxOzA0MzAgMDMwNjsKKzA0RDI7MDREMjswNDEwIDAzMDg7MDREMjswNDEwIDAzMDg7CiswNEQzOzA0RDM7MDQzMCAwMzA4OzA0RDM7MDQzMCAwMzA4OworMDRENjswNEQ2OzA0MTUgMDMwNjswNEQ2OzA0MTUgMDMwNjsKKzA0RDc7MDRENzswNDM1IDAzMDY7MDRENzswNDM1IDAzMDY7CiswNERBOzA0REE7MDREOCAwMzA4OzA0REE7MDREOCAwMzA4OworMDREQjswNERCOzA0RDkgMDMwODswNERCOzA0RDkgMDMwODsKKzA0REM7MDREQzswNDE2IDAzMDg7MDREQzswNDE2IDAzMDg7CiswNEREOzA0REQ7MDQzNiAwMzA4OzA0REQ7MDQzNiAwMzA4OworMDRERTswNERFOzA0MTcgMDMwODswNERFOzA0MTcgMDMwODsKKzA0REY7MDRERjswNDM3IDAzMDg7MDRERjswNDM3IDAzMDg7CiswNEUyOzA0RTI7MDQxOCAwMzA0OzA0RTI7MDQxOCAwMzA0OworMDRFMzswNEUzOzA0MzggMDMwNDswNEUzOzA0MzggMDMwNDsKKzA0RTQ7MDRFNDswNDE4IDAzMDg7MDRFNDswNDE4IDAzMDg7CiswNEU1OzA0RTU7MDQzOCAwMzA4OzA0RTU7MDQzOCAwMzA4OworMDRFNjswNEU2OzA0MUUgMDMwODswNEU2OzA0MUUgMDMwODsKKzA0RTc7MDRFNzswNDNFIDAzMDg7MDRFNzswNDNFIDAzMDg7CiswNEVBOzA0RUE7MDRFOCAwMzA4OzA0RUE7MDRFOCAwMzA4OworMDRFQjswNEVCOzA0RTkgMDMwODswNEVCOzA0RTkgMDMwODsKKzA0RUM7MDRFQzswNDJEIDAzMDg7MDRFQzswNDJEIDAzMDg7CiswNEVEOzA0RUQ7MDQ0RCAwMzA4OzA0RUQ7MDQ0RCAwMzA4OworMDRFRTswNEVFOzA0MjMgMDMwNDswNEVFOzA0MjMgMDMwNDsKKzA0RUY7MDRFRjswNDQzIDAzMDQ7MDRFRjswNDQzIDAzMDQ7CiswNEYwOzA0RjA7MDQyMyAwMzA4OzA0RjA7MDQyMyAwMzA4OworMDRGMTswNEYxOzA0NDMgMDMwODswNEYxOzA0NDMgMDMwODsKKzA0RjI7MDRGMjswNDIzIDAzMEI7MDRGMjswNDIzIDAzMEI7CiswNEYzOzA0RjM7MDQ0MyAwMzBCOzA0RjM7MDQ0MyAwMzBCOworMDRGNDswNEY0OzA0MjcgMDMwODswNEY0OzA0MjcgMDMwODsKKzA0RjU7MDRGNTswNDQ3IDAzMDg7MDRGNTswNDQ3IDAzMDg7CiswNEY4OzA0Rjg7MDQyQiAwMzA4OzA0Rjg7MDQyQiAwMzA4OworMDRGOTswNEY5OzA0NEIgMDMwODswNEY5OzA0NEIgMDMwODsKKzA1ODc7MDU4NzswNTg3OzA1NjUgMDU4MjswNTY1IDA1ODI7CiswNjIyOzA2MjI7MDYyNyAwNjUzOzA2MjI7MDYyNyAwNjUzOworMDYyMzswNjIzOzA2MjcgMDY1NDswNjIzOzA2MjcgMDY1NDsKKzA2MjQ7MDYyNDswNjQ4IDA2NTQ7MDYyNDswNjQ4IDA2NTQ7CiswNjI1OzA2MjU7MDYyNyAwNjU1OzA2MjU7MDYyNyAwNjU1OworMDYyNjswNjI2OzA2NEEgMDY1NDswNjI2OzA2NEEgMDY1NDsKKzA2NzU7MDY3NTswNjc1OzA2MjcgMDY3NDswNjI3IDA2NzQ7CiswNjc2OzA2NzY7MDY3NjswNjQ4IDA2NzQ7MDY0OCAwNjc0OworMDY3NzswNjc3OzA2Nzc7MDZDNyAwNjc0OzA2QzcgMDY3NDsKKzA2Nzg7MDY3ODswNjc4OzA2NEEgMDY3NDswNjRBIDA2NzQ7CiswNkMwOzA2QzA7MDZENSAwNjU0OzA2QzA7MDZENSAwNjU0OworMDZDMjswNkMyOzA2QzEgMDY1NDswNkMyOzA2QzEgMDY1NDsKKzA2RDM7MDZEMzswNkQyIDA2NTQ7MDZEMzswNkQyIDA2NTQ7CiswOTI5OzA5Mjk7MDkyOCAwOTNDOzA5Mjk7MDkyOCAwOTNDOworMDkzMTswOTMxOzA5MzAgMDkzQzswOTMxOzA5MzAgMDkzQzsKKzA5MzQ7MDkzNDswOTMzIDA5M0M7MDkzNDswOTMzIDA5M0M7CiswOTU4OzA5MTUgMDkzQzswOTE1IDA5M0M7MDkxNSAwOTNDOzA5MTUgMDkzQzsKKzA5NTk7MDkxNiAwOTNDOzA5MTYgMDkzQzswOTE2IDA5M0M7MDkxNiAwOTNDOworMDk1QTswOTE3IDA5M0M7MDkxNyAwOTNDOzA5MTcgMDkzQzswOTE3IDA5M0M7CiswOTVCOzA5MUMgMDkzQzswOTFDIDA5M0M7MDkxQyAwOTNDOzA5MUMgMDkzQzsKKzA5NUM7MDkyMSAwOTNDOzA5MjEgMDkzQzswOTIxIDA5M0M7MDkyMSAwOTNDOworMDk1RDswOTIyIDA5M0M7MDkyMiAwOTNDOzA5MjIgMDkzQzswOTIyIDA5M0M7CiswOTVFOzA5MkIgMDkzQzswOTJCIDA5M0M7MDkyQiAwOTNDOzA5MkIgMDkzQzsKKzA5NUY7MDkyRiAwOTNDOzA5MkYgMDkzQzswOTJGIDA5M0M7MDkyRiAwOTNDOworMDlDQjswOUNCOzA5QzcgMDlCRTswOUNCOzA5QzcgMDlCRTsKKzA5Q0M7MDlDQzswOUM3IDA5RDc7MDlDQzswOUM3IDA5RDc7CiswOURDOzA5QTEgMDlCQzswOUExIDA5QkM7MDlBMSAwOUJDOzA5QTEgMDlCQzsKKzA5REQ7MDlBMiAwOUJDOzA5QTIgMDlCQzswOUEyIDA5QkM7MDlBMiAwOUJDOworMDlERjswOUFGIDA5QkM7MDlBRiAwOUJDOzA5QUYgMDlCQzswOUFGIDA5QkM7CiswQTMzOzBBMzIgMEEzQzswQTMyIDBBM0M7MEEzMiAwQTNDOzBBMzIgMEEzQzsKKzBBMzY7MEEzOCAwQTNDOzBBMzggMEEzQzswQTM4IDBBM0M7MEEzOCAwQTNDOworMEE1OTswQTE2IDBBM0M7MEExNiAwQTNDOzBBMTYgMEEzQzswQTE2IDBBM0M7CiswQTVBOzBBMTcgMEEzQzswQTE3IDBBM0M7MEExNyAwQTNDOzBBMTcgMEEzQzsKKzBBNUI7MEExQyAwQTNDOzBBMUMgMEEzQzswQTFDIDBBM0M7MEExQyAwQTNDOworMEE1RTswQTJCIDBBM0M7MEEyQiAwQTNDOzBBMkIgMEEzQzswQTJCIDBBM0M7CiswQjQ4OzBCNDg7MEI0NyAwQjU2OzBCNDg7MEI0NyAwQjU2OworMEI0QjswQjRCOzBCNDcgMEIzRTswQjRCOzBCNDcgMEIzRTsKKzBCNEM7MEI0QzswQjQ3IDBCNTc7MEI0QzswQjQ3IDBCNTc7CiswQjVDOzBCMjEgMEIzQzswQjIxIDBCM0M7MEIyMSAwQjNDOzBCMjEgMEIzQzsKKzBCNUQ7MEIyMiAwQjNDOzBCMjIgMEIzQzswQjIyIDBCM0M7MEIyMiAwQjNDOworMEI5NDswQjk0OzBCOTIgMEJENzswQjk0OzBCOTIgMEJENzsKKzBCQ0E7MEJDQTswQkM2IDBCQkU7MEJDQTswQkM2IDBCQkU7CiswQkNCOzBCQ0I7MEJDNyAwQkJFOzBCQ0I7MEJDNyAwQkJFOworMEJDQzswQkNDOzBCQzYgMEJENzswQkNDOzBCQzYgMEJENzsKKzBDNDg7MEM0ODswQzQ2IDBDNTY7MEM0ODswQzQ2IDBDNTY7CiswQ0MwOzBDQzA7MENCRiAwQ0Q1OzBDQzA7MENCRiAwQ0Q1OworMENDNzswQ0M3OzBDQzYgMENENTswQ0M3OzBDQzYgMENENTsKKzBDQzg7MENDODswQ0M2IDBDRDY7MENDODswQ0M2IDBDRDY7CiswQ0NBOzBDQ0E7MENDNiAwQ0MyOzBDQ0E7MENDNiAwQ0MyOworMENDQjswQ0NCOzBDQzYgMENDMiAwQ0Q1OzBDQ0I7MENDNiAwQ0MyIDBDRDU7CiswRDRBOzBENEE7MEQ0NiAwRDNFOzBENEE7MEQ0NiAwRDNFOworMEQ0QjswRDRCOzBENDcgMEQzRTswRDRCOzBENDcgMEQzRTsKKzBENEM7MEQ0QzswRDQ2IDBENTc7MEQ0QzswRDQ2IDBENTc7CiswRERBOzBEREE7MEREOSAwRENBOzBEREE7MEREOSAwRENBOworMEREQzswRERDOzBERDkgMERDRjswRERDOzBERDkgMERDRjsKKzBEREQ7MERERDswREQ5IDBEQ0YgMERDQTswREREOzBERDkgMERDRiAwRENBOworMERERTswRERFOzBERDkgMERERjswRERFOzBERDkgMERERjsKKzBFMzM7MEUzMzswRTMzOzBFNEQgMEUzMjswRTREIDBFMzI7CiswRUIzOzBFQjM7MEVCMzswRUNEIDBFQjI7MEVDRCAwRUIyOworMEVEQzswRURDOzBFREM7MEVBQiAwRTk5OzBFQUIgMEU5OTsKKzBFREQ7MEVERDswRUREOzBFQUIgMEVBMTswRUFCIDBFQTE7CiswRjBDOzBGMEM7MEYwQzswRjBCOzBGMEI7CiswRjQzOzBGNDIgMEZCNzswRjQyIDBGQjc7MEY0MiAwRkI3OzBGNDIgMEZCNzsKKzBGNEQ7MEY0QyAwRkI3OzBGNEMgMEZCNzswRjRDIDBGQjc7MEY0QyAwRkI3OworMEY1MjswRjUxIDBGQjc7MEY1MSAwRkI3OzBGNTEgMEZCNzswRjUxIDBGQjc7CiswRjU3OzBGNTYgMEZCNzswRjU2IDBGQjc7MEY1NiAwRkI3OzBGNTYgMEZCNzsKKzBGNUM7MEY1QiAwRkI3OzBGNUIgMEZCNzswRjVCIDBGQjc7MEY1QiAwRkI3OworMEY2OTswRjQwIDBGQjU7MEY0MCAwRkI1OzBGNDAgMEZCNTswRjQwIDBGQjU7CiswRjczOzBGNzEgMEY3MjswRjcxIDBGNzI7MEY3MSAwRjcyOzBGNzEgMEY3MjsKKzBGNzU7MEY3MSAwRjc0OzBGNzEgMEY3NDswRjcxIDBGNzQ7MEY3MSAwRjc0OworMEY3NjswRkIyIDBGODA7MEZCMiAwRjgwOzBGQjIgMEY4MDswRkIyIDBGODA7CiswRjc3OzBGNzc7MEY3NzswRkIyIDBGNzEgMEY4MDswRkIyIDBGNzEgMEY4MDsKKzBGNzg7MEZCMyAwRjgwOzBGQjMgMEY4MDswRkIzIDBGODA7MEZCMyAwRjgwOworMEY3OTswRjc5OzBGNzk7MEZCMyAwRjcxIDBGODA7MEZCMyAwRjcxIDBGODA7CiswRjgxOzBGNzEgMEY4MDswRjcxIDBGODA7MEY3MSAwRjgwOzBGNzEgMEY4MDsKKzBGOTM7MEY5MiAwRkI3OzBGOTIgMEZCNzswRjkyIDBGQjc7MEY5MiAwRkI3OworMEY5RDswRjlDIDBGQjc7MEY5QyAwRkI3OzBGOUMgMEZCNzswRjlDIDBGQjc7CiswRkEyOzBGQTEgMEZCNzswRkExIDBGQjc7MEZBMSAwRkI3OzBGQTEgMEZCNzsKKzBGQTc7MEZBNiAwRkI3OzBGQTYgMEZCNzswRkE2IDBGQjc7MEZBNiAwRkI3OworMEZBQzswRkFCIDBGQjc7MEZBQiAwRkI3OzBGQUIgMEZCNzswRkFCIDBGQjc7CiswRkI5OzBGOTAgMEZCNTswRjkwIDBGQjU7MEY5MCAwRkI1OzBGOTAgMEZCNTsKKzEwMjY7MTAyNjsxMDI1IDEwMkU7MTAyNjsxMDI1IDEwMkU7CisxRTAwOzFFMDA7MDA0MSAwMzI1OzFFMDA7MDA0MSAwMzI1OworMUUwMTsxRTAxOzAwNjEgMDMyNTsxRTAxOzAwNjEgMDMyNTsKKzFFMDI7MUUwMjswMDQyIDAzMDc7MUUwMjswMDQyIDAzMDc7CisxRTAzOzFFMDM7MDA2MiAwMzA3OzFFMDM7MDA2MiAwMzA3OworMUUwNDsxRTA0OzAwNDIgMDMyMzsxRTA0OzAwNDIgMDMyMzsKKzFFMDU7MUUwNTswMDYyIDAzMjM7MUUwNTswMDYyIDAzMjM7CisxRTA2OzFFMDY7MDA0MiAwMzMxOzFFMDY7MDA0MiAwMzMxOworMUUwNzsxRTA3OzAwNjIgMDMzMTsxRTA3OzAwNjIgMDMzMTsKKzFFMDg7MUUwODswMDQzIDAzMjcgMDMwMTsxRTA4OzAwNDMgMDMyNyAwMzAxOworMUUwOTsxRTA5OzAwNjMgMDMyNyAwMzAxOzFFMDk7MDA2MyAwMzI3IDAzMDE7CisxRTBBOzFFMEE7MDA0NCAwMzA3OzFFMEE7MDA0NCAwMzA3OworMUUwQjsxRTBCOzAwNjQgMDMwNzsxRTBCOzAwNjQgMDMwNzsKKzFFMEM7MUUwQzswMDQ0IDAzMjM7MUUwQzswMDQ0IDAzMjM7CisxRTBEOzFFMEQ7MDA2NCAwMzIzOzFFMEQ7MDA2NCAwMzIzOworMUUwRTsxRTBFOzAwNDQgMDMzMTsxRTBFOzAwNDQgMDMzMTsKKzFFMEY7MUUwRjswMDY0IDAzMzE7MUUwRjswMDY0IDAzMzE7CisxRTEwOzFFMTA7MDA0NCAwMzI3OzFFMTA7MDA0NCAwMzI3OworMUUxMTsxRTExOzAwNjQgMDMyNzsxRTExOzAwNjQgMDMyNzsKKzFFMTI7MUUxMjswMDQ0IDAzMkQ7MUUxMjswMDQ0IDAzMkQ7CisxRTEzOzFFMTM7MDA2NCAwMzJEOzFFMTM7MDA2NCAwMzJEOworMUUxNDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CisxRTE1OzFFMTU7MDA2NSAwMzA0IDAzMDA7MUUxNTswMDY1IDAzMDQgMDMwMDsKKzFFMTY7MUUxNjswMDQ1IDAzMDQgMDMwMTsxRTE2OzAwNDUgMDMwNCAwMzAxOworMUUxNzsxRTE3OzAwNjUgMDMwNCAwMzAxOzFFMTc7MDA2NSAwMzA0IDAzMDE7CisxRTE4OzFFMTg7MDA0NSAwMzJEOzFFMTg7MDA0NSAwMzJEOworMUUxOTsxRTE5OzAwNjUgMDMyRDsxRTE5OzAwNjUgMDMyRDsKKzFFMUE7MUUxQTswMDQ1IDAzMzA7MUUxQTswMDQ1IDAzMzA7CisxRTFCOzFFMUI7MDA2NSAwMzMwOzFFMUI7MDA2NSAwMzMwOworMUUxQzsxRTFDOzAwNDUgMDMyNyAwMzA2OzFFMUM7MDA0NSAwMzI3IDAzMDY7CisxRTFEOzFFMUQ7MDA2NSAwMzI3IDAzMDY7MUUxRDswMDY1IDAzMjcgMDMwNjsKKzFFMUU7MUUxRTswMDQ2IDAzMDc7MUUxRTswMDQ2IDAzMDc7CisxRTFGOzFFMUY7MDA2NiAwMzA3OzFFMUY7MDA2NiAwMzA3OworMUUyMDsxRTIwOzAwNDcgMDMwNDsxRTIwOzAwNDcgMDMwNDsKKzFFMjE7MUUyMTswMDY3IDAzMDQ7MUUyMTswMDY3IDAzMDQ7CisxRTIyOzFFMjI7MDA0OCAwMzA3OzFFMjI7MDA0OCAwMzA3OworMUUyMzsxRTIzOzAwNjggMDMwNzsxRTIzOzAwNjggMDMwNzsKKzFFMjQ7MUUyNDswMDQ4IDAzMjM7MUUyNDswMDQ4IDAzMjM7CisxRTI1OzFFMjU7MDA2OCAwMzIzOzFFMjU7MDA2OCAwMzIzOworMUUyNjsxRTI2OzAwNDggMDMwODsxRTI2OzAwNDggMDMwODsKKzFFMjc7MUUyNzswMDY4IDAzMDg7MUUyNzswMDY4IDAzMDg7CisxRTI4OzFFMjg7MDA0OCAwMzI3OzFFMjg7MDA0OCAwMzI3OworMUUyOTsxRTI5OzAwNjggMDMyNzsxRTI5OzAwNjggMDMyNzsKKzFFMkE7MUUyQTswMDQ4IDAzMkU7MUUyQTswMDQ4IDAzMkU7CisxRTJCOzFFMkI7MDA2OCAwMzJFOzFFMkI7MDA2OCAwMzJFOworMUUyQzsxRTJDOzAwNDkgMDMzMDsxRTJDOzAwNDkgMDMzMDsKKzFFMkQ7MUUyRDswMDY5IDAzMzA7MUUyRDswMDY5IDAzMzA7CisxRTJFOzFFMkU7MDA0OSAwMzA4IDAzMDE7MUUyRTswMDQ5IDAzMDggMDMwMTsKKzFFMkY7MUUyRjswMDY5IDAzMDggMDMwMTsxRTJGOzAwNjkgMDMwOCAwMzAxOworMUUzMDsxRTMwOzAwNEIgMDMwMTsxRTMwOzAwNEIgMDMwMTsKKzFFMzE7MUUzMTswMDZCIDAzMDE7MUUzMTswMDZCIDAzMDE7CisxRTMyOzFFMzI7MDA0QiAwMzIzOzFFMzI7MDA0QiAwMzIzOworMUUzMzsxRTMzOzAwNkIgMDMyMzsxRTMzOzAwNkIgMDMyMzsKKzFFMzQ7MUUzNDswMDRCIDAzMzE7MUUzNDswMDRCIDAzMzE7CisxRTM1OzFFMzU7MDA2QiAwMzMxOzFFMzU7MDA2QiAwMzMxOworMUUzNjsxRTM2OzAwNEMgMDMyMzsxRTM2OzAwNEMgMDMyMzsKKzFFMzc7MUUzNzswMDZDIDAzMjM7MUUzNzswMDZDIDAzMjM7CisxRTM4OzFFMzg7MDA0QyAwMzIzIDAzMDQ7MUUzODswMDRDIDAzMjMgMDMwNDsKKzFFMzk7MUUzOTswMDZDIDAzMjMgMDMwNDsxRTM5OzAwNkMgMDMyMyAwMzA0OworMUUzQTsxRTNBOzAwNEMgMDMzMTsxRTNBOzAwNEMgMDMzMTsKKzFFM0I7MUUzQjswMDZDIDAzMzE7MUUzQjswMDZDIDAzMzE7CisxRTNDOzFFM0M7MDA0QyAwMzJEOzFFM0M7MDA0QyAwMzJEOworMUUzRDsxRTNEOzAwNkMgMDMyRDsxRTNEOzAwNkMgMDMyRDsKKzFFM0U7MUUzRTswMDREIDAzMDE7MUUzRTswMDREIDAzMDE7CisxRTNGOzFFM0Y7MDA2RCAwMzAxOzFFM0Y7MDA2RCAwMzAxOworMUU0MDsxRTQwOzAwNEQgMDMwNzsxRTQwOzAwNEQgMDMwNzsKKzFFNDE7MUU0MTswMDZEIDAzMDc7MUU0MTswMDZEIDAzMDc7CisxRTQyOzFFNDI7MDA0RCAwMzIzOzFFNDI7MDA0RCAwMzIzOworMUU0MzsxRTQzOzAwNkQgMDMyMzsxRTQzOzAwNkQgMDMyMzsKKzFFNDQ7MUU0NDswMDRFIDAzMDc7MUU0NDswMDRFIDAzMDc7CisxRTQ1OzFFNDU7MDA2RSAwMzA3OzFFNDU7MDA2RSAwMzA3OworMUU0NjsxRTQ2OzAwNEUgMDMyMzsxRTQ2OzAwNEUgMDMyMzsKKzFFNDc7MUU0NzswMDZFIDAzMjM7MUU0NzswMDZFIDAzMjM7CisxRTQ4OzFFNDg7MDA0RSAwMzMxOzFFNDg7MDA0RSAwMzMxOworMUU0OTsxRTQ5OzAwNkUgMDMzMTsxRTQ5OzAwNkUgMDMzMTsKKzFFNEE7MUU0QTswMDRFIDAzMkQ7MUU0QTswMDRFIDAzMkQ7CisxRTRCOzFFNEI7MDA2RSAwMzJEOzFFNEI7MDA2RSAwMzJEOworMUU0QzsxRTRDOzAwNEYgMDMwMyAwMzAxOzFFNEM7MDA0RiAwMzAzIDAzMDE7CisxRTREOzFFNEQ7MDA2RiAwMzAzIDAzMDE7MUU0RDswMDZGIDAzMDMgMDMwMTsKKzFFNEU7MUU0RTswMDRGIDAzMDMgMDMwODsxRTRFOzAwNEYgMDMwMyAwMzA4OworMUU0RjsxRTRGOzAwNkYgMDMwMyAwMzA4OzFFNEY7MDA2RiAwMzAzIDAzMDg7CisxRTUwOzFFNTA7MDA0RiAwMzA0IDAzMDA7MUU1MDswMDRGIDAzMDQgMDMwMDsKKzFFNTE7MUU1MTswMDZGIDAzMDQgMDMwMDsxRTUxOzAwNkYgMDMwNCAwMzAwOworMUU1MjsxRTUyOzAwNEYgMDMwNCAwMzAxOzFFNTI7MDA0RiAwMzA0IDAzMDE7CisxRTUzOzFFNTM7MDA2RiAwMzA0IDAzMDE7MUU1MzswMDZGIDAzMDQgMDMwMTsKKzFFNTQ7MUU1NDswMDUwIDAzMDE7MUU1NDswMDUwIDAzMDE7CisxRTU1OzFFNTU7MDA3MCAwMzAxOzFFNTU7MDA3MCAwMzAxOworMUU1NjsxRTU2OzAwNTAgMDMwNzsxRTU2OzAwNTAgMDMwNzsKKzFFNTc7MUU1NzswMDcwIDAzMDc7MUU1NzswMDcwIDAzMDc7CisxRTU4OzFFNTg7MDA1MiAwMzA3OzFFNTg7MDA1MiAwMzA3OworMUU1OTsxRTU5OzAwNzIgMDMwNzsxRTU5OzAwNzIgMDMwNzsKKzFFNUE7MUU1QTswMDUyIDAzMjM7MUU1QTswMDUyIDAzMjM7CisxRTVCOzFFNUI7MDA3MiAwMzIzOzFFNUI7MDA3MiAwMzIzOworMUU1QzsxRTVDOzAwNTIgMDMyMyAwMzA0OzFFNUM7MDA1MiAwMzIzIDAzMDQ7CisxRTVEOzFFNUQ7MDA3MiAwMzIzIDAzMDQ7MUU1RDswMDcyIDAzMjMgMDMwNDsKKzFFNUU7MUU1RTswMDUyIDAzMzE7MUU1RTswMDUyIDAzMzE7CisxRTVGOzFFNUY7MDA3MiAwMzMxOzFFNUY7MDA3MiAwMzMxOworMUU2MDsxRTYwOzAwNTMgMDMwNzsxRTYwOzAwNTMgMDMwNzsKKzFFNjE7MUU2MTswMDczIDAzMDc7MUU2MTswMDczIDAzMDc7CisxRTYyOzFFNjI7MDA1MyAwMzIzOzFFNjI7MDA1MyAwMzIzOworMUU2MzsxRTYzOzAwNzMgMDMyMzsxRTYzOzAwNzMgMDMyMzsKKzFFNjQ7MUU2NDswMDUzIDAzMDEgMDMwNzsxRTY0OzAwNTMgMDMwMSAwMzA3OworMUU2NTsxRTY1OzAwNzMgMDMwMSAwMzA3OzFFNjU7MDA3MyAwMzAxIDAzMDc7CisxRTY2OzFFNjY7MDA1MyAwMzBDIDAzMDc7MUU2NjswMDUzIDAzMEMgMDMwNzsKKzFFNjc7MUU2NzswMDczIDAzMEMgMDMwNzsxRTY3OzAwNzMgMDMwQyAwMzA3OworMUU2ODsxRTY4OzAwNTMgMDMyMyAwMzA3OzFFNjg7MDA1MyAwMzIzIDAzMDc7CisxRTY5OzFFNjk7MDA3MyAwMzIzIDAzMDc7MUU2OTswMDczIDAzMjMgMDMwNzsKKzFFNkE7MUU2QTswMDU0IDAzMDc7MUU2QTswMDU0IDAzMDc7CisxRTZCOzFFNkI7MDA3NCAwMzA3OzFFNkI7MDA3NCAwMzA3OworMUU2QzsxRTZDOzAwNTQgMDMyMzsxRTZDOzAwNTQgMDMyMzsKKzFFNkQ7MUU2RDswMDc0IDAzMjM7MUU2RDswMDc0IDAzMjM7CisxRTZFOzFFNkU7MDA1NCAwMzMxOzFFNkU7MDA1NCAwMzMxOworMUU2RjsxRTZGOzAwNzQgMDMzMTsxRTZGOzAwNzQgMDMzMTsKKzFFNzA7MUU3MDswMDU0IDAzMkQ7MUU3MDswMDU0IDAzMkQ7CisxRTcxOzFFNzE7MDA3NCAwMzJEOzFFNzE7MDA3NCAwMzJEOworMUU3MjsxRTcyOzAwNTUgMDMyNDsxRTcyOzAwNTUgMDMyNDsKKzFFNzM7MUU3MzswMDc1IDAzMjQ7MUU3MzswMDc1IDAzMjQ7CisxRTc0OzFFNzQ7MDA1NSAwMzMwOzFFNzQ7MDA1NSAwMzMwOworMUU3NTsxRTc1OzAwNzUgMDMzMDsxRTc1OzAwNzUgMDMzMDsKKzFFNzY7MUU3NjswMDU1IDAzMkQ7MUU3NjswMDU1IDAzMkQ7CisxRTc3OzFFNzc7MDA3NSAwMzJEOzFFNzc7MDA3NSAwMzJEOworMUU3ODsxRTc4OzAwNTUgMDMwMyAwMzAxOzFFNzg7MDA1NSAwMzAzIDAzMDE7CisxRTc5OzFFNzk7MDA3NSAwMzAzIDAzMDE7MUU3OTswMDc1IDAzMDMgMDMwMTsKKzFFN0E7MUU3QTswMDU1IDAzMDQgMDMwODsxRTdBOzAwNTUgMDMwNCAwMzA4OworMUU3QjsxRTdCOzAwNzUgMDMwNCAwMzA4OzFFN0I7MDA3NSAwMzA0IDAzMDg7CisxRTdDOzFFN0M7MDA1NiAwMzAzOzFFN0M7MDA1NiAwMzAzOworMUU3RDsxRTdEOzAwNzYgMDMwMzsxRTdEOzAwNzYgMDMwMzsKKzFFN0U7MUU3RTswMDU2IDAzMjM7MUU3RTswMDU2IDAzMjM7CisxRTdGOzFFN0Y7MDA3NiAwMzIzOzFFN0Y7MDA3NiAwMzIzOworMUU4MDsxRTgwOzAwNTcgMDMwMDsxRTgwOzAwNTcgMDMwMDsKKzFFODE7MUU4MTswMDc3IDAzMDA7MUU4MTswMDc3IDAzMDA7CisxRTgyOzFFODI7MDA1NyAwMzAxOzFFODI7MDA1NyAwMzAxOworMUU4MzsxRTgzOzAwNzcgMDMwMTsxRTgzOzAwNzcgMDMwMTsKKzFFODQ7MUU4NDswMDU3IDAzMDg7MUU4NDswMDU3IDAzMDg7CisxRTg1OzFFODU7MDA3NyAwMzA4OzFFODU7MDA3NyAwMzA4OworMUU4NjsxRTg2OzAwNTcgMDMwNzsxRTg2OzAwNTcgMDMwNzsKKzFFODc7MUU4NzswMDc3IDAzMDc7MUU4NzswMDc3IDAzMDc7CisxRTg4OzFFODg7MDA1NyAwMzIzOzFFODg7MDA1NyAwMzIzOworMUU4OTsxRTg5OzAwNzcgMDMyMzsxRTg5OzAwNzcgMDMyMzsKKzFFOEE7MUU4QTswMDU4IDAzMDc7MUU4QTswMDU4IDAzMDc7CisxRThCOzFFOEI7MDA3OCAwMzA3OzFFOEI7MDA3OCAwMzA3OworMUU4QzsxRThDOzAwNTggMDMwODsxRThDOzAwNTggMDMwODsKKzFFOEQ7MUU4RDswMDc4IDAzMDg7MUU4RDswMDc4IDAzMDg7CisxRThFOzFFOEU7MDA1OSAwMzA3OzFFOEU7MDA1OSAwMzA3OworMUU4RjsxRThGOzAwNzkgMDMwNzsxRThGOzAwNzkgMDMwNzsKKzFFOTA7MUU5MDswMDVBIDAzMDI7MUU5MDswMDVBIDAzMDI7CisxRTkxOzFFOTE7MDA3QSAwMzAyOzFFOTE7MDA3QSAwMzAyOworMUU5MjsxRTkyOzAwNUEgMDMyMzsxRTkyOzAwNUEgMDMyMzsKKzFFOTM7MUU5MzswMDdBIDAzMjM7MUU5MzswMDdBIDAzMjM7CisxRTk0OzFFOTQ7MDA1QSAwMzMxOzFFOTQ7MDA1QSAwMzMxOworMUU5NTsxRTk1OzAwN0EgMDMzMTsxRTk1OzAwN0EgMDMzMTsKKzFFOTY7MUU5NjswMDY4IDAzMzE7MUU5NjswMDY4IDAzMzE7CisxRTk3OzFFOTc7MDA3NCAwMzA4OzFFOTc7MDA3NCAwMzA4OworMUU5ODsxRTk4OzAwNzcgMDMwQTsxRTk4OzAwNzcgMDMwQTsKKzFFOTk7MUU5OTswMDc5IDAzMEE7MUU5OTswMDc5IDAzMEE7CisxRTlBOzFFOUE7MUU5QTswMDYxIDAyQkU7MDA2MSAwMkJFOworMUU5QjsxRTlCOzAxN0YgMDMwNzsxRTYxOzAwNzMgMDMwNzsKKzFFQTA7MUVBMDswMDQxIDAzMjM7MUVBMDswMDQxIDAzMjM7CisxRUExOzFFQTE7MDA2MSAwMzIzOzFFQTE7MDA2MSAwMzIzOworMUVBMjsxRUEyOzAwNDEgMDMwOTsxRUEyOzAwNDEgMDMwOTsKKzFFQTM7MUVBMzswMDYxIDAzMDk7MUVBMzswMDYxIDAzMDk7CisxRUE0OzFFQTQ7MDA0MSAwMzAyIDAzMDE7MUVBNDswMDQxIDAzMDIgMDMwMTsKKzFFQTU7MUVBNTswMDYxIDAzMDIgMDMwMTsxRUE1OzAwNjEgMDMwMiAwMzAxOworMUVBNjsxRUE2OzAwNDEgMDMwMiAwMzAwOzFFQTY7MDA0MSAwMzAyIDAzMDA7CisxRUE3OzFFQTc7MDA2MSAwMzAyIDAzMDA7MUVBNzswMDYxIDAzMDIgMDMwMDsKKzFFQTg7MUVBODswMDQxIDAzMDIgMDMwOTsxRUE4OzAwNDEgMDMwMiAwMzA5OworMUVBOTsxRUE5OzAwNjEgMDMwMiAwMzA5OzFFQTk7MDA2MSAwMzAyIDAzMDk7CisxRUFBOzFFQUE7MDA0MSAwMzAyIDAzMDM7MUVBQTswMDQxIDAzMDIgMDMwMzsKKzFFQUI7MUVBQjswMDYxIDAzMDIgMDMwMzsxRUFCOzAwNjEgMDMwMiAwMzAzOworMUVBQzsxRUFDOzAwNDEgMDMyMyAwMzAyOzFFQUM7MDA0MSAwMzIzIDAzMDI7CisxRUFEOzFFQUQ7MDA2MSAwMzIzIDAzMDI7MUVBRDswMDYxIDAzMjMgMDMwMjsKKzFFQUU7MUVBRTswMDQxIDAzMDYgMDMwMTsxRUFFOzAwNDEgMDMwNiAwMzAxOworMUVBRjsxRUFGOzAwNjEgMDMwNiAwMzAxOzFFQUY7MDA2MSAwMzA2IDAzMDE7CisxRUIwOzFFQjA7MDA0MSAwMzA2IDAzMDA7MUVCMDswMDQxIDAzMDYgMDMwMDsKKzFFQjE7MUVCMTswMDYxIDAzMDYgMDMwMDsxRUIxOzAwNjEgMDMwNiAwMzAwOworMUVCMjsxRUIyOzAwNDEgMDMwNiAwMzA5OzFFQjI7MDA0MSAwMzA2IDAzMDk7CisxRUIzOzFFQjM7MDA2MSAwMzA2IDAzMDk7MUVCMzswMDYxIDAzMDYgMDMwOTsKKzFFQjQ7MUVCNDswMDQxIDAzMDYgMDMwMzsxRUI0OzAwNDEgMDMwNiAwMzAzOworMUVCNTsxRUI1OzAwNjEgMDMwNiAwMzAzOzFFQjU7MDA2MSAwMzA2IDAzMDM7CisxRUI2OzFFQjY7MDA0MSAwMzIzIDAzMDY7MUVCNjswMDQxIDAzMjMgMDMwNjsKKzFFQjc7MUVCNzswMDYxIDAzMjMgMDMwNjsxRUI3OzAwNjEgMDMyMyAwMzA2OworMUVCODsxRUI4OzAwNDUgMDMyMzsxRUI4OzAwNDUgMDMyMzsKKzFFQjk7MUVCOTswMDY1IDAzMjM7MUVCOTswMDY1IDAzMjM7CisxRUJBOzFFQkE7MDA0NSAwMzA5OzFFQkE7MDA0NSAwMzA5OworMUVCQjsxRUJCOzAwNjUgMDMwOTsxRUJCOzAwNjUgMDMwOTsKKzFFQkM7MUVCQzswMDQ1IDAzMDM7MUVCQzswMDQ1IDAzMDM7CisxRUJEOzFFQkQ7MDA2NSAwMzAzOzFFQkQ7MDA2NSAwMzAzOworMUVCRTsxRUJFOzAwNDUgMDMwMiAwMzAxOzFFQkU7MDA0NSAwMzAyIDAzMDE7CisxRUJGOzFFQkY7MDA2NSAwMzAyIDAzMDE7MUVCRjswMDY1IDAzMDIgMDMwMTsKKzFFQzA7MUVDMDswMDQ1IDAzMDIgMDMwMDsxRUMwOzAwNDUgMDMwMiAwMzAwOworMUVDMTsxRUMxOzAwNjUgMDMwMiAwMzAwOzFFQzE7MDA2NSAwMzAyIDAzMDA7CisxRUMyOzFFQzI7MDA0NSAwMzAyIDAzMDk7MUVDMjswMDQ1IDAzMDIgMDMwOTsKKzFFQzM7MUVDMzswMDY1IDAzMDIgMDMwOTsxRUMzOzAwNjUgMDMwMiAwMzA5OworMUVDNDsxRUM0OzAwNDUgMDMwMiAwMzAzOzFFQzQ7MDA0NSAwMzAyIDAzMDM7CisxRUM1OzFFQzU7MDA2NSAwMzAyIDAzMDM7MUVDNTswMDY1IDAzMDIgMDMwMzsKKzFFQzY7MUVDNjswMDQ1IDAzMjMgMDMwMjsxRUM2OzAwNDUgMDMyMyAwMzAyOworMUVDNzsxRUM3OzAwNjUgMDMyMyAwMzAyOzFFQzc7MDA2NSAwMzIzIDAzMDI7CisxRUM4OzFFQzg7MDA0OSAwMzA5OzFFQzg7MDA0OSAwMzA5OworMUVDOTsxRUM5OzAwNjkgMDMwOTsxRUM5OzAwNjkgMDMwOTsKKzFFQ0E7MUVDQTswMDQ5IDAzMjM7MUVDQTswMDQ5IDAzMjM7CisxRUNCOzFFQ0I7MDA2OSAwMzIzOzFFQ0I7MDA2OSAwMzIzOworMUVDQzsxRUNDOzAwNEYgMDMyMzsxRUNDOzAwNEYgMDMyMzsKKzFFQ0Q7MUVDRDswMDZGIDAzMjM7MUVDRDswMDZGIDAzMjM7CisxRUNFOzFFQ0U7MDA0RiAwMzA5OzFFQ0U7MDA0RiAwMzA5OworMUVDRjsxRUNGOzAwNkYgMDMwOTsxRUNGOzAwNkYgMDMwOTsKKzFFRDA7MUVEMDswMDRGIDAzMDIgMDMwMTsxRUQwOzAwNEYgMDMwMiAwMzAxOworMUVEMTsxRUQxOzAwNkYgMDMwMiAwMzAxOzFFRDE7MDA2RiAwMzAyIDAzMDE7CisxRUQyOzFFRDI7MDA0RiAwMzAyIDAzMDA7MUVEMjswMDRGIDAzMDIgMDMwMDsKKzFFRDM7MUVEMzswMDZGIDAzMDIgMDMwMDsxRUQzOzAwNkYgMDMwMiAwMzAwOworMUVENDsxRUQ0OzAwNEYgMDMwMiAwMzA5OzFFRDQ7MDA0RiAwMzAyIDAzMDk7CisxRUQ1OzFFRDU7MDA2RiAwMzAyIDAzMDk7MUVENTswMDZGIDAzMDIgMDMwOTsKKzFFRDY7MUVENjswMDRGIDAzMDIgMDMwMzsxRUQ2OzAwNEYgMDMwMiAwMzAzOworMUVENzsxRUQ3OzAwNkYgMDMwMiAwMzAzOzFFRDc7MDA2RiAwMzAyIDAzMDM7CisxRUQ4OzFFRDg7MDA0RiAwMzIzIDAzMDI7MUVEODswMDRGIDAzMjMgMDMwMjsKKzFFRDk7MUVEOTswMDZGIDAzMjMgMDMwMjsxRUQ5OzAwNkYgMDMyMyAwMzAyOworMUVEQTsxRURBOzAwNEYgMDMxQiAwMzAxOzFFREE7MDA0RiAwMzFCIDAzMDE7CisxRURCOzFFREI7MDA2RiAwMzFCIDAzMDE7MUVEQjswMDZGIDAzMUIgMDMwMTsKKzFFREM7MUVEQzswMDRGIDAzMUIgMDMwMDsxRURDOzAwNEYgMDMxQiAwMzAwOworMUVERDsxRUREOzAwNkYgMDMxQiAwMzAwOzFFREQ7MDA2RiAwMzFCIDAzMDA7CisxRURFOzFFREU7MDA0RiAwMzFCIDAzMDk7MUVERTswMDRGIDAzMUIgMDMwOTsKKzFFREY7MUVERjswMDZGIDAzMUIgMDMwOTsxRURGOzAwNkYgMDMxQiAwMzA5OworMUVFMDsxRUUwOzAwNEYgMDMxQiAwMzAzOzFFRTA7MDA0RiAwMzFCIDAzMDM7CisxRUUxOzFFRTE7MDA2RiAwMzFCIDAzMDM7MUVFMTswMDZGIDAzMUIgMDMwMzsKKzFFRTI7MUVFMjswMDRGIDAzMUIgMDMyMzsxRUUyOzAwNEYgMDMxQiAwMzIzOworMUVFMzsxRUUzOzAwNkYgMDMxQiAwMzIzOzFFRTM7MDA2RiAwMzFCIDAzMjM7CisxRUU0OzFFRTQ7MDA1NSAwMzIzOzFFRTQ7MDA1NSAwMzIzOworMUVFNTsxRUU1OzAwNzUgMDMyMzsxRUU1OzAwNzUgMDMyMzsKKzFFRTY7MUVFNjswMDU1IDAzMDk7MUVFNjswMDU1IDAzMDk7CisxRUU3OzFFRTc7MDA3NSAwMzA5OzFFRTc7MDA3NSAwMzA5OworMUVFODsxRUU4OzAwNTUgMDMxQiAwMzAxOzFFRTg7MDA1NSAwMzFCIDAzMDE7CisxRUU5OzFFRTk7MDA3NSAwMzFCIDAzMDE7MUVFOTswMDc1IDAzMUIgMDMwMTsKKzFFRUE7MUVFQTswMDU1IDAzMUIgMDMwMDsxRUVBOzAwNTUgMDMxQiAwMzAwOworMUVFQjsxRUVCOzAwNzUgMDMxQiAwMzAwOzFFRUI7MDA3NSAwMzFCIDAzMDA7CisxRUVDOzFFRUM7MDA1NSAwMzFCIDAzMDk7MUVFQzswMDU1IDAzMUIgMDMwOTsKKzFFRUQ7MUVFRDswMDc1IDAzMUIgMDMwOTsxRUVEOzAwNzUgMDMxQiAwMzA5OworMUVFRTsxRUVFOzAwNTUgMDMxQiAwMzAzOzFFRUU7MDA1NSAwMzFCIDAzMDM7CisxRUVGOzFFRUY7MDA3NSAwMzFCIDAzMDM7MUVFRjswMDc1IDAzMUIgMDMwMzsKKzFFRjA7MUVGMDswMDU1IDAzMUIgMDMyMzsxRUYwOzAwNTUgMDMxQiAwMzIzOworMUVGMTsxRUYxOzAwNzUgMDMxQiAwMzIzOzFFRjE7MDA3NSAwMzFCIDAzMjM7CisxRUYyOzFFRjI7MDA1OSAwMzAwOzFFRjI7MDA1OSAwMzAwOworMUVGMzsxRUYzOzAwNzkgMDMwMDsxRUYzOzAwNzkgMDMwMDsKKzFFRjQ7MUVGNDswMDU5IDAzMjM7MUVGNDswMDU5IDAzMjM7CisxRUY1OzFFRjU7MDA3OSAwMzIzOzFFRjU7MDA3OSAwMzIzOworMUVGNjsxRUY2OzAwNTkgMDMwOTsxRUY2OzAwNTkgMDMwOTsKKzFFRjc7MUVGNzswMDc5IDAzMDk7MUVGNzswMDc5IDAzMDk7CisxRUY4OzFFRjg7MDA1OSAwMzAzOzFFRjg7MDA1OSAwMzAzOworMUVGOTsxRUY5OzAwNzkgMDMwMzsxRUY5OzAwNzkgMDMwMzsKKzFGMDA7MUYwMDswM0IxIDAzMTM7MUYwMDswM0IxIDAzMTM7CisxRjAxOzFGMDE7MDNCMSAwMzE0OzFGMDE7MDNCMSAwMzE0OworMUYwMjsxRjAyOzAzQjEgMDMxMyAwMzAwOzFGMDI7MDNCMSAwMzEzIDAzMDA7CisxRjAzOzFGMDM7MDNCMSAwMzE0IDAzMDA7MUYwMzswM0IxIDAzMTQgMDMwMDsKKzFGMDQ7MUYwNDswM0IxIDAzMTMgMDMwMTsxRjA0OzAzQjEgMDMxMyAwMzAxOworMUYwNTsxRjA1OzAzQjEgMDMxNCAwMzAxOzFGMDU7MDNCMSAwMzE0IDAzMDE7CisxRjA2OzFGMDY7MDNCMSAwMzEzIDAzNDI7MUYwNjswM0IxIDAzMTMgMDM0MjsKKzFGMDc7MUYwNzswM0IxIDAzMTQgMDM0MjsxRjA3OzAzQjEgMDMxNCAwMzQyOworMUYwODsxRjA4OzAzOTEgMDMxMzsxRjA4OzAzOTEgMDMxMzsKKzFGMDk7MUYwOTswMzkxIDAzMTQ7MUYwOTswMzkxIDAzMTQ7CisxRjBBOzFGMEE7MDM5MSAwMzEzIDAzMDA7MUYwQTswMzkxIDAzMTMgMDMwMDsKKzFGMEI7MUYwQjswMzkxIDAzMTQgMDMwMDsxRjBCOzAzOTEgMDMxNCAwMzAwOworMUYwQzsxRjBDOzAzOTEgMDMxMyAwMzAxOzFGMEM7MDM5MSAwMzEzIDAzMDE7CisxRjBEOzFGMEQ7MDM5MSAwMzE0IDAzMDE7MUYwRDswMzkxIDAzMTQgMDMwMTsKKzFGMEU7MUYwRTswMzkxIDAzMTMgMDM0MjsxRjBFOzAzOTEgMDMxMyAwMzQyOworMUYwRjsxRjBGOzAzOTEgMDMxNCAwMzQyOzFGMEY7MDM5MSAwMzE0IDAzNDI7CisxRjEwOzFGMTA7MDNCNSAwMzEzOzFGMTA7MDNCNSAwMzEzOworMUYxMTsxRjExOzAzQjUgMDMxNDsxRjExOzAzQjUgMDMxNDsKKzFGMTI7MUYxMjswM0I1IDAzMTMgMDMwMDsxRjEyOzAzQjUgMDMxMyAwMzAwOworMUYxMzsxRjEzOzAzQjUgMDMxNCAwMzAwOzFGMTM7MDNCNSAwMzE0IDAzMDA7CisxRjE0OzFGMTQ7MDNCNSAwMzEzIDAzMDE7MUYxNDswM0I1IDAzMTMgMDMwMTsKKzFGMTU7MUYxNTswM0I1IDAzMTQgMDMwMTsxRjE1OzAzQjUgMDMxNCAwMzAxOworMUYxODsxRjE4OzAzOTUgMDMxMzsxRjE4OzAzOTUgMDMxMzsKKzFGMTk7MUYxOTswMzk1IDAzMTQ7MUYxOTswMzk1IDAzMTQ7CisxRjFBOzFGMUE7MDM5NSAwMzEzIDAzMDA7MUYxQTswMzk1IDAzMTMgMDMwMDsKKzFGMUI7MUYxQjswMzk1IDAzMTQgMDMwMDsxRjFCOzAzOTUgMDMxNCAwMzAwOworMUYxQzsxRjFDOzAzOTUgMDMxMyAwMzAxOzFGMUM7MDM5NSAwMzEzIDAzMDE7CisxRjFEOzFGMUQ7MDM5NSAwMzE0IDAzMDE7MUYxRDswMzk1IDAzMTQgMDMwMTsKKzFGMjA7MUYyMDswM0I3IDAzMTM7MUYyMDswM0I3IDAzMTM7CisxRjIxOzFGMjE7MDNCNyAwMzE0OzFGMjE7MDNCNyAwMzE0OworMUYyMjsxRjIyOzAzQjcgMDMxMyAwMzAwOzFGMjI7MDNCNyAwMzEzIDAzMDA7CisxRjIzOzFGMjM7MDNCNyAwMzE0IDAzMDA7MUYyMzswM0I3IDAzMTQgMDMwMDsKKzFGMjQ7MUYyNDswM0I3IDAzMTMgMDMwMTsxRjI0OzAzQjcgMDMxMyAwMzAxOworMUYyNTsxRjI1OzAzQjcgMDMxNCAwMzAxOzFGMjU7MDNCNyAwMzE0IDAzMDE7CisxRjI2OzFGMjY7MDNCNyAwMzEzIDAzNDI7MUYyNjswM0I3IDAzMTMgMDM0MjsKKzFGMjc7MUYyNzswM0I3IDAzMTQgMDM0MjsxRjI3OzAzQjcgMDMxNCAwMzQyOworMUYyODsxRjI4OzAzOTcgMDMxMzsxRjI4OzAzOTcgMDMxMzsKKzFGMjk7MUYyOTswMzk3IDAzMTQ7MUYyOTswMzk3IDAzMTQ7CisxRjJBOzFGMkE7MDM5NyAwMzEzIDAzMDA7MUYyQTswMzk3IDAzMTMgMDMwMDsKKzFGMkI7MUYyQjswMzk3IDAzMTQgMDMwMDsxRjJCOzAzOTcgMDMxNCAwMzAwOworMUYyQzsxRjJDOzAzOTcgMDMxMyAwMzAxOzFGMkM7MDM5NyAwMzEzIDAzMDE7CisxRjJEOzFGMkQ7MDM5NyAwMzE0IDAzMDE7MUYyRDswMzk3IDAzMTQgMDMwMTsKKzFGMkU7MUYyRTswMzk3IDAzMTMgMDM0MjsxRjJFOzAzOTcgMDMxMyAwMzQyOworMUYyRjsxRjJGOzAzOTcgMDMxNCAwMzQyOzFGMkY7MDM5NyAwMzE0IDAzNDI7CisxRjMwOzFGMzA7MDNCOSAwMzEzOzFGMzA7MDNCOSAwMzEzOworMUYzMTsxRjMxOzAzQjkgMDMxNDsxRjMxOzAzQjkgMDMxNDsKKzFGMzI7MUYzMjswM0I5IDAzMTMgMDMwMDsxRjMyOzAzQjkgMDMxMyAwMzAwOworMUYzMzsxRjMzOzAzQjkgMDMxNCAwMzAwOzFGMzM7MDNCOSAwMzE0IDAzMDA7CisxRjM0OzFGMzQ7MDNCOSAwMzEzIDAzMDE7MUYzNDswM0I5IDAzMTMgMDMwMTsKKzFGMzU7MUYzNTswM0I5IDAzMTQgMDMwMTsxRjM1OzAzQjkgMDMxNCAwMzAxOworMUYzNjsxRjM2OzAzQjkgMDMxMyAwMzQyOzFGMzY7MDNCOSAwMzEzIDAzNDI7CisxRjM3OzFGMzc7MDNCOSAwMzE0IDAzNDI7MUYzNzswM0I5IDAzMTQgMDM0MjsKKzFGMzg7MUYzODswMzk5IDAzMTM7MUYzODswMzk5IDAzMTM7CisxRjM5OzFGMzk7MDM5OSAwMzE0OzFGMzk7MDM5OSAwMzE0OworMUYzQTsxRjNBOzAzOTkgMDMxMyAwMzAwOzFGM0E7MDM5OSAwMzEzIDAzMDA7CisxRjNCOzFGM0I7MDM5OSAwMzE0IDAzMDA7MUYzQjswMzk5IDAzMTQgMDMwMDsKKzFGM0M7MUYzQzswMzk5IDAzMTMgMDMwMTsxRjNDOzAzOTkgMDMxMyAwMzAxOworMUYzRDsxRjNEOzAzOTkgMDMxNCAwMzAxOzFGM0Q7MDM5OSAwMzE0IDAzMDE7CisxRjNFOzFGM0U7MDM5OSAwMzEzIDAzNDI7MUYzRTswMzk5IDAzMTMgMDM0MjsKKzFGM0Y7MUYzRjswMzk5IDAzMTQgMDM0MjsxRjNGOzAzOTkgMDMxNCAwMzQyOworMUY0MDsxRjQwOzAzQkYgMDMxMzsxRjQwOzAzQkYgMDMxMzsKKzFGNDE7MUY0MTswM0JGIDAzMTQ7MUY0MTswM0JGIDAzMTQ7CisxRjQyOzFGNDI7MDNCRiAwMzEzIDAzMDA7MUY0MjswM0JGIDAzMTMgMDMwMDsKKzFGNDM7MUY0MzswM0JGIDAzMTQgMDMwMDsxRjQzOzAzQkYgMDMxNCAwMzAwOworMUY0NDsxRjQ0OzAzQkYgMDMxMyAwMzAxOzFGNDQ7MDNCRiAwMzEzIDAzMDE7CisxRjQ1OzFGNDU7MDNCRiAwMzE0IDAzMDE7MUY0NTswM0JGIDAzMTQgMDMwMTsKKzFGNDg7MUY0ODswMzlGIDAzMTM7MUY0ODswMzlGIDAzMTM7CisxRjQ5OzFGNDk7MDM5RiAwMzE0OzFGNDk7MDM5RiAwMzE0OworMUY0QTsxRjRBOzAzOUYgMDMxMyAwMzAwOzFGNEE7MDM5RiAwMzEzIDAzMDA7CisxRjRCOzFGNEI7MDM5RiAwMzE0IDAzMDA7MUY0QjswMzlGIDAzMTQgMDMwMDsKKzFGNEM7MUY0QzswMzlGIDAzMTMgMDMwMTsxRjRDOzAzOUYgMDMxMyAwMzAxOworMUY0RDsxRjREOzAzOUYgMDMxNCAwMzAxOzFGNEQ7MDM5RiAwMzE0IDAzMDE7CisxRjUwOzFGNTA7MDNDNSAwMzEzOzFGNTA7MDNDNSAwMzEzOworMUY1MTsxRjUxOzAzQzUgMDMxNDsxRjUxOzAzQzUgMDMxNDsKKzFGNTI7MUY1MjswM0M1IDAzMTMgMDMwMDsxRjUyOzAzQzUgMDMxMyAwMzAwOworMUY1MzsxRjUzOzAzQzUgMDMxNCAwMzAwOzFGNTM7MDNDNSAwMzE0IDAzMDA7CisxRjU0OzFGNTQ7MDNDNSAwMzEzIDAzMDE7MUY1NDswM0M1IDAzMTMgMDMwMTsKKzFGNTU7MUY1NTswM0M1IDAzMTQgMDMwMTsxRjU1OzAzQzUgMDMxNCAwMzAxOworMUY1NjsxRjU2OzAzQzUgMDMxMyAwMzQyOzFGNTY7MDNDNSAwMzEzIDAzNDI7CisxRjU3OzFGNTc7MDNDNSAwMzE0IDAzNDI7MUY1NzswM0M1IDAzMTQgMDM0MjsKKzFGNTk7MUY1OTswM0E1IDAzMTQ7MUY1OTswM0E1IDAzMTQ7CisxRjVCOzFGNUI7MDNBNSAwMzE0IDAzMDA7MUY1QjswM0E1IDAzMTQgMDMwMDsKKzFGNUQ7MUY1RDswM0E1IDAzMTQgMDMwMTsxRjVEOzAzQTUgMDMxNCAwMzAxOworMUY1RjsxRjVGOzAzQTUgMDMxNCAwMzQyOzFGNUY7MDNBNSAwMzE0IDAzNDI7CisxRjYwOzFGNjA7MDNDOSAwMzEzOzFGNjA7MDNDOSAwMzEzOworMUY2MTsxRjYxOzAzQzkgMDMxNDsxRjYxOzAzQzkgMDMxNDsKKzFGNjI7MUY2MjswM0M5IDAzMTMgMDMwMDsxRjYyOzAzQzkgMDMxMyAwMzAwOworMUY2MzsxRjYzOzAzQzkgMDMxNCAwMzAwOzFGNjM7MDNDOSAwMzE0IDAzMDA7CisxRjY0OzFGNjQ7MDNDOSAwMzEzIDAzMDE7MUY2NDswM0M5IDAzMTMgMDMwMTsKKzFGNjU7MUY2NTswM0M5IDAzMTQgMDMwMTsxRjY1OzAzQzkgMDMxNCAwMzAxOworMUY2NjsxRjY2OzAzQzkgMDMxMyAwMzQyOzFGNjY7MDNDOSAwMzEzIDAzNDI7CisxRjY3OzFGNjc7MDNDOSAwMzE0IDAzNDI7MUY2NzswM0M5IDAzMTQgMDM0MjsKKzFGNjg7MUY2ODswM0E5IDAzMTM7MUY2ODswM0E5IDAzMTM7CisxRjY5OzFGNjk7MDNBOSAwMzE0OzFGNjk7MDNBOSAwMzE0OworMUY2QTsxRjZBOzAzQTkgMDMxMyAwMzAwOzFGNkE7MDNBOSAwMzEzIDAzMDA7CisxRjZCOzFGNkI7MDNBOSAwMzE0IDAzMDA7MUY2QjswM0E5IDAzMTQgMDMwMDsKKzFGNkM7MUY2QzswM0E5IDAzMTMgMDMwMTsxRjZDOzAzQTkgMDMxMyAwMzAxOworMUY2RDsxRjZEOzAzQTkgMDMxNCAwMzAxOzFGNkQ7MDNBOSAwMzE0IDAzMDE7CisxRjZFOzFGNkU7MDNBOSAwMzEzIDAzNDI7MUY2RTswM0E5IDAzMTMgMDM0MjsKKzFGNkY7MUY2RjswM0E5IDAzMTQgMDM0MjsxRjZGOzAzQTkgMDMxNCAwMzQyOworMUY3MDsxRjcwOzAzQjEgMDMwMDsxRjcwOzAzQjEgMDMwMDsKKzFGNzE7MDNBQzswM0IxIDAzMDE7MDNBQzswM0IxIDAzMDE7CisxRjcyOzFGNzI7MDNCNSAwMzAwOzFGNzI7MDNCNSAwMzAwOworMUY3MzswM0FEOzAzQjUgMDMwMTswM0FEOzAzQjUgMDMwMTsKKzFGNzQ7MUY3NDswM0I3IDAzMDA7MUY3NDswM0I3IDAzMDA7CisxRjc1OzAzQUU7MDNCNyAwMzAxOzAzQUU7MDNCNyAwMzAxOworMUY3NjsxRjc2OzAzQjkgMDMwMDsxRjc2OzAzQjkgMDMwMDsKKzFGNzc7MDNBRjswM0I5IDAzMDE7MDNBRjswM0I5IDAzMDE7CisxRjc4OzFGNzg7MDNCRiAwMzAwOzFGNzg7MDNCRiAwMzAwOworMUY3OTswM0NDOzAzQkYgMDMwMTswM0NDOzAzQkYgMDMwMTsKKzFGN0E7MUY3QTswM0M1IDAzMDA7MUY3QTswM0M1IDAzMDA7CisxRjdCOzAzQ0Q7MDNDNSAwMzAxOzAzQ0Q7MDNDNSAwMzAxOworMUY3QzsxRjdDOzAzQzkgMDMwMDsxRjdDOzAzQzkgMDMwMDsKKzFGN0Q7MDNDRTswM0M5IDAzMDE7MDNDRTswM0M5IDAzMDE7CisxRjgwOzFGODA7MDNCMSAwMzEzIDAzNDU7MUY4MDswM0IxIDAzMTMgMDM0NTsKKzFGODE7MUY4MTswM0IxIDAzMTQgMDM0NTsxRjgxOzAzQjEgMDMxNCAwMzQ1OworMUY4MjsxRjgyOzAzQjEgMDMxMyAwMzAwIDAzNDU7MUY4MjswM0IxIDAzMTMgMDMwMCAwMzQ1OworMUY4MzsxRjgzOzAzQjEgMDMxNCAwMzAwIDAzNDU7MUY4MzswM0IxIDAzMTQgMDMwMCAwMzQ1OworMUY4NDsxRjg0OzAzQjEgMDMxMyAwMzAxIDAzNDU7MUY4NDswM0IxIDAzMTMgMDMwMSAwMzQ1OworMUY4NTsxRjg1OzAzQjEgMDMxNCAwMzAxIDAzNDU7MUY4NTswM0IxIDAzMTQgMDMwMSAwMzQ1OworMUY4NjsxRjg2OzAzQjEgMDMxMyAwMzQyIDAzNDU7MUY4NjswM0IxIDAzMTMgMDM0MiAwMzQ1OworMUY4NzsxRjg3OzAzQjEgMDMxNCAwMzQyIDAzNDU7MUY4NzswM0IxIDAzMTQgMDM0MiAwMzQ1OworMUY4ODsxRjg4OzAzOTEgMDMxMyAwMzQ1OzFGODg7MDM5MSAwMzEzIDAzNDU7CisxRjg5OzFGODk7MDM5MSAwMzE0IDAzNDU7MUY4OTswMzkxIDAzMTQgMDM0NTsKKzFGOEE7MUY4QTswMzkxIDAzMTMgMDMwMCAwMzQ1OzFGOEE7MDM5MSAwMzEzIDAzMDAgMDM0NTsKKzFGOEI7MUY4QjswMzkxIDAzMTQgMDMwMCAwMzQ1OzFGOEI7MDM5MSAwMzE0IDAzMDAgMDM0NTsKKzFGOEM7MUY4QzswMzkxIDAzMTMgMDMwMSAwMzQ1OzFGOEM7MDM5MSAwMzEzIDAzMDEgMDM0NTsKKzFGOEQ7MUY4RDswMzkxIDAzMTQgMDMwMSAwMzQ1OzFGOEQ7MDM5MSAwMzE0IDAzMDEgMDM0NTsKKzFGOEU7MUY4RTswMzkxIDAzMTMgMDM0MiAwMzQ1OzFGOEU7MDM5MSAwMzEzIDAzNDIgMDM0NTsKKzFGOEY7MUY4RjswMzkxIDAzMTQgMDM0MiAwMzQ1OzFGOEY7MDM5MSAwMzE0IDAzNDIgMDM0NTsKKzFGOTA7MUY5MDswM0I3IDAzMTMgMDM0NTsxRjkwOzAzQjcgMDMxMyAwMzQ1OworMUY5MTsxRjkxOzAzQjcgMDMxNCAwMzQ1OzFGOTE7MDNCNyAwMzE0IDAzNDU7CisxRjkyOzFGOTI7MDNCNyAwMzEzIDAzMDAgMDM0NTsxRjkyOzAzQjcgMDMxMyAwMzAwIDAzNDU7CisxRjkzOzFGOTM7MDNCNyAwMzE0IDAzMDAgMDM0NTsxRjkzOzAzQjcgMDMxNCAwMzAwIDAzNDU7CisxRjk0OzFGOTQ7MDNCNyAwMzEzIDAzMDEgMDM0NTsxRjk0OzAzQjcgMDMxMyAwMzAxIDAzNDU7CisxRjk1OzFGOTU7MDNCNyAwMzE0IDAzMDEgMDM0NTsxRjk1OzAzQjcgMDMxNCAwMzAxIDAzNDU7CisxRjk2OzFGOTY7MDNCNyAwMzEzIDAzNDIgMDM0NTsxRjk2OzAzQjcgMDMxMyAwMzQyIDAzNDU7CisxRjk3OzFGOTc7MDNCNyAwMzE0IDAzNDIgMDM0NTsxRjk3OzAzQjcgMDMxNCAwMzQyIDAzNDU7CisxRjk4OzFGOTg7MDM5NyAwMzEzIDAzNDU7MUY5ODswMzk3IDAzMTMgMDM0NTsKKzFGOTk7MUY5OTswMzk3IDAzMTQgMDM0NTsxRjk5OzAzOTcgMDMxNCAwMzQ1OworMUY5QTsxRjlBOzAzOTcgMDMxMyAwMzAwIDAzNDU7MUY5QTswMzk3IDAzMTMgMDMwMCAwMzQ1OworMUY5QjsxRjlCOzAzOTcgMDMxNCAwMzAwIDAzNDU7MUY5QjswMzk3IDAzMTQgMDMwMCAwMzQ1OworMUY5QzsxRjlDOzAzOTcgMDMxMyAwMzAxIDAzNDU7MUY5QzswMzk3IDAzMTMgMDMwMSAwMzQ1OworMUY5RDsxRjlEOzAzOTcgMDMxNCAwMzAxIDAzNDU7MUY5RDswMzk3IDAzMTQgMDMwMSAwMzQ1OworMUY5RTsxRjlFOzAzOTcgMDMxMyAwMzQyIDAzNDU7MUY5RTswMzk3IDAzMTMgMDM0MiAwMzQ1OworMUY5RjsxRjlGOzAzOTcgMDMxNCAwMzQyIDAzNDU7MUY5RjswMzk3IDAzMTQgMDM0MiAwMzQ1OworMUZBMDsxRkEwOzAzQzkgMDMxMyAwMzQ1OzFGQTA7MDNDOSAwMzEzIDAzNDU7CisxRkExOzFGQTE7MDNDOSAwMzE0IDAzNDU7MUZBMTswM0M5IDAzMTQgMDM0NTsKKzFGQTI7MUZBMjswM0M5IDAzMTMgMDMwMCAwMzQ1OzFGQTI7MDNDOSAwMzEzIDAzMDAgMDM0NTsKKzFGQTM7MUZBMzswM0M5IDAzMTQgMDMwMCAwMzQ1OzFGQTM7MDNDOSAwMzE0IDAzMDAgMDM0NTsKKzFGQTQ7MUZBNDswM0M5IDAzMTMgMDMwMSAwMzQ1OzFGQTQ7MDNDOSAwMzEzIDAzMDEgMDM0NTsKKzFGQTU7MUZBNTswM0M5IDAzMTQgMDMwMSAwMzQ1OzFGQTU7MDNDOSAwMzE0IDAzMDEgMDM0NTsKKzFGQTY7MUZBNjswM0M5IDAzMTMgMDM0MiAwMzQ1OzFGQTY7MDNDOSAwMzEzIDAzNDIgMDM0NTsKKzFGQTc7MUZBNzswM0M5IDAzMTQgMDM0MiAwMzQ1OzFGQTc7MDNDOSAwMzE0IDAzNDIgMDM0NTsKKzFGQTg7MUZBODswM0E5IDAzMTMgMDM0NTsxRkE4OzAzQTkgMDMxMyAwMzQ1OworMUZBOTsxRkE5OzAzQTkgMDMxNCAwMzQ1OzFGQTk7MDNBOSAwMzE0IDAzNDU7CisxRkFBOzFGQUE7MDNBOSAwMzEzIDAzMDAgMDM0NTsxRkFBOzAzQTkgMDMxMyAwMzAwIDAzNDU7CisxRkFCOzFGQUI7MDNBOSAwMzE0IDAzMDAgMDM0NTsxRkFCOzAzQTkgMDMxNCAwMzAwIDAzNDU7CisxRkFDOzFGQUM7MDNBOSAwMzEzIDAzMDEgMDM0NTsxRkFDOzAzQTkgMDMxMyAwMzAxIDAzNDU7CisxRkFEOzFGQUQ7MDNBOSAwMzE0IDAzMDEgMDM0NTsxRkFEOzAzQTkgMDMxNCAwMzAxIDAzNDU7CisxRkFFOzFGQUU7MDNBOSAwMzEzIDAzNDIgMDM0NTsxRkFFOzAzQTkgMDMxMyAwMzQyIDAzNDU7CisxRkFGOzFGQUY7MDNBOSAwMzE0IDAzNDIgMDM0NTsxRkFGOzAzQTkgMDMxNCAwMzQyIDAzNDU7CisxRkIwOzFGQjA7MDNCMSAwMzA2OzFGQjA7MDNCMSAwMzA2OworMUZCMTsxRkIxOzAzQjEgMDMwNDsxRkIxOzAzQjEgMDMwNDsKKzFGQjI7MUZCMjswM0IxIDAzMDAgMDM0NTsxRkIyOzAzQjEgMDMwMCAwMzQ1OworMUZCMzsxRkIzOzAzQjEgMDM0NTsxRkIzOzAzQjEgMDM0NTsKKzFGQjQ7MUZCNDswM0IxIDAzMDEgMDM0NTsxRkI0OzAzQjEgMDMwMSAwMzQ1OworMUZCNjsxRkI2OzAzQjEgMDM0MjsxRkI2OzAzQjEgMDM0MjsKKzFGQjc7MUZCNzswM0IxIDAzNDIgMDM0NTsxRkI3OzAzQjEgMDM0MiAwMzQ1OworMUZCODsxRkI4OzAzOTEgMDMwNjsxRkI4OzAzOTEgMDMwNjsKKzFGQjk7MUZCOTswMzkxIDAzMDQ7MUZCOTswMzkxIDAzMDQ7CisxRkJBOzFGQkE7MDM5MSAwMzAwOzFGQkE7MDM5MSAwMzAwOworMUZCQjswMzg2OzAzOTEgMDMwMTswMzg2OzAzOTEgMDMwMTsKKzFGQkM7MUZCQzswMzkxIDAzNDU7MUZCQzswMzkxIDAzNDU7CisxRkJEOzFGQkQ7MUZCRDswMDIwIDAzMTM7MDAyMCAwMzEzOworMUZCRTswM0I5OzAzQjk7MDNCOTswM0I5OworMUZCRjsxRkJGOzFGQkY7MDAyMCAwMzEzOzAwMjAgMDMxMzsKKzFGQzA7MUZDMDsxRkMwOzAwMjAgMDM0MjswMDIwIDAzNDI7CisxRkMxOzFGQzE7MDBBOCAwMzQyOzAwMjAgMDMwOCAwMzQyOzAwMjAgMDMwOCAwMzQyOworMUZDMjsxRkMyOzAzQjcgMDMwMCAwMzQ1OzFGQzI7MDNCNyAwMzAwIDAzNDU7CisxRkMzOzFGQzM7MDNCNyAwMzQ1OzFGQzM7MDNCNyAwMzQ1OworMUZDNDsxRkM0OzAzQjcgMDMwMSAwMzQ1OzFGQzQ7MDNCNyAwMzAxIDAzNDU7CisxRkM2OzFGQzY7MDNCNyAwMzQyOzFGQzY7MDNCNyAwMzQyOworMUZDNzsxRkM3OzAzQjcgMDM0MiAwMzQ1OzFGQzc7MDNCNyAwMzQyIDAzNDU7CisxRkM4OzFGQzg7MDM5NSAwMzAwOzFGQzg7MDM5NSAwMzAwOworMUZDOTswMzg4OzAzOTUgMDMwMTswMzg4OzAzOTUgMDMwMTsKKzFGQ0E7MUZDQTswMzk3IDAzMDA7MUZDQTswMzk3IDAzMDA7CisxRkNCOzAzODk7MDM5NyAwMzAxOzAzODk7MDM5NyAwMzAxOworMUZDQzsxRkNDOzAzOTcgMDM0NTsxRkNDOzAzOTcgMDM0NTsKKzFGQ0Q7MUZDRDsxRkJGIDAzMDA7MDAyMCAwMzEzIDAzMDA7MDAyMCAwMzEzIDAzMDA7CisxRkNFOzFGQ0U7MUZCRiAwMzAxOzAwMjAgMDMxMyAwMzAxOzAwMjAgMDMxMyAwMzAxOworMUZDRjsxRkNGOzFGQkYgMDM0MjswMDIwIDAzMTMgMDM0MjswMDIwIDAzMTMgMDM0MjsKKzFGRDA7MUZEMDswM0I5IDAzMDY7MUZEMDswM0I5IDAzMDY7CisxRkQxOzFGRDE7MDNCOSAwMzA0OzFGRDE7MDNCOSAwMzA0OworMUZEMjsxRkQyOzAzQjkgMDMwOCAwMzAwOzFGRDI7MDNCOSAwMzA4IDAzMDA7CisxRkQzOzAzOTA7MDNCOSAwMzA4IDAzMDE7MDM5MDswM0I5IDAzMDggMDMwMTsKKzFGRDY7MUZENjswM0I5IDAzNDI7MUZENjswM0I5IDAzNDI7CisxRkQ3OzFGRDc7MDNCOSAwMzA4IDAzNDI7MUZENzswM0I5IDAzMDggMDM0MjsKKzFGRDg7MUZEODswMzk5IDAzMDY7MUZEODswMzk5IDAzMDY7CisxRkQ5OzFGRDk7MDM5OSAwMzA0OzFGRDk7MDM5OSAwMzA0OworMUZEQTsxRkRBOzAzOTkgMDMwMDsxRkRBOzAzOTkgMDMwMDsKKzFGREI7MDM4QTswMzk5IDAzMDE7MDM4QTswMzk5IDAzMDE7CisxRkREOzFGREQ7MUZGRSAwMzAwOzAwMjAgMDMxNCAwMzAwOzAwMjAgMDMxNCAwMzAwOworMUZERTsxRkRFOzFGRkUgMDMwMTswMDIwIDAzMTQgMDMwMTswMDIwIDAzMTQgMDMwMTsKKzFGREY7MUZERjsxRkZFIDAzNDI7MDAyMCAwMzE0IDAzNDI7MDAyMCAwMzE0IDAzNDI7CisxRkUwOzFGRTA7MDNDNSAwMzA2OzFGRTA7MDNDNSAwMzA2OworMUZFMTsxRkUxOzAzQzUgMDMwNDsxRkUxOzAzQzUgMDMwNDsKKzFGRTI7MUZFMjswM0M1IDAzMDggMDMwMDsxRkUyOzAzQzUgMDMwOCAwMzAwOworMUZFMzswM0IwOzAzQzUgMDMwOCAwMzAxOzAzQjA7MDNDNSAwMzA4IDAzMDE7CisxRkU0OzFGRTQ7MDNDMSAwMzEzOzFGRTQ7MDNDMSAwMzEzOworMUZFNTsxRkU1OzAzQzEgMDMxNDsxRkU1OzAzQzEgMDMxNDsKKzFGRTY7MUZFNjswM0M1IDAzNDI7MUZFNjswM0M1IDAzNDI7CisxRkU3OzFGRTc7MDNDNSAwMzA4IDAzNDI7MUZFNzswM0M1IDAzMDggMDM0MjsKKzFGRTg7MUZFODswM0E1IDAzMDY7MUZFODswM0E1IDAzMDY7CisxRkU5OzFGRTk7MDNBNSAwMzA0OzFGRTk7MDNBNSAwMzA0OworMUZFQTsxRkVBOzAzQTUgMDMwMDsxRkVBOzAzQTUgMDMwMDsKKzFGRUI7MDM4RTswM0E1IDAzMDE7MDM4RTswM0E1IDAzMDE7CisxRkVDOzFGRUM7MDNBMSAwMzE0OzFGRUM7MDNBMSAwMzE0OworMUZFRDsxRkVEOzAwQTggMDMwMDswMDIwIDAzMDggMDMwMDswMDIwIDAzMDggMDMwMDsKKzFGRUU7MDM4NTswMEE4IDAzMDE7MDAyMCAwMzA4IDAzMDE7MDAyMCAwMzA4IDAzMDE7CisxRkVGOzAwNjA7MDA2MDswMDYwOzAwNjA7CisxRkYyOzFGRjI7MDNDOSAwMzAwIDAzNDU7MUZGMjswM0M5IDAzMDAgMDM0NTsKKzFGRjM7MUZGMzswM0M5IDAzNDU7MUZGMzswM0M5IDAzNDU7CisxRkY0OzFGRjQ7MDNDOSAwMzAxIDAzNDU7MUZGNDswM0M5IDAzMDEgMDM0NTsKKzFGRjY7MUZGNjswM0M5IDAzNDI7MUZGNjswM0M5IDAzNDI7CisxRkY3OzFGRjc7MDNDOSAwMzQyIDAzNDU7MUZGNzswM0M5IDAzNDIgMDM0NTsKKzFGRjg7MUZGODswMzlGIDAzMDA7MUZGODswMzlGIDAzMDA7CisxRkY5OzAzOEM7MDM5RiAwMzAxOzAzOEM7MDM5RiAwMzAxOworMUZGQTsxRkZBOzAzQTkgMDMwMDsxRkZBOzAzQTkgMDMwMDsKKzFGRkI7MDM4RjswM0E5IDAzMDE7MDM4RjswM0E5IDAzMDE7CisxRkZDOzFGRkM7MDNBOSAwMzQ1OzFGRkM7MDNBOSAwMzQ1OworMUZGRDswMEI0OzAwQjQ7MDAyMCAwMzAxOzAwMjAgMDMwMTsKKzFGRkU7MUZGRTsxRkZFOzAwMjAgMDMxNDswMDIwIDAzMTQ7CisyMDAwOzIwMDI7MjAwMjswMDIwOzAwMjA7CisyMDAxOzIwMDM7MjAwMzswMDIwOzAwMjA7CisyMDAyOzIwMDI7MjAwMjswMDIwOzAwMjA7CisyMDAzOzIwMDM7MjAwMzswMDIwOzAwMjA7CisyMDA0OzIwMDQ7MjAwNDswMDIwOzAwMjA7CisyMDA1OzIwMDU7MjAwNTswMDIwOzAwMjA7CisyMDA2OzIwMDY7MjAwNjswMDIwOzAwMjA7CisyMDA3OzIwMDc7MjAwNzswMDIwOzAwMjA7CisyMDA4OzIwMDg7MjAwODswMDIwOzAwMjA7CisyMDA5OzIwMDk7MjAwOTswMDIwOzAwMjA7CisyMDBBOzIwMEE7MjAwQTswMDIwOzAwMjA7CisyMDExOzIwMTE7MjAxMTsyMDEwOzIwMTA7CisyMDE3OzIwMTc7MjAxNzswMDIwIDAzMzM7MDAyMCAwMzMzOworMjAyNDsyMDI0OzIwMjQ7MDAyRTswMDJFOworMjAyNTsyMDI1OzIwMjU7MDAyRSAwMDJFOzAwMkUgMDAyRTsKKzIwMjY7MjAyNjsyMDI2OzAwMkUgMDAyRSAwMDJFOzAwMkUgMDAyRSAwMDJFOworMjAyRjsyMDJGOzIwMkY7MDAyMDswMDIwOworMjAzMzsyMDMzOzIwMzM7MjAzMiAyMDMyOzIwMzIgMjAzMjsKKzIwMzQ7MjAzNDsyMDM0OzIwMzIgMjAzMiAyMDMyOzIwMzIgMjAzMiAyMDMyOworMjAzNjsyMDM2OzIwMzY7MjAzNSAyMDM1OzIwMzUgMjAzNTsKKzIwMzc7MjAzNzsyMDM3OzIwMzUgMjAzNSAyMDM1OzIwMzUgMjAzNSAyMDM1OworMjAzQzsyMDNDOzIwM0M7MDAyMSAwMDIxOzAwMjEgMDAyMTsKKzIwM0U7MjAzRTsyMDNFOzAwMjAgMDMwNTswMDIwIDAzMDU7CisyMDQ3OzIwNDc7MjA0NzswMDNGIDAwM0Y7MDAzRiAwMDNGOworMjA0ODsyMDQ4OzIwNDg7MDAzRiAwMDIxOzAwM0YgMDAyMTsKKzIwNDk7MjA0OTsyMDQ5OzAwMjEgMDAzRjswMDIxIDAwM0Y7CisyMDU3OzIwNTc7MjA1NzsyMDMyIDIwMzIgMjAzMiAyMDMyOzIwMzIgMjAzMiAyMDMyIDIwMzI7CisyMDVGOzIwNUY7MjA1RjswMDIwOzAwMjA7CisyMDcwOzIwNzA7MjA3MDswMDMwOzAwMzA7CisyMDcxOzIwNzE7MjA3MTswMDY5OzAwNjk7CisyMDc0OzIwNzQ7MjA3NDswMDM0OzAwMzQ7CisyMDc1OzIwNzU7MjA3NTswMDM1OzAwMzU7CisyMDc2OzIwNzY7MjA3NjswMDM2OzAwMzY7CisyMDc3OzIwNzc7MjA3NzswMDM3OzAwMzc7CisyMDc4OzIwNzg7MjA3ODswMDM4OzAwMzg7CisyMDc5OzIwNzk7MjA3OTswMDM5OzAwMzk7CisyMDdBOzIwN0E7MjA3QTswMDJCOzAwMkI7CisyMDdCOzIwN0I7MjA3QjsyMjEyOzIyMTI7CisyMDdDOzIwN0M7MjA3QzswMDNEOzAwM0Q7CisyMDdEOzIwN0Q7MjA3RDswMDI4OzAwMjg7CisyMDdFOzIwN0U7MjA3RTswMDI5OzAwMjk7CisyMDdGOzIwN0Y7MjA3RjswMDZFOzAwNkU7CisyMDgwOzIwODA7MjA4MDswMDMwOzAwMzA7CisyMDgxOzIwODE7MjA4MTswMDMxOzAwMzE7CisyMDgyOzIwODI7MjA4MjswMDMyOzAwMzI7CisyMDgzOzIwODM7MjA4MzswMDMzOzAwMzM7CisyMDg0OzIwODQ7MjA4NDswMDM0OzAwMzQ7CisyMDg1OzIwODU7MjA4NTswMDM1OzAwMzU7CisyMDg2OzIwODY7MjA4NjswMDM2OzAwMzY7CisyMDg3OzIwODc7MjA4NzswMDM3OzAwMzc7CisyMDg4OzIwODg7MjA4ODswMDM4OzAwMzg7CisyMDg5OzIwODk7MjA4OTswMDM5OzAwMzk7CisyMDhBOzIwOEE7MjA4QTswMDJCOzAwMkI7CisyMDhCOzIwOEI7MjA4QjsyMjEyOzIyMTI7CisyMDhDOzIwOEM7MjA4QzswMDNEOzAwM0Q7CisyMDhEOzIwOEQ7MjA4RDswMDI4OzAwMjg7CisyMDhFOzIwOEU7MjA4RTswMDI5OzAwMjk7CisyMEE4OzIwQTg7MjBBODswMDUyIDAwNzM7MDA1MiAwMDczOworMjEwMDsyMTAwOzIxMDA7MDA2MSAwMDJGIDAwNjM7MDA2MSAwMDJGIDAwNjM7CisyMTAxOzIxMDE7MjEwMTswMDYxIDAwMkYgMDA3MzswMDYxIDAwMkYgMDA3MzsKKzIxMDI7MjEwMjsyMTAyOzAwNDM7MDA0MzsKKzIxMDM7MjEwMzsyMTAzOzAwQjAgMDA0MzswMEIwIDAwNDM7CisyMTA1OzIxMDU7MjEwNTswMDYzIDAwMkYgMDA2RjswMDYzIDAwMkYgMDA2RjsKKzIxMDY7MjEwNjsyMTA2OzAwNjMgMDAyRiAwMDc1OzAwNjMgMDAyRiAwMDc1OworMjEwNzsyMTA3OzIxMDc7MDE5MDswMTkwOworMjEwOTsyMTA5OzIxMDk7MDBCMCAwMDQ2OzAwQjAgMDA0NjsKKzIxMEE7MjEwQTsyMTBBOzAwNjc7MDA2NzsKKzIxMEI7MjEwQjsyMTBCOzAwNDg7MDA0ODsKKzIxMEM7MjEwQzsyMTBDOzAwNDg7MDA0ODsKKzIxMEQ7MjEwRDsyMTBEOzAwNDg7MDA0ODsKKzIxMEU7MjEwRTsyMTBFOzAwNjg7MDA2ODsKKzIxMEY7MjEwRjsyMTBGOzAxMjc7MDEyNzsKKzIxMTA7MjExMDsyMTEwOzAwNDk7MDA0OTsKKzIxMTE7MjExMTsyMTExOzAwNDk7MDA0OTsKKzIxMTI7MjExMjsyMTEyOzAwNEM7MDA0QzsKKzIxMTM7MjExMzsyMTEzOzAwNkM7MDA2QzsKKzIxMTU7MjExNTsyMTE1OzAwNEU7MDA0RTsKKzIxMTY7MjExNjsyMTE2OzAwNEUgMDA2RjswMDRFIDAwNkY7CisyMTE5OzIxMTk7MjExOTswMDUwOzAwNTA7CisyMTFBOzIxMUE7MjExQTswMDUxOzAwNTE7CisyMTFCOzIxMUI7MjExQjswMDUyOzAwNTI7CisyMTFDOzIxMUM7MjExQzswMDUyOzAwNTI7CisyMTFEOzIxMUQ7MjExRDswMDUyOzAwNTI7CisyMTIwOzIxMjA7MjEyMDswMDUzIDAwNEQ7MDA1MyAwMDREOworMjEyMTsyMTIxOzIxMjE7MDA1NCAwMDQ1IDAwNEM7MDA1NCAwMDQ1IDAwNEM7CisyMTIyOzIxMjI7MjEyMjswMDU0IDAwNEQ7MDA1NCAwMDREOworMjEyNDsyMTI0OzIxMjQ7MDA1QTswMDVBOworMjEyNjswM0E5OzAzQTk7MDNBOTswM0E5OworMjEyODsyMTI4OzIxMjg7MDA1QTswMDVBOworMjEyQTswMDRCOzAwNEI7MDA0QjswMDRCOworMjEyQjswMEM1OzAwNDEgMDMwQTswMEM1OzAwNDEgMDMwQTsKKzIxMkM7MjEyQzsyMTJDOzAwNDI7MDA0MjsKKzIxMkQ7MjEyRDsyMTJEOzAwNDM7MDA0MzsKKzIxMkY7MjEyRjsyMTJGOzAwNjU7MDA2NTsKKzIxMzA7MjEzMDsyMTMwOzAwNDU7MDA0NTsKKzIxMzE7MjEzMTsyMTMxOzAwNDY7MDA0NjsKKzIxMzM7MjEzMzsyMTMzOzAwNEQ7MDA0RDsKKzIxMzQ7MjEzNDsyMTM0OzAwNkY7MDA2RjsKKzIxMzU7MjEzNTsyMTM1OzA1RDA7MDVEMDsKKzIxMzY7MjEzNjsyMTM2OzA1RDE7MDVEMTsKKzIxMzc7MjEzNzsyMTM3OzA1RDI7MDVEMjsKKzIxMzg7MjEzODsyMTM4OzA1RDM7MDVEMzsKKzIxMzk7MjEzOTsyMTM5OzAwNjk7MDA2OTsKKzIxM0Q7MjEzRDsyMTNEOzAzQjM7MDNCMzsKKzIxM0U7MjEzRTsyMTNFOzAzOTM7MDM5MzsKKzIxM0Y7MjEzRjsyMTNGOzAzQTA7MDNBMDsKKzIxNDA7MjE0MDsyMTQwOzIyMTE7MjIxMTsKKzIxNDU7MjE0NTsyMTQ1OzAwNDQ7MDA0NDsKKzIxNDY7MjE0NjsyMTQ2OzAwNjQ7MDA2NDsKKzIxNDc7MjE0NzsyMTQ3OzAwNjU7MDA2NTsKKzIxNDg7MjE0ODsyMTQ4OzAwNjk7MDA2OTsKKzIxNDk7MjE0OTsyMTQ5OzAwNkE7MDA2QTsKKzIxNTM7MjE1MzsyMTUzOzAwMzEgMjA0NCAwMDMzOzAwMzEgMjA0NCAwMDMzOworMjE1NDsyMTU0OzIxNTQ7MDAzMiAyMDQ0IDAwMzM7MDAzMiAyMDQ0IDAwMzM7CisyMTU1OzIxNTU7MjE1NTswMDMxIDIwNDQgMDAzNTswMDMxIDIwNDQgMDAzNTsKKzIxNTY7MjE1NjsyMTU2OzAwMzIgMjA0NCAwMDM1OzAwMzIgMjA0NCAwMDM1OworMjE1NzsyMTU3OzIxNTc7MDAzMyAyMDQ0IDAwMzU7MDAzMyAyMDQ0IDAwMzU7CisyMTU4OzIxNTg7MjE1ODswMDM0IDIwNDQgMDAzNTswMDM0IDIwNDQgMDAzNTsKKzIxNTk7MjE1OTsyMTU5OzAwMzEgMjA0NCAwMDM2OzAwMzEgMjA0NCAwMDM2OworMjE1QTsyMTVBOzIxNUE7MDAzNSAyMDQ0IDAwMzY7MDAzNSAyMDQ0IDAwMzY7CisyMTVCOzIxNUI7MjE1QjswMDMxIDIwNDQgMDAzODswMDMxIDIwNDQgMDAzODsKKzIxNUM7MjE1QzsyMTVDOzAwMzMgMjA0NCAwMDM4OzAwMzMgMjA0NCAwMDM4OworMjE1RDsyMTVEOzIxNUQ7MDAzNSAyMDQ0IDAwMzg7MDAzNSAyMDQ0IDAwMzg7CisyMTVFOzIxNUU7MjE1RTswMDM3IDIwNDQgMDAzODswMDM3IDIwNDQgMDAzODsKKzIxNUY7MjE1RjsyMTVGOzAwMzEgMjA0NDswMDMxIDIwNDQ7CisyMTYwOzIxNjA7MjE2MDswMDQ5OzAwNDk7CisyMTYxOzIxNjE7MjE2MTswMDQ5IDAwNDk7MDA0OSAwMDQ5OworMjE2MjsyMTYyOzIxNjI7MDA0OSAwMDQ5IDAwNDk7MDA0OSAwMDQ5IDAwNDk7CisyMTYzOzIxNjM7MjE2MzswMDQ5IDAwNTY7MDA0OSAwMDU2OworMjE2NDsyMTY0OzIxNjQ7MDA1NjswMDU2OworMjE2NTsyMTY1OzIxNjU7MDA1NiAwMDQ5OzAwNTYgMDA0OTsKKzIxNjY7MjE2NjsyMTY2OzAwNTYgMDA0OSAwMDQ5OzAwNTYgMDA0OSAwMDQ5OworMjE2NzsyMTY3OzIxNjc7MDA1NiAwMDQ5IDAwNDkgMDA0OTswMDU2IDAwNDkgMDA0OSAwMDQ5OworMjE2ODsyMTY4OzIxNjg7MDA0OSAwMDU4OzAwNDkgMDA1ODsKKzIxNjk7MjE2OTsyMTY5OzAwNTg7MDA1ODsKKzIxNkE7MjE2QTsyMTZBOzAwNTggMDA0OTswMDU4IDAwNDk7CisyMTZCOzIxNkI7MjE2QjswMDU4IDAwNDkgMDA0OTswMDU4IDAwNDkgMDA0OTsKKzIxNkM7MjE2QzsyMTZDOzAwNEM7MDA0QzsKKzIxNkQ7MjE2RDsyMTZEOzAwNDM7MDA0MzsKKzIxNkU7MjE2RTsyMTZFOzAwNDQ7MDA0NDsKKzIxNkY7MjE2RjsyMTZGOzAwNEQ7MDA0RDsKKzIxNzA7MjE3MDsyMTcwOzAwNjk7MDA2OTsKKzIxNzE7MjE3MTsyMTcxOzAwNjkgMDA2OTswMDY5IDAwNjk7CisyMTcyOzIxNzI7MjE3MjswMDY5IDAwNjkgMDA2OTswMDY5IDAwNjkgMDA2OTsKKzIxNzM7MjE3MzsyMTczOzAwNjkgMDA3NjswMDY5IDAwNzY7CisyMTc0OzIxNzQ7MjE3NDswMDc2OzAwNzY7CisyMTc1OzIxNzU7MjE3NTswMDc2IDAwNjk7MDA3NiAwMDY5OworMjE3NjsyMTc2OzIxNzY7MDA3NiAwMDY5IDAwNjk7MDA3NiAwMDY5IDAwNjk7CisyMTc3OzIxNzc7MjE3NzswMDc2IDAwNjkgMDA2OSAwMDY5OzAwNzYgMDA2OSAwMDY5IDAwNjk7CisyMTc4OzIxNzg7MjE3ODswMDY5IDAwNzg7MDA2OSAwMDc4OworMjE3OTsyMTc5OzIxNzk7MDA3ODswMDc4OworMjE3QTsyMTdBOzIxN0E7MDA3OCAwMDY5OzAwNzggMDA2OTsKKzIxN0I7MjE3QjsyMTdCOzAwNzggMDA2OSAwMDY5OzAwNzggMDA2OSAwMDY5OworMjE3QzsyMTdDOzIxN0M7MDA2QzswMDZDOworMjE3RDsyMTdEOzIxN0Q7MDA2MzswMDYzOworMjE3RTsyMTdFOzIxN0U7MDA2NDswMDY0OworMjE3RjsyMTdGOzIxN0Y7MDA2RDswMDZEOworMjE5QTsyMTlBOzIxOTAgMDMzODsyMTlBOzIxOTAgMDMzODsKKzIxOUI7MjE5QjsyMTkyIDAzMzg7MjE5QjsyMTkyIDAzMzg7CisyMUFFOzIxQUU7MjE5NCAwMzM4OzIxQUU7MjE5NCAwMzM4OworMjFDRDsyMUNEOzIxRDAgMDMzODsyMUNEOzIxRDAgMDMzODsKKzIxQ0U7MjFDRTsyMUQ0IDAzMzg7MjFDRTsyMUQ0IDAzMzg7CisyMUNGOzIxQ0Y7MjFEMiAwMzM4OzIxQ0Y7MjFEMiAwMzM4OworMjIwNDsyMjA0OzIyMDMgMDMzODsyMjA0OzIyMDMgMDMzODsKKzIyMDk7MjIwOTsyMjA4IDAzMzg7MjIwOTsyMjA4IDAzMzg7CisyMjBDOzIyMEM7MjIwQiAwMzM4OzIyMEM7MjIwQiAwMzM4OworMjIyNDsyMjI0OzIyMjMgMDMzODsyMjI0OzIyMjMgMDMzODsKKzIyMjY7MjIyNjsyMjI1IDAzMzg7MjIyNjsyMjI1IDAzMzg7CisyMjJDOzIyMkM7MjIyQzsyMjJCIDIyMkI7MjIyQiAyMjJCOworMjIyRDsyMjJEOzIyMkQ7MjIyQiAyMjJCIDIyMkI7MjIyQiAyMjJCIDIyMkI7CisyMjJGOzIyMkY7MjIyRjsyMjJFIDIyMkU7MjIyRSAyMjJFOworMjIzMDsyMjMwOzIyMzA7MjIyRSAyMjJFIDIyMkU7MjIyRSAyMjJFIDIyMkU7CisyMjQxOzIyNDE7MjIzQyAwMzM4OzIyNDE7MjIzQyAwMzM4OworMjI0NDsyMjQ0OzIyNDMgMDMzODsyMjQ0OzIyNDMgMDMzODsKKzIyNDc7MjI0NzsyMjQ1IDAzMzg7MjI0NzsyMjQ1IDAzMzg7CisyMjQ5OzIyNDk7MjI0OCAwMzM4OzIyNDk7MjI0OCAwMzM4OworMjI2MDsyMjYwOzAwM0QgMDMzODsyMjYwOzAwM0QgMDMzODsKKzIyNjI7MjI2MjsyMjYxIDAzMzg7MjI2MjsyMjYxIDAzMzg7CisyMjZEOzIyNkQ7MjI0RCAwMzM4OzIyNkQ7MjI0RCAwMzM4OworMjI2RTsyMjZFOzAwM0MgMDMzODsyMjZFOzAwM0MgMDMzODsKKzIyNkY7MjI2RjswMDNFIDAzMzg7MjI2RjswMDNFIDAzMzg7CisyMjcwOzIyNzA7MjI2NCAwMzM4OzIyNzA7MjI2NCAwMzM4OworMjI3MTsyMjcxOzIyNjUgMDMzODsyMjcxOzIyNjUgMDMzODsKKzIyNzQ7MjI3NDsyMjcyIDAzMzg7MjI3NDsyMjcyIDAzMzg7CisyMjc1OzIyNzU7MjI3MyAwMzM4OzIyNzU7MjI3MyAwMzM4OworMjI3ODsyMjc4OzIyNzYgMDMzODsyMjc4OzIyNzYgMDMzODsKKzIyNzk7MjI3OTsyMjc3IDAzMzg7MjI3OTsyMjc3IDAzMzg7CisyMjgwOzIyODA7MjI3QSAwMzM4OzIyODA7MjI3QSAwMzM4OworMjI4MTsyMjgxOzIyN0IgMDMzODsyMjgxOzIyN0IgMDMzODsKKzIyODQ7MjI4NDsyMjgyIDAzMzg7MjI4NDsyMjgyIDAzMzg7CisyMjg1OzIyODU7MjI4MyAwMzM4OzIyODU7MjI4MyAwMzM4OworMjI4ODsyMjg4OzIyODYgMDMzODsyMjg4OzIyODYgMDMzODsKKzIyODk7MjI4OTsyMjg3IDAzMzg7MjI4OTsyMjg3IDAzMzg7CisyMkFDOzIyQUM7MjJBMiAwMzM4OzIyQUM7MjJBMiAwMzM4OworMjJBRDsyMkFEOzIyQTggMDMzODsyMkFEOzIyQTggMDMzODsKKzIyQUU7MjJBRTsyMkE5IDAzMzg7MjJBRTsyMkE5IDAzMzg7CisyMkFGOzIyQUY7MjJBQiAwMzM4OzIyQUY7MjJBQiAwMzM4OworMjJFMDsyMkUwOzIyN0MgMDMzODsyMkUwOzIyN0MgMDMzODsKKzIyRTE7MjJFMTsyMjdEIDAzMzg7MjJFMTsyMjdEIDAzMzg7CisyMkUyOzIyRTI7MjI5MSAwMzM4OzIyRTI7MjI5MSAwMzM4OworMjJFMzsyMkUzOzIyOTIgMDMzODsyMkUzOzIyOTIgMDMzODsKKzIyRUE7MjJFQTsyMkIyIDAzMzg7MjJFQTsyMkIyIDAzMzg7CisyMkVCOzIyRUI7MjJCMyAwMzM4OzIyRUI7MjJCMyAwMzM4OworMjJFQzsyMkVDOzIyQjQgMDMzODsyMkVDOzIyQjQgMDMzODsKKzIyRUQ7MjJFRDsyMkI1IDAzMzg7MjJFRDsyMkI1IDAzMzg7CisyMzI5OzMwMDg7MzAwODszMDA4OzMwMDg7CisyMzJBOzMwMDk7MzAwOTszMDA5OzMwMDk7CisyNDYwOzI0NjA7MjQ2MDswMDMxOzAwMzE7CisyNDYxOzI0NjE7MjQ2MTswMDMyOzAwMzI7CisyNDYyOzI0NjI7MjQ2MjswMDMzOzAwMzM7CisyNDYzOzI0NjM7MjQ2MzswMDM0OzAwMzQ7CisyNDY0OzI0NjQ7MjQ2NDswMDM1OzAwMzU7CisyNDY1OzI0NjU7MjQ2NTswMDM2OzAwMzY7CisyNDY2OzI0NjY7MjQ2NjswMDM3OzAwMzc7CisyNDY3OzI0Njc7MjQ2NzswMDM4OzAwMzg7CisyNDY4OzI0Njg7MjQ2ODswMDM5OzAwMzk7CisyNDY5OzI0Njk7MjQ2OTswMDMxIDAwMzA7MDAzMSAwMDMwOworMjQ2QTsyNDZBOzI0NkE7MDAzMSAwMDMxOzAwMzEgMDAzMTsKKzI0NkI7MjQ2QjsyNDZCOzAwMzEgMDAzMjswMDMxIDAwMzI7CisyNDZDOzI0NkM7MjQ2QzswMDMxIDAwMzM7MDAzMSAwMDMzOworMjQ2RDsyNDZEOzI0NkQ7MDAzMSAwMDM0OzAwMzEgMDAzNDsKKzI0NkU7MjQ2RTsyNDZFOzAwMzEgMDAzNTswMDMxIDAwMzU7CisyNDZGOzI0NkY7MjQ2RjswMDMxIDAwMzY7MDAzMSAwMDM2OworMjQ3MDsyNDcwOzI0NzA7MDAzMSAwMDM3OzAwMzEgMDAzNzsKKzI0NzE7MjQ3MTsyNDcxOzAwMzEgMDAzODswMDMxIDAwMzg7CisyNDcyOzI0NzI7MjQ3MjswMDMxIDAwMzk7MDAzMSAwMDM5OworMjQ3MzsyNDczOzI0NzM7MDAzMiAwMDMwOzAwMzIgMDAzMDsKKzI0NzQ7MjQ3NDsyNDc0OzAwMjggMDAzMSAwMDI5OzAwMjggMDAzMSAwMDI5OworMjQ3NTsyNDc1OzI0NzU7MDAyOCAwMDMyIDAwMjk7MDAyOCAwMDMyIDAwMjk7CisyNDc2OzI0NzY7MjQ3NjswMDI4IDAwMzMgMDAyOTswMDI4IDAwMzMgMDAyOTsKKzI0Nzc7MjQ3NzsyNDc3OzAwMjggMDAzNCAwMDI5OzAwMjggMDAzNCAwMDI5OworMjQ3ODsyNDc4OzI0Nzg7MDAyOCAwMDM1IDAwMjk7MDAyOCAwMDM1IDAwMjk7CisyNDc5OzI0Nzk7MjQ3OTswMDI4IDAwMzYgMDAyOTswMDI4IDAwMzYgMDAyOTsKKzI0N0E7MjQ3QTsyNDdBOzAwMjggMDAzNyAwMDI5OzAwMjggMDAzNyAwMDI5OworMjQ3QjsyNDdCOzI0N0I7MDAyOCAwMDM4IDAwMjk7MDAyOCAwMDM4IDAwMjk7CisyNDdDOzI0N0M7MjQ3QzswMDI4IDAwMzkgMDAyOTswMDI4IDAwMzkgMDAyOTsKKzI0N0Q7MjQ3RDsyNDdEOzAwMjggMDAzMSAwMDMwIDAwMjk7MDAyOCAwMDMxIDAwMzAgMDAyOTsKKzI0N0U7MjQ3RTsyNDdFOzAwMjggMDAzMSAwMDMxIDAwMjk7MDAyOCAwMDMxIDAwMzEgMDAyOTsKKzI0N0Y7MjQ3RjsyNDdGOzAwMjggMDAzMSAwMDMyIDAwMjk7MDAyOCAwMDMxIDAwMzIgMDAyOTsKKzI0ODA7MjQ4MDsyNDgwOzAwMjggMDAzMSAwMDMzIDAwMjk7MDAyOCAwMDMxIDAwMzMgMDAyOTsKKzI0ODE7MjQ4MTsyNDgxOzAwMjggMDAzMSAwMDM0IDAwMjk7MDAyOCAwMDMxIDAwMzQgMDAyOTsKKzI0ODI7MjQ4MjsyNDgyOzAwMjggMDAzMSAwMDM1IDAwMjk7MDAyOCAwMDMxIDAwMzUgMDAyOTsKKzI0ODM7MjQ4MzsyNDgzOzAwMjggMDAzMSAwMDM2IDAwMjk7MDAyOCAwMDMxIDAwMzYgMDAyOTsKKzI0ODQ7MjQ4NDsyNDg0OzAwMjggMDAzMSAwMDM3IDAwMjk7MDAyOCAwMDMxIDAwMzcgMDAyOTsKKzI0ODU7MjQ4NTsyNDg1OzAwMjggMDAzMSAwMDM4IDAwMjk7MDAyOCAwMDMxIDAwMzggMDAyOTsKKzI0ODY7MjQ4NjsyNDg2OzAwMjggMDAzMSAwMDM5IDAwMjk7MDAyOCAwMDMxIDAwMzkgMDAyOTsKKzI0ODc7MjQ4NzsyNDg3OzAwMjggMDAzMiAwMDMwIDAwMjk7MDAyOCAwMDMyIDAwMzAgMDAyOTsKKzI0ODg7MjQ4ODsyNDg4OzAwMzEgMDAyRTswMDMxIDAwMkU7CisyNDg5OzI0ODk7MjQ4OTswMDMyIDAwMkU7MDAzMiAwMDJFOworMjQ4QTsyNDhBOzI0OEE7MDAzMyAwMDJFOzAwMzMgMDAyRTsKKzI0OEI7MjQ4QjsyNDhCOzAwMzQgMDAyRTswMDM0IDAwMkU7CisyNDhDOzI0OEM7MjQ4QzswMDM1IDAwMkU7MDAzNSAwMDJFOworMjQ4RDsyNDhEOzI0OEQ7MDAzNiAwMDJFOzAwMzYgMDAyRTsKKzI0OEU7MjQ4RTsyNDhFOzAwMzcgMDAyRTswMDM3IDAwMkU7CisyNDhGOzI0OEY7MjQ4RjswMDM4IDAwMkU7MDAzOCAwMDJFOworMjQ5MDsyNDkwOzI0OTA7MDAzOSAwMDJFOzAwMzkgMDAyRTsKKzI0OTE7MjQ5MTsyNDkxOzAwMzEgMDAzMCAwMDJFOzAwMzEgMDAzMCAwMDJFOworMjQ5MjsyNDkyOzI0OTI7MDAzMSAwMDMxIDAwMkU7MDAzMSAwMDMxIDAwMkU7CisyNDkzOzI0OTM7MjQ5MzswMDMxIDAwMzIgMDAyRTswMDMxIDAwMzIgMDAyRTsKKzI0OTQ7MjQ5NDsyNDk0OzAwMzEgMDAzMyAwMDJFOzAwMzEgMDAzMyAwMDJFOworMjQ5NTsyNDk1OzI0OTU7MDAzMSAwMDM0IDAwMkU7MDAzMSAwMDM0IDAwMkU7CisyNDk2OzI0OTY7MjQ5NjswMDMxIDAwMzUgMDAyRTswMDMxIDAwMzUgMDAyRTsKKzI0OTc7MjQ5NzsyNDk3OzAwMzEgMDAzNiAwMDJFOzAwMzEgMDAzNiAwMDJFOworMjQ5ODsyNDk4OzI0OTg7MDAzMSAwMDM3IDAwMkU7MDAzMSAwMDM3IDAwMkU7CisyNDk5OzI0OTk7MjQ5OTswMDMxIDAwMzggMDAyRTswMDMxIDAwMzggMDAyRTsKKzI0OUE7MjQ5QTsyNDlBOzAwMzEgMDAzOSAwMDJFOzAwMzEgMDAzOSAwMDJFOworMjQ5QjsyNDlCOzI0OUI7MDAzMiAwMDMwIDAwMkU7MDAzMiAwMDMwIDAwMkU7CisyNDlDOzI0OUM7MjQ5QzswMDI4IDAwNjEgMDAyOTswMDI4IDAwNjEgMDAyOTsKKzI0OUQ7MjQ5RDsyNDlEOzAwMjggMDA2MiAwMDI5OzAwMjggMDA2MiAwMDI5OworMjQ5RTsyNDlFOzI0OUU7MDAyOCAwMDYzIDAwMjk7MDAyOCAwMDYzIDAwMjk7CisyNDlGOzI0OUY7MjQ5RjswMDI4IDAwNjQgMDAyOTswMDI4IDAwNjQgMDAyOTsKKzI0QTA7MjRBMDsyNEEwOzAwMjggMDA2NSAwMDI5OzAwMjggMDA2NSAwMDI5OworMjRBMTsyNEExOzI0QTE7MDAyOCAwMDY2IDAwMjk7MDAyOCAwMDY2IDAwMjk7CisyNEEyOzI0QTI7MjRBMjswMDI4IDAwNjcgMDAyOTswMDI4IDAwNjcgMDAyOTsKKzI0QTM7MjRBMzsyNEEzOzAwMjggMDA2OCAwMDI5OzAwMjggMDA2OCAwMDI5OworMjRBNDsyNEE0OzI0QTQ7MDAyOCAwMDY5IDAwMjk7MDAyOCAwMDY5IDAwMjk7CisyNEE1OzI0QTU7MjRBNTswMDI4IDAwNkEgMDAyOTswMDI4IDAwNkEgMDAyOTsKKzI0QTY7MjRBNjsyNEE2OzAwMjggMDA2QiAwMDI5OzAwMjggMDA2QiAwMDI5OworMjRBNzsyNEE3OzI0QTc7MDAyOCAwMDZDIDAwMjk7MDAyOCAwMDZDIDAwMjk7CisyNEE4OzI0QTg7MjRBODswMDI4IDAwNkQgMDAyOTswMDI4IDAwNkQgMDAyOTsKKzI0QTk7MjRBOTsyNEE5OzAwMjggMDA2RSAwMDI5OzAwMjggMDA2RSAwMDI5OworMjRBQTsyNEFBOzI0QUE7MDAyOCAwMDZGIDAwMjk7MDAyOCAwMDZGIDAwMjk7CisyNEFCOzI0QUI7MjRBQjswMDI4IDAwNzAgMDAyOTswMDI4IDAwNzAgMDAyOTsKKzI0QUM7MjRBQzsyNEFDOzAwMjggMDA3MSAwMDI5OzAwMjggMDA3MSAwMDI5OworMjRBRDsyNEFEOzI0QUQ7MDAyOCAwMDcyIDAwMjk7MDAyOCAwMDcyIDAwMjk7CisyNEFFOzI0QUU7MjRBRTswMDI4IDAwNzMgMDAyOTswMDI4IDAwNzMgMDAyOTsKKzI0QUY7MjRBRjsyNEFGOzAwMjggMDA3NCAwMDI5OzAwMjggMDA3NCAwMDI5OworMjRCMDsyNEIwOzI0QjA7MDAyOCAwMDc1IDAwMjk7MDAyOCAwMDc1IDAwMjk7CisyNEIxOzI0QjE7MjRCMTswMDI4IDAwNzYgMDAyOTswMDI4IDAwNzYgMDAyOTsKKzI0QjI7MjRCMjsyNEIyOzAwMjggMDA3NyAwMDI5OzAwMjggMDA3NyAwMDI5OworMjRCMzsyNEIzOzI0QjM7MDAyOCAwMDc4IDAwMjk7MDAyOCAwMDc4IDAwMjk7CisyNEI0OzI0QjQ7MjRCNDswMDI4IDAwNzkgMDAyOTswMDI4IDAwNzkgMDAyOTsKKzI0QjU7MjRCNTsyNEI1OzAwMjggMDA3QSAwMDI5OzAwMjggMDA3QSAwMDI5OworMjRCNjsyNEI2OzI0QjY7MDA0MTswMDQxOworMjRCNzsyNEI3OzI0Qjc7MDA0MjswMDQyOworMjRCODsyNEI4OzI0Qjg7MDA0MzswMDQzOworMjRCOTsyNEI5OzI0Qjk7MDA0NDswMDQ0OworMjRCQTsyNEJBOzI0QkE7MDA0NTswMDQ1OworMjRCQjsyNEJCOzI0QkI7MDA0NjswMDQ2OworMjRCQzsyNEJDOzI0QkM7MDA0NzswMDQ3OworMjRCRDsyNEJEOzI0QkQ7MDA0ODswMDQ4OworMjRCRTsyNEJFOzI0QkU7MDA0OTswMDQ5OworMjRCRjsyNEJGOzI0QkY7MDA0QTswMDRBOworMjRDMDsyNEMwOzI0QzA7MDA0QjswMDRCOworMjRDMTsyNEMxOzI0QzE7MDA0QzswMDRDOworMjRDMjsyNEMyOzI0QzI7MDA0RDswMDREOworMjRDMzsyNEMzOzI0QzM7MDA0RTswMDRFOworMjRDNDsyNEM0OzI0QzQ7MDA0RjswMDRGOworMjRDNTsyNEM1OzI0QzU7MDA1MDswMDUwOworMjRDNjsyNEM2OzI0QzY7MDA1MTswMDUxOworMjRDNzsyNEM3OzI0Qzc7MDA1MjswMDUyOworMjRDODsyNEM4OzI0Qzg7MDA1MzswMDUzOworMjRDOTsyNEM5OzI0Qzk7MDA1NDswMDU0OworMjRDQTsyNENBOzI0Q0E7MDA1NTswMDU1OworMjRDQjsyNENCOzI0Q0I7MDA1NjswMDU2OworMjRDQzsyNENDOzI0Q0M7MDA1NzswMDU3OworMjRDRDsyNENEOzI0Q0Q7MDA1ODswMDU4OworMjRDRTsyNENFOzI0Q0U7MDA1OTswMDU5OworMjRDRjsyNENGOzI0Q0Y7MDA1QTswMDVBOworMjREMDsyNEQwOzI0RDA7MDA2MTswMDYxOworMjREMTsyNEQxOzI0RDE7MDA2MjswMDYyOworMjREMjsyNEQyOzI0RDI7MDA2MzswMDYzOworMjREMzsyNEQzOzI0RDM7MDA2NDswMDY0OworMjRENDsyNEQ0OzI0RDQ7MDA2NTswMDY1OworMjRENTsyNEQ1OzI0RDU7MDA2NjswMDY2OworMjRENjsyNEQ2OzI0RDY7MDA2NzswMDY3OworMjRENzsyNEQ3OzI0RDc7MDA2ODswMDY4OworMjREODsyNEQ4OzI0RDg7MDA2OTswMDY5OworMjREOTsyNEQ5OzI0RDk7MDA2QTswMDZBOworMjREQTsyNERBOzI0REE7MDA2QjswMDZCOworMjREQjsyNERCOzI0REI7MDA2QzswMDZDOworMjREQzsyNERDOzI0REM7MDA2RDswMDZEOworMjRERDsyNEREOzI0REQ7MDA2RTswMDZFOworMjRERTsyNERFOzI0REU7MDA2RjswMDZGOworMjRERjsyNERGOzI0REY7MDA3MDswMDcwOworMjRFMDsyNEUwOzI0RTA7MDA3MTswMDcxOworMjRFMTsyNEUxOzI0RTE7MDA3MjswMDcyOworMjRFMjsyNEUyOzI0RTI7MDA3MzswMDczOworMjRFMzsyNEUzOzI0RTM7MDA3NDswMDc0OworMjRFNDsyNEU0OzI0RTQ7MDA3NTswMDc1OworMjRFNTsyNEU1OzI0RTU7MDA3NjswMDc2OworMjRFNjsyNEU2OzI0RTY7MDA3NzswMDc3OworMjRFNzsyNEU3OzI0RTc7MDA3ODswMDc4OworMjRFODsyNEU4OzI0RTg7MDA3OTswMDc5OworMjRFOTsyNEU5OzI0RTk7MDA3QTswMDdBOworMjRFQTsyNEVBOzI0RUE7MDAzMDswMDMwOworMkEwQzsyQTBDOzJBMEM7MjIyQiAyMjJCIDIyMkIgMjIyQjsyMjJCIDIyMkIgMjIyQiAyMjJCOworMkE3NDsyQTc0OzJBNzQ7MDAzQSAwMDNBIDAwM0Q7MDAzQSAwMDNBIDAwM0Q7CisyQTc1OzJBNzU7MkE3NTswMDNEIDAwM0Q7MDAzRCAwMDNEOworMkE3NjsyQTc2OzJBNzY7MDAzRCAwMDNEIDAwM0Q7MDAzRCAwMDNEIDAwM0Q7CisyQURDOzJBREQgMDMzODsyQUREIDAzMzg7MkFERCAwMzM4OzJBREQgMDMzODsKKzJFOUY7MkU5RjsyRTlGOzZCQ0Q7NkJDRDsKKzJFRjM7MkVGMzsyRUYzOzlGOUY7OUY5RjsKKzJGMDA7MkYwMDsyRjAwOzRFMDA7NEUwMDsKKzJGMDE7MkYwMTsyRjAxOzRFMjg7NEUyODsKKzJGMDI7MkYwMjsyRjAyOzRFMzY7NEUzNjsKKzJGMDM7MkYwMzsyRjAzOzRFM0Y7NEUzRjsKKzJGMDQ7MkYwNDsyRjA0OzRFNTk7NEU1OTsKKzJGMDU7MkYwNTsyRjA1OzRFODU7NEU4NTsKKzJGMDY7MkYwNjsyRjA2OzRFOEM7NEU4QzsKKzJGMDc7MkYwNzsyRjA3OzRFQTA7NEVBMDsKKzJGMDg7MkYwODsyRjA4OzRFQkE7NEVCQTsKKzJGMDk7MkYwOTsyRjA5OzUxM0Y7NTEzRjsKKzJGMEE7MkYwQTsyRjBBOzUxNjU7NTE2NTsKKzJGMEI7MkYwQjsyRjBCOzUxNkI7NTE2QjsKKzJGMEM7MkYwQzsyRjBDOzUxODI7NTE4MjsKKzJGMEQ7MkYwRDsyRjBEOzUxOTY7NTE5NjsKKzJGMEU7MkYwRTsyRjBFOzUxQUI7NTFBQjsKKzJGMEY7MkYwRjsyRjBGOzUxRTA7NTFFMDsKKzJGMTA7MkYxMDsyRjEwOzUxRjU7NTFGNTsKKzJGMTE7MkYxMTsyRjExOzUyMDA7NTIwMDsKKzJGMTI7MkYxMjsyRjEyOzUyOUI7NTI5QjsKKzJGMTM7MkYxMzsyRjEzOzUyRjk7NTJGOTsKKzJGMTQ7MkYxNDsyRjE0OzUzMTU7NTMxNTsKKzJGMTU7MkYxNTsyRjE1OzUzMUE7NTMxQTsKKzJGMTY7MkYxNjsyRjE2OzUzMzg7NTMzODsKKzJGMTc7MkYxNzsyRjE3OzUzNDE7NTM0MTsKKzJGMTg7MkYxODsyRjE4OzUzNUM7NTM1QzsKKzJGMTk7MkYxOTsyRjE5OzUzNjk7NTM2OTsKKzJGMUE7MkYxQTsyRjFBOzUzODI7NTM4MjsKKzJGMUI7MkYxQjsyRjFCOzUzQjY7NTNCNjsKKzJGMUM7MkYxQzsyRjFDOzUzQzg7NTNDODsKKzJGMUQ7MkYxRDsyRjFEOzUzRTM7NTNFMzsKKzJGMUU7MkYxRTsyRjFFOzU2RDc7NTZENzsKKzJGMUY7MkYxRjsyRjFGOzU3MUY7NTcxRjsKKzJGMjA7MkYyMDsyRjIwOzU4RUI7NThFQjsKKzJGMjE7MkYyMTsyRjIxOzU5MDI7NTkwMjsKKzJGMjI7MkYyMjsyRjIyOzU5MEE7NTkwQTsKKzJGMjM7MkYyMzsyRjIzOzU5MTU7NTkxNTsKKzJGMjQ7MkYyNDsyRjI0OzU5Mjc7NTkyNzsKKzJGMjU7MkYyNTsyRjI1OzU5NzM7NTk3MzsKKzJGMjY7MkYyNjsyRjI2OzVCNTA7NUI1MDsKKzJGMjc7MkYyNzsyRjI3OzVCODA7NUI4MDsKKzJGMjg7MkYyODsyRjI4OzVCRjg7NUJGODsKKzJGMjk7MkYyOTsyRjI5OzVDMEY7NUMwRjsKKzJGMkE7MkYyQTsyRjJBOzVDMjI7NUMyMjsKKzJGMkI7MkYyQjsyRjJCOzVDMzg7NUMzODsKKzJGMkM7MkYyQzsyRjJDOzVDNkU7NUM2RTsKKzJGMkQ7MkYyRDsyRjJEOzVDNzE7NUM3MTsKKzJGMkU7MkYyRTsyRjJFOzVEREI7NUREQjsKKzJGMkY7MkYyRjsyRjJGOzVERTU7NURFNTsKKzJGMzA7MkYzMDsyRjMwOzVERjE7NURGMTsKKzJGMzE7MkYzMTsyRjMxOzVERkU7NURGRTsKKzJGMzI7MkYzMjsyRjMyOzVFNzI7NUU3MjsKKzJGMzM7MkYzMzsyRjMzOzVFN0E7NUU3QTsKKzJGMzQ7MkYzNDsyRjM0OzVFN0Y7NUU3RjsKKzJGMzU7MkYzNTsyRjM1OzVFRjQ7NUVGNDsKKzJGMzY7MkYzNjsyRjM2OzVFRkU7NUVGRTsKKzJGMzc7MkYzNzsyRjM3OzVGMEI7NUYwQjsKKzJGMzg7MkYzODsyRjM4OzVGMTM7NUYxMzsKKzJGMzk7MkYzOTsyRjM5OzVGNTA7NUY1MDsKKzJGM0E7MkYzQTsyRjNBOzVGNjE7NUY2MTsKKzJGM0I7MkYzQjsyRjNCOzVGNzM7NUY3MzsKKzJGM0M7MkYzQzsyRjNDOzVGQzM7NUZDMzsKKzJGM0Q7MkYzRDsyRjNEOzYyMDg7NjIwODsKKzJGM0U7MkYzRTsyRjNFOzYyMzY7NjIzNjsKKzJGM0Y7MkYzRjsyRjNGOzYyNEI7NjI0QjsKKzJGNDA7MkY0MDsyRjQwOzY1MkY7NjUyRjsKKzJGNDE7MkY0MTsyRjQxOzY1MzQ7NjUzNDsKKzJGNDI7MkY0MjsyRjQyOzY1ODc7NjU4NzsKKzJGNDM7MkY0MzsyRjQzOzY1OTc7NjU5NzsKKzJGNDQ7MkY0NDsyRjQ0OzY1QTQ7NjVBNDsKKzJGNDU7MkY0NTsyRjQ1OzY1Qjk7NjVCOTsKKzJGNDY7MkY0NjsyRjQ2OzY1RTA7NjVFMDsKKzJGNDc7MkY0NzsyRjQ3OzY1RTU7NjVFNTsKKzJGNDg7MkY0ODsyRjQ4OzY2RjA7NjZGMDsKKzJGNDk7MkY0OTsyRjQ5OzY3MDg7NjcwODsKKzJGNEE7MkY0QTsyRjRBOzY3Mjg7NjcyODsKKzJGNEI7MkY0QjsyRjRCOzZCMjA7NkIyMDsKKzJGNEM7MkY0QzsyRjRDOzZCNjI7NkI2MjsKKzJGNEQ7MkY0RDsyRjREOzZCNzk7NkI3OTsKKzJGNEU7MkY0RTsyRjRFOzZCQjM7NkJCMzsKKzJGNEY7MkY0RjsyRjRGOzZCQ0I7NkJDQjsKKzJGNTA7MkY1MDsyRjUwOzZCRDQ7NkJENDsKKzJGNTE7MkY1MTsyRjUxOzZCREI7NkJEQjsKKzJGNTI7MkY1MjsyRjUyOzZDMEY7NkMwRjsKKzJGNTM7MkY1MzsyRjUzOzZDMTQ7NkMxNDsKKzJGNTQ7MkY1NDsyRjU0OzZDMzQ7NkMzNDsKKzJGNTU7MkY1NTsyRjU1OzcwNkI7NzA2QjsKKzJGNTY7MkY1NjsyRjU2OzcyMkE7NzIyQTsKKzJGNTc7MkY1NzsyRjU3OzcyMzY7NzIzNjsKKzJGNTg7MkY1ODsyRjU4OzcyM0I7NzIzQjsKKzJGNTk7MkY1OTsyRjU5OzcyM0Y7NzIzRjsKKzJGNUE7MkY1QTsyRjVBOzcyNDc7NzI0NzsKKzJGNUI7MkY1QjsyRjVCOzcyNTk7NzI1OTsKKzJGNUM7MkY1QzsyRjVDOzcyNUI7NzI1QjsKKzJGNUQ7MkY1RDsyRjVEOzcyQUM7NzJBQzsKKzJGNUU7MkY1RTsyRjVFOzczODQ7NzM4NDsKKzJGNUY7MkY1RjsyRjVGOzczODk7NzM4OTsKKzJGNjA7MkY2MDsyRjYwOzc0REM7NzREQzsKKzJGNjE7MkY2MTsyRjYxOzc0RTY7NzRFNjsKKzJGNjI7MkY2MjsyRjYyOzc1MTg7NzUxODsKKzJGNjM7MkY2MzsyRjYzOzc1MUY7NzUxRjsKKzJGNjQ7MkY2NDsyRjY0Ozc1Mjg7NzUyODsKKzJGNjU7MkY2NTsyRjY1Ozc1MzA7NzUzMDsKKzJGNjY7MkY2NjsyRjY2Ozc1OEI7NzU4QjsKKzJGNjc7MkY2NzsyRjY3Ozc1OTI7NzU5MjsKKzJGNjg7MkY2ODsyRjY4Ozc2NzY7NzY3NjsKKzJGNjk7MkY2OTsyRjY5Ozc2N0Q7NzY3RDsKKzJGNkE7MkY2QTsyRjZBOzc2QUU7NzZBRTsKKzJGNkI7MkY2QjsyRjZCOzc2QkY7NzZCRjsKKzJGNkM7MkY2QzsyRjZDOzc2RUU7NzZFRTsKKzJGNkQ7MkY2RDsyRjZEOzc3REI7NzdEQjsKKzJGNkU7MkY2RTsyRjZFOzc3RTI7NzdFMjsKKzJGNkY7MkY2RjsyRjZGOzc3RjM7NzdGMzsKKzJGNzA7MkY3MDsyRjcwOzc5M0E7NzkzQTsKKzJGNzE7MkY3MTsyRjcxOzc5Qjg7NzlCODsKKzJGNzI7MkY3MjsyRjcyOzc5QkU7NzlCRTsKKzJGNzM7MkY3MzsyRjczOzdBNzQ7N0E3NDsKKzJGNzQ7MkY3NDsyRjc0OzdBQ0I7N0FDQjsKKzJGNzU7MkY3NTsyRjc1OzdBRjk7N0FGOTsKKzJGNzY7MkY3NjsyRjc2OzdDNzM7N0M3MzsKKzJGNzc7MkY3NzsyRjc3OzdDRjg7N0NGODsKKzJGNzg7MkY3ODsyRjc4OzdGMzY7N0YzNjsKKzJGNzk7MkY3OTsyRjc5OzdGNTE7N0Y1MTsKKzJGN0E7MkY3QTsyRjdBOzdGOEE7N0Y4QTsKKzJGN0I7MkY3QjsyRjdCOzdGQkQ7N0ZCRDsKKzJGN0M7MkY3QzsyRjdDOzgwMDE7ODAwMTsKKzJGN0Q7MkY3RDsyRjdEOzgwMEM7ODAwQzsKKzJGN0U7MkY3RTsyRjdFOzgwMTI7ODAxMjsKKzJGN0Y7MkY3RjsyRjdGOzgwMzM7ODAzMzsKKzJGODA7MkY4MDsyRjgwOzgwN0Y7ODA3RjsKKzJGODE7MkY4MTsyRjgxOzgwODk7ODA4OTsKKzJGODI7MkY4MjsyRjgyOzgxRTM7ODFFMzsKKzJGODM7MkY4MzsyRjgzOzgxRUE7ODFFQTsKKzJGODQ7MkY4NDsyRjg0OzgxRjM7ODFGMzsKKzJGODU7MkY4NTsyRjg1OzgxRkM7ODFGQzsKKzJGODY7MkY4NjsyRjg2OzgyMEM7ODIwQzsKKzJGODc7MkY4NzsyRjg3OzgyMUI7ODIxQjsKKzJGODg7MkY4ODsyRjg4OzgyMUY7ODIxRjsKKzJGODk7MkY4OTsyRjg5OzgyNkU7ODI2RTsKKzJGOEE7MkY4QTsyRjhBOzgyNzI7ODI3MjsKKzJGOEI7MkY4QjsyRjhCOzgyNzg7ODI3ODsKKzJGOEM7MkY4QzsyRjhDOzg2NEQ7ODY0RDsKKzJGOEQ7MkY4RDsyRjhEOzg2NkI7ODY2QjsKKzJGOEU7MkY4RTsyRjhFOzg4NDA7ODg0MDsKKzJGOEY7MkY4RjsyRjhGOzg4NEM7ODg0QzsKKzJGOTA7MkY5MDsyRjkwOzg4NjM7ODg2MzsKKzJGOTE7MkY5MTsyRjkxOzg5N0U7ODk3RTsKKzJGOTI7MkY5MjsyRjkyOzg5OEI7ODk4QjsKKzJGOTM7MkY5MzsyRjkzOzg5RDI7ODlEMjsKKzJGOTQ7MkY5NDsyRjk0OzhBMDA7OEEwMDsKKzJGOTU7MkY5NTsyRjk1OzhDMzc7OEMzNzsKKzJGOTY7MkY5NjsyRjk2OzhDNDY7OEM0NjsKKzJGOTc7MkY5NzsyRjk3OzhDNTU7OEM1NTsKKzJGOTg7MkY5ODsyRjk4OzhDNzg7OEM3ODsKKzJGOTk7MkY5OTsyRjk5OzhDOUQ7OEM5RDsKKzJGOUE7MkY5QTsyRjlBOzhENjQ7OEQ2NDsKKzJGOUI7MkY5QjsyRjlCOzhENzA7OEQ3MDsKKzJGOUM7MkY5QzsyRjlDOzhEQjM7OERCMzsKKzJGOUQ7MkY5RDsyRjlEOzhFQUI7OEVBQjsKKzJGOUU7MkY5RTsyRjlFOzhFQ0E7OEVDQTsKKzJGOUY7MkY5RjsyRjlGOzhGOUI7OEY5QjsKKzJGQTA7MkZBMDsyRkEwOzhGQjA7OEZCMDsKKzJGQTE7MkZBMTsyRkExOzhGQjU7OEZCNTsKKzJGQTI7MkZBMjsyRkEyOzkwOTE7OTA5MTsKKzJGQTM7MkZBMzsyRkEzOzkxNDk7OTE0OTsKKzJGQTQ7MkZBNDsyRkE0OzkxQzY7OTFDNjsKKzJGQTU7MkZBNTsyRkE1OzkxQ0M7OTFDQzsKKzJGQTY7MkZBNjsyRkE2OzkxRDE7OTFEMTsKKzJGQTc7MkZBNzsyRkE3Ozk1Nzc7OTU3NzsKKzJGQTg7MkZBODsyRkE4Ozk1ODA7OTU4MDsKKzJGQTk7MkZBOTsyRkE5Ozk2MUM7OTYxQzsKKzJGQUE7MkZBQTsyRkFBOzk2QjY7OTZCNjsKKzJGQUI7MkZBQjsyRkFCOzk2Qjk7OTZCOTsKKzJGQUM7MkZBQzsyRkFDOzk2RTg7OTZFODsKKzJGQUQ7MkZBRDsyRkFEOzk3NTE7OTc1MTsKKzJGQUU7MkZBRTsyRkFFOzk3NUU7OTc1RTsKKzJGQUY7MkZBRjsyRkFGOzk3NjI7OTc2MjsKKzJGQjA7MkZCMDsyRkIwOzk3Njk7OTc2OTsKKzJGQjE7MkZCMTsyRkIxOzk3Q0I7OTdDQjsKKzJGQjI7MkZCMjsyRkIyOzk3RUQ7OTdFRDsKKzJGQjM7MkZCMzsyRkIzOzk3RjM7OTdGMzsKKzJGQjQ7MkZCNDsyRkI0Ozk4MDE7OTgwMTsKKzJGQjU7MkZCNTsyRkI1Ozk4QTg7OThBODsKKzJGQjY7MkZCNjsyRkI2Ozk4REI7OThEQjsKKzJGQjc7MkZCNzsyRkI3Ozk4REY7OThERjsKKzJGQjg7MkZCODsyRkI4Ozk5OTY7OTk5NjsKKzJGQjk7MkZCOTsyRkI5Ozk5OTk7OTk5OTsKKzJGQkE7MkZCQTsyRkJBOzk5QUM7OTlBQzsKKzJGQkI7MkZCQjsyRkJCOzlBQTg7OUFBODsKKzJGQkM7MkZCQzsyRkJDOzlBRDg7OUFEODsKKzJGQkQ7MkZCRDsyRkJEOzlBREY7OUFERjsKKzJGQkU7MkZCRTsyRkJFOzlCMjU7OUIyNTsKKzJGQkY7MkZCRjsyRkJGOzlCMkY7OUIyRjsKKzJGQzA7MkZDMDsyRkMwOzlCMzI7OUIzMjsKKzJGQzE7MkZDMTsyRkMxOzlCM0M7OUIzQzsKKzJGQzI7MkZDMjsyRkMyOzlCNUE7OUI1QTsKKzJGQzM7MkZDMzsyRkMzOzlDRTU7OUNFNTsKKzJGQzQ7MkZDNDsyRkM0OzlFNzU7OUU3NTsKKzJGQzU7MkZDNTsyRkM1OzlFN0Y7OUU3RjsKKzJGQzY7MkZDNjsyRkM2OzlFQTU7OUVBNTsKKzJGQzc7MkZDNzsyRkM3OzlFQkI7OUVCQjsKKzJGQzg7MkZDODsyRkM4OzlFQzM7OUVDMzsKKzJGQzk7MkZDOTsyRkM5OzlFQ0Q7OUVDRDsKKzJGQ0E7MkZDQTsyRkNBOzlFRDE7OUVEMTsKKzJGQ0I7MkZDQjsyRkNCOzlFRjk7OUVGOTsKKzJGQ0M7MkZDQzsyRkNDOzlFRkQ7OUVGRDsKKzJGQ0Q7MkZDRDsyRkNEOzlGMEU7OUYwRTsKKzJGQ0U7MkZDRTsyRkNFOzlGMTM7OUYxMzsKKzJGQ0Y7MkZDRjsyRkNGOzlGMjA7OUYyMDsKKzJGRDA7MkZEMDsyRkQwOzlGM0I7OUYzQjsKKzJGRDE7MkZEMTsyRkQxOzlGNEE7OUY0QTsKKzJGRDI7MkZEMjsyRkQyOzlGNTI7OUY1MjsKKzJGRDM7MkZEMzsyRkQzOzlGOEQ7OUY4RDsKKzJGRDQ7MkZENDsyRkQ0OzlGOUM7OUY5QzsKKzJGRDU7MkZENTsyRkQ1OzlGQTA7OUZBMDsKKzMwMDA7MzAwMDszMDAwOzAwMjA7MDAyMDsKKzMwMzY7MzAzNjszMDM2OzMwMTI7MzAxMjsKKzMwMzg7MzAzODszMDM4OzUzNDE7NTM0MTsKKzMwMzk7MzAzOTszMDM5OzUzNDQ7NTM0NDsKKzMwM0E7MzAzQTszMDNBOzUzNDU7NTM0NTsKKzMwNEM7MzA0QzszMDRCIDMwOTk7MzA0QzszMDRCIDMwOTk7CiszMDRFOzMwNEU7MzA0RCAzMDk5OzMwNEU7MzA0RCAzMDk5OworMzA1MDszMDUwOzMwNEYgMzA5OTszMDUwOzMwNEYgMzA5OTsKKzMwNTI7MzA1MjszMDUxIDMwOTk7MzA1MjszMDUxIDMwOTk7CiszMDU0OzMwNTQ7MzA1MyAzMDk5OzMwNTQ7MzA1MyAzMDk5OworMzA1NjszMDU2OzMwNTUgMzA5OTszMDU2OzMwNTUgMzA5OTsKKzMwNTg7MzA1ODszMDU3IDMwOTk7MzA1ODszMDU3IDMwOTk7CiszMDVBOzMwNUE7MzA1OSAzMDk5OzMwNUE7MzA1OSAzMDk5OworMzA1QzszMDVDOzMwNUIgMzA5OTszMDVDOzMwNUIgMzA5OTsKKzMwNUU7MzA1RTszMDVEIDMwOTk7MzA1RTszMDVEIDMwOTk7CiszMDYwOzMwNjA7MzA1RiAzMDk5OzMwNjA7MzA1RiAzMDk5OworMzA2MjszMDYyOzMwNjEgMzA5OTszMDYyOzMwNjEgMzA5OTsKKzMwNjU7MzA2NTszMDY0IDMwOTk7MzA2NTszMDY0IDMwOTk7CiszMDY3OzMwNjc7MzA2NiAzMDk5OzMwNjc7MzA2NiAzMDk5OworMzA2OTszMDY5OzMwNjggMzA5OTszMDY5OzMwNjggMzA5OTsKKzMwNzA7MzA3MDszMDZGIDMwOTk7MzA3MDszMDZGIDMwOTk7CiszMDcxOzMwNzE7MzA2RiAzMDlBOzMwNzE7MzA2RiAzMDlBOworMzA3MzszMDczOzMwNzIgMzA5OTszMDczOzMwNzIgMzA5OTsKKzMwNzQ7MzA3NDszMDcyIDMwOUE7MzA3NDszMDcyIDMwOUE7CiszMDc2OzMwNzY7MzA3NSAzMDk5OzMwNzY7MzA3NSAzMDk5OworMzA3NzszMDc3OzMwNzUgMzA5QTszMDc3OzMwNzUgMzA5QTsKKzMwNzk7MzA3OTszMDc4IDMwOTk7MzA3OTszMDc4IDMwOTk7CiszMDdBOzMwN0E7MzA3OCAzMDlBOzMwN0E7MzA3OCAzMDlBOworMzA3QzszMDdDOzMwN0IgMzA5OTszMDdDOzMwN0IgMzA5OTsKKzMwN0Q7MzA3RDszMDdCIDMwOUE7MzA3RDszMDdCIDMwOUE7CiszMDk0OzMwOTQ7MzA0NiAzMDk5OzMwOTQ7MzA0NiAzMDk5OworMzA5QjszMDlCOzMwOUI7MDAyMCAzMDk5OzAwMjAgMzA5OTsKKzMwOUM7MzA5QzszMDlDOzAwMjAgMzA5QTswMDIwIDMwOUE7CiszMDlFOzMwOUU7MzA5RCAzMDk5OzMwOUU7MzA5RCAzMDk5OworMzA5RjszMDlGOzMwOUY7MzA4OCAzMDhBOzMwODggMzA4QTsKKzMwQUM7MzBBQzszMEFCIDMwOTk7MzBBQzszMEFCIDMwOTk7CiszMEFFOzMwQUU7MzBBRCAzMDk5OzMwQUU7MzBBRCAzMDk5OworMzBCMDszMEIwOzMwQUYgMzA5OTszMEIwOzMwQUYgMzA5OTsKKzMwQjI7MzBCMjszMEIxIDMwOTk7MzBCMjszMEIxIDMwOTk7CiszMEI0OzMwQjQ7MzBCMyAzMDk5OzMwQjQ7MzBCMyAzMDk5OworMzBCNjszMEI2OzMwQjUgMzA5OTszMEI2OzMwQjUgMzA5OTsKKzMwQjg7MzBCODszMEI3IDMwOTk7MzBCODszMEI3IDMwOTk7CiszMEJBOzMwQkE7MzBCOSAzMDk5OzMwQkE7MzBCOSAzMDk5OworMzBCQzszMEJDOzMwQkIgMzA5OTszMEJDOzMwQkIgMzA5OTsKKzMwQkU7MzBCRTszMEJEIDMwOTk7MzBCRTszMEJEIDMwOTk7CiszMEMwOzMwQzA7MzBCRiAzMDk5OzMwQzA7MzBCRiAzMDk5OworMzBDMjszMEMyOzMwQzEgMzA5OTszMEMyOzMwQzEgMzA5OTsKKzMwQzU7MzBDNTszMEM0IDMwOTk7MzBDNTszMEM0IDMwOTk7CiszMEM3OzMwQzc7MzBDNiAzMDk5OzMwQzc7MzBDNiAzMDk5OworMzBDOTszMEM5OzMwQzggMzA5OTszMEM5OzMwQzggMzA5OTsKKzMwRDA7MzBEMDszMENGIDMwOTk7MzBEMDszMENGIDMwOTk7CiszMEQxOzMwRDE7MzBDRiAzMDlBOzMwRDE7MzBDRiAzMDlBOworMzBEMzszMEQzOzMwRDIgMzA5OTszMEQzOzMwRDIgMzA5OTsKKzMwRDQ7MzBENDszMEQyIDMwOUE7MzBENDszMEQyIDMwOUE7CiszMEQ2OzMwRDY7MzBENSAzMDk5OzMwRDY7MzBENSAzMDk5OworMzBENzszMEQ3OzMwRDUgMzA5QTszMEQ3OzMwRDUgMzA5QTsKKzMwRDk7MzBEOTszMEQ4IDMwOTk7MzBEOTszMEQ4IDMwOTk7CiszMERBOzMwREE7MzBEOCAzMDlBOzMwREE7MzBEOCAzMDlBOworMzBEQzszMERDOzMwREIgMzA5OTszMERDOzMwREIgMzA5OTsKKzMwREQ7MzBERDszMERCIDMwOUE7MzBERDszMERCIDMwOUE7CiszMEY0OzMwRjQ7MzBBNiAzMDk5OzMwRjQ7MzBBNiAzMDk5OworMzBGNzszMEY3OzMwRUYgMzA5OTszMEY3OzMwRUYgMzA5OTsKKzMwRjg7MzBGODszMEYwIDMwOTk7MzBGODszMEYwIDMwOTk7CiszMEY5OzMwRjk7MzBGMSAzMDk5OzMwRjk7MzBGMSAzMDk5OworMzBGQTszMEZBOzMwRjIgMzA5OTszMEZBOzMwRjIgMzA5OTsKKzMwRkU7MzBGRTszMEZEIDMwOTk7MzBGRTszMEZEIDMwOTk7CiszMEZGOzMwRkY7MzBGRjszMEIzIDMwQzg7MzBCMyAzMEM4OworMzEzMTszMTMxOzMxMzE7MTEwMDsxMTAwOworMzEzMjszMTMyOzMxMzI7MTEwMTsxMTAxOworMzEzMzszMTMzOzMxMzM7MTFBQTsxMUFBOworMzEzNDszMTM0OzMxMzQ7MTEwMjsxMTAyOworMzEzNTszMTM1OzMxMzU7MTFBQzsxMUFDOworMzEzNjszMTM2OzMxMzY7MTFBRDsxMUFEOworMzEzNzszMTM3OzMxMzc7MTEwMzsxMTAzOworMzEzODszMTM4OzMxMzg7MTEwNDsxMTA0OworMzEzOTszMTM5OzMxMzk7MTEwNTsxMTA1OworMzEzQTszMTNBOzMxM0E7MTFCMDsxMUIwOworMzEzQjszMTNCOzMxM0I7MTFCMTsxMUIxOworMzEzQzszMTNDOzMxM0M7MTFCMjsxMUIyOworMzEzRDszMTNEOzMxM0Q7MTFCMzsxMUIzOworMzEzRTszMTNFOzMxM0U7MTFCNDsxMUI0OworMzEzRjszMTNGOzMxM0Y7MTFCNTsxMUI1OworMzE0MDszMTQwOzMxNDA7MTExQTsxMTFBOworMzE0MTszMTQxOzMxNDE7MTEwNjsxMTA2OworMzE0MjszMTQyOzMxNDI7MTEwNzsxMTA3OworMzE0MzszMTQzOzMxNDM7MTEwODsxMTA4OworMzE0NDszMTQ0OzMxNDQ7MTEyMTsxMTIxOworMzE0NTszMTQ1OzMxNDU7MTEwOTsxMTA5OworMzE0NjszMTQ2OzMxNDY7MTEwQTsxMTBBOworMzE0NzszMTQ3OzMxNDc7MTEwQjsxMTBCOworMzE0ODszMTQ4OzMxNDg7MTEwQzsxMTBDOworMzE0OTszMTQ5OzMxNDk7MTEwRDsxMTBEOworMzE0QTszMTRBOzMxNEE7MTEwRTsxMTBFOworMzE0QjszMTRCOzMxNEI7MTEwRjsxMTBGOworMzE0QzszMTRDOzMxNEM7MTExMDsxMTEwOworMzE0RDszMTREOzMxNEQ7MTExMTsxMTExOworMzE0RTszMTRFOzMxNEU7MTExMjsxMTEyOworMzE0RjszMTRGOzMxNEY7MTE2MTsxMTYxOworMzE1MDszMTUwOzMxNTA7MTE2MjsxMTYyOworMzE1MTszMTUxOzMxNTE7MTE2MzsxMTYzOworMzE1MjszMTUyOzMxNTI7MTE2NDsxMTY0OworMzE1MzszMTUzOzMxNTM7MTE2NTsxMTY1OworMzE1NDszMTU0OzMxNTQ7MTE2NjsxMTY2OworMzE1NTszMTU1OzMxNTU7MTE2NzsxMTY3OworMzE1NjszMTU2OzMxNTY7MTE2ODsxMTY4OworMzE1NzszMTU3OzMxNTc7MTE2OTsxMTY5OworMzE1ODszMTU4OzMxNTg7MTE2QTsxMTZBOworMzE1OTszMTU5OzMxNTk7MTE2QjsxMTZCOworMzE1QTszMTVBOzMxNUE7MTE2QzsxMTZDOworMzE1QjszMTVCOzMxNUI7MTE2RDsxMTZEOworMzE1QzszMTVDOzMxNUM7MTE2RTsxMTZFOworMzE1RDszMTVEOzMxNUQ7MTE2RjsxMTZGOworMzE1RTszMTVFOzMxNUU7MTE3MDsxMTcwOworMzE1RjszMTVGOzMxNUY7MTE3MTsxMTcxOworMzE2MDszMTYwOzMxNjA7MTE3MjsxMTcyOworMzE2MTszMTYxOzMxNjE7MTE3MzsxMTczOworMzE2MjszMTYyOzMxNjI7MTE3NDsxMTc0OworMzE2MzszMTYzOzMxNjM7MTE3NTsxMTc1OworMzE2NDszMTY0OzMxNjQ7MTE2MDsxMTYwOworMzE2NTszMTY1OzMxNjU7MTExNDsxMTE0OworMzE2NjszMTY2OzMxNjY7MTExNTsxMTE1OworMzE2NzszMTY3OzMxNjc7MTFDNzsxMUM3OworMzE2ODszMTY4OzMxNjg7MTFDODsxMUM4OworMzE2OTszMTY5OzMxNjk7MTFDQzsxMUNDOworMzE2QTszMTZBOzMxNkE7MTFDRTsxMUNFOworMzE2QjszMTZCOzMxNkI7MTFEMzsxMUQzOworMzE2QzszMTZDOzMxNkM7MTFENzsxMUQ3OworMzE2RDszMTZEOzMxNkQ7MTFEOTsxMUQ5OworMzE2RTszMTZFOzMxNkU7MTExQzsxMTFDOworMzE2RjszMTZGOzMxNkY7MTFERDsxMUREOworMzE3MDszMTcwOzMxNzA7MTFERjsxMURGOworMzE3MTszMTcxOzMxNzE7MTExRDsxMTFEOworMzE3MjszMTcyOzMxNzI7MTExRTsxMTFFOworMzE3MzszMTczOzMxNzM7MTEyMDsxMTIwOworMzE3NDszMTc0OzMxNzQ7MTEyMjsxMTIyOworMzE3NTszMTc1OzMxNzU7MTEyMzsxMTIzOworMzE3NjszMTc2OzMxNzY7MTEyNzsxMTI3OworMzE3NzszMTc3OzMxNzc7MTEyOTsxMTI5OworMzE3ODszMTc4OzMxNzg7MTEyQjsxMTJCOworMzE3OTszMTc5OzMxNzk7MTEyQzsxMTJDOworMzE3QTszMTdBOzMxN0E7MTEyRDsxMTJEOworMzE3QjszMTdCOzMxN0I7MTEyRTsxMTJFOworMzE3QzszMTdDOzMxN0M7MTEyRjsxMTJGOworMzE3RDszMTdEOzMxN0Q7MTEzMjsxMTMyOworMzE3RTszMTdFOzMxN0U7MTEzNjsxMTM2OworMzE3RjszMTdGOzMxN0Y7MTE0MDsxMTQwOworMzE4MDszMTgwOzMxODA7MTE0NzsxMTQ3OworMzE4MTszMTgxOzMxODE7MTE0QzsxMTRDOworMzE4MjszMTgyOzMxODI7MTFGMTsxMUYxOworMzE4MzszMTgzOzMxODM7MTFGMjsxMUYyOworMzE4NDszMTg0OzMxODQ7MTE1NzsxMTU3OworMzE4NTszMTg1OzMxODU7MTE1ODsxMTU4OworMzE4NjszMTg2OzMxODY7MTE1OTsxMTU5OworMzE4NzszMTg3OzMxODc7MTE4NDsxMTg0OworMzE4ODszMTg4OzMxODg7MTE4NTsxMTg1OworMzE4OTszMTg5OzMxODk7MTE4ODsxMTg4OworMzE4QTszMThBOzMxOEE7MTE5MTsxMTkxOworMzE4QjszMThCOzMxOEI7MTE5MjsxMTkyOworMzE4QzszMThDOzMxOEM7MTE5NDsxMTk0OworMzE4RDszMThEOzMxOEQ7MTE5RTsxMTlFOworMzE4RTszMThFOzMxOEU7MTFBMTsxMUExOworMzE5MjszMTkyOzMxOTI7NEUwMDs0RTAwOworMzE5MzszMTkzOzMxOTM7NEU4Qzs0RThDOworMzE5NDszMTk0OzMxOTQ7NEUwOTs0RTA5OworMzE5NTszMTk1OzMxOTU7NTZEQjs1NkRCOworMzE5NjszMTk2OzMxOTY7NEUwQTs0RTBBOworMzE5NzszMTk3OzMxOTc7NEUyRDs0RTJEOworMzE5ODszMTk4OzMxOTg7NEUwQjs0RTBCOworMzE5OTszMTk5OzMxOTk7NzUzMjs3NTMyOworMzE5QTszMTlBOzMxOUE7NEU1OTs0RTU5OworMzE5QjszMTlCOzMxOUI7NEUxOTs0RTE5OworMzE5QzszMTlDOzMxOUM7NEUwMTs0RTAxOworMzE5RDszMTlEOzMxOUQ7NTkyOTs1OTI5OworMzE5RTszMTlFOzMxOUU7NTczMDs1NzMwOworMzE5RjszMTlGOzMxOUY7NEVCQTs0RUJBOworMzIwMDszMjAwOzMyMDA7MDAyOCAxMTAwIDAwMjk7MDAyOCAxMTAwIDAwMjk7CiszMjAxOzMyMDE7MzIwMTswMDI4IDExMDIgMDAyOTswMDI4IDExMDIgMDAyOTsKKzMyMDI7MzIwMjszMjAyOzAwMjggMTEwMyAwMDI5OzAwMjggMTEwMyAwMDI5OworMzIwMzszMjAzOzMyMDM7MDAyOCAxMTA1IDAwMjk7MDAyOCAxMTA1IDAwMjk7CiszMjA0OzMyMDQ7MzIwNDswMDI4IDExMDYgMDAyOTswMDI4IDExMDYgMDAyOTsKKzMyMDU7MzIwNTszMjA1OzAwMjggMTEwNyAwMDI5OzAwMjggMTEwNyAwMDI5OworMzIwNjszMjA2OzMyMDY7MDAyOCAxMTA5IDAwMjk7MDAyOCAxMTA5IDAwMjk7CiszMjA3OzMyMDc7MzIwNzswMDI4IDExMEIgMDAyOTswMDI4IDExMEIgMDAyOTsKKzMyMDg7MzIwODszMjA4OzAwMjggMTEwQyAwMDI5OzAwMjggMTEwQyAwMDI5OworMzIwOTszMjA5OzMyMDk7MDAyOCAxMTBFIDAwMjk7MDAyOCAxMTBFIDAwMjk7CiszMjBBOzMyMEE7MzIwQTswMDI4IDExMEYgMDAyOTswMDI4IDExMEYgMDAyOTsKKzMyMEI7MzIwQjszMjBCOzAwMjggMTExMCAwMDI5OzAwMjggMTExMCAwMDI5OworMzIwQzszMjBDOzMyMEM7MDAyOCAxMTExIDAwMjk7MDAyOCAxMTExIDAwMjk7CiszMjBEOzMyMEQ7MzIwRDswMDI4IDExMTIgMDAyOTswMDI4IDExMTIgMDAyOTsKKzMyMEU7MzIwRTszMjBFOzAwMjggQUMwMCAwMDI5OzAwMjggMTEwMCAxMTYxIDAwMjk7CiszMjBGOzMyMEY7MzIwRjswMDI4IEIwOTggMDAyOTswMDI4IDExMDIgMTE2MSAwMDI5OworMzIxMDszMjEwOzMyMTA7MDAyOCBCMkU0IDAwMjk7MDAyOCAxMTAzIDExNjEgMDAyOTsKKzMyMTE7MzIxMTszMjExOzAwMjggQjc3QyAwMDI5OzAwMjggMTEwNSAxMTYxIDAwMjk7CiszMjEyOzMyMTI7MzIxMjswMDI4IEI5QzggMDAyOTswMDI4IDExMDYgMTE2MSAwMDI5OworMzIxMzszMjEzOzMyMTM7MDAyOCBCQzE0IDAwMjk7MDAyOCAxMTA3IDExNjEgMDAyOTsKKzMyMTQ7MzIxNDszMjE0OzAwMjggQzBBQyAwMDI5OzAwMjggMTEwOSAxMTYxIDAwMjk7CiszMjE1OzMyMTU7MzIxNTswMDI4IEM1NDQgMDAyOTswMDI4IDExMEIgMTE2MSAwMDI5OworMzIxNjszMjE2OzMyMTY7MDAyOCBDNzkwIDAwMjk7MDAyOCAxMTBDIDExNjEgMDAyOTsKKzMyMTc7MzIxNzszMjE3OzAwMjggQ0MyOCAwMDI5OzAwMjggMTEwRSAxMTYxIDAwMjk7CiszMjE4OzMyMTg7MzIxODswMDI4IENFNzQgMDAyOTswMDI4IDExMEYgMTE2MSAwMDI5OworMzIxOTszMjE5OzMyMTk7MDAyOCBEMEMwIDAwMjk7MDAyOCAxMTEwIDExNjEgMDAyOTsKKzMyMUE7MzIxQTszMjFBOzAwMjggRDMwQyAwMDI5OzAwMjggMTExMSAxMTYxIDAwMjk7CiszMjFCOzMyMUI7MzIxQjswMDI4IEQ1NTggMDAyOTswMDI4IDExMTIgMTE2MSAwMDI5OworMzIxQzszMjFDOzMyMUM7MDAyOCBDOEZDIDAwMjk7MDAyOCAxMTBDIDExNkUgMDAyOTsKKzMyMjA7MzIyMDszMjIwOzAwMjggNEUwMCAwMDI5OzAwMjggNEUwMCAwMDI5OworMzIyMTszMjIxOzMyMjE7MDAyOCA0RThDIDAwMjk7MDAyOCA0RThDIDAwMjk7CiszMjIyOzMyMjI7MzIyMjswMDI4IDRFMDkgMDAyOTswMDI4IDRFMDkgMDAyOTsKKzMyMjM7MzIyMzszMjIzOzAwMjggNTZEQiAwMDI5OzAwMjggNTZEQiAwMDI5OworMzIyNDszMjI0OzMyMjQ7MDAyOCA0RTk0IDAwMjk7MDAyOCA0RTk0IDAwMjk7CiszMjI1OzMyMjU7MzIyNTswMDI4IDUxNkQgMDAyOTswMDI4IDUxNkQgMDAyOTsKKzMyMjY7MzIyNjszMjI2OzAwMjggNEUwMyAwMDI5OzAwMjggNEUwMyAwMDI5OworMzIyNzszMjI3OzMyMjc7MDAyOCA1MTZCIDAwMjk7MDAyOCA1MTZCIDAwMjk7CiszMjI4OzMyMjg7MzIyODswMDI4IDRFNUQgMDAyOTswMDI4IDRFNUQgMDAyOTsKKzMyMjk7MzIyOTszMjI5OzAwMjggNTM0MSAwMDI5OzAwMjggNTM0MSAwMDI5OworMzIyQTszMjJBOzMyMkE7MDAyOCA2NzA4IDAwMjk7MDAyOCA2NzA4IDAwMjk7CiszMjJCOzMyMkI7MzIyQjswMDI4IDcwNkIgMDAyOTswMDI4IDcwNkIgMDAyOTsKKzMyMkM7MzIyQzszMjJDOzAwMjggNkMzNCAwMDI5OzAwMjggNkMzNCAwMDI5OworMzIyRDszMjJEOzMyMkQ7MDAyOCA2NzI4IDAwMjk7MDAyOCA2NzI4IDAwMjk7CiszMjJFOzMyMkU7MzIyRTswMDI4IDkxRDEgMDAyOTswMDI4IDkxRDEgMDAyOTsKKzMyMkY7MzIyRjszMjJGOzAwMjggNTcxRiAwMDI5OzAwMjggNTcxRiAwMDI5OworMzIzMDszMjMwOzMyMzA7MDAyOCA2NUU1IDAwMjk7MDAyOCA2NUU1IDAwMjk7CiszMjMxOzMyMzE7MzIzMTswMDI4IDY4MkEgMDAyOTswMDI4IDY4MkEgMDAyOTsKKzMyMzI7MzIzMjszMjMyOzAwMjggNjcwOSAwMDI5OzAwMjggNjcwOSAwMDI5OworMzIzMzszMjMzOzMyMzM7MDAyOCA3OTNFIDAwMjk7MDAyOCA3OTNFIDAwMjk7CiszMjM0OzMyMzQ7MzIzNDswMDI4IDU0MEQgMDAyOTswMDI4IDU0MEQgMDAyOTsKKzMyMzU7MzIzNTszMjM1OzAwMjggNzI3OSAwMDI5OzAwMjggNzI3OSAwMDI5OworMzIzNjszMjM2OzMyMzY7MDAyOCA4Q0ExIDAwMjk7MDAyOCA4Q0ExIDAwMjk7CiszMjM3OzMyMzc7MzIzNzswMDI4IDc5NUQgMDAyOTswMDI4IDc5NUQgMDAyOTsKKzMyMzg7MzIzODszMjM4OzAwMjggNTJCNCAwMDI5OzAwMjggNTJCNCAwMDI5OworMzIzOTszMjM5OzMyMzk7MDAyOCA0RUUzIDAwMjk7MDAyOCA0RUUzIDAwMjk7CiszMjNBOzMyM0E7MzIzQTswMDI4IDU0N0MgMDAyOTswMDI4IDU0N0MgMDAyOTsKKzMyM0I7MzIzQjszMjNCOzAwMjggNUI2NiAwMDI5OzAwMjggNUI2NiAwMDI5OworMzIzQzszMjNDOzMyM0M7MDAyOCA3NkUzIDAwMjk7MDAyOCA3NkUzIDAwMjk7CiszMjNEOzMyM0Q7MzIzRDswMDI4IDRGMDEgMDAyOTswMDI4IDRGMDEgMDAyOTsKKzMyM0U7MzIzRTszMjNFOzAwMjggOENDNyAwMDI5OzAwMjggOENDNyAwMDI5OworMzIzRjszMjNGOzMyM0Y7MDAyOCA1MzU0IDAwMjk7MDAyOCA1MzU0IDAwMjk7CiszMjQwOzMyNDA7MzI0MDswMDI4IDc5NkQgMDAyOTswMDI4IDc5NkQgMDAyOTsKKzMyNDE7MzI0MTszMjQxOzAwMjggNEYxMSAwMDI5OzAwMjggNEYxMSAwMDI5OworMzI0MjszMjQyOzMyNDI7MDAyOCA4MUVBIDAwMjk7MDAyOCA4MUVBIDAwMjk7CiszMjQzOzMyNDM7MzI0MzswMDI4IDgxRjMgMDAyOTswMDI4IDgxRjMgMDAyOTsKKzMyNTE7MzI1MTszMjUxOzAwMzIgMDAzMTswMDMyIDAwMzE7CiszMjUyOzMyNTI7MzI1MjswMDMyIDAwMzI7MDAzMiAwMDMyOworMzI1MzszMjUzOzMyNTM7MDAzMiAwMDMzOzAwMzIgMDAzMzsKKzMyNTQ7MzI1NDszMjU0OzAwMzIgMDAzNDswMDMyIDAwMzQ7CiszMjU1OzMyNTU7MzI1NTswMDMyIDAwMzU7MDAzMiAwMDM1OworMzI1NjszMjU2OzMyNTY7MDAzMiAwMDM2OzAwMzIgMDAzNjsKKzMyNTc7MzI1NzszMjU3OzAwMzIgMDAzNzswMDMyIDAwMzc7CiszMjU4OzMyNTg7MzI1ODswMDMyIDAwMzg7MDAzMiAwMDM4OworMzI1OTszMjU5OzMyNTk7MDAzMiAwMDM5OzAwMzIgMDAzOTsKKzMyNUE7MzI1QTszMjVBOzAwMzMgMDAzMDswMDMzIDAwMzA7CiszMjVCOzMyNUI7MzI1QjswMDMzIDAwMzE7MDAzMyAwMDMxOworMzI1QzszMjVDOzMyNUM7MDAzMyAwMDMyOzAwMzMgMDAzMjsKKzMyNUQ7MzI1RDszMjVEOzAwMzMgMDAzMzswMDMzIDAwMzM7CiszMjVFOzMyNUU7MzI1RTswMDMzIDAwMzQ7MDAzMyAwMDM0OworMzI1RjszMjVGOzMyNUY7MDAzMyAwMDM1OzAwMzMgMDAzNTsKKzMyNjA7MzI2MDszMjYwOzExMDA7MTEwMDsKKzMyNjE7MzI2MTszMjYxOzExMDI7MTEwMjsKKzMyNjI7MzI2MjszMjYyOzExMDM7MTEwMzsKKzMyNjM7MzI2MzszMjYzOzExMDU7MTEwNTsKKzMyNjQ7MzI2NDszMjY0OzExMDY7MTEwNjsKKzMyNjU7MzI2NTszMjY1OzExMDc7MTEwNzsKKzMyNjY7MzI2NjszMjY2OzExMDk7MTEwOTsKKzMyNjc7MzI2NzszMjY3OzExMEI7MTEwQjsKKzMyNjg7MzI2ODszMjY4OzExMEM7MTEwQzsKKzMyNjk7MzI2OTszMjY5OzExMEU7MTEwRTsKKzMyNkE7MzI2QTszMjZBOzExMEY7MTEwRjsKKzMyNkI7MzI2QjszMjZCOzExMTA7MTExMDsKKzMyNkM7MzI2QzszMjZDOzExMTE7MTExMTsKKzMyNkQ7MzI2RDszMjZEOzExMTI7MTExMjsKKzMyNkU7MzI2RTszMjZFO0FDMDA7MTEwMCAxMTYxOworMzI2RjszMjZGOzMyNkY7QjA5ODsxMTAyIDExNjE7CiszMjcwOzMyNzA7MzI3MDtCMkU0OzExMDMgMTE2MTsKKzMyNzE7MzI3MTszMjcxO0I3N0M7MTEwNSAxMTYxOworMzI3MjszMjcyOzMyNzI7QjlDODsxMTA2IDExNjE7CiszMjczOzMyNzM7MzI3MztCQzE0OzExMDcgMTE2MTsKKzMyNzQ7MzI3NDszMjc0O0MwQUM7MTEwOSAxMTYxOworMzI3NTszMjc1OzMyNzU7QzU0NDsxMTBCIDExNjE7CiszMjc2OzMyNzY7MzI3NjtDNzkwOzExMEMgMTE2MTsKKzMyNzc7MzI3NzszMjc3O0NDMjg7MTEwRSAxMTYxOworMzI3ODszMjc4OzMyNzg7Q0U3NDsxMTBGIDExNjE7CiszMjc5OzMyNzk7MzI3OTtEMEMwOzExMTAgMTE2MTsKKzMyN0E7MzI3QTszMjdBO0QzMEM7MTExMSAxMTYxOworMzI3QjszMjdCOzMyN0I7RDU1ODsxMTEyIDExNjE7CiszMjgwOzMyODA7MzI4MDs0RTAwOzRFMDA7CiszMjgxOzMyODE7MzI4MTs0RThDOzRFOEM7CiszMjgyOzMyODI7MzI4Mjs0RTA5OzRFMDk7CiszMjgzOzMyODM7MzI4Mzs1NkRCOzU2REI7CiszMjg0OzMyODQ7MzI4NDs0RTk0OzRFOTQ7CiszMjg1OzMyODU7MzI4NTs1MTZEOzUxNkQ7CiszMjg2OzMyODY7MzI4Njs0RTAzOzRFMDM7CiszMjg3OzMyODc7MzI4Nzs1MTZCOzUxNkI7CiszMjg4OzMyODg7MzI4ODs0RTVEOzRFNUQ7CiszMjg5OzMyODk7MzI4OTs1MzQxOzUzNDE7CiszMjhBOzMyOEE7MzI4QTs2NzA4OzY3MDg7CiszMjhCOzMyOEI7MzI4Qjs3MDZCOzcwNkI7CiszMjhDOzMyOEM7MzI4Qzs2QzM0OzZDMzQ7CiszMjhEOzMyOEQ7MzI4RDs2NzI4OzY3Mjg7CiszMjhFOzMyOEU7MzI4RTs5MUQxOzkxRDE7CiszMjhGOzMyOEY7MzI4Rjs1NzFGOzU3MUY7CiszMjkwOzMyOTA7MzI5MDs2NUU1OzY1RTU7CiszMjkxOzMyOTE7MzI5MTs2ODJBOzY4MkE7CiszMjkyOzMyOTI7MzI5Mjs2NzA5OzY3MDk7CiszMjkzOzMyOTM7MzI5Mzs3OTNFOzc5M0U7CiszMjk0OzMyOTQ7MzI5NDs1NDBEOzU0MEQ7CiszMjk1OzMyOTU7MzI5NTs3Mjc5OzcyNzk7CiszMjk2OzMyOTY7MzI5Njs4Q0ExOzhDQTE7CiszMjk3OzMyOTc7MzI5Nzs3OTVEOzc5NUQ7CiszMjk4OzMyOTg7MzI5ODs1MkI0OzUyQjQ7CiszMjk5OzMyOTk7MzI5OTs3OUQ4Ozc5RDg7CiszMjlBOzMyOUE7MzI5QTs3NTM3Ozc1Mzc7CiszMjlCOzMyOUI7MzI5Qjs1OTczOzU5NzM7CiszMjlDOzMyOUM7MzI5Qzs5MDY5OzkwNjk7CiszMjlEOzMyOUQ7MzI5RDs1MTJBOzUxMkE7CiszMjlFOzMyOUU7MzI5RTs1MzcwOzUzNzA7CiszMjlGOzMyOUY7MzI5Rjs2Q0U4OzZDRTg7CiszMkEwOzMyQTA7MzJBMDs5ODA1Ozk4MDU7CiszMkExOzMyQTE7MzJBMTs0RjExOzRGMTE7CiszMkEyOzMyQTI7MzJBMjs1MTk5OzUxOTk7CiszMkEzOzMyQTM7MzJBMzs2QjYzOzZCNjM7CiszMkE0OzMyQTQ7MzJBNDs0RTBBOzRFMEE7CiszMkE1OzMyQTU7MzJBNTs0RTJEOzRFMkQ7CiszMkE2OzMyQTY7MzJBNjs0RTBCOzRFMEI7CiszMkE3OzMyQTc7MzJBNzs1REU2OzVERTY7CiszMkE4OzMyQTg7MzJBODs1M0YzOzUzRjM7CiszMkE5OzMyQTk7MzJBOTs1MzNCOzUzM0I7CiszMkFBOzMyQUE7MzJBQTs1Qjk3OzVCOTc7CiszMkFCOzMyQUI7MzJBQjs1QjY2OzVCNjY7CiszMkFDOzMyQUM7MzJBQzs3NkUzOzc2RTM7CiszMkFEOzMyQUQ7MzJBRDs0RjAxOzRGMDE7CiszMkFFOzMyQUU7MzJBRTs4Q0M3OzhDQzc7CiszMkFGOzMyQUY7MzJBRjs1MzU0OzUzNTQ7CiszMkIwOzMyQjA7MzJCMDs1OTFDOzU5MUM7CiszMkIxOzMyQjE7MzJCMTswMDMzIDAwMzY7MDAzMyAwMDM2OworMzJCMjszMkIyOzMyQjI7MDAzMyAwMDM3OzAwMzMgMDAzNzsKKzMyQjM7MzJCMzszMkIzOzAwMzMgMDAzODswMDMzIDAwMzg7CiszMkI0OzMyQjQ7MzJCNDswMDMzIDAwMzk7MDAzMyAwMDM5OworMzJCNTszMkI1OzMyQjU7MDAzNCAwMDMwOzAwMzQgMDAzMDsKKzMyQjY7MzJCNjszMkI2OzAwMzQgMDAzMTswMDM0IDAwMzE7CiszMkI3OzMyQjc7MzJCNzswMDM0IDAwMzI7MDAzNCAwMDMyOworMzJCODszMkI4OzMyQjg7MDAzNCAwMDMzOzAwMzQgMDAzMzsKKzMyQjk7MzJCOTszMkI5OzAwMzQgMDAzNDswMDM0IDAwMzQ7CiszMkJBOzMyQkE7MzJCQTswMDM0IDAwMzU7MDAzNCAwMDM1OworMzJCQjszMkJCOzMyQkI7MDAzNCAwMDM2OzAwMzQgMDAzNjsKKzMyQkM7MzJCQzszMkJDOzAwMzQgMDAzNzswMDM0IDAwMzc7CiszMkJEOzMyQkQ7MzJCRDswMDM0IDAwMzg7MDAzNCAwMDM4OworMzJCRTszMkJFOzMyQkU7MDAzNCAwMDM5OzAwMzQgMDAzOTsKKzMyQkY7MzJCRjszMkJGOzAwMzUgMDAzMDswMDM1IDAwMzA7CiszMkMwOzMyQzA7MzJDMDswMDMxIDY3MDg7MDAzMSA2NzA4OworMzJDMTszMkMxOzMyQzE7MDAzMiA2NzA4OzAwMzIgNjcwODsKKzMyQzI7MzJDMjszMkMyOzAwMzMgNjcwODswMDMzIDY3MDg7CiszMkMzOzMyQzM7MzJDMzswMDM0IDY3MDg7MDAzNCA2NzA4OworMzJDNDszMkM0OzMyQzQ7MDAzNSA2NzA4OzAwMzUgNjcwODsKKzMyQzU7MzJDNTszMkM1OzAwMzYgNjcwODswMDM2IDY3MDg7CiszMkM2OzMyQzY7MzJDNjswMDM3IDY3MDg7MDAzNyA2NzA4OworMzJDNzszMkM3OzMyQzc7MDAzOCA2NzA4OzAwMzggNjcwODsKKzMyQzg7MzJDODszMkM4OzAwMzkgNjcwODswMDM5IDY3MDg7CiszMkM5OzMyQzk7MzJDOTswMDMxIDAwMzAgNjcwODswMDMxIDAwMzAgNjcwODsKKzMyQ0E7MzJDQTszMkNBOzAwMzEgMDAzMSA2NzA4OzAwMzEgMDAzMSA2NzA4OworMzJDQjszMkNCOzMyQ0I7MDAzMSAwMDMyIDY3MDg7MDAzMSAwMDMyIDY3MDg7CiszMkQwOzMyRDA7MzJEMDszMEEyOzMwQTI7CiszMkQxOzMyRDE7MzJEMTszMEE0OzMwQTQ7CiszMkQyOzMyRDI7MzJEMjszMEE2OzMwQTY7CiszMkQzOzMyRDM7MzJEMzszMEE4OzMwQTg7CiszMkQ0OzMyRDQ7MzJENDszMEFBOzMwQUE7CiszMkQ1OzMyRDU7MzJENTszMEFCOzMwQUI7CiszMkQ2OzMyRDY7MzJENjszMEFEOzMwQUQ7CiszMkQ3OzMyRDc7MzJENzszMEFGOzMwQUY7CiszMkQ4OzMyRDg7MzJEODszMEIxOzMwQjE7CiszMkQ5OzMyRDk7MzJEOTszMEIzOzMwQjM7CiszMkRBOzMyREE7MzJEQTszMEI1OzMwQjU7CiszMkRCOzMyREI7MzJEQjszMEI3OzMwQjc7CiszMkRDOzMyREM7MzJEQzszMEI5OzMwQjk7CiszMkREOzMyREQ7MzJERDszMEJCOzMwQkI7CiszMkRFOzMyREU7MzJERTszMEJEOzMwQkQ7CiszMkRGOzMyREY7MzJERjszMEJGOzMwQkY7CiszMkUwOzMyRTA7MzJFMDszMEMxOzMwQzE7CiszMkUxOzMyRTE7MzJFMTszMEM0OzMwQzQ7CiszMkUyOzMyRTI7MzJFMjszMEM2OzMwQzY7CiszMkUzOzMyRTM7MzJFMzszMEM4OzMwQzg7CiszMkU0OzMyRTQ7MzJFNDszMENBOzMwQ0E7CiszMkU1OzMyRTU7MzJFNTszMENCOzMwQ0I7CiszMkU2OzMyRTY7MzJFNjszMENDOzMwQ0M7CiszMkU3OzMyRTc7MzJFNzszMENEOzMwQ0Q7CiszMkU4OzMyRTg7MzJFODszMENFOzMwQ0U7CiszMkU5OzMyRTk7MzJFOTszMENGOzMwQ0Y7CiszMkVBOzMyRUE7MzJFQTszMEQyOzMwRDI7CiszMkVCOzMyRUI7MzJFQjszMEQ1OzMwRDU7CiszMkVDOzMyRUM7MzJFQzszMEQ4OzMwRDg7CiszMkVEOzMyRUQ7MzJFRDszMERCOzMwREI7CiszMkVFOzMyRUU7MzJFRTszMERFOzMwREU7CiszMkVGOzMyRUY7MzJFRjszMERGOzMwREY7CiszMkYwOzMyRjA7MzJGMDszMEUwOzMwRTA7CiszMkYxOzMyRjE7MzJGMTszMEUxOzMwRTE7CiszMkYyOzMyRjI7MzJGMjszMEUyOzMwRTI7CiszMkYzOzMyRjM7MzJGMzszMEU0OzMwRTQ7CiszMkY0OzMyRjQ7MzJGNDszMEU2OzMwRTY7CiszMkY1OzMyRjU7MzJGNTszMEU4OzMwRTg7CiszMkY2OzMyRjY7MzJGNjszMEU5OzMwRTk7CiszMkY3OzMyRjc7MzJGNzszMEVBOzMwRUE7CiszMkY4OzMyRjg7MzJGODszMEVCOzMwRUI7CiszMkY5OzMyRjk7MzJGOTszMEVDOzMwRUM7CiszMkZBOzMyRkE7MzJGQTszMEVEOzMwRUQ7CiszMkZCOzMyRkI7MzJGQjszMEVGOzMwRUY7CiszMkZDOzMyRkM7MzJGQzszMEYwOzMwRjA7CiszMkZEOzMyRkQ7MzJGRDszMEYxOzMwRjE7CiszMkZFOzMyRkU7MzJGRTszMEYyOzMwRjI7CiszMzAwOzMzMDA7MzMwMDszMEEyIDMwRDEgMzBGQyAzMEM4OzMwQTIgMzBDRiAzMDlBIDMwRkMgMzBDODsKKzMzMDE7MzMwMTszMzAxOzMwQTIgMzBFQiAzMEQ1IDMwQTE7MzBBMiAzMEVCIDMwRDUgMzBBMTsKKzMzMDI7MzMwMjszMzAyOzMwQTIgMzBGMyAzMERBIDMwQTI7MzBBMiAzMEYzIDMwRDggMzA5QSAzMEEyOworMzMwMzszMzAzOzMzMDM7MzBBMiAzMEZDIDMwRUI7MzBBMiAzMEZDIDMwRUI7CiszMzA0OzMzMDQ7MzMwNDszMEE0IDMwQ0IgMzBGMyAzMEIwOzMwQTQgMzBDQiAzMEYzIDMwQUYgMzA5OTsKKzMzMDU7MzMwNTszMzA1OzMwQTQgMzBGMyAzMEMxOzMwQTQgMzBGMyAzMEMxOworMzMwNjszMzA2OzMzMDY7MzBBNiAzMEE5IDMwRjM7MzBBNiAzMEE5IDMwRjM7CiszMzA3OzMzMDc7MzMwNzszMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7MzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM4IDMwOTk7CiszMzA4OzMzMDg7MzMwODszMEE4IDMwRkMgMzBBQiAzMEZDOzMwQTggMzBGQyAzMEFCIDMwRkM7CiszMzA5OzMzMDk7MzMwOTszMEFBIDMwRjMgMzBCOTszMEFBIDMwRjMgMzBCOTsKKzMzMEE7MzMwQTszMzBBOzMwQUEgMzBGQyAzMEUwOzMwQUEgMzBGQyAzMEUwOworMzMwQjszMzBCOzMzMEI7MzBBQiAzMEE0IDMwRUE7MzBBQiAzMEE0IDMwRUE7CiszMzBDOzMzMEM7MzMwQzszMEFCIDMwRTkgMzBDMyAzMEM4OzMwQUIgMzBFOSAzMEMzIDMwQzg7CiszMzBEOzMzMEQ7MzMwRDszMEFCIDMwRUQgMzBFQSAzMEZDOzMwQUIgMzBFRCAzMEVBIDMwRkM7CiszMzBFOzMzMEU7MzMwRTszMEFDIDMwRUQgMzBGMzszMEFCIDMwOTkgMzBFRCAzMEYzOworMzMwRjszMzBGOzMzMEY7MzBBQyAzMEYzIDMwREU7MzBBQiAzMDk5IDMwRjMgMzBERTsKKzMzMTA7MzMxMDszMzEwOzMwQUUgMzBBQzszMEFEIDMwOTkgMzBBQiAzMDk5OworMzMxMTszMzExOzMzMTE7MzBBRSAzMENCIDMwRkM7MzBBRCAzMDk5IDMwQ0IgMzBGQzsKKzMzMTI7MzMxMjszMzEyOzMwQUQgMzBFNSAzMEVBIDMwRkM7MzBBRCAzMEU1IDMwRUEgMzBGQzsKKzMzMTM7MzMxMzszMzEzOzMwQUUgMzBFQiAzMEMwIDMwRkM7MzBBRCAzMDk5IDMwRUIgMzBCRiAzMDk5IDMwRkM7CiszMzE0OzMzMTQ7MzMxNDszMEFEIDMwRUQ7MzBBRCAzMEVEOworMzMxNTszMzE1OzMzMTU7MzBBRCAzMEVEIDMwQjAgMzBFOSAzMEUwOzMwQUQgMzBFRCAzMEFGIDMwOTkgMzBFOSAzMEUwOworMzMxNjszMzE2OzMzMTY7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzE3OzMzMTc7MzMxNzszMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7MzBBRCAzMEVEIDMwRUYgMzBDMyAzMEM4OworMzMxODszMzE4OzMzMTg7MzBCMCAzMEU5IDMwRTA7MzBBRiAzMDk5IDMwRTkgMzBFMDsKKzMzMTk7MzMxOTszMzE5OzMwQjAgMzBFOSAzMEUwIDMwQzggMzBGMzszMEFGIDMwOTkgMzBFOSAzMEUwIDMwQzggMzBGMzsKKzMzMUE7MzMxQTszMzFBOzMwQUYgMzBFQiAzMEJDIDMwQTQgMzBFRDszMEFGIDMwRUIgMzBCQiAzMDk5IDMwQTQgMzBFRDsKKzMzMUI7MzMxQjszMzFCOzMwQUYgMzBFRCAzMEZDIDMwQ0Q7MzBBRiAzMEVEIDMwRkMgMzBDRDsKKzMzMUM7MzMxQzszMzFDOzMwQjEgMzBGQyAzMEI5OzMwQjEgMzBGQyAzMEI5OworMzMxRDszMzFEOzMzMUQ7MzBCMyAzMEVCIDMwQ0E7MzBCMyAzMEVCIDMwQ0E7CiszMzFFOzMzMUU7MzMxRTszMEIzIDMwRkMgMzBERDszMEIzIDMwRkMgMzBEQiAzMDlBOworMzMxRjszMzFGOzMzMUY7MzBCNSAzMEE0IDMwQUYgMzBFQjszMEI1IDMwQTQgMzBBRiAzMEVCOworMzMyMDszMzIwOzMzMjA7MzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOzMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDsKKzMzMjE7MzMyMTszMzIxOzMwQjcgMzBFQSAzMEYzIDMwQjA7MzBCNyAzMEVBIDMwRjMgMzBBRiAzMDk5OworMzMyMjszMzIyOzMzMjI7MzBCQiAzMEYzIDMwQzE7MzBCQiAzMEYzIDMwQzE7CiszMzIzOzMzMjM7MzMyMzszMEJCIDMwRjMgMzBDODszMEJCIDMwRjMgMzBDODsKKzMzMjQ7MzMyNDszMzI0OzMwQzAgMzBGQyAzMEI5OzMwQkYgMzA5OSAzMEZDIDMwQjk7CiszMzI1OzMzMjU7MzMyNTszMEM3IDMwQjc7MzBDNiAzMDk5IDMwQjc7CiszMzI2OzMzMjY7MzMyNjszMEM5IDMwRUI7MzBDOCAzMDk5IDMwRUI7CiszMzI3OzMzMjc7MzMyNzszMEM4IDMwRjM7MzBDOCAzMEYzOworMzMyODszMzI4OzMzMjg7MzBDQSAzMENFOzMwQ0EgMzBDRTsKKzMzMjk7MzMyOTszMzI5OzMwQ0UgMzBDMyAzMEM4OzMwQ0UgMzBDMyAzMEM4OworMzMyQTszMzJBOzMzMkE7MzBDRiAzMEE0IDMwQzQ7MzBDRiAzMEE0IDMwQzQ7CiszMzJCOzMzMkI7MzMyQjszMEQxIDMwRkMgMzBCQiAzMEYzIDMwQzg7MzBDRiAzMDlBIDMwRkMgMzBCQiAzMEYzIDMwQzg7CiszMzJDOzMzMkM7MzMyQzszMEQxIDMwRkMgMzBDNDszMENGIDMwOUEgMzBGQyAzMEM0OworMzMyRDszMzJEOzMzMkQ7MzBEMCAzMEZDIDMwRUMgMzBFQjszMENGIDMwOTkgMzBGQyAzMEVDIDMwRUI7CiszMzJFOzMzMkU7MzMyRTszMEQ0IDMwQTIgMzBCOSAzMEM4IDMwRUI7MzBEMiAzMDlBIDMwQTIgMzBCOSAzMEM4IDMwRUI7CiszMzJGOzMzMkY7MzMyRjszMEQ0IDMwQUYgMzBFQjszMEQyIDMwOUEgMzBBRiAzMEVCOworMzMzMDszMzMwOzMzMzA7MzBENCAzMEIzOzMwRDIgMzA5QSAzMEIzOworMzMzMTszMzMxOzMzMzE7MzBEMyAzMEVCOzMwRDIgMzA5OSAzMEVCOworMzMzMjszMzMyOzMzMzI7MzBENSAzMEExIDMwRTkgMzBDMyAzMEM5OzMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOCAzMDk5OworMzMzMzszMzMzOzMzMzM7MzBENSAzMEEzIDMwRkMgMzBDODszMEQ1IDMwQTMgMzBGQyAzMEM4OworMzMzNDszMzM0OzMzMzQ7MzBENiAzMEMzIDMwQjcgMzBBNyAzMEVCOzMwRDUgMzA5OSAzMEMzIDMwQjcgMzBBNyAzMEVCOworMzMzNTszMzM1OzMzMzU7MzBENSAzMEU5IDMwRjM7MzBENSAzMEU5IDMwRjM7CiszMzM2OzMzMzY7MzMzNjszMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7MzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOworMzMzNzszMzM3OzMzMzc7MzBEQSAzMEJEOzMwRDggMzA5QSAzMEJEOworMzMzODszMzM4OzMzMzg7MzBEQSAzMENCIDMwRDI7MzBEOCAzMDlBIDMwQ0IgMzBEMjsKKzMzMzk7MzMzOTszMzM5OzMwRDggMzBFQiAzMEM0OzMwRDggMzBFQiAzMEM0OworMzMzQTszMzNBOzMzM0E7MzBEQSAzMEYzIDMwQjk7MzBEOCAzMDlBIDMwRjMgMzBCOTsKKzMzM0I7MzMzQjszMzNCOzMwREEgMzBGQyAzMEI4OzMwRDggMzA5QSAzMEZDIDMwQjcgMzA5OTsKKzMzM0M7MzMzQzszMzNDOzMwRDkgMzBGQyAzMEJGOzMwRDggMzA5OSAzMEZDIDMwQkY7CiszMzNEOzMzM0Q7MzMzRDszMEREIDMwQTQgMzBGMyAzMEM4OzMwREIgMzA5QSAzMEE0IDMwRjMgMzBDODsKKzMzM0U7MzMzRTszMzNFOzMwREMgMzBFQiAzMEM4OzMwREIgMzA5OSAzMEVCIDMwQzg7CiszMzNGOzMzM0Y7MzMzRjszMERCIDMwRjM7MzBEQiAzMEYzOworMzM0MDszMzQwOzMzNDA7MzBERCAzMEYzIDMwQzk7MzBEQiAzMDlBIDMwRjMgMzBDOCAzMDk5OworMzM0MTszMzQxOzMzNDE7MzBEQiAzMEZDIDMwRUI7MzBEQiAzMEZDIDMwRUI7CiszMzQyOzMzNDI7MzM0MjszMERCIDMwRkMgMzBGMzszMERCIDMwRkMgMzBGMzsKKzMzNDM7MzM0MzszMzQzOzMwREUgMzBBNCAzMEFGIDMwRUQ7MzBERSAzMEE0IDMwQUYgMzBFRDsKKzMzNDQ7MzM0NDszMzQ0OzMwREUgMzBBNCAzMEVCOzMwREUgMzBBNCAzMEVCOworMzM0NTszMzQ1OzMzNDU7MzBERSAzMEMzIDMwQ0Y7MzBERSAzMEMzIDMwQ0Y7CiszMzQ2OzMzNDY7MzM0NjszMERFIDMwRUIgMzBBRjszMERFIDMwRUIgMzBBRjsKKzMzNDc7MzM0NzszMzQ3OzMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzszMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7CiszMzQ4OzMzNDg7MzM0ODszMERGIDMwQUYgMzBFRCAzMEYzOzMwREYgMzBBRiAzMEVEIDMwRjM7CiszMzQ5OzMzNDk7MzM0OTszMERGIDMwRUE7MzBERiAzMEVBOworMzM0QTszMzRBOzMzNEE7MzBERiAzMEVBIDMwRDAgMzBGQyAzMEVCOzMwREYgMzBFQSAzMENGIDMwOTkgMzBGQyAzMEVCOworMzM0QjszMzRCOzMzNEI7MzBFMSAzMEFDOzMwRTEgMzBBQiAzMDk5OworMzM0QzszMzRDOzMzNEM7MzBFMSAzMEFDIDMwQzggMzBGMzszMEUxIDMwQUIgMzA5OSAzMEM4IDMwRjM7CiszMzREOzMzNEQ7MzM0RDszMEUxIDMwRkMgMzBDOCAzMEVCOzMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzRFOzMzNEU7MzM0RTszMEU0IDMwRkMgMzBDOTszMEU0IDMwRkMgMzBDOCAzMDk5OworMzM0RjszMzRGOzMzNEY7MzBFNCAzMEZDIDMwRUI7MzBFNCAzMEZDIDMwRUI7CiszMzUwOzMzNTA7MzM1MDszMEU2IDMwQTIgMzBGMzszMEU2IDMwQTIgMzBGMzsKKzMzNTE7MzM1MTszMzUxOzMwRUEgMzBDMyAzMEM4IDMwRUI7MzBFQSAzMEMzIDMwQzggMzBFQjsKKzMzNTI7MzM1MjszMzUyOzMwRUEgMzBFOTszMEVBIDMwRTk7CiszMzUzOzMzNTM7MzM1MzszMEVCIDMwRDQgMzBGQzszMEVCIDMwRDIgMzA5QSAzMEZDOworMzM1NDszMzU0OzMzNTQ7MzBFQiAzMEZDIDMwRDYgMzBFQjszMEVCIDMwRkMgMzBENSAzMDk5IDMwRUI7CiszMzU1OzMzNTU7MzM1NTszMEVDIDMwRTA7MzBFQyAzMEUwOworMzM1NjszMzU2OzMzNTY7MzBFQyAzMEYzIDMwQzggMzBCMiAzMEYzOzMwRUMgMzBGMyAzMEM4IDMwQjEgMzA5OSAzMEYzOworMzM1NzszMzU3OzMzNTc7MzBFRiAzMEMzIDMwQzg7MzBFRiAzMEMzIDMwQzg7CiszMzU4OzMzNTg7MzM1ODswMDMwIDcwQjk7MDAzMCA3MEI5OworMzM1OTszMzU5OzMzNTk7MDAzMSA3MEI5OzAwMzEgNzBCOTsKKzMzNUE7MzM1QTszMzVBOzAwMzIgNzBCOTswMDMyIDcwQjk7CiszMzVCOzMzNUI7MzM1QjswMDMzIDcwQjk7MDAzMyA3MEI5OworMzM1QzszMzVDOzMzNUM7MDAzNCA3MEI5OzAwMzQgNzBCOTsKKzMzNUQ7MzM1RDszMzVEOzAwMzUgNzBCOTswMDM1IDcwQjk7CiszMzVFOzMzNUU7MzM1RTswMDM2IDcwQjk7MDAzNiA3MEI5OworMzM1RjszMzVGOzMzNUY7MDAzNyA3MEI5OzAwMzcgNzBCOTsKKzMzNjA7MzM2MDszMzYwOzAwMzggNzBCOTswMDM4IDcwQjk7CiszMzYxOzMzNjE7MzM2MTswMDM5IDcwQjk7MDAzOSA3MEI5OworMzM2MjszMzYyOzMzNjI7MDAzMSAwMDMwIDcwQjk7MDAzMSAwMDMwIDcwQjk7CiszMzYzOzMzNjM7MzM2MzswMDMxIDAwMzEgNzBCOTswMDMxIDAwMzEgNzBCOTsKKzMzNjQ7MzM2NDszMzY0OzAwMzEgMDAzMiA3MEI5OzAwMzEgMDAzMiA3MEI5OworMzM2NTszMzY1OzMzNjU7MDAzMSAwMDMzIDcwQjk7MDAzMSAwMDMzIDcwQjk7CiszMzY2OzMzNjY7MzM2NjswMDMxIDAwMzQgNzBCOTswMDMxIDAwMzQgNzBCOTsKKzMzNjc7MzM2NzszMzY3OzAwMzEgMDAzNSA3MEI5OzAwMzEgMDAzNSA3MEI5OworMzM2ODszMzY4OzMzNjg7MDAzMSAwMDM2IDcwQjk7MDAzMSAwMDM2IDcwQjk7CiszMzY5OzMzNjk7MzM2OTswMDMxIDAwMzcgNzBCOTswMDMxIDAwMzcgNzBCOTsKKzMzNkE7MzM2QTszMzZBOzAwMzEgMDAzOCA3MEI5OzAwMzEgMDAzOCA3MEI5OworMzM2QjszMzZCOzMzNkI7MDAzMSAwMDM5IDcwQjk7MDAzMSAwMDM5IDcwQjk7CiszMzZDOzMzNkM7MzM2QzswMDMyIDAwMzAgNzBCOTswMDMyIDAwMzAgNzBCOTsKKzMzNkQ7MzM2RDszMzZEOzAwMzIgMDAzMSA3MEI5OzAwMzIgMDAzMSA3MEI5OworMzM2RTszMzZFOzMzNkU7MDAzMiAwMDMyIDcwQjk7MDAzMiAwMDMyIDcwQjk7CiszMzZGOzMzNkY7MzM2RjswMDMyIDAwMzMgNzBCOTswMDMyIDAwMzMgNzBCOTsKKzMzNzA7MzM3MDszMzcwOzAwMzIgMDAzNCA3MEI5OzAwMzIgMDAzNCA3MEI5OworMzM3MTszMzcxOzMzNzE7MDA2OCAwMDUwIDAwNjE7MDA2OCAwMDUwIDAwNjE7CiszMzcyOzMzNzI7MzM3MjswMDY0IDAwNjE7MDA2NCAwMDYxOworMzM3MzszMzczOzMzNzM7MDA0MSAwMDU1OzAwNDEgMDA1NTsKKzMzNzQ7MzM3NDszMzc0OzAwNjIgMDA2MSAwMDcyOzAwNjIgMDA2MSAwMDcyOworMzM3NTszMzc1OzMzNzU7MDA2RiAwMDU2OzAwNkYgMDA1NjsKKzMzNzY7MzM3NjszMzc2OzAwNzAgMDA2MzswMDcwIDAwNjM7CiszMzdCOzMzN0I7MzM3Qjs1RTczIDYyMTA7NUU3MyA2MjEwOworMzM3QzszMzdDOzMzN0M7NjYyRCA1NDhDOzY2MkQgNTQ4QzsKKzMzN0Q7MzM3RDszMzdEOzU5MjcgNkI2Mzs1OTI3IDZCNjM7CiszMzdFOzMzN0U7MzM3RTs2NjBFIDZDQkI7NjYwRSA2Q0JCOworMzM3RjszMzdGOzMzN0Y7NjgyQSA1RjBGIDRGMUEgNzkzRTs2ODJBIDVGMEYgNEYxQSA3OTNFOworMzM4MDszMzgwOzMzODA7MDA3MCAwMDQxOzAwNzAgMDA0MTsKKzMzODE7MzM4MTszMzgxOzAwNkUgMDA0MTswMDZFIDAwNDE7CiszMzgyOzMzODI7MzM4MjswM0JDIDAwNDE7MDNCQyAwMDQxOworMzM4MzszMzgzOzMzODM7MDA2RCAwMDQxOzAwNkQgMDA0MTsKKzMzODQ7MzM4NDszMzg0OzAwNkIgMDA0MTswMDZCIDAwNDE7CiszMzg1OzMzODU7MzM4NTswMDRCIDAwNDI7MDA0QiAwMDQyOworMzM4NjszMzg2OzMzODY7MDA0RCAwMDQyOzAwNEQgMDA0MjsKKzMzODc7MzM4NzszMzg3OzAwNDcgMDA0MjswMDQ3IDAwNDI7CiszMzg4OzMzODg7MzM4ODswMDYzIDAwNjEgMDA2QzswMDYzIDAwNjEgMDA2QzsKKzMzODk7MzM4OTszMzg5OzAwNkIgMDA2MyAwMDYxIDAwNkM7MDA2QiAwMDYzIDAwNjEgMDA2QzsKKzMzOEE7MzM4QTszMzhBOzAwNzAgMDA0NjswMDcwIDAwNDY7CiszMzhCOzMzOEI7MzM4QjswMDZFIDAwNDY7MDA2RSAwMDQ2OworMzM4QzszMzhDOzMzOEM7MDNCQyAwMDQ2OzAzQkMgMDA0NjsKKzMzOEQ7MzM4RDszMzhEOzAzQkMgMDA2NzswM0JDIDAwNjc7CiszMzhFOzMzOEU7MzM4RTswMDZEIDAwNjc7MDA2RCAwMDY3OworMzM4RjszMzhGOzMzOEY7MDA2QiAwMDY3OzAwNkIgMDA2NzsKKzMzOTA7MzM5MDszMzkwOzAwNDggMDA3QTswMDQ4IDAwN0E7CiszMzkxOzMzOTE7MzM5MTswMDZCIDAwNDggMDA3QTswMDZCIDAwNDggMDA3QTsKKzMzOTI7MzM5MjszMzkyOzAwNEQgMDA0OCAwMDdBOzAwNEQgMDA0OCAwMDdBOworMzM5MzszMzkzOzMzOTM7MDA0NyAwMDQ4IDAwN0E7MDA0NyAwMDQ4IDAwN0E7CiszMzk0OzMzOTQ7MzM5NDswMDU0IDAwNDggMDA3QTswMDU0IDAwNDggMDA3QTsKKzMzOTU7MzM5NTszMzk1OzAzQkMgMDA2QzswM0JDIDAwNkM7CiszMzk2OzMzOTY7MzM5NjswMDZEIDAwNkM7MDA2RCAwMDZDOworMzM5NzszMzk3OzMzOTc7MDA2NCAwMDZDOzAwNjQgMDA2QzsKKzMzOTg7MzM5ODszMzk4OzAwNkIgMDA2QzswMDZCIDAwNkM7CiszMzk5OzMzOTk7MzM5OTswMDY2IDAwNkQ7MDA2NiAwMDZEOworMzM5QTszMzlBOzMzOUE7MDA2RSAwMDZEOzAwNkUgMDA2RDsKKzMzOUI7MzM5QjszMzlCOzAzQkMgMDA2RDswM0JDIDAwNkQ7CiszMzlDOzMzOUM7MzM5QzswMDZEIDAwNkQ7MDA2RCAwMDZEOworMzM5RDszMzlEOzMzOUQ7MDA2MyAwMDZEOzAwNjMgMDA2RDsKKzMzOUU7MzM5RTszMzlFOzAwNkIgMDA2RDswMDZCIDAwNkQ7CiszMzlGOzMzOUY7MzM5RjswMDZEIDAwNkQgMDAzMjswMDZEIDAwNkQgMDAzMjsKKzMzQTA7MzNBMDszM0EwOzAwNjMgMDA2RCAwMDMyOzAwNjMgMDA2RCAwMDMyOworMzNBMTszM0ExOzMzQTE7MDA2RCAwMDMyOzAwNkQgMDAzMjsKKzMzQTI7MzNBMjszM0EyOzAwNkIgMDA2RCAwMDMyOzAwNkIgMDA2RCAwMDMyOworMzNBMzszM0EzOzMzQTM7MDA2RCAwMDZEIDAwMzM7MDA2RCAwMDZEIDAwMzM7CiszM0E0OzMzQTQ7MzNBNDswMDYzIDAwNkQgMDAzMzswMDYzIDAwNkQgMDAzMzsKKzMzQTU7MzNBNTszM0E1OzAwNkQgMDAzMzswMDZEIDAwMzM7CiszM0E2OzMzQTY7MzNBNjswMDZCIDAwNkQgMDAzMzswMDZCIDAwNkQgMDAzMzsKKzMzQTc7MzNBNzszM0E3OzAwNkQgMjIxNSAwMDczOzAwNkQgMjIxNSAwMDczOworMzNBODszM0E4OzMzQTg7MDA2RCAyMjE1IDAwNzMgMDAzMjswMDZEIDIyMTUgMDA3MyAwMDMyOworMzNBOTszM0E5OzMzQTk7MDA1MCAwMDYxOzAwNTAgMDA2MTsKKzMzQUE7MzNBQTszM0FBOzAwNkIgMDA1MCAwMDYxOzAwNkIgMDA1MCAwMDYxOworMzNBQjszM0FCOzMzQUI7MDA0RCAwMDUwIDAwNjE7MDA0RCAwMDUwIDAwNjE7CiszM0FDOzMzQUM7MzNBQzswMDQ3IDAwNTAgMDA2MTswMDQ3IDAwNTAgMDA2MTsKKzMzQUQ7MzNBRDszM0FEOzAwNzIgMDA2MSAwMDY0OzAwNzIgMDA2MSAwMDY0OworMzNBRTszM0FFOzMzQUU7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MzsKKzMzQUY7MzNBRjszM0FGOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOworMzNCMDszM0IwOzMzQjA7MDA3MCAwMDczOzAwNzAgMDA3MzsKKzMzQjE7MzNCMTszM0IxOzAwNkUgMDA3MzswMDZFIDAwNzM7CiszM0IyOzMzQjI7MzNCMjswM0JDIDAwNzM7MDNCQyAwMDczOworMzNCMzszM0IzOzMzQjM7MDA2RCAwMDczOzAwNkQgMDA3MzsKKzMzQjQ7MzNCNDszM0I0OzAwNzAgMDA1NjswMDcwIDAwNTY7CiszM0I1OzMzQjU7MzNCNTswMDZFIDAwNTY7MDA2RSAwMDU2OworMzNCNjszM0I2OzMzQjY7MDNCQyAwMDU2OzAzQkMgMDA1NjsKKzMzQjc7MzNCNzszM0I3OzAwNkQgMDA1NjswMDZEIDAwNTY7CiszM0I4OzMzQjg7MzNCODswMDZCIDAwNTY7MDA2QiAwMDU2OworMzNCOTszM0I5OzMzQjk7MDA0RCAwMDU2OzAwNEQgMDA1NjsKKzMzQkE7MzNCQTszM0JBOzAwNzAgMDA1NzswMDcwIDAwNTc7CiszM0JCOzMzQkI7MzNCQjswMDZFIDAwNTc7MDA2RSAwMDU3OworMzNCQzszM0JDOzMzQkM7MDNCQyAwMDU3OzAzQkMgMDA1NzsKKzMzQkQ7MzNCRDszM0JEOzAwNkQgMDA1NzswMDZEIDAwNTc7CiszM0JFOzMzQkU7MzNCRTswMDZCIDAwNTc7MDA2QiAwMDU3OworMzNCRjszM0JGOzMzQkY7MDA0RCAwMDU3OzAwNEQgMDA1NzsKKzMzQzA7MzNDMDszM0MwOzAwNkIgMDNBOTswMDZCIDAzQTk7CiszM0MxOzMzQzE7MzNDMTswMDREIDAzQTk7MDA0RCAwM0E5OworMzNDMjszM0MyOzMzQzI7MDA2MSAwMDJFIDAwNkQgMDAyRTswMDYxIDAwMkUgMDA2RCAwMDJFOworMzNDMzszM0MzOzMzQzM7MDA0MiAwMDcxOzAwNDIgMDA3MTsKKzMzQzQ7MzNDNDszM0M0OzAwNjMgMDA2MzswMDYzIDAwNjM7CiszM0M1OzMzQzU7MzNDNTswMDYzIDAwNjQ7MDA2MyAwMDY0OworMzNDNjszM0M2OzMzQzY7MDA0MyAyMjE1IDAwNkIgMDA2NzswMDQzIDIyMTUgMDA2QiAwMDY3OworMzNDNzszM0M3OzMzQzc7MDA0MyAwMDZGIDAwMkU7MDA0MyAwMDZGIDAwMkU7CiszM0M4OzMzQzg7MzNDODswMDY0IDAwNDI7MDA2NCAwMDQyOworMzNDOTszM0M5OzMzQzk7MDA0NyAwMDc5OzAwNDcgMDA3OTsKKzMzQ0E7MzNDQTszM0NBOzAwNjggMDA2MTswMDY4IDAwNjE7CiszM0NCOzMzQ0I7MzNDQjswMDQ4IDAwNTA7MDA0OCAwMDUwOworMzNDQzszM0NDOzMzQ0M7MDA2OSAwMDZFOzAwNjkgMDA2RTsKKzMzQ0Q7MzNDRDszM0NEOzAwNEIgMDA0QjswMDRCIDAwNEI7CiszM0NFOzMzQ0U7MzNDRTswMDRCIDAwNEQ7MDA0QiAwMDREOworMzNDRjszM0NGOzMzQ0Y7MDA2QiAwMDc0OzAwNkIgMDA3NDsKKzMzRDA7MzNEMDszM0QwOzAwNkMgMDA2RDswMDZDIDAwNkQ7CiszM0QxOzMzRDE7MzNEMTswMDZDIDAwNkU7MDA2QyAwMDZFOworMzNEMjszM0QyOzMzRDI7MDA2QyAwMDZGIDAwNjc7MDA2QyAwMDZGIDAwNjc7CiszM0QzOzMzRDM7MzNEMzswMDZDIDAwNzg7MDA2QyAwMDc4OworMzNENDszM0Q0OzMzRDQ7MDA2RCAwMDYyOzAwNkQgMDA2MjsKKzMzRDU7MzNENTszM0Q1OzAwNkQgMDA2OSAwMDZDOzAwNkQgMDA2OSAwMDZDOworMzNENjszM0Q2OzMzRDY7MDA2RCAwMDZGIDAwNkM7MDA2RCAwMDZGIDAwNkM7CiszM0Q3OzMzRDc7MzNENzswMDUwIDAwNDg7MDA1MCAwMDQ4OworMzNEODszM0Q4OzMzRDg7MDA3MCAwMDJFIDAwNkQgMDAyRTswMDcwIDAwMkUgMDA2RCAwMDJFOworMzNEOTszM0Q5OzMzRDk7MDA1MCAwMDUwIDAwNEQ7MDA1MCAwMDUwIDAwNEQ7CiszM0RBOzMzREE7MzNEQTswMDUwIDAwNTI7MDA1MCAwMDUyOworMzNEQjszM0RCOzMzREI7MDA3MyAwMDcyOzAwNzMgMDA3MjsKKzMzREM7MzNEQzszM0RDOzAwNTMgMDA3NjswMDUzIDAwNzY7CiszM0REOzMzREQ7MzNERDswMDU3IDAwNjI7MDA1NyAwMDYyOworMzNFMDszM0UwOzMzRTA7MDAzMSA2NUU1OzAwMzEgNjVFNTsKKzMzRTE7MzNFMTszM0UxOzAwMzIgNjVFNTswMDMyIDY1RTU7CiszM0UyOzMzRTI7MzNFMjswMDMzIDY1RTU7MDAzMyA2NUU1OworMzNFMzszM0UzOzMzRTM7MDAzNCA2NUU1OzAwMzQgNjVFNTsKKzMzRTQ7MzNFNDszM0U0OzAwMzUgNjVFNTswMDM1IDY1RTU7CiszM0U1OzMzRTU7MzNFNTswMDM2IDY1RTU7MDAzNiA2NUU1OworMzNFNjszM0U2OzMzRTY7MDAzNyA2NUU1OzAwMzcgNjVFNTsKKzMzRTc7MzNFNzszM0U3OzAwMzggNjVFNTswMDM4IDY1RTU7CiszM0U4OzMzRTg7MzNFODswMDM5IDY1RTU7MDAzOSA2NUU1OworMzNFOTszM0U5OzMzRTk7MDAzMSAwMDMwIDY1RTU7MDAzMSAwMDMwIDY1RTU7CiszM0VBOzMzRUE7MzNFQTswMDMxIDAwMzEgNjVFNTswMDMxIDAwMzEgNjVFNTsKKzMzRUI7MzNFQjszM0VCOzAwMzEgMDAzMiA2NUU1OzAwMzEgMDAzMiA2NUU1OworMzNFQzszM0VDOzMzRUM7MDAzMSAwMDMzIDY1RTU7MDAzMSAwMDMzIDY1RTU7CiszM0VEOzMzRUQ7MzNFRDswMDMxIDAwMzQgNjVFNTswMDMxIDAwMzQgNjVFNTsKKzMzRUU7MzNFRTszM0VFOzAwMzEgMDAzNSA2NUU1OzAwMzEgMDAzNSA2NUU1OworMzNFRjszM0VGOzMzRUY7MDAzMSAwMDM2IDY1RTU7MDAzMSAwMDM2IDY1RTU7CiszM0YwOzMzRjA7MzNGMDswMDMxIDAwMzcgNjVFNTswMDMxIDAwMzcgNjVFNTsKKzMzRjE7MzNGMTszM0YxOzAwMzEgMDAzOCA2NUU1OzAwMzEgMDAzOCA2NUU1OworMzNGMjszM0YyOzMzRjI7MDAzMSAwMDM5IDY1RTU7MDAzMSAwMDM5IDY1RTU7CiszM0YzOzMzRjM7MzNGMzswMDMyIDAwMzAgNjVFNTswMDMyIDAwMzAgNjVFNTsKKzMzRjQ7MzNGNDszM0Y0OzAwMzIgMDAzMSA2NUU1OzAwMzIgMDAzMSA2NUU1OworMzNGNTszM0Y1OzMzRjU7MDAzMiAwMDMyIDY1RTU7MDAzMiAwMDMyIDY1RTU7CiszM0Y2OzMzRjY7MzNGNjswMDMyIDAwMzMgNjVFNTswMDMyIDAwMzMgNjVFNTsKKzMzRjc7MzNGNzszM0Y3OzAwMzIgMDAzNCA2NUU1OzAwMzIgMDAzNCA2NUU1OworMzNGODszM0Y4OzMzRjg7MDAzMiAwMDM1IDY1RTU7MDAzMiAwMDM1IDY1RTU7CiszM0Y5OzMzRjk7MzNGOTswMDMyIDAwMzYgNjVFNTswMDMyIDAwMzYgNjVFNTsKKzMzRkE7MzNGQTszM0ZBOzAwMzIgMDAzNyA2NUU1OzAwMzIgMDAzNyA2NUU1OworMzNGQjszM0ZCOzMzRkI7MDAzMiAwMDM4IDY1RTU7MDAzMiAwMDM4IDY1RTU7CiszM0ZDOzMzRkM7MzNGQzswMDMyIDAwMzkgNjVFNTswMDMyIDAwMzkgNjVFNTsKKzMzRkQ7MzNGRDszM0ZEOzAwMzMgMDAzMCA2NUU1OzAwMzMgMDAzMCA2NUU1OworMzNGRTszM0ZFOzMzRkU7MDAzMyAwMDMxIDY1RTU7MDAzMyAwMDMxIDY1RTU7CitBQzAwO0FDMDA7MTEwMCAxMTYxO0FDMDA7MTEwMCAxMTYxOworQUMwMTtBQzAxOzExMDAgMTE2MSAxMUE4O0FDMDE7MTEwMCAxMTYxIDExQTg7CitBQzAyO0FDMDI7MTEwMCAxMTYxIDExQTk7QUMwMjsxMTAwIDExNjEgMTFBOTsKK0FDMDM7QUMwMzsxMTAwIDExNjEgMTFBQTtBQzAzOzExMDAgMTE2MSAxMUFBOworQUMwNDtBQzA0OzExMDAgMTE2MSAxMUFCO0FDMDQ7MTEwMCAxMTYxIDExQUI7CitBQzA1O0FDMDU7MTEwMCAxMTYxIDExQUM7QUMwNTsxMTAwIDExNjEgMTFBQzsKK0FDMDY7QUMwNjsxMTAwIDExNjEgMTFBRDtBQzA2OzExMDAgMTE2MSAxMUFEOworQUMwNztBQzA3OzExMDAgMTE2MSAxMUFFO0FDMDc7MTEwMCAxMTYxIDExQUU7CitBQzA4O0FDMDg7MTEwMCAxMTYxIDExQUY7QUMwODsxMTAwIDExNjEgMTFBRjsKK0FDMDk7QUMwOTsxMTAwIDExNjEgMTFCMDtBQzA5OzExMDAgMTE2MSAxMUIwOworQUMwQTtBQzBBOzExMDAgMTE2MSAxMUIxO0FDMEE7MTEwMCAxMTYxIDExQjE7CitBQzBCO0FDMEI7MTEwMCAxMTYxIDExQjI7QUMwQjsxMTAwIDExNjEgMTFCMjsKK0FDMEM7QUMwQzsxMTAwIDExNjEgMTFCMztBQzBDOzExMDAgMTE2MSAxMUIzOworQUMwRDtBQzBEOzExMDAgMTE2MSAxMUI0O0FDMEQ7MTEwMCAxMTYxIDExQjQ7CitBQzBFO0FDMEU7MTEwMCAxMTYxIDExQjU7QUMwRTsxMTAwIDExNjEgMTFCNTsKK0FDMEY7QUMwRjsxMTAwIDExNjEgMTFCNjtBQzBGOzExMDAgMTE2MSAxMUI2OworQUMxMDtBQzEwOzExMDAgMTE2MSAxMUI3O0FDMTA7MTEwMCAxMTYxIDExQjc7CitBQzExO0FDMTE7MTEwMCAxMTYxIDExQjg7QUMxMTsxMTAwIDExNjEgMTFCODsKK0FDMTI7QUMxMjsxMTAwIDExNjEgMTFCOTtBQzEyOzExMDAgMTE2MSAxMUI5OworQUMxMztBQzEzOzExMDAgMTE2MSAxMUJBO0FDMTM7MTEwMCAxMTYxIDExQkE7CitBQzE0O0FDMTQ7MTEwMCAxMTYxIDExQkI7QUMxNDsxMTAwIDExNjEgMTFCQjsKK0FDMTU7QUMxNTsxMTAwIDExNjEgMTFCQztBQzE1OzExMDAgMTE2MSAxMUJDOworQUMxNjtBQzE2OzExMDAgMTE2MSAxMUJEO0FDMTY7MTEwMCAxMTYxIDExQkQ7CitBQzE3O0FDMTc7MTEwMCAxMTYxIDExQkU7QUMxNzsxMTAwIDExNjEgMTFCRTsKK0FDMTg7QUMxODsxMTAwIDExNjEgMTFCRjtBQzE4OzExMDAgMTE2MSAxMUJGOworQUMxOTtBQzE5OzExMDAgMTE2MSAxMUMwO0FDMTk7MTEwMCAxMTYxIDExQzA7CitBQzFBO0FDMUE7MTEwMCAxMTYxIDExQzE7QUMxQTsxMTAwIDExNjEgMTFDMTsKK0FDMUI7QUMxQjsxMTAwIDExNjEgMTFDMjtBQzFCOzExMDAgMTE2MSAxMUMyOworQUMxQztBQzFDOzExMDAgMTE2MjtBQzFDOzExMDAgMTE2MjsKK0FDMUQ7QUMxRDsxMTAwIDExNjIgMTFBODtBQzFEOzExMDAgMTE2MiAxMUE4OworQUMxRTtBQzFFOzExMDAgMTE2MiAxMUE5O0FDMUU7MTEwMCAxMTYyIDExQTk7CitBQzFGO0FDMUY7MTEwMCAxMTYyIDExQUE7QUMxRjsxMTAwIDExNjIgMTFBQTsKK0FDMjA7QUMyMDsxMTAwIDExNjIgMTFBQjtBQzIwOzExMDAgMTE2MiAxMUFCOworQUMyMTtBQzIxOzExMDAgMTE2MiAxMUFDO0FDMjE7MTEwMCAxMTYyIDExQUM7CitBQzIyO0FDMjI7MTEwMCAxMTYyIDExQUQ7QUMyMjsxMTAwIDExNjIgMTFBRDsKK0FDMjM7QUMyMzsxMTAwIDExNjIgMTFBRTtBQzIzOzExMDAgMTE2MiAxMUFFOworQUMyNDtBQzI0OzExMDAgMTE2MiAxMUFGO0FDMjQ7MTEwMCAxMTYyIDExQUY7CitBQzI1O0FDMjU7MTEwMCAxMTYyIDExQjA7QUMyNTsxMTAwIDExNjIgMTFCMDsKK0FDMjY7QUMyNjsxMTAwIDExNjIgMTFCMTtBQzI2OzExMDAgMTE2MiAxMUIxOworQUMyNztBQzI3OzExMDAgMTE2MiAxMUIyO0FDMjc7MTEwMCAxMTYyIDExQjI7CitBQzI4O0FDMjg7MTEwMCAxMTYyIDExQjM7QUMyODsxMTAwIDExNjIgMTFCMzsKK0FDMjk7QUMyOTsxMTAwIDExNjIgMTFCNDtBQzI5OzExMDAgMTE2MiAxMUI0OworQUMyQTtBQzJBOzExMDAgMTE2MiAxMUI1O0FDMkE7MTEwMCAxMTYyIDExQjU7CitBQzJCO0FDMkI7MTEwMCAxMTYyIDExQjY7QUMyQjsxMTAwIDExNjIgMTFCNjsKK0FDMkM7QUMyQzsxMTAwIDExNjIgMTFCNztBQzJDOzExMDAgMTE2MiAxMUI3OworQUMyRDtBQzJEOzExMDAgMTE2MiAxMUI4O0FDMkQ7MTEwMCAxMTYyIDExQjg7CitBQzJFO0FDMkU7MTEwMCAxMTYyIDExQjk7QUMyRTsxMTAwIDExNjIgMTFCOTsKK0FDMkY7QUMyRjsxMTAwIDExNjIgMTFCQTtBQzJGOzExMDAgMTE2MiAxMUJBOworQUMzMDtBQzMwOzExMDAgMTE2MiAxMUJCO0FDMzA7MTEwMCAxMTYyIDExQkI7CitBQzMxO0FDMzE7MTEwMCAxMTYyIDExQkM7QUMzMTsxMTAwIDExNjIgMTFCQzsKK0FDMzI7QUMzMjsxMTAwIDExNjIgMTFCRDtBQzMyOzExMDAgMTE2MiAxMUJEOworQUMzMztBQzMzOzExMDAgMTE2MiAxMUJFO0FDMzM7MTEwMCAxMTYyIDExQkU7CitBQzM0O0FDMzQ7MTEwMCAxMTYyIDExQkY7QUMzNDsxMTAwIDExNjIgMTFCRjsKK0FDMzU7QUMzNTsxMTAwIDExNjIgMTFDMDtBQzM1OzExMDAgMTE2MiAxMUMwOworQUMzNjtBQzM2OzExMDAgMTE2MiAxMUMxO0FDMzY7MTEwMCAxMTYyIDExQzE7CitBQzM3O0FDMzc7MTEwMCAxMTYyIDExQzI7QUMzNzsxMTAwIDExNjIgMTFDMjsKK0FDMzg7QUMzODsxMTAwIDExNjM7QUMzODsxMTAwIDExNjM7CitBQzM5O0FDMzk7MTEwMCAxMTYzIDExQTg7QUMzOTsxMTAwIDExNjMgMTFBODsKK0FDM0E7QUMzQTsxMTAwIDExNjMgMTFBOTtBQzNBOzExMDAgMTE2MyAxMUE5OworQUMzQjtBQzNCOzExMDAgMTE2MyAxMUFBO0FDM0I7MTEwMCAxMTYzIDExQUE7CitBQzNDO0FDM0M7MTEwMCAxMTYzIDExQUI7QUMzQzsxMTAwIDExNjMgMTFBQjsKK0FDM0Q7QUMzRDsxMTAwIDExNjMgMTFBQztBQzNEOzExMDAgMTE2MyAxMUFDOworQUMzRTtBQzNFOzExMDAgMTE2MyAxMUFEO0FDM0U7MTEwMCAxMTYzIDExQUQ7CitBQzNGO0FDM0Y7MTEwMCAxMTYzIDExQUU7QUMzRjsxMTAwIDExNjMgMTFBRTsKK0FDNDA7QUM0MDsxMTAwIDExNjMgMTFBRjtBQzQwOzExMDAgMTE2MyAxMUFGOworQUM0MTtBQzQxOzExMDAgMTE2MyAxMUIwO0FDNDE7MTEwMCAxMTYzIDExQjA7CitBQzQyO0FDNDI7MTEwMCAxMTYzIDExQjE7QUM0MjsxMTAwIDExNjMgMTFCMTsKK0FDNDM7QUM0MzsxMTAwIDExNjMgMTFCMjtBQzQzOzExMDAgMTE2MyAxMUIyOworQUM0NDtBQzQ0OzExMDAgMTE2MyAxMUIzO0FDNDQ7MTEwMCAxMTYzIDExQjM7CitBQzQ1O0FDNDU7MTEwMCAxMTYzIDExQjQ7QUM0NTsxMTAwIDExNjMgMTFCNDsKK0FDNDY7QUM0NjsxMTAwIDExNjMgMTFCNTtBQzQ2OzExMDAgMTE2MyAxMUI1OworQUM0NztBQzQ3OzExMDAgMTE2MyAxMUI2O0FDNDc7MTEwMCAxMTYzIDExQjY7CitBQzQ4O0FDNDg7MTEwMCAxMTYzIDExQjc7QUM0ODsxMTAwIDExNjMgMTFCNzsKK0FDNDk7QUM0OTsxMTAwIDExNjMgMTFCODtBQzQ5OzExMDAgMTE2MyAxMUI4OworQUM0QTtBQzRBOzExMDAgMTE2MyAxMUI5O0FDNEE7MTEwMCAxMTYzIDExQjk7CitBQzRCO0FDNEI7MTEwMCAxMTYzIDExQkE7QUM0QjsxMTAwIDExNjMgMTFCQTsKK0FDNEM7QUM0QzsxMTAwIDExNjMgMTFCQjtBQzRDOzExMDAgMTE2MyAxMUJCOworQUM0RDtBQzREOzExMDAgMTE2MyAxMUJDO0FDNEQ7MTEwMCAxMTYzIDExQkM7CitBQzRFO0FDNEU7MTEwMCAxMTYzIDExQkQ7QUM0RTsxMTAwIDExNjMgMTFCRDsKK0FDNEY7QUM0RjsxMTAwIDExNjMgMTFCRTtBQzRGOzExMDAgMTE2MyAxMUJFOworQUM1MDtBQzUwOzExMDAgMTE2MyAxMUJGO0FDNTA7MTEwMCAxMTYzIDExQkY7CitBQzUxO0FDNTE7MTEwMCAxMTYzIDExQzA7QUM1MTsxMTAwIDExNjMgMTFDMDsKK0FDNTI7QUM1MjsxMTAwIDExNjMgMTFDMTtBQzUyOzExMDAgMTE2MyAxMUMxOworQUM1MztBQzUzOzExMDAgMTE2MyAxMUMyO0FDNTM7MTEwMCAxMTYzIDExQzI7CitBQzU0O0FDNTQ7MTEwMCAxMTY0O0FDNTQ7MTEwMCAxMTY0OworQUM1NTtBQzU1OzExMDAgMTE2NCAxMUE4O0FDNTU7MTEwMCAxMTY0IDExQTg7CitBQzU2O0FDNTY7MTEwMCAxMTY0IDExQTk7QUM1NjsxMTAwIDExNjQgMTFBOTsKK0FDNTc7QUM1NzsxMTAwIDExNjQgMTFBQTtBQzU3OzExMDAgMTE2NCAxMUFBOworQUM1ODtBQzU4OzExMDAgMTE2NCAxMUFCO0FDNTg7MTEwMCAxMTY0IDExQUI7CitBQzU5O0FDNTk7MTEwMCAxMTY0IDExQUM7QUM1OTsxMTAwIDExNjQgMTFBQzsKK0FDNUE7QUM1QTsxMTAwIDExNjQgMTFBRDtBQzVBOzExMDAgMTE2NCAxMUFEOworQUM1QjtBQzVCOzExMDAgMTE2NCAxMUFFO0FDNUI7MTEwMCAxMTY0IDExQUU7CitBQzVDO0FDNUM7MTEwMCAxMTY0IDExQUY7QUM1QzsxMTAwIDExNjQgMTFBRjsKK0FDNUQ7QUM1RDsxMTAwIDExNjQgMTFCMDtBQzVEOzExMDAgMTE2NCAxMUIwOworQUM1RTtBQzVFOzExMDAgMTE2NCAxMUIxO0FDNUU7MTEwMCAxMTY0IDExQjE7CitBQzVGO0FDNUY7MTEwMCAxMTY0IDExQjI7QUM1RjsxMTAwIDExNjQgMTFCMjsKK0FDNjA7QUM2MDsxMTAwIDExNjQgMTFCMztBQzYwOzExMDAgMTE2NCAxMUIzOworQUM2MTtBQzYxOzExMDAgMTE2NCAxMUI0O0FDNjE7MTEwMCAxMTY0IDExQjQ7CitBQzYyO0FDNjI7MTEwMCAxMTY0IDExQjU7QUM2MjsxMTAwIDExNjQgMTFCNTsKK0FDNjM7QUM2MzsxMTAwIDExNjQgMTFCNjtBQzYzOzExMDAgMTE2NCAxMUI2OworQUM2NDtBQzY0OzExMDAgMTE2NCAxMUI3O0FDNjQ7MTEwMCAxMTY0IDExQjc7CitBQzY1O0FDNjU7MTEwMCAxMTY0IDExQjg7QUM2NTsxMTAwIDExNjQgMTFCODsKK0FDNjY7QUM2NjsxMTAwIDExNjQgMTFCOTtBQzY2OzExMDAgMTE2NCAxMUI5OworQUM2NztBQzY3OzExMDAgMTE2NCAxMUJBO0FDNjc7MTEwMCAxMTY0IDExQkE7CitBQzY4O0FDNjg7MTEwMCAxMTY0IDExQkI7QUM2ODsxMTAwIDExNjQgMTFCQjsKK0FDNjk7QUM2OTsxMTAwIDExNjQgMTFCQztBQzY5OzExMDAgMTE2NCAxMUJDOworQUM2QTtBQzZBOzExMDAgMTE2NCAxMUJEO0FDNkE7MTEwMCAxMTY0IDExQkQ7CitBQzZCO0FDNkI7MTEwMCAxMTY0IDExQkU7QUM2QjsxMTAwIDExNjQgMTFCRTsKK0FDNkM7QUM2QzsxMTAwIDExNjQgMTFCRjtBQzZDOzExMDAgMTE2NCAxMUJGOworQUM2RDtBQzZEOzExMDAgMTE2NCAxMUMwO0FDNkQ7MTEwMCAxMTY0IDExQzA7CitBQzZFO0FDNkU7MTEwMCAxMTY0IDExQzE7QUM2RTsxMTAwIDExNjQgMTFDMTsKK0FDNkY7QUM2RjsxMTAwIDExNjQgMTFDMjtBQzZGOzExMDAgMTE2NCAxMUMyOworQUM3MDtBQzcwOzExMDAgMTE2NTtBQzcwOzExMDAgMTE2NTsKK0FDNzE7QUM3MTsxMTAwIDExNjUgMTFBODtBQzcxOzExMDAgMTE2NSAxMUE4OworQUM3MjtBQzcyOzExMDAgMTE2NSAxMUE5O0FDNzI7MTEwMCAxMTY1IDExQTk7CitBQzczO0FDNzM7MTEwMCAxMTY1IDExQUE7QUM3MzsxMTAwIDExNjUgMTFBQTsKK0FDNzQ7QUM3NDsxMTAwIDExNjUgMTFBQjtBQzc0OzExMDAgMTE2NSAxMUFCOworQUM3NTtBQzc1OzExMDAgMTE2NSAxMUFDO0FDNzU7MTEwMCAxMTY1IDExQUM7CitBQzc2O0FDNzY7MTEwMCAxMTY1IDExQUQ7QUM3NjsxMTAwIDExNjUgMTFBRDsKK0FDNzc7QUM3NzsxMTAwIDExNjUgMTFBRTtBQzc3OzExMDAgMTE2NSAxMUFFOworQUM3ODtBQzc4OzExMDAgMTE2NSAxMUFGO0FDNzg7MTEwMCAxMTY1IDExQUY7CitBQzc5O0FDNzk7MTEwMCAxMTY1IDExQjA7QUM3OTsxMTAwIDExNjUgMTFCMDsKK0FDN0E7QUM3QTsxMTAwIDExNjUgMTFCMTtBQzdBOzExMDAgMTE2NSAxMUIxOworQUM3QjtBQzdCOzExMDAgMTE2NSAxMUIyO0FDN0I7MTEwMCAxMTY1IDExQjI7CitBQzdDO0FDN0M7MTEwMCAxMTY1IDExQjM7QUM3QzsxMTAwIDExNjUgMTFCMzsKK0FDN0Q7QUM3RDsxMTAwIDExNjUgMTFCNDtBQzdEOzExMDAgMTE2NSAxMUI0OworQUM3RTtBQzdFOzExMDAgMTE2NSAxMUI1O0FDN0U7MTEwMCAxMTY1IDExQjU7CitBQzdGO0FDN0Y7MTEwMCAxMTY1IDExQjY7QUM3RjsxMTAwIDExNjUgMTFCNjsKK0FDODA7QUM4MDsxMTAwIDExNjUgMTFCNztBQzgwOzExMDAgMTE2NSAxMUI3OworQUM4MTtBQzgxOzExMDAgMTE2NSAxMUI4O0FDODE7MTEwMCAxMTY1IDExQjg7CitBQzgyO0FDODI7MTEwMCAxMTY1IDExQjk7QUM4MjsxMTAwIDExNjUgMTFCOTsKK0FDODM7QUM4MzsxMTAwIDExNjUgMTFCQTtBQzgzOzExMDAgMTE2NSAxMUJBOworQUM4NDtBQzg0OzExMDAgMTE2NSAxMUJCO0FDODQ7MTEwMCAxMTY1IDExQkI7CitBQzg1O0FDODU7MTEwMCAxMTY1IDExQkM7QUM4NTsxMTAwIDExNjUgMTFCQzsKK0FDODY7QUM4NjsxMTAwIDExNjUgMTFCRDtBQzg2OzExMDAgMTE2NSAxMUJEOworQUM4NztBQzg3OzExMDAgMTE2NSAxMUJFO0FDODc7MTEwMCAxMTY1IDExQkU7CitBQzg4O0FDODg7MTEwMCAxMTY1IDExQkY7QUM4ODsxMTAwIDExNjUgMTFCRjsKK0FDODk7QUM4OTsxMTAwIDExNjUgMTFDMDtBQzg5OzExMDAgMTE2NSAxMUMwOworQUM4QTtBQzhBOzExMDAgMTE2NSAxMUMxO0FDOEE7MTEwMCAxMTY1IDExQzE7CitBQzhCO0FDOEI7MTEwMCAxMTY1IDExQzI7QUM4QjsxMTAwIDExNjUgMTFDMjsKK0FDOEM7QUM4QzsxMTAwIDExNjY7QUM4QzsxMTAwIDExNjY7CitBQzhEO0FDOEQ7MTEwMCAxMTY2IDExQTg7QUM4RDsxMTAwIDExNjYgMTFBODsKK0FDOEU7QUM4RTsxMTAwIDExNjYgMTFBOTtBQzhFOzExMDAgMTE2NiAxMUE5OworQUM4RjtBQzhGOzExMDAgMTE2NiAxMUFBO0FDOEY7MTEwMCAxMTY2IDExQUE7CitBQzkwO0FDOTA7MTEwMCAxMTY2IDExQUI7QUM5MDsxMTAwIDExNjYgMTFBQjsKK0FDOTE7QUM5MTsxMTAwIDExNjYgMTFBQztBQzkxOzExMDAgMTE2NiAxMUFDOworQUM5MjtBQzkyOzExMDAgMTE2NiAxMUFEO0FDOTI7MTEwMCAxMTY2IDExQUQ7CitBQzkzO0FDOTM7MTEwMCAxMTY2IDExQUU7QUM5MzsxMTAwIDExNjYgMTFBRTsKK0FDOTQ7QUM5NDsxMTAwIDExNjYgMTFBRjtBQzk0OzExMDAgMTE2NiAxMUFGOworQUM5NTtBQzk1OzExMDAgMTE2NiAxMUIwO0FDOTU7MTEwMCAxMTY2IDExQjA7CitBQzk2O0FDOTY7MTEwMCAxMTY2IDExQjE7QUM5NjsxMTAwIDExNjYgMTFCMTsKK0FDOTc7QUM5NzsxMTAwIDExNjYgMTFCMjtBQzk3OzExMDAgMTE2NiAxMUIyOworQUM5ODtBQzk4OzExMDAgMTE2NiAxMUIzO0FDOTg7MTEwMCAxMTY2IDExQjM7CitBQzk5O0FDOTk7MTEwMCAxMTY2IDExQjQ7QUM5OTsxMTAwIDExNjYgMTFCNDsKK0FDOUE7QUM5QTsxMTAwIDExNjYgMTFCNTtBQzlBOzExMDAgMTE2NiAxMUI1OworQUM5QjtBQzlCOzExMDAgMTE2NiAxMUI2O0FDOUI7MTEwMCAxMTY2IDExQjY7CitBQzlDO0FDOUM7MTEwMCAxMTY2IDExQjc7QUM5QzsxMTAwIDExNjYgMTFCNzsKK0FDOUQ7QUM5RDsxMTAwIDExNjYgMTFCODtBQzlEOzExMDAgMTE2NiAxMUI4OworQUM5RTtBQzlFOzExMDAgMTE2NiAxMUI5O0FDOUU7MTEwMCAxMTY2IDExQjk7CitBQzlGO0FDOUY7MTEwMCAxMTY2IDExQkE7QUM5RjsxMTAwIDExNjYgMTFCQTsKK0FDQTA7QUNBMDsxMTAwIDExNjYgMTFCQjtBQ0EwOzExMDAgMTE2NiAxMUJCOworQUNBMTtBQ0ExOzExMDAgMTE2NiAxMUJDO0FDQTE7MTEwMCAxMTY2IDExQkM7CitBQ0EyO0FDQTI7MTEwMCAxMTY2IDExQkQ7QUNBMjsxMTAwIDExNjYgMTFCRDsKK0FDQTM7QUNBMzsxMTAwIDExNjYgMTFCRTtBQ0EzOzExMDAgMTE2NiAxMUJFOworQUNBNDtBQ0E0OzExMDAgMTE2NiAxMUJGO0FDQTQ7MTEwMCAxMTY2IDExQkY7CitBQ0E1O0FDQTU7MTEwMCAxMTY2IDExQzA7QUNBNTsxMTAwIDExNjYgMTFDMDsKK0FDQTY7QUNBNjsxMTAwIDExNjYgMTFDMTtBQ0E2OzExMDAgMTE2NiAxMUMxOworQUNBNztBQ0E3OzExMDAgMTE2NiAxMUMyO0FDQTc7MTEwMCAxMTY2IDExQzI7CitBQ0E4O0FDQTg7MTEwMCAxMTY3O0FDQTg7MTEwMCAxMTY3OworQUNBOTtBQ0E5OzExMDAgMTE2NyAxMUE4O0FDQTk7MTEwMCAxMTY3IDExQTg7CitBQ0FBO0FDQUE7MTEwMCAxMTY3IDExQTk7QUNBQTsxMTAwIDExNjcgMTFBOTsKK0FDQUI7QUNBQjsxMTAwIDExNjcgMTFBQTtBQ0FCOzExMDAgMTE2NyAxMUFBOworQUNBQztBQ0FDOzExMDAgMTE2NyAxMUFCO0FDQUM7MTEwMCAxMTY3IDExQUI7CitBQ0FEO0FDQUQ7MTEwMCAxMTY3IDExQUM7QUNBRDsxMTAwIDExNjcgMTFBQzsKK0FDQUU7QUNBRTsxMTAwIDExNjcgMTFBRDtBQ0FFOzExMDAgMTE2NyAxMUFEOworQUNBRjtBQ0FGOzExMDAgMTE2NyAxMUFFO0FDQUY7MTEwMCAxMTY3IDExQUU7CitBQ0IwO0FDQjA7MTEwMCAxMTY3IDExQUY7QUNCMDsxMTAwIDExNjcgMTFBRjsKK0FDQjE7QUNCMTsxMTAwIDExNjcgMTFCMDtBQ0IxOzExMDAgMTE2NyAxMUIwOworQUNCMjtBQ0IyOzExMDAgMTE2NyAxMUIxO0FDQjI7MTEwMCAxMTY3IDExQjE7CitBQ0IzO0FDQjM7MTEwMCAxMTY3IDExQjI7QUNCMzsxMTAwIDExNjcgMTFCMjsKK0FDQjQ7QUNCNDsxMTAwIDExNjcgMTFCMztBQ0I0OzExMDAgMTE2NyAxMUIzOworQUNCNTtBQ0I1OzExMDAgMTE2NyAxMUI0O0FDQjU7MTEwMCAxMTY3IDExQjQ7CitBQ0I2O0FDQjY7MTEwMCAxMTY3IDExQjU7QUNCNjsxMTAwIDExNjcgMTFCNTsKK0FDQjc7QUNCNzsxMTAwIDExNjcgMTFCNjtBQ0I3OzExMDAgMTE2NyAxMUI2OworQUNCODtBQ0I4OzExMDAgMTE2NyAxMUI3O0FDQjg7MTEwMCAxMTY3IDExQjc7CitBQ0I5O0FDQjk7MTEwMCAxMTY3IDExQjg7QUNCOTsxMTAwIDExNjcgMTFCODsKK0FDQkE7QUNCQTsxMTAwIDExNjcgMTFCOTtBQ0JBOzExMDAgMTE2NyAxMUI5OworQUNCQjtBQ0JCOzExMDAgMTE2NyAxMUJBO0FDQkI7MTEwMCAxMTY3IDExQkE7CitBQ0JDO0FDQkM7MTEwMCAxMTY3IDExQkI7QUNCQzsxMTAwIDExNjcgMTFCQjsKK0FDQkQ7QUNCRDsxMTAwIDExNjcgMTFCQztBQ0JEOzExMDAgMTE2NyAxMUJDOworQUNCRTtBQ0JFOzExMDAgMTE2NyAxMUJEO0FDQkU7MTEwMCAxMTY3IDExQkQ7CitBQ0JGO0FDQkY7MTEwMCAxMTY3IDExQkU7QUNCRjsxMTAwIDExNjcgMTFCRTsKK0FDQzA7QUNDMDsxMTAwIDExNjcgMTFCRjtBQ0MwOzExMDAgMTE2NyAxMUJGOworQUNDMTtBQ0MxOzExMDAgMTE2NyAxMUMwO0FDQzE7MTEwMCAxMTY3IDExQzA7CitBQ0MyO0FDQzI7MTEwMCAxMTY3IDExQzE7QUNDMjsxMTAwIDExNjcgMTFDMTsKK0FDQzM7QUNDMzsxMTAwIDExNjcgMTFDMjtBQ0MzOzExMDAgMTE2NyAxMUMyOworQUNDNDtBQ0M0OzExMDAgMTE2ODtBQ0M0OzExMDAgMTE2ODsKK0FDQzU7QUNDNTsxMTAwIDExNjggMTFBODtBQ0M1OzExMDAgMTE2OCAxMUE4OworQUNDNjtBQ0M2OzExMDAgMTE2OCAxMUE5O0FDQzY7MTEwMCAxMTY4IDExQTk7CitBQ0M3O0FDQzc7MTEwMCAxMTY4IDExQUE7QUNDNzsxMTAwIDExNjggMTFBQTsKK0FDQzg7QUNDODsxMTAwIDExNjggMTFBQjtBQ0M4OzExMDAgMTE2OCAxMUFCOworQUNDOTtBQ0M5OzExMDAgMTE2OCAxMUFDO0FDQzk7MTEwMCAxMTY4IDExQUM7CitBQ0NBO0FDQ0E7MTEwMCAxMTY4IDExQUQ7QUNDQTsxMTAwIDExNjggMTFBRDsKK0FDQ0I7QUNDQjsxMTAwIDExNjggMTFBRTtBQ0NCOzExMDAgMTE2OCAxMUFFOworQUNDQztBQ0NDOzExMDAgMTE2OCAxMUFGO0FDQ0M7MTEwMCAxMTY4IDExQUY7CitBQ0NEO0FDQ0Q7MTEwMCAxMTY4IDExQjA7QUNDRDsxMTAwIDExNjggMTFCMDsKK0FDQ0U7QUNDRTsxMTAwIDExNjggMTFCMTtBQ0NFOzExMDAgMTE2OCAxMUIxOworQUNDRjtBQ0NGOzExMDAgMTE2OCAxMUIyO0FDQ0Y7MTEwMCAxMTY4IDExQjI7CitBQ0QwO0FDRDA7MTEwMCAxMTY4IDExQjM7QUNEMDsxMTAwIDExNjggMTFCMzsKK0FDRDE7QUNEMTsxMTAwIDExNjggMTFCNDtBQ0QxOzExMDAgMTE2OCAxMUI0OworQUNEMjtBQ0QyOzExMDAgMTE2OCAxMUI1O0FDRDI7MTEwMCAxMTY4IDExQjU7CitBQ0QzO0FDRDM7MTEwMCAxMTY4IDExQjY7QUNEMzsxMTAwIDExNjggMTFCNjsKK0FDRDQ7QUNENDsxMTAwIDExNjggMTFCNztBQ0Q0OzExMDAgMTE2OCAxMUI3OworQUNENTtBQ0Q1OzExMDAgMTE2OCAxMUI4O0FDRDU7MTEwMCAxMTY4IDExQjg7CitBQ0Q2O0FDRDY7MTEwMCAxMTY4IDExQjk7QUNENjsxMTAwIDExNjggMTFCOTsKK0FDRDc7QUNENzsxMTAwIDExNjggMTFCQTtBQ0Q3OzExMDAgMTE2OCAxMUJBOworQUNEODtBQ0Q4OzExMDAgMTE2OCAxMUJCO0FDRDg7MTEwMCAxMTY4IDExQkI7CitBQ0Q5O0FDRDk7MTEwMCAxMTY4IDExQkM7QUNEOTsxMTAwIDExNjggMTFCQzsKK0FDREE7QUNEQTsxMTAwIDExNjggMTFCRDtBQ0RBOzExMDAgMTE2OCAxMUJEOworQUNEQjtBQ0RCOzExMDAgMTE2OCAxMUJFO0FDREI7MTEwMCAxMTY4IDExQkU7CitBQ0RDO0FDREM7MTEwMCAxMTY4IDExQkY7QUNEQzsxMTAwIDExNjggMTFCRjsKK0FDREQ7QUNERDsxMTAwIDExNjggMTFDMDtBQ0REOzExMDAgMTE2OCAxMUMwOworQUNERTtBQ0RFOzExMDAgMTE2OCAxMUMxO0FDREU7MTEwMCAxMTY4IDExQzE7CitBQ0RGO0FDREY7MTEwMCAxMTY4IDExQzI7QUNERjsxMTAwIDExNjggMTFDMjsKK0FDRTA7QUNFMDsxMTAwIDExNjk7QUNFMDsxMTAwIDExNjk7CitBQ0UxO0FDRTE7MTEwMCAxMTY5IDExQTg7QUNFMTsxMTAwIDExNjkgMTFBODsKK0FDRTI7QUNFMjsxMTAwIDExNjkgMTFBOTtBQ0UyOzExMDAgMTE2OSAxMUE5OworQUNFMztBQ0UzOzExMDAgMTE2OSAxMUFBO0FDRTM7MTEwMCAxMTY5IDExQUE7CitBQ0U0O0FDRTQ7MTEwMCAxMTY5IDExQUI7QUNFNDsxMTAwIDExNjkgMTFBQjsKK0FDRTU7QUNFNTsxMTAwIDExNjkgMTFBQztBQ0U1OzExMDAgMTE2OSAxMUFDOworQUNFNjtBQ0U2OzExMDAgMTE2OSAxMUFEO0FDRTY7MTEwMCAxMTY5IDExQUQ7CitBQ0U3O0FDRTc7MTEwMCAxMTY5IDExQUU7QUNFNzsxMTAwIDExNjkgMTFBRTsKK0FDRTg7QUNFODsxMTAwIDExNjkgMTFBRjtBQ0U4OzExMDAgMTE2OSAxMUFGOworQUNFOTtBQ0U5OzExMDAgMTE2OSAxMUIwO0FDRTk7MTEwMCAxMTY5IDExQjA7CitBQ0VBO0FDRUE7MTEwMCAxMTY5IDExQjE7QUNFQTsxMTAwIDExNjkgMTFCMTsKK0FDRUI7QUNFQjsxMTAwIDExNjkgMTFCMjtBQ0VCOzExMDAgMTE2OSAxMUIyOworQUNFQztBQ0VDOzExMDAgMTE2OSAxMUIzO0FDRUM7MTEwMCAxMTY5IDExQjM7CitBQ0VEO0FDRUQ7MTEwMCAxMTY5IDExQjQ7QUNFRDsxMTAwIDExNjkgMTFCNDsKK0FDRUU7QUNFRTsxMTAwIDExNjkgMTFCNTtBQ0VFOzExMDAgMTE2OSAxMUI1OworQUNFRjtBQ0VGOzExMDAgMTE2OSAxMUI2O0FDRUY7MTEwMCAxMTY5IDExQjY7CitBQ0YwO0FDRjA7MTEwMCAxMTY5IDExQjc7QUNGMDsxMTAwIDExNjkgMTFCNzsKK0FDRjE7QUNGMTsxMTAwIDExNjkgMTFCODtBQ0YxOzExMDAgMTE2OSAxMUI4OworQUNGMjtBQ0YyOzExMDAgMTE2OSAxMUI5O0FDRjI7MTEwMCAxMTY5IDExQjk7CitBQ0YzO0FDRjM7MTEwMCAxMTY5IDExQkE7QUNGMzsxMTAwIDExNjkgMTFCQTsKK0FDRjQ7QUNGNDsxMTAwIDExNjkgMTFCQjtBQ0Y0OzExMDAgMTE2OSAxMUJCOworQUNGNTtBQ0Y1OzExMDAgMTE2OSAxMUJDO0FDRjU7MTEwMCAxMTY5IDExQkM7CitBQ0Y2O0FDRjY7MTEwMCAxMTY5IDExQkQ7QUNGNjsxMTAwIDExNjkgMTFCRDsKK0FDRjc7QUNGNzsxMTAwIDExNjkgMTFCRTtBQ0Y3OzExMDAgMTE2OSAxMUJFOworQUNGODtBQ0Y4OzExMDAgMTE2OSAxMUJGO0FDRjg7MTEwMCAxMTY5IDExQkY7CitBQ0Y5O0FDRjk7MTEwMCAxMTY5IDExQzA7QUNGOTsxMTAwIDExNjkgMTFDMDsKK0FDRkE7QUNGQTsxMTAwIDExNjkgMTFDMTtBQ0ZBOzExMDAgMTE2OSAxMUMxOworQUNGQjtBQ0ZCOzExMDAgMTE2OSAxMUMyO0FDRkI7MTEwMCAxMTY5IDExQzI7CitBQ0ZDO0FDRkM7MTEwMCAxMTZBO0FDRkM7MTEwMCAxMTZBOworQUNGRDtBQ0ZEOzExMDAgMTE2QSAxMUE4O0FDRkQ7MTEwMCAxMTZBIDExQTg7CitBQ0ZFO0FDRkU7MTEwMCAxMTZBIDExQTk7QUNGRTsxMTAwIDExNkEgMTFBOTsKK0FDRkY7QUNGRjsxMTAwIDExNkEgMTFBQTtBQ0ZGOzExMDAgMTE2QSAxMUFBOworQUQwMDtBRDAwOzExMDAgMTE2QSAxMUFCO0FEMDA7MTEwMCAxMTZBIDExQUI7CitBRDAxO0FEMDE7MTEwMCAxMTZBIDExQUM7QUQwMTsxMTAwIDExNkEgMTFBQzsKK0FEMDI7QUQwMjsxMTAwIDExNkEgMTFBRDtBRDAyOzExMDAgMTE2QSAxMUFEOworQUQwMztBRDAzOzExMDAgMTE2QSAxMUFFO0FEMDM7MTEwMCAxMTZBIDExQUU7CitBRDA0O0FEMDQ7MTEwMCAxMTZBIDExQUY7QUQwNDsxMTAwIDExNkEgMTFBRjsKK0FEMDU7QUQwNTsxMTAwIDExNkEgMTFCMDtBRDA1OzExMDAgMTE2QSAxMUIwOworQUQwNjtBRDA2OzExMDAgMTE2QSAxMUIxO0FEMDY7MTEwMCAxMTZBIDExQjE7CitBRDA3O0FEMDc7MTEwMCAxMTZBIDExQjI7QUQwNzsxMTAwIDExNkEgMTFCMjsKK0FEMDg7QUQwODsxMTAwIDExNkEgMTFCMztBRDA4OzExMDAgMTE2QSAxMUIzOworQUQwOTtBRDA5OzExMDAgMTE2QSAxMUI0O0FEMDk7MTEwMCAxMTZBIDExQjQ7CitBRDBBO0FEMEE7MTEwMCAxMTZBIDExQjU7QUQwQTsxMTAwIDExNkEgMTFCNTsKK0FEMEI7QUQwQjsxMTAwIDExNkEgMTFCNjtBRDBCOzExMDAgMTE2QSAxMUI2OworQUQwQztBRDBDOzExMDAgMTE2QSAxMUI3O0FEMEM7MTEwMCAxMTZBIDExQjc7CitBRDBEO0FEMEQ7MTEwMCAxMTZBIDExQjg7QUQwRDsxMTAwIDExNkEgMTFCODsKK0FEMEU7QUQwRTsxMTAwIDExNkEgMTFCOTtBRDBFOzExMDAgMTE2QSAxMUI5OworQUQwRjtBRDBGOzExMDAgMTE2QSAxMUJBO0FEMEY7MTEwMCAxMTZBIDExQkE7CitBRDEwO0FEMTA7MTEwMCAxMTZBIDExQkI7QUQxMDsxMTAwIDExNkEgMTFCQjsKK0FEMTE7QUQxMTsxMTAwIDExNkEgMTFCQztBRDExOzExMDAgMTE2QSAxMUJDOworQUQxMjtBRDEyOzExMDAgMTE2QSAxMUJEO0FEMTI7MTEwMCAxMTZBIDExQkQ7CitBRDEzO0FEMTM7MTEwMCAxMTZBIDExQkU7QUQxMzsxMTAwIDExNkEgMTFCRTsKK0FEMTQ7QUQxNDsxMTAwIDExNkEgMTFCRjtBRDE0OzExMDAgMTE2QSAxMUJGOworQUQxNTtBRDE1OzExMDAgMTE2QSAxMUMwO0FEMTU7MTEwMCAxMTZBIDExQzA7CitBRDE2O0FEMTY7MTEwMCAxMTZBIDExQzE7QUQxNjsxMTAwIDExNkEgMTFDMTsKK0FEMTc7QUQxNzsxMTAwIDExNkEgMTFDMjtBRDE3OzExMDAgMTE2QSAxMUMyOworQUQxODtBRDE4OzExMDAgMTE2QjtBRDE4OzExMDAgMTE2QjsKK0FEMTk7QUQxOTsxMTAwIDExNkIgMTFBODtBRDE5OzExMDAgMTE2QiAxMUE4OworQUQxQTtBRDFBOzExMDAgMTE2QiAxMUE5O0FEMUE7MTEwMCAxMTZCIDExQTk7CitBRDFCO0FEMUI7MTEwMCAxMTZCIDExQUE7QUQxQjsxMTAwIDExNkIgMTFBQTsKK0FEMUM7QUQxQzsxMTAwIDExNkIgMTFBQjtBRDFDOzExMDAgMTE2QiAxMUFCOworQUQxRDtBRDFEOzExMDAgMTE2QiAxMUFDO0FEMUQ7MTEwMCAxMTZCIDExQUM7CitBRDFFO0FEMUU7MTEwMCAxMTZCIDExQUQ7QUQxRTsxMTAwIDExNkIgMTFBRDsKK0FEMUY7QUQxRjsxMTAwIDExNkIgMTFBRTtBRDFGOzExMDAgMTE2QiAxMUFFOworQUQyMDtBRDIwOzExMDAgMTE2QiAxMUFGO0FEMjA7MTEwMCAxMTZCIDExQUY7CitBRDIxO0FEMjE7MTEwMCAxMTZCIDExQjA7QUQyMTsxMTAwIDExNkIgMTFCMDsKK0FEMjI7QUQyMjsxMTAwIDExNkIgMTFCMTtBRDIyOzExMDAgMTE2QiAxMUIxOworQUQyMztBRDIzOzExMDAgMTE2QiAxMUIyO0FEMjM7MTEwMCAxMTZCIDExQjI7CitBRDI0O0FEMjQ7MTEwMCAxMTZCIDExQjM7QUQyNDsxMTAwIDExNkIgMTFCMzsKK0FEMjU7QUQyNTsxMTAwIDExNkIgMTFCNDtBRDI1OzExMDAgMTE2QiAxMUI0OworQUQyNjtBRDI2OzExMDAgMTE2QiAxMUI1O0FEMjY7MTEwMCAxMTZCIDExQjU7CitBRDI3O0FEMjc7MTEwMCAxMTZCIDExQjY7QUQyNzsxMTAwIDExNkIgMTFCNjsKK0FEMjg7QUQyODsxMTAwIDExNkIgMTFCNztBRDI4OzExMDAgMTE2QiAxMUI3OworQUQyOTtBRDI5OzExMDAgMTE2QiAxMUI4O0FEMjk7MTEwMCAxMTZCIDExQjg7CitBRDJBO0FEMkE7MTEwMCAxMTZCIDExQjk7QUQyQTsxMTAwIDExNkIgMTFCOTsKK0FEMkI7QUQyQjsxMTAwIDExNkIgMTFCQTtBRDJCOzExMDAgMTE2QiAxMUJBOworQUQyQztBRDJDOzExMDAgMTE2QiAxMUJCO0FEMkM7MTEwMCAxMTZCIDExQkI7CitBRDJEO0FEMkQ7MTEwMCAxMTZCIDExQkM7QUQyRDsxMTAwIDExNkIgMTFCQzsKK0FEMkU7QUQyRTsxMTAwIDExNkIgMTFCRDtBRDJFOzExMDAgMTE2QiAxMUJEOworQUQyRjtBRDJGOzExMDAgMTE2QiAxMUJFO0FEMkY7MTEwMCAxMTZCIDExQkU7CitBRDMwO0FEMzA7MTEwMCAxMTZCIDExQkY7QUQzMDsxMTAwIDExNkIgMTFCRjsKK0FEMzE7QUQzMTsxMTAwIDExNkIgMTFDMDtBRDMxOzExMDAgMTE2QiAxMUMwOworQUQzMjtBRDMyOzExMDAgMTE2QiAxMUMxO0FEMzI7MTEwMCAxMTZCIDExQzE7CitBRDMzO0FEMzM7MTEwMCAxMTZCIDExQzI7QUQzMzsxMTAwIDExNkIgMTFDMjsKK0FEMzQ7QUQzNDsxMTAwIDExNkM7QUQzNDsxMTAwIDExNkM7CitBRDM1O0FEMzU7MTEwMCAxMTZDIDExQTg7QUQzNTsxMTAwIDExNkMgMTFBODsKK0FEMzY7QUQzNjsxMTAwIDExNkMgMTFBOTtBRDM2OzExMDAgMTE2QyAxMUE5OworQUQzNztBRDM3OzExMDAgMTE2QyAxMUFBO0FEMzc7MTEwMCAxMTZDIDExQUE7CitBRDM4O0FEMzg7MTEwMCAxMTZDIDExQUI7QUQzODsxMTAwIDExNkMgMTFBQjsKK0FEMzk7QUQzOTsxMTAwIDExNkMgMTFBQztBRDM5OzExMDAgMTE2QyAxMUFDOworQUQzQTtBRDNBOzExMDAgMTE2QyAxMUFEO0FEM0E7MTEwMCAxMTZDIDExQUQ7CitBRDNCO0FEM0I7MTEwMCAxMTZDIDExQUU7QUQzQjsxMTAwIDExNkMgMTFBRTsKK0FEM0M7QUQzQzsxMTAwIDExNkMgMTFBRjtBRDNDOzExMDAgMTE2QyAxMUFGOworQUQzRDtBRDNEOzExMDAgMTE2QyAxMUIwO0FEM0Q7MTEwMCAxMTZDIDExQjA7CitBRDNFO0FEM0U7MTEwMCAxMTZDIDExQjE7QUQzRTsxMTAwIDExNkMgMTFCMTsKK0FEM0Y7QUQzRjsxMTAwIDExNkMgMTFCMjtBRDNGOzExMDAgMTE2QyAxMUIyOworQUQ0MDtBRDQwOzExMDAgMTE2QyAxMUIzO0FENDA7MTEwMCAxMTZDIDExQjM7CitBRDQxO0FENDE7MTEwMCAxMTZDIDExQjQ7QUQ0MTsxMTAwIDExNkMgMTFCNDsKK0FENDI7QUQ0MjsxMTAwIDExNkMgMTFCNTtBRDQyOzExMDAgMTE2QyAxMUI1OworQUQ0MztBRDQzOzExMDAgMTE2QyAxMUI2O0FENDM7MTEwMCAxMTZDIDExQjY7CitBRDQ0O0FENDQ7MTEwMCAxMTZDIDExQjc7QUQ0NDsxMTAwIDExNkMgMTFCNzsKK0FENDU7QUQ0NTsxMTAwIDExNkMgMTFCODtBRDQ1OzExMDAgMTE2QyAxMUI4OworQUQ0NjtBRDQ2OzExMDAgMTE2QyAxMUI5O0FENDY7MTEwMCAxMTZDIDExQjk7CitBRDQ3O0FENDc7MTEwMCAxMTZDIDExQkE7QUQ0NzsxMTAwIDExNkMgMTFCQTsKK0FENDg7QUQ0ODsxMTAwIDExNkMgMTFCQjtBRDQ4OzExMDAgMTE2QyAxMUJCOworQUQ0OTtBRDQ5OzExMDAgMTE2QyAxMUJDO0FENDk7MTEwMCAxMTZDIDExQkM7CitBRDRBO0FENEE7MTEwMCAxMTZDIDExQkQ7QUQ0QTsxMTAwIDExNkMgMTFCRDsKK0FENEI7QUQ0QjsxMTAwIDExNkMgMTFCRTtBRDRCOzExMDAgMTE2QyAxMUJFOworQUQ0QztBRDRDOzExMDAgMTE2QyAxMUJGO0FENEM7MTEwMCAxMTZDIDExQkY7CitBRDREO0FENEQ7MTEwMCAxMTZDIDExQzA7QUQ0RDsxMTAwIDExNkMgMTFDMDsKK0FENEU7QUQ0RTsxMTAwIDExNkMgMTFDMTtBRDRFOzExMDAgMTE2QyAxMUMxOworQUQ0RjtBRDRGOzExMDAgMTE2QyAxMUMyO0FENEY7MTEwMCAxMTZDIDExQzI7CitBRDUwO0FENTA7MTEwMCAxMTZEO0FENTA7MTEwMCAxMTZEOworQUQ1MTtBRDUxOzExMDAgMTE2RCAxMUE4O0FENTE7MTEwMCAxMTZEIDExQTg7CitBRDUyO0FENTI7MTEwMCAxMTZEIDExQTk7QUQ1MjsxMTAwIDExNkQgMTFBOTsKK0FENTM7QUQ1MzsxMTAwIDExNkQgMTFBQTtBRDUzOzExMDAgMTE2RCAxMUFBOworQUQ1NDtBRDU0OzExMDAgMTE2RCAxMUFCO0FENTQ7MTEwMCAxMTZEIDExQUI7CitBRDU1O0FENTU7MTEwMCAxMTZEIDExQUM7QUQ1NTsxMTAwIDExNkQgMTFBQzsKK0FENTY7QUQ1NjsxMTAwIDExNkQgMTFBRDtBRDU2OzExMDAgMTE2RCAxMUFEOworQUQ1NztBRDU3OzExMDAgMTE2RCAxMUFFO0FENTc7MTEwMCAxMTZEIDExQUU7CitBRDU4O0FENTg7MTEwMCAxMTZEIDExQUY7QUQ1ODsxMTAwIDExNkQgMTFBRjsKK0FENTk7QUQ1OTsxMTAwIDExNkQgMTFCMDtBRDU5OzExMDAgMTE2RCAxMUIwOworQUQ1QTtBRDVBOzExMDAgMTE2RCAxMUIxO0FENUE7MTEwMCAxMTZEIDExQjE7CitBRDVCO0FENUI7MTEwMCAxMTZEIDExQjI7QUQ1QjsxMTAwIDExNkQgMTFCMjsKK0FENUM7QUQ1QzsxMTAwIDExNkQgMTFCMztBRDVDOzExMDAgMTE2RCAxMUIzOworQUQ1RDtBRDVEOzExMDAgMTE2RCAxMUI0O0FENUQ7MTEwMCAxMTZEIDExQjQ7CitBRDVFO0FENUU7MTEwMCAxMTZEIDExQjU7QUQ1RTsxMTAwIDExNkQgMTFCNTsKK0FENUY7QUQ1RjsxMTAwIDExNkQgMTFCNjtBRDVGOzExMDAgMTE2RCAxMUI2OworQUQ2MDtBRDYwOzExMDAgMTE2RCAxMUI3O0FENjA7MTEwMCAxMTZEIDExQjc7CitBRDYxO0FENjE7MTEwMCAxMTZEIDExQjg7QUQ2MTsxMTAwIDExNkQgMTFCODsKK0FENjI7QUQ2MjsxMTAwIDExNkQgMTFCOTtBRDYyOzExMDAgMTE2RCAxMUI5OworQUQ2MztBRDYzOzExMDAgMTE2RCAxMUJBO0FENjM7MTEwMCAxMTZEIDExQkE7CitBRDY0O0FENjQ7MTEwMCAxMTZEIDExQkI7QUQ2NDsxMTAwIDExNkQgMTFCQjsKK0FENjU7QUQ2NTsxMTAwIDExNkQgMTFCQztBRDY1OzExMDAgMTE2RCAxMUJDOworQUQ2NjtBRDY2OzExMDAgMTE2RCAxMUJEO0FENjY7MTEwMCAxMTZEIDExQkQ7CitBRDY3O0FENjc7MTEwMCAxMTZEIDExQkU7QUQ2NzsxMTAwIDExNkQgMTFCRTsKK0FENjg7QUQ2ODsxMTAwIDExNkQgMTFCRjtBRDY4OzExMDAgMTE2RCAxMUJGOworQUQ2OTtBRDY5OzExMDAgMTE2RCAxMUMwO0FENjk7MTEwMCAxMTZEIDExQzA7CitBRDZBO0FENkE7MTEwMCAxMTZEIDExQzE7QUQ2QTsxMTAwIDExNkQgMTFDMTsKK0FENkI7QUQ2QjsxMTAwIDExNkQgMTFDMjtBRDZCOzExMDAgMTE2RCAxMUMyOworQUQ2QztBRDZDOzExMDAgMTE2RTtBRDZDOzExMDAgMTE2RTsKK0FENkQ7QUQ2RDsxMTAwIDExNkUgMTFBODtBRDZEOzExMDAgMTE2RSAxMUE4OworQUQ2RTtBRDZFOzExMDAgMTE2RSAxMUE5O0FENkU7MTEwMCAxMTZFIDExQTk7CitBRDZGO0FENkY7MTEwMCAxMTZFIDExQUE7QUQ2RjsxMTAwIDExNkUgMTFBQTsKK0FENzA7QUQ3MDsxMTAwIDExNkUgMTFBQjtBRDcwOzExMDAgMTE2RSAxMUFCOworQUQ3MTtBRDcxOzExMDAgMTE2RSAxMUFDO0FENzE7MTEwMCAxMTZFIDExQUM7CitBRDcyO0FENzI7MTEwMCAxMTZFIDExQUQ7QUQ3MjsxMTAwIDExNkUgMTFBRDsKK0FENzM7QUQ3MzsxMTAwIDExNkUgMTFBRTtBRDczOzExMDAgMTE2RSAxMUFFOworQUQ3NDtBRDc0OzExMDAgMTE2RSAxMUFGO0FENzQ7MTEwMCAxMTZFIDExQUY7CitBRDc1O0FENzU7MTEwMCAxMTZFIDExQjA7QUQ3NTsxMTAwIDExNkUgMTFCMDsKK0FENzY7QUQ3NjsxMTAwIDExNkUgMTFCMTtBRDc2OzExMDAgMTE2RSAxMUIxOworQUQ3NztBRDc3OzExMDAgMTE2RSAxMUIyO0FENzc7MTEwMCAxMTZFIDExQjI7CitBRDc4O0FENzg7MTEwMCAxMTZFIDExQjM7QUQ3ODsxMTAwIDExNkUgMTFCMzsKK0FENzk7QUQ3OTsxMTAwIDExNkUgMTFCNDtBRDc5OzExMDAgMTE2RSAxMUI0OworQUQ3QTtBRDdBOzExMDAgMTE2RSAxMUI1O0FEN0E7MTEwMCAxMTZFIDExQjU7CitBRDdCO0FEN0I7MTEwMCAxMTZFIDExQjY7QUQ3QjsxMTAwIDExNkUgMTFCNjsKK0FEN0M7QUQ3QzsxMTAwIDExNkUgMTFCNztBRDdDOzExMDAgMTE2RSAxMUI3OworQUQ3RDtBRDdEOzExMDAgMTE2RSAxMUI4O0FEN0Q7MTEwMCAxMTZFIDExQjg7CitBRDdFO0FEN0U7MTEwMCAxMTZFIDExQjk7QUQ3RTsxMTAwIDExNkUgMTFCOTsKK0FEN0Y7QUQ3RjsxMTAwIDExNkUgMTFCQTtBRDdGOzExMDAgMTE2RSAxMUJBOworQUQ4MDtBRDgwOzExMDAgMTE2RSAxMUJCO0FEODA7MTEwMCAxMTZFIDExQkI7CitBRDgxO0FEODE7MTEwMCAxMTZFIDExQkM7QUQ4MTsxMTAwIDExNkUgMTFCQzsKK0FEODI7QUQ4MjsxMTAwIDExNkUgMTFCRDtBRDgyOzExMDAgMTE2RSAxMUJEOworQUQ4MztBRDgzOzExMDAgMTE2RSAxMUJFO0FEODM7MTEwMCAxMTZFIDExQkU7CitBRDg0O0FEODQ7MTEwMCAxMTZFIDExQkY7QUQ4NDsxMTAwIDExNkUgMTFCRjsKK0FEODU7QUQ4NTsxMTAwIDExNkUgMTFDMDtBRDg1OzExMDAgMTE2RSAxMUMwOworQUQ4NjtBRDg2OzExMDAgMTE2RSAxMUMxO0FEODY7MTEwMCAxMTZFIDExQzE7CitBRDg3O0FEODc7MTEwMCAxMTZFIDExQzI7QUQ4NzsxMTAwIDExNkUgMTFDMjsKK0FEODg7QUQ4ODsxMTAwIDExNkY7QUQ4ODsxMTAwIDExNkY7CitBRDg5O0FEODk7MTEwMCAxMTZGIDExQTg7QUQ4OTsxMTAwIDExNkYgMTFBODsKK0FEOEE7QUQ4QTsxMTAwIDExNkYgMTFBOTtBRDhBOzExMDAgMTE2RiAxMUE5OworQUQ4QjtBRDhCOzExMDAgMTE2RiAxMUFBO0FEOEI7MTEwMCAxMTZGIDExQUE7CitBRDhDO0FEOEM7MTEwMCAxMTZGIDExQUI7QUQ4QzsxMTAwIDExNkYgMTFBQjsKK0FEOEQ7QUQ4RDsxMTAwIDExNkYgMTFBQztBRDhEOzExMDAgMTE2RiAxMUFDOworQUQ4RTtBRDhFOzExMDAgMTE2RiAxMUFEO0FEOEU7MTEwMCAxMTZGIDExQUQ7CitBRDhGO0FEOEY7MTEwMCAxMTZGIDExQUU7QUQ4RjsxMTAwIDExNkYgMTFBRTsKK0FEOTA7QUQ5MDsxMTAwIDExNkYgMTFBRjtBRDkwOzExMDAgMTE2RiAxMUFGOworQUQ5MTtBRDkxOzExMDAgMTE2RiAxMUIwO0FEOTE7MTEwMCAxMTZGIDExQjA7CitBRDkyO0FEOTI7MTEwMCAxMTZGIDExQjE7QUQ5MjsxMTAwIDExNkYgMTFCMTsKK0FEOTM7QUQ5MzsxMTAwIDExNkYgMTFCMjtBRDkzOzExMDAgMTE2RiAxMUIyOworQUQ5NDtBRDk0OzExMDAgMTE2RiAxMUIzO0FEOTQ7MTEwMCAxMTZGIDExQjM7CitBRDk1O0FEOTU7MTEwMCAxMTZGIDExQjQ7QUQ5NTsxMTAwIDExNkYgMTFCNDsKK0FEOTY7QUQ5NjsxMTAwIDExNkYgMTFCNTtBRDk2OzExMDAgMTE2RiAxMUI1OworQUQ5NztBRDk3OzExMDAgMTE2RiAxMUI2O0FEOTc7MTEwMCAxMTZGIDExQjY7CitBRDk4O0FEOTg7MTEwMCAxMTZGIDExQjc7QUQ5ODsxMTAwIDExNkYgMTFCNzsKK0FEOTk7QUQ5OTsxMTAwIDExNkYgMTFCODtBRDk5OzExMDAgMTE2RiAxMUI4OworQUQ5QTtBRDlBOzExMDAgMTE2RiAxMUI5O0FEOUE7MTEwMCAxMTZGIDExQjk7CitBRDlCO0FEOUI7MTEwMCAxMTZGIDExQkE7QUQ5QjsxMTAwIDExNkYgMTFCQTsKK0FEOUM7QUQ5QzsxMTAwIDExNkYgMTFCQjtBRDlDOzExMDAgMTE2RiAxMUJCOworQUQ5RDtBRDlEOzExMDAgMTE2RiAxMUJDO0FEOUQ7MTEwMCAxMTZGIDExQkM7CitBRDlFO0FEOUU7MTEwMCAxMTZGIDExQkQ7QUQ5RTsxMTAwIDExNkYgMTFCRDsKK0FEOUY7QUQ5RjsxMTAwIDExNkYgMTFCRTtBRDlGOzExMDAgMTE2RiAxMUJFOworQURBMDtBREEwOzExMDAgMTE2RiAxMUJGO0FEQTA7MTEwMCAxMTZGIDExQkY7CitBREExO0FEQTE7MTEwMCAxMTZGIDExQzA7QURBMTsxMTAwIDExNkYgMTFDMDsKK0FEQTI7QURBMjsxMTAwIDExNkYgMTFDMTtBREEyOzExMDAgMTE2RiAxMUMxOworQURBMztBREEzOzExMDAgMTE2RiAxMUMyO0FEQTM7MTEwMCAxMTZGIDExQzI7CitBREE0O0FEQTQ7MTEwMCAxMTcwO0FEQTQ7MTEwMCAxMTcwOworQURBNTtBREE1OzExMDAgMTE3MCAxMUE4O0FEQTU7MTEwMCAxMTcwIDExQTg7CitBREE2O0FEQTY7MTEwMCAxMTcwIDExQTk7QURBNjsxMTAwIDExNzAgMTFBOTsKK0FEQTc7QURBNzsxMTAwIDExNzAgMTFBQTtBREE3OzExMDAgMTE3MCAxMUFBOworQURBODtBREE4OzExMDAgMTE3MCAxMUFCO0FEQTg7MTEwMCAxMTcwIDExQUI7CitBREE5O0FEQTk7MTEwMCAxMTcwIDExQUM7QURBOTsxMTAwIDExNzAgMTFBQzsKK0FEQUE7QURBQTsxMTAwIDExNzAgMTFBRDtBREFBOzExMDAgMTE3MCAxMUFEOworQURBQjtBREFCOzExMDAgMTE3MCAxMUFFO0FEQUI7MTEwMCAxMTcwIDExQUU7CitBREFDO0FEQUM7MTEwMCAxMTcwIDExQUY7QURBQzsxMTAwIDExNzAgMTFBRjsKK0FEQUQ7QURBRDsxMTAwIDExNzAgMTFCMDtBREFEOzExMDAgMTE3MCAxMUIwOworQURBRTtBREFFOzExMDAgMTE3MCAxMUIxO0FEQUU7MTEwMCAxMTcwIDExQjE7CitBREFGO0FEQUY7MTEwMCAxMTcwIDExQjI7QURBRjsxMTAwIDExNzAgMTFCMjsKK0FEQjA7QURCMDsxMTAwIDExNzAgMTFCMztBREIwOzExMDAgMTE3MCAxMUIzOworQURCMTtBREIxOzExMDAgMTE3MCAxMUI0O0FEQjE7MTEwMCAxMTcwIDExQjQ7CitBREIyO0FEQjI7MTEwMCAxMTcwIDExQjU7QURCMjsxMTAwIDExNzAgMTFCNTsKK0FEQjM7QURCMzsxMTAwIDExNzAgMTFCNjtBREIzOzExMDAgMTE3MCAxMUI2OworQURCNDtBREI0OzExMDAgMTE3MCAxMUI3O0FEQjQ7MTEwMCAxMTcwIDExQjc7CitBREI1O0FEQjU7MTEwMCAxMTcwIDExQjg7QURCNTsxMTAwIDExNzAgMTFCODsKK0FEQjY7QURCNjsxMTAwIDExNzAgMTFCOTtBREI2OzExMDAgMTE3MCAxMUI5OworQURCNztBREI3OzExMDAgMTE3MCAxMUJBO0FEQjc7MTEwMCAxMTcwIDExQkE7CitBREI4O0FEQjg7MTEwMCAxMTcwIDExQkI7QURCODsxMTAwIDExNzAgMTFCQjsKK0FEQjk7QURCOTsxMTAwIDExNzAgMTFCQztBREI5OzExMDAgMTE3MCAxMUJDOworQURCQTtBREJBOzExMDAgMTE3MCAxMUJEO0FEQkE7MTEwMCAxMTcwIDExQkQ7CitBREJCO0FEQkI7MTEwMCAxMTcwIDExQkU7QURCQjsxMTAwIDExNzAgMTFCRTsKK0FEQkM7QURCQzsxMTAwIDExNzAgMTFCRjtBREJDOzExMDAgMTE3MCAxMUJGOworQURCRDtBREJEOzExMDAgMTE3MCAxMUMwO0FEQkQ7MTEwMCAxMTcwIDExQzA7CitBREJFO0FEQkU7MTEwMCAxMTcwIDExQzE7QURCRTsxMTAwIDExNzAgMTFDMTsKK0FEQkY7QURCRjsxMTAwIDExNzAgMTFDMjtBREJGOzExMDAgMTE3MCAxMUMyOworQURDMDtBREMwOzExMDAgMTE3MTtBREMwOzExMDAgMTE3MTsKK0FEQzE7QURDMTsxMTAwIDExNzEgMTFBODtBREMxOzExMDAgMTE3MSAxMUE4OworQURDMjtBREMyOzExMDAgMTE3MSAxMUE5O0FEQzI7MTEwMCAxMTcxIDExQTk7CitBREMzO0FEQzM7MTEwMCAxMTcxIDExQUE7QURDMzsxMTAwIDExNzEgMTFBQTsKK0FEQzQ7QURDNDsxMTAwIDExNzEgMTFBQjtBREM0OzExMDAgMTE3MSAxMUFCOworQURDNTtBREM1OzExMDAgMTE3MSAxMUFDO0FEQzU7MTEwMCAxMTcxIDExQUM7CitBREM2O0FEQzY7MTEwMCAxMTcxIDExQUQ7QURDNjsxMTAwIDExNzEgMTFBRDsKK0FEQzc7QURDNzsxMTAwIDExNzEgMTFBRTtBREM3OzExMDAgMTE3MSAxMUFFOworQURDODtBREM4OzExMDAgMTE3MSAxMUFGO0FEQzg7MTEwMCAxMTcxIDExQUY7CitBREM5O0FEQzk7MTEwMCAxMTcxIDExQjA7QURDOTsxMTAwIDExNzEgMTFCMDsKK0FEQ0E7QURDQTsxMTAwIDExNzEgMTFCMTtBRENBOzExMDAgMTE3MSAxMUIxOworQURDQjtBRENCOzExMDAgMTE3MSAxMUIyO0FEQ0I7MTEwMCAxMTcxIDExQjI7CitBRENDO0FEQ0M7MTEwMCAxMTcxIDExQjM7QURDQzsxMTAwIDExNzEgMTFCMzsKK0FEQ0Q7QURDRDsxMTAwIDExNzEgMTFCNDtBRENEOzExMDAgMTE3MSAxMUI0OworQURDRTtBRENFOzExMDAgMTE3MSAxMUI1O0FEQ0U7MTEwMCAxMTcxIDExQjU7CitBRENGO0FEQ0Y7MTEwMCAxMTcxIDExQjY7QURDRjsxMTAwIDExNzEgMTFCNjsKK0FERDA7QUREMDsxMTAwIDExNzEgMTFCNztBREQwOzExMDAgMTE3MSAxMUI3OworQUREMTtBREQxOzExMDAgMTE3MSAxMUI4O0FERDE7MTEwMCAxMTcxIDExQjg7CitBREQyO0FERDI7MTEwMCAxMTcxIDExQjk7QUREMjsxMTAwIDExNzEgMTFCOTsKK0FERDM7QUREMzsxMTAwIDExNzEgMTFCQTtBREQzOzExMDAgMTE3MSAxMUJBOworQURENDtBREQ0OzExMDAgMTE3MSAxMUJCO0FERDQ7MTEwMCAxMTcxIDExQkI7CitBREQ1O0FERDU7MTEwMCAxMTcxIDExQkM7QURENTsxMTAwIDExNzEgMTFCQzsKK0FERDY7QURENjsxMTAwIDExNzEgMTFCRDtBREQ2OzExMDAgMTE3MSAxMUJEOworQURENztBREQ3OzExMDAgMTE3MSAxMUJFO0FERDc7MTEwMCAxMTcxIDExQkU7CitBREQ4O0FERDg7MTEwMCAxMTcxIDExQkY7QUREODsxMTAwIDExNzEgMTFCRjsKK0FERDk7QUREOTsxMTAwIDExNzEgMTFDMDtBREQ5OzExMDAgMTE3MSAxMUMwOworQUREQTtBRERBOzExMDAgMTE3MSAxMUMxO0FEREE7MTEwMCAxMTcxIDExQzE7CitBRERCO0FEREI7MTEwMCAxMTcxIDExQzI7QUREQjsxMTAwIDExNzEgMTFDMjsKK0FEREM7QUREQzsxMTAwIDExNzI7QUREQzsxMTAwIDExNzI7CitBREREO0FEREQ7MTEwMCAxMTcyIDExQTg7QURERDsxMTAwIDExNzIgMTFBODsKK0FEREU7QURERTsxMTAwIDExNzIgMTFBOTtBRERFOzExMDAgMTE3MiAxMUE5OworQURERjtBRERGOzExMDAgMTE3MiAxMUFBO0FEREY7MTEwMCAxMTcyIDExQUE7CitBREUwO0FERTA7MTEwMCAxMTcyIDExQUI7QURFMDsxMTAwIDExNzIgMTFBQjsKK0FERTE7QURFMTsxMTAwIDExNzIgMTFBQztBREUxOzExMDAgMTE3MiAxMUFDOworQURFMjtBREUyOzExMDAgMTE3MiAxMUFEO0FERTI7MTEwMCAxMTcyIDExQUQ7CitBREUzO0FERTM7MTEwMCAxMTcyIDExQUU7QURFMzsxMTAwIDExNzIgMTFBRTsKK0FERTQ7QURFNDsxMTAwIDExNzIgMTFBRjtBREU0OzExMDAgMTE3MiAxMUFGOworQURFNTtBREU1OzExMDAgMTE3MiAxMUIwO0FERTU7MTEwMCAxMTcyIDExQjA7CitBREU2O0FERTY7MTEwMCAxMTcyIDExQjE7QURFNjsxMTAwIDExNzIgMTFCMTsKK0FERTc7QURFNzsxMTAwIDExNzIgMTFCMjtBREU3OzExMDAgMTE3MiAxMUIyOworQURFODtBREU4OzExMDAgMTE3MiAxMUIzO0FERTg7MTEwMCAxMTcyIDExQjM7CitBREU5O0FERTk7MTEwMCAxMTcyIDExQjQ7QURFOTsxMTAwIDExNzIgMTFCNDsKK0FERUE7QURFQTsxMTAwIDExNzIgMTFCNTtBREVBOzExMDAgMTE3MiAxMUI1OworQURFQjtBREVCOzExMDAgMTE3MiAxMUI2O0FERUI7MTEwMCAxMTcyIDExQjY7CitBREVDO0FERUM7MTEwMCAxMTcyIDExQjc7QURFQzsxMTAwIDExNzIgMTFCNzsKK0FERUQ7QURFRDsxMTAwIDExNzIgMTFCODtBREVEOzExMDAgMTE3MiAxMUI4OworQURFRTtBREVFOzExMDAgMTE3MiAxMUI5O0FERUU7MTEwMCAxMTcyIDExQjk7CitBREVGO0FERUY7MTEwMCAxMTcyIDExQkE7QURFRjsxMTAwIDExNzIgMTFCQTsKK0FERjA7QURGMDsxMTAwIDExNzIgMTFCQjtBREYwOzExMDAgMTE3MiAxMUJCOworQURGMTtBREYxOzExMDAgMTE3MiAxMUJDO0FERjE7MTEwMCAxMTcyIDExQkM7CitBREYyO0FERjI7MTEwMCAxMTcyIDExQkQ7QURGMjsxMTAwIDExNzIgMTFCRDsKK0FERjM7QURGMzsxMTAwIDExNzIgMTFCRTtBREYzOzExMDAgMTE3MiAxMUJFOworQURGNDtBREY0OzExMDAgMTE3MiAxMUJGO0FERjQ7MTEwMCAxMTcyIDExQkY7CitBREY1O0FERjU7MTEwMCAxMTcyIDExQzA7QURGNTsxMTAwIDExNzIgMTFDMDsKK0FERjY7QURGNjsxMTAwIDExNzIgMTFDMTtBREY2OzExMDAgMTE3MiAxMUMxOworQURGNztBREY3OzExMDAgMTE3MiAxMUMyO0FERjc7MTEwMCAxMTcyIDExQzI7CitBREY4O0FERjg7MTEwMCAxMTczO0FERjg7MTEwMCAxMTczOworQURGOTtBREY5OzExMDAgMTE3MyAxMUE4O0FERjk7MTEwMCAxMTczIDExQTg7CitBREZBO0FERkE7MTEwMCAxMTczIDExQTk7QURGQTsxMTAwIDExNzMgMTFBOTsKK0FERkI7QURGQjsxMTAwIDExNzMgMTFBQTtBREZCOzExMDAgMTE3MyAxMUFBOworQURGQztBREZDOzExMDAgMTE3MyAxMUFCO0FERkM7MTEwMCAxMTczIDExQUI7CitBREZEO0FERkQ7MTEwMCAxMTczIDExQUM7QURGRDsxMTAwIDExNzMgMTFBQzsKK0FERkU7QURGRTsxMTAwIDExNzMgMTFBRDtBREZFOzExMDAgMTE3MyAxMUFEOworQURGRjtBREZGOzExMDAgMTE3MyAxMUFFO0FERkY7MTEwMCAxMTczIDExQUU7CitBRTAwO0FFMDA7MTEwMCAxMTczIDExQUY7QUUwMDsxMTAwIDExNzMgMTFBRjsKK0FFMDE7QUUwMTsxMTAwIDExNzMgMTFCMDtBRTAxOzExMDAgMTE3MyAxMUIwOworQUUwMjtBRTAyOzExMDAgMTE3MyAxMUIxO0FFMDI7MTEwMCAxMTczIDExQjE7CitBRTAzO0FFMDM7MTEwMCAxMTczIDExQjI7QUUwMzsxMTAwIDExNzMgMTFCMjsKK0FFMDQ7QUUwNDsxMTAwIDExNzMgMTFCMztBRTA0OzExMDAgMTE3MyAxMUIzOworQUUwNTtBRTA1OzExMDAgMTE3MyAxMUI0O0FFMDU7MTEwMCAxMTczIDExQjQ7CitBRTA2O0FFMDY7MTEwMCAxMTczIDExQjU7QUUwNjsxMTAwIDExNzMgMTFCNTsKK0FFMDc7QUUwNzsxMTAwIDExNzMgMTFCNjtBRTA3OzExMDAgMTE3MyAxMUI2OworQUUwODtBRTA4OzExMDAgMTE3MyAxMUI3O0FFMDg7MTEwMCAxMTczIDExQjc7CitBRTA5O0FFMDk7MTEwMCAxMTczIDExQjg7QUUwOTsxMTAwIDExNzMgMTFCODsKK0FFMEE7QUUwQTsxMTAwIDExNzMgMTFCOTtBRTBBOzExMDAgMTE3MyAxMUI5OworQUUwQjtBRTBCOzExMDAgMTE3MyAxMUJBO0FFMEI7MTEwMCAxMTczIDExQkE7CitBRTBDO0FFMEM7MTEwMCAxMTczIDExQkI7QUUwQzsxMTAwIDExNzMgMTFCQjsKK0FFMEQ7QUUwRDsxMTAwIDExNzMgMTFCQztBRTBEOzExMDAgMTE3MyAxMUJDOworQUUwRTtBRTBFOzExMDAgMTE3MyAxMUJEO0FFMEU7MTEwMCAxMTczIDExQkQ7CitBRTBGO0FFMEY7MTEwMCAxMTczIDExQkU7QUUwRjsxMTAwIDExNzMgMTFCRTsKK0FFMTA7QUUxMDsxMTAwIDExNzMgMTFCRjtBRTEwOzExMDAgMTE3MyAxMUJGOworQUUxMTtBRTExOzExMDAgMTE3MyAxMUMwO0FFMTE7MTEwMCAxMTczIDExQzA7CitBRTEyO0FFMTI7MTEwMCAxMTczIDExQzE7QUUxMjsxMTAwIDExNzMgMTFDMTsKK0FFMTM7QUUxMzsxMTAwIDExNzMgMTFDMjtBRTEzOzExMDAgMTE3MyAxMUMyOworQUUxNDtBRTE0OzExMDAgMTE3NDtBRTE0OzExMDAgMTE3NDsKK0FFMTU7QUUxNTsxMTAwIDExNzQgMTFBODtBRTE1OzExMDAgMTE3NCAxMUE4OworQUUxNjtBRTE2OzExMDAgMTE3NCAxMUE5O0FFMTY7MTEwMCAxMTc0IDExQTk7CitBRTE3O0FFMTc7MTEwMCAxMTc0IDExQUE7QUUxNzsxMTAwIDExNzQgMTFBQTsKK0FFMTg7QUUxODsxMTAwIDExNzQgMTFBQjtBRTE4OzExMDAgMTE3NCAxMUFCOworQUUxOTtBRTE5OzExMDAgMTE3NCAxMUFDO0FFMTk7MTEwMCAxMTc0IDExQUM7CitBRTFBO0FFMUE7MTEwMCAxMTc0IDExQUQ7QUUxQTsxMTAwIDExNzQgMTFBRDsKK0FFMUI7QUUxQjsxMTAwIDExNzQgMTFBRTtBRTFCOzExMDAgMTE3NCAxMUFFOworQUUxQztBRTFDOzExMDAgMTE3NCAxMUFGO0FFMUM7MTEwMCAxMTc0IDExQUY7CitBRTFEO0FFMUQ7MTEwMCAxMTc0IDExQjA7QUUxRDsxMTAwIDExNzQgMTFCMDsKK0FFMUU7QUUxRTsxMTAwIDExNzQgMTFCMTtBRTFFOzExMDAgMTE3NCAxMUIxOworQUUxRjtBRTFGOzExMDAgMTE3NCAxMUIyO0FFMUY7MTEwMCAxMTc0IDExQjI7CitBRTIwO0FFMjA7MTEwMCAxMTc0IDExQjM7QUUyMDsxMTAwIDExNzQgMTFCMzsKK0FFMjE7QUUyMTsxMTAwIDExNzQgMTFCNDtBRTIxOzExMDAgMTE3NCAxMUI0OworQUUyMjtBRTIyOzExMDAgMTE3NCAxMUI1O0FFMjI7MTEwMCAxMTc0IDExQjU7CitBRTIzO0FFMjM7MTEwMCAxMTc0IDExQjY7QUUyMzsxMTAwIDExNzQgMTFCNjsKK0FFMjQ7QUUyNDsxMTAwIDExNzQgMTFCNztBRTI0OzExMDAgMTE3NCAxMUI3OworQUUyNTtBRTI1OzExMDAgMTE3NCAxMUI4O0FFMjU7MTEwMCAxMTc0IDExQjg7CitBRTI2O0FFMjY7MTEwMCAxMTc0IDExQjk7QUUyNjsxMTAwIDExNzQgMTFCOTsKK0FFMjc7QUUyNzsxMTAwIDExNzQgMTFCQTtBRTI3OzExMDAgMTE3NCAxMUJBOworQUUyODtBRTI4OzExMDAgMTE3NCAxMUJCO0FFMjg7MTEwMCAxMTc0IDExQkI7CitBRTI5O0FFMjk7MTEwMCAxMTc0IDExQkM7QUUyOTsxMTAwIDExNzQgMTFCQzsKK0FFMkE7QUUyQTsxMTAwIDExNzQgMTFCRDtBRTJBOzExMDAgMTE3NCAxMUJEOworQUUyQjtBRTJCOzExMDAgMTE3NCAxMUJFO0FFMkI7MTEwMCAxMTc0IDExQkU7CitBRTJDO0FFMkM7MTEwMCAxMTc0IDExQkY7QUUyQzsxMTAwIDExNzQgMTFCRjsKK0FFMkQ7QUUyRDsxMTAwIDExNzQgMTFDMDtBRTJEOzExMDAgMTE3NCAxMUMwOworQUUyRTtBRTJFOzExMDAgMTE3NCAxMUMxO0FFMkU7MTEwMCAxMTc0IDExQzE7CitBRTJGO0FFMkY7MTEwMCAxMTc0IDExQzI7QUUyRjsxMTAwIDExNzQgMTFDMjsKK0FFMzA7QUUzMDsxMTAwIDExNzU7QUUzMDsxMTAwIDExNzU7CitBRTMxO0FFMzE7MTEwMCAxMTc1IDExQTg7QUUzMTsxMTAwIDExNzUgMTFBODsKK0FFMzI7QUUzMjsxMTAwIDExNzUgMTFBOTtBRTMyOzExMDAgMTE3NSAxMUE5OworQUUzMztBRTMzOzExMDAgMTE3NSAxMUFBO0FFMzM7MTEwMCAxMTc1IDExQUE7CitBRTM0O0FFMzQ7MTEwMCAxMTc1IDExQUI7QUUzNDsxMTAwIDExNzUgMTFBQjsKK0FFMzU7QUUzNTsxMTAwIDExNzUgMTFBQztBRTM1OzExMDAgMTE3NSAxMUFDOworQUUzNjtBRTM2OzExMDAgMTE3NSAxMUFEO0FFMzY7MTEwMCAxMTc1IDExQUQ7CitBRTM3O0FFMzc7MTEwMCAxMTc1IDExQUU7QUUzNzsxMTAwIDExNzUgMTFBRTsKK0FFMzg7QUUzODsxMTAwIDExNzUgMTFBRjtBRTM4OzExMDAgMTE3NSAxMUFGOworQUUzOTtBRTM5OzExMDAgMTE3NSAxMUIwO0FFMzk7MTEwMCAxMTc1IDExQjA7CitBRTNBO0FFM0E7MTEwMCAxMTc1IDExQjE7QUUzQTsxMTAwIDExNzUgMTFCMTsKK0FFM0I7QUUzQjsxMTAwIDExNzUgMTFCMjtBRTNCOzExMDAgMTE3NSAxMUIyOworQUUzQztBRTNDOzExMDAgMTE3NSAxMUIzO0FFM0M7MTEwMCAxMTc1IDExQjM7CitBRTNEO0FFM0Q7MTEwMCAxMTc1IDExQjQ7QUUzRDsxMTAwIDExNzUgMTFCNDsKK0FFM0U7QUUzRTsxMTAwIDExNzUgMTFCNTtBRTNFOzExMDAgMTE3NSAxMUI1OworQUUzRjtBRTNGOzExMDAgMTE3NSAxMUI2O0FFM0Y7MTEwMCAxMTc1IDExQjY7CitBRTQwO0FFNDA7MTEwMCAxMTc1IDExQjc7QUU0MDsxMTAwIDExNzUgMTFCNzsKK0FFNDE7QUU0MTsxMTAwIDExNzUgMTFCODtBRTQxOzExMDAgMTE3NSAxMUI4OworQUU0MjtBRTQyOzExMDAgMTE3NSAxMUI5O0FFNDI7MTEwMCAxMTc1IDExQjk7CitBRTQzO0FFNDM7MTEwMCAxMTc1IDExQkE7QUU0MzsxMTAwIDExNzUgMTFCQTsKK0FFNDQ7QUU0NDsxMTAwIDExNzUgMTFCQjtBRTQ0OzExMDAgMTE3NSAxMUJCOworQUU0NTtBRTQ1OzExMDAgMTE3NSAxMUJDO0FFNDU7MTEwMCAxMTc1IDExQkM7CitBRTQ2O0FFNDY7MTEwMCAxMTc1IDExQkQ7QUU0NjsxMTAwIDExNzUgMTFCRDsKK0FFNDc7QUU0NzsxMTAwIDExNzUgMTFCRTtBRTQ3OzExMDAgMTE3NSAxMUJFOworQUU0ODtBRTQ4OzExMDAgMTE3NSAxMUJGO0FFNDg7MTEwMCAxMTc1IDExQkY7CitBRTQ5O0FFNDk7MTEwMCAxMTc1IDExQzA7QUU0OTsxMTAwIDExNzUgMTFDMDsKK0FFNEE7QUU0QTsxMTAwIDExNzUgMTFDMTtBRTRBOzExMDAgMTE3NSAxMUMxOworQUU0QjtBRTRCOzExMDAgMTE3NSAxMUMyO0FFNEI7MTEwMCAxMTc1IDExQzI7CitBRTRDO0FFNEM7MTEwMSAxMTYxO0FFNEM7MTEwMSAxMTYxOworQUU0RDtBRTREOzExMDEgMTE2MSAxMUE4O0FFNEQ7MTEwMSAxMTYxIDExQTg7CitBRTRFO0FFNEU7MTEwMSAxMTYxIDExQTk7QUU0RTsxMTAxIDExNjEgMTFBOTsKK0FFNEY7QUU0RjsxMTAxIDExNjEgMTFBQTtBRTRGOzExMDEgMTE2MSAxMUFBOworQUU1MDtBRTUwOzExMDEgMTE2MSAxMUFCO0FFNTA7MTEwMSAxMTYxIDExQUI7CitBRTUxO0FFNTE7MTEwMSAxMTYxIDExQUM7QUU1MTsxMTAxIDExNjEgMTFBQzsKK0FFNTI7QUU1MjsxMTAxIDExNjEgMTFBRDtBRTUyOzExMDEgMTE2MSAxMUFEOworQUU1MztBRTUzOzExMDEgMTE2MSAxMUFFO0FFNTM7MTEwMSAxMTYxIDExQUU7CitBRTU0O0FFNTQ7MTEwMSAxMTYxIDExQUY7QUU1NDsxMTAxIDExNjEgMTFBRjsKK0FFNTU7QUU1NTsxMTAxIDExNjEgMTFCMDtBRTU1OzExMDEgMTE2MSAxMUIwOworQUU1NjtBRTU2OzExMDEgMTE2MSAxMUIxO0FFNTY7MTEwMSAxMTYxIDExQjE7CitBRTU3O0FFNTc7MTEwMSAxMTYxIDExQjI7QUU1NzsxMTAxIDExNjEgMTFCMjsKK0FFNTg7QUU1ODsxMTAxIDExNjEgMTFCMztBRTU4OzExMDEgMTE2MSAxMUIzOworQUU1OTtBRTU5OzExMDEgMTE2MSAxMUI0O0FFNTk7MTEwMSAxMTYxIDExQjQ7CitBRTVBO0FFNUE7MTEwMSAxMTYxIDExQjU7QUU1QTsxMTAxIDExNjEgMTFCNTsKK0FFNUI7QUU1QjsxMTAxIDExNjEgMTFCNjtBRTVCOzExMDEgMTE2MSAxMUI2OworQUU1QztBRTVDOzExMDEgMTE2MSAxMUI3O0FFNUM7MTEwMSAxMTYxIDExQjc7CitBRTVEO0FFNUQ7MTEwMSAxMTYxIDExQjg7QUU1RDsxMTAxIDExNjEgMTFCODsKK0FFNUU7QUU1RTsxMTAxIDExNjEgMTFCOTtBRTVFOzExMDEgMTE2MSAxMUI5OworQUU1RjtBRTVGOzExMDEgMTE2MSAxMUJBO0FFNUY7MTEwMSAxMTYxIDExQkE7CitBRTYwO0FFNjA7MTEwMSAxMTYxIDExQkI7QUU2MDsxMTAxIDExNjEgMTFCQjsKK0FFNjE7QUU2MTsxMTAxIDExNjEgMTFCQztBRTYxOzExMDEgMTE2MSAxMUJDOworQUU2MjtBRTYyOzExMDEgMTE2MSAxMUJEO0FFNjI7MTEwMSAxMTYxIDExQkQ7CitBRTYzO0FFNjM7MTEwMSAxMTYxIDExQkU7QUU2MzsxMTAxIDExNjEgMTFCRTsKK0FFNjQ7QUU2NDsxMTAxIDExNjEgMTFCRjtBRTY0OzExMDEgMTE2MSAxMUJGOworQUU2NTtBRTY1OzExMDEgMTE2MSAxMUMwO0FFNjU7MTEwMSAxMTYxIDExQzA7CitBRTY2O0FFNjY7MTEwMSAxMTYxIDExQzE7QUU2NjsxMTAxIDExNjEgMTFDMTsKK0FFNjc7QUU2NzsxMTAxIDExNjEgMTFDMjtBRTY3OzExMDEgMTE2MSAxMUMyOworQUU2ODtBRTY4OzExMDEgMTE2MjtBRTY4OzExMDEgMTE2MjsKK0FFNjk7QUU2OTsxMTAxIDExNjIgMTFBODtBRTY5OzExMDEgMTE2MiAxMUE4OworQUU2QTtBRTZBOzExMDEgMTE2MiAxMUE5O0FFNkE7MTEwMSAxMTYyIDExQTk7CitBRTZCO0FFNkI7MTEwMSAxMTYyIDExQUE7QUU2QjsxMTAxIDExNjIgMTFBQTsKK0FFNkM7QUU2QzsxMTAxIDExNjIgMTFBQjtBRTZDOzExMDEgMTE2MiAxMUFCOworQUU2RDtBRTZEOzExMDEgMTE2MiAxMUFDO0FFNkQ7MTEwMSAxMTYyIDExQUM7CitBRTZFO0FFNkU7MTEwMSAxMTYyIDExQUQ7QUU2RTsxMTAxIDExNjIgMTFBRDsKK0FFNkY7QUU2RjsxMTAxIDExNjIgMTFBRTtBRTZGOzExMDEgMTE2MiAxMUFFOworQUU3MDtBRTcwOzExMDEgMTE2MiAxMUFGO0FFNzA7MTEwMSAxMTYyIDExQUY7CitBRTcxO0FFNzE7MTEwMSAxMTYyIDExQjA7QUU3MTsxMTAxIDExNjIgMTFCMDsKK0FFNzI7QUU3MjsxMTAxIDExNjIgMTFCMTtBRTcyOzExMDEgMTE2MiAxMUIxOworQUU3MztBRTczOzExMDEgMTE2MiAxMUIyO0FFNzM7MTEwMSAxMTYyIDExQjI7CitBRTc0O0FFNzQ7MTEwMSAxMTYyIDExQjM7QUU3NDsxMTAxIDExNjIgMTFCMzsKK0FFNzU7QUU3NTsxMTAxIDExNjIgMTFCNDtBRTc1OzExMDEgMTE2MiAxMUI0OworQUU3NjtBRTc2OzExMDEgMTE2MiAxMUI1O0FFNzY7MTEwMSAxMTYyIDExQjU7CitBRTc3O0FFNzc7MTEwMSAxMTYyIDExQjY7QUU3NzsxMTAxIDExNjIgMTFCNjsKK0FFNzg7QUU3ODsxMTAxIDExNjIgMTFCNztBRTc4OzExMDEgMTE2MiAxMUI3OworQUU3OTtBRTc5OzExMDEgMTE2MiAxMUI4O0FFNzk7MTEwMSAxMTYyIDExQjg7CitBRTdBO0FFN0E7MTEwMSAxMTYyIDExQjk7QUU3QTsxMTAxIDExNjIgMTFCOTsKK0FFN0I7QUU3QjsxMTAxIDExNjIgMTFCQTtBRTdCOzExMDEgMTE2MiAxMUJBOworQUU3QztBRTdDOzExMDEgMTE2MiAxMUJCO0FFN0M7MTEwMSAxMTYyIDExQkI7CitBRTdEO0FFN0Q7MTEwMSAxMTYyIDExQkM7QUU3RDsxMTAxIDExNjIgMTFCQzsKK0FFN0U7QUU3RTsxMTAxIDExNjIgMTFCRDtBRTdFOzExMDEgMTE2MiAxMUJEOworQUU3RjtBRTdGOzExMDEgMTE2MiAxMUJFO0FFN0Y7MTEwMSAxMTYyIDExQkU7CitBRTgwO0FFODA7MTEwMSAxMTYyIDExQkY7QUU4MDsxMTAxIDExNjIgMTFCRjsKK0FFODE7QUU4MTsxMTAxIDExNjIgMTFDMDtBRTgxOzExMDEgMTE2MiAxMUMwOworQUU4MjtBRTgyOzExMDEgMTE2MiAxMUMxO0FFODI7MTEwMSAxMTYyIDExQzE7CitBRTgzO0FFODM7MTEwMSAxMTYyIDExQzI7QUU4MzsxMTAxIDExNjIgMTFDMjsKK0FFODQ7QUU4NDsxMTAxIDExNjM7QUU4NDsxMTAxIDExNjM7CitBRTg1O0FFODU7MTEwMSAxMTYzIDExQTg7QUU4NTsxMTAxIDExNjMgMTFBODsKK0FFODY7QUU4NjsxMTAxIDExNjMgMTFBOTtBRTg2OzExMDEgMTE2MyAxMUE5OworQUU4NztBRTg3OzExMDEgMTE2MyAxMUFBO0FFODc7MTEwMSAxMTYzIDExQUE7CitBRTg4O0FFODg7MTEwMSAxMTYzIDExQUI7QUU4ODsxMTAxIDExNjMgMTFBQjsKK0FFODk7QUU4OTsxMTAxIDExNjMgMTFBQztBRTg5OzExMDEgMTE2MyAxMUFDOworQUU4QTtBRThBOzExMDEgMTE2MyAxMUFEO0FFOEE7MTEwMSAxMTYzIDExQUQ7CitBRThCO0FFOEI7MTEwMSAxMTYzIDExQUU7QUU4QjsxMTAxIDExNjMgMTFBRTsKK0FFOEM7QUU4QzsxMTAxIDExNjMgMTFBRjtBRThDOzExMDEgMTE2MyAxMUFGOworQUU4RDtBRThEOzExMDEgMTE2MyAxMUIwO0FFOEQ7MTEwMSAxMTYzIDExQjA7CitBRThFO0FFOEU7MTEwMSAxMTYzIDExQjE7QUU4RTsxMTAxIDExNjMgMTFCMTsKK0FFOEY7QUU4RjsxMTAxIDExNjMgMTFCMjtBRThGOzExMDEgMTE2MyAxMUIyOworQUU5MDtBRTkwOzExMDEgMTE2MyAxMUIzO0FFOTA7MTEwMSAxMTYzIDExQjM7CitBRTkxO0FFOTE7MTEwMSAxMTYzIDExQjQ7QUU5MTsxMTAxIDExNjMgMTFCNDsKK0FFOTI7QUU5MjsxMTAxIDExNjMgMTFCNTtBRTkyOzExMDEgMTE2MyAxMUI1OworQUU5MztBRTkzOzExMDEgMTE2MyAxMUI2O0FFOTM7MTEwMSAxMTYzIDExQjY7CitBRTk0O0FFOTQ7MTEwMSAxMTYzIDExQjc7QUU5NDsxMTAxIDExNjMgMTFCNzsKK0FFOTU7QUU5NTsxMTAxIDExNjMgMTFCODtBRTk1OzExMDEgMTE2MyAxMUI4OworQUU5NjtBRTk2OzExMDEgMTE2MyAxMUI5O0FFOTY7MTEwMSAxMTYzIDExQjk7CitBRTk3O0FFOTc7MTEwMSAxMTYzIDExQkE7QUU5NzsxMTAxIDExNjMgMTFCQTsKK0FFOTg7QUU5ODsxMTAxIDExNjMgMTFCQjtBRTk4OzExMDEgMTE2MyAxMUJCOworQUU5OTtBRTk5OzExMDEgMTE2MyAxMUJDO0FFOTk7MTEwMSAxMTYzIDExQkM7CitBRTlBO0FFOUE7MTEwMSAxMTYzIDExQkQ7QUU5QTsxMTAxIDExNjMgMTFCRDsKK0FFOUI7QUU5QjsxMTAxIDExNjMgMTFCRTtBRTlCOzExMDEgMTE2MyAxMUJFOworQUU5QztBRTlDOzExMDEgMTE2MyAxMUJGO0FFOUM7MTEwMSAxMTYzIDExQkY7CitBRTlEO0FFOUQ7MTEwMSAxMTYzIDExQzA7QUU5RDsxMTAxIDExNjMgMTFDMDsKK0FFOUU7QUU5RTsxMTAxIDExNjMgMTFDMTtBRTlFOzExMDEgMTE2MyAxMUMxOworQUU5RjtBRTlGOzExMDEgMTE2MyAxMUMyO0FFOUY7MTEwMSAxMTYzIDExQzI7CitBRUEwO0FFQTA7MTEwMSAxMTY0O0FFQTA7MTEwMSAxMTY0OworQUVBMTtBRUExOzExMDEgMTE2NCAxMUE4O0FFQTE7MTEwMSAxMTY0IDExQTg7CitBRUEyO0FFQTI7MTEwMSAxMTY0IDExQTk7QUVBMjsxMTAxIDExNjQgMTFBOTsKK0FFQTM7QUVBMzsxMTAxIDExNjQgMTFBQTtBRUEzOzExMDEgMTE2NCAxMUFBOworQUVBNDtBRUE0OzExMDEgMTE2NCAxMUFCO0FFQTQ7MTEwMSAxMTY0IDExQUI7CitBRUE1O0FFQTU7MTEwMSAxMTY0IDExQUM7QUVBNTsxMTAxIDExNjQgMTFBQzsKK0FFQTY7QUVBNjsxMTAxIDExNjQgMTFBRDtBRUE2OzExMDEgMTE2NCAxMUFEOworQUVBNztBRUE3OzExMDEgMTE2NCAxMUFFO0FFQTc7MTEwMSAxMTY0IDExQUU7CitBRUE4O0FFQTg7MTEwMSAxMTY0IDExQUY7QUVBODsxMTAxIDExNjQgMTFBRjsKK0FFQTk7QUVBOTsxMTAxIDExNjQgMTFCMDtBRUE5OzExMDEgMTE2NCAxMUIwOworQUVBQTtBRUFBOzExMDEgMTE2NCAxMUIxO0FFQUE7MTEwMSAxMTY0IDExQjE7CitBRUFCO0FFQUI7MTEwMSAxMTY0IDExQjI7QUVBQjsxMTAxIDExNjQgMTFCMjsKK0FFQUM7QUVBQzsxMTAxIDExNjQgMTFCMztBRUFDOzExMDEgMTE2NCAxMUIzOworQUVBRDtBRUFEOzExMDEgMTE2NCAxMUI0O0FFQUQ7MTEwMSAxMTY0IDExQjQ7CitBRUFFO0FFQUU7MTEwMSAxMTY0IDExQjU7QUVBRTsxMTAxIDExNjQgMTFCNTsKK0FFQUY7QUVBRjsxMTAxIDExNjQgMTFCNjtBRUFGOzExMDEgMTE2NCAxMUI2OworQUVCMDtBRUIwOzExMDEgMTE2NCAxMUI3O0FFQjA7MTEwMSAxMTY0IDExQjc7CitBRUIxO0FFQjE7MTEwMSAxMTY0IDExQjg7QUVCMTsxMTAxIDExNjQgMTFCODsKK0FFQjI7QUVCMjsxMTAxIDExNjQgMTFCOTtBRUIyOzExMDEgMTE2NCAxMUI5OworQUVCMztBRUIzOzExMDEgMTE2NCAxMUJBO0FFQjM7MTEwMSAxMTY0IDExQkE7CitBRUI0O0FFQjQ7MTEwMSAxMTY0IDExQkI7QUVCNDsxMTAxIDExNjQgMTFCQjsKK0FFQjU7QUVCNTsxMTAxIDExNjQgMTFCQztBRUI1OzExMDEgMTE2NCAxMUJDOworQUVCNjtBRUI2OzExMDEgMTE2NCAxMUJEO0FFQjY7MTEwMSAxMTY0IDExQkQ7CitBRUI3O0FFQjc7MTEwMSAxMTY0IDExQkU7QUVCNzsxMTAxIDExNjQgMTFCRTsKK0FFQjg7QUVCODsxMTAxIDExNjQgMTFCRjtBRUI4OzExMDEgMTE2NCAxMUJGOworQUVCOTtBRUI5OzExMDEgMTE2NCAxMUMwO0FFQjk7MTEwMSAxMTY0IDExQzA7CitBRUJBO0FFQkE7MTEwMSAxMTY0IDExQzE7QUVCQTsxMTAxIDExNjQgMTFDMTsKK0FFQkI7QUVCQjsxMTAxIDExNjQgMTFDMjtBRUJCOzExMDEgMTE2NCAxMUMyOworQUVCQztBRUJDOzExMDEgMTE2NTtBRUJDOzExMDEgMTE2NTsKK0FFQkQ7QUVCRDsxMTAxIDExNjUgMTFBODtBRUJEOzExMDEgMTE2NSAxMUE4OworQUVCRTtBRUJFOzExMDEgMTE2NSAxMUE5O0FFQkU7MTEwMSAxMTY1IDExQTk7CitBRUJGO0FFQkY7MTEwMSAxMTY1IDExQUE7QUVCRjsxMTAxIDExNjUgMTFBQTsKK0FFQzA7QUVDMDsxMTAxIDExNjUgMTFBQjtBRUMwOzExMDEgMTE2NSAxMUFCOworQUVDMTtBRUMxOzExMDEgMTE2NSAxMUFDO0FFQzE7MTEwMSAxMTY1IDExQUM7CitBRUMyO0FFQzI7MTEwMSAxMTY1IDExQUQ7QUVDMjsxMTAxIDExNjUgMTFBRDsKK0FFQzM7QUVDMzsxMTAxIDExNjUgMTFBRTtBRUMzOzExMDEgMTE2NSAxMUFFOworQUVDNDtBRUM0OzExMDEgMTE2NSAxMUFGO0FFQzQ7MTEwMSAxMTY1IDExQUY7CitBRUM1O0FFQzU7MTEwMSAxMTY1IDExQjA7QUVDNTsxMTAxIDExNjUgMTFCMDsKK0FFQzY7QUVDNjsxMTAxIDExNjUgMTFCMTtBRUM2OzExMDEgMTE2NSAxMUIxOworQUVDNztBRUM3OzExMDEgMTE2NSAxMUIyO0FFQzc7MTEwMSAxMTY1IDExQjI7CitBRUM4O0FFQzg7MTEwMSAxMTY1IDExQjM7QUVDODsxMTAxIDExNjUgMTFCMzsKK0FFQzk7QUVDOTsxMTAxIDExNjUgMTFCNDtBRUM5OzExMDEgMTE2NSAxMUI0OworQUVDQTtBRUNBOzExMDEgMTE2NSAxMUI1O0FFQ0E7MTEwMSAxMTY1IDExQjU7CitBRUNCO0FFQ0I7MTEwMSAxMTY1IDExQjY7QUVDQjsxMTAxIDExNjUgMTFCNjsKK0FFQ0M7QUVDQzsxMTAxIDExNjUgMTFCNztBRUNDOzExMDEgMTE2NSAxMUI3OworQUVDRDtBRUNEOzExMDEgMTE2NSAxMUI4O0FFQ0Q7MTEwMSAxMTY1IDExQjg7CitBRUNFO0FFQ0U7MTEwMSAxMTY1IDExQjk7QUVDRTsxMTAxIDExNjUgMTFCOTsKK0FFQ0Y7QUVDRjsxMTAxIDExNjUgMTFCQTtBRUNGOzExMDEgMTE2NSAxMUJBOworQUVEMDtBRUQwOzExMDEgMTE2NSAxMUJCO0FFRDA7MTEwMSAxMTY1IDExQkI7CitBRUQxO0FFRDE7MTEwMSAxMTY1IDExQkM7QUVEMTsxMTAxIDExNjUgMTFCQzsKK0FFRDI7QUVEMjsxMTAxIDExNjUgMTFCRDtBRUQyOzExMDEgMTE2NSAxMUJEOworQUVEMztBRUQzOzExMDEgMTE2NSAxMUJFO0FFRDM7MTEwMSAxMTY1IDExQkU7CitBRUQ0O0FFRDQ7MTEwMSAxMTY1IDExQkY7QUVENDsxMTAxIDExNjUgMTFCRjsKK0FFRDU7QUVENTsxMTAxIDExNjUgMTFDMDtBRUQ1OzExMDEgMTE2NSAxMUMwOworQUVENjtBRUQ2OzExMDEgMTE2NSAxMUMxO0FFRDY7MTEwMSAxMTY1IDExQzE7CitBRUQ3O0FFRDc7MTEwMSAxMTY1IDExQzI7QUVENzsxMTAxIDExNjUgMTFDMjsKK0FFRDg7QUVEODsxMTAxIDExNjY7QUVEODsxMTAxIDExNjY7CitBRUQ5O0FFRDk7MTEwMSAxMTY2IDExQTg7QUVEOTsxMTAxIDExNjYgMTFBODsKK0FFREE7QUVEQTsxMTAxIDExNjYgMTFBOTtBRURBOzExMDEgMTE2NiAxMUE5OworQUVEQjtBRURCOzExMDEgMTE2NiAxMUFBO0FFREI7MTEwMSAxMTY2IDExQUE7CitBRURDO0FFREM7MTEwMSAxMTY2IDExQUI7QUVEQzsxMTAxIDExNjYgMTFBQjsKK0FFREQ7QUVERDsxMTAxIDExNjYgMTFBQztBRUREOzExMDEgMTE2NiAxMUFDOworQUVERTtBRURFOzExMDEgMTE2NiAxMUFEO0FFREU7MTEwMSAxMTY2IDExQUQ7CitBRURGO0FFREY7MTEwMSAxMTY2IDExQUU7QUVERjsxMTAxIDExNjYgMTFBRTsKK0FFRTA7QUVFMDsxMTAxIDExNjYgMTFBRjtBRUUwOzExMDEgMTE2NiAxMUFGOworQUVFMTtBRUUxOzExMDEgMTE2NiAxMUIwO0FFRTE7MTEwMSAxMTY2IDExQjA7CitBRUUyO0FFRTI7MTEwMSAxMTY2IDExQjE7QUVFMjsxMTAxIDExNjYgMTFCMTsKK0FFRTM7QUVFMzsxMTAxIDExNjYgMTFCMjtBRUUzOzExMDEgMTE2NiAxMUIyOworQUVFNDtBRUU0OzExMDEgMTE2NiAxMUIzO0FFRTQ7MTEwMSAxMTY2IDExQjM7CitBRUU1O0FFRTU7MTEwMSAxMTY2IDExQjQ7QUVFNTsxMTAxIDExNjYgMTFCNDsKK0FFRTY7QUVFNjsxMTAxIDExNjYgMTFCNTtBRUU2OzExMDEgMTE2NiAxMUI1OworQUVFNztBRUU3OzExMDEgMTE2NiAxMUI2O0FFRTc7MTEwMSAxMTY2IDExQjY7CitBRUU4O0FFRTg7MTEwMSAxMTY2IDExQjc7QUVFODsxMTAxIDExNjYgMTFCNzsKK0FFRTk7QUVFOTsxMTAxIDExNjYgMTFCODtBRUU5OzExMDEgMTE2NiAxMUI4OworQUVFQTtBRUVBOzExMDEgMTE2NiAxMUI5O0FFRUE7MTEwMSAxMTY2IDExQjk7CitBRUVCO0FFRUI7MTEwMSAxMTY2IDExQkE7QUVFQjsxMTAxIDExNjYgMTFCQTsKK0FFRUM7QUVFQzsxMTAxIDExNjYgMTFCQjtBRUVDOzExMDEgMTE2NiAxMUJCOworQUVFRDtBRUVEOzExMDEgMTE2NiAxMUJDO0FFRUQ7MTEwMSAxMTY2IDExQkM7CitBRUVFO0FFRUU7MTEwMSAxMTY2IDExQkQ7QUVFRTsxMTAxIDExNjYgMTFCRDsKK0FFRUY7QUVFRjsxMTAxIDExNjYgMTFCRTtBRUVGOzExMDEgMTE2NiAxMUJFOworQUVGMDtBRUYwOzExMDEgMTE2NiAxMUJGO0FFRjA7MTEwMSAxMTY2IDExQkY7CitBRUYxO0FFRjE7MTEwMSAxMTY2IDExQzA7QUVGMTsxMTAxIDExNjYgMTFDMDsKK0FFRjI7QUVGMjsxMTAxIDExNjYgMTFDMTtBRUYyOzExMDEgMTE2NiAxMUMxOworQUVGMztBRUYzOzExMDEgMTE2NiAxMUMyO0FFRjM7MTEwMSAxMTY2IDExQzI7CitBRUY0O0FFRjQ7MTEwMSAxMTY3O0FFRjQ7MTEwMSAxMTY3OworQUVGNTtBRUY1OzExMDEgMTE2NyAxMUE4O0FFRjU7MTEwMSAxMTY3IDExQTg7CitBRUY2O0FFRjY7MTEwMSAxMTY3IDExQTk7QUVGNjsxMTAxIDExNjcgMTFBOTsKK0FFRjc7QUVGNzsxMTAxIDExNjcgMTFBQTtBRUY3OzExMDEgMTE2NyAxMUFBOworQUVGODtBRUY4OzExMDEgMTE2NyAxMUFCO0FFRjg7MTEwMSAxMTY3IDExQUI7CitBRUY5O0FFRjk7MTEwMSAxMTY3IDExQUM7QUVGOTsxMTAxIDExNjcgMTFBQzsKK0FFRkE7QUVGQTsxMTAxIDExNjcgMTFBRDtBRUZBOzExMDEgMTE2NyAxMUFEOworQUVGQjtBRUZCOzExMDEgMTE2NyAxMUFFO0FFRkI7MTEwMSAxMTY3IDExQUU7CitBRUZDO0FFRkM7MTEwMSAxMTY3IDExQUY7QUVGQzsxMTAxIDExNjcgMTFBRjsKK0FFRkQ7QUVGRDsxMTAxIDExNjcgMTFCMDtBRUZEOzExMDEgMTE2NyAxMUIwOworQUVGRTtBRUZFOzExMDEgMTE2NyAxMUIxO0FFRkU7MTEwMSAxMTY3IDExQjE7CitBRUZGO0FFRkY7MTEwMSAxMTY3IDExQjI7QUVGRjsxMTAxIDExNjcgMTFCMjsKK0FGMDA7QUYwMDsxMTAxIDExNjcgMTFCMztBRjAwOzExMDEgMTE2NyAxMUIzOworQUYwMTtBRjAxOzExMDEgMTE2NyAxMUI0O0FGMDE7MTEwMSAxMTY3IDExQjQ7CitBRjAyO0FGMDI7MTEwMSAxMTY3IDExQjU7QUYwMjsxMTAxIDExNjcgMTFCNTsKK0FGMDM7QUYwMzsxMTAxIDExNjcgMTFCNjtBRjAzOzExMDEgMTE2NyAxMUI2OworQUYwNDtBRjA0OzExMDEgMTE2NyAxMUI3O0FGMDQ7MTEwMSAxMTY3IDExQjc7CitBRjA1O0FGMDU7MTEwMSAxMTY3IDExQjg7QUYwNTsxMTAxIDExNjcgMTFCODsKK0FGMDY7QUYwNjsxMTAxIDExNjcgMTFCOTtBRjA2OzExMDEgMTE2NyAxMUI5OworQUYwNztBRjA3OzExMDEgMTE2NyAxMUJBO0FGMDc7MTEwMSAxMTY3IDExQkE7CitBRjA4O0FGMDg7MTEwMSAxMTY3IDExQkI7QUYwODsxMTAxIDExNjcgMTFCQjsKK0FGMDk7QUYwOTsxMTAxIDExNjcgMTFCQztBRjA5OzExMDEgMTE2NyAxMUJDOworQUYwQTtBRjBBOzExMDEgMTE2NyAxMUJEO0FGMEE7MTEwMSAxMTY3IDExQkQ7CitBRjBCO0FGMEI7MTEwMSAxMTY3IDExQkU7QUYwQjsxMTAxIDExNjcgMTFCRTsKK0FGMEM7QUYwQzsxMTAxIDExNjcgMTFCRjtBRjBDOzExMDEgMTE2NyAxMUJGOworQUYwRDtBRjBEOzExMDEgMTE2NyAxMUMwO0FGMEQ7MTEwMSAxMTY3IDExQzA7CitBRjBFO0FGMEU7MTEwMSAxMTY3IDExQzE7QUYwRTsxMTAxIDExNjcgMTFDMTsKK0FGMEY7QUYwRjsxMTAxIDExNjcgMTFDMjtBRjBGOzExMDEgMTE2NyAxMUMyOworQUYxMDtBRjEwOzExMDEgMTE2ODtBRjEwOzExMDEgMTE2ODsKK0FGMTE7QUYxMTsxMTAxIDExNjggMTFBODtBRjExOzExMDEgMTE2OCAxMUE4OworQUYxMjtBRjEyOzExMDEgMTE2OCAxMUE5O0FGMTI7MTEwMSAxMTY4IDExQTk7CitBRjEzO0FGMTM7MTEwMSAxMTY4IDExQUE7QUYxMzsxMTAxIDExNjggMTFBQTsKK0FGMTQ7QUYxNDsxMTAxIDExNjggMTFBQjtBRjE0OzExMDEgMTE2OCAxMUFCOworQUYxNTtBRjE1OzExMDEgMTE2OCAxMUFDO0FGMTU7MTEwMSAxMTY4IDExQUM7CitBRjE2O0FGMTY7MTEwMSAxMTY4IDExQUQ7QUYxNjsxMTAxIDExNjggMTFBRDsKK0FGMTc7QUYxNzsxMTAxIDExNjggMTFBRTtBRjE3OzExMDEgMTE2OCAxMUFFOworQUYxODtBRjE4OzExMDEgMTE2OCAxMUFGO0FGMTg7MTEwMSAxMTY4IDExQUY7CitBRjE5O0FGMTk7MTEwMSAxMTY4IDExQjA7QUYxOTsxMTAxIDExNjggMTFCMDsKK0FGMUE7QUYxQTsxMTAxIDExNjggMTFCMTtBRjFBOzExMDEgMTE2OCAxMUIxOworQUYxQjtBRjFCOzExMDEgMTE2OCAxMUIyO0FGMUI7MTEwMSAxMTY4IDExQjI7CitBRjFDO0FGMUM7MTEwMSAxMTY4IDExQjM7QUYxQzsxMTAxIDExNjggMTFCMzsKK0FGMUQ7QUYxRDsxMTAxIDExNjggMTFCNDtBRjFEOzExMDEgMTE2OCAxMUI0OworQUYxRTtBRjFFOzExMDEgMTE2OCAxMUI1O0FGMUU7MTEwMSAxMTY4IDExQjU7CitBRjFGO0FGMUY7MTEwMSAxMTY4IDExQjY7QUYxRjsxMTAxIDExNjggMTFCNjsKK0FGMjA7QUYyMDsxMTAxIDExNjggMTFCNztBRjIwOzExMDEgMTE2OCAxMUI3OworQUYyMTtBRjIxOzExMDEgMTE2OCAxMUI4O0FGMjE7MTEwMSAxMTY4IDExQjg7CitBRjIyO0FGMjI7MTEwMSAxMTY4IDExQjk7QUYyMjsxMTAxIDExNjggMTFCOTsKK0FGMjM7QUYyMzsxMTAxIDExNjggMTFCQTtBRjIzOzExMDEgMTE2OCAxMUJBOworQUYyNDtBRjI0OzExMDEgMTE2OCAxMUJCO0FGMjQ7MTEwMSAxMTY4IDExQkI7CitBRjI1O0FGMjU7MTEwMSAxMTY4IDExQkM7QUYyNTsxMTAxIDExNjggMTFCQzsKK0FGMjY7QUYyNjsxMTAxIDExNjggMTFCRDtBRjI2OzExMDEgMTE2OCAxMUJEOworQUYyNztBRjI3OzExMDEgMTE2OCAxMUJFO0FGMjc7MTEwMSAxMTY4IDExQkU7CitBRjI4O0FGMjg7MTEwMSAxMTY4IDExQkY7QUYyODsxMTAxIDExNjggMTFCRjsKK0FGMjk7QUYyOTsxMTAxIDExNjggMTFDMDtBRjI5OzExMDEgMTE2OCAxMUMwOworQUYyQTtBRjJBOzExMDEgMTE2OCAxMUMxO0FGMkE7MTEwMSAxMTY4IDExQzE7CitBRjJCO0FGMkI7MTEwMSAxMTY4IDExQzI7QUYyQjsxMTAxIDExNjggMTFDMjsKK0FGMkM7QUYyQzsxMTAxIDExNjk7QUYyQzsxMTAxIDExNjk7CitBRjJEO0FGMkQ7MTEwMSAxMTY5IDExQTg7QUYyRDsxMTAxIDExNjkgMTFBODsKK0FGMkU7QUYyRTsxMTAxIDExNjkgMTFBOTtBRjJFOzExMDEgMTE2OSAxMUE5OworQUYyRjtBRjJGOzExMDEgMTE2OSAxMUFBO0FGMkY7MTEwMSAxMTY5IDExQUE7CitBRjMwO0FGMzA7MTEwMSAxMTY5IDExQUI7QUYzMDsxMTAxIDExNjkgMTFBQjsKK0FGMzE7QUYzMTsxMTAxIDExNjkgMTFBQztBRjMxOzExMDEgMTE2OSAxMUFDOworQUYzMjtBRjMyOzExMDEgMTE2OSAxMUFEO0FGMzI7MTEwMSAxMTY5IDExQUQ7CitBRjMzO0FGMzM7MTEwMSAxMTY5IDExQUU7QUYzMzsxMTAxIDExNjkgMTFBRTsKK0FGMzQ7QUYzNDsxMTAxIDExNjkgMTFBRjtBRjM0OzExMDEgMTE2OSAxMUFGOworQUYzNTtBRjM1OzExMDEgMTE2OSAxMUIwO0FGMzU7MTEwMSAxMTY5IDExQjA7CitBRjM2O0FGMzY7MTEwMSAxMTY5IDExQjE7QUYzNjsxMTAxIDExNjkgMTFCMTsKK0FGMzc7QUYzNzsxMTAxIDExNjkgMTFCMjtBRjM3OzExMDEgMTE2OSAxMUIyOworQUYzODtBRjM4OzExMDEgMTE2OSAxMUIzO0FGMzg7MTEwMSAxMTY5IDExQjM7CitBRjM5O0FGMzk7MTEwMSAxMTY5IDExQjQ7QUYzOTsxMTAxIDExNjkgMTFCNDsKK0FGM0E7QUYzQTsxMTAxIDExNjkgMTFCNTtBRjNBOzExMDEgMTE2OSAxMUI1OworQUYzQjtBRjNCOzExMDEgMTE2OSAxMUI2O0FGM0I7MTEwMSAxMTY5IDExQjY7CitBRjNDO0FGM0M7MTEwMSAxMTY5IDExQjc7QUYzQzsxMTAxIDExNjkgMTFCNzsKK0FGM0Q7QUYzRDsxMTAxIDExNjkgMTFCODtBRjNEOzExMDEgMTE2OSAxMUI4OworQUYzRTtBRjNFOzExMDEgMTE2OSAxMUI5O0FGM0U7MTEwMSAxMTY5IDExQjk7CitBRjNGO0FGM0Y7MTEwMSAxMTY5IDExQkE7QUYzRjsxMTAxIDExNjkgMTFCQTsKK0FGNDA7QUY0MDsxMTAxIDExNjkgMTFCQjtBRjQwOzExMDEgMTE2OSAxMUJCOworQUY0MTtBRjQxOzExMDEgMTE2OSAxMUJDO0FGNDE7MTEwMSAxMTY5IDExQkM7CitBRjQyO0FGNDI7MTEwMSAxMTY5IDExQkQ7QUY0MjsxMTAxIDExNjkgMTFCRDsKK0FGNDM7QUY0MzsxMTAxIDExNjkgMTFCRTtBRjQzOzExMDEgMTE2OSAxMUJFOworQUY0NDtBRjQ0OzExMDEgMTE2OSAxMUJGO0FGNDQ7MTEwMSAxMTY5IDExQkY7CitBRjQ1O0FGNDU7MTEwMSAxMTY5IDExQzA7QUY0NTsxMTAxIDExNjkgMTFDMDsKK0FGNDY7QUY0NjsxMTAxIDExNjkgMTFDMTtBRjQ2OzExMDEgMTE2OSAxMUMxOworQUY0NztBRjQ3OzExMDEgMTE2OSAxMUMyO0FGNDc7MTEwMSAxMTY5IDExQzI7CitBRjQ4O0FGNDg7MTEwMSAxMTZBO0FGNDg7MTEwMSAxMTZBOworQUY0OTtBRjQ5OzExMDEgMTE2QSAxMUE4O0FGNDk7MTEwMSAxMTZBIDExQTg7CitBRjRBO0FGNEE7MTEwMSAxMTZBIDExQTk7QUY0QTsxMTAxIDExNkEgMTFBOTsKK0FGNEI7QUY0QjsxMTAxIDExNkEgMTFBQTtBRjRCOzExMDEgMTE2QSAxMUFBOworQUY0QztBRjRDOzExMDEgMTE2QSAxMUFCO0FGNEM7MTEwMSAxMTZBIDExQUI7CitBRjREO0FGNEQ7MTEwMSAxMTZBIDExQUM7QUY0RDsxMTAxIDExNkEgMTFBQzsKK0FGNEU7QUY0RTsxMTAxIDExNkEgMTFBRDtBRjRFOzExMDEgMTE2QSAxMUFEOworQUY0RjtBRjRGOzExMDEgMTE2QSAxMUFFO0FGNEY7MTEwMSAxMTZBIDExQUU7CitBRjUwO0FGNTA7MTEwMSAxMTZBIDExQUY7QUY1MDsxMTAxIDExNkEgMTFBRjsKK0FGNTE7QUY1MTsxMTAxIDExNkEgMTFCMDtBRjUxOzExMDEgMTE2QSAxMUIwOworQUY1MjtBRjUyOzExMDEgMTE2QSAxMUIxO0FGNTI7MTEwMSAxMTZBIDExQjE7CitBRjUzO0FGNTM7MTEwMSAxMTZBIDExQjI7QUY1MzsxMTAxIDExNkEgMTFCMjsKK0FGNTQ7QUY1NDsxMTAxIDExNkEgMTFCMztBRjU0OzExMDEgMTE2QSAxMUIzOworQUY1NTtBRjU1OzExMDEgMTE2QSAxMUI0O0FGNTU7MTEwMSAxMTZBIDExQjQ7CitBRjU2O0FGNTY7MTEwMSAxMTZBIDExQjU7QUY1NjsxMTAxIDExNkEgMTFCNTsKK0FGNTc7QUY1NzsxMTAxIDExNkEgMTFCNjtBRjU3OzExMDEgMTE2QSAxMUI2OworQUY1ODtBRjU4OzExMDEgMTE2QSAxMUI3O0FGNTg7MTEwMSAxMTZBIDExQjc7CitBRjU5O0FGNTk7MTEwMSAxMTZBIDExQjg7QUY1OTsxMTAxIDExNkEgMTFCODsKK0FGNUE7QUY1QTsxMTAxIDExNkEgMTFCOTtBRjVBOzExMDEgMTE2QSAxMUI5OworQUY1QjtBRjVCOzExMDEgMTE2QSAxMUJBO0FGNUI7MTEwMSAxMTZBIDExQkE7CitBRjVDO0FGNUM7MTEwMSAxMTZBIDExQkI7QUY1QzsxMTAxIDExNkEgMTFCQjsKK0FGNUQ7QUY1RDsxMTAxIDExNkEgMTFCQztBRjVEOzExMDEgMTE2QSAxMUJDOworQUY1RTtBRjVFOzExMDEgMTE2QSAxMUJEO0FGNUU7MTEwMSAxMTZBIDExQkQ7CitBRjVGO0FGNUY7MTEwMSAxMTZBIDExQkU7QUY1RjsxMTAxIDExNkEgMTFCRTsKK0FGNjA7QUY2MDsxMTAxIDExNkEgMTFCRjtBRjYwOzExMDEgMTE2QSAxMUJGOworQUY2MTtBRjYxOzExMDEgMTE2QSAxMUMwO0FGNjE7MTEwMSAxMTZBIDExQzA7CitBRjYyO0FGNjI7MTEwMSAxMTZBIDExQzE7QUY2MjsxMTAxIDExNkEgMTFDMTsKK0FGNjM7QUY2MzsxMTAxIDExNkEgMTFDMjtBRjYzOzExMDEgMTE2QSAxMUMyOworQUY2NDtBRjY0OzExMDEgMTE2QjtBRjY0OzExMDEgMTE2QjsKK0FGNjU7QUY2NTsxMTAxIDExNkIgMTFBODtBRjY1OzExMDEgMTE2QiAxMUE4OworQUY2NjtBRjY2OzExMDEgMTE2QiAxMUE5O0FGNjY7MTEwMSAxMTZCIDExQTk7CitBRjY3O0FGNjc7MTEwMSAxMTZCIDExQUE7QUY2NzsxMTAxIDExNkIgMTFBQTsKK0FGNjg7QUY2ODsxMTAxIDExNkIgMTFBQjtBRjY4OzExMDEgMTE2QiAxMUFCOworQUY2OTtBRjY5OzExMDEgMTE2QiAxMUFDO0FGNjk7MTEwMSAxMTZCIDExQUM7CitBRjZBO0FGNkE7MTEwMSAxMTZCIDExQUQ7QUY2QTsxMTAxIDExNkIgMTFBRDsKK0FGNkI7QUY2QjsxMTAxIDExNkIgMTFBRTtBRjZCOzExMDEgMTE2QiAxMUFFOworQUY2QztBRjZDOzExMDEgMTE2QiAxMUFGO0FGNkM7MTEwMSAxMTZCIDExQUY7CitBRjZEO0FGNkQ7MTEwMSAxMTZCIDExQjA7QUY2RDsxMTAxIDExNkIgMTFCMDsKK0FGNkU7QUY2RTsxMTAxIDExNkIgMTFCMTtBRjZFOzExMDEgMTE2QiAxMUIxOworQUY2RjtBRjZGOzExMDEgMTE2QiAxMUIyO0FGNkY7MTEwMSAxMTZCIDExQjI7CitBRjcwO0FGNzA7MTEwMSAxMTZCIDExQjM7QUY3MDsxMTAxIDExNkIgMTFCMzsKK0FGNzE7QUY3MTsxMTAxIDExNkIgMTFCNDtBRjcxOzExMDEgMTE2QiAxMUI0OworQUY3MjtBRjcyOzExMDEgMTE2QiAxMUI1O0FGNzI7MTEwMSAxMTZCIDExQjU7CitBRjczO0FGNzM7MTEwMSAxMTZCIDExQjY7QUY3MzsxMTAxIDExNkIgMTFCNjsKK0FGNzQ7QUY3NDsxMTAxIDExNkIgMTFCNztBRjc0OzExMDEgMTE2QiAxMUI3OworQUY3NTtBRjc1OzExMDEgMTE2QiAxMUI4O0FGNzU7MTEwMSAxMTZCIDExQjg7CitBRjc2O0FGNzY7MTEwMSAxMTZCIDExQjk7QUY3NjsxMTAxIDExNkIgMTFCOTsKK0FGNzc7QUY3NzsxMTAxIDExNkIgMTFCQTtBRjc3OzExMDEgMTE2QiAxMUJBOworQUY3ODtBRjc4OzExMDEgMTE2QiAxMUJCO0FGNzg7MTEwMSAxMTZCIDExQkI7CitBRjc5O0FGNzk7MTEwMSAxMTZCIDExQkM7QUY3OTsxMTAxIDExNkIgMTFCQzsKK0FGN0E7QUY3QTsxMTAxIDExNkIgMTFCRDtBRjdBOzExMDEgMTE2QiAxMUJEOworQUY3QjtBRjdCOzExMDEgMTE2QiAxMUJFO0FGN0I7MTEwMSAxMTZCIDExQkU7CitBRjdDO0FGN0M7MTEwMSAxMTZCIDExQkY7QUY3QzsxMTAxIDExNkIgMTFCRjsKK0FGN0Q7QUY3RDsxMTAxIDExNkIgMTFDMDtBRjdEOzExMDEgMTE2QiAxMUMwOworQUY3RTtBRjdFOzExMDEgMTE2QiAxMUMxO0FGN0U7MTEwMSAxMTZCIDExQzE7CitBRjdGO0FGN0Y7MTEwMSAxMTZCIDExQzI7QUY3RjsxMTAxIDExNkIgMTFDMjsKK0FGODA7QUY4MDsxMTAxIDExNkM7QUY4MDsxMTAxIDExNkM7CitBRjgxO0FGODE7MTEwMSAxMTZDIDExQTg7QUY4MTsxMTAxIDExNkMgMTFBODsKK0FGODI7QUY4MjsxMTAxIDExNkMgMTFBOTtBRjgyOzExMDEgMTE2QyAxMUE5OworQUY4MztBRjgzOzExMDEgMTE2QyAxMUFBO0FGODM7MTEwMSAxMTZDIDExQUE7CitBRjg0O0FGODQ7MTEwMSAxMTZDIDExQUI7QUY4NDsxMTAxIDExNkMgMTFBQjsKK0FGODU7QUY4NTsxMTAxIDExNkMgMTFBQztBRjg1OzExMDEgMTE2QyAxMUFDOworQUY4NjtBRjg2OzExMDEgMTE2QyAxMUFEO0FGODY7MTEwMSAxMTZDIDExQUQ7CitBRjg3O0FGODc7MTEwMSAxMTZDIDExQUU7QUY4NzsxMTAxIDExNkMgMTFBRTsKK0FGODg7QUY4ODsxMTAxIDExNkMgMTFBRjtBRjg4OzExMDEgMTE2QyAxMUFGOworQUY4OTtBRjg5OzExMDEgMTE2QyAxMUIwO0FGODk7MTEwMSAxMTZDIDExQjA7CitBRjhBO0FGOEE7MTEwMSAxMTZDIDExQjE7QUY4QTsxMTAxIDExNkMgMTFCMTsKK0FGOEI7QUY4QjsxMTAxIDExNkMgMTFCMjtBRjhCOzExMDEgMTE2QyAxMUIyOworQUY4QztBRjhDOzExMDEgMTE2QyAxMUIzO0FGOEM7MTEwMSAxMTZDIDExQjM7CitBRjhEO0FGOEQ7MTEwMSAxMTZDIDExQjQ7QUY4RDsxMTAxIDExNkMgMTFCNDsKK0FGOEU7QUY4RTsxMTAxIDExNkMgMTFCNTtBRjhFOzExMDEgMTE2QyAxMUI1OworQUY4RjtBRjhGOzExMDEgMTE2QyAxMUI2O0FGOEY7MTEwMSAxMTZDIDExQjY7CitBRjkwO0FGOTA7MTEwMSAxMTZDIDExQjc7QUY5MDsxMTAxIDExNkMgMTFCNzsKK0FGOTE7QUY5MTsxMTAxIDExNkMgMTFCODtBRjkxOzExMDEgMTE2QyAxMUI4OworQUY5MjtBRjkyOzExMDEgMTE2QyAxMUI5O0FGOTI7MTEwMSAxMTZDIDExQjk7CitBRjkzO0FGOTM7MTEwMSAxMTZDIDExQkE7QUY5MzsxMTAxIDExNkMgMTFCQTsKK0FGOTQ7QUY5NDsxMTAxIDExNkMgMTFCQjtBRjk0OzExMDEgMTE2QyAxMUJCOworQUY5NTtBRjk1OzExMDEgMTE2QyAxMUJDO0FGOTU7MTEwMSAxMTZDIDExQkM7CitBRjk2O0FGOTY7MTEwMSAxMTZDIDExQkQ7QUY5NjsxMTAxIDExNkMgMTFCRDsKK0FGOTc7QUY5NzsxMTAxIDExNkMgMTFCRTtBRjk3OzExMDEgMTE2QyAxMUJFOworQUY5ODtBRjk4OzExMDEgMTE2QyAxMUJGO0FGOTg7MTEwMSAxMTZDIDExQkY7CitBRjk5O0FGOTk7MTEwMSAxMTZDIDExQzA7QUY5OTsxMTAxIDExNkMgMTFDMDsKK0FGOUE7QUY5QTsxMTAxIDExNkMgMTFDMTtBRjlBOzExMDEgMTE2QyAxMUMxOworQUY5QjtBRjlCOzExMDEgMTE2QyAxMUMyO0FGOUI7MTEwMSAxMTZDIDExQzI7CitBRjlDO0FGOUM7MTEwMSAxMTZEO0FGOUM7MTEwMSAxMTZEOworQUY5RDtBRjlEOzExMDEgMTE2RCAxMUE4O0FGOUQ7MTEwMSAxMTZEIDExQTg7CitBRjlFO0FGOUU7MTEwMSAxMTZEIDExQTk7QUY5RTsxMTAxIDExNkQgMTFBOTsKK0FGOUY7QUY5RjsxMTAxIDExNkQgMTFBQTtBRjlGOzExMDEgMTE2RCAxMUFBOworQUZBMDtBRkEwOzExMDEgMTE2RCAxMUFCO0FGQTA7MTEwMSAxMTZEIDExQUI7CitBRkExO0FGQTE7MTEwMSAxMTZEIDExQUM7QUZBMTsxMTAxIDExNkQgMTFBQzsKK0FGQTI7QUZBMjsxMTAxIDExNkQgMTFBRDtBRkEyOzExMDEgMTE2RCAxMUFEOworQUZBMztBRkEzOzExMDEgMTE2RCAxMUFFO0FGQTM7MTEwMSAxMTZEIDExQUU7CitBRkE0O0FGQTQ7MTEwMSAxMTZEIDExQUY7QUZBNDsxMTAxIDExNkQgMTFBRjsKK0FGQTU7QUZBNTsxMTAxIDExNkQgMTFCMDtBRkE1OzExMDEgMTE2RCAxMUIwOworQUZBNjtBRkE2OzExMDEgMTE2RCAxMUIxO0FGQTY7MTEwMSAxMTZEIDExQjE7CitBRkE3O0FGQTc7MTEwMSAxMTZEIDExQjI7QUZBNzsxMTAxIDExNkQgMTFCMjsKK0FGQTg7QUZBODsxMTAxIDExNkQgMTFCMztBRkE4OzExMDEgMTE2RCAxMUIzOworQUZBOTtBRkE5OzExMDEgMTE2RCAxMUI0O0FGQTk7MTEwMSAxMTZEIDExQjQ7CitBRkFBO0FGQUE7MTEwMSAxMTZEIDExQjU7QUZBQTsxMTAxIDExNkQgMTFCNTsKK0FGQUI7QUZBQjsxMTAxIDExNkQgMTFCNjtBRkFCOzExMDEgMTE2RCAxMUI2OworQUZBQztBRkFDOzExMDEgMTE2RCAxMUI3O0FGQUM7MTEwMSAxMTZEIDExQjc7CitBRkFEO0FGQUQ7MTEwMSAxMTZEIDExQjg7QUZBRDsxMTAxIDExNkQgMTFCODsKK0FGQUU7QUZBRTsxMTAxIDExNkQgMTFCOTtBRkFFOzExMDEgMTE2RCAxMUI5OworQUZBRjtBRkFGOzExMDEgMTE2RCAxMUJBO0FGQUY7MTEwMSAxMTZEIDExQkE7CitBRkIwO0FGQjA7MTEwMSAxMTZEIDExQkI7QUZCMDsxMTAxIDExNkQgMTFCQjsKK0FGQjE7QUZCMTsxMTAxIDExNkQgMTFCQztBRkIxOzExMDEgMTE2RCAxMUJDOworQUZCMjtBRkIyOzExMDEgMTE2RCAxMUJEO0FGQjI7MTEwMSAxMTZEIDExQkQ7CitBRkIzO0FGQjM7MTEwMSAxMTZEIDExQkU7QUZCMzsxMTAxIDExNkQgMTFCRTsKK0FGQjQ7QUZCNDsxMTAxIDExNkQgMTFCRjtBRkI0OzExMDEgMTE2RCAxMUJGOworQUZCNTtBRkI1OzExMDEgMTE2RCAxMUMwO0FGQjU7MTEwMSAxMTZEIDExQzA7CitBRkI2O0FGQjY7MTEwMSAxMTZEIDExQzE7QUZCNjsxMTAxIDExNkQgMTFDMTsKK0FGQjc7QUZCNzsxMTAxIDExNkQgMTFDMjtBRkI3OzExMDEgMTE2RCAxMUMyOworQUZCODtBRkI4OzExMDEgMTE2RTtBRkI4OzExMDEgMTE2RTsKK0FGQjk7QUZCOTsxMTAxIDExNkUgMTFBODtBRkI5OzExMDEgMTE2RSAxMUE4OworQUZCQTtBRkJBOzExMDEgMTE2RSAxMUE5O0FGQkE7MTEwMSAxMTZFIDExQTk7CitBRkJCO0FGQkI7MTEwMSAxMTZFIDExQUE7QUZCQjsxMTAxIDExNkUgMTFBQTsKK0FGQkM7QUZCQzsxMTAxIDExNkUgMTFBQjtBRkJDOzExMDEgMTE2RSAxMUFCOworQUZCRDtBRkJEOzExMDEgMTE2RSAxMUFDO0FGQkQ7MTEwMSAxMTZFIDExQUM7CitBRkJFO0FGQkU7MTEwMSAxMTZFIDExQUQ7QUZCRTsxMTAxIDExNkUgMTFBRDsKK0FGQkY7QUZCRjsxMTAxIDExNkUgMTFBRTtBRkJGOzExMDEgMTE2RSAxMUFFOworQUZDMDtBRkMwOzExMDEgMTE2RSAxMUFGO0FGQzA7MTEwMSAxMTZFIDExQUY7CitBRkMxO0FGQzE7MTEwMSAxMTZFIDExQjA7QUZDMTsxMTAxIDExNkUgMTFCMDsKK0FGQzI7QUZDMjsxMTAxIDExNkUgMTFCMTtBRkMyOzExMDEgMTE2RSAxMUIxOworQUZDMztBRkMzOzExMDEgMTE2RSAxMUIyO0FGQzM7MTEwMSAxMTZFIDExQjI7CitBRkM0O0FGQzQ7MTEwMSAxMTZFIDExQjM7QUZDNDsxMTAxIDExNkUgMTFCMzsKK0FGQzU7QUZDNTsxMTAxIDExNkUgMTFCNDtBRkM1OzExMDEgMTE2RSAxMUI0OworQUZDNjtBRkM2OzExMDEgMTE2RSAxMUI1O0FGQzY7MTEwMSAxMTZFIDExQjU7CitBRkM3O0FGQzc7MTEwMSAxMTZFIDExQjY7QUZDNzsxMTAxIDExNkUgMTFCNjsKK0FGQzg7QUZDODsxMTAxIDExNkUgMTFCNztBRkM4OzExMDEgMTE2RSAxMUI3OworQUZDOTtBRkM5OzExMDEgMTE2RSAxMUI4O0FGQzk7MTEwMSAxMTZFIDExQjg7CitBRkNBO0FGQ0E7MTEwMSAxMTZFIDExQjk7QUZDQTsxMTAxIDExNkUgMTFCOTsKK0FGQ0I7QUZDQjsxMTAxIDExNkUgMTFCQTtBRkNCOzExMDEgMTE2RSAxMUJBOworQUZDQztBRkNDOzExMDEgMTE2RSAxMUJCO0FGQ0M7MTEwMSAxMTZFIDExQkI7CitBRkNEO0FGQ0Q7MTEwMSAxMTZFIDExQkM7QUZDRDsxMTAxIDExNkUgMTFCQzsKK0FGQ0U7QUZDRTsxMTAxIDExNkUgMTFCRDtBRkNFOzExMDEgMTE2RSAxMUJEOworQUZDRjtBRkNGOzExMDEgMTE2RSAxMUJFO0FGQ0Y7MTEwMSAxMTZFIDExQkU7CitBRkQwO0FGRDA7MTEwMSAxMTZFIDExQkY7QUZEMDsxMTAxIDExNkUgMTFCRjsKK0FGRDE7QUZEMTsxMTAxIDExNkUgMTFDMDtBRkQxOzExMDEgMTE2RSAxMUMwOworQUZEMjtBRkQyOzExMDEgMTE2RSAxMUMxO0FGRDI7MTEwMSAxMTZFIDExQzE7CitBRkQzO0FGRDM7MTEwMSAxMTZFIDExQzI7QUZEMzsxMTAxIDExNkUgMTFDMjsKK0FGRDQ7QUZENDsxMTAxIDExNkY7QUZENDsxMTAxIDExNkY7CitBRkQ1O0FGRDU7MTEwMSAxMTZGIDExQTg7QUZENTsxMTAxIDExNkYgMTFBODsKK0FGRDY7QUZENjsxMTAxIDExNkYgMTFBOTtBRkQ2OzExMDEgMTE2RiAxMUE5OworQUZENztBRkQ3OzExMDEgMTE2RiAxMUFBO0FGRDc7MTEwMSAxMTZGIDExQUE7CitBRkQ4O0FGRDg7MTEwMSAxMTZGIDExQUI7QUZEODsxMTAxIDExNkYgMTFBQjsKK0FGRDk7QUZEOTsxMTAxIDExNkYgMTFBQztBRkQ5OzExMDEgMTE2RiAxMUFDOworQUZEQTtBRkRBOzExMDEgMTE2RiAxMUFEO0FGREE7MTEwMSAxMTZGIDExQUQ7CitBRkRCO0FGREI7MTEwMSAxMTZGIDExQUU7QUZEQjsxMTAxIDExNkYgMTFBRTsKK0FGREM7QUZEQzsxMTAxIDExNkYgMTFBRjtBRkRDOzExMDEgMTE2RiAxMUFGOworQUZERDtBRkREOzExMDEgMTE2RiAxMUIwO0FGREQ7MTEwMSAxMTZGIDExQjA7CitBRkRFO0FGREU7MTEwMSAxMTZGIDExQjE7QUZERTsxMTAxIDExNkYgMTFCMTsKK0FGREY7QUZERjsxMTAxIDExNkYgMTFCMjtBRkRGOzExMDEgMTE2RiAxMUIyOworQUZFMDtBRkUwOzExMDEgMTE2RiAxMUIzO0FGRTA7MTEwMSAxMTZGIDExQjM7CitBRkUxO0FGRTE7MTEwMSAxMTZGIDExQjQ7QUZFMTsxMTAxIDExNkYgMTFCNDsKK0FGRTI7QUZFMjsxMTAxIDExNkYgMTFCNTtBRkUyOzExMDEgMTE2RiAxMUI1OworQUZFMztBRkUzOzExMDEgMTE2RiAxMUI2O0FGRTM7MTEwMSAxMTZGIDExQjY7CitBRkU0O0FGRTQ7MTEwMSAxMTZGIDExQjc7QUZFNDsxMTAxIDExNkYgMTFCNzsKK0FGRTU7QUZFNTsxMTAxIDExNkYgMTFCODtBRkU1OzExMDEgMTE2RiAxMUI4OworQUZFNjtBRkU2OzExMDEgMTE2RiAxMUI5O0FGRTY7MTEwMSAxMTZGIDExQjk7CitBRkU3O0FGRTc7MTEwMSAxMTZGIDExQkE7QUZFNzsxMTAxIDExNkYgMTFCQTsKK0FGRTg7QUZFODsxMTAxIDExNkYgMTFCQjtBRkU4OzExMDEgMTE2RiAxMUJCOworQUZFOTtBRkU5OzExMDEgMTE2RiAxMUJDO0FGRTk7MTEwMSAxMTZGIDExQkM7CitBRkVBO0FGRUE7MTEwMSAxMTZGIDExQkQ7QUZFQTsxMTAxIDExNkYgMTFCRDsKK0FGRUI7QUZFQjsxMTAxIDExNkYgMTFCRTtBRkVCOzExMDEgMTE2RiAxMUJFOworQUZFQztBRkVDOzExMDEgMTE2RiAxMUJGO0FGRUM7MTEwMSAxMTZGIDExQkY7CitBRkVEO0FGRUQ7MTEwMSAxMTZGIDExQzA7QUZFRDsxMTAxIDExNkYgMTFDMDsKK0FGRUU7QUZFRTsxMTAxIDExNkYgMTFDMTtBRkVFOzExMDEgMTE2RiAxMUMxOworQUZFRjtBRkVGOzExMDEgMTE2RiAxMUMyO0FGRUY7MTEwMSAxMTZGIDExQzI7CitBRkYwO0FGRjA7MTEwMSAxMTcwO0FGRjA7MTEwMSAxMTcwOworQUZGMTtBRkYxOzExMDEgMTE3MCAxMUE4O0FGRjE7MTEwMSAxMTcwIDExQTg7CitBRkYyO0FGRjI7MTEwMSAxMTcwIDExQTk7QUZGMjsxMTAxIDExNzAgMTFBOTsKK0FGRjM7QUZGMzsxMTAxIDExNzAgMTFBQTtBRkYzOzExMDEgMTE3MCAxMUFBOworQUZGNDtBRkY0OzExMDEgMTE3MCAxMUFCO0FGRjQ7MTEwMSAxMTcwIDExQUI7CitBRkY1O0FGRjU7MTEwMSAxMTcwIDExQUM7QUZGNTsxMTAxIDExNzAgMTFBQzsKK0FGRjY7QUZGNjsxMTAxIDExNzAgMTFBRDtBRkY2OzExMDEgMTE3MCAxMUFEOworQUZGNztBRkY3OzExMDEgMTE3MCAxMUFFO0FGRjc7MTEwMSAxMTcwIDExQUU7CitBRkY4O0FGRjg7MTEwMSAxMTcwIDExQUY7QUZGODsxMTAxIDExNzAgMTFBRjsKK0FGRjk7QUZGOTsxMTAxIDExNzAgMTFCMDtBRkY5OzExMDEgMTE3MCAxMUIwOworQUZGQTtBRkZBOzExMDEgMTE3MCAxMUIxO0FGRkE7MTEwMSAxMTcwIDExQjE7CitBRkZCO0FGRkI7MTEwMSAxMTcwIDExQjI7QUZGQjsxMTAxIDExNzAgMTFCMjsKK0FGRkM7QUZGQzsxMTAxIDExNzAgMTFCMztBRkZDOzExMDEgMTE3MCAxMUIzOworQUZGRDtBRkZEOzExMDEgMTE3MCAxMUI0O0FGRkQ7MTEwMSAxMTcwIDExQjQ7CitBRkZFO0FGRkU7MTEwMSAxMTcwIDExQjU7QUZGRTsxMTAxIDExNzAgMTFCNTsKK0FGRkY7QUZGRjsxMTAxIDExNzAgMTFCNjtBRkZGOzExMDEgMTE3MCAxMUI2OworQjAwMDtCMDAwOzExMDEgMTE3MCAxMUI3O0IwMDA7MTEwMSAxMTcwIDExQjc7CitCMDAxO0IwMDE7MTEwMSAxMTcwIDExQjg7QjAwMTsxMTAxIDExNzAgMTFCODsKK0IwMDI7QjAwMjsxMTAxIDExNzAgMTFCOTtCMDAyOzExMDEgMTE3MCAxMUI5OworQjAwMztCMDAzOzExMDEgMTE3MCAxMUJBO0IwMDM7MTEwMSAxMTcwIDExQkE7CitCMDA0O0IwMDQ7MTEwMSAxMTcwIDExQkI7QjAwNDsxMTAxIDExNzAgMTFCQjsKK0IwMDU7QjAwNTsxMTAxIDExNzAgMTFCQztCMDA1OzExMDEgMTE3MCAxMUJDOworQjAwNjtCMDA2OzExMDEgMTE3MCAxMUJEO0IwMDY7MTEwMSAxMTcwIDExQkQ7CitCMDA3O0IwMDc7MTEwMSAxMTcwIDExQkU7QjAwNzsxMTAxIDExNzAgMTFCRTsKK0IwMDg7QjAwODsxMTAxIDExNzAgMTFCRjtCMDA4OzExMDEgMTE3MCAxMUJGOworQjAwOTtCMDA5OzExMDEgMTE3MCAxMUMwO0IwMDk7MTEwMSAxMTcwIDExQzA7CitCMDBBO0IwMEE7MTEwMSAxMTcwIDExQzE7QjAwQTsxMTAxIDExNzAgMTFDMTsKK0IwMEI7QjAwQjsxMTAxIDExNzAgMTFDMjtCMDBCOzExMDEgMTE3MCAxMUMyOworQjAwQztCMDBDOzExMDEgMTE3MTtCMDBDOzExMDEgMTE3MTsKK0IwMEQ7QjAwRDsxMTAxIDExNzEgMTFBODtCMDBEOzExMDEgMTE3MSAxMUE4OworQjAwRTtCMDBFOzExMDEgMTE3MSAxMUE5O0IwMEU7MTEwMSAxMTcxIDExQTk7CitCMDBGO0IwMEY7MTEwMSAxMTcxIDExQUE7QjAwRjsxMTAxIDExNzEgMTFBQTsKK0IwMTA7QjAxMDsxMTAxIDExNzEgMTFBQjtCMDEwOzExMDEgMTE3MSAxMUFCOworQjAxMTtCMDExOzExMDEgMTE3MSAxMUFDO0IwMTE7MTEwMSAxMTcxIDExQUM7CitCMDEyO0IwMTI7MTEwMSAxMTcxIDExQUQ7QjAxMjsxMTAxIDExNzEgMTFBRDsKK0IwMTM7QjAxMzsxMTAxIDExNzEgMTFBRTtCMDEzOzExMDEgMTE3MSAxMUFFOworQjAxNDtCMDE0OzExMDEgMTE3MSAxMUFGO0IwMTQ7MTEwMSAxMTcxIDExQUY7CitCMDE1O0IwMTU7MTEwMSAxMTcxIDExQjA7QjAxNTsxMTAxIDExNzEgMTFCMDsKK0IwMTY7QjAxNjsxMTAxIDExNzEgMTFCMTtCMDE2OzExMDEgMTE3MSAxMUIxOworQjAxNztCMDE3OzExMDEgMTE3MSAxMUIyO0IwMTc7MTEwMSAxMTcxIDExQjI7CitCMDE4O0IwMTg7MTEwMSAxMTcxIDExQjM7QjAxODsxMTAxIDExNzEgMTFCMzsKK0IwMTk7QjAxOTsxMTAxIDExNzEgMTFCNDtCMDE5OzExMDEgMTE3MSAxMUI0OworQjAxQTtCMDFBOzExMDEgMTE3MSAxMUI1O0IwMUE7MTEwMSAxMTcxIDExQjU7CitCMDFCO0IwMUI7MTEwMSAxMTcxIDExQjY7QjAxQjsxMTAxIDExNzEgMTFCNjsKK0IwMUM7QjAxQzsxMTAxIDExNzEgMTFCNztCMDFDOzExMDEgMTE3MSAxMUI3OworQjAxRDtCMDFEOzExMDEgMTE3MSAxMUI4O0IwMUQ7MTEwMSAxMTcxIDExQjg7CitCMDFFO0IwMUU7MTEwMSAxMTcxIDExQjk7QjAxRTsxMTAxIDExNzEgMTFCOTsKK0IwMUY7QjAxRjsxMTAxIDExNzEgMTFCQTtCMDFGOzExMDEgMTE3MSAxMUJBOworQjAyMDtCMDIwOzExMDEgMTE3MSAxMUJCO0IwMjA7MTEwMSAxMTcxIDExQkI7CitCMDIxO0IwMjE7MTEwMSAxMTcxIDExQkM7QjAyMTsxMTAxIDExNzEgMTFCQzsKK0IwMjI7QjAyMjsxMTAxIDExNzEgMTFCRDtCMDIyOzExMDEgMTE3MSAxMUJEOworQjAyMztCMDIzOzExMDEgMTE3MSAxMUJFO0IwMjM7MTEwMSAxMTcxIDExQkU7CitCMDI0O0IwMjQ7MTEwMSAxMTcxIDExQkY7QjAyNDsxMTAxIDExNzEgMTFCRjsKK0IwMjU7QjAyNTsxMTAxIDExNzEgMTFDMDtCMDI1OzExMDEgMTE3MSAxMUMwOworQjAyNjtCMDI2OzExMDEgMTE3MSAxMUMxO0IwMjY7MTEwMSAxMTcxIDExQzE7CitCMDI3O0IwMjc7MTEwMSAxMTcxIDExQzI7QjAyNzsxMTAxIDExNzEgMTFDMjsKK0IwMjg7QjAyODsxMTAxIDExNzI7QjAyODsxMTAxIDExNzI7CitCMDI5O0IwMjk7MTEwMSAxMTcyIDExQTg7QjAyOTsxMTAxIDExNzIgMTFBODsKK0IwMkE7QjAyQTsxMTAxIDExNzIgMTFBOTtCMDJBOzExMDEgMTE3MiAxMUE5OworQjAyQjtCMDJCOzExMDEgMTE3MiAxMUFBO0IwMkI7MTEwMSAxMTcyIDExQUE7CitCMDJDO0IwMkM7MTEwMSAxMTcyIDExQUI7QjAyQzsxMTAxIDExNzIgMTFBQjsKK0IwMkQ7QjAyRDsxMTAxIDExNzIgMTFBQztCMDJEOzExMDEgMTE3MiAxMUFDOworQjAyRTtCMDJFOzExMDEgMTE3MiAxMUFEO0IwMkU7MTEwMSAxMTcyIDExQUQ7CitCMDJGO0IwMkY7MTEwMSAxMTcyIDExQUU7QjAyRjsxMTAxIDExNzIgMTFBRTsKK0IwMzA7QjAzMDsxMTAxIDExNzIgMTFBRjtCMDMwOzExMDEgMTE3MiAxMUFGOworQjAzMTtCMDMxOzExMDEgMTE3MiAxMUIwO0IwMzE7MTEwMSAxMTcyIDExQjA7CitCMDMyO0IwMzI7MTEwMSAxMTcyIDExQjE7QjAzMjsxMTAxIDExNzIgMTFCMTsKK0IwMzM7QjAzMzsxMTAxIDExNzIgMTFCMjtCMDMzOzExMDEgMTE3MiAxMUIyOworQjAzNDtCMDM0OzExMDEgMTE3MiAxMUIzO0IwMzQ7MTEwMSAxMTcyIDExQjM7CitCMDM1O0IwMzU7MTEwMSAxMTcyIDExQjQ7QjAzNTsxMTAxIDExNzIgMTFCNDsKK0IwMzY7QjAzNjsxMTAxIDExNzIgMTFCNTtCMDM2OzExMDEgMTE3MiAxMUI1OworQjAzNztCMDM3OzExMDEgMTE3MiAxMUI2O0IwMzc7MTEwMSAxMTcyIDExQjY7CitCMDM4O0IwMzg7MTEwMSAxMTcyIDExQjc7QjAzODsxMTAxIDExNzIgMTFCNzsKK0IwMzk7QjAzOTsxMTAxIDExNzIgMTFCODtCMDM5OzExMDEgMTE3MiAxMUI4OworQjAzQTtCMDNBOzExMDEgMTE3MiAxMUI5O0IwM0E7MTEwMSAxMTcyIDExQjk7CitCMDNCO0IwM0I7MTEwMSAxMTcyIDExQkE7QjAzQjsxMTAxIDExNzIgMTFCQTsKK0IwM0M7QjAzQzsxMTAxIDExNzIgMTFCQjtCMDNDOzExMDEgMTE3MiAxMUJCOworQjAzRDtCMDNEOzExMDEgMTE3MiAxMUJDO0IwM0Q7MTEwMSAxMTcyIDExQkM7CitCMDNFO0IwM0U7MTEwMSAxMTcyIDExQkQ7QjAzRTsxMTAxIDExNzIgMTFCRDsKK0IwM0Y7QjAzRjsxMTAxIDExNzIgMTFCRTtCMDNGOzExMDEgMTE3MiAxMUJFOworQjA0MDtCMDQwOzExMDEgMTE3MiAxMUJGO0IwNDA7MTEwMSAxMTcyIDExQkY7CitCMDQxO0IwNDE7MTEwMSAxMTcyIDExQzA7QjA0MTsxMTAxIDExNzIgMTFDMDsKK0IwNDI7QjA0MjsxMTAxIDExNzIgMTFDMTtCMDQyOzExMDEgMTE3MiAxMUMxOworQjA0MztCMDQzOzExMDEgMTE3MiAxMUMyO0IwNDM7MTEwMSAxMTcyIDExQzI7CitCMDQ0O0IwNDQ7MTEwMSAxMTczO0IwNDQ7MTEwMSAxMTczOworQjA0NTtCMDQ1OzExMDEgMTE3MyAxMUE4O0IwNDU7MTEwMSAxMTczIDExQTg7CitCMDQ2O0IwNDY7MTEwMSAxMTczIDExQTk7QjA0NjsxMTAxIDExNzMgMTFBOTsKK0IwNDc7QjA0NzsxMTAxIDExNzMgMTFBQTtCMDQ3OzExMDEgMTE3MyAxMUFBOworQjA0ODtCMDQ4OzExMDEgMTE3MyAxMUFCO0IwNDg7MTEwMSAxMTczIDExQUI7CitCMDQ5O0IwNDk7MTEwMSAxMTczIDExQUM7QjA0OTsxMTAxIDExNzMgMTFBQzsKK0IwNEE7QjA0QTsxMTAxIDExNzMgMTFBRDtCMDRBOzExMDEgMTE3MyAxMUFEOworQjA0QjtCMDRCOzExMDEgMTE3MyAxMUFFO0IwNEI7MTEwMSAxMTczIDExQUU7CitCMDRDO0IwNEM7MTEwMSAxMTczIDExQUY7QjA0QzsxMTAxIDExNzMgMTFBRjsKK0IwNEQ7QjA0RDsxMTAxIDExNzMgMTFCMDtCMDREOzExMDEgMTE3MyAxMUIwOworQjA0RTtCMDRFOzExMDEgMTE3MyAxMUIxO0IwNEU7MTEwMSAxMTczIDExQjE7CitCMDRGO0IwNEY7MTEwMSAxMTczIDExQjI7QjA0RjsxMTAxIDExNzMgMTFCMjsKK0IwNTA7QjA1MDsxMTAxIDExNzMgMTFCMztCMDUwOzExMDEgMTE3MyAxMUIzOworQjA1MTtCMDUxOzExMDEgMTE3MyAxMUI0O0IwNTE7MTEwMSAxMTczIDExQjQ7CitCMDUyO0IwNTI7MTEwMSAxMTczIDExQjU7QjA1MjsxMTAxIDExNzMgMTFCNTsKK0IwNTM7QjA1MzsxMTAxIDExNzMgMTFCNjtCMDUzOzExMDEgMTE3MyAxMUI2OworQjA1NDtCMDU0OzExMDEgMTE3MyAxMUI3O0IwNTQ7MTEwMSAxMTczIDExQjc7CitCMDU1O0IwNTU7MTEwMSAxMTczIDExQjg7QjA1NTsxMTAxIDExNzMgMTFCODsKK0IwNTY7QjA1NjsxMTAxIDExNzMgMTFCOTtCMDU2OzExMDEgMTE3MyAxMUI5OworQjA1NztCMDU3OzExMDEgMTE3MyAxMUJBO0IwNTc7MTEwMSAxMTczIDExQkE7CitCMDU4O0IwNTg7MTEwMSAxMTczIDExQkI7QjA1ODsxMTAxIDExNzMgMTFCQjsKK0IwNTk7QjA1OTsxMTAxIDExNzMgMTFCQztCMDU5OzExMDEgMTE3MyAxMUJDOworQjA1QTtCMDVBOzExMDEgMTE3MyAxMUJEO0IwNUE7MTEwMSAxMTczIDExQkQ7CitCMDVCO0IwNUI7MTEwMSAxMTczIDExQkU7QjA1QjsxMTAxIDExNzMgMTFCRTsKK0IwNUM7QjA1QzsxMTAxIDExNzMgMTFCRjtCMDVDOzExMDEgMTE3MyAxMUJGOworQjA1RDtCMDVEOzExMDEgMTE3MyAxMUMwO0IwNUQ7MTEwMSAxMTczIDExQzA7CitCMDVFO0IwNUU7MTEwMSAxMTczIDExQzE7QjA1RTsxMTAxIDExNzMgMTFDMTsKK0IwNUY7QjA1RjsxMTAxIDExNzMgMTFDMjtCMDVGOzExMDEgMTE3MyAxMUMyOworQjA2MDtCMDYwOzExMDEgMTE3NDtCMDYwOzExMDEgMTE3NDsKK0IwNjE7QjA2MTsxMTAxIDExNzQgMTFBODtCMDYxOzExMDEgMTE3NCAxMUE4OworQjA2MjtCMDYyOzExMDEgMTE3NCAxMUE5O0IwNjI7MTEwMSAxMTc0IDExQTk7CitCMDYzO0IwNjM7MTEwMSAxMTc0IDExQUE7QjA2MzsxMTAxIDExNzQgMTFBQTsKK0IwNjQ7QjA2NDsxMTAxIDExNzQgMTFBQjtCMDY0OzExMDEgMTE3NCAxMUFCOworQjA2NTtCMDY1OzExMDEgMTE3NCAxMUFDO0IwNjU7MTEwMSAxMTc0IDExQUM7CitCMDY2O0IwNjY7MTEwMSAxMTc0IDExQUQ7QjA2NjsxMTAxIDExNzQgMTFBRDsKK0IwNjc7QjA2NzsxMTAxIDExNzQgMTFBRTtCMDY3OzExMDEgMTE3NCAxMUFFOworQjA2ODtCMDY4OzExMDEgMTE3NCAxMUFGO0IwNjg7MTEwMSAxMTc0IDExQUY7CitCMDY5O0IwNjk7MTEwMSAxMTc0IDExQjA7QjA2OTsxMTAxIDExNzQgMTFCMDsKK0IwNkE7QjA2QTsxMTAxIDExNzQgMTFCMTtCMDZBOzExMDEgMTE3NCAxMUIxOworQjA2QjtCMDZCOzExMDEgMTE3NCAxMUIyO0IwNkI7MTEwMSAxMTc0IDExQjI7CitCMDZDO0IwNkM7MTEwMSAxMTc0IDExQjM7QjA2QzsxMTAxIDExNzQgMTFCMzsKK0IwNkQ7QjA2RDsxMTAxIDExNzQgMTFCNDtCMDZEOzExMDEgMTE3NCAxMUI0OworQjA2RTtCMDZFOzExMDEgMTE3NCAxMUI1O0IwNkU7MTEwMSAxMTc0IDExQjU7CitCMDZGO0IwNkY7MTEwMSAxMTc0IDExQjY7QjA2RjsxMTAxIDExNzQgMTFCNjsKK0IwNzA7QjA3MDsxMTAxIDExNzQgMTFCNztCMDcwOzExMDEgMTE3NCAxMUI3OworQjA3MTtCMDcxOzExMDEgMTE3NCAxMUI4O0IwNzE7MTEwMSAxMTc0IDExQjg7CitCMDcyO0IwNzI7MTEwMSAxMTc0IDExQjk7QjA3MjsxMTAxIDExNzQgMTFCOTsKK0IwNzM7QjA3MzsxMTAxIDExNzQgMTFCQTtCMDczOzExMDEgMTE3NCAxMUJBOworQjA3NDtCMDc0OzExMDEgMTE3NCAxMUJCO0IwNzQ7MTEwMSAxMTc0IDExQkI7CitCMDc1O0IwNzU7MTEwMSAxMTc0IDExQkM7QjA3NTsxMTAxIDExNzQgMTFCQzsKK0IwNzY7QjA3NjsxMTAxIDExNzQgMTFCRDtCMDc2OzExMDEgMTE3NCAxMUJEOworQjA3NztCMDc3OzExMDEgMTE3NCAxMUJFO0IwNzc7MTEwMSAxMTc0IDExQkU7CitCMDc4O0IwNzg7MTEwMSAxMTc0IDExQkY7QjA3ODsxMTAxIDExNzQgMTFCRjsKK0IwNzk7QjA3OTsxMTAxIDExNzQgMTFDMDtCMDc5OzExMDEgMTE3NCAxMUMwOworQjA3QTtCMDdBOzExMDEgMTE3NCAxMUMxO0IwN0E7MTEwMSAxMTc0IDExQzE7CitCMDdCO0IwN0I7MTEwMSAxMTc0IDExQzI7QjA3QjsxMTAxIDExNzQgMTFDMjsKK0IwN0M7QjA3QzsxMTAxIDExNzU7QjA3QzsxMTAxIDExNzU7CitCMDdEO0IwN0Q7MTEwMSAxMTc1IDExQTg7QjA3RDsxMTAxIDExNzUgMTFBODsKK0IwN0U7QjA3RTsxMTAxIDExNzUgMTFBOTtCMDdFOzExMDEgMTE3NSAxMUE5OworQjA3RjtCMDdGOzExMDEgMTE3NSAxMUFBO0IwN0Y7MTEwMSAxMTc1IDExQUE7CitCMDgwO0IwODA7MTEwMSAxMTc1IDExQUI7QjA4MDsxMTAxIDExNzUgMTFBQjsKK0IwODE7QjA4MTsxMTAxIDExNzUgMTFBQztCMDgxOzExMDEgMTE3NSAxMUFDOworQjA4MjtCMDgyOzExMDEgMTE3NSAxMUFEO0IwODI7MTEwMSAxMTc1IDExQUQ7CitCMDgzO0IwODM7MTEwMSAxMTc1IDExQUU7QjA4MzsxMTAxIDExNzUgMTFBRTsKK0IwODQ7QjA4NDsxMTAxIDExNzUgMTFBRjtCMDg0OzExMDEgMTE3NSAxMUFGOworQjA4NTtCMDg1OzExMDEgMTE3NSAxMUIwO0IwODU7MTEwMSAxMTc1IDExQjA7CitCMDg2O0IwODY7MTEwMSAxMTc1IDExQjE7QjA4NjsxMTAxIDExNzUgMTFCMTsKK0IwODc7QjA4NzsxMTAxIDExNzUgMTFCMjtCMDg3OzExMDEgMTE3NSAxMUIyOworQjA4ODtCMDg4OzExMDEgMTE3NSAxMUIzO0IwODg7MTEwMSAxMTc1IDExQjM7CitCMDg5O0IwODk7MTEwMSAxMTc1IDExQjQ7QjA4OTsxMTAxIDExNzUgMTFCNDsKK0IwOEE7QjA4QTsxMTAxIDExNzUgMTFCNTtCMDhBOzExMDEgMTE3NSAxMUI1OworQjA4QjtCMDhCOzExMDEgMTE3NSAxMUI2O0IwOEI7MTEwMSAxMTc1IDExQjY7CitCMDhDO0IwOEM7MTEwMSAxMTc1IDExQjc7QjA4QzsxMTAxIDExNzUgMTFCNzsKK0IwOEQ7QjA4RDsxMTAxIDExNzUgMTFCODtCMDhEOzExMDEgMTE3NSAxMUI4OworQjA4RTtCMDhFOzExMDEgMTE3NSAxMUI5O0IwOEU7MTEwMSAxMTc1IDExQjk7CitCMDhGO0IwOEY7MTEwMSAxMTc1IDExQkE7QjA4RjsxMTAxIDExNzUgMTFCQTsKK0IwOTA7QjA5MDsxMTAxIDExNzUgMTFCQjtCMDkwOzExMDEgMTE3NSAxMUJCOworQjA5MTtCMDkxOzExMDEgMTE3NSAxMUJDO0IwOTE7MTEwMSAxMTc1IDExQkM7CitCMDkyO0IwOTI7MTEwMSAxMTc1IDExQkQ7QjA5MjsxMTAxIDExNzUgMTFCRDsKK0IwOTM7QjA5MzsxMTAxIDExNzUgMTFCRTtCMDkzOzExMDEgMTE3NSAxMUJFOworQjA5NDtCMDk0OzExMDEgMTE3NSAxMUJGO0IwOTQ7MTEwMSAxMTc1IDExQkY7CitCMDk1O0IwOTU7MTEwMSAxMTc1IDExQzA7QjA5NTsxMTAxIDExNzUgMTFDMDsKK0IwOTY7QjA5NjsxMTAxIDExNzUgMTFDMTtCMDk2OzExMDEgMTE3NSAxMUMxOworQjA5NztCMDk3OzExMDEgMTE3NSAxMUMyO0IwOTc7MTEwMSAxMTc1IDExQzI7CitCMDk4O0IwOTg7MTEwMiAxMTYxO0IwOTg7MTEwMiAxMTYxOworQjA5OTtCMDk5OzExMDIgMTE2MSAxMUE4O0IwOTk7MTEwMiAxMTYxIDExQTg7CitCMDlBO0IwOUE7MTEwMiAxMTYxIDExQTk7QjA5QTsxMTAyIDExNjEgMTFBOTsKK0IwOUI7QjA5QjsxMTAyIDExNjEgMTFBQTtCMDlCOzExMDIgMTE2MSAxMUFBOworQjA5QztCMDlDOzExMDIgMTE2MSAxMUFCO0IwOUM7MTEwMiAxMTYxIDExQUI7CitCMDlEO0IwOUQ7MTEwMiAxMTYxIDExQUM7QjA5RDsxMTAyIDExNjEgMTFBQzsKK0IwOUU7QjA5RTsxMTAyIDExNjEgMTFBRDtCMDlFOzExMDIgMTE2MSAxMUFEOworQjA5RjtCMDlGOzExMDIgMTE2MSAxMUFFO0IwOUY7MTEwMiAxMTYxIDExQUU7CitCMEEwO0IwQTA7MTEwMiAxMTYxIDExQUY7QjBBMDsxMTAyIDExNjEgMTFBRjsKK0IwQTE7QjBBMTsxMTAyIDExNjEgMTFCMDtCMEExOzExMDIgMTE2MSAxMUIwOworQjBBMjtCMEEyOzExMDIgMTE2MSAxMUIxO0IwQTI7MTEwMiAxMTYxIDExQjE7CitCMEEzO0IwQTM7MTEwMiAxMTYxIDExQjI7QjBBMzsxMTAyIDExNjEgMTFCMjsKK0IwQTQ7QjBBNDsxMTAyIDExNjEgMTFCMztCMEE0OzExMDIgMTE2MSAxMUIzOworQjBBNTtCMEE1OzExMDIgMTE2MSAxMUI0O0IwQTU7MTEwMiAxMTYxIDExQjQ7CitCMEE2O0IwQTY7MTEwMiAxMTYxIDExQjU7QjBBNjsxMTAyIDExNjEgMTFCNTsKK0IwQTc7QjBBNzsxMTAyIDExNjEgMTFCNjtCMEE3OzExMDIgMTE2MSAxMUI2OworQjBBODtCMEE4OzExMDIgMTE2MSAxMUI3O0IwQTg7MTEwMiAxMTYxIDExQjc7CitCMEE5O0IwQTk7MTEwMiAxMTYxIDExQjg7QjBBOTsxMTAyIDExNjEgMTFCODsKK0IwQUE7QjBBQTsxMTAyIDExNjEgMTFCOTtCMEFBOzExMDIgMTE2MSAxMUI5OworQjBBQjtCMEFCOzExMDIgMTE2MSAxMUJBO0IwQUI7MTEwMiAxMTYxIDExQkE7CitCMEFDO0IwQUM7MTEwMiAxMTYxIDExQkI7QjBBQzsxMTAyIDExNjEgMTFCQjsKK0IwQUQ7QjBBRDsxMTAyIDExNjEgMTFCQztCMEFEOzExMDIgMTE2MSAxMUJDOworQjBBRTtCMEFFOzExMDIgMTE2MSAxMUJEO0IwQUU7MTEwMiAxMTYxIDExQkQ7CitCMEFGO0IwQUY7MTEwMiAxMTYxIDExQkU7QjBBRjsxMTAyIDExNjEgMTFCRTsKK0IwQjA7QjBCMDsxMTAyIDExNjEgMTFCRjtCMEIwOzExMDIgMTE2MSAxMUJGOworQjBCMTtCMEIxOzExMDIgMTE2MSAxMUMwO0IwQjE7MTEwMiAxMTYxIDExQzA7CitCMEIyO0IwQjI7MTEwMiAxMTYxIDExQzE7QjBCMjsxMTAyIDExNjEgMTFDMTsKK0IwQjM7QjBCMzsxMTAyIDExNjEgMTFDMjtCMEIzOzExMDIgMTE2MSAxMUMyOworQjBCNDtCMEI0OzExMDIgMTE2MjtCMEI0OzExMDIgMTE2MjsKK0IwQjU7QjBCNTsxMTAyIDExNjIgMTFBODtCMEI1OzExMDIgMTE2MiAxMUE4OworQjBCNjtCMEI2OzExMDIgMTE2MiAxMUE5O0IwQjY7MTEwMiAxMTYyIDExQTk7CitCMEI3O0IwQjc7MTEwMiAxMTYyIDExQUE7QjBCNzsxMTAyIDExNjIgMTFBQTsKK0IwQjg7QjBCODsxMTAyIDExNjIgMTFBQjtCMEI4OzExMDIgMTE2MiAxMUFCOworQjBCOTtCMEI5OzExMDIgMTE2MiAxMUFDO0IwQjk7MTEwMiAxMTYyIDExQUM7CitCMEJBO0IwQkE7MTEwMiAxMTYyIDExQUQ7QjBCQTsxMTAyIDExNjIgMTFBRDsKK0IwQkI7QjBCQjsxMTAyIDExNjIgMTFBRTtCMEJCOzExMDIgMTE2MiAxMUFFOworQjBCQztCMEJDOzExMDIgMTE2MiAxMUFGO0IwQkM7MTEwMiAxMTYyIDExQUY7CitCMEJEO0IwQkQ7MTEwMiAxMTYyIDExQjA7QjBCRDsxMTAyIDExNjIgMTFCMDsKK0IwQkU7QjBCRTsxMTAyIDExNjIgMTFCMTtCMEJFOzExMDIgMTE2MiAxMUIxOworQjBCRjtCMEJGOzExMDIgMTE2MiAxMUIyO0IwQkY7MTEwMiAxMTYyIDExQjI7CitCMEMwO0IwQzA7MTEwMiAxMTYyIDExQjM7QjBDMDsxMTAyIDExNjIgMTFCMzsKK0IwQzE7QjBDMTsxMTAyIDExNjIgMTFCNDtCMEMxOzExMDIgMTE2MiAxMUI0OworQjBDMjtCMEMyOzExMDIgMTE2MiAxMUI1O0IwQzI7MTEwMiAxMTYyIDExQjU7CitCMEMzO0IwQzM7MTEwMiAxMTYyIDExQjY7QjBDMzsxMTAyIDExNjIgMTFCNjsKK0IwQzQ7QjBDNDsxMTAyIDExNjIgMTFCNztCMEM0OzExMDIgMTE2MiAxMUI3OworQjBDNTtCMEM1OzExMDIgMTE2MiAxMUI4O0IwQzU7MTEwMiAxMTYyIDExQjg7CitCMEM2O0IwQzY7MTEwMiAxMTYyIDExQjk7QjBDNjsxMTAyIDExNjIgMTFCOTsKK0IwQzc7QjBDNzsxMTAyIDExNjIgMTFCQTtCMEM3OzExMDIgMTE2MiAxMUJBOworQjBDODtCMEM4OzExMDIgMTE2MiAxMUJCO0IwQzg7MTEwMiAxMTYyIDExQkI7CitCMEM5O0IwQzk7MTEwMiAxMTYyIDExQkM7QjBDOTsxMTAyIDExNjIgMTFCQzsKK0IwQ0E7QjBDQTsxMTAyIDExNjIgMTFCRDtCMENBOzExMDIgMTE2MiAxMUJEOworQjBDQjtCMENCOzExMDIgMTE2MiAxMUJFO0IwQ0I7MTEwMiAxMTYyIDExQkU7CitCMENDO0IwQ0M7MTEwMiAxMTYyIDExQkY7QjBDQzsxMTAyIDExNjIgMTFCRjsKK0IwQ0Q7QjBDRDsxMTAyIDExNjIgMTFDMDtCMENEOzExMDIgMTE2MiAxMUMwOworQjBDRTtCMENFOzExMDIgMTE2MiAxMUMxO0IwQ0U7MTEwMiAxMTYyIDExQzE7CitCMENGO0IwQ0Y7MTEwMiAxMTYyIDExQzI7QjBDRjsxMTAyIDExNjIgMTFDMjsKK0IwRDA7QjBEMDsxMTAyIDExNjM7QjBEMDsxMTAyIDExNjM7CitCMEQxO0IwRDE7MTEwMiAxMTYzIDExQTg7QjBEMTsxMTAyIDExNjMgMTFBODsKK0IwRDI7QjBEMjsxMTAyIDExNjMgMTFBOTtCMEQyOzExMDIgMTE2MyAxMUE5OworQjBEMztCMEQzOzExMDIgMTE2MyAxMUFBO0IwRDM7MTEwMiAxMTYzIDExQUE7CitCMEQ0O0IwRDQ7MTEwMiAxMTYzIDExQUI7QjBENDsxMTAyIDExNjMgMTFBQjsKK0IwRDU7QjBENTsxMTAyIDExNjMgMTFBQztCMEQ1OzExMDIgMTE2MyAxMUFDOworQjBENjtCMEQ2OzExMDIgMTE2MyAxMUFEO0IwRDY7MTEwMiAxMTYzIDExQUQ7CitCMEQ3O0IwRDc7MTEwMiAxMTYzIDExQUU7QjBENzsxMTAyIDExNjMgMTFBRTsKK0IwRDg7QjBEODsxMTAyIDExNjMgMTFBRjtCMEQ4OzExMDIgMTE2MyAxMUFGOworQjBEOTtCMEQ5OzExMDIgMTE2MyAxMUIwO0IwRDk7MTEwMiAxMTYzIDExQjA7CitCMERBO0IwREE7MTEwMiAxMTYzIDExQjE7QjBEQTsxMTAyIDExNjMgMTFCMTsKK0IwREI7QjBEQjsxMTAyIDExNjMgMTFCMjtCMERCOzExMDIgMTE2MyAxMUIyOworQjBEQztCMERDOzExMDIgMTE2MyAxMUIzO0IwREM7MTEwMiAxMTYzIDExQjM7CitCMEREO0IwREQ7MTEwMiAxMTYzIDExQjQ7QjBERDsxMTAyIDExNjMgMTFCNDsKK0IwREU7QjBERTsxMTAyIDExNjMgMTFCNTtCMERFOzExMDIgMTE2MyAxMUI1OworQjBERjtCMERGOzExMDIgMTE2MyAxMUI2O0IwREY7MTEwMiAxMTYzIDExQjY7CitCMEUwO0IwRTA7MTEwMiAxMTYzIDExQjc7QjBFMDsxMTAyIDExNjMgMTFCNzsKK0IwRTE7QjBFMTsxMTAyIDExNjMgMTFCODtCMEUxOzExMDIgMTE2MyAxMUI4OworQjBFMjtCMEUyOzExMDIgMTE2MyAxMUI5O0IwRTI7MTEwMiAxMTYzIDExQjk7CitCMEUzO0IwRTM7MTEwMiAxMTYzIDExQkE7QjBFMzsxMTAyIDExNjMgMTFCQTsKK0IwRTQ7QjBFNDsxMTAyIDExNjMgMTFCQjtCMEU0OzExMDIgMTE2MyAxMUJCOworQjBFNTtCMEU1OzExMDIgMTE2MyAxMUJDO0IwRTU7MTEwMiAxMTYzIDExQkM7CitCMEU2O0IwRTY7MTEwMiAxMTYzIDExQkQ7QjBFNjsxMTAyIDExNjMgMTFCRDsKK0IwRTc7QjBFNzsxMTAyIDExNjMgMTFCRTtCMEU3OzExMDIgMTE2MyAxMUJFOworQjBFODtCMEU4OzExMDIgMTE2MyAxMUJGO0IwRTg7MTEwMiAxMTYzIDExQkY7CitCMEU5O0IwRTk7MTEwMiAxMTYzIDExQzA7QjBFOTsxMTAyIDExNjMgMTFDMDsKK0IwRUE7QjBFQTsxMTAyIDExNjMgMTFDMTtCMEVBOzExMDIgMTE2MyAxMUMxOworQjBFQjtCMEVCOzExMDIgMTE2MyAxMUMyO0IwRUI7MTEwMiAxMTYzIDExQzI7CitCMEVDO0IwRUM7MTEwMiAxMTY0O0IwRUM7MTEwMiAxMTY0OworQjBFRDtCMEVEOzExMDIgMTE2NCAxMUE4O0IwRUQ7MTEwMiAxMTY0IDExQTg7CitCMEVFO0IwRUU7MTEwMiAxMTY0IDExQTk7QjBFRTsxMTAyIDExNjQgMTFBOTsKK0IwRUY7QjBFRjsxMTAyIDExNjQgMTFBQTtCMEVGOzExMDIgMTE2NCAxMUFBOworQjBGMDtCMEYwOzExMDIgMTE2NCAxMUFCO0IwRjA7MTEwMiAxMTY0IDExQUI7CitCMEYxO0IwRjE7MTEwMiAxMTY0IDExQUM7QjBGMTsxMTAyIDExNjQgMTFBQzsKK0IwRjI7QjBGMjsxMTAyIDExNjQgMTFBRDtCMEYyOzExMDIgMTE2NCAxMUFEOworQjBGMztCMEYzOzExMDIgMTE2NCAxMUFFO0IwRjM7MTEwMiAxMTY0IDExQUU7CitCMEY0O0IwRjQ7MTEwMiAxMTY0IDExQUY7QjBGNDsxMTAyIDExNjQgMTFBRjsKK0IwRjU7QjBGNTsxMTAyIDExNjQgMTFCMDtCMEY1OzExMDIgMTE2NCAxMUIwOworQjBGNjtCMEY2OzExMDIgMTE2NCAxMUIxO0IwRjY7MTEwMiAxMTY0IDExQjE7CitCMEY3O0IwRjc7MTEwMiAxMTY0IDExQjI7QjBGNzsxMTAyIDExNjQgMTFCMjsKK0IwRjg7QjBGODsxMTAyIDExNjQgMTFCMztCMEY4OzExMDIgMTE2NCAxMUIzOworQjBGOTtCMEY5OzExMDIgMTE2NCAxMUI0O0IwRjk7MTEwMiAxMTY0IDExQjQ7CitCMEZBO0IwRkE7MTEwMiAxMTY0IDExQjU7QjBGQTsxMTAyIDExNjQgMTFCNTsKK0IwRkI7QjBGQjsxMTAyIDExNjQgMTFCNjtCMEZCOzExMDIgMTE2NCAxMUI2OworQjBGQztCMEZDOzExMDIgMTE2NCAxMUI3O0IwRkM7MTEwMiAxMTY0IDExQjc7CitCMEZEO0IwRkQ7MTEwMiAxMTY0IDExQjg7QjBGRDsxMTAyIDExNjQgMTFCODsKK0IwRkU7QjBGRTsxMTAyIDExNjQgMTFCOTtCMEZFOzExMDIgMTE2NCAxMUI5OworQjBGRjtCMEZGOzExMDIgMTE2NCAxMUJBO0IwRkY7MTEwMiAxMTY0IDExQkE7CitCMTAwO0IxMDA7MTEwMiAxMTY0IDExQkI7QjEwMDsxMTAyIDExNjQgMTFCQjsKK0IxMDE7QjEwMTsxMTAyIDExNjQgMTFCQztCMTAxOzExMDIgMTE2NCAxMUJDOworQjEwMjtCMTAyOzExMDIgMTE2NCAxMUJEO0IxMDI7MTEwMiAxMTY0IDExQkQ7CitCMTAzO0IxMDM7MTEwMiAxMTY0IDExQkU7QjEwMzsxMTAyIDExNjQgMTFCRTsKK0IxMDQ7QjEwNDsxMTAyIDExNjQgMTFCRjtCMTA0OzExMDIgMTE2NCAxMUJGOworQjEwNTtCMTA1OzExMDIgMTE2NCAxMUMwO0IxMDU7MTEwMiAxMTY0IDExQzA7CitCMTA2O0IxMDY7MTEwMiAxMTY0IDExQzE7QjEwNjsxMTAyIDExNjQgMTFDMTsKK0IxMDc7QjEwNzsxMTAyIDExNjQgMTFDMjtCMTA3OzExMDIgMTE2NCAxMUMyOworQjEwODtCMTA4OzExMDIgMTE2NTtCMTA4OzExMDIgMTE2NTsKK0IxMDk7QjEwOTsxMTAyIDExNjUgMTFBODtCMTA5OzExMDIgMTE2NSAxMUE4OworQjEwQTtCMTBBOzExMDIgMTE2NSAxMUE5O0IxMEE7MTEwMiAxMTY1IDExQTk7CitCMTBCO0IxMEI7MTEwMiAxMTY1IDExQUE7QjEwQjsxMTAyIDExNjUgMTFBQTsKK0IxMEM7QjEwQzsxMTAyIDExNjUgMTFBQjtCMTBDOzExMDIgMTE2NSAxMUFCOworQjEwRDtCMTBEOzExMDIgMTE2NSAxMUFDO0IxMEQ7MTEwMiAxMTY1IDExQUM7CitCMTBFO0IxMEU7MTEwMiAxMTY1IDExQUQ7QjEwRTsxMTAyIDExNjUgMTFBRDsKK0IxMEY7QjEwRjsxMTAyIDExNjUgMTFBRTtCMTBGOzExMDIgMTE2NSAxMUFFOworQjExMDtCMTEwOzExMDIgMTE2NSAxMUFGO0IxMTA7MTEwMiAxMTY1IDExQUY7CitCMTExO0IxMTE7MTEwMiAxMTY1IDExQjA7QjExMTsxMTAyIDExNjUgMTFCMDsKK0IxMTI7QjExMjsxMTAyIDExNjUgMTFCMTtCMTEyOzExMDIgMTE2NSAxMUIxOworQjExMztCMTEzOzExMDIgMTE2NSAxMUIyO0IxMTM7MTEwMiAxMTY1IDExQjI7CitCMTE0O0IxMTQ7MTEwMiAxMTY1IDExQjM7QjExNDsxMTAyIDExNjUgMTFCMzsKK0IxMTU7QjExNTsxMTAyIDExNjUgMTFCNDtCMTE1OzExMDIgMTE2NSAxMUI0OworQjExNjtCMTE2OzExMDIgMTE2NSAxMUI1O0IxMTY7MTEwMiAxMTY1IDExQjU7CitCMTE3O0IxMTc7MTEwMiAxMTY1IDExQjY7QjExNzsxMTAyIDExNjUgMTFCNjsKK0IxMTg7QjExODsxMTAyIDExNjUgMTFCNztCMTE4OzExMDIgMTE2NSAxMUI3OworQjExOTtCMTE5OzExMDIgMTE2NSAxMUI4O0IxMTk7MTEwMiAxMTY1IDExQjg7CitCMTFBO0IxMUE7MTEwMiAxMTY1IDExQjk7QjExQTsxMTAyIDExNjUgMTFCOTsKK0IxMUI7QjExQjsxMTAyIDExNjUgMTFCQTtCMTFCOzExMDIgMTE2NSAxMUJBOworQjExQztCMTFDOzExMDIgMTE2NSAxMUJCO0IxMUM7MTEwMiAxMTY1IDExQkI7CitCMTFEO0IxMUQ7MTEwMiAxMTY1IDExQkM7QjExRDsxMTAyIDExNjUgMTFCQzsKK0IxMUU7QjExRTsxMTAyIDExNjUgMTFCRDtCMTFFOzExMDIgMTE2NSAxMUJEOworQjExRjtCMTFGOzExMDIgMTE2NSAxMUJFO0IxMUY7MTEwMiAxMTY1IDExQkU7CitCMTIwO0IxMjA7MTEwMiAxMTY1IDExQkY7QjEyMDsxMTAyIDExNjUgMTFCRjsKK0IxMjE7QjEyMTsxMTAyIDExNjUgMTFDMDtCMTIxOzExMDIgMTE2NSAxMUMwOworQjEyMjtCMTIyOzExMDIgMTE2NSAxMUMxO0IxMjI7MTEwMiAxMTY1IDExQzE7CitCMTIzO0IxMjM7MTEwMiAxMTY1IDExQzI7QjEyMzsxMTAyIDExNjUgMTFDMjsKK0IxMjQ7QjEyNDsxMTAyIDExNjY7QjEyNDsxMTAyIDExNjY7CitCMTI1O0IxMjU7MTEwMiAxMTY2IDExQTg7QjEyNTsxMTAyIDExNjYgMTFBODsKK0IxMjY7QjEyNjsxMTAyIDExNjYgMTFBOTtCMTI2OzExMDIgMTE2NiAxMUE5OworQjEyNztCMTI3OzExMDIgMTE2NiAxMUFBO0IxMjc7MTEwMiAxMTY2IDExQUE7CitCMTI4O0IxMjg7MTEwMiAxMTY2IDExQUI7QjEyODsxMTAyIDExNjYgMTFBQjsKK0IxMjk7QjEyOTsxMTAyIDExNjYgMTFBQztCMTI5OzExMDIgMTE2NiAxMUFDOworQjEyQTtCMTJBOzExMDIgMTE2NiAxMUFEO0IxMkE7MTEwMiAxMTY2IDExQUQ7CitCMTJCO0IxMkI7MTEwMiAxMTY2IDExQUU7QjEyQjsxMTAyIDExNjYgMTFBRTsKK0IxMkM7QjEyQzsxMTAyIDExNjYgMTFBRjtCMTJDOzExMDIgMTE2NiAxMUFGOworQjEyRDtCMTJEOzExMDIgMTE2NiAxMUIwO0IxMkQ7MTEwMiAxMTY2IDExQjA7CitCMTJFO0IxMkU7MTEwMiAxMTY2IDExQjE7QjEyRTsxMTAyIDExNjYgMTFCMTsKK0IxMkY7QjEyRjsxMTAyIDExNjYgMTFCMjtCMTJGOzExMDIgMTE2NiAxMUIyOworQjEzMDtCMTMwOzExMDIgMTE2NiAxMUIzO0IxMzA7MTEwMiAxMTY2IDExQjM7CitCMTMxO0IxMzE7MTEwMiAxMTY2IDExQjQ7QjEzMTsxMTAyIDExNjYgMTFCNDsKK0IxMzI7QjEzMjsxMTAyIDExNjYgMTFCNTtCMTMyOzExMDIgMTE2NiAxMUI1OworQjEzMztCMTMzOzExMDIgMTE2NiAxMUI2O0IxMzM7MTEwMiAxMTY2IDExQjY7CitCMTM0O0IxMzQ7MTEwMiAxMTY2IDExQjc7QjEzNDsxMTAyIDExNjYgMTFCNzsKK0IxMzU7QjEzNTsxMTAyIDExNjYgMTFCODtCMTM1OzExMDIgMTE2NiAxMUI4OworQjEzNjtCMTM2OzExMDIgMTE2NiAxMUI5O0IxMzY7MTEwMiAxMTY2IDExQjk7CitCMTM3O0IxMzc7MTEwMiAxMTY2IDExQkE7QjEzNzsxMTAyIDExNjYgMTFCQTsKK0IxMzg7QjEzODsxMTAyIDExNjYgMTFCQjtCMTM4OzExMDIgMTE2NiAxMUJCOworQjEzOTtCMTM5OzExMDIgMTE2NiAxMUJDO0IxMzk7MTEwMiAxMTY2IDExQkM7CitCMTNBO0IxM0E7MTEwMiAxMTY2IDExQkQ7QjEzQTsxMTAyIDExNjYgMTFCRDsKK0IxM0I7QjEzQjsxMTAyIDExNjYgMTFCRTtCMTNCOzExMDIgMTE2NiAxMUJFOworQjEzQztCMTNDOzExMDIgMTE2NiAxMUJGO0IxM0M7MTEwMiAxMTY2IDExQkY7CitCMTNEO0IxM0Q7MTEwMiAxMTY2IDExQzA7QjEzRDsxMTAyIDExNjYgMTFDMDsKK0IxM0U7QjEzRTsxMTAyIDExNjYgMTFDMTtCMTNFOzExMDIgMTE2NiAxMUMxOworQjEzRjtCMTNGOzExMDIgMTE2NiAxMUMyO0IxM0Y7MTEwMiAxMTY2IDExQzI7CitCMTQwO0IxNDA7MTEwMiAxMTY3O0IxNDA7MTEwMiAxMTY3OworQjE0MTtCMTQxOzExMDIgMTE2NyAxMUE4O0IxNDE7MTEwMiAxMTY3IDExQTg7CitCMTQyO0IxNDI7MTEwMiAxMTY3IDExQTk7QjE0MjsxMTAyIDExNjcgMTFBOTsKK0IxNDM7QjE0MzsxMTAyIDExNjcgMTFBQTtCMTQzOzExMDIgMTE2NyAxMUFBOworQjE0NDtCMTQ0OzExMDIgMTE2NyAxMUFCO0IxNDQ7MTEwMiAxMTY3IDExQUI7CitCMTQ1O0IxNDU7MTEwMiAxMTY3IDExQUM7QjE0NTsxMTAyIDExNjcgMTFBQzsKK0IxNDY7QjE0NjsxMTAyIDExNjcgMTFBRDtCMTQ2OzExMDIgMTE2NyAxMUFEOworQjE0NztCMTQ3OzExMDIgMTE2NyAxMUFFO0IxNDc7MTEwMiAxMTY3IDExQUU7CitCMTQ4O0IxNDg7MTEwMiAxMTY3IDExQUY7QjE0ODsxMTAyIDExNjcgMTFBRjsKK0IxNDk7QjE0OTsxMTAyIDExNjcgMTFCMDtCMTQ5OzExMDIgMTE2NyAxMUIwOworQjE0QTtCMTRBOzExMDIgMTE2NyAxMUIxO0IxNEE7MTEwMiAxMTY3IDExQjE7CitCMTRCO0IxNEI7MTEwMiAxMTY3IDExQjI7QjE0QjsxMTAyIDExNjcgMTFCMjsKK0IxNEM7QjE0QzsxMTAyIDExNjcgMTFCMztCMTRDOzExMDIgMTE2NyAxMUIzOworQjE0RDtCMTREOzExMDIgMTE2NyAxMUI0O0IxNEQ7MTEwMiAxMTY3IDExQjQ7CitCMTRFO0IxNEU7MTEwMiAxMTY3IDExQjU7QjE0RTsxMTAyIDExNjcgMTFCNTsKK0IxNEY7QjE0RjsxMTAyIDExNjcgMTFCNjtCMTRGOzExMDIgMTE2NyAxMUI2OworQjE1MDtCMTUwOzExMDIgMTE2NyAxMUI3O0IxNTA7MTEwMiAxMTY3IDExQjc7CitCMTUxO0IxNTE7MTEwMiAxMTY3IDExQjg7QjE1MTsxMTAyIDExNjcgMTFCODsKK0IxNTI7QjE1MjsxMTAyIDExNjcgMTFCOTtCMTUyOzExMDIgMTE2NyAxMUI5OworQjE1MztCMTUzOzExMDIgMTE2NyAxMUJBO0IxNTM7MTEwMiAxMTY3IDExQkE7CitCMTU0O0IxNTQ7MTEwMiAxMTY3IDExQkI7QjE1NDsxMTAyIDExNjcgMTFCQjsKK0IxNTU7QjE1NTsxMTAyIDExNjcgMTFCQztCMTU1OzExMDIgMTE2NyAxMUJDOworQjE1NjtCMTU2OzExMDIgMTE2NyAxMUJEO0IxNTY7MTEwMiAxMTY3IDExQkQ7CitCMTU3O0IxNTc7MTEwMiAxMTY3IDExQkU7QjE1NzsxMTAyIDExNjcgMTFCRTsKK0IxNTg7QjE1ODsxMTAyIDExNjcgMTFCRjtCMTU4OzExMDIgMTE2NyAxMUJGOworQjE1OTtCMTU5OzExMDIgMTE2NyAxMUMwO0IxNTk7MTEwMiAxMTY3IDExQzA7CitCMTVBO0IxNUE7MTEwMiAxMTY3IDExQzE7QjE1QTsxMTAyIDExNjcgMTFDMTsKK0IxNUI7QjE1QjsxMTAyIDExNjcgMTFDMjtCMTVCOzExMDIgMTE2NyAxMUMyOworQjE1QztCMTVDOzExMDIgMTE2ODtCMTVDOzExMDIgMTE2ODsKK0IxNUQ7QjE1RDsxMTAyIDExNjggMTFBODtCMTVEOzExMDIgMTE2OCAxMUE4OworQjE1RTtCMTVFOzExMDIgMTE2OCAxMUE5O0IxNUU7MTEwMiAxMTY4IDExQTk7CitCMTVGO0IxNUY7MTEwMiAxMTY4IDExQUE7QjE1RjsxMTAyIDExNjggMTFBQTsKK0IxNjA7QjE2MDsxMTAyIDExNjggMTFBQjtCMTYwOzExMDIgMTE2OCAxMUFCOworQjE2MTtCMTYxOzExMDIgMTE2OCAxMUFDO0IxNjE7MTEwMiAxMTY4IDExQUM7CitCMTYyO0IxNjI7MTEwMiAxMTY4IDExQUQ7QjE2MjsxMTAyIDExNjggMTFBRDsKK0IxNjM7QjE2MzsxMTAyIDExNjggMTFBRTtCMTYzOzExMDIgMTE2OCAxMUFFOworQjE2NDtCMTY0OzExMDIgMTE2OCAxMUFGO0IxNjQ7MTEwMiAxMTY4IDExQUY7CitCMTY1O0IxNjU7MTEwMiAxMTY4IDExQjA7QjE2NTsxMTAyIDExNjggMTFCMDsKK0IxNjY7QjE2NjsxMTAyIDExNjggMTFCMTtCMTY2OzExMDIgMTE2OCAxMUIxOworQjE2NztCMTY3OzExMDIgMTE2OCAxMUIyO0IxNjc7MTEwMiAxMTY4IDExQjI7CitCMTY4O0IxNjg7MTEwMiAxMTY4IDExQjM7QjE2ODsxMTAyIDExNjggMTFCMzsKK0IxNjk7QjE2OTsxMTAyIDExNjggMTFCNDtCMTY5OzExMDIgMTE2OCAxMUI0OworQjE2QTtCMTZBOzExMDIgMTE2OCAxMUI1O0IxNkE7MTEwMiAxMTY4IDExQjU7CitCMTZCO0IxNkI7MTEwMiAxMTY4IDExQjY7QjE2QjsxMTAyIDExNjggMTFCNjsKK0IxNkM7QjE2QzsxMTAyIDExNjggMTFCNztCMTZDOzExMDIgMTE2OCAxMUI3OworQjE2RDtCMTZEOzExMDIgMTE2OCAxMUI4O0IxNkQ7MTEwMiAxMTY4IDExQjg7CitCMTZFO0IxNkU7MTEwMiAxMTY4IDExQjk7QjE2RTsxMTAyIDExNjggMTFCOTsKK0IxNkY7QjE2RjsxMTAyIDExNjggMTFCQTtCMTZGOzExMDIgMTE2OCAxMUJBOworQjE3MDtCMTcwOzExMDIgMTE2OCAxMUJCO0IxNzA7MTEwMiAxMTY4IDExQkI7CitCMTcxO0IxNzE7MTEwMiAxMTY4IDExQkM7QjE3MTsxMTAyIDExNjggMTFCQzsKK0IxNzI7QjE3MjsxMTAyIDExNjggMTFCRDtCMTcyOzExMDIgMTE2OCAxMUJEOworQjE3MztCMTczOzExMDIgMTE2OCAxMUJFO0IxNzM7MTEwMiAxMTY4IDExQkU7CitCMTc0O0IxNzQ7MTEwMiAxMTY4IDExQkY7QjE3NDsxMTAyIDExNjggMTFCRjsKK0IxNzU7QjE3NTsxMTAyIDExNjggMTFDMDtCMTc1OzExMDIgMTE2OCAxMUMwOworQjE3NjtCMTc2OzExMDIgMTE2OCAxMUMxO0IxNzY7MTEwMiAxMTY4IDExQzE7CitCMTc3O0IxNzc7MTEwMiAxMTY4IDExQzI7QjE3NzsxMTAyIDExNjggMTFDMjsKK0IxNzg7QjE3ODsxMTAyIDExNjk7QjE3ODsxMTAyIDExNjk7CitCMTc5O0IxNzk7MTEwMiAxMTY5IDExQTg7QjE3OTsxMTAyIDExNjkgMTFBODsKK0IxN0E7QjE3QTsxMTAyIDExNjkgMTFBOTtCMTdBOzExMDIgMTE2OSAxMUE5OworQjE3QjtCMTdCOzExMDIgMTE2OSAxMUFBO0IxN0I7MTEwMiAxMTY5IDExQUE7CitCMTdDO0IxN0M7MTEwMiAxMTY5IDExQUI7QjE3QzsxMTAyIDExNjkgMTFBQjsKK0IxN0Q7QjE3RDsxMTAyIDExNjkgMTFBQztCMTdEOzExMDIgMTE2OSAxMUFDOworQjE3RTtCMTdFOzExMDIgMTE2OSAxMUFEO0IxN0U7MTEwMiAxMTY5IDExQUQ7CitCMTdGO0IxN0Y7MTEwMiAxMTY5IDExQUU7QjE3RjsxMTAyIDExNjkgMTFBRTsKK0IxODA7QjE4MDsxMTAyIDExNjkgMTFBRjtCMTgwOzExMDIgMTE2OSAxMUFGOworQjE4MTtCMTgxOzExMDIgMTE2OSAxMUIwO0IxODE7MTEwMiAxMTY5IDExQjA7CitCMTgyO0IxODI7MTEwMiAxMTY5IDExQjE7QjE4MjsxMTAyIDExNjkgMTFCMTsKK0IxODM7QjE4MzsxMTAyIDExNjkgMTFCMjtCMTgzOzExMDIgMTE2OSAxMUIyOworQjE4NDtCMTg0OzExMDIgMTE2OSAxMUIzO0IxODQ7MTEwMiAxMTY5IDExQjM7CitCMTg1O0IxODU7MTEwMiAxMTY5IDExQjQ7QjE4NTsxMTAyIDExNjkgMTFCNDsKK0IxODY7QjE4NjsxMTAyIDExNjkgMTFCNTtCMTg2OzExMDIgMTE2OSAxMUI1OworQjE4NztCMTg3OzExMDIgMTE2OSAxMUI2O0IxODc7MTEwMiAxMTY5IDExQjY7CitCMTg4O0IxODg7MTEwMiAxMTY5IDExQjc7QjE4ODsxMTAyIDExNjkgMTFCNzsKK0IxODk7QjE4OTsxMTAyIDExNjkgMTFCODtCMTg5OzExMDIgMTE2OSAxMUI4OworQjE4QTtCMThBOzExMDIgMTE2OSAxMUI5O0IxOEE7MTEwMiAxMTY5IDExQjk7CitCMThCO0IxOEI7MTEwMiAxMTY5IDExQkE7QjE4QjsxMTAyIDExNjkgMTFCQTsKK0IxOEM7QjE4QzsxMTAyIDExNjkgMTFCQjtCMThDOzExMDIgMTE2OSAxMUJCOworQjE4RDtCMThEOzExMDIgMTE2OSAxMUJDO0IxOEQ7MTEwMiAxMTY5IDExQkM7CitCMThFO0IxOEU7MTEwMiAxMTY5IDExQkQ7QjE4RTsxMTAyIDExNjkgMTFCRDsKK0IxOEY7QjE4RjsxMTAyIDExNjkgMTFCRTtCMThGOzExMDIgMTE2OSAxMUJFOworQjE5MDtCMTkwOzExMDIgMTE2OSAxMUJGO0IxOTA7MTEwMiAxMTY5IDExQkY7CitCMTkxO0IxOTE7MTEwMiAxMTY5IDExQzA7QjE5MTsxMTAyIDExNjkgMTFDMDsKK0IxOTI7QjE5MjsxMTAyIDExNjkgMTFDMTtCMTkyOzExMDIgMTE2OSAxMUMxOworQjE5MztCMTkzOzExMDIgMTE2OSAxMUMyO0IxOTM7MTEwMiAxMTY5IDExQzI7CitCMTk0O0IxOTQ7MTEwMiAxMTZBO0IxOTQ7MTEwMiAxMTZBOworQjE5NTtCMTk1OzExMDIgMTE2QSAxMUE4O0IxOTU7MTEwMiAxMTZBIDExQTg7CitCMTk2O0IxOTY7MTEwMiAxMTZBIDExQTk7QjE5NjsxMTAyIDExNkEgMTFBOTsKK0IxOTc7QjE5NzsxMTAyIDExNkEgMTFBQTtCMTk3OzExMDIgMTE2QSAxMUFBOworQjE5ODtCMTk4OzExMDIgMTE2QSAxMUFCO0IxOTg7MTEwMiAxMTZBIDExQUI7CitCMTk5O0IxOTk7MTEwMiAxMTZBIDExQUM7QjE5OTsxMTAyIDExNkEgMTFBQzsKK0IxOUE7QjE5QTsxMTAyIDExNkEgMTFBRDtCMTlBOzExMDIgMTE2QSAxMUFEOworQjE5QjtCMTlCOzExMDIgMTE2QSAxMUFFO0IxOUI7MTEwMiAxMTZBIDExQUU7CitCMTlDO0IxOUM7MTEwMiAxMTZBIDExQUY7QjE5QzsxMTAyIDExNkEgMTFBRjsKK0IxOUQ7QjE5RDsxMTAyIDExNkEgMTFCMDtCMTlEOzExMDIgMTE2QSAxMUIwOworQjE5RTtCMTlFOzExMDIgMTE2QSAxMUIxO0IxOUU7MTEwMiAxMTZBIDExQjE7CitCMTlGO0IxOUY7MTEwMiAxMTZBIDExQjI7QjE5RjsxMTAyIDExNkEgMTFCMjsKK0IxQTA7QjFBMDsxMTAyIDExNkEgMTFCMztCMUEwOzExMDIgMTE2QSAxMUIzOworQjFBMTtCMUExOzExMDIgMTE2QSAxMUI0O0IxQTE7MTEwMiAxMTZBIDExQjQ7CitCMUEyO0IxQTI7MTEwMiAxMTZBIDExQjU7QjFBMjsxMTAyIDExNkEgMTFCNTsKK0IxQTM7QjFBMzsxMTAyIDExNkEgMTFCNjtCMUEzOzExMDIgMTE2QSAxMUI2OworQjFBNDtCMUE0OzExMDIgMTE2QSAxMUI3O0IxQTQ7MTEwMiAxMTZBIDExQjc7CitCMUE1O0IxQTU7MTEwMiAxMTZBIDExQjg7QjFBNTsxMTAyIDExNkEgMTFCODsKK0IxQTY7QjFBNjsxMTAyIDExNkEgMTFCOTtCMUE2OzExMDIgMTE2QSAxMUI5OworQjFBNztCMUE3OzExMDIgMTE2QSAxMUJBO0IxQTc7MTEwMiAxMTZBIDExQkE7CitCMUE4O0IxQTg7MTEwMiAxMTZBIDExQkI7QjFBODsxMTAyIDExNkEgMTFCQjsKK0IxQTk7QjFBOTsxMTAyIDExNkEgMTFCQztCMUE5OzExMDIgMTE2QSAxMUJDOworQjFBQTtCMUFBOzExMDIgMTE2QSAxMUJEO0IxQUE7MTEwMiAxMTZBIDExQkQ7CitCMUFCO0IxQUI7MTEwMiAxMTZBIDExQkU7QjFBQjsxMTAyIDExNkEgMTFCRTsKK0IxQUM7QjFBQzsxMTAyIDExNkEgMTFCRjtCMUFDOzExMDIgMTE2QSAxMUJGOworQjFBRDtCMUFEOzExMDIgMTE2QSAxMUMwO0IxQUQ7MTEwMiAxMTZBIDExQzA7CitCMUFFO0IxQUU7MTEwMiAxMTZBIDExQzE7QjFBRTsxMTAyIDExNkEgMTFDMTsKK0IxQUY7QjFBRjsxMTAyIDExNkEgMTFDMjtCMUFGOzExMDIgMTE2QSAxMUMyOworQjFCMDtCMUIwOzExMDIgMTE2QjtCMUIwOzExMDIgMTE2QjsKK0IxQjE7QjFCMTsxMTAyIDExNkIgMTFBODtCMUIxOzExMDIgMTE2QiAxMUE4OworQjFCMjtCMUIyOzExMDIgMTE2QiAxMUE5O0IxQjI7MTEwMiAxMTZCIDExQTk7CitCMUIzO0IxQjM7MTEwMiAxMTZCIDExQUE7QjFCMzsxMTAyIDExNkIgMTFBQTsKK0IxQjQ7QjFCNDsxMTAyIDExNkIgMTFBQjtCMUI0OzExMDIgMTE2QiAxMUFCOworQjFCNTtCMUI1OzExMDIgMTE2QiAxMUFDO0IxQjU7MTEwMiAxMTZCIDExQUM7CitCMUI2O0IxQjY7MTEwMiAxMTZCIDExQUQ7QjFCNjsxMTAyIDExNkIgMTFBRDsKK0IxQjc7QjFCNzsxMTAyIDExNkIgMTFBRTtCMUI3OzExMDIgMTE2QiAxMUFFOworQjFCODtCMUI4OzExMDIgMTE2QiAxMUFGO0IxQjg7MTEwMiAxMTZCIDExQUY7CitCMUI5O0IxQjk7MTEwMiAxMTZCIDExQjA7QjFCOTsxMTAyIDExNkIgMTFCMDsKK0IxQkE7QjFCQTsxMTAyIDExNkIgMTFCMTtCMUJBOzExMDIgMTE2QiAxMUIxOworQjFCQjtCMUJCOzExMDIgMTE2QiAxMUIyO0IxQkI7MTEwMiAxMTZCIDExQjI7CitCMUJDO0IxQkM7MTEwMiAxMTZCIDExQjM7QjFCQzsxMTAyIDExNkIgMTFCMzsKK0IxQkQ7QjFCRDsxMTAyIDExNkIgMTFCNDtCMUJEOzExMDIgMTE2QiAxMUI0OworQjFCRTtCMUJFOzExMDIgMTE2QiAxMUI1O0IxQkU7MTEwMiAxMTZCIDExQjU7CitCMUJGO0IxQkY7MTEwMiAxMTZCIDExQjY7QjFCRjsxMTAyIDExNkIgMTFCNjsKK0IxQzA7QjFDMDsxMTAyIDExNkIgMTFCNztCMUMwOzExMDIgMTE2QiAxMUI3OworQjFDMTtCMUMxOzExMDIgMTE2QiAxMUI4O0IxQzE7MTEwMiAxMTZCIDExQjg7CitCMUMyO0IxQzI7MTEwMiAxMTZCIDExQjk7QjFDMjsxMTAyIDExNkIgMTFCOTsKK0IxQzM7QjFDMzsxMTAyIDExNkIgMTFCQTtCMUMzOzExMDIgMTE2QiAxMUJBOworQjFDNDtCMUM0OzExMDIgMTE2QiAxMUJCO0IxQzQ7MTEwMiAxMTZCIDExQkI7CitCMUM1O0IxQzU7MTEwMiAxMTZCIDExQkM7QjFDNTsxMTAyIDExNkIgMTFCQzsKK0IxQzY7QjFDNjsxMTAyIDExNkIgMTFCRDtCMUM2OzExMDIgMTE2QiAxMUJEOworQjFDNztCMUM3OzExMDIgMTE2QiAxMUJFO0IxQzc7MTEwMiAxMTZCIDExQkU7CitCMUM4O0IxQzg7MTEwMiAxMTZCIDExQkY7QjFDODsxMTAyIDExNkIgMTFCRjsKK0IxQzk7QjFDOTsxMTAyIDExNkIgMTFDMDtCMUM5OzExMDIgMTE2QiAxMUMwOworQjFDQTtCMUNBOzExMDIgMTE2QiAxMUMxO0IxQ0E7MTEwMiAxMTZCIDExQzE7CitCMUNCO0IxQ0I7MTEwMiAxMTZCIDExQzI7QjFDQjsxMTAyIDExNkIgMTFDMjsKK0IxQ0M7QjFDQzsxMTAyIDExNkM7QjFDQzsxMTAyIDExNkM7CitCMUNEO0IxQ0Q7MTEwMiAxMTZDIDExQTg7QjFDRDsxMTAyIDExNkMgMTFBODsKK0IxQ0U7QjFDRTsxMTAyIDExNkMgMTFBOTtCMUNFOzExMDIgMTE2QyAxMUE5OworQjFDRjtCMUNGOzExMDIgMTE2QyAxMUFBO0IxQ0Y7MTEwMiAxMTZDIDExQUE7CitCMUQwO0IxRDA7MTEwMiAxMTZDIDExQUI7QjFEMDsxMTAyIDExNkMgMTFBQjsKK0IxRDE7QjFEMTsxMTAyIDExNkMgMTFBQztCMUQxOzExMDIgMTE2QyAxMUFDOworQjFEMjtCMUQyOzExMDIgMTE2QyAxMUFEO0IxRDI7MTEwMiAxMTZDIDExQUQ7CitCMUQzO0IxRDM7MTEwMiAxMTZDIDExQUU7QjFEMzsxMTAyIDExNkMgMTFBRTsKK0IxRDQ7QjFENDsxMTAyIDExNkMgMTFBRjtCMUQ0OzExMDIgMTE2QyAxMUFGOworQjFENTtCMUQ1OzExMDIgMTE2QyAxMUIwO0IxRDU7MTEwMiAxMTZDIDExQjA7CitCMUQ2O0IxRDY7MTEwMiAxMTZDIDExQjE7QjFENjsxMTAyIDExNkMgMTFCMTsKK0IxRDc7QjFENzsxMTAyIDExNkMgMTFCMjtCMUQ3OzExMDIgMTE2QyAxMUIyOworQjFEODtCMUQ4OzExMDIgMTE2QyAxMUIzO0IxRDg7MTEwMiAxMTZDIDExQjM7CitCMUQ5O0IxRDk7MTEwMiAxMTZDIDExQjQ7QjFEOTsxMTAyIDExNkMgMTFCNDsKK0IxREE7QjFEQTsxMTAyIDExNkMgMTFCNTtCMURBOzExMDIgMTE2QyAxMUI1OworQjFEQjtCMURCOzExMDIgMTE2QyAxMUI2O0IxREI7MTEwMiAxMTZDIDExQjY7CitCMURDO0IxREM7MTEwMiAxMTZDIDExQjc7QjFEQzsxMTAyIDExNkMgMTFCNzsKK0IxREQ7QjFERDsxMTAyIDExNkMgMTFCODtCMUREOzExMDIgMTE2QyAxMUI4OworQjFERTtCMURFOzExMDIgMTE2QyAxMUI5O0IxREU7MTEwMiAxMTZDIDExQjk7CitCMURGO0IxREY7MTEwMiAxMTZDIDExQkE7QjFERjsxMTAyIDExNkMgMTFCQTsKK0IxRTA7QjFFMDsxMTAyIDExNkMgMTFCQjtCMUUwOzExMDIgMTE2QyAxMUJCOworQjFFMTtCMUUxOzExMDIgMTE2QyAxMUJDO0IxRTE7MTEwMiAxMTZDIDExQkM7CitCMUUyO0IxRTI7MTEwMiAxMTZDIDExQkQ7QjFFMjsxMTAyIDExNkMgMTFCRDsKK0IxRTM7QjFFMzsxMTAyIDExNkMgMTFCRTtCMUUzOzExMDIgMTE2QyAxMUJFOworQjFFNDtCMUU0OzExMDIgMTE2QyAxMUJGO0IxRTQ7MTEwMiAxMTZDIDExQkY7CitCMUU1O0IxRTU7MTEwMiAxMTZDIDExQzA7QjFFNTsxMTAyIDExNkMgMTFDMDsKK0IxRTY7QjFFNjsxMTAyIDExNkMgMTFDMTtCMUU2OzExMDIgMTE2QyAxMUMxOworQjFFNztCMUU3OzExMDIgMTE2QyAxMUMyO0IxRTc7MTEwMiAxMTZDIDExQzI7CitCMUU4O0IxRTg7MTEwMiAxMTZEO0IxRTg7MTEwMiAxMTZEOworQjFFOTtCMUU5OzExMDIgMTE2RCAxMUE4O0IxRTk7MTEwMiAxMTZEIDExQTg7CitCMUVBO0IxRUE7MTEwMiAxMTZEIDExQTk7QjFFQTsxMTAyIDExNkQgMTFBOTsKK0IxRUI7QjFFQjsxMTAyIDExNkQgMTFBQTtCMUVCOzExMDIgMTE2RCAxMUFBOworQjFFQztCMUVDOzExMDIgMTE2RCAxMUFCO0IxRUM7MTEwMiAxMTZEIDExQUI7CitCMUVEO0IxRUQ7MTEwMiAxMTZEIDExQUM7QjFFRDsxMTAyIDExNkQgMTFBQzsKK0IxRUU7QjFFRTsxMTAyIDExNkQgMTFBRDtCMUVFOzExMDIgMTE2RCAxMUFEOworQjFFRjtCMUVGOzExMDIgMTE2RCAxMUFFO0IxRUY7MTEwMiAxMTZEIDExQUU7CitCMUYwO0IxRjA7MTEwMiAxMTZEIDExQUY7QjFGMDsxMTAyIDExNkQgMTFBRjsKK0IxRjE7QjFGMTsxMTAyIDExNkQgMTFCMDtCMUYxOzExMDIgMTE2RCAxMUIwOworQjFGMjtCMUYyOzExMDIgMTE2RCAxMUIxO0IxRjI7MTEwMiAxMTZEIDExQjE7CitCMUYzO0IxRjM7MTEwMiAxMTZEIDExQjI7QjFGMzsxMTAyIDExNkQgMTFCMjsKK0IxRjQ7QjFGNDsxMTAyIDExNkQgMTFCMztCMUY0OzExMDIgMTE2RCAxMUIzOworQjFGNTtCMUY1OzExMDIgMTE2RCAxMUI0O0IxRjU7MTEwMiAxMTZEIDExQjQ7CitCMUY2O0IxRjY7MTEwMiAxMTZEIDExQjU7QjFGNjsxMTAyIDExNkQgMTFCNTsKK0IxRjc7QjFGNzsxMTAyIDExNkQgMTFCNjtCMUY3OzExMDIgMTE2RCAxMUI2OworQjFGODtCMUY4OzExMDIgMTE2RCAxMUI3O0IxRjg7MTEwMiAxMTZEIDExQjc7CitCMUY5O0IxRjk7MTEwMiAxMTZEIDExQjg7QjFGOTsxMTAyIDExNkQgMTFCODsKK0IxRkE7QjFGQTsxMTAyIDExNkQgMTFCOTtCMUZBOzExMDIgMTE2RCAxMUI5OworQjFGQjtCMUZCOzExMDIgMTE2RCAxMUJBO0IxRkI7MTEwMiAxMTZEIDExQkE7CitCMUZDO0IxRkM7MTEwMiAxMTZEIDExQkI7QjFGQzsxMTAyIDExNkQgMTFCQjsKK0IxRkQ7QjFGRDsxMTAyIDExNkQgMTFCQztCMUZEOzExMDIgMTE2RCAxMUJDOworQjFGRTtCMUZFOzExMDIgMTE2RCAxMUJEO0IxRkU7MTEwMiAxMTZEIDExQkQ7CitCMUZGO0IxRkY7MTEwMiAxMTZEIDExQkU7QjFGRjsxMTAyIDExNkQgMTFCRTsKK0IyMDA7QjIwMDsxMTAyIDExNkQgMTFCRjtCMjAwOzExMDIgMTE2RCAxMUJGOworQjIwMTtCMjAxOzExMDIgMTE2RCAxMUMwO0IyMDE7MTEwMiAxMTZEIDExQzA7CitCMjAyO0IyMDI7MTEwMiAxMTZEIDExQzE7QjIwMjsxMTAyIDExNkQgMTFDMTsKK0IyMDM7QjIwMzsxMTAyIDExNkQgMTFDMjtCMjAzOzExMDIgMTE2RCAxMUMyOworQjIwNDtCMjA0OzExMDIgMTE2RTtCMjA0OzExMDIgMTE2RTsKK0IyMDU7QjIwNTsxMTAyIDExNkUgMTFBODtCMjA1OzExMDIgMTE2RSAxMUE4OworQjIwNjtCMjA2OzExMDIgMTE2RSAxMUE5O0IyMDY7MTEwMiAxMTZFIDExQTk7CitCMjA3O0IyMDc7MTEwMiAxMTZFIDExQUE7QjIwNzsxMTAyIDExNkUgMTFBQTsKK0IyMDg7QjIwODsxMTAyIDExNkUgMTFBQjtCMjA4OzExMDIgMTE2RSAxMUFCOworQjIwOTtCMjA5OzExMDIgMTE2RSAxMUFDO0IyMDk7MTEwMiAxMTZFIDExQUM7CitCMjBBO0IyMEE7MTEwMiAxMTZFIDExQUQ7QjIwQTsxMTAyIDExNkUgMTFBRDsKK0IyMEI7QjIwQjsxMTAyIDExNkUgMTFBRTtCMjBCOzExMDIgMTE2RSAxMUFFOworQjIwQztCMjBDOzExMDIgMTE2RSAxMUFGO0IyMEM7MTEwMiAxMTZFIDExQUY7CitCMjBEO0IyMEQ7MTEwMiAxMTZFIDExQjA7QjIwRDsxMTAyIDExNkUgMTFCMDsKK0IyMEU7QjIwRTsxMTAyIDExNkUgMTFCMTtCMjBFOzExMDIgMTE2RSAxMUIxOworQjIwRjtCMjBGOzExMDIgMTE2RSAxMUIyO0IyMEY7MTEwMiAxMTZFIDExQjI7CitCMjEwO0IyMTA7MTEwMiAxMTZFIDExQjM7QjIxMDsxMTAyIDExNkUgMTFCMzsKK0IyMTE7QjIxMTsxMTAyIDExNkUgMTFCNDtCMjExOzExMDIgMTE2RSAxMUI0OworQjIxMjtCMjEyOzExMDIgMTE2RSAxMUI1O0IyMTI7MTEwMiAxMTZFIDExQjU7CitCMjEzO0IyMTM7MTEwMiAxMTZFIDExQjY7QjIxMzsxMTAyIDExNkUgMTFCNjsKK0IyMTQ7QjIxNDsxMTAyIDExNkUgMTFCNztCMjE0OzExMDIgMTE2RSAxMUI3OworQjIxNTtCMjE1OzExMDIgMTE2RSAxMUI4O0IyMTU7MTEwMiAxMTZFIDExQjg7CitCMjE2O0IyMTY7MTEwMiAxMTZFIDExQjk7QjIxNjsxMTAyIDExNkUgMTFCOTsKK0IyMTc7QjIxNzsxMTAyIDExNkUgMTFCQTtCMjE3OzExMDIgMTE2RSAxMUJBOworQjIxODtCMjE4OzExMDIgMTE2RSAxMUJCO0IyMTg7MTEwMiAxMTZFIDExQkI7CitCMjE5O0IyMTk7MTEwMiAxMTZFIDExQkM7QjIxOTsxMTAyIDExNkUgMTFCQzsKK0IyMUE7QjIxQTsxMTAyIDExNkUgMTFCRDtCMjFBOzExMDIgMTE2RSAxMUJEOworQjIxQjtCMjFCOzExMDIgMTE2RSAxMUJFO0IyMUI7MTEwMiAxMTZFIDExQkU7CitCMjFDO0IyMUM7MTEwMiAxMTZFIDExQkY7QjIxQzsxMTAyIDExNkUgMTFCRjsKK0IyMUQ7QjIxRDsxMTAyIDExNkUgMTFDMDtCMjFEOzExMDIgMTE2RSAxMUMwOworQjIxRTtCMjFFOzExMDIgMTE2RSAxMUMxO0IyMUU7MTEwMiAxMTZFIDExQzE7CitCMjFGO0IyMUY7MTEwMiAxMTZFIDExQzI7QjIxRjsxMTAyIDExNkUgMTFDMjsKK0IyMjA7QjIyMDsxMTAyIDExNkY7QjIyMDsxMTAyIDExNkY7CitCMjIxO0IyMjE7MTEwMiAxMTZGIDExQTg7QjIyMTsxMTAyIDExNkYgMTFBODsKK0IyMjI7QjIyMjsxMTAyIDExNkYgMTFBOTtCMjIyOzExMDIgMTE2RiAxMUE5OworQjIyMztCMjIzOzExMDIgMTE2RiAxMUFBO0IyMjM7MTEwMiAxMTZGIDExQUE7CitCMjI0O0IyMjQ7MTEwMiAxMTZGIDExQUI7QjIyNDsxMTAyIDExNkYgMTFBQjsKK0IyMjU7QjIyNTsxMTAyIDExNkYgMTFBQztCMjI1OzExMDIgMTE2RiAxMUFDOworQjIyNjtCMjI2OzExMDIgMTE2RiAxMUFEO0IyMjY7MTEwMiAxMTZGIDExQUQ7CitCMjI3O0IyMjc7MTEwMiAxMTZGIDExQUU7QjIyNzsxMTAyIDExNkYgMTFBRTsKK0IyMjg7QjIyODsxMTAyIDExNkYgMTFBRjtCMjI4OzExMDIgMTE2RiAxMUFGOworQjIyOTtCMjI5OzExMDIgMTE2RiAxMUIwO0IyMjk7MTEwMiAxMTZGIDExQjA7CitCMjJBO0IyMkE7MTEwMiAxMTZGIDExQjE7QjIyQTsxMTAyIDExNkYgMTFCMTsKK0IyMkI7QjIyQjsxMTAyIDExNkYgMTFCMjtCMjJCOzExMDIgMTE2RiAxMUIyOworQjIyQztCMjJDOzExMDIgMTE2RiAxMUIzO0IyMkM7MTEwMiAxMTZGIDExQjM7CitCMjJEO0IyMkQ7MTEwMiAxMTZGIDExQjQ7QjIyRDsxMTAyIDExNkYgMTFCNDsKK0IyMkU7QjIyRTsxMTAyIDExNkYgMTFCNTtCMjJFOzExMDIgMTE2RiAxMUI1OworQjIyRjtCMjJGOzExMDIgMTE2RiAxMUI2O0IyMkY7MTEwMiAxMTZGIDExQjY7CitCMjMwO0IyMzA7MTEwMiAxMTZGIDExQjc7QjIzMDsxMTAyIDExNkYgMTFCNzsKK0IyMzE7QjIzMTsxMTAyIDExNkYgMTFCODtCMjMxOzExMDIgMTE2RiAxMUI4OworQjIzMjtCMjMyOzExMDIgMTE2RiAxMUI5O0IyMzI7MTEwMiAxMTZGIDExQjk7CitCMjMzO0IyMzM7MTEwMiAxMTZGIDExQkE7QjIzMzsxMTAyIDExNkYgMTFCQTsKK0IyMzQ7QjIzNDsxMTAyIDExNkYgMTFCQjtCMjM0OzExMDIgMTE2RiAxMUJCOworQjIzNTtCMjM1OzExMDIgMTE2RiAxMUJDO0IyMzU7MTEwMiAxMTZGIDExQkM7CitCMjM2O0IyMzY7MTEwMiAxMTZGIDExQkQ7QjIzNjsxMTAyIDExNkYgMTFCRDsKK0IyMzc7QjIzNzsxMTAyIDExNkYgMTFCRTtCMjM3OzExMDIgMTE2RiAxMUJFOworQjIzODtCMjM4OzExMDIgMTE2RiAxMUJGO0IyMzg7MTEwMiAxMTZGIDExQkY7CitCMjM5O0IyMzk7MTEwMiAxMTZGIDExQzA7QjIzOTsxMTAyIDExNkYgMTFDMDsKK0IyM0E7QjIzQTsxMTAyIDExNkYgMTFDMTtCMjNBOzExMDIgMTE2RiAxMUMxOworQjIzQjtCMjNCOzExMDIgMTE2RiAxMUMyO0IyM0I7MTEwMiAxMTZGIDExQzI7CitCMjNDO0IyM0M7MTEwMiAxMTcwO0IyM0M7MTEwMiAxMTcwOworQjIzRDtCMjNEOzExMDIgMTE3MCAxMUE4O0IyM0Q7MTEwMiAxMTcwIDExQTg7CitCMjNFO0IyM0U7MTEwMiAxMTcwIDExQTk7QjIzRTsxMTAyIDExNzAgMTFBOTsKK0IyM0Y7QjIzRjsxMTAyIDExNzAgMTFBQTtCMjNGOzExMDIgMTE3MCAxMUFBOworQjI0MDtCMjQwOzExMDIgMTE3MCAxMUFCO0IyNDA7MTEwMiAxMTcwIDExQUI7CitCMjQxO0IyNDE7MTEwMiAxMTcwIDExQUM7QjI0MTsxMTAyIDExNzAgMTFBQzsKK0IyNDI7QjI0MjsxMTAyIDExNzAgMTFBRDtCMjQyOzExMDIgMTE3MCAxMUFEOworQjI0MztCMjQzOzExMDIgMTE3MCAxMUFFO0IyNDM7MTEwMiAxMTcwIDExQUU7CitCMjQ0O0IyNDQ7MTEwMiAxMTcwIDExQUY7QjI0NDsxMTAyIDExNzAgMTFBRjsKK0IyNDU7QjI0NTsxMTAyIDExNzAgMTFCMDtCMjQ1OzExMDIgMTE3MCAxMUIwOworQjI0NjtCMjQ2OzExMDIgMTE3MCAxMUIxO0IyNDY7MTEwMiAxMTcwIDExQjE7CitCMjQ3O0IyNDc7MTEwMiAxMTcwIDExQjI7QjI0NzsxMTAyIDExNzAgMTFCMjsKK0IyNDg7QjI0ODsxMTAyIDExNzAgMTFCMztCMjQ4OzExMDIgMTE3MCAxMUIzOworQjI0OTtCMjQ5OzExMDIgMTE3MCAxMUI0O0IyNDk7MTEwMiAxMTcwIDExQjQ7CitCMjRBO0IyNEE7MTEwMiAxMTcwIDExQjU7QjI0QTsxMTAyIDExNzAgMTFCNTsKK0IyNEI7QjI0QjsxMTAyIDExNzAgMTFCNjtCMjRCOzExMDIgMTE3MCAxMUI2OworQjI0QztCMjRDOzExMDIgMTE3MCAxMUI3O0IyNEM7MTEwMiAxMTcwIDExQjc7CitCMjREO0IyNEQ7MTEwMiAxMTcwIDExQjg7QjI0RDsxMTAyIDExNzAgMTFCODsKK0IyNEU7QjI0RTsxMTAyIDExNzAgMTFCOTtCMjRFOzExMDIgMTE3MCAxMUI5OworQjI0RjtCMjRGOzExMDIgMTE3MCAxMUJBO0IyNEY7MTEwMiAxMTcwIDExQkE7CitCMjUwO0IyNTA7MTEwMiAxMTcwIDExQkI7QjI1MDsxMTAyIDExNzAgMTFCQjsKK0IyNTE7QjI1MTsxMTAyIDExNzAgMTFCQztCMjUxOzExMDIgMTE3MCAxMUJDOworQjI1MjtCMjUyOzExMDIgMTE3MCAxMUJEO0IyNTI7MTEwMiAxMTcwIDExQkQ7CitCMjUzO0IyNTM7MTEwMiAxMTcwIDExQkU7QjI1MzsxMTAyIDExNzAgMTFCRTsKK0IyNTQ7QjI1NDsxMTAyIDExNzAgMTFCRjtCMjU0OzExMDIgMTE3MCAxMUJGOworQjI1NTtCMjU1OzExMDIgMTE3MCAxMUMwO0IyNTU7MTEwMiAxMTcwIDExQzA7CitCMjU2O0IyNTY7MTEwMiAxMTcwIDExQzE7QjI1NjsxMTAyIDExNzAgMTFDMTsKK0IyNTc7QjI1NzsxMTAyIDExNzAgMTFDMjtCMjU3OzExMDIgMTE3MCAxMUMyOworQjI1ODtCMjU4OzExMDIgMTE3MTtCMjU4OzExMDIgMTE3MTsKK0IyNTk7QjI1OTsxMTAyIDExNzEgMTFBODtCMjU5OzExMDIgMTE3MSAxMUE4OworQjI1QTtCMjVBOzExMDIgMTE3MSAxMUE5O0IyNUE7MTEwMiAxMTcxIDExQTk7CitCMjVCO0IyNUI7MTEwMiAxMTcxIDExQUE7QjI1QjsxMTAyIDExNzEgMTFBQTsKK0IyNUM7QjI1QzsxMTAyIDExNzEgMTFBQjtCMjVDOzExMDIgMTE3MSAxMUFCOworQjI1RDtCMjVEOzExMDIgMTE3MSAxMUFDO0IyNUQ7MTEwMiAxMTcxIDExQUM7CitCMjVFO0IyNUU7MTEwMiAxMTcxIDExQUQ7QjI1RTsxMTAyIDExNzEgMTFBRDsKK0IyNUY7QjI1RjsxMTAyIDExNzEgMTFBRTtCMjVGOzExMDIgMTE3MSAxMUFFOworQjI2MDtCMjYwOzExMDIgMTE3MSAxMUFGO0IyNjA7MTEwMiAxMTcxIDExQUY7CitCMjYxO0IyNjE7MTEwMiAxMTcxIDExQjA7QjI2MTsxMTAyIDExNzEgMTFCMDsKK0IyNjI7QjI2MjsxMTAyIDExNzEgMTFCMTtCMjYyOzExMDIgMTE3MSAxMUIxOworQjI2MztCMjYzOzExMDIgMTE3MSAxMUIyO0IyNjM7MTEwMiAxMTcxIDExQjI7CitCMjY0O0IyNjQ7MTEwMiAxMTcxIDExQjM7QjI2NDsxMTAyIDExNzEgMTFCMzsKK0IyNjU7QjI2NTsxMTAyIDExNzEgMTFCNDtCMjY1OzExMDIgMTE3MSAxMUI0OworQjI2NjtCMjY2OzExMDIgMTE3MSAxMUI1O0IyNjY7MTEwMiAxMTcxIDExQjU7CitCMjY3O0IyNjc7MTEwMiAxMTcxIDExQjY7QjI2NzsxMTAyIDExNzEgMTFCNjsKK0IyNjg7QjI2ODsxMTAyIDExNzEgMTFCNztCMjY4OzExMDIgMTE3MSAxMUI3OworQjI2OTtCMjY5OzExMDIgMTE3MSAxMUI4O0IyNjk7MTEwMiAxMTcxIDExQjg7CitCMjZBO0IyNkE7MTEwMiAxMTcxIDExQjk7QjI2QTsxMTAyIDExNzEgMTFCOTsKK0IyNkI7QjI2QjsxMTAyIDExNzEgMTFCQTtCMjZCOzExMDIgMTE3MSAxMUJBOworQjI2QztCMjZDOzExMDIgMTE3MSAxMUJCO0IyNkM7MTEwMiAxMTcxIDExQkI7CitCMjZEO0IyNkQ7MTEwMiAxMTcxIDExQkM7QjI2RDsxMTAyIDExNzEgMTFCQzsKK0IyNkU7QjI2RTsxMTAyIDExNzEgMTFCRDtCMjZFOzExMDIgMTE3MSAxMUJEOworQjI2RjtCMjZGOzExMDIgMTE3MSAxMUJFO0IyNkY7MTEwMiAxMTcxIDExQkU7CitCMjcwO0IyNzA7MTEwMiAxMTcxIDExQkY7QjI3MDsxMTAyIDExNzEgMTFCRjsKK0IyNzE7QjI3MTsxMTAyIDExNzEgMTFDMDtCMjcxOzExMDIgMTE3MSAxMUMwOworQjI3MjtCMjcyOzExMDIgMTE3MSAxMUMxO0IyNzI7MTEwMiAxMTcxIDExQzE7CitCMjczO0IyNzM7MTEwMiAxMTcxIDExQzI7QjI3MzsxMTAyIDExNzEgMTFDMjsKK0IyNzQ7QjI3NDsxMTAyIDExNzI7QjI3NDsxMTAyIDExNzI7CitCMjc1O0IyNzU7MTEwMiAxMTcyIDExQTg7QjI3NTsxMTAyIDExNzIgMTFBODsKK0IyNzY7QjI3NjsxMTAyIDExNzIgMTFBOTtCMjc2OzExMDIgMTE3MiAxMUE5OworQjI3NztCMjc3OzExMDIgMTE3MiAxMUFBO0IyNzc7MTEwMiAxMTcyIDExQUE7CitCMjc4O0IyNzg7MTEwMiAxMTcyIDExQUI7QjI3ODsxMTAyIDExNzIgMTFBQjsKK0IyNzk7QjI3OTsxMTAyIDExNzIgMTFBQztCMjc5OzExMDIgMTE3MiAxMUFDOworQjI3QTtCMjdBOzExMDIgMTE3MiAxMUFEO0IyN0E7MTEwMiAxMTcyIDExQUQ7CitCMjdCO0IyN0I7MTEwMiAxMTcyIDExQUU7QjI3QjsxMTAyIDExNzIgMTFBRTsKK0IyN0M7QjI3QzsxMTAyIDExNzIgMTFBRjtCMjdDOzExMDIgMTE3MiAxMUFGOworQjI3RDtCMjdEOzExMDIgMTE3MiAxMUIwO0IyN0Q7MTEwMiAxMTcyIDExQjA7CitCMjdFO0IyN0U7MTEwMiAxMTcyIDExQjE7QjI3RTsxMTAyIDExNzIgMTFCMTsKK0IyN0Y7QjI3RjsxMTAyIDExNzIgMTFCMjtCMjdGOzExMDIgMTE3MiAxMUIyOworQjI4MDtCMjgwOzExMDIgMTE3MiAxMUIzO0IyODA7MTEwMiAxMTcyIDExQjM7CitCMjgxO0IyODE7MTEwMiAxMTcyIDExQjQ7QjI4MTsxMTAyIDExNzIgMTFCNDsKK0IyODI7QjI4MjsxMTAyIDExNzIgMTFCNTtCMjgyOzExMDIgMTE3MiAxMUI1OworQjI4MztCMjgzOzExMDIgMTE3MiAxMUI2O0IyODM7MTEwMiAxMTcyIDExQjY7CitCMjg0O0IyODQ7MTEwMiAxMTcyIDExQjc7QjI4NDsxMTAyIDExNzIgMTFCNzsKK0IyODU7QjI4NTsxMTAyIDExNzIgMTFCODtCMjg1OzExMDIgMTE3MiAxMUI4OworQjI4NjtCMjg2OzExMDIgMTE3MiAxMUI5O0IyODY7MTEwMiAxMTcyIDExQjk7CitCMjg3O0IyODc7MTEwMiAxMTcyIDExQkE7QjI4NzsxMTAyIDExNzIgMTFCQTsKK0IyODg7QjI4ODsxMTAyIDExNzIgMTFCQjtCMjg4OzExMDIgMTE3MiAxMUJCOworQjI4OTtCMjg5OzExMDIgMTE3MiAxMUJDO0IyODk7MTEwMiAxMTcyIDExQkM7CitCMjhBO0IyOEE7MTEwMiAxMTcyIDExQkQ7QjI4QTsxMTAyIDExNzIgMTFCRDsKK0IyOEI7QjI4QjsxMTAyIDExNzIgMTFCRTtCMjhCOzExMDIgMTE3MiAxMUJFOworQjI4QztCMjhDOzExMDIgMTE3MiAxMUJGO0IyOEM7MTEwMiAxMTcyIDExQkY7CitCMjhEO0IyOEQ7MTEwMiAxMTcyIDExQzA7QjI4RDsxMTAyIDExNzIgMTFDMDsKK0IyOEU7QjI4RTsxMTAyIDExNzIgMTFDMTtCMjhFOzExMDIgMTE3MiAxMUMxOworQjI4RjtCMjhGOzExMDIgMTE3MiAxMUMyO0IyOEY7MTEwMiAxMTcyIDExQzI7CitCMjkwO0IyOTA7MTEwMiAxMTczO0IyOTA7MTEwMiAxMTczOworQjI5MTtCMjkxOzExMDIgMTE3MyAxMUE4O0IyOTE7MTEwMiAxMTczIDExQTg7CitCMjkyO0IyOTI7MTEwMiAxMTczIDExQTk7QjI5MjsxMTAyIDExNzMgMTFBOTsKK0IyOTM7QjI5MzsxMTAyIDExNzMgMTFBQTtCMjkzOzExMDIgMTE3MyAxMUFBOworQjI5NDtCMjk0OzExMDIgMTE3MyAxMUFCO0IyOTQ7MTEwMiAxMTczIDExQUI7CitCMjk1O0IyOTU7MTEwMiAxMTczIDExQUM7QjI5NTsxMTAyIDExNzMgMTFBQzsKK0IyOTY7QjI5NjsxMTAyIDExNzMgMTFBRDtCMjk2OzExMDIgMTE3MyAxMUFEOworQjI5NztCMjk3OzExMDIgMTE3MyAxMUFFO0IyOTc7MTEwMiAxMTczIDExQUU7CitCMjk4O0IyOTg7MTEwMiAxMTczIDExQUY7QjI5ODsxMTAyIDExNzMgMTFBRjsKK0IyOTk7QjI5OTsxMTAyIDExNzMgMTFCMDtCMjk5OzExMDIgMTE3MyAxMUIwOworQjI5QTtCMjlBOzExMDIgMTE3MyAxMUIxO0IyOUE7MTEwMiAxMTczIDExQjE7CitCMjlCO0IyOUI7MTEwMiAxMTczIDExQjI7QjI5QjsxMTAyIDExNzMgMTFCMjsKK0IyOUM7QjI5QzsxMTAyIDExNzMgMTFCMztCMjlDOzExMDIgMTE3MyAxMUIzOworQjI5RDtCMjlEOzExMDIgMTE3MyAxMUI0O0IyOUQ7MTEwMiAxMTczIDExQjQ7CitCMjlFO0IyOUU7MTEwMiAxMTczIDExQjU7QjI5RTsxMTAyIDExNzMgMTFCNTsKK0IyOUY7QjI5RjsxMTAyIDExNzMgMTFCNjtCMjlGOzExMDIgMTE3MyAxMUI2OworQjJBMDtCMkEwOzExMDIgMTE3MyAxMUI3O0IyQTA7MTEwMiAxMTczIDExQjc7CitCMkExO0IyQTE7MTEwMiAxMTczIDExQjg7QjJBMTsxMTAyIDExNzMgMTFCODsKK0IyQTI7QjJBMjsxMTAyIDExNzMgMTFCOTtCMkEyOzExMDIgMTE3MyAxMUI5OworQjJBMztCMkEzOzExMDIgMTE3MyAxMUJBO0IyQTM7MTEwMiAxMTczIDExQkE7CitCMkE0O0IyQTQ7MTEwMiAxMTczIDExQkI7QjJBNDsxMTAyIDExNzMgMTFCQjsKK0IyQTU7QjJBNTsxMTAyIDExNzMgMTFCQztCMkE1OzExMDIgMTE3MyAxMUJDOworQjJBNjtCMkE2OzExMDIgMTE3MyAxMUJEO0IyQTY7MTEwMiAxMTczIDExQkQ7CitCMkE3O0IyQTc7MTEwMiAxMTczIDExQkU7QjJBNzsxMTAyIDExNzMgMTFCRTsKK0IyQTg7QjJBODsxMTAyIDExNzMgMTFCRjtCMkE4OzExMDIgMTE3MyAxMUJGOworQjJBOTtCMkE5OzExMDIgMTE3MyAxMUMwO0IyQTk7MTEwMiAxMTczIDExQzA7CitCMkFBO0IyQUE7MTEwMiAxMTczIDExQzE7QjJBQTsxMTAyIDExNzMgMTFDMTsKK0IyQUI7QjJBQjsxMTAyIDExNzMgMTFDMjtCMkFCOzExMDIgMTE3MyAxMUMyOworQjJBQztCMkFDOzExMDIgMTE3NDtCMkFDOzExMDIgMTE3NDsKK0IyQUQ7QjJBRDsxMTAyIDExNzQgMTFBODtCMkFEOzExMDIgMTE3NCAxMUE4OworQjJBRTtCMkFFOzExMDIgMTE3NCAxMUE5O0IyQUU7MTEwMiAxMTc0IDExQTk7CitCMkFGO0IyQUY7MTEwMiAxMTc0IDExQUE7QjJBRjsxMTAyIDExNzQgMTFBQTsKK0IyQjA7QjJCMDsxMTAyIDExNzQgMTFBQjtCMkIwOzExMDIgMTE3NCAxMUFCOworQjJCMTtCMkIxOzExMDIgMTE3NCAxMUFDO0IyQjE7MTEwMiAxMTc0IDExQUM7CitCMkIyO0IyQjI7MTEwMiAxMTc0IDExQUQ7QjJCMjsxMTAyIDExNzQgMTFBRDsKK0IyQjM7QjJCMzsxMTAyIDExNzQgMTFBRTtCMkIzOzExMDIgMTE3NCAxMUFFOworQjJCNDtCMkI0OzExMDIgMTE3NCAxMUFGO0IyQjQ7MTEwMiAxMTc0IDExQUY7CitCMkI1O0IyQjU7MTEwMiAxMTc0IDExQjA7QjJCNTsxMTAyIDExNzQgMTFCMDsKK0IyQjY7QjJCNjsxMTAyIDExNzQgMTFCMTtCMkI2OzExMDIgMTE3NCAxMUIxOworQjJCNztCMkI3OzExMDIgMTE3NCAxMUIyO0IyQjc7MTEwMiAxMTc0IDExQjI7CitCMkI4O0IyQjg7MTEwMiAxMTc0IDExQjM7QjJCODsxMTAyIDExNzQgMTFCMzsKK0IyQjk7QjJCOTsxMTAyIDExNzQgMTFCNDtCMkI5OzExMDIgMTE3NCAxMUI0OworQjJCQTtCMkJBOzExMDIgMTE3NCAxMUI1O0IyQkE7MTEwMiAxMTc0IDExQjU7CitCMkJCO0IyQkI7MTEwMiAxMTc0IDExQjY7QjJCQjsxMTAyIDExNzQgMTFCNjsKK0IyQkM7QjJCQzsxMTAyIDExNzQgMTFCNztCMkJDOzExMDIgMTE3NCAxMUI3OworQjJCRDtCMkJEOzExMDIgMTE3NCAxMUI4O0IyQkQ7MTEwMiAxMTc0IDExQjg7CitCMkJFO0IyQkU7MTEwMiAxMTc0IDExQjk7QjJCRTsxMTAyIDExNzQgMTFCOTsKK0IyQkY7QjJCRjsxMTAyIDExNzQgMTFCQTtCMkJGOzExMDIgMTE3NCAxMUJBOworQjJDMDtCMkMwOzExMDIgMTE3NCAxMUJCO0IyQzA7MTEwMiAxMTc0IDExQkI7CitCMkMxO0IyQzE7MTEwMiAxMTc0IDExQkM7QjJDMTsxMTAyIDExNzQgMTFCQzsKK0IyQzI7QjJDMjsxMTAyIDExNzQgMTFCRDtCMkMyOzExMDIgMTE3NCAxMUJEOworQjJDMztCMkMzOzExMDIgMTE3NCAxMUJFO0IyQzM7MTEwMiAxMTc0IDExQkU7CitCMkM0O0IyQzQ7MTEwMiAxMTc0IDExQkY7QjJDNDsxMTAyIDExNzQgMTFCRjsKK0IyQzU7QjJDNTsxMTAyIDExNzQgMTFDMDtCMkM1OzExMDIgMTE3NCAxMUMwOworQjJDNjtCMkM2OzExMDIgMTE3NCAxMUMxO0IyQzY7MTEwMiAxMTc0IDExQzE7CitCMkM3O0IyQzc7MTEwMiAxMTc0IDExQzI7QjJDNzsxMTAyIDExNzQgMTFDMjsKK0IyQzg7QjJDODsxMTAyIDExNzU7QjJDODsxMTAyIDExNzU7CitCMkM5O0IyQzk7MTEwMiAxMTc1IDExQTg7QjJDOTsxMTAyIDExNzUgMTFBODsKK0IyQ0E7QjJDQTsxMTAyIDExNzUgMTFBOTtCMkNBOzExMDIgMTE3NSAxMUE5OworQjJDQjtCMkNCOzExMDIgMTE3NSAxMUFBO0IyQ0I7MTEwMiAxMTc1IDExQUE7CitCMkNDO0IyQ0M7MTEwMiAxMTc1IDExQUI7QjJDQzsxMTAyIDExNzUgMTFBQjsKK0IyQ0Q7QjJDRDsxMTAyIDExNzUgMTFBQztCMkNEOzExMDIgMTE3NSAxMUFDOworQjJDRTtCMkNFOzExMDIgMTE3NSAxMUFEO0IyQ0U7MTEwMiAxMTc1IDExQUQ7CitCMkNGO0IyQ0Y7MTEwMiAxMTc1IDExQUU7QjJDRjsxMTAyIDExNzUgMTFBRTsKK0IyRDA7QjJEMDsxMTAyIDExNzUgMTFBRjtCMkQwOzExMDIgMTE3NSAxMUFGOworQjJEMTtCMkQxOzExMDIgMTE3NSAxMUIwO0IyRDE7MTEwMiAxMTc1IDExQjA7CitCMkQyO0IyRDI7MTEwMiAxMTc1IDExQjE7QjJEMjsxMTAyIDExNzUgMTFCMTsKK0IyRDM7QjJEMzsxMTAyIDExNzUgMTFCMjtCMkQzOzExMDIgMTE3NSAxMUIyOworQjJENDtCMkQ0OzExMDIgMTE3NSAxMUIzO0IyRDQ7MTEwMiAxMTc1IDExQjM7CitCMkQ1O0IyRDU7MTEwMiAxMTc1IDExQjQ7QjJENTsxMTAyIDExNzUgMTFCNDsKK0IyRDY7QjJENjsxMTAyIDExNzUgMTFCNTtCMkQ2OzExMDIgMTE3NSAxMUI1OworQjJENztCMkQ3OzExMDIgMTE3NSAxMUI2O0IyRDc7MTEwMiAxMTc1IDExQjY7CitCMkQ4O0IyRDg7MTEwMiAxMTc1IDExQjc7QjJEODsxMTAyIDExNzUgMTFCNzsKK0IyRDk7QjJEOTsxMTAyIDExNzUgMTFCODtCMkQ5OzExMDIgMTE3NSAxMUI4OworQjJEQTtCMkRBOzExMDIgMTE3NSAxMUI5O0IyREE7MTEwMiAxMTc1IDExQjk7CitCMkRCO0IyREI7MTEwMiAxMTc1IDExQkE7QjJEQjsxMTAyIDExNzUgMTFCQTsKK0IyREM7QjJEQzsxMTAyIDExNzUgMTFCQjtCMkRDOzExMDIgMTE3NSAxMUJCOworQjJERDtCMkREOzExMDIgMTE3NSAxMUJDO0IyREQ7MTEwMiAxMTc1IDExQkM7CitCMkRFO0IyREU7MTEwMiAxMTc1IDExQkQ7QjJERTsxMTAyIDExNzUgMTFCRDsKK0IyREY7QjJERjsxMTAyIDExNzUgMTFCRTtCMkRGOzExMDIgMTE3NSAxMUJFOworQjJFMDtCMkUwOzExMDIgMTE3NSAxMUJGO0IyRTA7MTEwMiAxMTc1IDExQkY7CitCMkUxO0IyRTE7MTEwMiAxMTc1IDExQzA7QjJFMTsxMTAyIDExNzUgMTFDMDsKK0IyRTI7QjJFMjsxMTAyIDExNzUgMTFDMTtCMkUyOzExMDIgMTE3NSAxMUMxOworQjJFMztCMkUzOzExMDIgMTE3NSAxMUMyO0IyRTM7MTEwMiAxMTc1IDExQzI7CitCMkU0O0IyRTQ7MTEwMyAxMTYxO0IyRTQ7MTEwMyAxMTYxOworQjJFNTtCMkU1OzExMDMgMTE2MSAxMUE4O0IyRTU7MTEwMyAxMTYxIDExQTg7CitCMkU2O0IyRTY7MTEwMyAxMTYxIDExQTk7QjJFNjsxMTAzIDExNjEgMTFBOTsKK0IyRTc7QjJFNzsxMTAzIDExNjEgMTFBQTtCMkU3OzExMDMgMTE2MSAxMUFBOworQjJFODtCMkU4OzExMDMgMTE2MSAxMUFCO0IyRTg7MTEwMyAxMTYxIDExQUI7CitCMkU5O0IyRTk7MTEwMyAxMTYxIDExQUM7QjJFOTsxMTAzIDExNjEgMTFBQzsKK0IyRUE7QjJFQTsxMTAzIDExNjEgMTFBRDtCMkVBOzExMDMgMTE2MSAxMUFEOworQjJFQjtCMkVCOzExMDMgMTE2MSAxMUFFO0IyRUI7MTEwMyAxMTYxIDExQUU7CitCMkVDO0IyRUM7MTEwMyAxMTYxIDExQUY7QjJFQzsxMTAzIDExNjEgMTFBRjsKK0IyRUQ7QjJFRDsxMTAzIDExNjEgMTFCMDtCMkVEOzExMDMgMTE2MSAxMUIwOworQjJFRTtCMkVFOzExMDMgMTE2MSAxMUIxO0IyRUU7MTEwMyAxMTYxIDExQjE7CitCMkVGO0IyRUY7MTEwMyAxMTYxIDExQjI7QjJFRjsxMTAzIDExNjEgMTFCMjsKK0IyRjA7QjJGMDsxMTAzIDExNjEgMTFCMztCMkYwOzExMDMgMTE2MSAxMUIzOworQjJGMTtCMkYxOzExMDMgMTE2MSAxMUI0O0IyRjE7MTEwMyAxMTYxIDExQjQ7CitCMkYyO0IyRjI7MTEwMyAxMTYxIDExQjU7QjJGMjsxMTAzIDExNjEgMTFCNTsKK0IyRjM7QjJGMzsxMTAzIDExNjEgMTFCNjtCMkYzOzExMDMgMTE2MSAxMUI2OworQjJGNDtCMkY0OzExMDMgMTE2MSAxMUI3O0IyRjQ7MTEwMyAxMTYxIDExQjc7CitCMkY1O0IyRjU7MTEwMyAxMTYxIDExQjg7QjJGNTsxMTAzIDExNjEgMTFCODsKK0IyRjY7QjJGNjsxMTAzIDExNjEgMTFCOTtCMkY2OzExMDMgMTE2MSAxMUI5OworQjJGNztCMkY3OzExMDMgMTE2MSAxMUJBO0IyRjc7MTEwMyAxMTYxIDExQkE7CitCMkY4O0IyRjg7MTEwMyAxMTYxIDExQkI7QjJGODsxMTAzIDExNjEgMTFCQjsKK0IyRjk7QjJGOTsxMTAzIDExNjEgMTFCQztCMkY5OzExMDMgMTE2MSAxMUJDOworQjJGQTtCMkZBOzExMDMgMTE2MSAxMUJEO0IyRkE7MTEwMyAxMTYxIDExQkQ7CitCMkZCO0IyRkI7MTEwMyAxMTYxIDExQkU7QjJGQjsxMTAzIDExNjEgMTFCRTsKK0IyRkM7QjJGQzsxMTAzIDExNjEgMTFCRjtCMkZDOzExMDMgMTE2MSAxMUJGOworQjJGRDtCMkZEOzExMDMgMTE2MSAxMUMwO0IyRkQ7MTEwMyAxMTYxIDExQzA7CitCMkZFO0IyRkU7MTEwMyAxMTYxIDExQzE7QjJGRTsxMTAzIDExNjEgMTFDMTsKK0IyRkY7QjJGRjsxMTAzIDExNjEgMTFDMjtCMkZGOzExMDMgMTE2MSAxMUMyOworQjMwMDtCMzAwOzExMDMgMTE2MjtCMzAwOzExMDMgMTE2MjsKK0IzMDE7QjMwMTsxMTAzIDExNjIgMTFBODtCMzAxOzExMDMgMTE2MiAxMUE4OworQjMwMjtCMzAyOzExMDMgMTE2MiAxMUE5O0IzMDI7MTEwMyAxMTYyIDExQTk7CitCMzAzO0IzMDM7MTEwMyAxMTYyIDExQUE7QjMwMzsxMTAzIDExNjIgMTFBQTsKK0IzMDQ7QjMwNDsxMTAzIDExNjIgMTFBQjtCMzA0OzExMDMgMTE2MiAxMUFCOworQjMwNTtCMzA1OzExMDMgMTE2MiAxMUFDO0IzMDU7MTEwMyAxMTYyIDExQUM7CitCMzA2O0IzMDY7MTEwMyAxMTYyIDExQUQ7QjMwNjsxMTAzIDExNjIgMTFBRDsKK0IzMDc7QjMwNzsxMTAzIDExNjIgMTFBRTtCMzA3OzExMDMgMTE2MiAxMUFFOworQjMwODtCMzA4OzExMDMgMTE2MiAxMUFGO0IzMDg7MTEwMyAxMTYyIDExQUY7CitCMzA5O0IzMDk7MTEwMyAxMTYyIDExQjA7QjMwOTsxMTAzIDExNjIgMTFCMDsKK0IzMEE7QjMwQTsxMTAzIDExNjIgMTFCMTtCMzBBOzExMDMgMTE2MiAxMUIxOworQjMwQjtCMzBCOzExMDMgMTE2MiAxMUIyO0IzMEI7MTEwMyAxMTYyIDExQjI7CitCMzBDO0IzMEM7MTEwMyAxMTYyIDExQjM7QjMwQzsxMTAzIDExNjIgMTFCMzsKK0IzMEQ7QjMwRDsxMTAzIDExNjIgMTFCNDtCMzBEOzExMDMgMTE2MiAxMUI0OworQjMwRTtCMzBFOzExMDMgMTE2MiAxMUI1O0IzMEU7MTEwMyAxMTYyIDExQjU7CitCMzBGO0IzMEY7MTEwMyAxMTYyIDExQjY7QjMwRjsxMTAzIDExNjIgMTFCNjsKK0IzMTA7QjMxMDsxMTAzIDExNjIgMTFCNztCMzEwOzExMDMgMTE2MiAxMUI3OworQjMxMTtCMzExOzExMDMgMTE2MiAxMUI4O0IzMTE7MTEwMyAxMTYyIDExQjg7CitCMzEyO0IzMTI7MTEwMyAxMTYyIDExQjk7QjMxMjsxMTAzIDExNjIgMTFCOTsKK0IzMTM7QjMxMzsxMTAzIDExNjIgMTFCQTtCMzEzOzExMDMgMTE2MiAxMUJBOworQjMxNDtCMzE0OzExMDMgMTE2MiAxMUJCO0IzMTQ7MTEwMyAxMTYyIDExQkI7CitCMzE1O0IzMTU7MTEwMyAxMTYyIDExQkM7QjMxNTsxMTAzIDExNjIgMTFCQzsKK0IzMTY7QjMxNjsxMTAzIDExNjIgMTFCRDtCMzE2OzExMDMgMTE2MiAxMUJEOworQjMxNztCMzE3OzExMDMgMTE2MiAxMUJFO0IzMTc7MTEwMyAxMTYyIDExQkU7CitCMzE4O0IzMTg7MTEwMyAxMTYyIDExQkY7QjMxODsxMTAzIDExNjIgMTFCRjsKK0IzMTk7QjMxOTsxMTAzIDExNjIgMTFDMDtCMzE5OzExMDMgMTE2MiAxMUMwOworQjMxQTtCMzFBOzExMDMgMTE2MiAxMUMxO0IzMUE7MTEwMyAxMTYyIDExQzE7CitCMzFCO0IzMUI7MTEwMyAxMTYyIDExQzI7QjMxQjsxMTAzIDExNjIgMTFDMjsKK0IzMUM7QjMxQzsxMTAzIDExNjM7QjMxQzsxMTAzIDExNjM7CitCMzFEO0IzMUQ7MTEwMyAxMTYzIDExQTg7QjMxRDsxMTAzIDExNjMgMTFBODsKK0IzMUU7QjMxRTsxMTAzIDExNjMgMTFBOTtCMzFFOzExMDMgMTE2MyAxMUE5OworQjMxRjtCMzFGOzExMDMgMTE2MyAxMUFBO0IzMUY7MTEwMyAxMTYzIDExQUE7CitCMzIwO0IzMjA7MTEwMyAxMTYzIDExQUI7QjMyMDsxMTAzIDExNjMgMTFBQjsKK0IzMjE7QjMyMTsxMTAzIDExNjMgMTFBQztCMzIxOzExMDMgMTE2MyAxMUFDOworQjMyMjtCMzIyOzExMDMgMTE2MyAxMUFEO0IzMjI7MTEwMyAxMTYzIDExQUQ7CitCMzIzO0IzMjM7MTEwMyAxMTYzIDExQUU7QjMyMzsxMTAzIDExNjMgMTFBRTsKK0IzMjQ7QjMyNDsxMTAzIDExNjMgMTFBRjtCMzI0OzExMDMgMTE2MyAxMUFGOworQjMyNTtCMzI1OzExMDMgMTE2MyAxMUIwO0IzMjU7MTEwMyAxMTYzIDExQjA7CitCMzI2O0IzMjY7MTEwMyAxMTYzIDExQjE7QjMyNjsxMTAzIDExNjMgMTFCMTsKK0IzMjc7QjMyNzsxMTAzIDExNjMgMTFCMjtCMzI3OzExMDMgMTE2MyAxMUIyOworQjMyODtCMzI4OzExMDMgMTE2MyAxMUIzO0IzMjg7MTEwMyAxMTYzIDExQjM7CitCMzI5O0IzMjk7MTEwMyAxMTYzIDExQjQ7QjMyOTsxMTAzIDExNjMgMTFCNDsKK0IzMkE7QjMyQTsxMTAzIDExNjMgMTFCNTtCMzJBOzExMDMgMTE2MyAxMUI1OworQjMyQjtCMzJCOzExMDMgMTE2MyAxMUI2O0IzMkI7MTEwMyAxMTYzIDExQjY7CitCMzJDO0IzMkM7MTEwMyAxMTYzIDExQjc7QjMyQzsxMTAzIDExNjMgMTFCNzsKK0IzMkQ7QjMyRDsxMTAzIDExNjMgMTFCODtCMzJEOzExMDMgMTE2MyAxMUI4OworQjMyRTtCMzJFOzExMDMgMTE2MyAxMUI5O0IzMkU7MTEwMyAxMTYzIDExQjk7CitCMzJGO0IzMkY7MTEwMyAxMTYzIDExQkE7QjMyRjsxMTAzIDExNjMgMTFCQTsKK0IzMzA7QjMzMDsxMTAzIDExNjMgMTFCQjtCMzMwOzExMDMgMTE2MyAxMUJCOworQjMzMTtCMzMxOzExMDMgMTE2MyAxMUJDO0IzMzE7MTEwMyAxMTYzIDExQkM7CitCMzMyO0IzMzI7MTEwMyAxMTYzIDExQkQ7QjMzMjsxMTAzIDExNjMgMTFCRDsKK0IzMzM7QjMzMzsxMTAzIDExNjMgMTFCRTtCMzMzOzExMDMgMTE2MyAxMUJFOworQjMzNDtCMzM0OzExMDMgMTE2MyAxMUJGO0IzMzQ7MTEwMyAxMTYzIDExQkY7CitCMzM1O0IzMzU7MTEwMyAxMTYzIDExQzA7QjMzNTsxMTAzIDExNjMgMTFDMDsKK0IzMzY7QjMzNjsxMTAzIDExNjMgMTFDMTtCMzM2OzExMDMgMTE2MyAxMUMxOworQjMzNztCMzM3OzExMDMgMTE2MyAxMUMyO0IzMzc7MTEwMyAxMTYzIDExQzI7CitCMzM4O0IzMzg7MTEwMyAxMTY0O0IzMzg7MTEwMyAxMTY0OworQjMzOTtCMzM5OzExMDMgMTE2NCAxMUE4O0IzMzk7MTEwMyAxMTY0IDExQTg7CitCMzNBO0IzM0E7MTEwMyAxMTY0IDExQTk7QjMzQTsxMTAzIDExNjQgMTFBOTsKK0IzM0I7QjMzQjsxMTAzIDExNjQgMTFBQTtCMzNCOzExMDMgMTE2NCAxMUFBOworQjMzQztCMzNDOzExMDMgMTE2NCAxMUFCO0IzM0M7MTEwMyAxMTY0IDExQUI7CitCMzNEO0IzM0Q7MTEwMyAxMTY0IDExQUM7QjMzRDsxMTAzIDExNjQgMTFBQzsKK0IzM0U7QjMzRTsxMTAzIDExNjQgMTFBRDtCMzNFOzExMDMgMTE2NCAxMUFEOworQjMzRjtCMzNGOzExMDMgMTE2NCAxMUFFO0IzM0Y7MTEwMyAxMTY0IDExQUU7CitCMzQwO0IzNDA7MTEwMyAxMTY0IDExQUY7QjM0MDsxMTAzIDExNjQgMTFBRjsKK0IzNDE7QjM0MTsxMTAzIDExNjQgMTFCMDtCMzQxOzExMDMgMTE2NCAxMUIwOworQjM0MjtCMzQyOzExMDMgMTE2NCAxMUIxO0IzNDI7MTEwMyAxMTY0IDExQjE7CitCMzQzO0IzNDM7MTEwMyAxMTY0IDExQjI7QjM0MzsxMTAzIDExNjQgMTFCMjsKK0IzNDQ7QjM0NDsxMTAzIDExNjQgMTFCMztCMzQ0OzExMDMgMTE2NCAxMUIzOworQjM0NTtCMzQ1OzExMDMgMTE2NCAxMUI0O0IzNDU7MTEwMyAxMTY0IDExQjQ7CitCMzQ2O0IzNDY7MTEwMyAxMTY0IDExQjU7QjM0NjsxMTAzIDExNjQgMTFCNTsKK0IzNDc7QjM0NzsxMTAzIDExNjQgMTFCNjtCMzQ3OzExMDMgMTE2NCAxMUI2OworQjM0ODtCMzQ4OzExMDMgMTE2NCAxMUI3O0IzNDg7MTEwMyAxMTY0IDExQjc7CitCMzQ5O0IzNDk7MTEwMyAxMTY0IDExQjg7QjM0OTsxMTAzIDExNjQgMTFCODsKK0IzNEE7QjM0QTsxMTAzIDExNjQgMTFCOTtCMzRBOzExMDMgMTE2NCAxMUI5OworQjM0QjtCMzRCOzExMDMgMTE2NCAxMUJBO0IzNEI7MTEwMyAxMTY0IDExQkE7CitCMzRDO0IzNEM7MTEwMyAxMTY0IDExQkI7QjM0QzsxMTAzIDExNjQgMTFCQjsKK0IzNEQ7QjM0RDsxMTAzIDExNjQgMTFCQztCMzREOzExMDMgMTE2NCAxMUJDOworQjM0RTtCMzRFOzExMDMgMTE2NCAxMUJEO0IzNEU7MTEwMyAxMTY0IDExQkQ7CitCMzRGO0IzNEY7MTEwMyAxMTY0IDExQkU7QjM0RjsxMTAzIDExNjQgMTFCRTsKK0IzNTA7QjM1MDsxMTAzIDExNjQgMTFCRjtCMzUwOzExMDMgMTE2NCAxMUJGOworQjM1MTtCMzUxOzExMDMgMTE2NCAxMUMwO0IzNTE7MTEwMyAxMTY0IDExQzA7CitCMzUyO0IzNTI7MTEwMyAxMTY0IDExQzE7QjM1MjsxMTAzIDExNjQgMTFDMTsKK0IzNTM7QjM1MzsxMTAzIDExNjQgMTFDMjtCMzUzOzExMDMgMTE2NCAxMUMyOworQjM1NDtCMzU0OzExMDMgMTE2NTtCMzU0OzExMDMgMTE2NTsKK0IzNTU7QjM1NTsxMTAzIDExNjUgMTFBODtCMzU1OzExMDMgMTE2NSAxMUE4OworQjM1NjtCMzU2OzExMDMgMTE2NSAxMUE5O0IzNTY7MTEwMyAxMTY1IDExQTk7CitCMzU3O0IzNTc7MTEwMyAxMTY1IDExQUE7QjM1NzsxMTAzIDExNjUgMTFBQTsKK0IzNTg7QjM1ODsxMTAzIDExNjUgMTFBQjtCMzU4OzExMDMgMTE2NSAxMUFCOworQjM1OTtCMzU5OzExMDMgMTE2NSAxMUFDO0IzNTk7MTEwMyAxMTY1IDExQUM7CitCMzVBO0IzNUE7MTEwMyAxMTY1IDExQUQ7QjM1QTsxMTAzIDExNjUgMTFBRDsKK0IzNUI7QjM1QjsxMTAzIDExNjUgMTFBRTtCMzVCOzExMDMgMTE2NSAxMUFFOworQjM1QztCMzVDOzExMDMgMTE2NSAxMUFGO0IzNUM7MTEwMyAxMTY1IDExQUY7CitCMzVEO0IzNUQ7MTEwMyAxMTY1IDExQjA7QjM1RDsxMTAzIDExNjUgMTFCMDsKK0IzNUU7QjM1RTsxMTAzIDExNjUgMTFCMTtCMzVFOzExMDMgMTE2NSAxMUIxOworQjM1RjtCMzVGOzExMDMgMTE2NSAxMUIyO0IzNUY7MTEwMyAxMTY1IDExQjI7CitCMzYwO0IzNjA7MTEwMyAxMTY1IDExQjM7QjM2MDsxMTAzIDExNjUgMTFCMzsKK0IzNjE7QjM2MTsxMTAzIDExNjUgMTFCNDtCMzYxOzExMDMgMTE2NSAxMUI0OworQjM2MjtCMzYyOzExMDMgMTE2NSAxMUI1O0IzNjI7MTEwMyAxMTY1IDExQjU7CitCMzYzO0IzNjM7MTEwMyAxMTY1IDExQjY7QjM2MzsxMTAzIDExNjUgMTFCNjsKK0IzNjQ7QjM2NDsxMTAzIDExNjUgMTFCNztCMzY0OzExMDMgMTE2NSAxMUI3OworQjM2NTtCMzY1OzExMDMgMTE2NSAxMUI4O0IzNjU7MTEwMyAxMTY1IDExQjg7CitCMzY2O0IzNjY7MTEwMyAxMTY1IDExQjk7QjM2NjsxMTAzIDExNjUgMTFCOTsKK0IzNjc7QjM2NzsxMTAzIDExNjUgMTFCQTtCMzY3OzExMDMgMTE2NSAxMUJBOworQjM2ODtCMzY4OzExMDMgMTE2NSAxMUJCO0IzNjg7MTEwMyAxMTY1IDExQkI7CitCMzY5O0IzNjk7MTEwMyAxMTY1IDExQkM7QjM2OTsxMTAzIDExNjUgMTFCQzsKK0IzNkE7QjM2QTsxMTAzIDExNjUgMTFCRDtCMzZBOzExMDMgMTE2NSAxMUJEOworQjM2QjtCMzZCOzExMDMgMTE2NSAxMUJFO0IzNkI7MTEwMyAxMTY1IDExQkU7CitCMzZDO0IzNkM7MTEwMyAxMTY1IDExQkY7QjM2QzsxMTAzIDExNjUgMTFCRjsKK0IzNkQ7QjM2RDsxMTAzIDExNjUgMTFDMDtCMzZEOzExMDMgMTE2NSAxMUMwOworQjM2RTtCMzZFOzExMDMgMTE2NSAxMUMxO0IzNkU7MTEwMyAxMTY1IDExQzE7CitCMzZGO0IzNkY7MTEwMyAxMTY1IDExQzI7QjM2RjsxMTAzIDExNjUgMTFDMjsKK0IzNzA7QjM3MDsxMTAzIDExNjY7QjM3MDsxMTAzIDExNjY7CitCMzcxO0IzNzE7MTEwMyAxMTY2IDExQTg7QjM3MTsxMTAzIDExNjYgMTFBODsKK0IzNzI7QjM3MjsxMTAzIDExNjYgMTFBOTtCMzcyOzExMDMgMTE2NiAxMUE5OworQjM3MztCMzczOzExMDMgMTE2NiAxMUFBO0IzNzM7MTEwMyAxMTY2IDExQUE7CitCMzc0O0IzNzQ7MTEwMyAxMTY2IDExQUI7QjM3NDsxMTAzIDExNjYgMTFBQjsKK0IzNzU7QjM3NTsxMTAzIDExNjYgMTFBQztCMzc1OzExMDMgMTE2NiAxMUFDOworQjM3NjtCMzc2OzExMDMgMTE2NiAxMUFEO0IzNzY7MTEwMyAxMTY2IDExQUQ7CitCMzc3O0IzNzc7MTEwMyAxMTY2IDExQUU7QjM3NzsxMTAzIDExNjYgMTFBRTsKK0IzNzg7QjM3ODsxMTAzIDExNjYgMTFBRjtCMzc4OzExMDMgMTE2NiAxMUFGOworQjM3OTtCMzc5OzExMDMgMTE2NiAxMUIwO0IzNzk7MTEwMyAxMTY2IDExQjA7CitCMzdBO0IzN0E7MTEwMyAxMTY2IDExQjE7QjM3QTsxMTAzIDExNjYgMTFCMTsKK0IzN0I7QjM3QjsxMTAzIDExNjYgMTFCMjtCMzdCOzExMDMgMTE2NiAxMUIyOworQjM3QztCMzdDOzExMDMgMTE2NiAxMUIzO0IzN0M7MTEwMyAxMTY2IDExQjM7CitCMzdEO0IzN0Q7MTEwMyAxMTY2IDExQjQ7QjM3RDsxMTAzIDExNjYgMTFCNDsKK0IzN0U7QjM3RTsxMTAzIDExNjYgMTFCNTtCMzdFOzExMDMgMTE2NiAxMUI1OworQjM3RjtCMzdGOzExMDMgMTE2NiAxMUI2O0IzN0Y7MTEwMyAxMTY2IDExQjY7CitCMzgwO0IzODA7MTEwMyAxMTY2IDExQjc7QjM4MDsxMTAzIDExNjYgMTFCNzsKK0IzODE7QjM4MTsxMTAzIDExNjYgMTFCODtCMzgxOzExMDMgMTE2NiAxMUI4OworQjM4MjtCMzgyOzExMDMgMTE2NiAxMUI5O0IzODI7MTEwMyAxMTY2IDExQjk7CitCMzgzO0IzODM7MTEwMyAxMTY2IDExQkE7QjM4MzsxMTAzIDExNjYgMTFCQTsKK0IzODQ7QjM4NDsxMTAzIDExNjYgMTFCQjtCMzg0OzExMDMgMTE2NiAxMUJCOworQjM4NTtCMzg1OzExMDMgMTE2NiAxMUJDO0IzODU7MTEwMyAxMTY2IDExQkM7CitCMzg2O0IzODY7MTEwMyAxMTY2IDExQkQ7QjM4NjsxMTAzIDExNjYgMTFCRDsKK0IzODc7QjM4NzsxMTAzIDExNjYgMTFCRTtCMzg3OzExMDMgMTE2NiAxMUJFOworQjM4ODtCMzg4OzExMDMgMTE2NiAxMUJGO0IzODg7MTEwMyAxMTY2IDExQkY7CitCMzg5O0IzODk7MTEwMyAxMTY2IDExQzA7QjM4OTsxMTAzIDExNjYgMTFDMDsKK0IzOEE7QjM4QTsxMTAzIDExNjYgMTFDMTtCMzhBOzExMDMgMTE2NiAxMUMxOworQjM4QjtCMzhCOzExMDMgMTE2NiAxMUMyO0IzOEI7MTEwMyAxMTY2IDExQzI7CitCMzhDO0IzOEM7MTEwMyAxMTY3O0IzOEM7MTEwMyAxMTY3OworQjM4RDtCMzhEOzExMDMgMTE2NyAxMUE4O0IzOEQ7MTEwMyAxMTY3IDExQTg7CitCMzhFO0IzOEU7MTEwMyAxMTY3IDExQTk7QjM4RTsxMTAzIDExNjcgMTFBOTsKK0IzOEY7QjM4RjsxMTAzIDExNjcgMTFBQTtCMzhGOzExMDMgMTE2NyAxMUFBOworQjM5MDtCMzkwOzExMDMgMTE2NyAxMUFCO0IzOTA7MTEwMyAxMTY3IDExQUI7CitCMzkxO0IzOTE7MTEwMyAxMTY3IDExQUM7QjM5MTsxMTAzIDExNjcgMTFBQzsKK0IzOTI7QjM5MjsxMTAzIDExNjcgMTFBRDtCMzkyOzExMDMgMTE2NyAxMUFEOworQjM5MztCMzkzOzExMDMgMTE2NyAxMUFFO0IzOTM7MTEwMyAxMTY3IDExQUU7CitCMzk0O0IzOTQ7MTEwMyAxMTY3IDExQUY7QjM5NDsxMTAzIDExNjcgMTFBRjsKK0IzOTU7QjM5NTsxMTAzIDExNjcgMTFCMDtCMzk1OzExMDMgMTE2NyAxMUIwOworQjM5NjtCMzk2OzExMDMgMTE2NyAxMUIxO0IzOTY7MTEwMyAxMTY3IDExQjE7CitCMzk3O0IzOTc7MTEwMyAxMTY3IDExQjI7QjM5NzsxMTAzIDExNjcgMTFCMjsKK0IzOTg7QjM5ODsxMTAzIDExNjcgMTFCMztCMzk4OzExMDMgMTE2NyAxMUIzOworQjM5OTtCMzk5OzExMDMgMTE2NyAxMUI0O0IzOTk7MTEwMyAxMTY3IDExQjQ7CitCMzlBO0IzOUE7MTEwMyAxMTY3IDExQjU7QjM5QTsxMTAzIDExNjcgMTFCNTsKK0IzOUI7QjM5QjsxMTAzIDExNjcgMTFCNjtCMzlCOzExMDMgMTE2NyAxMUI2OworQjM5QztCMzlDOzExMDMgMTE2NyAxMUI3O0IzOUM7MTEwMyAxMTY3IDExQjc7CitCMzlEO0IzOUQ7MTEwMyAxMTY3IDExQjg7QjM5RDsxMTAzIDExNjcgMTFCODsKK0IzOUU7QjM5RTsxMTAzIDExNjcgMTFCOTtCMzlFOzExMDMgMTE2NyAxMUI5OworQjM5RjtCMzlGOzExMDMgMTE2NyAxMUJBO0IzOUY7MTEwMyAxMTY3IDExQkE7CitCM0EwO0IzQTA7MTEwMyAxMTY3IDExQkI7QjNBMDsxMTAzIDExNjcgMTFCQjsKK0IzQTE7QjNBMTsxMTAzIDExNjcgMTFCQztCM0ExOzExMDMgMTE2NyAxMUJDOworQjNBMjtCM0EyOzExMDMgMTE2NyAxMUJEO0IzQTI7MTEwMyAxMTY3IDExQkQ7CitCM0EzO0IzQTM7MTEwMyAxMTY3IDExQkU7QjNBMzsxMTAzIDExNjcgMTFCRTsKK0IzQTQ7QjNBNDsxMTAzIDExNjcgMTFCRjtCM0E0OzExMDMgMTE2NyAxMUJGOworQjNBNTtCM0E1OzExMDMgMTE2NyAxMUMwO0IzQTU7MTEwMyAxMTY3IDExQzA7CitCM0E2O0IzQTY7MTEwMyAxMTY3IDExQzE7QjNBNjsxMTAzIDExNjcgMTFDMTsKK0IzQTc7QjNBNzsxMTAzIDExNjcgMTFDMjtCM0E3OzExMDMgMTE2NyAxMUMyOworQjNBODtCM0E4OzExMDMgMTE2ODtCM0E4OzExMDMgMTE2ODsKK0IzQTk7QjNBOTsxMTAzIDExNjggMTFBODtCM0E5OzExMDMgMTE2OCAxMUE4OworQjNBQTtCM0FBOzExMDMgMTE2OCAxMUE5O0IzQUE7MTEwMyAxMTY4IDExQTk7CitCM0FCO0IzQUI7MTEwMyAxMTY4IDExQUE7QjNBQjsxMTAzIDExNjggMTFBQTsKK0IzQUM7QjNBQzsxMTAzIDExNjggMTFBQjtCM0FDOzExMDMgMTE2OCAxMUFCOworQjNBRDtCM0FEOzExMDMgMTE2OCAxMUFDO0IzQUQ7MTEwMyAxMTY4IDExQUM7CitCM0FFO0IzQUU7MTEwMyAxMTY4IDExQUQ7QjNBRTsxMTAzIDExNjggMTFBRDsKK0IzQUY7QjNBRjsxMTAzIDExNjggMTFBRTtCM0FGOzExMDMgMTE2OCAxMUFFOworQjNCMDtCM0IwOzExMDMgMTE2OCAxMUFGO0IzQjA7MTEwMyAxMTY4IDExQUY7CitCM0IxO0IzQjE7MTEwMyAxMTY4IDExQjA7QjNCMTsxMTAzIDExNjggMTFCMDsKK0IzQjI7QjNCMjsxMTAzIDExNjggMTFCMTtCM0IyOzExMDMgMTE2OCAxMUIxOworQjNCMztCM0IzOzExMDMgMTE2OCAxMUIyO0IzQjM7MTEwMyAxMTY4IDExQjI7CitCM0I0O0IzQjQ7MTEwMyAxMTY4IDExQjM7QjNCNDsxMTAzIDExNjggMTFCMzsKK0IzQjU7QjNCNTsxMTAzIDExNjggMTFCNDtCM0I1OzExMDMgMTE2OCAxMUI0OworQjNCNjtCM0I2OzExMDMgMTE2OCAxMUI1O0IzQjY7MTEwMyAxMTY4IDExQjU7CitCM0I3O0IzQjc7MTEwMyAxMTY4IDExQjY7QjNCNzsxMTAzIDExNjggMTFCNjsKK0IzQjg7QjNCODsxMTAzIDExNjggMTFCNztCM0I4OzExMDMgMTE2OCAxMUI3OworQjNCOTtCM0I5OzExMDMgMTE2OCAxMUI4O0IzQjk7MTEwMyAxMTY4IDExQjg7CitCM0JBO0IzQkE7MTEwMyAxMTY4IDExQjk7QjNCQTsxMTAzIDExNjggMTFCOTsKK0IzQkI7QjNCQjsxMTAzIDExNjggMTFCQTtCM0JCOzExMDMgMTE2OCAxMUJBOworQjNCQztCM0JDOzExMDMgMTE2OCAxMUJCO0IzQkM7MTEwMyAxMTY4IDExQkI7CitCM0JEO0IzQkQ7MTEwMyAxMTY4IDExQkM7QjNCRDsxMTAzIDExNjggMTFCQzsKK0IzQkU7QjNCRTsxMTAzIDExNjggMTFCRDtCM0JFOzExMDMgMTE2OCAxMUJEOworQjNCRjtCM0JGOzExMDMgMTE2OCAxMUJFO0IzQkY7MTEwMyAxMTY4IDExQkU7CitCM0MwO0IzQzA7MTEwMyAxMTY4IDExQkY7QjNDMDsxMTAzIDExNjggMTFCRjsKK0IzQzE7QjNDMTsxMTAzIDExNjggMTFDMDtCM0MxOzExMDMgMTE2OCAxMUMwOworQjNDMjtCM0MyOzExMDMgMTE2OCAxMUMxO0IzQzI7MTEwMyAxMTY4IDExQzE7CitCM0MzO0IzQzM7MTEwMyAxMTY4IDExQzI7QjNDMzsxMTAzIDExNjggMTFDMjsKK0IzQzQ7QjNDNDsxMTAzIDExNjk7QjNDNDsxMTAzIDExNjk7CitCM0M1O0IzQzU7MTEwMyAxMTY5IDExQTg7QjNDNTsxMTAzIDExNjkgMTFBODsKK0IzQzY7QjNDNjsxMTAzIDExNjkgMTFBOTtCM0M2OzExMDMgMTE2OSAxMUE5OworQjNDNztCM0M3OzExMDMgMTE2OSAxMUFBO0IzQzc7MTEwMyAxMTY5IDExQUE7CitCM0M4O0IzQzg7MTEwMyAxMTY5IDExQUI7QjNDODsxMTAzIDExNjkgMTFBQjsKK0IzQzk7QjNDOTsxMTAzIDExNjkgMTFBQztCM0M5OzExMDMgMTE2OSAxMUFDOworQjNDQTtCM0NBOzExMDMgMTE2OSAxMUFEO0IzQ0E7MTEwMyAxMTY5IDExQUQ7CitCM0NCO0IzQ0I7MTEwMyAxMTY5IDExQUU7QjNDQjsxMTAzIDExNjkgMTFBRTsKK0IzQ0M7QjNDQzsxMTAzIDExNjkgMTFBRjtCM0NDOzExMDMgMTE2OSAxMUFGOworQjNDRDtCM0NEOzExMDMgMTE2OSAxMUIwO0IzQ0Q7MTEwMyAxMTY5IDExQjA7CitCM0NFO0IzQ0U7MTEwMyAxMTY5IDExQjE7QjNDRTsxMTAzIDExNjkgMTFCMTsKK0IzQ0Y7QjNDRjsxMTAzIDExNjkgMTFCMjtCM0NGOzExMDMgMTE2OSAxMUIyOworQjNEMDtCM0QwOzExMDMgMTE2OSAxMUIzO0IzRDA7MTEwMyAxMTY5IDExQjM7CitCM0QxO0IzRDE7MTEwMyAxMTY5IDExQjQ7QjNEMTsxMTAzIDExNjkgMTFCNDsKK0IzRDI7QjNEMjsxMTAzIDExNjkgMTFCNTtCM0QyOzExMDMgMTE2OSAxMUI1OworQjNEMztCM0QzOzExMDMgMTE2OSAxMUI2O0IzRDM7MTEwMyAxMTY5IDExQjY7CitCM0Q0O0IzRDQ7MTEwMyAxMTY5IDExQjc7QjNENDsxMTAzIDExNjkgMTFCNzsKK0IzRDU7QjNENTsxMTAzIDExNjkgMTFCODtCM0Q1OzExMDMgMTE2OSAxMUI4OworQjNENjtCM0Q2OzExMDMgMTE2OSAxMUI5O0IzRDY7MTEwMyAxMTY5IDExQjk7CitCM0Q3O0IzRDc7MTEwMyAxMTY5IDExQkE7QjNENzsxMTAzIDExNjkgMTFCQTsKK0IzRDg7QjNEODsxMTAzIDExNjkgMTFCQjtCM0Q4OzExMDMgMTE2OSAxMUJCOworQjNEOTtCM0Q5OzExMDMgMTE2OSAxMUJDO0IzRDk7MTEwMyAxMTY5IDExQkM7CitCM0RBO0IzREE7MTEwMyAxMTY5IDExQkQ7QjNEQTsxMTAzIDExNjkgMTFCRDsKK0IzREI7QjNEQjsxMTAzIDExNjkgMTFCRTtCM0RCOzExMDMgMTE2OSAxMUJFOworQjNEQztCM0RDOzExMDMgMTE2OSAxMUJGO0IzREM7MTEwMyAxMTY5IDExQkY7CitCM0REO0IzREQ7MTEwMyAxMTY5IDExQzA7QjNERDsxMTAzIDExNjkgMTFDMDsKK0IzREU7QjNERTsxMTAzIDExNjkgMTFDMTtCM0RFOzExMDMgMTE2OSAxMUMxOworQjNERjtCM0RGOzExMDMgMTE2OSAxMUMyO0IzREY7MTEwMyAxMTY5IDExQzI7CitCM0UwO0IzRTA7MTEwMyAxMTZBO0IzRTA7MTEwMyAxMTZBOworQjNFMTtCM0UxOzExMDMgMTE2QSAxMUE4O0IzRTE7MTEwMyAxMTZBIDExQTg7CitCM0UyO0IzRTI7MTEwMyAxMTZBIDExQTk7QjNFMjsxMTAzIDExNkEgMTFBOTsKK0IzRTM7QjNFMzsxMTAzIDExNkEgMTFBQTtCM0UzOzExMDMgMTE2QSAxMUFBOworQjNFNDtCM0U0OzExMDMgMTE2QSAxMUFCO0IzRTQ7MTEwMyAxMTZBIDExQUI7CitCM0U1O0IzRTU7MTEwMyAxMTZBIDExQUM7QjNFNTsxMTAzIDExNkEgMTFBQzsKK0IzRTY7QjNFNjsxMTAzIDExNkEgMTFBRDtCM0U2OzExMDMgMTE2QSAxMUFEOworQjNFNztCM0U3OzExMDMgMTE2QSAxMUFFO0IzRTc7MTEwMyAxMTZBIDExQUU7CitCM0U4O0IzRTg7MTEwMyAxMTZBIDExQUY7QjNFODsxMTAzIDExNkEgMTFBRjsKK0IzRTk7QjNFOTsxMTAzIDExNkEgMTFCMDtCM0U5OzExMDMgMTE2QSAxMUIwOworQjNFQTtCM0VBOzExMDMgMTE2QSAxMUIxO0IzRUE7MTEwMyAxMTZBIDExQjE7CitCM0VCO0IzRUI7MTEwMyAxMTZBIDExQjI7QjNFQjsxMTAzIDExNkEgMTFCMjsKK0IzRUM7QjNFQzsxMTAzIDExNkEgMTFCMztCM0VDOzExMDMgMTE2QSAxMUIzOworQjNFRDtCM0VEOzExMDMgMTE2QSAxMUI0O0IzRUQ7MTEwMyAxMTZBIDExQjQ7CitCM0VFO0IzRUU7MTEwMyAxMTZBIDExQjU7QjNFRTsxMTAzIDExNkEgMTFCNTsKK0IzRUY7QjNFRjsxMTAzIDExNkEgMTFCNjtCM0VGOzExMDMgMTE2QSAxMUI2OworQjNGMDtCM0YwOzExMDMgMTE2QSAxMUI3O0IzRjA7MTEwMyAxMTZBIDExQjc7CitCM0YxO0IzRjE7MTEwMyAxMTZBIDExQjg7QjNGMTsxMTAzIDExNkEgMTFCODsKK0IzRjI7QjNGMjsxMTAzIDExNkEgMTFCOTtCM0YyOzExMDMgMTE2QSAxMUI5OworQjNGMztCM0YzOzExMDMgMTE2QSAxMUJBO0IzRjM7MTEwMyAxMTZBIDExQkE7CitCM0Y0O0IzRjQ7MTEwMyAxMTZBIDExQkI7QjNGNDsxMTAzIDExNkEgMTFCQjsKK0IzRjU7QjNGNTsxMTAzIDExNkEgMTFCQztCM0Y1OzExMDMgMTE2QSAxMUJDOworQjNGNjtCM0Y2OzExMDMgMTE2QSAxMUJEO0IzRjY7MTEwMyAxMTZBIDExQkQ7CitCM0Y3O0IzRjc7MTEwMyAxMTZBIDExQkU7QjNGNzsxMTAzIDExNkEgMTFCRTsKK0IzRjg7QjNGODsxMTAzIDExNkEgMTFCRjtCM0Y4OzExMDMgMTE2QSAxMUJGOworQjNGOTtCM0Y5OzExMDMgMTE2QSAxMUMwO0IzRjk7MTEwMyAxMTZBIDExQzA7CitCM0ZBO0IzRkE7MTEwMyAxMTZBIDExQzE7QjNGQTsxMTAzIDExNkEgMTFDMTsKK0IzRkI7QjNGQjsxMTAzIDExNkEgMTFDMjtCM0ZCOzExMDMgMTE2QSAxMUMyOworQjNGQztCM0ZDOzExMDMgMTE2QjtCM0ZDOzExMDMgMTE2QjsKK0IzRkQ7QjNGRDsxMTAzIDExNkIgMTFBODtCM0ZEOzExMDMgMTE2QiAxMUE4OworQjNGRTtCM0ZFOzExMDMgMTE2QiAxMUE5O0IzRkU7MTEwMyAxMTZCIDExQTk7CitCM0ZGO0IzRkY7MTEwMyAxMTZCIDExQUE7QjNGRjsxMTAzIDExNkIgMTFBQTsKK0I0MDA7QjQwMDsxMTAzIDExNkIgMTFBQjtCNDAwOzExMDMgMTE2QiAxMUFCOworQjQwMTtCNDAxOzExMDMgMTE2QiAxMUFDO0I0MDE7MTEwMyAxMTZCIDExQUM7CitCNDAyO0I0MDI7MTEwMyAxMTZCIDExQUQ7QjQwMjsxMTAzIDExNkIgMTFBRDsKK0I0MDM7QjQwMzsxMTAzIDExNkIgMTFBRTtCNDAzOzExMDMgMTE2QiAxMUFFOworQjQwNDtCNDA0OzExMDMgMTE2QiAxMUFGO0I0MDQ7MTEwMyAxMTZCIDExQUY7CitCNDA1O0I0MDU7MTEwMyAxMTZCIDExQjA7QjQwNTsxMTAzIDExNkIgMTFCMDsKK0I0MDY7QjQwNjsxMTAzIDExNkIgMTFCMTtCNDA2OzExMDMgMTE2QiAxMUIxOworQjQwNztCNDA3OzExMDMgMTE2QiAxMUIyO0I0MDc7MTEwMyAxMTZCIDExQjI7CitCNDA4O0I0MDg7MTEwMyAxMTZCIDExQjM7QjQwODsxMTAzIDExNkIgMTFCMzsKK0I0MDk7QjQwOTsxMTAzIDExNkIgMTFCNDtCNDA5OzExMDMgMTE2QiAxMUI0OworQjQwQTtCNDBBOzExMDMgMTE2QiAxMUI1O0I0MEE7MTEwMyAxMTZCIDExQjU7CitCNDBCO0I0MEI7MTEwMyAxMTZCIDExQjY7QjQwQjsxMTAzIDExNkIgMTFCNjsKK0I0MEM7QjQwQzsxMTAzIDExNkIgMTFCNztCNDBDOzExMDMgMTE2QiAxMUI3OworQjQwRDtCNDBEOzExMDMgMTE2QiAxMUI4O0I0MEQ7MTEwMyAxMTZCIDExQjg7CitCNDBFO0I0MEU7MTEwMyAxMTZCIDExQjk7QjQwRTsxMTAzIDExNkIgMTFCOTsKK0I0MEY7QjQwRjsxMTAzIDExNkIgMTFCQTtCNDBGOzExMDMgMTE2QiAxMUJBOworQjQxMDtCNDEwOzExMDMgMTE2QiAxMUJCO0I0MTA7MTEwMyAxMTZCIDExQkI7CitCNDExO0I0MTE7MTEwMyAxMTZCIDExQkM7QjQxMTsxMTAzIDExNkIgMTFCQzsKK0I0MTI7QjQxMjsxMTAzIDExNkIgMTFCRDtCNDEyOzExMDMgMTE2QiAxMUJEOworQjQxMztCNDEzOzExMDMgMTE2QiAxMUJFO0I0MTM7MTEwMyAxMTZCIDExQkU7CitCNDE0O0I0MTQ7MTEwMyAxMTZCIDExQkY7QjQxNDsxMTAzIDExNkIgMTFCRjsKK0I0MTU7QjQxNTsxMTAzIDExNkIgMTFDMDtCNDE1OzExMDMgMTE2QiAxMUMwOworQjQxNjtCNDE2OzExMDMgMTE2QiAxMUMxO0I0MTY7MTEwMyAxMTZCIDExQzE7CitCNDE3O0I0MTc7MTEwMyAxMTZCIDExQzI7QjQxNzsxMTAzIDExNkIgMTFDMjsKK0I0MTg7QjQxODsxMTAzIDExNkM7QjQxODsxMTAzIDExNkM7CitCNDE5O0I0MTk7MTEwMyAxMTZDIDExQTg7QjQxOTsxMTAzIDExNkMgMTFBODsKK0I0MUE7QjQxQTsxMTAzIDExNkMgMTFBOTtCNDFBOzExMDMgMTE2QyAxMUE5OworQjQxQjtCNDFCOzExMDMgMTE2QyAxMUFBO0I0MUI7MTEwMyAxMTZDIDExQUE7CitCNDFDO0I0MUM7MTEwMyAxMTZDIDExQUI7QjQxQzsxMTAzIDExNkMgMTFBQjsKK0I0MUQ7QjQxRDsxMTAzIDExNkMgMTFBQztCNDFEOzExMDMgMTE2QyAxMUFDOworQjQxRTtCNDFFOzExMDMgMTE2QyAxMUFEO0I0MUU7MTEwMyAxMTZDIDExQUQ7CitCNDFGO0I0MUY7MTEwMyAxMTZDIDExQUU7QjQxRjsxMTAzIDExNkMgMTFBRTsKK0I0MjA7QjQyMDsxMTAzIDExNkMgMTFBRjtCNDIwOzExMDMgMTE2QyAxMUFGOworQjQyMTtCNDIxOzExMDMgMTE2QyAxMUIwO0I0MjE7MTEwMyAxMTZDIDExQjA7CitCNDIyO0I0MjI7MTEwMyAxMTZDIDExQjE7QjQyMjsxMTAzIDExNkMgMTFCMTsKK0I0MjM7QjQyMzsxMTAzIDExNkMgMTFCMjtCNDIzOzExMDMgMTE2QyAxMUIyOworQjQyNDtCNDI0OzExMDMgMTE2QyAxMUIzO0I0MjQ7MTEwMyAxMTZDIDExQjM7CitCNDI1O0I0MjU7MTEwMyAxMTZDIDExQjQ7QjQyNTsxMTAzIDExNkMgMTFCNDsKK0I0MjY7QjQyNjsxMTAzIDExNkMgMTFCNTtCNDI2OzExMDMgMTE2QyAxMUI1OworQjQyNztCNDI3OzExMDMgMTE2QyAxMUI2O0I0Mjc7MTEwMyAxMTZDIDExQjY7CitCNDI4O0I0Mjg7MTEwMyAxMTZDIDExQjc7QjQyODsxMTAzIDExNkMgMTFCNzsKK0I0Mjk7QjQyOTsxMTAzIDExNkMgMTFCODtCNDI5OzExMDMgMTE2QyAxMUI4OworQjQyQTtCNDJBOzExMDMgMTE2QyAxMUI5O0I0MkE7MTEwMyAxMTZDIDExQjk7CitCNDJCO0I0MkI7MTEwMyAxMTZDIDExQkE7QjQyQjsxMTAzIDExNkMgMTFCQTsKK0I0MkM7QjQyQzsxMTAzIDExNkMgMTFCQjtCNDJDOzExMDMgMTE2QyAxMUJCOworQjQyRDtCNDJEOzExMDMgMTE2QyAxMUJDO0I0MkQ7MTEwMyAxMTZDIDExQkM7CitCNDJFO0I0MkU7MTEwMyAxMTZDIDExQkQ7QjQyRTsxMTAzIDExNkMgMTFCRDsKK0I0MkY7QjQyRjsxMTAzIDExNkMgMTFCRTtCNDJGOzExMDMgMTE2QyAxMUJFOworQjQzMDtCNDMwOzExMDMgMTE2QyAxMUJGO0I0MzA7MTEwMyAxMTZDIDExQkY7CitCNDMxO0I0MzE7MTEwMyAxMTZDIDExQzA7QjQzMTsxMTAzIDExNkMgMTFDMDsKK0I0MzI7QjQzMjsxMTAzIDExNkMgMTFDMTtCNDMyOzExMDMgMTE2QyAxMUMxOworQjQzMztCNDMzOzExMDMgMTE2QyAxMUMyO0I0MzM7MTEwMyAxMTZDIDExQzI7CitCNDM0O0I0MzQ7MTEwMyAxMTZEO0I0MzQ7MTEwMyAxMTZEOworQjQzNTtCNDM1OzExMDMgMTE2RCAxMUE4O0I0MzU7MTEwMyAxMTZEIDExQTg7CitCNDM2O0I0MzY7MTEwMyAxMTZEIDExQTk7QjQzNjsxMTAzIDExNkQgMTFBOTsKK0I0Mzc7QjQzNzsxMTAzIDExNkQgMTFBQTtCNDM3OzExMDMgMTE2RCAxMUFBOworQjQzODtCNDM4OzExMDMgMTE2RCAxMUFCO0I0Mzg7MTEwMyAxMTZEIDExQUI7CitCNDM5O0I0Mzk7MTEwMyAxMTZEIDExQUM7QjQzOTsxMTAzIDExNkQgMTFBQzsKK0I0M0E7QjQzQTsxMTAzIDExNkQgMTFBRDtCNDNBOzExMDMgMTE2RCAxMUFEOworQjQzQjtCNDNCOzExMDMgMTE2RCAxMUFFO0I0M0I7MTEwMyAxMTZEIDExQUU7CitCNDNDO0I0M0M7MTEwMyAxMTZEIDExQUY7QjQzQzsxMTAzIDExNkQgMTFBRjsKK0I0M0Q7QjQzRDsxMTAzIDExNkQgMTFCMDtCNDNEOzExMDMgMTE2RCAxMUIwOworQjQzRTtCNDNFOzExMDMgMTE2RCAxMUIxO0I0M0U7MTEwMyAxMTZEIDExQjE7CitCNDNGO0I0M0Y7MTEwMyAxMTZEIDExQjI7QjQzRjsxMTAzIDExNkQgMTFCMjsKK0I0NDA7QjQ0MDsxMTAzIDExNkQgMTFCMztCNDQwOzExMDMgMTE2RCAxMUIzOworQjQ0MTtCNDQxOzExMDMgMTE2RCAxMUI0O0I0NDE7MTEwMyAxMTZEIDExQjQ7CitCNDQyO0I0NDI7MTEwMyAxMTZEIDExQjU7QjQ0MjsxMTAzIDExNkQgMTFCNTsKK0I0NDM7QjQ0MzsxMTAzIDExNkQgMTFCNjtCNDQzOzExMDMgMTE2RCAxMUI2OworQjQ0NDtCNDQ0OzExMDMgMTE2RCAxMUI3O0I0NDQ7MTEwMyAxMTZEIDExQjc7CitCNDQ1O0I0NDU7MTEwMyAxMTZEIDExQjg7QjQ0NTsxMTAzIDExNkQgMTFCODsKK0I0NDY7QjQ0NjsxMTAzIDExNkQgMTFCOTtCNDQ2OzExMDMgMTE2RCAxMUI5OworQjQ0NztCNDQ3OzExMDMgMTE2RCAxMUJBO0I0NDc7MTEwMyAxMTZEIDExQkE7CitCNDQ4O0I0NDg7MTEwMyAxMTZEIDExQkI7QjQ0ODsxMTAzIDExNkQgMTFCQjsKK0I0NDk7QjQ0OTsxMTAzIDExNkQgMTFCQztCNDQ5OzExMDMgMTE2RCAxMUJDOworQjQ0QTtCNDRBOzExMDMgMTE2RCAxMUJEO0I0NEE7MTEwMyAxMTZEIDExQkQ7CitCNDRCO0I0NEI7MTEwMyAxMTZEIDExQkU7QjQ0QjsxMTAzIDExNkQgMTFCRTsKK0I0NEM7QjQ0QzsxMTAzIDExNkQgMTFCRjtCNDRDOzExMDMgMTE2RCAxMUJGOworQjQ0RDtCNDREOzExMDMgMTE2RCAxMUMwO0I0NEQ7MTEwMyAxMTZEIDExQzA7CitCNDRFO0I0NEU7MTEwMyAxMTZEIDExQzE7QjQ0RTsxMTAzIDExNkQgMTFDMTsKK0I0NEY7QjQ0RjsxMTAzIDExNkQgMTFDMjtCNDRGOzExMDMgMTE2RCAxMUMyOworQjQ1MDtCNDUwOzExMDMgMTE2RTtCNDUwOzExMDMgMTE2RTsKK0I0NTE7QjQ1MTsxMTAzIDExNkUgMTFBODtCNDUxOzExMDMgMTE2RSAxMUE4OworQjQ1MjtCNDUyOzExMDMgMTE2RSAxMUE5O0I0NTI7MTEwMyAxMTZFIDExQTk7CitCNDUzO0I0NTM7MTEwMyAxMTZFIDExQUE7QjQ1MzsxMTAzIDExNkUgMTFBQTsKK0I0NTQ7QjQ1NDsxMTAzIDExNkUgMTFBQjtCNDU0OzExMDMgMTE2RSAxMUFCOworQjQ1NTtCNDU1OzExMDMgMTE2RSAxMUFDO0I0NTU7MTEwMyAxMTZFIDExQUM7CitCNDU2O0I0NTY7MTEwMyAxMTZFIDExQUQ7QjQ1NjsxMTAzIDExNkUgMTFBRDsKK0I0NTc7QjQ1NzsxMTAzIDExNkUgMTFBRTtCNDU3OzExMDMgMTE2RSAxMUFFOworQjQ1ODtCNDU4OzExMDMgMTE2RSAxMUFGO0I0NTg7MTEwMyAxMTZFIDExQUY7CitCNDU5O0I0NTk7MTEwMyAxMTZFIDExQjA7QjQ1OTsxMTAzIDExNkUgMTFCMDsKK0I0NUE7QjQ1QTsxMTAzIDExNkUgMTFCMTtCNDVBOzExMDMgMTE2RSAxMUIxOworQjQ1QjtCNDVCOzExMDMgMTE2RSAxMUIyO0I0NUI7MTEwMyAxMTZFIDExQjI7CitCNDVDO0I0NUM7MTEwMyAxMTZFIDExQjM7QjQ1QzsxMTAzIDExNkUgMTFCMzsKK0I0NUQ7QjQ1RDsxMTAzIDExNkUgMTFCNDtCNDVEOzExMDMgMTE2RSAxMUI0OworQjQ1RTtCNDVFOzExMDMgMTE2RSAxMUI1O0I0NUU7MTEwMyAxMTZFIDExQjU7CitCNDVGO0I0NUY7MTEwMyAxMTZFIDExQjY7QjQ1RjsxMTAzIDExNkUgMTFCNjsKK0I0NjA7QjQ2MDsxMTAzIDExNkUgMTFCNztCNDYwOzExMDMgMTE2RSAxMUI3OworQjQ2MTtCNDYxOzExMDMgMTE2RSAxMUI4O0I0NjE7MTEwMyAxMTZFIDExQjg7CitCNDYyO0I0NjI7MTEwMyAxMTZFIDExQjk7QjQ2MjsxMTAzIDExNkUgMTFCOTsKK0I0NjM7QjQ2MzsxMTAzIDExNkUgMTFCQTtCNDYzOzExMDMgMTE2RSAxMUJBOworQjQ2NDtCNDY0OzExMDMgMTE2RSAxMUJCO0I0NjQ7MTEwMyAxMTZFIDExQkI7CitCNDY1O0I0NjU7MTEwMyAxMTZFIDExQkM7QjQ2NTsxMTAzIDExNkUgMTFCQzsKK0I0NjY7QjQ2NjsxMTAzIDExNkUgMTFCRDtCNDY2OzExMDMgMTE2RSAxMUJEOworQjQ2NztCNDY3OzExMDMgMTE2RSAxMUJFO0I0Njc7MTEwMyAxMTZFIDExQkU7CitCNDY4O0I0Njg7MTEwMyAxMTZFIDExQkY7QjQ2ODsxMTAzIDExNkUgMTFCRjsKK0I0Njk7QjQ2OTsxMTAzIDExNkUgMTFDMDtCNDY5OzExMDMgMTE2RSAxMUMwOworQjQ2QTtCNDZBOzExMDMgMTE2RSAxMUMxO0I0NkE7MTEwMyAxMTZFIDExQzE7CitCNDZCO0I0NkI7MTEwMyAxMTZFIDExQzI7QjQ2QjsxMTAzIDExNkUgMTFDMjsKK0I0NkM7QjQ2QzsxMTAzIDExNkY7QjQ2QzsxMTAzIDExNkY7CitCNDZEO0I0NkQ7MTEwMyAxMTZGIDExQTg7QjQ2RDsxMTAzIDExNkYgMTFBODsKK0I0NkU7QjQ2RTsxMTAzIDExNkYgMTFBOTtCNDZFOzExMDMgMTE2RiAxMUE5OworQjQ2RjtCNDZGOzExMDMgMTE2RiAxMUFBO0I0NkY7MTEwMyAxMTZGIDExQUE7CitCNDcwO0I0NzA7MTEwMyAxMTZGIDExQUI7QjQ3MDsxMTAzIDExNkYgMTFBQjsKK0I0NzE7QjQ3MTsxMTAzIDExNkYgMTFBQztCNDcxOzExMDMgMTE2RiAxMUFDOworQjQ3MjtCNDcyOzExMDMgMTE2RiAxMUFEO0I0NzI7MTEwMyAxMTZGIDExQUQ7CitCNDczO0I0NzM7MTEwMyAxMTZGIDExQUU7QjQ3MzsxMTAzIDExNkYgMTFBRTsKK0I0NzQ7QjQ3NDsxMTAzIDExNkYgMTFBRjtCNDc0OzExMDMgMTE2RiAxMUFGOworQjQ3NTtCNDc1OzExMDMgMTE2RiAxMUIwO0I0NzU7MTEwMyAxMTZGIDExQjA7CitCNDc2O0I0NzY7MTEwMyAxMTZGIDExQjE7QjQ3NjsxMTAzIDExNkYgMTFCMTsKK0I0Nzc7QjQ3NzsxMTAzIDExNkYgMTFCMjtCNDc3OzExMDMgMTE2RiAxMUIyOworQjQ3ODtCNDc4OzExMDMgMTE2RiAxMUIzO0I0Nzg7MTEwMyAxMTZGIDExQjM7CitCNDc5O0I0Nzk7MTEwMyAxMTZGIDExQjQ7QjQ3OTsxMTAzIDExNkYgMTFCNDsKK0I0N0E7QjQ3QTsxMTAzIDExNkYgMTFCNTtCNDdBOzExMDMgMTE2RiAxMUI1OworQjQ3QjtCNDdCOzExMDMgMTE2RiAxMUI2O0I0N0I7MTEwMyAxMTZGIDExQjY7CitCNDdDO0I0N0M7MTEwMyAxMTZGIDExQjc7QjQ3QzsxMTAzIDExNkYgMTFCNzsKK0I0N0Q7QjQ3RDsxMTAzIDExNkYgMTFCODtCNDdEOzExMDMgMTE2RiAxMUI4OworQjQ3RTtCNDdFOzExMDMgMTE2RiAxMUI5O0I0N0U7MTEwMyAxMTZGIDExQjk7CitCNDdGO0I0N0Y7MTEwMyAxMTZGIDExQkE7QjQ3RjsxMTAzIDExNkYgMTFCQTsKK0I0ODA7QjQ4MDsxMTAzIDExNkYgMTFCQjtCNDgwOzExMDMgMTE2RiAxMUJCOworQjQ4MTtCNDgxOzExMDMgMTE2RiAxMUJDO0I0ODE7MTEwMyAxMTZGIDExQkM7CitCNDgyO0I0ODI7MTEwMyAxMTZGIDExQkQ7QjQ4MjsxMTAzIDExNkYgMTFCRDsKK0I0ODM7QjQ4MzsxMTAzIDExNkYgMTFCRTtCNDgzOzExMDMgMTE2RiAxMUJFOworQjQ4NDtCNDg0OzExMDMgMTE2RiAxMUJGO0I0ODQ7MTEwMyAxMTZGIDExQkY7CitCNDg1O0I0ODU7MTEwMyAxMTZGIDExQzA7QjQ4NTsxMTAzIDExNkYgMTFDMDsKK0I0ODY7QjQ4NjsxMTAzIDExNkYgMTFDMTtCNDg2OzExMDMgMTE2RiAxMUMxOworQjQ4NztCNDg3OzExMDMgMTE2RiAxMUMyO0I0ODc7MTEwMyAxMTZGIDExQzI7CitCNDg4O0I0ODg7MTEwMyAxMTcwO0I0ODg7MTEwMyAxMTcwOworQjQ4OTtCNDg5OzExMDMgMTE3MCAxMUE4O0I0ODk7MTEwMyAxMTcwIDExQTg7CitCNDhBO0I0OEE7MTEwMyAxMTcwIDExQTk7QjQ4QTsxMTAzIDExNzAgMTFBOTsKK0I0OEI7QjQ4QjsxMTAzIDExNzAgMTFBQTtCNDhCOzExMDMgMTE3MCAxMUFBOworQjQ4QztCNDhDOzExMDMgMTE3MCAxMUFCO0I0OEM7MTEwMyAxMTcwIDExQUI7CitCNDhEO0I0OEQ7MTEwMyAxMTcwIDExQUM7QjQ4RDsxMTAzIDExNzAgMTFBQzsKK0I0OEU7QjQ4RTsxMTAzIDExNzAgMTFBRDtCNDhFOzExMDMgMTE3MCAxMUFEOworQjQ4RjtCNDhGOzExMDMgMTE3MCAxMUFFO0I0OEY7MTEwMyAxMTcwIDExQUU7CitCNDkwO0I0OTA7MTEwMyAxMTcwIDExQUY7QjQ5MDsxMTAzIDExNzAgMTFBRjsKK0I0OTE7QjQ5MTsxMTAzIDExNzAgMTFCMDtCNDkxOzExMDMgMTE3MCAxMUIwOworQjQ5MjtCNDkyOzExMDMgMTE3MCAxMUIxO0I0OTI7MTEwMyAxMTcwIDExQjE7CitCNDkzO0I0OTM7MTEwMyAxMTcwIDExQjI7QjQ5MzsxMTAzIDExNzAgMTFCMjsKK0I0OTQ7QjQ5NDsxMTAzIDExNzAgMTFCMztCNDk0OzExMDMgMTE3MCAxMUIzOworQjQ5NTtCNDk1OzExMDMgMTE3MCAxMUI0O0I0OTU7MTEwMyAxMTcwIDExQjQ7CitCNDk2O0I0OTY7MTEwMyAxMTcwIDExQjU7QjQ5NjsxMTAzIDExNzAgMTFCNTsKK0I0OTc7QjQ5NzsxMTAzIDExNzAgMTFCNjtCNDk3OzExMDMgMTE3MCAxMUI2OworQjQ5ODtCNDk4OzExMDMgMTE3MCAxMUI3O0I0OTg7MTEwMyAxMTcwIDExQjc7CitCNDk5O0I0OTk7MTEwMyAxMTcwIDExQjg7QjQ5OTsxMTAzIDExNzAgMTFCODsKK0I0OUE7QjQ5QTsxMTAzIDExNzAgMTFCOTtCNDlBOzExMDMgMTE3MCAxMUI5OworQjQ5QjtCNDlCOzExMDMgMTE3MCAxMUJBO0I0OUI7MTEwMyAxMTcwIDExQkE7CitCNDlDO0I0OUM7MTEwMyAxMTcwIDExQkI7QjQ5QzsxMTAzIDExNzAgMTFCQjsKK0I0OUQ7QjQ5RDsxMTAzIDExNzAgMTFCQztCNDlEOzExMDMgMTE3MCAxMUJDOworQjQ5RTtCNDlFOzExMDMgMTE3MCAxMUJEO0I0OUU7MTEwMyAxMTcwIDExQkQ7CitCNDlGO0I0OUY7MTEwMyAxMTcwIDExQkU7QjQ5RjsxMTAzIDExNzAgMTFCRTsKK0I0QTA7QjRBMDsxMTAzIDExNzAgMTFCRjtCNEEwOzExMDMgMTE3MCAxMUJGOworQjRBMTtCNEExOzExMDMgMTE3MCAxMUMwO0I0QTE7MTEwMyAxMTcwIDExQzA7CitCNEEyO0I0QTI7MTEwMyAxMTcwIDExQzE7QjRBMjsxMTAzIDExNzAgMTFDMTsKK0I0QTM7QjRBMzsxMTAzIDExNzAgMTFDMjtCNEEzOzExMDMgMTE3MCAxMUMyOworQjRBNDtCNEE0OzExMDMgMTE3MTtCNEE0OzExMDMgMTE3MTsKK0I0QTU7QjRBNTsxMTAzIDExNzEgMTFBODtCNEE1OzExMDMgMTE3MSAxMUE4OworQjRBNjtCNEE2OzExMDMgMTE3MSAxMUE5O0I0QTY7MTEwMyAxMTcxIDExQTk7CitCNEE3O0I0QTc7MTEwMyAxMTcxIDExQUE7QjRBNzsxMTAzIDExNzEgMTFBQTsKK0I0QTg7QjRBODsxMTAzIDExNzEgMTFBQjtCNEE4OzExMDMgMTE3MSAxMUFCOworQjRBOTtCNEE5OzExMDMgMTE3MSAxMUFDO0I0QTk7MTEwMyAxMTcxIDExQUM7CitCNEFBO0I0QUE7MTEwMyAxMTcxIDExQUQ7QjRBQTsxMTAzIDExNzEgMTFBRDsKK0I0QUI7QjRBQjsxMTAzIDExNzEgMTFBRTtCNEFCOzExMDMgMTE3MSAxMUFFOworQjRBQztCNEFDOzExMDMgMTE3MSAxMUFGO0I0QUM7MTEwMyAxMTcxIDExQUY7CitCNEFEO0I0QUQ7MTEwMyAxMTcxIDExQjA7QjRBRDsxMTAzIDExNzEgMTFCMDsKK0I0QUU7QjRBRTsxMTAzIDExNzEgMTFCMTtCNEFFOzExMDMgMTE3MSAxMUIxOworQjRBRjtCNEFGOzExMDMgMTE3MSAxMUIyO0I0QUY7MTEwMyAxMTcxIDExQjI7CitCNEIwO0I0QjA7MTEwMyAxMTcxIDExQjM7QjRCMDsxMTAzIDExNzEgMTFCMzsKK0I0QjE7QjRCMTsxMTAzIDExNzEgMTFCNDtCNEIxOzExMDMgMTE3MSAxMUI0OworQjRCMjtCNEIyOzExMDMgMTE3MSAxMUI1O0I0QjI7MTEwMyAxMTcxIDExQjU7CitCNEIzO0I0QjM7MTEwMyAxMTcxIDExQjY7QjRCMzsxMTAzIDExNzEgMTFCNjsKK0I0QjQ7QjRCNDsxMTAzIDExNzEgMTFCNztCNEI0OzExMDMgMTE3MSAxMUI3OworQjRCNTtCNEI1OzExMDMgMTE3MSAxMUI4O0I0QjU7MTEwMyAxMTcxIDExQjg7CitCNEI2O0I0QjY7MTEwMyAxMTcxIDExQjk7QjRCNjsxMTAzIDExNzEgMTFCOTsKK0I0Qjc7QjRCNzsxMTAzIDExNzEgMTFCQTtCNEI3OzExMDMgMTE3MSAxMUJBOworQjRCODtCNEI4OzExMDMgMTE3MSAxMUJCO0I0Qjg7MTEwMyAxMTcxIDExQkI7CitCNEI5O0I0Qjk7MTEwMyAxMTcxIDExQkM7QjRCOTsxMTAzIDExNzEgMTFCQzsKK0I0QkE7QjRCQTsxMTAzIDExNzEgMTFCRDtCNEJBOzExMDMgMTE3MSAxMUJEOworQjRCQjtCNEJCOzExMDMgMTE3MSAxMUJFO0I0QkI7MTEwMyAxMTcxIDExQkU7CitCNEJDO0I0QkM7MTEwMyAxMTcxIDExQkY7QjRCQzsxMTAzIDExNzEgMTFCRjsKK0I0QkQ7QjRCRDsxMTAzIDExNzEgMTFDMDtCNEJEOzExMDMgMTE3MSAxMUMwOworQjRCRTtCNEJFOzExMDMgMTE3MSAxMUMxO0I0QkU7MTEwMyAxMTcxIDExQzE7CitCNEJGO0I0QkY7MTEwMyAxMTcxIDExQzI7QjRCRjsxMTAzIDExNzEgMTFDMjsKK0I0QzA7QjRDMDsxMTAzIDExNzI7QjRDMDsxMTAzIDExNzI7CitCNEMxO0I0QzE7MTEwMyAxMTcyIDExQTg7QjRDMTsxMTAzIDExNzIgMTFBODsKK0I0QzI7QjRDMjsxMTAzIDExNzIgMTFBOTtCNEMyOzExMDMgMTE3MiAxMUE5OworQjRDMztCNEMzOzExMDMgMTE3MiAxMUFBO0I0QzM7MTEwMyAxMTcyIDExQUE7CitCNEM0O0I0QzQ7MTEwMyAxMTcyIDExQUI7QjRDNDsxMTAzIDExNzIgMTFBQjsKK0I0QzU7QjRDNTsxMTAzIDExNzIgMTFBQztCNEM1OzExMDMgMTE3MiAxMUFDOworQjRDNjtCNEM2OzExMDMgMTE3MiAxMUFEO0I0QzY7MTEwMyAxMTcyIDExQUQ7CitCNEM3O0I0Qzc7MTEwMyAxMTcyIDExQUU7QjRDNzsxMTAzIDExNzIgMTFBRTsKK0I0Qzg7QjRDODsxMTAzIDExNzIgMTFBRjtCNEM4OzExMDMgMTE3MiAxMUFGOworQjRDOTtCNEM5OzExMDMgMTE3MiAxMUIwO0I0Qzk7MTEwMyAxMTcyIDExQjA7CitCNENBO0I0Q0E7MTEwMyAxMTcyIDExQjE7QjRDQTsxMTAzIDExNzIgMTFCMTsKK0I0Q0I7QjRDQjsxMTAzIDExNzIgMTFCMjtCNENCOzExMDMgMTE3MiAxMUIyOworQjRDQztCNENDOzExMDMgMTE3MiAxMUIzO0I0Q0M7MTEwMyAxMTcyIDExQjM7CitCNENEO0I0Q0Q7MTEwMyAxMTcyIDExQjQ7QjRDRDsxMTAzIDExNzIgMTFCNDsKK0I0Q0U7QjRDRTsxMTAzIDExNzIgMTFCNTtCNENFOzExMDMgMTE3MiAxMUI1OworQjRDRjtCNENGOzExMDMgMTE3MiAxMUI2O0I0Q0Y7MTEwMyAxMTcyIDExQjY7CitCNEQwO0I0RDA7MTEwMyAxMTcyIDExQjc7QjREMDsxMTAzIDExNzIgMTFCNzsKK0I0RDE7QjREMTsxMTAzIDExNzIgMTFCODtCNEQxOzExMDMgMTE3MiAxMUI4OworQjREMjtCNEQyOzExMDMgMTE3MiAxMUI5O0I0RDI7MTEwMyAxMTcyIDExQjk7CitCNEQzO0I0RDM7MTEwMyAxMTcyIDExQkE7QjREMzsxMTAzIDExNzIgMTFCQTsKK0I0RDQ7QjRENDsxMTAzIDExNzIgMTFCQjtCNEQ0OzExMDMgMTE3MiAxMUJCOworQjRENTtCNEQ1OzExMDMgMTE3MiAxMUJDO0I0RDU7MTEwMyAxMTcyIDExQkM7CitCNEQ2O0I0RDY7MTEwMyAxMTcyIDExQkQ7QjRENjsxMTAzIDExNzIgMTFCRDsKK0I0RDc7QjRENzsxMTAzIDExNzIgMTFCRTtCNEQ3OzExMDMgMTE3MiAxMUJFOworQjREODtCNEQ4OzExMDMgMTE3MiAxMUJGO0I0RDg7MTEwMyAxMTcyIDExQkY7CitCNEQ5O0I0RDk7MTEwMyAxMTcyIDExQzA7QjREOTsxMTAzIDExNzIgMTFDMDsKK0I0REE7QjREQTsxMTAzIDExNzIgMTFDMTtCNERBOzExMDMgMTE3MiAxMUMxOworQjREQjtCNERCOzExMDMgMTE3MiAxMUMyO0I0REI7MTEwMyAxMTcyIDExQzI7CitCNERDO0I0REM7MTEwMyAxMTczO0I0REM7MTEwMyAxMTczOworQjRERDtCNEREOzExMDMgMTE3MyAxMUE4O0I0REQ7MTEwMyAxMTczIDExQTg7CitCNERFO0I0REU7MTEwMyAxMTczIDExQTk7QjRERTsxMTAzIDExNzMgMTFBOTsKK0I0REY7QjRERjsxMTAzIDExNzMgMTFBQTtCNERGOzExMDMgMTE3MyAxMUFBOworQjRFMDtCNEUwOzExMDMgMTE3MyAxMUFCO0I0RTA7MTEwMyAxMTczIDExQUI7CitCNEUxO0I0RTE7MTEwMyAxMTczIDExQUM7QjRFMTsxMTAzIDExNzMgMTFBQzsKK0I0RTI7QjRFMjsxMTAzIDExNzMgMTFBRDtCNEUyOzExMDMgMTE3MyAxMUFEOworQjRFMztCNEUzOzExMDMgMTE3MyAxMUFFO0I0RTM7MTEwMyAxMTczIDExQUU7CitCNEU0O0I0RTQ7MTEwMyAxMTczIDExQUY7QjRFNDsxMTAzIDExNzMgMTFBRjsKK0I0RTU7QjRFNTsxMTAzIDExNzMgMTFCMDtCNEU1OzExMDMgMTE3MyAxMUIwOworQjRFNjtCNEU2OzExMDMgMTE3MyAxMUIxO0I0RTY7MTEwMyAxMTczIDExQjE7CitCNEU3O0I0RTc7MTEwMyAxMTczIDExQjI7QjRFNzsxMTAzIDExNzMgMTFCMjsKK0I0RTg7QjRFODsxMTAzIDExNzMgMTFCMztCNEU4OzExMDMgMTE3MyAxMUIzOworQjRFOTtCNEU5OzExMDMgMTE3MyAxMUI0O0I0RTk7MTEwMyAxMTczIDExQjQ7CitCNEVBO0I0RUE7MTEwMyAxMTczIDExQjU7QjRFQTsxMTAzIDExNzMgMTFCNTsKK0I0RUI7QjRFQjsxMTAzIDExNzMgMTFCNjtCNEVCOzExMDMgMTE3MyAxMUI2OworQjRFQztCNEVDOzExMDMgMTE3MyAxMUI3O0I0RUM7MTEwMyAxMTczIDExQjc7CitCNEVEO0I0RUQ7MTEwMyAxMTczIDExQjg7QjRFRDsxMTAzIDExNzMgMTFCODsKK0I0RUU7QjRFRTsxMTAzIDExNzMgMTFCOTtCNEVFOzExMDMgMTE3MyAxMUI5OworQjRFRjtCNEVGOzExMDMgMTE3MyAxMUJBO0I0RUY7MTEwMyAxMTczIDExQkE7CitCNEYwO0I0RjA7MTEwMyAxMTczIDExQkI7QjRGMDsxMTAzIDExNzMgMTFCQjsKK0I0RjE7QjRGMTsxMTAzIDExNzMgMTFCQztCNEYxOzExMDMgMTE3MyAxMUJDOworQjRGMjtCNEYyOzExMDMgMTE3MyAxMUJEO0I0RjI7MTEwMyAxMTczIDExQkQ7CitCNEYzO0I0RjM7MTEwMyAxMTczIDExQkU7QjRGMzsxMTAzIDExNzMgMTFCRTsKK0I0RjQ7QjRGNDsxMTAzIDExNzMgMTFCRjtCNEY0OzExMDMgMTE3MyAxMUJGOworQjRGNTtCNEY1OzExMDMgMTE3MyAxMUMwO0I0RjU7MTEwMyAxMTczIDExQzA7CitCNEY2O0I0RjY7MTEwMyAxMTczIDExQzE7QjRGNjsxMTAzIDExNzMgMTFDMTsKK0I0Rjc7QjRGNzsxMTAzIDExNzMgMTFDMjtCNEY3OzExMDMgMTE3MyAxMUMyOworQjRGODtCNEY4OzExMDMgMTE3NDtCNEY4OzExMDMgMTE3NDsKK0I0Rjk7QjRGOTsxMTAzIDExNzQgMTFBODtCNEY5OzExMDMgMTE3NCAxMUE4OworQjRGQTtCNEZBOzExMDMgMTE3NCAxMUE5O0I0RkE7MTEwMyAxMTc0IDExQTk7CitCNEZCO0I0RkI7MTEwMyAxMTc0IDExQUE7QjRGQjsxMTAzIDExNzQgMTFBQTsKK0I0RkM7QjRGQzsxMTAzIDExNzQgMTFBQjtCNEZDOzExMDMgMTE3NCAxMUFCOworQjRGRDtCNEZEOzExMDMgMTE3NCAxMUFDO0I0RkQ7MTEwMyAxMTc0IDExQUM7CitCNEZFO0I0RkU7MTEwMyAxMTc0IDExQUQ7QjRGRTsxMTAzIDExNzQgMTFBRDsKK0I0RkY7QjRGRjsxMTAzIDExNzQgMTFBRTtCNEZGOzExMDMgMTE3NCAxMUFFOworQjUwMDtCNTAwOzExMDMgMTE3NCAxMUFGO0I1MDA7MTEwMyAxMTc0IDExQUY7CitCNTAxO0I1MDE7MTEwMyAxMTc0IDExQjA7QjUwMTsxMTAzIDExNzQgMTFCMDsKK0I1MDI7QjUwMjsxMTAzIDExNzQgMTFCMTtCNTAyOzExMDMgMTE3NCAxMUIxOworQjUwMztCNTAzOzExMDMgMTE3NCAxMUIyO0I1MDM7MTEwMyAxMTc0IDExQjI7CitCNTA0O0I1MDQ7MTEwMyAxMTc0IDExQjM7QjUwNDsxMTAzIDExNzQgMTFCMzsKK0I1MDU7QjUwNTsxMTAzIDExNzQgMTFCNDtCNTA1OzExMDMgMTE3NCAxMUI0OworQjUwNjtCNTA2OzExMDMgMTE3NCAxMUI1O0I1MDY7MTEwMyAxMTc0IDExQjU7CitCNTA3O0I1MDc7MTEwMyAxMTc0IDExQjY7QjUwNzsxMTAzIDExNzQgMTFCNjsKK0I1MDg7QjUwODsxMTAzIDExNzQgMTFCNztCNTA4OzExMDMgMTE3NCAxMUI3OworQjUwOTtCNTA5OzExMDMgMTE3NCAxMUI4O0I1MDk7MTEwMyAxMTc0IDExQjg7CitCNTBBO0I1MEE7MTEwMyAxMTc0IDExQjk7QjUwQTsxMTAzIDExNzQgMTFCOTsKK0I1MEI7QjUwQjsxMTAzIDExNzQgMTFCQTtCNTBCOzExMDMgMTE3NCAxMUJBOworQjUwQztCNTBDOzExMDMgMTE3NCAxMUJCO0I1MEM7MTEwMyAxMTc0IDExQkI7CitCNTBEO0I1MEQ7MTEwMyAxMTc0IDExQkM7QjUwRDsxMTAzIDExNzQgMTFCQzsKK0I1MEU7QjUwRTsxMTAzIDExNzQgMTFCRDtCNTBFOzExMDMgMTE3NCAxMUJEOworQjUwRjtCNTBGOzExMDMgMTE3NCAxMUJFO0I1MEY7MTEwMyAxMTc0IDExQkU7CitCNTEwO0I1MTA7MTEwMyAxMTc0IDExQkY7QjUxMDsxMTAzIDExNzQgMTFCRjsKK0I1MTE7QjUxMTsxMTAzIDExNzQgMTFDMDtCNTExOzExMDMgMTE3NCAxMUMwOworQjUxMjtCNTEyOzExMDMgMTE3NCAxMUMxO0I1MTI7MTEwMyAxMTc0IDExQzE7CitCNTEzO0I1MTM7MTEwMyAxMTc0IDExQzI7QjUxMzsxMTAzIDExNzQgMTFDMjsKK0I1MTQ7QjUxNDsxMTAzIDExNzU7QjUxNDsxMTAzIDExNzU7CitCNTE1O0I1MTU7MTEwMyAxMTc1IDExQTg7QjUxNTsxMTAzIDExNzUgMTFBODsKK0I1MTY7QjUxNjsxMTAzIDExNzUgMTFBOTtCNTE2OzExMDMgMTE3NSAxMUE5OworQjUxNztCNTE3OzExMDMgMTE3NSAxMUFBO0I1MTc7MTEwMyAxMTc1IDExQUE7CitCNTE4O0I1MTg7MTEwMyAxMTc1IDExQUI7QjUxODsxMTAzIDExNzUgMTFBQjsKK0I1MTk7QjUxOTsxMTAzIDExNzUgMTFBQztCNTE5OzExMDMgMTE3NSAxMUFDOworQjUxQTtCNTFBOzExMDMgMTE3NSAxMUFEO0I1MUE7MTEwMyAxMTc1IDExQUQ7CitCNTFCO0I1MUI7MTEwMyAxMTc1IDExQUU7QjUxQjsxMTAzIDExNzUgMTFBRTsKK0I1MUM7QjUxQzsxMTAzIDExNzUgMTFBRjtCNTFDOzExMDMgMTE3NSAxMUFGOworQjUxRDtCNTFEOzExMDMgMTE3NSAxMUIwO0I1MUQ7MTEwMyAxMTc1IDExQjA7CitCNTFFO0I1MUU7MTEwMyAxMTc1IDExQjE7QjUxRTsxMTAzIDExNzUgMTFCMTsKK0I1MUY7QjUxRjsxMTAzIDExNzUgMTFCMjtCNTFGOzExMDMgMTE3NSAxMUIyOworQjUyMDtCNTIwOzExMDMgMTE3NSAxMUIzO0I1MjA7MTEwMyAxMTc1IDExQjM7CitCNTIxO0I1MjE7MTEwMyAxMTc1IDExQjQ7QjUyMTsxMTAzIDExNzUgMTFCNDsKK0I1MjI7QjUyMjsxMTAzIDExNzUgMTFCNTtCNTIyOzExMDMgMTE3NSAxMUI1OworQjUyMztCNTIzOzExMDMgMTE3NSAxMUI2O0I1MjM7MTEwMyAxMTc1IDExQjY7CitCNTI0O0I1MjQ7MTEwMyAxMTc1IDExQjc7QjUyNDsxMTAzIDExNzUgMTFCNzsKK0I1MjU7QjUyNTsxMTAzIDExNzUgMTFCODtCNTI1OzExMDMgMTE3NSAxMUI4OworQjUyNjtCNTI2OzExMDMgMTE3NSAxMUI5O0I1MjY7MTEwMyAxMTc1IDExQjk7CitCNTI3O0I1Mjc7MTEwMyAxMTc1IDExQkE7QjUyNzsxMTAzIDExNzUgMTFCQTsKK0I1Mjg7QjUyODsxMTAzIDExNzUgMTFCQjtCNTI4OzExMDMgMTE3NSAxMUJCOworQjUyOTtCNTI5OzExMDMgMTE3NSAxMUJDO0I1Mjk7MTEwMyAxMTc1IDExQkM7CitCNTJBO0I1MkE7MTEwMyAxMTc1IDExQkQ7QjUyQTsxMTAzIDExNzUgMTFCRDsKK0I1MkI7QjUyQjsxMTAzIDExNzUgMTFCRTtCNTJCOzExMDMgMTE3NSAxMUJFOworQjUyQztCNTJDOzExMDMgMTE3NSAxMUJGO0I1MkM7MTEwMyAxMTc1IDExQkY7CitCNTJEO0I1MkQ7MTEwMyAxMTc1IDExQzA7QjUyRDsxMTAzIDExNzUgMTFDMDsKK0I1MkU7QjUyRTsxMTAzIDExNzUgMTFDMTtCNTJFOzExMDMgMTE3NSAxMUMxOworQjUyRjtCNTJGOzExMDMgMTE3NSAxMUMyO0I1MkY7MTEwMyAxMTc1IDExQzI7CitCNTMwO0I1MzA7MTEwNCAxMTYxO0I1MzA7MTEwNCAxMTYxOworQjUzMTtCNTMxOzExMDQgMTE2MSAxMUE4O0I1MzE7MTEwNCAxMTYxIDExQTg7CitCNTMyO0I1MzI7MTEwNCAxMTYxIDExQTk7QjUzMjsxMTA0IDExNjEgMTFBOTsKK0I1MzM7QjUzMzsxMTA0IDExNjEgMTFBQTtCNTMzOzExMDQgMTE2MSAxMUFBOworQjUzNDtCNTM0OzExMDQgMTE2MSAxMUFCO0I1MzQ7MTEwNCAxMTYxIDExQUI7CitCNTM1O0I1MzU7MTEwNCAxMTYxIDExQUM7QjUzNTsxMTA0IDExNjEgMTFBQzsKK0I1MzY7QjUzNjsxMTA0IDExNjEgMTFBRDtCNTM2OzExMDQgMTE2MSAxMUFEOworQjUzNztCNTM3OzExMDQgMTE2MSAxMUFFO0I1Mzc7MTEwNCAxMTYxIDExQUU7CitCNTM4O0I1Mzg7MTEwNCAxMTYxIDExQUY7QjUzODsxMTA0IDExNjEgMTFBRjsKK0I1Mzk7QjUzOTsxMTA0IDExNjEgMTFCMDtCNTM5OzExMDQgMTE2MSAxMUIwOworQjUzQTtCNTNBOzExMDQgMTE2MSAxMUIxO0I1M0E7MTEwNCAxMTYxIDExQjE7CitCNTNCO0I1M0I7MTEwNCAxMTYxIDExQjI7QjUzQjsxMTA0IDExNjEgMTFCMjsKK0I1M0M7QjUzQzsxMTA0IDExNjEgMTFCMztCNTNDOzExMDQgMTE2MSAxMUIzOworQjUzRDtCNTNEOzExMDQgMTE2MSAxMUI0O0I1M0Q7MTEwNCAxMTYxIDExQjQ7CitCNTNFO0I1M0U7MTEwNCAxMTYxIDExQjU7QjUzRTsxMTA0IDExNjEgMTFCNTsKK0I1M0Y7QjUzRjsxMTA0IDExNjEgMTFCNjtCNTNGOzExMDQgMTE2MSAxMUI2OworQjU0MDtCNTQwOzExMDQgMTE2MSAxMUI3O0I1NDA7MTEwNCAxMTYxIDExQjc7CitCNTQxO0I1NDE7MTEwNCAxMTYxIDExQjg7QjU0MTsxMTA0IDExNjEgMTFCODsKK0I1NDI7QjU0MjsxMTA0IDExNjEgMTFCOTtCNTQyOzExMDQgMTE2MSAxMUI5OworQjU0MztCNTQzOzExMDQgMTE2MSAxMUJBO0I1NDM7MTEwNCAxMTYxIDExQkE7CitCNTQ0O0I1NDQ7MTEwNCAxMTYxIDExQkI7QjU0NDsxMTA0IDExNjEgMTFCQjsKK0I1NDU7QjU0NTsxMTA0IDExNjEgMTFCQztCNTQ1OzExMDQgMTE2MSAxMUJDOworQjU0NjtCNTQ2OzExMDQgMTE2MSAxMUJEO0I1NDY7MTEwNCAxMTYxIDExQkQ7CitCNTQ3O0I1NDc7MTEwNCAxMTYxIDExQkU7QjU0NzsxMTA0IDExNjEgMTFCRTsKK0I1NDg7QjU0ODsxMTA0IDExNjEgMTFCRjtCNTQ4OzExMDQgMTE2MSAxMUJGOworQjU0OTtCNTQ5OzExMDQgMTE2MSAxMUMwO0I1NDk7MTEwNCAxMTYxIDExQzA7CitCNTRBO0I1NEE7MTEwNCAxMTYxIDExQzE7QjU0QTsxMTA0IDExNjEgMTFDMTsKK0I1NEI7QjU0QjsxMTA0IDExNjEgMTFDMjtCNTRCOzExMDQgMTE2MSAxMUMyOworQjU0QztCNTRDOzExMDQgMTE2MjtCNTRDOzExMDQgMTE2MjsKK0I1NEQ7QjU0RDsxMTA0IDExNjIgMTFBODtCNTREOzExMDQgMTE2MiAxMUE4OworQjU0RTtCNTRFOzExMDQgMTE2MiAxMUE5O0I1NEU7MTEwNCAxMTYyIDExQTk7CitCNTRGO0I1NEY7MTEwNCAxMTYyIDExQUE7QjU0RjsxMTA0IDExNjIgMTFBQTsKK0I1NTA7QjU1MDsxMTA0IDExNjIgMTFBQjtCNTUwOzExMDQgMTE2MiAxMUFCOworQjU1MTtCNTUxOzExMDQgMTE2MiAxMUFDO0I1NTE7MTEwNCAxMTYyIDExQUM7CitCNTUyO0I1NTI7MTEwNCAxMTYyIDExQUQ7QjU1MjsxMTA0IDExNjIgMTFBRDsKK0I1NTM7QjU1MzsxMTA0IDExNjIgMTFBRTtCNTUzOzExMDQgMTE2MiAxMUFFOworQjU1NDtCNTU0OzExMDQgMTE2MiAxMUFGO0I1NTQ7MTEwNCAxMTYyIDExQUY7CitCNTU1O0I1NTU7MTEwNCAxMTYyIDExQjA7QjU1NTsxMTA0IDExNjIgMTFCMDsKK0I1NTY7QjU1NjsxMTA0IDExNjIgMTFCMTtCNTU2OzExMDQgMTE2MiAxMUIxOworQjU1NztCNTU3OzExMDQgMTE2MiAxMUIyO0I1NTc7MTEwNCAxMTYyIDExQjI7CitCNTU4O0I1NTg7MTEwNCAxMTYyIDExQjM7QjU1ODsxMTA0IDExNjIgMTFCMzsKK0I1NTk7QjU1OTsxMTA0IDExNjIgMTFCNDtCNTU5OzExMDQgMTE2MiAxMUI0OworQjU1QTtCNTVBOzExMDQgMTE2MiAxMUI1O0I1NUE7MTEwNCAxMTYyIDExQjU7CitCNTVCO0I1NUI7MTEwNCAxMTYyIDExQjY7QjU1QjsxMTA0IDExNjIgMTFCNjsKK0I1NUM7QjU1QzsxMTA0IDExNjIgMTFCNztCNTVDOzExMDQgMTE2MiAxMUI3OworQjU1RDtCNTVEOzExMDQgMTE2MiAxMUI4O0I1NUQ7MTEwNCAxMTYyIDExQjg7CitCNTVFO0I1NUU7MTEwNCAxMTYyIDExQjk7QjU1RTsxMTA0IDExNjIgMTFCOTsKK0I1NUY7QjU1RjsxMTA0IDExNjIgMTFCQTtCNTVGOzExMDQgMTE2MiAxMUJBOworQjU2MDtCNTYwOzExMDQgMTE2MiAxMUJCO0I1NjA7MTEwNCAxMTYyIDExQkI7CitCNTYxO0I1NjE7MTEwNCAxMTYyIDExQkM7QjU2MTsxMTA0IDExNjIgMTFCQzsKK0I1NjI7QjU2MjsxMTA0IDExNjIgMTFCRDtCNTYyOzExMDQgMTE2MiAxMUJEOworQjU2MztCNTYzOzExMDQgMTE2MiAxMUJFO0I1NjM7MTEwNCAxMTYyIDExQkU7CitCNTY0O0I1NjQ7MTEwNCAxMTYyIDExQkY7QjU2NDsxMTA0IDExNjIgMTFCRjsKK0I1NjU7QjU2NTsxMTA0IDExNjIgMTFDMDtCNTY1OzExMDQgMTE2MiAxMUMwOworQjU2NjtCNTY2OzExMDQgMTE2MiAxMUMxO0I1NjY7MTEwNCAxMTYyIDExQzE7CitCNTY3O0I1Njc7MTEwNCAxMTYyIDExQzI7QjU2NzsxMTA0IDExNjIgMTFDMjsKK0I1Njg7QjU2ODsxMTA0IDExNjM7QjU2ODsxMTA0IDExNjM7CitCNTY5O0I1Njk7MTEwNCAxMTYzIDExQTg7QjU2OTsxMTA0IDExNjMgMTFBODsKK0I1NkE7QjU2QTsxMTA0IDExNjMgMTFBOTtCNTZBOzExMDQgMTE2MyAxMUE5OworQjU2QjtCNTZCOzExMDQgMTE2MyAxMUFBO0I1NkI7MTEwNCAxMTYzIDExQUE7CitCNTZDO0I1NkM7MTEwNCAxMTYzIDExQUI7QjU2QzsxMTA0IDExNjMgMTFBQjsKK0I1NkQ7QjU2RDsxMTA0IDExNjMgMTFBQztCNTZEOzExMDQgMTE2MyAxMUFDOworQjU2RTtCNTZFOzExMDQgMTE2MyAxMUFEO0I1NkU7MTEwNCAxMTYzIDExQUQ7CitCNTZGO0I1NkY7MTEwNCAxMTYzIDExQUU7QjU2RjsxMTA0IDExNjMgMTFBRTsKK0I1NzA7QjU3MDsxMTA0IDExNjMgMTFBRjtCNTcwOzExMDQgMTE2MyAxMUFGOworQjU3MTtCNTcxOzExMDQgMTE2MyAxMUIwO0I1NzE7MTEwNCAxMTYzIDExQjA7CitCNTcyO0I1NzI7MTEwNCAxMTYzIDExQjE7QjU3MjsxMTA0IDExNjMgMTFCMTsKK0I1NzM7QjU3MzsxMTA0IDExNjMgMTFCMjtCNTczOzExMDQgMTE2MyAxMUIyOworQjU3NDtCNTc0OzExMDQgMTE2MyAxMUIzO0I1NzQ7MTEwNCAxMTYzIDExQjM7CitCNTc1O0I1NzU7MTEwNCAxMTYzIDExQjQ7QjU3NTsxMTA0IDExNjMgMTFCNDsKK0I1NzY7QjU3NjsxMTA0IDExNjMgMTFCNTtCNTc2OzExMDQgMTE2MyAxMUI1OworQjU3NztCNTc3OzExMDQgMTE2MyAxMUI2O0I1Nzc7MTEwNCAxMTYzIDExQjY7CitCNTc4O0I1Nzg7MTEwNCAxMTYzIDExQjc7QjU3ODsxMTA0IDExNjMgMTFCNzsKK0I1Nzk7QjU3OTsxMTA0IDExNjMgMTFCODtCNTc5OzExMDQgMTE2MyAxMUI4OworQjU3QTtCNTdBOzExMDQgMTE2MyAxMUI5O0I1N0E7MTEwNCAxMTYzIDExQjk7CitCNTdCO0I1N0I7MTEwNCAxMTYzIDExQkE7QjU3QjsxMTA0IDExNjMgMTFCQTsKK0I1N0M7QjU3QzsxMTA0IDExNjMgMTFCQjtCNTdDOzExMDQgMTE2MyAxMUJCOworQjU3RDtCNTdEOzExMDQgMTE2MyAxMUJDO0I1N0Q7MTEwNCAxMTYzIDExQkM7CitCNTdFO0I1N0U7MTEwNCAxMTYzIDExQkQ7QjU3RTsxMTA0IDExNjMgMTFCRDsKK0I1N0Y7QjU3RjsxMTA0IDExNjMgMTFCRTtCNTdGOzExMDQgMTE2MyAxMUJFOworQjU4MDtCNTgwOzExMDQgMTE2MyAxMUJGO0I1ODA7MTEwNCAxMTYzIDExQkY7CitCNTgxO0I1ODE7MTEwNCAxMTYzIDExQzA7QjU4MTsxMTA0IDExNjMgMTFDMDsKK0I1ODI7QjU4MjsxMTA0IDExNjMgMTFDMTtCNTgyOzExMDQgMTE2MyAxMUMxOworQjU4MztCNTgzOzExMDQgMTE2MyAxMUMyO0I1ODM7MTEwNCAxMTYzIDExQzI7CitCNTg0O0I1ODQ7MTEwNCAxMTY0O0I1ODQ7MTEwNCAxMTY0OworQjU4NTtCNTg1OzExMDQgMTE2NCAxMUE4O0I1ODU7MTEwNCAxMTY0IDExQTg7CitCNTg2O0I1ODY7MTEwNCAxMTY0IDExQTk7QjU4NjsxMTA0IDExNjQgMTFBOTsKK0I1ODc7QjU4NzsxMTA0IDExNjQgMTFBQTtCNTg3OzExMDQgMTE2NCAxMUFBOworQjU4ODtCNTg4OzExMDQgMTE2NCAxMUFCO0I1ODg7MTEwNCAxMTY0IDExQUI7CitCNTg5O0I1ODk7MTEwNCAxMTY0IDExQUM7QjU4OTsxMTA0IDExNjQgMTFBQzsKK0I1OEE7QjU4QTsxMTA0IDExNjQgMTFBRDtCNThBOzExMDQgMTE2NCAxMUFEOworQjU4QjtCNThCOzExMDQgMTE2NCAxMUFFO0I1OEI7MTEwNCAxMTY0IDExQUU7CitCNThDO0I1OEM7MTEwNCAxMTY0IDExQUY7QjU4QzsxMTA0IDExNjQgMTFBRjsKK0I1OEQ7QjU4RDsxMTA0IDExNjQgMTFCMDtCNThEOzExMDQgMTE2NCAxMUIwOworQjU4RTtCNThFOzExMDQgMTE2NCAxMUIxO0I1OEU7MTEwNCAxMTY0IDExQjE7CitCNThGO0I1OEY7MTEwNCAxMTY0IDExQjI7QjU4RjsxMTA0IDExNjQgMTFCMjsKK0I1OTA7QjU5MDsxMTA0IDExNjQgMTFCMztCNTkwOzExMDQgMTE2NCAxMUIzOworQjU5MTtCNTkxOzExMDQgMTE2NCAxMUI0O0I1OTE7MTEwNCAxMTY0IDExQjQ7CitCNTkyO0I1OTI7MTEwNCAxMTY0IDExQjU7QjU5MjsxMTA0IDExNjQgMTFCNTsKK0I1OTM7QjU5MzsxMTA0IDExNjQgMTFCNjtCNTkzOzExMDQgMTE2NCAxMUI2OworQjU5NDtCNTk0OzExMDQgMTE2NCAxMUI3O0I1OTQ7MTEwNCAxMTY0IDExQjc7CitCNTk1O0I1OTU7MTEwNCAxMTY0IDExQjg7QjU5NTsxMTA0IDExNjQgMTFCODsKK0I1OTY7QjU5NjsxMTA0IDExNjQgMTFCOTtCNTk2OzExMDQgMTE2NCAxMUI5OworQjU5NztCNTk3OzExMDQgMTE2NCAxMUJBO0I1OTc7MTEwNCAxMTY0IDExQkE7CitCNTk4O0I1OTg7MTEwNCAxMTY0IDExQkI7QjU5ODsxMTA0IDExNjQgMTFCQjsKK0I1OTk7QjU5OTsxMTA0IDExNjQgMTFCQztCNTk5OzExMDQgMTE2NCAxMUJDOworQjU5QTtCNTlBOzExMDQgMTE2NCAxMUJEO0I1OUE7MTEwNCAxMTY0IDExQkQ7CitCNTlCO0I1OUI7MTEwNCAxMTY0IDExQkU7QjU5QjsxMTA0IDExNjQgMTFCRTsKK0I1OUM7QjU5QzsxMTA0IDExNjQgMTFCRjtCNTlDOzExMDQgMTE2NCAxMUJGOworQjU5RDtCNTlEOzExMDQgMTE2NCAxMUMwO0I1OUQ7MTEwNCAxMTY0IDExQzA7CitCNTlFO0I1OUU7MTEwNCAxMTY0IDExQzE7QjU5RTsxMTA0IDExNjQgMTFDMTsKK0I1OUY7QjU5RjsxMTA0IDExNjQgMTFDMjtCNTlGOzExMDQgMTE2NCAxMUMyOworQjVBMDtCNUEwOzExMDQgMTE2NTtCNUEwOzExMDQgMTE2NTsKK0I1QTE7QjVBMTsxMTA0IDExNjUgMTFBODtCNUExOzExMDQgMTE2NSAxMUE4OworQjVBMjtCNUEyOzExMDQgMTE2NSAxMUE5O0I1QTI7MTEwNCAxMTY1IDExQTk7CitCNUEzO0I1QTM7MTEwNCAxMTY1IDExQUE7QjVBMzsxMTA0IDExNjUgMTFBQTsKK0I1QTQ7QjVBNDsxMTA0IDExNjUgMTFBQjtCNUE0OzExMDQgMTE2NSAxMUFCOworQjVBNTtCNUE1OzExMDQgMTE2NSAxMUFDO0I1QTU7MTEwNCAxMTY1IDExQUM7CitCNUE2O0I1QTY7MTEwNCAxMTY1IDExQUQ7QjVBNjsxMTA0IDExNjUgMTFBRDsKK0I1QTc7QjVBNzsxMTA0IDExNjUgMTFBRTtCNUE3OzExMDQgMTE2NSAxMUFFOworQjVBODtCNUE4OzExMDQgMTE2NSAxMUFGO0I1QTg7MTEwNCAxMTY1IDExQUY7CitCNUE5O0I1QTk7MTEwNCAxMTY1IDExQjA7QjVBOTsxMTA0IDExNjUgMTFCMDsKK0I1QUE7QjVBQTsxMTA0IDExNjUgMTFCMTtCNUFBOzExMDQgMTE2NSAxMUIxOworQjVBQjtCNUFCOzExMDQgMTE2NSAxMUIyO0I1QUI7MTEwNCAxMTY1IDExQjI7CitCNUFDO0I1QUM7MTEwNCAxMTY1IDExQjM7QjVBQzsxMTA0IDExNjUgMTFCMzsKK0I1QUQ7QjVBRDsxMTA0IDExNjUgMTFCNDtCNUFEOzExMDQgMTE2NSAxMUI0OworQjVBRTtCNUFFOzExMDQgMTE2NSAxMUI1O0I1QUU7MTEwNCAxMTY1IDExQjU7CitCNUFGO0I1QUY7MTEwNCAxMTY1IDExQjY7QjVBRjsxMTA0IDExNjUgMTFCNjsKK0I1QjA7QjVCMDsxMTA0IDExNjUgMTFCNztCNUIwOzExMDQgMTE2NSAxMUI3OworQjVCMTtCNUIxOzExMDQgMTE2NSAxMUI4O0I1QjE7MTEwNCAxMTY1IDExQjg7CitCNUIyO0I1QjI7MTEwNCAxMTY1IDExQjk7QjVCMjsxMTA0IDExNjUgMTFCOTsKK0I1QjM7QjVCMzsxMTA0IDExNjUgMTFCQTtCNUIzOzExMDQgMTE2NSAxMUJBOworQjVCNDtCNUI0OzExMDQgMTE2NSAxMUJCO0I1QjQ7MTEwNCAxMTY1IDExQkI7CitCNUI1O0I1QjU7MTEwNCAxMTY1IDExQkM7QjVCNTsxMTA0IDExNjUgMTFCQzsKK0I1QjY7QjVCNjsxMTA0IDExNjUgMTFCRDtCNUI2OzExMDQgMTE2NSAxMUJEOworQjVCNztCNUI3OzExMDQgMTE2NSAxMUJFO0I1Qjc7MTEwNCAxMTY1IDExQkU7CitCNUI4O0I1Qjg7MTEwNCAxMTY1IDExQkY7QjVCODsxMTA0IDExNjUgMTFCRjsKK0I1Qjk7QjVCOTsxMTA0IDExNjUgMTFDMDtCNUI5OzExMDQgMTE2NSAxMUMwOworQjVCQTtCNUJBOzExMDQgMTE2NSAxMUMxO0I1QkE7MTEwNCAxMTY1IDExQzE7CitCNUJCO0I1QkI7MTEwNCAxMTY1IDExQzI7QjVCQjsxMTA0IDExNjUgMTFDMjsKK0I1QkM7QjVCQzsxMTA0IDExNjY7QjVCQzsxMTA0IDExNjY7CitCNUJEO0I1QkQ7MTEwNCAxMTY2IDExQTg7QjVCRDsxMTA0IDExNjYgMTFBODsKK0I1QkU7QjVCRTsxMTA0IDExNjYgMTFBOTtCNUJFOzExMDQgMTE2NiAxMUE5OworQjVCRjtCNUJGOzExMDQgMTE2NiAxMUFBO0I1QkY7MTEwNCAxMTY2IDExQUE7CitCNUMwO0I1QzA7MTEwNCAxMTY2IDExQUI7QjVDMDsxMTA0IDExNjYgMTFBQjsKK0I1QzE7QjVDMTsxMTA0IDExNjYgMTFBQztCNUMxOzExMDQgMTE2NiAxMUFDOworQjVDMjtCNUMyOzExMDQgMTE2NiAxMUFEO0I1QzI7MTEwNCAxMTY2IDExQUQ7CitCNUMzO0I1QzM7MTEwNCAxMTY2IDExQUU7QjVDMzsxMTA0IDExNjYgMTFBRTsKK0I1QzQ7QjVDNDsxMTA0IDExNjYgMTFBRjtCNUM0OzExMDQgMTE2NiAxMUFGOworQjVDNTtCNUM1OzExMDQgMTE2NiAxMUIwO0I1QzU7MTEwNCAxMTY2IDExQjA7CitCNUM2O0I1QzY7MTEwNCAxMTY2IDExQjE7QjVDNjsxMTA0IDExNjYgMTFCMTsKK0I1Qzc7QjVDNzsxMTA0IDExNjYgMTFCMjtCNUM3OzExMDQgMTE2NiAxMUIyOworQjVDODtCNUM4OzExMDQgMTE2NiAxMUIzO0I1Qzg7MTEwNCAxMTY2IDExQjM7CitCNUM5O0I1Qzk7MTEwNCAxMTY2IDExQjQ7QjVDOTsxMTA0IDExNjYgMTFCNDsKK0I1Q0E7QjVDQTsxMTA0IDExNjYgMTFCNTtCNUNBOzExMDQgMTE2NiAxMUI1OworQjVDQjtCNUNCOzExMDQgMTE2NiAxMUI2O0I1Q0I7MTEwNCAxMTY2IDExQjY7CitCNUNDO0I1Q0M7MTEwNCAxMTY2IDExQjc7QjVDQzsxMTA0IDExNjYgMTFCNzsKK0I1Q0Q7QjVDRDsxMTA0IDExNjYgMTFCODtCNUNEOzExMDQgMTE2NiAxMUI4OworQjVDRTtCNUNFOzExMDQgMTE2NiAxMUI5O0I1Q0U7MTEwNCAxMTY2IDExQjk7CitCNUNGO0I1Q0Y7MTEwNCAxMTY2IDExQkE7QjVDRjsxMTA0IDExNjYgMTFCQTsKK0I1RDA7QjVEMDsxMTA0IDExNjYgMTFCQjtCNUQwOzExMDQgMTE2NiAxMUJCOworQjVEMTtCNUQxOzExMDQgMTE2NiAxMUJDO0I1RDE7MTEwNCAxMTY2IDExQkM7CitCNUQyO0I1RDI7MTEwNCAxMTY2IDExQkQ7QjVEMjsxMTA0IDExNjYgMTFCRDsKK0I1RDM7QjVEMzsxMTA0IDExNjYgMTFCRTtCNUQzOzExMDQgMTE2NiAxMUJFOworQjVENDtCNUQ0OzExMDQgMTE2NiAxMUJGO0I1RDQ7MTEwNCAxMTY2IDExQkY7CitCNUQ1O0I1RDU7MTEwNCAxMTY2IDExQzA7QjVENTsxMTA0IDExNjYgMTFDMDsKK0I1RDY7QjVENjsxMTA0IDExNjYgMTFDMTtCNUQ2OzExMDQgMTE2NiAxMUMxOworQjVENztCNUQ3OzExMDQgMTE2NiAxMUMyO0I1RDc7MTEwNCAxMTY2IDExQzI7CitCNUQ4O0I1RDg7MTEwNCAxMTY3O0I1RDg7MTEwNCAxMTY3OworQjVEOTtCNUQ5OzExMDQgMTE2NyAxMUE4O0I1RDk7MTEwNCAxMTY3IDExQTg7CitCNURBO0I1REE7MTEwNCAxMTY3IDExQTk7QjVEQTsxMTA0IDExNjcgMTFBOTsKK0I1REI7QjVEQjsxMTA0IDExNjcgMTFBQTtCNURCOzExMDQgMTE2NyAxMUFBOworQjVEQztCNURDOzExMDQgMTE2NyAxMUFCO0I1REM7MTEwNCAxMTY3IDExQUI7CitCNUREO0I1REQ7MTEwNCAxMTY3IDExQUM7QjVERDsxMTA0IDExNjcgMTFBQzsKK0I1REU7QjVERTsxMTA0IDExNjcgMTFBRDtCNURFOzExMDQgMTE2NyAxMUFEOworQjVERjtCNURGOzExMDQgMTE2NyAxMUFFO0I1REY7MTEwNCAxMTY3IDExQUU7CitCNUUwO0I1RTA7MTEwNCAxMTY3IDExQUY7QjVFMDsxMTA0IDExNjcgMTFBRjsKK0I1RTE7QjVFMTsxMTA0IDExNjcgMTFCMDtCNUUxOzExMDQgMTE2NyAxMUIwOworQjVFMjtCNUUyOzExMDQgMTE2NyAxMUIxO0I1RTI7MTEwNCAxMTY3IDExQjE7CitCNUUzO0I1RTM7MTEwNCAxMTY3IDExQjI7QjVFMzsxMTA0IDExNjcgMTFCMjsKK0I1RTQ7QjVFNDsxMTA0IDExNjcgMTFCMztCNUU0OzExMDQgMTE2NyAxMUIzOworQjVFNTtCNUU1OzExMDQgMTE2NyAxMUI0O0I1RTU7MTEwNCAxMTY3IDExQjQ7CitCNUU2O0I1RTY7MTEwNCAxMTY3IDExQjU7QjVFNjsxMTA0IDExNjcgMTFCNTsKK0I1RTc7QjVFNzsxMTA0IDExNjcgMTFCNjtCNUU3OzExMDQgMTE2NyAxMUI2OworQjVFODtCNUU4OzExMDQgMTE2NyAxMUI3O0I1RTg7MTEwNCAxMTY3IDExQjc7CitCNUU5O0I1RTk7MTEwNCAxMTY3IDExQjg7QjVFOTsxMTA0IDExNjcgMTFCODsKK0I1RUE7QjVFQTsxMTA0IDExNjcgMTFCOTtCNUVBOzExMDQgMTE2NyAxMUI5OworQjVFQjtCNUVCOzExMDQgMTE2NyAxMUJBO0I1RUI7MTEwNCAxMTY3IDExQkE7CitCNUVDO0I1RUM7MTEwNCAxMTY3IDExQkI7QjVFQzsxMTA0IDExNjcgMTFCQjsKK0I1RUQ7QjVFRDsxMTA0IDExNjcgMTFCQztCNUVEOzExMDQgMTE2NyAxMUJDOworQjVFRTtCNUVFOzExMDQgMTE2NyAxMUJEO0I1RUU7MTEwNCAxMTY3IDExQkQ7CitCNUVGO0I1RUY7MTEwNCAxMTY3IDExQkU7QjVFRjsxMTA0IDExNjcgMTFCRTsKK0I1RjA7QjVGMDsxMTA0IDExNjcgMTFCRjtCNUYwOzExMDQgMTE2NyAxMUJGOworQjVGMTtCNUYxOzExMDQgMTE2NyAxMUMwO0I1RjE7MTEwNCAxMTY3IDExQzA7CitCNUYyO0I1RjI7MTEwNCAxMTY3IDExQzE7QjVGMjsxMTA0IDExNjcgMTFDMTsKK0I1RjM7QjVGMzsxMTA0IDExNjcgMTFDMjtCNUYzOzExMDQgMTE2NyAxMUMyOworQjVGNDtCNUY0OzExMDQgMTE2ODtCNUY0OzExMDQgMTE2ODsKK0I1RjU7QjVGNTsxMTA0IDExNjggMTFBODtCNUY1OzExMDQgMTE2OCAxMUE4OworQjVGNjtCNUY2OzExMDQgMTE2OCAxMUE5O0I1RjY7MTEwNCAxMTY4IDExQTk7CitCNUY3O0I1Rjc7MTEwNCAxMTY4IDExQUE7QjVGNzsxMTA0IDExNjggMTFBQTsKK0I1Rjg7QjVGODsxMTA0IDExNjggMTFBQjtCNUY4OzExMDQgMTE2OCAxMUFCOworQjVGOTtCNUY5OzExMDQgMTE2OCAxMUFDO0I1Rjk7MTEwNCAxMTY4IDExQUM7CitCNUZBO0I1RkE7MTEwNCAxMTY4IDExQUQ7QjVGQTsxMTA0IDExNjggMTFBRDsKK0I1RkI7QjVGQjsxMTA0IDExNjggMTFBRTtCNUZCOzExMDQgMTE2OCAxMUFFOworQjVGQztCNUZDOzExMDQgMTE2OCAxMUFGO0I1RkM7MTEwNCAxMTY4IDExQUY7CitCNUZEO0I1RkQ7MTEwNCAxMTY4IDExQjA7QjVGRDsxMTA0IDExNjggMTFCMDsKK0I1RkU7QjVGRTsxMTA0IDExNjggMTFCMTtCNUZFOzExMDQgMTE2OCAxMUIxOworQjVGRjtCNUZGOzExMDQgMTE2OCAxMUIyO0I1RkY7MTEwNCAxMTY4IDExQjI7CitCNjAwO0I2MDA7MTEwNCAxMTY4IDExQjM7QjYwMDsxMTA0IDExNjggMTFCMzsKK0I2MDE7QjYwMTsxMTA0IDExNjggMTFCNDtCNjAxOzExMDQgMTE2OCAxMUI0OworQjYwMjtCNjAyOzExMDQgMTE2OCAxMUI1O0I2MDI7MTEwNCAxMTY4IDExQjU7CitCNjAzO0I2MDM7MTEwNCAxMTY4IDExQjY7QjYwMzsxMTA0IDExNjggMTFCNjsKK0I2MDQ7QjYwNDsxMTA0IDExNjggMTFCNztCNjA0OzExMDQgMTE2OCAxMUI3OworQjYwNTtCNjA1OzExMDQgMTE2OCAxMUI4O0I2MDU7MTEwNCAxMTY4IDExQjg7CitCNjA2O0I2MDY7MTEwNCAxMTY4IDExQjk7QjYwNjsxMTA0IDExNjggMTFCOTsKK0I2MDc7QjYwNzsxMTA0IDExNjggMTFCQTtCNjA3OzExMDQgMTE2OCAxMUJBOworQjYwODtCNjA4OzExMDQgMTE2OCAxMUJCO0I2MDg7MTEwNCAxMTY4IDExQkI7CitCNjA5O0I2MDk7MTEwNCAxMTY4IDExQkM7QjYwOTsxMTA0IDExNjggMTFCQzsKK0I2MEE7QjYwQTsxMTA0IDExNjggMTFCRDtCNjBBOzExMDQgMTE2OCAxMUJEOworQjYwQjtCNjBCOzExMDQgMTE2OCAxMUJFO0I2MEI7MTEwNCAxMTY4IDExQkU7CitCNjBDO0I2MEM7MTEwNCAxMTY4IDExQkY7QjYwQzsxMTA0IDExNjggMTFCRjsKK0I2MEQ7QjYwRDsxMTA0IDExNjggMTFDMDtCNjBEOzExMDQgMTE2OCAxMUMwOworQjYwRTtCNjBFOzExMDQgMTE2OCAxMUMxO0I2MEU7MTEwNCAxMTY4IDExQzE7CitCNjBGO0I2MEY7MTEwNCAxMTY4IDExQzI7QjYwRjsxMTA0IDExNjggMTFDMjsKK0I2MTA7QjYxMDsxMTA0IDExNjk7QjYxMDsxMTA0IDExNjk7CitCNjExO0I2MTE7MTEwNCAxMTY5IDExQTg7QjYxMTsxMTA0IDExNjkgMTFBODsKK0I2MTI7QjYxMjsxMTA0IDExNjkgMTFBOTtCNjEyOzExMDQgMTE2OSAxMUE5OworQjYxMztCNjEzOzExMDQgMTE2OSAxMUFBO0I2MTM7MTEwNCAxMTY5IDExQUE7CitCNjE0O0I2MTQ7MTEwNCAxMTY5IDExQUI7QjYxNDsxMTA0IDExNjkgMTFBQjsKK0I2MTU7QjYxNTsxMTA0IDExNjkgMTFBQztCNjE1OzExMDQgMTE2OSAxMUFDOworQjYxNjtCNjE2OzExMDQgMTE2OSAxMUFEO0I2MTY7MTEwNCAxMTY5IDExQUQ7CitCNjE3O0I2MTc7MTEwNCAxMTY5IDExQUU7QjYxNzsxMTA0IDExNjkgMTFBRTsKK0I2MTg7QjYxODsxMTA0IDExNjkgMTFBRjtCNjE4OzExMDQgMTE2OSAxMUFGOworQjYxOTtCNjE5OzExMDQgMTE2OSAxMUIwO0I2MTk7MTEwNCAxMTY5IDExQjA7CitCNjFBO0I2MUE7MTEwNCAxMTY5IDExQjE7QjYxQTsxMTA0IDExNjkgMTFCMTsKK0I2MUI7QjYxQjsxMTA0IDExNjkgMTFCMjtCNjFCOzExMDQgMTE2OSAxMUIyOworQjYxQztCNjFDOzExMDQgMTE2OSAxMUIzO0I2MUM7MTEwNCAxMTY5IDExQjM7CitCNjFEO0I2MUQ7MTEwNCAxMTY5IDExQjQ7QjYxRDsxMTA0IDExNjkgMTFCNDsKK0I2MUU7QjYxRTsxMTA0IDExNjkgMTFCNTtCNjFFOzExMDQgMTE2OSAxMUI1OworQjYxRjtCNjFGOzExMDQgMTE2OSAxMUI2O0I2MUY7MTEwNCAxMTY5IDExQjY7CitCNjIwO0I2MjA7MTEwNCAxMTY5IDExQjc7QjYyMDsxMTA0IDExNjkgMTFCNzsKK0I2MjE7QjYyMTsxMTA0IDExNjkgMTFCODtCNjIxOzExMDQgMTE2OSAxMUI4OworQjYyMjtCNjIyOzExMDQgMTE2OSAxMUI5O0I2MjI7MTEwNCAxMTY5IDExQjk7CitCNjIzO0I2MjM7MTEwNCAxMTY5IDExQkE7QjYyMzsxMTA0IDExNjkgMTFCQTsKK0I2MjQ7QjYyNDsxMTA0IDExNjkgMTFCQjtCNjI0OzExMDQgMTE2OSAxMUJCOworQjYyNTtCNjI1OzExMDQgMTE2OSAxMUJDO0I2MjU7MTEwNCAxMTY5IDExQkM7CitCNjI2O0I2MjY7MTEwNCAxMTY5IDExQkQ7QjYyNjsxMTA0IDExNjkgMTFCRDsKK0I2Mjc7QjYyNzsxMTA0IDExNjkgMTFCRTtCNjI3OzExMDQgMTE2OSAxMUJFOworQjYyODtCNjI4OzExMDQgMTE2OSAxMUJGO0I2Mjg7MTEwNCAxMTY5IDExQkY7CitCNjI5O0I2Mjk7MTEwNCAxMTY5IDExQzA7QjYyOTsxMTA0IDExNjkgMTFDMDsKK0I2MkE7QjYyQTsxMTA0IDExNjkgMTFDMTtCNjJBOzExMDQgMTE2OSAxMUMxOworQjYyQjtCNjJCOzExMDQgMTE2OSAxMUMyO0I2MkI7MTEwNCAxMTY5IDExQzI7CitCNjJDO0I2MkM7MTEwNCAxMTZBO0I2MkM7MTEwNCAxMTZBOworQjYyRDtCNjJEOzExMDQgMTE2QSAxMUE4O0I2MkQ7MTEwNCAxMTZBIDExQTg7CitCNjJFO0I2MkU7MTEwNCAxMTZBIDExQTk7QjYyRTsxMTA0IDExNkEgMTFBOTsKK0I2MkY7QjYyRjsxMTA0IDExNkEgMTFBQTtCNjJGOzExMDQgMTE2QSAxMUFBOworQjYzMDtCNjMwOzExMDQgMTE2QSAxMUFCO0I2MzA7MTEwNCAxMTZBIDExQUI7CitCNjMxO0I2MzE7MTEwNCAxMTZBIDExQUM7QjYzMTsxMTA0IDExNkEgMTFBQzsKK0I2MzI7QjYzMjsxMTA0IDExNkEgMTFBRDtCNjMyOzExMDQgMTE2QSAxMUFEOworQjYzMztCNjMzOzExMDQgMTE2QSAxMUFFO0I2MzM7MTEwNCAxMTZBIDExQUU7CitCNjM0O0I2MzQ7MTEwNCAxMTZBIDExQUY7QjYzNDsxMTA0IDExNkEgMTFBRjsKK0I2MzU7QjYzNTsxMTA0IDExNkEgMTFCMDtCNjM1OzExMDQgMTE2QSAxMUIwOworQjYzNjtCNjM2OzExMDQgMTE2QSAxMUIxO0I2MzY7MTEwNCAxMTZBIDExQjE7CitCNjM3O0I2Mzc7MTEwNCAxMTZBIDExQjI7QjYzNzsxMTA0IDExNkEgMTFCMjsKK0I2Mzg7QjYzODsxMTA0IDExNkEgMTFCMztCNjM4OzExMDQgMTE2QSAxMUIzOworQjYzOTtCNjM5OzExMDQgMTE2QSAxMUI0O0I2Mzk7MTEwNCAxMTZBIDExQjQ7CitCNjNBO0I2M0E7MTEwNCAxMTZBIDExQjU7QjYzQTsxMTA0IDExNkEgMTFCNTsKK0I2M0I7QjYzQjsxMTA0IDExNkEgMTFCNjtCNjNCOzExMDQgMTE2QSAxMUI2OworQjYzQztCNjNDOzExMDQgMTE2QSAxMUI3O0I2M0M7MTEwNCAxMTZBIDExQjc7CitCNjNEO0I2M0Q7MTEwNCAxMTZBIDExQjg7QjYzRDsxMTA0IDExNkEgMTFCODsKK0I2M0U7QjYzRTsxMTA0IDExNkEgMTFCOTtCNjNFOzExMDQgMTE2QSAxMUI5OworQjYzRjtCNjNGOzExMDQgMTE2QSAxMUJBO0I2M0Y7MTEwNCAxMTZBIDExQkE7CitCNjQwO0I2NDA7MTEwNCAxMTZBIDExQkI7QjY0MDsxMTA0IDExNkEgMTFCQjsKK0I2NDE7QjY0MTsxMTA0IDExNkEgMTFCQztCNjQxOzExMDQgMTE2QSAxMUJDOworQjY0MjtCNjQyOzExMDQgMTE2QSAxMUJEO0I2NDI7MTEwNCAxMTZBIDExQkQ7CitCNjQzO0I2NDM7MTEwNCAxMTZBIDExQkU7QjY0MzsxMTA0IDExNkEgMTFCRTsKK0I2NDQ7QjY0NDsxMTA0IDExNkEgMTFCRjtCNjQ0OzExMDQgMTE2QSAxMUJGOworQjY0NTtCNjQ1OzExMDQgMTE2QSAxMUMwO0I2NDU7MTEwNCAxMTZBIDExQzA7CitCNjQ2O0I2NDY7MTEwNCAxMTZBIDExQzE7QjY0NjsxMTA0IDExNkEgMTFDMTsKK0I2NDc7QjY0NzsxMTA0IDExNkEgMTFDMjtCNjQ3OzExMDQgMTE2QSAxMUMyOworQjY0ODtCNjQ4OzExMDQgMTE2QjtCNjQ4OzExMDQgMTE2QjsKK0I2NDk7QjY0OTsxMTA0IDExNkIgMTFBODtCNjQ5OzExMDQgMTE2QiAxMUE4OworQjY0QTtCNjRBOzExMDQgMTE2QiAxMUE5O0I2NEE7MTEwNCAxMTZCIDExQTk7CitCNjRCO0I2NEI7MTEwNCAxMTZCIDExQUE7QjY0QjsxMTA0IDExNkIgMTFBQTsKK0I2NEM7QjY0QzsxMTA0IDExNkIgMTFBQjtCNjRDOzExMDQgMTE2QiAxMUFCOworQjY0RDtCNjREOzExMDQgMTE2QiAxMUFDO0I2NEQ7MTEwNCAxMTZCIDExQUM7CitCNjRFO0I2NEU7MTEwNCAxMTZCIDExQUQ7QjY0RTsxMTA0IDExNkIgMTFBRDsKK0I2NEY7QjY0RjsxMTA0IDExNkIgMTFBRTtCNjRGOzExMDQgMTE2QiAxMUFFOworQjY1MDtCNjUwOzExMDQgMTE2QiAxMUFGO0I2NTA7MTEwNCAxMTZCIDExQUY7CitCNjUxO0I2NTE7MTEwNCAxMTZCIDExQjA7QjY1MTsxMTA0IDExNkIgMTFCMDsKK0I2NTI7QjY1MjsxMTA0IDExNkIgMTFCMTtCNjUyOzExMDQgMTE2QiAxMUIxOworQjY1MztCNjUzOzExMDQgMTE2QiAxMUIyO0I2NTM7MTEwNCAxMTZCIDExQjI7CitCNjU0O0I2NTQ7MTEwNCAxMTZCIDExQjM7QjY1NDsxMTA0IDExNkIgMTFCMzsKK0I2NTU7QjY1NTsxMTA0IDExNkIgMTFCNDtCNjU1OzExMDQgMTE2QiAxMUI0OworQjY1NjtCNjU2OzExMDQgMTE2QiAxMUI1O0I2NTY7MTEwNCAxMTZCIDExQjU7CitCNjU3O0I2NTc7MTEwNCAxMTZCIDExQjY7QjY1NzsxMTA0IDExNkIgMTFCNjsKK0I2NTg7QjY1ODsxMTA0IDExNkIgMTFCNztCNjU4OzExMDQgMTE2QiAxMUI3OworQjY1OTtCNjU5OzExMDQgMTE2QiAxMUI4O0I2NTk7MTEwNCAxMTZCIDExQjg7CitCNjVBO0I2NUE7MTEwNCAxMTZCIDExQjk7QjY1QTsxMTA0IDExNkIgMTFCOTsKK0I2NUI7QjY1QjsxMTA0IDExNkIgMTFCQTtCNjVCOzExMDQgMTE2QiAxMUJBOworQjY1QztCNjVDOzExMDQgMTE2QiAxMUJCO0I2NUM7MTEwNCAxMTZCIDExQkI7CitCNjVEO0I2NUQ7MTEwNCAxMTZCIDExQkM7QjY1RDsxMTA0IDExNkIgMTFCQzsKK0I2NUU7QjY1RTsxMTA0IDExNkIgMTFCRDtCNjVFOzExMDQgMTE2QiAxMUJEOworQjY1RjtCNjVGOzExMDQgMTE2QiAxMUJFO0I2NUY7MTEwNCAxMTZCIDExQkU7CitCNjYwO0I2NjA7MTEwNCAxMTZCIDExQkY7QjY2MDsxMTA0IDExNkIgMTFCRjsKK0I2NjE7QjY2MTsxMTA0IDExNkIgMTFDMDtCNjYxOzExMDQgMTE2QiAxMUMwOworQjY2MjtCNjYyOzExMDQgMTE2QiAxMUMxO0I2NjI7MTEwNCAxMTZCIDExQzE7CitCNjYzO0I2NjM7MTEwNCAxMTZCIDExQzI7QjY2MzsxMTA0IDExNkIgMTFDMjsKK0I2NjQ7QjY2NDsxMTA0IDExNkM7QjY2NDsxMTA0IDExNkM7CitCNjY1O0I2NjU7MTEwNCAxMTZDIDExQTg7QjY2NTsxMTA0IDExNkMgMTFBODsKK0I2NjY7QjY2NjsxMTA0IDExNkMgMTFBOTtCNjY2OzExMDQgMTE2QyAxMUE5OworQjY2NztCNjY3OzExMDQgMTE2QyAxMUFBO0I2Njc7MTEwNCAxMTZDIDExQUE7CitCNjY4O0I2Njg7MTEwNCAxMTZDIDExQUI7QjY2ODsxMTA0IDExNkMgMTFBQjsKK0I2Njk7QjY2OTsxMTA0IDExNkMgMTFBQztCNjY5OzExMDQgMTE2QyAxMUFDOworQjY2QTtCNjZBOzExMDQgMTE2QyAxMUFEO0I2NkE7MTEwNCAxMTZDIDExQUQ7CitCNjZCO0I2NkI7MTEwNCAxMTZDIDExQUU7QjY2QjsxMTA0IDExNkMgMTFBRTsKK0I2NkM7QjY2QzsxMTA0IDExNkMgMTFBRjtCNjZDOzExMDQgMTE2QyAxMUFGOworQjY2RDtCNjZEOzExMDQgMTE2QyAxMUIwO0I2NkQ7MTEwNCAxMTZDIDExQjA7CitCNjZFO0I2NkU7MTEwNCAxMTZDIDExQjE7QjY2RTsxMTA0IDExNkMgMTFCMTsKK0I2NkY7QjY2RjsxMTA0IDExNkMgMTFCMjtCNjZGOzExMDQgMTE2QyAxMUIyOworQjY3MDtCNjcwOzExMDQgMTE2QyAxMUIzO0I2NzA7MTEwNCAxMTZDIDExQjM7CitCNjcxO0I2NzE7MTEwNCAxMTZDIDExQjQ7QjY3MTsxMTA0IDExNkMgMTFCNDsKK0I2NzI7QjY3MjsxMTA0IDExNkMgMTFCNTtCNjcyOzExMDQgMTE2QyAxMUI1OworQjY3MztCNjczOzExMDQgMTE2QyAxMUI2O0I2NzM7MTEwNCAxMTZDIDExQjY7CitCNjc0O0I2NzQ7MTEwNCAxMTZDIDExQjc7QjY3NDsxMTA0IDExNkMgMTFCNzsKK0I2NzU7QjY3NTsxMTA0IDExNkMgMTFCODtCNjc1OzExMDQgMTE2QyAxMUI4OworQjY3NjtCNjc2OzExMDQgMTE2QyAxMUI5O0I2NzY7MTEwNCAxMTZDIDExQjk7CitCNjc3O0I2Nzc7MTEwNCAxMTZDIDExQkE7QjY3NzsxMTA0IDExNkMgMTFCQTsKK0I2Nzg7QjY3ODsxMTA0IDExNkMgMTFCQjtCNjc4OzExMDQgMTE2QyAxMUJCOworQjY3OTtCNjc5OzExMDQgMTE2QyAxMUJDO0I2Nzk7MTEwNCAxMTZDIDExQkM7CitCNjdBO0I2N0E7MTEwNCAxMTZDIDExQkQ7QjY3QTsxMTA0IDExNkMgMTFCRDsKK0I2N0I7QjY3QjsxMTA0IDExNkMgMTFCRTtCNjdCOzExMDQgMTE2QyAxMUJFOworQjY3QztCNjdDOzExMDQgMTE2QyAxMUJGO0I2N0M7MTEwNCAxMTZDIDExQkY7CitCNjdEO0I2N0Q7MTEwNCAxMTZDIDExQzA7QjY3RDsxMTA0IDExNkMgMTFDMDsKK0I2N0U7QjY3RTsxMTA0IDExNkMgMTFDMTtCNjdFOzExMDQgMTE2QyAxMUMxOworQjY3RjtCNjdGOzExMDQgMTE2QyAxMUMyO0I2N0Y7MTEwNCAxMTZDIDExQzI7CitCNjgwO0I2ODA7MTEwNCAxMTZEO0I2ODA7MTEwNCAxMTZEOworQjY4MTtCNjgxOzExMDQgMTE2RCAxMUE4O0I2ODE7MTEwNCAxMTZEIDExQTg7CitCNjgyO0I2ODI7MTEwNCAxMTZEIDExQTk7QjY4MjsxMTA0IDExNkQgMTFBOTsKK0I2ODM7QjY4MzsxMTA0IDExNkQgMTFBQTtCNjgzOzExMDQgMTE2RCAxMUFBOworQjY4NDtCNjg0OzExMDQgMTE2RCAxMUFCO0I2ODQ7MTEwNCAxMTZEIDExQUI7CitCNjg1O0I2ODU7MTEwNCAxMTZEIDExQUM7QjY4NTsxMTA0IDExNkQgMTFBQzsKK0I2ODY7QjY4NjsxMTA0IDExNkQgMTFBRDtCNjg2OzExMDQgMTE2RCAxMUFEOworQjY4NztCNjg3OzExMDQgMTE2RCAxMUFFO0I2ODc7MTEwNCAxMTZEIDExQUU7CitCNjg4O0I2ODg7MTEwNCAxMTZEIDExQUY7QjY4ODsxMTA0IDExNkQgMTFBRjsKK0I2ODk7QjY4OTsxMTA0IDExNkQgMTFCMDtCNjg5OzExMDQgMTE2RCAxMUIwOworQjY4QTtCNjhBOzExMDQgMTE2RCAxMUIxO0I2OEE7MTEwNCAxMTZEIDExQjE7CitCNjhCO0I2OEI7MTEwNCAxMTZEIDExQjI7QjY4QjsxMTA0IDExNkQgMTFCMjsKK0I2OEM7QjY4QzsxMTA0IDExNkQgMTFCMztCNjhDOzExMDQgMTE2RCAxMUIzOworQjY4RDtCNjhEOzExMDQgMTE2RCAxMUI0O0I2OEQ7MTEwNCAxMTZEIDExQjQ7CitCNjhFO0I2OEU7MTEwNCAxMTZEIDExQjU7QjY4RTsxMTA0IDExNkQgMTFCNTsKK0I2OEY7QjY4RjsxMTA0IDExNkQgMTFCNjtCNjhGOzExMDQgMTE2RCAxMUI2OworQjY5MDtCNjkwOzExMDQgMTE2RCAxMUI3O0I2OTA7MTEwNCAxMTZEIDExQjc7CitCNjkxO0I2OTE7MTEwNCAxMTZEIDExQjg7QjY5MTsxMTA0IDExNkQgMTFCODsKK0I2OTI7QjY5MjsxMTA0IDExNkQgMTFCOTtCNjkyOzExMDQgMTE2RCAxMUI5OworQjY5MztCNjkzOzExMDQgMTE2RCAxMUJBO0I2OTM7MTEwNCAxMTZEIDExQkE7CitCNjk0O0I2OTQ7MTEwNCAxMTZEIDExQkI7QjY5NDsxMTA0IDExNkQgMTFCQjsKK0I2OTU7QjY5NTsxMTA0IDExNkQgMTFCQztCNjk1OzExMDQgMTE2RCAxMUJDOworQjY5NjtCNjk2OzExMDQgMTE2RCAxMUJEO0I2OTY7MTEwNCAxMTZEIDExQkQ7CitCNjk3O0I2OTc7MTEwNCAxMTZEIDExQkU7QjY5NzsxMTA0IDExNkQgMTFCRTsKK0I2OTg7QjY5ODsxMTA0IDExNkQgMTFCRjtCNjk4OzExMDQgMTE2RCAxMUJGOworQjY5OTtCNjk5OzExMDQgMTE2RCAxMUMwO0I2OTk7MTEwNCAxMTZEIDExQzA7CitCNjlBO0I2OUE7MTEwNCAxMTZEIDExQzE7QjY5QTsxMTA0IDExNkQgMTFDMTsKK0I2OUI7QjY5QjsxMTA0IDExNkQgMTFDMjtCNjlCOzExMDQgMTE2RCAxMUMyOworQjY5QztCNjlDOzExMDQgMTE2RTtCNjlDOzExMDQgMTE2RTsKK0I2OUQ7QjY5RDsxMTA0IDExNkUgMTFBODtCNjlEOzExMDQgMTE2RSAxMUE4OworQjY5RTtCNjlFOzExMDQgMTE2RSAxMUE5O0I2OUU7MTEwNCAxMTZFIDExQTk7CitCNjlGO0I2OUY7MTEwNCAxMTZFIDExQUE7QjY5RjsxMTA0IDExNkUgMTFBQTsKK0I2QTA7QjZBMDsxMTA0IDExNkUgMTFBQjtCNkEwOzExMDQgMTE2RSAxMUFCOworQjZBMTtCNkExOzExMDQgMTE2RSAxMUFDO0I2QTE7MTEwNCAxMTZFIDExQUM7CitCNkEyO0I2QTI7MTEwNCAxMTZFIDExQUQ7QjZBMjsxMTA0IDExNkUgMTFBRDsKK0I2QTM7QjZBMzsxMTA0IDExNkUgMTFBRTtCNkEzOzExMDQgMTE2RSAxMUFFOworQjZBNDtCNkE0OzExMDQgMTE2RSAxMUFGO0I2QTQ7MTEwNCAxMTZFIDExQUY7CitCNkE1O0I2QTU7MTEwNCAxMTZFIDExQjA7QjZBNTsxMTA0IDExNkUgMTFCMDsKK0I2QTY7QjZBNjsxMTA0IDExNkUgMTFCMTtCNkE2OzExMDQgMTE2RSAxMUIxOworQjZBNztCNkE3OzExMDQgMTE2RSAxMUIyO0I2QTc7MTEwNCAxMTZFIDExQjI7CitCNkE4O0I2QTg7MTEwNCAxMTZFIDExQjM7QjZBODsxMTA0IDExNkUgMTFCMzsKK0I2QTk7QjZBOTsxMTA0IDExNkUgMTFCNDtCNkE5OzExMDQgMTE2RSAxMUI0OworQjZBQTtCNkFBOzExMDQgMTE2RSAxMUI1O0I2QUE7MTEwNCAxMTZFIDExQjU7CitCNkFCO0I2QUI7MTEwNCAxMTZFIDExQjY7QjZBQjsxMTA0IDExNkUgMTFCNjsKK0I2QUM7QjZBQzsxMTA0IDExNkUgMTFCNztCNkFDOzExMDQgMTE2RSAxMUI3OworQjZBRDtCNkFEOzExMDQgMTE2RSAxMUI4O0I2QUQ7MTEwNCAxMTZFIDExQjg7CitCNkFFO0I2QUU7MTEwNCAxMTZFIDExQjk7QjZBRTsxMTA0IDExNkUgMTFCOTsKK0I2QUY7QjZBRjsxMTA0IDExNkUgMTFCQTtCNkFGOzExMDQgMTE2RSAxMUJBOworQjZCMDtCNkIwOzExMDQgMTE2RSAxMUJCO0I2QjA7MTEwNCAxMTZFIDExQkI7CitCNkIxO0I2QjE7MTEwNCAxMTZFIDExQkM7QjZCMTsxMTA0IDExNkUgMTFCQzsKK0I2QjI7QjZCMjsxMTA0IDExNkUgMTFCRDtCNkIyOzExMDQgMTE2RSAxMUJEOworQjZCMztCNkIzOzExMDQgMTE2RSAxMUJFO0I2QjM7MTEwNCAxMTZFIDExQkU7CitCNkI0O0I2QjQ7MTEwNCAxMTZFIDExQkY7QjZCNDsxMTA0IDExNkUgMTFCRjsKK0I2QjU7QjZCNTsxMTA0IDExNkUgMTFDMDtCNkI1OzExMDQgMTE2RSAxMUMwOworQjZCNjtCNkI2OzExMDQgMTE2RSAxMUMxO0I2QjY7MTEwNCAxMTZFIDExQzE7CitCNkI3O0I2Qjc7MTEwNCAxMTZFIDExQzI7QjZCNzsxMTA0IDExNkUgMTFDMjsKK0I2Qjg7QjZCODsxMTA0IDExNkY7QjZCODsxMTA0IDExNkY7CitCNkI5O0I2Qjk7MTEwNCAxMTZGIDExQTg7QjZCOTsxMTA0IDExNkYgMTFBODsKK0I2QkE7QjZCQTsxMTA0IDExNkYgMTFBOTtCNkJBOzExMDQgMTE2RiAxMUE5OworQjZCQjtCNkJCOzExMDQgMTE2RiAxMUFBO0I2QkI7MTEwNCAxMTZGIDExQUE7CitCNkJDO0I2QkM7MTEwNCAxMTZGIDExQUI7QjZCQzsxMTA0IDExNkYgMTFBQjsKK0I2QkQ7QjZCRDsxMTA0IDExNkYgMTFBQztCNkJEOzExMDQgMTE2RiAxMUFDOworQjZCRTtCNkJFOzExMDQgMTE2RiAxMUFEO0I2QkU7MTEwNCAxMTZGIDExQUQ7CitCNkJGO0I2QkY7MTEwNCAxMTZGIDExQUU7QjZCRjsxMTA0IDExNkYgMTFBRTsKK0I2QzA7QjZDMDsxMTA0IDExNkYgMTFBRjtCNkMwOzExMDQgMTE2RiAxMUFGOworQjZDMTtCNkMxOzExMDQgMTE2RiAxMUIwO0I2QzE7MTEwNCAxMTZGIDExQjA7CitCNkMyO0I2QzI7MTEwNCAxMTZGIDExQjE7QjZDMjsxMTA0IDExNkYgMTFCMTsKK0I2QzM7QjZDMzsxMTA0IDExNkYgMTFCMjtCNkMzOzExMDQgMTE2RiAxMUIyOworQjZDNDtCNkM0OzExMDQgMTE2RiAxMUIzO0I2QzQ7MTEwNCAxMTZGIDExQjM7CitCNkM1O0I2QzU7MTEwNCAxMTZGIDExQjQ7QjZDNTsxMTA0IDExNkYgMTFCNDsKK0I2QzY7QjZDNjsxMTA0IDExNkYgMTFCNTtCNkM2OzExMDQgMTE2RiAxMUI1OworQjZDNztCNkM3OzExMDQgMTE2RiAxMUI2O0I2Qzc7MTEwNCAxMTZGIDExQjY7CitCNkM4O0I2Qzg7MTEwNCAxMTZGIDExQjc7QjZDODsxMTA0IDExNkYgMTFCNzsKK0I2Qzk7QjZDOTsxMTA0IDExNkYgMTFCODtCNkM5OzExMDQgMTE2RiAxMUI4OworQjZDQTtCNkNBOzExMDQgMTE2RiAxMUI5O0I2Q0E7MTEwNCAxMTZGIDExQjk7CitCNkNCO0I2Q0I7MTEwNCAxMTZGIDExQkE7QjZDQjsxMTA0IDExNkYgMTFCQTsKK0I2Q0M7QjZDQzsxMTA0IDExNkYgMTFCQjtCNkNDOzExMDQgMTE2RiAxMUJCOworQjZDRDtCNkNEOzExMDQgMTE2RiAxMUJDO0I2Q0Q7MTEwNCAxMTZGIDExQkM7CitCNkNFO0I2Q0U7MTEwNCAxMTZGIDExQkQ7QjZDRTsxMTA0IDExNkYgMTFCRDsKK0I2Q0Y7QjZDRjsxMTA0IDExNkYgMTFCRTtCNkNGOzExMDQgMTE2RiAxMUJFOworQjZEMDtCNkQwOzExMDQgMTE2RiAxMUJGO0I2RDA7MTEwNCAxMTZGIDExQkY7CitCNkQxO0I2RDE7MTEwNCAxMTZGIDExQzA7QjZEMTsxMTA0IDExNkYgMTFDMDsKK0I2RDI7QjZEMjsxMTA0IDExNkYgMTFDMTtCNkQyOzExMDQgMTE2RiAxMUMxOworQjZEMztCNkQzOzExMDQgMTE2RiAxMUMyO0I2RDM7MTEwNCAxMTZGIDExQzI7CitCNkQ0O0I2RDQ7MTEwNCAxMTcwO0I2RDQ7MTEwNCAxMTcwOworQjZENTtCNkQ1OzExMDQgMTE3MCAxMUE4O0I2RDU7MTEwNCAxMTcwIDExQTg7CitCNkQ2O0I2RDY7MTEwNCAxMTcwIDExQTk7QjZENjsxMTA0IDExNzAgMTFBOTsKK0I2RDc7QjZENzsxMTA0IDExNzAgMTFBQTtCNkQ3OzExMDQgMTE3MCAxMUFBOworQjZEODtCNkQ4OzExMDQgMTE3MCAxMUFCO0I2RDg7MTEwNCAxMTcwIDExQUI7CitCNkQ5O0I2RDk7MTEwNCAxMTcwIDExQUM7QjZEOTsxMTA0IDExNzAgMTFBQzsKK0I2REE7QjZEQTsxMTA0IDExNzAgMTFBRDtCNkRBOzExMDQgMTE3MCAxMUFEOworQjZEQjtCNkRCOzExMDQgMTE3MCAxMUFFO0I2REI7MTEwNCAxMTcwIDExQUU7CitCNkRDO0I2REM7MTEwNCAxMTcwIDExQUY7QjZEQzsxMTA0IDExNzAgMTFBRjsKK0I2REQ7QjZERDsxMTA0IDExNzAgMTFCMDtCNkREOzExMDQgMTE3MCAxMUIwOworQjZERTtCNkRFOzExMDQgMTE3MCAxMUIxO0I2REU7MTEwNCAxMTcwIDExQjE7CitCNkRGO0I2REY7MTEwNCAxMTcwIDExQjI7QjZERjsxMTA0IDExNzAgMTFCMjsKK0I2RTA7QjZFMDsxMTA0IDExNzAgMTFCMztCNkUwOzExMDQgMTE3MCAxMUIzOworQjZFMTtCNkUxOzExMDQgMTE3MCAxMUI0O0I2RTE7MTEwNCAxMTcwIDExQjQ7CitCNkUyO0I2RTI7MTEwNCAxMTcwIDExQjU7QjZFMjsxMTA0IDExNzAgMTFCNTsKK0I2RTM7QjZFMzsxMTA0IDExNzAgMTFCNjtCNkUzOzExMDQgMTE3MCAxMUI2OworQjZFNDtCNkU0OzExMDQgMTE3MCAxMUI3O0I2RTQ7MTEwNCAxMTcwIDExQjc7CitCNkU1O0I2RTU7MTEwNCAxMTcwIDExQjg7QjZFNTsxMTA0IDExNzAgMTFCODsKK0I2RTY7QjZFNjsxMTA0IDExNzAgMTFCOTtCNkU2OzExMDQgMTE3MCAxMUI5OworQjZFNztCNkU3OzExMDQgMTE3MCAxMUJBO0I2RTc7MTEwNCAxMTcwIDExQkE7CitCNkU4O0I2RTg7MTEwNCAxMTcwIDExQkI7QjZFODsxMTA0IDExNzAgMTFCQjsKK0I2RTk7QjZFOTsxMTA0IDExNzAgMTFCQztCNkU5OzExMDQgMTE3MCAxMUJDOworQjZFQTtCNkVBOzExMDQgMTE3MCAxMUJEO0I2RUE7MTEwNCAxMTcwIDExQkQ7CitCNkVCO0I2RUI7MTEwNCAxMTcwIDExQkU7QjZFQjsxMTA0IDExNzAgMTFCRTsKK0I2RUM7QjZFQzsxMTA0IDExNzAgMTFCRjtCNkVDOzExMDQgMTE3MCAxMUJGOworQjZFRDtCNkVEOzExMDQgMTE3MCAxMUMwO0I2RUQ7MTEwNCAxMTcwIDExQzA7CitCNkVFO0I2RUU7MTEwNCAxMTcwIDExQzE7QjZFRTsxMTA0IDExNzAgMTFDMTsKK0I2RUY7QjZFRjsxMTA0IDExNzAgMTFDMjtCNkVGOzExMDQgMTE3MCAxMUMyOworQjZGMDtCNkYwOzExMDQgMTE3MTtCNkYwOzExMDQgMTE3MTsKK0I2RjE7QjZGMTsxMTA0IDExNzEgMTFBODtCNkYxOzExMDQgMTE3MSAxMUE4OworQjZGMjtCNkYyOzExMDQgMTE3MSAxMUE5O0I2RjI7MTEwNCAxMTcxIDExQTk7CitCNkYzO0I2RjM7MTEwNCAxMTcxIDExQUE7QjZGMzsxMTA0IDExNzEgMTFBQTsKK0I2RjQ7QjZGNDsxMTA0IDExNzEgMTFBQjtCNkY0OzExMDQgMTE3MSAxMUFCOworQjZGNTtCNkY1OzExMDQgMTE3MSAxMUFDO0I2RjU7MTEwNCAxMTcxIDExQUM7CitCNkY2O0I2RjY7MTEwNCAxMTcxIDExQUQ7QjZGNjsxMTA0IDExNzEgMTFBRDsKK0I2Rjc7QjZGNzsxMTA0IDExNzEgMTFBRTtCNkY3OzExMDQgMTE3MSAxMUFFOworQjZGODtCNkY4OzExMDQgMTE3MSAxMUFGO0I2Rjg7MTEwNCAxMTcxIDExQUY7CitCNkY5O0I2Rjk7MTEwNCAxMTcxIDExQjA7QjZGOTsxMTA0IDExNzEgMTFCMDsKK0I2RkE7QjZGQTsxMTA0IDExNzEgMTFCMTtCNkZBOzExMDQgMTE3MSAxMUIxOworQjZGQjtCNkZCOzExMDQgMTE3MSAxMUIyO0I2RkI7MTEwNCAxMTcxIDExQjI7CitCNkZDO0I2RkM7MTEwNCAxMTcxIDExQjM7QjZGQzsxMTA0IDExNzEgMTFCMzsKK0I2RkQ7QjZGRDsxMTA0IDExNzEgMTFCNDtCNkZEOzExMDQgMTE3MSAxMUI0OworQjZGRTtCNkZFOzExMDQgMTE3MSAxMUI1O0I2RkU7MTEwNCAxMTcxIDExQjU7CitCNkZGO0I2RkY7MTEwNCAxMTcxIDExQjY7QjZGRjsxMTA0IDExNzEgMTFCNjsKK0I3MDA7QjcwMDsxMTA0IDExNzEgMTFCNztCNzAwOzExMDQgMTE3MSAxMUI3OworQjcwMTtCNzAxOzExMDQgMTE3MSAxMUI4O0I3MDE7MTEwNCAxMTcxIDExQjg7CitCNzAyO0I3MDI7MTEwNCAxMTcxIDExQjk7QjcwMjsxMTA0IDExNzEgMTFCOTsKK0I3MDM7QjcwMzsxMTA0IDExNzEgMTFCQTtCNzAzOzExMDQgMTE3MSAxMUJBOworQjcwNDtCNzA0OzExMDQgMTE3MSAxMUJCO0I3MDQ7MTEwNCAxMTcxIDExQkI7CitCNzA1O0I3MDU7MTEwNCAxMTcxIDExQkM7QjcwNTsxMTA0IDExNzEgMTFCQzsKK0I3MDY7QjcwNjsxMTA0IDExNzEgMTFCRDtCNzA2OzExMDQgMTE3MSAxMUJEOworQjcwNztCNzA3OzExMDQgMTE3MSAxMUJFO0I3MDc7MTEwNCAxMTcxIDExQkU7CitCNzA4O0I3MDg7MTEwNCAxMTcxIDExQkY7QjcwODsxMTA0IDExNzEgMTFCRjsKK0I3MDk7QjcwOTsxMTA0IDExNzEgMTFDMDtCNzA5OzExMDQgMTE3MSAxMUMwOworQjcwQTtCNzBBOzExMDQgMTE3MSAxMUMxO0I3MEE7MTEwNCAxMTcxIDExQzE7CitCNzBCO0I3MEI7MTEwNCAxMTcxIDExQzI7QjcwQjsxMTA0IDExNzEgMTFDMjsKK0I3MEM7QjcwQzsxMTA0IDExNzI7QjcwQzsxMTA0IDExNzI7CitCNzBEO0I3MEQ7MTEwNCAxMTcyIDExQTg7QjcwRDsxMTA0IDExNzIgMTFBODsKK0I3MEU7QjcwRTsxMTA0IDExNzIgMTFBOTtCNzBFOzExMDQgMTE3MiAxMUE5OworQjcwRjtCNzBGOzExMDQgMTE3MiAxMUFBO0I3MEY7MTEwNCAxMTcyIDExQUE7CitCNzEwO0I3MTA7MTEwNCAxMTcyIDExQUI7QjcxMDsxMTA0IDExNzIgMTFBQjsKK0I3MTE7QjcxMTsxMTA0IDExNzIgMTFBQztCNzExOzExMDQgMTE3MiAxMUFDOworQjcxMjtCNzEyOzExMDQgMTE3MiAxMUFEO0I3MTI7MTEwNCAxMTcyIDExQUQ7CitCNzEzO0I3MTM7MTEwNCAxMTcyIDExQUU7QjcxMzsxMTA0IDExNzIgMTFBRTsKK0I3MTQ7QjcxNDsxMTA0IDExNzIgMTFBRjtCNzE0OzExMDQgMTE3MiAxMUFGOworQjcxNTtCNzE1OzExMDQgMTE3MiAxMUIwO0I3MTU7MTEwNCAxMTcyIDExQjA7CitCNzE2O0I3MTY7MTEwNCAxMTcyIDExQjE7QjcxNjsxMTA0IDExNzIgMTFCMTsKK0I3MTc7QjcxNzsxMTA0IDExNzIgMTFCMjtCNzE3OzExMDQgMTE3MiAxMUIyOworQjcxODtCNzE4OzExMDQgMTE3MiAxMUIzO0I3MTg7MTEwNCAxMTcyIDExQjM7CitCNzE5O0I3MTk7MTEwNCAxMTcyIDExQjQ7QjcxOTsxMTA0IDExNzIgMTFCNDsKK0I3MUE7QjcxQTsxMTA0IDExNzIgMTFCNTtCNzFBOzExMDQgMTE3MiAxMUI1OworQjcxQjtCNzFCOzExMDQgMTE3MiAxMUI2O0I3MUI7MTEwNCAxMTcyIDExQjY7CitCNzFDO0I3MUM7MTEwNCAxMTcyIDExQjc7QjcxQzsxMTA0IDExNzIgMTFCNzsKK0I3MUQ7QjcxRDsxMTA0IDExNzIgMTFCODtCNzFEOzExMDQgMTE3MiAxMUI4OworQjcxRTtCNzFFOzExMDQgMTE3MiAxMUI5O0I3MUU7MTEwNCAxMTcyIDExQjk7CitCNzFGO0I3MUY7MTEwNCAxMTcyIDExQkE7QjcxRjsxMTA0IDExNzIgMTFCQTsKK0I3MjA7QjcyMDsxMTA0IDExNzIgMTFCQjtCNzIwOzExMDQgMTE3MiAxMUJCOworQjcyMTtCNzIxOzExMDQgMTE3MiAxMUJDO0I3MjE7MTEwNCAxMTcyIDExQkM7CitCNzIyO0I3MjI7MTEwNCAxMTcyIDExQkQ7QjcyMjsxMTA0IDExNzIgMTFCRDsKK0I3MjM7QjcyMzsxMTA0IDExNzIgMTFCRTtCNzIzOzExMDQgMTE3MiAxMUJFOworQjcyNDtCNzI0OzExMDQgMTE3MiAxMUJGO0I3MjQ7MTEwNCAxMTcyIDExQkY7CitCNzI1O0I3MjU7MTEwNCAxMTcyIDExQzA7QjcyNTsxMTA0IDExNzIgMTFDMDsKK0I3MjY7QjcyNjsxMTA0IDExNzIgMTFDMTtCNzI2OzExMDQgMTE3MiAxMUMxOworQjcyNztCNzI3OzExMDQgMTE3MiAxMUMyO0I3Mjc7MTEwNCAxMTcyIDExQzI7CitCNzI4O0I3Mjg7MTEwNCAxMTczO0I3Mjg7MTEwNCAxMTczOworQjcyOTtCNzI5OzExMDQgMTE3MyAxMUE4O0I3Mjk7MTEwNCAxMTczIDExQTg7CitCNzJBO0I3MkE7MTEwNCAxMTczIDExQTk7QjcyQTsxMTA0IDExNzMgMTFBOTsKK0I3MkI7QjcyQjsxMTA0IDExNzMgMTFBQTtCNzJCOzExMDQgMTE3MyAxMUFBOworQjcyQztCNzJDOzExMDQgMTE3MyAxMUFCO0I3MkM7MTEwNCAxMTczIDExQUI7CitCNzJEO0I3MkQ7MTEwNCAxMTczIDExQUM7QjcyRDsxMTA0IDExNzMgMTFBQzsKK0I3MkU7QjcyRTsxMTA0IDExNzMgMTFBRDtCNzJFOzExMDQgMTE3MyAxMUFEOworQjcyRjtCNzJGOzExMDQgMTE3MyAxMUFFO0I3MkY7MTEwNCAxMTczIDExQUU7CitCNzMwO0I3MzA7MTEwNCAxMTczIDExQUY7QjczMDsxMTA0IDExNzMgMTFBRjsKK0I3MzE7QjczMTsxMTA0IDExNzMgMTFCMDtCNzMxOzExMDQgMTE3MyAxMUIwOworQjczMjtCNzMyOzExMDQgMTE3MyAxMUIxO0I3MzI7MTEwNCAxMTczIDExQjE7CitCNzMzO0I3MzM7MTEwNCAxMTczIDExQjI7QjczMzsxMTA0IDExNzMgMTFCMjsKK0I3MzQ7QjczNDsxMTA0IDExNzMgMTFCMztCNzM0OzExMDQgMTE3MyAxMUIzOworQjczNTtCNzM1OzExMDQgMTE3MyAxMUI0O0I3MzU7MTEwNCAxMTczIDExQjQ7CitCNzM2O0I3MzY7MTEwNCAxMTczIDExQjU7QjczNjsxMTA0IDExNzMgMTFCNTsKK0I3Mzc7QjczNzsxMTA0IDExNzMgMTFCNjtCNzM3OzExMDQgMTE3MyAxMUI2OworQjczODtCNzM4OzExMDQgMTE3MyAxMUI3O0I3Mzg7MTEwNCAxMTczIDExQjc7CitCNzM5O0I3Mzk7MTEwNCAxMTczIDExQjg7QjczOTsxMTA0IDExNzMgMTFCODsKK0I3M0E7QjczQTsxMTA0IDExNzMgMTFCOTtCNzNBOzExMDQgMTE3MyAxMUI5OworQjczQjtCNzNCOzExMDQgMTE3MyAxMUJBO0I3M0I7MTEwNCAxMTczIDExQkE7CitCNzNDO0I3M0M7MTEwNCAxMTczIDExQkI7QjczQzsxMTA0IDExNzMgMTFCQjsKK0I3M0Q7QjczRDsxMTA0IDExNzMgMTFCQztCNzNEOzExMDQgMTE3MyAxMUJDOworQjczRTtCNzNFOzExMDQgMTE3MyAxMUJEO0I3M0U7MTEwNCAxMTczIDExQkQ7CitCNzNGO0I3M0Y7MTEwNCAxMTczIDExQkU7QjczRjsxMTA0IDExNzMgMTFCRTsKK0I3NDA7Qjc0MDsxMTA0IDExNzMgMTFCRjtCNzQwOzExMDQgMTE3MyAxMUJGOworQjc0MTtCNzQxOzExMDQgMTE3MyAxMUMwO0I3NDE7MTEwNCAxMTczIDExQzA7CitCNzQyO0I3NDI7MTEwNCAxMTczIDExQzE7Qjc0MjsxMTA0IDExNzMgMTFDMTsKK0I3NDM7Qjc0MzsxMTA0IDExNzMgMTFDMjtCNzQzOzExMDQgMTE3MyAxMUMyOworQjc0NDtCNzQ0OzExMDQgMTE3NDtCNzQ0OzExMDQgMTE3NDsKK0I3NDU7Qjc0NTsxMTA0IDExNzQgMTFBODtCNzQ1OzExMDQgMTE3NCAxMUE4OworQjc0NjtCNzQ2OzExMDQgMTE3NCAxMUE5O0I3NDY7MTEwNCAxMTc0IDExQTk7CitCNzQ3O0I3NDc7MTEwNCAxMTc0IDExQUE7Qjc0NzsxMTA0IDExNzQgMTFBQTsKK0I3NDg7Qjc0ODsxMTA0IDExNzQgMTFBQjtCNzQ4OzExMDQgMTE3NCAxMUFCOworQjc0OTtCNzQ5OzExMDQgMTE3NCAxMUFDO0I3NDk7MTEwNCAxMTc0IDExQUM7CitCNzRBO0I3NEE7MTEwNCAxMTc0IDExQUQ7Qjc0QTsxMTA0IDExNzQgMTFBRDsKK0I3NEI7Qjc0QjsxMTA0IDExNzQgMTFBRTtCNzRCOzExMDQgMTE3NCAxMUFFOworQjc0QztCNzRDOzExMDQgMTE3NCAxMUFGO0I3NEM7MTEwNCAxMTc0IDExQUY7CitCNzREO0I3NEQ7MTEwNCAxMTc0IDExQjA7Qjc0RDsxMTA0IDExNzQgMTFCMDsKK0I3NEU7Qjc0RTsxMTA0IDExNzQgMTFCMTtCNzRFOzExMDQgMTE3NCAxMUIxOworQjc0RjtCNzRGOzExMDQgMTE3NCAxMUIyO0I3NEY7MTEwNCAxMTc0IDExQjI7CitCNzUwO0I3NTA7MTEwNCAxMTc0IDExQjM7Qjc1MDsxMTA0IDExNzQgMTFCMzsKK0I3NTE7Qjc1MTsxMTA0IDExNzQgMTFCNDtCNzUxOzExMDQgMTE3NCAxMUI0OworQjc1MjtCNzUyOzExMDQgMTE3NCAxMUI1O0I3NTI7MTEwNCAxMTc0IDExQjU7CitCNzUzO0I3NTM7MTEwNCAxMTc0IDExQjY7Qjc1MzsxMTA0IDExNzQgMTFCNjsKK0I3NTQ7Qjc1NDsxMTA0IDExNzQgMTFCNztCNzU0OzExMDQgMTE3NCAxMUI3OworQjc1NTtCNzU1OzExMDQgMTE3NCAxMUI4O0I3NTU7MTEwNCAxMTc0IDExQjg7CitCNzU2O0I3NTY7MTEwNCAxMTc0IDExQjk7Qjc1NjsxMTA0IDExNzQgMTFCOTsKK0I3NTc7Qjc1NzsxMTA0IDExNzQgMTFCQTtCNzU3OzExMDQgMTE3NCAxMUJBOworQjc1ODtCNzU4OzExMDQgMTE3NCAxMUJCO0I3NTg7MTEwNCAxMTc0IDExQkI7CitCNzU5O0I3NTk7MTEwNCAxMTc0IDExQkM7Qjc1OTsxMTA0IDExNzQgMTFCQzsKK0I3NUE7Qjc1QTsxMTA0IDExNzQgMTFCRDtCNzVBOzExMDQgMTE3NCAxMUJEOworQjc1QjtCNzVCOzExMDQgMTE3NCAxMUJFO0I3NUI7MTEwNCAxMTc0IDExQkU7CitCNzVDO0I3NUM7MTEwNCAxMTc0IDExQkY7Qjc1QzsxMTA0IDExNzQgMTFCRjsKK0I3NUQ7Qjc1RDsxMTA0IDExNzQgMTFDMDtCNzVEOzExMDQgMTE3NCAxMUMwOworQjc1RTtCNzVFOzExMDQgMTE3NCAxMUMxO0I3NUU7MTEwNCAxMTc0IDExQzE7CitCNzVGO0I3NUY7MTEwNCAxMTc0IDExQzI7Qjc1RjsxMTA0IDExNzQgMTFDMjsKK0I3NjA7Qjc2MDsxMTA0IDExNzU7Qjc2MDsxMTA0IDExNzU7CitCNzYxO0I3NjE7MTEwNCAxMTc1IDExQTg7Qjc2MTsxMTA0IDExNzUgMTFBODsKK0I3NjI7Qjc2MjsxMTA0IDExNzUgMTFBOTtCNzYyOzExMDQgMTE3NSAxMUE5OworQjc2MztCNzYzOzExMDQgMTE3NSAxMUFBO0I3NjM7MTEwNCAxMTc1IDExQUE7CitCNzY0O0I3NjQ7MTEwNCAxMTc1IDExQUI7Qjc2NDsxMTA0IDExNzUgMTFBQjsKK0I3NjU7Qjc2NTsxMTA0IDExNzUgMTFBQztCNzY1OzExMDQgMTE3NSAxMUFDOworQjc2NjtCNzY2OzExMDQgMTE3NSAxMUFEO0I3NjY7MTEwNCAxMTc1IDExQUQ7CitCNzY3O0I3Njc7MTEwNCAxMTc1IDExQUU7Qjc2NzsxMTA0IDExNzUgMTFBRTsKK0I3Njg7Qjc2ODsxMTA0IDExNzUgMTFBRjtCNzY4OzExMDQgMTE3NSAxMUFGOworQjc2OTtCNzY5OzExMDQgMTE3NSAxMUIwO0I3Njk7MTEwNCAxMTc1IDExQjA7CitCNzZBO0I3NkE7MTEwNCAxMTc1IDExQjE7Qjc2QTsxMTA0IDExNzUgMTFCMTsKK0I3NkI7Qjc2QjsxMTA0IDExNzUgMTFCMjtCNzZCOzExMDQgMTE3NSAxMUIyOworQjc2QztCNzZDOzExMDQgMTE3NSAxMUIzO0I3NkM7MTEwNCAxMTc1IDExQjM7CitCNzZEO0I3NkQ7MTEwNCAxMTc1IDExQjQ7Qjc2RDsxMTA0IDExNzUgMTFCNDsKK0I3NkU7Qjc2RTsxMTA0IDExNzUgMTFCNTtCNzZFOzExMDQgMTE3NSAxMUI1OworQjc2RjtCNzZGOzExMDQgMTE3NSAxMUI2O0I3NkY7MTEwNCAxMTc1IDExQjY7CitCNzcwO0I3NzA7MTEwNCAxMTc1IDExQjc7Qjc3MDsxMTA0IDExNzUgMTFCNzsKK0I3NzE7Qjc3MTsxMTA0IDExNzUgMTFCODtCNzcxOzExMDQgMTE3NSAxMUI4OworQjc3MjtCNzcyOzExMDQgMTE3NSAxMUI5O0I3NzI7MTEwNCAxMTc1IDExQjk7CitCNzczO0I3NzM7MTEwNCAxMTc1IDExQkE7Qjc3MzsxMTA0IDExNzUgMTFCQTsKK0I3NzQ7Qjc3NDsxMTA0IDExNzUgMTFCQjtCNzc0OzExMDQgMTE3NSAxMUJCOworQjc3NTtCNzc1OzExMDQgMTE3NSAxMUJDO0I3NzU7MTEwNCAxMTc1IDExQkM7CitCNzc2O0I3NzY7MTEwNCAxMTc1IDExQkQ7Qjc3NjsxMTA0IDExNzUgMTFCRDsKK0I3Nzc7Qjc3NzsxMTA0IDExNzUgMTFCRTtCNzc3OzExMDQgMTE3NSAxMUJFOworQjc3ODtCNzc4OzExMDQgMTE3NSAxMUJGO0I3Nzg7MTEwNCAxMTc1IDExQkY7CitCNzc5O0I3Nzk7MTEwNCAxMTc1IDExQzA7Qjc3OTsxMTA0IDExNzUgMTFDMDsKK0I3N0E7Qjc3QTsxMTA0IDExNzUgMTFDMTtCNzdBOzExMDQgMTE3NSAxMUMxOworQjc3QjtCNzdCOzExMDQgMTE3NSAxMUMyO0I3N0I7MTEwNCAxMTc1IDExQzI7CitCNzdDO0I3N0M7MTEwNSAxMTYxO0I3N0M7MTEwNSAxMTYxOworQjc3RDtCNzdEOzExMDUgMTE2MSAxMUE4O0I3N0Q7MTEwNSAxMTYxIDExQTg7CitCNzdFO0I3N0U7MTEwNSAxMTYxIDExQTk7Qjc3RTsxMTA1IDExNjEgMTFBOTsKK0I3N0Y7Qjc3RjsxMTA1IDExNjEgMTFBQTtCNzdGOzExMDUgMTE2MSAxMUFBOworQjc4MDtCNzgwOzExMDUgMTE2MSAxMUFCO0I3ODA7MTEwNSAxMTYxIDExQUI7CitCNzgxO0I3ODE7MTEwNSAxMTYxIDExQUM7Qjc4MTsxMTA1IDExNjEgMTFBQzsKK0I3ODI7Qjc4MjsxMTA1IDExNjEgMTFBRDtCNzgyOzExMDUgMTE2MSAxMUFEOworQjc4MztCNzgzOzExMDUgMTE2MSAxMUFFO0I3ODM7MTEwNSAxMTYxIDExQUU7CitCNzg0O0I3ODQ7MTEwNSAxMTYxIDExQUY7Qjc4NDsxMTA1IDExNjEgMTFBRjsKK0I3ODU7Qjc4NTsxMTA1IDExNjEgMTFCMDtCNzg1OzExMDUgMTE2MSAxMUIwOworQjc4NjtCNzg2OzExMDUgMTE2MSAxMUIxO0I3ODY7MTEwNSAxMTYxIDExQjE7CitCNzg3O0I3ODc7MTEwNSAxMTYxIDExQjI7Qjc4NzsxMTA1IDExNjEgMTFCMjsKK0I3ODg7Qjc4ODsxMTA1IDExNjEgMTFCMztCNzg4OzExMDUgMTE2MSAxMUIzOworQjc4OTtCNzg5OzExMDUgMTE2MSAxMUI0O0I3ODk7MTEwNSAxMTYxIDExQjQ7CitCNzhBO0I3OEE7MTEwNSAxMTYxIDExQjU7Qjc4QTsxMTA1IDExNjEgMTFCNTsKK0I3OEI7Qjc4QjsxMTA1IDExNjEgMTFCNjtCNzhCOzExMDUgMTE2MSAxMUI2OworQjc4QztCNzhDOzExMDUgMTE2MSAxMUI3O0I3OEM7MTEwNSAxMTYxIDExQjc7CitCNzhEO0I3OEQ7MTEwNSAxMTYxIDExQjg7Qjc4RDsxMTA1IDExNjEgMTFCODsKK0I3OEU7Qjc4RTsxMTA1IDExNjEgMTFCOTtCNzhFOzExMDUgMTE2MSAxMUI5OworQjc4RjtCNzhGOzExMDUgMTE2MSAxMUJBO0I3OEY7MTEwNSAxMTYxIDExQkE7CitCNzkwO0I3OTA7MTEwNSAxMTYxIDExQkI7Qjc5MDsxMTA1IDExNjEgMTFCQjsKK0I3OTE7Qjc5MTsxMTA1IDExNjEgMTFCQztCNzkxOzExMDUgMTE2MSAxMUJDOworQjc5MjtCNzkyOzExMDUgMTE2MSAxMUJEO0I3OTI7MTEwNSAxMTYxIDExQkQ7CitCNzkzO0I3OTM7MTEwNSAxMTYxIDExQkU7Qjc5MzsxMTA1IDExNjEgMTFCRTsKK0I3OTQ7Qjc5NDsxMTA1IDExNjEgMTFCRjtCNzk0OzExMDUgMTE2MSAxMUJGOworQjc5NTtCNzk1OzExMDUgMTE2MSAxMUMwO0I3OTU7MTEwNSAxMTYxIDExQzA7CitCNzk2O0I3OTY7MTEwNSAxMTYxIDExQzE7Qjc5NjsxMTA1IDExNjEgMTFDMTsKK0I3OTc7Qjc5NzsxMTA1IDExNjEgMTFDMjtCNzk3OzExMDUgMTE2MSAxMUMyOworQjc5ODtCNzk4OzExMDUgMTE2MjtCNzk4OzExMDUgMTE2MjsKK0I3OTk7Qjc5OTsxMTA1IDExNjIgMTFBODtCNzk5OzExMDUgMTE2MiAxMUE4OworQjc5QTtCNzlBOzExMDUgMTE2MiAxMUE5O0I3OUE7MTEwNSAxMTYyIDExQTk7CitCNzlCO0I3OUI7MTEwNSAxMTYyIDExQUE7Qjc5QjsxMTA1IDExNjIgMTFBQTsKK0I3OUM7Qjc5QzsxMTA1IDExNjIgMTFBQjtCNzlDOzExMDUgMTE2MiAxMUFCOworQjc5RDtCNzlEOzExMDUgMTE2MiAxMUFDO0I3OUQ7MTEwNSAxMTYyIDExQUM7CitCNzlFO0I3OUU7MTEwNSAxMTYyIDExQUQ7Qjc5RTsxMTA1IDExNjIgMTFBRDsKK0I3OUY7Qjc5RjsxMTA1IDExNjIgMTFBRTtCNzlGOzExMDUgMTE2MiAxMUFFOworQjdBMDtCN0EwOzExMDUgMTE2MiAxMUFGO0I3QTA7MTEwNSAxMTYyIDExQUY7CitCN0ExO0I3QTE7MTEwNSAxMTYyIDExQjA7QjdBMTsxMTA1IDExNjIgMTFCMDsKK0I3QTI7QjdBMjsxMTA1IDExNjIgMTFCMTtCN0EyOzExMDUgMTE2MiAxMUIxOworQjdBMztCN0EzOzExMDUgMTE2MiAxMUIyO0I3QTM7MTEwNSAxMTYyIDExQjI7CitCN0E0O0I3QTQ7MTEwNSAxMTYyIDExQjM7QjdBNDsxMTA1IDExNjIgMTFCMzsKK0I3QTU7QjdBNTsxMTA1IDExNjIgMTFCNDtCN0E1OzExMDUgMTE2MiAxMUI0OworQjdBNjtCN0E2OzExMDUgMTE2MiAxMUI1O0I3QTY7MTEwNSAxMTYyIDExQjU7CitCN0E3O0I3QTc7MTEwNSAxMTYyIDExQjY7QjdBNzsxMTA1IDExNjIgMTFCNjsKK0I3QTg7QjdBODsxMTA1IDExNjIgMTFCNztCN0E4OzExMDUgMTE2MiAxMUI3OworQjdBOTtCN0E5OzExMDUgMTE2MiAxMUI4O0I3QTk7MTEwNSAxMTYyIDExQjg7CitCN0FBO0I3QUE7MTEwNSAxMTYyIDExQjk7QjdBQTsxMTA1IDExNjIgMTFCOTsKK0I3QUI7QjdBQjsxMTA1IDExNjIgMTFCQTtCN0FCOzExMDUgMTE2MiAxMUJBOworQjdBQztCN0FDOzExMDUgMTE2MiAxMUJCO0I3QUM7MTEwNSAxMTYyIDExQkI7CitCN0FEO0I3QUQ7MTEwNSAxMTYyIDExQkM7QjdBRDsxMTA1IDExNjIgMTFCQzsKK0I3QUU7QjdBRTsxMTA1IDExNjIgMTFCRDtCN0FFOzExMDUgMTE2MiAxMUJEOworQjdBRjtCN0FGOzExMDUgMTE2MiAxMUJFO0I3QUY7MTEwNSAxMTYyIDExQkU7CitCN0IwO0I3QjA7MTEwNSAxMTYyIDExQkY7QjdCMDsxMTA1IDExNjIgMTFCRjsKK0I3QjE7QjdCMTsxMTA1IDExNjIgMTFDMDtCN0IxOzExMDUgMTE2MiAxMUMwOworQjdCMjtCN0IyOzExMDUgMTE2MiAxMUMxO0I3QjI7MTEwNSAxMTYyIDExQzE7CitCN0IzO0I3QjM7MTEwNSAxMTYyIDExQzI7QjdCMzsxMTA1IDExNjIgMTFDMjsKK0I3QjQ7QjdCNDsxMTA1IDExNjM7QjdCNDsxMTA1IDExNjM7CitCN0I1O0I3QjU7MTEwNSAxMTYzIDExQTg7QjdCNTsxMTA1IDExNjMgMTFBODsKK0I3QjY7QjdCNjsxMTA1IDExNjMgMTFBOTtCN0I2OzExMDUgMTE2MyAxMUE5OworQjdCNztCN0I3OzExMDUgMTE2MyAxMUFBO0I3Qjc7MTEwNSAxMTYzIDExQUE7CitCN0I4O0I3Qjg7MTEwNSAxMTYzIDExQUI7QjdCODsxMTA1IDExNjMgMTFBQjsKK0I3Qjk7QjdCOTsxMTA1IDExNjMgMTFBQztCN0I5OzExMDUgMTE2MyAxMUFDOworQjdCQTtCN0JBOzExMDUgMTE2MyAxMUFEO0I3QkE7MTEwNSAxMTYzIDExQUQ7CitCN0JCO0I3QkI7MTEwNSAxMTYzIDExQUU7QjdCQjsxMTA1IDExNjMgMTFBRTsKK0I3QkM7QjdCQzsxMTA1IDExNjMgMTFBRjtCN0JDOzExMDUgMTE2MyAxMUFGOworQjdCRDtCN0JEOzExMDUgMTE2MyAxMUIwO0I3QkQ7MTEwNSAxMTYzIDExQjA7CitCN0JFO0I3QkU7MTEwNSAxMTYzIDExQjE7QjdCRTsxMTA1IDExNjMgMTFCMTsKK0I3QkY7QjdCRjsxMTA1IDExNjMgMTFCMjtCN0JGOzExMDUgMTE2MyAxMUIyOworQjdDMDtCN0MwOzExMDUgMTE2MyAxMUIzO0I3QzA7MTEwNSAxMTYzIDExQjM7CitCN0MxO0I3QzE7MTEwNSAxMTYzIDExQjQ7QjdDMTsxMTA1IDExNjMgMTFCNDsKK0I3QzI7QjdDMjsxMTA1IDExNjMgMTFCNTtCN0MyOzExMDUgMTE2MyAxMUI1OworQjdDMztCN0MzOzExMDUgMTE2MyAxMUI2O0I3QzM7MTEwNSAxMTYzIDExQjY7CitCN0M0O0I3QzQ7MTEwNSAxMTYzIDExQjc7QjdDNDsxMTA1IDExNjMgMTFCNzsKK0I3QzU7QjdDNTsxMTA1IDExNjMgMTFCODtCN0M1OzExMDUgMTE2MyAxMUI4OworQjdDNjtCN0M2OzExMDUgMTE2MyAxMUI5O0I3QzY7MTEwNSAxMTYzIDExQjk7CitCN0M3O0I3Qzc7MTEwNSAxMTYzIDExQkE7QjdDNzsxMTA1IDExNjMgMTFCQTsKK0I3Qzg7QjdDODsxMTA1IDExNjMgMTFCQjtCN0M4OzExMDUgMTE2MyAxMUJCOworQjdDOTtCN0M5OzExMDUgMTE2MyAxMUJDO0I3Qzk7MTEwNSAxMTYzIDExQkM7CitCN0NBO0I3Q0E7MTEwNSAxMTYzIDExQkQ7QjdDQTsxMTA1IDExNjMgMTFCRDsKK0I3Q0I7QjdDQjsxMTA1IDExNjMgMTFCRTtCN0NCOzExMDUgMTE2MyAxMUJFOworQjdDQztCN0NDOzExMDUgMTE2MyAxMUJGO0I3Q0M7MTEwNSAxMTYzIDExQkY7CitCN0NEO0I3Q0Q7MTEwNSAxMTYzIDExQzA7QjdDRDsxMTA1IDExNjMgMTFDMDsKK0I3Q0U7QjdDRTsxMTA1IDExNjMgMTFDMTtCN0NFOzExMDUgMTE2MyAxMUMxOworQjdDRjtCN0NGOzExMDUgMTE2MyAxMUMyO0I3Q0Y7MTEwNSAxMTYzIDExQzI7CitCN0QwO0I3RDA7MTEwNSAxMTY0O0I3RDA7MTEwNSAxMTY0OworQjdEMTtCN0QxOzExMDUgMTE2NCAxMUE4O0I3RDE7MTEwNSAxMTY0IDExQTg7CitCN0QyO0I3RDI7MTEwNSAxMTY0IDExQTk7QjdEMjsxMTA1IDExNjQgMTFBOTsKK0I3RDM7QjdEMzsxMTA1IDExNjQgMTFBQTtCN0QzOzExMDUgMTE2NCAxMUFBOworQjdENDtCN0Q0OzExMDUgMTE2NCAxMUFCO0I3RDQ7MTEwNSAxMTY0IDExQUI7CitCN0Q1O0I3RDU7MTEwNSAxMTY0IDExQUM7QjdENTsxMTA1IDExNjQgMTFBQzsKK0I3RDY7QjdENjsxMTA1IDExNjQgMTFBRDtCN0Q2OzExMDUgMTE2NCAxMUFEOworQjdENztCN0Q3OzExMDUgMTE2NCAxMUFFO0I3RDc7MTEwNSAxMTY0IDExQUU7CitCN0Q4O0I3RDg7MTEwNSAxMTY0IDExQUY7QjdEODsxMTA1IDExNjQgMTFBRjsKK0I3RDk7QjdEOTsxMTA1IDExNjQgMTFCMDtCN0Q5OzExMDUgMTE2NCAxMUIwOworQjdEQTtCN0RBOzExMDUgMTE2NCAxMUIxO0I3REE7MTEwNSAxMTY0IDExQjE7CitCN0RCO0I3REI7MTEwNSAxMTY0IDExQjI7QjdEQjsxMTA1IDExNjQgMTFCMjsKK0I3REM7QjdEQzsxMTA1IDExNjQgMTFCMztCN0RDOzExMDUgMTE2NCAxMUIzOworQjdERDtCN0REOzExMDUgMTE2NCAxMUI0O0I3REQ7MTEwNSAxMTY0IDExQjQ7CitCN0RFO0I3REU7MTEwNSAxMTY0IDExQjU7QjdERTsxMTA1IDExNjQgMTFCNTsKK0I3REY7QjdERjsxMTA1IDExNjQgMTFCNjtCN0RGOzExMDUgMTE2NCAxMUI2OworQjdFMDtCN0UwOzExMDUgMTE2NCAxMUI3O0I3RTA7MTEwNSAxMTY0IDExQjc7CitCN0UxO0I3RTE7MTEwNSAxMTY0IDExQjg7QjdFMTsxMTA1IDExNjQgMTFCODsKK0I3RTI7QjdFMjsxMTA1IDExNjQgMTFCOTtCN0UyOzExMDUgMTE2NCAxMUI5OworQjdFMztCN0UzOzExMDUgMTE2NCAxMUJBO0I3RTM7MTEwNSAxMTY0IDExQkE7CitCN0U0O0I3RTQ7MTEwNSAxMTY0IDExQkI7QjdFNDsxMTA1IDExNjQgMTFCQjsKK0I3RTU7QjdFNTsxMTA1IDExNjQgMTFCQztCN0U1OzExMDUgMTE2NCAxMUJDOworQjdFNjtCN0U2OzExMDUgMTE2NCAxMUJEO0I3RTY7MTEwNSAxMTY0IDExQkQ7CitCN0U3O0I3RTc7MTEwNSAxMTY0IDExQkU7QjdFNzsxMTA1IDExNjQgMTFCRTsKK0I3RTg7QjdFODsxMTA1IDExNjQgMTFCRjtCN0U4OzExMDUgMTE2NCAxMUJGOworQjdFOTtCN0U5OzExMDUgMTE2NCAxMUMwO0I3RTk7MTEwNSAxMTY0IDExQzA7CitCN0VBO0I3RUE7MTEwNSAxMTY0IDExQzE7QjdFQTsxMTA1IDExNjQgMTFDMTsKK0I3RUI7QjdFQjsxMTA1IDExNjQgMTFDMjtCN0VCOzExMDUgMTE2NCAxMUMyOworQjdFQztCN0VDOzExMDUgMTE2NTtCN0VDOzExMDUgMTE2NTsKK0I3RUQ7QjdFRDsxMTA1IDExNjUgMTFBODtCN0VEOzExMDUgMTE2NSAxMUE4OworQjdFRTtCN0VFOzExMDUgMTE2NSAxMUE5O0I3RUU7MTEwNSAxMTY1IDExQTk7CitCN0VGO0I3RUY7MTEwNSAxMTY1IDExQUE7QjdFRjsxMTA1IDExNjUgMTFBQTsKK0I3RjA7QjdGMDsxMTA1IDExNjUgMTFBQjtCN0YwOzExMDUgMTE2NSAxMUFCOworQjdGMTtCN0YxOzExMDUgMTE2NSAxMUFDO0I3RjE7MTEwNSAxMTY1IDExQUM7CitCN0YyO0I3RjI7MTEwNSAxMTY1IDExQUQ7QjdGMjsxMTA1IDExNjUgMTFBRDsKK0I3RjM7QjdGMzsxMTA1IDExNjUgMTFBRTtCN0YzOzExMDUgMTE2NSAxMUFFOworQjdGNDtCN0Y0OzExMDUgMTE2NSAxMUFGO0I3RjQ7MTEwNSAxMTY1IDExQUY7CitCN0Y1O0I3RjU7MTEwNSAxMTY1IDExQjA7QjdGNTsxMTA1IDExNjUgMTFCMDsKK0I3RjY7QjdGNjsxMTA1IDExNjUgMTFCMTtCN0Y2OzExMDUgMTE2NSAxMUIxOworQjdGNztCN0Y3OzExMDUgMTE2NSAxMUIyO0I3Rjc7MTEwNSAxMTY1IDExQjI7CitCN0Y4O0I3Rjg7MTEwNSAxMTY1IDExQjM7QjdGODsxMTA1IDExNjUgMTFCMzsKK0I3Rjk7QjdGOTsxMTA1IDExNjUgMTFCNDtCN0Y5OzExMDUgMTE2NSAxMUI0OworQjdGQTtCN0ZBOzExMDUgMTE2NSAxMUI1O0I3RkE7MTEwNSAxMTY1IDExQjU7CitCN0ZCO0I3RkI7MTEwNSAxMTY1IDExQjY7QjdGQjsxMTA1IDExNjUgMTFCNjsKK0I3RkM7QjdGQzsxMTA1IDExNjUgMTFCNztCN0ZDOzExMDUgMTE2NSAxMUI3OworQjdGRDtCN0ZEOzExMDUgMTE2NSAxMUI4O0I3RkQ7MTEwNSAxMTY1IDExQjg7CitCN0ZFO0I3RkU7MTEwNSAxMTY1IDExQjk7QjdGRTsxMTA1IDExNjUgMTFCOTsKK0I3RkY7QjdGRjsxMTA1IDExNjUgMTFCQTtCN0ZGOzExMDUgMTE2NSAxMUJBOworQjgwMDtCODAwOzExMDUgMTE2NSAxMUJCO0I4MDA7MTEwNSAxMTY1IDExQkI7CitCODAxO0I4MDE7MTEwNSAxMTY1IDExQkM7QjgwMTsxMTA1IDExNjUgMTFCQzsKK0I4MDI7QjgwMjsxMTA1IDExNjUgMTFCRDtCODAyOzExMDUgMTE2NSAxMUJEOworQjgwMztCODAzOzExMDUgMTE2NSAxMUJFO0I4MDM7MTEwNSAxMTY1IDExQkU7CitCODA0O0I4MDQ7MTEwNSAxMTY1IDExQkY7QjgwNDsxMTA1IDExNjUgMTFCRjsKK0I4MDU7QjgwNTsxMTA1IDExNjUgMTFDMDtCODA1OzExMDUgMTE2NSAxMUMwOworQjgwNjtCODA2OzExMDUgMTE2NSAxMUMxO0I4MDY7MTEwNSAxMTY1IDExQzE7CitCODA3O0I4MDc7MTEwNSAxMTY1IDExQzI7QjgwNzsxMTA1IDExNjUgMTFDMjsKK0I4MDg7QjgwODsxMTA1IDExNjY7QjgwODsxMTA1IDExNjY7CitCODA5O0I4MDk7MTEwNSAxMTY2IDExQTg7QjgwOTsxMTA1IDExNjYgMTFBODsKK0I4MEE7QjgwQTsxMTA1IDExNjYgMTFBOTtCODBBOzExMDUgMTE2NiAxMUE5OworQjgwQjtCODBCOzExMDUgMTE2NiAxMUFBO0I4MEI7MTEwNSAxMTY2IDExQUE7CitCODBDO0I4MEM7MTEwNSAxMTY2IDExQUI7QjgwQzsxMTA1IDExNjYgMTFBQjsKK0I4MEQ7QjgwRDsxMTA1IDExNjYgMTFBQztCODBEOzExMDUgMTE2NiAxMUFDOworQjgwRTtCODBFOzExMDUgMTE2NiAxMUFEO0I4MEU7MTEwNSAxMTY2IDExQUQ7CitCODBGO0I4MEY7MTEwNSAxMTY2IDExQUU7QjgwRjsxMTA1IDExNjYgMTFBRTsKK0I4MTA7QjgxMDsxMTA1IDExNjYgMTFBRjtCODEwOzExMDUgMTE2NiAxMUFGOworQjgxMTtCODExOzExMDUgMTE2NiAxMUIwO0I4MTE7MTEwNSAxMTY2IDExQjA7CitCODEyO0I4MTI7MTEwNSAxMTY2IDExQjE7QjgxMjsxMTA1IDExNjYgMTFCMTsKK0I4MTM7QjgxMzsxMTA1IDExNjYgMTFCMjtCODEzOzExMDUgMTE2NiAxMUIyOworQjgxNDtCODE0OzExMDUgMTE2NiAxMUIzO0I4MTQ7MTEwNSAxMTY2IDExQjM7CitCODE1O0I4MTU7MTEwNSAxMTY2IDExQjQ7QjgxNTsxMTA1IDExNjYgMTFCNDsKK0I4MTY7QjgxNjsxMTA1IDExNjYgMTFCNTtCODE2OzExMDUgMTE2NiAxMUI1OworQjgxNztCODE3OzExMDUgMTE2NiAxMUI2O0I4MTc7MTEwNSAxMTY2IDExQjY7CitCODE4O0I4MTg7MTEwNSAxMTY2IDExQjc7QjgxODsxMTA1IDExNjYgMTFCNzsKK0I4MTk7QjgxOTsxMTA1IDExNjYgMTFCODtCODE5OzExMDUgMTE2NiAxMUI4OworQjgxQTtCODFBOzExMDUgMTE2NiAxMUI5O0I4MUE7MTEwNSAxMTY2IDExQjk7CitCODFCO0I4MUI7MTEwNSAxMTY2IDExQkE7QjgxQjsxMTA1IDExNjYgMTFCQTsKK0I4MUM7QjgxQzsxMTA1IDExNjYgMTFCQjtCODFDOzExMDUgMTE2NiAxMUJCOworQjgxRDtCODFEOzExMDUgMTE2NiAxMUJDO0I4MUQ7MTEwNSAxMTY2IDExQkM7CitCODFFO0I4MUU7MTEwNSAxMTY2IDExQkQ7QjgxRTsxMTA1IDExNjYgMTFCRDsKK0I4MUY7QjgxRjsxMTA1IDExNjYgMTFCRTtCODFGOzExMDUgMTE2NiAxMUJFOworQjgyMDtCODIwOzExMDUgMTE2NiAxMUJGO0I4MjA7MTEwNSAxMTY2IDExQkY7CitCODIxO0I4MjE7MTEwNSAxMTY2IDExQzA7QjgyMTsxMTA1IDExNjYgMTFDMDsKK0I4MjI7QjgyMjsxMTA1IDExNjYgMTFDMTtCODIyOzExMDUgMTE2NiAxMUMxOworQjgyMztCODIzOzExMDUgMTE2NiAxMUMyO0I4MjM7MTEwNSAxMTY2IDExQzI7CitCODI0O0I4MjQ7MTEwNSAxMTY3O0I4MjQ7MTEwNSAxMTY3OworQjgyNTtCODI1OzExMDUgMTE2NyAxMUE4O0I4MjU7MTEwNSAxMTY3IDExQTg7CitCODI2O0I4MjY7MTEwNSAxMTY3IDExQTk7QjgyNjsxMTA1IDExNjcgMTFBOTsKK0I4Mjc7QjgyNzsxMTA1IDExNjcgMTFBQTtCODI3OzExMDUgMTE2NyAxMUFBOworQjgyODtCODI4OzExMDUgMTE2NyAxMUFCO0I4Mjg7MTEwNSAxMTY3IDExQUI7CitCODI5O0I4Mjk7MTEwNSAxMTY3IDExQUM7QjgyOTsxMTA1IDExNjcgMTFBQzsKK0I4MkE7QjgyQTsxMTA1IDExNjcgMTFBRDtCODJBOzExMDUgMTE2NyAxMUFEOworQjgyQjtCODJCOzExMDUgMTE2NyAxMUFFO0I4MkI7MTEwNSAxMTY3IDExQUU7CitCODJDO0I4MkM7MTEwNSAxMTY3IDExQUY7QjgyQzsxMTA1IDExNjcgMTFBRjsKK0I4MkQ7QjgyRDsxMTA1IDExNjcgMTFCMDtCODJEOzExMDUgMTE2NyAxMUIwOworQjgyRTtCODJFOzExMDUgMTE2NyAxMUIxO0I4MkU7MTEwNSAxMTY3IDExQjE7CitCODJGO0I4MkY7MTEwNSAxMTY3IDExQjI7QjgyRjsxMTA1IDExNjcgMTFCMjsKK0I4MzA7QjgzMDsxMTA1IDExNjcgMTFCMztCODMwOzExMDUgMTE2NyAxMUIzOworQjgzMTtCODMxOzExMDUgMTE2NyAxMUI0O0I4MzE7MTEwNSAxMTY3IDExQjQ7CitCODMyO0I4MzI7MTEwNSAxMTY3IDExQjU7QjgzMjsxMTA1IDExNjcgMTFCNTsKK0I4MzM7QjgzMzsxMTA1IDExNjcgMTFCNjtCODMzOzExMDUgMTE2NyAxMUI2OworQjgzNDtCODM0OzExMDUgMTE2NyAxMUI3O0I4MzQ7MTEwNSAxMTY3IDExQjc7CitCODM1O0I4MzU7MTEwNSAxMTY3IDExQjg7QjgzNTsxMTA1IDExNjcgMTFCODsKK0I4MzY7QjgzNjsxMTA1IDExNjcgMTFCOTtCODM2OzExMDUgMTE2NyAxMUI5OworQjgzNztCODM3OzExMDUgMTE2NyAxMUJBO0I4Mzc7MTEwNSAxMTY3IDExQkE7CitCODM4O0I4Mzg7MTEwNSAxMTY3IDExQkI7QjgzODsxMTA1IDExNjcgMTFCQjsKK0I4Mzk7QjgzOTsxMTA1IDExNjcgMTFCQztCODM5OzExMDUgMTE2NyAxMUJDOworQjgzQTtCODNBOzExMDUgMTE2NyAxMUJEO0I4M0E7MTEwNSAxMTY3IDExQkQ7CitCODNCO0I4M0I7MTEwNSAxMTY3IDExQkU7QjgzQjsxMTA1IDExNjcgMTFCRTsKK0I4M0M7QjgzQzsxMTA1IDExNjcgMTFCRjtCODNDOzExMDUgMTE2NyAxMUJGOworQjgzRDtCODNEOzExMDUgMTE2NyAxMUMwO0I4M0Q7MTEwNSAxMTY3IDExQzA7CitCODNFO0I4M0U7MTEwNSAxMTY3IDExQzE7QjgzRTsxMTA1IDExNjcgMTFDMTsKK0I4M0Y7QjgzRjsxMTA1IDExNjcgMTFDMjtCODNGOzExMDUgMTE2NyAxMUMyOworQjg0MDtCODQwOzExMDUgMTE2ODtCODQwOzExMDUgMTE2ODsKK0I4NDE7Qjg0MTsxMTA1IDExNjggMTFBODtCODQxOzExMDUgMTE2OCAxMUE4OworQjg0MjtCODQyOzExMDUgMTE2OCAxMUE5O0I4NDI7MTEwNSAxMTY4IDExQTk7CitCODQzO0I4NDM7MTEwNSAxMTY4IDExQUE7Qjg0MzsxMTA1IDExNjggMTFBQTsKK0I4NDQ7Qjg0NDsxMTA1IDExNjggMTFBQjtCODQ0OzExMDUgMTE2OCAxMUFCOworQjg0NTtCODQ1OzExMDUgMTE2OCAxMUFDO0I4NDU7MTEwNSAxMTY4IDExQUM7CitCODQ2O0I4NDY7MTEwNSAxMTY4IDExQUQ7Qjg0NjsxMTA1IDExNjggMTFBRDsKK0I4NDc7Qjg0NzsxMTA1IDExNjggMTFBRTtCODQ3OzExMDUgMTE2OCAxMUFFOworQjg0ODtCODQ4OzExMDUgMTE2OCAxMUFGO0I4NDg7MTEwNSAxMTY4IDExQUY7CitCODQ5O0I4NDk7MTEwNSAxMTY4IDExQjA7Qjg0OTsxMTA1IDExNjggMTFCMDsKK0I4NEE7Qjg0QTsxMTA1IDExNjggMTFCMTtCODRBOzExMDUgMTE2OCAxMUIxOworQjg0QjtCODRCOzExMDUgMTE2OCAxMUIyO0I4NEI7MTEwNSAxMTY4IDExQjI7CitCODRDO0I4NEM7MTEwNSAxMTY4IDExQjM7Qjg0QzsxMTA1IDExNjggMTFCMzsKK0I4NEQ7Qjg0RDsxMTA1IDExNjggMTFCNDtCODREOzExMDUgMTE2OCAxMUI0OworQjg0RTtCODRFOzExMDUgMTE2OCAxMUI1O0I4NEU7MTEwNSAxMTY4IDExQjU7CitCODRGO0I4NEY7MTEwNSAxMTY4IDExQjY7Qjg0RjsxMTA1IDExNjggMTFCNjsKK0I4NTA7Qjg1MDsxMTA1IDExNjggMTFCNztCODUwOzExMDUgMTE2OCAxMUI3OworQjg1MTtCODUxOzExMDUgMTE2OCAxMUI4O0I4NTE7MTEwNSAxMTY4IDExQjg7CitCODUyO0I4NTI7MTEwNSAxMTY4IDExQjk7Qjg1MjsxMTA1IDExNjggMTFCOTsKK0I4NTM7Qjg1MzsxMTA1IDExNjggMTFCQTtCODUzOzExMDUgMTE2OCAxMUJBOworQjg1NDtCODU0OzExMDUgMTE2OCAxMUJCO0I4NTQ7MTEwNSAxMTY4IDExQkI7CitCODU1O0I4NTU7MTEwNSAxMTY4IDExQkM7Qjg1NTsxMTA1IDExNjggMTFCQzsKK0I4NTY7Qjg1NjsxMTA1IDExNjggMTFCRDtCODU2OzExMDUgMTE2OCAxMUJEOworQjg1NztCODU3OzExMDUgMTE2OCAxMUJFO0I4NTc7MTEwNSAxMTY4IDExQkU7CitCODU4O0I4NTg7MTEwNSAxMTY4IDExQkY7Qjg1ODsxMTA1IDExNjggMTFCRjsKK0I4NTk7Qjg1OTsxMTA1IDExNjggMTFDMDtCODU5OzExMDUgMTE2OCAxMUMwOworQjg1QTtCODVBOzExMDUgMTE2OCAxMUMxO0I4NUE7MTEwNSAxMTY4IDExQzE7CitCODVCO0I4NUI7MTEwNSAxMTY4IDExQzI7Qjg1QjsxMTA1IDExNjggMTFDMjsKK0I4NUM7Qjg1QzsxMTA1IDExNjk7Qjg1QzsxMTA1IDExNjk7CitCODVEO0I4NUQ7MTEwNSAxMTY5IDExQTg7Qjg1RDsxMTA1IDExNjkgMTFBODsKK0I4NUU7Qjg1RTsxMTA1IDExNjkgMTFBOTtCODVFOzExMDUgMTE2OSAxMUE5OworQjg1RjtCODVGOzExMDUgMTE2OSAxMUFBO0I4NUY7MTEwNSAxMTY5IDExQUE7CitCODYwO0I4NjA7MTEwNSAxMTY5IDExQUI7Qjg2MDsxMTA1IDExNjkgMTFBQjsKK0I4NjE7Qjg2MTsxMTA1IDExNjkgMTFBQztCODYxOzExMDUgMTE2OSAxMUFDOworQjg2MjtCODYyOzExMDUgMTE2OSAxMUFEO0I4NjI7MTEwNSAxMTY5IDExQUQ7CitCODYzO0I4NjM7MTEwNSAxMTY5IDExQUU7Qjg2MzsxMTA1IDExNjkgMTFBRTsKK0I4NjQ7Qjg2NDsxMTA1IDExNjkgMTFBRjtCODY0OzExMDUgMTE2OSAxMUFGOworQjg2NTtCODY1OzExMDUgMTE2OSAxMUIwO0I4NjU7MTEwNSAxMTY5IDExQjA7CitCODY2O0I4NjY7MTEwNSAxMTY5IDExQjE7Qjg2NjsxMTA1IDExNjkgMTFCMTsKK0I4Njc7Qjg2NzsxMTA1IDExNjkgMTFCMjtCODY3OzExMDUgMTE2OSAxMUIyOworQjg2ODtCODY4OzExMDUgMTE2OSAxMUIzO0I4Njg7MTEwNSAxMTY5IDExQjM7CitCODY5O0I4Njk7MTEwNSAxMTY5IDExQjQ7Qjg2OTsxMTA1IDExNjkgMTFCNDsKK0I4NkE7Qjg2QTsxMTA1IDExNjkgMTFCNTtCODZBOzExMDUgMTE2OSAxMUI1OworQjg2QjtCODZCOzExMDUgMTE2OSAxMUI2O0I4NkI7MTEwNSAxMTY5IDExQjY7CitCODZDO0I4NkM7MTEwNSAxMTY5IDExQjc7Qjg2QzsxMTA1IDExNjkgMTFCNzsKK0I4NkQ7Qjg2RDsxMTA1IDExNjkgMTFCODtCODZEOzExMDUgMTE2OSAxMUI4OworQjg2RTtCODZFOzExMDUgMTE2OSAxMUI5O0I4NkU7MTEwNSAxMTY5IDExQjk7CitCODZGO0I4NkY7MTEwNSAxMTY5IDExQkE7Qjg2RjsxMTA1IDExNjkgMTFCQTsKK0I4NzA7Qjg3MDsxMTA1IDExNjkgMTFCQjtCODcwOzExMDUgMTE2OSAxMUJCOworQjg3MTtCODcxOzExMDUgMTE2OSAxMUJDO0I4NzE7MTEwNSAxMTY5IDExQkM7CitCODcyO0I4NzI7MTEwNSAxMTY5IDExQkQ7Qjg3MjsxMTA1IDExNjkgMTFCRDsKK0I4NzM7Qjg3MzsxMTA1IDExNjkgMTFCRTtCODczOzExMDUgMTE2OSAxMUJFOworQjg3NDtCODc0OzExMDUgMTE2OSAxMUJGO0I4NzQ7MTEwNSAxMTY5IDExQkY7CitCODc1O0I4NzU7MTEwNSAxMTY5IDExQzA7Qjg3NTsxMTA1IDExNjkgMTFDMDsKK0I4NzY7Qjg3NjsxMTA1IDExNjkgMTFDMTtCODc2OzExMDUgMTE2OSAxMUMxOworQjg3NztCODc3OzExMDUgMTE2OSAxMUMyO0I4Nzc7MTEwNSAxMTY5IDExQzI7CitCODc4O0I4Nzg7MTEwNSAxMTZBO0I4Nzg7MTEwNSAxMTZBOworQjg3OTtCODc5OzExMDUgMTE2QSAxMUE4O0I4Nzk7MTEwNSAxMTZBIDExQTg7CitCODdBO0I4N0E7MTEwNSAxMTZBIDExQTk7Qjg3QTsxMTA1IDExNkEgMTFBOTsKK0I4N0I7Qjg3QjsxMTA1IDExNkEgMTFBQTtCODdCOzExMDUgMTE2QSAxMUFBOworQjg3QztCODdDOzExMDUgMTE2QSAxMUFCO0I4N0M7MTEwNSAxMTZBIDExQUI7CitCODdEO0I4N0Q7MTEwNSAxMTZBIDExQUM7Qjg3RDsxMTA1IDExNkEgMTFBQzsKK0I4N0U7Qjg3RTsxMTA1IDExNkEgMTFBRDtCODdFOzExMDUgMTE2QSAxMUFEOworQjg3RjtCODdGOzExMDUgMTE2QSAxMUFFO0I4N0Y7MTEwNSAxMTZBIDExQUU7CitCODgwO0I4ODA7MTEwNSAxMTZBIDExQUY7Qjg4MDsxMTA1IDExNkEgMTFBRjsKK0I4ODE7Qjg4MTsxMTA1IDExNkEgMTFCMDtCODgxOzExMDUgMTE2QSAxMUIwOworQjg4MjtCODgyOzExMDUgMTE2QSAxMUIxO0I4ODI7MTEwNSAxMTZBIDExQjE7CitCODgzO0I4ODM7MTEwNSAxMTZBIDExQjI7Qjg4MzsxMTA1IDExNkEgMTFCMjsKK0I4ODQ7Qjg4NDsxMTA1IDExNkEgMTFCMztCODg0OzExMDUgMTE2QSAxMUIzOworQjg4NTtCODg1OzExMDUgMTE2QSAxMUI0O0I4ODU7MTEwNSAxMTZBIDExQjQ7CitCODg2O0I4ODY7MTEwNSAxMTZBIDExQjU7Qjg4NjsxMTA1IDExNkEgMTFCNTsKK0I4ODc7Qjg4NzsxMTA1IDExNkEgMTFCNjtCODg3OzExMDUgMTE2QSAxMUI2OworQjg4ODtCODg4OzExMDUgMTE2QSAxMUI3O0I4ODg7MTEwNSAxMTZBIDExQjc7CitCODg5O0I4ODk7MTEwNSAxMTZBIDExQjg7Qjg4OTsxMTA1IDExNkEgMTFCODsKK0I4OEE7Qjg4QTsxMTA1IDExNkEgMTFCOTtCODhBOzExMDUgMTE2QSAxMUI5OworQjg4QjtCODhCOzExMDUgMTE2QSAxMUJBO0I4OEI7MTEwNSAxMTZBIDExQkE7CitCODhDO0I4OEM7MTEwNSAxMTZBIDExQkI7Qjg4QzsxMTA1IDExNkEgMTFCQjsKK0I4OEQ7Qjg4RDsxMTA1IDExNkEgMTFCQztCODhEOzExMDUgMTE2QSAxMUJDOworQjg4RTtCODhFOzExMDUgMTE2QSAxMUJEO0I4OEU7MTEwNSAxMTZBIDExQkQ7CitCODhGO0I4OEY7MTEwNSAxMTZBIDExQkU7Qjg4RjsxMTA1IDExNkEgMTFCRTsKK0I4OTA7Qjg5MDsxMTA1IDExNkEgMTFCRjtCODkwOzExMDUgMTE2QSAxMUJGOworQjg5MTtCODkxOzExMDUgMTE2QSAxMUMwO0I4OTE7MTEwNSAxMTZBIDExQzA7CitCODkyO0I4OTI7MTEwNSAxMTZBIDExQzE7Qjg5MjsxMTA1IDExNkEgMTFDMTsKK0I4OTM7Qjg5MzsxMTA1IDExNkEgMTFDMjtCODkzOzExMDUgMTE2QSAxMUMyOworQjg5NDtCODk0OzExMDUgMTE2QjtCODk0OzExMDUgMTE2QjsKK0I4OTU7Qjg5NTsxMTA1IDExNkIgMTFBODtCODk1OzExMDUgMTE2QiAxMUE4OworQjg5NjtCODk2OzExMDUgMTE2QiAxMUE5O0I4OTY7MTEwNSAxMTZCIDExQTk7CitCODk3O0I4OTc7MTEwNSAxMTZCIDExQUE7Qjg5NzsxMTA1IDExNkIgMTFBQTsKK0I4OTg7Qjg5ODsxMTA1IDExNkIgMTFBQjtCODk4OzExMDUgMTE2QiAxMUFCOworQjg5OTtCODk5OzExMDUgMTE2QiAxMUFDO0I4OTk7MTEwNSAxMTZCIDExQUM7CitCODlBO0I4OUE7MTEwNSAxMTZCIDExQUQ7Qjg5QTsxMTA1IDExNkIgMTFBRDsKK0I4OUI7Qjg5QjsxMTA1IDExNkIgMTFBRTtCODlCOzExMDUgMTE2QiAxMUFFOworQjg5QztCODlDOzExMDUgMTE2QiAxMUFGO0I4OUM7MTEwNSAxMTZCIDExQUY7CitCODlEO0I4OUQ7MTEwNSAxMTZCIDExQjA7Qjg5RDsxMTA1IDExNkIgMTFCMDsKK0I4OUU7Qjg5RTsxMTA1IDExNkIgMTFCMTtCODlFOzExMDUgMTE2QiAxMUIxOworQjg5RjtCODlGOzExMDUgMTE2QiAxMUIyO0I4OUY7MTEwNSAxMTZCIDExQjI7CitCOEEwO0I4QTA7MTEwNSAxMTZCIDExQjM7QjhBMDsxMTA1IDExNkIgMTFCMzsKK0I4QTE7QjhBMTsxMTA1IDExNkIgMTFCNDtCOEExOzExMDUgMTE2QiAxMUI0OworQjhBMjtCOEEyOzExMDUgMTE2QiAxMUI1O0I4QTI7MTEwNSAxMTZCIDExQjU7CitCOEEzO0I4QTM7MTEwNSAxMTZCIDExQjY7QjhBMzsxMTA1IDExNkIgMTFCNjsKK0I4QTQ7QjhBNDsxMTA1IDExNkIgMTFCNztCOEE0OzExMDUgMTE2QiAxMUI3OworQjhBNTtCOEE1OzExMDUgMTE2QiAxMUI4O0I4QTU7MTEwNSAxMTZCIDExQjg7CitCOEE2O0I4QTY7MTEwNSAxMTZCIDExQjk7QjhBNjsxMTA1IDExNkIgMTFCOTsKK0I4QTc7QjhBNzsxMTA1IDExNkIgMTFCQTtCOEE3OzExMDUgMTE2QiAxMUJBOworQjhBODtCOEE4OzExMDUgMTE2QiAxMUJCO0I4QTg7MTEwNSAxMTZCIDExQkI7CitCOEE5O0I4QTk7MTEwNSAxMTZCIDExQkM7QjhBOTsxMTA1IDExNkIgMTFCQzsKK0I4QUE7QjhBQTsxMTA1IDExNkIgMTFCRDtCOEFBOzExMDUgMTE2QiAxMUJEOworQjhBQjtCOEFCOzExMDUgMTE2QiAxMUJFO0I4QUI7MTEwNSAxMTZCIDExQkU7CitCOEFDO0I4QUM7MTEwNSAxMTZCIDExQkY7QjhBQzsxMTA1IDExNkIgMTFCRjsKK0I4QUQ7QjhBRDsxMTA1IDExNkIgMTFDMDtCOEFEOzExMDUgMTE2QiAxMUMwOworQjhBRTtCOEFFOzExMDUgMTE2QiAxMUMxO0I4QUU7MTEwNSAxMTZCIDExQzE7CitCOEFGO0I4QUY7MTEwNSAxMTZCIDExQzI7QjhBRjsxMTA1IDExNkIgMTFDMjsKK0I4QjA7QjhCMDsxMTA1IDExNkM7QjhCMDsxMTA1IDExNkM7CitCOEIxO0I4QjE7MTEwNSAxMTZDIDExQTg7QjhCMTsxMTA1IDExNkMgMTFBODsKK0I4QjI7QjhCMjsxMTA1IDExNkMgMTFBOTtCOEIyOzExMDUgMTE2QyAxMUE5OworQjhCMztCOEIzOzExMDUgMTE2QyAxMUFBO0I4QjM7MTEwNSAxMTZDIDExQUE7CitCOEI0O0I4QjQ7MTEwNSAxMTZDIDExQUI7QjhCNDsxMTA1IDExNkMgMTFBQjsKK0I4QjU7QjhCNTsxMTA1IDExNkMgMTFBQztCOEI1OzExMDUgMTE2QyAxMUFDOworQjhCNjtCOEI2OzExMDUgMTE2QyAxMUFEO0I4QjY7MTEwNSAxMTZDIDExQUQ7CitCOEI3O0I4Qjc7MTEwNSAxMTZDIDExQUU7QjhCNzsxMTA1IDExNkMgMTFBRTsKK0I4Qjg7QjhCODsxMTA1IDExNkMgMTFBRjtCOEI4OzExMDUgMTE2QyAxMUFGOworQjhCOTtCOEI5OzExMDUgMTE2QyAxMUIwO0I4Qjk7MTEwNSAxMTZDIDExQjA7CitCOEJBO0I4QkE7MTEwNSAxMTZDIDExQjE7QjhCQTsxMTA1IDExNkMgMTFCMTsKK0I4QkI7QjhCQjsxMTA1IDExNkMgMTFCMjtCOEJCOzExMDUgMTE2QyAxMUIyOworQjhCQztCOEJDOzExMDUgMTE2QyAxMUIzO0I4QkM7MTEwNSAxMTZDIDExQjM7CitCOEJEO0I4QkQ7MTEwNSAxMTZDIDExQjQ7QjhCRDsxMTA1IDExNkMgMTFCNDsKK0I4QkU7QjhCRTsxMTA1IDExNkMgMTFCNTtCOEJFOzExMDUgMTE2QyAxMUI1OworQjhCRjtCOEJGOzExMDUgMTE2QyAxMUI2O0I4QkY7MTEwNSAxMTZDIDExQjY7CitCOEMwO0I4QzA7MTEwNSAxMTZDIDExQjc7QjhDMDsxMTA1IDExNkMgMTFCNzsKK0I4QzE7QjhDMTsxMTA1IDExNkMgMTFCODtCOEMxOzExMDUgMTE2QyAxMUI4OworQjhDMjtCOEMyOzExMDUgMTE2QyAxMUI5O0I4QzI7MTEwNSAxMTZDIDExQjk7CitCOEMzO0I4QzM7MTEwNSAxMTZDIDExQkE7QjhDMzsxMTA1IDExNkMgMTFCQTsKK0I4QzQ7QjhDNDsxMTA1IDExNkMgMTFCQjtCOEM0OzExMDUgMTE2QyAxMUJCOworQjhDNTtCOEM1OzExMDUgMTE2QyAxMUJDO0I4QzU7MTEwNSAxMTZDIDExQkM7CitCOEM2O0I4QzY7MTEwNSAxMTZDIDExQkQ7QjhDNjsxMTA1IDExNkMgMTFCRDsKK0I4Qzc7QjhDNzsxMTA1IDExNkMgMTFCRTtCOEM3OzExMDUgMTE2QyAxMUJFOworQjhDODtCOEM4OzExMDUgMTE2QyAxMUJGO0I4Qzg7MTEwNSAxMTZDIDExQkY7CitCOEM5O0I4Qzk7MTEwNSAxMTZDIDExQzA7QjhDOTsxMTA1IDExNkMgMTFDMDsKK0I4Q0E7QjhDQTsxMTA1IDExNkMgMTFDMTtCOENBOzExMDUgMTE2QyAxMUMxOworQjhDQjtCOENCOzExMDUgMTE2QyAxMUMyO0I4Q0I7MTEwNSAxMTZDIDExQzI7CitCOENDO0I4Q0M7MTEwNSAxMTZEO0I4Q0M7MTEwNSAxMTZEOworQjhDRDtCOENEOzExMDUgMTE2RCAxMUE4O0I4Q0Q7MTEwNSAxMTZEIDExQTg7CitCOENFO0I4Q0U7MTEwNSAxMTZEIDExQTk7QjhDRTsxMTA1IDExNkQgMTFBOTsKK0I4Q0Y7QjhDRjsxMTA1IDExNkQgMTFBQTtCOENGOzExMDUgMTE2RCAxMUFBOworQjhEMDtCOEQwOzExMDUgMTE2RCAxMUFCO0I4RDA7MTEwNSAxMTZEIDExQUI7CitCOEQxO0I4RDE7MTEwNSAxMTZEIDExQUM7QjhEMTsxMTA1IDExNkQgMTFBQzsKK0I4RDI7QjhEMjsxMTA1IDExNkQgMTFBRDtCOEQyOzExMDUgMTE2RCAxMUFEOworQjhEMztCOEQzOzExMDUgMTE2RCAxMUFFO0I4RDM7MTEwNSAxMTZEIDExQUU7CitCOEQ0O0I4RDQ7MTEwNSAxMTZEIDExQUY7QjhENDsxMTA1IDExNkQgMTFBRjsKK0I4RDU7QjhENTsxMTA1IDExNkQgMTFCMDtCOEQ1OzExMDUgMTE2RCAxMUIwOworQjhENjtCOEQ2OzExMDUgMTE2RCAxMUIxO0I4RDY7MTEwNSAxMTZEIDExQjE7CitCOEQ3O0I4RDc7MTEwNSAxMTZEIDExQjI7QjhENzsxMTA1IDExNkQgMTFCMjsKK0I4RDg7QjhEODsxMTA1IDExNkQgMTFCMztCOEQ4OzExMDUgMTE2RCAxMUIzOworQjhEOTtCOEQ5OzExMDUgMTE2RCAxMUI0O0I4RDk7MTEwNSAxMTZEIDExQjQ7CitCOERBO0I4REE7MTEwNSAxMTZEIDExQjU7QjhEQTsxMTA1IDExNkQgMTFCNTsKK0I4REI7QjhEQjsxMTA1IDExNkQgMTFCNjtCOERCOzExMDUgMTE2RCAxMUI2OworQjhEQztCOERDOzExMDUgMTE2RCAxMUI3O0I4REM7MTEwNSAxMTZEIDExQjc7CitCOEREO0I4REQ7MTEwNSAxMTZEIDExQjg7QjhERDsxMTA1IDExNkQgMTFCODsKK0I4REU7QjhERTsxMTA1IDExNkQgMTFCOTtCOERFOzExMDUgMTE2RCAxMUI5OworQjhERjtCOERGOzExMDUgMTE2RCAxMUJBO0I4REY7MTEwNSAxMTZEIDExQkE7CitCOEUwO0I4RTA7MTEwNSAxMTZEIDExQkI7QjhFMDsxMTA1IDExNkQgMTFCQjsKK0I4RTE7QjhFMTsxMTA1IDExNkQgMTFCQztCOEUxOzExMDUgMTE2RCAxMUJDOworQjhFMjtCOEUyOzExMDUgMTE2RCAxMUJEO0I4RTI7MTEwNSAxMTZEIDExQkQ7CitCOEUzO0I4RTM7MTEwNSAxMTZEIDExQkU7QjhFMzsxMTA1IDExNkQgMTFCRTsKK0I4RTQ7QjhFNDsxMTA1IDExNkQgMTFCRjtCOEU0OzExMDUgMTE2RCAxMUJGOworQjhFNTtCOEU1OzExMDUgMTE2RCAxMUMwO0I4RTU7MTEwNSAxMTZEIDExQzA7CitCOEU2O0I4RTY7MTEwNSAxMTZEIDExQzE7QjhFNjsxMTA1IDExNkQgMTFDMTsKK0I4RTc7QjhFNzsxMTA1IDExNkQgMTFDMjtCOEU3OzExMDUgMTE2RCAxMUMyOworQjhFODtCOEU4OzExMDUgMTE2RTtCOEU4OzExMDUgMTE2RTsKK0I4RTk7QjhFOTsxMTA1IDExNkUgMTFBODtCOEU5OzExMDUgMTE2RSAxMUE4OworQjhFQTtCOEVBOzExMDUgMTE2RSAxMUE5O0I4RUE7MTEwNSAxMTZFIDExQTk7CitCOEVCO0I4RUI7MTEwNSAxMTZFIDExQUE7QjhFQjsxMTA1IDExNkUgMTFBQTsKK0I4RUM7QjhFQzsxMTA1IDExNkUgMTFBQjtCOEVDOzExMDUgMTE2RSAxMUFCOworQjhFRDtCOEVEOzExMDUgMTE2RSAxMUFDO0I4RUQ7MTEwNSAxMTZFIDExQUM7CitCOEVFO0I4RUU7MTEwNSAxMTZFIDExQUQ7QjhFRTsxMTA1IDExNkUgMTFBRDsKK0I4RUY7QjhFRjsxMTA1IDExNkUgMTFBRTtCOEVGOzExMDUgMTE2RSAxMUFFOworQjhGMDtCOEYwOzExMDUgMTE2RSAxMUFGO0I4RjA7MTEwNSAxMTZFIDExQUY7CitCOEYxO0I4RjE7MTEwNSAxMTZFIDExQjA7QjhGMTsxMTA1IDExNkUgMTFCMDsKK0I4RjI7QjhGMjsxMTA1IDExNkUgMTFCMTtCOEYyOzExMDUgMTE2RSAxMUIxOworQjhGMztCOEYzOzExMDUgMTE2RSAxMUIyO0I4RjM7MTEwNSAxMTZFIDExQjI7CitCOEY0O0I4RjQ7MTEwNSAxMTZFIDExQjM7QjhGNDsxMTA1IDExNkUgMTFCMzsKK0I4RjU7QjhGNTsxMTA1IDExNkUgMTFCNDtCOEY1OzExMDUgMTE2RSAxMUI0OworQjhGNjtCOEY2OzExMDUgMTE2RSAxMUI1O0I4RjY7MTEwNSAxMTZFIDExQjU7CitCOEY3O0I4Rjc7MTEwNSAxMTZFIDExQjY7QjhGNzsxMTA1IDExNkUgMTFCNjsKK0I4Rjg7QjhGODsxMTA1IDExNkUgMTFCNztCOEY4OzExMDUgMTE2RSAxMUI3OworQjhGOTtCOEY5OzExMDUgMTE2RSAxMUI4O0I4Rjk7MTEwNSAxMTZFIDExQjg7CitCOEZBO0I4RkE7MTEwNSAxMTZFIDExQjk7QjhGQTsxMTA1IDExNkUgMTFCOTsKK0I4RkI7QjhGQjsxMTA1IDExNkUgMTFCQTtCOEZCOzExMDUgMTE2RSAxMUJBOworQjhGQztCOEZDOzExMDUgMTE2RSAxMUJCO0I4RkM7MTEwNSAxMTZFIDExQkI7CitCOEZEO0I4RkQ7MTEwNSAxMTZFIDExQkM7QjhGRDsxMTA1IDExNkUgMTFCQzsKK0I4RkU7QjhGRTsxMTA1IDExNkUgMTFCRDtCOEZFOzExMDUgMTE2RSAxMUJEOworQjhGRjtCOEZGOzExMDUgMTE2RSAxMUJFO0I4RkY7MTEwNSAxMTZFIDExQkU7CitCOTAwO0I5MDA7MTEwNSAxMTZFIDExQkY7QjkwMDsxMTA1IDExNkUgMTFCRjsKK0I5MDE7QjkwMTsxMTA1IDExNkUgMTFDMDtCOTAxOzExMDUgMTE2RSAxMUMwOworQjkwMjtCOTAyOzExMDUgMTE2RSAxMUMxO0I5MDI7MTEwNSAxMTZFIDExQzE7CitCOTAzO0I5MDM7MTEwNSAxMTZFIDExQzI7QjkwMzsxMTA1IDExNkUgMTFDMjsKK0I5MDQ7QjkwNDsxMTA1IDExNkY7QjkwNDsxMTA1IDExNkY7CitCOTA1O0I5MDU7MTEwNSAxMTZGIDExQTg7QjkwNTsxMTA1IDExNkYgMTFBODsKK0I5MDY7QjkwNjsxMTA1IDExNkYgMTFBOTtCOTA2OzExMDUgMTE2RiAxMUE5OworQjkwNztCOTA3OzExMDUgMTE2RiAxMUFBO0I5MDc7MTEwNSAxMTZGIDExQUE7CitCOTA4O0I5MDg7MTEwNSAxMTZGIDExQUI7QjkwODsxMTA1IDExNkYgMTFBQjsKK0I5MDk7QjkwOTsxMTA1IDExNkYgMTFBQztCOTA5OzExMDUgMTE2RiAxMUFDOworQjkwQTtCOTBBOzExMDUgMTE2RiAxMUFEO0I5MEE7MTEwNSAxMTZGIDExQUQ7CitCOTBCO0I5MEI7MTEwNSAxMTZGIDExQUU7QjkwQjsxMTA1IDExNkYgMTFBRTsKK0I5MEM7QjkwQzsxMTA1IDExNkYgMTFBRjtCOTBDOzExMDUgMTE2RiAxMUFGOworQjkwRDtCOTBEOzExMDUgMTE2RiAxMUIwO0I5MEQ7MTEwNSAxMTZGIDExQjA7CitCOTBFO0I5MEU7MTEwNSAxMTZGIDExQjE7QjkwRTsxMTA1IDExNkYgMTFCMTsKK0I5MEY7QjkwRjsxMTA1IDExNkYgMTFCMjtCOTBGOzExMDUgMTE2RiAxMUIyOworQjkxMDtCOTEwOzExMDUgMTE2RiAxMUIzO0I5MTA7MTEwNSAxMTZGIDExQjM7CitCOTExO0I5MTE7MTEwNSAxMTZGIDExQjQ7QjkxMTsxMTA1IDExNkYgMTFCNDsKK0I5MTI7QjkxMjsxMTA1IDExNkYgMTFCNTtCOTEyOzExMDUgMTE2RiAxMUI1OworQjkxMztCOTEzOzExMDUgMTE2RiAxMUI2O0I5MTM7MTEwNSAxMTZGIDExQjY7CitCOTE0O0I5MTQ7MTEwNSAxMTZGIDExQjc7QjkxNDsxMTA1IDExNkYgMTFCNzsKK0I5MTU7QjkxNTsxMTA1IDExNkYgMTFCODtCOTE1OzExMDUgMTE2RiAxMUI4OworQjkxNjtCOTE2OzExMDUgMTE2RiAxMUI5O0I5MTY7MTEwNSAxMTZGIDExQjk7CitCOTE3O0I5MTc7MTEwNSAxMTZGIDExQkE7QjkxNzsxMTA1IDExNkYgMTFCQTsKK0I5MTg7QjkxODsxMTA1IDExNkYgMTFCQjtCOTE4OzExMDUgMTE2RiAxMUJCOworQjkxOTtCOTE5OzExMDUgMTE2RiAxMUJDO0I5MTk7MTEwNSAxMTZGIDExQkM7CitCOTFBO0I5MUE7MTEwNSAxMTZGIDExQkQ7QjkxQTsxMTA1IDExNkYgMTFCRDsKK0I5MUI7QjkxQjsxMTA1IDExNkYgMTFCRTtCOTFCOzExMDUgMTE2RiAxMUJFOworQjkxQztCOTFDOzExMDUgMTE2RiAxMUJGO0I5MUM7MTEwNSAxMTZGIDExQkY7CitCOTFEO0I5MUQ7MTEwNSAxMTZGIDExQzA7QjkxRDsxMTA1IDExNkYgMTFDMDsKK0I5MUU7QjkxRTsxMTA1IDExNkYgMTFDMTtCOTFFOzExMDUgMTE2RiAxMUMxOworQjkxRjtCOTFGOzExMDUgMTE2RiAxMUMyO0I5MUY7MTEwNSAxMTZGIDExQzI7CitCOTIwO0I5MjA7MTEwNSAxMTcwO0I5MjA7MTEwNSAxMTcwOworQjkyMTtCOTIxOzExMDUgMTE3MCAxMUE4O0I5MjE7MTEwNSAxMTcwIDExQTg7CitCOTIyO0I5MjI7MTEwNSAxMTcwIDExQTk7QjkyMjsxMTA1IDExNzAgMTFBOTsKK0I5MjM7QjkyMzsxMTA1IDExNzAgMTFBQTtCOTIzOzExMDUgMTE3MCAxMUFBOworQjkyNDtCOTI0OzExMDUgMTE3MCAxMUFCO0I5MjQ7MTEwNSAxMTcwIDExQUI7CitCOTI1O0I5MjU7MTEwNSAxMTcwIDExQUM7QjkyNTsxMTA1IDExNzAgMTFBQzsKK0I5MjY7QjkyNjsxMTA1IDExNzAgMTFBRDtCOTI2OzExMDUgMTE3MCAxMUFEOworQjkyNztCOTI3OzExMDUgMTE3MCAxMUFFO0I5Mjc7MTEwNSAxMTcwIDExQUU7CitCOTI4O0I5Mjg7MTEwNSAxMTcwIDExQUY7QjkyODsxMTA1IDExNzAgMTFBRjsKK0I5Mjk7QjkyOTsxMTA1IDExNzAgMTFCMDtCOTI5OzExMDUgMTE3MCAxMUIwOworQjkyQTtCOTJBOzExMDUgMTE3MCAxMUIxO0I5MkE7MTEwNSAxMTcwIDExQjE7CitCOTJCO0I5MkI7MTEwNSAxMTcwIDExQjI7QjkyQjsxMTA1IDExNzAgMTFCMjsKK0I5MkM7QjkyQzsxMTA1IDExNzAgMTFCMztCOTJDOzExMDUgMTE3MCAxMUIzOworQjkyRDtCOTJEOzExMDUgMTE3MCAxMUI0O0I5MkQ7MTEwNSAxMTcwIDExQjQ7CitCOTJFO0I5MkU7MTEwNSAxMTcwIDExQjU7QjkyRTsxMTA1IDExNzAgMTFCNTsKK0I5MkY7QjkyRjsxMTA1IDExNzAgMTFCNjtCOTJGOzExMDUgMTE3MCAxMUI2OworQjkzMDtCOTMwOzExMDUgMTE3MCAxMUI3O0I5MzA7MTEwNSAxMTcwIDExQjc7CitCOTMxO0I5MzE7MTEwNSAxMTcwIDExQjg7QjkzMTsxMTA1IDExNzAgMTFCODsKK0I5MzI7QjkzMjsxMTA1IDExNzAgMTFCOTtCOTMyOzExMDUgMTE3MCAxMUI5OworQjkzMztCOTMzOzExMDUgMTE3MCAxMUJBO0I5MzM7MTEwNSAxMTcwIDExQkE7CitCOTM0O0I5MzQ7MTEwNSAxMTcwIDExQkI7QjkzNDsxMTA1IDExNzAgMTFCQjsKK0I5MzU7QjkzNTsxMTA1IDExNzAgMTFCQztCOTM1OzExMDUgMTE3MCAxMUJDOworQjkzNjtCOTM2OzExMDUgMTE3MCAxMUJEO0I5MzY7MTEwNSAxMTcwIDExQkQ7CitCOTM3O0I5Mzc7MTEwNSAxMTcwIDExQkU7QjkzNzsxMTA1IDExNzAgMTFCRTsKK0I5Mzg7QjkzODsxMTA1IDExNzAgMTFCRjtCOTM4OzExMDUgMTE3MCAxMUJGOworQjkzOTtCOTM5OzExMDUgMTE3MCAxMUMwO0I5Mzk7MTEwNSAxMTcwIDExQzA7CitCOTNBO0I5M0E7MTEwNSAxMTcwIDExQzE7QjkzQTsxMTA1IDExNzAgMTFDMTsKK0I5M0I7QjkzQjsxMTA1IDExNzAgMTFDMjtCOTNCOzExMDUgMTE3MCAxMUMyOworQjkzQztCOTNDOzExMDUgMTE3MTtCOTNDOzExMDUgMTE3MTsKK0I5M0Q7QjkzRDsxMTA1IDExNzEgMTFBODtCOTNEOzExMDUgMTE3MSAxMUE4OworQjkzRTtCOTNFOzExMDUgMTE3MSAxMUE5O0I5M0U7MTEwNSAxMTcxIDExQTk7CitCOTNGO0I5M0Y7MTEwNSAxMTcxIDExQUE7QjkzRjsxMTA1IDExNzEgMTFBQTsKK0I5NDA7Qjk0MDsxMTA1IDExNzEgMTFBQjtCOTQwOzExMDUgMTE3MSAxMUFCOworQjk0MTtCOTQxOzExMDUgMTE3MSAxMUFDO0I5NDE7MTEwNSAxMTcxIDExQUM7CitCOTQyO0I5NDI7MTEwNSAxMTcxIDExQUQ7Qjk0MjsxMTA1IDExNzEgMTFBRDsKK0I5NDM7Qjk0MzsxMTA1IDExNzEgMTFBRTtCOTQzOzExMDUgMTE3MSAxMUFFOworQjk0NDtCOTQ0OzExMDUgMTE3MSAxMUFGO0I5NDQ7MTEwNSAxMTcxIDExQUY7CitCOTQ1O0I5NDU7MTEwNSAxMTcxIDExQjA7Qjk0NTsxMTA1IDExNzEgMTFCMDsKK0I5NDY7Qjk0NjsxMTA1IDExNzEgMTFCMTtCOTQ2OzExMDUgMTE3MSAxMUIxOworQjk0NztCOTQ3OzExMDUgMTE3MSAxMUIyO0I5NDc7MTEwNSAxMTcxIDExQjI7CitCOTQ4O0I5NDg7MTEwNSAxMTcxIDExQjM7Qjk0ODsxMTA1IDExNzEgMTFCMzsKK0I5NDk7Qjk0OTsxMTA1IDExNzEgMTFCNDtCOTQ5OzExMDUgMTE3MSAxMUI0OworQjk0QTtCOTRBOzExMDUgMTE3MSAxMUI1O0I5NEE7MTEwNSAxMTcxIDExQjU7CitCOTRCO0I5NEI7MTEwNSAxMTcxIDExQjY7Qjk0QjsxMTA1IDExNzEgMTFCNjsKK0I5NEM7Qjk0QzsxMTA1IDExNzEgMTFCNztCOTRDOzExMDUgMTE3MSAxMUI3OworQjk0RDtCOTREOzExMDUgMTE3MSAxMUI4O0I5NEQ7MTEwNSAxMTcxIDExQjg7CitCOTRFO0I5NEU7MTEwNSAxMTcxIDExQjk7Qjk0RTsxMTA1IDExNzEgMTFCOTsKK0I5NEY7Qjk0RjsxMTA1IDExNzEgMTFCQTtCOTRGOzExMDUgMTE3MSAxMUJBOworQjk1MDtCOTUwOzExMDUgMTE3MSAxMUJCO0I5NTA7MTEwNSAxMTcxIDExQkI7CitCOTUxO0I5NTE7MTEwNSAxMTcxIDExQkM7Qjk1MTsxMTA1IDExNzEgMTFCQzsKK0I5NTI7Qjk1MjsxMTA1IDExNzEgMTFCRDtCOTUyOzExMDUgMTE3MSAxMUJEOworQjk1MztCOTUzOzExMDUgMTE3MSAxMUJFO0I5NTM7MTEwNSAxMTcxIDExQkU7CitCOTU0O0I5NTQ7MTEwNSAxMTcxIDExQkY7Qjk1NDsxMTA1IDExNzEgMTFCRjsKK0I5NTU7Qjk1NTsxMTA1IDExNzEgMTFDMDtCOTU1OzExMDUgMTE3MSAxMUMwOworQjk1NjtCOTU2OzExMDUgMTE3MSAxMUMxO0I5NTY7MTEwNSAxMTcxIDExQzE7CitCOTU3O0I5NTc7MTEwNSAxMTcxIDExQzI7Qjk1NzsxMTA1IDExNzEgMTFDMjsKK0I5NTg7Qjk1ODsxMTA1IDExNzI7Qjk1ODsxMTA1IDExNzI7CitCOTU5O0I5NTk7MTEwNSAxMTcyIDExQTg7Qjk1OTsxMTA1IDExNzIgMTFBODsKK0I5NUE7Qjk1QTsxMTA1IDExNzIgMTFBOTtCOTVBOzExMDUgMTE3MiAxMUE5OworQjk1QjtCOTVCOzExMDUgMTE3MiAxMUFBO0I5NUI7MTEwNSAxMTcyIDExQUE7CitCOTVDO0I5NUM7MTEwNSAxMTcyIDExQUI7Qjk1QzsxMTA1IDExNzIgMTFBQjsKK0I5NUQ7Qjk1RDsxMTA1IDExNzIgMTFBQztCOTVEOzExMDUgMTE3MiAxMUFDOworQjk1RTtCOTVFOzExMDUgMTE3MiAxMUFEO0I5NUU7MTEwNSAxMTcyIDExQUQ7CitCOTVGO0I5NUY7MTEwNSAxMTcyIDExQUU7Qjk1RjsxMTA1IDExNzIgMTFBRTsKK0I5NjA7Qjk2MDsxMTA1IDExNzIgMTFBRjtCOTYwOzExMDUgMTE3MiAxMUFGOworQjk2MTtCOTYxOzExMDUgMTE3MiAxMUIwO0I5NjE7MTEwNSAxMTcyIDExQjA7CitCOTYyO0I5NjI7MTEwNSAxMTcyIDExQjE7Qjk2MjsxMTA1IDExNzIgMTFCMTsKK0I5NjM7Qjk2MzsxMTA1IDExNzIgMTFCMjtCOTYzOzExMDUgMTE3MiAxMUIyOworQjk2NDtCOTY0OzExMDUgMTE3MiAxMUIzO0I5NjQ7MTEwNSAxMTcyIDExQjM7CitCOTY1O0I5NjU7MTEwNSAxMTcyIDExQjQ7Qjk2NTsxMTA1IDExNzIgMTFCNDsKK0I5NjY7Qjk2NjsxMTA1IDExNzIgMTFCNTtCOTY2OzExMDUgMTE3MiAxMUI1OworQjk2NztCOTY3OzExMDUgMTE3MiAxMUI2O0I5Njc7MTEwNSAxMTcyIDExQjY7CitCOTY4O0I5Njg7MTEwNSAxMTcyIDExQjc7Qjk2ODsxMTA1IDExNzIgMTFCNzsKK0I5Njk7Qjk2OTsxMTA1IDExNzIgMTFCODtCOTY5OzExMDUgMTE3MiAxMUI4OworQjk2QTtCOTZBOzExMDUgMTE3MiAxMUI5O0I5NkE7MTEwNSAxMTcyIDExQjk7CitCOTZCO0I5NkI7MTEwNSAxMTcyIDExQkE7Qjk2QjsxMTA1IDExNzIgMTFCQTsKK0I5NkM7Qjk2QzsxMTA1IDExNzIgMTFCQjtCOTZDOzExMDUgMTE3MiAxMUJCOworQjk2RDtCOTZEOzExMDUgMTE3MiAxMUJDO0I5NkQ7MTEwNSAxMTcyIDExQkM7CitCOTZFO0I5NkU7MTEwNSAxMTcyIDExQkQ7Qjk2RTsxMTA1IDExNzIgMTFCRDsKK0I5NkY7Qjk2RjsxMTA1IDExNzIgMTFCRTtCOTZGOzExMDUgMTE3MiAxMUJFOworQjk3MDtCOTcwOzExMDUgMTE3MiAxMUJGO0I5NzA7MTEwNSAxMTcyIDExQkY7CitCOTcxO0I5NzE7MTEwNSAxMTcyIDExQzA7Qjk3MTsxMTA1IDExNzIgMTFDMDsKK0I5NzI7Qjk3MjsxMTA1IDExNzIgMTFDMTtCOTcyOzExMDUgMTE3MiAxMUMxOworQjk3MztCOTczOzExMDUgMTE3MiAxMUMyO0I5NzM7MTEwNSAxMTcyIDExQzI7CitCOTc0O0I5NzQ7MTEwNSAxMTczO0I5NzQ7MTEwNSAxMTczOworQjk3NTtCOTc1OzExMDUgMTE3MyAxMUE4O0I5NzU7MTEwNSAxMTczIDExQTg7CitCOTc2O0I5NzY7MTEwNSAxMTczIDExQTk7Qjk3NjsxMTA1IDExNzMgMTFBOTsKK0I5Nzc7Qjk3NzsxMTA1IDExNzMgMTFBQTtCOTc3OzExMDUgMTE3MyAxMUFBOworQjk3ODtCOTc4OzExMDUgMTE3MyAxMUFCO0I5Nzg7MTEwNSAxMTczIDExQUI7CitCOTc5O0I5Nzk7MTEwNSAxMTczIDExQUM7Qjk3OTsxMTA1IDExNzMgMTFBQzsKK0I5N0E7Qjk3QTsxMTA1IDExNzMgMTFBRDtCOTdBOzExMDUgMTE3MyAxMUFEOworQjk3QjtCOTdCOzExMDUgMTE3MyAxMUFFO0I5N0I7MTEwNSAxMTczIDExQUU7CitCOTdDO0I5N0M7MTEwNSAxMTczIDExQUY7Qjk3QzsxMTA1IDExNzMgMTFBRjsKK0I5N0Q7Qjk3RDsxMTA1IDExNzMgMTFCMDtCOTdEOzExMDUgMTE3MyAxMUIwOworQjk3RTtCOTdFOzExMDUgMTE3MyAxMUIxO0I5N0U7MTEwNSAxMTczIDExQjE7CitCOTdGO0I5N0Y7MTEwNSAxMTczIDExQjI7Qjk3RjsxMTA1IDExNzMgMTFCMjsKK0I5ODA7Qjk4MDsxMTA1IDExNzMgMTFCMztCOTgwOzExMDUgMTE3MyAxMUIzOworQjk4MTtCOTgxOzExMDUgMTE3MyAxMUI0O0I5ODE7MTEwNSAxMTczIDExQjQ7CitCOTgyO0I5ODI7MTEwNSAxMTczIDExQjU7Qjk4MjsxMTA1IDExNzMgMTFCNTsKK0I5ODM7Qjk4MzsxMTA1IDExNzMgMTFCNjtCOTgzOzExMDUgMTE3MyAxMUI2OworQjk4NDtCOTg0OzExMDUgMTE3MyAxMUI3O0I5ODQ7MTEwNSAxMTczIDExQjc7CitCOTg1O0I5ODU7MTEwNSAxMTczIDExQjg7Qjk4NTsxMTA1IDExNzMgMTFCODsKK0I5ODY7Qjk4NjsxMTA1IDExNzMgMTFCOTtCOTg2OzExMDUgMTE3MyAxMUI5OworQjk4NztCOTg3OzExMDUgMTE3MyAxMUJBO0I5ODc7MTEwNSAxMTczIDExQkE7CitCOTg4O0I5ODg7MTEwNSAxMTczIDExQkI7Qjk4ODsxMTA1IDExNzMgMTFCQjsKK0I5ODk7Qjk4OTsxMTA1IDExNzMgMTFCQztCOTg5OzExMDUgMTE3MyAxMUJDOworQjk4QTtCOThBOzExMDUgMTE3MyAxMUJEO0I5OEE7MTEwNSAxMTczIDExQkQ7CitCOThCO0I5OEI7MTEwNSAxMTczIDExQkU7Qjk4QjsxMTA1IDExNzMgMTFCRTsKK0I5OEM7Qjk4QzsxMTA1IDExNzMgMTFCRjtCOThDOzExMDUgMTE3MyAxMUJGOworQjk4RDtCOThEOzExMDUgMTE3MyAxMUMwO0I5OEQ7MTEwNSAxMTczIDExQzA7CitCOThFO0I5OEU7MTEwNSAxMTczIDExQzE7Qjk4RTsxMTA1IDExNzMgMTFDMTsKK0I5OEY7Qjk4RjsxMTA1IDExNzMgMTFDMjtCOThGOzExMDUgMTE3MyAxMUMyOworQjk5MDtCOTkwOzExMDUgMTE3NDtCOTkwOzExMDUgMTE3NDsKK0I5OTE7Qjk5MTsxMTA1IDExNzQgMTFBODtCOTkxOzExMDUgMTE3NCAxMUE4OworQjk5MjtCOTkyOzExMDUgMTE3NCAxMUE5O0I5OTI7MTEwNSAxMTc0IDExQTk7CitCOTkzO0I5OTM7MTEwNSAxMTc0IDExQUE7Qjk5MzsxMTA1IDExNzQgMTFBQTsKK0I5OTQ7Qjk5NDsxMTA1IDExNzQgMTFBQjtCOTk0OzExMDUgMTE3NCAxMUFCOworQjk5NTtCOTk1OzExMDUgMTE3NCAxMUFDO0I5OTU7MTEwNSAxMTc0IDExQUM7CitCOTk2O0I5OTY7MTEwNSAxMTc0IDExQUQ7Qjk5NjsxMTA1IDExNzQgMTFBRDsKK0I5OTc7Qjk5NzsxMTA1IDExNzQgMTFBRTtCOTk3OzExMDUgMTE3NCAxMUFFOworQjk5ODtCOTk4OzExMDUgMTE3NCAxMUFGO0I5OTg7MTEwNSAxMTc0IDExQUY7CitCOTk5O0I5OTk7MTEwNSAxMTc0IDExQjA7Qjk5OTsxMTA1IDExNzQgMTFCMDsKK0I5OUE7Qjk5QTsxMTA1IDExNzQgMTFCMTtCOTlBOzExMDUgMTE3NCAxMUIxOworQjk5QjtCOTlCOzExMDUgMTE3NCAxMUIyO0I5OUI7MTEwNSAxMTc0IDExQjI7CitCOTlDO0I5OUM7MTEwNSAxMTc0IDExQjM7Qjk5QzsxMTA1IDExNzQgMTFCMzsKK0I5OUQ7Qjk5RDsxMTA1IDExNzQgMTFCNDtCOTlEOzExMDUgMTE3NCAxMUI0OworQjk5RTtCOTlFOzExMDUgMTE3NCAxMUI1O0I5OUU7MTEwNSAxMTc0IDExQjU7CitCOTlGO0I5OUY7MTEwNSAxMTc0IDExQjY7Qjk5RjsxMTA1IDExNzQgMTFCNjsKK0I5QTA7QjlBMDsxMTA1IDExNzQgMTFCNztCOUEwOzExMDUgMTE3NCAxMUI3OworQjlBMTtCOUExOzExMDUgMTE3NCAxMUI4O0I5QTE7MTEwNSAxMTc0IDExQjg7CitCOUEyO0I5QTI7MTEwNSAxMTc0IDExQjk7QjlBMjsxMTA1IDExNzQgMTFCOTsKK0I5QTM7QjlBMzsxMTA1IDExNzQgMTFCQTtCOUEzOzExMDUgMTE3NCAxMUJBOworQjlBNDtCOUE0OzExMDUgMTE3NCAxMUJCO0I5QTQ7MTEwNSAxMTc0IDExQkI7CitCOUE1O0I5QTU7MTEwNSAxMTc0IDExQkM7QjlBNTsxMTA1IDExNzQgMTFCQzsKK0I5QTY7QjlBNjsxMTA1IDExNzQgMTFCRDtCOUE2OzExMDUgMTE3NCAxMUJEOworQjlBNztCOUE3OzExMDUgMTE3NCAxMUJFO0I5QTc7MTEwNSAxMTc0IDExQkU7CitCOUE4O0I5QTg7MTEwNSAxMTc0IDExQkY7QjlBODsxMTA1IDExNzQgMTFCRjsKK0I5QTk7QjlBOTsxMTA1IDExNzQgMTFDMDtCOUE5OzExMDUgMTE3NCAxMUMwOworQjlBQTtCOUFBOzExMDUgMTE3NCAxMUMxO0I5QUE7MTEwNSAxMTc0IDExQzE7CitCOUFCO0I5QUI7MTEwNSAxMTc0IDExQzI7QjlBQjsxMTA1IDExNzQgMTFDMjsKK0I5QUM7QjlBQzsxMTA1IDExNzU7QjlBQzsxMTA1IDExNzU7CitCOUFEO0I5QUQ7MTEwNSAxMTc1IDExQTg7QjlBRDsxMTA1IDExNzUgMTFBODsKK0I5QUU7QjlBRTsxMTA1IDExNzUgMTFBOTtCOUFFOzExMDUgMTE3NSAxMUE5OworQjlBRjtCOUFGOzExMDUgMTE3NSAxMUFBO0I5QUY7MTEwNSAxMTc1IDExQUE7CitCOUIwO0I5QjA7MTEwNSAxMTc1IDExQUI7QjlCMDsxMTA1IDExNzUgMTFBQjsKK0I5QjE7QjlCMTsxMTA1IDExNzUgMTFBQztCOUIxOzExMDUgMTE3NSAxMUFDOworQjlCMjtCOUIyOzExMDUgMTE3NSAxMUFEO0I5QjI7MTEwNSAxMTc1IDExQUQ7CitCOUIzO0I5QjM7MTEwNSAxMTc1IDExQUU7QjlCMzsxMTA1IDExNzUgMTFBRTsKK0I5QjQ7QjlCNDsxMTA1IDExNzUgMTFBRjtCOUI0OzExMDUgMTE3NSAxMUFGOworQjlCNTtCOUI1OzExMDUgMTE3NSAxMUIwO0I5QjU7MTEwNSAxMTc1IDExQjA7CitCOUI2O0I5QjY7MTEwNSAxMTc1IDExQjE7QjlCNjsxMTA1IDExNzUgMTFCMTsKK0I5Qjc7QjlCNzsxMTA1IDExNzUgMTFCMjtCOUI3OzExMDUgMTE3NSAxMUIyOworQjlCODtCOUI4OzExMDUgMTE3NSAxMUIzO0I5Qjg7MTEwNSAxMTc1IDExQjM7CitCOUI5O0I5Qjk7MTEwNSAxMTc1IDExQjQ7QjlCOTsxMTA1IDExNzUgMTFCNDsKK0I5QkE7QjlCQTsxMTA1IDExNzUgMTFCNTtCOUJBOzExMDUgMTE3NSAxMUI1OworQjlCQjtCOUJCOzExMDUgMTE3NSAxMUI2O0I5QkI7MTEwNSAxMTc1IDExQjY7CitCOUJDO0I5QkM7MTEwNSAxMTc1IDExQjc7QjlCQzsxMTA1IDExNzUgMTFCNzsKK0I5QkQ7QjlCRDsxMTA1IDExNzUgMTFCODtCOUJEOzExMDUgMTE3NSAxMUI4OworQjlCRTtCOUJFOzExMDUgMTE3NSAxMUI5O0I5QkU7MTEwNSAxMTc1IDExQjk7CitCOUJGO0I5QkY7MTEwNSAxMTc1IDExQkE7QjlCRjsxMTA1IDExNzUgMTFCQTsKK0I5QzA7QjlDMDsxMTA1IDExNzUgMTFCQjtCOUMwOzExMDUgMTE3NSAxMUJCOworQjlDMTtCOUMxOzExMDUgMTE3NSAxMUJDO0I5QzE7MTEwNSAxMTc1IDExQkM7CitCOUMyO0I5QzI7MTEwNSAxMTc1IDExQkQ7QjlDMjsxMTA1IDExNzUgMTFCRDsKK0I5QzM7QjlDMzsxMTA1IDExNzUgMTFCRTtCOUMzOzExMDUgMTE3NSAxMUJFOworQjlDNDtCOUM0OzExMDUgMTE3NSAxMUJGO0I5QzQ7MTEwNSAxMTc1IDExQkY7CitCOUM1O0I5QzU7MTEwNSAxMTc1IDExQzA7QjlDNTsxMTA1IDExNzUgMTFDMDsKK0I5QzY7QjlDNjsxMTA1IDExNzUgMTFDMTtCOUM2OzExMDUgMTE3NSAxMUMxOworQjlDNztCOUM3OzExMDUgMTE3NSAxMUMyO0I5Qzc7MTEwNSAxMTc1IDExQzI7CitCOUM4O0I5Qzg7MTEwNiAxMTYxO0I5Qzg7MTEwNiAxMTYxOworQjlDOTtCOUM5OzExMDYgMTE2MSAxMUE4O0I5Qzk7MTEwNiAxMTYxIDExQTg7CitCOUNBO0I5Q0E7MTEwNiAxMTYxIDExQTk7QjlDQTsxMTA2IDExNjEgMTFBOTsKK0I5Q0I7QjlDQjsxMTA2IDExNjEgMTFBQTtCOUNCOzExMDYgMTE2MSAxMUFBOworQjlDQztCOUNDOzExMDYgMTE2MSAxMUFCO0I5Q0M7MTEwNiAxMTYxIDExQUI7CitCOUNEO0I5Q0Q7MTEwNiAxMTYxIDExQUM7QjlDRDsxMTA2IDExNjEgMTFBQzsKK0I5Q0U7QjlDRTsxMTA2IDExNjEgMTFBRDtCOUNFOzExMDYgMTE2MSAxMUFEOworQjlDRjtCOUNGOzExMDYgMTE2MSAxMUFFO0I5Q0Y7MTEwNiAxMTYxIDExQUU7CitCOUQwO0I5RDA7MTEwNiAxMTYxIDExQUY7QjlEMDsxMTA2IDExNjEgMTFBRjsKK0I5RDE7QjlEMTsxMTA2IDExNjEgMTFCMDtCOUQxOzExMDYgMTE2MSAxMUIwOworQjlEMjtCOUQyOzExMDYgMTE2MSAxMUIxO0I5RDI7MTEwNiAxMTYxIDExQjE7CitCOUQzO0I5RDM7MTEwNiAxMTYxIDExQjI7QjlEMzsxMTA2IDExNjEgMTFCMjsKK0I5RDQ7QjlENDsxMTA2IDExNjEgMTFCMztCOUQ0OzExMDYgMTE2MSAxMUIzOworQjlENTtCOUQ1OzExMDYgMTE2MSAxMUI0O0I5RDU7MTEwNiAxMTYxIDExQjQ7CitCOUQ2O0I5RDY7MTEwNiAxMTYxIDExQjU7QjlENjsxMTA2IDExNjEgMTFCNTsKK0I5RDc7QjlENzsxMTA2IDExNjEgMTFCNjtCOUQ3OzExMDYgMTE2MSAxMUI2OworQjlEODtCOUQ4OzExMDYgMTE2MSAxMUI3O0I5RDg7MTEwNiAxMTYxIDExQjc7CitCOUQ5O0I5RDk7MTEwNiAxMTYxIDExQjg7QjlEOTsxMTA2IDExNjEgMTFCODsKK0I5REE7QjlEQTsxMTA2IDExNjEgMTFCOTtCOURBOzExMDYgMTE2MSAxMUI5OworQjlEQjtCOURCOzExMDYgMTE2MSAxMUJBO0I5REI7MTEwNiAxMTYxIDExQkE7CitCOURDO0I5REM7MTEwNiAxMTYxIDExQkI7QjlEQzsxMTA2IDExNjEgMTFCQjsKK0I5REQ7QjlERDsxMTA2IDExNjEgMTFCQztCOUREOzExMDYgMTE2MSAxMUJDOworQjlERTtCOURFOzExMDYgMTE2MSAxMUJEO0I5REU7MTEwNiAxMTYxIDExQkQ7CitCOURGO0I5REY7MTEwNiAxMTYxIDExQkU7QjlERjsxMTA2IDExNjEgMTFCRTsKK0I5RTA7QjlFMDsxMTA2IDExNjEgMTFCRjtCOUUwOzExMDYgMTE2MSAxMUJGOworQjlFMTtCOUUxOzExMDYgMTE2MSAxMUMwO0I5RTE7MTEwNiAxMTYxIDExQzA7CitCOUUyO0I5RTI7MTEwNiAxMTYxIDExQzE7QjlFMjsxMTA2IDExNjEgMTFDMTsKK0I5RTM7QjlFMzsxMTA2IDExNjEgMTFDMjtCOUUzOzExMDYgMTE2MSAxMUMyOworQjlFNDtCOUU0OzExMDYgMTE2MjtCOUU0OzExMDYgMTE2MjsKK0I5RTU7QjlFNTsxMTA2IDExNjIgMTFBODtCOUU1OzExMDYgMTE2MiAxMUE4OworQjlFNjtCOUU2OzExMDYgMTE2MiAxMUE5O0I5RTY7MTEwNiAxMTYyIDExQTk7CitCOUU3O0I5RTc7MTEwNiAxMTYyIDExQUE7QjlFNzsxMTA2IDExNjIgMTFBQTsKK0I5RTg7QjlFODsxMTA2IDExNjIgMTFBQjtCOUU4OzExMDYgMTE2MiAxMUFCOworQjlFOTtCOUU5OzExMDYgMTE2MiAxMUFDO0I5RTk7MTEwNiAxMTYyIDExQUM7CitCOUVBO0I5RUE7MTEwNiAxMTYyIDExQUQ7QjlFQTsxMTA2IDExNjIgMTFBRDsKK0I5RUI7QjlFQjsxMTA2IDExNjIgMTFBRTtCOUVCOzExMDYgMTE2MiAxMUFFOworQjlFQztCOUVDOzExMDYgMTE2MiAxMUFGO0I5RUM7MTEwNiAxMTYyIDExQUY7CitCOUVEO0I5RUQ7MTEwNiAxMTYyIDExQjA7QjlFRDsxMTA2IDExNjIgMTFCMDsKK0I5RUU7QjlFRTsxMTA2IDExNjIgMTFCMTtCOUVFOzExMDYgMTE2MiAxMUIxOworQjlFRjtCOUVGOzExMDYgMTE2MiAxMUIyO0I5RUY7MTEwNiAxMTYyIDExQjI7CitCOUYwO0I5RjA7MTEwNiAxMTYyIDExQjM7QjlGMDsxMTA2IDExNjIgMTFCMzsKK0I5RjE7QjlGMTsxMTA2IDExNjIgMTFCNDtCOUYxOzExMDYgMTE2MiAxMUI0OworQjlGMjtCOUYyOzExMDYgMTE2MiAxMUI1O0I5RjI7MTEwNiAxMTYyIDExQjU7CitCOUYzO0I5RjM7MTEwNiAxMTYyIDExQjY7QjlGMzsxMTA2IDExNjIgMTFCNjsKK0I5RjQ7QjlGNDsxMTA2IDExNjIgMTFCNztCOUY0OzExMDYgMTE2MiAxMUI3OworQjlGNTtCOUY1OzExMDYgMTE2MiAxMUI4O0I5RjU7MTEwNiAxMTYyIDExQjg7CitCOUY2O0I5RjY7MTEwNiAxMTYyIDExQjk7QjlGNjsxMTA2IDExNjIgMTFCOTsKK0I5Rjc7QjlGNzsxMTA2IDExNjIgMTFCQTtCOUY3OzExMDYgMTE2MiAxMUJBOworQjlGODtCOUY4OzExMDYgMTE2MiAxMUJCO0I5Rjg7MTEwNiAxMTYyIDExQkI7CitCOUY5O0I5Rjk7MTEwNiAxMTYyIDExQkM7QjlGOTsxMTA2IDExNjIgMTFCQzsKK0I5RkE7QjlGQTsxMTA2IDExNjIgMTFCRDtCOUZBOzExMDYgMTE2MiAxMUJEOworQjlGQjtCOUZCOzExMDYgMTE2MiAxMUJFO0I5RkI7MTEwNiAxMTYyIDExQkU7CitCOUZDO0I5RkM7MTEwNiAxMTYyIDExQkY7QjlGQzsxMTA2IDExNjIgMTFCRjsKK0I5RkQ7QjlGRDsxMTA2IDExNjIgMTFDMDtCOUZEOzExMDYgMTE2MiAxMUMwOworQjlGRTtCOUZFOzExMDYgMTE2MiAxMUMxO0I5RkU7MTEwNiAxMTYyIDExQzE7CitCOUZGO0I5RkY7MTEwNiAxMTYyIDExQzI7QjlGRjsxMTA2IDExNjIgMTFDMjsKK0JBMDA7QkEwMDsxMTA2IDExNjM7QkEwMDsxMTA2IDExNjM7CitCQTAxO0JBMDE7MTEwNiAxMTYzIDExQTg7QkEwMTsxMTA2IDExNjMgMTFBODsKK0JBMDI7QkEwMjsxMTA2IDExNjMgMTFBOTtCQTAyOzExMDYgMTE2MyAxMUE5OworQkEwMztCQTAzOzExMDYgMTE2MyAxMUFBO0JBMDM7MTEwNiAxMTYzIDExQUE7CitCQTA0O0JBMDQ7MTEwNiAxMTYzIDExQUI7QkEwNDsxMTA2IDExNjMgMTFBQjsKK0JBMDU7QkEwNTsxMTA2IDExNjMgMTFBQztCQTA1OzExMDYgMTE2MyAxMUFDOworQkEwNjtCQTA2OzExMDYgMTE2MyAxMUFEO0JBMDY7MTEwNiAxMTYzIDExQUQ7CitCQTA3O0JBMDc7MTEwNiAxMTYzIDExQUU7QkEwNzsxMTA2IDExNjMgMTFBRTsKK0JBMDg7QkEwODsxMTA2IDExNjMgMTFBRjtCQTA4OzExMDYgMTE2MyAxMUFGOworQkEwOTtCQTA5OzExMDYgMTE2MyAxMUIwO0JBMDk7MTEwNiAxMTYzIDExQjA7CitCQTBBO0JBMEE7MTEwNiAxMTYzIDExQjE7QkEwQTsxMTA2IDExNjMgMTFCMTsKK0JBMEI7QkEwQjsxMTA2IDExNjMgMTFCMjtCQTBCOzExMDYgMTE2MyAxMUIyOworQkEwQztCQTBDOzExMDYgMTE2MyAxMUIzO0JBMEM7MTEwNiAxMTYzIDExQjM7CitCQTBEO0JBMEQ7MTEwNiAxMTYzIDExQjQ7QkEwRDsxMTA2IDExNjMgMTFCNDsKK0JBMEU7QkEwRTsxMTA2IDExNjMgMTFCNTtCQTBFOzExMDYgMTE2MyAxMUI1OworQkEwRjtCQTBGOzExMDYgMTE2MyAxMUI2O0JBMEY7MTEwNiAxMTYzIDExQjY7CitCQTEwO0JBMTA7MTEwNiAxMTYzIDExQjc7QkExMDsxMTA2IDExNjMgMTFCNzsKK0JBMTE7QkExMTsxMTA2IDExNjMgMTFCODtCQTExOzExMDYgMTE2MyAxMUI4OworQkExMjtCQTEyOzExMDYgMTE2MyAxMUI5O0JBMTI7MTEwNiAxMTYzIDExQjk7CitCQTEzO0JBMTM7MTEwNiAxMTYzIDExQkE7QkExMzsxMTA2IDExNjMgMTFCQTsKK0JBMTQ7QkExNDsxMTA2IDExNjMgMTFCQjtCQTE0OzExMDYgMTE2MyAxMUJCOworQkExNTtCQTE1OzExMDYgMTE2MyAxMUJDO0JBMTU7MTEwNiAxMTYzIDExQkM7CitCQTE2O0JBMTY7MTEwNiAxMTYzIDExQkQ7QkExNjsxMTA2IDExNjMgMTFCRDsKK0JBMTc7QkExNzsxMTA2IDExNjMgMTFCRTtCQTE3OzExMDYgMTE2MyAxMUJFOworQkExODtCQTE4OzExMDYgMTE2MyAxMUJGO0JBMTg7MTEwNiAxMTYzIDExQkY7CitCQTE5O0JBMTk7MTEwNiAxMTYzIDExQzA7QkExOTsxMTA2IDExNjMgMTFDMDsKK0JBMUE7QkExQTsxMTA2IDExNjMgMTFDMTtCQTFBOzExMDYgMTE2MyAxMUMxOworQkExQjtCQTFCOzExMDYgMTE2MyAxMUMyO0JBMUI7MTEwNiAxMTYzIDExQzI7CitCQTFDO0JBMUM7MTEwNiAxMTY0O0JBMUM7MTEwNiAxMTY0OworQkExRDtCQTFEOzExMDYgMTE2NCAxMUE4O0JBMUQ7MTEwNiAxMTY0IDExQTg7CitCQTFFO0JBMUU7MTEwNiAxMTY0IDExQTk7QkExRTsxMTA2IDExNjQgMTFBOTsKK0JBMUY7QkExRjsxMTA2IDExNjQgMTFBQTtCQTFGOzExMDYgMTE2NCAxMUFBOworQkEyMDtCQTIwOzExMDYgMTE2NCAxMUFCO0JBMjA7MTEwNiAxMTY0IDExQUI7CitCQTIxO0JBMjE7MTEwNiAxMTY0IDExQUM7QkEyMTsxMTA2IDExNjQgMTFBQzsKK0JBMjI7QkEyMjsxMTA2IDExNjQgMTFBRDtCQTIyOzExMDYgMTE2NCAxMUFEOworQkEyMztCQTIzOzExMDYgMTE2NCAxMUFFO0JBMjM7MTEwNiAxMTY0IDExQUU7CitCQTI0O0JBMjQ7MTEwNiAxMTY0IDExQUY7QkEyNDsxMTA2IDExNjQgMTFBRjsKK0JBMjU7QkEyNTsxMTA2IDExNjQgMTFCMDtCQTI1OzExMDYgMTE2NCAxMUIwOworQkEyNjtCQTI2OzExMDYgMTE2NCAxMUIxO0JBMjY7MTEwNiAxMTY0IDExQjE7CitCQTI3O0JBMjc7MTEwNiAxMTY0IDExQjI7QkEyNzsxMTA2IDExNjQgMTFCMjsKK0JBMjg7QkEyODsxMTA2IDExNjQgMTFCMztCQTI4OzExMDYgMTE2NCAxMUIzOworQkEyOTtCQTI5OzExMDYgMTE2NCAxMUI0O0JBMjk7MTEwNiAxMTY0IDExQjQ7CitCQTJBO0JBMkE7MTEwNiAxMTY0IDExQjU7QkEyQTsxMTA2IDExNjQgMTFCNTsKK0JBMkI7QkEyQjsxMTA2IDExNjQgMTFCNjtCQTJCOzExMDYgMTE2NCAxMUI2OworQkEyQztCQTJDOzExMDYgMTE2NCAxMUI3O0JBMkM7MTEwNiAxMTY0IDExQjc7CitCQTJEO0JBMkQ7MTEwNiAxMTY0IDExQjg7QkEyRDsxMTA2IDExNjQgMTFCODsKK0JBMkU7QkEyRTsxMTA2IDExNjQgMTFCOTtCQTJFOzExMDYgMTE2NCAxMUI5OworQkEyRjtCQTJGOzExMDYgMTE2NCAxMUJBO0JBMkY7MTEwNiAxMTY0IDExQkE7CitCQTMwO0JBMzA7MTEwNiAxMTY0IDExQkI7QkEzMDsxMTA2IDExNjQgMTFCQjsKK0JBMzE7QkEzMTsxMTA2IDExNjQgMTFCQztCQTMxOzExMDYgMTE2NCAxMUJDOworQkEzMjtCQTMyOzExMDYgMTE2NCAxMUJEO0JBMzI7MTEwNiAxMTY0IDExQkQ7CitCQTMzO0JBMzM7MTEwNiAxMTY0IDExQkU7QkEzMzsxMTA2IDExNjQgMTFCRTsKK0JBMzQ7QkEzNDsxMTA2IDExNjQgMTFCRjtCQTM0OzExMDYgMTE2NCAxMUJGOworQkEzNTtCQTM1OzExMDYgMTE2NCAxMUMwO0JBMzU7MTEwNiAxMTY0IDExQzA7CitCQTM2O0JBMzY7MTEwNiAxMTY0IDExQzE7QkEzNjsxMTA2IDExNjQgMTFDMTsKK0JBMzc7QkEzNzsxMTA2IDExNjQgMTFDMjtCQTM3OzExMDYgMTE2NCAxMUMyOworQkEzODtCQTM4OzExMDYgMTE2NTtCQTM4OzExMDYgMTE2NTsKK0JBMzk7QkEzOTsxMTA2IDExNjUgMTFBODtCQTM5OzExMDYgMTE2NSAxMUE4OworQkEzQTtCQTNBOzExMDYgMTE2NSAxMUE5O0JBM0E7MTEwNiAxMTY1IDExQTk7CitCQTNCO0JBM0I7MTEwNiAxMTY1IDExQUE7QkEzQjsxMTA2IDExNjUgMTFBQTsKK0JBM0M7QkEzQzsxMTA2IDExNjUgMTFBQjtCQTNDOzExMDYgMTE2NSAxMUFCOworQkEzRDtCQTNEOzExMDYgMTE2NSAxMUFDO0JBM0Q7MTEwNiAxMTY1IDExQUM7CitCQTNFO0JBM0U7MTEwNiAxMTY1IDExQUQ7QkEzRTsxMTA2IDExNjUgMTFBRDsKK0JBM0Y7QkEzRjsxMTA2IDExNjUgMTFBRTtCQTNGOzExMDYgMTE2NSAxMUFFOworQkE0MDtCQTQwOzExMDYgMTE2NSAxMUFGO0JBNDA7MTEwNiAxMTY1IDExQUY7CitCQTQxO0JBNDE7MTEwNiAxMTY1IDExQjA7QkE0MTsxMTA2IDExNjUgMTFCMDsKK0JBNDI7QkE0MjsxMTA2IDExNjUgMTFCMTtCQTQyOzExMDYgMTE2NSAxMUIxOworQkE0MztCQTQzOzExMDYgMTE2NSAxMUIyO0JBNDM7MTEwNiAxMTY1IDExQjI7CitCQTQ0O0JBNDQ7MTEwNiAxMTY1IDExQjM7QkE0NDsxMTA2IDExNjUgMTFCMzsKK0JBNDU7QkE0NTsxMTA2IDExNjUgMTFCNDtCQTQ1OzExMDYgMTE2NSAxMUI0OworQkE0NjtCQTQ2OzExMDYgMTE2NSAxMUI1O0JBNDY7MTEwNiAxMTY1IDExQjU7CitCQTQ3O0JBNDc7MTEwNiAxMTY1IDExQjY7QkE0NzsxMTA2IDExNjUgMTFCNjsKK0JBNDg7QkE0ODsxMTA2IDExNjUgMTFCNztCQTQ4OzExMDYgMTE2NSAxMUI3OworQkE0OTtCQTQ5OzExMDYgMTE2NSAxMUI4O0JBNDk7MTEwNiAxMTY1IDExQjg7CitCQTRBO0JBNEE7MTEwNiAxMTY1IDExQjk7QkE0QTsxMTA2IDExNjUgMTFCOTsKK0JBNEI7QkE0QjsxMTA2IDExNjUgMTFCQTtCQTRCOzExMDYgMTE2NSAxMUJBOworQkE0QztCQTRDOzExMDYgMTE2NSAxMUJCO0JBNEM7MTEwNiAxMTY1IDExQkI7CitCQTREO0JBNEQ7MTEwNiAxMTY1IDExQkM7QkE0RDsxMTA2IDExNjUgMTFCQzsKK0JBNEU7QkE0RTsxMTA2IDExNjUgMTFCRDtCQTRFOzExMDYgMTE2NSAxMUJEOworQkE0RjtCQTRGOzExMDYgMTE2NSAxMUJFO0JBNEY7MTEwNiAxMTY1IDExQkU7CitCQTUwO0JBNTA7MTEwNiAxMTY1IDExQkY7QkE1MDsxMTA2IDExNjUgMTFCRjsKK0JBNTE7QkE1MTsxMTA2IDExNjUgMTFDMDtCQTUxOzExMDYgMTE2NSAxMUMwOworQkE1MjtCQTUyOzExMDYgMTE2NSAxMUMxO0JBNTI7MTEwNiAxMTY1IDExQzE7CitCQTUzO0JBNTM7MTEwNiAxMTY1IDExQzI7QkE1MzsxMTA2IDExNjUgMTFDMjsKK0JBNTQ7QkE1NDsxMTA2IDExNjY7QkE1NDsxMTA2IDExNjY7CitCQTU1O0JBNTU7MTEwNiAxMTY2IDExQTg7QkE1NTsxMTA2IDExNjYgMTFBODsKK0JBNTY7QkE1NjsxMTA2IDExNjYgMTFBOTtCQTU2OzExMDYgMTE2NiAxMUE5OworQkE1NztCQTU3OzExMDYgMTE2NiAxMUFBO0JBNTc7MTEwNiAxMTY2IDExQUE7CitCQTU4O0JBNTg7MTEwNiAxMTY2IDExQUI7QkE1ODsxMTA2IDExNjYgMTFBQjsKK0JBNTk7QkE1OTsxMTA2IDExNjYgMTFBQztCQTU5OzExMDYgMTE2NiAxMUFDOworQkE1QTtCQTVBOzExMDYgMTE2NiAxMUFEO0JBNUE7MTEwNiAxMTY2IDExQUQ7CitCQTVCO0JBNUI7MTEwNiAxMTY2IDExQUU7QkE1QjsxMTA2IDExNjYgMTFBRTsKK0JBNUM7QkE1QzsxMTA2IDExNjYgMTFBRjtCQTVDOzExMDYgMTE2NiAxMUFGOworQkE1RDtCQTVEOzExMDYgMTE2NiAxMUIwO0JBNUQ7MTEwNiAxMTY2IDExQjA7CitCQTVFO0JBNUU7MTEwNiAxMTY2IDExQjE7QkE1RTsxMTA2IDExNjYgMTFCMTsKK0JBNUY7QkE1RjsxMTA2IDExNjYgMTFCMjtCQTVGOzExMDYgMTE2NiAxMUIyOworQkE2MDtCQTYwOzExMDYgMTE2NiAxMUIzO0JBNjA7MTEwNiAxMTY2IDExQjM7CitCQTYxO0JBNjE7MTEwNiAxMTY2IDExQjQ7QkE2MTsxMTA2IDExNjYgMTFCNDsKK0JBNjI7QkE2MjsxMTA2IDExNjYgMTFCNTtCQTYyOzExMDYgMTE2NiAxMUI1OworQkE2MztCQTYzOzExMDYgMTE2NiAxMUI2O0JBNjM7MTEwNiAxMTY2IDExQjY7CitCQTY0O0JBNjQ7MTEwNiAxMTY2IDExQjc7QkE2NDsxMTA2IDExNjYgMTFCNzsKK0JBNjU7QkE2NTsxMTA2IDExNjYgMTFCODtCQTY1OzExMDYgMTE2NiAxMUI4OworQkE2NjtCQTY2OzExMDYgMTE2NiAxMUI5O0JBNjY7MTEwNiAxMTY2IDExQjk7CitCQTY3O0JBNjc7MTEwNiAxMTY2IDExQkE7QkE2NzsxMTA2IDExNjYgMTFCQTsKK0JBNjg7QkE2ODsxMTA2IDExNjYgMTFCQjtCQTY4OzExMDYgMTE2NiAxMUJCOworQkE2OTtCQTY5OzExMDYgMTE2NiAxMUJDO0JBNjk7MTEwNiAxMTY2IDExQkM7CitCQTZBO0JBNkE7MTEwNiAxMTY2IDExQkQ7QkE2QTsxMTA2IDExNjYgMTFCRDsKK0JBNkI7QkE2QjsxMTA2IDExNjYgMTFCRTtCQTZCOzExMDYgMTE2NiAxMUJFOworQkE2QztCQTZDOzExMDYgMTE2NiAxMUJGO0JBNkM7MTEwNiAxMTY2IDExQkY7CitCQTZEO0JBNkQ7MTEwNiAxMTY2IDExQzA7QkE2RDsxMTA2IDExNjYgMTFDMDsKK0JBNkU7QkE2RTsxMTA2IDExNjYgMTFDMTtCQTZFOzExMDYgMTE2NiAxMUMxOworQkE2RjtCQTZGOzExMDYgMTE2NiAxMUMyO0JBNkY7MTEwNiAxMTY2IDExQzI7CitCQTcwO0JBNzA7MTEwNiAxMTY3O0JBNzA7MTEwNiAxMTY3OworQkE3MTtCQTcxOzExMDYgMTE2NyAxMUE4O0JBNzE7MTEwNiAxMTY3IDExQTg7CitCQTcyO0JBNzI7MTEwNiAxMTY3IDExQTk7QkE3MjsxMTA2IDExNjcgMTFBOTsKK0JBNzM7QkE3MzsxMTA2IDExNjcgMTFBQTtCQTczOzExMDYgMTE2NyAxMUFBOworQkE3NDtCQTc0OzExMDYgMTE2NyAxMUFCO0JBNzQ7MTEwNiAxMTY3IDExQUI7CitCQTc1O0JBNzU7MTEwNiAxMTY3IDExQUM7QkE3NTsxMTA2IDExNjcgMTFBQzsKK0JBNzY7QkE3NjsxMTA2IDExNjcgMTFBRDtCQTc2OzExMDYgMTE2NyAxMUFEOworQkE3NztCQTc3OzExMDYgMTE2NyAxMUFFO0JBNzc7MTEwNiAxMTY3IDExQUU7CitCQTc4O0JBNzg7MTEwNiAxMTY3IDExQUY7QkE3ODsxMTA2IDExNjcgMTFBRjsKK0JBNzk7QkE3OTsxMTA2IDExNjcgMTFCMDtCQTc5OzExMDYgMTE2NyAxMUIwOworQkE3QTtCQTdBOzExMDYgMTE2NyAxMUIxO0JBN0E7MTEwNiAxMTY3IDExQjE7CitCQTdCO0JBN0I7MTEwNiAxMTY3IDExQjI7QkE3QjsxMTA2IDExNjcgMTFCMjsKK0JBN0M7QkE3QzsxMTA2IDExNjcgMTFCMztCQTdDOzExMDYgMTE2NyAxMUIzOworQkE3RDtCQTdEOzExMDYgMTE2NyAxMUI0O0JBN0Q7MTEwNiAxMTY3IDExQjQ7CitCQTdFO0JBN0U7MTEwNiAxMTY3IDExQjU7QkE3RTsxMTA2IDExNjcgMTFCNTsKK0JBN0Y7QkE3RjsxMTA2IDExNjcgMTFCNjtCQTdGOzExMDYgMTE2NyAxMUI2OworQkE4MDtCQTgwOzExMDYgMTE2NyAxMUI3O0JBODA7MTEwNiAxMTY3IDExQjc7CitCQTgxO0JBODE7MTEwNiAxMTY3IDExQjg7QkE4MTsxMTA2IDExNjcgMTFCODsKK0JBODI7QkE4MjsxMTA2IDExNjcgMTFCOTtCQTgyOzExMDYgMTE2NyAxMUI5OworQkE4MztCQTgzOzExMDYgMTE2NyAxMUJBO0JBODM7MTEwNiAxMTY3IDExQkE7CitCQTg0O0JBODQ7MTEwNiAxMTY3IDExQkI7QkE4NDsxMTA2IDExNjcgMTFCQjsKK0JBODU7QkE4NTsxMTA2IDExNjcgMTFCQztCQTg1OzExMDYgMTE2NyAxMUJDOworQkE4NjtCQTg2OzExMDYgMTE2NyAxMUJEO0JBODY7MTEwNiAxMTY3IDExQkQ7CitCQTg3O0JBODc7MTEwNiAxMTY3IDExQkU7QkE4NzsxMTA2IDExNjcgMTFCRTsKK0JBODg7QkE4ODsxMTA2IDExNjcgMTFCRjtCQTg4OzExMDYgMTE2NyAxMUJGOworQkE4OTtCQTg5OzExMDYgMTE2NyAxMUMwO0JBODk7MTEwNiAxMTY3IDExQzA7CitCQThBO0JBOEE7MTEwNiAxMTY3IDExQzE7QkE4QTsxMTA2IDExNjcgMTFDMTsKK0JBOEI7QkE4QjsxMTA2IDExNjcgMTFDMjtCQThCOzExMDYgMTE2NyAxMUMyOworQkE4QztCQThDOzExMDYgMTE2ODtCQThDOzExMDYgMTE2ODsKK0JBOEQ7QkE4RDsxMTA2IDExNjggMTFBODtCQThEOzExMDYgMTE2OCAxMUE4OworQkE4RTtCQThFOzExMDYgMTE2OCAxMUE5O0JBOEU7MTEwNiAxMTY4IDExQTk7CitCQThGO0JBOEY7MTEwNiAxMTY4IDExQUE7QkE4RjsxMTA2IDExNjggMTFBQTsKK0JBOTA7QkE5MDsxMTA2IDExNjggMTFBQjtCQTkwOzExMDYgMTE2OCAxMUFCOworQkE5MTtCQTkxOzExMDYgMTE2OCAxMUFDO0JBOTE7MTEwNiAxMTY4IDExQUM7CitCQTkyO0JBOTI7MTEwNiAxMTY4IDExQUQ7QkE5MjsxMTA2IDExNjggMTFBRDsKK0JBOTM7QkE5MzsxMTA2IDExNjggMTFBRTtCQTkzOzExMDYgMTE2OCAxMUFFOworQkE5NDtCQTk0OzExMDYgMTE2OCAxMUFGO0JBOTQ7MTEwNiAxMTY4IDExQUY7CitCQTk1O0JBOTU7MTEwNiAxMTY4IDExQjA7QkE5NTsxMTA2IDExNjggMTFCMDsKK0JBOTY7QkE5NjsxMTA2IDExNjggMTFCMTtCQTk2OzExMDYgMTE2OCAxMUIxOworQkE5NztCQTk3OzExMDYgMTE2OCAxMUIyO0JBOTc7MTEwNiAxMTY4IDExQjI7CitCQTk4O0JBOTg7MTEwNiAxMTY4IDExQjM7QkE5ODsxMTA2IDExNjggMTFCMzsKK0JBOTk7QkE5OTsxMTA2IDExNjggMTFCNDtCQTk5OzExMDYgMTE2OCAxMUI0OworQkE5QTtCQTlBOzExMDYgMTE2OCAxMUI1O0JBOUE7MTEwNiAxMTY4IDExQjU7CitCQTlCO0JBOUI7MTEwNiAxMTY4IDExQjY7QkE5QjsxMTA2IDExNjggMTFCNjsKK0JBOUM7QkE5QzsxMTA2IDExNjggMTFCNztCQTlDOzExMDYgMTE2OCAxMUI3OworQkE5RDtCQTlEOzExMDYgMTE2OCAxMUI4O0JBOUQ7MTEwNiAxMTY4IDExQjg7CitCQTlFO0JBOUU7MTEwNiAxMTY4IDExQjk7QkE5RTsxMTA2IDExNjggMTFCOTsKK0JBOUY7QkE5RjsxMTA2IDExNjggMTFCQTtCQTlGOzExMDYgMTE2OCAxMUJBOworQkFBMDtCQUEwOzExMDYgMTE2OCAxMUJCO0JBQTA7MTEwNiAxMTY4IDExQkI7CitCQUExO0JBQTE7MTEwNiAxMTY4IDExQkM7QkFBMTsxMTA2IDExNjggMTFCQzsKK0JBQTI7QkFBMjsxMTA2IDExNjggMTFCRDtCQUEyOzExMDYgMTE2OCAxMUJEOworQkFBMztCQUEzOzExMDYgMTE2OCAxMUJFO0JBQTM7MTEwNiAxMTY4IDExQkU7CitCQUE0O0JBQTQ7MTEwNiAxMTY4IDExQkY7QkFBNDsxMTA2IDExNjggMTFCRjsKK0JBQTU7QkFBNTsxMTA2IDExNjggMTFDMDtCQUE1OzExMDYgMTE2OCAxMUMwOworQkFBNjtCQUE2OzExMDYgMTE2OCAxMUMxO0JBQTY7MTEwNiAxMTY4IDExQzE7CitCQUE3O0JBQTc7MTEwNiAxMTY4IDExQzI7QkFBNzsxMTA2IDExNjggMTFDMjsKK0JBQTg7QkFBODsxMTA2IDExNjk7QkFBODsxMTA2IDExNjk7CitCQUE5O0JBQTk7MTEwNiAxMTY5IDExQTg7QkFBOTsxMTA2IDExNjkgMTFBODsKK0JBQUE7QkFBQTsxMTA2IDExNjkgMTFBOTtCQUFBOzExMDYgMTE2OSAxMUE5OworQkFBQjtCQUFCOzExMDYgMTE2OSAxMUFBO0JBQUI7MTEwNiAxMTY5IDExQUE7CitCQUFDO0JBQUM7MTEwNiAxMTY5IDExQUI7QkFBQzsxMTA2IDExNjkgMTFBQjsKK0JBQUQ7QkFBRDsxMTA2IDExNjkgMTFBQztCQUFEOzExMDYgMTE2OSAxMUFDOworQkFBRTtCQUFFOzExMDYgMTE2OSAxMUFEO0JBQUU7MTEwNiAxMTY5IDExQUQ7CitCQUFGO0JBQUY7MTEwNiAxMTY5IDExQUU7QkFBRjsxMTA2IDExNjkgMTFBRTsKK0JBQjA7QkFCMDsxMTA2IDExNjkgMTFBRjtCQUIwOzExMDYgMTE2OSAxMUFGOworQkFCMTtCQUIxOzExMDYgMTE2OSAxMUIwO0JBQjE7MTEwNiAxMTY5IDExQjA7CitCQUIyO0JBQjI7MTEwNiAxMTY5IDExQjE7QkFCMjsxMTA2IDExNjkgMTFCMTsKK0JBQjM7QkFCMzsxMTA2IDExNjkgMTFCMjtCQUIzOzExMDYgMTE2OSAxMUIyOworQkFCNDtCQUI0OzExMDYgMTE2OSAxMUIzO0JBQjQ7MTEwNiAxMTY5IDExQjM7CitCQUI1O0JBQjU7MTEwNiAxMTY5IDExQjQ7QkFCNTsxMTA2IDExNjkgMTFCNDsKK0JBQjY7QkFCNjsxMTA2IDExNjkgMTFCNTtCQUI2OzExMDYgMTE2OSAxMUI1OworQkFCNztCQUI3OzExMDYgMTE2OSAxMUI2O0JBQjc7MTEwNiAxMTY5IDExQjY7CitCQUI4O0JBQjg7MTEwNiAxMTY5IDExQjc7QkFCODsxMTA2IDExNjkgMTFCNzsKK0JBQjk7QkFCOTsxMTA2IDExNjkgMTFCODtCQUI5OzExMDYgMTE2OSAxMUI4OworQkFCQTtCQUJBOzExMDYgMTE2OSAxMUI5O0JBQkE7MTEwNiAxMTY5IDExQjk7CitCQUJCO0JBQkI7MTEwNiAxMTY5IDExQkE7QkFCQjsxMTA2IDExNjkgMTFCQTsKK0JBQkM7QkFCQzsxMTA2IDExNjkgMTFCQjtCQUJDOzExMDYgMTE2OSAxMUJCOworQkFCRDtCQUJEOzExMDYgMTE2OSAxMUJDO0JBQkQ7MTEwNiAxMTY5IDExQkM7CitCQUJFO0JBQkU7MTEwNiAxMTY5IDExQkQ7QkFCRTsxMTA2IDExNjkgMTFCRDsKK0JBQkY7QkFCRjsxMTA2IDExNjkgMTFCRTtCQUJGOzExMDYgMTE2OSAxMUJFOworQkFDMDtCQUMwOzExMDYgMTE2OSAxMUJGO0JBQzA7MTEwNiAxMTY5IDExQkY7CitCQUMxO0JBQzE7MTEwNiAxMTY5IDExQzA7QkFDMTsxMTA2IDExNjkgMTFDMDsKK0JBQzI7QkFDMjsxMTA2IDExNjkgMTFDMTtCQUMyOzExMDYgMTE2OSAxMUMxOworQkFDMztCQUMzOzExMDYgMTE2OSAxMUMyO0JBQzM7MTEwNiAxMTY5IDExQzI7CitCQUM0O0JBQzQ7MTEwNiAxMTZBO0JBQzQ7MTEwNiAxMTZBOworQkFDNTtCQUM1OzExMDYgMTE2QSAxMUE4O0JBQzU7MTEwNiAxMTZBIDExQTg7CitCQUM2O0JBQzY7MTEwNiAxMTZBIDExQTk7QkFDNjsxMTA2IDExNkEgMTFBOTsKK0JBQzc7QkFDNzsxMTA2IDExNkEgMTFBQTtCQUM3OzExMDYgMTE2QSAxMUFBOworQkFDODtCQUM4OzExMDYgMTE2QSAxMUFCO0JBQzg7MTEwNiAxMTZBIDExQUI7CitCQUM5O0JBQzk7MTEwNiAxMTZBIDExQUM7QkFDOTsxMTA2IDExNkEgMTFBQzsKK0JBQ0E7QkFDQTsxMTA2IDExNkEgMTFBRDtCQUNBOzExMDYgMTE2QSAxMUFEOworQkFDQjtCQUNCOzExMDYgMTE2QSAxMUFFO0JBQ0I7MTEwNiAxMTZBIDExQUU7CitCQUNDO0JBQ0M7MTEwNiAxMTZBIDExQUY7QkFDQzsxMTA2IDExNkEgMTFBRjsKK0JBQ0Q7QkFDRDsxMTA2IDExNkEgMTFCMDtCQUNEOzExMDYgMTE2QSAxMUIwOworQkFDRTtCQUNFOzExMDYgMTE2QSAxMUIxO0JBQ0U7MTEwNiAxMTZBIDExQjE7CitCQUNGO0JBQ0Y7MTEwNiAxMTZBIDExQjI7QkFDRjsxMTA2IDExNkEgMTFCMjsKK0JBRDA7QkFEMDsxMTA2IDExNkEgMTFCMztCQUQwOzExMDYgMTE2QSAxMUIzOworQkFEMTtCQUQxOzExMDYgMTE2QSAxMUI0O0JBRDE7MTEwNiAxMTZBIDExQjQ7CitCQUQyO0JBRDI7MTEwNiAxMTZBIDExQjU7QkFEMjsxMTA2IDExNkEgMTFCNTsKK0JBRDM7QkFEMzsxMTA2IDExNkEgMTFCNjtCQUQzOzExMDYgMTE2QSAxMUI2OworQkFENDtCQUQ0OzExMDYgMTE2QSAxMUI3O0JBRDQ7MTEwNiAxMTZBIDExQjc7CitCQUQ1O0JBRDU7MTEwNiAxMTZBIDExQjg7QkFENTsxMTA2IDExNkEgMTFCODsKK0JBRDY7QkFENjsxMTA2IDExNkEgMTFCOTtCQUQ2OzExMDYgMTE2QSAxMUI5OworQkFENztCQUQ3OzExMDYgMTE2QSAxMUJBO0JBRDc7MTEwNiAxMTZBIDExQkE7CitCQUQ4O0JBRDg7MTEwNiAxMTZBIDExQkI7QkFEODsxMTA2IDExNkEgMTFCQjsKK0JBRDk7QkFEOTsxMTA2IDExNkEgMTFCQztCQUQ5OzExMDYgMTE2QSAxMUJDOworQkFEQTtCQURBOzExMDYgMTE2QSAxMUJEO0JBREE7MTEwNiAxMTZBIDExQkQ7CitCQURCO0JBREI7MTEwNiAxMTZBIDExQkU7QkFEQjsxMTA2IDExNkEgMTFCRTsKK0JBREM7QkFEQzsxMTA2IDExNkEgMTFCRjtCQURDOzExMDYgMTE2QSAxMUJGOworQkFERDtCQUREOzExMDYgMTE2QSAxMUMwO0JBREQ7MTEwNiAxMTZBIDExQzA7CitCQURFO0JBREU7MTEwNiAxMTZBIDExQzE7QkFERTsxMTA2IDExNkEgMTFDMTsKK0JBREY7QkFERjsxMTA2IDExNkEgMTFDMjtCQURGOzExMDYgMTE2QSAxMUMyOworQkFFMDtCQUUwOzExMDYgMTE2QjtCQUUwOzExMDYgMTE2QjsKK0JBRTE7QkFFMTsxMTA2IDExNkIgMTFBODtCQUUxOzExMDYgMTE2QiAxMUE4OworQkFFMjtCQUUyOzExMDYgMTE2QiAxMUE5O0JBRTI7MTEwNiAxMTZCIDExQTk7CitCQUUzO0JBRTM7MTEwNiAxMTZCIDExQUE7QkFFMzsxMTA2IDExNkIgMTFBQTsKK0JBRTQ7QkFFNDsxMTA2IDExNkIgMTFBQjtCQUU0OzExMDYgMTE2QiAxMUFCOworQkFFNTtCQUU1OzExMDYgMTE2QiAxMUFDO0JBRTU7MTEwNiAxMTZCIDExQUM7CitCQUU2O0JBRTY7MTEwNiAxMTZCIDExQUQ7QkFFNjsxMTA2IDExNkIgMTFBRDsKK0JBRTc7QkFFNzsxMTA2IDExNkIgMTFBRTtCQUU3OzExMDYgMTE2QiAxMUFFOworQkFFODtCQUU4OzExMDYgMTE2QiAxMUFGO0JBRTg7MTEwNiAxMTZCIDExQUY7CitCQUU5O0JBRTk7MTEwNiAxMTZCIDExQjA7QkFFOTsxMTA2IDExNkIgMTFCMDsKK0JBRUE7QkFFQTsxMTA2IDExNkIgMTFCMTtCQUVBOzExMDYgMTE2QiAxMUIxOworQkFFQjtCQUVCOzExMDYgMTE2QiAxMUIyO0JBRUI7MTEwNiAxMTZCIDExQjI7CitCQUVDO0JBRUM7MTEwNiAxMTZCIDExQjM7QkFFQzsxMTA2IDExNkIgMTFCMzsKK0JBRUQ7QkFFRDsxMTA2IDExNkIgMTFCNDtCQUVEOzExMDYgMTE2QiAxMUI0OworQkFFRTtCQUVFOzExMDYgMTE2QiAxMUI1O0JBRUU7MTEwNiAxMTZCIDExQjU7CitCQUVGO0JBRUY7MTEwNiAxMTZCIDExQjY7QkFFRjsxMTA2IDExNkIgMTFCNjsKK0JBRjA7QkFGMDsxMTA2IDExNkIgMTFCNztCQUYwOzExMDYgMTE2QiAxMUI3OworQkFGMTtCQUYxOzExMDYgMTE2QiAxMUI4O0JBRjE7MTEwNiAxMTZCIDExQjg7CitCQUYyO0JBRjI7MTEwNiAxMTZCIDExQjk7QkFGMjsxMTA2IDExNkIgMTFCOTsKK0JBRjM7QkFGMzsxMTA2IDExNkIgMTFCQTtCQUYzOzExMDYgMTE2QiAxMUJBOworQkFGNDtCQUY0OzExMDYgMTE2QiAxMUJCO0JBRjQ7MTEwNiAxMTZCIDExQkI7CitCQUY1O0JBRjU7MTEwNiAxMTZCIDExQkM7QkFGNTsxMTA2IDExNkIgMTFCQzsKK0JBRjY7QkFGNjsxMTA2IDExNkIgMTFCRDtCQUY2OzExMDYgMTE2QiAxMUJEOworQkFGNztCQUY3OzExMDYgMTE2QiAxMUJFO0JBRjc7MTEwNiAxMTZCIDExQkU7CitCQUY4O0JBRjg7MTEwNiAxMTZCIDExQkY7QkFGODsxMTA2IDExNkIgMTFCRjsKK0JBRjk7QkFGOTsxMTA2IDExNkIgMTFDMDtCQUY5OzExMDYgMTE2QiAxMUMwOworQkFGQTtCQUZBOzExMDYgMTE2QiAxMUMxO0JBRkE7MTEwNiAxMTZCIDExQzE7CitCQUZCO0JBRkI7MTEwNiAxMTZCIDExQzI7QkFGQjsxMTA2IDExNkIgMTFDMjsKK0JBRkM7QkFGQzsxMTA2IDExNkM7QkFGQzsxMTA2IDExNkM7CitCQUZEO0JBRkQ7MTEwNiAxMTZDIDExQTg7QkFGRDsxMTA2IDExNkMgMTFBODsKK0JBRkU7QkFGRTsxMTA2IDExNkMgMTFBOTtCQUZFOzExMDYgMTE2QyAxMUE5OworQkFGRjtCQUZGOzExMDYgMTE2QyAxMUFBO0JBRkY7MTEwNiAxMTZDIDExQUE7CitCQjAwO0JCMDA7MTEwNiAxMTZDIDExQUI7QkIwMDsxMTA2IDExNkMgMTFBQjsKK0JCMDE7QkIwMTsxMTA2IDExNkMgMTFBQztCQjAxOzExMDYgMTE2QyAxMUFDOworQkIwMjtCQjAyOzExMDYgMTE2QyAxMUFEO0JCMDI7MTEwNiAxMTZDIDExQUQ7CitCQjAzO0JCMDM7MTEwNiAxMTZDIDExQUU7QkIwMzsxMTA2IDExNkMgMTFBRTsKK0JCMDQ7QkIwNDsxMTA2IDExNkMgMTFBRjtCQjA0OzExMDYgMTE2QyAxMUFGOworQkIwNTtCQjA1OzExMDYgMTE2QyAxMUIwO0JCMDU7MTEwNiAxMTZDIDExQjA7CitCQjA2O0JCMDY7MTEwNiAxMTZDIDExQjE7QkIwNjsxMTA2IDExNkMgMTFCMTsKK0JCMDc7QkIwNzsxMTA2IDExNkMgMTFCMjtCQjA3OzExMDYgMTE2QyAxMUIyOworQkIwODtCQjA4OzExMDYgMTE2QyAxMUIzO0JCMDg7MTEwNiAxMTZDIDExQjM7CitCQjA5O0JCMDk7MTEwNiAxMTZDIDExQjQ7QkIwOTsxMTA2IDExNkMgMTFCNDsKK0JCMEE7QkIwQTsxMTA2IDExNkMgMTFCNTtCQjBBOzExMDYgMTE2QyAxMUI1OworQkIwQjtCQjBCOzExMDYgMTE2QyAxMUI2O0JCMEI7MTEwNiAxMTZDIDExQjY7CitCQjBDO0JCMEM7MTEwNiAxMTZDIDExQjc7QkIwQzsxMTA2IDExNkMgMTFCNzsKK0JCMEQ7QkIwRDsxMTA2IDExNkMgMTFCODtCQjBEOzExMDYgMTE2QyAxMUI4OworQkIwRTtCQjBFOzExMDYgMTE2QyAxMUI5O0JCMEU7MTEwNiAxMTZDIDExQjk7CitCQjBGO0JCMEY7MTEwNiAxMTZDIDExQkE7QkIwRjsxMTA2IDExNkMgMTFCQTsKK0JCMTA7QkIxMDsxMTA2IDExNkMgMTFCQjtCQjEwOzExMDYgMTE2QyAxMUJCOworQkIxMTtCQjExOzExMDYgMTE2QyAxMUJDO0JCMTE7MTEwNiAxMTZDIDExQkM7CitCQjEyO0JCMTI7MTEwNiAxMTZDIDExQkQ7QkIxMjsxMTA2IDExNkMgMTFCRDsKK0JCMTM7QkIxMzsxMTA2IDExNkMgMTFCRTtCQjEzOzExMDYgMTE2QyAxMUJFOworQkIxNDtCQjE0OzExMDYgMTE2QyAxMUJGO0JCMTQ7MTEwNiAxMTZDIDExQkY7CitCQjE1O0JCMTU7MTEwNiAxMTZDIDExQzA7QkIxNTsxMTA2IDExNkMgMTFDMDsKK0JCMTY7QkIxNjsxMTA2IDExNkMgMTFDMTtCQjE2OzExMDYgMTE2QyAxMUMxOworQkIxNztCQjE3OzExMDYgMTE2QyAxMUMyO0JCMTc7MTEwNiAxMTZDIDExQzI7CitCQjE4O0JCMTg7MTEwNiAxMTZEO0JCMTg7MTEwNiAxMTZEOworQkIxOTtCQjE5OzExMDYgMTE2RCAxMUE4O0JCMTk7MTEwNiAxMTZEIDExQTg7CitCQjFBO0JCMUE7MTEwNiAxMTZEIDExQTk7QkIxQTsxMTA2IDExNkQgMTFBOTsKK0JCMUI7QkIxQjsxMTA2IDExNkQgMTFBQTtCQjFCOzExMDYgMTE2RCAxMUFBOworQkIxQztCQjFDOzExMDYgMTE2RCAxMUFCO0JCMUM7MTEwNiAxMTZEIDExQUI7CitCQjFEO0JCMUQ7MTEwNiAxMTZEIDExQUM7QkIxRDsxMTA2IDExNkQgMTFBQzsKK0JCMUU7QkIxRTsxMTA2IDExNkQgMTFBRDtCQjFFOzExMDYgMTE2RCAxMUFEOworQkIxRjtCQjFGOzExMDYgMTE2RCAxMUFFO0JCMUY7MTEwNiAxMTZEIDExQUU7CitCQjIwO0JCMjA7MTEwNiAxMTZEIDExQUY7QkIyMDsxMTA2IDExNkQgMTFBRjsKK0JCMjE7QkIyMTsxMTA2IDExNkQgMTFCMDtCQjIxOzExMDYgMTE2RCAxMUIwOworQkIyMjtCQjIyOzExMDYgMTE2RCAxMUIxO0JCMjI7MTEwNiAxMTZEIDExQjE7CitCQjIzO0JCMjM7MTEwNiAxMTZEIDExQjI7QkIyMzsxMTA2IDExNkQgMTFCMjsKK0JCMjQ7QkIyNDsxMTA2IDExNkQgMTFCMztCQjI0OzExMDYgMTE2RCAxMUIzOworQkIyNTtCQjI1OzExMDYgMTE2RCAxMUI0O0JCMjU7MTEwNiAxMTZEIDExQjQ7CitCQjI2O0JCMjY7MTEwNiAxMTZEIDExQjU7QkIyNjsxMTA2IDExNkQgMTFCNTsKK0JCMjc7QkIyNzsxMTA2IDExNkQgMTFCNjtCQjI3OzExMDYgMTE2RCAxMUI2OworQkIyODtCQjI4OzExMDYgMTE2RCAxMUI3O0JCMjg7MTEwNiAxMTZEIDExQjc7CitCQjI5O0JCMjk7MTEwNiAxMTZEIDExQjg7QkIyOTsxMTA2IDExNkQgMTFCODsKK0JCMkE7QkIyQTsxMTA2IDExNkQgMTFCOTtCQjJBOzExMDYgMTE2RCAxMUI5OworQkIyQjtCQjJCOzExMDYgMTE2RCAxMUJBO0JCMkI7MTEwNiAxMTZEIDExQkE7CitCQjJDO0JCMkM7MTEwNiAxMTZEIDExQkI7QkIyQzsxMTA2IDExNkQgMTFCQjsKK0JCMkQ7QkIyRDsxMTA2IDExNkQgMTFCQztCQjJEOzExMDYgMTE2RCAxMUJDOworQkIyRTtCQjJFOzExMDYgMTE2RCAxMUJEO0JCMkU7MTEwNiAxMTZEIDExQkQ7CitCQjJGO0JCMkY7MTEwNiAxMTZEIDExQkU7QkIyRjsxMTA2IDExNkQgMTFCRTsKK0JCMzA7QkIzMDsxMTA2IDExNkQgMTFCRjtCQjMwOzExMDYgMTE2RCAxMUJGOworQkIzMTtCQjMxOzExMDYgMTE2RCAxMUMwO0JCMzE7MTEwNiAxMTZEIDExQzA7CitCQjMyO0JCMzI7MTEwNiAxMTZEIDExQzE7QkIzMjsxMTA2IDExNkQgMTFDMTsKK0JCMzM7QkIzMzsxMTA2IDExNkQgMTFDMjtCQjMzOzExMDYgMTE2RCAxMUMyOworQkIzNDtCQjM0OzExMDYgMTE2RTtCQjM0OzExMDYgMTE2RTsKK0JCMzU7QkIzNTsxMTA2IDExNkUgMTFBODtCQjM1OzExMDYgMTE2RSAxMUE4OworQkIzNjtCQjM2OzExMDYgMTE2RSAxMUE5O0JCMzY7MTEwNiAxMTZFIDExQTk7CitCQjM3O0JCMzc7MTEwNiAxMTZFIDExQUE7QkIzNzsxMTA2IDExNkUgMTFBQTsKK0JCMzg7QkIzODsxMTA2IDExNkUgMTFBQjtCQjM4OzExMDYgMTE2RSAxMUFCOworQkIzOTtCQjM5OzExMDYgMTE2RSAxMUFDO0JCMzk7MTEwNiAxMTZFIDExQUM7CitCQjNBO0JCM0E7MTEwNiAxMTZFIDExQUQ7QkIzQTsxMTA2IDExNkUgMTFBRDsKK0JCM0I7QkIzQjsxMTA2IDExNkUgMTFBRTtCQjNCOzExMDYgMTE2RSAxMUFFOworQkIzQztCQjNDOzExMDYgMTE2RSAxMUFGO0JCM0M7MTEwNiAxMTZFIDExQUY7CitCQjNEO0JCM0Q7MTEwNiAxMTZFIDExQjA7QkIzRDsxMTA2IDExNkUgMTFCMDsKK0JCM0U7QkIzRTsxMTA2IDExNkUgMTFCMTtCQjNFOzExMDYgMTE2RSAxMUIxOworQkIzRjtCQjNGOzExMDYgMTE2RSAxMUIyO0JCM0Y7MTEwNiAxMTZFIDExQjI7CitCQjQwO0JCNDA7MTEwNiAxMTZFIDExQjM7QkI0MDsxMTA2IDExNkUgMTFCMzsKK0JCNDE7QkI0MTsxMTA2IDExNkUgMTFCNDtCQjQxOzExMDYgMTE2RSAxMUI0OworQkI0MjtCQjQyOzExMDYgMTE2RSAxMUI1O0JCNDI7MTEwNiAxMTZFIDExQjU7CitCQjQzO0JCNDM7MTEwNiAxMTZFIDExQjY7QkI0MzsxMTA2IDExNkUgMTFCNjsKK0JCNDQ7QkI0NDsxMTA2IDExNkUgMTFCNztCQjQ0OzExMDYgMTE2RSAxMUI3OworQkI0NTtCQjQ1OzExMDYgMTE2RSAxMUI4O0JCNDU7MTEwNiAxMTZFIDExQjg7CitCQjQ2O0JCNDY7MTEwNiAxMTZFIDExQjk7QkI0NjsxMTA2IDExNkUgMTFCOTsKK0JCNDc7QkI0NzsxMTA2IDExNkUgMTFCQTtCQjQ3OzExMDYgMTE2RSAxMUJBOworQkI0ODtCQjQ4OzExMDYgMTE2RSAxMUJCO0JCNDg7MTEwNiAxMTZFIDExQkI7CitCQjQ5O0JCNDk7MTEwNiAxMTZFIDExQkM7QkI0OTsxMTA2IDExNkUgMTFCQzsKK0JCNEE7QkI0QTsxMTA2IDExNkUgMTFCRDtCQjRBOzExMDYgMTE2RSAxMUJEOworQkI0QjtCQjRCOzExMDYgMTE2RSAxMUJFO0JCNEI7MTEwNiAxMTZFIDExQkU7CitCQjRDO0JCNEM7MTEwNiAxMTZFIDExQkY7QkI0QzsxMTA2IDExNkUgMTFCRjsKK0JCNEQ7QkI0RDsxMTA2IDExNkUgMTFDMDtCQjREOzExMDYgMTE2RSAxMUMwOworQkI0RTtCQjRFOzExMDYgMTE2RSAxMUMxO0JCNEU7MTEwNiAxMTZFIDExQzE7CitCQjRGO0JCNEY7MTEwNiAxMTZFIDExQzI7QkI0RjsxMTA2IDExNkUgMTFDMjsKK0JCNTA7QkI1MDsxMTA2IDExNkY7QkI1MDsxMTA2IDExNkY7CitCQjUxO0JCNTE7MTEwNiAxMTZGIDExQTg7QkI1MTsxMTA2IDExNkYgMTFBODsKK0JCNTI7QkI1MjsxMTA2IDExNkYgMTFBOTtCQjUyOzExMDYgMTE2RiAxMUE5OworQkI1MztCQjUzOzExMDYgMTE2RiAxMUFBO0JCNTM7MTEwNiAxMTZGIDExQUE7CitCQjU0O0JCNTQ7MTEwNiAxMTZGIDExQUI7QkI1NDsxMTA2IDExNkYgMTFBQjsKK0JCNTU7QkI1NTsxMTA2IDExNkYgMTFBQztCQjU1OzExMDYgMTE2RiAxMUFDOworQkI1NjtCQjU2OzExMDYgMTE2RiAxMUFEO0JCNTY7MTEwNiAxMTZGIDExQUQ7CitCQjU3O0JCNTc7MTEwNiAxMTZGIDExQUU7QkI1NzsxMTA2IDExNkYgMTFBRTsKK0JCNTg7QkI1ODsxMTA2IDExNkYgMTFBRjtCQjU4OzExMDYgMTE2RiAxMUFGOworQkI1OTtCQjU5OzExMDYgMTE2RiAxMUIwO0JCNTk7MTEwNiAxMTZGIDExQjA7CitCQjVBO0JCNUE7MTEwNiAxMTZGIDExQjE7QkI1QTsxMTA2IDExNkYgMTFCMTsKK0JCNUI7QkI1QjsxMTA2IDExNkYgMTFCMjtCQjVCOzExMDYgMTE2RiAxMUIyOworQkI1QztCQjVDOzExMDYgMTE2RiAxMUIzO0JCNUM7MTEwNiAxMTZGIDExQjM7CitCQjVEO0JCNUQ7MTEwNiAxMTZGIDExQjQ7QkI1RDsxMTA2IDExNkYgMTFCNDsKK0JCNUU7QkI1RTsxMTA2IDExNkYgMTFCNTtCQjVFOzExMDYgMTE2RiAxMUI1OworQkI1RjtCQjVGOzExMDYgMTE2RiAxMUI2O0JCNUY7MTEwNiAxMTZGIDExQjY7CitCQjYwO0JCNjA7MTEwNiAxMTZGIDExQjc7QkI2MDsxMTA2IDExNkYgMTFCNzsKK0JCNjE7QkI2MTsxMTA2IDExNkYgMTFCODtCQjYxOzExMDYgMTE2RiAxMUI4OworQkI2MjtCQjYyOzExMDYgMTE2RiAxMUI5O0JCNjI7MTEwNiAxMTZGIDExQjk7CitCQjYzO0JCNjM7MTEwNiAxMTZGIDExQkE7QkI2MzsxMTA2IDExNkYgMTFCQTsKK0JCNjQ7QkI2NDsxMTA2IDExNkYgMTFCQjtCQjY0OzExMDYgMTE2RiAxMUJCOworQkI2NTtCQjY1OzExMDYgMTE2RiAxMUJDO0JCNjU7MTEwNiAxMTZGIDExQkM7CitCQjY2O0JCNjY7MTEwNiAxMTZGIDExQkQ7QkI2NjsxMTA2IDExNkYgMTFCRDsKK0JCNjc7QkI2NzsxMTA2IDExNkYgMTFCRTtCQjY3OzExMDYgMTE2RiAxMUJFOworQkI2ODtCQjY4OzExMDYgMTE2RiAxMUJGO0JCNjg7MTEwNiAxMTZGIDExQkY7CitCQjY5O0JCNjk7MTEwNiAxMTZGIDExQzA7QkI2OTsxMTA2IDExNkYgMTFDMDsKK0JCNkE7QkI2QTsxMTA2IDExNkYgMTFDMTtCQjZBOzExMDYgMTE2RiAxMUMxOworQkI2QjtCQjZCOzExMDYgMTE2RiAxMUMyO0JCNkI7MTEwNiAxMTZGIDExQzI7CitCQjZDO0JCNkM7MTEwNiAxMTcwO0JCNkM7MTEwNiAxMTcwOworQkI2RDtCQjZEOzExMDYgMTE3MCAxMUE4O0JCNkQ7MTEwNiAxMTcwIDExQTg7CitCQjZFO0JCNkU7MTEwNiAxMTcwIDExQTk7QkI2RTsxMTA2IDExNzAgMTFBOTsKK0JCNkY7QkI2RjsxMTA2IDExNzAgMTFBQTtCQjZGOzExMDYgMTE3MCAxMUFBOworQkI3MDtCQjcwOzExMDYgMTE3MCAxMUFCO0JCNzA7MTEwNiAxMTcwIDExQUI7CitCQjcxO0JCNzE7MTEwNiAxMTcwIDExQUM7QkI3MTsxMTA2IDExNzAgMTFBQzsKK0JCNzI7QkI3MjsxMTA2IDExNzAgMTFBRDtCQjcyOzExMDYgMTE3MCAxMUFEOworQkI3MztCQjczOzExMDYgMTE3MCAxMUFFO0JCNzM7MTEwNiAxMTcwIDExQUU7CitCQjc0O0JCNzQ7MTEwNiAxMTcwIDExQUY7QkI3NDsxMTA2IDExNzAgMTFBRjsKK0JCNzU7QkI3NTsxMTA2IDExNzAgMTFCMDtCQjc1OzExMDYgMTE3MCAxMUIwOworQkI3NjtCQjc2OzExMDYgMTE3MCAxMUIxO0JCNzY7MTEwNiAxMTcwIDExQjE7CitCQjc3O0JCNzc7MTEwNiAxMTcwIDExQjI7QkI3NzsxMTA2IDExNzAgMTFCMjsKK0JCNzg7QkI3ODsxMTA2IDExNzAgMTFCMztCQjc4OzExMDYgMTE3MCAxMUIzOworQkI3OTtCQjc5OzExMDYgMTE3MCAxMUI0O0JCNzk7MTEwNiAxMTcwIDExQjQ7CitCQjdBO0JCN0E7MTEwNiAxMTcwIDExQjU7QkI3QTsxMTA2IDExNzAgMTFCNTsKK0JCN0I7QkI3QjsxMTA2IDExNzAgMTFCNjtCQjdCOzExMDYgMTE3MCAxMUI2OworQkI3QztCQjdDOzExMDYgMTE3MCAxMUI3O0JCN0M7MTEwNiAxMTcwIDExQjc7CitCQjdEO0JCN0Q7MTEwNiAxMTcwIDExQjg7QkI3RDsxMTA2IDExNzAgMTFCODsKK0JCN0U7QkI3RTsxMTA2IDExNzAgMTFCOTtCQjdFOzExMDYgMTE3MCAxMUI5OworQkI3RjtCQjdGOzExMDYgMTE3MCAxMUJBO0JCN0Y7MTEwNiAxMTcwIDExQkE7CitCQjgwO0JCODA7MTEwNiAxMTcwIDExQkI7QkI4MDsxMTA2IDExNzAgMTFCQjsKK0JCODE7QkI4MTsxMTA2IDExNzAgMTFCQztCQjgxOzExMDYgMTE3MCAxMUJDOworQkI4MjtCQjgyOzExMDYgMTE3MCAxMUJEO0JCODI7MTEwNiAxMTcwIDExQkQ7CitCQjgzO0JCODM7MTEwNiAxMTcwIDExQkU7QkI4MzsxMTA2IDExNzAgMTFCRTsKK0JCODQ7QkI4NDsxMTA2IDExNzAgMTFCRjtCQjg0OzExMDYgMTE3MCAxMUJGOworQkI4NTtCQjg1OzExMDYgMTE3MCAxMUMwO0JCODU7MTEwNiAxMTcwIDExQzA7CitCQjg2O0JCODY7MTEwNiAxMTcwIDExQzE7QkI4NjsxMTA2IDExNzAgMTFDMTsKK0JCODc7QkI4NzsxMTA2IDExNzAgMTFDMjtCQjg3OzExMDYgMTE3MCAxMUMyOworQkI4ODtCQjg4OzExMDYgMTE3MTtCQjg4OzExMDYgMTE3MTsKK0JCODk7QkI4OTsxMTA2IDExNzEgMTFBODtCQjg5OzExMDYgMTE3MSAxMUE4OworQkI4QTtCQjhBOzExMDYgMTE3MSAxMUE5O0JCOEE7MTEwNiAxMTcxIDExQTk7CitCQjhCO0JCOEI7MTEwNiAxMTcxIDExQUE7QkI4QjsxMTA2IDExNzEgMTFBQTsKK0JCOEM7QkI4QzsxMTA2IDExNzEgMTFBQjtCQjhDOzExMDYgMTE3MSAxMUFCOworQkI4RDtCQjhEOzExMDYgMTE3MSAxMUFDO0JCOEQ7MTEwNiAxMTcxIDExQUM7CitCQjhFO0JCOEU7MTEwNiAxMTcxIDExQUQ7QkI4RTsxMTA2IDExNzEgMTFBRDsKK0JCOEY7QkI4RjsxMTA2IDExNzEgMTFBRTtCQjhGOzExMDYgMTE3MSAxMUFFOworQkI5MDtCQjkwOzExMDYgMTE3MSAxMUFGO0JCOTA7MTEwNiAxMTcxIDExQUY7CitCQjkxO0JCOTE7MTEwNiAxMTcxIDExQjA7QkI5MTsxMTA2IDExNzEgMTFCMDsKK0JCOTI7QkI5MjsxMTA2IDExNzEgMTFCMTtCQjkyOzExMDYgMTE3MSAxMUIxOworQkI5MztCQjkzOzExMDYgMTE3MSAxMUIyO0JCOTM7MTEwNiAxMTcxIDExQjI7CitCQjk0O0JCOTQ7MTEwNiAxMTcxIDExQjM7QkI5NDsxMTA2IDExNzEgMTFCMzsKK0JCOTU7QkI5NTsxMTA2IDExNzEgMTFCNDtCQjk1OzExMDYgMTE3MSAxMUI0OworQkI5NjtCQjk2OzExMDYgMTE3MSAxMUI1O0JCOTY7MTEwNiAxMTcxIDExQjU7CitCQjk3O0JCOTc7MTEwNiAxMTcxIDExQjY7QkI5NzsxMTA2IDExNzEgMTFCNjsKK0JCOTg7QkI5ODsxMTA2IDExNzEgMTFCNztCQjk4OzExMDYgMTE3MSAxMUI3OworQkI5OTtCQjk5OzExMDYgMTE3MSAxMUI4O0JCOTk7MTEwNiAxMTcxIDExQjg7CitCQjlBO0JCOUE7MTEwNiAxMTcxIDExQjk7QkI5QTsxMTA2IDExNzEgMTFCOTsKK0JCOUI7QkI5QjsxMTA2IDExNzEgMTFCQTtCQjlCOzExMDYgMTE3MSAxMUJBOworQkI5QztCQjlDOzExMDYgMTE3MSAxMUJCO0JCOUM7MTEwNiAxMTcxIDExQkI7CitCQjlEO0JCOUQ7MTEwNiAxMTcxIDExQkM7QkI5RDsxMTA2IDExNzEgMTFCQzsKK0JCOUU7QkI5RTsxMTA2IDExNzEgMTFCRDtCQjlFOzExMDYgMTE3MSAxMUJEOworQkI5RjtCQjlGOzExMDYgMTE3MSAxMUJFO0JCOUY7MTEwNiAxMTcxIDExQkU7CitCQkEwO0JCQTA7MTEwNiAxMTcxIDExQkY7QkJBMDsxMTA2IDExNzEgMTFCRjsKK0JCQTE7QkJBMTsxMTA2IDExNzEgMTFDMDtCQkExOzExMDYgMTE3MSAxMUMwOworQkJBMjtCQkEyOzExMDYgMTE3MSAxMUMxO0JCQTI7MTEwNiAxMTcxIDExQzE7CitCQkEzO0JCQTM7MTEwNiAxMTcxIDExQzI7QkJBMzsxMTA2IDExNzEgMTFDMjsKK0JCQTQ7QkJBNDsxMTA2IDExNzI7QkJBNDsxMTA2IDExNzI7CitCQkE1O0JCQTU7MTEwNiAxMTcyIDExQTg7QkJBNTsxMTA2IDExNzIgMTFBODsKK0JCQTY7QkJBNjsxMTA2IDExNzIgMTFBOTtCQkE2OzExMDYgMTE3MiAxMUE5OworQkJBNztCQkE3OzExMDYgMTE3MiAxMUFBO0JCQTc7MTEwNiAxMTcyIDExQUE7CitCQkE4O0JCQTg7MTEwNiAxMTcyIDExQUI7QkJBODsxMTA2IDExNzIgMTFBQjsKK0JCQTk7QkJBOTsxMTA2IDExNzIgMTFBQztCQkE5OzExMDYgMTE3MiAxMUFDOworQkJBQTtCQkFBOzExMDYgMTE3MiAxMUFEO0JCQUE7MTEwNiAxMTcyIDExQUQ7CitCQkFCO0JCQUI7MTEwNiAxMTcyIDExQUU7QkJBQjsxMTA2IDExNzIgMTFBRTsKK0JCQUM7QkJBQzsxMTA2IDExNzIgMTFBRjtCQkFDOzExMDYgMTE3MiAxMUFGOworQkJBRDtCQkFEOzExMDYgMTE3MiAxMUIwO0JCQUQ7MTEwNiAxMTcyIDExQjA7CitCQkFFO0JCQUU7MTEwNiAxMTcyIDExQjE7QkJBRTsxMTA2IDExNzIgMTFCMTsKK0JCQUY7QkJBRjsxMTA2IDExNzIgMTFCMjtCQkFGOzExMDYgMTE3MiAxMUIyOworQkJCMDtCQkIwOzExMDYgMTE3MiAxMUIzO0JCQjA7MTEwNiAxMTcyIDExQjM7CitCQkIxO0JCQjE7MTEwNiAxMTcyIDExQjQ7QkJCMTsxMTA2IDExNzIgMTFCNDsKK0JCQjI7QkJCMjsxMTA2IDExNzIgMTFCNTtCQkIyOzExMDYgMTE3MiAxMUI1OworQkJCMztCQkIzOzExMDYgMTE3MiAxMUI2O0JCQjM7MTEwNiAxMTcyIDExQjY7CitCQkI0O0JCQjQ7MTEwNiAxMTcyIDExQjc7QkJCNDsxMTA2IDExNzIgMTFCNzsKK0JCQjU7QkJCNTsxMTA2IDExNzIgMTFCODtCQkI1OzExMDYgMTE3MiAxMUI4OworQkJCNjtCQkI2OzExMDYgMTE3MiAxMUI5O0JCQjY7MTEwNiAxMTcyIDExQjk7CitCQkI3O0JCQjc7MTEwNiAxMTcyIDExQkE7QkJCNzsxMTA2IDExNzIgMTFCQTsKK0JCQjg7QkJCODsxMTA2IDExNzIgMTFCQjtCQkI4OzExMDYgMTE3MiAxMUJCOworQkJCOTtCQkI5OzExMDYgMTE3MiAxMUJDO0JCQjk7MTEwNiAxMTcyIDExQkM7CitCQkJBO0JCQkE7MTEwNiAxMTcyIDExQkQ7QkJCQTsxMTA2IDExNzIgMTFCRDsKK0JCQkI7QkJCQjsxMTA2IDExNzIgMTFCRTtCQkJCOzExMDYgMTE3MiAxMUJFOworQkJCQztCQkJDOzExMDYgMTE3MiAxMUJGO0JCQkM7MTEwNiAxMTcyIDExQkY7CitCQkJEO0JCQkQ7MTEwNiAxMTcyIDExQzA7QkJCRDsxMTA2IDExNzIgMTFDMDsKK0JCQkU7QkJCRTsxMTA2IDExNzIgMTFDMTtCQkJFOzExMDYgMTE3MiAxMUMxOworQkJCRjtCQkJGOzExMDYgMTE3MiAxMUMyO0JCQkY7MTEwNiAxMTcyIDExQzI7CitCQkMwO0JCQzA7MTEwNiAxMTczO0JCQzA7MTEwNiAxMTczOworQkJDMTtCQkMxOzExMDYgMTE3MyAxMUE4O0JCQzE7MTEwNiAxMTczIDExQTg7CitCQkMyO0JCQzI7MTEwNiAxMTczIDExQTk7QkJDMjsxMTA2IDExNzMgMTFBOTsKK0JCQzM7QkJDMzsxMTA2IDExNzMgMTFBQTtCQkMzOzExMDYgMTE3MyAxMUFBOworQkJDNDtCQkM0OzExMDYgMTE3MyAxMUFCO0JCQzQ7MTEwNiAxMTczIDExQUI7CitCQkM1O0JCQzU7MTEwNiAxMTczIDExQUM7QkJDNTsxMTA2IDExNzMgMTFBQzsKK0JCQzY7QkJDNjsxMTA2IDExNzMgMTFBRDtCQkM2OzExMDYgMTE3MyAxMUFEOworQkJDNztCQkM3OzExMDYgMTE3MyAxMUFFO0JCQzc7MTEwNiAxMTczIDExQUU7CitCQkM4O0JCQzg7MTEwNiAxMTczIDExQUY7QkJDODsxMTA2IDExNzMgMTFBRjsKK0JCQzk7QkJDOTsxMTA2IDExNzMgMTFCMDtCQkM5OzExMDYgMTE3MyAxMUIwOworQkJDQTtCQkNBOzExMDYgMTE3MyAxMUIxO0JCQ0E7MTEwNiAxMTczIDExQjE7CitCQkNCO0JCQ0I7MTEwNiAxMTczIDExQjI7QkJDQjsxMTA2IDExNzMgMTFCMjsKK0JCQ0M7QkJDQzsxMTA2IDExNzMgMTFCMztCQkNDOzExMDYgMTE3MyAxMUIzOworQkJDRDtCQkNEOzExMDYgMTE3MyAxMUI0O0JCQ0Q7MTEwNiAxMTczIDExQjQ7CitCQkNFO0JCQ0U7MTEwNiAxMTczIDExQjU7QkJDRTsxMTA2IDExNzMgMTFCNTsKK0JCQ0Y7QkJDRjsxMTA2IDExNzMgMTFCNjtCQkNGOzExMDYgMTE3MyAxMUI2OworQkJEMDtCQkQwOzExMDYgMTE3MyAxMUI3O0JCRDA7MTEwNiAxMTczIDExQjc7CitCQkQxO0JCRDE7MTEwNiAxMTczIDExQjg7QkJEMTsxMTA2IDExNzMgMTFCODsKK0JCRDI7QkJEMjsxMTA2IDExNzMgMTFCOTtCQkQyOzExMDYgMTE3MyAxMUI5OworQkJEMztCQkQzOzExMDYgMTE3MyAxMUJBO0JCRDM7MTEwNiAxMTczIDExQkE7CitCQkQ0O0JCRDQ7MTEwNiAxMTczIDExQkI7QkJENDsxMTA2IDExNzMgMTFCQjsKK0JCRDU7QkJENTsxMTA2IDExNzMgMTFCQztCQkQ1OzExMDYgMTE3MyAxMUJDOworQkJENjtCQkQ2OzExMDYgMTE3MyAxMUJEO0JCRDY7MTEwNiAxMTczIDExQkQ7CitCQkQ3O0JCRDc7MTEwNiAxMTczIDExQkU7QkJENzsxMTA2IDExNzMgMTFCRTsKK0JCRDg7QkJEODsxMTA2IDExNzMgMTFCRjtCQkQ4OzExMDYgMTE3MyAxMUJGOworQkJEOTtCQkQ5OzExMDYgMTE3MyAxMUMwO0JCRDk7MTEwNiAxMTczIDExQzA7CitCQkRBO0JCREE7MTEwNiAxMTczIDExQzE7QkJEQTsxMTA2IDExNzMgMTFDMTsKK0JCREI7QkJEQjsxMTA2IDExNzMgMTFDMjtCQkRCOzExMDYgMTE3MyAxMUMyOworQkJEQztCQkRDOzExMDYgMTE3NDtCQkRDOzExMDYgMTE3NDsKK0JCREQ7QkJERDsxMTA2IDExNzQgMTFBODtCQkREOzExMDYgMTE3NCAxMUE4OworQkJERTtCQkRFOzExMDYgMTE3NCAxMUE5O0JCREU7MTEwNiAxMTc0IDExQTk7CitCQkRGO0JCREY7MTEwNiAxMTc0IDExQUE7QkJERjsxMTA2IDExNzQgMTFBQTsKK0JCRTA7QkJFMDsxMTA2IDExNzQgMTFBQjtCQkUwOzExMDYgMTE3NCAxMUFCOworQkJFMTtCQkUxOzExMDYgMTE3NCAxMUFDO0JCRTE7MTEwNiAxMTc0IDExQUM7CitCQkUyO0JCRTI7MTEwNiAxMTc0IDExQUQ7QkJFMjsxMTA2IDExNzQgMTFBRDsKK0JCRTM7QkJFMzsxMTA2IDExNzQgMTFBRTtCQkUzOzExMDYgMTE3NCAxMUFFOworQkJFNDtCQkU0OzExMDYgMTE3NCAxMUFGO0JCRTQ7MTEwNiAxMTc0IDExQUY7CitCQkU1O0JCRTU7MTEwNiAxMTc0IDExQjA7QkJFNTsxMTA2IDExNzQgMTFCMDsKK0JCRTY7QkJFNjsxMTA2IDExNzQgMTFCMTtCQkU2OzExMDYgMTE3NCAxMUIxOworQkJFNztCQkU3OzExMDYgMTE3NCAxMUIyO0JCRTc7MTEwNiAxMTc0IDExQjI7CitCQkU4O0JCRTg7MTEwNiAxMTc0IDExQjM7QkJFODsxMTA2IDExNzQgMTFCMzsKK0JCRTk7QkJFOTsxMTA2IDExNzQgMTFCNDtCQkU5OzExMDYgMTE3NCAxMUI0OworQkJFQTtCQkVBOzExMDYgMTE3NCAxMUI1O0JCRUE7MTEwNiAxMTc0IDExQjU7CitCQkVCO0JCRUI7MTEwNiAxMTc0IDExQjY7QkJFQjsxMTA2IDExNzQgMTFCNjsKK0JCRUM7QkJFQzsxMTA2IDExNzQgMTFCNztCQkVDOzExMDYgMTE3NCAxMUI3OworQkJFRDtCQkVEOzExMDYgMTE3NCAxMUI4O0JCRUQ7MTEwNiAxMTc0IDExQjg7CitCQkVFO0JCRUU7MTEwNiAxMTc0IDExQjk7QkJFRTsxMTA2IDExNzQgMTFCOTsKK0JCRUY7QkJFRjsxMTA2IDExNzQgMTFCQTtCQkVGOzExMDYgMTE3NCAxMUJBOworQkJGMDtCQkYwOzExMDYgMTE3NCAxMUJCO0JCRjA7MTEwNiAxMTc0IDExQkI7CitCQkYxO0JCRjE7MTEwNiAxMTc0IDExQkM7QkJGMTsxMTA2IDExNzQgMTFCQzsKK0JCRjI7QkJGMjsxMTA2IDExNzQgMTFCRDtCQkYyOzExMDYgMTE3NCAxMUJEOworQkJGMztCQkYzOzExMDYgMTE3NCAxMUJFO0JCRjM7MTEwNiAxMTc0IDExQkU7CitCQkY0O0JCRjQ7MTEwNiAxMTc0IDExQkY7QkJGNDsxMTA2IDExNzQgMTFCRjsKK0JCRjU7QkJGNTsxMTA2IDExNzQgMTFDMDtCQkY1OzExMDYgMTE3NCAxMUMwOworQkJGNjtCQkY2OzExMDYgMTE3NCAxMUMxO0JCRjY7MTEwNiAxMTc0IDExQzE7CitCQkY3O0JCRjc7MTEwNiAxMTc0IDExQzI7QkJGNzsxMTA2IDExNzQgMTFDMjsKK0JCRjg7QkJGODsxMTA2IDExNzU7QkJGODsxMTA2IDExNzU7CitCQkY5O0JCRjk7MTEwNiAxMTc1IDExQTg7QkJGOTsxMTA2IDExNzUgMTFBODsKK0JCRkE7QkJGQTsxMTA2IDExNzUgMTFBOTtCQkZBOzExMDYgMTE3NSAxMUE5OworQkJGQjtCQkZCOzExMDYgMTE3NSAxMUFBO0JCRkI7MTEwNiAxMTc1IDExQUE7CitCQkZDO0JCRkM7MTEwNiAxMTc1IDExQUI7QkJGQzsxMTA2IDExNzUgMTFBQjsKK0JCRkQ7QkJGRDsxMTA2IDExNzUgMTFBQztCQkZEOzExMDYgMTE3NSAxMUFDOworQkJGRTtCQkZFOzExMDYgMTE3NSAxMUFEO0JCRkU7MTEwNiAxMTc1IDExQUQ7CitCQkZGO0JCRkY7MTEwNiAxMTc1IDExQUU7QkJGRjsxMTA2IDExNzUgMTFBRTsKK0JDMDA7QkMwMDsxMTA2IDExNzUgMTFBRjtCQzAwOzExMDYgMTE3NSAxMUFGOworQkMwMTtCQzAxOzExMDYgMTE3NSAxMUIwO0JDMDE7MTEwNiAxMTc1IDExQjA7CitCQzAyO0JDMDI7MTEwNiAxMTc1IDExQjE7QkMwMjsxMTA2IDExNzUgMTFCMTsKK0JDMDM7QkMwMzsxMTA2IDExNzUgMTFCMjtCQzAzOzExMDYgMTE3NSAxMUIyOworQkMwNDtCQzA0OzExMDYgMTE3NSAxMUIzO0JDMDQ7MTEwNiAxMTc1IDExQjM7CitCQzA1O0JDMDU7MTEwNiAxMTc1IDExQjQ7QkMwNTsxMTA2IDExNzUgMTFCNDsKK0JDMDY7QkMwNjsxMTA2IDExNzUgMTFCNTtCQzA2OzExMDYgMTE3NSAxMUI1OworQkMwNztCQzA3OzExMDYgMTE3NSAxMUI2O0JDMDc7MTEwNiAxMTc1IDExQjY7CitCQzA4O0JDMDg7MTEwNiAxMTc1IDExQjc7QkMwODsxMTA2IDExNzUgMTFCNzsKK0JDMDk7QkMwOTsxMTA2IDExNzUgMTFCODtCQzA5OzExMDYgMTE3NSAxMUI4OworQkMwQTtCQzBBOzExMDYgMTE3NSAxMUI5O0JDMEE7MTEwNiAxMTc1IDExQjk7CitCQzBCO0JDMEI7MTEwNiAxMTc1IDExQkE7QkMwQjsxMTA2IDExNzUgMTFCQTsKK0JDMEM7QkMwQzsxMTA2IDExNzUgMTFCQjtCQzBDOzExMDYgMTE3NSAxMUJCOworQkMwRDtCQzBEOzExMDYgMTE3NSAxMUJDO0JDMEQ7MTEwNiAxMTc1IDExQkM7CitCQzBFO0JDMEU7MTEwNiAxMTc1IDExQkQ7QkMwRTsxMTA2IDExNzUgMTFCRDsKK0JDMEY7QkMwRjsxMTA2IDExNzUgMTFCRTtCQzBGOzExMDYgMTE3NSAxMUJFOworQkMxMDtCQzEwOzExMDYgMTE3NSAxMUJGO0JDMTA7MTEwNiAxMTc1IDExQkY7CitCQzExO0JDMTE7MTEwNiAxMTc1IDExQzA7QkMxMTsxMTA2IDExNzUgMTFDMDsKK0JDMTI7QkMxMjsxMTA2IDExNzUgMTFDMTtCQzEyOzExMDYgMTE3NSAxMUMxOworQkMxMztCQzEzOzExMDYgMTE3NSAxMUMyO0JDMTM7MTEwNiAxMTc1IDExQzI7CitCQzE0O0JDMTQ7MTEwNyAxMTYxO0JDMTQ7MTEwNyAxMTYxOworQkMxNTtCQzE1OzExMDcgMTE2MSAxMUE4O0JDMTU7MTEwNyAxMTYxIDExQTg7CitCQzE2O0JDMTY7MTEwNyAxMTYxIDExQTk7QkMxNjsxMTA3IDExNjEgMTFBOTsKK0JDMTc7QkMxNzsxMTA3IDExNjEgMTFBQTtCQzE3OzExMDcgMTE2MSAxMUFBOworQkMxODtCQzE4OzExMDcgMTE2MSAxMUFCO0JDMTg7MTEwNyAxMTYxIDExQUI7CitCQzE5O0JDMTk7MTEwNyAxMTYxIDExQUM7QkMxOTsxMTA3IDExNjEgMTFBQzsKK0JDMUE7QkMxQTsxMTA3IDExNjEgMTFBRDtCQzFBOzExMDcgMTE2MSAxMUFEOworQkMxQjtCQzFCOzExMDcgMTE2MSAxMUFFO0JDMUI7MTEwNyAxMTYxIDExQUU7CitCQzFDO0JDMUM7MTEwNyAxMTYxIDExQUY7QkMxQzsxMTA3IDExNjEgMTFBRjsKK0JDMUQ7QkMxRDsxMTA3IDExNjEgMTFCMDtCQzFEOzExMDcgMTE2MSAxMUIwOworQkMxRTtCQzFFOzExMDcgMTE2MSAxMUIxO0JDMUU7MTEwNyAxMTYxIDExQjE7CitCQzFGO0JDMUY7MTEwNyAxMTYxIDExQjI7QkMxRjsxMTA3IDExNjEgMTFCMjsKK0JDMjA7QkMyMDsxMTA3IDExNjEgMTFCMztCQzIwOzExMDcgMTE2MSAxMUIzOworQkMyMTtCQzIxOzExMDcgMTE2MSAxMUI0O0JDMjE7MTEwNyAxMTYxIDExQjQ7CitCQzIyO0JDMjI7MTEwNyAxMTYxIDExQjU7QkMyMjsxMTA3IDExNjEgMTFCNTsKK0JDMjM7QkMyMzsxMTA3IDExNjEgMTFCNjtCQzIzOzExMDcgMTE2MSAxMUI2OworQkMyNDtCQzI0OzExMDcgMTE2MSAxMUI3O0JDMjQ7MTEwNyAxMTYxIDExQjc7CitCQzI1O0JDMjU7MTEwNyAxMTYxIDExQjg7QkMyNTsxMTA3IDExNjEgMTFCODsKK0JDMjY7QkMyNjsxMTA3IDExNjEgMTFCOTtCQzI2OzExMDcgMTE2MSAxMUI5OworQkMyNztCQzI3OzExMDcgMTE2MSAxMUJBO0JDMjc7MTEwNyAxMTYxIDExQkE7CitCQzI4O0JDMjg7MTEwNyAxMTYxIDExQkI7QkMyODsxMTA3IDExNjEgMTFCQjsKK0JDMjk7QkMyOTsxMTA3IDExNjEgMTFCQztCQzI5OzExMDcgMTE2MSAxMUJDOworQkMyQTtCQzJBOzExMDcgMTE2MSAxMUJEO0JDMkE7MTEwNyAxMTYxIDExQkQ7CitCQzJCO0JDMkI7MTEwNyAxMTYxIDExQkU7QkMyQjsxMTA3IDExNjEgMTFCRTsKK0JDMkM7QkMyQzsxMTA3IDExNjEgMTFCRjtCQzJDOzExMDcgMTE2MSAxMUJGOworQkMyRDtCQzJEOzExMDcgMTE2MSAxMUMwO0JDMkQ7MTEwNyAxMTYxIDExQzA7CitCQzJFO0JDMkU7MTEwNyAxMTYxIDExQzE7QkMyRTsxMTA3IDExNjEgMTFDMTsKK0JDMkY7QkMyRjsxMTA3IDExNjEgMTFDMjtCQzJGOzExMDcgMTE2MSAxMUMyOworQkMzMDtCQzMwOzExMDcgMTE2MjtCQzMwOzExMDcgMTE2MjsKK0JDMzE7QkMzMTsxMTA3IDExNjIgMTFBODtCQzMxOzExMDcgMTE2MiAxMUE4OworQkMzMjtCQzMyOzExMDcgMTE2MiAxMUE5O0JDMzI7MTEwNyAxMTYyIDExQTk7CitCQzMzO0JDMzM7MTEwNyAxMTYyIDExQUE7QkMzMzsxMTA3IDExNjIgMTFBQTsKK0JDMzQ7QkMzNDsxMTA3IDExNjIgMTFBQjtCQzM0OzExMDcgMTE2MiAxMUFCOworQkMzNTtCQzM1OzExMDcgMTE2MiAxMUFDO0JDMzU7MTEwNyAxMTYyIDExQUM7CitCQzM2O0JDMzY7MTEwNyAxMTYyIDExQUQ7QkMzNjsxMTA3IDExNjIgMTFBRDsKK0JDMzc7QkMzNzsxMTA3IDExNjIgMTFBRTtCQzM3OzExMDcgMTE2MiAxMUFFOworQkMzODtCQzM4OzExMDcgMTE2MiAxMUFGO0JDMzg7MTEwNyAxMTYyIDExQUY7CitCQzM5O0JDMzk7MTEwNyAxMTYyIDExQjA7QkMzOTsxMTA3IDExNjIgMTFCMDsKK0JDM0E7QkMzQTsxMTA3IDExNjIgMTFCMTtCQzNBOzExMDcgMTE2MiAxMUIxOworQkMzQjtCQzNCOzExMDcgMTE2MiAxMUIyO0JDM0I7MTEwNyAxMTYyIDExQjI7CitCQzNDO0JDM0M7MTEwNyAxMTYyIDExQjM7QkMzQzsxMTA3IDExNjIgMTFCMzsKK0JDM0Q7QkMzRDsxMTA3IDExNjIgMTFCNDtCQzNEOzExMDcgMTE2MiAxMUI0OworQkMzRTtCQzNFOzExMDcgMTE2MiAxMUI1O0JDM0U7MTEwNyAxMTYyIDExQjU7CitCQzNGO0JDM0Y7MTEwNyAxMTYyIDExQjY7QkMzRjsxMTA3IDExNjIgMTFCNjsKK0JDNDA7QkM0MDsxMTA3IDExNjIgMTFCNztCQzQwOzExMDcgMTE2MiAxMUI3OworQkM0MTtCQzQxOzExMDcgMTE2MiAxMUI4O0JDNDE7MTEwNyAxMTYyIDExQjg7CitCQzQyO0JDNDI7MTEwNyAxMTYyIDExQjk7QkM0MjsxMTA3IDExNjIgMTFCOTsKK0JDNDM7QkM0MzsxMTA3IDExNjIgMTFCQTtCQzQzOzExMDcgMTE2MiAxMUJBOworQkM0NDtCQzQ0OzExMDcgMTE2MiAxMUJCO0JDNDQ7MTEwNyAxMTYyIDExQkI7CitCQzQ1O0JDNDU7MTEwNyAxMTYyIDExQkM7QkM0NTsxMTA3IDExNjIgMTFCQzsKK0JDNDY7QkM0NjsxMTA3IDExNjIgMTFCRDtCQzQ2OzExMDcgMTE2MiAxMUJEOworQkM0NztCQzQ3OzExMDcgMTE2MiAxMUJFO0JDNDc7MTEwNyAxMTYyIDExQkU7CitCQzQ4O0JDNDg7MTEwNyAxMTYyIDExQkY7QkM0ODsxMTA3IDExNjIgMTFCRjsKK0JDNDk7QkM0OTsxMTA3IDExNjIgMTFDMDtCQzQ5OzExMDcgMTE2MiAxMUMwOworQkM0QTtCQzRBOzExMDcgMTE2MiAxMUMxO0JDNEE7MTEwNyAxMTYyIDExQzE7CitCQzRCO0JDNEI7MTEwNyAxMTYyIDExQzI7QkM0QjsxMTA3IDExNjIgMTFDMjsKK0JDNEM7QkM0QzsxMTA3IDExNjM7QkM0QzsxMTA3IDExNjM7CitCQzREO0JDNEQ7MTEwNyAxMTYzIDExQTg7QkM0RDsxMTA3IDExNjMgMTFBODsKK0JDNEU7QkM0RTsxMTA3IDExNjMgMTFBOTtCQzRFOzExMDcgMTE2MyAxMUE5OworQkM0RjtCQzRGOzExMDcgMTE2MyAxMUFBO0JDNEY7MTEwNyAxMTYzIDExQUE7CitCQzUwO0JDNTA7MTEwNyAxMTYzIDExQUI7QkM1MDsxMTA3IDExNjMgMTFBQjsKK0JDNTE7QkM1MTsxMTA3IDExNjMgMTFBQztCQzUxOzExMDcgMTE2MyAxMUFDOworQkM1MjtCQzUyOzExMDcgMTE2MyAxMUFEO0JDNTI7MTEwNyAxMTYzIDExQUQ7CitCQzUzO0JDNTM7MTEwNyAxMTYzIDExQUU7QkM1MzsxMTA3IDExNjMgMTFBRTsKK0JDNTQ7QkM1NDsxMTA3IDExNjMgMTFBRjtCQzU0OzExMDcgMTE2MyAxMUFGOworQkM1NTtCQzU1OzExMDcgMTE2MyAxMUIwO0JDNTU7MTEwNyAxMTYzIDExQjA7CitCQzU2O0JDNTY7MTEwNyAxMTYzIDExQjE7QkM1NjsxMTA3IDExNjMgMTFCMTsKK0JDNTc7QkM1NzsxMTA3IDExNjMgMTFCMjtCQzU3OzExMDcgMTE2MyAxMUIyOworQkM1ODtCQzU4OzExMDcgMTE2MyAxMUIzO0JDNTg7MTEwNyAxMTYzIDExQjM7CitCQzU5O0JDNTk7MTEwNyAxMTYzIDExQjQ7QkM1OTsxMTA3IDExNjMgMTFCNDsKK0JDNUE7QkM1QTsxMTA3IDExNjMgMTFCNTtCQzVBOzExMDcgMTE2MyAxMUI1OworQkM1QjtCQzVCOzExMDcgMTE2MyAxMUI2O0JDNUI7MTEwNyAxMTYzIDExQjY7CitCQzVDO0JDNUM7MTEwNyAxMTYzIDExQjc7QkM1QzsxMTA3IDExNjMgMTFCNzsKK0JDNUQ7QkM1RDsxMTA3IDExNjMgMTFCODtCQzVEOzExMDcgMTE2MyAxMUI4OworQkM1RTtCQzVFOzExMDcgMTE2MyAxMUI5O0JDNUU7MTEwNyAxMTYzIDExQjk7CitCQzVGO0JDNUY7MTEwNyAxMTYzIDExQkE7QkM1RjsxMTA3IDExNjMgMTFCQTsKK0JDNjA7QkM2MDsxMTA3IDExNjMgMTFCQjtCQzYwOzExMDcgMTE2MyAxMUJCOworQkM2MTtCQzYxOzExMDcgMTE2MyAxMUJDO0JDNjE7MTEwNyAxMTYzIDExQkM7CitCQzYyO0JDNjI7MTEwNyAxMTYzIDExQkQ7QkM2MjsxMTA3IDExNjMgMTFCRDsKK0JDNjM7QkM2MzsxMTA3IDExNjMgMTFCRTtCQzYzOzExMDcgMTE2MyAxMUJFOworQkM2NDtCQzY0OzExMDcgMTE2MyAxMUJGO0JDNjQ7MTEwNyAxMTYzIDExQkY7CitCQzY1O0JDNjU7MTEwNyAxMTYzIDExQzA7QkM2NTsxMTA3IDExNjMgMTFDMDsKK0JDNjY7QkM2NjsxMTA3IDExNjMgMTFDMTtCQzY2OzExMDcgMTE2MyAxMUMxOworQkM2NztCQzY3OzExMDcgMTE2MyAxMUMyO0JDNjc7MTEwNyAxMTYzIDExQzI7CitCQzY4O0JDNjg7MTEwNyAxMTY0O0JDNjg7MTEwNyAxMTY0OworQkM2OTtCQzY5OzExMDcgMTE2NCAxMUE4O0JDNjk7MTEwNyAxMTY0IDExQTg7CitCQzZBO0JDNkE7MTEwNyAxMTY0IDExQTk7QkM2QTsxMTA3IDExNjQgMTFBOTsKK0JDNkI7QkM2QjsxMTA3IDExNjQgMTFBQTtCQzZCOzExMDcgMTE2NCAxMUFBOworQkM2QztCQzZDOzExMDcgMTE2NCAxMUFCO0JDNkM7MTEwNyAxMTY0IDExQUI7CitCQzZEO0JDNkQ7MTEwNyAxMTY0IDExQUM7QkM2RDsxMTA3IDExNjQgMTFBQzsKK0JDNkU7QkM2RTsxMTA3IDExNjQgMTFBRDtCQzZFOzExMDcgMTE2NCAxMUFEOworQkM2RjtCQzZGOzExMDcgMTE2NCAxMUFFO0JDNkY7MTEwNyAxMTY0IDExQUU7CitCQzcwO0JDNzA7MTEwNyAxMTY0IDExQUY7QkM3MDsxMTA3IDExNjQgMTFBRjsKK0JDNzE7QkM3MTsxMTA3IDExNjQgMTFCMDtCQzcxOzExMDcgMTE2NCAxMUIwOworQkM3MjtCQzcyOzExMDcgMTE2NCAxMUIxO0JDNzI7MTEwNyAxMTY0IDExQjE7CitCQzczO0JDNzM7MTEwNyAxMTY0IDExQjI7QkM3MzsxMTA3IDExNjQgMTFCMjsKK0JDNzQ7QkM3NDsxMTA3IDExNjQgMTFCMztCQzc0OzExMDcgMTE2NCAxMUIzOworQkM3NTtCQzc1OzExMDcgMTE2NCAxMUI0O0JDNzU7MTEwNyAxMTY0IDExQjQ7CitCQzc2O0JDNzY7MTEwNyAxMTY0IDExQjU7QkM3NjsxMTA3IDExNjQgMTFCNTsKK0JDNzc7QkM3NzsxMTA3IDExNjQgMTFCNjtCQzc3OzExMDcgMTE2NCAxMUI2OworQkM3ODtCQzc4OzExMDcgMTE2NCAxMUI3O0JDNzg7MTEwNyAxMTY0IDExQjc7CitCQzc5O0JDNzk7MTEwNyAxMTY0IDExQjg7QkM3OTsxMTA3IDExNjQgMTFCODsKK0JDN0E7QkM3QTsxMTA3IDExNjQgMTFCOTtCQzdBOzExMDcgMTE2NCAxMUI5OworQkM3QjtCQzdCOzExMDcgMTE2NCAxMUJBO0JDN0I7MTEwNyAxMTY0IDExQkE7CitCQzdDO0JDN0M7MTEwNyAxMTY0IDExQkI7QkM3QzsxMTA3IDExNjQgMTFCQjsKK0JDN0Q7QkM3RDsxMTA3IDExNjQgMTFCQztCQzdEOzExMDcgMTE2NCAxMUJDOworQkM3RTtCQzdFOzExMDcgMTE2NCAxMUJEO0JDN0U7MTEwNyAxMTY0IDExQkQ7CitCQzdGO0JDN0Y7MTEwNyAxMTY0IDExQkU7QkM3RjsxMTA3IDExNjQgMTFCRTsKK0JDODA7QkM4MDsxMTA3IDExNjQgMTFCRjtCQzgwOzExMDcgMTE2NCAxMUJGOworQkM4MTtCQzgxOzExMDcgMTE2NCAxMUMwO0JDODE7MTEwNyAxMTY0IDExQzA7CitCQzgyO0JDODI7MTEwNyAxMTY0IDExQzE7QkM4MjsxMTA3IDExNjQgMTFDMTsKK0JDODM7QkM4MzsxMTA3IDExNjQgMTFDMjtCQzgzOzExMDcgMTE2NCAxMUMyOworQkM4NDtCQzg0OzExMDcgMTE2NTtCQzg0OzExMDcgMTE2NTsKK0JDODU7QkM4NTsxMTA3IDExNjUgMTFBODtCQzg1OzExMDcgMTE2NSAxMUE4OworQkM4NjtCQzg2OzExMDcgMTE2NSAxMUE5O0JDODY7MTEwNyAxMTY1IDExQTk7CitCQzg3O0JDODc7MTEwNyAxMTY1IDExQUE7QkM4NzsxMTA3IDExNjUgMTFBQTsKK0JDODg7QkM4ODsxMTA3IDExNjUgMTFBQjtCQzg4OzExMDcgMTE2NSAxMUFCOworQkM4OTtCQzg5OzExMDcgMTE2NSAxMUFDO0JDODk7MTEwNyAxMTY1IDExQUM7CitCQzhBO0JDOEE7MTEwNyAxMTY1IDExQUQ7QkM4QTsxMTA3IDExNjUgMTFBRDsKK0JDOEI7QkM4QjsxMTA3IDExNjUgMTFBRTtCQzhCOzExMDcgMTE2NSAxMUFFOworQkM4QztCQzhDOzExMDcgMTE2NSAxMUFGO0JDOEM7MTEwNyAxMTY1IDExQUY7CitCQzhEO0JDOEQ7MTEwNyAxMTY1IDExQjA7QkM4RDsxMTA3IDExNjUgMTFCMDsKK0JDOEU7QkM4RTsxMTA3IDExNjUgMTFCMTtCQzhFOzExMDcgMTE2NSAxMUIxOworQkM4RjtCQzhGOzExMDcgMTE2NSAxMUIyO0JDOEY7MTEwNyAxMTY1IDExQjI7CitCQzkwO0JDOTA7MTEwNyAxMTY1IDExQjM7QkM5MDsxMTA3IDExNjUgMTFCMzsKK0JDOTE7QkM5MTsxMTA3IDExNjUgMTFCNDtCQzkxOzExMDcgMTE2NSAxMUI0OworQkM5MjtCQzkyOzExMDcgMTE2NSAxMUI1O0JDOTI7MTEwNyAxMTY1IDExQjU7CitCQzkzO0JDOTM7MTEwNyAxMTY1IDExQjY7QkM5MzsxMTA3IDExNjUgMTFCNjsKK0JDOTQ7QkM5NDsxMTA3IDExNjUgMTFCNztCQzk0OzExMDcgMTE2NSAxMUI3OworQkM5NTtCQzk1OzExMDcgMTE2NSAxMUI4O0JDOTU7MTEwNyAxMTY1IDExQjg7CitCQzk2O0JDOTY7MTEwNyAxMTY1IDExQjk7QkM5NjsxMTA3IDExNjUgMTFCOTsKK0JDOTc7QkM5NzsxMTA3IDExNjUgMTFCQTtCQzk3OzExMDcgMTE2NSAxMUJBOworQkM5ODtCQzk4OzExMDcgMTE2NSAxMUJCO0JDOTg7MTEwNyAxMTY1IDExQkI7CitCQzk5O0JDOTk7MTEwNyAxMTY1IDExQkM7QkM5OTsxMTA3IDExNjUgMTFCQzsKK0JDOUE7QkM5QTsxMTA3IDExNjUgMTFCRDtCQzlBOzExMDcgMTE2NSAxMUJEOworQkM5QjtCQzlCOzExMDcgMTE2NSAxMUJFO0JDOUI7MTEwNyAxMTY1IDExQkU7CitCQzlDO0JDOUM7MTEwNyAxMTY1IDExQkY7QkM5QzsxMTA3IDExNjUgMTFCRjsKK0JDOUQ7QkM5RDsxMTA3IDExNjUgMTFDMDtCQzlEOzExMDcgMTE2NSAxMUMwOworQkM5RTtCQzlFOzExMDcgMTE2NSAxMUMxO0JDOUU7MTEwNyAxMTY1IDExQzE7CitCQzlGO0JDOUY7MTEwNyAxMTY1IDExQzI7QkM5RjsxMTA3IDExNjUgMTFDMjsKK0JDQTA7QkNBMDsxMTA3IDExNjY7QkNBMDsxMTA3IDExNjY7CitCQ0ExO0JDQTE7MTEwNyAxMTY2IDExQTg7QkNBMTsxMTA3IDExNjYgMTFBODsKK0JDQTI7QkNBMjsxMTA3IDExNjYgMTFBOTtCQ0EyOzExMDcgMTE2NiAxMUE5OworQkNBMztCQ0EzOzExMDcgMTE2NiAxMUFBO0JDQTM7MTEwNyAxMTY2IDExQUE7CitCQ0E0O0JDQTQ7MTEwNyAxMTY2IDExQUI7QkNBNDsxMTA3IDExNjYgMTFBQjsKK0JDQTU7QkNBNTsxMTA3IDExNjYgMTFBQztCQ0E1OzExMDcgMTE2NiAxMUFDOworQkNBNjtCQ0E2OzExMDcgMTE2NiAxMUFEO0JDQTY7MTEwNyAxMTY2IDExQUQ7CitCQ0E3O0JDQTc7MTEwNyAxMTY2IDExQUU7QkNBNzsxMTA3IDExNjYgMTFBRTsKK0JDQTg7QkNBODsxMTA3IDExNjYgMTFBRjtCQ0E4OzExMDcgMTE2NiAxMUFGOworQkNBOTtCQ0E5OzExMDcgMTE2NiAxMUIwO0JDQTk7MTEwNyAxMTY2IDExQjA7CitCQ0FBO0JDQUE7MTEwNyAxMTY2IDExQjE7QkNBQTsxMTA3IDExNjYgMTFCMTsKK0JDQUI7QkNBQjsxMTA3IDExNjYgMTFCMjtCQ0FCOzExMDcgMTE2NiAxMUIyOworQkNBQztCQ0FDOzExMDcgMTE2NiAxMUIzO0JDQUM7MTEwNyAxMTY2IDExQjM7CitCQ0FEO0JDQUQ7MTEwNyAxMTY2IDExQjQ7QkNBRDsxMTA3IDExNjYgMTFCNDsKK0JDQUU7QkNBRTsxMTA3IDExNjYgMTFCNTtCQ0FFOzExMDcgMTE2NiAxMUI1OworQkNBRjtCQ0FGOzExMDcgMTE2NiAxMUI2O0JDQUY7MTEwNyAxMTY2IDExQjY7CitCQ0IwO0JDQjA7MTEwNyAxMTY2IDExQjc7QkNCMDsxMTA3IDExNjYgMTFCNzsKK0JDQjE7QkNCMTsxMTA3IDExNjYgMTFCODtCQ0IxOzExMDcgMTE2NiAxMUI4OworQkNCMjtCQ0IyOzExMDcgMTE2NiAxMUI5O0JDQjI7MTEwNyAxMTY2IDExQjk7CitCQ0IzO0JDQjM7MTEwNyAxMTY2IDExQkE7QkNCMzsxMTA3IDExNjYgMTFCQTsKK0JDQjQ7QkNCNDsxMTA3IDExNjYgMTFCQjtCQ0I0OzExMDcgMTE2NiAxMUJCOworQkNCNTtCQ0I1OzExMDcgMTE2NiAxMUJDO0JDQjU7MTEwNyAxMTY2IDExQkM7CitCQ0I2O0JDQjY7MTEwNyAxMTY2IDExQkQ7QkNCNjsxMTA3IDExNjYgMTFCRDsKK0JDQjc7QkNCNzsxMTA3IDExNjYgMTFCRTtCQ0I3OzExMDcgMTE2NiAxMUJFOworQkNCODtCQ0I4OzExMDcgMTE2NiAxMUJGO0JDQjg7MTEwNyAxMTY2IDExQkY7CitCQ0I5O0JDQjk7MTEwNyAxMTY2IDExQzA7QkNCOTsxMTA3IDExNjYgMTFDMDsKK0JDQkE7QkNCQTsxMTA3IDExNjYgMTFDMTtCQ0JBOzExMDcgMTE2NiAxMUMxOworQkNCQjtCQ0JCOzExMDcgMTE2NiAxMUMyO0JDQkI7MTEwNyAxMTY2IDExQzI7CitCQ0JDO0JDQkM7MTEwNyAxMTY3O0JDQkM7MTEwNyAxMTY3OworQkNCRDtCQ0JEOzExMDcgMTE2NyAxMUE4O0JDQkQ7MTEwNyAxMTY3IDExQTg7CitCQ0JFO0JDQkU7MTEwNyAxMTY3IDExQTk7QkNCRTsxMTA3IDExNjcgMTFBOTsKK0JDQkY7QkNCRjsxMTA3IDExNjcgMTFBQTtCQ0JGOzExMDcgMTE2NyAxMUFBOworQkNDMDtCQ0MwOzExMDcgMTE2NyAxMUFCO0JDQzA7MTEwNyAxMTY3IDExQUI7CitCQ0MxO0JDQzE7MTEwNyAxMTY3IDExQUM7QkNDMTsxMTA3IDExNjcgMTFBQzsKK0JDQzI7QkNDMjsxMTA3IDExNjcgMTFBRDtCQ0MyOzExMDcgMTE2NyAxMUFEOworQkNDMztCQ0MzOzExMDcgMTE2NyAxMUFFO0JDQzM7MTEwNyAxMTY3IDExQUU7CitCQ0M0O0JDQzQ7MTEwNyAxMTY3IDExQUY7QkNDNDsxMTA3IDExNjcgMTFBRjsKK0JDQzU7QkNDNTsxMTA3IDExNjcgMTFCMDtCQ0M1OzExMDcgMTE2NyAxMUIwOworQkNDNjtCQ0M2OzExMDcgMTE2NyAxMUIxO0JDQzY7MTEwNyAxMTY3IDExQjE7CitCQ0M3O0JDQzc7MTEwNyAxMTY3IDExQjI7QkNDNzsxMTA3IDExNjcgMTFCMjsKK0JDQzg7QkNDODsxMTA3IDExNjcgMTFCMztCQ0M4OzExMDcgMTE2NyAxMUIzOworQkNDOTtCQ0M5OzExMDcgMTE2NyAxMUI0O0JDQzk7MTEwNyAxMTY3IDExQjQ7CitCQ0NBO0JDQ0E7MTEwNyAxMTY3IDExQjU7QkNDQTsxMTA3IDExNjcgMTFCNTsKK0JDQ0I7QkNDQjsxMTA3IDExNjcgMTFCNjtCQ0NCOzExMDcgMTE2NyAxMUI2OworQkNDQztCQ0NDOzExMDcgMTE2NyAxMUI3O0JDQ0M7MTEwNyAxMTY3IDExQjc7CitCQ0NEO0JDQ0Q7MTEwNyAxMTY3IDExQjg7QkNDRDsxMTA3IDExNjcgMTFCODsKK0JDQ0U7QkNDRTsxMTA3IDExNjcgMTFCOTtCQ0NFOzExMDcgMTE2NyAxMUI5OworQkNDRjtCQ0NGOzExMDcgMTE2NyAxMUJBO0JDQ0Y7MTEwNyAxMTY3IDExQkE7CitCQ0QwO0JDRDA7MTEwNyAxMTY3IDExQkI7QkNEMDsxMTA3IDExNjcgMTFCQjsKK0JDRDE7QkNEMTsxMTA3IDExNjcgMTFCQztCQ0QxOzExMDcgMTE2NyAxMUJDOworQkNEMjtCQ0QyOzExMDcgMTE2NyAxMUJEO0JDRDI7MTEwNyAxMTY3IDExQkQ7CitCQ0QzO0JDRDM7MTEwNyAxMTY3IDExQkU7QkNEMzsxMTA3IDExNjcgMTFCRTsKK0JDRDQ7QkNENDsxMTA3IDExNjcgMTFCRjtCQ0Q0OzExMDcgMTE2NyAxMUJGOworQkNENTtCQ0Q1OzExMDcgMTE2NyAxMUMwO0JDRDU7MTEwNyAxMTY3IDExQzA7CitCQ0Q2O0JDRDY7MTEwNyAxMTY3IDExQzE7QkNENjsxMTA3IDExNjcgMTFDMTsKK0JDRDc7QkNENzsxMTA3IDExNjcgMTFDMjtCQ0Q3OzExMDcgMTE2NyAxMUMyOworQkNEODtCQ0Q4OzExMDcgMTE2ODtCQ0Q4OzExMDcgMTE2ODsKK0JDRDk7QkNEOTsxMTA3IDExNjggMTFBODtCQ0Q5OzExMDcgMTE2OCAxMUE4OworQkNEQTtCQ0RBOzExMDcgMTE2OCAxMUE5O0JDREE7MTEwNyAxMTY4IDExQTk7CitCQ0RCO0JDREI7MTEwNyAxMTY4IDExQUE7QkNEQjsxMTA3IDExNjggMTFBQTsKK0JDREM7QkNEQzsxMTA3IDExNjggMTFBQjtCQ0RDOzExMDcgMTE2OCAxMUFCOworQkNERDtCQ0REOzExMDcgMTE2OCAxMUFDO0JDREQ7MTEwNyAxMTY4IDExQUM7CitCQ0RFO0JDREU7MTEwNyAxMTY4IDExQUQ7QkNERTsxMTA3IDExNjggMTFBRDsKK0JDREY7QkNERjsxMTA3IDExNjggMTFBRTtCQ0RGOzExMDcgMTE2OCAxMUFFOworQkNFMDtCQ0UwOzExMDcgMTE2OCAxMUFGO0JDRTA7MTEwNyAxMTY4IDExQUY7CitCQ0UxO0JDRTE7MTEwNyAxMTY4IDExQjA7QkNFMTsxMTA3IDExNjggMTFCMDsKK0JDRTI7QkNFMjsxMTA3IDExNjggMTFCMTtCQ0UyOzExMDcgMTE2OCAxMUIxOworQkNFMztCQ0UzOzExMDcgMTE2OCAxMUIyO0JDRTM7MTEwNyAxMTY4IDExQjI7CitCQ0U0O0JDRTQ7MTEwNyAxMTY4IDExQjM7QkNFNDsxMTA3IDExNjggMTFCMzsKK0JDRTU7QkNFNTsxMTA3IDExNjggMTFCNDtCQ0U1OzExMDcgMTE2OCAxMUI0OworQkNFNjtCQ0U2OzExMDcgMTE2OCAxMUI1O0JDRTY7MTEwNyAxMTY4IDExQjU7CitCQ0U3O0JDRTc7MTEwNyAxMTY4IDExQjY7QkNFNzsxMTA3IDExNjggMTFCNjsKK0JDRTg7QkNFODsxMTA3IDExNjggMTFCNztCQ0U4OzExMDcgMTE2OCAxMUI3OworQkNFOTtCQ0U5OzExMDcgMTE2OCAxMUI4O0JDRTk7MTEwNyAxMTY4IDExQjg7CitCQ0VBO0JDRUE7MTEwNyAxMTY4IDExQjk7QkNFQTsxMTA3IDExNjggMTFCOTsKK0JDRUI7QkNFQjsxMTA3IDExNjggMTFCQTtCQ0VCOzExMDcgMTE2OCAxMUJBOworQkNFQztCQ0VDOzExMDcgMTE2OCAxMUJCO0JDRUM7MTEwNyAxMTY4IDExQkI7CitCQ0VEO0JDRUQ7MTEwNyAxMTY4IDExQkM7QkNFRDsxMTA3IDExNjggMTFCQzsKK0JDRUU7QkNFRTsxMTA3IDExNjggMTFCRDtCQ0VFOzExMDcgMTE2OCAxMUJEOworQkNFRjtCQ0VGOzExMDcgMTE2OCAxMUJFO0JDRUY7MTEwNyAxMTY4IDExQkU7CitCQ0YwO0JDRjA7MTEwNyAxMTY4IDExQkY7QkNGMDsxMTA3IDExNjggMTFCRjsKK0JDRjE7QkNGMTsxMTA3IDExNjggMTFDMDtCQ0YxOzExMDcgMTE2OCAxMUMwOworQkNGMjtCQ0YyOzExMDcgMTE2OCAxMUMxO0JDRjI7MTEwNyAxMTY4IDExQzE7CitCQ0YzO0JDRjM7MTEwNyAxMTY4IDExQzI7QkNGMzsxMTA3IDExNjggMTFDMjsKK0JDRjQ7QkNGNDsxMTA3IDExNjk7QkNGNDsxMTA3IDExNjk7CitCQ0Y1O0JDRjU7MTEwNyAxMTY5IDExQTg7QkNGNTsxMTA3IDExNjkgMTFBODsKK0JDRjY7QkNGNjsxMTA3IDExNjkgMTFBOTtCQ0Y2OzExMDcgMTE2OSAxMUE5OworQkNGNztCQ0Y3OzExMDcgMTE2OSAxMUFBO0JDRjc7MTEwNyAxMTY5IDExQUE7CitCQ0Y4O0JDRjg7MTEwNyAxMTY5IDExQUI7QkNGODsxMTA3IDExNjkgMTFBQjsKK0JDRjk7QkNGOTsxMTA3IDExNjkgMTFBQztCQ0Y5OzExMDcgMTE2OSAxMUFDOworQkNGQTtCQ0ZBOzExMDcgMTE2OSAxMUFEO0JDRkE7MTEwNyAxMTY5IDExQUQ7CitCQ0ZCO0JDRkI7MTEwNyAxMTY5IDExQUU7QkNGQjsxMTA3IDExNjkgMTFBRTsKK0JDRkM7QkNGQzsxMTA3IDExNjkgMTFBRjtCQ0ZDOzExMDcgMTE2OSAxMUFGOworQkNGRDtCQ0ZEOzExMDcgMTE2OSAxMUIwO0JDRkQ7MTEwNyAxMTY5IDExQjA7CitCQ0ZFO0JDRkU7MTEwNyAxMTY5IDExQjE7QkNGRTsxMTA3IDExNjkgMTFCMTsKK0JDRkY7QkNGRjsxMTA3IDExNjkgMTFCMjtCQ0ZGOzExMDcgMTE2OSAxMUIyOworQkQwMDtCRDAwOzExMDcgMTE2OSAxMUIzO0JEMDA7MTEwNyAxMTY5IDExQjM7CitCRDAxO0JEMDE7MTEwNyAxMTY5IDExQjQ7QkQwMTsxMTA3IDExNjkgMTFCNDsKK0JEMDI7QkQwMjsxMTA3IDExNjkgMTFCNTtCRDAyOzExMDcgMTE2OSAxMUI1OworQkQwMztCRDAzOzExMDcgMTE2OSAxMUI2O0JEMDM7MTEwNyAxMTY5IDExQjY7CitCRDA0O0JEMDQ7MTEwNyAxMTY5IDExQjc7QkQwNDsxMTA3IDExNjkgMTFCNzsKK0JEMDU7QkQwNTsxMTA3IDExNjkgMTFCODtCRDA1OzExMDcgMTE2OSAxMUI4OworQkQwNjtCRDA2OzExMDcgMTE2OSAxMUI5O0JEMDY7MTEwNyAxMTY5IDExQjk7CitCRDA3O0JEMDc7MTEwNyAxMTY5IDExQkE7QkQwNzsxMTA3IDExNjkgMTFCQTsKK0JEMDg7QkQwODsxMTA3IDExNjkgMTFCQjtCRDA4OzExMDcgMTE2OSAxMUJCOworQkQwOTtCRDA5OzExMDcgMTE2OSAxMUJDO0JEMDk7MTEwNyAxMTY5IDExQkM7CitCRDBBO0JEMEE7MTEwNyAxMTY5IDExQkQ7QkQwQTsxMTA3IDExNjkgMTFCRDsKK0JEMEI7QkQwQjsxMTA3IDExNjkgMTFCRTtCRDBCOzExMDcgMTE2OSAxMUJFOworQkQwQztCRDBDOzExMDcgMTE2OSAxMUJGO0JEMEM7MTEwNyAxMTY5IDExQkY7CitCRDBEO0JEMEQ7MTEwNyAxMTY5IDExQzA7QkQwRDsxMTA3IDExNjkgMTFDMDsKK0JEMEU7QkQwRTsxMTA3IDExNjkgMTFDMTtCRDBFOzExMDcgMTE2OSAxMUMxOworQkQwRjtCRDBGOzExMDcgMTE2OSAxMUMyO0JEMEY7MTEwNyAxMTY5IDExQzI7CitCRDEwO0JEMTA7MTEwNyAxMTZBO0JEMTA7MTEwNyAxMTZBOworQkQxMTtCRDExOzExMDcgMTE2QSAxMUE4O0JEMTE7MTEwNyAxMTZBIDExQTg7CitCRDEyO0JEMTI7MTEwNyAxMTZBIDExQTk7QkQxMjsxMTA3IDExNkEgMTFBOTsKK0JEMTM7QkQxMzsxMTA3IDExNkEgMTFBQTtCRDEzOzExMDcgMTE2QSAxMUFBOworQkQxNDtCRDE0OzExMDcgMTE2QSAxMUFCO0JEMTQ7MTEwNyAxMTZBIDExQUI7CitCRDE1O0JEMTU7MTEwNyAxMTZBIDExQUM7QkQxNTsxMTA3IDExNkEgMTFBQzsKK0JEMTY7QkQxNjsxMTA3IDExNkEgMTFBRDtCRDE2OzExMDcgMTE2QSAxMUFEOworQkQxNztCRDE3OzExMDcgMTE2QSAxMUFFO0JEMTc7MTEwNyAxMTZBIDExQUU7CitCRDE4O0JEMTg7MTEwNyAxMTZBIDExQUY7QkQxODsxMTA3IDExNkEgMTFBRjsKK0JEMTk7QkQxOTsxMTA3IDExNkEgMTFCMDtCRDE5OzExMDcgMTE2QSAxMUIwOworQkQxQTtCRDFBOzExMDcgMTE2QSAxMUIxO0JEMUE7MTEwNyAxMTZBIDExQjE7CitCRDFCO0JEMUI7MTEwNyAxMTZBIDExQjI7QkQxQjsxMTA3IDExNkEgMTFCMjsKK0JEMUM7QkQxQzsxMTA3IDExNkEgMTFCMztCRDFDOzExMDcgMTE2QSAxMUIzOworQkQxRDtCRDFEOzExMDcgMTE2QSAxMUI0O0JEMUQ7MTEwNyAxMTZBIDExQjQ7CitCRDFFO0JEMUU7MTEwNyAxMTZBIDExQjU7QkQxRTsxMTA3IDExNkEgMTFCNTsKK0JEMUY7QkQxRjsxMTA3IDExNkEgMTFCNjtCRDFGOzExMDcgMTE2QSAxMUI2OworQkQyMDtCRDIwOzExMDcgMTE2QSAxMUI3O0JEMjA7MTEwNyAxMTZBIDExQjc7CitCRDIxO0JEMjE7MTEwNyAxMTZBIDExQjg7QkQyMTsxMTA3IDExNkEgMTFCODsKK0JEMjI7QkQyMjsxMTA3IDExNkEgMTFCOTtCRDIyOzExMDcgMTE2QSAxMUI5OworQkQyMztCRDIzOzExMDcgMTE2QSAxMUJBO0JEMjM7MTEwNyAxMTZBIDExQkE7CitCRDI0O0JEMjQ7MTEwNyAxMTZBIDExQkI7QkQyNDsxMTA3IDExNkEgMTFCQjsKK0JEMjU7QkQyNTsxMTA3IDExNkEgMTFCQztCRDI1OzExMDcgMTE2QSAxMUJDOworQkQyNjtCRDI2OzExMDcgMTE2QSAxMUJEO0JEMjY7MTEwNyAxMTZBIDExQkQ7CitCRDI3O0JEMjc7MTEwNyAxMTZBIDExQkU7QkQyNzsxMTA3IDExNkEgMTFCRTsKK0JEMjg7QkQyODsxMTA3IDExNkEgMTFCRjtCRDI4OzExMDcgMTE2QSAxMUJGOworQkQyOTtCRDI5OzExMDcgMTE2QSAxMUMwO0JEMjk7MTEwNyAxMTZBIDExQzA7CitCRDJBO0JEMkE7MTEwNyAxMTZBIDExQzE7QkQyQTsxMTA3IDExNkEgMTFDMTsKK0JEMkI7QkQyQjsxMTA3IDExNkEgMTFDMjtCRDJCOzExMDcgMTE2QSAxMUMyOworQkQyQztCRDJDOzExMDcgMTE2QjtCRDJDOzExMDcgMTE2QjsKK0JEMkQ7QkQyRDsxMTA3IDExNkIgMTFBODtCRDJEOzExMDcgMTE2QiAxMUE4OworQkQyRTtCRDJFOzExMDcgMTE2QiAxMUE5O0JEMkU7MTEwNyAxMTZCIDExQTk7CitCRDJGO0JEMkY7MTEwNyAxMTZCIDExQUE7QkQyRjsxMTA3IDExNkIgMTFBQTsKK0JEMzA7QkQzMDsxMTA3IDExNkIgMTFBQjtCRDMwOzExMDcgMTE2QiAxMUFCOworQkQzMTtCRDMxOzExMDcgMTE2QiAxMUFDO0JEMzE7MTEwNyAxMTZCIDExQUM7CitCRDMyO0JEMzI7MTEwNyAxMTZCIDExQUQ7QkQzMjsxMTA3IDExNkIgMTFBRDsKK0JEMzM7QkQzMzsxMTA3IDExNkIgMTFBRTtCRDMzOzExMDcgMTE2QiAxMUFFOworQkQzNDtCRDM0OzExMDcgMTE2QiAxMUFGO0JEMzQ7MTEwNyAxMTZCIDExQUY7CitCRDM1O0JEMzU7MTEwNyAxMTZCIDExQjA7QkQzNTsxMTA3IDExNkIgMTFCMDsKK0JEMzY7QkQzNjsxMTA3IDExNkIgMTFCMTtCRDM2OzExMDcgMTE2QiAxMUIxOworQkQzNztCRDM3OzExMDcgMTE2QiAxMUIyO0JEMzc7MTEwNyAxMTZCIDExQjI7CitCRDM4O0JEMzg7MTEwNyAxMTZCIDExQjM7QkQzODsxMTA3IDExNkIgMTFCMzsKK0JEMzk7QkQzOTsxMTA3IDExNkIgMTFCNDtCRDM5OzExMDcgMTE2QiAxMUI0OworQkQzQTtCRDNBOzExMDcgMTE2QiAxMUI1O0JEM0E7MTEwNyAxMTZCIDExQjU7CitCRDNCO0JEM0I7MTEwNyAxMTZCIDExQjY7QkQzQjsxMTA3IDExNkIgMTFCNjsKK0JEM0M7QkQzQzsxMTA3IDExNkIgMTFCNztCRDNDOzExMDcgMTE2QiAxMUI3OworQkQzRDtCRDNEOzExMDcgMTE2QiAxMUI4O0JEM0Q7MTEwNyAxMTZCIDExQjg7CitCRDNFO0JEM0U7MTEwNyAxMTZCIDExQjk7QkQzRTsxMTA3IDExNkIgMTFCOTsKK0JEM0Y7QkQzRjsxMTA3IDExNkIgMTFCQTtCRDNGOzExMDcgMTE2QiAxMUJBOworQkQ0MDtCRDQwOzExMDcgMTE2QiAxMUJCO0JENDA7MTEwNyAxMTZCIDExQkI7CitCRDQxO0JENDE7MTEwNyAxMTZCIDExQkM7QkQ0MTsxMTA3IDExNkIgMTFCQzsKK0JENDI7QkQ0MjsxMTA3IDExNkIgMTFCRDtCRDQyOzExMDcgMTE2QiAxMUJEOworQkQ0MztCRDQzOzExMDcgMTE2QiAxMUJFO0JENDM7MTEwNyAxMTZCIDExQkU7CitCRDQ0O0JENDQ7MTEwNyAxMTZCIDExQkY7QkQ0NDsxMTA3IDExNkIgMTFCRjsKK0JENDU7QkQ0NTsxMTA3IDExNkIgMTFDMDtCRDQ1OzExMDcgMTE2QiAxMUMwOworQkQ0NjtCRDQ2OzExMDcgMTE2QiAxMUMxO0JENDY7MTEwNyAxMTZCIDExQzE7CitCRDQ3O0JENDc7MTEwNyAxMTZCIDExQzI7QkQ0NzsxMTA3IDExNkIgMTFDMjsKK0JENDg7QkQ0ODsxMTA3IDExNkM7QkQ0ODsxMTA3IDExNkM7CitCRDQ5O0JENDk7MTEwNyAxMTZDIDExQTg7QkQ0OTsxMTA3IDExNkMgMTFBODsKK0JENEE7QkQ0QTsxMTA3IDExNkMgMTFBOTtCRDRBOzExMDcgMTE2QyAxMUE5OworQkQ0QjtCRDRCOzExMDcgMTE2QyAxMUFBO0JENEI7MTEwNyAxMTZDIDExQUE7CitCRDRDO0JENEM7MTEwNyAxMTZDIDExQUI7QkQ0QzsxMTA3IDExNkMgMTFBQjsKK0JENEQ7QkQ0RDsxMTA3IDExNkMgMTFBQztCRDREOzExMDcgMTE2QyAxMUFDOworQkQ0RTtCRDRFOzExMDcgMTE2QyAxMUFEO0JENEU7MTEwNyAxMTZDIDExQUQ7CitCRDRGO0JENEY7MTEwNyAxMTZDIDExQUU7QkQ0RjsxMTA3IDExNkMgMTFBRTsKK0JENTA7QkQ1MDsxMTA3IDExNkMgMTFBRjtCRDUwOzExMDcgMTE2QyAxMUFGOworQkQ1MTtCRDUxOzExMDcgMTE2QyAxMUIwO0JENTE7MTEwNyAxMTZDIDExQjA7CitCRDUyO0JENTI7MTEwNyAxMTZDIDExQjE7QkQ1MjsxMTA3IDExNkMgMTFCMTsKK0JENTM7QkQ1MzsxMTA3IDExNkMgMTFCMjtCRDUzOzExMDcgMTE2QyAxMUIyOworQkQ1NDtCRDU0OzExMDcgMTE2QyAxMUIzO0JENTQ7MTEwNyAxMTZDIDExQjM7CitCRDU1O0JENTU7MTEwNyAxMTZDIDExQjQ7QkQ1NTsxMTA3IDExNkMgMTFCNDsKK0JENTY7QkQ1NjsxMTA3IDExNkMgMTFCNTtCRDU2OzExMDcgMTE2QyAxMUI1OworQkQ1NztCRDU3OzExMDcgMTE2QyAxMUI2O0JENTc7MTEwNyAxMTZDIDExQjY7CitCRDU4O0JENTg7MTEwNyAxMTZDIDExQjc7QkQ1ODsxMTA3IDExNkMgMTFCNzsKK0JENTk7QkQ1OTsxMTA3IDExNkMgMTFCODtCRDU5OzExMDcgMTE2QyAxMUI4OworQkQ1QTtCRDVBOzExMDcgMTE2QyAxMUI5O0JENUE7MTEwNyAxMTZDIDExQjk7CitCRDVCO0JENUI7MTEwNyAxMTZDIDExQkE7QkQ1QjsxMTA3IDExNkMgMTFCQTsKK0JENUM7QkQ1QzsxMTA3IDExNkMgMTFCQjtCRDVDOzExMDcgMTE2QyAxMUJCOworQkQ1RDtCRDVEOzExMDcgMTE2QyAxMUJDO0JENUQ7MTEwNyAxMTZDIDExQkM7CitCRDVFO0JENUU7MTEwNyAxMTZDIDExQkQ7QkQ1RTsxMTA3IDExNkMgMTFCRDsKK0JENUY7QkQ1RjsxMTA3IDExNkMgMTFCRTtCRDVGOzExMDcgMTE2QyAxMUJFOworQkQ2MDtCRDYwOzExMDcgMTE2QyAxMUJGO0JENjA7MTEwNyAxMTZDIDExQkY7CitCRDYxO0JENjE7MTEwNyAxMTZDIDExQzA7QkQ2MTsxMTA3IDExNkMgMTFDMDsKK0JENjI7QkQ2MjsxMTA3IDExNkMgMTFDMTtCRDYyOzExMDcgMTE2QyAxMUMxOworQkQ2MztCRDYzOzExMDcgMTE2QyAxMUMyO0JENjM7MTEwNyAxMTZDIDExQzI7CitCRDY0O0JENjQ7MTEwNyAxMTZEO0JENjQ7MTEwNyAxMTZEOworQkQ2NTtCRDY1OzExMDcgMTE2RCAxMUE4O0JENjU7MTEwNyAxMTZEIDExQTg7CitCRDY2O0JENjY7MTEwNyAxMTZEIDExQTk7QkQ2NjsxMTA3IDExNkQgMTFBOTsKK0JENjc7QkQ2NzsxMTA3IDExNkQgMTFBQTtCRDY3OzExMDcgMTE2RCAxMUFBOworQkQ2ODtCRDY4OzExMDcgMTE2RCAxMUFCO0JENjg7MTEwNyAxMTZEIDExQUI7CitCRDY5O0JENjk7MTEwNyAxMTZEIDExQUM7QkQ2OTsxMTA3IDExNkQgMTFBQzsKK0JENkE7QkQ2QTsxMTA3IDExNkQgMTFBRDtCRDZBOzExMDcgMTE2RCAxMUFEOworQkQ2QjtCRDZCOzExMDcgMTE2RCAxMUFFO0JENkI7MTEwNyAxMTZEIDExQUU7CitCRDZDO0JENkM7MTEwNyAxMTZEIDExQUY7QkQ2QzsxMTA3IDExNkQgMTFBRjsKK0JENkQ7QkQ2RDsxMTA3IDExNkQgMTFCMDtCRDZEOzExMDcgMTE2RCAxMUIwOworQkQ2RTtCRDZFOzExMDcgMTE2RCAxMUIxO0JENkU7MTEwNyAxMTZEIDExQjE7CitCRDZGO0JENkY7MTEwNyAxMTZEIDExQjI7QkQ2RjsxMTA3IDExNkQgMTFCMjsKK0JENzA7QkQ3MDsxMTA3IDExNkQgMTFCMztCRDcwOzExMDcgMTE2RCAxMUIzOworQkQ3MTtCRDcxOzExMDcgMTE2RCAxMUI0O0JENzE7MTEwNyAxMTZEIDExQjQ7CitCRDcyO0JENzI7MTEwNyAxMTZEIDExQjU7QkQ3MjsxMTA3IDExNkQgMTFCNTsKK0JENzM7QkQ3MzsxMTA3IDExNkQgMTFCNjtCRDczOzExMDcgMTE2RCAxMUI2OworQkQ3NDtCRDc0OzExMDcgMTE2RCAxMUI3O0JENzQ7MTEwNyAxMTZEIDExQjc7CitCRDc1O0JENzU7MTEwNyAxMTZEIDExQjg7QkQ3NTsxMTA3IDExNkQgMTFCODsKK0JENzY7QkQ3NjsxMTA3IDExNkQgMTFCOTtCRDc2OzExMDcgMTE2RCAxMUI5OworQkQ3NztCRDc3OzExMDcgMTE2RCAxMUJBO0JENzc7MTEwNyAxMTZEIDExQkE7CitCRDc4O0JENzg7MTEwNyAxMTZEIDExQkI7QkQ3ODsxMTA3IDExNkQgMTFCQjsKK0JENzk7QkQ3OTsxMTA3IDExNkQgMTFCQztCRDc5OzExMDcgMTE2RCAxMUJDOworQkQ3QTtCRDdBOzExMDcgMTE2RCAxMUJEO0JEN0E7MTEwNyAxMTZEIDExQkQ7CitCRDdCO0JEN0I7MTEwNyAxMTZEIDExQkU7QkQ3QjsxMTA3IDExNkQgMTFCRTsKK0JEN0M7QkQ3QzsxMTA3IDExNkQgMTFCRjtCRDdDOzExMDcgMTE2RCAxMUJGOworQkQ3RDtCRDdEOzExMDcgMTE2RCAxMUMwO0JEN0Q7MTEwNyAxMTZEIDExQzA7CitCRDdFO0JEN0U7MTEwNyAxMTZEIDExQzE7QkQ3RTsxMTA3IDExNkQgMTFDMTsKK0JEN0Y7QkQ3RjsxMTA3IDExNkQgMTFDMjtCRDdGOzExMDcgMTE2RCAxMUMyOworQkQ4MDtCRDgwOzExMDcgMTE2RTtCRDgwOzExMDcgMTE2RTsKK0JEODE7QkQ4MTsxMTA3IDExNkUgMTFBODtCRDgxOzExMDcgMTE2RSAxMUE4OworQkQ4MjtCRDgyOzExMDcgMTE2RSAxMUE5O0JEODI7MTEwNyAxMTZFIDExQTk7CitCRDgzO0JEODM7MTEwNyAxMTZFIDExQUE7QkQ4MzsxMTA3IDExNkUgMTFBQTsKK0JEODQ7QkQ4NDsxMTA3IDExNkUgMTFBQjtCRDg0OzExMDcgMTE2RSAxMUFCOworQkQ4NTtCRDg1OzExMDcgMTE2RSAxMUFDO0JEODU7MTEwNyAxMTZFIDExQUM7CitCRDg2O0JEODY7MTEwNyAxMTZFIDExQUQ7QkQ4NjsxMTA3IDExNkUgMTFBRDsKK0JEODc7QkQ4NzsxMTA3IDExNkUgMTFBRTtCRDg3OzExMDcgMTE2RSAxMUFFOworQkQ4ODtCRDg4OzExMDcgMTE2RSAxMUFGO0JEODg7MTEwNyAxMTZFIDExQUY7CitCRDg5O0JEODk7MTEwNyAxMTZFIDExQjA7QkQ4OTsxMTA3IDExNkUgMTFCMDsKK0JEOEE7QkQ4QTsxMTA3IDExNkUgMTFCMTtCRDhBOzExMDcgMTE2RSAxMUIxOworQkQ4QjtCRDhCOzExMDcgMTE2RSAxMUIyO0JEOEI7MTEwNyAxMTZFIDExQjI7CitCRDhDO0JEOEM7MTEwNyAxMTZFIDExQjM7QkQ4QzsxMTA3IDExNkUgMTFCMzsKK0JEOEQ7QkQ4RDsxMTA3IDExNkUgMTFCNDtCRDhEOzExMDcgMTE2RSAxMUI0OworQkQ4RTtCRDhFOzExMDcgMTE2RSAxMUI1O0JEOEU7MTEwNyAxMTZFIDExQjU7CitCRDhGO0JEOEY7MTEwNyAxMTZFIDExQjY7QkQ4RjsxMTA3IDExNkUgMTFCNjsKK0JEOTA7QkQ5MDsxMTA3IDExNkUgMTFCNztCRDkwOzExMDcgMTE2RSAxMUI3OworQkQ5MTtCRDkxOzExMDcgMTE2RSAxMUI4O0JEOTE7MTEwNyAxMTZFIDExQjg7CitCRDkyO0JEOTI7MTEwNyAxMTZFIDExQjk7QkQ5MjsxMTA3IDExNkUgMTFCOTsKK0JEOTM7QkQ5MzsxMTA3IDExNkUgMTFCQTtCRDkzOzExMDcgMTE2RSAxMUJBOworQkQ5NDtCRDk0OzExMDcgMTE2RSAxMUJCO0JEOTQ7MTEwNyAxMTZFIDExQkI7CitCRDk1O0JEOTU7MTEwNyAxMTZFIDExQkM7QkQ5NTsxMTA3IDExNkUgMTFCQzsKK0JEOTY7QkQ5NjsxMTA3IDExNkUgMTFCRDtCRDk2OzExMDcgMTE2RSAxMUJEOworQkQ5NztCRDk3OzExMDcgMTE2RSAxMUJFO0JEOTc7MTEwNyAxMTZFIDExQkU7CitCRDk4O0JEOTg7MTEwNyAxMTZFIDExQkY7QkQ5ODsxMTA3IDExNkUgMTFCRjsKK0JEOTk7QkQ5OTsxMTA3IDExNkUgMTFDMDtCRDk5OzExMDcgMTE2RSAxMUMwOworQkQ5QTtCRDlBOzExMDcgMTE2RSAxMUMxO0JEOUE7MTEwNyAxMTZFIDExQzE7CitCRDlCO0JEOUI7MTEwNyAxMTZFIDExQzI7QkQ5QjsxMTA3IDExNkUgMTFDMjsKK0JEOUM7QkQ5QzsxMTA3IDExNkY7QkQ5QzsxMTA3IDExNkY7CitCRDlEO0JEOUQ7MTEwNyAxMTZGIDExQTg7QkQ5RDsxMTA3IDExNkYgMTFBODsKK0JEOUU7QkQ5RTsxMTA3IDExNkYgMTFBOTtCRDlFOzExMDcgMTE2RiAxMUE5OworQkQ5RjtCRDlGOzExMDcgMTE2RiAxMUFBO0JEOUY7MTEwNyAxMTZGIDExQUE7CitCREEwO0JEQTA7MTEwNyAxMTZGIDExQUI7QkRBMDsxMTA3IDExNkYgMTFBQjsKK0JEQTE7QkRBMTsxMTA3IDExNkYgMTFBQztCREExOzExMDcgMTE2RiAxMUFDOworQkRBMjtCREEyOzExMDcgMTE2RiAxMUFEO0JEQTI7MTEwNyAxMTZGIDExQUQ7CitCREEzO0JEQTM7MTEwNyAxMTZGIDExQUU7QkRBMzsxMTA3IDExNkYgMTFBRTsKK0JEQTQ7QkRBNDsxMTA3IDExNkYgMTFBRjtCREE0OzExMDcgMTE2RiAxMUFGOworQkRBNTtCREE1OzExMDcgMTE2RiAxMUIwO0JEQTU7MTEwNyAxMTZGIDExQjA7CitCREE2O0JEQTY7MTEwNyAxMTZGIDExQjE7QkRBNjsxMTA3IDExNkYgMTFCMTsKK0JEQTc7QkRBNzsxMTA3IDExNkYgMTFCMjtCREE3OzExMDcgMTE2RiAxMUIyOworQkRBODtCREE4OzExMDcgMTE2RiAxMUIzO0JEQTg7MTEwNyAxMTZGIDExQjM7CitCREE5O0JEQTk7MTEwNyAxMTZGIDExQjQ7QkRBOTsxMTA3IDExNkYgMTFCNDsKK0JEQUE7QkRBQTsxMTA3IDExNkYgMTFCNTtCREFBOzExMDcgMTE2RiAxMUI1OworQkRBQjtCREFCOzExMDcgMTE2RiAxMUI2O0JEQUI7MTEwNyAxMTZGIDExQjY7CitCREFDO0JEQUM7MTEwNyAxMTZGIDExQjc7QkRBQzsxMTA3IDExNkYgMTFCNzsKK0JEQUQ7QkRBRDsxMTA3IDExNkYgMTFCODtCREFEOzExMDcgMTE2RiAxMUI4OworQkRBRTtCREFFOzExMDcgMTE2RiAxMUI5O0JEQUU7MTEwNyAxMTZGIDExQjk7CitCREFGO0JEQUY7MTEwNyAxMTZGIDExQkE7QkRBRjsxMTA3IDExNkYgMTFCQTsKK0JEQjA7QkRCMDsxMTA3IDExNkYgMTFCQjtCREIwOzExMDcgMTE2RiAxMUJCOworQkRCMTtCREIxOzExMDcgMTE2RiAxMUJDO0JEQjE7MTEwNyAxMTZGIDExQkM7CitCREIyO0JEQjI7MTEwNyAxMTZGIDExQkQ7QkRCMjsxMTA3IDExNkYgMTFCRDsKK0JEQjM7QkRCMzsxMTA3IDExNkYgMTFCRTtCREIzOzExMDcgMTE2RiAxMUJFOworQkRCNDtCREI0OzExMDcgMTE2RiAxMUJGO0JEQjQ7MTEwNyAxMTZGIDExQkY7CitCREI1O0JEQjU7MTEwNyAxMTZGIDExQzA7QkRCNTsxMTA3IDExNkYgMTFDMDsKK0JEQjY7QkRCNjsxMTA3IDExNkYgMTFDMTtCREI2OzExMDcgMTE2RiAxMUMxOworQkRCNztCREI3OzExMDcgMTE2RiAxMUMyO0JEQjc7MTEwNyAxMTZGIDExQzI7CitCREI4O0JEQjg7MTEwNyAxMTcwO0JEQjg7MTEwNyAxMTcwOworQkRCOTtCREI5OzExMDcgMTE3MCAxMUE4O0JEQjk7MTEwNyAxMTcwIDExQTg7CitCREJBO0JEQkE7MTEwNyAxMTcwIDExQTk7QkRCQTsxMTA3IDExNzAgMTFBOTsKK0JEQkI7QkRCQjsxMTA3IDExNzAgMTFBQTtCREJCOzExMDcgMTE3MCAxMUFBOworQkRCQztCREJDOzExMDcgMTE3MCAxMUFCO0JEQkM7MTEwNyAxMTcwIDExQUI7CitCREJEO0JEQkQ7MTEwNyAxMTcwIDExQUM7QkRCRDsxMTA3IDExNzAgMTFBQzsKK0JEQkU7QkRCRTsxMTA3IDExNzAgMTFBRDtCREJFOzExMDcgMTE3MCAxMUFEOworQkRCRjtCREJGOzExMDcgMTE3MCAxMUFFO0JEQkY7MTEwNyAxMTcwIDExQUU7CitCREMwO0JEQzA7MTEwNyAxMTcwIDExQUY7QkRDMDsxMTA3IDExNzAgMTFBRjsKK0JEQzE7QkRDMTsxMTA3IDExNzAgMTFCMDtCREMxOzExMDcgMTE3MCAxMUIwOworQkRDMjtCREMyOzExMDcgMTE3MCAxMUIxO0JEQzI7MTEwNyAxMTcwIDExQjE7CitCREMzO0JEQzM7MTEwNyAxMTcwIDExQjI7QkRDMzsxMTA3IDExNzAgMTFCMjsKK0JEQzQ7QkRDNDsxMTA3IDExNzAgMTFCMztCREM0OzExMDcgMTE3MCAxMUIzOworQkRDNTtCREM1OzExMDcgMTE3MCAxMUI0O0JEQzU7MTEwNyAxMTcwIDExQjQ7CitCREM2O0JEQzY7MTEwNyAxMTcwIDExQjU7QkRDNjsxMTA3IDExNzAgMTFCNTsKK0JEQzc7QkRDNzsxMTA3IDExNzAgMTFCNjtCREM3OzExMDcgMTE3MCAxMUI2OworQkRDODtCREM4OzExMDcgMTE3MCAxMUI3O0JEQzg7MTEwNyAxMTcwIDExQjc7CitCREM5O0JEQzk7MTEwNyAxMTcwIDExQjg7QkRDOTsxMTA3IDExNzAgMTFCODsKK0JEQ0E7QkRDQTsxMTA3IDExNzAgMTFCOTtCRENBOzExMDcgMTE3MCAxMUI5OworQkRDQjtCRENCOzExMDcgMTE3MCAxMUJBO0JEQ0I7MTEwNyAxMTcwIDExQkE7CitCRENDO0JEQ0M7MTEwNyAxMTcwIDExQkI7QkRDQzsxMTA3IDExNzAgMTFCQjsKK0JEQ0Q7QkRDRDsxMTA3IDExNzAgMTFCQztCRENEOzExMDcgMTE3MCAxMUJDOworQkRDRTtCRENFOzExMDcgMTE3MCAxMUJEO0JEQ0U7MTEwNyAxMTcwIDExQkQ7CitCRENGO0JEQ0Y7MTEwNyAxMTcwIDExQkU7QkRDRjsxMTA3IDExNzAgMTFCRTsKK0JERDA7QkREMDsxMTA3IDExNzAgMTFCRjtCREQwOzExMDcgMTE3MCAxMUJGOworQkREMTtCREQxOzExMDcgMTE3MCAxMUMwO0JERDE7MTEwNyAxMTcwIDExQzA7CitCREQyO0JERDI7MTEwNyAxMTcwIDExQzE7QkREMjsxMTA3IDExNzAgMTFDMTsKK0JERDM7QkREMzsxMTA3IDExNzAgMTFDMjtCREQzOzExMDcgMTE3MCAxMUMyOworQkRENDtCREQ0OzExMDcgMTE3MTtCREQ0OzExMDcgMTE3MTsKK0JERDU7QkRENTsxMTA3IDExNzEgMTFBODtCREQ1OzExMDcgMTE3MSAxMUE4OworQkRENjtCREQ2OzExMDcgMTE3MSAxMUE5O0JERDY7MTEwNyAxMTcxIDExQTk7CitCREQ3O0JERDc7MTEwNyAxMTcxIDExQUE7QkRENzsxMTA3IDExNzEgMTFBQTsKK0JERDg7QkREODsxMTA3IDExNzEgMTFBQjtCREQ4OzExMDcgMTE3MSAxMUFCOworQkREOTtCREQ5OzExMDcgMTE3MSAxMUFDO0JERDk7MTEwNyAxMTcxIDExQUM7CitCRERBO0JEREE7MTEwNyAxMTcxIDExQUQ7QkREQTsxMTA3IDExNzEgMTFBRDsKK0JEREI7QkREQjsxMTA3IDExNzEgMTFBRTtCRERCOzExMDcgMTE3MSAxMUFFOworQkREQztCRERDOzExMDcgMTE3MSAxMUFGO0JEREM7MTEwNyAxMTcxIDExQUY7CitCREREO0JEREQ7MTEwNyAxMTcxIDExQjA7QkRERDsxMTA3IDExNzEgMTFCMDsKK0JEREU7QkRERTsxMTA3IDExNzEgMTFCMTtCRERFOzExMDcgMTE3MSAxMUIxOworQkRERjtCRERGOzExMDcgMTE3MSAxMUIyO0JEREY7MTEwNyAxMTcxIDExQjI7CitCREUwO0JERTA7MTEwNyAxMTcxIDExQjM7QkRFMDsxMTA3IDExNzEgMTFCMzsKK0JERTE7QkRFMTsxMTA3IDExNzEgMTFCNDtCREUxOzExMDcgMTE3MSAxMUI0OworQkRFMjtCREUyOzExMDcgMTE3MSAxMUI1O0JERTI7MTEwNyAxMTcxIDExQjU7CitCREUzO0JERTM7MTEwNyAxMTcxIDExQjY7QkRFMzsxMTA3IDExNzEgMTFCNjsKK0JERTQ7QkRFNDsxMTA3IDExNzEgMTFCNztCREU0OzExMDcgMTE3MSAxMUI3OworQkRFNTtCREU1OzExMDcgMTE3MSAxMUI4O0JERTU7MTEwNyAxMTcxIDExQjg7CitCREU2O0JERTY7MTEwNyAxMTcxIDExQjk7QkRFNjsxMTA3IDExNzEgMTFCOTsKK0JERTc7QkRFNzsxMTA3IDExNzEgMTFCQTtCREU3OzExMDcgMTE3MSAxMUJBOworQkRFODtCREU4OzExMDcgMTE3MSAxMUJCO0JERTg7MTEwNyAxMTcxIDExQkI7CitCREU5O0JERTk7MTEwNyAxMTcxIDExQkM7QkRFOTsxMTA3IDExNzEgMTFCQzsKK0JERUE7QkRFQTsxMTA3IDExNzEgMTFCRDtCREVBOzExMDcgMTE3MSAxMUJEOworQkRFQjtCREVCOzExMDcgMTE3MSAxMUJFO0JERUI7MTEwNyAxMTcxIDExQkU7CitCREVDO0JERUM7MTEwNyAxMTcxIDExQkY7QkRFQzsxMTA3IDExNzEgMTFCRjsKK0JERUQ7QkRFRDsxMTA3IDExNzEgMTFDMDtCREVEOzExMDcgMTE3MSAxMUMwOworQkRFRTtCREVFOzExMDcgMTE3MSAxMUMxO0JERUU7MTEwNyAxMTcxIDExQzE7CitCREVGO0JERUY7MTEwNyAxMTcxIDExQzI7QkRFRjsxMTA3IDExNzEgMTFDMjsKK0JERjA7QkRGMDsxMTA3IDExNzI7QkRGMDsxMTA3IDExNzI7CitCREYxO0JERjE7MTEwNyAxMTcyIDExQTg7QkRGMTsxMTA3IDExNzIgMTFBODsKK0JERjI7QkRGMjsxMTA3IDExNzIgMTFBOTtCREYyOzExMDcgMTE3MiAxMUE5OworQkRGMztCREYzOzExMDcgMTE3MiAxMUFBO0JERjM7MTEwNyAxMTcyIDExQUE7CitCREY0O0JERjQ7MTEwNyAxMTcyIDExQUI7QkRGNDsxMTA3IDExNzIgMTFBQjsKK0JERjU7QkRGNTsxMTA3IDExNzIgMTFBQztCREY1OzExMDcgMTE3MiAxMUFDOworQkRGNjtCREY2OzExMDcgMTE3MiAxMUFEO0JERjY7MTEwNyAxMTcyIDExQUQ7CitCREY3O0JERjc7MTEwNyAxMTcyIDExQUU7QkRGNzsxMTA3IDExNzIgMTFBRTsKK0JERjg7QkRGODsxMTA3IDExNzIgMTFBRjtCREY4OzExMDcgMTE3MiAxMUFGOworQkRGOTtCREY5OzExMDcgMTE3MiAxMUIwO0JERjk7MTEwNyAxMTcyIDExQjA7CitCREZBO0JERkE7MTEwNyAxMTcyIDExQjE7QkRGQTsxMTA3IDExNzIgMTFCMTsKK0JERkI7QkRGQjsxMTA3IDExNzIgMTFCMjtCREZCOzExMDcgMTE3MiAxMUIyOworQkRGQztCREZDOzExMDcgMTE3MiAxMUIzO0JERkM7MTEwNyAxMTcyIDExQjM7CitCREZEO0JERkQ7MTEwNyAxMTcyIDExQjQ7QkRGRDsxMTA3IDExNzIgMTFCNDsKK0JERkU7QkRGRTsxMTA3IDExNzIgMTFCNTtCREZFOzExMDcgMTE3MiAxMUI1OworQkRGRjtCREZGOzExMDcgMTE3MiAxMUI2O0JERkY7MTEwNyAxMTcyIDExQjY7CitCRTAwO0JFMDA7MTEwNyAxMTcyIDExQjc7QkUwMDsxMTA3IDExNzIgMTFCNzsKK0JFMDE7QkUwMTsxMTA3IDExNzIgMTFCODtCRTAxOzExMDcgMTE3MiAxMUI4OworQkUwMjtCRTAyOzExMDcgMTE3MiAxMUI5O0JFMDI7MTEwNyAxMTcyIDExQjk7CitCRTAzO0JFMDM7MTEwNyAxMTcyIDExQkE7QkUwMzsxMTA3IDExNzIgMTFCQTsKK0JFMDQ7QkUwNDsxMTA3IDExNzIgMTFCQjtCRTA0OzExMDcgMTE3MiAxMUJCOworQkUwNTtCRTA1OzExMDcgMTE3MiAxMUJDO0JFMDU7MTEwNyAxMTcyIDExQkM7CitCRTA2O0JFMDY7MTEwNyAxMTcyIDExQkQ7QkUwNjsxMTA3IDExNzIgMTFCRDsKK0JFMDc7QkUwNzsxMTA3IDExNzIgMTFCRTtCRTA3OzExMDcgMTE3MiAxMUJFOworQkUwODtCRTA4OzExMDcgMTE3MiAxMUJGO0JFMDg7MTEwNyAxMTcyIDExQkY7CitCRTA5O0JFMDk7MTEwNyAxMTcyIDExQzA7QkUwOTsxMTA3IDExNzIgMTFDMDsKK0JFMEE7QkUwQTsxMTA3IDExNzIgMTFDMTtCRTBBOzExMDcgMTE3MiAxMUMxOworQkUwQjtCRTBCOzExMDcgMTE3MiAxMUMyO0JFMEI7MTEwNyAxMTcyIDExQzI7CitCRTBDO0JFMEM7MTEwNyAxMTczO0JFMEM7MTEwNyAxMTczOworQkUwRDtCRTBEOzExMDcgMTE3MyAxMUE4O0JFMEQ7MTEwNyAxMTczIDExQTg7CitCRTBFO0JFMEU7MTEwNyAxMTczIDExQTk7QkUwRTsxMTA3IDExNzMgMTFBOTsKK0JFMEY7QkUwRjsxMTA3IDExNzMgMTFBQTtCRTBGOzExMDcgMTE3MyAxMUFBOworQkUxMDtCRTEwOzExMDcgMTE3MyAxMUFCO0JFMTA7MTEwNyAxMTczIDExQUI7CitCRTExO0JFMTE7MTEwNyAxMTczIDExQUM7QkUxMTsxMTA3IDExNzMgMTFBQzsKK0JFMTI7QkUxMjsxMTA3IDExNzMgMTFBRDtCRTEyOzExMDcgMTE3MyAxMUFEOworQkUxMztCRTEzOzExMDcgMTE3MyAxMUFFO0JFMTM7MTEwNyAxMTczIDExQUU7CitCRTE0O0JFMTQ7MTEwNyAxMTczIDExQUY7QkUxNDsxMTA3IDExNzMgMTFBRjsKK0JFMTU7QkUxNTsxMTA3IDExNzMgMTFCMDtCRTE1OzExMDcgMTE3MyAxMUIwOworQkUxNjtCRTE2OzExMDcgMTE3MyAxMUIxO0JFMTY7MTEwNyAxMTczIDExQjE7CitCRTE3O0JFMTc7MTEwNyAxMTczIDExQjI7QkUxNzsxMTA3IDExNzMgMTFCMjsKK0JFMTg7QkUxODsxMTA3IDExNzMgMTFCMztCRTE4OzExMDcgMTE3MyAxMUIzOworQkUxOTtCRTE5OzExMDcgMTE3MyAxMUI0O0JFMTk7MTEwNyAxMTczIDExQjQ7CitCRTFBO0JFMUE7MTEwNyAxMTczIDExQjU7QkUxQTsxMTA3IDExNzMgMTFCNTsKK0JFMUI7QkUxQjsxMTA3IDExNzMgMTFCNjtCRTFCOzExMDcgMTE3MyAxMUI2OworQkUxQztCRTFDOzExMDcgMTE3MyAxMUI3O0JFMUM7MTEwNyAxMTczIDExQjc7CitCRTFEO0JFMUQ7MTEwNyAxMTczIDExQjg7QkUxRDsxMTA3IDExNzMgMTFCODsKK0JFMUU7QkUxRTsxMTA3IDExNzMgMTFCOTtCRTFFOzExMDcgMTE3MyAxMUI5OworQkUxRjtCRTFGOzExMDcgMTE3MyAxMUJBO0JFMUY7MTEwNyAxMTczIDExQkE7CitCRTIwO0JFMjA7MTEwNyAxMTczIDExQkI7QkUyMDsxMTA3IDExNzMgMTFCQjsKK0JFMjE7QkUyMTsxMTA3IDExNzMgMTFCQztCRTIxOzExMDcgMTE3MyAxMUJDOworQkUyMjtCRTIyOzExMDcgMTE3MyAxMUJEO0JFMjI7MTEwNyAxMTczIDExQkQ7CitCRTIzO0JFMjM7MTEwNyAxMTczIDExQkU7QkUyMzsxMTA3IDExNzMgMTFCRTsKK0JFMjQ7QkUyNDsxMTA3IDExNzMgMTFCRjtCRTI0OzExMDcgMTE3MyAxMUJGOworQkUyNTtCRTI1OzExMDcgMTE3MyAxMUMwO0JFMjU7MTEwNyAxMTczIDExQzA7CitCRTI2O0JFMjY7MTEwNyAxMTczIDExQzE7QkUyNjsxMTA3IDExNzMgMTFDMTsKK0JFMjc7QkUyNzsxMTA3IDExNzMgMTFDMjtCRTI3OzExMDcgMTE3MyAxMUMyOworQkUyODtCRTI4OzExMDcgMTE3NDtCRTI4OzExMDcgMTE3NDsKK0JFMjk7QkUyOTsxMTA3IDExNzQgMTFBODtCRTI5OzExMDcgMTE3NCAxMUE4OworQkUyQTtCRTJBOzExMDcgMTE3NCAxMUE5O0JFMkE7MTEwNyAxMTc0IDExQTk7CitCRTJCO0JFMkI7MTEwNyAxMTc0IDExQUE7QkUyQjsxMTA3IDExNzQgMTFBQTsKK0JFMkM7QkUyQzsxMTA3IDExNzQgMTFBQjtCRTJDOzExMDcgMTE3NCAxMUFCOworQkUyRDtCRTJEOzExMDcgMTE3NCAxMUFDO0JFMkQ7MTEwNyAxMTc0IDExQUM7CitCRTJFO0JFMkU7MTEwNyAxMTc0IDExQUQ7QkUyRTsxMTA3IDExNzQgMTFBRDsKK0JFMkY7QkUyRjsxMTA3IDExNzQgMTFBRTtCRTJGOzExMDcgMTE3NCAxMUFFOworQkUzMDtCRTMwOzExMDcgMTE3NCAxMUFGO0JFMzA7MTEwNyAxMTc0IDExQUY7CitCRTMxO0JFMzE7MTEwNyAxMTc0IDExQjA7QkUzMTsxMTA3IDExNzQgMTFCMDsKK0JFMzI7QkUzMjsxMTA3IDExNzQgMTFCMTtCRTMyOzExMDcgMTE3NCAxMUIxOworQkUzMztCRTMzOzExMDcgMTE3NCAxMUIyO0JFMzM7MTEwNyAxMTc0IDExQjI7CitCRTM0O0JFMzQ7MTEwNyAxMTc0IDExQjM7QkUzNDsxMTA3IDExNzQgMTFCMzsKK0JFMzU7QkUzNTsxMTA3IDExNzQgMTFCNDtCRTM1OzExMDcgMTE3NCAxMUI0OworQkUzNjtCRTM2OzExMDcgMTE3NCAxMUI1O0JFMzY7MTEwNyAxMTc0IDExQjU7CitCRTM3O0JFMzc7MTEwNyAxMTc0IDExQjY7QkUzNzsxMTA3IDExNzQgMTFCNjsKK0JFMzg7QkUzODsxMTA3IDExNzQgMTFCNztCRTM4OzExMDcgMTE3NCAxMUI3OworQkUzOTtCRTM5OzExMDcgMTE3NCAxMUI4O0JFMzk7MTEwNyAxMTc0IDExQjg7CitCRTNBO0JFM0E7MTEwNyAxMTc0IDExQjk7QkUzQTsxMTA3IDExNzQgMTFCOTsKK0JFM0I7QkUzQjsxMTA3IDExNzQgMTFCQTtCRTNCOzExMDcgMTE3NCAxMUJBOworQkUzQztCRTNDOzExMDcgMTE3NCAxMUJCO0JFM0M7MTEwNyAxMTc0IDExQkI7CitCRTNEO0JFM0Q7MTEwNyAxMTc0IDExQkM7QkUzRDsxMTA3IDExNzQgMTFCQzsKK0JFM0U7QkUzRTsxMTA3IDExNzQgMTFCRDtCRTNFOzExMDcgMTE3NCAxMUJEOworQkUzRjtCRTNGOzExMDcgMTE3NCAxMUJFO0JFM0Y7MTEwNyAxMTc0IDExQkU7CitCRTQwO0JFNDA7MTEwNyAxMTc0IDExQkY7QkU0MDsxMTA3IDExNzQgMTFCRjsKK0JFNDE7QkU0MTsxMTA3IDExNzQgMTFDMDtCRTQxOzExMDcgMTE3NCAxMUMwOworQkU0MjtCRTQyOzExMDcgMTE3NCAxMUMxO0JFNDI7MTEwNyAxMTc0IDExQzE7CitCRTQzO0JFNDM7MTEwNyAxMTc0IDExQzI7QkU0MzsxMTA3IDExNzQgMTFDMjsKK0JFNDQ7QkU0NDsxMTA3IDExNzU7QkU0NDsxMTA3IDExNzU7CitCRTQ1O0JFNDU7MTEwNyAxMTc1IDExQTg7QkU0NTsxMTA3IDExNzUgMTFBODsKK0JFNDY7QkU0NjsxMTA3IDExNzUgMTFBOTtCRTQ2OzExMDcgMTE3NSAxMUE5OworQkU0NztCRTQ3OzExMDcgMTE3NSAxMUFBO0JFNDc7MTEwNyAxMTc1IDExQUE7CitCRTQ4O0JFNDg7MTEwNyAxMTc1IDExQUI7QkU0ODsxMTA3IDExNzUgMTFBQjsKK0JFNDk7QkU0OTsxMTA3IDExNzUgMTFBQztCRTQ5OzExMDcgMTE3NSAxMUFDOworQkU0QTtCRTRBOzExMDcgMTE3NSAxMUFEO0JFNEE7MTEwNyAxMTc1IDExQUQ7CitCRTRCO0JFNEI7MTEwNyAxMTc1IDExQUU7QkU0QjsxMTA3IDExNzUgMTFBRTsKK0JFNEM7QkU0QzsxMTA3IDExNzUgMTFBRjtCRTRDOzExMDcgMTE3NSAxMUFGOworQkU0RDtCRTREOzExMDcgMTE3NSAxMUIwO0JFNEQ7MTEwNyAxMTc1IDExQjA7CitCRTRFO0JFNEU7MTEwNyAxMTc1IDExQjE7QkU0RTsxMTA3IDExNzUgMTFCMTsKK0JFNEY7QkU0RjsxMTA3IDExNzUgMTFCMjtCRTRGOzExMDcgMTE3NSAxMUIyOworQkU1MDtCRTUwOzExMDcgMTE3NSAxMUIzO0JFNTA7MTEwNyAxMTc1IDExQjM7CitCRTUxO0JFNTE7MTEwNyAxMTc1IDExQjQ7QkU1MTsxMTA3IDExNzUgMTFCNDsKK0JFNTI7QkU1MjsxMTA3IDExNzUgMTFCNTtCRTUyOzExMDcgMTE3NSAxMUI1OworQkU1MztCRTUzOzExMDcgMTE3NSAxMUI2O0JFNTM7MTEwNyAxMTc1IDExQjY7CitCRTU0O0JFNTQ7MTEwNyAxMTc1IDExQjc7QkU1NDsxMTA3IDExNzUgMTFCNzsKK0JFNTU7QkU1NTsxMTA3IDExNzUgMTFCODtCRTU1OzExMDcgMTE3NSAxMUI4OworQkU1NjtCRTU2OzExMDcgMTE3NSAxMUI5O0JFNTY7MTEwNyAxMTc1IDExQjk7CitCRTU3O0JFNTc7MTEwNyAxMTc1IDExQkE7QkU1NzsxMTA3IDExNzUgMTFCQTsKK0JFNTg7QkU1ODsxMTA3IDExNzUgMTFCQjtCRTU4OzExMDcgMTE3NSAxMUJCOworQkU1OTtCRTU5OzExMDcgMTE3NSAxMUJDO0JFNTk7MTEwNyAxMTc1IDExQkM7CitCRTVBO0JFNUE7MTEwNyAxMTc1IDExQkQ7QkU1QTsxMTA3IDExNzUgMTFCRDsKK0JFNUI7QkU1QjsxMTA3IDExNzUgMTFCRTtCRTVCOzExMDcgMTE3NSAxMUJFOworQkU1QztCRTVDOzExMDcgMTE3NSAxMUJGO0JFNUM7MTEwNyAxMTc1IDExQkY7CitCRTVEO0JFNUQ7MTEwNyAxMTc1IDExQzA7QkU1RDsxMTA3IDExNzUgMTFDMDsKK0JFNUU7QkU1RTsxMTA3IDExNzUgMTFDMTtCRTVFOzExMDcgMTE3NSAxMUMxOworQkU1RjtCRTVGOzExMDcgMTE3NSAxMUMyO0JFNUY7MTEwNyAxMTc1IDExQzI7CitCRTYwO0JFNjA7MTEwOCAxMTYxO0JFNjA7MTEwOCAxMTYxOworQkU2MTtCRTYxOzExMDggMTE2MSAxMUE4O0JFNjE7MTEwOCAxMTYxIDExQTg7CitCRTYyO0JFNjI7MTEwOCAxMTYxIDExQTk7QkU2MjsxMTA4IDExNjEgMTFBOTsKK0JFNjM7QkU2MzsxMTA4IDExNjEgMTFBQTtCRTYzOzExMDggMTE2MSAxMUFBOworQkU2NDtCRTY0OzExMDggMTE2MSAxMUFCO0JFNjQ7MTEwOCAxMTYxIDExQUI7CitCRTY1O0JFNjU7MTEwOCAxMTYxIDExQUM7QkU2NTsxMTA4IDExNjEgMTFBQzsKK0JFNjY7QkU2NjsxMTA4IDExNjEgMTFBRDtCRTY2OzExMDggMTE2MSAxMUFEOworQkU2NztCRTY3OzExMDggMTE2MSAxMUFFO0JFNjc7MTEwOCAxMTYxIDExQUU7CitCRTY4O0JFNjg7MTEwOCAxMTYxIDExQUY7QkU2ODsxMTA4IDExNjEgMTFBRjsKK0JFNjk7QkU2OTsxMTA4IDExNjEgMTFCMDtCRTY5OzExMDggMTE2MSAxMUIwOworQkU2QTtCRTZBOzExMDggMTE2MSAxMUIxO0JFNkE7MTEwOCAxMTYxIDExQjE7CitCRTZCO0JFNkI7MTEwOCAxMTYxIDExQjI7QkU2QjsxMTA4IDExNjEgMTFCMjsKK0JFNkM7QkU2QzsxMTA4IDExNjEgMTFCMztCRTZDOzExMDggMTE2MSAxMUIzOworQkU2RDtCRTZEOzExMDggMTE2MSAxMUI0O0JFNkQ7MTEwOCAxMTYxIDExQjQ7CitCRTZFO0JFNkU7MTEwOCAxMTYxIDExQjU7QkU2RTsxMTA4IDExNjEgMTFCNTsKK0JFNkY7QkU2RjsxMTA4IDExNjEgMTFCNjtCRTZGOzExMDggMTE2MSAxMUI2OworQkU3MDtCRTcwOzExMDggMTE2MSAxMUI3O0JFNzA7MTEwOCAxMTYxIDExQjc7CitCRTcxO0JFNzE7MTEwOCAxMTYxIDExQjg7QkU3MTsxMTA4IDExNjEgMTFCODsKK0JFNzI7QkU3MjsxMTA4IDExNjEgMTFCOTtCRTcyOzExMDggMTE2MSAxMUI5OworQkU3MztCRTczOzExMDggMTE2MSAxMUJBO0JFNzM7MTEwOCAxMTYxIDExQkE7CitCRTc0O0JFNzQ7MTEwOCAxMTYxIDExQkI7QkU3NDsxMTA4IDExNjEgMTFCQjsKK0JFNzU7QkU3NTsxMTA4IDExNjEgMTFCQztCRTc1OzExMDggMTE2MSAxMUJDOworQkU3NjtCRTc2OzExMDggMTE2MSAxMUJEO0JFNzY7MTEwOCAxMTYxIDExQkQ7CitCRTc3O0JFNzc7MTEwOCAxMTYxIDExQkU7QkU3NzsxMTA4IDExNjEgMTFCRTsKK0JFNzg7QkU3ODsxMTA4IDExNjEgMTFCRjtCRTc4OzExMDggMTE2MSAxMUJGOworQkU3OTtCRTc5OzExMDggMTE2MSAxMUMwO0JFNzk7MTEwOCAxMTYxIDExQzA7CitCRTdBO0JFN0E7MTEwOCAxMTYxIDExQzE7QkU3QTsxMTA4IDExNjEgMTFDMTsKK0JFN0I7QkU3QjsxMTA4IDExNjEgMTFDMjtCRTdCOzExMDggMTE2MSAxMUMyOworQkU3QztCRTdDOzExMDggMTE2MjtCRTdDOzExMDggMTE2MjsKK0JFN0Q7QkU3RDsxMTA4IDExNjIgMTFBODtCRTdEOzExMDggMTE2MiAxMUE4OworQkU3RTtCRTdFOzExMDggMTE2MiAxMUE5O0JFN0U7MTEwOCAxMTYyIDExQTk7CitCRTdGO0JFN0Y7MTEwOCAxMTYyIDExQUE7QkU3RjsxMTA4IDExNjIgMTFBQTsKK0JFODA7QkU4MDsxMTA4IDExNjIgMTFBQjtCRTgwOzExMDggMTE2MiAxMUFCOworQkU4MTtCRTgxOzExMDggMTE2MiAxMUFDO0JFODE7MTEwOCAxMTYyIDExQUM7CitCRTgyO0JFODI7MTEwOCAxMTYyIDExQUQ7QkU4MjsxMTA4IDExNjIgMTFBRDsKK0JFODM7QkU4MzsxMTA4IDExNjIgMTFBRTtCRTgzOzExMDggMTE2MiAxMUFFOworQkU4NDtCRTg0OzExMDggMTE2MiAxMUFGO0JFODQ7MTEwOCAxMTYyIDExQUY7CitCRTg1O0JFODU7MTEwOCAxMTYyIDExQjA7QkU4NTsxMTA4IDExNjIgMTFCMDsKK0JFODY7QkU4NjsxMTA4IDExNjIgMTFCMTtCRTg2OzExMDggMTE2MiAxMUIxOworQkU4NztCRTg3OzExMDggMTE2MiAxMUIyO0JFODc7MTEwOCAxMTYyIDExQjI7CitCRTg4O0JFODg7MTEwOCAxMTYyIDExQjM7QkU4ODsxMTA4IDExNjIgMTFCMzsKK0JFODk7QkU4OTsxMTA4IDExNjIgMTFCNDtCRTg5OzExMDggMTE2MiAxMUI0OworQkU4QTtCRThBOzExMDggMTE2MiAxMUI1O0JFOEE7MTEwOCAxMTYyIDExQjU7CitCRThCO0JFOEI7MTEwOCAxMTYyIDExQjY7QkU4QjsxMTA4IDExNjIgMTFCNjsKK0JFOEM7QkU4QzsxMTA4IDExNjIgMTFCNztCRThDOzExMDggMTE2MiAxMUI3OworQkU4RDtCRThEOzExMDggMTE2MiAxMUI4O0JFOEQ7MTEwOCAxMTYyIDExQjg7CitCRThFO0JFOEU7MTEwOCAxMTYyIDExQjk7QkU4RTsxMTA4IDExNjIgMTFCOTsKK0JFOEY7QkU4RjsxMTA4IDExNjIgMTFCQTtCRThGOzExMDggMTE2MiAxMUJBOworQkU5MDtCRTkwOzExMDggMTE2MiAxMUJCO0JFOTA7MTEwOCAxMTYyIDExQkI7CitCRTkxO0JFOTE7MTEwOCAxMTYyIDExQkM7QkU5MTsxMTA4IDExNjIgMTFCQzsKK0JFOTI7QkU5MjsxMTA4IDExNjIgMTFCRDtCRTkyOzExMDggMTE2MiAxMUJEOworQkU5MztCRTkzOzExMDggMTE2MiAxMUJFO0JFOTM7MTEwOCAxMTYyIDExQkU7CitCRTk0O0JFOTQ7MTEwOCAxMTYyIDExQkY7QkU5NDsxMTA4IDExNjIgMTFCRjsKK0JFOTU7QkU5NTsxMTA4IDExNjIgMTFDMDtCRTk1OzExMDggMTE2MiAxMUMwOworQkU5NjtCRTk2OzExMDggMTE2MiAxMUMxO0JFOTY7MTEwOCAxMTYyIDExQzE7CitCRTk3O0JFOTc7MTEwOCAxMTYyIDExQzI7QkU5NzsxMTA4IDExNjIgMTFDMjsKK0JFOTg7QkU5ODsxMTA4IDExNjM7QkU5ODsxMTA4IDExNjM7CitCRTk5O0JFOTk7MTEwOCAxMTYzIDExQTg7QkU5OTsxMTA4IDExNjMgMTFBODsKK0JFOUE7QkU5QTsxMTA4IDExNjMgMTFBOTtCRTlBOzExMDggMTE2MyAxMUE5OworQkU5QjtCRTlCOzExMDggMTE2MyAxMUFBO0JFOUI7MTEwOCAxMTYzIDExQUE7CitCRTlDO0JFOUM7MTEwOCAxMTYzIDExQUI7QkU5QzsxMTA4IDExNjMgMTFBQjsKK0JFOUQ7QkU5RDsxMTA4IDExNjMgMTFBQztCRTlEOzExMDggMTE2MyAxMUFDOworQkU5RTtCRTlFOzExMDggMTE2MyAxMUFEO0JFOUU7MTEwOCAxMTYzIDExQUQ7CitCRTlGO0JFOUY7MTEwOCAxMTYzIDExQUU7QkU5RjsxMTA4IDExNjMgMTFBRTsKK0JFQTA7QkVBMDsxMTA4IDExNjMgMTFBRjtCRUEwOzExMDggMTE2MyAxMUFGOworQkVBMTtCRUExOzExMDggMTE2MyAxMUIwO0JFQTE7MTEwOCAxMTYzIDExQjA7CitCRUEyO0JFQTI7MTEwOCAxMTYzIDExQjE7QkVBMjsxMTA4IDExNjMgMTFCMTsKK0JFQTM7QkVBMzsxMTA4IDExNjMgMTFCMjtCRUEzOzExMDggMTE2MyAxMUIyOworQkVBNDtCRUE0OzExMDggMTE2MyAxMUIzO0JFQTQ7MTEwOCAxMTYzIDExQjM7CitCRUE1O0JFQTU7MTEwOCAxMTYzIDExQjQ7QkVBNTsxMTA4IDExNjMgMTFCNDsKK0JFQTY7QkVBNjsxMTA4IDExNjMgMTFCNTtCRUE2OzExMDggMTE2MyAxMUI1OworQkVBNztCRUE3OzExMDggMTE2MyAxMUI2O0JFQTc7MTEwOCAxMTYzIDExQjY7CitCRUE4O0JFQTg7MTEwOCAxMTYzIDExQjc7QkVBODsxMTA4IDExNjMgMTFCNzsKK0JFQTk7QkVBOTsxMTA4IDExNjMgMTFCODtCRUE5OzExMDggMTE2MyAxMUI4OworQkVBQTtCRUFBOzExMDggMTE2MyAxMUI5O0JFQUE7MTEwOCAxMTYzIDExQjk7CitCRUFCO0JFQUI7MTEwOCAxMTYzIDExQkE7QkVBQjsxMTA4IDExNjMgMTFCQTsKK0JFQUM7QkVBQzsxMTA4IDExNjMgMTFCQjtCRUFDOzExMDggMTE2MyAxMUJCOworQkVBRDtCRUFEOzExMDggMTE2MyAxMUJDO0JFQUQ7MTEwOCAxMTYzIDExQkM7CitCRUFFO0JFQUU7MTEwOCAxMTYzIDExQkQ7QkVBRTsxMTA4IDExNjMgMTFCRDsKK0JFQUY7QkVBRjsxMTA4IDExNjMgMTFCRTtCRUFGOzExMDggMTE2MyAxMUJFOworQkVCMDtCRUIwOzExMDggMTE2MyAxMUJGO0JFQjA7MTEwOCAxMTYzIDExQkY7CitCRUIxO0JFQjE7MTEwOCAxMTYzIDExQzA7QkVCMTsxMTA4IDExNjMgMTFDMDsKK0JFQjI7QkVCMjsxMTA4IDExNjMgMTFDMTtCRUIyOzExMDggMTE2MyAxMUMxOworQkVCMztCRUIzOzExMDggMTE2MyAxMUMyO0JFQjM7MTEwOCAxMTYzIDExQzI7CitCRUI0O0JFQjQ7MTEwOCAxMTY0O0JFQjQ7MTEwOCAxMTY0OworQkVCNTtCRUI1OzExMDggMTE2NCAxMUE4O0JFQjU7MTEwOCAxMTY0IDExQTg7CitCRUI2O0JFQjY7MTEwOCAxMTY0IDExQTk7QkVCNjsxMTA4IDExNjQgMTFBOTsKK0JFQjc7QkVCNzsxMTA4IDExNjQgMTFBQTtCRUI3OzExMDggMTE2NCAxMUFBOworQkVCODtCRUI4OzExMDggMTE2NCAxMUFCO0JFQjg7MTEwOCAxMTY0IDExQUI7CitCRUI5O0JFQjk7MTEwOCAxMTY0IDExQUM7QkVCOTsxMTA4IDExNjQgMTFBQzsKK0JFQkE7QkVCQTsxMTA4IDExNjQgMTFBRDtCRUJBOzExMDggMTE2NCAxMUFEOworQkVCQjtCRUJCOzExMDggMTE2NCAxMUFFO0JFQkI7MTEwOCAxMTY0IDExQUU7CitCRUJDO0JFQkM7MTEwOCAxMTY0IDExQUY7QkVCQzsxMTA4IDExNjQgMTFBRjsKK0JFQkQ7QkVCRDsxMTA4IDExNjQgMTFCMDtCRUJEOzExMDggMTE2NCAxMUIwOworQkVCRTtCRUJFOzExMDggMTE2NCAxMUIxO0JFQkU7MTEwOCAxMTY0IDExQjE7CitCRUJGO0JFQkY7MTEwOCAxMTY0IDExQjI7QkVCRjsxMTA4IDExNjQgMTFCMjsKK0JFQzA7QkVDMDsxMTA4IDExNjQgMTFCMztCRUMwOzExMDggMTE2NCAxMUIzOworQkVDMTtCRUMxOzExMDggMTE2NCAxMUI0O0JFQzE7MTEwOCAxMTY0IDExQjQ7CitCRUMyO0JFQzI7MTEwOCAxMTY0IDExQjU7QkVDMjsxMTA4IDExNjQgMTFCNTsKK0JFQzM7QkVDMzsxMTA4IDExNjQgMTFCNjtCRUMzOzExMDggMTE2NCAxMUI2OworQkVDNDtCRUM0OzExMDggMTE2NCAxMUI3O0JFQzQ7MTEwOCAxMTY0IDExQjc7CitCRUM1O0JFQzU7MTEwOCAxMTY0IDExQjg7QkVDNTsxMTA4IDExNjQgMTFCODsKK0JFQzY7QkVDNjsxMTA4IDExNjQgMTFCOTtCRUM2OzExMDggMTE2NCAxMUI5OworQkVDNztCRUM3OzExMDggMTE2NCAxMUJBO0JFQzc7MTEwOCAxMTY0IDExQkE7CitCRUM4O0JFQzg7MTEwOCAxMTY0IDExQkI7QkVDODsxMTA4IDExNjQgMTFCQjsKK0JFQzk7QkVDOTsxMTA4IDExNjQgMTFCQztCRUM5OzExMDggMTE2NCAxMUJDOworQkVDQTtCRUNBOzExMDggMTE2NCAxMUJEO0JFQ0E7MTEwOCAxMTY0IDExQkQ7CitCRUNCO0JFQ0I7MTEwOCAxMTY0IDExQkU7QkVDQjsxMTA4IDExNjQgMTFCRTsKK0JFQ0M7QkVDQzsxMTA4IDExNjQgMTFCRjtCRUNDOzExMDggMTE2NCAxMUJGOworQkVDRDtCRUNEOzExMDggMTE2NCAxMUMwO0JFQ0Q7MTEwOCAxMTY0IDExQzA7CitCRUNFO0JFQ0U7MTEwOCAxMTY0IDExQzE7QkVDRTsxMTA4IDExNjQgMTFDMTsKK0JFQ0Y7QkVDRjsxMTA4IDExNjQgMTFDMjtCRUNGOzExMDggMTE2NCAxMUMyOworQkVEMDtCRUQwOzExMDggMTE2NTtCRUQwOzExMDggMTE2NTsKK0JFRDE7QkVEMTsxMTA4IDExNjUgMTFBODtCRUQxOzExMDggMTE2NSAxMUE4OworQkVEMjtCRUQyOzExMDggMTE2NSAxMUE5O0JFRDI7MTEwOCAxMTY1IDExQTk7CitCRUQzO0JFRDM7MTEwOCAxMTY1IDExQUE7QkVEMzsxMTA4IDExNjUgMTFBQTsKK0JFRDQ7QkVENDsxMTA4IDExNjUgMTFBQjtCRUQ0OzExMDggMTE2NSAxMUFCOworQkVENTtCRUQ1OzExMDggMTE2NSAxMUFDO0JFRDU7MTEwOCAxMTY1IDExQUM7CitCRUQ2O0JFRDY7MTEwOCAxMTY1IDExQUQ7QkVENjsxMTA4IDExNjUgMTFBRDsKK0JFRDc7QkVENzsxMTA4IDExNjUgMTFBRTtCRUQ3OzExMDggMTE2NSAxMUFFOworQkVEODtCRUQ4OzExMDggMTE2NSAxMUFGO0JFRDg7MTEwOCAxMTY1IDExQUY7CitCRUQ5O0JFRDk7MTEwOCAxMTY1IDExQjA7QkVEOTsxMTA4IDExNjUgMTFCMDsKK0JFREE7QkVEQTsxMTA4IDExNjUgMTFCMTtCRURBOzExMDggMTE2NSAxMUIxOworQkVEQjtCRURCOzExMDggMTE2NSAxMUIyO0JFREI7MTEwOCAxMTY1IDExQjI7CitCRURDO0JFREM7MTEwOCAxMTY1IDExQjM7QkVEQzsxMTA4IDExNjUgMTFCMzsKK0JFREQ7QkVERDsxMTA4IDExNjUgMTFCNDtCRUREOzExMDggMTE2NSAxMUI0OworQkVERTtCRURFOzExMDggMTE2NSAxMUI1O0JFREU7MTEwOCAxMTY1IDExQjU7CitCRURGO0JFREY7MTEwOCAxMTY1IDExQjY7QkVERjsxMTA4IDExNjUgMTFCNjsKK0JFRTA7QkVFMDsxMTA4IDExNjUgMTFCNztCRUUwOzExMDggMTE2NSAxMUI3OworQkVFMTtCRUUxOzExMDggMTE2NSAxMUI4O0JFRTE7MTEwOCAxMTY1IDExQjg7CitCRUUyO0JFRTI7MTEwOCAxMTY1IDExQjk7QkVFMjsxMTA4IDExNjUgMTFCOTsKK0JFRTM7QkVFMzsxMTA4IDExNjUgMTFCQTtCRUUzOzExMDggMTE2NSAxMUJBOworQkVFNDtCRUU0OzExMDggMTE2NSAxMUJCO0JFRTQ7MTEwOCAxMTY1IDExQkI7CitCRUU1O0JFRTU7MTEwOCAxMTY1IDExQkM7QkVFNTsxMTA4IDExNjUgMTFCQzsKK0JFRTY7QkVFNjsxMTA4IDExNjUgMTFCRDtCRUU2OzExMDggMTE2NSAxMUJEOworQkVFNztCRUU3OzExMDggMTE2NSAxMUJFO0JFRTc7MTEwOCAxMTY1IDExQkU7CitCRUU4O0JFRTg7MTEwOCAxMTY1IDExQkY7QkVFODsxMTA4IDExNjUgMTFCRjsKK0JFRTk7QkVFOTsxMTA4IDExNjUgMTFDMDtCRUU5OzExMDggMTE2NSAxMUMwOworQkVFQTtCRUVBOzExMDggMTE2NSAxMUMxO0JFRUE7MTEwOCAxMTY1IDExQzE7CitCRUVCO0JFRUI7MTEwOCAxMTY1IDExQzI7QkVFQjsxMTA4IDExNjUgMTFDMjsKK0JFRUM7QkVFQzsxMTA4IDExNjY7QkVFQzsxMTA4IDExNjY7CitCRUVEO0JFRUQ7MTEwOCAxMTY2IDExQTg7QkVFRDsxMTA4IDExNjYgMTFBODsKK0JFRUU7QkVFRTsxMTA4IDExNjYgMTFBOTtCRUVFOzExMDggMTE2NiAxMUE5OworQkVFRjtCRUVGOzExMDggMTE2NiAxMUFBO0JFRUY7MTEwOCAxMTY2IDExQUE7CitCRUYwO0JFRjA7MTEwOCAxMTY2IDExQUI7QkVGMDsxMTA4IDExNjYgMTFBQjsKK0JFRjE7QkVGMTsxMTA4IDExNjYgMTFBQztCRUYxOzExMDggMTE2NiAxMUFDOworQkVGMjtCRUYyOzExMDggMTE2NiAxMUFEO0JFRjI7MTEwOCAxMTY2IDExQUQ7CitCRUYzO0JFRjM7MTEwOCAxMTY2IDExQUU7QkVGMzsxMTA4IDExNjYgMTFBRTsKK0JFRjQ7QkVGNDsxMTA4IDExNjYgMTFBRjtCRUY0OzExMDggMTE2NiAxMUFGOworQkVGNTtCRUY1OzExMDggMTE2NiAxMUIwO0JFRjU7MTEwOCAxMTY2IDExQjA7CitCRUY2O0JFRjY7MTEwOCAxMTY2IDExQjE7QkVGNjsxMTA4IDExNjYgMTFCMTsKK0JFRjc7QkVGNzsxMTA4IDExNjYgMTFCMjtCRUY3OzExMDggMTE2NiAxMUIyOworQkVGODtCRUY4OzExMDggMTE2NiAxMUIzO0JFRjg7MTEwOCAxMTY2IDExQjM7CitCRUY5O0JFRjk7MTEwOCAxMTY2IDExQjQ7QkVGOTsxMTA4IDExNjYgMTFCNDsKK0JFRkE7QkVGQTsxMTA4IDExNjYgMTFCNTtCRUZBOzExMDggMTE2NiAxMUI1OworQkVGQjtCRUZCOzExMDggMTE2NiAxMUI2O0JFRkI7MTEwOCAxMTY2IDExQjY7CitCRUZDO0JFRkM7MTEwOCAxMTY2IDExQjc7QkVGQzsxMTA4IDExNjYgMTFCNzsKK0JFRkQ7QkVGRDsxMTA4IDExNjYgMTFCODtCRUZEOzExMDggMTE2NiAxMUI4OworQkVGRTtCRUZFOzExMDggMTE2NiAxMUI5O0JFRkU7MTEwOCAxMTY2IDExQjk7CitCRUZGO0JFRkY7MTEwOCAxMTY2IDExQkE7QkVGRjsxMTA4IDExNjYgMTFCQTsKK0JGMDA7QkYwMDsxMTA4IDExNjYgMTFCQjtCRjAwOzExMDggMTE2NiAxMUJCOworQkYwMTtCRjAxOzExMDggMTE2NiAxMUJDO0JGMDE7MTEwOCAxMTY2IDExQkM7CitCRjAyO0JGMDI7MTEwOCAxMTY2IDExQkQ7QkYwMjsxMTA4IDExNjYgMTFCRDsKK0JGMDM7QkYwMzsxMTA4IDExNjYgMTFCRTtCRjAzOzExMDggMTE2NiAxMUJFOworQkYwNDtCRjA0OzExMDggMTE2NiAxMUJGO0JGMDQ7MTEwOCAxMTY2IDExQkY7CitCRjA1O0JGMDU7MTEwOCAxMTY2IDExQzA7QkYwNTsxMTA4IDExNjYgMTFDMDsKK0JGMDY7QkYwNjsxMTA4IDExNjYgMTFDMTtCRjA2OzExMDggMTE2NiAxMUMxOworQkYwNztCRjA3OzExMDggMTE2NiAxMUMyO0JGMDc7MTEwOCAxMTY2IDExQzI7CitCRjA4O0JGMDg7MTEwOCAxMTY3O0JGMDg7MTEwOCAxMTY3OworQkYwOTtCRjA5OzExMDggMTE2NyAxMUE4O0JGMDk7MTEwOCAxMTY3IDExQTg7CitCRjBBO0JGMEE7MTEwOCAxMTY3IDExQTk7QkYwQTsxMTA4IDExNjcgMTFBOTsKK0JGMEI7QkYwQjsxMTA4IDExNjcgMTFBQTtCRjBCOzExMDggMTE2NyAxMUFBOworQkYwQztCRjBDOzExMDggMTE2NyAxMUFCO0JGMEM7MTEwOCAxMTY3IDExQUI7CitCRjBEO0JGMEQ7MTEwOCAxMTY3IDExQUM7QkYwRDsxMTA4IDExNjcgMTFBQzsKK0JGMEU7QkYwRTsxMTA4IDExNjcgMTFBRDtCRjBFOzExMDggMTE2NyAxMUFEOworQkYwRjtCRjBGOzExMDggMTE2NyAxMUFFO0JGMEY7MTEwOCAxMTY3IDExQUU7CitCRjEwO0JGMTA7MTEwOCAxMTY3IDExQUY7QkYxMDsxMTA4IDExNjcgMTFBRjsKK0JGMTE7QkYxMTsxMTA4IDExNjcgMTFCMDtCRjExOzExMDggMTE2NyAxMUIwOworQkYxMjtCRjEyOzExMDggMTE2NyAxMUIxO0JGMTI7MTEwOCAxMTY3IDExQjE7CitCRjEzO0JGMTM7MTEwOCAxMTY3IDExQjI7QkYxMzsxMTA4IDExNjcgMTFCMjsKK0JGMTQ7QkYxNDsxMTA4IDExNjcgMTFCMztCRjE0OzExMDggMTE2NyAxMUIzOworQkYxNTtCRjE1OzExMDggMTE2NyAxMUI0O0JGMTU7MTEwOCAxMTY3IDExQjQ7CitCRjE2O0JGMTY7MTEwOCAxMTY3IDExQjU7QkYxNjsxMTA4IDExNjcgMTFCNTsKK0JGMTc7QkYxNzsxMTA4IDExNjcgMTFCNjtCRjE3OzExMDggMTE2NyAxMUI2OworQkYxODtCRjE4OzExMDggMTE2NyAxMUI3O0JGMTg7MTEwOCAxMTY3IDExQjc7CitCRjE5O0JGMTk7MTEwOCAxMTY3IDExQjg7QkYxOTsxMTA4IDExNjcgMTFCODsKK0JGMUE7QkYxQTsxMTA4IDExNjcgMTFCOTtCRjFBOzExMDggMTE2NyAxMUI5OworQkYxQjtCRjFCOzExMDggMTE2NyAxMUJBO0JGMUI7MTEwOCAxMTY3IDExQkE7CitCRjFDO0JGMUM7MTEwOCAxMTY3IDExQkI7QkYxQzsxMTA4IDExNjcgMTFCQjsKK0JGMUQ7QkYxRDsxMTA4IDExNjcgMTFCQztCRjFEOzExMDggMTE2NyAxMUJDOworQkYxRTtCRjFFOzExMDggMTE2NyAxMUJEO0JGMUU7MTEwOCAxMTY3IDExQkQ7CitCRjFGO0JGMUY7MTEwOCAxMTY3IDExQkU7QkYxRjsxMTA4IDExNjcgMTFCRTsKK0JGMjA7QkYyMDsxMTA4IDExNjcgMTFCRjtCRjIwOzExMDggMTE2NyAxMUJGOworQkYyMTtCRjIxOzExMDggMTE2NyAxMUMwO0JGMjE7MTEwOCAxMTY3IDExQzA7CitCRjIyO0JGMjI7MTEwOCAxMTY3IDExQzE7QkYyMjsxMTA4IDExNjcgMTFDMTsKK0JGMjM7QkYyMzsxMTA4IDExNjcgMTFDMjtCRjIzOzExMDggMTE2NyAxMUMyOworQkYyNDtCRjI0OzExMDggMTE2ODtCRjI0OzExMDggMTE2ODsKK0JGMjU7QkYyNTsxMTA4IDExNjggMTFBODtCRjI1OzExMDggMTE2OCAxMUE4OworQkYyNjtCRjI2OzExMDggMTE2OCAxMUE5O0JGMjY7MTEwOCAxMTY4IDExQTk7CitCRjI3O0JGMjc7MTEwOCAxMTY4IDExQUE7QkYyNzsxMTA4IDExNjggMTFBQTsKK0JGMjg7QkYyODsxMTA4IDExNjggMTFBQjtCRjI4OzExMDggMTE2OCAxMUFCOworQkYyOTtCRjI5OzExMDggMTE2OCAxMUFDO0JGMjk7MTEwOCAxMTY4IDExQUM7CitCRjJBO0JGMkE7MTEwOCAxMTY4IDExQUQ7QkYyQTsxMTA4IDExNjggMTFBRDsKK0JGMkI7QkYyQjsxMTA4IDExNjggMTFBRTtCRjJCOzExMDggMTE2OCAxMUFFOworQkYyQztCRjJDOzExMDggMTE2OCAxMUFGO0JGMkM7MTEwOCAxMTY4IDExQUY7CitCRjJEO0JGMkQ7MTEwOCAxMTY4IDExQjA7QkYyRDsxMTA4IDExNjggMTFCMDsKK0JGMkU7QkYyRTsxMTA4IDExNjggMTFCMTtCRjJFOzExMDggMTE2OCAxMUIxOworQkYyRjtCRjJGOzExMDggMTE2OCAxMUIyO0JGMkY7MTEwOCAxMTY4IDExQjI7CitCRjMwO0JGMzA7MTEwOCAxMTY4IDExQjM7QkYzMDsxMTA4IDExNjggMTFCMzsKK0JGMzE7QkYzMTsxMTA4IDExNjggMTFCNDtCRjMxOzExMDggMTE2OCAxMUI0OworQkYzMjtCRjMyOzExMDggMTE2OCAxMUI1O0JGMzI7MTEwOCAxMTY4IDExQjU7CitCRjMzO0JGMzM7MTEwOCAxMTY4IDExQjY7QkYzMzsxMTA4IDExNjggMTFCNjsKK0JGMzQ7QkYzNDsxMTA4IDExNjggMTFCNztCRjM0OzExMDggMTE2OCAxMUI3OworQkYzNTtCRjM1OzExMDggMTE2OCAxMUI4O0JGMzU7MTEwOCAxMTY4IDExQjg7CitCRjM2O0JGMzY7MTEwOCAxMTY4IDExQjk7QkYzNjsxMTA4IDExNjggMTFCOTsKK0JGMzc7QkYzNzsxMTA4IDExNjggMTFCQTtCRjM3OzExMDggMTE2OCAxMUJBOworQkYzODtCRjM4OzExMDggMTE2OCAxMUJCO0JGMzg7MTEwOCAxMTY4IDExQkI7CitCRjM5O0JGMzk7MTEwOCAxMTY4IDExQkM7QkYzOTsxMTA4IDExNjggMTFCQzsKK0JGM0E7QkYzQTsxMTA4IDExNjggMTFCRDtCRjNBOzExMDggMTE2OCAxMUJEOworQkYzQjtCRjNCOzExMDggMTE2OCAxMUJFO0JGM0I7MTEwOCAxMTY4IDExQkU7CitCRjNDO0JGM0M7MTEwOCAxMTY4IDExQkY7QkYzQzsxMTA4IDExNjggMTFCRjsKK0JGM0Q7QkYzRDsxMTA4IDExNjggMTFDMDtCRjNEOzExMDggMTE2OCAxMUMwOworQkYzRTtCRjNFOzExMDggMTE2OCAxMUMxO0JGM0U7MTEwOCAxMTY4IDExQzE7CitCRjNGO0JGM0Y7MTEwOCAxMTY4IDExQzI7QkYzRjsxMTA4IDExNjggMTFDMjsKK0JGNDA7QkY0MDsxMTA4IDExNjk7QkY0MDsxMTA4IDExNjk7CitCRjQxO0JGNDE7MTEwOCAxMTY5IDExQTg7QkY0MTsxMTA4IDExNjkgMTFBODsKK0JGNDI7QkY0MjsxMTA4IDExNjkgMTFBOTtCRjQyOzExMDggMTE2OSAxMUE5OworQkY0MztCRjQzOzExMDggMTE2OSAxMUFBO0JGNDM7MTEwOCAxMTY5IDExQUE7CitCRjQ0O0JGNDQ7MTEwOCAxMTY5IDExQUI7QkY0NDsxMTA4IDExNjkgMTFBQjsKK0JGNDU7QkY0NTsxMTA4IDExNjkgMTFBQztCRjQ1OzExMDggMTE2OSAxMUFDOworQkY0NjtCRjQ2OzExMDggMTE2OSAxMUFEO0JGNDY7MTEwOCAxMTY5IDExQUQ7CitCRjQ3O0JGNDc7MTEwOCAxMTY5IDExQUU7QkY0NzsxMTA4IDExNjkgMTFBRTsKK0JGNDg7QkY0ODsxMTA4IDExNjkgMTFBRjtCRjQ4OzExMDggMTE2OSAxMUFGOworQkY0OTtCRjQ5OzExMDggMTE2OSAxMUIwO0JGNDk7MTEwOCAxMTY5IDExQjA7CitCRjRBO0JGNEE7MTEwOCAxMTY5IDExQjE7QkY0QTsxMTA4IDExNjkgMTFCMTsKK0JGNEI7QkY0QjsxMTA4IDExNjkgMTFCMjtCRjRCOzExMDggMTE2OSAxMUIyOworQkY0QztCRjRDOzExMDggMTE2OSAxMUIzO0JGNEM7MTEwOCAxMTY5IDExQjM7CitCRjREO0JGNEQ7MTEwOCAxMTY5IDExQjQ7QkY0RDsxMTA4IDExNjkgMTFCNDsKK0JGNEU7QkY0RTsxMTA4IDExNjkgMTFCNTtCRjRFOzExMDggMTE2OSAxMUI1OworQkY0RjtCRjRGOzExMDggMTE2OSAxMUI2O0JGNEY7MTEwOCAxMTY5IDExQjY7CitCRjUwO0JGNTA7MTEwOCAxMTY5IDExQjc7QkY1MDsxMTA4IDExNjkgMTFCNzsKK0JGNTE7QkY1MTsxMTA4IDExNjkgMTFCODtCRjUxOzExMDggMTE2OSAxMUI4OworQkY1MjtCRjUyOzExMDggMTE2OSAxMUI5O0JGNTI7MTEwOCAxMTY5IDExQjk7CitCRjUzO0JGNTM7MTEwOCAxMTY5IDExQkE7QkY1MzsxMTA4IDExNjkgMTFCQTsKK0JGNTQ7QkY1NDsxMTA4IDExNjkgMTFCQjtCRjU0OzExMDggMTE2OSAxMUJCOworQkY1NTtCRjU1OzExMDggMTE2OSAxMUJDO0JGNTU7MTEwOCAxMTY5IDExQkM7CitCRjU2O0JGNTY7MTEwOCAxMTY5IDExQkQ7QkY1NjsxMTA4IDExNjkgMTFCRDsKK0JGNTc7QkY1NzsxMTA4IDExNjkgMTFCRTtCRjU3OzExMDggMTE2OSAxMUJFOworQkY1ODtCRjU4OzExMDggMTE2OSAxMUJGO0JGNTg7MTEwOCAxMTY5IDExQkY7CitCRjU5O0JGNTk7MTEwOCAxMTY5IDExQzA7QkY1OTsxMTA4IDExNjkgMTFDMDsKK0JGNUE7QkY1QTsxMTA4IDExNjkgMTFDMTtCRjVBOzExMDggMTE2OSAxMUMxOworQkY1QjtCRjVCOzExMDggMTE2OSAxMUMyO0JGNUI7MTEwOCAxMTY5IDExQzI7CitCRjVDO0JGNUM7MTEwOCAxMTZBO0JGNUM7MTEwOCAxMTZBOworQkY1RDtCRjVEOzExMDggMTE2QSAxMUE4O0JGNUQ7MTEwOCAxMTZBIDExQTg7CitCRjVFO0JGNUU7MTEwOCAxMTZBIDExQTk7QkY1RTsxMTA4IDExNkEgMTFBOTsKK0JGNUY7QkY1RjsxMTA4IDExNkEgMTFBQTtCRjVGOzExMDggMTE2QSAxMUFBOworQkY2MDtCRjYwOzExMDggMTE2QSAxMUFCO0JGNjA7MTEwOCAxMTZBIDExQUI7CitCRjYxO0JGNjE7MTEwOCAxMTZBIDExQUM7QkY2MTsxMTA4IDExNkEgMTFBQzsKK0JGNjI7QkY2MjsxMTA4IDExNkEgMTFBRDtCRjYyOzExMDggMTE2QSAxMUFEOworQkY2MztCRjYzOzExMDggMTE2QSAxMUFFO0JGNjM7MTEwOCAxMTZBIDExQUU7CitCRjY0O0JGNjQ7MTEwOCAxMTZBIDExQUY7QkY2NDsxMTA4IDExNkEgMTFBRjsKK0JGNjU7QkY2NTsxMTA4IDExNkEgMTFCMDtCRjY1OzExMDggMTE2QSAxMUIwOworQkY2NjtCRjY2OzExMDggMTE2QSAxMUIxO0JGNjY7MTEwOCAxMTZBIDExQjE7CitCRjY3O0JGNjc7MTEwOCAxMTZBIDExQjI7QkY2NzsxMTA4IDExNkEgMTFCMjsKK0JGNjg7QkY2ODsxMTA4IDExNkEgMTFCMztCRjY4OzExMDggMTE2QSAxMUIzOworQkY2OTtCRjY5OzExMDggMTE2QSAxMUI0O0JGNjk7MTEwOCAxMTZBIDExQjQ7CitCRjZBO0JGNkE7MTEwOCAxMTZBIDExQjU7QkY2QTsxMTA4IDExNkEgMTFCNTsKK0JGNkI7QkY2QjsxMTA4IDExNkEgMTFCNjtCRjZCOzExMDggMTE2QSAxMUI2OworQkY2QztCRjZDOzExMDggMTE2QSAxMUI3O0JGNkM7MTEwOCAxMTZBIDExQjc7CitCRjZEO0JGNkQ7MTEwOCAxMTZBIDExQjg7QkY2RDsxMTA4IDExNkEgMTFCODsKK0JGNkU7QkY2RTsxMTA4IDExNkEgMTFCOTtCRjZFOzExMDggMTE2QSAxMUI5OworQkY2RjtCRjZGOzExMDggMTE2QSAxMUJBO0JGNkY7MTEwOCAxMTZBIDExQkE7CitCRjcwO0JGNzA7MTEwOCAxMTZBIDExQkI7QkY3MDsxMTA4IDExNkEgMTFCQjsKK0JGNzE7QkY3MTsxMTA4IDExNkEgMTFCQztCRjcxOzExMDggMTE2QSAxMUJDOworQkY3MjtCRjcyOzExMDggMTE2QSAxMUJEO0JGNzI7MTEwOCAxMTZBIDExQkQ7CitCRjczO0JGNzM7MTEwOCAxMTZBIDExQkU7QkY3MzsxMTA4IDExNkEgMTFCRTsKK0JGNzQ7QkY3NDsxMTA4IDExNkEgMTFCRjtCRjc0OzExMDggMTE2QSAxMUJGOworQkY3NTtCRjc1OzExMDggMTE2QSAxMUMwO0JGNzU7MTEwOCAxMTZBIDExQzA7CitCRjc2O0JGNzY7MTEwOCAxMTZBIDExQzE7QkY3NjsxMTA4IDExNkEgMTFDMTsKK0JGNzc7QkY3NzsxMTA4IDExNkEgMTFDMjtCRjc3OzExMDggMTE2QSAxMUMyOworQkY3ODtCRjc4OzExMDggMTE2QjtCRjc4OzExMDggMTE2QjsKK0JGNzk7QkY3OTsxMTA4IDExNkIgMTFBODtCRjc5OzExMDggMTE2QiAxMUE4OworQkY3QTtCRjdBOzExMDggMTE2QiAxMUE5O0JGN0E7MTEwOCAxMTZCIDExQTk7CitCRjdCO0JGN0I7MTEwOCAxMTZCIDExQUE7QkY3QjsxMTA4IDExNkIgMTFBQTsKK0JGN0M7QkY3QzsxMTA4IDExNkIgMTFBQjtCRjdDOzExMDggMTE2QiAxMUFCOworQkY3RDtCRjdEOzExMDggMTE2QiAxMUFDO0JGN0Q7MTEwOCAxMTZCIDExQUM7CitCRjdFO0JGN0U7MTEwOCAxMTZCIDExQUQ7QkY3RTsxMTA4IDExNkIgMTFBRDsKK0JGN0Y7QkY3RjsxMTA4IDExNkIgMTFBRTtCRjdGOzExMDggMTE2QiAxMUFFOworQkY4MDtCRjgwOzExMDggMTE2QiAxMUFGO0JGODA7MTEwOCAxMTZCIDExQUY7CitCRjgxO0JGODE7MTEwOCAxMTZCIDExQjA7QkY4MTsxMTA4IDExNkIgMTFCMDsKK0JGODI7QkY4MjsxMTA4IDExNkIgMTFCMTtCRjgyOzExMDggMTE2QiAxMUIxOworQkY4MztCRjgzOzExMDggMTE2QiAxMUIyO0JGODM7MTEwOCAxMTZCIDExQjI7CitCRjg0O0JGODQ7MTEwOCAxMTZCIDExQjM7QkY4NDsxMTA4IDExNkIgMTFCMzsKK0JGODU7QkY4NTsxMTA4IDExNkIgMTFCNDtCRjg1OzExMDggMTE2QiAxMUI0OworQkY4NjtCRjg2OzExMDggMTE2QiAxMUI1O0JGODY7MTEwOCAxMTZCIDExQjU7CitCRjg3O0JGODc7MTEwOCAxMTZCIDExQjY7QkY4NzsxMTA4IDExNkIgMTFCNjsKK0JGODg7QkY4ODsxMTA4IDExNkIgMTFCNztCRjg4OzExMDggMTE2QiAxMUI3OworQkY4OTtCRjg5OzExMDggMTE2QiAxMUI4O0JGODk7MTEwOCAxMTZCIDExQjg7CitCRjhBO0JGOEE7MTEwOCAxMTZCIDExQjk7QkY4QTsxMTA4IDExNkIgMTFCOTsKK0JGOEI7QkY4QjsxMTA4IDExNkIgMTFCQTtCRjhCOzExMDggMTE2QiAxMUJBOworQkY4QztCRjhDOzExMDggMTE2QiAxMUJCO0JGOEM7MTEwOCAxMTZCIDExQkI7CitCRjhEO0JGOEQ7MTEwOCAxMTZCIDExQkM7QkY4RDsxMTA4IDExNkIgMTFCQzsKK0JGOEU7QkY4RTsxMTA4IDExNkIgMTFCRDtCRjhFOzExMDggMTE2QiAxMUJEOworQkY4RjtCRjhGOzExMDggMTE2QiAxMUJFO0JGOEY7MTEwOCAxMTZCIDExQkU7CitCRjkwO0JGOTA7MTEwOCAxMTZCIDExQkY7QkY5MDsxMTA4IDExNkIgMTFCRjsKK0JGOTE7QkY5MTsxMTA4IDExNkIgMTFDMDtCRjkxOzExMDggMTE2QiAxMUMwOworQkY5MjtCRjkyOzExMDggMTE2QiAxMUMxO0JGOTI7MTEwOCAxMTZCIDExQzE7CitCRjkzO0JGOTM7MTEwOCAxMTZCIDExQzI7QkY5MzsxMTA4IDExNkIgMTFDMjsKK0JGOTQ7QkY5NDsxMTA4IDExNkM7QkY5NDsxMTA4IDExNkM7CitCRjk1O0JGOTU7MTEwOCAxMTZDIDExQTg7QkY5NTsxMTA4IDExNkMgMTFBODsKK0JGOTY7QkY5NjsxMTA4IDExNkMgMTFBOTtCRjk2OzExMDggMTE2QyAxMUE5OworQkY5NztCRjk3OzExMDggMTE2QyAxMUFBO0JGOTc7MTEwOCAxMTZDIDExQUE7CitCRjk4O0JGOTg7MTEwOCAxMTZDIDExQUI7QkY5ODsxMTA4IDExNkMgMTFBQjsKK0JGOTk7QkY5OTsxMTA4IDExNkMgMTFBQztCRjk5OzExMDggMTE2QyAxMUFDOworQkY5QTtCRjlBOzExMDggMTE2QyAxMUFEO0JGOUE7MTEwOCAxMTZDIDExQUQ7CitCRjlCO0JGOUI7MTEwOCAxMTZDIDExQUU7QkY5QjsxMTA4IDExNkMgMTFBRTsKK0JGOUM7QkY5QzsxMTA4IDExNkMgMTFBRjtCRjlDOzExMDggMTE2QyAxMUFGOworQkY5RDtCRjlEOzExMDggMTE2QyAxMUIwO0JGOUQ7MTEwOCAxMTZDIDExQjA7CitCRjlFO0JGOUU7MTEwOCAxMTZDIDExQjE7QkY5RTsxMTA4IDExNkMgMTFCMTsKK0JGOUY7QkY5RjsxMTA4IDExNkMgMTFCMjtCRjlGOzExMDggMTE2QyAxMUIyOworQkZBMDtCRkEwOzExMDggMTE2QyAxMUIzO0JGQTA7MTEwOCAxMTZDIDExQjM7CitCRkExO0JGQTE7MTEwOCAxMTZDIDExQjQ7QkZBMTsxMTA4IDExNkMgMTFCNDsKK0JGQTI7QkZBMjsxMTA4IDExNkMgMTFCNTtCRkEyOzExMDggMTE2QyAxMUI1OworQkZBMztCRkEzOzExMDggMTE2QyAxMUI2O0JGQTM7MTEwOCAxMTZDIDExQjY7CitCRkE0O0JGQTQ7MTEwOCAxMTZDIDExQjc7QkZBNDsxMTA4IDExNkMgMTFCNzsKK0JGQTU7QkZBNTsxMTA4IDExNkMgMTFCODtCRkE1OzExMDggMTE2QyAxMUI4OworQkZBNjtCRkE2OzExMDggMTE2QyAxMUI5O0JGQTY7MTEwOCAxMTZDIDExQjk7CitCRkE3O0JGQTc7MTEwOCAxMTZDIDExQkE7QkZBNzsxMTA4IDExNkMgMTFCQTsKK0JGQTg7QkZBODsxMTA4IDExNkMgMTFCQjtCRkE4OzExMDggMTE2QyAxMUJCOworQkZBOTtCRkE5OzExMDggMTE2QyAxMUJDO0JGQTk7MTEwOCAxMTZDIDExQkM7CitCRkFBO0JGQUE7MTEwOCAxMTZDIDExQkQ7QkZBQTsxMTA4IDExNkMgMTFCRDsKK0JGQUI7QkZBQjsxMTA4IDExNkMgMTFCRTtCRkFCOzExMDggMTE2QyAxMUJFOworQkZBQztCRkFDOzExMDggMTE2QyAxMUJGO0JGQUM7MTEwOCAxMTZDIDExQkY7CitCRkFEO0JGQUQ7MTEwOCAxMTZDIDExQzA7QkZBRDsxMTA4IDExNkMgMTFDMDsKK0JGQUU7QkZBRTsxMTA4IDExNkMgMTFDMTtCRkFFOzExMDggMTE2QyAxMUMxOworQkZBRjtCRkFGOzExMDggMTE2QyAxMUMyO0JGQUY7MTEwOCAxMTZDIDExQzI7CitCRkIwO0JGQjA7MTEwOCAxMTZEO0JGQjA7MTEwOCAxMTZEOworQkZCMTtCRkIxOzExMDggMTE2RCAxMUE4O0JGQjE7MTEwOCAxMTZEIDExQTg7CitCRkIyO0JGQjI7MTEwOCAxMTZEIDExQTk7QkZCMjsxMTA4IDExNkQgMTFBOTsKK0JGQjM7QkZCMzsxMTA4IDExNkQgMTFBQTtCRkIzOzExMDggMTE2RCAxMUFBOworQkZCNDtCRkI0OzExMDggMTE2RCAxMUFCO0JGQjQ7MTEwOCAxMTZEIDExQUI7CitCRkI1O0JGQjU7MTEwOCAxMTZEIDExQUM7QkZCNTsxMTA4IDExNkQgMTFBQzsKK0JGQjY7QkZCNjsxMTA4IDExNkQgMTFBRDtCRkI2OzExMDggMTE2RCAxMUFEOworQkZCNztCRkI3OzExMDggMTE2RCAxMUFFO0JGQjc7MTEwOCAxMTZEIDExQUU7CitCRkI4O0JGQjg7MTEwOCAxMTZEIDExQUY7QkZCODsxMTA4IDExNkQgMTFBRjsKK0JGQjk7QkZCOTsxMTA4IDExNkQgMTFCMDtCRkI5OzExMDggMTE2RCAxMUIwOworQkZCQTtCRkJBOzExMDggMTE2RCAxMUIxO0JGQkE7MTEwOCAxMTZEIDExQjE7CitCRkJCO0JGQkI7MTEwOCAxMTZEIDExQjI7QkZCQjsxMTA4IDExNkQgMTFCMjsKK0JGQkM7QkZCQzsxMTA4IDExNkQgMTFCMztCRkJDOzExMDggMTE2RCAxMUIzOworQkZCRDtCRkJEOzExMDggMTE2RCAxMUI0O0JGQkQ7MTEwOCAxMTZEIDExQjQ7CitCRkJFO0JGQkU7MTEwOCAxMTZEIDExQjU7QkZCRTsxMTA4IDExNkQgMTFCNTsKK0JGQkY7QkZCRjsxMTA4IDExNkQgMTFCNjtCRkJGOzExMDggMTE2RCAxMUI2OworQkZDMDtCRkMwOzExMDggMTE2RCAxMUI3O0JGQzA7MTEwOCAxMTZEIDExQjc7CitCRkMxO0JGQzE7MTEwOCAxMTZEIDExQjg7QkZDMTsxMTA4IDExNkQgMTFCODsKK0JGQzI7QkZDMjsxMTA4IDExNkQgMTFCOTtCRkMyOzExMDggMTE2RCAxMUI5OworQkZDMztCRkMzOzExMDggMTE2RCAxMUJBO0JGQzM7MTEwOCAxMTZEIDExQkE7CitCRkM0O0JGQzQ7MTEwOCAxMTZEIDExQkI7QkZDNDsxMTA4IDExNkQgMTFCQjsKK0JGQzU7QkZDNTsxMTA4IDExNkQgMTFCQztCRkM1OzExMDggMTE2RCAxMUJDOworQkZDNjtCRkM2OzExMDggMTE2RCAxMUJEO0JGQzY7MTEwOCAxMTZEIDExQkQ7CitCRkM3O0JGQzc7MTEwOCAxMTZEIDExQkU7QkZDNzsxMTA4IDExNkQgMTFCRTsKK0JGQzg7QkZDODsxMTA4IDExNkQgMTFCRjtCRkM4OzExMDggMTE2RCAxMUJGOworQkZDOTtCRkM5OzExMDggMTE2RCAxMUMwO0JGQzk7MTEwOCAxMTZEIDExQzA7CitCRkNBO0JGQ0E7MTEwOCAxMTZEIDExQzE7QkZDQTsxMTA4IDExNkQgMTFDMTsKK0JGQ0I7QkZDQjsxMTA4IDExNkQgMTFDMjtCRkNCOzExMDggMTE2RCAxMUMyOworQkZDQztCRkNDOzExMDggMTE2RTtCRkNDOzExMDggMTE2RTsKK0JGQ0Q7QkZDRDsxMTA4IDExNkUgMTFBODtCRkNEOzExMDggMTE2RSAxMUE4OworQkZDRTtCRkNFOzExMDggMTE2RSAxMUE5O0JGQ0U7MTEwOCAxMTZFIDExQTk7CitCRkNGO0JGQ0Y7MTEwOCAxMTZFIDExQUE7QkZDRjsxMTA4IDExNkUgMTFBQTsKK0JGRDA7QkZEMDsxMTA4IDExNkUgMTFBQjtCRkQwOzExMDggMTE2RSAxMUFCOworQkZEMTtCRkQxOzExMDggMTE2RSAxMUFDO0JGRDE7MTEwOCAxMTZFIDExQUM7CitCRkQyO0JGRDI7MTEwOCAxMTZFIDExQUQ7QkZEMjsxMTA4IDExNkUgMTFBRDsKK0JGRDM7QkZEMzsxMTA4IDExNkUgMTFBRTtCRkQzOzExMDggMTE2RSAxMUFFOworQkZENDtCRkQ0OzExMDggMTE2RSAxMUFGO0JGRDQ7MTEwOCAxMTZFIDExQUY7CitCRkQ1O0JGRDU7MTEwOCAxMTZFIDExQjA7QkZENTsxMTA4IDExNkUgMTFCMDsKK0JGRDY7QkZENjsxMTA4IDExNkUgMTFCMTtCRkQ2OzExMDggMTE2RSAxMUIxOworQkZENztCRkQ3OzExMDggMTE2RSAxMUIyO0JGRDc7MTEwOCAxMTZFIDExQjI7CitCRkQ4O0JGRDg7MTEwOCAxMTZFIDExQjM7QkZEODsxMTA4IDExNkUgMTFCMzsKK0JGRDk7QkZEOTsxMTA4IDExNkUgMTFCNDtCRkQ5OzExMDggMTE2RSAxMUI0OworQkZEQTtCRkRBOzExMDggMTE2RSAxMUI1O0JGREE7MTEwOCAxMTZFIDExQjU7CitCRkRCO0JGREI7MTEwOCAxMTZFIDExQjY7QkZEQjsxMTA4IDExNkUgMTFCNjsKK0JGREM7QkZEQzsxMTA4IDExNkUgMTFCNztCRkRDOzExMDggMTE2RSAxMUI3OworQkZERDtCRkREOzExMDggMTE2RSAxMUI4O0JGREQ7MTEwOCAxMTZFIDExQjg7CitCRkRFO0JGREU7MTEwOCAxMTZFIDExQjk7QkZERTsxMTA4IDExNkUgMTFCOTsKK0JGREY7QkZERjsxMTA4IDExNkUgMTFCQTtCRkRGOzExMDggMTE2RSAxMUJBOworQkZFMDtCRkUwOzExMDggMTE2RSAxMUJCO0JGRTA7MTEwOCAxMTZFIDExQkI7CitCRkUxO0JGRTE7MTEwOCAxMTZFIDExQkM7QkZFMTsxMTA4IDExNkUgMTFCQzsKK0JGRTI7QkZFMjsxMTA4IDExNkUgMTFCRDtCRkUyOzExMDggMTE2RSAxMUJEOworQkZFMztCRkUzOzExMDggMTE2RSAxMUJFO0JGRTM7MTEwOCAxMTZFIDExQkU7CitCRkU0O0JGRTQ7MTEwOCAxMTZFIDExQkY7QkZFNDsxMTA4IDExNkUgMTFCRjsKK0JGRTU7QkZFNTsxMTA4IDExNkUgMTFDMDtCRkU1OzExMDggMTE2RSAxMUMwOworQkZFNjtCRkU2OzExMDggMTE2RSAxMUMxO0JGRTY7MTEwOCAxMTZFIDExQzE7CitCRkU3O0JGRTc7MTEwOCAxMTZFIDExQzI7QkZFNzsxMTA4IDExNkUgMTFDMjsKK0JGRTg7QkZFODsxMTA4IDExNkY7QkZFODsxMTA4IDExNkY7CitCRkU5O0JGRTk7MTEwOCAxMTZGIDExQTg7QkZFOTsxMTA4IDExNkYgMTFBODsKK0JGRUE7QkZFQTsxMTA4IDExNkYgMTFBOTtCRkVBOzExMDggMTE2RiAxMUE5OworQkZFQjtCRkVCOzExMDggMTE2RiAxMUFBO0JGRUI7MTEwOCAxMTZGIDExQUE7CitCRkVDO0JGRUM7MTEwOCAxMTZGIDExQUI7QkZFQzsxMTA4IDExNkYgMTFBQjsKK0JGRUQ7QkZFRDsxMTA4IDExNkYgMTFBQztCRkVEOzExMDggMTE2RiAxMUFDOworQkZFRTtCRkVFOzExMDggMTE2RiAxMUFEO0JGRUU7MTEwOCAxMTZGIDExQUQ7CitCRkVGO0JGRUY7MTEwOCAxMTZGIDExQUU7QkZFRjsxMTA4IDExNkYgMTFBRTsKK0JGRjA7QkZGMDsxMTA4IDExNkYgMTFBRjtCRkYwOzExMDggMTE2RiAxMUFGOworQkZGMTtCRkYxOzExMDggMTE2RiAxMUIwO0JGRjE7MTEwOCAxMTZGIDExQjA7CitCRkYyO0JGRjI7MTEwOCAxMTZGIDExQjE7QkZGMjsxMTA4IDExNkYgMTFCMTsKK0JGRjM7QkZGMzsxMTA4IDExNkYgMTFCMjtCRkYzOzExMDggMTE2RiAxMUIyOworQkZGNDtCRkY0OzExMDggMTE2RiAxMUIzO0JGRjQ7MTEwOCAxMTZGIDExQjM7CitCRkY1O0JGRjU7MTEwOCAxMTZGIDExQjQ7QkZGNTsxMTA4IDExNkYgMTFCNDsKK0JGRjY7QkZGNjsxMTA4IDExNkYgMTFCNTtCRkY2OzExMDggMTE2RiAxMUI1OworQkZGNztCRkY3OzExMDggMTE2RiAxMUI2O0JGRjc7MTEwOCAxMTZGIDExQjY7CitCRkY4O0JGRjg7MTEwOCAxMTZGIDExQjc7QkZGODsxMTA4IDExNkYgMTFCNzsKK0JGRjk7QkZGOTsxMTA4IDExNkYgMTFCODtCRkY5OzExMDggMTE2RiAxMUI4OworQkZGQTtCRkZBOzExMDggMTE2RiAxMUI5O0JGRkE7MTEwOCAxMTZGIDExQjk7CitCRkZCO0JGRkI7MTEwOCAxMTZGIDExQkE7QkZGQjsxMTA4IDExNkYgMTFCQTsKK0JGRkM7QkZGQzsxMTA4IDExNkYgMTFCQjtCRkZDOzExMDggMTE2RiAxMUJCOworQkZGRDtCRkZEOzExMDggMTE2RiAxMUJDO0JGRkQ7MTEwOCAxMTZGIDExQkM7CitCRkZFO0JGRkU7MTEwOCAxMTZGIDExQkQ7QkZGRTsxMTA4IDExNkYgMTFCRDsKK0JGRkY7QkZGRjsxMTA4IDExNkYgMTFCRTtCRkZGOzExMDggMTE2RiAxMUJFOworQzAwMDtDMDAwOzExMDggMTE2RiAxMUJGO0MwMDA7MTEwOCAxMTZGIDExQkY7CitDMDAxO0MwMDE7MTEwOCAxMTZGIDExQzA7QzAwMTsxMTA4IDExNkYgMTFDMDsKK0MwMDI7QzAwMjsxMTA4IDExNkYgMTFDMTtDMDAyOzExMDggMTE2RiAxMUMxOworQzAwMztDMDAzOzExMDggMTE2RiAxMUMyO0MwMDM7MTEwOCAxMTZGIDExQzI7CitDMDA0O0MwMDQ7MTEwOCAxMTcwO0MwMDQ7MTEwOCAxMTcwOworQzAwNTtDMDA1OzExMDggMTE3MCAxMUE4O0MwMDU7MTEwOCAxMTcwIDExQTg7CitDMDA2O0MwMDY7MTEwOCAxMTcwIDExQTk7QzAwNjsxMTA4IDExNzAgMTFBOTsKK0MwMDc7QzAwNzsxMTA4IDExNzAgMTFBQTtDMDA3OzExMDggMTE3MCAxMUFBOworQzAwODtDMDA4OzExMDggMTE3MCAxMUFCO0MwMDg7MTEwOCAxMTcwIDExQUI7CitDMDA5O0MwMDk7MTEwOCAxMTcwIDExQUM7QzAwOTsxMTA4IDExNzAgMTFBQzsKK0MwMEE7QzAwQTsxMTA4IDExNzAgMTFBRDtDMDBBOzExMDggMTE3MCAxMUFEOworQzAwQjtDMDBCOzExMDggMTE3MCAxMUFFO0MwMEI7MTEwOCAxMTcwIDExQUU7CitDMDBDO0MwMEM7MTEwOCAxMTcwIDExQUY7QzAwQzsxMTA4IDExNzAgMTFBRjsKK0MwMEQ7QzAwRDsxMTA4IDExNzAgMTFCMDtDMDBEOzExMDggMTE3MCAxMUIwOworQzAwRTtDMDBFOzExMDggMTE3MCAxMUIxO0MwMEU7MTEwOCAxMTcwIDExQjE7CitDMDBGO0MwMEY7MTEwOCAxMTcwIDExQjI7QzAwRjsxMTA4IDExNzAgMTFCMjsKK0MwMTA7QzAxMDsxMTA4IDExNzAgMTFCMztDMDEwOzExMDggMTE3MCAxMUIzOworQzAxMTtDMDExOzExMDggMTE3MCAxMUI0O0MwMTE7MTEwOCAxMTcwIDExQjQ7CitDMDEyO0MwMTI7MTEwOCAxMTcwIDExQjU7QzAxMjsxMTA4IDExNzAgMTFCNTsKK0MwMTM7QzAxMzsxMTA4IDExNzAgMTFCNjtDMDEzOzExMDggMTE3MCAxMUI2OworQzAxNDtDMDE0OzExMDggMTE3MCAxMUI3O0MwMTQ7MTEwOCAxMTcwIDExQjc7CitDMDE1O0MwMTU7MTEwOCAxMTcwIDExQjg7QzAxNTsxMTA4IDExNzAgMTFCODsKK0MwMTY7QzAxNjsxMTA4IDExNzAgMTFCOTtDMDE2OzExMDggMTE3MCAxMUI5OworQzAxNztDMDE3OzExMDggMTE3MCAxMUJBO0MwMTc7MTEwOCAxMTcwIDExQkE7CitDMDE4O0MwMTg7MTEwOCAxMTcwIDExQkI7QzAxODsxMTA4IDExNzAgMTFCQjsKK0MwMTk7QzAxOTsxMTA4IDExNzAgMTFCQztDMDE5OzExMDggMTE3MCAxMUJDOworQzAxQTtDMDFBOzExMDggMTE3MCAxMUJEO0MwMUE7MTEwOCAxMTcwIDExQkQ7CitDMDFCO0MwMUI7MTEwOCAxMTcwIDExQkU7QzAxQjsxMTA4IDExNzAgMTFCRTsKK0MwMUM7QzAxQzsxMTA4IDExNzAgMTFCRjtDMDFDOzExMDggMTE3MCAxMUJGOworQzAxRDtDMDFEOzExMDggMTE3MCAxMUMwO0MwMUQ7MTEwOCAxMTcwIDExQzA7CitDMDFFO0MwMUU7MTEwOCAxMTcwIDExQzE7QzAxRTsxMTA4IDExNzAgMTFDMTsKK0MwMUY7QzAxRjsxMTA4IDExNzAgMTFDMjtDMDFGOzExMDggMTE3MCAxMUMyOworQzAyMDtDMDIwOzExMDggMTE3MTtDMDIwOzExMDggMTE3MTsKK0MwMjE7QzAyMTsxMTA4IDExNzEgMTFBODtDMDIxOzExMDggMTE3MSAxMUE4OworQzAyMjtDMDIyOzExMDggMTE3MSAxMUE5O0MwMjI7MTEwOCAxMTcxIDExQTk7CitDMDIzO0MwMjM7MTEwOCAxMTcxIDExQUE7QzAyMzsxMTA4IDExNzEgMTFBQTsKK0MwMjQ7QzAyNDsxMTA4IDExNzEgMTFBQjtDMDI0OzExMDggMTE3MSAxMUFCOworQzAyNTtDMDI1OzExMDggMTE3MSAxMUFDO0MwMjU7MTEwOCAxMTcxIDExQUM7CitDMDI2O0MwMjY7MTEwOCAxMTcxIDExQUQ7QzAyNjsxMTA4IDExNzEgMTFBRDsKK0MwMjc7QzAyNzsxMTA4IDExNzEgMTFBRTtDMDI3OzExMDggMTE3MSAxMUFFOworQzAyODtDMDI4OzExMDggMTE3MSAxMUFGO0MwMjg7MTEwOCAxMTcxIDExQUY7CitDMDI5O0MwMjk7MTEwOCAxMTcxIDExQjA7QzAyOTsxMTA4IDExNzEgMTFCMDsKK0MwMkE7QzAyQTsxMTA4IDExNzEgMTFCMTtDMDJBOzExMDggMTE3MSAxMUIxOworQzAyQjtDMDJCOzExMDggMTE3MSAxMUIyO0MwMkI7MTEwOCAxMTcxIDExQjI7CitDMDJDO0MwMkM7MTEwOCAxMTcxIDExQjM7QzAyQzsxMTA4IDExNzEgMTFCMzsKK0MwMkQ7QzAyRDsxMTA4IDExNzEgMTFCNDtDMDJEOzExMDggMTE3MSAxMUI0OworQzAyRTtDMDJFOzExMDggMTE3MSAxMUI1O0MwMkU7MTEwOCAxMTcxIDExQjU7CitDMDJGO0MwMkY7MTEwOCAxMTcxIDExQjY7QzAyRjsxMTA4IDExNzEgMTFCNjsKK0MwMzA7QzAzMDsxMTA4IDExNzEgMTFCNztDMDMwOzExMDggMTE3MSAxMUI3OworQzAzMTtDMDMxOzExMDggMTE3MSAxMUI4O0MwMzE7MTEwOCAxMTcxIDExQjg7CitDMDMyO0MwMzI7MTEwOCAxMTcxIDExQjk7QzAzMjsxMTA4IDExNzEgMTFCOTsKK0MwMzM7QzAzMzsxMTA4IDExNzEgMTFCQTtDMDMzOzExMDggMTE3MSAxMUJBOworQzAzNDtDMDM0OzExMDggMTE3MSAxMUJCO0MwMzQ7MTEwOCAxMTcxIDExQkI7CitDMDM1O0MwMzU7MTEwOCAxMTcxIDExQkM7QzAzNTsxMTA4IDExNzEgMTFCQzsKK0MwMzY7QzAzNjsxMTA4IDExNzEgMTFCRDtDMDM2OzExMDggMTE3MSAxMUJEOworQzAzNztDMDM3OzExMDggMTE3MSAxMUJFO0MwMzc7MTEwOCAxMTcxIDExQkU7CitDMDM4O0MwMzg7MTEwOCAxMTcxIDExQkY7QzAzODsxMTA4IDExNzEgMTFCRjsKK0MwMzk7QzAzOTsxMTA4IDExNzEgMTFDMDtDMDM5OzExMDggMTE3MSAxMUMwOworQzAzQTtDMDNBOzExMDggMTE3MSAxMUMxO0MwM0E7MTEwOCAxMTcxIDExQzE7CitDMDNCO0MwM0I7MTEwOCAxMTcxIDExQzI7QzAzQjsxMTA4IDExNzEgMTFDMjsKK0MwM0M7QzAzQzsxMTA4IDExNzI7QzAzQzsxMTA4IDExNzI7CitDMDNEO0MwM0Q7MTEwOCAxMTcyIDExQTg7QzAzRDsxMTA4IDExNzIgMTFBODsKK0MwM0U7QzAzRTsxMTA4IDExNzIgMTFBOTtDMDNFOzExMDggMTE3MiAxMUE5OworQzAzRjtDMDNGOzExMDggMTE3MiAxMUFBO0MwM0Y7MTEwOCAxMTcyIDExQUE7CitDMDQwO0MwNDA7MTEwOCAxMTcyIDExQUI7QzA0MDsxMTA4IDExNzIgMTFBQjsKK0MwNDE7QzA0MTsxMTA4IDExNzIgMTFBQztDMDQxOzExMDggMTE3MiAxMUFDOworQzA0MjtDMDQyOzExMDggMTE3MiAxMUFEO0MwNDI7MTEwOCAxMTcyIDExQUQ7CitDMDQzO0MwNDM7MTEwOCAxMTcyIDExQUU7QzA0MzsxMTA4IDExNzIgMTFBRTsKK0MwNDQ7QzA0NDsxMTA4IDExNzIgMTFBRjtDMDQ0OzExMDggMTE3MiAxMUFGOworQzA0NTtDMDQ1OzExMDggMTE3MiAxMUIwO0MwNDU7MTEwOCAxMTcyIDExQjA7CitDMDQ2O0MwNDY7MTEwOCAxMTcyIDExQjE7QzA0NjsxMTA4IDExNzIgMTFCMTsKK0MwNDc7QzA0NzsxMTA4IDExNzIgMTFCMjtDMDQ3OzExMDggMTE3MiAxMUIyOworQzA0ODtDMDQ4OzExMDggMTE3MiAxMUIzO0MwNDg7MTEwOCAxMTcyIDExQjM7CitDMDQ5O0MwNDk7MTEwOCAxMTcyIDExQjQ7QzA0OTsxMTA4IDExNzIgMTFCNDsKK0MwNEE7QzA0QTsxMTA4IDExNzIgMTFCNTtDMDRBOzExMDggMTE3MiAxMUI1OworQzA0QjtDMDRCOzExMDggMTE3MiAxMUI2O0MwNEI7MTEwOCAxMTcyIDExQjY7CitDMDRDO0MwNEM7MTEwOCAxMTcyIDExQjc7QzA0QzsxMTA4IDExNzIgMTFCNzsKK0MwNEQ7QzA0RDsxMTA4IDExNzIgMTFCODtDMDREOzExMDggMTE3MiAxMUI4OworQzA0RTtDMDRFOzExMDggMTE3MiAxMUI5O0MwNEU7MTEwOCAxMTcyIDExQjk7CitDMDRGO0MwNEY7MTEwOCAxMTcyIDExQkE7QzA0RjsxMTA4IDExNzIgMTFCQTsKK0MwNTA7QzA1MDsxMTA4IDExNzIgMTFCQjtDMDUwOzExMDggMTE3MiAxMUJCOworQzA1MTtDMDUxOzExMDggMTE3MiAxMUJDO0MwNTE7MTEwOCAxMTcyIDExQkM7CitDMDUyO0MwNTI7MTEwOCAxMTcyIDExQkQ7QzA1MjsxMTA4IDExNzIgMTFCRDsKK0MwNTM7QzA1MzsxMTA4IDExNzIgMTFCRTtDMDUzOzExMDggMTE3MiAxMUJFOworQzA1NDtDMDU0OzExMDggMTE3MiAxMUJGO0MwNTQ7MTEwOCAxMTcyIDExQkY7CitDMDU1O0MwNTU7MTEwOCAxMTcyIDExQzA7QzA1NTsxMTA4IDExNzIgMTFDMDsKK0MwNTY7QzA1NjsxMTA4IDExNzIgMTFDMTtDMDU2OzExMDggMTE3MiAxMUMxOworQzA1NztDMDU3OzExMDggMTE3MiAxMUMyO0MwNTc7MTEwOCAxMTcyIDExQzI7CitDMDU4O0MwNTg7MTEwOCAxMTczO0MwNTg7MTEwOCAxMTczOworQzA1OTtDMDU5OzExMDggMTE3MyAxMUE4O0MwNTk7MTEwOCAxMTczIDExQTg7CitDMDVBO0MwNUE7MTEwOCAxMTczIDExQTk7QzA1QTsxMTA4IDExNzMgMTFBOTsKK0MwNUI7QzA1QjsxMTA4IDExNzMgMTFBQTtDMDVCOzExMDggMTE3MyAxMUFBOworQzA1QztDMDVDOzExMDggMTE3MyAxMUFCO0MwNUM7MTEwOCAxMTczIDExQUI7CitDMDVEO0MwNUQ7MTEwOCAxMTczIDExQUM7QzA1RDsxMTA4IDExNzMgMTFBQzsKK0MwNUU7QzA1RTsxMTA4IDExNzMgMTFBRDtDMDVFOzExMDggMTE3MyAxMUFEOworQzA1RjtDMDVGOzExMDggMTE3MyAxMUFFO0MwNUY7MTEwOCAxMTczIDExQUU7CitDMDYwO0MwNjA7MTEwOCAxMTczIDExQUY7QzA2MDsxMTA4IDExNzMgMTFBRjsKK0MwNjE7QzA2MTsxMTA4IDExNzMgMTFCMDtDMDYxOzExMDggMTE3MyAxMUIwOworQzA2MjtDMDYyOzExMDggMTE3MyAxMUIxO0MwNjI7MTEwOCAxMTczIDExQjE7CitDMDYzO0MwNjM7MTEwOCAxMTczIDExQjI7QzA2MzsxMTA4IDExNzMgMTFCMjsKK0MwNjQ7QzA2NDsxMTA4IDExNzMgMTFCMztDMDY0OzExMDggMTE3MyAxMUIzOworQzA2NTtDMDY1OzExMDggMTE3MyAxMUI0O0MwNjU7MTEwOCAxMTczIDExQjQ7CitDMDY2O0MwNjY7MTEwOCAxMTczIDExQjU7QzA2NjsxMTA4IDExNzMgMTFCNTsKK0MwNjc7QzA2NzsxMTA4IDExNzMgMTFCNjtDMDY3OzExMDggMTE3MyAxMUI2OworQzA2ODtDMDY4OzExMDggMTE3MyAxMUI3O0MwNjg7MTEwOCAxMTczIDExQjc7CitDMDY5O0MwNjk7MTEwOCAxMTczIDExQjg7QzA2OTsxMTA4IDExNzMgMTFCODsKK0MwNkE7QzA2QTsxMTA4IDExNzMgMTFCOTtDMDZBOzExMDggMTE3MyAxMUI5OworQzA2QjtDMDZCOzExMDggMTE3MyAxMUJBO0MwNkI7MTEwOCAxMTczIDExQkE7CitDMDZDO0MwNkM7MTEwOCAxMTczIDExQkI7QzA2QzsxMTA4IDExNzMgMTFCQjsKK0MwNkQ7QzA2RDsxMTA4IDExNzMgMTFCQztDMDZEOzExMDggMTE3MyAxMUJDOworQzA2RTtDMDZFOzExMDggMTE3MyAxMUJEO0MwNkU7MTEwOCAxMTczIDExQkQ7CitDMDZGO0MwNkY7MTEwOCAxMTczIDExQkU7QzA2RjsxMTA4IDExNzMgMTFCRTsKK0MwNzA7QzA3MDsxMTA4IDExNzMgMTFCRjtDMDcwOzExMDggMTE3MyAxMUJGOworQzA3MTtDMDcxOzExMDggMTE3MyAxMUMwO0MwNzE7MTEwOCAxMTczIDExQzA7CitDMDcyO0MwNzI7MTEwOCAxMTczIDExQzE7QzA3MjsxMTA4IDExNzMgMTFDMTsKK0MwNzM7QzA3MzsxMTA4IDExNzMgMTFDMjtDMDczOzExMDggMTE3MyAxMUMyOworQzA3NDtDMDc0OzExMDggMTE3NDtDMDc0OzExMDggMTE3NDsKK0MwNzU7QzA3NTsxMTA4IDExNzQgMTFBODtDMDc1OzExMDggMTE3NCAxMUE4OworQzA3NjtDMDc2OzExMDggMTE3NCAxMUE5O0MwNzY7MTEwOCAxMTc0IDExQTk7CitDMDc3O0MwNzc7MTEwOCAxMTc0IDExQUE7QzA3NzsxMTA4IDExNzQgMTFBQTsKK0MwNzg7QzA3ODsxMTA4IDExNzQgMTFBQjtDMDc4OzExMDggMTE3NCAxMUFCOworQzA3OTtDMDc5OzExMDggMTE3NCAxMUFDO0MwNzk7MTEwOCAxMTc0IDExQUM7CitDMDdBO0MwN0E7MTEwOCAxMTc0IDExQUQ7QzA3QTsxMTA4IDExNzQgMTFBRDsKK0MwN0I7QzA3QjsxMTA4IDExNzQgMTFBRTtDMDdCOzExMDggMTE3NCAxMUFFOworQzA3QztDMDdDOzExMDggMTE3NCAxMUFGO0MwN0M7MTEwOCAxMTc0IDExQUY7CitDMDdEO0MwN0Q7MTEwOCAxMTc0IDExQjA7QzA3RDsxMTA4IDExNzQgMTFCMDsKK0MwN0U7QzA3RTsxMTA4IDExNzQgMTFCMTtDMDdFOzExMDggMTE3NCAxMUIxOworQzA3RjtDMDdGOzExMDggMTE3NCAxMUIyO0MwN0Y7MTEwOCAxMTc0IDExQjI7CitDMDgwO0MwODA7MTEwOCAxMTc0IDExQjM7QzA4MDsxMTA4IDExNzQgMTFCMzsKK0MwODE7QzA4MTsxMTA4IDExNzQgMTFCNDtDMDgxOzExMDggMTE3NCAxMUI0OworQzA4MjtDMDgyOzExMDggMTE3NCAxMUI1O0MwODI7MTEwOCAxMTc0IDExQjU7CitDMDgzO0MwODM7MTEwOCAxMTc0IDExQjY7QzA4MzsxMTA4IDExNzQgMTFCNjsKK0MwODQ7QzA4NDsxMTA4IDExNzQgMTFCNztDMDg0OzExMDggMTE3NCAxMUI3OworQzA4NTtDMDg1OzExMDggMTE3NCAxMUI4O0MwODU7MTEwOCAxMTc0IDExQjg7CitDMDg2O0MwODY7MTEwOCAxMTc0IDExQjk7QzA4NjsxMTA4IDExNzQgMTFCOTsKK0MwODc7QzA4NzsxMTA4IDExNzQgMTFCQTtDMDg3OzExMDggMTE3NCAxMUJBOworQzA4ODtDMDg4OzExMDggMTE3NCAxMUJCO0MwODg7MTEwOCAxMTc0IDExQkI7CitDMDg5O0MwODk7MTEwOCAxMTc0IDExQkM7QzA4OTsxMTA4IDExNzQgMTFCQzsKK0MwOEE7QzA4QTsxMTA4IDExNzQgMTFCRDtDMDhBOzExMDggMTE3NCAxMUJEOworQzA4QjtDMDhCOzExMDggMTE3NCAxMUJFO0MwOEI7MTEwOCAxMTc0IDExQkU7CitDMDhDO0MwOEM7MTEwOCAxMTc0IDExQkY7QzA4QzsxMTA4IDExNzQgMTFCRjsKK0MwOEQ7QzA4RDsxMTA4IDExNzQgMTFDMDtDMDhEOzExMDggMTE3NCAxMUMwOworQzA4RTtDMDhFOzExMDggMTE3NCAxMUMxO0MwOEU7MTEwOCAxMTc0IDExQzE7CitDMDhGO0MwOEY7MTEwOCAxMTc0IDExQzI7QzA4RjsxMTA4IDExNzQgMTFDMjsKK0MwOTA7QzA5MDsxMTA4IDExNzU7QzA5MDsxMTA4IDExNzU7CitDMDkxO0MwOTE7MTEwOCAxMTc1IDExQTg7QzA5MTsxMTA4IDExNzUgMTFBODsKK0MwOTI7QzA5MjsxMTA4IDExNzUgMTFBOTtDMDkyOzExMDggMTE3NSAxMUE5OworQzA5MztDMDkzOzExMDggMTE3NSAxMUFBO0MwOTM7MTEwOCAxMTc1IDExQUE7CitDMDk0O0MwOTQ7MTEwOCAxMTc1IDExQUI7QzA5NDsxMTA4IDExNzUgMTFBQjsKK0MwOTU7QzA5NTsxMTA4IDExNzUgMTFBQztDMDk1OzExMDggMTE3NSAxMUFDOworQzA5NjtDMDk2OzExMDggMTE3NSAxMUFEO0MwOTY7MTEwOCAxMTc1IDExQUQ7CitDMDk3O0MwOTc7MTEwOCAxMTc1IDExQUU7QzA5NzsxMTA4IDExNzUgMTFBRTsKK0MwOTg7QzA5ODsxMTA4IDExNzUgMTFBRjtDMDk4OzExMDggMTE3NSAxMUFGOworQzA5OTtDMDk5OzExMDggMTE3NSAxMUIwO0MwOTk7MTEwOCAxMTc1IDExQjA7CitDMDlBO0MwOUE7MTEwOCAxMTc1IDExQjE7QzA5QTsxMTA4IDExNzUgMTFCMTsKK0MwOUI7QzA5QjsxMTA4IDExNzUgMTFCMjtDMDlCOzExMDggMTE3NSAxMUIyOworQzA5QztDMDlDOzExMDggMTE3NSAxMUIzO0MwOUM7MTEwOCAxMTc1IDExQjM7CitDMDlEO0MwOUQ7MTEwOCAxMTc1IDExQjQ7QzA5RDsxMTA4IDExNzUgMTFCNDsKK0MwOUU7QzA5RTsxMTA4IDExNzUgMTFCNTtDMDlFOzExMDggMTE3NSAxMUI1OworQzA5RjtDMDlGOzExMDggMTE3NSAxMUI2O0MwOUY7MTEwOCAxMTc1IDExQjY7CitDMEEwO0MwQTA7MTEwOCAxMTc1IDExQjc7QzBBMDsxMTA4IDExNzUgMTFCNzsKK0MwQTE7QzBBMTsxMTA4IDExNzUgMTFCODtDMEExOzExMDggMTE3NSAxMUI4OworQzBBMjtDMEEyOzExMDggMTE3NSAxMUI5O0MwQTI7MTEwOCAxMTc1IDExQjk7CitDMEEzO0MwQTM7MTEwOCAxMTc1IDExQkE7QzBBMzsxMTA4IDExNzUgMTFCQTsKK0MwQTQ7QzBBNDsxMTA4IDExNzUgMTFCQjtDMEE0OzExMDggMTE3NSAxMUJCOworQzBBNTtDMEE1OzExMDggMTE3NSAxMUJDO0MwQTU7MTEwOCAxMTc1IDExQkM7CitDMEE2O0MwQTY7MTEwOCAxMTc1IDExQkQ7QzBBNjsxMTA4IDExNzUgMTFCRDsKK0MwQTc7QzBBNzsxMTA4IDExNzUgMTFCRTtDMEE3OzExMDggMTE3NSAxMUJFOworQzBBODtDMEE4OzExMDggMTE3NSAxMUJGO0MwQTg7MTEwOCAxMTc1IDExQkY7CitDMEE5O0MwQTk7MTEwOCAxMTc1IDExQzA7QzBBOTsxMTA4IDExNzUgMTFDMDsKK0MwQUE7QzBBQTsxMTA4IDExNzUgMTFDMTtDMEFBOzExMDggMTE3NSAxMUMxOworQzBBQjtDMEFCOzExMDggMTE3NSAxMUMyO0MwQUI7MTEwOCAxMTc1IDExQzI7CitDMEFDO0MwQUM7MTEwOSAxMTYxO0MwQUM7MTEwOSAxMTYxOworQzBBRDtDMEFEOzExMDkgMTE2MSAxMUE4O0MwQUQ7MTEwOSAxMTYxIDExQTg7CitDMEFFO0MwQUU7MTEwOSAxMTYxIDExQTk7QzBBRTsxMTA5IDExNjEgMTFBOTsKK0MwQUY7QzBBRjsxMTA5IDExNjEgMTFBQTtDMEFGOzExMDkgMTE2MSAxMUFBOworQzBCMDtDMEIwOzExMDkgMTE2MSAxMUFCO0MwQjA7MTEwOSAxMTYxIDExQUI7CitDMEIxO0MwQjE7MTEwOSAxMTYxIDExQUM7QzBCMTsxMTA5IDExNjEgMTFBQzsKK0MwQjI7QzBCMjsxMTA5IDExNjEgMTFBRDtDMEIyOzExMDkgMTE2MSAxMUFEOworQzBCMztDMEIzOzExMDkgMTE2MSAxMUFFO0MwQjM7MTEwOSAxMTYxIDExQUU7CitDMEI0O0MwQjQ7MTEwOSAxMTYxIDExQUY7QzBCNDsxMTA5IDExNjEgMTFBRjsKK0MwQjU7QzBCNTsxMTA5IDExNjEgMTFCMDtDMEI1OzExMDkgMTE2MSAxMUIwOworQzBCNjtDMEI2OzExMDkgMTE2MSAxMUIxO0MwQjY7MTEwOSAxMTYxIDExQjE7CitDMEI3O0MwQjc7MTEwOSAxMTYxIDExQjI7QzBCNzsxMTA5IDExNjEgMTFCMjsKK0MwQjg7QzBCODsxMTA5IDExNjEgMTFCMztDMEI4OzExMDkgMTE2MSAxMUIzOworQzBCOTtDMEI5OzExMDkgMTE2MSAxMUI0O0MwQjk7MTEwOSAxMTYxIDExQjQ7CitDMEJBO0MwQkE7MTEwOSAxMTYxIDExQjU7QzBCQTsxMTA5IDExNjEgMTFCNTsKK0MwQkI7QzBCQjsxMTA5IDExNjEgMTFCNjtDMEJCOzExMDkgMTE2MSAxMUI2OworQzBCQztDMEJDOzExMDkgMTE2MSAxMUI3O0MwQkM7MTEwOSAxMTYxIDExQjc7CitDMEJEO0MwQkQ7MTEwOSAxMTYxIDExQjg7QzBCRDsxMTA5IDExNjEgMTFCODsKK0MwQkU7QzBCRTsxMTA5IDExNjEgMTFCOTtDMEJFOzExMDkgMTE2MSAxMUI5OworQzBCRjtDMEJGOzExMDkgMTE2MSAxMUJBO0MwQkY7MTEwOSAxMTYxIDExQkE7CitDMEMwO0MwQzA7MTEwOSAxMTYxIDExQkI7QzBDMDsxMTA5IDExNjEgMTFCQjsKK0MwQzE7QzBDMTsxMTA5IDExNjEgMTFCQztDMEMxOzExMDkgMTE2MSAxMUJDOworQzBDMjtDMEMyOzExMDkgMTE2MSAxMUJEO0MwQzI7MTEwOSAxMTYxIDExQkQ7CitDMEMzO0MwQzM7MTEwOSAxMTYxIDExQkU7QzBDMzsxMTA5IDExNjEgMTFCRTsKK0MwQzQ7QzBDNDsxMTA5IDExNjEgMTFCRjtDMEM0OzExMDkgMTE2MSAxMUJGOworQzBDNTtDMEM1OzExMDkgMTE2MSAxMUMwO0MwQzU7MTEwOSAxMTYxIDExQzA7CitDMEM2O0MwQzY7MTEwOSAxMTYxIDExQzE7QzBDNjsxMTA5IDExNjEgMTFDMTsKK0MwQzc7QzBDNzsxMTA5IDExNjEgMTFDMjtDMEM3OzExMDkgMTE2MSAxMUMyOworQzBDODtDMEM4OzExMDkgMTE2MjtDMEM4OzExMDkgMTE2MjsKK0MwQzk7QzBDOTsxMTA5IDExNjIgMTFBODtDMEM5OzExMDkgMTE2MiAxMUE4OworQzBDQTtDMENBOzExMDkgMTE2MiAxMUE5O0MwQ0E7MTEwOSAxMTYyIDExQTk7CitDMENCO0MwQ0I7MTEwOSAxMTYyIDExQUE7QzBDQjsxMTA5IDExNjIgMTFBQTsKK0MwQ0M7QzBDQzsxMTA5IDExNjIgMTFBQjtDMENDOzExMDkgMTE2MiAxMUFCOworQzBDRDtDMENEOzExMDkgMTE2MiAxMUFDO0MwQ0Q7MTEwOSAxMTYyIDExQUM7CitDMENFO0MwQ0U7MTEwOSAxMTYyIDExQUQ7QzBDRTsxMTA5IDExNjIgMTFBRDsKK0MwQ0Y7QzBDRjsxMTA5IDExNjIgMTFBRTtDMENGOzExMDkgMTE2MiAxMUFFOworQzBEMDtDMEQwOzExMDkgMTE2MiAxMUFGO0MwRDA7MTEwOSAxMTYyIDExQUY7CitDMEQxO0MwRDE7MTEwOSAxMTYyIDExQjA7QzBEMTsxMTA5IDExNjIgMTFCMDsKK0MwRDI7QzBEMjsxMTA5IDExNjIgMTFCMTtDMEQyOzExMDkgMTE2MiAxMUIxOworQzBEMztDMEQzOzExMDkgMTE2MiAxMUIyO0MwRDM7MTEwOSAxMTYyIDExQjI7CitDMEQ0O0MwRDQ7MTEwOSAxMTYyIDExQjM7QzBENDsxMTA5IDExNjIgMTFCMzsKK0MwRDU7QzBENTsxMTA5IDExNjIgMTFCNDtDMEQ1OzExMDkgMTE2MiAxMUI0OworQzBENjtDMEQ2OzExMDkgMTE2MiAxMUI1O0MwRDY7MTEwOSAxMTYyIDExQjU7CitDMEQ3O0MwRDc7MTEwOSAxMTYyIDExQjY7QzBENzsxMTA5IDExNjIgMTFCNjsKK0MwRDg7QzBEODsxMTA5IDExNjIgMTFCNztDMEQ4OzExMDkgMTE2MiAxMUI3OworQzBEOTtDMEQ5OzExMDkgMTE2MiAxMUI4O0MwRDk7MTEwOSAxMTYyIDExQjg7CitDMERBO0MwREE7MTEwOSAxMTYyIDExQjk7QzBEQTsxMTA5IDExNjIgMTFCOTsKK0MwREI7QzBEQjsxMTA5IDExNjIgMTFCQTtDMERCOzExMDkgMTE2MiAxMUJBOworQzBEQztDMERDOzExMDkgMTE2MiAxMUJCO0MwREM7MTEwOSAxMTYyIDExQkI7CitDMEREO0MwREQ7MTEwOSAxMTYyIDExQkM7QzBERDsxMTA5IDExNjIgMTFCQzsKK0MwREU7QzBERTsxMTA5IDExNjIgMTFCRDtDMERFOzExMDkgMTE2MiAxMUJEOworQzBERjtDMERGOzExMDkgMTE2MiAxMUJFO0MwREY7MTEwOSAxMTYyIDExQkU7CitDMEUwO0MwRTA7MTEwOSAxMTYyIDExQkY7QzBFMDsxMTA5IDExNjIgMTFCRjsKK0MwRTE7QzBFMTsxMTA5IDExNjIgMTFDMDtDMEUxOzExMDkgMTE2MiAxMUMwOworQzBFMjtDMEUyOzExMDkgMTE2MiAxMUMxO0MwRTI7MTEwOSAxMTYyIDExQzE7CitDMEUzO0MwRTM7MTEwOSAxMTYyIDExQzI7QzBFMzsxMTA5IDExNjIgMTFDMjsKK0MwRTQ7QzBFNDsxMTA5IDExNjM7QzBFNDsxMTA5IDExNjM7CitDMEU1O0MwRTU7MTEwOSAxMTYzIDExQTg7QzBFNTsxMTA5IDExNjMgMTFBODsKK0MwRTY7QzBFNjsxMTA5IDExNjMgMTFBOTtDMEU2OzExMDkgMTE2MyAxMUE5OworQzBFNztDMEU3OzExMDkgMTE2MyAxMUFBO0MwRTc7MTEwOSAxMTYzIDExQUE7CitDMEU4O0MwRTg7MTEwOSAxMTYzIDExQUI7QzBFODsxMTA5IDExNjMgMTFBQjsKK0MwRTk7QzBFOTsxMTA5IDExNjMgMTFBQztDMEU5OzExMDkgMTE2MyAxMUFDOworQzBFQTtDMEVBOzExMDkgMTE2MyAxMUFEO0MwRUE7MTEwOSAxMTYzIDExQUQ7CitDMEVCO0MwRUI7MTEwOSAxMTYzIDExQUU7QzBFQjsxMTA5IDExNjMgMTFBRTsKK0MwRUM7QzBFQzsxMTA5IDExNjMgMTFBRjtDMEVDOzExMDkgMTE2MyAxMUFGOworQzBFRDtDMEVEOzExMDkgMTE2MyAxMUIwO0MwRUQ7MTEwOSAxMTYzIDExQjA7CitDMEVFO0MwRUU7MTEwOSAxMTYzIDExQjE7QzBFRTsxMTA5IDExNjMgMTFCMTsKK0MwRUY7QzBFRjsxMTA5IDExNjMgMTFCMjtDMEVGOzExMDkgMTE2MyAxMUIyOworQzBGMDtDMEYwOzExMDkgMTE2MyAxMUIzO0MwRjA7MTEwOSAxMTYzIDExQjM7CitDMEYxO0MwRjE7MTEwOSAxMTYzIDExQjQ7QzBGMTsxMTA5IDExNjMgMTFCNDsKK0MwRjI7QzBGMjsxMTA5IDExNjMgMTFCNTtDMEYyOzExMDkgMTE2MyAxMUI1OworQzBGMztDMEYzOzExMDkgMTE2MyAxMUI2O0MwRjM7MTEwOSAxMTYzIDExQjY7CitDMEY0O0MwRjQ7MTEwOSAxMTYzIDExQjc7QzBGNDsxMTA5IDExNjMgMTFCNzsKK0MwRjU7QzBGNTsxMTA5IDExNjMgMTFCODtDMEY1OzExMDkgMTE2MyAxMUI4OworQzBGNjtDMEY2OzExMDkgMTE2MyAxMUI5O0MwRjY7MTEwOSAxMTYzIDExQjk7CitDMEY3O0MwRjc7MTEwOSAxMTYzIDExQkE7QzBGNzsxMTA5IDExNjMgMTFCQTsKK0MwRjg7QzBGODsxMTA5IDExNjMgMTFCQjtDMEY4OzExMDkgMTE2MyAxMUJCOworQzBGOTtDMEY5OzExMDkgMTE2MyAxMUJDO0MwRjk7MTEwOSAxMTYzIDExQkM7CitDMEZBO0MwRkE7MTEwOSAxMTYzIDExQkQ7QzBGQTsxMTA5IDExNjMgMTFCRDsKK0MwRkI7QzBGQjsxMTA5IDExNjMgMTFCRTtDMEZCOzExMDkgMTE2MyAxMUJFOworQzBGQztDMEZDOzExMDkgMTE2MyAxMUJGO0MwRkM7MTEwOSAxMTYzIDExQkY7CitDMEZEO0MwRkQ7MTEwOSAxMTYzIDExQzA7QzBGRDsxMTA5IDExNjMgMTFDMDsKK0MwRkU7QzBGRTsxMTA5IDExNjMgMTFDMTtDMEZFOzExMDkgMTE2MyAxMUMxOworQzBGRjtDMEZGOzExMDkgMTE2MyAxMUMyO0MwRkY7MTEwOSAxMTYzIDExQzI7CitDMTAwO0MxMDA7MTEwOSAxMTY0O0MxMDA7MTEwOSAxMTY0OworQzEwMTtDMTAxOzExMDkgMTE2NCAxMUE4O0MxMDE7MTEwOSAxMTY0IDExQTg7CitDMTAyO0MxMDI7MTEwOSAxMTY0IDExQTk7QzEwMjsxMTA5IDExNjQgMTFBOTsKK0MxMDM7QzEwMzsxMTA5IDExNjQgMTFBQTtDMTAzOzExMDkgMTE2NCAxMUFBOworQzEwNDtDMTA0OzExMDkgMTE2NCAxMUFCO0MxMDQ7MTEwOSAxMTY0IDExQUI7CitDMTA1O0MxMDU7MTEwOSAxMTY0IDExQUM7QzEwNTsxMTA5IDExNjQgMTFBQzsKK0MxMDY7QzEwNjsxMTA5IDExNjQgMTFBRDtDMTA2OzExMDkgMTE2NCAxMUFEOworQzEwNztDMTA3OzExMDkgMTE2NCAxMUFFO0MxMDc7MTEwOSAxMTY0IDExQUU7CitDMTA4O0MxMDg7MTEwOSAxMTY0IDExQUY7QzEwODsxMTA5IDExNjQgMTFBRjsKK0MxMDk7QzEwOTsxMTA5IDExNjQgMTFCMDtDMTA5OzExMDkgMTE2NCAxMUIwOworQzEwQTtDMTBBOzExMDkgMTE2NCAxMUIxO0MxMEE7MTEwOSAxMTY0IDExQjE7CitDMTBCO0MxMEI7MTEwOSAxMTY0IDExQjI7QzEwQjsxMTA5IDExNjQgMTFCMjsKK0MxMEM7QzEwQzsxMTA5IDExNjQgMTFCMztDMTBDOzExMDkgMTE2NCAxMUIzOworQzEwRDtDMTBEOzExMDkgMTE2NCAxMUI0O0MxMEQ7MTEwOSAxMTY0IDExQjQ7CitDMTBFO0MxMEU7MTEwOSAxMTY0IDExQjU7QzEwRTsxMTA5IDExNjQgMTFCNTsKK0MxMEY7QzEwRjsxMTA5IDExNjQgMTFCNjtDMTBGOzExMDkgMTE2NCAxMUI2OworQzExMDtDMTEwOzExMDkgMTE2NCAxMUI3O0MxMTA7MTEwOSAxMTY0IDExQjc7CitDMTExO0MxMTE7MTEwOSAxMTY0IDExQjg7QzExMTsxMTA5IDExNjQgMTFCODsKK0MxMTI7QzExMjsxMTA5IDExNjQgMTFCOTtDMTEyOzExMDkgMTE2NCAxMUI5OworQzExMztDMTEzOzExMDkgMTE2NCAxMUJBO0MxMTM7MTEwOSAxMTY0IDExQkE7CitDMTE0O0MxMTQ7MTEwOSAxMTY0IDExQkI7QzExNDsxMTA5IDExNjQgMTFCQjsKK0MxMTU7QzExNTsxMTA5IDExNjQgMTFCQztDMTE1OzExMDkgMTE2NCAxMUJDOworQzExNjtDMTE2OzExMDkgMTE2NCAxMUJEO0MxMTY7MTEwOSAxMTY0IDExQkQ7CitDMTE3O0MxMTc7MTEwOSAxMTY0IDExQkU7QzExNzsxMTA5IDExNjQgMTFCRTsKK0MxMTg7QzExODsxMTA5IDExNjQgMTFCRjtDMTE4OzExMDkgMTE2NCAxMUJGOworQzExOTtDMTE5OzExMDkgMTE2NCAxMUMwO0MxMTk7MTEwOSAxMTY0IDExQzA7CitDMTFBO0MxMUE7MTEwOSAxMTY0IDExQzE7QzExQTsxMTA5IDExNjQgMTFDMTsKK0MxMUI7QzExQjsxMTA5IDExNjQgMTFDMjtDMTFCOzExMDkgMTE2NCAxMUMyOworQzExQztDMTFDOzExMDkgMTE2NTtDMTFDOzExMDkgMTE2NTsKK0MxMUQ7QzExRDsxMTA5IDExNjUgMTFBODtDMTFEOzExMDkgMTE2NSAxMUE4OworQzExRTtDMTFFOzExMDkgMTE2NSAxMUE5O0MxMUU7MTEwOSAxMTY1IDExQTk7CitDMTFGO0MxMUY7MTEwOSAxMTY1IDExQUE7QzExRjsxMTA5IDExNjUgMTFBQTsKK0MxMjA7QzEyMDsxMTA5IDExNjUgMTFBQjtDMTIwOzExMDkgMTE2NSAxMUFCOworQzEyMTtDMTIxOzExMDkgMTE2NSAxMUFDO0MxMjE7MTEwOSAxMTY1IDExQUM7CitDMTIyO0MxMjI7MTEwOSAxMTY1IDExQUQ7QzEyMjsxMTA5IDExNjUgMTFBRDsKK0MxMjM7QzEyMzsxMTA5IDExNjUgMTFBRTtDMTIzOzExMDkgMTE2NSAxMUFFOworQzEyNDtDMTI0OzExMDkgMTE2NSAxMUFGO0MxMjQ7MTEwOSAxMTY1IDExQUY7CitDMTI1O0MxMjU7MTEwOSAxMTY1IDExQjA7QzEyNTsxMTA5IDExNjUgMTFCMDsKK0MxMjY7QzEyNjsxMTA5IDExNjUgMTFCMTtDMTI2OzExMDkgMTE2NSAxMUIxOworQzEyNztDMTI3OzExMDkgMTE2NSAxMUIyO0MxMjc7MTEwOSAxMTY1IDExQjI7CitDMTI4O0MxMjg7MTEwOSAxMTY1IDExQjM7QzEyODsxMTA5IDExNjUgMTFCMzsKK0MxMjk7QzEyOTsxMTA5IDExNjUgMTFCNDtDMTI5OzExMDkgMTE2NSAxMUI0OworQzEyQTtDMTJBOzExMDkgMTE2NSAxMUI1O0MxMkE7MTEwOSAxMTY1IDExQjU7CitDMTJCO0MxMkI7MTEwOSAxMTY1IDExQjY7QzEyQjsxMTA5IDExNjUgMTFCNjsKK0MxMkM7QzEyQzsxMTA5IDExNjUgMTFCNztDMTJDOzExMDkgMTE2NSAxMUI3OworQzEyRDtDMTJEOzExMDkgMTE2NSAxMUI4O0MxMkQ7MTEwOSAxMTY1IDExQjg7CitDMTJFO0MxMkU7MTEwOSAxMTY1IDExQjk7QzEyRTsxMTA5IDExNjUgMTFCOTsKK0MxMkY7QzEyRjsxMTA5IDExNjUgMTFCQTtDMTJGOzExMDkgMTE2NSAxMUJBOworQzEzMDtDMTMwOzExMDkgMTE2NSAxMUJCO0MxMzA7MTEwOSAxMTY1IDExQkI7CitDMTMxO0MxMzE7MTEwOSAxMTY1IDExQkM7QzEzMTsxMTA5IDExNjUgMTFCQzsKK0MxMzI7QzEzMjsxMTA5IDExNjUgMTFCRDtDMTMyOzExMDkgMTE2NSAxMUJEOworQzEzMztDMTMzOzExMDkgMTE2NSAxMUJFO0MxMzM7MTEwOSAxMTY1IDExQkU7CitDMTM0O0MxMzQ7MTEwOSAxMTY1IDExQkY7QzEzNDsxMTA5IDExNjUgMTFCRjsKK0MxMzU7QzEzNTsxMTA5IDExNjUgMTFDMDtDMTM1OzExMDkgMTE2NSAxMUMwOworQzEzNjtDMTM2OzExMDkgMTE2NSAxMUMxO0MxMzY7MTEwOSAxMTY1IDExQzE7CitDMTM3O0MxMzc7MTEwOSAxMTY1IDExQzI7QzEzNzsxMTA5IDExNjUgMTFDMjsKK0MxMzg7QzEzODsxMTA5IDExNjY7QzEzODsxMTA5IDExNjY7CitDMTM5O0MxMzk7MTEwOSAxMTY2IDExQTg7QzEzOTsxMTA5IDExNjYgMTFBODsKK0MxM0E7QzEzQTsxMTA5IDExNjYgMTFBOTtDMTNBOzExMDkgMTE2NiAxMUE5OworQzEzQjtDMTNCOzExMDkgMTE2NiAxMUFBO0MxM0I7MTEwOSAxMTY2IDExQUE7CitDMTNDO0MxM0M7MTEwOSAxMTY2IDExQUI7QzEzQzsxMTA5IDExNjYgMTFBQjsKK0MxM0Q7QzEzRDsxMTA5IDExNjYgMTFBQztDMTNEOzExMDkgMTE2NiAxMUFDOworQzEzRTtDMTNFOzExMDkgMTE2NiAxMUFEO0MxM0U7MTEwOSAxMTY2IDExQUQ7CitDMTNGO0MxM0Y7MTEwOSAxMTY2IDExQUU7QzEzRjsxMTA5IDExNjYgMTFBRTsKK0MxNDA7QzE0MDsxMTA5IDExNjYgMTFBRjtDMTQwOzExMDkgMTE2NiAxMUFGOworQzE0MTtDMTQxOzExMDkgMTE2NiAxMUIwO0MxNDE7MTEwOSAxMTY2IDExQjA7CitDMTQyO0MxNDI7MTEwOSAxMTY2IDExQjE7QzE0MjsxMTA5IDExNjYgMTFCMTsKK0MxNDM7QzE0MzsxMTA5IDExNjYgMTFCMjtDMTQzOzExMDkgMTE2NiAxMUIyOworQzE0NDtDMTQ0OzExMDkgMTE2NiAxMUIzO0MxNDQ7MTEwOSAxMTY2IDExQjM7CitDMTQ1O0MxNDU7MTEwOSAxMTY2IDExQjQ7QzE0NTsxMTA5IDExNjYgMTFCNDsKK0MxNDY7QzE0NjsxMTA5IDExNjYgMTFCNTtDMTQ2OzExMDkgMTE2NiAxMUI1OworQzE0NztDMTQ3OzExMDkgMTE2NiAxMUI2O0MxNDc7MTEwOSAxMTY2IDExQjY7CitDMTQ4O0MxNDg7MTEwOSAxMTY2IDExQjc7QzE0ODsxMTA5IDExNjYgMTFCNzsKK0MxNDk7QzE0OTsxMTA5IDExNjYgMTFCODtDMTQ5OzExMDkgMTE2NiAxMUI4OworQzE0QTtDMTRBOzExMDkgMTE2NiAxMUI5O0MxNEE7MTEwOSAxMTY2IDExQjk7CitDMTRCO0MxNEI7MTEwOSAxMTY2IDExQkE7QzE0QjsxMTA5IDExNjYgMTFCQTsKK0MxNEM7QzE0QzsxMTA5IDExNjYgMTFCQjtDMTRDOzExMDkgMTE2NiAxMUJCOworQzE0RDtDMTREOzExMDkgMTE2NiAxMUJDO0MxNEQ7MTEwOSAxMTY2IDExQkM7CitDMTRFO0MxNEU7MTEwOSAxMTY2IDExQkQ7QzE0RTsxMTA5IDExNjYgMTFCRDsKK0MxNEY7QzE0RjsxMTA5IDExNjYgMTFCRTtDMTRGOzExMDkgMTE2NiAxMUJFOworQzE1MDtDMTUwOzExMDkgMTE2NiAxMUJGO0MxNTA7MTEwOSAxMTY2IDExQkY7CitDMTUxO0MxNTE7MTEwOSAxMTY2IDExQzA7QzE1MTsxMTA5IDExNjYgMTFDMDsKK0MxNTI7QzE1MjsxMTA5IDExNjYgMTFDMTtDMTUyOzExMDkgMTE2NiAxMUMxOworQzE1MztDMTUzOzExMDkgMTE2NiAxMUMyO0MxNTM7MTEwOSAxMTY2IDExQzI7CitDMTU0O0MxNTQ7MTEwOSAxMTY3O0MxNTQ7MTEwOSAxMTY3OworQzE1NTtDMTU1OzExMDkgMTE2NyAxMUE4O0MxNTU7MTEwOSAxMTY3IDExQTg7CitDMTU2O0MxNTY7MTEwOSAxMTY3IDExQTk7QzE1NjsxMTA5IDExNjcgMTFBOTsKK0MxNTc7QzE1NzsxMTA5IDExNjcgMTFBQTtDMTU3OzExMDkgMTE2NyAxMUFBOworQzE1ODtDMTU4OzExMDkgMTE2NyAxMUFCO0MxNTg7MTEwOSAxMTY3IDExQUI7CitDMTU5O0MxNTk7MTEwOSAxMTY3IDExQUM7QzE1OTsxMTA5IDExNjcgMTFBQzsKK0MxNUE7QzE1QTsxMTA5IDExNjcgMTFBRDtDMTVBOzExMDkgMTE2NyAxMUFEOworQzE1QjtDMTVCOzExMDkgMTE2NyAxMUFFO0MxNUI7MTEwOSAxMTY3IDExQUU7CitDMTVDO0MxNUM7MTEwOSAxMTY3IDExQUY7QzE1QzsxMTA5IDExNjcgMTFBRjsKK0MxNUQ7QzE1RDsxMTA5IDExNjcgMTFCMDtDMTVEOzExMDkgMTE2NyAxMUIwOworQzE1RTtDMTVFOzExMDkgMTE2NyAxMUIxO0MxNUU7MTEwOSAxMTY3IDExQjE7CitDMTVGO0MxNUY7MTEwOSAxMTY3IDExQjI7QzE1RjsxMTA5IDExNjcgMTFCMjsKK0MxNjA7QzE2MDsxMTA5IDExNjcgMTFCMztDMTYwOzExMDkgMTE2NyAxMUIzOworQzE2MTtDMTYxOzExMDkgMTE2NyAxMUI0O0MxNjE7MTEwOSAxMTY3IDExQjQ7CitDMTYyO0MxNjI7MTEwOSAxMTY3IDExQjU7QzE2MjsxMTA5IDExNjcgMTFCNTsKK0MxNjM7QzE2MzsxMTA5IDExNjcgMTFCNjtDMTYzOzExMDkgMTE2NyAxMUI2OworQzE2NDtDMTY0OzExMDkgMTE2NyAxMUI3O0MxNjQ7MTEwOSAxMTY3IDExQjc7CitDMTY1O0MxNjU7MTEwOSAxMTY3IDExQjg7QzE2NTsxMTA5IDExNjcgMTFCODsKK0MxNjY7QzE2NjsxMTA5IDExNjcgMTFCOTtDMTY2OzExMDkgMTE2NyAxMUI5OworQzE2NztDMTY3OzExMDkgMTE2NyAxMUJBO0MxNjc7MTEwOSAxMTY3IDExQkE7CitDMTY4O0MxNjg7MTEwOSAxMTY3IDExQkI7QzE2ODsxMTA5IDExNjcgMTFCQjsKK0MxNjk7QzE2OTsxMTA5IDExNjcgMTFCQztDMTY5OzExMDkgMTE2NyAxMUJDOworQzE2QTtDMTZBOzExMDkgMTE2NyAxMUJEO0MxNkE7MTEwOSAxMTY3IDExQkQ7CitDMTZCO0MxNkI7MTEwOSAxMTY3IDExQkU7QzE2QjsxMTA5IDExNjcgMTFCRTsKK0MxNkM7QzE2QzsxMTA5IDExNjcgMTFCRjtDMTZDOzExMDkgMTE2NyAxMUJGOworQzE2RDtDMTZEOzExMDkgMTE2NyAxMUMwO0MxNkQ7MTEwOSAxMTY3IDExQzA7CitDMTZFO0MxNkU7MTEwOSAxMTY3IDExQzE7QzE2RTsxMTA5IDExNjcgMTFDMTsKK0MxNkY7QzE2RjsxMTA5IDExNjcgMTFDMjtDMTZGOzExMDkgMTE2NyAxMUMyOworQzE3MDtDMTcwOzExMDkgMTE2ODtDMTcwOzExMDkgMTE2ODsKK0MxNzE7QzE3MTsxMTA5IDExNjggMTFBODtDMTcxOzExMDkgMTE2OCAxMUE4OworQzE3MjtDMTcyOzExMDkgMTE2OCAxMUE5O0MxNzI7MTEwOSAxMTY4IDExQTk7CitDMTczO0MxNzM7MTEwOSAxMTY4IDExQUE7QzE3MzsxMTA5IDExNjggMTFBQTsKK0MxNzQ7QzE3NDsxMTA5IDExNjggMTFBQjtDMTc0OzExMDkgMTE2OCAxMUFCOworQzE3NTtDMTc1OzExMDkgMTE2OCAxMUFDO0MxNzU7MTEwOSAxMTY4IDExQUM7CitDMTc2O0MxNzY7MTEwOSAxMTY4IDExQUQ7QzE3NjsxMTA5IDExNjggMTFBRDsKK0MxNzc7QzE3NzsxMTA5IDExNjggMTFBRTtDMTc3OzExMDkgMTE2OCAxMUFFOworQzE3ODtDMTc4OzExMDkgMTE2OCAxMUFGO0MxNzg7MTEwOSAxMTY4IDExQUY7CitDMTc5O0MxNzk7MTEwOSAxMTY4IDExQjA7QzE3OTsxMTA5IDExNjggMTFCMDsKK0MxN0E7QzE3QTsxMTA5IDExNjggMTFCMTtDMTdBOzExMDkgMTE2OCAxMUIxOworQzE3QjtDMTdCOzExMDkgMTE2OCAxMUIyO0MxN0I7MTEwOSAxMTY4IDExQjI7CitDMTdDO0MxN0M7MTEwOSAxMTY4IDExQjM7QzE3QzsxMTA5IDExNjggMTFCMzsKK0MxN0Q7QzE3RDsxMTA5IDExNjggMTFCNDtDMTdEOzExMDkgMTE2OCAxMUI0OworQzE3RTtDMTdFOzExMDkgMTE2OCAxMUI1O0MxN0U7MTEwOSAxMTY4IDExQjU7CitDMTdGO0MxN0Y7MTEwOSAxMTY4IDExQjY7QzE3RjsxMTA5IDExNjggMTFCNjsKK0MxODA7QzE4MDsxMTA5IDExNjggMTFCNztDMTgwOzExMDkgMTE2OCAxMUI3OworQzE4MTtDMTgxOzExMDkgMTE2OCAxMUI4O0MxODE7MTEwOSAxMTY4IDExQjg7CitDMTgyO0MxODI7MTEwOSAxMTY4IDExQjk7QzE4MjsxMTA5IDExNjggMTFCOTsKK0MxODM7QzE4MzsxMTA5IDExNjggMTFCQTtDMTgzOzExMDkgMTE2OCAxMUJBOworQzE4NDtDMTg0OzExMDkgMTE2OCAxMUJCO0MxODQ7MTEwOSAxMTY4IDExQkI7CitDMTg1O0MxODU7MTEwOSAxMTY4IDExQkM7QzE4NTsxMTA5IDExNjggMTFCQzsKK0MxODY7QzE4NjsxMTA5IDExNjggMTFCRDtDMTg2OzExMDkgMTE2OCAxMUJEOworQzE4NztDMTg3OzExMDkgMTE2OCAxMUJFO0MxODc7MTEwOSAxMTY4IDExQkU7CitDMTg4O0MxODg7MTEwOSAxMTY4IDExQkY7QzE4ODsxMTA5IDExNjggMTFCRjsKK0MxODk7QzE4OTsxMTA5IDExNjggMTFDMDtDMTg5OzExMDkgMTE2OCAxMUMwOworQzE4QTtDMThBOzExMDkgMTE2OCAxMUMxO0MxOEE7MTEwOSAxMTY4IDExQzE7CitDMThCO0MxOEI7MTEwOSAxMTY4IDExQzI7QzE4QjsxMTA5IDExNjggMTFDMjsKK0MxOEM7QzE4QzsxMTA5IDExNjk7QzE4QzsxMTA5IDExNjk7CitDMThEO0MxOEQ7MTEwOSAxMTY5IDExQTg7QzE4RDsxMTA5IDExNjkgMTFBODsKK0MxOEU7QzE4RTsxMTA5IDExNjkgMTFBOTtDMThFOzExMDkgMTE2OSAxMUE5OworQzE4RjtDMThGOzExMDkgMTE2OSAxMUFBO0MxOEY7MTEwOSAxMTY5IDExQUE7CitDMTkwO0MxOTA7MTEwOSAxMTY5IDExQUI7QzE5MDsxMTA5IDExNjkgMTFBQjsKK0MxOTE7QzE5MTsxMTA5IDExNjkgMTFBQztDMTkxOzExMDkgMTE2OSAxMUFDOworQzE5MjtDMTkyOzExMDkgMTE2OSAxMUFEO0MxOTI7MTEwOSAxMTY5IDExQUQ7CitDMTkzO0MxOTM7MTEwOSAxMTY5IDExQUU7QzE5MzsxMTA5IDExNjkgMTFBRTsKK0MxOTQ7QzE5NDsxMTA5IDExNjkgMTFBRjtDMTk0OzExMDkgMTE2OSAxMUFGOworQzE5NTtDMTk1OzExMDkgMTE2OSAxMUIwO0MxOTU7MTEwOSAxMTY5IDExQjA7CitDMTk2O0MxOTY7MTEwOSAxMTY5IDExQjE7QzE5NjsxMTA5IDExNjkgMTFCMTsKK0MxOTc7QzE5NzsxMTA5IDExNjkgMTFCMjtDMTk3OzExMDkgMTE2OSAxMUIyOworQzE5ODtDMTk4OzExMDkgMTE2OSAxMUIzO0MxOTg7MTEwOSAxMTY5IDExQjM7CitDMTk5O0MxOTk7MTEwOSAxMTY5IDExQjQ7QzE5OTsxMTA5IDExNjkgMTFCNDsKK0MxOUE7QzE5QTsxMTA5IDExNjkgMTFCNTtDMTlBOzExMDkgMTE2OSAxMUI1OworQzE5QjtDMTlCOzExMDkgMTE2OSAxMUI2O0MxOUI7MTEwOSAxMTY5IDExQjY7CitDMTlDO0MxOUM7MTEwOSAxMTY5IDExQjc7QzE5QzsxMTA5IDExNjkgMTFCNzsKK0MxOUQ7QzE5RDsxMTA5IDExNjkgMTFCODtDMTlEOzExMDkgMTE2OSAxMUI4OworQzE5RTtDMTlFOzExMDkgMTE2OSAxMUI5O0MxOUU7MTEwOSAxMTY5IDExQjk7CitDMTlGO0MxOUY7MTEwOSAxMTY5IDExQkE7QzE5RjsxMTA5IDExNjkgMTFCQTsKK0MxQTA7QzFBMDsxMTA5IDExNjkgMTFCQjtDMUEwOzExMDkgMTE2OSAxMUJCOworQzFBMTtDMUExOzExMDkgMTE2OSAxMUJDO0MxQTE7MTEwOSAxMTY5IDExQkM7CitDMUEyO0MxQTI7MTEwOSAxMTY5IDExQkQ7QzFBMjsxMTA5IDExNjkgMTFCRDsKK0MxQTM7QzFBMzsxMTA5IDExNjkgMTFCRTtDMUEzOzExMDkgMTE2OSAxMUJFOworQzFBNDtDMUE0OzExMDkgMTE2OSAxMUJGO0MxQTQ7MTEwOSAxMTY5IDExQkY7CitDMUE1O0MxQTU7MTEwOSAxMTY5IDExQzA7QzFBNTsxMTA5IDExNjkgMTFDMDsKK0MxQTY7QzFBNjsxMTA5IDExNjkgMTFDMTtDMUE2OzExMDkgMTE2OSAxMUMxOworQzFBNztDMUE3OzExMDkgMTE2OSAxMUMyO0MxQTc7MTEwOSAxMTY5IDExQzI7CitDMUE4O0MxQTg7MTEwOSAxMTZBO0MxQTg7MTEwOSAxMTZBOworQzFBOTtDMUE5OzExMDkgMTE2QSAxMUE4O0MxQTk7MTEwOSAxMTZBIDExQTg7CitDMUFBO0MxQUE7MTEwOSAxMTZBIDExQTk7QzFBQTsxMTA5IDExNkEgMTFBOTsKK0MxQUI7QzFBQjsxMTA5IDExNkEgMTFBQTtDMUFCOzExMDkgMTE2QSAxMUFBOworQzFBQztDMUFDOzExMDkgMTE2QSAxMUFCO0MxQUM7MTEwOSAxMTZBIDExQUI7CitDMUFEO0MxQUQ7MTEwOSAxMTZBIDExQUM7QzFBRDsxMTA5IDExNkEgMTFBQzsKK0MxQUU7QzFBRTsxMTA5IDExNkEgMTFBRDtDMUFFOzExMDkgMTE2QSAxMUFEOworQzFBRjtDMUFGOzExMDkgMTE2QSAxMUFFO0MxQUY7MTEwOSAxMTZBIDExQUU7CitDMUIwO0MxQjA7MTEwOSAxMTZBIDExQUY7QzFCMDsxMTA5IDExNkEgMTFBRjsKK0MxQjE7QzFCMTsxMTA5IDExNkEgMTFCMDtDMUIxOzExMDkgMTE2QSAxMUIwOworQzFCMjtDMUIyOzExMDkgMTE2QSAxMUIxO0MxQjI7MTEwOSAxMTZBIDExQjE7CitDMUIzO0MxQjM7MTEwOSAxMTZBIDExQjI7QzFCMzsxMTA5IDExNkEgMTFCMjsKK0MxQjQ7QzFCNDsxMTA5IDExNkEgMTFCMztDMUI0OzExMDkgMTE2QSAxMUIzOworQzFCNTtDMUI1OzExMDkgMTE2QSAxMUI0O0MxQjU7MTEwOSAxMTZBIDExQjQ7CitDMUI2O0MxQjY7MTEwOSAxMTZBIDExQjU7QzFCNjsxMTA5IDExNkEgMTFCNTsKK0MxQjc7QzFCNzsxMTA5IDExNkEgMTFCNjtDMUI3OzExMDkgMTE2QSAxMUI2OworQzFCODtDMUI4OzExMDkgMTE2QSAxMUI3O0MxQjg7MTEwOSAxMTZBIDExQjc7CitDMUI5O0MxQjk7MTEwOSAxMTZBIDExQjg7QzFCOTsxMTA5IDExNkEgMTFCODsKK0MxQkE7QzFCQTsxMTA5IDExNkEgMTFCOTtDMUJBOzExMDkgMTE2QSAxMUI5OworQzFCQjtDMUJCOzExMDkgMTE2QSAxMUJBO0MxQkI7MTEwOSAxMTZBIDExQkE7CitDMUJDO0MxQkM7MTEwOSAxMTZBIDExQkI7QzFCQzsxMTA5IDExNkEgMTFCQjsKK0MxQkQ7QzFCRDsxMTA5IDExNkEgMTFCQztDMUJEOzExMDkgMTE2QSAxMUJDOworQzFCRTtDMUJFOzExMDkgMTE2QSAxMUJEO0MxQkU7MTEwOSAxMTZBIDExQkQ7CitDMUJGO0MxQkY7MTEwOSAxMTZBIDExQkU7QzFCRjsxMTA5IDExNkEgMTFCRTsKK0MxQzA7QzFDMDsxMTA5IDExNkEgMTFCRjtDMUMwOzExMDkgMTE2QSAxMUJGOworQzFDMTtDMUMxOzExMDkgMTE2QSAxMUMwO0MxQzE7MTEwOSAxMTZBIDExQzA7CitDMUMyO0MxQzI7MTEwOSAxMTZBIDExQzE7QzFDMjsxMTA5IDExNkEgMTFDMTsKK0MxQzM7QzFDMzsxMTA5IDExNkEgMTFDMjtDMUMzOzExMDkgMTE2QSAxMUMyOworQzFDNDtDMUM0OzExMDkgMTE2QjtDMUM0OzExMDkgMTE2QjsKK0MxQzU7QzFDNTsxMTA5IDExNkIgMTFBODtDMUM1OzExMDkgMTE2QiAxMUE4OworQzFDNjtDMUM2OzExMDkgMTE2QiAxMUE5O0MxQzY7MTEwOSAxMTZCIDExQTk7CitDMUM3O0MxQzc7MTEwOSAxMTZCIDExQUE7QzFDNzsxMTA5IDExNkIgMTFBQTsKK0MxQzg7QzFDODsxMTA5IDExNkIgMTFBQjtDMUM4OzExMDkgMTE2QiAxMUFCOworQzFDOTtDMUM5OzExMDkgMTE2QiAxMUFDO0MxQzk7MTEwOSAxMTZCIDExQUM7CitDMUNBO0MxQ0E7MTEwOSAxMTZCIDExQUQ7QzFDQTsxMTA5IDExNkIgMTFBRDsKK0MxQ0I7QzFDQjsxMTA5IDExNkIgMTFBRTtDMUNCOzExMDkgMTE2QiAxMUFFOworQzFDQztDMUNDOzExMDkgMTE2QiAxMUFGO0MxQ0M7MTEwOSAxMTZCIDExQUY7CitDMUNEO0MxQ0Q7MTEwOSAxMTZCIDExQjA7QzFDRDsxMTA5IDExNkIgMTFCMDsKK0MxQ0U7QzFDRTsxMTA5IDExNkIgMTFCMTtDMUNFOzExMDkgMTE2QiAxMUIxOworQzFDRjtDMUNGOzExMDkgMTE2QiAxMUIyO0MxQ0Y7MTEwOSAxMTZCIDExQjI7CitDMUQwO0MxRDA7MTEwOSAxMTZCIDExQjM7QzFEMDsxMTA5IDExNkIgMTFCMzsKK0MxRDE7QzFEMTsxMTA5IDExNkIgMTFCNDtDMUQxOzExMDkgMTE2QiAxMUI0OworQzFEMjtDMUQyOzExMDkgMTE2QiAxMUI1O0MxRDI7MTEwOSAxMTZCIDExQjU7CitDMUQzO0MxRDM7MTEwOSAxMTZCIDExQjY7QzFEMzsxMTA5IDExNkIgMTFCNjsKK0MxRDQ7QzFENDsxMTA5IDExNkIgMTFCNztDMUQ0OzExMDkgMTE2QiAxMUI3OworQzFENTtDMUQ1OzExMDkgMTE2QiAxMUI4O0MxRDU7MTEwOSAxMTZCIDExQjg7CitDMUQ2O0MxRDY7MTEwOSAxMTZCIDExQjk7QzFENjsxMTA5IDExNkIgMTFCOTsKK0MxRDc7QzFENzsxMTA5IDExNkIgMTFCQTtDMUQ3OzExMDkgMTE2QiAxMUJBOworQzFEODtDMUQ4OzExMDkgMTE2QiAxMUJCO0MxRDg7MTEwOSAxMTZCIDExQkI7CitDMUQ5O0MxRDk7MTEwOSAxMTZCIDExQkM7QzFEOTsxMTA5IDExNkIgMTFCQzsKK0MxREE7QzFEQTsxMTA5IDExNkIgMTFCRDtDMURBOzExMDkgMTE2QiAxMUJEOworQzFEQjtDMURCOzExMDkgMTE2QiAxMUJFO0MxREI7MTEwOSAxMTZCIDExQkU7CitDMURDO0MxREM7MTEwOSAxMTZCIDExQkY7QzFEQzsxMTA5IDExNkIgMTFCRjsKK0MxREQ7QzFERDsxMTA5IDExNkIgMTFDMDtDMUREOzExMDkgMTE2QiAxMUMwOworQzFERTtDMURFOzExMDkgMTE2QiAxMUMxO0MxREU7MTEwOSAxMTZCIDExQzE7CitDMURGO0MxREY7MTEwOSAxMTZCIDExQzI7QzFERjsxMTA5IDExNkIgMTFDMjsKK0MxRTA7QzFFMDsxMTA5IDExNkM7QzFFMDsxMTA5IDExNkM7CitDMUUxO0MxRTE7MTEwOSAxMTZDIDExQTg7QzFFMTsxMTA5IDExNkMgMTFBODsKK0MxRTI7QzFFMjsxMTA5IDExNkMgMTFBOTtDMUUyOzExMDkgMTE2QyAxMUE5OworQzFFMztDMUUzOzExMDkgMTE2QyAxMUFBO0MxRTM7MTEwOSAxMTZDIDExQUE7CitDMUU0O0MxRTQ7MTEwOSAxMTZDIDExQUI7QzFFNDsxMTA5IDExNkMgMTFBQjsKK0MxRTU7QzFFNTsxMTA5IDExNkMgMTFBQztDMUU1OzExMDkgMTE2QyAxMUFDOworQzFFNjtDMUU2OzExMDkgMTE2QyAxMUFEO0MxRTY7MTEwOSAxMTZDIDExQUQ7CitDMUU3O0MxRTc7MTEwOSAxMTZDIDExQUU7QzFFNzsxMTA5IDExNkMgMTFBRTsKK0MxRTg7QzFFODsxMTA5IDExNkMgMTFBRjtDMUU4OzExMDkgMTE2QyAxMUFGOworQzFFOTtDMUU5OzExMDkgMTE2QyAxMUIwO0MxRTk7MTEwOSAxMTZDIDExQjA7CitDMUVBO0MxRUE7MTEwOSAxMTZDIDExQjE7QzFFQTsxMTA5IDExNkMgMTFCMTsKK0MxRUI7QzFFQjsxMTA5IDExNkMgMTFCMjtDMUVCOzExMDkgMTE2QyAxMUIyOworQzFFQztDMUVDOzExMDkgMTE2QyAxMUIzO0MxRUM7MTEwOSAxMTZDIDExQjM7CitDMUVEO0MxRUQ7MTEwOSAxMTZDIDExQjQ7QzFFRDsxMTA5IDExNkMgMTFCNDsKK0MxRUU7QzFFRTsxMTA5IDExNkMgMTFCNTtDMUVFOzExMDkgMTE2QyAxMUI1OworQzFFRjtDMUVGOzExMDkgMTE2QyAxMUI2O0MxRUY7MTEwOSAxMTZDIDExQjY7CitDMUYwO0MxRjA7MTEwOSAxMTZDIDExQjc7QzFGMDsxMTA5IDExNkMgMTFCNzsKK0MxRjE7QzFGMTsxMTA5IDExNkMgMTFCODtDMUYxOzExMDkgMTE2QyAxMUI4OworQzFGMjtDMUYyOzExMDkgMTE2QyAxMUI5O0MxRjI7MTEwOSAxMTZDIDExQjk7CitDMUYzO0MxRjM7MTEwOSAxMTZDIDExQkE7QzFGMzsxMTA5IDExNkMgMTFCQTsKK0MxRjQ7QzFGNDsxMTA5IDExNkMgMTFCQjtDMUY0OzExMDkgMTE2QyAxMUJCOworQzFGNTtDMUY1OzExMDkgMTE2QyAxMUJDO0MxRjU7MTEwOSAxMTZDIDExQkM7CitDMUY2O0MxRjY7MTEwOSAxMTZDIDExQkQ7QzFGNjsxMTA5IDExNkMgMTFCRDsKK0MxRjc7QzFGNzsxMTA5IDExNkMgMTFCRTtDMUY3OzExMDkgMTE2QyAxMUJFOworQzFGODtDMUY4OzExMDkgMTE2QyAxMUJGO0MxRjg7MTEwOSAxMTZDIDExQkY7CitDMUY5O0MxRjk7MTEwOSAxMTZDIDExQzA7QzFGOTsxMTA5IDExNkMgMTFDMDsKK0MxRkE7QzFGQTsxMTA5IDExNkMgMTFDMTtDMUZBOzExMDkgMTE2QyAxMUMxOworQzFGQjtDMUZCOzExMDkgMTE2QyAxMUMyO0MxRkI7MTEwOSAxMTZDIDExQzI7CitDMUZDO0MxRkM7MTEwOSAxMTZEO0MxRkM7MTEwOSAxMTZEOworQzFGRDtDMUZEOzExMDkgMTE2RCAxMUE4O0MxRkQ7MTEwOSAxMTZEIDExQTg7CitDMUZFO0MxRkU7MTEwOSAxMTZEIDExQTk7QzFGRTsxMTA5IDExNkQgMTFBOTsKK0MxRkY7QzFGRjsxMTA5IDExNkQgMTFBQTtDMUZGOzExMDkgMTE2RCAxMUFBOworQzIwMDtDMjAwOzExMDkgMTE2RCAxMUFCO0MyMDA7MTEwOSAxMTZEIDExQUI7CitDMjAxO0MyMDE7MTEwOSAxMTZEIDExQUM7QzIwMTsxMTA5IDExNkQgMTFBQzsKK0MyMDI7QzIwMjsxMTA5IDExNkQgMTFBRDtDMjAyOzExMDkgMTE2RCAxMUFEOworQzIwMztDMjAzOzExMDkgMTE2RCAxMUFFO0MyMDM7MTEwOSAxMTZEIDExQUU7CitDMjA0O0MyMDQ7MTEwOSAxMTZEIDExQUY7QzIwNDsxMTA5IDExNkQgMTFBRjsKK0MyMDU7QzIwNTsxMTA5IDExNkQgMTFCMDtDMjA1OzExMDkgMTE2RCAxMUIwOworQzIwNjtDMjA2OzExMDkgMTE2RCAxMUIxO0MyMDY7MTEwOSAxMTZEIDExQjE7CitDMjA3O0MyMDc7MTEwOSAxMTZEIDExQjI7QzIwNzsxMTA5IDExNkQgMTFCMjsKK0MyMDg7QzIwODsxMTA5IDExNkQgMTFCMztDMjA4OzExMDkgMTE2RCAxMUIzOworQzIwOTtDMjA5OzExMDkgMTE2RCAxMUI0O0MyMDk7MTEwOSAxMTZEIDExQjQ7CitDMjBBO0MyMEE7MTEwOSAxMTZEIDExQjU7QzIwQTsxMTA5IDExNkQgMTFCNTsKK0MyMEI7QzIwQjsxMTA5IDExNkQgMTFCNjtDMjBCOzExMDkgMTE2RCAxMUI2OworQzIwQztDMjBDOzExMDkgMTE2RCAxMUI3O0MyMEM7MTEwOSAxMTZEIDExQjc7CitDMjBEO0MyMEQ7MTEwOSAxMTZEIDExQjg7QzIwRDsxMTA5IDExNkQgMTFCODsKK0MyMEU7QzIwRTsxMTA5IDExNkQgMTFCOTtDMjBFOzExMDkgMTE2RCAxMUI5OworQzIwRjtDMjBGOzExMDkgMTE2RCAxMUJBO0MyMEY7MTEwOSAxMTZEIDExQkE7CitDMjEwO0MyMTA7MTEwOSAxMTZEIDExQkI7QzIxMDsxMTA5IDExNkQgMTFCQjsKK0MyMTE7QzIxMTsxMTA5IDExNkQgMTFCQztDMjExOzExMDkgMTE2RCAxMUJDOworQzIxMjtDMjEyOzExMDkgMTE2RCAxMUJEO0MyMTI7MTEwOSAxMTZEIDExQkQ7CitDMjEzO0MyMTM7MTEwOSAxMTZEIDExQkU7QzIxMzsxMTA5IDExNkQgMTFCRTsKK0MyMTQ7QzIxNDsxMTA5IDExNkQgMTFCRjtDMjE0OzExMDkgMTE2RCAxMUJGOworQzIxNTtDMjE1OzExMDkgMTE2RCAxMUMwO0MyMTU7MTEwOSAxMTZEIDExQzA7CitDMjE2O0MyMTY7MTEwOSAxMTZEIDExQzE7QzIxNjsxMTA5IDExNkQgMTFDMTsKK0MyMTc7QzIxNzsxMTA5IDExNkQgMTFDMjtDMjE3OzExMDkgMTE2RCAxMUMyOworQzIxODtDMjE4OzExMDkgMTE2RTtDMjE4OzExMDkgMTE2RTsKK0MyMTk7QzIxOTsxMTA5IDExNkUgMTFBODtDMjE5OzExMDkgMTE2RSAxMUE4OworQzIxQTtDMjFBOzExMDkgMTE2RSAxMUE5O0MyMUE7MTEwOSAxMTZFIDExQTk7CitDMjFCO0MyMUI7MTEwOSAxMTZFIDExQUE7QzIxQjsxMTA5IDExNkUgMTFBQTsKK0MyMUM7QzIxQzsxMTA5IDExNkUgMTFBQjtDMjFDOzExMDkgMTE2RSAxMUFCOworQzIxRDtDMjFEOzExMDkgMTE2RSAxMUFDO0MyMUQ7MTEwOSAxMTZFIDExQUM7CitDMjFFO0MyMUU7MTEwOSAxMTZFIDExQUQ7QzIxRTsxMTA5IDExNkUgMTFBRDsKK0MyMUY7QzIxRjsxMTA5IDExNkUgMTFBRTtDMjFGOzExMDkgMTE2RSAxMUFFOworQzIyMDtDMjIwOzExMDkgMTE2RSAxMUFGO0MyMjA7MTEwOSAxMTZFIDExQUY7CitDMjIxO0MyMjE7MTEwOSAxMTZFIDExQjA7QzIyMTsxMTA5IDExNkUgMTFCMDsKK0MyMjI7QzIyMjsxMTA5IDExNkUgMTFCMTtDMjIyOzExMDkgMTE2RSAxMUIxOworQzIyMztDMjIzOzExMDkgMTE2RSAxMUIyO0MyMjM7MTEwOSAxMTZFIDExQjI7CitDMjI0O0MyMjQ7MTEwOSAxMTZFIDExQjM7QzIyNDsxMTA5IDExNkUgMTFCMzsKK0MyMjU7QzIyNTsxMTA5IDExNkUgMTFCNDtDMjI1OzExMDkgMTE2RSAxMUI0OworQzIyNjtDMjI2OzExMDkgMTE2RSAxMUI1O0MyMjY7MTEwOSAxMTZFIDExQjU7CitDMjI3O0MyMjc7MTEwOSAxMTZFIDExQjY7QzIyNzsxMTA5IDExNkUgMTFCNjsKK0MyMjg7QzIyODsxMTA5IDExNkUgMTFCNztDMjI4OzExMDkgMTE2RSAxMUI3OworQzIyOTtDMjI5OzExMDkgMTE2RSAxMUI4O0MyMjk7MTEwOSAxMTZFIDExQjg7CitDMjJBO0MyMkE7MTEwOSAxMTZFIDExQjk7QzIyQTsxMTA5IDExNkUgMTFCOTsKK0MyMkI7QzIyQjsxMTA5IDExNkUgMTFCQTtDMjJCOzExMDkgMTE2RSAxMUJBOworQzIyQztDMjJDOzExMDkgMTE2RSAxMUJCO0MyMkM7MTEwOSAxMTZFIDExQkI7CitDMjJEO0MyMkQ7MTEwOSAxMTZFIDExQkM7QzIyRDsxMTA5IDExNkUgMTFCQzsKK0MyMkU7QzIyRTsxMTA5IDExNkUgMTFCRDtDMjJFOzExMDkgMTE2RSAxMUJEOworQzIyRjtDMjJGOzExMDkgMTE2RSAxMUJFO0MyMkY7MTEwOSAxMTZFIDExQkU7CitDMjMwO0MyMzA7MTEwOSAxMTZFIDExQkY7QzIzMDsxMTA5IDExNkUgMTFCRjsKK0MyMzE7QzIzMTsxMTA5IDExNkUgMTFDMDtDMjMxOzExMDkgMTE2RSAxMUMwOworQzIzMjtDMjMyOzExMDkgMTE2RSAxMUMxO0MyMzI7MTEwOSAxMTZFIDExQzE7CitDMjMzO0MyMzM7MTEwOSAxMTZFIDExQzI7QzIzMzsxMTA5IDExNkUgMTFDMjsKK0MyMzQ7QzIzNDsxMTA5IDExNkY7QzIzNDsxMTA5IDExNkY7CitDMjM1O0MyMzU7MTEwOSAxMTZGIDExQTg7QzIzNTsxMTA5IDExNkYgMTFBODsKK0MyMzY7QzIzNjsxMTA5IDExNkYgMTFBOTtDMjM2OzExMDkgMTE2RiAxMUE5OworQzIzNztDMjM3OzExMDkgMTE2RiAxMUFBO0MyMzc7MTEwOSAxMTZGIDExQUE7CitDMjM4O0MyMzg7MTEwOSAxMTZGIDExQUI7QzIzODsxMTA5IDExNkYgMTFBQjsKK0MyMzk7QzIzOTsxMTA5IDExNkYgMTFBQztDMjM5OzExMDkgMTE2RiAxMUFDOworQzIzQTtDMjNBOzExMDkgMTE2RiAxMUFEO0MyM0E7MTEwOSAxMTZGIDExQUQ7CitDMjNCO0MyM0I7MTEwOSAxMTZGIDExQUU7QzIzQjsxMTA5IDExNkYgMTFBRTsKK0MyM0M7QzIzQzsxMTA5IDExNkYgMTFBRjtDMjNDOzExMDkgMTE2RiAxMUFGOworQzIzRDtDMjNEOzExMDkgMTE2RiAxMUIwO0MyM0Q7MTEwOSAxMTZGIDExQjA7CitDMjNFO0MyM0U7MTEwOSAxMTZGIDExQjE7QzIzRTsxMTA5IDExNkYgMTFCMTsKK0MyM0Y7QzIzRjsxMTA5IDExNkYgMTFCMjtDMjNGOzExMDkgMTE2RiAxMUIyOworQzI0MDtDMjQwOzExMDkgMTE2RiAxMUIzO0MyNDA7MTEwOSAxMTZGIDExQjM7CitDMjQxO0MyNDE7MTEwOSAxMTZGIDExQjQ7QzI0MTsxMTA5IDExNkYgMTFCNDsKK0MyNDI7QzI0MjsxMTA5IDExNkYgMTFCNTtDMjQyOzExMDkgMTE2RiAxMUI1OworQzI0MztDMjQzOzExMDkgMTE2RiAxMUI2O0MyNDM7MTEwOSAxMTZGIDExQjY7CitDMjQ0O0MyNDQ7MTEwOSAxMTZGIDExQjc7QzI0NDsxMTA5IDExNkYgMTFCNzsKK0MyNDU7QzI0NTsxMTA5IDExNkYgMTFCODtDMjQ1OzExMDkgMTE2RiAxMUI4OworQzI0NjtDMjQ2OzExMDkgMTE2RiAxMUI5O0MyNDY7MTEwOSAxMTZGIDExQjk7CitDMjQ3O0MyNDc7MTEwOSAxMTZGIDExQkE7QzI0NzsxMTA5IDExNkYgMTFCQTsKK0MyNDg7QzI0ODsxMTA5IDExNkYgMTFCQjtDMjQ4OzExMDkgMTE2RiAxMUJCOworQzI0OTtDMjQ5OzExMDkgMTE2RiAxMUJDO0MyNDk7MTEwOSAxMTZGIDExQkM7CitDMjRBO0MyNEE7MTEwOSAxMTZGIDExQkQ7QzI0QTsxMTA5IDExNkYgMTFCRDsKK0MyNEI7QzI0QjsxMTA5IDExNkYgMTFCRTtDMjRCOzExMDkgMTE2RiAxMUJFOworQzI0QztDMjRDOzExMDkgMTE2RiAxMUJGO0MyNEM7MTEwOSAxMTZGIDExQkY7CitDMjREO0MyNEQ7MTEwOSAxMTZGIDExQzA7QzI0RDsxMTA5IDExNkYgMTFDMDsKK0MyNEU7QzI0RTsxMTA5IDExNkYgMTFDMTtDMjRFOzExMDkgMTE2RiAxMUMxOworQzI0RjtDMjRGOzExMDkgMTE2RiAxMUMyO0MyNEY7MTEwOSAxMTZGIDExQzI7CitDMjUwO0MyNTA7MTEwOSAxMTcwO0MyNTA7MTEwOSAxMTcwOworQzI1MTtDMjUxOzExMDkgMTE3MCAxMUE4O0MyNTE7MTEwOSAxMTcwIDExQTg7CitDMjUyO0MyNTI7MTEwOSAxMTcwIDExQTk7QzI1MjsxMTA5IDExNzAgMTFBOTsKK0MyNTM7QzI1MzsxMTA5IDExNzAgMTFBQTtDMjUzOzExMDkgMTE3MCAxMUFBOworQzI1NDtDMjU0OzExMDkgMTE3MCAxMUFCO0MyNTQ7MTEwOSAxMTcwIDExQUI7CitDMjU1O0MyNTU7MTEwOSAxMTcwIDExQUM7QzI1NTsxMTA5IDExNzAgMTFBQzsKK0MyNTY7QzI1NjsxMTA5IDExNzAgMTFBRDtDMjU2OzExMDkgMTE3MCAxMUFEOworQzI1NztDMjU3OzExMDkgMTE3MCAxMUFFO0MyNTc7MTEwOSAxMTcwIDExQUU7CitDMjU4O0MyNTg7MTEwOSAxMTcwIDExQUY7QzI1ODsxMTA5IDExNzAgMTFBRjsKK0MyNTk7QzI1OTsxMTA5IDExNzAgMTFCMDtDMjU5OzExMDkgMTE3MCAxMUIwOworQzI1QTtDMjVBOzExMDkgMTE3MCAxMUIxO0MyNUE7MTEwOSAxMTcwIDExQjE7CitDMjVCO0MyNUI7MTEwOSAxMTcwIDExQjI7QzI1QjsxMTA5IDExNzAgMTFCMjsKK0MyNUM7QzI1QzsxMTA5IDExNzAgMTFCMztDMjVDOzExMDkgMTE3MCAxMUIzOworQzI1RDtDMjVEOzExMDkgMTE3MCAxMUI0O0MyNUQ7MTEwOSAxMTcwIDExQjQ7CitDMjVFO0MyNUU7MTEwOSAxMTcwIDExQjU7QzI1RTsxMTA5IDExNzAgMTFCNTsKK0MyNUY7QzI1RjsxMTA5IDExNzAgMTFCNjtDMjVGOzExMDkgMTE3MCAxMUI2OworQzI2MDtDMjYwOzExMDkgMTE3MCAxMUI3O0MyNjA7MTEwOSAxMTcwIDExQjc7CitDMjYxO0MyNjE7MTEwOSAxMTcwIDExQjg7QzI2MTsxMTA5IDExNzAgMTFCODsKK0MyNjI7QzI2MjsxMTA5IDExNzAgMTFCOTtDMjYyOzExMDkgMTE3MCAxMUI5OworQzI2MztDMjYzOzExMDkgMTE3MCAxMUJBO0MyNjM7MTEwOSAxMTcwIDExQkE7CitDMjY0O0MyNjQ7MTEwOSAxMTcwIDExQkI7QzI2NDsxMTA5IDExNzAgMTFCQjsKK0MyNjU7QzI2NTsxMTA5IDExNzAgMTFCQztDMjY1OzExMDkgMTE3MCAxMUJDOworQzI2NjtDMjY2OzExMDkgMTE3MCAxMUJEO0MyNjY7MTEwOSAxMTcwIDExQkQ7CitDMjY3O0MyNjc7MTEwOSAxMTcwIDExQkU7QzI2NzsxMTA5IDExNzAgMTFCRTsKK0MyNjg7QzI2ODsxMTA5IDExNzAgMTFCRjtDMjY4OzExMDkgMTE3MCAxMUJGOworQzI2OTtDMjY5OzExMDkgMTE3MCAxMUMwO0MyNjk7MTEwOSAxMTcwIDExQzA7CitDMjZBO0MyNkE7MTEwOSAxMTcwIDExQzE7QzI2QTsxMTA5IDExNzAgMTFDMTsKK0MyNkI7QzI2QjsxMTA5IDExNzAgMTFDMjtDMjZCOzExMDkgMTE3MCAxMUMyOworQzI2QztDMjZDOzExMDkgMTE3MTtDMjZDOzExMDkgMTE3MTsKK0MyNkQ7QzI2RDsxMTA5IDExNzEgMTFBODtDMjZEOzExMDkgMTE3MSAxMUE4OworQzI2RTtDMjZFOzExMDkgMTE3MSAxMUE5O0MyNkU7MTEwOSAxMTcxIDExQTk7CitDMjZGO0MyNkY7MTEwOSAxMTcxIDExQUE7QzI2RjsxMTA5IDExNzEgMTFBQTsKK0MyNzA7QzI3MDsxMTA5IDExNzEgMTFBQjtDMjcwOzExMDkgMTE3MSAxMUFCOworQzI3MTtDMjcxOzExMDkgMTE3MSAxMUFDO0MyNzE7MTEwOSAxMTcxIDExQUM7CitDMjcyO0MyNzI7MTEwOSAxMTcxIDExQUQ7QzI3MjsxMTA5IDExNzEgMTFBRDsKK0MyNzM7QzI3MzsxMTA5IDExNzEgMTFBRTtDMjczOzExMDkgMTE3MSAxMUFFOworQzI3NDtDMjc0OzExMDkgMTE3MSAxMUFGO0MyNzQ7MTEwOSAxMTcxIDExQUY7CitDMjc1O0MyNzU7MTEwOSAxMTcxIDExQjA7QzI3NTsxMTA5IDExNzEgMTFCMDsKK0MyNzY7QzI3NjsxMTA5IDExNzEgMTFCMTtDMjc2OzExMDkgMTE3MSAxMUIxOworQzI3NztDMjc3OzExMDkgMTE3MSAxMUIyO0MyNzc7MTEwOSAxMTcxIDExQjI7CitDMjc4O0MyNzg7MTEwOSAxMTcxIDExQjM7QzI3ODsxMTA5IDExNzEgMTFCMzsKK0MyNzk7QzI3OTsxMTA5IDExNzEgMTFCNDtDMjc5OzExMDkgMTE3MSAxMUI0OworQzI3QTtDMjdBOzExMDkgMTE3MSAxMUI1O0MyN0E7MTEwOSAxMTcxIDExQjU7CitDMjdCO0MyN0I7MTEwOSAxMTcxIDExQjY7QzI3QjsxMTA5IDExNzEgMTFCNjsKK0MyN0M7QzI3QzsxMTA5IDExNzEgMTFCNztDMjdDOzExMDkgMTE3MSAxMUI3OworQzI3RDtDMjdEOzExMDkgMTE3MSAxMUI4O0MyN0Q7MTEwOSAxMTcxIDExQjg7CitDMjdFO0MyN0U7MTEwOSAxMTcxIDExQjk7QzI3RTsxMTA5IDExNzEgMTFCOTsKK0MyN0Y7QzI3RjsxMTA5IDExNzEgMTFCQTtDMjdGOzExMDkgMTE3MSAxMUJBOworQzI4MDtDMjgwOzExMDkgMTE3MSAxMUJCO0MyODA7MTEwOSAxMTcxIDExQkI7CitDMjgxO0MyODE7MTEwOSAxMTcxIDExQkM7QzI4MTsxMTA5IDExNzEgMTFCQzsKK0MyODI7QzI4MjsxMTA5IDExNzEgMTFCRDtDMjgyOzExMDkgMTE3MSAxMUJEOworQzI4MztDMjgzOzExMDkgMTE3MSAxMUJFO0MyODM7MTEwOSAxMTcxIDExQkU7CitDMjg0O0MyODQ7MTEwOSAxMTcxIDExQkY7QzI4NDsxMTA5IDExNzEgMTFCRjsKK0MyODU7QzI4NTsxMTA5IDExNzEgMTFDMDtDMjg1OzExMDkgMTE3MSAxMUMwOworQzI4NjtDMjg2OzExMDkgMTE3MSAxMUMxO0MyODY7MTEwOSAxMTcxIDExQzE7CitDMjg3O0MyODc7MTEwOSAxMTcxIDExQzI7QzI4NzsxMTA5IDExNzEgMTFDMjsKK0MyODg7QzI4ODsxMTA5IDExNzI7QzI4ODsxMTA5IDExNzI7CitDMjg5O0MyODk7MTEwOSAxMTcyIDExQTg7QzI4OTsxMTA5IDExNzIgMTFBODsKK0MyOEE7QzI4QTsxMTA5IDExNzIgMTFBOTtDMjhBOzExMDkgMTE3MiAxMUE5OworQzI4QjtDMjhCOzExMDkgMTE3MiAxMUFBO0MyOEI7MTEwOSAxMTcyIDExQUE7CitDMjhDO0MyOEM7MTEwOSAxMTcyIDExQUI7QzI4QzsxMTA5IDExNzIgMTFBQjsKK0MyOEQ7QzI4RDsxMTA5IDExNzIgMTFBQztDMjhEOzExMDkgMTE3MiAxMUFDOworQzI4RTtDMjhFOzExMDkgMTE3MiAxMUFEO0MyOEU7MTEwOSAxMTcyIDExQUQ7CitDMjhGO0MyOEY7MTEwOSAxMTcyIDExQUU7QzI4RjsxMTA5IDExNzIgMTFBRTsKK0MyOTA7QzI5MDsxMTA5IDExNzIgMTFBRjtDMjkwOzExMDkgMTE3MiAxMUFGOworQzI5MTtDMjkxOzExMDkgMTE3MiAxMUIwO0MyOTE7MTEwOSAxMTcyIDExQjA7CitDMjkyO0MyOTI7MTEwOSAxMTcyIDExQjE7QzI5MjsxMTA5IDExNzIgMTFCMTsKK0MyOTM7QzI5MzsxMTA5IDExNzIgMTFCMjtDMjkzOzExMDkgMTE3MiAxMUIyOworQzI5NDtDMjk0OzExMDkgMTE3MiAxMUIzO0MyOTQ7MTEwOSAxMTcyIDExQjM7CitDMjk1O0MyOTU7MTEwOSAxMTcyIDExQjQ7QzI5NTsxMTA5IDExNzIgMTFCNDsKK0MyOTY7QzI5NjsxMTA5IDExNzIgMTFCNTtDMjk2OzExMDkgMTE3MiAxMUI1OworQzI5NztDMjk3OzExMDkgMTE3MiAxMUI2O0MyOTc7MTEwOSAxMTcyIDExQjY7CitDMjk4O0MyOTg7MTEwOSAxMTcyIDExQjc7QzI5ODsxMTA5IDExNzIgMTFCNzsKK0MyOTk7QzI5OTsxMTA5IDExNzIgMTFCODtDMjk5OzExMDkgMTE3MiAxMUI4OworQzI5QTtDMjlBOzExMDkgMTE3MiAxMUI5O0MyOUE7MTEwOSAxMTcyIDExQjk7CitDMjlCO0MyOUI7MTEwOSAxMTcyIDExQkE7QzI5QjsxMTA5IDExNzIgMTFCQTsKK0MyOUM7QzI5QzsxMTA5IDExNzIgMTFCQjtDMjlDOzExMDkgMTE3MiAxMUJCOworQzI5RDtDMjlEOzExMDkgMTE3MiAxMUJDO0MyOUQ7MTEwOSAxMTcyIDExQkM7CitDMjlFO0MyOUU7MTEwOSAxMTcyIDExQkQ7QzI5RTsxMTA5IDExNzIgMTFCRDsKK0MyOUY7QzI5RjsxMTA5IDExNzIgMTFCRTtDMjlGOzExMDkgMTE3MiAxMUJFOworQzJBMDtDMkEwOzExMDkgMTE3MiAxMUJGO0MyQTA7MTEwOSAxMTcyIDExQkY7CitDMkExO0MyQTE7MTEwOSAxMTcyIDExQzA7QzJBMTsxMTA5IDExNzIgMTFDMDsKK0MyQTI7QzJBMjsxMTA5IDExNzIgMTFDMTtDMkEyOzExMDkgMTE3MiAxMUMxOworQzJBMztDMkEzOzExMDkgMTE3MiAxMUMyO0MyQTM7MTEwOSAxMTcyIDExQzI7CitDMkE0O0MyQTQ7MTEwOSAxMTczO0MyQTQ7MTEwOSAxMTczOworQzJBNTtDMkE1OzExMDkgMTE3MyAxMUE4O0MyQTU7MTEwOSAxMTczIDExQTg7CitDMkE2O0MyQTY7MTEwOSAxMTczIDExQTk7QzJBNjsxMTA5IDExNzMgMTFBOTsKK0MyQTc7QzJBNzsxMTA5IDExNzMgMTFBQTtDMkE3OzExMDkgMTE3MyAxMUFBOworQzJBODtDMkE4OzExMDkgMTE3MyAxMUFCO0MyQTg7MTEwOSAxMTczIDExQUI7CitDMkE5O0MyQTk7MTEwOSAxMTczIDExQUM7QzJBOTsxMTA5IDExNzMgMTFBQzsKK0MyQUE7QzJBQTsxMTA5IDExNzMgMTFBRDtDMkFBOzExMDkgMTE3MyAxMUFEOworQzJBQjtDMkFCOzExMDkgMTE3MyAxMUFFO0MyQUI7MTEwOSAxMTczIDExQUU7CitDMkFDO0MyQUM7MTEwOSAxMTczIDExQUY7QzJBQzsxMTA5IDExNzMgMTFBRjsKK0MyQUQ7QzJBRDsxMTA5IDExNzMgMTFCMDtDMkFEOzExMDkgMTE3MyAxMUIwOworQzJBRTtDMkFFOzExMDkgMTE3MyAxMUIxO0MyQUU7MTEwOSAxMTczIDExQjE7CitDMkFGO0MyQUY7MTEwOSAxMTczIDExQjI7QzJBRjsxMTA5IDExNzMgMTFCMjsKK0MyQjA7QzJCMDsxMTA5IDExNzMgMTFCMztDMkIwOzExMDkgMTE3MyAxMUIzOworQzJCMTtDMkIxOzExMDkgMTE3MyAxMUI0O0MyQjE7MTEwOSAxMTczIDExQjQ7CitDMkIyO0MyQjI7MTEwOSAxMTczIDExQjU7QzJCMjsxMTA5IDExNzMgMTFCNTsKK0MyQjM7QzJCMzsxMTA5IDExNzMgMTFCNjtDMkIzOzExMDkgMTE3MyAxMUI2OworQzJCNDtDMkI0OzExMDkgMTE3MyAxMUI3O0MyQjQ7MTEwOSAxMTczIDExQjc7CitDMkI1O0MyQjU7MTEwOSAxMTczIDExQjg7QzJCNTsxMTA5IDExNzMgMTFCODsKK0MyQjY7QzJCNjsxMTA5IDExNzMgMTFCOTtDMkI2OzExMDkgMTE3MyAxMUI5OworQzJCNztDMkI3OzExMDkgMTE3MyAxMUJBO0MyQjc7MTEwOSAxMTczIDExQkE7CitDMkI4O0MyQjg7MTEwOSAxMTczIDExQkI7QzJCODsxMTA5IDExNzMgMTFCQjsKK0MyQjk7QzJCOTsxMTA5IDExNzMgMTFCQztDMkI5OzExMDkgMTE3MyAxMUJDOworQzJCQTtDMkJBOzExMDkgMTE3MyAxMUJEO0MyQkE7MTEwOSAxMTczIDExQkQ7CitDMkJCO0MyQkI7MTEwOSAxMTczIDExQkU7QzJCQjsxMTA5IDExNzMgMTFCRTsKK0MyQkM7QzJCQzsxMTA5IDExNzMgMTFCRjtDMkJDOzExMDkgMTE3MyAxMUJGOworQzJCRDtDMkJEOzExMDkgMTE3MyAxMUMwO0MyQkQ7MTEwOSAxMTczIDExQzA7CitDMkJFO0MyQkU7MTEwOSAxMTczIDExQzE7QzJCRTsxMTA5IDExNzMgMTFDMTsKK0MyQkY7QzJCRjsxMTA5IDExNzMgMTFDMjtDMkJGOzExMDkgMTE3MyAxMUMyOworQzJDMDtDMkMwOzExMDkgMTE3NDtDMkMwOzExMDkgMTE3NDsKK0MyQzE7QzJDMTsxMTA5IDExNzQgMTFBODtDMkMxOzExMDkgMTE3NCAxMUE4OworQzJDMjtDMkMyOzExMDkgMTE3NCAxMUE5O0MyQzI7MTEwOSAxMTc0IDExQTk7CitDMkMzO0MyQzM7MTEwOSAxMTc0IDExQUE7QzJDMzsxMTA5IDExNzQgMTFBQTsKK0MyQzQ7QzJDNDsxMTA5IDExNzQgMTFBQjtDMkM0OzExMDkgMTE3NCAxMUFCOworQzJDNTtDMkM1OzExMDkgMTE3NCAxMUFDO0MyQzU7MTEwOSAxMTc0IDExQUM7CitDMkM2O0MyQzY7MTEwOSAxMTc0IDExQUQ7QzJDNjsxMTA5IDExNzQgMTFBRDsKK0MyQzc7QzJDNzsxMTA5IDExNzQgMTFBRTtDMkM3OzExMDkgMTE3NCAxMUFFOworQzJDODtDMkM4OzExMDkgMTE3NCAxMUFGO0MyQzg7MTEwOSAxMTc0IDExQUY7CitDMkM5O0MyQzk7MTEwOSAxMTc0IDExQjA7QzJDOTsxMTA5IDExNzQgMTFCMDsKK0MyQ0E7QzJDQTsxMTA5IDExNzQgMTFCMTtDMkNBOzExMDkgMTE3NCAxMUIxOworQzJDQjtDMkNCOzExMDkgMTE3NCAxMUIyO0MyQ0I7MTEwOSAxMTc0IDExQjI7CitDMkNDO0MyQ0M7MTEwOSAxMTc0IDExQjM7QzJDQzsxMTA5IDExNzQgMTFCMzsKK0MyQ0Q7QzJDRDsxMTA5IDExNzQgMTFCNDtDMkNEOzExMDkgMTE3NCAxMUI0OworQzJDRTtDMkNFOzExMDkgMTE3NCAxMUI1O0MyQ0U7MTEwOSAxMTc0IDExQjU7CitDMkNGO0MyQ0Y7MTEwOSAxMTc0IDExQjY7QzJDRjsxMTA5IDExNzQgMTFCNjsKK0MyRDA7QzJEMDsxMTA5IDExNzQgMTFCNztDMkQwOzExMDkgMTE3NCAxMUI3OworQzJEMTtDMkQxOzExMDkgMTE3NCAxMUI4O0MyRDE7MTEwOSAxMTc0IDExQjg7CitDMkQyO0MyRDI7MTEwOSAxMTc0IDExQjk7QzJEMjsxMTA5IDExNzQgMTFCOTsKK0MyRDM7QzJEMzsxMTA5IDExNzQgMTFCQTtDMkQzOzExMDkgMTE3NCAxMUJBOworQzJENDtDMkQ0OzExMDkgMTE3NCAxMUJCO0MyRDQ7MTEwOSAxMTc0IDExQkI7CitDMkQ1O0MyRDU7MTEwOSAxMTc0IDExQkM7QzJENTsxMTA5IDExNzQgMTFCQzsKK0MyRDY7QzJENjsxMTA5IDExNzQgMTFCRDtDMkQ2OzExMDkgMTE3NCAxMUJEOworQzJENztDMkQ3OzExMDkgMTE3NCAxMUJFO0MyRDc7MTEwOSAxMTc0IDExQkU7CitDMkQ4O0MyRDg7MTEwOSAxMTc0IDExQkY7QzJEODsxMTA5IDExNzQgMTFCRjsKK0MyRDk7QzJEOTsxMTA5IDExNzQgMTFDMDtDMkQ5OzExMDkgMTE3NCAxMUMwOworQzJEQTtDMkRBOzExMDkgMTE3NCAxMUMxO0MyREE7MTEwOSAxMTc0IDExQzE7CitDMkRCO0MyREI7MTEwOSAxMTc0IDExQzI7QzJEQjsxMTA5IDExNzQgMTFDMjsKK0MyREM7QzJEQzsxMTA5IDExNzU7QzJEQzsxMTA5IDExNzU7CitDMkREO0MyREQ7MTEwOSAxMTc1IDExQTg7QzJERDsxMTA5IDExNzUgMTFBODsKK0MyREU7QzJERTsxMTA5IDExNzUgMTFBOTtDMkRFOzExMDkgMTE3NSAxMUE5OworQzJERjtDMkRGOzExMDkgMTE3NSAxMUFBO0MyREY7MTEwOSAxMTc1IDExQUE7CitDMkUwO0MyRTA7MTEwOSAxMTc1IDExQUI7QzJFMDsxMTA5IDExNzUgMTFBQjsKK0MyRTE7QzJFMTsxMTA5IDExNzUgMTFBQztDMkUxOzExMDkgMTE3NSAxMUFDOworQzJFMjtDMkUyOzExMDkgMTE3NSAxMUFEO0MyRTI7MTEwOSAxMTc1IDExQUQ7CitDMkUzO0MyRTM7MTEwOSAxMTc1IDExQUU7QzJFMzsxMTA5IDExNzUgMTFBRTsKK0MyRTQ7QzJFNDsxMTA5IDExNzUgMTFBRjtDMkU0OzExMDkgMTE3NSAxMUFGOworQzJFNTtDMkU1OzExMDkgMTE3NSAxMUIwO0MyRTU7MTEwOSAxMTc1IDExQjA7CitDMkU2O0MyRTY7MTEwOSAxMTc1IDExQjE7QzJFNjsxMTA5IDExNzUgMTFCMTsKK0MyRTc7QzJFNzsxMTA5IDExNzUgMTFCMjtDMkU3OzExMDkgMTE3NSAxMUIyOworQzJFODtDMkU4OzExMDkgMTE3NSAxMUIzO0MyRTg7MTEwOSAxMTc1IDExQjM7CitDMkU5O0MyRTk7MTEwOSAxMTc1IDExQjQ7QzJFOTsxMTA5IDExNzUgMTFCNDsKK0MyRUE7QzJFQTsxMTA5IDExNzUgMTFCNTtDMkVBOzExMDkgMTE3NSAxMUI1OworQzJFQjtDMkVCOzExMDkgMTE3NSAxMUI2O0MyRUI7MTEwOSAxMTc1IDExQjY7CitDMkVDO0MyRUM7MTEwOSAxMTc1IDExQjc7QzJFQzsxMTA5IDExNzUgMTFCNzsKK0MyRUQ7QzJFRDsxMTA5IDExNzUgMTFCODtDMkVEOzExMDkgMTE3NSAxMUI4OworQzJFRTtDMkVFOzExMDkgMTE3NSAxMUI5O0MyRUU7MTEwOSAxMTc1IDExQjk7CitDMkVGO0MyRUY7MTEwOSAxMTc1IDExQkE7QzJFRjsxMTA5IDExNzUgMTFCQTsKK0MyRjA7QzJGMDsxMTA5IDExNzUgMTFCQjtDMkYwOzExMDkgMTE3NSAxMUJCOworQzJGMTtDMkYxOzExMDkgMTE3NSAxMUJDO0MyRjE7MTEwOSAxMTc1IDExQkM7CitDMkYyO0MyRjI7MTEwOSAxMTc1IDExQkQ7QzJGMjsxMTA5IDExNzUgMTFCRDsKK0MyRjM7QzJGMzsxMTA5IDExNzUgMTFCRTtDMkYzOzExMDkgMTE3NSAxMUJFOworQzJGNDtDMkY0OzExMDkgMTE3NSAxMUJGO0MyRjQ7MTEwOSAxMTc1IDExQkY7CitDMkY1O0MyRjU7MTEwOSAxMTc1IDExQzA7QzJGNTsxMTA5IDExNzUgMTFDMDsKK0MyRjY7QzJGNjsxMTA5IDExNzUgMTFDMTtDMkY2OzExMDkgMTE3NSAxMUMxOworQzJGNztDMkY3OzExMDkgMTE3NSAxMUMyO0MyRjc7MTEwOSAxMTc1IDExQzI7CitDMkY4O0MyRjg7MTEwQSAxMTYxO0MyRjg7MTEwQSAxMTYxOworQzJGOTtDMkY5OzExMEEgMTE2MSAxMUE4O0MyRjk7MTEwQSAxMTYxIDExQTg7CitDMkZBO0MyRkE7MTEwQSAxMTYxIDExQTk7QzJGQTsxMTBBIDExNjEgMTFBOTsKK0MyRkI7QzJGQjsxMTBBIDExNjEgMTFBQTtDMkZCOzExMEEgMTE2MSAxMUFBOworQzJGQztDMkZDOzExMEEgMTE2MSAxMUFCO0MyRkM7MTEwQSAxMTYxIDExQUI7CitDMkZEO0MyRkQ7MTEwQSAxMTYxIDExQUM7QzJGRDsxMTBBIDExNjEgMTFBQzsKK0MyRkU7QzJGRTsxMTBBIDExNjEgMTFBRDtDMkZFOzExMEEgMTE2MSAxMUFEOworQzJGRjtDMkZGOzExMEEgMTE2MSAxMUFFO0MyRkY7MTEwQSAxMTYxIDExQUU7CitDMzAwO0MzMDA7MTEwQSAxMTYxIDExQUY7QzMwMDsxMTBBIDExNjEgMTFBRjsKK0MzMDE7QzMwMTsxMTBBIDExNjEgMTFCMDtDMzAxOzExMEEgMTE2MSAxMUIwOworQzMwMjtDMzAyOzExMEEgMTE2MSAxMUIxO0MzMDI7MTEwQSAxMTYxIDExQjE7CitDMzAzO0MzMDM7MTEwQSAxMTYxIDExQjI7QzMwMzsxMTBBIDExNjEgMTFCMjsKK0MzMDQ7QzMwNDsxMTBBIDExNjEgMTFCMztDMzA0OzExMEEgMTE2MSAxMUIzOworQzMwNTtDMzA1OzExMEEgMTE2MSAxMUI0O0MzMDU7MTEwQSAxMTYxIDExQjQ7CitDMzA2O0MzMDY7MTEwQSAxMTYxIDExQjU7QzMwNjsxMTBBIDExNjEgMTFCNTsKK0MzMDc7QzMwNzsxMTBBIDExNjEgMTFCNjtDMzA3OzExMEEgMTE2MSAxMUI2OworQzMwODtDMzA4OzExMEEgMTE2MSAxMUI3O0MzMDg7MTEwQSAxMTYxIDExQjc7CitDMzA5O0MzMDk7MTEwQSAxMTYxIDExQjg7QzMwOTsxMTBBIDExNjEgMTFCODsKK0MzMEE7QzMwQTsxMTBBIDExNjEgMTFCOTtDMzBBOzExMEEgMTE2MSAxMUI5OworQzMwQjtDMzBCOzExMEEgMTE2MSAxMUJBO0MzMEI7MTEwQSAxMTYxIDExQkE7CitDMzBDO0MzMEM7MTEwQSAxMTYxIDExQkI7QzMwQzsxMTBBIDExNjEgMTFCQjsKK0MzMEQ7QzMwRDsxMTBBIDExNjEgMTFCQztDMzBEOzExMEEgMTE2MSAxMUJDOworQzMwRTtDMzBFOzExMEEgMTE2MSAxMUJEO0MzMEU7MTEwQSAxMTYxIDExQkQ7CitDMzBGO0MzMEY7MTEwQSAxMTYxIDExQkU7QzMwRjsxMTBBIDExNjEgMTFCRTsKK0MzMTA7QzMxMDsxMTBBIDExNjEgMTFCRjtDMzEwOzExMEEgMTE2MSAxMUJGOworQzMxMTtDMzExOzExMEEgMTE2MSAxMUMwO0MzMTE7MTEwQSAxMTYxIDExQzA7CitDMzEyO0MzMTI7MTEwQSAxMTYxIDExQzE7QzMxMjsxMTBBIDExNjEgMTFDMTsKK0MzMTM7QzMxMzsxMTBBIDExNjEgMTFDMjtDMzEzOzExMEEgMTE2MSAxMUMyOworQzMxNDtDMzE0OzExMEEgMTE2MjtDMzE0OzExMEEgMTE2MjsKK0MzMTU7QzMxNTsxMTBBIDExNjIgMTFBODtDMzE1OzExMEEgMTE2MiAxMUE4OworQzMxNjtDMzE2OzExMEEgMTE2MiAxMUE5O0MzMTY7MTEwQSAxMTYyIDExQTk7CitDMzE3O0MzMTc7MTEwQSAxMTYyIDExQUE7QzMxNzsxMTBBIDExNjIgMTFBQTsKK0MzMTg7QzMxODsxMTBBIDExNjIgMTFBQjtDMzE4OzExMEEgMTE2MiAxMUFCOworQzMxOTtDMzE5OzExMEEgMTE2MiAxMUFDO0MzMTk7MTEwQSAxMTYyIDExQUM7CitDMzFBO0MzMUE7MTEwQSAxMTYyIDExQUQ7QzMxQTsxMTBBIDExNjIgMTFBRDsKK0MzMUI7QzMxQjsxMTBBIDExNjIgMTFBRTtDMzFCOzExMEEgMTE2MiAxMUFFOworQzMxQztDMzFDOzExMEEgMTE2MiAxMUFGO0MzMUM7MTEwQSAxMTYyIDExQUY7CitDMzFEO0MzMUQ7MTEwQSAxMTYyIDExQjA7QzMxRDsxMTBBIDExNjIgMTFCMDsKK0MzMUU7QzMxRTsxMTBBIDExNjIgMTFCMTtDMzFFOzExMEEgMTE2MiAxMUIxOworQzMxRjtDMzFGOzExMEEgMTE2MiAxMUIyO0MzMUY7MTEwQSAxMTYyIDExQjI7CitDMzIwO0MzMjA7MTEwQSAxMTYyIDExQjM7QzMyMDsxMTBBIDExNjIgMTFCMzsKK0MzMjE7QzMyMTsxMTBBIDExNjIgMTFCNDtDMzIxOzExMEEgMTE2MiAxMUI0OworQzMyMjtDMzIyOzExMEEgMTE2MiAxMUI1O0MzMjI7MTEwQSAxMTYyIDExQjU7CitDMzIzO0MzMjM7MTEwQSAxMTYyIDExQjY7QzMyMzsxMTBBIDExNjIgMTFCNjsKK0MzMjQ7QzMyNDsxMTBBIDExNjIgMTFCNztDMzI0OzExMEEgMTE2MiAxMUI3OworQzMyNTtDMzI1OzExMEEgMTE2MiAxMUI4O0MzMjU7MTEwQSAxMTYyIDExQjg7CitDMzI2O0MzMjY7MTEwQSAxMTYyIDExQjk7QzMyNjsxMTBBIDExNjIgMTFCOTsKK0MzMjc7QzMyNzsxMTBBIDExNjIgMTFCQTtDMzI3OzExMEEgMTE2MiAxMUJBOworQzMyODtDMzI4OzExMEEgMTE2MiAxMUJCO0MzMjg7MTEwQSAxMTYyIDExQkI7CitDMzI5O0MzMjk7MTEwQSAxMTYyIDExQkM7QzMyOTsxMTBBIDExNjIgMTFCQzsKK0MzMkE7QzMyQTsxMTBBIDExNjIgMTFCRDtDMzJBOzExMEEgMTE2MiAxMUJEOworQzMyQjtDMzJCOzExMEEgMTE2MiAxMUJFO0MzMkI7MTEwQSAxMTYyIDExQkU7CitDMzJDO0MzMkM7MTEwQSAxMTYyIDExQkY7QzMyQzsxMTBBIDExNjIgMTFCRjsKK0MzMkQ7QzMyRDsxMTBBIDExNjIgMTFDMDtDMzJEOzExMEEgMTE2MiAxMUMwOworQzMyRTtDMzJFOzExMEEgMTE2MiAxMUMxO0MzMkU7MTEwQSAxMTYyIDExQzE7CitDMzJGO0MzMkY7MTEwQSAxMTYyIDExQzI7QzMyRjsxMTBBIDExNjIgMTFDMjsKK0MzMzA7QzMzMDsxMTBBIDExNjM7QzMzMDsxMTBBIDExNjM7CitDMzMxO0MzMzE7MTEwQSAxMTYzIDExQTg7QzMzMTsxMTBBIDExNjMgMTFBODsKK0MzMzI7QzMzMjsxMTBBIDExNjMgMTFBOTtDMzMyOzExMEEgMTE2MyAxMUE5OworQzMzMztDMzMzOzExMEEgMTE2MyAxMUFBO0MzMzM7MTEwQSAxMTYzIDExQUE7CitDMzM0O0MzMzQ7MTEwQSAxMTYzIDExQUI7QzMzNDsxMTBBIDExNjMgMTFBQjsKK0MzMzU7QzMzNTsxMTBBIDExNjMgMTFBQztDMzM1OzExMEEgMTE2MyAxMUFDOworQzMzNjtDMzM2OzExMEEgMTE2MyAxMUFEO0MzMzY7MTEwQSAxMTYzIDExQUQ7CitDMzM3O0MzMzc7MTEwQSAxMTYzIDExQUU7QzMzNzsxMTBBIDExNjMgMTFBRTsKK0MzMzg7QzMzODsxMTBBIDExNjMgMTFBRjtDMzM4OzExMEEgMTE2MyAxMUFGOworQzMzOTtDMzM5OzExMEEgMTE2MyAxMUIwO0MzMzk7MTEwQSAxMTYzIDExQjA7CitDMzNBO0MzM0E7MTEwQSAxMTYzIDExQjE7QzMzQTsxMTBBIDExNjMgMTFCMTsKK0MzM0I7QzMzQjsxMTBBIDExNjMgMTFCMjtDMzNCOzExMEEgMTE2MyAxMUIyOworQzMzQztDMzNDOzExMEEgMTE2MyAxMUIzO0MzM0M7MTEwQSAxMTYzIDExQjM7CitDMzNEO0MzM0Q7MTEwQSAxMTYzIDExQjQ7QzMzRDsxMTBBIDExNjMgMTFCNDsKK0MzM0U7QzMzRTsxMTBBIDExNjMgMTFCNTtDMzNFOzExMEEgMTE2MyAxMUI1OworQzMzRjtDMzNGOzExMEEgMTE2MyAxMUI2O0MzM0Y7MTEwQSAxMTYzIDExQjY7CitDMzQwO0MzNDA7MTEwQSAxMTYzIDExQjc7QzM0MDsxMTBBIDExNjMgMTFCNzsKK0MzNDE7QzM0MTsxMTBBIDExNjMgMTFCODtDMzQxOzExMEEgMTE2MyAxMUI4OworQzM0MjtDMzQyOzExMEEgMTE2MyAxMUI5O0MzNDI7MTEwQSAxMTYzIDExQjk7CitDMzQzO0MzNDM7MTEwQSAxMTYzIDExQkE7QzM0MzsxMTBBIDExNjMgMTFCQTsKK0MzNDQ7QzM0NDsxMTBBIDExNjMgMTFCQjtDMzQ0OzExMEEgMTE2MyAxMUJCOworQzM0NTtDMzQ1OzExMEEgMTE2MyAxMUJDO0MzNDU7MTEwQSAxMTYzIDExQkM7CitDMzQ2O0MzNDY7MTEwQSAxMTYzIDExQkQ7QzM0NjsxMTBBIDExNjMgMTFCRDsKK0MzNDc7QzM0NzsxMTBBIDExNjMgMTFCRTtDMzQ3OzExMEEgMTE2MyAxMUJFOworQzM0ODtDMzQ4OzExMEEgMTE2MyAxMUJGO0MzNDg7MTEwQSAxMTYzIDExQkY7CitDMzQ5O0MzNDk7MTEwQSAxMTYzIDExQzA7QzM0OTsxMTBBIDExNjMgMTFDMDsKK0MzNEE7QzM0QTsxMTBBIDExNjMgMTFDMTtDMzRBOzExMEEgMTE2MyAxMUMxOworQzM0QjtDMzRCOzExMEEgMTE2MyAxMUMyO0MzNEI7MTEwQSAxMTYzIDExQzI7CitDMzRDO0MzNEM7MTEwQSAxMTY0O0MzNEM7MTEwQSAxMTY0OworQzM0RDtDMzREOzExMEEgMTE2NCAxMUE4O0MzNEQ7MTEwQSAxMTY0IDExQTg7CitDMzRFO0MzNEU7MTEwQSAxMTY0IDExQTk7QzM0RTsxMTBBIDExNjQgMTFBOTsKK0MzNEY7QzM0RjsxMTBBIDExNjQgMTFBQTtDMzRGOzExMEEgMTE2NCAxMUFBOworQzM1MDtDMzUwOzExMEEgMTE2NCAxMUFCO0MzNTA7MTEwQSAxMTY0IDExQUI7CitDMzUxO0MzNTE7MTEwQSAxMTY0IDExQUM7QzM1MTsxMTBBIDExNjQgMTFBQzsKK0MzNTI7QzM1MjsxMTBBIDExNjQgMTFBRDtDMzUyOzExMEEgMTE2NCAxMUFEOworQzM1MztDMzUzOzExMEEgMTE2NCAxMUFFO0MzNTM7MTEwQSAxMTY0IDExQUU7CitDMzU0O0MzNTQ7MTEwQSAxMTY0IDExQUY7QzM1NDsxMTBBIDExNjQgMTFBRjsKK0MzNTU7QzM1NTsxMTBBIDExNjQgMTFCMDtDMzU1OzExMEEgMTE2NCAxMUIwOworQzM1NjtDMzU2OzExMEEgMTE2NCAxMUIxO0MzNTY7MTEwQSAxMTY0IDExQjE7CitDMzU3O0MzNTc7MTEwQSAxMTY0IDExQjI7QzM1NzsxMTBBIDExNjQgMTFCMjsKK0MzNTg7QzM1ODsxMTBBIDExNjQgMTFCMztDMzU4OzExMEEgMTE2NCAxMUIzOworQzM1OTtDMzU5OzExMEEgMTE2NCAxMUI0O0MzNTk7MTEwQSAxMTY0IDExQjQ7CitDMzVBO0MzNUE7MTEwQSAxMTY0IDExQjU7QzM1QTsxMTBBIDExNjQgMTFCNTsKK0MzNUI7QzM1QjsxMTBBIDExNjQgMTFCNjtDMzVCOzExMEEgMTE2NCAxMUI2OworQzM1QztDMzVDOzExMEEgMTE2NCAxMUI3O0MzNUM7MTEwQSAxMTY0IDExQjc7CitDMzVEO0MzNUQ7MTEwQSAxMTY0IDExQjg7QzM1RDsxMTBBIDExNjQgMTFCODsKK0MzNUU7QzM1RTsxMTBBIDExNjQgMTFCOTtDMzVFOzExMEEgMTE2NCAxMUI5OworQzM1RjtDMzVGOzExMEEgMTE2NCAxMUJBO0MzNUY7MTEwQSAxMTY0IDExQkE7CitDMzYwO0MzNjA7MTEwQSAxMTY0IDExQkI7QzM2MDsxMTBBIDExNjQgMTFCQjsKK0MzNjE7QzM2MTsxMTBBIDExNjQgMTFCQztDMzYxOzExMEEgMTE2NCAxMUJDOworQzM2MjtDMzYyOzExMEEgMTE2NCAxMUJEO0MzNjI7MTEwQSAxMTY0IDExQkQ7CitDMzYzO0MzNjM7MTEwQSAxMTY0IDExQkU7QzM2MzsxMTBBIDExNjQgMTFCRTsKK0MzNjQ7QzM2NDsxMTBBIDExNjQgMTFCRjtDMzY0OzExMEEgMTE2NCAxMUJGOworQzM2NTtDMzY1OzExMEEgMTE2NCAxMUMwO0MzNjU7MTEwQSAxMTY0IDExQzA7CitDMzY2O0MzNjY7MTEwQSAxMTY0IDExQzE7QzM2NjsxMTBBIDExNjQgMTFDMTsKK0MzNjc7QzM2NzsxMTBBIDExNjQgMTFDMjtDMzY3OzExMEEgMTE2NCAxMUMyOworQzM2ODtDMzY4OzExMEEgMTE2NTtDMzY4OzExMEEgMTE2NTsKK0MzNjk7QzM2OTsxMTBBIDExNjUgMTFBODtDMzY5OzExMEEgMTE2NSAxMUE4OworQzM2QTtDMzZBOzExMEEgMTE2NSAxMUE5O0MzNkE7MTEwQSAxMTY1IDExQTk7CitDMzZCO0MzNkI7MTEwQSAxMTY1IDExQUE7QzM2QjsxMTBBIDExNjUgMTFBQTsKK0MzNkM7QzM2QzsxMTBBIDExNjUgMTFBQjtDMzZDOzExMEEgMTE2NSAxMUFCOworQzM2RDtDMzZEOzExMEEgMTE2NSAxMUFDO0MzNkQ7MTEwQSAxMTY1IDExQUM7CitDMzZFO0MzNkU7MTEwQSAxMTY1IDExQUQ7QzM2RTsxMTBBIDExNjUgMTFBRDsKK0MzNkY7QzM2RjsxMTBBIDExNjUgMTFBRTtDMzZGOzExMEEgMTE2NSAxMUFFOworQzM3MDtDMzcwOzExMEEgMTE2NSAxMUFGO0MzNzA7MTEwQSAxMTY1IDExQUY7CitDMzcxO0MzNzE7MTEwQSAxMTY1IDExQjA7QzM3MTsxMTBBIDExNjUgMTFCMDsKK0MzNzI7QzM3MjsxMTBBIDExNjUgMTFCMTtDMzcyOzExMEEgMTE2NSAxMUIxOworQzM3MztDMzczOzExMEEgMTE2NSAxMUIyO0MzNzM7MTEwQSAxMTY1IDExQjI7CitDMzc0O0MzNzQ7MTEwQSAxMTY1IDExQjM7QzM3NDsxMTBBIDExNjUgMTFCMzsKK0MzNzU7QzM3NTsxMTBBIDExNjUgMTFCNDtDMzc1OzExMEEgMTE2NSAxMUI0OworQzM3NjtDMzc2OzExMEEgMTE2NSAxMUI1O0MzNzY7MTEwQSAxMTY1IDExQjU7CitDMzc3O0MzNzc7MTEwQSAxMTY1IDExQjY7QzM3NzsxMTBBIDExNjUgMTFCNjsKK0MzNzg7QzM3ODsxMTBBIDExNjUgMTFCNztDMzc4OzExMEEgMTE2NSAxMUI3OworQzM3OTtDMzc5OzExMEEgMTE2NSAxMUI4O0MzNzk7MTEwQSAxMTY1IDExQjg7CitDMzdBO0MzN0E7MTEwQSAxMTY1IDExQjk7QzM3QTsxMTBBIDExNjUgMTFCOTsKK0MzN0I7QzM3QjsxMTBBIDExNjUgMTFCQTtDMzdCOzExMEEgMTE2NSAxMUJBOworQzM3QztDMzdDOzExMEEgMTE2NSAxMUJCO0MzN0M7MTEwQSAxMTY1IDExQkI7CitDMzdEO0MzN0Q7MTEwQSAxMTY1IDExQkM7QzM3RDsxMTBBIDExNjUgMTFCQzsKK0MzN0U7QzM3RTsxMTBBIDExNjUgMTFCRDtDMzdFOzExMEEgMTE2NSAxMUJEOworQzM3RjtDMzdGOzExMEEgMTE2NSAxMUJFO0MzN0Y7MTEwQSAxMTY1IDExQkU7CitDMzgwO0MzODA7MTEwQSAxMTY1IDExQkY7QzM4MDsxMTBBIDExNjUgMTFCRjsKK0MzODE7QzM4MTsxMTBBIDExNjUgMTFDMDtDMzgxOzExMEEgMTE2NSAxMUMwOworQzM4MjtDMzgyOzExMEEgMTE2NSAxMUMxO0MzODI7MTEwQSAxMTY1IDExQzE7CitDMzgzO0MzODM7MTEwQSAxMTY1IDExQzI7QzM4MzsxMTBBIDExNjUgMTFDMjsKK0MzODQ7QzM4NDsxMTBBIDExNjY7QzM4NDsxMTBBIDExNjY7CitDMzg1O0MzODU7MTEwQSAxMTY2IDExQTg7QzM4NTsxMTBBIDExNjYgMTFBODsKK0MzODY7QzM4NjsxMTBBIDExNjYgMTFBOTtDMzg2OzExMEEgMTE2NiAxMUE5OworQzM4NztDMzg3OzExMEEgMTE2NiAxMUFBO0MzODc7MTEwQSAxMTY2IDExQUE7CitDMzg4O0MzODg7MTEwQSAxMTY2IDExQUI7QzM4ODsxMTBBIDExNjYgMTFBQjsKK0MzODk7QzM4OTsxMTBBIDExNjYgMTFBQztDMzg5OzExMEEgMTE2NiAxMUFDOworQzM4QTtDMzhBOzExMEEgMTE2NiAxMUFEO0MzOEE7MTEwQSAxMTY2IDExQUQ7CitDMzhCO0MzOEI7MTEwQSAxMTY2IDExQUU7QzM4QjsxMTBBIDExNjYgMTFBRTsKK0MzOEM7QzM4QzsxMTBBIDExNjYgMTFBRjtDMzhDOzExMEEgMTE2NiAxMUFGOworQzM4RDtDMzhEOzExMEEgMTE2NiAxMUIwO0MzOEQ7MTEwQSAxMTY2IDExQjA7CitDMzhFO0MzOEU7MTEwQSAxMTY2IDExQjE7QzM4RTsxMTBBIDExNjYgMTFCMTsKK0MzOEY7QzM4RjsxMTBBIDExNjYgMTFCMjtDMzhGOzExMEEgMTE2NiAxMUIyOworQzM5MDtDMzkwOzExMEEgMTE2NiAxMUIzO0MzOTA7MTEwQSAxMTY2IDExQjM7CitDMzkxO0MzOTE7MTEwQSAxMTY2IDExQjQ7QzM5MTsxMTBBIDExNjYgMTFCNDsKK0MzOTI7QzM5MjsxMTBBIDExNjYgMTFCNTtDMzkyOzExMEEgMTE2NiAxMUI1OworQzM5MztDMzkzOzExMEEgMTE2NiAxMUI2O0MzOTM7MTEwQSAxMTY2IDExQjY7CitDMzk0O0MzOTQ7MTEwQSAxMTY2IDExQjc7QzM5NDsxMTBBIDExNjYgMTFCNzsKK0MzOTU7QzM5NTsxMTBBIDExNjYgMTFCODtDMzk1OzExMEEgMTE2NiAxMUI4OworQzM5NjtDMzk2OzExMEEgMTE2NiAxMUI5O0MzOTY7MTEwQSAxMTY2IDExQjk7CitDMzk3O0MzOTc7MTEwQSAxMTY2IDExQkE7QzM5NzsxMTBBIDExNjYgMTFCQTsKK0MzOTg7QzM5ODsxMTBBIDExNjYgMTFCQjtDMzk4OzExMEEgMTE2NiAxMUJCOworQzM5OTtDMzk5OzExMEEgMTE2NiAxMUJDO0MzOTk7MTEwQSAxMTY2IDExQkM7CitDMzlBO0MzOUE7MTEwQSAxMTY2IDExQkQ7QzM5QTsxMTBBIDExNjYgMTFCRDsKK0MzOUI7QzM5QjsxMTBBIDExNjYgMTFCRTtDMzlCOzExMEEgMTE2NiAxMUJFOworQzM5QztDMzlDOzExMEEgMTE2NiAxMUJGO0MzOUM7MTEwQSAxMTY2IDExQkY7CitDMzlEO0MzOUQ7MTEwQSAxMTY2IDExQzA7QzM5RDsxMTBBIDExNjYgMTFDMDsKK0MzOUU7QzM5RTsxMTBBIDExNjYgMTFDMTtDMzlFOzExMEEgMTE2NiAxMUMxOworQzM5RjtDMzlGOzExMEEgMTE2NiAxMUMyO0MzOUY7MTEwQSAxMTY2IDExQzI7CitDM0EwO0MzQTA7MTEwQSAxMTY3O0MzQTA7MTEwQSAxMTY3OworQzNBMTtDM0ExOzExMEEgMTE2NyAxMUE4O0MzQTE7MTEwQSAxMTY3IDExQTg7CitDM0EyO0MzQTI7MTEwQSAxMTY3IDExQTk7QzNBMjsxMTBBIDExNjcgMTFBOTsKK0MzQTM7QzNBMzsxMTBBIDExNjcgMTFBQTtDM0EzOzExMEEgMTE2NyAxMUFBOworQzNBNDtDM0E0OzExMEEgMTE2NyAxMUFCO0MzQTQ7MTEwQSAxMTY3IDExQUI7CitDM0E1O0MzQTU7MTEwQSAxMTY3IDExQUM7QzNBNTsxMTBBIDExNjcgMTFBQzsKK0MzQTY7QzNBNjsxMTBBIDExNjcgMTFBRDtDM0E2OzExMEEgMTE2NyAxMUFEOworQzNBNztDM0E3OzExMEEgMTE2NyAxMUFFO0MzQTc7MTEwQSAxMTY3IDExQUU7CitDM0E4O0MzQTg7MTEwQSAxMTY3IDExQUY7QzNBODsxMTBBIDExNjcgMTFBRjsKK0MzQTk7QzNBOTsxMTBBIDExNjcgMTFCMDtDM0E5OzExMEEgMTE2NyAxMUIwOworQzNBQTtDM0FBOzExMEEgMTE2NyAxMUIxO0MzQUE7MTEwQSAxMTY3IDExQjE7CitDM0FCO0MzQUI7MTEwQSAxMTY3IDExQjI7QzNBQjsxMTBBIDExNjcgMTFCMjsKK0MzQUM7QzNBQzsxMTBBIDExNjcgMTFCMztDM0FDOzExMEEgMTE2NyAxMUIzOworQzNBRDtDM0FEOzExMEEgMTE2NyAxMUI0O0MzQUQ7MTEwQSAxMTY3IDExQjQ7CitDM0FFO0MzQUU7MTEwQSAxMTY3IDExQjU7QzNBRTsxMTBBIDExNjcgMTFCNTsKK0MzQUY7QzNBRjsxMTBBIDExNjcgMTFCNjtDM0FGOzExMEEgMTE2NyAxMUI2OworQzNCMDtDM0IwOzExMEEgMTE2NyAxMUI3O0MzQjA7MTEwQSAxMTY3IDExQjc7CitDM0IxO0MzQjE7MTEwQSAxMTY3IDExQjg7QzNCMTsxMTBBIDExNjcgMTFCODsKK0MzQjI7QzNCMjsxMTBBIDExNjcgMTFCOTtDM0IyOzExMEEgMTE2NyAxMUI5OworQzNCMztDM0IzOzExMEEgMTE2NyAxMUJBO0MzQjM7MTEwQSAxMTY3IDExQkE7CitDM0I0O0MzQjQ7MTEwQSAxMTY3IDExQkI7QzNCNDsxMTBBIDExNjcgMTFCQjsKK0MzQjU7QzNCNTsxMTBBIDExNjcgMTFCQztDM0I1OzExMEEgMTE2NyAxMUJDOworQzNCNjtDM0I2OzExMEEgMTE2NyAxMUJEO0MzQjY7MTEwQSAxMTY3IDExQkQ7CitDM0I3O0MzQjc7MTEwQSAxMTY3IDExQkU7QzNCNzsxMTBBIDExNjcgMTFCRTsKK0MzQjg7QzNCODsxMTBBIDExNjcgMTFCRjtDM0I4OzExMEEgMTE2NyAxMUJGOworQzNCOTtDM0I5OzExMEEgMTE2NyAxMUMwO0MzQjk7MTEwQSAxMTY3IDExQzA7CitDM0JBO0MzQkE7MTEwQSAxMTY3IDExQzE7QzNCQTsxMTBBIDExNjcgMTFDMTsKK0MzQkI7QzNCQjsxMTBBIDExNjcgMTFDMjtDM0JCOzExMEEgMTE2NyAxMUMyOworQzNCQztDM0JDOzExMEEgMTE2ODtDM0JDOzExMEEgMTE2ODsKK0MzQkQ7QzNCRDsxMTBBIDExNjggMTFBODtDM0JEOzExMEEgMTE2OCAxMUE4OworQzNCRTtDM0JFOzExMEEgMTE2OCAxMUE5O0MzQkU7MTEwQSAxMTY4IDExQTk7CitDM0JGO0MzQkY7MTEwQSAxMTY4IDExQUE7QzNCRjsxMTBBIDExNjggMTFBQTsKK0MzQzA7QzNDMDsxMTBBIDExNjggMTFBQjtDM0MwOzExMEEgMTE2OCAxMUFCOworQzNDMTtDM0MxOzExMEEgMTE2OCAxMUFDO0MzQzE7MTEwQSAxMTY4IDExQUM7CitDM0MyO0MzQzI7MTEwQSAxMTY4IDExQUQ7QzNDMjsxMTBBIDExNjggMTFBRDsKK0MzQzM7QzNDMzsxMTBBIDExNjggMTFBRTtDM0MzOzExMEEgMTE2OCAxMUFFOworQzNDNDtDM0M0OzExMEEgMTE2OCAxMUFGO0MzQzQ7MTEwQSAxMTY4IDExQUY7CitDM0M1O0MzQzU7MTEwQSAxMTY4IDExQjA7QzNDNTsxMTBBIDExNjggMTFCMDsKK0MzQzY7QzNDNjsxMTBBIDExNjggMTFCMTtDM0M2OzExMEEgMTE2OCAxMUIxOworQzNDNztDM0M3OzExMEEgMTE2OCAxMUIyO0MzQzc7MTEwQSAxMTY4IDExQjI7CitDM0M4O0MzQzg7MTEwQSAxMTY4IDExQjM7QzNDODsxMTBBIDExNjggMTFCMzsKK0MzQzk7QzNDOTsxMTBBIDExNjggMTFCNDtDM0M5OzExMEEgMTE2OCAxMUI0OworQzNDQTtDM0NBOzExMEEgMTE2OCAxMUI1O0MzQ0E7MTEwQSAxMTY4IDExQjU7CitDM0NCO0MzQ0I7MTEwQSAxMTY4IDExQjY7QzNDQjsxMTBBIDExNjggMTFCNjsKK0MzQ0M7QzNDQzsxMTBBIDExNjggMTFCNztDM0NDOzExMEEgMTE2OCAxMUI3OworQzNDRDtDM0NEOzExMEEgMTE2OCAxMUI4O0MzQ0Q7MTEwQSAxMTY4IDExQjg7CitDM0NFO0MzQ0U7MTEwQSAxMTY4IDExQjk7QzNDRTsxMTBBIDExNjggMTFCOTsKK0MzQ0Y7QzNDRjsxMTBBIDExNjggMTFCQTtDM0NGOzExMEEgMTE2OCAxMUJBOworQzNEMDtDM0QwOzExMEEgMTE2OCAxMUJCO0MzRDA7MTEwQSAxMTY4IDExQkI7CitDM0QxO0MzRDE7MTEwQSAxMTY4IDExQkM7QzNEMTsxMTBBIDExNjggMTFCQzsKK0MzRDI7QzNEMjsxMTBBIDExNjggMTFCRDtDM0QyOzExMEEgMTE2OCAxMUJEOworQzNEMztDM0QzOzExMEEgMTE2OCAxMUJFO0MzRDM7MTEwQSAxMTY4IDExQkU7CitDM0Q0O0MzRDQ7MTEwQSAxMTY4IDExQkY7QzNENDsxMTBBIDExNjggMTFCRjsKK0MzRDU7QzNENTsxMTBBIDExNjggMTFDMDtDM0Q1OzExMEEgMTE2OCAxMUMwOworQzNENjtDM0Q2OzExMEEgMTE2OCAxMUMxO0MzRDY7MTEwQSAxMTY4IDExQzE7CitDM0Q3O0MzRDc7MTEwQSAxMTY4IDExQzI7QzNENzsxMTBBIDExNjggMTFDMjsKK0MzRDg7QzNEODsxMTBBIDExNjk7QzNEODsxMTBBIDExNjk7CitDM0Q5O0MzRDk7MTEwQSAxMTY5IDExQTg7QzNEOTsxMTBBIDExNjkgMTFBODsKK0MzREE7QzNEQTsxMTBBIDExNjkgMTFBOTtDM0RBOzExMEEgMTE2OSAxMUE5OworQzNEQjtDM0RCOzExMEEgMTE2OSAxMUFBO0MzREI7MTEwQSAxMTY5IDExQUE7CitDM0RDO0MzREM7MTEwQSAxMTY5IDExQUI7QzNEQzsxMTBBIDExNjkgMTFBQjsKK0MzREQ7QzNERDsxMTBBIDExNjkgMTFBQztDM0REOzExMEEgMTE2OSAxMUFDOworQzNERTtDM0RFOzExMEEgMTE2OSAxMUFEO0MzREU7MTEwQSAxMTY5IDExQUQ7CitDM0RGO0MzREY7MTEwQSAxMTY5IDExQUU7QzNERjsxMTBBIDExNjkgMTFBRTsKK0MzRTA7QzNFMDsxMTBBIDExNjkgMTFBRjtDM0UwOzExMEEgMTE2OSAxMUFGOworQzNFMTtDM0UxOzExMEEgMTE2OSAxMUIwO0MzRTE7MTEwQSAxMTY5IDExQjA7CitDM0UyO0MzRTI7MTEwQSAxMTY5IDExQjE7QzNFMjsxMTBBIDExNjkgMTFCMTsKK0MzRTM7QzNFMzsxMTBBIDExNjkgMTFCMjtDM0UzOzExMEEgMTE2OSAxMUIyOworQzNFNDtDM0U0OzExMEEgMTE2OSAxMUIzO0MzRTQ7MTEwQSAxMTY5IDExQjM7CitDM0U1O0MzRTU7MTEwQSAxMTY5IDExQjQ7QzNFNTsxMTBBIDExNjkgMTFCNDsKK0MzRTY7QzNFNjsxMTBBIDExNjkgMTFCNTtDM0U2OzExMEEgMTE2OSAxMUI1OworQzNFNztDM0U3OzExMEEgMTE2OSAxMUI2O0MzRTc7MTEwQSAxMTY5IDExQjY7CitDM0U4O0MzRTg7MTEwQSAxMTY5IDExQjc7QzNFODsxMTBBIDExNjkgMTFCNzsKK0MzRTk7QzNFOTsxMTBBIDExNjkgMTFCODtDM0U5OzExMEEgMTE2OSAxMUI4OworQzNFQTtDM0VBOzExMEEgMTE2OSAxMUI5O0MzRUE7MTEwQSAxMTY5IDExQjk7CitDM0VCO0MzRUI7MTEwQSAxMTY5IDExQkE7QzNFQjsxMTBBIDExNjkgMTFCQTsKK0MzRUM7QzNFQzsxMTBBIDExNjkgMTFCQjtDM0VDOzExMEEgMTE2OSAxMUJCOworQzNFRDtDM0VEOzExMEEgMTE2OSAxMUJDO0MzRUQ7MTEwQSAxMTY5IDExQkM7CitDM0VFO0MzRUU7MTEwQSAxMTY5IDExQkQ7QzNFRTsxMTBBIDExNjkgMTFCRDsKK0MzRUY7QzNFRjsxMTBBIDExNjkgMTFCRTtDM0VGOzExMEEgMTE2OSAxMUJFOworQzNGMDtDM0YwOzExMEEgMTE2OSAxMUJGO0MzRjA7MTEwQSAxMTY5IDExQkY7CitDM0YxO0MzRjE7MTEwQSAxMTY5IDExQzA7QzNGMTsxMTBBIDExNjkgMTFDMDsKK0MzRjI7QzNGMjsxMTBBIDExNjkgMTFDMTtDM0YyOzExMEEgMTE2OSAxMUMxOworQzNGMztDM0YzOzExMEEgMTE2OSAxMUMyO0MzRjM7MTEwQSAxMTY5IDExQzI7CitDM0Y0O0MzRjQ7MTEwQSAxMTZBO0MzRjQ7MTEwQSAxMTZBOworQzNGNTtDM0Y1OzExMEEgMTE2QSAxMUE4O0MzRjU7MTEwQSAxMTZBIDExQTg7CitDM0Y2O0MzRjY7MTEwQSAxMTZBIDExQTk7QzNGNjsxMTBBIDExNkEgMTFBOTsKK0MzRjc7QzNGNzsxMTBBIDExNkEgMTFBQTtDM0Y3OzExMEEgMTE2QSAxMUFBOworQzNGODtDM0Y4OzExMEEgMTE2QSAxMUFCO0MzRjg7MTEwQSAxMTZBIDExQUI7CitDM0Y5O0MzRjk7MTEwQSAxMTZBIDExQUM7QzNGOTsxMTBBIDExNkEgMTFBQzsKK0MzRkE7QzNGQTsxMTBBIDExNkEgMTFBRDtDM0ZBOzExMEEgMTE2QSAxMUFEOworQzNGQjtDM0ZCOzExMEEgMTE2QSAxMUFFO0MzRkI7MTEwQSAxMTZBIDExQUU7CitDM0ZDO0MzRkM7MTEwQSAxMTZBIDExQUY7QzNGQzsxMTBBIDExNkEgMTFBRjsKK0MzRkQ7QzNGRDsxMTBBIDExNkEgMTFCMDtDM0ZEOzExMEEgMTE2QSAxMUIwOworQzNGRTtDM0ZFOzExMEEgMTE2QSAxMUIxO0MzRkU7MTEwQSAxMTZBIDExQjE7CitDM0ZGO0MzRkY7MTEwQSAxMTZBIDExQjI7QzNGRjsxMTBBIDExNkEgMTFCMjsKK0M0MDA7QzQwMDsxMTBBIDExNkEgMTFCMztDNDAwOzExMEEgMTE2QSAxMUIzOworQzQwMTtDNDAxOzExMEEgMTE2QSAxMUI0O0M0MDE7MTEwQSAxMTZBIDExQjQ7CitDNDAyO0M0MDI7MTEwQSAxMTZBIDExQjU7QzQwMjsxMTBBIDExNkEgMTFCNTsKK0M0MDM7QzQwMzsxMTBBIDExNkEgMTFCNjtDNDAzOzExMEEgMTE2QSAxMUI2OworQzQwNDtDNDA0OzExMEEgMTE2QSAxMUI3O0M0MDQ7MTEwQSAxMTZBIDExQjc7CitDNDA1O0M0MDU7MTEwQSAxMTZBIDExQjg7QzQwNTsxMTBBIDExNkEgMTFCODsKK0M0MDY7QzQwNjsxMTBBIDExNkEgMTFCOTtDNDA2OzExMEEgMTE2QSAxMUI5OworQzQwNztDNDA3OzExMEEgMTE2QSAxMUJBO0M0MDc7MTEwQSAxMTZBIDExQkE7CitDNDA4O0M0MDg7MTEwQSAxMTZBIDExQkI7QzQwODsxMTBBIDExNkEgMTFCQjsKK0M0MDk7QzQwOTsxMTBBIDExNkEgMTFCQztDNDA5OzExMEEgMTE2QSAxMUJDOworQzQwQTtDNDBBOzExMEEgMTE2QSAxMUJEO0M0MEE7MTEwQSAxMTZBIDExQkQ7CitDNDBCO0M0MEI7MTEwQSAxMTZBIDExQkU7QzQwQjsxMTBBIDExNkEgMTFCRTsKK0M0MEM7QzQwQzsxMTBBIDExNkEgMTFCRjtDNDBDOzExMEEgMTE2QSAxMUJGOworQzQwRDtDNDBEOzExMEEgMTE2QSAxMUMwO0M0MEQ7MTEwQSAxMTZBIDExQzA7CitDNDBFO0M0MEU7MTEwQSAxMTZBIDExQzE7QzQwRTsxMTBBIDExNkEgMTFDMTsKK0M0MEY7QzQwRjsxMTBBIDExNkEgMTFDMjtDNDBGOzExMEEgMTE2QSAxMUMyOworQzQxMDtDNDEwOzExMEEgMTE2QjtDNDEwOzExMEEgMTE2QjsKK0M0MTE7QzQxMTsxMTBBIDExNkIgMTFBODtDNDExOzExMEEgMTE2QiAxMUE4OworQzQxMjtDNDEyOzExMEEgMTE2QiAxMUE5O0M0MTI7MTEwQSAxMTZCIDExQTk7CitDNDEzO0M0MTM7MTEwQSAxMTZCIDExQUE7QzQxMzsxMTBBIDExNkIgMTFBQTsKK0M0MTQ7QzQxNDsxMTBBIDExNkIgMTFBQjtDNDE0OzExMEEgMTE2QiAxMUFCOworQzQxNTtDNDE1OzExMEEgMTE2QiAxMUFDO0M0MTU7MTEwQSAxMTZCIDExQUM7CitDNDE2O0M0MTY7MTEwQSAxMTZCIDExQUQ7QzQxNjsxMTBBIDExNkIgMTFBRDsKK0M0MTc7QzQxNzsxMTBBIDExNkIgMTFBRTtDNDE3OzExMEEgMTE2QiAxMUFFOworQzQxODtDNDE4OzExMEEgMTE2QiAxMUFGO0M0MTg7MTEwQSAxMTZCIDExQUY7CitDNDE5O0M0MTk7MTEwQSAxMTZCIDExQjA7QzQxOTsxMTBBIDExNkIgMTFCMDsKK0M0MUE7QzQxQTsxMTBBIDExNkIgMTFCMTtDNDFBOzExMEEgMTE2QiAxMUIxOworQzQxQjtDNDFCOzExMEEgMTE2QiAxMUIyO0M0MUI7MTEwQSAxMTZCIDExQjI7CitDNDFDO0M0MUM7MTEwQSAxMTZCIDExQjM7QzQxQzsxMTBBIDExNkIgMTFCMzsKK0M0MUQ7QzQxRDsxMTBBIDExNkIgMTFCNDtDNDFEOzExMEEgMTE2QiAxMUI0OworQzQxRTtDNDFFOzExMEEgMTE2QiAxMUI1O0M0MUU7MTEwQSAxMTZCIDExQjU7CitDNDFGO0M0MUY7MTEwQSAxMTZCIDExQjY7QzQxRjsxMTBBIDExNkIgMTFCNjsKK0M0MjA7QzQyMDsxMTBBIDExNkIgMTFCNztDNDIwOzExMEEgMTE2QiAxMUI3OworQzQyMTtDNDIxOzExMEEgMTE2QiAxMUI4O0M0MjE7MTEwQSAxMTZCIDExQjg7CitDNDIyO0M0MjI7MTEwQSAxMTZCIDExQjk7QzQyMjsxMTBBIDExNkIgMTFCOTsKK0M0MjM7QzQyMzsxMTBBIDExNkIgMTFCQTtDNDIzOzExMEEgMTE2QiAxMUJBOworQzQyNDtDNDI0OzExMEEgMTE2QiAxMUJCO0M0MjQ7MTEwQSAxMTZCIDExQkI7CitDNDI1O0M0MjU7MTEwQSAxMTZCIDExQkM7QzQyNTsxMTBBIDExNkIgMTFCQzsKK0M0MjY7QzQyNjsxMTBBIDExNkIgMTFCRDtDNDI2OzExMEEgMTE2QiAxMUJEOworQzQyNztDNDI3OzExMEEgMTE2QiAxMUJFO0M0Mjc7MTEwQSAxMTZCIDExQkU7CitDNDI4O0M0Mjg7MTEwQSAxMTZCIDExQkY7QzQyODsxMTBBIDExNkIgMTFCRjsKK0M0Mjk7QzQyOTsxMTBBIDExNkIgMTFDMDtDNDI5OzExMEEgMTE2QiAxMUMwOworQzQyQTtDNDJBOzExMEEgMTE2QiAxMUMxO0M0MkE7MTEwQSAxMTZCIDExQzE7CitDNDJCO0M0MkI7MTEwQSAxMTZCIDExQzI7QzQyQjsxMTBBIDExNkIgMTFDMjsKK0M0MkM7QzQyQzsxMTBBIDExNkM7QzQyQzsxMTBBIDExNkM7CitDNDJEO0M0MkQ7MTEwQSAxMTZDIDExQTg7QzQyRDsxMTBBIDExNkMgMTFBODsKK0M0MkU7QzQyRTsxMTBBIDExNkMgMTFBOTtDNDJFOzExMEEgMTE2QyAxMUE5OworQzQyRjtDNDJGOzExMEEgMTE2QyAxMUFBO0M0MkY7MTEwQSAxMTZDIDExQUE7CitDNDMwO0M0MzA7MTEwQSAxMTZDIDExQUI7QzQzMDsxMTBBIDExNkMgMTFBQjsKK0M0MzE7QzQzMTsxMTBBIDExNkMgMTFBQztDNDMxOzExMEEgMTE2QyAxMUFDOworQzQzMjtDNDMyOzExMEEgMTE2QyAxMUFEO0M0MzI7MTEwQSAxMTZDIDExQUQ7CitDNDMzO0M0MzM7MTEwQSAxMTZDIDExQUU7QzQzMzsxMTBBIDExNkMgMTFBRTsKK0M0MzQ7QzQzNDsxMTBBIDExNkMgMTFBRjtDNDM0OzExMEEgMTE2QyAxMUFGOworQzQzNTtDNDM1OzExMEEgMTE2QyAxMUIwO0M0MzU7MTEwQSAxMTZDIDExQjA7CitDNDM2O0M0MzY7MTEwQSAxMTZDIDExQjE7QzQzNjsxMTBBIDExNkMgMTFCMTsKK0M0Mzc7QzQzNzsxMTBBIDExNkMgMTFCMjtDNDM3OzExMEEgMTE2QyAxMUIyOworQzQzODtDNDM4OzExMEEgMTE2QyAxMUIzO0M0Mzg7MTEwQSAxMTZDIDExQjM7CitDNDM5O0M0Mzk7MTEwQSAxMTZDIDExQjQ7QzQzOTsxMTBBIDExNkMgMTFCNDsKK0M0M0E7QzQzQTsxMTBBIDExNkMgMTFCNTtDNDNBOzExMEEgMTE2QyAxMUI1OworQzQzQjtDNDNCOzExMEEgMTE2QyAxMUI2O0M0M0I7MTEwQSAxMTZDIDExQjY7CitDNDNDO0M0M0M7MTEwQSAxMTZDIDExQjc7QzQzQzsxMTBBIDExNkMgMTFCNzsKK0M0M0Q7QzQzRDsxMTBBIDExNkMgMTFCODtDNDNEOzExMEEgMTE2QyAxMUI4OworQzQzRTtDNDNFOzExMEEgMTE2QyAxMUI5O0M0M0U7MTEwQSAxMTZDIDExQjk7CitDNDNGO0M0M0Y7MTEwQSAxMTZDIDExQkE7QzQzRjsxMTBBIDExNkMgMTFCQTsKK0M0NDA7QzQ0MDsxMTBBIDExNkMgMTFCQjtDNDQwOzExMEEgMTE2QyAxMUJCOworQzQ0MTtDNDQxOzExMEEgMTE2QyAxMUJDO0M0NDE7MTEwQSAxMTZDIDExQkM7CitDNDQyO0M0NDI7MTEwQSAxMTZDIDExQkQ7QzQ0MjsxMTBBIDExNkMgMTFCRDsKK0M0NDM7QzQ0MzsxMTBBIDExNkMgMTFCRTtDNDQzOzExMEEgMTE2QyAxMUJFOworQzQ0NDtDNDQ0OzExMEEgMTE2QyAxMUJGO0M0NDQ7MTEwQSAxMTZDIDExQkY7CitDNDQ1O0M0NDU7MTEwQSAxMTZDIDExQzA7QzQ0NTsxMTBBIDExNkMgMTFDMDsKK0M0NDY7QzQ0NjsxMTBBIDExNkMgMTFDMTtDNDQ2OzExMEEgMTE2QyAxMUMxOworQzQ0NztDNDQ3OzExMEEgMTE2QyAxMUMyO0M0NDc7MTEwQSAxMTZDIDExQzI7CitDNDQ4O0M0NDg7MTEwQSAxMTZEO0M0NDg7MTEwQSAxMTZEOworQzQ0OTtDNDQ5OzExMEEgMTE2RCAxMUE4O0M0NDk7MTEwQSAxMTZEIDExQTg7CitDNDRBO0M0NEE7MTEwQSAxMTZEIDExQTk7QzQ0QTsxMTBBIDExNkQgMTFBOTsKK0M0NEI7QzQ0QjsxMTBBIDExNkQgMTFBQTtDNDRCOzExMEEgMTE2RCAxMUFBOworQzQ0QztDNDRDOzExMEEgMTE2RCAxMUFCO0M0NEM7MTEwQSAxMTZEIDExQUI7CitDNDREO0M0NEQ7MTEwQSAxMTZEIDExQUM7QzQ0RDsxMTBBIDExNkQgMTFBQzsKK0M0NEU7QzQ0RTsxMTBBIDExNkQgMTFBRDtDNDRFOzExMEEgMTE2RCAxMUFEOworQzQ0RjtDNDRGOzExMEEgMTE2RCAxMUFFO0M0NEY7MTEwQSAxMTZEIDExQUU7CitDNDUwO0M0NTA7MTEwQSAxMTZEIDExQUY7QzQ1MDsxMTBBIDExNkQgMTFBRjsKK0M0NTE7QzQ1MTsxMTBBIDExNkQgMTFCMDtDNDUxOzExMEEgMTE2RCAxMUIwOworQzQ1MjtDNDUyOzExMEEgMTE2RCAxMUIxO0M0NTI7MTEwQSAxMTZEIDExQjE7CitDNDUzO0M0NTM7MTEwQSAxMTZEIDExQjI7QzQ1MzsxMTBBIDExNkQgMTFCMjsKK0M0NTQ7QzQ1NDsxMTBBIDExNkQgMTFCMztDNDU0OzExMEEgMTE2RCAxMUIzOworQzQ1NTtDNDU1OzExMEEgMTE2RCAxMUI0O0M0NTU7MTEwQSAxMTZEIDExQjQ7CitDNDU2O0M0NTY7MTEwQSAxMTZEIDExQjU7QzQ1NjsxMTBBIDExNkQgMTFCNTsKK0M0NTc7QzQ1NzsxMTBBIDExNkQgMTFCNjtDNDU3OzExMEEgMTE2RCAxMUI2OworQzQ1ODtDNDU4OzExMEEgMTE2RCAxMUI3O0M0NTg7MTEwQSAxMTZEIDExQjc7CitDNDU5O0M0NTk7MTEwQSAxMTZEIDExQjg7QzQ1OTsxMTBBIDExNkQgMTFCODsKK0M0NUE7QzQ1QTsxMTBBIDExNkQgMTFCOTtDNDVBOzExMEEgMTE2RCAxMUI5OworQzQ1QjtDNDVCOzExMEEgMTE2RCAxMUJBO0M0NUI7MTEwQSAxMTZEIDExQkE7CitDNDVDO0M0NUM7MTEwQSAxMTZEIDExQkI7QzQ1QzsxMTBBIDExNkQgMTFCQjsKK0M0NUQ7QzQ1RDsxMTBBIDExNkQgMTFCQztDNDVEOzExMEEgMTE2RCAxMUJDOworQzQ1RTtDNDVFOzExMEEgMTE2RCAxMUJEO0M0NUU7MTEwQSAxMTZEIDExQkQ7CitDNDVGO0M0NUY7MTEwQSAxMTZEIDExQkU7QzQ1RjsxMTBBIDExNkQgMTFCRTsKK0M0NjA7QzQ2MDsxMTBBIDExNkQgMTFCRjtDNDYwOzExMEEgMTE2RCAxMUJGOworQzQ2MTtDNDYxOzExMEEgMTE2RCAxMUMwO0M0NjE7MTEwQSAxMTZEIDExQzA7CitDNDYyO0M0NjI7MTEwQSAxMTZEIDExQzE7QzQ2MjsxMTBBIDExNkQgMTFDMTsKK0M0NjM7QzQ2MzsxMTBBIDExNkQgMTFDMjtDNDYzOzExMEEgMTE2RCAxMUMyOworQzQ2NDtDNDY0OzExMEEgMTE2RTtDNDY0OzExMEEgMTE2RTsKK0M0NjU7QzQ2NTsxMTBBIDExNkUgMTFBODtDNDY1OzExMEEgMTE2RSAxMUE4OworQzQ2NjtDNDY2OzExMEEgMTE2RSAxMUE5O0M0NjY7MTEwQSAxMTZFIDExQTk7CitDNDY3O0M0Njc7MTEwQSAxMTZFIDExQUE7QzQ2NzsxMTBBIDExNkUgMTFBQTsKK0M0Njg7QzQ2ODsxMTBBIDExNkUgMTFBQjtDNDY4OzExMEEgMTE2RSAxMUFCOworQzQ2OTtDNDY5OzExMEEgMTE2RSAxMUFDO0M0Njk7MTEwQSAxMTZFIDExQUM7CitDNDZBO0M0NkE7MTEwQSAxMTZFIDExQUQ7QzQ2QTsxMTBBIDExNkUgMTFBRDsKK0M0NkI7QzQ2QjsxMTBBIDExNkUgMTFBRTtDNDZCOzExMEEgMTE2RSAxMUFFOworQzQ2QztDNDZDOzExMEEgMTE2RSAxMUFGO0M0NkM7MTEwQSAxMTZFIDExQUY7CitDNDZEO0M0NkQ7MTEwQSAxMTZFIDExQjA7QzQ2RDsxMTBBIDExNkUgMTFCMDsKK0M0NkU7QzQ2RTsxMTBBIDExNkUgMTFCMTtDNDZFOzExMEEgMTE2RSAxMUIxOworQzQ2RjtDNDZGOzExMEEgMTE2RSAxMUIyO0M0NkY7MTEwQSAxMTZFIDExQjI7CitDNDcwO0M0NzA7MTEwQSAxMTZFIDExQjM7QzQ3MDsxMTBBIDExNkUgMTFCMzsKK0M0NzE7QzQ3MTsxMTBBIDExNkUgMTFCNDtDNDcxOzExMEEgMTE2RSAxMUI0OworQzQ3MjtDNDcyOzExMEEgMTE2RSAxMUI1O0M0NzI7MTEwQSAxMTZFIDExQjU7CitDNDczO0M0NzM7MTEwQSAxMTZFIDExQjY7QzQ3MzsxMTBBIDExNkUgMTFCNjsKK0M0NzQ7QzQ3NDsxMTBBIDExNkUgMTFCNztDNDc0OzExMEEgMTE2RSAxMUI3OworQzQ3NTtDNDc1OzExMEEgMTE2RSAxMUI4O0M0NzU7MTEwQSAxMTZFIDExQjg7CitDNDc2O0M0NzY7MTEwQSAxMTZFIDExQjk7QzQ3NjsxMTBBIDExNkUgMTFCOTsKK0M0Nzc7QzQ3NzsxMTBBIDExNkUgMTFCQTtDNDc3OzExMEEgMTE2RSAxMUJBOworQzQ3ODtDNDc4OzExMEEgMTE2RSAxMUJCO0M0Nzg7MTEwQSAxMTZFIDExQkI7CitDNDc5O0M0Nzk7MTEwQSAxMTZFIDExQkM7QzQ3OTsxMTBBIDExNkUgMTFCQzsKK0M0N0E7QzQ3QTsxMTBBIDExNkUgMTFCRDtDNDdBOzExMEEgMTE2RSAxMUJEOworQzQ3QjtDNDdCOzExMEEgMTE2RSAxMUJFO0M0N0I7MTEwQSAxMTZFIDExQkU7CitDNDdDO0M0N0M7MTEwQSAxMTZFIDExQkY7QzQ3QzsxMTBBIDExNkUgMTFCRjsKK0M0N0Q7QzQ3RDsxMTBBIDExNkUgMTFDMDtDNDdEOzExMEEgMTE2RSAxMUMwOworQzQ3RTtDNDdFOzExMEEgMTE2RSAxMUMxO0M0N0U7MTEwQSAxMTZFIDExQzE7CitDNDdGO0M0N0Y7MTEwQSAxMTZFIDExQzI7QzQ3RjsxMTBBIDExNkUgMTFDMjsKK0M0ODA7QzQ4MDsxMTBBIDExNkY7QzQ4MDsxMTBBIDExNkY7CitDNDgxO0M0ODE7MTEwQSAxMTZGIDExQTg7QzQ4MTsxMTBBIDExNkYgMTFBODsKK0M0ODI7QzQ4MjsxMTBBIDExNkYgMTFBOTtDNDgyOzExMEEgMTE2RiAxMUE5OworQzQ4MztDNDgzOzExMEEgMTE2RiAxMUFBO0M0ODM7MTEwQSAxMTZGIDExQUE7CitDNDg0O0M0ODQ7MTEwQSAxMTZGIDExQUI7QzQ4NDsxMTBBIDExNkYgMTFBQjsKK0M0ODU7QzQ4NTsxMTBBIDExNkYgMTFBQztDNDg1OzExMEEgMTE2RiAxMUFDOworQzQ4NjtDNDg2OzExMEEgMTE2RiAxMUFEO0M0ODY7MTEwQSAxMTZGIDExQUQ7CitDNDg3O0M0ODc7MTEwQSAxMTZGIDExQUU7QzQ4NzsxMTBBIDExNkYgMTFBRTsKK0M0ODg7QzQ4ODsxMTBBIDExNkYgMTFBRjtDNDg4OzExMEEgMTE2RiAxMUFGOworQzQ4OTtDNDg5OzExMEEgMTE2RiAxMUIwO0M0ODk7MTEwQSAxMTZGIDExQjA7CitDNDhBO0M0OEE7MTEwQSAxMTZGIDExQjE7QzQ4QTsxMTBBIDExNkYgMTFCMTsKK0M0OEI7QzQ4QjsxMTBBIDExNkYgMTFCMjtDNDhCOzExMEEgMTE2RiAxMUIyOworQzQ4QztDNDhDOzExMEEgMTE2RiAxMUIzO0M0OEM7MTEwQSAxMTZGIDExQjM7CitDNDhEO0M0OEQ7MTEwQSAxMTZGIDExQjQ7QzQ4RDsxMTBBIDExNkYgMTFCNDsKK0M0OEU7QzQ4RTsxMTBBIDExNkYgMTFCNTtDNDhFOzExMEEgMTE2RiAxMUI1OworQzQ4RjtDNDhGOzExMEEgMTE2RiAxMUI2O0M0OEY7MTEwQSAxMTZGIDExQjY7CitDNDkwO0M0OTA7MTEwQSAxMTZGIDExQjc7QzQ5MDsxMTBBIDExNkYgMTFCNzsKK0M0OTE7QzQ5MTsxMTBBIDExNkYgMTFCODtDNDkxOzExMEEgMTE2RiAxMUI4OworQzQ5MjtDNDkyOzExMEEgMTE2RiAxMUI5O0M0OTI7MTEwQSAxMTZGIDExQjk7CitDNDkzO0M0OTM7MTEwQSAxMTZGIDExQkE7QzQ5MzsxMTBBIDExNkYgMTFCQTsKK0M0OTQ7QzQ5NDsxMTBBIDExNkYgMTFCQjtDNDk0OzExMEEgMTE2RiAxMUJCOworQzQ5NTtDNDk1OzExMEEgMTE2RiAxMUJDO0M0OTU7MTEwQSAxMTZGIDExQkM7CitDNDk2O0M0OTY7MTEwQSAxMTZGIDExQkQ7QzQ5NjsxMTBBIDExNkYgMTFCRDsKK0M0OTc7QzQ5NzsxMTBBIDExNkYgMTFCRTtDNDk3OzExMEEgMTE2RiAxMUJFOworQzQ5ODtDNDk4OzExMEEgMTE2RiAxMUJGO0M0OTg7MTEwQSAxMTZGIDExQkY7CitDNDk5O0M0OTk7MTEwQSAxMTZGIDExQzA7QzQ5OTsxMTBBIDExNkYgMTFDMDsKK0M0OUE7QzQ5QTsxMTBBIDExNkYgMTFDMTtDNDlBOzExMEEgMTE2RiAxMUMxOworQzQ5QjtDNDlCOzExMEEgMTE2RiAxMUMyO0M0OUI7MTEwQSAxMTZGIDExQzI7CitDNDlDO0M0OUM7MTEwQSAxMTcwO0M0OUM7MTEwQSAxMTcwOworQzQ5RDtDNDlEOzExMEEgMTE3MCAxMUE4O0M0OUQ7MTEwQSAxMTcwIDExQTg7CitDNDlFO0M0OUU7MTEwQSAxMTcwIDExQTk7QzQ5RTsxMTBBIDExNzAgMTFBOTsKK0M0OUY7QzQ5RjsxMTBBIDExNzAgMTFBQTtDNDlGOzExMEEgMTE3MCAxMUFBOworQzRBMDtDNEEwOzExMEEgMTE3MCAxMUFCO0M0QTA7MTEwQSAxMTcwIDExQUI7CitDNEExO0M0QTE7MTEwQSAxMTcwIDExQUM7QzRBMTsxMTBBIDExNzAgMTFBQzsKK0M0QTI7QzRBMjsxMTBBIDExNzAgMTFBRDtDNEEyOzExMEEgMTE3MCAxMUFEOworQzRBMztDNEEzOzExMEEgMTE3MCAxMUFFO0M0QTM7MTEwQSAxMTcwIDExQUU7CitDNEE0O0M0QTQ7MTEwQSAxMTcwIDExQUY7QzRBNDsxMTBBIDExNzAgMTFBRjsKK0M0QTU7QzRBNTsxMTBBIDExNzAgMTFCMDtDNEE1OzExMEEgMTE3MCAxMUIwOworQzRBNjtDNEE2OzExMEEgMTE3MCAxMUIxO0M0QTY7MTEwQSAxMTcwIDExQjE7CitDNEE3O0M0QTc7MTEwQSAxMTcwIDExQjI7QzRBNzsxMTBBIDExNzAgMTFCMjsKK0M0QTg7QzRBODsxMTBBIDExNzAgMTFCMztDNEE4OzExMEEgMTE3MCAxMUIzOworQzRBOTtDNEE5OzExMEEgMTE3MCAxMUI0O0M0QTk7MTEwQSAxMTcwIDExQjQ7CitDNEFBO0M0QUE7MTEwQSAxMTcwIDExQjU7QzRBQTsxMTBBIDExNzAgMTFCNTsKK0M0QUI7QzRBQjsxMTBBIDExNzAgMTFCNjtDNEFCOzExMEEgMTE3MCAxMUI2OworQzRBQztDNEFDOzExMEEgMTE3MCAxMUI3O0M0QUM7MTEwQSAxMTcwIDExQjc7CitDNEFEO0M0QUQ7MTEwQSAxMTcwIDExQjg7QzRBRDsxMTBBIDExNzAgMTFCODsKK0M0QUU7QzRBRTsxMTBBIDExNzAgMTFCOTtDNEFFOzExMEEgMTE3MCAxMUI5OworQzRBRjtDNEFGOzExMEEgMTE3MCAxMUJBO0M0QUY7MTEwQSAxMTcwIDExQkE7CitDNEIwO0M0QjA7MTEwQSAxMTcwIDExQkI7QzRCMDsxMTBBIDExNzAgMTFCQjsKK0M0QjE7QzRCMTsxMTBBIDExNzAgMTFCQztDNEIxOzExMEEgMTE3MCAxMUJDOworQzRCMjtDNEIyOzExMEEgMTE3MCAxMUJEO0M0QjI7MTEwQSAxMTcwIDExQkQ7CitDNEIzO0M0QjM7MTEwQSAxMTcwIDExQkU7QzRCMzsxMTBBIDExNzAgMTFCRTsKK0M0QjQ7QzRCNDsxMTBBIDExNzAgMTFCRjtDNEI0OzExMEEgMTE3MCAxMUJGOworQzRCNTtDNEI1OzExMEEgMTE3MCAxMUMwO0M0QjU7MTEwQSAxMTcwIDExQzA7CitDNEI2O0M0QjY7MTEwQSAxMTcwIDExQzE7QzRCNjsxMTBBIDExNzAgMTFDMTsKK0M0Qjc7QzRCNzsxMTBBIDExNzAgMTFDMjtDNEI3OzExMEEgMTE3MCAxMUMyOworQzRCODtDNEI4OzExMEEgMTE3MTtDNEI4OzExMEEgMTE3MTsKK0M0Qjk7QzRCOTsxMTBBIDExNzEgMTFBODtDNEI5OzExMEEgMTE3MSAxMUE4OworQzRCQTtDNEJBOzExMEEgMTE3MSAxMUE5O0M0QkE7MTEwQSAxMTcxIDExQTk7CitDNEJCO0M0QkI7MTEwQSAxMTcxIDExQUE7QzRCQjsxMTBBIDExNzEgMTFBQTsKK0M0QkM7QzRCQzsxMTBBIDExNzEgMTFBQjtDNEJDOzExMEEgMTE3MSAxMUFCOworQzRCRDtDNEJEOzExMEEgMTE3MSAxMUFDO0M0QkQ7MTEwQSAxMTcxIDExQUM7CitDNEJFO0M0QkU7MTEwQSAxMTcxIDExQUQ7QzRCRTsxMTBBIDExNzEgMTFBRDsKK0M0QkY7QzRCRjsxMTBBIDExNzEgMTFBRTtDNEJGOzExMEEgMTE3MSAxMUFFOworQzRDMDtDNEMwOzExMEEgMTE3MSAxMUFGO0M0QzA7MTEwQSAxMTcxIDExQUY7CitDNEMxO0M0QzE7MTEwQSAxMTcxIDExQjA7QzRDMTsxMTBBIDExNzEgMTFCMDsKK0M0QzI7QzRDMjsxMTBBIDExNzEgMTFCMTtDNEMyOzExMEEgMTE3MSAxMUIxOworQzRDMztDNEMzOzExMEEgMTE3MSAxMUIyO0M0QzM7MTEwQSAxMTcxIDExQjI7CitDNEM0O0M0QzQ7MTEwQSAxMTcxIDExQjM7QzRDNDsxMTBBIDExNzEgMTFCMzsKK0M0QzU7QzRDNTsxMTBBIDExNzEgMTFCNDtDNEM1OzExMEEgMTE3MSAxMUI0OworQzRDNjtDNEM2OzExMEEgMTE3MSAxMUI1O0M0QzY7MTEwQSAxMTcxIDExQjU7CitDNEM3O0M0Qzc7MTEwQSAxMTcxIDExQjY7QzRDNzsxMTBBIDExNzEgMTFCNjsKK0M0Qzg7QzRDODsxMTBBIDExNzEgMTFCNztDNEM4OzExMEEgMTE3MSAxMUI3OworQzRDOTtDNEM5OzExMEEgMTE3MSAxMUI4O0M0Qzk7MTEwQSAxMTcxIDExQjg7CitDNENBO0M0Q0E7MTEwQSAxMTcxIDExQjk7QzRDQTsxMTBBIDExNzEgMTFCOTsKK0M0Q0I7QzRDQjsxMTBBIDExNzEgMTFCQTtDNENCOzExMEEgMTE3MSAxMUJBOworQzRDQztDNENDOzExMEEgMTE3MSAxMUJCO0M0Q0M7MTEwQSAxMTcxIDExQkI7CitDNENEO0M0Q0Q7MTEwQSAxMTcxIDExQkM7QzRDRDsxMTBBIDExNzEgMTFCQzsKK0M0Q0U7QzRDRTsxMTBBIDExNzEgMTFCRDtDNENFOzExMEEgMTE3MSAxMUJEOworQzRDRjtDNENGOzExMEEgMTE3MSAxMUJFO0M0Q0Y7MTEwQSAxMTcxIDExQkU7CitDNEQwO0M0RDA7MTEwQSAxMTcxIDExQkY7QzREMDsxMTBBIDExNzEgMTFCRjsKK0M0RDE7QzREMTsxMTBBIDExNzEgMTFDMDtDNEQxOzExMEEgMTE3MSAxMUMwOworQzREMjtDNEQyOzExMEEgMTE3MSAxMUMxO0M0RDI7MTEwQSAxMTcxIDExQzE7CitDNEQzO0M0RDM7MTEwQSAxMTcxIDExQzI7QzREMzsxMTBBIDExNzEgMTFDMjsKK0M0RDQ7QzRENDsxMTBBIDExNzI7QzRENDsxMTBBIDExNzI7CitDNEQ1O0M0RDU7MTEwQSAxMTcyIDExQTg7QzRENTsxMTBBIDExNzIgMTFBODsKK0M0RDY7QzRENjsxMTBBIDExNzIgMTFBOTtDNEQ2OzExMEEgMTE3MiAxMUE5OworQzRENztDNEQ3OzExMEEgMTE3MiAxMUFBO0M0RDc7MTEwQSAxMTcyIDExQUE7CitDNEQ4O0M0RDg7MTEwQSAxMTcyIDExQUI7QzREODsxMTBBIDExNzIgMTFBQjsKK0M0RDk7QzREOTsxMTBBIDExNzIgMTFBQztDNEQ5OzExMEEgMTE3MiAxMUFDOworQzREQTtDNERBOzExMEEgMTE3MiAxMUFEO0M0REE7MTEwQSAxMTcyIDExQUQ7CitDNERCO0M0REI7MTEwQSAxMTcyIDExQUU7QzREQjsxMTBBIDExNzIgMTFBRTsKK0M0REM7QzREQzsxMTBBIDExNzIgMTFBRjtDNERDOzExMEEgMTE3MiAxMUFGOworQzRERDtDNEREOzExMEEgMTE3MiAxMUIwO0M0REQ7MTEwQSAxMTcyIDExQjA7CitDNERFO0M0REU7MTEwQSAxMTcyIDExQjE7QzRERTsxMTBBIDExNzIgMTFCMTsKK0M0REY7QzRERjsxMTBBIDExNzIgMTFCMjtDNERGOzExMEEgMTE3MiAxMUIyOworQzRFMDtDNEUwOzExMEEgMTE3MiAxMUIzO0M0RTA7MTEwQSAxMTcyIDExQjM7CitDNEUxO0M0RTE7MTEwQSAxMTcyIDExQjQ7QzRFMTsxMTBBIDExNzIgMTFCNDsKK0M0RTI7QzRFMjsxMTBBIDExNzIgMTFCNTtDNEUyOzExMEEgMTE3MiAxMUI1OworQzRFMztDNEUzOzExMEEgMTE3MiAxMUI2O0M0RTM7MTEwQSAxMTcyIDExQjY7CitDNEU0O0M0RTQ7MTEwQSAxMTcyIDExQjc7QzRFNDsxMTBBIDExNzIgMTFCNzsKK0M0RTU7QzRFNTsxMTBBIDExNzIgMTFCODtDNEU1OzExMEEgMTE3MiAxMUI4OworQzRFNjtDNEU2OzExMEEgMTE3MiAxMUI5O0M0RTY7MTEwQSAxMTcyIDExQjk7CitDNEU3O0M0RTc7MTEwQSAxMTcyIDExQkE7QzRFNzsxMTBBIDExNzIgMTFCQTsKK0M0RTg7QzRFODsxMTBBIDExNzIgMTFCQjtDNEU4OzExMEEgMTE3MiAxMUJCOworQzRFOTtDNEU5OzExMEEgMTE3MiAxMUJDO0M0RTk7MTEwQSAxMTcyIDExQkM7CitDNEVBO0M0RUE7MTEwQSAxMTcyIDExQkQ7QzRFQTsxMTBBIDExNzIgMTFCRDsKK0M0RUI7QzRFQjsxMTBBIDExNzIgMTFCRTtDNEVCOzExMEEgMTE3MiAxMUJFOworQzRFQztDNEVDOzExMEEgMTE3MiAxMUJGO0M0RUM7MTEwQSAxMTcyIDExQkY7CitDNEVEO0M0RUQ7MTEwQSAxMTcyIDExQzA7QzRFRDsxMTBBIDExNzIgMTFDMDsKK0M0RUU7QzRFRTsxMTBBIDExNzIgMTFDMTtDNEVFOzExMEEgMTE3MiAxMUMxOworQzRFRjtDNEVGOzExMEEgMTE3MiAxMUMyO0M0RUY7MTEwQSAxMTcyIDExQzI7CitDNEYwO0M0RjA7MTEwQSAxMTczO0M0RjA7MTEwQSAxMTczOworQzRGMTtDNEYxOzExMEEgMTE3MyAxMUE4O0M0RjE7MTEwQSAxMTczIDExQTg7CitDNEYyO0M0RjI7MTEwQSAxMTczIDExQTk7QzRGMjsxMTBBIDExNzMgMTFBOTsKK0M0RjM7QzRGMzsxMTBBIDExNzMgMTFBQTtDNEYzOzExMEEgMTE3MyAxMUFBOworQzRGNDtDNEY0OzExMEEgMTE3MyAxMUFCO0M0RjQ7MTEwQSAxMTczIDExQUI7CitDNEY1O0M0RjU7MTEwQSAxMTczIDExQUM7QzRGNTsxMTBBIDExNzMgMTFBQzsKK0M0RjY7QzRGNjsxMTBBIDExNzMgMTFBRDtDNEY2OzExMEEgMTE3MyAxMUFEOworQzRGNztDNEY3OzExMEEgMTE3MyAxMUFFO0M0Rjc7MTEwQSAxMTczIDExQUU7CitDNEY4O0M0Rjg7MTEwQSAxMTczIDExQUY7QzRGODsxMTBBIDExNzMgMTFBRjsKK0M0Rjk7QzRGOTsxMTBBIDExNzMgMTFCMDtDNEY5OzExMEEgMTE3MyAxMUIwOworQzRGQTtDNEZBOzExMEEgMTE3MyAxMUIxO0M0RkE7MTEwQSAxMTczIDExQjE7CitDNEZCO0M0RkI7MTEwQSAxMTczIDExQjI7QzRGQjsxMTBBIDExNzMgMTFCMjsKK0M0RkM7QzRGQzsxMTBBIDExNzMgMTFCMztDNEZDOzExMEEgMTE3MyAxMUIzOworQzRGRDtDNEZEOzExMEEgMTE3MyAxMUI0O0M0RkQ7MTEwQSAxMTczIDExQjQ7CitDNEZFO0M0RkU7MTEwQSAxMTczIDExQjU7QzRGRTsxMTBBIDExNzMgMTFCNTsKK0M0RkY7QzRGRjsxMTBBIDExNzMgMTFCNjtDNEZGOzExMEEgMTE3MyAxMUI2OworQzUwMDtDNTAwOzExMEEgMTE3MyAxMUI3O0M1MDA7MTEwQSAxMTczIDExQjc7CitDNTAxO0M1MDE7MTEwQSAxMTczIDExQjg7QzUwMTsxMTBBIDExNzMgMTFCODsKK0M1MDI7QzUwMjsxMTBBIDExNzMgMTFCOTtDNTAyOzExMEEgMTE3MyAxMUI5OworQzUwMztDNTAzOzExMEEgMTE3MyAxMUJBO0M1MDM7MTEwQSAxMTczIDExQkE7CitDNTA0O0M1MDQ7MTEwQSAxMTczIDExQkI7QzUwNDsxMTBBIDExNzMgMTFCQjsKK0M1MDU7QzUwNTsxMTBBIDExNzMgMTFCQztDNTA1OzExMEEgMTE3MyAxMUJDOworQzUwNjtDNTA2OzExMEEgMTE3MyAxMUJEO0M1MDY7MTEwQSAxMTczIDExQkQ7CitDNTA3O0M1MDc7MTEwQSAxMTczIDExQkU7QzUwNzsxMTBBIDExNzMgMTFCRTsKK0M1MDg7QzUwODsxMTBBIDExNzMgMTFCRjtDNTA4OzExMEEgMTE3MyAxMUJGOworQzUwOTtDNTA5OzExMEEgMTE3MyAxMUMwO0M1MDk7MTEwQSAxMTczIDExQzA7CitDNTBBO0M1MEE7MTEwQSAxMTczIDExQzE7QzUwQTsxMTBBIDExNzMgMTFDMTsKK0M1MEI7QzUwQjsxMTBBIDExNzMgMTFDMjtDNTBCOzExMEEgMTE3MyAxMUMyOworQzUwQztDNTBDOzExMEEgMTE3NDtDNTBDOzExMEEgMTE3NDsKK0M1MEQ7QzUwRDsxMTBBIDExNzQgMTFBODtDNTBEOzExMEEgMTE3NCAxMUE4OworQzUwRTtDNTBFOzExMEEgMTE3NCAxMUE5O0M1MEU7MTEwQSAxMTc0IDExQTk7CitDNTBGO0M1MEY7MTEwQSAxMTc0IDExQUE7QzUwRjsxMTBBIDExNzQgMTFBQTsKK0M1MTA7QzUxMDsxMTBBIDExNzQgMTFBQjtDNTEwOzExMEEgMTE3NCAxMUFCOworQzUxMTtDNTExOzExMEEgMTE3NCAxMUFDO0M1MTE7MTEwQSAxMTc0IDExQUM7CitDNTEyO0M1MTI7MTEwQSAxMTc0IDExQUQ7QzUxMjsxMTBBIDExNzQgMTFBRDsKK0M1MTM7QzUxMzsxMTBBIDExNzQgMTFBRTtDNTEzOzExMEEgMTE3NCAxMUFFOworQzUxNDtDNTE0OzExMEEgMTE3NCAxMUFGO0M1MTQ7MTEwQSAxMTc0IDExQUY7CitDNTE1O0M1MTU7MTEwQSAxMTc0IDExQjA7QzUxNTsxMTBBIDExNzQgMTFCMDsKK0M1MTY7QzUxNjsxMTBBIDExNzQgMTFCMTtDNTE2OzExMEEgMTE3NCAxMUIxOworQzUxNztDNTE3OzExMEEgMTE3NCAxMUIyO0M1MTc7MTEwQSAxMTc0IDExQjI7CitDNTE4O0M1MTg7MTEwQSAxMTc0IDExQjM7QzUxODsxMTBBIDExNzQgMTFCMzsKK0M1MTk7QzUxOTsxMTBBIDExNzQgMTFCNDtDNTE5OzExMEEgMTE3NCAxMUI0OworQzUxQTtDNTFBOzExMEEgMTE3NCAxMUI1O0M1MUE7MTEwQSAxMTc0IDExQjU7CitDNTFCO0M1MUI7MTEwQSAxMTc0IDExQjY7QzUxQjsxMTBBIDExNzQgMTFCNjsKK0M1MUM7QzUxQzsxMTBBIDExNzQgMTFCNztDNTFDOzExMEEgMTE3NCAxMUI3OworQzUxRDtDNTFEOzExMEEgMTE3NCAxMUI4O0M1MUQ7MTEwQSAxMTc0IDExQjg7CitDNTFFO0M1MUU7MTEwQSAxMTc0IDExQjk7QzUxRTsxMTBBIDExNzQgMTFCOTsKK0M1MUY7QzUxRjsxMTBBIDExNzQgMTFCQTtDNTFGOzExMEEgMTE3NCAxMUJBOworQzUyMDtDNTIwOzExMEEgMTE3NCAxMUJCO0M1MjA7MTEwQSAxMTc0IDExQkI7CitDNTIxO0M1MjE7MTEwQSAxMTc0IDExQkM7QzUyMTsxMTBBIDExNzQgMTFCQzsKK0M1MjI7QzUyMjsxMTBBIDExNzQgMTFCRDtDNTIyOzExMEEgMTE3NCAxMUJEOworQzUyMztDNTIzOzExMEEgMTE3NCAxMUJFO0M1MjM7MTEwQSAxMTc0IDExQkU7CitDNTI0O0M1MjQ7MTEwQSAxMTc0IDExQkY7QzUyNDsxMTBBIDExNzQgMTFCRjsKK0M1MjU7QzUyNTsxMTBBIDExNzQgMTFDMDtDNTI1OzExMEEgMTE3NCAxMUMwOworQzUyNjtDNTI2OzExMEEgMTE3NCAxMUMxO0M1MjY7MTEwQSAxMTc0IDExQzE7CitDNTI3O0M1Mjc7MTEwQSAxMTc0IDExQzI7QzUyNzsxMTBBIDExNzQgMTFDMjsKK0M1Mjg7QzUyODsxMTBBIDExNzU7QzUyODsxMTBBIDExNzU7CitDNTI5O0M1Mjk7MTEwQSAxMTc1IDExQTg7QzUyOTsxMTBBIDExNzUgMTFBODsKK0M1MkE7QzUyQTsxMTBBIDExNzUgMTFBOTtDNTJBOzExMEEgMTE3NSAxMUE5OworQzUyQjtDNTJCOzExMEEgMTE3NSAxMUFBO0M1MkI7MTEwQSAxMTc1IDExQUE7CitDNTJDO0M1MkM7MTEwQSAxMTc1IDExQUI7QzUyQzsxMTBBIDExNzUgMTFBQjsKK0M1MkQ7QzUyRDsxMTBBIDExNzUgMTFBQztDNTJEOzExMEEgMTE3NSAxMUFDOworQzUyRTtDNTJFOzExMEEgMTE3NSAxMUFEO0M1MkU7MTEwQSAxMTc1IDExQUQ7CitDNTJGO0M1MkY7MTEwQSAxMTc1IDExQUU7QzUyRjsxMTBBIDExNzUgMTFBRTsKK0M1MzA7QzUzMDsxMTBBIDExNzUgMTFBRjtDNTMwOzExMEEgMTE3NSAxMUFGOworQzUzMTtDNTMxOzExMEEgMTE3NSAxMUIwO0M1MzE7MTEwQSAxMTc1IDExQjA7CitDNTMyO0M1MzI7MTEwQSAxMTc1IDExQjE7QzUzMjsxMTBBIDExNzUgMTFCMTsKK0M1MzM7QzUzMzsxMTBBIDExNzUgMTFCMjtDNTMzOzExMEEgMTE3NSAxMUIyOworQzUzNDtDNTM0OzExMEEgMTE3NSAxMUIzO0M1MzQ7MTEwQSAxMTc1IDExQjM7CitDNTM1O0M1MzU7MTEwQSAxMTc1IDExQjQ7QzUzNTsxMTBBIDExNzUgMTFCNDsKK0M1MzY7QzUzNjsxMTBBIDExNzUgMTFCNTtDNTM2OzExMEEgMTE3NSAxMUI1OworQzUzNztDNTM3OzExMEEgMTE3NSAxMUI2O0M1Mzc7MTEwQSAxMTc1IDExQjY7CitDNTM4O0M1Mzg7MTEwQSAxMTc1IDExQjc7QzUzODsxMTBBIDExNzUgMTFCNzsKK0M1Mzk7QzUzOTsxMTBBIDExNzUgMTFCODtDNTM5OzExMEEgMTE3NSAxMUI4OworQzUzQTtDNTNBOzExMEEgMTE3NSAxMUI5O0M1M0E7MTEwQSAxMTc1IDExQjk7CitDNTNCO0M1M0I7MTEwQSAxMTc1IDExQkE7QzUzQjsxMTBBIDExNzUgMTFCQTsKK0M1M0M7QzUzQzsxMTBBIDExNzUgMTFCQjtDNTNDOzExMEEgMTE3NSAxMUJCOworQzUzRDtDNTNEOzExMEEgMTE3NSAxMUJDO0M1M0Q7MTEwQSAxMTc1IDExQkM7CitDNTNFO0M1M0U7MTEwQSAxMTc1IDExQkQ7QzUzRTsxMTBBIDExNzUgMTFCRDsKK0M1M0Y7QzUzRjsxMTBBIDExNzUgMTFCRTtDNTNGOzExMEEgMTE3NSAxMUJFOworQzU0MDtDNTQwOzExMEEgMTE3NSAxMUJGO0M1NDA7MTEwQSAxMTc1IDExQkY7CitDNTQxO0M1NDE7MTEwQSAxMTc1IDExQzA7QzU0MTsxMTBBIDExNzUgMTFDMDsKK0M1NDI7QzU0MjsxMTBBIDExNzUgMTFDMTtDNTQyOzExMEEgMTE3NSAxMUMxOworQzU0MztDNTQzOzExMEEgMTE3NSAxMUMyO0M1NDM7MTEwQSAxMTc1IDExQzI7CitDNTQ0O0M1NDQ7MTEwQiAxMTYxO0M1NDQ7MTEwQiAxMTYxOworQzU0NTtDNTQ1OzExMEIgMTE2MSAxMUE4O0M1NDU7MTEwQiAxMTYxIDExQTg7CitDNTQ2O0M1NDY7MTEwQiAxMTYxIDExQTk7QzU0NjsxMTBCIDExNjEgMTFBOTsKK0M1NDc7QzU0NzsxMTBCIDExNjEgMTFBQTtDNTQ3OzExMEIgMTE2MSAxMUFBOworQzU0ODtDNTQ4OzExMEIgMTE2MSAxMUFCO0M1NDg7MTEwQiAxMTYxIDExQUI7CitDNTQ5O0M1NDk7MTEwQiAxMTYxIDExQUM7QzU0OTsxMTBCIDExNjEgMTFBQzsKK0M1NEE7QzU0QTsxMTBCIDExNjEgMTFBRDtDNTRBOzExMEIgMTE2MSAxMUFEOworQzU0QjtDNTRCOzExMEIgMTE2MSAxMUFFO0M1NEI7MTEwQiAxMTYxIDExQUU7CitDNTRDO0M1NEM7MTEwQiAxMTYxIDExQUY7QzU0QzsxMTBCIDExNjEgMTFBRjsKK0M1NEQ7QzU0RDsxMTBCIDExNjEgMTFCMDtDNTREOzExMEIgMTE2MSAxMUIwOworQzU0RTtDNTRFOzExMEIgMTE2MSAxMUIxO0M1NEU7MTEwQiAxMTYxIDExQjE7CitDNTRGO0M1NEY7MTEwQiAxMTYxIDExQjI7QzU0RjsxMTBCIDExNjEgMTFCMjsKK0M1NTA7QzU1MDsxMTBCIDExNjEgMTFCMztDNTUwOzExMEIgMTE2MSAxMUIzOworQzU1MTtDNTUxOzExMEIgMTE2MSAxMUI0O0M1NTE7MTEwQiAxMTYxIDExQjQ7CitDNTUyO0M1NTI7MTEwQiAxMTYxIDExQjU7QzU1MjsxMTBCIDExNjEgMTFCNTsKK0M1NTM7QzU1MzsxMTBCIDExNjEgMTFCNjtDNTUzOzExMEIgMTE2MSAxMUI2OworQzU1NDtDNTU0OzExMEIgMTE2MSAxMUI3O0M1NTQ7MTEwQiAxMTYxIDExQjc7CitDNTU1O0M1NTU7MTEwQiAxMTYxIDExQjg7QzU1NTsxMTBCIDExNjEgMTFCODsKK0M1NTY7QzU1NjsxMTBCIDExNjEgMTFCOTtDNTU2OzExMEIgMTE2MSAxMUI5OworQzU1NztDNTU3OzExMEIgMTE2MSAxMUJBO0M1NTc7MTEwQiAxMTYxIDExQkE7CitDNTU4O0M1NTg7MTEwQiAxMTYxIDExQkI7QzU1ODsxMTBCIDExNjEgMTFCQjsKK0M1NTk7QzU1OTsxMTBCIDExNjEgMTFCQztDNTU5OzExMEIgMTE2MSAxMUJDOworQzU1QTtDNTVBOzExMEIgMTE2MSAxMUJEO0M1NUE7MTEwQiAxMTYxIDExQkQ7CitDNTVCO0M1NUI7MTEwQiAxMTYxIDExQkU7QzU1QjsxMTBCIDExNjEgMTFCRTsKK0M1NUM7QzU1QzsxMTBCIDExNjEgMTFCRjtDNTVDOzExMEIgMTE2MSAxMUJGOworQzU1RDtDNTVEOzExMEIgMTE2MSAxMUMwO0M1NUQ7MTEwQiAxMTYxIDExQzA7CitDNTVFO0M1NUU7MTEwQiAxMTYxIDExQzE7QzU1RTsxMTBCIDExNjEgMTFDMTsKK0M1NUY7QzU1RjsxMTBCIDExNjEgMTFDMjtDNTVGOzExMEIgMTE2MSAxMUMyOworQzU2MDtDNTYwOzExMEIgMTE2MjtDNTYwOzExMEIgMTE2MjsKK0M1NjE7QzU2MTsxMTBCIDExNjIgMTFBODtDNTYxOzExMEIgMTE2MiAxMUE4OworQzU2MjtDNTYyOzExMEIgMTE2MiAxMUE5O0M1NjI7MTEwQiAxMTYyIDExQTk7CitDNTYzO0M1NjM7MTEwQiAxMTYyIDExQUE7QzU2MzsxMTBCIDExNjIgMTFBQTsKK0M1NjQ7QzU2NDsxMTBCIDExNjIgMTFBQjtDNTY0OzExMEIgMTE2MiAxMUFCOworQzU2NTtDNTY1OzExMEIgMTE2MiAxMUFDO0M1NjU7MTEwQiAxMTYyIDExQUM7CitDNTY2O0M1NjY7MTEwQiAxMTYyIDExQUQ7QzU2NjsxMTBCIDExNjIgMTFBRDsKK0M1Njc7QzU2NzsxMTBCIDExNjIgMTFBRTtDNTY3OzExMEIgMTE2MiAxMUFFOworQzU2ODtDNTY4OzExMEIgMTE2MiAxMUFGO0M1Njg7MTEwQiAxMTYyIDExQUY7CitDNTY5O0M1Njk7MTEwQiAxMTYyIDExQjA7QzU2OTsxMTBCIDExNjIgMTFCMDsKK0M1NkE7QzU2QTsxMTBCIDExNjIgMTFCMTtDNTZBOzExMEIgMTE2MiAxMUIxOworQzU2QjtDNTZCOzExMEIgMTE2MiAxMUIyO0M1NkI7MTEwQiAxMTYyIDExQjI7CitDNTZDO0M1NkM7MTEwQiAxMTYyIDExQjM7QzU2QzsxMTBCIDExNjIgMTFCMzsKK0M1NkQ7QzU2RDsxMTBCIDExNjIgMTFCNDtDNTZEOzExMEIgMTE2MiAxMUI0OworQzU2RTtDNTZFOzExMEIgMTE2MiAxMUI1O0M1NkU7MTEwQiAxMTYyIDExQjU7CitDNTZGO0M1NkY7MTEwQiAxMTYyIDExQjY7QzU2RjsxMTBCIDExNjIgMTFCNjsKK0M1NzA7QzU3MDsxMTBCIDExNjIgMTFCNztDNTcwOzExMEIgMTE2MiAxMUI3OworQzU3MTtDNTcxOzExMEIgMTE2MiAxMUI4O0M1NzE7MTEwQiAxMTYyIDExQjg7CitDNTcyO0M1NzI7MTEwQiAxMTYyIDExQjk7QzU3MjsxMTBCIDExNjIgMTFCOTsKK0M1NzM7QzU3MzsxMTBCIDExNjIgMTFCQTtDNTczOzExMEIgMTE2MiAxMUJBOworQzU3NDtDNTc0OzExMEIgMTE2MiAxMUJCO0M1NzQ7MTEwQiAxMTYyIDExQkI7CitDNTc1O0M1NzU7MTEwQiAxMTYyIDExQkM7QzU3NTsxMTBCIDExNjIgMTFCQzsKK0M1NzY7QzU3NjsxMTBCIDExNjIgMTFCRDtDNTc2OzExMEIgMTE2MiAxMUJEOworQzU3NztDNTc3OzExMEIgMTE2MiAxMUJFO0M1Nzc7MTEwQiAxMTYyIDExQkU7CitDNTc4O0M1Nzg7MTEwQiAxMTYyIDExQkY7QzU3ODsxMTBCIDExNjIgMTFCRjsKK0M1Nzk7QzU3OTsxMTBCIDExNjIgMTFDMDtDNTc5OzExMEIgMTE2MiAxMUMwOworQzU3QTtDNTdBOzExMEIgMTE2MiAxMUMxO0M1N0E7MTEwQiAxMTYyIDExQzE7CitDNTdCO0M1N0I7MTEwQiAxMTYyIDExQzI7QzU3QjsxMTBCIDExNjIgMTFDMjsKK0M1N0M7QzU3QzsxMTBCIDExNjM7QzU3QzsxMTBCIDExNjM7CitDNTdEO0M1N0Q7MTEwQiAxMTYzIDExQTg7QzU3RDsxMTBCIDExNjMgMTFBODsKK0M1N0U7QzU3RTsxMTBCIDExNjMgMTFBOTtDNTdFOzExMEIgMTE2MyAxMUE5OworQzU3RjtDNTdGOzExMEIgMTE2MyAxMUFBO0M1N0Y7MTEwQiAxMTYzIDExQUE7CitDNTgwO0M1ODA7MTEwQiAxMTYzIDExQUI7QzU4MDsxMTBCIDExNjMgMTFBQjsKK0M1ODE7QzU4MTsxMTBCIDExNjMgMTFBQztDNTgxOzExMEIgMTE2MyAxMUFDOworQzU4MjtDNTgyOzExMEIgMTE2MyAxMUFEO0M1ODI7MTEwQiAxMTYzIDExQUQ7CitDNTgzO0M1ODM7MTEwQiAxMTYzIDExQUU7QzU4MzsxMTBCIDExNjMgMTFBRTsKK0M1ODQ7QzU4NDsxMTBCIDExNjMgMTFBRjtDNTg0OzExMEIgMTE2MyAxMUFGOworQzU4NTtDNTg1OzExMEIgMTE2MyAxMUIwO0M1ODU7MTEwQiAxMTYzIDExQjA7CitDNTg2O0M1ODY7MTEwQiAxMTYzIDExQjE7QzU4NjsxMTBCIDExNjMgMTFCMTsKK0M1ODc7QzU4NzsxMTBCIDExNjMgMTFCMjtDNTg3OzExMEIgMTE2MyAxMUIyOworQzU4ODtDNTg4OzExMEIgMTE2MyAxMUIzO0M1ODg7MTEwQiAxMTYzIDExQjM7CitDNTg5O0M1ODk7MTEwQiAxMTYzIDExQjQ7QzU4OTsxMTBCIDExNjMgMTFCNDsKK0M1OEE7QzU4QTsxMTBCIDExNjMgMTFCNTtDNThBOzExMEIgMTE2MyAxMUI1OworQzU4QjtDNThCOzExMEIgMTE2MyAxMUI2O0M1OEI7MTEwQiAxMTYzIDExQjY7CitDNThDO0M1OEM7MTEwQiAxMTYzIDExQjc7QzU4QzsxMTBCIDExNjMgMTFCNzsKK0M1OEQ7QzU4RDsxMTBCIDExNjMgMTFCODtDNThEOzExMEIgMTE2MyAxMUI4OworQzU4RTtDNThFOzExMEIgMTE2MyAxMUI5O0M1OEU7MTEwQiAxMTYzIDExQjk7CitDNThGO0M1OEY7MTEwQiAxMTYzIDExQkE7QzU4RjsxMTBCIDExNjMgMTFCQTsKK0M1OTA7QzU5MDsxMTBCIDExNjMgMTFCQjtDNTkwOzExMEIgMTE2MyAxMUJCOworQzU5MTtDNTkxOzExMEIgMTE2MyAxMUJDO0M1OTE7MTEwQiAxMTYzIDExQkM7CitDNTkyO0M1OTI7MTEwQiAxMTYzIDExQkQ7QzU5MjsxMTBCIDExNjMgMTFCRDsKK0M1OTM7QzU5MzsxMTBCIDExNjMgMTFCRTtDNTkzOzExMEIgMTE2MyAxMUJFOworQzU5NDtDNTk0OzExMEIgMTE2MyAxMUJGO0M1OTQ7MTEwQiAxMTYzIDExQkY7CitDNTk1O0M1OTU7MTEwQiAxMTYzIDExQzA7QzU5NTsxMTBCIDExNjMgMTFDMDsKK0M1OTY7QzU5NjsxMTBCIDExNjMgMTFDMTtDNTk2OzExMEIgMTE2MyAxMUMxOworQzU5NztDNTk3OzExMEIgMTE2MyAxMUMyO0M1OTc7MTEwQiAxMTYzIDExQzI7CitDNTk4O0M1OTg7MTEwQiAxMTY0O0M1OTg7MTEwQiAxMTY0OworQzU5OTtDNTk5OzExMEIgMTE2NCAxMUE4O0M1OTk7MTEwQiAxMTY0IDExQTg7CitDNTlBO0M1OUE7MTEwQiAxMTY0IDExQTk7QzU5QTsxMTBCIDExNjQgMTFBOTsKK0M1OUI7QzU5QjsxMTBCIDExNjQgMTFBQTtDNTlCOzExMEIgMTE2NCAxMUFBOworQzU5QztDNTlDOzExMEIgMTE2NCAxMUFCO0M1OUM7MTEwQiAxMTY0IDExQUI7CitDNTlEO0M1OUQ7MTEwQiAxMTY0IDExQUM7QzU5RDsxMTBCIDExNjQgMTFBQzsKK0M1OUU7QzU5RTsxMTBCIDExNjQgMTFBRDtDNTlFOzExMEIgMTE2NCAxMUFEOworQzU5RjtDNTlGOzExMEIgMTE2NCAxMUFFO0M1OUY7MTEwQiAxMTY0IDExQUU7CitDNUEwO0M1QTA7MTEwQiAxMTY0IDExQUY7QzVBMDsxMTBCIDExNjQgMTFBRjsKK0M1QTE7QzVBMTsxMTBCIDExNjQgMTFCMDtDNUExOzExMEIgMTE2NCAxMUIwOworQzVBMjtDNUEyOzExMEIgMTE2NCAxMUIxO0M1QTI7MTEwQiAxMTY0IDExQjE7CitDNUEzO0M1QTM7MTEwQiAxMTY0IDExQjI7QzVBMzsxMTBCIDExNjQgMTFCMjsKK0M1QTQ7QzVBNDsxMTBCIDExNjQgMTFCMztDNUE0OzExMEIgMTE2NCAxMUIzOworQzVBNTtDNUE1OzExMEIgMTE2NCAxMUI0O0M1QTU7MTEwQiAxMTY0IDExQjQ7CitDNUE2O0M1QTY7MTEwQiAxMTY0IDExQjU7QzVBNjsxMTBCIDExNjQgMTFCNTsKK0M1QTc7QzVBNzsxMTBCIDExNjQgMTFCNjtDNUE3OzExMEIgMTE2NCAxMUI2OworQzVBODtDNUE4OzExMEIgMTE2NCAxMUI3O0M1QTg7MTEwQiAxMTY0IDExQjc7CitDNUE5O0M1QTk7MTEwQiAxMTY0IDExQjg7QzVBOTsxMTBCIDExNjQgMTFCODsKK0M1QUE7QzVBQTsxMTBCIDExNjQgMTFCOTtDNUFBOzExMEIgMTE2NCAxMUI5OworQzVBQjtDNUFCOzExMEIgMTE2NCAxMUJBO0M1QUI7MTEwQiAxMTY0IDExQkE7CitDNUFDO0M1QUM7MTEwQiAxMTY0IDExQkI7QzVBQzsxMTBCIDExNjQgMTFCQjsKK0M1QUQ7QzVBRDsxMTBCIDExNjQgMTFCQztDNUFEOzExMEIgMTE2NCAxMUJDOworQzVBRTtDNUFFOzExMEIgMTE2NCAxMUJEO0M1QUU7MTEwQiAxMTY0IDExQkQ7CitDNUFGO0M1QUY7MTEwQiAxMTY0IDExQkU7QzVBRjsxMTBCIDExNjQgMTFCRTsKK0M1QjA7QzVCMDsxMTBCIDExNjQgMTFCRjtDNUIwOzExMEIgMTE2NCAxMUJGOworQzVCMTtDNUIxOzExMEIgMTE2NCAxMUMwO0M1QjE7MTEwQiAxMTY0IDExQzA7CitDNUIyO0M1QjI7MTEwQiAxMTY0IDExQzE7QzVCMjsxMTBCIDExNjQgMTFDMTsKK0M1QjM7QzVCMzsxMTBCIDExNjQgMTFDMjtDNUIzOzExMEIgMTE2NCAxMUMyOworQzVCNDtDNUI0OzExMEIgMTE2NTtDNUI0OzExMEIgMTE2NTsKK0M1QjU7QzVCNTsxMTBCIDExNjUgMTFBODtDNUI1OzExMEIgMTE2NSAxMUE4OworQzVCNjtDNUI2OzExMEIgMTE2NSAxMUE5O0M1QjY7MTEwQiAxMTY1IDExQTk7CitDNUI3O0M1Qjc7MTEwQiAxMTY1IDExQUE7QzVCNzsxMTBCIDExNjUgMTFBQTsKK0M1Qjg7QzVCODsxMTBCIDExNjUgMTFBQjtDNUI4OzExMEIgMTE2NSAxMUFCOworQzVCOTtDNUI5OzExMEIgMTE2NSAxMUFDO0M1Qjk7MTEwQiAxMTY1IDExQUM7CitDNUJBO0M1QkE7MTEwQiAxMTY1IDExQUQ7QzVCQTsxMTBCIDExNjUgMTFBRDsKK0M1QkI7QzVCQjsxMTBCIDExNjUgMTFBRTtDNUJCOzExMEIgMTE2NSAxMUFFOworQzVCQztDNUJDOzExMEIgMTE2NSAxMUFGO0M1QkM7MTEwQiAxMTY1IDExQUY7CitDNUJEO0M1QkQ7MTEwQiAxMTY1IDExQjA7QzVCRDsxMTBCIDExNjUgMTFCMDsKK0M1QkU7QzVCRTsxMTBCIDExNjUgMTFCMTtDNUJFOzExMEIgMTE2NSAxMUIxOworQzVCRjtDNUJGOzExMEIgMTE2NSAxMUIyO0M1QkY7MTEwQiAxMTY1IDExQjI7CitDNUMwO0M1QzA7MTEwQiAxMTY1IDExQjM7QzVDMDsxMTBCIDExNjUgMTFCMzsKK0M1QzE7QzVDMTsxMTBCIDExNjUgMTFCNDtDNUMxOzExMEIgMTE2NSAxMUI0OworQzVDMjtDNUMyOzExMEIgMTE2NSAxMUI1O0M1QzI7MTEwQiAxMTY1IDExQjU7CitDNUMzO0M1QzM7MTEwQiAxMTY1IDExQjY7QzVDMzsxMTBCIDExNjUgMTFCNjsKK0M1QzQ7QzVDNDsxMTBCIDExNjUgMTFCNztDNUM0OzExMEIgMTE2NSAxMUI3OworQzVDNTtDNUM1OzExMEIgMTE2NSAxMUI4O0M1QzU7MTEwQiAxMTY1IDExQjg7CitDNUM2O0M1QzY7MTEwQiAxMTY1IDExQjk7QzVDNjsxMTBCIDExNjUgMTFCOTsKK0M1Qzc7QzVDNzsxMTBCIDExNjUgMTFCQTtDNUM3OzExMEIgMTE2NSAxMUJBOworQzVDODtDNUM4OzExMEIgMTE2NSAxMUJCO0M1Qzg7MTEwQiAxMTY1IDExQkI7CitDNUM5O0M1Qzk7MTEwQiAxMTY1IDExQkM7QzVDOTsxMTBCIDExNjUgMTFCQzsKK0M1Q0E7QzVDQTsxMTBCIDExNjUgMTFCRDtDNUNBOzExMEIgMTE2NSAxMUJEOworQzVDQjtDNUNCOzExMEIgMTE2NSAxMUJFO0M1Q0I7MTEwQiAxMTY1IDExQkU7CitDNUNDO0M1Q0M7MTEwQiAxMTY1IDExQkY7QzVDQzsxMTBCIDExNjUgMTFCRjsKK0M1Q0Q7QzVDRDsxMTBCIDExNjUgMTFDMDtDNUNEOzExMEIgMTE2NSAxMUMwOworQzVDRTtDNUNFOzExMEIgMTE2NSAxMUMxO0M1Q0U7MTEwQiAxMTY1IDExQzE7CitDNUNGO0M1Q0Y7MTEwQiAxMTY1IDExQzI7QzVDRjsxMTBCIDExNjUgMTFDMjsKK0M1RDA7QzVEMDsxMTBCIDExNjY7QzVEMDsxMTBCIDExNjY7CitDNUQxO0M1RDE7MTEwQiAxMTY2IDExQTg7QzVEMTsxMTBCIDExNjYgMTFBODsKK0M1RDI7QzVEMjsxMTBCIDExNjYgMTFBOTtDNUQyOzExMEIgMTE2NiAxMUE5OworQzVEMztDNUQzOzExMEIgMTE2NiAxMUFBO0M1RDM7MTEwQiAxMTY2IDExQUE7CitDNUQ0O0M1RDQ7MTEwQiAxMTY2IDExQUI7QzVENDsxMTBCIDExNjYgMTFBQjsKK0M1RDU7QzVENTsxMTBCIDExNjYgMTFBQztDNUQ1OzExMEIgMTE2NiAxMUFDOworQzVENjtDNUQ2OzExMEIgMTE2NiAxMUFEO0M1RDY7MTEwQiAxMTY2IDExQUQ7CitDNUQ3O0M1RDc7MTEwQiAxMTY2IDExQUU7QzVENzsxMTBCIDExNjYgMTFBRTsKK0M1RDg7QzVEODsxMTBCIDExNjYgMTFBRjtDNUQ4OzExMEIgMTE2NiAxMUFGOworQzVEOTtDNUQ5OzExMEIgMTE2NiAxMUIwO0M1RDk7MTEwQiAxMTY2IDExQjA7CitDNURBO0M1REE7MTEwQiAxMTY2IDExQjE7QzVEQTsxMTBCIDExNjYgMTFCMTsKK0M1REI7QzVEQjsxMTBCIDExNjYgMTFCMjtDNURCOzExMEIgMTE2NiAxMUIyOworQzVEQztDNURDOzExMEIgMTE2NiAxMUIzO0M1REM7MTEwQiAxMTY2IDExQjM7CitDNUREO0M1REQ7MTEwQiAxMTY2IDExQjQ7QzVERDsxMTBCIDExNjYgMTFCNDsKK0M1REU7QzVERTsxMTBCIDExNjYgMTFCNTtDNURFOzExMEIgMTE2NiAxMUI1OworQzVERjtDNURGOzExMEIgMTE2NiAxMUI2O0M1REY7MTEwQiAxMTY2IDExQjY7CitDNUUwO0M1RTA7MTEwQiAxMTY2IDExQjc7QzVFMDsxMTBCIDExNjYgMTFCNzsKK0M1RTE7QzVFMTsxMTBCIDExNjYgMTFCODtDNUUxOzExMEIgMTE2NiAxMUI4OworQzVFMjtDNUUyOzExMEIgMTE2NiAxMUI5O0M1RTI7MTEwQiAxMTY2IDExQjk7CitDNUUzO0M1RTM7MTEwQiAxMTY2IDExQkE7QzVFMzsxMTBCIDExNjYgMTFCQTsKK0M1RTQ7QzVFNDsxMTBCIDExNjYgMTFCQjtDNUU0OzExMEIgMTE2NiAxMUJCOworQzVFNTtDNUU1OzExMEIgMTE2NiAxMUJDO0M1RTU7MTEwQiAxMTY2IDExQkM7CitDNUU2O0M1RTY7MTEwQiAxMTY2IDExQkQ7QzVFNjsxMTBCIDExNjYgMTFCRDsKK0M1RTc7QzVFNzsxMTBCIDExNjYgMTFCRTtDNUU3OzExMEIgMTE2NiAxMUJFOworQzVFODtDNUU4OzExMEIgMTE2NiAxMUJGO0M1RTg7MTEwQiAxMTY2IDExQkY7CitDNUU5O0M1RTk7MTEwQiAxMTY2IDExQzA7QzVFOTsxMTBCIDExNjYgMTFDMDsKK0M1RUE7QzVFQTsxMTBCIDExNjYgMTFDMTtDNUVBOzExMEIgMTE2NiAxMUMxOworQzVFQjtDNUVCOzExMEIgMTE2NiAxMUMyO0M1RUI7MTEwQiAxMTY2IDExQzI7CitDNUVDO0M1RUM7MTEwQiAxMTY3O0M1RUM7MTEwQiAxMTY3OworQzVFRDtDNUVEOzExMEIgMTE2NyAxMUE4O0M1RUQ7MTEwQiAxMTY3IDExQTg7CitDNUVFO0M1RUU7MTEwQiAxMTY3IDExQTk7QzVFRTsxMTBCIDExNjcgMTFBOTsKK0M1RUY7QzVFRjsxMTBCIDExNjcgMTFBQTtDNUVGOzExMEIgMTE2NyAxMUFBOworQzVGMDtDNUYwOzExMEIgMTE2NyAxMUFCO0M1RjA7MTEwQiAxMTY3IDExQUI7CitDNUYxO0M1RjE7MTEwQiAxMTY3IDExQUM7QzVGMTsxMTBCIDExNjcgMTFBQzsKK0M1RjI7QzVGMjsxMTBCIDExNjcgMTFBRDtDNUYyOzExMEIgMTE2NyAxMUFEOworQzVGMztDNUYzOzExMEIgMTE2NyAxMUFFO0M1RjM7MTEwQiAxMTY3IDExQUU7CitDNUY0O0M1RjQ7MTEwQiAxMTY3IDExQUY7QzVGNDsxMTBCIDExNjcgMTFBRjsKK0M1RjU7QzVGNTsxMTBCIDExNjcgMTFCMDtDNUY1OzExMEIgMTE2NyAxMUIwOworQzVGNjtDNUY2OzExMEIgMTE2NyAxMUIxO0M1RjY7MTEwQiAxMTY3IDExQjE7CitDNUY3O0M1Rjc7MTEwQiAxMTY3IDExQjI7QzVGNzsxMTBCIDExNjcgMTFCMjsKK0M1Rjg7QzVGODsxMTBCIDExNjcgMTFCMztDNUY4OzExMEIgMTE2NyAxMUIzOworQzVGOTtDNUY5OzExMEIgMTE2NyAxMUI0O0M1Rjk7MTEwQiAxMTY3IDExQjQ7CitDNUZBO0M1RkE7MTEwQiAxMTY3IDExQjU7QzVGQTsxMTBCIDExNjcgMTFCNTsKK0M1RkI7QzVGQjsxMTBCIDExNjcgMTFCNjtDNUZCOzExMEIgMTE2NyAxMUI2OworQzVGQztDNUZDOzExMEIgMTE2NyAxMUI3O0M1RkM7MTEwQiAxMTY3IDExQjc7CitDNUZEO0M1RkQ7MTEwQiAxMTY3IDExQjg7QzVGRDsxMTBCIDExNjcgMTFCODsKK0M1RkU7QzVGRTsxMTBCIDExNjcgMTFCOTtDNUZFOzExMEIgMTE2NyAxMUI5OworQzVGRjtDNUZGOzExMEIgMTE2NyAxMUJBO0M1RkY7MTEwQiAxMTY3IDExQkE7CitDNjAwO0M2MDA7MTEwQiAxMTY3IDExQkI7QzYwMDsxMTBCIDExNjcgMTFCQjsKK0M2MDE7QzYwMTsxMTBCIDExNjcgMTFCQztDNjAxOzExMEIgMTE2NyAxMUJDOworQzYwMjtDNjAyOzExMEIgMTE2NyAxMUJEO0M2MDI7MTEwQiAxMTY3IDExQkQ7CitDNjAzO0M2MDM7MTEwQiAxMTY3IDExQkU7QzYwMzsxMTBCIDExNjcgMTFCRTsKK0M2MDQ7QzYwNDsxMTBCIDExNjcgMTFCRjtDNjA0OzExMEIgMTE2NyAxMUJGOworQzYwNTtDNjA1OzExMEIgMTE2NyAxMUMwO0M2MDU7MTEwQiAxMTY3IDExQzA7CitDNjA2O0M2MDY7MTEwQiAxMTY3IDExQzE7QzYwNjsxMTBCIDExNjcgMTFDMTsKK0M2MDc7QzYwNzsxMTBCIDExNjcgMTFDMjtDNjA3OzExMEIgMTE2NyAxMUMyOworQzYwODtDNjA4OzExMEIgMTE2ODtDNjA4OzExMEIgMTE2ODsKK0M2MDk7QzYwOTsxMTBCIDExNjggMTFBODtDNjA5OzExMEIgMTE2OCAxMUE4OworQzYwQTtDNjBBOzExMEIgMTE2OCAxMUE5O0M2MEE7MTEwQiAxMTY4IDExQTk7CitDNjBCO0M2MEI7MTEwQiAxMTY4IDExQUE7QzYwQjsxMTBCIDExNjggMTFBQTsKK0M2MEM7QzYwQzsxMTBCIDExNjggMTFBQjtDNjBDOzExMEIgMTE2OCAxMUFCOworQzYwRDtDNjBEOzExMEIgMTE2OCAxMUFDO0M2MEQ7MTEwQiAxMTY4IDExQUM7CitDNjBFO0M2MEU7MTEwQiAxMTY4IDExQUQ7QzYwRTsxMTBCIDExNjggMTFBRDsKK0M2MEY7QzYwRjsxMTBCIDExNjggMTFBRTtDNjBGOzExMEIgMTE2OCAxMUFFOworQzYxMDtDNjEwOzExMEIgMTE2OCAxMUFGO0M2MTA7MTEwQiAxMTY4IDExQUY7CitDNjExO0M2MTE7MTEwQiAxMTY4IDExQjA7QzYxMTsxMTBCIDExNjggMTFCMDsKK0M2MTI7QzYxMjsxMTBCIDExNjggMTFCMTtDNjEyOzExMEIgMTE2OCAxMUIxOworQzYxMztDNjEzOzExMEIgMTE2OCAxMUIyO0M2MTM7MTEwQiAxMTY4IDExQjI7CitDNjE0O0M2MTQ7MTEwQiAxMTY4IDExQjM7QzYxNDsxMTBCIDExNjggMTFCMzsKK0M2MTU7QzYxNTsxMTBCIDExNjggMTFCNDtDNjE1OzExMEIgMTE2OCAxMUI0OworQzYxNjtDNjE2OzExMEIgMTE2OCAxMUI1O0M2MTY7MTEwQiAxMTY4IDExQjU7CitDNjE3O0M2MTc7MTEwQiAxMTY4IDExQjY7QzYxNzsxMTBCIDExNjggMTFCNjsKK0M2MTg7QzYxODsxMTBCIDExNjggMTFCNztDNjE4OzExMEIgMTE2OCAxMUI3OworQzYxOTtDNjE5OzExMEIgMTE2OCAxMUI4O0M2MTk7MTEwQiAxMTY4IDExQjg7CitDNjFBO0M2MUE7MTEwQiAxMTY4IDExQjk7QzYxQTsxMTBCIDExNjggMTFCOTsKK0M2MUI7QzYxQjsxMTBCIDExNjggMTFCQTtDNjFCOzExMEIgMTE2OCAxMUJBOworQzYxQztDNjFDOzExMEIgMTE2OCAxMUJCO0M2MUM7MTEwQiAxMTY4IDExQkI7CitDNjFEO0M2MUQ7MTEwQiAxMTY4IDExQkM7QzYxRDsxMTBCIDExNjggMTFCQzsKK0M2MUU7QzYxRTsxMTBCIDExNjggMTFCRDtDNjFFOzExMEIgMTE2OCAxMUJEOworQzYxRjtDNjFGOzExMEIgMTE2OCAxMUJFO0M2MUY7MTEwQiAxMTY4IDExQkU7CitDNjIwO0M2MjA7MTEwQiAxMTY4IDExQkY7QzYyMDsxMTBCIDExNjggMTFCRjsKK0M2MjE7QzYyMTsxMTBCIDExNjggMTFDMDtDNjIxOzExMEIgMTE2OCAxMUMwOworQzYyMjtDNjIyOzExMEIgMTE2OCAxMUMxO0M2MjI7MTEwQiAxMTY4IDExQzE7CitDNjIzO0M2MjM7MTEwQiAxMTY4IDExQzI7QzYyMzsxMTBCIDExNjggMTFDMjsKK0M2MjQ7QzYyNDsxMTBCIDExNjk7QzYyNDsxMTBCIDExNjk7CitDNjI1O0M2MjU7MTEwQiAxMTY5IDExQTg7QzYyNTsxMTBCIDExNjkgMTFBODsKK0M2MjY7QzYyNjsxMTBCIDExNjkgMTFBOTtDNjI2OzExMEIgMTE2OSAxMUE5OworQzYyNztDNjI3OzExMEIgMTE2OSAxMUFBO0M2Mjc7MTEwQiAxMTY5IDExQUE7CitDNjI4O0M2Mjg7MTEwQiAxMTY5IDExQUI7QzYyODsxMTBCIDExNjkgMTFBQjsKK0M2Mjk7QzYyOTsxMTBCIDExNjkgMTFBQztDNjI5OzExMEIgMTE2OSAxMUFDOworQzYyQTtDNjJBOzExMEIgMTE2OSAxMUFEO0M2MkE7MTEwQiAxMTY5IDExQUQ7CitDNjJCO0M2MkI7MTEwQiAxMTY5IDExQUU7QzYyQjsxMTBCIDExNjkgMTFBRTsKK0M2MkM7QzYyQzsxMTBCIDExNjkgMTFBRjtDNjJDOzExMEIgMTE2OSAxMUFGOworQzYyRDtDNjJEOzExMEIgMTE2OSAxMUIwO0M2MkQ7MTEwQiAxMTY5IDExQjA7CitDNjJFO0M2MkU7MTEwQiAxMTY5IDExQjE7QzYyRTsxMTBCIDExNjkgMTFCMTsKK0M2MkY7QzYyRjsxMTBCIDExNjkgMTFCMjtDNjJGOzExMEIgMTE2OSAxMUIyOworQzYzMDtDNjMwOzExMEIgMTE2OSAxMUIzO0M2MzA7MTEwQiAxMTY5IDExQjM7CitDNjMxO0M2MzE7MTEwQiAxMTY5IDExQjQ7QzYzMTsxMTBCIDExNjkgMTFCNDsKK0M2MzI7QzYzMjsxMTBCIDExNjkgMTFCNTtDNjMyOzExMEIgMTE2OSAxMUI1OworQzYzMztDNjMzOzExMEIgMTE2OSAxMUI2O0M2MzM7MTEwQiAxMTY5IDExQjY7CitDNjM0O0M2MzQ7MTEwQiAxMTY5IDExQjc7QzYzNDsxMTBCIDExNjkgMTFCNzsKK0M2MzU7QzYzNTsxMTBCIDExNjkgMTFCODtDNjM1OzExMEIgMTE2OSAxMUI4OworQzYzNjtDNjM2OzExMEIgMTE2OSAxMUI5O0M2MzY7MTEwQiAxMTY5IDExQjk7CitDNjM3O0M2Mzc7MTEwQiAxMTY5IDExQkE7QzYzNzsxMTBCIDExNjkgMTFCQTsKK0M2Mzg7QzYzODsxMTBCIDExNjkgMTFCQjtDNjM4OzExMEIgMTE2OSAxMUJCOworQzYzOTtDNjM5OzExMEIgMTE2OSAxMUJDO0M2Mzk7MTEwQiAxMTY5IDExQkM7CitDNjNBO0M2M0E7MTEwQiAxMTY5IDExQkQ7QzYzQTsxMTBCIDExNjkgMTFCRDsKK0M2M0I7QzYzQjsxMTBCIDExNjkgMTFCRTtDNjNCOzExMEIgMTE2OSAxMUJFOworQzYzQztDNjNDOzExMEIgMTE2OSAxMUJGO0M2M0M7MTEwQiAxMTY5IDExQkY7CitDNjNEO0M2M0Q7MTEwQiAxMTY5IDExQzA7QzYzRDsxMTBCIDExNjkgMTFDMDsKK0M2M0U7QzYzRTsxMTBCIDExNjkgMTFDMTtDNjNFOzExMEIgMTE2OSAxMUMxOworQzYzRjtDNjNGOzExMEIgMTE2OSAxMUMyO0M2M0Y7MTEwQiAxMTY5IDExQzI7CitDNjQwO0M2NDA7MTEwQiAxMTZBO0M2NDA7MTEwQiAxMTZBOworQzY0MTtDNjQxOzExMEIgMTE2QSAxMUE4O0M2NDE7MTEwQiAxMTZBIDExQTg7CitDNjQyO0M2NDI7MTEwQiAxMTZBIDExQTk7QzY0MjsxMTBCIDExNkEgMTFBOTsKK0M2NDM7QzY0MzsxMTBCIDExNkEgMTFBQTtDNjQzOzExMEIgMTE2QSAxMUFBOworQzY0NDtDNjQ0OzExMEIgMTE2QSAxMUFCO0M2NDQ7MTEwQiAxMTZBIDExQUI7CitDNjQ1O0M2NDU7MTEwQiAxMTZBIDExQUM7QzY0NTsxMTBCIDExNkEgMTFBQzsKK0M2NDY7QzY0NjsxMTBCIDExNkEgMTFBRDtDNjQ2OzExMEIgMTE2QSAxMUFEOworQzY0NztDNjQ3OzExMEIgMTE2QSAxMUFFO0M2NDc7MTEwQiAxMTZBIDExQUU7CitDNjQ4O0M2NDg7MTEwQiAxMTZBIDExQUY7QzY0ODsxMTBCIDExNkEgMTFBRjsKK0M2NDk7QzY0OTsxMTBCIDExNkEgMTFCMDtDNjQ5OzExMEIgMTE2QSAxMUIwOworQzY0QTtDNjRBOzExMEIgMTE2QSAxMUIxO0M2NEE7MTEwQiAxMTZBIDExQjE7CitDNjRCO0M2NEI7MTEwQiAxMTZBIDExQjI7QzY0QjsxMTBCIDExNkEgMTFCMjsKK0M2NEM7QzY0QzsxMTBCIDExNkEgMTFCMztDNjRDOzExMEIgMTE2QSAxMUIzOworQzY0RDtDNjREOzExMEIgMTE2QSAxMUI0O0M2NEQ7MTEwQiAxMTZBIDExQjQ7CitDNjRFO0M2NEU7MTEwQiAxMTZBIDExQjU7QzY0RTsxMTBCIDExNkEgMTFCNTsKK0M2NEY7QzY0RjsxMTBCIDExNkEgMTFCNjtDNjRGOzExMEIgMTE2QSAxMUI2OworQzY1MDtDNjUwOzExMEIgMTE2QSAxMUI3O0M2NTA7MTEwQiAxMTZBIDExQjc7CitDNjUxO0M2NTE7MTEwQiAxMTZBIDExQjg7QzY1MTsxMTBCIDExNkEgMTFCODsKK0M2NTI7QzY1MjsxMTBCIDExNkEgMTFCOTtDNjUyOzExMEIgMTE2QSAxMUI5OworQzY1MztDNjUzOzExMEIgMTE2QSAxMUJBO0M2NTM7MTEwQiAxMTZBIDExQkE7CitDNjU0O0M2NTQ7MTEwQiAxMTZBIDExQkI7QzY1NDsxMTBCIDExNkEgMTFCQjsKK0M2NTU7QzY1NTsxMTBCIDExNkEgMTFCQztDNjU1OzExMEIgMTE2QSAxMUJDOworQzY1NjtDNjU2OzExMEIgMTE2QSAxMUJEO0M2NTY7MTEwQiAxMTZBIDExQkQ7CitDNjU3O0M2NTc7MTEwQiAxMTZBIDExQkU7QzY1NzsxMTBCIDExNkEgMTFCRTsKK0M2NTg7QzY1ODsxMTBCIDExNkEgMTFCRjtDNjU4OzExMEIgMTE2QSAxMUJGOworQzY1OTtDNjU5OzExMEIgMTE2QSAxMUMwO0M2NTk7MTEwQiAxMTZBIDExQzA7CitDNjVBO0M2NUE7MTEwQiAxMTZBIDExQzE7QzY1QTsxMTBCIDExNkEgMTFDMTsKK0M2NUI7QzY1QjsxMTBCIDExNkEgMTFDMjtDNjVCOzExMEIgMTE2QSAxMUMyOworQzY1QztDNjVDOzExMEIgMTE2QjtDNjVDOzExMEIgMTE2QjsKK0M2NUQ7QzY1RDsxMTBCIDExNkIgMTFBODtDNjVEOzExMEIgMTE2QiAxMUE4OworQzY1RTtDNjVFOzExMEIgMTE2QiAxMUE5O0M2NUU7MTEwQiAxMTZCIDExQTk7CitDNjVGO0M2NUY7MTEwQiAxMTZCIDExQUE7QzY1RjsxMTBCIDExNkIgMTFBQTsKK0M2NjA7QzY2MDsxMTBCIDExNkIgMTFBQjtDNjYwOzExMEIgMTE2QiAxMUFCOworQzY2MTtDNjYxOzExMEIgMTE2QiAxMUFDO0M2NjE7MTEwQiAxMTZCIDExQUM7CitDNjYyO0M2NjI7MTEwQiAxMTZCIDExQUQ7QzY2MjsxMTBCIDExNkIgMTFBRDsKK0M2NjM7QzY2MzsxMTBCIDExNkIgMTFBRTtDNjYzOzExMEIgMTE2QiAxMUFFOworQzY2NDtDNjY0OzExMEIgMTE2QiAxMUFGO0M2NjQ7MTEwQiAxMTZCIDExQUY7CitDNjY1O0M2NjU7MTEwQiAxMTZCIDExQjA7QzY2NTsxMTBCIDExNkIgMTFCMDsKK0M2NjY7QzY2NjsxMTBCIDExNkIgMTFCMTtDNjY2OzExMEIgMTE2QiAxMUIxOworQzY2NztDNjY3OzExMEIgMTE2QiAxMUIyO0M2Njc7MTEwQiAxMTZCIDExQjI7CitDNjY4O0M2Njg7MTEwQiAxMTZCIDExQjM7QzY2ODsxMTBCIDExNkIgMTFCMzsKK0M2Njk7QzY2OTsxMTBCIDExNkIgMTFCNDtDNjY5OzExMEIgMTE2QiAxMUI0OworQzY2QTtDNjZBOzExMEIgMTE2QiAxMUI1O0M2NkE7MTEwQiAxMTZCIDExQjU7CitDNjZCO0M2NkI7MTEwQiAxMTZCIDExQjY7QzY2QjsxMTBCIDExNkIgMTFCNjsKK0M2NkM7QzY2QzsxMTBCIDExNkIgMTFCNztDNjZDOzExMEIgMTE2QiAxMUI3OworQzY2RDtDNjZEOzExMEIgMTE2QiAxMUI4O0M2NkQ7MTEwQiAxMTZCIDExQjg7CitDNjZFO0M2NkU7MTEwQiAxMTZCIDExQjk7QzY2RTsxMTBCIDExNkIgMTFCOTsKK0M2NkY7QzY2RjsxMTBCIDExNkIgMTFCQTtDNjZGOzExMEIgMTE2QiAxMUJBOworQzY3MDtDNjcwOzExMEIgMTE2QiAxMUJCO0M2NzA7MTEwQiAxMTZCIDExQkI7CitDNjcxO0M2NzE7MTEwQiAxMTZCIDExQkM7QzY3MTsxMTBCIDExNkIgMTFCQzsKK0M2NzI7QzY3MjsxMTBCIDExNkIgMTFCRDtDNjcyOzExMEIgMTE2QiAxMUJEOworQzY3MztDNjczOzExMEIgMTE2QiAxMUJFO0M2NzM7MTEwQiAxMTZCIDExQkU7CitDNjc0O0M2NzQ7MTEwQiAxMTZCIDExQkY7QzY3NDsxMTBCIDExNkIgMTFCRjsKK0M2NzU7QzY3NTsxMTBCIDExNkIgMTFDMDtDNjc1OzExMEIgMTE2QiAxMUMwOworQzY3NjtDNjc2OzExMEIgMTE2QiAxMUMxO0M2NzY7MTEwQiAxMTZCIDExQzE7CitDNjc3O0M2Nzc7MTEwQiAxMTZCIDExQzI7QzY3NzsxMTBCIDExNkIgMTFDMjsKK0M2Nzg7QzY3ODsxMTBCIDExNkM7QzY3ODsxMTBCIDExNkM7CitDNjc5O0M2Nzk7MTEwQiAxMTZDIDExQTg7QzY3OTsxMTBCIDExNkMgMTFBODsKK0M2N0E7QzY3QTsxMTBCIDExNkMgMTFBOTtDNjdBOzExMEIgMTE2QyAxMUE5OworQzY3QjtDNjdCOzExMEIgMTE2QyAxMUFBO0M2N0I7MTEwQiAxMTZDIDExQUE7CitDNjdDO0M2N0M7MTEwQiAxMTZDIDExQUI7QzY3QzsxMTBCIDExNkMgMTFBQjsKK0M2N0Q7QzY3RDsxMTBCIDExNkMgMTFBQztDNjdEOzExMEIgMTE2QyAxMUFDOworQzY3RTtDNjdFOzExMEIgMTE2QyAxMUFEO0M2N0U7MTEwQiAxMTZDIDExQUQ7CitDNjdGO0M2N0Y7MTEwQiAxMTZDIDExQUU7QzY3RjsxMTBCIDExNkMgMTFBRTsKK0M2ODA7QzY4MDsxMTBCIDExNkMgMTFBRjtDNjgwOzExMEIgMTE2QyAxMUFGOworQzY4MTtDNjgxOzExMEIgMTE2QyAxMUIwO0M2ODE7MTEwQiAxMTZDIDExQjA7CitDNjgyO0M2ODI7MTEwQiAxMTZDIDExQjE7QzY4MjsxMTBCIDExNkMgMTFCMTsKK0M2ODM7QzY4MzsxMTBCIDExNkMgMTFCMjtDNjgzOzExMEIgMTE2QyAxMUIyOworQzY4NDtDNjg0OzExMEIgMTE2QyAxMUIzO0M2ODQ7MTEwQiAxMTZDIDExQjM7CitDNjg1O0M2ODU7MTEwQiAxMTZDIDExQjQ7QzY4NTsxMTBCIDExNkMgMTFCNDsKK0M2ODY7QzY4NjsxMTBCIDExNkMgMTFCNTtDNjg2OzExMEIgMTE2QyAxMUI1OworQzY4NztDNjg3OzExMEIgMTE2QyAxMUI2O0M2ODc7MTEwQiAxMTZDIDExQjY7CitDNjg4O0M2ODg7MTEwQiAxMTZDIDExQjc7QzY4ODsxMTBCIDExNkMgMTFCNzsKK0M2ODk7QzY4OTsxMTBCIDExNkMgMTFCODtDNjg5OzExMEIgMTE2QyAxMUI4OworQzY4QTtDNjhBOzExMEIgMTE2QyAxMUI5O0M2OEE7MTEwQiAxMTZDIDExQjk7CitDNjhCO0M2OEI7MTEwQiAxMTZDIDExQkE7QzY4QjsxMTBCIDExNkMgMTFCQTsKK0M2OEM7QzY4QzsxMTBCIDExNkMgMTFCQjtDNjhDOzExMEIgMTE2QyAxMUJCOworQzY4RDtDNjhEOzExMEIgMTE2QyAxMUJDO0M2OEQ7MTEwQiAxMTZDIDExQkM7CitDNjhFO0M2OEU7MTEwQiAxMTZDIDExQkQ7QzY4RTsxMTBCIDExNkMgMTFCRDsKK0M2OEY7QzY4RjsxMTBCIDExNkMgMTFCRTtDNjhGOzExMEIgMTE2QyAxMUJFOworQzY5MDtDNjkwOzExMEIgMTE2QyAxMUJGO0M2OTA7MTEwQiAxMTZDIDExQkY7CitDNjkxO0M2OTE7MTEwQiAxMTZDIDExQzA7QzY5MTsxMTBCIDExNkMgMTFDMDsKK0M2OTI7QzY5MjsxMTBCIDExNkMgMTFDMTtDNjkyOzExMEIgMTE2QyAxMUMxOworQzY5MztDNjkzOzExMEIgMTE2QyAxMUMyO0M2OTM7MTEwQiAxMTZDIDExQzI7CitDNjk0O0M2OTQ7MTEwQiAxMTZEO0M2OTQ7MTEwQiAxMTZEOworQzY5NTtDNjk1OzExMEIgMTE2RCAxMUE4O0M2OTU7MTEwQiAxMTZEIDExQTg7CitDNjk2O0M2OTY7MTEwQiAxMTZEIDExQTk7QzY5NjsxMTBCIDExNkQgMTFBOTsKK0M2OTc7QzY5NzsxMTBCIDExNkQgMTFBQTtDNjk3OzExMEIgMTE2RCAxMUFBOworQzY5ODtDNjk4OzExMEIgMTE2RCAxMUFCO0M2OTg7MTEwQiAxMTZEIDExQUI7CitDNjk5O0M2OTk7MTEwQiAxMTZEIDExQUM7QzY5OTsxMTBCIDExNkQgMTFBQzsKK0M2OUE7QzY5QTsxMTBCIDExNkQgMTFBRDtDNjlBOzExMEIgMTE2RCAxMUFEOworQzY5QjtDNjlCOzExMEIgMTE2RCAxMUFFO0M2OUI7MTEwQiAxMTZEIDExQUU7CitDNjlDO0M2OUM7MTEwQiAxMTZEIDExQUY7QzY5QzsxMTBCIDExNkQgMTFBRjsKK0M2OUQ7QzY5RDsxMTBCIDExNkQgMTFCMDtDNjlEOzExMEIgMTE2RCAxMUIwOworQzY5RTtDNjlFOzExMEIgMTE2RCAxMUIxO0M2OUU7MTEwQiAxMTZEIDExQjE7CitDNjlGO0M2OUY7MTEwQiAxMTZEIDExQjI7QzY5RjsxMTBCIDExNkQgMTFCMjsKK0M2QTA7QzZBMDsxMTBCIDExNkQgMTFCMztDNkEwOzExMEIgMTE2RCAxMUIzOworQzZBMTtDNkExOzExMEIgMTE2RCAxMUI0O0M2QTE7MTEwQiAxMTZEIDExQjQ7CitDNkEyO0M2QTI7MTEwQiAxMTZEIDExQjU7QzZBMjsxMTBCIDExNkQgMTFCNTsKK0M2QTM7QzZBMzsxMTBCIDExNkQgMTFCNjtDNkEzOzExMEIgMTE2RCAxMUI2OworQzZBNDtDNkE0OzExMEIgMTE2RCAxMUI3O0M2QTQ7MTEwQiAxMTZEIDExQjc7CitDNkE1O0M2QTU7MTEwQiAxMTZEIDExQjg7QzZBNTsxMTBCIDExNkQgMTFCODsKK0M2QTY7QzZBNjsxMTBCIDExNkQgMTFCOTtDNkE2OzExMEIgMTE2RCAxMUI5OworQzZBNztDNkE3OzExMEIgMTE2RCAxMUJBO0M2QTc7MTEwQiAxMTZEIDExQkE7CitDNkE4O0M2QTg7MTEwQiAxMTZEIDExQkI7QzZBODsxMTBCIDExNkQgMTFCQjsKK0M2QTk7QzZBOTsxMTBCIDExNkQgMTFCQztDNkE5OzExMEIgMTE2RCAxMUJDOworQzZBQTtDNkFBOzExMEIgMTE2RCAxMUJEO0M2QUE7MTEwQiAxMTZEIDExQkQ7CitDNkFCO0M2QUI7MTEwQiAxMTZEIDExQkU7QzZBQjsxMTBCIDExNkQgMTFCRTsKK0M2QUM7QzZBQzsxMTBCIDExNkQgMTFCRjtDNkFDOzExMEIgMTE2RCAxMUJGOworQzZBRDtDNkFEOzExMEIgMTE2RCAxMUMwO0M2QUQ7MTEwQiAxMTZEIDExQzA7CitDNkFFO0M2QUU7MTEwQiAxMTZEIDExQzE7QzZBRTsxMTBCIDExNkQgMTFDMTsKK0M2QUY7QzZBRjsxMTBCIDExNkQgMTFDMjtDNkFGOzExMEIgMTE2RCAxMUMyOworQzZCMDtDNkIwOzExMEIgMTE2RTtDNkIwOzExMEIgMTE2RTsKK0M2QjE7QzZCMTsxMTBCIDExNkUgMTFBODtDNkIxOzExMEIgMTE2RSAxMUE4OworQzZCMjtDNkIyOzExMEIgMTE2RSAxMUE5O0M2QjI7MTEwQiAxMTZFIDExQTk7CitDNkIzO0M2QjM7MTEwQiAxMTZFIDExQUE7QzZCMzsxMTBCIDExNkUgMTFBQTsKK0M2QjQ7QzZCNDsxMTBCIDExNkUgMTFBQjtDNkI0OzExMEIgMTE2RSAxMUFCOworQzZCNTtDNkI1OzExMEIgMTE2RSAxMUFDO0M2QjU7MTEwQiAxMTZFIDExQUM7CitDNkI2O0M2QjY7MTEwQiAxMTZFIDExQUQ7QzZCNjsxMTBCIDExNkUgMTFBRDsKK0M2Qjc7QzZCNzsxMTBCIDExNkUgMTFBRTtDNkI3OzExMEIgMTE2RSAxMUFFOworQzZCODtDNkI4OzExMEIgMTE2RSAxMUFGO0M2Qjg7MTEwQiAxMTZFIDExQUY7CitDNkI5O0M2Qjk7MTEwQiAxMTZFIDExQjA7QzZCOTsxMTBCIDExNkUgMTFCMDsKK0M2QkE7QzZCQTsxMTBCIDExNkUgMTFCMTtDNkJBOzExMEIgMTE2RSAxMUIxOworQzZCQjtDNkJCOzExMEIgMTE2RSAxMUIyO0M2QkI7MTEwQiAxMTZFIDExQjI7CitDNkJDO0M2QkM7MTEwQiAxMTZFIDExQjM7QzZCQzsxMTBCIDExNkUgMTFCMzsKK0M2QkQ7QzZCRDsxMTBCIDExNkUgMTFCNDtDNkJEOzExMEIgMTE2RSAxMUI0OworQzZCRTtDNkJFOzExMEIgMTE2RSAxMUI1O0M2QkU7MTEwQiAxMTZFIDExQjU7CitDNkJGO0M2QkY7MTEwQiAxMTZFIDExQjY7QzZCRjsxMTBCIDExNkUgMTFCNjsKK0M2QzA7QzZDMDsxMTBCIDExNkUgMTFCNztDNkMwOzExMEIgMTE2RSAxMUI3OworQzZDMTtDNkMxOzExMEIgMTE2RSAxMUI4O0M2QzE7MTEwQiAxMTZFIDExQjg7CitDNkMyO0M2QzI7MTEwQiAxMTZFIDExQjk7QzZDMjsxMTBCIDExNkUgMTFCOTsKK0M2QzM7QzZDMzsxMTBCIDExNkUgMTFCQTtDNkMzOzExMEIgMTE2RSAxMUJBOworQzZDNDtDNkM0OzExMEIgMTE2RSAxMUJCO0M2QzQ7MTEwQiAxMTZFIDExQkI7CitDNkM1O0M2QzU7MTEwQiAxMTZFIDExQkM7QzZDNTsxMTBCIDExNkUgMTFCQzsKK0M2QzY7QzZDNjsxMTBCIDExNkUgMTFCRDtDNkM2OzExMEIgMTE2RSAxMUJEOworQzZDNztDNkM3OzExMEIgMTE2RSAxMUJFO0M2Qzc7MTEwQiAxMTZFIDExQkU7CitDNkM4O0M2Qzg7MTEwQiAxMTZFIDExQkY7QzZDODsxMTBCIDExNkUgMTFCRjsKK0M2Qzk7QzZDOTsxMTBCIDExNkUgMTFDMDtDNkM5OzExMEIgMTE2RSAxMUMwOworQzZDQTtDNkNBOzExMEIgMTE2RSAxMUMxO0M2Q0E7MTEwQiAxMTZFIDExQzE7CitDNkNCO0M2Q0I7MTEwQiAxMTZFIDExQzI7QzZDQjsxMTBCIDExNkUgMTFDMjsKK0M2Q0M7QzZDQzsxMTBCIDExNkY7QzZDQzsxMTBCIDExNkY7CitDNkNEO0M2Q0Q7MTEwQiAxMTZGIDExQTg7QzZDRDsxMTBCIDExNkYgMTFBODsKK0M2Q0U7QzZDRTsxMTBCIDExNkYgMTFBOTtDNkNFOzExMEIgMTE2RiAxMUE5OworQzZDRjtDNkNGOzExMEIgMTE2RiAxMUFBO0M2Q0Y7MTEwQiAxMTZGIDExQUE7CitDNkQwO0M2RDA7MTEwQiAxMTZGIDExQUI7QzZEMDsxMTBCIDExNkYgMTFBQjsKK0M2RDE7QzZEMTsxMTBCIDExNkYgMTFBQztDNkQxOzExMEIgMTE2RiAxMUFDOworQzZEMjtDNkQyOzExMEIgMTE2RiAxMUFEO0M2RDI7MTEwQiAxMTZGIDExQUQ7CitDNkQzO0M2RDM7MTEwQiAxMTZGIDExQUU7QzZEMzsxMTBCIDExNkYgMTFBRTsKK0M2RDQ7QzZENDsxMTBCIDExNkYgMTFBRjtDNkQ0OzExMEIgMTE2RiAxMUFGOworQzZENTtDNkQ1OzExMEIgMTE2RiAxMUIwO0M2RDU7MTEwQiAxMTZGIDExQjA7CitDNkQ2O0M2RDY7MTEwQiAxMTZGIDExQjE7QzZENjsxMTBCIDExNkYgMTFCMTsKK0M2RDc7QzZENzsxMTBCIDExNkYgMTFCMjtDNkQ3OzExMEIgMTE2RiAxMUIyOworQzZEODtDNkQ4OzExMEIgMTE2RiAxMUIzO0M2RDg7MTEwQiAxMTZGIDExQjM7CitDNkQ5O0M2RDk7MTEwQiAxMTZGIDExQjQ7QzZEOTsxMTBCIDExNkYgMTFCNDsKK0M2REE7QzZEQTsxMTBCIDExNkYgMTFCNTtDNkRBOzExMEIgMTE2RiAxMUI1OworQzZEQjtDNkRCOzExMEIgMTE2RiAxMUI2O0M2REI7MTEwQiAxMTZGIDExQjY7CitDNkRDO0M2REM7MTEwQiAxMTZGIDExQjc7QzZEQzsxMTBCIDExNkYgMTFCNzsKK0M2REQ7QzZERDsxMTBCIDExNkYgMTFCODtDNkREOzExMEIgMTE2RiAxMUI4OworQzZERTtDNkRFOzExMEIgMTE2RiAxMUI5O0M2REU7MTEwQiAxMTZGIDExQjk7CitDNkRGO0M2REY7MTEwQiAxMTZGIDExQkE7QzZERjsxMTBCIDExNkYgMTFCQTsKK0M2RTA7QzZFMDsxMTBCIDExNkYgMTFCQjtDNkUwOzExMEIgMTE2RiAxMUJCOworQzZFMTtDNkUxOzExMEIgMTE2RiAxMUJDO0M2RTE7MTEwQiAxMTZGIDExQkM7CitDNkUyO0M2RTI7MTEwQiAxMTZGIDExQkQ7QzZFMjsxMTBCIDExNkYgMTFCRDsKK0M2RTM7QzZFMzsxMTBCIDExNkYgMTFCRTtDNkUzOzExMEIgMTE2RiAxMUJFOworQzZFNDtDNkU0OzExMEIgMTE2RiAxMUJGO0M2RTQ7MTEwQiAxMTZGIDExQkY7CitDNkU1O0M2RTU7MTEwQiAxMTZGIDExQzA7QzZFNTsxMTBCIDExNkYgMTFDMDsKK0M2RTY7QzZFNjsxMTBCIDExNkYgMTFDMTtDNkU2OzExMEIgMTE2RiAxMUMxOworQzZFNztDNkU3OzExMEIgMTE2RiAxMUMyO0M2RTc7MTEwQiAxMTZGIDExQzI7CitDNkU4O0M2RTg7MTEwQiAxMTcwO0M2RTg7MTEwQiAxMTcwOworQzZFOTtDNkU5OzExMEIgMTE3MCAxMUE4O0M2RTk7MTEwQiAxMTcwIDExQTg7CitDNkVBO0M2RUE7MTEwQiAxMTcwIDExQTk7QzZFQTsxMTBCIDExNzAgMTFBOTsKK0M2RUI7QzZFQjsxMTBCIDExNzAgMTFBQTtDNkVCOzExMEIgMTE3MCAxMUFBOworQzZFQztDNkVDOzExMEIgMTE3MCAxMUFCO0M2RUM7MTEwQiAxMTcwIDExQUI7CitDNkVEO0M2RUQ7MTEwQiAxMTcwIDExQUM7QzZFRDsxMTBCIDExNzAgMTFBQzsKK0M2RUU7QzZFRTsxMTBCIDExNzAgMTFBRDtDNkVFOzExMEIgMTE3MCAxMUFEOworQzZFRjtDNkVGOzExMEIgMTE3MCAxMUFFO0M2RUY7MTEwQiAxMTcwIDExQUU7CitDNkYwO0M2RjA7MTEwQiAxMTcwIDExQUY7QzZGMDsxMTBCIDExNzAgMTFBRjsKK0M2RjE7QzZGMTsxMTBCIDExNzAgMTFCMDtDNkYxOzExMEIgMTE3MCAxMUIwOworQzZGMjtDNkYyOzExMEIgMTE3MCAxMUIxO0M2RjI7MTEwQiAxMTcwIDExQjE7CitDNkYzO0M2RjM7MTEwQiAxMTcwIDExQjI7QzZGMzsxMTBCIDExNzAgMTFCMjsKK0M2RjQ7QzZGNDsxMTBCIDExNzAgMTFCMztDNkY0OzExMEIgMTE3MCAxMUIzOworQzZGNTtDNkY1OzExMEIgMTE3MCAxMUI0O0M2RjU7MTEwQiAxMTcwIDExQjQ7CitDNkY2O0M2RjY7MTEwQiAxMTcwIDExQjU7QzZGNjsxMTBCIDExNzAgMTFCNTsKK0M2Rjc7QzZGNzsxMTBCIDExNzAgMTFCNjtDNkY3OzExMEIgMTE3MCAxMUI2OworQzZGODtDNkY4OzExMEIgMTE3MCAxMUI3O0M2Rjg7MTEwQiAxMTcwIDExQjc7CitDNkY5O0M2Rjk7MTEwQiAxMTcwIDExQjg7QzZGOTsxMTBCIDExNzAgMTFCODsKK0M2RkE7QzZGQTsxMTBCIDExNzAgMTFCOTtDNkZBOzExMEIgMTE3MCAxMUI5OworQzZGQjtDNkZCOzExMEIgMTE3MCAxMUJBO0M2RkI7MTEwQiAxMTcwIDExQkE7CitDNkZDO0M2RkM7MTEwQiAxMTcwIDExQkI7QzZGQzsxMTBCIDExNzAgMTFCQjsKK0M2RkQ7QzZGRDsxMTBCIDExNzAgMTFCQztDNkZEOzExMEIgMTE3MCAxMUJDOworQzZGRTtDNkZFOzExMEIgMTE3MCAxMUJEO0M2RkU7MTEwQiAxMTcwIDExQkQ7CitDNkZGO0M2RkY7MTEwQiAxMTcwIDExQkU7QzZGRjsxMTBCIDExNzAgMTFCRTsKK0M3MDA7QzcwMDsxMTBCIDExNzAgMTFCRjtDNzAwOzExMEIgMTE3MCAxMUJGOworQzcwMTtDNzAxOzExMEIgMTE3MCAxMUMwO0M3MDE7MTEwQiAxMTcwIDExQzA7CitDNzAyO0M3MDI7MTEwQiAxMTcwIDExQzE7QzcwMjsxMTBCIDExNzAgMTFDMTsKK0M3MDM7QzcwMzsxMTBCIDExNzAgMTFDMjtDNzAzOzExMEIgMTE3MCAxMUMyOworQzcwNDtDNzA0OzExMEIgMTE3MTtDNzA0OzExMEIgMTE3MTsKK0M3MDU7QzcwNTsxMTBCIDExNzEgMTFBODtDNzA1OzExMEIgMTE3MSAxMUE4OworQzcwNjtDNzA2OzExMEIgMTE3MSAxMUE5O0M3MDY7MTEwQiAxMTcxIDExQTk7CitDNzA3O0M3MDc7MTEwQiAxMTcxIDExQUE7QzcwNzsxMTBCIDExNzEgMTFBQTsKK0M3MDg7QzcwODsxMTBCIDExNzEgMTFBQjtDNzA4OzExMEIgMTE3MSAxMUFCOworQzcwOTtDNzA5OzExMEIgMTE3MSAxMUFDO0M3MDk7MTEwQiAxMTcxIDExQUM7CitDNzBBO0M3MEE7MTEwQiAxMTcxIDExQUQ7QzcwQTsxMTBCIDExNzEgMTFBRDsKK0M3MEI7QzcwQjsxMTBCIDExNzEgMTFBRTtDNzBCOzExMEIgMTE3MSAxMUFFOworQzcwQztDNzBDOzExMEIgMTE3MSAxMUFGO0M3MEM7MTEwQiAxMTcxIDExQUY7CitDNzBEO0M3MEQ7MTEwQiAxMTcxIDExQjA7QzcwRDsxMTBCIDExNzEgMTFCMDsKK0M3MEU7QzcwRTsxMTBCIDExNzEgMTFCMTtDNzBFOzExMEIgMTE3MSAxMUIxOworQzcwRjtDNzBGOzExMEIgMTE3MSAxMUIyO0M3MEY7MTEwQiAxMTcxIDExQjI7CitDNzEwO0M3MTA7MTEwQiAxMTcxIDExQjM7QzcxMDsxMTBCIDExNzEgMTFCMzsKK0M3MTE7QzcxMTsxMTBCIDExNzEgMTFCNDtDNzExOzExMEIgMTE3MSAxMUI0OworQzcxMjtDNzEyOzExMEIgMTE3MSAxMUI1O0M3MTI7MTEwQiAxMTcxIDExQjU7CitDNzEzO0M3MTM7MTEwQiAxMTcxIDExQjY7QzcxMzsxMTBCIDExNzEgMTFCNjsKK0M3MTQ7QzcxNDsxMTBCIDExNzEgMTFCNztDNzE0OzExMEIgMTE3MSAxMUI3OworQzcxNTtDNzE1OzExMEIgMTE3MSAxMUI4O0M3MTU7MTEwQiAxMTcxIDExQjg7CitDNzE2O0M3MTY7MTEwQiAxMTcxIDExQjk7QzcxNjsxMTBCIDExNzEgMTFCOTsKK0M3MTc7QzcxNzsxMTBCIDExNzEgMTFCQTtDNzE3OzExMEIgMTE3MSAxMUJBOworQzcxODtDNzE4OzExMEIgMTE3MSAxMUJCO0M3MTg7MTEwQiAxMTcxIDExQkI7CitDNzE5O0M3MTk7MTEwQiAxMTcxIDExQkM7QzcxOTsxMTBCIDExNzEgMTFCQzsKK0M3MUE7QzcxQTsxMTBCIDExNzEgMTFCRDtDNzFBOzExMEIgMTE3MSAxMUJEOworQzcxQjtDNzFCOzExMEIgMTE3MSAxMUJFO0M3MUI7MTEwQiAxMTcxIDExQkU7CitDNzFDO0M3MUM7MTEwQiAxMTcxIDExQkY7QzcxQzsxMTBCIDExNzEgMTFCRjsKK0M3MUQ7QzcxRDsxMTBCIDExNzEgMTFDMDtDNzFEOzExMEIgMTE3MSAxMUMwOworQzcxRTtDNzFFOzExMEIgMTE3MSAxMUMxO0M3MUU7MTEwQiAxMTcxIDExQzE7CitDNzFGO0M3MUY7MTEwQiAxMTcxIDExQzI7QzcxRjsxMTBCIDExNzEgMTFDMjsKK0M3MjA7QzcyMDsxMTBCIDExNzI7QzcyMDsxMTBCIDExNzI7CitDNzIxO0M3MjE7MTEwQiAxMTcyIDExQTg7QzcyMTsxMTBCIDExNzIgMTFBODsKK0M3MjI7QzcyMjsxMTBCIDExNzIgMTFBOTtDNzIyOzExMEIgMTE3MiAxMUE5OworQzcyMztDNzIzOzExMEIgMTE3MiAxMUFBO0M3MjM7MTEwQiAxMTcyIDExQUE7CitDNzI0O0M3MjQ7MTEwQiAxMTcyIDExQUI7QzcyNDsxMTBCIDExNzIgMTFBQjsKK0M3MjU7QzcyNTsxMTBCIDExNzIgMTFBQztDNzI1OzExMEIgMTE3MiAxMUFDOworQzcyNjtDNzI2OzExMEIgMTE3MiAxMUFEO0M3MjY7MTEwQiAxMTcyIDExQUQ7CitDNzI3O0M3Mjc7MTEwQiAxMTcyIDExQUU7QzcyNzsxMTBCIDExNzIgMTFBRTsKK0M3Mjg7QzcyODsxMTBCIDExNzIgMTFBRjtDNzI4OzExMEIgMTE3MiAxMUFGOworQzcyOTtDNzI5OzExMEIgMTE3MiAxMUIwO0M3Mjk7MTEwQiAxMTcyIDExQjA7CitDNzJBO0M3MkE7MTEwQiAxMTcyIDExQjE7QzcyQTsxMTBCIDExNzIgMTFCMTsKK0M3MkI7QzcyQjsxMTBCIDExNzIgMTFCMjtDNzJCOzExMEIgMTE3MiAxMUIyOworQzcyQztDNzJDOzExMEIgMTE3MiAxMUIzO0M3MkM7MTEwQiAxMTcyIDExQjM7CitDNzJEO0M3MkQ7MTEwQiAxMTcyIDExQjQ7QzcyRDsxMTBCIDExNzIgMTFCNDsKK0M3MkU7QzcyRTsxMTBCIDExNzIgMTFCNTtDNzJFOzExMEIgMTE3MiAxMUI1OworQzcyRjtDNzJGOzExMEIgMTE3MiAxMUI2O0M3MkY7MTEwQiAxMTcyIDExQjY7CitDNzMwO0M3MzA7MTEwQiAxMTcyIDExQjc7QzczMDsxMTBCIDExNzIgMTFCNzsKK0M3MzE7QzczMTsxMTBCIDExNzIgMTFCODtDNzMxOzExMEIgMTE3MiAxMUI4OworQzczMjtDNzMyOzExMEIgMTE3MiAxMUI5O0M3MzI7MTEwQiAxMTcyIDExQjk7CitDNzMzO0M3MzM7MTEwQiAxMTcyIDExQkE7QzczMzsxMTBCIDExNzIgMTFCQTsKK0M3MzQ7QzczNDsxMTBCIDExNzIgMTFCQjtDNzM0OzExMEIgMTE3MiAxMUJCOworQzczNTtDNzM1OzExMEIgMTE3MiAxMUJDO0M3MzU7MTEwQiAxMTcyIDExQkM7CitDNzM2O0M3MzY7MTEwQiAxMTcyIDExQkQ7QzczNjsxMTBCIDExNzIgMTFCRDsKK0M3Mzc7QzczNzsxMTBCIDExNzIgMTFCRTtDNzM3OzExMEIgMTE3MiAxMUJFOworQzczODtDNzM4OzExMEIgMTE3MiAxMUJGO0M3Mzg7MTEwQiAxMTcyIDExQkY7CitDNzM5O0M3Mzk7MTEwQiAxMTcyIDExQzA7QzczOTsxMTBCIDExNzIgMTFDMDsKK0M3M0E7QzczQTsxMTBCIDExNzIgMTFDMTtDNzNBOzExMEIgMTE3MiAxMUMxOworQzczQjtDNzNCOzExMEIgMTE3MiAxMUMyO0M3M0I7MTEwQiAxMTcyIDExQzI7CitDNzNDO0M3M0M7MTEwQiAxMTczO0M3M0M7MTEwQiAxMTczOworQzczRDtDNzNEOzExMEIgMTE3MyAxMUE4O0M3M0Q7MTEwQiAxMTczIDExQTg7CitDNzNFO0M3M0U7MTEwQiAxMTczIDExQTk7QzczRTsxMTBCIDExNzMgMTFBOTsKK0M3M0Y7QzczRjsxMTBCIDExNzMgMTFBQTtDNzNGOzExMEIgMTE3MyAxMUFBOworQzc0MDtDNzQwOzExMEIgMTE3MyAxMUFCO0M3NDA7MTEwQiAxMTczIDExQUI7CitDNzQxO0M3NDE7MTEwQiAxMTczIDExQUM7Qzc0MTsxMTBCIDExNzMgMTFBQzsKK0M3NDI7Qzc0MjsxMTBCIDExNzMgMTFBRDtDNzQyOzExMEIgMTE3MyAxMUFEOworQzc0MztDNzQzOzExMEIgMTE3MyAxMUFFO0M3NDM7MTEwQiAxMTczIDExQUU7CitDNzQ0O0M3NDQ7MTEwQiAxMTczIDExQUY7Qzc0NDsxMTBCIDExNzMgMTFBRjsKK0M3NDU7Qzc0NTsxMTBCIDExNzMgMTFCMDtDNzQ1OzExMEIgMTE3MyAxMUIwOworQzc0NjtDNzQ2OzExMEIgMTE3MyAxMUIxO0M3NDY7MTEwQiAxMTczIDExQjE7CitDNzQ3O0M3NDc7MTEwQiAxMTczIDExQjI7Qzc0NzsxMTBCIDExNzMgMTFCMjsKK0M3NDg7Qzc0ODsxMTBCIDExNzMgMTFCMztDNzQ4OzExMEIgMTE3MyAxMUIzOworQzc0OTtDNzQ5OzExMEIgMTE3MyAxMUI0O0M3NDk7MTEwQiAxMTczIDExQjQ7CitDNzRBO0M3NEE7MTEwQiAxMTczIDExQjU7Qzc0QTsxMTBCIDExNzMgMTFCNTsKK0M3NEI7Qzc0QjsxMTBCIDExNzMgMTFCNjtDNzRCOzExMEIgMTE3MyAxMUI2OworQzc0QztDNzRDOzExMEIgMTE3MyAxMUI3O0M3NEM7MTEwQiAxMTczIDExQjc7CitDNzREO0M3NEQ7MTEwQiAxMTczIDExQjg7Qzc0RDsxMTBCIDExNzMgMTFCODsKK0M3NEU7Qzc0RTsxMTBCIDExNzMgMTFCOTtDNzRFOzExMEIgMTE3MyAxMUI5OworQzc0RjtDNzRGOzExMEIgMTE3MyAxMUJBO0M3NEY7MTEwQiAxMTczIDExQkE7CitDNzUwO0M3NTA7MTEwQiAxMTczIDExQkI7Qzc1MDsxMTBCIDExNzMgMTFCQjsKK0M3NTE7Qzc1MTsxMTBCIDExNzMgMTFCQztDNzUxOzExMEIgMTE3MyAxMUJDOworQzc1MjtDNzUyOzExMEIgMTE3MyAxMUJEO0M3NTI7MTEwQiAxMTczIDExQkQ7CitDNzUzO0M3NTM7MTEwQiAxMTczIDExQkU7Qzc1MzsxMTBCIDExNzMgMTFCRTsKK0M3NTQ7Qzc1NDsxMTBCIDExNzMgMTFCRjtDNzU0OzExMEIgMTE3MyAxMUJGOworQzc1NTtDNzU1OzExMEIgMTE3MyAxMUMwO0M3NTU7MTEwQiAxMTczIDExQzA7CitDNzU2O0M3NTY7MTEwQiAxMTczIDExQzE7Qzc1NjsxMTBCIDExNzMgMTFDMTsKK0M3NTc7Qzc1NzsxMTBCIDExNzMgMTFDMjtDNzU3OzExMEIgMTE3MyAxMUMyOworQzc1ODtDNzU4OzExMEIgMTE3NDtDNzU4OzExMEIgMTE3NDsKK0M3NTk7Qzc1OTsxMTBCIDExNzQgMTFBODtDNzU5OzExMEIgMTE3NCAxMUE4OworQzc1QTtDNzVBOzExMEIgMTE3NCAxMUE5O0M3NUE7MTEwQiAxMTc0IDExQTk7CitDNzVCO0M3NUI7MTEwQiAxMTc0IDExQUE7Qzc1QjsxMTBCIDExNzQgMTFBQTsKK0M3NUM7Qzc1QzsxMTBCIDExNzQgMTFBQjtDNzVDOzExMEIgMTE3NCAxMUFCOworQzc1RDtDNzVEOzExMEIgMTE3NCAxMUFDO0M3NUQ7MTEwQiAxMTc0IDExQUM7CitDNzVFO0M3NUU7MTEwQiAxMTc0IDExQUQ7Qzc1RTsxMTBCIDExNzQgMTFBRDsKK0M3NUY7Qzc1RjsxMTBCIDExNzQgMTFBRTtDNzVGOzExMEIgMTE3NCAxMUFFOworQzc2MDtDNzYwOzExMEIgMTE3NCAxMUFGO0M3NjA7MTEwQiAxMTc0IDExQUY7CitDNzYxO0M3NjE7MTEwQiAxMTc0IDExQjA7Qzc2MTsxMTBCIDExNzQgMTFCMDsKK0M3NjI7Qzc2MjsxMTBCIDExNzQgMTFCMTtDNzYyOzExMEIgMTE3NCAxMUIxOworQzc2MztDNzYzOzExMEIgMTE3NCAxMUIyO0M3NjM7MTEwQiAxMTc0IDExQjI7CitDNzY0O0M3NjQ7MTEwQiAxMTc0IDExQjM7Qzc2NDsxMTBCIDExNzQgMTFCMzsKK0M3NjU7Qzc2NTsxMTBCIDExNzQgMTFCNDtDNzY1OzExMEIgMTE3NCAxMUI0OworQzc2NjtDNzY2OzExMEIgMTE3NCAxMUI1O0M3NjY7MTEwQiAxMTc0IDExQjU7CitDNzY3O0M3Njc7MTEwQiAxMTc0IDExQjY7Qzc2NzsxMTBCIDExNzQgMTFCNjsKK0M3Njg7Qzc2ODsxMTBCIDExNzQgMTFCNztDNzY4OzExMEIgMTE3NCAxMUI3OworQzc2OTtDNzY5OzExMEIgMTE3NCAxMUI4O0M3Njk7MTEwQiAxMTc0IDExQjg7CitDNzZBO0M3NkE7MTEwQiAxMTc0IDExQjk7Qzc2QTsxMTBCIDExNzQgMTFCOTsKK0M3NkI7Qzc2QjsxMTBCIDExNzQgMTFCQTtDNzZCOzExMEIgMTE3NCAxMUJBOworQzc2QztDNzZDOzExMEIgMTE3NCAxMUJCO0M3NkM7MTEwQiAxMTc0IDExQkI7CitDNzZEO0M3NkQ7MTEwQiAxMTc0IDExQkM7Qzc2RDsxMTBCIDExNzQgMTFCQzsKK0M3NkU7Qzc2RTsxMTBCIDExNzQgMTFCRDtDNzZFOzExMEIgMTE3NCAxMUJEOworQzc2RjtDNzZGOzExMEIgMTE3NCAxMUJFO0M3NkY7MTEwQiAxMTc0IDExQkU7CitDNzcwO0M3NzA7MTEwQiAxMTc0IDExQkY7Qzc3MDsxMTBCIDExNzQgMTFCRjsKK0M3NzE7Qzc3MTsxMTBCIDExNzQgMTFDMDtDNzcxOzExMEIgMTE3NCAxMUMwOworQzc3MjtDNzcyOzExMEIgMTE3NCAxMUMxO0M3NzI7MTEwQiAxMTc0IDExQzE7CitDNzczO0M3NzM7MTEwQiAxMTc0IDExQzI7Qzc3MzsxMTBCIDExNzQgMTFDMjsKK0M3NzQ7Qzc3NDsxMTBCIDExNzU7Qzc3NDsxMTBCIDExNzU7CitDNzc1O0M3NzU7MTEwQiAxMTc1IDExQTg7Qzc3NTsxMTBCIDExNzUgMTFBODsKK0M3NzY7Qzc3NjsxMTBCIDExNzUgMTFBOTtDNzc2OzExMEIgMTE3NSAxMUE5OworQzc3NztDNzc3OzExMEIgMTE3NSAxMUFBO0M3Nzc7MTEwQiAxMTc1IDExQUE7CitDNzc4O0M3Nzg7MTEwQiAxMTc1IDExQUI7Qzc3ODsxMTBCIDExNzUgMTFBQjsKK0M3Nzk7Qzc3OTsxMTBCIDExNzUgMTFBQztDNzc5OzExMEIgMTE3NSAxMUFDOworQzc3QTtDNzdBOzExMEIgMTE3NSAxMUFEO0M3N0E7MTEwQiAxMTc1IDExQUQ7CitDNzdCO0M3N0I7MTEwQiAxMTc1IDExQUU7Qzc3QjsxMTBCIDExNzUgMTFBRTsKK0M3N0M7Qzc3QzsxMTBCIDExNzUgMTFBRjtDNzdDOzExMEIgMTE3NSAxMUFGOworQzc3RDtDNzdEOzExMEIgMTE3NSAxMUIwO0M3N0Q7MTEwQiAxMTc1IDExQjA7CitDNzdFO0M3N0U7MTEwQiAxMTc1IDExQjE7Qzc3RTsxMTBCIDExNzUgMTFCMTsKK0M3N0Y7Qzc3RjsxMTBCIDExNzUgMTFCMjtDNzdGOzExMEIgMTE3NSAxMUIyOworQzc4MDtDNzgwOzExMEIgMTE3NSAxMUIzO0M3ODA7MTEwQiAxMTc1IDExQjM7CitDNzgxO0M3ODE7MTEwQiAxMTc1IDExQjQ7Qzc4MTsxMTBCIDExNzUgMTFCNDsKK0M3ODI7Qzc4MjsxMTBCIDExNzUgMTFCNTtDNzgyOzExMEIgMTE3NSAxMUI1OworQzc4MztDNzgzOzExMEIgMTE3NSAxMUI2O0M3ODM7MTEwQiAxMTc1IDExQjY7CitDNzg0O0M3ODQ7MTEwQiAxMTc1IDExQjc7Qzc4NDsxMTBCIDExNzUgMTFCNzsKK0M3ODU7Qzc4NTsxMTBCIDExNzUgMTFCODtDNzg1OzExMEIgMTE3NSAxMUI4OworQzc4NjtDNzg2OzExMEIgMTE3NSAxMUI5O0M3ODY7MTEwQiAxMTc1IDExQjk7CitDNzg3O0M3ODc7MTEwQiAxMTc1IDExQkE7Qzc4NzsxMTBCIDExNzUgMTFCQTsKK0M3ODg7Qzc4ODsxMTBCIDExNzUgMTFCQjtDNzg4OzExMEIgMTE3NSAxMUJCOworQzc4OTtDNzg5OzExMEIgMTE3NSAxMUJDO0M3ODk7MTEwQiAxMTc1IDExQkM7CitDNzhBO0M3OEE7MTEwQiAxMTc1IDExQkQ7Qzc4QTsxMTBCIDExNzUgMTFCRDsKK0M3OEI7Qzc4QjsxMTBCIDExNzUgMTFCRTtDNzhCOzExMEIgMTE3NSAxMUJFOworQzc4QztDNzhDOzExMEIgMTE3NSAxMUJGO0M3OEM7MTEwQiAxMTc1IDExQkY7CitDNzhEO0M3OEQ7MTEwQiAxMTc1IDExQzA7Qzc4RDsxMTBCIDExNzUgMTFDMDsKK0M3OEU7Qzc4RTsxMTBCIDExNzUgMTFDMTtDNzhFOzExMEIgMTE3NSAxMUMxOworQzc4RjtDNzhGOzExMEIgMTE3NSAxMUMyO0M3OEY7MTEwQiAxMTc1IDExQzI7CitDNzkwO0M3OTA7MTEwQyAxMTYxO0M3OTA7MTEwQyAxMTYxOworQzc5MTtDNzkxOzExMEMgMTE2MSAxMUE4O0M3OTE7MTEwQyAxMTYxIDExQTg7CitDNzkyO0M3OTI7MTEwQyAxMTYxIDExQTk7Qzc5MjsxMTBDIDExNjEgMTFBOTsKK0M3OTM7Qzc5MzsxMTBDIDExNjEgMTFBQTtDNzkzOzExMEMgMTE2MSAxMUFBOworQzc5NDtDNzk0OzExMEMgMTE2MSAxMUFCO0M3OTQ7MTEwQyAxMTYxIDExQUI7CitDNzk1O0M3OTU7MTEwQyAxMTYxIDExQUM7Qzc5NTsxMTBDIDExNjEgMTFBQzsKK0M3OTY7Qzc5NjsxMTBDIDExNjEgMTFBRDtDNzk2OzExMEMgMTE2MSAxMUFEOworQzc5NztDNzk3OzExMEMgMTE2MSAxMUFFO0M3OTc7MTEwQyAxMTYxIDExQUU7CitDNzk4O0M3OTg7MTEwQyAxMTYxIDExQUY7Qzc5ODsxMTBDIDExNjEgMTFBRjsKK0M3OTk7Qzc5OTsxMTBDIDExNjEgMTFCMDtDNzk5OzExMEMgMTE2MSAxMUIwOworQzc5QTtDNzlBOzExMEMgMTE2MSAxMUIxO0M3OUE7MTEwQyAxMTYxIDExQjE7CitDNzlCO0M3OUI7MTEwQyAxMTYxIDExQjI7Qzc5QjsxMTBDIDExNjEgMTFCMjsKK0M3OUM7Qzc5QzsxMTBDIDExNjEgMTFCMztDNzlDOzExMEMgMTE2MSAxMUIzOworQzc5RDtDNzlEOzExMEMgMTE2MSAxMUI0O0M3OUQ7MTEwQyAxMTYxIDExQjQ7CitDNzlFO0M3OUU7MTEwQyAxMTYxIDExQjU7Qzc5RTsxMTBDIDExNjEgMTFCNTsKK0M3OUY7Qzc5RjsxMTBDIDExNjEgMTFCNjtDNzlGOzExMEMgMTE2MSAxMUI2OworQzdBMDtDN0EwOzExMEMgMTE2MSAxMUI3O0M3QTA7MTEwQyAxMTYxIDExQjc7CitDN0ExO0M3QTE7MTEwQyAxMTYxIDExQjg7QzdBMTsxMTBDIDExNjEgMTFCODsKK0M3QTI7QzdBMjsxMTBDIDExNjEgMTFCOTtDN0EyOzExMEMgMTE2MSAxMUI5OworQzdBMztDN0EzOzExMEMgMTE2MSAxMUJBO0M3QTM7MTEwQyAxMTYxIDExQkE7CitDN0E0O0M3QTQ7MTEwQyAxMTYxIDExQkI7QzdBNDsxMTBDIDExNjEgMTFCQjsKK0M3QTU7QzdBNTsxMTBDIDExNjEgMTFCQztDN0E1OzExMEMgMTE2MSAxMUJDOworQzdBNjtDN0E2OzExMEMgMTE2MSAxMUJEO0M3QTY7MTEwQyAxMTYxIDExQkQ7CitDN0E3O0M3QTc7MTEwQyAxMTYxIDExQkU7QzdBNzsxMTBDIDExNjEgMTFCRTsKK0M3QTg7QzdBODsxMTBDIDExNjEgMTFCRjtDN0E4OzExMEMgMTE2MSAxMUJGOworQzdBOTtDN0E5OzExMEMgMTE2MSAxMUMwO0M3QTk7MTEwQyAxMTYxIDExQzA7CitDN0FBO0M3QUE7MTEwQyAxMTYxIDExQzE7QzdBQTsxMTBDIDExNjEgMTFDMTsKK0M3QUI7QzdBQjsxMTBDIDExNjEgMTFDMjtDN0FCOzExMEMgMTE2MSAxMUMyOworQzdBQztDN0FDOzExMEMgMTE2MjtDN0FDOzExMEMgMTE2MjsKK0M3QUQ7QzdBRDsxMTBDIDExNjIgMTFBODtDN0FEOzExMEMgMTE2MiAxMUE4OworQzdBRTtDN0FFOzExMEMgMTE2MiAxMUE5O0M3QUU7MTEwQyAxMTYyIDExQTk7CitDN0FGO0M3QUY7MTEwQyAxMTYyIDExQUE7QzdBRjsxMTBDIDExNjIgMTFBQTsKK0M3QjA7QzdCMDsxMTBDIDExNjIgMTFBQjtDN0IwOzExMEMgMTE2MiAxMUFCOworQzdCMTtDN0IxOzExMEMgMTE2MiAxMUFDO0M3QjE7MTEwQyAxMTYyIDExQUM7CitDN0IyO0M3QjI7MTEwQyAxMTYyIDExQUQ7QzdCMjsxMTBDIDExNjIgMTFBRDsKK0M3QjM7QzdCMzsxMTBDIDExNjIgMTFBRTtDN0IzOzExMEMgMTE2MiAxMUFFOworQzdCNDtDN0I0OzExMEMgMTE2MiAxMUFGO0M3QjQ7MTEwQyAxMTYyIDExQUY7CitDN0I1O0M3QjU7MTEwQyAxMTYyIDExQjA7QzdCNTsxMTBDIDExNjIgMTFCMDsKK0M3QjY7QzdCNjsxMTBDIDExNjIgMTFCMTtDN0I2OzExMEMgMTE2MiAxMUIxOworQzdCNztDN0I3OzExMEMgMTE2MiAxMUIyO0M3Qjc7MTEwQyAxMTYyIDExQjI7CitDN0I4O0M3Qjg7MTEwQyAxMTYyIDExQjM7QzdCODsxMTBDIDExNjIgMTFCMzsKK0M3Qjk7QzdCOTsxMTBDIDExNjIgMTFCNDtDN0I5OzExMEMgMTE2MiAxMUI0OworQzdCQTtDN0JBOzExMEMgMTE2MiAxMUI1O0M3QkE7MTEwQyAxMTYyIDExQjU7CitDN0JCO0M3QkI7MTEwQyAxMTYyIDExQjY7QzdCQjsxMTBDIDExNjIgMTFCNjsKK0M3QkM7QzdCQzsxMTBDIDExNjIgMTFCNztDN0JDOzExMEMgMTE2MiAxMUI3OworQzdCRDtDN0JEOzExMEMgMTE2MiAxMUI4O0M3QkQ7MTEwQyAxMTYyIDExQjg7CitDN0JFO0M3QkU7MTEwQyAxMTYyIDExQjk7QzdCRTsxMTBDIDExNjIgMTFCOTsKK0M3QkY7QzdCRjsxMTBDIDExNjIgMTFCQTtDN0JGOzExMEMgMTE2MiAxMUJBOworQzdDMDtDN0MwOzExMEMgMTE2MiAxMUJCO0M3QzA7MTEwQyAxMTYyIDExQkI7CitDN0MxO0M3QzE7MTEwQyAxMTYyIDExQkM7QzdDMTsxMTBDIDExNjIgMTFCQzsKK0M3QzI7QzdDMjsxMTBDIDExNjIgMTFCRDtDN0MyOzExMEMgMTE2MiAxMUJEOworQzdDMztDN0MzOzExMEMgMTE2MiAxMUJFO0M3QzM7MTEwQyAxMTYyIDExQkU7CitDN0M0O0M3QzQ7MTEwQyAxMTYyIDExQkY7QzdDNDsxMTBDIDExNjIgMTFCRjsKK0M3QzU7QzdDNTsxMTBDIDExNjIgMTFDMDtDN0M1OzExMEMgMTE2MiAxMUMwOworQzdDNjtDN0M2OzExMEMgMTE2MiAxMUMxO0M3QzY7MTEwQyAxMTYyIDExQzE7CitDN0M3O0M3Qzc7MTEwQyAxMTYyIDExQzI7QzdDNzsxMTBDIDExNjIgMTFDMjsKK0M3Qzg7QzdDODsxMTBDIDExNjM7QzdDODsxMTBDIDExNjM7CitDN0M5O0M3Qzk7MTEwQyAxMTYzIDExQTg7QzdDOTsxMTBDIDExNjMgMTFBODsKK0M3Q0E7QzdDQTsxMTBDIDExNjMgMTFBOTtDN0NBOzExMEMgMTE2MyAxMUE5OworQzdDQjtDN0NCOzExMEMgMTE2MyAxMUFBO0M3Q0I7MTEwQyAxMTYzIDExQUE7CitDN0NDO0M3Q0M7MTEwQyAxMTYzIDExQUI7QzdDQzsxMTBDIDExNjMgMTFBQjsKK0M3Q0Q7QzdDRDsxMTBDIDExNjMgMTFBQztDN0NEOzExMEMgMTE2MyAxMUFDOworQzdDRTtDN0NFOzExMEMgMTE2MyAxMUFEO0M3Q0U7MTEwQyAxMTYzIDExQUQ7CitDN0NGO0M3Q0Y7MTEwQyAxMTYzIDExQUU7QzdDRjsxMTBDIDExNjMgMTFBRTsKK0M3RDA7QzdEMDsxMTBDIDExNjMgMTFBRjtDN0QwOzExMEMgMTE2MyAxMUFGOworQzdEMTtDN0QxOzExMEMgMTE2MyAxMUIwO0M3RDE7MTEwQyAxMTYzIDExQjA7CitDN0QyO0M3RDI7MTEwQyAxMTYzIDExQjE7QzdEMjsxMTBDIDExNjMgMTFCMTsKK0M3RDM7QzdEMzsxMTBDIDExNjMgMTFCMjtDN0QzOzExMEMgMTE2MyAxMUIyOworQzdENDtDN0Q0OzExMEMgMTE2MyAxMUIzO0M3RDQ7MTEwQyAxMTYzIDExQjM7CitDN0Q1O0M3RDU7MTEwQyAxMTYzIDExQjQ7QzdENTsxMTBDIDExNjMgMTFCNDsKK0M3RDY7QzdENjsxMTBDIDExNjMgMTFCNTtDN0Q2OzExMEMgMTE2MyAxMUI1OworQzdENztDN0Q3OzExMEMgMTE2MyAxMUI2O0M3RDc7MTEwQyAxMTYzIDExQjY7CitDN0Q4O0M3RDg7MTEwQyAxMTYzIDExQjc7QzdEODsxMTBDIDExNjMgMTFCNzsKK0M3RDk7QzdEOTsxMTBDIDExNjMgMTFCODtDN0Q5OzExMEMgMTE2MyAxMUI4OworQzdEQTtDN0RBOzExMEMgMTE2MyAxMUI5O0M3REE7MTEwQyAxMTYzIDExQjk7CitDN0RCO0M3REI7MTEwQyAxMTYzIDExQkE7QzdEQjsxMTBDIDExNjMgMTFCQTsKK0M3REM7QzdEQzsxMTBDIDExNjMgMTFCQjtDN0RDOzExMEMgMTE2MyAxMUJCOworQzdERDtDN0REOzExMEMgMTE2MyAxMUJDO0M3REQ7MTEwQyAxMTYzIDExQkM7CitDN0RFO0M3REU7MTEwQyAxMTYzIDExQkQ7QzdERTsxMTBDIDExNjMgMTFCRDsKK0M3REY7QzdERjsxMTBDIDExNjMgMTFCRTtDN0RGOzExMEMgMTE2MyAxMUJFOworQzdFMDtDN0UwOzExMEMgMTE2MyAxMUJGO0M3RTA7MTEwQyAxMTYzIDExQkY7CitDN0UxO0M3RTE7MTEwQyAxMTYzIDExQzA7QzdFMTsxMTBDIDExNjMgMTFDMDsKK0M3RTI7QzdFMjsxMTBDIDExNjMgMTFDMTtDN0UyOzExMEMgMTE2MyAxMUMxOworQzdFMztDN0UzOzExMEMgMTE2MyAxMUMyO0M3RTM7MTEwQyAxMTYzIDExQzI7CitDN0U0O0M3RTQ7MTEwQyAxMTY0O0M3RTQ7MTEwQyAxMTY0OworQzdFNTtDN0U1OzExMEMgMTE2NCAxMUE4O0M3RTU7MTEwQyAxMTY0IDExQTg7CitDN0U2O0M3RTY7MTEwQyAxMTY0IDExQTk7QzdFNjsxMTBDIDExNjQgMTFBOTsKK0M3RTc7QzdFNzsxMTBDIDExNjQgMTFBQTtDN0U3OzExMEMgMTE2NCAxMUFBOworQzdFODtDN0U4OzExMEMgMTE2NCAxMUFCO0M3RTg7MTEwQyAxMTY0IDExQUI7CitDN0U5O0M3RTk7MTEwQyAxMTY0IDExQUM7QzdFOTsxMTBDIDExNjQgMTFBQzsKK0M3RUE7QzdFQTsxMTBDIDExNjQgMTFBRDtDN0VBOzExMEMgMTE2NCAxMUFEOworQzdFQjtDN0VCOzExMEMgMTE2NCAxMUFFO0M3RUI7MTEwQyAxMTY0IDExQUU7CitDN0VDO0M3RUM7MTEwQyAxMTY0IDExQUY7QzdFQzsxMTBDIDExNjQgMTFBRjsKK0M3RUQ7QzdFRDsxMTBDIDExNjQgMTFCMDtDN0VEOzExMEMgMTE2NCAxMUIwOworQzdFRTtDN0VFOzExMEMgMTE2NCAxMUIxO0M3RUU7MTEwQyAxMTY0IDExQjE7CitDN0VGO0M3RUY7MTEwQyAxMTY0IDExQjI7QzdFRjsxMTBDIDExNjQgMTFCMjsKK0M3RjA7QzdGMDsxMTBDIDExNjQgMTFCMztDN0YwOzExMEMgMTE2NCAxMUIzOworQzdGMTtDN0YxOzExMEMgMTE2NCAxMUI0O0M3RjE7MTEwQyAxMTY0IDExQjQ7CitDN0YyO0M3RjI7MTEwQyAxMTY0IDExQjU7QzdGMjsxMTBDIDExNjQgMTFCNTsKK0M3RjM7QzdGMzsxMTBDIDExNjQgMTFCNjtDN0YzOzExMEMgMTE2NCAxMUI2OworQzdGNDtDN0Y0OzExMEMgMTE2NCAxMUI3O0M3RjQ7MTEwQyAxMTY0IDExQjc7CitDN0Y1O0M3RjU7MTEwQyAxMTY0IDExQjg7QzdGNTsxMTBDIDExNjQgMTFCODsKK0M3RjY7QzdGNjsxMTBDIDExNjQgMTFCOTtDN0Y2OzExMEMgMTE2NCAxMUI5OworQzdGNztDN0Y3OzExMEMgMTE2NCAxMUJBO0M3Rjc7MTEwQyAxMTY0IDExQkE7CitDN0Y4O0M3Rjg7MTEwQyAxMTY0IDExQkI7QzdGODsxMTBDIDExNjQgMTFCQjsKK0M3Rjk7QzdGOTsxMTBDIDExNjQgMTFCQztDN0Y5OzExMEMgMTE2NCAxMUJDOworQzdGQTtDN0ZBOzExMEMgMTE2NCAxMUJEO0M3RkE7MTEwQyAxMTY0IDExQkQ7CitDN0ZCO0M3RkI7MTEwQyAxMTY0IDExQkU7QzdGQjsxMTBDIDExNjQgMTFCRTsKK0M3RkM7QzdGQzsxMTBDIDExNjQgMTFCRjtDN0ZDOzExMEMgMTE2NCAxMUJGOworQzdGRDtDN0ZEOzExMEMgMTE2NCAxMUMwO0M3RkQ7MTEwQyAxMTY0IDExQzA7CitDN0ZFO0M3RkU7MTEwQyAxMTY0IDExQzE7QzdGRTsxMTBDIDExNjQgMTFDMTsKK0M3RkY7QzdGRjsxMTBDIDExNjQgMTFDMjtDN0ZGOzExMEMgMTE2NCAxMUMyOworQzgwMDtDODAwOzExMEMgMTE2NTtDODAwOzExMEMgMTE2NTsKK0M4MDE7QzgwMTsxMTBDIDExNjUgMTFBODtDODAxOzExMEMgMTE2NSAxMUE4OworQzgwMjtDODAyOzExMEMgMTE2NSAxMUE5O0M4MDI7MTEwQyAxMTY1IDExQTk7CitDODAzO0M4MDM7MTEwQyAxMTY1IDExQUE7QzgwMzsxMTBDIDExNjUgMTFBQTsKK0M4MDQ7QzgwNDsxMTBDIDExNjUgMTFBQjtDODA0OzExMEMgMTE2NSAxMUFCOworQzgwNTtDODA1OzExMEMgMTE2NSAxMUFDO0M4MDU7MTEwQyAxMTY1IDExQUM7CitDODA2O0M4MDY7MTEwQyAxMTY1IDExQUQ7QzgwNjsxMTBDIDExNjUgMTFBRDsKK0M4MDc7QzgwNzsxMTBDIDExNjUgMTFBRTtDODA3OzExMEMgMTE2NSAxMUFFOworQzgwODtDODA4OzExMEMgMTE2NSAxMUFGO0M4MDg7MTEwQyAxMTY1IDExQUY7CitDODA5O0M4MDk7MTEwQyAxMTY1IDExQjA7QzgwOTsxMTBDIDExNjUgMTFCMDsKK0M4MEE7QzgwQTsxMTBDIDExNjUgMTFCMTtDODBBOzExMEMgMTE2NSAxMUIxOworQzgwQjtDODBCOzExMEMgMTE2NSAxMUIyO0M4MEI7MTEwQyAxMTY1IDExQjI7CitDODBDO0M4MEM7MTEwQyAxMTY1IDExQjM7QzgwQzsxMTBDIDExNjUgMTFCMzsKK0M4MEQ7QzgwRDsxMTBDIDExNjUgMTFCNDtDODBEOzExMEMgMTE2NSAxMUI0OworQzgwRTtDODBFOzExMEMgMTE2NSAxMUI1O0M4MEU7MTEwQyAxMTY1IDExQjU7CitDODBGO0M4MEY7MTEwQyAxMTY1IDExQjY7QzgwRjsxMTBDIDExNjUgMTFCNjsKK0M4MTA7QzgxMDsxMTBDIDExNjUgMTFCNztDODEwOzExMEMgMTE2NSAxMUI3OworQzgxMTtDODExOzExMEMgMTE2NSAxMUI4O0M4MTE7MTEwQyAxMTY1IDExQjg7CitDODEyO0M4MTI7MTEwQyAxMTY1IDExQjk7QzgxMjsxMTBDIDExNjUgMTFCOTsKK0M4MTM7QzgxMzsxMTBDIDExNjUgMTFCQTtDODEzOzExMEMgMTE2NSAxMUJBOworQzgxNDtDODE0OzExMEMgMTE2NSAxMUJCO0M4MTQ7MTEwQyAxMTY1IDExQkI7CitDODE1O0M4MTU7MTEwQyAxMTY1IDExQkM7QzgxNTsxMTBDIDExNjUgMTFCQzsKK0M4MTY7QzgxNjsxMTBDIDExNjUgMTFCRDtDODE2OzExMEMgMTE2NSAxMUJEOworQzgxNztDODE3OzExMEMgMTE2NSAxMUJFO0M4MTc7MTEwQyAxMTY1IDExQkU7CitDODE4O0M4MTg7MTEwQyAxMTY1IDExQkY7QzgxODsxMTBDIDExNjUgMTFCRjsKK0M4MTk7QzgxOTsxMTBDIDExNjUgMTFDMDtDODE5OzExMEMgMTE2NSAxMUMwOworQzgxQTtDODFBOzExMEMgMTE2NSAxMUMxO0M4MUE7MTEwQyAxMTY1IDExQzE7CitDODFCO0M4MUI7MTEwQyAxMTY1IDExQzI7QzgxQjsxMTBDIDExNjUgMTFDMjsKK0M4MUM7QzgxQzsxMTBDIDExNjY7QzgxQzsxMTBDIDExNjY7CitDODFEO0M4MUQ7MTEwQyAxMTY2IDExQTg7QzgxRDsxMTBDIDExNjYgMTFBODsKK0M4MUU7QzgxRTsxMTBDIDExNjYgMTFBOTtDODFFOzExMEMgMTE2NiAxMUE5OworQzgxRjtDODFGOzExMEMgMTE2NiAxMUFBO0M4MUY7MTEwQyAxMTY2IDExQUE7CitDODIwO0M4MjA7MTEwQyAxMTY2IDExQUI7QzgyMDsxMTBDIDExNjYgMTFBQjsKK0M4MjE7QzgyMTsxMTBDIDExNjYgMTFBQztDODIxOzExMEMgMTE2NiAxMUFDOworQzgyMjtDODIyOzExMEMgMTE2NiAxMUFEO0M4MjI7MTEwQyAxMTY2IDExQUQ7CitDODIzO0M4MjM7MTEwQyAxMTY2IDExQUU7QzgyMzsxMTBDIDExNjYgMTFBRTsKK0M4MjQ7QzgyNDsxMTBDIDExNjYgMTFBRjtDODI0OzExMEMgMTE2NiAxMUFGOworQzgyNTtDODI1OzExMEMgMTE2NiAxMUIwO0M4MjU7MTEwQyAxMTY2IDExQjA7CitDODI2O0M4MjY7MTEwQyAxMTY2IDExQjE7QzgyNjsxMTBDIDExNjYgMTFCMTsKK0M4Mjc7QzgyNzsxMTBDIDExNjYgMTFCMjtDODI3OzExMEMgMTE2NiAxMUIyOworQzgyODtDODI4OzExMEMgMTE2NiAxMUIzO0M4Mjg7MTEwQyAxMTY2IDExQjM7CitDODI5O0M4Mjk7MTEwQyAxMTY2IDExQjQ7QzgyOTsxMTBDIDExNjYgMTFCNDsKK0M4MkE7QzgyQTsxMTBDIDExNjYgMTFCNTtDODJBOzExMEMgMTE2NiAxMUI1OworQzgyQjtDODJCOzExMEMgMTE2NiAxMUI2O0M4MkI7MTEwQyAxMTY2IDExQjY7CitDODJDO0M4MkM7MTEwQyAxMTY2IDExQjc7QzgyQzsxMTBDIDExNjYgMTFCNzsKK0M4MkQ7QzgyRDsxMTBDIDExNjYgMTFCODtDODJEOzExMEMgMTE2NiAxMUI4OworQzgyRTtDODJFOzExMEMgMTE2NiAxMUI5O0M4MkU7MTEwQyAxMTY2IDExQjk7CitDODJGO0M4MkY7MTEwQyAxMTY2IDExQkE7QzgyRjsxMTBDIDExNjYgMTFCQTsKK0M4MzA7QzgzMDsxMTBDIDExNjYgMTFCQjtDODMwOzExMEMgMTE2NiAxMUJCOworQzgzMTtDODMxOzExMEMgMTE2NiAxMUJDO0M4MzE7MTEwQyAxMTY2IDExQkM7CitDODMyO0M4MzI7MTEwQyAxMTY2IDExQkQ7QzgzMjsxMTBDIDExNjYgMTFCRDsKK0M4MzM7QzgzMzsxMTBDIDExNjYgMTFCRTtDODMzOzExMEMgMTE2NiAxMUJFOworQzgzNDtDODM0OzExMEMgMTE2NiAxMUJGO0M4MzQ7MTEwQyAxMTY2IDExQkY7CitDODM1O0M4MzU7MTEwQyAxMTY2IDExQzA7QzgzNTsxMTBDIDExNjYgMTFDMDsKK0M4MzY7QzgzNjsxMTBDIDExNjYgMTFDMTtDODM2OzExMEMgMTE2NiAxMUMxOworQzgzNztDODM3OzExMEMgMTE2NiAxMUMyO0M4Mzc7MTEwQyAxMTY2IDExQzI7CitDODM4O0M4Mzg7MTEwQyAxMTY3O0M4Mzg7MTEwQyAxMTY3OworQzgzOTtDODM5OzExMEMgMTE2NyAxMUE4O0M4Mzk7MTEwQyAxMTY3IDExQTg7CitDODNBO0M4M0E7MTEwQyAxMTY3IDExQTk7QzgzQTsxMTBDIDExNjcgMTFBOTsKK0M4M0I7QzgzQjsxMTBDIDExNjcgMTFBQTtDODNCOzExMEMgMTE2NyAxMUFBOworQzgzQztDODNDOzExMEMgMTE2NyAxMUFCO0M4M0M7MTEwQyAxMTY3IDExQUI7CitDODNEO0M4M0Q7MTEwQyAxMTY3IDExQUM7QzgzRDsxMTBDIDExNjcgMTFBQzsKK0M4M0U7QzgzRTsxMTBDIDExNjcgMTFBRDtDODNFOzExMEMgMTE2NyAxMUFEOworQzgzRjtDODNGOzExMEMgMTE2NyAxMUFFO0M4M0Y7MTEwQyAxMTY3IDExQUU7CitDODQwO0M4NDA7MTEwQyAxMTY3IDExQUY7Qzg0MDsxMTBDIDExNjcgMTFBRjsKK0M4NDE7Qzg0MTsxMTBDIDExNjcgMTFCMDtDODQxOzExMEMgMTE2NyAxMUIwOworQzg0MjtDODQyOzExMEMgMTE2NyAxMUIxO0M4NDI7MTEwQyAxMTY3IDExQjE7CitDODQzO0M4NDM7MTEwQyAxMTY3IDExQjI7Qzg0MzsxMTBDIDExNjcgMTFCMjsKK0M4NDQ7Qzg0NDsxMTBDIDExNjcgMTFCMztDODQ0OzExMEMgMTE2NyAxMUIzOworQzg0NTtDODQ1OzExMEMgMTE2NyAxMUI0O0M4NDU7MTEwQyAxMTY3IDExQjQ7CitDODQ2O0M4NDY7MTEwQyAxMTY3IDExQjU7Qzg0NjsxMTBDIDExNjcgMTFCNTsKK0M4NDc7Qzg0NzsxMTBDIDExNjcgMTFCNjtDODQ3OzExMEMgMTE2NyAxMUI2OworQzg0ODtDODQ4OzExMEMgMTE2NyAxMUI3O0M4NDg7MTEwQyAxMTY3IDExQjc7CitDODQ5O0M4NDk7MTEwQyAxMTY3IDExQjg7Qzg0OTsxMTBDIDExNjcgMTFCODsKK0M4NEE7Qzg0QTsxMTBDIDExNjcgMTFCOTtDODRBOzExMEMgMTE2NyAxMUI5OworQzg0QjtDODRCOzExMEMgMTE2NyAxMUJBO0M4NEI7MTEwQyAxMTY3IDExQkE7CitDODRDO0M4NEM7MTEwQyAxMTY3IDExQkI7Qzg0QzsxMTBDIDExNjcgMTFCQjsKK0M4NEQ7Qzg0RDsxMTBDIDExNjcgMTFCQztDODREOzExMEMgMTE2NyAxMUJDOworQzg0RTtDODRFOzExMEMgMTE2NyAxMUJEO0M4NEU7MTEwQyAxMTY3IDExQkQ7CitDODRGO0M4NEY7MTEwQyAxMTY3IDExQkU7Qzg0RjsxMTBDIDExNjcgMTFCRTsKK0M4NTA7Qzg1MDsxMTBDIDExNjcgMTFCRjtDODUwOzExMEMgMTE2NyAxMUJGOworQzg1MTtDODUxOzExMEMgMTE2NyAxMUMwO0M4NTE7MTEwQyAxMTY3IDExQzA7CitDODUyO0M4NTI7MTEwQyAxMTY3IDExQzE7Qzg1MjsxMTBDIDExNjcgMTFDMTsKK0M4NTM7Qzg1MzsxMTBDIDExNjcgMTFDMjtDODUzOzExMEMgMTE2NyAxMUMyOworQzg1NDtDODU0OzExMEMgMTE2ODtDODU0OzExMEMgMTE2ODsKK0M4NTU7Qzg1NTsxMTBDIDExNjggMTFBODtDODU1OzExMEMgMTE2OCAxMUE4OworQzg1NjtDODU2OzExMEMgMTE2OCAxMUE5O0M4NTY7MTEwQyAxMTY4IDExQTk7CitDODU3O0M4NTc7MTEwQyAxMTY4IDExQUE7Qzg1NzsxMTBDIDExNjggMTFBQTsKK0M4NTg7Qzg1ODsxMTBDIDExNjggMTFBQjtDODU4OzExMEMgMTE2OCAxMUFCOworQzg1OTtDODU5OzExMEMgMTE2OCAxMUFDO0M4NTk7MTEwQyAxMTY4IDExQUM7CitDODVBO0M4NUE7MTEwQyAxMTY4IDExQUQ7Qzg1QTsxMTBDIDExNjggMTFBRDsKK0M4NUI7Qzg1QjsxMTBDIDExNjggMTFBRTtDODVCOzExMEMgMTE2OCAxMUFFOworQzg1QztDODVDOzExMEMgMTE2OCAxMUFGO0M4NUM7MTEwQyAxMTY4IDExQUY7CitDODVEO0M4NUQ7MTEwQyAxMTY4IDExQjA7Qzg1RDsxMTBDIDExNjggMTFCMDsKK0M4NUU7Qzg1RTsxMTBDIDExNjggMTFCMTtDODVFOzExMEMgMTE2OCAxMUIxOworQzg1RjtDODVGOzExMEMgMTE2OCAxMUIyO0M4NUY7MTEwQyAxMTY4IDExQjI7CitDODYwO0M4NjA7MTEwQyAxMTY4IDExQjM7Qzg2MDsxMTBDIDExNjggMTFCMzsKK0M4NjE7Qzg2MTsxMTBDIDExNjggMTFCNDtDODYxOzExMEMgMTE2OCAxMUI0OworQzg2MjtDODYyOzExMEMgMTE2OCAxMUI1O0M4NjI7MTEwQyAxMTY4IDExQjU7CitDODYzO0M4NjM7MTEwQyAxMTY4IDExQjY7Qzg2MzsxMTBDIDExNjggMTFCNjsKK0M4NjQ7Qzg2NDsxMTBDIDExNjggMTFCNztDODY0OzExMEMgMTE2OCAxMUI3OworQzg2NTtDODY1OzExMEMgMTE2OCAxMUI4O0M4NjU7MTEwQyAxMTY4IDExQjg7CitDODY2O0M4NjY7MTEwQyAxMTY4IDExQjk7Qzg2NjsxMTBDIDExNjggMTFCOTsKK0M4Njc7Qzg2NzsxMTBDIDExNjggMTFCQTtDODY3OzExMEMgMTE2OCAxMUJBOworQzg2ODtDODY4OzExMEMgMTE2OCAxMUJCO0M4Njg7MTEwQyAxMTY4IDExQkI7CitDODY5O0M4Njk7MTEwQyAxMTY4IDExQkM7Qzg2OTsxMTBDIDExNjggMTFCQzsKK0M4NkE7Qzg2QTsxMTBDIDExNjggMTFCRDtDODZBOzExMEMgMTE2OCAxMUJEOworQzg2QjtDODZCOzExMEMgMTE2OCAxMUJFO0M4NkI7MTEwQyAxMTY4IDExQkU7CitDODZDO0M4NkM7MTEwQyAxMTY4IDExQkY7Qzg2QzsxMTBDIDExNjggMTFCRjsKK0M4NkQ7Qzg2RDsxMTBDIDExNjggMTFDMDtDODZEOzExMEMgMTE2OCAxMUMwOworQzg2RTtDODZFOzExMEMgMTE2OCAxMUMxO0M4NkU7MTEwQyAxMTY4IDExQzE7CitDODZGO0M4NkY7MTEwQyAxMTY4IDExQzI7Qzg2RjsxMTBDIDExNjggMTFDMjsKK0M4NzA7Qzg3MDsxMTBDIDExNjk7Qzg3MDsxMTBDIDExNjk7CitDODcxO0M4NzE7MTEwQyAxMTY5IDExQTg7Qzg3MTsxMTBDIDExNjkgMTFBODsKK0M4NzI7Qzg3MjsxMTBDIDExNjkgMTFBOTtDODcyOzExMEMgMTE2OSAxMUE5OworQzg3MztDODczOzExMEMgMTE2OSAxMUFBO0M4NzM7MTEwQyAxMTY5IDExQUE7CitDODc0O0M4NzQ7MTEwQyAxMTY5IDExQUI7Qzg3NDsxMTBDIDExNjkgMTFBQjsKK0M4NzU7Qzg3NTsxMTBDIDExNjkgMTFBQztDODc1OzExMEMgMTE2OSAxMUFDOworQzg3NjtDODc2OzExMEMgMTE2OSAxMUFEO0M4NzY7MTEwQyAxMTY5IDExQUQ7CitDODc3O0M4Nzc7MTEwQyAxMTY5IDExQUU7Qzg3NzsxMTBDIDExNjkgMTFBRTsKK0M4Nzg7Qzg3ODsxMTBDIDExNjkgMTFBRjtDODc4OzExMEMgMTE2OSAxMUFGOworQzg3OTtDODc5OzExMEMgMTE2OSAxMUIwO0M4Nzk7MTEwQyAxMTY5IDExQjA7CitDODdBO0M4N0E7MTEwQyAxMTY5IDExQjE7Qzg3QTsxMTBDIDExNjkgMTFCMTsKK0M4N0I7Qzg3QjsxMTBDIDExNjkgMTFCMjtDODdCOzExMEMgMTE2OSAxMUIyOworQzg3QztDODdDOzExMEMgMTE2OSAxMUIzO0M4N0M7MTEwQyAxMTY5IDExQjM7CitDODdEO0M4N0Q7MTEwQyAxMTY5IDExQjQ7Qzg3RDsxMTBDIDExNjkgMTFCNDsKK0M4N0U7Qzg3RTsxMTBDIDExNjkgMTFCNTtDODdFOzExMEMgMTE2OSAxMUI1OworQzg3RjtDODdGOzExMEMgMTE2OSAxMUI2O0M4N0Y7MTEwQyAxMTY5IDExQjY7CitDODgwO0M4ODA7MTEwQyAxMTY5IDExQjc7Qzg4MDsxMTBDIDExNjkgMTFCNzsKK0M4ODE7Qzg4MTsxMTBDIDExNjkgMTFCODtDODgxOzExMEMgMTE2OSAxMUI4OworQzg4MjtDODgyOzExMEMgMTE2OSAxMUI5O0M4ODI7MTEwQyAxMTY5IDExQjk7CitDODgzO0M4ODM7MTEwQyAxMTY5IDExQkE7Qzg4MzsxMTBDIDExNjkgMTFCQTsKK0M4ODQ7Qzg4NDsxMTBDIDExNjkgMTFCQjtDODg0OzExMEMgMTE2OSAxMUJCOworQzg4NTtDODg1OzExMEMgMTE2OSAxMUJDO0M4ODU7MTEwQyAxMTY5IDExQkM7CitDODg2O0M4ODY7MTEwQyAxMTY5IDExQkQ7Qzg4NjsxMTBDIDExNjkgMTFCRDsKK0M4ODc7Qzg4NzsxMTBDIDExNjkgMTFCRTtDODg3OzExMEMgMTE2OSAxMUJFOworQzg4ODtDODg4OzExMEMgMTE2OSAxMUJGO0M4ODg7MTEwQyAxMTY5IDExQkY7CitDODg5O0M4ODk7MTEwQyAxMTY5IDExQzA7Qzg4OTsxMTBDIDExNjkgMTFDMDsKK0M4OEE7Qzg4QTsxMTBDIDExNjkgMTFDMTtDODhBOzExMEMgMTE2OSAxMUMxOworQzg4QjtDODhCOzExMEMgMTE2OSAxMUMyO0M4OEI7MTEwQyAxMTY5IDExQzI7CitDODhDO0M4OEM7MTEwQyAxMTZBO0M4OEM7MTEwQyAxMTZBOworQzg4RDtDODhEOzExMEMgMTE2QSAxMUE4O0M4OEQ7MTEwQyAxMTZBIDExQTg7CitDODhFO0M4OEU7MTEwQyAxMTZBIDExQTk7Qzg4RTsxMTBDIDExNkEgMTFBOTsKK0M4OEY7Qzg4RjsxMTBDIDExNkEgMTFBQTtDODhGOzExMEMgMTE2QSAxMUFBOworQzg5MDtDODkwOzExMEMgMTE2QSAxMUFCO0M4OTA7MTEwQyAxMTZBIDExQUI7CitDODkxO0M4OTE7MTEwQyAxMTZBIDExQUM7Qzg5MTsxMTBDIDExNkEgMTFBQzsKK0M4OTI7Qzg5MjsxMTBDIDExNkEgMTFBRDtDODkyOzExMEMgMTE2QSAxMUFEOworQzg5MztDODkzOzExMEMgMTE2QSAxMUFFO0M4OTM7MTEwQyAxMTZBIDExQUU7CitDODk0O0M4OTQ7MTEwQyAxMTZBIDExQUY7Qzg5NDsxMTBDIDExNkEgMTFBRjsKK0M4OTU7Qzg5NTsxMTBDIDExNkEgMTFCMDtDODk1OzExMEMgMTE2QSAxMUIwOworQzg5NjtDODk2OzExMEMgMTE2QSAxMUIxO0M4OTY7MTEwQyAxMTZBIDExQjE7CitDODk3O0M4OTc7MTEwQyAxMTZBIDExQjI7Qzg5NzsxMTBDIDExNkEgMTFCMjsKK0M4OTg7Qzg5ODsxMTBDIDExNkEgMTFCMztDODk4OzExMEMgMTE2QSAxMUIzOworQzg5OTtDODk5OzExMEMgMTE2QSAxMUI0O0M4OTk7MTEwQyAxMTZBIDExQjQ7CitDODlBO0M4OUE7MTEwQyAxMTZBIDExQjU7Qzg5QTsxMTBDIDExNkEgMTFCNTsKK0M4OUI7Qzg5QjsxMTBDIDExNkEgMTFCNjtDODlCOzExMEMgMTE2QSAxMUI2OworQzg5QztDODlDOzExMEMgMTE2QSAxMUI3O0M4OUM7MTEwQyAxMTZBIDExQjc7CitDODlEO0M4OUQ7MTEwQyAxMTZBIDExQjg7Qzg5RDsxMTBDIDExNkEgMTFCODsKK0M4OUU7Qzg5RTsxMTBDIDExNkEgMTFCOTtDODlFOzExMEMgMTE2QSAxMUI5OworQzg5RjtDODlGOzExMEMgMTE2QSAxMUJBO0M4OUY7MTEwQyAxMTZBIDExQkE7CitDOEEwO0M4QTA7MTEwQyAxMTZBIDExQkI7QzhBMDsxMTBDIDExNkEgMTFCQjsKK0M4QTE7QzhBMTsxMTBDIDExNkEgMTFCQztDOEExOzExMEMgMTE2QSAxMUJDOworQzhBMjtDOEEyOzExMEMgMTE2QSAxMUJEO0M4QTI7MTEwQyAxMTZBIDExQkQ7CitDOEEzO0M4QTM7MTEwQyAxMTZBIDExQkU7QzhBMzsxMTBDIDExNkEgMTFCRTsKK0M4QTQ7QzhBNDsxMTBDIDExNkEgMTFCRjtDOEE0OzExMEMgMTE2QSAxMUJGOworQzhBNTtDOEE1OzExMEMgMTE2QSAxMUMwO0M4QTU7MTEwQyAxMTZBIDExQzA7CitDOEE2O0M4QTY7MTEwQyAxMTZBIDExQzE7QzhBNjsxMTBDIDExNkEgMTFDMTsKK0M4QTc7QzhBNzsxMTBDIDExNkEgMTFDMjtDOEE3OzExMEMgMTE2QSAxMUMyOworQzhBODtDOEE4OzExMEMgMTE2QjtDOEE4OzExMEMgMTE2QjsKK0M4QTk7QzhBOTsxMTBDIDExNkIgMTFBODtDOEE5OzExMEMgMTE2QiAxMUE4OworQzhBQTtDOEFBOzExMEMgMTE2QiAxMUE5O0M4QUE7MTEwQyAxMTZCIDExQTk7CitDOEFCO0M4QUI7MTEwQyAxMTZCIDExQUE7QzhBQjsxMTBDIDExNkIgMTFBQTsKK0M4QUM7QzhBQzsxMTBDIDExNkIgMTFBQjtDOEFDOzExMEMgMTE2QiAxMUFCOworQzhBRDtDOEFEOzExMEMgMTE2QiAxMUFDO0M4QUQ7MTEwQyAxMTZCIDExQUM7CitDOEFFO0M4QUU7MTEwQyAxMTZCIDExQUQ7QzhBRTsxMTBDIDExNkIgMTFBRDsKK0M4QUY7QzhBRjsxMTBDIDExNkIgMTFBRTtDOEFGOzExMEMgMTE2QiAxMUFFOworQzhCMDtDOEIwOzExMEMgMTE2QiAxMUFGO0M4QjA7MTEwQyAxMTZCIDExQUY7CitDOEIxO0M4QjE7MTEwQyAxMTZCIDExQjA7QzhCMTsxMTBDIDExNkIgMTFCMDsKK0M4QjI7QzhCMjsxMTBDIDExNkIgMTFCMTtDOEIyOzExMEMgMTE2QiAxMUIxOworQzhCMztDOEIzOzExMEMgMTE2QiAxMUIyO0M4QjM7MTEwQyAxMTZCIDExQjI7CitDOEI0O0M4QjQ7MTEwQyAxMTZCIDExQjM7QzhCNDsxMTBDIDExNkIgMTFCMzsKK0M4QjU7QzhCNTsxMTBDIDExNkIgMTFCNDtDOEI1OzExMEMgMTE2QiAxMUI0OworQzhCNjtDOEI2OzExMEMgMTE2QiAxMUI1O0M4QjY7MTEwQyAxMTZCIDExQjU7CitDOEI3O0M4Qjc7MTEwQyAxMTZCIDExQjY7QzhCNzsxMTBDIDExNkIgMTFCNjsKK0M4Qjg7QzhCODsxMTBDIDExNkIgMTFCNztDOEI4OzExMEMgMTE2QiAxMUI3OworQzhCOTtDOEI5OzExMEMgMTE2QiAxMUI4O0M4Qjk7MTEwQyAxMTZCIDExQjg7CitDOEJBO0M4QkE7MTEwQyAxMTZCIDExQjk7QzhCQTsxMTBDIDExNkIgMTFCOTsKK0M4QkI7QzhCQjsxMTBDIDExNkIgMTFCQTtDOEJCOzExMEMgMTE2QiAxMUJBOworQzhCQztDOEJDOzExMEMgMTE2QiAxMUJCO0M4QkM7MTEwQyAxMTZCIDExQkI7CitDOEJEO0M4QkQ7MTEwQyAxMTZCIDExQkM7QzhCRDsxMTBDIDExNkIgMTFCQzsKK0M4QkU7QzhCRTsxMTBDIDExNkIgMTFCRDtDOEJFOzExMEMgMTE2QiAxMUJEOworQzhCRjtDOEJGOzExMEMgMTE2QiAxMUJFO0M4QkY7MTEwQyAxMTZCIDExQkU7CitDOEMwO0M4QzA7MTEwQyAxMTZCIDExQkY7QzhDMDsxMTBDIDExNkIgMTFCRjsKK0M4QzE7QzhDMTsxMTBDIDExNkIgMTFDMDtDOEMxOzExMEMgMTE2QiAxMUMwOworQzhDMjtDOEMyOzExMEMgMTE2QiAxMUMxO0M4QzI7MTEwQyAxMTZCIDExQzE7CitDOEMzO0M4QzM7MTEwQyAxMTZCIDExQzI7QzhDMzsxMTBDIDExNkIgMTFDMjsKK0M4QzQ7QzhDNDsxMTBDIDExNkM7QzhDNDsxMTBDIDExNkM7CitDOEM1O0M4QzU7MTEwQyAxMTZDIDExQTg7QzhDNTsxMTBDIDExNkMgMTFBODsKK0M4QzY7QzhDNjsxMTBDIDExNkMgMTFBOTtDOEM2OzExMEMgMTE2QyAxMUE5OworQzhDNztDOEM3OzExMEMgMTE2QyAxMUFBO0M4Qzc7MTEwQyAxMTZDIDExQUE7CitDOEM4O0M4Qzg7MTEwQyAxMTZDIDExQUI7QzhDODsxMTBDIDExNkMgMTFBQjsKK0M4Qzk7QzhDOTsxMTBDIDExNkMgMTFBQztDOEM5OzExMEMgMTE2QyAxMUFDOworQzhDQTtDOENBOzExMEMgMTE2QyAxMUFEO0M4Q0E7MTEwQyAxMTZDIDExQUQ7CitDOENCO0M4Q0I7MTEwQyAxMTZDIDExQUU7QzhDQjsxMTBDIDExNkMgMTFBRTsKK0M4Q0M7QzhDQzsxMTBDIDExNkMgMTFBRjtDOENDOzExMEMgMTE2QyAxMUFGOworQzhDRDtDOENEOzExMEMgMTE2QyAxMUIwO0M4Q0Q7MTEwQyAxMTZDIDExQjA7CitDOENFO0M4Q0U7MTEwQyAxMTZDIDExQjE7QzhDRTsxMTBDIDExNkMgMTFCMTsKK0M4Q0Y7QzhDRjsxMTBDIDExNkMgMTFCMjtDOENGOzExMEMgMTE2QyAxMUIyOworQzhEMDtDOEQwOzExMEMgMTE2QyAxMUIzO0M4RDA7MTEwQyAxMTZDIDExQjM7CitDOEQxO0M4RDE7MTEwQyAxMTZDIDExQjQ7QzhEMTsxMTBDIDExNkMgMTFCNDsKK0M4RDI7QzhEMjsxMTBDIDExNkMgMTFCNTtDOEQyOzExMEMgMTE2QyAxMUI1OworQzhEMztDOEQzOzExMEMgMTE2QyAxMUI2O0M4RDM7MTEwQyAxMTZDIDExQjY7CitDOEQ0O0M4RDQ7MTEwQyAxMTZDIDExQjc7QzhENDsxMTBDIDExNkMgMTFCNzsKK0M4RDU7QzhENTsxMTBDIDExNkMgMTFCODtDOEQ1OzExMEMgMTE2QyAxMUI4OworQzhENjtDOEQ2OzExMEMgMTE2QyAxMUI5O0M4RDY7MTEwQyAxMTZDIDExQjk7CitDOEQ3O0M4RDc7MTEwQyAxMTZDIDExQkE7QzhENzsxMTBDIDExNkMgMTFCQTsKK0M4RDg7QzhEODsxMTBDIDExNkMgMTFCQjtDOEQ4OzExMEMgMTE2QyAxMUJCOworQzhEOTtDOEQ5OzExMEMgMTE2QyAxMUJDO0M4RDk7MTEwQyAxMTZDIDExQkM7CitDOERBO0M4REE7MTEwQyAxMTZDIDExQkQ7QzhEQTsxMTBDIDExNkMgMTFCRDsKK0M4REI7QzhEQjsxMTBDIDExNkMgMTFCRTtDOERCOzExMEMgMTE2QyAxMUJFOworQzhEQztDOERDOzExMEMgMTE2QyAxMUJGO0M4REM7MTEwQyAxMTZDIDExQkY7CitDOEREO0M4REQ7MTEwQyAxMTZDIDExQzA7QzhERDsxMTBDIDExNkMgMTFDMDsKK0M4REU7QzhERTsxMTBDIDExNkMgMTFDMTtDOERFOzExMEMgMTE2QyAxMUMxOworQzhERjtDOERGOzExMEMgMTE2QyAxMUMyO0M4REY7MTEwQyAxMTZDIDExQzI7CitDOEUwO0M4RTA7MTEwQyAxMTZEO0M4RTA7MTEwQyAxMTZEOworQzhFMTtDOEUxOzExMEMgMTE2RCAxMUE4O0M4RTE7MTEwQyAxMTZEIDExQTg7CitDOEUyO0M4RTI7MTEwQyAxMTZEIDExQTk7QzhFMjsxMTBDIDExNkQgMTFBOTsKK0M4RTM7QzhFMzsxMTBDIDExNkQgMTFBQTtDOEUzOzExMEMgMTE2RCAxMUFBOworQzhFNDtDOEU0OzExMEMgMTE2RCAxMUFCO0M4RTQ7MTEwQyAxMTZEIDExQUI7CitDOEU1O0M4RTU7MTEwQyAxMTZEIDExQUM7QzhFNTsxMTBDIDExNkQgMTFBQzsKK0M4RTY7QzhFNjsxMTBDIDExNkQgMTFBRDtDOEU2OzExMEMgMTE2RCAxMUFEOworQzhFNztDOEU3OzExMEMgMTE2RCAxMUFFO0M4RTc7MTEwQyAxMTZEIDExQUU7CitDOEU4O0M4RTg7MTEwQyAxMTZEIDExQUY7QzhFODsxMTBDIDExNkQgMTFBRjsKK0M4RTk7QzhFOTsxMTBDIDExNkQgMTFCMDtDOEU5OzExMEMgMTE2RCAxMUIwOworQzhFQTtDOEVBOzExMEMgMTE2RCAxMUIxO0M4RUE7MTEwQyAxMTZEIDExQjE7CitDOEVCO0M4RUI7MTEwQyAxMTZEIDExQjI7QzhFQjsxMTBDIDExNkQgMTFCMjsKK0M4RUM7QzhFQzsxMTBDIDExNkQgMTFCMztDOEVDOzExMEMgMTE2RCAxMUIzOworQzhFRDtDOEVEOzExMEMgMTE2RCAxMUI0O0M4RUQ7MTEwQyAxMTZEIDExQjQ7CitDOEVFO0M4RUU7MTEwQyAxMTZEIDExQjU7QzhFRTsxMTBDIDExNkQgMTFCNTsKK0M4RUY7QzhFRjsxMTBDIDExNkQgMTFCNjtDOEVGOzExMEMgMTE2RCAxMUI2OworQzhGMDtDOEYwOzExMEMgMTE2RCAxMUI3O0M4RjA7MTEwQyAxMTZEIDExQjc7CitDOEYxO0M4RjE7MTEwQyAxMTZEIDExQjg7QzhGMTsxMTBDIDExNkQgMTFCODsKK0M4RjI7QzhGMjsxMTBDIDExNkQgMTFCOTtDOEYyOzExMEMgMTE2RCAxMUI5OworQzhGMztDOEYzOzExMEMgMTE2RCAxMUJBO0M4RjM7MTEwQyAxMTZEIDExQkE7CitDOEY0O0M4RjQ7MTEwQyAxMTZEIDExQkI7QzhGNDsxMTBDIDExNkQgMTFCQjsKK0M4RjU7QzhGNTsxMTBDIDExNkQgMTFCQztDOEY1OzExMEMgMTE2RCAxMUJDOworQzhGNjtDOEY2OzExMEMgMTE2RCAxMUJEO0M4RjY7MTEwQyAxMTZEIDExQkQ7CitDOEY3O0M4Rjc7MTEwQyAxMTZEIDExQkU7QzhGNzsxMTBDIDExNkQgMTFCRTsKK0M4Rjg7QzhGODsxMTBDIDExNkQgMTFCRjtDOEY4OzExMEMgMTE2RCAxMUJGOworQzhGOTtDOEY5OzExMEMgMTE2RCAxMUMwO0M4Rjk7MTEwQyAxMTZEIDExQzA7CitDOEZBO0M4RkE7MTEwQyAxMTZEIDExQzE7QzhGQTsxMTBDIDExNkQgMTFDMTsKK0M4RkI7QzhGQjsxMTBDIDExNkQgMTFDMjtDOEZCOzExMEMgMTE2RCAxMUMyOworQzhGQztDOEZDOzExMEMgMTE2RTtDOEZDOzExMEMgMTE2RTsKK0M4RkQ7QzhGRDsxMTBDIDExNkUgMTFBODtDOEZEOzExMEMgMTE2RSAxMUE4OworQzhGRTtDOEZFOzExMEMgMTE2RSAxMUE5O0M4RkU7MTEwQyAxMTZFIDExQTk7CitDOEZGO0M4RkY7MTEwQyAxMTZFIDExQUE7QzhGRjsxMTBDIDExNkUgMTFBQTsKK0M5MDA7QzkwMDsxMTBDIDExNkUgMTFBQjtDOTAwOzExMEMgMTE2RSAxMUFCOworQzkwMTtDOTAxOzExMEMgMTE2RSAxMUFDO0M5MDE7MTEwQyAxMTZFIDExQUM7CitDOTAyO0M5MDI7MTEwQyAxMTZFIDExQUQ7QzkwMjsxMTBDIDExNkUgMTFBRDsKK0M5MDM7QzkwMzsxMTBDIDExNkUgMTFBRTtDOTAzOzExMEMgMTE2RSAxMUFFOworQzkwNDtDOTA0OzExMEMgMTE2RSAxMUFGO0M5MDQ7MTEwQyAxMTZFIDExQUY7CitDOTA1O0M5MDU7MTEwQyAxMTZFIDExQjA7QzkwNTsxMTBDIDExNkUgMTFCMDsKK0M5MDY7QzkwNjsxMTBDIDExNkUgMTFCMTtDOTA2OzExMEMgMTE2RSAxMUIxOworQzkwNztDOTA3OzExMEMgMTE2RSAxMUIyO0M5MDc7MTEwQyAxMTZFIDExQjI7CitDOTA4O0M5MDg7MTEwQyAxMTZFIDExQjM7QzkwODsxMTBDIDExNkUgMTFCMzsKK0M5MDk7QzkwOTsxMTBDIDExNkUgMTFCNDtDOTA5OzExMEMgMTE2RSAxMUI0OworQzkwQTtDOTBBOzExMEMgMTE2RSAxMUI1O0M5MEE7MTEwQyAxMTZFIDExQjU7CitDOTBCO0M5MEI7MTEwQyAxMTZFIDExQjY7QzkwQjsxMTBDIDExNkUgMTFCNjsKK0M5MEM7QzkwQzsxMTBDIDExNkUgMTFCNztDOTBDOzExMEMgMTE2RSAxMUI3OworQzkwRDtDOTBEOzExMEMgMTE2RSAxMUI4O0M5MEQ7MTEwQyAxMTZFIDExQjg7CitDOTBFO0M5MEU7MTEwQyAxMTZFIDExQjk7QzkwRTsxMTBDIDExNkUgMTFCOTsKK0M5MEY7QzkwRjsxMTBDIDExNkUgMTFCQTtDOTBGOzExMEMgMTE2RSAxMUJBOworQzkxMDtDOTEwOzExMEMgMTE2RSAxMUJCO0M5MTA7MTEwQyAxMTZFIDExQkI7CitDOTExO0M5MTE7MTEwQyAxMTZFIDExQkM7QzkxMTsxMTBDIDExNkUgMTFCQzsKK0M5MTI7QzkxMjsxMTBDIDExNkUgMTFCRDtDOTEyOzExMEMgMTE2RSAxMUJEOworQzkxMztDOTEzOzExMEMgMTE2RSAxMUJFO0M5MTM7MTEwQyAxMTZFIDExQkU7CitDOTE0O0M5MTQ7MTEwQyAxMTZFIDExQkY7QzkxNDsxMTBDIDExNkUgMTFCRjsKK0M5MTU7QzkxNTsxMTBDIDExNkUgMTFDMDtDOTE1OzExMEMgMTE2RSAxMUMwOworQzkxNjtDOTE2OzExMEMgMTE2RSAxMUMxO0M5MTY7MTEwQyAxMTZFIDExQzE7CitDOTE3O0M5MTc7MTEwQyAxMTZFIDExQzI7QzkxNzsxMTBDIDExNkUgMTFDMjsKK0M5MTg7QzkxODsxMTBDIDExNkY7QzkxODsxMTBDIDExNkY7CitDOTE5O0M5MTk7MTEwQyAxMTZGIDExQTg7QzkxOTsxMTBDIDExNkYgMTFBODsKK0M5MUE7QzkxQTsxMTBDIDExNkYgMTFBOTtDOTFBOzExMEMgMTE2RiAxMUE5OworQzkxQjtDOTFCOzExMEMgMTE2RiAxMUFBO0M5MUI7MTEwQyAxMTZGIDExQUE7CitDOTFDO0M5MUM7MTEwQyAxMTZGIDExQUI7QzkxQzsxMTBDIDExNkYgMTFBQjsKK0M5MUQ7QzkxRDsxMTBDIDExNkYgMTFBQztDOTFEOzExMEMgMTE2RiAxMUFDOworQzkxRTtDOTFFOzExMEMgMTE2RiAxMUFEO0M5MUU7MTEwQyAxMTZGIDExQUQ7CitDOTFGO0M5MUY7MTEwQyAxMTZGIDExQUU7QzkxRjsxMTBDIDExNkYgMTFBRTsKK0M5MjA7QzkyMDsxMTBDIDExNkYgMTFBRjtDOTIwOzExMEMgMTE2RiAxMUFGOworQzkyMTtDOTIxOzExMEMgMTE2RiAxMUIwO0M5MjE7MTEwQyAxMTZGIDExQjA7CitDOTIyO0M5MjI7MTEwQyAxMTZGIDExQjE7QzkyMjsxMTBDIDExNkYgMTFCMTsKK0M5MjM7QzkyMzsxMTBDIDExNkYgMTFCMjtDOTIzOzExMEMgMTE2RiAxMUIyOworQzkyNDtDOTI0OzExMEMgMTE2RiAxMUIzO0M5MjQ7MTEwQyAxMTZGIDExQjM7CitDOTI1O0M5MjU7MTEwQyAxMTZGIDExQjQ7QzkyNTsxMTBDIDExNkYgMTFCNDsKK0M5MjY7QzkyNjsxMTBDIDExNkYgMTFCNTtDOTI2OzExMEMgMTE2RiAxMUI1OworQzkyNztDOTI3OzExMEMgMTE2RiAxMUI2O0M5Mjc7MTEwQyAxMTZGIDExQjY7CitDOTI4O0M5Mjg7MTEwQyAxMTZGIDExQjc7QzkyODsxMTBDIDExNkYgMTFCNzsKK0M5Mjk7QzkyOTsxMTBDIDExNkYgMTFCODtDOTI5OzExMEMgMTE2RiAxMUI4OworQzkyQTtDOTJBOzExMEMgMTE2RiAxMUI5O0M5MkE7MTEwQyAxMTZGIDExQjk7CitDOTJCO0M5MkI7MTEwQyAxMTZGIDExQkE7QzkyQjsxMTBDIDExNkYgMTFCQTsKK0M5MkM7QzkyQzsxMTBDIDExNkYgMTFCQjtDOTJDOzExMEMgMTE2RiAxMUJCOworQzkyRDtDOTJEOzExMEMgMTE2RiAxMUJDO0M5MkQ7MTEwQyAxMTZGIDExQkM7CitDOTJFO0M5MkU7MTEwQyAxMTZGIDExQkQ7QzkyRTsxMTBDIDExNkYgMTFCRDsKK0M5MkY7QzkyRjsxMTBDIDExNkYgMTFCRTtDOTJGOzExMEMgMTE2RiAxMUJFOworQzkzMDtDOTMwOzExMEMgMTE2RiAxMUJGO0M5MzA7MTEwQyAxMTZGIDExQkY7CitDOTMxO0M5MzE7MTEwQyAxMTZGIDExQzA7QzkzMTsxMTBDIDExNkYgMTFDMDsKK0M5MzI7QzkzMjsxMTBDIDExNkYgMTFDMTtDOTMyOzExMEMgMTE2RiAxMUMxOworQzkzMztDOTMzOzExMEMgMTE2RiAxMUMyO0M5MzM7MTEwQyAxMTZGIDExQzI7CitDOTM0O0M5MzQ7MTEwQyAxMTcwO0M5MzQ7MTEwQyAxMTcwOworQzkzNTtDOTM1OzExMEMgMTE3MCAxMUE4O0M5MzU7MTEwQyAxMTcwIDExQTg7CitDOTM2O0M5MzY7MTEwQyAxMTcwIDExQTk7QzkzNjsxMTBDIDExNzAgMTFBOTsKK0M5Mzc7QzkzNzsxMTBDIDExNzAgMTFBQTtDOTM3OzExMEMgMTE3MCAxMUFBOworQzkzODtDOTM4OzExMEMgMTE3MCAxMUFCO0M5Mzg7MTEwQyAxMTcwIDExQUI7CitDOTM5O0M5Mzk7MTEwQyAxMTcwIDExQUM7QzkzOTsxMTBDIDExNzAgMTFBQzsKK0M5M0E7QzkzQTsxMTBDIDExNzAgMTFBRDtDOTNBOzExMEMgMTE3MCAxMUFEOworQzkzQjtDOTNCOzExMEMgMTE3MCAxMUFFO0M5M0I7MTEwQyAxMTcwIDExQUU7CitDOTNDO0M5M0M7MTEwQyAxMTcwIDExQUY7QzkzQzsxMTBDIDExNzAgMTFBRjsKK0M5M0Q7QzkzRDsxMTBDIDExNzAgMTFCMDtDOTNEOzExMEMgMTE3MCAxMUIwOworQzkzRTtDOTNFOzExMEMgMTE3MCAxMUIxO0M5M0U7MTEwQyAxMTcwIDExQjE7CitDOTNGO0M5M0Y7MTEwQyAxMTcwIDExQjI7QzkzRjsxMTBDIDExNzAgMTFCMjsKK0M5NDA7Qzk0MDsxMTBDIDExNzAgMTFCMztDOTQwOzExMEMgMTE3MCAxMUIzOworQzk0MTtDOTQxOzExMEMgMTE3MCAxMUI0O0M5NDE7MTEwQyAxMTcwIDExQjQ7CitDOTQyO0M5NDI7MTEwQyAxMTcwIDExQjU7Qzk0MjsxMTBDIDExNzAgMTFCNTsKK0M5NDM7Qzk0MzsxMTBDIDExNzAgMTFCNjtDOTQzOzExMEMgMTE3MCAxMUI2OworQzk0NDtDOTQ0OzExMEMgMTE3MCAxMUI3O0M5NDQ7MTEwQyAxMTcwIDExQjc7CitDOTQ1O0M5NDU7MTEwQyAxMTcwIDExQjg7Qzk0NTsxMTBDIDExNzAgMTFCODsKK0M5NDY7Qzk0NjsxMTBDIDExNzAgMTFCOTtDOTQ2OzExMEMgMTE3MCAxMUI5OworQzk0NztDOTQ3OzExMEMgMTE3MCAxMUJBO0M5NDc7MTEwQyAxMTcwIDExQkE7CitDOTQ4O0M5NDg7MTEwQyAxMTcwIDExQkI7Qzk0ODsxMTBDIDExNzAgMTFCQjsKK0M5NDk7Qzk0OTsxMTBDIDExNzAgMTFCQztDOTQ5OzExMEMgMTE3MCAxMUJDOworQzk0QTtDOTRBOzExMEMgMTE3MCAxMUJEO0M5NEE7MTEwQyAxMTcwIDExQkQ7CitDOTRCO0M5NEI7MTEwQyAxMTcwIDExQkU7Qzk0QjsxMTBDIDExNzAgMTFCRTsKK0M5NEM7Qzk0QzsxMTBDIDExNzAgMTFCRjtDOTRDOzExMEMgMTE3MCAxMUJGOworQzk0RDtDOTREOzExMEMgMTE3MCAxMUMwO0M5NEQ7MTEwQyAxMTcwIDExQzA7CitDOTRFO0M5NEU7MTEwQyAxMTcwIDExQzE7Qzk0RTsxMTBDIDExNzAgMTFDMTsKK0M5NEY7Qzk0RjsxMTBDIDExNzAgMTFDMjtDOTRGOzExMEMgMTE3MCAxMUMyOworQzk1MDtDOTUwOzExMEMgMTE3MTtDOTUwOzExMEMgMTE3MTsKK0M5NTE7Qzk1MTsxMTBDIDExNzEgMTFBODtDOTUxOzExMEMgMTE3MSAxMUE4OworQzk1MjtDOTUyOzExMEMgMTE3MSAxMUE5O0M5NTI7MTEwQyAxMTcxIDExQTk7CitDOTUzO0M5NTM7MTEwQyAxMTcxIDExQUE7Qzk1MzsxMTBDIDExNzEgMTFBQTsKK0M5NTQ7Qzk1NDsxMTBDIDExNzEgMTFBQjtDOTU0OzExMEMgMTE3MSAxMUFCOworQzk1NTtDOTU1OzExMEMgMTE3MSAxMUFDO0M5NTU7MTEwQyAxMTcxIDExQUM7CitDOTU2O0M5NTY7MTEwQyAxMTcxIDExQUQ7Qzk1NjsxMTBDIDExNzEgMTFBRDsKK0M5NTc7Qzk1NzsxMTBDIDExNzEgMTFBRTtDOTU3OzExMEMgMTE3MSAxMUFFOworQzk1ODtDOTU4OzExMEMgMTE3MSAxMUFGO0M5NTg7MTEwQyAxMTcxIDExQUY7CitDOTU5O0M5NTk7MTEwQyAxMTcxIDExQjA7Qzk1OTsxMTBDIDExNzEgMTFCMDsKK0M5NUE7Qzk1QTsxMTBDIDExNzEgMTFCMTtDOTVBOzExMEMgMTE3MSAxMUIxOworQzk1QjtDOTVCOzExMEMgMTE3MSAxMUIyO0M5NUI7MTEwQyAxMTcxIDExQjI7CitDOTVDO0M5NUM7MTEwQyAxMTcxIDExQjM7Qzk1QzsxMTBDIDExNzEgMTFCMzsKK0M5NUQ7Qzk1RDsxMTBDIDExNzEgMTFCNDtDOTVEOzExMEMgMTE3MSAxMUI0OworQzk1RTtDOTVFOzExMEMgMTE3MSAxMUI1O0M5NUU7MTEwQyAxMTcxIDExQjU7CitDOTVGO0M5NUY7MTEwQyAxMTcxIDExQjY7Qzk1RjsxMTBDIDExNzEgMTFCNjsKK0M5NjA7Qzk2MDsxMTBDIDExNzEgMTFCNztDOTYwOzExMEMgMTE3MSAxMUI3OworQzk2MTtDOTYxOzExMEMgMTE3MSAxMUI4O0M5NjE7MTEwQyAxMTcxIDExQjg7CitDOTYyO0M5NjI7MTEwQyAxMTcxIDExQjk7Qzk2MjsxMTBDIDExNzEgMTFCOTsKK0M5NjM7Qzk2MzsxMTBDIDExNzEgMTFCQTtDOTYzOzExMEMgMTE3MSAxMUJBOworQzk2NDtDOTY0OzExMEMgMTE3MSAxMUJCO0M5NjQ7MTEwQyAxMTcxIDExQkI7CitDOTY1O0M5NjU7MTEwQyAxMTcxIDExQkM7Qzk2NTsxMTBDIDExNzEgMTFCQzsKK0M5NjY7Qzk2NjsxMTBDIDExNzEgMTFCRDtDOTY2OzExMEMgMTE3MSAxMUJEOworQzk2NztDOTY3OzExMEMgMTE3MSAxMUJFO0M5Njc7MTEwQyAxMTcxIDExQkU7CitDOTY4O0M5Njg7MTEwQyAxMTcxIDExQkY7Qzk2ODsxMTBDIDExNzEgMTFCRjsKK0M5Njk7Qzk2OTsxMTBDIDExNzEgMTFDMDtDOTY5OzExMEMgMTE3MSAxMUMwOworQzk2QTtDOTZBOzExMEMgMTE3MSAxMUMxO0M5NkE7MTEwQyAxMTcxIDExQzE7CitDOTZCO0M5NkI7MTEwQyAxMTcxIDExQzI7Qzk2QjsxMTBDIDExNzEgMTFDMjsKK0M5NkM7Qzk2QzsxMTBDIDExNzI7Qzk2QzsxMTBDIDExNzI7CitDOTZEO0M5NkQ7MTEwQyAxMTcyIDExQTg7Qzk2RDsxMTBDIDExNzIgMTFBODsKK0M5NkU7Qzk2RTsxMTBDIDExNzIgMTFBOTtDOTZFOzExMEMgMTE3MiAxMUE5OworQzk2RjtDOTZGOzExMEMgMTE3MiAxMUFBO0M5NkY7MTEwQyAxMTcyIDExQUE7CitDOTcwO0M5NzA7MTEwQyAxMTcyIDExQUI7Qzk3MDsxMTBDIDExNzIgMTFBQjsKK0M5NzE7Qzk3MTsxMTBDIDExNzIgMTFBQztDOTcxOzExMEMgMTE3MiAxMUFDOworQzk3MjtDOTcyOzExMEMgMTE3MiAxMUFEO0M5NzI7MTEwQyAxMTcyIDExQUQ7CitDOTczO0M5NzM7MTEwQyAxMTcyIDExQUU7Qzk3MzsxMTBDIDExNzIgMTFBRTsKK0M5NzQ7Qzk3NDsxMTBDIDExNzIgMTFBRjtDOTc0OzExMEMgMTE3MiAxMUFGOworQzk3NTtDOTc1OzExMEMgMTE3MiAxMUIwO0M5NzU7MTEwQyAxMTcyIDExQjA7CitDOTc2O0M5NzY7MTEwQyAxMTcyIDExQjE7Qzk3NjsxMTBDIDExNzIgMTFCMTsKK0M5Nzc7Qzk3NzsxMTBDIDExNzIgMTFCMjtDOTc3OzExMEMgMTE3MiAxMUIyOworQzk3ODtDOTc4OzExMEMgMTE3MiAxMUIzO0M5Nzg7MTEwQyAxMTcyIDExQjM7CitDOTc5O0M5Nzk7MTEwQyAxMTcyIDExQjQ7Qzk3OTsxMTBDIDExNzIgMTFCNDsKK0M5N0E7Qzk3QTsxMTBDIDExNzIgMTFCNTtDOTdBOzExMEMgMTE3MiAxMUI1OworQzk3QjtDOTdCOzExMEMgMTE3MiAxMUI2O0M5N0I7MTEwQyAxMTcyIDExQjY7CitDOTdDO0M5N0M7MTEwQyAxMTcyIDExQjc7Qzk3QzsxMTBDIDExNzIgMTFCNzsKK0M5N0Q7Qzk3RDsxMTBDIDExNzIgMTFCODtDOTdEOzExMEMgMTE3MiAxMUI4OworQzk3RTtDOTdFOzExMEMgMTE3MiAxMUI5O0M5N0U7MTEwQyAxMTcyIDExQjk7CitDOTdGO0M5N0Y7MTEwQyAxMTcyIDExQkE7Qzk3RjsxMTBDIDExNzIgMTFCQTsKK0M5ODA7Qzk4MDsxMTBDIDExNzIgMTFCQjtDOTgwOzExMEMgMTE3MiAxMUJCOworQzk4MTtDOTgxOzExMEMgMTE3MiAxMUJDO0M5ODE7MTEwQyAxMTcyIDExQkM7CitDOTgyO0M5ODI7MTEwQyAxMTcyIDExQkQ7Qzk4MjsxMTBDIDExNzIgMTFCRDsKK0M5ODM7Qzk4MzsxMTBDIDExNzIgMTFCRTtDOTgzOzExMEMgMTE3MiAxMUJFOworQzk4NDtDOTg0OzExMEMgMTE3MiAxMUJGO0M5ODQ7MTEwQyAxMTcyIDExQkY7CitDOTg1O0M5ODU7MTEwQyAxMTcyIDExQzA7Qzk4NTsxMTBDIDExNzIgMTFDMDsKK0M5ODY7Qzk4NjsxMTBDIDExNzIgMTFDMTtDOTg2OzExMEMgMTE3MiAxMUMxOworQzk4NztDOTg3OzExMEMgMTE3MiAxMUMyO0M5ODc7MTEwQyAxMTcyIDExQzI7CitDOTg4O0M5ODg7MTEwQyAxMTczO0M5ODg7MTEwQyAxMTczOworQzk4OTtDOTg5OzExMEMgMTE3MyAxMUE4O0M5ODk7MTEwQyAxMTczIDExQTg7CitDOThBO0M5OEE7MTEwQyAxMTczIDExQTk7Qzk4QTsxMTBDIDExNzMgMTFBOTsKK0M5OEI7Qzk4QjsxMTBDIDExNzMgMTFBQTtDOThCOzExMEMgMTE3MyAxMUFBOworQzk4QztDOThDOzExMEMgMTE3MyAxMUFCO0M5OEM7MTEwQyAxMTczIDExQUI7CitDOThEO0M5OEQ7MTEwQyAxMTczIDExQUM7Qzk4RDsxMTBDIDExNzMgMTFBQzsKK0M5OEU7Qzk4RTsxMTBDIDExNzMgMTFBRDtDOThFOzExMEMgMTE3MyAxMUFEOworQzk4RjtDOThGOzExMEMgMTE3MyAxMUFFO0M5OEY7MTEwQyAxMTczIDExQUU7CitDOTkwO0M5OTA7MTEwQyAxMTczIDExQUY7Qzk5MDsxMTBDIDExNzMgMTFBRjsKK0M5OTE7Qzk5MTsxMTBDIDExNzMgMTFCMDtDOTkxOzExMEMgMTE3MyAxMUIwOworQzk5MjtDOTkyOzExMEMgMTE3MyAxMUIxO0M5OTI7MTEwQyAxMTczIDExQjE7CitDOTkzO0M5OTM7MTEwQyAxMTczIDExQjI7Qzk5MzsxMTBDIDExNzMgMTFCMjsKK0M5OTQ7Qzk5NDsxMTBDIDExNzMgMTFCMztDOTk0OzExMEMgMTE3MyAxMUIzOworQzk5NTtDOTk1OzExMEMgMTE3MyAxMUI0O0M5OTU7MTEwQyAxMTczIDExQjQ7CitDOTk2O0M5OTY7MTEwQyAxMTczIDExQjU7Qzk5NjsxMTBDIDExNzMgMTFCNTsKK0M5OTc7Qzk5NzsxMTBDIDExNzMgMTFCNjtDOTk3OzExMEMgMTE3MyAxMUI2OworQzk5ODtDOTk4OzExMEMgMTE3MyAxMUI3O0M5OTg7MTEwQyAxMTczIDExQjc7CitDOTk5O0M5OTk7MTEwQyAxMTczIDExQjg7Qzk5OTsxMTBDIDExNzMgMTFCODsKK0M5OUE7Qzk5QTsxMTBDIDExNzMgMTFCOTtDOTlBOzExMEMgMTE3MyAxMUI5OworQzk5QjtDOTlCOzExMEMgMTE3MyAxMUJBO0M5OUI7MTEwQyAxMTczIDExQkE7CitDOTlDO0M5OUM7MTEwQyAxMTczIDExQkI7Qzk5QzsxMTBDIDExNzMgMTFCQjsKK0M5OUQ7Qzk5RDsxMTBDIDExNzMgMTFCQztDOTlEOzExMEMgMTE3MyAxMUJDOworQzk5RTtDOTlFOzExMEMgMTE3MyAxMUJEO0M5OUU7MTEwQyAxMTczIDExQkQ7CitDOTlGO0M5OUY7MTEwQyAxMTczIDExQkU7Qzk5RjsxMTBDIDExNzMgMTFCRTsKK0M5QTA7QzlBMDsxMTBDIDExNzMgMTFCRjtDOUEwOzExMEMgMTE3MyAxMUJGOworQzlBMTtDOUExOzExMEMgMTE3MyAxMUMwO0M5QTE7MTEwQyAxMTczIDExQzA7CitDOUEyO0M5QTI7MTEwQyAxMTczIDExQzE7QzlBMjsxMTBDIDExNzMgMTFDMTsKK0M5QTM7QzlBMzsxMTBDIDExNzMgMTFDMjtDOUEzOzExMEMgMTE3MyAxMUMyOworQzlBNDtDOUE0OzExMEMgMTE3NDtDOUE0OzExMEMgMTE3NDsKK0M5QTU7QzlBNTsxMTBDIDExNzQgMTFBODtDOUE1OzExMEMgMTE3NCAxMUE4OworQzlBNjtDOUE2OzExMEMgMTE3NCAxMUE5O0M5QTY7MTEwQyAxMTc0IDExQTk7CitDOUE3O0M5QTc7MTEwQyAxMTc0IDExQUE7QzlBNzsxMTBDIDExNzQgMTFBQTsKK0M5QTg7QzlBODsxMTBDIDExNzQgMTFBQjtDOUE4OzExMEMgMTE3NCAxMUFCOworQzlBOTtDOUE5OzExMEMgMTE3NCAxMUFDO0M5QTk7MTEwQyAxMTc0IDExQUM7CitDOUFBO0M5QUE7MTEwQyAxMTc0IDExQUQ7QzlBQTsxMTBDIDExNzQgMTFBRDsKK0M5QUI7QzlBQjsxMTBDIDExNzQgMTFBRTtDOUFCOzExMEMgMTE3NCAxMUFFOworQzlBQztDOUFDOzExMEMgMTE3NCAxMUFGO0M5QUM7MTEwQyAxMTc0IDExQUY7CitDOUFEO0M5QUQ7MTEwQyAxMTc0IDExQjA7QzlBRDsxMTBDIDExNzQgMTFCMDsKK0M5QUU7QzlBRTsxMTBDIDExNzQgMTFCMTtDOUFFOzExMEMgMTE3NCAxMUIxOworQzlBRjtDOUFGOzExMEMgMTE3NCAxMUIyO0M5QUY7MTEwQyAxMTc0IDExQjI7CitDOUIwO0M5QjA7MTEwQyAxMTc0IDExQjM7QzlCMDsxMTBDIDExNzQgMTFCMzsKK0M5QjE7QzlCMTsxMTBDIDExNzQgMTFCNDtDOUIxOzExMEMgMTE3NCAxMUI0OworQzlCMjtDOUIyOzExMEMgMTE3NCAxMUI1O0M5QjI7MTEwQyAxMTc0IDExQjU7CitDOUIzO0M5QjM7MTEwQyAxMTc0IDExQjY7QzlCMzsxMTBDIDExNzQgMTFCNjsKK0M5QjQ7QzlCNDsxMTBDIDExNzQgMTFCNztDOUI0OzExMEMgMTE3NCAxMUI3OworQzlCNTtDOUI1OzExMEMgMTE3NCAxMUI4O0M5QjU7MTEwQyAxMTc0IDExQjg7CitDOUI2O0M5QjY7MTEwQyAxMTc0IDExQjk7QzlCNjsxMTBDIDExNzQgMTFCOTsKK0M5Qjc7QzlCNzsxMTBDIDExNzQgMTFCQTtDOUI3OzExMEMgMTE3NCAxMUJBOworQzlCODtDOUI4OzExMEMgMTE3NCAxMUJCO0M5Qjg7MTEwQyAxMTc0IDExQkI7CitDOUI5O0M5Qjk7MTEwQyAxMTc0IDExQkM7QzlCOTsxMTBDIDExNzQgMTFCQzsKK0M5QkE7QzlCQTsxMTBDIDExNzQgMTFCRDtDOUJBOzExMEMgMTE3NCAxMUJEOworQzlCQjtDOUJCOzExMEMgMTE3NCAxMUJFO0M5QkI7MTEwQyAxMTc0IDExQkU7CitDOUJDO0M5QkM7MTEwQyAxMTc0IDExQkY7QzlCQzsxMTBDIDExNzQgMTFCRjsKK0M5QkQ7QzlCRDsxMTBDIDExNzQgMTFDMDtDOUJEOzExMEMgMTE3NCAxMUMwOworQzlCRTtDOUJFOzExMEMgMTE3NCAxMUMxO0M5QkU7MTEwQyAxMTc0IDExQzE7CitDOUJGO0M5QkY7MTEwQyAxMTc0IDExQzI7QzlCRjsxMTBDIDExNzQgMTFDMjsKK0M5QzA7QzlDMDsxMTBDIDExNzU7QzlDMDsxMTBDIDExNzU7CitDOUMxO0M5QzE7MTEwQyAxMTc1IDExQTg7QzlDMTsxMTBDIDExNzUgMTFBODsKK0M5QzI7QzlDMjsxMTBDIDExNzUgMTFBOTtDOUMyOzExMEMgMTE3NSAxMUE5OworQzlDMztDOUMzOzExMEMgMTE3NSAxMUFBO0M5QzM7MTEwQyAxMTc1IDExQUE7CitDOUM0O0M5QzQ7MTEwQyAxMTc1IDExQUI7QzlDNDsxMTBDIDExNzUgMTFBQjsKK0M5QzU7QzlDNTsxMTBDIDExNzUgMTFBQztDOUM1OzExMEMgMTE3NSAxMUFDOworQzlDNjtDOUM2OzExMEMgMTE3NSAxMUFEO0M5QzY7MTEwQyAxMTc1IDExQUQ7CitDOUM3O0M5Qzc7MTEwQyAxMTc1IDExQUU7QzlDNzsxMTBDIDExNzUgMTFBRTsKK0M5Qzg7QzlDODsxMTBDIDExNzUgMTFBRjtDOUM4OzExMEMgMTE3NSAxMUFGOworQzlDOTtDOUM5OzExMEMgMTE3NSAxMUIwO0M5Qzk7MTEwQyAxMTc1IDExQjA7CitDOUNBO0M5Q0E7MTEwQyAxMTc1IDExQjE7QzlDQTsxMTBDIDExNzUgMTFCMTsKK0M5Q0I7QzlDQjsxMTBDIDExNzUgMTFCMjtDOUNCOzExMEMgMTE3NSAxMUIyOworQzlDQztDOUNDOzExMEMgMTE3NSAxMUIzO0M5Q0M7MTEwQyAxMTc1IDExQjM7CitDOUNEO0M5Q0Q7MTEwQyAxMTc1IDExQjQ7QzlDRDsxMTBDIDExNzUgMTFCNDsKK0M5Q0U7QzlDRTsxMTBDIDExNzUgMTFCNTtDOUNFOzExMEMgMTE3NSAxMUI1OworQzlDRjtDOUNGOzExMEMgMTE3NSAxMUI2O0M5Q0Y7MTEwQyAxMTc1IDExQjY7CitDOUQwO0M5RDA7MTEwQyAxMTc1IDExQjc7QzlEMDsxMTBDIDExNzUgMTFCNzsKK0M5RDE7QzlEMTsxMTBDIDExNzUgMTFCODtDOUQxOzExMEMgMTE3NSAxMUI4OworQzlEMjtDOUQyOzExMEMgMTE3NSAxMUI5O0M5RDI7MTEwQyAxMTc1IDExQjk7CitDOUQzO0M5RDM7MTEwQyAxMTc1IDExQkE7QzlEMzsxMTBDIDExNzUgMTFCQTsKK0M5RDQ7QzlENDsxMTBDIDExNzUgMTFCQjtDOUQ0OzExMEMgMTE3NSAxMUJCOworQzlENTtDOUQ1OzExMEMgMTE3NSAxMUJDO0M5RDU7MTEwQyAxMTc1IDExQkM7CitDOUQ2O0M5RDY7MTEwQyAxMTc1IDExQkQ7QzlENjsxMTBDIDExNzUgMTFCRDsKK0M5RDc7QzlENzsxMTBDIDExNzUgMTFCRTtDOUQ3OzExMEMgMTE3NSAxMUJFOworQzlEODtDOUQ4OzExMEMgMTE3NSAxMUJGO0M5RDg7MTEwQyAxMTc1IDExQkY7CitDOUQ5O0M5RDk7MTEwQyAxMTc1IDExQzA7QzlEOTsxMTBDIDExNzUgMTFDMDsKK0M5REE7QzlEQTsxMTBDIDExNzUgMTFDMTtDOURBOzExMEMgMTE3NSAxMUMxOworQzlEQjtDOURCOzExMEMgMTE3NSAxMUMyO0M5REI7MTEwQyAxMTc1IDExQzI7CitDOURDO0M5REM7MTEwRCAxMTYxO0M5REM7MTEwRCAxMTYxOworQzlERDtDOUREOzExMEQgMTE2MSAxMUE4O0M5REQ7MTEwRCAxMTYxIDExQTg7CitDOURFO0M5REU7MTEwRCAxMTYxIDExQTk7QzlERTsxMTBEIDExNjEgMTFBOTsKK0M5REY7QzlERjsxMTBEIDExNjEgMTFBQTtDOURGOzExMEQgMTE2MSAxMUFBOworQzlFMDtDOUUwOzExMEQgMTE2MSAxMUFCO0M5RTA7MTEwRCAxMTYxIDExQUI7CitDOUUxO0M5RTE7MTEwRCAxMTYxIDExQUM7QzlFMTsxMTBEIDExNjEgMTFBQzsKK0M5RTI7QzlFMjsxMTBEIDExNjEgMTFBRDtDOUUyOzExMEQgMTE2MSAxMUFEOworQzlFMztDOUUzOzExMEQgMTE2MSAxMUFFO0M5RTM7MTEwRCAxMTYxIDExQUU7CitDOUU0O0M5RTQ7MTEwRCAxMTYxIDExQUY7QzlFNDsxMTBEIDExNjEgMTFBRjsKK0M5RTU7QzlFNTsxMTBEIDExNjEgMTFCMDtDOUU1OzExMEQgMTE2MSAxMUIwOworQzlFNjtDOUU2OzExMEQgMTE2MSAxMUIxO0M5RTY7MTEwRCAxMTYxIDExQjE7CitDOUU3O0M5RTc7MTEwRCAxMTYxIDExQjI7QzlFNzsxMTBEIDExNjEgMTFCMjsKK0M5RTg7QzlFODsxMTBEIDExNjEgMTFCMztDOUU4OzExMEQgMTE2MSAxMUIzOworQzlFOTtDOUU5OzExMEQgMTE2MSAxMUI0O0M5RTk7MTEwRCAxMTYxIDExQjQ7CitDOUVBO0M5RUE7MTEwRCAxMTYxIDExQjU7QzlFQTsxMTBEIDExNjEgMTFCNTsKK0M5RUI7QzlFQjsxMTBEIDExNjEgMTFCNjtDOUVCOzExMEQgMTE2MSAxMUI2OworQzlFQztDOUVDOzExMEQgMTE2MSAxMUI3O0M5RUM7MTEwRCAxMTYxIDExQjc7CitDOUVEO0M5RUQ7MTEwRCAxMTYxIDExQjg7QzlFRDsxMTBEIDExNjEgMTFCODsKK0M5RUU7QzlFRTsxMTBEIDExNjEgMTFCOTtDOUVFOzExMEQgMTE2MSAxMUI5OworQzlFRjtDOUVGOzExMEQgMTE2MSAxMUJBO0M5RUY7MTEwRCAxMTYxIDExQkE7CitDOUYwO0M5RjA7MTEwRCAxMTYxIDExQkI7QzlGMDsxMTBEIDExNjEgMTFCQjsKK0M5RjE7QzlGMTsxMTBEIDExNjEgMTFCQztDOUYxOzExMEQgMTE2MSAxMUJDOworQzlGMjtDOUYyOzExMEQgMTE2MSAxMUJEO0M5RjI7MTEwRCAxMTYxIDExQkQ7CitDOUYzO0M5RjM7MTEwRCAxMTYxIDExQkU7QzlGMzsxMTBEIDExNjEgMTFCRTsKK0M5RjQ7QzlGNDsxMTBEIDExNjEgMTFCRjtDOUY0OzExMEQgMTE2MSAxMUJGOworQzlGNTtDOUY1OzExMEQgMTE2MSAxMUMwO0M5RjU7MTEwRCAxMTYxIDExQzA7CitDOUY2O0M5RjY7MTEwRCAxMTYxIDExQzE7QzlGNjsxMTBEIDExNjEgMTFDMTsKK0M5Rjc7QzlGNzsxMTBEIDExNjEgMTFDMjtDOUY3OzExMEQgMTE2MSAxMUMyOworQzlGODtDOUY4OzExMEQgMTE2MjtDOUY4OzExMEQgMTE2MjsKK0M5Rjk7QzlGOTsxMTBEIDExNjIgMTFBODtDOUY5OzExMEQgMTE2MiAxMUE4OworQzlGQTtDOUZBOzExMEQgMTE2MiAxMUE5O0M5RkE7MTEwRCAxMTYyIDExQTk7CitDOUZCO0M5RkI7MTEwRCAxMTYyIDExQUE7QzlGQjsxMTBEIDExNjIgMTFBQTsKK0M5RkM7QzlGQzsxMTBEIDExNjIgMTFBQjtDOUZDOzExMEQgMTE2MiAxMUFCOworQzlGRDtDOUZEOzExMEQgMTE2MiAxMUFDO0M5RkQ7MTEwRCAxMTYyIDExQUM7CitDOUZFO0M5RkU7MTEwRCAxMTYyIDExQUQ7QzlGRTsxMTBEIDExNjIgMTFBRDsKK0M5RkY7QzlGRjsxMTBEIDExNjIgMTFBRTtDOUZGOzExMEQgMTE2MiAxMUFFOworQ0EwMDtDQTAwOzExMEQgMTE2MiAxMUFGO0NBMDA7MTEwRCAxMTYyIDExQUY7CitDQTAxO0NBMDE7MTEwRCAxMTYyIDExQjA7Q0EwMTsxMTBEIDExNjIgMTFCMDsKK0NBMDI7Q0EwMjsxMTBEIDExNjIgMTFCMTtDQTAyOzExMEQgMTE2MiAxMUIxOworQ0EwMztDQTAzOzExMEQgMTE2MiAxMUIyO0NBMDM7MTEwRCAxMTYyIDExQjI7CitDQTA0O0NBMDQ7MTEwRCAxMTYyIDExQjM7Q0EwNDsxMTBEIDExNjIgMTFCMzsKK0NBMDU7Q0EwNTsxMTBEIDExNjIgMTFCNDtDQTA1OzExMEQgMTE2MiAxMUI0OworQ0EwNjtDQTA2OzExMEQgMTE2MiAxMUI1O0NBMDY7MTEwRCAxMTYyIDExQjU7CitDQTA3O0NBMDc7MTEwRCAxMTYyIDExQjY7Q0EwNzsxMTBEIDExNjIgMTFCNjsKK0NBMDg7Q0EwODsxMTBEIDExNjIgMTFCNztDQTA4OzExMEQgMTE2MiAxMUI3OworQ0EwOTtDQTA5OzExMEQgMTE2MiAxMUI4O0NBMDk7MTEwRCAxMTYyIDExQjg7CitDQTBBO0NBMEE7MTEwRCAxMTYyIDExQjk7Q0EwQTsxMTBEIDExNjIgMTFCOTsKK0NBMEI7Q0EwQjsxMTBEIDExNjIgMTFCQTtDQTBCOzExMEQgMTE2MiAxMUJBOworQ0EwQztDQTBDOzExMEQgMTE2MiAxMUJCO0NBMEM7MTEwRCAxMTYyIDExQkI7CitDQTBEO0NBMEQ7MTEwRCAxMTYyIDExQkM7Q0EwRDsxMTBEIDExNjIgMTFCQzsKK0NBMEU7Q0EwRTsxMTBEIDExNjIgMTFCRDtDQTBFOzExMEQgMTE2MiAxMUJEOworQ0EwRjtDQTBGOzExMEQgMTE2MiAxMUJFO0NBMEY7MTEwRCAxMTYyIDExQkU7CitDQTEwO0NBMTA7MTEwRCAxMTYyIDExQkY7Q0ExMDsxMTBEIDExNjIgMTFCRjsKK0NBMTE7Q0ExMTsxMTBEIDExNjIgMTFDMDtDQTExOzExMEQgMTE2MiAxMUMwOworQ0ExMjtDQTEyOzExMEQgMTE2MiAxMUMxO0NBMTI7MTEwRCAxMTYyIDExQzE7CitDQTEzO0NBMTM7MTEwRCAxMTYyIDExQzI7Q0ExMzsxMTBEIDExNjIgMTFDMjsKK0NBMTQ7Q0ExNDsxMTBEIDExNjM7Q0ExNDsxMTBEIDExNjM7CitDQTE1O0NBMTU7MTEwRCAxMTYzIDExQTg7Q0ExNTsxMTBEIDExNjMgMTFBODsKK0NBMTY7Q0ExNjsxMTBEIDExNjMgMTFBOTtDQTE2OzExMEQgMTE2MyAxMUE5OworQ0ExNztDQTE3OzExMEQgMTE2MyAxMUFBO0NBMTc7MTEwRCAxMTYzIDExQUE7CitDQTE4O0NBMTg7MTEwRCAxMTYzIDExQUI7Q0ExODsxMTBEIDExNjMgMTFBQjsKK0NBMTk7Q0ExOTsxMTBEIDExNjMgMTFBQztDQTE5OzExMEQgMTE2MyAxMUFDOworQ0ExQTtDQTFBOzExMEQgMTE2MyAxMUFEO0NBMUE7MTEwRCAxMTYzIDExQUQ7CitDQTFCO0NBMUI7MTEwRCAxMTYzIDExQUU7Q0ExQjsxMTBEIDExNjMgMTFBRTsKK0NBMUM7Q0ExQzsxMTBEIDExNjMgMTFBRjtDQTFDOzExMEQgMTE2MyAxMUFGOworQ0ExRDtDQTFEOzExMEQgMTE2MyAxMUIwO0NBMUQ7MTEwRCAxMTYzIDExQjA7CitDQTFFO0NBMUU7MTEwRCAxMTYzIDExQjE7Q0ExRTsxMTBEIDExNjMgMTFCMTsKK0NBMUY7Q0ExRjsxMTBEIDExNjMgMTFCMjtDQTFGOzExMEQgMTE2MyAxMUIyOworQ0EyMDtDQTIwOzExMEQgMTE2MyAxMUIzO0NBMjA7MTEwRCAxMTYzIDExQjM7CitDQTIxO0NBMjE7MTEwRCAxMTYzIDExQjQ7Q0EyMTsxMTBEIDExNjMgMTFCNDsKK0NBMjI7Q0EyMjsxMTBEIDExNjMgMTFCNTtDQTIyOzExMEQgMTE2MyAxMUI1OworQ0EyMztDQTIzOzExMEQgMTE2MyAxMUI2O0NBMjM7MTEwRCAxMTYzIDExQjY7CitDQTI0O0NBMjQ7MTEwRCAxMTYzIDExQjc7Q0EyNDsxMTBEIDExNjMgMTFCNzsKK0NBMjU7Q0EyNTsxMTBEIDExNjMgMTFCODtDQTI1OzExMEQgMTE2MyAxMUI4OworQ0EyNjtDQTI2OzExMEQgMTE2MyAxMUI5O0NBMjY7MTEwRCAxMTYzIDExQjk7CitDQTI3O0NBMjc7MTEwRCAxMTYzIDExQkE7Q0EyNzsxMTBEIDExNjMgMTFCQTsKK0NBMjg7Q0EyODsxMTBEIDExNjMgMTFCQjtDQTI4OzExMEQgMTE2MyAxMUJCOworQ0EyOTtDQTI5OzExMEQgMTE2MyAxMUJDO0NBMjk7MTEwRCAxMTYzIDExQkM7CitDQTJBO0NBMkE7MTEwRCAxMTYzIDExQkQ7Q0EyQTsxMTBEIDExNjMgMTFCRDsKK0NBMkI7Q0EyQjsxMTBEIDExNjMgMTFCRTtDQTJCOzExMEQgMTE2MyAxMUJFOworQ0EyQztDQTJDOzExMEQgMTE2MyAxMUJGO0NBMkM7MTEwRCAxMTYzIDExQkY7CitDQTJEO0NBMkQ7MTEwRCAxMTYzIDExQzA7Q0EyRDsxMTBEIDExNjMgMTFDMDsKK0NBMkU7Q0EyRTsxMTBEIDExNjMgMTFDMTtDQTJFOzExMEQgMTE2MyAxMUMxOworQ0EyRjtDQTJGOzExMEQgMTE2MyAxMUMyO0NBMkY7MTEwRCAxMTYzIDExQzI7CitDQTMwO0NBMzA7MTEwRCAxMTY0O0NBMzA7MTEwRCAxMTY0OworQ0EzMTtDQTMxOzExMEQgMTE2NCAxMUE4O0NBMzE7MTEwRCAxMTY0IDExQTg7CitDQTMyO0NBMzI7MTEwRCAxMTY0IDExQTk7Q0EzMjsxMTBEIDExNjQgMTFBOTsKK0NBMzM7Q0EzMzsxMTBEIDExNjQgMTFBQTtDQTMzOzExMEQgMTE2NCAxMUFBOworQ0EzNDtDQTM0OzExMEQgMTE2NCAxMUFCO0NBMzQ7MTEwRCAxMTY0IDExQUI7CitDQTM1O0NBMzU7MTEwRCAxMTY0IDExQUM7Q0EzNTsxMTBEIDExNjQgMTFBQzsKK0NBMzY7Q0EzNjsxMTBEIDExNjQgMTFBRDtDQTM2OzExMEQgMTE2NCAxMUFEOworQ0EzNztDQTM3OzExMEQgMTE2NCAxMUFFO0NBMzc7MTEwRCAxMTY0IDExQUU7CitDQTM4O0NBMzg7MTEwRCAxMTY0IDExQUY7Q0EzODsxMTBEIDExNjQgMTFBRjsKK0NBMzk7Q0EzOTsxMTBEIDExNjQgMTFCMDtDQTM5OzExMEQgMTE2NCAxMUIwOworQ0EzQTtDQTNBOzExMEQgMTE2NCAxMUIxO0NBM0E7MTEwRCAxMTY0IDExQjE7CitDQTNCO0NBM0I7MTEwRCAxMTY0IDExQjI7Q0EzQjsxMTBEIDExNjQgMTFCMjsKK0NBM0M7Q0EzQzsxMTBEIDExNjQgMTFCMztDQTNDOzExMEQgMTE2NCAxMUIzOworQ0EzRDtDQTNEOzExMEQgMTE2NCAxMUI0O0NBM0Q7MTEwRCAxMTY0IDExQjQ7CitDQTNFO0NBM0U7MTEwRCAxMTY0IDExQjU7Q0EzRTsxMTBEIDExNjQgMTFCNTsKK0NBM0Y7Q0EzRjsxMTBEIDExNjQgMTFCNjtDQTNGOzExMEQgMTE2NCAxMUI2OworQ0E0MDtDQTQwOzExMEQgMTE2NCAxMUI3O0NBNDA7MTEwRCAxMTY0IDExQjc7CitDQTQxO0NBNDE7MTEwRCAxMTY0IDExQjg7Q0E0MTsxMTBEIDExNjQgMTFCODsKK0NBNDI7Q0E0MjsxMTBEIDExNjQgMTFCOTtDQTQyOzExMEQgMTE2NCAxMUI5OworQ0E0MztDQTQzOzExMEQgMTE2NCAxMUJBO0NBNDM7MTEwRCAxMTY0IDExQkE7CitDQTQ0O0NBNDQ7MTEwRCAxMTY0IDExQkI7Q0E0NDsxMTBEIDExNjQgMTFCQjsKK0NBNDU7Q0E0NTsxMTBEIDExNjQgMTFCQztDQTQ1OzExMEQgMTE2NCAxMUJDOworQ0E0NjtDQTQ2OzExMEQgMTE2NCAxMUJEO0NBNDY7MTEwRCAxMTY0IDExQkQ7CitDQTQ3O0NBNDc7MTEwRCAxMTY0IDExQkU7Q0E0NzsxMTBEIDExNjQgMTFCRTsKK0NBNDg7Q0E0ODsxMTBEIDExNjQgMTFCRjtDQTQ4OzExMEQgMTE2NCAxMUJGOworQ0E0OTtDQTQ5OzExMEQgMTE2NCAxMUMwO0NBNDk7MTEwRCAxMTY0IDExQzA7CitDQTRBO0NBNEE7MTEwRCAxMTY0IDExQzE7Q0E0QTsxMTBEIDExNjQgMTFDMTsKK0NBNEI7Q0E0QjsxMTBEIDExNjQgMTFDMjtDQTRCOzExMEQgMTE2NCAxMUMyOworQ0E0QztDQTRDOzExMEQgMTE2NTtDQTRDOzExMEQgMTE2NTsKK0NBNEQ7Q0E0RDsxMTBEIDExNjUgMTFBODtDQTREOzExMEQgMTE2NSAxMUE4OworQ0E0RTtDQTRFOzExMEQgMTE2NSAxMUE5O0NBNEU7MTEwRCAxMTY1IDExQTk7CitDQTRGO0NBNEY7MTEwRCAxMTY1IDExQUE7Q0E0RjsxMTBEIDExNjUgMTFBQTsKK0NBNTA7Q0E1MDsxMTBEIDExNjUgMTFBQjtDQTUwOzExMEQgMTE2NSAxMUFCOworQ0E1MTtDQTUxOzExMEQgMTE2NSAxMUFDO0NBNTE7MTEwRCAxMTY1IDExQUM7CitDQTUyO0NBNTI7MTEwRCAxMTY1IDExQUQ7Q0E1MjsxMTBEIDExNjUgMTFBRDsKK0NBNTM7Q0E1MzsxMTBEIDExNjUgMTFBRTtDQTUzOzExMEQgMTE2NSAxMUFFOworQ0E1NDtDQTU0OzExMEQgMTE2NSAxMUFGO0NBNTQ7MTEwRCAxMTY1IDExQUY7CitDQTU1O0NBNTU7MTEwRCAxMTY1IDExQjA7Q0E1NTsxMTBEIDExNjUgMTFCMDsKK0NBNTY7Q0E1NjsxMTBEIDExNjUgMTFCMTtDQTU2OzExMEQgMTE2NSAxMUIxOworQ0E1NztDQTU3OzExMEQgMTE2NSAxMUIyO0NBNTc7MTEwRCAxMTY1IDExQjI7CitDQTU4O0NBNTg7MTEwRCAxMTY1IDExQjM7Q0E1ODsxMTBEIDExNjUgMTFCMzsKK0NBNTk7Q0E1OTsxMTBEIDExNjUgMTFCNDtDQTU5OzExMEQgMTE2NSAxMUI0OworQ0E1QTtDQTVBOzExMEQgMTE2NSAxMUI1O0NBNUE7MTEwRCAxMTY1IDExQjU7CitDQTVCO0NBNUI7MTEwRCAxMTY1IDExQjY7Q0E1QjsxMTBEIDExNjUgMTFCNjsKK0NBNUM7Q0E1QzsxMTBEIDExNjUgMTFCNztDQTVDOzExMEQgMTE2NSAxMUI3OworQ0E1RDtDQTVEOzExMEQgMTE2NSAxMUI4O0NBNUQ7MTEwRCAxMTY1IDExQjg7CitDQTVFO0NBNUU7MTEwRCAxMTY1IDExQjk7Q0E1RTsxMTBEIDExNjUgMTFCOTsKK0NBNUY7Q0E1RjsxMTBEIDExNjUgMTFCQTtDQTVGOzExMEQgMTE2NSAxMUJBOworQ0E2MDtDQTYwOzExMEQgMTE2NSAxMUJCO0NBNjA7MTEwRCAxMTY1IDExQkI7CitDQTYxO0NBNjE7MTEwRCAxMTY1IDExQkM7Q0E2MTsxMTBEIDExNjUgMTFCQzsKK0NBNjI7Q0E2MjsxMTBEIDExNjUgMTFCRDtDQTYyOzExMEQgMTE2NSAxMUJEOworQ0E2MztDQTYzOzExMEQgMTE2NSAxMUJFO0NBNjM7MTEwRCAxMTY1IDExQkU7CitDQTY0O0NBNjQ7MTEwRCAxMTY1IDExQkY7Q0E2NDsxMTBEIDExNjUgMTFCRjsKK0NBNjU7Q0E2NTsxMTBEIDExNjUgMTFDMDtDQTY1OzExMEQgMTE2NSAxMUMwOworQ0E2NjtDQTY2OzExMEQgMTE2NSAxMUMxO0NBNjY7MTEwRCAxMTY1IDExQzE7CitDQTY3O0NBNjc7MTEwRCAxMTY1IDExQzI7Q0E2NzsxMTBEIDExNjUgMTFDMjsKK0NBNjg7Q0E2ODsxMTBEIDExNjY7Q0E2ODsxMTBEIDExNjY7CitDQTY5O0NBNjk7MTEwRCAxMTY2IDExQTg7Q0E2OTsxMTBEIDExNjYgMTFBODsKK0NBNkE7Q0E2QTsxMTBEIDExNjYgMTFBOTtDQTZBOzExMEQgMTE2NiAxMUE5OworQ0E2QjtDQTZCOzExMEQgMTE2NiAxMUFBO0NBNkI7MTEwRCAxMTY2IDExQUE7CitDQTZDO0NBNkM7MTEwRCAxMTY2IDExQUI7Q0E2QzsxMTBEIDExNjYgMTFBQjsKK0NBNkQ7Q0E2RDsxMTBEIDExNjYgMTFBQztDQTZEOzExMEQgMTE2NiAxMUFDOworQ0E2RTtDQTZFOzExMEQgMTE2NiAxMUFEO0NBNkU7MTEwRCAxMTY2IDExQUQ7CitDQTZGO0NBNkY7MTEwRCAxMTY2IDExQUU7Q0E2RjsxMTBEIDExNjYgMTFBRTsKK0NBNzA7Q0E3MDsxMTBEIDExNjYgMTFBRjtDQTcwOzExMEQgMTE2NiAxMUFGOworQ0E3MTtDQTcxOzExMEQgMTE2NiAxMUIwO0NBNzE7MTEwRCAxMTY2IDExQjA7CitDQTcyO0NBNzI7MTEwRCAxMTY2IDExQjE7Q0E3MjsxMTBEIDExNjYgMTFCMTsKK0NBNzM7Q0E3MzsxMTBEIDExNjYgMTFCMjtDQTczOzExMEQgMTE2NiAxMUIyOworQ0E3NDtDQTc0OzExMEQgMTE2NiAxMUIzO0NBNzQ7MTEwRCAxMTY2IDExQjM7CitDQTc1O0NBNzU7MTEwRCAxMTY2IDExQjQ7Q0E3NTsxMTBEIDExNjYgMTFCNDsKK0NBNzY7Q0E3NjsxMTBEIDExNjYgMTFCNTtDQTc2OzExMEQgMTE2NiAxMUI1OworQ0E3NztDQTc3OzExMEQgMTE2NiAxMUI2O0NBNzc7MTEwRCAxMTY2IDExQjY7CitDQTc4O0NBNzg7MTEwRCAxMTY2IDExQjc7Q0E3ODsxMTBEIDExNjYgMTFCNzsKK0NBNzk7Q0E3OTsxMTBEIDExNjYgMTFCODtDQTc5OzExMEQgMTE2NiAxMUI4OworQ0E3QTtDQTdBOzExMEQgMTE2NiAxMUI5O0NBN0E7MTEwRCAxMTY2IDExQjk7CitDQTdCO0NBN0I7MTEwRCAxMTY2IDExQkE7Q0E3QjsxMTBEIDExNjYgMTFCQTsKK0NBN0M7Q0E3QzsxMTBEIDExNjYgMTFCQjtDQTdDOzExMEQgMTE2NiAxMUJCOworQ0E3RDtDQTdEOzExMEQgMTE2NiAxMUJDO0NBN0Q7MTEwRCAxMTY2IDExQkM7CitDQTdFO0NBN0U7MTEwRCAxMTY2IDExQkQ7Q0E3RTsxMTBEIDExNjYgMTFCRDsKK0NBN0Y7Q0E3RjsxMTBEIDExNjYgMTFCRTtDQTdGOzExMEQgMTE2NiAxMUJFOworQ0E4MDtDQTgwOzExMEQgMTE2NiAxMUJGO0NBODA7MTEwRCAxMTY2IDExQkY7CitDQTgxO0NBODE7MTEwRCAxMTY2IDExQzA7Q0E4MTsxMTBEIDExNjYgMTFDMDsKK0NBODI7Q0E4MjsxMTBEIDExNjYgMTFDMTtDQTgyOzExMEQgMTE2NiAxMUMxOworQ0E4MztDQTgzOzExMEQgMTE2NiAxMUMyO0NBODM7MTEwRCAxMTY2IDExQzI7CitDQTg0O0NBODQ7MTEwRCAxMTY3O0NBODQ7MTEwRCAxMTY3OworQ0E4NTtDQTg1OzExMEQgMTE2NyAxMUE4O0NBODU7MTEwRCAxMTY3IDExQTg7CitDQTg2O0NBODY7MTEwRCAxMTY3IDExQTk7Q0E4NjsxMTBEIDExNjcgMTFBOTsKK0NBODc7Q0E4NzsxMTBEIDExNjcgMTFBQTtDQTg3OzExMEQgMTE2NyAxMUFBOworQ0E4ODtDQTg4OzExMEQgMTE2NyAxMUFCO0NBODg7MTEwRCAxMTY3IDExQUI7CitDQTg5O0NBODk7MTEwRCAxMTY3IDExQUM7Q0E4OTsxMTBEIDExNjcgMTFBQzsKK0NBOEE7Q0E4QTsxMTBEIDExNjcgMTFBRDtDQThBOzExMEQgMTE2NyAxMUFEOworQ0E4QjtDQThCOzExMEQgMTE2NyAxMUFFO0NBOEI7MTEwRCAxMTY3IDExQUU7CitDQThDO0NBOEM7MTEwRCAxMTY3IDExQUY7Q0E4QzsxMTBEIDExNjcgMTFBRjsKK0NBOEQ7Q0E4RDsxMTBEIDExNjcgMTFCMDtDQThEOzExMEQgMTE2NyAxMUIwOworQ0E4RTtDQThFOzExMEQgMTE2NyAxMUIxO0NBOEU7MTEwRCAxMTY3IDExQjE7CitDQThGO0NBOEY7MTEwRCAxMTY3IDExQjI7Q0E4RjsxMTBEIDExNjcgMTFCMjsKK0NBOTA7Q0E5MDsxMTBEIDExNjcgMTFCMztDQTkwOzExMEQgMTE2NyAxMUIzOworQ0E5MTtDQTkxOzExMEQgMTE2NyAxMUI0O0NBOTE7MTEwRCAxMTY3IDExQjQ7CitDQTkyO0NBOTI7MTEwRCAxMTY3IDExQjU7Q0E5MjsxMTBEIDExNjcgMTFCNTsKK0NBOTM7Q0E5MzsxMTBEIDExNjcgMTFCNjtDQTkzOzExMEQgMTE2NyAxMUI2OworQ0E5NDtDQTk0OzExMEQgMTE2NyAxMUI3O0NBOTQ7MTEwRCAxMTY3IDExQjc7CitDQTk1O0NBOTU7MTEwRCAxMTY3IDExQjg7Q0E5NTsxMTBEIDExNjcgMTFCODsKK0NBOTY7Q0E5NjsxMTBEIDExNjcgMTFCOTtDQTk2OzExMEQgMTE2NyAxMUI5OworQ0E5NztDQTk3OzExMEQgMTE2NyAxMUJBO0NBOTc7MTEwRCAxMTY3IDExQkE7CitDQTk4O0NBOTg7MTEwRCAxMTY3IDExQkI7Q0E5ODsxMTBEIDExNjcgMTFCQjsKK0NBOTk7Q0E5OTsxMTBEIDExNjcgMTFCQztDQTk5OzExMEQgMTE2NyAxMUJDOworQ0E5QTtDQTlBOzExMEQgMTE2NyAxMUJEO0NBOUE7MTEwRCAxMTY3IDExQkQ7CitDQTlCO0NBOUI7MTEwRCAxMTY3IDExQkU7Q0E5QjsxMTBEIDExNjcgMTFCRTsKK0NBOUM7Q0E5QzsxMTBEIDExNjcgMTFCRjtDQTlDOzExMEQgMTE2NyAxMUJGOworQ0E5RDtDQTlEOzExMEQgMTE2NyAxMUMwO0NBOUQ7MTEwRCAxMTY3IDExQzA7CitDQTlFO0NBOUU7MTEwRCAxMTY3IDExQzE7Q0E5RTsxMTBEIDExNjcgMTFDMTsKK0NBOUY7Q0E5RjsxMTBEIDExNjcgMTFDMjtDQTlGOzExMEQgMTE2NyAxMUMyOworQ0FBMDtDQUEwOzExMEQgMTE2ODtDQUEwOzExMEQgMTE2ODsKK0NBQTE7Q0FBMTsxMTBEIDExNjggMTFBODtDQUExOzExMEQgMTE2OCAxMUE4OworQ0FBMjtDQUEyOzExMEQgMTE2OCAxMUE5O0NBQTI7MTEwRCAxMTY4IDExQTk7CitDQUEzO0NBQTM7MTEwRCAxMTY4IDExQUE7Q0FBMzsxMTBEIDExNjggMTFBQTsKK0NBQTQ7Q0FBNDsxMTBEIDExNjggMTFBQjtDQUE0OzExMEQgMTE2OCAxMUFCOworQ0FBNTtDQUE1OzExMEQgMTE2OCAxMUFDO0NBQTU7MTEwRCAxMTY4IDExQUM7CitDQUE2O0NBQTY7MTEwRCAxMTY4IDExQUQ7Q0FBNjsxMTBEIDExNjggMTFBRDsKK0NBQTc7Q0FBNzsxMTBEIDExNjggMTFBRTtDQUE3OzExMEQgMTE2OCAxMUFFOworQ0FBODtDQUE4OzExMEQgMTE2OCAxMUFGO0NBQTg7MTEwRCAxMTY4IDExQUY7CitDQUE5O0NBQTk7MTEwRCAxMTY4IDExQjA7Q0FBOTsxMTBEIDExNjggMTFCMDsKK0NBQUE7Q0FBQTsxMTBEIDExNjggMTFCMTtDQUFBOzExMEQgMTE2OCAxMUIxOworQ0FBQjtDQUFCOzExMEQgMTE2OCAxMUIyO0NBQUI7MTEwRCAxMTY4IDExQjI7CitDQUFDO0NBQUM7MTEwRCAxMTY4IDExQjM7Q0FBQzsxMTBEIDExNjggMTFCMzsKK0NBQUQ7Q0FBRDsxMTBEIDExNjggMTFCNDtDQUFEOzExMEQgMTE2OCAxMUI0OworQ0FBRTtDQUFFOzExMEQgMTE2OCAxMUI1O0NBQUU7MTEwRCAxMTY4IDExQjU7CitDQUFGO0NBQUY7MTEwRCAxMTY4IDExQjY7Q0FBRjsxMTBEIDExNjggMTFCNjsKK0NBQjA7Q0FCMDsxMTBEIDExNjggMTFCNztDQUIwOzExMEQgMTE2OCAxMUI3OworQ0FCMTtDQUIxOzExMEQgMTE2OCAxMUI4O0NBQjE7MTEwRCAxMTY4IDExQjg7CitDQUIyO0NBQjI7MTEwRCAxMTY4IDExQjk7Q0FCMjsxMTBEIDExNjggMTFCOTsKK0NBQjM7Q0FCMzsxMTBEIDExNjggMTFCQTtDQUIzOzExMEQgMTE2OCAxMUJBOworQ0FCNDtDQUI0OzExMEQgMTE2OCAxMUJCO0NBQjQ7MTEwRCAxMTY4IDExQkI7CitDQUI1O0NBQjU7MTEwRCAxMTY4IDExQkM7Q0FCNTsxMTBEIDExNjggMTFCQzsKK0NBQjY7Q0FCNjsxMTBEIDExNjggMTFCRDtDQUI2OzExMEQgMTE2OCAxMUJEOworQ0FCNztDQUI3OzExMEQgMTE2OCAxMUJFO0NBQjc7MTEwRCAxMTY4IDExQkU7CitDQUI4O0NBQjg7MTEwRCAxMTY4IDExQkY7Q0FCODsxMTBEIDExNjggMTFCRjsKK0NBQjk7Q0FCOTsxMTBEIDExNjggMTFDMDtDQUI5OzExMEQgMTE2OCAxMUMwOworQ0FCQTtDQUJBOzExMEQgMTE2OCAxMUMxO0NBQkE7MTEwRCAxMTY4IDExQzE7CitDQUJCO0NBQkI7MTEwRCAxMTY4IDExQzI7Q0FCQjsxMTBEIDExNjggMTFDMjsKK0NBQkM7Q0FCQzsxMTBEIDExNjk7Q0FCQzsxMTBEIDExNjk7CitDQUJEO0NBQkQ7MTEwRCAxMTY5IDExQTg7Q0FCRDsxMTBEIDExNjkgMTFBODsKK0NBQkU7Q0FCRTsxMTBEIDExNjkgMTFBOTtDQUJFOzExMEQgMTE2OSAxMUE5OworQ0FCRjtDQUJGOzExMEQgMTE2OSAxMUFBO0NBQkY7MTEwRCAxMTY5IDExQUE7CitDQUMwO0NBQzA7MTEwRCAxMTY5IDExQUI7Q0FDMDsxMTBEIDExNjkgMTFBQjsKK0NBQzE7Q0FDMTsxMTBEIDExNjkgMTFBQztDQUMxOzExMEQgMTE2OSAxMUFDOworQ0FDMjtDQUMyOzExMEQgMTE2OSAxMUFEO0NBQzI7MTEwRCAxMTY5IDExQUQ7CitDQUMzO0NBQzM7MTEwRCAxMTY5IDExQUU7Q0FDMzsxMTBEIDExNjkgMTFBRTsKK0NBQzQ7Q0FDNDsxMTBEIDExNjkgMTFBRjtDQUM0OzExMEQgMTE2OSAxMUFGOworQ0FDNTtDQUM1OzExMEQgMTE2OSAxMUIwO0NBQzU7MTEwRCAxMTY5IDExQjA7CitDQUM2O0NBQzY7MTEwRCAxMTY5IDExQjE7Q0FDNjsxMTBEIDExNjkgMTFCMTsKK0NBQzc7Q0FDNzsxMTBEIDExNjkgMTFCMjtDQUM3OzExMEQgMTE2OSAxMUIyOworQ0FDODtDQUM4OzExMEQgMTE2OSAxMUIzO0NBQzg7MTEwRCAxMTY5IDExQjM7CitDQUM5O0NBQzk7MTEwRCAxMTY5IDExQjQ7Q0FDOTsxMTBEIDExNjkgMTFCNDsKK0NBQ0E7Q0FDQTsxMTBEIDExNjkgMTFCNTtDQUNBOzExMEQgMTE2OSAxMUI1OworQ0FDQjtDQUNCOzExMEQgMTE2OSAxMUI2O0NBQ0I7MTEwRCAxMTY5IDExQjY7CitDQUNDO0NBQ0M7MTEwRCAxMTY5IDExQjc7Q0FDQzsxMTBEIDExNjkgMTFCNzsKK0NBQ0Q7Q0FDRDsxMTBEIDExNjkgMTFCODtDQUNEOzExMEQgMTE2OSAxMUI4OworQ0FDRTtDQUNFOzExMEQgMTE2OSAxMUI5O0NBQ0U7MTEwRCAxMTY5IDExQjk7CitDQUNGO0NBQ0Y7MTEwRCAxMTY5IDExQkE7Q0FDRjsxMTBEIDExNjkgMTFCQTsKK0NBRDA7Q0FEMDsxMTBEIDExNjkgMTFCQjtDQUQwOzExMEQgMTE2OSAxMUJCOworQ0FEMTtDQUQxOzExMEQgMTE2OSAxMUJDO0NBRDE7MTEwRCAxMTY5IDExQkM7CitDQUQyO0NBRDI7MTEwRCAxMTY5IDExQkQ7Q0FEMjsxMTBEIDExNjkgMTFCRDsKK0NBRDM7Q0FEMzsxMTBEIDExNjkgMTFCRTtDQUQzOzExMEQgMTE2OSAxMUJFOworQ0FENDtDQUQ0OzExMEQgMTE2OSAxMUJGO0NBRDQ7MTEwRCAxMTY5IDExQkY7CitDQUQ1O0NBRDU7MTEwRCAxMTY5IDExQzA7Q0FENTsxMTBEIDExNjkgMTFDMDsKK0NBRDY7Q0FENjsxMTBEIDExNjkgMTFDMTtDQUQ2OzExMEQgMTE2OSAxMUMxOworQ0FENztDQUQ3OzExMEQgMTE2OSAxMUMyO0NBRDc7MTEwRCAxMTY5IDExQzI7CitDQUQ4O0NBRDg7MTEwRCAxMTZBO0NBRDg7MTEwRCAxMTZBOworQ0FEOTtDQUQ5OzExMEQgMTE2QSAxMUE4O0NBRDk7MTEwRCAxMTZBIDExQTg7CitDQURBO0NBREE7MTEwRCAxMTZBIDExQTk7Q0FEQTsxMTBEIDExNkEgMTFBOTsKK0NBREI7Q0FEQjsxMTBEIDExNkEgMTFBQTtDQURCOzExMEQgMTE2QSAxMUFBOworQ0FEQztDQURDOzExMEQgMTE2QSAxMUFCO0NBREM7MTEwRCAxMTZBIDExQUI7CitDQUREO0NBREQ7MTEwRCAxMTZBIDExQUM7Q0FERDsxMTBEIDExNkEgMTFBQzsKK0NBREU7Q0FERTsxMTBEIDExNkEgMTFBRDtDQURFOzExMEQgMTE2QSAxMUFEOworQ0FERjtDQURGOzExMEQgMTE2QSAxMUFFO0NBREY7MTEwRCAxMTZBIDExQUU7CitDQUUwO0NBRTA7MTEwRCAxMTZBIDExQUY7Q0FFMDsxMTBEIDExNkEgMTFBRjsKK0NBRTE7Q0FFMTsxMTBEIDExNkEgMTFCMDtDQUUxOzExMEQgMTE2QSAxMUIwOworQ0FFMjtDQUUyOzExMEQgMTE2QSAxMUIxO0NBRTI7MTEwRCAxMTZBIDExQjE7CitDQUUzO0NBRTM7MTEwRCAxMTZBIDExQjI7Q0FFMzsxMTBEIDExNkEgMTFCMjsKK0NBRTQ7Q0FFNDsxMTBEIDExNkEgMTFCMztDQUU0OzExMEQgMTE2QSAxMUIzOworQ0FFNTtDQUU1OzExMEQgMTE2QSAxMUI0O0NBRTU7MTEwRCAxMTZBIDExQjQ7CitDQUU2O0NBRTY7MTEwRCAxMTZBIDExQjU7Q0FFNjsxMTBEIDExNkEgMTFCNTsKK0NBRTc7Q0FFNzsxMTBEIDExNkEgMTFCNjtDQUU3OzExMEQgMTE2QSAxMUI2OworQ0FFODtDQUU4OzExMEQgMTE2QSAxMUI3O0NBRTg7MTEwRCAxMTZBIDExQjc7CitDQUU5O0NBRTk7MTEwRCAxMTZBIDExQjg7Q0FFOTsxMTBEIDExNkEgMTFCODsKK0NBRUE7Q0FFQTsxMTBEIDExNkEgMTFCOTtDQUVBOzExMEQgMTE2QSAxMUI5OworQ0FFQjtDQUVCOzExMEQgMTE2QSAxMUJBO0NBRUI7MTEwRCAxMTZBIDExQkE7CitDQUVDO0NBRUM7MTEwRCAxMTZBIDExQkI7Q0FFQzsxMTBEIDExNkEgMTFCQjsKK0NBRUQ7Q0FFRDsxMTBEIDExNkEgMTFCQztDQUVEOzExMEQgMTE2QSAxMUJDOworQ0FFRTtDQUVFOzExMEQgMTE2QSAxMUJEO0NBRUU7MTEwRCAxMTZBIDExQkQ7CitDQUVGO0NBRUY7MTEwRCAxMTZBIDExQkU7Q0FFRjsxMTBEIDExNkEgMTFCRTsKK0NBRjA7Q0FGMDsxMTBEIDExNkEgMTFCRjtDQUYwOzExMEQgMTE2QSAxMUJGOworQ0FGMTtDQUYxOzExMEQgMTE2QSAxMUMwO0NBRjE7MTEwRCAxMTZBIDExQzA7CitDQUYyO0NBRjI7MTEwRCAxMTZBIDExQzE7Q0FGMjsxMTBEIDExNkEgMTFDMTsKK0NBRjM7Q0FGMzsxMTBEIDExNkEgMTFDMjtDQUYzOzExMEQgMTE2QSAxMUMyOworQ0FGNDtDQUY0OzExMEQgMTE2QjtDQUY0OzExMEQgMTE2QjsKK0NBRjU7Q0FGNTsxMTBEIDExNkIgMTFBODtDQUY1OzExMEQgMTE2QiAxMUE4OworQ0FGNjtDQUY2OzExMEQgMTE2QiAxMUE5O0NBRjY7MTEwRCAxMTZCIDExQTk7CitDQUY3O0NBRjc7MTEwRCAxMTZCIDExQUE7Q0FGNzsxMTBEIDExNkIgMTFBQTsKK0NBRjg7Q0FGODsxMTBEIDExNkIgMTFBQjtDQUY4OzExMEQgMTE2QiAxMUFCOworQ0FGOTtDQUY5OzExMEQgMTE2QiAxMUFDO0NBRjk7MTEwRCAxMTZCIDExQUM7CitDQUZBO0NBRkE7MTEwRCAxMTZCIDExQUQ7Q0FGQTsxMTBEIDExNkIgMTFBRDsKK0NBRkI7Q0FGQjsxMTBEIDExNkIgMTFBRTtDQUZCOzExMEQgMTE2QiAxMUFFOworQ0FGQztDQUZDOzExMEQgMTE2QiAxMUFGO0NBRkM7MTEwRCAxMTZCIDExQUY7CitDQUZEO0NBRkQ7MTEwRCAxMTZCIDExQjA7Q0FGRDsxMTBEIDExNkIgMTFCMDsKK0NBRkU7Q0FGRTsxMTBEIDExNkIgMTFCMTtDQUZFOzExMEQgMTE2QiAxMUIxOworQ0FGRjtDQUZGOzExMEQgMTE2QiAxMUIyO0NBRkY7MTEwRCAxMTZCIDExQjI7CitDQjAwO0NCMDA7MTEwRCAxMTZCIDExQjM7Q0IwMDsxMTBEIDExNkIgMTFCMzsKK0NCMDE7Q0IwMTsxMTBEIDExNkIgMTFCNDtDQjAxOzExMEQgMTE2QiAxMUI0OworQ0IwMjtDQjAyOzExMEQgMTE2QiAxMUI1O0NCMDI7MTEwRCAxMTZCIDExQjU7CitDQjAzO0NCMDM7MTEwRCAxMTZCIDExQjY7Q0IwMzsxMTBEIDExNkIgMTFCNjsKK0NCMDQ7Q0IwNDsxMTBEIDExNkIgMTFCNztDQjA0OzExMEQgMTE2QiAxMUI3OworQ0IwNTtDQjA1OzExMEQgMTE2QiAxMUI4O0NCMDU7MTEwRCAxMTZCIDExQjg7CitDQjA2O0NCMDY7MTEwRCAxMTZCIDExQjk7Q0IwNjsxMTBEIDExNkIgMTFCOTsKK0NCMDc7Q0IwNzsxMTBEIDExNkIgMTFCQTtDQjA3OzExMEQgMTE2QiAxMUJBOworQ0IwODtDQjA4OzExMEQgMTE2QiAxMUJCO0NCMDg7MTEwRCAxMTZCIDExQkI7CitDQjA5O0NCMDk7MTEwRCAxMTZCIDExQkM7Q0IwOTsxMTBEIDExNkIgMTFCQzsKK0NCMEE7Q0IwQTsxMTBEIDExNkIgMTFCRDtDQjBBOzExMEQgMTE2QiAxMUJEOworQ0IwQjtDQjBCOzExMEQgMTE2QiAxMUJFO0NCMEI7MTEwRCAxMTZCIDExQkU7CitDQjBDO0NCMEM7MTEwRCAxMTZCIDExQkY7Q0IwQzsxMTBEIDExNkIgMTFCRjsKK0NCMEQ7Q0IwRDsxMTBEIDExNkIgMTFDMDtDQjBEOzExMEQgMTE2QiAxMUMwOworQ0IwRTtDQjBFOzExMEQgMTE2QiAxMUMxO0NCMEU7MTEwRCAxMTZCIDExQzE7CitDQjBGO0NCMEY7MTEwRCAxMTZCIDExQzI7Q0IwRjsxMTBEIDExNkIgMTFDMjsKK0NCMTA7Q0IxMDsxMTBEIDExNkM7Q0IxMDsxMTBEIDExNkM7CitDQjExO0NCMTE7MTEwRCAxMTZDIDExQTg7Q0IxMTsxMTBEIDExNkMgMTFBODsKK0NCMTI7Q0IxMjsxMTBEIDExNkMgMTFBOTtDQjEyOzExMEQgMTE2QyAxMUE5OworQ0IxMztDQjEzOzExMEQgMTE2QyAxMUFBO0NCMTM7MTEwRCAxMTZDIDExQUE7CitDQjE0O0NCMTQ7MTEwRCAxMTZDIDExQUI7Q0IxNDsxMTBEIDExNkMgMTFBQjsKK0NCMTU7Q0IxNTsxMTBEIDExNkMgMTFBQztDQjE1OzExMEQgMTE2QyAxMUFDOworQ0IxNjtDQjE2OzExMEQgMTE2QyAxMUFEO0NCMTY7MTEwRCAxMTZDIDExQUQ7CitDQjE3O0NCMTc7MTEwRCAxMTZDIDExQUU7Q0IxNzsxMTBEIDExNkMgMTFBRTsKK0NCMTg7Q0IxODsxMTBEIDExNkMgMTFBRjtDQjE4OzExMEQgMTE2QyAxMUFGOworQ0IxOTtDQjE5OzExMEQgMTE2QyAxMUIwO0NCMTk7MTEwRCAxMTZDIDExQjA7CitDQjFBO0NCMUE7MTEwRCAxMTZDIDExQjE7Q0IxQTsxMTBEIDExNkMgMTFCMTsKK0NCMUI7Q0IxQjsxMTBEIDExNkMgMTFCMjtDQjFCOzExMEQgMTE2QyAxMUIyOworQ0IxQztDQjFDOzExMEQgMTE2QyAxMUIzO0NCMUM7MTEwRCAxMTZDIDExQjM7CitDQjFEO0NCMUQ7MTEwRCAxMTZDIDExQjQ7Q0IxRDsxMTBEIDExNkMgMTFCNDsKK0NCMUU7Q0IxRTsxMTBEIDExNkMgMTFCNTtDQjFFOzExMEQgMTE2QyAxMUI1OworQ0IxRjtDQjFGOzExMEQgMTE2QyAxMUI2O0NCMUY7MTEwRCAxMTZDIDExQjY7CitDQjIwO0NCMjA7MTEwRCAxMTZDIDExQjc7Q0IyMDsxMTBEIDExNkMgMTFCNzsKK0NCMjE7Q0IyMTsxMTBEIDExNkMgMTFCODtDQjIxOzExMEQgMTE2QyAxMUI4OworQ0IyMjtDQjIyOzExMEQgMTE2QyAxMUI5O0NCMjI7MTEwRCAxMTZDIDExQjk7CitDQjIzO0NCMjM7MTEwRCAxMTZDIDExQkE7Q0IyMzsxMTBEIDExNkMgMTFCQTsKK0NCMjQ7Q0IyNDsxMTBEIDExNkMgMTFCQjtDQjI0OzExMEQgMTE2QyAxMUJCOworQ0IyNTtDQjI1OzExMEQgMTE2QyAxMUJDO0NCMjU7MTEwRCAxMTZDIDExQkM7CitDQjI2O0NCMjY7MTEwRCAxMTZDIDExQkQ7Q0IyNjsxMTBEIDExNkMgMTFCRDsKK0NCMjc7Q0IyNzsxMTBEIDExNkMgMTFCRTtDQjI3OzExMEQgMTE2QyAxMUJFOworQ0IyODtDQjI4OzExMEQgMTE2QyAxMUJGO0NCMjg7MTEwRCAxMTZDIDExQkY7CitDQjI5O0NCMjk7MTEwRCAxMTZDIDExQzA7Q0IyOTsxMTBEIDExNkMgMTFDMDsKK0NCMkE7Q0IyQTsxMTBEIDExNkMgMTFDMTtDQjJBOzExMEQgMTE2QyAxMUMxOworQ0IyQjtDQjJCOzExMEQgMTE2QyAxMUMyO0NCMkI7MTEwRCAxMTZDIDExQzI7CitDQjJDO0NCMkM7MTEwRCAxMTZEO0NCMkM7MTEwRCAxMTZEOworQ0IyRDtDQjJEOzExMEQgMTE2RCAxMUE4O0NCMkQ7MTEwRCAxMTZEIDExQTg7CitDQjJFO0NCMkU7MTEwRCAxMTZEIDExQTk7Q0IyRTsxMTBEIDExNkQgMTFBOTsKK0NCMkY7Q0IyRjsxMTBEIDExNkQgMTFBQTtDQjJGOzExMEQgMTE2RCAxMUFBOworQ0IzMDtDQjMwOzExMEQgMTE2RCAxMUFCO0NCMzA7MTEwRCAxMTZEIDExQUI7CitDQjMxO0NCMzE7MTEwRCAxMTZEIDExQUM7Q0IzMTsxMTBEIDExNkQgMTFBQzsKK0NCMzI7Q0IzMjsxMTBEIDExNkQgMTFBRDtDQjMyOzExMEQgMTE2RCAxMUFEOworQ0IzMztDQjMzOzExMEQgMTE2RCAxMUFFO0NCMzM7MTEwRCAxMTZEIDExQUU7CitDQjM0O0NCMzQ7MTEwRCAxMTZEIDExQUY7Q0IzNDsxMTBEIDExNkQgMTFBRjsKK0NCMzU7Q0IzNTsxMTBEIDExNkQgMTFCMDtDQjM1OzExMEQgMTE2RCAxMUIwOworQ0IzNjtDQjM2OzExMEQgMTE2RCAxMUIxO0NCMzY7MTEwRCAxMTZEIDExQjE7CitDQjM3O0NCMzc7MTEwRCAxMTZEIDExQjI7Q0IzNzsxMTBEIDExNkQgMTFCMjsKK0NCMzg7Q0IzODsxMTBEIDExNkQgMTFCMztDQjM4OzExMEQgMTE2RCAxMUIzOworQ0IzOTtDQjM5OzExMEQgMTE2RCAxMUI0O0NCMzk7MTEwRCAxMTZEIDExQjQ7CitDQjNBO0NCM0E7MTEwRCAxMTZEIDExQjU7Q0IzQTsxMTBEIDExNkQgMTFCNTsKK0NCM0I7Q0IzQjsxMTBEIDExNkQgMTFCNjtDQjNCOzExMEQgMTE2RCAxMUI2OworQ0IzQztDQjNDOzExMEQgMTE2RCAxMUI3O0NCM0M7MTEwRCAxMTZEIDExQjc7CitDQjNEO0NCM0Q7MTEwRCAxMTZEIDExQjg7Q0IzRDsxMTBEIDExNkQgMTFCODsKK0NCM0U7Q0IzRTsxMTBEIDExNkQgMTFCOTtDQjNFOzExMEQgMTE2RCAxMUI5OworQ0IzRjtDQjNGOzExMEQgMTE2RCAxMUJBO0NCM0Y7MTEwRCAxMTZEIDExQkE7CitDQjQwO0NCNDA7MTEwRCAxMTZEIDExQkI7Q0I0MDsxMTBEIDExNkQgMTFCQjsKK0NCNDE7Q0I0MTsxMTBEIDExNkQgMTFCQztDQjQxOzExMEQgMTE2RCAxMUJDOworQ0I0MjtDQjQyOzExMEQgMTE2RCAxMUJEO0NCNDI7MTEwRCAxMTZEIDExQkQ7CitDQjQzO0NCNDM7MTEwRCAxMTZEIDExQkU7Q0I0MzsxMTBEIDExNkQgMTFCRTsKK0NCNDQ7Q0I0NDsxMTBEIDExNkQgMTFCRjtDQjQ0OzExMEQgMTE2RCAxMUJGOworQ0I0NTtDQjQ1OzExMEQgMTE2RCAxMUMwO0NCNDU7MTEwRCAxMTZEIDExQzA7CitDQjQ2O0NCNDY7MTEwRCAxMTZEIDExQzE7Q0I0NjsxMTBEIDExNkQgMTFDMTsKK0NCNDc7Q0I0NzsxMTBEIDExNkQgMTFDMjtDQjQ3OzExMEQgMTE2RCAxMUMyOworQ0I0ODtDQjQ4OzExMEQgMTE2RTtDQjQ4OzExMEQgMTE2RTsKK0NCNDk7Q0I0OTsxMTBEIDExNkUgMTFBODtDQjQ5OzExMEQgMTE2RSAxMUE4OworQ0I0QTtDQjRBOzExMEQgMTE2RSAxMUE5O0NCNEE7MTEwRCAxMTZFIDExQTk7CitDQjRCO0NCNEI7MTEwRCAxMTZFIDExQUE7Q0I0QjsxMTBEIDExNkUgMTFBQTsKK0NCNEM7Q0I0QzsxMTBEIDExNkUgMTFBQjtDQjRDOzExMEQgMTE2RSAxMUFCOworQ0I0RDtDQjREOzExMEQgMTE2RSAxMUFDO0NCNEQ7MTEwRCAxMTZFIDExQUM7CitDQjRFO0NCNEU7MTEwRCAxMTZFIDExQUQ7Q0I0RTsxMTBEIDExNkUgMTFBRDsKK0NCNEY7Q0I0RjsxMTBEIDExNkUgMTFBRTtDQjRGOzExMEQgMTE2RSAxMUFFOworQ0I1MDtDQjUwOzExMEQgMTE2RSAxMUFGO0NCNTA7MTEwRCAxMTZFIDExQUY7CitDQjUxO0NCNTE7MTEwRCAxMTZFIDExQjA7Q0I1MTsxMTBEIDExNkUgMTFCMDsKK0NCNTI7Q0I1MjsxMTBEIDExNkUgMTFCMTtDQjUyOzExMEQgMTE2RSAxMUIxOworQ0I1MztDQjUzOzExMEQgMTE2RSAxMUIyO0NCNTM7MTEwRCAxMTZFIDExQjI7CitDQjU0O0NCNTQ7MTEwRCAxMTZFIDExQjM7Q0I1NDsxMTBEIDExNkUgMTFCMzsKK0NCNTU7Q0I1NTsxMTBEIDExNkUgMTFCNDtDQjU1OzExMEQgMTE2RSAxMUI0OworQ0I1NjtDQjU2OzExMEQgMTE2RSAxMUI1O0NCNTY7MTEwRCAxMTZFIDExQjU7CitDQjU3O0NCNTc7MTEwRCAxMTZFIDExQjY7Q0I1NzsxMTBEIDExNkUgMTFCNjsKK0NCNTg7Q0I1ODsxMTBEIDExNkUgMTFCNztDQjU4OzExMEQgMTE2RSAxMUI3OworQ0I1OTtDQjU5OzExMEQgMTE2RSAxMUI4O0NCNTk7MTEwRCAxMTZFIDExQjg7CitDQjVBO0NCNUE7MTEwRCAxMTZFIDExQjk7Q0I1QTsxMTBEIDExNkUgMTFCOTsKK0NCNUI7Q0I1QjsxMTBEIDExNkUgMTFCQTtDQjVCOzExMEQgMTE2RSAxMUJBOworQ0I1QztDQjVDOzExMEQgMTE2RSAxMUJCO0NCNUM7MTEwRCAxMTZFIDExQkI7CitDQjVEO0NCNUQ7MTEwRCAxMTZFIDExQkM7Q0I1RDsxMTBEIDExNkUgMTFCQzsKK0NCNUU7Q0I1RTsxMTBEIDExNkUgMTFCRDtDQjVFOzExMEQgMTE2RSAxMUJEOworQ0I1RjtDQjVGOzExMEQgMTE2RSAxMUJFO0NCNUY7MTEwRCAxMTZFIDExQkU7CitDQjYwO0NCNjA7MTEwRCAxMTZFIDExQkY7Q0I2MDsxMTBEIDExNkUgMTFCRjsKK0NCNjE7Q0I2MTsxMTBEIDExNkUgMTFDMDtDQjYxOzExMEQgMTE2RSAxMUMwOworQ0I2MjtDQjYyOzExMEQgMTE2RSAxMUMxO0NCNjI7MTEwRCAxMTZFIDExQzE7CitDQjYzO0NCNjM7MTEwRCAxMTZFIDExQzI7Q0I2MzsxMTBEIDExNkUgMTFDMjsKK0NCNjQ7Q0I2NDsxMTBEIDExNkY7Q0I2NDsxMTBEIDExNkY7CitDQjY1O0NCNjU7MTEwRCAxMTZGIDExQTg7Q0I2NTsxMTBEIDExNkYgMTFBODsKK0NCNjY7Q0I2NjsxMTBEIDExNkYgMTFBOTtDQjY2OzExMEQgMTE2RiAxMUE5OworQ0I2NztDQjY3OzExMEQgMTE2RiAxMUFBO0NCNjc7MTEwRCAxMTZGIDExQUE7CitDQjY4O0NCNjg7MTEwRCAxMTZGIDExQUI7Q0I2ODsxMTBEIDExNkYgMTFBQjsKK0NCNjk7Q0I2OTsxMTBEIDExNkYgMTFBQztDQjY5OzExMEQgMTE2RiAxMUFDOworQ0I2QTtDQjZBOzExMEQgMTE2RiAxMUFEO0NCNkE7MTEwRCAxMTZGIDExQUQ7CitDQjZCO0NCNkI7MTEwRCAxMTZGIDExQUU7Q0I2QjsxMTBEIDExNkYgMTFBRTsKK0NCNkM7Q0I2QzsxMTBEIDExNkYgMTFBRjtDQjZDOzExMEQgMTE2RiAxMUFGOworQ0I2RDtDQjZEOzExMEQgMTE2RiAxMUIwO0NCNkQ7MTEwRCAxMTZGIDExQjA7CitDQjZFO0NCNkU7MTEwRCAxMTZGIDExQjE7Q0I2RTsxMTBEIDExNkYgMTFCMTsKK0NCNkY7Q0I2RjsxMTBEIDExNkYgMTFCMjtDQjZGOzExMEQgMTE2RiAxMUIyOworQ0I3MDtDQjcwOzExMEQgMTE2RiAxMUIzO0NCNzA7MTEwRCAxMTZGIDExQjM7CitDQjcxO0NCNzE7MTEwRCAxMTZGIDExQjQ7Q0I3MTsxMTBEIDExNkYgMTFCNDsKK0NCNzI7Q0I3MjsxMTBEIDExNkYgMTFCNTtDQjcyOzExMEQgMTE2RiAxMUI1OworQ0I3MztDQjczOzExMEQgMTE2RiAxMUI2O0NCNzM7MTEwRCAxMTZGIDExQjY7CitDQjc0O0NCNzQ7MTEwRCAxMTZGIDExQjc7Q0I3NDsxMTBEIDExNkYgMTFCNzsKK0NCNzU7Q0I3NTsxMTBEIDExNkYgMTFCODtDQjc1OzExMEQgMTE2RiAxMUI4OworQ0I3NjtDQjc2OzExMEQgMTE2RiAxMUI5O0NCNzY7MTEwRCAxMTZGIDExQjk7CitDQjc3O0NCNzc7MTEwRCAxMTZGIDExQkE7Q0I3NzsxMTBEIDExNkYgMTFCQTsKK0NCNzg7Q0I3ODsxMTBEIDExNkYgMTFCQjtDQjc4OzExMEQgMTE2RiAxMUJCOworQ0I3OTtDQjc5OzExMEQgMTE2RiAxMUJDO0NCNzk7MTEwRCAxMTZGIDExQkM7CitDQjdBO0NCN0E7MTEwRCAxMTZGIDExQkQ7Q0I3QTsxMTBEIDExNkYgMTFCRDsKK0NCN0I7Q0I3QjsxMTBEIDExNkYgMTFCRTtDQjdCOzExMEQgMTE2RiAxMUJFOworQ0I3QztDQjdDOzExMEQgMTE2RiAxMUJGO0NCN0M7MTEwRCAxMTZGIDExQkY7CitDQjdEO0NCN0Q7MTEwRCAxMTZGIDExQzA7Q0I3RDsxMTBEIDExNkYgMTFDMDsKK0NCN0U7Q0I3RTsxMTBEIDExNkYgMTFDMTtDQjdFOzExMEQgMTE2RiAxMUMxOworQ0I3RjtDQjdGOzExMEQgMTE2RiAxMUMyO0NCN0Y7MTEwRCAxMTZGIDExQzI7CitDQjgwO0NCODA7MTEwRCAxMTcwO0NCODA7MTEwRCAxMTcwOworQ0I4MTtDQjgxOzExMEQgMTE3MCAxMUE4O0NCODE7MTEwRCAxMTcwIDExQTg7CitDQjgyO0NCODI7MTEwRCAxMTcwIDExQTk7Q0I4MjsxMTBEIDExNzAgMTFBOTsKK0NCODM7Q0I4MzsxMTBEIDExNzAgMTFBQTtDQjgzOzExMEQgMTE3MCAxMUFBOworQ0I4NDtDQjg0OzExMEQgMTE3MCAxMUFCO0NCODQ7MTEwRCAxMTcwIDExQUI7CitDQjg1O0NCODU7MTEwRCAxMTcwIDExQUM7Q0I4NTsxMTBEIDExNzAgMTFBQzsKK0NCODY7Q0I4NjsxMTBEIDExNzAgMTFBRDtDQjg2OzExMEQgMTE3MCAxMUFEOworQ0I4NztDQjg3OzExMEQgMTE3MCAxMUFFO0NCODc7MTEwRCAxMTcwIDExQUU7CitDQjg4O0NCODg7MTEwRCAxMTcwIDExQUY7Q0I4ODsxMTBEIDExNzAgMTFBRjsKK0NCODk7Q0I4OTsxMTBEIDExNzAgMTFCMDtDQjg5OzExMEQgMTE3MCAxMUIwOworQ0I4QTtDQjhBOzExMEQgMTE3MCAxMUIxO0NCOEE7MTEwRCAxMTcwIDExQjE7CitDQjhCO0NCOEI7MTEwRCAxMTcwIDExQjI7Q0I4QjsxMTBEIDExNzAgMTFCMjsKK0NCOEM7Q0I4QzsxMTBEIDExNzAgMTFCMztDQjhDOzExMEQgMTE3MCAxMUIzOworQ0I4RDtDQjhEOzExMEQgMTE3MCAxMUI0O0NCOEQ7MTEwRCAxMTcwIDExQjQ7CitDQjhFO0NCOEU7MTEwRCAxMTcwIDExQjU7Q0I4RTsxMTBEIDExNzAgMTFCNTsKK0NCOEY7Q0I4RjsxMTBEIDExNzAgMTFCNjtDQjhGOzExMEQgMTE3MCAxMUI2OworQ0I5MDtDQjkwOzExMEQgMTE3MCAxMUI3O0NCOTA7MTEwRCAxMTcwIDExQjc7CitDQjkxO0NCOTE7MTEwRCAxMTcwIDExQjg7Q0I5MTsxMTBEIDExNzAgMTFCODsKK0NCOTI7Q0I5MjsxMTBEIDExNzAgMTFCOTtDQjkyOzExMEQgMTE3MCAxMUI5OworQ0I5MztDQjkzOzExMEQgMTE3MCAxMUJBO0NCOTM7MTEwRCAxMTcwIDExQkE7CitDQjk0O0NCOTQ7MTEwRCAxMTcwIDExQkI7Q0I5NDsxMTBEIDExNzAgMTFCQjsKK0NCOTU7Q0I5NTsxMTBEIDExNzAgMTFCQztDQjk1OzExMEQgMTE3MCAxMUJDOworQ0I5NjtDQjk2OzExMEQgMTE3MCAxMUJEO0NCOTY7MTEwRCAxMTcwIDExQkQ7CitDQjk3O0NCOTc7MTEwRCAxMTcwIDExQkU7Q0I5NzsxMTBEIDExNzAgMTFCRTsKK0NCOTg7Q0I5ODsxMTBEIDExNzAgMTFCRjtDQjk4OzExMEQgMTE3MCAxMUJGOworQ0I5OTtDQjk5OzExMEQgMTE3MCAxMUMwO0NCOTk7MTEwRCAxMTcwIDExQzA7CitDQjlBO0NCOUE7MTEwRCAxMTcwIDExQzE7Q0I5QTsxMTBEIDExNzAgMTFDMTsKK0NCOUI7Q0I5QjsxMTBEIDExNzAgMTFDMjtDQjlCOzExMEQgMTE3MCAxMUMyOworQ0I5QztDQjlDOzExMEQgMTE3MTtDQjlDOzExMEQgMTE3MTsKK0NCOUQ7Q0I5RDsxMTBEIDExNzEgMTFBODtDQjlEOzExMEQgMTE3MSAxMUE4OworQ0I5RTtDQjlFOzExMEQgMTE3MSAxMUE5O0NCOUU7MTEwRCAxMTcxIDExQTk7CitDQjlGO0NCOUY7MTEwRCAxMTcxIDExQUE7Q0I5RjsxMTBEIDExNzEgMTFBQTsKK0NCQTA7Q0JBMDsxMTBEIDExNzEgMTFBQjtDQkEwOzExMEQgMTE3MSAxMUFCOworQ0JBMTtDQkExOzExMEQgMTE3MSAxMUFDO0NCQTE7MTEwRCAxMTcxIDExQUM7CitDQkEyO0NCQTI7MTEwRCAxMTcxIDExQUQ7Q0JBMjsxMTBEIDExNzEgMTFBRDsKK0NCQTM7Q0JBMzsxMTBEIDExNzEgMTFBRTtDQkEzOzExMEQgMTE3MSAxMUFFOworQ0JBNDtDQkE0OzExMEQgMTE3MSAxMUFGO0NCQTQ7MTEwRCAxMTcxIDExQUY7CitDQkE1O0NCQTU7MTEwRCAxMTcxIDExQjA7Q0JBNTsxMTBEIDExNzEgMTFCMDsKK0NCQTY7Q0JBNjsxMTBEIDExNzEgMTFCMTtDQkE2OzExMEQgMTE3MSAxMUIxOworQ0JBNztDQkE3OzExMEQgMTE3MSAxMUIyO0NCQTc7MTEwRCAxMTcxIDExQjI7CitDQkE4O0NCQTg7MTEwRCAxMTcxIDExQjM7Q0JBODsxMTBEIDExNzEgMTFCMzsKK0NCQTk7Q0JBOTsxMTBEIDExNzEgMTFCNDtDQkE5OzExMEQgMTE3MSAxMUI0OworQ0JBQTtDQkFBOzExMEQgMTE3MSAxMUI1O0NCQUE7MTEwRCAxMTcxIDExQjU7CitDQkFCO0NCQUI7MTEwRCAxMTcxIDExQjY7Q0JBQjsxMTBEIDExNzEgMTFCNjsKK0NCQUM7Q0JBQzsxMTBEIDExNzEgMTFCNztDQkFDOzExMEQgMTE3MSAxMUI3OworQ0JBRDtDQkFEOzExMEQgMTE3MSAxMUI4O0NCQUQ7MTEwRCAxMTcxIDExQjg7CitDQkFFO0NCQUU7MTEwRCAxMTcxIDExQjk7Q0JBRTsxMTBEIDExNzEgMTFCOTsKK0NCQUY7Q0JBRjsxMTBEIDExNzEgMTFCQTtDQkFGOzExMEQgMTE3MSAxMUJBOworQ0JCMDtDQkIwOzExMEQgMTE3MSAxMUJCO0NCQjA7MTEwRCAxMTcxIDExQkI7CitDQkIxO0NCQjE7MTEwRCAxMTcxIDExQkM7Q0JCMTsxMTBEIDExNzEgMTFCQzsKK0NCQjI7Q0JCMjsxMTBEIDExNzEgMTFCRDtDQkIyOzExMEQgMTE3MSAxMUJEOworQ0JCMztDQkIzOzExMEQgMTE3MSAxMUJFO0NCQjM7MTEwRCAxMTcxIDExQkU7CitDQkI0O0NCQjQ7MTEwRCAxMTcxIDExQkY7Q0JCNDsxMTBEIDExNzEgMTFCRjsKK0NCQjU7Q0JCNTsxMTBEIDExNzEgMTFDMDtDQkI1OzExMEQgMTE3MSAxMUMwOworQ0JCNjtDQkI2OzExMEQgMTE3MSAxMUMxO0NCQjY7MTEwRCAxMTcxIDExQzE7CitDQkI3O0NCQjc7MTEwRCAxMTcxIDExQzI7Q0JCNzsxMTBEIDExNzEgMTFDMjsKK0NCQjg7Q0JCODsxMTBEIDExNzI7Q0JCODsxMTBEIDExNzI7CitDQkI5O0NCQjk7MTEwRCAxMTcyIDExQTg7Q0JCOTsxMTBEIDExNzIgMTFBODsKK0NCQkE7Q0JCQTsxMTBEIDExNzIgMTFBOTtDQkJBOzExMEQgMTE3MiAxMUE5OworQ0JCQjtDQkJCOzExMEQgMTE3MiAxMUFBO0NCQkI7MTEwRCAxMTcyIDExQUE7CitDQkJDO0NCQkM7MTEwRCAxMTcyIDExQUI7Q0JCQzsxMTBEIDExNzIgMTFBQjsKK0NCQkQ7Q0JCRDsxMTBEIDExNzIgMTFBQztDQkJEOzExMEQgMTE3MiAxMUFDOworQ0JCRTtDQkJFOzExMEQgMTE3MiAxMUFEO0NCQkU7MTEwRCAxMTcyIDExQUQ7CitDQkJGO0NCQkY7MTEwRCAxMTcyIDExQUU7Q0JCRjsxMTBEIDExNzIgMTFBRTsKK0NCQzA7Q0JDMDsxMTBEIDExNzIgMTFBRjtDQkMwOzExMEQgMTE3MiAxMUFGOworQ0JDMTtDQkMxOzExMEQgMTE3MiAxMUIwO0NCQzE7MTEwRCAxMTcyIDExQjA7CitDQkMyO0NCQzI7MTEwRCAxMTcyIDExQjE7Q0JDMjsxMTBEIDExNzIgMTFCMTsKK0NCQzM7Q0JDMzsxMTBEIDExNzIgMTFCMjtDQkMzOzExMEQgMTE3MiAxMUIyOworQ0JDNDtDQkM0OzExMEQgMTE3MiAxMUIzO0NCQzQ7MTEwRCAxMTcyIDExQjM7CitDQkM1O0NCQzU7MTEwRCAxMTcyIDExQjQ7Q0JDNTsxMTBEIDExNzIgMTFCNDsKK0NCQzY7Q0JDNjsxMTBEIDExNzIgMTFCNTtDQkM2OzExMEQgMTE3MiAxMUI1OworQ0JDNztDQkM3OzExMEQgMTE3MiAxMUI2O0NCQzc7MTEwRCAxMTcyIDExQjY7CitDQkM4O0NCQzg7MTEwRCAxMTcyIDExQjc7Q0JDODsxMTBEIDExNzIgMTFCNzsKK0NCQzk7Q0JDOTsxMTBEIDExNzIgMTFCODtDQkM5OzExMEQgMTE3MiAxMUI4OworQ0JDQTtDQkNBOzExMEQgMTE3MiAxMUI5O0NCQ0E7MTEwRCAxMTcyIDExQjk7CitDQkNCO0NCQ0I7MTEwRCAxMTcyIDExQkE7Q0JDQjsxMTBEIDExNzIgMTFCQTsKK0NCQ0M7Q0JDQzsxMTBEIDExNzIgMTFCQjtDQkNDOzExMEQgMTE3MiAxMUJCOworQ0JDRDtDQkNEOzExMEQgMTE3MiAxMUJDO0NCQ0Q7MTEwRCAxMTcyIDExQkM7CitDQkNFO0NCQ0U7MTEwRCAxMTcyIDExQkQ7Q0JDRTsxMTBEIDExNzIgMTFCRDsKK0NCQ0Y7Q0JDRjsxMTBEIDExNzIgMTFCRTtDQkNGOzExMEQgMTE3MiAxMUJFOworQ0JEMDtDQkQwOzExMEQgMTE3MiAxMUJGO0NCRDA7MTEwRCAxMTcyIDExQkY7CitDQkQxO0NCRDE7MTEwRCAxMTcyIDExQzA7Q0JEMTsxMTBEIDExNzIgMTFDMDsKK0NCRDI7Q0JEMjsxMTBEIDExNzIgMTFDMTtDQkQyOzExMEQgMTE3MiAxMUMxOworQ0JEMztDQkQzOzExMEQgMTE3MiAxMUMyO0NCRDM7MTEwRCAxMTcyIDExQzI7CitDQkQ0O0NCRDQ7MTEwRCAxMTczO0NCRDQ7MTEwRCAxMTczOworQ0JENTtDQkQ1OzExMEQgMTE3MyAxMUE4O0NCRDU7MTEwRCAxMTczIDExQTg7CitDQkQ2O0NCRDY7MTEwRCAxMTczIDExQTk7Q0JENjsxMTBEIDExNzMgMTFBOTsKK0NCRDc7Q0JENzsxMTBEIDExNzMgMTFBQTtDQkQ3OzExMEQgMTE3MyAxMUFBOworQ0JEODtDQkQ4OzExMEQgMTE3MyAxMUFCO0NCRDg7MTEwRCAxMTczIDExQUI7CitDQkQ5O0NCRDk7MTEwRCAxMTczIDExQUM7Q0JEOTsxMTBEIDExNzMgMTFBQzsKK0NCREE7Q0JEQTsxMTBEIDExNzMgMTFBRDtDQkRBOzExMEQgMTE3MyAxMUFEOworQ0JEQjtDQkRCOzExMEQgMTE3MyAxMUFFO0NCREI7MTEwRCAxMTczIDExQUU7CitDQkRDO0NCREM7MTEwRCAxMTczIDExQUY7Q0JEQzsxMTBEIDExNzMgMTFBRjsKK0NCREQ7Q0JERDsxMTBEIDExNzMgMTFCMDtDQkREOzExMEQgMTE3MyAxMUIwOworQ0JERTtDQkRFOzExMEQgMTE3MyAxMUIxO0NCREU7MTEwRCAxMTczIDExQjE7CitDQkRGO0NCREY7MTEwRCAxMTczIDExQjI7Q0JERjsxMTBEIDExNzMgMTFCMjsKK0NCRTA7Q0JFMDsxMTBEIDExNzMgMTFCMztDQkUwOzExMEQgMTE3MyAxMUIzOworQ0JFMTtDQkUxOzExMEQgMTE3MyAxMUI0O0NCRTE7MTEwRCAxMTczIDExQjQ7CitDQkUyO0NCRTI7MTEwRCAxMTczIDExQjU7Q0JFMjsxMTBEIDExNzMgMTFCNTsKK0NCRTM7Q0JFMzsxMTBEIDExNzMgMTFCNjtDQkUzOzExMEQgMTE3MyAxMUI2OworQ0JFNDtDQkU0OzExMEQgMTE3MyAxMUI3O0NCRTQ7MTEwRCAxMTczIDExQjc7CitDQkU1O0NCRTU7MTEwRCAxMTczIDExQjg7Q0JFNTsxMTBEIDExNzMgMTFCODsKK0NCRTY7Q0JFNjsxMTBEIDExNzMgMTFCOTtDQkU2OzExMEQgMTE3MyAxMUI5OworQ0JFNztDQkU3OzExMEQgMTE3MyAxMUJBO0NCRTc7MTEwRCAxMTczIDExQkE7CitDQkU4O0NCRTg7MTEwRCAxMTczIDExQkI7Q0JFODsxMTBEIDExNzMgMTFCQjsKK0NCRTk7Q0JFOTsxMTBEIDExNzMgMTFCQztDQkU5OzExMEQgMTE3MyAxMUJDOworQ0JFQTtDQkVBOzExMEQgMTE3MyAxMUJEO0NCRUE7MTEwRCAxMTczIDExQkQ7CitDQkVCO0NCRUI7MTEwRCAxMTczIDExQkU7Q0JFQjsxMTBEIDExNzMgMTFCRTsKK0NCRUM7Q0JFQzsxMTBEIDExNzMgMTFCRjtDQkVDOzExMEQgMTE3MyAxMUJGOworQ0JFRDtDQkVEOzExMEQgMTE3MyAxMUMwO0NCRUQ7MTEwRCAxMTczIDExQzA7CitDQkVFO0NCRUU7MTEwRCAxMTczIDExQzE7Q0JFRTsxMTBEIDExNzMgMTFDMTsKK0NCRUY7Q0JFRjsxMTBEIDExNzMgMTFDMjtDQkVGOzExMEQgMTE3MyAxMUMyOworQ0JGMDtDQkYwOzExMEQgMTE3NDtDQkYwOzExMEQgMTE3NDsKK0NCRjE7Q0JGMTsxMTBEIDExNzQgMTFBODtDQkYxOzExMEQgMTE3NCAxMUE4OworQ0JGMjtDQkYyOzExMEQgMTE3NCAxMUE5O0NCRjI7MTEwRCAxMTc0IDExQTk7CitDQkYzO0NCRjM7MTEwRCAxMTc0IDExQUE7Q0JGMzsxMTBEIDExNzQgMTFBQTsKK0NCRjQ7Q0JGNDsxMTBEIDExNzQgMTFBQjtDQkY0OzExMEQgMTE3NCAxMUFCOworQ0JGNTtDQkY1OzExMEQgMTE3NCAxMUFDO0NCRjU7MTEwRCAxMTc0IDExQUM7CitDQkY2O0NCRjY7MTEwRCAxMTc0IDExQUQ7Q0JGNjsxMTBEIDExNzQgMTFBRDsKK0NCRjc7Q0JGNzsxMTBEIDExNzQgMTFBRTtDQkY3OzExMEQgMTE3NCAxMUFFOworQ0JGODtDQkY4OzExMEQgMTE3NCAxMUFGO0NCRjg7MTEwRCAxMTc0IDExQUY7CitDQkY5O0NCRjk7MTEwRCAxMTc0IDExQjA7Q0JGOTsxMTBEIDExNzQgMTFCMDsKK0NCRkE7Q0JGQTsxMTBEIDExNzQgMTFCMTtDQkZBOzExMEQgMTE3NCAxMUIxOworQ0JGQjtDQkZCOzExMEQgMTE3NCAxMUIyO0NCRkI7MTEwRCAxMTc0IDExQjI7CitDQkZDO0NCRkM7MTEwRCAxMTc0IDExQjM7Q0JGQzsxMTBEIDExNzQgMTFCMzsKK0NCRkQ7Q0JGRDsxMTBEIDExNzQgMTFCNDtDQkZEOzExMEQgMTE3NCAxMUI0OworQ0JGRTtDQkZFOzExMEQgMTE3NCAxMUI1O0NCRkU7MTEwRCAxMTc0IDExQjU7CitDQkZGO0NCRkY7MTEwRCAxMTc0IDExQjY7Q0JGRjsxMTBEIDExNzQgMTFCNjsKK0NDMDA7Q0MwMDsxMTBEIDExNzQgMTFCNztDQzAwOzExMEQgMTE3NCAxMUI3OworQ0MwMTtDQzAxOzExMEQgMTE3NCAxMUI4O0NDMDE7MTEwRCAxMTc0IDExQjg7CitDQzAyO0NDMDI7MTEwRCAxMTc0IDExQjk7Q0MwMjsxMTBEIDExNzQgMTFCOTsKK0NDMDM7Q0MwMzsxMTBEIDExNzQgMTFCQTtDQzAzOzExMEQgMTE3NCAxMUJBOworQ0MwNDtDQzA0OzExMEQgMTE3NCAxMUJCO0NDMDQ7MTEwRCAxMTc0IDExQkI7CitDQzA1O0NDMDU7MTEwRCAxMTc0IDExQkM7Q0MwNTsxMTBEIDExNzQgMTFCQzsKK0NDMDY7Q0MwNjsxMTBEIDExNzQgMTFCRDtDQzA2OzExMEQgMTE3NCAxMUJEOworQ0MwNztDQzA3OzExMEQgMTE3NCAxMUJFO0NDMDc7MTEwRCAxMTc0IDExQkU7CitDQzA4O0NDMDg7MTEwRCAxMTc0IDExQkY7Q0MwODsxMTBEIDExNzQgMTFCRjsKK0NDMDk7Q0MwOTsxMTBEIDExNzQgMTFDMDtDQzA5OzExMEQgMTE3NCAxMUMwOworQ0MwQTtDQzBBOzExMEQgMTE3NCAxMUMxO0NDMEE7MTEwRCAxMTc0IDExQzE7CitDQzBCO0NDMEI7MTEwRCAxMTc0IDExQzI7Q0MwQjsxMTBEIDExNzQgMTFDMjsKK0NDMEM7Q0MwQzsxMTBEIDExNzU7Q0MwQzsxMTBEIDExNzU7CitDQzBEO0NDMEQ7MTEwRCAxMTc1IDExQTg7Q0MwRDsxMTBEIDExNzUgMTFBODsKK0NDMEU7Q0MwRTsxMTBEIDExNzUgMTFBOTtDQzBFOzExMEQgMTE3NSAxMUE5OworQ0MwRjtDQzBGOzExMEQgMTE3NSAxMUFBO0NDMEY7MTEwRCAxMTc1IDExQUE7CitDQzEwO0NDMTA7MTEwRCAxMTc1IDExQUI7Q0MxMDsxMTBEIDExNzUgMTFBQjsKK0NDMTE7Q0MxMTsxMTBEIDExNzUgMTFBQztDQzExOzExMEQgMTE3NSAxMUFDOworQ0MxMjtDQzEyOzExMEQgMTE3NSAxMUFEO0NDMTI7MTEwRCAxMTc1IDExQUQ7CitDQzEzO0NDMTM7MTEwRCAxMTc1IDExQUU7Q0MxMzsxMTBEIDExNzUgMTFBRTsKK0NDMTQ7Q0MxNDsxMTBEIDExNzUgMTFBRjtDQzE0OzExMEQgMTE3NSAxMUFGOworQ0MxNTtDQzE1OzExMEQgMTE3NSAxMUIwO0NDMTU7MTEwRCAxMTc1IDExQjA7CitDQzE2O0NDMTY7MTEwRCAxMTc1IDExQjE7Q0MxNjsxMTBEIDExNzUgMTFCMTsKK0NDMTc7Q0MxNzsxMTBEIDExNzUgMTFCMjtDQzE3OzExMEQgMTE3NSAxMUIyOworQ0MxODtDQzE4OzExMEQgMTE3NSAxMUIzO0NDMTg7MTEwRCAxMTc1IDExQjM7CitDQzE5O0NDMTk7MTEwRCAxMTc1IDExQjQ7Q0MxOTsxMTBEIDExNzUgMTFCNDsKK0NDMUE7Q0MxQTsxMTBEIDExNzUgMTFCNTtDQzFBOzExMEQgMTE3NSAxMUI1OworQ0MxQjtDQzFCOzExMEQgMTE3NSAxMUI2O0NDMUI7MTEwRCAxMTc1IDExQjY7CitDQzFDO0NDMUM7MTEwRCAxMTc1IDExQjc7Q0MxQzsxMTBEIDExNzUgMTFCNzsKK0NDMUQ7Q0MxRDsxMTBEIDExNzUgMTFCODtDQzFEOzExMEQgMTE3NSAxMUI4OworQ0MxRTtDQzFFOzExMEQgMTE3NSAxMUI5O0NDMUU7MTEwRCAxMTc1IDExQjk7CitDQzFGO0NDMUY7MTEwRCAxMTc1IDExQkE7Q0MxRjsxMTBEIDExNzUgMTFCQTsKK0NDMjA7Q0MyMDsxMTBEIDExNzUgMTFCQjtDQzIwOzExMEQgMTE3NSAxMUJCOworQ0MyMTtDQzIxOzExMEQgMTE3NSAxMUJDO0NDMjE7MTEwRCAxMTc1IDExQkM7CitDQzIyO0NDMjI7MTEwRCAxMTc1IDExQkQ7Q0MyMjsxMTBEIDExNzUgMTFCRDsKK0NDMjM7Q0MyMzsxMTBEIDExNzUgMTFCRTtDQzIzOzExMEQgMTE3NSAxMUJFOworQ0MyNDtDQzI0OzExMEQgMTE3NSAxMUJGO0NDMjQ7MTEwRCAxMTc1IDExQkY7CitDQzI1O0NDMjU7MTEwRCAxMTc1IDExQzA7Q0MyNTsxMTBEIDExNzUgMTFDMDsKK0NDMjY7Q0MyNjsxMTBEIDExNzUgMTFDMTtDQzI2OzExMEQgMTE3NSAxMUMxOworQ0MyNztDQzI3OzExMEQgMTE3NSAxMUMyO0NDMjc7MTEwRCAxMTc1IDExQzI7CitDQzI4O0NDMjg7MTEwRSAxMTYxO0NDMjg7MTEwRSAxMTYxOworQ0MyOTtDQzI5OzExMEUgMTE2MSAxMUE4O0NDMjk7MTEwRSAxMTYxIDExQTg7CitDQzJBO0NDMkE7MTEwRSAxMTYxIDExQTk7Q0MyQTsxMTBFIDExNjEgMTFBOTsKK0NDMkI7Q0MyQjsxMTBFIDExNjEgMTFBQTtDQzJCOzExMEUgMTE2MSAxMUFBOworQ0MyQztDQzJDOzExMEUgMTE2MSAxMUFCO0NDMkM7MTEwRSAxMTYxIDExQUI7CitDQzJEO0NDMkQ7MTEwRSAxMTYxIDExQUM7Q0MyRDsxMTBFIDExNjEgMTFBQzsKK0NDMkU7Q0MyRTsxMTBFIDExNjEgMTFBRDtDQzJFOzExMEUgMTE2MSAxMUFEOworQ0MyRjtDQzJGOzExMEUgMTE2MSAxMUFFO0NDMkY7MTEwRSAxMTYxIDExQUU7CitDQzMwO0NDMzA7MTEwRSAxMTYxIDExQUY7Q0MzMDsxMTBFIDExNjEgMTFBRjsKK0NDMzE7Q0MzMTsxMTBFIDExNjEgMTFCMDtDQzMxOzExMEUgMTE2MSAxMUIwOworQ0MzMjtDQzMyOzExMEUgMTE2MSAxMUIxO0NDMzI7MTEwRSAxMTYxIDExQjE7CitDQzMzO0NDMzM7MTEwRSAxMTYxIDExQjI7Q0MzMzsxMTBFIDExNjEgMTFCMjsKK0NDMzQ7Q0MzNDsxMTBFIDExNjEgMTFCMztDQzM0OzExMEUgMTE2MSAxMUIzOworQ0MzNTtDQzM1OzExMEUgMTE2MSAxMUI0O0NDMzU7MTEwRSAxMTYxIDExQjQ7CitDQzM2O0NDMzY7MTEwRSAxMTYxIDExQjU7Q0MzNjsxMTBFIDExNjEgMTFCNTsKK0NDMzc7Q0MzNzsxMTBFIDExNjEgMTFCNjtDQzM3OzExMEUgMTE2MSAxMUI2OworQ0MzODtDQzM4OzExMEUgMTE2MSAxMUI3O0NDMzg7MTEwRSAxMTYxIDExQjc7CitDQzM5O0NDMzk7MTEwRSAxMTYxIDExQjg7Q0MzOTsxMTBFIDExNjEgMTFCODsKK0NDM0E7Q0MzQTsxMTBFIDExNjEgMTFCOTtDQzNBOzExMEUgMTE2MSAxMUI5OworQ0MzQjtDQzNCOzExMEUgMTE2MSAxMUJBO0NDM0I7MTEwRSAxMTYxIDExQkE7CitDQzNDO0NDM0M7MTEwRSAxMTYxIDExQkI7Q0MzQzsxMTBFIDExNjEgMTFCQjsKK0NDM0Q7Q0MzRDsxMTBFIDExNjEgMTFCQztDQzNEOzExMEUgMTE2MSAxMUJDOworQ0MzRTtDQzNFOzExMEUgMTE2MSAxMUJEO0NDM0U7MTEwRSAxMTYxIDExQkQ7CitDQzNGO0NDM0Y7MTEwRSAxMTYxIDExQkU7Q0MzRjsxMTBFIDExNjEgMTFCRTsKK0NDNDA7Q0M0MDsxMTBFIDExNjEgMTFCRjtDQzQwOzExMEUgMTE2MSAxMUJGOworQ0M0MTtDQzQxOzExMEUgMTE2MSAxMUMwO0NDNDE7MTEwRSAxMTYxIDExQzA7CitDQzQyO0NDNDI7MTEwRSAxMTYxIDExQzE7Q0M0MjsxMTBFIDExNjEgMTFDMTsKK0NDNDM7Q0M0MzsxMTBFIDExNjEgMTFDMjtDQzQzOzExMEUgMTE2MSAxMUMyOworQ0M0NDtDQzQ0OzExMEUgMTE2MjtDQzQ0OzExMEUgMTE2MjsKK0NDNDU7Q0M0NTsxMTBFIDExNjIgMTFBODtDQzQ1OzExMEUgMTE2MiAxMUE4OworQ0M0NjtDQzQ2OzExMEUgMTE2MiAxMUE5O0NDNDY7MTEwRSAxMTYyIDExQTk7CitDQzQ3O0NDNDc7MTEwRSAxMTYyIDExQUE7Q0M0NzsxMTBFIDExNjIgMTFBQTsKK0NDNDg7Q0M0ODsxMTBFIDExNjIgMTFBQjtDQzQ4OzExMEUgMTE2MiAxMUFCOworQ0M0OTtDQzQ5OzExMEUgMTE2MiAxMUFDO0NDNDk7MTEwRSAxMTYyIDExQUM7CitDQzRBO0NDNEE7MTEwRSAxMTYyIDExQUQ7Q0M0QTsxMTBFIDExNjIgMTFBRDsKK0NDNEI7Q0M0QjsxMTBFIDExNjIgMTFBRTtDQzRCOzExMEUgMTE2MiAxMUFFOworQ0M0QztDQzRDOzExMEUgMTE2MiAxMUFGO0NDNEM7MTEwRSAxMTYyIDExQUY7CitDQzREO0NDNEQ7MTEwRSAxMTYyIDExQjA7Q0M0RDsxMTBFIDExNjIgMTFCMDsKK0NDNEU7Q0M0RTsxMTBFIDExNjIgMTFCMTtDQzRFOzExMEUgMTE2MiAxMUIxOworQ0M0RjtDQzRGOzExMEUgMTE2MiAxMUIyO0NDNEY7MTEwRSAxMTYyIDExQjI7CitDQzUwO0NDNTA7MTEwRSAxMTYyIDExQjM7Q0M1MDsxMTBFIDExNjIgMTFCMzsKK0NDNTE7Q0M1MTsxMTBFIDExNjIgMTFCNDtDQzUxOzExMEUgMTE2MiAxMUI0OworQ0M1MjtDQzUyOzExMEUgMTE2MiAxMUI1O0NDNTI7MTEwRSAxMTYyIDExQjU7CitDQzUzO0NDNTM7MTEwRSAxMTYyIDExQjY7Q0M1MzsxMTBFIDExNjIgMTFCNjsKK0NDNTQ7Q0M1NDsxMTBFIDExNjIgMTFCNztDQzU0OzExMEUgMTE2MiAxMUI3OworQ0M1NTtDQzU1OzExMEUgMTE2MiAxMUI4O0NDNTU7MTEwRSAxMTYyIDExQjg7CitDQzU2O0NDNTY7MTEwRSAxMTYyIDExQjk7Q0M1NjsxMTBFIDExNjIgMTFCOTsKK0NDNTc7Q0M1NzsxMTBFIDExNjIgMTFCQTtDQzU3OzExMEUgMTE2MiAxMUJBOworQ0M1ODtDQzU4OzExMEUgMTE2MiAxMUJCO0NDNTg7MTEwRSAxMTYyIDExQkI7CitDQzU5O0NDNTk7MTEwRSAxMTYyIDExQkM7Q0M1OTsxMTBFIDExNjIgMTFCQzsKK0NDNUE7Q0M1QTsxMTBFIDExNjIgMTFCRDtDQzVBOzExMEUgMTE2MiAxMUJEOworQ0M1QjtDQzVCOzExMEUgMTE2MiAxMUJFO0NDNUI7MTEwRSAxMTYyIDExQkU7CitDQzVDO0NDNUM7MTEwRSAxMTYyIDExQkY7Q0M1QzsxMTBFIDExNjIgMTFCRjsKK0NDNUQ7Q0M1RDsxMTBFIDExNjIgMTFDMDtDQzVEOzExMEUgMTE2MiAxMUMwOworQ0M1RTtDQzVFOzExMEUgMTE2MiAxMUMxO0NDNUU7MTEwRSAxMTYyIDExQzE7CitDQzVGO0NDNUY7MTEwRSAxMTYyIDExQzI7Q0M1RjsxMTBFIDExNjIgMTFDMjsKK0NDNjA7Q0M2MDsxMTBFIDExNjM7Q0M2MDsxMTBFIDExNjM7CitDQzYxO0NDNjE7MTEwRSAxMTYzIDExQTg7Q0M2MTsxMTBFIDExNjMgMTFBODsKK0NDNjI7Q0M2MjsxMTBFIDExNjMgMTFBOTtDQzYyOzExMEUgMTE2MyAxMUE5OworQ0M2MztDQzYzOzExMEUgMTE2MyAxMUFBO0NDNjM7MTEwRSAxMTYzIDExQUE7CitDQzY0O0NDNjQ7MTEwRSAxMTYzIDExQUI7Q0M2NDsxMTBFIDExNjMgMTFBQjsKK0NDNjU7Q0M2NTsxMTBFIDExNjMgMTFBQztDQzY1OzExMEUgMTE2MyAxMUFDOworQ0M2NjtDQzY2OzExMEUgMTE2MyAxMUFEO0NDNjY7MTEwRSAxMTYzIDExQUQ7CitDQzY3O0NDNjc7MTEwRSAxMTYzIDExQUU7Q0M2NzsxMTBFIDExNjMgMTFBRTsKK0NDNjg7Q0M2ODsxMTBFIDExNjMgMTFBRjtDQzY4OzExMEUgMTE2MyAxMUFGOworQ0M2OTtDQzY5OzExMEUgMTE2MyAxMUIwO0NDNjk7MTEwRSAxMTYzIDExQjA7CitDQzZBO0NDNkE7MTEwRSAxMTYzIDExQjE7Q0M2QTsxMTBFIDExNjMgMTFCMTsKK0NDNkI7Q0M2QjsxMTBFIDExNjMgMTFCMjtDQzZCOzExMEUgMTE2MyAxMUIyOworQ0M2QztDQzZDOzExMEUgMTE2MyAxMUIzO0NDNkM7MTEwRSAxMTYzIDExQjM7CitDQzZEO0NDNkQ7MTEwRSAxMTYzIDExQjQ7Q0M2RDsxMTBFIDExNjMgMTFCNDsKK0NDNkU7Q0M2RTsxMTBFIDExNjMgMTFCNTtDQzZFOzExMEUgMTE2MyAxMUI1OworQ0M2RjtDQzZGOzExMEUgMTE2MyAxMUI2O0NDNkY7MTEwRSAxMTYzIDExQjY7CitDQzcwO0NDNzA7MTEwRSAxMTYzIDExQjc7Q0M3MDsxMTBFIDExNjMgMTFCNzsKK0NDNzE7Q0M3MTsxMTBFIDExNjMgMTFCODtDQzcxOzExMEUgMTE2MyAxMUI4OworQ0M3MjtDQzcyOzExMEUgMTE2MyAxMUI5O0NDNzI7MTEwRSAxMTYzIDExQjk7CitDQzczO0NDNzM7MTEwRSAxMTYzIDExQkE7Q0M3MzsxMTBFIDExNjMgMTFCQTsKK0NDNzQ7Q0M3NDsxMTBFIDExNjMgMTFCQjtDQzc0OzExMEUgMTE2MyAxMUJCOworQ0M3NTtDQzc1OzExMEUgMTE2MyAxMUJDO0NDNzU7MTEwRSAxMTYzIDExQkM7CitDQzc2O0NDNzY7MTEwRSAxMTYzIDExQkQ7Q0M3NjsxMTBFIDExNjMgMTFCRDsKK0NDNzc7Q0M3NzsxMTBFIDExNjMgMTFCRTtDQzc3OzExMEUgMTE2MyAxMUJFOworQ0M3ODtDQzc4OzExMEUgMTE2MyAxMUJGO0NDNzg7MTEwRSAxMTYzIDExQkY7CitDQzc5O0NDNzk7MTEwRSAxMTYzIDExQzA7Q0M3OTsxMTBFIDExNjMgMTFDMDsKK0NDN0E7Q0M3QTsxMTBFIDExNjMgMTFDMTtDQzdBOzExMEUgMTE2MyAxMUMxOworQ0M3QjtDQzdCOzExMEUgMTE2MyAxMUMyO0NDN0I7MTEwRSAxMTYzIDExQzI7CitDQzdDO0NDN0M7MTEwRSAxMTY0O0NDN0M7MTEwRSAxMTY0OworQ0M3RDtDQzdEOzExMEUgMTE2NCAxMUE4O0NDN0Q7MTEwRSAxMTY0IDExQTg7CitDQzdFO0NDN0U7MTEwRSAxMTY0IDExQTk7Q0M3RTsxMTBFIDExNjQgMTFBOTsKK0NDN0Y7Q0M3RjsxMTBFIDExNjQgMTFBQTtDQzdGOzExMEUgMTE2NCAxMUFBOworQ0M4MDtDQzgwOzExMEUgMTE2NCAxMUFCO0NDODA7MTEwRSAxMTY0IDExQUI7CitDQzgxO0NDODE7MTEwRSAxMTY0IDExQUM7Q0M4MTsxMTBFIDExNjQgMTFBQzsKK0NDODI7Q0M4MjsxMTBFIDExNjQgMTFBRDtDQzgyOzExMEUgMTE2NCAxMUFEOworQ0M4MztDQzgzOzExMEUgMTE2NCAxMUFFO0NDODM7MTEwRSAxMTY0IDExQUU7CitDQzg0O0NDODQ7MTEwRSAxMTY0IDExQUY7Q0M4NDsxMTBFIDExNjQgMTFBRjsKK0NDODU7Q0M4NTsxMTBFIDExNjQgMTFCMDtDQzg1OzExMEUgMTE2NCAxMUIwOworQ0M4NjtDQzg2OzExMEUgMTE2NCAxMUIxO0NDODY7MTEwRSAxMTY0IDExQjE7CitDQzg3O0NDODc7MTEwRSAxMTY0IDExQjI7Q0M4NzsxMTBFIDExNjQgMTFCMjsKK0NDODg7Q0M4ODsxMTBFIDExNjQgMTFCMztDQzg4OzExMEUgMTE2NCAxMUIzOworQ0M4OTtDQzg5OzExMEUgMTE2NCAxMUI0O0NDODk7MTEwRSAxMTY0IDExQjQ7CitDQzhBO0NDOEE7MTEwRSAxMTY0IDExQjU7Q0M4QTsxMTBFIDExNjQgMTFCNTsKK0NDOEI7Q0M4QjsxMTBFIDExNjQgMTFCNjtDQzhCOzExMEUgMTE2NCAxMUI2OworQ0M4QztDQzhDOzExMEUgMTE2NCAxMUI3O0NDOEM7MTEwRSAxMTY0IDExQjc7CitDQzhEO0NDOEQ7MTEwRSAxMTY0IDExQjg7Q0M4RDsxMTBFIDExNjQgMTFCODsKK0NDOEU7Q0M4RTsxMTBFIDExNjQgMTFCOTtDQzhFOzExMEUgMTE2NCAxMUI5OworQ0M4RjtDQzhGOzExMEUgMTE2NCAxMUJBO0NDOEY7MTEwRSAxMTY0IDExQkE7CitDQzkwO0NDOTA7MTEwRSAxMTY0IDExQkI7Q0M5MDsxMTBFIDExNjQgMTFCQjsKK0NDOTE7Q0M5MTsxMTBFIDExNjQgMTFCQztDQzkxOzExMEUgMTE2NCAxMUJDOworQ0M5MjtDQzkyOzExMEUgMTE2NCAxMUJEO0NDOTI7MTEwRSAxMTY0IDExQkQ7CitDQzkzO0NDOTM7MTEwRSAxMTY0IDExQkU7Q0M5MzsxMTBFIDExNjQgMTFCRTsKK0NDOTQ7Q0M5NDsxMTBFIDExNjQgMTFCRjtDQzk0OzExMEUgMTE2NCAxMUJGOworQ0M5NTtDQzk1OzExMEUgMTE2NCAxMUMwO0NDOTU7MTEwRSAxMTY0IDExQzA7CitDQzk2O0NDOTY7MTEwRSAxMTY0IDExQzE7Q0M5NjsxMTBFIDExNjQgMTFDMTsKK0NDOTc7Q0M5NzsxMTBFIDExNjQgMTFDMjtDQzk3OzExMEUgMTE2NCAxMUMyOworQ0M5ODtDQzk4OzExMEUgMTE2NTtDQzk4OzExMEUgMTE2NTsKK0NDOTk7Q0M5OTsxMTBFIDExNjUgMTFBODtDQzk5OzExMEUgMTE2NSAxMUE4OworQ0M5QTtDQzlBOzExMEUgMTE2NSAxMUE5O0NDOUE7MTEwRSAxMTY1IDExQTk7CitDQzlCO0NDOUI7MTEwRSAxMTY1IDExQUE7Q0M5QjsxMTBFIDExNjUgMTFBQTsKK0NDOUM7Q0M5QzsxMTBFIDExNjUgMTFBQjtDQzlDOzExMEUgMTE2NSAxMUFCOworQ0M5RDtDQzlEOzExMEUgMTE2NSAxMUFDO0NDOUQ7MTEwRSAxMTY1IDExQUM7CitDQzlFO0NDOUU7MTEwRSAxMTY1IDExQUQ7Q0M5RTsxMTBFIDExNjUgMTFBRDsKK0NDOUY7Q0M5RjsxMTBFIDExNjUgMTFBRTtDQzlGOzExMEUgMTE2NSAxMUFFOworQ0NBMDtDQ0EwOzExMEUgMTE2NSAxMUFGO0NDQTA7MTEwRSAxMTY1IDExQUY7CitDQ0ExO0NDQTE7MTEwRSAxMTY1IDExQjA7Q0NBMTsxMTBFIDExNjUgMTFCMDsKK0NDQTI7Q0NBMjsxMTBFIDExNjUgMTFCMTtDQ0EyOzExMEUgMTE2NSAxMUIxOworQ0NBMztDQ0EzOzExMEUgMTE2NSAxMUIyO0NDQTM7MTEwRSAxMTY1IDExQjI7CitDQ0E0O0NDQTQ7MTEwRSAxMTY1IDExQjM7Q0NBNDsxMTBFIDExNjUgMTFCMzsKK0NDQTU7Q0NBNTsxMTBFIDExNjUgMTFCNDtDQ0E1OzExMEUgMTE2NSAxMUI0OworQ0NBNjtDQ0E2OzExMEUgMTE2NSAxMUI1O0NDQTY7MTEwRSAxMTY1IDExQjU7CitDQ0E3O0NDQTc7MTEwRSAxMTY1IDExQjY7Q0NBNzsxMTBFIDExNjUgMTFCNjsKK0NDQTg7Q0NBODsxMTBFIDExNjUgMTFCNztDQ0E4OzExMEUgMTE2NSAxMUI3OworQ0NBOTtDQ0E5OzExMEUgMTE2NSAxMUI4O0NDQTk7MTEwRSAxMTY1IDExQjg7CitDQ0FBO0NDQUE7MTEwRSAxMTY1IDExQjk7Q0NBQTsxMTBFIDExNjUgMTFCOTsKK0NDQUI7Q0NBQjsxMTBFIDExNjUgMTFCQTtDQ0FCOzExMEUgMTE2NSAxMUJBOworQ0NBQztDQ0FDOzExMEUgMTE2NSAxMUJCO0NDQUM7MTEwRSAxMTY1IDExQkI7CitDQ0FEO0NDQUQ7MTEwRSAxMTY1IDExQkM7Q0NBRDsxMTBFIDExNjUgMTFCQzsKK0NDQUU7Q0NBRTsxMTBFIDExNjUgMTFCRDtDQ0FFOzExMEUgMTE2NSAxMUJEOworQ0NBRjtDQ0FGOzExMEUgMTE2NSAxMUJFO0NDQUY7MTEwRSAxMTY1IDExQkU7CitDQ0IwO0NDQjA7MTEwRSAxMTY1IDExQkY7Q0NCMDsxMTBFIDExNjUgMTFCRjsKK0NDQjE7Q0NCMTsxMTBFIDExNjUgMTFDMDtDQ0IxOzExMEUgMTE2NSAxMUMwOworQ0NCMjtDQ0IyOzExMEUgMTE2NSAxMUMxO0NDQjI7MTEwRSAxMTY1IDExQzE7CitDQ0IzO0NDQjM7MTEwRSAxMTY1IDExQzI7Q0NCMzsxMTBFIDExNjUgMTFDMjsKK0NDQjQ7Q0NCNDsxMTBFIDExNjY7Q0NCNDsxMTBFIDExNjY7CitDQ0I1O0NDQjU7MTEwRSAxMTY2IDExQTg7Q0NCNTsxMTBFIDExNjYgMTFBODsKK0NDQjY7Q0NCNjsxMTBFIDExNjYgMTFBOTtDQ0I2OzExMEUgMTE2NiAxMUE5OworQ0NCNztDQ0I3OzExMEUgMTE2NiAxMUFBO0NDQjc7MTEwRSAxMTY2IDExQUE7CitDQ0I4O0NDQjg7MTEwRSAxMTY2IDExQUI7Q0NCODsxMTBFIDExNjYgMTFBQjsKK0NDQjk7Q0NCOTsxMTBFIDExNjYgMTFBQztDQ0I5OzExMEUgMTE2NiAxMUFDOworQ0NCQTtDQ0JBOzExMEUgMTE2NiAxMUFEO0NDQkE7MTEwRSAxMTY2IDExQUQ7CitDQ0JCO0NDQkI7MTEwRSAxMTY2IDExQUU7Q0NCQjsxMTBFIDExNjYgMTFBRTsKK0NDQkM7Q0NCQzsxMTBFIDExNjYgMTFBRjtDQ0JDOzExMEUgMTE2NiAxMUFGOworQ0NCRDtDQ0JEOzExMEUgMTE2NiAxMUIwO0NDQkQ7MTEwRSAxMTY2IDExQjA7CitDQ0JFO0NDQkU7MTEwRSAxMTY2IDExQjE7Q0NCRTsxMTBFIDExNjYgMTFCMTsKK0NDQkY7Q0NCRjsxMTBFIDExNjYgMTFCMjtDQ0JGOzExMEUgMTE2NiAxMUIyOworQ0NDMDtDQ0MwOzExMEUgMTE2NiAxMUIzO0NDQzA7MTEwRSAxMTY2IDExQjM7CitDQ0MxO0NDQzE7MTEwRSAxMTY2IDExQjQ7Q0NDMTsxMTBFIDExNjYgMTFCNDsKK0NDQzI7Q0NDMjsxMTBFIDExNjYgMTFCNTtDQ0MyOzExMEUgMTE2NiAxMUI1OworQ0NDMztDQ0MzOzExMEUgMTE2NiAxMUI2O0NDQzM7MTEwRSAxMTY2IDExQjY7CitDQ0M0O0NDQzQ7MTEwRSAxMTY2IDExQjc7Q0NDNDsxMTBFIDExNjYgMTFCNzsKK0NDQzU7Q0NDNTsxMTBFIDExNjYgMTFCODtDQ0M1OzExMEUgMTE2NiAxMUI4OworQ0NDNjtDQ0M2OzExMEUgMTE2NiAxMUI5O0NDQzY7MTEwRSAxMTY2IDExQjk7CitDQ0M3O0NDQzc7MTEwRSAxMTY2IDExQkE7Q0NDNzsxMTBFIDExNjYgMTFCQTsKK0NDQzg7Q0NDODsxMTBFIDExNjYgMTFCQjtDQ0M4OzExMEUgMTE2NiAxMUJCOworQ0NDOTtDQ0M5OzExMEUgMTE2NiAxMUJDO0NDQzk7MTEwRSAxMTY2IDExQkM7CitDQ0NBO0NDQ0E7MTEwRSAxMTY2IDExQkQ7Q0NDQTsxMTBFIDExNjYgMTFCRDsKK0NDQ0I7Q0NDQjsxMTBFIDExNjYgMTFCRTtDQ0NCOzExMEUgMTE2NiAxMUJFOworQ0NDQztDQ0NDOzExMEUgMTE2NiAxMUJGO0NDQ0M7MTEwRSAxMTY2IDExQkY7CitDQ0NEO0NDQ0Q7MTEwRSAxMTY2IDExQzA7Q0NDRDsxMTBFIDExNjYgMTFDMDsKK0NDQ0U7Q0NDRTsxMTBFIDExNjYgMTFDMTtDQ0NFOzExMEUgMTE2NiAxMUMxOworQ0NDRjtDQ0NGOzExMEUgMTE2NiAxMUMyO0NDQ0Y7MTEwRSAxMTY2IDExQzI7CitDQ0QwO0NDRDA7MTEwRSAxMTY3O0NDRDA7MTEwRSAxMTY3OworQ0NEMTtDQ0QxOzExMEUgMTE2NyAxMUE4O0NDRDE7MTEwRSAxMTY3IDExQTg7CitDQ0QyO0NDRDI7MTEwRSAxMTY3IDExQTk7Q0NEMjsxMTBFIDExNjcgMTFBOTsKK0NDRDM7Q0NEMzsxMTBFIDExNjcgMTFBQTtDQ0QzOzExMEUgMTE2NyAxMUFBOworQ0NENDtDQ0Q0OzExMEUgMTE2NyAxMUFCO0NDRDQ7MTEwRSAxMTY3IDExQUI7CitDQ0Q1O0NDRDU7MTEwRSAxMTY3IDExQUM7Q0NENTsxMTBFIDExNjcgMTFBQzsKK0NDRDY7Q0NENjsxMTBFIDExNjcgMTFBRDtDQ0Q2OzExMEUgMTE2NyAxMUFEOworQ0NENztDQ0Q3OzExMEUgMTE2NyAxMUFFO0NDRDc7MTEwRSAxMTY3IDExQUU7CitDQ0Q4O0NDRDg7MTEwRSAxMTY3IDExQUY7Q0NEODsxMTBFIDExNjcgMTFBRjsKK0NDRDk7Q0NEOTsxMTBFIDExNjcgMTFCMDtDQ0Q5OzExMEUgMTE2NyAxMUIwOworQ0NEQTtDQ0RBOzExMEUgMTE2NyAxMUIxO0NDREE7MTEwRSAxMTY3IDExQjE7CitDQ0RCO0NDREI7MTEwRSAxMTY3IDExQjI7Q0NEQjsxMTBFIDExNjcgMTFCMjsKK0NDREM7Q0NEQzsxMTBFIDExNjcgMTFCMztDQ0RDOzExMEUgMTE2NyAxMUIzOworQ0NERDtDQ0REOzExMEUgMTE2NyAxMUI0O0NDREQ7MTEwRSAxMTY3IDExQjQ7CitDQ0RFO0NDREU7MTEwRSAxMTY3IDExQjU7Q0NERTsxMTBFIDExNjcgMTFCNTsKK0NDREY7Q0NERjsxMTBFIDExNjcgMTFCNjtDQ0RGOzExMEUgMTE2NyAxMUI2OworQ0NFMDtDQ0UwOzExMEUgMTE2NyAxMUI3O0NDRTA7MTEwRSAxMTY3IDExQjc7CitDQ0UxO0NDRTE7MTEwRSAxMTY3IDExQjg7Q0NFMTsxMTBFIDExNjcgMTFCODsKK0NDRTI7Q0NFMjsxMTBFIDExNjcgMTFCOTtDQ0UyOzExMEUgMTE2NyAxMUI5OworQ0NFMztDQ0UzOzExMEUgMTE2NyAxMUJBO0NDRTM7MTEwRSAxMTY3IDExQkE7CitDQ0U0O0NDRTQ7MTEwRSAxMTY3IDExQkI7Q0NFNDsxMTBFIDExNjcgMTFCQjsKK0NDRTU7Q0NFNTsxMTBFIDExNjcgMTFCQztDQ0U1OzExMEUgMTE2NyAxMUJDOworQ0NFNjtDQ0U2OzExMEUgMTE2NyAxMUJEO0NDRTY7MTEwRSAxMTY3IDExQkQ7CitDQ0U3O0NDRTc7MTEwRSAxMTY3IDExQkU7Q0NFNzsxMTBFIDExNjcgMTFCRTsKK0NDRTg7Q0NFODsxMTBFIDExNjcgMTFCRjtDQ0U4OzExMEUgMTE2NyAxMUJGOworQ0NFOTtDQ0U5OzExMEUgMTE2NyAxMUMwO0NDRTk7MTEwRSAxMTY3IDExQzA7CitDQ0VBO0NDRUE7MTEwRSAxMTY3IDExQzE7Q0NFQTsxMTBFIDExNjcgMTFDMTsKK0NDRUI7Q0NFQjsxMTBFIDExNjcgMTFDMjtDQ0VCOzExMEUgMTE2NyAxMUMyOworQ0NFQztDQ0VDOzExMEUgMTE2ODtDQ0VDOzExMEUgMTE2ODsKK0NDRUQ7Q0NFRDsxMTBFIDExNjggMTFBODtDQ0VEOzExMEUgMTE2OCAxMUE4OworQ0NFRTtDQ0VFOzExMEUgMTE2OCAxMUE5O0NDRUU7MTEwRSAxMTY4IDExQTk7CitDQ0VGO0NDRUY7MTEwRSAxMTY4IDExQUE7Q0NFRjsxMTBFIDExNjggMTFBQTsKK0NDRjA7Q0NGMDsxMTBFIDExNjggMTFBQjtDQ0YwOzExMEUgMTE2OCAxMUFCOworQ0NGMTtDQ0YxOzExMEUgMTE2OCAxMUFDO0NDRjE7MTEwRSAxMTY4IDExQUM7CitDQ0YyO0NDRjI7MTEwRSAxMTY4IDExQUQ7Q0NGMjsxMTBFIDExNjggMTFBRDsKK0NDRjM7Q0NGMzsxMTBFIDExNjggMTFBRTtDQ0YzOzExMEUgMTE2OCAxMUFFOworQ0NGNDtDQ0Y0OzExMEUgMTE2OCAxMUFGO0NDRjQ7MTEwRSAxMTY4IDExQUY7CitDQ0Y1O0NDRjU7MTEwRSAxMTY4IDExQjA7Q0NGNTsxMTBFIDExNjggMTFCMDsKK0NDRjY7Q0NGNjsxMTBFIDExNjggMTFCMTtDQ0Y2OzExMEUgMTE2OCAxMUIxOworQ0NGNztDQ0Y3OzExMEUgMTE2OCAxMUIyO0NDRjc7MTEwRSAxMTY4IDExQjI7CitDQ0Y4O0NDRjg7MTEwRSAxMTY4IDExQjM7Q0NGODsxMTBFIDExNjggMTFCMzsKK0NDRjk7Q0NGOTsxMTBFIDExNjggMTFCNDtDQ0Y5OzExMEUgMTE2OCAxMUI0OworQ0NGQTtDQ0ZBOzExMEUgMTE2OCAxMUI1O0NDRkE7MTEwRSAxMTY4IDExQjU7CitDQ0ZCO0NDRkI7MTEwRSAxMTY4IDExQjY7Q0NGQjsxMTBFIDExNjggMTFCNjsKK0NDRkM7Q0NGQzsxMTBFIDExNjggMTFCNztDQ0ZDOzExMEUgMTE2OCAxMUI3OworQ0NGRDtDQ0ZEOzExMEUgMTE2OCAxMUI4O0NDRkQ7MTEwRSAxMTY4IDExQjg7CitDQ0ZFO0NDRkU7MTEwRSAxMTY4IDExQjk7Q0NGRTsxMTBFIDExNjggMTFCOTsKK0NDRkY7Q0NGRjsxMTBFIDExNjggMTFCQTtDQ0ZGOzExMEUgMTE2OCAxMUJBOworQ0QwMDtDRDAwOzExMEUgMTE2OCAxMUJCO0NEMDA7MTEwRSAxMTY4IDExQkI7CitDRDAxO0NEMDE7MTEwRSAxMTY4IDExQkM7Q0QwMTsxMTBFIDExNjggMTFCQzsKK0NEMDI7Q0QwMjsxMTBFIDExNjggMTFCRDtDRDAyOzExMEUgMTE2OCAxMUJEOworQ0QwMztDRDAzOzExMEUgMTE2OCAxMUJFO0NEMDM7MTEwRSAxMTY4IDExQkU7CitDRDA0O0NEMDQ7MTEwRSAxMTY4IDExQkY7Q0QwNDsxMTBFIDExNjggMTFCRjsKK0NEMDU7Q0QwNTsxMTBFIDExNjggMTFDMDtDRDA1OzExMEUgMTE2OCAxMUMwOworQ0QwNjtDRDA2OzExMEUgMTE2OCAxMUMxO0NEMDY7MTEwRSAxMTY4IDExQzE7CitDRDA3O0NEMDc7MTEwRSAxMTY4IDExQzI7Q0QwNzsxMTBFIDExNjggMTFDMjsKK0NEMDg7Q0QwODsxMTBFIDExNjk7Q0QwODsxMTBFIDExNjk7CitDRDA5O0NEMDk7MTEwRSAxMTY5IDExQTg7Q0QwOTsxMTBFIDExNjkgMTFBODsKK0NEMEE7Q0QwQTsxMTBFIDExNjkgMTFBOTtDRDBBOzExMEUgMTE2OSAxMUE5OworQ0QwQjtDRDBCOzExMEUgMTE2OSAxMUFBO0NEMEI7MTEwRSAxMTY5IDExQUE7CitDRDBDO0NEMEM7MTEwRSAxMTY5IDExQUI7Q0QwQzsxMTBFIDExNjkgMTFBQjsKK0NEMEQ7Q0QwRDsxMTBFIDExNjkgMTFBQztDRDBEOzExMEUgMTE2OSAxMUFDOworQ0QwRTtDRDBFOzExMEUgMTE2OSAxMUFEO0NEMEU7MTEwRSAxMTY5IDExQUQ7CitDRDBGO0NEMEY7MTEwRSAxMTY5IDExQUU7Q0QwRjsxMTBFIDExNjkgMTFBRTsKK0NEMTA7Q0QxMDsxMTBFIDExNjkgMTFBRjtDRDEwOzExMEUgMTE2OSAxMUFGOworQ0QxMTtDRDExOzExMEUgMTE2OSAxMUIwO0NEMTE7MTEwRSAxMTY5IDExQjA7CitDRDEyO0NEMTI7MTEwRSAxMTY5IDExQjE7Q0QxMjsxMTBFIDExNjkgMTFCMTsKK0NEMTM7Q0QxMzsxMTBFIDExNjkgMTFCMjtDRDEzOzExMEUgMTE2OSAxMUIyOworQ0QxNDtDRDE0OzExMEUgMTE2OSAxMUIzO0NEMTQ7MTEwRSAxMTY5IDExQjM7CitDRDE1O0NEMTU7MTEwRSAxMTY5IDExQjQ7Q0QxNTsxMTBFIDExNjkgMTFCNDsKK0NEMTY7Q0QxNjsxMTBFIDExNjkgMTFCNTtDRDE2OzExMEUgMTE2OSAxMUI1OworQ0QxNztDRDE3OzExMEUgMTE2OSAxMUI2O0NEMTc7MTEwRSAxMTY5IDExQjY7CitDRDE4O0NEMTg7MTEwRSAxMTY5IDExQjc7Q0QxODsxMTBFIDExNjkgMTFCNzsKK0NEMTk7Q0QxOTsxMTBFIDExNjkgMTFCODtDRDE5OzExMEUgMTE2OSAxMUI4OworQ0QxQTtDRDFBOzExMEUgMTE2OSAxMUI5O0NEMUE7MTEwRSAxMTY5IDExQjk7CitDRDFCO0NEMUI7MTEwRSAxMTY5IDExQkE7Q0QxQjsxMTBFIDExNjkgMTFCQTsKK0NEMUM7Q0QxQzsxMTBFIDExNjkgMTFCQjtDRDFDOzExMEUgMTE2OSAxMUJCOworQ0QxRDtDRDFEOzExMEUgMTE2OSAxMUJDO0NEMUQ7MTEwRSAxMTY5IDExQkM7CitDRDFFO0NEMUU7MTEwRSAxMTY5IDExQkQ7Q0QxRTsxMTBFIDExNjkgMTFCRDsKK0NEMUY7Q0QxRjsxMTBFIDExNjkgMTFCRTtDRDFGOzExMEUgMTE2OSAxMUJFOworQ0QyMDtDRDIwOzExMEUgMTE2OSAxMUJGO0NEMjA7MTEwRSAxMTY5IDExQkY7CitDRDIxO0NEMjE7MTEwRSAxMTY5IDExQzA7Q0QyMTsxMTBFIDExNjkgMTFDMDsKK0NEMjI7Q0QyMjsxMTBFIDExNjkgMTFDMTtDRDIyOzExMEUgMTE2OSAxMUMxOworQ0QyMztDRDIzOzExMEUgMTE2OSAxMUMyO0NEMjM7MTEwRSAxMTY5IDExQzI7CitDRDI0O0NEMjQ7MTEwRSAxMTZBO0NEMjQ7MTEwRSAxMTZBOworQ0QyNTtDRDI1OzExMEUgMTE2QSAxMUE4O0NEMjU7MTEwRSAxMTZBIDExQTg7CitDRDI2O0NEMjY7MTEwRSAxMTZBIDExQTk7Q0QyNjsxMTBFIDExNkEgMTFBOTsKK0NEMjc7Q0QyNzsxMTBFIDExNkEgMTFBQTtDRDI3OzExMEUgMTE2QSAxMUFBOworQ0QyODtDRDI4OzExMEUgMTE2QSAxMUFCO0NEMjg7MTEwRSAxMTZBIDExQUI7CitDRDI5O0NEMjk7MTEwRSAxMTZBIDExQUM7Q0QyOTsxMTBFIDExNkEgMTFBQzsKK0NEMkE7Q0QyQTsxMTBFIDExNkEgMTFBRDtDRDJBOzExMEUgMTE2QSAxMUFEOworQ0QyQjtDRDJCOzExMEUgMTE2QSAxMUFFO0NEMkI7MTEwRSAxMTZBIDExQUU7CitDRDJDO0NEMkM7MTEwRSAxMTZBIDExQUY7Q0QyQzsxMTBFIDExNkEgMTFBRjsKK0NEMkQ7Q0QyRDsxMTBFIDExNkEgMTFCMDtDRDJEOzExMEUgMTE2QSAxMUIwOworQ0QyRTtDRDJFOzExMEUgMTE2QSAxMUIxO0NEMkU7MTEwRSAxMTZBIDExQjE7CitDRDJGO0NEMkY7MTEwRSAxMTZBIDExQjI7Q0QyRjsxMTBFIDExNkEgMTFCMjsKK0NEMzA7Q0QzMDsxMTBFIDExNkEgMTFCMztDRDMwOzExMEUgMTE2QSAxMUIzOworQ0QzMTtDRDMxOzExMEUgMTE2QSAxMUI0O0NEMzE7MTEwRSAxMTZBIDExQjQ7CitDRDMyO0NEMzI7MTEwRSAxMTZBIDExQjU7Q0QzMjsxMTBFIDExNkEgMTFCNTsKK0NEMzM7Q0QzMzsxMTBFIDExNkEgMTFCNjtDRDMzOzExMEUgMTE2QSAxMUI2OworQ0QzNDtDRDM0OzExMEUgMTE2QSAxMUI3O0NEMzQ7MTEwRSAxMTZBIDExQjc7CitDRDM1O0NEMzU7MTEwRSAxMTZBIDExQjg7Q0QzNTsxMTBFIDExNkEgMTFCODsKK0NEMzY7Q0QzNjsxMTBFIDExNkEgMTFCOTtDRDM2OzExMEUgMTE2QSAxMUI5OworQ0QzNztDRDM3OzExMEUgMTE2QSAxMUJBO0NEMzc7MTEwRSAxMTZBIDExQkE7CitDRDM4O0NEMzg7MTEwRSAxMTZBIDExQkI7Q0QzODsxMTBFIDExNkEgMTFCQjsKK0NEMzk7Q0QzOTsxMTBFIDExNkEgMTFCQztDRDM5OzExMEUgMTE2QSAxMUJDOworQ0QzQTtDRDNBOzExMEUgMTE2QSAxMUJEO0NEM0E7MTEwRSAxMTZBIDExQkQ7CitDRDNCO0NEM0I7MTEwRSAxMTZBIDExQkU7Q0QzQjsxMTBFIDExNkEgMTFCRTsKK0NEM0M7Q0QzQzsxMTBFIDExNkEgMTFCRjtDRDNDOzExMEUgMTE2QSAxMUJGOworQ0QzRDtDRDNEOzExMEUgMTE2QSAxMUMwO0NEM0Q7MTEwRSAxMTZBIDExQzA7CitDRDNFO0NEM0U7MTEwRSAxMTZBIDExQzE7Q0QzRTsxMTBFIDExNkEgMTFDMTsKK0NEM0Y7Q0QzRjsxMTBFIDExNkEgMTFDMjtDRDNGOzExMEUgMTE2QSAxMUMyOworQ0Q0MDtDRDQwOzExMEUgMTE2QjtDRDQwOzExMEUgMTE2QjsKK0NENDE7Q0Q0MTsxMTBFIDExNkIgMTFBODtDRDQxOzExMEUgMTE2QiAxMUE4OworQ0Q0MjtDRDQyOzExMEUgMTE2QiAxMUE5O0NENDI7MTEwRSAxMTZCIDExQTk7CitDRDQzO0NENDM7MTEwRSAxMTZCIDExQUE7Q0Q0MzsxMTBFIDExNkIgMTFBQTsKK0NENDQ7Q0Q0NDsxMTBFIDExNkIgMTFBQjtDRDQ0OzExMEUgMTE2QiAxMUFCOworQ0Q0NTtDRDQ1OzExMEUgMTE2QiAxMUFDO0NENDU7MTEwRSAxMTZCIDExQUM7CitDRDQ2O0NENDY7MTEwRSAxMTZCIDExQUQ7Q0Q0NjsxMTBFIDExNkIgMTFBRDsKK0NENDc7Q0Q0NzsxMTBFIDExNkIgMTFBRTtDRDQ3OzExMEUgMTE2QiAxMUFFOworQ0Q0ODtDRDQ4OzExMEUgMTE2QiAxMUFGO0NENDg7MTEwRSAxMTZCIDExQUY7CitDRDQ5O0NENDk7MTEwRSAxMTZCIDExQjA7Q0Q0OTsxMTBFIDExNkIgMTFCMDsKK0NENEE7Q0Q0QTsxMTBFIDExNkIgMTFCMTtDRDRBOzExMEUgMTE2QiAxMUIxOworQ0Q0QjtDRDRCOzExMEUgMTE2QiAxMUIyO0NENEI7MTEwRSAxMTZCIDExQjI7CitDRDRDO0NENEM7MTEwRSAxMTZCIDExQjM7Q0Q0QzsxMTBFIDExNkIgMTFCMzsKK0NENEQ7Q0Q0RDsxMTBFIDExNkIgMTFCNDtDRDREOzExMEUgMTE2QiAxMUI0OworQ0Q0RTtDRDRFOzExMEUgMTE2QiAxMUI1O0NENEU7MTEwRSAxMTZCIDExQjU7CitDRDRGO0NENEY7MTEwRSAxMTZCIDExQjY7Q0Q0RjsxMTBFIDExNkIgMTFCNjsKK0NENTA7Q0Q1MDsxMTBFIDExNkIgMTFCNztDRDUwOzExMEUgMTE2QiAxMUI3OworQ0Q1MTtDRDUxOzExMEUgMTE2QiAxMUI4O0NENTE7MTEwRSAxMTZCIDExQjg7CitDRDUyO0NENTI7MTEwRSAxMTZCIDExQjk7Q0Q1MjsxMTBFIDExNkIgMTFCOTsKK0NENTM7Q0Q1MzsxMTBFIDExNkIgMTFCQTtDRDUzOzExMEUgMTE2QiAxMUJBOworQ0Q1NDtDRDU0OzExMEUgMTE2QiAxMUJCO0NENTQ7MTEwRSAxMTZCIDExQkI7CitDRDU1O0NENTU7MTEwRSAxMTZCIDExQkM7Q0Q1NTsxMTBFIDExNkIgMTFCQzsKK0NENTY7Q0Q1NjsxMTBFIDExNkIgMTFCRDtDRDU2OzExMEUgMTE2QiAxMUJEOworQ0Q1NztDRDU3OzExMEUgMTE2QiAxMUJFO0NENTc7MTEwRSAxMTZCIDExQkU7CitDRDU4O0NENTg7MTEwRSAxMTZCIDExQkY7Q0Q1ODsxMTBFIDExNkIgMTFCRjsKK0NENTk7Q0Q1OTsxMTBFIDExNkIgMTFDMDtDRDU5OzExMEUgMTE2QiAxMUMwOworQ0Q1QTtDRDVBOzExMEUgMTE2QiAxMUMxO0NENUE7MTEwRSAxMTZCIDExQzE7CitDRDVCO0NENUI7MTEwRSAxMTZCIDExQzI7Q0Q1QjsxMTBFIDExNkIgMTFDMjsKK0NENUM7Q0Q1QzsxMTBFIDExNkM7Q0Q1QzsxMTBFIDExNkM7CitDRDVEO0NENUQ7MTEwRSAxMTZDIDExQTg7Q0Q1RDsxMTBFIDExNkMgMTFBODsKK0NENUU7Q0Q1RTsxMTBFIDExNkMgMTFBOTtDRDVFOzExMEUgMTE2QyAxMUE5OworQ0Q1RjtDRDVGOzExMEUgMTE2QyAxMUFBO0NENUY7MTEwRSAxMTZDIDExQUE7CitDRDYwO0NENjA7MTEwRSAxMTZDIDExQUI7Q0Q2MDsxMTBFIDExNkMgMTFBQjsKK0NENjE7Q0Q2MTsxMTBFIDExNkMgMTFBQztDRDYxOzExMEUgMTE2QyAxMUFDOworQ0Q2MjtDRDYyOzExMEUgMTE2QyAxMUFEO0NENjI7MTEwRSAxMTZDIDExQUQ7CitDRDYzO0NENjM7MTEwRSAxMTZDIDExQUU7Q0Q2MzsxMTBFIDExNkMgMTFBRTsKK0NENjQ7Q0Q2NDsxMTBFIDExNkMgMTFBRjtDRDY0OzExMEUgMTE2QyAxMUFGOworQ0Q2NTtDRDY1OzExMEUgMTE2QyAxMUIwO0NENjU7MTEwRSAxMTZDIDExQjA7CitDRDY2O0NENjY7MTEwRSAxMTZDIDExQjE7Q0Q2NjsxMTBFIDExNkMgMTFCMTsKK0NENjc7Q0Q2NzsxMTBFIDExNkMgMTFCMjtDRDY3OzExMEUgMTE2QyAxMUIyOworQ0Q2ODtDRDY4OzExMEUgMTE2QyAxMUIzO0NENjg7MTEwRSAxMTZDIDExQjM7CitDRDY5O0NENjk7MTEwRSAxMTZDIDExQjQ7Q0Q2OTsxMTBFIDExNkMgMTFCNDsKK0NENkE7Q0Q2QTsxMTBFIDExNkMgMTFCNTtDRDZBOzExMEUgMTE2QyAxMUI1OworQ0Q2QjtDRDZCOzExMEUgMTE2QyAxMUI2O0NENkI7MTEwRSAxMTZDIDExQjY7CitDRDZDO0NENkM7MTEwRSAxMTZDIDExQjc7Q0Q2QzsxMTBFIDExNkMgMTFCNzsKK0NENkQ7Q0Q2RDsxMTBFIDExNkMgMTFCODtDRDZEOzExMEUgMTE2QyAxMUI4OworQ0Q2RTtDRDZFOzExMEUgMTE2QyAxMUI5O0NENkU7MTEwRSAxMTZDIDExQjk7CitDRDZGO0NENkY7MTEwRSAxMTZDIDExQkE7Q0Q2RjsxMTBFIDExNkMgMTFCQTsKK0NENzA7Q0Q3MDsxMTBFIDExNkMgMTFCQjtDRDcwOzExMEUgMTE2QyAxMUJCOworQ0Q3MTtDRDcxOzExMEUgMTE2QyAxMUJDO0NENzE7MTEwRSAxMTZDIDExQkM7CitDRDcyO0NENzI7MTEwRSAxMTZDIDExQkQ7Q0Q3MjsxMTBFIDExNkMgMTFCRDsKK0NENzM7Q0Q3MzsxMTBFIDExNkMgMTFCRTtDRDczOzExMEUgMTE2QyAxMUJFOworQ0Q3NDtDRDc0OzExMEUgMTE2QyAxMUJGO0NENzQ7MTEwRSAxMTZDIDExQkY7CitDRDc1O0NENzU7MTEwRSAxMTZDIDExQzA7Q0Q3NTsxMTBFIDExNkMgMTFDMDsKK0NENzY7Q0Q3NjsxMTBFIDExNkMgMTFDMTtDRDc2OzExMEUgMTE2QyAxMUMxOworQ0Q3NztDRDc3OzExMEUgMTE2QyAxMUMyO0NENzc7MTEwRSAxMTZDIDExQzI7CitDRDc4O0NENzg7MTEwRSAxMTZEO0NENzg7MTEwRSAxMTZEOworQ0Q3OTtDRDc5OzExMEUgMTE2RCAxMUE4O0NENzk7MTEwRSAxMTZEIDExQTg7CitDRDdBO0NEN0E7MTEwRSAxMTZEIDExQTk7Q0Q3QTsxMTBFIDExNkQgMTFBOTsKK0NEN0I7Q0Q3QjsxMTBFIDExNkQgMTFBQTtDRDdCOzExMEUgMTE2RCAxMUFBOworQ0Q3QztDRDdDOzExMEUgMTE2RCAxMUFCO0NEN0M7MTEwRSAxMTZEIDExQUI7CitDRDdEO0NEN0Q7MTEwRSAxMTZEIDExQUM7Q0Q3RDsxMTBFIDExNkQgMTFBQzsKK0NEN0U7Q0Q3RTsxMTBFIDExNkQgMTFBRDtDRDdFOzExMEUgMTE2RCAxMUFEOworQ0Q3RjtDRDdGOzExMEUgMTE2RCAxMUFFO0NEN0Y7MTEwRSAxMTZEIDExQUU7CitDRDgwO0NEODA7MTEwRSAxMTZEIDExQUY7Q0Q4MDsxMTBFIDExNkQgMTFBRjsKK0NEODE7Q0Q4MTsxMTBFIDExNkQgMTFCMDtDRDgxOzExMEUgMTE2RCAxMUIwOworQ0Q4MjtDRDgyOzExMEUgMTE2RCAxMUIxO0NEODI7MTEwRSAxMTZEIDExQjE7CitDRDgzO0NEODM7MTEwRSAxMTZEIDExQjI7Q0Q4MzsxMTBFIDExNkQgMTFCMjsKK0NEODQ7Q0Q4NDsxMTBFIDExNkQgMTFCMztDRDg0OzExMEUgMTE2RCAxMUIzOworQ0Q4NTtDRDg1OzExMEUgMTE2RCAxMUI0O0NEODU7MTEwRSAxMTZEIDExQjQ7CitDRDg2O0NEODY7MTEwRSAxMTZEIDExQjU7Q0Q4NjsxMTBFIDExNkQgMTFCNTsKK0NEODc7Q0Q4NzsxMTBFIDExNkQgMTFCNjtDRDg3OzExMEUgMTE2RCAxMUI2OworQ0Q4ODtDRDg4OzExMEUgMTE2RCAxMUI3O0NEODg7MTEwRSAxMTZEIDExQjc7CitDRDg5O0NEODk7MTEwRSAxMTZEIDExQjg7Q0Q4OTsxMTBFIDExNkQgMTFCODsKK0NEOEE7Q0Q4QTsxMTBFIDExNkQgMTFCOTtDRDhBOzExMEUgMTE2RCAxMUI5OworQ0Q4QjtDRDhCOzExMEUgMTE2RCAxMUJBO0NEOEI7MTEwRSAxMTZEIDExQkE7CitDRDhDO0NEOEM7MTEwRSAxMTZEIDExQkI7Q0Q4QzsxMTBFIDExNkQgMTFCQjsKK0NEOEQ7Q0Q4RDsxMTBFIDExNkQgMTFCQztDRDhEOzExMEUgMTE2RCAxMUJDOworQ0Q4RTtDRDhFOzExMEUgMTE2RCAxMUJEO0NEOEU7MTEwRSAxMTZEIDExQkQ7CitDRDhGO0NEOEY7MTEwRSAxMTZEIDExQkU7Q0Q4RjsxMTBFIDExNkQgMTFCRTsKK0NEOTA7Q0Q5MDsxMTBFIDExNkQgMTFCRjtDRDkwOzExMEUgMTE2RCAxMUJGOworQ0Q5MTtDRDkxOzExMEUgMTE2RCAxMUMwO0NEOTE7MTEwRSAxMTZEIDExQzA7CitDRDkyO0NEOTI7MTEwRSAxMTZEIDExQzE7Q0Q5MjsxMTBFIDExNkQgMTFDMTsKK0NEOTM7Q0Q5MzsxMTBFIDExNkQgMTFDMjtDRDkzOzExMEUgMTE2RCAxMUMyOworQ0Q5NDtDRDk0OzExMEUgMTE2RTtDRDk0OzExMEUgMTE2RTsKK0NEOTU7Q0Q5NTsxMTBFIDExNkUgMTFBODtDRDk1OzExMEUgMTE2RSAxMUE4OworQ0Q5NjtDRDk2OzExMEUgMTE2RSAxMUE5O0NEOTY7MTEwRSAxMTZFIDExQTk7CitDRDk3O0NEOTc7MTEwRSAxMTZFIDExQUE7Q0Q5NzsxMTBFIDExNkUgMTFBQTsKK0NEOTg7Q0Q5ODsxMTBFIDExNkUgMTFBQjtDRDk4OzExMEUgMTE2RSAxMUFCOworQ0Q5OTtDRDk5OzExMEUgMTE2RSAxMUFDO0NEOTk7MTEwRSAxMTZFIDExQUM7CitDRDlBO0NEOUE7MTEwRSAxMTZFIDExQUQ7Q0Q5QTsxMTBFIDExNkUgMTFBRDsKK0NEOUI7Q0Q5QjsxMTBFIDExNkUgMTFBRTtDRDlCOzExMEUgMTE2RSAxMUFFOworQ0Q5QztDRDlDOzExMEUgMTE2RSAxMUFGO0NEOUM7MTEwRSAxMTZFIDExQUY7CitDRDlEO0NEOUQ7MTEwRSAxMTZFIDExQjA7Q0Q5RDsxMTBFIDExNkUgMTFCMDsKK0NEOUU7Q0Q5RTsxMTBFIDExNkUgMTFCMTtDRDlFOzExMEUgMTE2RSAxMUIxOworQ0Q5RjtDRDlGOzExMEUgMTE2RSAxMUIyO0NEOUY7MTEwRSAxMTZFIDExQjI7CitDREEwO0NEQTA7MTEwRSAxMTZFIDExQjM7Q0RBMDsxMTBFIDExNkUgMTFCMzsKK0NEQTE7Q0RBMTsxMTBFIDExNkUgMTFCNDtDREExOzExMEUgMTE2RSAxMUI0OworQ0RBMjtDREEyOzExMEUgMTE2RSAxMUI1O0NEQTI7MTEwRSAxMTZFIDExQjU7CitDREEzO0NEQTM7MTEwRSAxMTZFIDExQjY7Q0RBMzsxMTBFIDExNkUgMTFCNjsKK0NEQTQ7Q0RBNDsxMTBFIDExNkUgMTFCNztDREE0OzExMEUgMTE2RSAxMUI3OworQ0RBNTtDREE1OzExMEUgMTE2RSAxMUI4O0NEQTU7MTEwRSAxMTZFIDExQjg7CitDREE2O0NEQTY7MTEwRSAxMTZFIDExQjk7Q0RBNjsxMTBFIDExNkUgMTFCOTsKK0NEQTc7Q0RBNzsxMTBFIDExNkUgMTFCQTtDREE3OzExMEUgMTE2RSAxMUJBOworQ0RBODtDREE4OzExMEUgMTE2RSAxMUJCO0NEQTg7MTEwRSAxMTZFIDExQkI7CitDREE5O0NEQTk7MTEwRSAxMTZFIDExQkM7Q0RBOTsxMTBFIDExNkUgMTFCQzsKK0NEQUE7Q0RBQTsxMTBFIDExNkUgMTFCRDtDREFBOzExMEUgMTE2RSAxMUJEOworQ0RBQjtDREFCOzExMEUgMTE2RSAxMUJFO0NEQUI7MTEwRSAxMTZFIDExQkU7CitDREFDO0NEQUM7MTEwRSAxMTZFIDExQkY7Q0RBQzsxMTBFIDExNkUgMTFCRjsKK0NEQUQ7Q0RBRDsxMTBFIDExNkUgMTFDMDtDREFEOzExMEUgMTE2RSAxMUMwOworQ0RBRTtDREFFOzExMEUgMTE2RSAxMUMxO0NEQUU7MTEwRSAxMTZFIDExQzE7CitDREFGO0NEQUY7MTEwRSAxMTZFIDExQzI7Q0RBRjsxMTBFIDExNkUgMTFDMjsKK0NEQjA7Q0RCMDsxMTBFIDExNkY7Q0RCMDsxMTBFIDExNkY7CitDREIxO0NEQjE7MTEwRSAxMTZGIDExQTg7Q0RCMTsxMTBFIDExNkYgMTFBODsKK0NEQjI7Q0RCMjsxMTBFIDExNkYgMTFBOTtDREIyOzExMEUgMTE2RiAxMUE5OworQ0RCMztDREIzOzExMEUgMTE2RiAxMUFBO0NEQjM7MTEwRSAxMTZGIDExQUE7CitDREI0O0NEQjQ7MTEwRSAxMTZGIDExQUI7Q0RCNDsxMTBFIDExNkYgMTFBQjsKK0NEQjU7Q0RCNTsxMTBFIDExNkYgMTFBQztDREI1OzExMEUgMTE2RiAxMUFDOworQ0RCNjtDREI2OzExMEUgMTE2RiAxMUFEO0NEQjY7MTEwRSAxMTZGIDExQUQ7CitDREI3O0NEQjc7MTEwRSAxMTZGIDExQUU7Q0RCNzsxMTBFIDExNkYgMTFBRTsKK0NEQjg7Q0RCODsxMTBFIDExNkYgMTFBRjtDREI4OzExMEUgMTE2RiAxMUFGOworQ0RCOTtDREI5OzExMEUgMTE2RiAxMUIwO0NEQjk7MTEwRSAxMTZGIDExQjA7CitDREJBO0NEQkE7MTEwRSAxMTZGIDExQjE7Q0RCQTsxMTBFIDExNkYgMTFCMTsKK0NEQkI7Q0RCQjsxMTBFIDExNkYgMTFCMjtDREJCOzExMEUgMTE2RiAxMUIyOworQ0RCQztDREJDOzExMEUgMTE2RiAxMUIzO0NEQkM7MTEwRSAxMTZGIDExQjM7CitDREJEO0NEQkQ7MTEwRSAxMTZGIDExQjQ7Q0RCRDsxMTBFIDExNkYgMTFCNDsKK0NEQkU7Q0RCRTsxMTBFIDExNkYgMTFCNTtDREJFOzExMEUgMTE2RiAxMUI1OworQ0RCRjtDREJGOzExMEUgMTE2RiAxMUI2O0NEQkY7MTEwRSAxMTZGIDExQjY7CitDREMwO0NEQzA7MTEwRSAxMTZGIDExQjc7Q0RDMDsxMTBFIDExNkYgMTFCNzsKK0NEQzE7Q0RDMTsxMTBFIDExNkYgMTFCODtDREMxOzExMEUgMTE2RiAxMUI4OworQ0RDMjtDREMyOzExMEUgMTE2RiAxMUI5O0NEQzI7MTEwRSAxMTZGIDExQjk7CitDREMzO0NEQzM7MTEwRSAxMTZGIDExQkE7Q0RDMzsxMTBFIDExNkYgMTFCQTsKK0NEQzQ7Q0RDNDsxMTBFIDExNkYgMTFCQjtDREM0OzExMEUgMTE2RiAxMUJCOworQ0RDNTtDREM1OzExMEUgMTE2RiAxMUJDO0NEQzU7MTEwRSAxMTZGIDExQkM7CitDREM2O0NEQzY7MTEwRSAxMTZGIDExQkQ7Q0RDNjsxMTBFIDExNkYgMTFCRDsKK0NEQzc7Q0RDNzsxMTBFIDExNkYgMTFCRTtDREM3OzExMEUgMTE2RiAxMUJFOworQ0RDODtDREM4OzExMEUgMTE2RiAxMUJGO0NEQzg7MTEwRSAxMTZGIDExQkY7CitDREM5O0NEQzk7MTEwRSAxMTZGIDExQzA7Q0RDOTsxMTBFIDExNkYgMTFDMDsKK0NEQ0E7Q0RDQTsxMTBFIDExNkYgMTFDMTtDRENBOzExMEUgMTE2RiAxMUMxOworQ0RDQjtDRENCOzExMEUgMTE2RiAxMUMyO0NEQ0I7MTEwRSAxMTZGIDExQzI7CitDRENDO0NEQ0M7MTEwRSAxMTcwO0NEQ0M7MTEwRSAxMTcwOworQ0RDRDtDRENEOzExMEUgMTE3MCAxMUE4O0NEQ0Q7MTEwRSAxMTcwIDExQTg7CitDRENFO0NEQ0U7MTEwRSAxMTcwIDExQTk7Q0RDRTsxMTBFIDExNzAgMTFBOTsKK0NEQ0Y7Q0RDRjsxMTBFIDExNzAgMTFBQTtDRENGOzExMEUgMTE3MCAxMUFBOworQ0REMDtDREQwOzExMEUgMTE3MCAxMUFCO0NERDA7MTEwRSAxMTcwIDExQUI7CitDREQxO0NERDE7MTEwRSAxMTcwIDExQUM7Q0REMTsxMTBFIDExNzAgMTFBQzsKK0NERDI7Q0REMjsxMTBFIDExNzAgMTFBRDtDREQyOzExMEUgMTE3MCAxMUFEOworQ0REMztDREQzOzExMEUgMTE3MCAxMUFFO0NERDM7MTEwRSAxMTcwIDExQUU7CitDREQ0O0NERDQ7MTEwRSAxMTcwIDExQUY7Q0RENDsxMTBFIDExNzAgMTFBRjsKK0NERDU7Q0RENTsxMTBFIDExNzAgMTFCMDtDREQ1OzExMEUgMTE3MCAxMUIwOworQ0RENjtDREQ2OzExMEUgMTE3MCAxMUIxO0NERDY7MTEwRSAxMTcwIDExQjE7CitDREQ3O0NERDc7MTEwRSAxMTcwIDExQjI7Q0RENzsxMTBFIDExNzAgMTFCMjsKK0NERDg7Q0REODsxMTBFIDExNzAgMTFCMztDREQ4OzExMEUgMTE3MCAxMUIzOworQ0REOTtDREQ5OzExMEUgMTE3MCAxMUI0O0NERDk7MTEwRSAxMTcwIDExQjQ7CitDRERBO0NEREE7MTEwRSAxMTcwIDExQjU7Q0REQTsxMTBFIDExNzAgMTFCNTsKK0NEREI7Q0REQjsxMTBFIDExNzAgMTFCNjtDRERCOzExMEUgMTE3MCAxMUI2OworQ0REQztDRERDOzExMEUgMTE3MCAxMUI3O0NEREM7MTEwRSAxMTcwIDExQjc7CitDREREO0NEREQ7MTEwRSAxMTcwIDExQjg7Q0RERDsxMTBFIDExNzAgMTFCODsKK0NEREU7Q0RERTsxMTBFIDExNzAgMTFCOTtDRERFOzExMEUgMTE3MCAxMUI5OworQ0RERjtDRERGOzExMEUgMTE3MCAxMUJBO0NEREY7MTEwRSAxMTcwIDExQkE7CitDREUwO0NERTA7MTEwRSAxMTcwIDExQkI7Q0RFMDsxMTBFIDExNzAgMTFCQjsKK0NERTE7Q0RFMTsxMTBFIDExNzAgMTFCQztDREUxOzExMEUgMTE3MCAxMUJDOworQ0RFMjtDREUyOzExMEUgMTE3MCAxMUJEO0NERTI7MTEwRSAxMTcwIDExQkQ7CitDREUzO0NERTM7MTEwRSAxMTcwIDExQkU7Q0RFMzsxMTBFIDExNzAgMTFCRTsKK0NERTQ7Q0RFNDsxMTBFIDExNzAgMTFCRjtDREU0OzExMEUgMTE3MCAxMUJGOworQ0RFNTtDREU1OzExMEUgMTE3MCAxMUMwO0NERTU7MTEwRSAxMTcwIDExQzA7CitDREU2O0NERTY7MTEwRSAxMTcwIDExQzE7Q0RFNjsxMTBFIDExNzAgMTFDMTsKK0NERTc7Q0RFNzsxMTBFIDExNzAgMTFDMjtDREU3OzExMEUgMTE3MCAxMUMyOworQ0RFODtDREU4OzExMEUgMTE3MTtDREU4OzExMEUgMTE3MTsKK0NERTk7Q0RFOTsxMTBFIDExNzEgMTFBODtDREU5OzExMEUgMTE3MSAxMUE4OworQ0RFQTtDREVBOzExMEUgMTE3MSAxMUE5O0NERUE7MTEwRSAxMTcxIDExQTk7CitDREVCO0NERUI7MTEwRSAxMTcxIDExQUE7Q0RFQjsxMTBFIDExNzEgMTFBQTsKK0NERUM7Q0RFQzsxMTBFIDExNzEgMTFBQjtDREVDOzExMEUgMTE3MSAxMUFCOworQ0RFRDtDREVEOzExMEUgMTE3MSAxMUFDO0NERUQ7MTEwRSAxMTcxIDExQUM7CitDREVFO0NERUU7MTEwRSAxMTcxIDExQUQ7Q0RFRTsxMTBFIDExNzEgMTFBRDsKK0NERUY7Q0RFRjsxMTBFIDExNzEgMTFBRTtDREVGOzExMEUgMTE3MSAxMUFFOworQ0RGMDtDREYwOzExMEUgMTE3MSAxMUFGO0NERjA7MTEwRSAxMTcxIDExQUY7CitDREYxO0NERjE7MTEwRSAxMTcxIDExQjA7Q0RGMTsxMTBFIDExNzEgMTFCMDsKK0NERjI7Q0RGMjsxMTBFIDExNzEgMTFCMTtDREYyOzExMEUgMTE3MSAxMUIxOworQ0RGMztDREYzOzExMEUgMTE3MSAxMUIyO0NERjM7MTEwRSAxMTcxIDExQjI7CitDREY0O0NERjQ7MTEwRSAxMTcxIDExQjM7Q0RGNDsxMTBFIDExNzEgMTFCMzsKK0NERjU7Q0RGNTsxMTBFIDExNzEgMTFCNDtDREY1OzExMEUgMTE3MSAxMUI0OworQ0RGNjtDREY2OzExMEUgMTE3MSAxMUI1O0NERjY7MTEwRSAxMTcxIDExQjU7CitDREY3O0NERjc7MTEwRSAxMTcxIDExQjY7Q0RGNzsxMTBFIDExNzEgMTFCNjsKK0NERjg7Q0RGODsxMTBFIDExNzEgMTFCNztDREY4OzExMEUgMTE3MSAxMUI3OworQ0RGOTtDREY5OzExMEUgMTE3MSAxMUI4O0NERjk7MTEwRSAxMTcxIDExQjg7CitDREZBO0NERkE7MTEwRSAxMTcxIDExQjk7Q0RGQTsxMTBFIDExNzEgMTFCOTsKK0NERkI7Q0RGQjsxMTBFIDExNzEgMTFCQTtDREZCOzExMEUgMTE3MSAxMUJBOworQ0RGQztDREZDOzExMEUgMTE3MSAxMUJCO0NERkM7MTEwRSAxMTcxIDExQkI7CitDREZEO0NERkQ7MTEwRSAxMTcxIDExQkM7Q0RGRDsxMTBFIDExNzEgMTFCQzsKK0NERkU7Q0RGRTsxMTBFIDExNzEgMTFCRDtDREZFOzExMEUgMTE3MSAxMUJEOworQ0RGRjtDREZGOzExMEUgMTE3MSAxMUJFO0NERkY7MTEwRSAxMTcxIDExQkU7CitDRTAwO0NFMDA7MTEwRSAxMTcxIDExQkY7Q0UwMDsxMTBFIDExNzEgMTFCRjsKK0NFMDE7Q0UwMTsxMTBFIDExNzEgMTFDMDtDRTAxOzExMEUgMTE3MSAxMUMwOworQ0UwMjtDRTAyOzExMEUgMTE3MSAxMUMxO0NFMDI7MTEwRSAxMTcxIDExQzE7CitDRTAzO0NFMDM7MTEwRSAxMTcxIDExQzI7Q0UwMzsxMTBFIDExNzEgMTFDMjsKK0NFMDQ7Q0UwNDsxMTBFIDExNzI7Q0UwNDsxMTBFIDExNzI7CitDRTA1O0NFMDU7MTEwRSAxMTcyIDExQTg7Q0UwNTsxMTBFIDExNzIgMTFBODsKK0NFMDY7Q0UwNjsxMTBFIDExNzIgMTFBOTtDRTA2OzExMEUgMTE3MiAxMUE5OworQ0UwNztDRTA3OzExMEUgMTE3MiAxMUFBO0NFMDc7MTEwRSAxMTcyIDExQUE7CitDRTA4O0NFMDg7MTEwRSAxMTcyIDExQUI7Q0UwODsxMTBFIDExNzIgMTFBQjsKK0NFMDk7Q0UwOTsxMTBFIDExNzIgMTFBQztDRTA5OzExMEUgMTE3MiAxMUFDOworQ0UwQTtDRTBBOzExMEUgMTE3MiAxMUFEO0NFMEE7MTEwRSAxMTcyIDExQUQ7CitDRTBCO0NFMEI7MTEwRSAxMTcyIDExQUU7Q0UwQjsxMTBFIDExNzIgMTFBRTsKK0NFMEM7Q0UwQzsxMTBFIDExNzIgMTFBRjtDRTBDOzExMEUgMTE3MiAxMUFGOworQ0UwRDtDRTBEOzExMEUgMTE3MiAxMUIwO0NFMEQ7MTEwRSAxMTcyIDExQjA7CitDRTBFO0NFMEU7MTEwRSAxMTcyIDExQjE7Q0UwRTsxMTBFIDExNzIgMTFCMTsKK0NFMEY7Q0UwRjsxMTBFIDExNzIgMTFCMjtDRTBGOzExMEUgMTE3MiAxMUIyOworQ0UxMDtDRTEwOzExMEUgMTE3MiAxMUIzO0NFMTA7MTEwRSAxMTcyIDExQjM7CitDRTExO0NFMTE7MTEwRSAxMTcyIDExQjQ7Q0UxMTsxMTBFIDExNzIgMTFCNDsKK0NFMTI7Q0UxMjsxMTBFIDExNzIgMTFCNTtDRTEyOzExMEUgMTE3MiAxMUI1OworQ0UxMztDRTEzOzExMEUgMTE3MiAxMUI2O0NFMTM7MTEwRSAxMTcyIDExQjY7CitDRTE0O0NFMTQ7MTEwRSAxMTcyIDExQjc7Q0UxNDsxMTBFIDExNzIgMTFCNzsKK0NFMTU7Q0UxNTsxMTBFIDExNzIgMTFCODtDRTE1OzExMEUgMTE3MiAxMUI4OworQ0UxNjtDRTE2OzExMEUgMTE3MiAxMUI5O0NFMTY7MTEwRSAxMTcyIDExQjk7CitDRTE3O0NFMTc7MTEwRSAxMTcyIDExQkE7Q0UxNzsxMTBFIDExNzIgMTFCQTsKK0NFMTg7Q0UxODsxMTBFIDExNzIgMTFCQjtDRTE4OzExMEUgMTE3MiAxMUJCOworQ0UxOTtDRTE5OzExMEUgMTE3MiAxMUJDO0NFMTk7MTEwRSAxMTcyIDExQkM7CitDRTFBO0NFMUE7MTEwRSAxMTcyIDExQkQ7Q0UxQTsxMTBFIDExNzIgMTFCRDsKK0NFMUI7Q0UxQjsxMTBFIDExNzIgMTFCRTtDRTFCOzExMEUgMTE3MiAxMUJFOworQ0UxQztDRTFDOzExMEUgMTE3MiAxMUJGO0NFMUM7MTEwRSAxMTcyIDExQkY7CitDRTFEO0NFMUQ7MTEwRSAxMTcyIDExQzA7Q0UxRDsxMTBFIDExNzIgMTFDMDsKK0NFMUU7Q0UxRTsxMTBFIDExNzIgMTFDMTtDRTFFOzExMEUgMTE3MiAxMUMxOworQ0UxRjtDRTFGOzExMEUgMTE3MiAxMUMyO0NFMUY7MTEwRSAxMTcyIDExQzI7CitDRTIwO0NFMjA7MTEwRSAxMTczO0NFMjA7MTEwRSAxMTczOworQ0UyMTtDRTIxOzExMEUgMTE3MyAxMUE4O0NFMjE7MTEwRSAxMTczIDExQTg7CitDRTIyO0NFMjI7MTEwRSAxMTczIDExQTk7Q0UyMjsxMTBFIDExNzMgMTFBOTsKK0NFMjM7Q0UyMzsxMTBFIDExNzMgMTFBQTtDRTIzOzExMEUgMTE3MyAxMUFBOworQ0UyNDtDRTI0OzExMEUgMTE3MyAxMUFCO0NFMjQ7MTEwRSAxMTczIDExQUI7CitDRTI1O0NFMjU7MTEwRSAxMTczIDExQUM7Q0UyNTsxMTBFIDExNzMgMTFBQzsKK0NFMjY7Q0UyNjsxMTBFIDExNzMgMTFBRDtDRTI2OzExMEUgMTE3MyAxMUFEOworQ0UyNztDRTI3OzExMEUgMTE3MyAxMUFFO0NFMjc7MTEwRSAxMTczIDExQUU7CitDRTI4O0NFMjg7MTEwRSAxMTczIDExQUY7Q0UyODsxMTBFIDExNzMgMTFBRjsKK0NFMjk7Q0UyOTsxMTBFIDExNzMgMTFCMDtDRTI5OzExMEUgMTE3MyAxMUIwOworQ0UyQTtDRTJBOzExMEUgMTE3MyAxMUIxO0NFMkE7MTEwRSAxMTczIDExQjE7CitDRTJCO0NFMkI7MTEwRSAxMTczIDExQjI7Q0UyQjsxMTBFIDExNzMgMTFCMjsKK0NFMkM7Q0UyQzsxMTBFIDExNzMgMTFCMztDRTJDOzExMEUgMTE3MyAxMUIzOworQ0UyRDtDRTJEOzExMEUgMTE3MyAxMUI0O0NFMkQ7MTEwRSAxMTczIDExQjQ7CitDRTJFO0NFMkU7MTEwRSAxMTczIDExQjU7Q0UyRTsxMTBFIDExNzMgMTFCNTsKK0NFMkY7Q0UyRjsxMTBFIDExNzMgMTFCNjtDRTJGOzExMEUgMTE3MyAxMUI2OworQ0UzMDtDRTMwOzExMEUgMTE3MyAxMUI3O0NFMzA7MTEwRSAxMTczIDExQjc7CitDRTMxO0NFMzE7MTEwRSAxMTczIDExQjg7Q0UzMTsxMTBFIDExNzMgMTFCODsKK0NFMzI7Q0UzMjsxMTBFIDExNzMgMTFCOTtDRTMyOzExMEUgMTE3MyAxMUI5OworQ0UzMztDRTMzOzExMEUgMTE3MyAxMUJBO0NFMzM7MTEwRSAxMTczIDExQkE7CitDRTM0O0NFMzQ7MTEwRSAxMTczIDExQkI7Q0UzNDsxMTBFIDExNzMgMTFCQjsKK0NFMzU7Q0UzNTsxMTBFIDExNzMgMTFCQztDRTM1OzExMEUgMTE3MyAxMUJDOworQ0UzNjtDRTM2OzExMEUgMTE3MyAxMUJEO0NFMzY7MTEwRSAxMTczIDExQkQ7CitDRTM3O0NFMzc7MTEwRSAxMTczIDExQkU7Q0UzNzsxMTBFIDExNzMgMTFCRTsKK0NFMzg7Q0UzODsxMTBFIDExNzMgMTFCRjtDRTM4OzExMEUgMTE3MyAxMUJGOworQ0UzOTtDRTM5OzExMEUgMTE3MyAxMUMwO0NFMzk7MTEwRSAxMTczIDExQzA7CitDRTNBO0NFM0E7MTEwRSAxMTczIDExQzE7Q0UzQTsxMTBFIDExNzMgMTFDMTsKK0NFM0I7Q0UzQjsxMTBFIDExNzMgMTFDMjtDRTNCOzExMEUgMTE3MyAxMUMyOworQ0UzQztDRTNDOzExMEUgMTE3NDtDRTNDOzExMEUgMTE3NDsKK0NFM0Q7Q0UzRDsxMTBFIDExNzQgMTFBODtDRTNEOzExMEUgMTE3NCAxMUE4OworQ0UzRTtDRTNFOzExMEUgMTE3NCAxMUE5O0NFM0U7MTEwRSAxMTc0IDExQTk7CitDRTNGO0NFM0Y7MTEwRSAxMTc0IDExQUE7Q0UzRjsxMTBFIDExNzQgMTFBQTsKK0NFNDA7Q0U0MDsxMTBFIDExNzQgMTFBQjtDRTQwOzExMEUgMTE3NCAxMUFCOworQ0U0MTtDRTQxOzExMEUgMTE3NCAxMUFDO0NFNDE7MTEwRSAxMTc0IDExQUM7CitDRTQyO0NFNDI7MTEwRSAxMTc0IDExQUQ7Q0U0MjsxMTBFIDExNzQgMTFBRDsKK0NFNDM7Q0U0MzsxMTBFIDExNzQgMTFBRTtDRTQzOzExMEUgMTE3NCAxMUFFOworQ0U0NDtDRTQ0OzExMEUgMTE3NCAxMUFGO0NFNDQ7MTEwRSAxMTc0IDExQUY7CitDRTQ1O0NFNDU7MTEwRSAxMTc0IDExQjA7Q0U0NTsxMTBFIDExNzQgMTFCMDsKK0NFNDY7Q0U0NjsxMTBFIDExNzQgMTFCMTtDRTQ2OzExMEUgMTE3NCAxMUIxOworQ0U0NztDRTQ3OzExMEUgMTE3NCAxMUIyO0NFNDc7MTEwRSAxMTc0IDExQjI7CitDRTQ4O0NFNDg7MTEwRSAxMTc0IDExQjM7Q0U0ODsxMTBFIDExNzQgMTFCMzsKK0NFNDk7Q0U0OTsxMTBFIDExNzQgMTFCNDtDRTQ5OzExMEUgMTE3NCAxMUI0OworQ0U0QTtDRTRBOzExMEUgMTE3NCAxMUI1O0NFNEE7MTEwRSAxMTc0IDExQjU7CitDRTRCO0NFNEI7MTEwRSAxMTc0IDExQjY7Q0U0QjsxMTBFIDExNzQgMTFCNjsKK0NFNEM7Q0U0QzsxMTBFIDExNzQgMTFCNztDRTRDOzExMEUgMTE3NCAxMUI3OworQ0U0RDtDRTREOzExMEUgMTE3NCAxMUI4O0NFNEQ7MTEwRSAxMTc0IDExQjg7CitDRTRFO0NFNEU7MTEwRSAxMTc0IDExQjk7Q0U0RTsxMTBFIDExNzQgMTFCOTsKK0NFNEY7Q0U0RjsxMTBFIDExNzQgMTFCQTtDRTRGOzExMEUgMTE3NCAxMUJBOworQ0U1MDtDRTUwOzExMEUgMTE3NCAxMUJCO0NFNTA7MTEwRSAxMTc0IDExQkI7CitDRTUxO0NFNTE7MTEwRSAxMTc0IDExQkM7Q0U1MTsxMTBFIDExNzQgMTFCQzsKK0NFNTI7Q0U1MjsxMTBFIDExNzQgMTFCRDtDRTUyOzExMEUgMTE3NCAxMUJEOworQ0U1MztDRTUzOzExMEUgMTE3NCAxMUJFO0NFNTM7MTEwRSAxMTc0IDExQkU7CitDRTU0O0NFNTQ7MTEwRSAxMTc0IDExQkY7Q0U1NDsxMTBFIDExNzQgMTFCRjsKK0NFNTU7Q0U1NTsxMTBFIDExNzQgMTFDMDtDRTU1OzExMEUgMTE3NCAxMUMwOworQ0U1NjtDRTU2OzExMEUgMTE3NCAxMUMxO0NFNTY7MTEwRSAxMTc0IDExQzE7CitDRTU3O0NFNTc7MTEwRSAxMTc0IDExQzI7Q0U1NzsxMTBFIDExNzQgMTFDMjsKK0NFNTg7Q0U1ODsxMTBFIDExNzU7Q0U1ODsxMTBFIDExNzU7CitDRTU5O0NFNTk7MTEwRSAxMTc1IDExQTg7Q0U1OTsxMTBFIDExNzUgMTFBODsKK0NFNUE7Q0U1QTsxMTBFIDExNzUgMTFBOTtDRTVBOzExMEUgMTE3NSAxMUE5OworQ0U1QjtDRTVCOzExMEUgMTE3NSAxMUFBO0NFNUI7MTEwRSAxMTc1IDExQUE7CitDRTVDO0NFNUM7MTEwRSAxMTc1IDExQUI7Q0U1QzsxMTBFIDExNzUgMTFBQjsKK0NFNUQ7Q0U1RDsxMTBFIDExNzUgMTFBQztDRTVEOzExMEUgMTE3NSAxMUFDOworQ0U1RTtDRTVFOzExMEUgMTE3NSAxMUFEO0NFNUU7MTEwRSAxMTc1IDExQUQ7CitDRTVGO0NFNUY7MTEwRSAxMTc1IDExQUU7Q0U1RjsxMTBFIDExNzUgMTFBRTsKK0NFNjA7Q0U2MDsxMTBFIDExNzUgMTFBRjtDRTYwOzExMEUgMTE3NSAxMUFGOworQ0U2MTtDRTYxOzExMEUgMTE3NSAxMUIwO0NFNjE7MTEwRSAxMTc1IDExQjA7CitDRTYyO0NFNjI7MTEwRSAxMTc1IDExQjE7Q0U2MjsxMTBFIDExNzUgMTFCMTsKK0NFNjM7Q0U2MzsxMTBFIDExNzUgMTFCMjtDRTYzOzExMEUgMTE3NSAxMUIyOworQ0U2NDtDRTY0OzExMEUgMTE3NSAxMUIzO0NFNjQ7MTEwRSAxMTc1IDExQjM7CitDRTY1O0NFNjU7MTEwRSAxMTc1IDExQjQ7Q0U2NTsxMTBFIDExNzUgMTFCNDsKK0NFNjY7Q0U2NjsxMTBFIDExNzUgMTFCNTtDRTY2OzExMEUgMTE3NSAxMUI1OworQ0U2NztDRTY3OzExMEUgMTE3NSAxMUI2O0NFNjc7MTEwRSAxMTc1IDExQjY7CitDRTY4O0NFNjg7MTEwRSAxMTc1IDExQjc7Q0U2ODsxMTBFIDExNzUgMTFCNzsKK0NFNjk7Q0U2OTsxMTBFIDExNzUgMTFCODtDRTY5OzExMEUgMTE3NSAxMUI4OworQ0U2QTtDRTZBOzExMEUgMTE3NSAxMUI5O0NFNkE7MTEwRSAxMTc1IDExQjk7CitDRTZCO0NFNkI7MTEwRSAxMTc1IDExQkE7Q0U2QjsxMTBFIDExNzUgMTFCQTsKK0NFNkM7Q0U2QzsxMTBFIDExNzUgMTFCQjtDRTZDOzExMEUgMTE3NSAxMUJCOworQ0U2RDtDRTZEOzExMEUgMTE3NSAxMUJDO0NFNkQ7MTEwRSAxMTc1IDExQkM7CitDRTZFO0NFNkU7MTEwRSAxMTc1IDExQkQ7Q0U2RTsxMTBFIDExNzUgMTFCRDsKK0NFNkY7Q0U2RjsxMTBFIDExNzUgMTFCRTtDRTZGOzExMEUgMTE3NSAxMUJFOworQ0U3MDtDRTcwOzExMEUgMTE3NSAxMUJGO0NFNzA7MTEwRSAxMTc1IDExQkY7CitDRTcxO0NFNzE7MTEwRSAxMTc1IDExQzA7Q0U3MTsxMTBFIDExNzUgMTFDMDsKK0NFNzI7Q0U3MjsxMTBFIDExNzUgMTFDMTtDRTcyOzExMEUgMTE3NSAxMUMxOworQ0U3MztDRTczOzExMEUgMTE3NSAxMUMyO0NFNzM7MTEwRSAxMTc1IDExQzI7CitDRTc0O0NFNzQ7MTEwRiAxMTYxO0NFNzQ7MTEwRiAxMTYxOworQ0U3NTtDRTc1OzExMEYgMTE2MSAxMUE4O0NFNzU7MTEwRiAxMTYxIDExQTg7CitDRTc2O0NFNzY7MTEwRiAxMTYxIDExQTk7Q0U3NjsxMTBGIDExNjEgMTFBOTsKK0NFNzc7Q0U3NzsxMTBGIDExNjEgMTFBQTtDRTc3OzExMEYgMTE2MSAxMUFBOworQ0U3ODtDRTc4OzExMEYgMTE2MSAxMUFCO0NFNzg7MTEwRiAxMTYxIDExQUI7CitDRTc5O0NFNzk7MTEwRiAxMTYxIDExQUM7Q0U3OTsxMTBGIDExNjEgMTFBQzsKK0NFN0E7Q0U3QTsxMTBGIDExNjEgMTFBRDtDRTdBOzExMEYgMTE2MSAxMUFEOworQ0U3QjtDRTdCOzExMEYgMTE2MSAxMUFFO0NFN0I7MTEwRiAxMTYxIDExQUU7CitDRTdDO0NFN0M7MTEwRiAxMTYxIDExQUY7Q0U3QzsxMTBGIDExNjEgMTFBRjsKK0NFN0Q7Q0U3RDsxMTBGIDExNjEgMTFCMDtDRTdEOzExMEYgMTE2MSAxMUIwOworQ0U3RTtDRTdFOzExMEYgMTE2MSAxMUIxO0NFN0U7MTEwRiAxMTYxIDExQjE7CitDRTdGO0NFN0Y7MTEwRiAxMTYxIDExQjI7Q0U3RjsxMTBGIDExNjEgMTFCMjsKK0NFODA7Q0U4MDsxMTBGIDExNjEgMTFCMztDRTgwOzExMEYgMTE2MSAxMUIzOworQ0U4MTtDRTgxOzExMEYgMTE2MSAxMUI0O0NFODE7MTEwRiAxMTYxIDExQjQ7CitDRTgyO0NFODI7MTEwRiAxMTYxIDExQjU7Q0U4MjsxMTBGIDExNjEgMTFCNTsKK0NFODM7Q0U4MzsxMTBGIDExNjEgMTFCNjtDRTgzOzExMEYgMTE2MSAxMUI2OworQ0U4NDtDRTg0OzExMEYgMTE2MSAxMUI3O0NFODQ7MTEwRiAxMTYxIDExQjc7CitDRTg1O0NFODU7MTEwRiAxMTYxIDExQjg7Q0U4NTsxMTBGIDExNjEgMTFCODsKK0NFODY7Q0U4NjsxMTBGIDExNjEgMTFCOTtDRTg2OzExMEYgMTE2MSAxMUI5OworQ0U4NztDRTg3OzExMEYgMTE2MSAxMUJBO0NFODc7MTEwRiAxMTYxIDExQkE7CitDRTg4O0NFODg7MTEwRiAxMTYxIDExQkI7Q0U4ODsxMTBGIDExNjEgMTFCQjsKK0NFODk7Q0U4OTsxMTBGIDExNjEgMTFCQztDRTg5OzExMEYgMTE2MSAxMUJDOworQ0U4QTtDRThBOzExMEYgMTE2MSAxMUJEO0NFOEE7MTEwRiAxMTYxIDExQkQ7CitDRThCO0NFOEI7MTEwRiAxMTYxIDExQkU7Q0U4QjsxMTBGIDExNjEgMTFCRTsKK0NFOEM7Q0U4QzsxMTBGIDExNjEgMTFCRjtDRThDOzExMEYgMTE2MSAxMUJGOworQ0U4RDtDRThEOzExMEYgMTE2MSAxMUMwO0NFOEQ7MTEwRiAxMTYxIDExQzA7CitDRThFO0NFOEU7MTEwRiAxMTYxIDExQzE7Q0U4RTsxMTBGIDExNjEgMTFDMTsKK0NFOEY7Q0U4RjsxMTBGIDExNjEgMTFDMjtDRThGOzExMEYgMTE2MSAxMUMyOworQ0U5MDtDRTkwOzExMEYgMTE2MjtDRTkwOzExMEYgMTE2MjsKK0NFOTE7Q0U5MTsxMTBGIDExNjIgMTFBODtDRTkxOzExMEYgMTE2MiAxMUE4OworQ0U5MjtDRTkyOzExMEYgMTE2MiAxMUE5O0NFOTI7MTEwRiAxMTYyIDExQTk7CitDRTkzO0NFOTM7MTEwRiAxMTYyIDExQUE7Q0U5MzsxMTBGIDExNjIgMTFBQTsKK0NFOTQ7Q0U5NDsxMTBGIDExNjIgMTFBQjtDRTk0OzExMEYgMTE2MiAxMUFCOworQ0U5NTtDRTk1OzExMEYgMTE2MiAxMUFDO0NFOTU7MTEwRiAxMTYyIDExQUM7CitDRTk2O0NFOTY7MTEwRiAxMTYyIDExQUQ7Q0U5NjsxMTBGIDExNjIgMTFBRDsKK0NFOTc7Q0U5NzsxMTBGIDExNjIgMTFBRTtDRTk3OzExMEYgMTE2MiAxMUFFOworQ0U5ODtDRTk4OzExMEYgMTE2MiAxMUFGO0NFOTg7MTEwRiAxMTYyIDExQUY7CitDRTk5O0NFOTk7MTEwRiAxMTYyIDExQjA7Q0U5OTsxMTBGIDExNjIgMTFCMDsKK0NFOUE7Q0U5QTsxMTBGIDExNjIgMTFCMTtDRTlBOzExMEYgMTE2MiAxMUIxOworQ0U5QjtDRTlCOzExMEYgMTE2MiAxMUIyO0NFOUI7MTEwRiAxMTYyIDExQjI7CitDRTlDO0NFOUM7MTEwRiAxMTYyIDExQjM7Q0U5QzsxMTBGIDExNjIgMTFCMzsKK0NFOUQ7Q0U5RDsxMTBGIDExNjIgMTFCNDtDRTlEOzExMEYgMTE2MiAxMUI0OworQ0U5RTtDRTlFOzExMEYgMTE2MiAxMUI1O0NFOUU7MTEwRiAxMTYyIDExQjU7CitDRTlGO0NFOUY7MTEwRiAxMTYyIDExQjY7Q0U5RjsxMTBGIDExNjIgMTFCNjsKK0NFQTA7Q0VBMDsxMTBGIDExNjIgMTFCNztDRUEwOzExMEYgMTE2MiAxMUI3OworQ0VBMTtDRUExOzExMEYgMTE2MiAxMUI4O0NFQTE7MTEwRiAxMTYyIDExQjg7CitDRUEyO0NFQTI7MTEwRiAxMTYyIDExQjk7Q0VBMjsxMTBGIDExNjIgMTFCOTsKK0NFQTM7Q0VBMzsxMTBGIDExNjIgMTFCQTtDRUEzOzExMEYgMTE2MiAxMUJBOworQ0VBNDtDRUE0OzExMEYgMTE2MiAxMUJCO0NFQTQ7MTEwRiAxMTYyIDExQkI7CitDRUE1O0NFQTU7MTEwRiAxMTYyIDExQkM7Q0VBNTsxMTBGIDExNjIgMTFCQzsKK0NFQTY7Q0VBNjsxMTBGIDExNjIgMTFCRDtDRUE2OzExMEYgMTE2MiAxMUJEOworQ0VBNztDRUE3OzExMEYgMTE2MiAxMUJFO0NFQTc7MTEwRiAxMTYyIDExQkU7CitDRUE4O0NFQTg7MTEwRiAxMTYyIDExQkY7Q0VBODsxMTBGIDExNjIgMTFCRjsKK0NFQTk7Q0VBOTsxMTBGIDExNjIgMTFDMDtDRUE5OzExMEYgMTE2MiAxMUMwOworQ0VBQTtDRUFBOzExMEYgMTE2MiAxMUMxO0NFQUE7MTEwRiAxMTYyIDExQzE7CitDRUFCO0NFQUI7MTEwRiAxMTYyIDExQzI7Q0VBQjsxMTBGIDExNjIgMTFDMjsKK0NFQUM7Q0VBQzsxMTBGIDExNjM7Q0VBQzsxMTBGIDExNjM7CitDRUFEO0NFQUQ7MTEwRiAxMTYzIDExQTg7Q0VBRDsxMTBGIDExNjMgMTFBODsKK0NFQUU7Q0VBRTsxMTBGIDExNjMgMTFBOTtDRUFFOzExMEYgMTE2MyAxMUE5OworQ0VBRjtDRUFGOzExMEYgMTE2MyAxMUFBO0NFQUY7MTEwRiAxMTYzIDExQUE7CitDRUIwO0NFQjA7MTEwRiAxMTYzIDExQUI7Q0VCMDsxMTBGIDExNjMgMTFBQjsKK0NFQjE7Q0VCMTsxMTBGIDExNjMgMTFBQztDRUIxOzExMEYgMTE2MyAxMUFDOworQ0VCMjtDRUIyOzExMEYgMTE2MyAxMUFEO0NFQjI7MTEwRiAxMTYzIDExQUQ7CitDRUIzO0NFQjM7MTEwRiAxMTYzIDExQUU7Q0VCMzsxMTBGIDExNjMgMTFBRTsKK0NFQjQ7Q0VCNDsxMTBGIDExNjMgMTFBRjtDRUI0OzExMEYgMTE2MyAxMUFGOworQ0VCNTtDRUI1OzExMEYgMTE2MyAxMUIwO0NFQjU7MTEwRiAxMTYzIDExQjA7CitDRUI2O0NFQjY7MTEwRiAxMTYzIDExQjE7Q0VCNjsxMTBGIDExNjMgMTFCMTsKK0NFQjc7Q0VCNzsxMTBGIDExNjMgMTFCMjtDRUI3OzExMEYgMTE2MyAxMUIyOworQ0VCODtDRUI4OzExMEYgMTE2MyAxMUIzO0NFQjg7MTEwRiAxMTYzIDExQjM7CitDRUI5O0NFQjk7MTEwRiAxMTYzIDExQjQ7Q0VCOTsxMTBGIDExNjMgMTFCNDsKK0NFQkE7Q0VCQTsxMTBGIDExNjMgMTFCNTtDRUJBOzExMEYgMTE2MyAxMUI1OworQ0VCQjtDRUJCOzExMEYgMTE2MyAxMUI2O0NFQkI7MTEwRiAxMTYzIDExQjY7CitDRUJDO0NFQkM7MTEwRiAxMTYzIDExQjc7Q0VCQzsxMTBGIDExNjMgMTFCNzsKK0NFQkQ7Q0VCRDsxMTBGIDExNjMgMTFCODtDRUJEOzExMEYgMTE2MyAxMUI4OworQ0VCRTtDRUJFOzExMEYgMTE2MyAxMUI5O0NFQkU7MTEwRiAxMTYzIDExQjk7CitDRUJGO0NFQkY7MTEwRiAxMTYzIDExQkE7Q0VCRjsxMTBGIDExNjMgMTFCQTsKK0NFQzA7Q0VDMDsxMTBGIDExNjMgMTFCQjtDRUMwOzExMEYgMTE2MyAxMUJCOworQ0VDMTtDRUMxOzExMEYgMTE2MyAxMUJDO0NFQzE7MTEwRiAxMTYzIDExQkM7CitDRUMyO0NFQzI7MTEwRiAxMTYzIDExQkQ7Q0VDMjsxMTBGIDExNjMgMTFCRDsKK0NFQzM7Q0VDMzsxMTBGIDExNjMgMTFCRTtDRUMzOzExMEYgMTE2MyAxMUJFOworQ0VDNDtDRUM0OzExMEYgMTE2MyAxMUJGO0NFQzQ7MTEwRiAxMTYzIDExQkY7CitDRUM1O0NFQzU7MTEwRiAxMTYzIDExQzA7Q0VDNTsxMTBGIDExNjMgMTFDMDsKK0NFQzY7Q0VDNjsxMTBGIDExNjMgMTFDMTtDRUM2OzExMEYgMTE2MyAxMUMxOworQ0VDNztDRUM3OzExMEYgMTE2MyAxMUMyO0NFQzc7MTEwRiAxMTYzIDExQzI7CitDRUM4O0NFQzg7MTEwRiAxMTY0O0NFQzg7MTEwRiAxMTY0OworQ0VDOTtDRUM5OzExMEYgMTE2NCAxMUE4O0NFQzk7MTEwRiAxMTY0IDExQTg7CitDRUNBO0NFQ0E7MTEwRiAxMTY0IDExQTk7Q0VDQTsxMTBGIDExNjQgMTFBOTsKK0NFQ0I7Q0VDQjsxMTBGIDExNjQgMTFBQTtDRUNCOzExMEYgMTE2NCAxMUFBOworQ0VDQztDRUNDOzExMEYgMTE2NCAxMUFCO0NFQ0M7MTEwRiAxMTY0IDExQUI7CitDRUNEO0NFQ0Q7MTEwRiAxMTY0IDExQUM7Q0VDRDsxMTBGIDExNjQgMTFBQzsKK0NFQ0U7Q0VDRTsxMTBGIDExNjQgMTFBRDtDRUNFOzExMEYgMTE2NCAxMUFEOworQ0VDRjtDRUNGOzExMEYgMTE2NCAxMUFFO0NFQ0Y7MTEwRiAxMTY0IDExQUU7CitDRUQwO0NFRDA7MTEwRiAxMTY0IDExQUY7Q0VEMDsxMTBGIDExNjQgMTFBRjsKK0NFRDE7Q0VEMTsxMTBGIDExNjQgMTFCMDtDRUQxOzExMEYgMTE2NCAxMUIwOworQ0VEMjtDRUQyOzExMEYgMTE2NCAxMUIxO0NFRDI7MTEwRiAxMTY0IDExQjE7CitDRUQzO0NFRDM7MTEwRiAxMTY0IDExQjI7Q0VEMzsxMTBGIDExNjQgMTFCMjsKK0NFRDQ7Q0VENDsxMTBGIDExNjQgMTFCMztDRUQ0OzExMEYgMTE2NCAxMUIzOworQ0VENTtDRUQ1OzExMEYgMTE2NCAxMUI0O0NFRDU7MTEwRiAxMTY0IDExQjQ7CitDRUQ2O0NFRDY7MTEwRiAxMTY0IDExQjU7Q0VENjsxMTBGIDExNjQgMTFCNTsKK0NFRDc7Q0VENzsxMTBGIDExNjQgMTFCNjtDRUQ3OzExMEYgMTE2NCAxMUI2OworQ0VEODtDRUQ4OzExMEYgMTE2NCAxMUI3O0NFRDg7MTEwRiAxMTY0IDExQjc7CitDRUQ5O0NFRDk7MTEwRiAxMTY0IDExQjg7Q0VEOTsxMTBGIDExNjQgMTFCODsKK0NFREE7Q0VEQTsxMTBGIDExNjQgMTFCOTtDRURBOzExMEYgMTE2NCAxMUI5OworQ0VEQjtDRURCOzExMEYgMTE2NCAxMUJBO0NFREI7MTEwRiAxMTY0IDExQkE7CitDRURDO0NFREM7MTEwRiAxMTY0IDExQkI7Q0VEQzsxMTBGIDExNjQgMTFCQjsKK0NFREQ7Q0VERDsxMTBGIDExNjQgMTFCQztDRUREOzExMEYgMTE2NCAxMUJDOworQ0VERTtDRURFOzExMEYgMTE2NCAxMUJEO0NFREU7MTEwRiAxMTY0IDExQkQ7CitDRURGO0NFREY7MTEwRiAxMTY0IDExQkU7Q0VERjsxMTBGIDExNjQgMTFCRTsKK0NFRTA7Q0VFMDsxMTBGIDExNjQgMTFCRjtDRUUwOzExMEYgMTE2NCAxMUJGOworQ0VFMTtDRUUxOzExMEYgMTE2NCAxMUMwO0NFRTE7MTEwRiAxMTY0IDExQzA7CitDRUUyO0NFRTI7MTEwRiAxMTY0IDExQzE7Q0VFMjsxMTBGIDExNjQgMTFDMTsKK0NFRTM7Q0VFMzsxMTBGIDExNjQgMTFDMjtDRUUzOzExMEYgMTE2NCAxMUMyOworQ0VFNDtDRUU0OzExMEYgMTE2NTtDRUU0OzExMEYgMTE2NTsKK0NFRTU7Q0VFNTsxMTBGIDExNjUgMTFBODtDRUU1OzExMEYgMTE2NSAxMUE4OworQ0VFNjtDRUU2OzExMEYgMTE2NSAxMUE5O0NFRTY7MTEwRiAxMTY1IDExQTk7CitDRUU3O0NFRTc7MTEwRiAxMTY1IDExQUE7Q0VFNzsxMTBGIDExNjUgMTFBQTsKK0NFRTg7Q0VFODsxMTBGIDExNjUgMTFBQjtDRUU4OzExMEYgMTE2NSAxMUFCOworQ0VFOTtDRUU5OzExMEYgMTE2NSAxMUFDO0NFRTk7MTEwRiAxMTY1IDExQUM7CitDRUVBO0NFRUE7MTEwRiAxMTY1IDExQUQ7Q0VFQTsxMTBGIDExNjUgMTFBRDsKK0NFRUI7Q0VFQjsxMTBGIDExNjUgMTFBRTtDRUVCOzExMEYgMTE2NSAxMUFFOworQ0VFQztDRUVDOzExMEYgMTE2NSAxMUFGO0NFRUM7MTEwRiAxMTY1IDExQUY7CitDRUVEO0NFRUQ7MTEwRiAxMTY1IDExQjA7Q0VFRDsxMTBGIDExNjUgMTFCMDsKK0NFRUU7Q0VFRTsxMTBGIDExNjUgMTFCMTtDRUVFOzExMEYgMTE2NSAxMUIxOworQ0VFRjtDRUVGOzExMEYgMTE2NSAxMUIyO0NFRUY7MTEwRiAxMTY1IDExQjI7CitDRUYwO0NFRjA7MTEwRiAxMTY1IDExQjM7Q0VGMDsxMTBGIDExNjUgMTFCMzsKK0NFRjE7Q0VGMTsxMTBGIDExNjUgMTFCNDtDRUYxOzExMEYgMTE2NSAxMUI0OworQ0VGMjtDRUYyOzExMEYgMTE2NSAxMUI1O0NFRjI7MTEwRiAxMTY1IDExQjU7CitDRUYzO0NFRjM7MTEwRiAxMTY1IDExQjY7Q0VGMzsxMTBGIDExNjUgMTFCNjsKK0NFRjQ7Q0VGNDsxMTBGIDExNjUgMTFCNztDRUY0OzExMEYgMTE2NSAxMUI3OworQ0VGNTtDRUY1OzExMEYgMTE2NSAxMUI4O0NFRjU7MTEwRiAxMTY1IDExQjg7CitDRUY2O0NFRjY7MTEwRiAxMTY1IDExQjk7Q0VGNjsxMTBGIDExNjUgMTFCOTsKK0NFRjc7Q0VGNzsxMTBGIDExNjUgMTFCQTtDRUY3OzExMEYgMTE2NSAxMUJBOworQ0VGODtDRUY4OzExMEYgMTE2NSAxMUJCO0NFRjg7MTEwRiAxMTY1IDExQkI7CitDRUY5O0NFRjk7MTEwRiAxMTY1IDExQkM7Q0VGOTsxMTBGIDExNjUgMTFCQzsKK0NFRkE7Q0VGQTsxMTBGIDExNjUgMTFCRDtDRUZBOzExMEYgMTE2NSAxMUJEOworQ0VGQjtDRUZCOzExMEYgMTE2NSAxMUJFO0NFRkI7MTEwRiAxMTY1IDExQkU7CitDRUZDO0NFRkM7MTEwRiAxMTY1IDExQkY7Q0VGQzsxMTBGIDExNjUgMTFCRjsKK0NFRkQ7Q0VGRDsxMTBGIDExNjUgMTFDMDtDRUZEOzExMEYgMTE2NSAxMUMwOworQ0VGRTtDRUZFOzExMEYgMTE2NSAxMUMxO0NFRkU7MTEwRiAxMTY1IDExQzE7CitDRUZGO0NFRkY7MTEwRiAxMTY1IDExQzI7Q0VGRjsxMTBGIDExNjUgMTFDMjsKK0NGMDA7Q0YwMDsxMTBGIDExNjY7Q0YwMDsxMTBGIDExNjY7CitDRjAxO0NGMDE7MTEwRiAxMTY2IDExQTg7Q0YwMTsxMTBGIDExNjYgMTFBODsKK0NGMDI7Q0YwMjsxMTBGIDExNjYgMTFBOTtDRjAyOzExMEYgMTE2NiAxMUE5OworQ0YwMztDRjAzOzExMEYgMTE2NiAxMUFBO0NGMDM7MTEwRiAxMTY2IDExQUE7CitDRjA0O0NGMDQ7MTEwRiAxMTY2IDExQUI7Q0YwNDsxMTBGIDExNjYgMTFBQjsKK0NGMDU7Q0YwNTsxMTBGIDExNjYgMTFBQztDRjA1OzExMEYgMTE2NiAxMUFDOworQ0YwNjtDRjA2OzExMEYgMTE2NiAxMUFEO0NGMDY7MTEwRiAxMTY2IDExQUQ7CitDRjA3O0NGMDc7MTEwRiAxMTY2IDExQUU7Q0YwNzsxMTBGIDExNjYgMTFBRTsKK0NGMDg7Q0YwODsxMTBGIDExNjYgMTFBRjtDRjA4OzExMEYgMTE2NiAxMUFGOworQ0YwOTtDRjA5OzExMEYgMTE2NiAxMUIwO0NGMDk7MTEwRiAxMTY2IDExQjA7CitDRjBBO0NGMEE7MTEwRiAxMTY2IDExQjE7Q0YwQTsxMTBGIDExNjYgMTFCMTsKK0NGMEI7Q0YwQjsxMTBGIDExNjYgMTFCMjtDRjBCOzExMEYgMTE2NiAxMUIyOworQ0YwQztDRjBDOzExMEYgMTE2NiAxMUIzO0NGMEM7MTEwRiAxMTY2IDExQjM7CitDRjBEO0NGMEQ7MTEwRiAxMTY2IDExQjQ7Q0YwRDsxMTBGIDExNjYgMTFCNDsKK0NGMEU7Q0YwRTsxMTBGIDExNjYgMTFCNTtDRjBFOzExMEYgMTE2NiAxMUI1OworQ0YwRjtDRjBGOzExMEYgMTE2NiAxMUI2O0NGMEY7MTEwRiAxMTY2IDExQjY7CitDRjEwO0NGMTA7MTEwRiAxMTY2IDExQjc7Q0YxMDsxMTBGIDExNjYgMTFCNzsKK0NGMTE7Q0YxMTsxMTBGIDExNjYgMTFCODtDRjExOzExMEYgMTE2NiAxMUI4OworQ0YxMjtDRjEyOzExMEYgMTE2NiAxMUI5O0NGMTI7MTEwRiAxMTY2IDExQjk7CitDRjEzO0NGMTM7MTEwRiAxMTY2IDExQkE7Q0YxMzsxMTBGIDExNjYgMTFCQTsKK0NGMTQ7Q0YxNDsxMTBGIDExNjYgMTFCQjtDRjE0OzExMEYgMTE2NiAxMUJCOworQ0YxNTtDRjE1OzExMEYgMTE2NiAxMUJDO0NGMTU7MTEwRiAxMTY2IDExQkM7CitDRjE2O0NGMTY7MTEwRiAxMTY2IDExQkQ7Q0YxNjsxMTBGIDExNjYgMTFCRDsKK0NGMTc7Q0YxNzsxMTBGIDExNjYgMTFCRTtDRjE3OzExMEYgMTE2NiAxMUJFOworQ0YxODtDRjE4OzExMEYgMTE2NiAxMUJGO0NGMTg7MTEwRiAxMTY2IDExQkY7CitDRjE5O0NGMTk7MTEwRiAxMTY2IDExQzA7Q0YxOTsxMTBGIDExNjYgMTFDMDsKK0NGMUE7Q0YxQTsxMTBGIDExNjYgMTFDMTtDRjFBOzExMEYgMTE2NiAxMUMxOworQ0YxQjtDRjFCOzExMEYgMTE2NiAxMUMyO0NGMUI7MTEwRiAxMTY2IDExQzI7CitDRjFDO0NGMUM7MTEwRiAxMTY3O0NGMUM7MTEwRiAxMTY3OworQ0YxRDtDRjFEOzExMEYgMTE2NyAxMUE4O0NGMUQ7MTEwRiAxMTY3IDExQTg7CitDRjFFO0NGMUU7MTEwRiAxMTY3IDExQTk7Q0YxRTsxMTBGIDExNjcgMTFBOTsKK0NGMUY7Q0YxRjsxMTBGIDExNjcgMTFBQTtDRjFGOzExMEYgMTE2NyAxMUFBOworQ0YyMDtDRjIwOzExMEYgMTE2NyAxMUFCO0NGMjA7MTEwRiAxMTY3IDExQUI7CitDRjIxO0NGMjE7MTEwRiAxMTY3IDExQUM7Q0YyMTsxMTBGIDExNjcgMTFBQzsKK0NGMjI7Q0YyMjsxMTBGIDExNjcgMTFBRDtDRjIyOzExMEYgMTE2NyAxMUFEOworQ0YyMztDRjIzOzExMEYgMTE2NyAxMUFFO0NGMjM7MTEwRiAxMTY3IDExQUU7CitDRjI0O0NGMjQ7MTEwRiAxMTY3IDExQUY7Q0YyNDsxMTBGIDExNjcgMTFBRjsKK0NGMjU7Q0YyNTsxMTBGIDExNjcgMTFCMDtDRjI1OzExMEYgMTE2NyAxMUIwOworQ0YyNjtDRjI2OzExMEYgMTE2NyAxMUIxO0NGMjY7MTEwRiAxMTY3IDExQjE7CitDRjI3O0NGMjc7MTEwRiAxMTY3IDExQjI7Q0YyNzsxMTBGIDExNjcgMTFCMjsKK0NGMjg7Q0YyODsxMTBGIDExNjcgMTFCMztDRjI4OzExMEYgMTE2NyAxMUIzOworQ0YyOTtDRjI5OzExMEYgMTE2NyAxMUI0O0NGMjk7MTEwRiAxMTY3IDExQjQ7CitDRjJBO0NGMkE7MTEwRiAxMTY3IDExQjU7Q0YyQTsxMTBGIDExNjcgMTFCNTsKK0NGMkI7Q0YyQjsxMTBGIDExNjcgMTFCNjtDRjJCOzExMEYgMTE2NyAxMUI2OworQ0YyQztDRjJDOzExMEYgMTE2NyAxMUI3O0NGMkM7MTEwRiAxMTY3IDExQjc7CitDRjJEO0NGMkQ7MTEwRiAxMTY3IDExQjg7Q0YyRDsxMTBGIDExNjcgMTFCODsKK0NGMkU7Q0YyRTsxMTBGIDExNjcgMTFCOTtDRjJFOzExMEYgMTE2NyAxMUI5OworQ0YyRjtDRjJGOzExMEYgMTE2NyAxMUJBO0NGMkY7MTEwRiAxMTY3IDExQkE7CitDRjMwO0NGMzA7MTEwRiAxMTY3IDExQkI7Q0YzMDsxMTBGIDExNjcgMTFCQjsKK0NGMzE7Q0YzMTsxMTBGIDExNjcgMTFCQztDRjMxOzExMEYgMTE2NyAxMUJDOworQ0YzMjtDRjMyOzExMEYgMTE2NyAxMUJEO0NGMzI7MTEwRiAxMTY3IDExQkQ7CitDRjMzO0NGMzM7MTEwRiAxMTY3IDExQkU7Q0YzMzsxMTBGIDExNjcgMTFCRTsKK0NGMzQ7Q0YzNDsxMTBGIDExNjcgMTFCRjtDRjM0OzExMEYgMTE2NyAxMUJGOworQ0YzNTtDRjM1OzExMEYgMTE2NyAxMUMwO0NGMzU7MTEwRiAxMTY3IDExQzA7CitDRjM2O0NGMzY7MTEwRiAxMTY3IDExQzE7Q0YzNjsxMTBGIDExNjcgMTFDMTsKK0NGMzc7Q0YzNzsxMTBGIDExNjcgMTFDMjtDRjM3OzExMEYgMTE2NyAxMUMyOworQ0YzODtDRjM4OzExMEYgMTE2ODtDRjM4OzExMEYgMTE2ODsKK0NGMzk7Q0YzOTsxMTBGIDExNjggMTFBODtDRjM5OzExMEYgMTE2OCAxMUE4OworQ0YzQTtDRjNBOzExMEYgMTE2OCAxMUE5O0NGM0E7MTEwRiAxMTY4IDExQTk7CitDRjNCO0NGM0I7MTEwRiAxMTY4IDExQUE7Q0YzQjsxMTBGIDExNjggMTFBQTsKK0NGM0M7Q0YzQzsxMTBGIDExNjggMTFBQjtDRjNDOzExMEYgMTE2OCAxMUFCOworQ0YzRDtDRjNEOzExMEYgMTE2OCAxMUFDO0NGM0Q7MTEwRiAxMTY4IDExQUM7CitDRjNFO0NGM0U7MTEwRiAxMTY4IDExQUQ7Q0YzRTsxMTBGIDExNjggMTFBRDsKK0NGM0Y7Q0YzRjsxMTBGIDExNjggMTFBRTtDRjNGOzExMEYgMTE2OCAxMUFFOworQ0Y0MDtDRjQwOzExMEYgMTE2OCAxMUFGO0NGNDA7MTEwRiAxMTY4IDExQUY7CitDRjQxO0NGNDE7MTEwRiAxMTY4IDExQjA7Q0Y0MTsxMTBGIDExNjggMTFCMDsKK0NGNDI7Q0Y0MjsxMTBGIDExNjggMTFCMTtDRjQyOzExMEYgMTE2OCAxMUIxOworQ0Y0MztDRjQzOzExMEYgMTE2OCAxMUIyO0NGNDM7MTEwRiAxMTY4IDExQjI7CitDRjQ0O0NGNDQ7MTEwRiAxMTY4IDExQjM7Q0Y0NDsxMTBGIDExNjggMTFCMzsKK0NGNDU7Q0Y0NTsxMTBGIDExNjggMTFCNDtDRjQ1OzExMEYgMTE2OCAxMUI0OworQ0Y0NjtDRjQ2OzExMEYgMTE2OCAxMUI1O0NGNDY7MTEwRiAxMTY4IDExQjU7CitDRjQ3O0NGNDc7MTEwRiAxMTY4IDExQjY7Q0Y0NzsxMTBGIDExNjggMTFCNjsKK0NGNDg7Q0Y0ODsxMTBGIDExNjggMTFCNztDRjQ4OzExMEYgMTE2OCAxMUI3OworQ0Y0OTtDRjQ5OzExMEYgMTE2OCAxMUI4O0NGNDk7MTEwRiAxMTY4IDExQjg7CitDRjRBO0NGNEE7MTEwRiAxMTY4IDExQjk7Q0Y0QTsxMTBGIDExNjggMTFCOTsKK0NGNEI7Q0Y0QjsxMTBGIDExNjggMTFCQTtDRjRCOzExMEYgMTE2OCAxMUJBOworQ0Y0QztDRjRDOzExMEYgMTE2OCAxMUJCO0NGNEM7MTEwRiAxMTY4IDExQkI7CitDRjREO0NGNEQ7MTEwRiAxMTY4IDExQkM7Q0Y0RDsxMTBGIDExNjggMTFCQzsKK0NGNEU7Q0Y0RTsxMTBGIDExNjggMTFCRDtDRjRFOzExMEYgMTE2OCAxMUJEOworQ0Y0RjtDRjRGOzExMEYgMTE2OCAxMUJFO0NGNEY7MTEwRiAxMTY4IDExQkU7CitDRjUwO0NGNTA7MTEwRiAxMTY4IDExQkY7Q0Y1MDsxMTBGIDExNjggMTFCRjsKK0NGNTE7Q0Y1MTsxMTBGIDExNjggMTFDMDtDRjUxOzExMEYgMTE2OCAxMUMwOworQ0Y1MjtDRjUyOzExMEYgMTE2OCAxMUMxO0NGNTI7MTEwRiAxMTY4IDExQzE7CitDRjUzO0NGNTM7MTEwRiAxMTY4IDExQzI7Q0Y1MzsxMTBGIDExNjggMTFDMjsKK0NGNTQ7Q0Y1NDsxMTBGIDExNjk7Q0Y1NDsxMTBGIDExNjk7CitDRjU1O0NGNTU7MTEwRiAxMTY5IDExQTg7Q0Y1NTsxMTBGIDExNjkgMTFBODsKK0NGNTY7Q0Y1NjsxMTBGIDExNjkgMTFBOTtDRjU2OzExMEYgMTE2OSAxMUE5OworQ0Y1NztDRjU3OzExMEYgMTE2OSAxMUFBO0NGNTc7MTEwRiAxMTY5IDExQUE7CitDRjU4O0NGNTg7MTEwRiAxMTY5IDExQUI7Q0Y1ODsxMTBGIDExNjkgMTFBQjsKK0NGNTk7Q0Y1OTsxMTBGIDExNjkgMTFBQztDRjU5OzExMEYgMTE2OSAxMUFDOworQ0Y1QTtDRjVBOzExMEYgMTE2OSAxMUFEO0NGNUE7MTEwRiAxMTY5IDExQUQ7CitDRjVCO0NGNUI7MTEwRiAxMTY5IDExQUU7Q0Y1QjsxMTBGIDExNjkgMTFBRTsKK0NGNUM7Q0Y1QzsxMTBGIDExNjkgMTFBRjtDRjVDOzExMEYgMTE2OSAxMUFGOworQ0Y1RDtDRjVEOzExMEYgMTE2OSAxMUIwO0NGNUQ7MTEwRiAxMTY5IDExQjA7CitDRjVFO0NGNUU7MTEwRiAxMTY5IDExQjE7Q0Y1RTsxMTBGIDExNjkgMTFCMTsKK0NGNUY7Q0Y1RjsxMTBGIDExNjkgMTFCMjtDRjVGOzExMEYgMTE2OSAxMUIyOworQ0Y2MDtDRjYwOzExMEYgMTE2OSAxMUIzO0NGNjA7MTEwRiAxMTY5IDExQjM7CitDRjYxO0NGNjE7MTEwRiAxMTY5IDExQjQ7Q0Y2MTsxMTBGIDExNjkgMTFCNDsKK0NGNjI7Q0Y2MjsxMTBGIDExNjkgMTFCNTtDRjYyOzExMEYgMTE2OSAxMUI1OworQ0Y2MztDRjYzOzExMEYgMTE2OSAxMUI2O0NGNjM7MTEwRiAxMTY5IDExQjY7CitDRjY0O0NGNjQ7MTEwRiAxMTY5IDExQjc7Q0Y2NDsxMTBGIDExNjkgMTFCNzsKK0NGNjU7Q0Y2NTsxMTBGIDExNjkgMTFCODtDRjY1OzExMEYgMTE2OSAxMUI4OworQ0Y2NjtDRjY2OzExMEYgMTE2OSAxMUI5O0NGNjY7MTEwRiAxMTY5IDExQjk7CitDRjY3O0NGNjc7MTEwRiAxMTY5IDExQkE7Q0Y2NzsxMTBGIDExNjkgMTFCQTsKK0NGNjg7Q0Y2ODsxMTBGIDExNjkgMTFCQjtDRjY4OzExMEYgMTE2OSAxMUJCOworQ0Y2OTtDRjY5OzExMEYgMTE2OSAxMUJDO0NGNjk7MTEwRiAxMTY5IDExQkM7CitDRjZBO0NGNkE7MTEwRiAxMTY5IDExQkQ7Q0Y2QTsxMTBGIDExNjkgMTFCRDsKK0NGNkI7Q0Y2QjsxMTBGIDExNjkgMTFCRTtDRjZCOzExMEYgMTE2OSAxMUJFOworQ0Y2QztDRjZDOzExMEYgMTE2OSAxMUJGO0NGNkM7MTEwRiAxMTY5IDExQkY7CitDRjZEO0NGNkQ7MTEwRiAxMTY5IDExQzA7Q0Y2RDsxMTBGIDExNjkgMTFDMDsKK0NGNkU7Q0Y2RTsxMTBGIDExNjkgMTFDMTtDRjZFOzExMEYgMTE2OSAxMUMxOworQ0Y2RjtDRjZGOzExMEYgMTE2OSAxMUMyO0NGNkY7MTEwRiAxMTY5IDExQzI7CitDRjcwO0NGNzA7MTEwRiAxMTZBO0NGNzA7MTEwRiAxMTZBOworQ0Y3MTtDRjcxOzExMEYgMTE2QSAxMUE4O0NGNzE7MTEwRiAxMTZBIDExQTg7CitDRjcyO0NGNzI7MTEwRiAxMTZBIDExQTk7Q0Y3MjsxMTBGIDExNkEgMTFBOTsKK0NGNzM7Q0Y3MzsxMTBGIDExNkEgMTFBQTtDRjczOzExMEYgMTE2QSAxMUFBOworQ0Y3NDtDRjc0OzExMEYgMTE2QSAxMUFCO0NGNzQ7MTEwRiAxMTZBIDExQUI7CitDRjc1O0NGNzU7MTEwRiAxMTZBIDExQUM7Q0Y3NTsxMTBGIDExNkEgMTFBQzsKK0NGNzY7Q0Y3NjsxMTBGIDExNkEgMTFBRDtDRjc2OzExMEYgMTE2QSAxMUFEOworQ0Y3NztDRjc3OzExMEYgMTE2QSAxMUFFO0NGNzc7MTEwRiAxMTZBIDExQUU7CitDRjc4O0NGNzg7MTEwRiAxMTZBIDExQUY7Q0Y3ODsxMTBGIDExNkEgMTFBRjsKK0NGNzk7Q0Y3OTsxMTBGIDExNkEgMTFCMDtDRjc5OzExMEYgMTE2QSAxMUIwOworQ0Y3QTtDRjdBOzExMEYgMTE2QSAxMUIxO0NGN0E7MTEwRiAxMTZBIDExQjE7CitDRjdCO0NGN0I7MTEwRiAxMTZBIDExQjI7Q0Y3QjsxMTBGIDExNkEgMTFCMjsKK0NGN0M7Q0Y3QzsxMTBGIDExNkEgMTFCMztDRjdDOzExMEYgMTE2QSAxMUIzOworQ0Y3RDtDRjdEOzExMEYgMTE2QSAxMUI0O0NGN0Q7MTEwRiAxMTZBIDExQjQ7CitDRjdFO0NGN0U7MTEwRiAxMTZBIDExQjU7Q0Y3RTsxMTBGIDExNkEgMTFCNTsKK0NGN0Y7Q0Y3RjsxMTBGIDExNkEgMTFCNjtDRjdGOzExMEYgMTE2QSAxMUI2OworQ0Y4MDtDRjgwOzExMEYgMTE2QSAxMUI3O0NGODA7MTEwRiAxMTZBIDExQjc7CitDRjgxO0NGODE7MTEwRiAxMTZBIDExQjg7Q0Y4MTsxMTBGIDExNkEgMTFCODsKK0NGODI7Q0Y4MjsxMTBGIDExNkEgMTFCOTtDRjgyOzExMEYgMTE2QSAxMUI5OworQ0Y4MztDRjgzOzExMEYgMTE2QSAxMUJBO0NGODM7MTEwRiAxMTZBIDExQkE7CitDRjg0O0NGODQ7MTEwRiAxMTZBIDExQkI7Q0Y4NDsxMTBGIDExNkEgMTFCQjsKK0NGODU7Q0Y4NTsxMTBGIDExNkEgMTFCQztDRjg1OzExMEYgMTE2QSAxMUJDOworQ0Y4NjtDRjg2OzExMEYgMTE2QSAxMUJEO0NGODY7MTEwRiAxMTZBIDExQkQ7CitDRjg3O0NGODc7MTEwRiAxMTZBIDExQkU7Q0Y4NzsxMTBGIDExNkEgMTFCRTsKK0NGODg7Q0Y4ODsxMTBGIDExNkEgMTFCRjtDRjg4OzExMEYgMTE2QSAxMUJGOworQ0Y4OTtDRjg5OzExMEYgMTE2QSAxMUMwO0NGODk7MTEwRiAxMTZBIDExQzA7CitDRjhBO0NGOEE7MTEwRiAxMTZBIDExQzE7Q0Y4QTsxMTBGIDExNkEgMTFDMTsKK0NGOEI7Q0Y4QjsxMTBGIDExNkEgMTFDMjtDRjhCOzExMEYgMTE2QSAxMUMyOworQ0Y4QztDRjhDOzExMEYgMTE2QjtDRjhDOzExMEYgMTE2QjsKK0NGOEQ7Q0Y4RDsxMTBGIDExNkIgMTFBODtDRjhEOzExMEYgMTE2QiAxMUE4OworQ0Y4RTtDRjhFOzExMEYgMTE2QiAxMUE5O0NGOEU7MTEwRiAxMTZCIDExQTk7CitDRjhGO0NGOEY7MTEwRiAxMTZCIDExQUE7Q0Y4RjsxMTBGIDExNkIgMTFBQTsKK0NGOTA7Q0Y5MDsxMTBGIDExNkIgMTFBQjtDRjkwOzExMEYgMTE2QiAxMUFCOworQ0Y5MTtDRjkxOzExMEYgMTE2QiAxMUFDO0NGOTE7MTEwRiAxMTZCIDExQUM7CitDRjkyO0NGOTI7MTEwRiAxMTZCIDExQUQ7Q0Y5MjsxMTBGIDExNkIgMTFBRDsKK0NGOTM7Q0Y5MzsxMTBGIDExNkIgMTFBRTtDRjkzOzExMEYgMTE2QiAxMUFFOworQ0Y5NDtDRjk0OzExMEYgMTE2QiAxMUFGO0NGOTQ7MTEwRiAxMTZCIDExQUY7CitDRjk1O0NGOTU7MTEwRiAxMTZCIDExQjA7Q0Y5NTsxMTBGIDExNkIgMTFCMDsKK0NGOTY7Q0Y5NjsxMTBGIDExNkIgMTFCMTtDRjk2OzExMEYgMTE2QiAxMUIxOworQ0Y5NztDRjk3OzExMEYgMTE2QiAxMUIyO0NGOTc7MTEwRiAxMTZCIDExQjI7CitDRjk4O0NGOTg7MTEwRiAxMTZCIDExQjM7Q0Y5ODsxMTBGIDExNkIgMTFCMzsKK0NGOTk7Q0Y5OTsxMTBGIDExNkIgMTFCNDtDRjk5OzExMEYgMTE2QiAxMUI0OworQ0Y5QTtDRjlBOzExMEYgMTE2QiAxMUI1O0NGOUE7MTEwRiAxMTZCIDExQjU7CitDRjlCO0NGOUI7MTEwRiAxMTZCIDExQjY7Q0Y5QjsxMTBGIDExNkIgMTFCNjsKK0NGOUM7Q0Y5QzsxMTBGIDExNkIgMTFCNztDRjlDOzExMEYgMTE2QiAxMUI3OworQ0Y5RDtDRjlEOzExMEYgMTE2QiAxMUI4O0NGOUQ7MTEwRiAxMTZCIDExQjg7CitDRjlFO0NGOUU7MTEwRiAxMTZCIDExQjk7Q0Y5RTsxMTBGIDExNkIgMTFCOTsKK0NGOUY7Q0Y5RjsxMTBGIDExNkIgMTFCQTtDRjlGOzExMEYgMTE2QiAxMUJBOworQ0ZBMDtDRkEwOzExMEYgMTE2QiAxMUJCO0NGQTA7MTEwRiAxMTZCIDExQkI7CitDRkExO0NGQTE7MTEwRiAxMTZCIDExQkM7Q0ZBMTsxMTBGIDExNkIgMTFCQzsKK0NGQTI7Q0ZBMjsxMTBGIDExNkIgMTFCRDtDRkEyOzExMEYgMTE2QiAxMUJEOworQ0ZBMztDRkEzOzExMEYgMTE2QiAxMUJFO0NGQTM7MTEwRiAxMTZCIDExQkU7CitDRkE0O0NGQTQ7MTEwRiAxMTZCIDExQkY7Q0ZBNDsxMTBGIDExNkIgMTFCRjsKK0NGQTU7Q0ZBNTsxMTBGIDExNkIgMTFDMDtDRkE1OzExMEYgMTE2QiAxMUMwOworQ0ZBNjtDRkE2OzExMEYgMTE2QiAxMUMxO0NGQTY7MTEwRiAxMTZCIDExQzE7CitDRkE3O0NGQTc7MTEwRiAxMTZCIDExQzI7Q0ZBNzsxMTBGIDExNkIgMTFDMjsKK0NGQTg7Q0ZBODsxMTBGIDExNkM7Q0ZBODsxMTBGIDExNkM7CitDRkE5O0NGQTk7MTEwRiAxMTZDIDExQTg7Q0ZBOTsxMTBGIDExNkMgMTFBODsKK0NGQUE7Q0ZBQTsxMTBGIDExNkMgMTFBOTtDRkFBOzExMEYgMTE2QyAxMUE5OworQ0ZBQjtDRkFCOzExMEYgMTE2QyAxMUFBO0NGQUI7MTEwRiAxMTZDIDExQUE7CitDRkFDO0NGQUM7MTEwRiAxMTZDIDExQUI7Q0ZBQzsxMTBGIDExNkMgMTFBQjsKK0NGQUQ7Q0ZBRDsxMTBGIDExNkMgMTFBQztDRkFEOzExMEYgMTE2QyAxMUFDOworQ0ZBRTtDRkFFOzExMEYgMTE2QyAxMUFEO0NGQUU7MTEwRiAxMTZDIDExQUQ7CitDRkFGO0NGQUY7MTEwRiAxMTZDIDExQUU7Q0ZBRjsxMTBGIDExNkMgMTFBRTsKK0NGQjA7Q0ZCMDsxMTBGIDExNkMgMTFBRjtDRkIwOzExMEYgMTE2QyAxMUFGOworQ0ZCMTtDRkIxOzExMEYgMTE2QyAxMUIwO0NGQjE7MTEwRiAxMTZDIDExQjA7CitDRkIyO0NGQjI7MTEwRiAxMTZDIDExQjE7Q0ZCMjsxMTBGIDExNkMgMTFCMTsKK0NGQjM7Q0ZCMzsxMTBGIDExNkMgMTFCMjtDRkIzOzExMEYgMTE2QyAxMUIyOworQ0ZCNDtDRkI0OzExMEYgMTE2QyAxMUIzO0NGQjQ7MTEwRiAxMTZDIDExQjM7CitDRkI1O0NGQjU7MTEwRiAxMTZDIDExQjQ7Q0ZCNTsxMTBGIDExNkMgMTFCNDsKK0NGQjY7Q0ZCNjsxMTBGIDExNkMgMTFCNTtDRkI2OzExMEYgMTE2QyAxMUI1OworQ0ZCNztDRkI3OzExMEYgMTE2QyAxMUI2O0NGQjc7MTEwRiAxMTZDIDExQjY7CitDRkI4O0NGQjg7MTEwRiAxMTZDIDExQjc7Q0ZCODsxMTBGIDExNkMgMTFCNzsKK0NGQjk7Q0ZCOTsxMTBGIDExNkMgMTFCODtDRkI5OzExMEYgMTE2QyAxMUI4OworQ0ZCQTtDRkJBOzExMEYgMTE2QyAxMUI5O0NGQkE7MTEwRiAxMTZDIDExQjk7CitDRkJCO0NGQkI7MTEwRiAxMTZDIDExQkE7Q0ZCQjsxMTBGIDExNkMgMTFCQTsKK0NGQkM7Q0ZCQzsxMTBGIDExNkMgMTFCQjtDRkJDOzExMEYgMTE2QyAxMUJCOworQ0ZCRDtDRkJEOzExMEYgMTE2QyAxMUJDO0NGQkQ7MTEwRiAxMTZDIDExQkM7CitDRkJFO0NGQkU7MTEwRiAxMTZDIDExQkQ7Q0ZCRTsxMTBGIDExNkMgMTFCRDsKK0NGQkY7Q0ZCRjsxMTBGIDExNkMgMTFCRTtDRkJGOzExMEYgMTE2QyAxMUJFOworQ0ZDMDtDRkMwOzExMEYgMTE2QyAxMUJGO0NGQzA7MTEwRiAxMTZDIDExQkY7CitDRkMxO0NGQzE7MTEwRiAxMTZDIDExQzA7Q0ZDMTsxMTBGIDExNkMgMTFDMDsKK0NGQzI7Q0ZDMjsxMTBGIDExNkMgMTFDMTtDRkMyOzExMEYgMTE2QyAxMUMxOworQ0ZDMztDRkMzOzExMEYgMTE2QyAxMUMyO0NGQzM7MTEwRiAxMTZDIDExQzI7CitDRkM0O0NGQzQ7MTEwRiAxMTZEO0NGQzQ7MTEwRiAxMTZEOworQ0ZDNTtDRkM1OzExMEYgMTE2RCAxMUE4O0NGQzU7MTEwRiAxMTZEIDExQTg7CitDRkM2O0NGQzY7MTEwRiAxMTZEIDExQTk7Q0ZDNjsxMTBGIDExNkQgMTFBOTsKK0NGQzc7Q0ZDNzsxMTBGIDExNkQgMTFBQTtDRkM3OzExMEYgMTE2RCAxMUFBOworQ0ZDODtDRkM4OzExMEYgMTE2RCAxMUFCO0NGQzg7MTEwRiAxMTZEIDExQUI7CitDRkM5O0NGQzk7MTEwRiAxMTZEIDExQUM7Q0ZDOTsxMTBGIDExNkQgMTFBQzsKK0NGQ0E7Q0ZDQTsxMTBGIDExNkQgMTFBRDtDRkNBOzExMEYgMTE2RCAxMUFEOworQ0ZDQjtDRkNCOzExMEYgMTE2RCAxMUFFO0NGQ0I7MTEwRiAxMTZEIDExQUU7CitDRkNDO0NGQ0M7MTEwRiAxMTZEIDExQUY7Q0ZDQzsxMTBGIDExNkQgMTFBRjsKK0NGQ0Q7Q0ZDRDsxMTBGIDExNkQgMTFCMDtDRkNEOzExMEYgMTE2RCAxMUIwOworQ0ZDRTtDRkNFOzExMEYgMTE2RCAxMUIxO0NGQ0U7MTEwRiAxMTZEIDExQjE7CitDRkNGO0NGQ0Y7MTEwRiAxMTZEIDExQjI7Q0ZDRjsxMTBGIDExNkQgMTFCMjsKK0NGRDA7Q0ZEMDsxMTBGIDExNkQgMTFCMztDRkQwOzExMEYgMTE2RCAxMUIzOworQ0ZEMTtDRkQxOzExMEYgMTE2RCAxMUI0O0NGRDE7MTEwRiAxMTZEIDExQjQ7CitDRkQyO0NGRDI7MTEwRiAxMTZEIDExQjU7Q0ZEMjsxMTBGIDExNkQgMTFCNTsKK0NGRDM7Q0ZEMzsxMTBGIDExNkQgMTFCNjtDRkQzOzExMEYgMTE2RCAxMUI2OworQ0ZENDtDRkQ0OzExMEYgMTE2RCAxMUI3O0NGRDQ7MTEwRiAxMTZEIDExQjc7CitDRkQ1O0NGRDU7MTEwRiAxMTZEIDExQjg7Q0ZENTsxMTBGIDExNkQgMTFCODsKK0NGRDY7Q0ZENjsxMTBGIDExNkQgMTFCOTtDRkQ2OzExMEYgMTE2RCAxMUI5OworQ0ZENztDRkQ3OzExMEYgMTE2RCAxMUJBO0NGRDc7MTEwRiAxMTZEIDExQkE7CitDRkQ4O0NGRDg7MTEwRiAxMTZEIDExQkI7Q0ZEODsxMTBGIDExNkQgMTFCQjsKK0NGRDk7Q0ZEOTsxMTBGIDExNkQgMTFCQztDRkQ5OzExMEYgMTE2RCAxMUJDOworQ0ZEQTtDRkRBOzExMEYgMTE2RCAxMUJEO0NGREE7MTEwRiAxMTZEIDExQkQ7CitDRkRCO0NGREI7MTEwRiAxMTZEIDExQkU7Q0ZEQjsxMTBGIDExNkQgMTFCRTsKK0NGREM7Q0ZEQzsxMTBGIDExNkQgMTFCRjtDRkRDOzExMEYgMTE2RCAxMUJGOworQ0ZERDtDRkREOzExMEYgMTE2RCAxMUMwO0NGREQ7MTEwRiAxMTZEIDExQzA7CitDRkRFO0NGREU7MTEwRiAxMTZEIDExQzE7Q0ZERTsxMTBGIDExNkQgMTFDMTsKK0NGREY7Q0ZERjsxMTBGIDExNkQgMTFDMjtDRkRGOzExMEYgMTE2RCAxMUMyOworQ0ZFMDtDRkUwOzExMEYgMTE2RTtDRkUwOzExMEYgMTE2RTsKK0NGRTE7Q0ZFMTsxMTBGIDExNkUgMTFBODtDRkUxOzExMEYgMTE2RSAxMUE4OworQ0ZFMjtDRkUyOzExMEYgMTE2RSAxMUE5O0NGRTI7MTEwRiAxMTZFIDExQTk7CitDRkUzO0NGRTM7MTEwRiAxMTZFIDExQUE7Q0ZFMzsxMTBGIDExNkUgMTFBQTsKK0NGRTQ7Q0ZFNDsxMTBGIDExNkUgMTFBQjtDRkU0OzExMEYgMTE2RSAxMUFCOworQ0ZFNTtDRkU1OzExMEYgMTE2RSAxMUFDO0NGRTU7MTEwRiAxMTZFIDExQUM7CitDRkU2O0NGRTY7MTEwRiAxMTZFIDExQUQ7Q0ZFNjsxMTBGIDExNkUgMTFBRDsKK0NGRTc7Q0ZFNzsxMTBGIDExNkUgMTFBRTtDRkU3OzExMEYgMTE2RSAxMUFFOworQ0ZFODtDRkU4OzExMEYgMTE2RSAxMUFGO0NGRTg7MTEwRiAxMTZFIDExQUY7CitDRkU5O0NGRTk7MTEwRiAxMTZFIDExQjA7Q0ZFOTsxMTBGIDExNkUgMTFCMDsKK0NGRUE7Q0ZFQTsxMTBGIDExNkUgMTFCMTtDRkVBOzExMEYgMTE2RSAxMUIxOworQ0ZFQjtDRkVCOzExMEYgMTE2RSAxMUIyO0NGRUI7MTEwRiAxMTZFIDExQjI7CitDRkVDO0NGRUM7MTEwRiAxMTZFIDExQjM7Q0ZFQzsxMTBGIDExNkUgMTFCMzsKK0NGRUQ7Q0ZFRDsxMTBGIDExNkUgMTFCNDtDRkVEOzExMEYgMTE2RSAxMUI0OworQ0ZFRTtDRkVFOzExMEYgMTE2RSAxMUI1O0NGRUU7MTEwRiAxMTZFIDExQjU7CitDRkVGO0NGRUY7MTEwRiAxMTZFIDExQjY7Q0ZFRjsxMTBGIDExNkUgMTFCNjsKK0NGRjA7Q0ZGMDsxMTBGIDExNkUgMTFCNztDRkYwOzExMEYgMTE2RSAxMUI3OworQ0ZGMTtDRkYxOzExMEYgMTE2RSAxMUI4O0NGRjE7MTEwRiAxMTZFIDExQjg7CitDRkYyO0NGRjI7MTEwRiAxMTZFIDExQjk7Q0ZGMjsxMTBGIDExNkUgMTFCOTsKK0NGRjM7Q0ZGMzsxMTBGIDExNkUgMTFCQTtDRkYzOzExMEYgMTE2RSAxMUJBOworQ0ZGNDtDRkY0OzExMEYgMTE2RSAxMUJCO0NGRjQ7MTEwRiAxMTZFIDExQkI7CitDRkY1O0NGRjU7MTEwRiAxMTZFIDExQkM7Q0ZGNTsxMTBGIDExNkUgMTFCQzsKK0NGRjY7Q0ZGNjsxMTBGIDExNkUgMTFCRDtDRkY2OzExMEYgMTE2RSAxMUJEOworQ0ZGNztDRkY3OzExMEYgMTE2RSAxMUJFO0NGRjc7MTEwRiAxMTZFIDExQkU7CitDRkY4O0NGRjg7MTEwRiAxMTZFIDExQkY7Q0ZGODsxMTBGIDExNkUgMTFCRjsKK0NGRjk7Q0ZGOTsxMTBGIDExNkUgMTFDMDtDRkY5OzExMEYgMTE2RSAxMUMwOworQ0ZGQTtDRkZBOzExMEYgMTE2RSAxMUMxO0NGRkE7MTEwRiAxMTZFIDExQzE7CitDRkZCO0NGRkI7MTEwRiAxMTZFIDExQzI7Q0ZGQjsxMTBGIDExNkUgMTFDMjsKK0NGRkM7Q0ZGQzsxMTBGIDExNkY7Q0ZGQzsxMTBGIDExNkY7CitDRkZEO0NGRkQ7MTEwRiAxMTZGIDExQTg7Q0ZGRDsxMTBGIDExNkYgMTFBODsKK0NGRkU7Q0ZGRTsxMTBGIDExNkYgMTFBOTtDRkZFOzExMEYgMTE2RiAxMUE5OworQ0ZGRjtDRkZGOzExMEYgMTE2RiAxMUFBO0NGRkY7MTEwRiAxMTZGIDExQUE7CitEMDAwO0QwMDA7MTEwRiAxMTZGIDExQUI7RDAwMDsxMTBGIDExNkYgMTFBQjsKK0QwMDE7RDAwMTsxMTBGIDExNkYgMTFBQztEMDAxOzExMEYgMTE2RiAxMUFDOworRDAwMjtEMDAyOzExMEYgMTE2RiAxMUFEO0QwMDI7MTEwRiAxMTZGIDExQUQ7CitEMDAzO0QwMDM7MTEwRiAxMTZGIDExQUU7RDAwMzsxMTBGIDExNkYgMTFBRTsKK0QwMDQ7RDAwNDsxMTBGIDExNkYgMTFBRjtEMDA0OzExMEYgMTE2RiAxMUFGOworRDAwNTtEMDA1OzExMEYgMTE2RiAxMUIwO0QwMDU7MTEwRiAxMTZGIDExQjA7CitEMDA2O0QwMDY7MTEwRiAxMTZGIDExQjE7RDAwNjsxMTBGIDExNkYgMTFCMTsKK0QwMDc7RDAwNzsxMTBGIDExNkYgMTFCMjtEMDA3OzExMEYgMTE2RiAxMUIyOworRDAwODtEMDA4OzExMEYgMTE2RiAxMUIzO0QwMDg7MTEwRiAxMTZGIDExQjM7CitEMDA5O0QwMDk7MTEwRiAxMTZGIDExQjQ7RDAwOTsxMTBGIDExNkYgMTFCNDsKK0QwMEE7RDAwQTsxMTBGIDExNkYgMTFCNTtEMDBBOzExMEYgMTE2RiAxMUI1OworRDAwQjtEMDBCOzExMEYgMTE2RiAxMUI2O0QwMEI7MTEwRiAxMTZGIDExQjY7CitEMDBDO0QwMEM7MTEwRiAxMTZGIDExQjc7RDAwQzsxMTBGIDExNkYgMTFCNzsKK0QwMEQ7RDAwRDsxMTBGIDExNkYgMTFCODtEMDBEOzExMEYgMTE2RiAxMUI4OworRDAwRTtEMDBFOzExMEYgMTE2RiAxMUI5O0QwMEU7MTEwRiAxMTZGIDExQjk7CitEMDBGO0QwMEY7MTEwRiAxMTZGIDExQkE7RDAwRjsxMTBGIDExNkYgMTFCQTsKK0QwMTA7RDAxMDsxMTBGIDExNkYgMTFCQjtEMDEwOzExMEYgMTE2RiAxMUJCOworRDAxMTtEMDExOzExMEYgMTE2RiAxMUJDO0QwMTE7MTEwRiAxMTZGIDExQkM7CitEMDEyO0QwMTI7MTEwRiAxMTZGIDExQkQ7RDAxMjsxMTBGIDExNkYgMTFCRDsKK0QwMTM7RDAxMzsxMTBGIDExNkYgMTFCRTtEMDEzOzExMEYgMTE2RiAxMUJFOworRDAxNDtEMDE0OzExMEYgMTE2RiAxMUJGO0QwMTQ7MTEwRiAxMTZGIDExQkY7CitEMDE1O0QwMTU7MTEwRiAxMTZGIDExQzA7RDAxNTsxMTBGIDExNkYgMTFDMDsKK0QwMTY7RDAxNjsxMTBGIDExNkYgMTFDMTtEMDE2OzExMEYgMTE2RiAxMUMxOworRDAxNztEMDE3OzExMEYgMTE2RiAxMUMyO0QwMTc7MTEwRiAxMTZGIDExQzI7CitEMDE4O0QwMTg7MTEwRiAxMTcwO0QwMTg7MTEwRiAxMTcwOworRDAxOTtEMDE5OzExMEYgMTE3MCAxMUE4O0QwMTk7MTEwRiAxMTcwIDExQTg7CitEMDFBO0QwMUE7MTEwRiAxMTcwIDExQTk7RDAxQTsxMTBGIDExNzAgMTFBOTsKK0QwMUI7RDAxQjsxMTBGIDExNzAgMTFBQTtEMDFCOzExMEYgMTE3MCAxMUFBOworRDAxQztEMDFDOzExMEYgMTE3MCAxMUFCO0QwMUM7MTEwRiAxMTcwIDExQUI7CitEMDFEO0QwMUQ7MTEwRiAxMTcwIDExQUM7RDAxRDsxMTBGIDExNzAgMTFBQzsKK0QwMUU7RDAxRTsxMTBGIDExNzAgMTFBRDtEMDFFOzExMEYgMTE3MCAxMUFEOworRDAxRjtEMDFGOzExMEYgMTE3MCAxMUFFO0QwMUY7MTEwRiAxMTcwIDExQUU7CitEMDIwO0QwMjA7MTEwRiAxMTcwIDExQUY7RDAyMDsxMTBGIDExNzAgMTFBRjsKK0QwMjE7RDAyMTsxMTBGIDExNzAgMTFCMDtEMDIxOzExMEYgMTE3MCAxMUIwOworRDAyMjtEMDIyOzExMEYgMTE3MCAxMUIxO0QwMjI7MTEwRiAxMTcwIDExQjE7CitEMDIzO0QwMjM7MTEwRiAxMTcwIDExQjI7RDAyMzsxMTBGIDExNzAgMTFCMjsKK0QwMjQ7RDAyNDsxMTBGIDExNzAgMTFCMztEMDI0OzExMEYgMTE3MCAxMUIzOworRDAyNTtEMDI1OzExMEYgMTE3MCAxMUI0O0QwMjU7MTEwRiAxMTcwIDExQjQ7CitEMDI2O0QwMjY7MTEwRiAxMTcwIDExQjU7RDAyNjsxMTBGIDExNzAgMTFCNTsKK0QwMjc7RDAyNzsxMTBGIDExNzAgMTFCNjtEMDI3OzExMEYgMTE3MCAxMUI2OworRDAyODtEMDI4OzExMEYgMTE3MCAxMUI3O0QwMjg7MTEwRiAxMTcwIDExQjc7CitEMDI5O0QwMjk7MTEwRiAxMTcwIDExQjg7RDAyOTsxMTBGIDExNzAgMTFCODsKK0QwMkE7RDAyQTsxMTBGIDExNzAgMTFCOTtEMDJBOzExMEYgMTE3MCAxMUI5OworRDAyQjtEMDJCOzExMEYgMTE3MCAxMUJBO0QwMkI7MTEwRiAxMTcwIDExQkE7CitEMDJDO0QwMkM7MTEwRiAxMTcwIDExQkI7RDAyQzsxMTBGIDExNzAgMTFCQjsKK0QwMkQ7RDAyRDsxMTBGIDExNzAgMTFCQztEMDJEOzExMEYgMTE3MCAxMUJDOworRDAyRTtEMDJFOzExMEYgMTE3MCAxMUJEO0QwMkU7MTEwRiAxMTcwIDExQkQ7CitEMDJGO0QwMkY7MTEwRiAxMTcwIDExQkU7RDAyRjsxMTBGIDExNzAgMTFCRTsKK0QwMzA7RDAzMDsxMTBGIDExNzAgMTFCRjtEMDMwOzExMEYgMTE3MCAxMUJGOworRDAzMTtEMDMxOzExMEYgMTE3MCAxMUMwO0QwMzE7MTEwRiAxMTcwIDExQzA7CitEMDMyO0QwMzI7MTEwRiAxMTcwIDExQzE7RDAzMjsxMTBGIDExNzAgMTFDMTsKK0QwMzM7RDAzMzsxMTBGIDExNzAgMTFDMjtEMDMzOzExMEYgMTE3MCAxMUMyOworRDAzNDtEMDM0OzExMEYgMTE3MTtEMDM0OzExMEYgMTE3MTsKK0QwMzU7RDAzNTsxMTBGIDExNzEgMTFBODtEMDM1OzExMEYgMTE3MSAxMUE4OworRDAzNjtEMDM2OzExMEYgMTE3MSAxMUE5O0QwMzY7MTEwRiAxMTcxIDExQTk7CitEMDM3O0QwMzc7MTEwRiAxMTcxIDExQUE7RDAzNzsxMTBGIDExNzEgMTFBQTsKK0QwMzg7RDAzODsxMTBGIDExNzEgMTFBQjtEMDM4OzExMEYgMTE3MSAxMUFCOworRDAzOTtEMDM5OzExMEYgMTE3MSAxMUFDO0QwMzk7MTEwRiAxMTcxIDExQUM7CitEMDNBO0QwM0E7MTEwRiAxMTcxIDExQUQ7RDAzQTsxMTBGIDExNzEgMTFBRDsKK0QwM0I7RDAzQjsxMTBGIDExNzEgMTFBRTtEMDNCOzExMEYgMTE3MSAxMUFFOworRDAzQztEMDNDOzExMEYgMTE3MSAxMUFGO0QwM0M7MTEwRiAxMTcxIDExQUY7CitEMDNEO0QwM0Q7MTEwRiAxMTcxIDExQjA7RDAzRDsxMTBGIDExNzEgMTFCMDsKK0QwM0U7RDAzRTsxMTBGIDExNzEgMTFCMTtEMDNFOzExMEYgMTE3MSAxMUIxOworRDAzRjtEMDNGOzExMEYgMTE3MSAxMUIyO0QwM0Y7MTEwRiAxMTcxIDExQjI7CitEMDQwO0QwNDA7MTEwRiAxMTcxIDExQjM7RDA0MDsxMTBGIDExNzEgMTFCMzsKK0QwNDE7RDA0MTsxMTBGIDExNzEgMTFCNDtEMDQxOzExMEYgMTE3MSAxMUI0OworRDA0MjtEMDQyOzExMEYgMTE3MSAxMUI1O0QwNDI7MTEwRiAxMTcxIDExQjU7CitEMDQzO0QwNDM7MTEwRiAxMTcxIDExQjY7RDA0MzsxMTBGIDExNzEgMTFCNjsKK0QwNDQ7RDA0NDsxMTBGIDExNzEgMTFCNztEMDQ0OzExMEYgMTE3MSAxMUI3OworRDA0NTtEMDQ1OzExMEYgMTE3MSAxMUI4O0QwNDU7MTEwRiAxMTcxIDExQjg7CitEMDQ2O0QwNDY7MTEwRiAxMTcxIDExQjk7RDA0NjsxMTBGIDExNzEgMTFCOTsKK0QwNDc7RDA0NzsxMTBGIDExNzEgMTFCQTtEMDQ3OzExMEYgMTE3MSAxMUJBOworRDA0ODtEMDQ4OzExMEYgMTE3MSAxMUJCO0QwNDg7MTEwRiAxMTcxIDExQkI7CitEMDQ5O0QwNDk7MTEwRiAxMTcxIDExQkM7RDA0OTsxMTBGIDExNzEgMTFCQzsKK0QwNEE7RDA0QTsxMTBGIDExNzEgMTFCRDtEMDRBOzExMEYgMTE3MSAxMUJEOworRDA0QjtEMDRCOzExMEYgMTE3MSAxMUJFO0QwNEI7MTEwRiAxMTcxIDExQkU7CitEMDRDO0QwNEM7MTEwRiAxMTcxIDExQkY7RDA0QzsxMTBGIDExNzEgMTFCRjsKK0QwNEQ7RDA0RDsxMTBGIDExNzEgMTFDMDtEMDREOzExMEYgMTE3MSAxMUMwOworRDA0RTtEMDRFOzExMEYgMTE3MSAxMUMxO0QwNEU7MTEwRiAxMTcxIDExQzE7CitEMDRGO0QwNEY7MTEwRiAxMTcxIDExQzI7RDA0RjsxMTBGIDExNzEgMTFDMjsKK0QwNTA7RDA1MDsxMTBGIDExNzI7RDA1MDsxMTBGIDExNzI7CitEMDUxO0QwNTE7MTEwRiAxMTcyIDExQTg7RDA1MTsxMTBGIDExNzIgMTFBODsKK0QwNTI7RDA1MjsxMTBGIDExNzIgMTFBOTtEMDUyOzExMEYgMTE3MiAxMUE5OworRDA1MztEMDUzOzExMEYgMTE3MiAxMUFBO0QwNTM7MTEwRiAxMTcyIDExQUE7CitEMDU0O0QwNTQ7MTEwRiAxMTcyIDExQUI7RDA1NDsxMTBGIDExNzIgMTFBQjsKK0QwNTU7RDA1NTsxMTBGIDExNzIgMTFBQztEMDU1OzExMEYgMTE3MiAxMUFDOworRDA1NjtEMDU2OzExMEYgMTE3MiAxMUFEO0QwNTY7MTEwRiAxMTcyIDExQUQ7CitEMDU3O0QwNTc7MTEwRiAxMTcyIDExQUU7RDA1NzsxMTBGIDExNzIgMTFBRTsKK0QwNTg7RDA1ODsxMTBGIDExNzIgMTFBRjtEMDU4OzExMEYgMTE3MiAxMUFGOworRDA1OTtEMDU5OzExMEYgMTE3MiAxMUIwO0QwNTk7MTEwRiAxMTcyIDExQjA7CitEMDVBO0QwNUE7MTEwRiAxMTcyIDExQjE7RDA1QTsxMTBGIDExNzIgMTFCMTsKK0QwNUI7RDA1QjsxMTBGIDExNzIgMTFCMjtEMDVCOzExMEYgMTE3MiAxMUIyOworRDA1QztEMDVDOzExMEYgMTE3MiAxMUIzO0QwNUM7MTEwRiAxMTcyIDExQjM7CitEMDVEO0QwNUQ7MTEwRiAxMTcyIDExQjQ7RDA1RDsxMTBGIDExNzIgMTFCNDsKK0QwNUU7RDA1RTsxMTBGIDExNzIgMTFCNTtEMDVFOzExMEYgMTE3MiAxMUI1OworRDA1RjtEMDVGOzExMEYgMTE3MiAxMUI2O0QwNUY7MTEwRiAxMTcyIDExQjY7CitEMDYwO0QwNjA7MTEwRiAxMTcyIDExQjc7RDA2MDsxMTBGIDExNzIgMTFCNzsKK0QwNjE7RDA2MTsxMTBGIDExNzIgMTFCODtEMDYxOzExMEYgMTE3MiAxMUI4OworRDA2MjtEMDYyOzExMEYgMTE3MiAxMUI5O0QwNjI7MTEwRiAxMTcyIDExQjk7CitEMDYzO0QwNjM7MTEwRiAxMTcyIDExQkE7RDA2MzsxMTBGIDExNzIgMTFCQTsKK0QwNjQ7RDA2NDsxMTBGIDExNzIgMTFCQjtEMDY0OzExMEYgMTE3MiAxMUJCOworRDA2NTtEMDY1OzExMEYgMTE3MiAxMUJDO0QwNjU7MTEwRiAxMTcyIDExQkM7CitEMDY2O0QwNjY7MTEwRiAxMTcyIDExQkQ7RDA2NjsxMTBGIDExNzIgMTFCRDsKK0QwNjc7RDA2NzsxMTBGIDExNzIgMTFCRTtEMDY3OzExMEYgMTE3MiAxMUJFOworRDA2ODtEMDY4OzExMEYgMTE3MiAxMUJGO0QwNjg7MTEwRiAxMTcyIDExQkY7CitEMDY5O0QwNjk7MTEwRiAxMTcyIDExQzA7RDA2OTsxMTBGIDExNzIgMTFDMDsKK0QwNkE7RDA2QTsxMTBGIDExNzIgMTFDMTtEMDZBOzExMEYgMTE3MiAxMUMxOworRDA2QjtEMDZCOzExMEYgMTE3MiAxMUMyO0QwNkI7MTEwRiAxMTcyIDExQzI7CitEMDZDO0QwNkM7MTEwRiAxMTczO0QwNkM7MTEwRiAxMTczOworRDA2RDtEMDZEOzExMEYgMTE3MyAxMUE4O0QwNkQ7MTEwRiAxMTczIDExQTg7CitEMDZFO0QwNkU7MTEwRiAxMTczIDExQTk7RDA2RTsxMTBGIDExNzMgMTFBOTsKK0QwNkY7RDA2RjsxMTBGIDExNzMgMTFBQTtEMDZGOzExMEYgMTE3MyAxMUFBOworRDA3MDtEMDcwOzExMEYgMTE3MyAxMUFCO0QwNzA7MTEwRiAxMTczIDExQUI7CitEMDcxO0QwNzE7MTEwRiAxMTczIDExQUM7RDA3MTsxMTBGIDExNzMgMTFBQzsKK0QwNzI7RDA3MjsxMTBGIDExNzMgMTFBRDtEMDcyOzExMEYgMTE3MyAxMUFEOworRDA3MztEMDczOzExMEYgMTE3MyAxMUFFO0QwNzM7MTEwRiAxMTczIDExQUU7CitEMDc0O0QwNzQ7MTEwRiAxMTczIDExQUY7RDA3NDsxMTBGIDExNzMgMTFBRjsKK0QwNzU7RDA3NTsxMTBGIDExNzMgMTFCMDtEMDc1OzExMEYgMTE3MyAxMUIwOworRDA3NjtEMDc2OzExMEYgMTE3MyAxMUIxO0QwNzY7MTEwRiAxMTczIDExQjE7CitEMDc3O0QwNzc7MTEwRiAxMTczIDExQjI7RDA3NzsxMTBGIDExNzMgMTFCMjsKK0QwNzg7RDA3ODsxMTBGIDExNzMgMTFCMztEMDc4OzExMEYgMTE3MyAxMUIzOworRDA3OTtEMDc5OzExMEYgMTE3MyAxMUI0O0QwNzk7MTEwRiAxMTczIDExQjQ7CitEMDdBO0QwN0E7MTEwRiAxMTczIDExQjU7RDA3QTsxMTBGIDExNzMgMTFCNTsKK0QwN0I7RDA3QjsxMTBGIDExNzMgMTFCNjtEMDdCOzExMEYgMTE3MyAxMUI2OworRDA3QztEMDdDOzExMEYgMTE3MyAxMUI3O0QwN0M7MTEwRiAxMTczIDExQjc7CitEMDdEO0QwN0Q7MTEwRiAxMTczIDExQjg7RDA3RDsxMTBGIDExNzMgMTFCODsKK0QwN0U7RDA3RTsxMTBGIDExNzMgMTFCOTtEMDdFOzExMEYgMTE3MyAxMUI5OworRDA3RjtEMDdGOzExMEYgMTE3MyAxMUJBO0QwN0Y7MTEwRiAxMTczIDExQkE7CitEMDgwO0QwODA7MTEwRiAxMTczIDExQkI7RDA4MDsxMTBGIDExNzMgMTFCQjsKK0QwODE7RDA4MTsxMTBGIDExNzMgMTFCQztEMDgxOzExMEYgMTE3MyAxMUJDOworRDA4MjtEMDgyOzExMEYgMTE3MyAxMUJEO0QwODI7MTEwRiAxMTczIDExQkQ7CitEMDgzO0QwODM7MTEwRiAxMTczIDExQkU7RDA4MzsxMTBGIDExNzMgMTFCRTsKK0QwODQ7RDA4NDsxMTBGIDExNzMgMTFCRjtEMDg0OzExMEYgMTE3MyAxMUJGOworRDA4NTtEMDg1OzExMEYgMTE3MyAxMUMwO0QwODU7MTEwRiAxMTczIDExQzA7CitEMDg2O0QwODY7MTEwRiAxMTczIDExQzE7RDA4NjsxMTBGIDExNzMgMTFDMTsKK0QwODc7RDA4NzsxMTBGIDExNzMgMTFDMjtEMDg3OzExMEYgMTE3MyAxMUMyOworRDA4ODtEMDg4OzExMEYgMTE3NDtEMDg4OzExMEYgMTE3NDsKK0QwODk7RDA4OTsxMTBGIDExNzQgMTFBODtEMDg5OzExMEYgMTE3NCAxMUE4OworRDA4QTtEMDhBOzExMEYgMTE3NCAxMUE5O0QwOEE7MTEwRiAxMTc0IDExQTk7CitEMDhCO0QwOEI7MTEwRiAxMTc0IDExQUE7RDA4QjsxMTBGIDExNzQgMTFBQTsKK0QwOEM7RDA4QzsxMTBGIDExNzQgMTFBQjtEMDhDOzExMEYgMTE3NCAxMUFCOworRDA4RDtEMDhEOzExMEYgMTE3NCAxMUFDO0QwOEQ7MTEwRiAxMTc0IDExQUM7CitEMDhFO0QwOEU7MTEwRiAxMTc0IDExQUQ7RDA4RTsxMTBGIDExNzQgMTFBRDsKK0QwOEY7RDA4RjsxMTBGIDExNzQgMTFBRTtEMDhGOzExMEYgMTE3NCAxMUFFOworRDA5MDtEMDkwOzExMEYgMTE3NCAxMUFGO0QwOTA7MTEwRiAxMTc0IDExQUY7CitEMDkxO0QwOTE7MTEwRiAxMTc0IDExQjA7RDA5MTsxMTBGIDExNzQgMTFCMDsKK0QwOTI7RDA5MjsxMTBGIDExNzQgMTFCMTtEMDkyOzExMEYgMTE3NCAxMUIxOworRDA5MztEMDkzOzExMEYgMTE3NCAxMUIyO0QwOTM7MTEwRiAxMTc0IDExQjI7CitEMDk0O0QwOTQ7MTEwRiAxMTc0IDExQjM7RDA5NDsxMTBGIDExNzQgMTFCMzsKK0QwOTU7RDA5NTsxMTBGIDExNzQgMTFCNDtEMDk1OzExMEYgMTE3NCAxMUI0OworRDA5NjtEMDk2OzExMEYgMTE3NCAxMUI1O0QwOTY7MTEwRiAxMTc0IDExQjU7CitEMDk3O0QwOTc7MTEwRiAxMTc0IDExQjY7RDA5NzsxMTBGIDExNzQgMTFCNjsKK0QwOTg7RDA5ODsxMTBGIDExNzQgMTFCNztEMDk4OzExMEYgMTE3NCAxMUI3OworRDA5OTtEMDk5OzExMEYgMTE3NCAxMUI4O0QwOTk7MTEwRiAxMTc0IDExQjg7CitEMDlBO0QwOUE7MTEwRiAxMTc0IDExQjk7RDA5QTsxMTBGIDExNzQgMTFCOTsKK0QwOUI7RDA5QjsxMTBGIDExNzQgMTFCQTtEMDlCOzExMEYgMTE3NCAxMUJBOworRDA5QztEMDlDOzExMEYgMTE3NCAxMUJCO0QwOUM7MTEwRiAxMTc0IDExQkI7CitEMDlEO0QwOUQ7MTEwRiAxMTc0IDExQkM7RDA5RDsxMTBGIDExNzQgMTFCQzsKK0QwOUU7RDA5RTsxMTBGIDExNzQgMTFCRDtEMDlFOzExMEYgMTE3NCAxMUJEOworRDA5RjtEMDlGOzExMEYgMTE3NCAxMUJFO0QwOUY7MTEwRiAxMTc0IDExQkU7CitEMEEwO0QwQTA7MTEwRiAxMTc0IDExQkY7RDBBMDsxMTBGIDExNzQgMTFCRjsKK0QwQTE7RDBBMTsxMTBGIDExNzQgMTFDMDtEMEExOzExMEYgMTE3NCAxMUMwOworRDBBMjtEMEEyOzExMEYgMTE3NCAxMUMxO0QwQTI7MTEwRiAxMTc0IDExQzE7CitEMEEzO0QwQTM7MTEwRiAxMTc0IDExQzI7RDBBMzsxMTBGIDExNzQgMTFDMjsKK0QwQTQ7RDBBNDsxMTBGIDExNzU7RDBBNDsxMTBGIDExNzU7CitEMEE1O0QwQTU7MTEwRiAxMTc1IDExQTg7RDBBNTsxMTBGIDExNzUgMTFBODsKK0QwQTY7RDBBNjsxMTBGIDExNzUgMTFBOTtEMEE2OzExMEYgMTE3NSAxMUE5OworRDBBNztEMEE3OzExMEYgMTE3NSAxMUFBO0QwQTc7MTEwRiAxMTc1IDExQUE7CitEMEE4O0QwQTg7MTEwRiAxMTc1IDExQUI7RDBBODsxMTBGIDExNzUgMTFBQjsKK0QwQTk7RDBBOTsxMTBGIDExNzUgMTFBQztEMEE5OzExMEYgMTE3NSAxMUFDOworRDBBQTtEMEFBOzExMEYgMTE3NSAxMUFEO0QwQUE7MTEwRiAxMTc1IDExQUQ7CitEMEFCO0QwQUI7MTEwRiAxMTc1IDExQUU7RDBBQjsxMTBGIDExNzUgMTFBRTsKK0QwQUM7RDBBQzsxMTBGIDExNzUgMTFBRjtEMEFDOzExMEYgMTE3NSAxMUFGOworRDBBRDtEMEFEOzExMEYgMTE3NSAxMUIwO0QwQUQ7MTEwRiAxMTc1IDExQjA7CitEMEFFO0QwQUU7MTEwRiAxMTc1IDExQjE7RDBBRTsxMTBGIDExNzUgMTFCMTsKK0QwQUY7RDBBRjsxMTBGIDExNzUgMTFCMjtEMEFGOzExMEYgMTE3NSAxMUIyOworRDBCMDtEMEIwOzExMEYgMTE3NSAxMUIzO0QwQjA7MTEwRiAxMTc1IDExQjM7CitEMEIxO0QwQjE7MTEwRiAxMTc1IDExQjQ7RDBCMTsxMTBGIDExNzUgMTFCNDsKK0QwQjI7RDBCMjsxMTBGIDExNzUgMTFCNTtEMEIyOzExMEYgMTE3NSAxMUI1OworRDBCMztEMEIzOzExMEYgMTE3NSAxMUI2O0QwQjM7MTEwRiAxMTc1IDExQjY7CitEMEI0O0QwQjQ7MTEwRiAxMTc1IDExQjc7RDBCNDsxMTBGIDExNzUgMTFCNzsKK0QwQjU7RDBCNTsxMTBGIDExNzUgMTFCODtEMEI1OzExMEYgMTE3NSAxMUI4OworRDBCNjtEMEI2OzExMEYgMTE3NSAxMUI5O0QwQjY7MTEwRiAxMTc1IDExQjk7CitEMEI3O0QwQjc7MTEwRiAxMTc1IDExQkE7RDBCNzsxMTBGIDExNzUgMTFCQTsKK0QwQjg7RDBCODsxMTBGIDExNzUgMTFCQjtEMEI4OzExMEYgMTE3NSAxMUJCOworRDBCOTtEMEI5OzExMEYgMTE3NSAxMUJDO0QwQjk7MTEwRiAxMTc1IDExQkM7CitEMEJBO0QwQkE7MTEwRiAxMTc1IDExQkQ7RDBCQTsxMTBGIDExNzUgMTFCRDsKK0QwQkI7RDBCQjsxMTBGIDExNzUgMTFCRTtEMEJCOzExMEYgMTE3NSAxMUJFOworRDBCQztEMEJDOzExMEYgMTE3NSAxMUJGO0QwQkM7MTEwRiAxMTc1IDExQkY7CitEMEJEO0QwQkQ7MTEwRiAxMTc1IDExQzA7RDBCRDsxMTBGIDExNzUgMTFDMDsKK0QwQkU7RDBCRTsxMTBGIDExNzUgMTFDMTtEMEJFOzExMEYgMTE3NSAxMUMxOworRDBCRjtEMEJGOzExMEYgMTE3NSAxMUMyO0QwQkY7MTEwRiAxMTc1IDExQzI7CitEMEMwO0QwQzA7MTExMCAxMTYxO0QwQzA7MTExMCAxMTYxOworRDBDMTtEMEMxOzExMTAgMTE2MSAxMUE4O0QwQzE7MTExMCAxMTYxIDExQTg7CitEMEMyO0QwQzI7MTExMCAxMTYxIDExQTk7RDBDMjsxMTEwIDExNjEgMTFBOTsKK0QwQzM7RDBDMzsxMTEwIDExNjEgMTFBQTtEMEMzOzExMTAgMTE2MSAxMUFBOworRDBDNDtEMEM0OzExMTAgMTE2MSAxMUFCO0QwQzQ7MTExMCAxMTYxIDExQUI7CitEMEM1O0QwQzU7MTExMCAxMTYxIDExQUM7RDBDNTsxMTEwIDExNjEgMTFBQzsKK0QwQzY7RDBDNjsxMTEwIDExNjEgMTFBRDtEMEM2OzExMTAgMTE2MSAxMUFEOworRDBDNztEMEM3OzExMTAgMTE2MSAxMUFFO0QwQzc7MTExMCAxMTYxIDExQUU7CitEMEM4O0QwQzg7MTExMCAxMTYxIDExQUY7RDBDODsxMTEwIDExNjEgMTFBRjsKK0QwQzk7RDBDOTsxMTEwIDExNjEgMTFCMDtEMEM5OzExMTAgMTE2MSAxMUIwOworRDBDQTtEMENBOzExMTAgMTE2MSAxMUIxO0QwQ0E7MTExMCAxMTYxIDExQjE7CitEMENCO0QwQ0I7MTExMCAxMTYxIDExQjI7RDBDQjsxMTEwIDExNjEgMTFCMjsKK0QwQ0M7RDBDQzsxMTEwIDExNjEgMTFCMztEMENDOzExMTAgMTE2MSAxMUIzOworRDBDRDtEMENEOzExMTAgMTE2MSAxMUI0O0QwQ0Q7MTExMCAxMTYxIDExQjQ7CitEMENFO0QwQ0U7MTExMCAxMTYxIDExQjU7RDBDRTsxMTEwIDExNjEgMTFCNTsKK0QwQ0Y7RDBDRjsxMTEwIDExNjEgMTFCNjtEMENGOzExMTAgMTE2MSAxMUI2OworRDBEMDtEMEQwOzExMTAgMTE2MSAxMUI3O0QwRDA7MTExMCAxMTYxIDExQjc7CitEMEQxO0QwRDE7MTExMCAxMTYxIDExQjg7RDBEMTsxMTEwIDExNjEgMTFCODsKK0QwRDI7RDBEMjsxMTEwIDExNjEgMTFCOTtEMEQyOzExMTAgMTE2MSAxMUI5OworRDBEMztEMEQzOzExMTAgMTE2MSAxMUJBO0QwRDM7MTExMCAxMTYxIDExQkE7CitEMEQ0O0QwRDQ7MTExMCAxMTYxIDExQkI7RDBENDsxMTEwIDExNjEgMTFCQjsKK0QwRDU7RDBENTsxMTEwIDExNjEgMTFCQztEMEQ1OzExMTAgMTE2MSAxMUJDOworRDBENjtEMEQ2OzExMTAgMTE2MSAxMUJEO0QwRDY7MTExMCAxMTYxIDExQkQ7CitEMEQ3O0QwRDc7MTExMCAxMTYxIDExQkU7RDBENzsxMTEwIDExNjEgMTFCRTsKK0QwRDg7RDBEODsxMTEwIDExNjEgMTFCRjtEMEQ4OzExMTAgMTE2MSAxMUJGOworRDBEOTtEMEQ5OzExMTAgMTE2MSAxMUMwO0QwRDk7MTExMCAxMTYxIDExQzA7CitEMERBO0QwREE7MTExMCAxMTYxIDExQzE7RDBEQTsxMTEwIDExNjEgMTFDMTsKK0QwREI7RDBEQjsxMTEwIDExNjEgMTFDMjtEMERCOzExMTAgMTE2MSAxMUMyOworRDBEQztEMERDOzExMTAgMTE2MjtEMERDOzExMTAgMTE2MjsKK0QwREQ7RDBERDsxMTEwIDExNjIgMTFBODtEMEREOzExMTAgMTE2MiAxMUE4OworRDBERTtEMERFOzExMTAgMTE2MiAxMUE5O0QwREU7MTExMCAxMTYyIDExQTk7CitEMERGO0QwREY7MTExMCAxMTYyIDExQUE7RDBERjsxMTEwIDExNjIgMTFBQTsKK0QwRTA7RDBFMDsxMTEwIDExNjIgMTFBQjtEMEUwOzExMTAgMTE2MiAxMUFCOworRDBFMTtEMEUxOzExMTAgMTE2MiAxMUFDO0QwRTE7MTExMCAxMTYyIDExQUM7CitEMEUyO0QwRTI7MTExMCAxMTYyIDExQUQ7RDBFMjsxMTEwIDExNjIgMTFBRDsKK0QwRTM7RDBFMzsxMTEwIDExNjIgMTFBRTtEMEUzOzExMTAgMTE2MiAxMUFFOworRDBFNDtEMEU0OzExMTAgMTE2MiAxMUFGO0QwRTQ7MTExMCAxMTYyIDExQUY7CitEMEU1O0QwRTU7MTExMCAxMTYyIDExQjA7RDBFNTsxMTEwIDExNjIgMTFCMDsKK0QwRTY7RDBFNjsxMTEwIDExNjIgMTFCMTtEMEU2OzExMTAgMTE2MiAxMUIxOworRDBFNztEMEU3OzExMTAgMTE2MiAxMUIyO0QwRTc7MTExMCAxMTYyIDExQjI7CitEMEU4O0QwRTg7MTExMCAxMTYyIDExQjM7RDBFODsxMTEwIDExNjIgMTFCMzsKK0QwRTk7RDBFOTsxMTEwIDExNjIgMTFCNDtEMEU5OzExMTAgMTE2MiAxMUI0OworRDBFQTtEMEVBOzExMTAgMTE2MiAxMUI1O0QwRUE7MTExMCAxMTYyIDExQjU7CitEMEVCO0QwRUI7MTExMCAxMTYyIDExQjY7RDBFQjsxMTEwIDExNjIgMTFCNjsKK0QwRUM7RDBFQzsxMTEwIDExNjIgMTFCNztEMEVDOzExMTAgMTE2MiAxMUI3OworRDBFRDtEMEVEOzExMTAgMTE2MiAxMUI4O0QwRUQ7MTExMCAxMTYyIDExQjg7CitEMEVFO0QwRUU7MTExMCAxMTYyIDExQjk7RDBFRTsxMTEwIDExNjIgMTFCOTsKK0QwRUY7RDBFRjsxMTEwIDExNjIgMTFCQTtEMEVGOzExMTAgMTE2MiAxMUJBOworRDBGMDtEMEYwOzExMTAgMTE2MiAxMUJCO0QwRjA7MTExMCAxMTYyIDExQkI7CitEMEYxO0QwRjE7MTExMCAxMTYyIDExQkM7RDBGMTsxMTEwIDExNjIgMTFCQzsKK0QwRjI7RDBGMjsxMTEwIDExNjIgMTFCRDtEMEYyOzExMTAgMTE2MiAxMUJEOworRDBGMztEMEYzOzExMTAgMTE2MiAxMUJFO0QwRjM7MTExMCAxMTYyIDExQkU7CitEMEY0O0QwRjQ7MTExMCAxMTYyIDExQkY7RDBGNDsxMTEwIDExNjIgMTFCRjsKK0QwRjU7RDBGNTsxMTEwIDExNjIgMTFDMDtEMEY1OzExMTAgMTE2MiAxMUMwOworRDBGNjtEMEY2OzExMTAgMTE2MiAxMUMxO0QwRjY7MTExMCAxMTYyIDExQzE7CitEMEY3O0QwRjc7MTExMCAxMTYyIDExQzI7RDBGNzsxMTEwIDExNjIgMTFDMjsKK0QwRjg7RDBGODsxMTEwIDExNjM7RDBGODsxMTEwIDExNjM7CitEMEY5O0QwRjk7MTExMCAxMTYzIDExQTg7RDBGOTsxMTEwIDExNjMgMTFBODsKK0QwRkE7RDBGQTsxMTEwIDExNjMgMTFBOTtEMEZBOzExMTAgMTE2MyAxMUE5OworRDBGQjtEMEZCOzExMTAgMTE2MyAxMUFBO0QwRkI7MTExMCAxMTYzIDExQUE7CitEMEZDO0QwRkM7MTExMCAxMTYzIDExQUI7RDBGQzsxMTEwIDExNjMgMTFBQjsKK0QwRkQ7RDBGRDsxMTEwIDExNjMgMTFBQztEMEZEOzExMTAgMTE2MyAxMUFDOworRDBGRTtEMEZFOzExMTAgMTE2MyAxMUFEO0QwRkU7MTExMCAxMTYzIDExQUQ7CitEMEZGO0QwRkY7MTExMCAxMTYzIDExQUU7RDBGRjsxMTEwIDExNjMgMTFBRTsKK0QxMDA7RDEwMDsxMTEwIDExNjMgMTFBRjtEMTAwOzExMTAgMTE2MyAxMUFGOworRDEwMTtEMTAxOzExMTAgMTE2MyAxMUIwO0QxMDE7MTExMCAxMTYzIDExQjA7CitEMTAyO0QxMDI7MTExMCAxMTYzIDExQjE7RDEwMjsxMTEwIDExNjMgMTFCMTsKK0QxMDM7RDEwMzsxMTEwIDExNjMgMTFCMjtEMTAzOzExMTAgMTE2MyAxMUIyOworRDEwNDtEMTA0OzExMTAgMTE2MyAxMUIzO0QxMDQ7MTExMCAxMTYzIDExQjM7CitEMTA1O0QxMDU7MTExMCAxMTYzIDExQjQ7RDEwNTsxMTEwIDExNjMgMTFCNDsKK0QxMDY7RDEwNjsxMTEwIDExNjMgMTFCNTtEMTA2OzExMTAgMTE2MyAxMUI1OworRDEwNztEMTA3OzExMTAgMTE2MyAxMUI2O0QxMDc7MTExMCAxMTYzIDExQjY7CitEMTA4O0QxMDg7MTExMCAxMTYzIDExQjc7RDEwODsxMTEwIDExNjMgMTFCNzsKK0QxMDk7RDEwOTsxMTEwIDExNjMgMTFCODtEMTA5OzExMTAgMTE2MyAxMUI4OworRDEwQTtEMTBBOzExMTAgMTE2MyAxMUI5O0QxMEE7MTExMCAxMTYzIDExQjk7CitEMTBCO0QxMEI7MTExMCAxMTYzIDExQkE7RDEwQjsxMTEwIDExNjMgMTFCQTsKK0QxMEM7RDEwQzsxMTEwIDExNjMgMTFCQjtEMTBDOzExMTAgMTE2MyAxMUJCOworRDEwRDtEMTBEOzExMTAgMTE2MyAxMUJDO0QxMEQ7MTExMCAxMTYzIDExQkM7CitEMTBFO0QxMEU7MTExMCAxMTYzIDExQkQ7RDEwRTsxMTEwIDExNjMgMTFCRDsKK0QxMEY7RDEwRjsxMTEwIDExNjMgMTFCRTtEMTBGOzExMTAgMTE2MyAxMUJFOworRDExMDtEMTEwOzExMTAgMTE2MyAxMUJGO0QxMTA7MTExMCAxMTYzIDExQkY7CitEMTExO0QxMTE7MTExMCAxMTYzIDExQzA7RDExMTsxMTEwIDExNjMgMTFDMDsKK0QxMTI7RDExMjsxMTEwIDExNjMgMTFDMTtEMTEyOzExMTAgMTE2MyAxMUMxOworRDExMztEMTEzOzExMTAgMTE2MyAxMUMyO0QxMTM7MTExMCAxMTYzIDExQzI7CitEMTE0O0QxMTQ7MTExMCAxMTY0O0QxMTQ7MTExMCAxMTY0OworRDExNTtEMTE1OzExMTAgMTE2NCAxMUE4O0QxMTU7MTExMCAxMTY0IDExQTg7CitEMTE2O0QxMTY7MTExMCAxMTY0IDExQTk7RDExNjsxMTEwIDExNjQgMTFBOTsKK0QxMTc7RDExNzsxMTEwIDExNjQgMTFBQTtEMTE3OzExMTAgMTE2NCAxMUFBOworRDExODtEMTE4OzExMTAgMTE2NCAxMUFCO0QxMTg7MTExMCAxMTY0IDExQUI7CitEMTE5O0QxMTk7MTExMCAxMTY0IDExQUM7RDExOTsxMTEwIDExNjQgMTFBQzsKK0QxMUE7RDExQTsxMTEwIDExNjQgMTFBRDtEMTFBOzExMTAgMTE2NCAxMUFEOworRDExQjtEMTFCOzExMTAgMTE2NCAxMUFFO0QxMUI7MTExMCAxMTY0IDExQUU7CitEMTFDO0QxMUM7MTExMCAxMTY0IDExQUY7RDExQzsxMTEwIDExNjQgMTFBRjsKK0QxMUQ7RDExRDsxMTEwIDExNjQgMTFCMDtEMTFEOzExMTAgMTE2NCAxMUIwOworRDExRTtEMTFFOzExMTAgMTE2NCAxMUIxO0QxMUU7MTExMCAxMTY0IDExQjE7CitEMTFGO0QxMUY7MTExMCAxMTY0IDExQjI7RDExRjsxMTEwIDExNjQgMTFCMjsKK0QxMjA7RDEyMDsxMTEwIDExNjQgMTFCMztEMTIwOzExMTAgMTE2NCAxMUIzOworRDEyMTtEMTIxOzExMTAgMTE2NCAxMUI0O0QxMjE7MTExMCAxMTY0IDExQjQ7CitEMTIyO0QxMjI7MTExMCAxMTY0IDExQjU7RDEyMjsxMTEwIDExNjQgMTFCNTsKK0QxMjM7RDEyMzsxMTEwIDExNjQgMTFCNjtEMTIzOzExMTAgMTE2NCAxMUI2OworRDEyNDtEMTI0OzExMTAgMTE2NCAxMUI3O0QxMjQ7MTExMCAxMTY0IDExQjc7CitEMTI1O0QxMjU7MTExMCAxMTY0IDExQjg7RDEyNTsxMTEwIDExNjQgMTFCODsKK0QxMjY7RDEyNjsxMTEwIDExNjQgMTFCOTtEMTI2OzExMTAgMTE2NCAxMUI5OworRDEyNztEMTI3OzExMTAgMTE2NCAxMUJBO0QxMjc7MTExMCAxMTY0IDExQkE7CitEMTI4O0QxMjg7MTExMCAxMTY0IDExQkI7RDEyODsxMTEwIDExNjQgMTFCQjsKK0QxMjk7RDEyOTsxMTEwIDExNjQgMTFCQztEMTI5OzExMTAgMTE2NCAxMUJDOworRDEyQTtEMTJBOzExMTAgMTE2NCAxMUJEO0QxMkE7MTExMCAxMTY0IDExQkQ7CitEMTJCO0QxMkI7MTExMCAxMTY0IDExQkU7RDEyQjsxMTEwIDExNjQgMTFCRTsKK0QxMkM7RDEyQzsxMTEwIDExNjQgMTFCRjtEMTJDOzExMTAgMTE2NCAxMUJGOworRDEyRDtEMTJEOzExMTAgMTE2NCAxMUMwO0QxMkQ7MTExMCAxMTY0IDExQzA7CitEMTJFO0QxMkU7MTExMCAxMTY0IDExQzE7RDEyRTsxMTEwIDExNjQgMTFDMTsKK0QxMkY7RDEyRjsxMTEwIDExNjQgMTFDMjtEMTJGOzExMTAgMTE2NCAxMUMyOworRDEzMDtEMTMwOzExMTAgMTE2NTtEMTMwOzExMTAgMTE2NTsKK0QxMzE7RDEzMTsxMTEwIDExNjUgMTFBODtEMTMxOzExMTAgMTE2NSAxMUE4OworRDEzMjtEMTMyOzExMTAgMTE2NSAxMUE5O0QxMzI7MTExMCAxMTY1IDExQTk7CitEMTMzO0QxMzM7MTExMCAxMTY1IDExQUE7RDEzMzsxMTEwIDExNjUgMTFBQTsKK0QxMzQ7RDEzNDsxMTEwIDExNjUgMTFBQjtEMTM0OzExMTAgMTE2NSAxMUFCOworRDEzNTtEMTM1OzExMTAgMTE2NSAxMUFDO0QxMzU7MTExMCAxMTY1IDExQUM7CitEMTM2O0QxMzY7MTExMCAxMTY1IDExQUQ7RDEzNjsxMTEwIDExNjUgMTFBRDsKK0QxMzc7RDEzNzsxMTEwIDExNjUgMTFBRTtEMTM3OzExMTAgMTE2NSAxMUFFOworRDEzODtEMTM4OzExMTAgMTE2NSAxMUFGO0QxMzg7MTExMCAxMTY1IDExQUY7CitEMTM5O0QxMzk7MTExMCAxMTY1IDExQjA7RDEzOTsxMTEwIDExNjUgMTFCMDsKK0QxM0E7RDEzQTsxMTEwIDExNjUgMTFCMTtEMTNBOzExMTAgMTE2NSAxMUIxOworRDEzQjtEMTNCOzExMTAgMTE2NSAxMUIyO0QxM0I7MTExMCAxMTY1IDExQjI7CitEMTNDO0QxM0M7MTExMCAxMTY1IDExQjM7RDEzQzsxMTEwIDExNjUgMTFCMzsKK0QxM0Q7RDEzRDsxMTEwIDExNjUgMTFCNDtEMTNEOzExMTAgMTE2NSAxMUI0OworRDEzRTtEMTNFOzExMTAgMTE2NSAxMUI1O0QxM0U7MTExMCAxMTY1IDExQjU7CitEMTNGO0QxM0Y7MTExMCAxMTY1IDExQjY7RDEzRjsxMTEwIDExNjUgMTFCNjsKK0QxNDA7RDE0MDsxMTEwIDExNjUgMTFCNztEMTQwOzExMTAgMTE2NSAxMUI3OworRDE0MTtEMTQxOzExMTAgMTE2NSAxMUI4O0QxNDE7MTExMCAxMTY1IDExQjg7CitEMTQyO0QxNDI7MTExMCAxMTY1IDExQjk7RDE0MjsxMTEwIDExNjUgMTFCOTsKK0QxNDM7RDE0MzsxMTEwIDExNjUgMTFCQTtEMTQzOzExMTAgMTE2NSAxMUJBOworRDE0NDtEMTQ0OzExMTAgMTE2NSAxMUJCO0QxNDQ7MTExMCAxMTY1IDExQkI7CitEMTQ1O0QxNDU7MTExMCAxMTY1IDExQkM7RDE0NTsxMTEwIDExNjUgMTFCQzsKK0QxNDY7RDE0NjsxMTEwIDExNjUgMTFCRDtEMTQ2OzExMTAgMTE2NSAxMUJEOworRDE0NztEMTQ3OzExMTAgMTE2NSAxMUJFO0QxNDc7MTExMCAxMTY1IDExQkU7CitEMTQ4O0QxNDg7MTExMCAxMTY1IDExQkY7RDE0ODsxMTEwIDExNjUgMTFCRjsKK0QxNDk7RDE0OTsxMTEwIDExNjUgMTFDMDtEMTQ5OzExMTAgMTE2NSAxMUMwOworRDE0QTtEMTRBOzExMTAgMTE2NSAxMUMxO0QxNEE7MTExMCAxMTY1IDExQzE7CitEMTRCO0QxNEI7MTExMCAxMTY1IDExQzI7RDE0QjsxMTEwIDExNjUgMTFDMjsKK0QxNEM7RDE0QzsxMTEwIDExNjY7RDE0QzsxMTEwIDExNjY7CitEMTREO0QxNEQ7MTExMCAxMTY2IDExQTg7RDE0RDsxMTEwIDExNjYgMTFBODsKK0QxNEU7RDE0RTsxMTEwIDExNjYgMTFBOTtEMTRFOzExMTAgMTE2NiAxMUE5OworRDE0RjtEMTRGOzExMTAgMTE2NiAxMUFBO0QxNEY7MTExMCAxMTY2IDExQUE7CitEMTUwO0QxNTA7MTExMCAxMTY2IDExQUI7RDE1MDsxMTEwIDExNjYgMTFBQjsKK0QxNTE7RDE1MTsxMTEwIDExNjYgMTFBQztEMTUxOzExMTAgMTE2NiAxMUFDOworRDE1MjtEMTUyOzExMTAgMTE2NiAxMUFEO0QxNTI7MTExMCAxMTY2IDExQUQ7CitEMTUzO0QxNTM7MTExMCAxMTY2IDExQUU7RDE1MzsxMTEwIDExNjYgMTFBRTsKK0QxNTQ7RDE1NDsxMTEwIDExNjYgMTFBRjtEMTU0OzExMTAgMTE2NiAxMUFGOworRDE1NTtEMTU1OzExMTAgMTE2NiAxMUIwO0QxNTU7MTExMCAxMTY2IDExQjA7CitEMTU2O0QxNTY7MTExMCAxMTY2IDExQjE7RDE1NjsxMTEwIDExNjYgMTFCMTsKK0QxNTc7RDE1NzsxMTEwIDExNjYgMTFCMjtEMTU3OzExMTAgMTE2NiAxMUIyOworRDE1ODtEMTU4OzExMTAgMTE2NiAxMUIzO0QxNTg7MTExMCAxMTY2IDExQjM7CitEMTU5O0QxNTk7MTExMCAxMTY2IDExQjQ7RDE1OTsxMTEwIDExNjYgMTFCNDsKK0QxNUE7RDE1QTsxMTEwIDExNjYgMTFCNTtEMTVBOzExMTAgMTE2NiAxMUI1OworRDE1QjtEMTVCOzExMTAgMTE2NiAxMUI2O0QxNUI7MTExMCAxMTY2IDExQjY7CitEMTVDO0QxNUM7MTExMCAxMTY2IDExQjc7RDE1QzsxMTEwIDExNjYgMTFCNzsKK0QxNUQ7RDE1RDsxMTEwIDExNjYgMTFCODtEMTVEOzExMTAgMTE2NiAxMUI4OworRDE1RTtEMTVFOzExMTAgMTE2NiAxMUI5O0QxNUU7MTExMCAxMTY2IDExQjk7CitEMTVGO0QxNUY7MTExMCAxMTY2IDExQkE7RDE1RjsxMTEwIDExNjYgMTFCQTsKK0QxNjA7RDE2MDsxMTEwIDExNjYgMTFCQjtEMTYwOzExMTAgMTE2NiAxMUJCOworRDE2MTtEMTYxOzExMTAgMTE2NiAxMUJDO0QxNjE7MTExMCAxMTY2IDExQkM7CitEMTYyO0QxNjI7MTExMCAxMTY2IDExQkQ7RDE2MjsxMTEwIDExNjYgMTFCRDsKK0QxNjM7RDE2MzsxMTEwIDExNjYgMTFCRTtEMTYzOzExMTAgMTE2NiAxMUJFOworRDE2NDtEMTY0OzExMTAgMTE2NiAxMUJGO0QxNjQ7MTExMCAxMTY2IDExQkY7CitEMTY1O0QxNjU7MTExMCAxMTY2IDExQzA7RDE2NTsxMTEwIDExNjYgMTFDMDsKK0QxNjY7RDE2NjsxMTEwIDExNjYgMTFDMTtEMTY2OzExMTAgMTE2NiAxMUMxOworRDE2NztEMTY3OzExMTAgMTE2NiAxMUMyO0QxNjc7MTExMCAxMTY2IDExQzI7CitEMTY4O0QxNjg7MTExMCAxMTY3O0QxNjg7MTExMCAxMTY3OworRDE2OTtEMTY5OzExMTAgMTE2NyAxMUE4O0QxNjk7MTExMCAxMTY3IDExQTg7CitEMTZBO0QxNkE7MTExMCAxMTY3IDExQTk7RDE2QTsxMTEwIDExNjcgMTFBOTsKK0QxNkI7RDE2QjsxMTEwIDExNjcgMTFBQTtEMTZCOzExMTAgMTE2NyAxMUFBOworRDE2QztEMTZDOzExMTAgMTE2NyAxMUFCO0QxNkM7MTExMCAxMTY3IDExQUI7CitEMTZEO0QxNkQ7MTExMCAxMTY3IDExQUM7RDE2RDsxMTEwIDExNjcgMTFBQzsKK0QxNkU7RDE2RTsxMTEwIDExNjcgMTFBRDtEMTZFOzExMTAgMTE2NyAxMUFEOworRDE2RjtEMTZGOzExMTAgMTE2NyAxMUFFO0QxNkY7MTExMCAxMTY3IDExQUU7CitEMTcwO0QxNzA7MTExMCAxMTY3IDExQUY7RDE3MDsxMTEwIDExNjcgMTFBRjsKK0QxNzE7RDE3MTsxMTEwIDExNjcgMTFCMDtEMTcxOzExMTAgMTE2NyAxMUIwOworRDE3MjtEMTcyOzExMTAgMTE2NyAxMUIxO0QxNzI7MTExMCAxMTY3IDExQjE7CitEMTczO0QxNzM7MTExMCAxMTY3IDExQjI7RDE3MzsxMTEwIDExNjcgMTFCMjsKK0QxNzQ7RDE3NDsxMTEwIDExNjcgMTFCMztEMTc0OzExMTAgMTE2NyAxMUIzOworRDE3NTtEMTc1OzExMTAgMTE2NyAxMUI0O0QxNzU7MTExMCAxMTY3IDExQjQ7CitEMTc2O0QxNzY7MTExMCAxMTY3IDExQjU7RDE3NjsxMTEwIDExNjcgMTFCNTsKK0QxNzc7RDE3NzsxMTEwIDExNjcgMTFCNjtEMTc3OzExMTAgMTE2NyAxMUI2OworRDE3ODtEMTc4OzExMTAgMTE2NyAxMUI3O0QxNzg7MTExMCAxMTY3IDExQjc7CitEMTc5O0QxNzk7MTExMCAxMTY3IDExQjg7RDE3OTsxMTEwIDExNjcgMTFCODsKK0QxN0E7RDE3QTsxMTEwIDExNjcgMTFCOTtEMTdBOzExMTAgMTE2NyAxMUI5OworRDE3QjtEMTdCOzExMTAgMTE2NyAxMUJBO0QxN0I7MTExMCAxMTY3IDExQkE7CitEMTdDO0QxN0M7MTExMCAxMTY3IDExQkI7RDE3QzsxMTEwIDExNjcgMTFCQjsKK0QxN0Q7RDE3RDsxMTEwIDExNjcgMTFCQztEMTdEOzExMTAgMTE2NyAxMUJDOworRDE3RTtEMTdFOzExMTAgMTE2NyAxMUJEO0QxN0U7MTExMCAxMTY3IDExQkQ7CitEMTdGO0QxN0Y7MTExMCAxMTY3IDExQkU7RDE3RjsxMTEwIDExNjcgMTFCRTsKK0QxODA7RDE4MDsxMTEwIDExNjcgMTFCRjtEMTgwOzExMTAgMTE2NyAxMUJGOworRDE4MTtEMTgxOzExMTAgMTE2NyAxMUMwO0QxODE7MTExMCAxMTY3IDExQzA7CitEMTgyO0QxODI7MTExMCAxMTY3IDExQzE7RDE4MjsxMTEwIDExNjcgMTFDMTsKK0QxODM7RDE4MzsxMTEwIDExNjcgMTFDMjtEMTgzOzExMTAgMTE2NyAxMUMyOworRDE4NDtEMTg0OzExMTAgMTE2ODtEMTg0OzExMTAgMTE2ODsKK0QxODU7RDE4NTsxMTEwIDExNjggMTFBODtEMTg1OzExMTAgMTE2OCAxMUE4OworRDE4NjtEMTg2OzExMTAgMTE2OCAxMUE5O0QxODY7MTExMCAxMTY4IDExQTk7CitEMTg3O0QxODc7MTExMCAxMTY4IDExQUE7RDE4NzsxMTEwIDExNjggMTFBQTsKK0QxODg7RDE4ODsxMTEwIDExNjggMTFBQjtEMTg4OzExMTAgMTE2OCAxMUFCOworRDE4OTtEMTg5OzExMTAgMTE2OCAxMUFDO0QxODk7MTExMCAxMTY4IDExQUM7CitEMThBO0QxOEE7MTExMCAxMTY4IDExQUQ7RDE4QTsxMTEwIDExNjggMTFBRDsKK0QxOEI7RDE4QjsxMTEwIDExNjggMTFBRTtEMThCOzExMTAgMTE2OCAxMUFFOworRDE4QztEMThDOzExMTAgMTE2OCAxMUFGO0QxOEM7MTExMCAxMTY4IDExQUY7CitEMThEO0QxOEQ7MTExMCAxMTY4IDExQjA7RDE4RDsxMTEwIDExNjggMTFCMDsKK0QxOEU7RDE4RTsxMTEwIDExNjggMTFCMTtEMThFOzExMTAgMTE2OCAxMUIxOworRDE4RjtEMThGOzExMTAgMTE2OCAxMUIyO0QxOEY7MTExMCAxMTY4IDExQjI7CitEMTkwO0QxOTA7MTExMCAxMTY4IDExQjM7RDE5MDsxMTEwIDExNjggMTFCMzsKK0QxOTE7RDE5MTsxMTEwIDExNjggMTFCNDtEMTkxOzExMTAgMTE2OCAxMUI0OworRDE5MjtEMTkyOzExMTAgMTE2OCAxMUI1O0QxOTI7MTExMCAxMTY4IDExQjU7CitEMTkzO0QxOTM7MTExMCAxMTY4IDExQjY7RDE5MzsxMTEwIDExNjggMTFCNjsKK0QxOTQ7RDE5NDsxMTEwIDExNjggMTFCNztEMTk0OzExMTAgMTE2OCAxMUI3OworRDE5NTtEMTk1OzExMTAgMTE2OCAxMUI4O0QxOTU7MTExMCAxMTY4IDExQjg7CitEMTk2O0QxOTY7MTExMCAxMTY4IDExQjk7RDE5NjsxMTEwIDExNjggMTFCOTsKK0QxOTc7RDE5NzsxMTEwIDExNjggMTFCQTtEMTk3OzExMTAgMTE2OCAxMUJBOworRDE5ODtEMTk4OzExMTAgMTE2OCAxMUJCO0QxOTg7MTExMCAxMTY4IDExQkI7CitEMTk5O0QxOTk7MTExMCAxMTY4IDExQkM7RDE5OTsxMTEwIDExNjggMTFCQzsKK0QxOUE7RDE5QTsxMTEwIDExNjggMTFCRDtEMTlBOzExMTAgMTE2OCAxMUJEOworRDE5QjtEMTlCOzExMTAgMTE2OCAxMUJFO0QxOUI7MTExMCAxMTY4IDExQkU7CitEMTlDO0QxOUM7MTExMCAxMTY4IDExQkY7RDE5QzsxMTEwIDExNjggMTFCRjsKK0QxOUQ7RDE5RDsxMTEwIDExNjggMTFDMDtEMTlEOzExMTAgMTE2OCAxMUMwOworRDE5RTtEMTlFOzExMTAgMTE2OCAxMUMxO0QxOUU7MTExMCAxMTY4IDExQzE7CitEMTlGO0QxOUY7MTExMCAxMTY4IDExQzI7RDE5RjsxMTEwIDExNjggMTFDMjsKK0QxQTA7RDFBMDsxMTEwIDExNjk7RDFBMDsxMTEwIDExNjk7CitEMUExO0QxQTE7MTExMCAxMTY5IDExQTg7RDFBMTsxMTEwIDExNjkgMTFBODsKK0QxQTI7RDFBMjsxMTEwIDExNjkgMTFBOTtEMUEyOzExMTAgMTE2OSAxMUE5OworRDFBMztEMUEzOzExMTAgMTE2OSAxMUFBO0QxQTM7MTExMCAxMTY5IDExQUE7CitEMUE0O0QxQTQ7MTExMCAxMTY5IDExQUI7RDFBNDsxMTEwIDExNjkgMTFBQjsKK0QxQTU7RDFBNTsxMTEwIDExNjkgMTFBQztEMUE1OzExMTAgMTE2OSAxMUFDOworRDFBNjtEMUE2OzExMTAgMTE2OSAxMUFEO0QxQTY7MTExMCAxMTY5IDExQUQ7CitEMUE3O0QxQTc7MTExMCAxMTY5IDExQUU7RDFBNzsxMTEwIDExNjkgMTFBRTsKK0QxQTg7RDFBODsxMTEwIDExNjkgMTFBRjtEMUE4OzExMTAgMTE2OSAxMUFGOworRDFBOTtEMUE5OzExMTAgMTE2OSAxMUIwO0QxQTk7MTExMCAxMTY5IDExQjA7CitEMUFBO0QxQUE7MTExMCAxMTY5IDExQjE7RDFBQTsxMTEwIDExNjkgMTFCMTsKK0QxQUI7RDFBQjsxMTEwIDExNjkgMTFCMjtEMUFCOzExMTAgMTE2OSAxMUIyOworRDFBQztEMUFDOzExMTAgMTE2OSAxMUIzO0QxQUM7MTExMCAxMTY5IDExQjM7CitEMUFEO0QxQUQ7MTExMCAxMTY5IDExQjQ7RDFBRDsxMTEwIDExNjkgMTFCNDsKK0QxQUU7RDFBRTsxMTEwIDExNjkgMTFCNTtEMUFFOzExMTAgMTE2OSAxMUI1OworRDFBRjtEMUFGOzExMTAgMTE2OSAxMUI2O0QxQUY7MTExMCAxMTY5IDExQjY7CitEMUIwO0QxQjA7MTExMCAxMTY5IDExQjc7RDFCMDsxMTEwIDExNjkgMTFCNzsKK0QxQjE7RDFCMTsxMTEwIDExNjkgMTFCODtEMUIxOzExMTAgMTE2OSAxMUI4OworRDFCMjtEMUIyOzExMTAgMTE2OSAxMUI5O0QxQjI7MTExMCAxMTY5IDExQjk7CitEMUIzO0QxQjM7MTExMCAxMTY5IDExQkE7RDFCMzsxMTEwIDExNjkgMTFCQTsKK0QxQjQ7RDFCNDsxMTEwIDExNjkgMTFCQjtEMUI0OzExMTAgMTE2OSAxMUJCOworRDFCNTtEMUI1OzExMTAgMTE2OSAxMUJDO0QxQjU7MTExMCAxMTY5IDExQkM7CitEMUI2O0QxQjY7MTExMCAxMTY5IDExQkQ7RDFCNjsxMTEwIDExNjkgMTFCRDsKK0QxQjc7RDFCNzsxMTEwIDExNjkgMTFCRTtEMUI3OzExMTAgMTE2OSAxMUJFOworRDFCODtEMUI4OzExMTAgMTE2OSAxMUJGO0QxQjg7MTExMCAxMTY5IDExQkY7CitEMUI5O0QxQjk7MTExMCAxMTY5IDExQzA7RDFCOTsxMTEwIDExNjkgMTFDMDsKK0QxQkE7RDFCQTsxMTEwIDExNjkgMTFDMTtEMUJBOzExMTAgMTE2OSAxMUMxOworRDFCQjtEMUJCOzExMTAgMTE2OSAxMUMyO0QxQkI7MTExMCAxMTY5IDExQzI7CitEMUJDO0QxQkM7MTExMCAxMTZBO0QxQkM7MTExMCAxMTZBOworRDFCRDtEMUJEOzExMTAgMTE2QSAxMUE4O0QxQkQ7MTExMCAxMTZBIDExQTg7CitEMUJFO0QxQkU7MTExMCAxMTZBIDExQTk7RDFCRTsxMTEwIDExNkEgMTFBOTsKK0QxQkY7RDFCRjsxMTEwIDExNkEgMTFBQTtEMUJGOzExMTAgMTE2QSAxMUFBOworRDFDMDtEMUMwOzExMTAgMTE2QSAxMUFCO0QxQzA7MTExMCAxMTZBIDExQUI7CitEMUMxO0QxQzE7MTExMCAxMTZBIDExQUM7RDFDMTsxMTEwIDExNkEgMTFBQzsKK0QxQzI7RDFDMjsxMTEwIDExNkEgMTFBRDtEMUMyOzExMTAgMTE2QSAxMUFEOworRDFDMztEMUMzOzExMTAgMTE2QSAxMUFFO0QxQzM7MTExMCAxMTZBIDExQUU7CitEMUM0O0QxQzQ7MTExMCAxMTZBIDExQUY7RDFDNDsxMTEwIDExNkEgMTFBRjsKK0QxQzU7RDFDNTsxMTEwIDExNkEgMTFCMDtEMUM1OzExMTAgMTE2QSAxMUIwOworRDFDNjtEMUM2OzExMTAgMTE2QSAxMUIxO0QxQzY7MTExMCAxMTZBIDExQjE7CitEMUM3O0QxQzc7MTExMCAxMTZBIDExQjI7RDFDNzsxMTEwIDExNkEgMTFCMjsKK0QxQzg7RDFDODsxMTEwIDExNkEgMTFCMztEMUM4OzExMTAgMTE2QSAxMUIzOworRDFDOTtEMUM5OzExMTAgMTE2QSAxMUI0O0QxQzk7MTExMCAxMTZBIDExQjQ7CitEMUNBO0QxQ0E7MTExMCAxMTZBIDExQjU7RDFDQTsxMTEwIDExNkEgMTFCNTsKK0QxQ0I7RDFDQjsxMTEwIDExNkEgMTFCNjtEMUNCOzExMTAgMTE2QSAxMUI2OworRDFDQztEMUNDOzExMTAgMTE2QSAxMUI3O0QxQ0M7MTExMCAxMTZBIDExQjc7CitEMUNEO0QxQ0Q7MTExMCAxMTZBIDExQjg7RDFDRDsxMTEwIDExNkEgMTFCODsKK0QxQ0U7RDFDRTsxMTEwIDExNkEgMTFCOTtEMUNFOzExMTAgMTE2QSAxMUI5OworRDFDRjtEMUNGOzExMTAgMTE2QSAxMUJBO0QxQ0Y7MTExMCAxMTZBIDExQkE7CitEMUQwO0QxRDA7MTExMCAxMTZBIDExQkI7RDFEMDsxMTEwIDExNkEgMTFCQjsKK0QxRDE7RDFEMTsxMTEwIDExNkEgMTFCQztEMUQxOzExMTAgMTE2QSAxMUJDOworRDFEMjtEMUQyOzExMTAgMTE2QSAxMUJEO0QxRDI7MTExMCAxMTZBIDExQkQ7CitEMUQzO0QxRDM7MTExMCAxMTZBIDExQkU7RDFEMzsxMTEwIDExNkEgMTFCRTsKK0QxRDQ7RDFENDsxMTEwIDExNkEgMTFCRjtEMUQ0OzExMTAgMTE2QSAxMUJGOworRDFENTtEMUQ1OzExMTAgMTE2QSAxMUMwO0QxRDU7MTExMCAxMTZBIDExQzA7CitEMUQ2O0QxRDY7MTExMCAxMTZBIDExQzE7RDFENjsxMTEwIDExNkEgMTFDMTsKK0QxRDc7RDFENzsxMTEwIDExNkEgMTFDMjtEMUQ3OzExMTAgMTE2QSAxMUMyOworRDFEODtEMUQ4OzExMTAgMTE2QjtEMUQ4OzExMTAgMTE2QjsKK0QxRDk7RDFEOTsxMTEwIDExNkIgMTFBODtEMUQ5OzExMTAgMTE2QiAxMUE4OworRDFEQTtEMURBOzExMTAgMTE2QiAxMUE5O0QxREE7MTExMCAxMTZCIDExQTk7CitEMURCO0QxREI7MTExMCAxMTZCIDExQUE7RDFEQjsxMTEwIDExNkIgMTFBQTsKK0QxREM7RDFEQzsxMTEwIDExNkIgMTFBQjtEMURDOzExMTAgMTE2QiAxMUFCOworRDFERDtEMUREOzExMTAgMTE2QiAxMUFDO0QxREQ7MTExMCAxMTZCIDExQUM7CitEMURFO0QxREU7MTExMCAxMTZCIDExQUQ7RDFERTsxMTEwIDExNkIgMTFBRDsKK0QxREY7RDFERjsxMTEwIDExNkIgMTFBRTtEMURGOzExMTAgMTE2QiAxMUFFOworRDFFMDtEMUUwOzExMTAgMTE2QiAxMUFGO0QxRTA7MTExMCAxMTZCIDExQUY7CitEMUUxO0QxRTE7MTExMCAxMTZCIDExQjA7RDFFMTsxMTEwIDExNkIgMTFCMDsKK0QxRTI7RDFFMjsxMTEwIDExNkIgMTFCMTtEMUUyOzExMTAgMTE2QiAxMUIxOworRDFFMztEMUUzOzExMTAgMTE2QiAxMUIyO0QxRTM7MTExMCAxMTZCIDExQjI7CitEMUU0O0QxRTQ7MTExMCAxMTZCIDExQjM7RDFFNDsxMTEwIDExNkIgMTFCMzsKK0QxRTU7RDFFNTsxMTEwIDExNkIgMTFCNDtEMUU1OzExMTAgMTE2QiAxMUI0OworRDFFNjtEMUU2OzExMTAgMTE2QiAxMUI1O0QxRTY7MTExMCAxMTZCIDExQjU7CitEMUU3O0QxRTc7MTExMCAxMTZCIDExQjY7RDFFNzsxMTEwIDExNkIgMTFCNjsKK0QxRTg7RDFFODsxMTEwIDExNkIgMTFCNztEMUU4OzExMTAgMTE2QiAxMUI3OworRDFFOTtEMUU5OzExMTAgMTE2QiAxMUI4O0QxRTk7MTExMCAxMTZCIDExQjg7CitEMUVBO0QxRUE7MTExMCAxMTZCIDExQjk7RDFFQTsxMTEwIDExNkIgMTFCOTsKK0QxRUI7RDFFQjsxMTEwIDExNkIgMTFCQTtEMUVCOzExMTAgMTE2QiAxMUJBOworRDFFQztEMUVDOzExMTAgMTE2QiAxMUJCO0QxRUM7MTExMCAxMTZCIDExQkI7CitEMUVEO0QxRUQ7MTExMCAxMTZCIDExQkM7RDFFRDsxMTEwIDExNkIgMTFCQzsKK0QxRUU7RDFFRTsxMTEwIDExNkIgMTFCRDtEMUVFOzExMTAgMTE2QiAxMUJEOworRDFFRjtEMUVGOzExMTAgMTE2QiAxMUJFO0QxRUY7MTExMCAxMTZCIDExQkU7CitEMUYwO0QxRjA7MTExMCAxMTZCIDExQkY7RDFGMDsxMTEwIDExNkIgMTFCRjsKK0QxRjE7RDFGMTsxMTEwIDExNkIgMTFDMDtEMUYxOzExMTAgMTE2QiAxMUMwOworRDFGMjtEMUYyOzExMTAgMTE2QiAxMUMxO0QxRjI7MTExMCAxMTZCIDExQzE7CitEMUYzO0QxRjM7MTExMCAxMTZCIDExQzI7RDFGMzsxMTEwIDExNkIgMTFDMjsKK0QxRjQ7RDFGNDsxMTEwIDExNkM7RDFGNDsxMTEwIDExNkM7CitEMUY1O0QxRjU7MTExMCAxMTZDIDExQTg7RDFGNTsxMTEwIDExNkMgMTFBODsKK0QxRjY7RDFGNjsxMTEwIDExNkMgMTFBOTtEMUY2OzExMTAgMTE2QyAxMUE5OworRDFGNztEMUY3OzExMTAgMTE2QyAxMUFBO0QxRjc7MTExMCAxMTZDIDExQUE7CitEMUY4O0QxRjg7MTExMCAxMTZDIDExQUI7RDFGODsxMTEwIDExNkMgMTFBQjsKK0QxRjk7RDFGOTsxMTEwIDExNkMgMTFBQztEMUY5OzExMTAgMTE2QyAxMUFDOworRDFGQTtEMUZBOzExMTAgMTE2QyAxMUFEO0QxRkE7MTExMCAxMTZDIDExQUQ7CitEMUZCO0QxRkI7MTExMCAxMTZDIDExQUU7RDFGQjsxMTEwIDExNkMgMTFBRTsKK0QxRkM7RDFGQzsxMTEwIDExNkMgMTFBRjtEMUZDOzExMTAgMTE2QyAxMUFGOworRDFGRDtEMUZEOzExMTAgMTE2QyAxMUIwO0QxRkQ7MTExMCAxMTZDIDExQjA7CitEMUZFO0QxRkU7MTExMCAxMTZDIDExQjE7RDFGRTsxMTEwIDExNkMgMTFCMTsKK0QxRkY7RDFGRjsxMTEwIDExNkMgMTFCMjtEMUZGOzExMTAgMTE2QyAxMUIyOworRDIwMDtEMjAwOzExMTAgMTE2QyAxMUIzO0QyMDA7MTExMCAxMTZDIDExQjM7CitEMjAxO0QyMDE7MTExMCAxMTZDIDExQjQ7RDIwMTsxMTEwIDExNkMgMTFCNDsKK0QyMDI7RDIwMjsxMTEwIDExNkMgMTFCNTtEMjAyOzExMTAgMTE2QyAxMUI1OworRDIwMztEMjAzOzExMTAgMTE2QyAxMUI2O0QyMDM7MTExMCAxMTZDIDExQjY7CitEMjA0O0QyMDQ7MTExMCAxMTZDIDExQjc7RDIwNDsxMTEwIDExNkMgMTFCNzsKK0QyMDU7RDIwNTsxMTEwIDExNkMgMTFCODtEMjA1OzExMTAgMTE2QyAxMUI4OworRDIwNjtEMjA2OzExMTAgMTE2QyAxMUI5O0QyMDY7MTExMCAxMTZDIDExQjk7CitEMjA3O0QyMDc7MTExMCAxMTZDIDExQkE7RDIwNzsxMTEwIDExNkMgMTFCQTsKK0QyMDg7RDIwODsxMTEwIDExNkMgMTFCQjtEMjA4OzExMTAgMTE2QyAxMUJCOworRDIwOTtEMjA5OzExMTAgMTE2QyAxMUJDO0QyMDk7MTExMCAxMTZDIDExQkM7CitEMjBBO0QyMEE7MTExMCAxMTZDIDExQkQ7RDIwQTsxMTEwIDExNkMgMTFCRDsKK0QyMEI7RDIwQjsxMTEwIDExNkMgMTFCRTtEMjBCOzExMTAgMTE2QyAxMUJFOworRDIwQztEMjBDOzExMTAgMTE2QyAxMUJGO0QyMEM7MTExMCAxMTZDIDExQkY7CitEMjBEO0QyMEQ7MTExMCAxMTZDIDExQzA7RDIwRDsxMTEwIDExNkMgMTFDMDsKK0QyMEU7RDIwRTsxMTEwIDExNkMgMTFDMTtEMjBFOzExMTAgMTE2QyAxMUMxOworRDIwRjtEMjBGOzExMTAgMTE2QyAxMUMyO0QyMEY7MTExMCAxMTZDIDExQzI7CitEMjEwO0QyMTA7MTExMCAxMTZEO0QyMTA7MTExMCAxMTZEOworRDIxMTtEMjExOzExMTAgMTE2RCAxMUE4O0QyMTE7MTExMCAxMTZEIDExQTg7CitEMjEyO0QyMTI7MTExMCAxMTZEIDExQTk7RDIxMjsxMTEwIDExNkQgMTFBOTsKK0QyMTM7RDIxMzsxMTEwIDExNkQgMTFBQTtEMjEzOzExMTAgMTE2RCAxMUFBOworRDIxNDtEMjE0OzExMTAgMTE2RCAxMUFCO0QyMTQ7MTExMCAxMTZEIDExQUI7CitEMjE1O0QyMTU7MTExMCAxMTZEIDExQUM7RDIxNTsxMTEwIDExNkQgMTFBQzsKK0QyMTY7RDIxNjsxMTEwIDExNkQgMTFBRDtEMjE2OzExMTAgMTE2RCAxMUFEOworRDIxNztEMjE3OzExMTAgMTE2RCAxMUFFO0QyMTc7MTExMCAxMTZEIDExQUU7CitEMjE4O0QyMTg7MTExMCAxMTZEIDExQUY7RDIxODsxMTEwIDExNkQgMTFBRjsKK0QyMTk7RDIxOTsxMTEwIDExNkQgMTFCMDtEMjE5OzExMTAgMTE2RCAxMUIwOworRDIxQTtEMjFBOzExMTAgMTE2RCAxMUIxO0QyMUE7MTExMCAxMTZEIDExQjE7CitEMjFCO0QyMUI7MTExMCAxMTZEIDExQjI7RDIxQjsxMTEwIDExNkQgMTFCMjsKK0QyMUM7RDIxQzsxMTEwIDExNkQgMTFCMztEMjFDOzExMTAgMTE2RCAxMUIzOworRDIxRDtEMjFEOzExMTAgMTE2RCAxMUI0O0QyMUQ7MTExMCAxMTZEIDExQjQ7CitEMjFFO0QyMUU7MTExMCAxMTZEIDExQjU7RDIxRTsxMTEwIDExNkQgMTFCNTsKK0QyMUY7RDIxRjsxMTEwIDExNkQgMTFCNjtEMjFGOzExMTAgMTE2RCAxMUI2OworRDIyMDtEMjIwOzExMTAgMTE2RCAxMUI3O0QyMjA7MTExMCAxMTZEIDExQjc7CitEMjIxO0QyMjE7MTExMCAxMTZEIDExQjg7RDIyMTsxMTEwIDExNkQgMTFCODsKK0QyMjI7RDIyMjsxMTEwIDExNkQgMTFCOTtEMjIyOzExMTAgMTE2RCAxMUI5OworRDIyMztEMjIzOzExMTAgMTE2RCAxMUJBO0QyMjM7MTExMCAxMTZEIDExQkE7CitEMjI0O0QyMjQ7MTExMCAxMTZEIDExQkI7RDIyNDsxMTEwIDExNkQgMTFCQjsKK0QyMjU7RDIyNTsxMTEwIDExNkQgMTFCQztEMjI1OzExMTAgMTE2RCAxMUJDOworRDIyNjtEMjI2OzExMTAgMTE2RCAxMUJEO0QyMjY7MTExMCAxMTZEIDExQkQ7CitEMjI3O0QyMjc7MTExMCAxMTZEIDExQkU7RDIyNzsxMTEwIDExNkQgMTFCRTsKK0QyMjg7RDIyODsxMTEwIDExNkQgMTFCRjtEMjI4OzExMTAgMTE2RCAxMUJGOworRDIyOTtEMjI5OzExMTAgMTE2RCAxMUMwO0QyMjk7MTExMCAxMTZEIDExQzA7CitEMjJBO0QyMkE7MTExMCAxMTZEIDExQzE7RDIyQTsxMTEwIDExNkQgMTFDMTsKK0QyMkI7RDIyQjsxMTEwIDExNkQgMTFDMjtEMjJCOzExMTAgMTE2RCAxMUMyOworRDIyQztEMjJDOzExMTAgMTE2RTtEMjJDOzExMTAgMTE2RTsKK0QyMkQ7RDIyRDsxMTEwIDExNkUgMTFBODtEMjJEOzExMTAgMTE2RSAxMUE4OworRDIyRTtEMjJFOzExMTAgMTE2RSAxMUE5O0QyMkU7MTExMCAxMTZFIDExQTk7CitEMjJGO0QyMkY7MTExMCAxMTZFIDExQUE7RDIyRjsxMTEwIDExNkUgMTFBQTsKK0QyMzA7RDIzMDsxMTEwIDExNkUgMTFBQjtEMjMwOzExMTAgMTE2RSAxMUFCOworRDIzMTtEMjMxOzExMTAgMTE2RSAxMUFDO0QyMzE7MTExMCAxMTZFIDExQUM7CitEMjMyO0QyMzI7MTExMCAxMTZFIDExQUQ7RDIzMjsxMTEwIDExNkUgMTFBRDsKK0QyMzM7RDIzMzsxMTEwIDExNkUgMTFBRTtEMjMzOzExMTAgMTE2RSAxMUFFOworRDIzNDtEMjM0OzExMTAgMTE2RSAxMUFGO0QyMzQ7MTExMCAxMTZFIDExQUY7CitEMjM1O0QyMzU7MTExMCAxMTZFIDExQjA7RDIzNTsxMTEwIDExNkUgMTFCMDsKK0QyMzY7RDIzNjsxMTEwIDExNkUgMTFCMTtEMjM2OzExMTAgMTE2RSAxMUIxOworRDIzNztEMjM3OzExMTAgMTE2RSAxMUIyO0QyMzc7MTExMCAxMTZFIDExQjI7CitEMjM4O0QyMzg7MTExMCAxMTZFIDExQjM7RDIzODsxMTEwIDExNkUgMTFCMzsKK0QyMzk7RDIzOTsxMTEwIDExNkUgMTFCNDtEMjM5OzExMTAgMTE2RSAxMUI0OworRDIzQTtEMjNBOzExMTAgMTE2RSAxMUI1O0QyM0E7MTExMCAxMTZFIDExQjU7CitEMjNCO0QyM0I7MTExMCAxMTZFIDExQjY7RDIzQjsxMTEwIDExNkUgMTFCNjsKK0QyM0M7RDIzQzsxMTEwIDExNkUgMTFCNztEMjNDOzExMTAgMTE2RSAxMUI3OworRDIzRDtEMjNEOzExMTAgMTE2RSAxMUI4O0QyM0Q7MTExMCAxMTZFIDExQjg7CitEMjNFO0QyM0U7MTExMCAxMTZFIDExQjk7RDIzRTsxMTEwIDExNkUgMTFCOTsKK0QyM0Y7RDIzRjsxMTEwIDExNkUgMTFCQTtEMjNGOzExMTAgMTE2RSAxMUJBOworRDI0MDtEMjQwOzExMTAgMTE2RSAxMUJCO0QyNDA7MTExMCAxMTZFIDExQkI7CitEMjQxO0QyNDE7MTExMCAxMTZFIDExQkM7RDI0MTsxMTEwIDExNkUgMTFCQzsKK0QyNDI7RDI0MjsxMTEwIDExNkUgMTFCRDtEMjQyOzExMTAgMTE2RSAxMUJEOworRDI0MztEMjQzOzExMTAgMTE2RSAxMUJFO0QyNDM7MTExMCAxMTZFIDExQkU7CitEMjQ0O0QyNDQ7MTExMCAxMTZFIDExQkY7RDI0NDsxMTEwIDExNkUgMTFCRjsKK0QyNDU7RDI0NTsxMTEwIDExNkUgMTFDMDtEMjQ1OzExMTAgMTE2RSAxMUMwOworRDI0NjtEMjQ2OzExMTAgMTE2RSAxMUMxO0QyNDY7MTExMCAxMTZFIDExQzE7CitEMjQ3O0QyNDc7MTExMCAxMTZFIDExQzI7RDI0NzsxMTEwIDExNkUgMTFDMjsKK0QyNDg7RDI0ODsxMTEwIDExNkY7RDI0ODsxMTEwIDExNkY7CitEMjQ5O0QyNDk7MTExMCAxMTZGIDExQTg7RDI0OTsxMTEwIDExNkYgMTFBODsKK0QyNEE7RDI0QTsxMTEwIDExNkYgMTFBOTtEMjRBOzExMTAgMTE2RiAxMUE5OworRDI0QjtEMjRCOzExMTAgMTE2RiAxMUFBO0QyNEI7MTExMCAxMTZGIDExQUE7CitEMjRDO0QyNEM7MTExMCAxMTZGIDExQUI7RDI0QzsxMTEwIDExNkYgMTFBQjsKK0QyNEQ7RDI0RDsxMTEwIDExNkYgMTFBQztEMjREOzExMTAgMTE2RiAxMUFDOworRDI0RTtEMjRFOzExMTAgMTE2RiAxMUFEO0QyNEU7MTExMCAxMTZGIDExQUQ7CitEMjRGO0QyNEY7MTExMCAxMTZGIDExQUU7RDI0RjsxMTEwIDExNkYgMTFBRTsKK0QyNTA7RDI1MDsxMTEwIDExNkYgMTFBRjtEMjUwOzExMTAgMTE2RiAxMUFGOworRDI1MTtEMjUxOzExMTAgMTE2RiAxMUIwO0QyNTE7MTExMCAxMTZGIDExQjA7CitEMjUyO0QyNTI7MTExMCAxMTZGIDExQjE7RDI1MjsxMTEwIDExNkYgMTFCMTsKK0QyNTM7RDI1MzsxMTEwIDExNkYgMTFCMjtEMjUzOzExMTAgMTE2RiAxMUIyOworRDI1NDtEMjU0OzExMTAgMTE2RiAxMUIzO0QyNTQ7MTExMCAxMTZGIDExQjM7CitEMjU1O0QyNTU7MTExMCAxMTZGIDExQjQ7RDI1NTsxMTEwIDExNkYgMTFCNDsKK0QyNTY7RDI1NjsxMTEwIDExNkYgMTFCNTtEMjU2OzExMTAgMTE2RiAxMUI1OworRDI1NztEMjU3OzExMTAgMTE2RiAxMUI2O0QyNTc7MTExMCAxMTZGIDExQjY7CitEMjU4O0QyNTg7MTExMCAxMTZGIDExQjc7RDI1ODsxMTEwIDExNkYgMTFCNzsKK0QyNTk7RDI1OTsxMTEwIDExNkYgMTFCODtEMjU5OzExMTAgMTE2RiAxMUI4OworRDI1QTtEMjVBOzExMTAgMTE2RiAxMUI5O0QyNUE7MTExMCAxMTZGIDExQjk7CitEMjVCO0QyNUI7MTExMCAxMTZGIDExQkE7RDI1QjsxMTEwIDExNkYgMTFCQTsKK0QyNUM7RDI1QzsxMTEwIDExNkYgMTFCQjtEMjVDOzExMTAgMTE2RiAxMUJCOworRDI1RDtEMjVEOzExMTAgMTE2RiAxMUJDO0QyNUQ7MTExMCAxMTZGIDExQkM7CitEMjVFO0QyNUU7MTExMCAxMTZGIDExQkQ7RDI1RTsxMTEwIDExNkYgMTFCRDsKK0QyNUY7RDI1RjsxMTEwIDExNkYgMTFCRTtEMjVGOzExMTAgMTE2RiAxMUJFOworRDI2MDtEMjYwOzExMTAgMTE2RiAxMUJGO0QyNjA7MTExMCAxMTZGIDExQkY7CitEMjYxO0QyNjE7MTExMCAxMTZGIDExQzA7RDI2MTsxMTEwIDExNkYgMTFDMDsKK0QyNjI7RDI2MjsxMTEwIDExNkYgMTFDMTtEMjYyOzExMTAgMTE2RiAxMUMxOworRDI2MztEMjYzOzExMTAgMTE2RiAxMUMyO0QyNjM7MTExMCAxMTZGIDExQzI7CitEMjY0O0QyNjQ7MTExMCAxMTcwO0QyNjQ7MTExMCAxMTcwOworRDI2NTtEMjY1OzExMTAgMTE3MCAxMUE4O0QyNjU7MTExMCAxMTcwIDExQTg7CitEMjY2O0QyNjY7MTExMCAxMTcwIDExQTk7RDI2NjsxMTEwIDExNzAgMTFBOTsKK0QyNjc7RDI2NzsxMTEwIDExNzAgMTFBQTtEMjY3OzExMTAgMTE3MCAxMUFBOworRDI2ODtEMjY4OzExMTAgMTE3MCAxMUFCO0QyNjg7MTExMCAxMTcwIDExQUI7CitEMjY5O0QyNjk7MTExMCAxMTcwIDExQUM7RDI2OTsxMTEwIDExNzAgMTFBQzsKK0QyNkE7RDI2QTsxMTEwIDExNzAgMTFBRDtEMjZBOzExMTAgMTE3MCAxMUFEOworRDI2QjtEMjZCOzExMTAgMTE3MCAxMUFFO0QyNkI7MTExMCAxMTcwIDExQUU7CitEMjZDO0QyNkM7MTExMCAxMTcwIDExQUY7RDI2QzsxMTEwIDExNzAgMTFBRjsKK0QyNkQ7RDI2RDsxMTEwIDExNzAgMTFCMDtEMjZEOzExMTAgMTE3MCAxMUIwOworRDI2RTtEMjZFOzExMTAgMTE3MCAxMUIxO0QyNkU7MTExMCAxMTcwIDExQjE7CitEMjZGO0QyNkY7MTExMCAxMTcwIDExQjI7RDI2RjsxMTEwIDExNzAgMTFCMjsKK0QyNzA7RDI3MDsxMTEwIDExNzAgMTFCMztEMjcwOzExMTAgMTE3MCAxMUIzOworRDI3MTtEMjcxOzExMTAgMTE3MCAxMUI0O0QyNzE7MTExMCAxMTcwIDExQjQ7CitEMjcyO0QyNzI7MTExMCAxMTcwIDExQjU7RDI3MjsxMTEwIDExNzAgMTFCNTsKK0QyNzM7RDI3MzsxMTEwIDExNzAgMTFCNjtEMjczOzExMTAgMTE3MCAxMUI2OworRDI3NDtEMjc0OzExMTAgMTE3MCAxMUI3O0QyNzQ7MTExMCAxMTcwIDExQjc7CitEMjc1O0QyNzU7MTExMCAxMTcwIDExQjg7RDI3NTsxMTEwIDExNzAgMTFCODsKK0QyNzY7RDI3NjsxMTEwIDExNzAgMTFCOTtEMjc2OzExMTAgMTE3MCAxMUI5OworRDI3NztEMjc3OzExMTAgMTE3MCAxMUJBO0QyNzc7MTExMCAxMTcwIDExQkE7CitEMjc4O0QyNzg7MTExMCAxMTcwIDExQkI7RDI3ODsxMTEwIDExNzAgMTFCQjsKK0QyNzk7RDI3OTsxMTEwIDExNzAgMTFCQztEMjc5OzExMTAgMTE3MCAxMUJDOworRDI3QTtEMjdBOzExMTAgMTE3MCAxMUJEO0QyN0E7MTExMCAxMTcwIDExQkQ7CitEMjdCO0QyN0I7MTExMCAxMTcwIDExQkU7RDI3QjsxMTEwIDExNzAgMTFCRTsKK0QyN0M7RDI3QzsxMTEwIDExNzAgMTFCRjtEMjdDOzExMTAgMTE3MCAxMUJGOworRDI3RDtEMjdEOzExMTAgMTE3MCAxMUMwO0QyN0Q7MTExMCAxMTcwIDExQzA7CitEMjdFO0QyN0U7MTExMCAxMTcwIDExQzE7RDI3RTsxMTEwIDExNzAgMTFDMTsKK0QyN0Y7RDI3RjsxMTEwIDExNzAgMTFDMjtEMjdGOzExMTAgMTE3MCAxMUMyOworRDI4MDtEMjgwOzExMTAgMTE3MTtEMjgwOzExMTAgMTE3MTsKK0QyODE7RDI4MTsxMTEwIDExNzEgMTFBODtEMjgxOzExMTAgMTE3MSAxMUE4OworRDI4MjtEMjgyOzExMTAgMTE3MSAxMUE5O0QyODI7MTExMCAxMTcxIDExQTk7CitEMjgzO0QyODM7MTExMCAxMTcxIDExQUE7RDI4MzsxMTEwIDExNzEgMTFBQTsKK0QyODQ7RDI4NDsxMTEwIDExNzEgMTFBQjtEMjg0OzExMTAgMTE3MSAxMUFCOworRDI4NTtEMjg1OzExMTAgMTE3MSAxMUFDO0QyODU7MTExMCAxMTcxIDExQUM7CitEMjg2O0QyODY7MTExMCAxMTcxIDExQUQ7RDI4NjsxMTEwIDExNzEgMTFBRDsKK0QyODc7RDI4NzsxMTEwIDExNzEgMTFBRTtEMjg3OzExMTAgMTE3MSAxMUFFOworRDI4ODtEMjg4OzExMTAgMTE3MSAxMUFGO0QyODg7MTExMCAxMTcxIDExQUY7CitEMjg5O0QyODk7MTExMCAxMTcxIDExQjA7RDI4OTsxMTEwIDExNzEgMTFCMDsKK0QyOEE7RDI4QTsxMTEwIDExNzEgMTFCMTtEMjhBOzExMTAgMTE3MSAxMUIxOworRDI4QjtEMjhCOzExMTAgMTE3MSAxMUIyO0QyOEI7MTExMCAxMTcxIDExQjI7CitEMjhDO0QyOEM7MTExMCAxMTcxIDExQjM7RDI4QzsxMTEwIDExNzEgMTFCMzsKK0QyOEQ7RDI4RDsxMTEwIDExNzEgMTFCNDtEMjhEOzExMTAgMTE3MSAxMUI0OworRDI4RTtEMjhFOzExMTAgMTE3MSAxMUI1O0QyOEU7MTExMCAxMTcxIDExQjU7CitEMjhGO0QyOEY7MTExMCAxMTcxIDExQjY7RDI4RjsxMTEwIDExNzEgMTFCNjsKK0QyOTA7RDI5MDsxMTEwIDExNzEgMTFCNztEMjkwOzExMTAgMTE3MSAxMUI3OworRDI5MTtEMjkxOzExMTAgMTE3MSAxMUI4O0QyOTE7MTExMCAxMTcxIDExQjg7CitEMjkyO0QyOTI7MTExMCAxMTcxIDExQjk7RDI5MjsxMTEwIDExNzEgMTFCOTsKK0QyOTM7RDI5MzsxMTEwIDExNzEgMTFCQTtEMjkzOzExMTAgMTE3MSAxMUJBOworRDI5NDtEMjk0OzExMTAgMTE3MSAxMUJCO0QyOTQ7MTExMCAxMTcxIDExQkI7CitEMjk1O0QyOTU7MTExMCAxMTcxIDExQkM7RDI5NTsxMTEwIDExNzEgMTFCQzsKK0QyOTY7RDI5NjsxMTEwIDExNzEgMTFCRDtEMjk2OzExMTAgMTE3MSAxMUJEOworRDI5NztEMjk3OzExMTAgMTE3MSAxMUJFO0QyOTc7MTExMCAxMTcxIDExQkU7CitEMjk4O0QyOTg7MTExMCAxMTcxIDExQkY7RDI5ODsxMTEwIDExNzEgMTFCRjsKK0QyOTk7RDI5OTsxMTEwIDExNzEgMTFDMDtEMjk5OzExMTAgMTE3MSAxMUMwOworRDI5QTtEMjlBOzExMTAgMTE3MSAxMUMxO0QyOUE7MTExMCAxMTcxIDExQzE7CitEMjlCO0QyOUI7MTExMCAxMTcxIDExQzI7RDI5QjsxMTEwIDExNzEgMTFDMjsKK0QyOUM7RDI5QzsxMTEwIDExNzI7RDI5QzsxMTEwIDExNzI7CitEMjlEO0QyOUQ7MTExMCAxMTcyIDExQTg7RDI5RDsxMTEwIDExNzIgMTFBODsKK0QyOUU7RDI5RTsxMTEwIDExNzIgMTFBOTtEMjlFOzExMTAgMTE3MiAxMUE5OworRDI5RjtEMjlGOzExMTAgMTE3MiAxMUFBO0QyOUY7MTExMCAxMTcyIDExQUE7CitEMkEwO0QyQTA7MTExMCAxMTcyIDExQUI7RDJBMDsxMTEwIDExNzIgMTFBQjsKK0QyQTE7RDJBMTsxMTEwIDExNzIgMTFBQztEMkExOzExMTAgMTE3MiAxMUFDOworRDJBMjtEMkEyOzExMTAgMTE3MiAxMUFEO0QyQTI7MTExMCAxMTcyIDExQUQ7CitEMkEzO0QyQTM7MTExMCAxMTcyIDExQUU7RDJBMzsxMTEwIDExNzIgMTFBRTsKK0QyQTQ7RDJBNDsxMTEwIDExNzIgMTFBRjtEMkE0OzExMTAgMTE3MiAxMUFGOworRDJBNTtEMkE1OzExMTAgMTE3MiAxMUIwO0QyQTU7MTExMCAxMTcyIDExQjA7CitEMkE2O0QyQTY7MTExMCAxMTcyIDExQjE7RDJBNjsxMTEwIDExNzIgMTFCMTsKK0QyQTc7RDJBNzsxMTEwIDExNzIgMTFCMjtEMkE3OzExMTAgMTE3MiAxMUIyOworRDJBODtEMkE4OzExMTAgMTE3MiAxMUIzO0QyQTg7MTExMCAxMTcyIDExQjM7CitEMkE5O0QyQTk7MTExMCAxMTcyIDExQjQ7RDJBOTsxMTEwIDExNzIgMTFCNDsKK0QyQUE7RDJBQTsxMTEwIDExNzIgMTFCNTtEMkFBOzExMTAgMTE3MiAxMUI1OworRDJBQjtEMkFCOzExMTAgMTE3MiAxMUI2O0QyQUI7MTExMCAxMTcyIDExQjY7CitEMkFDO0QyQUM7MTExMCAxMTcyIDExQjc7RDJBQzsxMTEwIDExNzIgMTFCNzsKK0QyQUQ7RDJBRDsxMTEwIDExNzIgMTFCODtEMkFEOzExMTAgMTE3MiAxMUI4OworRDJBRTtEMkFFOzExMTAgMTE3MiAxMUI5O0QyQUU7MTExMCAxMTcyIDExQjk7CitEMkFGO0QyQUY7MTExMCAxMTcyIDExQkE7RDJBRjsxMTEwIDExNzIgMTFCQTsKK0QyQjA7RDJCMDsxMTEwIDExNzIgMTFCQjtEMkIwOzExMTAgMTE3MiAxMUJCOworRDJCMTtEMkIxOzExMTAgMTE3MiAxMUJDO0QyQjE7MTExMCAxMTcyIDExQkM7CitEMkIyO0QyQjI7MTExMCAxMTcyIDExQkQ7RDJCMjsxMTEwIDExNzIgMTFCRDsKK0QyQjM7RDJCMzsxMTEwIDExNzIgMTFCRTtEMkIzOzExMTAgMTE3MiAxMUJFOworRDJCNDtEMkI0OzExMTAgMTE3MiAxMUJGO0QyQjQ7MTExMCAxMTcyIDExQkY7CitEMkI1O0QyQjU7MTExMCAxMTcyIDExQzA7RDJCNTsxMTEwIDExNzIgMTFDMDsKK0QyQjY7RDJCNjsxMTEwIDExNzIgMTFDMTtEMkI2OzExMTAgMTE3MiAxMUMxOworRDJCNztEMkI3OzExMTAgMTE3MiAxMUMyO0QyQjc7MTExMCAxMTcyIDExQzI7CitEMkI4O0QyQjg7MTExMCAxMTczO0QyQjg7MTExMCAxMTczOworRDJCOTtEMkI5OzExMTAgMTE3MyAxMUE4O0QyQjk7MTExMCAxMTczIDExQTg7CitEMkJBO0QyQkE7MTExMCAxMTczIDExQTk7RDJCQTsxMTEwIDExNzMgMTFBOTsKK0QyQkI7RDJCQjsxMTEwIDExNzMgMTFBQTtEMkJCOzExMTAgMTE3MyAxMUFBOworRDJCQztEMkJDOzExMTAgMTE3MyAxMUFCO0QyQkM7MTExMCAxMTczIDExQUI7CitEMkJEO0QyQkQ7MTExMCAxMTczIDExQUM7RDJCRDsxMTEwIDExNzMgMTFBQzsKK0QyQkU7RDJCRTsxMTEwIDExNzMgMTFBRDtEMkJFOzExMTAgMTE3MyAxMUFEOworRDJCRjtEMkJGOzExMTAgMTE3MyAxMUFFO0QyQkY7MTExMCAxMTczIDExQUU7CitEMkMwO0QyQzA7MTExMCAxMTczIDExQUY7RDJDMDsxMTEwIDExNzMgMTFBRjsKK0QyQzE7RDJDMTsxMTEwIDExNzMgMTFCMDtEMkMxOzExMTAgMTE3MyAxMUIwOworRDJDMjtEMkMyOzExMTAgMTE3MyAxMUIxO0QyQzI7MTExMCAxMTczIDExQjE7CitEMkMzO0QyQzM7MTExMCAxMTczIDExQjI7RDJDMzsxMTEwIDExNzMgMTFCMjsKK0QyQzQ7RDJDNDsxMTEwIDExNzMgMTFCMztEMkM0OzExMTAgMTE3MyAxMUIzOworRDJDNTtEMkM1OzExMTAgMTE3MyAxMUI0O0QyQzU7MTExMCAxMTczIDExQjQ7CitEMkM2O0QyQzY7MTExMCAxMTczIDExQjU7RDJDNjsxMTEwIDExNzMgMTFCNTsKK0QyQzc7RDJDNzsxMTEwIDExNzMgMTFCNjtEMkM3OzExMTAgMTE3MyAxMUI2OworRDJDODtEMkM4OzExMTAgMTE3MyAxMUI3O0QyQzg7MTExMCAxMTczIDExQjc7CitEMkM5O0QyQzk7MTExMCAxMTczIDExQjg7RDJDOTsxMTEwIDExNzMgMTFCODsKK0QyQ0E7RDJDQTsxMTEwIDExNzMgMTFCOTtEMkNBOzExMTAgMTE3MyAxMUI5OworRDJDQjtEMkNCOzExMTAgMTE3MyAxMUJBO0QyQ0I7MTExMCAxMTczIDExQkE7CitEMkNDO0QyQ0M7MTExMCAxMTczIDExQkI7RDJDQzsxMTEwIDExNzMgMTFCQjsKK0QyQ0Q7RDJDRDsxMTEwIDExNzMgMTFCQztEMkNEOzExMTAgMTE3MyAxMUJDOworRDJDRTtEMkNFOzExMTAgMTE3MyAxMUJEO0QyQ0U7MTExMCAxMTczIDExQkQ7CitEMkNGO0QyQ0Y7MTExMCAxMTczIDExQkU7RDJDRjsxMTEwIDExNzMgMTFCRTsKK0QyRDA7RDJEMDsxMTEwIDExNzMgMTFCRjtEMkQwOzExMTAgMTE3MyAxMUJGOworRDJEMTtEMkQxOzExMTAgMTE3MyAxMUMwO0QyRDE7MTExMCAxMTczIDExQzA7CitEMkQyO0QyRDI7MTExMCAxMTczIDExQzE7RDJEMjsxMTEwIDExNzMgMTFDMTsKK0QyRDM7RDJEMzsxMTEwIDExNzMgMTFDMjtEMkQzOzExMTAgMTE3MyAxMUMyOworRDJENDtEMkQ0OzExMTAgMTE3NDtEMkQ0OzExMTAgMTE3NDsKK0QyRDU7RDJENTsxMTEwIDExNzQgMTFBODtEMkQ1OzExMTAgMTE3NCAxMUE4OworRDJENjtEMkQ2OzExMTAgMTE3NCAxMUE5O0QyRDY7MTExMCAxMTc0IDExQTk7CitEMkQ3O0QyRDc7MTExMCAxMTc0IDExQUE7RDJENzsxMTEwIDExNzQgMTFBQTsKK0QyRDg7RDJEODsxMTEwIDExNzQgMTFBQjtEMkQ4OzExMTAgMTE3NCAxMUFCOworRDJEOTtEMkQ5OzExMTAgMTE3NCAxMUFDO0QyRDk7MTExMCAxMTc0IDExQUM7CitEMkRBO0QyREE7MTExMCAxMTc0IDExQUQ7RDJEQTsxMTEwIDExNzQgMTFBRDsKK0QyREI7RDJEQjsxMTEwIDExNzQgMTFBRTtEMkRCOzExMTAgMTE3NCAxMUFFOworRDJEQztEMkRDOzExMTAgMTE3NCAxMUFGO0QyREM7MTExMCAxMTc0IDExQUY7CitEMkREO0QyREQ7MTExMCAxMTc0IDExQjA7RDJERDsxMTEwIDExNzQgMTFCMDsKK0QyREU7RDJERTsxMTEwIDExNzQgMTFCMTtEMkRFOzExMTAgMTE3NCAxMUIxOworRDJERjtEMkRGOzExMTAgMTE3NCAxMUIyO0QyREY7MTExMCAxMTc0IDExQjI7CitEMkUwO0QyRTA7MTExMCAxMTc0IDExQjM7RDJFMDsxMTEwIDExNzQgMTFCMzsKK0QyRTE7RDJFMTsxMTEwIDExNzQgMTFCNDtEMkUxOzExMTAgMTE3NCAxMUI0OworRDJFMjtEMkUyOzExMTAgMTE3NCAxMUI1O0QyRTI7MTExMCAxMTc0IDExQjU7CitEMkUzO0QyRTM7MTExMCAxMTc0IDExQjY7RDJFMzsxMTEwIDExNzQgMTFCNjsKK0QyRTQ7RDJFNDsxMTEwIDExNzQgMTFCNztEMkU0OzExMTAgMTE3NCAxMUI3OworRDJFNTtEMkU1OzExMTAgMTE3NCAxMUI4O0QyRTU7MTExMCAxMTc0IDExQjg7CitEMkU2O0QyRTY7MTExMCAxMTc0IDExQjk7RDJFNjsxMTEwIDExNzQgMTFCOTsKK0QyRTc7RDJFNzsxMTEwIDExNzQgMTFCQTtEMkU3OzExMTAgMTE3NCAxMUJBOworRDJFODtEMkU4OzExMTAgMTE3NCAxMUJCO0QyRTg7MTExMCAxMTc0IDExQkI7CitEMkU5O0QyRTk7MTExMCAxMTc0IDExQkM7RDJFOTsxMTEwIDExNzQgMTFCQzsKK0QyRUE7RDJFQTsxMTEwIDExNzQgMTFCRDtEMkVBOzExMTAgMTE3NCAxMUJEOworRDJFQjtEMkVCOzExMTAgMTE3NCAxMUJFO0QyRUI7MTExMCAxMTc0IDExQkU7CitEMkVDO0QyRUM7MTExMCAxMTc0IDExQkY7RDJFQzsxMTEwIDExNzQgMTFCRjsKK0QyRUQ7RDJFRDsxMTEwIDExNzQgMTFDMDtEMkVEOzExMTAgMTE3NCAxMUMwOworRDJFRTtEMkVFOzExMTAgMTE3NCAxMUMxO0QyRUU7MTExMCAxMTc0IDExQzE7CitEMkVGO0QyRUY7MTExMCAxMTc0IDExQzI7RDJFRjsxMTEwIDExNzQgMTFDMjsKK0QyRjA7RDJGMDsxMTEwIDExNzU7RDJGMDsxMTEwIDExNzU7CitEMkYxO0QyRjE7MTExMCAxMTc1IDExQTg7RDJGMTsxMTEwIDExNzUgMTFBODsKK0QyRjI7RDJGMjsxMTEwIDExNzUgMTFBOTtEMkYyOzExMTAgMTE3NSAxMUE5OworRDJGMztEMkYzOzExMTAgMTE3NSAxMUFBO0QyRjM7MTExMCAxMTc1IDExQUE7CitEMkY0O0QyRjQ7MTExMCAxMTc1IDExQUI7RDJGNDsxMTEwIDExNzUgMTFBQjsKK0QyRjU7RDJGNTsxMTEwIDExNzUgMTFBQztEMkY1OzExMTAgMTE3NSAxMUFDOworRDJGNjtEMkY2OzExMTAgMTE3NSAxMUFEO0QyRjY7MTExMCAxMTc1IDExQUQ7CitEMkY3O0QyRjc7MTExMCAxMTc1IDExQUU7RDJGNzsxMTEwIDExNzUgMTFBRTsKK0QyRjg7RDJGODsxMTEwIDExNzUgMTFBRjtEMkY4OzExMTAgMTE3NSAxMUFGOworRDJGOTtEMkY5OzExMTAgMTE3NSAxMUIwO0QyRjk7MTExMCAxMTc1IDExQjA7CitEMkZBO0QyRkE7MTExMCAxMTc1IDExQjE7RDJGQTsxMTEwIDExNzUgMTFCMTsKK0QyRkI7RDJGQjsxMTEwIDExNzUgMTFCMjtEMkZCOzExMTAgMTE3NSAxMUIyOworRDJGQztEMkZDOzExMTAgMTE3NSAxMUIzO0QyRkM7MTExMCAxMTc1IDExQjM7CitEMkZEO0QyRkQ7MTExMCAxMTc1IDExQjQ7RDJGRDsxMTEwIDExNzUgMTFCNDsKK0QyRkU7RDJGRTsxMTEwIDExNzUgMTFCNTtEMkZFOzExMTAgMTE3NSAxMUI1OworRDJGRjtEMkZGOzExMTAgMTE3NSAxMUI2O0QyRkY7MTExMCAxMTc1IDExQjY7CitEMzAwO0QzMDA7MTExMCAxMTc1IDExQjc7RDMwMDsxMTEwIDExNzUgMTFCNzsKK0QzMDE7RDMwMTsxMTEwIDExNzUgMTFCODtEMzAxOzExMTAgMTE3NSAxMUI4OworRDMwMjtEMzAyOzExMTAgMTE3NSAxMUI5O0QzMDI7MTExMCAxMTc1IDExQjk7CitEMzAzO0QzMDM7MTExMCAxMTc1IDExQkE7RDMwMzsxMTEwIDExNzUgMTFCQTsKK0QzMDQ7RDMwNDsxMTEwIDExNzUgMTFCQjtEMzA0OzExMTAgMTE3NSAxMUJCOworRDMwNTtEMzA1OzExMTAgMTE3NSAxMUJDO0QzMDU7MTExMCAxMTc1IDExQkM7CitEMzA2O0QzMDY7MTExMCAxMTc1IDExQkQ7RDMwNjsxMTEwIDExNzUgMTFCRDsKK0QzMDc7RDMwNzsxMTEwIDExNzUgMTFCRTtEMzA3OzExMTAgMTE3NSAxMUJFOworRDMwODtEMzA4OzExMTAgMTE3NSAxMUJGO0QzMDg7MTExMCAxMTc1IDExQkY7CitEMzA5O0QzMDk7MTExMCAxMTc1IDExQzA7RDMwOTsxMTEwIDExNzUgMTFDMDsKK0QzMEE7RDMwQTsxMTEwIDExNzUgMTFDMTtEMzBBOzExMTAgMTE3NSAxMUMxOworRDMwQjtEMzBCOzExMTAgMTE3NSAxMUMyO0QzMEI7MTExMCAxMTc1IDExQzI7CitEMzBDO0QzMEM7MTExMSAxMTYxO0QzMEM7MTExMSAxMTYxOworRDMwRDtEMzBEOzExMTEgMTE2MSAxMUE4O0QzMEQ7MTExMSAxMTYxIDExQTg7CitEMzBFO0QzMEU7MTExMSAxMTYxIDExQTk7RDMwRTsxMTExIDExNjEgMTFBOTsKK0QzMEY7RDMwRjsxMTExIDExNjEgMTFBQTtEMzBGOzExMTEgMTE2MSAxMUFBOworRDMxMDtEMzEwOzExMTEgMTE2MSAxMUFCO0QzMTA7MTExMSAxMTYxIDExQUI7CitEMzExO0QzMTE7MTExMSAxMTYxIDExQUM7RDMxMTsxMTExIDExNjEgMTFBQzsKK0QzMTI7RDMxMjsxMTExIDExNjEgMTFBRDtEMzEyOzExMTEgMTE2MSAxMUFEOworRDMxMztEMzEzOzExMTEgMTE2MSAxMUFFO0QzMTM7MTExMSAxMTYxIDExQUU7CitEMzE0O0QzMTQ7MTExMSAxMTYxIDExQUY7RDMxNDsxMTExIDExNjEgMTFBRjsKK0QzMTU7RDMxNTsxMTExIDExNjEgMTFCMDtEMzE1OzExMTEgMTE2MSAxMUIwOworRDMxNjtEMzE2OzExMTEgMTE2MSAxMUIxO0QzMTY7MTExMSAxMTYxIDExQjE7CitEMzE3O0QzMTc7MTExMSAxMTYxIDExQjI7RDMxNzsxMTExIDExNjEgMTFCMjsKK0QzMTg7RDMxODsxMTExIDExNjEgMTFCMztEMzE4OzExMTEgMTE2MSAxMUIzOworRDMxOTtEMzE5OzExMTEgMTE2MSAxMUI0O0QzMTk7MTExMSAxMTYxIDExQjQ7CitEMzFBO0QzMUE7MTExMSAxMTYxIDExQjU7RDMxQTsxMTExIDExNjEgMTFCNTsKK0QzMUI7RDMxQjsxMTExIDExNjEgMTFCNjtEMzFCOzExMTEgMTE2MSAxMUI2OworRDMxQztEMzFDOzExMTEgMTE2MSAxMUI3O0QzMUM7MTExMSAxMTYxIDExQjc7CitEMzFEO0QzMUQ7MTExMSAxMTYxIDExQjg7RDMxRDsxMTExIDExNjEgMTFCODsKK0QzMUU7RDMxRTsxMTExIDExNjEgMTFCOTtEMzFFOzExMTEgMTE2MSAxMUI5OworRDMxRjtEMzFGOzExMTEgMTE2MSAxMUJBO0QzMUY7MTExMSAxMTYxIDExQkE7CitEMzIwO0QzMjA7MTExMSAxMTYxIDExQkI7RDMyMDsxMTExIDExNjEgMTFCQjsKK0QzMjE7RDMyMTsxMTExIDExNjEgMTFCQztEMzIxOzExMTEgMTE2MSAxMUJDOworRDMyMjtEMzIyOzExMTEgMTE2MSAxMUJEO0QzMjI7MTExMSAxMTYxIDExQkQ7CitEMzIzO0QzMjM7MTExMSAxMTYxIDExQkU7RDMyMzsxMTExIDExNjEgMTFCRTsKK0QzMjQ7RDMyNDsxMTExIDExNjEgMTFCRjtEMzI0OzExMTEgMTE2MSAxMUJGOworRDMyNTtEMzI1OzExMTEgMTE2MSAxMUMwO0QzMjU7MTExMSAxMTYxIDExQzA7CitEMzI2O0QzMjY7MTExMSAxMTYxIDExQzE7RDMyNjsxMTExIDExNjEgMTFDMTsKK0QzMjc7RDMyNzsxMTExIDExNjEgMTFDMjtEMzI3OzExMTEgMTE2MSAxMUMyOworRDMyODtEMzI4OzExMTEgMTE2MjtEMzI4OzExMTEgMTE2MjsKK0QzMjk7RDMyOTsxMTExIDExNjIgMTFBODtEMzI5OzExMTEgMTE2MiAxMUE4OworRDMyQTtEMzJBOzExMTEgMTE2MiAxMUE5O0QzMkE7MTExMSAxMTYyIDExQTk7CitEMzJCO0QzMkI7MTExMSAxMTYyIDExQUE7RDMyQjsxMTExIDExNjIgMTFBQTsKK0QzMkM7RDMyQzsxMTExIDExNjIgMTFBQjtEMzJDOzExMTEgMTE2MiAxMUFCOworRDMyRDtEMzJEOzExMTEgMTE2MiAxMUFDO0QzMkQ7MTExMSAxMTYyIDExQUM7CitEMzJFO0QzMkU7MTExMSAxMTYyIDExQUQ7RDMyRTsxMTExIDExNjIgMTFBRDsKK0QzMkY7RDMyRjsxMTExIDExNjIgMTFBRTtEMzJGOzExMTEgMTE2MiAxMUFFOworRDMzMDtEMzMwOzExMTEgMTE2MiAxMUFGO0QzMzA7MTExMSAxMTYyIDExQUY7CitEMzMxO0QzMzE7MTExMSAxMTYyIDExQjA7RDMzMTsxMTExIDExNjIgMTFCMDsKK0QzMzI7RDMzMjsxMTExIDExNjIgMTFCMTtEMzMyOzExMTEgMTE2MiAxMUIxOworRDMzMztEMzMzOzExMTEgMTE2MiAxMUIyO0QzMzM7MTExMSAxMTYyIDExQjI7CitEMzM0O0QzMzQ7MTExMSAxMTYyIDExQjM7RDMzNDsxMTExIDExNjIgMTFCMzsKK0QzMzU7RDMzNTsxMTExIDExNjIgMTFCNDtEMzM1OzExMTEgMTE2MiAxMUI0OworRDMzNjtEMzM2OzExMTEgMTE2MiAxMUI1O0QzMzY7MTExMSAxMTYyIDExQjU7CitEMzM3O0QzMzc7MTExMSAxMTYyIDExQjY7RDMzNzsxMTExIDExNjIgMTFCNjsKK0QzMzg7RDMzODsxMTExIDExNjIgMTFCNztEMzM4OzExMTEgMTE2MiAxMUI3OworRDMzOTtEMzM5OzExMTEgMTE2MiAxMUI4O0QzMzk7MTExMSAxMTYyIDExQjg7CitEMzNBO0QzM0E7MTExMSAxMTYyIDExQjk7RDMzQTsxMTExIDExNjIgMTFCOTsKK0QzM0I7RDMzQjsxMTExIDExNjIgMTFCQTtEMzNCOzExMTEgMTE2MiAxMUJBOworRDMzQztEMzNDOzExMTEgMTE2MiAxMUJCO0QzM0M7MTExMSAxMTYyIDExQkI7CitEMzNEO0QzM0Q7MTExMSAxMTYyIDExQkM7RDMzRDsxMTExIDExNjIgMTFCQzsKK0QzM0U7RDMzRTsxMTExIDExNjIgMTFCRDtEMzNFOzExMTEgMTE2MiAxMUJEOworRDMzRjtEMzNGOzExMTEgMTE2MiAxMUJFO0QzM0Y7MTExMSAxMTYyIDExQkU7CitEMzQwO0QzNDA7MTExMSAxMTYyIDExQkY7RDM0MDsxMTExIDExNjIgMTFCRjsKK0QzNDE7RDM0MTsxMTExIDExNjIgMTFDMDtEMzQxOzExMTEgMTE2MiAxMUMwOworRDM0MjtEMzQyOzExMTEgMTE2MiAxMUMxO0QzNDI7MTExMSAxMTYyIDExQzE7CitEMzQzO0QzNDM7MTExMSAxMTYyIDExQzI7RDM0MzsxMTExIDExNjIgMTFDMjsKK0QzNDQ7RDM0NDsxMTExIDExNjM7RDM0NDsxMTExIDExNjM7CitEMzQ1O0QzNDU7MTExMSAxMTYzIDExQTg7RDM0NTsxMTExIDExNjMgMTFBODsKK0QzNDY7RDM0NjsxMTExIDExNjMgMTFBOTtEMzQ2OzExMTEgMTE2MyAxMUE5OworRDM0NztEMzQ3OzExMTEgMTE2MyAxMUFBO0QzNDc7MTExMSAxMTYzIDExQUE7CitEMzQ4O0QzNDg7MTExMSAxMTYzIDExQUI7RDM0ODsxMTExIDExNjMgMTFBQjsKK0QzNDk7RDM0OTsxMTExIDExNjMgMTFBQztEMzQ5OzExMTEgMTE2MyAxMUFDOworRDM0QTtEMzRBOzExMTEgMTE2MyAxMUFEO0QzNEE7MTExMSAxMTYzIDExQUQ7CitEMzRCO0QzNEI7MTExMSAxMTYzIDExQUU7RDM0QjsxMTExIDExNjMgMTFBRTsKK0QzNEM7RDM0QzsxMTExIDExNjMgMTFBRjtEMzRDOzExMTEgMTE2MyAxMUFGOworRDM0RDtEMzREOzExMTEgMTE2MyAxMUIwO0QzNEQ7MTExMSAxMTYzIDExQjA7CitEMzRFO0QzNEU7MTExMSAxMTYzIDExQjE7RDM0RTsxMTExIDExNjMgMTFCMTsKK0QzNEY7RDM0RjsxMTExIDExNjMgMTFCMjtEMzRGOzExMTEgMTE2MyAxMUIyOworRDM1MDtEMzUwOzExMTEgMTE2MyAxMUIzO0QzNTA7MTExMSAxMTYzIDExQjM7CitEMzUxO0QzNTE7MTExMSAxMTYzIDExQjQ7RDM1MTsxMTExIDExNjMgMTFCNDsKK0QzNTI7RDM1MjsxMTExIDExNjMgMTFCNTtEMzUyOzExMTEgMTE2MyAxMUI1OworRDM1MztEMzUzOzExMTEgMTE2MyAxMUI2O0QzNTM7MTExMSAxMTYzIDExQjY7CitEMzU0O0QzNTQ7MTExMSAxMTYzIDExQjc7RDM1NDsxMTExIDExNjMgMTFCNzsKK0QzNTU7RDM1NTsxMTExIDExNjMgMTFCODtEMzU1OzExMTEgMTE2MyAxMUI4OworRDM1NjtEMzU2OzExMTEgMTE2MyAxMUI5O0QzNTY7MTExMSAxMTYzIDExQjk7CitEMzU3O0QzNTc7MTExMSAxMTYzIDExQkE7RDM1NzsxMTExIDExNjMgMTFCQTsKK0QzNTg7RDM1ODsxMTExIDExNjMgMTFCQjtEMzU4OzExMTEgMTE2MyAxMUJCOworRDM1OTtEMzU5OzExMTEgMTE2MyAxMUJDO0QzNTk7MTExMSAxMTYzIDExQkM7CitEMzVBO0QzNUE7MTExMSAxMTYzIDExQkQ7RDM1QTsxMTExIDExNjMgMTFCRDsKK0QzNUI7RDM1QjsxMTExIDExNjMgMTFCRTtEMzVCOzExMTEgMTE2MyAxMUJFOworRDM1QztEMzVDOzExMTEgMTE2MyAxMUJGO0QzNUM7MTExMSAxMTYzIDExQkY7CitEMzVEO0QzNUQ7MTExMSAxMTYzIDExQzA7RDM1RDsxMTExIDExNjMgMTFDMDsKK0QzNUU7RDM1RTsxMTExIDExNjMgMTFDMTtEMzVFOzExMTEgMTE2MyAxMUMxOworRDM1RjtEMzVGOzExMTEgMTE2MyAxMUMyO0QzNUY7MTExMSAxMTYzIDExQzI7CitEMzYwO0QzNjA7MTExMSAxMTY0O0QzNjA7MTExMSAxMTY0OworRDM2MTtEMzYxOzExMTEgMTE2NCAxMUE4O0QzNjE7MTExMSAxMTY0IDExQTg7CitEMzYyO0QzNjI7MTExMSAxMTY0IDExQTk7RDM2MjsxMTExIDExNjQgMTFBOTsKK0QzNjM7RDM2MzsxMTExIDExNjQgMTFBQTtEMzYzOzExMTEgMTE2NCAxMUFBOworRDM2NDtEMzY0OzExMTEgMTE2NCAxMUFCO0QzNjQ7MTExMSAxMTY0IDExQUI7CitEMzY1O0QzNjU7MTExMSAxMTY0IDExQUM7RDM2NTsxMTExIDExNjQgMTFBQzsKK0QzNjY7RDM2NjsxMTExIDExNjQgMTFBRDtEMzY2OzExMTEgMTE2NCAxMUFEOworRDM2NztEMzY3OzExMTEgMTE2NCAxMUFFO0QzNjc7MTExMSAxMTY0IDExQUU7CitEMzY4O0QzNjg7MTExMSAxMTY0IDExQUY7RDM2ODsxMTExIDExNjQgMTFBRjsKK0QzNjk7RDM2OTsxMTExIDExNjQgMTFCMDtEMzY5OzExMTEgMTE2NCAxMUIwOworRDM2QTtEMzZBOzExMTEgMTE2NCAxMUIxO0QzNkE7MTExMSAxMTY0IDExQjE7CitEMzZCO0QzNkI7MTExMSAxMTY0IDExQjI7RDM2QjsxMTExIDExNjQgMTFCMjsKK0QzNkM7RDM2QzsxMTExIDExNjQgMTFCMztEMzZDOzExMTEgMTE2NCAxMUIzOworRDM2RDtEMzZEOzExMTEgMTE2NCAxMUI0O0QzNkQ7MTExMSAxMTY0IDExQjQ7CitEMzZFO0QzNkU7MTExMSAxMTY0IDExQjU7RDM2RTsxMTExIDExNjQgMTFCNTsKK0QzNkY7RDM2RjsxMTExIDExNjQgMTFCNjtEMzZGOzExMTEgMTE2NCAxMUI2OworRDM3MDtEMzcwOzExMTEgMTE2NCAxMUI3O0QzNzA7MTExMSAxMTY0IDExQjc7CitEMzcxO0QzNzE7MTExMSAxMTY0IDExQjg7RDM3MTsxMTExIDExNjQgMTFCODsKK0QzNzI7RDM3MjsxMTExIDExNjQgMTFCOTtEMzcyOzExMTEgMTE2NCAxMUI5OworRDM3MztEMzczOzExMTEgMTE2NCAxMUJBO0QzNzM7MTExMSAxMTY0IDExQkE7CitEMzc0O0QzNzQ7MTExMSAxMTY0IDExQkI7RDM3NDsxMTExIDExNjQgMTFCQjsKK0QzNzU7RDM3NTsxMTExIDExNjQgMTFCQztEMzc1OzExMTEgMTE2NCAxMUJDOworRDM3NjtEMzc2OzExMTEgMTE2NCAxMUJEO0QzNzY7MTExMSAxMTY0IDExQkQ7CitEMzc3O0QzNzc7MTExMSAxMTY0IDExQkU7RDM3NzsxMTExIDExNjQgMTFCRTsKK0QzNzg7RDM3ODsxMTExIDExNjQgMTFCRjtEMzc4OzExMTEgMTE2NCAxMUJGOworRDM3OTtEMzc5OzExMTEgMTE2NCAxMUMwO0QzNzk7MTExMSAxMTY0IDExQzA7CitEMzdBO0QzN0E7MTExMSAxMTY0IDExQzE7RDM3QTsxMTExIDExNjQgMTFDMTsKK0QzN0I7RDM3QjsxMTExIDExNjQgMTFDMjtEMzdCOzExMTEgMTE2NCAxMUMyOworRDM3QztEMzdDOzExMTEgMTE2NTtEMzdDOzExMTEgMTE2NTsKK0QzN0Q7RDM3RDsxMTExIDExNjUgMTFBODtEMzdEOzExMTEgMTE2NSAxMUE4OworRDM3RTtEMzdFOzExMTEgMTE2NSAxMUE5O0QzN0U7MTExMSAxMTY1IDExQTk7CitEMzdGO0QzN0Y7MTExMSAxMTY1IDExQUE7RDM3RjsxMTExIDExNjUgMTFBQTsKK0QzODA7RDM4MDsxMTExIDExNjUgMTFBQjtEMzgwOzExMTEgMTE2NSAxMUFCOworRDM4MTtEMzgxOzExMTEgMTE2NSAxMUFDO0QzODE7MTExMSAxMTY1IDExQUM7CitEMzgyO0QzODI7MTExMSAxMTY1IDExQUQ7RDM4MjsxMTExIDExNjUgMTFBRDsKK0QzODM7RDM4MzsxMTExIDExNjUgMTFBRTtEMzgzOzExMTEgMTE2NSAxMUFFOworRDM4NDtEMzg0OzExMTEgMTE2NSAxMUFGO0QzODQ7MTExMSAxMTY1IDExQUY7CitEMzg1O0QzODU7MTExMSAxMTY1IDExQjA7RDM4NTsxMTExIDExNjUgMTFCMDsKK0QzODY7RDM4NjsxMTExIDExNjUgMTFCMTtEMzg2OzExMTEgMTE2NSAxMUIxOworRDM4NztEMzg3OzExMTEgMTE2NSAxMUIyO0QzODc7MTExMSAxMTY1IDExQjI7CitEMzg4O0QzODg7MTExMSAxMTY1IDExQjM7RDM4ODsxMTExIDExNjUgMTFCMzsKK0QzODk7RDM4OTsxMTExIDExNjUgMTFCNDtEMzg5OzExMTEgMTE2NSAxMUI0OworRDM4QTtEMzhBOzExMTEgMTE2NSAxMUI1O0QzOEE7MTExMSAxMTY1IDExQjU7CitEMzhCO0QzOEI7MTExMSAxMTY1IDExQjY7RDM4QjsxMTExIDExNjUgMTFCNjsKK0QzOEM7RDM4QzsxMTExIDExNjUgMTFCNztEMzhDOzExMTEgMTE2NSAxMUI3OworRDM4RDtEMzhEOzExMTEgMTE2NSAxMUI4O0QzOEQ7MTExMSAxMTY1IDExQjg7CitEMzhFO0QzOEU7MTExMSAxMTY1IDExQjk7RDM4RTsxMTExIDExNjUgMTFCOTsKK0QzOEY7RDM4RjsxMTExIDExNjUgMTFCQTtEMzhGOzExMTEgMTE2NSAxMUJBOworRDM5MDtEMzkwOzExMTEgMTE2NSAxMUJCO0QzOTA7MTExMSAxMTY1IDExQkI7CitEMzkxO0QzOTE7MTExMSAxMTY1IDExQkM7RDM5MTsxMTExIDExNjUgMTFCQzsKK0QzOTI7RDM5MjsxMTExIDExNjUgMTFCRDtEMzkyOzExMTEgMTE2NSAxMUJEOworRDM5MztEMzkzOzExMTEgMTE2NSAxMUJFO0QzOTM7MTExMSAxMTY1IDExQkU7CitEMzk0O0QzOTQ7MTExMSAxMTY1IDExQkY7RDM5NDsxMTExIDExNjUgMTFCRjsKK0QzOTU7RDM5NTsxMTExIDExNjUgMTFDMDtEMzk1OzExMTEgMTE2NSAxMUMwOworRDM5NjtEMzk2OzExMTEgMTE2NSAxMUMxO0QzOTY7MTExMSAxMTY1IDExQzE7CitEMzk3O0QzOTc7MTExMSAxMTY1IDExQzI7RDM5NzsxMTExIDExNjUgMTFDMjsKK0QzOTg7RDM5ODsxMTExIDExNjY7RDM5ODsxMTExIDExNjY7CitEMzk5O0QzOTk7MTExMSAxMTY2IDExQTg7RDM5OTsxMTExIDExNjYgMTFBODsKK0QzOUE7RDM5QTsxMTExIDExNjYgMTFBOTtEMzlBOzExMTEgMTE2NiAxMUE5OworRDM5QjtEMzlCOzExMTEgMTE2NiAxMUFBO0QzOUI7MTExMSAxMTY2IDExQUE7CitEMzlDO0QzOUM7MTExMSAxMTY2IDExQUI7RDM5QzsxMTExIDExNjYgMTFBQjsKK0QzOUQ7RDM5RDsxMTExIDExNjYgMTFBQztEMzlEOzExMTEgMTE2NiAxMUFDOworRDM5RTtEMzlFOzExMTEgMTE2NiAxMUFEO0QzOUU7MTExMSAxMTY2IDExQUQ7CitEMzlGO0QzOUY7MTExMSAxMTY2IDExQUU7RDM5RjsxMTExIDExNjYgMTFBRTsKK0QzQTA7RDNBMDsxMTExIDExNjYgMTFBRjtEM0EwOzExMTEgMTE2NiAxMUFGOworRDNBMTtEM0ExOzExMTEgMTE2NiAxMUIwO0QzQTE7MTExMSAxMTY2IDExQjA7CitEM0EyO0QzQTI7MTExMSAxMTY2IDExQjE7RDNBMjsxMTExIDExNjYgMTFCMTsKK0QzQTM7RDNBMzsxMTExIDExNjYgMTFCMjtEM0EzOzExMTEgMTE2NiAxMUIyOworRDNBNDtEM0E0OzExMTEgMTE2NiAxMUIzO0QzQTQ7MTExMSAxMTY2IDExQjM7CitEM0E1O0QzQTU7MTExMSAxMTY2IDExQjQ7RDNBNTsxMTExIDExNjYgMTFCNDsKK0QzQTY7RDNBNjsxMTExIDExNjYgMTFCNTtEM0E2OzExMTEgMTE2NiAxMUI1OworRDNBNztEM0E3OzExMTEgMTE2NiAxMUI2O0QzQTc7MTExMSAxMTY2IDExQjY7CitEM0E4O0QzQTg7MTExMSAxMTY2IDExQjc7RDNBODsxMTExIDExNjYgMTFCNzsKK0QzQTk7RDNBOTsxMTExIDExNjYgMTFCODtEM0E5OzExMTEgMTE2NiAxMUI4OworRDNBQTtEM0FBOzExMTEgMTE2NiAxMUI5O0QzQUE7MTExMSAxMTY2IDExQjk7CitEM0FCO0QzQUI7MTExMSAxMTY2IDExQkE7RDNBQjsxMTExIDExNjYgMTFCQTsKK0QzQUM7RDNBQzsxMTExIDExNjYgMTFCQjtEM0FDOzExMTEgMTE2NiAxMUJCOworRDNBRDtEM0FEOzExMTEgMTE2NiAxMUJDO0QzQUQ7MTExMSAxMTY2IDExQkM7CitEM0FFO0QzQUU7MTExMSAxMTY2IDExQkQ7RDNBRTsxMTExIDExNjYgMTFCRDsKK0QzQUY7RDNBRjsxMTExIDExNjYgMTFCRTtEM0FGOzExMTEgMTE2NiAxMUJFOworRDNCMDtEM0IwOzExMTEgMTE2NiAxMUJGO0QzQjA7MTExMSAxMTY2IDExQkY7CitEM0IxO0QzQjE7MTExMSAxMTY2IDExQzA7RDNCMTsxMTExIDExNjYgMTFDMDsKK0QzQjI7RDNCMjsxMTExIDExNjYgMTFDMTtEM0IyOzExMTEgMTE2NiAxMUMxOworRDNCMztEM0IzOzExMTEgMTE2NiAxMUMyO0QzQjM7MTExMSAxMTY2IDExQzI7CitEM0I0O0QzQjQ7MTExMSAxMTY3O0QzQjQ7MTExMSAxMTY3OworRDNCNTtEM0I1OzExMTEgMTE2NyAxMUE4O0QzQjU7MTExMSAxMTY3IDExQTg7CitEM0I2O0QzQjY7MTExMSAxMTY3IDExQTk7RDNCNjsxMTExIDExNjcgMTFBOTsKK0QzQjc7RDNCNzsxMTExIDExNjcgMTFBQTtEM0I3OzExMTEgMTE2NyAxMUFBOworRDNCODtEM0I4OzExMTEgMTE2NyAxMUFCO0QzQjg7MTExMSAxMTY3IDExQUI7CitEM0I5O0QzQjk7MTExMSAxMTY3IDExQUM7RDNCOTsxMTExIDExNjcgMTFBQzsKK0QzQkE7RDNCQTsxMTExIDExNjcgMTFBRDtEM0JBOzExMTEgMTE2NyAxMUFEOworRDNCQjtEM0JCOzExMTEgMTE2NyAxMUFFO0QzQkI7MTExMSAxMTY3IDExQUU7CitEM0JDO0QzQkM7MTExMSAxMTY3IDExQUY7RDNCQzsxMTExIDExNjcgMTFBRjsKK0QzQkQ7RDNCRDsxMTExIDExNjcgMTFCMDtEM0JEOzExMTEgMTE2NyAxMUIwOworRDNCRTtEM0JFOzExMTEgMTE2NyAxMUIxO0QzQkU7MTExMSAxMTY3IDExQjE7CitEM0JGO0QzQkY7MTExMSAxMTY3IDExQjI7RDNCRjsxMTExIDExNjcgMTFCMjsKK0QzQzA7RDNDMDsxMTExIDExNjcgMTFCMztEM0MwOzExMTEgMTE2NyAxMUIzOworRDNDMTtEM0MxOzExMTEgMTE2NyAxMUI0O0QzQzE7MTExMSAxMTY3IDExQjQ7CitEM0MyO0QzQzI7MTExMSAxMTY3IDExQjU7RDNDMjsxMTExIDExNjcgMTFCNTsKK0QzQzM7RDNDMzsxMTExIDExNjcgMTFCNjtEM0MzOzExMTEgMTE2NyAxMUI2OworRDNDNDtEM0M0OzExMTEgMTE2NyAxMUI3O0QzQzQ7MTExMSAxMTY3IDExQjc7CitEM0M1O0QzQzU7MTExMSAxMTY3IDExQjg7RDNDNTsxMTExIDExNjcgMTFCODsKK0QzQzY7RDNDNjsxMTExIDExNjcgMTFCOTtEM0M2OzExMTEgMTE2NyAxMUI5OworRDNDNztEM0M3OzExMTEgMTE2NyAxMUJBO0QzQzc7MTExMSAxMTY3IDExQkE7CitEM0M4O0QzQzg7MTExMSAxMTY3IDExQkI7RDNDODsxMTExIDExNjcgMTFCQjsKK0QzQzk7RDNDOTsxMTExIDExNjcgMTFCQztEM0M5OzExMTEgMTE2NyAxMUJDOworRDNDQTtEM0NBOzExMTEgMTE2NyAxMUJEO0QzQ0E7MTExMSAxMTY3IDExQkQ7CitEM0NCO0QzQ0I7MTExMSAxMTY3IDExQkU7RDNDQjsxMTExIDExNjcgMTFCRTsKK0QzQ0M7RDNDQzsxMTExIDExNjcgMTFCRjtEM0NDOzExMTEgMTE2NyAxMUJGOworRDNDRDtEM0NEOzExMTEgMTE2NyAxMUMwO0QzQ0Q7MTExMSAxMTY3IDExQzA7CitEM0NFO0QzQ0U7MTExMSAxMTY3IDExQzE7RDNDRTsxMTExIDExNjcgMTFDMTsKK0QzQ0Y7RDNDRjsxMTExIDExNjcgMTFDMjtEM0NGOzExMTEgMTE2NyAxMUMyOworRDNEMDtEM0QwOzExMTEgMTE2ODtEM0QwOzExMTEgMTE2ODsKK0QzRDE7RDNEMTsxMTExIDExNjggMTFBODtEM0QxOzExMTEgMTE2OCAxMUE4OworRDNEMjtEM0QyOzExMTEgMTE2OCAxMUE5O0QzRDI7MTExMSAxMTY4IDExQTk7CitEM0QzO0QzRDM7MTExMSAxMTY4IDExQUE7RDNEMzsxMTExIDExNjggMTFBQTsKK0QzRDQ7RDNENDsxMTExIDExNjggMTFBQjtEM0Q0OzExMTEgMTE2OCAxMUFCOworRDNENTtEM0Q1OzExMTEgMTE2OCAxMUFDO0QzRDU7MTExMSAxMTY4IDExQUM7CitEM0Q2O0QzRDY7MTExMSAxMTY4IDExQUQ7RDNENjsxMTExIDExNjggMTFBRDsKK0QzRDc7RDNENzsxMTExIDExNjggMTFBRTtEM0Q3OzExMTEgMTE2OCAxMUFFOworRDNEODtEM0Q4OzExMTEgMTE2OCAxMUFGO0QzRDg7MTExMSAxMTY4IDExQUY7CitEM0Q5O0QzRDk7MTExMSAxMTY4IDExQjA7RDNEOTsxMTExIDExNjggMTFCMDsKK0QzREE7RDNEQTsxMTExIDExNjggMTFCMTtEM0RBOzExMTEgMTE2OCAxMUIxOworRDNEQjtEM0RCOzExMTEgMTE2OCAxMUIyO0QzREI7MTExMSAxMTY4IDExQjI7CitEM0RDO0QzREM7MTExMSAxMTY4IDExQjM7RDNEQzsxMTExIDExNjggMTFCMzsKK0QzREQ7RDNERDsxMTExIDExNjggMTFCNDtEM0REOzExMTEgMTE2OCAxMUI0OworRDNERTtEM0RFOzExMTEgMTE2OCAxMUI1O0QzREU7MTExMSAxMTY4IDExQjU7CitEM0RGO0QzREY7MTExMSAxMTY4IDExQjY7RDNERjsxMTExIDExNjggMTFCNjsKK0QzRTA7RDNFMDsxMTExIDExNjggMTFCNztEM0UwOzExMTEgMTE2OCAxMUI3OworRDNFMTtEM0UxOzExMTEgMTE2OCAxMUI4O0QzRTE7MTExMSAxMTY4IDExQjg7CitEM0UyO0QzRTI7MTExMSAxMTY4IDExQjk7RDNFMjsxMTExIDExNjggMTFCOTsKK0QzRTM7RDNFMzsxMTExIDExNjggMTFCQTtEM0UzOzExMTEgMTE2OCAxMUJBOworRDNFNDtEM0U0OzExMTEgMTE2OCAxMUJCO0QzRTQ7MTExMSAxMTY4IDExQkI7CitEM0U1O0QzRTU7MTExMSAxMTY4IDExQkM7RDNFNTsxMTExIDExNjggMTFCQzsKK0QzRTY7RDNFNjsxMTExIDExNjggMTFCRDtEM0U2OzExMTEgMTE2OCAxMUJEOworRDNFNztEM0U3OzExMTEgMTE2OCAxMUJFO0QzRTc7MTExMSAxMTY4IDExQkU7CitEM0U4O0QzRTg7MTExMSAxMTY4IDExQkY7RDNFODsxMTExIDExNjggMTFCRjsKK0QzRTk7RDNFOTsxMTExIDExNjggMTFDMDtEM0U5OzExMTEgMTE2OCAxMUMwOworRDNFQTtEM0VBOzExMTEgMTE2OCAxMUMxO0QzRUE7MTExMSAxMTY4IDExQzE7CitEM0VCO0QzRUI7MTExMSAxMTY4IDExQzI7RDNFQjsxMTExIDExNjggMTFDMjsKK0QzRUM7RDNFQzsxMTExIDExNjk7RDNFQzsxMTExIDExNjk7CitEM0VEO0QzRUQ7MTExMSAxMTY5IDExQTg7RDNFRDsxMTExIDExNjkgMTFBODsKK0QzRUU7RDNFRTsxMTExIDExNjkgMTFBOTtEM0VFOzExMTEgMTE2OSAxMUE5OworRDNFRjtEM0VGOzExMTEgMTE2OSAxMUFBO0QzRUY7MTExMSAxMTY5IDExQUE7CitEM0YwO0QzRjA7MTExMSAxMTY5IDExQUI7RDNGMDsxMTExIDExNjkgMTFBQjsKK0QzRjE7RDNGMTsxMTExIDExNjkgMTFBQztEM0YxOzExMTEgMTE2OSAxMUFDOworRDNGMjtEM0YyOzExMTEgMTE2OSAxMUFEO0QzRjI7MTExMSAxMTY5IDExQUQ7CitEM0YzO0QzRjM7MTExMSAxMTY5IDExQUU7RDNGMzsxMTExIDExNjkgMTFBRTsKK0QzRjQ7RDNGNDsxMTExIDExNjkgMTFBRjtEM0Y0OzExMTEgMTE2OSAxMUFGOworRDNGNTtEM0Y1OzExMTEgMTE2OSAxMUIwO0QzRjU7MTExMSAxMTY5IDExQjA7CitEM0Y2O0QzRjY7MTExMSAxMTY5IDExQjE7RDNGNjsxMTExIDExNjkgMTFCMTsKK0QzRjc7RDNGNzsxMTExIDExNjkgMTFCMjtEM0Y3OzExMTEgMTE2OSAxMUIyOworRDNGODtEM0Y4OzExMTEgMTE2OSAxMUIzO0QzRjg7MTExMSAxMTY5IDExQjM7CitEM0Y5O0QzRjk7MTExMSAxMTY5IDExQjQ7RDNGOTsxMTExIDExNjkgMTFCNDsKK0QzRkE7RDNGQTsxMTExIDExNjkgMTFCNTtEM0ZBOzExMTEgMTE2OSAxMUI1OworRDNGQjtEM0ZCOzExMTEgMTE2OSAxMUI2O0QzRkI7MTExMSAxMTY5IDExQjY7CitEM0ZDO0QzRkM7MTExMSAxMTY5IDExQjc7RDNGQzsxMTExIDExNjkgMTFCNzsKK0QzRkQ7RDNGRDsxMTExIDExNjkgMTFCODtEM0ZEOzExMTEgMTE2OSAxMUI4OworRDNGRTtEM0ZFOzExMTEgMTE2OSAxMUI5O0QzRkU7MTExMSAxMTY5IDExQjk7CitEM0ZGO0QzRkY7MTExMSAxMTY5IDExQkE7RDNGRjsxMTExIDExNjkgMTFCQTsKK0Q0MDA7RDQwMDsxMTExIDExNjkgMTFCQjtENDAwOzExMTEgMTE2OSAxMUJCOworRDQwMTtENDAxOzExMTEgMTE2OSAxMUJDO0Q0MDE7MTExMSAxMTY5IDExQkM7CitENDAyO0Q0MDI7MTExMSAxMTY5IDExQkQ7RDQwMjsxMTExIDExNjkgMTFCRDsKK0Q0MDM7RDQwMzsxMTExIDExNjkgMTFCRTtENDAzOzExMTEgMTE2OSAxMUJFOworRDQwNDtENDA0OzExMTEgMTE2OSAxMUJGO0Q0MDQ7MTExMSAxMTY5IDExQkY7CitENDA1O0Q0MDU7MTExMSAxMTY5IDExQzA7RDQwNTsxMTExIDExNjkgMTFDMDsKK0Q0MDY7RDQwNjsxMTExIDExNjkgMTFDMTtENDA2OzExMTEgMTE2OSAxMUMxOworRDQwNztENDA3OzExMTEgMTE2OSAxMUMyO0Q0MDc7MTExMSAxMTY5IDExQzI7CitENDA4O0Q0MDg7MTExMSAxMTZBO0Q0MDg7MTExMSAxMTZBOworRDQwOTtENDA5OzExMTEgMTE2QSAxMUE4O0Q0MDk7MTExMSAxMTZBIDExQTg7CitENDBBO0Q0MEE7MTExMSAxMTZBIDExQTk7RDQwQTsxMTExIDExNkEgMTFBOTsKK0Q0MEI7RDQwQjsxMTExIDExNkEgMTFBQTtENDBCOzExMTEgMTE2QSAxMUFBOworRDQwQztENDBDOzExMTEgMTE2QSAxMUFCO0Q0MEM7MTExMSAxMTZBIDExQUI7CitENDBEO0Q0MEQ7MTExMSAxMTZBIDExQUM7RDQwRDsxMTExIDExNkEgMTFBQzsKK0Q0MEU7RDQwRTsxMTExIDExNkEgMTFBRDtENDBFOzExMTEgMTE2QSAxMUFEOworRDQwRjtENDBGOzExMTEgMTE2QSAxMUFFO0Q0MEY7MTExMSAxMTZBIDExQUU7CitENDEwO0Q0MTA7MTExMSAxMTZBIDExQUY7RDQxMDsxMTExIDExNkEgMTFBRjsKK0Q0MTE7RDQxMTsxMTExIDExNkEgMTFCMDtENDExOzExMTEgMTE2QSAxMUIwOworRDQxMjtENDEyOzExMTEgMTE2QSAxMUIxO0Q0MTI7MTExMSAxMTZBIDExQjE7CitENDEzO0Q0MTM7MTExMSAxMTZBIDExQjI7RDQxMzsxMTExIDExNkEgMTFCMjsKK0Q0MTQ7RDQxNDsxMTExIDExNkEgMTFCMztENDE0OzExMTEgMTE2QSAxMUIzOworRDQxNTtENDE1OzExMTEgMTE2QSAxMUI0O0Q0MTU7MTExMSAxMTZBIDExQjQ7CitENDE2O0Q0MTY7MTExMSAxMTZBIDExQjU7RDQxNjsxMTExIDExNkEgMTFCNTsKK0Q0MTc7RDQxNzsxMTExIDExNkEgMTFCNjtENDE3OzExMTEgMTE2QSAxMUI2OworRDQxODtENDE4OzExMTEgMTE2QSAxMUI3O0Q0MTg7MTExMSAxMTZBIDExQjc7CitENDE5O0Q0MTk7MTExMSAxMTZBIDExQjg7RDQxOTsxMTExIDExNkEgMTFCODsKK0Q0MUE7RDQxQTsxMTExIDExNkEgMTFCOTtENDFBOzExMTEgMTE2QSAxMUI5OworRDQxQjtENDFCOzExMTEgMTE2QSAxMUJBO0Q0MUI7MTExMSAxMTZBIDExQkE7CitENDFDO0Q0MUM7MTExMSAxMTZBIDExQkI7RDQxQzsxMTExIDExNkEgMTFCQjsKK0Q0MUQ7RDQxRDsxMTExIDExNkEgMTFCQztENDFEOzExMTEgMTE2QSAxMUJDOworRDQxRTtENDFFOzExMTEgMTE2QSAxMUJEO0Q0MUU7MTExMSAxMTZBIDExQkQ7CitENDFGO0Q0MUY7MTExMSAxMTZBIDExQkU7RDQxRjsxMTExIDExNkEgMTFCRTsKK0Q0MjA7RDQyMDsxMTExIDExNkEgMTFCRjtENDIwOzExMTEgMTE2QSAxMUJGOworRDQyMTtENDIxOzExMTEgMTE2QSAxMUMwO0Q0MjE7MTExMSAxMTZBIDExQzA7CitENDIyO0Q0MjI7MTExMSAxMTZBIDExQzE7RDQyMjsxMTExIDExNkEgMTFDMTsKK0Q0MjM7RDQyMzsxMTExIDExNkEgMTFDMjtENDIzOzExMTEgMTE2QSAxMUMyOworRDQyNDtENDI0OzExMTEgMTE2QjtENDI0OzExMTEgMTE2QjsKK0Q0MjU7RDQyNTsxMTExIDExNkIgMTFBODtENDI1OzExMTEgMTE2QiAxMUE4OworRDQyNjtENDI2OzExMTEgMTE2QiAxMUE5O0Q0MjY7MTExMSAxMTZCIDExQTk7CitENDI3O0Q0Mjc7MTExMSAxMTZCIDExQUE7RDQyNzsxMTExIDExNkIgMTFBQTsKK0Q0Mjg7RDQyODsxMTExIDExNkIgMTFBQjtENDI4OzExMTEgMTE2QiAxMUFCOworRDQyOTtENDI5OzExMTEgMTE2QiAxMUFDO0Q0Mjk7MTExMSAxMTZCIDExQUM7CitENDJBO0Q0MkE7MTExMSAxMTZCIDExQUQ7RDQyQTsxMTExIDExNkIgMTFBRDsKK0Q0MkI7RDQyQjsxMTExIDExNkIgMTFBRTtENDJCOzExMTEgMTE2QiAxMUFFOworRDQyQztENDJDOzExMTEgMTE2QiAxMUFGO0Q0MkM7MTExMSAxMTZCIDExQUY7CitENDJEO0Q0MkQ7MTExMSAxMTZCIDExQjA7RDQyRDsxMTExIDExNkIgMTFCMDsKK0Q0MkU7RDQyRTsxMTExIDExNkIgMTFCMTtENDJFOzExMTEgMTE2QiAxMUIxOworRDQyRjtENDJGOzExMTEgMTE2QiAxMUIyO0Q0MkY7MTExMSAxMTZCIDExQjI7CitENDMwO0Q0MzA7MTExMSAxMTZCIDExQjM7RDQzMDsxMTExIDExNkIgMTFCMzsKK0Q0MzE7RDQzMTsxMTExIDExNkIgMTFCNDtENDMxOzExMTEgMTE2QiAxMUI0OworRDQzMjtENDMyOzExMTEgMTE2QiAxMUI1O0Q0MzI7MTExMSAxMTZCIDExQjU7CitENDMzO0Q0MzM7MTExMSAxMTZCIDExQjY7RDQzMzsxMTExIDExNkIgMTFCNjsKK0Q0MzQ7RDQzNDsxMTExIDExNkIgMTFCNztENDM0OzExMTEgMTE2QiAxMUI3OworRDQzNTtENDM1OzExMTEgMTE2QiAxMUI4O0Q0MzU7MTExMSAxMTZCIDExQjg7CitENDM2O0Q0MzY7MTExMSAxMTZCIDExQjk7RDQzNjsxMTExIDExNkIgMTFCOTsKK0Q0Mzc7RDQzNzsxMTExIDExNkIgMTFCQTtENDM3OzExMTEgMTE2QiAxMUJBOworRDQzODtENDM4OzExMTEgMTE2QiAxMUJCO0Q0Mzg7MTExMSAxMTZCIDExQkI7CitENDM5O0Q0Mzk7MTExMSAxMTZCIDExQkM7RDQzOTsxMTExIDExNkIgMTFCQzsKK0Q0M0E7RDQzQTsxMTExIDExNkIgMTFCRDtENDNBOzExMTEgMTE2QiAxMUJEOworRDQzQjtENDNCOzExMTEgMTE2QiAxMUJFO0Q0M0I7MTExMSAxMTZCIDExQkU7CitENDNDO0Q0M0M7MTExMSAxMTZCIDExQkY7RDQzQzsxMTExIDExNkIgMTFCRjsKK0Q0M0Q7RDQzRDsxMTExIDExNkIgMTFDMDtENDNEOzExMTEgMTE2QiAxMUMwOworRDQzRTtENDNFOzExMTEgMTE2QiAxMUMxO0Q0M0U7MTExMSAxMTZCIDExQzE7CitENDNGO0Q0M0Y7MTExMSAxMTZCIDExQzI7RDQzRjsxMTExIDExNkIgMTFDMjsKK0Q0NDA7RDQ0MDsxMTExIDExNkM7RDQ0MDsxMTExIDExNkM7CitENDQxO0Q0NDE7MTExMSAxMTZDIDExQTg7RDQ0MTsxMTExIDExNkMgMTFBODsKK0Q0NDI7RDQ0MjsxMTExIDExNkMgMTFBOTtENDQyOzExMTEgMTE2QyAxMUE5OworRDQ0MztENDQzOzExMTEgMTE2QyAxMUFBO0Q0NDM7MTExMSAxMTZDIDExQUE7CitENDQ0O0Q0NDQ7MTExMSAxMTZDIDExQUI7RDQ0NDsxMTExIDExNkMgMTFBQjsKK0Q0NDU7RDQ0NTsxMTExIDExNkMgMTFBQztENDQ1OzExMTEgMTE2QyAxMUFDOworRDQ0NjtENDQ2OzExMTEgMTE2QyAxMUFEO0Q0NDY7MTExMSAxMTZDIDExQUQ7CitENDQ3O0Q0NDc7MTExMSAxMTZDIDExQUU7RDQ0NzsxMTExIDExNkMgMTFBRTsKK0Q0NDg7RDQ0ODsxMTExIDExNkMgMTFBRjtENDQ4OzExMTEgMTE2QyAxMUFGOworRDQ0OTtENDQ5OzExMTEgMTE2QyAxMUIwO0Q0NDk7MTExMSAxMTZDIDExQjA7CitENDRBO0Q0NEE7MTExMSAxMTZDIDExQjE7RDQ0QTsxMTExIDExNkMgMTFCMTsKK0Q0NEI7RDQ0QjsxMTExIDExNkMgMTFCMjtENDRCOzExMTEgMTE2QyAxMUIyOworRDQ0QztENDRDOzExMTEgMTE2QyAxMUIzO0Q0NEM7MTExMSAxMTZDIDExQjM7CitENDREO0Q0NEQ7MTExMSAxMTZDIDExQjQ7RDQ0RDsxMTExIDExNkMgMTFCNDsKK0Q0NEU7RDQ0RTsxMTExIDExNkMgMTFCNTtENDRFOzExMTEgMTE2QyAxMUI1OworRDQ0RjtENDRGOzExMTEgMTE2QyAxMUI2O0Q0NEY7MTExMSAxMTZDIDExQjY7CitENDUwO0Q0NTA7MTExMSAxMTZDIDExQjc7RDQ1MDsxMTExIDExNkMgMTFCNzsKK0Q0NTE7RDQ1MTsxMTExIDExNkMgMTFCODtENDUxOzExMTEgMTE2QyAxMUI4OworRDQ1MjtENDUyOzExMTEgMTE2QyAxMUI5O0Q0NTI7MTExMSAxMTZDIDExQjk7CitENDUzO0Q0NTM7MTExMSAxMTZDIDExQkE7RDQ1MzsxMTExIDExNkMgMTFCQTsKK0Q0NTQ7RDQ1NDsxMTExIDExNkMgMTFCQjtENDU0OzExMTEgMTE2QyAxMUJCOworRDQ1NTtENDU1OzExMTEgMTE2QyAxMUJDO0Q0NTU7MTExMSAxMTZDIDExQkM7CitENDU2O0Q0NTY7MTExMSAxMTZDIDExQkQ7RDQ1NjsxMTExIDExNkMgMTFCRDsKK0Q0NTc7RDQ1NzsxMTExIDExNkMgMTFCRTtENDU3OzExMTEgMTE2QyAxMUJFOworRDQ1ODtENDU4OzExMTEgMTE2QyAxMUJGO0Q0NTg7MTExMSAxMTZDIDExQkY7CitENDU5O0Q0NTk7MTExMSAxMTZDIDExQzA7RDQ1OTsxMTExIDExNkMgMTFDMDsKK0Q0NUE7RDQ1QTsxMTExIDExNkMgMTFDMTtENDVBOzExMTEgMTE2QyAxMUMxOworRDQ1QjtENDVCOzExMTEgMTE2QyAxMUMyO0Q0NUI7MTExMSAxMTZDIDExQzI7CitENDVDO0Q0NUM7MTExMSAxMTZEO0Q0NUM7MTExMSAxMTZEOworRDQ1RDtENDVEOzExMTEgMTE2RCAxMUE4O0Q0NUQ7MTExMSAxMTZEIDExQTg7CitENDVFO0Q0NUU7MTExMSAxMTZEIDExQTk7RDQ1RTsxMTExIDExNkQgMTFBOTsKK0Q0NUY7RDQ1RjsxMTExIDExNkQgMTFBQTtENDVGOzExMTEgMTE2RCAxMUFBOworRDQ2MDtENDYwOzExMTEgMTE2RCAxMUFCO0Q0NjA7MTExMSAxMTZEIDExQUI7CitENDYxO0Q0NjE7MTExMSAxMTZEIDExQUM7RDQ2MTsxMTExIDExNkQgMTFBQzsKK0Q0NjI7RDQ2MjsxMTExIDExNkQgMTFBRDtENDYyOzExMTEgMTE2RCAxMUFEOworRDQ2MztENDYzOzExMTEgMTE2RCAxMUFFO0Q0NjM7MTExMSAxMTZEIDExQUU7CitENDY0O0Q0NjQ7MTExMSAxMTZEIDExQUY7RDQ2NDsxMTExIDExNkQgMTFBRjsKK0Q0NjU7RDQ2NTsxMTExIDExNkQgMTFCMDtENDY1OzExMTEgMTE2RCAxMUIwOworRDQ2NjtENDY2OzExMTEgMTE2RCAxMUIxO0Q0NjY7MTExMSAxMTZEIDExQjE7CitENDY3O0Q0Njc7MTExMSAxMTZEIDExQjI7RDQ2NzsxMTExIDExNkQgMTFCMjsKK0Q0Njg7RDQ2ODsxMTExIDExNkQgMTFCMztENDY4OzExMTEgMTE2RCAxMUIzOworRDQ2OTtENDY5OzExMTEgMTE2RCAxMUI0O0Q0Njk7MTExMSAxMTZEIDExQjQ7CitENDZBO0Q0NkE7MTExMSAxMTZEIDExQjU7RDQ2QTsxMTExIDExNkQgMTFCNTsKK0Q0NkI7RDQ2QjsxMTExIDExNkQgMTFCNjtENDZCOzExMTEgMTE2RCAxMUI2OworRDQ2QztENDZDOzExMTEgMTE2RCAxMUI3O0Q0NkM7MTExMSAxMTZEIDExQjc7CitENDZEO0Q0NkQ7MTExMSAxMTZEIDExQjg7RDQ2RDsxMTExIDExNkQgMTFCODsKK0Q0NkU7RDQ2RTsxMTExIDExNkQgMTFCOTtENDZFOzExMTEgMTE2RCAxMUI5OworRDQ2RjtENDZGOzExMTEgMTE2RCAxMUJBO0Q0NkY7MTExMSAxMTZEIDExQkE7CitENDcwO0Q0NzA7MTExMSAxMTZEIDExQkI7RDQ3MDsxMTExIDExNkQgMTFCQjsKK0Q0NzE7RDQ3MTsxMTExIDExNkQgMTFCQztENDcxOzExMTEgMTE2RCAxMUJDOworRDQ3MjtENDcyOzExMTEgMTE2RCAxMUJEO0Q0NzI7MTExMSAxMTZEIDExQkQ7CitENDczO0Q0NzM7MTExMSAxMTZEIDExQkU7RDQ3MzsxMTExIDExNkQgMTFCRTsKK0Q0NzQ7RDQ3NDsxMTExIDExNkQgMTFCRjtENDc0OzExMTEgMTE2RCAxMUJGOworRDQ3NTtENDc1OzExMTEgMTE2RCAxMUMwO0Q0NzU7MTExMSAxMTZEIDExQzA7CitENDc2O0Q0NzY7MTExMSAxMTZEIDExQzE7RDQ3NjsxMTExIDExNkQgMTFDMTsKK0Q0Nzc7RDQ3NzsxMTExIDExNkQgMTFDMjtENDc3OzExMTEgMTE2RCAxMUMyOworRDQ3ODtENDc4OzExMTEgMTE2RTtENDc4OzExMTEgMTE2RTsKK0Q0Nzk7RDQ3OTsxMTExIDExNkUgMTFBODtENDc5OzExMTEgMTE2RSAxMUE4OworRDQ3QTtENDdBOzExMTEgMTE2RSAxMUE5O0Q0N0E7MTExMSAxMTZFIDExQTk7CitENDdCO0Q0N0I7MTExMSAxMTZFIDExQUE7RDQ3QjsxMTExIDExNkUgMTFBQTsKK0Q0N0M7RDQ3QzsxMTExIDExNkUgMTFBQjtENDdDOzExMTEgMTE2RSAxMUFCOworRDQ3RDtENDdEOzExMTEgMTE2RSAxMUFDO0Q0N0Q7MTExMSAxMTZFIDExQUM7CitENDdFO0Q0N0U7MTExMSAxMTZFIDExQUQ7RDQ3RTsxMTExIDExNkUgMTFBRDsKK0Q0N0Y7RDQ3RjsxMTExIDExNkUgMTFBRTtENDdGOzExMTEgMTE2RSAxMUFFOworRDQ4MDtENDgwOzExMTEgMTE2RSAxMUFGO0Q0ODA7MTExMSAxMTZFIDExQUY7CitENDgxO0Q0ODE7MTExMSAxMTZFIDExQjA7RDQ4MTsxMTExIDExNkUgMTFCMDsKK0Q0ODI7RDQ4MjsxMTExIDExNkUgMTFCMTtENDgyOzExMTEgMTE2RSAxMUIxOworRDQ4MztENDgzOzExMTEgMTE2RSAxMUIyO0Q0ODM7MTExMSAxMTZFIDExQjI7CitENDg0O0Q0ODQ7MTExMSAxMTZFIDExQjM7RDQ4NDsxMTExIDExNkUgMTFCMzsKK0Q0ODU7RDQ4NTsxMTExIDExNkUgMTFCNDtENDg1OzExMTEgMTE2RSAxMUI0OworRDQ4NjtENDg2OzExMTEgMTE2RSAxMUI1O0Q0ODY7MTExMSAxMTZFIDExQjU7CitENDg3O0Q0ODc7MTExMSAxMTZFIDExQjY7RDQ4NzsxMTExIDExNkUgMTFCNjsKK0Q0ODg7RDQ4ODsxMTExIDExNkUgMTFCNztENDg4OzExMTEgMTE2RSAxMUI3OworRDQ4OTtENDg5OzExMTEgMTE2RSAxMUI4O0Q0ODk7MTExMSAxMTZFIDExQjg7CitENDhBO0Q0OEE7MTExMSAxMTZFIDExQjk7RDQ4QTsxMTExIDExNkUgMTFCOTsKK0Q0OEI7RDQ4QjsxMTExIDExNkUgMTFCQTtENDhCOzExMTEgMTE2RSAxMUJBOworRDQ4QztENDhDOzExMTEgMTE2RSAxMUJCO0Q0OEM7MTExMSAxMTZFIDExQkI7CitENDhEO0Q0OEQ7MTExMSAxMTZFIDExQkM7RDQ4RDsxMTExIDExNkUgMTFCQzsKK0Q0OEU7RDQ4RTsxMTExIDExNkUgMTFCRDtENDhFOzExMTEgMTE2RSAxMUJEOworRDQ4RjtENDhGOzExMTEgMTE2RSAxMUJFO0Q0OEY7MTExMSAxMTZFIDExQkU7CitENDkwO0Q0OTA7MTExMSAxMTZFIDExQkY7RDQ5MDsxMTExIDExNkUgMTFCRjsKK0Q0OTE7RDQ5MTsxMTExIDExNkUgMTFDMDtENDkxOzExMTEgMTE2RSAxMUMwOworRDQ5MjtENDkyOzExMTEgMTE2RSAxMUMxO0Q0OTI7MTExMSAxMTZFIDExQzE7CitENDkzO0Q0OTM7MTExMSAxMTZFIDExQzI7RDQ5MzsxMTExIDExNkUgMTFDMjsKK0Q0OTQ7RDQ5NDsxMTExIDExNkY7RDQ5NDsxMTExIDExNkY7CitENDk1O0Q0OTU7MTExMSAxMTZGIDExQTg7RDQ5NTsxMTExIDExNkYgMTFBODsKK0Q0OTY7RDQ5NjsxMTExIDExNkYgMTFBOTtENDk2OzExMTEgMTE2RiAxMUE5OworRDQ5NztENDk3OzExMTEgMTE2RiAxMUFBO0Q0OTc7MTExMSAxMTZGIDExQUE7CitENDk4O0Q0OTg7MTExMSAxMTZGIDExQUI7RDQ5ODsxMTExIDExNkYgMTFBQjsKK0Q0OTk7RDQ5OTsxMTExIDExNkYgMTFBQztENDk5OzExMTEgMTE2RiAxMUFDOworRDQ5QTtENDlBOzExMTEgMTE2RiAxMUFEO0Q0OUE7MTExMSAxMTZGIDExQUQ7CitENDlCO0Q0OUI7MTExMSAxMTZGIDExQUU7RDQ5QjsxMTExIDExNkYgMTFBRTsKK0Q0OUM7RDQ5QzsxMTExIDExNkYgMTFBRjtENDlDOzExMTEgMTE2RiAxMUFGOworRDQ5RDtENDlEOzExMTEgMTE2RiAxMUIwO0Q0OUQ7MTExMSAxMTZGIDExQjA7CitENDlFO0Q0OUU7MTExMSAxMTZGIDExQjE7RDQ5RTsxMTExIDExNkYgMTFCMTsKK0Q0OUY7RDQ5RjsxMTExIDExNkYgMTFCMjtENDlGOzExMTEgMTE2RiAxMUIyOworRDRBMDtENEEwOzExMTEgMTE2RiAxMUIzO0Q0QTA7MTExMSAxMTZGIDExQjM7CitENEExO0Q0QTE7MTExMSAxMTZGIDExQjQ7RDRBMTsxMTExIDExNkYgMTFCNDsKK0Q0QTI7RDRBMjsxMTExIDExNkYgMTFCNTtENEEyOzExMTEgMTE2RiAxMUI1OworRDRBMztENEEzOzExMTEgMTE2RiAxMUI2O0Q0QTM7MTExMSAxMTZGIDExQjY7CitENEE0O0Q0QTQ7MTExMSAxMTZGIDExQjc7RDRBNDsxMTExIDExNkYgMTFCNzsKK0Q0QTU7RDRBNTsxMTExIDExNkYgMTFCODtENEE1OzExMTEgMTE2RiAxMUI4OworRDRBNjtENEE2OzExMTEgMTE2RiAxMUI5O0Q0QTY7MTExMSAxMTZGIDExQjk7CitENEE3O0Q0QTc7MTExMSAxMTZGIDExQkE7RDRBNzsxMTExIDExNkYgMTFCQTsKK0Q0QTg7RDRBODsxMTExIDExNkYgMTFCQjtENEE4OzExMTEgMTE2RiAxMUJCOworRDRBOTtENEE5OzExMTEgMTE2RiAxMUJDO0Q0QTk7MTExMSAxMTZGIDExQkM7CitENEFBO0Q0QUE7MTExMSAxMTZGIDExQkQ7RDRBQTsxMTExIDExNkYgMTFCRDsKK0Q0QUI7RDRBQjsxMTExIDExNkYgMTFCRTtENEFCOzExMTEgMTE2RiAxMUJFOworRDRBQztENEFDOzExMTEgMTE2RiAxMUJGO0Q0QUM7MTExMSAxMTZGIDExQkY7CitENEFEO0Q0QUQ7MTExMSAxMTZGIDExQzA7RDRBRDsxMTExIDExNkYgMTFDMDsKK0Q0QUU7RDRBRTsxMTExIDExNkYgMTFDMTtENEFFOzExMTEgMTE2RiAxMUMxOworRDRBRjtENEFGOzExMTEgMTE2RiAxMUMyO0Q0QUY7MTExMSAxMTZGIDExQzI7CitENEIwO0Q0QjA7MTExMSAxMTcwO0Q0QjA7MTExMSAxMTcwOworRDRCMTtENEIxOzExMTEgMTE3MCAxMUE4O0Q0QjE7MTExMSAxMTcwIDExQTg7CitENEIyO0Q0QjI7MTExMSAxMTcwIDExQTk7RDRCMjsxMTExIDExNzAgMTFBOTsKK0Q0QjM7RDRCMzsxMTExIDExNzAgMTFBQTtENEIzOzExMTEgMTE3MCAxMUFBOworRDRCNDtENEI0OzExMTEgMTE3MCAxMUFCO0Q0QjQ7MTExMSAxMTcwIDExQUI7CitENEI1O0Q0QjU7MTExMSAxMTcwIDExQUM7RDRCNTsxMTExIDExNzAgMTFBQzsKK0Q0QjY7RDRCNjsxMTExIDExNzAgMTFBRDtENEI2OzExMTEgMTE3MCAxMUFEOworRDRCNztENEI3OzExMTEgMTE3MCAxMUFFO0Q0Qjc7MTExMSAxMTcwIDExQUU7CitENEI4O0Q0Qjg7MTExMSAxMTcwIDExQUY7RDRCODsxMTExIDExNzAgMTFBRjsKK0Q0Qjk7RDRCOTsxMTExIDExNzAgMTFCMDtENEI5OzExMTEgMTE3MCAxMUIwOworRDRCQTtENEJBOzExMTEgMTE3MCAxMUIxO0Q0QkE7MTExMSAxMTcwIDExQjE7CitENEJCO0Q0QkI7MTExMSAxMTcwIDExQjI7RDRCQjsxMTExIDExNzAgMTFCMjsKK0Q0QkM7RDRCQzsxMTExIDExNzAgMTFCMztENEJDOzExMTEgMTE3MCAxMUIzOworRDRCRDtENEJEOzExMTEgMTE3MCAxMUI0O0Q0QkQ7MTExMSAxMTcwIDExQjQ7CitENEJFO0Q0QkU7MTExMSAxMTcwIDExQjU7RDRCRTsxMTExIDExNzAgMTFCNTsKK0Q0QkY7RDRCRjsxMTExIDExNzAgMTFCNjtENEJGOzExMTEgMTE3MCAxMUI2OworRDRDMDtENEMwOzExMTEgMTE3MCAxMUI3O0Q0QzA7MTExMSAxMTcwIDExQjc7CitENEMxO0Q0QzE7MTExMSAxMTcwIDExQjg7RDRDMTsxMTExIDExNzAgMTFCODsKK0Q0QzI7RDRDMjsxMTExIDExNzAgMTFCOTtENEMyOzExMTEgMTE3MCAxMUI5OworRDRDMztENEMzOzExMTEgMTE3MCAxMUJBO0Q0QzM7MTExMSAxMTcwIDExQkE7CitENEM0O0Q0QzQ7MTExMSAxMTcwIDExQkI7RDRDNDsxMTExIDExNzAgMTFCQjsKK0Q0QzU7RDRDNTsxMTExIDExNzAgMTFCQztENEM1OzExMTEgMTE3MCAxMUJDOworRDRDNjtENEM2OzExMTEgMTE3MCAxMUJEO0Q0QzY7MTExMSAxMTcwIDExQkQ7CitENEM3O0Q0Qzc7MTExMSAxMTcwIDExQkU7RDRDNzsxMTExIDExNzAgMTFCRTsKK0Q0Qzg7RDRDODsxMTExIDExNzAgMTFCRjtENEM4OzExMTEgMTE3MCAxMUJGOworRDRDOTtENEM5OzExMTEgMTE3MCAxMUMwO0Q0Qzk7MTExMSAxMTcwIDExQzA7CitENENBO0Q0Q0E7MTExMSAxMTcwIDExQzE7RDRDQTsxMTExIDExNzAgMTFDMTsKK0Q0Q0I7RDRDQjsxMTExIDExNzAgMTFDMjtENENCOzExMTEgMTE3MCAxMUMyOworRDRDQztENENDOzExMTEgMTE3MTtENENDOzExMTEgMTE3MTsKK0Q0Q0Q7RDRDRDsxMTExIDExNzEgMTFBODtENENEOzExMTEgMTE3MSAxMUE4OworRDRDRTtENENFOzExMTEgMTE3MSAxMUE5O0Q0Q0U7MTExMSAxMTcxIDExQTk7CitENENGO0Q0Q0Y7MTExMSAxMTcxIDExQUE7RDRDRjsxMTExIDExNzEgMTFBQTsKK0Q0RDA7RDREMDsxMTExIDExNzEgMTFBQjtENEQwOzExMTEgMTE3MSAxMUFCOworRDREMTtENEQxOzExMTEgMTE3MSAxMUFDO0Q0RDE7MTExMSAxMTcxIDExQUM7CitENEQyO0Q0RDI7MTExMSAxMTcxIDExQUQ7RDREMjsxMTExIDExNzEgMTFBRDsKK0Q0RDM7RDREMzsxMTExIDExNzEgMTFBRTtENEQzOzExMTEgMTE3MSAxMUFFOworRDRENDtENEQ0OzExMTEgMTE3MSAxMUFGO0Q0RDQ7MTExMSAxMTcxIDExQUY7CitENEQ1O0Q0RDU7MTExMSAxMTcxIDExQjA7RDRENTsxMTExIDExNzEgMTFCMDsKK0Q0RDY7RDRENjsxMTExIDExNzEgMTFCMTtENEQ2OzExMTEgMTE3MSAxMUIxOworRDRENztENEQ3OzExMTEgMTE3MSAxMUIyO0Q0RDc7MTExMSAxMTcxIDExQjI7CitENEQ4O0Q0RDg7MTExMSAxMTcxIDExQjM7RDREODsxMTExIDExNzEgMTFCMzsKK0Q0RDk7RDREOTsxMTExIDExNzEgMTFCNDtENEQ5OzExMTEgMTE3MSAxMUI0OworRDREQTtENERBOzExMTEgMTE3MSAxMUI1O0Q0REE7MTExMSAxMTcxIDExQjU7CitENERCO0Q0REI7MTExMSAxMTcxIDExQjY7RDREQjsxMTExIDExNzEgMTFCNjsKK0Q0REM7RDREQzsxMTExIDExNzEgMTFCNztENERDOzExMTEgMTE3MSAxMUI3OworRDRERDtENEREOzExMTEgMTE3MSAxMUI4O0Q0REQ7MTExMSAxMTcxIDExQjg7CitENERFO0Q0REU7MTExMSAxMTcxIDExQjk7RDRERTsxMTExIDExNzEgMTFCOTsKK0Q0REY7RDRERjsxMTExIDExNzEgMTFCQTtENERGOzExMTEgMTE3MSAxMUJBOworRDRFMDtENEUwOzExMTEgMTE3MSAxMUJCO0Q0RTA7MTExMSAxMTcxIDExQkI7CitENEUxO0Q0RTE7MTExMSAxMTcxIDExQkM7RDRFMTsxMTExIDExNzEgMTFCQzsKK0Q0RTI7RDRFMjsxMTExIDExNzEgMTFCRDtENEUyOzExMTEgMTE3MSAxMUJEOworRDRFMztENEUzOzExMTEgMTE3MSAxMUJFO0Q0RTM7MTExMSAxMTcxIDExQkU7CitENEU0O0Q0RTQ7MTExMSAxMTcxIDExQkY7RDRFNDsxMTExIDExNzEgMTFCRjsKK0Q0RTU7RDRFNTsxMTExIDExNzEgMTFDMDtENEU1OzExMTEgMTE3MSAxMUMwOworRDRFNjtENEU2OzExMTEgMTE3MSAxMUMxO0Q0RTY7MTExMSAxMTcxIDExQzE7CitENEU3O0Q0RTc7MTExMSAxMTcxIDExQzI7RDRFNzsxMTExIDExNzEgMTFDMjsKK0Q0RTg7RDRFODsxMTExIDExNzI7RDRFODsxMTExIDExNzI7CitENEU5O0Q0RTk7MTExMSAxMTcyIDExQTg7RDRFOTsxMTExIDExNzIgMTFBODsKK0Q0RUE7RDRFQTsxMTExIDExNzIgMTFBOTtENEVBOzExMTEgMTE3MiAxMUE5OworRDRFQjtENEVCOzExMTEgMTE3MiAxMUFBO0Q0RUI7MTExMSAxMTcyIDExQUE7CitENEVDO0Q0RUM7MTExMSAxMTcyIDExQUI7RDRFQzsxMTExIDExNzIgMTFBQjsKK0Q0RUQ7RDRFRDsxMTExIDExNzIgMTFBQztENEVEOzExMTEgMTE3MiAxMUFDOworRDRFRTtENEVFOzExMTEgMTE3MiAxMUFEO0Q0RUU7MTExMSAxMTcyIDExQUQ7CitENEVGO0Q0RUY7MTExMSAxMTcyIDExQUU7RDRFRjsxMTExIDExNzIgMTFBRTsKK0Q0RjA7RDRGMDsxMTExIDExNzIgMTFBRjtENEYwOzExMTEgMTE3MiAxMUFGOworRDRGMTtENEYxOzExMTEgMTE3MiAxMUIwO0Q0RjE7MTExMSAxMTcyIDExQjA7CitENEYyO0Q0RjI7MTExMSAxMTcyIDExQjE7RDRGMjsxMTExIDExNzIgMTFCMTsKK0Q0RjM7RDRGMzsxMTExIDExNzIgMTFCMjtENEYzOzExMTEgMTE3MiAxMUIyOworRDRGNDtENEY0OzExMTEgMTE3MiAxMUIzO0Q0RjQ7MTExMSAxMTcyIDExQjM7CitENEY1O0Q0RjU7MTExMSAxMTcyIDExQjQ7RDRGNTsxMTExIDExNzIgMTFCNDsKK0Q0RjY7RDRGNjsxMTExIDExNzIgMTFCNTtENEY2OzExMTEgMTE3MiAxMUI1OworRDRGNztENEY3OzExMTEgMTE3MiAxMUI2O0Q0Rjc7MTExMSAxMTcyIDExQjY7CitENEY4O0Q0Rjg7MTExMSAxMTcyIDExQjc7RDRGODsxMTExIDExNzIgMTFCNzsKK0Q0Rjk7RDRGOTsxMTExIDExNzIgMTFCODtENEY5OzExMTEgMTE3MiAxMUI4OworRDRGQTtENEZBOzExMTEgMTE3MiAxMUI5O0Q0RkE7MTExMSAxMTcyIDExQjk7CitENEZCO0Q0RkI7MTExMSAxMTcyIDExQkE7RDRGQjsxMTExIDExNzIgMTFCQTsKK0Q0RkM7RDRGQzsxMTExIDExNzIgMTFCQjtENEZDOzExMTEgMTE3MiAxMUJCOworRDRGRDtENEZEOzExMTEgMTE3MiAxMUJDO0Q0RkQ7MTExMSAxMTcyIDExQkM7CitENEZFO0Q0RkU7MTExMSAxMTcyIDExQkQ7RDRGRTsxMTExIDExNzIgMTFCRDsKK0Q0RkY7RDRGRjsxMTExIDExNzIgMTFCRTtENEZGOzExMTEgMTE3MiAxMUJFOworRDUwMDtENTAwOzExMTEgMTE3MiAxMUJGO0Q1MDA7MTExMSAxMTcyIDExQkY7CitENTAxO0Q1MDE7MTExMSAxMTcyIDExQzA7RDUwMTsxMTExIDExNzIgMTFDMDsKK0Q1MDI7RDUwMjsxMTExIDExNzIgMTFDMTtENTAyOzExMTEgMTE3MiAxMUMxOworRDUwMztENTAzOzExMTEgMTE3MiAxMUMyO0Q1MDM7MTExMSAxMTcyIDExQzI7CitENTA0O0Q1MDQ7MTExMSAxMTczO0Q1MDQ7MTExMSAxMTczOworRDUwNTtENTA1OzExMTEgMTE3MyAxMUE4O0Q1MDU7MTExMSAxMTczIDExQTg7CitENTA2O0Q1MDY7MTExMSAxMTczIDExQTk7RDUwNjsxMTExIDExNzMgMTFBOTsKK0Q1MDc7RDUwNzsxMTExIDExNzMgMTFBQTtENTA3OzExMTEgMTE3MyAxMUFBOworRDUwODtENTA4OzExMTEgMTE3MyAxMUFCO0Q1MDg7MTExMSAxMTczIDExQUI7CitENTA5O0Q1MDk7MTExMSAxMTczIDExQUM7RDUwOTsxMTExIDExNzMgMTFBQzsKK0Q1MEE7RDUwQTsxMTExIDExNzMgMTFBRDtENTBBOzExMTEgMTE3MyAxMUFEOworRDUwQjtENTBCOzExMTEgMTE3MyAxMUFFO0Q1MEI7MTExMSAxMTczIDExQUU7CitENTBDO0Q1MEM7MTExMSAxMTczIDExQUY7RDUwQzsxMTExIDExNzMgMTFBRjsKK0Q1MEQ7RDUwRDsxMTExIDExNzMgMTFCMDtENTBEOzExMTEgMTE3MyAxMUIwOworRDUwRTtENTBFOzExMTEgMTE3MyAxMUIxO0Q1MEU7MTExMSAxMTczIDExQjE7CitENTBGO0Q1MEY7MTExMSAxMTczIDExQjI7RDUwRjsxMTExIDExNzMgMTFCMjsKK0Q1MTA7RDUxMDsxMTExIDExNzMgMTFCMztENTEwOzExMTEgMTE3MyAxMUIzOworRDUxMTtENTExOzExMTEgMTE3MyAxMUI0O0Q1MTE7MTExMSAxMTczIDExQjQ7CitENTEyO0Q1MTI7MTExMSAxMTczIDExQjU7RDUxMjsxMTExIDExNzMgMTFCNTsKK0Q1MTM7RDUxMzsxMTExIDExNzMgMTFCNjtENTEzOzExMTEgMTE3MyAxMUI2OworRDUxNDtENTE0OzExMTEgMTE3MyAxMUI3O0Q1MTQ7MTExMSAxMTczIDExQjc7CitENTE1O0Q1MTU7MTExMSAxMTczIDExQjg7RDUxNTsxMTExIDExNzMgMTFCODsKK0Q1MTY7RDUxNjsxMTExIDExNzMgMTFCOTtENTE2OzExMTEgMTE3MyAxMUI5OworRDUxNztENTE3OzExMTEgMTE3MyAxMUJBO0Q1MTc7MTExMSAxMTczIDExQkE7CitENTE4O0Q1MTg7MTExMSAxMTczIDExQkI7RDUxODsxMTExIDExNzMgMTFCQjsKK0Q1MTk7RDUxOTsxMTExIDExNzMgMTFCQztENTE5OzExMTEgMTE3MyAxMUJDOworRDUxQTtENTFBOzExMTEgMTE3MyAxMUJEO0Q1MUE7MTExMSAxMTczIDExQkQ7CitENTFCO0Q1MUI7MTExMSAxMTczIDExQkU7RDUxQjsxMTExIDExNzMgMTFCRTsKK0Q1MUM7RDUxQzsxMTExIDExNzMgMTFCRjtENTFDOzExMTEgMTE3MyAxMUJGOworRDUxRDtENTFEOzExMTEgMTE3MyAxMUMwO0Q1MUQ7MTExMSAxMTczIDExQzA7CitENTFFO0Q1MUU7MTExMSAxMTczIDExQzE7RDUxRTsxMTExIDExNzMgMTFDMTsKK0Q1MUY7RDUxRjsxMTExIDExNzMgMTFDMjtENTFGOzExMTEgMTE3MyAxMUMyOworRDUyMDtENTIwOzExMTEgMTE3NDtENTIwOzExMTEgMTE3NDsKK0Q1MjE7RDUyMTsxMTExIDExNzQgMTFBODtENTIxOzExMTEgMTE3NCAxMUE4OworRDUyMjtENTIyOzExMTEgMTE3NCAxMUE5O0Q1MjI7MTExMSAxMTc0IDExQTk7CitENTIzO0Q1MjM7MTExMSAxMTc0IDExQUE7RDUyMzsxMTExIDExNzQgMTFBQTsKK0Q1MjQ7RDUyNDsxMTExIDExNzQgMTFBQjtENTI0OzExMTEgMTE3NCAxMUFCOworRDUyNTtENTI1OzExMTEgMTE3NCAxMUFDO0Q1MjU7MTExMSAxMTc0IDExQUM7CitENTI2O0Q1MjY7MTExMSAxMTc0IDExQUQ7RDUyNjsxMTExIDExNzQgMTFBRDsKK0Q1Mjc7RDUyNzsxMTExIDExNzQgMTFBRTtENTI3OzExMTEgMTE3NCAxMUFFOworRDUyODtENTI4OzExMTEgMTE3NCAxMUFGO0Q1Mjg7MTExMSAxMTc0IDExQUY7CitENTI5O0Q1Mjk7MTExMSAxMTc0IDExQjA7RDUyOTsxMTExIDExNzQgMTFCMDsKK0Q1MkE7RDUyQTsxMTExIDExNzQgMTFCMTtENTJBOzExMTEgMTE3NCAxMUIxOworRDUyQjtENTJCOzExMTEgMTE3NCAxMUIyO0Q1MkI7MTExMSAxMTc0IDExQjI7CitENTJDO0Q1MkM7MTExMSAxMTc0IDExQjM7RDUyQzsxMTExIDExNzQgMTFCMzsKK0Q1MkQ7RDUyRDsxMTExIDExNzQgMTFCNDtENTJEOzExMTEgMTE3NCAxMUI0OworRDUyRTtENTJFOzExMTEgMTE3NCAxMUI1O0Q1MkU7MTExMSAxMTc0IDExQjU7CitENTJGO0Q1MkY7MTExMSAxMTc0IDExQjY7RDUyRjsxMTExIDExNzQgMTFCNjsKK0Q1MzA7RDUzMDsxMTExIDExNzQgMTFCNztENTMwOzExMTEgMTE3NCAxMUI3OworRDUzMTtENTMxOzExMTEgMTE3NCAxMUI4O0Q1MzE7MTExMSAxMTc0IDExQjg7CitENTMyO0Q1MzI7MTExMSAxMTc0IDExQjk7RDUzMjsxMTExIDExNzQgMTFCOTsKK0Q1MzM7RDUzMzsxMTExIDExNzQgMTFCQTtENTMzOzExMTEgMTE3NCAxMUJBOworRDUzNDtENTM0OzExMTEgMTE3NCAxMUJCO0Q1MzQ7MTExMSAxMTc0IDExQkI7CitENTM1O0Q1MzU7MTExMSAxMTc0IDExQkM7RDUzNTsxMTExIDExNzQgMTFCQzsKK0Q1MzY7RDUzNjsxMTExIDExNzQgMTFCRDtENTM2OzExMTEgMTE3NCAxMUJEOworRDUzNztENTM3OzExMTEgMTE3NCAxMUJFO0Q1Mzc7MTExMSAxMTc0IDExQkU7CitENTM4O0Q1Mzg7MTExMSAxMTc0IDExQkY7RDUzODsxMTExIDExNzQgMTFCRjsKK0Q1Mzk7RDUzOTsxMTExIDExNzQgMTFDMDtENTM5OzExMTEgMTE3NCAxMUMwOworRDUzQTtENTNBOzExMTEgMTE3NCAxMUMxO0Q1M0E7MTExMSAxMTc0IDExQzE7CitENTNCO0Q1M0I7MTExMSAxMTc0IDExQzI7RDUzQjsxMTExIDExNzQgMTFDMjsKK0Q1M0M7RDUzQzsxMTExIDExNzU7RDUzQzsxMTExIDExNzU7CitENTNEO0Q1M0Q7MTExMSAxMTc1IDExQTg7RDUzRDsxMTExIDExNzUgMTFBODsKK0Q1M0U7RDUzRTsxMTExIDExNzUgMTFBOTtENTNFOzExMTEgMTE3NSAxMUE5OworRDUzRjtENTNGOzExMTEgMTE3NSAxMUFBO0Q1M0Y7MTExMSAxMTc1IDExQUE7CitENTQwO0Q1NDA7MTExMSAxMTc1IDExQUI7RDU0MDsxMTExIDExNzUgMTFBQjsKK0Q1NDE7RDU0MTsxMTExIDExNzUgMTFBQztENTQxOzExMTEgMTE3NSAxMUFDOworRDU0MjtENTQyOzExMTEgMTE3NSAxMUFEO0Q1NDI7MTExMSAxMTc1IDExQUQ7CitENTQzO0Q1NDM7MTExMSAxMTc1IDExQUU7RDU0MzsxMTExIDExNzUgMTFBRTsKK0Q1NDQ7RDU0NDsxMTExIDExNzUgMTFBRjtENTQ0OzExMTEgMTE3NSAxMUFGOworRDU0NTtENTQ1OzExMTEgMTE3NSAxMUIwO0Q1NDU7MTExMSAxMTc1IDExQjA7CitENTQ2O0Q1NDY7MTExMSAxMTc1IDExQjE7RDU0NjsxMTExIDExNzUgMTFCMTsKK0Q1NDc7RDU0NzsxMTExIDExNzUgMTFCMjtENTQ3OzExMTEgMTE3NSAxMUIyOworRDU0ODtENTQ4OzExMTEgMTE3NSAxMUIzO0Q1NDg7MTExMSAxMTc1IDExQjM7CitENTQ5O0Q1NDk7MTExMSAxMTc1IDExQjQ7RDU0OTsxMTExIDExNzUgMTFCNDsKK0Q1NEE7RDU0QTsxMTExIDExNzUgMTFCNTtENTRBOzExMTEgMTE3NSAxMUI1OworRDU0QjtENTRCOzExMTEgMTE3NSAxMUI2O0Q1NEI7MTExMSAxMTc1IDExQjY7CitENTRDO0Q1NEM7MTExMSAxMTc1IDExQjc7RDU0QzsxMTExIDExNzUgMTFCNzsKK0Q1NEQ7RDU0RDsxMTExIDExNzUgMTFCODtENTREOzExMTEgMTE3NSAxMUI4OworRDU0RTtENTRFOzExMTEgMTE3NSAxMUI5O0Q1NEU7MTExMSAxMTc1IDExQjk7CitENTRGO0Q1NEY7MTExMSAxMTc1IDExQkE7RDU0RjsxMTExIDExNzUgMTFCQTsKK0Q1NTA7RDU1MDsxMTExIDExNzUgMTFCQjtENTUwOzExMTEgMTE3NSAxMUJCOworRDU1MTtENTUxOzExMTEgMTE3NSAxMUJDO0Q1NTE7MTExMSAxMTc1IDExQkM7CitENTUyO0Q1NTI7MTExMSAxMTc1IDExQkQ7RDU1MjsxMTExIDExNzUgMTFCRDsKK0Q1NTM7RDU1MzsxMTExIDExNzUgMTFCRTtENTUzOzExMTEgMTE3NSAxMUJFOworRDU1NDtENTU0OzExMTEgMTE3NSAxMUJGO0Q1NTQ7MTExMSAxMTc1IDExQkY7CitENTU1O0Q1NTU7MTExMSAxMTc1IDExQzA7RDU1NTsxMTExIDExNzUgMTFDMDsKK0Q1NTY7RDU1NjsxMTExIDExNzUgMTFDMTtENTU2OzExMTEgMTE3NSAxMUMxOworRDU1NztENTU3OzExMTEgMTE3NSAxMUMyO0Q1NTc7MTExMSAxMTc1IDExQzI7CitENTU4O0Q1NTg7MTExMiAxMTYxO0Q1NTg7MTExMiAxMTYxOworRDU1OTtENTU5OzExMTIgMTE2MSAxMUE4O0Q1NTk7MTExMiAxMTYxIDExQTg7CitENTVBO0Q1NUE7MTExMiAxMTYxIDExQTk7RDU1QTsxMTEyIDExNjEgMTFBOTsKK0Q1NUI7RDU1QjsxMTEyIDExNjEgMTFBQTtENTVCOzExMTIgMTE2MSAxMUFBOworRDU1QztENTVDOzExMTIgMTE2MSAxMUFCO0Q1NUM7MTExMiAxMTYxIDExQUI7CitENTVEO0Q1NUQ7MTExMiAxMTYxIDExQUM7RDU1RDsxMTEyIDExNjEgMTFBQzsKK0Q1NUU7RDU1RTsxMTEyIDExNjEgMTFBRDtENTVFOzExMTIgMTE2MSAxMUFEOworRDU1RjtENTVGOzExMTIgMTE2MSAxMUFFO0Q1NUY7MTExMiAxMTYxIDExQUU7CitENTYwO0Q1NjA7MTExMiAxMTYxIDExQUY7RDU2MDsxMTEyIDExNjEgMTFBRjsKK0Q1NjE7RDU2MTsxMTEyIDExNjEgMTFCMDtENTYxOzExMTIgMTE2MSAxMUIwOworRDU2MjtENTYyOzExMTIgMTE2MSAxMUIxO0Q1NjI7MTExMiAxMTYxIDExQjE7CitENTYzO0Q1NjM7MTExMiAxMTYxIDExQjI7RDU2MzsxMTEyIDExNjEgMTFCMjsKK0Q1NjQ7RDU2NDsxMTEyIDExNjEgMTFCMztENTY0OzExMTIgMTE2MSAxMUIzOworRDU2NTtENTY1OzExMTIgMTE2MSAxMUI0O0Q1NjU7MTExMiAxMTYxIDExQjQ7CitENTY2O0Q1NjY7MTExMiAxMTYxIDExQjU7RDU2NjsxMTEyIDExNjEgMTFCNTsKK0Q1Njc7RDU2NzsxMTEyIDExNjEgMTFCNjtENTY3OzExMTIgMTE2MSAxMUI2OworRDU2ODtENTY4OzExMTIgMTE2MSAxMUI3O0Q1Njg7MTExMiAxMTYxIDExQjc7CitENTY5O0Q1Njk7MTExMiAxMTYxIDExQjg7RDU2OTsxMTEyIDExNjEgMTFCODsKK0Q1NkE7RDU2QTsxMTEyIDExNjEgMTFCOTtENTZBOzExMTIgMTE2MSAxMUI5OworRDU2QjtENTZCOzExMTIgMTE2MSAxMUJBO0Q1NkI7MTExMiAxMTYxIDExQkE7CitENTZDO0Q1NkM7MTExMiAxMTYxIDExQkI7RDU2QzsxMTEyIDExNjEgMTFCQjsKK0Q1NkQ7RDU2RDsxMTEyIDExNjEgMTFCQztENTZEOzExMTIgMTE2MSAxMUJDOworRDU2RTtENTZFOzExMTIgMTE2MSAxMUJEO0Q1NkU7MTExMiAxMTYxIDExQkQ7CitENTZGO0Q1NkY7MTExMiAxMTYxIDExQkU7RDU2RjsxMTEyIDExNjEgMTFCRTsKK0Q1NzA7RDU3MDsxMTEyIDExNjEgMTFCRjtENTcwOzExMTIgMTE2MSAxMUJGOworRDU3MTtENTcxOzExMTIgMTE2MSAxMUMwO0Q1NzE7MTExMiAxMTYxIDExQzA7CitENTcyO0Q1NzI7MTExMiAxMTYxIDExQzE7RDU3MjsxMTEyIDExNjEgMTFDMTsKK0Q1NzM7RDU3MzsxMTEyIDExNjEgMTFDMjtENTczOzExMTIgMTE2MSAxMUMyOworRDU3NDtENTc0OzExMTIgMTE2MjtENTc0OzExMTIgMTE2MjsKK0Q1NzU7RDU3NTsxMTEyIDExNjIgMTFBODtENTc1OzExMTIgMTE2MiAxMUE4OworRDU3NjtENTc2OzExMTIgMTE2MiAxMUE5O0Q1NzY7MTExMiAxMTYyIDExQTk7CitENTc3O0Q1Nzc7MTExMiAxMTYyIDExQUE7RDU3NzsxMTEyIDExNjIgMTFBQTsKK0Q1Nzg7RDU3ODsxMTEyIDExNjIgMTFBQjtENTc4OzExMTIgMTE2MiAxMUFCOworRDU3OTtENTc5OzExMTIgMTE2MiAxMUFDO0Q1Nzk7MTExMiAxMTYyIDExQUM7CitENTdBO0Q1N0E7MTExMiAxMTYyIDExQUQ7RDU3QTsxMTEyIDExNjIgMTFBRDsKK0Q1N0I7RDU3QjsxMTEyIDExNjIgMTFBRTtENTdCOzExMTIgMTE2MiAxMUFFOworRDU3QztENTdDOzExMTIgMTE2MiAxMUFGO0Q1N0M7MTExMiAxMTYyIDExQUY7CitENTdEO0Q1N0Q7MTExMiAxMTYyIDExQjA7RDU3RDsxMTEyIDExNjIgMTFCMDsKK0Q1N0U7RDU3RTsxMTEyIDExNjIgMTFCMTtENTdFOzExMTIgMTE2MiAxMUIxOworRDU3RjtENTdGOzExMTIgMTE2MiAxMUIyO0Q1N0Y7MTExMiAxMTYyIDExQjI7CitENTgwO0Q1ODA7MTExMiAxMTYyIDExQjM7RDU4MDsxMTEyIDExNjIgMTFCMzsKK0Q1ODE7RDU4MTsxMTEyIDExNjIgMTFCNDtENTgxOzExMTIgMTE2MiAxMUI0OworRDU4MjtENTgyOzExMTIgMTE2MiAxMUI1O0Q1ODI7MTExMiAxMTYyIDExQjU7CitENTgzO0Q1ODM7MTExMiAxMTYyIDExQjY7RDU4MzsxMTEyIDExNjIgMTFCNjsKK0Q1ODQ7RDU4NDsxMTEyIDExNjIgMTFCNztENTg0OzExMTIgMTE2MiAxMUI3OworRDU4NTtENTg1OzExMTIgMTE2MiAxMUI4O0Q1ODU7MTExMiAxMTYyIDExQjg7CitENTg2O0Q1ODY7MTExMiAxMTYyIDExQjk7RDU4NjsxMTEyIDExNjIgMTFCOTsKK0Q1ODc7RDU4NzsxMTEyIDExNjIgMTFCQTtENTg3OzExMTIgMTE2MiAxMUJBOworRDU4ODtENTg4OzExMTIgMTE2MiAxMUJCO0Q1ODg7MTExMiAxMTYyIDExQkI7CitENTg5O0Q1ODk7MTExMiAxMTYyIDExQkM7RDU4OTsxMTEyIDExNjIgMTFCQzsKK0Q1OEE7RDU4QTsxMTEyIDExNjIgMTFCRDtENThBOzExMTIgMTE2MiAxMUJEOworRDU4QjtENThCOzExMTIgMTE2MiAxMUJFO0Q1OEI7MTExMiAxMTYyIDExQkU7CitENThDO0Q1OEM7MTExMiAxMTYyIDExQkY7RDU4QzsxMTEyIDExNjIgMTFCRjsKK0Q1OEQ7RDU4RDsxMTEyIDExNjIgMTFDMDtENThEOzExMTIgMTE2MiAxMUMwOworRDU4RTtENThFOzExMTIgMTE2MiAxMUMxO0Q1OEU7MTExMiAxMTYyIDExQzE7CitENThGO0Q1OEY7MTExMiAxMTYyIDExQzI7RDU4RjsxMTEyIDExNjIgMTFDMjsKK0Q1OTA7RDU5MDsxMTEyIDExNjM7RDU5MDsxMTEyIDExNjM7CitENTkxO0Q1OTE7MTExMiAxMTYzIDExQTg7RDU5MTsxMTEyIDExNjMgMTFBODsKK0Q1OTI7RDU5MjsxMTEyIDExNjMgMTFBOTtENTkyOzExMTIgMTE2MyAxMUE5OworRDU5MztENTkzOzExMTIgMTE2MyAxMUFBO0Q1OTM7MTExMiAxMTYzIDExQUE7CitENTk0O0Q1OTQ7MTExMiAxMTYzIDExQUI7RDU5NDsxMTEyIDExNjMgMTFBQjsKK0Q1OTU7RDU5NTsxMTEyIDExNjMgMTFBQztENTk1OzExMTIgMTE2MyAxMUFDOworRDU5NjtENTk2OzExMTIgMTE2MyAxMUFEO0Q1OTY7MTExMiAxMTYzIDExQUQ7CitENTk3O0Q1OTc7MTExMiAxMTYzIDExQUU7RDU5NzsxMTEyIDExNjMgMTFBRTsKK0Q1OTg7RDU5ODsxMTEyIDExNjMgMTFBRjtENTk4OzExMTIgMTE2MyAxMUFGOworRDU5OTtENTk5OzExMTIgMTE2MyAxMUIwO0Q1OTk7MTExMiAxMTYzIDExQjA7CitENTlBO0Q1OUE7MTExMiAxMTYzIDExQjE7RDU5QTsxMTEyIDExNjMgMTFCMTsKK0Q1OUI7RDU5QjsxMTEyIDExNjMgMTFCMjtENTlCOzExMTIgMTE2MyAxMUIyOworRDU5QztENTlDOzExMTIgMTE2MyAxMUIzO0Q1OUM7MTExMiAxMTYzIDExQjM7CitENTlEO0Q1OUQ7MTExMiAxMTYzIDExQjQ7RDU5RDsxMTEyIDExNjMgMTFCNDsKK0Q1OUU7RDU5RTsxMTEyIDExNjMgMTFCNTtENTlFOzExMTIgMTE2MyAxMUI1OworRDU5RjtENTlGOzExMTIgMTE2MyAxMUI2O0Q1OUY7MTExMiAxMTYzIDExQjY7CitENUEwO0Q1QTA7MTExMiAxMTYzIDExQjc7RDVBMDsxMTEyIDExNjMgMTFCNzsKK0Q1QTE7RDVBMTsxMTEyIDExNjMgMTFCODtENUExOzExMTIgMTE2MyAxMUI4OworRDVBMjtENUEyOzExMTIgMTE2MyAxMUI5O0Q1QTI7MTExMiAxMTYzIDExQjk7CitENUEzO0Q1QTM7MTExMiAxMTYzIDExQkE7RDVBMzsxMTEyIDExNjMgMTFCQTsKK0Q1QTQ7RDVBNDsxMTEyIDExNjMgMTFCQjtENUE0OzExMTIgMTE2MyAxMUJCOworRDVBNTtENUE1OzExMTIgMTE2MyAxMUJDO0Q1QTU7MTExMiAxMTYzIDExQkM7CitENUE2O0Q1QTY7MTExMiAxMTYzIDExQkQ7RDVBNjsxMTEyIDExNjMgMTFCRDsKK0Q1QTc7RDVBNzsxMTEyIDExNjMgMTFCRTtENUE3OzExMTIgMTE2MyAxMUJFOworRDVBODtENUE4OzExMTIgMTE2MyAxMUJGO0Q1QTg7MTExMiAxMTYzIDExQkY7CitENUE5O0Q1QTk7MTExMiAxMTYzIDExQzA7RDVBOTsxMTEyIDExNjMgMTFDMDsKK0Q1QUE7RDVBQTsxMTEyIDExNjMgMTFDMTtENUFBOzExMTIgMTE2MyAxMUMxOworRDVBQjtENUFCOzExMTIgMTE2MyAxMUMyO0Q1QUI7MTExMiAxMTYzIDExQzI7CitENUFDO0Q1QUM7MTExMiAxMTY0O0Q1QUM7MTExMiAxMTY0OworRDVBRDtENUFEOzExMTIgMTE2NCAxMUE4O0Q1QUQ7MTExMiAxMTY0IDExQTg7CitENUFFO0Q1QUU7MTExMiAxMTY0IDExQTk7RDVBRTsxMTEyIDExNjQgMTFBOTsKK0Q1QUY7RDVBRjsxMTEyIDExNjQgMTFBQTtENUFGOzExMTIgMTE2NCAxMUFBOworRDVCMDtENUIwOzExMTIgMTE2NCAxMUFCO0Q1QjA7MTExMiAxMTY0IDExQUI7CitENUIxO0Q1QjE7MTExMiAxMTY0IDExQUM7RDVCMTsxMTEyIDExNjQgMTFBQzsKK0Q1QjI7RDVCMjsxMTEyIDExNjQgMTFBRDtENUIyOzExMTIgMTE2NCAxMUFEOworRDVCMztENUIzOzExMTIgMTE2NCAxMUFFO0Q1QjM7MTExMiAxMTY0IDExQUU7CitENUI0O0Q1QjQ7MTExMiAxMTY0IDExQUY7RDVCNDsxMTEyIDExNjQgMTFBRjsKK0Q1QjU7RDVCNTsxMTEyIDExNjQgMTFCMDtENUI1OzExMTIgMTE2NCAxMUIwOworRDVCNjtENUI2OzExMTIgMTE2NCAxMUIxO0Q1QjY7MTExMiAxMTY0IDExQjE7CitENUI3O0Q1Qjc7MTExMiAxMTY0IDExQjI7RDVCNzsxMTEyIDExNjQgMTFCMjsKK0Q1Qjg7RDVCODsxMTEyIDExNjQgMTFCMztENUI4OzExMTIgMTE2NCAxMUIzOworRDVCOTtENUI5OzExMTIgMTE2NCAxMUI0O0Q1Qjk7MTExMiAxMTY0IDExQjQ7CitENUJBO0Q1QkE7MTExMiAxMTY0IDExQjU7RDVCQTsxMTEyIDExNjQgMTFCNTsKK0Q1QkI7RDVCQjsxMTEyIDExNjQgMTFCNjtENUJCOzExMTIgMTE2NCAxMUI2OworRDVCQztENUJDOzExMTIgMTE2NCAxMUI3O0Q1QkM7MTExMiAxMTY0IDExQjc7CitENUJEO0Q1QkQ7MTExMiAxMTY0IDExQjg7RDVCRDsxMTEyIDExNjQgMTFCODsKK0Q1QkU7RDVCRTsxMTEyIDExNjQgMTFCOTtENUJFOzExMTIgMTE2NCAxMUI5OworRDVCRjtENUJGOzExMTIgMTE2NCAxMUJBO0Q1QkY7MTExMiAxMTY0IDExQkE7CitENUMwO0Q1QzA7MTExMiAxMTY0IDExQkI7RDVDMDsxMTEyIDExNjQgMTFCQjsKK0Q1QzE7RDVDMTsxMTEyIDExNjQgMTFCQztENUMxOzExMTIgMTE2NCAxMUJDOworRDVDMjtENUMyOzExMTIgMTE2NCAxMUJEO0Q1QzI7MTExMiAxMTY0IDExQkQ7CitENUMzO0Q1QzM7MTExMiAxMTY0IDExQkU7RDVDMzsxMTEyIDExNjQgMTFCRTsKK0Q1QzQ7RDVDNDsxMTEyIDExNjQgMTFCRjtENUM0OzExMTIgMTE2NCAxMUJGOworRDVDNTtENUM1OzExMTIgMTE2NCAxMUMwO0Q1QzU7MTExMiAxMTY0IDExQzA7CitENUM2O0Q1QzY7MTExMiAxMTY0IDExQzE7RDVDNjsxMTEyIDExNjQgMTFDMTsKK0Q1Qzc7RDVDNzsxMTEyIDExNjQgMTFDMjtENUM3OzExMTIgMTE2NCAxMUMyOworRDVDODtENUM4OzExMTIgMTE2NTtENUM4OzExMTIgMTE2NTsKK0Q1Qzk7RDVDOTsxMTEyIDExNjUgMTFBODtENUM5OzExMTIgMTE2NSAxMUE4OworRDVDQTtENUNBOzExMTIgMTE2NSAxMUE5O0Q1Q0E7MTExMiAxMTY1IDExQTk7CitENUNCO0Q1Q0I7MTExMiAxMTY1IDExQUE7RDVDQjsxMTEyIDExNjUgMTFBQTsKK0Q1Q0M7RDVDQzsxMTEyIDExNjUgMTFBQjtENUNDOzExMTIgMTE2NSAxMUFCOworRDVDRDtENUNEOzExMTIgMTE2NSAxMUFDO0Q1Q0Q7MTExMiAxMTY1IDExQUM7CitENUNFO0Q1Q0U7MTExMiAxMTY1IDExQUQ7RDVDRTsxMTEyIDExNjUgMTFBRDsKK0Q1Q0Y7RDVDRjsxMTEyIDExNjUgMTFBRTtENUNGOzExMTIgMTE2NSAxMUFFOworRDVEMDtENUQwOzExMTIgMTE2NSAxMUFGO0Q1RDA7MTExMiAxMTY1IDExQUY7CitENUQxO0Q1RDE7MTExMiAxMTY1IDExQjA7RDVEMTsxMTEyIDExNjUgMTFCMDsKK0Q1RDI7RDVEMjsxMTEyIDExNjUgMTFCMTtENUQyOzExMTIgMTE2NSAxMUIxOworRDVEMztENUQzOzExMTIgMTE2NSAxMUIyO0Q1RDM7MTExMiAxMTY1IDExQjI7CitENUQ0O0Q1RDQ7MTExMiAxMTY1IDExQjM7RDVENDsxMTEyIDExNjUgMTFCMzsKK0Q1RDU7RDVENTsxMTEyIDExNjUgMTFCNDtENUQ1OzExMTIgMTE2NSAxMUI0OworRDVENjtENUQ2OzExMTIgMTE2NSAxMUI1O0Q1RDY7MTExMiAxMTY1IDExQjU7CitENUQ3O0Q1RDc7MTExMiAxMTY1IDExQjY7RDVENzsxMTEyIDExNjUgMTFCNjsKK0Q1RDg7RDVEODsxMTEyIDExNjUgMTFCNztENUQ4OzExMTIgMTE2NSAxMUI3OworRDVEOTtENUQ5OzExMTIgMTE2NSAxMUI4O0Q1RDk7MTExMiAxMTY1IDExQjg7CitENURBO0Q1REE7MTExMiAxMTY1IDExQjk7RDVEQTsxMTEyIDExNjUgMTFCOTsKK0Q1REI7RDVEQjsxMTEyIDExNjUgMTFCQTtENURCOzExMTIgMTE2NSAxMUJBOworRDVEQztENURDOzExMTIgMTE2NSAxMUJCO0Q1REM7MTExMiAxMTY1IDExQkI7CitENUREO0Q1REQ7MTExMiAxMTY1IDExQkM7RDVERDsxMTEyIDExNjUgMTFCQzsKK0Q1REU7RDVERTsxMTEyIDExNjUgMTFCRDtENURFOzExMTIgMTE2NSAxMUJEOworRDVERjtENURGOzExMTIgMTE2NSAxMUJFO0Q1REY7MTExMiAxMTY1IDExQkU7CitENUUwO0Q1RTA7MTExMiAxMTY1IDExQkY7RDVFMDsxMTEyIDExNjUgMTFCRjsKK0Q1RTE7RDVFMTsxMTEyIDExNjUgMTFDMDtENUUxOzExMTIgMTE2NSAxMUMwOworRDVFMjtENUUyOzExMTIgMTE2NSAxMUMxO0Q1RTI7MTExMiAxMTY1IDExQzE7CitENUUzO0Q1RTM7MTExMiAxMTY1IDExQzI7RDVFMzsxMTEyIDExNjUgMTFDMjsKK0Q1RTQ7RDVFNDsxMTEyIDExNjY7RDVFNDsxMTEyIDExNjY7CitENUU1O0Q1RTU7MTExMiAxMTY2IDExQTg7RDVFNTsxMTEyIDExNjYgMTFBODsKK0Q1RTY7RDVFNjsxMTEyIDExNjYgMTFBOTtENUU2OzExMTIgMTE2NiAxMUE5OworRDVFNztENUU3OzExMTIgMTE2NiAxMUFBO0Q1RTc7MTExMiAxMTY2IDExQUE7CitENUU4O0Q1RTg7MTExMiAxMTY2IDExQUI7RDVFODsxMTEyIDExNjYgMTFBQjsKK0Q1RTk7RDVFOTsxMTEyIDExNjYgMTFBQztENUU5OzExMTIgMTE2NiAxMUFDOworRDVFQTtENUVBOzExMTIgMTE2NiAxMUFEO0Q1RUE7MTExMiAxMTY2IDExQUQ7CitENUVCO0Q1RUI7MTExMiAxMTY2IDExQUU7RDVFQjsxMTEyIDExNjYgMTFBRTsKK0Q1RUM7RDVFQzsxMTEyIDExNjYgMTFBRjtENUVDOzExMTIgMTE2NiAxMUFGOworRDVFRDtENUVEOzExMTIgMTE2NiAxMUIwO0Q1RUQ7MTExMiAxMTY2IDExQjA7CitENUVFO0Q1RUU7MTExMiAxMTY2IDExQjE7RDVFRTsxMTEyIDExNjYgMTFCMTsKK0Q1RUY7RDVFRjsxMTEyIDExNjYgMTFCMjtENUVGOzExMTIgMTE2NiAxMUIyOworRDVGMDtENUYwOzExMTIgMTE2NiAxMUIzO0Q1RjA7MTExMiAxMTY2IDExQjM7CitENUYxO0Q1RjE7MTExMiAxMTY2IDExQjQ7RDVGMTsxMTEyIDExNjYgMTFCNDsKK0Q1RjI7RDVGMjsxMTEyIDExNjYgMTFCNTtENUYyOzExMTIgMTE2NiAxMUI1OworRDVGMztENUYzOzExMTIgMTE2NiAxMUI2O0Q1RjM7MTExMiAxMTY2IDExQjY7CitENUY0O0Q1RjQ7MTExMiAxMTY2IDExQjc7RDVGNDsxMTEyIDExNjYgMTFCNzsKK0Q1RjU7RDVGNTsxMTEyIDExNjYgMTFCODtENUY1OzExMTIgMTE2NiAxMUI4OworRDVGNjtENUY2OzExMTIgMTE2NiAxMUI5O0Q1RjY7MTExMiAxMTY2IDExQjk7CitENUY3O0Q1Rjc7MTExMiAxMTY2IDExQkE7RDVGNzsxMTEyIDExNjYgMTFCQTsKK0Q1Rjg7RDVGODsxMTEyIDExNjYgMTFCQjtENUY4OzExMTIgMTE2NiAxMUJCOworRDVGOTtENUY5OzExMTIgMTE2NiAxMUJDO0Q1Rjk7MTExMiAxMTY2IDExQkM7CitENUZBO0Q1RkE7MTExMiAxMTY2IDExQkQ7RDVGQTsxMTEyIDExNjYgMTFCRDsKK0Q1RkI7RDVGQjsxMTEyIDExNjYgMTFCRTtENUZCOzExMTIgMTE2NiAxMUJFOworRDVGQztENUZDOzExMTIgMTE2NiAxMUJGO0Q1RkM7MTExMiAxMTY2IDExQkY7CitENUZEO0Q1RkQ7MTExMiAxMTY2IDExQzA7RDVGRDsxMTEyIDExNjYgMTFDMDsKK0Q1RkU7RDVGRTsxMTEyIDExNjYgMTFDMTtENUZFOzExMTIgMTE2NiAxMUMxOworRDVGRjtENUZGOzExMTIgMTE2NiAxMUMyO0Q1RkY7MTExMiAxMTY2IDExQzI7CitENjAwO0Q2MDA7MTExMiAxMTY3O0Q2MDA7MTExMiAxMTY3OworRDYwMTtENjAxOzExMTIgMTE2NyAxMUE4O0Q2MDE7MTExMiAxMTY3IDExQTg7CitENjAyO0Q2MDI7MTExMiAxMTY3IDExQTk7RDYwMjsxMTEyIDExNjcgMTFBOTsKK0Q2MDM7RDYwMzsxMTEyIDExNjcgMTFBQTtENjAzOzExMTIgMTE2NyAxMUFBOworRDYwNDtENjA0OzExMTIgMTE2NyAxMUFCO0Q2MDQ7MTExMiAxMTY3IDExQUI7CitENjA1O0Q2MDU7MTExMiAxMTY3IDExQUM7RDYwNTsxMTEyIDExNjcgMTFBQzsKK0Q2MDY7RDYwNjsxMTEyIDExNjcgMTFBRDtENjA2OzExMTIgMTE2NyAxMUFEOworRDYwNztENjA3OzExMTIgMTE2NyAxMUFFO0Q2MDc7MTExMiAxMTY3IDExQUU7CitENjA4O0Q2MDg7MTExMiAxMTY3IDExQUY7RDYwODsxMTEyIDExNjcgMTFBRjsKK0Q2MDk7RDYwOTsxMTEyIDExNjcgMTFCMDtENjA5OzExMTIgMTE2NyAxMUIwOworRDYwQTtENjBBOzExMTIgMTE2NyAxMUIxO0Q2MEE7MTExMiAxMTY3IDExQjE7CitENjBCO0Q2MEI7MTExMiAxMTY3IDExQjI7RDYwQjsxMTEyIDExNjcgMTFCMjsKK0Q2MEM7RDYwQzsxMTEyIDExNjcgMTFCMztENjBDOzExMTIgMTE2NyAxMUIzOworRDYwRDtENjBEOzExMTIgMTE2NyAxMUI0O0Q2MEQ7MTExMiAxMTY3IDExQjQ7CitENjBFO0Q2MEU7MTExMiAxMTY3IDExQjU7RDYwRTsxMTEyIDExNjcgMTFCNTsKK0Q2MEY7RDYwRjsxMTEyIDExNjcgMTFCNjtENjBGOzExMTIgMTE2NyAxMUI2OworRDYxMDtENjEwOzExMTIgMTE2NyAxMUI3O0Q2MTA7MTExMiAxMTY3IDExQjc7CitENjExO0Q2MTE7MTExMiAxMTY3IDExQjg7RDYxMTsxMTEyIDExNjcgMTFCODsKK0Q2MTI7RDYxMjsxMTEyIDExNjcgMTFCOTtENjEyOzExMTIgMTE2NyAxMUI5OworRDYxMztENjEzOzExMTIgMTE2NyAxMUJBO0Q2MTM7MTExMiAxMTY3IDExQkE7CitENjE0O0Q2MTQ7MTExMiAxMTY3IDExQkI7RDYxNDsxMTEyIDExNjcgMTFCQjsKK0Q2MTU7RDYxNTsxMTEyIDExNjcgMTFCQztENjE1OzExMTIgMTE2NyAxMUJDOworRDYxNjtENjE2OzExMTIgMTE2NyAxMUJEO0Q2MTY7MTExMiAxMTY3IDExQkQ7CitENjE3O0Q2MTc7MTExMiAxMTY3IDExQkU7RDYxNzsxMTEyIDExNjcgMTFCRTsKK0Q2MTg7RDYxODsxMTEyIDExNjcgMTFCRjtENjE4OzExMTIgMTE2NyAxMUJGOworRDYxOTtENjE5OzExMTIgMTE2NyAxMUMwO0Q2MTk7MTExMiAxMTY3IDExQzA7CitENjFBO0Q2MUE7MTExMiAxMTY3IDExQzE7RDYxQTsxMTEyIDExNjcgMTFDMTsKK0Q2MUI7RDYxQjsxMTEyIDExNjcgMTFDMjtENjFCOzExMTIgMTE2NyAxMUMyOworRDYxQztENjFDOzExMTIgMTE2ODtENjFDOzExMTIgMTE2ODsKK0Q2MUQ7RDYxRDsxMTEyIDExNjggMTFBODtENjFEOzExMTIgMTE2OCAxMUE4OworRDYxRTtENjFFOzExMTIgMTE2OCAxMUE5O0Q2MUU7MTExMiAxMTY4IDExQTk7CitENjFGO0Q2MUY7MTExMiAxMTY4IDExQUE7RDYxRjsxMTEyIDExNjggMTFBQTsKK0Q2MjA7RDYyMDsxMTEyIDExNjggMTFBQjtENjIwOzExMTIgMTE2OCAxMUFCOworRDYyMTtENjIxOzExMTIgMTE2OCAxMUFDO0Q2MjE7MTExMiAxMTY4IDExQUM7CitENjIyO0Q2MjI7MTExMiAxMTY4IDExQUQ7RDYyMjsxMTEyIDExNjggMTFBRDsKK0Q2MjM7RDYyMzsxMTEyIDExNjggMTFBRTtENjIzOzExMTIgMTE2OCAxMUFFOworRDYyNDtENjI0OzExMTIgMTE2OCAxMUFGO0Q2MjQ7MTExMiAxMTY4IDExQUY7CitENjI1O0Q2MjU7MTExMiAxMTY4IDExQjA7RDYyNTsxMTEyIDExNjggMTFCMDsKK0Q2MjY7RDYyNjsxMTEyIDExNjggMTFCMTtENjI2OzExMTIgMTE2OCAxMUIxOworRDYyNztENjI3OzExMTIgMTE2OCAxMUIyO0Q2Mjc7MTExMiAxMTY4IDExQjI7CitENjI4O0Q2Mjg7MTExMiAxMTY4IDExQjM7RDYyODsxMTEyIDExNjggMTFCMzsKK0Q2Mjk7RDYyOTsxMTEyIDExNjggMTFCNDtENjI5OzExMTIgMTE2OCAxMUI0OworRDYyQTtENjJBOzExMTIgMTE2OCAxMUI1O0Q2MkE7MTExMiAxMTY4IDExQjU7CitENjJCO0Q2MkI7MTExMiAxMTY4IDExQjY7RDYyQjsxMTEyIDExNjggMTFCNjsKK0Q2MkM7RDYyQzsxMTEyIDExNjggMTFCNztENjJDOzExMTIgMTE2OCAxMUI3OworRDYyRDtENjJEOzExMTIgMTE2OCAxMUI4O0Q2MkQ7MTExMiAxMTY4IDExQjg7CitENjJFO0Q2MkU7MTExMiAxMTY4IDExQjk7RDYyRTsxMTEyIDExNjggMTFCOTsKK0Q2MkY7RDYyRjsxMTEyIDExNjggMTFCQTtENjJGOzExMTIgMTE2OCAxMUJBOworRDYzMDtENjMwOzExMTIgMTE2OCAxMUJCO0Q2MzA7MTExMiAxMTY4IDExQkI7CitENjMxO0Q2MzE7MTExMiAxMTY4IDExQkM7RDYzMTsxMTEyIDExNjggMTFCQzsKK0Q2MzI7RDYzMjsxMTEyIDExNjggMTFCRDtENjMyOzExMTIgMTE2OCAxMUJEOworRDYzMztENjMzOzExMTIgMTE2OCAxMUJFO0Q2MzM7MTExMiAxMTY4IDExQkU7CitENjM0O0Q2MzQ7MTExMiAxMTY4IDExQkY7RDYzNDsxMTEyIDExNjggMTFCRjsKK0Q2MzU7RDYzNTsxMTEyIDExNjggMTFDMDtENjM1OzExMTIgMTE2OCAxMUMwOworRDYzNjtENjM2OzExMTIgMTE2OCAxMUMxO0Q2MzY7MTExMiAxMTY4IDExQzE7CitENjM3O0Q2Mzc7MTExMiAxMTY4IDExQzI7RDYzNzsxMTEyIDExNjggMTFDMjsKK0Q2Mzg7RDYzODsxMTEyIDExNjk7RDYzODsxMTEyIDExNjk7CitENjM5O0Q2Mzk7MTExMiAxMTY5IDExQTg7RDYzOTsxMTEyIDExNjkgMTFBODsKK0Q2M0E7RDYzQTsxMTEyIDExNjkgMTFBOTtENjNBOzExMTIgMTE2OSAxMUE5OworRDYzQjtENjNCOzExMTIgMTE2OSAxMUFBO0Q2M0I7MTExMiAxMTY5IDExQUE7CitENjNDO0Q2M0M7MTExMiAxMTY5IDExQUI7RDYzQzsxMTEyIDExNjkgMTFBQjsKK0Q2M0Q7RDYzRDsxMTEyIDExNjkgMTFBQztENjNEOzExMTIgMTE2OSAxMUFDOworRDYzRTtENjNFOzExMTIgMTE2OSAxMUFEO0Q2M0U7MTExMiAxMTY5IDExQUQ7CitENjNGO0Q2M0Y7MTExMiAxMTY5IDExQUU7RDYzRjsxMTEyIDExNjkgMTFBRTsKK0Q2NDA7RDY0MDsxMTEyIDExNjkgMTFBRjtENjQwOzExMTIgMTE2OSAxMUFGOworRDY0MTtENjQxOzExMTIgMTE2OSAxMUIwO0Q2NDE7MTExMiAxMTY5IDExQjA7CitENjQyO0Q2NDI7MTExMiAxMTY5IDExQjE7RDY0MjsxMTEyIDExNjkgMTFCMTsKK0Q2NDM7RDY0MzsxMTEyIDExNjkgMTFCMjtENjQzOzExMTIgMTE2OSAxMUIyOworRDY0NDtENjQ0OzExMTIgMTE2OSAxMUIzO0Q2NDQ7MTExMiAxMTY5IDExQjM7CitENjQ1O0Q2NDU7MTExMiAxMTY5IDExQjQ7RDY0NTsxMTEyIDExNjkgMTFCNDsKK0Q2NDY7RDY0NjsxMTEyIDExNjkgMTFCNTtENjQ2OzExMTIgMTE2OSAxMUI1OworRDY0NztENjQ3OzExMTIgMTE2OSAxMUI2O0Q2NDc7MTExMiAxMTY5IDExQjY7CitENjQ4O0Q2NDg7MTExMiAxMTY5IDExQjc7RDY0ODsxMTEyIDExNjkgMTFCNzsKK0Q2NDk7RDY0OTsxMTEyIDExNjkgMTFCODtENjQ5OzExMTIgMTE2OSAxMUI4OworRDY0QTtENjRBOzExMTIgMTE2OSAxMUI5O0Q2NEE7MTExMiAxMTY5IDExQjk7CitENjRCO0Q2NEI7MTExMiAxMTY5IDExQkE7RDY0QjsxMTEyIDExNjkgMTFCQTsKK0Q2NEM7RDY0QzsxMTEyIDExNjkgMTFCQjtENjRDOzExMTIgMTE2OSAxMUJCOworRDY0RDtENjREOzExMTIgMTE2OSAxMUJDO0Q2NEQ7MTExMiAxMTY5IDExQkM7CitENjRFO0Q2NEU7MTExMiAxMTY5IDExQkQ7RDY0RTsxMTEyIDExNjkgMTFCRDsKK0Q2NEY7RDY0RjsxMTEyIDExNjkgMTFCRTtENjRGOzExMTIgMTE2OSAxMUJFOworRDY1MDtENjUwOzExMTIgMTE2OSAxMUJGO0Q2NTA7MTExMiAxMTY5IDExQkY7CitENjUxO0Q2NTE7MTExMiAxMTY5IDExQzA7RDY1MTsxMTEyIDExNjkgMTFDMDsKK0Q2NTI7RDY1MjsxMTEyIDExNjkgMTFDMTtENjUyOzExMTIgMTE2OSAxMUMxOworRDY1MztENjUzOzExMTIgMTE2OSAxMUMyO0Q2NTM7MTExMiAxMTY5IDExQzI7CitENjU0O0Q2NTQ7MTExMiAxMTZBO0Q2NTQ7MTExMiAxMTZBOworRDY1NTtENjU1OzExMTIgMTE2QSAxMUE4O0Q2NTU7MTExMiAxMTZBIDExQTg7CitENjU2O0Q2NTY7MTExMiAxMTZBIDExQTk7RDY1NjsxMTEyIDExNkEgMTFBOTsKK0Q2NTc7RDY1NzsxMTEyIDExNkEgMTFBQTtENjU3OzExMTIgMTE2QSAxMUFBOworRDY1ODtENjU4OzExMTIgMTE2QSAxMUFCO0Q2NTg7MTExMiAxMTZBIDExQUI7CitENjU5O0Q2NTk7MTExMiAxMTZBIDExQUM7RDY1OTsxMTEyIDExNkEgMTFBQzsKK0Q2NUE7RDY1QTsxMTEyIDExNkEgMTFBRDtENjVBOzExMTIgMTE2QSAxMUFEOworRDY1QjtENjVCOzExMTIgMTE2QSAxMUFFO0Q2NUI7MTExMiAxMTZBIDExQUU7CitENjVDO0Q2NUM7MTExMiAxMTZBIDExQUY7RDY1QzsxMTEyIDExNkEgMTFBRjsKK0Q2NUQ7RDY1RDsxMTEyIDExNkEgMTFCMDtENjVEOzExMTIgMTE2QSAxMUIwOworRDY1RTtENjVFOzExMTIgMTE2QSAxMUIxO0Q2NUU7MTExMiAxMTZBIDExQjE7CitENjVGO0Q2NUY7MTExMiAxMTZBIDExQjI7RDY1RjsxMTEyIDExNkEgMTFCMjsKK0Q2NjA7RDY2MDsxMTEyIDExNkEgMTFCMztENjYwOzExMTIgMTE2QSAxMUIzOworRDY2MTtENjYxOzExMTIgMTE2QSAxMUI0O0Q2NjE7MTExMiAxMTZBIDExQjQ7CitENjYyO0Q2NjI7MTExMiAxMTZBIDExQjU7RDY2MjsxMTEyIDExNkEgMTFCNTsKK0Q2NjM7RDY2MzsxMTEyIDExNkEgMTFCNjtENjYzOzExMTIgMTE2QSAxMUI2OworRDY2NDtENjY0OzExMTIgMTE2QSAxMUI3O0Q2NjQ7MTExMiAxMTZBIDExQjc7CitENjY1O0Q2NjU7MTExMiAxMTZBIDExQjg7RDY2NTsxMTEyIDExNkEgMTFCODsKK0Q2NjY7RDY2NjsxMTEyIDExNkEgMTFCOTtENjY2OzExMTIgMTE2QSAxMUI5OworRDY2NztENjY3OzExMTIgMTE2QSAxMUJBO0Q2Njc7MTExMiAxMTZBIDExQkE7CitENjY4O0Q2Njg7MTExMiAxMTZBIDExQkI7RDY2ODsxMTEyIDExNkEgMTFCQjsKK0Q2Njk7RDY2OTsxMTEyIDExNkEgMTFCQztENjY5OzExMTIgMTE2QSAxMUJDOworRDY2QTtENjZBOzExMTIgMTE2QSAxMUJEO0Q2NkE7MTExMiAxMTZBIDExQkQ7CitENjZCO0Q2NkI7MTExMiAxMTZBIDExQkU7RDY2QjsxMTEyIDExNkEgMTFCRTsKK0Q2NkM7RDY2QzsxMTEyIDExNkEgMTFCRjtENjZDOzExMTIgMTE2QSAxMUJGOworRDY2RDtENjZEOzExMTIgMTE2QSAxMUMwO0Q2NkQ7MTExMiAxMTZBIDExQzA7CitENjZFO0Q2NkU7MTExMiAxMTZBIDExQzE7RDY2RTsxMTEyIDExNkEgMTFDMTsKK0Q2NkY7RDY2RjsxMTEyIDExNkEgMTFDMjtENjZGOzExMTIgMTE2QSAxMUMyOworRDY3MDtENjcwOzExMTIgMTE2QjtENjcwOzExMTIgMTE2QjsKK0Q2NzE7RDY3MTsxMTEyIDExNkIgMTFBODtENjcxOzExMTIgMTE2QiAxMUE4OworRDY3MjtENjcyOzExMTIgMTE2QiAxMUE5O0Q2NzI7MTExMiAxMTZCIDExQTk7CitENjczO0Q2NzM7MTExMiAxMTZCIDExQUE7RDY3MzsxMTEyIDExNkIgMTFBQTsKK0Q2NzQ7RDY3NDsxMTEyIDExNkIgMTFBQjtENjc0OzExMTIgMTE2QiAxMUFCOworRDY3NTtENjc1OzExMTIgMTE2QiAxMUFDO0Q2NzU7MTExMiAxMTZCIDExQUM7CitENjc2O0Q2NzY7MTExMiAxMTZCIDExQUQ7RDY3NjsxMTEyIDExNkIgMTFBRDsKK0Q2Nzc7RDY3NzsxMTEyIDExNkIgMTFBRTtENjc3OzExMTIgMTE2QiAxMUFFOworRDY3ODtENjc4OzExMTIgMTE2QiAxMUFGO0Q2Nzg7MTExMiAxMTZCIDExQUY7CitENjc5O0Q2Nzk7MTExMiAxMTZCIDExQjA7RDY3OTsxMTEyIDExNkIgMTFCMDsKK0Q2N0E7RDY3QTsxMTEyIDExNkIgMTFCMTtENjdBOzExMTIgMTE2QiAxMUIxOworRDY3QjtENjdCOzExMTIgMTE2QiAxMUIyO0Q2N0I7MTExMiAxMTZCIDExQjI7CitENjdDO0Q2N0M7MTExMiAxMTZCIDExQjM7RDY3QzsxMTEyIDExNkIgMTFCMzsKK0Q2N0Q7RDY3RDsxMTEyIDExNkIgMTFCNDtENjdEOzExMTIgMTE2QiAxMUI0OworRDY3RTtENjdFOzExMTIgMTE2QiAxMUI1O0Q2N0U7MTExMiAxMTZCIDExQjU7CitENjdGO0Q2N0Y7MTExMiAxMTZCIDExQjY7RDY3RjsxMTEyIDExNkIgMTFCNjsKK0Q2ODA7RDY4MDsxMTEyIDExNkIgMTFCNztENjgwOzExMTIgMTE2QiAxMUI3OworRDY4MTtENjgxOzExMTIgMTE2QiAxMUI4O0Q2ODE7MTExMiAxMTZCIDExQjg7CitENjgyO0Q2ODI7MTExMiAxMTZCIDExQjk7RDY4MjsxMTEyIDExNkIgMTFCOTsKK0Q2ODM7RDY4MzsxMTEyIDExNkIgMTFCQTtENjgzOzExMTIgMTE2QiAxMUJBOworRDY4NDtENjg0OzExMTIgMTE2QiAxMUJCO0Q2ODQ7MTExMiAxMTZCIDExQkI7CitENjg1O0Q2ODU7MTExMiAxMTZCIDExQkM7RDY4NTsxMTEyIDExNkIgMTFCQzsKK0Q2ODY7RDY4NjsxMTEyIDExNkIgMTFCRDtENjg2OzExMTIgMTE2QiAxMUJEOworRDY4NztENjg3OzExMTIgMTE2QiAxMUJFO0Q2ODc7MTExMiAxMTZCIDExQkU7CitENjg4O0Q2ODg7MTExMiAxMTZCIDExQkY7RDY4ODsxMTEyIDExNkIgMTFCRjsKK0Q2ODk7RDY4OTsxMTEyIDExNkIgMTFDMDtENjg5OzExMTIgMTE2QiAxMUMwOworRDY4QTtENjhBOzExMTIgMTE2QiAxMUMxO0Q2OEE7MTExMiAxMTZCIDExQzE7CitENjhCO0Q2OEI7MTExMiAxMTZCIDExQzI7RDY4QjsxMTEyIDExNkIgMTFDMjsKK0Q2OEM7RDY4QzsxMTEyIDExNkM7RDY4QzsxMTEyIDExNkM7CitENjhEO0Q2OEQ7MTExMiAxMTZDIDExQTg7RDY4RDsxMTEyIDExNkMgMTFBODsKK0Q2OEU7RDY4RTsxMTEyIDExNkMgMTFBOTtENjhFOzExMTIgMTE2QyAxMUE5OworRDY4RjtENjhGOzExMTIgMTE2QyAxMUFBO0Q2OEY7MTExMiAxMTZDIDExQUE7CitENjkwO0Q2OTA7MTExMiAxMTZDIDExQUI7RDY5MDsxMTEyIDExNkMgMTFBQjsKK0Q2OTE7RDY5MTsxMTEyIDExNkMgMTFBQztENjkxOzExMTIgMTE2QyAxMUFDOworRDY5MjtENjkyOzExMTIgMTE2QyAxMUFEO0Q2OTI7MTExMiAxMTZDIDExQUQ7CitENjkzO0Q2OTM7MTExMiAxMTZDIDExQUU7RDY5MzsxMTEyIDExNkMgMTFBRTsKK0Q2OTQ7RDY5NDsxMTEyIDExNkMgMTFBRjtENjk0OzExMTIgMTE2QyAxMUFGOworRDY5NTtENjk1OzExMTIgMTE2QyAxMUIwO0Q2OTU7MTExMiAxMTZDIDExQjA7CitENjk2O0Q2OTY7MTExMiAxMTZDIDExQjE7RDY5NjsxMTEyIDExNkMgMTFCMTsKK0Q2OTc7RDY5NzsxMTEyIDExNkMgMTFCMjtENjk3OzExMTIgMTE2QyAxMUIyOworRDY5ODtENjk4OzExMTIgMTE2QyAxMUIzO0Q2OTg7MTExMiAxMTZDIDExQjM7CitENjk5O0Q2OTk7MTExMiAxMTZDIDExQjQ7RDY5OTsxMTEyIDExNkMgMTFCNDsKK0Q2OUE7RDY5QTsxMTEyIDExNkMgMTFCNTtENjlBOzExMTIgMTE2QyAxMUI1OworRDY5QjtENjlCOzExMTIgMTE2QyAxMUI2O0Q2OUI7MTExMiAxMTZDIDExQjY7CitENjlDO0Q2OUM7MTExMiAxMTZDIDExQjc7RDY5QzsxMTEyIDExNkMgMTFCNzsKK0Q2OUQ7RDY5RDsxMTEyIDExNkMgMTFCODtENjlEOzExMTIgMTE2QyAxMUI4OworRDY5RTtENjlFOzExMTIgMTE2QyAxMUI5O0Q2OUU7MTExMiAxMTZDIDExQjk7CitENjlGO0Q2OUY7MTExMiAxMTZDIDExQkE7RDY5RjsxMTEyIDExNkMgMTFCQTsKK0Q2QTA7RDZBMDsxMTEyIDExNkMgMTFCQjtENkEwOzExMTIgMTE2QyAxMUJCOworRDZBMTtENkExOzExMTIgMTE2QyAxMUJDO0Q2QTE7MTExMiAxMTZDIDExQkM7CitENkEyO0Q2QTI7MTExMiAxMTZDIDExQkQ7RDZBMjsxMTEyIDExNkMgMTFCRDsKK0Q2QTM7RDZBMzsxMTEyIDExNkMgMTFCRTtENkEzOzExMTIgMTE2QyAxMUJFOworRDZBNDtENkE0OzExMTIgMTE2QyAxMUJGO0Q2QTQ7MTExMiAxMTZDIDExQkY7CitENkE1O0Q2QTU7MTExMiAxMTZDIDExQzA7RDZBNTsxMTEyIDExNkMgMTFDMDsKK0Q2QTY7RDZBNjsxMTEyIDExNkMgMTFDMTtENkE2OzExMTIgMTE2QyAxMUMxOworRDZBNztENkE3OzExMTIgMTE2QyAxMUMyO0Q2QTc7MTExMiAxMTZDIDExQzI7CitENkE4O0Q2QTg7MTExMiAxMTZEO0Q2QTg7MTExMiAxMTZEOworRDZBOTtENkE5OzExMTIgMTE2RCAxMUE4O0Q2QTk7MTExMiAxMTZEIDExQTg7CitENkFBO0Q2QUE7MTExMiAxMTZEIDExQTk7RDZBQTsxMTEyIDExNkQgMTFBOTsKK0Q2QUI7RDZBQjsxMTEyIDExNkQgMTFBQTtENkFCOzExMTIgMTE2RCAxMUFBOworRDZBQztENkFDOzExMTIgMTE2RCAxMUFCO0Q2QUM7MTExMiAxMTZEIDExQUI7CitENkFEO0Q2QUQ7MTExMiAxMTZEIDExQUM7RDZBRDsxMTEyIDExNkQgMTFBQzsKK0Q2QUU7RDZBRTsxMTEyIDExNkQgMTFBRDtENkFFOzExMTIgMTE2RCAxMUFEOworRDZBRjtENkFGOzExMTIgMTE2RCAxMUFFO0Q2QUY7MTExMiAxMTZEIDExQUU7CitENkIwO0Q2QjA7MTExMiAxMTZEIDExQUY7RDZCMDsxMTEyIDExNkQgMTFBRjsKK0Q2QjE7RDZCMTsxMTEyIDExNkQgMTFCMDtENkIxOzExMTIgMTE2RCAxMUIwOworRDZCMjtENkIyOzExMTIgMTE2RCAxMUIxO0Q2QjI7MTExMiAxMTZEIDExQjE7CitENkIzO0Q2QjM7MTExMiAxMTZEIDExQjI7RDZCMzsxMTEyIDExNkQgMTFCMjsKK0Q2QjQ7RDZCNDsxMTEyIDExNkQgMTFCMztENkI0OzExMTIgMTE2RCAxMUIzOworRDZCNTtENkI1OzExMTIgMTE2RCAxMUI0O0Q2QjU7MTExMiAxMTZEIDExQjQ7CitENkI2O0Q2QjY7MTExMiAxMTZEIDExQjU7RDZCNjsxMTEyIDExNkQgMTFCNTsKK0Q2Qjc7RDZCNzsxMTEyIDExNkQgMTFCNjtENkI3OzExMTIgMTE2RCAxMUI2OworRDZCODtENkI4OzExMTIgMTE2RCAxMUI3O0Q2Qjg7MTExMiAxMTZEIDExQjc7CitENkI5O0Q2Qjk7MTExMiAxMTZEIDExQjg7RDZCOTsxMTEyIDExNkQgMTFCODsKK0Q2QkE7RDZCQTsxMTEyIDExNkQgMTFCOTtENkJBOzExMTIgMTE2RCAxMUI5OworRDZCQjtENkJCOzExMTIgMTE2RCAxMUJBO0Q2QkI7MTExMiAxMTZEIDExQkE7CitENkJDO0Q2QkM7MTExMiAxMTZEIDExQkI7RDZCQzsxMTEyIDExNkQgMTFCQjsKK0Q2QkQ7RDZCRDsxMTEyIDExNkQgMTFCQztENkJEOzExMTIgMTE2RCAxMUJDOworRDZCRTtENkJFOzExMTIgMTE2RCAxMUJEO0Q2QkU7MTExMiAxMTZEIDExQkQ7CitENkJGO0Q2QkY7MTExMiAxMTZEIDExQkU7RDZCRjsxMTEyIDExNkQgMTFCRTsKK0Q2QzA7RDZDMDsxMTEyIDExNkQgMTFCRjtENkMwOzExMTIgMTE2RCAxMUJGOworRDZDMTtENkMxOzExMTIgMTE2RCAxMUMwO0Q2QzE7MTExMiAxMTZEIDExQzA7CitENkMyO0Q2QzI7MTExMiAxMTZEIDExQzE7RDZDMjsxMTEyIDExNkQgMTFDMTsKK0Q2QzM7RDZDMzsxMTEyIDExNkQgMTFDMjtENkMzOzExMTIgMTE2RCAxMUMyOworRDZDNDtENkM0OzExMTIgMTE2RTtENkM0OzExMTIgMTE2RTsKK0Q2QzU7RDZDNTsxMTEyIDExNkUgMTFBODtENkM1OzExMTIgMTE2RSAxMUE4OworRDZDNjtENkM2OzExMTIgMTE2RSAxMUE5O0Q2QzY7MTExMiAxMTZFIDExQTk7CitENkM3O0Q2Qzc7MTExMiAxMTZFIDExQUE7RDZDNzsxMTEyIDExNkUgMTFBQTsKK0Q2Qzg7RDZDODsxMTEyIDExNkUgMTFBQjtENkM4OzExMTIgMTE2RSAxMUFCOworRDZDOTtENkM5OzExMTIgMTE2RSAxMUFDO0Q2Qzk7MTExMiAxMTZFIDExQUM7CitENkNBO0Q2Q0E7MTExMiAxMTZFIDExQUQ7RDZDQTsxMTEyIDExNkUgMTFBRDsKK0Q2Q0I7RDZDQjsxMTEyIDExNkUgMTFBRTtENkNCOzExMTIgMTE2RSAxMUFFOworRDZDQztENkNDOzExMTIgMTE2RSAxMUFGO0Q2Q0M7MTExMiAxMTZFIDExQUY7CitENkNEO0Q2Q0Q7MTExMiAxMTZFIDExQjA7RDZDRDsxMTEyIDExNkUgMTFCMDsKK0Q2Q0U7RDZDRTsxMTEyIDExNkUgMTFCMTtENkNFOzExMTIgMTE2RSAxMUIxOworRDZDRjtENkNGOzExMTIgMTE2RSAxMUIyO0Q2Q0Y7MTExMiAxMTZFIDExQjI7CitENkQwO0Q2RDA7MTExMiAxMTZFIDExQjM7RDZEMDsxMTEyIDExNkUgMTFCMzsKK0Q2RDE7RDZEMTsxMTEyIDExNkUgMTFCNDtENkQxOzExMTIgMTE2RSAxMUI0OworRDZEMjtENkQyOzExMTIgMTE2RSAxMUI1O0Q2RDI7MTExMiAxMTZFIDExQjU7CitENkQzO0Q2RDM7MTExMiAxMTZFIDExQjY7RDZEMzsxMTEyIDExNkUgMTFCNjsKK0Q2RDQ7RDZENDsxMTEyIDExNkUgMTFCNztENkQ0OzExMTIgMTE2RSAxMUI3OworRDZENTtENkQ1OzExMTIgMTE2RSAxMUI4O0Q2RDU7MTExMiAxMTZFIDExQjg7CitENkQ2O0Q2RDY7MTExMiAxMTZFIDExQjk7RDZENjsxMTEyIDExNkUgMTFCOTsKK0Q2RDc7RDZENzsxMTEyIDExNkUgMTFCQTtENkQ3OzExMTIgMTE2RSAxMUJBOworRDZEODtENkQ4OzExMTIgMTE2RSAxMUJCO0Q2RDg7MTExMiAxMTZFIDExQkI7CitENkQ5O0Q2RDk7MTExMiAxMTZFIDExQkM7RDZEOTsxMTEyIDExNkUgMTFCQzsKK0Q2REE7RDZEQTsxMTEyIDExNkUgMTFCRDtENkRBOzExMTIgMTE2RSAxMUJEOworRDZEQjtENkRCOzExMTIgMTE2RSAxMUJFO0Q2REI7MTExMiAxMTZFIDExQkU7CitENkRDO0Q2REM7MTExMiAxMTZFIDExQkY7RDZEQzsxMTEyIDExNkUgMTFCRjsKK0Q2REQ7RDZERDsxMTEyIDExNkUgMTFDMDtENkREOzExMTIgMTE2RSAxMUMwOworRDZERTtENkRFOzExMTIgMTE2RSAxMUMxO0Q2REU7MTExMiAxMTZFIDExQzE7CitENkRGO0Q2REY7MTExMiAxMTZFIDExQzI7RDZERjsxMTEyIDExNkUgMTFDMjsKK0Q2RTA7RDZFMDsxMTEyIDExNkY7RDZFMDsxMTEyIDExNkY7CitENkUxO0Q2RTE7MTExMiAxMTZGIDExQTg7RDZFMTsxMTEyIDExNkYgMTFBODsKK0Q2RTI7RDZFMjsxMTEyIDExNkYgMTFBOTtENkUyOzExMTIgMTE2RiAxMUE5OworRDZFMztENkUzOzExMTIgMTE2RiAxMUFBO0Q2RTM7MTExMiAxMTZGIDExQUE7CitENkU0O0Q2RTQ7MTExMiAxMTZGIDExQUI7RDZFNDsxMTEyIDExNkYgMTFBQjsKK0Q2RTU7RDZFNTsxMTEyIDExNkYgMTFBQztENkU1OzExMTIgMTE2RiAxMUFDOworRDZFNjtENkU2OzExMTIgMTE2RiAxMUFEO0Q2RTY7MTExMiAxMTZGIDExQUQ7CitENkU3O0Q2RTc7MTExMiAxMTZGIDExQUU7RDZFNzsxMTEyIDExNkYgMTFBRTsKK0Q2RTg7RDZFODsxMTEyIDExNkYgMTFBRjtENkU4OzExMTIgMTE2RiAxMUFGOworRDZFOTtENkU5OzExMTIgMTE2RiAxMUIwO0Q2RTk7MTExMiAxMTZGIDExQjA7CitENkVBO0Q2RUE7MTExMiAxMTZGIDExQjE7RDZFQTsxMTEyIDExNkYgMTFCMTsKK0Q2RUI7RDZFQjsxMTEyIDExNkYgMTFCMjtENkVCOzExMTIgMTE2RiAxMUIyOworRDZFQztENkVDOzExMTIgMTE2RiAxMUIzO0Q2RUM7MTExMiAxMTZGIDExQjM7CitENkVEO0Q2RUQ7MTExMiAxMTZGIDExQjQ7RDZFRDsxMTEyIDExNkYgMTFCNDsKK0Q2RUU7RDZFRTsxMTEyIDExNkYgMTFCNTtENkVFOzExMTIgMTE2RiAxMUI1OworRDZFRjtENkVGOzExMTIgMTE2RiAxMUI2O0Q2RUY7MTExMiAxMTZGIDExQjY7CitENkYwO0Q2RjA7MTExMiAxMTZGIDExQjc7RDZGMDsxMTEyIDExNkYgMTFCNzsKK0Q2RjE7RDZGMTsxMTEyIDExNkYgMTFCODtENkYxOzExMTIgMTE2RiAxMUI4OworRDZGMjtENkYyOzExMTIgMTE2RiAxMUI5O0Q2RjI7MTExMiAxMTZGIDExQjk7CitENkYzO0Q2RjM7MTExMiAxMTZGIDExQkE7RDZGMzsxMTEyIDExNkYgMTFCQTsKK0Q2RjQ7RDZGNDsxMTEyIDExNkYgMTFCQjtENkY0OzExMTIgMTE2RiAxMUJCOworRDZGNTtENkY1OzExMTIgMTE2RiAxMUJDO0Q2RjU7MTExMiAxMTZGIDExQkM7CitENkY2O0Q2RjY7MTExMiAxMTZGIDExQkQ7RDZGNjsxMTEyIDExNkYgMTFCRDsKK0Q2Rjc7RDZGNzsxMTEyIDExNkYgMTFCRTtENkY3OzExMTIgMTE2RiAxMUJFOworRDZGODtENkY4OzExMTIgMTE2RiAxMUJGO0Q2Rjg7MTExMiAxMTZGIDExQkY7CitENkY5O0Q2Rjk7MTExMiAxMTZGIDExQzA7RDZGOTsxMTEyIDExNkYgMTFDMDsKK0Q2RkE7RDZGQTsxMTEyIDExNkYgMTFDMTtENkZBOzExMTIgMTE2RiAxMUMxOworRDZGQjtENkZCOzExMTIgMTE2RiAxMUMyO0Q2RkI7MTExMiAxMTZGIDExQzI7CitENkZDO0Q2RkM7MTExMiAxMTcwO0Q2RkM7MTExMiAxMTcwOworRDZGRDtENkZEOzExMTIgMTE3MCAxMUE4O0Q2RkQ7MTExMiAxMTcwIDExQTg7CitENkZFO0Q2RkU7MTExMiAxMTcwIDExQTk7RDZGRTsxMTEyIDExNzAgMTFBOTsKK0Q2RkY7RDZGRjsxMTEyIDExNzAgMTFBQTtENkZGOzExMTIgMTE3MCAxMUFBOworRDcwMDtENzAwOzExMTIgMTE3MCAxMUFCO0Q3MDA7MTExMiAxMTcwIDExQUI7CitENzAxO0Q3MDE7MTExMiAxMTcwIDExQUM7RDcwMTsxMTEyIDExNzAgMTFBQzsKK0Q3MDI7RDcwMjsxMTEyIDExNzAgMTFBRDtENzAyOzExMTIgMTE3MCAxMUFEOworRDcwMztENzAzOzExMTIgMTE3MCAxMUFFO0Q3MDM7MTExMiAxMTcwIDExQUU7CitENzA0O0Q3MDQ7MTExMiAxMTcwIDExQUY7RDcwNDsxMTEyIDExNzAgMTFBRjsKK0Q3MDU7RDcwNTsxMTEyIDExNzAgMTFCMDtENzA1OzExMTIgMTE3MCAxMUIwOworRDcwNjtENzA2OzExMTIgMTE3MCAxMUIxO0Q3MDY7MTExMiAxMTcwIDExQjE7CitENzA3O0Q3MDc7MTExMiAxMTcwIDExQjI7RDcwNzsxMTEyIDExNzAgMTFCMjsKK0Q3MDg7RDcwODsxMTEyIDExNzAgMTFCMztENzA4OzExMTIgMTE3MCAxMUIzOworRDcwOTtENzA5OzExMTIgMTE3MCAxMUI0O0Q3MDk7MTExMiAxMTcwIDExQjQ7CitENzBBO0Q3MEE7MTExMiAxMTcwIDExQjU7RDcwQTsxMTEyIDExNzAgMTFCNTsKK0Q3MEI7RDcwQjsxMTEyIDExNzAgMTFCNjtENzBCOzExMTIgMTE3MCAxMUI2OworRDcwQztENzBDOzExMTIgMTE3MCAxMUI3O0Q3MEM7MTExMiAxMTcwIDExQjc7CitENzBEO0Q3MEQ7MTExMiAxMTcwIDExQjg7RDcwRDsxMTEyIDExNzAgMTFCODsKK0Q3MEU7RDcwRTsxMTEyIDExNzAgMTFCOTtENzBFOzExMTIgMTE3MCAxMUI5OworRDcwRjtENzBGOzExMTIgMTE3MCAxMUJBO0Q3MEY7MTExMiAxMTcwIDExQkE7CitENzEwO0Q3MTA7MTExMiAxMTcwIDExQkI7RDcxMDsxMTEyIDExNzAgMTFCQjsKK0Q3MTE7RDcxMTsxMTEyIDExNzAgMTFCQztENzExOzExMTIgMTE3MCAxMUJDOworRDcxMjtENzEyOzExMTIgMTE3MCAxMUJEO0Q3MTI7MTExMiAxMTcwIDExQkQ7CitENzEzO0Q3MTM7MTExMiAxMTcwIDExQkU7RDcxMzsxMTEyIDExNzAgMTFCRTsKK0Q3MTQ7RDcxNDsxMTEyIDExNzAgMTFCRjtENzE0OzExMTIgMTE3MCAxMUJGOworRDcxNTtENzE1OzExMTIgMTE3MCAxMUMwO0Q3MTU7MTExMiAxMTcwIDExQzA7CitENzE2O0Q3MTY7MTExMiAxMTcwIDExQzE7RDcxNjsxMTEyIDExNzAgMTFDMTsKK0Q3MTc7RDcxNzsxMTEyIDExNzAgMTFDMjtENzE3OzExMTIgMTE3MCAxMUMyOworRDcxODtENzE4OzExMTIgMTE3MTtENzE4OzExMTIgMTE3MTsKK0Q3MTk7RDcxOTsxMTEyIDExNzEgMTFBODtENzE5OzExMTIgMTE3MSAxMUE4OworRDcxQTtENzFBOzExMTIgMTE3MSAxMUE5O0Q3MUE7MTExMiAxMTcxIDExQTk7CitENzFCO0Q3MUI7MTExMiAxMTcxIDExQUE7RDcxQjsxMTEyIDExNzEgMTFBQTsKK0Q3MUM7RDcxQzsxMTEyIDExNzEgMTFBQjtENzFDOzExMTIgMTE3MSAxMUFCOworRDcxRDtENzFEOzExMTIgMTE3MSAxMUFDO0Q3MUQ7MTExMiAxMTcxIDExQUM7CitENzFFO0Q3MUU7MTExMiAxMTcxIDExQUQ7RDcxRTsxMTEyIDExNzEgMTFBRDsKK0Q3MUY7RDcxRjsxMTEyIDExNzEgMTFBRTtENzFGOzExMTIgMTE3MSAxMUFFOworRDcyMDtENzIwOzExMTIgMTE3MSAxMUFGO0Q3MjA7MTExMiAxMTcxIDExQUY7CitENzIxO0Q3MjE7MTExMiAxMTcxIDExQjA7RDcyMTsxMTEyIDExNzEgMTFCMDsKK0Q3MjI7RDcyMjsxMTEyIDExNzEgMTFCMTtENzIyOzExMTIgMTE3MSAxMUIxOworRDcyMztENzIzOzExMTIgMTE3MSAxMUIyO0Q3MjM7MTExMiAxMTcxIDExQjI7CitENzI0O0Q3MjQ7MTExMiAxMTcxIDExQjM7RDcyNDsxMTEyIDExNzEgMTFCMzsKK0Q3MjU7RDcyNTsxMTEyIDExNzEgMTFCNDtENzI1OzExMTIgMTE3MSAxMUI0OworRDcyNjtENzI2OzExMTIgMTE3MSAxMUI1O0Q3MjY7MTExMiAxMTcxIDExQjU7CitENzI3O0Q3Mjc7MTExMiAxMTcxIDExQjY7RDcyNzsxMTEyIDExNzEgMTFCNjsKK0Q3Mjg7RDcyODsxMTEyIDExNzEgMTFCNztENzI4OzExMTIgMTE3MSAxMUI3OworRDcyOTtENzI5OzExMTIgMTE3MSAxMUI4O0Q3Mjk7MTExMiAxMTcxIDExQjg7CitENzJBO0Q3MkE7MTExMiAxMTcxIDExQjk7RDcyQTsxMTEyIDExNzEgMTFCOTsKK0Q3MkI7RDcyQjsxMTEyIDExNzEgMTFCQTtENzJCOzExMTIgMTE3MSAxMUJBOworRDcyQztENzJDOzExMTIgMTE3MSAxMUJCO0Q3MkM7MTExMiAxMTcxIDExQkI7CitENzJEO0Q3MkQ7MTExMiAxMTcxIDExQkM7RDcyRDsxMTEyIDExNzEgMTFCQzsKK0Q3MkU7RDcyRTsxMTEyIDExNzEgMTFCRDtENzJFOzExMTIgMTE3MSAxMUJEOworRDcyRjtENzJGOzExMTIgMTE3MSAxMUJFO0Q3MkY7MTExMiAxMTcxIDExQkU7CitENzMwO0Q3MzA7MTExMiAxMTcxIDExQkY7RDczMDsxMTEyIDExNzEgMTFCRjsKK0Q3MzE7RDczMTsxMTEyIDExNzEgMTFDMDtENzMxOzExMTIgMTE3MSAxMUMwOworRDczMjtENzMyOzExMTIgMTE3MSAxMUMxO0Q3MzI7MTExMiAxMTcxIDExQzE7CitENzMzO0Q3MzM7MTExMiAxMTcxIDExQzI7RDczMzsxMTEyIDExNzEgMTFDMjsKK0Q3MzQ7RDczNDsxMTEyIDExNzI7RDczNDsxMTEyIDExNzI7CitENzM1O0Q3MzU7MTExMiAxMTcyIDExQTg7RDczNTsxMTEyIDExNzIgMTFBODsKK0Q3MzY7RDczNjsxMTEyIDExNzIgMTFBOTtENzM2OzExMTIgMTE3MiAxMUE5OworRDczNztENzM3OzExMTIgMTE3MiAxMUFBO0Q3Mzc7MTExMiAxMTcyIDExQUE7CitENzM4O0Q3Mzg7MTExMiAxMTcyIDExQUI7RDczODsxMTEyIDExNzIgMTFBQjsKK0Q3Mzk7RDczOTsxMTEyIDExNzIgMTFBQztENzM5OzExMTIgMTE3MiAxMUFDOworRDczQTtENzNBOzExMTIgMTE3MiAxMUFEO0Q3M0E7MTExMiAxMTcyIDExQUQ7CitENzNCO0Q3M0I7MTExMiAxMTcyIDExQUU7RDczQjsxMTEyIDExNzIgMTFBRTsKK0Q3M0M7RDczQzsxMTEyIDExNzIgMTFBRjtENzNDOzExMTIgMTE3MiAxMUFGOworRDczRDtENzNEOzExMTIgMTE3MiAxMUIwO0Q3M0Q7MTExMiAxMTcyIDExQjA7CitENzNFO0Q3M0U7MTExMiAxMTcyIDExQjE7RDczRTsxMTEyIDExNzIgMTFCMTsKK0Q3M0Y7RDczRjsxMTEyIDExNzIgMTFCMjtENzNGOzExMTIgMTE3MiAxMUIyOworRDc0MDtENzQwOzExMTIgMTE3MiAxMUIzO0Q3NDA7MTExMiAxMTcyIDExQjM7CitENzQxO0Q3NDE7MTExMiAxMTcyIDExQjQ7RDc0MTsxMTEyIDExNzIgMTFCNDsKK0Q3NDI7RDc0MjsxMTEyIDExNzIgMTFCNTtENzQyOzExMTIgMTE3MiAxMUI1OworRDc0MztENzQzOzExMTIgMTE3MiAxMUI2O0Q3NDM7MTExMiAxMTcyIDExQjY7CitENzQ0O0Q3NDQ7MTExMiAxMTcyIDExQjc7RDc0NDsxMTEyIDExNzIgMTFCNzsKK0Q3NDU7RDc0NTsxMTEyIDExNzIgMTFCODtENzQ1OzExMTIgMTE3MiAxMUI4OworRDc0NjtENzQ2OzExMTIgMTE3MiAxMUI5O0Q3NDY7MTExMiAxMTcyIDExQjk7CitENzQ3O0Q3NDc7MTExMiAxMTcyIDExQkE7RDc0NzsxMTEyIDExNzIgMTFCQTsKK0Q3NDg7RDc0ODsxMTEyIDExNzIgMTFCQjtENzQ4OzExMTIgMTE3MiAxMUJCOworRDc0OTtENzQ5OzExMTIgMTE3MiAxMUJDO0Q3NDk7MTExMiAxMTcyIDExQkM7CitENzRBO0Q3NEE7MTExMiAxMTcyIDExQkQ7RDc0QTsxMTEyIDExNzIgMTFCRDsKK0Q3NEI7RDc0QjsxMTEyIDExNzIgMTFCRTtENzRCOzExMTIgMTE3MiAxMUJFOworRDc0QztENzRDOzExMTIgMTE3MiAxMUJGO0Q3NEM7MTExMiAxMTcyIDExQkY7CitENzREO0Q3NEQ7MTExMiAxMTcyIDExQzA7RDc0RDsxMTEyIDExNzIgMTFDMDsKK0Q3NEU7RDc0RTsxMTEyIDExNzIgMTFDMTtENzRFOzExMTIgMTE3MiAxMUMxOworRDc0RjtENzRGOzExMTIgMTE3MiAxMUMyO0Q3NEY7MTExMiAxMTcyIDExQzI7CitENzUwO0Q3NTA7MTExMiAxMTczO0Q3NTA7MTExMiAxMTczOworRDc1MTtENzUxOzExMTIgMTE3MyAxMUE4O0Q3NTE7MTExMiAxMTczIDExQTg7CitENzUyO0Q3NTI7MTExMiAxMTczIDExQTk7RDc1MjsxMTEyIDExNzMgMTFBOTsKK0Q3NTM7RDc1MzsxMTEyIDExNzMgMTFBQTtENzUzOzExMTIgMTE3MyAxMUFBOworRDc1NDtENzU0OzExMTIgMTE3MyAxMUFCO0Q3NTQ7MTExMiAxMTczIDExQUI7CitENzU1O0Q3NTU7MTExMiAxMTczIDExQUM7RDc1NTsxMTEyIDExNzMgMTFBQzsKK0Q3NTY7RDc1NjsxMTEyIDExNzMgMTFBRDtENzU2OzExMTIgMTE3MyAxMUFEOworRDc1NztENzU3OzExMTIgMTE3MyAxMUFFO0Q3NTc7MTExMiAxMTczIDExQUU7CitENzU4O0Q3NTg7MTExMiAxMTczIDExQUY7RDc1ODsxMTEyIDExNzMgMTFBRjsKK0Q3NTk7RDc1OTsxMTEyIDExNzMgMTFCMDtENzU5OzExMTIgMTE3MyAxMUIwOworRDc1QTtENzVBOzExMTIgMTE3MyAxMUIxO0Q3NUE7MTExMiAxMTczIDExQjE7CitENzVCO0Q3NUI7MTExMiAxMTczIDExQjI7RDc1QjsxMTEyIDExNzMgMTFCMjsKK0Q3NUM7RDc1QzsxMTEyIDExNzMgMTFCMztENzVDOzExMTIgMTE3MyAxMUIzOworRDc1RDtENzVEOzExMTIgMTE3MyAxMUI0O0Q3NUQ7MTExMiAxMTczIDExQjQ7CitENzVFO0Q3NUU7MTExMiAxMTczIDExQjU7RDc1RTsxMTEyIDExNzMgMTFCNTsKK0Q3NUY7RDc1RjsxMTEyIDExNzMgMTFCNjtENzVGOzExMTIgMTE3MyAxMUI2OworRDc2MDtENzYwOzExMTIgMTE3MyAxMUI3O0Q3NjA7MTExMiAxMTczIDExQjc7CitENzYxO0Q3NjE7MTExMiAxMTczIDExQjg7RDc2MTsxMTEyIDExNzMgMTFCODsKK0Q3NjI7RDc2MjsxMTEyIDExNzMgMTFCOTtENzYyOzExMTIgMTE3MyAxMUI5OworRDc2MztENzYzOzExMTIgMTE3MyAxMUJBO0Q3NjM7MTExMiAxMTczIDExQkE7CitENzY0O0Q3NjQ7MTExMiAxMTczIDExQkI7RDc2NDsxMTEyIDExNzMgMTFCQjsKK0Q3NjU7RDc2NTsxMTEyIDExNzMgMTFCQztENzY1OzExMTIgMTE3MyAxMUJDOworRDc2NjtENzY2OzExMTIgMTE3MyAxMUJEO0Q3NjY7MTExMiAxMTczIDExQkQ7CitENzY3O0Q3Njc7MTExMiAxMTczIDExQkU7RDc2NzsxMTEyIDExNzMgMTFCRTsKK0Q3Njg7RDc2ODsxMTEyIDExNzMgMTFCRjtENzY4OzExMTIgMTE3MyAxMUJGOworRDc2OTtENzY5OzExMTIgMTE3MyAxMUMwO0Q3Njk7MTExMiAxMTczIDExQzA7CitENzZBO0Q3NkE7MTExMiAxMTczIDExQzE7RDc2QTsxMTEyIDExNzMgMTFDMTsKK0Q3NkI7RDc2QjsxMTEyIDExNzMgMTFDMjtENzZCOzExMTIgMTE3MyAxMUMyOworRDc2QztENzZDOzExMTIgMTE3NDtENzZDOzExMTIgMTE3NDsKK0Q3NkQ7RDc2RDsxMTEyIDExNzQgMTFBODtENzZEOzExMTIgMTE3NCAxMUE4OworRDc2RTtENzZFOzExMTIgMTE3NCAxMUE5O0Q3NkU7MTExMiAxMTc0IDExQTk7CitENzZGO0Q3NkY7MTExMiAxMTc0IDExQUE7RDc2RjsxMTEyIDExNzQgMTFBQTsKK0Q3NzA7RDc3MDsxMTEyIDExNzQgMTFBQjtENzcwOzExMTIgMTE3NCAxMUFCOworRDc3MTtENzcxOzExMTIgMTE3NCAxMUFDO0Q3NzE7MTExMiAxMTc0IDExQUM7CitENzcyO0Q3NzI7MTExMiAxMTc0IDExQUQ7RDc3MjsxMTEyIDExNzQgMTFBRDsKK0Q3NzM7RDc3MzsxMTEyIDExNzQgMTFBRTtENzczOzExMTIgMTE3NCAxMUFFOworRDc3NDtENzc0OzExMTIgMTE3NCAxMUFGO0Q3NzQ7MTExMiAxMTc0IDExQUY7CitENzc1O0Q3NzU7MTExMiAxMTc0IDExQjA7RDc3NTsxMTEyIDExNzQgMTFCMDsKK0Q3NzY7RDc3NjsxMTEyIDExNzQgMTFCMTtENzc2OzExMTIgMTE3NCAxMUIxOworRDc3NztENzc3OzExMTIgMTE3NCAxMUIyO0Q3Nzc7MTExMiAxMTc0IDExQjI7CitENzc4O0Q3Nzg7MTExMiAxMTc0IDExQjM7RDc3ODsxMTEyIDExNzQgMTFCMzsKK0Q3Nzk7RDc3OTsxMTEyIDExNzQgMTFCNDtENzc5OzExMTIgMTE3NCAxMUI0OworRDc3QTtENzdBOzExMTIgMTE3NCAxMUI1O0Q3N0E7MTExMiAxMTc0IDExQjU7CitENzdCO0Q3N0I7MTExMiAxMTc0IDExQjY7RDc3QjsxMTEyIDExNzQgMTFCNjsKK0Q3N0M7RDc3QzsxMTEyIDExNzQgMTFCNztENzdDOzExMTIgMTE3NCAxMUI3OworRDc3RDtENzdEOzExMTIgMTE3NCAxMUI4O0Q3N0Q7MTExMiAxMTc0IDExQjg7CitENzdFO0Q3N0U7MTExMiAxMTc0IDExQjk7RDc3RTsxMTEyIDExNzQgMTFCOTsKK0Q3N0Y7RDc3RjsxMTEyIDExNzQgMTFCQTtENzdGOzExMTIgMTE3NCAxMUJBOworRDc4MDtENzgwOzExMTIgMTE3NCAxMUJCO0Q3ODA7MTExMiAxMTc0IDExQkI7CitENzgxO0Q3ODE7MTExMiAxMTc0IDExQkM7RDc4MTsxMTEyIDExNzQgMTFCQzsKK0Q3ODI7RDc4MjsxMTEyIDExNzQgMTFCRDtENzgyOzExMTIgMTE3NCAxMUJEOworRDc4MztENzgzOzExMTIgMTE3NCAxMUJFO0Q3ODM7MTExMiAxMTc0IDExQkU7CitENzg0O0Q3ODQ7MTExMiAxMTc0IDExQkY7RDc4NDsxMTEyIDExNzQgMTFCRjsKK0Q3ODU7RDc4NTsxMTEyIDExNzQgMTFDMDtENzg1OzExMTIgMTE3NCAxMUMwOworRDc4NjtENzg2OzExMTIgMTE3NCAxMUMxO0Q3ODY7MTExMiAxMTc0IDExQzE7CitENzg3O0Q3ODc7MTExMiAxMTc0IDExQzI7RDc4NzsxMTEyIDExNzQgMTFDMjsKK0Q3ODg7RDc4ODsxMTEyIDExNzU7RDc4ODsxMTEyIDExNzU7CitENzg5O0Q3ODk7MTExMiAxMTc1IDExQTg7RDc4OTsxMTEyIDExNzUgMTFBODsKK0Q3OEE7RDc4QTsxMTEyIDExNzUgMTFBOTtENzhBOzExMTIgMTE3NSAxMUE5OworRDc4QjtENzhCOzExMTIgMTE3NSAxMUFBO0Q3OEI7MTExMiAxMTc1IDExQUE7CitENzhDO0Q3OEM7MTExMiAxMTc1IDExQUI7RDc4QzsxMTEyIDExNzUgMTFBQjsKK0Q3OEQ7RDc4RDsxMTEyIDExNzUgMTFBQztENzhEOzExMTIgMTE3NSAxMUFDOworRDc4RTtENzhFOzExMTIgMTE3NSAxMUFEO0Q3OEU7MTExMiAxMTc1IDExQUQ7CitENzhGO0Q3OEY7MTExMiAxMTc1IDExQUU7RDc4RjsxMTEyIDExNzUgMTFBRTsKK0Q3OTA7RDc5MDsxMTEyIDExNzUgMTFBRjtENzkwOzExMTIgMTE3NSAxMUFGOworRDc5MTtENzkxOzExMTIgMTE3NSAxMUIwO0Q3OTE7MTExMiAxMTc1IDExQjA7CitENzkyO0Q3OTI7MTExMiAxMTc1IDExQjE7RDc5MjsxMTEyIDExNzUgMTFCMTsKK0Q3OTM7RDc5MzsxMTEyIDExNzUgMTFCMjtENzkzOzExMTIgMTE3NSAxMUIyOworRDc5NDtENzk0OzExMTIgMTE3NSAxMUIzO0Q3OTQ7MTExMiAxMTc1IDExQjM7CitENzk1O0Q3OTU7MTExMiAxMTc1IDExQjQ7RDc5NTsxMTEyIDExNzUgMTFCNDsKK0Q3OTY7RDc5NjsxMTEyIDExNzUgMTFCNTtENzk2OzExMTIgMTE3NSAxMUI1OworRDc5NztENzk3OzExMTIgMTE3NSAxMUI2O0Q3OTc7MTExMiAxMTc1IDExQjY7CitENzk4O0Q3OTg7MTExMiAxMTc1IDExQjc7RDc5ODsxMTEyIDExNzUgMTFCNzsKK0Q3OTk7RDc5OTsxMTEyIDExNzUgMTFCODtENzk5OzExMTIgMTE3NSAxMUI4OworRDc5QTtENzlBOzExMTIgMTE3NSAxMUI5O0Q3OUE7MTExMiAxMTc1IDExQjk7CitENzlCO0Q3OUI7MTExMiAxMTc1IDExQkE7RDc5QjsxMTEyIDExNzUgMTFCQTsKK0Q3OUM7RDc5QzsxMTEyIDExNzUgMTFCQjtENzlDOzExMTIgMTE3NSAxMUJCOworRDc5RDtENzlEOzExMTIgMTE3NSAxMUJDO0Q3OUQ7MTExMiAxMTc1IDExQkM7CitENzlFO0Q3OUU7MTExMiAxMTc1IDExQkQ7RDc5RTsxMTEyIDExNzUgMTFCRDsKK0Q3OUY7RDc5RjsxMTEyIDExNzUgMTFCRTtENzlGOzExMTIgMTE3NSAxMUJFOworRDdBMDtEN0EwOzExMTIgMTE3NSAxMUJGO0Q3QTA7MTExMiAxMTc1IDExQkY7CitEN0ExO0Q3QTE7MTExMiAxMTc1IDExQzA7RDdBMTsxMTEyIDExNzUgMTFDMDsKK0Q3QTI7RDdBMjsxMTEyIDExNzUgMTFDMTtEN0EyOzExMTIgMTE3NSAxMUMxOworRDdBMztEN0EzOzExMTIgMTE3NSAxMUMyO0Q3QTM7MTExMiAxMTc1IDExQzI7CitGOTAwOzhDNDg7OEM0ODs4QzQ4OzhDNDg7CitGOTAxOzY2RjQ7NjZGNDs2NkY0OzY2RjQ7CitGOTAyOzhFQ0E7OEVDQTs4RUNBOzhFQ0E7CitGOTAzOzhDQzg7OENDODs4Q0M4OzhDQzg7CitGOTA0OzZFRDE7NkVEMTs2RUQxOzZFRDE7CitGOTA1OzRFMzI7NEUzMjs0RTMyOzRFMzI7CitGOTA2OzUzRTU7NTNFNTs1M0U1OzUzRTU7CitGOTA3OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA4OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA5OzU5NTE7NTk1MTs1OTUxOzU5NTE7CitGOTBBOzkxRDE7OTFEMTs5MUQxOzkxRDE7CitGOTBCOzU1ODc7NTU4Nzs1NTg3OzU1ODc7CitGOTBDOzU5NDg7NTk0ODs1OTQ4OzU5NDg7CitGOTBEOzYxRjY7NjFGNjs2MUY2OzYxRjY7CitGOTBFOzc2Njk7NzY2OTs3NjY5Ozc2Njk7CitGOTBGOzdGODU7N0Y4NTs3Rjg1OzdGODU7CitGOTEwOzg2M0Y7ODYzRjs4NjNGOzg2M0Y7CitGOTExOzg3QkE7ODdCQTs4N0JBOzg3QkE7CitGOTEyOzg4Rjg7ODhGODs4OEY4Ozg4Rjg7CitGOTEzOzkwOEY7OTA4Rjs5MDhGOzkwOEY7CitGOTE0OzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTE1OzZEMUI7NkQxQjs2RDFCOzZEMUI7CitGOTE2OzcwRDk7NzBEOTs3MEQ5OzcwRDk7CitGOTE3OzczREU7NzNERTs3M0RFOzczREU7CitGOTE4Ozg0M0Q7ODQzRDs4NDNEOzg0M0Q7CitGOTE5OzkxNkE7OTE2QTs5MTZBOzkxNkE7CitGOTFBOzk5RjE7OTlGMTs5OUYxOzk5RjE7CitGOTFCOzRFODI7NEU4Mjs0RTgyOzRFODI7CitGOTFDOzUzNzU7NTM3NTs1Mzc1OzUzNzU7CitGOTFEOzZCMDQ7NkIwNDs2QjA0OzZCMDQ7CitGOTFFOzcyMUI7NzIxQjs3MjFCOzcyMUI7CitGOTFGOzg2MkQ7ODYyRDs4NjJEOzg2MkQ7CitGOTIwOzlFMUU7OUUxRTs5RTFFOzlFMUU7CitGOTIxOzVENTA7NUQ1MDs1RDUwOzVENTA7CitGOTIyOzZGRUI7NkZFQjs2RkVCOzZGRUI7CitGOTIzOzg1Q0Q7ODVDRDs4NUNEOzg1Q0Q7CitGOTI0Ozg5NjQ7ODk2NDs4OTY0Ozg5NjQ7CitGOTI1OzYyQzk7NjJDOTs2MkM5OzYyQzk7CitGOTI2OzgxRDg7ODFEODs4MUQ4OzgxRDg7CitGOTI3Ozg4MUY7ODgxRjs4ODFGOzg4MUY7CitGOTI4OzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CitGOTI5OzY3MTc7NjcxNzs2NzE3OzY3MTc7CitGOTJBOzZENkE7NkQ2QTs2RDZBOzZENkE7CitGOTJCOzcyRkM7NzJGQzs3MkZDOzcyRkM7CitGOTJDOzkwQ0U7OTBDRTs5MENFOzkwQ0U7CitGOTJEOzRGODY7NEY4Njs0Rjg2OzRGODY7CitGOTJFOzUxQjc7NTFCNzs1MUI3OzUxQjc7CitGOTJGOzUyREU7NTJERTs1MkRFOzUyREU7CitGOTMwOzY0QzQ7NjRDNDs2NEM0OzY0QzQ7CitGOTMxOzZBRDM7NkFEMzs2QUQzOzZBRDM7CitGOTMyOzcyMTA7NzIxMDs3MjEwOzcyMTA7CitGOTMzOzc2RTc7NzZFNzs3NkU3Ozc2RTc7CitGOTM0OzgwMDE7ODAwMTs4MDAxOzgwMDE7CitGOTM1Ozg2MDY7ODYwNjs4NjA2Ozg2MDY7CitGOTM2Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CitGOTM3OzhERUY7OERFRjs4REVGOzhERUY7CitGOTM4Ozk3MzI7OTczMjs5NzMyOzk3MzI7CitGOTM5OzlCNkY7OUI2Rjs5QjZGOzlCNkY7CitGOTNBOzlERkE7OURGQTs5REZBOzlERkE7CitGOTNCOzc4OEM7Nzg4Qzs3ODhDOzc4OEM7CitGOTNDOzc5N0Y7Nzk3Rjs3OTdGOzc5N0Y7CitGOTNEOzdEQTA7N0RBMDs3REEwOzdEQTA7CitGOTNFOzgzQzk7ODNDOTs4M0M5OzgzQzk7CitGOTNGOzkzMDQ7OTMwNDs5MzA0OzkzMDQ7CitGOTQwOzlFN0Y7OUU3Rjs5RTdGOzlFN0Y7CitGOTQxOzhBRDY7OEFENjs4QUQ2OzhBRDY7CitGOTQyOzU4REY7NThERjs1OERGOzU4REY7CitGOTQzOzVGMDQ7NUYwNDs1RjA0OzVGMDQ7CitGOTQ0OzdDNjA7N0M2MDs3QzYwOzdDNjA7CitGOTQ1OzgwN0U7ODA3RTs4MDdFOzgwN0U7CitGOTQ2OzcyNjI7NzI2Mjs3MjYyOzcyNjI7CitGOTQ3Ozc4Q0E7NzhDQTs3OENBOzc4Q0E7CitGOTQ4OzhDQzI7OENDMjs4Q0MyOzhDQzI7CitGOTQ5Ozk2Rjc7OTZGNzs5NkY3Ozk2Rjc7CitGOTRBOzU4RDg7NThEODs1OEQ4OzU4RDg7CitGOTRCOzVDNjI7NUM2Mjs1QzYyOzVDNjI7CitGOTRDOzZBMTM7NkExMzs2QTEzOzZBMTM7CitGOTREOzZEREE7NkREQTs2RERBOzZEREE7CitGOTRFOzZGMEY7NkYwRjs2RjBGOzZGMEY7CitGOTRGOzdEMkY7N0QyRjs3RDJGOzdEMkY7CitGOTUwOzdFMzc7N0UzNzs3RTM3OzdFMzc7CitGOTUxOzk2NEI7OTY0Qjs5NjRCOzk2NEI7CitGOTUyOzUyRDI7NTJEMjs1MkQyOzUyRDI7CitGOTUzOzgwOEI7ODA4Qjs4MDhCOzgwOEI7CitGOTU0OzUxREM7NTFEQzs1MURDOzUxREM7CitGOTU1OzUxQ0M7NTFDQzs1MUNDOzUxQ0M7CitGOTU2OzdBMUM7N0ExQzs3QTFDOzdBMUM7CitGOTU3OzdEQkU7N0RCRTs3REJFOzdEQkU7CitGOTU4OzgzRjE7ODNGMTs4M0YxOzgzRjE7CitGOTU5Ozk2NzU7OTY3NTs5Njc1Ozk2NzU7CitGOTVBOzhCODA7OEI4MDs4QjgwOzhCODA7CitGOTVCOzYyQ0Y7NjJDRjs2MkNGOzYyQ0Y7CitGOTVDOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTVEOzhBRkU7OEFGRTs4QUZFOzhBRkU7CitGOTVFOzRFMzk7NEUzOTs0RTM5OzRFMzk7CitGOTVGOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOTYwOzYwMTI7NjAxMjs2MDEyOzYwMTI7CitGOTYxOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOTYyOzc1NzA7NzU3MDs3NTcwOzc1NzA7CitGOTYzOzUzMTc7NTMxNzs1MzE3OzUzMTc7CitGOTY0Ozc4RkI7NzhGQjs3OEZCOzc4RkI7CitGOTY1OzRGQkY7NEZCRjs0RkJGOzRGQkY7CitGOTY2OzVGQTk7NUZBOTs1RkE5OzVGQTk7CitGOTY3OzRFMEQ7NEUwRDs0RTBEOzRFMEQ7CitGOTY4OzZDQ0M7NkNDQzs2Q0NDOzZDQ0M7CitGOTY5OzY1Nzg7NjU3ODs2NTc4OzY1Nzg7CitGOTZBOzdEMjI7N0QyMjs3RDIyOzdEMjI7CitGOTZCOzUzQzM7NTNDMzs1M0MzOzUzQzM7CitGOTZDOzU4NUU7NTg1RTs1ODVFOzU4NUU7CitGOTZEOzc3MDE7NzcwMTs3NzAxOzc3MDE7CitGOTZFOzg0NDk7ODQ0OTs4NDQ5Ozg0NDk7CitGOTZGOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOTcwOzZCQkE7NkJCQTs2QkJBOzZCQkE7CitGOTcxOzhGQjA7OEZCMDs4RkIwOzhGQjA7CitGOTcyOzZDODg7NkM4ODs2Qzg4OzZDODg7CitGOTczOzYyRkU7NjJGRTs2MkZFOzYyRkU7CitGOTc0OzgyRTU7ODJFNTs4MkU1OzgyRTU7CitGOTc1OzYzQTA7NjNBMDs2M0EwOzYzQTA7CitGOTc2Ozc1NjU7NzU2NTs3NTY1Ozc1NjU7CitGOTc3OzRFQUU7NEVBRTs0RUFFOzRFQUU7CitGOTc4OzUxNjk7NTE2OTs1MTY5OzUxNjk7CitGOTc5OzUxQzk7NTFDOTs1MUM5OzUxQzk7CitGOTdBOzY4ODE7Njg4MTs2ODgxOzY4ODE7CitGOTdCOzdDRTc7N0NFNzs3Q0U3OzdDRTc7CitGOTdDOzgyNkY7ODI2Rjs4MjZGOzgyNkY7CitGOTdEOzhBRDI7OEFEMjs4QUQyOzhBRDI7CitGOTdFOzkxQ0Y7OTFDRjs5MUNGOzkxQ0Y7CitGOTdGOzUyRjU7NTJGNTs1MkY1OzUyRjU7CitGOTgwOzU0NDI7NTQ0Mjs1NDQyOzU0NDI7CitGOTgxOzU5NzM7NTk3Mzs1OTczOzU5NzM7CitGOTgyOzVFRUM7NUVFQzs1RUVDOzVFRUM7CitGOTgzOzY1QzU7NjVDNTs2NUM1OzY1QzU7CitGOTg0OzZGRkU7NkZGRTs2RkZFOzZGRkU7CitGOTg1Ozc5MkE7NzkyQTs3OTJBOzc5MkE7CitGOTg2Ozk1QUQ7OTVBRDs5NUFEOzk1QUQ7CitGOTg3OzlBNkE7OUE2QTs5QTZBOzlBNkE7CitGOTg4OzlFOTc7OUU5Nzs5RTk3OzlFOTc7CitGOTg5OzlFQ0U7OUVDRTs5RUNFOzlFQ0U7CitGOThBOzUyOUI7NTI5Qjs1MjlCOzUyOUI7CitGOThCOzY2QzY7NjZDNjs2NkM2OzY2QzY7CitGOThDOzZCNzc7NkI3Nzs2Qjc3OzZCNzc7CitGOThEOzhGNjI7OEY2Mjs4RjYyOzhGNjI7CitGOThFOzVFNzQ7NUU3NDs1RTc0OzVFNzQ7CitGOThGOzYxOTA7NjE5MDs2MTkwOzYxOTA7CitGOTkwOzYyMDA7NjIwMDs2MjAwOzYyMDA7CitGOTkxOzY0OUE7NjQ5QTs2NDlBOzY0OUE7CitGOTkyOzZGMjM7NkYyMzs2RjIzOzZGMjM7CitGOTkzOzcxNDk7NzE0OTs3MTQ5OzcxNDk7CitGOTk0Ozc0ODk7NzQ4OTs3NDg5Ozc0ODk7CitGOTk1Ozc5Q0E7NzlDQTs3OUNBOzc5Q0E7CitGOTk2OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGOTk3OzgwNkY7ODA2Rjs4MDZGOzgwNkY7CitGOTk4OzhGMjY7OEYyNjs4RjI2OzhGMjY7CitGOTk5Ozg0RUU7ODRFRTs4NEVFOzg0RUU7CitGOTlBOzkwMjM7OTAyMzs5MDIzOzkwMjM7CitGOTlCOzkzNEE7OTM0QTs5MzRBOzkzNEE7CitGOTlDOzUyMTc7NTIxNzs1MjE3OzUyMTc7CitGOTlEOzUyQTM7NTJBMzs1MkEzOzUyQTM7CitGOTlFOzU0QkQ7NTRCRDs1NEJEOzU0QkQ7CitGOTlGOzcwQzg7NzBDODs3MEM4OzcwQzg7CitGOUEwOzg4QzI7ODhDMjs4OEMyOzg4QzI7CitGOUExOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOUEyOzVFQzk7NUVDOTs1RUM5OzVFQzk7CitGOUEzOzVGRjU7NUZGNTs1RkY1OzVGRjU7CitGOUE0OzYzN0I7NjM3Qjs2MzdCOzYzN0I7CitGOUE1OzZCQUU7NkJBRTs2QkFFOzZCQUU7CitGOUE2OzdDM0U7N0MzRTs3QzNFOzdDM0U7CitGOUE3OzczNzU7NzM3NTs3Mzc1OzczNzU7CitGOUE4OzRFRTQ7NEVFNDs0RUU0OzRFRTQ7CitGOUE5OzU2Rjk7NTZGOTs1NkY5OzU2Rjk7CitGOUFBOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOUFCOzVEQkE7NURCQTs1REJBOzVEQkE7CitGOUFDOzYwMUM7NjAxQzs2MDFDOzYwMUM7CitGOUFEOzczQjI7NzNCMjs3M0IyOzczQjI7CitGOUFFOzc0Njk7NzQ2OTs3NDY5Ozc0Njk7CitGOUFGOzdGOUE7N0Y5QTs3RjlBOzdGOUE7CitGOUIwOzgwNDY7ODA0Njs4MDQ2OzgwNDY7CitGOUIxOzkyMzQ7OTIzNDs5MjM0OzkyMzQ7CitGOUIyOzk2RjY7OTZGNjs5NkY2Ozk2RjY7CitGOUIzOzk3NDg7OTc0ODs5NzQ4Ozk3NDg7CitGOUI0Ozk4MTg7OTgxODs5ODE4Ozk4MTg7CitGOUI1OzRGOEI7NEY4Qjs0RjhCOzRGOEI7CitGOUI2Ozc5QUU7NzlBRTs3OUFFOzc5QUU7CitGOUI3OzkxQjQ7OTFCNDs5MUI0OzkxQjQ7CitGOUI4Ozk2Qjg7OTZCODs5NkI4Ozk2Qjg7CitGOUI5OzYwRTE7NjBFMTs2MEUxOzYwRTE7CitGOUJBOzRFODY7NEU4Njs0RTg2OzRFODY7CitGOUJCOzUwREE7NTBEQTs1MERBOzUwREE7CitGOUJDOzVCRUU7NUJFRTs1QkVFOzVCRUU7CitGOUJEOzVDM0Y7NUMzRjs1QzNGOzVDM0Y7CitGOUJFOzY1OTk7NjU5OTs2NTk5OzY1OTk7CitGOUJGOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOUMwOzcxQ0U7NzFDRTs3MUNFOzcxQ0U7CitGOUMxOzc2NDI7NzY0Mjs3NjQyOzc2NDI7CitGOUMyOzg0RkM7ODRGQzs4NEZDOzg0RkM7CitGOUMzOzkwN0M7OTA3Qzs5MDdDOzkwN0M7CitGOUM0OzlGOEQ7OUY4RDs5RjhEOzlGOEQ7CitGOUM1OzY2ODg7NjY4ODs2Njg4OzY2ODg7CitGOUM2Ozk2MkU7OTYyRTs5NjJFOzk2MkU7CitGOUM3OzUyODk7NTI4OTs1Mjg5OzUyODk7CitGOUM4OzY3N0I7Njc3Qjs2NzdCOzY3N0I7CitGOUM5OzY3RjM7NjdGMzs2N0YzOzY3RjM7CitGOUNBOzZENDE7NkQ0MTs2RDQxOzZENDE7CitGOUNCOzZFOUM7NkU5Qzs2RTlDOzZFOUM7CitGOUNDOzc0MDk7NzQwOTs3NDA5Ozc0MDk7CitGOUNEOzc1NTk7NzU1OTs3NTU5Ozc1NTk7CitGOUNFOzc4NkI7Nzg2Qjs3ODZCOzc4NkI7CitGOUNGOzdEMTA7N0QxMDs3RDEwOzdEMTA7CitGOUQwOzk4NUU7OTg1RTs5ODVFOzk4NUU7CitGOUQxOzUxNkQ7NTE2RDs1MTZEOzUxNkQ7CitGOUQyOzYyMkU7NjIyRTs2MjJFOzYyMkU7CitGOUQzOzk2Nzg7OTY3ODs5Njc4Ozk2Nzg7CitGOUQ0OzUwMkI7NTAyQjs1MDJCOzUwMkI7CitGOUQ1OzVEMTk7NUQxOTs1RDE5OzVEMTk7CitGOUQ2OzZERUE7NkRFQTs2REVBOzZERUE7CitGOUQ3OzhGMkE7OEYyQTs4RjJBOzhGMkE7CitGOUQ4OzVGOEI7NUY4Qjs1RjhCOzVGOEI7CitGOUQ5OzYxNDQ7NjE0NDs2MTQ0OzYxNDQ7CitGOURBOzY4MTc7NjgxNzs2ODE3OzY4MTc7CitGOURCOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOURDOzk2ODY7OTY4Njs5Njg2Ozk2ODY7CitGOUREOzUyMjk7NTIyOTs1MjI5OzUyMjk7CitGOURFOzU0MEY7NTQwRjs1NDBGOzU0MEY7CitGOURGOzVDNjU7NUM2NTs1QzY1OzVDNjU7CitGOUUwOzY2MTM7NjYxMzs2NjEzOzY2MTM7CitGOUUxOzY3NEU7Njc0RTs2NzRFOzY3NEU7CitGOUUyOzY4QTg7NjhBODs2OEE4OzY4QTg7CitGOUUzOzZDRTU7NkNFNTs2Q0U1OzZDRTU7CitGOUU0Ozc0MDY7NzQwNjs3NDA2Ozc0MDY7CitGOUU1Ozc1RTI7NzVFMjs3NUUyOzc1RTI7CitGOUU2OzdGNzk7N0Y3OTs3Rjc5OzdGNzk7CitGOUU3Ozg4Q0Y7ODhDRjs4OENGOzg4Q0Y7CitGOUU4Ozg4RTE7ODhFMTs4OEUxOzg4RTE7CitGOUU5OzkxQ0M7OTFDQzs5MUNDOzkxQ0M7CitGOUVBOzk2RTI7OTZFMjs5NkUyOzk2RTI7CitGOUVCOzUzM0Y7NTMzRjs1MzNGOzUzM0Y7CitGOUVDOzZFQkE7NkVCQTs2RUJBOzZFQkE7CitGOUVEOzU0MUQ7NTQxRDs1NDFEOzU0MUQ7CitGOUVFOzcxRDA7NzFEMDs3MUQwOzcxRDA7CitGOUVGOzc0OTg7NzQ5ODs3NDk4Ozc0OTg7CitGOUYwOzg1RkE7ODVGQTs4NUZBOzg1RkE7CitGOUYxOzk2QTM7OTZBMzs5NkEzOzk2QTM7CitGOUYyOzlDNTc7OUM1Nzs5QzU3OzlDNTc7CitGOUYzOzlFOUY7OUU5Rjs5RTlGOzlFOUY7CitGOUY0OzY3OTc7Njc5Nzs2Nzk3OzY3OTc7CitGOUY1OzZEQ0I7NkRDQjs2RENCOzZEQ0I7CitGOUY2OzgxRTg7ODFFODs4MUU4OzgxRTg7CitGOUY3OzdBQ0I7N0FDQjs3QUNCOzdBQ0I7CitGOUY4OzdCMjA7N0IyMDs3QjIwOzdCMjA7CitGOUY5OzdDOTI7N0M5Mjs3QzkyOzdDOTI7CitGOUZBOzcyQzA7NzJDMDs3MkMwOzcyQzA7CitGOUZCOzcwOTk7NzA5OTs3MDk5OzcwOTk7CitGOUZDOzhCNTg7OEI1ODs4QjU4OzhCNTg7CitGOUZEOzRFQzA7NEVDMDs0RUMwOzRFQzA7CitGOUZFOzgzMzY7ODMzNjs4MzM2OzgzMzY7CitGOUZGOzUyM0E7NTIzQTs1MjNBOzUyM0E7CitGQTAwOzUyMDc7NTIwNzs1MjA3OzUyMDc7CitGQTAxOzVFQTY7NUVBNjs1RUE2OzVFQTY7CitGQTAyOzYyRDM7NjJEMzs2MkQzOzYyRDM7CitGQTAzOzdDRDY7N0NENjs3Q0Q2OzdDRDY7CitGQTA0OzVCODU7NUI4NTs1Qjg1OzVCODU7CitGQTA1OzZEMUU7NkQxRTs2RDFFOzZEMUU7CitGQTA2OzY2QjQ7NjZCNDs2NkI0OzY2QjQ7CitGQTA3OzhGM0I7OEYzQjs4RjNCOzhGM0I7CitGQTA4Ozg4NEM7ODg0Qzs4ODRDOzg4NEM7CitGQTA5Ozk2NEQ7OTY0RDs5NjREOzk2NEQ7CitGQTBBOzg5OEI7ODk4Qjs4OThCOzg5OEI7CitGQTBCOzVFRDM7NUVEMzs1RUQzOzVFRDM7CitGQTBDOzUxNDA7NTE0MDs1MTQwOzUxNDA7CitGQTBEOzU1QzA7NTVDMDs1NUMwOzU1QzA7CitGQTEwOzU4NUE7NTg1QTs1ODVBOzU4NUE7CitGQTEyOzY2NzQ7NjY3NDs2Njc0OzY2NzQ7CitGQTE1OzUxREU7NTFERTs1MURFOzUxREU7CitGQTE2OzczMkE7NzMyQTs3MzJBOzczMkE7CitGQTE3Ozc2Q0E7NzZDQTs3NkNBOzc2Q0E7CitGQTE4Ozc5M0M7NzkzQzs3OTNDOzc5M0M7CitGQTE5Ozc5NUU7Nzk1RTs3OTVFOzc5NUU7CitGQTFBOzc5NjU7Nzk2NTs3OTY1Ozc5NjU7CitGQTFCOzc5OEY7Nzk4Rjs3OThGOzc5OEY7CitGQTFDOzk3NTY7OTc1Njs5NzU2Ozk3NTY7CitGQTFEOzdDQkU7N0NCRTs3Q0JFOzdDQkU7CitGQTFFOzdGQkQ7N0ZCRDs3RkJEOzdGQkQ7CitGQTIwOzg2MTI7ODYxMjs4NjEyOzg2MTI7CitGQTIyOzhBRjg7OEFGODs4QUY4OzhBRjg7CitGQTI1OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTI2OzkwRkQ7OTBGRDs5MEZEOzkwRkQ7CitGQTJBOzk4RUY7OThFRjs5OEVGOzk4RUY7CitGQTJCOzk4RkM7OThGQzs5OEZDOzk4RkM7CitGQTJDOzk5Mjg7OTkyODs5OTI4Ozk5Mjg7CitGQTJEOzlEQjQ7OURCNDs5REI0OzlEQjQ7CitGQTMwOzRGQUU7NEZBRTs0RkFFOzRGQUU7CitGQTMxOzUwRTc7NTBFNzs1MEU3OzUwRTc7CitGQTMyOzUxNEQ7NTE0RDs1MTREOzUxNEQ7CitGQTMzOzUyQzk7NTJDOTs1MkM5OzUyQzk7CitGQTM0OzUyRTQ7NTJFNDs1MkU0OzUyRTQ7CitGQTM1OzUzNTE7NTM1MTs1MzUxOzUzNTE7CitGQTM2OzU1OUQ7NTU5RDs1NTlEOzU1OUQ7CitGQTM3OzU2MDY7NTYwNjs1NjA2OzU2MDY7CitGQTM4OzU2Njg7NTY2ODs1NjY4OzU2Njg7CitGQTM5OzU4NDA7NTg0MDs1ODQwOzU4NDA7CitGQTNBOzU4QTg7NThBODs1OEE4OzU4QTg7CitGQTNCOzVDNjQ7NUM2NDs1QzY0OzVDNjQ7CitGQTNDOzVDNkU7NUM2RTs1QzZFOzVDNkU7CitGQTNEOzYwOTQ7NjA5NDs2MDk0OzYwOTQ7CitGQTNFOzYxNjg7NjE2ODs2MTY4OzYxNjg7CitGQTNGOzYxOEU7NjE4RTs2MThFOzYxOEU7CitGQTQwOzYxRjI7NjFGMjs2MUYyOzYxRjI7CitGQTQxOzY1NEY7NjU0Rjs2NTRGOzY1NEY7CitGQTQyOzY1RTI7NjVFMjs2NUUyOzY1RTI7CitGQTQzOzY2OTE7NjY5MTs2NjkxOzY2OTE7CitGQTQ0OzY4ODU7Njg4NTs2ODg1OzY4ODU7CitGQTQ1OzZENzc7NkQ3Nzs2RDc3OzZENzc7CitGQTQ2OzZFMUE7NkUxQTs2RTFBOzZFMUE7CitGQTQ3OzZGMjI7NkYyMjs2RjIyOzZGMjI7CitGQTQ4OzcxNkU7NzE2RTs3MTZFOzcxNkU7CitGQTQ5OzcyMkI7NzIyQjs3MjJCOzcyMkI7CitGQTRBOzc0MjI7NzQyMjs3NDIyOzc0MjI7CitGQTRCOzc4OTE7Nzg5MTs3ODkxOzc4OTE7CitGQTRDOzc5M0U7NzkzRTs3OTNFOzc5M0U7CitGQTREOzc5NDk7Nzk0OTs3OTQ5Ozc5NDk7CitGQTRFOzc5NDg7Nzk0ODs3OTQ4Ozc5NDg7CitGQTRGOzc5NTA7Nzk1MDs3OTUwOzc5NTA7CitGQTUwOzc5NTY7Nzk1Njs3OTU2Ozc5NTY7CitGQTUxOzc5NUQ7Nzk1RDs3OTVEOzc5NUQ7CitGQTUyOzc5OEQ7Nzk4RDs3OThEOzc5OEQ7CitGQTUzOzc5OEU7Nzk4RTs3OThFOzc5OEU7CitGQTU0OzdBNDA7N0E0MDs3QTQwOzdBNDA7CitGQTU1OzdBODE7N0E4MTs3QTgxOzdBODE7CitGQTU2OzdCQzA7N0JDMDs3QkMwOzdCQzA7CitGQTU3OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGQTU4OzdFMDk7N0UwOTs3RTA5OzdFMDk7CitGQTU5OzdFNDE7N0U0MTs3RTQxOzdFNDE7CitGQTVBOzdGNzI7N0Y3Mjs3RjcyOzdGNzI7CitGQTVCOzgwMDU7ODAwNTs4MDA1OzgwMDU7CitGQTVDOzgxRUQ7ODFFRDs4MUVEOzgxRUQ7CitGQTVEOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVFOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVGOzg0NTc7ODQ1Nzs4NDU3Ozg0NTc7CitGQTYwOzg5MTA7ODkxMDs4OTEwOzg5MTA7CitGQTYxOzg5OTY7ODk5Njs4OTk2Ozg5OTY7CitGQTYyOzhCMDE7OEIwMTs4QjAxOzhCMDE7CitGQTYzOzhCMzk7OEIzOTs4QjM5OzhCMzk7CitGQTY0OzhDRDM7OENEMzs4Q0QzOzhDRDM7CitGQTY1OzhEMDg7OEQwODs4RDA4OzhEMDg7CitGQTY2OzhGQjY7OEZCNjs4RkI2OzhGQjY7CitGQTY3OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTY4Ozk2RTM7OTZFMzs5NkUzOzk2RTM7CitGQTY5Ozk3RkY7OTdGRjs5N0ZGOzk3RkY7CitGQTZBOzk4M0I7OTgzQjs5ODNCOzk4M0I7CitGQjAwO0ZCMDA7RkIwMDswMDY2IDAwNjY7MDA2NiAwMDY2OworRkIwMTtGQjAxO0ZCMDE7MDA2NiAwMDY5OzAwNjYgMDA2OTsKK0ZCMDI7RkIwMjtGQjAyOzAwNjYgMDA2QzswMDY2IDAwNkM7CitGQjAzO0ZCMDM7RkIwMzswMDY2IDAwNjYgMDA2OTswMDY2IDAwNjYgMDA2OTsKK0ZCMDQ7RkIwNDtGQjA0OzAwNjYgMDA2NiAwMDZDOzAwNjYgMDA2NiAwMDZDOworRkIwNTtGQjA1O0ZCMDU7MDA3MyAwMDc0OzAwNzMgMDA3NDsKK0ZCMDY7RkIwNjtGQjA2OzAwNzMgMDA3NDswMDczIDAwNzQ7CitGQjEzO0ZCMTM7RkIxMzswNTc0IDA1NzY7MDU3NCAwNTc2OworRkIxNDtGQjE0O0ZCMTQ7MDU3NCAwNTY1OzA1NzQgMDU2NTsKK0ZCMTU7RkIxNTtGQjE1OzA1NzQgMDU2QjswNTc0IDA1NkI7CitGQjE2O0ZCMTY7RkIxNjswNTdFIDA1NzY7MDU3RSAwNTc2OworRkIxNztGQjE3O0ZCMTc7MDU3NCAwNTZEOzA1NzQgMDU2RDsKK0ZCMUQ7MDVEOSAwNUI0OzA1RDkgMDVCNDswNUQ5IDA1QjQ7MDVEOSAwNUI0OworRkIxRjswNUYyIDA1Qjc7MDVGMiAwNUI3OzA1RjIgMDVCNzswNUYyIDA1Qjc7CitGQjIwO0ZCMjA7RkIyMDswNUUyOzA1RTI7CitGQjIxO0ZCMjE7RkIyMTswNUQwOzA1RDA7CitGQjIyO0ZCMjI7RkIyMjswNUQzOzA1RDM7CitGQjIzO0ZCMjM7RkIyMzswNUQ0OzA1RDQ7CitGQjI0O0ZCMjQ7RkIyNDswNURCOzA1REI7CitGQjI1O0ZCMjU7RkIyNTswNURDOzA1REM7CitGQjI2O0ZCMjY7RkIyNjswNUREOzA1REQ7CitGQjI3O0ZCMjc7RkIyNzswNUU4OzA1RTg7CitGQjI4O0ZCMjg7RkIyODswNUVBOzA1RUE7CitGQjI5O0ZCMjk7RkIyOTswMDJCOzAwMkI7CitGQjJBOzA1RTkgMDVDMTswNUU5IDA1QzE7MDVFOSAwNUMxOzA1RTkgMDVDMTsKK0ZCMkI7MDVFOSAwNUMyOzA1RTkgMDVDMjswNUU5IDA1QzI7MDVFOSAwNUMyOworRkIyQzswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTsKK0ZCMkQ7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7CitGQjJFOzA1RDAgMDVCNzswNUQwIDA1Qjc7MDVEMCAwNUI3OzA1RDAgMDVCNzsKK0ZCMkY7MDVEMCAwNUI4OzA1RDAgMDVCODswNUQwIDA1Qjg7MDVEMCAwNUI4OworRkIzMDswNUQwIDA1QkM7MDVEMCAwNUJDOzA1RDAgMDVCQzswNUQwIDA1QkM7CitGQjMxOzA1RDEgMDVCQzswNUQxIDA1QkM7MDVEMSAwNUJDOzA1RDEgMDVCQzsKK0ZCMzI7MDVEMiAwNUJDOzA1RDIgMDVCQzswNUQyIDA1QkM7MDVEMiAwNUJDOworRkIzMzswNUQzIDA1QkM7MDVEMyAwNUJDOzA1RDMgMDVCQzswNUQzIDA1QkM7CitGQjM0OzA1RDQgMDVCQzswNUQ0IDA1QkM7MDVENCAwNUJDOzA1RDQgMDVCQzsKK0ZCMzU7MDVENSAwNUJDOzA1RDUgMDVCQzswNUQ1IDA1QkM7MDVENSAwNUJDOworRkIzNjswNUQ2IDA1QkM7MDVENiAwNUJDOzA1RDYgMDVCQzswNUQ2IDA1QkM7CitGQjM4OzA1RDggMDVCQzswNUQ4IDA1QkM7MDVEOCAwNUJDOzA1RDggMDVCQzsKK0ZCMzk7MDVEOSAwNUJDOzA1RDkgMDVCQzswNUQ5IDA1QkM7MDVEOSAwNUJDOworRkIzQTswNURBIDA1QkM7MDVEQSAwNUJDOzA1REEgMDVCQzswNURBIDA1QkM7CitGQjNCOzA1REIgMDVCQzswNURCIDA1QkM7MDVEQiAwNUJDOzA1REIgMDVCQzsKK0ZCM0M7MDVEQyAwNUJDOzA1REMgMDVCQzswNURDIDA1QkM7MDVEQyAwNUJDOworRkIzRTswNURFIDA1QkM7MDVERSAwNUJDOzA1REUgMDVCQzswNURFIDA1QkM7CitGQjQwOzA1RTAgMDVCQzswNUUwIDA1QkM7MDVFMCAwNUJDOzA1RTAgMDVCQzsKK0ZCNDE7MDVFMSAwNUJDOzA1RTEgMDVCQzswNUUxIDA1QkM7MDVFMSAwNUJDOworRkI0MzswNUUzIDA1QkM7MDVFMyAwNUJDOzA1RTMgMDVCQzswNUUzIDA1QkM7CitGQjQ0OzA1RTQgMDVCQzswNUU0IDA1QkM7MDVFNCAwNUJDOzA1RTQgMDVCQzsKK0ZCNDY7MDVFNiAwNUJDOzA1RTYgMDVCQzswNUU2IDA1QkM7MDVFNiAwNUJDOworRkI0NzswNUU3IDA1QkM7MDVFNyAwNUJDOzA1RTcgMDVCQzswNUU3IDA1QkM7CitGQjQ4OzA1RTggMDVCQzswNUU4IDA1QkM7MDVFOCAwNUJDOzA1RTggMDVCQzsKK0ZCNDk7MDVFOSAwNUJDOzA1RTkgMDVCQzswNUU5IDA1QkM7MDVFOSAwNUJDOworRkI0QTswNUVBIDA1QkM7MDVFQSAwNUJDOzA1RUEgMDVCQzswNUVBIDA1QkM7CitGQjRCOzA1RDUgMDVCOTswNUQ1IDA1Qjk7MDVENSAwNUI5OzA1RDUgMDVCOTsKK0ZCNEM7MDVEMSAwNUJGOzA1RDEgMDVCRjswNUQxIDA1QkY7MDVEMSAwNUJGOworRkI0RDswNURCIDA1QkY7MDVEQiAwNUJGOzA1REIgMDVCRjswNURCIDA1QkY7CitGQjRFOzA1RTQgMDVCRjswNUU0IDA1QkY7MDVFNCAwNUJGOzA1RTQgMDVCRjsKK0ZCNEY7RkI0RjtGQjRGOzA1RDAgMDVEQzswNUQwIDA1REM7CitGQjUwO0ZCNTA7RkI1MDswNjcxOzA2NzE7CitGQjUxO0ZCNTE7RkI1MTswNjcxOzA2NzE7CitGQjUyO0ZCNTI7RkI1MjswNjdCOzA2N0I7CitGQjUzO0ZCNTM7RkI1MzswNjdCOzA2N0I7CitGQjU0O0ZCNTQ7RkI1NDswNjdCOzA2N0I7CitGQjU1O0ZCNTU7RkI1NTswNjdCOzA2N0I7CitGQjU2O0ZCNTY7RkI1NjswNjdFOzA2N0U7CitGQjU3O0ZCNTc7RkI1NzswNjdFOzA2N0U7CitGQjU4O0ZCNTg7RkI1ODswNjdFOzA2N0U7CitGQjU5O0ZCNTk7RkI1OTswNjdFOzA2N0U7CitGQjVBO0ZCNUE7RkI1QTswNjgwOzA2ODA7CitGQjVCO0ZCNUI7RkI1QjswNjgwOzA2ODA7CitGQjVDO0ZCNUM7RkI1QzswNjgwOzA2ODA7CitGQjVEO0ZCNUQ7RkI1RDswNjgwOzA2ODA7CitGQjVFO0ZCNUU7RkI1RTswNjdBOzA2N0E7CitGQjVGO0ZCNUY7RkI1RjswNjdBOzA2N0E7CitGQjYwO0ZCNjA7RkI2MDswNjdBOzA2N0E7CitGQjYxO0ZCNjE7RkI2MTswNjdBOzA2N0E7CitGQjYyO0ZCNjI7RkI2MjswNjdGOzA2N0Y7CitGQjYzO0ZCNjM7RkI2MzswNjdGOzA2N0Y7CitGQjY0O0ZCNjQ7RkI2NDswNjdGOzA2N0Y7CitGQjY1O0ZCNjU7RkI2NTswNjdGOzA2N0Y7CitGQjY2O0ZCNjY7RkI2NjswNjc5OzA2Nzk7CitGQjY3O0ZCNjc7RkI2NzswNjc5OzA2Nzk7CitGQjY4O0ZCNjg7RkI2ODswNjc5OzA2Nzk7CitGQjY5O0ZCNjk7RkI2OTswNjc5OzA2Nzk7CitGQjZBO0ZCNkE7RkI2QTswNkE0OzA2QTQ7CitGQjZCO0ZCNkI7RkI2QjswNkE0OzA2QTQ7CitGQjZDO0ZCNkM7RkI2QzswNkE0OzA2QTQ7CitGQjZEO0ZCNkQ7RkI2RDswNkE0OzA2QTQ7CitGQjZFO0ZCNkU7RkI2RTswNkE2OzA2QTY7CitGQjZGO0ZCNkY7RkI2RjswNkE2OzA2QTY7CitGQjcwO0ZCNzA7RkI3MDswNkE2OzA2QTY7CitGQjcxO0ZCNzE7RkI3MTswNkE2OzA2QTY7CitGQjcyO0ZCNzI7RkI3MjswNjg0OzA2ODQ7CitGQjczO0ZCNzM7RkI3MzswNjg0OzA2ODQ7CitGQjc0O0ZCNzQ7RkI3NDswNjg0OzA2ODQ7CitGQjc1O0ZCNzU7RkI3NTswNjg0OzA2ODQ7CitGQjc2O0ZCNzY7RkI3NjswNjgzOzA2ODM7CitGQjc3O0ZCNzc7RkI3NzswNjgzOzA2ODM7CitGQjc4O0ZCNzg7RkI3ODswNjgzOzA2ODM7CitGQjc5O0ZCNzk7RkI3OTswNjgzOzA2ODM7CitGQjdBO0ZCN0E7RkI3QTswNjg2OzA2ODY7CitGQjdCO0ZCN0I7RkI3QjswNjg2OzA2ODY7CitGQjdDO0ZCN0M7RkI3QzswNjg2OzA2ODY7CitGQjdEO0ZCN0Q7RkI3RDswNjg2OzA2ODY7CitGQjdFO0ZCN0U7RkI3RTswNjg3OzA2ODc7CitGQjdGO0ZCN0Y7RkI3RjswNjg3OzA2ODc7CitGQjgwO0ZCODA7RkI4MDswNjg3OzA2ODc7CitGQjgxO0ZCODE7RkI4MTswNjg3OzA2ODc7CitGQjgyO0ZCODI7RkI4MjswNjhEOzA2OEQ7CitGQjgzO0ZCODM7RkI4MzswNjhEOzA2OEQ7CitGQjg0O0ZCODQ7RkI4NDswNjhDOzA2OEM7CitGQjg1O0ZCODU7RkI4NTswNjhDOzA2OEM7CitGQjg2O0ZCODY7RkI4NjswNjhFOzA2OEU7CitGQjg3O0ZCODc7RkI4NzswNjhFOzA2OEU7CitGQjg4O0ZCODg7RkI4ODswNjg4OzA2ODg7CitGQjg5O0ZCODk7RkI4OTswNjg4OzA2ODg7CitGQjhBO0ZCOEE7RkI4QTswNjk4OzA2OTg7CitGQjhCO0ZCOEI7RkI4QjswNjk4OzA2OTg7CitGQjhDO0ZCOEM7RkI4QzswNjkxOzA2OTE7CitGQjhEO0ZCOEQ7RkI4RDswNjkxOzA2OTE7CitGQjhFO0ZCOEU7RkI4RTswNkE5OzA2QTk7CitGQjhGO0ZCOEY7RkI4RjswNkE5OzA2QTk7CitGQjkwO0ZCOTA7RkI5MDswNkE5OzA2QTk7CitGQjkxO0ZCOTE7RkI5MTswNkE5OzA2QTk7CitGQjkyO0ZCOTI7RkI5MjswNkFGOzA2QUY7CitGQjkzO0ZCOTM7RkI5MzswNkFGOzA2QUY7CitGQjk0O0ZCOTQ7RkI5NDswNkFGOzA2QUY7CitGQjk1O0ZCOTU7RkI5NTswNkFGOzA2QUY7CitGQjk2O0ZCOTY7RkI5NjswNkIzOzA2QjM7CitGQjk3O0ZCOTc7RkI5NzswNkIzOzA2QjM7CitGQjk4O0ZCOTg7RkI5ODswNkIzOzA2QjM7CitGQjk5O0ZCOTk7RkI5OTswNkIzOzA2QjM7CitGQjlBO0ZCOUE7RkI5QTswNkIxOzA2QjE7CitGQjlCO0ZCOUI7RkI5QjswNkIxOzA2QjE7CitGQjlDO0ZCOUM7RkI5QzswNkIxOzA2QjE7CitGQjlEO0ZCOUQ7RkI5RDswNkIxOzA2QjE7CitGQjlFO0ZCOUU7RkI5RTswNkJBOzA2QkE7CitGQjlGO0ZCOUY7RkI5RjswNkJBOzA2QkE7CitGQkEwO0ZCQTA7RkJBMDswNkJCOzA2QkI7CitGQkExO0ZCQTE7RkJBMTswNkJCOzA2QkI7CitGQkEyO0ZCQTI7RkJBMjswNkJCOzA2QkI7CitGQkEzO0ZCQTM7RkJBMzswNkJCOzA2QkI7CitGQkE0O0ZCQTQ7RkJBNDswNkMwOzA2RDUgMDY1NDsKK0ZCQTU7RkJBNTtGQkE1OzA2QzA7MDZENSAwNjU0OworRkJBNjtGQkE2O0ZCQTY7MDZDMTswNkMxOworRkJBNztGQkE3O0ZCQTc7MDZDMTswNkMxOworRkJBODtGQkE4O0ZCQTg7MDZDMTswNkMxOworRkJBOTtGQkE5O0ZCQTk7MDZDMTswNkMxOworRkJBQTtGQkFBO0ZCQUE7MDZCRTswNkJFOworRkJBQjtGQkFCO0ZCQUI7MDZCRTswNkJFOworRkJBQztGQkFDO0ZCQUM7MDZCRTswNkJFOworRkJBRDtGQkFEO0ZCQUQ7MDZCRTswNkJFOworRkJBRTtGQkFFO0ZCQUU7MDZEMjswNkQyOworRkJBRjtGQkFGO0ZCQUY7MDZEMjswNkQyOworRkJCMDtGQkIwO0ZCQjA7MDZEMzswNkQyIDA2NTQ7CitGQkIxO0ZCQjE7RkJCMTswNkQzOzA2RDIgMDY1NDsKK0ZCRDM7RkJEMztGQkQzOzA2QUQ7MDZBRDsKK0ZCRDQ7RkJENDtGQkQ0OzA2QUQ7MDZBRDsKK0ZCRDU7RkJENTtGQkQ1OzA2QUQ7MDZBRDsKK0ZCRDY7RkJENjtGQkQ2OzA2QUQ7MDZBRDsKK0ZCRDc7RkJENztGQkQ3OzA2Qzc7MDZDNzsKK0ZCRDg7RkJEODtGQkQ4OzA2Qzc7MDZDNzsKK0ZCRDk7RkJEOTtGQkQ5OzA2QzY7MDZDNjsKK0ZCREE7RkJEQTtGQkRBOzA2QzY7MDZDNjsKK0ZCREI7RkJEQjtGQkRCOzA2Qzg7MDZDODsKK0ZCREM7RkJEQztGQkRDOzA2Qzg7MDZDODsKK0ZCREQ7RkJERDtGQkREOzA2QzcgMDY3NDswNkM3IDA2NzQ7CitGQkRFO0ZCREU7RkJERTswNkNCOzA2Q0I7CitGQkRGO0ZCREY7RkJERjswNkNCOzA2Q0I7CitGQkUwO0ZCRTA7RkJFMDswNkM1OzA2QzU7CitGQkUxO0ZCRTE7RkJFMTswNkM1OzA2QzU7CitGQkUyO0ZCRTI7RkJFMjswNkM5OzA2Qzk7CitGQkUzO0ZCRTM7RkJFMzswNkM5OzA2Qzk7CitGQkU0O0ZCRTQ7RkJFNDswNkQwOzA2RDA7CitGQkU1O0ZCRTU7RkJFNTswNkQwOzA2RDA7CitGQkU2O0ZCRTY7RkJFNjswNkQwOzA2RDA7CitGQkU3O0ZCRTc7RkJFNzswNkQwOzA2RDA7CitGQkU4O0ZCRTg7RkJFODswNjQ5OzA2NDk7CitGQkU5O0ZCRTk7RkJFOTswNjQ5OzA2NDk7CitGQkVBO0ZCRUE7RkJFQTswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVCO0ZCRUI7RkJFQjswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVDO0ZCRUM7RkJFQzswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVEO0ZCRUQ7RkJFRDswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVFO0ZCRUU7RkJFRTswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkVGO0ZCRUY7RkJFRjswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkYwO0ZCRjA7RkJGMDswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYxO0ZCRjE7RkJGMTswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYyO0ZCRjI7RkJGMjswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkYzO0ZCRjM7RkJGMzswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkY0O0ZCRjQ7RkJGNDswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY1O0ZCRjU7RkJGNTswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY2O0ZCRjY7RkJGNjswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY3O0ZCRjc7RkJGNzswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY4O0ZCRjg7RkJGODswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY5O0ZCRjk7RkJGOTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZBO0ZCRkE7RkJGQTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZCO0ZCRkI7RkJGQjswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZDO0ZCRkM7RkJGQzswNkNDOzA2Q0M7CitGQkZEO0ZCRkQ7RkJGRDswNkNDOzA2Q0M7CitGQkZFO0ZCRkU7RkJGRTswNkNDOzA2Q0M7CitGQkZGO0ZCRkY7RkJGRjswNkNDOzA2Q0M7CitGQzAwO0ZDMDA7RkMwMDswNjI2IDA2MkM7MDY0QSAwNjU0IDA2MkM7CitGQzAxO0ZDMDE7RkMwMTswNjI2IDA2MkQ7MDY0QSAwNjU0IDA2MkQ7CitGQzAyO0ZDMDI7RkMwMjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQzAzO0ZDMDM7RkMwMzswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQzA0O0ZDMDQ7RkMwNDswNjI2IDA2NEE7MDY0QSAwNjU0IDA2NEE7CitGQzA1O0ZDMDU7RkMwNTswNjI4IDA2MkM7MDYyOCAwNjJDOworRkMwNjtGQzA2O0ZDMDY7MDYyOCAwNjJEOzA2MjggMDYyRDsKK0ZDMDc7RkMwNztGQzA3OzA2MjggMDYyRTswNjI4IDA2MkU7CitGQzA4O0ZDMDg7RkMwODswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkMwOTtGQzA5O0ZDMDk7MDYyOCAwNjQ5OzA2MjggMDY0OTsKK0ZDMEE7RkMwQTtGQzBBOzA2MjggMDY0QTswNjI4IDA2NEE7CitGQzBCO0ZDMEI7RkMwQjswNjJBIDA2MkM7MDYyQSAwNjJDOworRkMwQztGQzBDO0ZDMEM7MDYyQSAwNjJEOzA2MkEgMDYyRDsKK0ZDMEQ7RkMwRDtGQzBEOzA2MkEgMDYyRTswNjJBIDA2MkU7CitGQzBFO0ZDMEU7RkMwRTswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkMwRjtGQzBGO0ZDMEY7MDYyQSAwNjQ5OzA2MkEgMDY0OTsKK0ZDMTA7RkMxMDtGQzEwOzA2MkEgMDY0QTswNjJBIDA2NEE7CitGQzExO0ZDMTE7RkMxMTswNjJCIDA2MkM7MDYyQiAwNjJDOworRkMxMjtGQzEyO0ZDMTI7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDMTM7RkMxMztGQzEzOzA2MkIgMDY0OTswNjJCIDA2NDk7CitGQzE0O0ZDMTQ7RkMxNDswNjJCIDA2NEE7MDYyQiAwNjRBOworRkMxNTtGQzE1O0ZDMTU7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDMTY7RkMxNjtGQzE2OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQzE3O0ZDMTc7RkMxNzswNjJEIDA2MkM7MDYyRCAwNjJDOworRkMxODtGQzE4O0ZDMTg7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDMTk7RkMxOTtGQzE5OzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQzFBO0ZDMUE7RkMxQTswNjJFIDA2MkQ7MDYyRSAwNjJEOworRkMxQjtGQzFCO0ZDMUI7MDYyRSAwNjQ1OzA2MkUgMDY0NTsKK0ZDMUM7RkMxQztGQzFDOzA2MzMgMDYyQzswNjMzIDA2MkM7CitGQzFEO0ZDMUQ7RkMxRDswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkMxRTtGQzFFO0ZDMUU7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZDMUY7RkMxRjtGQzFGOzA2MzMgMDY0NTswNjMzIDA2NDU7CitGQzIwO0ZDMjA7RkMyMDswNjM1IDA2MkQ7MDYzNSAwNjJEOworRkMyMTtGQzIxO0ZDMjE7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDMjI7RkMyMjtGQzIyOzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQzIzO0ZDMjM7RkMyMzswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkMyNDtGQzI0O0ZDMjQ7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDMjU7RkMyNTtGQzI1OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQzI2O0ZDMjY7RkMyNjswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkMyNztGQzI3O0ZDMjc7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZDMjg7RkMyODtGQzI4OzA2MzggMDY0NTswNjM4IDA2NDU7CitGQzI5O0ZDMjk7RkMyOTswNjM5IDA2MkM7MDYzOSAwNjJDOworRkMyQTtGQzJBO0ZDMkE7MDYzOSAwNjQ1OzA2MzkgMDY0NTsKK0ZDMkI7RkMyQjtGQzJCOzA2M0EgMDYyQzswNjNBIDA2MkM7CitGQzJDO0ZDMkM7RkMyQzswNjNBIDA2NDU7MDYzQSAwNjQ1OworRkMyRDtGQzJEO0ZDMkQ7MDY0MSAwNjJDOzA2NDEgMDYyQzsKK0ZDMkU7RkMyRTtGQzJFOzA2NDEgMDYyRDswNjQxIDA2MkQ7CitGQzJGO0ZDMkY7RkMyRjswNjQxIDA2MkU7MDY0MSAwNjJFOworRkMzMDtGQzMwO0ZDMzA7MDY0MSAwNjQ1OzA2NDEgMDY0NTsKK0ZDMzE7RkMzMTtGQzMxOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzMyO0ZDMzI7RkMzMjswNjQxIDA2NEE7MDY0MSAwNjRBOworRkMzMztGQzMzO0ZDMzM7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDMzQ7RkMzNDtGQzM0OzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQzM1O0ZDMzU7RkMzNTswNjQyIDA2NDk7MDY0MiAwNjQ5OworRkMzNjtGQzM2O0ZDMzY7MDY0MiAwNjRBOzA2NDIgMDY0QTsKK0ZDMzc7RkMzNztGQzM3OzA2NDMgMDYyNzswNjQzIDA2Mjc7CitGQzM4O0ZDMzg7RkMzODswNjQzIDA2MkM7MDY0MyAwNjJDOworRkMzOTtGQzM5O0ZDMzk7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDM0E7RkMzQTtGQzNBOzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQzNCO0ZDM0I7RkMzQjswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkMzQztGQzNDO0ZDM0M7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDM0Q7RkMzRDtGQzNEOzA2NDMgMDY0OTswNjQzIDA2NDk7CitGQzNFO0ZDM0U7RkMzRTswNjQzIDA2NEE7MDY0MyAwNjRBOworRkMzRjtGQzNGO0ZDM0Y7MDY0NCAwNjJDOzA2NDQgMDYyQzsKK0ZDNDA7RkM0MDtGQzQwOzA2NDQgMDYyRDswNjQ0IDA2MkQ7CitGQzQxO0ZDNDE7RkM0MTswNjQ0IDA2MkU7MDY0NCAwNjJFOworRkM0MjtGQzQyO0ZDNDI7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDNDM7RkM0MztGQzQzOzA2NDQgMDY0OTswNjQ0IDA2NDk7CitGQzQ0O0ZDNDQ7RkM0NDswNjQ0IDA2NEE7MDY0NCAwNjRBOworRkM0NTtGQzQ1O0ZDNDU7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDNDY7RkM0NjtGQzQ2OzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQzQ3O0ZDNDc7RkM0NzswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkM0ODtGQzQ4O0ZDNDg7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDNDk7RkM0OTtGQzQ5OzA2NDUgMDY0OTswNjQ1IDA2NDk7CitGQzRBO0ZDNEE7RkM0QTswNjQ1IDA2NEE7MDY0NSAwNjRBOworRkM0QjtGQzRCO0ZDNEI7MDY0NiAwNjJDOzA2NDYgMDYyQzsKK0ZDNEM7RkM0QztGQzRDOzA2NDYgMDYyRDswNjQ2IDA2MkQ7CitGQzREO0ZDNEQ7RkM0RDswNjQ2IDA2MkU7MDY0NiAwNjJFOworRkM0RTtGQzRFO0ZDNEU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDNEY7RkM0RjtGQzRGOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzUwO0ZDNTA7RkM1MDswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM1MTtGQzUxO0ZDNTE7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDNTI7RkM1MjtGQzUyOzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQzUzO0ZDNTM7RkM1MzswNjQ3IDA2NDk7MDY0NyAwNjQ5OworRkM1NDtGQzU0O0ZDNTQ7MDY0NyAwNjRBOzA2NDcgMDY0QTsKK0ZDNTU7RkM1NTtGQzU1OzA2NEEgMDYyQzswNjRBIDA2MkM7CitGQzU2O0ZDNTY7RkM1NjswNjRBIDA2MkQ7MDY0QSAwNjJEOworRkM1NztGQzU3O0ZDNTc7MDY0QSAwNjJFOzA2NEEgMDYyRTsKK0ZDNTg7RkM1ODtGQzU4OzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQzU5O0ZDNTk7RkM1OTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM1QTtGQzVBO0ZDNUE7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDNUI7RkM1QjtGQzVCOzA2MzAgMDY3MDswNjMwIDA2NzA7CitGQzVDO0ZDNUM7RkM1QzswNjMxIDA2NzA7MDYzMSAwNjcwOworRkM1RDtGQzVEO0ZDNUQ7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDNUU7RkM1RTtGQzVFOzAwMjAgMDY0QyAwNjUxOzAwMjAgMDY0QyAwNjUxOworRkM1RjtGQzVGO0ZDNUY7MDAyMCAwNjREIDA2NTE7MDAyMCAwNjREIDA2NTE7CitGQzYwO0ZDNjA7RkM2MDswMDIwIDA2NEUgMDY1MTswMDIwIDA2NEUgMDY1MTsKK0ZDNjE7RkM2MTtGQzYxOzAwMjAgMDY0RiAwNjUxOzAwMjAgMDY0RiAwNjUxOworRkM2MjtGQzYyO0ZDNjI7MDAyMCAwNjUwIDA2NTE7MDAyMCAwNjUwIDA2NTE7CitGQzYzO0ZDNjM7RkM2MzswMDIwIDA2NTEgMDY3MDswMDIwIDA2NTEgMDY3MDsKK0ZDNjQ7RkM2NDtGQzY0OzA2MjYgMDYzMTswNjRBIDA2NTQgMDYzMTsKK0ZDNjU7RkM2NTtGQzY1OzA2MjYgMDYzMjswNjRBIDA2NTQgMDYzMjsKK0ZDNjY7RkM2NjtGQzY2OzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDNjc7RkM2NztGQzY3OzA2MjYgMDY0NjswNjRBIDA2NTQgMDY0NjsKK0ZDNjg7RkM2ODtGQzY4OzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZDNjk7RkM2OTtGQzY5OzA2MjYgMDY0QTswNjRBIDA2NTQgMDY0QTsKK0ZDNkE7RkM2QTtGQzZBOzA2MjggMDYzMTswNjI4IDA2MzE7CitGQzZCO0ZDNkI7RkM2QjswNjI4IDA2MzI7MDYyOCAwNjMyOworRkM2QztGQzZDO0ZDNkM7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDNkQ7RkM2RDtGQzZEOzA2MjggMDY0NjswNjI4IDA2NDY7CitGQzZFO0ZDNkU7RkM2RTswNjI4IDA2NDk7MDYyOCAwNjQ5OworRkM2RjtGQzZGO0ZDNkY7MDYyOCAwNjRBOzA2MjggMDY0QTsKK0ZDNzA7RkM3MDtGQzcwOzA2MkEgMDYzMTswNjJBIDA2MzE7CitGQzcxO0ZDNzE7RkM3MTswNjJBIDA2MzI7MDYyQSAwNjMyOworRkM3MjtGQzcyO0ZDNzI7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDNzM7RkM3MztGQzczOzA2MkEgMDY0NjswNjJBIDA2NDY7CitGQzc0O0ZDNzQ7RkM3NDswNjJBIDA2NDk7MDYyQSAwNjQ5OworRkM3NTtGQzc1O0ZDNzU7MDYyQSAwNjRBOzA2MkEgMDY0QTsKK0ZDNzY7RkM3NjtGQzc2OzA2MkIgMDYzMTswNjJCIDA2MzE7CitGQzc3O0ZDNzc7RkM3NzswNjJCIDA2MzI7MDYyQiAwNjMyOworRkM3ODtGQzc4O0ZDNzg7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDNzk7RkM3OTtGQzc5OzA2MkIgMDY0NjswNjJCIDA2NDY7CitGQzdBO0ZDN0E7RkM3QTswNjJCIDA2NDk7MDYyQiAwNjQ5OworRkM3QjtGQzdCO0ZDN0I7MDYyQiAwNjRBOzA2MkIgMDY0QTsKK0ZDN0M7RkM3QztGQzdDOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzdEO0ZDN0Q7RkM3RDswNjQxIDA2NEE7MDY0MSAwNjRBOworRkM3RTtGQzdFO0ZDN0U7MDY0MiAwNjQ5OzA2NDIgMDY0OTsKK0ZDN0Y7RkM3RjtGQzdGOzA2NDIgMDY0QTswNjQyIDA2NEE7CitGQzgwO0ZDODA7RkM4MDswNjQzIDA2Mjc7MDY0MyAwNjI3OworRkM4MTtGQzgxO0ZDODE7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDODI7RkM4MjtGQzgyOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQzgzO0ZDODM7RkM4MzswNjQzIDA2NDk7MDY0MyAwNjQ5OworRkM4NDtGQzg0O0ZDODQ7MDY0MyAwNjRBOzA2NDMgMDY0QTsKK0ZDODU7RkM4NTtGQzg1OzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQzg2O0ZDODY7RkM4NjswNjQ0IDA2NDk7MDY0NCAwNjQ5OworRkM4NztGQzg3O0ZDODc7MDY0NCAwNjRBOzA2NDQgMDY0QTsKK0ZDODg7RkM4ODtGQzg4OzA2NDUgMDYyNzswNjQ1IDA2Mjc7CitGQzg5O0ZDODk7RkM4OTswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkM4QTtGQzhBO0ZDOEE7MDY0NiAwNjMxOzA2NDYgMDYzMTsKK0ZDOEI7RkM4QjtGQzhCOzA2NDYgMDYzMjswNjQ2IDA2MzI7CitGQzhDO0ZDOEM7RkM4QzswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkM4RDtGQzhEO0ZDOEQ7MDY0NiAwNjQ2OzA2NDYgMDY0NjsKK0ZDOEU7RkM4RTtGQzhFOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzhGO0ZDOEY7RkM4RjswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM5MDtGQzkwO0ZDOTA7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDOTE7RkM5MTtGQzkxOzA2NEEgMDYzMTswNjRBIDA2MzE7CitGQzkyO0ZDOTI7RkM5MjswNjRBIDA2MzI7MDY0QSAwNjMyOworRkM5MztGQzkzO0ZDOTM7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDOTQ7RkM5NDtGQzk0OzA2NEEgMDY0NjswNjRBIDA2NDY7CitGQzk1O0ZDOTU7RkM5NTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM5NjtGQzk2O0ZDOTY7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDOTc7RkM5NztGQzk3OzA2MjYgMDYyQzswNjRBIDA2NTQgMDYyQzsKK0ZDOTg7RkM5ODtGQzk4OzA2MjYgMDYyRDswNjRBIDA2NTQgMDYyRDsKK0ZDOTk7RkM5OTtGQzk5OzA2MjYgMDYyRTswNjRBIDA2NTQgMDYyRTsKK0ZDOUE7RkM5QTtGQzlBOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDOUI7RkM5QjtGQzlCOzA2MjYgMDY0NzswNjRBIDA2NTQgMDY0NzsKK0ZDOUM7RkM5QztGQzlDOzA2MjggMDYyQzswNjI4IDA2MkM7CitGQzlEO0ZDOUQ7RkM5RDswNjI4IDA2MkQ7MDYyOCAwNjJEOworRkM5RTtGQzlFO0ZDOUU7MDYyOCAwNjJFOzA2MjggMDYyRTsKK0ZDOUY7RkM5RjtGQzlGOzA2MjggMDY0NTswNjI4IDA2NDU7CitGQ0EwO0ZDQTA7RkNBMDswNjI4IDA2NDc7MDYyOCAwNjQ3OworRkNBMTtGQ0ExO0ZDQTE7MDYyQSAwNjJDOzA2MkEgMDYyQzsKK0ZDQTI7RkNBMjtGQ0EyOzA2MkEgMDYyRDswNjJBIDA2MkQ7CitGQ0EzO0ZDQTM7RkNBMzswNjJBIDA2MkU7MDYyQSAwNjJFOworRkNBNDtGQ0E0O0ZDQTQ7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDQTU7RkNBNTtGQ0E1OzA2MkEgMDY0NzswNjJBIDA2NDc7CitGQ0E2O0ZDQTY7RkNBNjswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkNBNztGQ0E3O0ZDQTc7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDQTg7RkNBODtGQ0E4OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQ0E5O0ZDQTk7RkNBOTswNjJEIDA2MkM7MDYyRCAwNjJDOworRkNBQTtGQ0FBO0ZDQUE7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDQUI7RkNBQjtGQ0FCOzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQ0FDO0ZDQUM7RkNBQzswNjJFIDA2NDU7MDYyRSAwNjQ1OworRkNBRDtGQ0FEO0ZDQUQ7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZDQUU7RkNBRTtGQ0FFOzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGQ0FGO0ZDQUY7RkNBRjswNjMzIDA2MkU7MDYzMyAwNjJFOworRkNCMDtGQ0IwO0ZDQjA7MDYzMyAwNjQ1OzA2MzMgMDY0NTsKK0ZDQjE7RkNCMTtGQ0IxOzA2MzUgMDYyRDswNjM1IDA2MkQ7CitGQ0IyO0ZDQjI7RkNCMjswNjM1IDA2MkU7MDYzNSAwNjJFOworRkNCMztGQ0IzO0ZDQjM7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDQjQ7RkNCNDtGQ0I0OzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQ0I1O0ZDQjU7RkNCNTswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkNCNjtGQ0I2O0ZDQjY7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDQjc7RkNCNztGQ0I3OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQ0I4O0ZDQjg7RkNCODswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkNCOTtGQ0I5O0ZDQjk7MDYzOCAwNjQ1OzA2MzggMDY0NTsKK0ZDQkE7RkNCQTtGQ0JBOzA2MzkgMDYyQzswNjM5IDA2MkM7CitGQ0JCO0ZDQkI7RkNCQjswNjM5IDA2NDU7MDYzOSAwNjQ1OworRkNCQztGQ0JDO0ZDQkM7MDYzQSAwNjJDOzA2M0EgMDYyQzsKK0ZDQkQ7RkNCRDtGQ0JEOzA2M0EgMDY0NTswNjNBIDA2NDU7CitGQ0JFO0ZDQkU7RkNCRTswNjQxIDA2MkM7MDY0MSAwNjJDOworRkNCRjtGQ0JGO0ZDQkY7MDY0MSAwNjJEOzA2NDEgMDYyRDsKK0ZDQzA7RkNDMDtGQ0MwOzA2NDEgMDYyRTswNjQxIDA2MkU7CitGQ0MxO0ZDQzE7RkNDMTswNjQxIDA2NDU7MDY0MSAwNjQ1OworRkNDMjtGQ0MyO0ZDQzI7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDQzM7RkNDMztGQ0MzOzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQ0M0O0ZDQzQ7RkNDNDswNjQzIDA2MkM7MDY0MyAwNjJDOworRkNDNTtGQ0M1O0ZDQzU7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDQzY7RkNDNjtGQ0M2OzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQ0M3O0ZDQzc7RkNDNzswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkNDODtGQ0M4O0ZDQzg7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDQzk7RkNDOTtGQ0M5OzA2NDQgMDYyQzswNjQ0IDA2MkM7CitGQ0NBO0ZDQ0E7RkNDQTswNjQ0IDA2MkQ7MDY0NCAwNjJEOworRkNDQjtGQ0NCO0ZDQ0I7MDY0NCAwNjJFOzA2NDQgMDYyRTsKK0ZDQ0M7RkNDQztGQ0NDOzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQ0NEO0ZDQ0Q7RkNDRDswNjQ0IDA2NDc7MDY0NCAwNjQ3OworRkNDRTtGQ0NFO0ZDQ0U7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDQ0Y7RkNDRjtGQ0NGOzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQ0QwO0ZDRDA7RkNEMDswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkNEMTtGQ0QxO0ZDRDE7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDRDI7RkNEMjtGQ0QyOzA2NDYgMDYyQzswNjQ2IDA2MkM7CitGQ0QzO0ZDRDM7RkNEMzswNjQ2IDA2MkQ7MDY0NiAwNjJEOworRkNENDtGQ0Q0O0ZDRDQ7MDY0NiAwNjJFOzA2NDYgMDYyRTsKK0ZDRDU7RkNENTtGQ0Q1OzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQ0Q2O0ZDRDY7RkNENjswNjQ2IDA2NDc7MDY0NiAwNjQ3OworRkNENztGQ0Q3O0ZDRDc7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDRDg7RkNEODtGQ0Q4OzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQ0Q5O0ZDRDk7RkNEOTswNjQ3IDA2NzA7MDY0NyAwNjcwOworRkNEQTtGQ0RBO0ZDREE7MDY0QSAwNjJDOzA2NEEgMDYyQzsKK0ZDREI7RkNEQjtGQ0RCOzA2NEEgMDYyRDswNjRBIDA2MkQ7CitGQ0RDO0ZDREM7RkNEQzswNjRBIDA2MkU7MDY0QSAwNjJFOworRkNERDtGQ0REO0ZDREQ7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDREU7RkNERTtGQ0RFOzA2NEEgMDY0NzswNjRBIDA2NDc7CitGQ0RGO0ZDREY7RkNERjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQ0UwO0ZDRTA7RkNFMDswNjI2IDA2NDc7MDY0QSAwNjU0IDA2NDc7CitGQ0UxO0ZDRTE7RkNFMTswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkNFMjtGQ0UyO0ZDRTI7MDYyOCAwNjQ3OzA2MjggMDY0NzsKK0ZDRTM7RkNFMztGQ0UzOzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQ0U0O0ZDRTQ7RkNFNDswNjJBIDA2NDc7MDYyQSAwNjQ3OworRkNFNTtGQ0U1O0ZDRTU7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDRTY7RkNFNjtGQ0U2OzA2MkIgMDY0NzswNjJCIDA2NDc7CitGQ0U3O0ZDRTc7RkNFNzswNjMzIDA2NDU7MDYzMyAwNjQ1OworRkNFODtGQ0U4O0ZDRTg7MDYzMyAwNjQ3OzA2MzMgMDY0NzsKK0ZDRTk7RkNFOTtGQ0U5OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGQ0VBO0ZDRUE7RkNFQTswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkNFQjtGQ0VCO0ZDRUI7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDRUM7RkNFQztGQ0VDOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQ0VEO0ZDRUQ7RkNFRDswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkNFRTtGQ0VFO0ZDRUU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDRUY7RkNFRjtGQ0VGOzA2NDYgMDY0NzswNjQ2IDA2NDc7CitGQ0YwO0ZDRjA7RkNGMDswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkNGMTtGQ0YxO0ZDRjE7MDY0QSAwNjQ3OzA2NEEgMDY0NzsKK0ZDRjI7RkNGMjtGQ0YyOzA2NDAgMDY0RSAwNjUxOzA2NDAgMDY0RSAwNjUxOworRkNGMztGQ0YzO0ZDRjM7MDY0MCAwNjRGIDA2NTE7MDY0MCAwNjRGIDA2NTE7CitGQ0Y0O0ZDRjQ7RkNGNDswNjQwIDA2NTAgMDY1MTswNjQwIDA2NTAgMDY1MTsKK0ZDRjU7RkNGNTtGQ0Y1OzA2MzcgMDY0OTswNjM3IDA2NDk7CitGQ0Y2O0ZDRjY7RkNGNjswNjM3IDA2NEE7MDYzNyAwNjRBOworRkNGNztGQ0Y3O0ZDRjc7MDYzOSAwNjQ5OzA2MzkgMDY0OTsKK0ZDRjg7RkNGODtGQ0Y4OzA2MzkgMDY0QTswNjM5IDA2NEE7CitGQ0Y5O0ZDRjk7RkNGOTswNjNBIDA2NDk7MDYzQSAwNjQ5OworRkNGQTtGQ0ZBO0ZDRkE7MDYzQSAwNjRBOzA2M0EgMDY0QTsKK0ZDRkI7RkNGQjtGQ0ZCOzA2MzMgMDY0OTswNjMzIDA2NDk7CitGQ0ZDO0ZDRkM7RkNGQzswNjMzIDA2NEE7MDYzMyAwNjRBOworRkNGRDtGQ0ZEO0ZDRkQ7MDYzNCAwNjQ5OzA2MzQgMDY0OTsKK0ZDRkU7RkNGRTtGQ0ZFOzA2MzQgMDY0QTswNjM0IDA2NEE7CitGQ0ZGO0ZDRkY7RkNGRjswNjJEIDA2NDk7MDYyRCAwNjQ5OworRkQwMDtGRDAwO0ZEMDA7MDYyRCAwNjRBOzA2MkQgMDY0QTsKK0ZEMDE7RkQwMTtGRDAxOzA2MkMgMDY0OTswNjJDIDA2NDk7CitGRDAyO0ZEMDI7RkQwMjswNjJDIDA2NEE7MDYyQyAwNjRBOworRkQwMztGRDAzO0ZEMDM7MDYyRSAwNjQ5OzA2MkUgMDY0OTsKK0ZEMDQ7RkQwNDtGRDA0OzA2MkUgMDY0QTswNjJFIDA2NEE7CitGRDA1O0ZEMDU7RkQwNTswNjM1IDA2NDk7MDYzNSAwNjQ5OworRkQwNjtGRDA2O0ZEMDY7MDYzNSAwNjRBOzA2MzUgMDY0QTsKK0ZEMDc7RkQwNztGRDA3OzA2MzYgMDY0OTswNjM2IDA2NDk7CitGRDA4O0ZEMDg7RkQwODswNjM2IDA2NEE7MDYzNiAwNjRBOworRkQwOTtGRDA5O0ZEMDk7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMEE7RkQwQTtGRDBBOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDBCO0ZEMEI7RkQwQjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQwQztGRDBDO0ZEMEM7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMEQ7RkQwRDtGRDBEOzA2MzQgMDYzMTswNjM0IDA2MzE7CitGRDBFO0ZEMEU7RkQwRTswNjMzIDA2MzE7MDYzMyAwNjMxOworRkQwRjtGRDBGO0ZEMEY7MDYzNSAwNjMxOzA2MzUgMDYzMTsKK0ZEMTA7RkQxMDtGRDEwOzA2MzYgMDYzMTswNjM2IDA2MzE7CitGRDExO0ZEMTE7RkQxMTswNjM3IDA2NDk7MDYzNyAwNjQ5OworRkQxMjtGRDEyO0ZEMTI7MDYzNyAwNjRBOzA2MzcgMDY0QTsKK0ZEMTM7RkQxMztGRDEzOzA2MzkgMDY0OTswNjM5IDA2NDk7CitGRDE0O0ZEMTQ7RkQxNDswNjM5IDA2NEE7MDYzOSAwNjRBOworRkQxNTtGRDE1O0ZEMTU7MDYzQSAwNjQ5OzA2M0EgMDY0OTsKK0ZEMTY7RkQxNjtGRDE2OzA2M0EgMDY0QTswNjNBIDA2NEE7CitGRDE3O0ZEMTc7RkQxNzswNjMzIDA2NDk7MDYzMyAwNjQ5OworRkQxODtGRDE4O0ZEMTg7MDYzMyAwNjRBOzA2MzMgMDY0QTsKK0ZEMTk7RkQxOTtGRDE5OzA2MzQgMDY0OTswNjM0IDA2NDk7CitGRDFBO0ZEMUE7RkQxQTswNjM0IDA2NEE7MDYzNCAwNjRBOworRkQxQjtGRDFCO0ZEMUI7MDYyRCAwNjQ5OzA2MkQgMDY0OTsKK0ZEMUM7RkQxQztGRDFDOzA2MkQgMDY0QTswNjJEIDA2NEE7CitGRDFEO0ZEMUQ7RkQxRDswNjJDIDA2NDk7MDYyQyAwNjQ5OworRkQxRTtGRDFFO0ZEMUU7MDYyQyAwNjRBOzA2MkMgMDY0QTsKK0ZEMUY7RkQxRjtGRDFGOzA2MkUgMDY0OTswNjJFIDA2NDk7CitGRDIwO0ZEMjA7RkQyMDswNjJFIDA2NEE7MDYyRSAwNjRBOworRkQyMTtGRDIxO0ZEMjE7MDYzNSAwNjQ5OzA2MzUgMDY0OTsKK0ZEMjI7RkQyMjtGRDIyOzA2MzUgMDY0QTswNjM1IDA2NEE7CitGRDIzO0ZEMjM7RkQyMzswNjM2IDA2NDk7MDYzNiAwNjQ5OworRkQyNDtGRDI0O0ZEMjQ7MDYzNiAwNjRBOzA2MzYgMDY0QTsKK0ZEMjU7RkQyNTtGRDI1OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDI2O0ZEMjY7RkQyNjswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQyNztGRDI3O0ZEMjc7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEMjg7RkQyODtGRDI4OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGRDI5O0ZEMjk7RkQyOTswNjM0IDA2MzE7MDYzNCAwNjMxOworRkQyQTtGRDJBO0ZEMkE7MDYzMyAwNjMxOzA2MzMgMDYzMTsKK0ZEMkI7RkQyQjtGRDJCOzA2MzUgMDYzMTswNjM1IDA2MzE7CitGRDJDO0ZEMkM7RkQyQzswNjM2IDA2MzE7MDYzNiAwNjMxOworRkQyRDtGRDJEO0ZEMkQ7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMkU7RkQyRTtGRDJFOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDJGO0ZEMkY7RkQyRjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQzMDtGRDMwO0ZEMzA7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMzE7RkQzMTtGRDMxOzA2MzMgMDY0NzswNjMzIDA2NDc7CitGRDMyO0ZEMzI7RkQzMjswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkQzMztGRDMzO0ZEMzM7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZEMzQ7RkQzNDtGRDM0OzA2MzMgMDYyQzswNjMzIDA2MkM7CitGRDM1O0ZEMzU7RkQzNTswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkQzNjtGRDM2O0ZEMzY7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZEMzc7RkQzNztGRDM3OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDM4O0ZEMzg7RkQzODswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQzOTtGRDM5O0ZEMzk7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEM0E7RkQzQTtGRDNBOzA2MzcgMDY0NTswNjM3IDA2NDU7CitGRDNCO0ZEM0I7RkQzQjswNjM4IDA2NDU7MDYzOCAwNjQ1OworRkQzQztGRDNDO0ZEM0M7MDYyNyAwNjRCOzA2MjcgMDY0QjsKK0ZEM0Q7RkQzRDtGRDNEOzA2MjcgMDY0QjswNjI3IDA2NEI7CitGRDUwO0ZENTA7RkQ1MDswNjJBIDA2MkMgMDY0NTswNjJBIDA2MkMgMDY0NTsKK0ZENTE7RkQ1MTtGRDUxOzA2MkEgMDYyRCAwNjJDOzA2MkEgMDYyRCAwNjJDOworRkQ1MjtGRDUyO0ZENTI7MDYyQSAwNjJEIDA2MkM7MDYyQSAwNjJEIDA2MkM7CitGRDUzO0ZENTM7RkQ1MzswNjJBIDA2MkQgMDY0NTswNjJBIDA2MkQgMDY0NTsKK0ZENTQ7RkQ1NDtGRDU0OzA2MkEgMDYyRSAwNjQ1OzA2MkEgMDYyRSAwNjQ1OworRkQ1NTtGRDU1O0ZENTU7MDYyQSAwNjQ1IDA2MkM7MDYyQSAwNjQ1IDA2MkM7CitGRDU2O0ZENTY7RkQ1NjswNjJBIDA2NDUgMDYyRDswNjJBIDA2NDUgMDYyRDsKK0ZENTc7RkQ1NztGRDU3OzA2MkEgMDY0NSAwNjJFOzA2MkEgMDY0NSAwNjJFOworRkQ1ODtGRDU4O0ZENTg7MDYyQyAwNjQ1IDA2MkQ7MDYyQyAwNjQ1IDA2MkQ7CitGRDU5O0ZENTk7RkQ1OTswNjJDIDA2NDUgMDYyRDswNjJDIDA2NDUgMDYyRDsKK0ZENUE7RkQ1QTtGRDVBOzA2MkQgMDY0NSAwNjRBOzA2MkQgMDY0NSAwNjRBOworRkQ1QjtGRDVCO0ZENUI7MDYyRCAwNjQ1IDA2NDk7MDYyRCAwNjQ1IDA2NDk7CitGRDVDO0ZENUM7RkQ1QzswNjMzIDA2MkQgMDYyQzswNjMzIDA2MkQgMDYyQzsKK0ZENUQ7RkQ1RDtGRDVEOzA2MzMgMDYyQyAwNjJEOzA2MzMgMDYyQyAwNjJEOworRkQ1RTtGRDVFO0ZENUU7MDYzMyAwNjJDIDA2NDk7MDYzMyAwNjJDIDA2NDk7CitGRDVGO0ZENUY7RkQ1RjswNjMzIDA2NDUgMDYyRDswNjMzIDA2NDUgMDYyRDsKK0ZENjA7RkQ2MDtGRDYwOzA2MzMgMDY0NSAwNjJEOzA2MzMgMDY0NSAwNjJEOworRkQ2MTtGRDYxO0ZENjE7MDYzMyAwNjQ1IDA2MkM7MDYzMyAwNjQ1IDA2MkM7CitGRDYyO0ZENjI7RkQ2MjswNjMzIDA2NDUgMDY0NTswNjMzIDA2NDUgMDY0NTsKK0ZENjM7RkQ2MztGRDYzOzA2MzMgMDY0NSAwNjQ1OzA2MzMgMDY0NSAwNjQ1OworRkQ2NDtGRDY0O0ZENjQ7MDYzNSAwNjJEIDA2MkQ7MDYzNSAwNjJEIDA2MkQ7CitGRDY1O0ZENjU7RkQ2NTswNjM1IDA2MkQgMDYyRDswNjM1IDA2MkQgMDYyRDsKK0ZENjY7RkQ2NjtGRDY2OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkQ2NztGRDY3O0ZENjc7MDYzNCAwNjJEIDA2NDU7MDYzNCAwNjJEIDA2NDU7CitGRDY4O0ZENjg7RkQ2ODswNjM0IDA2MkQgMDY0NTswNjM0IDA2MkQgMDY0NTsKK0ZENjk7RkQ2OTtGRDY5OzA2MzQgMDYyQyAwNjRBOzA2MzQgMDYyQyAwNjRBOworRkQ2QTtGRDZBO0ZENkE7MDYzNCAwNjQ1IDA2MkU7MDYzNCAwNjQ1IDA2MkU7CitGRDZCO0ZENkI7RkQ2QjswNjM0IDA2NDUgMDYyRTswNjM0IDA2NDUgMDYyRTsKK0ZENkM7RkQ2QztGRDZDOzA2MzQgMDY0NSAwNjQ1OzA2MzQgMDY0NSAwNjQ1OworRkQ2RDtGRDZEO0ZENkQ7MDYzNCAwNjQ1IDA2NDU7MDYzNCAwNjQ1IDA2NDU7CitGRDZFO0ZENkU7RkQ2RTswNjM2IDA2MkQgMDY0OTswNjM2IDA2MkQgMDY0OTsKK0ZENkY7RkQ2RjtGRDZGOzA2MzYgMDYyRSAwNjQ1OzA2MzYgMDYyRSAwNjQ1OworRkQ3MDtGRDcwO0ZENzA7MDYzNiAwNjJFIDA2NDU7MDYzNiAwNjJFIDA2NDU7CitGRDcxO0ZENzE7RkQ3MTswNjM3IDA2NDUgMDYyRDswNjM3IDA2NDUgMDYyRDsKK0ZENzI7RkQ3MjtGRDcyOzA2MzcgMDY0NSAwNjJEOzA2MzcgMDY0NSAwNjJEOworRkQ3MztGRDczO0ZENzM7MDYzNyAwNjQ1IDA2NDU7MDYzNyAwNjQ1IDA2NDU7CitGRDc0O0ZENzQ7RkQ3NDswNjM3IDA2NDUgMDY0QTswNjM3IDA2NDUgMDY0QTsKK0ZENzU7RkQ3NTtGRDc1OzA2MzkgMDYyQyAwNjQ1OzA2MzkgMDYyQyAwNjQ1OworRkQ3NjtGRDc2O0ZENzY7MDYzOSAwNjQ1IDA2NDU7MDYzOSAwNjQ1IDA2NDU7CitGRDc3O0ZENzc7RkQ3NzswNjM5IDA2NDUgMDY0NTswNjM5IDA2NDUgMDY0NTsKK0ZENzg7RkQ3ODtGRDc4OzA2MzkgMDY0NSAwNjQ5OzA2MzkgMDY0NSAwNjQ5OworRkQ3OTtGRDc5O0ZENzk7MDYzQSAwNjQ1IDA2NDU7MDYzQSAwNjQ1IDA2NDU7CitGRDdBO0ZEN0E7RkQ3QTswNjNBIDA2NDUgMDY0QTswNjNBIDA2NDUgMDY0QTsKK0ZEN0I7RkQ3QjtGRDdCOzA2M0EgMDY0NSAwNjQ5OzA2M0EgMDY0NSAwNjQ5OworRkQ3QztGRDdDO0ZEN0M7MDY0MSAwNjJFIDA2NDU7MDY0MSAwNjJFIDA2NDU7CitGRDdEO0ZEN0Q7RkQ3RDswNjQxIDA2MkUgMDY0NTswNjQxIDA2MkUgMDY0NTsKK0ZEN0U7RkQ3RTtGRDdFOzA2NDIgMDY0NSAwNjJEOzA2NDIgMDY0NSAwNjJEOworRkQ3RjtGRDdGO0ZEN0Y7MDY0MiAwNjQ1IDA2NDU7MDY0MiAwNjQ1IDA2NDU7CitGRDgwO0ZEODA7RkQ4MDswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEODE7RkQ4MTtGRDgxOzA2NDQgMDYyRCAwNjRBOzA2NDQgMDYyRCAwNjRBOworRkQ4MjtGRDgyO0ZEODI7MDY0NCAwNjJEIDA2NDk7MDY0NCAwNjJEIDA2NDk7CitGRDgzO0ZEODM7RkQ4MzswNjQ0IDA2MkMgMDYyQzswNjQ0IDA2MkMgMDYyQzsKK0ZEODQ7RkQ4NDtGRDg0OzA2NDQgMDYyQyAwNjJDOzA2NDQgMDYyQyAwNjJDOworRkQ4NTtGRDg1O0ZEODU7MDY0NCAwNjJFIDA2NDU7MDY0NCAwNjJFIDA2NDU7CitGRDg2O0ZEODY7RkQ4NjswNjQ0IDA2MkUgMDY0NTswNjQ0IDA2MkUgMDY0NTsKK0ZEODc7RkQ4NztGRDg3OzA2NDQgMDY0NSAwNjJEOzA2NDQgMDY0NSAwNjJEOworRkQ4ODtGRDg4O0ZEODg7MDY0NCAwNjQ1IDA2MkQ7MDY0NCAwNjQ1IDA2MkQ7CitGRDg5O0ZEODk7RkQ4OTswNjQ1IDA2MkQgMDYyQzswNjQ1IDA2MkQgMDYyQzsKK0ZEOEE7RkQ4QTtGRDhBOzA2NDUgMDYyRCAwNjQ1OzA2NDUgMDYyRCAwNjQ1OworRkQ4QjtGRDhCO0ZEOEI7MDY0NSAwNjJEIDA2NEE7MDY0NSAwNjJEIDA2NEE7CitGRDhDO0ZEOEM7RkQ4QzswNjQ1IDA2MkMgMDYyRDswNjQ1IDA2MkMgMDYyRDsKK0ZEOEQ7RkQ4RDtGRDhEOzA2NDUgMDYyQyAwNjQ1OzA2NDUgMDYyQyAwNjQ1OworRkQ4RTtGRDhFO0ZEOEU7MDY0NSAwNjJFIDA2MkM7MDY0NSAwNjJFIDA2MkM7CitGRDhGO0ZEOEY7RkQ4RjswNjQ1IDA2MkUgMDY0NTswNjQ1IDA2MkUgMDY0NTsKK0ZEOTI7RkQ5MjtGRDkyOzA2NDUgMDYyQyAwNjJFOzA2NDUgMDYyQyAwNjJFOworRkQ5MztGRDkzO0ZEOTM7MDY0NyAwNjQ1IDA2MkM7MDY0NyAwNjQ1IDA2MkM7CitGRDk0O0ZEOTQ7RkQ5NDswNjQ3IDA2NDUgMDY0NTswNjQ3IDA2NDUgMDY0NTsKK0ZEOTU7RkQ5NTtGRDk1OzA2NDYgMDYyRCAwNjQ1OzA2NDYgMDYyRCAwNjQ1OworRkQ5NjtGRDk2O0ZEOTY7MDY0NiAwNjJEIDA2NDk7MDY0NiAwNjJEIDA2NDk7CitGRDk3O0ZEOTc7RkQ5NzswNjQ2IDA2MkMgMDY0NTswNjQ2IDA2MkMgMDY0NTsKK0ZEOTg7RkQ5ODtGRDk4OzA2NDYgMDYyQyAwNjQ1OzA2NDYgMDYyQyAwNjQ1OworRkQ5OTtGRDk5O0ZEOTk7MDY0NiAwNjJDIDA2NDk7MDY0NiAwNjJDIDA2NDk7CitGRDlBO0ZEOUE7RkQ5QTswNjQ2IDA2NDUgMDY0QTswNjQ2IDA2NDUgMDY0QTsKK0ZEOUI7RkQ5QjtGRDlCOzA2NDYgMDY0NSAwNjQ5OzA2NDYgMDY0NSAwNjQ5OworRkQ5QztGRDlDO0ZEOUM7MDY0QSAwNjQ1IDA2NDU7MDY0QSAwNjQ1IDA2NDU7CitGRDlEO0ZEOUQ7RkQ5RDswNjRBIDA2NDUgMDY0NTswNjRBIDA2NDUgMDY0NTsKK0ZEOUU7RkQ5RTtGRDlFOzA2MjggMDYyRSAwNjRBOzA2MjggMDYyRSAwNjRBOworRkQ5RjtGRDlGO0ZEOUY7MDYyQSAwNjJDIDA2NEE7MDYyQSAwNjJDIDA2NEE7CitGREEwO0ZEQTA7RkRBMDswNjJBIDA2MkMgMDY0OTswNjJBIDA2MkMgMDY0OTsKK0ZEQTE7RkRBMTtGREExOzA2MkEgMDYyRSAwNjRBOzA2MkEgMDYyRSAwNjRBOworRkRBMjtGREEyO0ZEQTI7MDYyQSAwNjJFIDA2NDk7MDYyQSAwNjJFIDA2NDk7CitGREEzO0ZEQTM7RkRBMzswNjJBIDA2NDUgMDY0QTswNjJBIDA2NDUgMDY0QTsKK0ZEQTQ7RkRBNDtGREE0OzA2MkEgMDY0NSAwNjQ5OzA2MkEgMDY0NSAwNjQ5OworRkRBNTtGREE1O0ZEQTU7MDYyQyAwNjQ1IDA2NEE7MDYyQyAwNjQ1IDA2NEE7CitGREE2O0ZEQTY7RkRBNjswNjJDIDA2MkQgMDY0OTswNjJDIDA2MkQgMDY0OTsKK0ZEQTc7RkRBNztGREE3OzA2MkMgMDY0NSAwNjQ5OzA2MkMgMDY0NSAwNjQ5OworRkRBODtGREE4O0ZEQTg7MDYzMyAwNjJFIDA2NDk7MDYzMyAwNjJFIDA2NDk7CitGREE5O0ZEQTk7RkRBOTswNjM1IDA2MkQgMDY0QTswNjM1IDA2MkQgMDY0QTsKK0ZEQUE7RkRBQTtGREFBOzA2MzQgMDYyRCAwNjRBOzA2MzQgMDYyRCAwNjRBOworRkRBQjtGREFCO0ZEQUI7MDYzNiAwNjJEIDA2NEE7MDYzNiAwNjJEIDA2NEE7CitGREFDO0ZEQUM7RkRBQzswNjQ0IDA2MkMgMDY0QTswNjQ0IDA2MkMgMDY0QTsKK0ZEQUQ7RkRBRDtGREFEOzA2NDQgMDY0NSAwNjRBOzA2NDQgMDY0NSAwNjRBOworRkRBRTtGREFFO0ZEQUU7MDY0QSAwNjJEIDA2NEE7MDY0QSAwNjJEIDA2NEE7CitGREFGO0ZEQUY7RkRBRjswNjRBIDA2MkMgMDY0QTswNjRBIDA2MkMgMDY0QTsKK0ZEQjA7RkRCMDtGREIwOzA2NEEgMDY0NSAwNjRBOzA2NEEgMDY0NSAwNjRBOworRkRCMTtGREIxO0ZEQjE7MDY0NSAwNjQ1IDA2NEE7MDY0NSAwNjQ1IDA2NEE7CitGREIyO0ZEQjI7RkRCMjswNjQyIDA2NDUgMDY0QTswNjQyIDA2NDUgMDY0QTsKK0ZEQjM7RkRCMztGREIzOzA2NDYgMDYyRCAwNjRBOzA2NDYgMDYyRCAwNjRBOworRkRCNDtGREI0O0ZEQjQ7MDY0MiAwNjQ1IDA2MkQ7MDY0MiAwNjQ1IDA2MkQ7CitGREI1O0ZEQjU7RkRCNTswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEQjY7RkRCNjtGREI2OzA2MzkgMDY0NSAwNjRBOzA2MzkgMDY0NSAwNjRBOworRkRCNztGREI3O0ZEQjc7MDY0MyAwNjQ1IDA2NEE7MDY0MyAwNjQ1IDA2NEE7CitGREI4O0ZEQjg7RkRCODswNjQ2IDA2MkMgMDYyRDswNjQ2IDA2MkMgMDYyRDsKK0ZEQjk7RkRCOTtGREI5OzA2NDUgMDYyRSAwNjRBOzA2NDUgMDYyRSAwNjRBOworRkRCQTtGREJBO0ZEQkE7MDY0NCAwNjJDIDA2NDU7MDY0NCAwNjJDIDA2NDU7CitGREJCO0ZEQkI7RkRCQjswNjQzIDA2NDUgMDY0NTswNjQzIDA2NDUgMDY0NTsKK0ZEQkM7RkRCQztGREJDOzA2NDQgMDYyQyAwNjQ1OzA2NDQgMDYyQyAwNjQ1OworRkRCRDtGREJEO0ZEQkQ7MDY0NiAwNjJDIDA2MkQ7MDY0NiAwNjJDIDA2MkQ7CitGREJFO0ZEQkU7RkRCRTswNjJDIDA2MkQgMDY0QTswNjJDIDA2MkQgMDY0QTsKK0ZEQkY7RkRCRjtGREJGOzA2MkQgMDYyQyAwNjRBOzA2MkQgMDYyQyAwNjRBOworRkRDMDtGREMwO0ZEQzA7MDY0NSAwNjJDIDA2NEE7MDY0NSAwNjJDIDA2NEE7CitGREMxO0ZEQzE7RkRDMTswNjQxIDA2NDUgMDY0QTswNjQxIDA2NDUgMDY0QTsKK0ZEQzI7RkRDMjtGREMyOzA2MjggMDYyRCAwNjRBOzA2MjggMDYyRCAwNjRBOworRkRDMztGREMzO0ZEQzM7MDY0MyAwNjQ1IDA2NDU7MDY0MyAwNjQ1IDA2NDU7CitGREM0O0ZEQzQ7RkRDNDswNjM5IDA2MkMgMDY0NTswNjM5IDA2MkMgMDY0NTsKK0ZEQzU7RkRDNTtGREM1OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkRDNjtGREM2O0ZEQzY7MDYzMyAwNjJFIDA2NEE7MDYzMyAwNjJFIDA2NEE7CitGREM3O0ZEQzc7RkRDNzswNjQ2IDA2MkMgMDY0QTswNjQ2IDA2MkMgMDY0QTsKK0ZERjA7RkRGMDtGREYwOzA2MzUgMDY0NCAwNkQyOzA2MzUgMDY0NCAwNkQyOworRkRGMTtGREYxO0ZERjE7MDY0MiAwNjQ0IDA2RDI7MDY0MiAwNjQ0IDA2RDI7CitGREYyO0ZERjI7RkRGMjswNjI3IDA2NDQgMDY0NCAwNjQ3OzA2MjcgMDY0NCAwNjQ0IDA2NDc7CitGREYzO0ZERjM7RkRGMzswNjI3IDA2NDMgMDYyOCAwNjMxOzA2MjcgMDY0MyAwNjI4IDA2MzE7CitGREY0O0ZERjQ7RkRGNDswNjQ1IDA2MkQgMDY0NSAwNjJGOzA2NDUgMDYyRCAwNjQ1IDA2MkY7CitGREY1O0ZERjU7RkRGNTswNjM1IDA2NDQgMDYzOSAwNjQ1OzA2MzUgMDY0NCAwNjM5IDA2NDU7CitGREY2O0ZERjY7RkRGNjswNjMxIDA2MzMgMDY0OCAwNjQ0OzA2MzEgMDYzMyAwNjQ4IDA2NDQ7CitGREY3O0ZERjc7RkRGNzswNjM5IDA2NDQgMDY0QSAwNjQ3OzA2MzkgMDY0NCAwNjRBIDA2NDc7CitGREY4O0ZERjg7RkRGODswNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2NDggMDYzMyAwNjQ0IDA2NDU7CitGREY5O0ZERjk7RkRGOTswNjM1IDA2NDQgMDY0OTswNjM1IDA2NDQgMDY0OTsKK0ZERkE7RkRGQTtGREZBOzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OworRkRGQjtGREZCO0ZERkI7MDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3OzA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0NzsKK0ZERkM7RkRGQztGREZDOzA2MzEgMDZDQyAwNjI3IDA2NDQ7MDYzMSAwNkNDIDA2MjcgMDY0NDsKK0ZFMzA7RkUzMDtGRTMwOzAwMkUgMDAyRTswMDJFIDAwMkU7CitGRTMxO0ZFMzE7RkUzMTsyMDE0OzIwMTQ7CitGRTMyO0ZFMzI7RkUzMjsyMDEzOzIwMTM7CitGRTMzO0ZFMzM7RkUzMzswMDVGOzAwNUY7CitGRTM0O0ZFMzQ7RkUzNDswMDVGOzAwNUY7CitGRTM1O0ZFMzU7RkUzNTswMDI4OzAwMjg7CitGRTM2O0ZFMzY7RkUzNjswMDI5OzAwMjk7CitGRTM3O0ZFMzc7RkUzNzswMDdCOzAwN0I7CitGRTM4O0ZFMzg7RkUzODswMDdEOzAwN0Q7CitGRTM5O0ZFMzk7RkUzOTszMDE0OzMwMTQ7CitGRTNBO0ZFM0E7RkUzQTszMDE1OzMwMTU7CitGRTNCO0ZFM0I7RkUzQjszMDEwOzMwMTA7CitGRTNDO0ZFM0M7RkUzQzszMDExOzMwMTE7CitGRTNEO0ZFM0Q7RkUzRDszMDBBOzMwMEE7CitGRTNFO0ZFM0U7RkUzRTszMDBCOzMwMEI7CitGRTNGO0ZFM0Y7RkUzRjszMDA4OzMwMDg7CitGRTQwO0ZFNDA7RkU0MDszMDA5OzMwMDk7CitGRTQxO0ZFNDE7RkU0MTszMDBDOzMwMEM7CitGRTQyO0ZFNDI7RkU0MjszMDBEOzMwMEQ7CitGRTQzO0ZFNDM7RkU0MzszMDBFOzMwMEU7CitGRTQ0O0ZFNDQ7RkU0NDszMDBGOzMwMEY7CitGRTQ5O0ZFNDk7RkU0OTswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0QTtGRTRBO0ZFNEE7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEI7RkU0QjtGRTRCOzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTRDO0ZFNEM7RkU0QzswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0RDtGRTREO0ZFNEQ7MDA1RjswMDVGOworRkU0RTtGRTRFO0ZFNEU7MDA1RjswMDVGOworRkU0RjtGRTRGO0ZFNEY7MDA1RjswMDVGOworRkU1MDtGRTUwO0ZFNTA7MDAyQzswMDJDOworRkU1MTtGRTUxO0ZFNTE7MzAwMTszMDAxOworRkU1MjtGRTUyO0ZFNTI7MDAyRTswMDJFOworRkU1NDtGRTU0O0ZFNTQ7MDAzQjswMDNCOworRkU1NTtGRTU1O0ZFNTU7MDAzQTswMDNBOworRkU1NjtGRTU2O0ZFNTY7MDAzRjswMDNGOworRkU1NztGRTU3O0ZFNTc7MDAyMTswMDIxOworRkU1ODtGRTU4O0ZFNTg7MjAxNDsyMDE0OworRkU1OTtGRTU5O0ZFNTk7MDAyODswMDI4OworRkU1QTtGRTVBO0ZFNUE7MDAyOTswMDI5OworRkU1QjtGRTVCO0ZFNUI7MDA3QjswMDdCOworRkU1QztGRTVDO0ZFNUM7MDA3RDswMDdEOworRkU1RDtGRTVEO0ZFNUQ7MzAxNDszMDE0OworRkU1RTtGRTVFO0ZFNUU7MzAxNTszMDE1OworRkU1RjtGRTVGO0ZFNUY7MDAyMzswMDIzOworRkU2MDtGRTYwO0ZFNjA7MDAyNjswMDI2OworRkU2MTtGRTYxO0ZFNjE7MDAyQTswMDJBOworRkU2MjtGRTYyO0ZFNjI7MDAyQjswMDJCOworRkU2MztGRTYzO0ZFNjM7MDAyRDswMDJEOworRkU2NDtGRTY0O0ZFNjQ7MDAzQzswMDNDOworRkU2NTtGRTY1O0ZFNjU7MDAzRTswMDNFOworRkU2NjtGRTY2O0ZFNjY7MDAzRDswMDNEOworRkU2ODtGRTY4O0ZFNjg7MDA1QzswMDVDOworRkU2OTtGRTY5O0ZFNjk7MDAyNDswMDI0OworRkU2QTtGRTZBO0ZFNkE7MDAyNTswMDI1OworRkU2QjtGRTZCO0ZFNkI7MDA0MDswMDQwOworRkU3MDtGRTcwO0ZFNzA7MDAyMCAwNjRCOzAwMjAgMDY0QjsKK0ZFNzE7RkU3MTtGRTcxOzA2NDAgMDY0QjswNjQwIDA2NEI7CitGRTcyO0ZFNzI7RkU3MjswMDIwIDA2NEM7MDAyMCAwNjRDOworRkU3NDtGRTc0O0ZFNzQ7MDAyMCAwNjREOzAwMjAgMDY0RDsKK0ZFNzY7RkU3NjtGRTc2OzAwMjAgMDY0RTswMDIwIDA2NEU7CitGRTc3O0ZFNzc7RkU3NzswNjQwIDA2NEU7MDY0MCAwNjRFOworRkU3ODtGRTc4O0ZFNzg7MDAyMCAwNjRGOzAwMjAgMDY0RjsKK0ZFNzk7RkU3OTtGRTc5OzA2NDAgMDY0RjswNjQwIDA2NEY7CitGRTdBO0ZFN0E7RkU3QTswMDIwIDA2NTA7MDAyMCAwNjUwOworRkU3QjtGRTdCO0ZFN0I7MDY0MCAwNjUwOzA2NDAgMDY1MDsKK0ZFN0M7RkU3QztGRTdDOzAwMjAgMDY1MTswMDIwIDA2NTE7CitGRTdEO0ZFN0Q7RkU3RDswNjQwIDA2NTE7MDY0MCAwNjUxOworRkU3RTtGRTdFO0ZFN0U7MDAyMCAwNjUyOzAwMjAgMDY1MjsKK0ZFN0Y7RkU3RjtGRTdGOzA2NDAgMDY1MjswNjQwIDA2NTI7CitGRTgwO0ZFODA7RkU4MDswNjIxOzA2MjE7CitGRTgxO0ZFODE7RkU4MTswNjIyOzA2MjcgMDY1MzsKK0ZFODI7RkU4MjtGRTgyOzA2MjI7MDYyNyAwNjUzOworRkU4MztGRTgzO0ZFODM7MDYyMzswNjI3IDA2NTQ7CitGRTg0O0ZFODQ7RkU4NDswNjIzOzA2MjcgMDY1NDsKK0ZFODU7RkU4NTtGRTg1OzA2MjQ7MDY0OCAwNjU0OworRkU4NjtGRTg2O0ZFODY7MDYyNDswNjQ4IDA2NTQ7CitGRTg3O0ZFODc7RkU4NzswNjI1OzA2MjcgMDY1NTsKK0ZFODg7RkU4ODtGRTg4OzA2MjU7MDYyNyAwNjU1OworRkU4OTtGRTg5O0ZFODk7MDYyNjswNjRBIDA2NTQ7CitGRThBO0ZFOEE7RkU4QTswNjI2OzA2NEEgMDY1NDsKK0ZFOEI7RkU4QjtGRThCOzA2MjY7MDY0QSAwNjU0OworRkU4QztGRThDO0ZFOEM7MDYyNjswNjRBIDA2NTQ7CitGRThEO0ZFOEQ7RkU4RDswNjI3OzA2Mjc7CitGRThFO0ZFOEU7RkU4RTswNjI3OzA2Mjc7CitGRThGO0ZFOEY7RkU4RjswNjI4OzA2Mjg7CitGRTkwO0ZFOTA7RkU5MDswNjI4OzA2Mjg7CitGRTkxO0ZFOTE7RkU5MTswNjI4OzA2Mjg7CitGRTkyO0ZFOTI7RkU5MjswNjI4OzA2Mjg7CitGRTkzO0ZFOTM7RkU5MzswNjI5OzA2Mjk7CitGRTk0O0ZFOTQ7RkU5NDswNjI5OzA2Mjk7CitGRTk1O0ZFOTU7RkU5NTswNjJBOzA2MkE7CitGRTk2O0ZFOTY7RkU5NjswNjJBOzA2MkE7CitGRTk3O0ZFOTc7RkU5NzswNjJBOzA2MkE7CitGRTk4O0ZFOTg7RkU5ODswNjJBOzA2MkE7CitGRTk5O0ZFOTk7RkU5OTswNjJCOzA2MkI7CitGRTlBO0ZFOUE7RkU5QTswNjJCOzA2MkI7CitGRTlCO0ZFOUI7RkU5QjswNjJCOzA2MkI7CitGRTlDO0ZFOUM7RkU5QzswNjJCOzA2MkI7CitGRTlEO0ZFOUQ7RkU5RDswNjJDOzA2MkM7CitGRTlFO0ZFOUU7RkU5RTswNjJDOzA2MkM7CitGRTlGO0ZFOUY7RkU5RjswNjJDOzA2MkM7CitGRUEwO0ZFQTA7RkVBMDswNjJDOzA2MkM7CitGRUExO0ZFQTE7RkVBMTswNjJEOzA2MkQ7CitGRUEyO0ZFQTI7RkVBMjswNjJEOzA2MkQ7CitGRUEzO0ZFQTM7RkVBMzswNjJEOzA2MkQ7CitGRUE0O0ZFQTQ7RkVBNDswNjJEOzA2MkQ7CitGRUE1O0ZFQTU7RkVBNTswNjJFOzA2MkU7CitGRUE2O0ZFQTY7RkVBNjswNjJFOzA2MkU7CitGRUE3O0ZFQTc7RkVBNzswNjJFOzA2MkU7CitGRUE4O0ZFQTg7RkVBODswNjJFOzA2MkU7CitGRUE5O0ZFQTk7RkVBOTswNjJGOzA2MkY7CitGRUFBO0ZFQUE7RkVBQTswNjJGOzA2MkY7CitGRUFCO0ZFQUI7RkVBQjswNjMwOzA2MzA7CitGRUFDO0ZFQUM7RkVBQzswNjMwOzA2MzA7CitGRUFEO0ZFQUQ7RkVBRDswNjMxOzA2MzE7CitGRUFFO0ZFQUU7RkVBRTswNjMxOzA2MzE7CitGRUFGO0ZFQUY7RkVBRjswNjMyOzA2MzI7CitGRUIwO0ZFQjA7RkVCMDswNjMyOzA2MzI7CitGRUIxO0ZFQjE7RkVCMTswNjMzOzA2MzM7CitGRUIyO0ZFQjI7RkVCMjswNjMzOzA2MzM7CitGRUIzO0ZFQjM7RkVCMzswNjMzOzA2MzM7CitGRUI0O0ZFQjQ7RkVCNDswNjMzOzA2MzM7CitGRUI1O0ZFQjU7RkVCNTswNjM0OzA2MzQ7CitGRUI2O0ZFQjY7RkVCNjswNjM0OzA2MzQ7CitGRUI3O0ZFQjc7RkVCNzswNjM0OzA2MzQ7CitGRUI4O0ZFQjg7RkVCODswNjM0OzA2MzQ7CitGRUI5O0ZFQjk7RkVCOTswNjM1OzA2MzU7CitGRUJBO0ZFQkE7RkVCQTswNjM1OzA2MzU7CitGRUJCO0ZFQkI7RkVCQjswNjM1OzA2MzU7CitGRUJDO0ZFQkM7RkVCQzswNjM1OzA2MzU7CitGRUJEO0ZFQkQ7RkVCRDswNjM2OzA2MzY7CitGRUJFO0ZFQkU7RkVCRTswNjM2OzA2MzY7CitGRUJGO0ZFQkY7RkVCRjswNjM2OzA2MzY7CitGRUMwO0ZFQzA7RkVDMDswNjM2OzA2MzY7CitGRUMxO0ZFQzE7RkVDMTswNjM3OzA2Mzc7CitGRUMyO0ZFQzI7RkVDMjswNjM3OzA2Mzc7CitGRUMzO0ZFQzM7RkVDMzswNjM3OzA2Mzc7CitGRUM0O0ZFQzQ7RkVDNDswNjM3OzA2Mzc7CitGRUM1O0ZFQzU7RkVDNTswNjM4OzA2Mzg7CitGRUM2O0ZFQzY7RkVDNjswNjM4OzA2Mzg7CitGRUM3O0ZFQzc7RkVDNzswNjM4OzA2Mzg7CitGRUM4O0ZFQzg7RkVDODswNjM4OzA2Mzg7CitGRUM5O0ZFQzk7RkVDOTswNjM5OzA2Mzk7CitGRUNBO0ZFQ0E7RkVDQTswNjM5OzA2Mzk7CitGRUNCO0ZFQ0I7RkVDQjswNjM5OzA2Mzk7CitGRUNDO0ZFQ0M7RkVDQzswNjM5OzA2Mzk7CitGRUNEO0ZFQ0Q7RkVDRDswNjNBOzA2M0E7CitGRUNFO0ZFQ0U7RkVDRTswNjNBOzA2M0E7CitGRUNGO0ZFQ0Y7RkVDRjswNjNBOzA2M0E7CitGRUQwO0ZFRDA7RkVEMDswNjNBOzA2M0E7CitGRUQxO0ZFRDE7RkVEMTswNjQxOzA2NDE7CitGRUQyO0ZFRDI7RkVEMjswNjQxOzA2NDE7CitGRUQzO0ZFRDM7RkVEMzswNjQxOzA2NDE7CitGRUQ0O0ZFRDQ7RkVENDswNjQxOzA2NDE7CitGRUQ1O0ZFRDU7RkVENTswNjQyOzA2NDI7CitGRUQ2O0ZFRDY7RkVENjswNjQyOzA2NDI7CitGRUQ3O0ZFRDc7RkVENzswNjQyOzA2NDI7CitGRUQ4O0ZFRDg7RkVEODswNjQyOzA2NDI7CitGRUQ5O0ZFRDk7RkVEOTswNjQzOzA2NDM7CitGRURBO0ZFREE7RkVEQTswNjQzOzA2NDM7CitGRURCO0ZFREI7RkVEQjswNjQzOzA2NDM7CitGRURDO0ZFREM7RkVEQzswNjQzOzA2NDM7CitGRUREO0ZFREQ7RkVERDswNjQ0OzA2NDQ7CitGRURFO0ZFREU7RkVERTswNjQ0OzA2NDQ7CitGRURGO0ZFREY7RkVERjswNjQ0OzA2NDQ7CitGRUUwO0ZFRTA7RkVFMDswNjQ0OzA2NDQ7CitGRUUxO0ZFRTE7RkVFMTswNjQ1OzA2NDU7CitGRUUyO0ZFRTI7RkVFMjswNjQ1OzA2NDU7CitGRUUzO0ZFRTM7RkVFMzswNjQ1OzA2NDU7CitGRUU0O0ZFRTQ7RkVFNDswNjQ1OzA2NDU7CitGRUU1O0ZFRTU7RkVFNTswNjQ2OzA2NDY7CitGRUU2O0ZFRTY7RkVFNjswNjQ2OzA2NDY7CitGRUU3O0ZFRTc7RkVFNzswNjQ2OzA2NDY7CitGRUU4O0ZFRTg7RkVFODswNjQ2OzA2NDY7CitGRUU5O0ZFRTk7RkVFOTswNjQ3OzA2NDc7CitGRUVBO0ZFRUE7RkVFQTswNjQ3OzA2NDc7CitGRUVCO0ZFRUI7RkVFQjswNjQ3OzA2NDc7CitGRUVDO0ZFRUM7RkVFQzswNjQ3OzA2NDc7CitGRUVEO0ZFRUQ7RkVFRDswNjQ4OzA2NDg7CitGRUVFO0ZFRUU7RkVFRTswNjQ4OzA2NDg7CitGRUVGO0ZFRUY7RkVFRjswNjQ5OzA2NDk7CitGRUYwO0ZFRjA7RkVGMDswNjQ5OzA2NDk7CitGRUYxO0ZFRjE7RkVGMTswNjRBOzA2NEE7CitGRUYyO0ZFRjI7RkVGMjswNjRBOzA2NEE7CitGRUYzO0ZFRjM7RkVGMzswNjRBOzA2NEE7CitGRUY0O0ZFRjQ7RkVGNDswNjRBOzA2NEE7CitGRUY1O0ZFRjU7RkVGNTswNjQ0IDA2MjI7MDY0NCAwNjI3IDA2NTM7CitGRUY2O0ZFRjY7RkVGNjswNjQ0IDA2MjI7MDY0NCAwNjI3IDA2NTM7CitGRUY3O0ZFRjc7RkVGNzswNjQ0IDA2MjM7MDY0NCAwNjI3IDA2NTQ7CitGRUY4O0ZFRjg7RkVGODswNjQ0IDA2MjM7MDY0NCAwNjI3IDA2NTQ7CitGRUY5O0ZFRjk7RkVGOTswNjQ0IDA2MjU7MDY0NCAwNjI3IDA2NTU7CitGRUZBO0ZFRkE7RkVGQTswNjQ0IDA2MjU7MDY0NCAwNjI3IDA2NTU7CitGRUZCO0ZFRkI7RkVGQjswNjQ0IDA2Mjc7MDY0NCAwNjI3OworRkVGQztGRUZDO0ZFRkM7MDY0NCAwNjI3OzA2NDQgMDYyNzsKK0ZGMDE7RkYwMTtGRjAxOzAwMjE7MDAyMTsKK0ZGMDI7RkYwMjtGRjAyOzAwMjI7MDAyMjsKK0ZGMDM7RkYwMztGRjAzOzAwMjM7MDAyMzsKK0ZGMDQ7RkYwNDtGRjA0OzAwMjQ7MDAyNDsKK0ZGMDU7RkYwNTtGRjA1OzAwMjU7MDAyNTsKK0ZGMDY7RkYwNjtGRjA2OzAwMjY7MDAyNjsKK0ZGMDc7RkYwNztGRjA3OzAwMjc7MDAyNzsKK0ZGMDg7RkYwODtGRjA4OzAwMjg7MDAyODsKK0ZGMDk7RkYwOTtGRjA5OzAwMjk7MDAyOTsKK0ZGMEE7RkYwQTtGRjBBOzAwMkE7MDAyQTsKK0ZGMEI7RkYwQjtGRjBCOzAwMkI7MDAyQjsKK0ZGMEM7RkYwQztGRjBDOzAwMkM7MDAyQzsKK0ZGMEQ7RkYwRDtGRjBEOzAwMkQ7MDAyRDsKK0ZGMEU7RkYwRTtGRjBFOzAwMkU7MDAyRTsKK0ZGMEY7RkYwRjtGRjBGOzAwMkY7MDAyRjsKK0ZGMTA7RkYxMDtGRjEwOzAwMzA7MDAzMDsKK0ZGMTE7RkYxMTtGRjExOzAwMzE7MDAzMTsKK0ZGMTI7RkYxMjtGRjEyOzAwMzI7MDAzMjsKK0ZGMTM7RkYxMztGRjEzOzAwMzM7MDAzMzsKK0ZGMTQ7RkYxNDtGRjE0OzAwMzQ7MDAzNDsKK0ZGMTU7RkYxNTtGRjE1OzAwMzU7MDAzNTsKK0ZGMTY7RkYxNjtGRjE2OzAwMzY7MDAzNjsKK0ZGMTc7RkYxNztGRjE3OzAwMzc7MDAzNzsKK0ZGMTg7RkYxODtGRjE4OzAwMzg7MDAzODsKK0ZGMTk7RkYxOTtGRjE5OzAwMzk7MDAzOTsKK0ZGMUE7RkYxQTtGRjFBOzAwM0E7MDAzQTsKK0ZGMUI7RkYxQjtGRjFCOzAwM0I7MDAzQjsKK0ZGMUM7RkYxQztGRjFDOzAwM0M7MDAzQzsKK0ZGMUQ7RkYxRDtGRjFEOzAwM0Q7MDAzRDsKK0ZGMUU7RkYxRTtGRjFFOzAwM0U7MDAzRTsKK0ZGMUY7RkYxRjtGRjFGOzAwM0Y7MDAzRjsKK0ZGMjA7RkYyMDtGRjIwOzAwNDA7MDA0MDsKK0ZGMjE7RkYyMTtGRjIxOzAwNDE7MDA0MTsKK0ZGMjI7RkYyMjtGRjIyOzAwNDI7MDA0MjsKK0ZGMjM7RkYyMztGRjIzOzAwNDM7MDA0MzsKK0ZGMjQ7RkYyNDtGRjI0OzAwNDQ7MDA0NDsKK0ZGMjU7RkYyNTtGRjI1OzAwNDU7MDA0NTsKK0ZGMjY7RkYyNjtGRjI2OzAwNDY7MDA0NjsKK0ZGMjc7RkYyNztGRjI3OzAwNDc7MDA0NzsKK0ZGMjg7RkYyODtGRjI4OzAwNDg7MDA0ODsKK0ZGMjk7RkYyOTtGRjI5OzAwNDk7MDA0OTsKK0ZGMkE7RkYyQTtGRjJBOzAwNEE7MDA0QTsKK0ZGMkI7RkYyQjtGRjJCOzAwNEI7MDA0QjsKK0ZGMkM7RkYyQztGRjJDOzAwNEM7MDA0QzsKK0ZGMkQ7RkYyRDtGRjJEOzAwNEQ7MDA0RDsKK0ZGMkU7RkYyRTtGRjJFOzAwNEU7MDA0RTsKK0ZGMkY7RkYyRjtGRjJGOzAwNEY7MDA0RjsKK0ZGMzA7RkYzMDtGRjMwOzAwNTA7MDA1MDsKK0ZGMzE7RkYzMTtGRjMxOzAwNTE7MDA1MTsKK0ZGMzI7RkYzMjtGRjMyOzAwNTI7MDA1MjsKK0ZGMzM7RkYzMztGRjMzOzAwNTM7MDA1MzsKK0ZGMzQ7RkYzNDtGRjM0OzAwNTQ7MDA1NDsKK0ZGMzU7RkYzNTtGRjM1OzAwNTU7MDA1NTsKK0ZGMzY7RkYzNjtGRjM2OzAwNTY7MDA1NjsKK0ZGMzc7RkYzNztGRjM3OzAwNTc7MDA1NzsKK0ZGMzg7RkYzODtGRjM4OzAwNTg7MDA1ODsKK0ZGMzk7RkYzOTtGRjM5OzAwNTk7MDA1OTsKK0ZGM0E7RkYzQTtGRjNBOzAwNUE7MDA1QTsKK0ZGM0I7RkYzQjtGRjNCOzAwNUI7MDA1QjsKK0ZGM0M7RkYzQztGRjNDOzAwNUM7MDA1QzsKK0ZGM0Q7RkYzRDtGRjNEOzAwNUQ7MDA1RDsKK0ZGM0U7RkYzRTtGRjNFOzAwNUU7MDA1RTsKK0ZGM0Y7RkYzRjtGRjNGOzAwNUY7MDA1RjsKK0ZGNDA7RkY0MDtGRjQwOzAwNjA7MDA2MDsKK0ZGNDE7RkY0MTtGRjQxOzAwNjE7MDA2MTsKK0ZGNDI7RkY0MjtGRjQyOzAwNjI7MDA2MjsKK0ZGNDM7RkY0MztGRjQzOzAwNjM7MDA2MzsKK0ZGNDQ7RkY0NDtGRjQ0OzAwNjQ7MDA2NDsKK0ZGNDU7RkY0NTtGRjQ1OzAwNjU7MDA2NTsKK0ZGNDY7RkY0NjtGRjQ2OzAwNjY7MDA2NjsKK0ZGNDc7RkY0NztGRjQ3OzAwNjc7MDA2NzsKK0ZGNDg7RkY0ODtGRjQ4OzAwNjg7MDA2ODsKK0ZGNDk7RkY0OTtGRjQ5OzAwNjk7MDA2OTsKK0ZGNEE7RkY0QTtGRjRBOzAwNkE7MDA2QTsKK0ZGNEI7RkY0QjtGRjRCOzAwNkI7MDA2QjsKK0ZGNEM7RkY0QztGRjRDOzAwNkM7MDA2QzsKK0ZGNEQ7RkY0RDtGRjREOzAwNkQ7MDA2RDsKK0ZGNEU7RkY0RTtGRjRFOzAwNkU7MDA2RTsKK0ZGNEY7RkY0RjtGRjRGOzAwNkY7MDA2RjsKK0ZGNTA7RkY1MDtGRjUwOzAwNzA7MDA3MDsKK0ZGNTE7RkY1MTtGRjUxOzAwNzE7MDA3MTsKK0ZGNTI7RkY1MjtGRjUyOzAwNzI7MDA3MjsKK0ZGNTM7RkY1MztGRjUzOzAwNzM7MDA3MzsKK0ZGNTQ7RkY1NDtGRjU0OzAwNzQ7MDA3NDsKK0ZGNTU7RkY1NTtGRjU1OzAwNzU7MDA3NTsKK0ZGNTY7RkY1NjtGRjU2OzAwNzY7MDA3NjsKK0ZGNTc7RkY1NztGRjU3OzAwNzc7MDA3NzsKK0ZGNTg7RkY1ODtGRjU4OzAwNzg7MDA3ODsKK0ZGNTk7RkY1OTtGRjU5OzAwNzk7MDA3OTsKK0ZGNUE7RkY1QTtGRjVBOzAwN0E7MDA3QTsKK0ZGNUI7RkY1QjtGRjVCOzAwN0I7MDA3QjsKK0ZGNUM7RkY1QztGRjVDOzAwN0M7MDA3QzsKK0ZGNUQ7RkY1RDtGRjVEOzAwN0Q7MDA3RDsKK0ZGNUU7RkY1RTtGRjVFOzAwN0U7MDA3RTsKK0ZGNUY7RkY1RjtGRjVGOzI5ODU7Mjk4NTsKK0ZGNjA7RkY2MDtGRjYwOzI5ODY7Mjk4NjsKK0ZGNjE7RkY2MTtGRjYxOzMwMDI7MzAwMjsKK0ZGNjI7RkY2MjtGRjYyOzMwMEM7MzAwQzsKK0ZGNjM7RkY2MztGRjYzOzMwMEQ7MzAwRDsKK0ZGNjQ7RkY2NDtGRjY0OzMwMDE7MzAwMTsKK0ZGNjU7RkY2NTtGRjY1OzMwRkI7MzBGQjsKK0ZGNjY7RkY2NjtGRjY2OzMwRjI7MzBGMjsKK0ZGNjc7RkY2NztGRjY3OzMwQTE7MzBBMTsKK0ZGNjg7RkY2ODtGRjY4OzMwQTM7MzBBMzsKK0ZGNjk7RkY2OTtGRjY5OzMwQTU7MzBBNTsKK0ZGNkE7RkY2QTtGRjZBOzMwQTc7MzBBNzsKK0ZGNkI7RkY2QjtGRjZCOzMwQTk7MzBBOTsKK0ZGNkM7RkY2QztGRjZDOzMwRTM7MzBFMzsKK0ZGNkQ7RkY2RDtGRjZEOzMwRTU7MzBFNTsKK0ZGNkU7RkY2RTtGRjZFOzMwRTc7MzBFNzsKK0ZGNkY7RkY2RjtGRjZGOzMwQzM7MzBDMzsKK0ZGNzA7RkY3MDtGRjcwOzMwRkM7MzBGQzsKK0ZGNzE7RkY3MTtGRjcxOzMwQTI7MzBBMjsKK0ZGNzI7RkY3MjtGRjcyOzMwQTQ7MzBBNDsKK0ZGNzM7RkY3MztGRjczOzMwQTY7MzBBNjsKK0ZGNzQ7RkY3NDtGRjc0OzMwQTg7MzBBODsKK0ZGNzU7RkY3NTtGRjc1OzMwQUE7MzBBQTsKK0ZGNzY7RkY3NjtGRjc2OzMwQUI7MzBBQjsKK0ZGNzc7RkY3NztGRjc3OzMwQUQ7MzBBRDsKK0ZGNzg7RkY3ODtGRjc4OzMwQUY7MzBBRjsKK0ZGNzk7RkY3OTtGRjc5OzMwQjE7MzBCMTsKK0ZGN0E7RkY3QTtGRjdBOzMwQjM7MzBCMzsKK0ZGN0I7RkY3QjtGRjdCOzMwQjU7MzBCNTsKK0ZGN0M7RkY3QztGRjdDOzMwQjc7MzBCNzsKK0ZGN0Q7RkY3RDtGRjdEOzMwQjk7MzBCOTsKK0ZGN0U7RkY3RTtGRjdFOzMwQkI7MzBCQjsKK0ZGN0Y7RkY3RjtGRjdGOzMwQkQ7MzBCRDsKK0ZGODA7RkY4MDtGRjgwOzMwQkY7MzBCRjsKK0ZGODE7RkY4MTtGRjgxOzMwQzE7MzBDMTsKK0ZGODI7RkY4MjtGRjgyOzMwQzQ7MzBDNDsKK0ZGODM7RkY4MztGRjgzOzMwQzY7MzBDNjsKK0ZGODQ7RkY4NDtGRjg0OzMwQzg7MzBDODsKK0ZGODU7RkY4NTtGRjg1OzMwQ0E7MzBDQTsKK0ZGODY7RkY4NjtGRjg2OzMwQ0I7MzBDQjsKK0ZGODc7RkY4NztGRjg3OzMwQ0M7MzBDQzsKK0ZGODg7RkY4ODtGRjg4OzMwQ0Q7MzBDRDsKK0ZGODk7RkY4OTtGRjg5OzMwQ0U7MzBDRTsKK0ZGOEE7RkY4QTtGRjhBOzMwQ0Y7MzBDRjsKK0ZGOEI7RkY4QjtGRjhCOzMwRDI7MzBEMjsKK0ZGOEM7RkY4QztGRjhDOzMwRDU7MzBENTsKK0ZGOEQ7RkY4RDtGRjhEOzMwRDg7MzBEODsKK0ZGOEU7RkY4RTtGRjhFOzMwREI7MzBEQjsKK0ZGOEY7RkY4RjtGRjhGOzMwREU7MzBERTsKK0ZGOTA7RkY5MDtGRjkwOzMwREY7MzBERjsKK0ZGOTE7RkY5MTtGRjkxOzMwRTA7MzBFMDsKK0ZGOTI7RkY5MjtGRjkyOzMwRTE7MzBFMTsKK0ZGOTM7RkY5MztGRjkzOzMwRTI7MzBFMjsKK0ZGOTQ7RkY5NDtGRjk0OzMwRTQ7MzBFNDsKK0ZGOTU7RkY5NTtGRjk1OzMwRTY7MzBFNjsKK0ZGOTY7RkY5NjtGRjk2OzMwRTg7MzBFODsKK0ZGOTc7RkY5NztGRjk3OzMwRTk7MzBFOTsKK0ZGOTg7RkY5ODtGRjk4OzMwRUE7MzBFQTsKK0ZGOTk7RkY5OTtGRjk5OzMwRUI7MzBFQjsKK0ZGOUE7RkY5QTtGRjlBOzMwRUM7MzBFQzsKK0ZGOUI7RkY5QjtGRjlCOzMwRUQ7MzBFRDsKK0ZGOUM7RkY5QztGRjlDOzMwRUY7MzBFRjsKK0ZGOUQ7RkY5RDtGRjlEOzMwRjM7MzBGMzsKK0ZGOUU7RkY5RTtGRjlFOzMwOTk7MzA5OTsKK0ZGOUY7RkY5RjtGRjlGOzMwOUE7MzA5QTsKK0ZGQTA7RkZBMDtGRkEwOzExNjA7MTE2MDsKK0ZGQTE7RkZBMTtGRkExOzExMDA7MTEwMDsKK0ZGQTI7RkZBMjtGRkEyOzExMDE7MTEwMTsKK0ZGQTM7RkZBMztGRkEzOzExQUE7MTFBQTsKK0ZGQTQ7RkZBNDtGRkE0OzExMDI7MTEwMjsKK0ZGQTU7RkZBNTtGRkE1OzExQUM7MTFBQzsKK0ZGQTY7RkZBNjtGRkE2OzExQUQ7MTFBRDsKK0ZGQTc7RkZBNztGRkE3OzExMDM7MTEwMzsKK0ZGQTg7RkZBODtGRkE4OzExMDQ7MTEwNDsKK0ZGQTk7RkZBOTtGRkE5OzExMDU7MTEwNTsKK0ZGQUE7RkZBQTtGRkFBOzExQjA7MTFCMDsKK0ZGQUI7RkZBQjtGRkFCOzExQjE7MTFCMTsKK0ZGQUM7RkZBQztGRkFDOzExQjI7MTFCMjsKK0ZGQUQ7RkZBRDtGRkFEOzExQjM7MTFCMzsKK0ZGQUU7RkZBRTtGRkFFOzExQjQ7MTFCNDsKK0ZGQUY7RkZBRjtGRkFGOzExQjU7MTFCNTsKK0ZGQjA7RkZCMDtGRkIwOzExMUE7MTExQTsKK0ZGQjE7RkZCMTtGRkIxOzExMDY7MTEwNjsKK0ZGQjI7RkZCMjtGRkIyOzExMDc7MTEwNzsKK0ZGQjM7RkZCMztGRkIzOzExMDg7MTEwODsKK0ZGQjQ7RkZCNDtGRkI0OzExMjE7MTEyMTsKK0ZGQjU7RkZCNTtGRkI1OzExMDk7MTEwOTsKK0ZGQjY7RkZCNjtGRkI2OzExMEE7MTEwQTsKK0ZGQjc7RkZCNztGRkI3OzExMEI7MTEwQjsKK0ZGQjg7RkZCODtGRkI4OzExMEM7MTEwQzsKK0ZGQjk7RkZCOTtGRkI5OzExMEQ7MTEwRDsKK0ZGQkE7RkZCQTtGRkJBOzExMEU7MTEwRTsKK0ZGQkI7RkZCQjtGRkJCOzExMEY7MTEwRjsKK0ZGQkM7RkZCQztGRkJDOzExMTA7MTExMDsKK0ZGQkQ7RkZCRDtGRkJEOzExMTE7MTExMTsKK0ZGQkU7RkZCRTtGRkJFOzExMTI7MTExMjsKK0ZGQzI7RkZDMjtGRkMyOzExNjE7MTE2MTsKK0ZGQzM7RkZDMztGRkMzOzExNjI7MTE2MjsKK0ZGQzQ7RkZDNDtGRkM0OzExNjM7MTE2MzsKK0ZGQzU7RkZDNTtGRkM1OzExNjQ7MTE2NDsKK0ZGQzY7RkZDNjtGRkM2OzExNjU7MTE2NTsKK0ZGQzc7RkZDNztGRkM3OzExNjY7MTE2NjsKK0ZGQ0E7RkZDQTtGRkNBOzExNjc7MTE2NzsKK0ZGQ0I7RkZDQjtGRkNCOzExNjg7MTE2ODsKK0ZGQ0M7RkZDQztGRkNDOzExNjk7MTE2OTsKK0ZGQ0Q7RkZDRDtGRkNEOzExNkE7MTE2QTsKK0ZGQ0U7RkZDRTtGRkNFOzExNkI7MTE2QjsKK0ZGQ0Y7RkZDRjtGRkNGOzExNkM7MTE2QzsKK0ZGRDI7RkZEMjtGRkQyOzExNkQ7MTE2RDsKK0ZGRDM7RkZEMztGRkQzOzExNkU7MTE2RTsKK0ZGRDQ7RkZENDtGRkQ0OzExNkY7MTE2RjsKK0ZGRDU7RkZENTtGRkQ1OzExNzA7MTE3MDsKK0ZGRDY7RkZENjtGRkQ2OzExNzE7MTE3MTsKK0ZGRDc7RkZENztGRkQ3OzExNzI7MTE3MjsKK0ZGREE7RkZEQTtGRkRBOzExNzM7MTE3MzsKK0ZGREI7RkZEQjtGRkRCOzExNzQ7MTE3NDsKK0ZGREM7RkZEQztGRkRDOzExNzU7MTE3NTsKK0ZGRTA7RkZFMDtGRkUwOzAwQTI7MDBBMjsKK0ZGRTE7RkZFMTtGRkUxOzAwQTM7MDBBMzsKK0ZGRTI7RkZFMjtGRkUyOzAwQUM7MDBBQzsKK0ZGRTM7RkZFMztGRkUzOzAwMjAgMDMwNDswMDIwIDAzMDQ7CitGRkU0O0ZGRTQ7RkZFNDswMEE2OzAwQTY7CitGRkU1O0ZGRTU7RkZFNTswMEE1OzAwQTU7CitGRkU2O0ZGRTY7RkZFNjsyMEE5OzIwQTk7CitGRkU4O0ZGRTg7RkZFODsyNTAyOzI1MDI7CitGRkU5O0ZGRTk7RkZFOTsyMTkwOzIxOTA7CitGRkVBO0ZGRUE7RkZFQTsyMTkxOzIxOTE7CitGRkVCO0ZGRUI7RkZFQjsyMTkyOzIxOTI7CitGRkVDO0ZGRUM7RkZFQzsyMTkzOzIxOTM7CitGRkVEO0ZGRUQ7RkZFRDsyNUEwOzI1QTA7CitGRkVFO0ZGRUU7RkZFRTsyNUNCOzI1Q0I7CisxRDE1RTsxRDE1NyAxRDE2NTsxRDE1NyAxRDE2NTsxRDE1NyAxRDE2NTsxRDE1NyAxRDE2NTsKKzFEMTVGOzFEMTU4IDFEMTY1OzFEMTU4IDFEMTY1OzFEMTU4IDFEMTY1OzFEMTU4IDFEMTY1OworMUQxNjA7MUQxNTggMUQxNjUgMUQxNkU7MUQxNTggMUQxNjUgMUQxNkU7MUQxNTggMUQxNjUgMUQxNkU7MUQxNTggMUQxNjUgMUQxNkU7CisxRDE2MTsxRDE1OCAxRDE2NSAxRDE2RjsxRDE1OCAxRDE2NSAxRDE2RjsxRDE1OCAxRDE2NSAxRDE2RjsxRDE1OCAxRDE2NSAxRDE2RjsKKzFEMTYyOzFEMTU4IDFEMTY1IDFEMTcwOzFEMTU4IDFEMTY1IDFEMTcwOzFEMTU4IDFEMTY1IDFEMTcwOzFEMTU4IDFEMTY1IDFEMTcwOworMUQxNjM7MUQxNTggMUQxNjUgMUQxNzE7MUQxNTggMUQxNjUgMUQxNzE7MUQxNTggMUQxNjUgMUQxNzE7MUQxNTggMUQxNjUgMUQxNzE7CisxRDE2NDsxRDE1OCAxRDE2NSAxRDE3MjsxRDE1OCAxRDE2NSAxRDE3MjsxRDE1OCAxRDE2NSAxRDE3MjsxRDE1OCAxRDE2NSAxRDE3MjsKKzFEMUJCOzFEMUI5IDFEMTY1OzFEMUI5IDFEMTY1OzFEMUI5IDFEMTY1OzFEMUI5IDFEMTY1OworMUQxQkM7MUQxQkEgMUQxNjU7MUQxQkEgMUQxNjU7MUQxQkEgMUQxNjU7MUQxQkEgMUQxNjU7CisxRDFCRDsxRDFCOSAxRDE2NSAxRDE2RTsxRDFCOSAxRDE2NSAxRDE2RTsxRDFCOSAxRDE2NSAxRDE2RTsxRDFCOSAxRDE2NSAxRDE2RTsKKzFEMUJFOzFEMUJBIDFEMTY1IDFEMTZFOzFEMUJBIDFEMTY1IDFEMTZFOzFEMUJBIDFEMTY1IDFEMTZFOzFEMUJBIDFEMTY1IDFEMTZFOworMUQxQkY7MUQxQjkgMUQxNjUgMUQxNkY7MUQxQjkgMUQxNjUgMUQxNkY7MUQxQjkgMUQxNjUgMUQxNkY7MUQxQjkgMUQxNjUgMUQxNkY7CisxRDFDMDsxRDFCQSAxRDE2NSAxRDE2RjsxRDFCQSAxRDE2NSAxRDE2RjsxRDFCQSAxRDE2NSAxRDE2RjsxRDFCQSAxRDE2NSAxRDE2RjsKKzFENDAwOzFENDAwOzFENDAwOzAwNDE7MDA0MTsKKzFENDAxOzFENDAxOzFENDAxOzAwNDI7MDA0MjsKKzFENDAyOzFENDAyOzFENDAyOzAwNDM7MDA0MzsKKzFENDAzOzFENDAzOzFENDAzOzAwNDQ7MDA0NDsKKzFENDA0OzFENDA0OzFENDA0OzAwNDU7MDA0NTsKKzFENDA1OzFENDA1OzFENDA1OzAwNDY7MDA0NjsKKzFENDA2OzFENDA2OzFENDA2OzAwNDc7MDA0NzsKKzFENDA3OzFENDA3OzFENDA3OzAwNDg7MDA0ODsKKzFENDA4OzFENDA4OzFENDA4OzAwNDk7MDA0OTsKKzFENDA5OzFENDA5OzFENDA5OzAwNEE7MDA0QTsKKzFENDBBOzFENDBBOzFENDBBOzAwNEI7MDA0QjsKKzFENDBCOzFENDBCOzFENDBCOzAwNEM7MDA0QzsKKzFENDBDOzFENDBDOzFENDBDOzAwNEQ7MDA0RDsKKzFENDBEOzFENDBEOzFENDBEOzAwNEU7MDA0RTsKKzFENDBFOzFENDBFOzFENDBFOzAwNEY7MDA0RjsKKzFENDBGOzFENDBGOzFENDBGOzAwNTA7MDA1MDsKKzFENDEwOzFENDEwOzFENDEwOzAwNTE7MDA1MTsKKzFENDExOzFENDExOzFENDExOzAwNTI7MDA1MjsKKzFENDEyOzFENDEyOzFENDEyOzAwNTM7MDA1MzsKKzFENDEzOzFENDEzOzFENDEzOzAwNTQ7MDA1NDsKKzFENDE0OzFENDE0OzFENDE0OzAwNTU7MDA1NTsKKzFENDE1OzFENDE1OzFENDE1OzAwNTY7MDA1NjsKKzFENDE2OzFENDE2OzFENDE2OzAwNTc7MDA1NzsKKzFENDE3OzFENDE3OzFENDE3OzAwNTg7MDA1ODsKKzFENDE4OzFENDE4OzFENDE4OzAwNTk7MDA1OTsKKzFENDE5OzFENDE5OzFENDE5OzAwNUE7MDA1QTsKKzFENDFBOzFENDFBOzFENDFBOzAwNjE7MDA2MTsKKzFENDFCOzFENDFCOzFENDFCOzAwNjI7MDA2MjsKKzFENDFDOzFENDFDOzFENDFDOzAwNjM7MDA2MzsKKzFENDFEOzFENDFEOzFENDFEOzAwNjQ7MDA2NDsKKzFENDFFOzFENDFFOzFENDFFOzAwNjU7MDA2NTsKKzFENDFGOzFENDFGOzFENDFGOzAwNjY7MDA2NjsKKzFENDIwOzFENDIwOzFENDIwOzAwNjc7MDA2NzsKKzFENDIxOzFENDIxOzFENDIxOzAwNjg7MDA2ODsKKzFENDIyOzFENDIyOzFENDIyOzAwNjk7MDA2OTsKKzFENDIzOzFENDIzOzFENDIzOzAwNkE7MDA2QTsKKzFENDI0OzFENDI0OzFENDI0OzAwNkI7MDA2QjsKKzFENDI1OzFENDI1OzFENDI1OzAwNkM7MDA2QzsKKzFENDI2OzFENDI2OzFENDI2OzAwNkQ7MDA2RDsKKzFENDI3OzFENDI3OzFENDI3OzAwNkU7MDA2RTsKKzFENDI4OzFENDI4OzFENDI4OzAwNkY7MDA2RjsKKzFENDI5OzFENDI5OzFENDI5OzAwNzA7MDA3MDsKKzFENDJBOzFENDJBOzFENDJBOzAwNzE7MDA3MTsKKzFENDJCOzFENDJCOzFENDJCOzAwNzI7MDA3MjsKKzFENDJDOzFENDJDOzFENDJDOzAwNzM7MDA3MzsKKzFENDJEOzFENDJEOzFENDJEOzAwNzQ7MDA3NDsKKzFENDJFOzFENDJFOzFENDJFOzAwNzU7MDA3NTsKKzFENDJGOzFENDJGOzFENDJGOzAwNzY7MDA3NjsKKzFENDMwOzFENDMwOzFENDMwOzAwNzc7MDA3NzsKKzFENDMxOzFENDMxOzFENDMxOzAwNzg7MDA3ODsKKzFENDMyOzFENDMyOzFENDMyOzAwNzk7MDA3OTsKKzFENDMzOzFENDMzOzFENDMzOzAwN0E7MDA3QTsKKzFENDM0OzFENDM0OzFENDM0OzAwNDE7MDA0MTsKKzFENDM1OzFENDM1OzFENDM1OzAwNDI7MDA0MjsKKzFENDM2OzFENDM2OzFENDM2OzAwNDM7MDA0MzsKKzFENDM3OzFENDM3OzFENDM3OzAwNDQ7MDA0NDsKKzFENDM4OzFENDM4OzFENDM4OzAwNDU7MDA0NTsKKzFENDM5OzFENDM5OzFENDM5OzAwNDY7MDA0NjsKKzFENDNBOzFENDNBOzFENDNBOzAwNDc7MDA0NzsKKzFENDNCOzFENDNCOzFENDNCOzAwNDg7MDA0ODsKKzFENDNDOzFENDNDOzFENDNDOzAwNDk7MDA0OTsKKzFENDNEOzFENDNEOzFENDNEOzAwNEE7MDA0QTsKKzFENDNFOzFENDNFOzFENDNFOzAwNEI7MDA0QjsKKzFENDNGOzFENDNGOzFENDNGOzAwNEM7MDA0QzsKKzFENDQwOzFENDQwOzFENDQwOzAwNEQ7MDA0RDsKKzFENDQxOzFENDQxOzFENDQxOzAwNEU7MDA0RTsKKzFENDQyOzFENDQyOzFENDQyOzAwNEY7MDA0RjsKKzFENDQzOzFENDQzOzFENDQzOzAwNTA7MDA1MDsKKzFENDQ0OzFENDQ0OzFENDQ0OzAwNTE7MDA1MTsKKzFENDQ1OzFENDQ1OzFENDQ1OzAwNTI7MDA1MjsKKzFENDQ2OzFENDQ2OzFENDQ2OzAwNTM7MDA1MzsKKzFENDQ3OzFENDQ3OzFENDQ3OzAwNTQ7MDA1NDsKKzFENDQ4OzFENDQ4OzFENDQ4OzAwNTU7MDA1NTsKKzFENDQ5OzFENDQ5OzFENDQ5OzAwNTY7MDA1NjsKKzFENDRBOzFENDRBOzFENDRBOzAwNTc7MDA1NzsKKzFENDRCOzFENDRCOzFENDRCOzAwNTg7MDA1ODsKKzFENDRDOzFENDRDOzFENDRDOzAwNTk7MDA1OTsKKzFENDREOzFENDREOzFENDREOzAwNUE7MDA1QTsKKzFENDRFOzFENDRFOzFENDRFOzAwNjE7MDA2MTsKKzFENDRGOzFENDRGOzFENDRGOzAwNjI7MDA2MjsKKzFENDUwOzFENDUwOzFENDUwOzAwNjM7MDA2MzsKKzFENDUxOzFENDUxOzFENDUxOzAwNjQ7MDA2NDsKKzFENDUyOzFENDUyOzFENDUyOzAwNjU7MDA2NTsKKzFENDUzOzFENDUzOzFENDUzOzAwNjY7MDA2NjsKKzFENDU0OzFENDU0OzFENDU0OzAwNjc7MDA2NzsKKzFENDU2OzFENDU2OzFENDU2OzAwNjk7MDA2OTsKKzFENDU3OzFENDU3OzFENDU3OzAwNkE7MDA2QTsKKzFENDU4OzFENDU4OzFENDU4OzAwNkI7MDA2QjsKKzFENDU5OzFENDU5OzFENDU5OzAwNkM7MDA2QzsKKzFENDVBOzFENDVBOzFENDVBOzAwNkQ7MDA2RDsKKzFENDVCOzFENDVCOzFENDVCOzAwNkU7MDA2RTsKKzFENDVDOzFENDVDOzFENDVDOzAwNkY7MDA2RjsKKzFENDVEOzFENDVEOzFENDVEOzAwNzA7MDA3MDsKKzFENDVFOzFENDVFOzFENDVFOzAwNzE7MDA3MTsKKzFENDVGOzFENDVGOzFENDVGOzAwNzI7MDA3MjsKKzFENDYwOzFENDYwOzFENDYwOzAwNzM7MDA3MzsKKzFENDYxOzFENDYxOzFENDYxOzAwNzQ7MDA3NDsKKzFENDYyOzFENDYyOzFENDYyOzAwNzU7MDA3NTsKKzFENDYzOzFENDYzOzFENDYzOzAwNzY7MDA3NjsKKzFENDY0OzFENDY0OzFENDY0OzAwNzc7MDA3NzsKKzFENDY1OzFENDY1OzFENDY1OzAwNzg7MDA3ODsKKzFENDY2OzFENDY2OzFENDY2OzAwNzk7MDA3OTsKKzFENDY3OzFENDY3OzFENDY3OzAwN0E7MDA3QTsKKzFENDY4OzFENDY4OzFENDY4OzAwNDE7MDA0MTsKKzFENDY5OzFENDY5OzFENDY5OzAwNDI7MDA0MjsKKzFENDZBOzFENDZBOzFENDZBOzAwNDM7MDA0MzsKKzFENDZCOzFENDZCOzFENDZCOzAwNDQ7MDA0NDsKKzFENDZDOzFENDZDOzFENDZDOzAwNDU7MDA0NTsKKzFENDZEOzFENDZEOzFENDZEOzAwNDY7MDA0NjsKKzFENDZFOzFENDZFOzFENDZFOzAwNDc7MDA0NzsKKzFENDZGOzFENDZGOzFENDZGOzAwNDg7MDA0ODsKKzFENDcwOzFENDcwOzFENDcwOzAwNDk7MDA0OTsKKzFENDcxOzFENDcxOzFENDcxOzAwNEE7MDA0QTsKKzFENDcyOzFENDcyOzFENDcyOzAwNEI7MDA0QjsKKzFENDczOzFENDczOzFENDczOzAwNEM7MDA0QzsKKzFENDc0OzFENDc0OzFENDc0OzAwNEQ7MDA0RDsKKzFENDc1OzFENDc1OzFENDc1OzAwNEU7MDA0RTsKKzFENDc2OzFENDc2OzFENDc2OzAwNEY7MDA0RjsKKzFENDc3OzFENDc3OzFENDc3OzAwNTA7MDA1MDsKKzFENDc4OzFENDc4OzFENDc4OzAwNTE7MDA1MTsKKzFENDc5OzFENDc5OzFENDc5OzAwNTI7MDA1MjsKKzFENDdBOzFENDdBOzFENDdBOzAwNTM7MDA1MzsKKzFENDdCOzFENDdCOzFENDdCOzAwNTQ7MDA1NDsKKzFENDdDOzFENDdDOzFENDdDOzAwNTU7MDA1NTsKKzFENDdEOzFENDdEOzFENDdEOzAwNTY7MDA1NjsKKzFENDdFOzFENDdFOzFENDdFOzAwNTc7MDA1NzsKKzFENDdGOzFENDdGOzFENDdGOzAwNTg7MDA1ODsKKzFENDgwOzFENDgwOzFENDgwOzAwNTk7MDA1OTsKKzFENDgxOzFENDgxOzFENDgxOzAwNUE7MDA1QTsKKzFENDgyOzFENDgyOzFENDgyOzAwNjE7MDA2MTsKKzFENDgzOzFENDgzOzFENDgzOzAwNjI7MDA2MjsKKzFENDg0OzFENDg0OzFENDg0OzAwNjM7MDA2MzsKKzFENDg1OzFENDg1OzFENDg1OzAwNjQ7MDA2NDsKKzFENDg2OzFENDg2OzFENDg2OzAwNjU7MDA2NTsKKzFENDg3OzFENDg3OzFENDg3OzAwNjY7MDA2NjsKKzFENDg4OzFENDg4OzFENDg4OzAwNjc7MDA2NzsKKzFENDg5OzFENDg5OzFENDg5OzAwNjg7MDA2ODsKKzFENDhBOzFENDhBOzFENDhBOzAwNjk7MDA2OTsKKzFENDhCOzFENDhCOzFENDhCOzAwNkE7MDA2QTsKKzFENDhDOzFENDhDOzFENDhDOzAwNkI7MDA2QjsKKzFENDhEOzFENDhEOzFENDhEOzAwNkM7MDA2QzsKKzFENDhFOzFENDhFOzFENDhFOzAwNkQ7MDA2RDsKKzFENDhGOzFENDhGOzFENDhGOzAwNkU7MDA2RTsKKzFENDkwOzFENDkwOzFENDkwOzAwNkY7MDA2RjsKKzFENDkxOzFENDkxOzFENDkxOzAwNzA7MDA3MDsKKzFENDkyOzFENDkyOzFENDkyOzAwNzE7MDA3MTsKKzFENDkzOzFENDkzOzFENDkzOzAwNzI7MDA3MjsKKzFENDk0OzFENDk0OzFENDk0OzAwNzM7MDA3MzsKKzFENDk1OzFENDk1OzFENDk1OzAwNzQ7MDA3NDsKKzFENDk2OzFENDk2OzFENDk2OzAwNzU7MDA3NTsKKzFENDk3OzFENDk3OzFENDk3OzAwNzY7MDA3NjsKKzFENDk4OzFENDk4OzFENDk4OzAwNzc7MDA3NzsKKzFENDk5OzFENDk5OzFENDk5OzAwNzg7MDA3ODsKKzFENDlBOzFENDlBOzFENDlBOzAwNzk7MDA3OTsKKzFENDlCOzFENDlCOzFENDlCOzAwN0E7MDA3QTsKKzFENDlDOzFENDlDOzFENDlDOzAwNDE7MDA0MTsKKzFENDlFOzFENDlFOzFENDlFOzAwNDM7MDA0MzsKKzFENDlGOzFENDlGOzFENDlGOzAwNDQ7MDA0NDsKKzFENEEyOzFENEEyOzFENEEyOzAwNDc7MDA0NzsKKzFENEE1OzFENEE1OzFENEE1OzAwNEE7MDA0QTsKKzFENEE2OzFENEE2OzFENEE2OzAwNEI7MDA0QjsKKzFENEE5OzFENEE5OzFENEE5OzAwNEU7MDA0RTsKKzFENEFBOzFENEFBOzFENEFBOzAwNEY7MDA0RjsKKzFENEFCOzFENEFCOzFENEFCOzAwNTA7MDA1MDsKKzFENEFDOzFENEFDOzFENEFDOzAwNTE7MDA1MTsKKzFENEFFOzFENEFFOzFENEFFOzAwNTM7MDA1MzsKKzFENEFGOzFENEFGOzFENEFGOzAwNTQ7MDA1NDsKKzFENEIwOzFENEIwOzFENEIwOzAwNTU7MDA1NTsKKzFENEIxOzFENEIxOzFENEIxOzAwNTY7MDA1NjsKKzFENEIyOzFENEIyOzFENEIyOzAwNTc7MDA1NzsKKzFENEIzOzFENEIzOzFENEIzOzAwNTg7MDA1ODsKKzFENEI0OzFENEI0OzFENEI0OzAwNTk7MDA1OTsKKzFENEI1OzFENEI1OzFENEI1OzAwNUE7MDA1QTsKKzFENEI2OzFENEI2OzFENEI2OzAwNjE7MDA2MTsKKzFENEI3OzFENEI3OzFENEI3OzAwNjI7MDA2MjsKKzFENEI4OzFENEI4OzFENEI4OzAwNjM7MDA2MzsKKzFENEI5OzFENEI5OzFENEI5OzAwNjQ7MDA2NDsKKzFENEJCOzFENEJCOzFENEJCOzAwNjY7MDA2NjsKKzFENEJEOzFENEJEOzFENEJEOzAwNjg7MDA2ODsKKzFENEJFOzFENEJFOzFENEJFOzAwNjk7MDA2OTsKKzFENEJGOzFENEJGOzFENEJGOzAwNkE7MDA2QTsKKzFENEMwOzFENEMwOzFENEMwOzAwNkI7MDA2QjsKKzFENEMyOzFENEMyOzFENEMyOzAwNkQ7MDA2RDsKKzFENEMzOzFENEMzOzFENEMzOzAwNkU7MDA2RTsKKzFENEM1OzFENEM1OzFENEM1OzAwNzA7MDA3MDsKKzFENEM2OzFENEM2OzFENEM2OzAwNzE7MDA3MTsKKzFENEM3OzFENEM3OzFENEM3OzAwNzI7MDA3MjsKKzFENEM4OzFENEM4OzFENEM4OzAwNzM7MDA3MzsKKzFENEM5OzFENEM5OzFENEM5OzAwNzQ7MDA3NDsKKzFENENBOzFENENBOzFENENBOzAwNzU7MDA3NTsKKzFENENCOzFENENCOzFENENCOzAwNzY7MDA3NjsKKzFENENDOzFENENDOzFENENDOzAwNzc7MDA3NzsKKzFENENEOzFENENEOzFENENEOzAwNzg7MDA3ODsKKzFENENFOzFENENFOzFENENFOzAwNzk7MDA3OTsKKzFENENGOzFENENGOzFENENGOzAwN0E7MDA3QTsKKzFENEQwOzFENEQwOzFENEQwOzAwNDE7MDA0MTsKKzFENEQxOzFENEQxOzFENEQxOzAwNDI7MDA0MjsKKzFENEQyOzFENEQyOzFENEQyOzAwNDM7MDA0MzsKKzFENEQzOzFENEQzOzFENEQzOzAwNDQ7MDA0NDsKKzFENEQ0OzFENEQ0OzFENEQ0OzAwNDU7MDA0NTsKKzFENEQ1OzFENEQ1OzFENEQ1OzAwNDY7MDA0NjsKKzFENEQ2OzFENEQ2OzFENEQ2OzAwNDc7MDA0NzsKKzFENEQ3OzFENEQ3OzFENEQ3OzAwNDg7MDA0ODsKKzFENEQ4OzFENEQ4OzFENEQ4OzAwNDk7MDA0OTsKKzFENEQ5OzFENEQ5OzFENEQ5OzAwNEE7MDA0QTsKKzFENERBOzFENERBOzFENERBOzAwNEI7MDA0QjsKKzFENERCOzFENERCOzFENERCOzAwNEM7MDA0QzsKKzFENERDOzFENERDOzFENERDOzAwNEQ7MDA0RDsKKzFENEREOzFENEREOzFENEREOzAwNEU7MDA0RTsKKzFENERFOzFENERFOzFENERFOzAwNEY7MDA0RjsKKzFENERGOzFENERGOzFENERGOzAwNTA7MDA1MDsKKzFENEUwOzFENEUwOzFENEUwOzAwNTE7MDA1MTsKKzFENEUxOzFENEUxOzFENEUxOzAwNTI7MDA1MjsKKzFENEUyOzFENEUyOzFENEUyOzAwNTM7MDA1MzsKKzFENEUzOzFENEUzOzFENEUzOzAwNTQ7MDA1NDsKKzFENEU0OzFENEU0OzFENEU0OzAwNTU7MDA1NTsKKzFENEU1OzFENEU1OzFENEU1OzAwNTY7MDA1NjsKKzFENEU2OzFENEU2OzFENEU2OzAwNTc7MDA1NzsKKzFENEU3OzFENEU3OzFENEU3OzAwNTg7MDA1ODsKKzFENEU4OzFENEU4OzFENEU4OzAwNTk7MDA1OTsKKzFENEU5OzFENEU5OzFENEU5OzAwNUE7MDA1QTsKKzFENEVBOzFENEVBOzFENEVBOzAwNjE7MDA2MTsKKzFENEVCOzFENEVCOzFENEVCOzAwNjI7MDA2MjsKKzFENEVDOzFENEVDOzFENEVDOzAwNjM7MDA2MzsKKzFENEVEOzFENEVEOzFENEVEOzAwNjQ7MDA2NDsKKzFENEVFOzFENEVFOzFENEVFOzAwNjU7MDA2NTsKKzFENEVGOzFENEVGOzFENEVGOzAwNjY7MDA2NjsKKzFENEYwOzFENEYwOzFENEYwOzAwNjc7MDA2NzsKKzFENEYxOzFENEYxOzFENEYxOzAwNjg7MDA2ODsKKzFENEYyOzFENEYyOzFENEYyOzAwNjk7MDA2OTsKKzFENEYzOzFENEYzOzFENEYzOzAwNkE7MDA2QTsKKzFENEY0OzFENEY0OzFENEY0OzAwNkI7MDA2QjsKKzFENEY1OzFENEY1OzFENEY1OzAwNkM7MDA2QzsKKzFENEY2OzFENEY2OzFENEY2OzAwNkQ7MDA2RDsKKzFENEY3OzFENEY3OzFENEY3OzAwNkU7MDA2RTsKKzFENEY4OzFENEY4OzFENEY4OzAwNkY7MDA2RjsKKzFENEY5OzFENEY5OzFENEY5OzAwNzA7MDA3MDsKKzFENEZBOzFENEZBOzFENEZBOzAwNzE7MDA3MTsKKzFENEZCOzFENEZCOzFENEZCOzAwNzI7MDA3MjsKKzFENEZDOzFENEZDOzFENEZDOzAwNzM7MDA3MzsKKzFENEZEOzFENEZEOzFENEZEOzAwNzQ7MDA3NDsKKzFENEZFOzFENEZFOzFENEZFOzAwNzU7MDA3NTsKKzFENEZGOzFENEZGOzFENEZGOzAwNzY7MDA3NjsKKzFENTAwOzFENTAwOzFENTAwOzAwNzc7MDA3NzsKKzFENTAxOzFENTAxOzFENTAxOzAwNzg7MDA3ODsKKzFENTAyOzFENTAyOzFENTAyOzAwNzk7MDA3OTsKKzFENTAzOzFENTAzOzFENTAzOzAwN0E7MDA3QTsKKzFENTA0OzFENTA0OzFENTA0OzAwNDE7MDA0MTsKKzFENTA1OzFENTA1OzFENTA1OzAwNDI7MDA0MjsKKzFENTA3OzFENTA3OzFENTA3OzAwNDQ7MDA0NDsKKzFENTA4OzFENTA4OzFENTA4OzAwNDU7MDA0NTsKKzFENTA5OzFENTA5OzFENTA5OzAwNDY7MDA0NjsKKzFENTBBOzFENTBBOzFENTBBOzAwNDc7MDA0NzsKKzFENTBEOzFENTBEOzFENTBEOzAwNEE7MDA0QTsKKzFENTBFOzFENTBFOzFENTBFOzAwNEI7MDA0QjsKKzFENTBGOzFENTBGOzFENTBGOzAwNEM7MDA0QzsKKzFENTEwOzFENTEwOzFENTEwOzAwNEQ7MDA0RDsKKzFENTExOzFENTExOzFENTExOzAwNEU7MDA0RTsKKzFENTEyOzFENTEyOzFENTEyOzAwNEY7MDA0RjsKKzFENTEzOzFENTEzOzFENTEzOzAwNTA7MDA1MDsKKzFENTE0OzFENTE0OzFENTE0OzAwNTE7MDA1MTsKKzFENTE2OzFENTE2OzFENTE2OzAwNTM7MDA1MzsKKzFENTE3OzFENTE3OzFENTE3OzAwNTQ7MDA1NDsKKzFENTE4OzFENTE4OzFENTE4OzAwNTU7MDA1NTsKKzFENTE5OzFENTE5OzFENTE5OzAwNTY7MDA1NjsKKzFENTFBOzFENTFBOzFENTFBOzAwNTc7MDA1NzsKKzFENTFCOzFENTFCOzFENTFCOzAwNTg7MDA1ODsKKzFENTFDOzFENTFDOzFENTFDOzAwNTk7MDA1OTsKKzFENTFFOzFENTFFOzFENTFFOzAwNjE7MDA2MTsKKzFENTFGOzFENTFGOzFENTFGOzAwNjI7MDA2MjsKKzFENTIwOzFENTIwOzFENTIwOzAwNjM7MDA2MzsKKzFENTIxOzFENTIxOzFENTIxOzAwNjQ7MDA2NDsKKzFENTIyOzFENTIyOzFENTIyOzAwNjU7MDA2NTsKKzFENTIzOzFENTIzOzFENTIzOzAwNjY7MDA2NjsKKzFENTI0OzFENTI0OzFENTI0OzAwNjc7MDA2NzsKKzFENTI1OzFENTI1OzFENTI1OzAwNjg7MDA2ODsKKzFENTI2OzFENTI2OzFENTI2OzAwNjk7MDA2OTsKKzFENTI3OzFENTI3OzFENTI3OzAwNkE7MDA2QTsKKzFENTI4OzFENTI4OzFENTI4OzAwNkI7MDA2QjsKKzFENTI5OzFENTI5OzFENTI5OzAwNkM7MDA2QzsKKzFENTJBOzFENTJBOzFENTJBOzAwNkQ7MDA2RDsKKzFENTJCOzFENTJCOzFENTJCOzAwNkU7MDA2RTsKKzFENTJDOzFENTJDOzFENTJDOzAwNkY7MDA2RjsKKzFENTJEOzFENTJEOzFENTJEOzAwNzA7MDA3MDsKKzFENTJFOzFENTJFOzFENTJFOzAwNzE7MDA3MTsKKzFENTJGOzFENTJGOzFENTJGOzAwNzI7MDA3MjsKKzFENTMwOzFENTMwOzFENTMwOzAwNzM7MDA3MzsKKzFENTMxOzFENTMxOzFENTMxOzAwNzQ7MDA3NDsKKzFENTMyOzFENTMyOzFENTMyOzAwNzU7MDA3NTsKKzFENTMzOzFENTMzOzFENTMzOzAwNzY7MDA3NjsKKzFENTM0OzFENTM0OzFENTM0OzAwNzc7MDA3NzsKKzFENTM1OzFENTM1OzFENTM1OzAwNzg7MDA3ODsKKzFENTM2OzFENTM2OzFENTM2OzAwNzk7MDA3OTsKKzFENTM3OzFENTM3OzFENTM3OzAwN0E7MDA3QTsKKzFENTM4OzFENTM4OzFENTM4OzAwNDE7MDA0MTsKKzFENTM5OzFENTM5OzFENTM5OzAwNDI7MDA0MjsKKzFENTNCOzFENTNCOzFENTNCOzAwNDQ7MDA0NDsKKzFENTNDOzFENTNDOzFENTNDOzAwNDU7MDA0NTsKKzFENTNEOzFENTNEOzFENTNEOzAwNDY7MDA0NjsKKzFENTNFOzFENTNFOzFENTNFOzAwNDc7MDA0NzsKKzFENTQwOzFENTQwOzFENTQwOzAwNDk7MDA0OTsKKzFENTQxOzFENTQxOzFENTQxOzAwNEE7MDA0QTsKKzFENTQyOzFENTQyOzFENTQyOzAwNEI7MDA0QjsKKzFENTQzOzFENTQzOzFENTQzOzAwNEM7MDA0QzsKKzFENTQ0OzFENTQ0OzFENTQ0OzAwNEQ7MDA0RDsKKzFENTQ2OzFENTQ2OzFENTQ2OzAwNEY7MDA0RjsKKzFENTRBOzFENTRBOzFENTRBOzAwNTM7MDA1MzsKKzFENTRCOzFENTRCOzFENTRCOzAwNTQ7MDA1NDsKKzFENTRDOzFENTRDOzFENTRDOzAwNTU7MDA1NTsKKzFENTREOzFENTREOzFENTREOzAwNTY7MDA1NjsKKzFENTRFOzFENTRFOzFENTRFOzAwNTc7MDA1NzsKKzFENTRGOzFENTRGOzFENTRGOzAwNTg7MDA1ODsKKzFENTUwOzFENTUwOzFENTUwOzAwNTk7MDA1OTsKKzFENTUyOzFENTUyOzFENTUyOzAwNjE7MDA2MTsKKzFENTUzOzFENTUzOzFENTUzOzAwNjI7MDA2MjsKKzFENTU0OzFENTU0OzFENTU0OzAwNjM7MDA2MzsKKzFENTU1OzFENTU1OzFENTU1OzAwNjQ7MDA2NDsKKzFENTU2OzFENTU2OzFENTU2OzAwNjU7MDA2NTsKKzFENTU3OzFENTU3OzFENTU3OzAwNjY7MDA2NjsKKzFENTU4OzFENTU4OzFENTU4OzAwNjc7MDA2NzsKKzFENTU5OzFENTU5OzFENTU5OzAwNjg7MDA2ODsKKzFENTVBOzFENTVBOzFENTVBOzAwNjk7MDA2OTsKKzFENTVCOzFENTVCOzFENTVCOzAwNkE7MDA2QTsKKzFENTVDOzFENTVDOzFENTVDOzAwNkI7MDA2QjsKKzFENTVEOzFENTVEOzFENTVEOzAwNkM7MDA2QzsKKzFENTVFOzFENTVFOzFENTVFOzAwNkQ7MDA2RDsKKzFENTVGOzFENTVGOzFENTVGOzAwNkU7MDA2RTsKKzFENTYwOzFENTYwOzFENTYwOzAwNkY7MDA2RjsKKzFENTYxOzFENTYxOzFENTYxOzAwNzA7MDA3MDsKKzFENTYyOzFENTYyOzFENTYyOzAwNzE7MDA3MTsKKzFENTYzOzFENTYzOzFENTYzOzAwNzI7MDA3MjsKKzFENTY0OzFENTY0OzFENTY0OzAwNzM7MDA3MzsKKzFENTY1OzFENTY1OzFENTY1OzAwNzQ7MDA3NDsKKzFENTY2OzFENTY2OzFENTY2OzAwNzU7MDA3NTsKKzFENTY3OzFENTY3OzFENTY3OzAwNzY7MDA3NjsKKzFENTY4OzFENTY4OzFENTY4OzAwNzc7MDA3NzsKKzFENTY5OzFENTY5OzFENTY5OzAwNzg7MDA3ODsKKzFENTZBOzFENTZBOzFENTZBOzAwNzk7MDA3OTsKKzFENTZCOzFENTZCOzFENTZCOzAwN0E7MDA3QTsKKzFENTZDOzFENTZDOzFENTZDOzAwNDE7MDA0MTsKKzFENTZEOzFENTZEOzFENTZEOzAwNDI7MDA0MjsKKzFENTZFOzFENTZFOzFENTZFOzAwNDM7MDA0MzsKKzFENTZGOzFENTZGOzFENTZGOzAwNDQ7MDA0NDsKKzFENTcwOzFENTcwOzFENTcwOzAwNDU7MDA0NTsKKzFENTcxOzFENTcxOzFENTcxOzAwNDY7MDA0NjsKKzFENTcyOzFENTcyOzFENTcyOzAwNDc7MDA0NzsKKzFENTczOzFENTczOzFENTczOzAwNDg7MDA0ODsKKzFENTc0OzFENTc0OzFENTc0OzAwNDk7MDA0OTsKKzFENTc1OzFENTc1OzFENTc1OzAwNEE7MDA0QTsKKzFENTc2OzFENTc2OzFENTc2OzAwNEI7MDA0QjsKKzFENTc3OzFENTc3OzFENTc3OzAwNEM7MDA0QzsKKzFENTc4OzFENTc4OzFENTc4OzAwNEQ7MDA0RDsKKzFENTc5OzFENTc5OzFENTc5OzAwNEU7MDA0RTsKKzFENTdBOzFENTdBOzFENTdBOzAwNEY7MDA0RjsKKzFENTdCOzFENTdCOzFENTdCOzAwNTA7MDA1MDsKKzFENTdDOzFENTdDOzFENTdDOzAwNTE7MDA1MTsKKzFENTdEOzFENTdEOzFENTdEOzAwNTI7MDA1MjsKKzFENTdFOzFENTdFOzFENTdFOzAwNTM7MDA1MzsKKzFENTdGOzFENTdGOzFENTdGOzAwNTQ7MDA1NDsKKzFENTgwOzFENTgwOzFENTgwOzAwNTU7MDA1NTsKKzFENTgxOzFENTgxOzFENTgxOzAwNTY7MDA1NjsKKzFENTgyOzFENTgyOzFENTgyOzAwNTc7MDA1NzsKKzFENTgzOzFENTgzOzFENTgzOzAwNTg7MDA1ODsKKzFENTg0OzFENTg0OzFENTg0OzAwNTk7MDA1OTsKKzFENTg1OzFENTg1OzFENTg1OzAwNUE7MDA1QTsKKzFENTg2OzFENTg2OzFENTg2OzAwNjE7MDA2MTsKKzFENTg3OzFENTg3OzFENTg3OzAwNjI7MDA2MjsKKzFENTg4OzFENTg4OzFENTg4OzAwNjM7MDA2MzsKKzFENTg5OzFENTg5OzFENTg5OzAwNjQ7MDA2NDsKKzFENThBOzFENThBOzFENThBOzAwNjU7MDA2NTsKKzFENThCOzFENThCOzFENThCOzAwNjY7MDA2NjsKKzFENThDOzFENThDOzFENThDOzAwNjc7MDA2NzsKKzFENThEOzFENThEOzFENThEOzAwNjg7MDA2ODsKKzFENThFOzFENThFOzFENThFOzAwNjk7MDA2OTsKKzFENThGOzFENThGOzFENThGOzAwNkE7MDA2QTsKKzFENTkwOzFENTkwOzFENTkwOzAwNkI7MDA2QjsKKzFENTkxOzFENTkxOzFENTkxOzAwNkM7MDA2QzsKKzFENTkyOzFENTkyOzFENTkyOzAwNkQ7MDA2RDsKKzFENTkzOzFENTkzOzFENTkzOzAwNkU7MDA2RTsKKzFENTk0OzFENTk0OzFENTk0OzAwNkY7MDA2RjsKKzFENTk1OzFENTk1OzFENTk1OzAwNzA7MDA3MDsKKzFENTk2OzFENTk2OzFENTk2OzAwNzE7MDA3MTsKKzFENTk3OzFENTk3OzFENTk3OzAwNzI7MDA3MjsKKzFENTk4OzFENTk4OzFENTk4OzAwNzM7MDA3MzsKKzFENTk5OzFENTk5OzFENTk5OzAwNzQ7MDA3NDsKKzFENTlBOzFENTlBOzFENTlBOzAwNzU7MDA3NTsKKzFENTlCOzFENTlCOzFENTlCOzAwNzY7MDA3NjsKKzFENTlDOzFENTlDOzFENTlDOzAwNzc7MDA3NzsKKzFENTlEOzFENTlEOzFENTlEOzAwNzg7MDA3ODsKKzFENTlFOzFENTlFOzFENTlFOzAwNzk7MDA3OTsKKzFENTlGOzFENTlGOzFENTlGOzAwN0E7MDA3QTsKKzFENUEwOzFENUEwOzFENUEwOzAwNDE7MDA0MTsKKzFENUExOzFENUExOzFENUExOzAwNDI7MDA0MjsKKzFENUEyOzFENUEyOzFENUEyOzAwNDM7MDA0MzsKKzFENUEzOzFENUEzOzFENUEzOzAwNDQ7MDA0NDsKKzFENUE0OzFENUE0OzFENUE0OzAwNDU7MDA0NTsKKzFENUE1OzFENUE1OzFENUE1OzAwNDY7MDA0NjsKKzFENUE2OzFENUE2OzFENUE2OzAwNDc7MDA0NzsKKzFENUE3OzFENUE3OzFENUE3OzAwNDg7MDA0ODsKKzFENUE4OzFENUE4OzFENUE4OzAwNDk7MDA0OTsKKzFENUE5OzFENUE5OzFENUE5OzAwNEE7MDA0QTsKKzFENUFBOzFENUFBOzFENUFBOzAwNEI7MDA0QjsKKzFENUFCOzFENUFCOzFENUFCOzAwNEM7MDA0QzsKKzFENUFDOzFENUFDOzFENUFDOzAwNEQ7MDA0RDsKKzFENUFEOzFENUFEOzFENUFEOzAwNEU7MDA0RTsKKzFENUFFOzFENUFFOzFENUFFOzAwNEY7MDA0RjsKKzFENUFGOzFENUFGOzFENUFGOzAwNTA7MDA1MDsKKzFENUIwOzFENUIwOzFENUIwOzAwNTE7MDA1MTsKKzFENUIxOzFENUIxOzFENUIxOzAwNTI7MDA1MjsKKzFENUIyOzFENUIyOzFENUIyOzAwNTM7MDA1MzsKKzFENUIzOzFENUIzOzFENUIzOzAwNTQ7MDA1NDsKKzFENUI0OzFENUI0OzFENUI0OzAwNTU7MDA1NTsKKzFENUI1OzFENUI1OzFENUI1OzAwNTY7MDA1NjsKKzFENUI2OzFENUI2OzFENUI2OzAwNTc7MDA1NzsKKzFENUI3OzFENUI3OzFENUI3OzAwNTg7MDA1ODsKKzFENUI4OzFENUI4OzFENUI4OzAwNTk7MDA1OTsKKzFENUI5OzFENUI5OzFENUI5OzAwNUE7MDA1QTsKKzFENUJBOzFENUJBOzFENUJBOzAwNjE7MDA2MTsKKzFENUJCOzFENUJCOzFENUJCOzAwNjI7MDA2MjsKKzFENUJDOzFENUJDOzFENUJDOzAwNjM7MDA2MzsKKzFENUJEOzFENUJEOzFENUJEOzAwNjQ7MDA2NDsKKzFENUJFOzFENUJFOzFENUJFOzAwNjU7MDA2NTsKKzFENUJGOzFENUJGOzFENUJGOzAwNjY7MDA2NjsKKzFENUMwOzFENUMwOzFENUMwOzAwNjc7MDA2NzsKKzFENUMxOzFENUMxOzFENUMxOzAwNjg7MDA2ODsKKzFENUMyOzFENUMyOzFENUMyOzAwNjk7MDA2OTsKKzFENUMzOzFENUMzOzFENUMzOzAwNkE7MDA2QTsKKzFENUM0OzFENUM0OzFENUM0OzAwNkI7MDA2QjsKKzFENUM1OzFENUM1OzFENUM1OzAwNkM7MDA2QzsKKzFENUM2OzFENUM2OzFENUM2OzAwNkQ7MDA2RDsKKzFENUM3OzFENUM3OzFENUM3OzAwNkU7MDA2RTsKKzFENUM4OzFENUM4OzFENUM4OzAwNkY7MDA2RjsKKzFENUM5OzFENUM5OzFENUM5OzAwNzA7MDA3MDsKKzFENUNBOzFENUNBOzFENUNBOzAwNzE7MDA3MTsKKzFENUNCOzFENUNCOzFENUNCOzAwNzI7MDA3MjsKKzFENUNDOzFENUNDOzFENUNDOzAwNzM7MDA3MzsKKzFENUNEOzFENUNEOzFENUNEOzAwNzQ7MDA3NDsKKzFENUNFOzFENUNFOzFENUNFOzAwNzU7MDA3NTsKKzFENUNGOzFENUNGOzFENUNGOzAwNzY7MDA3NjsKKzFENUQwOzFENUQwOzFENUQwOzAwNzc7MDA3NzsKKzFENUQxOzFENUQxOzFENUQxOzAwNzg7MDA3ODsKKzFENUQyOzFENUQyOzFENUQyOzAwNzk7MDA3OTsKKzFENUQzOzFENUQzOzFENUQzOzAwN0E7MDA3QTsKKzFENUQ0OzFENUQ0OzFENUQ0OzAwNDE7MDA0MTsKKzFENUQ1OzFENUQ1OzFENUQ1OzAwNDI7MDA0MjsKKzFENUQ2OzFENUQ2OzFENUQ2OzAwNDM7MDA0MzsKKzFENUQ3OzFENUQ3OzFENUQ3OzAwNDQ7MDA0NDsKKzFENUQ4OzFENUQ4OzFENUQ4OzAwNDU7MDA0NTsKKzFENUQ5OzFENUQ5OzFENUQ5OzAwNDY7MDA0NjsKKzFENURBOzFENURBOzFENURBOzAwNDc7MDA0NzsKKzFENURCOzFENURCOzFENURCOzAwNDg7MDA0ODsKKzFENURDOzFENURDOzFENURDOzAwNDk7MDA0OTsKKzFENUREOzFENUREOzFENUREOzAwNEE7MDA0QTsKKzFENURFOzFENURFOzFENURFOzAwNEI7MDA0QjsKKzFENURGOzFENURGOzFENURGOzAwNEM7MDA0QzsKKzFENUUwOzFENUUwOzFENUUwOzAwNEQ7MDA0RDsKKzFENUUxOzFENUUxOzFENUUxOzAwNEU7MDA0RTsKKzFENUUyOzFENUUyOzFENUUyOzAwNEY7MDA0RjsKKzFENUUzOzFENUUzOzFENUUzOzAwNTA7MDA1MDsKKzFENUU0OzFENUU0OzFENUU0OzAwNTE7MDA1MTsKKzFENUU1OzFENUU1OzFENUU1OzAwNTI7MDA1MjsKKzFENUU2OzFENUU2OzFENUU2OzAwNTM7MDA1MzsKKzFENUU3OzFENUU3OzFENUU3OzAwNTQ7MDA1NDsKKzFENUU4OzFENUU4OzFENUU4OzAwNTU7MDA1NTsKKzFENUU5OzFENUU5OzFENUU5OzAwNTY7MDA1NjsKKzFENUVBOzFENUVBOzFENUVBOzAwNTc7MDA1NzsKKzFENUVCOzFENUVCOzFENUVCOzAwNTg7MDA1ODsKKzFENUVDOzFENUVDOzFENUVDOzAwNTk7MDA1OTsKKzFENUVEOzFENUVEOzFENUVEOzAwNUE7MDA1QTsKKzFENUVFOzFENUVFOzFENUVFOzAwNjE7MDA2MTsKKzFENUVGOzFENUVGOzFENUVGOzAwNjI7MDA2MjsKKzFENUYwOzFENUYwOzFENUYwOzAwNjM7MDA2MzsKKzFENUYxOzFENUYxOzFENUYxOzAwNjQ7MDA2NDsKKzFENUYyOzFENUYyOzFENUYyOzAwNjU7MDA2NTsKKzFENUYzOzFENUYzOzFENUYzOzAwNjY7MDA2NjsKKzFENUY0OzFENUY0OzFENUY0OzAwNjc7MDA2NzsKKzFENUY1OzFENUY1OzFENUY1OzAwNjg7MDA2ODsKKzFENUY2OzFENUY2OzFENUY2OzAwNjk7MDA2OTsKKzFENUY3OzFENUY3OzFENUY3OzAwNkE7MDA2QTsKKzFENUY4OzFENUY4OzFENUY4OzAwNkI7MDA2QjsKKzFENUY5OzFENUY5OzFENUY5OzAwNkM7MDA2QzsKKzFENUZBOzFENUZBOzFENUZBOzAwNkQ7MDA2RDsKKzFENUZCOzFENUZCOzFENUZCOzAwNkU7MDA2RTsKKzFENUZDOzFENUZDOzFENUZDOzAwNkY7MDA2RjsKKzFENUZEOzFENUZEOzFENUZEOzAwNzA7MDA3MDsKKzFENUZFOzFENUZFOzFENUZFOzAwNzE7MDA3MTsKKzFENUZGOzFENUZGOzFENUZGOzAwNzI7MDA3MjsKKzFENjAwOzFENjAwOzFENjAwOzAwNzM7MDA3MzsKKzFENjAxOzFENjAxOzFENjAxOzAwNzQ7MDA3NDsKKzFENjAyOzFENjAyOzFENjAyOzAwNzU7MDA3NTsKKzFENjAzOzFENjAzOzFENjAzOzAwNzY7MDA3NjsKKzFENjA0OzFENjA0OzFENjA0OzAwNzc7MDA3NzsKKzFENjA1OzFENjA1OzFENjA1OzAwNzg7MDA3ODsKKzFENjA2OzFENjA2OzFENjA2OzAwNzk7MDA3OTsKKzFENjA3OzFENjA3OzFENjA3OzAwN0E7MDA3QTsKKzFENjA4OzFENjA4OzFENjA4OzAwNDE7MDA0MTsKKzFENjA5OzFENjA5OzFENjA5OzAwNDI7MDA0MjsKKzFENjBBOzFENjBBOzFENjBBOzAwNDM7MDA0MzsKKzFENjBCOzFENjBCOzFENjBCOzAwNDQ7MDA0NDsKKzFENjBDOzFENjBDOzFENjBDOzAwNDU7MDA0NTsKKzFENjBEOzFENjBEOzFENjBEOzAwNDY7MDA0NjsKKzFENjBFOzFENjBFOzFENjBFOzAwNDc7MDA0NzsKKzFENjBGOzFENjBGOzFENjBGOzAwNDg7MDA0ODsKKzFENjEwOzFENjEwOzFENjEwOzAwNDk7MDA0OTsKKzFENjExOzFENjExOzFENjExOzAwNEE7MDA0QTsKKzFENjEyOzFENjEyOzFENjEyOzAwNEI7MDA0QjsKKzFENjEzOzFENjEzOzFENjEzOzAwNEM7MDA0QzsKKzFENjE0OzFENjE0OzFENjE0OzAwNEQ7MDA0RDsKKzFENjE1OzFENjE1OzFENjE1OzAwNEU7MDA0RTsKKzFENjE2OzFENjE2OzFENjE2OzAwNEY7MDA0RjsKKzFENjE3OzFENjE3OzFENjE3OzAwNTA7MDA1MDsKKzFENjE4OzFENjE4OzFENjE4OzAwNTE7MDA1MTsKKzFENjE5OzFENjE5OzFENjE5OzAwNTI7MDA1MjsKKzFENjFBOzFENjFBOzFENjFBOzAwNTM7MDA1MzsKKzFENjFCOzFENjFCOzFENjFCOzAwNTQ7MDA1NDsKKzFENjFDOzFENjFDOzFENjFDOzAwNTU7MDA1NTsKKzFENjFEOzFENjFEOzFENjFEOzAwNTY7MDA1NjsKKzFENjFFOzFENjFFOzFENjFFOzAwNTc7MDA1NzsKKzFENjFGOzFENjFGOzFENjFGOzAwNTg7MDA1ODsKKzFENjIwOzFENjIwOzFENjIwOzAwNTk7MDA1OTsKKzFENjIxOzFENjIxOzFENjIxOzAwNUE7MDA1QTsKKzFENjIyOzFENjIyOzFENjIyOzAwNjE7MDA2MTsKKzFENjIzOzFENjIzOzFENjIzOzAwNjI7MDA2MjsKKzFENjI0OzFENjI0OzFENjI0OzAwNjM7MDA2MzsKKzFENjI1OzFENjI1OzFENjI1OzAwNjQ7MDA2NDsKKzFENjI2OzFENjI2OzFENjI2OzAwNjU7MDA2NTsKKzFENjI3OzFENjI3OzFENjI3OzAwNjY7MDA2NjsKKzFENjI4OzFENjI4OzFENjI4OzAwNjc7MDA2NzsKKzFENjI5OzFENjI5OzFENjI5OzAwNjg7MDA2ODsKKzFENjJBOzFENjJBOzFENjJBOzAwNjk7MDA2OTsKKzFENjJCOzFENjJCOzFENjJCOzAwNkE7MDA2QTsKKzFENjJDOzFENjJDOzFENjJDOzAwNkI7MDA2QjsKKzFENjJEOzFENjJEOzFENjJEOzAwNkM7MDA2QzsKKzFENjJFOzFENjJFOzFENjJFOzAwNkQ7MDA2RDsKKzFENjJGOzFENjJGOzFENjJGOzAwNkU7MDA2RTsKKzFENjMwOzFENjMwOzFENjMwOzAwNkY7MDA2RjsKKzFENjMxOzFENjMxOzFENjMxOzAwNzA7MDA3MDsKKzFENjMyOzFENjMyOzFENjMyOzAwNzE7MDA3MTsKKzFENjMzOzFENjMzOzFENjMzOzAwNzI7MDA3MjsKKzFENjM0OzFENjM0OzFENjM0OzAwNzM7MDA3MzsKKzFENjM1OzFENjM1OzFENjM1OzAwNzQ7MDA3NDsKKzFENjM2OzFENjM2OzFENjM2OzAwNzU7MDA3NTsKKzFENjM3OzFENjM3OzFENjM3OzAwNzY7MDA3NjsKKzFENjM4OzFENjM4OzFENjM4OzAwNzc7MDA3NzsKKzFENjM5OzFENjM5OzFENjM5OzAwNzg7MDA3ODsKKzFENjNBOzFENjNBOzFENjNBOzAwNzk7MDA3OTsKKzFENjNCOzFENjNCOzFENjNCOzAwN0E7MDA3QTsKKzFENjNDOzFENjNDOzFENjNDOzAwNDE7MDA0MTsKKzFENjNEOzFENjNEOzFENjNEOzAwNDI7MDA0MjsKKzFENjNFOzFENjNFOzFENjNFOzAwNDM7MDA0MzsKKzFENjNGOzFENjNGOzFENjNGOzAwNDQ7MDA0NDsKKzFENjQwOzFENjQwOzFENjQwOzAwNDU7MDA0NTsKKzFENjQxOzFENjQxOzFENjQxOzAwNDY7MDA0NjsKKzFENjQyOzFENjQyOzFENjQyOzAwNDc7MDA0NzsKKzFENjQzOzFENjQzOzFENjQzOzAwNDg7MDA0ODsKKzFENjQ0OzFENjQ0OzFENjQ0OzAwNDk7MDA0OTsKKzFENjQ1OzFENjQ1OzFENjQ1OzAwNEE7MDA0QTsKKzFENjQ2OzFENjQ2OzFENjQ2OzAwNEI7MDA0QjsKKzFENjQ3OzFENjQ3OzFENjQ3OzAwNEM7MDA0QzsKKzFENjQ4OzFENjQ4OzFENjQ4OzAwNEQ7MDA0RDsKKzFENjQ5OzFENjQ5OzFENjQ5OzAwNEU7MDA0RTsKKzFENjRBOzFENjRBOzFENjRBOzAwNEY7MDA0RjsKKzFENjRCOzFENjRCOzFENjRCOzAwNTA7MDA1MDsKKzFENjRDOzFENjRDOzFENjRDOzAwNTE7MDA1MTsKKzFENjREOzFENjREOzFENjREOzAwNTI7MDA1MjsKKzFENjRFOzFENjRFOzFENjRFOzAwNTM7MDA1MzsKKzFENjRGOzFENjRGOzFENjRGOzAwNTQ7MDA1NDsKKzFENjUwOzFENjUwOzFENjUwOzAwNTU7MDA1NTsKKzFENjUxOzFENjUxOzFENjUxOzAwNTY7MDA1NjsKKzFENjUyOzFENjUyOzFENjUyOzAwNTc7MDA1NzsKKzFENjUzOzFENjUzOzFENjUzOzAwNTg7MDA1ODsKKzFENjU0OzFENjU0OzFENjU0OzAwNTk7MDA1OTsKKzFENjU1OzFENjU1OzFENjU1OzAwNUE7MDA1QTsKKzFENjU2OzFENjU2OzFENjU2OzAwNjE7MDA2MTsKKzFENjU3OzFENjU3OzFENjU3OzAwNjI7MDA2MjsKKzFENjU4OzFENjU4OzFENjU4OzAwNjM7MDA2MzsKKzFENjU5OzFENjU5OzFENjU5OzAwNjQ7MDA2NDsKKzFENjVBOzFENjVBOzFENjVBOzAwNjU7MDA2NTsKKzFENjVCOzFENjVCOzFENjVCOzAwNjY7MDA2NjsKKzFENjVDOzFENjVDOzFENjVDOzAwNjc7MDA2NzsKKzFENjVEOzFENjVEOzFENjVEOzAwNjg7MDA2ODsKKzFENjVFOzFENjVFOzFENjVFOzAwNjk7MDA2OTsKKzFENjVGOzFENjVGOzFENjVGOzAwNkE7MDA2QTsKKzFENjYwOzFENjYwOzFENjYwOzAwNkI7MDA2QjsKKzFENjYxOzFENjYxOzFENjYxOzAwNkM7MDA2QzsKKzFENjYyOzFENjYyOzFENjYyOzAwNkQ7MDA2RDsKKzFENjYzOzFENjYzOzFENjYzOzAwNkU7MDA2RTsKKzFENjY0OzFENjY0OzFENjY0OzAwNkY7MDA2RjsKKzFENjY1OzFENjY1OzFENjY1OzAwNzA7MDA3MDsKKzFENjY2OzFENjY2OzFENjY2OzAwNzE7MDA3MTsKKzFENjY3OzFENjY3OzFENjY3OzAwNzI7MDA3MjsKKzFENjY4OzFENjY4OzFENjY4OzAwNzM7MDA3MzsKKzFENjY5OzFENjY5OzFENjY5OzAwNzQ7MDA3NDsKKzFENjZBOzFENjZBOzFENjZBOzAwNzU7MDA3NTsKKzFENjZCOzFENjZCOzFENjZCOzAwNzY7MDA3NjsKKzFENjZDOzFENjZDOzFENjZDOzAwNzc7MDA3NzsKKzFENjZEOzFENjZEOzFENjZEOzAwNzg7MDA3ODsKKzFENjZFOzFENjZFOzFENjZFOzAwNzk7MDA3OTsKKzFENjZGOzFENjZGOzFENjZGOzAwN0E7MDA3QTsKKzFENjcwOzFENjcwOzFENjcwOzAwNDE7MDA0MTsKKzFENjcxOzFENjcxOzFENjcxOzAwNDI7MDA0MjsKKzFENjcyOzFENjcyOzFENjcyOzAwNDM7MDA0MzsKKzFENjczOzFENjczOzFENjczOzAwNDQ7MDA0NDsKKzFENjc0OzFENjc0OzFENjc0OzAwNDU7MDA0NTsKKzFENjc1OzFENjc1OzFENjc1OzAwNDY7MDA0NjsKKzFENjc2OzFENjc2OzFENjc2OzAwNDc7MDA0NzsKKzFENjc3OzFENjc3OzFENjc3OzAwNDg7MDA0ODsKKzFENjc4OzFENjc4OzFENjc4OzAwNDk7MDA0OTsKKzFENjc5OzFENjc5OzFENjc5OzAwNEE7MDA0QTsKKzFENjdBOzFENjdBOzFENjdBOzAwNEI7MDA0QjsKKzFENjdCOzFENjdCOzFENjdCOzAwNEM7MDA0QzsKKzFENjdDOzFENjdDOzFENjdDOzAwNEQ7MDA0RDsKKzFENjdEOzFENjdEOzFENjdEOzAwNEU7MDA0RTsKKzFENjdFOzFENjdFOzFENjdFOzAwNEY7MDA0RjsKKzFENjdGOzFENjdGOzFENjdGOzAwNTA7MDA1MDsKKzFENjgwOzFENjgwOzFENjgwOzAwNTE7MDA1MTsKKzFENjgxOzFENjgxOzFENjgxOzAwNTI7MDA1MjsKKzFENjgyOzFENjgyOzFENjgyOzAwNTM7MDA1MzsKKzFENjgzOzFENjgzOzFENjgzOzAwNTQ7MDA1NDsKKzFENjg0OzFENjg0OzFENjg0OzAwNTU7MDA1NTsKKzFENjg1OzFENjg1OzFENjg1OzAwNTY7MDA1NjsKKzFENjg2OzFENjg2OzFENjg2OzAwNTc7MDA1NzsKKzFENjg3OzFENjg3OzFENjg3OzAwNTg7MDA1ODsKKzFENjg4OzFENjg4OzFENjg4OzAwNTk7MDA1OTsKKzFENjg5OzFENjg5OzFENjg5OzAwNUE7MDA1QTsKKzFENjhBOzFENjhBOzFENjhBOzAwNjE7MDA2MTsKKzFENjhCOzFENjhCOzFENjhCOzAwNjI7MDA2MjsKKzFENjhDOzFENjhDOzFENjhDOzAwNjM7MDA2MzsKKzFENjhEOzFENjhEOzFENjhEOzAwNjQ7MDA2NDsKKzFENjhFOzFENjhFOzFENjhFOzAwNjU7MDA2NTsKKzFENjhGOzFENjhGOzFENjhGOzAwNjY7MDA2NjsKKzFENjkwOzFENjkwOzFENjkwOzAwNjc7MDA2NzsKKzFENjkxOzFENjkxOzFENjkxOzAwNjg7MDA2ODsKKzFENjkyOzFENjkyOzFENjkyOzAwNjk7MDA2OTsKKzFENjkzOzFENjkzOzFENjkzOzAwNkE7MDA2QTsKKzFENjk0OzFENjk0OzFENjk0OzAwNkI7MDA2QjsKKzFENjk1OzFENjk1OzFENjk1OzAwNkM7MDA2QzsKKzFENjk2OzFENjk2OzFENjk2OzAwNkQ7MDA2RDsKKzFENjk3OzFENjk3OzFENjk3OzAwNkU7MDA2RTsKKzFENjk4OzFENjk4OzFENjk4OzAwNkY7MDA2RjsKKzFENjk5OzFENjk5OzFENjk5OzAwNzA7MDA3MDsKKzFENjlBOzFENjlBOzFENjlBOzAwNzE7MDA3MTsKKzFENjlCOzFENjlCOzFENjlCOzAwNzI7MDA3MjsKKzFENjlDOzFENjlDOzFENjlDOzAwNzM7MDA3MzsKKzFENjlEOzFENjlEOzFENjlEOzAwNzQ7MDA3NDsKKzFENjlFOzFENjlFOzFENjlFOzAwNzU7MDA3NTsKKzFENjlGOzFENjlGOzFENjlGOzAwNzY7MDA3NjsKKzFENkEwOzFENkEwOzFENkEwOzAwNzc7MDA3NzsKKzFENkExOzFENkExOzFENkExOzAwNzg7MDA3ODsKKzFENkEyOzFENkEyOzFENkEyOzAwNzk7MDA3OTsKKzFENkEzOzFENkEzOzFENkEzOzAwN0E7MDA3QTsKKzFENkE4OzFENkE4OzFENkE4OzAzOTE7MDM5MTsKKzFENkE5OzFENkE5OzFENkE5OzAzOTI7MDM5MjsKKzFENkFBOzFENkFBOzFENkFBOzAzOTM7MDM5MzsKKzFENkFCOzFENkFCOzFENkFCOzAzOTQ7MDM5NDsKKzFENkFDOzFENkFDOzFENkFDOzAzOTU7MDM5NTsKKzFENkFEOzFENkFEOzFENkFEOzAzOTY7MDM5NjsKKzFENkFFOzFENkFFOzFENkFFOzAzOTc7MDM5NzsKKzFENkFGOzFENkFGOzFENkFGOzAzOTg7MDM5ODsKKzFENkIwOzFENkIwOzFENkIwOzAzOTk7MDM5OTsKKzFENkIxOzFENkIxOzFENkIxOzAzOUE7MDM5QTsKKzFENkIyOzFENkIyOzFENkIyOzAzOUI7MDM5QjsKKzFENkIzOzFENkIzOzFENkIzOzAzOUM7MDM5QzsKKzFENkI0OzFENkI0OzFENkI0OzAzOUQ7MDM5RDsKKzFENkI1OzFENkI1OzFENkI1OzAzOUU7MDM5RTsKKzFENkI2OzFENkI2OzFENkI2OzAzOUY7MDM5RjsKKzFENkI3OzFENkI3OzFENkI3OzAzQTA7MDNBMDsKKzFENkI4OzFENkI4OzFENkI4OzAzQTE7MDNBMTsKKzFENkI5OzFENkI5OzFENkI5OzAzOTg7MDM5ODsKKzFENkJBOzFENkJBOzFENkJBOzAzQTM7MDNBMzsKKzFENkJCOzFENkJCOzFENkJCOzAzQTQ7MDNBNDsKKzFENkJDOzFENkJDOzFENkJDOzAzQTU7MDNBNTsKKzFENkJEOzFENkJEOzFENkJEOzAzQTY7MDNBNjsKKzFENkJFOzFENkJFOzFENkJFOzAzQTc7MDNBNzsKKzFENkJGOzFENkJGOzFENkJGOzAzQTg7MDNBODsKKzFENkMwOzFENkMwOzFENkMwOzAzQTk7MDNBOTsKKzFENkMxOzFENkMxOzFENkMxOzIyMDc7MjIwNzsKKzFENkMyOzFENkMyOzFENkMyOzAzQjE7MDNCMTsKKzFENkMzOzFENkMzOzFENkMzOzAzQjI7MDNCMjsKKzFENkM0OzFENkM0OzFENkM0OzAzQjM7MDNCMzsKKzFENkM1OzFENkM1OzFENkM1OzAzQjQ7MDNCNDsKKzFENkM2OzFENkM2OzFENkM2OzAzQjU7MDNCNTsKKzFENkM3OzFENkM3OzFENkM3OzAzQjY7MDNCNjsKKzFENkM4OzFENkM4OzFENkM4OzAzQjc7MDNCNzsKKzFENkM5OzFENkM5OzFENkM5OzAzQjg7MDNCODsKKzFENkNBOzFENkNBOzFENkNBOzAzQjk7MDNCOTsKKzFENkNCOzFENkNCOzFENkNCOzAzQkE7MDNCQTsKKzFENkNDOzFENkNDOzFENkNDOzAzQkI7MDNCQjsKKzFENkNEOzFENkNEOzFENkNEOzAzQkM7MDNCQzsKKzFENkNFOzFENkNFOzFENkNFOzAzQkQ7MDNCRDsKKzFENkNGOzFENkNGOzFENkNGOzAzQkU7MDNCRTsKKzFENkQwOzFENkQwOzFENkQwOzAzQkY7MDNCRjsKKzFENkQxOzFENkQxOzFENkQxOzAzQzA7MDNDMDsKKzFENkQyOzFENkQyOzFENkQyOzAzQzE7MDNDMTsKKzFENkQzOzFENkQzOzFENkQzOzAzQzI7MDNDMjsKKzFENkQ0OzFENkQ0OzFENkQ0OzAzQzM7MDNDMzsKKzFENkQ1OzFENkQ1OzFENkQ1OzAzQzQ7MDNDNDsKKzFENkQ2OzFENkQ2OzFENkQ2OzAzQzU7MDNDNTsKKzFENkQ3OzFENkQ3OzFENkQ3OzAzQzY7MDNDNjsKKzFENkQ4OzFENkQ4OzFENkQ4OzAzQzc7MDNDNzsKKzFENkQ5OzFENkQ5OzFENkQ5OzAzQzg7MDNDODsKKzFENkRBOzFENkRBOzFENkRBOzAzQzk7MDNDOTsKKzFENkRCOzFENkRCOzFENkRCOzIyMDI7MjIwMjsKKzFENkRDOzFENkRDOzFENkRDOzAzQjU7MDNCNTsKKzFENkREOzFENkREOzFENkREOzAzQjg7MDNCODsKKzFENkRFOzFENkRFOzFENkRFOzAzQkE7MDNCQTsKKzFENkRGOzFENkRGOzFENkRGOzAzQzY7MDNDNjsKKzFENkUwOzFENkUwOzFENkUwOzAzQzE7MDNDMTsKKzFENkUxOzFENkUxOzFENkUxOzAzQzA7MDNDMDsKKzFENkUyOzFENkUyOzFENkUyOzAzOTE7MDM5MTsKKzFENkUzOzFENkUzOzFENkUzOzAzOTI7MDM5MjsKKzFENkU0OzFENkU0OzFENkU0OzAzOTM7MDM5MzsKKzFENkU1OzFENkU1OzFENkU1OzAzOTQ7MDM5NDsKKzFENkU2OzFENkU2OzFENkU2OzAzOTU7MDM5NTsKKzFENkU3OzFENkU3OzFENkU3OzAzOTY7MDM5NjsKKzFENkU4OzFENkU4OzFENkU4OzAzOTc7MDM5NzsKKzFENkU5OzFENkU5OzFENkU5OzAzOTg7MDM5ODsKKzFENkVBOzFENkVBOzFENkVBOzAzOTk7MDM5OTsKKzFENkVCOzFENkVCOzFENkVCOzAzOUE7MDM5QTsKKzFENkVDOzFENkVDOzFENkVDOzAzOUI7MDM5QjsKKzFENkVEOzFENkVEOzFENkVEOzAzOUM7MDM5QzsKKzFENkVFOzFENkVFOzFENkVFOzAzOUQ7MDM5RDsKKzFENkVGOzFENkVGOzFENkVGOzAzOUU7MDM5RTsKKzFENkYwOzFENkYwOzFENkYwOzAzOUY7MDM5RjsKKzFENkYxOzFENkYxOzFENkYxOzAzQTA7MDNBMDsKKzFENkYyOzFENkYyOzFENkYyOzAzQTE7MDNBMTsKKzFENkYzOzFENkYzOzFENkYzOzAzOTg7MDM5ODsKKzFENkY0OzFENkY0OzFENkY0OzAzQTM7MDNBMzsKKzFENkY1OzFENkY1OzFENkY1OzAzQTQ7MDNBNDsKKzFENkY2OzFENkY2OzFENkY2OzAzQTU7MDNBNTsKKzFENkY3OzFENkY3OzFENkY3OzAzQTY7MDNBNjsKKzFENkY4OzFENkY4OzFENkY4OzAzQTc7MDNBNzsKKzFENkY5OzFENkY5OzFENkY5OzAzQTg7MDNBODsKKzFENkZBOzFENkZBOzFENkZBOzAzQTk7MDNBOTsKKzFENkZCOzFENkZCOzFENkZCOzIyMDc7MjIwNzsKKzFENkZDOzFENkZDOzFENkZDOzAzQjE7MDNCMTsKKzFENkZEOzFENkZEOzFENkZEOzAzQjI7MDNCMjsKKzFENkZFOzFENkZFOzFENkZFOzAzQjM7MDNCMzsKKzFENkZGOzFENkZGOzFENkZGOzAzQjQ7MDNCNDsKKzFENzAwOzFENzAwOzFENzAwOzAzQjU7MDNCNTsKKzFENzAxOzFENzAxOzFENzAxOzAzQjY7MDNCNjsKKzFENzAyOzFENzAyOzFENzAyOzAzQjc7MDNCNzsKKzFENzAzOzFENzAzOzFENzAzOzAzQjg7MDNCODsKKzFENzA0OzFENzA0OzFENzA0OzAzQjk7MDNCOTsKKzFENzA1OzFENzA1OzFENzA1OzAzQkE7MDNCQTsKKzFENzA2OzFENzA2OzFENzA2OzAzQkI7MDNCQjsKKzFENzA3OzFENzA3OzFENzA3OzAzQkM7MDNCQzsKKzFENzA4OzFENzA4OzFENzA4OzAzQkQ7MDNCRDsKKzFENzA5OzFENzA5OzFENzA5OzAzQkU7MDNCRTsKKzFENzBBOzFENzBBOzFENzBBOzAzQkY7MDNCRjsKKzFENzBCOzFENzBCOzFENzBCOzAzQzA7MDNDMDsKKzFENzBDOzFENzBDOzFENzBDOzAzQzE7MDNDMTsKKzFENzBEOzFENzBEOzFENzBEOzAzQzI7MDNDMjsKKzFENzBFOzFENzBFOzFENzBFOzAzQzM7MDNDMzsKKzFENzBGOzFENzBGOzFENzBGOzAzQzQ7MDNDNDsKKzFENzEwOzFENzEwOzFENzEwOzAzQzU7MDNDNTsKKzFENzExOzFENzExOzFENzExOzAzQzY7MDNDNjsKKzFENzEyOzFENzEyOzFENzEyOzAzQzc7MDNDNzsKKzFENzEzOzFENzEzOzFENzEzOzAzQzg7MDNDODsKKzFENzE0OzFENzE0OzFENzE0OzAzQzk7MDNDOTsKKzFENzE1OzFENzE1OzFENzE1OzIyMDI7MjIwMjsKKzFENzE2OzFENzE2OzFENzE2OzAzQjU7MDNCNTsKKzFENzE3OzFENzE3OzFENzE3OzAzQjg7MDNCODsKKzFENzE4OzFENzE4OzFENzE4OzAzQkE7MDNCQTsKKzFENzE5OzFENzE5OzFENzE5OzAzQzY7MDNDNjsKKzFENzFBOzFENzFBOzFENzFBOzAzQzE7MDNDMTsKKzFENzFCOzFENzFCOzFENzFCOzAzQzA7MDNDMDsKKzFENzFDOzFENzFDOzFENzFDOzAzOTE7MDM5MTsKKzFENzFEOzFENzFEOzFENzFEOzAzOTI7MDM5MjsKKzFENzFFOzFENzFFOzFENzFFOzAzOTM7MDM5MzsKKzFENzFGOzFENzFGOzFENzFGOzAzOTQ7MDM5NDsKKzFENzIwOzFENzIwOzFENzIwOzAzOTU7MDM5NTsKKzFENzIxOzFENzIxOzFENzIxOzAzOTY7MDM5NjsKKzFENzIyOzFENzIyOzFENzIyOzAzOTc7MDM5NzsKKzFENzIzOzFENzIzOzFENzIzOzAzOTg7MDM5ODsKKzFENzI0OzFENzI0OzFENzI0OzAzOTk7MDM5OTsKKzFENzI1OzFENzI1OzFENzI1OzAzOUE7MDM5QTsKKzFENzI2OzFENzI2OzFENzI2OzAzOUI7MDM5QjsKKzFENzI3OzFENzI3OzFENzI3OzAzOUM7MDM5QzsKKzFENzI4OzFENzI4OzFENzI4OzAzOUQ7MDM5RDsKKzFENzI5OzFENzI5OzFENzI5OzAzOUU7MDM5RTsKKzFENzJBOzFENzJBOzFENzJBOzAzOUY7MDM5RjsKKzFENzJCOzFENzJCOzFENzJCOzAzQTA7MDNBMDsKKzFENzJDOzFENzJDOzFENzJDOzAzQTE7MDNBMTsKKzFENzJEOzFENzJEOzFENzJEOzAzOTg7MDM5ODsKKzFENzJFOzFENzJFOzFENzJFOzAzQTM7MDNBMzsKKzFENzJGOzFENzJGOzFENzJGOzAzQTQ7MDNBNDsKKzFENzMwOzFENzMwOzFENzMwOzAzQTU7MDNBNTsKKzFENzMxOzFENzMxOzFENzMxOzAzQTY7MDNBNjsKKzFENzMyOzFENzMyOzFENzMyOzAzQTc7MDNBNzsKKzFENzMzOzFENzMzOzFENzMzOzAzQTg7MDNBODsKKzFENzM0OzFENzM0OzFENzM0OzAzQTk7MDNBOTsKKzFENzM1OzFENzM1OzFENzM1OzIyMDc7MjIwNzsKKzFENzM2OzFENzM2OzFENzM2OzAzQjE7MDNCMTsKKzFENzM3OzFENzM3OzFENzM3OzAzQjI7MDNCMjsKKzFENzM4OzFENzM4OzFENzM4OzAzQjM7MDNCMzsKKzFENzM5OzFENzM5OzFENzM5OzAzQjQ7MDNCNDsKKzFENzNBOzFENzNBOzFENzNBOzAzQjU7MDNCNTsKKzFENzNCOzFENzNCOzFENzNCOzAzQjY7MDNCNjsKKzFENzNDOzFENzNDOzFENzNDOzAzQjc7MDNCNzsKKzFENzNEOzFENzNEOzFENzNEOzAzQjg7MDNCODsKKzFENzNFOzFENzNFOzFENzNFOzAzQjk7MDNCOTsKKzFENzNGOzFENzNGOzFENzNGOzAzQkE7MDNCQTsKKzFENzQwOzFENzQwOzFENzQwOzAzQkI7MDNCQjsKKzFENzQxOzFENzQxOzFENzQxOzAzQkM7MDNCQzsKKzFENzQyOzFENzQyOzFENzQyOzAzQkQ7MDNCRDsKKzFENzQzOzFENzQzOzFENzQzOzAzQkU7MDNCRTsKKzFENzQ0OzFENzQ0OzFENzQ0OzAzQkY7MDNCRjsKKzFENzQ1OzFENzQ1OzFENzQ1OzAzQzA7MDNDMDsKKzFENzQ2OzFENzQ2OzFENzQ2OzAzQzE7MDNDMTsKKzFENzQ3OzFENzQ3OzFENzQ3OzAzQzI7MDNDMjsKKzFENzQ4OzFENzQ4OzFENzQ4OzAzQzM7MDNDMzsKKzFENzQ5OzFENzQ5OzFENzQ5OzAzQzQ7MDNDNDsKKzFENzRBOzFENzRBOzFENzRBOzAzQzU7MDNDNTsKKzFENzRCOzFENzRCOzFENzRCOzAzQzY7MDNDNjsKKzFENzRDOzFENzRDOzFENzRDOzAzQzc7MDNDNzsKKzFENzREOzFENzREOzFENzREOzAzQzg7MDNDODsKKzFENzRFOzFENzRFOzFENzRFOzAzQzk7MDNDOTsKKzFENzRGOzFENzRGOzFENzRGOzIyMDI7MjIwMjsKKzFENzUwOzFENzUwOzFENzUwOzAzQjU7MDNCNTsKKzFENzUxOzFENzUxOzFENzUxOzAzQjg7MDNCODsKKzFENzUyOzFENzUyOzFENzUyOzAzQkE7MDNCQTsKKzFENzUzOzFENzUzOzFENzUzOzAzQzY7MDNDNjsKKzFENzU0OzFENzU0OzFENzU0OzAzQzE7MDNDMTsKKzFENzU1OzFENzU1OzFENzU1OzAzQzA7MDNDMDsKKzFENzU2OzFENzU2OzFENzU2OzAzOTE7MDM5MTsKKzFENzU3OzFENzU3OzFENzU3OzAzOTI7MDM5MjsKKzFENzU4OzFENzU4OzFENzU4OzAzOTM7MDM5MzsKKzFENzU5OzFENzU5OzFENzU5OzAzOTQ7MDM5NDsKKzFENzVBOzFENzVBOzFENzVBOzAzOTU7MDM5NTsKKzFENzVCOzFENzVCOzFENzVCOzAzOTY7MDM5NjsKKzFENzVDOzFENzVDOzFENzVDOzAzOTc7MDM5NzsKKzFENzVEOzFENzVEOzFENzVEOzAzOTg7MDM5ODsKKzFENzVFOzFENzVFOzFENzVFOzAzOTk7MDM5OTsKKzFENzVGOzFENzVGOzFENzVGOzAzOUE7MDM5QTsKKzFENzYwOzFENzYwOzFENzYwOzAzOUI7MDM5QjsKKzFENzYxOzFENzYxOzFENzYxOzAzOUM7MDM5QzsKKzFENzYyOzFENzYyOzFENzYyOzAzOUQ7MDM5RDsKKzFENzYzOzFENzYzOzFENzYzOzAzOUU7MDM5RTsKKzFENzY0OzFENzY0OzFENzY0OzAzOUY7MDM5RjsKKzFENzY1OzFENzY1OzFENzY1OzAzQTA7MDNBMDsKKzFENzY2OzFENzY2OzFENzY2OzAzQTE7MDNBMTsKKzFENzY3OzFENzY3OzFENzY3OzAzOTg7MDM5ODsKKzFENzY4OzFENzY4OzFENzY4OzAzQTM7MDNBMzsKKzFENzY5OzFENzY5OzFENzY5OzAzQTQ7MDNBNDsKKzFENzZBOzFENzZBOzFENzZBOzAzQTU7MDNBNTsKKzFENzZCOzFENzZCOzFENzZCOzAzQTY7MDNBNjsKKzFENzZDOzFENzZDOzFENzZDOzAzQTc7MDNBNzsKKzFENzZEOzFENzZEOzFENzZEOzAzQTg7MDNBODsKKzFENzZFOzFENzZFOzFENzZFOzAzQTk7MDNBOTsKKzFENzZGOzFENzZGOzFENzZGOzIyMDc7MjIwNzsKKzFENzcwOzFENzcwOzFENzcwOzAzQjE7MDNCMTsKKzFENzcxOzFENzcxOzFENzcxOzAzQjI7MDNCMjsKKzFENzcyOzFENzcyOzFENzcyOzAzQjM7MDNCMzsKKzFENzczOzFENzczOzFENzczOzAzQjQ7MDNCNDsKKzFENzc0OzFENzc0OzFENzc0OzAzQjU7MDNCNTsKKzFENzc1OzFENzc1OzFENzc1OzAzQjY7MDNCNjsKKzFENzc2OzFENzc2OzFENzc2OzAzQjc7MDNCNzsKKzFENzc3OzFENzc3OzFENzc3OzAzQjg7MDNCODsKKzFENzc4OzFENzc4OzFENzc4OzAzQjk7MDNCOTsKKzFENzc5OzFENzc5OzFENzc5OzAzQkE7MDNCQTsKKzFENzdBOzFENzdBOzFENzdBOzAzQkI7MDNCQjsKKzFENzdCOzFENzdCOzFENzdCOzAzQkM7MDNCQzsKKzFENzdDOzFENzdDOzFENzdDOzAzQkQ7MDNCRDsKKzFENzdEOzFENzdEOzFENzdEOzAzQkU7MDNCRTsKKzFENzdFOzFENzdFOzFENzdFOzAzQkY7MDNCRjsKKzFENzdGOzFENzdGOzFENzdGOzAzQzA7MDNDMDsKKzFENzgwOzFENzgwOzFENzgwOzAzQzE7MDNDMTsKKzFENzgxOzFENzgxOzFENzgxOzAzQzI7MDNDMjsKKzFENzgyOzFENzgyOzFENzgyOzAzQzM7MDNDMzsKKzFENzgzOzFENzgzOzFENzgzOzAzQzQ7MDNDNDsKKzFENzg0OzFENzg0OzFENzg0OzAzQzU7MDNDNTsKKzFENzg1OzFENzg1OzFENzg1OzAzQzY7MDNDNjsKKzFENzg2OzFENzg2OzFENzg2OzAzQzc7MDNDNzsKKzFENzg3OzFENzg3OzFENzg3OzAzQzg7MDNDODsKKzFENzg4OzFENzg4OzFENzg4OzAzQzk7MDNDOTsKKzFENzg5OzFENzg5OzFENzg5OzIyMDI7MjIwMjsKKzFENzhBOzFENzhBOzFENzhBOzAzQjU7MDNCNTsKKzFENzhCOzFENzhCOzFENzhCOzAzQjg7MDNCODsKKzFENzhDOzFENzhDOzFENzhDOzAzQkE7MDNCQTsKKzFENzhEOzFENzhEOzFENzhEOzAzQzY7MDNDNjsKKzFENzhFOzFENzhFOzFENzhFOzAzQzE7MDNDMTsKKzFENzhGOzFENzhGOzFENzhGOzAzQzA7MDNDMDsKKzFENzkwOzFENzkwOzFENzkwOzAzOTE7MDM5MTsKKzFENzkxOzFENzkxOzFENzkxOzAzOTI7MDM5MjsKKzFENzkyOzFENzkyOzFENzkyOzAzOTM7MDM5MzsKKzFENzkzOzFENzkzOzFENzkzOzAzOTQ7MDM5NDsKKzFENzk0OzFENzk0OzFENzk0OzAzOTU7MDM5NTsKKzFENzk1OzFENzk1OzFENzk1OzAzOTY7MDM5NjsKKzFENzk2OzFENzk2OzFENzk2OzAzOTc7MDM5NzsKKzFENzk3OzFENzk3OzFENzk3OzAzOTg7MDM5ODsKKzFENzk4OzFENzk4OzFENzk4OzAzOTk7MDM5OTsKKzFENzk5OzFENzk5OzFENzk5OzAzOUE7MDM5QTsKKzFENzlBOzFENzlBOzFENzlBOzAzOUI7MDM5QjsKKzFENzlCOzFENzlCOzFENzlCOzAzOUM7MDM5QzsKKzFENzlDOzFENzlDOzFENzlDOzAzOUQ7MDM5RDsKKzFENzlEOzFENzlEOzFENzlEOzAzOUU7MDM5RTsKKzFENzlFOzFENzlFOzFENzlFOzAzOUY7MDM5RjsKKzFENzlGOzFENzlGOzFENzlGOzAzQTA7MDNBMDsKKzFEN0EwOzFEN0EwOzFEN0EwOzAzQTE7MDNBMTsKKzFEN0ExOzFEN0ExOzFEN0ExOzAzOTg7MDM5ODsKKzFEN0EyOzFEN0EyOzFEN0EyOzAzQTM7MDNBMzsKKzFEN0EzOzFEN0EzOzFEN0EzOzAzQTQ7MDNBNDsKKzFEN0E0OzFEN0E0OzFEN0E0OzAzQTU7MDNBNTsKKzFEN0E1OzFEN0E1OzFEN0E1OzAzQTY7MDNBNjsKKzFEN0E2OzFEN0E2OzFEN0E2OzAzQTc7MDNBNzsKKzFEN0E3OzFEN0E3OzFEN0E3OzAzQTg7MDNBODsKKzFEN0E4OzFEN0E4OzFEN0E4OzAzQTk7MDNBOTsKKzFEN0E5OzFEN0E5OzFEN0E5OzIyMDc7MjIwNzsKKzFEN0FBOzFEN0FBOzFEN0FBOzAzQjE7MDNCMTsKKzFEN0FCOzFEN0FCOzFEN0FCOzAzQjI7MDNCMjsKKzFEN0FDOzFEN0FDOzFEN0FDOzAzQjM7MDNCMzsKKzFEN0FEOzFEN0FEOzFEN0FEOzAzQjQ7MDNCNDsKKzFEN0FFOzFEN0FFOzFEN0FFOzAzQjU7MDNCNTsKKzFEN0FGOzFEN0FGOzFEN0FGOzAzQjY7MDNCNjsKKzFEN0IwOzFEN0IwOzFEN0IwOzAzQjc7MDNCNzsKKzFEN0IxOzFEN0IxOzFEN0IxOzAzQjg7MDNCODsKKzFEN0IyOzFEN0IyOzFEN0IyOzAzQjk7MDNCOTsKKzFEN0IzOzFEN0IzOzFEN0IzOzAzQkE7MDNCQTsKKzFEN0I0OzFEN0I0OzFEN0I0OzAzQkI7MDNCQjsKKzFEN0I1OzFEN0I1OzFEN0I1OzAzQkM7MDNCQzsKKzFEN0I2OzFEN0I2OzFEN0I2OzAzQkQ7MDNCRDsKKzFEN0I3OzFEN0I3OzFEN0I3OzAzQkU7MDNCRTsKKzFEN0I4OzFEN0I4OzFEN0I4OzAzQkY7MDNCRjsKKzFEN0I5OzFEN0I5OzFEN0I5OzAzQzA7MDNDMDsKKzFEN0JBOzFEN0JBOzFEN0JBOzAzQzE7MDNDMTsKKzFEN0JCOzFEN0JCOzFEN0JCOzAzQzI7MDNDMjsKKzFEN0JDOzFEN0JDOzFEN0JDOzAzQzM7MDNDMzsKKzFEN0JEOzFEN0JEOzFEN0JEOzAzQzQ7MDNDNDsKKzFEN0JFOzFEN0JFOzFEN0JFOzAzQzU7MDNDNTsKKzFEN0JGOzFEN0JGOzFEN0JGOzAzQzY7MDNDNjsKKzFEN0MwOzFEN0MwOzFEN0MwOzAzQzc7MDNDNzsKKzFEN0MxOzFEN0MxOzFEN0MxOzAzQzg7MDNDODsKKzFEN0MyOzFEN0MyOzFEN0MyOzAzQzk7MDNDOTsKKzFEN0MzOzFEN0MzOzFEN0MzOzIyMDI7MjIwMjsKKzFEN0M0OzFEN0M0OzFEN0M0OzAzQjU7MDNCNTsKKzFEN0M1OzFEN0M1OzFEN0M1OzAzQjg7MDNCODsKKzFEN0M2OzFEN0M2OzFEN0M2OzAzQkE7MDNCQTsKKzFEN0M3OzFEN0M3OzFEN0M3OzAzQzY7MDNDNjsKKzFEN0M4OzFEN0M4OzFEN0M4OzAzQzE7MDNDMTsKKzFEN0M5OzFEN0M5OzFEN0M5OzAzQzA7MDNDMDsKKzFEN0NFOzFEN0NFOzFEN0NFOzAwMzA7MDAzMDsKKzFEN0NGOzFEN0NGOzFEN0NGOzAwMzE7MDAzMTsKKzFEN0QwOzFEN0QwOzFEN0QwOzAwMzI7MDAzMjsKKzFEN0QxOzFEN0QxOzFEN0QxOzAwMzM7MDAzMzsKKzFEN0QyOzFEN0QyOzFEN0QyOzAwMzQ7MDAzNDsKKzFEN0QzOzFEN0QzOzFEN0QzOzAwMzU7MDAzNTsKKzFEN0Q0OzFEN0Q0OzFEN0Q0OzAwMzY7MDAzNjsKKzFEN0Q1OzFEN0Q1OzFEN0Q1OzAwMzc7MDAzNzsKKzFEN0Q2OzFEN0Q2OzFEN0Q2OzAwMzg7MDAzODsKKzFEN0Q3OzFEN0Q3OzFEN0Q3OzAwMzk7MDAzOTsKKzFEN0Q4OzFEN0Q4OzFEN0Q4OzAwMzA7MDAzMDsKKzFEN0Q5OzFEN0Q5OzFEN0Q5OzAwMzE7MDAzMTsKKzFEN0RBOzFEN0RBOzFEN0RBOzAwMzI7MDAzMjsKKzFEN0RCOzFEN0RCOzFEN0RCOzAwMzM7MDAzMzsKKzFEN0RDOzFEN0RDOzFEN0RDOzAwMzQ7MDAzNDsKKzFEN0REOzFEN0REOzFEN0REOzAwMzU7MDAzNTsKKzFEN0RFOzFEN0RFOzFEN0RFOzAwMzY7MDAzNjsKKzFEN0RGOzFEN0RGOzFEN0RGOzAwMzc7MDAzNzsKKzFEN0UwOzFEN0UwOzFEN0UwOzAwMzg7MDAzODsKKzFEN0UxOzFEN0UxOzFEN0UxOzAwMzk7MDAzOTsKKzFEN0UyOzFEN0UyOzFEN0UyOzAwMzA7MDAzMDsKKzFEN0UzOzFEN0UzOzFEN0UzOzAwMzE7MDAzMTsKKzFEN0U0OzFEN0U0OzFEN0U0OzAwMzI7MDAzMjsKKzFEN0U1OzFEN0U1OzFEN0U1OzAwMzM7MDAzMzsKKzFEN0U2OzFEN0U2OzFEN0U2OzAwMzQ7MDAzNDsKKzFEN0U3OzFEN0U3OzFEN0U3OzAwMzU7MDAzNTsKKzFEN0U4OzFEN0U4OzFEN0U4OzAwMzY7MDAzNjsKKzFEN0U5OzFEN0U5OzFEN0U5OzAwMzc7MDAzNzsKKzFEN0VBOzFEN0VBOzFEN0VBOzAwMzg7MDAzODsKKzFEN0VCOzFEN0VCOzFEN0VCOzAwMzk7MDAzOTsKKzFEN0VDOzFEN0VDOzFEN0VDOzAwMzA7MDAzMDsKKzFEN0VEOzFEN0VEOzFEN0VEOzAwMzE7MDAzMTsKKzFEN0VFOzFEN0VFOzFEN0VFOzAwMzI7MDAzMjsKKzFEN0VGOzFEN0VGOzFEN0VGOzAwMzM7MDAzMzsKKzFEN0YwOzFEN0YwOzFEN0YwOzAwMzQ7MDAzNDsKKzFEN0YxOzFEN0YxOzFEN0YxOzAwMzU7MDAzNTsKKzFEN0YyOzFEN0YyOzFEN0YyOzAwMzY7MDAzNjsKKzFEN0YzOzFEN0YzOzFEN0YzOzAwMzc7MDAzNzsKKzFEN0Y0OzFEN0Y0OzFEN0Y0OzAwMzg7MDAzODsKKzFEN0Y1OzFEN0Y1OzFEN0Y1OzAwMzk7MDAzOTsKKzFEN0Y2OzFEN0Y2OzFEN0Y2OzAwMzA7MDAzMDsKKzFEN0Y3OzFEN0Y3OzFEN0Y3OzAwMzE7MDAzMTsKKzFEN0Y4OzFEN0Y4OzFEN0Y4OzAwMzI7MDAzMjsKKzFEN0Y5OzFEN0Y5OzFEN0Y5OzAwMzM7MDAzMzsKKzFEN0ZBOzFEN0ZBOzFEN0ZBOzAwMzQ7MDAzNDsKKzFEN0ZCOzFEN0ZCOzFEN0ZCOzAwMzU7MDAzNTsKKzFEN0ZDOzFEN0ZDOzFEN0ZDOzAwMzY7MDAzNjsKKzFEN0ZEOzFEN0ZEOzFEN0ZEOzAwMzc7MDAzNzsKKzFEN0ZFOzFEN0ZFOzFEN0ZFOzAwMzg7MDAzODsKKzFEN0ZGOzFEN0ZGOzFEN0ZGOzAwMzk7MDAzOTsKKzJGODAwOzRFM0Q7NEUzRDs0RTNEOzRFM0Q7CisyRjgwMTs0RTM4OzRFMzg7NEUzODs0RTM4OworMkY4MDI7NEU0MTs0RTQxOzRFNDE7NEU0MTsKKzJGODAzOzIwMTIyOzIwMTIyOzIwMTIyOzIwMTIyOworMkY4MDQ7NEY2MDs0RjYwOzRGNjA7NEY2MDsKKzJGODA1OzRGQUU7NEZBRTs0RkFFOzRGQUU7CisyRjgwNjs0RkJCOzRGQkI7NEZCQjs0RkJCOworMkY4MDc7NTAwMjs1MDAyOzUwMDI7NTAwMjsKKzJGODA4OzUwN0E7NTA3QTs1MDdBOzUwN0E7CisyRjgwOTs1MDk5OzUwOTk7NTA5OTs1MDk5OworMkY4MEE7NTBFNzs1MEU3OzUwRTc7NTBFNzsKKzJGODBCOzUwQ0Y7NTBDRjs1MENGOzUwQ0Y7CisyRjgwQzszNDlFOzM0OUU7MzQ5RTszNDlFOworMkY4MEQ7MjA2M0E7MjA2M0E7MjA2M0E7MjA2M0E7CisyRjgwRTs1MTREOzUxNEQ7NTE0RDs1MTREOworMkY4MEY7NTE1NDs1MTU0OzUxNTQ7NTE1NDsKKzJGODEwOzUxNjQ7NTE2NDs1MTY0OzUxNjQ7CisyRjgxMTs1MTc3OzUxNzc7NTE3Nzs1MTc3OworMkY4MTI7MjA1MUM7MjA1MUM7MjA1MUM7MjA1MUM7CisyRjgxMzszNEI5OzM0Qjk7MzRCOTszNEI5OworMkY4MTQ7NTE2Nzs1MTY3OzUxNjc7NTE2NzsKKzJGODE1OzUxOEQ7NTE4RDs1MThEOzUxOEQ7CisyRjgxNjsyMDU0QjsyMDU0QjsyMDU0QjsyMDU0QjsKKzJGODE3OzUxOTc7NTE5Nzs1MTk3OzUxOTc7CisyRjgxODs1MUE0OzUxQTQ7NTFBNDs1MUE0OworMkY4MTk7NEVDQzs0RUNDOzRFQ0M7NEVDQzsKKzJGODFBOzUxQUM7NTFBQzs1MUFDOzUxQUM7CisyRjgxQjs1MUI1OzUxQjU7NTFCNTs1MUI1OworMkY4MUM7MjkxREY7MjkxREY7MjkxREY7MjkxREY7CisyRjgxRDs1MUY1OzUxRjU7NTFGNTs1MUY1OworMkY4MUU7NTIwMzs1MjAzOzUyMDM7NTIwMzsKKzJGODFGOzM0REY7MzRERjszNERGOzM0REY7CisyRjgyMDs1MjNCOzUyM0I7NTIzQjs1MjNCOworMkY4MjE7NTI0Njs1MjQ2OzUyNDY7NTI0NjsKKzJGODIyOzUyNzI7NTI3Mjs1MjcyOzUyNzI7CisyRjgyMzs1Mjc3OzUyNzc7NTI3Nzs1Mjc3OworMkY4MjQ7MzUxNTszNTE1OzM1MTU7MzUxNTsKKzJGODI1OzUyQzc7NTJDNzs1MkM3OzUyQzc7CisyRjgyNjs1MkM5OzUyQzk7NTJDOTs1MkM5OworMkY4Mjc7NTJFNDs1MkU0OzUyRTQ7NTJFNDsKKzJGODI4OzUyRkE7NTJGQTs1MkZBOzUyRkE7CisyRjgyOTs1MzA1OzUzMDU7NTMwNTs1MzA1OworMkY4MkE7NTMwNjs1MzA2OzUzMDY7NTMwNjsKKzJGODJCOzUzMTc7NTMxNzs1MzE3OzUzMTc7CisyRjgyQzs1MzQ5OzUzNDk7NTM0OTs1MzQ5OworMkY4MkQ7NTM1MTs1MzUxOzUzNTE7NTM1MTsKKzJGODJFOzUzNUE7NTM1QTs1MzVBOzUzNUE7CisyRjgyRjs1MzczOzUzNzM7NTM3Mzs1MzczOworMkY4MzA7NTM3RDs1MzdEOzUzN0Q7NTM3RDsKKzJGODMxOzUzN0Y7NTM3Rjs1MzdGOzUzN0Y7CisyRjgzMjs1MzdGOzUzN0Y7NTM3Rjs1MzdGOworMkY4MzM7NTM3Rjs1MzdGOzUzN0Y7NTM3RjsKKzJGODM0OzIwQTJDOzIwQTJDOzIwQTJDOzIwQTJDOworMkY4MzU7NzA3MDs3MDcwOzcwNzA7NzA3MDsKKzJGODM2OzUzQ0E7NTNDQTs1M0NBOzUzQ0E7CisyRjgzNzs1M0RGOzUzREY7NTNERjs1M0RGOworMkY4Mzg7MjBCNjM7MjBCNjM7MjBCNjM7MjBCNjM7CisyRjgzOTs1M0VCOzUzRUI7NTNFQjs1M0VCOworMkY4M0E7NTNGMTs1M0YxOzUzRjE7NTNGMTsKKzJGODNCOzU0MDY7NTQwNjs1NDA2OzU0MDY7CisyRjgzQzs1NDlFOzU0OUU7NTQ5RTs1NDlFOworMkY4M0Q7NTQzODs1NDM4OzU0Mzg7NTQzODsKKzJGODNFOzU0NDg7NTQ0ODs1NDQ4OzU0NDg7CisyRjgzRjs1NDY4OzU0Njg7NTQ2ODs1NDY4OworMkY4NDA7NTRBMjs1NEEyOzU0QTI7NTRBMjsKKzJGODQxOzU0RjY7NTRGNjs1NEY2OzU0RjY7CisyRjg0Mjs1NTEwOzU1MTA7NTUxMDs1NTEwOworMkY4NDM7NTU1Mzs1NTUzOzU1NTM7NTU1MzsKKzJGODQ0OzU1NjM7NTU2Mzs1NTYzOzU1NjM7CisyRjg0NTs1NTg0OzU1ODQ7NTU4NDs1NTg0OworMkY4NDY7NTU4NDs1NTg0OzU1ODQ7NTU4NDsKKzJGODQ3OzU1OTk7NTU5OTs1NTk5OzU1OTk7CisyRjg0ODs1NUFCOzU1QUI7NTVBQjs1NUFCOworMkY4NDk7NTVCMzs1NUIzOzU1QjM7NTVCMzsKKzJGODRBOzU1QzI7NTVDMjs1NUMyOzU1QzI7CisyRjg0Qjs1NzE2OzU3MTY7NTcxNjs1NzE2OworMkY4NEM7NTYwNjs1NjA2OzU2MDY7NTYwNjsKKzJGODREOzU3MTc7NTcxNzs1NzE3OzU3MTc7CisyRjg0RTs1NjUxOzU2NTE7NTY1MTs1NjUxOworMkY4NEY7NTY3NDs1Njc0OzU2NzQ7NTY3NDsKKzJGODUwOzUyMDc7NTIwNzs1MjA3OzUyMDc7CisyRjg1MTs1OEVFOzU4RUU7NThFRTs1OEVFOworMkY4NTI7NTdDRTs1N0NFOzU3Q0U7NTdDRTsKKzJGODUzOzU3RjQ7NTdGNDs1N0Y0OzU3RjQ7CisyRjg1NDs1ODBEOzU4MEQ7NTgwRDs1ODBEOworMkY4NTU7NTc4Qjs1NzhCOzU3OEI7NTc4QjsKKzJGODU2OzU4MzI7NTgzMjs1ODMyOzU4MzI7CisyRjg1Nzs1ODMxOzU4MzE7NTgzMTs1ODMxOworMkY4NTg7NThBQzs1OEFDOzU4QUM7NThBQzsKKzJGODU5OzIxNEU0OzIxNEU0OzIxNEU0OzIxNEU0OworMkY4NUE7NThGMjs1OEYyOzU4RjI7NThGMjsKKzJGODVCOzU4Rjc7NThGNzs1OEY3OzU4Rjc7CisyRjg1Qzs1OTA2OzU5MDY7NTkwNjs1OTA2OworMkY4NUQ7NTkxQTs1OTFBOzU5MUE7NTkxQTsKKzJGODVFOzU5MjI7NTkyMjs1OTIyOzU5MjI7CisyRjg1Rjs1OTYyOzU5NjI7NTk2Mjs1OTYyOworMkY4NjA7MjE2QTg7MjE2QTg7MjE2QTg7MjE2QTg7CisyRjg2MTsyMTZFQTsyMTZFQTsyMTZFQTsyMTZFQTsKKzJGODYyOzU5RUM7NTlFQzs1OUVDOzU5RUM7CisyRjg2Mzs1QTFCOzVBMUI7NUExQjs1QTFCOworMkY4NjQ7NUEyNzs1QTI3OzVBMjc7NUEyNzsKKzJGODY1OzU5RDg7NTlEODs1OUQ4OzU5RDg7CisyRjg2Njs1QTY2OzVBNjY7NUE2Njs1QTY2OworMkY4Njc7MzZFRTszNkVFOzM2RUU7MzZFRTsKKyMgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLTQuMC4wLnR4dCAtLSAyRjg2ODsyMTM2QTsyMTM2QTsyMTM2QTsyMTM2QTsKKzJGODY5OzVCMDg7NUIwODs1QjA4OzVCMDg7CisyRjg2QTs1QjNFOzVCM0U7NUIzRTs1QjNFOworMkY4NkI7NUIzRTs1QjNFOzVCM0U7NUIzRTsKKzJGODZDOzIxOUM4OzIxOUM4OzIxOUM4OzIxOUM4OworMkY4NkQ7NUJDMzs1QkMzOzVCQzM7NUJDMzsKKzJGODZFOzVCRDg7NUJEODs1QkQ4OzVCRDg7CisyRjg2Rjs1QkU3OzVCRTc7NUJFNzs1QkU3OworMkY4NzA7NUJGMzs1QkYzOzVCRjM7NUJGMzsKKzJGODcxOzIxQjE4OzIxQjE4OzIxQjE4OzIxQjE4OworMkY4NzI7NUJGRjs1QkZGOzVCRkY7NUJGRjsKKzJGODczOzVDMDY7NUMwNjs1QzA2OzVDMDY7CisjIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy00LjAuMC50eHQgLS0gMkY4NzQ7NUYzMzs1RjMzOzVGMzM7NUYzMzsKKzJGODc1OzVDMjI7NUMyMjs1QzIyOzVDMjI7CisyRjg3NjszNzgxOzM3ODE7Mzc4MTszNzgxOworMkY4Nzc7NUM2MDs1QzYwOzVDNjA7NUM2MDsKKzJGODc4OzVDNkU7NUM2RTs1QzZFOzVDNkU7CisyRjg3OTs1Q0MwOzVDQzA7NUNDMDs1Q0MwOworMkY4N0E7NUM4RDs1QzhEOzVDOEQ7NUM4RDsKKzJGODdCOzIxREU0OzIxREU0OzIxREU0OzIxREU0OworMkY4N0M7NUQ0Mzs1RDQzOzVENDM7NUQ0MzsKKzJGODdEOzIxREU2OzIxREU2OzIxREU2OzIxREU2OworMkY4N0U7NUQ2RTs1RDZFOzVENkU7NUQ2RTsKKzJGODdGOzVENkI7NUQ2Qjs1RDZCOzVENkI7CisyRjg4MDs1RDdDOzVEN0M7NUQ3Qzs1RDdDOworMkY4ODE7NURFMTs1REUxOzVERTE7NURFMTsKKzJGODgyOzVERTI7NURFMjs1REUyOzVERTI7CisyRjg4MzszODJGOzM4MkY7MzgyRjszODJGOworMkY4ODQ7NURGRDs1REZEOzVERkQ7NURGRDsKKzJGODg1OzVFMjg7NUUyODs1RTI4OzVFMjg7CisyRjg4Njs1RTNEOzVFM0Q7NUUzRDs1RTNEOworMkY4ODc7NUU2OTs1RTY5OzVFNjk7NUU2OTsKKzJGODg4OzM4NjI7Mzg2MjszODYyOzM4NjI7CisyRjg4OTsyMjE4MzsyMjE4MzsyMjE4MzsyMjE4MzsKKzJGODhBOzM4N0M7Mzg3QzszODdDOzM4N0M7CisyRjg4Qjs1RUIwOzVFQjA7NUVCMDs1RUIwOworMkY4OEM7NUVCMzs1RUIzOzVFQjM7NUVCMzsKKzJGODhEOzVFQjY7NUVCNjs1RUI2OzVFQjY7CisyRjg4RTs1RUNBOzVFQ0E7NUVDQTs1RUNBOworMkY4OEY7MkEzOTI7MkEzOTI7MkEzOTI7MkEzOTI7CisyRjg5MDs1RUZFOzVFRkU7NUVGRTs1RUZFOworMkY4OTE7MjIzMzE7MjIzMzE7MjIzMzE7MjIzMzE7CisyRjg5MjsyMjMzMTsyMjMzMTsyMjMzMTsyMjMzMTsKKzJGODkzOzgyMDE7ODIwMTs4MjAxOzgyMDE7CisyRjg5NDs1RjIyOzVGMjI7NUYyMjs1RjIyOworMkY4OTU7NUYyMjs1RjIyOzVGMjI7NUYyMjsKKzJGODk2OzM4Qzc7MzhDNzszOEM3OzM4Qzc7CisyRjg5NzsyMzJCODsyMzJCODsyMzJCODsyMzJCODsKKzJGODk4OzI2MURBOzI2MURBOzI2MURBOzI2MURBOworMkY4OTk7NUY2Mjs1RjYyOzVGNjI7NUY2MjsKKzJGODlBOzVGNkI7NUY2Qjs1RjZCOzVGNkI7CisyRjg5QjszOEUzOzM4RTM7MzhFMzszOEUzOworMkY4OUM7NUY5QTs1RjlBOzVGOUE7NUY5QTsKKzJGODlEOzVGQ0Q7NUZDRDs1RkNEOzVGQ0Q7CisyRjg5RTs1RkQ3OzVGRDc7NUZENzs1RkQ3OworMkY4OUY7NUZGOTs1RkY5OzVGRjk7NUZGOTsKKzJGOEEwOzYwODE7NjA4MTs2MDgxOzYwODE7CisyRjhBMTszOTNBOzM5M0E7MzkzQTszOTNBOworMkY4QTI7MzkxQzszOTFDOzM5MUM7MzkxQzsKKzJGOEEzOzYwOTQ7NjA5NDs2MDk0OzYwOTQ7CisyRjhBNDsyMjZENDsyMjZENDsyMjZENDsyMjZENDsKKzJGOEE1OzYwQzc7NjBDNzs2MEM3OzYwQzc7CisyRjhBNjs2MTQ4OzYxNDg7NjE0ODs2MTQ4OworMkY4QTc7NjE0Qzs2MTRDOzYxNEM7NjE0QzsKKzJGOEE4OzYxNEU7NjE0RTs2MTRFOzYxNEU7CisyRjhBOTs2MTRDOzYxNEM7NjE0Qzs2MTRDOworMkY4QUE7NjE3QTs2MTdBOzYxN0E7NjE3QTsKKzJGOEFCOzYxOEU7NjE4RTs2MThFOzYxOEU7CisyRjhBQzs2MUIyOzYxQjI7NjFCMjs2MUIyOworMkY4QUQ7NjFBNDs2MUE0OzYxQTQ7NjFBNDsKKzJGOEFFOzYxQUY7NjFBRjs2MUFGOzYxQUY7CisyRjhBRjs2MURFOzYxREU7NjFERTs2MURFOworMkY4QjA7NjFGMjs2MUYyOzYxRjI7NjFGMjsKKzJGOEIxOzYxRjY7NjFGNjs2MUY2OzYxRjY7CisyRjhCMjs2MjEwOzYyMTA7NjIxMDs2MjEwOworMkY4QjM7NjIxQjs2MjFCOzYyMUI7NjIxQjsKKzJGOEI0OzYyNUQ7NjI1RDs2MjVEOzYyNUQ7CisyRjhCNTs2MkIxOzYyQjE7NjJCMTs2MkIxOworMkY4QjY7NjJENDs2MkQ0OzYyRDQ7NjJENDsKKzJGOEI3OzYzNTA7NjM1MDs2MzUwOzYzNTA7CisyRjhCODsyMkIwQzsyMkIwQzsyMkIwQzsyMkIwQzsKKzJGOEI5OzYzM0Q7NjMzRDs2MzNEOzYzM0Q7CisyRjhCQTs2MkZDOzYyRkM7NjJGQzs2MkZDOworMkY4QkI7NjM2ODs2MzY4OzYzNjg7NjM2ODsKKzJGOEJDOzYzODM7NjM4Mzs2MzgzOzYzODM7CisyRjhCRDs2M0U0OzYzRTQ7NjNFNDs2M0U0OworMkY4QkU7MjJCRjE7MjJCRjE7MjJCRjE7MjJCRjE7CisyRjhCRjs2NDIyOzY0MjI7NjQyMjs2NDIyOworMkY4QzA7NjNDNTs2M0M1OzYzQzU7NjNDNTsKKzJGOEMxOzYzQTk7NjNBOTs2M0E5OzYzQTk7CisyRjhDMjszQTJFOzNBMkU7M0EyRTszQTJFOworMkY4QzM7NjQ2OTs2NDY5OzY0Njk7NjQ2OTsKKzJGOEM0OzY0N0U7NjQ3RTs2NDdFOzY0N0U7CisyRjhDNTs2NDlEOzY0OUQ7NjQ5RDs2NDlEOworMkY4QzY7NjQ3Nzs2NDc3OzY0Nzc7NjQ3NzsKKzJGOEM3OzNBNkM7M0E2QzszQTZDOzNBNkM7CisyRjhDODs2NTRGOzY1NEY7NjU0Rjs2NTRGOworMkY4Qzk7NjU2Qzs2NTZDOzY1NkM7NjU2QzsKKzJGOENBOzIzMDBBOzIzMDBBOzIzMDBBOzIzMDBBOworMkY4Q0I7NjVFMzs2NUUzOzY1RTM7NjVFMzsKKzJGOENDOzY2Rjg7NjZGODs2NkY4OzY2Rjg7CisyRjhDRDs2NjQ5OzY2NDk7NjY0OTs2NjQ5OworMkY4Q0U7M0IxOTszQjE5OzNCMTk7M0IxOTsKKzJGOENGOzY2OTE7NjY5MTs2NjkxOzY2OTE7CisyRjhEMDszQjA4OzNCMDg7M0IwODszQjA4OworMkY4RDE7M0FFNDszQUU0OzNBRTQ7M0FFNDsKKzJGOEQyOzUxOTI7NTE5Mjs1MTkyOzUxOTI7CisyRjhEMzs1MTk1OzUxOTU7NTE5NTs1MTk1OworMkY4RDQ7NjcwMDs2NzAwOzY3MDA7NjcwMDsKKzJGOEQ1OzY2OUM7NjY5Qzs2NjlDOzY2OUM7CisyRjhENjs4MEFEOzgwQUQ7ODBBRDs4MEFEOworMkY4RDc7NDNEOTs0M0Q5OzQzRDk7NDNEOTsKKzJGOEQ4OzY3MTc7NjcxNzs2NzE3OzY3MTc7CisyRjhEOTs2NzFCOzY3MUI7NjcxQjs2NzFCOworMkY4REE7NjcyMTs2NzIxOzY3MjE7NjcyMTsKKzJGOERCOzY3NUU7Njc1RTs2NzVFOzY3NUU7CisyRjhEQzs2NzUzOzY3NTM7Njc1Mzs2NzUzOworMkY4REQ7MjMzQzM7MjMzQzM7MjMzQzM7MjMzQzM7CisyRjhERTszQjQ5OzNCNDk7M0I0OTszQjQ5OworMkY4REY7NjdGQTs2N0ZBOzY3RkE7NjdGQTsKKzJGOEUwOzY3ODU7Njc4NTs2Nzg1OzY3ODU7CisyRjhFMTs2ODUyOzY4NTI7Njg1Mjs2ODUyOworMkY4RTI7Njg4NTs2ODg1OzY4ODU7Njg4NTsKKzJGOEUzOzIzNDZEOzIzNDZEOzIzNDZEOzIzNDZEOworMkY4RTQ7Njg4RTs2ODhFOzY4OEU7Njg4RTsKKzJGOEU1OzY4MUY7NjgxRjs2ODFGOzY4MUY7CisyRjhFNjs2OTE0OzY5MTQ7NjkxNDs2OTE0OworMkY4RTc7M0I5RDszQjlEOzNCOUQ7M0I5RDsKKzJGOEU4OzY5NDI7Njk0Mjs2OTQyOzY5NDI7CisyRjhFOTs2OUEzOzY5QTM7NjlBMzs2OUEzOworMkY4RUE7NjlFQTs2OUVBOzY5RUE7NjlFQTsKKzJGOEVCOzZBQTg7NkFBODs2QUE4OzZBQTg7CisyRjhFQzsyMzZBMzsyMzZBMzsyMzZBMzsyMzZBMzsKKzJGOEVEOzZBREI7NkFEQjs2QURCOzZBREI7CisyRjhFRTszQzE4OzNDMTg7M0MxODszQzE4OworMkY4RUY7NkIyMTs2QjIxOzZCMjE7NkIyMTsKKzJGOEYwOzIzOEE3OzIzOEE3OzIzOEE3OzIzOEE3OworMkY4RjE7NkI1NDs2QjU0OzZCNTQ7NkI1NDsKKzJGOEYyOzNDNEU7M0M0RTszQzRFOzNDNEU7CisyRjhGMzs2QjcyOzZCNzI7NkI3Mjs2QjcyOworMkY4RjQ7NkI5Rjs2QjlGOzZCOUY7NkI5RjsKKzJGOEY1OzZCQkE7NkJCQTs2QkJBOzZCQkE7CisyRjhGNjs2QkJCOzZCQkI7NkJCQjs2QkJCOworMkY4Rjc7MjNBOEQ7MjNBOEQ7MjNBOEQ7MjNBOEQ7CisyRjhGODsyMUQwQjsyMUQwQjsyMUQwQjsyMUQwQjsKKzJGOEY5OzIzQUZBOzIzQUZBOzIzQUZBOzIzQUZBOworMkY4RkE7NkM0RTs2QzRFOzZDNEU7NkM0RTsKKzJGOEZCOzIzQ0JDOzIzQ0JDOzIzQ0JDOzIzQ0JDOworMkY4RkM7NkNCRjs2Q0JGOzZDQkY7NkNCRjsKKzJGOEZEOzZDQ0Q7NkNDRDs2Q0NEOzZDQ0Q7CisyRjhGRTs2QzY3OzZDNjc7NkM2Nzs2QzY3OworMkY4RkY7NkQxNjs2RDE2OzZEMTY7NkQxNjsKKzJGOTAwOzZEM0U7NkQzRTs2RDNFOzZEM0U7CisyRjkwMTs2RDc3OzZENzc7NkQ3Nzs2RDc3OworMkY5MDI7NkQ0MTs2RDQxOzZENDE7NkQ0MTsKKzJGOTAzOzZENjk7NkQ2OTs2RDY5OzZENjk7CisyRjkwNDs2RDc4OzZENzg7NkQ3ODs2RDc4OworMkY5MDU7NkQ4NTs2RDg1OzZEODU7NkQ4NTsKKzJGOTA2OzIzRDFFOzIzRDFFOzIzRDFFOzIzRDFFOworMkY5MDc7NkQzNDs2RDM0OzZEMzQ7NkQzNDsKKzJGOTA4OzZFMkY7NkUyRjs2RTJGOzZFMkY7CisyRjkwOTs2RTZFOzZFNkU7NkU2RTs2RTZFOworMkY5MEE7M0QzMzszRDMzOzNEMzM7M0QzMzsKKzJGOTBCOzZFQ0I7NkVDQjs2RUNCOzZFQ0I7CisyRjkwQzs2RUM3OzZFQzc7NkVDNzs2RUM3OworMkY5MEQ7MjNFRDE7MjNFRDE7MjNFRDE7MjNFRDE7CisyRjkwRTs2REY5OzZERjk7NkRGOTs2REY5OworMkY5MEY7NkY2RTs2RjZFOzZGNkU7NkY2RTsKKzJGOTEwOzIzRjVFOzIzRjVFOzIzRjVFOzIzRjVFOworMkY5MTE7MjNGOEU7MjNGOEU7MjNGOEU7MjNGOEU7CisyRjkxMjs2RkM2OzZGQzY7NkZDNjs2RkM2OworMkY5MTM7NzAzOTs3MDM5OzcwMzk7NzAzOTsKKzJGOTE0OzcwMUU7NzAxRTs3MDFFOzcwMUU7CisyRjkxNTs3MDFCOzcwMUI7NzAxQjs3MDFCOworMkY5MTY7M0Q5NjszRDk2OzNEOTY7M0Q5NjsKKzJGOTE3OzcwNEE7NzA0QTs3MDRBOzcwNEE7CisyRjkxODs3MDdEOzcwN0Q7NzA3RDs3MDdEOworMkY5MTk7NzA3Nzs3MDc3OzcwNzc7NzA3NzsKKzJGOTFBOzcwQUQ7NzBBRDs3MEFEOzcwQUQ7CisyRjkxQjsyMDUyNTsyMDUyNTsyMDUyNTsyMDUyNTsKKzJGOTFDOzcxNDU7NzE0NTs3MTQ1OzcxNDU7CisyRjkxRDsyNDI2MzsyNDI2MzsyNDI2MzsyNDI2MzsKKzJGOTFFOzcxOUM7NzE5Qzs3MTlDOzcxOUM7CisjIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy00LjAuMC50eHQgLS0gMkY5MUY7NDNBQjs0M0FCOzQzQUI7NDNBQjsKKzJGOTIwOzcyMjg7NzIyODs3MjI4OzcyMjg7CisyRjkyMTs3MjM1OzcyMzU7NzIzNTs3MjM1OworMkY5MjI7NzI1MDs3MjUwOzcyNTA7NzI1MDsKKzJGOTIzOzI0NjA4OzI0NjA4OzI0NjA4OzI0NjA4OworMkY5MjQ7NzI4MDs3MjgwOzcyODA7NzI4MDsKKzJGOTI1OzcyOTU7NzI5NTs3Mjk1OzcyOTU7CisyRjkyNjsyNDczNTsyNDczNTsyNDczNTsyNDczNTsKKzJGOTI3OzI0ODE0OzI0ODE0OzI0ODE0OzI0ODE0OworMkY5Mjg7NzM3QTs3MzdBOzczN0E7NzM3QTsKKzJGOTI5OzczOEI7NzM4Qjs3MzhCOzczOEI7CisyRjkyQTszRUFDOzNFQUM7M0VBQzszRUFDOworMkY5MkI7NzNBNTs3M0E1OzczQTU7NzNBNTsKKzJGOTJDOzNFQjg7M0VCODszRUI4OzNFQjg7CisyRjkyRDszRUI4OzNFQjg7M0VCODszRUI4OworMkY5MkU7NzQ0Nzs3NDQ3Ozc0NDc7NzQ0NzsKKzJGOTJGOzc0NUM7NzQ1Qzs3NDVDOzc0NUM7CisyRjkzMDs3NDcxOzc0NzE7NzQ3MTs3NDcxOworMkY5MzE7NzQ4NTs3NDg1Ozc0ODU7NzQ4NTsKKzJGOTMyOzc0Q0E7NzRDQTs3NENBOzc0Q0E7CisyRjkzMzszRjFCOzNGMUI7M0YxQjszRjFCOworMkY5MzQ7NzUyNDs3NTI0Ozc1MjQ7NzUyNDsKKzJGOTM1OzI0QzM2OzI0QzM2OzI0QzM2OzI0QzM2OworMkY5MzY7NzUzRTs3NTNFOzc1M0U7NzUzRTsKKzJGOTM3OzI0QzkyOzI0QzkyOzI0QzkyOzI0QzkyOworMkY5Mzg7NzU3MDs3NTcwOzc1NzA7NzU3MDsKKzJGOTM5OzIyMTlGOzIyMTlGOzIyMTlGOzIyMTlGOworMkY5M0E7NzYxMDs3NjEwOzc2MTA7NzYxMDsKKzJGOTNCOzI0RkExOzI0RkExOzI0RkExOzI0RkExOworMkY5M0M7MjRGQjg7MjRGQjg7MjRGQjg7MjRGQjg7CisyRjkzRDsyNTA0NDsyNTA0NDsyNTA0NDsyNTA0NDsKKzJGOTNFOzNGRkM7M0ZGQzszRkZDOzNGRkM7CisyRjkzRjs0MDA4OzQwMDg7NDAwODs0MDA4OworMkY5NDA7NzZGNDs3NkY0Ozc2RjQ7NzZGNDsKKzJGOTQxOzI1MEYzOzI1MEYzOzI1MEYzOzI1MEYzOworMkY5NDI7MjUwRjI7MjUwRjI7MjUwRjI7MjUwRjI7CisyRjk0MzsyNTExOTsyNTExOTsyNTExOTsyNTExOTsKKzJGOTQ0OzI1MTMzOzI1MTMzOzI1MTMzOzI1MTMzOworMkY5NDU7NzcxRTs3NzFFOzc3MUU7NzcxRTsKKzJGOTQ2Ozc3MUY7NzcxRjs3NzFGOzc3MUY7CisyRjk0Nzs3NzFGOzc3MUY7NzcxRjs3NzFGOworMkY5NDg7Nzc0QTs3NzRBOzc3NEE7Nzc0QTsKKzJGOTQ5OzQwMzk7NDAzOTs0MDM5OzQwMzk7CisyRjk0QTs3NzhCOzc3OEI7Nzc4Qjs3NzhCOworMkY5NEI7NDA0Njs0MDQ2OzQwNDY7NDA0NjsKKzJGOTRDOzQwOTY7NDA5Njs0MDk2OzQwOTY7CisyRjk0RDsyNTQxRDsyNTQxRDsyNTQxRDsyNTQxRDsKKzJGOTRFOzc4NEU7Nzg0RTs3ODRFOzc4NEU7CisyRjk0Rjs3ODhDOzc4OEM7Nzg4Qzs3ODhDOworMkY5NTA7NzhDQzs3OENDOzc4Q0M7NzhDQzsKKzJGOTUxOzQwRTM7NDBFMzs0MEUzOzQwRTM7CisyRjk1MjsyNTYyNjsyNTYyNjsyNTYyNjsyNTYyNjsKKzJGOTUzOzc5NTY7Nzk1Njs3OTU2Ozc5NTY7CisyRjk1NDsyNTY5QTsyNTY5QTsyNTY5QTsyNTY5QTsKKzJGOTU1OzI1NkM1OzI1NkM1OzI1NkM1OzI1NkM1OworMkY5NTY7Nzk4Rjs3OThGOzc5OEY7Nzk4RjsKKzJGOTU3Ozc5RUI7NzlFQjs3OUVCOzc5RUI7CisyRjk1ODs0MTJGOzQxMkY7NDEyRjs0MTJGOworMkY5NTk7N0E0MDs3QTQwOzdBNDA7N0E0MDsKKzJGOTVBOzdBNEE7N0E0QTs3QTRBOzdBNEE7CisyRjk1Qjs3QTRGOzdBNEY7N0E0Rjs3QTRGOworMkY5NUM7MjU5N0M7MjU5N0M7MjU5N0M7MjU5N0M7CisyRjk1RDsyNUFBNzsyNUFBNzsyNUFBNzsyNUFBNzsKKzJGOTVFOzI1QUE3OzI1QUE3OzI1QUE3OzI1QUE3OworIyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMtNC4wLjAudHh0IC0tIDJGOTVGOzdBQUU7N0FBRTs3QUFFOzdBQUU7CisyRjk2MDs0MjAyOzQyMDI7NDIwMjs0MjAyOworMkY5NjE7MjVCQUI7MjVCQUI7MjVCQUI7MjVCQUI7CisyRjk2Mjs3QkM2OzdCQzY7N0JDNjs3QkM2OworMkY5NjM7N0JDOTs3QkM5OzdCQzk7N0JDOTsKKzJGOTY0OzQyMjc7NDIyNzs0MjI3OzQyMjc7CisyRjk2NTsyNUM4MDsyNUM4MDsyNUM4MDsyNUM4MDsKKzJGOTY2OzdDRDI7N0NEMjs3Q0QyOzdDRDI7CisyRjk2Nzs0MkEwOzQyQTA7NDJBMDs0MkEwOworMkY5Njg7N0NFODs3Q0U4OzdDRTg7N0NFODsKKzJGOTY5OzdDRTM7N0NFMzs3Q0UzOzdDRTM7CisyRjk2QTs3RDAwOzdEMDA7N0QwMDs3RDAwOworMkY5NkI7MjVGODY7MjVGODY7MjVGODY7MjVGODY7CisyRjk2Qzs3RDYzOzdENjM7N0Q2Mzs3RDYzOworMkY5NkQ7NDMwMTs0MzAxOzQzMDE7NDMwMTsKKzJGOTZFOzdEQzc7N0RDNzs3REM3OzdEQzc7CisyRjk2Rjs3RTAyOzdFMDI7N0UwMjs3RTAyOworMkY5NzA7N0U0NTs3RTQ1OzdFNDU7N0U0NTsKKzJGOTcxOzQzMzQ7NDMzNDs0MzM0OzQzMzQ7CisyRjk3MjsyNjIyODsyNjIyODsyNjIyODsyNjIyODsKKzJGOTczOzI2MjQ3OzI2MjQ3OzI2MjQ3OzI2MjQ3OworMkY5NzQ7NDM1OTs0MzU5OzQzNTk7NDM1OTsKKzJGOTc1OzI2MkQ5OzI2MkQ5OzI2MkQ5OzI2MkQ5OworMkY5NzY7N0Y3QTs3RjdBOzdGN0E7N0Y3QTsKKzJGOTc3OzI2MzNFOzI2MzNFOzI2MzNFOzI2MzNFOworMkY5Nzg7N0Y5NTs3Rjk1OzdGOTU7N0Y5NTsKKzJGOTc5OzdGRkE7N0ZGQTs3RkZBOzdGRkE7CisyRjk3QTs4MDA1OzgwMDU7ODAwNTs4MDA1OworMkY5N0I7MjY0REE7MjY0REE7MjY0REE7MjY0REE7CisyRjk3QzsyNjUyMzsyNjUyMzsyNjUyMzsyNjUyMzsKKzJGOTdEOzgwNjA7ODA2MDs4MDYwOzgwNjA7CisyRjk3RTsyNjVBODsyNjVBODsyNjVBODsyNjVBODsKKzJGOTdGOzgwNzA7ODA3MDs4MDcwOzgwNzA7CisyRjk4MDsyMzM1RjsyMzM1RjsyMzM1RjsyMzM1RjsKKzJGOTgxOzQzRDU7NDNENTs0M0Q1OzQzRDU7CisyRjk4Mjs4MEIyOzgwQjI7ODBCMjs4MEIyOworMkY5ODM7ODEwMzs4MTAzOzgxMDM7ODEwMzsKKzJGOTg0OzQ0MEI7NDQwQjs0NDBCOzQ0MEI7CisyRjk4NTs4MTNFOzgxM0U7ODEzRTs4MTNFOworMkY5ODY7NUFCNTs1QUI1OzVBQjU7NUFCNTsKKzJGOTg3OzI2N0E3OzI2N0E3OzI2N0E3OzI2N0E3OworMkY5ODg7MjY3QjU7MjY3QjU7MjY3QjU7MjY3QjU7CisyRjk4OTsyMzM5MzsyMzM5MzsyMzM5MzsyMzM5MzsKKzJGOThBOzIzMzlDOzIzMzlDOzIzMzlDOzIzMzlDOworMkY5OEI7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGOThDOzgyMDQ7ODIwNDs4MjA0OzgyMDQ7CisyRjk4RDs4RjlFOzhGOUU7OEY5RTs4RjlFOworMkY5OEU7NDQ2Qjs0NDZCOzQ0NkI7NDQ2QjsKKzJGOThGOzgyOTE7ODI5MTs4MjkxOzgyOTE7CisyRjk5MDs4MjhCOzgyOEI7ODI4Qjs4MjhCOworMkY5OTE7ODI5RDs4MjlEOzgyOUQ7ODI5RDsKKzJGOTkyOzUyQjM7NTJCMzs1MkIzOzUyQjM7CisyRjk5Mzs4MkIxOzgyQjE7ODJCMTs4MkIxOworMkY5OTQ7ODJCMzs4MkIzOzgyQjM7ODJCMzsKKzJGOTk1OzgyQkQ7ODJCRDs4MkJEOzgyQkQ7CisyRjk5Njs4MkU2OzgyRTY7ODJFNjs4MkU2OworMkY5OTc7MjZCM0M7MjZCM0M7MjZCM0M7MjZCM0M7CisyRjk5ODs4MkU1OzgyRTU7ODJFNTs4MkU1OworMkY5OTk7ODMxRDs4MzFEOzgzMUQ7ODMxRDsKKzJGOTlBOzgzNjM7ODM2Mzs4MzYzOzgzNjM7CisyRjk5Qjs4M0FEOzgzQUQ7ODNBRDs4M0FEOworMkY5OUM7ODMyMzs4MzIzOzgzMjM7ODMyMzsKKzJGOTlEOzgzQkQ7ODNCRDs4M0JEOzgzQkQ7CisyRjk5RTs4M0U3OzgzRTc7ODNFNzs4M0U3OworMkY5OUY7ODQ1Nzs4NDU3Ozg0NTc7ODQ1NzsKKzJGOUEwOzgzNTM7ODM1Mzs4MzUzOzgzNTM7CisyRjlBMTs4M0NBOzgzQ0E7ODNDQTs4M0NBOworMkY5QTI7ODNDQzs4M0NDOzgzQ0M7ODNDQzsKKzJGOUEzOzgzREM7ODNEQzs4M0RDOzgzREM7CisyRjlBNDsyNkMzNjsyNkMzNjsyNkMzNjsyNkMzNjsKKzJGOUE1OzI2RDZCOzI2RDZCOzI2RDZCOzI2RDZCOworMkY5QTY7MjZDRDU7MjZDRDU7MjZDRDU7MjZDRDU7CisyRjlBNzs0NTJCOzQ1MkI7NDUyQjs0NTJCOworMkY5QTg7ODRGMTs4NEYxOzg0RjE7ODRGMTsKKzJGOUE5Ozg0RjM7ODRGMzs4NEYzOzg0RjM7CisyRjlBQTs4NTE2Ozg1MTY7ODUxNjs4NTE2OworMkY5QUI7MjczQ0E7MjczQ0E7MjczQ0E7MjczQ0E7CisyRjlBQzs4NTY0Ozg1NjQ7ODU2NDs4NTY0OworMkY5QUQ7MjZGMkM7MjZGMkM7MjZGMkM7MjZGMkM7CisyRjlBRTs0NTVEOzQ1NUQ7NDU1RDs0NTVEOworMkY5QUY7NDU2MTs0NTYxOzQ1NjE7NDU2MTsKKzJGOUIwOzI2RkIxOzI2RkIxOzI2RkIxOzI2RkIxOworMkY5QjE7MjcwRDI7MjcwRDI7MjcwRDI7MjcwRDI7CisyRjlCMjs0NTZCOzQ1NkI7NDU2Qjs0NTZCOworMkY5QjM7ODY1MDs4NjUwOzg2NTA7ODY1MDsKKzJGOUI0Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CisyRjlCNTs4NjY3Ozg2Njc7ODY2Nzs4NjY3OworMkY5QjY7ODY2OTs4NjY5Ozg2Njk7ODY2OTsKKzJGOUI3Ozg2QTk7ODZBOTs4NkE5Ozg2QTk7CisyRjlCODs4Njg4Ozg2ODg7ODY4ODs4Njg4OworMkY5Qjk7ODcwRTs4NzBFOzg3MEU7ODcwRTsKKzJGOUJBOzg2RTI7ODZFMjs4NkUyOzg2RTI7CisyRjlCQjs4Nzc5Ozg3Nzk7ODc3OTs4Nzc5OworMkY5QkM7ODcyODs4NzI4Ozg3Mjg7ODcyODsKKzJGOUJEOzg3NkI7ODc2Qjs4NzZCOzg3NkI7CisyRjlCRTs4Nzg2Ozg3ODY7ODc4Njs4Nzg2OworIyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMtNC4wLjAudHh0IC0tIDJGOUJGOzRENTc7NEQ1Nzs0RDU3OzRENTc7CisyRjlDMDs4N0UxOzg3RTE7ODdFMTs4N0UxOworMkY5QzE7ODgwMTs4ODAxOzg4MDE7ODgwMTsKKzJGOUMyOzQ1Rjk7NDVGOTs0NUY5OzQ1Rjk7CisyRjlDMzs4ODYwOzg4NjA7ODg2MDs4ODYwOworMkY5QzQ7ODg2Mzs4ODYzOzg4NjM7ODg2MzsKKzJGOUM1OzI3NjY3OzI3NjY3OzI3NjY3OzI3NjY3OworMkY5QzY7ODhENzs4OEQ3Ozg4RDc7ODhENzsKKzJGOUM3Ozg4REU7ODhERTs4OERFOzg4REU7CisyRjlDODs0NjM1OzQ2MzU7NDYzNTs0NjM1OworMkY5Qzk7ODhGQTs4OEZBOzg4RkE7ODhGQTsKKzJGOUNBOzM0QkI7MzRCQjszNEJCOzM0QkI7CisyRjlDQjsyNzhBRTsyNzhBRTsyNzhBRTsyNzhBRTsKKzJGOUNDOzI3OTY2OzI3OTY2OzI3OTY2OzI3OTY2OworMkY5Q0Q7NDZCRTs0NkJFOzQ2QkU7NDZCRTsKKzJGOUNFOzQ2Qzc7NDZDNzs0NkM3OzQ2Qzc7CisyRjlDRjs4QUEwOzhBQTA7OEFBMDs4QUEwOworMkY5RDA7OEFFRDs4QUVEOzhBRUQ7OEFFRDsKKzJGOUQxOzhCOEE7OEI4QTs4QjhBOzhCOEE7CisyRjlEMjs4QzU1OzhDNTU7OEM1NTs4QzU1OworMkY5RDM7MjdDQTg7MjdDQTg7MjdDQTg7MjdDQTg7CisyRjlENDs4Q0FCOzhDQUI7OENBQjs4Q0FCOworMkY5RDU7OENDMTs4Q0MxOzhDQzE7OENDMTsKKzJGOUQ2OzhEMUI7OEQxQjs4RDFCOzhEMUI7CisyRjlENzs4RDc3OzhENzc7OEQ3Nzs4RDc3OworMkY5RDg7MjdGMkY7MjdGMkY7MjdGMkY7MjdGMkY7CisyRjlEOTsyMDgwNDsyMDgwNDsyMDgwNDsyMDgwNDsKKzJGOURBOzhEQ0I7OERDQjs4RENCOzhEQ0I7CisyRjlEQjs4REJDOzhEQkM7OERCQzs4REJDOworMkY5REM7OERGMDs4REYwOzhERjA7OERGMDsKKzJGOUREOzIwOERFOzIwOERFOzIwOERFOzIwOERFOworMkY5REU7OEVENDs4RUQ0OzhFRDQ7OEVENDsKKzJGOURGOzhGMzg7OEYzODs4RjM4OzhGMzg7CisyRjlFMDsyODVEMjsyODVEMjsyODVEMjsyODVEMjsKKzJGOUUxOzI4NUVEOzI4NUVEOzI4NUVEOzI4NUVEOworMkY5RTI7OTA5NDs5MDk0OzkwOTQ7OTA5NDsKKzJGOUUzOzkwRjE7OTBGMTs5MEYxOzkwRjE7CisyRjlFNDs5MTExOzkxMTE7OTExMTs5MTExOworMkY5RTU7Mjg3MkU7Mjg3MkU7Mjg3MkU7Mjg3MkU7CisyRjlFNjs5MTFCOzkxMUI7OTExQjs5MTFCOworMkY5RTc7OTIzODs5MjM4OzkyMzg7OTIzODsKKzJGOUU4OzkyRDc7OTJENzs5MkQ3OzkyRDc7CisyRjlFOTs5MkQ4OzkyRDg7OTJEODs5MkQ4OworMkY5RUE7OTI3Qzs5MjdDOzkyN0M7OTI3QzsKKzJGOUVCOzkzRjk7OTNGOTs5M0Y5OzkzRjk7CisyRjlFQzs5NDE1Ozk0MTU7OTQxNTs5NDE1OworMkY5RUQ7MjhCRkE7MjhCRkE7MjhCRkE7MjhCRkE7CisyRjlFRTs5NThCOzk1OEI7OTU4Qjs5NThCOworMkY5RUY7NDk5NTs0OTk1OzQ5OTU7NDk5NTsKKzJGOUYwOzk1Qjc7OTVCNzs5NUI3Ozk1Qjc7CisyRjlGMTsyOEQ3NzsyOEQ3NzsyOEQ3NzsyOEQ3NzsKKzJGOUYyOzQ5RTY7NDlFNjs0OUU2OzQ5RTY7CisyRjlGMzs5NkMzOzk2QzM7OTZDMzs5NkMzOworMkY5RjQ7NURCMjs1REIyOzVEQjI7NURCMjsKKzJGOUY1Ozk3MjM7OTcyMzs5NzIzOzk3MjM7CisyRjlGNjsyOTE0NTsyOTE0NTsyOTE0NTsyOTE0NTsKKzJGOUY3OzI5MjFBOzI5MjFBOzI5MjFBOzI5MjFBOworMkY5Rjg7NEE2RTs0QTZFOzRBNkU7NEE2RTsKKzJGOUY5OzRBNzY7NEE3Njs0QTc2OzRBNzY7CisyRjlGQTs5N0UwOzk3RTA7OTdFMDs5N0UwOworMkY5RkI7Mjk0MEE7Mjk0MEE7Mjk0MEE7Mjk0MEE7CisyRjlGQzs0QUIyOzRBQjI7NEFCMjs0QUIyOworMkY5RkQ7Mjk0OTY7Mjk0OTY7Mjk0OTY7Mjk0OTY7CisyRjlGRTs5ODBCOzk4MEI7OTgwQjs5ODBCOworMkY5RkY7OTgwQjs5ODBCOzk4MEI7OTgwQjsKKzJGQTAwOzk4Mjk7OTgyOTs5ODI5Ozk4Mjk7CisyRkEwMTsyOTVCNjsyOTVCNjsyOTVCNjsyOTVCNjsKKzJGQTAyOzk4RTI7OThFMjs5OEUyOzk4RTI7CisyRkEwMzs0QjMzOzRCMzM7NEIzMzs0QjMzOworMkZBMDQ7OTkyOTs5OTI5Ozk5Mjk7OTkyOTsKKzJGQTA1Ozk5QTc7OTlBNzs5OUE3Ozk5QTc7CisyRkEwNjs5OUMyOzk5QzI7OTlDMjs5OUMyOworMkZBMDc7OTlGRTs5OUZFOzk5RkU7OTlGRTsKKzJGQTA4OzRCQ0U7NEJDRTs0QkNFOzRCQ0U7CisyRkEwOTsyOUIzMDsyOUIzMDsyOUIzMDsyOUIzMDsKKzJGQTBBOzlCMTI7OUIxMjs5QjEyOzlCMTI7CisyRkEwQjs5QzQwOzlDNDA7OUM0MDs5QzQwOworMkZBMEM7OUNGRDs5Q0ZEOzlDRkQ7OUNGRDsKKzJGQTBEOzRDQ0U7NENDRTs0Q0NFOzRDQ0U7CisyRkEwRTs0Q0VEOzRDRUQ7NENFRDs0Q0VEOworMkZBMEY7OUQ2Nzs5RDY3OzlENjc7OUQ2NzsKKzJGQTEwOzJBMENFOzJBMENFOzJBMENFOzJBMENFOworMkZBMTE7NENGODs0Q0Y4OzRDRjg7NENGODsKKzJGQTEyOzJBMTA1OzJBMTA1OzJBMTA1OzJBMTA1OworMkZBMTM7MkEyMEU7MkEyMEU7MkEyMEU7MkEyMEU7CisyRkExNDsyQTI5MTsyQTI5MTsyQTI5MTsyQTI5MTsKKzJGQTE1OzlFQkI7OUVCQjs5RUJCOzlFQkI7CisyRkExNjs0RDU2OzRENTY7NEQ1Njs0RDU2OworMkZBMTc7OUVGOTs5RUY5OzlFRjk7OUVGOTsKKzJGQTE4OzlFRkU7OUVGRTs5RUZFOzlFRkU7CisyRkExOTs5RjA1OzlGMDU7OUYwNTs5RjA1OworMkZBMUE7OUYwRjs5RjBGOzlGMEY7OUYwRjsKKzJGQTFCOzlGMTY7OUYxNjs5RjE2OzlGMTY7CisyRkExQzs5RjNCOzlGM0I7OUYzQjs5RjNCOworMkZBMUQ7MkE2MDA7MkE2MDA7MkE2MDA7MkE2MDA7CisjCitAUGFydDIgIyBDYW5vbmljYWwgT3JkZXIgVGVzdAorIworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzAwIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMwMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDEgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzAxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwRTEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMiAwMDYyOzAwRTAgMDVBRSAwMzAyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMiAwMzE1IDAwNjI7CiswMDYxIDAzMDIgMDMxNSAwMzAwIDA1QUUgMDA2MjsxRUE3IDA1QUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAyIDAzMDAgMDMxNSAwMDYyOzFFQTcgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDMgMDA2MjswMEUwIDA1QUUgMDMwMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDMgMDMxNSAwMDYyOworMDA2MSAwMzAzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAzIDAzMDAgMDMxNSAwMDYyOzAwRTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNCAwMDYyOzAwRTAgMDVBRSAwMzA0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNCAwMzE1IDAwNjI7CiswMDYxIDAzMDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMTAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDQgMDMwMCAwMzE1IDAwNjI7MDEwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA1IDAwNjI7MDBFMCAwNUFFIDAzMDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA1IDAzMTUgMDA2MjsKKzAwNjEgMDMwNSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA2IDAwNjI7MDBFMCAwNUFFIDAzMDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA2IDAzMTUgMDA2MjsKKzAwNjEgMDMwNiAwMzE1IDAzMDAgMDVBRSAwMDYyOzFFQjEgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDYgMDMwMCAwMzE1IDAwNjI7MUVCMSAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNyAwMDYyOzAwRTAgMDVBRSAwMzA3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNyAwMzE1IDAwNjI7CiswMDYxIDAzMDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjI3IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDcgMDMwMCAwMzE1IDAwNjI7MDIyNyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA4IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMTUgMDA2MjsKKzAwNjEgMDMwOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTQgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDkgMDA2MjswMEUwIDA1QUUgMDMwOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDkgMDMxNSAwMDYyOworMDA2MSAwMzA5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MUVBMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA5IDAzMDAgMDMxNSAwMDYyOzFFQTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwQSAwMDYyOzAwRTAgMDVBRSAwMzBBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQSAwMzE1IDAwNjI7CiswMDYxIDAzMEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEU1IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEEgMDMwMCAwMzE1IDAwNjI7MDBFNSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBCIDAwNjI7MDBFMCAwNUFFIDAzMEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBCIDAzMTUgMDA2MjsKKzAwNjEgMDMwQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBDIDAwNjI7MDBFMCAwNUFFIDAzMEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBDIDAzMTUgMDA2MjsKKzAwNjEgMDMwQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAxQ0UgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQyAwMzAwIDAzMTUgMDA2MjswMUNFIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEQgMDA2MjswMEUwIDA1QUUgMDMwRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEQgMDMxNSAwMDYyOworMDA2MSAwMzBEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEUgMDA2MjswMEUwIDA1QUUgMDMwRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEUgMDMxNSAwMDYyOworMDA2MSAwMzBFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEYgMDA2MjswMEUwIDA1QUUgMDMwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEYgMDMxNSAwMDYyOworMDA2MSAwMzBGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDIwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBGIDAzMDAgMDMxNSAwMDYyOzAyMDEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMCAwMDYyOzAwRTAgMDVBRSAwMzEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMCAwMzE1IDAwNjI7CiswMDYxIDAzMTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMSAwMDYyOzAwRTAgMDVBRSAwMzExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMSAwMzE1IDAwNjI7CiswMDYxIDAzMTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjAzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTEgMDMwMCAwMzE1IDAwNjI7MDIwMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzExIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEyIDAwNjI7MDBFMCAwNUFFIDAzMTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEyIDAzMTUgMDA2MjsKKzAwNjEgMDMxMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDMxMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzE0IDAwNjI7MDBFMCAwNUFFIDAzMTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzE0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzE0IDAzMTUgMDA2MjsKKzAwNjEgMDMxNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzYyIDAzMTUgMDMwMCAwMzE1IDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMDMxNSAwMzYyIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMEUwIDAzMTUgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxNSAwMzYyIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzE3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7CiswMDYxIDAzMTcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOworMDA2MSAwMzE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjsKKzAwNjEgMDMxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzYyIDAzMTUgMDMwMCAwMzFBIDAwNjI7MDBFMCAwMzE1IDAzMUEgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMUEgMDM2MiAwMDYyOzAwRTAgMDMxNSAwMzFBIDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzFBIDAzNjIgMDA2MjsKKzAwNjEgMDMxQSAwMzYyIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxQSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxQSAwMzE1IDAzNjIgMDA2MjswMEUwIDAzMUEgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMUEgMDMxNSAwMzYyIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDAzMUIgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMDMxQiAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7CiswMDYxIDAzMUMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOworMDA2MSAwMzFEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjsKKzAwNjEgMDMxRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7CiswMDYxIDAzMUYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOworMDA2MSAwMzIwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMyMSAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzIyIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7CiswMDYxIDAzMjIgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOworMDA2MSAwMzIzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MUVBMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzIzIDAzMTYgMDU5QSAwMDYyOzFFQTEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOworMDA2MSAwMzI0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjsKKzAwNjEgMDMyNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzFFMDEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNSAwMzE2IDA1OUEgMDA2MjsxRTAxIDMwMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjsKKzAwNjEgMDMyNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzI3IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7CiswMDYxIDAzMjcgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMxQiAwMzIxIDBGNzQgMDMyOCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOworMDA2MSAwMzI4IDAzMUIgMDMyMSAwRjc0IDAwNjI7MDEwNSAwRjc0IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI4IDAzMjEgMDMxQiAwMDYyOzAxMDUgMEY3NCAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyOCAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOworMDA2MSAwMzI5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjsKKzAwNjEgMDMyQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7CiswMDYxIDAzMkIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOworMDA2MSAwMzJDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjsKKzAwNjEgMDMyRCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7CiswMDYxIDAzMkUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyRiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOworMDA2MSAwMzJGIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzAgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjsKKzAwNjEgMDMzMCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzMxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7CiswMDYxIDAzMzEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOworMDA2MSAwMzMyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzMgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjsKKzAwNjEgMDMzMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNCAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMzNCAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM1IDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM1IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOworMDA2MSAwMzM1IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzUgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzYgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzYgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7CiswMDYxIDAzMzYgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNiAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNyAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjsKKzAwNjEgMDMzNyAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM4IDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM4IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOworMDA2MSAwMzM4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzggMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOworMDA2MSAwMzM5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzM0EgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjsKKzAwNjEgMDMzQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzNCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7CiswMDYxIDAzM0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOworMDA2MSAwMzNDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0QgMDA2MjswMEUwIDA1QUUgMDMzRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0QgMDMxNSAwMDYyOworMDA2MSAwMzNEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0UgMDA2MjswMEUwIDA1QUUgMDMzRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0UgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0UgMDMxNSAwMDYyOworMDA2MSAwMzNFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0YgMDA2MjswMEUwIDA1QUUgMDMzRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0YgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0YgMDMxNSAwMDYyOworMDA2MSAwMzNGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDAgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0MSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzNDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQyIDAwNjI7MDBFMCAwNUFFIDAzNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzQyIDAzMTUgMDA2MjsKKzAwNjEgMDM0MiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDM0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQ0IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwOCAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzQ0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFNCAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMSAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQ1IDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzQ1IDAzNjAgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDYgMDA2MjswMEUwIDA1QUUgMDM0NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDYgMDMxNSAwMDYyOworMDA2MSAwMzQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNDcgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjsKKzAwNjEgMDM0NyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzQ4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7CiswMDYxIDAzNDggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0OSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOworMDA2MSAwMzQ5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEEgMDA2MjswMEUwIDA1QUUgMDM0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEEgMDMxNSAwMDYyOworMDA2MSAwMzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEIgMDA2MjswMEUwIDA1QUUgMDM0QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEIgMDMxNSAwMDYyOworMDA2MSAwMzRCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEMgMDA2MjswMEUwIDA1QUUgMDM0QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEMgMDMxNSAwMDYyOworMDA2MSAwMzRDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNEQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjsKKzAwNjEgMDM0RCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzRFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7CiswMDYxIDAzNEUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDM0NSAwMzYwIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOworMDA2MSAwMzYwIDAzNDUgMDM2MCAwMzYyIDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7CiswMDYxIDAzNDUgMDM2MCAwMzYyIDAzNjEgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjsKKzAwNjEgMDM2MSAwMzQ1IDAzNjAgMDM2MiAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOworMDA2MSAwMzYwIDAzNjIgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7CiswMDYxIDAzNjIgMDM2MCAwMzYyIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2MyAwMDYyOzAwRTAgMDVBRSAwMzYzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzYzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2MyAwMzE1IDAwNjI7CiswMDYxIDAzNjMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NCAwMDYyOzAwRTAgMDVBRSAwMzY0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NCAwMzE1IDAwNjI7CiswMDYxIDAzNjQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NSAwMDYyOzAwRTAgMDVBRSAwMzY1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NSAwMzE1IDAwNjI7CiswMDYxIDAzNjUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NiAwMDYyOzAwRTAgMDVBRSAwMzY2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NiAwMzE1IDAwNjI7CiswMDYxIDAzNjYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NyAwMDYyOzAwRTAgMDVBRSAwMzY3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NyAwMzE1IDAwNjI7CiswMDYxIDAzNjcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OCAwMDYyOzAwRTAgMDVBRSAwMzY4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OCAwMzE1IDAwNjI7CiswMDYxIDAzNjggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OSAwMDYyOzAwRTAgMDVBRSAwMzY5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OSAwMzE1IDAwNjI7CiswMDYxIDAzNjkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QSAwMDYyOzAwRTAgMDVBRSAwMzZBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QSAwMzE1IDAwNjI7CiswMDYxIDAzNkEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QiAwMDYyOzAwRTAgMDVBRSAwMzZCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QiAwMzE1IDAwNjI7CiswMDYxIDAzNkIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QyAwMDYyOzAwRTAgMDVBRSAwMzZDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QyAwMzE1IDAwNjI7CiswMDYxIDAzNkMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RCAwMDYyOzAwRTAgMDVBRSAwMzZEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RCAwMzE1IDAwNjI7CiswMDYxIDAzNkQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RSAwMDYyOzAwRTAgMDVBRSAwMzZFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RSAwMzE1IDAwNjI7CiswMDYxIDAzNkUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RiAwMDYyOzAwRTAgMDVBRSAwMzZGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RiAwMzE1IDAwNjI7CiswMDYxIDAzNkYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4MyAwMDYyOzAwRTAgMDVBRSAwNDgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDgzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4MyAwMzE1IDAwNjI7CiswMDYxIDA0ODMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NCAwMDYyOzAwRTAgMDVBRSAwNDg0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NCAwMzE1IDAwNjI7CiswMDYxIDA0ODQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NSAwMDYyOzAwRTAgMDVBRSAwNDg1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NSAwMzE1IDAwNjI7CiswMDYxIDA0ODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NiAwMDYyOzAwRTAgMDVBRSAwNDg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NiAwMzE1IDAwNjI7CiswMDYxIDA0ODYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOworMDA2MSAwNTkxIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTIgMDA2MjswMEUwIDA1QUUgMDU5MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTIgMDMxNSAwMDYyOworMDA2MSAwNTkyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTMgMDA2MjswMEUwIDA1QUUgMDU5MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTMgMDMxNSAwMDYyOworMDA2MSAwNTkzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTQgMDA2MjswMEUwIDA1QUUgMDU5NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTQgMDMxNSAwMDYyOworMDA2MSAwNTk0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTUgMDA2MjswMEUwIDA1QUUgMDU5NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTUgMDMxNSAwMDYyOworMDA2MSAwNTk1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1OTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjsKKzAwNjEgMDU5NiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk3IDAwNjI7MDBFMCAwNUFFIDA1OTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk3IDAzMTUgMDA2MjsKKzAwNjEgMDU5NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk4IDAwNjI7MDBFMCAwNUFFIDA1OTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk4IDAzMTUgMDA2MjsKKzAwNjEgMDU5OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk5IDAwNjI7MDBFMCAwNUFFIDA1OTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk5IDAzMTUgMDA2MjsKKzAwNjEgMDU5OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDA1OUEgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOworMDA2MSAwNTlCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUMgMDA2MjswMEUwIDA1QUUgMDU5QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUMgMDMxNSAwMDYyOworMDA2MSAwNTlDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUQgMDA2MjswMEUwIDA1QUUgMDU5RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUQgMDMxNSAwMDYyOworMDA2MSAwNTlEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUUgMDA2MjswMEUwIDA1QUUgMDU5RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUUgMDMxNSAwMDYyOworMDA2MSAwNTlFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUYgMDA2MjswMEUwIDA1QUUgMDU5RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUYgMDMxNSAwMDYyOworMDA2MSAwNTlGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTAgMDA2MjswMEUwIDA1QUUgMDVBMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTAgMDMxNSAwMDYyOworMDA2MSAwNUEwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTEgMDA2MjswMEUwIDA1QUUgMDVBMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTEgMDMxNSAwMDYyOworMDA2MSAwNUExIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTMgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjsKKzAwNjEgMDVBMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7CiswMDYxIDA1QTQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOworMDA2MSAwNUE1IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjsKKzAwNjEgMDVBNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7CiswMDYxIDA1QTcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBOCAwMDYyOzAwRTAgMDVBRSAwNUE4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOCAwMzE1IDAwNjI7CiswMDYxIDA1QTggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBOSAwMDYyOzAwRTAgMDVBRSAwNUE5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOSAwMzE1IDAwNjI7CiswMDYxIDA1QTkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOworMDA2MSAwNUFBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUIgMDA2MjswMEUwIDA1QUUgMDVBQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUIgMDMxNSAwMDYyOworMDA2MSAwNUFCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUMgMDA2MjswMEUwIDA1QUUgMDVBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUMgMDMxNSAwMDYyOworMDA2MSAwNUFDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDA1QUQgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjsKKzAwNjEgMDVBRCAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMDVBRSAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwNUFFIDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUFGIDAwNjI7MDBFMCAwNUFFIDA1QUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUFGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFGIDAzMTUgMDA2MjsKKzAwNjEgMDVBRiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNUIxIDA1QjAgMDk0RCAwNUIwIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7CiswMDYxIDA1QjAgMDVCMSAwNUIwIDA5NEQgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjsKKzAwNjEgMDVCMiAwNUIxIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOworMDA2MSAwNUIxIDA1QjIgMDVCMSAwNUIwIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7CiswMDYxIDA1QjMgMDVCMiAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjsKKzAwNjEgMDVCMiAwNUIzIDA1QjIgMDVCMSAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOworMDA2MSAwNUI0IDA1QjMgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7CiswMDYxIDA1QjMgMDVCNCAwNUIzIDA1QjIgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjsKKzAwNjEgMDVCNSAwNUI0IDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOworMDA2MSAwNUI0IDA1QjUgMDVCNCAwNUIzIDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7CiswMDYxIDA1QjYgMDVCNSAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjsKKzAwNjEgMDVCNSAwNUI2IDA1QjUgMDVCNCAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOworMDA2MSAwNUI3IDA1QjYgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7CiswMDYxIDA1QjYgMDVCNyAwNUI2IDA1QjUgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjsKKzAwNjEgMDVCOCAwNUI3IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOworMDA2MSAwNUI3IDA1QjggMDVCNyAwNUI2IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7CiswMDYxIDA1QjkgMDVCOCAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjsKKzAwNjEgMDVCOCAwNUI5IDA1QjggMDVCNyAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOworMDA2MSAwNUJCIDA1QjkgMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7CiswMDYxIDA1QjkgMDVCQiAwNUI5IDA1QjggMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjsKKzAwNjEgMDVCQyAwNUJCIDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOworMDA2MSAwNUJCIDA1QkMgMDVCQiAwNUI5IDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7CiswMDYxIDA1QkQgMDVCQyAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjsKKzAwNjEgMDVCQyAwNUJEIDA1QkMgMDVCQiAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOworMDA2MSAwNUJGIDA1QkQgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7CiswMDYxIDA1QkQgMDVCRiAwNUJEIDA1QkMgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjsKKzAwNjEgMDVDMSAwNUJGIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOworMDA2MSAwNUJGIDA1QzEgMDVCRiAwNUJEIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7CiswMDYxIDA1QzIgMDVDMSAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjsKKzAwNjEgMDVDMSAwNUMyIDA1QzEgMDVCRiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOworMDA2MSBGQjFFIDA1QzIgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7CiswMDYxIDA1QzIgRkIxRSAwNUMyIDA1QzEgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVDNCAwMDYyOzAwRTAgMDVBRSAwNUM0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUM0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVDNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVDNCAwMzE1IDAwNjI7CiswMDYxIDA1QzQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDY0QyAwNjRCIEZCMUUgMDY0QiAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOworMDA2MSAwNjRCIDA2NEMgMDY0QiBGQjFFIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7CiswMDYxIDA2NEQgMDY0QyAwNjRCIDA2NEMgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjsKKzAwNjEgMDY0QyAwNjREIDA2NEMgMDY0QiAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOworMDA2MSAwNjRFIDA2NEQgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7CiswMDYxIDA2NEQgMDY0RSAwNjREIDA2NEMgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjsKKzAwNjEgMDY0RiAwNjRFIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOworMDA2MSAwNjRFIDA2NEYgMDY0RSAwNjREIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7CiswMDYxIDA2NTAgMDY0RiAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjsKKzAwNjEgMDY0RiAwNjUwIDA2NEYgMDY0RSAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOworMDA2MSAwNjUxIDA2NTAgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7CiswMDYxIDA2NTAgMDY1MSAwNjUwIDA2NEYgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjsKKzAwNjEgMDY1MiAwNjUxIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOworMDA2MSAwNjUxIDA2NTIgMDY1MSAwNjUwIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7CiswMDYxIDA2NzAgMDY1MiAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjsKKzAwNjEgMDY1MiAwNjcwIDA2NTIgMDY1MSAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjUzIDAwNjI7MDBFMCAwNUFFIDA2NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjUzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjUzIDAzMTUgMDA2MjsKKzAwNjEgMDY1MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjU0IDAwNjI7MDBFMCAwNUFFIDA2NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjU0IDAzMTUgMDA2MjsKKzAwNjEgMDY1NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNjU1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7CiswMDYxIDA2NTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDcxMSAwNjcwIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOworMDA2MSAwNjcwIDA3MTEgMDY3MCAwNjUyIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDYgMDA2MjswMEUwIDA1QUUgMDZENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDYgMDMxNSAwMDYyOworMDA2MSAwNkQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDcgMDA2MjswMEUwIDA1QUUgMDZENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDcgMDMxNSAwMDYyOworMDA2MSAwNkQ3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDggMDA2MjswMEUwIDA1QUUgMDZEOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDggMDMxNSAwMDYyOworMDA2MSAwNkQ4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDkgMDA2MjswMEUwIDA1QUUgMDZEOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDkgMDMxNSAwMDYyOworMDA2MSAwNkQ5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REEgMDA2MjswMEUwIDA1QUUgMDZEQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REEgMDMxNSAwMDYyOworMDA2MSAwNkRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REIgMDA2MjswMEUwIDA1QUUgMDZEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REIgMDMxNSAwMDYyOworMDA2MSAwNkRCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REMgMDA2MjswMEUwIDA1QUUgMDZEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REMgMDMxNSAwMDYyOworMDA2MSAwNkRDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REYgMDA2MjswMEUwIDA1QUUgMDZERiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZERiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REYgMDMxNSAwMDYyOworMDA2MSAwNkRGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTAgMDA2MjswMEUwIDA1QUUgMDZFMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTAgMDMxNSAwMDYyOworMDA2MSAwNkUwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTEgMDA2MjswMEUwIDA1QUUgMDZFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTEgMDMxNSAwMDYyOworMDA2MSAwNkUxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTIgMDA2MjswMEUwIDA1QUUgMDZFMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTIgMDMxNSAwMDYyOworMDA2MSAwNkUyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2RTMgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjsKKzAwNjEgMDZFMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkU0IDAwNjI7MDBFMCAwNUFFIDA2RTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU0IDAzMTUgMDA2MjsKKzAwNjEgMDZFNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkU3IDAwNjI7MDBFMCAwNUFFIDA2RTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU3IDAzMTUgMDA2MjsKKzAwNjEgMDZFNyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkU4IDAwNjI7MDBFMCAwNUFFIDA2RTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkU4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU4IDAzMTUgMDA2MjsKKzAwNjEgMDZFOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNkVBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7CiswMDYxIDA2RUEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFQiAwMDYyOzAwRTAgMDVBRSAwNkVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFQiAwMzE1IDAwNjI7CiswMDYxIDA2RUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFQyAwMDYyOzAwRTAgMDVBRSAwNkVDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFQyAwMzE1IDAwNjI7CiswMDYxIDA2RUMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDZFRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOworMDA2MSAwNkVEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDBDNTUgMDcxMSAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjsKKzAwNjEgMDcxMSAwQzU1IDA3MTEgMDY3MCAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMwIDAwNjI7MDBFMCAwNUFFIDA3MzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMwIDAzMTUgMDA2MjsKKzAwNjEgMDczMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzMxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7CiswMDYxIDA3MzEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczMiAwMDYyOzAwRTAgMDVBRSAwNzMyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMiAwMzE1IDAwNjI7CiswMDYxIDA3MzIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczMyAwMDYyOzAwRTAgMDVBRSAwNzMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMyAwMzE1IDAwNjI7CiswMDYxIDA3MzMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOworMDA2MSAwNzM0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzUgMDA2MjswMEUwIDA1QUUgMDczNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzUgMDMxNSAwMDYyOworMDA2MSAwNzM1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzYgMDA2MjswMEUwIDA1QUUgMDczNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzYgMDMxNSAwMDYyOworMDA2MSAwNzM2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzcgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjsKKzAwNjEgMDczNyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7CiswMDYxIDA3MzggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOworMDA2MSAwNzM5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3M0EgMDA2MjswMEUwIDA1QUUgMDczQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczQSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3M0EgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0EgMDMxNSAwMDYyOworMDA2MSAwNzNBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3M0IgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjsKKzAwNjEgMDczQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzNDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7CiswMDYxIDA3M0MgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczRCAwMDYyOzAwRTAgMDVBRSAwNzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRCAwMzE1IDAwNjI7CiswMDYxIDA3M0QgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczRSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOworMDA2MSAwNzNFIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3M0YgMDA2MjswMEUwIDA1QUUgMDczRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3M0YgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0YgMDMxNSAwMDYyOworMDA2MSAwNzNGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDAgMDA2MjswMEUwIDA1QUUgMDc0MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDAgMDMxNSAwMDYyOworMDA2MSAwNzQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDEgMDA2MjswMEUwIDA1QUUgMDc0MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDEgMDMxNSAwMDYyOworMDA2MSAwNzQxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDIgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjsKKzAwNjEgMDc0MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQzIDAwNjI7MDBFMCAwNUFFIDA3NDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQzIDAzMTUgMDA2MjsKKzAwNjEgMDc0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQ0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7CiswMDYxIDA3NDQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0NSAwMDYyOzAwRTAgMDVBRSAwNzQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NSAwMzE1IDAwNjI7CiswMDYxIDA3NDUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOworMDA2MSAwNzQ2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDcgMDA2MjswMEUwIDA1QUUgMDc0NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDcgMDMxNSAwMDYyOworMDA2MSAwNzQ3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDggMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjsKKzAwNjEgMDc0OCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQ5IDAwNjI7MDBFMCAwNUFFIDA3NDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ5IDAzMTUgMDA2MjsKKzAwNjEgMDc0OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzRBIDAwNjI7MDBFMCAwNUFFIDA3NEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NEEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzRBIDAzMTUgMDA2MjsKKzAwNjEgMDc0QSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA5M0MgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMDk0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwOTREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTEgMDA2MjswMEUwIDA1QUUgMDk1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTEgMDMxNSAwMDYyOworMDA2MSAwOTUxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA5NTIgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjsKKzAwNjEgMDk1MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwOTUzIDAwNjI7MDBFMCAwNUFFIDA5NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwOTUzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUzIDAzMTUgMDA2MjsKKzAwNjEgMDk1MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwOTU0IDAwNjI7MDBFMCAwNUFFIDA5NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwOTU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTU0IDAzMTUgMDA2MjsKKzAwNjEgMDk1NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwOUJDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7CiswMDYxIDA5QkMgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMDlDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOworMDA2MSAwOUNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBBM0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjsKKzAwNjEgMEEzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQTREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7CiswMDYxIDBBNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMEFCQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOworMDA2MSAwQUJDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBBQ0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjsKKzAwNjEgMEFDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwQjNDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7CiswMDYxIDBCM0MgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEI0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOworMDA2MSAwQjREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBCQ0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjsKKzAwNjEgMEJDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQzREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7CiswMDYxIDBDNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMEM1NiAwQzU1IDA3MTEgMEM1NSAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOworMDA2MSAwQzU1IDBDNTYgMEM1NSAwNzExIDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7CiswMDYxIDBFMzggMEM1NiAwQzU1IDBDNTYgMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjsKKzAwNjEgMEM1NiAwRTM4IDBDNTYgMEM1NSAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQ0NEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7CiswMDYxIDBDQ0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEQ0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOworMDA2MSAwRDREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBEQ0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjsKKzAwNjEgMERDQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRTQ4IDBFMzggMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDBFMzggMEU0OCAwRTM4IDBDNTYgMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMEU0OCAwRTM4IDBDNTYgMEUzOSAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOworMDA2MSAwRTM5IDBFNDggMEUzOCAwQzU2IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBFM0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjsKKzAwNjEgMEUzQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFNDggMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVCOCAwRTQ4IDBFMzggMEU0OSAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOworMDA2MSAwRTQ5IDBFQjggMEU0OCAwRTM4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNEEgMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjsKKzAwNjEgMEU0QSAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTRCIDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7CiswMDYxIDBFNEIgMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVDOCAwRUI4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRUI4IDBFQzggMEVCOCAwRTQ4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBFQzggMEVCOCAwRTQ4IDBFQjkgMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjsKKzAwNjEgMEVCOSAwRUM4IDBFQjggMEU0OCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBFQzggMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEY3MSAwRUM4IDBFQjggMEVDOSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOworMDA2MSAwRUM5IDBGNzEgMEVDOCAwRUI4IDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQ0EgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjsKKzAwNjEgMEVDQSAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUNCIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7CiswMDYxIDBFQ0IgMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOworMDA2MSAwRjE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjsKKzAwNjEgMEYxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjM1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7CiswMDYxIDBGMzUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYzNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOworMDA2MSAwRjM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDBGMzkgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjsKKzAwNjEgMEYzOSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOworMDA2MSAwRjcyIDBGNzEgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7CiswMDYxIDBGNzEgMEY3MiAwRjcxIDBFQzggMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjcyIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMjEgMEY3NCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjsKKzAwNjEgMEY3NCAwMzIxIDBGNzQgMEY3MiAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdBIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7CiswMDYxIDBGN0EgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3QiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOworMDA2MSAwRjdCIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0MgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjsKKzAwNjEgMEY3QyAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdEIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7CiswMDYxIDBGN0QgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY4MCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOworMDA2MSAwRjgwIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODIgMDA2MjswMEUwIDA1QUUgMEY4MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODIgMDMxNSAwMDYyOworMDA2MSAwRjgyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODMgMDA2MjswMEUwIDA1QUUgMEY4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODMgMDMxNSAwMDYyOworMDA2MSAwRjgzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBGODQgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjsKKzAwNjEgMEY4NCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg2IDAwNjI7MDBFMCAwNUFFIDBGODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg2IDAzMTUgMDA2MjsKKzAwNjEgMEY4NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg3IDAwNjI7MDBFMCAwNUFFIDBGODcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg3IDAzMTUgMDA2MjsKKzAwNjEgMEY4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRkM2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7CiswMDYxIDBGQzYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMTAzNyAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOworMDA2MSAxMDM3IDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDEwMzkgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjsKKzAwNjEgMTAzOSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAxNzE0IDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7CiswMDYxIDE3MTQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTczNCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOworMDA2MSAxNzM0IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDE3RDIgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjsKKzAwNjEgMTdEMiAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMThBOSAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOworMDA2MSAxOEE5IDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQwIDAwNjI7MDBFMCAwNUFFIDIwRDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQwIDAzMTUgMDA2MjsKKzAwNjEgMjBEMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQxIDAwNjI7MDBFMCAwNUFFIDIwRDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQxIDAzMTUgMDA2MjsKKzAwNjEgMjBEMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEMiAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjsKKzAwNjEgMjBEMiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQzIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOworMDA2MSAyMEQzIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENCAwMDYyOzAwRTAgMDVBRSAyMEQ0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ0IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENCAwMzE1IDAwNjI7CiswMDYxIDIwRDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENSAwMDYyOzAwRTAgMDVBRSAyMEQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ1IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENSAwMzE1IDAwNjI7CiswMDYxIDIwRDUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENiAwMDYyOzAwRTAgMDVBRSAyMEQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENiAwMzE1IDAwNjI7CiswMDYxIDIwRDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENyAwMDYyOzAwRTAgMDVBRSAyMEQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENyAwMzE1IDAwNjI7CiswMDYxIDIwRDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDggMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7CiswMDYxIDIwRDggMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEOSAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjsKKzAwNjEgMjBEOSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMERBIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOworMDA2MSAyMERBIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEQiAwMDYyOzAwRTAgMDVBRSAyMERCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERCIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQiAwMzE1IDAwNjI7CiswMDYxIDIwREIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEQyAwMDYyOzAwRTAgMDVBRSAyMERDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERDIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQyAwMzE1IDAwNjI7CiswMDYxIDIwREMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBFMSAwMDYyOzAwRTAgMDVBRSAyMEUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFMSAwMzE1IDAwNjI7CiswMDYxIDIwRTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRTUgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7CiswMDYxIDIwRTUgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFNiAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjsKKzAwNjEgMjBFNiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRTcgMDA2MjswMEUwIDA1QUUgMjBFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTcgMDMxNSAwMDYyOworMDA2MSAyMEU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDIwRTggMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjsKKzAwNjEgMjBFOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEU5IDAwNjI7MDBFMCAwNUFFIDIwRTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEU5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU5IDAzMTUgMDA2MjsKKzAwNjEgMjBFOSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFQSAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjsKKzAwNjEgMjBFQSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTYgMzAyQSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjsKKzAwNjEgMzAyQSAwMzE2IDMwMkEgMDMxQiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMzAyQiAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOworMDA2MSAzMDJCIDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzYyIDAzMTUgMDMwMCAzMDJDIDAwNjI7MDBFMCAwMzE1IDMwMkMgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDMwMkMgMDM2MiAwMDYyOzAwRTAgMDMxNSAzMDJDIDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAzMDJDIDAzNjIgMDA2MjsKKzAwNjEgMzAyQyAwMzYyIDAzMTUgMDMwMCAwMDYyOzAwRTAgMzAyQyAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMzAyQyAwMzE1IDAzNjIgMDA2MjswMEUwIDMwMkMgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDMwMkMgMDMxNSAwMzYyIDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDMwMkQgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjsKKzAwNjEgMzAyRCAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOworMDA2MSAxRDE2RCAzMDJFIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMzAyRSAxRDE2RCAzMDJFIDA1OUEgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7CiswMDYxIDFEMTZEIDMwMkUgMDU5QSAzMDJGIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkYgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOworMDA2MSAzMDJGIDFEMTZEIDMwMkUgMDU5QSAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRiAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMDk0RCAzMDk5IDA5M0MgMzA5OSAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOworMDA2MSAzMDk5IDA5NEQgMzA5OSAwOTNDIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7CiswMDYxIDA5NEQgMzA5OSAwOTNDIDMwOUEgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjsKKzAwNjEgMzA5QSAwOTREIDMwOTkgMDkzQyAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOworMDA2MSAwNjRCIEZCMUUgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7CiswMDYxIEZCMUUgMDY0QiBGQjFFIDA1QzIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMCAwMDYyOzAwRTAgMDVBRSBGRTIwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIwIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMCAwMzE1IDAwNjI7CiswMDYxIEZFMjAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMSAwMDYyOzAwRTAgMDVBRSBGRTIxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIxIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMSAwMzE1IDAwNjI7CiswMDYxIEZFMjEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMiAwMDYyOzAwRTAgMDVBRSBGRTIyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIyIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMiAwMzE1IDAwNjI7CiswMDYxIEZFMjIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMyAwMDYyOzAwRTAgMDVBRSBGRTIzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIzIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMyAwMzE1IDAwNjI7CiswMDYxIEZFMjMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNjUgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7CiswMDYxIDFEMTY1IDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2NiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjsKKzAwNjEgMUQxNjYgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY2IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2NyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjcgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7CiswMDYxIDFEMTY3IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OCAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjggMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7CiswMDYxIDFEMTY4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OSAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7CiswMDYxIDFEMTY5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA1QUUgMUQxNkQgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDFEMTZEIDA1QUUgMUQxNkQgMzAyRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTZFIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZFIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOworMDA2MSAxRDE2RSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNkYgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7CiswMDYxIDFEMTZGIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE3MCAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MCAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjsKKzAwNjEgMUQxNzAgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcwIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTcxIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcxIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOworMDA2MSAxRDE3MSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzEgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNzIgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7CiswMDYxIDFEMTcyIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOworMDA2MSAxRDE3QyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0QgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0QgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7CiswMDYxIDFEMTdEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3RSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOworMDA2MSAxRDE3RiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0YgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxODAgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7CiswMDYxIDFEMTgwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjsKKzAwNjEgMUQxODEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTgyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOworMDA2MSAxRDE4MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjsKKzAwNjEgMUQxODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg2IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7CiswMDYxIDFEMTg2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4NyAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOworMDA2MSAxRDE4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODggMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjsKKzAwNjEgMUQxODggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg5IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7CiswMDYxIDFEMTg5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjsKKzAwNjEgMUQxOEEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMThCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOworMDA2MSAxRDE4QiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUEgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMUFCIDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7CiswMDYxIDFEMUFCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBQyAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOworMDA2MSAxRDFBQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUQgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7CisjCisjIEVORCBPRiBGSUxFCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI1ZTRmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dApAQCAtMCwwICsxLDE3NTU4IEBACisjIE5vcm1hbGl6YXRpb25UZXN0LTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTI2LCAwMDozMzoyOSBHTVQgW01EXQorIworIyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZQorIyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuCisjIEZvciB0ZXJtcyBvZiB1c2UsIHNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Rlcm1zX29mX3VzZS5odG1sCisjIEZvciBkb2N1bWVudGF0aW9uLCBzZWUgVUNELmh0bWwKKyMKKyMgTm9ybWFsaXphdGlvbiBUZXN0IFN1aXRlCisjIEZvcm1hdDoKKyMKKyMgICBDb2x1bW5zIChjMSwgYzIsLi4uKSBhcmUgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMKKyMgICBDb21tZW50cyBhcmUgaW5kaWNhdGVkIHdpdGggaGFzaCBtYXJrcworIworIyBDT05GT1JNQU5DRToKKyMgMS4gVGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQgaW1wbGVtZW50YXRpb25zCisjCisjICAgIE5GQworIyAgICAgIGMyID09ICBORkMoYzEpID09ICBORkMoYzIpID09ICBORkMoYzMpCisjICAgICAgYzQgPT0gIE5GQyhjNCkgPT0gIE5GQyhjNSkKKyMKKyMgICAgTkZECisjICAgICAgYzMgPT0gIE5GRChjMSkgPT0gIE5GRChjMikgPT0gIE5GRChjMykKKyMgICAgICBjNSA9PSAgTkZEKGM0KSA9PSAgTkZEKGM1KQorIworIyAgICBORktDCisjICAgICAgYzQgPT0gTkZLQyhjMSkgPT0gTkZLQyhjMikgPT0gTkZLQyhjMykgPT0gTkZLQyhjNCkgPT0gTkZLQyhjNSkKKyMKKyMgICAgTkZLRAorIyAgICAgIGM1ID09IE5GS0QoYzEpID09IE5GS0QoYzIpID09IE5GS0QoYzMpID09IE5GS0QoYzQpID09IE5GS0QoYzUpCisjCisjIDIuIEZvciBldmVyeSBjb2RlIHBvaW50IFggYXNzaWduZWQgaW4gdGhpcyB2ZXJzaW9uIG9mIFVuaWNvZGUgdGhhdCBpcyBub3Qgc3BlY2lmaWNhbGx5CisjICAgIGxpc3RlZCBpbiBQYXJ0IDEsIHRoZSBmb2xsb3dpbmcgaW52YXJpYW50cyBtdXN0IGJlIHRydWUgZm9yIGFsbCBjb25mb3JtYW50CisjICAgIGltcGxlbWVudGF0aW9uczoKKyMKKyMgICAgICBYID09IE5GQyhYKSA9PSBORkQoWCkgPT0gTkZLQyhYKSA9PSBORktEKFgpCisjCitAUGFydDAgIyBTcGVjaWZpYyBjYXNlcworIworMUUwQTsxRTBBOzAwNDQgMDMwNzsxRTBBOzAwNDQgMDMwNzsKKzFFMEM7MUUwQzswMDQ0IDAzMjM7MUUwQzswMDQ0IDAzMjM7CisxRTBBIDAzMjM7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzFFMEMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMDA0NCAwMzA3IDAzMjM7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CisxRTBBIDAzMUI7MUUwQSAwMzFCOzAwNDQgMDMxQiAwMzA3OzFFMEEgMDMxQjswMDQ0IDAzMUIgMDMwNzsKKzFFMEMgMDMxQjsxRTBDIDAzMUI7MDA0NCAwMzFCIDAzMjM7MUUwQyAwMzFCOzAwNDQgMDMxQiAwMzIzOworMUUwQSAwMzFCIDAzMjM7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMUUwQyAwMzFCIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMDA0NCAwMzFCIDAzMDcgMDMyMzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CiswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzAwQzg7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMTEyOzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOworMDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMUUxNDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CiswMTEyIDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMUUxNCAwMzA0OzFFMTQgMDMwNDswMDQ1IDAzMDQgMDMwMCAwMzA0OzFFMTQgMDMwNDswMDQ1IDAzMDQgMDMwMCAwMzA0OworMDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMDA0NSAwMzAwIDAzMDQ7MDBDOCAwMzA0OzAwNDUgMDMwMCAwMzA0OzAwQzggMDMwNDswMDQ1IDAzMDAgMDMwNDsKKzA1QjggMDVCOSAwNUIxIDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7CiswNTkyIDA1QjcgMDVCQyAwNUE1IDA1QjAgMDVDMCAwNUM0IDA1QUQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OworIworQFBhcnQxICMgQ2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB0ZXN0CisjIEFsbCBjaGFyYWN0ZXJzIG5vdCBleHBsaWNpdGx5IG9jY3VycmluZyBpbiBjMSBvZiBQYXJ0IDEgaGF2ZSBpZGVudGljYWwgTkZDLCBELCBLQywgS0QgZm9ybXMuCisjCiswMEEwOzAwQTA7MDBBMDswMDIwOzAwMjA7CiswMEE4OzAwQTg7MDBBODswMDIwIDAzMDg7MDAyMCAwMzA4OworMDBBQTswMEFBOzAwQUE7MDA2MTswMDYxOworMDBBRjswMEFGOzAwQUY7MDAyMCAwMzA0OzAwMjAgMDMwNDsKKzAwQjI7MDBCMjswMEIyOzAwMzI7MDAzMjsKKzAwQjM7MDBCMzswMEIzOzAwMzM7MDAzMzsKKzAwQjQ7MDBCNDswMEI0OzAwMjAgMDMwMTswMDIwIDAzMDE7CiswMEI1OzAwQjU7MDBCNTswM0JDOzAzQkM7CiswMEI4OzAwQjg7MDBCODswMDIwIDAzMjc7MDAyMCAwMzI3OworMDBCOTswMEI5OzAwQjk7MDAzMTswMDMxOworMDBCQTswMEJBOzAwQkE7MDA2RjswMDZGOworMDBCQzswMEJDOzAwQkM7MDAzMSAyMDQ0IDAwMzQ7MDAzMSAyMDQ0IDAwMzQ7CiswMEJEOzAwQkQ7MDBCRDswMDMxIDIwNDQgMDAzMjswMDMxIDIwNDQgMDAzMjsKKzAwQkU7MDBCRTswMEJFOzAwMzMgMjA0NCAwMDM0OzAwMzMgMjA0NCAwMDM0OworMDBDMDswMEMwOzAwNDEgMDMwMDswMEMwOzAwNDEgMDMwMDsKKzAwQzE7MDBDMTswMDQxIDAzMDE7MDBDMTswMDQxIDAzMDE7CiswMEMyOzAwQzI7MDA0MSAwMzAyOzAwQzI7MDA0MSAwMzAyOworMDBDMzswMEMzOzAwNDEgMDMwMzswMEMzOzAwNDEgMDMwMzsKKzAwQzQ7MDBDNDswMDQxIDAzMDg7MDBDNDswMDQxIDAzMDg7CiswMEM1OzAwQzU7MDA0MSAwMzBBOzAwQzU7MDA0MSAwMzBBOworMDBDNzswMEM3OzAwNDMgMDMyNzswMEM3OzAwNDMgMDMyNzsKKzAwQzg7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMEM5OzAwQzk7MDA0NSAwMzAxOzAwQzk7MDA0NSAwMzAxOworMDBDQTswMENBOzAwNDUgMDMwMjswMENBOzAwNDUgMDMwMjsKKzAwQ0I7MDBDQjswMDQ1IDAzMDg7MDBDQjswMDQ1IDAzMDg7CiswMENDOzAwQ0M7MDA0OSAwMzAwOzAwQ0M7MDA0OSAwMzAwOworMDBDRDswMENEOzAwNDkgMDMwMTswMENEOzAwNDkgMDMwMTsKKzAwQ0U7MDBDRTswMDQ5IDAzMDI7MDBDRTswMDQ5IDAzMDI7CiswMENGOzAwQ0Y7MDA0OSAwMzA4OzAwQ0Y7MDA0OSAwMzA4OworMDBEMTswMEQxOzAwNEUgMDMwMzswMEQxOzAwNEUgMDMwMzsKKzAwRDI7MDBEMjswMDRGIDAzMDA7MDBEMjswMDRGIDAzMDA7CiswMEQzOzAwRDM7MDA0RiAwMzAxOzAwRDM7MDA0RiAwMzAxOworMDBENDswMEQ0OzAwNEYgMDMwMjswMEQ0OzAwNEYgMDMwMjsKKzAwRDU7MDBENTswMDRGIDAzMDM7MDBENTswMDRGIDAzMDM7CiswMEQ2OzAwRDY7MDA0RiAwMzA4OzAwRDY7MDA0RiAwMzA4OworMDBEOTswMEQ5OzAwNTUgMDMwMDswMEQ5OzAwNTUgMDMwMDsKKzAwREE7MDBEQTswMDU1IDAzMDE7MDBEQTswMDU1IDAzMDE7CiswMERCOzAwREI7MDA1NSAwMzAyOzAwREI7MDA1NSAwMzAyOworMDBEQzswMERDOzAwNTUgMDMwODswMERDOzAwNTUgMDMwODsKKzAwREQ7MDBERDswMDU5IDAzMDE7MDBERDswMDU5IDAzMDE7CiswMEUwOzAwRTA7MDA2MSAwMzAwOzAwRTA7MDA2MSAwMzAwOworMDBFMTswMEUxOzAwNjEgMDMwMTswMEUxOzAwNjEgMDMwMTsKKzAwRTI7MDBFMjswMDYxIDAzMDI7MDBFMjswMDYxIDAzMDI7CiswMEUzOzAwRTM7MDA2MSAwMzAzOzAwRTM7MDA2MSAwMzAzOworMDBFNDswMEU0OzAwNjEgMDMwODswMEU0OzAwNjEgMDMwODsKKzAwRTU7MDBFNTswMDYxIDAzMEE7MDBFNTswMDYxIDAzMEE7CiswMEU3OzAwRTc7MDA2MyAwMzI3OzAwRTc7MDA2MyAwMzI3OworMDBFODswMEU4OzAwNjUgMDMwMDswMEU4OzAwNjUgMDMwMDsKKzAwRTk7MDBFOTswMDY1IDAzMDE7MDBFOTswMDY1IDAzMDE7CiswMEVBOzAwRUE7MDA2NSAwMzAyOzAwRUE7MDA2NSAwMzAyOworMDBFQjswMEVCOzAwNjUgMDMwODswMEVCOzAwNjUgMDMwODsKKzAwRUM7MDBFQzswMDY5IDAzMDA7MDBFQzswMDY5IDAzMDA7CiswMEVEOzAwRUQ7MDA2OSAwMzAxOzAwRUQ7MDA2OSAwMzAxOworMDBFRTswMEVFOzAwNjkgMDMwMjswMEVFOzAwNjkgMDMwMjsKKzAwRUY7MDBFRjswMDY5IDAzMDg7MDBFRjswMDY5IDAzMDg7CiswMEYxOzAwRjE7MDA2RSAwMzAzOzAwRjE7MDA2RSAwMzAzOworMDBGMjswMEYyOzAwNkYgMDMwMDswMEYyOzAwNkYgMDMwMDsKKzAwRjM7MDBGMzswMDZGIDAzMDE7MDBGMzswMDZGIDAzMDE7CiswMEY0OzAwRjQ7MDA2RiAwMzAyOzAwRjQ7MDA2RiAwMzAyOworMDBGNTswMEY1OzAwNkYgMDMwMzswMEY1OzAwNkYgMDMwMzsKKzAwRjY7MDBGNjswMDZGIDAzMDg7MDBGNjswMDZGIDAzMDg7CiswMEY5OzAwRjk7MDA3NSAwMzAwOzAwRjk7MDA3NSAwMzAwOworMDBGQTswMEZBOzAwNzUgMDMwMTswMEZBOzAwNzUgMDMwMTsKKzAwRkI7MDBGQjswMDc1IDAzMDI7MDBGQjswMDc1IDAzMDI7CiswMEZDOzAwRkM7MDA3NSAwMzA4OzAwRkM7MDA3NSAwMzA4OworMDBGRDswMEZEOzAwNzkgMDMwMTswMEZEOzAwNzkgMDMwMTsKKzAwRkY7MDBGRjswMDc5IDAzMDg7MDBGRjswMDc5IDAzMDg7CiswMTAwOzAxMDA7MDA0MSAwMzA0OzAxMDA7MDA0MSAwMzA0OworMDEwMTswMTAxOzAwNjEgMDMwNDswMTAxOzAwNjEgMDMwNDsKKzAxMDI7MDEwMjswMDQxIDAzMDY7MDEwMjswMDQxIDAzMDY7CiswMTAzOzAxMDM7MDA2MSAwMzA2OzAxMDM7MDA2MSAwMzA2OworMDEwNDswMTA0OzAwNDEgMDMyODswMTA0OzAwNDEgMDMyODsKKzAxMDU7MDEwNTswMDYxIDAzMjg7MDEwNTswMDYxIDAzMjg7CiswMTA2OzAxMDY7MDA0MyAwMzAxOzAxMDY7MDA0MyAwMzAxOworMDEwNzswMTA3OzAwNjMgMDMwMTswMTA3OzAwNjMgMDMwMTsKKzAxMDg7MDEwODswMDQzIDAzMDI7MDEwODswMDQzIDAzMDI7CiswMTA5OzAxMDk7MDA2MyAwMzAyOzAxMDk7MDA2MyAwMzAyOworMDEwQTswMTBBOzAwNDMgMDMwNzswMTBBOzAwNDMgMDMwNzsKKzAxMEI7MDEwQjswMDYzIDAzMDc7MDEwQjswMDYzIDAzMDc7CiswMTBDOzAxMEM7MDA0MyAwMzBDOzAxMEM7MDA0MyAwMzBDOworMDEwRDswMTBEOzAwNjMgMDMwQzswMTBEOzAwNjMgMDMwQzsKKzAxMEU7MDEwRTswMDQ0IDAzMEM7MDEwRTswMDQ0IDAzMEM7CiswMTBGOzAxMEY7MDA2NCAwMzBDOzAxMEY7MDA2NCAwMzBDOworMDExMjswMTEyOzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDsKKzAxMTM7MDExMzswMDY1IDAzMDQ7MDExMzswMDY1IDAzMDQ7CiswMTE0OzAxMTQ7MDA0NSAwMzA2OzAxMTQ7MDA0NSAwMzA2OworMDExNTswMTE1OzAwNjUgMDMwNjswMTE1OzAwNjUgMDMwNjsKKzAxMTY7MDExNjswMDQ1IDAzMDc7MDExNjswMDQ1IDAzMDc7CiswMTE3OzAxMTc7MDA2NSAwMzA3OzAxMTc7MDA2NSAwMzA3OworMDExODswMTE4OzAwNDUgMDMyODswMTE4OzAwNDUgMDMyODsKKzAxMTk7MDExOTswMDY1IDAzMjg7MDExOTswMDY1IDAzMjg7CiswMTFBOzAxMUE7MDA0NSAwMzBDOzAxMUE7MDA0NSAwMzBDOworMDExQjswMTFCOzAwNjUgMDMwQzswMTFCOzAwNjUgMDMwQzsKKzAxMUM7MDExQzswMDQ3IDAzMDI7MDExQzswMDQ3IDAzMDI7CiswMTFEOzAxMUQ7MDA2NyAwMzAyOzAxMUQ7MDA2NyAwMzAyOworMDExRTswMTFFOzAwNDcgMDMwNjswMTFFOzAwNDcgMDMwNjsKKzAxMUY7MDExRjswMDY3IDAzMDY7MDExRjswMDY3IDAzMDY7CiswMTIwOzAxMjA7MDA0NyAwMzA3OzAxMjA7MDA0NyAwMzA3OworMDEyMTswMTIxOzAwNjcgMDMwNzswMTIxOzAwNjcgMDMwNzsKKzAxMjI7MDEyMjswMDQ3IDAzMjc7MDEyMjswMDQ3IDAzMjc7CiswMTIzOzAxMjM7MDA2NyAwMzI3OzAxMjM7MDA2NyAwMzI3OworMDEyNDswMTI0OzAwNDggMDMwMjswMTI0OzAwNDggMDMwMjsKKzAxMjU7MDEyNTswMDY4IDAzMDI7MDEyNTswMDY4IDAzMDI7CiswMTI4OzAxMjg7MDA0OSAwMzAzOzAxMjg7MDA0OSAwMzAzOworMDEyOTswMTI5OzAwNjkgMDMwMzswMTI5OzAwNjkgMDMwMzsKKzAxMkE7MDEyQTswMDQ5IDAzMDQ7MDEyQTswMDQ5IDAzMDQ7CiswMTJCOzAxMkI7MDA2OSAwMzA0OzAxMkI7MDA2OSAwMzA0OworMDEyQzswMTJDOzAwNDkgMDMwNjswMTJDOzAwNDkgMDMwNjsKKzAxMkQ7MDEyRDswMDY5IDAzMDY7MDEyRDswMDY5IDAzMDY7CiswMTJFOzAxMkU7MDA0OSAwMzI4OzAxMkU7MDA0OSAwMzI4OworMDEyRjswMTJGOzAwNjkgMDMyODswMTJGOzAwNjkgMDMyODsKKzAxMzA7MDEzMDswMDQ5IDAzMDc7MDEzMDswMDQ5IDAzMDc7CiswMTMyOzAxMzI7MDEzMjswMDQ5IDAwNEE7MDA0OSAwMDRBOworMDEzMzswMTMzOzAxMzM7MDA2OSAwMDZBOzAwNjkgMDA2QTsKKzAxMzQ7MDEzNDswMDRBIDAzMDI7MDEzNDswMDRBIDAzMDI7CiswMTM1OzAxMzU7MDA2QSAwMzAyOzAxMzU7MDA2QSAwMzAyOworMDEzNjswMTM2OzAwNEIgMDMyNzswMTM2OzAwNEIgMDMyNzsKKzAxMzc7MDEzNzswMDZCIDAzMjc7MDEzNzswMDZCIDAzMjc7CiswMTM5OzAxMzk7MDA0QyAwMzAxOzAxMzk7MDA0QyAwMzAxOworMDEzQTswMTNBOzAwNkMgMDMwMTswMTNBOzAwNkMgMDMwMTsKKzAxM0I7MDEzQjswMDRDIDAzMjc7MDEzQjswMDRDIDAzMjc7CiswMTNDOzAxM0M7MDA2QyAwMzI3OzAxM0M7MDA2QyAwMzI3OworMDEzRDswMTNEOzAwNEMgMDMwQzswMTNEOzAwNEMgMDMwQzsKKzAxM0U7MDEzRTswMDZDIDAzMEM7MDEzRTswMDZDIDAzMEM7CiswMTNGOzAxM0Y7MDEzRjswMDRDIDAwQjc7MDA0QyAwMEI3OworMDE0MDswMTQwOzAxNDA7MDA2QyAwMEI3OzAwNkMgMDBCNzsKKzAxNDM7MDE0MzswMDRFIDAzMDE7MDE0MzswMDRFIDAzMDE7CiswMTQ0OzAxNDQ7MDA2RSAwMzAxOzAxNDQ7MDA2RSAwMzAxOworMDE0NTswMTQ1OzAwNEUgMDMyNzswMTQ1OzAwNEUgMDMyNzsKKzAxNDY7MDE0NjswMDZFIDAzMjc7MDE0NjswMDZFIDAzMjc7CiswMTQ3OzAxNDc7MDA0RSAwMzBDOzAxNDc7MDA0RSAwMzBDOworMDE0ODswMTQ4OzAwNkUgMDMwQzswMTQ4OzAwNkUgMDMwQzsKKzAxNDk7MDE0OTswMTQ5OzAyQkMgMDA2RTswMkJDIDAwNkU7CiswMTRDOzAxNEM7MDA0RiAwMzA0OzAxNEM7MDA0RiAwMzA0OworMDE0RDswMTREOzAwNkYgMDMwNDswMTREOzAwNkYgMDMwNDsKKzAxNEU7MDE0RTswMDRGIDAzMDY7MDE0RTswMDRGIDAzMDY7CiswMTRGOzAxNEY7MDA2RiAwMzA2OzAxNEY7MDA2RiAwMzA2OworMDE1MDswMTUwOzAwNEYgMDMwQjswMTUwOzAwNEYgMDMwQjsKKzAxNTE7MDE1MTswMDZGIDAzMEI7MDE1MTswMDZGIDAzMEI7CiswMTU0OzAxNTQ7MDA1MiAwMzAxOzAxNTQ7MDA1MiAwMzAxOworMDE1NTswMTU1OzAwNzIgMDMwMTswMTU1OzAwNzIgMDMwMTsKKzAxNTY7MDE1NjswMDUyIDAzMjc7MDE1NjswMDUyIDAzMjc7CiswMTU3OzAxNTc7MDA3MiAwMzI3OzAxNTc7MDA3MiAwMzI3OworMDE1ODswMTU4OzAwNTIgMDMwQzswMTU4OzAwNTIgMDMwQzsKKzAxNTk7MDE1OTswMDcyIDAzMEM7MDE1OTswMDcyIDAzMEM7CiswMTVBOzAxNUE7MDA1MyAwMzAxOzAxNUE7MDA1MyAwMzAxOworMDE1QjswMTVCOzAwNzMgMDMwMTswMTVCOzAwNzMgMDMwMTsKKzAxNUM7MDE1QzswMDUzIDAzMDI7MDE1QzswMDUzIDAzMDI7CiswMTVEOzAxNUQ7MDA3MyAwMzAyOzAxNUQ7MDA3MyAwMzAyOworMDE1RTswMTVFOzAwNTMgMDMyNzswMTVFOzAwNTMgMDMyNzsKKzAxNUY7MDE1RjswMDczIDAzMjc7MDE1RjswMDczIDAzMjc7CiswMTYwOzAxNjA7MDA1MyAwMzBDOzAxNjA7MDA1MyAwMzBDOworMDE2MTswMTYxOzAwNzMgMDMwQzswMTYxOzAwNzMgMDMwQzsKKzAxNjI7MDE2MjswMDU0IDAzMjc7MDE2MjswMDU0IDAzMjc7CiswMTYzOzAxNjM7MDA3NCAwMzI3OzAxNjM7MDA3NCAwMzI3OworMDE2NDswMTY0OzAwNTQgMDMwQzswMTY0OzAwNTQgMDMwQzsKKzAxNjU7MDE2NTswMDc0IDAzMEM7MDE2NTswMDc0IDAzMEM7CiswMTY4OzAxNjg7MDA1NSAwMzAzOzAxNjg7MDA1NSAwMzAzOworMDE2OTswMTY5OzAwNzUgMDMwMzswMTY5OzAwNzUgMDMwMzsKKzAxNkE7MDE2QTswMDU1IDAzMDQ7MDE2QTswMDU1IDAzMDQ7CiswMTZCOzAxNkI7MDA3NSAwMzA0OzAxNkI7MDA3NSAwMzA0OworMDE2QzswMTZDOzAwNTUgMDMwNjswMTZDOzAwNTUgMDMwNjsKKzAxNkQ7MDE2RDswMDc1IDAzMDY7MDE2RDswMDc1IDAzMDY7CiswMTZFOzAxNkU7MDA1NSAwMzBBOzAxNkU7MDA1NSAwMzBBOworMDE2RjswMTZGOzAwNzUgMDMwQTswMTZGOzAwNzUgMDMwQTsKKzAxNzA7MDE3MDswMDU1IDAzMEI7MDE3MDswMDU1IDAzMEI7CiswMTcxOzAxNzE7MDA3NSAwMzBCOzAxNzE7MDA3NSAwMzBCOworMDE3MjswMTcyOzAwNTUgMDMyODswMTcyOzAwNTUgMDMyODsKKzAxNzM7MDE3MzswMDc1IDAzMjg7MDE3MzswMDc1IDAzMjg7CiswMTc0OzAxNzQ7MDA1NyAwMzAyOzAxNzQ7MDA1NyAwMzAyOworMDE3NTswMTc1OzAwNzcgMDMwMjswMTc1OzAwNzcgMDMwMjsKKzAxNzY7MDE3NjswMDU5IDAzMDI7MDE3NjswMDU5IDAzMDI7CiswMTc3OzAxNzc7MDA3OSAwMzAyOzAxNzc7MDA3OSAwMzAyOworMDE3ODswMTc4OzAwNTkgMDMwODswMTc4OzAwNTkgMDMwODsKKzAxNzk7MDE3OTswMDVBIDAzMDE7MDE3OTswMDVBIDAzMDE7CiswMTdBOzAxN0E7MDA3QSAwMzAxOzAxN0E7MDA3QSAwMzAxOworMDE3QjswMTdCOzAwNUEgMDMwNzswMTdCOzAwNUEgMDMwNzsKKzAxN0M7MDE3QzswMDdBIDAzMDc7MDE3QzswMDdBIDAzMDc7CiswMTdEOzAxN0Q7MDA1QSAwMzBDOzAxN0Q7MDA1QSAwMzBDOworMDE3RTswMTdFOzAwN0EgMDMwQzswMTdFOzAwN0EgMDMwQzsKKzAxN0Y7MDE3RjswMTdGOzAwNzM7MDA3MzsKKzAxQTA7MDFBMDswMDRGIDAzMUI7MDFBMDswMDRGIDAzMUI7CiswMUExOzAxQTE7MDA2RiAwMzFCOzAxQTE7MDA2RiAwMzFCOworMDFBRjswMUFGOzAwNTUgMDMxQjswMUFGOzAwNTUgMDMxQjsKKzAxQjA7MDFCMDswMDc1IDAzMUI7MDFCMDswMDc1IDAzMUI7CiswMUM0OzAxQzQ7MDFDNDswMDQ0IDAxN0Q7MDA0NCAwMDVBIDAzMEM7CiswMUM1OzAxQzU7MDFDNTswMDQ0IDAxN0U7MDA0NCAwMDdBIDAzMEM7CiswMUM2OzAxQzY7MDFDNjswMDY0IDAxN0U7MDA2NCAwMDdBIDAzMEM7CiswMUM3OzAxQzc7MDFDNzswMDRDIDAwNEE7MDA0QyAwMDRBOworMDFDODswMUM4OzAxQzg7MDA0QyAwMDZBOzAwNEMgMDA2QTsKKzAxQzk7MDFDOTswMUM5OzAwNkMgMDA2QTswMDZDIDAwNkE7CiswMUNBOzAxQ0E7MDFDQTswMDRFIDAwNEE7MDA0RSAwMDRBOworMDFDQjswMUNCOzAxQ0I7MDA0RSAwMDZBOzAwNEUgMDA2QTsKKzAxQ0M7MDFDQzswMUNDOzAwNkUgMDA2QTswMDZFIDAwNkE7CiswMUNEOzAxQ0Q7MDA0MSAwMzBDOzAxQ0Q7MDA0MSAwMzBDOworMDFDRTswMUNFOzAwNjEgMDMwQzswMUNFOzAwNjEgMDMwQzsKKzAxQ0Y7MDFDRjswMDQ5IDAzMEM7MDFDRjswMDQ5IDAzMEM7CiswMUQwOzAxRDA7MDA2OSAwMzBDOzAxRDA7MDA2OSAwMzBDOworMDFEMTswMUQxOzAwNEYgMDMwQzswMUQxOzAwNEYgMDMwQzsKKzAxRDI7MDFEMjswMDZGIDAzMEM7MDFEMjswMDZGIDAzMEM7CiswMUQzOzAxRDM7MDA1NSAwMzBDOzAxRDM7MDA1NSAwMzBDOworMDFENDswMUQ0OzAwNzUgMDMwQzswMUQ0OzAwNzUgMDMwQzsKKzAxRDU7MDFENTswMDU1IDAzMDggMDMwNDswMUQ1OzAwNTUgMDMwOCAwMzA0OworMDFENjswMUQ2OzAwNzUgMDMwOCAwMzA0OzAxRDY7MDA3NSAwMzA4IDAzMDQ7CiswMUQ3OzAxRDc7MDA1NSAwMzA4IDAzMDE7MDFENzswMDU1IDAzMDggMDMwMTsKKzAxRDg7MDFEODswMDc1IDAzMDggMDMwMTswMUQ4OzAwNzUgMDMwOCAwMzAxOworMDFEOTswMUQ5OzAwNTUgMDMwOCAwMzBDOzAxRDk7MDA1NSAwMzA4IDAzMEM7CiswMURBOzAxREE7MDA3NSAwMzA4IDAzMEM7MDFEQTswMDc1IDAzMDggMDMwQzsKKzAxREI7MDFEQjswMDU1IDAzMDggMDMwMDswMURCOzAwNTUgMDMwOCAwMzAwOworMDFEQzswMURDOzAwNzUgMDMwOCAwMzAwOzAxREM7MDA3NSAwMzA4IDAzMDA7CiswMURFOzAxREU7MDA0MSAwMzA4IDAzMDQ7MDFERTswMDQxIDAzMDggMDMwNDsKKzAxREY7MDFERjswMDYxIDAzMDggMDMwNDswMURGOzAwNjEgMDMwOCAwMzA0OworMDFFMDswMUUwOzAwNDEgMDMwNyAwMzA0OzAxRTA7MDA0MSAwMzA3IDAzMDQ7CiswMUUxOzAxRTE7MDA2MSAwMzA3IDAzMDQ7MDFFMTswMDYxIDAzMDcgMDMwNDsKKzAxRTI7MDFFMjswMEM2IDAzMDQ7MDFFMjswMEM2IDAzMDQ7CiswMUUzOzAxRTM7MDBFNiAwMzA0OzAxRTM7MDBFNiAwMzA0OworMDFFNjswMUU2OzAwNDcgMDMwQzswMUU2OzAwNDcgMDMwQzsKKzAxRTc7MDFFNzswMDY3IDAzMEM7MDFFNzswMDY3IDAzMEM7CiswMUU4OzAxRTg7MDA0QiAwMzBDOzAxRTg7MDA0QiAwMzBDOworMDFFOTswMUU5OzAwNkIgMDMwQzswMUU5OzAwNkIgMDMwQzsKKzAxRUE7MDFFQTswMDRGIDAzMjg7MDFFQTswMDRGIDAzMjg7CiswMUVCOzAxRUI7MDA2RiAwMzI4OzAxRUI7MDA2RiAwMzI4OworMDFFQzswMUVDOzAwNEYgMDMyOCAwMzA0OzAxRUM7MDA0RiAwMzI4IDAzMDQ7CiswMUVEOzAxRUQ7MDA2RiAwMzI4IDAzMDQ7MDFFRDswMDZGIDAzMjggMDMwNDsKKzAxRUU7MDFFRTswMUI3IDAzMEM7MDFFRTswMUI3IDAzMEM7CiswMUVGOzAxRUY7MDI5MiAwMzBDOzAxRUY7MDI5MiAwMzBDOworMDFGMDswMUYwOzAwNkEgMDMwQzswMUYwOzAwNkEgMDMwQzsKKzAxRjE7MDFGMTswMUYxOzAwNDQgMDA1QTswMDQ0IDAwNUE7CiswMUYyOzAxRjI7MDFGMjswMDQ0IDAwN0E7MDA0NCAwMDdBOworMDFGMzswMUYzOzAxRjM7MDA2NCAwMDdBOzAwNjQgMDA3QTsKKzAxRjQ7MDFGNDswMDQ3IDAzMDE7MDFGNDswMDQ3IDAzMDE7CiswMUY1OzAxRjU7MDA2NyAwMzAxOzAxRjU7MDA2NyAwMzAxOworMDFGODswMUY4OzAwNEUgMDMwMDswMUY4OzAwNEUgMDMwMDsKKzAxRjk7MDFGOTswMDZFIDAzMDA7MDFGOTswMDZFIDAzMDA7CiswMUZBOzAxRkE7MDA0MSAwMzBBIDAzMDE7MDFGQTswMDQxIDAzMEEgMDMwMTsKKzAxRkI7MDFGQjswMDYxIDAzMEEgMDMwMTswMUZCOzAwNjEgMDMwQSAwMzAxOworMDFGQzswMUZDOzAwQzYgMDMwMTswMUZDOzAwQzYgMDMwMTsKKzAxRkQ7MDFGRDswMEU2IDAzMDE7MDFGRDswMEU2IDAzMDE7CiswMUZFOzAxRkU7MDBEOCAwMzAxOzAxRkU7MDBEOCAwMzAxOworMDFGRjswMUZGOzAwRjggMDMwMTswMUZGOzAwRjggMDMwMTsKKzAyMDA7MDIwMDswMDQxIDAzMEY7MDIwMDswMDQxIDAzMEY7CiswMjAxOzAyMDE7MDA2MSAwMzBGOzAyMDE7MDA2MSAwMzBGOworMDIwMjswMjAyOzAwNDEgMDMxMTswMjAyOzAwNDEgMDMxMTsKKzAyMDM7MDIwMzswMDYxIDAzMTE7MDIwMzswMDYxIDAzMTE7CiswMjA0OzAyMDQ7MDA0NSAwMzBGOzAyMDQ7MDA0NSAwMzBGOworMDIwNTswMjA1OzAwNjUgMDMwRjswMjA1OzAwNjUgMDMwRjsKKzAyMDY7MDIwNjswMDQ1IDAzMTE7MDIwNjswMDQ1IDAzMTE7CiswMjA3OzAyMDc7MDA2NSAwMzExOzAyMDc7MDA2NSAwMzExOworMDIwODswMjA4OzAwNDkgMDMwRjswMjA4OzAwNDkgMDMwRjsKKzAyMDk7MDIwOTswMDY5IDAzMEY7MDIwOTswMDY5IDAzMEY7CiswMjBBOzAyMEE7MDA0OSAwMzExOzAyMEE7MDA0OSAwMzExOworMDIwQjswMjBCOzAwNjkgMDMxMTswMjBCOzAwNjkgMDMxMTsKKzAyMEM7MDIwQzswMDRGIDAzMEY7MDIwQzswMDRGIDAzMEY7CiswMjBEOzAyMEQ7MDA2RiAwMzBGOzAyMEQ7MDA2RiAwMzBGOworMDIwRTswMjBFOzAwNEYgMDMxMTswMjBFOzAwNEYgMDMxMTsKKzAyMEY7MDIwRjswMDZGIDAzMTE7MDIwRjswMDZGIDAzMTE7CiswMjEwOzAyMTA7MDA1MiAwMzBGOzAyMTA7MDA1MiAwMzBGOworMDIxMTswMjExOzAwNzIgMDMwRjswMjExOzAwNzIgMDMwRjsKKzAyMTI7MDIxMjswMDUyIDAzMTE7MDIxMjswMDUyIDAzMTE7CiswMjEzOzAyMTM7MDA3MiAwMzExOzAyMTM7MDA3MiAwMzExOworMDIxNDswMjE0OzAwNTUgMDMwRjswMjE0OzAwNTUgMDMwRjsKKzAyMTU7MDIxNTswMDc1IDAzMEY7MDIxNTswMDc1IDAzMEY7CiswMjE2OzAyMTY7MDA1NSAwMzExOzAyMTY7MDA1NSAwMzExOworMDIxNzswMjE3OzAwNzUgMDMxMTswMjE3OzAwNzUgMDMxMTsKKzAyMTg7MDIxODswMDUzIDAzMjY7MDIxODswMDUzIDAzMjY7CiswMjE5OzAyMTk7MDA3MyAwMzI2OzAyMTk7MDA3MyAwMzI2OworMDIxQTswMjFBOzAwNTQgMDMyNjswMjFBOzAwNTQgMDMyNjsKKzAyMUI7MDIxQjswMDc0IDAzMjY7MDIxQjswMDc0IDAzMjY7CiswMjFFOzAyMUU7MDA0OCAwMzBDOzAyMUU7MDA0OCAwMzBDOworMDIxRjswMjFGOzAwNjggMDMwQzswMjFGOzAwNjggMDMwQzsKKzAyMjY7MDIyNjswMDQxIDAzMDc7MDIyNjswMDQxIDAzMDc7CiswMjI3OzAyMjc7MDA2MSAwMzA3OzAyMjc7MDA2MSAwMzA3OworMDIyODswMjI4OzAwNDUgMDMyNzswMjI4OzAwNDUgMDMyNzsKKzAyMjk7MDIyOTswMDY1IDAzMjc7MDIyOTswMDY1IDAzMjc7CiswMjJBOzAyMkE7MDA0RiAwMzA4IDAzMDQ7MDIyQTswMDRGIDAzMDggMDMwNDsKKzAyMkI7MDIyQjswMDZGIDAzMDggMDMwNDswMjJCOzAwNkYgMDMwOCAwMzA0OworMDIyQzswMjJDOzAwNEYgMDMwMyAwMzA0OzAyMkM7MDA0RiAwMzAzIDAzMDQ7CiswMjJEOzAyMkQ7MDA2RiAwMzAzIDAzMDQ7MDIyRDswMDZGIDAzMDMgMDMwNDsKKzAyMkU7MDIyRTswMDRGIDAzMDc7MDIyRTswMDRGIDAzMDc7CiswMjJGOzAyMkY7MDA2RiAwMzA3OzAyMkY7MDA2RiAwMzA3OworMDIzMDswMjMwOzAwNEYgMDMwNyAwMzA0OzAyMzA7MDA0RiAwMzA3IDAzMDQ7CiswMjMxOzAyMzE7MDA2RiAwMzA3IDAzMDQ7MDIzMTswMDZGIDAzMDcgMDMwNDsKKzAyMzI7MDIzMjswMDU5IDAzMDQ7MDIzMjswMDU5IDAzMDQ7CiswMjMzOzAyMzM7MDA3OSAwMzA0OzAyMzM7MDA3OSAwMzA0OworMDJCMDswMkIwOzAyQjA7MDA2ODswMDY4OworMDJCMTswMkIxOzAyQjE7MDI2NjswMjY2OworMDJCMjswMkIyOzAyQjI7MDA2QTswMDZBOworMDJCMzswMkIzOzAyQjM7MDA3MjswMDcyOworMDJCNDswMkI0OzAyQjQ7MDI3OTswMjc5OworMDJCNTswMkI1OzAyQjU7MDI3QjswMjdCOworMDJCNjswMkI2OzAyQjY7MDI4MTswMjgxOworMDJCNzswMkI3OzAyQjc7MDA3NzswMDc3OworMDJCODswMkI4OzAyQjg7MDA3OTswMDc5OworMDJEODswMkQ4OzAyRDg7MDAyMCAwMzA2OzAwMjAgMDMwNjsKKzAyRDk7MDJEOTswMkQ5OzAwMjAgMDMwNzswMDIwIDAzMDc7CiswMkRBOzAyREE7MDJEQTswMDIwIDAzMEE7MDAyMCAwMzBBOworMDJEQjswMkRCOzAyREI7MDAyMCAwMzI4OzAwMjAgMDMyODsKKzAyREM7MDJEQzswMkRDOzAwMjAgMDMwMzswMDIwIDAzMDM7CiswMkREOzAyREQ7MDJERDswMDIwIDAzMEI7MDAyMCAwMzBCOworMDJFMDswMkUwOzAyRTA7MDI2MzswMjYzOworMDJFMTswMkUxOzAyRTE7MDA2QzswMDZDOworMDJFMjswMkUyOzAyRTI7MDA3MzswMDczOworMDJFMzswMkUzOzAyRTM7MDA3ODswMDc4OworMDJFNDswMkU0OzAyRTQ7MDI5NTswMjk1OworMDM0MDswMzAwOzAzMDA7MDMwMDswMzAwOworMDM0MTswMzAxOzAzMDE7MDMwMTswMzAxOworMDM0MzswMzEzOzAzMTM7MDMxMzswMzEzOworMDM0NDswMzA4IDAzMDE7MDMwOCAwMzAxOzAzMDggMDMwMTswMzA4IDAzMDE7CiswMzc0OzAyQjk7MDJCOTswMkI5OzAyQjk7CiswMzdBOzAzN0E7MDM3QTswMDIwIDAzNDU7MDAyMCAwMzQ1OworMDM3RTswMDNCOzAwM0I7MDAzQjswMDNCOworMDM4NDswMzg0OzAzODQ7MDAyMCAwMzAxOzAwMjAgMDMwMTsKKzAzODU7MDM4NTswMEE4IDAzMDE7MDAyMCAwMzA4IDAzMDE7MDAyMCAwMzA4IDAzMDE7CiswMzg2OzAzODY7MDM5MSAwMzAxOzAzODY7MDM5MSAwMzAxOworMDM4NzswMEI3OzAwQjc7MDBCNzswMEI3OworMDM4ODswMzg4OzAzOTUgMDMwMTswMzg4OzAzOTUgMDMwMTsKKzAzODk7MDM4OTswMzk3IDAzMDE7MDM4OTswMzk3IDAzMDE7CiswMzhBOzAzOEE7MDM5OSAwMzAxOzAzOEE7MDM5OSAwMzAxOworMDM4QzswMzhDOzAzOUYgMDMwMTswMzhDOzAzOUYgMDMwMTsKKzAzOEU7MDM4RTswM0E1IDAzMDE7MDM4RTswM0E1IDAzMDE7CiswMzhGOzAzOEY7MDNBOSAwMzAxOzAzOEY7MDNBOSAwMzAxOworMDM5MDswMzkwOzAzQjkgMDMwOCAwMzAxOzAzOTA7MDNCOSAwMzA4IDAzMDE7CiswM0FBOzAzQUE7MDM5OSAwMzA4OzAzQUE7MDM5OSAwMzA4OworMDNBQjswM0FCOzAzQTUgMDMwODswM0FCOzAzQTUgMDMwODsKKzAzQUM7MDNBQzswM0IxIDAzMDE7MDNBQzswM0IxIDAzMDE7CiswM0FEOzAzQUQ7MDNCNSAwMzAxOzAzQUQ7MDNCNSAwMzAxOworMDNBRTswM0FFOzAzQjcgMDMwMTswM0FFOzAzQjcgMDMwMTsKKzAzQUY7MDNBRjswM0I5IDAzMDE7MDNBRjswM0I5IDAzMDE7CiswM0IwOzAzQjA7MDNDNSAwMzA4IDAzMDE7MDNCMDswM0M1IDAzMDggMDMwMTsKKzAzQ0E7MDNDQTswM0I5IDAzMDg7MDNDQTswM0I5IDAzMDg7CiswM0NCOzAzQ0I7MDNDNSAwMzA4OzAzQ0I7MDNDNSAwMzA4OworMDNDQzswM0NDOzAzQkYgMDMwMTswM0NDOzAzQkYgMDMwMTsKKzAzQ0Q7MDNDRDswM0M1IDAzMDE7MDNDRDswM0M1IDAzMDE7CiswM0NFOzAzQ0U7MDNDOSAwMzAxOzAzQ0U7MDNDOSAwMzAxOworMDNEMDswM0QwOzAzRDA7MDNCMjswM0IyOworMDNEMTswM0QxOzAzRDE7MDNCODswM0I4OworMDNEMjswM0QyOzAzRDI7MDNBNTswM0E1OworMDNEMzswM0QzOzAzRDIgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzAzRDQ7MDNENDswM0QyIDAzMDg7MDNBQjswM0E1IDAzMDg7CiswM0Q1OzAzRDU7MDNENTswM0M2OzAzQzY7CiswM0Q2OzAzRDY7MDNENjswM0MwOzAzQzA7CiswM0YwOzAzRjA7MDNGMDswM0JBOzAzQkE7CiswM0YxOzAzRjE7MDNGMTswM0MxOzAzQzE7CiswM0YyOzAzRjI7MDNGMjswM0MyOzAzQzI7CiswM0Y0OzAzRjQ7MDNGNDswMzk4OzAzOTg7CiswM0Y1OzAzRjU7MDNGNTswM0I1OzAzQjU7CiswM0Y5OzAzRjk7MDNGOTswM0EzOzAzQTM7CiswNDAwOzA0MDA7MDQxNSAwMzAwOzA0MDA7MDQxNSAwMzAwOworMDQwMTswNDAxOzA0MTUgMDMwODswNDAxOzA0MTUgMDMwODsKKzA0MDM7MDQwMzswNDEzIDAzMDE7MDQwMzswNDEzIDAzMDE7CiswNDA3OzA0MDc7MDQwNiAwMzA4OzA0MDc7MDQwNiAwMzA4OworMDQwQzswNDBDOzA0MUEgMDMwMTswNDBDOzA0MUEgMDMwMTsKKzA0MEQ7MDQwRDswNDE4IDAzMDA7MDQwRDswNDE4IDAzMDA7CiswNDBFOzA0MEU7MDQyMyAwMzA2OzA0MEU7MDQyMyAwMzA2OworMDQxOTswNDE5OzA0MTggMDMwNjswNDE5OzA0MTggMDMwNjsKKzA0Mzk7MDQzOTswNDM4IDAzMDY7MDQzOTswNDM4IDAzMDY7CiswNDUwOzA0NTA7MDQzNSAwMzAwOzA0NTA7MDQzNSAwMzAwOworMDQ1MTswNDUxOzA0MzUgMDMwODswNDUxOzA0MzUgMDMwODsKKzA0NTM7MDQ1MzswNDMzIDAzMDE7MDQ1MzswNDMzIDAzMDE7CiswNDU3OzA0NTc7MDQ1NiAwMzA4OzA0NTc7MDQ1NiAwMzA4OworMDQ1QzswNDVDOzA0M0EgMDMwMTswNDVDOzA0M0EgMDMwMTsKKzA0NUQ7MDQ1RDswNDM4IDAzMDA7MDQ1RDswNDM4IDAzMDA7CiswNDVFOzA0NUU7MDQ0MyAwMzA2OzA0NUU7MDQ0MyAwMzA2OworMDQ3NjswNDc2OzA0NzQgMDMwRjswNDc2OzA0NzQgMDMwRjsKKzA0Nzc7MDQ3NzswNDc1IDAzMEY7MDQ3NzswNDc1IDAzMEY7CiswNEMxOzA0QzE7MDQxNiAwMzA2OzA0QzE7MDQxNiAwMzA2OworMDRDMjswNEMyOzA0MzYgMDMwNjswNEMyOzA0MzYgMDMwNjsKKzA0RDA7MDREMDswNDEwIDAzMDY7MDREMDswNDEwIDAzMDY7CiswNEQxOzA0RDE7MDQzMCAwMzA2OzA0RDE7MDQzMCAwMzA2OworMDREMjswNEQyOzA0MTAgMDMwODswNEQyOzA0MTAgMDMwODsKKzA0RDM7MDREMzswNDMwIDAzMDg7MDREMzswNDMwIDAzMDg7CiswNEQ2OzA0RDY7MDQxNSAwMzA2OzA0RDY7MDQxNSAwMzA2OworMDRENzswNEQ3OzA0MzUgMDMwNjswNEQ3OzA0MzUgMDMwNjsKKzA0REE7MDREQTswNEQ4IDAzMDg7MDREQTswNEQ4IDAzMDg7CiswNERCOzA0REI7MDREOSAwMzA4OzA0REI7MDREOSAwMzA4OworMDREQzswNERDOzA0MTYgMDMwODswNERDOzA0MTYgMDMwODsKKzA0REQ7MDRERDswNDM2IDAzMDg7MDRERDswNDM2IDAzMDg7CiswNERFOzA0REU7MDQxNyAwMzA4OzA0REU7MDQxNyAwMzA4OworMDRERjswNERGOzA0MzcgMDMwODswNERGOzA0MzcgMDMwODsKKzA0RTI7MDRFMjswNDE4IDAzMDQ7MDRFMjswNDE4IDAzMDQ7CiswNEUzOzA0RTM7MDQzOCAwMzA0OzA0RTM7MDQzOCAwMzA0OworMDRFNDswNEU0OzA0MTggMDMwODswNEU0OzA0MTggMDMwODsKKzA0RTU7MDRFNTswNDM4IDAzMDg7MDRFNTswNDM4IDAzMDg7CiswNEU2OzA0RTY7MDQxRSAwMzA4OzA0RTY7MDQxRSAwMzA4OworMDRFNzswNEU3OzA0M0UgMDMwODswNEU3OzA0M0UgMDMwODsKKzA0RUE7MDRFQTswNEU4IDAzMDg7MDRFQTswNEU4IDAzMDg7CiswNEVCOzA0RUI7MDRFOSAwMzA4OzA0RUI7MDRFOSAwMzA4OworMDRFQzswNEVDOzA0MkQgMDMwODswNEVDOzA0MkQgMDMwODsKKzA0RUQ7MDRFRDswNDREIDAzMDg7MDRFRDswNDREIDAzMDg7CiswNEVFOzA0RUU7MDQyMyAwMzA0OzA0RUU7MDQyMyAwMzA0OworMDRFRjswNEVGOzA0NDMgMDMwNDswNEVGOzA0NDMgMDMwNDsKKzA0RjA7MDRGMDswNDIzIDAzMDg7MDRGMDswNDIzIDAzMDg7CiswNEYxOzA0RjE7MDQ0MyAwMzA4OzA0RjE7MDQ0MyAwMzA4OworMDRGMjswNEYyOzA0MjMgMDMwQjswNEYyOzA0MjMgMDMwQjsKKzA0RjM7MDRGMzswNDQzIDAzMEI7MDRGMzswNDQzIDAzMEI7CiswNEY0OzA0RjQ7MDQyNyAwMzA4OzA0RjQ7MDQyNyAwMzA4OworMDRGNTswNEY1OzA0NDcgMDMwODswNEY1OzA0NDcgMDMwODsKKzA0Rjg7MDRGODswNDJCIDAzMDg7MDRGODswNDJCIDAzMDg7CiswNEY5OzA0Rjk7MDQ0QiAwMzA4OzA0Rjk7MDQ0QiAwMzA4OworMDU4NzswNTg3OzA1ODc7MDU2NSAwNTgyOzA1NjUgMDU4MjsKKzA2MjI7MDYyMjswNjI3IDA2NTM7MDYyMjswNjI3IDA2NTM7CiswNjIzOzA2MjM7MDYyNyAwNjU0OzA2MjM7MDYyNyAwNjU0OworMDYyNDswNjI0OzA2NDggMDY1NDswNjI0OzA2NDggMDY1NDsKKzA2MjU7MDYyNTswNjI3IDA2NTU7MDYyNTswNjI3IDA2NTU7CiswNjI2OzA2MjY7MDY0QSAwNjU0OzA2MjY7MDY0QSAwNjU0OworMDY3NTswNjc1OzA2NzU7MDYyNyAwNjc0OzA2MjcgMDY3NDsKKzA2NzY7MDY3NjswNjc2OzA2NDggMDY3NDswNjQ4IDA2NzQ7CiswNjc3OzA2Nzc7MDY3NzswNkM3IDA2NzQ7MDZDNyAwNjc0OworMDY3ODswNjc4OzA2Nzg7MDY0QSAwNjc0OzA2NEEgMDY3NDsKKzA2QzA7MDZDMDswNkQ1IDA2NTQ7MDZDMDswNkQ1IDA2NTQ7CiswNkMyOzA2QzI7MDZDMSAwNjU0OzA2QzI7MDZDMSAwNjU0OworMDZEMzswNkQzOzA2RDIgMDY1NDswNkQzOzA2RDIgMDY1NDsKKzA5Mjk7MDkyOTswOTI4IDA5M0M7MDkyOTswOTI4IDA5M0M7CiswOTMxOzA5MzE7MDkzMCAwOTNDOzA5MzE7MDkzMCAwOTNDOworMDkzNDswOTM0OzA5MzMgMDkzQzswOTM0OzA5MzMgMDkzQzsKKzA5NTg7MDkxNSAwOTNDOzA5MTUgMDkzQzswOTE1IDA5M0M7MDkxNSAwOTNDOworMDk1OTswOTE2IDA5M0M7MDkxNiAwOTNDOzA5MTYgMDkzQzswOTE2IDA5M0M7CiswOTVBOzA5MTcgMDkzQzswOTE3IDA5M0M7MDkxNyAwOTNDOzA5MTcgMDkzQzsKKzA5NUI7MDkxQyAwOTNDOzA5MUMgMDkzQzswOTFDIDA5M0M7MDkxQyAwOTNDOworMDk1QzswOTIxIDA5M0M7MDkyMSAwOTNDOzA5MjEgMDkzQzswOTIxIDA5M0M7CiswOTVEOzA5MjIgMDkzQzswOTIyIDA5M0M7MDkyMiAwOTNDOzA5MjIgMDkzQzsKKzA5NUU7MDkyQiAwOTNDOzA5MkIgMDkzQzswOTJCIDA5M0M7MDkyQiAwOTNDOworMDk1RjswOTJGIDA5M0M7MDkyRiAwOTNDOzA5MkYgMDkzQzswOTJGIDA5M0M7CiswOUNCOzA5Q0I7MDlDNyAwOUJFOzA5Q0I7MDlDNyAwOUJFOworMDlDQzswOUNDOzA5QzcgMDlENzswOUNDOzA5QzcgMDlENzsKKzA5REM7MDlBMSAwOUJDOzA5QTEgMDlCQzswOUExIDA5QkM7MDlBMSAwOUJDOworMDlERDswOUEyIDA5QkM7MDlBMiAwOUJDOzA5QTIgMDlCQzswOUEyIDA5QkM7CiswOURGOzA5QUYgMDlCQzswOUFGIDA5QkM7MDlBRiAwOUJDOzA5QUYgMDlCQzsKKzBBMzM7MEEzMiAwQTNDOzBBMzIgMEEzQzswQTMyIDBBM0M7MEEzMiAwQTNDOworMEEzNjswQTM4IDBBM0M7MEEzOCAwQTNDOzBBMzggMEEzQzswQTM4IDBBM0M7CiswQTU5OzBBMTYgMEEzQzswQTE2IDBBM0M7MEExNiAwQTNDOzBBMTYgMEEzQzsKKzBBNUE7MEExNyAwQTNDOzBBMTcgMEEzQzswQTE3IDBBM0M7MEExNyAwQTNDOworMEE1QjswQTFDIDBBM0M7MEExQyAwQTNDOzBBMUMgMEEzQzswQTFDIDBBM0M7CiswQTVFOzBBMkIgMEEzQzswQTJCIDBBM0M7MEEyQiAwQTNDOzBBMkIgMEEzQzsKKzBCNDg7MEI0ODswQjQ3IDBCNTY7MEI0ODswQjQ3IDBCNTY7CiswQjRCOzBCNEI7MEI0NyAwQjNFOzBCNEI7MEI0NyAwQjNFOworMEI0QzswQjRDOzBCNDcgMEI1NzswQjRDOzBCNDcgMEI1NzsKKzBCNUM7MEIyMSAwQjNDOzBCMjEgMEIzQzswQjIxIDBCM0M7MEIyMSAwQjNDOworMEI1RDswQjIyIDBCM0M7MEIyMiAwQjNDOzBCMjIgMEIzQzswQjIyIDBCM0M7CiswQjk0OzBCOTQ7MEI5MiAwQkQ3OzBCOTQ7MEI5MiAwQkQ3OworMEJDQTswQkNBOzBCQzYgMEJCRTswQkNBOzBCQzYgMEJCRTsKKzBCQ0I7MEJDQjswQkM3IDBCQkU7MEJDQjswQkM3IDBCQkU7CiswQkNDOzBCQ0M7MEJDNiAwQkQ3OzBCQ0M7MEJDNiAwQkQ3OworMEM0ODswQzQ4OzBDNDYgMEM1NjswQzQ4OzBDNDYgMEM1NjsKKzBDQzA7MENDMDswQ0JGIDBDRDU7MENDMDswQ0JGIDBDRDU7CiswQ0M3OzBDQzc7MENDNiAwQ0Q1OzBDQzc7MENDNiAwQ0Q1OworMENDODswQ0M4OzBDQzYgMENENjswQ0M4OzBDQzYgMENENjsKKzBDQ0E7MENDQTswQ0M2IDBDQzI7MENDQTswQ0M2IDBDQzI7CiswQ0NCOzBDQ0I7MENDNiAwQ0MyIDBDRDU7MENDQjswQ0M2IDBDQzIgMENENTsKKzBENEE7MEQ0QTswRDQ2IDBEM0U7MEQ0QTswRDQ2IDBEM0U7CiswRDRCOzBENEI7MEQ0NyAwRDNFOzBENEI7MEQ0NyAwRDNFOworMEQ0QzswRDRDOzBENDYgMEQ1NzswRDRDOzBENDYgMEQ1NzsKKzBEREE7MEREQTswREQ5IDBEQ0E7MEREQTswREQ5IDBEQ0E7CiswRERDOzBEREM7MEREOSAwRENGOzBEREM7MEREOSAwRENGOworMERERDswREREOzBERDkgMERDRiAwRENBOzBEREQ7MEREOSAwRENGIDBEQ0E7CiswRERFOzBEREU7MEREOSAwRERGOzBEREU7MEREOSAwRERGOworMEUzMzswRTMzOzBFMzM7MEU0RCAwRTMyOzBFNEQgMEUzMjsKKzBFQjM7MEVCMzswRUIzOzBFQ0QgMEVCMjswRUNEIDBFQjI7CiswRURDOzBFREM7MEVEQzswRUFCIDBFOTk7MEVBQiAwRTk5OworMEVERDswRUREOzBFREQ7MEVBQiAwRUExOzBFQUIgMEVBMTsKKzBGMEM7MEYwQzswRjBDOzBGMEI7MEYwQjsKKzBGNDM7MEY0MiAwRkI3OzBGNDIgMEZCNzswRjQyIDBGQjc7MEY0MiAwRkI3OworMEY0RDswRjRDIDBGQjc7MEY0QyAwRkI3OzBGNEMgMEZCNzswRjRDIDBGQjc7CiswRjUyOzBGNTEgMEZCNzswRjUxIDBGQjc7MEY1MSAwRkI3OzBGNTEgMEZCNzsKKzBGNTc7MEY1NiAwRkI3OzBGNTYgMEZCNzswRjU2IDBGQjc7MEY1NiAwRkI3OworMEY1QzswRjVCIDBGQjc7MEY1QiAwRkI3OzBGNUIgMEZCNzswRjVCIDBGQjc7CiswRjY5OzBGNDAgMEZCNTswRjQwIDBGQjU7MEY0MCAwRkI1OzBGNDAgMEZCNTsKKzBGNzM7MEY3MSAwRjcyOzBGNzEgMEY3MjswRjcxIDBGNzI7MEY3MSAwRjcyOworMEY3NTswRjcxIDBGNzQ7MEY3MSAwRjc0OzBGNzEgMEY3NDswRjcxIDBGNzQ7CiswRjc2OzBGQjIgMEY4MDswRkIyIDBGODA7MEZCMiAwRjgwOzBGQjIgMEY4MDsKKzBGNzc7MEY3NzswRjc3OzBGQjIgMEY3MSAwRjgwOzBGQjIgMEY3MSAwRjgwOworMEY3ODswRkIzIDBGODA7MEZCMyAwRjgwOzBGQjMgMEY4MDswRkIzIDBGODA7CiswRjc5OzBGNzk7MEY3OTswRkIzIDBGNzEgMEY4MDswRkIzIDBGNzEgMEY4MDsKKzBGODE7MEY3MSAwRjgwOzBGNzEgMEY4MDswRjcxIDBGODA7MEY3MSAwRjgwOworMEY5MzswRjkyIDBGQjc7MEY5MiAwRkI3OzBGOTIgMEZCNzswRjkyIDBGQjc7CiswRjlEOzBGOUMgMEZCNzswRjlDIDBGQjc7MEY5QyAwRkI3OzBGOUMgMEZCNzsKKzBGQTI7MEZBMSAwRkI3OzBGQTEgMEZCNzswRkExIDBGQjc7MEZBMSAwRkI3OworMEZBNzswRkE2IDBGQjc7MEZBNiAwRkI3OzBGQTYgMEZCNzswRkE2IDBGQjc7CiswRkFDOzBGQUIgMEZCNzswRkFCIDBGQjc7MEZBQiAwRkI3OzBGQUIgMEZCNzsKKzBGQjk7MEY5MCAwRkI1OzBGOTAgMEZCNTswRjkwIDBGQjU7MEY5MCAwRkI1OworMTAyNjsxMDI2OzEwMjUgMTAyRTsxMDI2OzEwMjUgMTAyRTsKKzEwRkM7MTBGQzsxMEZDOzEwREM7MTBEQzsKKzFEMkM7MUQyQzsxRDJDOzAwNDE7MDA0MTsKKzFEMkQ7MUQyRDsxRDJEOzAwQzY7MDBDNjsKKzFEMkU7MUQyRTsxRDJFOzAwNDI7MDA0MjsKKzFEMzA7MUQzMDsxRDMwOzAwNDQ7MDA0NDsKKzFEMzE7MUQzMTsxRDMxOzAwNDU7MDA0NTsKKzFEMzI7MUQzMjsxRDMyOzAxOEU7MDE4RTsKKzFEMzM7MUQzMzsxRDMzOzAwNDc7MDA0NzsKKzFEMzQ7MUQzNDsxRDM0OzAwNDg7MDA0ODsKKzFEMzU7MUQzNTsxRDM1OzAwNDk7MDA0OTsKKzFEMzY7MUQzNjsxRDM2OzAwNEE7MDA0QTsKKzFEMzc7MUQzNzsxRDM3OzAwNEI7MDA0QjsKKzFEMzg7MUQzODsxRDM4OzAwNEM7MDA0QzsKKzFEMzk7MUQzOTsxRDM5OzAwNEQ7MDA0RDsKKzFEM0E7MUQzQTsxRDNBOzAwNEU7MDA0RTsKKzFEM0M7MUQzQzsxRDNDOzAwNEY7MDA0RjsKKzFEM0Q7MUQzRDsxRDNEOzAyMjI7MDIyMjsKKzFEM0U7MUQzRTsxRDNFOzAwNTA7MDA1MDsKKzFEM0Y7MUQzRjsxRDNGOzAwNTI7MDA1MjsKKzFENDA7MUQ0MDsxRDQwOzAwNTQ7MDA1NDsKKzFENDE7MUQ0MTsxRDQxOzAwNTU7MDA1NTsKKzFENDI7MUQ0MjsxRDQyOzAwNTc7MDA1NzsKKzFENDM7MUQ0MzsxRDQzOzAwNjE7MDA2MTsKKzFENDQ7MUQ0NDsxRDQ0OzAyNTA7MDI1MDsKKzFENDU7MUQ0NTsxRDQ1OzAyNTE7MDI1MTsKKzFENDY7MUQ0NjsxRDQ2OzFEMDI7MUQwMjsKKzFENDc7MUQ0NzsxRDQ3OzAwNjI7MDA2MjsKKzFENDg7MUQ0ODsxRDQ4OzAwNjQ7MDA2NDsKKzFENDk7MUQ0OTsxRDQ5OzAwNjU7MDA2NTsKKzFENEE7MUQ0QTsxRDRBOzAyNTk7MDI1OTsKKzFENEI7MUQ0QjsxRDRCOzAyNUI7MDI1QjsKKzFENEM7MUQ0QzsxRDRDOzAyNUM7MDI1QzsKKzFENEQ7MUQ0RDsxRDREOzAwNjc7MDA2NzsKKzFENEY7MUQ0RjsxRDRGOzAwNkI7MDA2QjsKKzFENTA7MUQ1MDsxRDUwOzAwNkQ7MDA2RDsKKzFENTE7MUQ1MTsxRDUxOzAxNEI7MDE0QjsKKzFENTI7MUQ1MjsxRDUyOzAwNkY7MDA2RjsKKzFENTM7MUQ1MzsxRDUzOzAyNTQ7MDI1NDsKKzFENTQ7MUQ1NDsxRDU0OzFEMTY7MUQxNjsKKzFENTU7MUQ1NTsxRDU1OzFEMTc7MUQxNzsKKzFENTY7MUQ1NjsxRDU2OzAwNzA7MDA3MDsKKzFENTc7MUQ1NzsxRDU3OzAwNzQ7MDA3NDsKKzFENTg7MUQ1ODsxRDU4OzAwNzU7MDA3NTsKKzFENTk7MUQ1OTsxRDU5OzFEMUQ7MUQxRDsKKzFENUE7MUQ1QTsxRDVBOzAyNkY7MDI2RjsKKzFENUI7MUQ1QjsxRDVCOzAwNzY7MDA3NjsKKzFENUM7MUQ1QzsxRDVDOzFEMjU7MUQyNTsKKzFENUQ7MUQ1RDsxRDVEOzAzQjI7MDNCMjsKKzFENUU7MUQ1RTsxRDVFOzAzQjM7MDNCMzsKKzFENUY7MUQ1RjsxRDVGOzAzQjQ7MDNCNDsKKzFENjA7MUQ2MDsxRDYwOzAzQzY7MDNDNjsKKzFENjE7MUQ2MTsxRDYxOzAzQzc7MDNDNzsKKzFENjI7MUQ2MjsxRDYyOzAwNjk7MDA2OTsKKzFENjM7MUQ2MzsxRDYzOzAwNzI7MDA3MjsKKzFENjQ7MUQ2NDsxRDY0OzAwNzU7MDA3NTsKKzFENjU7MUQ2NTsxRDY1OzAwNzY7MDA3NjsKKzFENjY7MUQ2NjsxRDY2OzAzQjI7MDNCMjsKKzFENjc7MUQ2NzsxRDY3OzAzQjM7MDNCMzsKKzFENjg7MUQ2ODsxRDY4OzAzQzE7MDNDMTsKKzFENjk7MUQ2OTsxRDY5OzAzQzY7MDNDNjsKKzFENkE7MUQ2QTsxRDZBOzAzQzc7MDNDNzsKKzFENzg7MUQ3ODsxRDc4OzA0M0Q7MDQzRDsKKzFEOUI7MUQ5QjsxRDlCOzAyNTI7MDI1MjsKKzFEOUM7MUQ5QzsxRDlDOzAwNjM7MDA2MzsKKzFEOUQ7MUQ5RDsxRDlEOzAyNTU7MDI1NTsKKzFEOUU7MUQ5RTsxRDlFOzAwRjA7MDBGMDsKKzFEOUY7MUQ5RjsxRDlGOzAyNUM7MDI1QzsKKzFEQTA7MURBMDsxREEwOzAwNjY7MDA2NjsKKzFEQTE7MURBMTsxREExOzAyNUY7MDI1RjsKKzFEQTI7MURBMjsxREEyOzAyNjE7MDI2MTsKKzFEQTM7MURBMzsxREEzOzAyNjU7MDI2NTsKKzFEQTQ7MURBNDsxREE0OzAyNjg7MDI2ODsKKzFEQTU7MURBNTsxREE1OzAyNjk7MDI2OTsKKzFEQTY7MURBNjsxREE2OzAyNkE7MDI2QTsKKzFEQTc7MURBNzsxREE3OzFEN0I7MUQ3QjsKKzFEQTg7MURBODsxREE4OzAyOUQ7MDI5RDsKKzFEQTk7MURBOTsxREE5OzAyNkQ7MDI2RDsKKzFEQUE7MURBQTsxREFBOzFEODU7MUQ4NTsKKzFEQUI7MURBQjsxREFCOzAyOUY7MDI5RjsKKzFEQUM7MURBQzsxREFDOzAyNzE7MDI3MTsKKzFEQUQ7MURBRDsxREFEOzAyNzA7MDI3MDsKKzFEQUU7MURBRTsxREFFOzAyNzI7MDI3MjsKKzFEQUY7MURBRjsxREFGOzAyNzM7MDI3MzsKKzFEQjA7MURCMDsxREIwOzAyNzQ7MDI3NDsKKzFEQjE7MURCMTsxREIxOzAyNzU7MDI3NTsKKzFEQjI7MURCMjsxREIyOzAyNzg7MDI3ODsKKzFEQjM7MURCMzsxREIzOzAyODI7MDI4MjsKKzFEQjQ7MURCNDsxREI0OzAyODM7MDI4MzsKKzFEQjU7MURCNTsxREI1OzAxQUI7MDFBQjsKKzFEQjY7MURCNjsxREI2OzAyODk7MDI4OTsKKzFEQjc7MURCNzsxREI3OzAyOEE7MDI4QTsKKzFEQjg7MURCODsxREI4OzFEMUM7MUQxQzsKKzFEQjk7MURCOTsxREI5OzAyOEI7MDI4QjsKKzFEQkE7MURCQTsxREJBOzAyOEM7MDI4QzsKKzFEQkI7MURCQjsxREJCOzAwN0E7MDA3QTsKKzFEQkM7MURCQzsxREJDOzAyOTA7MDI5MDsKKzFEQkQ7MURCRDsxREJEOzAyOTE7MDI5MTsKKzFEQkU7MURCRTsxREJFOzAyOTI7MDI5MjsKKzFEQkY7MURCRjsxREJGOzAzQjg7MDNCODsKKzFFMDA7MUUwMDswMDQxIDAzMjU7MUUwMDswMDQxIDAzMjU7CisxRTAxOzFFMDE7MDA2MSAwMzI1OzFFMDE7MDA2MSAwMzI1OworMUUwMjsxRTAyOzAwNDIgMDMwNzsxRTAyOzAwNDIgMDMwNzsKKzFFMDM7MUUwMzswMDYyIDAzMDc7MUUwMzswMDYyIDAzMDc7CisxRTA0OzFFMDQ7MDA0MiAwMzIzOzFFMDQ7MDA0MiAwMzIzOworMUUwNTsxRTA1OzAwNjIgMDMyMzsxRTA1OzAwNjIgMDMyMzsKKzFFMDY7MUUwNjswMDQyIDAzMzE7MUUwNjswMDQyIDAzMzE7CisxRTA3OzFFMDc7MDA2MiAwMzMxOzFFMDc7MDA2MiAwMzMxOworMUUwODsxRTA4OzAwNDMgMDMyNyAwMzAxOzFFMDg7MDA0MyAwMzI3IDAzMDE7CisxRTA5OzFFMDk7MDA2MyAwMzI3IDAzMDE7MUUwOTswMDYzIDAzMjcgMDMwMTsKKzFFMEE7MUUwQTswMDQ0IDAzMDc7MUUwQTswMDQ0IDAzMDc7CisxRTBCOzFFMEI7MDA2NCAwMzA3OzFFMEI7MDA2NCAwMzA3OworMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsKKzFFMEQ7MUUwRDswMDY0IDAzMjM7MUUwRDswMDY0IDAzMjM7CisxRTBFOzFFMEU7MDA0NCAwMzMxOzFFMEU7MDA0NCAwMzMxOworMUUwRjsxRTBGOzAwNjQgMDMzMTsxRTBGOzAwNjQgMDMzMTsKKzFFMTA7MUUxMDswMDQ0IDAzMjc7MUUxMDswMDQ0IDAzMjc7CisxRTExOzFFMTE7MDA2NCAwMzI3OzFFMTE7MDA2NCAwMzI3OworMUUxMjsxRTEyOzAwNDQgMDMyRDsxRTEyOzAwNDQgMDMyRDsKKzFFMTM7MUUxMzswMDY0IDAzMkQ7MUUxMzswMDY0IDAzMkQ7CisxRTE0OzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzFFMTU7MUUxNTswMDY1IDAzMDQgMDMwMDsxRTE1OzAwNjUgMDMwNCAwMzAwOworMUUxNjsxRTE2OzAwNDUgMDMwNCAwMzAxOzFFMTY7MDA0NSAwMzA0IDAzMDE7CisxRTE3OzFFMTc7MDA2NSAwMzA0IDAzMDE7MUUxNzswMDY1IDAzMDQgMDMwMTsKKzFFMTg7MUUxODswMDQ1IDAzMkQ7MUUxODswMDQ1IDAzMkQ7CisxRTE5OzFFMTk7MDA2NSAwMzJEOzFFMTk7MDA2NSAwMzJEOworMUUxQTsxRTFBOzAwNDUgMDMzMDsxRTFBOzAwNDUgMDMzMDsKKzFFMUI7MUUxQjswMDY1IDAzMzA7MUUxQjswMDY1IDAzMzA7CisxRTFDOzFFMUM7MDA0NSAwMzI3IDAzMDY7MUUxQzswMDQ1IDAzMjcgMDMwNjsKKzFFMUQ7MUUxRDswMDY1IDAzMjcgMDMwNjsxRTFEOzAwNjUgMDMyNyAwMzA2OworMUUxRTsxRTFFOzAwNDYgMDMwNzsxRTFFOzAwNDYgMDMwNzsKKzFFMUY7MUUxRjswMDY2IDAzMDc7MUUxRjswMDY2IDAzMDc7CisxRTIwOzFFMjA7MDA0NyAwMzA0OzFFMjA7MDA0NyAwMzA0OworMUUyMTsxRTIxOzAwNjcgMDMwNDsxRTIxOzAwNjcgMDMwNDsKKzFFMjI7MUUyMjswMDQ4IDAzMDc7MUUyMjswMDQ4IDAzMDc7CisxRTIzOzFFMjM7MDA2OCAwMzA3OzFFMjM7MDA2OCAwMzA3OworMUUyNDsxRTI0OzAwNDggMDMyMzsxRTI0OzAwNDggMDMyMzsKKzFFMjU7MUUyNTswMDY4IDAzMjM7MUUyNTswMDY4IDAzMjM7CisxRTI2OzFFMjY7MDA0OCAwMzA4OzFFMjY7MDA0OCAwMzA4OworMUUyNzsxRTI3OzAwNjggMDMwODsxRTI3OzAwNjggMDMwODsKKzFFMjg7MUUyODswMDQ4IDAzMjc7MUUyODswMDQ4IDAzMjc7CisxRTI5OzFFMjk7MDA2OCAwMzI3OzFFMjk7MDA2OCAwMzI3OworMUUyQTsxRTJBOzAwNDggMDMyRTsxRTJBOzAwNDggMDMyRTsKKzFFMkI7MUUyQjswMDY4IDAzMkU7MUUyQjswMDY4IDAzMkU7CisxRTJDOzFFMkM7MDA0OSAwMzMwOzFFMkM7MDA0OSAwMzMwOworMUUyRDsxRTJEOzAwNjkgMDMzMDsxRTJEOzAwNjkgMDMzMDsKKzFFMkU7MUUyRTswMDQ5IDAzMDggMDMwMTsxRTJFOzAwNDkgMDMwOCAwMzAxOworMUUyRjsxRTJGOzAwNjkgMDMwOCAwMzAxOzFFMkY7MDA2OSAwMzA4IDAzMDE7CisxRTMwOzFFMzA7MDA0QiAwMzAxOzFFMzA7MDA0QiAwMzAxOworMUUzMTsxRTMxOzAwNkIgMDMwMTsxRTMxOzAwNkIgMDMwMTsKKzFFMzI7MUUzMjswMDRCIDAzMjM7MUUzMjswMDRCIDAzMjM7CisxRTMzOzFFMzM7MDA2QiAwMzIzOzFFMzM7MDA2QiAwMzIzOworMUUzNDsxRTM0OzAwNEIgMDMzMTsxRTM0OzAwNEIgMDMzMTsKKzFFMzU7MUUzNTswMDZCIDAzMzE7MUUzNTswMDZCIDAzMzE7CisxRTM2OzFFMzY7MDA0QyAwMzIzOzFFMzY7MDA0QyAwMzIzOworMUUzNzsxRTM3OzAwNkMgMDMyMzsxRTM3OzAwNkMgMDMyMzsKKzFFMzg7MUUzODswMDRDIDAzMjMgMDMwNDsxRTM4OzAwNEMgMDMyMyAwMzA0OworMUUzOTsxRTM5OzAwNkMgMDMyMyAwMzA0OzFFMzk7MDA2QyAwMzIzIDAzMDQ7CisxRTNBOzFFM0E7MDA0QyAwMzMxOzFFM0E7MDA0QyAwMzMxOworMUUzQjsxRTNCOzAwNkMgMDMzMTsxRTNCOzAwNkMgMDMzMTsKKzFFM0M7MUUzQzswMDRDIDAzMkQ7MUUzQzswMDRDIDAzMkQ7CisxRTNEOzFFM0Q7MDA2QyAwMzJEOzFFM0Q7MDA2QyAwMzJEOworMUUzRTsxRTNFOzAwNEQgMDMwMTsxRTNFOzAwNEQgMDMwMTsKKzFFM0Y7MUUzRjswMDZEIDAzMDE7MUUzRjswMDZEIDAzMDE7CisxRTQwOzFFNDA7MDA0RCAwMzA3OzFFNDA7MDA0RCAwMzA3OworMUU0MTsxRTQxOzAwNkQgMDMwNzsxRTQxOzAwNkQgMDMwNzsKKzFFNDI7MUU0MjswMDREIDAzMjM7MUU0MjswMDREIDAzMjM7CisxRTQzOzFFNDM7MDA2RCAwMzIzOzFFNDM7MDA2RCAwMzIzOworMUU0NDsxRTQ0OzAwNEUgMDMwNzsxRTQ0OzAwNEUgMDMwNzsKKzFFNDU7MUU0NTswMDZFIDAzMDc7MUU0NTswMDZFIDAzMDc7CisxRTQ2OzFFNDY7MDA0RSAwMzIzOzFFNDY7MDA0RSAwMzIzOworMUU0NzsxRTQ3OzAwNkUgMDMyMzsxRTQ3OzAwNkUgMDMyMzsKKzFFNDg7MUU0ODswMDRFIDAzMzE7MUU0ODswMDRFIDAzMzE7CisxRTQ5OzFFNDk7MDA2RSAwMzMxOzFFNDk7MDA2RSAwMzMxOworMUU0QTsxRTRBOzAwNEUgMDMyRDsxRTRBOzAwNEUgMDMyRDsKKzFFNEI7MUU0QjswMDZFIDAzMkQ7MUU0QjswMDZFIDAzMkQ7CisxRTRDOzFFNEM7MDA0RiAwMzAzIDAzMDE7MUU0QzswMDRGIDAzMDMgMDMwMTsKKzFFNEQ7MUU0RDswMDZGIDAzMDMgMDMwMTsxRTREOzAwNkYgMDMwMyAwMzAxOworMUU0RTsxRTRFOzAwNEYgMDMwMyAwMzA4OzFFNEU7MDA0RiAwMzAzIDAzMDg7CisxRTRGOzFFNEY7MDA2RiAwMzAzIDAzMDg7MUU0RjswMDZGIDAzMDMgMDMwODsKKzFFNTA7MUU1MDswMDRGIDAzMDQgMDMwMDsxRTUwOzAwNEYgMDMwNCAwMzAwOworMUU1MTsxRTUxOzAwNkYgMDMwNCAwMzAwOzFFNTE7MDA2RiAwMzA0IDAzMDA7CisxRTUyOzFFNTI7MDA0RiAwMzA0IDAzMDE7MUU1MjswMDRGIDAzMDQgMDMwMTsKKzFFNTM7MUU1MzswMDZGIDAzMDQgMDMwMTsxRTUzOzAwNkYgMDMwNCAwMzAxOworMUU1NDsxRTU0OzAwNTAgMDMwMTsxRTU0OzAwNTAgMDMwMTsKKzFFNTU7MUU1NTswMDcwIDAzMDE7MUU1NTswMDcwIDAzMDE7CisxRTU2OzFFNTY7MDA1MCAwMzA3OzFFNTY7MDA1MCAwMzA3OworMUU1NzsxRTU3OzAwNzAgMDMwNzsxRTU3OzAwNzAgMDMwNzsKKzFFNTg7MUU1ODswMDUyIDAzMDc7MUU1ODswMDUyIDAzMDc7CisxRTU5OzFFNTk7MDA3MiAwMzA3OzFFNTk7MDA3MiAwMzA3OworMUU1QTsxRTVBOzAwNTIgMDMyMzsxRTVBOzAwNTIgMDMyMzsKKzFFNUI7MUU1QjswMDcyIDAzMjM7MUU1QjswMDcyIDAzMjM7CisxRTVDOzFFNUM7MDA1MiAwMzIzIDAzMDQ7MUU1QzswMDUyIDAzMjMgMDMwNDsKKzFFNUQ7MUU1RDswMDcyIDAzMjMgMDMwNDsxRTVEOzAwNzIgMDMyMyAwMzA0OworMUU1RTsxRTVFOzAwNTIgMDMzMTsxRTVFOzAwNTIgMDMzMTsKKzFFNUY7MUU1RjswMDcyIDAzMzE7MUU1RjswMDcyIDAzMzE7CisxRTYwOzFFNjA7MDA1MyAwMzA3OzFFNjA7MDA1MyAwMzA3OworMUU2MTsxRTYxOzAwNzMgMDMwNzsxRTYxOzAwNzMgMDMwNzsKKzFFNjI7MUU2MjswMDUzIDAzMjM7MUU2MjswMDUzIDAzMjM7CisxRTYzOzFFNjM7MDA3MyAwMzIzOzFFNjM7MDA3MyAwMzIzOworMUU2NDsxRTY0OzAwNTMgMDMwMSAwMzA3OzFFNjQ7MDA1MyAwMzAxIDAzMDc7CisxRTY1OzFFNjU7MDA3MyAwMzAxIDAzMDc7MUU2NTswMDczIDAzMDEgMDMwNzsKKzFFNjY7MUU2NjswMDUzIDAzMEMgMDMwNzsxRTY2OzAwNTMgMDMwQyAwMzA3OworMUU2NzsxRTY3OzAwNzMgMDMwQyAwMzA3OzFFNjc7MDA3MyAwMzBDIDAzMDc7CisxRTY4OzFFNjg7MDA1MyAwMzIzIDAzMDc7MUU2ODswMDUzIDAzMjMgMDMwNzsKKzFFNjk7MUU2OTswMDczIDAzMjMgMDMwNzsxRTY5OzAwNzMgMDMyMyAwMzA3OworMUU2QTsxRTZBOzAwNTQgMDMwNzsxRTZBOzAwNTQgMDMwNzsKKzFFNkI7MUU2QjswMDc0IDAzMDc7MUU2QjswMDc0IDAzMDc7CisxRTZDOzFFNkM7MDA1NCAwMzIzOzFFNkM7MDA1NCAwMzIzOworMUU2RDsxRTZEOzAwNzQgMDMyMzsxRTZEOzAwNzQgMDMyMzsKKzFFNkU7MUU2RTswMDU0IDAzMzE7MUU2RTswMDU0IDAzMzE7CisxRTZGOzFFNkY7MDA3NCAwMzMxOzFFNkY7MDA3NCAwMzMxOworMUU3MDsxRTcwOzAwNTQgMDMyRDsxRTcwOzAwNTQgMDMyRDsKKzFFNzE7MUU3MTswMDc0IDAzMkQ7MUU3MTswMDc0IDAzMkQ7CisxRTcyOzFFNzI7MDA1NSAwMzI0OzFFNzI7MDA1NSAwMzI0OworMUU3MzsxRTczOzAwNzUgMDMyNDsxRTczOzAwNzUgMDMyNDsKKzFFNzQ7MUU3NDswMDU1IDAzMzA7MUU3NDswMDU1IDAzMzA7CisxRTc1OzFFNzU7MDA3NSAwMzMwOzFFNzU7MDA3NSAwMzMwOworMUU3NjsxRTc2OzAwNTUgMDMyRDsxRTc2OzAwNTUgMDMyRDsKKzFFNzc7MUU3NzswMDc1IDAzMkQ7MUU3NzswMDc1IDAzMkQ7CisxRTc4OzFFNzg7MDA1NSAwMzAzIDAzMDE7MUU3ODswMDU1IDAzMDMgMDMwMTsKKzFFNzk7MUU3OTswMDc1IDAzMDMgMDMwMTsxRTc5OzAwNzUgMDMwMyAwMzAxOworMUU3QTsxRTdBOzAwNTUgMDMwNCAwMzA4OzFFN0E7MDA1NSAwMzA0IDAzMDg7CisxRTdCOzFFN0I7MDA3NSAwMzA0IDAzMDg7MUU3QjswMDc1IDAzMDQgMDMwODsKKzFFN0M7MUU3QzswMDU2IDAzMDM7MUU3QzswMDU2IDAzMDM7CisxRTdEOzFFN0Q7MDA3NiAwMzAzOzFFN0Q7MDA3NiAwMzAzOworMUU3RTsxRTdFOzAwNTYgMDMyMzsxRTdFOzAwNTYgMDMyMzsKKzFFN0Y7MUU3RjswMDc2IDAzMjM7MUU3RjswMDc2IDAzMjM7CisxRTgwOzFFODA7MDA1NyAwMzAwOzFFODA7MDA1NyAwMzAwOworMUU4MTsxRTgxOzAwNzcgMDMwMDsxRTgxOzAwNzcgMDMwMDsKKzFFODI7MUU4MjswMDU3IDAzMDE7MUU4MjswMDU3IDAzMDE7CisxRTgzOzFFODM7MDA3NyAwMzAxOzFFODM7MDA3NyAwMzAxOworMUU4NDsxRTg0OzAwNTcgMDMwODsxRTg0OzAwNTcgMDMwODsKKzFFODU7MUU4NTswMDc3IDAzMDg7MUU4NTswMDc3IDAzMDg7CisxRTg2OzFFODY7MDA1NyAwMzA3OzFFODY7MDA1NyAwMzA3OworMUU4NzsxRTg3OzAwNzcgMDMwNzsxRTg3OzAwNzcgMDMwNzsKKzFFODg7MUU4ODswMDU3IDAzMjM7MUU4ODswMDU3IDAzMjM7CisxRTg5OzFFODk7MDA3NyAwMzIzOzFFODk7MDA3NyAwMzIzOworMUU4QTsxRThBOzAwNTggMDMwNzsxRThBOzAwNTggMDMwNzsKKzFFOEI7MUU4QjswMDc4IDAzMDc7MUU4QjswMDc4IDAzMDc7CisxRThDOzFFOEM7MDA1OCAwMzA4OzFFOEM7MDA1OCAwMzA4OworMUU4RDsxRThEOzAwNzggMDMwODsxRThEOzAwNzggMDMwODsKKzFFOEU7MUU4RTswMDU5IDAzMDc7MUU4RTswMDU5IDAzMDc7CisxRThGOzFFOEY7MDA3OSAwMzA3OzFFOEY7MDA3OSAwMzA3OworMUU5MDsxRTkwOzAwNUEgMDMwMjsxRTkwOzAwNUEgMDMwMjsKKzFFOTE7MUU5MTswMDdBIDAzMDI7MUU5MTswMDdBIDAzMDI7CisxRTkyOzFFOTI7MDA1QSAwMzIzOzFFOTI7MDA1QSAwMzIzOworMUU5MzsxRTkzOzAwN0EgMDMyMzsxRTkzOzAwN0EgMDMyMzsKKzFFOTQ7MUU5NDswMDVBIDAzMzE7MUU5NDswMDVBIDAzMzE7CisxRTk1OzFFOTU7MDA3QSAwMzMxOzFFOTU7MDA3QSAwMzMxOworMUU5NjsxRTk2OzAwNjggMDMzMTsxRTk2OzAwNjggMDMzMTsKKzFFOTc7MUU5NzswMDc0IDAzMDg7MUU5NzswMDc0IDAzMDg7CisxRTk4OzFFOTg7MDA3NyAwMzBBOzFFOTg7MDA3NyAwMzBBOworMUU5OTsxRTk5OzAwNzkgMDMwQTsxRTk5OzAwNzkgMDMwQTsKKzFFOUE7MUU5QTsxRTlBOzAwNjEgMDJCRTswMDYxIDAyQkU7CisxRTlCOzFFOUI7MDE3RiAwMzA3OzFFNjE7MDA3MyAwMzA3OworMUVBMDsxRUEwOzAwNDEgMDMyMzsxRUEwOzAwNDEgMDMyMzsKKzFFQTE7MUVBMTswMDYxIDAzMjM7MUVBMTswMDYxIDAzMjM7CisxRUEyOzFFQTI7MDA0MSAwMzA5OzFFQTI7MDA0MSAwMzA5OworMUVBMzsxRUEzOzAwNjEgMDMwOTsxRUEzOzAwNjEgMDMwOTsKKzFFQTQ7MUVBNDswMDQxIDAzMDIgMDMwMTsxRUE0OzAwNDEgMDMwMiAwMzAxOworMUVBNTsxRUE1OzAwNjEgMDMwMiAwMzAxOzFFQTU7MDA2MSAwMzAyIDAzMDE7CisxRUE2OzFFQTY7MDA0MSAwMzAyIDAzMDA7MUVBNjswMDQxIDAzMDIgMDMwMDsKKzFFQTc7MUVBNzswMDYxIDAzMDIgMDMwMDsxRUE3OzAwNjEgMDMwMiAwMzAwOworMUVBODsxRUE4OzAwNDEgMDMwMiAwMzA5OzFFQTg7MDA0MSAwMzAyIDAzMDk7CisxRUE5OzFFQTk7MDA2MSAwMzAyIDAzMDk7MUVBOTswMDYxIDAzMDIgMDMwOTsKKzFFQUE7MUVBQTswMDQxIDAzMDIgMDMwMzsxRUFBOzAwNDEgMDMwMiAwMzAzOworMUVBQjsxRUFCOzAwNjEgMDMwMiAwMzAzOzFFQUI7MDA2MSAwMzAyIDAzMDM7CisxRUFDOzFFQUM7MDA0MSAwMzIzIDAzMDI7MUVBQzswMDQxIDAzMjMgMDMwMjsKKzFFQUQ7MUVBRDswMDYxIDAzMjMgMDMwMjsxRUFEOzAwNjEgMDMyMyAwMzAyOworMUVBRTsxRUFFOzAwNDEgMDMwNiAwMzAxOzFFQUU7MDA0MSAwMzA2IDAzMDE7CisxRUFGOzFFQUY7MDA2MSAwMzA2IDAzMDE7MUVBRjswMDYxIDAzMDYgMDMwMTsKKzFFQjA7MUVCMDswMDQxIDAzMDYgMDMwMDsxRUIwOzAwNDEgMDMwNiAwMzAwOworMUVCMTsxRUIxOzAwNjEgMDMwNiAwMzAwOzFFQjE7MDA2MSAwMzA2IDAzMDA7CisxRUIyOzFFQjI7MDA0MSAwMzA2IDAzMDk7MUVCMjswMDQxIDAzMDYgMDMwOTsKKzFFQjM7MUVCMzswMDYxIDAzMDYgMDMwOTsxRUIzOzAwNjEgMDMwNiAwMzA5OworMUVCNDsxRUI0OzAwNDEgMDMwNiAwMzAzOzFFQjQ7MDA0MSAwMzA2IDAzMDM7CisxRUI1OzFFQjU7MDA2MSAwMzA2IDAzMDM7MUVCNTswMDYxIDAzMDYgMDMwMzsKKzFFQjY7MUVCNjswMDQxIDAzMjMgMDMwNjsxRUI2OzAwNDEgMDMyMyAwMzA2OworMUVCNzsxRUI3OzAwNjEgMDMyMyAwMzA2OzFFQjc7MDA2MSAwMzIzIDAzMDY7CisxRUI4OzFFQjg7MDA0NSAwMzIzOzFFQjg7MDA0NSAwMzIzOworMUVCOTsxRUI5OzAwNjUgMDMyMzsxRUI5OzAwNjUgMDMyMzsKKzFFQkE7MUVCQTswMDQ1IDAzMDk7MUVCQTswMDQ1IDAzMDk7CisxRUJCOzFFQkI7MDA2NSAwMzA5OzFFQkI7MDA2NSAwMzA5OworMUVCQzsxRUJDOzAwNDUgMDMwMzsxRUJDOzAwNDUgMDMwMzsKKzFFQkQ7MUVCRDswMDY1IDAzMDM7MUVCRDswMDY1IDAzMDM7CisxRUJFOzFFQkU7MDA0NSAwMzAyIDAzMDE7MUVCRTswMDQ1IDAzMDIgMDMwMTsKKzFFQkY7MUVCRjswMDY1IDAzMDIgMDMwMTsxRUJGOzAwNjUgMDMwMiAwMzAxOworMUVDMDsxRUMwOzAwNDUgMDMwMiAwMzAwOzFFQzA7MDA0NSAwMzAyIDAzMDA7CisxRUMxOzFFQzE7MDA2NSAwMzAyIDAzMDA7MUVDMTswMDY1IDAzMDIgMDMwMDsKKzFFQzI7MUVDMjswMDQ1IDAzMDIgMDMwOTsxRUMyOzAwNDUgMDMwMiAwMzA5OworMUVDMzsxRUMzOzAwNjUgMDMwMiAwMzA5OzFFQzM7MDA2NSAwMzAyIDAzMDk7CisxRUM0OzFFQzQ7MDA0NSAwMzAyIDAzMDM7MUVDNDswMDQ1IDAzMDIgMDMwMzsKKzFFQzU7MUVDNTswMDY1IDAzMDIgMDMwMzsxRUM1OzAwNjUgMDMwMiAwMzAzOworMUVDNjsxRUM2OzAwNDUgMDMyMyAwMzAyOzFFQzY7MDA0NSAwMzIzIDAzMDI7CisxRUM3OzFFQzc7MDA2NSAwMzIzIDAzMDI7MUVDNzswMDY1IDAzMjMgMDMwMjsKKzFFQzg7MUVDODswMDQ5IDAzMDk7MUVDODswMDQ5IDAzMDk7CisxRUM5OzFFQzk7MDA2OSAwMzA5OzFFQzk7MDA2OSAwMzA5OworMUVDQTsxRUNBOzAwNDkgMDMyMzsxRUNBOzAwNDkgMDMyMzsKKzFFQ0I7MUVDQjswMDY5IDAzMjM7MUVDQjswMDY5IDAzMjM7CisxRUNDOzFFQ0M7MDA0RiAwMzIzOzFFQ0M7MDA0RiAwMzIzOworMUVDRDsxRUNEOzAwNkYgMDMyMzsxRUNEOzAwNkYgMDMyMzsKKzFFQ0U7MUVDRTswMDRGIDAzMDk7MUVDRTswMDRGIDAzMDk7CisxRUNGOzFFQ0Y7MDA2RiAwMzA5OzFFQ0Y7MDA2RiAwMzA5OworMUVEMDsxRUQwOzAwNEYgMDMwMiAwMzAxOzFFRDA7MDA0RiAwMzAyIDAzMDE7CisxRUQxOzFFRDE7MDA2RiAwMzAyIDAzMDE7MUVEMTswMDZGIDAzMDIgMDMwMTsKKzFFRDI7MUVEMjswMDRGIDAzMDIgMDMwMDsxRUQyOzAwNEYgMDMwMiAwMzAwOworMUVEMzsxRUQzOzAwNkYgMDMwMiAwMzAwOzFFRDM7MDA2RiAwMzAyIDAzMDA7CisxRUQ0OzFFRDQ7MDA0RiAwMzAyIDAzMDk7MUVENDswMDRGIDAzMDIgMDMwOTsKKzFFRDU7MUVENTswMDZGIDAzMDIgMDMwOTsxRUQ1OzAwNkYgMDMwMiAwMzA5OworMUVENjsxRUQ2OzAwNEYgMDMwMiAwMzAzOzFFRDY7MDA0RiAwMzAyIDAzMDM7CisxRUQ3OzFFRDc7MDA2RiAwMzAyIDAzMDM7MUVENzswMDZGIDAzMDIgMDMwMzsKKzFFRDg7MUVEODswMDRGIDAzMjMgMDMwMjsxRUQ4OzAwNEYgMDMyMyAwMzAyOworMUVEOTsxRUQ5OzAwNkYgMDMyMyAwMzAyOzFFRDk7MDA2RiAwMzIzIDAzMDI7CisxRURBOzFFREE7MDA0RiAwMzFCIDAzMDE7MUVEQTswMDRGIDAzMUIgMDMwMTsKKzFFREI7MUVEQjswMDZGIDAzMUIgMDMwMTsxRURCOzAwNkYgMDMxQiAwMzAxOworMUVEQzsxRURDOzAwNEYgMDMxQiAwMzAwOzFFREM7MDA0RiAwMzFCIDAzMDA7CisxRUREOzFFREQ7MDA2RiAwMzFCIDAzMDA7MUVERDswMDZGIDAzMUIgMDMwMDsKKzFFREU7MUVERTswMDRGIDAzMUIgMDMwOTsxRURFOzAwNEYgMDMxQiAwMzA5OworMUVERjsxRURGOzAwNkYgMDMxQiAwMzA5OzFFREY7MDA2RiAwMzFCIDAzMDk7CisxRUUwOzFFRTA7MDA0RiAwMzFCIDAzMDM7MUVFMDswMDRGIDAzMUIgMDMwMzsKKzFFRTE7MUVFMTswMDZGIDAzMUIgMDMwMzsxRUUxOzAwNkYgMDMxQiAwMzAzOworMUVFMjsxRUUyOzAwNEYgMDMxQiAwMzIzOzFFRTI7MDA0RiAwMzFCIDAzMjM7CisxRUUzOzFFRTM7MDA2RiAwMzFCIDAzMjM7MUVFMzswMDZGIDAzMUIgMDMyMzsKKzFFRTQ7MUVFNDswMDU1IDAzMjM7MUVFNDswMDU1IDAzMjM7CisxRUU1OzFFRTU7MDA3NSAwMzIzOzFFRTU7MDA3NSAwMzIzOworMUVFNjsxRUU2OzAwNTUgMDMwOTsxRUU2OzAwNTUgMDMwOTsKKzFFRTc7MUVFNzswMDc1IDAzMDk7MUVFNzswMDc1IDAzMDk7CisxRUU4OzFFRTg7MDA1NSAwMzFCIDAzMDE7MUVFODswMDU1IDAzMUIgMDMwMTsKKzFFRTk7MUVFOTswMDc1IDAzMUIgMDMwMTsxRUU5OzAwNzUgMDMxQiAwMzAxOworMUVFQTsxRUVBOzAwNTUgMDMxQiAwMzAwOzFFRUE7MDA1NSAwMzFCIDAzMDA7CisxRUVCOzFFRUI7MDA3NSAwMzFCIDAzMDA7MUVFQjswMDc1IDAzMUIgMDMwMDsKKzFFRUM7MUVFQzswMDU1IDAzMUIgMDMwOTsxRUVDOzAwNTUgMDMxQiAwMzA5OworMUVFRDsxRUVEOzAwNzUgMDMxQiAwMzA5OzFFRUQ7MDA3NSAwMzFCIDAzMDk7CisxRUVFOzFFRUU7MDA1NSAwMzFCIDAzMDM7MUVFRTswMDU1IDAzMUIgMDMwMzsKKzFFRUY7MUVFRjswMDc1IDAzMUIgMDMwMzsxRUVGOzAwNzUgMDMxQiAwMzAzOworMUVGMDsxRUYwOzAwNTUgMDMxQiAwMzIzOzFFRjA7MDA1NSAwMzFCIDAzMjM7CisxRUYxOzFFRjE7MDA3NSAwMzFCIDAzMjM7MUVGMTswMDc1IDAzMUIgMDMyMzsKKzFFRjI7MUVGMjswMDU5IDAzMDA7MUVGMjswMDU5IDAzMDA7CisxRUYzOzFFRjM7MDA3OSAwMzAwOzFFRjM7MDA3OSAwMzAwOworMUVGNDsxRUY0OzAwNTkgMDMyMzsxRUY0OzAwNTkgMDMyMzsKKzFFRjU7MUVGNTswMDc5IDAzMjM7MUVGNTswMDc5IDAzMjM7CisxRUY2OzFFRjY7MDA1OSAwMzA5OzFFRjY7MDA1OSAwMzA5OworMUVGNzsxRUY3OzAwNzkgMDMwOTsxRUY3OzAwNzkgMDMwOTsKKzFFRjg7MUVGODswMDU5IDAzMDM7MUVGODswMDU5IDAzMDM7CisxRUY5OzFFRjk7MDA3OSAwMzAzOzFFRjk7MDA3OSAwMzAzOworMUYwMDsxRjAwOzAzQjEgMDMxMzsxRjAwOzAzQjEgMDMxMzsKKzFGMDE7MUYwMTswM0IxIDAzMTQ7MUYwMTswM0IxIDAzMTQ7CisxRjAyOzFGMDI7MDNCMSAwMzEzIDAzMDA7MUYwMjswM0IxIDAzMTMgMDMwMDsKKzFGMDM7MUYwMzswM0IxIDAzMTQgMDMwMDsxRjAzOzAzQjEgMDMxNCAwMzAwOworMUYwNDsxRjA0OzAzQjEgMDMxMyAwMzAxOzFGMDQ7MDNCMSAwMzEzIDAzMDE7CisxRjA1OzFGMDU7MDNCMSAwMzE0IDAzMDE7MUYwNTswM0IxIDAzMTQgMDMwMTsKKzFGMDY7MUYwNjswM0IxIDAzMTMgMDM0MjsxRjA2OzAzQjEgMDMxMyAwMzQyOworMUYwNzsxRjA3OzAzQjEgMDMxNCAwMzQyOzFGMDc7MDNCMSAwMzE0IDAzNDI7CisxRjA4OzFGMDg7MDM5MSAwMzEzOzFGMDg7MDM5MSAwMzEzOworMUYwOTsxRjA5OzAzOTEgMDMxNDsxRjA5OzAzOTEgMDMxNDsKKzFGMEE7MUYwQTswMzkxIDAzMTMgMDMwMDsxRjBBOzAzOTEgMDMxMyAwMzAwOworMUYwQjsxRjBCOzAzOTEgMDMxNCAwMzAwOzFGMEI7MDM5MSAwMzE0IDAzMDA7CisxRjBDOzFGMEM7MDM5MSAwMzEzIDAzMDE7MUYwQzswMzkxIDAzMTMgMDMwMTsKKzFGMEQ7MUYwRDswMzkxIDAzMTQgMDMwMTsxRjBEOzAzOTEgMDMxNCAwMzAxOworMUYwRTsxRjBFOzAzOTEgMDMxMyAwMzQyOzFGMEU7MDM5MSAwMzEzIDAzNDI7CisxRjBGOzFGMEY7MDM5MSAwMzE0IDAzNDI7MUYwRjswMzkxIDAzMTQgMDM0MjsKKzFGMTA7MUYxMDswM0I1IDAzMTM7MUYxMDswM0I1IDAzMTM7CisxRjExOzFGMTE7MDNCNSAwMzE0OzFGMTE7MDNCNSAwMzE0OworMUYxMjsxRjEyOzAzQjUgMDMxMyAwMzAwOzFGMTI7MDNCNSAwMzEzIDAzMDA7CisxRjEzOzFGMTM7MDNCNSAwMzE0IDAzMDA7MUYxMzswM0I1IDAzMTQgMDMwMDsKKzFGMTQ7MUYxNDswM0I1IDAzMTMgMDMwMTsxRjE0OzAzQjUgMDMxMyAwMzAxOworMUYxNTsxRjE1OzAzQjUgMDMxNCAwMzAxOzFGMTU7MDNCNSAwMzE0IDAzMDE7CisxRjE4OzFGMTg7MDM5NSAwMzEzOzFGMTg7MDM5NSAwMzEzOworMUYxOTsxRjE5OzAzOTUgMDMxNDsxRjE5OzAzOTUgMDMxNDsKKzFGMUE7MUYxQTswMzk1IDAzMTMgMDMwMDsxRjFBOzAzOTUgMDMxMyAwMzAwOworMUYxQjsxRjFCOzAzOTUgMDMxNCAwMzAwOzFGMUI7MDM5NSAwMzE0IDAzMDA7CisxRjFDOzFGMUM7MDM5NSAwMzEzIDAzMDE7MUYxQzswMzk1IDAzMTMgMDMwMTsKKzFGMUQ7MUYxRDswMzk1IDAzMTQgMDMwMTsxRjFEOzAzOTUgMDMxNCAwMzAxOworMUYyMDsxRjIwOzAzQjcgMDMxMzsxRjIwOzAzQjcgMDMxMzsKKzFGMjE7MUYyMTswM0I3IDAzMTQ7MUYyMTswM0I3IDAzMTQ7CisxRjIyOzFGMjI7MDNCNyAwMzEzIDAzMDA7MUYyMjswM0I3IDAzMTMgMDMwMDsKKzFGMjM7MUYyMzswM0I3IDAzMTQgMDMwMDsxRjIzOzAzQjcgMDMxNCAwMzAwOworMUYyNDsxRjI0OzAzQjcgMDMxMyAwMzAxOzFGMjQ7MDNCNyAwMzEzIDAzMDE7CisxRjI1OzFGMjU7MDNCNyAwMzE0IDAzMDE7MUYyNTswM0I3IDAzMTQgMDMwMTsKKzFGMjY7MUYyNjswM0I3IDAzMTMgMDM0MjsxRjI2OzAzQjcgMDMxMyAwMzQyOworMUYyNzsxRjI3OzAzQjcgMDMxNCAwMzQyOzFGMjc7MDNCNyAwMzE0IDAzNDI7CisxRjI4OzFGMjg7MDM5NyAwMzEzOzFGMjg7MDM5NyAwMzEzOworMUYyOTsxRjI5OzAzOTcgMDMxNDsxRjI5OzAzOTcgMDMxNDsKKzFGMkE7MUYyQTswMzk3IDAzMTMgMDMwMDsxRjJBOzAzOTcgMDMxMyAwMzAwOworMUYyQjsxRjJCOzAzOTcgMDMxNCAwMzAwOzFGMkI7MDM5NyAwMzE0IDAzMDA7CisxRjJDOzFGMkM7MDM5NyAwMzEzIDAzMDE7MUYyQzswMzk3IDAzMTMgMDMwMTsKKzFGMkQ7MUYyRDswMzk3IDAzMTQgMDMwMTsxRjJEOzAzOTcgMDMxNCAwMzAxOworMUYyRTsxRjJFOzAzOTcgMDMxMyAwMzQyOzFGMkU7MDM5NyAwMzEzIDAzNDI7CisxRjJGOzFGMkY7MDM5NyAwMzE0IDAzNDI7MUYyRjswMzk3IDAzMTQgMDM0MjsKKzFGMzA7MUYzMDswM0I5IDAzMTM7MUYzMDswM0I5IDAzMTM7CisxRjMxOzFGMzE7MDNCOSAwMzE0OzFGMzE7MDNCOSAwMzE0OworMUYzMjsxRjMyOzAzQjkgMDMxMyAwMzAwOzFGMzI7MDNCOSAwMzEzIDAzMDA7CisxRjMzOzFGMzM7MDNCOSAwMzE0IDAzMDA7MUYzMzswM0I5IDAzMTQgMDMwMDsKKzFGMzQ7MUYzNDswM0I5IDAzMTMgMDMwMTsxRjM0OzAzQjkgMDMxMyAwMzAxOworMUYzNTsxRjM1OzAzQjkgMDMxNCAwMzAxOzFGMzU7MDNCOSAwMzE0IDAzMDE7CisxRjM2OzFGMzY7MDNCOSAwMzEzIDAzNDI7MUYzNjswM0I5IDAzMTMgMDM0MjsKKzFGMzc7MUYzNzswM0I5IDAzMTQgMDM0MjsxRjM3OzAzQjkgMDMxNCAwMzQyOworMUYzODsxRjM4OzAzOTkgMDMxMzsxRjM4OzAzOTkgMDMxMzsKKzFGMzk7MUYzOTswMzk5IDAzMTQ7MUYzOTswMzk5IDAzMTQ7CisxRjNBOzFGM0E7MDM5OSAwMzEzIDAzMDA7MUYzQTswMzk5IDAzMTMgMDMwMDsKKzFGM0I7MUYzQjswMzk5IDAzMTQgMDMwMDsxRjNCOzAzOTkgMDMxNCAwMzAwOworMUYzQzsxRjNDOzAzOTkgMDMxMyAwMzAxOzFGM0M7MDM5OSAwMzEzIDAzMDE7CisxRjNEOzFGM0Q7MDM5OSAwMzE0IDAzMDE7MUYzRDswMzk5IDAzMTQgMDMwMTsKKzFGM0U7MUYzRTswMzk5IDAzMTMgMDM0MjsxRjNFOzAzOTkgMDMxMyAwMzQyOworMUYzRjsxRjNGOzAzOTkgMDMxNCAwMzQyOzFGM0Y7MDM5OSAwMzE0IDAzNDI7CisxRjQwOzFGNDA7MDNCRiAwMzEzOzFGNDA7MDNCRiAwMzEzOworMUY0MTsxRjQxOzAzQkYgMDMxNDsxRjQxOzAzQkYgMDMxNDsKKzFGNDI7MUY0MjswM0JGIDAzMTMgMDMwMDsxRjQyOzAzQkYgMDMxMyAwMzAwOworMUY0MzsxRjQzOzAzQkYgMDMxNCAwMzAwOzFGNDM7MDNCRiAwMzE0IDAzMDA7CisxRjQ0OzFGNDQ7MDNCRiAwMzEzIDAzMDE7MUY0NDswM0JGIDAzMTMgMDMwMTsKKzFGNDU7MUY0NTswM0JGIDAzMTQgMDMwMTsxRjQ1OzAzQkYgMDMxNCAwMzAxOworMUY0ODsxRjQ4OzAzOUYgMDMxMzsxRjQ4OzAzOUYgMDMxMzsKKzFGNDk7MUY0OTswMzlGIDAzMTQ7MUY0OTswMzlGIDAzMTQ7CisxRjRBOzFGNEE7MDM5RiAwMzEzIDAzMDA7MUY0QTswMzlGIDAzMTMgMDMwMDsKKzFGNEI7MUY0QjswMzlGIDAzMTQgMDMwMDsxRjRCOzAzOUYgMDMxNCAwMzAwOworMUY0QzsxRjRDOzAzOUYgMDMxMyAwMzAxOzFGNEM7MDM5RiAwMzEzIDAzMDE7CisxRjREOzFGNEQ7MDM5RiAwMzE0IDAzMDE7MUY0RDswMzlGIDAzMTQgMDMwMTsKKzFGNTA7MUY1MDswM0M1IDAzMTM7MUY1MDswM0M1IDAzMTM7CisxRjUxOzFGNTE7MDNDNSAwMzE0OzFGNTE7MDNDNSAwMzE0OworMUY1MjsxRjUyOzAzQzUgMDMxMyAwMzAwOzFGNTI7MDNDNSAwMzEzIDAzMDA7CisxRjUzOzFGNTM7MDNDNSAwMzE0IDAzMDA7MUY1MzswM0M1IDAzMTQgMDMwMDsKKzFGNTQ7MUY1NDswM0M1IDAzMTMgMDMwMTsxRjU0OzAzQzUgMDMxMyAwMzAxOworMUY1NTsxRjU1OzAzQzUgMDMxNCAwMzAxOzFGNTU7MDNDNSAwMzE0IDAzMDE7CisxRjU2OzFGNTY7MDNDNSAwMzEzIDAzNDI7MUY1NjswM0M1IDAzMTMgMDM0MjsKKzFGNTc7MUY1NzswM0M1IDAzMTQgMDM0MjsxRjU3OzAzQzUgMDMxNCAwMzQyOworMUY1OTsxRjU5OzAzQTUgMDMxNDsxRjU5OzAzQTUgMDMxNDsKKzFGNUI7MUY1QjswM0E1IDAzMTQgMDMwMDsxRjVCOzAzQTUgMDMxNCAwMzAwOworMUY1RDsxRjVEOzAzQTUgMDMxNCAwMzAxOzFGNUQ7MDNBNSAwMzE0IDAzMDE7CisxRjVGOzFGNUY7MDNBNSAwMzE0IDAzNDI7MUY1RjswM0E1IDAzMTQgMDM0MjsKKzFGNjA7MUY2MDswM0M5IDAzMTM7MUY2MDswM0M5IDAzMTM7CisxRjYxOzFGNjE7MDNDOSAwMzE0OzFGNjE7MDNDOSAwMzE0OworMUY2MjsxRjYyOzAzQzkgMDMxMyAwMzAwOzFGNjI7MDNDOSAwMzEzIDAzMDA7CisxRjYzOzFGNjM7MDNDOSAwMzE0IDAzMDA7MUY2MzswM0M5IDAzMTQgMDMwMDsKKzFGNjQ7MUY2NDswM0M5IDAzMTMgMDMwMTsxRjY0OzAzQzkgMDMxMyAwMzAxOworMUY2NTsxRjY1OzAzQzkgMDMxNCAwMzAxOzFGNjU7MDNDOSAwMzE0IDAzMDE7CisxRjY2OzFGNjY7MDNDOSAwMzEzIDAzNDI7MUY2NjswM0M5IDAzMTMgMDM0MjsKKzFGNjc7MUY2NzswM0M5IDAzMTQgMDM0MjsxRjY3OzAzQzkgMDMxNCAwMzQyOworMUY2ODsxRjY4OzAzQTkgMDMxMzsxRjY4OzAzQTkgMDMxMzsKKzFGNjk7MUY2OTswM0E5IDAzMTQ7MUY2OTswM0E5IDAzMTQ7CisxRjZBOzFGNkE7MDNBOSAwMzEzIDAzMDA7MUY2QTswM0E5IDAzMTMgMDMwMDsKKzFGNkI7MUY2QjswM0E5IDAzMTQgMDMwMDsxRjZCOzAzQTkgMDMxNCAwMzAwOworMUY2QzsxRjZDOzAzQTkgMDMxMyAwMzAxOzFGNkM7MDNBOSAwMzEzIDAzMDE7CisxRjZEOzFGNkQ7MDNBOSAwMzE0IDAzMDE7MUY2RDswM0E5IDAzMTQgMDMwMTsKKzFGNkU7MUY2RTswM0E5IDAzMTMgMDM0MjsxRjZFOzAzQTkgMDMxMyAwMzQyOworMUY2RjsxRjZGOzAzQTkgMDMxNCAwMzQyOzFGNkY7MDNBOSAwMzE0IDAzNDI7CisxRjcwOzFGNzA7MDNCMSAwMzAwOzFGNzA7MDNCMSAwMzAwOworMUY3MTswM0FDOzAzQjEgMDMwMTswM0FDOzAzQjEgMDMwMTsKKzFGNzI7MUY3MjswM0I1IDAzMDA7MUY3MjswM0I1IDAzMDA7CisxRjczOzAzQUQ7MDNCNSAwMzAxOzAzQUQ7MDNCNSAwMzAxOworMUY3NDsxRjc0OzAzQjcgMDMwMDsxRjc0OzAzQjcgMDMwMDsKKzFGNzU7MDNBRTswM0I3IDAzMDE7MDNBRTswM0I3IDAzMDE7CisxRjc2OzFGNzY7MDNCOSAwMzAwOzFGNzY7MDNCOSAwMzAwOworMUY3NzswM0FGOzAzQjkgMDMwMTswM0FGOzAzQjkgMDMwMTsKKzFGNzg7MUY3ODswM0JGIDAzMDA7MUY3ODswM0JGIDAzMDA7CisxRjc5OzAzQ0M7MDNCRiAwMzAxOzAzQ0M7MDNCRiAwMzAxOworMUY3QTsxRjdBOzAzQzUgMDMwMDsxRjdBOzAzQzUgMDMwMDsKKzFGN0I7MDNDRDswM0M1IDAzMDE7MDNDRDswM0M1IDAzMDE7CisxRjdDOzFGN0M7MDNDOSAwMzAwOzFGN0M7MDNDOSAwMzAwOworMUY3RDswM0NFOzAzQzkgMDMwMTswM0NFOzAzQzkgMDMwMTsKKzFGODA7MUY4MDswM0IxIDAzMTMgMDM0NTsxRjgwOzAzQjEgMDMxMyAwMzQ1OworMUY4MTsxRjgxOzAzQjEgMDMxNCAwMzQ1OzFGODE7MDNCMSAwMzE0IDAzNDU7CisxRjgyOzFGODI7MDNCMSAwMzEzIDAzMDAgMDM0NTsxRjgyOzAzQjEgMDMxMyAwMzAwIDAzNDU7CisxRjgzOzFGODM7MDNCMSAwMzE0IDAzMDAgMDM0NTsxRjgzOzAzQjEgMDMxNCAwMzAwIDAzNDU7CisxRjg0OzFGODQ7MDNCMSAwMzEzIDAzMDEgMDM0NTsxRjg0OzAzQjEgMDMxMyAwMzAxIDAzNDU7CisxRjg1OzFGODU7MDNCMSAwMzE0IDAzMDEgMDM0NTsxRjg1OzAzQjEgMDMxNCAwMzAxIDAzNDU7CisxRjg2OzFGODY7MDNCMSAwMzEzIDAzNDIgMDM0NTsxRjg2OzAzQjEgMDMxMyAwMzQyIDAzNDU7CisxRjg3OzFGODc7MDNCMSAwMzE0IDAzNDIgMDM0NTsxRjg3OzAzQjEgMDMxNCAwMzQyIDAzNDU7CisxRjg4OzFGODg7MDM5MSAwMzEzIDAzNDU7MUY4ODswMzkxIDAzMTMgMDM0NTsKKzFGODk7MUY4OTswMzkxIDAzMTQgMDM0NTsxRjg5OzAzOTEgMDMxNCAwMzQ1OworMUY4QTsxRjhBOzAzOTEgMDMxMyAwMzAwIDAzNDU7MUY4QTswMzkxIDAzMTMgMDMwMCAwMzQ1OworMUY4QjsxRjhCOzAzOTEgMDMxNCAwMzAwIDAzNDU7MUY4QjswMzkxIDAzMTQgMDMwMCAwMzQ1OworMUY4QzsxRjhDOzAzOTEgMDMxMyAwMzAxIDAzNDU7MUY4QzswMzkxIDAzMTMgMDMwMSAwMzQ1OworMUY4RDsxRjhEOzAzOTEgMDMxNCAwMzAxIDAzNDU7MUY4RDswMzkxIDAzMTQgMDMwMSAwMzQ1OworMUY4RTsxRjhFOzAzOTEgMDMxMyAwMzQyIDAzNDU7MUY4RTswMzkxIDAzMTMgMDM0MiAwMzQ1OworMUY4RjsxRjhGOzAzOTEgMDMxNCAwMzQyIDAzNDU7MUY4RjswMzkxIDAzMTQgMDM0MiAwMzQ1OworMUY5MDsxRjkwOzAzQjcgMDMxMyAwMzQ1OzFGOTA7MDNCNyAwMzEzIDAzNDU7CisxRjkxOzFGOTE7MDNCNyAwMzE0IDAzNDU7MUY5MTswM0I3IDAzMTQgMDM0NTsKKzFGOTI7MUY5MjswM0I3IDAzMTMgMDMwMCAwMzQ1OzFGOTI7MDNCNyAwMzEzIDAzMDAgMDM0NTsKKzFGOTM7MUY5MzswM0I3IDAzMTQgMDMwMCAwMzQ1OzFGOTM7MDNCNyAwMzE0IDAzMDAgMDM0NTsKKzFGOTQ7MUY5NDswM0I3IDAzMTMgMDMwMSAwMzQ1OzFGOTQ7MDNCNyAwMzEzIDAzMDEgMDM0NTsKKzFGOTU7MUY5NTswM0I3IDAzMTQgMDMwMSAwMzQ1OzFGOTU7MDNCNyAwMzE0IDAzMDEgMDM0NTsKKzFGOTY7MUY5NjswM0I3IDAzMTMgMDM0MiAwMzQ1OzFGOTY7MDNCNyAwMzEzIDAzNDIgMDM0NTsKKzFGOTc7MUY5NzswM0I3IDAzMTQgMDM0MiAwMzQ1OzFGOTc7MDNCNyAwMzE0IDAzNDIgMDM0NTsKKzFGOTg7MUY5ODswMzk3IDAzMTMgMDM0NTsxRjk4OzAzOTcgMDMxMyAwMzQ1OworMUY5OTsxRjk5OzAzOTcgMDMxNCAwMzQ1OzFGOTk7MDM5NyAwMzE0IDAzNDU7CisxRjlBOzFGOUE7MDM5NyAwMzEzIDAzMDAgMDM0NTsxRjlBOzAzOTcgMDMxMyAwMzAwIDAzNDU7CisxRjlCOzFGOUI7MDM5NyAwMzE0IDAzMDAgMDM0NTsxRjlCOzAzOTcgMDMxNCAwMzAwIDAzNDU7CisxRjlDOzFGOUM7MDM5NyAwMzEzIDAzMDEgMDM0NTsxRjlDOzAzOTcgMDMxMyAwMzAxIDAzNDU7CisxRjlEOzFGOUQ7MDM5NyAwMzE0IDAzMDEgMDM0NTsxRjlEOzAzOTcgMDMxNCAwMzAxIDAzNDU7CisxRjlFOzFGOUU7MDM5NyAwMzEzIDAzNDIgMDM0NTsxRjlFOzAzOTcgMDMxMyAwMzQyIDAzNDU7CisxRjlGOzFGOUY7MDM5NyAwMzE0IDAzNDIgMDM0NTsxRjlGOzAzOTcgMDMxNCAwMzQyIDAzNDU7CisxRkEwOzFGQTA7MDNDOSAwMzEzIDAzNDU7MUZBMDswM0M5IDAzMTMgMDM0NTsKKzFGQTE7MUZBMTswM0M5IDAzMTQgMDM0NTsxRkExOzAzQzkgMDMxNCAwMzQ1OworMUZBMjsxRkEyOzAzQzkgMDMxMyAwMzAwIDAzNDU7MUZBMjswM0M5IDAzMTMgMDMwMCAwMzQ1OworMUZBMzsxRkEzOzAzQzkgMDMxNCAwMzAwIDAzNDU7MUZBMzswM0M5IDAzMTQgMDMwMCAwMzQ1OworMUZBNDsxRkE0OzAzQzkgMDMxMyAwMzAxIDAzNDU7MUZBNDswM0M5IDAzMTMgMDMwMSAwMzQ1OworMUZBNTsxRkE1OzAzQzkgMDMxNCAwMzAxIDAzNDU7MUZBNTswM0M5IDAzMTQgMDMwMSAwMzQ1OworMUZBNjsxRkE2OzAzQzkgMDMxMyAwMzQyIDAzNDU7MUZBNjswM0M5IDAzMTMgMDM0MiAwMzQ1OworMUZBNzsxRkE3OzAzQzkgMDMxNCAwMzQyIDAzNDU7MUZBNzswM0M5IDAzMTQgMDM0MiAwMzQ1OworMUZBODsxRkE4OzAzQTkgMDMxMyAwMzQ1OzFGQTg7MDNBOSAwMzEzIDAzNDU7CisxRkE5OzFGQTk7MDNBOSAwMzE0IDAzNDU7MUZBOTswM0E5IDAzMTQgMDM0NTsKKzFGQUE7MUZBQTswM0E5IDAzMTMgMDMwMCAwMzQ1OzFGQUE7MDNBOSAwMzEzIDAzMDAgMDM0NTsKKzFGQUI7MUZBQjswM0E5IDAzMTQgMDMwMCAwMzQ1OzFGQUI7MDNBOSAwMzE0IDAzMDAgMDM0NTsKKzFGQUM7MUZBQzswM0E5IDAzMTMgMDMwMSAwMzQ1OzFGQUM7MDNBOSAwMzEzIDAzMDEgMDM0NTsKKzFGQUQ7MUZBRDswM0E5IDAzMTQgMDMwMSAwMzQ1OzFGQUQ7MDNBOSAwMzE0IDAzMDEgMDM0NTsKKzFGQUU7MUZBRTswM0E5IDAzMTMgMDM0MiAwMzQ1OzFGQUU7MDNBOSAwMzEzIDAzNDIgMDM0NTsKKzFGQUY7MUZBRjswM0E5IDAzMTQgMDM0MiAwMzQ1OzFGQUY7MDNBOSAwMzE0IDAzNDIgMDM0NTsKKzFGQjA7MUZCMDswM0IxIDAzMDY7MUZCMDswM0IxIDAzMDY7CisxRkIxOzFGQjE7MDNCMSAwMzA0OzFGQjE7MDNCMSAwMzA0OworMUZCMjsxRkIyOzAzQjEgMDMwMCAwMzQ1OzFGQjI7MDNCMSAwMzAwIDAzNDU7CisxRkIzOzFGQjM7MDNCMSAwMzQ1OzFGQjM7MDNCMSAwMzQ1OworMUZCNDsxRkI0OzAzQjEgMDMwMSAwMzQ1OzFGQjQ7MDNCMSAwMzAxIDAzNDU7CisxRkI2OzFGQjY7MDNCMSAwMzQyOzFGQjY7MDNCMSAwMzQyOworMUZCNzsxRkI3OzAzQjEgMDM0MiAwMzQ1OzFGQjc7MDNCMSAwMzQyIDAzNDU7CisxRkI4OzFGQjg7MDM5MSAwMzA2OzFGQjg7MDM5MSAwMzA2OworMUZCOTsxRkI5OzAzOTEgMDMwNDsxRkI5OzAzOTEgMDMwNDsKKzFGQkE7MUZCQTswMzkxIDAzMDA7MUZCQTswMzkxIDAzMDA7CisxRkJCOzAzODY7MDM5MSAwMzAxOzAzODY7MDM5MSAwMzAxOworMUZCQzsxRkJDOzAzOTEgMDM0NTsxRkJDOzAzOTEgMDM0NTsKKzFGQkQ7MUZCRDsxRkJEOzAwMjAgMDMxMzswMDIwIDAzMTM7CisxRkJFOzAzQjk7MDNCOTswM0I5OzAzQjk7CisxRkJGOzFGQkY7MUZCRjswMDIwIDAzMTM7MDAyMCAwMzEzOworMUZDMDsxRkMwOzFGQzA7MDAyMCAwMzQyOzAwMjAgMDM0MjsKKzFGQzE7MUZDMTswMEE4IDAzNDI7MDAyMCAwMzA4IDAzNDI7MDAyMCAwMzA4IDAzNDI7CisxRkMyOzFGQzI7MDNCNyAwMzAwIDAzNDU7MUZDMjswM0I3IDAzMDAgMDM0NTsKKzFGQzM7MUZDMzswM0I3IDAzNDU7MUZDMzswM0I3IDAzNDU7CisxRkM0OzFGQzQ7MDNCNyAwMzAxIDAzNDU7MUZDNDswM0I3IDAzMDEgMDM0NTsKKzFGQzY7MUZDNjswM0I3IDAzNDI7MUZDNjswM0I3IDAzNDI7CisxRkM3OzFGQzc7MDNCNyAwMzQyIDAzNDU7MUZDNzswM0I3IDAzNDIgMDM0NTsKKzFGQzg7MUZDODswMzk1IDAzMDA7MUZDODswMzk1IDAzMDA7CisxRkM5OzAzODg7MDM5NSAwMzAxOzAzODg7MDM5NSAwMzAxOworMUZDQTsxRkNBOzAzOTcgMDMwMDsxRkNBOzAzOTcgMDMwMDsKKzFGQ0I7MDM4OTswMzk3IDAzMDE7MDM4OTswMzk3IDAzMDE7CisxRkNDOzFGQ0M7MDM5NyAwMzQ1OzFGQ0M7MDM5NyAwMzQ1OworMUZDRDsxRkNEOzFGQkYgMDMwMDswMDIwIDAzMTMgMDMwMDswMDIwIDAzMTMgMDMwMDsKKzFGQ0U7MUZDRTsxRkJGIDAzMDE7MDAyMCAwMzEzIDAzMDE7MDAyMCAwMzEzIDAzMDE7CisxRkNGOzFGQ0Y7MUZCRiAwMzQyOzAwMjAgMDMxMyAwMzQyOzAwMjAgMDMxMyAwMzQyOworMUZEMDsxRkQwOzAzQjkgMDMwNjsxRkQwOzAzQjkgMDMwNjsKKzFGRDE7MUZEMTswM0I5IDAzMDQ7MUZEMTswM0I5IDAzMDQ7CisxRkQyOzFGRDI7MDNCOSAwMzA4IDAzMDA7MUZEMjswM0I5IDAzMDggMDMwMDsKKzFGRDM7MDM5MDswM0I5IDAzMDggMDMwMTswMzkwOzAzQjkgMDMwOCAwMzAxOworMUZENjsxRkQ2OzAzQjkgMDM0MjsxRkQ2OzAzQjkgMDM0MjsKKzFGRDc7MUZENzswM0I5IDAzMDggMDM0MjsxRkQ3OzAzQjkgMDMwOCAwMzQyOworMUZEODsxRkQ4OzAzOTkgMDMwNjsxRkQ4OzAzOTkgMDMwNjsKKzFGRDk7MUZEOTswMzk5IDAzMDQ7MUZEOTswMzk5IDAzMDQ7CisxRkRBOzFGREE7MDM5OSAwMzAwOzFGREE7MDM5OSAwMzAwOworMUZEQjswMzhBOzAzOTkgMDMwMTswMzhBOzAzOTkgMDMwMTsKKzFGREQ7MUZERDsxRkZFIDAzMDA7MDAyMCAwMzE0IDAzMDA7MDAyMCAwMzE0IDAzMDA7CisxRkRFOzFGREU7MUZGRSAwMzAxOzAwMjAgMDMxNCAwMzAxOzAwMjAgMDMxNCAwMzAxOworMUZERjsxRkRGOzFGRkUgMDM0MjswMDIwIDAzMTQgMDM0MjswMDIwIDAzMTQgMDM0MjsKKzFGRTA7MUZFMDswM0M1IDAzMDY7MUZFMDswM0M1IDAzMDY7CisxRkUxOzFGRTE7MDNDNSAwMzA0OzFGRTE7MDNDNSAwMzA0OworMUZFMjsxRkUyOzAzQzUgMDMwOCAwMzAwOzFGRTI7MDNDNSAwMzA4IDAzMDA7CisxRkUzOzAzQjA7MDNDNSAwMzA4IDAzMDE7MDNCMDswM0M1IDAzMDggMDMwMTsKKzFGRTQ7MUZFNDswM0MxIDAzMTM7MUZFNDswM0MxIDAzMTM7CisxRkU1OzFGRTU7MDNDMSAwMzE0OzFGRTU7MDNDMSAwMzE0OworMUZFNjsxRkU2OzAzQzUgMDM0MjsxRkU2OzAzQzUgMDM0MjsKKzFGRTc7MUZFNzswM0M1IDAzMDggMDM0MjsxRkU3OzAzQzUgMDMwOCAwMzQyOworMUZFODsxRkU4OzAzQTUgMDMwNjsxRkU4OzAzQTUgMDMwNjsKKzFGRTk7MUZFOTswM0E1IDAzMDQ7MUZFOTswM0E1IDAzMDQ7CisxRkVBOzFGRUE7MDNBNSAwMzAwOzFGRUE7MDNBNSAwMzAwOworMUZFQjswMzhFOzAzQTUgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzFGRUM7MUZFQzswM0ExIDAzMTQ7MUZFQzswM0ExIDAzMTQ7CisxRkVEOzFGRUQ7MDBBOCAwMzAwOzAwMjAgMDMwOCAwMzAwOzAwMjAgMDMwOCAwMzAwOworMUZFRTswMzg1OzAwQTggMDMwMTswMDIwIDAzMDggMDMwMTswMDIwIDAzMDggMDMwMTsKKzFGRUY7MDA2MDswMDYwOzAwNjA7MDA2MDsKKzFGRjI7MUZGMjswM0M5IDAzMDAgMDM0NTsxRkYyOzAzQzkgMDMwMCAwMzQ1OworMUZGMzsxRkYzOzAzQzkgMDM0NTsxRkYzOzAzQzkgMDM0NTsKKzFGRjQ7MUZGNDswM0M5IDAzMDEgMDM0NTsxRkY0OzAzQzkgMDMwMSAwMzQ1OworMUZGNjsxRkY2OzAzQzkgMDM0MjsxRkY2OzAzQzkgMDM0MjsKKzFGRjc7MUZGNzswM0M5IDAzNDIgMDM0NTsxRkY3OzAzQzkgMDM0MiAwMzQ1OworMUZGODsxRkY4OzAzOUYgMDMwMDsxRkY4OzAzOUYgMDMwMDsKKzFGRjk7MDM4QzswMzlGIDAzMDE7MDM4QzswMzlGIDAzMDE7CisxRkZBOzFGRkE7MDNBOSAwMzAwOzFGRkE7MDNBOSAwMzAwOworMUZGQjswMzhGOzAzQTkgMDMwMTswMzhGOzAzQTkgMDMwMTsKKzFGRkM7MUZGQzswM0E5IDAzNDU7MUZGQzswM0E5IDAzNDU7CisxRkZEOzAwQjQ7MDBCNDswMDIwIDAzMDE7MDAyMCAwMzAxOworMUZGRTsxRkZFOzFGRkU7MDAyMCAwMzE0OzAwMjAgMDMxNDsKKzIwMDA7MjAwMjsyMDAyOzAwMjA7MDAyMDsKKzIwMDE7MjAwMzsyMDAzOzAwMjA7MDAyMDsKKzIwMDI7MjAwMjsyMDAyOzAwMjA7MDAyMDsKKzIwMDM7MjAwMzsyMDAzOzAwMjA7MDAyMDsKKzIwMDQ7MjAwNDsyMDA0OzAwMjA7MDAyMDsKKzIwMDU7MjAwNTsyMDA1OzAwMjA7MDAyMDsKKzIwMDY7MjAwNjsyMDA2OzAwMjA7MDAyMDsKKzIwMDc7MjAwNzsyMDA3OzAwMjA7MDAyMDsKKzIwMDg7MjAwODsyMDA4OzAwMjA7MDAyMDsKKzIwMDk7MjAwOTsyMDA5OzAwMjA7MDAyMDsKKzIwMEE7MjAwQTsyMDBBOzAwMjA7MDAyMDsKKzIwMTE7MjAxMTsyMDExOzIwMTA7MjAxMDsKKzIwMTc7MjAxNzsyMDE3OzAwMjAgMDMzMzswMDIwIDAzMzM7CisyMDI0OzIwMjQ7MjAyNDswMDJFOzAwMkU7CisyMDI1OzIwMjU7MjAyNTswMDJFIDAwMkU7MDAyRSAwMDJFOworMjAyNjsyMDI2OzIwMjY7MDAyRSAwMDJFIDAwMkU7MDAyRSAwMDJFIDAwMkU7CisyMDJGOzIwMkY7MjAyRjswMDIwOzAwMjA7CisyMDMzOzIwMzM7MjAzMzsyMDMyIDIwMzI7MjAzMiAyMDMyOworMjAzNDsyMDM0OzIwMzQ7MjAzMiAyMDMyIDIwMzI7MjAzMiAyMDMyIDIwMzI7CisyMDM2OzIwMzY7MjAzNjsyMDM1IDIwMzU7MjAzNSAyMDM1OworMjAzNzsyMDM3OzIwMzc7MjAzNSAyMDM1IDIwMzU7MjAzNSAyMDM1IDIwMzU7CisyMDNDOzIwM0M7MjAzQzswMDIxIDAwMjE7MDAyMSAwMDIxOworMjAzRTsyMDNFOzIwM0U7MDAyMCAwMzA1OzAwMjAgMDMwNTsKKzIwNDc7MjA0NzsyMDQ3OzAwM0YgMDAzRjswMDNGIDAwM0Y7CisyMDQ4OzIwNDg7MjA0ODswMDNGIDAwMjE7MDAzRiAwMDIxOworMjA0OTsyMDQ5OzIwNDk7MDAyMSAwMDNGOzAwMjEgMDAzRjsKKzIwNTc7MjA1NzsyMDU3OzIwMzIgMjAzMiAyMDMyIDIwMzI7MjAzMiAyMDMyIDIwMzIgMjAzMjsKKzIwNUY7MjA1RjsyMDVGOzAwMjA7MDAyMDsKKzIwNzA7MjA3MDsyMDcwOzAwMzA7MDAzMDsKKzIwNzE7MjA3MTsyMDcxOzAwNjk7MDA2OTsKKzIwNzQ7MjA3NDsyMDc0OzAwMzQ7MDAzNDsKKzIwNzU7MjA3NTsyMDc1OzAwMzU7MDAzNTsKKzIwNzY7MjA3NjsyMDc2OzAwMzY7MDAzNjsKKzIwNzc7MjA3NzsyMDc3OzAwMzc7MDAzNzsKKzIwNzg7MjA3ODsyMDc4OzAwMzg7MDAzODsKKzIwNzk7MjA3OTsyMDc5OzAwMzk7MDAzOTsKKzIwN0E7MjA3QTsyMDdBOzAwMkI7MDAyQjsKKzIwN0I7MjA3QjsyMDdCOzIyMTI7MjIxMjsKKzIwN0M7MjA3QzsyMDdDOzAwM0Q7MDAzRDsKKzIwN0Q7MjA3RDsyMDdEOzAwMjg7MDAyODsKKzIwN0U7MjA3RTsyMDdFOzAwMjk7MDAyOTsKKzIwN0Y7MjA3RjsyMDdGOzAwNkU7MDA2RTsKKzIwODA7MjA4MDsyMDgwOzAwMzA7MDAzMDsKKzIwODE7MjA4MTsyMDgxOzAwMzE7MDAzMTsKKzIwODI7MjA4MjsyMDgyOzAwMzI7MDAzMjsKKzIwODM7MjA4MzsyMDgzOzAwMzM7MDAzMzsKKzIwODQ7MjA4NDsyMDg0OzAwMzQ7MDAzNDsKKzIwODU7MjA4NTsyMDg1OzAwMzU7MDAzNTsKKzIwODY7MjA4NjsyMDg2OzAwMzY7MDAzNjsKKzIwODc7MjA4NzsyMDg3OzAwMzc7MDAzNzsKKzIwODg7MjA4ODsyMDg4OzAwMzg7MDAzODsKKzIwODk7MjA4OTsyMDg5OzAwMzk7MDAzOTsKKzIwOEE7MjA4QTsyMDhBOzAwMkI7MDAyQjsKKzIwOEI7MjA4QjsyMDhCOzIyMTI7MjIxMjsKKzIwOEM7MjA4QzsyMDhDOzAwM0Q7MDAzRDsKKzIwOEQ7MjA4RDsyMDhEOzAwMjg7MDAyODsKKzIwOEU7MjA4RTsyMDhFOzAwMjk7MDAyOTsKKzIwOTA7MjA5MDsyMDkwOzAwNjE7MDA2MTsKKzIwOTE7MjA5MTsyMDkxOzAwNjU7MDA2NTsKKzIwOTI7MjA5MjsyMDkyOzAwNkY7MDA2RjsKKzIwOTM7MjA5MzsyMDkzOzAwNzg7MDA3ODsKKzIwOTQ7MjA5NDsyMDk0OzAyNTk7MDI1OTsKKzIwQTg7MjBBODsyMEE4OzAwNTIgMDA3MzswMDUyIDAwNzM7CisyMTAwOzIxMDA7MjEwMDswMDYxIDAwMkYgMDA2MzswMDYxIDAwMkYgMDA2MzsKKzIxMDE7MjEwMTsyMTAxOzAwNjEgMDAyRiAwMDczOzAwNjEgMDAyRiAwMDczOworMjEwMjsyMTAyOzIxMDI7MDA0MzswMDQzOworMjEwMzsyMTAzOzIxMDM7MDBCMCAwMDQzOzAwQjAgMDA0MzsKKzIxMDU7MjEwNTsyMTA1OzAwNjMgMDAyRiAwMDZGOzAwNjMgMDAyRiAwMDZGOworMjEwNjsyMTA2OzIxMDY7MDA2MyAwMDJGIDAwNzU7MDA2MyAwMDJGIDAwNzU7CisyMTA3OzIxMDc7MjEwNzswMTkwOzAxOTA7CisyMTA5OzIxMDk7MjEwOTswMEIwIDAwNDY7MDBCMCAwMDQ2OworMjEwQTsyMTBBOzIxMEE7MDA2NzswMDY3OworMjEwQjsyMTBCOzIxMEI7MDA0ODswMDQ4OworMjEwQzsyMTBDOzIxMEM7MDA0ODswMDQ4OworMjEwRDsyMTBEOzIxMEQ7MDA0ODswMDQ4OworMjEwRTsyMTBFOzIxMEU7MDA2ODswMDY4OworMjEwRjsyMTBGOzIxMEY7MDEyNzswMTI3OworMjExMDsyMTEwOzIxMTA7MDA0OTswMDQ5OworMjExMTsyMTExOzIxMTE7MDA0OTswMDQ5OworMjExMjsyMTEyOzIxMTI7MDA0QzswMDRDOworMjExMzsyMTEzOzIxMTM7MDA2QzswMDZDOworMjExNTsyMTE1OzIxMTU7MDA0RTswMDRFOworMjExNjsyMTE2OzIxMTY7MDA0RSAwMDZGOzAwNEUgMDA2RjsKKzIxMTk7MjExOTsyMTE5OzAwNTA7MDA1MDsKKzIxMUE7MjExQTsyMTFBOzAwNTE7MDA1MTsKKzIxMUI7MjExQjsyMTFCOzAwNTI7MDA1MjsKKzIxMUM7MjExQzsyMTFDOzAwNTI7MDA1MjsKKzIxMUQ7MjExRDsyMTFEOzAwNTI7MDA1MjsKKzIxMjA7MjEyMDsyMTIwOzAwNTMgMDA0RDswMDUzIDAwNEQ7CisyMTIxOzIxMjE7MjEyMTswMDU0IDAwNDUgMDA0QzswMDU0IDAwNDUgMDA0QzsKKzIxMjI7MjEyMjsyMTIyOzAwNTQgMDA0RDswMDU0IDAwNEQ7CisyMTI0OzIxMjQ7MjEyNDswMDVBOzAwNUE7CisyMTI2OzAzQTk7MDNBOTswM0E5OzAzQTk7CisyMTI4OzIxMjg7MjEyODswMDVBOzAwNUE7CisyMTJBOzAwNEI7MDA0QjswMDRCOzAwNEI7CisyMTJCOzAwQzU7MDA0MSAwMzBBOzAwQzU7MDA0MSAwMzBBOworMjEyQzsyMTJDOzIxMkM7MDA0MjswMDQyOworMjEyRDsyMTJEOzIxMkQ7MDA0MzswMDQzOworMjEyRjsyMTJGOzIxMkY7MDA2NTswMDY1OworMjEzMDsyMTMwOzIxMzA7MDA0NTswMDQ1OworMjEzMTsyMTMxOzIxMzE7MDA0NjswMDQ2OworMjEzMzsyMTMzOzIxMzM7MDA0RDswMDREOworMjEzNDsyMTM0OzIxMzQ7MDA2RjswMDZGOworMjEzNTsyMTM1OzIxMzU7MDVEMDswNUQwOworMjEzNjsyMTM2OzIxMzY7MDVEMTswNUQxOworMjEzNzsyMTM3OzIxMzc7MDVEMjswNUQyOworMjEzODsyMTM4OzIxMzg7MDVEMzswNUQzOworMjEzOTsyMTM5OzIxMzk7MDA2OTswMDY5OworMjEzQjsyMTNCOzIxM0I7MDA0NiAwMDQxIDAwNTg7MDA0NiAwMDQxIDAwNTg7CisyMTNDOzIxM0M7MjEzQzswM0MwOzAzQzA7CisyMTNEOzIxM0Q7MjEzRDswM0IzOzAzQjM7CisyMTNFOzIxM0U7MjEzRTswMzkzOzAzOTM7CisyMTNGOzIxM0Y7MjEzRjswM0EwOzAzQTA7CisyMTQwOzIxNDA7MjE0MDsyMjExOzIyMTE7CisyMTQ1OzIxNDU7MjE0NTswMDQ0OzAwNDQ7CisyMTQ2OzIxNDY7MjE0NjswMDY0OzAwNjQ7CisyMTQ3OzIxNDc7MjE0NzswMDY1OzAwNjU7CisyMTQ4OzIxNDg7MjE0ODswMDY5OzAwNjk7CisyMTQ5OzIxNDk7MjE0OTswMDZBOzAwNkE7CisyMTUzOzIxNTM7MjE1MzswMDMxIDIwNDQgMDAzMzswMDMxIDIwNDQgMDAzMzsKKzIxNTQ7MjE1NDsyMTU0OzAwMzIgMjA0NCAwMDMzOzAwMzIgMjA0NCAwMDMzOworMjE1NTsyMTU1OzIxNTU7MDAzMSAyMDQ0IDAwMzU7MDAzMSAyMDQ0IDAwMzU7CisyMTU2OzIxNTY7MjE1NjswMDMyIDIwNDQgMDAzNTswMDMyIDIwNDQgMDAzNTsKKzIxNTc7MjE1NzsyMTU3OzAwMzMgMjA0NCAwMDM1OzAwMzMgMjA0NCAwMDM1OworMjE1ODsyMTU4OzIxNTg7MDAzNCAyMDQ0IDAwMzU7MDAzNCAyMDQ0IDAwMzU7CisyMTU5OzIxNTk7MjE1OTswMDMxIDIwNDQgMDAzNjswMDMxIDIwNDQgMDAzNjsKKzIxNUE7MjE1QTsyMTVBOzAwMzUgMjA0NCAwMDM2OzAwMzUgMjA0NCAwMDM2OworMjE1QjsyMTVCOzIxNUI7MDAzMSAyMDQ0IDAwMzg7MDAzMSAyMDQ0IDAwMzg7CisyMTVDOzIxNUM7MjE1QzswMDMzIDIwNDQgMDAzODswMDMzIDIwNDQgMDAzODsKKzIxNUQ7MjE1RDsyMTVEOzAwMzUgMjA0NCAwMDM4OzAwMzUgMjA0NCAwMDM4OworMjE1RTsyMTVFOzIxNUU7MDAzNyAyMDQ0IDAwMzg7MDAzNyAyMDQ0IDAwMzg7CisyMTVGOzIxNUY7MjE1RjswMDMxIDIwNDQ7MDAzMSAyMDQ0OworMjE2MDsyMTYwOzIxNjA7MDA0OTswMDQ5OworMjE2MTsyMTYxOzIxNjE7MDA0OSAwMDQ5OzAwNDkgMDA0OTsKKzIxNjI7MjE2MjsyMTYyOzAwNDkgMDA0OSAwMDQ5OzAwNDkgMDA0OSAwMDQ5OworMjE2MzsyMTYzOzIxNjM7MDA0OSAwMDU2OzAwNDkgMDA1NjsKKzIxNjQ7MjE2NDsyMTY0OzAwNTY7MDA1NjsKKzIxNjU7MjE2NTsyMTY1OzAwNTYgMDA0OTswMDU2IDAwNDk7CisyMTY2OzIxNjY7MjE2NjswMDU2IDAwNDkgMDA0OTswMDU2IDAwNDkgMDA0OTsKKzIxNjc7MjE2NzsyMTY3OzAwNTYgMDA0OSAwMDQ5IDAwNDk7MDA1NiAwMDQ5IDAwNDkgMDA0OTsKKzIxNjg7MjE2ODsyMTY4OzAwNDkgMDA1ODswMDQ5IDAwNTg7CisyMTY5OzIxNjk7MjE2OTswMDU4OzAwNTg7CisyMTZBOzIxNkE7MjE2QTswMDU4IDAwNDk7MDA1OCAwMDQ5OworMjE2QjsyMTZCOzIxNkI7MDA1OCAwMDQ5IDAwNDk7MDA1OCAwMDQ5IDAwNDk7CisyMTZDOzIxNkM7MjE2QzswMDRDOzAwNEM7CisyMTZEOzIxNkQ7MjE2RDswMDQzOzAwNDM7CisyMTZFOzIxNkU7MjE2RTswMDQ0OzAwNDQ7CisyMTZGOzIxNkY7MjE2RjswMDREOzAwNEQ7CisyMTcwOzIxNzA7MjE3MDswMDY5OzAwNjk7CisyMTcxOzIxNzE7MjE3MTswMDY5IDAwNjk7MDA2OSAwMDY5OworMjE3MjsyMTcyOzIxNzI7MDA2OSAwMDY5IDAwNjk7MDA2OSAwMDY5IDAwNjk7CisyMTczOzIxNzM7MjE3MzswMDY5IDAwNzY7MDA2OSAwMDc2OworMjE3NDsyMTc0OzIxNzQ7MDA3NjswMDc2OworMjE3NTsyMTc1OzIxNzU7MDA3NiAwMDY5OzAwNzYgMDA2OTsKKzIxNzY7MjE3NjsyMTc2OzAwNzYgMDA2OSAwMDY5OzAwNzYgMDA2OSAwMDY5OworMjE3NzsyMTc3OzIxNzc7MDA3NiAwMDY5IDAwNjkgMDA2OTswMDc2IDAwNjkgMDA2OSAwMDY5OworMjE3ODsyMTc4OzIxNzg7MDA2OSAwMDc4OzAwNjkgMDA3ODsKKzIxNzk7MjE3OTsyMTc5OzAwNzg7MDA3ODsKKzIxN0E7MjE3QTsyMTdBOzAwNzggMDA2OTswMDc4IDAwNjk7CisyMTdCOzIxN0I7MjE3QjswMDc4IDAwNjkgMDA2OTswMDc4IDAwNjkgMDA2OTsKKzIxN0M7MjE3QzsyMTdDOzAwNkM7MDA2QzsKKzIxN0Q7MjE3RDsyMTdEOzAwNjM7MDA2MzsKKzIxN0U7MjE3RTsyMTdFOzAwNjQ7MDA2NDsKKzIxN0Y7MjE3RjsyMTdGOzAwNkQ7MDA2RDsKKzIxOUE7MjE5QTsyMTkwIDAzMzg7MjE5QTsyMTkwIDAzMzg7CisyMTlCOzIxOUI7MjE5MiAwMzM4OzIxOUI7MjE5MiAwMzM4OworMjFBRTsyMUFFOzIxOTQgMDMzODsyMUFFOzIxOTQgMDMzODsKKzIxQ0Q7MjFDRDsyMUQwIDAzMzg7MjFDRDsyMUQwIDAzMzg7CisyMUNFOzIxQ0U7MjFENCAwMzM4OzIxQ0U7MjFENCAwMzM4OworMjFDRjsyMUNGOzIxRDIgMDMzODsyMUNGOzIxRDIgMDMzODsKKzIyMDQ7MjIwNDsyMjAzIDAzMzg7MjIwNDsyMjAzIDAzMzg7CisyMjA5OzIyMDk7MjIwOCAwMzM4OzIyMDk7MjIwOCAwMzM4OworMjIwQzsyMjBDOzIyMEIgMDMzODsyMjBDOzIyMEIgMDMzODsKKzIyMjQ7MjIyNDsyMjIzIDAzMzg7MjIyNDsyMjIzIDAzMzg7CisyMjI2OzIyMjY7MjIyNSAwMzM4OzIyMjY7MjIyNSAwMzM4OworMjIyQzsyMjJDOzIyMkM7MjIyQiAyMjJCOzIyMkIgMjIyQjsKKzIyMkQ7MjIyRDsyMjJEOzIyMkIgMjIyQiAyMjJCOzIyMkIgMjIyQiAyMjJCOworMjIyRjsyMjJGOzIyMkY7MjIyRSAyMjJFOzIyMkUgMjIyRTsKKzIyMzA7MjIzMDsyMjMwOzIyMkUgMjIyRSAyMjJFOzIyMkUgMjIyRSAyMjJFOworMjI0MTsyMjQxOzIyM0MgMDMzODsyMjQxOzIyM0MgMDMzODsKKzIyNDQ7MjI0NDsyMjQzIDAzMzg7MjI0NDsyMjQzIDAzMzg7CisyMjQ3OzIyNDc7MjI0NSAwMzM4OzIyNDc7MjI0NSAwMzM4OworMjI0OTsyMjQ5OzIyNDggMDMzODsyMjQ5OzIyNDggMDMzODsKKzIyNjA7MjI2MDswMDNEIDAzMzg7MjI2MDswMDNEIDAzMzg7CisyMjYyOzIyNjI7MjI2MSAwMzM4OzIyNjI7MjI2MSAwMzM4OworMjI2RDsyMjZEOzIyNEQgMDMzODsyMjZEOzIyNEQgMDMzODsKKzIyNkU7MjI2RTswMDNDIDAzMzg7MjI2RTswMDNDIDAzMzg7CisyMjZGOzIyNkY7MDAzRSAwMzM4OzIyNkY7MDAzRSAwMzM4OworMjI3MDsyMjcwOzIyNjQgMDMzODsyMjcwOzIyNjQgMDMzODsKKzIyNzE7MjI3MTsyMjY1IDAzMzg7MjI3MTsyMjY1IDAzMzg7CisyMjc0OzIyNzQ7MjI3MiAwMzM4OzIyNzQ7MjI3MiAwMzM4OworMjI3NTsyMjc1OzIyNzMgMDMzODsyMjc1OzIyNzMgMDMzODsKKzIyNzg7MjI3ODsyMjc2IDAzMzg7MjI3ODsyMjc2IDAzMzg7CisyMjc5OzIyNzk7MjI3NyAwMzM4OzIyNzk7MjI3NyAwMzM4OworMjI4MDsyMjgwOzIyN0EgMDMzODsyMjgwOzIyN0EgMDMzODsKKzIyODE7MjI4MTsyMjdCIDAzMzg7MjI4MTsyMjdCIDAzMzg7CisyMjg0OzIyODQ7MjI4MiAwMzM4OzIyODQ7MjI4MiAwMzM4OworMjI4NTsyMjg1OzIyODMgMDMzODsyMjg1OzIyODMgMDMzODsKKzIyODg7MjI4ODsyMjg2IDAzMzg7MjI4ODsyMjg2IDAzMzg7CisyMjg5OzIyODk7MjI4NyAwMzM4OzIyODk7MjI4NyAwMzM4OworMjJBQzsyMkFDOzIyQTIgMDMzODsyMkFDOzIyQTIgMDMzODsKKzIyQUQ7MjJBRDsyMkE4IDAzMzg7MjJBRDsyMkE4IDAzMzg7CisyMkFFOzIyQUU7MjJBOSAwMzM4OzIyQUU7MjJBOSAwMzM4OworMjJBRjsyMkFGOzIyQUIgMDMzODsyMkFGOzIyQUIgMDMzODsKKzIyRTA7MjJFMDsyMjdDIDAzMzg7MjJFMDsyMjdDIDAzMzg7CisyMkUxOzIyRTE7MjI3RCAwMzM4OzIyRTE7MjI3RCAwMzM4OworMjJFMjsyMkUyOzIyOTEgMDMzODsyMkUyOzIyOTEgMDMzODsKKzIyRTM7MjJFMzsyMjkyIDAzMzg7MjJFMzsyMjkyIDAzMzg7CisyMkVBOzIyRUE7MjJCMiAwMzM4OzIyRUE7MjJCMiAwMzM4OworMjJFQjsyMkVCOzIyQjMgMDMzODsyMkVCOzIyQjMgMDMzODsKKzIyRUM7MjJFQzsyMkI0IDAzMzg7MjJFQzsyMkI0IDAzMzg7CisyMkVEOzIyRUQ7MjJCNSAwMzM4OzIyRUQ7MjJCNSAwMzM4OworMjMyOTszMDA4OzMwMDg7MzAwODszMDA4OworMjMyQTszMDA5OzMwMDk7MzAwOTszMDA5OworMjQ2MDsyNDYwOzI0NjA7MDAzMTswMDMxOworMjQ2MTsyNDYxOzI0NjE7MDAzMjswMDMyOworMjQ2MjsyNDYyOzI0NjI7MDAzMzswMDMzOworMjQ2MzsyNDYzOzI0NjM7MDAzNDswMDM0OworMjQ2NDsyNDY0OzI0NjQ7MDAzNTswMDM1OworMjQ2NTsyNDY1OzI0NjU7MDAzNjswMDM2OworMjQ2NjsyNDY2OzI0NjY7MDAzNzswMDM3OworMjQ2NzsyNDY3OzI0Njc7MDAzODswMDM4OworMjQ2ODsyNDY4OzI0Njg7MDAzOTswMDM5OworMjQ2OTsyNDY5OzI0Njk7MDAzMSAwMDMwOzAwMzEgMDAzMDsKKzI0NkE7MjQ2QTsyNDZBOzAwMzEgMDAzMTswMDMxIDAwMzE7CisyNDZCOzI0NkI7MjQ2QjswMDMxIDAwMzI7MDAzMSAwMDMyOworMjQ2QzsyNDZDOzI0NkM7MDAzMSAwMDMzOzAwMzEgMDAzMzsKKzI0NkQ7MjQ2RDsyNDZEOzAwMzEgMDAzNDswMDMxIDAwMzQ7CisyNDZFOzI0NkU7MjQ2RTswMDMxIDAwMzU7MDAzMSAwMDM1OworMjQ2RjsyNDZGOzI0NkY7MDAzMSAwMDM2OzAwMzEgMDAzNjsKKzI0NzA7MjQ3MDsyNDcwOzAwMzEgMDAzNzswMDMxIDAwMzc7CisyNDcxOzI0NzE7MjQ3MTswMDMxIDAwMzg7MDAzMSAwMDM4OworMjQ3MjsyNDcyOzI0NzI7MDAzMSAwMDM5OzAwMzEgMDAzOTsKKzI0NzM7MjQ3MzsyNDczOzAwMzIgMDAzMDswMDMyIDAwMzA7CisyNDc0OzI0NzQ7MjQ3NDswMDI4IDAwMzEgMDAyOTswMDI4IDAwMzEgMDAyOTsKKzI0NzU7MjQ3NTsyNDc1OzAwMjggMDAzMiAwMDI5OzAwMjggMDAzMiAwMDI5OworMjQ3NjsyNDc2OzI0NzY7MDAyOCAwMDMzIDAwMjk7MDAyOCAwMDMzIDAwMjk7CisyNDc3OzI0Nzc7MjQ3NzswMDI4IDAwMzQgMDAyOTswMDI4IDAwMzQgMDAyOTsKKzI0Nzg7MjQ3ODsyNDc4OzAwMjggMDAzNSAwMDI5OzAwMjggMDAzNSAwMDI5OworMjQ3OTsyNDc5OzI0Nzk7MDAyOCAwMDM2IDAwMjk7MDAyOCAwMDM2IDAwMjk7CisyNDdBOzI0N0E7MjQ3QTswMDI4IDAwMzcgMDAyOTswMDI4IDAwMzcgMDAyOTsKKzI0N0I7MjQ3QjsyNDdCOzAwMjggMDAzOCAwMDI5OzAwMjggMDAzOCAwMDI5OworMjQ3QzsyNDdDOzI0N0M7MDAyOCAwMDM5IDAwMjk7MDAyOCAwMDM5IDAwMjk7CisyNDdEOzI0N0Q7MjQ3RDswMDI4IDAwMzEgMDAzMCAwMDI5OzAwMjggMDAzMSAwMDMwIDAwMjk7CisyNDdFOzI0N0U7MjQ3RTswMDI4IDAwMzEgMDAzMSAwMDI5OzAwMjggMDAzMSAwMDMxIDAwMjk7CisyNDdGOzI0N0Y7MjQ3RjswMDI4IDAwMzEgMDAzMiAwMDI5OzAwMjggMDAzMSAwMDMyIDAwMjk7CisyNDgwOzI0ODA7MjQ4MDswMDI4IDAwMzEgMDAzMyAwMDI5OzAwMjggMDAzMSAwMDMzIDAwMjk7CisyNDgxOzI0ODE7MjQ4MTswMDI4IDAwMzEgMDAzNCAwMDI5OzAwMjggMDAzMSAwMDM0IDAwMjk7CisyNDgyOzI0ODI7MjQ4MjswMDI4IDAwMzEgMDAzNSAwMDI5OzAwMjggMDAzMSAwMDM1IDAwMjk7CisyNDgzOzI0ODM7MjQ4MzswMDI4IDAwMzEgMDAzNiAwMDI5OzAwMjggMDAzMSAwMDM2IDAwMjk7CisyNDg0OzI0ODQ7MjQ4NDswMDI4IDAwMzEgMDAzNyAwMDI5OzAwMjggMDAzMSAwMDM3IDAwMjk7CisyNDg1OzI0ODU7MjQ4NTswMDI4IDAwMzEgMDAzOCAwMDI5OzAwMjggMDAzMSAwMDM4IDAwMjk7CisyNDg2OzI0ODY7MjQ4NjswMDI4IDAwMzEgMDAzOSAwMDI5OzAwMjggMDAzMSAwMDM5IDAwMjk7CisyNDg3OzI0ODc7MjQ4NzswMDI4IDAwMzIgMDAzMCAwMDI5OzAwMjggMDAzMiAwMDMwIDAwMjk7CisyNDg4OzI0ODg7MjQ4ODswMDMxIDAwMkU7MDAzMSAwMDJFOworMjQ4OTsyNDg5OzI0ODk7MDAzMiAwMDJFOzAwMzIgMDAyRTsKKzI0OEE7MjQ4QTsyNDhBOzAwMzMgMDAyRTswMDMzIDAwMkU7CisyNDhCOzI0OEI7MjQ4QjswMDM0IDAwMkU7MDAzNCAwMDJFOworMjQ4QzsyNDhDOzI0OEM7MDAzNSAwMDJFOzAwMzUgMDAyRTsKKzI0OEQ7MjQ4RDsyNDhEOzAwMzYgMDAyRTswMDM2IDAwMkU7CisyNDhFOzI0OEU7MjQ4RTswMDM3IDAwMkU7MDAzNyAwMDJFOworMjQ4RjsyNDhGOzI0OEY7MDAzOCAwMDJFOzAwMzggMDAyRTsKKzI0OTA7MjQ5MDsyNDkwOzAwMzkgMDAyRTswMDM5IDAwMkU7CisyNDkxOzI0OTE7MjQ5MTswMDMxIDAwMzAgMDAyRTswMDMxIDAwMzAgMDAyRTsKKzI0OTI7MjQ5MjsyNDkyOzAwMzEgMDAzMSAwMDJFOzAwMzEgMDAzMSAwMDJFOworMjQ5MzsyNDkzOzI0OTM7MDAzMSAwMDMyIDAwMkU7MDAzMSAwMDMyIDAwMkU7CisyNDk0OzI0OTQ7MjQ5NDswMDMxIDAwMzMgMDAyRTswMDMxIDAwMzMgMDAyRTsKKzI0OTU7MjQ5NTsyNDk1OzAwMzEgMDAzNCAwMDJFOzAwMzEgMDAzNCAwMDJFOworMjQ5NjsyNDk2OzI0OTY7MDAzMSAwMDM1IDAwMkU7MDAzMSAwMDM1IDAwMkU7CisyNDk3OzI0OTc7MjQ5NzswMDMxIDAwMzYgMDAyRTswMDMxIDAwMzYgMDAyRTsKKzI0OTg7MjQ5ODsyNDk4OzAwMzEgMDAzNyAwMDJFOzAwMzEgMDAzNyAwMDJFOworMjQ5OTsyNDk5OzI0OTk7MDAzMSAwMDM4IDAwMkU7MDAzMSAwMDM4IDAwMkU7CisyNDlBOzI0OUE7MjQ5QTswMDMxIDAwMzkgMDAyRTswMDMxIDAwMzkgMDAyRTsKKzI0OUI7MjQ5QjsyNDlCOzAwMzIgMDAzMCAwMDJFOzAwMzIgMDAzMCAwMDJFOworMjQ5QzsyNDlDOzI0OUM7MDAyOCAwMDYxIDAwMjk7MDAyOCAwMDYxIDAwMjk7CisyNDlEOzI0OUQ7MjQ5RDswMDI4IDAwNjIgMDAyOTswMDI4IDAwNjIgMDAyOTsKKzI0OUU7MjQ5RTsyNDlFOzAwMjggMDA2MyAwMDI5OzAwMjggMDA2MyAwMDI5OworMjQ5RjsyNDlGOzI0OUY7MDAyOCAwMDY0IDAwMjk7MDAyOCAwMDY0IDAwMjk7CisyNEEwOzI0QTA7MjRBMDswMDI4IDAwNjUgMDAyOTswMDI4IDAwNjUgMDAyOTsKKzI0QTE7MjRBMTsyNEExOzAwMjggMDA2NiAwMDI5OzAwMjggMDA2NiAwMDI5OworMjRBMjsyNEEyOzI0QTI7MDAyOCAwMDY3IDAwMjk7MDAyOCAwMDY3IDAwMjk7CisyNEEzOzI0QTM7MjRBMzswMDI4IDAwNjggMDAyOTswMDI4IDAwNjggMDAyOTsKKzI0QTQ7MjRBNDsyNEE0OzAwMjggMDA2OSAwMDI5OzAwMjggMDA2OSAwMDI5OworMjRBNTsyNEE1OzI0QTU7MDAyOCAwMDZBIDAwMjk7MDAyOCAwMDZBIDAwMjk7CisyNEE2OzI0QTY7MjRBNjswMDI4IDAwNkIgMDAyOTswMDI4IDAwNkIgMDAyOTsKKzI0QTc7MjRBNzsyNEE3OzAwMjggMDA2QyAwMDI5OzAwMjggMDA2QyAwMDI5OworMjRBODsyNEE4OzI0QTg7MDAyOCAwMDZEIDAwMjk7MDAyOCAwMDZEIDAwMjk7CisyNEE5OzI0QTk7MjRBOTswMDI4IDAwNkUgMDAyOTswMDI4IDAwNkUgMDAyOTsKKzI0QUE7MjRBQTsyNEFBOzAwMjggMDA2RiAwMDI5OzAwMjggMDA2RiAwMDI5OworMjRBQjsyNEFCOzI0QUI7MDAyOCAwMDcwIDAwMjk7MDAyOCAwMDcwIDAwMjk7CisyNEFDOzI0QUM7MjRBQzswMDI4IDAwNzEgMDAyOTswMDI4IDAwNzEgMDAyOTsKKzI0QUQ7MjRBRDsyNEFEOzAwMjggMDA3MiAwMDI5OzAwMjggMDA3MiAwMDI5OworMjRBRTsyNEFFOzI0QUU7MDAyOCAwMDczIDAwMjk7MDAyOCAwMDczIDAwMjk7CisyNEFGOzI0QUY7MjRBRjswMDI4IDAwNzQgMDAyOTswMDI4IDAwNzQgMDAyOTsKKzI0QjA7MjRCMDsyNEIwOzAwMjggMDA3NSAwMDI5OzAwMjggMDA3NSAwMDI5OworMjRCMTsyNEIxOzI0QjE7MDAyOCAwMDc2IDAwMjk7MDAyOCAwMDc2IDAwMjk7CisyNEIyOzI0QjI7MjRCMjswMDI4IDAwNzcgMDAyOTswMDI4IDAwNzcgMDAyOTsKKzI0QjM7MjRCMzsyNEIzOzAwMjggMDA3OCAwMDI5OzAwMjggMDA3OCAwMDI5OworMjRCNDsyNEI0OzI0QjQ7MDAyOCAwMDc5IDAwMjk7MDAyOCAwMDc5IDAwMjk7CisyNEI1OzI0QjU7MjRCNTswMDI4IDAwN0EgMDAyOTswMDI4IDAwN0EgMDAyOTsKKzI0QjY7MjRCNjsyNEI2OzAwNDE7MDA0MTsKKzI0Qjc7MjRCNzsyNEI3OzAwNDI7MDA0MjsKKzI0Qjg7MjRCODsyNEI4OzAwNDM7MDA0MzsKKzI0Qjk7MjRCOTsyNEI5OzAwNDQ7MDA0NDsKKzI0QkE7MjRCQTsyNEJBOzAwNDU7MDA0NTsKKzI0QkI7MjRCQjsyNEJCOzAwNDY7MDA0NjsKKzI0QkM7MjRCQzsyNEJDOzAwNDc7MDA0NzsKKzI0QkQ7MjRCRDsyNEJEOzAwNDg7MDA0ODsKKzI0QkU7MjRCRTsyNEJFOzAwNDk7MDA0OTsKKzI0QkY7MjRCRjsyNEJGOzAwNEE7MDA0QTsKKzI0QzA7MjRDMDsyNEMwOzAwNEI7MDA0QjsKKzI0QzE7MjRDMTsyNEMxOzAwNEM7MDA0QzsKKzI0QzI7MjRDMjsyNEMyOzAwNEQ7MDA0RDsKKzI0QzM7MjRDMzsyNEMzOzAwNEU7MDA0RTsKKzI0QzQ7MjRDNDsyNEM0OzAwNEY7MDA0RjsKKzI0QzU7MjRDNTsyNEM1OzAwNTA7MDA1MDsKKzI0QzY7MjRDNjsyNEM2OzAwNTE7MDA1MTsKKzI0Qzc7MjRDNzsyNEM3OzAwNTI7MDA1MjsKKzI0Qzg7MjRDODsyNEM4OzAwNTM7MDA1MzsKKzI0Qzk7MjRDOTsyNEM5OzAwNTQ7MDA1NDsKKzI0Q0E7MjRDQTsyNENBOzAwNTU7MDA1NTsKKzI0Q0I7MjRDQjsyNENCOzAwNTY7MDA1NjsKKzI0Q0M7MjRDQzsyNENDOzAwNTc7MDA1NzsKKzI0Q0Q7MjRDRDsyNENEOzAwNTg7MDA1ODsKKzI0Q0U7MjRDRTsyNENFOzAwNTk7MDA1OTsKKzI0Q0Y7MjRDRjsyNENGOzAwNUE7MDA1QTsKKzI0RDA7MjREMDsyNEQwOzAwNjE7MDA2MTsKKzI0RDE7MjREMTsyNEQxOzAwNjI7MDA2MjsKKzI0RDI7MjREMjsyNEQyOzAwNjM7MDA2MzsKKzI0RDM7MjREMzsyNEQzOzAwNjQ7MDA2NDsKKzI0RDQ7MjRENDsyNEQ0OzAwNjU7MDA2NTsKKzI0RDU7MjRENTsyNEQ1OzAwNjY7MDA2NjsKKzI0RDY7MjRENjsyNEQ2OzAwNjc7MDA2NzsKKzI0RDc7MjRENzsyNEQ3OzAwNjg7MDA2ODsKKzI0RDg7MjREODsyNEQ4OzAwNjk7MDA2OTsKKzI0RDk7MjREOTsyNEQ5OzAwNkE7MDA2QTsKKzI0REE7MjREQTsyNERBOzAwNkI7MDA2QjsKKzI0REI7MjREQjsyNERCOzAwNkM7MDA2QzsKKzI0REM7MjREQzsyNERDOzAwNkQ7MDA2RDsKKzI0REQ7MjRERDsyNEREOzAwNkU7MDA2RTsKKzI0REU7MjRERTsyNERFOzAwNkY7MDA2RjsKKzI0REY7MjRERjsyNERGOzAwNzA7MDA3MDsKKzI0RTA7MjRFMDsyNEUwOzAwNzE7MDA3MTsKKzI0RTE7MjRFMTsyNEUxOzAwNzI7MDA3MjsKKzI0RTI7MjRFMjsyNEUyOzAwNzM7MDA3MzsKKzI0RTM7MjRFMzsyNEUzOzAwNzQ7MDA3NDsKKzI0RTQ7MjRFNDsyNEU0OzAwNzU7MDA3NTsKKzI0RTU7MjRFNTsyNEU1OzAwNzY7MDA3NjsKKzI0RTY7MjRFNjsyNEU2OzAwNzc7MDA3NzsKKzI0RTc7MjRFNzsyNEU3OzAwNzg7MDA3ODsKKzI0RTg7MjRFODsyNEU4OzAwNzk7MDA3OTsKKzI0RTk7MjRFOTsyNEU5OzAwN0E7MDA3QTsKKzI0RUE7MjRFQTsyNEVBOzAwMzA7MDAzMDsKKzJBMEM7MkEwQzsyQTBDOzIyMkIgMjIyQiAyMjJCIDIyMkI7MjIyQiAyMjJCIDIyMkIgMjIyQjsKKzJBNzQ7MkE3NDsyQTc0OzAwM0EgMDAzQSAwMDNEOzAwM0EgMDAzQSAwMDNEOworMkE3NTsyQTc1OzJBNzU7MDAzRCAwMDNEOzAwM0QgMDAzRDsKKzJBNzY7MkE3NjsyQTc2OzAwM0QgMDAzRCAwMDNEOzAwM0QgMDAzRCAwMDNEOworMkFEQzsyQUREIDAzMzg7MkFERCAwMzM4OzJBREQgMDMzODsyQUREIDAzMzg7CisyRDZGOzJENkY7MkQ2RjsyRDYxOzJENjE7CisyRTlGOzJFOUY7MkU5Rjs2QkNEOzZCQ0Q7CisyRUYzOzJFRjM7MkVGMzs5RjlGOzlGOUY7CisyRjAwOzJGMDA7MkYwMDs0RTAwOzRFMDA7CisyRjAxOzJGMDE7MkYwMTs0RTI4OzRFMjg7CisyRjAyOzJGMDI7MkYwMjs0RTM2OzRFMzY7CisyRjAzOzJGMDM7MkYwMzs0RTNGOzRFM0Y7CisyRjA0OzJGMDQ7MkYwNDs0RTU5OzRFNTk7CisyRjA1OzJGMDU7MkYwNTs0RTg1OzRFODU7CisyRjA2OzJGMDY7MkYwNjs0RThDOzRFOEM7CisyRjA3OzJGMDc7MkYwNzs0RUEwOzRFQTA7CisyRjA4OzJGMDg7MkYwODs0RUJBOzRFQkE7CisyRjA5OzJGMDk7MkYwOTs1MTNGOzUxM0Y7CisyRjBBOzJGMEE7MkYwQTs1MTY1OzUxNjU7CisyRjBCOzJGMEI7MkYwQjs1MTZCOzUxNkI7CisyRjBDOzJGMEM7MkYwQzs1MTgyOzUxODI7CisyRjBEOzJGMEQ7MkYwRDs1MTk2OzUxOTY7CisyRjBFOzJGMEU7MkYwRTs1MUFCOzUxQUI7CisyRjBGOzJGMEY7MkYwRjs1MUUwOzUxRTA7CisyRjEwOzJGMTA7MkYxMDs1MUY1OzUxRjU7CisyRjExOzJGMTE7MkYxMTs1MjAwOzUyMDA7CisyRjEyOzJGMTI7MkYxMjs1MjlCOzUyOUI7CisyRjEzOzJGMTM7MkYxMzs1MkY5OzUyRjk7CisyRjE0OzJGMTQ7MkYxNDs1MzE1OzUzMTU7CisyRjE1OzJGMTU7MkYxNTs1MzFBOzUzMUE7CisyRjE2OzJGMTY7MkYxNjs1MzM4OzUzMzg7CisyRjE3OzJGMTc7MkYxNzs1MzQxOzUzNDE7CisyRjE4OzJGMTg7MkYxODs1MzVDOzUzNUM7CisyRjE5OzJGMTk7MkYxOTs1MzY5OzUzNjk7CisyRjFBOzJGMUE7MkYxQTs1MzgyOzUzODI7CisyRjFCOzJGMUI7MkYxQjs1M0I2OzUzQjY7CisyRjFDOzJGMUM7MkYxQzs1M0M4OzUzQzg7CisyRjFEOzJGMUQ7MkYxRDs1M0UzOzUzRTM7CisyRjFFOzJGMUU7MkYxRTs1NkQ3OzU2RDc7CisyRjFGOzJGMUY7MkYxRjs1NzFGOzU3MUY7CisyRjIwOzJGMjA7MkYyMDs1OEVCOzU4RUI7CisyRjIxOzJGMjE7MkYyMTs1OTAyOzU5MDI7CisyRjIyOzJGMjI7MkYyMjs1OTBBOzU5MEE7CisyRjIzOzJGMjM7MkYyMzs1OTE1OzU5MTU7CisyRjI0OzJGMjQ7MkYyNDs1OTI3OzU5Mjc7CisyRjI1OzJGMjU7MkYyNTs1OTczOzU5NzM7CisyRjI2OzJGMjY7MkYyNjs1QjUwOzVCNTA7CisyRjI3OzJGMjc7MkYyNzs1QjgwOzVCODA7CisyRjI4OzJGMjg7MkYyODs1QkY4OzVCRjg7CisyRjI5OzJGMjk7MkYyOTs1QzBGOzVDMEY7CisyRjJBOzJGMkE7MkYyQTs1QzIyOzVDMjI7CisyRjJCOzJGMkI7MkYyQjs1QzM4OzVDMzg7CisyRjJDOzJGMkM7MkYyQzs1QzZFOzVDNkU7CisyRjJEOzJGMkQ7MkYyRDs1QzcxOzVDNzE7CisyRjJFOzJGMkU7MkYyRTs1RERCOzVEREI7CisyRjJGOzJGMkY7MkYyRjs1REU1OzVERTU7CisyRjMwOzJGMzA7MkYzMDs1REYxOzVERjE7CisyRjMxOzJGMzE7MkYzMTs1REZFOzVERkU7CisyRjMyOzJGMzI7MkYzMjs1RTcyOzVFNzI7CisyRjMzOzJGMzM7MkYzMzs1RTdBOzVFN0E7CisyRjM0OzJGMzQ7MkYzNDs1RTdGOzVFN0Y7CisyRjM1OzJGMzU7MkYzNTs1RUY0OzVFRjQ7CisyRjM2OzJGMzY7MkYzNjs1RUZFOzVFRkU7CisyRjM3OzJGMzc7MkYzNzs1RjBCOzVGMEI7CisyRjM4OzJGMzg7MkYzODs1RjEzOzVGMTM7CisyRjM5OzJGMzk7MkYzOTs1RjUwOzVGNTA7CisyRjNBOzJGM0E7MkYzQTs1RjYxOzVGNjE7CisyRjNCOzJGM0I7MkYzQjs1RjczOzVGNzM7CisyRjNDOzJGM0M7MkYzQzs1RkMzOzVGQzM7CisyRjNEOzJGM0Q7MkYzRDs2MjA4OzYyMDg7CisyRjNFOzJGM0U7MkYzRTs2MjM2OzYyMzY7CisyRjNGOzJGM0Y7MkYzRjs2MjRCOzYyNEI7CisyRjQwOzJGNDA7MkY0MDs2NTJGOzY1MkY7CisyRjQxOzJGNDE7MkY0MTs2NTM0OzY1MzQ7CisyRjQyOzJGNDI7MkY0Mjs2NTg3OzY1ODc7CisyRjQzOzJGNDM7MkY0Mzs2NTk3OzY1OTc7CisyRjQ0OzJGNDQ7MkY0NDs2NUE0OzY1QTQ7CisyRjQ1OzJGNDU7MkY0NTs2NUI5OzY1Qjk7CisyRjQ2OzJGNDY7MkY0Njs2NUUwOzY1RTA7CisyRjQ3OzJGNDc7MkY0Nzs2NUU1OzY1RTU7CisyRjQ4OzJGNDg7MkY0ODs2NkYwOzY2RjA7CisyRjQ5OzJGNDk7MkY0OTs2NzA4OzY3MDg7CisyRjRBOzJGNEE7MkY0QTs2NzI4OzY3Mjg7CisyRjRCOzJGNEI7MkY0Qjs2QjIwOzZCMjA7CisyRjRDOzJGNEM7MkY0Qzs2QjYyOzZCNjI7CisyRjREOzJGNEQ7MkY0RDs2Qjc5OzZCNzk7CisyRjRFOzJGNEU7MkY0RTs2QkIzOzZCQjM7CisyRjRGOzJGNEY7MkY0Rjs2QkNCOzZCQ0I7CisyRjUwOzJGNTA7MkY1MDs2QkQ0OzZCRDQ7CisyRjUxOzJGNTE7MkY1MTs2QkRCOzZCREI7CisyRjUyOzJGNTI7MkY1Mjs2QzBGOzZDMEY7CisyRjUzOzJGNTM7MkY1Mzs2QzE0OzZDMTQ7CisyRjU0OzJGNTQ7MkY1NDs2QzM0OzZDMzQ7CisyRjU1OzJGNTU7MkY1NTs3MDZCOzcwNkI7CisyRjU2OzJGNTY7MkY1Njs3MjJBOzcyMkE7CisyRjU3OzJGNTc7MkY1Nzs3MjM2OzcyMzY7CisyRjU4OzJGNTg7MkY1ODs3MjNCOzcyM0I7CisyRjU5OzJGNTk7MkY1OTs3MjNGOzcyM0Y7CisyRjVBOzJGNUE7MkY1QTs3MjQ3OzcyNDc7CisyRjVCOzJGNUI7MkY1Qjs3MjU5OzcyNTk7CisyRjVDOzJGNUM7MkY1Qzs3MjVCOzcyNUI7CisyRjVEOzJGNUQ7MkY1RDs3MkFDOzcyQUM7CisyRjVFOzJGNUU7MkY1RTs3Mzg0OzczODQ7CisyRjVGOzJGNUY7MkY1Rjs3Mzg5OzczODk7CisyRjYwOzJGNjA7MkY2MDs3NERDOzc0REM7CisyRjYxOzJGNjE7MkY2MTs3NEU2Ozc0RTY7CisyRjYyOzJGNjI7MkY2Mjs3NTE4Ozc1MTg7CisyRjYzOzJGNjM7MkY2Mzs3NTFGOzc1MUY7CisyRjY0OzJGNjQ7MkY2NDs3NTI4Ozc1Mjg7CisyRjY1OzJGNjU7MkY2NTs3NTMwOzc1MzA7CisyRjY2OzJGNjY7MkY2Njs3NThCOzc1OEI7CisyRjY3OzJGNjc7MkY2Nzs3NTkyOzc1OTI7CisyRjY4OzJGNjg7MkY2ODs3Njc2Ozc2NzY7CisyRjY5OzJGNjk7MkY2OTs3NjdEOzc2N0Q7CisyRjZBOzJGNkE7MkY2QTs3NkFFOzc2QUU7CisyRjZCOzJGNkI7MkY2Qjs3NkJGOzc2QkY7CisyRjZDOzJGNkM7MkY2Qzs3NkVFOzc2RUU7CisyRjZEOzJGNkQ7MkY2RDs3N0RCOzc3REI7CisyRjZFOzJGNkU7MkY2RTs3N0UyOzc3RTI7CisyRjZGOzJGNkY7MkY2Rjs3N0YzOzc3RjM7CisyRjcwOzJGNzA7MkY3MDs3OTNBOzc5M0E7CisyRjcxOzJGNzE7MkY3MTs3OUI4Ozc5Qjg7CisyRjcyOzJGNzI7MkY3Mjs3OUJFOzc5QkU7CisyRjczOzJGNzM7MkY3Mzs3QTc0OzdBNzQ7CisyRjc0OzJGNzQ7MkY3NDs3QUNCOzdBQ0I7CisyRjc1OzJGNzU7MkY3NTs3QUY5OzdBRjk7CisyRjc2OzJGNzY7MkY3Njs3QzczOzdDNzM7CisyRjc3OzJGNzc7MkY3Nzs3Q0Y4OzdDRjg7CisyRjc4OzJGNzg7MkY3ODs3RjM2OzdGMzY7CisyRjc5OzJGNzk7MkY3OTs3RjUxOzdGNTE7CisyRjdBOzJGN0E7MkY3QTs3RjhBOzdGOEE7CisyRjdCOzJGN0I7MkY3Qjs3RkJEOzdGQkQ7CisyRjdDOzJGN0M7MkY3Qzs4MDAxOzgwMDE7CisyRjdEOzJGN0Q7MkY3RDs4MDBDOzgwMEM7CisyRjdFOzJGN0U7MkY3RTs4MDEyOzgwMTI7CisyRjdGOzJGN0Y7MkY3Rjs4MDMzOzgwMzM7CisyRjgwOzJGODA7MkY4MDs4MDdGOzgwN0Y7CisyRjgxOzJGODE7MkY4MTs4MDg5OzgwODk7CisyRjgyOzJGODI7MkY4Mjs4MUUzOzgxRTM7CisyRjgzOzJGODM7MkY4Mzs4MUVBOzgxRUE7CisyRjg0OzJGODQ7MkY4NDs4MUYzOzgxRjM7CisyRjg1OzJGODU7MkY4NTs4MUZDOzgxRkM7CisyRjg2OzJGODY7MkY4Njs4MjBDOzgyMEM7CisyRjg3OzJGODc7MkY4Nzs4MjFCOzgyMUI7CisyRjg4OzJGODg7MkY4ODs4MjFGOzgyMUY7CisyRjg5OzJGODk7MkY4OTs4MjZFOzgyNkU7CisyRjhBOzJGOEE7MkY4QTs4MjcyOzgyNzI7CisyRjhCOzJGOEI7MkY4Qjs4Mjc4OzgyNzg7CisyRjhDOzJGOEM7MkY4Qzs4NjREOzg2NEQ7CisyRjhEOzJGOEQ7MkY4RDs4NjZCOzg2NkI7CisyRjhFOzJGOEU7MkY4RTs4ODQwOzg4NDA7CisyRjhGOzJGOEY7MkY4Rjs4ODRDOzg4NEM7CisyRjkwOzJGOTA7MkY5MDs4ODYzOzg4NjM7CisyRjkxOzJGOTE7MkY5MTs4OTdFOzg5N0U7CisyRjkyOzJGOTI7MkY5Mjs4OThCOzg5OEI7CisyRjkzOzJGOTM7MkY5Mzs4OUQyOzg5RDI7CisyRjk0OzJGOTQ7MkY5NDs4QTAwOzhBMDA7CisyRjk1OzJGOTU7MkY5NTs4QzM3OzhDMzc7CisyRjk2OzJGOTY7MkY5Njs4QzQ2OzhDNDY7CisyRjk3OzJGOTc7MkY5Nzs4QzU1OzhDNTU7CisyRjk4OzJGOTg7MkY5ODs4Qzc4OzhDNzg7CisyRjk5OzJGOTk7MkY5OTs4QzlEOzhDOUQ7CisyRjlBOzJGOUE7MkY5QTs4RDY0OzhENjQ7CisyRjlCOzJGOUI7MkY5Qjs4RDcwOzhENzA7CisyRjlDOzJGOUM7MkY5Qzs4REIzOzhEQjM7CisyRjlEOzJGOUQ7MkY5RDs4RUFCOzhFQUI7CisyRjlFOzJGOUU7MkY5RTs4RUNBOzhFQ0E7CisyRjlGOzJGOUY7MkY5Rjs4RjlCOzhGOUI7CisyRkEwOzJGQTA7MkZBMDs4RkIwOzhGQjA7CisyRkExOzJGQTE7MkZBMTs4RkI1OzhGQjU7CisyRkEyOzJGQTI7MkZBMjs5MDkxOzkwOTE7CisyRkEzOzJGQTM7MkZBMzs5MTQ5OzkxNDk7CisyRkE0OzJGQTQ7MkZBNDs5MUM2OzkxQzY7CisyRkE1OzJGQTU7MkZBNTs5MUNDOzkxQ0M7CisyRkE2OzJGQTY7MkZBNjs5MUQxOzkxRDE7CisyRkE3OzJGQTc7MkZBNzs5NTc3Ozk1Nzc7CisyRkE4OzJGQTg7MkZBODs5NTgwOzk1ODA7CisyRkE5OzJGQTk7MkZBOTs5NjFDOzk2MUM7CisyRkFBOzJGQUE7MkZBQTs5NkI2Ozk2QjY7CisyRkFCOzJGQUI7MkZBQjs5NkI5Ozk2Qjk7CisyRkFDOzJGQUM7MkZBQzs5NkU4Ozk2RTg7CisyRkFEOzJGQUQ7MkZBRDs5NzUxOzk3NTE7CisyRkFFOzJGQUU7MkZBRTs5NzVFOzk3NUU7CisyRkFGOzJGQUY7MkZBRjs5NzYyOzk3NjI7CisyRkIwOzJGQjA7MkZCMDs5NzY5Ozk3Njk7CisyRkIxOzJGQjE7MkZCMTs5N0NCOzk3Q0I7CisyRkIyOzJGQjI7MkZCMjs5N0VEOzk3RUQ7CisyRkIzOzJGQjM7MkZCMzs5N0YzOzk3RjM7CisyRkI0OzJGQjQ7MkZCNDs5ODAxOzk4MDE7CisyRkI1OzJGQjU7MkZCNTs5OEE4Ozk4QTg7CisyRkI2OzJGQjY7MkZCNjs5OERCOzk4REI7CisyRkI3OzJGQjc7MkZCNzs5OERGOzk4REY7CisyRkI4OzJGQjg7MkZCODs5OTk2Ozk5OTY7CisyRkI5OzJGQjk7MkZCOTs5OTk5Ozk5OTk7CisyRkJBOzJGQkE7MkZCQTs5OUFDOzk5QUM7CisyRkJCOzJGQkI7MkZCQjs5QUE4OzlBQTg7CisyRkJDOzJGQkM7MkZCQzs5QUQ4OzlBRDg7CisyRkJEOzJGQkQ7MkZCRDs5QURGOzlBREY7CisyRkJFOzJGQkU7MkZCRTs5QjI1OzlCMjU7CisyRkJGOzJGQkY7MkZCRjs5QjJGOzlCMkY7CisyRkMwOzJGQzA7MkZDMDs5QjMyOzlCMzI7CisyRkMxOzJGQzE7MkZDMTs5QjNDOzlCM0M7CisyRkMyOzJGQzI7MkZDMjs5QjVBOzlCNUE7CisyRkMzOzJGQzM7MkZDMzs5Q0U1OzlDRTU7CisyRkM0OzJGQzQ7MkZDNDs5RTc1OzlFNzU7CisyRkM1OzJGQzU7MkZDNTs5RTdGOzlFN0Y7CisyRkM2OzJGQzY7MkZDNjs5RUE1OzlFQTU7CisyRkM3OzJGQzc7MkZDNzs5RUJCOzlFQkI7CisyRkM4OzJGQzg7MkZDODs5RUMzOzlFQzM7CisyRkM5OzJGQzk7MkZDOTs5RUNEOzlFQ0Q7CisyRkNBOzJGQ0E7MkZDQTs5RUQxOzlFRDE7CisyRkNCOzJGQ0I7MkZDQjs5RUY5OzlFRjk7CisyRkNDOzJGQ0M7MkZDQzs5RUZEOzlFRkQ7CisyRkNEOzJGQ0Q7MkZDRDs5RjBFOzlGMEU7CisyRkNFOzJGQ0U7MkZDRTs5RjEzOzlGMTM7CisyRkNGOzJGQ0Y7MkZDRjs5RjIwOzlGMjA7CisyRkQwOzJGRDA7MkZEMDs5RjNCOzlGM0I7CisyRkQxOzJGRDE7MkZEMTs5RjRBOzlGNEE7CisyRkQyOzJGRDI7MkZEMjs5RjUyOzlGNTI7CisyRkQzOzJGRDM7MkZEMzs5RjhEOzlGOEQ7CisyRkQ0OzJGRDQ7MkZENDs5RjlDOzlGOUM7CisyRkQ1OzJGRDU7MkZENTs5RkEwOzlGQTA7CiszMDAwOzMwMDA7MzAwMDswMDIwOzAwMjA7CiszMDM2OzMwMzY7MzAzNjszMDEyOzMwMTI7CiszMDM4OzMwMzg7MzAzODs1MzQxOzUzNDE7CiszMDM5OzMwMzk7MzAzOTs1MzQ0OzUzNDQ7CiszMDNBOzMwM0E7MzAzQTs1MzQ1OzUzNDU7CiszMDRDOzMwNEM7MzA0QiAzMDk5OzMwNEM7MzA0QiAzMDk5OworMzA0RTszMDRFOzMwNEQgMzA5OTszMDRFOzMwNEQgMzA5OTsKKzMwNTA7MzA1MDszMDRGIDMwOTk7MzA1MDszMDRGIDMwOTk7CiszMDUyOzMwNTI7MzA1MSAzMDk5OzMwNTI7MzA1MSAzMDk5OworMzA1NDszMDU0OzMwNTMgMzA5OTszMDU0OzMwNTMgMzA5OTsKKzMwNTY7MzA1NjszMDU1IDMwOTk7MzA1NjszMDU1IDMwOTk7CiszMDU4OzMwNTg7MzA1NyAzMDk5OzMwNTg7MzA1NyAzMDk5OworMzA1QTszMDVBOzMwNTkgMzA5OTszMDVBOzMwNTkgMzA5OTsKKzMwNUM7MzA1QzszMDVCIDMwOTk7MzA1QzszMDVCIDMwOTk7CiszMDVFOzMwNUU7MzA1RCAzMDk5OzMwNUU7MzA1RCAzMDk5OworMzA2MDszMDYwOzMwNUYgMzA5OTszMDYwOzMwNUYgMzA5OTsKKzMwNjI7MzA2MjszMDYxIDMwOTk7MzA2MjszMDYxIDMwOTk7CiszMDY1OzMwNjU7MzA2NCAzMDk5OzMwNjU7MzA2NCAzMDk5OworMzA2NzszMDY3OzMwNjYgMzA5OTszMDY3OzMwNjYgMzA5OTsKKzMwNjk7MzA2OTszMDY4IDMwOTk7MzA2OTszMDY4IDMwOTk7CiszMDcwOzMwNzA7MzA2RiAzMDk5OzMwNzA7MzA2RiAzMDk5OworMzA3MTszMDcxOzMwNkYgMzA5QTszMDcxOzMwNkYgMzA5QTsKKzMwNzM7MzA3MzszMDcyIDMwOTk7MzA3MzszMDcyIDMwOTk7CiszMDc0OzMwNzQ7MzA3MiAzMDlBOzMwNzQ7MzA3MiAzMDlBOworMzA3NjszMDc2OzMwNzUgMzA5OTszMDc2OzMwNzUgMzA5OTsKKzMwNzc7MzA3NzszMDc1IDMwOUE7MzA3NzszMDc1IDMwOUE7CiszMDc5OzMwNzk7MzA3OCAzMDk5OzMwNzk7MzA3OCAzMDk5OworMzA3QTszMDdBOzMwNzggMzA5QTszMDdBOzMwNzggMzA5QTsKKzMwN0M7MzA3QzszMDdCIDMwOTk7MzA3QzszMDdCIDMwOTk7CiszMDdEOzMwN0Q7MzA3QiAzMDlBOzMwN0Q7MzA3QiAzMDlBOworMzA5NDszMDk0OzMwNDYgMzA5OTszMDk0OzMwNDYgMzA5OTsKKzMwOUI7MzA5QjszMDlCOzAwMjAgMzA5OTswMDIwIDMwOTk7CiszMDlDOzMwOUM7MzA5QzswMDIwIDMwOUE7MDAyMCAzMDlBOworMzA5RTszMDlFOzMwOUQgMzA5OTszMDlFOzMwOUQgMzA5OTsKKzMwOUY7MzA5RjszMDlGOzMwODggMzA4QTszMDg4IDMwOEE7CiszMEFDOzMwQUM7MzBBQiAzMDk5OzMwQUM7MzBBQiAzMDk5OworMzBBRTszMEFFOzMwQUQgMzA5OTszMEFFOzMwQUQgMzA5OTsKKzMwQjA7MzBCMDszMEFGIDMwOTk7MzBCMDszMEFGIDMwOTk7CiszMEIyOzMwQjI7MzBCMSAzMDk5OzMwQjI7MzBCMSAzMDk5OworMzBCNDszMEI0OzMwQjMgMzA5OTszMEI0OzMwQjMgMzA5OTsKKzMwQjY7MzBCNjszMEI1IDMwOTk7MzBCNjszMEI1IDMwOTk7CiszMEI4OzMwQjg7MzBCNyAzMDk5OzMwQjg7MzBCNyAzMDk5OworMzBCQTszMEJBOzMwQjkgMzA5OTszMEJBOzMwQjkgMzA5OTsKKzMwQkM7MzBCQzszMEJCIDMwOTk7MzBCQzszMEJCIDMwOTk7CiszMEJFOzMwQkU7MzBCRCAzMDk5OzMwQkU7MzBCRCAzMDk5OworMzBDMDszMEMwOzMwQkYgMzA5OTszMEMwOzMwQkYgMzA5OTsKKzMwQzI7MzBDMjszMEMxIDMwOTk7MzBDMjszMEMxIDMwOTk7CiszMEM1OzMwQzU7MzBDNCAzMDk5OzMwQzU7MzBDNCAzMDk5OworMzBDNzszMEM3OzMwQzYgMzA5OTszMEM3OzMwQzYgMzA5OTsKKzMwQzk7MzBDOTszMEM4IDMwOTk7MzBDOTszMEM4IDMwOTk7CiszMEQwOzMwRDA7MzBDRiAzMDk5OzMwRDA7MzBDRiAzMDk5OworMzBEMTszMEQxOzMwQ0YgMzA5QTszMEQxOzMwQ0YgMzA5QTsKKzMwRDM7MzBEMzszMEQyIDMwOTk7MzBEMzszMEQyIDMwOTk7CiszMEQ0OzMwRDQ7MzBEMiAzMDlBOzMwRDQ7MzBEMiAzMDlBOworMzBENjszMEQ2OzMwRDUgMzA5OTszMEQ2OzMwRDUgMzA5OTsKKzMwRDc7MzBENzszMEQ1IDMwOUE7MzBENzszMEQ1IDMwOUE7CiszMEQ5OzMwRDk7MzBEOCAzMDk5OzMwRDk7MzBEOCAzMDk5OworMzBEQTszMERBOzMwRDggMzA5QTszMERBOzMwRDggMzA5QTsKKzMwREM7MzBEQzszMERCIDMwOTk7MzBEQzszMERCIDMwOTk7CiszMEREOzMwREQ7MzBEQiAzMDlBOzMwREQ7MzBEQiAzMDlBOworMzBGNDszMEY0OzMwQTYgMzA5OTszMEY0OzMwQTYgMzA5OTsKKzMwRjc7MzBGNzszMEVGIDMwOTk7MzBGNzszMEVGIDMwOTk7CiszMEY4OzMwRjg7MzBGMCAzMDk5OzMwRjg7MzBGMCAzMDk5OworMzBGOTszMEY5OzMwRjEgMzA5OTszMEY5OzMwRjEgMzA5OTsKKzMwRkE7MzBGQTszMEYyIDMwOTk7MzBGQTszMEYyIDMwOTk7CiszMEZFOzMwRkU7MzBGRCAzMDk5OzMwRkU7MzBGRCAzMDk5OworMzBGRjszMEZGOzMwRkY7MzBCMyAzMEM4OzMwQjMgMzBDODsKKzMxMzE7MzEzMTszMTMxOzExMDA7MTEwMDsKKzMxMzI7MzEzMjszMTMyOzExMDE7MTEwMTsKKzMxMzM7MzEzMzszMTMzOzExQUE7MTFBQTsKKzMxMzQ7MzEzNDszMTM0OzExMDI7MTEwMjsKKzMxMzU7MzEzNTszMTM1OzExQUM7MTFBQzsKKzMxMzY7MzEzNjszMTM2OzExQUQ7MTFBRDsKKzMxMzc7MzEzNzszMTM3OzExMDM7MTEwMzsKKzMxMzg7MzEzODszMTM4OzExMDQ7MTEwNDsKKzMxMzk7MzEzOTszMTM5OzExMDU7MTEwNTsKKzMxM0E7MzEzQTszMTNBOzExQjA7MTFCMDsKKzMxM0I7MzEzQjszMTNCOzExQjE7MTFCMTsKKzMxM0M7MzEzQzszMTNDOzExQjI7MTFCMjsKKzMxM0Q7MzEzRDszMTNEOzExQjM7MTFCMzsKKzMxM0U7MzEzRTszMTNFOzExQjQ7MTFCNDsKKzMxM0Y7MzEzRjszMTNGOzExQjU7MTFCNTsKKzMxNDA7MzE0MDszMTQwOzExMUE7MTExQTsKKzMxNDE7MzE0MTszMTQxOzExMDY7MTEwNjsKKzMxNDI7MzE0MjszMTQyOzExMDc7MTEwNzsKKzMxNDM7MzE0MzszMTQzOzExMDg7MTEwODsKKzMxNDQ7MzE0NDszMTQ0OzExMjE7MTEyMTsKKzMxNDU7MzE0NTszMTQ1OzExMDk7MTEwOTsKKzMxNDY7MzE0NjszMTQ2OzExMEE7MTEwQTsKKzMxNDc7MzE0NzszMTQ3OzExMEI7MTEwQjsKKzMxNDg7MzE0ODszMTQ4OzExMEM7MTEwQzsKKzMxNDk7MzE0OTszMTQ5OzExMEQ7MTEwRDsKKzMxNEE7MzE0QTszMTRBOzExMEU7MTEwRTsKKzMxNEI7MzE0QjszMTRCOzExMEY7MTEwRjsKKzMxNEM7MzE0QzszMTRDOzExMTA7MTExMDsKKzMxNEQ7MzE0RDszMTREOzExMTE7MTExMTsKKzMxNEU7MzE0RTszMTRFOzExMTI7MTExMjsKKzMxNEY7MzE0RjszMTRGOzExNjE7MTE2MTsKKzMxNTA7MzE1MDszMTUwOzExNjI7MTE2MjsKKzMxNTE7MzE1MTszMTUxOzExNjM7MTE2MzsKKzMxNTI7MzE1MjszMTUyOzExNjQ7MTE2NDsKKzMxNTM7MzE1MzszMTUzOzExNjU7MTE2NTsKKzMxNTQ7MzE1NDszMTU0OzExNjY7MTE2NjsKKzMxNTU7MzE1NTszMTU1OzExNjc7MTE2NzsKKzMxNTY7MzE1NjszMTU2OzExNjg7MTE2ODsKKzMxNTc7MzE1NzszMTU3OzExNjk7MTE2OTsKKzMxNTg7MzE1ODszMTU4OzExNkE7MTE2QTsKKzMxNTk7MzE1OTszMTU5OzExNkI7MTE2QjsKKzMxNUE7MzE1QTszMTVBOzExNkM7MTE2QzsKKzMxNUI7MzE1QjszMTVCOzExNkQ7MTE2RDsKKzMxNUM7MzE1QzszMTVDOzExNkU7MTE2RTsKKzMxNUQ7MzE1RDszMTVEOzExNkY7MTE2RjsKKzMxNUU7MzE1RTszMTVFOzExNzA7MTE3MDsKKzMxNUY7MzE1RjszMTVGOzExNzE7MTE3MTsKKzMxNjA7MzE2MDszMTYwOzExNzI7MTE3MjsKKzMxNjE7MzE2MTszMTYxOzExNzM7MTE3MzsKKzMxNjI7MzE2MjszMTYyOzExNzQ7MTE3NDsKKzMxNjM7MzE2MzszMTYzOzExNzU7MTE3NTsKKzMxNjQ7MzE2NDszMTY0OzExNjA7MTE2MDsKKzMxNjU7MzE2NTszMTY1OzExMTQ7MTExNDsKKzMxNjY7MzE2NjszMTY2OzExMTU7MTExNTsKKzMxNjc7MzE2NzszMTY3OzExQzc7MTFDNzsKKzMxNjg7MzE2ODszMTY4OzExQzg7MTFDODsKKzMxNjk7MzE2OTszMTY5OzExQ0M7MTFDQzsKKzMxNkE7MzE2QTszMTZBOzExQ0U7MTFDRTsKKzMxNkI7MzE2QjszMTZCOzExRDM7MTFEMzsKKzMxNkM7MzE2QzszMTZDOzExRDc7MTFENzsKKzMxNkQ7MzE2RDszMTZEOzExRDk7MTFEOTsKKzMxNkU7MzE2RTszMTZFOzExMUM7MTExQzsKKzMxNkY7MzE2RjszMTZGOzExREQ7MTFERDsKKzMxNzA7MzE3MDszMTcwOzExREY7MTFERjsKKzMxNzE7MzE3MTszMTcxOzExMUQ7MTExRDsKKzMxNzI7MzE3MjszMTcyOzExMUU7MTExRTsKKzMxNzM7MzE3MzszMTczOzExMjA7MTEyMDsKKzMxNzQ7MzE3NDszMTc0OzExMjI7MTEyMjsKKzMxNzU7MzE3NTszMTc1OzExMjM7MTEyMzsKKzMxNzY7MzE3NjszMTc2OzExMjc7MTEyNzsKKzMxNzc7MzE3NzszMTc3OzExMjk7MTEyOTsKKzMxNzg7MzE3ODszMTc4OzExMkI7MTEyQjsKKzMxNzk7MzE3OTszMTc5OzExMkM7MTEyQzsKKzMxN0E7MzE3QTszMTdBOzExMkQ7MTEyRDsKKzMxN0I7MzE3QjszMTdCOzExMkU7MTEyRTsKKzMxN0M7MzE3QzszMTdDOzExMkY7MTEyRjsKKzMxN0Q7MzE3RDszMTdEOzExMzI7MTEzMjsKKzMxN0U7MzE3RTszMTdFOzExMzY7MTEzNjsKKzMxN0Y7MzE3RjszMTdGOzExNDA7MTE0MDsKKzMxODA7MzE4MDszMTgwOzExNDc7MTE0NzsKKzMxODE7MzE4MTszMTgxOzExNEM7MTE0QzsKKzMxODI7MzE4MjszMTgyOzExRjE7MTFGMTsKKzMxODM7MzE4MzszMTgzOzExRjI7MTFGMjsKKzMxODQ7MzE4NDszMTg0OzExNTc7MTE1NzsKKzMxODU7MzE4NTszMTg1OzExNTg7MTE1ODsKKzMxODY7MzE4NjszMTg2OzExNTk7MTE1OTsKKzMxODc7MzE4NzszMTg3OzExODQ7MTE4NDsKKzMxODg7MzE4ODszMTg4OzExODU7MTE4NTsKKzMxODk7MzE4OTszMTg5OzExODg7MTE4ODsKKzMxOEE7MzE4QTszMThBOzExOTE7MTE5MTsKKzMxOEI7MzE4QjszMThCOzExOTI7MTE5MjsKKzMxOEM7MzE4QzszMThDOzExOTQ7MTE5NDsKKzMxOEQ7MzE4RDszMThEOzExOUU7MTE5RTsKKzMxOEU7MzE4RTszMThFOzExQTE7MTFBMTsKKzMxOTI7MzE5MjszMTkyOzRFMDA7NEUwMDsKKzMxOTM7MzE5MzszMTkzOzRFOEM7NEU4QzsKKzMxOTQ7MzE5NDszMTk0OzRFMDk7NEUwOTsKKzMxOTU7MzE5NTszMTk1OzU2REI7NTZEQjsKKzMxOTY7MzE5NjszMTk2OzRFMEE7NEUwQTsKKzMxOTc7MzE5NzszMTk3OzRFMkQ7NEUyRDsKKzMxOTg7MzE5ODszMTk4OzRFMEI7NEUwQjsKKzMxOTk7MzE5OTszMTk5Ozc1MzI7NzUzMjsKKzMxOUE7MzE5QTszMTlBOzRFNTk7NEU1OTsKKzMxOUI7MzE5QjszMTlCOzRFMTk7NEUxOTsKKzMxOUM7MzE5QzszMTlDOzRFMDE7NEUwMTsKKzMxOUQ7MzE5RDszMTlEOzU5Mjk7NTkyOTsKKzMxOUU7MzE5RTszMTlFOzU3MzA7NTczMDsKKzMxOUY7MzE5RjszMTlGOzRFQkE7NEVCQTsKKzMyMDA7MzIwMDszMjAwOzAwMjggMTEwMCAwMDI5OzAwMjggMTEwMCAwMDI5OworMzIwMTszMjAxOzMyMDE7MDAyOCAxMTAyIDAwMjk7MDAyOCAxMTAyIDAwMjk7CiszMjAyOzMyMDI7MzIwMjswMDI4IDExMDMgMDAyOTswMDI4IDExMDMgMDAyOTsKKzMyMDM7MzIwMzszMjAzOzAwMjggMTEwNSAwMDI5OzAwMjggMTEwNSAwMDI5OworMzIwNDszMjA0OzMyMDQ7MDAyOCAxMTA2IDAwMjk7MDAyOCAxMTA2IDAwMjk7CiszMjA1OzMyMDU7MzIwNTswMDI4IDExMDcgMDAyOTswMDI4IDExMDcgMDAyOTsKKzMyMDY7MzIwNjszMjA2OzAwMjggMTEwOSAwMDI5OzAwMjggMTEwOSAwMDI5OworMzIwNzszMjA3OzMyMDc7MDAyOCAxMTBCIDAwMjk7MDAyOCAxMTBCIDAwMjk7CiszMjA4OzMyMDg7MzIwODswMDI4IDExMEMgMDAyOTswMDI4IDExMEMgMDAyOTsKKzMyMDk7MzIwOTszMjA5OzAwMjggMTEwRSAwMDI5OzAwMjggMTEwRSAwMDI5OworMzIwQTszMjBBOzMyMEE7MDAyOCAxMTBGIDAwMjk7MDAyOCAxMTBGIDAwMjk7CiszMjBCOzMyMEI7MzIwQjswMDI4IDExMTAgMDAyOTswMDI4IDExMTAgMDAyOTsKKzMyMEM7MzIwQzszMjBDOzAwMjggMTExMSAwMDI5OzAwMjggMTExMSAwMDI5OworMzIwRDszMjBEOzMyMEQ7MDAyOCAxMTEyIDAwMjk7MDAyOCAxMTEyIDAwMjk7CiszMjBFOzMyMEU7MzIwRTswMDI4IEFDMDAgMDAyOTswMDI4IDExMDAgMTE2MSAwMDI5OworMzIwRjszMjBGOzMyMEY7MDAyOCBCMDk4IDAwMjk7MDAyOCAxMTAyIDExNjEgMDAyOTsKKzMyMTA7MzIxMDszMjEwOzAwMjggQjJFNCAwMDI5OzAwMjggMTEwMyAxMTYxIDAwMjk7CiszMjExOzMyMTE7MzIxMTswMDI4IEI3N0MgMDAyOTswMDI4IDExMDUgMTE2MSAwMDI5OworMzIxMjszMjEyOzMyMTI7MDAyOCBCOUM4IDAwMjk7MDAyOCAxMTA2IDExNjEgMDAyOTsKKzMyMTM7MzIxMzszMjEzOzAwMjggQkMxNCAwMDI5OzAwMjggMTEwNyAxMTYxIDAwMjk7CiszMjE0OzMyMTQ7MzIxNDswMDI4IEMwQUMgMDAyOTswMDI4IDExMDkgMTE2MSAwMDI5OworMzIxNTszMjE1OzMyMTU7MDAyOCBDNTQ0IDAwMjk7MDAyOCAxMTBCIDExNjEgMDAyOTsKKzMyMTY7MzIxNjszMjE2OzAwMjggQzc5MCAwMDI5OzAwMjggMTEwQyAxMTYxIDAwMjk7CiszMjE3OzMyMTc7MzIxNzswMDI4IENDMjggMDAyOTswMDI4IDExMEUgMTE2MSAwMDI5OworMzIxODszMjE4OzMyMTg7MDAyOCBDRTc0IDAwMjk7MDAyOCAxMTBGIDExNjEgMDAyOTsKKzMyMTk7MzIxOTszMjE5OzAwMjggRDBDMCAwMDI5OzAwMjggMTExMCAxMTYxIDAwMjk7CiszMjFBOzMyMUE7MzIxQTswMDI4IEQzMEMgMDAyOTswMDI4IDExMTEgMTE2MSAwMDI5OworMzIxQjszMjFCOzMyMUI7MDAyOCBENTU4IDAwMjk7MDAyOCAxMTEyIDExNjEgMDAyOTsKKzMyMUM7MzIxQzszMjFDOzAwMjggQzhGQyAwMDI5OzAwMjggMTEwQyAxMTZFIDAwMjk7CiszMjFEOzMyMUQ7MzIxRDswMDI4IEM2MjQgQzgwNCAwMDI5OzAwMjggMTEwQiAxMTY5IDExMEMgMTE2NSAxMUFCIDAwMjk7CiszMjFFOzMyMUU7MzIxRTswMDI4IEM2MjQgRDZDNCAwMDI5OzAwMjggMTEwQiAxMTY5IDExMTIgMTE2RSAwMDI5OworMzIyMDszMjIwOzMyMjA7MDAyOCA0RTAwIDAwMjk7MDAyOCA0RTAwIDAwMjk7CiszMjIxOzMyMjE7MzIyMTswMDI4IDRFOEMgMDAyOTswMDI4IDRFOEMgMDAyOTsKKzMyMjI7MzIyMjszMjIyOzAwMjggNEUwOSAwMDI5OzAwMjggNEUwOSAwMDI5OworMzIyMzszMjIzOzMyMjM7MDAyOCA1NkRCIDAwMjk7MDAyOCA1NkRCIDAwMjk7CiszMjI0OzMyMjQ7MzIyNDswMDI4IDRFOTQgMDAyOTswMDI4IDRFOTQgMDAyOTsKKzMyMjU7MzIyNTszMjI1OzAwMjggNTE2RCAwMDI5OzAwMjggNTE2RCAwMDI5OworMzIyNjszMjI2OzMyMjY7MDAyOCA0RTAzIDAwMjk7MDAyOCA0RTAzIDAwMjk7CiszMjI3OzMyMjc7MzIyNzswMDI4IDUxNkIgMDAyOTswMDI4IDUxNkIgMDAyOTsKKzMyMjg7MzIyODszMjI4OzAwMjggNEU1RCAwMDI5OzAwMjggNEU1RCAwMDI5OworMzIyOTszMjI5OzMyMjk7MDAyOCA1MzQxIDAwMjk7MDAyOCA1MzQxIDAwMjk7CiszMjJBOzMyMkE7MzIyQTswMDI4IDY3MDggMDAyOTswMDI4IDY3MDggMDAyOTsKKzMyMkI7MzIyQjszMjJCOzAwMjggNzA2QiAwMDI5OzAwMjggNzA2QiAwMDI5OworMzIyQzszMjJDOzMyMkM7MDAyOCA2QzM0IDAwMjk7MDAyOCA2QzM0IDAwMjk7CiszMjJEOzMyMkQ7MzIyRDswMDI4IDY3MjggMDAyOTswMDI4IDY3MjggMDAyOTsKKzMyMkU7MzIyRTszMjJFOzAwMjggOTFEMSAwMDI5OzAwMjggOTFEMSAwMDI5OworMzIyRjszMjJGOzMyMkY7MDAyOCA1NzFGIDAwMjk7MDAyOCA1NzFGIDAwMjk7CiszMjMwOzMyMzA7MzIzMDswMDI4IDY1RTUgMDAyOTswMDI4IDY1RTUgMDAyOTsKKzMyMzE7MzIzMTszMjMxOzAwMjggNjgyQSAwMDI5OzAwMjggNjgyQSAwMDI5OworMzIzMjszMjMyOzMyMzI7MDAyOCA2NzA5IDAwMjk7MDAyOCA2NzA5IDAwMjk7CiszMjMzOzMyMzM7MzIzMzswMDI4IDc5M0UgMDAyOTswMDI4IDc5M0UgMDAyOTsKKzMyMzQ7MzIzNDszMjM0OzAwMjggNTQwRCAwMDI5OzAwMjggNTQwRCAwMDI5OworMzIzNTszMjM1OzMyMzU7MDAyOCA3Mjc5IDAwMjk7MDAyOCA3Mjc5IDAwMjk7CiszMjM2OzMyMzY7MzIzNjswMDI4IDhDQTEgMDAyOTswMDI4IDhDQTEgMDAyOTsKKzMyMzc7MzIzNzszMjM3OzAwMjggNzk1RCAwMDI5OzAwMjggNzk1RCAwMDI5OworMzIzODszMjM4OzMyMzg7MDAyOCA1MkI0IDAwMjk7MDAyOCA1MkI0IDAwMjk7CiszMjM5OzMyMzk7MzIzOTswMDI4IDRFRTMgMDAyOTswMDI4IDRFRTMgMDAyOTsKKzMyM0E7MzIzQTszMjNBOzAwMjggNTQ3QyAwMDI5OzAwMjggNTQ3QyAwMDI5OworMzIzQjszMjNCOzMyM0I7MDAyOCA1QjY2IDAwMjk7MDAyOCA1QjY2IDAwMjk7CiszMjNDOzMyM0M7MzIzQzswMDI4IDc2RTMgMDAyOTswMDI4IDc2RTMgMDAyOTsKKzMyM0Q7MzIzRDszMjNEOzAwMjggNEYwMSAwMDI5OzAwMjggNEYwMSAwMDI5OworMzIzRTszMjNFOzMyM0U7MDAyOCA4Q0M3IDAwMjk7MDAyOCA4Q0M3IDAwMjk7CiszMjNGOzMyM0Y7MzIzRjswMDI4IDUzNTQgMDAyOTswMDI4IDUzNTQgMDAyOTsKKzMyNDA7MzI0MDszMjQwOzAwMjggNzk2RCAwMDI5OzAwMjggNzk2RCAwMDI5OworMzI0MTszMjQxOzMyNDE7MDAyOCA0RjExIDAwMjk7MDAyOCA0RjExIDAwMjk7CiszMjQyOzMyNDI7MzI0MjswMDI4IDgxRUEgMDAyOTswMDI4IDgxRUEgMDAyOTsKKzMyNDM7MzI0MzszMjQzOzAwMjggODFGMyAwMDI5OzAwMjggODFGMyAwMDI5OworMzI1MDszMjUwOzMyNTA7MDA1MCAwMDU0IDAwNDU7MDA1MCAwMDU0IDAwNDU7CiszMjUxOzMyNTE7MzI1MTswMDMyIDAwMzE7MDAzMiAwMDMxOworMzI1MjszMjUyOzMyNTI7MDAzMiAwMDMyOzAwMzIgMDAzMjsKKzMyNTM7MzI1MzszMjUzOzAwMzIgMDAzMzswMDMyIDAwMzM7CiszMjU0OzMyNTQ7MzI1NDswMDMyIDAwMzQ7MDAzMiAwMDM0OworMzI1NTszMjU1OzMyNTU7MDAzMiAwMDM1OzAwMzIgMDAzNTsKKzMyNTY7MzI1NjszMjU2OzAwMzIgMDAzNjswMDMyIDAwMzY7CiszMjU3OzMyNTc7MzI1NzswMDMyIDAwMzc7MDAzMiAwMDM3OworMzI1ODszMjU4OzMyNTg7MDAzMiAwMDM4OzAwMzIgMDAzODsKKzMyNTk7MzI1OTszMjU5OzAwMzIgMDAzOTswMDMyIDAwMzk7CiszMjVBOzMyNUE7MzI1QTswMDMzIDAwMzA7MDAzMyAwMDMwOworMzI1QjszMjVCOzMyNUI7MDAzMyAwMDMxOzAwMzMgMDAzMTsKKzMyNUM7MzI1QzszMjVDOzAwMzMgMDAzMjswMDMzIDAwMzI7CiszMjVEOzMyNUQ7MzI1RDswMDMzIDAwMzM7MDAzMyAwMDMzOworMzI1RTszMjVFOzMyNUU7MDAzMyAwMDM0OzAwMzMgMDAzNDsKKzMyNUY7MzI1RjszMjVGOzAwMzMgMDAzNTswMDMzIDAwMzU7CiszMjYwOzMyNjA7MzI2MDsxMTAwOzExMDA7CiszMjYxOzMyNjE7MzI2MTsxMTAyOzExMDI7CiszMjYyOzMyNjI7MzI2MjsxMTAzOzExMDM7CiszMjYzOzMyNjM7MzI2MzsxMTA1OzExMDU7CiszMjY0OzMyNjQ7MzI2NDsxMTA2OzExMDY7CiszMjY1OzMyNjU7MzI2NTsxMTA3OzExMDc7CiszMjY2OzMyNjY7MzI2NjsxMTA5OzExMDk7CiszMjY3OzMyNjc7MzI2NzsxMTBCOzExMEI7CiszMjY4OzMyNjg7MzI2ODsxMTBDOzExMEM7CiszMjY5OzMyNjk7MzI2OTsxMTBFOzExMEU7CiszMjZBOzMyNkE7MzI2QTsxMTBGOzExMEY7CiszMjZCOzMyNkI7MzI2QjsxMTEwOzExMTA7CiszMjZDOzMyNkM7MzI2QzsxMTExOzExMTE7CiszMjZEOzMyNkQ7MzI2RDsxMTEyOzExMTI7CiszMjZFOzMyNkU7MzI2RTtBQzAwOzExMDAgMTE2MTsKKzMyNkY7MzI2RjszMjZGO0IwOTg7MTEwMiAxMTYxOworMzI3MDszMjcwOzMyNzA7QjJFNDsxMTAzIDExNjE7CiszMjcxOzMyNzE7MzI3MTtCNzdDOzExMDUgMTE2MTsKKzMyNzI7MzI3MjszMjcyO0I5Qzg7MTEwNiAxMTYxOworMzI3MzszMjczOzMyNzM7QkMxNDsxMTA3IDExNjE7CiszMjc0OzMyNzQ7MzI3NDtDMEFDOzExMDkgMTE2MTsKKzMyNzU7MzI3NTszMjc1O0M1NDQ7MTEwQiAxMTYxOworMzI3NjszMjc2OzMyNzY7Qzc5MDsxMTBDIDExNjE7CiszMjc3OzMyNzc7MzI3NztDQzI4OzExMEUgMTE2MTsKKzMyNzg7MzI3ODszMjc4O0NFNzQ7MTEwRiAxMTYxOworMzI3OTszMjc5OzMyNzk7RDBDMDsxMTEwIDExNjE7CiszMjdBOzMyN0E7MzI3QTtEMzBDOzExMTEgMTE2MTsKKzMyN0I7MzI3QjszMjdCO0Q1NTg7MTExMiAxMTYxOworMzI3QzszMjdDOzMyN0M7Q0MzOCBBQ0UwOzExMEUgMTE2MSAxMUI3IDExMDAgMTE2OTsKKzMyN0Q7MzI3RDszMjdEO0M4RkMgQzc1ODsxMTBDIDExNkUgMTEwQiAxMTc0OworMzI3RTszMjdFOzMyN0U7QzZCMDsxMTBCIDExNkU7CiszMjgwOzMyODA7MzI4MDs0RTAwOzRFMDA7CiszMjgxOzMyODE7MzI4MTs0RThDOzRFOEM7CiszMjgyOzMyODI7MzI4Mjs0RTA5OzRFMDk7CiszMjgzOzMyODM7MzI4Mzs1NkRCOzU2REI7CiszMjg0OzMyODQ7MzI4NDs0RTk0OzRFOTQ7CiszMjg1OzMyODU7MzI4NTs1MTZEOzUxNkQ7CiszMjg2OzMyODY7MzI4Njs0RTAzOzRFMDM7CiszMjg3OzMyODc7MzI4Nzs1MTZCOzUxNkI7CiszMjg4OzMyODg7MzI4ODs0RTVEOzRFNUQ7CiszMjg5OzMyODk7MzI4OTs1MzQxOzUzNDE7CiszMjhBOzMyOEE7MzI4QTs2NzA4OzY3MDg7CiszMjhCOzMyOEI7MzI4Qjs3MDZCOzcwNkI7CiszMjhDOzMyOEM7MzI4Qzs2QzM0OzZDMzQ7CiszMjhEOzMyOEQ7MzI4RDs2NzI4OzY3Mjg7CiszMjhFOzMyOEU7MzI4RTs5MUQxOzkxRDE7CiszMjhGOzMyOEY7MzI4Rjs1NzFGOzU3MUY7CiszMjkwOzMyOTA7MzI5MDs2NUU1OzY1RTU7CiszMjkxOzMyOTE7MzI5MTs2ODJBOzY4MkE7CiszMjkyOzMyOTI7MzI5Mjs2NzA5OzY3MDk7CiszMjkzOzMyOTM7MzI5Mzs3OTNFOzc5M0U7CiszMjk0OzMyOTQ7MzI5NDs1NDBEOzU0MEQ7CiszMjk1OzMyOTU7MzI5NTs3Mjc5OzcyNzk7CiszMjk2OzMyOTY7MzI5Njs4Q0ExOzhDQTE7CiszMjk3OzMyOTc7MzI5Nzs3OTVEOzc5NUQ7CiszMjk4OzMyOTg7MzI5ODs1MkI0OzUyQjQ7CiszMjk5OzMyOTk7MzI5OTs3OUQ4Ozc5RDg7CiszMjlBOzMyOUE7MzI5QTs3NTM3Ozc1Mzc7CiszMjlCOzMyOUI7MzI5Qjs1OTczOzU5NzM7CiszMjlDOzMyOUM7MzI5Qzs5MDY5OzkwNjk7CiszMjlEOzMyOUQ7MzI5RDs1MTJBOzUxMkE7CiszMjlFOzMyOUU7MzI5RTs1MzcwOzUzNzA7CiszMjlGOzMyOUY7MzI5Rjs2Q0U4OzZDRTg7CiszMkEwOzMyQTA7MzJBMDs5ODA1Ozk4MDU7CiszMkExOzMyQTE7MzJBMTs0RjExOzRGMTE7CiszMkEyOzMyQTI7MzJBMjs1MTk5OzUxOTk7CiszMkEzOzMyQTM7MzJBMzs2QjYzOzZCNjM7CiszMkE0OzMyQTQ7MzJBNDs0RTBBOzRFMEE7CiszMkE1OzMyQTU7MzJBNTs0RTJEOzRFMkQ7CiszMkE2OzMyQTY7MzJBNjs0RTBCOzRFMEI7CiszMkE3OzMyQTc7MzJBNzs1REU2OzVERTY7CiszMkE4OzMyQTg7MzJBODs1M0YzOzUzRjM7CiszMkE5OzMyQTk7MzJBOTs1MzNCOzUzM0I7CiszMkFBOzMyQUE7MzJBQTs1Qjk3OzVCOTc7CiszMkFCOzMyQUI7MzJBQjs1QjY2OzVCNjY7CiszMkFDOzMyQUM7MzJBQzs3NkUzOzc2RTM7CiszMkFEOzMyQUQ7MzJBRDs0RjAxOzRGMDE7CiszMkFFOzMyQUU7MzJBRTs4Q0M3OzhDQzc7CiszMkFGOzMyQUY7MzJBRjs1MzU0OzUzNTQ7CiszMkIwOzMyQjA7MzJCMDs1OTFDOzU5MUM7CiszMkIxOzMyQjE7MzJCMTswMDMzIDAwMzY7MDAzMyAwMDM2OworMzJCMjszMkIyOzMyQjI7MDAzMyAwMDM3OzAwMzMgMDAzNzsKKzMyQjM7MzJCMzszMkIzOzAwMzMgMDAzODswMDMzIDAwMzg7CiszMkI0OzMyQjQ7MzJCNDswMDMzIDAwMzk7MDAzMyAwMDM5OworMzJCNTszMkI1OzMyQjU7MDAzNCAwMDMwOzAwMzQgMDAzMDsKKzMyQjY7MzJCNjszMkI2OzAwMzQgMDAzMTswMDM0IDAwMzE7CiszMkI3OzMyQjc7MzJCNzswMDM0IDAwMzI7MDAzNCAwMDMyOworMzJCODszMkI4OzMyQjg7MDAzNCAwMDMzOzAwMzQgMDAzMzsKKzMyQjk7MzJCOTszMkI5OzAwMzQgMDAzNDswMDM0IDAwMzQ7CiszMkJBOzMyQkE7MzJCQTswMDM0IDAwMzU7MDAzNCAwMDM1OworMzJCQjszMkJCOzMyQkI7MDAzNCAwMDM2OzAwMzQgMDAzNjsKKzMyQkM7MzJCQzszMkJDOzAwMzQgMDAzNzswMDM0IDAwMzc7CiszMkJEOzMyQkQ7MzJCRDswMDM0IDAwMzg7MDAzNCAwMDM4OworMzJCRTszMkJFOzMyQkU7MDAzNCAwMDM5OzAwMzQgMDAzOTsKKzMyQkY7MzJCRjszMkJGOzAwMzUgMDAzMDswMDM1IDAwMzA7CiszMkMwOzMyQzA7MzJDMDswMDMxIDY3MDg7MDAzMSA2NzA4OworMzJDMTszMkMxOzMyQzE7MDAzMiA2NzA4OzAwMzIgNjcwODsKKzMyQzI7MzJDMjszMkMyOzAwMzMgNjcwODswMDMzIDY3MDg7CiszMkMzOzMyQzM7MzJDMzswMDM0IDY3MDg7MDAzNCA2NzA4OworMzJDNDszMkM0OzMyQzQ7MDAzNSA2NzA4OzAwMzUgNjcwODsKKzMyQzU7MzJDNTszMkM1OzAwMzYgNjcwODswMDM2IDY3MDg7CiszMkM2OzMyQzY7MzJDNjswMDM3IDY3MDg7MDAzNyA2NzA4OworMzJDNzszMkM3OzMyQzc7MDAzOCA2NzA4OzAwMzggNjcwODsKKzMyQzg7MzJDODszMkM4OzAwMzkgNjcwODswMDM5IDY3MDg7CiszMkM5OzMyQzk7MzJDOTswMDMxIDAwMzAgNjcwODswMDMxIDAwMzAgNjcwODsKKzMyQ0E7MzJDQTszMkNBOzAwMzEgMDAzMSA2NzA4OzAwMzEgMDAzMSA2NzA4OworMzJDQjszMkNCOzMyQ0I7MDAzMSAwMDMyIDY3MDg7MDAzMSAwMDMyIDY3MDg7CiszMkNDOzMyQ0M7MzJDQzswMDQ4IDAwNjc7MDA0OCAwMDY3OworMzJDRDszMkNEOzMyQ0Q7MDA2NSAwMDcyIDAwNjc7MDA2NSAwMDcyIDAwNjc7CiszMkNFOzMyQ0U7MzJDRTswMDY1IDAwNTY7MDA2NSAwMDU2OworMzJDRjszMkNGOzMyQ0Y7MDA0QyAwMDU0IDAwNDQ7MDA0QyAwMDU0IDAwNDQ7CiszMkQwOzMyRDA7MzJEMDszMEEyOzMwQTI7CiszMkQxOzMyRDE7MzJEMTszMEE0OzMwQTQ7CiszMkQyOzMyRDI7MzJEMjszMEE2OzMwQTY7CiszMkQzOzMyRDM7MzJEMzszMEE4OzMwQTg7CiszMkQ0OzMyRDQ7MzJENDszMEFBOzMwQUE7CiszMkQ1OzMyRDU7MzJENTszMEFCOzMwQUI7CiszMkQ2OzMyRDY7MzJENjszMEFEOzMwQUQ7CiszMkQ3OzMyRDc7MzJENzszMEFGOzMwQUY7CiszMkQ4OzMyRDg7MzJEODszMEIxOzMwQjE7CiszMkQ5OzMyRDk7MzJEOTszMEIzOzMwQjM7CiszMkRBOzMyREE7MzJEQTszMEI1OzMwQjU7CiszMkRCOzMyREI7MzJEQjszMEI3OzMwQjc7CiszMkRDOzMyREM7MzJEQzszMEI5OzMwQjk7CiszMkREOzMyREQ7MzJERDszMEJCOzMwQkI7CiszMkRFOzMyREU7MzJERTszMEJEOzMwQkQ7CiszMkRGOzMyREY7MzJERjszMEJGOzMwQkY7CiszMkUwOzMyRTA7MzJFMDszMEMxOzMwQzE7CiszMkUxOzMyRTE7MzJFMTszMEM0OzMwQzQ7CiszMkUyOzMyRTI7MzJFMjszMEM2OzMwQzY7CiszMkUzOzMyRTM7MzJFMzszMEM4OzMwQzg7CiszMkU0OzMyRTQ7MzJFNDszMENBOzMwQ0E7CiszMkU1OzMyRTU7MzJFNTszMENCOzMwQ0I7CiszMkU2OzMyRTY7MzJFNjszMENDOzMwQ0M7CiszMkU3OzMyRTc7MzJFNzszMENEOzMwQ0Q7CiszMkU4OzMyRTg7MzJFODszMENFOzMwQ0U7CiszMkU5OzMyRTk7MzJFOTszMENGOzMwQ0Y7CiszMkVBOzMyRUE7MzJFQTszMEQyOzMwRDI7CiszMkVCOzMyRUI7MzJFQjszMEQ1OzMwRDU7CiszMkVDOzMyRUM7MzJFQzszMEQ4OzMwRDg7CiszMkVEOzMyRUQ7MzJFRDszMERCOzMwREI7CiszMkVFOzMyRUU7MzJFRTszMERFOzMwREU7CiszMkVGOzMyRUY7MzJFRjszMERGOzMwREY7CiszMkYwOzMyRjA7MzJGMDszMEUwOzMwRTA7CiszMkYxOzMyRjE7MzJGMTszMEUxOzMwRTE7CiszMkYyOzMyRjI7MzJGMjszMEUyOzMwRTI7CiszMkYzOzMyRjM7MzJGMzszMEU0OzMwRTQ7CiszMkY0OzMyRjQ7MzJGNDszMEU2OzMwRTY7CiszMkY1OzMyRjU7MzJGNTszMEU4OzMwRTg7CiszMkY2OzMyRjY7MzJGNjszMEU5OzMwRTk7CiszMkY3OzMyRjc7MzJGNzszMEVBOzMwRUE7CiszMkY4OzMyRjg7MzJGODszMEVCOzMwRUI7CiszMkY5OzMyRjk7MzJGOTszMEVDOzMwRUM7CiszMkZBOzMyRkE7MzJGQTszMEVEOzMwRUQ7CiszMkZCOzMyRkI7MzJGQjszMEVGOzMwRUY7CiszMkZDOzMyRkM7MzJGQzszMEYwOzMwRjA7CiszMkZEOzMyRkQ7MzJGRDszMEYxOzMwRjE7CiszMkZFOzMyRkU7MzJGRTszMEYyOzMwRjI7CiszMzAwOzMzMDA7MzMwMDszMEEyIDMwRDEgMzBGQyAzMEM4OzMwQTIgMzBDRiAzMDlBIDMwRkMgMzBDODsKKzMzMDE7MzMwMTszMzAxOzMwQTIgMzBFQiAzMEQ1IDMwQTE7MzBBMiAzMEVCIDMwRDUgMzBBMTsKKzMzMDI7MzMwMjszMzAyOzMwQTIgMzBGMyAzMERBIDMwQTI7MzBBMiAzMEYzIDMwRDggMzA5QSAzMEEyOworMzMwMzszMzAzOzMzMDM7MzBBMiAzMEZDIDMwRUI7MzBBMiAzMEZDIDMwRUI7CiszMzA0OzMzMDQ7MzMwNDszMEE0IDMwQ0IgMzBGMyAzMEIwOzMwQTQgMzBDQiAzMEYzIDMwQUYgMzA5OTsKKzMzMDU7MzMwNTszMzA1OzMwQTQgMzBGMyAzMEMxOzMwQTQgMzBGMyAzMEMxOworMzMwNjszMzA2OzMzMDY7MzBBNiAzMEE5IDMwRjM7MzBBNiAzMEE5IDMwRjM7CiszMzA3OzMzMDc7MzMwNzszMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7MzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM4IDMwOTk7CiszMzA4OzMzMDg7MzMwODszMEE4IDMwRkMgMzBBQiAzMEZDOzMwQTggMzBGQyAzMEFCIDMwRkM7CiszMzA5OzMzMDk7MzMwOTszMEFBIDMwRjMgMzBCOTszMEFBIDMwRjMgMzBCOTsKKzMzMEE7MzMwQTszMzBBOzMwQUEgMzBGQyAzMEUwOzMwQUEgMzBGQyAzMEUwOworMzMwQjszMzBCOzMzMEI7MzBBQiAzMEE0IDMwRUE7MzBBQiAzMEE0IDMwRUE7CiszMzBDOzMzMEM7MzMwQzszMEFCIDMwRTkgMzBDMyAzMEM4OzMwQUIgMzBFOSAzMEMzIDMwQzg7CiszMzBEOzMzMEQ7MzMwRDszMEFCIDMwRUQgMzBFQSAzMEZDOzMwQUIgMzBFRCAzMEVBIDMwRkM7CiszMzBFOzMzMEU7MzMwRTszMEFDIDMwRUQgMzBGMzszMEFCIDMwOTkgMzBFRCAzMEYzOworMzMwRjszMzBGOzMzMEY7MzBBQyAzMEYzIDMwREU7MzBBQiAzMDk5IDMwRjMgMzBERTsKKzMzMTA7MzMxMDszMzEwOzMwQUUgMzBBQzszMEFEIDMwOTkgMzBBQiAzMDk5OworMzMxMTszMzExOzMzMTE7MzBBRSAzMENCIDMwRkM7MzBBRCAzMDk5IDMwQ0IgMzBGQzsKKzMzMTI7MzMxMjszMzEyOzMwQUQgMzBFNSAzMEVBIDMwRkM7MzBBRCAzMEU1IDMwRUEgMzBGQzsKKzMzMTM7MzMxMzszMzEzOzMwQUUgMzBFQiAzMEMwIDMwRkM7MzBBRCAzMDk5IDMwRUIgMzBCRiAzMDk5IDMwRkM7CiszMzE0OzMzMTQ7MzMxNDszMEFEIDMwRUQ7MzBBRCAzMEVEOworMzMxNTszMzE1OzMzMTU7MzBBRCAzMEVEIDMwQjAgMzBFOSAzMEUwOzMwQUQgMzBFRCAzMEFGIDMwOTkgMzBFOSAzMEUwOworMzMxNjszMzE2OzMzMTY7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzE3OzMzMTc7MzMxNzszMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7MzBBRCAzMEVEIDMwRUYgMzBDMyAzMEM4OworMzMxODszMzE4OzMzMTg7MzBCMCAzMEU5IDMwRTA7MzBBRiAzMDk5IDMwRTkgMzBFMDsKKzMzMTk7MzMxOTszMzE5OzMwQjAgMzBFOSAzMEUwIDMwQzggMzBGMzszMEFGIDMwOTkgMzBFOSAzMEUwIDMwQzggMzBGMzsKKzMzMUE7MzMxQTszMzFBOzMwQUYgMzBFQiAzMEJDIDMwQTQgMzBFRDszMEFGIDMwRUIgMzBCQiAzMDk5IDMwQTQgMzBFRDsKKzMzMUI7MzMxQjszMzFCOzMwQUYgMzBFRCAzMEZDIDMwQ0Q7MzBBRiAzMEVEIDMwRkMgMzBDRDsKKzMzMUM7MzMxQzszMzFDOzMwQjEgMzBGQyAzMEI5OzMwQjEgMzBGQyAzMEI5OworMzMxRDszMzFEOzMzMUQ7MzBCMyAzMEVCIDMwQ0E7MzBCMyAzMEVCIDMwQ0E7CiszMzFFOzMzMUU7MzMxRTszMEIzIDMwRkMgMzBERDszMEIzIDMwRkMgMzBEQiAzMDlBOworMzMxRjszMzFGOzMzMUY7MzBCNSAzMEE0IDMwQUYgMzBFQjszMEI1IDMwQTQgMzBBRiAzMEVCOworMzMyMDszMzIwOzMzMjA7MzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOzMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDsKKzMzMjE7MzMyMTszMzIxOzMwQjcgMzBFQSAzMEYzIDMwQjA7MzBCNyAzMEVBIDMwRjMgMzBBRiAzMDk5OworMzMyMjszMzIyOzMzMjI7MzBCQiAzMEYzIDMwQzE7MzBCQiAzMEYzIDMwQzE7CiszMzIzOzMzMjM7MzMyMzszMEJCIDMwRjMgMzBDODszMEJCIDMwRjMgMzBDODsKKzMzMjQ7MzMyNDszMzI0OzMwQzAgMzBGQyAzMEI5OzMwQkYgMzA5OSAzMEZDIDMwQjk7CiszMzI1OzMzMjU7MzMyNTszMEM3IDMwQjc7MzBDNiAzMDk5IDMwQjc7CiszMzI2OzMzMjY7MzMyNjszMEM5IDMwRUI7MzBDOCAzMDk5IDMwRUI7CiszMzI3OzMzMjc7MzMyNzszMEM4IDMwRjM7MzBDOCAzMEYzOworMzMyODszMzI4OzMzMjg7MzBDQSAzMENFOzMwQ0EgMzBDRTsKKzMzMjk7MzMyOTszMzI5OzMwQ0UgMzBDMyAzMEM4OzMwQ0UgMzBDMyAzMEM4OworMzMyQTszMzJBOzMzMkE7MzBDRiAzMEE0IDMwQzQ7MzBDRiAzMEE0IDMwQzQ7CiszMzJCOzMzMkI7MzMyQjszMEQxIDMwRkMgMzBCQiAzMEYzIDMwQzg7MzBDRiAzMDlBIDMwRkMgMzBCQiAzMEYzIDMwQzg7CiszMzJDOzMzMkM7MzMyQzszMEQxIDMwRkMgMzBDNDszMENGIDMwOUEgMzBGQyAzMEM0OworMzMyRDszMzJEOzMzMkQ7MzBEMCAzMEZDIDMwRUMgMzBFQjszMENGIDMwOTkgMzBGQyAzMEVDIDMwRUI7CiszMzJFOzMzMkU7MzMyRTszMEQ0IDMwQTIgMzBCOSAzMEM4IDMwRUI7MzBEMiAzMDlBIDMwQTIgMzBCOSAzMEM4IDMwRUI7CiszMzJGOzMzMkY7MzMyRjszMEQ0IDMwQUYgMzBFQjszMEQyIDMwOUEgMzBBRiAzMEVCOworMzMzMDszMzMwOzMzMzA7MzBENCAzMEIzOzMwRDIgMzA5QSAzMEIzOworMzMzMTszMzMxOzMzMzE7MzBEMyAzMEVCOzMwRDIgMzA5OSAzMEVCOworMzMzMjszMzMyOzMzMzI7MzBENSAzMEExIDMwRTkgMzBDMyAzMEM5OzMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOCAzMDk5OworMzMzMzszMzMzOzMzMzM7MzBENSAzMEEzIDMwRkMgMzBDODszMEQ1IDMwQTMgMzBGQyAzMEM4OworMzMzNDszMzM0OzMzMzQ7MzBENiAzMEMzIDMwQjcgMzBBNyAzMEVCOzMwRDUgMzA5OSAzMEMzIDMwQjcgMzBBNyAzMEVCOworMzMzNTszMzM1OzMzMzU7MzBENSAzMEU5IDMwRjM7MzBENSAzMEU5IDMwRjM7CiszMzM2OzMzMzY7MzMzNjszMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7MzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOworMzMzNzszMzM3OzMzMzc7MzBEQSAzMEJEOzMwRDggMzA5QSAzMEJEOworMzMzODszMzM4OzMzMzg7MzBEQSAzMENCIDMwRDI7MzBEOCAzMDlBIDMwQ0IgMzBEMjsKKzMzMzk7MzMzOTszMzM5OzMwRDggMzBFQiAzMEM0OzMwRDggMzBFQiAzMEM0OworMzMzQTszMzNBOzMzM0E7MzBEQSAzMEYzIDMwQjk7MzBEOCAzMDlBIDMwRjMgMzBCOTsKKzMzM0I7MzMzQjszMzNCOzMwREEgMzBGQyAzMEI4OzMwRDggMzA5QSAzMEZDIDMwQjcgMzA5OTsKKzMzM0M7MzMzQzszMzNDOzMwRDkgMzBGQyAzMEJGOzMwRDggMzA5OSAzMEZDIDMwQkY7CiszMzNEOzMzM0Q7MzMzRDszMEREIDMwQTQgMzBGMyAzMEM4OzMwREIgMzA5QSAzMEE0IDMwRjMgMzBDODsKKzMzM0U7MzMzRTszMzNFOzMwREMgMzBFQiAzMEM4OzMwREIgMzA5OSAzMEVCIDMwQzg7CiszMzNGOzMzM0Y7MzMzRjszMERCIDMwRjM7MzBEQiAzMEYzOworMzM0MDszMzQwOzMzNDA7MzBERCAzMEYzIDMwQzk7MzBEQiAzMDlBIDMwRjMgMzBDOCAzMDk5OworMzM0MTszMzQxOzMzNDE7MzBEQiAzMEZDIDMwRUI7MzBEQiAzMEZDIDMwRUI7CiszMzQyOzMzNDI7MzM0MjszMERCIDMwRkMgMzBGMzszMERCIDMwRkMgMzBGMzsKKzMzNDM7MzM0MzszMzQzOzMwREUgMzBBNCAzMEFGIDMwRUQ7MzBERSAzMEE0IDMwQUYgMzBFRDsKKzMzNDQ7MzM0NDszMzQ0OzMwREUgMzBBNCAzMEVCOzMwREUgMzBBNCAzMEVCOworMzM0NTszMzQ1OzMzNDU7MzBERSAzMEMzIDMwQ0Y7MzBERSAzMEMzIDMwQ0Y7CiszMzQ2OzMzNDY7MzM0NjszMERFIDMwRUIgMzBBRjszMERFIDMwRUIgMzBBRjsKKzMzNDc7MzM0NzszMzQ3OzMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzszMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7CiszMzQ4OzMzNDg7MzM0ODszMERGIDMwQUYgMzBFRCAzMEYzOzMwREYgMzBBRiAzMEVEIDMwRjM7CiszMzQ5OzMzNDk7MzM0OTszMERGIDMwRUE7MzBERiAzMEVBOworMzM0QTszMzRBOzMzNEE7MzBERiAzMEVBIDMwRDAgMzBGQyAzMEVCOzMwREYgMzBFQSAzMENGIDMwOTkgMzBGQyAzMEVCOworMzM0QjszMzRCOzMzNEI7MzBFMSAzMEFDOzMwRTEgMzBBQiAzMDk5OworMzM0QzszMzRDOzMzNEM7MzBFMSAzMEFDIDMwQzggMzBGMzszMEUxIDMwQUIgMzA5OSAzMEM4IDMwRjM7CiszMzREOzMzNEQ7MzM0RDszMEUxIDMwRkMgMzBDOCAzMEVCOzMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzRFOzMzNEU7MzM0RTszMEU0IDMwRkMgMzBDOTszMEU0IDMwRkMgMzBDOCAzMDk5OworMzM0RjszMzRGOzMzNEY7MzBFNCAzMEZDIDMwRUI7MzBFNCAzMEZDIDMwRUI7CiszMzUwOzMzNTA7MzM1MDszMEU2IDMwQTIgMzBGMzszMEU2IDMwQTIgMzBGMzsKKzMzNTE7MzM1MTszMzUxOzMwRUEgMzBDMyAzMEM4IDMwRUI7MzBFQSAzMEMzIDMwQzggMzBFQjsKKzMzNTI7MzM1MjszMzUyOzMwRUEgMzBFOTszMEVBIDMwRTk7CiszMzUzOzMzNTM7MzM1MzszMEVCIDMwRDQgMzBGQzszMEVCIDMwRDIgMzA5QSAzMEZDOworMzM1NDszMzU0OzMzNTQ7MzBFQiAzMEZDIDMwRDYgMzBFQjszMEVCIDMwRkMgMzBENSAzMDk5IDMwRUI7CiszMzU1OzMzNTU7MzM1NTszMEVDIDMwRTA7MzBFQyAzMEUwOworMzM1NjszMzU2OzMzNTY7MzBFQyAzMEYzIDMwQzggMzBCMiAzMEYzOzMwRUMgMzBGMyAzMEM4IDMwQjEgMzA5OSAzMEYzOworMzM1NzszMzU3OzMzNTc7MzBFRiAzMEMzIDMwQzg7MzBFRiAzMEMzIDMwQzg7CiszMzU4OzMzNTg7MzM1ODswMDMwIDcwQjk7MDAzMCA3MEI5OworMzM1OTszMzU5OzMzNTk7MDAzMSA3MEI5OzAwMzEgNzBCOTsKKzMzNUE7MzM1QTszMzVBOzAwMzIgNzBCOTswMDMyIDcwQjk7CiszMzVCOzMzNUI7MzM1QjswMDMzIDcwQjk7MDAzMyA3MEI5OworMzM1QzszMzVDOzMzNUM7MDAzNCA3MEI5OzAwMzQgNzBCOTsKKzMzNUQ7MzM1RDszMzVEOzAwMzUgNzBCOTswMDM1IDcwQjk7CiszMzVFOzMzNUU7MzM1RTswMDM2IDcwQjk7MDAzNiA3MEI5OworMzM1RjszMzVGOzMzNUY7MDAzNyA3MEI5OzAwMzcgNzBCOTsKKzMzNjA7MzM2MDszMzYwOzAwMzggNzBCOTswMDM4IDcwQjk7CiszMzYxOzMzNjE7MzM2MTswMDM5IDcwQjk7MDAzOSA3MEI5OworMzM2MjszMzYyOzMzNjI7MDAzMSAwMDMwIDcwQjk7MDAzMSAwMDMwIDcwQjk7CiszMzYzOzMzNjM7MzM2MzswMDMxIDAwMzEgNzBCOTswMDMxIDAwMzEgNzBCOTsKKzMzNjQ7MzM2NDszMzY0OzAwMzEgMDAzMiA3MEI5OzAwMzEgMDAzMiA3MEI5OworMzM2NTszMzY1OzMzNjU7MDAzMSAwMDMzIDcwQjk7MDAzMSAwMDMzIDcwQjk7CiszMzY2OzMzNjY7MzM2NjswMDMxIDAwMzQgNzBCOTswMDMxIDAwMzQgNzBCOTsKKzMzNjc7MzM2NzszMzY3OzAwMzEgMDAzNSA3MEI5OzAwMzEgMDAzNSA3MEI5OworMzM2ODszMzY4OzMzNjg7MDAzMSAwMDM2IDcwQjk7MDAzMSAwMDM2IDcwQjk7CiszMzY5OzMzNjk7MzM2OTswMDMxIDAwMzcgNzBCOTswMDMxIDAwMzcgNzBCOTsKKzMzNkE7MzM2QTszMzZBOzAwMzEgMDAzOCA3MEI5OzAwMzEgMDAzOCA3MEI5OworMzM2QjszMzZCOzMzNkI7MDAzMSAwMDM5IDcwQjk7MDAzMSAwMDM5IDcwQjk7CiszMzZDOzMzNkM7MzM2QzswMDMyIDAwMzAgNzBCOTswMDMyIDAwMzAgNzBCOTsKKzMzNkQ7MzM2RDszMzZEOzAwMzIgMDAzMSA3MEI5OzAwMzIgMDAzMSA3MEI5OworMzM2RTszMzZFOzMzNkU7MDAzMiAwMDMyIDcwQjk7MDAzMiAwMDMyIDcwQjk7CiszMzZGOzMzNkY7MzM2RjswMDMyIDAwMzMgNzBCOTswMDMyIDAwMzMgNzBCOTsKKzMzNzA7MzM3MDszMzcwOzAwMzIgMDAzNCA3MEI5OzAwMzIgMDAzNCA3MEI5OworMzM3MTszMzcxOzMzNzE7MDA2OCAwMDUwIDAwNjE7MDA2OCAwMDUwIDAwNjE7CiszMzcyOzMzNzI7MzM3MjswMDY0IDAwNjE7MDA2NCAwMDYxOworMzM3MzszMzczOzMzNzM7MDA0MSAwMDU1OzAwNDEgMDA1NTsKKzMzNzQ7MzM3NDszMzc0OzAwNjIgMDA2MSAwMDcyOzAwNjIgMDA2MSAwMDcyOworMzM3NTszMzc1OzMzNzU7MDA2RiAwMDU2OzAwNkYgMDA1NjsKKzMzNzY7MzM3NjszMzc2OzAwNzAgMDA2MzswMDcwIDAwNjM7CiszMzc3OzMzNzc7MzM3NzswMDY0IDAwNkQ7MDA2NCAwMDZEOworMzM3ODszMzc4OzMzNzg7MDA2NCAwMDZEIDAwMzI7MDA2NCAwMDZEIDAwMzI7CiszMzc5OzMzNzk7MzM3OTswMDY0IDAwNkQgMDAzMzswMDY0IDAwNkQgMDAzMzsKKzMzN0E7MzM3QTszMzdBOzAwNDkgMDA1NTswMDQ5IDAwNTU7CiszMzdCOzMzN0I7MzM3Qjs1RTczIDYyMTA7NUU3MyA2MjEwOworMzM3QzszMzdDOzMzN0M7NjYyRCA1NDhDOzY2MkQgNTQ4QzsKKzMzN0Q7MzM3RDszMzdEOzU5MjcgNkI2Mzs1OTI3IDZCNjM7CiszMzdFOzMzN0U7MzM3RTs2NjBFIDZDQkI7NjYwRSA2Q0JCOworMzM3RjszMzdGOzMzN0Y7NjgyQSA1RjBGIDRGMUEgNzkzRTs2ODJBIDVGMEYgNEYxQSA3OTNFOworMzM4MDszMzgwOzMzODA7MDA3MCAwMDQxOzAwNzAgMDA0MTsKKzMzODE7MzM4MTszMzgxOzAwNkUgMDA0MTswMDZFIDAwNDE7CiszMzgyOzMzODI7MzM4MjswM0JDIDAwNDE7MDNCQyAwMDQxOworMzM4MzszMzgzOzMzODM7MDA2RCAwMDQxOzAwNkQgMDA0MTsKKzMzODQ7MzM4NDszMzg0OzAwNkIgMDA0MTswMDZCIDAwNDE7CiszMzg1OzMzODU7MzM4NTswMDRCIDAwNDI7MDA0QiAwMDQyOworMzM4NjszMzg2OzMzODY7MDA0RCAwMDQyOzAwNEQgMDA0MjsKKzMzODc7MzM4NzszMzg3OzAwNDcgMDA0MjswMDQ3IDAwNDI7CiszMzg4OzMzODg7MzM4ODswMDYzIDAwNjEgMDA2QzswMDYzIDAwNjEgMDA2QzsKKzMzODk7MzM4OTszMzg5OzAwNkIgMDA2MyAwMDYxIDAwNkM7MDA2QiAwMDYzIDAwNjEgMDA2QzsKKzMzOEE7MzM4QTszMzhBOzAwNzAgMDA0NjswMDcwIDAwNDY7CiszMzhCOzMzOEI7MzM4QjswMDZFIDAwNDY7MDA2RSAwMDQ2OworMzM4QzszMzhDOzMzOEM7MDNCQyAwMDQ2OzAzQkMgMDA0NjsKKzMzOEQ7MzM4RDszMzhEOzAzQkMgMDA2NzswM0JDIDAwNjc7CiszMzhFOzMzOEU7MzM4RTswMDZEIDAwNjc7MDA2RCAwMDY3OworMzM4RjszMzhGOzMzOEY7MDA2QiAwMDY3OzAwNkIgMDA2NzsKKzMzOTA7MzM5MDszMzkwOzAwNDggMDA3QTswMDQ4IDAwN0E7CiszMzkxOzMzOTE7MzM5MTswMDZCIDAwNDggMDA3QTswMDZCIDAwNDggMDA3QTsKKzMzOTI7MzM5MjszMzkyOzAwNEQgMDA0OCAwMDdBOzAwNEQgMDA0OCAwMDdBOworMzM5MzszMzkzOzMzOTM7MDA0NyAwMDQ4IDAwN0E7MDA0NyAwMDQ4IDAwN0E7CiszMzk0OzMzOTQ7MzM5NDswMDU0IDAwNDggMDA3QTswMDU0IDAwNDggMDA3QTsKKzMzOTU7MzM5NTszMzk1OzAzQkMgMDA2QzswM0JDIDAwNkM7CiszMzk2OzMzOTY7MzM5NjswMDZEIDAwNkM7MDA2RCAwMDZDOworMzM5NzszMzk3OzMzOTc7MDA2NCAwMDZDOzAwNjQgMDA2QzsKKzMzOTg7MzM5ODszMzk4OzAwNkIgMDA2QzswMDZCIDAwNkM7CiszMzk5OzMzOTk7MzM5OTswMDY2IDAwNkQ7MDA2NiAwMDZEOworMzM5QTszMzlBOzMzOUE7MDA2RSAwMDZEOzAwNkUgMDA2RDsKKzMzOUI7MzM5QjszMzlCOzAzQkMgMDA2RDswM0JDIDAwNkQ7CiszMzlDOzMzOUM7MzM5QzswMDZEIDAwNkQ7MDA2RCAwMDZEOworMzM5RDszMzlEOzMzOUQ7MDA2MyAwMDZEOzAwNjMgMDA2RDsKKzMzOUU7MzM5RTszMzlFOzAwNkIgMDA2RDswMDZCIDAwNkQ7CiszMzlGOzMzOUY7MzM5RjswMDZEIDAwNkQgMDAzMjswMDZEIDAwNkQgMDAzMjsKKzMzQTA7MzNBMDszM0EwOzAwNjMgMDA2RCAwMDMyOzAwNjMgMDA2RCAwMDMyOworMzNBMTszM0ExOzMzQTE7MDA2RCAwMDMyOzAwNkQgMDAzMjsKKzMzQTI7MzNBMjszM0EyOzAwNkIgMDA2RCAwMDMyOzAwNkIgMDA2RCAwMDMyOworMzNBMzszM0EzOzMzQTM7MDA2RCAwMDZEIDAwMzM7MDA2RCAwMDZEIDAwMzM7CiszM0E0OzMzQTQ7MzNBNDswMDYzIDAwNkQgMDAzMzswMDYzIDAwNkQgMDAzMzsKKzMzQTU7MzNBNTszM0E1OzAwNkQgMDAzMzswMDZEIDAwMzM7CiszM0E2OzMzQTY7MzNBNjswMDZCIDAwNkQgMDAzMzswMDZCIDAwNkQgMDAzMzsKKzMzQTc7MzNBNzszM0E3OzAwNkQgMjIxNSAwMDczOzAwNkQgMjIxNSAwMDczOworMzNBODszM0E4OzMzQTg7MDA2RCAyMjE1IDAwNzMgMDAzMjswMDZEIDIyMTUgMDA3MyAwMDMyOworMzNBOTszM0E5OzMzQTk7MDA1MCAwMDYxOzAwNTAgMDA2MTsKKzMzQUE7MzNBQTszM0FBOzAwNkIgMDA1MCAwMDYxOzAwNkIgMDA1MCAwMDYxOworMzNBQjszM0FCOzMzQUI7MDA0RCAwMDUwIDAwNjE7MDA0RCAwMDUwIDAwNjE7CiszM0FDOzMzQUM7MzNBQzswMDQ3IDAwNTAgMDA2MTswMDQ3IDAwNTAgMDA2MTsKKzMzQUQ7MzNBRDszM0FEOzAwNzIgMDA2MSAwMDY0OzAwNzIgMDA2MSAwMDY0OworMzNBRTszM0FFOzMzQUU7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MzsKKzMzQUY7MzNBRjszM0FGOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOworMzNCMDszM0IwOzMzQjA7MDA3MCAwMDczOzAwNzAgMDA3MzsKKzMzQjE7MzNCMTszM0IxOzAwNkUgMDA3MzswMDZFIDAwNzM7CiszM0IyOzMzQjI7MzNCMjswM0JDIDAwNzM7MDNCQyAwMDczOworMzNCMzszM0IzOzMzQjM7MDA2RCAwMDczOzAwNkQgMDA3MzsKKzMzQjQ7MzNCNDszM0I0OzAwNzAgMDA1NjswMDcwIDAwNTY7CiszM0I1OzMzQjU7MzNCNTswMDZFIDAwNTY7MDA2RSAwMDU2OworMzNCNjszM0I2OzMzQjY7MDNCQyAwMDU2OzAzQkMgMDA1NjsKKzMzQjc7MzNCNzszM0I3OzAwNkQgMDA1NjswMDZEIDAwNTY7CiszM0I4OzMzQjg7MzNCODswMDZCIDAwNTY7MDA2QiAwMDU2OworMzNCOTszM0I5OzMzQjk7MDA0RCAwMDU2OzAwNEQgMDA1NjsKKzMzQkE7MzNCQTszM0JBOzAwNzAgMDA1NzswMDcwIDAwNTc7CiszM0JCOzMzQkI7MzNCQjswMDZFIDAwNTc7MDA2RSAwMDU3OworMzNCQzszM0JDOzMzQkM7MDNCQyAwMDU3OzAzQkMgMDA1NzsKKzMzQkQ7MzNCRDszM0JEOzAwNkQgMDA1NzswMDZEIDAwNTc7CiszM0JFOzMzQkU7MzNCRTswMDZCIDAwNTc7MDA2QiAwMDU3OworMzNCRjszM0JGOzMzQkY7MDA0RCAwMDU3OzAwNEQgMDA1NzsKKzMzQzA7MzNDMDszM0MwOzAwNkIgMDNBOTswMDZCIDAzQTk7CiszM0MxOzMzQzE7MzNDMTswMDREIDAzQTk7MDA0RCAwM0E5OworMzNDMjszM0MyOzMzQzI7MDA2MSAwMDJFIDAwNkQgMDAyRTswMDYxIDAwMkUgMDA2RCAwMDJFOworMzNDMzszM0MzOzMzQzM7MDA0MiAwMDcxOzAwNDIgMDA3MTsKKzMzQzQ7MzNDNDszM0M0OzAwNjMgMDA2MzswMDYzIDAwNjM7CiszM0M1OzMzQzU7MzNDNTswMDYzIDAwNjQ7MDA2MyAwMDY0OworMzNDNjszM0M2OzMzQzY7MDA0MyAyMjE1IDAwNkIgMDA2NzswMDQzIDIyMTUgMDA2QiAwMDY3OworMzNDNzszM0M3OzMzQzc7MDA0MyAwMDZGIDAwMkU7MDA0MyAwMDZGIDAwMkU7CiszM0M4OzMzQzg7MzNDODswMDY0IDAwNDI7MDA2NCAwMDQyOworMzNDOTszM0M5OzMzQzk7MDA0NyAwMDc5OzAwNDcgMDA3OTsKKzMzQ0E7MzNDQTszM0NBOzAwNjggMDA2MTswMDY4IDAwNjE7CiszM0NCOzMzQ0I7MzNDQjswMDQ4IDAwNTA7MDA0OCAwMDUwOworMzNDQzszM0NDOzMzQ0M7MDA2OSAwMDZFOzAwNjkgMDA2RTsKKzMzQ0Q7MzNDRDszM0NEOzAwNEIgMDA0QjswMDRCIDAwNEI7CiszM0NFOzMzQ0U7MzNDRTswMDRCIDAwNEQ7MDA0QiAwMDREOworMzNDRjszM0NGOzMzQ0Y7MDA2QiAwMDc0OzAwNkIgMDA3NDsKKzMzRDA7MzNEMDszM0QwOzAwNkMgMDA2RDswMDZDIDAwNkQ7CiszM0QxOzMzRDE7MzNEMTswMDZDIDAwNkU7MDA2QyAwMDZFOworMzNEMjszM0QyOzMzRDI7MDA2QyAwMDZGIDAwNjc7MDA2QyAwMDZGIDAwNjc7CiszM0QzOzMzRDM7MzNEMzswMDZDIDAwNzg7MDA2QyAwMDc4OworMzNENDszM0Q0OzMzRDQ7MDA2RCAwMDYyOzAwNkQgMDA2MjsKKzMzRDU7MzNENTszM0Q1OzAwNkQgMDA2OSAwMDZDOzAwNkQgMDA2OSAwMDZDOworMzNENjszM0Q2OzMzRDY7MDA2RCAwMDZGIDAwNkM7MDA2RCAwMDZGIDAwNkM7CiszM0Q3OzMzRDc7MzNENzswMDUwIDAwNDg7MDA1MCAwMDQ4OworMzNEODszM0Q4OzMzRDg7MDA3MCAwMDJFIDAwNkQgMDAyRTswMDcwIDAwMkUgMDA2RCAwMDJFOworMzNEOTszM0Q5OzMzRDk7MDA1MCAwMDUwIDAwNEQ7MDA1MCAwMDUwIDAwNEQ7CiszM0RBOzMzREE7MzNEQTswMDUwIDAwNTI7MDA1MCAwMDUyOworMzNEQjszM0RCOzMzREI7MDA3MyAwMDcyOzAwNzMgMDA3MjsKKzMzREM7MzNEQzszM0RDOzAwNTMgMDA3NjswMDUzIDAwNzY7CiszM0REOzMzREQ7MzNERDswMDU3IDAwNjI7MDA1NyAwMDYyOworMzNERTszM0RFOzMzREU7MDA1NiAyMjE1IDAwNkQ7MDA1NiAyMjE1IDAwNkQ7CiszM0RGOzMzREY7MzNERjswMDQxIDIyMTUgMDA2RDswMDQxIDIyMTUgMDA2RDsKKzMzRTA7MzNFMDszM0UwOzAwMzEgNjVFNTswMDMxIDY1RTU7CiszM0UxOzMzRTE7MzNFMTswMDMyIDY1RTU7MDAzMiA2NUU1OworMzNFMjszM0UyOzMzRTI7MDAzMyA2NUU1OzAwMzMgNjVFNTsKKzMzRTM7MzNFMzszM0UzOzAwMzQgNjVFNTswMDM0IDY1RTU7CiszM0U0OzMzRTQ7MzNFNDswMDM1IDY1RTU7MDAzNSA2NUU1OworMzNFNTszM0U1OzMzRTU7MDAzNiA2NUU1OzAwMzYgNjVFNTsKKzMzRTY7MzNFNjszM0U2OzAwMzcgNjVFNTswMDM3IDY1RTU7CiszM0U3OzMzRTc7MzNFNzswMDM4IDY1RTU7MDAzOCA2NUU1OworMzNFODszM0U4OzMzRTg7MDAzOSA2NUU1OzAwMzkgNjVFNTsKKzMzRTk7MzNFOTszM0U5OzAwMzEgMDAzMCA2NUU1OzAwMzEgMDAzMCA2NUU1OworMzNFQTszM0VBOzMzRUE7MDAzMSAwMDMxIDY1RTU7MDAzMSAwMDMxIDY1RTU7CiszM0VCOzMzRUI7MzNFQjswMDMxIDAwMzIgNjVFNTswMDMxIDAwMzIgNjVFNTsKKzMzRUM7MzNFQzszM0VDOzAwMzEgMDAzMyA2NUU1OzAwMzEgMDAzMyA2NUU1OworMzNFRDszM0VEOzMzRUQ7MDAzMSAwMDM0IDY1RTU7MDAzMSAwMDM0IDY1RTU7CiszM0VFOzMzRUU7MzNFRTswMDMxIDAwMzUgNjVFNTswMDMxIDAwMzUgNjVFNTsKKzMzRUY7MzNFRjszM0VGOzAwMzEgMDAzNiA2NUU1OzAwMzEgMDAzNiA2NUU1OworMzNGMDszM0YwOzMzRjA7MDAzMSAwMDM3IDY1RTU7MDAzMSAwMDM3IDY1RTU7CiszM0YxOzMzRjE7MzNGMTswMDMxIDAwMzggNjVFNTswMDMxIDAwMzggNjVFNTsKKzMzRjI7MzNGMjszM0YyOzAwMzEgMDAzOSA2NUU1OzAwMzEgMDAzOSA2NUU1OworMzNGMzszM0YzOzMzRjM7MDAzMiAwMDMwIDY1RTU7MDAzMiAwMDMwIDY1RTU7CiszM0Y0OzMzRjQ7MzNGNDswMDMyIDAwMzEgNjVFNTswMDMyIDAwMzEgNjVFNTsKKzMzRjU7MzNGNTszM0Y1OzAwMzIgMDAzMiA2NUU1OzAwMzIgMDAzMiA2NUU1OworMzNGNjszM0Y2OzMzRjY7MDAzMiAwMDMzIDY1RTU7MDAzMiAwMDMzIDY1RTU7CiszM0Y3OzMzRjc7MzNGNzswMDMyIDAwMzQgNjVFNTswMDMyIDAwMzQgNjVFNTsKKzMzRjg7MzNGODszM0Y4OzAwMzIgMDAzNSA2NUU1OzAwMzIgMDAzNSA2NUU1OworMzNGOTszM0Y5OzMzRjk7MDAzMiAwMDM2IDY1RTU7MDAzMiAwMDM2IDY1RTU7CiszM0ZBOzMzRkE7MzNGQTswMDMyIDAwMzcgNjVFNTswMDMyIDAwMzcgNjVFNTsKKzMzRkI7MzNGQjszM0ZCOzAwMzIgMDAzOCA2NUU1OzAwMzIgMDAzOCA2NUU1OworMzNGQzszM0ZDOzMzRkM7MDAzMiAwMDM5IDY1RTU7MDAzMiAwMDM5IDY1RTU7CiszM0ZEOzMzRkQ7MzNGRDswMDMzIDAwMzAgNjVFNTswMDMzIDAwMzAgNjVFNTsKKzMzRkU7MzNGRTszM0ZFOzAwMzMgMDAzMSA2NUU1OzAwMzMgMDAzMSA2NUU1OworMzNGRjszM0ZGOzMzRkY7MDA2NyAwMDYxIDAwNkM7MDA2NyAwMDYxIDAwNkM7CitBQzAwO0FDMDA7MTEwMCAxMTYxO0FDMDA7MTEwMCAxMTYxOworQUMwMTtBQzAxOzExMDAgMTE2MSAxMUE4O0FDMDE7MTEwMCAxMTYxIDExQTg7CitBQzAyO0FDMDI7MTEwMCAxMTYxIDExQTk7QUMwMjsxMTAwIDExNjEgMTFBOTsKK0FDMDM7QUMwMzsxMTAwIDExNjEgMTFBQTtBQzAzOzExMDAgMTE2MSAxMUFBOworQUMwNDtBQzA0OzExMDAgMTE2MSAxMUFCO0FDMDQ7MTEwMCAxMTYxIDExQUI7CitBQzA1O0FDMDU7MTEwMCAxMTYxIDExQUM7QUMwNTsxMTAwIDExNjEgMTFBQzsKK0FDMDY7QUMwNjsxMTAwIDExNjEgMTFBRDtBQzA2OzExMDAgMTE2MSAxMUFEOworQUMwNztBQzA3OzExMDAgMTE2MSAxMUFFO0FDMDc7MTEwMCAxMTYxIDExQUU7CitBQzA4O0FDMDg7MTEwMCAxMTYxIDExQUY7QUMwODsxMTAwIDExNjEgMTFBRjsKK0FDMDk7QUMwOTsxMTAwIDExNjEgMTFCMDtBQzA5OzExMDAgMTE2MSAxMUIwOworQUMwQTtBQzBBOzExMDAgMTE2MSAxMUIxO0FDMEE7MTEwMCAxMTYxIDExQjE7CitBQzBCO0FDMEI7MTEwMCAxMTYxIDExQjI7QUMwQjsxMTAwIDExNjEgMTFCMjsKK0FDMEM7QUMwQzsxMTAwIDExNjEgMTFCMztBQzBDOzExMDAgMTE2MSAxMUIzOworQUMwRDtBQzBEOzExMDAgMTE2MSAxMUI0O0FDMEQ7MTEwMCAxMTYxIDExQjQ7CitBQzBFO0FDMEU7MTEwMCAxMTYxIDExQjU7QUMwRTsxMTAwIDExNjEgMTFCNTsKK0FDMEY7QUMwRjsxMTAwIDExNjEgMTFCNjtBQzBGOzExMDAgMTE2MSAxMUI2OworQUMxMDtBQzEwOzExMDAgMTE2MSAxMUI3O0FDMTA7MTEwMCAxMTYxIDExQjc7CitBQzExO0FDMTE7MTEwMCAxMTYxIDExQjg7QUMxMTsxMTAwIDExNjEgMTFCODsKK0FDMTI7QUMxMjsxMTAwIDExNjEgMTFCOTtBQzEyOzExMDAgMTE2MSAxMUI5OworQUMxMztBQzEzOzExMDAgMTE2MSAxMUJBO0FDMTM7MTEwMCAxMTYxIDExQkE7CitBQzE0O0FDMTQ7MTEwMCAxMTYxIDExQkI7QUMxNDsxMTAwIDExNjEgMTFCQjsKK0FDMTU7QUMxNTsxMTAwIDExNjEgMTFCQztBQzE1OzExMDAgMTE2MSAxMUJDOworQUMxNjtBQzE2OzExMDAgMTE2MSAxMUJEO0FDMTY7MTEwMCAxMTYxIDExQkQ7CitBQzE3O0FDMTc7MTEwMCAxMTYxIDExQkU7QUMxNzsxMTAwIDExNjEgMTFCRTsKK0FDMTg7QUMxODsxMTAwIDExNjEgMTFCRjtBQzE4OzExMDAgMTE2MSAxMUJGOworQUMxOTtBQzE5OzExMDAgMTE2MSAxMUMwO0FDMTk7MTEwMCAxMTYxIDExQzA7CitBQzFBO0FDMUE7MTEwMCAxMTYxIDExQzE7QUMxQTsxMTAwIDExNjEgMTFDMTsKK0FDMUI7QUMxQjsxMTAwIDExNjEgMTFDMjtBQzFCOzExMDAgMTE2MSAxMUMyOworQUMxQztBQzFDOzExMDAgMTE2MjtBQzFDOzExMDAgMTE2MjsKK0FDMUQ7QUMxRDsxMTAwIDExNjIgMTFBODtBQzFEOzExMDAgMTE2MiAxMUE4OworQUMxRTtBQzFFOzExMDAgMTE2MiAxMUE5O0FDMUU7MTEwMCAxMTYyIDExQTk7CitBQzFGO0FDMUY7MTEwMCAxMTYyIDExQUE7QUMxRjsxMTAwIDExNjIgMTFBQTsKK0FDMjA7QUMyMDsxMTAwIDExNjIgMTFBQjtBQzIwOzExMDAgMTE2MiAxMUFCOworQUMyMTtBQzIxOzExMDAgMTE2MiAxMUFDO0FDMjE7MTEwMCAxMTYyIDExQUM7CitBQzIyO0FDMjI7MTEwMCAxMTYyIDExQUQ7QUMyMjsxMTAwIDExNjIgMTFBRDsKK0FDMjM7QUMyMzsxMTAwIDExNjIgMTFBRTtBQzIzOzExMDAgMTE2MiAxMUFFOworQUMyNDtBQzI0OzExMDAgMTE2MiAxMUFGO0FDMjQ7MTEwMCAxMTYyIDExQUY7CitBQzI1O0FDMjU7MTEwMCAxMTYyIDExQjA7QUMyNTsxMTAwIDExNjIgMTFCMDsKK0FDMjY7QUMyNjsxMTAwIDExNjIgMTFCMTtBQzI2OzExMDAgMTE2MiAxMUIxOworQUMyNztBQzI3OzExMDAgMTE2MiAxMUIyO0FDMjc7MTEwMCAxMTYyIDExQjI7CitBQzI4O0FDMjg7MTEwMCAxMTYyIDExQjM7QUMyODsxMTAwIDExNjIgMTFCMzsKK0FDMjk7QUMyOTsxMTAwIDExNjIgMTFCNDtBQzI5OzExMDAgMTE2MiAxMUI0OworQUMyQTtBQzJBOzExMDAgMTE2MiAxMUI1O0FDMkE7MTEwMCAxMTYyIDExQjU7CitBQzJCO0FDMkI7MTEwMCAxMTYyIDExQjY7QUMyQjsxMTAwIDExNjIgMTFCNjsKK0FDMkM7QUMyQzsxMTAwIDExNjIgMTFCNztBQzJDOzExMDAgMTE2MiAxMUI3OworQUMyRDtBQzJEOzExMDAgMTE2MiAxMUI4O0FDMkQ7MTEwMCAxMTYyIDExQjg7CitBQzJFO0FDMkU7MTEwMCAxMTYyIDExQjk7QUMyRTsxMTAwIDExNjIgMTFCOTsKK0FDMkY7QUMyRjsxMTAwIDExNjIgMTFCQTtBQzJGOzExMDAgMTE2MiAxMUJBOworQUMzMDtBQzMwOzExMDAgMTE2MiAxMUJCO0FDMzA7MTEwMCAxMTYyIDExQkI7CitBQzMxO0FDMzE7MTEwMCAxMTYyIDExQkM7QUMzMTsxMTAwIDExNjIgMTFCQzsKK0FDMzI7QUMzMjsxMTAwIDExNjIgMTFCRDtBQzMyOzExMDAgMTE2MiAxMUJEOworQUMzMztBQzMzOzExMDAgMTE2MiAxMUJFO0FDMzM7MTEwMCAxMTYyIDExQkU7CitBQzM0O0FDMzQ7MTEwMCAxMTYyIDExQkY7QUMzNDsxMTAwIDExNjIgMTFCRjsKK0FDMzU7QUMzNTsxMTAwIDExNjIgMTFDMDtBQzM1OzExMDAgMTE2MiAxMUMwOworQUMzNjtBQzM2OzExMDAgMTE2MiAxMUMxO0FDMzY7MTEwMCAxMTYyIDExQzE7CitBQzM3O0FDMzc7MTEwMCAxMTYyIDExQzI7QUMzNzsxMTAwIDExNjIgMTFDMjsKK0FDMzg7QUMzODsxMTAwIDExNjM7QUMzODsxMTAwIDExNjM7CitBQzM5O0FDMzk7MTEwMCAxMTYzIDExQTg7QUMzOTsxMTAwIDExNjMgMTFBODsKK0FDM0E7QUMzQTsxMTAwIDExNjMgMTFBOTtBQzNBOzExMDAgMTE2MyAxMUE5OworQUMzQjtBQzNCOzExMDAgMTE2MyAxMUFBO0FDM0I7MTEwMCAxMTYzIDExQUE7CitBQzNDO0FDM0M7MTEwMCAxMTYzIDExQUI7QUMzQzsxMTAwIDExNjMgMTFBQjsKK0FDM0Q7QUMzRDsxMTAwIDExNjMgMTFBQztBQzNEOzExMDAgMTE2MyAxMUFDOworQUMzRTtBQzNFOzExMDAgMTE2MyAxMUFEO0FDM0U7MTEwMCAxMTYzIDExQUQ7CitBQzNGO0FDM0Y7MTEwMCAxMTYzIDExQUU7QUMzRjsxMTAwIDExNjMgMTFBRTsKK0FDNDA7QUM0MDsxMTAwIDExNjMgMTFBRjtBQzQwOzExMDAgMTE2MyAxMUFGOworQUM0MTtBQzQxOzExMDAgMTE2MyAxMUIwO0FDNDE7MTEwMCAxMTYzIDExQjA7CitBQzQyO0FDNDI7MTEwMCAxMTYzIDExQjE7QUM0MjsxMTAwIDExNjMgMTFCMTsKK0FDNDM7QUM0MzsxMTAwIDExNjMgMTFCMjtBQzQzOzExMDAgMTE2MyAxMUIyOworQUM0NDtBQzQ0OzExMDAgMTE2MyAxMUIzO0FDNDQ7MTEwMCAxMTYzIDExQjM7CitBQzQ1O0FDNDU7MTEwMCAxMTYzIDExQjQ7QUM0NTsxMTAwIDExNjMgMTFCNDsKK0FDNDY7QUM0NjsxMTAwIDExNjMgMTFCNTtBQzQ2OzExMDAgMTE2MyAxMUI1OworQUM0NztBQzQ3OzExMDAgMTE2MyAxMUI2O0FDNDc7MTEwMCAxMTYzIDExQjY7CitBQzQ4O0FDNDg7MTEwMCAxMTYzIDExQjc7QUM0ODsxMTAwIDExNjMgMTFCNzsKK0FDNDk7QUM0OTsxMTAwIDExNjMgMTFCODtBQzQ5OzExMDAgMTE2MyAxMUI4OworQUM0QTtBQzRBOzExMDAgMTE2MyAxMUI5O0FDNEE7MTEwMCAxMTYzIDExQjk7CitBQzRCO0FDNEI7MTEwMCAxMTYzIDExQkE7QUM0QjsxMTAwIDExNjMgMTFCQTsKK0FDNEM7QUM0QzsxMTAwIDExNjMgMTFCQjtBQzRDOzExMDAgMTE2MyAxMUJCOworQUM0RDtBQzREOzExMDAgMTE2MyAxMUJDO0FDNEQ7MTEwMCAxMTYzIDExQkM7CitBQzRFO0FDNEU7MTEwMCAxMTYzIDExQkQ7QUM0RTsxMTAwIDExNjMgMTFCRDsKK0FDNEY7QUM0RjsxMTAwIDExNjMgMTFCRTtBQzRGOzExMDAgMTE2MyAxMUJFOworQUM1MDtBQzUwOzExMDAgMTE2MyAxMUJGO0FDNTA7MTEwMCAxMTYzIDExQkY7CitBQzUxO0FDNTE7MTEwMCAxMTYzIDExQzA7QUM1MTsxMTAwIDExNjMgMTFDMDsKK0FDNTI7QUM1MjsxMTAwIDExNjMgMTFDMTtBQzUyOzExMDAgMTE2MyAxMUMxOworQUM1MztBQzUzOzExMDAgMTE2MyAxMUMyO0FDNTM7MTEwMCAxMTYzIDExQzI7CitBQzU0O0FDNTQ7MTEwMCAxMTY0O0FDNTQ7MTEwMCAxMTY0OworQUM1NTtBQzU1OzExMDAgMTE2NCAxMUE4O0FDNTU7MTEwMCAxMTY0IDExQTg7CitBQzU2O0FDNTY7MTEwMCAxMTY0IDExQTk7QUM1NjsxMTAwIDExNjQgMTFBOTsKK0FDNTc7QUM1NzsxMTAwIDExNjQgMTFBQTtBQzU3OzExMDAgMTE2NCAxMUFBOworQUM1ODtBQzU4OzExMDAgMTE2NCAxMUFCO0FDNTg7MTEwMCAxMTY0IDExQUI7CitBQzU5O0FDNTk7MTEwMCAxMTY0IDExQUM7QUM1OTsxMTAwIDExNjQgMTFBQzsKK0FDNUE7QUM1QTsxMTAwIDExNjQgMTFBRDtBQzVBOzExMDAgMTE2NCAxMUFEOworQUM1QjtBQzVCOzExMDAgMTE2NCAxMUFFO0FDNUI7MTEwMCAxMTY0IDExQUU7CitBQzVDO0FDNUM7MTEwMCAxMTY0IDExQUY7QUM1QzsxMTAwIDExNjQgMTFBRjsKK0FDNUQ7QUM1RDsxMTAwIDExNjQgMTFCMDtBQzVEOzExMDAgMTE2NCAxMUIwOworQUM1RTtBQzVFOzExMDAgMTE2NCAxMUIxO0FDNUU7MTEwMCAxMTY0IDExQjE7CitBQzVGO0FDNUY7MTEwMCAxMTY0IDExQjI7QUM1RjsxMTAwIDExNjQgMTFCMjsKK0FDNjA7QUM2MDsxMTAwIDExNjQgMTFCMztBQzYwOzExMDAgMTE2NCAxMUIzOworQUM2MTtBQzYxOzExMDAgMTE2NCAxMUI0O0FDNjE7MTEwMCAxMTY0IDExQjQ7CitBQzYyO0FDNjI7MTEwMCAxMTY0IDExQjU7QUM2MjsxMTAwIDExNjQgMTFCNTsKK0FDNjM7QUM2MzsxMTAwIDExNjQgMTFCNjtBQzYzOzExMDAgMTE2NCAxMUI2OworQUM2NDtBQzY0OzExMDAgMTE2NCAxMUI3O0FDNjQ7MTEwMCAxMTY0IDExQjc7CitBQzY1O0FDNjU7MTEwMCAxMTY0IDExQjg7QUM2NTsxMTAwIDExNjQgMTFCODsKK0FDNjY7QUM2NjsxMTAwIDExNjQgMTFCOTtBQzY2OzExMDAgMTE2NCAxMUI5OworQUM2NztBQzY3OzExMDAgMTE2NCAxMUJBO0FDNjc7MTEwMCAxMTY0IDExQkE7CitBQzY4O0FDNjg7MTEwMCAxMTY0IDExQkI7QUM2ODsxMTAwIDExNjQgMTFCQjsKK0FDNjk7QUM2OTsxMTAwIDExNjQgMTFCQztBQzY5OzExMDAgMTE2NCAxMUJDOworQUM2QTtBQzZBOzExMDAgMTE2NCAxMUJEO0FDNkE7MTEwMCAxMTY0IDExQkQ7CitBQzZCO0FDNkI7MTEwMCAxMTY0IDExQkU7QUM2QjsxMTAwIDExNjQgMTFCRTsKK0FDNkM7QUM2QzsxMTAwIDExNjQgMTFCRjtBQzZDOzExMDAgMTE2NCAxMUJGOworQUM2RDtBQzZEOzExMDAgMTE2NCAxMUMwO0FDNkQ7MTEwMCAxMTY0IDExQzA7CitBQzZFO0FDNkU7MTEwMCAxMTY0IDExQzE7QUM2RTsxMTAwIDExNjQgMTFDMTsKK0FDNkY7QUM2RjsxMTAwIDExNjQgMTFDMjtBQzZGOzExMDAgMTE2NCAxMUMyOworQUM3MDtBQzcwOzExMDAgMTE2NTtBQzcwOzExMDAgMTE2NTsKK0FDNzE7QUM3MTsxMTAwIDExNjUgMTFBODtBQzcxOzExMDAgMTE2NSAxMUE4OworQUM3MjtBQzcyOzExMDAgMTE2NSAxMUE5O0FDNzI7MTEwMCAxMTY1IDExQTk7CitBQzczO0FDNzM7MTEwMCAxMTY1IDExQUE7QUM3MzsxMTAwIDExNjUgMTFBQTsKK0FDNzQ7QUM3NDsxMTAwIDExNjUgMTFBQjtBQzc0OzExMDAgMTE2NSAxMUFCOworQUM3NTtBQzc1OzExMDAgMTE2NSAxMUFDO0FDNzU7MTEwMCAxMTY1IDExQUM7CitBQzc2O0FDNzY7MTEwMCAxMTY1IDExQUQ7QUM3NjsxMTAwIDExNjUgMTFBRDsKK0FDNzc7QUM3NzsxMTAwIDExNjUgMTFBRTtBQzc3OzExMDAgMTE2NSAxMUFFOworQUM3ODtBQzc4OzExMDAgMTE2NSAxMUFGO0FDNzg7MTEwMCAxMTY1IDExQUY7CitBQzc5O0FDNzk7MTEwMCAxMTY1IDExQjA7QUM3OTsxMTAwIDExNjUgMTFCMDsKK0FDN0E7QUM3QTsxMTAwIDExNjUgMTFCMTtBQzdBOzExMDAgMTE2NSAxMUIxOworQUM3QjtBQzdCOzExMDAgMTE2NSAxMUIyO0FDN0I7MTEwMCAxMTY1IDExQjI7CitBQzdDO0FDN0M7MTEwMCAxMTY1IDExQjM7QUM3QzsxMTAwIDExNjUgMTFCMzsKK0FDN0Q7QUM3RDsxMTAwIDExNjUgMTFCNDtBQzdEOzExMDAgMTE2NSAxMUI0OworQUM3RTtBQzdFOzExMDAgMTE2NSAxMUI1O0FDN0U7MTEwMCAxMTY1IDExQjU7CitBQzdGO0FDN0Y7MTEwMCAxMTY1IDExQjY7QUM3RjsxMTAwIDExNjUgMTFCNjsKK0FDODA7QUM4MDsxMTAwIDExNjUgMTFCNztBQzgwOzExMDAgMTE2NSAxMUI3OworQUM4MTtBQzgxOzExMDAgMTE2NSAxMUI4O0FDODE7MTEwMCAxMTY1IDExQjg7CitBQzgyO0FDODI7MTEwMCAxMTY1IDExQjk7QUM4MjsxMTAwIDExNjUgMTFCOTsKK0FDODM7QUM4MzsxMTAwIDExNjUgMTFCQTtBQzgzOzExMDAgMTE2NSAxMUJBOworQUM4NDtBQzg0OzExMDAgMTE2NSAxMUJCO0FDODQ7MTEwMCAxMTY1IDExQkI7CitBQzg1O0FDODU7MTEwMCAxMTY1IDExQkM7QUM4NTsxMTAwIDExNjUgMTFCQzsKK0FDODY7QUM4NjsxMTAwIDExNjUgMTFCRDtBQzg2OzExMDAgMTE2NSAxMUJEOworQUM4NztBQzg3OzExMDAgMTE2NSAxMUJFO0FDODc7MTEwMCAxMTY1IDExQkU7CitBQzg4O0FDODg7MTEwMCAxMTY1IDExQkY7QUM4ODsxMTAwIDExNjUgMTFCRjsKK0FDODk7QUM4OTsxMTAwIDExNjUgMTFDMDtBQzg5OzExMDAgMTE2NSAxMUMwOworQUM4QTtBQzhBOzExMDAgMTE2NSAxMUMxO0FDOEE7MTEwMCAxMTY1IDExQzE7CitBQzhCO0FDOEI7MTEwMCAxMTY1IDExQzI7QUM4QjsxMTAwIDExNjUgMTFDMjsKK0FDOEM7QUM4QzsxMTAwIDExNjY7QUM4QzsxMTAwIDExNjY7CitBQzhEO0FDOEQ7MTEwMCAxMTY2IDExQTg7QUM4RDsxMTAwIDExNjYgMTFBODsKK0FDOEU7QUM4RTsxMTAwIDExNjYgMTFBOTtBQzhFOzExMDAgMTE2NiAxMUE5OworQUM4RjtBQzhGOzExMDAgMTE2NiAxMUFBO0FDOEY7MTEwMCAxMTY2IDExQUE7CitBQzkwO0FDOTA7MTEwMCAxMTY2IDExQUI7QUM5MDsxMTAwIDExNjYgMTFBQjsKK0FDOTE7QUM5MTsxMTAwIDExNjYgMTFBQztBQzkxOzExMDAgMTE2NiAxMUFDOworQUM5MjtBQzkyOzExMDAgMTE2NiAxMUFEO0FDOTI7MTEwMCAxMTY2IDExQUQ7CitBQzkzO0FDOTM7MTEwMCAxMTY2IDExQUU7QUM5MzsxMTAwIDExNjYgMTFBRTsKK0FDOTQ7QUM5NDsxMTAwIDExNjYgMTFBRjtBQzk0OzExMDAgMTE2NiAxMUFGOworQUM5NTtBQzk1OzExMDAgMTE2NiAxMUIwO0FDOTU7MTEwMCAxMTY2IDExQjA7CitBQzk2O0FDOTY7MTEwMCAxMTY2IDExQjE7QUM5NjsxMTAwIDExNjYgMTFCMTsKK0FDOTc7QUM5NzsxMTAwIDExNjYgMTFCMjtBQzk3OzExMDAgMTE2NiAxMUIyOworQUM5ODtBQzk4OzExMDAgMTE2NiAxMUIzO0FDOTg7MTEwMCAxMTY2IDExQjM7CitBQzk5O0FDOTk7MTEwMCAxMTY2IDExQjQ7QUM5OTsxMTAwIDExNjYgMTFCNDsKK0FDOUE7QUM5QTsxMTAwIDExNjYgMTFCNTtBQzlBOzExMDAgMTE2NiAxMUI1OworQUM5QjtBQzlCOzExMDAgMTE2NiAxMUI2O0FDOUI7MTEwMCAxMTY2IDExQjY7CitBQzlDO0FDOUM7MTEwMCAxMTY2IDExQjc7QUM5QzsxMTAwIDExNjYgMTFCNzsKK0FDOUQ7QUM5RDsxMTAwIDExNjYgMTFCODtBQzlEOzExMDAgMTE2NiAxMUI4OworQUM5RTtBQzlFOzExMDAgMTE2NiAxMUI5O0FDOUU7MTEwMCAxMTY2IDExQjk7CitBQzlGO0FDOUY7MTEwMCAxMTY2IDExQkE7QUM5RjsxMTAwIDExNjYgMTFCQTsKK0FDQTA7QUNBMDsxMTAwIDExNjYgMTFCQjtBQ0EwOzExMDAgMTE2NiAxMUJCOworQUNBMTtBQ0ExOzExMDAgMTE2NiAxMUJDO0FDQTE7MTEwMCAxMTY2IDExQkM7CitBQ0EyO0FDQTI7MTEwMCAxMTY2IDExQkQ7QUNBMjsxMTAwIDExNjYgMTFCRDsKK0FDQTM7QUNBMzsxMTAwIDExNjYgMTFCRTtBQ0EzOzExMDAgMTE2NiAxMUJFOworQUNBNDtBQ0E0OzExMDAgMTE2NiAxMUJGO0FDQTQ7MTEwMCAxMTY2IDExQkY7CitBQ0E1O0FDQTU7MTEwMCAxMTY2IDExQzA7QUNBNTsxMTAwIDExNjYgMTFDMDsKK0FDQTY7QUNBNjsxMTAwIDExNjYgMTFDMTtBQ0E2OzExMDAgMTE2NiAxMUMxOworQUNBNztBQ0E3OzExMDAgMTE2NiAxMUMyO0FDQTc7MTEwMCAxMTY2IDExQzI7CitBQ0E4O0FDQTg7MTEwMCAxMTY3O0FDQTg7MTEwMCAxMTY3OworQUNBOTtBQ0E5OzExMDAgMTE2NyAxMUE4O0FDQTk7MTEwMCAxMTY3IDExQTg7CitBQ0FBO0FDQUE7MTEwMCAxMTY3IDExQTk7QUNBQTsxMTAwIDExNjcgMTFBOTsKK0FDQUI7QUNBQjsxMTAwIDExNjcgMTFBQTtBQ0FCOzExMDAgMTE2NyAxMUFBOworQUNBQztBQ0FDOzExMDAgMTE2NyAxMUFCO0FDQUM7MTEwMCAxMTY3IDExQUI7CitBQ0FEO0FDQUQ7MTEwMCAxMTY3IDExQUM7QUNBRDsxMTAwIDExNjcgMTFBQzsKK0FDQUU7QUNBRTsxMTAwIDExNjcgMTFBRDtBQ0FFOzExMDAgMTE2NyAxMUFEOworQUNBRjtBQ0FGOzExMDAgMTE2NyAxMUFFO0FDQUY7MTEwMCAxMTY3IDExQUU7CitBQ0IwO0FDQjA7MTEwMCAxMTY3IDExQUY7QUNCMDsxMTAwIDExNjcgMTFBRjsKK0FDQjE7QUNCMTsxMTAwIDExNjcgMTFCMDtBQ0IxOzExMDAgMTE2NyAxMUIwOworQUNCMjtBQ0IyOzExMDAgMTE2NyAxMUIxO0FDQjI7MTEwMCAxMTY3IDExQjE7CitBQ0IzO0FDQjM7MTEwMCAxMTY3IDExQjI7QUNCMzsxMTAwIDExNjcgMTFCMjsKK0FDQjQ7QUNCNDsxMTAwIDExNjcgMTFCMztBQ0I0OzExMDAgMTE2NyAxMUIzOworQUNCNTtBQ0I1OzExMDAgMTE2NyAxMUI0O0FDQjU7MTEwMCAxMTY3IDExQjQ7CitBQ0I2O0FDQjY7MTEwMCAxMTY3IDExQjU7QUNCNjsxMTAwIDExNjcgMTFCNTsKK0FDQjc7QUNCNzsxMTAwIDExNjcgMTFCNjtBQ0I3OzExMDAgMTE2NyAxMUI2OworQUNCODtBQ0I4OzExMDAgMTE2NyAxMUI3O0FDQjg7MTEwMCAxMTY3IDExQjc7CitBQ0I5O0FDQjk7MTEwMCAxMTY3IDExQjg7QUNCOTsxMTAwIDExNjcgMTFCODsKK0FDQkE7QUNCQTsxMTAwIDExNjcgMTFCOTtBQ0JBOzExMDAgMTE2NyAxMUI5OworQUNCQjtBQ0JCOzExMDAgMTE2NyAxMUJBO0FDQkI7MTEwMCAxMTY3IDExQkE7CitBQ0JDO0FDQkM7MTEwMCAxMTY3IDExQkI7QUNCQzsxMTAwIDExNjcgMTFCQjsKK0FDQkQ7QUNCRDsxMTAwIDExNjcgMTFCQztBQ0JEOzExMDAgMTE2NyAxMUJDOworQUNCRTtBQ0JFOzExMDAgMTE2NyAxMUJEO0FDQkU7MTEwMCAxMTY3IDExQkQ7CitBQ0JGO0FDQkY7MTEwMCAxMTY3IDExQkU7QUNCRjsxMTAwIDExNjcgMTFCRTsKK0FDQzA7QUNDMDsxMTAwIDExNjcgMTFCRjtBQ0MwOzExMDAgMTE2NyAxMUJGOworQUNDMTtBQ0MxOzExMDAgMTE2NyAxMUMwO0FDQzE7MTEwMCAxMTY3IDExQzA7CitBQ0MyO0FDQzI7MTEwMCAxMTY3IDExQzE7QUNDMjsxMTAwIDExNjcgMTFDMTsKK0FDQzM7QUNDMzsxMTAwIDExNjcgMTFDMjtBQ0MzOzExMDAgMTE2NyAxMUMyOworQUNDNDtBQ0M0OzExMDAgMTE2ODtBQ0M0OzExMDAgMTE2ODsKK0FDQzU7QUNDNTsxMTAwIDExNjggMTFBODtBQ0M1OzExMDAgMTE2OCAxMUE4OworQUNDNjtBQ0M2OzExMDAgMTE2OCAxMUE5O0FDQzY7MTEwMCAxMTY4IDExQTk7CitBQ0M3O0FDQzc7MTEwMCAxMTY4IDExQUE7QUNDNzsxMTAwIDExNjggMTFBQTsKK0FDQzg7QUNDODsxMTAwIDExNjggMTFBQjtBQ0M4OzExMDAgMTE2OCAxMUFCOworQUNDOTtBQ0M5OzExMDAgMTE2OCAxMUFDO0FDQzk7MTEwMCAxMTY4IDExQUM7CitBQ0NBO0FDQ0E7MTEwMCAxMTY4IDExQUQ7QUNDQTsxMTAwIDExNjggMTFBRDsKK0FDQ0I7QUNDQjsxMTAwIDExNjggMTFBRTtBQ0NCOzExMDAgMTE2OCAxMUFFOworQUNDQztBQ0NDOzExMDAgMTE2OCAxMUFGO0FDQ0M7MTEwMCAxMTY4IDExQUY7CitBQ0NEO0FDQ0Q7MTEwMCAxMTY4IDExQjA7QUNDRDsxMTAwIDExNjggMTFCMDsKK0FDQ0U7QUNDRTsxMTAwIDExNjggMTFCMTtBQ0NFOzExMDAgMTE2OCAxMUIxOworQUNDRjtBQ0NGOzExMDAgMTE2OCAxMUIyO0FDQ0Y7MTEwMCAxMTY4IDExQjI7CitBQ0QwO0FDRDA7MTEwMCAxMTY4IDExQjM7QUNEMDsxMTAwIDExNjggMTFCMzsKK0FDRDE7QUNEMTsxMTAwIDExNjggMTFCNDtBQ0QxOzExMDAgMTE2OCAxMUI0OworQUNEMjtBQ0QyOzExMDAgMTE2OCAxMUI1O0FDRDI7MTEwMCAxMTY4IDExQjU7CitBQ0QzO0FDRDM7MTEwMCAxMTY4IDExQjY7QUNEMzsxMTAwIDExNjggMTFCNjsKK0FDRDQ7QUNENDsxMTAwIDExNjggMTFCNztBQ0Q0OzExMDAgMTE2OCAxMUI3OworQUNENTtBQ0Q1OzExMDAgMTE2OCAxMUI4O0FDRDU7MTEwMCAxMTY4IDExQjg7CitBQ0Q2O0FDRDY7MTEwMCAxMTY4IDExQjk7QUNENjsxMTAwIDExNjggMTFCOTsKK0FDRDc7QUNENzsxMTAwIDExNjggMTFCQTtBQ0Q3OzExMDAgMTE2OCAxMUJBOworQUNEODtBQ0Q4OzExMDAgMTE2OCAxMUJCO0FDRDg7MTEwMCAxMTY4IDExQkI7CitBQ0Q5O0FDRDk7MTEwMCAxMTY4IDExQkM7QUNEOTsxMTAwIDExNjggMTFCQzsKK0FDREE7QUNEQTsxMTAwIDExNjggMTFCRDtBQ0RBOzExMDAgMTE2OCAxMUJEOworQUNEQjtBQ0RCOzExMDAgMTE2OCAxMUJFO0FDREI7MTEwMCAxMTY4IDExQkU7CitBQ0RDO0FDREM7MTEwMCAxMTY4IDExQkY7QUNEQzsxMTAwIDExNjggMTFCRjsKK0FDREQ7QUNERDsxMTAwIDExNjggMTFDMDtBQ0REOzExMDAgMTE2OCAxMUMwOworQUNERTtBQ0RFOzExMDAgMTE2OCAxMUMxO0FDREU7MTEwMCAxMTY4IDExQzE7CitBQ0RGO0FDREY7MTEwMCAxMTY4IDExQzI7QUNERjsxMTAwIDExNjggMTFDMjsKK0FDRTA7QUNFMDsxMTAwIDExNjk7QUNFMDsxMTAwIDExNjk7CitBQ0UxO0FDRTE7MTEwMCAxMTY5IDExQTg7QUNFMTsxMTAwIDExNjkgMTFBODsKK0FDRTI7QUNFMjsxMTAwIDExNjkgMTFBOTtBQ0UyOzExMDAgMTE2OSAxMUE5OworQUNFMztBQ0UzOzExMDAgMTE2OSAxMUFBO0FDRTM7MTEwMCAxMTY5IDExQUE7CitBQ0U0O0FDRTQ7MTEwMCAxMTY5IDExQUI7QUNFNDsxMTAwIDExNjkgMTFBQjsKK0FDRTU7QUNFNTsxMTAwIDExNjkgMTFBQztBQ0U1OzExMDAgMTE2OSAxMUFDOworQUNFNjtBQ0U2OzExMDAgMTE2OSAxMUFEO0FDRTY7MTEwMCAxMTY5IDExQUQ7CitBQ0U3O0FDRTc7MTEwMCAxMTY5IDExQUU7QUNFNzsxMTAwIDExNjkgMTFBRTsKK0FDRTg7QUNFODsxMTAwIDExNjkgMTFBRjtBQ0U4OzExMDAgMTE2OSAxMUFGOworQUNFOTtBQ0U5OzExMDAgMTE2OSAxMUIwO0FDRTk7MTEwMCAxMTY5IDExQjA7CitBQ0VBO0FDRUE7MTEwMCAxMTY5IDExQjE7QUNFQTsxMTAwIDExNjkgMTFCMTsKK0FDRUI7QUNFQjsxMTAwIDExNjkgMTFCMjtBQ0VCOzExMDAgMTE2OSAxMUIyOworQUNFQztBQ0VDOzExMDAgMTE2OSAxMUIzO0FDRUM7MTEwMCAxMTY5IDExQjM7CitBQ0VEO0FDRUQ7MTEwMCAxMTY5IDExQjQ7QUNFRDsxMTAwIDExNjkgMTFCNDsKK0FDRUU7QUNFRTsxMTAwIDExNjkgMTFCNTtBQ0VFOzExMDAgMTE2OSAxMUI1OworQUNFRjtBQ0VGOzExMDAgMTE2OSAxMUI2O0FDRUY7MTEwMCAxMTY5IDExQjY7CitBQ0YwO0FDRjA7MTEwMCAxMTY5IDExQjc7QUNGMDsxMTAwIDExNjkgMTFCNzsKK0FDRjE7QUNGMTsxMTAwIDExNjkgMTFCODtBQ0YxOzExMDAgMTE2OSAxMUI4OworQUNGMjtBQ0YyOzExMDAgMTE2OSAxMUI5O0FDRjI7MTEwMCAxMTY5IDExQjk7CitBQ0YzO0FDRjM7MTEwMCAxMTY5IDExQkE7QUNGMzsxMTAwIDExNjkgMTFCQTsKK0FDRjQ7QUNGNDsxMTAwIDExNjkgMTFCQjtBQ0Y0OzExMDAgMTE2OSAxMUJCOworQUNGNTtBQ0Y1OzExMDAgMTE2OSAxMUJDO0FDRjU7MTEwMCAxMTY5IDExQkM7CitBQ0Y2O0FDRjY7MTEwMCAxMTY5IDExQkQ7QUNGNjsxMTAwIDExNjkgMTFCRDsKK0FDRjc7QUNGNzsxMTAwIDExNjkgMTFCRTtBQ0Y3OzExMDAgMTE2OSAxMUJFOworQUNGODtBQ0Y4OzExMDAgMTE2OSAxMUJGO0FDRjg7MTEwMCAxMTY5IDExQkY7CitBQ0Y5O0FDRjk7MTEwMCAxMTY5IDExQzA7QUNGOTsxMTAwIDExNjkgMTFDMDsKK0FDRkE7QUNGQTsxMTAwIDExNjkgMTFDMTtBQ0ZBOzExMDAgMTE2OSAxMUMxOworQUNGQjtBQ0ZCOzExMDAgMTE2OSAxMUMyO0FDRkI7MTEwMCAxMTY5IDExQzI7CitBQ0ZDO0FDRkM7MTEwMCAxMTZBO0FDRkM7MTEwMCAxMTZBOworQUNGRDtBQ0ZEOzExMDAgMTE2QSAxMUE4O0FDRkQ7MTEwMCAxMTZBIDExQTg7CitBQ0ZFO0FDRkU7MTEwMCAxMTZBIDExQTk7QUNGRTsxMTAwIDExNkEgMTFBOTsKK0FDRkY7QUNGRjsxMTAwIDExNkEgMTFBQTtBQ0ZGOzExMDAgMTE2QSAxMUFBOworQUQwMDtBRDAwOzExMDAgMTE2QSAxMUFCO0FEMDA7MTEwMCAxMTZBIDExQUI7CitBRDAxO0FEMDE7MTEwMCAxMTZBIDExQUM7QUQwMTsxMTAwIDExNkEgMTFBQzsKK0FEMDI7QUQwMjsxMTAwIDExNkEgMTFBRDtBRDAyOzExMDAgMTE2QSAxMUFEOworQUQwMztBRDAzOzExMDAgMTE2QSAxMUFFO0FEMDM7MTEwMCAxMTZBIDExQUU7CitBRDA0O0FEMDQ7MTEwMCAxMTZBIDExQUY7QUQwNDsxMTAwIDExNkEgMTFBRjsKK0FEMDU7QUQwNTsxMTAwIDExNkEgMTFCMDtBRDA1OzExMDAgMTE2QSAxMUIwOworQUQwNjtBRDA2OzExMDAgMTE2QSAxMUIxO0FEMDY7MTEwMCAxMTZBIDExQjE7CitBRDA3O0FEMDc7MTEwMCAxMTZBIDExQjI7QUQwNzsxMTAwIDExNkEgMTFCMjsKK0FEMDg7QUQwODsxMTAwIDExNkEgMTFCMztBRDA4OzExMDAgMTE2QSAxMUIzOworQUQwOTtBRDA5OzExMDAgMTE2QSAxMUI0O0FEMDk7MTEwMCAxMTZBIDExQjQ7CitBRDBBO0FEMEE7MTEwMCAxMTZBIDExQjU7QUQwQTsxMTAwIDExNkEgMTFCNTsKK0FEMEI7QUQwQjsxMTAwIDExNkEgMTFCNjtBRDBCOzExMDAgMTE2QSAxMUI2OworQUQwQztBRDBDOzExMDAgMTE2QSAxMUI3O0FEMEM7MTEwMCAxMTZBIDExQjc7CitBRDBEO0FEMEQ7MTEwMCAxMTZBIDExQjg7QUQwRDsxMTAwIDExNkEgMTFCODsKK0FEMEU7QUQwRTsxMTAwIDExNkEgMTFCOTtBRDBFOzExMDAgMTE2QSAxMUI5OworQUQwRjtBRDBGOzExMDAgMTE2QSAxMUJBO0FEMEY7MTEwMCAxMTZBIDExQkE7CitBRDEwO0FEMTA7MTEwMCAxMTZBIDExQkI7QUQxMDsxMTAwIDExNkEgMTFCQjsKK0FEMTE7QUQxMTsxMTAwIDExNkEgMTFCQztBRDExOzExMDAgMTE2QSAxMUJDOworQUQxMjtBRDEyOzExMDAgMTE2QSAxMUJEO0FEMTI7MTEwMCAxMTZBIDExQkQ7CitBRDEzO0FEMTM7MTEwMCAxMTZBIDExQkU7QUQxMzsxMTAwIDExNkEgMTFCRTsKK0FEMTQ7QUQxNDsxMTAwIDExNkEgMTFCRjtBRDE0OzExMDAgMTE2QSAxMUJGOworQUQxNTtBRDE1OzExMDAgMTE2QSAxMUMwO0FEMTU7MTEwMCAxMTZBIDExQzA7CitBRDE2O0FEMTY7MTEwMCAxMTZBIDExQzE7QUQxNjsxMTAwIDExNkEgMTFDMTsKK0FEMTc7QUQxNzsxMTAwIDExNkEgMTFDMjtBRDE3OzExMDAgMTE2QSAxMUMyOworQUQxODtBRDE4OzExMDAgMTE2QjtBRDE4OzExMDAgMTE2QjsKK0FEMTk7QUQxOTsxMTAwIDExNkIgMTFBODtBRDE5OzExMDAgMTE2QiAxMUE4OworQUQxQTtBRDFBOzExMDAgMTE2QiAxMUE5O0FEMUE7MTEwMCAxMTZCIDExQTk7CitBRDFCO0FEMUI7MTEwMCAxMTZCIDExQUE7QUQxQjsxMTAwIDExNkIgMTFBQTsKK0FEMUM7QUQxQzsxMTAwIDExNkIgMTFBQjtBRDFDOzExMDAgMTE2QiAxMUFCOworQUQxRDtBRDFEOzExMDAgMTE2QiAxMUFDO0FEMUQ7MTEwMCAxMTZCIDExQUM7CitBRDFFO0FEMUU7MTEwMCAxMTZCIDExQUQ7QUQxRTsxMTAwIDExNkIgMTFBRDsKK0FEMUY7QUQxRjsxMTAwIDExNkIgMTFBRTtBRDFGOzExMDAgMTE2QiAxMUFFOworQUQyMDtBRDIwOzExMDAgMTE2QiAxMUFGO0FEMjA7MTEwMCAxMTZCIDExQUY7CitBRDIxO0FEMjE7MTEwMCAxMTZCIDExQjA7QUQyMTsxMTAwIDExNkIgMTFCMDsKK0FEMjI7QUQyMjsxMTAwIDExNkIgMTFCMTtBRDIyOzExMDAgMTE2QiAxMUIxOworQUQyMztBRDIzOzExMDAgMTE2QiAxMUIyO0FEMjM7MTEwMCAxMTZCIDExQjI7CitBRDI0O0FEMjQ7MTEwMCAxMTZCIDExQjM7QUQyNDsxMTAwIDExNkIgMTFCMzsKK0FEMjU7QUQyNTsxMTAwIDExNkIgMTFCNDtBRDI1OzExMDAgMTE2QiAxMUI0OworQUQyNjtBRDI2OzExMDAgMTE2QiAxMUI1O0FEMjY7MTEwMCAxMTZCIDExQjU7CitBRDI3O0FEMjc7MTEwMCAxMTZCIDExQjY7QUQyNzsxMTAwIDExNkIgMTFCNjsKK0FEMjg7QUQyODsxMTAwIDExNkIgMTFCNztBRDI4OzExMDAgMTE2QiAxMUI3OworQUQyOTtBRDI5OzExMDAgMTE2QiAxMUI4O0FEMjk7MTEwMCAxMTZCIDExQjg7CitBRDJBO0FEMkE7MTEwMCAxMTZCIDExQjk7QUQyQTsxMTAwIDExNkIgMTFCOTsKK0FEMkI7QUQyQjsxMTAwIDExNkIgMTFCQTtBRDJCOzExMDAgMTE2QiAxMUJBOworQUQyQztBRDJDOzExMDAgMTE2QiAxMUJCO0FEMkM7MTEwMCAxMTZCIDExQkI7CitBRDJEO0FEMkQ7MTEwMCAxMTZCIDExQkM7QUQyRDsxMTAwIDExNkIgMTFCQzsKK0FEMkU7QUQyRTsxMTAwIDExNkIgMTFCRDtBRDJFOzExMDAgMTE2QiAxMUJEOworQUQyRjtBRDJGOzExMDAgMTE2QiAxMUJFO0FEMkY7MTEwMCAxMTZCIDExQkU7CitBRDMwO0FEMzA7MTEwMCAxMTZCIDExQkY7QUQzMDsxMTAwIDExNkIgMTFCRjsKK0FEMzE7QUQzMTsxMTAwIDExNkIgMTFDMDtBRDMxOzExMDAgMTE2QiAxMUMwOworQUQzMjtBRDMyOzExMDAgMTE2QiAxMUMxO0FEMzI7MTEwMCAxMTZCIDExQzE7CitBRDMzO0FEMzM7MTEwMCAxMTZCIDExQzI7QUQzMzsxMTAwIDExNkIgMTFDMjsKK0FEMzQ7QUQzNDsxMTAwIDExNkM7QUQzNDsxMTAwIDExNkM7CitBRDM1O0FEMzU7MTEwMCAxMTZDIDExQTg7QUQzNTsxMTAwIDExNkMgMTFBODsKK0FEMzY7QUQzNjsxMTAwIDExNkMgMTFBOTtBRDM2OzExMDAgMTE2QyAxMUE5OworQUQzNztBRDM3OzExMDAgMTE2QyAxMUFBO0FEMzc7MTEwMCAxMTZDIDExQUE7CitBRDM4O0FEMzg7MTEwMCAxMTZDIDExQUI7QUQzODsxMTAwIDExNkMgMTFBQjsKK0FEMzk7QUQzOTsxMTAwIDExNkMgMTFBQztBRDM5OzExMDAgMTE2QyAxMUFDOworQUQzQTtBRDNBOzExMDAgMTE2QyAxMUFEO0FEM0E7MTEwMCAxMTZDIDExQUQ7CitBRDNCO0FEM0I7MTEwMCAxMTZDIDExQUU7QUQzQjsxMTAwIDExNkMgMTFBRTsKK0FEM0M7QUQzQzsxMTAwIDExNkMgMTFBRjtBRDNDOzExMDAgMTE2QyAxMUFGOworQUQzRDtBRDNEOzExMDAgMTE2QyAxMUIwO0FEM0Q7MTEwMCAxMTZDIDExQjA7CitBRDNFO0FEM0U7MTEwMCAxMTZDIDExQjE7QUQzRTsxMTAwIDExNkMgMTFCMTsKK0FEM0Y7QUQzRjsxMTAwIDExNkMgMTFCMjtBRDNGOzExMDAgMTE2QyAxMUIyOworQUQ0MDtBRDQwOzExMDAgMTE2QyAxMUIzO0FENDA7MTEwMCAxMTZDIDExQjM7CitBRDQxO0FENDE7MTEwMCAxMTZDIDExQjQ7QUQ0MTsxMTAwIDExNkMgMTFCNDsKK0FENDI7QUQ0MjsxMTAwIDExNkMgMTFCNTtBRDQyOzExMDAgMTE2QyAxMUI1OworQUQ0MztBRDQzOzExMDAgMTE2QyAxMUI2O0FENDM7MTEwMCAxMTZDIDExQjY7CitBRDQ0O0FENDQ7MTEwMCAxMTZDIDExQjc7QUQ0NDsxMTAwIDExNkMgMTFCNzsKK0FENDU7QUQ0NTsxMTAwIDExNkMgMTFCODtBRDQ1OzExMDAgMTE2QyAxMUI4OworQUQ0NjtBRDQ2OzExMDAgMTE2QyAxMUI5O0FENDY7MTEwMCAxMTZDIDExQjk7CitBRDQ3O0FENDc7MTEwMCAxMTZDIDExQkE7QUQ0NzsxMTAwIDExNkMgMTFCQTsKK0FENDg7QUQ0ODsxMTAwIDExNkMgMTFCQjtBRDQ4OzExMDAgMTE2QyAxMUJCOworQUQ0OTtBRDQ5OzExMDAgMTE2QyAxMUJDO0FENDk7MTEwMCAxMTZDIDExQkM7CitBRDRBO0FENEE7MTEwMCAxMTZDIDExQkQ7QUQ0QTsxMTAwIDExNkMgMTFCRDsKK0FENEI7QUQ0QjsxMTAwIDExNkMgMTFCRTtBRDRCOzExMDAgMTE2QyAxMUJFOworQUQ0QztBRDRDOzExMDAgMTE2QyAxMUJGO0FENEM7MTEwMCAxMTZDIDExQkY7CitBRDREO0FENEQ7MTEwMCAxMTZDIDExQzA7QUQ0RDsxMTAwIDExNkMgMTFDMDsKK0FENEU7QUQ0RTsxMTAwIDExNkMgMTFDMTtBRDRFOzExMDAgMTE2QyAxMUMxOworQUQ0RjtBRDRGOzExMDAgMTE2QyAxMUMyO0FENEY7MTEwMCAxMTZDIDExQzI7CitBRDUwO0FENTA7MTEwMCAxMTZEO0FENTA7MTEwMCAxMTZEOworQUQ1MTtBRDUxOzExMDAgMTE2RCAxMUE4O0FENTE7MTEwMCAxMTZEIDExQTg7CitBRDUyO0FENTI7MTEwMCAxMTZEIDExQTk7QUQ1MjsxMTAwIDExNkQgMTFBOTsKK0FENTM7QUQ1MzsxMTAwIDExNkQgMTFBQTtBRDUzOzExMDAgMTE2RCAxMUFBOworQUQ1NDtBRDU0OzExMDAgMTE2RCAxMUFCO0FENTQ7MTEwMCAxMTZEIDExQUI7CitBRDU1O0FENTU7MTEwMCAxMTZEIDExQUM7QUQ1NTsxMTAwIDExNkQgMTFBQzsKK0FENTY7QUQ1NjsxMTAwIDExNkQgMTFBRDtBRDU2OzExMDAgMTE2RCAxMUFEOworQUQ1NztBRDU3OzExMDAgMTE2RCAxMUFFO0FENTc7MTEwMCAxMTZEIDExQUU7CitBRDU4O0FENTg7MTEwMCAxMTZEIDExQUY7QUQ1ODsxMTAwIDExNkQgMTFBRjsKK0FENTk7QUQ1OTsxMTAwIDExNkQgMTFCMDtBRDU5OzExMDAgMTE2RCAxMUIwOworQUQ1QTtBRDVBOzExMDAgMTE2RCAxMUIxO0FENUE7MTEwMCAxMTZEIDExQjE7CitBRDVCO0FENUI7MTEwMCAxMTZEIDExQjI7QUQ1QjsxMTAwIDExNkQgMTFCMjsKK0FENUM7QUQ1QzsxMTAwIDExNkQgMTFCMztBRDVDOzExMDAgMTE2RCAxMUIzOworQUQ1RDtBRDVEOzExMDAgMTE2RCAxMUI0O0FENUQ7MTEwMCAxMTZEIDExQjQ7CitBRDVFO0FENUU7MTEwMCAxMTZEIDExQjU7QUQ1RTsxMTAwIDExNkQgMTFCNTsKK0FENUY7QUQ1RjsxMTAwIDExNkQgMTFCNjtBRDVGOzExMDAgMTE2RCAxMUI2OworQUQ2MDtBRDYwOzExMDAgMTE2RCAxMUI3O0FENjA7MTEwMCAxMTZEIDExQjc7CitBRDYxO0FENjE7MTEwMCAxMTZEIDExQjg7QUQ2MTsxMTAwIDExNkQgMTFCODsKK0FENjI7QUQ2MjsxMTAwIDExNkQgMTFCOTtBRDYyOzExMDAgMTE2RCAxMUI5OworQUQ2MztBRDYzOzExMDAgMTE2RCAxMUJBO0FENjM7MTEwMCAxMTZEIDExQkE7CitBRDY0O0FENjQ7MTEwMCAxMTZEIDExQkI7QUQ2NDsxMTAwIDExNkQgMTFCQjsKK0FENjU7QUQ2NTsxMTAwIDExNkQgMTFCQztBRDY1OzExMDAgMTE2RCAxMUJDOworQUQ2NjtBRDY2OzExMDAgMTE2RCAxMUJEO0FENjY7MTEwMCAxMTZEIDExQkQ7CitBRDY3O0FENjc7MTEwMCAxMTZEIDExQkU7QUQ2NzsxMTAwIDExNkQgMTFCRTsKK0FENjg7QUQ2ODsxMTAwIDExNkQgMTFCRjtBRDY4OzExMDAgMTE2RCAxMUJGOworQUQ2OTtBRDY5OzExMDAgMTE2RCAxMUMwO0FENjk7MTEwMCAxMTZEIDExQzA7CitBRDZBO0FENkE7MTEwMCAxMTZEIDExQzE7QUQ2QTsxMTAwIDExNkQgMTFDMTsKK0FENkI7QUQ2QjsxMTAwIDExNkQgMTFDMjtBRDZCOzExMDAgMTE2RCAxMUMyOworQUQ2QztBRDZDOzExMDAgMTE2RTtBRDZDOzExMDAgMTE2RTsKK0FENkQ7QUQ2RDsxMTAwIDExNkUgMTFBODtBRDZEOzExMDAgMTE2RSAxMUE4OworQUQ2RTtBRDZFOzExMDAgMTE2RSAxMUE5O0FENkU7MTEwMCAxMTZFIDExQTk7CitBRDZGO0FENkY7MTEwMCAxMTZFIDExQUE7QUQ2RjsxMTAwIDExNkUgMTFBQTsKK0FENzA7QUQ3MDsxMTAwIDExNkUgMTFBQjtBRDcwOzExMDAgMTE2RSAxMUFCOworQUQ3MTtBRDcxOzExMDAgMTE2RSAxMUFDO0FENzE7MTEwMCAxMTZFIDExQUM7CitBRDcyO0FENzI7MTEwMCAxMTZFIDExQUQ7QUQ3MjsxMTAwIDExNkUgMTFBRDsKK0FENzM7QUQ3MzsxMTAwIDExNkUgMTFBRTtBRDczOzExMDAgMTE2RSAxMUFFOworQUQ3NDtBRDc0OzExMDAgMTE2RSAxMUFGO0FENzQ7MTEwMCAxMTZFIDExQUY7CitBRDc1O0FENzU7MTEwMCAxMTZFIDExQjA7QUQ3NTsxMTAwIDExNkUgMTFCMDsKK0FENzY7QUQ3NjsxMTAwIDExNkUgMTFCMTtBRDc2OzExMDAgMTE2RSAxMUIxOworQUQ3NztBRDc3OzExMDAgMTE2RSAxMUIyO0FENzc7MTEwMCAxMTZFIDExQjI7CitBRDc4O0FENzg7MTEwMCAxMTZFIDExQjM7QUQ3ODsxMTAwIDExNkUgMTFCMzsKK0FENzk7QUQ3OTsxMTAwIDExNkUgMTFCNDtBRDc5OzExMDAgMTE2RSAxMUI0OworQUQ3QTtBRDdBOzExMDAgMTE2RSAxMUI1O0FEN0E7MTEwMCAxMTZFIDExQjU7CitBRDdCO0FEN0I7MTEwMCAxMTZFIDExQjY7QUQ3QjsxMTAwIDExNkUgMTFCNjsKK0FEN0M7QUQ3QzsxMTAwIDExNkUgMTFCNztBRDdDOzExMDAgMTE2RSAxMUI3OworQUQ3RDtBRDdEOzExMDAgMTE2RSAxMUI4O0FEN0Q7MTEwMCAxMTZFIDExQjg7CitBRDdFO0FEN0U7MTEwMCAxMTZFIDExQjk7QUQ3RTsxMTAwIDExNkUgMTFCOTsKK0FEN0Y7QUQ3RjsxMTAwIDExNkUgMTFCQTtBRDdGOzExMDAgMTE2RSAxMUJBOworQUQ4MDtBRDgwOzExMDAgMTE2RSAxMUJCO0FEODA7MTEwMCAxMTZFIDExQkI7CitBRDgxO0FEODE7MTEwMCAxMTZFIDExQkM7QUQ4MTsxMTAwIDExNkUgMTFCQzsKK0FEODI7QUQ4MjsxMTAwIDExNkUgMTFCRDtBRDgyOzExMDAgMTE2RSAxMUJEOworQUQ4MztBRDgzOzExMDAgMTE2RSAxMUJFO0FEODM7MTEwMCAxMTZFIDExQkU7CitBRDg0O0FEODQ7MTEwMCAxMTZFIDExQkY7QUQ4NDsxMTAwIDExNkUgMTFCRjsKK0FEODU7QUQ4NTsxMTAwIDExNkUgMTFDMDtBRDg1OzExMDAgMTE2RSAxMUMwOworQUQ4NjtBRDg2OzExMDAgMTE2RSAxMUMxO0FEODY7MTEwMCAxMTZFIDExQzE7CitBRDg3O0FEODc7MTEwMCAxMTZFIDExQzI7QUQ4NzsxMTAwIDExNkUgMTFDMjsKK0FEODg7QUQ4ODsxMTAwIDExNkY7QUQ4ODsxMTAwIDExNkY7CitBRDg5O0FEODk7MTEwMCAxMTZGIDExQTg7QUQ4OTsxMTAwIDExNkYgMTFBODsKK0FEOEE7QUQ4QTsxMTAwIDExNkYgMTFBOTtBRDhBOzExMDAgMTE2RiAxMUE5OworQUQ4QjtBRDhCOzExMDAgMTE2RiAxMUFBO0FEOEI7MTEwMCAxMTZGIDExQUE7CitBRDhDO0FEOEM7MTEwMCAxMTZGIDExQUI7QUQ4QzsxMTAwIDExNkYgMTFBQjsKK0FEOEQ7QUQ4RDsxMTAwIDExNkYgMTFBQztBRDhEOzExMDAgMTE2RiAxMUFDOworQUQ4RTtBRDhFOzExMDAgMTE2RiAxMUFEO0FEOEU7MTEwMCAxMTZGIDExQUQ7CitBRDhGO0FEOEY7MTEwMCAxMTZGIDExQUU7QUQ4RjsxMTAwIDExNkYgMTFBRTsKK0FEOTA7QUQ5MDsxMTAwIDExNkYgMTFBRjtBRDkwOzExMDAgMTE2RiAxMUFGOworQUQ5MTtBRDkxOzExMDAgMTE2RiAxMUIwO0FEOTE7MTEwMCAxMTZGIDExQjA7CitBRDkyO0FEOTI7MTEwMCAxMTZGIDExQjE7QUQ5MjsxMTAwIDExNkYgMTFCMTsKK0FEOTM7QUQ5MzsxMTAwIDExNkYgMTFCMjtBRDkzOzExMDAgMTE2RiAxMUIyOworQUQ5NDtBRDk0OzExMDAgMTE2RiAxMUIzO0FEOTQ7MTEwMCAxMTZGIDExQjM7CitBRDk1O0FEOTU7MTEwMCAxMTZGIDExQjQ7QUQ5NTsxMTAwIDExNkYgMTFCNDsKK0FEOTY7QUQ5NjsxMTAwIDExNkYgMTFCNTtBRDk2OzExMDAgMTE2RiAxMUI1OworQUQ5NztBRDk3OzExMDAgMTE2RiAxMUI2O0FEOTc7MTEwMCAxMTZGIDExQjY7CitBRDk4O0FEOTg7MTEwMCAxMTZGIDExQjc7QUQ5ODsxMTAwIDExNkYgMTFCNzsKK0FEOTk7QUQ5OTsxMTAwIDExNkYgMTFCODtBRDk5OzExMDAgMTE2RiAxMUI4OworQUQ5QTtBRDlBOzExMDAgMTE2RiAxMUI5O0FEOUE7MTEwMCAxMTZGIDExQjk7CitBRDlCO0FEOUI7MTEwMCAxMTZGIDExQkE7QUQ5QjsxMTAwIDExNkYgMTFCQTsKK0FEOUM7QUQ5QzsxMTAwIDExNkYgMTFCQjtBRDlDOzExMDAgMTE2RiAxMUJCOworQUQ5RDtBRDlEOzExMDAgMTE2RiAxMUJDO0FEOUQ7MTEwMCAxMTZGIDExQkM7CitBRDlFO0FEOUU7MTEwMCAxMTZGIDExQkQ7QUQ5RTsxMTAwIDExNkYgMTFCRDsKK0FEOUY7QUQ5RjsxMTAwIDExNkYgMTFCRTtBRDlGOzExMDAgMTE2RiAxMUJFOworQURBMDtBREEwOzExMDAgMTE2RiAxMUJGO0FEQTA7MTEwMCAxMTZGIDExQkY7CitBREExO0FEQTE7MTEwMCAxMTZGIDExQzA7QURBMTsxMTAwIDExNkYgMTFDMDsKK0FEQTI7QURBMjsxMTAwIDExNkYgMTFDMTtBREEyOzExMDAgMTE2RiAxMUMxOworQURBMztBREEzOzExMDAgMTE2RiAxMUMyO0FEQTM7MTEwMCAxMTZGIDExQzI7CitBREE0O0FEQTQ7MTEwMCAxMTcwO0FEQTQ7MTEwMCAxMTcwOworQURBNTtBREE1OzExMDAgMTE3MCAxMUE4O0FEQTU7MTEwMCAxMTcwIDExQTg7CitBREE2O0FEQTY7MTEwMCAxMTcwIDExQTk7QURBNjsxMTAwIDExNzAgMTFBOTsKK0FEQTc7QURBNzsxMTAwIDExNzAgMTFBQTtBREE3OzExMDAgMTE3MCAxMUFBOworQURBODtBREE4OzExMDAgMTE3MCAxMUFCO0FEQTg7MTEwMCAxMTcwIDExQUI7CitBREE5O0FEQTk7MTEwMCAxMTcwIDExQUM7QURBOTsxMTAwIDExNzAgMTFBQzsKK0FEQUE7QURBQTsxMTAwIDExNzAgMTFBRDtBREFBOzExMDAgMTE3MCAxMUFEOworQURBQjtBREFCOzExMDAgMTE3MCAxMUFFO0FEQUI7MTEwMCAxMTcwIDExQUU7CitBREFDO0FEQUM7MTEwMCAxMTcwIDExQUY7QURBQzsxMTAwIDExNzAgMTFBRjsKK0FEQUQ7QURBRDsxMTAwIDExNzAgMTFCMDtBREFEOzExMDAgMTE3MCAxMUIwOworQURBRTtBREFFOzExMDAgMTE3MCAxMUIxO0FEQUU7MTEwMCAxMTcwIDExQjE7CitBREFGO0FEQUY7MTEwMCAxMTcwIDExQjI7QURBRjsxMTAwIDExNzAgMTFCMjsKK0FEQjA7QURCMDsxMTAwIDExNzAgMTFCMztBREIwOzExMDAgMTE3MCAxMUIzOworQURCMTtBREIxOzExMDAgMTE3MCAxMUI0O0FEQjE7MTEwMCAxMTcwIDExQjQ7CitBREIyO0FEQjI7MTEwMCAxMTcwIDExQjU7QURCMjsxMTAwIDExNzAgMTFCNTsKK0FEQjM7QURCMzsxMTAwIDExNzAgMTFCNjtBREIzOzExMDAgMTE3MCAxMUI2OworQURCNDtBREI0OzExMDAgMTE3MCAxMUI3O0FEQjQ7MTEwMCAxMTcwIDExQjc7CitBREI1O0FEQjU7MTEwMCAxMTcwIDExQjg7QURCNTsxMTAwIDExNzAgMTFCODsKK0FEQjY7QURCNjsxMTAwIDExNzAgMTFCOTtBREI2OzExMDAgMTE3MCAxMUI5OworQURCNztBREI3OzExMDAgMTE3MCAxMUJBO0FEQjc7MTEwMCAxMTcwIDExQkE7CitBREI4O0FEQjg7MTEwMCAxMTcwIDExQkI7QURCODsxMTAwIDExNzAgMTFCQjsKK0FEQjk7QURCOTsxMTAwIDExNzAgMTFCQztBREI5OzExMDAgMTE3MCAxMUJDOworQURCQTtBREJBOzExMDAgMTE3MCAxMUJEO0FEQkE7MTEwMCAxMTcwIDExQkQ7CitBREJCO0FEQkI7MTEwMCAxMTcwIDExQkU7QURCQjsxMTAwIDExNzAgMTFCRTsKK0FEQkM7QURCQzsxMTAwIDExNzAgMTFCRjtBREJDOzExMDAgMTE3MCAxMUJGOworQURCRDtBREJEOzExMDAgMTE3MCAxMUMwO0FEQkQ7MTEwMCAxMTcwIDExQzA7CitBREJFO0FEQkU7MTEwMCAxMTcwIDExQzE7QURCRTsxMTAwIDExNzAgMTFDMTsKK0FEQkY7QURCRjsxMTAwIDExNzAgMTFDMjtBREJGOzExMDAgMTE3MCAxMUMyOworQURDMDtBREMwOzExMDAgMTE3MTtBREMwOzExMDAgMTE3MTsKK0FEQzE7QURDMTsxMTAwIDExNzEgMTFBODtBREMxOzExMDAgMTE3MSAxMUE4OworQURDMjtBREMyOzExMDAgMTE3MSAxMUE5O0FEQzI7MTEwMCAxMTcxIDExQTk7CitBREMzO0FEQzM7MTEwMCAxMTcxIDExQUE7QURDMzsxMTAwIDExNzEgMTFBQTsKK0FEQzQ7QURDNDsxMTAwIDExNzEgMTFBQjtBREM0OzExMDAgMTE3MSAxMUFCOworQURDNTtBREM1OzExMDAgMTE3MSAxMUFDO0FEQzU7MTEwMCAxMTcxIDExQUM7CitBREM2O0FEQzY7MTEwMCAxMTcxIDExQUQ7QURDNjsxMTAwIDExNzEgMTFBRDsKK0FEQzc7QURDNzsxMTAwIDExNzEgMTFBRTtBREM3OzExMDAgMTE3MSAxMUFFOworQURDODtBREM4OzExMDAgMTE3MSAxMUFGO0FEQzg7MTEwMCAxMTcxIDExQUY7CitBREM5O0FEQzk7MTEwMCAxMTcxIDExQjA7QURDOTsxMTAwIDExNzEgMTFCMDsKK0FEQ0E7QURDQTsxMTAwIDExNzEgMTFCMTtBRENBOzExMDAgMTE3MSAxMUIxOworQURDQjtBRENCOzExMDAgMTE3MSAxMUIyO0FEQ0I7MTEwMCAxMTcxIDExQjI7CitBRENDO0FEQ0M7MTEwMCAxMTcxIDExQjM7QURDQzsxMTAwIDExNzEgMTFCMzsKK0FEQ0Q7QURDRDsxMTAwIDExNzEgMTFCNDtBRENEOzExMDAgMTE3MSAxMUI0OworQURDRTtBRENFOzExMDAgMTE3MSAxMUI1O0FEQ0U7MTEwMCAxMTcxIDExQjU7CitBRENGO0FEQ0Y7MTEwMCAxMTcxIDExQjY7QURDRjsxMTAwIDExNzEgMTFCNjsKK0FERDA7QUREMDsxMTAwIDExNzEgMTFCNztBREQwOzExMDAgMTE3MSAxMUI3OworQUREMTtBREQxOzExMDAgMTE3MSAxMUI4O0FERDE7MTEwMCAxMTcxIDExQjg7CitBREQyO0FERDI7MTEwMCAxMTcxIDExQjk7QUREMjsxMTAwIDExNzEgMTFCOTsKK0FERDM7QUREMzsxMTAwIDExNzEgMTFCQTtBREQzOzExMDAgMTE3MSAxMUJBOworQURENDtBREQ0OzExMDAgMTE3MSAxMUJCO0FERDQ7MTEwMCAxMTcxIDExQkI7CitBREQ1O0FERDU7MTEwMCAxMTcxIDExQkM7QURENTsxMTAwIDExNzEgMTFCQzsKK0FERDY7QURENjsxMTAwIDExNzEgMTFCRDtBREQ2OzExMDAgMTE3MSAxMUJEOworQURENztBREQ3OzExMDAgMTE3MSAxMUJFO0FERDc7MTEwMCAxMTcxIDExQkU7CitBREQ4O0FERDg7MTEwMCAxMTcxIDExQkY7QUREODsxMTAwIDExNzEgMTFCRjsKK0FERDk7QUREOTsxMTAwIDExNzEgMTFDMDtBREQ5OzExMDAgMTE3MSAxMUMwOworQUREQTtBRERBOzExMDAgMTE3MSAxMUMxO0FEREE7MTEwMCAxMTcxIDExQzE7CitBRERCO0FEREI7MTEwMCAxMTcxIDExQzI7QUREQjsxMTAwIDExNzEgMTFDMjsKK0FEREM7QUREQzsxMTAwIDExNzI7QUREQzsxMTAwIDExNzI7CitBREREO0FEREQ7MTEwMCAxMTcyIDExQTg7QURERDsxMTAwIDExNzIgMTFBODsKK0FEREU7QURERTsxMTAwIDExNzIgMTFBOTtBRERFOzExMDAgMTE3MiAxMUE5OworQURERjtBRERGOzExMDAgMTE3MiAxMUFBO0FEREY7MTEwMCAxMTcyIDExQUE7CitBREUwO0FERTA7MTEwMCAxMTcyIDExQUI7QURFMDsxMTAwIDExNzIgMTFBQjsKK0FERTE7QURFMTsxMTAwIDExNzIgMTFBQztBREUxOzExMDAgMTE3MiAxMUFDOworQURFMjtBREUyOzExMDAgMTE3MiAxMUFEO0FERTI7MTEwMCAxMTcyIDExQUQ7CitBREUzO0FERTM7MTEwMCAxMTcyIDExQUU7QURFMzsxMTAwIDExNzIgMTFBRTsKK0FERTQ7QURFNDsxMTAwIDExNzIgMTFBRjtBREU0OzExMDAgMTE3MiAxMUFGOworQURFNTtBREU1OzExMDAgMTE3MiAxMUIwO0FERTU7MTEwMCAxMTcyIDExQjA7CitBREU2O0FERTY7MTEwMCAxMTcyIDExQjE7QURFNjsxMTAwIDExNzIgMTFCMTsKK0FERTc7QURFNzsxMTAwIDExNzIgMTFCMjtBREU3OzExMDAgMTE3MiAxMUIyOworQURFODtBREU4OzExMDAgMTE3MiAxMUIzO0FERTg7MTEwMCAxMTcyIDExQjM7CitBREU5O0FERTk7MTEwMCAxMTcyIDExQjQ7QURFOTsxMTAwIDExNzIgMTFCNDsKK0FERUE7QURFQTsxMTAwIDExNzIgMTFCNTtBREVBOzExMDAgMTE3MiAxMUI1OworQURFQjtBREVCOzExMDAgMTE3MiAxMUI2O0FERUI7MTEwMCAxMTcyIDExQjY7CitBREVDO0FERUM7MTEwMCAxMTcyIDExQjc7QURFQzsxMTAwIDExNzIgMTFCNzsKK0FERUQ7QURFRDsxMTAwIDExNzIgMTFCODtBREVEOzExMDAgMTE3MiAxMUI4OworQURFRTtBREVFOzExMDAgMTE3MiAxMUI5O0FERUU7MTEwMCAxMTcyIDExQjk7CitBREVGO0FERUY7MTEwMCAxMTcyIDExQkE7QURFRjsxMTAwIDExNzIgMTFCQTsKK0FERjA7QURGMDsxMTAwIDExNzIgMTFCQjtBREYwOzExMDAgMTE3MiAxMUJCOworQURGMTtBREYxOzExMDAgMTE3MiAxMUJDO0FERjE7MTEwMCAxMTcyIDExQkM7CitBREYyO0FERjI7MTEwMCAxMTcyIDExQkQ7QURGMjsxMTAwIDExNzIgMTFCRDsKK0FERjM7QURGMzsxMTAwIDExNzIgMTFCRTtBREYzOzExMDAgMTE3MiAxMUJFOworQURGNDtBREY0OzExMDAgMTE3MiAxMUJGO0FERjQ7MTEwMCAxMTcyIDExQkY7CitBREY1O0FERjU7MTEwMCAxMTcyIDExQzA7QURGNTsxMTAwIDExNzIgMTFDMDsKK0FERjY7QURGNjsxMTAwIDExNzIgMTFDMTtBREY2OzExMDAgMTE3MiAxMUMxOworQURGNztBREY3OzExMDAgMTE3MiAxMUMyO0FERjc7MTEwMCAxMTcyIDExQzI7CitBREY4O0FERjg7MTEwMCAxMTczO0FERjg7MTEwMCAxMTczOworQURGOTtBREY5OzExMDAgMTE3MyAxMUE4O0FERjk7MTEwMCAxMTczIDExQTg7CitBREZBO0FERkE7MTEwMCAxMTczIDExQTk7QURGQTsxMTAwIDExNzMgMTFBOTsKK0FERkI7QURGQjsxMTAwIDExNzMgMTFBQTtBREZCOzExMDAgMTE3MyAxMUFBOworQURGQztBREZDOzExMDAgMTE3MyAxMUFCO0FERkM7MTEwMCAxMTczIDExQUI7CitBREZEO0FERkQ7MTEwMCAxMTczIDExQUM7QURGRDsxMTAwIDExNzMgMTFBQzsKK0FERkU7QURGRTsxMTAwIDExNzMgMTFBRDtBREZFOzExMDAgMTE3MyAxMUFEOworQURGRjtBREZGOzExMDAgMTE3MyAxMUFFO0FERkY7MTEwMCAxMTczIDExQUU7CitBRTAwO0FFMDA7MTEwMCAxMTczIDExQUY7QUUwMDsxMTAwIDExNzMgMTFBRjsKK0FFMDE7QUUwMTsxMTAwIDExNzMgMTFCMDtBRTAxOzExMDAgMTE3MyAxMUIwOworQUUwMjtBRTAyOzExMDAgMTE3MyAxMUIxO0FFMDI7MTEwMCAxMTczIDExQjE7CitBRTAzO0FFMDM7MTEwMCAxMTczIDExQjI7QUUwMzsxMTAwIDExNzMgMTFCMjsKK0FFMDQ7QUUwNDsxMTAwIDExNzMgMTFCMztBRTA0OzExMDAgMTE3MyAxMUIzOworQUUwNTtBRTA1OzExMDAgMTE3MyAxMUI0O0FFMDU7MTEwMCAxMTczIDExQjQ7CitBRTA2O0FFMDY7MTEwMCAxMTczIDExQjU7QUUwNjsxMTAwIDExNzMgMTFCNTsKK0FFMDc7QUUwNzsxMTAwIDExNzMgMTFCNjtBRTA3OzExMDAgMTE3MyAxMUI2OworQUUwODtBRTA4OzExMDAgMTE3MyAxMUI3O0FFMDg7MTEwMCAxMTczIDExQjc7CitBRTA5O0FFMDk7MTEwMCAxMTczIDExQjg7QUUwOTsxMTAwIDExNzMgMTFCODsKK0FFMEE7QUUwQTsxMTAwIDExNzMgMTFCOTtBRTBBOzExMDAgMTE3MyAxMUI5OworQUUwQjtBRTBCOzExMDAgMTE3MyAxMUJBO0FFMEI7MTEwMCAxMTczIDExQkE7CitBRTBDO0FFMEM7MTEwMCAxMTczIDExQkI7QUUwQzsxMTAwIDExNzMgMTFCQjsKK0FFMEQ7QUUwRDsxMTAwIDExNzMgMTFCQztBRTBEOzExMDAgMTE3MyAxMUJDOworQUUwRTtBRTBFOzExMDAgMTE3MyAxMUJEO0FFMEU7MTEwMCAxMTczIDExQkQ7CitBRTBGO0FFMEY7MTEwMCAxMTczIDExQkU7QUUwRjsxMTAwIDExNzMgMTFCRTsKK0FFMTA7QUUxMDsxMTAwIDExNzMgMTFCRjtBRTEwOzExMDAgMTE3MyAxMUJGOworQUUxMTtBRTExOzExMDAgMTE3MyAxMUMwO0FFMTE7MTEwMCAxMTczIDExQzA7CitBRTEyO0FFMTI7MTEwMCAxMTczIDExQzE7QUUxMjsxMTAwIDExNzMgMTFDMTsKK0FFMTM7QUUxMzsxMTAwIDExNzMgMTFDMjtBRTEzOzExMDAgMTE3MyAxMUMyOworQUUxNDtBRTE0OzExMDAgMTE3NDtBRTE0OzExMDAgMTE3NDsKK0FFMTU7QUUxNTsxMTAwIDExNzQgMTFBODtBRTE1OzExMDAgMTE3NCAxMUE4OworQUUxNjtBRTE2OzExMDAgMTE3NCAxMUE5O0FFMTY7MTEwMCAxMTc0IDExQTk7CitBRTE3O0FFMTc7MTEwMCAxMTc0IDExQUE7QUUxNzsxMTAwIDExNzQgMTFBQTsKK0FFMTg7QUUxODsxMTAwIDExNzQgMTFBQjtBRTE4OzExMDAgMTE3NCAxMUFCOworQUUxOTtBRTE5OzExMDAgMTE3NCAxMUFDO0FFMTk7MTEwMCAxMTc0IDExQUM7CitBRTFBO0FFMUE7MTEwMCAxMTc0IDExQUQ7QUUxQTsxMTAwIDExNzQgMTFBRDsKK0FFMUI7QUUxQjsxMTAwIDExNzQgMTFBRTtBRTFCOzExMDAgMTE3NCAxMUFFOworQUUxQztBRTFDOzExMDAgMTE3NCAxMUFGO0FFMUM7MTEwMCAxMTc0IDExQUY7CitBRTFEO0FFMUQ7MTEwMCAxMTc0IDExQjA7QUUxRDsxMTAwIDExNzQgMTFCMDsKK0FFMUU7QUUxRTsxMTAwIDExNzQgMTFCMTtBRTFFOzExMDAgMTE3NCAxMUIxOworQUUxRjtBRTFGOzExMDAgMTE3NCAxMUIyO0FFMUY7MTEwMCAxMTc0IDExQjI7CitBRTIwO0FFMjA7MTEwMCAxMTc0IDExQjM7QUUyMDsxMTAwIDExNzQgMTFCMzsKK0FFMjE7QUUyMTsxMTAwIDExNzQgMTFCNDtBRTIxOzExMDAgMTE3NCAxMUI0OworQUUyMjtBRTIyOzExMDAgMTE3NCAxMUI1O0FFMjI7MTEwMCAxMTc0IDExQjU7CitBRTIzO0FFMjM7MTEwMCAxMTc0IDExQjY7QUUyMzsxMTAwIDExNzQgMTFCNjsKK0FFMjQ7QUUyNDsxMTAwIDExNzQgMTFCNztBRTI0OzExMDAgMTE3NCAxMUI3OworQUUyNTtBRTI1OzExMDAgMTE3NCAxMUI4O0FFMjU7MTEwMCAxMTc0IDExQjg7CitBRTI2O0FFMjY7MTEwMCAxMTc0IDExQjk7QUUyNjsxMTAwIDExNzQgMTFCOTsKK0FFMjc7QUUyNzsxMTAwIDExNzQgMTFCQTtBRTI3OzExMDAgMTE3NCAxMUJBOworQUUyODtBRTI4OzExMDAgMTE3NCAxMUJCO0FFMjg7MTEwMCAxMTc0IDExQkI7CitBRTI5O0FFMjk7MTEwMCAxMTc0IDExQkM7QUUyOTsxMTAwIDExNzQgMTFCQzsKK0FFMkE7QUUyQTsxMTAwIDExNzQgMTFCRDtBRTJBOzExMDAgMTE3NCAxMUJEOworQUUyQjtBRTJCOzExMDAgMTE3NCAxMUJFO0FFMkI7MTEwMCAxMTc0IDExQkU7CitBRTJDO0FFMkM7MTEwMCAxMTc0IDExQkY7QUUyQzsxMTAwIDExNzQgMTFCRjsKK0FFMkQ7QUUyRDsxMTAwIDExNzQgMTFDMDtBRTJEOzExMDAgMTE3NCAxMUMwOworQUUyRTtBRTJFOzExMDAgMTE3NCAxMUMxO0FFMkU7MTEwMCAxMTc0IDExQzE7CitBRTJGO0FFMkY7MTEwMCAxMTc0IDExQzI7QUUyRjsxMTAwIDExNzQgMTFDMjsKK0FFMzA7QUUzMDsxMTAwIDExNzU7QUUzMDsxMTAwIDExNzU7CitBRTMxO0FFMzE7MTEwMCAxMTc1IDExQTg7QUUzMTsxMTAwIDExNzUgMTFBODsKK0FFMzI7QUUzMjsxMTAwIDExNzUgMTFBOTtBRTMyOzExMDAgMTE3NSAxMUE5OworQUUzMztBRTMzOzExMDAgMTE3NSAxMUFBO0FFMzM7MTEwMCAxMTc1IDExQUE7CitBRTM0O0FFMzQ7MTEwMCAxMTc1IDExQUI7QUUzNDsxMTAwIDExNzUgMTFBQjsKK0FFMzU7QUUzNTsxMTAwIDExNzUgMTFBQztBRTM1OzExMDAgMTE3NSAxMUFDOworQUUzNjtBRTM2OzExMDAgMTE3NSAxMUFEO0FFMzY7MTEwMCAxMTc1IDExQUQ7CitBRTM3O0FFMzc7MTEwMCAxMTc1IDExQUU7QUUzNzsxMTAwIDExNzUgMTFBRTsKK0FFMzg7QUUzODsxMTAwIDExNzUgMTFBRjtBRTM4OzExMDAgMTE3NSAxMUFGOworQUUzOTtBRTM5OzExMDAgMTE3NSAxMUIwO0FFMzk7MTEwMCAxMTc1IDExQjA7CitBRTNBO0FFM0E7MTEwMCAxMTc1IDExQjE7QUUzQTsxMTAwIDExNzUgMTFCMTsKK0FFM0I7QUUzQjsxMTAwIDExNzUgMTFCMjtBRTNCOzExMDAgMTE3NSAxMUIyOworQUUzQztBRTNDOzExMDAgMTE3NSAxMUIzO0FFM0M7MTEwMCAxMTc1IDExQjM7CitBRTNEO0FFM0Q7MTEwMCAxMTc1IDExQjQ7QUUzRDsxMTAwIDExNzUgMTFCNDsKK0FFM0U7QUUzRTsxMTAwIDExNzUgMTFCNTtBRTNFOzExMDAgMTE3NSAxMUI1OworQUUzRjtBRTNGOzExMDAgMTE3NSAxMUI2O0FFM0Y7MTEwMCAxMTc1IDExQjY7CitBRTQwO0FFNDA7MTEwMCAxMTc1IDExQjc7QUU0MDsxMTAwIDExNzUgMTFCNzsKK0FFNDE7QUU0MTsxMTAwIDExNzUgMTFCODtBRTQxOzExMDAgMTE3NSAxMUI4OworQUU0MjtBRTQyOzExMDAgMTE3NSAxMUI5O0FFNDI7MTEwMCAxMTc1IDExQjk7CitBRTQzO0FFNDM7MTEwMCAxMTc1IDExQkE7QUU0MzsxMTAwIDExNzUgMTFCQTsKK0FFNDQ7QUU0NDsxMTAwIDExNzUgMTFCQjtBRTQ0OzExMDAgMTE3NSAxMUJCOworQUU0NTtBRTQ1OzExMDAgMTE3NSAxMUJDO0FFNDU7MTEwMCAxMTc1IDExQkM7CitBRTQ2O0FFNDY7MTEwMCAxMTc1IDExQkQ7QUU0NjsxMTAwIDExNzUgMTFCRDsKK0FFNDc7QUU0NzsxMTAwIDExNzUgMTFCRTtBRTQ3OzExMDAgMTE3NSAxMUJFOworQUU0ODtBRTQ4OzExMDAgMTE3NSAxMUJGO0FFNDg7MTEwMCAxMTc1IDExQkY7CitBRTQ5O0FFNDk7MTEwMCAxMTc1IDExQzA7QUU0OTsxMTAwIDExNzUgMTFDMDsKK0FFNEE7QUU0QTsxMTAwIDExNzUgMTFDMTtBRTRBOzExMDAgMTE3NSAxMUMxOworQUU0QjtBRTRCOzExMDAgMTE3NSAxMUMyO0FFNEI7MTEwMCAxMTc1IDExQzI7CitBRTRDO0FFNEM7MTEwMSAxMTYxO0FFNEM7MTEwMSAxMTYxOworQUU0RDtBRTREOzExMDEgMTE2MSAxMUE4O0FFNEQ7MTEwMSAxMTYxIDExQTg7CitBRTRFO0FFNEU7MTEwMSAxMTYxIDExQTk7QUU0RTsxMTAxIDExNjEgMTFBOTsKK0FFNEY7QUU0RjsxMTAxIDExNjEgMTFBQTtBRTRGOzExMDEgMTE2MSAxMUFBOworQUU1MDtBRTUwOzExMDEgMTE2MSAxMUFCO0FFNTA7MTEwMSAxMTYxIDExQUI7CitBRTUxO0FFNTE7MTEwMSAxMTYxIDExQUM7QUU1MTsxMTAxIDExNjEgMTFBQzsKK0FFNTI7QUU1MjsxMTAxIDExNjEgMTFBRDtBRTUyOzExMDEgMTE2MSAxMUFEOworQUU1MztBRTUzOzExMDEgMTE2MSAxMUFFO0FFNTM7MTEwMSAxMTYxIDExQUU7CitBRTU0O0FFNTQ7MTEwMSAxMTYxIDExQUY7QUU1NDsxMTAxIDExNjEgMTFBRjsKK0FFNTU7QUU1NTsxMTAxIDExNjEgMTFCMDtBRTU1OzExMDEgMTE2MSAxMUIwOworQUU1NjtBRTU2OzExMDEgMTE2MSAxMUIxO0FFNTY7MTEwMSAxMTYxIDExQjE7CitBRTU3O0FFNTc7MTEwMSAxMTYxIDExQjI7QUU1NzsxMTAxIDExNjEgMTFCMjsKK0FFNTg7QUU1ODsxMTAxIDExNjEgMTFCMztBRTU4OzExMDEgMTE2MSAxMUIzOworQUU1OTtBRTU5OzExMDEgMTE2MSAxMUI0O0FFNTk7MTEwMSAxMTYxIDExQjQ7CitBRTVBO0FFNUE7MTEwMSAxMTYxIDExQjU7QUU1QTsxMTAxIDExNjEgMTFCNTsKK0FFNUI7QUU1QjsxMTAxIDExNjEgMTFCNjtBRTVCOzExMDEgMTE2MSAxMUI2OworQUU1QztBRTVDOzExMDEgMTE2MSAxMUI3O0FFNUM7MTEwMSAxMTYxIDExQjc7CitBRTVEO0FFNUQ7MTEwMSAxMTYxIDExQjg7QUU1RDsxMTAxIDExNjEgMTFCODsKK0FFNUU7QUU1RTsxMTAxIDExNjEgMTFCOTtBRTVFOzExMDEgMTE2MSAxMUI5OworQUU1RjtBRTVGOzExMDEgMTE2MSAxMUJBO0FFNUY7MTEwMSAxMTYxIDExQkE7CitBRTYwO0FFNjA7MTEwMSAxMTYxIDExQkI7QUU2MDsxMTAxIDExNjEgMTFCQjsKK0FFNjE7QUU2MTsxMTAxIDExNjEgMTFCQztBRTYxOzExMDEgMTE2MSAxMUJDOworQUU2MjtBRTYyOzExMDEgMTE2MSAxMUJEO0FFNjI7MTEwMSAxMTYxIDExQkQ7CitBRTYzO0FFNjM7MTEwMSAxMTYxIDExQkU7QUU2MzsxMTAxIDExNjEgMTFCRTsKK0FFNjQ7QUU2NDsxMTAxIDExNjEgMTFCRjtBRTY0OzExMDEgMTE2MSAxMUJGOworQUU2NTtBRTY1OzExMDEgMTE2MSAxMUMwO0FFNjU7MTEwMSAxMTYxIDExQzA7CitBRTY2O0FFNjY7MTEwMSAxMTYxIDExQzE7QUU2NjsxMTAxIDExNjEgMTFDMTsKK0FFNjc7QUU2NzsxMTAxIDExNjEgMTFDMjtBRTY3OzExMDEgMTE2MSAxMUMyOworQUU2ODtBRTY4OzExMDEgMTE2MjtBRTY4OzExMDEgMTE2MjsKK0FFNjk7QUU2OTsxMTAxIDExNjIgMTFBODtBRTY5OzExMDEgMTE2MiAxMUE4OworQUU2QTtBRTZBOzExMDEgMTE2MiAxMUE5O0FFNkE7MTEwMSAxMTYyIDExQTk7CitBRTZCO0FFNkI7MTEwMSAxMTYyIDExQUE7QUU2QjsxMTAxIDExNjIgMTFBQTsKK0FFNkM7QUU2QzsxMTAxIDExNjIgMTFBQjtBRTZDOzExMDEgMTE2MiAxMUFCOworQUU2RDtBRTZEOzExMDEgMTE2MiAxMUFDO0FFNkQ7MTEwMSAxMTYyIDExQUM7CitBRTZFO0FFNkU7MTEwMSAxMTYyIDExQUQ7QUU2RTsxMTAxIDExNjIgMTFBRDsKK0FFNkY7QUU2RjsxMTAxIDExNjIgMTFBRTtBRTZGOzExMDEgMTE2MiAxMUFFOworQUU3MDtBRTcwOzExMDEgMTE2MiAxMUFGO0FFNzA7MTEwMSAxMTYyIDExQUY7CitBRTcxO0FFNzE7MTEwMSAxMTYyIDExQjA7QUU3MTsxMTAxIDExNjIgMTFCMDsKK0FFNzI7QUU3MjsxMTAxIDExNjIgMTFCMTtBRTcyOzExMDEgMTE2MiAxMUIxOworQUU3MztBRTczOzExMDEgMTE2MiAxMUIyO0FFNzM7MTEwMSAxMTYyIDExQjI7CitBRTc0O0FFNzQ7MTEwMSAxMTYyIDExQjM7QUU3NDsxMTAxIDExNjIgMTFCMzsKK0FFNzU7QUU3NTsxMTAxIDExNjIgMTFCNDtBRTc1OzExMDEgMTE2MiAxMUI0OworQUU3NjtBRTc2OzExMDEgMTE2MiAxMUI1O0FFNzY7MTEwMSAxMTYyIDExQjU7CitBRTc3O0FFNzc7MTEwMSAxMTYyIDExQjY7QUU3NzsxMTAxIDExNjIgMTFCNjsKK0FFNzg7QUU3ODsxMTAxIDExNjIgMTFCNztBRTc4OzExMDEgMTE2MiAxMUI3OworQUU3OTtBRTc5OzExMDEgMTE2MiAxMUI4O0FFNzk7MTEwMSAxMTYyIDExQjg7CitBRTdBO0FFN0E7MTEwMSAxMTYyIDExQjk7QUU3QTsxMTAxIDExNjIgMTFCOTsKK0FFN0I7QUU3QjsxMTAxIDExNjIgMTFCQTtBRTdCOzExMDEgMTE2MiAxMUJBOworQUU3QztBRTdDOzExMDEgMTE2MiAxMUJCO0FFN0M7MTEwMSAxMTYyIDExQkI7CitBRTdEO0FFN0Q7MTEwMSAxMTYyIDExQkM7QUU3RDsxMTAxIDExNjIgMTFCQzsKK0FFN0U7QUU3RTsxMTAxIDExNjIgMTFCRDtBRTdFOzExMDEgMTE2MiAxMUJEOworQUU3RjtBRTdGOzExMDEgMTE2MiAxMUJFO0FFN0Y7MTEwMSAxMTYyIDExQkU7CitBRTgwO0FFODA7MTEwMSAxMTYyIDExQkY7QUU4MDsxMTAxIDExNjIgMTFCRjsKK0FFODE7QUU4MTsxMTAxIDExNjIgMTFDMDtBRTgxOzExMDEgMTE2MiAxMUMwOworQUU4MjtBRTgyOzExMDEgMTE2MiAxMUMxO0FFODI7MTEwMSAxMTYyIDExQzE7CitBRTgzO0FFODM7MTEwMSAxMTYyIDExQzI7QUU4MzsxMTAxIDExNjIgMTFDMjsKK0FFODQ7QUU4NDsxMTAxIDExNjM7QUU4NDsxMTAxIDExNjM7CitBRTg1O0FFODU7MTEwMSAxMTYzIDExQTg7QUU4NTsxMTAxIDExNjMgMTFBODsKK0FFODY7QUU4NjsxMTAxIDExNjMgMTFBOTtBRTg2OzExMDEgMTE2MyAxMUE5OworQUU4NztBRTg3OzExMDEgMTE2MyAxMUFBO0FFODc7MTEwMSAxMTYzIDExQUE7CitBRTg4O0FFODg7MTEwMSAxMTYzIDExQUI7QUU4ODsxMTAxIDExNjMgMTFBQjsKK0FFODk7QUU4OTsxMTAxIDExNjMgMTFBQztBRTg5OzExMDEgMTE2MyAxMUFDOworQUU4QTtBRThBOzExMDEgMTE2MyAxMUFEO0FFOEE7MTEwMSAxMTYzIDExQUQ7CitBRThCO0FFOEI7MTEwMSAxMTYzIDExQUU7QUU4QjsxMTAxIDExNjMgMTFBRTsKK0FFOEM7QUU4QzsxMTAxIDExNjMgMTFBRjtBRThDOzExMDEgMTE2MyAxMUFGOworQUU4RDtBRThEOzExMDEgMTE2MyAxMUIwO0FFOEQ7MTEwMSAxMTYzIDExQjA7CitBRThFO0FFOEU7MTEwMSAxMTYzIDExQjE7QUU4RTsxMTAxIDExNjMgMTFCMTsKK0FFOEY7QUU4RjsxMTAxIDExNjMgMTFCMjtBRThGOzExMDEgMTE2MyAxMUIyOworQUU5MDtBRTkwOzExMDEgMTE2MyAxMUIzO0FFOTA7MTEwMSAxMTYzIDExQjM7CitBRTkxO0FFOTE7MTEwMSAxMTYzIDExQjQ7QUU5MTsxMTAxIDExNjMgMTFCNDsKK0FFOTI7QUU5MjsxMTAxIDExNjMgMTFCNTtBRTkyOzExMDEgMTE2MyAxMUI1OworQUU5MztBRTkzOzExMDEgMTE2MyAxMUI2O0FFOTM7MTEwMSAxMTYzIDExQjY7CitBRTk0O0FFOTQ7MTEwMSAxMTYzIDExQjc7QUU5NDsxMTAxIDExNjMgMTFCNzsKK0FFOTU7QUU5NTsxMTAxIDExNjMgMTFCODtBRTk1OzExMDEgMTE2MyAxMUI4OworQUU5NjtBRTk2OzExMDEgMTE2MyAxMUI5O0FFOTY7MTEwMSAxMTYzIDExQjk7CitBRTk3O0FFOTc7MTEwMSAxMTYzIDExQkE7QUU5NzsxMTAxIDExNjMgMTFCQTsKK0FFOTg7QUU5ODsxMTAxIDExNjMgMTFCQjtBRTk4OzExMDEgMTE2MyAxMUJCOworQUU5OTtBRTk5OzExMDEgMTE2MyAxMUJDO0FFOTk7MTEwMSAxMTYzIDExQkM7CitBRTlBO0FFOUE7MTEwMSAxMTYzIDExQkQ7QUU5QTsxMTAxIDExNjMgMTFCRDsKK0FFOUI7QUU5QjsxMTAxIDExNjMgMTFCRTtBRTlCOzExMDEgMTE2MyAxMUJFOworQUU5QztBRTlDOzExMDEgMTE2MyAxMUJGO0FFOUM7MTEwMSAxMTYzIDExQkY7CitBRTlEO0FFOUQ7MTEwMSAxMTYzIDExQzA7QUU5RDsxMTAxIDExNjMgMTFDMDsKK0FFOUU7QUU5RTsxMTAxIDExNjMgMTFDMTtBRTlFOzExMDEgMTE2MyAxMUMxOworQUU5RjtBRTlGOzExMDEgMTE2MyAxMUMyO0FFOUY7MTEwMSAxMTYzIDExQzI7CitBRUEwO0FFQTA7MTEwMSAxMTY0O0FFQTA7MTEwMSAxMTY0OworQUVBMTtBRUExOzExMDEgMTE2NCAxMUE4O0FFQTE7MTEwMSAxMTY0IDExQTg7CitBRUEyO0FFQTI7MTEwMSAxMTY0IDExQTk7QUVBMjsxMTAxIDExNjQgMTFBOTsKK0FFQTM7QUVBMzsxMTAxIDExNjQgMTFBQTtBRUEzOzExMDEgMTE2NCAxMUFBOworQUVBNDtBRUE0OzExMDEgMTE2NCAxMUFCO0FFQTQ7MTEwMSAxMTY0IDExQUI7CitBRUE1O0FFQTU7MTEwMSAxMTY0IDExQUM7QUVBNTsxMTAxIDExNjQgMTFBQzsKK0FFQTY7QUVBNjsxMTAxIDExNjQgMTFBRDtBRUE2OzExMDEgMTE2NCAxMUFEOworQUVBNztBRUE3OzExMDEgMTE2NCAxMUFFO0FFQTc7MTEwMSAxMTY0IDExQUU7CitBRUE4O0FFQTg7MTEwMSAxMTY0IDExQUY7QUVBODsxMTAxIDExNjQgMTFBRjsKK0FFQTk7QUVBOTsxMTAxIDExNjQgMTFCMDtBRUE5OzExMDEgMTE2NCAxMUIwOworQUVBQTtBRUFBOzExMDEgMTE2NCAxMUIxO0FFQUE7MTEwMSAxMTY0IDExQjE7CitBRUFCO0FFQUI7MTEwMSAxMTY0IDExQjI7QUVBQjsxMTAxIDExNjQgMTFCMjsKK0FFQUM7QUVBQzsxMTAxIDExNjQgMTFCMztBRUFDOzExMDEgMTE2NCAxMUIzOworQUVBRDtBRUFEOzExMDEgMTE2NCAxMUI0O0FFQUQ7MTEwMSAxMTY0IDExQjQ7CitBRUFFO0FFQUU7MTEwMSAxMTY0IDExQjU7QUVBRTsxMTAxIDExNjQgMTFCNTsKK0FFQUY7QUVBRjsxMTAxIDExNjQgMTFCNjtBRUFGOzExMDEgMTE2NCAxMUI2OworQUVCMDtBRUIwOzExMDEgMTE2NCAxMUI3O0FFQjA7MTEwMSAxMTY0IDExQjc7CitBRUIxO0FFQjE7MTEwMSAxMTY0IDExQjg7QUVCMTsxMTAxIDExNjQgMTFCODsKK0FFQjI7QUVCMjsxMTAxIDExNjQgMTFCOTtBRUIyOzExMDEgMTE2NCAxMUI5OworQUVCMztBRUIzOzExMDEgMTE2NCAxMUJBO0FFQjM7MTEwMSAxMTY0IDExQkE7CitBRUI0O0FFQjQ7MTEwMSAxMTY0IDExQkI7QUVCNDsxMTAxIDExNjQgMTFCQjsKK0FFQjU7QUVCNTsxMTAxIDExNjQgMTFCQztBRUI1OzExMDEgMTE2NCAxMUJDOworQUVCNjtBRUI2OzExMDEgMTE2NCAxMUJEO0FFQjY7MTEwMSAxMTY0IDExQkQ7CitBRUI3O0FFQjc7MTEwMSAxMTY0IDExQkU7QUVCNzsxMTAxIDExNjQgMTFCRTsKK0FFQjg7QUVCODsxMTAxIDExNjQgMTFCRjtBRUI4OzExMDEgMTE2NCAxMUJGOworQUVCOTtBRUI5OzExMDEgMTE2NCAxMUMwO0FFQjk7MTEwMSAxMTY0IDExQzA7CitBRUJBO0FFQkE7MTEwMSAxMTY0IDExQzE7QUVCQTsxMTAxIDExNjQgMTFDMTsKK0FFQkI7QUVCQjsxMTAxIDExNjQgMTFDMjtBRUJCOzExMDEgMTE2NCAxMUMyOworQUVCQztBRUJDOzExMDEgMTE2NTtBRUJDOzExMDEgMTE2NTsKK0FFQkQ7QUVCRDsxMTAxIDExNjUgMTFBODtBRUJEOzExMDEgMTE2NSAxMUE4OworQUVCRTtBRUJFOzExMDEgMTE2NSAxMUE5O0FFQkU7MTEwMSAxMTY1IDExQTk7CitBRUJGO0FFQkY7MTEwMSAxMTY1IDExQUE7QUVCRjsxMTAxIDExNjUgMTFBQTsKK0FFQzA7QUVDMDsxMTAxIDExNjUgMTFBQjtBRUMwOzExMDEgMTE2NSAxMUFCOworQUVDMTtBRUMxOzExMDEgMTE2NSAxMUFDO0FFQzE7MTEwMSAxMTY1IDExQUM7CitBRUMyO0FFQzI7MTEwMSAxMTY1IDExQUQ7QUVDMjsxMTAxIDExNjUgMTFBRDsKK0FFQzM7QUVDMzsxMTAxIDExNjUgMTFBRTtBRUMzOzExMDEgMTE2NSAxMUFFOworQUVDNDtBRUM0OzExMDEgMTE2NSAxMUFGO0FFQzQ7MTEwMSAxMTY1IDExQUY7CitBRUM1O0FFQzU7MTEwMSAxMTY1IDExQjA7QUVDNTsxMTAxIDExNjUgMTFCMDsKK0FFQzY7QUVDNjsxMTAxIDExNjUgMTFCMTtBRUM2OzExMDEgMTE2NSAxMUIxOworQUVDNztBRUM3OzExMDEgMTE2NSAxMUIyO0FFQzc7MTEwMSAxMTY1IDExQjI7CitBRUM4O0FFQzg7MTEwMSAxMTY1IDExQjM7QUVDODsxMTAxIDExNjUgMTFCMzsKK0FFQzk7QUVDOTsxMTAxIDExNjUgMTFCNDtBRUM5OzExMDEgMTE2NSAxMUI0OworQUVDQTtBRUNBOzExMDEgMTE2NSAxMUI1O0FFQ0E7MTEwMSAxMTY1IDExQjU7CitBRUNCO0FFQ0I7MTEwMSAxMTY1IDExQjY7QUVDQjsxMTAxIDExNjUgMTFCNjsKK0FFQ0M7QUVDQzsxMTAxIDExNjUgMTFCNztBRUNDOzExMDEgMTE2NSAxMUI3OworQUVDRDtBRUNEOzExMDEgMTE2NSAxMUI4O0FFQ0Q7MTEwMSAxMTY1IDExQjg7CitBRUNFO0FFQ0U7MTEwMSAxMTY1IDExQjk7QUVDRTsxMTAxIDExNjUgMTFCOTsKK0FFQ0Y7QUVDRjsxMTAxIDExNjUgMTFCQTtBRUNGOzExMDEgMTE2NSAxMUJBOworQUVEMDtBRUQwOzExMDEgMTE2NSAxMUJCO0FFRDA7MTEwMSAxMTY1IDExQkI7CitBRUQxO0FFRDE7MTEwMSAxMTY1IDExQkM7QUVEMTsxMTAxIDExNjUgMTFCQzsKK0FFRDI7QUVEMjsxMTAxIDExNjUgMTFCRDtBRUQyOzExMDEgMTE2NSAxMUJEOworQUVEMztBRUQzOzExMDEgMTE2NSAxMUJFO0FFRDM7MTEwMSAxMTY1IDExQkU7CitBRUQ0O0FFRDQ7MTEwMSAxMTY1IDExQkY7QUVENDsxMTAxIDExNjUgMTFCRjsKK0FFRDU7QUVENTsxMTAxIDExNjUgMTFDMDtBRUQ1OzExMDEgMTE2NSAxMUMwOworQUVENjtBRUQ2OzExMDEgMTE2NSAxMUMxO0FFRDY7MTEwMSAxMTY1IDExQzE7CitBRUQ3O0FFRDc7MTEwMSAxMTY1IDExQzI7QUVENzsxMTAxIDExNjUgMTFDMjsKK0FFRDg7QUVEODsxMTAxIDExNjY7QUVEODsxMTAxIDExNjY7CitBRUQ5O0FFRDk7MTEwMSAxMTY2IDExQTg7QUVEOTsxMTAxIDExNjYgMTFBODsKK0FFREE7QUVEQTsxMTAxIDExNjYgMTFBOTtBRURBOzExMDEgMTE2NiAxMUE5OworQUVEQjtBRURCOzExMDEgMTE2NiAxMUFBO0FFREI7MTEwMSAxMTY2IDExQUE7CitBRURDO0FFREM7MTEwMSAxMTY2IDExQUI7QUVEQzsxMTAxIDExNjYgMTFBQjsKK0FFREQ7QUVERDsxMTAxIDExNjYgMTFBQztBRUREOzExMDEgMTE2NiAxMUFDOworQUVERTtBRURFOzExMDEgMTE2NiAxMUFEO0FFREU7MTEwMSAxMTY2IDExQUQ7CitBRURGO0FFREY7MTEwMSAxMTY2IDExQUU7QUVERjsxMTAxIDExNjYgMTFBRTsKK0FFRTA7QUVFMDsxMTAxIDExNjYgMTFBRjtBRUUwOzExMDEgMTE2NiAxMUFGOworQUVFMTtBRUUxOzExMDEgMTE2NiAxMUIwO0FFRTE7MTEwMSAxMTY2IDExQjA7CitBRUUyO0FFRTI7MTEwMSAxMTY2IDExQjE7QUVFMjsxMTAxIDExNjYgMTFCMTsKK0FFRTM7QUVFMzsxMTAxIDExNjYgMTFCMjtBRUUzOzExMDEgMTE2NiAxMUIyOworQUVFNDtBRUU0OzExMDEgMTE2NiAxMUIzO0FFRTQ7MTEwMSAxMTY2IDExQjM7CitBRUU1O0FFRTU7MTEwMSAxMTY2IDExQjQ7QUVFNTsxMTAxIDExNjYgMTFCNDsKK0FFRTY7QUVFNjsxMTAxIDExNjYgMTFCNTtBRUU2OzExMDEgMTE2NiAxMUI1OworQUVFNztBRUU3OzExMDEgMTE2NiAxMUI2O0FFRTc7MTEwMSAxMTY2IDExQjY7CitBRUU4O0FFRTg7MTEwMSAxMTY2IDExQjc7QUVFODsxMTAxIDExNjYgMTFCNzsKK0FFRTk7QUVFOTsxMTAxIDExNjYgMTFCODtBRUU5OzExMDEgMTE2NiAxMUI4OworQUVFQTtBRUVBOzExMDEgMTE2NiAxMUI5O0FFRUE7MTEwMSAxMTY2IDExQjk7CitBRUVCO0FFRUI7MTEwMSAxMTY2IDExQkE7QUVFQjsxMTAxIDExNjYgMTFCQTsKK0FFRUM7QUVFQzsxMTAxIDExNjYgMTFCQjtBRUVDOzExMDEgMTE2NiAxMUJCOworQUVFRDtBRUVEOzExMDEgMTE2NiAxMUJDO0FFRUQ7MTEwMSAxMTY2IDExQkM7CitBRUVFO0FFRUU7MTEwMSAxMTY2IDExQkQ7QUVFRTsxMTAxIDExNjYgMTFCRDsKK0FFRUY7QUVFRjsxMTAxIDExNjYgMTFCRTtBRUVGOzExMDEgMTE2NiAxMUJFOworQUVGMDtBRUYwOzExMDEgMTE2NiAxMUJGO0FFRjA7MTEwMSAxMTY2IDExQkY7CitBRUYxO0FFRjE7MTEwMSAxMTY2IDExQzA7QUVGMTsxMTAxIDExNjYgMTFDMDsKK0FFRjI7QUVGMjsxMTAxIDExNjYgMTFDMTtBRUYyOzExMDEgMTE2NiAxMUMxOworQUVGMztBRUYzOzExMDEgMTE2NiAxMUMyO0FFRjM7MTEwMSAxMTY2IDExQzI7CitBRUY0O0FFRjQ7MTEwMSAxMTY3O0FFRjQ7MTEwMSAxMTY3OworQUVGNTtBRUY1OzExMDEgMTE2NyAxMUE4O0FFRjU7MTEwMSAxMTY3IDExQTg7CitBRUY2O0FFRjY7MTEwMSAxMTY3IDExQTk7QUVGNjsxMTAxIDExNjcgMTFBOTsKK0FFRjc7QUVGNzsxMTAxIDExNjcgMTFBQTtBRUY3OzExMDEgMTE2NyAxMUFBOworQUVGODtBRUY4OzExMDEgMTE2NyAxMUFCO0FFRjg7MTEwMSAxMTY3IDExQUI7CitBRUY5O0FFRjk7MTEwMSAxMTY3IDExQUM7QUVGOTsxMTAxIDExNjcgMTFBQzsKK0FFRkE7QUVGQTsxMTAxIDExNjcgMTFBRDtBRUZBOzExMDEgMTE2NyAxMUFEOworQUVGQjtBRUZCOzExMDEgMTE2NyAxMUFFO0FFRkI7MTEwMSAxMTY3IDExQUU7CitBRUZDO0FFRkM7MTEwMSAxMTY3IDExQUY7QUVGQzsxMTAxIDExNjcgMTFBRjsKK0FFRkQ7QUVGRDsxMTAxIDExNjcgMTFCMDtBRUZEOzExMDEgMTE2NyAxMUIwOworQUVGRTtBRUZFOzExMDEgMTE2NyAxMUIxO0FFRkU7MTEwMSAxMTY3IDExQjE7CitBRUZGO0FFRkY7MTEwMSAxMTY3IDExQjI7QUVGRjsxMTAxIDExNjcgMTFCMjsKK0FGMDA7QUYwMDsxMTAxIDExNjcgMTFCMztBRjAwOzExMDEgMTE2NyAxMUIzOworQUYwMTtBRjAxOzExMDEgMTE2NyAxMUI0O0FGMDE7MTEwMSAxMTY3IDExQjQ7CitBRjAyO0FGMDI7MTEwMSAxMTY3IDExQjU7QUYwMjsxMTAxIDExNjcgMTFCNTsKK0FGMDM7QUYwMzsxMTAxIDExNjcgMTFCNjtBRjAzOzExMDEgMTE2NyAxMUI2OworQUYwNDtBRjA0OzExMDEgMTE2NyAxMUI3O0FGMDQ7MTEwMSAxMTY3IDExQjc7CitBRjA1O0FGMDU7MTEwMSAxMTY3IDExQjg7QUYwNTsxMTAxIDExNjcgMTFCODsKK0FGMDY7QUYwNjsxMTAxIDExNjcgMTFCOTtBRjA2OzExMDEgMTE2NyAxMUI5OworQUYwNztBRjA3OzExMDEgMTE2NyAxMUJBO0FGMDc7MTEwMSAxMTY3IDExQkE7CitBRjA4O0FGMDg7MTEwMSAxMTY3IDExQkI7QUYwODsxMTAxIDExNjcgMTFCQjsKK0FGMDk7QUYwOTsxMTAxIDExNjcgMTFCQztBRjA5OzExMDEgMTE2NyAxMUJDOworQUYwQTtBRjBBOzExMDEgMTE2NyAxMUJEO0FGMEE7MTEwMSAxMTY3IDExQkQ7CitBRjBCO0FGMEI7MTEwMSAxMTY3IDExQkU7QUYwQjsxMTAxIDExNjcgMTFCRTsKK0FGMEM7QUYwQzsxMTAxIDExNjcgMTFCRjtBRjBDOzExMDEgMTE2NyAxMUJGOworQUYwRDtBRjBEOzExMDEgMTE2NyAxMUMwO0FGMEQ7MTEwMSAxMTY3IDExQzA7CitBRjBFO0FGMEU7MTEwMSAxMTY3IDExQzE7QUYwRTsxMTAxIDExNjcgMTFDMTsKK0FGMEY7QUYwRjsxMTAxIDExNjcgMTFDMjtBRjBGOzExMDEgMTE2NyAxMUMyOworQUYxMDtBRjEwOzExMDEgMTE2ODtBRjEwOzExMDEgMTE2ODsKK0FGMTE7QUYxMTsxMTAxIDExNjggMTFBODtBRjExOzExMDEgMTE2OCAxMUE4OworQUYxMjtBRjEyOzExMDEgMTE2OCAxMUE5O0FGMTI7MTEwMSAxMTY4IDExQTk7CitBRjEzO0FGMTM7MTEwMSAxMTY4IDExQUE7QUYxMzsxMTAxIDExNjggMTFBQTsKK0FGMTQ7QUYxNDsxMTAxIDExNjggMTFBQjtBRjE0OzExMDEgMTE2OCAxMUFCOworQUYxNTtBRjE1OzExMDEgMTE2OCAxMUFDO0FGMTU7MTEwMSAxMTY4IDExQUM7CitBRjE2O0FGMTY7MTEwMSAxMTY4IDExQUQ7QUYxNjsxMTAxIDExNjggMTFBRDsKK0FGMTc7QUYxNzsxMTAxIDExNjggMTFBRTtBRjE3OzExMDEgMTE2OCAxMUFFOworQUYxODtBRjE4OzExMDEgMTE2OCAxMUFGO0FGMTg7MTEwMSAxMTY4IDExQUY7CitBRjE5O0FGMTk7MTEwMSAxMTY4IDExQjA7QUYxOTsxMTAxIDExNjggMTFCMDsKK0FGMUE7QUYxQTsxMTAxIDExNjggMTFCMTtBRjFBOzExMDEgMTE2OCAxMUIxOworQUYxQjtBRjFCOzExMDEgMTE2OCAxMUIyO0FGMUI7MTEwMSAxMTY4IDExQjI7CitBRjFDO0FGMUM7MTEwMSAxMTY4IDExQjM7QUYxQzsxMTAxIDExNjggMTFCMzsKK0FGMUQ7QUYxRDsxMTAxIDExNjggMTFCNDtBRjFEOzExMDEgMTE2OCAxMUI0OworQUYxRTtBRjFFOzExMDEgMTE2OCAxMUI1O0FGMUU7MTEwMSAxMTY4IDExQjU7CitBRjFGO0FGMUY7MTEwMSAxMTY4IDExQjY7QUYxRjsxMTAxIDExNjggMTFCNjsKK0FGMjA7QUYyMDsxMTAxIDExNjggMTFCNztBRjIwOzExMDEgMTE2OCAxMUI3OworQUYyMTtBRjIxOzExMDEgMTE2OCAxMUI4O0FGMjE7MTEwMSAxMTY4IDExQjg7CitBRjIyO0FGMjI7MTEwMSAxMTY4IDExQjk7QUYyMjsxMTAxIDExNjggMTFCOTsKK0FGMjM7QUYyMzsxMTAxIDExNjggMTFCQTtBRjIzOzExMDEgMTE2OCAxMUJBOworQUYyNDtBRjI0OzExMDEgMTE2OCAxMUJCO0FGMjQ7MTEwMSAxMTY4IDExQkI7CitBRjI1O0FGMjU7MTEwMSAxMTY4IDExQkM7QUYyNTsxMTAxIDExNjggMTFCQzsKK0FGMjY7QUYyNjsxMTAxIDExNjggMTFCRDtBRjI2OzExMDEgMTE2OCAxMUJEOworQUYyNztBRjI3OzExMDEgMTE2OCAxMUJFO0FGMjc7MTEwMSAxMTY4IDExQkU7CitBRjI4O0FGMjg7MTEwMSAxMTY4IDExQkY7QUYyODsxMTAxIDExNjggMTFCRjsKK0FGMjk7QUYyOTsxMTAxIDExNjggMTFDMDtBRjI5OzExMDEgMTE2OCAxMUMwOworQUYyQTtBRjJBOzExMDEgMTE2OCAxMUMxO0FGMkE7MTEwMSAxMTY4IDExQzE7CitBRjJCO0FGMkI7MTEwMSAxMTY4IDExQzI7QUYyQjsxMTAxIDExNjggMTFDMjsKK0FGMkM7QUYyQzsxMTAxIDExNjk7QUYyQzsxMTAxIDExNjk7CitBRjJEO0FGMkQ7MTEwMSAxMTY5IDExQTg7QUYyRDsxMTAxIDExNjkgMTFBODsKK0FGMkU7QUYyRTsxMTAxIDExNjkgMTFBOTtBRjJFOzExMDEgMTE2OSAxMUE5OworQUYyRjtBRjJGOzExMDEgMTE2OSAxMUFBO0FGMkY7MTEwMSAxMTY5IDExQUE7CitBRjMwO0FGMzA7MTEwMSAxMTY5IDExQUI7QUYzMDsxMTAxIDExNjkgMTFBQjsKK0FGMzE7QUYzMTsxMTAxIDExNjkgMTFBQztBRjMxOzExMDEgMTE2OSAxMUFDOworQUYzMjtBRjMyOzExMDEgMTE2OSAxMUFEO0FGMzI7MTEwMSAxMTY5IDExQUQ7CitBRjMzO0FGMzM7MTEwMSAxMTY5IDExQUU7QUYzMzsxMTAxIDExNjkgMTFBRTsKK0FGMzQ7QUYzNDsxMTAxIDExNjkgMTFBRjtBRjM0OzExMDEgMTE2OSAxMUFGOworQUYzNTtBRjM1OzExMDEgMTE2OSAxMUIwO0FGMzU7MTEwMSAxMTY5IDExQjA7CitBRjM2O0FGMzY7MTEwMSAxMTY5IDExQjE7QUYzNjsxMTAxIDExNjkgMTFCMTsKK0FGMzc7QUYzNzsxMTAxIDExNjkgMTFCMjtBRjM3OzExMDEgMTE2OSAxMUIyOworQUYzODtBRjM4OzExMDEgMTE2OSAxMUIzO0FGMzg7MTEwMSAxMTY5IDExQjM7CitBRjM5O0FGMzk7MTEwMSAxMTY5IDExQjQ7QUYzOTsxMTAxIDExNjkgMTFCNDsKK0FGM0E7QUYzQTsxMTAxIDExNjkgMTFCNTtBRjNBOzExMDEgMTE2OSAxMUI1OworQUYzQjtBRjNCOzExMDEgMTE2OSAxMUI2O0FGM0I7MTEwMSAxMTY5IDExQjY7CitBRjNDO0FGM0M7MTEwMSAxMTY5IDExQjc7QUYzQzsxMTAxIDExNjkgMTFCNzsKK0FGM0Q7QUYzRDsxMTAxIDExNjkgMTFCODtBRjNEOzExMDEgMTE2OSAxMUI4OworQUYzRTtBRjNFOzExMDEgMTE2OSAxMUI5O0FGM0U7MTEwMSAxMTY5IDExQjk7CitBRjNGO0FGM0Y7MTEwMSAxMTY5IDExQkE7QUYzRjsxMTAxIDExNjkgMTFCQTsKK0FGNDA7QUY0MDsxMTAxIDExNjkgMTFCQjtBRjQwOzExMDEgMTE2OSAxMUJCOworQUY0MTtBRjQxOzExMDEgMTE2OSAxMUJDO0FGNDE7MTEwMSAxMTY5IDExQkM7CitBRjQyO0FGNDI7MTEwMSAxMTY5IDExQkQ7QUY0MjsxMTAxIDExNjkgMTFCRDsKK0FGNDM7QUY0MzsxMTAxIDExNjkgMTFCRTtBRjQzOzExMDEgMTE2OSAxMUJFOworQUY0NDtBRjQ0OzExMDEgMTE2OSAxMUJGO0FGNDQ7MTEwMSAxMTY5IDExQkY7CitBRjQ1O0FGNDU7MTEwMSAxMTY5IDExQzA7QUY0NTsxMTAxIDExNjkgMTFDMDsKK0FGNDY7QUY0NjsxMTAxIDExNjkgMTFDMTtBRjQ2OzExMDEgMTE2OSAxMUMxOworQUY0NztBRjQ3OzExMDEgMTE2OSAxMUMyO0FGNDc7MTEwMSAxMTY5IDExQzI7CitBRjQ4O0FGNDg7MTEwMSAxMTZBO0FGNDg7MTEwMSAxMTZBOworQUY0OTtBRjQ5OzExMDEgMTE2QSAxMUE4O0FGNDk7MTEwMSAxMTZBIDExQTg7CitBRjRBO0FGNEE7MTEwMSAxMTZBIDExQTk7QUY0QTsxMTAxIDExNkEgMTFBOTsKK0FGNEI7QUY0QjsxMTAxIDExNkEgMTFBQTtBRjRCOzExMDEgMTE2QSAxMUFBOworQUY0QztBRjRDOzExMDEgMTE2QSAxMUFCO0FGNEM7MTEwMSAxMTZBIDExQUI7CitBRjREO0FGNEQ7MTEwMSAxMTZBIDExQUM7QUY0RDsxMTAxIDExNkEgMTFBQzsKK0FGNEU7QUY0RTsxMTAxIDExNkEgMTFBRDtBRjRFOzExMDEgMTE2QSAxMUFEOworQUY0RjtBRjRGOzExMDEgMTE2QSAxMUFFO0FGNEY7MTEwMSAxMTZBIDExQUU7CitBRjUwO0FGNTA7MTEwMSAxMTZBIDExQUY7QUY1MDsxMTAxIDExNkEgMTFBRjsKK0FGNTE7QUY1MTsxMTAxIDExNkEgMTFCMDtBRjUxOzExMDEgMTE2QSAxMUIwOworQUY1MjtBRjUyOzExMDEgMTE2QSAxMUIxO0FGNTI7MTEwMSAxMTZBIDExQjE7CitBRjUzO0FGNTM7MTEwMSAxMTZBIDExQjI7QUY1MzsxMTAxIDExNkEgMTFCMjsKK0FGNTQ7QUY1NDsxMTAxIDExNkEgMTFCMztBRjU0OzExMDEgMTE2QSAxMUIzOworQUY1NTtBRjU1OzExMDEgMTE2QSAxMUI0O0FGNTU7MTEwMSAxMTZBIDExQjQ7CitBRjU2O0FGNTY7MTEwMSAxMTZBIDExQjU7QUY1NjsxMTAxIDExNkEgMTFCNTsKK0FGNTc7QUY1NzsxMTAxIDExNkEgMTFCNjtBRjU3OzExMDEgMTE2QSAxMUI2OworQUY1ODtBRjU4OzExMDEgMTE2QSAxMUI3O0FGNTg7MTEwMSAxMTZBIDExQjc7CitBRjU5O0FGNTk7MTEwMSAxMTZBIDExQjg7QUY1OTsxMTAxIDExNkEgMTFCODsKK0FGNUE7QUY1QTsxMTAxIDExNkEgMTFCOTtBRjVBOzExMDEgMTE2QSAxMUI5OworQUY1QjtBRjVCOzExMDEgMTE2QSAxMUJBO0FGNUI7MTEwMSAxMTZBIDExQkE7CitBRjVDO0FGNUM7MTEwMSAxMTZBIDExQkI7QUY1QzsxMTAxIDExNkEgMTFCQjsKK0FGNUQ7QUY1RDsxMTAxIDExNkEgMTFCQztBRjVEOzExMDEgMTE2QSAxMUJDOworQUY1RTtBRjVFOzExMDEgMTE2QSAxMUJEO0FGNUU7MTEwMSAxMTZBIDExQkQ7CitBRjVGO0FGNUY7MTEwMSAxMTZBIDExQkU7QUY1RjsxMTAxIDExNkEgMTFCRTsKK0FGNjA7QUY2MDsxMTAxIDExNkEgMTFCRjtBRjYwOzExMDEgMTE2QSAxMUJGOworQUY2MTtBRjYxOzExMDEgMTE2QSAxMUMwO0FGNjE7MTEwMSAxMTZBIDExQzA7CitBRjYyO0FGNjI7MTEwMSAxMTZBIDExQzE7QUY2MjsxMTAxIDExNkEgMTFDMTsKK0FGNjM7QUY2MzsxMTAxIDExNkEgMTFDMjtBRjYzOzExMDEgMTE2QSAxMUMyOworQUY2NDtBRjY0OzExMDEgMTE2QjtBRjY0OzExMDEgMTE2QjsKK0FGNjU7QUY2NTsxMTAxIDExNkIgMTFBODtBRjY1OzExMDEgMTE2QiAxMUE4OworQUY2NjtBRjY2OzExMDEgMTE2QiAxMUE5O0FGNjY7MTEwMSAxMTZCIDExQTk7CitBRjY3O0FGNjc7MTEwMSAxMTZCIDExQUE7QUY2NzsxMTAxIDExNkIgMTFBQTsKK0FGNjg7QUY2ODsxMTAxIDExNkIgMTFBQjtBRjY4OzExMDEgMTE2QiAxMUFCOworQUY2OTtBRjY5OzExMDEgMTE2QiAxMUFDO0FGNjk7MTEwMSAxMTZCIDExQUM7CitBRjZBO0FGNkE7MTEwMSAxMTZCIDExQUQ7QUY2QTsxMTAxIDExNkIgMTFBRDsKK0FGNkI7QUY2QjsxMTAxIDExNkIgMTFBRTtBRjZCOzExMDEgMTE2QiAxMUFFOworQUY2QztBRjZDOzExMDEgMTE2QiAxMUFGO0FGNkM7MTEwMSAxMTZCIDExQUY7CitBRjZEO0FGNkQ7MTEwMSAxMTZCIDExQjA7QUY2RDsxMTAxIDExNkIgMTFCMDsKK0FGNkU7QUY2RTsxMTAxIDExNkIgMTFCMTtBRjZFOzExMDEgMTE2QiAxMUIxOworQUY2RjtBRjZGOzExMDEgMTE2QiAxMUIyO0FGNkY7MTEwMSAxMTZCIDExQjI7CitBRjcwO0FGNzA7MTEwMSAxMTZCIDExQjM7QUY3MDsxMTAxIDExNkIgMTFCMzsKK0FGNzE7QUY3MTsxMTAxIDExNkIgMTFCNDtBRjcxOzExMDEgMTE2QiAxMUI0OworQUY3MjtBRjcyOzExMDEgMTE2QiAxMUI1O0FGNzI7MTEwMSAxMTZCIDExQjU7CitBRjczO0FGNzM7MTEwMSAxMTZCIDExQjY7QUY3MzsxMTAxIDExNkIgMTFCNjsKK0FGNzQ7QUY3NDsxMTAxIDExNkIgMTFCNztBRjc0OzExMDEgMTE2QiAxMUI3OworQUY3NTtBRjc1OzExMDEgMTE2QiAxMUI4O0FGNzU7MTEwMSAxMTZCIDExQjg7CitBRjc2O0FGNzY7MTEwMSAxMTZCIDExQjk7QUY3NjsxMTAxIDExNkIgMTFCOTsKK0FGNzc7QUY3NzsxMTAxIDExNkIgMTFCQTtBRjc3OzExMDEgMTE2QiAxMUJBOworQUY3ODtBRjc4OzExMDEgMTE2QiAxMUJCO0FGNzg7MTEwMSAxMTZCIDExQkI7CitBRjc5O0FGNzk7MTEwMSAxMTZCIDExQkM7QUY3OTsxMTAxIDExNkIgMTFCQzsKK0FGN0E7QUY3QTsxMTAxIDExNkIgMTFCRDtBRjdBOzExMDEgMTE2QiAxMUJEOworQUY3QjtBRjdCOzExMDEgMTE2QiAxMUJFO0FGN0I7MTEwMSAxMTZCIDExQkU7CitBRjdDO0FGN0M7MTEwMSAxMTZCIDExQkY7QUY3QzsxMTAxIDExNkIgMTFCRjsKK0FGN0Q7QUY3RDsxMTAxIDExNkIgMTFDMDtBRjdEOzExMDEgMTE2QiAxMUMwOworQUY3RTtBRjdFOzExMDEgMTE2QiAxMUMxO0FGN0U7MTEwMSAxMTZCIDExQzE7CitBRjdGO0FGN0Y7MTEwMSAxMTZCIDExQzI7QUY3RjsxMTAxIDExNkIgMTFDMjsKK0FGODA7QUY4MDsxMTAxIDExNkM7QUY4MDsxMTAxIDExNkM7CitBRjgxO0FGODE7MTEwMSAxMTZDIDExQTg7QUY4MTsxMTAxIDExNkMgMTFBODsKK0FGODI7QUY4MjsxMTAxIDExNkMgMTFBOTtBRjgyOzExMDEgMTE2QyAxMUE5OworQUY4MztBRjgzOzExMDEgMTE2QyAxMUFBO0FGODM7MTEwMSAxMTZDIDExQUE7CitBRjg0O0FGODQ7MTEwMSAxMTZDIDExQUI7QUY4NDsxMTAxIDExNkMgMTFBQjsKK0FGODU7QUY4NTsxMTAxIDExNkMgMTFBQztBRjg1OzExMDEgMTE2QyAxMUFDOworQUY4NjtBRjg2OzExMDEgMTE2QyAxMUFEO0FGODY7MTEwMSAxMTZDIDExQUQ7CitBRjg3O0FGODc7MTEwMSAxMTZDIDExQUU7QUY4NzsxMTAxIDExNkMgMTFBRTsKK0FGODg7QUY4ODsxMTAxIDExNkMgMTFBRjtBRjg4OzExMDEgMTE2QyAxMUFGOworQUY4OTtBRjg5OzExMDEgMTE2QyAxMUIwO0FGODk7MTEwMSAxMTZDIDExQjA7CitBRjhBO0FGOEE7MTEwMSAxMTZDIDExQjE7QUY4QTsxMTAxIDExNkMgMTFCMTsKK0FGOEI7QUY4QjsxMTAxIDExNkMgMTFCMjtBRjhCOzExMDEgMTE2QyAxMUIyOworQUY4QztBRjhDOzExMDEgMTE2QyAxMUIzO0FGOEM7MTEwMSAxMTZDIDExQjM7CitBRjhEO0FGOEQ7MTEwMSAxMTZDIDExQjQ7QUY4RDsxMTAxIDExNkMgMTFCNDsKK0FGOEU7QUY4RTsxMTAxIDExNkMgMTFCNTtBRjhFOzExMDEgMTE2QyAxMUI1OworQUY4RjtBRjhGOzExMDEgMTE2QyAxMUI2O0FGOEY7MTEwMSAxMTZDIDExQjY7CitBRjkwO0FGOTA7MTEwMSAxMTZDIDExQjc7QUY5MDsxMTAxIDExNkMgMTFCNzsKK0FGOTE7QUY5MTsxMTAxIDExNkMgMTFCODtBRjkxOzExMDEgMTE2QyAxMUI4OworQUY5MjtBRjkyOzExMDEgMTE2QyAxMUI5O0FGOTI7MTEwMSAxMTZDIDExQjk7CitBRjkzO0FGOTM7MTEwMSAxMTZDIDExQkE7QUY5MzsxMTAxIDExNkMgMTFCQTsKK0FGOTQ7QUY5NDsxMTAxIDExNkMgMTFCQjtBRjk0OzExMDEgMTE2QyAxMUJCOworQUY5NTtBRjk1OzExMDEgMTE2QyAxMUJDO0FGOTU7MTEwMSAxMTZDIDExQkM7CitBRjk2O0FGOTY7MTEwMSAxMTZDIDExQkQ7QUY5NjsxMTAxIDExNkMgMTFCRDsKK0FGOTc7QUY5NzsxMTAxIDExNkMgMTFCRTtBRjk3OzExMDEgMTE2QyAxMUJFOworQUY5ODtBRjk4OzExMDEgMTE2QyAxMUJGO0FGOTg7MTEwMSAxMTZDIDExQkY7CitBRjk5O0FGOTk7MTEwMSAxMTZDIDExQzA7QUY5OTsxMTAxIDExNkMgMTFDMDsKK0FGOUE7QUY5QTsxMTAxIDExNkMgMTFDMTtBRjlBOzExMDEgMTE2QyAxMUMxOworQUY5QjtBRjlCOzExMDEgMTE2QyAxMUMyO0FGOUI7MTEwMSAxMTZDIDExQzI7CitBRjlDO0FGOUM7MTEwMSAxMTZEO0FGOUM7MTEwMSAxMTZEOworQUY5RDtBRjlEOzExMDEgMTE2RCAxMUE4O0FGOUQ7MTEwMSAxMTZEIDExQTg7CitBRjlFO0FGOUU7MTEwMSAxMTZEIDExQTk7QUY5RTsxMTAxIDExNkQgMTFBOTsKK0FGOUY7QUY5RjsxMTAxIDExNkQgMTFBQTtBRjlGOzExMDEgMTE2RCAxMUFBOworQUZBMDtBRkEwOzExMDEgMTE2RCAxMUFCO0FGQTA7MTEwMSAxMTZEIDExQUI7CitBRkExO0FGQTE7MTEwMSAxMTZEIDExQUM7QUZBMTsxMTAxIDExNkQgMTFBQzsKK0FGQTI7QUZBMjsxMTAxIDExNkQgMTFBRDtBRkEyOzExMDEgMTE2RCAxMUFEOworQUZBMztBRkEzOzExMDEgMTE2RCAxMUFFO0FGQTM7MTEwMSAxMTZEIDExQUU7CitBRkE0O0FGQTQ7MTEwMSAxMTZEIDExQUY7QUZBNDsxMTAxIDExNkQgMTFBRjsKK0FGQTU7QUZBNTsxMTAxIDExNkQgMTFCMDtBRkE1OzExMDEgMTE2RCAxMUIwOworQUZBNjtBRkE2OzExMDEgMTE2RCAxMUIxO0FGQTY7MTEwMSAxMTZEIDExQjE7CitBRkE3O0FGQTc7MTEwMSAxMTZEIDExQjI7QUZBNzsxMTAxIDExNkQgMTFCMjsKK0FGQTg7QUZBODsxMTAxIDExNkQgMTFCMztBRkE4OzExMDEgMTE2RCAxMUIzOworQUZBOTtBRkE5OzExMDEgMTE2RCAxMUI0O0FGQTk7MTEwMSAxMTZEIDExQjQ7CitBRkFBO0FGQUE7MTEwMSAxMTZEIDExQjU7QUZBQTsxMTAxIDExNkQgMTFCNTsKK0FGQUI7QUZBQjsxMTAxIDExNkQgMTFCNjtBRkFCOzExMDEgMTE2RCAxMUI2OworQUZBQztBRkFDOzExMDEgMTE2RCAxMUI3O0FGQUM7MTEwMSAxMTZEIDExQjc7CitBRkFEO0FGQUQ7MTEwMSAxMTZEIDExQjg7QUZBRDsxMTAxIDExNkQgMTFCODsKK0FGQUU7QUZBRTsxMTAxIDExNkQgMTFCOTtBRkFFOzExMDEgMTE2RCAxMUI5OworQUZBRjtBRkFGOzExMDEgMTE2RCAxMUJBO0FGQUY7MTEwMSAxMTZEIDExQkE7CitBRkIwO0FGQjA7MTEwMSAxMTZEIDExQkI7QUZCMDsxMTAxIDExNkQgMTFCQjsKK0FGQjE7QUZCMTsxMTAxIDExNkQgMTFCQztBRkIxOzExMDEgMTE2RCAxMUJDOworQUZCMjtBRkIyOzExMDEgMTE2RCAxMUJEO0FGQjI7MTEwMSAxMTZEIDExQkQ7CitBRkIzO0FGQjM7MTEwMSAxMTZEIDExQkU7QUZCMzsxMTAxIDExNkQgMTFCRTsKK0FGQjQ7QUZCNDsxMTAxIDExNkQgMTFCRjtBRkI0OzExMDEgMTE2RCAxMUJGOworQUZCNTtBRkI1OzExMDEgMTE2RCAxMUMwO0FGQjU7MTEwMSAxMTZEIDExQzA7CitBRkI2O0FGQjY7MTEwMSAxMTZEIDExQzE7QUZCNjsxMTAxIDExNkQgMTFDMTsKK0FGQjc7QUZCNzsxMTAxIDExNkQgMTFDMjtBRkI3OzExMDEgMTE2RCAxMUMyOworQUZCODtBRkI4OzExMDEgMTE2RTtBRkI4OzExMDEgMTE2RTsKK0FGQjk7QUZCOTsxMTAxIDExNkUgMTFBODtBRkI5OzExMDEgMTE2RSAxMUE4OworQUZCQTtBRkJBOzExMDEgMTE2RSAxMUE5O0FGQkE7MTEwMSAxMTZFIDExQTk7CitBRkJCO0FGQkI7MTEwMSAxMTZFIDExQUE7QUZCQjsxMTAxIDExNkUgMTFBQTsKK0FGQkM7QUZCQzsxMTAxIDExNkUgMTFBQjtBRkJDOzExMDEgMTE2RSAxMUFCOworQUZCRDtBRkJEOzExMDEgMTE2RSAxMUFDO0FGQkQ7MTEwMSAxMTZFIDExQUM7CitBRkJFO0FGQkU7MTEwMSAxMTZFIDExQUQ7QUZCRTsxMTAxIDExNkUgMTFBRDsKK0FGQkY7QUZCRjsxMTAxIDExNkUgMTFBRTtBRkJGOzExMDEgMTE2RSAxMUFFOworQUZDMDtBRkMwOzExMDEgMTE2RSAxMUFGO0FGQzA7MTEwMSAxMTZFIDExQUY7CitBRkMxO0FGQzE7MTEwMSAxMTZFIDExQjA7QUZDMTsxMTAxIDExNkUgMTFCMDsKK0FGQzI7QUZDMjsxMTAxIDExNkUgMTFCMTtBRkMyOzExMDEgMTE2RSAxMUIxOworQUZDMztBRkMzOzExMDEgMTE2RSAxMUIyO0FGQzM7MTEwMSAxMTZFIDExQjI7CitBRkM0O0FGQzQ7MTEwMSAxMTZFIDExQjM7QUZDNDsxMTAxIDExNkUgMTFCMzsKK0FGQzU7QUZDNTsxMTAxIDExNkUgMTFCNDtBRkM1OzExMDEgMTE2RSAxMUI0OworQUZDNjtBRkM2OzExMDEgMTE2RSAxMUI1O0FGQzY7MTEwMSAxMTZFIDExQjU7CitBRkM3O0FGQzc7MTEwMSAxMTZFIDExQjY7QUZDNzsxMTAxIDExNkUgMTFCNjsKK0FGQzg7QUZDODsxMTAxIDExNkUgMTFCNztBRkM4OzExMDEgMTE2RSAxMUI3OworQUZDOTtBRkM5OzExMDEgMTE2RSAxMUI4O0FGQzk7MTEwMSAxMTZFIDExQjg7CitBRkNBO0FGQ0E7MTEwMSAxMTZFIDExQjk7QUZDQTsxMTAxIDExNkUgMTFCOTsKK0FGQ0I7QUZDQjsxMTAxIDExNkUgMTFCQTtBRkNCOzExMDEgMTE2RSAxMUJBOworQUZDQztBRkNDOzExMDEgMTE2RSAxMUJCO0FGQ0M7MTEwMSAxMTZFIDExQkI7CitBRkNEO0FGQ0Q7MTEwMSAxMTZFIDExQkM7QUZDRDsxMTAxIDExNkUgMTFCQzsKK0FGQ0U7QUZDRTsxMTAxIDExNkUgMTFCRDtBRkNFOzExMDEgMTE2RSAxMUJEOworQUZDRjtBRkNGOzExMDEgMTE2RSAxMUJFO0FGQ0Y7MTEwMSAxMTZFIDExQkU7CitBRkQwO0FGRDA7MTEwMSAxMTZFIDExQkY7QUZEMDsxMTAxIDExNkUgMTFCRjsKK0FGRDE7QUZEMTsxMTAxIDExNkUgMTFDMDtBRkQxOzExMDEgMTE2RSAxMUMwOworQUZEMjtBRkQyOzExMDEgMTE2RSAxMUMxO0FGRDI7MTEwMSAxMTZFIDExQzE7CitBRkQzO0FGRDM7MTEwMSAxMTZFIDExQzI7QUZEMzsxMTAxIDExNkUgMTFDMjsKK0FGRDQ7QUZENDsxMTAxIDExNkY7QUZENDsxMTAxIDExNkY7CitBRkQ1O0FGRDU7MTEwMSAxMTZGIDExQTg7QUZENTsxMTAxIDExNkYgMTFBODsKK0FGRDY7QUZENjsxMTAxIDExNkYgMTFBOTtBRkQ2OzExMDEgMTE2RiAxMUE5OworQUZENztBRkQ3OzExMDEgMTE2RiAxMUFBO0FGRDc7MTEwMSAxMTZGIDExQUE7CitBRkQ4O0FGRDg7MTEwMSAxMTZGIDExQUI7QUZEODsxMTAxIDExNkYgMTFBQjsKK0FGRDk7QUZEOTsxMTAxIDExNkYgMTFBQztBRkQ5OzExMDEgMTE2RiAxMUFDOworQUZEQTtBRkRBOzExMDEgMTE2RiAxMUFEO0FGREE7MTEwMSAxMTZGIDExQUQ7CitBRkRCO0FGREI7MTEwMSAxMTZGIDExQUU7QUZEQjsxMTAxIDExNkYgMTFBRTsKK0FGREM7QUZEQzsxMTAxIDExNkYgMTFBRjtBRkRDOzExMDEgMTE2RiAxMUFGOworQUZERDtBRkREOzExMDEgMTE2RiAxMUIwO0FGREQ7MTEwMSAxMTZGIDExQjA7CitBRkRFO0FGREU7MTEwMSAxMTZGIDExQjE7QUZERTsxMTAxIDExNkYgMTFCMTsKK0FGREY7QUZERjsxMTAxIDExNkYgMTFCMjtBRkRGOzExMDEgMTE2RiAxMUIyOworQUZFMDtBRkUwOzExMDEgMTE2RiAxMUIzO0FGRTA7MTEwMSAxMTZGIDExQjM7CitBRkUxO0FGRTE7MTEwMSAxMTZGIDExQjQ7QUZFMTsxMTAxIDExNkYgMTFCNDsKK0FGRTI7QUZFMjsxMTAxIDExNkYgMTFCNTtBRkUyOzExMDEgMTE2RiAxMUI1OworQUZFMztBRkUzOzExMDEgMTE2RiAxMUI2O0FGRTM7MTEwMSAxMTZGIDExQjY7CitBRkU0O0FGRTQ7MTEwMSAxMTZGIDExQjc7QUZFNDsxMTAxIDExNkYgMTFCNzsKK0FGRTU7QUZFNTsxMTAxIDExNkYgMTFCODtBRkU1OzExMDEgMTE2RiAxMUI4OworQUZFNjtBRkU2OzExMDEgMTE2RiAxMUI5O0FGRTY7MTEwMSAxMTZGIDExQjk7CitBRkU3O0FGRTc7MTEwMSAxMTZGIDExQkE7QUZFNzsxMTAxIDExNkYgMTFCQTsKK0FGRTg7QUZFODsxMTAxIDExNkYgMTFCQjtBRkU4OzExMDEgMTE2RiAxMUJCOworQUZFOTtBRkU5OzExMDEgMTE2RiAxMUJDO0FGRTk7MTEwMSAxMTZGIDExQkM7CitBRkVBO0FGRUE7MTEwMSAxMTZGIDExQkQ7QUZFQTsxMTAxIDExNkYgMTFCRDsKK0FGRUI7QUZFQjsxMTAxIDExNkYgMTFCRTtBRkVCOzExMDEgMTE2RiAxMUJFOworQUZFQztBRkVDOzExMDEgMTE2RiAxMUJGO0FGRUM7MTEwMSAxMTZGIDExQkY7CitBRkVEO0FGRUQ7MTEwMSAxMTZGIDExQzA7QUZFRDsxMTAxIDExNkYgMTFDMDsKK0FGRUU7QUZFRTsxMTAxIDExNkYgMTFDMTtBRkVFOzExMDEgMTE2RiAxMUMxOworQUZFRjtBRkVGOzExMDEgMTE2RiAxMUMyO0FGRUY7MTEwMSAxMTZGIDExQzI7CitBRkYwO0FGRjA7MTEwMSAxMTcwO0FGRjA7MTEwMSAxMTcwOworQUZGMTtBRkYxOzExMDEgMTE3MCAxMUE4O0FGRjE7MTEwMSAxMTcwIDExQTg7CitBRkYyO0FGRjI7MTEwMSAxMTcwIDExQTk7QUZGMjsxMTAxIDExNzAgMTFBOTsKK0FGRjM7QUZGMzsxMTAxIDExNzAgMTFBQTtBRkYzOzExMDEgMTE3MCAxMUFBOworQUZGNDtBRkY0OzExMDEgMTE3MCAxMUFCO0FGRjQ7MTEwMSAxMTcwIDExQUI7CitBRkY1O0FGRjU7MTEwMSAxMTcwIDExQUM7QUZGNTsxMTAxIDExNzAgMTFBQzsKK0FGRjY7QUZGNjsxMTAxIDExNzAgMTFBRDtBRkY2OzExMDEgMTE3MCAxMUFEOworQUZGNztBRkY3OzExMDEgMTE3MCAxMUFFO0FGRjc7MTEwMSAxMTcwIDExQUU7CitBRkY4O0FGRjg7MTEwMSAxMTcwIDExQUY7QUZGODsxMTAxIDExNzAgMTFBRjsKK0FGRjk7QUZGOTsxMTAxIDExNzAgMTFCMDtBRkY5OzExMDEgMTE3MCAxMUIwOworQUZGQTtBRkZBOzExMDEgMTE3MCAxMUIxO0FGRkE7MTEwMSAxMTcwIDExQjE7CitBRkZCO0FGRkI7MTEwMSAxMTcwIDExQjI7QUZGQjsxMTAxIDExNzAgMTFCMjsKK0FGRkM7QUZGQzsxMTAxIDExNzAgMTFCMztBRkZDOzExMDEgMTE3MCAxMUIzOworQUZGRDtBRkZEOzExMDEgMTE3MCAxMUI0O0FGRkQ7MTEwMSAxMTcwIDExQjQ7CitBRkZFO0FGRkU7MTEwMSAxMTcwIDExQjU7QUZGRTsxMTAxIDExNzAgMTFCNTsKK0FGRkY7QUZGRjsxMTAxIDExNzAgMTFCNjtBRkZGOzExMDEgMTE3MCAxMUI2OworQjAwMDtCMDAwOzExMDEgMTE3MCAxMUI3O0IwMDA7MTEwMSAxMTcwIDExQjc7CitCMDAxO0IwMDE7MTEwMSAxMTcwIDExQjg7QjAwMTsxMTAxIDExNzAgMTFCODsKK0IwMDI7QjAwMjsxMTAxIDExNzAgMTFCOTtCMDAyOzExMDEgMTE3MCAxMUI5OworQjAwMztCMDAzOzExMDEgMTE3MCAxMUJBO0IwMDM7MTEwMSAxMTcwIDExQkE7CitCMDA0O0IwMDQ7MTEwMSAxMTcwIDExQkI7QjAwNDsxMTAxIDExNzAgMTFCQjsKK0IwMDU7QjAwNTsxMTAxIDExNzAgMTFCQztCMDA1OzExMDEgMTE3MCAxMUJDOworQjAwNjtCMDA2OzExMDEgMTE3MCAxMUJEO0IwMDY7MTEwMSAxMTcwIDExQkQ7CitCMDA3O0IwMDc7MTEwMSAxMTcwIDExQkU7QjAwNzsxMTAxIDExNzAgMTFCRTsKK0IwMDg7QjAwODsxMTAxIDExNzAgMTFCRjtCMDA4OzExMDEgMTE3MCAxMUJGOworQjAwOTtCMDA5OzExMDEgMTE3MCAxMUMwO0IwMDk7MTEwMSAxMTcwIDExQzA7CitCMDBBO0IwMEE7MTEwMSAxMTcwIDExQzE7QjAwQTsxMTAxIDExNzAgMTFDMTsKK0IwMEI7QjAwQjsxMTAxIDExNzAgMTFDMjtCMDBCOzExMDEgMTE3MCAxMUMyOworQjAwQztCMDBDOzExMDEgMTE3MTtCMDBDOzExMDEgMTE3MTsKK0IwMEQ7QjAwRDsxMTAxIDExNzEgMTFBODtCMDBEOzExMDEgMTE3MSAxMUE4OworQjAwRTtCMDBFOzExMDEgMTE3MSAxMUE5O0IwMEU7MTEwMSAxMTcxIDExQTk7CitCMDBGO0IwMEY7MTEwMSAxMTcxIDExQUE7QjAwRjsxMTAxIDExNzEgMTFBQTsKK0IwMTA7QjAxMDsxMTAxIDExNzEgMTFBQjtCMDEwOzExMDEgMTE3MSAxMUFCOworQjAxMTtCMDExOzExMDEgMTE3MSAxMUFDO0IwMTE7MTEwMSAxMTcxIDExQUM7CitCMDEyO0IwMTI7MTEwMSAxMTcxIDExQUQ7QjAxMjsxMTAxIDExNzEgMTFBRDsKK0IwMTM7QjAxMzsxMTAxIDExNzEgMTFBRTtCMDEzOzExMDEgMTE3MSAxMUFFOworQjAxNDtCMDE0OzExMDEgMTE3MSAxMUFGO0IwMTQ7MTEwMSAxMTcxIDExQUY7CitCMDE1O0IwMTU7MTEwMSAxMTcxIDExQjA7QjAxNTsxMTAxIDExNzEgMTFCMDsKK0IwMTY7QjAxNjsxMTAxIDExNzEgMTFCMTtCMDE2OzExMDEgMTE3MSAxMUIxOworQjAxNztCMDE3OzExMDEgMTE3MSAxMUIyO0IwMTc7MTEwMSAxMTcxIDExQjI7CitCMDE4O0IwMTg7MTEwMSAxMTcxIDExQjM7QjAxODsxMTAxIDExNzEgMTFCMzsKK0IwMTk7QjAxOTsxMTAxIDExNzEgMTFCNDtCMDE5OzExMDEgMTE3MSAxMUI0OworQjAxQTtCMDFBOzExMDEgMTE3MSAxMUI1O0IwMUE7MTEwMSAxMTcxIDExQjU7CitCMDFCO0IwMUI7MTEwMSAxMTcxIDExQjY7QjAxQjsxMTAxIDExNzEgMTFCNjsKK0IwMUM7QjAxQzsxMTAxIDExNzEgMTFCNztCMDFDOzExMDEgMTE3MSAxMUI3OworQjAxRDtCMDFEOzExMDEgMTE3MSAxMUI4O0IwMUQ7MTEwMSAxMTcxIDExQjg7CitCMDFFO0IwMUU7MTEwMSAxMTcxIDExQjk7QjAxRTsxMTAxIDExNzEgMTFCOTsKK0IwMUY7QjAxRjsxMTAxIDExNzEgMTFCQTtCMDFGOzExMDEgMTE3MSAxMUJBOworQjAyMDtCMDIwOzExMDEgMTE3MSAxMUJCO0IwMjA7MTEwMSAxMTcxIDExQkI7CitCMDIxO0IwMjE7MTEwMSAxMTcxIDExQkM7QjAyMTsxMTAxIDExNzEgMTFCQzsKK0IwMjI7QjAyMjsxMTAxIDExNzEgMTFCRDtCMDIyOzExMDEgMTE3MSAxMUJEOworQjAyMztCMDIzOzExMDEgMTE3MSAxMUJFO0IwMjM7MTEwMSAxMTcxIDExQkU7CitCMDI0O0IwMjQ7MTEwMSAxMTcxIDExQkY7QjAyNDsxMTAxIDExNzEgMTFCRjsKK0IwMjU7QjAyNTsxMTAxIDExNzEgMTFDMDtCMDI1OzExMDEgMTE3MSAxMUMwOworQjAyNjtCMDI2OzExMDEgMTE3MSAxMUMxO0IwMjY7MTEwMSAxMTcxIDExQzE7CitCMDI3O0IwMjc7MTEwMSAxMTcxIDExQzI7QjAyNzsxMTAxIDExNzEgMTFDMjsKK0IwMjg7QjAyODsxMTAxIDExNzI7QjAyODsxMTAxIDExNzI7CitCMDI5O0IwMjk7MTEwMSAxMTcyIDExQTg7QjAyOTsxMTAxIDExNzIgMTFBODsKK0IwMkE7QjAyQTsxMTAxIDExNzIgMTFBOTtCMDJBOzExMDEgMTE3MiAxMUE5OworQjAyQjtCMDJCOzExMDEgMTE3MiAxMUFBO0IwMkI7MTEwMSAxMTcyIDExQUE7CitCMDJDO0IwMkM7MTEwMSAxMTcyIDExQUI7QjAyQzsxMTAxIDExNzIgMTFBQjsKK0IwMkQ7QjAyRDsxMTAxIDExNzIgMTFBQztCMDJEOzExMDEgMTE3MiAxMUFDOworQjAyRTtCMDJFOzExMDEgMTE3MiAxMUFEO0IwMkU7MTEwMSAxMTcyIDExQUQ7CitCMDJGO0IwMkY7MTEwMSAxMTcyIDExQUU7QjAyRjsxMTAxIDExNzIgMTFBRTsKK0IwMzA7QjAzMDsxMTAxIDExNzIgMTFBRjtCMDMwOzExMDEgMTE3MiAxMUFGOworQjAzMTtCMDMxOzExMDEgMTE3MiAxMUIwO0IwMzE7MTEwMSAxMTcyIDExQjA7CitCMDMyO0IwMzI7MTEwMSAxMTcyIDExQjE7QjAzMjsxMTAxIDExNzIgMTFCMTsKK0IwMzM7QjAzMzsxMTAxIDExNzIgMTFCMjtCMDMzOzExMDEgMTE3MiAxMUIyOworQjAzNDtCMDM0OzExMDEgMTE3MiAxMUIzO0IwMzQ7MTEwMSAxMTcyIDExQjM7CitCMDM1O0IwMzU7MTEwMSAxMTcyIDExQjQ7QjAzNTsxMTAxIDExNzIgMTFCNDsKK0IwMzY7QjAzNjsxMTAxIDExNzIgMTFCNTtCMDM2OzExMDEgMTE3MiAxMUI1OworQjAzNztCMDM3OzExMDEgMTE3MiAxMUI2O0IwMzc7MTEwMSAxMTcyIDExQjY7CitCMDM4O0IwMzg7MTEwMSAxMTcyIDExQjc7QjAzODsxMTAxIDExNzIgMTFCNzsKK0IwMzk7QjAzOTsxMTAxIDExNzIgMTFCODtCMDM5OzExMDEgMTE3MiAxMUI4OworQjAzQTtCMDNBOzExMDEgMTE3MiAxMUI5O0IwM0E7MTEwMSAxMTcyIDExQjk7CitCMDNCO0IwM0I7MTEwMSAxMTcyIDExQkE7QjAzQjsxMTAxIDExNzIgMTFCQTsKK0IwM0M7QjAzQzsxMTAxIDExNzIgMTFCQjtCMDNDOzExMDEgMTE3MiAxMUJCOworQjAzRDtCMDNEOzExMDEgMTE3MiAxMUJDO0IwM0Q7MTEwMSAxMTcyIDExQkM7CitCMDNFO0IwM0U7MTEwMSAxMTcyIDExQkQ7QjAzRTsxMTAxIDExNzIgMTFCRDsKK0IwM0Y7QjAzRjsxMTAxIDExNzIgMTFCRTtCMDNGOzExMDEgMTE3MiAxMUJFOworQjA0MDtCMDQwOzExMDEgMTE3MiAxMUJGO0IwNDA7MTEwMSAxMTcyIDExQkY7CitCMDQxO0IwNDE7MTEwMSAxMTcyIDExQzA7QjA0MTsxMTAxIDExNzIgMTFDMDsKK0IwNDI7QjA0MjsxMTAxIDExNzIgMTFDMTtCMDQyOzExMDEgMTE3MiAxMUMxOworQjA0MztCMDQzOzExMDEgMTE3MiAxMUMyO0IwNDM7MTEwMSAxMTcyIDExQzI7CitCMDQ0O0IwNDQ7MTEwMSAxMTczO0IwNDQ7MTEwMSAxMTczOworQjA0NTtCMDQ1OzExMDEgMTE3MyAxMUE4O0IwNDU7MTEwMSAxMTczIDExQTg7CitCMDQ2O0IwNDY7MTEwMSAxMTczIDExQTk7QjA0NjsxMTAxIDExNzMgMTFBOTsKK0IwNDc7QjA0NzsxMTAxIDExNzMgMTFBQTtCMDQ3OzExMDEgMTE3MyAxMUFBOworQjA0ODtCMDQ4OzExMDEgMTE3MyAxMUFCO0IwNDg7MTEwMSAxMTczIDExQUI7CitCMDQ5O0IwNDk7MTEwMSAxMTczIDExQUM7QjA0OTsxMTAxIDExNzMgMTFBQzsKK0IwNEE7QjA0QTsxMTAxIDExNzMgMTFBRDtCMDRBOzExMDEgMTE3MyAxMUFEOworQjA0QjtCMDRCOzExMDEgMTE3MyAxMUFFO0IwNEI7MTEwMSAxMTczIDExQUU7CitCMDRDO0IwNEM7MTEwMSAxMTczIDExQUY7QjA0QzsxMTAxIDExNzMgMTFBRjsKK0IwNEQ7QjA0RDsxMTAxIDExNzMgMTFCMDtCMDREOzExMDEgMTE3MyAxMUIwOworQjA0RTtCMDRFOzExMDEgMTE3MyAxMUIxO0IwNEU7MTEwMSAxMTczIDExQjE7CitCMDRGO0IwNEY7MTEwMSAxMTczIDExQjI7QjA0RjsxMTAxIDExNzMgMTFCMjsKK0IwNTA7QjA1MDsxMTAxIDExNzMgMTFCMztCMDUwOzExMDEgMTE3MyAxMUIzOworQjA1MTtCMDUxOzExMDEgMTE3MyAxMUI0O0IwNTE7MTEwMSAxMTczIDExQjQ7CitCMDUyO0IwNTI7MTEwMSAxMTczIDExQjU7QjA1MjsxMTAxIDExNzMgMTFCNTsKK0IwNTM7QjA1MzsxMTAxIDExNzMgMTFCNjtCMDUzOzExMDEgMTE3MyAxMUI2OworQjA1NDtCMDU0OzExMDEgMTE3MyAxMUI3O0IwNTQ7MTEwMSAxMTczIDExQjc7CitCMDU1O0IwNTU7MTEwMSAxMTczIDExQjg7QjA1NTsxMTAxIDExNzMgMTFCODsKK0IwNTY7QjA1NjsxMTAxIDExNzMgMTFCOTtCMDU2OzExMDEgMTE3MyAxMUI5OworQjA1NztCMDU3OzExMDEgMTE3MyAxMUJBO0IwNTc7MTEwMSAxMTczIDExQkE7CitCMDU4O0IwNTg7MTEwMSAxMTczIDExQkI7QjA1ODsxMTAxIDExNzMgMTFCQjsKK0IwNTk7QjA1OTsxMTAxIDExNzMgMTFCQztCMDU5OzExMDEgMTE3MyAxMUJDOworQjA1QTtCMDVBOzExMDEgMTE3MyAxMUJEO0IwNUE7MTEwMSAxMTczIDExQkQ7CitCMDVCO0IwNUI7MTEwMSAxMTczIDExQkU7QjA1QjsxMTAxIDExNzMgMTFCRTsKK0IwNUM7QjA1QzsxMTAxIDExNzMgMTFCRjtCMDVDOzExMDEgMTE3MyAxMUJGOworQjA1RDtCMDVEOzExMDEgMTE3MyAxMUMwO0IwNUQ7MTEwMSAxMTczIDExQzA7CitCMDVFO0IwNUU7MTEwMSAxMTczIDExQzE7QjA1RTsxMTAxIDExNzMgMTFDMTsKK0IwNUY7QjA1RjsxMTAxIDExNzMgMTFDMjtCMDVGOzExMDEgMTE3MyAxMUMyOworQjA2MDtCMDYwOzExMDEgMTE3NDtCMDYwOzExMDEgMTE3NDsKK0IwNjE7QjA2MTsxMTAxIDExNzQgMTFBODtCMDYxOzExMDEgMTE3NCAxMUE4OworQjA2MjtCMDYyOzExMDEgMTE3NCAxMUE5O0IwNjI7MTEwMSAxMTc0IDExQTk7CitCMDYzO0IwNjM7MTEwMSAxMTc0IDExQUE7QjA2MzsxMTAxIDExNzQgMTFBQTsKK0IwNjQ7QjA2NDsxMTAxIDExNzQgMTFBQjtCMDY0OzExMDEgMTE3NCAxMUFCOworQjA2NTtCMDY1OzExMDEgMTE3NCAxMUFDO0IwNjU7MTEwMSAxMTc0IDExQUM7CitCMDY2O0IwNjY7MTEwMSAxMTc0IDExQUQ7QjA2NjsxMTAxIDExNzQgMTFBRDsKK0IwNjc7QjA2NzsxMTAxIDExNzQgMTFBRTtCMDY3OzExMDEgMTE3NCAxMUFFOworQjA2ODtCMDY4OzExMDEgMTE3NCAxMUFGO0IwNjg7MTEwMSAxMTc0IDExQUY7CitCMDY5O0IwNjk7MTEwMSAxMTc0IDExQjA7QjA2OTsxMTAxIDExNzQgMTFCMDsKK0IwNkE7QjA2QTsxMTAxIDExNzQgMTFCMTtCMDZBOzExMDEgMTE3NCAxMUIxOworQjA2QjtCMDZCOzExMDEgMTE3NCAxMUIyO0IwNkI7MTEwMSAxMTc0IDExQjI7CitCMDZDO0IwNkM7MTEwMSAxMTc0IDExQjM7QjA2QzsxMTAxIDExNzQgMTFCMzsKK0IwNkQ7QjA2RDsxMTAxIDExNzQgMTFCNDtCMDZEOzExMDEgMTE3NCAxMUI0OworQjA2RTtCMDZFOzExMDEgMTE3NCAxMUI1O0IwNkU7MTEwMSAxMTc0IDExQjU7CitCMDZGO0IwNkY7MTEwMSAxMTc0IDExQjY7QjA2RjsxMTAxIDExNzQgMTFCNjsKK0IwNzA7QjA3MDsxMTAxIDExNzQgMTFCNztCMDcwOzExMDEgMTE3NCAxMUI3OworQjA3MTtCMDcxOzExMDEgMTE3NCAxMUI4O0IwNzE7MTEwMSAxMTc0IDExQjg7CitCMDcyO0IwNzI7MTEwMSAxMTc0IDExQjk7QjA3MjsxMTAxIDExNzQgMTFCOTsKK0IwNzM7QjA3MzsxMTAxIDExNzQgMTFCQTtCMDczOzExMDEgMTE3NCAxMUJBOworQjA3NDtCMDc0OzExMDEgMTE3NCAxMUJCO0IwNzQ7MTEwMSAxMTc0IDExQkI7CitCMDc1O0IwNzU7MTEwMSAxMTc0IDExQkM7QjA3NTsxMTAxIDExNzQgMTFCQzsKK0IwNzY7QjA3NjsxMTAxIDExNzQgMTFCRDtCMDc2OzExMDEgMTE3NCAxMUJEOworQjA3NztCMDc3OzExMDEgMTE3NCAxMUJFO0IwNzc7MTEwMSAxMTc0IDExQkU7CitCMDc4O0IwNzg7MTEwMSAxMTc0IDExQkY7QjA3ODsxMTAxIDExNzQgMTFCRjsKK0IwNzk7QjA3OTsxMTAxIDExNzQgMTFDMDtCMDc5OzExMDEgMTE3NCAxMUMwOworQjA3QTtCMDdBOzExMDEgMTE3NCAxMUMxO0IwN0E7MTEwMSAxMTc0IDExQzE7CitCMDdCO0IwN0I7MTEwMSAxMTc0IDExQzI7QjA3QjsxMTAxIDExNzQgMTFDMjsKK0IwN0M7QjA3QzsxMTAxIDExNzU7QjA3QzsxMTAxIDExNzU7CitCMDdEO0IwN0Q7MTEwMSAxMTc1IDExQTg7QjA3RDsxMTAxIDExNzUgMTFBODsKK0IwN0U7QjA3RTsxMTAxIDExNzUgMTFBOTtCMDdFOzExMDEgMTE3NSAxMUE5OworQjA3RjtCMDdGOzExMDEgMTE3NSAxMUFBO0IwN0Y7MTEwMSAxMTc1IDExQUE7CitCMDgwO0IwODA7MTEwMSAxMTc1IDExQUI7QjA4MDsxMTAxIDExNzUgMTFBQjsKK0IwODE7QjA4MTsxMTAxIDExNzUgMTFBQztCMDgxOzExMDEgMTE3NSAxMUFDOworQjA4MjtCMDgyOzExMDEgMTE3NSAxMUFEO0IwODI7MTEwMSAxMTc1IDExQUQ7CitCMDgzO0IwODM7MTEwMSAxMTc1IDExQUU7QjA4MzsxMTAxIDExNzUgMTFBRTsKK0IwODQ7QjA4NDsxMTAxIDExNzUgMTFBRjtCMDg0OzExMDEgMTE3NSAxMUFGOworQjA4NTtCMDg1OzExMDEgMTE3NSAxMUIwO0IwODU7MTEwMSAxMTc1IDExQjA7CitCMDg2O0IwODY7MTEwMSAxMTc1IDExQjE7QjA4NjsxMTAxIDExNzUgMTFCMTsKK0IwODc7QjA4NzsxMTAxIDExNzUgMTFCMjtCMDg3OzExMDEgMTE3NSAxMUIyOworQjA4ODtCMDg4OzExMDEgMTE3NSAxMUIzO0IwODg7MTEwMSAxMTc1IDExQjM7CitCMDg5O0IwODk7MTEwMSAxMTc1IDExQjQ7QjA4OTsxMTAxIDExNzUgMTFCNDsKK0IwOEE7QjA4QTsxMTAxIDExNzUgMTFCNTtCMDhBOzExMDEgMTE3NSAxMUI1OworQjA4QjtCMDhCOzExMDEgMTE3NSAxMUI2O0IwOEI7MTEwMSAxMTc1IDExQjY7CitCMDhDO0IwOEM7MTEwMSAxMTc1IDExQjc7QjA4QzsxMTAxIDExNzUgMTFCNzsKK0IwOEQ7QjA4RDsxMTAxIDExNzUgMTFCODtCMDhEOzExMDEgMTE3NSAxMUI4OworQjA4RTtCMDhFOzExMDEgMTE3NSAxMUI5O0IwOEU7MTEwMSAxMTc1IDExQjk7CitCMDhGO0IwOEY7MTEwMSAxMTc1IDExQkE7QjA4RjsxMTAxIDExNzUgMTFCQTsKK0IwOTA7QjA5MDsxMTAxIDExNzUgMTFCQjtCMDkwOzExMDEgMTE3NSAxMUJCOworQjA5MTtCMDkxOzExMDEgMTE3NSAxMUJDO0IwOTE7MTEwMSAxMTc1IDExQkM7CitCMDkyO0IwOTI7MTEwMSAxMTc1IDExQkQ7QjA5MjsxMTAxIDExNzUgMTFCRDsKK0IwOTM7QjA5MzsxMTAxIDExNzUgMTFCRTtCMDkzOzExMDEgMTE3NSAxMUJFOworQjA5NDtCMDk0OzExMDEgMTE3NSAxMUJGO0IwOTQ7MTEwMSAxMTc1IDExQkY7CitCMDk1O0IwOTU7MTEwMSAxMTc1IDExQzA7QjA5NTsxMTAxIDExNzUgMTFDMDsKK0IwOTY7QjA5NjsxMTAxIDExNzUgMTFDMTtCMDk2OzExMDEgMTE3NSAxMUMxOworQjA5NztCMDk3OzExMDEgMTE3NSAxMUMyO0IwOTc7MTEwMSAxMTc1IDExQzI7CitCMDk4O0IwOTg7MTEwMiAxMTYxO0IwOTg7MTEwMiAxMTYxOworQjA5OTtCMDk5OzExMDIgMTE2MSAxMUE4O0IwOTk7MTEwMiAxMTYxIDExQTg7CitCMDlBO0IwOUE7MTEwMiAxMTYxIDExQTk7QjA5QTsxMTAyIDExNjEgMTFBOTsKK0IwOUI7QjA5QjsxMTAyIDExNjEgMTFBQTtCMDlCOzExMDIgMTE2MSAxMUFBOworQjA5QztCMDlDOzExMDIgMTE2MSAxMUFCO0IwOUM7MTEwMiAxMTYxIDExQUI7CitCMDlEO0IwOUQ7MTEwMiAxMTYxIDExQUM7QjA5RDsxMTAyIDExNjEgMTFBQzsKK0IwOUU7QjA5RTsxMTAyIDExNjEgMTFBRDtCMDlFOzExMDIgMTE2MSAxMUFEOworQjA5RjtCMDlGOzExMDIgMTE2MSAxMUFFO0IwOUY7MTEwMiAxMTYxIDExQUU7CitCMEEwO0IwQTA7MTEwMiAxMTYxIDExQUY7QjBBMDsxMTAyIDExNjEgMTFBRjsKK0IwQTE7QjBBMTsxMTAyIDExNjEgMTFCMDtCMEExOzExMDIgMTE2MSAxMUIwOworQjBBMjtCMEEyOzExMDIgMTE2MSAxMUIxO0IwQTI7MTEwMiAxMTYxIDExQjE7CitCMEEzO0IwQTM7MTEwMiAxMTYxIDExQjI7QjBBMzsxMTAyIDExNjEgMTFCMjsKK0IwQTQ7QjBBNDsxMTAyIDExNjEgMTFCMztCMEE0OzExMDIgMTE2MSAxMUIzOworQjBBNTtCMEE1OzExMDIgMTE2MSAxMUI0O0IwQTU7MTEwMiAxMTYxIDExQjQ7CitCMEE2O0IwQTY7MTEwMiAxMTYxIDExQjU7QjBBNjsxMTAyIDExNjEgMTFCNTsKK0IwQTc7QjBBNzsxMTAyIDExNjEgMTFCNjtCMEE3OzExMDIgMTE2MSAxMUI2OworQjBBODtCMEE4OzExMDIgMTE2MSAxMUI3O0IwQTg7MTEwMiAxMTYxIDExQjc7CitCMEE5O0IwQTk7MTEwMiAxMTYxIDExQjg7QjBBOTsxMTAyIDExNjEgMTFCODsKK0IwQUE7QjBBQTsxMTAyIDExNjEgMTFCOTtCMEFBOzExMDIgMTE2MSAxMUI5OworQjBBQjtCMEFCOzExMDIgMTE2MSAxMUJBO0IwQUI7MTEwMiAxMTYxIDExQkE7CitCMEFDO0IwQUM7MTEwMiAxMTYxIDExQkI7QjBBQzsxMTAyIDExNjEgMTFCQjsKK0IwQUQ7QjBBRDsxMTAyIDExNjEgMTFCQztCMEFEOzExMDIgMTE2MSAxMUJDOworQjBBRTtCMEFFOzExMDIgMTE2MSAxMUJEO0IwQUU7MTEwMiAxMTYxIDExQkQ7CitCMEFGO0IwQUY7MTEwMiAxMTYxIDExQkU7QjBBRjsxMTAyIDExNjEgMTFCRTsKK0IwQjA7QjBCMDsxMTAyIDExNjEgMTFCRjtCMEIwOzExMDIgMTE2MSAxMUJGOworQjBCMTtCMEIxOzExMDIgMTE2MSAxMUMwO0IwQjE7MTEwMiAxMTYxIDExQzA7CitCMEIyO0IwQjI7MTEwMiAxMTYxIDExQzE7QjBCMjsxMTAyIDExNjEgMTFDMTsKK0IwQjM7QjBCMzsxMTAyIDExNjEgMTFDMjtCMEIzOzExMDIgMTE2MSAxMUMyOworQjBCNDtCMEI0OzExMDIgMTE2MjtCMEI0OzExMDIgMTE2MjsKK0IwQjU7QjBCNTsxMTAyIDExNjIgMTFBODtCMEI1OzExMDIgMTE2MiAxMUE4OworQjBCNjtCMEI2OzExMDIgMTE2MiAxMUE5O0IwQjY7MTEwMiAxMTYyIDExQTk7CitCMEI3O0IwQjc7MTEwMiAxMTYyIDExQUE7QjBCNzsxMTAyIDExNjIgMTFBQTsKK0IwQjg7QjBCODsxMTAyIDExNjIgMTFBQjtCMEI4OzExMDIgMTE2MiAxMUFCOworQjBCOTtCMEI5OzExMDIgMTE2MiAxMUFDO0IwQjk7MTEwMiAxMTYyIDExQUM7CitCMEJBO0IwQkE7MTEwMiAxMTYyIDExQUQ7QjBCQTsxMTAyIDExNjIgMTFBRDsKK0IwQkI7QjBCQjsxMTAyIDExNjIgMTFBRTtCMEJCOzExMDIgMTE2MiAxMUFFOworQjBCQztCMEJDOzExMDIgMTE2MiAxMUFGO0IwQkM7MTEwMiAxMTYyIDExQUY7CitCMEJEO0IwQkQ7MTEwMiAxMTYyIDExQjA7QjBCRDsxMTAyIDExNjIgMTFCMDsKK0IwQkU7QjBCRTsxMTAyIDExNjIgMTFCMTtCMEJFOzExMDIgMTE2MiAxMUIxOworQjBCRjtCMEJGOzExMDIgMTE2MiAxMUIyO0IwQkY7MTEwMiAxMTYyIDExQjI7CitCMEMwO0IwQzA7MTEwMiAxMTYyIDExQjM7QjBDMDsxMTAyIDExNjIgMTFCMzsKK0IwQzE7QjBDMTsxMTAyIDExNjIgMTFCNDtCMEMxOzExMDIgMTE2MiAxMUI0OworQjBDMjtCMEMyOzExMDIgMTE2MiAxMUI1O0IwQzI7MTEwMiAxMTYyIDExQjU7CitCMEMzO0IwQzM7MTEwMiAxMTYyIDExQjY7QjBDMzsxMTAyIDExNjIgMTFCNjsKK0IwQzQ7QjBDNDsxMTAyIDExNjIgMTFCNztCMEM0OzExMDIgMTE2MiAxMUI3OworQjBDNTtCMEM1OzExMDIgMTE2MiAxMUI4O0IwQzU7MTEwMiAxMTYyIDExQjg7CitCMEM2O0IwQzY7MTEwMiAxMTYyIDExQjk7QjBDNjsxMTAyIDExNjIgMTFCOTsKK0IwQzc7QjBDNzsxMTAyIDExNjIgMTFCQTtCMEM3OzExMDIgMTE2MiAxMUJBOworQjBDODtCMEM4OzExMDIgMTE2MiAxMUJCO0IwQzg7MTEwMiAxMTYyIDExQkI7CitCMEM5O0IwQzk7MTEwMiAxMTYyIDExQkM7QjBDOTsxMTAyIDExNjIgMTFCQzsKK0IwQ0E7QjBDQTsxMTAyIDExNjIgMTFCRDtCMENBOzExMDIgMTE2MiAxMUJEOworQjBDQjtCMENCOzExMDIgMTE2MiAxMUJFO0IwQ0I7MTEwMiAxMTYyIDExQkU7CitCMENDO0IwQ0M7MTEwMiAxMTYyIDExQkY7QjBDQzsxMTAyIDExNjIgMTFCRjsKK0IwQ0Q7QjBDRDsxMTAyIDExNjIgMTFDMDtCMENEOzExMDIgMTE2MiAxMUMwOworQjBDRTtCMENFOzExMDIgMTE2MiAxMUMxO0IwQ0U7MTEwMiAxMTYyIDExQzE7CitCMENGO0IwQ0Y7MTEwMiAxMTYyIDExQzI7QjBDRjsxMTAyIDExNjIgMTFDMjsKK0IwRDA7QjBEMDsxMTAyIDExNjM7QjBEMDsxMTAyIDExNjM7CitCMEQxO0IwRDE7MTEwMiAxMTYzIDExQTg7QjBEMTsxMTAyIDExNjMgMTFBODsKK0IwRDI7QjBEMjsxMTAyIDExNjMgMTFBOTtCMEQyOzExMDIgMTE2MyAxMUE5OworQjBEMztCMEQzOzExMDIgMTE2MyAxMUFBO0IwRDM7MTEwMiAxMTYzIDExQUE7CitCMEQ0O0IwRDQ7MTEwMiAxMTYzIDExQUI7QjBENDsxMTAyIDExNjMgMTFBQjsKK0IwRDU7QjBENTsxMTAyIDExNjMgMTFBQztCMEQ1OzExMDIgMTE2MyAxMUFDOworQjBENjtCMEQ2OzExMDIgMTE2MyAxMUFEO0IwRDY7MTEwMiAxMTYzIDExQUQ7CitCMEQ3O0IwRDc7MTEwMiAxMTYzIDExQUU7QjBENzsxMTAyIDExNjMgMTFBRTsKK0IwRDg7QjBEODsxMTAyIDExNjMgMTFBRjtCMEQ4OzExMDIgMTE2MyAxMUFGOworQjBEOTtCMEQ5OzExMDIgMTE2MyAxMUIwO0IwRDk7MTEwMiAxMTYzIDExQjA7CitCMERBO0IwREE7MTEwMiAxMTYzIDExQjE7QjBEQTsxMTAyIDExNjMgMTFCMTsKK0IwREI7QjBEQjsxMTAyIDExNjMgMTFCMjtCMERCOzExMDIgMTE2MyAxMUIyOworQjBEQztCMERDOzExMDIgMTE2MyAxMUIzO0IwREM7MTEwMiAxMTYzIDExQjM7CitCMEREO0IwREQ7MTEwMiAxMTYzIDExQjQ7QjBERDsxMTAyIDExNjMgMTFCNDsKK0IwREU7QjBERTsxMTAyIDExNjMgMTFCNTtCMERFOzExMDIgMTE2MyAxMUI1OworQjBERjtCMERGOzExMDIgMTE2MyAxMUI2O0IwREY7MTEwMiAxMTYzIDExQjY7CitCMEUwO0IwRTA7MTEwMiAxMTYzIDExQjc7QjBFMDsxMTAyIDExNjMgMTFCNzsKK0IwRTE7QjBFMTsxMTAyIDExNjMgMTFCODtCMEUxOzExMDIgMTE2MyAxMUI4OworQjBFMjtCMEUyOzExMDIgMTE2MyAxMUI5O0IwRTI7MTEwMiAxMTYzIDExQjk7CitCMEUzO0IwRTM7MTEwMiAxMTYzIDExQkE7QjBFMzsxMTAyIDExNjMgMTFCQTsKK0IwRTQ7QjBFNDsxMTAyIDExNjMgMTFCQjtCMEU0OzExMDIgMTE2MyAxMUJCOworQjBFNTtCMEU1OzExMDIgMTE2MyAxMUJDO0IwRTU7MTEwMiAxMTYzIDExQkM7CitCMEU2O0IwRTY7MTEwMiAxMTYzIDExQkQ7QjBFNjsxMTAyIDExNjMgMTFCRDsKK0IwRTc7QjBFNzsxMTAyIDExNjMgMTFCRTtCMEU3OzExMDIgMTE2MyAxMUJFOworQjBFODtCMEU4OzExMDIgMTE2MyAxMUJGO0IwRTg7MTEwMiAxMTYzIDExQkY7CitCMEU5O0IwRTk7MTEwMiAxMTYzIDExQzA7QjBFOTsxMTAyIDExNjMgMTFDMDsKK0IwRUE7QjBFQTsxMTAyIDExNjMgMTFDMTtCMEVBOzExMDIgMTE2MyAxMUMxOworQjBFQjtCMEVCOzExMDIgMTE2MyAxMUMyO0IwRUI7MTEwMiAxMTYzIDExQzI7CitCMEVDO0IwRUM7MTEwMiAxMTY0O0IwRUM7MTEwMiAxMTY0OworQjBFRDtCMEVEOzExMDIgMTE2NCAxMUE4O0IwRUQ7MTEwMiAxMTY0IDExQTg7CitCMEVFO0IwRUU7MTEwMiAxMTY0IDExQTk7QjBFRTsxMTAyIDExNjQgMTFBOTsKK0IwRUY7QjBFRjsxMTAyIDExNjQgMTFBQTtCMEVGOzExMDIgMTE2NCAxMUFBOworQjBGMDtCMEYwOzExMDIgMTE2NCAxMUFCO0IwRjA7MTEwMiAxMTY0IDExQUI7CitCMEYxO0IwRjE7MTEwMiAxMTY0IDExQUM7QjBGMTsxMTAyIDExNjQgMTFBQzsKK0IwRjI7QjBGMjsxMTAyIDExNjQgMTFBRDtCMEYyOzExMDIgMTE2NCAxMUFEOworQjBGMztCMEYzOzExMDIgMTE2NCAxMUFFO0IwRjM7MTEwMiAxMTY0IDExQUU7CitCMEY0O0IwRjQ7MTEwMiAxMTY0IDExQUY7QjBGNDsxMTAyIDExNjQgMTFBRjsKK0IwRjU7QjBGNTsxMTAyIDExNjQgMTFCMDtCMEY1OzExMDIgMTE2NCAxMUIwOworQjBGNjtCMEY2OzExMDIgMTE2NCAxMUIxO0IwRjY7MTEwMiAxMTY0IDExQjE7CitCMEY3O0IwRjc7MTEwMiAxMTY0IDExQjI7QjBGNzsxMTAyIDExNjQgMTFCMjsKK0IwRjg7QjBGODsxMTAyIDExNjQgMTFCMztCMEY4OzExMDIgMTE2NCAxMUIzOworQjBGOTtCMEY5OzExMDIgMTE2NCAxMUI0O0IwRjk7MTEwMiAxMTY0IDExQjQ7CitCMEZBO0IwRkE7MTEwMiAxMTY0IDExQjU7QjBGQTsxMTAyIDExNjQgMTFCNTsKK0IwRkI7QjBGQjsxMTAyIDExNjQgMTFCNjtCMEZCOzExMDIgMTE2NCAxMUI2OworQjBGQztCMEZDOzExMDIgMTE2NCAxMUI3O0IwRkM7MTEwMiAxMTY0IDExQjc7CitCMEZEO0IwRkQ7MTEwMiAxMTY0IDExQjg7QjBGRDsxMTAyIDExNjQgMTFCODsKK0IwRkU7QjBGRTsxMTAyIDExNjQgMTFCOTtCMEZFOzExMDIgMTE2NCAxMUI5OworQjBGRjtCMEZGOzExMDIgMTE2NCAxMUJBO0IwRkY7MTEwMiAxMTY0IDExQkE7CitCMTAwO0IxMDA7MTEwMiAxMTY0IDExQkI7QjEwMDsxMTAyIDExNjQgMTFCQjsKK0IxMDE7QjEwMTsxMTAyIDExNjQgMTFCQztCMTAxOzExMDIgMTE2NCAxMUJDOworQjEwMjtCMTAyOzExMDIgMTE2NCAxMUJEO0IxMDI7MTEwMiAxMTY0IDExQkQ7CitCMTAzO0IxMDM7MTEwMiAxMTY0IDExQkU7QjEwMzsxMTAyIDExNjQgMTFCRTsKK0IxMDQ7QjEwNDsxMTAyIDExNjQgMTFCRjtCMTA0OzExMDIgMTE2NCAxMUJGOworQjEwNTtCMTA1OzExMDIgMTE2NCAxMUMwO0IxMDU7MTEwMiAxMTY0IDExQzA7CitCMTA2O0IxMDY7MTEwMiAxMTY0IDExQzE7QjEwNjsxMTAyIDExNjQgMTFDMTsKK0IxMDc7QjEwNzsxMTAyIDExNjQgMTFDMjtCMTA3OzExMDIgMTE2NCAxMUMyOworQjEwODtCMTA4OzExMDIgMTE2NTtCMTA4OzExMDIgMTE2NTsKK0IxMDk7QjEwOTsxMTAyIDExNjUgMTFBODtCMTA5OzExMDIgMTE2NSAxMUE4OworQjEwQTtCMTBBOzExMDIgMTE2NSAxMUE5O0IxMEE7MTEwMiAxMTY1IDExQTk7CitCMTBCO0IxMEI7MTEwMiAxMTY1IDExQUE7QjEwQjsxMTAyIDExNjUgMTFBQTsKK0IxMEM7QjEwQzsxMTAyIDExNjUgMTFBQjtCMTBDOzExMDIgMTE2NSAxMUFCOworQjEwRDtCMTBEOzExMDIgMTE2NSAxMUFDO0IxMEQ7MTEwMiAxMTY1IDExQUM7CitCMTBFO0IxMEU7MTEwMiAxMTY1IDExQUQ7QjEwRTsxMTAyIDExNjUgMTFBRDsKK0IxMEY7QjEwRjsxMTAyIDExNjUgMTFBRTtCMTBGOzExMDIgMTE2NSAxMUFFOworQjExMDtCMTEwOzExMDIgMTE2NSAxMUFGO0IxMTA7MTEwMiAxMTY1IDExQUY7CitCMTExO0IxMTE7MTEwMiAxMTY1IDExQjA7QjExMTsxMTAyIDExNjUgMTFCMDsKK0IxMTI7QjExMjsxMTAyIDExNjUgMTFCMTtCMTEyOzExMDIgMTE2NSAxMUIxOworQjExMztCMTEzOzExMDIgMTE2NSAxMUIyO0IxMTM7MTEwMiAxMTY1IDExQjI7CitCMTE0O0IxMTQ7MTEwMiAxMTY1IDExQjM7QjExNDsxMTAyIDExNjUgMTFCMzsKK0IxMTU7QjExNTsxMTAyIDExNjUgMTFCNDtCMTE1OzExMDIgMTE2NSAxMUI0OworQjExNjtCMTE2OzExMDIgMTE2NSAxMUI1O0IxMTY7MTEwMiAxMTY1IDExQjU7CitCMTE3O0IxMTc7MTEwMiAxMTY1IDExQjY7QjExNzsxMTAyIDExNjUgMTFCNjsKK0IxMTg7QjExODsxMTAyIDExNjUgMTFCNztCMTE4OzExMDIgMTE2NSAxMUI3OworQjExOTtCMTE5OzExMDIgMTE2NSAxMUI4O0IxMTk7MTEwMiAxMTY1IDExQjg7CitCMTFBO0IxMUE7MTEwMiAxMTY1IDExQjk7QjExQTsxMTAyIDExNjUgMTFCOTsKK0IxMUI7QjExQjsxMTAyIDExNjUgMTFCQTtCMTFCOzExMDIgMTE2NSAxMUJBOworQjExQztCMTFDOzExMDIgMTE2NSAxMUJCO0IxMUM7MTEwMiAxMTY1IDExQkI7CitCMTFEO0IxMUQ7MTEwMiAxMTY1IDExQkM7QjExRDsxMTAyIDExNjUgMTFCQzsKK0IxMUU7QjExRTsxMTAyIDExNjUgMTFCRDtCMTFFOzExMDIgMTE2NSAxMUJEOworQjExRjtCMTFGOzExMDIgMTE2NSAxMUJFO0IxMUY7MTEwMiAxMTY1IDExQkU7CitCMTIwO0IxMjA7MTEwMiAxMTY1IDExQkY7QjEyMDsxMTAyIDExNjUgMTFCRjsKK0IxMjE7QjEyMTsxMTAyIDExNjUgMTFDMDtCMTIxOzExMDIgMTE2NSAxMUMwOworQjEyMjtCMTIyOzExMDIgMTE2NSAxMUMxO0IxMjI7MTEwMiAxMTY1IDExQzE7CitCMTIzO0IxMjM7MTEwMiAxMTY1IDExQzI7QjEyMzsxMTAyIDExNjUgMTFDMjsKK0IxMjQ7QjEyNDsxMTAyIDExNjY7QjEyNDsxMTAyIDExNjY7CitCMTI1O0IxMjU7MTEwMiAxMTY2IDExQTg7QjEyNTsxMTAyIDExNjYgMTFBODsKK0IxMjY7QjEyNjsxMTAyIDExNjYgMTFBOTtCMTI2OzExMDIgMTE2NiAxMUE5OworQjEyNztCMTI3OzExMDIgMTE2NiAxMUFBO0IxMjc7MTEwMiAxMTY2IDExQUE7CitCMTI4O0IxMjg7MTEwMiAxMTY2IDExQUI7QjEyODsxMTAyIDExNjYgMTFBQjsKK0IxMjk7QjEyOTsxMTAyIDExNjYgMTFBQztCMTI5OzExMDIgMTE2NiAxMUFDOworQjEyQTtCMTJBOzExMDIgMTE2NiAxMUFEO0IxMkE7MTEwMiAxMTY2IDExQUQ7CitCMTJCO0IxMkI7MTEwMiAxMTY2IDExQUU7QjEyQjsxMTAyIDExNjYgMTFBRTsKK0IxMkM7QjEyQzsxMTAyIDExNjYgMTFBRjtCMTJDOzExMDIgMTE2NiAxMUFGOworQjEyRDtCMTJEOzExMDIgMTE2NiAxMUIwO0IxMkQ7MTEwMiAxMTY2IDExQjA7CitCMTJFO0IxMkU7MTEwMiAxMTY2IDExQjE7QjEyRTsxMTAyIDExNjYgMTFCMTsKK0IxMkY7QjEyRjsxMTAyIDExNjYgMTFCMjtCMTJGOzExMDIgMTE2NiAxMUIyOworQjEzMDtCMTMwOzExMDIgMTE2NiAxMUIzO0IxMzA7MTEwMiAxMTY2IDExQjM7CitCMTMxO0IxMzE7MTEwMiAxMTY2IDExQjQ7QjEzMTsxMTAyIDExNjYgMTFCNDsKK0IxMzI7QjEzMjsxMTAyIDExNjYgMTFCNTtCMTMyOzExMDIgMTE2NiAxMUI1OworQjEzMztCMTMzOzExMDIgMTE2NiAxMUI2O0IxMzM7MTEwMiAxMTY2IDExQjY7CitCMTM0O0IxMzQ7MTEwMiAxMTY2IDExQjc7QjEzNDsxMTAyIDExNjYgMTFCNzsKK0IxMzU7QjEzNTsxMTAyIDExNjYgMTFCODtCMTM1OzExMDIgMTE2NiAxMUI4OworQjEzNjtCMTM2OzExMDIgMTE2NiAxMUI5O0IxMzY7MTEwMiAxMTY2IDExQjk7CitCMTM3O0IxMzc7MTEwMiAxMTY2IDExQkE7QjEzNzsxMTAyIDExNjYgMTFCQTsKK0IxMzg7QjEzODsxMTAyIDExNjYgMTFCQjtCMTM4OzExMDIgMTE2NiAxMUJCOworQjEzOTtCMTM5OzExMDIgMTE2NiAxMUJDO0IxMzk7MTEwMiAxMTY2IDExQkM7CitCMTNBO0IxM0E7MTEwMiAxMTY2IDExQkQ7QjEzQTsxMTAyIDExNjYgMTFCRDsKK0IxM0I7QjEzQjsxMTAyIDExNjYgMTFCRTtCMTNCOzExMDIgMTE2NiAxMUJFOworQjEzQztCMTNDOzExMDIgMTE2NiAxMUJGO0IxM0M7MTEwMiAxMTY2IDExQkY7CitCMTNEO0IxM0Q7MTEwMiAxMTY2IDExQzA7QjEzRDsxMTAyIDExNjYgMTFDMDsKK0IxM0U7QjEzRTsxMTAyIDExNjYgMTFDMTtCMTNFOzExMDIgMTE2NiAxMUMxOworQjEzRjtCMTNGOzExMDIgMTE2NiAxMUMyO0IxM0Y7MTEwMiAxMTY2IDExQzI7CitCMTQwO0IxNDA7MTEwMiAxMTY3O0IxNDA7MTEwMiAxMTY3OworQjE0MTtCMTQxOzExMDIgMTE2NyAxMUE4O0IxNDE7MTEwMiAxMTY3IDExQTg7CitCMTQyO0IxNDI7MTEwMiAxMTY3IDExQTk7QjE0MjsxMTAyIDExNjcgMTFBOTsKK0IxNDM7QjE0MzsxMTAyIDExNjcgMTFBQTtCMTQzOzExMDIgMTE2NyAxMUFBOworQjE0NDtCMTQ0OzExMDIgMTE2NyAxMUFCO0IxNDQ7MTEwMiAxMTY3IDExQUI7CitCMTQ1O0IxNDU7MTEwMiAxMTY3IDExQUM7QjE0NTsxMTAyIDExNjcgMTFBQzsKK0IxNDY7QjE0NjsxMTAyIDExNjcgMTFBRDtCMTQ2OzExMDIgMTE2NyAxMUFEOworQjE0NztCMTQ3OzExMDIgMTE2NyAxMUFFO0IxNDc7MTEwMiAxMTY3IDExQUU7CitCMTQ4O0IxNDg7MTEwMiAxMTY3IDExQUY7QjE0ODsxMTAyIDExNjcgMTFBRjsKK0IxNDk7QjE0OTsxMTAyIDExNjcgMTFCMDtCMTQ5OzExMDIgMTE2NyAxMUIwOworQjE0QTtCMTRBOzExMDIgMTE2NyAxMUIxO0IxNEE7MTEwMiAxMTY3IDExQjE7CitCMTRCO0IxNEI7MTEwMiAxMTY3IDExQjI7QjE0QjsxMTAyIDExNjcgMTFCMjsKK0IxNEM7QjE0QzsxMTAyIDExNjcgMTFCMztCMTRDOzExMDIgMTE2NyAxMUIzOworQjE0RDtCMTREOzExMDIgMTE2NyAxMUI0O0IxNEQ7MTEwMiAxMTY3IDExQjQ7CitCMTRFO0IxNEU7MTEwMiAxMTY3IDExQjU7QjE0RTsxMTAyIDExNjcgMTFCNTsKK0IxNEY7QjE0RjsxMTAyIDExNjcgMTFCNjtCMTRGOzExMDIgMTE2NyAxMUI2OworQjE1MDtCMTUwOzExMDIgMTE2NyAxMUI3O0IxNTA7MTEwMiAxMTY3IDExQjc7CitCMTUxO0IxNTE7MTEwMiAxMTY3IDExQjg7QjE1MTsxMTAyIDExNjcgMTFCODsKK0IxNTI7QjE1MjsxMTAyIDExNjcgMTFCOTtCMTUyOzExMDIgMTE2NyAxMUI5OworQjE1MztCMTUzOzExMDIgMTE2NyAxMUJBO0IxNTM7MTEwMiAxMTY3IDExQkE7CitCMTU0O0IxNTQ7MTEwMiAxMTY3IDExQkI7QjE1NDsxMTAyIDExNjcgMTFCQjsKK0IxNTU7QjE1NTsxMTAyIDExNjcgMTFCQztCMTU1OzExMDIgMTE2NyAxMUJDOworQjE1NjtCMTU2OzExMDIgMTE2NyAxMUJEO0IxNTY7MTEwMiAxMTY3IDExQkQ7CitCMTU3O0IxNTc7MTEwMiAxMTY3IDExQkU7QjE1NzsxMTAyIDExNjcgMTFCRTsKK0IxNTg7QjE1ODsxMTAyIDExNjcgMTFCRjtCMTU4OzExMDIgMTE2NyAxMUJGOworQjE1OTtCMTU5OzExMDIgMTE2NyAxMUMwO0IxNTk7MTEwMiAxMTY3IDExQzA7CitCMTVBO0IxNUE7MTEwMiAxMTY3IDExQzE7QjE1QTsxMTAyIDExNjcgMTFDMTsKK0IxNUI7QjE1QjsxMTAyIDExNjcgMTFDMjtCMTVCOzExMDIgMTE2NyAxMUMyOworQjE1QztCMTVDOzExMDIgMTE2ODtCMTVDOzExMDIgMTE2ODsKK0IxNUQ7QjE1RDsxMTAyIDExNjggMTFBODtCMTVEOzExMDIgMTE2OCAxMUE4OworQjE1RTtCMTVFOzExMDIgMTE2OCAxMUE5O0IxNUU7MTEwMiAxMTY4IDExQTk7CitCMTVGO0IxNUY7MTEwMiAxMTY4IDExQUE7QjE1RjsxMTAyIDExNjggMTFBQTsKK0IxNjA7QjE2MDsxMTAyIDExNjggMTFBQjtCMTYwOzExMDIgMTE2OCAxMUFCOworQjE2MTtCMTYxOzExMDIgMTE2OCAxMUFDO0IxNjE7MTEwMiAxMTY4IDExQUM7CitCMTYyO0IxNjI7MTEwMiAxMTY4IDExQUQ7QjE2MjsxMTAyIDExNjggMTFBRDsKK0IxNjM7QjE2MzsxMTAyIDExNjggMTFBRTtCMTYzOzExMDIgMTE2OCAxMUFFOworQjE2NDtCMTY0OzExMDIgMTE2OCAxMUFGO0IxNjQ7MTEwMiAxMTY4IDExQUY7CitCMTY1O0IxNjU7MTEwMiAxMTY4IDExQjA7QjE2NTsxMTAyIDExNjggMTFCMDsKK0IxNjY7QjE2NjsxMTAyIDExNjggMTFCMTtCMTY2OzExMDIgMTE2OCAxMUIxOworQjE2NztCMTY3OzExMDIgMTE2OCAxMUIyO0IxNjc7MTEwMiAxMTY4IDExQjI7CitCMTY4O0IxNjg7MTEwMiAxMTY4IDExQjM7QjE2ODsxMTAyIDExNjggMTFCMzsKK0IxNjk7QjE2OTsxMTAyIDExNjggMTFCNDtCMTY5OzExMDIgMTE2OCAxMUI0OworQjE2QTtCMTZBOzExMDIgMTE2OCAxMUI1O0IxNkE7MTEwMiAxMTY4IDExQjU7CitCMTZCO0IxNkI7MTEwMiAxMTY4IDExQjY7QjE2QjsxMTAyIDExNjggMTFCNjsKK0IxNkM7QjE2QzsxMTAyIDExNjggMTFCNztCMTZDOzExMDIgMTE2OCAxMUI3OworQjE2RDtCMTZEOzExMDIgMTE2OCAxMUI4O0IxNkQ7MTEwMiAxMTY4IDExQjg7CitCMTZFO0IxNkU7MTEwMiAxMTY4IDExQjk7QjE2RTsxMTAyIDExNjggMTFCOTsKK0IxNkY7QjE2RjsxMTAyIDExNjggMTFCQTtCMTZGOzExMDIgMTE2OCAxMUJBOworQjE3MDtCMTcwOzExMDIgMTE2OCAxMUJCO0IxNzA7MTEwMiAxMTY4IDExQkI7CitCMTcxO0IxNzE7MTEwMiAxMTY4IDExQkM7QjE3MTsxMTAyIDExNjggMTFCQzsKK0IxNzI7QjE3MjsxMTAyIDExNjggMTFCRDtCMTcyOzExMDIgMTE2OCAxMUJEOworQjE3MztCMTczOzExMDIgMTE2OCAxMUJFO0IxNzM7MTEwMiAxMTY4IDExQkU7CitCMTc0O0IxNzQ7MTEwMiAxMTY4IDExQkY7QjE3NDsxMTAyIDExNjggMTFCRjsKK0IxNzU7QjE3NTsxMTAyIDExNjggMTFDMDtCMTc1OzExMDIgMTE2OCAxMUMwOworQjE3NjtCMTc2OzExMDIgMTE2OCAxMUMxO0IxNzY7MTEwMiAxMTY4IDExQzE7CitCMTc3O0IxNzc7MTEwMiAxMTY4IDExQzI7QjE3NzsxMTAyIDExNjggMTFDMjsKK0IxNzg7QjE3ODsxMTAyIDExNjk7QjE3ODsxMTAyIDExNjk7CitCMTc5O0IxNzk7MTEwMiAxMTY5IDExQTg7QjE3OTsxMTAyIDExNjkgMTFBODsKK0IxN0E7QjE3QTsxMTAyIDExNjkgMTFBOTtCMTdBOzExMDIgMTE2OSAxMUE5OworQjE3QjtCMTdCOzExMDIgMTE2OSAxMUFBO0IxN0I7MTEwMiAxMTY5IDExQUE7CitCMTdDO0IxN0M7MTEwMiAxMTY5IDExQUI7QjE3QzsxMTAyIDExNjkgMTFBQjsKK0IxN0Q7QjE3RDsxMTAyIDExNjkgMTFBQztCMTdEOzExMDIgMTE2OSAxMUFDOworQjE3RTtCMTdFOzExMDIgMTE2OSAxMUFEO0IxN0U7MTEwMiAxMTY5IDExQUQ7CitCMTdGO0IxN0Y7MTEwMiAxMTY5IDExQUU7QjE3RjsxMTAyIDExNjkgMTFBRTsKK0IxODA7QjE4MDsxMTAyIDExNjkgMTFBRjtCMTgwOzExMDIgMTE2OSAxMUFGOworQjE4MTtCMTgxOzExMDIgMTE2OSAxMUIwO0IxODE7MTEwMiAxMTY5IDExQjA7CitCMTgyO0IxODI7MTEwMiAxMTY5IDExQjE7QjE4MjsxMTAyIDExNjkgMTFCMTsKK0IxODM7QjE4MzsxMTAyIDExNjkgMTFCMjtCMTgzOzExMDIgMTE2OSAxMUIyOworQjE4NDtCMTg0OzExMDIgMTE2OSAxMUIzO0IxODQ7MTEwMiAxMTY5IDExQjM7CitCMTg1O0IxODU7MTEwMiAxMTY5IDExQjQ7QjE4NTsxMTAyIDExNjkgMTFCNDsKK0IxODY7QjE4NjsxMTAyIDExNjkgMTFCNTtCMTg2OzExMDIgMTE2OSAxMUI1OworQjE4NztCMTg3OzExMDIgMTE2OSAxMUI2O0IxODc7MTEwMiAxMTY5IDExQjY7CitCMTg4O0IxODg7MTEwMiAxMTY5IDExQjc7QjE4ODsxMTAyIDExNjkgMTFCNzsKK0IxODk7QjE4OTsxMTAyIDExNjkgMTFCODtCMTg5OzExMDIgMTE2OSAxMUI4OworQjE4QTtCMThBOzExMDIgMTE2OSAxMUI5O0IxOEE7MTEwMiAxMTY5IDExQjk7CitCMThCO0IxOEI7MTEwMiAxMTY5IDExQkE7QjE4QjsxMTAyIDExNjkgMTFCQTsKK0IxOEM7QjE4QzsxMTAyIDExNjkgMTFCQjtCMThDOzExMDIgMTE2OSAxMUJCOworQjE4RDtCMThEOzExMDIgMTE2OSAxMUJDO0IxOEQ7MTEwMiAxMTY5IDExQkM7CitCMThFO0IxOEU7MTEwMiAxMTY5IDExQkQ7QjE4RTsxMTAyIDExNjkgMTFCRDsKK0IxOEY7QjE4RjsxMTAyIDExNjkgMTFCRTtCMThGOzExMDIgMTE2OSAxMUJFOworQjE5MDtCMTkwOzExMDIgMTE2OSAxMUJGO0IxOTA7MTEwMiAxMTY5IDExQkY7CitCMTkxO0IxOTE7MTEwMiAxMTY5IDExQzA7QjE5MTsxMTAyIDExNjkgMTFDMDsKK0IxOTI7QjE5MjsxMTAyIDExNjkgMTFDMTtCMTkyOzExMDIgMTE2OSAxMUMxOworQjE5MztCMTkzOzExMDIgMTE2OSAxMUMyO0IxOTM7MTEwMiAxMTY5IDExQzI7CitCMTk0O0IxOTQ7MTEwMiAxMTZBO0IxOTQ7MTEwMiAxMTZBOworQjE5NTtCMTk1OzExMDIgMTE2QSAxMUE4O0IxOTU7MTEwMiAxMTZBIDExQTg7CitCMTk2O0IxOTY7MTEwMiAxMTZBIDExQTk7QjE5NjsxMTAyIDExNkEgMTFBOTsKK0IxOTc7QjE5NzsxMTAyIDExNkEgMTFBQTtCMTk3OzExMDIgMTE2QSAxMUFBOworQjE5ODtCMTk4OzExMDIgMTE2QSAxMUFCO0IxOTg7MTEwMiAxMTZBIDExQUI7CitCMTk5O0IxOTk7MTEwMiAxMTZBIDExQUM7QjE5OTsxMTAyIDExNkEgMTFBQzsKK0IxOUE7QjE5QTsxMTAyIDExNkEgMTFBRDtCMTlBOzExMDIgMTE2QSAxMUFEOworQjE5QjtCMTlCOzExMDIgMTE2QSAxMUFFO0IxOUI7MTEwMiAxMTZBIDExQUU7CitCMTlDO0IxOUM7MTEwMiAxMTZBIDExQUY7QjE5QzsxMTAyIDExNkEgMTFBRjsKK0IxOUQ7QjE5RDsxMTAyIDExNkEgMTFCMDtCMTlEOzExMDIgMTE2QSAxMUIwOworQjE5RTtCMTlFOzExMDIgMTE2QSAxMUIxO0IxOUU7MTEwMiAxMTZBIDExQjE7CitCMTlGO0IxOUY7MTEwMiAxMTZBIDExQjI7QjE5RjsxMTAyIDExNkEgMTFCMjsKK0IxQTA7QjFBMDsxMTAyIDExNkEgMTFCMztCMUEwOzExMDIgMTE2QSAxMUIzOworQjFBMTtCMUExOzExMDIgMTE2QSAxMUI0O0IxQTE7MTEwMiAxMTZBIDExQjQ7CitCMUEyO0IxQTI7MTEwMiAxMTZBIDExQjU7QjFBMjsxMTAyIDExNkEgMTFCNTsKK0IxQTM7QjFBMzsxMTAyIDExNkEgMTFCNjtCMUEzOzExMDIgMTE2QSAxMUI2OworQjFBNDtCMUE0OzExMDIgMTE2QSAxMUI3O0IxQTQ7MTEwMiAxMTZBIDExQjc7CitCMUE1O0IxQTU7MTEwMiAxMTZBIDExQjg7QjFBNTsxMTAyIDExNkEgMTFCODsKK0IxQTY7QjFBNjsxMTAyIDExNkEgMTFCOTtCMUE2OzExMDIgMTE2QSAxMUI5OworQjFBNztCMUE3OzExMDIgMTE2QSAxMUJBO0IxQTc7MTEwMiAxMTZBIDExQkE7CitCMUE4O0IxQTg7MTEwMiAxMTZBIDExQkI7QjFBODsxMTAyIDExNkEgMTFCQjsKK0IxQTk7QjFBOTsxMTAyIDExNkEgMTFCQztCMUE5OzExMDIgMTE2QSAxMUJDOworQjFBQTtCMUFBOzExMDIgMTE2QSAxMUJEO0IxQUE7MTEwMiAxMTZBIDExQkQ7CitCMUFCO0IxQUI7MTEwMiAxMTZBIDExQkU7QjFBQjsxMTAyIDExNkEgMTFCRTsKK0IxQUM7QjFBQzsxMTAyIDExNkEgMTFCRjtCMUFDOzExMDIgMTE2QSAxMUJGOworQjFBRDtCMUFEOzExMDIgMTE2QSAxMUMwO0IxQUQ7MTEwMiAxMTZBIDExQzA7CitCMUFFO0IxQUU7MTEwMiAxMTZBIDExQzE7QjFBRTsxMTAyIDExNkEgMTFDMTsKK0IxQUY7QjFBRjsxMTAyIDExNkEgMTFDMjtCMUFGOzExMDIgMTE2QSAxMUMyOworQjFCMDtCMUIwOzExMDIgMTE2QjtCMUIwOzExMDIgMTE2QjsKK0IxQjE7QjFCMTsxMTAyIDExNkIgMTFBODtCMUIxOzExMDIgMTE2QiAxMUE4OworQjFCMjtCMUIyOzExMDIgMTE2QiAxMUE5O0IxQjI7MTEwMiAxMTZCIDExQTk7CitCMUIzO0IxQjM7MTEwMiAxMTZCIDExQUE7QjFCMzsxMTAyIDExNkIgMTFBQTsKK0IxQjQ7QjFCNDsxMTAyIDExNkIgMTFBQjtCMUI0OzExMDIgMTE2QiAxMUFCOworQjFCNTtCMUI1OzExMDIgMTE2QiAxMUFDO0IxQjU7MTEwMiAxMTZCIDExQUM7CitCMUI2O0IxQjY7MTEwMiAxMTZCIDExQUQ7QjFCNjsxMTAyIDExNkIgMTFBRDsKK0IxQjc7QjFCNzsxMTAyIDExNkIgMTFBRTtCMUI3OzExMDIgMTE2QiAxMUFFOworQjFCODtCMUI4OzExMDIgMTE2QiAxMUFGO0IxQjg7MTEwMiAxMTZCIDExQUY7CitCMUI5O0IxQjk7MTEwMiAxMTZCIDExQjA7QjFCOTsxMTAyIDExNkIgMTFCMDsKK0IxQkE7QjFCQTsxMTAyIDExNkIgMTFCMTtCMUJBOzExMDIgMTE2QiAxMUIxOworQjFCQjtCMUJCOzExMDIgMTE2QiAxMUIyO0IxQkI7MTEwMiAxMTZCIDExQjI7CitCMUJDO0IxQkM7MTEwMiAxMTZCIDExQjM7QjFCQzsxMTAyIDExNkIgMTFCMzsKK0IxQkQ7QjFCRDsxMTAyIDExNkIgMTFCNDtCMUJEOzExMDIgMTE2QiAxMUI0OworQjFCRTtCMUJFOzExMDIgMTE2QiAxMUI1O0IxQkU7MTEwMiAxMTZCIDExQjU7CitCMUJGO0IxQkY7MTEwMiAxMTZCIDExQjY7QjFCRjsxMTAyIDExNkIgMTFCNjsKK0IxQzA7QjFDMDsxMTAyIDExNkIgMTFCNztCMUMwOzExMDIgMTE2QiAxMUI3OworQjFDMTtCMUMxOzExMDIgMTE2QiAxMUI4O0IxQzE7MTEwMiAxMTZCIDExQjg7CitCMUMyO0IxQzI7MTEwMiAxMTZCIDExQjk7QjFDMjsxMTAyIDExNkIgMTFCOTsKK0IxQzM7QjFDMzsxMTAyIDExNkIgMTFCQTtCMUMzOzExMDIgMTE2QiAxMUJBOworQjFDNDtCMUM0OzExMDIgMTE2QiAxMUJCO0IxQzQ7MTEwMiAxMTZCIDExQkI7CitCMUM1O0IxQzU7MTEwMiAxMTZCIDExQkM7QjFDNTsxMTAyIDExNkIgMTFCQzsKK0IxQzY7QjFDNjsxMTAyIDExNkIgMTFCRDtCMUM2OzExMDIgMTE2QiAxMUJEOworQjFDNztCMUM3OzExMDIgMTE2QiAxMUJFO0IxQzc7MTEwMiAxMTZCIDExQkU7CitCMUM4O0IxQzg7MTEwMiAxMTZCIDExQkY7QjFDODsxMTAyIDExNkIgMTFCRjsKK0IxQzk7QjFDOTsxMTAyIDExNkIgMTFDMDtCMUM5OzExMDIgMTE2QiAxMUMwOworQjFDQTtCMUNBOzExMDIgMTE2QiAxMUMxO0IxQ0E7MTEwMiAxMTZCIDExQzE7CitCMUNCO0IxQ0I7MTEwMiAxMTZCIDExQzI7QjFDQjsxMTAyIDExNkIgMTFDMjsKK0IxQ0M7QjFDQzsxMTAyIDExNkM7QjFDQzsxMTAyIDExNkM7CitCMUNEO0IxQ0Q7MTEwMiAxMTZDIDExQTg7QjFDRDsxMTAyIDExNkMgMTFBODsKK0IxQ0U7QjFDRTsxMTAyIDExNkMgMTFBOTtCMUNFOzExMDIgMTE2QyAxMUE5OworQjFDRjtCMUNGOzExMDIgMTE2QyAxMUFBO0IxQ0Y7MTEwMiAxMTZDIDExQUE7CitCMUQwO0IxRDA7MTEwMiAxMTZDIDExQUI7QjFEMDsxMTAyIDExNkMgMTFBQjsKK0IxRDE7QjFEMTsxMTAyIDExNkMgMTFBQztCMUQxOzExMDIgMTE2QyAxMUFDOworQjFEMjtCMUQyOzExMDIgMTE2QyAxMUFEO0IxRDI7MTEwMiAxMTZDIDExQUQ7CitCMUQzO0IxRDM7MTEwMiAxMTZDIDExQUU7QjFEMzsxMTAyIDExNkMgMTFBRTsKK0IxRDQ7QjFENDsxMTAyIDExNkMgMTFBRjtCMUQ0OzExMDIgMTE2QyAxMUFGOworQjFENTtCMUQ1OzExMDIgMTE2QyAxMUIwO0IxRDU7MTEwMiAxMTZDIDExQjA7CitCMUQ2O0IxRDY7MTEwMiAxMTZDIDExQjE7QjFENjsxMTAyIDExNkMgMTFCMTsKK0IxRDc7QjFENzsxMTAyIDExNkMgMTFCMjtCMUQ3OzExMDIgMTE2QyAxMUIyOworQjFEODtCMUQ4OzExMDIgMTE2QyAxMUIzO0IxRDg7MTEwMiAxMTZDIDExQjM7CitCMUQ5O0IxRDk7MTEwMiAxMTZDIDExQjQ7QjFEOTsxMTAyIDExNkMgMTFCNDsKK0IxREE7QjFEQTsxMTAyIDExNkMgMTFCNTtCMURBOzExMDIgMTE2QyAxMUI1OworQjFEQjtCMURCOzExMDIgMTE2QyAxMUI2O0IxREI7MTEwMiAxMTZDIDExQjY7CitCMURDO0IxREM7MTEwMiAxMTZDIDExQjc7QjFEQzsxMTAyIDExNkMgMTFCNzsKK0IxREQ7QjFERDsxMTAyIDExNkMgMTFCODtCMUREOzExMDIgMTE2QyAxMUI4OworQjFERTtCMURFOzExMDIgMTE2QyAxMUI5O0IxREU7MTEwMiAxMTZDIDExQjk7CitCMURGO0IxREY7MTEwMiAxMTZDIDExQkE7QjFERjsxMTAyIDExNkMgMTFCQTsKK0IxRTA7QjFFMDsxMTAyIDExNkMgMTFCQjtCMUUwOzExMDIgMTE2QyAxMUJCOworQjFFMTtCMUUxOzExMDIgMTE2QyAxMUJDO0IxRTE7MTEwMiAxMTZDIDExQkM7CitCMUUyO0IxRTI7MTEwMiAxMTZDIDExQkQ7QjFFMjsxMTAyIDExNkMgMTFCRDsKK0IxRTM7QjFFMzsxMTAyIDExNkMgMTFCRTtCMUUzOzExMDIgMTE2QyAxMUJFOworQjFFNDtCMUU0OzExMDIgMTE2QyAxMUJGO0IxRTQ7MTEwMiAxMTZDIDExQkY7CitCMUU1O0IxRTU7MTEwMiAxMTZDIDExQzA7QjFFNTsxMTAyIDExNkMgMTFDMDsKK0IxRTY7QjFFNjsxMTAyIDExNkMgMTFDMTtCMUU2OzExMDIgMTE2QyAxMUMxOworQjFFNztCMUU3OzExMDIgMTE2QyAxMUMyO0IxRTc7MTEwMiAxMTZDIDExQzI7CitCMUU4O0IxRTg7MTEwMiAxMTZEO0IxRTg7MTEwMiAxMTZEOworQjFFOTtCMUU5OzExMDIgMTE2RCAxMUE4O0IxRTk7MTEwMiAxMTZEIDExQTg7CitCMUVBO0IxRUE7MTEwMiAxMTZEIDExQTk7QjFFQTsxMTAyIDExNkQgMTFBOTsKK0IxRUI7QjFFQjsxMTAyIDExNkQgMTFBQTtCMUVCOzExMDIgMTE2RCAxMUFBOworQjFFQztCMUVDOzExMDIgMTE2RCAxMUFCO0IxRUM7MTEwMiAxMTZEIDExQUI7CitCMUVEO0IxRUQ7MTEwMiAxMTZEIDExQUM7QjFFRDsxMTAyIDExNkQgMTFBQzsKK0IxRUU7QjFFRTsxMTAyIDExNkQgMTFBRDtCMUVFOzExMDIgMTE2RCAxMUFEOworQjFFRjtCMUVGOzExMDIgMTE2RCAxMUFFO0IxRUY7MTEwMiAxMTZEIDExQUU7CitCMUYwO0IxRjA7MTEwMiAxMTZEIDExQUY7QjFGMDsxMTAyIDExNkQgMTFBRjsKK0IxRjE7QjFGMTsxMTAyIDExNkQgMTFCMDtCMUYxOzExMDIgMTE2RCAxMUIwOworQjFGMjtCMUYyOzExMDIgMTE2RCAxMUIxO0IxRjI7MTEwMiAxMTZEIDExQjE7CitCMUYzO0IxRjM7MTEwMiAxMTZEIDExQjI7QjFGMzsxMTAyIDExNkQgMTFCMjsKK0IxRjQ7QjFGNDsxMTAyIDExNkQgMTFCMztCMUY0OzExMDIgMTE2RCAxMUIzOworQjFGNTtCMUY1OzExMDIgMTE2RCAxMUI0O0IxRjU7MTEwMiAxMTZEIDExQjQ7CitCMUY2O0IxRjY7MTEwMiAxMTZEIDExQjU7QjFGNjsxMTAyIDExNkQgMTFCNTsKK0IxRjc7QjFGNzsxMTAyIDExNkQgMTFCNjtCMUY3OzExMDIgMTE2RCAxMUI2OworQjFGODtCMUY4OzExMDIgMTE2RCAxMUI3O0IxRjg7MTEwMiAxMTZEIDExQjc7CitCMUY5O0IxRjk7MTEwMiAxMTZEIDExQjg7QjFGOTsxMTAyIDExNkQgMTFCODsKK0IxRkE7QjFGQTsxMTAyIDExNkQgMTFCOTtCMUZBOzExMDIgMTE2RCAxMUI5OworQjFGQjtCMUZCOzExMDIgMTE2RCAxMUJBO0IxRkI7MTEwMiAxMTZEIDExQkE7CitCMUZDO0IxRkM7MTEwMiAxMTZEIDExQkI7QjFGQzsxMTAyIDExNkQgMTFCQjsKK0IxRkQ7QjFGRDsxMTAyIDExNkQgMTFCQztCMUZEOzExMDIgMTE2RCAxMUJDOworQjFGRTtCMUZFOzExMDIgMTE2RCAxMUJEO0IxRkU7MTEwMiAxMTZEIDExQkQ7CitCMUZGO0IxRkY7MTEwMiAxMTZEIDExQkU7QjFGRjsxMTAyIDExNkQgMTFCRTsKK0IyMDA7QjIwMDsxMTAyIDExNkQgMTFCRjtCMjAwOzExMDIgMTE2RCAxMUJGOworQjIwMTtCMjAxOzExMDIgMTE2RCAxMUMwO0IyMDE7MTEwMiAxMTZEIDExQzA7CitCMjAyO0IyMDI7MTEwMiAxMTZEIDExQzE7QjIwMjsxMTAyIDExNkQgMTFDMTsKK0IyMDM7QjIwMzsxMTAyIDExNkQgMTFDMjtCMjAzOzExMDIgMTE2RCAxMUMyOworQjIwNDtCMjA0OzExMDIgMTE2RTtCMjA0OzExMDIgMTE2RTsKK0IyMDU7QjIwNTsxMTAyIDExNkUgMTFBODtCMjA1OzExMDIgMTE2RSAxMUE4OworQjIwNjtCMjA2OzExMDIgMTE2RSAxMUE5O0IyMDY7MTEwMiAxMTZFIDExQTk7CitCMjA3O0IyMDc7MTEwMiAxMTZFIDExQUE7QjIwNzsxMTAyIDExNkUgMTFBQTsKK0IyMDg7QjIwODsxMTAyIDExNkUgMTFBQjtCMjA4OzExMDIgMTE2RSAxMUFCOworQjIwOTtCMjA5OzExMDIgMTE2RSAxMUFDO0IyMDk7MTEwMiAxMTZFIDExQUM7CitCMjBBO0IyMEE7MTEwMiAxMTZFIDExQUQ7QjIwQTsxMTAyIDExNkUgMTFBRDsKK0IyMEI7QjIwQjsxMTAyIDExNkUgMTFBRTtCMjBCOzExMDIgMTE2RSAxMUFFOworQjIwQztCMjBDOzExMDIgMTE2RSAxMUFGO0IyMEM7MTEwMiAxMTZFIDExQUY7CitCMjBEO0IyMEQ7MTEwMiAxMTZFIDExQjA7QjIwRDsxMTAyIDExNkUgMTFCMDsKK0IyMEU7QjIwRTsxMTAyIDExNkUgMTFCMTtCMjBFOzExMDIgMTE2RSAxMUIxOworQjIwRjtCMjBGOzExMDIgMTE2RSAxMUIyO0IyMEY7MTEwMiAxMTZFIDExQjI7CitCMjEwO0IyMTA7MTEwMiAxMTZFIDExQjM7QjIxMDsxMTAyIDExNkUgMTFCMzsKK0IyMTE7QjIxMTsxMTAyIDExNkUgMTFCNDtCMjExOzExMDIgMTE2RSAxMUI0OworQjIxMjtCMjEyOzExMDIgMTE2RSAxMUI1O0IyMTI7MTEwMiAxMTZFIDExQjU7CitCMjEzO0IyMTM7MTEwMiAxMTZFIDExQjY7QjIxMzsxMTAyIDExNkUgMTFCNjsKK0IyMTQ7QjIxNDsxMTAyIDExNkUgMTFCNztCMjE0OzExMDIgMTE2RSAxMUI3OworQjIxNTtCMjE1OzExMDIgMTE2RSAxMUI4O0IyMTU7MTEwMiAxMTZFIDExQjg7CitCMjE2O0IyMTY7MTEwMiAxMTZFIDExQjk7QjIxNjsxMTAyIDExNkUgMTFCOTsKK0IyMTc7QjIxNzsxMTAyIDExNkUgMTFCQTtCMjE3OzExMDIgMTE2RSAxMUJBOworQjIxODtCMjE4OzExMDIgMTE2RSAxMUJCO0IyMTg7MTEwMiAxMTZFIDExQkI7CitCMjE5O0IyMTk7MTEwMiAxMTZFIDExQkM7QjIxOTsxMTAyIDExNkUgMTFCQzsKK0IyMUE7QjIxQTsxMTAyIDExNkUgMTFCRDtCMjFBOzExMDIgMTE2RSAxMUJEOworQjIxQjtCMjFCOzExMDIgMTE2RSAxMUJFO0IyMUI7MTEwMiAxMTZFIDExQkU7CitCMjFDO0IyMUM7MTEwMiAxMTZFIDExQkY7QjIxQzsxMTAyIDExNkUgMTFCRjsKK0IyMUQ7QjIxRDsxMTAyIDExNkUgMTFDMDtCMjFEOzExMDIgMTE2RSAxMUMwOworQjIxRTtCMjFFOzExMDIgMTE2RSAxMUMxO0IyMUU7MTEwMiAxMTZFIDExQzE7CitCMjFGO0IyMUY7MTEwMiAxMTZFIDExQzI7QjIxRjsxMTAyIDExNkUgMTFDMjsKK0IyMjA7QjIyMDsxMTAyIDExNkY7QjIyMDsxMTAyIDExNkY7CitCMjIxO0IyMjE7MTEwMiAxMTZGIDExQTg7QjIyMTsxMTAyIDExNkYgMTFBODsKK0IyMjI7QjIyMjsxMTAyIDExNkYgMTFBOTtCMjIyOzExMDIgMTE2RiAxMUE5OworQjIyMztCMjIzOzExMDIgMTE2RiAxMUFBO0IyMjM7MTEwMiAxMTZGIDExQUE7CitCMjI0O0IyMjQ7MTEwMiAxMTZGIDExQUI7QjIyNDsxMTAyIDExNkYgMTFBQjsKK0IyMjU7QjIyNTsxMTAyIDExNkYgMTFBQztCMjI1OzExMDIgMTE2RiAxMUFDOworQjIyNjtCMjI2OzExMDIgMTE2RiAxMUFEO0IyMjY7MTEwMiAxMTZGIDExQUQ7CitCMjI3O0IyMjc7MTEwMiAxMTZGIDExQUU7QjIyNzsxMTAyIDExNkYgMTFBRTsKK0IyMjg7QjIyODsxMTAyIDExNkYgMTFBRjtCMjI4OzExMDIgMTE2RiAxMUFGOworQjIyOTtCMjI5OzExMDIgMTE2RiAxMUIwO0IyMjk7MTEwMiAxMTZGIDExQjA7CitCMjJBO0IyMkE7MTEwMiAxMTZGIDExQjE7QjIyQTsxMTAyIDExNkYgMTFCMTsKK0IyMkI7QjIyQjsxMTAyIDExNkYgMTFCMjtCMjJCOzExMDIgMTE2RiAxMUIyOworQjIyQztCMjJDOzExMDIgMTE2RiAxMUIzO0IyMkM7MTEwMiAxMTZGIDExQjM7CitCMjJEO0IyMkQ7MTEwMiAxMTZGIDExQjQ7QjIyRDsxMTAyIDExNkYgMTFCNDsKK0IyMkU7QjIyRTsxMTAyIDExNkYgMTFCNTtCMjJFOzExMDIgMTE2RiAxMUI1OworQjIyRjtCMjJGOzExMDIgMTE2RiAxMUI2O0IyMkY7MTEwMiAxMTZGIDExQjY7CitCMjMwO0IyMzA7MTEwMiAxMTZGIDExQjc7QjIzMDsxMTAyIDExNkYgMTFCNzsKK0IyMzE7QjIzMTsxMTAyIDExNkYgMTFCODtCMjMxOzExMDIgMTE2RiAxMUI4OworQjIzMjtCMjMyOzExMDIgMTE2RiAxMUI5O0IyMzI7MTEwMiAxMTZGIDExQjk7CitCMjMzO0IyMzM7MTEwMiAxMTZGIDExQkE7QjIzMzsxMTAyIDExNkYgMTFCQTsKK0IyMzQ7QjIzNDsxMTAyIDExNkYgMTFCQjtCMjM0OzExMDIgMTE2RiAxMUJCOworQjIzNTtCMjM1OzExMDIgMTE2RiAxMUJDO0IyMzU7MTEwMiAxMTZGIDExQkM7CitCMjM2O0IyMzY7MTEwMiAxMTZGIDExQkQ7QjIzNjsxMTAyIDExNkYgMTFCRDsKK0IyMzc7QjIzNzsxMTAyIDExNkYgMTFCRTtCMjM3OzExMDIgMTE2RiAxMUJFOworQjIzODtCMjM4OzExMDIgMTE2RiAxMUJGO0IyMzg7MTEwMiAxMTZGIDExQkY7CitCMjM5O0IyMzk7MTEwMiAxMTZGIDExQzA7QjIzOTsxMTAyIDExNkYgMTFDMDsKK0IyM0E7QjIzQTsxMTAyIDExNkYgMTFDMTtCMjNBOzExMDIgMTE2RiAxMUMxOworQjIzQjtCMjNCOzExMDIgMTE2RiAxMUMyO0IyM0I7MTEwMiAxMTZGIDExQzI7CitCMjNDO0IyM0M7MTEwMiAxMTcwO0IyM0M7MTEwMiAxMTcwOworQjIzRDtCMjNEOzExMDIgMTE3MCAxMUE4O0IyM0Q7MTEwMiAxMTcwIDExQTg7CitCMjNFO0IyM0U7MTEwMiAxMTcwIDExQTk7QjIzRTsxMTAyIDExNzAgMTFBOTsKK0IyM0Y7QjIzRjsxMTAyIDExNzAgMTFBQTtCMjNGOzExMDIgMTE3MCAxMUFBOworQjI0MDtCMjQwOzExMDIgMTE3MCAxMUFCO0IyNDA7MTEwMiAxMTcwIDExQUI7CitCMjQxO0IyNDE7MTEwMiAxMTcwIDExQUM7QjI0MTsxMTAyIDExNzAgMTFBQzsKK0IyNDI7QjI0MjsxMTAyIDExNzAgMTFBRDtCMjQyOzExMDIgMTE3MCAxMUFEOworQjI0MztCMjQzOzExMDIgMTE3MCAxMUFFO0IyNDM7MTEwMiAxMTcwIDExQUU7CitCMjQ0O0IyNDQ7MTEwMiAxMTcwIDExQUY7QjI0NDsxMTAyIDExNzAgMTFBRjsKK0IyNDU7QjI0NTsxMTAyIDExNzAgMTFCMDtCMjQ1OzExMDIgMTE3MCAxMUIwOworQjI0NjtCMjQ2OzExMDIgMTE3MCAxMUIxO0IyNDY7MTEwMiAxMTcwIDExQjE7CitCMjQ3O0IyNDc7MTEwMiAxMTcwIDExQjI7QjI0NzsxMTAyIDExNzAgMTFCMjsKK0IyNDg7QjI0ODsxMTAyIDExNzAgMTFCMztCMjQ4OzExMDIgMTE3MCAxMUIzOworQjI0OTtCMjQ5OzExMDIgMTE3MCAxMUI0O0IyNDk7MTEwMiAxMTcwIDExQjQ7CitCMjRBO0IyNEE7MTEwMiAxMTcwIDExQjU7QjI0QTsxMTAyIDExNzAgMTFCNTsKK0IyNEI7QjI0QjsxMTAyIDExNzAgMTFCNjtCMjRCOzExMDIgMTE3MCAxMUI2OworQjI0QztCMjRDOzExMDIgMTE3MCAxMUI3O0IyNEM7MTEwMiAxMTcwIDExQjc7CitCMjREO0IyNEQ7MTEwMiAxMTcwIDExQjg7QjI0RDsxMTAyIDExNzAgMTFCODsKK0IyNEU7QjI0RTsxMTAyIDExNzAgMTFCOTtCMjRFOzExMDIgMTE3MCAxMUI5OworQjI0RjtCMjRGOzExMDIgMTE3MCAxMUJBO0IyNEY7MTEwMiAxMTcwIDExQkE7CitCMjUwO0IyNTA7MTEwMiAxMTcwIDExQkI7QjI1MDsxMTAyIDExNzAgMTFCQjsKK0IyNTE7QjI1MTsxMTAyIDExNzAgMTFCQztCMjUxOzExMDIgMTE3MCAxMUJDOworQjI1MjtCMjUyOzExMDIgMTE3MCAxMUJEO0IyNTI7MTEwMiAxMTcwIDExQkQ7CitCMjUzO0IyNTM7MTEwMiAxMTcwIDExQkU7QjI1MzsxMTAyIDExNzAgMTFCRTsKK0IyNTQ7QjI1NDsxMTAyIDExNzAgMTFCRjtCMjU0OzExMDIgMTE3MCAxMUJGOworQjI1NTtCMjU1OzExMDIgMTE3MCAxMUMwO0IyNTU7MTEwMiAxMTcwIDExQzA7CitCMjU2O0IyNTY7MTEwMiAxMTcwIDExQzE7QjI1NjsxMTAyIDExNzAgMTFDMTsKK0IyNTc7QjI1NzsxMTAyIDExNzAgMTFDMjtCMjU3OzExMDIgMTE3MCAxMUMyOworQjI1ODtCMjU4OzExMDIgMTE3MTtCMjU4OzExMDIgMTE3MTsKK0IyNTk7QjI1OTsxMTAyIDExNzEgMTFBODtCMjU5OzExMDIgMTE3MSAxMUE4OworQjI1QTtCMjVBOzExMDIgMTE3MSAxMUE5O0IyNUE7MTEwMiAxMTcxIDExQTk7CitCMjVCO0IyNUI7MTEwMiAxMTcxIDExQUE7QjI1QjsxMTAyIDExNzEgMTFBQTsKK0IyNUM7QjI1QzsxMTAyIDExNzEgMTFBQjtCMjVDOzExMDIgMTE3MSAxMUFCOworQjI1RDtCMjVEOzExMDIgMTE3MSAxMUFDO0IyNUQ7MTEwMiAxMTcxIDExQUM7CitCMjVFO0IyNUU7MTEwMiAxMTcxIDExQUQ7QjI1RTsxMTAyIDExNzEgMTFBRDsKK0IyNUY7QjI1RjsxMTAyIDExNzEgMTFBRTtCMjVGOzExMDIgMTE3MSAxMUFFOworQjI2MDtCMjYwOzExMDIgMTE3MSAxMUFGO0IyNjA7MTEwMiAxMTcxIDExQUY7CitCMjYxO0IyNjE7MTEwMiAxMTcxIDExQjA7QjI2MTsxMTAyIDExNzEgMTFCMDsKK0IyNjI7QjI2MjsxMTAyIDExNzEgMTFCMTtCMjYyOzExMDIgMTE3MSAxMUIxOworQjI2MztCMjYzOzExMDIgMTE3MSAxMUIyO0IyNjM7MTEwMiAxMTcxIDExQjI7CitCMjY0O0IyNjQ7MTEwMiAxMTcxIDExQjM7QjI2NDsxMTAyIDExNzEgMTFCMzsKK0IyNjU7QjI2NTsxMTAyIDExNzEgMTFCNDtCMjY1OzExMDIgMTE3MSAxMUI0OworQjI2NjtCMjY2OzExMDIgMTE3MSAxMUI1O0IyNjY7MTEwMiAxMTcxIDExQjU7CitCMjY3O0IyNjc7MTEwMiAxMTcxIDExQjY7QjI2NzsxMTAyIDExNzEgMTFCNjsKK0IyNjg7QjI2ODsxMTAyIDExNzEgMTFCNztCMjY4OzExMDIgMTE3MSAxMUI3OworQjI2OTtCMjY5OzExMDIgMTE3MSAxMUI4O0IyNjk7MTEwMiAxMTcxIDExQjg7CitCMjZBO0IyNkE7MTEwMiAxMTcxIDExQjk7QjI2QTsxMTAyIDExNzEgMTFCOTsKK0IyNkI7QjI2QjsxMTAyIDExNzEgMTFCQTtCMjZCOzExMDIgMTE3MSAxMUJBOworQjI2QztCMjZDOzExMDIgMTE3MSAxMUJCO0IyNkM7MTEwMiAxMTcxIDExQkI7CitCMjZEO0IyNkQ7MTEwMiAxMTcxIDExQkM7QjI2RDsxMTAyIDExNzEgMTFCQzsKK0IyNkU7QjI2RTsxMTAyIDExNzEgMTFCRDtCMjZFOzExMDIgMTE3MSAxMUJEOworQjI2RjtCMjZGOzExMDIgMTE3MSAxMUJFO0IyNkY7MTEwMiAxMTcxIDExQkU7CitCMjcwO0IyNzA7MTEwMiAxMTcxIDExQkY7QjI3MDsxMTAyIDExNzEgMTFCRjsKK0IyNzE7QjI3MTsxMTAyIDExNzEgMTFDMDtCMjcxOzExMDIgMTE3MSAxMUMwOworQjI3MjtCMjcyOzExMDIgMTE3MSAxMUMxO0IyNzI7MTEwMiAxMTcxIDExQzE7CitCMjczO0IyNzM7MTEwMiAxMTcxIDExQzI7QjI3MzsxMTAyIDExNzEgMTFDMjsKK0IyNzQ7QjI3NDsxMTAyIDExNzI7QjI3NDsxMTAyIDExNzI7CitCMjc1O0IyNzU7MTEwMiAxMTcyIDExQTg7QjI3NTsxMTAyIDExNzIgMTFBODsKK0IyNzY7QjI3NjsxMTAyIDExNzIgMTFBOTtCMjc2OzExMDIgMTE3MiAxMUE5OworQjI3NztCMjc3OzExMDIgMTE3MiAxMUFBO0IyNzc7MTEwMiAxMTcyIDExQUE7CitCMjc4O0IyNzg7MTEwMiAxMTcyIDExQUI7QjI3ODsxMTAyIDExNzIgMTFBQjsKK0IyNzk7QjI3OTsxMTAyIDExNzIgMTFBQztCMjc5OzExMDIgMTE3MiAxMUFDOworQjI3QTtCMjdBOzExMDIgMTE3MiAxMUFEO0IyN0E7MTEwMiAxMTcyIDExQUQ7CitCMjdCO0IyN0I7MTEwMiAxMTcyIDExQUU7QjI3QjsxMTAyIDExNzIgMTFBRTsKK0IyN0M7QjI3QzsxMTAyIDExNzIgMTFBRjtCMjdDOzExMDIgMTE3MiAxMUFGOworQjI3RDtCMjdEOzExMDIgMTE3MiAxMUIwO0IyN0Q7MTEwMiAxMTcyIDExQjA7CitCMjdFO0IyN0U7MTEwMiAxMTcyIDExQjE7QjI3RTsxMTAyIDExNzIgMTFCMTsKK0IyN0Y7QjI3RjsxMTAyIDExNzIgMTFCMjtCMjdGOzExMDIgMTE3MiAxMUIyOworQjI4MDtCMjgwOzExMDIgMTE3MiAxMUIzO0IyODA7MTEwMiAxMTcyIDExQjM7CitCMjgxO0IyODE7MTEwMiAxMTcyIDExQjQ7QjI4MTsxMTAyIDExNzIgMTFCNDsKK0IyODI7QjI4MjsxMTAyIDExNzIgMTFCNTtCMjgyOzExMDIgMTE3MiAxMUI1OworQjI4MztCMjgzOzExMDIgMTE3MiAxMUI2O0IyODM7MTEwMiAxMTcyIDExQjY7CitCMjg0O0IyODQ7MTEwMiAxMTcyIDExQjc7QjI4NDsxMTAyIDExNzIgMTFCNzsKK0IyODU7QjI4NTsxMTAyIDExNzIgMTFCODtCMjg1OzExMDIgMTE3MiAxMUI4OworQjI4NjtCMjg2OzExMDIgMTE3MiAxMUI5O0IyODY7MTEwMiAxMTcyIDExQjk7CitCMjg3O0IyODc7MTEwMiAxMTcyIDExQkE7QjI4NzsxMTAyIDExNzIgMTFCQTsKK0IyODg7QjI4ODsxMTAyIDExNzIgMTFCQjtCMjg4OzExMDIgMTE3MiAxMUJCOworQjI4OTtCMjg5OzExMDIgMTE3MiAxMUJDO0IyODk7MTEwMiAxMTcyIDExQkM7CitCMjhBO0IyOEE7MTEwMiAxMTcyIDExQkQ7QjI4QTsxMTAyIDExNzIgMTFCRDsKK0IyOEI7QjI4QjsxMTAyIDExNzIgMTFCRTtCMjhCOzExMDIgMTE3MiAxMUJFOworQjI4QztCMjhDOzExMDIgMTE3MiAxMUJGO0IyOEM7MTEwMiAxMTcyIDExQkY7CitCMjhEO0IyOEQ7MTEwMiAxMTcyIDExQzA7QjI4RDsxMTAyIDExNzIgMTFDMDsKK0IyOEU7QjI4RTsxMTAyIDExNzIgMTFDMTtCMjhFOzExMDIgMTE3MiAxMUMxOworQjI4RjtCMjhGOzExMDIgMTE3MiAxMUMyO0IyOEY7MTEwMiAxMTcyIDExQzI7CitCMjkwO0IyOTA7MTEwMiAxMTczO0IyOTA7MTEwMiAxMTczOworQjI5MTtCMjkxOzExMDIgMTE3MyAxMUE4O0IyOTE7MTEwMiAxMTczIDExQTg7CitCMjkyO0IyOTI7MTEwMiAxMTczIDExQTk7QjI5MjsxMTAyIDExNzMgMTFBOTsKK0IyOTM7QjI5MzsxMTAyIDExNzMgMTFBQTtCMjkzOzExMDIgMTE3MyAxMUFBOworQjI5NDtCMjk0OzExMDIgMTE3MyAxMUFCO0IyOTQ7MTEwMiAxMTczIDExQUI7CitCMjk1O0IyOTU7MTEwMiAxMTczIDExQUM7QjI5NTsxMTAyIDExNzMgMTFBQzsKK0IyOTY7QjI5NjsxMTAyIDExNzMgMTFBRDtCMjk2OzExMDIgMTE3MyAxMUFEOworQjI5NztCMjk3OzExMDIgMTE3MyAxMUFFO0IyOTc7MTEwMiAxMTczIDExQUU7CitCMjk4O0IyOTg7MTEwMiAxMTczIDExQUY7QjI5ODsxMTAyIDExNzMgMTFBRjsKK0IyOTk7QjI5OTsxMTAyIDExNzMgMTFCMDtCMjk5OzExMDIgMTE3MyAxMUIwOworQjI5QTtCMjlBOzExMDIgMTE3MyAxMUIxO0IyOUE7MTEwMiAxMTczIDExQjE7CitCMjlCO0IyOUI7MTEwMiAxMTczIDExQjI7QjI5QjsxMTAyIDExNzMgMTFCMjsKK0IyOUM7QjI5QzsxMTAyIDExNzMgMTFCMztCMjlDOzExMDIgMTE3MyAxMUIzOworQjI5RDtCMjlEOzExMDIgMTE3MyAxMUI0O0IyOUQ7MTEwMiAxMTczIDExQjQ7CitCMjlFO0IyOUU7MTEwMiAxMTczIDExQjU7QjI5RTsxMTAyIDExNzMgMTFCNTsKK0IyOUY7QjI5RjsxMTAyIDExNzMgMTFCNjtCMjlGOzExMDIgMTE3MyAxMUI2OworQjJBMDtCMkEwOzExMDIgMTE3MyAxMUI3O0IyQTA7MTEwMiAxMTczIDExQjc7CitCMkExO0IyQTE7MTEwMiAxMTczIDExQjg7QjJBMTsxMTAyIDExNzMgMTFCODsKK0IyQTI7QjJBMjsxMTAyIDExNzMgMTFCOTtCMkEyOzExMDIgMTE3MyAxMUI5OworQjJBMztCMkEzOzExMDIgMTE3MyAxMUJBO0IyQTM7MTEwMiAxMTczIDExQkE7CitCMkE0O0IyQTQ7MTEwMiAxMTczIDExQkI7QjJBNDsxMTAyIDExNzMgMTFCQjsKK0IyQTU7QjJBNTsxMTAyIDExNzMgMTFCQztCMkE1OzExMDIgMTE3MyAxMUJDOworQjJBNjtCMkE2OzExMDIgMTE3MyAxMUJEO0IyQTY7MTEwMiAxMTczIDExQkQ7CitCMkE3O0IyQTc7MTEwMiAxMTczIDExQkU7QjJBNzsxMTAyIDExNzMgMTFCRTsKK0IyQTg7QjJBODsxMTAyIDExNzMgMTFCRjtCMkE4OzExMDIgMTE3MyAxMUJGOworQjJBOTtCMkE5OzExMDIgMTE3MyAxMUMwO0IyQTk7MTEwMiAxMTczIDExQzA7CitCMkFBO0IyQUE7MTEwMiAxMTczIDExQzE7QjJBQTsxMTAyIDExNzMgMTFDMTsKK0IyQUI7QjJBQjsxMTAyIDExNzMgMTFDMjtCMkFCOzExMDIgMTE3MyAxMUMyOworQjJBQztCMkFDOzExMDIgMTE3NDtCMkFDOzExMDIgMTE3NDsKK0IyQUQ7QjJBRDsxMTAyIDExNzQgMTFBODtCMkFEOzExMDIgMTE3NCAxMUE4OworQjJBRTtCMkFFOzExMDIgMTE3NCAxMUE5O0IyQUU7MTEwMiAxMTc0IDExQTk7CitCMkFGO0IyQUY7MTEwMiAxMTc0IDExQUE7QjJBRjsxMTAyIDExNzQgMTFBQTsKK0IyQjA7QjJCMDsxMTAyIDExNzQgMTFBQjtCMkIwOzExMDIgMTE3NCAxMUFCOworQjJCMTtCMkIxOzExMDIgMTE3NCAxMUFDO0IyQjE7MTEwMiAxMTc0IDExQUM7CitCMkIyO0IyQjI7MTEwMiAxMTc0IDExQUQ7QjJCMjsxMTAyIDExNzQgMTFBRDsKK0IyQjM7QjJCMzsxMTAyIDExNzQgMTFBRTtCMkIzOzExMDIgMTE3NCAxMUFFOworQjJCNDtCMkI0OzExMDIgMTE3NCAxMUFGO0IyQjQ7MTEwMiAxMTc0IDExQUY7CitCMkI1O0IyQjU7MTEwMiAxMTc0IDExQjA7QjJCNTsxMTAyIDExNzQgMTFCMDsKK0IyQjY7QjJCNjsxMTAyIDExNzQgMTFCMTtCMkI2OzExMDIgMTE3NCAxMUIxOworQjJCNztCMkI3OzExMDIgMTE3NCAxMUIyO0IyQjc7MTEwMiAxMTc0IDExQjI7CitCMkI4O0IyQjg7MTEwMiAxMTc0IDExQjM7QjJCODsxMTAyIDExNzQgMTFCMzsKK0IyQjk7QjJCOTsxMTAyIDExNzQgMTFCNDtCMkI5OzExMDIgMTE3NCAxMUI0OworQjJCQTtCMkJBOzExMDIgMTE3NCAxMUI1O0IyQkE7MTEwMiAxMTc0IDExQjU7CitCMkJCO0IyQkI7MTEwMiAxMTc0IDExQjY7QjJCQjsxMTAyIDExNzQgMTFCNjsKK0IyQkM7QjJCQzsxMTAyIDExNzQgMTFCNztCMkJDOzExMDIgMTE3NCAxMUI3OworQjJCRDtCMkJEOzExMDIgMTE3NCAxMUI4O0IyQkQ7MTEwMiAxMTc0IDExQjg7CitCMkJFO0IyQkU7MTEwMiAxMTc0IDExQjk7QjJCRTsxMTAyIDExNzQgMTFCOTsKK0IyQkY7QjJCRjsxMTAyIDExNzQgMTFCQTtCMkJGOzExMDIgMTE3NCAxMUJBOworQjJDMDtCMkMwOzExMDIgMTE3NCAxMUJCO0IyQzA7MTEwMiAxMTc0IDExQkI7CitCMkMxO0IyQzE7MTEwMiAxMTc0IDExQkM7QjJDMTsxMTAyIDExNzQgMTFCQzsKK0IyQzI7QjJDMjsxMTAyIDExNzQgMTFCRDtCMkMyOzExMDIgMTE3NCAxMUJEOworQjJDMztCMkMzOzExMDIgMTE3NCAxMUJFO0IyQzM7MTEwMiAxMTc0IDExQkU7CitCMkM0O0IyQzQ7MTEwMiAxMTc0IDExQkY7QjJDNDsxMTAyIDExNzQgMTFCRjsKK0IyQzU7QjJDNTsxMTAyIDExNzQgMTFDMDtCMkM1OzExMDIgMTE3NCAxMUMwOworQjJDNjtCMkM2OzExMDIgMTE3NCAxMUMxO0IyQzY7MTEwMiAxMTc0IDExQzE7CitCMkM3O0IyQzc7MTEwMiAxMTc0IDExQzI7QjJDNzsxMTAyIDExNzQgMTFDMjsKK0IyQzg7QjJDODsxMTAyIDExNzU7QjJDODsxMTAyIDExNzU7CitCMkM5O0IyQzk7MTEwMiAxMTc1IDExQTg7QjJDOTsxMTAyIDExNzUgMTFBODsKK0IyQ0E7QjJDQTsxMTAyIDExNzUgMTFBOTtCMkNBOzExMDIgMTE3NSAxMUE5OworQjJDQjtCMkNCOzExMDIgMTE3NSAxMUFBO0IyQ0I7MTEwMiAxMTc1IDExQUE7CitCMkNDO0IyQ0M7MTEwMiAxMTc1IDExQUI7QjJDQzsxMTAyIDExNzUgMTFBQjsKK0IyQ0Q7QjJDRDsxMTAyIDExNzUgMTFBQztCMkNEOzExMDIgMTE3NSAxMUFDOworQjJDRTtCMkNFOzExMDIgMTE3NSAxMUFEO0IyQ0U7MTEwMiAxMTc1IDExQUQ7CitCMkNGO0IyQ0Y7MTEwMiAxMTc1IDExQUU7QjJDRjsxMTAyIDExNzUgMTFBRTsKK0IyRDA7QjJEMDsxMTAyIDExNzUgMTFBRjtCMkQwOzExMDIgMTE3NSAxMUFGOworQjJEMTtCMkQxOzExMDIgMTE3NSAxMUIwO0IyRDE7MTEwMiAxMTc1IDExQjA7CitCMkQyO0IyRDI7MTEwMiAxMTc1IDExQjE7QjJEMjsxMTAyIDExNzUgMTFCMTsKK0IyRDM7QjJEMzsxMTAyIDExNzUgMTFCMjtCMkQzOzExMDIgMTE3NSAxMUIyOworQjJENDtCMkQ0OzExMDIgMTE3NSAxMUIzO0IyRDQ7MTEwMiAxMTc1IDExQjM7CitCMkQ1O0IyRDU7MTEwMiAxMTc1IDExQjQ7QjJENTsxMTAyIDExNzUgMTFCNDsKK0IyRDY7QjJENjsxMTAyIDExNzUgMTFCNTtCMkQ2OzExMDIgMTE3NSAxMUI1OworQjJENztCMkQ3OzExMDIgMTE3NSAxMUI2O0IyRDc7MTEwMiAxMTc1IDExQjY7CitCMkQ4O0IyRDg7MTEwMiAxMTc1IDExQjc7QjJEODsxMTAyIDExNzUgMTFCNzsKK0IyRDk7QjJEOTsxMTAyIDExNzUgMTFCODtCMkQ5OzExMDIgMTE3NSAxMUI4OworQjJEQTtCMkRBOzExMDIgMTE3NSAxMUI5O0IyREE7MTEwMiAxMTc1IDExQjk7CitCMkRCO0IyREI7MTEwMiAxMTc1IDExQkE7QjJEQjsxMTAyIDExNzUgMTFCQTsKK0IyREM7QjJEQzsxMTAyIDExNzUgMTFCQjtCMkRDOzExMDIgMTE3NSAxMUJCOworQjJERDtCMkREOzExMDIgMTE3NSAxMUJDO0IyREQ7MTEwMiAxMTc1IDExQkM7CitCMkRFO0IyREU7MTEwMiAxMTc1IDExQkQ7QjJERTsxMTAyIDExNzUgMTFCRDsKK0IyREY7QjJERjsxMTAyIDExNzUgMTFCRTtCMkRGOzExMDIgMTE3NSAxMUJFOworQjJFMDtCMkUwOzExMDIgMTE3NSAxMUJGO0IyRTA7MTEwMiAxMTc1IDExQkY7CitCMkUxO0IyRTE7MTEwMiAxMTc1IDExQzA7QjJFMTsxMTAyIDExNzUgMTFDMDsKK0IyRTI7QjJFMjsxMTAyIDExNzUgMTFDMTtCMkUyOzExMDIgMTE3NSAxMUMxOworQjJFMztCMkUzOzExMDIgMTE3NSAxMUMyO0IyRTM7MTEwMiAxMTc1IDExQzI7CitCMkU0O0IyRTQ7MTEwMyAxMTYxO0IyRTQ7MTEwMyAxMTYxOworQjJFNTtCMkU1OzExMDMgMTE2MSAxMUE4O0IyRTU7MTEwMyAxMTYxIDExQTg7CitCMkU2O0IyRTY7MTEwMyAxMTYxIDExQTk7QjJFNjsxMTAzIDExNjEgMTFBOTsKK0IyRTc7QjJFNzsxMTAzIDExNjEgMTFBQTtCMkU3OzExMDMgMTE2MSAxMUFBOworQjJFODtCMkU4OzExMDMgMTE2MSAxMUFCO0IyRTg7MTEwMyAxMTYxIDExQUI7CitCMkU5O0IyRTk7MTEwMyAxMTYxIDExQUM7QjJFOTsxMTAzIDExNjEgMTFBQzsKK0IyRUE7QjJFQTsxMTAzIDExNjEgMTFBRDtCMkVBOzExMDMgMTE2MSAxMUFEOworQjJFQjtCMkVCOzExMDMgMTE2MSAxMUFFO0IyRUI7MTEwMyAxMTYxIDExQUU7CitCMkVDO0IyRUM7MTEwMyAxMTYxIDExQUY7QjJFQzsxMTAzIDExNjEgMTFBRjsKK0IyRUQ7QjJFRDsxMTAzIDExNjEgMTFCMDtCMkVEOzExMDMgMTE2MSAxMUIwOworQjJFRTtCMkVFOzExMDMgMTE2MSAxMUIxO0IyRUU7MTEwMyAxMTYxIDExQjE7CitCMkVGO0IyRUY7MTEwMyAxMTYxIDExQjI7QjJFRjsxMTAzIDExNjEgMTFCMjsKK0IyRjA7QjJGMDsxMTAzIDExNjEgMTFCMztCMkYwOzExMDMgMTE2MSAxMUIzOworQjJGMTtCMkYxOzExMDMgMTE2MSAxMUI0O0IyRjE7MTEwMyAxMTYxIDExQjQ7CitCMkYyO0IyRjI7MTEwMyAxMTYxIDExQjU7QjJGMjsxMTAzIDExNjEgMTFCNTsKK0IyRjM7QjJGMzsxMTAzIDExNjEgMTFCNjtCMkYzOzExMDMgMTE2MSAxMUI2OworQjJGNDtCMkY0OzExMDMgMTE2MSAxMUI3O0IyRjQ7MTEwMyAxMTYxIDExQjc7CitCMkY1O0IyRjU7MTEwMyAxMTYxIDExQjg7QjJGNTsxMTAzIDExNjEgMTFCODsKK0IyRjY7QjJGNjsxMTAzIDExNjEgMTFCOTtCMkY2OzExMDMgMTE2MSAxMUI5OworQjJGNztCMkY3OzExMDMgMTE2MSAxMUJBO0IyRjc7MTEwMyAxMTYxIDExQkE7CitCMkY4O0IyRjg7MTEwMyAxMTYxIDExQkI7QjJGODsxMTAzIDExNjEgMTFCQjsKK0IyRjk7QjJGOTsxMTAzIDExNjEgMTFCQztCMkY5OzExMDMgMTE2MSAxMUJDOworQjJGQTtCMkZBOzExMDMgMTE2MSAxMUJEO0IyRkE7MTEwMyAxMTYxIDExQkQ7CitCMkZCO0IyRkI7MTEwMyAxMTYxIDExQkU7QjJGQjsxMTAzIDExNjEgMTFCRTsKK0IyRkM7QjJGQzsxMTAzIDExNjEgMTFCRjtCMkZDOzExMDMgMTE2MSAxMUJGOworQjJGRDtCMkZEOzExMDMgMTE2MSAxMUMwO0IyRkQ7MTEwMyAxMTYxIDExQzA7CitCMkZFO0IyRkU7MTEwMyAxMTYxIDExQzE7QjJGRTsxMTAzIDExNjEgMTFDMTsKK0IyRkY7QjJGRjsxMTAzIDExNjEgMTFDMjtCMkZGOzExMDMgMTE2MSAxMUMyOworQjMwMDtCMzAwOzExMDMgMTE2MjtCMzAwOzExMDMgMTE2MjsKK0IzMDE7QjMwMTsxMTAzIDExNjIgMTFBODtCMzAxOzExMDMgMTE2MiAxMUE4OworQjMwMjtCMzAyOzExMDMgMTE2MiAxMUE5O0IzMDI7MTEwMyAxMTYyIDExQTk7CitCMzAzO0IzMDM7MTEwMyAxMTYyIDExQUE7QjMwMzsxMTAzIDExNjIgMTFBQTsKK0IzMDQ7QjMwNDsxMTAzIDExNjIgMTFBQjtCMzA0OzExMDMgMTE2MiAxMUFCOworQjMwNTtCMzA1OzExMDMgMTE2MiAxMUFDO0IzMDU7MTEwMyAxMTYyIDExQUM7CitCMzA2O0IzMDY7MTEwMyAxMTYyIDExQUQ7QjMwNjsxMTAzIDExNjIgMTFBRDsKK0IzMDc7QjMwNzsxMTAzIDExNjIgMTFBRTtCMzA3OzExMDMgMTE2MiAxMUFFOworQjMwODtCMzA4OzExMDMgMTE2MiAxMUFGO0IzMDg7MTEwMyAxMTYyIDExQUY7CitCMzA5O0IzMDk7MTEwMyAxMTYyIDExQjA7QjMwOTsxMTAzIDExNjIgMTFCMDsKK0IzMEE7QjMwQTsxMTAzIDExNjIgMTFCMTtCMzBBOzExMDMgMTE2MiAxMUIxOworQjMwQjtCMzBCOzExMDMgMTE2MiAxMUIyO0IzMEI7MTEwMyAxMTYyIDExQjI7CitCMzBDO0IzMEM7MTEwMyAxMTYyIDExQjM7QjMwQzsxMTAzIDExNjIgMTFCMzsKK0IzMEQ7QjMwRDsxMTAzIDExNjIgMTFCNDtCMzBEOzExMDMgMTE2MiAxMUI0OworQjMwRTtCMzBFOzExMDMgMTE2MiAxMUI1O0IzMEU7MTEwMyAxMTYyIDExQjU7CitCMzBGO0IzMEY7MTEwMyAxMTYyIDExQjY7QjMwRjsxMTAzIDExNjIgMTFCNjsKK0IzMTA7QjMxMDsxMTAzIDExNjIgMTFCNztCMzEwOzExMDMgMTE2MiAxMUI3OworQjMxMTtCMzExOzExMDMgMTE2MiAxMUI4O0IzMTE7MTEwMyAxMTYyIDExQjg7CitCMzEyO0IzMTI7MTEwMyAxMTYyIDExQjk7QjMxMjsxMTAzIDExNjIgMTFCOTsKK0IzMTM7QjMxMzsxMTAzIDExNjIgMTFCQTtCMzEzOzExMDMgMTE2MiAxMUJBOworQjMxNDtCMzE0OzExMDMgMTE2MiAxMUJCO0IzMTQ7MTEwMyAxMTYyIDExQkI7CitCMzE1O0IzMTU7MTEwMyAxMTYyIDExQkM7QjMxNTsxMTAzIDExNjIgMTFCQzsKK0IzMTY7QjMxNjsxMTAzIDExNjIgMTFCRDtCMzE2OzExMDMgMTE2MiAxMUJEOworQjMxNztCMzE3OzExMDMgMTE2MiAxMUJFO0IzMTc7MTEwMyAxMTYyIDExQkU7CitCMzE4O0IzMTg7MTEwMyAxMTYyIDExQkY7QjMxODsxMTAzIDExNjIgMTFCRjsKK0IzMTk7QjMxOTsxMTAzIDExNjIgMTFDMDtCMzE5OzExMDMgMTE2MiAxMUMwOworQjMxQTtCMzFBOzExMDMgMTE2MiAxMUMxO0IzMUE7MTEwMyAxMTYyIDExQzE7CitCMzFCO0IzMUI7MTEwMyAxMTYyIDExQzI7QjMxQjsxMTAzIDExNjIgMTFDMjsKK0IzMUM7QjMxQzsxMTAzIDExNjM7QjMxQzsxMTAzIDExNjM7CitCMzFEO0IzMUQ7MTEwMyAxMTYzIDExQTg7QjMxRDsxMTAzIDExNjMgMTFBODsKK0IzMUU7QjMxRTsxMTAzIDExNjMgMTFBOTtCMzFFOzExMDMgMTE2MyAxMUE5OworQjMxRjtCMzFGOzExMDMgMTE2MyAxMUFBO0IzMUY7MTEwMyAxMTYzIDExQUE7CitCMzIwO0IzMjA7MTEwMyAxMTYzIDExQUI7QjMyMDsxMTAzIDExNjMgMTFBQjsKK0IzMjE7QjMyMTsxMTAzIDExNjMgMTFBQztCMzIxOzExMDMgMTE2MyAxMUFDOworQjMyMjtCMzIyOzExMDMgMTE2MyAxMUFEO0IzMjI7MTEwMyAxMTYzIDExQUQ7CitCMzIzO0IzMjM7MTEwMyAxMTYzIDExQUU7QjMyMzsxMTAzIDExNjMgMTFBRTsKK0IzMjQ7QjMyNDsxMTAzIDExNjMgMTFBRjtCMzI0OzExMDMgMTE2MyAxMUFGOworQjMyNTtCMzI1OzExMDMgMTE2MyAxMUIwO0IzMjU7MTEwMyAxMTYzIDExQjA7CitCMzI2O0IzMjY7MTEwMyAxMTYzIDExQjE7QjMyNjsxMTAzIDExNjMgMTFCMTsKK0IzMjc7QjMyNzsxMTAzIDExNjMgMTFCMjtCMzI3OzExMDMgMTE2MyAxMUIyOworQjMyODtCMzI4OzExMDMgMTE2MyAxMUIzO0IzMjg7MTEwMyAxMTYzIDExQjM7CitCMzI5O0IzMjk7MTEwMyAxMTYzIDExQjQ7QjMyOTsxMTAzIDExNjMgMTFCNDsKK0IzMkE7QjMyQTsxMTAzIDExNjMgMTFCNTtCMzJBOzExMDMgMTE2MyAxMUI1OworQjMyQjtCMzJCOzExMDMgMTE2MyAxMUI2O0IzMkI7MTEwMyAxMTYzIDExQjY7CitCMzJDO0IzMkM7MTEwMyAxMTYzIDExQjc7QjMyQzsxMTAzIDExNjMgMTFCNzsKK0IzMkQ7QjMyRDsxMTAzIDExNjMgMTFCODtCMzJEOzExMDMgMTE2MyAxMUI4OworQjMyRTtCMzJFOzExMDMgMTE2MyAxMUI5O0IzMkU7MTEwMyAxMTYzIDExQjk7CitCMzJGO0IzMkY7MTEwMyAxMTYzIDExQkE7QjMyRjsxMTAzIDExNjMgMTFCQTsKK0IzMzA7QjMzMDsxMTAzIDExNjMgMTFCQjtCMzMwOzExMDMgMTE2MyAxMUJCOworQjMzMTtCMzMxOzExMDMgMTE2MyAxMUJDO0IzMzE7MTEwMyAxMTYzIDExQkM7CitCMzMyO0IzMzI7MTEwMyAxMTYzIDExQkQ7QjMzMjsxMTAzIDExNjMgMTFCRDsKK0IzMzM7QjMzMzsxMTAzIDExNjMgMTFCRTtCMzMzOzExMDMgMTE2MyAxMUJFOworQjMzNDtCMzM0OzExMDMgMTE2MyAxMUJGO0IzMzQ7MTEwMyAxMTYzIDExQkY7CitCMzM1O0IzMzU7MTEwMyAxMTYzIDExQzA7QjMzNTsxMTAzIDExNjMgMTFDMDsKK0IzMzY7QjMzNjsxMTAzIDExNjMgMTFDMTtCMzM2OzExMDMgMTE2MyAxMUMxOworQjMzNztCMzM3OzExMDMgMTE2MyAxMUMyO0IzMzc7MTEwMyAxMTYzIDExQzI7CitCMzM4O0IzMzg7MTEwMyAxMTY0O0IzMzg7MTEwMyAxMTY0OworQjMzOTtCMzM5OzExMDMgMTE2NCAxMUE4O0IzMzk7MTEwMyAxMTY0IDExQTg7CitCMzNBO0IzM0E7MTEwMyAxMTY0IDExQTk7QjMzQTsxMTAzIDExNjQgMTFBOTsKK0IzM0I7QjMzQjsxMTAzIDExNjQgMTFBQTtCMzNCOzExMDMgMTE2NCAxMUFBOworQjMzQztCMzNDOzExMDMgMTE2NCAxMUFCO0IzM0M7MTEwMyAxMTY0IDExQUI7CitCMzNEO0IzM0Q7MTEwMyAxMTY0IDExQUM7QjMzRDsxMTAzIDExNjQgMTFBQzsKK0IzM0U7QjMzRTsxMTAzIDExNjQgMTFBRDtCMzNFOzExMDMgMTE2NCAxMUFEOworQjMzRjtCMzNGOzExMDMgMTE2NCAxMUFFO0IzM0Y7MTEwMyAxMTY0IDExQUU7CitCMzQwO0IzNDA7MTEwMyAxMTY0IDExQUY7QjM0MDsxMTAzIDExNjQgMTFBRjsKK0IzNDE7QjM0MTsxMTAzIDExNjQgMTFCMDtCMzQxOzExMDMgMTE2NCAxMUIwOworQjM0MjtCMzQyOzExMDMgMTE2NCAxMUIxO0IzNDI7MTEwMyAxMTY0IDExQjE7CitCMzQzO0IzNDM7MTEwMyAxMTY0IDExQjI7QjM0MzsxMTAzIDExNjQgMTFCMjsKK0IzNDQ7QjM0NDsxMTAzIDExNjQgMTFCMztCMzQ0OzExMDMgMTE2NCAxMUIzOworQjM0NTtCMzQ1OzExMDMgMTE2NCAxMUI0O0IzNDU7MTEwMyAxMTY0IDExQjQ7CitCMzQ2O0IzNDY7MTEwMyAxMTY0IDExQjU7QjM0NjsxMTAzIDExNjQgMTFCNTsKK0IzNDc7QjM0NzsxMTAzIDExNjQgMTFCNjtCMzQ3OzExMDMgMTE2NCAxMUI2OworQjM0ODtCMzQ4OzExMDMgMTE2NCAxMUI3O0IzNDg7MTEwMyAxMTY0IDExQjc7CitCMzQ5O0IzNDk7MTEwMyAxMTY0IDExQjg7QjM0OTsxMTAzIDExNjQgMTFCODsKK0IzNEE7QjM0QTsxMTAzIDExNjQgMTFCOTtCMzRBOzExMDMgMTE2NCAxMUI5OworQjM0QjtCMzRCOzExMDMgMTE2NCAxMUJBO0IzNEI7MTEwMyAxMTY0IDExQkE7CitCMzRDO0IzNEM7MTEwMyAxMTY0IDExQkI7QjM0QzsxMTAzIDExNjQgMTFCQjsKK0IzNEQ7QjM0RDsxMTAzIDExNjQgMTFCQztCMzREOzExMDMgMTE2NCAxMUJDOworQjM0RTtCMzRFOzExMDMgMTE2NCAxMUJEO0IzNEU7MTEwMyAxMTY0IDExQkQ7CitCMzRGO0IzNEY7MTEwMyAxMTY0IDExQkU7QjM0RjsxMTAzIDExNjQgMTFCRTsKK0IzNTA7QjM1MDsxMTAzIDExNjQgMTFCRjtCMzUwOzExMDMgMTE2NCAxMUJGOworQjM1MTtCMzUxOzExMDMgMTE2NCAxMUMwO0IzNTE7MTEwMyAxMTY0IDExQzA7CitCMzUyO0IzNTI7MTEwMyAxMTY0IDExQzE7QjM1MjsxMTAzIDExNjQgMTFDMTsKK0IzNTM7QjM1MzsxMTAzIDExNjQgMTFDMjtCMzUzOzExMDMgMTE2NCAxMUMyOworQjM1NDtCMzU0OzExMDMgMTE2NTtCMzU0OzExMDMgMTE2NTsKK0IzNTU7QjM1NTsxMTAzIDExNjUgMTFBODtCMzU1OzExMDMgMTE2NSAxMUE4OworQjM1NjtCMzU2OzExMDMgMTE2NSAxMUE5O0IzNTY7MTEwMyAxMTY1IDExQTk7CitCMzU3O0IzNTc7MTEwMyAxMTY1IDExQUE7QjM1NzsxMTAzIDExNjUgMTFBQTsKK0IzNTg7QjM1ODsxMTAzIDExNjUgMTFBQjtCMzU4OzExMDMgMTE2NSAxMUFCOworQjM1OTtCMzU5OzExMDMgMTE2NSAxMUFDO0IzNTk7MTEwMyAxMTY1IDExQUM7CitCMzVBO0IzNUE7MTEwMyAxMTY1IDExQUQ7QjM1QTsxMTAzIDExNjUgMTFBRDsKK0IzNUI7QjM1QjsxMTAzIDExNjUgMTFBRTtCMzVCOzExMDMgMTE2NSAxMUFFOworQjM1QztCMzVDOzExMDMgMTE2NSAxMUFGO0IzNUM7MTEwMyAxMTY1IDExQUY7CitCMzVEO0IzNUQ7MTEwMyAxMTY1IDExQjA7QjM1RDsxMTAzIDExNjUgMTFCMDsKK0IzNUU7QjM1RTsxMTAzIDExNjUgMTFCMTtCMzVFOzExMDMgMTE2NSAxMUIxOworQjM1RjtCMzVGOzExMDMgMTE2NSAxMUIyO0IzNUY7MTEwMyAxMTY1IDExQjI7CitCMzYwO0IzNjA7MTEwMyAxMTY1IDExQjM7QjM2MDsxMTAzIDExNjUgMTFCMzsKK0IzNjE7QjM2MTsxMTAzIDExNjUgMTFCNDtCMzYxOzExMDMgMTE2NSAxMUI0OworQjM2MjtCMzYyOzExMDMgMTE2NSAxMUI1O0IzNjI7MTEwMyAxMTY1IDExQjU7CitCMzYzO0IzNjM7MTEwMyAxMTY1IDExQjY7QjM2MzsxMTAzIDExNjUgMTFCNjsKK0IzNjQ7QjM2NDsxMTAzIDExNjUgMTFCNztCMzY0OzExMDMgMTE2NSAxMUI3OworQjM2NTtCMzY1OzExMDMgMTE2NSAxMUI4O0IzNjU7MTEwMyAxMTY1IDExQjg7CitCMzY2O0IzNjY7MTEwMyAxMTY1IDExQjk7QjM2NjsxMTAzIDExNjUgMTFCOTsKK0IzNjc7QjM2NzsxMTAzIDExNjUgMTFCQTtCMzY3OzExMDMgMTE2NSAxMUJBOworQjM2ODtCMzY4OzExMDMgMTE2NSAxMUJCO0IzNjg7MTEwMyAxMTY1IDExQkI7CitCMzY5O0IzNjk7MTEwMyAxMTY1IDExQkM7QjM2OTsxMTAzIDExNjUgMTFCQzsKK0IzNkE7QjM2QTsxMTAzIDExNjUgMTFCRDtCMzZBOzExMDMgMTE2NSAxMUJEOworQjM2QjtCMzZCOzExMDMgMTE2NSAxMUJFO0IzNkI7MTEwMyAxMTY1IDExQkU7CitCMzZDO0IzNkM7MTEwMyAxMTY1IDExQkY7QjM2QzsxMTAzIDExNjUgMTFCRjsKK0IzNkQ7QjM2RDsxMTAzIDExNjUgMTFDMDtCMzZEOzExMDMgMTE2NSAxMUMwOworQjM2RTtCMzZFOzExMDMgMTE2NSAxMUMxO0IzNkU7MTEwMyAxMTY1IDExQzE7CitCMzZGO0IzNkY7MTEwMyAxMTY1IDExQzI7QjM2RjsxMTAzIDExNjUgMTFDMjsKK0IzNzA7QjM3MDsxMTAzIDExNjY7QjM3MDsxMTAzIDExNjY7CitCMzcxO0IzNzE7MTEwMyAxMTY2IDExQTg7QjM3MTsxMTAzIDExNjYgMTFBODsKK0IzNzI7QjM3MjsxMTAzIDExNjYgMTFBOTtCMzcyOzExMDMgMTE2NiAxMUE5OworQjM3MztCMzczOzExMDMgMTE2NiAxMUFBO0IzNzM7MTEwMyAxMTY2IDExQUE7CitCMzc0O0IzNzQ7MTEwMyAxMTY2IDExQUI7QjM3NDsxMTAzIDExNjYgMTFBQjsKK0IzNzU7QjM3NTsxMTAzIDExNjYgMTFBQztCMzc1OzExMDMgMTE2NiAxMUFDOworQjM3NjtCMzc2OzExMDMgMTE2NiAxMUFEO0IzNzY7MTEwMyAxMTY2IDExQUQ7CitCMzc3O0IzNzc7MTEwMyAxMTY2IDExQUU7QjM3NzsxMTAzIDExNjYgMTFBRTsKK0IzNzg7QjM3ODsxMTAzIDExNjYgMTFBRjtCMzc4OzExMDMgMTE2NiAxMUFGOworQjM3OTtCMzc5OzExMDMgMTE2NiAxMUIwO0IzNzk7MTEwMyAxMTY2IDExQjA7CitCMzdBO0IzN0E7MTEwMyAxMTY2IDExQjE7QjM3QTsxMTAzIDExNjYgMTFCMTsKK0IzN0I7QjM3QjsxMTAzIDExNjYgMTFCMjtCMzdCOzExMDMgMTE2NiAxMUIyOworQjM3QztCMzdDOzExMDMgMTE2NiAxMUIzO0IzN0M7MTEwMyAxMTY2IDExQjM7CitCMzdEO0IzN0Q7MTEwMyAxMTY2IDExQjQ7QjM3RDsxMTAzIDExNjYgMTFCNDsKK0IzN0U7QjM3RTsxMTAzIDExNjYgMTFCNTtCMzdFOzExMDMgMTE2NiAxMUI1OworQjM3RjtCMzdGOzExMDMgMTE2NiAxMUI2O0IzN0Y7MTEwMyAxMTY2IDExQjY7CitCMzgwO0IzODA7MTEwMyAxMTY2IDExQjc7QjM4MDsxMTAzIDExNjYgMTFCNzsKK0IzODE7QjM4MTsxMTAzIDExNjYgMTFCODtCMzgxOzExMDMgMTE2NiAxMUI4OworQjM4MjtCMzgyOzExMDMgMTE2NiAxMUI5O0IzODI7MTEwMyAxMTY2IDExQjk7CitCMzgzO0IzODM7MTEwMyAxMTY2IDExQkE7QjM4MzsxMTAzIDExNjYgMTFCQTsKK0IzODQ7QjM4NDsxMTAzIDExNjYgMTFCQjtCMzg0OzExMDMgMTE2NiAxMUJCOworQjM4NTtCMzg1OzExMDMgMTE2NiAxMUJDO0IzODU7MTEwMyAxMTY2IDExQkM7CitCMzg2O0IzODY7MTEwMyAxMTY2IDExQkQ7QjM4NjsxMTAzIDExNjYgMTFCRDsKK0IzODc7QjM4NzsxMTAzIDExNjYgMTFCRTtCMzg3OzExMDMgMTE2NiAxMUJFOworQjM4ODtCMzg4OzExMDMgMTE2NiAxMUJGO0IzODg7MTEwMyAxMTY2IDExQkY7CitCMzg5O0IzODk7MTEwMyAxMTY2IDExQzA7QjM4OTsxMTAzIDExNjYgMTFDMDsKK0IzOEE7QjM4QTsxMTAzIDExNjYgMTFDMTtCMzhBOzExMDMgMTE2NiAxMUMxOworQjM4QjtCMzhCOzExMDMgMTE2NiAxMUMyO0IzOEI7MTEwMyAxMTY2IDExQzI7CitCMzhDO0IzOEM7MTEwMyAxMTY3O0IzOEM7MTEwMyAxMTY3OworQjM4RDtCMzhEOzExMDMgMTE2NyAxMUE4O0IzOEQ7MTEwMyAxMTY3IDExQTg7CitCMzhFO0IzOEU7MTEwMyAxMTY3IDExQTk7QjM4RTsxMTAzIDExNjcgMTFBOTsKK0IzOEY7QjM4RjsxMTAzIDExNjcgMTFBQTtCMzhGOzExMDMgMTE2NyAxMUFBOworQjM5MDtCMzkwOzExMDMgMTE2NyAxMUFCO0IzOTA7MTEwMyAxMTY3IDExQUI7CitCMzkxO0IzOTE7MTEwMyAxMTY3IDExQUM7QjM5MTsxMTAzIDExNjcgMTFBQzsKK0IzOTI7QjM5MjsxMTAzIDExNjcgMTFBRDtCMzkyOzExMDMgMTE2NyAxMUFEOworQjM5MztCMzkzOzExMDMgMTE2NyAxMUFFO0IzOTM7MTEwMyAxMTY3IDExQUU7CitCMzk0O0IzOTQ7MTEwMyAxMTY3IDExQUY7QjM5NDsxMTAzIDExNjcgMTFBRjsKK0IzOTU7QjM5NTsxMTAzIDExNjcgMTFCMDtCMzk1OzExMDMgMTE2NyAxMUIwOworQjM5NjtCMzk2OzExMDMgMTE2NyAxMUIxO0IzOTY7MTEwMyAxMTY3IDExQjE7CitCMzk3O0IzOTc7MTEwMyAxMTY3IDExQjI7QjM5NzsxMTAzIDExNjcgMTFCMjsKK0IzOTg7QjM5ODsxMTAzIDExNjcgMTFCMztCMzk4OzExMDMgMTE2NyAxMUIzOworQjM5OTtCMzk5OzExMDMgMTE2NyAxMUI0O0IzOTk7MTEwMyAxMTY3IDExQjQ7CitCMzlBO0IzOUE7MTEwMyAxMTY3IDExQjU7QjM5QTsxMTAzIDExNjcgMTFCNTsKK0IzOUI7QjM5QjsxMTAzIDExNjcgMTFCNjtCMzlCOzExMDMgMTE2NyAxMUI2OworQjM5QztCMzlDOzExMDMgMTE2NyAxMUI3O0IzOUM7MTEwMyAxMTY3IDExQjc7CitCMzlEO0IzOUQ7MTEwMyAxMTY3IDExQjg7QjM5RDsxMTAzIDExNjcgMTFCODsKK0IzOUU7QjM5RTsxMTAzIDExNjcgMTFCOTtCMzlFOzExMDMgMTE2NyAxMUI5OworQjM5RjtCMzlGOzExMDMgMTE2NyAxMUJBO0IzOUY7MTEwMyAxMTY3IDExQkE7CitCM0EwO0IzQTA7MTEwMyAxMTY3IDExQkI7QjNBMDsxMTAzIDExNjcgMTFCQjsKK0IzQTE7QjNBMTsxMTAzIDExNjcgMTFCQztCM0ExOzExMDMgMTE2NyAxMUJDOworQjNBMjtCM0EyOzExMDMgMTE2NyAxMUJEO0IzQTI7MTEwMyAxMTY3IDExQkQ7CitCM0EzO0IzQTM7MTEwMyAxMTY3IDExQkU7QjNBMzsxMTAzIDExNjcgMTFCRTsKK0IzQTQ7QjNBNDsxMTAzIDExNjcgMTFCRjtCM0E0OzExMDMgMTE2NyAxMUJGOworQjNBNTtCM0E1OzExMDMgMTE2NyAxMUMwO0IzQTU7MTEwMyAxMTY3IDExQzA7CitCM0E2O0IzQTY7MTEwMyAxMTY3IDExQzE7QjNBNjsxMTAzIDExNjcgMTFDMTsKK0IzQTc7QjNBNzsxMTAzIDExNjcgMTFDMjtCM0E3OzExMDMgMTE2NyAxMUMyOworQjNBODtCM0E4OzExMDMgMTE2ODtCM0E4OzExMDMgMTE2ODsKK0IzQTk7QjNBOTsxMTAzIDExNjggMTFBODtCM0E5OzExMDMgMTE2OCAxMUE4OworQjNBQTtCM0FBOzExMDMgMTE2OCAxMUE5O0IzQUE7MTEwMyAxMTY4IDExQTk7CitCM0FCO0IzQUI7MTEwMyAxMTY4IDExQUE7QjNBQjsxMTAzIDExNjggMTFBQTsKK0IzQUM7QjNBQzsxMTAzIDExNjggMTFBQjtCM0FDOzExMDMgMTE2OCAxMUFCOworQjNBRDtCM0FEOzExMDMgMTE2OCAxMUFDO0IzQUQ7MTEwMyAxMTY4IDExQUM7CitCM0FFO0IzQUU7MTEwMyAxMTY4IDExQUQ7QjNBRTsxMTAzIDExNjggMTFBRDsKK0IzQUY7QjNBRjsxMTAzIDExNjggMTFBRTtCM0FGOzExMDMgMTE2OCAxMUFFOworQjNCMDtCM0IwOzExMDMgMTE2OCAxMUFGO0IzQjA7MTEwMyAxMTY4IDExQUY7CitCM0IxO0IzQjE7MTEwMyAxMTY4IDExQjA7QjNCMTsxMTAzIDExNjggMTFCMDsKK0IzQjI7QjNCMjsxMTAzIDExNjggMTFCMTtCM0IyOzExMDMgMTE2OCAxMUIxOworQjNCMztCM0IzOzExMDMgMTE2OCAxMUIyO0IzQjM7MTEwMyAxMTY4IDExQjI7CitCM0I0O0IzQjQ7MTEwMyAxMTY4IDExQjM7QjNCNDsxMTAzIDExNjggMTFCMzsKK0IzQjU7QjNCNTsxMTAzIDExNjggMTFCNDtCM0I1OzExMDMgMTE2OCAxMUI0OworQjNCNjtCM0I2OzExMDMgMTE2OCAxMUI1O0IzQjY7MTEwMyAxMTY4IDExQjU7CitCM0I3O0IzQjc7MTEwMyAxMTY4IDExQjY7QjNCNzsxMTAzIDExNjggMTFCNjsKK0IzQjg7QjNCODsxMTAzIDExNjggMTFCNztCM0I4OzExMDMgMTE2OCAxMUI3OworQjNCOTtCM0I5OzExMDMgMTE2OCAxMUI4O0IzQjk7MTEwMyAxMTY4IDExQjg7CitCM0JBO0IzQkE7MTEwMyAxMTY4IDExQjk7QjNCQTsxMTAzIDExNjggMTFCOTsKK0IzQkI7QjNCQjsxMTAzIDExNjggMTFCQTtCM0JCOzExMDMgMTE2OCAxMUJBOworQjNCQztCM0JDOzExMDMgMTE2OCAxMUJCO0IzQkM7MTEwMyAxMTY4IDExQkI7CitCM0JEO0IzQkQ7MTEwMyAxMTY4IDExQkM7QjNCRDsxMTAzIDExNjggMTFCQzsKK0IzQkU7QjNCRTsxMTAzIDExNjggMTFCRDtCM0JFOzExMDMgMTE2OCAxMUJEOworQjNCRjtCM0JGOzExMDMgMTE2OCAxMUJFO0IzQkY7MTEwMyAxMTY4IDExQkU7CitCM0MwO0IzQzA7MTEwMyAxMTY4IDExQkY7QjNDMDsxMTAzIDExNjggMTFCRjsKK0IzQzE7QjNDMTsxMTAzIDExNjggMTFDMDtCM0MxOzExMDMgMTE2OCAxMUMwOworQjNDMjtCM0MyOzExMDMgMTE2OCAxMUMxO0IzQzI7MTEwMyAxMTY4IDExQzE7CitCM0MzO0IzQzM7MTEwMyAxMTY4IDExQzI7QjNDMzsxMTAzIDExNjggMTFDMjsKK0IzQzQ7QjNDNDsxMTAzIDExNjk7QjNDNDsxMTAzIDExNjk7CitCM0M1O0IzQzU7MTEwMyAxMTY5IDExQTg7QjNDNTsxMTAzIDExNjkgMTFBODsKK0IzQzY7QjNDNjsxMTAzIDExNjkgMTFBOTtCM0M2OzExMDMgMTE2OSAxMUE5OworQjNDNztCM0M3OzExMDMgMTE2OSAxMUFBO0IzQzc7MTEwMyAxMTY5IDExQUE7CitCM0M4O0IzQzg7MTEwMyAxMTY5IDExQUI7QjNDODsxMTAzIDExNjkgMTFBQjsKK0IzQzk7QjNDOTsxMTAzIDExNjkgMTFBQztCM0M5OzExMDMgMTE2OSAxMUFDOworQjNDQTtCM0NBOzExMDMgMTE2OSAxMUFEO0IzQ0E7MTEwMyAxMTY5IDExQUQ7CitCM0NCO0IzQ0I7MTEwMyAxMTY5IDExQUU7QjNDQjsxMTAzIDExNjkgMTFBRTsKK0IzQ0M7QjNDQzsxMTAzIDExNjkgMTFBRjtCM0NDOzExMDMgMTE2OSAxMUFGOworQjNDRDtCM0NEOzExMDMgMTE2OSAxMUIwO0IzQ0Q7MTEwMyAxMTY5IDExQjA7CitCM0NFO0IzQ0U7MTEwMyAxMTY5IDExQjE7QjNDRTsxMTAzIDExNjkgMTFCMTsKK0IzQ0Y7QjNDRjsxMTAzIDExNjkgMTFCMjtCM0NGOzExMDMgMTE2OSAxMUIyOworQjNEMDtCM0QwOzExMDMgMTE2OSAxMUIzO0IzRDA7MTEwMyAxMTY5IDExQjM7CitCM0QxO0IzRDE7MTEwMyAxMTY5IDExQjQ7QjNEMTsxMTAzIDExNjkgMTFCNDsKK0IzRDI7QjNEMjsxMTAzIDExNjkgMTFCNTtCM0QyOzExMDMgMTE2OSAxMUI1OworQjNEMztCM0QzOzExMDMgMTE2OSAxMUI2O0IzRDM7MTEwMyAxMTY5IDExQjY7CitCM0Q0O0IzRDQ7MTEwMyAxMTY5IDExQjc7QjNENDsxMTAzIDExNjkgMTFCNzsKK0IzRDU7QjNENTsxMTAzIDExNjkgMTFCODtCM0Q1OzExMDMgMTE2OSAxMUI4OworQjNENjtCM0Q2OzExMDMgMTE2OSAxMUI5O0IzRDY7MTEwMyAxMTY5IDExQjk7CitCM0Q3O0IzRDc7MTEwMyAxMTY5IDExQkE7QjNENzsxMTAzIDExNjkgMTFCQTsKK0IzRDg7QjNEODsxMTAzIDExNjkgMTFCQjtCM0Q4OzExMDMgMTE2OSAxMUJCOworQjNEOTtCM0Q5OzExMDMgMTE2OSAxMUJDO0IzRDk7MTEwMyAxMTY5IDExQkM7CitCM0RBO0IzREE7MTEwMyAxMTY5IDExQkQ7QjNEQTsxMTAzIDExNjkgMTFCRDsKK0IzREI7QjNEQjsxMTAzIDExNjkgMTFCRTtCM0RCOzExMDMgMTE2OSAxMUJFOworQjNEQztCM0RDOzExMDMgMTE2OSAxMUJGO0IzREM7MTEwMyAxMTY5IDExQkY7CitCM0REO0IzREQ7MTEwMyAxMTY5IDExQzA7QjNERDsxMTAzIDExNjkgMTFDMDsKK0IzREU7QjNERTsxMTAzIDExNjkgMTFDMTtCM0RFOzExMDMgMTE2OSAxMUMxOworQjNERjtCM0RGOzExMDMgMTE2OSAxMUMyO0IzREY7MTEwMyAxMTY5IDExQzI7CitCM0UwO0IzRTA7MTEwMyAxMTZBO0IzRTA7MTEwMyAxMTZBOworQjNFMTtCM0UxOzExMDMgMTE2QSAxMUE4O0IzRTE7MTEwMyAxMTZBIDExQTg7CitCM0UyO0IzRTI7MTEwMyAxMTZBIDExQTk7QjNFMjsxMTAzIDExNkEgMTFBOTsKK0IzRTM7QjNFMzsxMTAzIDExNkEgMTFBQTtCM0UzOzExMDMgMTE2QSAxMUFBOworQjNFNDtCM0U0OzExMDMgMTE2QSAxMUFCO0IzRTQ7MTEwMyAxMTZBIDExQUI7CitCM0U1O0IzRTU7MTEwMyAxMTZBIDExQUM7QjNFNTsxMTAzIDExNkEgMTFBQzsKK0IzRTY7QjNFNjsxMTAzIDExNkEgMTFBRDtCM0U2OzExMDMgMTE2QSAxMUFEOworQjNFNztCM0U3OzExMDMgMTE2QSAxMUFFO0IzRTc7MTEwMyAxMTZBIDExQUU7CitCM0U4O0IzRTg7MTEwMyAxMTZBIDExQUY7QjNFODsxMTAzIDExNkEgMTFBRjsKK0IzRTk7QjNFOTsxMTAzIDExNkEgMTFCMDtCM0U5OzExMDMgMTE2QSAxMUIwOworQjNFQTtCM0VBOzExMDMgMTE2QSAxMUIxO0IzRUE7MTEwMyAxMTZBIDExQjE7CitCM0VCO0IzRUI7MTEwMyAxMTZBIDExQjI7QjNFQjsxMTAzIDExNkEgMTFCMjsKK0IzRUM7QjNFQzsxMTAzIDExNkEgMTFCMztCM0VDOzExMDMgMTE2QSAxMUIzOworQjNFRDtCM0VEOzExMDMgMTE2QSAxMUI0O0IzRUQ7MTEwMyAxMTZBIDExQjQ7CitCM0VFO0IzRUU7MTEwMyAxMTZBIDExQjU7QjNFRTsxMTAzIDExNkEgMTFCNTsKK0IzRUY7QjNFRjsxMTAzIDExNkEgMTFCNjtCM0VGOzExMDMgMTE2QSAxMUI2OworQjNGMDtCM0YwOzExMDMgMTE2QSAxMUI3O0IzRjA7MTEwMyAxMTZBIDExQjc7CitCM0YxO0IzRjE7MTEwMyAxMTZBIDExQjg7QjNGMTsxMTAzIDExNkEgMTFCODsKK0IzRjI7QjNGMjsxMTAzIDExNkEgMTFCOTtCM0YyOzExMDMgMTE2QSAxMUI5OworQjNGMztCM0YzOzExMDMgMTE2QSAxMUJBO0IzRjM7MTEwMyAxMTZBIDExQkE7CitCM0Y0O0IzRjQ7MTEwMyAxMTZBIDExQkI7QjNGNDsxMTAzIDExNkEgMTFCQjsKK0IzRjU7QjNGNTsxMTAzIDExNkEgMTFCQztCM0Y1OzExMDMgMTE2QSAxMUJDOworQjNGNjtCM0Y2OzExMDMgMTE2QSAxMUJEO0IzRjY7MTEwMyAxMTZBIDExQkQ7CitCM0Y3O0IzRjc7MTEwMyAxMTZBIDExQkU7QjNGNzsxMTAzIDExNkEgMTFCRTsKK0IzRjg7QjNGODsxMTAzIDExNkEgMTFCRjtCM0Y4OzExMDMgMTE2QSAxMUJGOworQjNGOTtCM0Y5OzExMDMgMTE2QSAxMUMwO0IzRjk7MTEwMyAxMTZBIDExQzA7CitCM0ZBO0IzRkE7MTEwMyAxMTZBIDExQzE7QjNGQTsxMTAzIDExNkEgMTFDMTsKK0IzRkI7QjNGQjsxMTAzIDExNkEgMTFDMjtCM0ZCOzExMDMgMTE2QSAxMUMyOworQjNGQztCM0ZDOzExMDMgMTE2QjtCM0ZDOzExMDMgMTE2QjsKK0IzRkQ7QjNGRDsxMTAzIDExNkIgMTFBODtCM0ZEOzExMDMgMTE2QiAxMUE4OworQjNGRTtCM0ZFOzExMDMgMTE2QiAxMUE5O0IzRkU7MTEwMyAxMTZCIDExQTk7CitCM0ZGO0IzRkY7MTEwMyAxMTZCIDExQUE7QjNGRjsxMTAzIDExNkIgMTFBQTsKK0I0MDA7QjQwMDsxMTAzIDExNkIgMTFBQjtCNDAwOzExMDMgMTE2QiAxMUFCOworQjQwMTtCNDAxOzExMDMgMTE2QiAxMUFDO0I0MDE7MTEwMyAxMTZCIDExQUM7CitCNDAyO0I0MDI7MTEwMyAxMTZCIDExQUQ7QjQwMjsxMTAzIDExNkIgMTFBRDsKK0I0MDM7QjQwMzsxMTAzIDExNkIgMTFBRTtCNDAzOzExMDMgMTE2QiAxMUFFOworQjQwNDtCNDA0OzExMDMgMTE2QiAxMUFGO0I0MDQ7MTEwMyAxMTZCIDExQUY7CitCNDA1O0I0MDU7MTEwMyAxMTZCIDExQjA7QjQwNTsxMTAzIDExNkIgMTFCMDsKK0I0MDY7QjQwNjsxMTAzIDExNkIgMTFCMTtCNDA2OzExMDMgMTE2QiAxMUIxOworQjQwNztCNDA3OzExMDMgMTE2QiAxMUIyO0I0MDc7MTEwMyAxMTZCIDExQjI7CitCNDA4O0I0MDg7MTEwMyAxMTZCIDExQjM7QjQwODsxMTAzIDExNkIgMTFCMzsKK0I0MDk7QjQwOTsxMTAzIDExNkIgMTFCNDtCNDA5OzExMDMgMTE2QiAxMUI0OworQjQwQTtCNDBBOzExMDMgMTE2QiAxMUI1O0I0MEE7MTEwMyAxMTZCIDExQjU7CitCNDBCO0I0MEI7MTEwMyAxMTZCIDExQjY7QjQwQjsxMTAzIDExNkIgMTFCNjsKK0I0MEM7QjQwQzsxMTAzIDExNkIgMTFCNztCNDBDOzExMDMgMTE2QiAxMUI3OworQjQwRDtCNDBEOzExMDMgMTE2QiAxMUI4O0I0MEQ7MTEwMyAxMTZCIDExQjg7CitCNDBFO0I0MEU7MTEwMyAxMTZCIDExQjk7QjQwRTsxMTAzIDExNkIgMTFCOTsKK0I0MEY7QjQwRjsxMTAzIDExNkIgMTFCQTtCNDBGOzExMDMgMTE2QiAxMUJBOworQjQxMDtCNDEwOzExMDMgMTE2QiAxMUJCO0I0MTA7MTEwMyAxMTZCIDExQkI7CitCNDExO0I0MTE7MTEwMyAxMTZCIDExQkM7QjQxMTsxMTAzIDExNkIgMTFCQzsKK0I0MTI7QjQxMjsxMTAzIDExNkIgMTFCRDtCNDEyOzExMDMgMTE2QiAxMUJEOworQjQxMztCNDEzOzExMDMgMTE2QiAxMUJFO0I0MTM7MTEwMyAxMTZCIDExQkU7CitCNDE0O0I0MTQ7MTEwMyAxMTZCIDExQkY7QjQxNDsxMTAzIDExNkIgMTFCRjsKK0I0MTU7QjQxNTsxMTAzIDExNkIgMTFDMDtCNDE1OzExMDMgMTE2QiAxMUMwOworQjQxNjtCNDE2OzExMDMgMTE2QiAxMUMxO0I0MTY7MTEwMyAxMTZCIDExQzE7CitCNDE3O0I0MTc7MTEwMyAxMTZCIDExQzI7QjQxNzsxMTAzIDExNkIgMTFDMjsKK0I0MTg7QjQxODsxMTAzIDExNkM7QjQxODsxMTAzIDExNkM7CitCNDE5O0I0MTk7MTEwMyAxMTZDIDExQTg7QjQxOTsxMTAzIDExNkMgMTFBODsKK0I0MUE7QjQxQTsxMTAzIDExNkMgMTFBOTtCNDFBOzExMDMgMTE2QyAxMUE5OworQjQxQjtCNDFCOzExMDMgMTE2QyAxMUFBO0I0MUI7MTEwMyAxMTZDIDExQUE7CitCNDFDO0I0MUM7MTEwMyAxMTZDIDExQUI7QjQxQzsxMTAzIDExNkMgMTFBQjsKK0I0MUQ7QjQxRDsxMTAzIDExNkMgMTFBQztCNDFEOzExMDMgMTE2QyAxMUFDOworQjQxRTtCNDFFOzExMDMgMTE2QyAxMUFEO0I0MUU7MTEwMyAxMTZDIDExQUQ7CitCNDFGO0I0MUY7MTEwMyAxMTZDIDExQUU7QjQxRjsxMTAzIDExNkMgMTFBRTsKK0I0MjA7QjQyMDsxMTAzIDExNkMgMTFBRjtCNDIwOzExMDMgMTE2QyAxMUFGOworQjQyMTtCNDIxOzExMDMgMTE2QyAxMUIwO0I0MjE7MTEwMyAxMTZDIDExQjA7CitCNDIyO0I0MjI7MTEwMyAxMTZDIDExQjE7QjQyMjsxMTAzIDExNkMgMTFCMTsKK0I0MjM7QjQyMzsxMTAzIDExNkMgMTFCMjtCNDIzOzExMDMgMTE2QyAxMUIyOworQjQyNDtCNDI0OzExMDMgMTE2QyAxMUIzO0I0MjQ7MTEwMyAxMTZDIDExQjM7CitCNDI1O0I0MjU7MTEwMyAxMTZDIDExQjQ7QjQyNTsxMTAzIDExNkMgMTFCNDsKK0I0MjY7QjQyNjsxMTAzIDExNkMgMTFCNTtCNDI2OzExMDMgMTE2QyAxMUI1OworQjQyNztCNDI3OzExMDMgMTE2QyAxMUI2O0I0Mjc7MTEwMyAxMTZDIDExQjY7CitCNDI4O0I0Mjg7MTEwMyAxMTZDIDExQjc7QjQyODsxMTAzIDExNkMgMTFCNzsKK0I0Mjk7QjQyOTsxMTAzIDExNkMgMTFCODtCNDI5OzExMDMgMTE2QyAxMUI4OworQjQyQTtCNDJBOzExMDMgMTE2QyAxMUI5O0I0MkE7MTEwMyAxMTZDIDExQjk7CitCNDJCO0I0MkI7MTEwMyAxMTZDIDExQkE7QjQyQjsxMTAzIDExNkMgMTFCQTsKK0I0MkM7QjQyQzsxMTAzIDExNkMgMTFCQjtCNDJDOzExMDMgMTE2QyAxMUJCOworQjQyRDtCNDJEOzExMDMgMTE2QyAxMUJDO0I0MkQ7MTEwMyAxMTZDIDExQkM7CitCNDJFO0I0MkU7MTEwMyAxMTZDIDExQkQ7QjQyRTsxMTAzIDExNkMgMTFCRDsKK0I0MkY7QjQyRjsxMTAzIDExNkMgMTFCRTtCNDJGOzExMDMgMTE2QyAxMUJFOworQjQzMDtCNDMwOzExMDMgMTE2QyAxMUJGO0I0MzA7MTEwMyAxMTZDIDExQkY7CitCNDMxO0I0MzE7MTEwMyAxMTZDIDExQzA7QjQzMTsxMTAzIDExNkMgMTFDMDsKK0I0MzI7QjQzMjsxMTAzIDExNkMgMTFDMTtCNDMyOzExMDMgMTE2QyAxMUMxOworQjQzMztCNDMzOzExMDMgMTE2QyAxMUMyO0I0MzM7MTEwMyAxMTZDIDExQzI7CitCNDM0O0I0MzQ7MTEwMyAxMTZEO0I0MzQ7MTEwMyAxMTZEOworQjQzNTtCNDM1OzExMDMgMTE2RCAxMUE4O0I0MzU7MTEwMyAxMTZEIDExQTg7CitCNDM2O0I0MzY7MTEwMyAxMTZEIDExQTk7QjQzNjsxMTAzIDExNkQgMTFBOTsKK0I0Mzc7QjQzNzsxMTAzIDExNkQgMTFBQTtCNDM3OzExMDMgMTE2RCAxMUFBOworQjQzODtCNDM4OzExMDMgMTE2RCAxMUFCO0I0Mzg7MTEwMyAxMTZEIDExQUI7CitCNDM5O0I0Mzk7MTEwMyAxMTZEIDExQUM7QjQzOTsxMTAzIDExNkQgMTFBQzsKK0I0M0E7QjQzQTsxMTAzIDExNkQgMTFBRDtCNDNBOzExMDMgMTE2RCAxMUFEOworQjQzQjtCNDNCOzExMDMgMTE2RCAxMUFFO0I0M0I7MTEwMyAxMTZEIDExQUU7CitCNDNDO0I0M0M7MTEwMyAxMTZEIDExQUY7QjQzQzsxMTAzIDExNkQgMTFBRjsKK0I0M0Q7QjQzRDsxMTAzIDExNkQgMTFCMDtCNDNEOzExMDMgMTE2RCAxMUIwOworQjQzRTtCNDNFOzExMDMgMTE2RCAxMUIxO0I0M0U7MTEwMyAxMTZEIDExQjE7CitCNDNGO0I0M0Y7MTEwMyAxMTZEIDExQjI7QjQzRjsxMTAzIDExNkQgMTFCMjsKK0I0NDA7QjQ0MDsxMTAzIDExNkQgMTFCMztCNDQwOzExMDMgMTE2RCAxMUIzOworQjQ0MTtCNDQxOzExMDMgMTE2RCAxMUI0O0I0NDE7MTEwMyAxMTZEIDExQjQ7CitCNDQyO0I0NDI7MTEwMyAxMTZEIDExQjU7QjQ0MjsxMTAzIDExNkQgMTFCNTsKK0I0NDM7QjQ0MzsxMTAzIDExNkQgMTFCNjtCNDQzOzExMDMgMTE2RCAxMUI2OworQjQ0NDtCNDQ0OzExMDMgMTE2RCAxMUI3O0I0NDQ7MTEwMyAxMTZEIDExQjc7CitCNDQ1O0I0NDU7MTEwMyAxMTZEIDExQjg7QjQ0NTsxMTAzIDExNkQgMTFCODsKK0I0NDY7QjQ0NjsxMTAzIDExNkQgMTFCOTtCNDQ2OzExMDMgMTE2RCAxMUI5OworQjQ0NztCNDQ3OzExMDMgMTE2RCAxMUJBO0I0NDc7MTEwMyAxMTZEIDExQkE7CitCNDQ4O0I0NDg7MTEwMyAxMTZEIDExQkI7QjQ0ODsxMTAzIDExNkQgMTFCQjsKK0I0NDk7QjQ0OTsxMTAzIDExNkQgMTFCQztCNDQ5OzExMDMgMTE2RCAxMUJDOworQjQ0QTtCNDRBOzExMDMgMTE2RCAxMUJEO0I0NEE7MTEwMyAxMTZEIDExQkQ7CitCNDRCO0I0NEI7MTEwMyAxMTZEIDExQkU7QjQ0QjsxMTAzIDExNkQgMTFCRTsKK0I0NEM7QjQ0QzsxMTAzIDExNkQgMTFCRjtCNDRDOzExMDMgMTE2RCAxMUJGOworQjQ0RDtCNDREOzExMDMgMTE2RCAxMUMwO0I0NEQ7MTEwMyAxMTZEIDExQzA7CitCNDRFO0I0NEU7MTEwMyAxMTZEIDExQzE7QjQ0RTsxMTAzIDExNkQgMTFDMTsKK0I0NEY7QjQ0RjsxMTAzIDExNkQgMTFDMjtCNDRGOzExMDMgMTE2RCAxMUMyOworQjQ1MDtCNDUwOzExMDMgMTE2RTtCNDUwOzExMDMgMTE2RTsKK0I0NTE7QjQ1MTsxMTAzIDExNkUgMTFBODtCNDUxOzExMDMgMTE2RSAxMUE4OworQjQ1MjtCNDUyOzExMDMgMTE2RSAxMUE5O0I0NTI7MTEwMyAxMTZFIDExQTk7CitCNDUzO0I0NTM7MTEwMyAxMTZFIDExQUE7QjQ1MzsxMTAzIDExNkUgMTFBQTsKK0I0NTQ7QjQ1NDsxMTAzIDExNkUgMTFBQjtCNDU0OzExMDMgMTE2RSAxMUFCOworQjQ1NTtCNDU1OzExMDMgMTE2RSAxMUFDO0I0NTU7MTEwMyAxMTZFIDExQUM7CitCNDU2O0I0NTY7MTEwMyAxMTZFIDExQUQ7QjQ1NjsxMTAzIDExNkUgMTFBRDsKK0I0NTc7QjQ1NzsxMTAzIDExNkUgMTFBRTtCNDU3OzExMDMgMTE2RSAxMUFFOworQjQ1ODtCNDU4OzExMDMgMTE2RSAxMUFGO0I0NTg7MTEwMyAxMTZFIDExQUY7CitCNDU5O0I0NTk7MTEwMyAxMTZFIDExQjA7QjQ1OTsxMTAzIDExNkUgMTFCMDsKK0I0NUE7QjQ1QTsxMTAzIDExNkUgMTFCMTtCNDVBOzExMDMgMTE2RSAxMUIxOworQjQ1QjtCNDVCOzExMDMgMTE2RSAxMUIyO0I0NUI7MTEwMyAxMTZFIDExQjI7CitCNDVDO0I0NUM7MTEwMyAxMTZFIDExQjM7QjQ1QzsxMTAzIDExNkUgMTFCMzsKK0I0NUQ7QjQ1RDsxMTAzIDExNkUgMTFCNDtCNDVEOzExMDMgMTE2RSAxMUI0OworQjQ1RTtCNDVFOzExMDMgMTE2RSAxMUI1O0I0NUU7MTEwMyAxMTZFIDExQjU7CitCNDVGO0I0NUY7MTEwMyAxMTZFIDExQjY7QjQ1RjsxMTAzIDExNkUgMTFCNjsKK0I0NjA7QjQ2MDsxMTAzIDExNkUgMTFCNztCNDYwOzExMDMgMTE2RSAxMUI3OworQjQ2MTtCNDYxOzExMDMgMTE2RSAxMUI4O0I0NjE7MTEwMyAxMTZFIDExQjg7CitCNDYyO0I0NjI7MTEwMyAxMTZFIDExQjk7QjQ2MjsxMTAzIDExNkUgMTFCOTsKK0I0NjM7QjQ2MzsxMTAzIDExNkUgMTFCQTtCNDYzOzExMDMgMTE2RSAxMUJBOworQjQ2NDtCNDY0OzExMDMgMTE2RSAxMUJCO0I0NjQ7MTEwMyAxMTZFIDExQkI7CitCNDY1O0I0NjU7MTEwMyAxMTZFIDExQkM7QjQ2NTsxMTAzIDExNkUgMTFCQzsKK0I0NjY7QjQ2NjsxMTAzIDExNkUgMTFCRDtCNDY2OzExMDMgMTE2RSAxMUJEOworQjQ2NztCNDY3OzExMDMgMTE2RSAxMUJFO0I0Njc7MTEwMyAxMTZFIDExQkU7CitCNDY4O0I0Njg7MTEwMyAxMTZFIDExQkY7QjQ2ODsxMTAzIDExNkUgMTFCRjsKK0I0Njk7QjQ2OTsxMTAzIDExNkUgMTFDMDtCNDY5OzExMDMgMTE2RSAxMUMwOworQjQ2QTtCNDZBOzExMDMgMTE2RSAxMUMxO0I0NkE7MTEwMyAxMTZFIDExQzE7CitCNDZCO0I0NkI7MTEwMyAxMTZFIDExQzI7QjQ2QjsxMTAzIDExNkUgMTFDMjsKK0I0NkM7QjQ2QzsxMTAzIDExNkY7QjQ2QzsxMTAzIDExNkY7CitCNDZEO0I0NkQ7MTEwMyAxMTZGIDExQTg7QjQ2RDsxMTAzIDExNkYgMTFBODsKK0I0NkU7QjQ2RTsxMTAzIDExNkYgMTFBOTtCNDZFOzExMDMgMTE2RiAxMUE5OworQjQ2RjtCNDZGOzExMDMgMTE2RiAxMUFBO0I0NkY7MTEwMyAxMTZGIDExQUE7CitCNDcwO0I0NzA7MTEwMyAxMTZGIDExQUI7QjQ3MDsxMTAzIDExNkYgMTFBQjsKK0I0NzE7QjQ3MTsxMTAzIDExNkYgMTFBQztCNDcxOzExMDMgMTE2RiAxMUFDOworQjQ3MjtCNDcyOzExMDMgMTE2RiAxMUFEO0I0NzI7MTEwMyAxMTZGIDExQUQ7CitCNDczO0I0NzM7MTEwMyAxMTZGIDExQUU7QjQ3MzsxMTAzIDExNkYgMTFBRTsKK0I0NzQ7QjQ3NDsxMTAzIDExNkYgMTFBRjtCNDc0OzExMDMgMTE2RiAxMUFGOworQjQ3NTtCNDc1OzExMDMgMTE2RiAxMUIwO0I0NzU7MTEwMyAxMTZGIDExQjA7CitCNDc2O0I0NzY7MTEwMyAxMTZGIDExQjE7QjQ3NjsxMTAzIDExNkYgMTFCMTsKK0I0Nzc7QjQ3NzsxMTAzIDExNkYgMTFCMjtCNDc3OzExMDMgMTE2RiAxMUIyOworQjQ3ODtCNDc4OzExMDMgMTE2RiAxMUIzO0I0Nzg7MTEwMyAxMTZGIDExQjM7CitCNDc5O0I0Nzk7MTEwMyAxMTZGIDExQjQ7QjQ3OTsxMTAzIDExNkYgMTFCNDsKK0I0N0E7QjQ3QTsxMTAzIDExNkYgMTFCNTtCNDdBOzExMDMgMTE2RiAxMUI1OworQjQ3QjtCNDdCOzExMDMgMTE2RiAxMUI2O0I0N0I7MTEwMyAxMTZGIDExQjY7CitCNDdDO0I0N0M7MTEwMyAxMTZGIDExQjc7QjQ3QzsxMTAzIDExNkYgMTFCNzsKK0I0N0Q7QjQ3RDsxMTAzIDExNkYgMTFCODtCNDdEOzExMDMgMTE2RiAxMUI4OworQjQ3RTtCNDdFOzExMDMgMTE2RiAxMUI5O0I0N0U7MTEwMyAxMTZGIDExQjk7CitCNDdGO0I0N0Y7MTEwMyAxMTZGIDExQkE7QjQ3RjsxMTAzIDExNkYgMTFCQTsKK0I0ODA7QjQ4MDsxMTAzIDExNkYgMTFCQjtCNDgwOzExMDMgMTE2RiAxMUJCOworQjQ4MTtCNDgxOzExMDMgMTE2RiAxMUJDO0I0ODE7MTEwMyAxMTZGIDExQkM7CitCNDgyO0I0ODI7MTEwMyAxMTZGIDExQkQ7QjQ4MjsxMTAzIDExNkYgMTFCRDsKK0I0ODM7QjQ4MzsxMTAzIDExNkYgMTFCRTtCNDgzOzExMDMgMTE2RiAxMUJFOworQjQ4NDtCNDg0OzExMDMgMTE2RiAxMUJGO0I0ODQ7MTEwMyAxMTZGIDExQkY7CitCNDg1O0I0ODU7MTEwMyAxMTZGIDExQzA7QjQ4NTsxMTAzIDExNkYgMTFDMDsKK0I0ODY7QjQ4NjsxMTAzIDExNkYgMTFDMTtCNDg2OzExMDMgMTE2RiAxMUMxOworQjQ4NztCNDg3OzExMDMgMTE2RiAxMUMyO0I0ODc7MTEwMyAxMTZGIDExQzI7CitCNDg4O0I0ODg7MTEwMyAxMTcwO0I0ODg7MTEwMyAxMTcwOworQjQ4OTtCNDg5OzExMDMgMTE3MCAxMUE4O0I0ODk7MTEwMyAxMTcwIDExQTg7CitCNDhBO0I0OEE7MTEwMyAxMTcwIDExQTk7QjQ4QTsxMTAzIDExNzAgMTFBOTsKK0I0OEI7QjQ4QjsxMTAzIDExNzAgMTFBQTtCNDhCOzExMDMgMTE3MCAxMUFBOworQjQ4QztCNDhDOzExMDMgMTE3MCAxMUFCO0I0OEM7MTEwMyAxMTcwIDExQUI7CitCNDhEO0I0OEQ7MTEwMyAxMTcwIDExQUM7QjQ4RDsxMTAzIDExNzAgMTFBQzsKK0I0OEU7QjQ4RTsxMTAzIDExNzAgMTFBRDtCNDhFOzExMDMgMTE3MCAxMUFEOworQjQ4RjtCNDhGOzExMDMgMTE3MCAxMUFFO0I0OEY7MTEwMyAxMTcwIDExQUU7CitCNDkwO0I0OTA7MTEwMyAxMTcwIDExQUY7QjQ5MDsxMTAzIDExNzAgMTFBRjsKK0I0OTE7QjQ5MTsxMTAzIDExNzAgMTFCMDtCNDkxOzExMDMgMTE3MCAxMUIwOworQjQ5MjtCNDkyOzExMDMgMTE3MCAxMUIxO0I0OTI7MTEwMyAxMTcwIDExQjE7CitCNDkzO0I0OTM7MTEwMyAxMTcwIDExQjI7QjQ5MzsxMTAzIDExNzAgMTFCMjsKK0I0OTQ7QjQ5NDsxMTAzIDExNzAgMTFCMztCNDk0OzExMDMgMTE3MCAxMUIzOworQjQ5NTtCNDk1OzExMDMgMTE3MCAxMUI0O0I0OTU7MTEwMyAxMTcwIDExQjQ7CitCNDk2O0I0OTY7MTEwMyAxMTcwIDExQjU7QjQ5NjsxMTAzIDExNzAgMTFCNTsKK0I0OTc7QjQ5NzsxMTAzIDExNzAgMTFCNjtCNDk3OzExMDMgMTE3MCAxMUI2OworQjQ5ODtCNDk4OzExMDMgMTE3MCAxMUI3O0I0OTg7MTEwMyAxMTcwIDExQjc7CitCNDk5O0I0OTk7MTEwMyAxMTcwIDExQjg7QjQ5OTsxMTAzIDExNzAgMTFCODsKK0I0OUE7QjQ5QTsxMTAzIDExNzAgMTFCOTtCNDlBOzExMDMgMTE3MCAxMUI5OworQjQ5QjtCNDlCOzExMDMgMTE3MCAxMUJBO0I0OUI7MTEwMyAxMTcwIDExQkE7CitCNDlDO0I0OUM7MTEwMyAxMTcwIDExQkI7QjQ5QzsxMTAzIDExNzAgMTFCQjsKK0I0OUQ7QjQ5RDsxMTAzIDExNzAgMTFCQztCNDlEOzExMDMgMTE3MCAxMUJDOworQjQ5RTtCNDlFOzExMDMgMTE3MCAxMUJEO0I0OUU7MTEwMyAxMTcwIDExQkQ7CitCNDlGO0I0OUY7MTEwMyAxMTcwIDExQkU7QjQ5RjsxMTAzIDExNzAgMTFCRTsKK0I0QTA7QjRBMDsxMTAzIDExNzAgMTFCRjtCNEEwOzExMDMgMTE3MCAxMUJGOworQjRBMTtCNEExOzExMDMgMTE3MCAxMUMwO0I0QTE7MTEwMyAxMTcwIDExQzA7CitCNEEyO0I0QTI7MTEwMyAxMTcwIDExQzE7QjRBMjsxMTAzIDExNzAgMTFDMTsKK0I0QTM7QjRBMzsxMTAzIDExNzAgMTFDMjtCNEEzOzExMDMgMTE3MCAxMUMyOworQjRBNDtCNEE0OzExMDMgMTE3MTtCNEE0OzExMDMgMTE3MTsKK0I0QTU7QjRBNTsxMTAzIDExNzEgMTFBODtCNEE1OzExMDMgMTE3MSAxMUE4OworQjRBNjtCNEE2OzExMDMgMTE3MSAxMUE5O0I0QTY7MTEwMyAxMTcxIDExQTk7CitCNEE3O0I0QTc7MTEwMyAxMTcxIDExQUE7QjRBNzsxMTAzIDExNzEgMTFBQTsKK0I0QTg7QjRBODsxMTAzIDExNzEgMTFBQjtCNEE4OzExMDMgMTE3MSAxMUFCOworQjRBOTtCNEE5OzExMDMgMTE3MSAxMUFDO0I0QTk7MTEwMyAxMTcxIDExQUM7CitCNEFBO0I0QUE7MTEwMyAxMTcxIDExQUQ7QjRBQTsxMTAzIDExNzEgMTFBRDsKK0I0QUI7QjRBQjsxMTAzIDExNzEgMTFBRTtCNEFCOzExMDMgMTE3MSAxMUFFOworQjRBQztCNEFDOzExMDMgMTE3MSAxMUFGO0I0QUM7MTEwMyAxMTcxIDExQUY7CitCNEFEO0I0QUQ7MTEwMyAxMTcxIDExQjA7QjRBRDsxMTAzIDExNzEgMTFCMDsKK0I0QUU7QjRBRTsxMTAzIDExNzEgMTFCMTtCNEFFOzExMDMgMTE3MSAxMUIxOworQjRBRjtCNEFGOzExMDMgMTE3MSAxMUIyO0I0QUY7MTEwMyAxMTcxIDExQjI7CitCNEIwO0I0QjA7MTEwMyAxMTcxIDExQjM7QjRCMDsxMTAzIDExNzEgMTFCMzsKK0I0QjE7QjRCMTsxMTAzIDExNzEgMTFCNDtCNEIxOzExMDMgMTE3MSAxMUI0OworQjRCMjtCNEIyOzExMDMgMTE3MSAxMUI1O0I0QjI7MTEwMyAxMTcxIDExQjU7CitCNEIzO0I0QjM7MTEwMyAxMTcxIDExQjY7QjRCMzsxMTAzIDExNzEgMTFCNjsKK0I0QjQ7QjRCNDsxMTAzIDExNzEgMTFCNztCNEI0OzExMDMgMTE3MSAxMUI3OworQjRCNTtCNEI1OzExMDMgMTE3MSAxMUI4O0I0QjU7MTEwMyAxMTcxIDExQjg7CitCNEI2O0I0QjY7MTEwMyAxMTcxIDExQjk7QjRCNjsxMTAzIDExNzEgMTFCOTsKK0I0Qjc7QjRCNzsxMTAzIDExNzEgMTFCQTtCNEI3OzExMDMgMTE3MSAxMUJBOworQjRCODtCNEI4OzExMDMgMTE3MSAxMUJCO0I0Qjg7MTEwMyAxMTcxIDExQkI7CitCNEI5O0I0Qjk7MTEwMyAxMTcxIDExQkM7QjRCOTsxMTAzIDExNzEgMTFCQzsKK0I0QkE7QjRCQTsxMTAzIDExNzEgMTFCRDtCNEJBOzExMDMgMTE3MSAxMUJEOworQjRCQjtCNEJCOzExMDMgMTE3MSAxMUJFO0I0QkI7MTEwMyAxMTcxIDExQkU7CitCNEJDO0I0QkM7MTEwMyAxMTcxIDExQkY7QjRCQzsxMTAzIDExNzEgMTFCRjsKK0I0QkQ7QjRCRDsxMTAzIDExNzEgMTFDMDtCNEJEOzExMDMgMTE3MSAxMUMwOworQjRCRTtCNEJFOzExMDMgMTE3MSAxMUMxO0I0QkU7MTEwMyAxMTcxIDExQzE7CitCNEJGO0I0QkY7MTEwMyAxMTcxIDExQzI7QjRCRjsxMTAzIDExNzEgMTFDMjsKK0I0QzA7QjRDMDsxMTAzIDExNzI7QjRDMDsxMTAzIDExNzI7CitCNEMxO0I0QzE7MTEwMyAxMTcyIDExQTg7QjRDMTsxMTAzIDExNzIgMTFBODsKK0I0QzI7QjRDMjsxMTAzIDExNzIgMTFBOTtCNEMyOzExMDMgMTE3MiAxMUE5OworQjRDMztCNEMzOzExMDMgMTE3MiAxMUFBO0I0QzM7MTEwMyAxMTcyIDExQUE7CitCNEM0O0I0QzQ7MTEwMyAxMTcyIDExQUI7QjRDNDsxMTAzIDExNzIgMTFBQjsKK0I0QzU7QjRDNTsxMTAzIDExNzIgMTFBQztCNEM1OzExMDMgMTE3MiAxMUFDOworQjRDNjtCNEM2OzExMDMgMTE3MiAxMUFEO0I0QzY7MTEwMyAxMTcyIDExQUQ7CitCNEM3O0I0Qzc7MTEwMyAxMTcyIDExQUU7QjRDNzsxMTAzIDExNzIgMTFBRTsKK0I0Qzg7QjRDODsxMTAzIDExNzIgMTFBRjtCNEM4OzExMDMgMTE3MiAxMUFGOworQjRDOTtCNEM5OzExMDMgMTE3MiAxMUIwO0I0Qzk7MTEwMyAxMTcyIDExQjA7CitCNENBO0I0Q0E7MTEwMyAxMTcyIDExQjE7QjRDQTsxMTAzIDExNzIgMTFCMTsKK0I0Q0I7QjRDQjsxMTAzIDExNzIgMTFCMjtCNENCOzExMDMgMTE3MiAxMUIyOworQjRDQztCNENDOzExMDMgMTE3MiAxMUIzO0I0Q0M7MTEwMyAxMTcyIDExQjM7CitCNENEO0I0Q0Q7MTEwMyAxMTcyIDExQjQ7QjRDRDsxMTAzIDExNzIgMTFCNDsKK0I0Q0U7QjRDRTsxMTAzIDExNzIgMTFCNTtCNENFOzExMDMgMTE3MiAxMUI1OworQjRDRjtCNENGOzExMDMgMTE3MiAxMUI2O0I0Q0Y7MTEwMyAxMTcyIDExQjY7CitCNEQwO0I0RDA7MTEwMyAxMTcyIDExQjc7QjREMDsxMTAzIDExNzIgMTFCNzsKK0I0RDE7QjREMTsxMTAzIDExNzIgMTFCODtCNEQxOzExMDMgMTE3MiAxMUI4OworQjREMjtCNEQyOzExMDMgMTE3MiAxMUI5O0I0RDI7MTEwMyAxMTcyIDExQjk7CitCNEQzO0I0RDM7MTEwMyAxMTcyIDExQkE7QjREMzsxMTAzIDExNzIgMTFCQTsKK0I0RDQ7QjRENDsxMTAzIDExNzIgMTFCQjtCNEQ0OzExMDMgMTE3MiAxMUJCOworQjRENTtCNEQ1OzExMDMgMTE3MiAxMUJDO0I0RDU7MTEwMyAxMTcyIDExQkM7CitCNEQ2O0I0RDY7MTEwMyAxMTcyIDExQkQ7QjRENjsxMTAzIDExNzIgMTFCRDsKK0I0RDc7QjRENzsxMTAzIDExNzIgMTFCRTtCNEQ3OzExMDMgMTE3MiAxMUJFOworQjREODtCNEQ4OzExMDMgMTE3MiAxMUJGO0I0RDg7MTEwMyAxMTcyIDExQkY7CitCNEQ5O0I0RDk7MTEwMyAxMTcyIDExQzA7QjREOTsxMTAzIDExNzIgMTFDMDsKK0I0REE7QjREQTsxMTAzIDExNzIgMTFDMTtCNERBOzExMDMgMTE3MiAxMUMxOworQjREQjtCNERCOzExMDMgMTE3MiAxMUMyO0I0REI7MTEwMyAxMTcyIDExQzI7CitCNERDO0I0REM7MTEwMyAxMTczO0I0REM7MTEwMyAxMTczOworQjRERDtCNEREOzExMDMgMTE3MyAxMUE4O0I0REQ7MTEwMyAxMTczIDExQTg7CitCNERFO0I0REU7MTEwMyAxMTczIDExQTk7QjRERTsxMTAzIDExNzMgMTFBOTsKK0I0REY7QjRERjsxMTAzIDExNzMgMTFBQTtCNERGOzExMDMgMTE3MyAxMUFBOworQjRFMDtCNEUwOzExMDMgMTE3MyAxMUFCO0I0RTA7MTEwMyAxMTczIDExQUI7CitCNEUxO0I0RTE7MTEwMyAxMTczIDExQUM7QjRFMTsxMTAzIDExNzMgMTFBQzsKK0I0RTI7QjRFMjsxMTAzIDExNzMgMTFBRDtCNEUyOzExMDMgMTE3MyAxMUFEOworQjRFMztCNEUzOzExMDMgMTE3MyAxMUFFO0I0RTM7MTEwMyAxMTczIDExQUU7CitCNEU0O0I0RTQ7MTEwMyAxMTczIDExQUY7QjRFNDsxMTAzIDExNzMgMTFBRjsKK0I0RTU7QjRFNTsxMTAzIDExNzMgMTFCMDtCNEU1OzExMDMgMTE3MyAxMUIwOworQjRFNjtCNEU2OzExMDMgMTE3MyAxMUIxO0I0RTY7MTEwMyAxMTczIDExQjE7CitCNEU3O0I0RTc7MTEwMyAxMTczIDExQjI7QjRFNzsxMTAzIDExNzMgMTFCMjsKK0I0RTg7QjRFODsxMTAzIDExNzMgMTFCMztCNEU4OzExMDMgMTE3MyAxMUIzOworQjRFOTtCNEU5OzExMDMgMTE3MyAxMUI0O0I0RTk7MTEwMyAxMTczIDExQjQ7CitCNEVBO0I0RUE7MTEwMyAxMTczIDExQjU7QjRFQTsxMTAzIDExNzMgMTFCNTsKK0I0RUI7QjRFQjsxMTAzIDExNzMgMTFCNjtCNEVCOzExMDMgMTE3MyAxMUI2OworQjRFQztCNEVDOzExMDMgMTE3MyAxMUI3O0I0RUM7MTEwMyAxMTczIDExQjc7CitCNEVEO0I0RUQ7MTEwMyAxMTczIDExQjg7QjRFRDsxMTAzIDExNzMgMTFCODsKK0I0RUU7QjRFRTsxMTAzIDExNzMgMTFCOTtCNEVFOzExMDMgMTE3MyAxMUI5OworQjRFRjtCNEVGOzExMDMgMTE3MyAxMUJBO0I0RUY7MTEwMyAxMTczIDExQkE7CitCNEYwO0I0RjA7MTEwMyAxMTczIDExQkI7QjRGMDsxMTAzIDExNzMgMTFCQjsKK0I0RjE7QjRGMTsxMTAzIDExNzMgMTFCQztCNEYxOzExMDMgMTE3MyAxMUJDOworQjRGMjtCNEYyOzExMDMgMTE3MyAxMUJEO0I0RjI7MTEwMyAxMTczIDExQkQ7CitCNEYzO0I0RjM7MTEwMyAxMTczIDExQkU7QjRGMzsxMTAzIDExNzMgMTFCRTsKK0I0RjQ7QjRGNDsxMTAzIDExNzMgMTFCRjtCNEY0OzExMDMgMTE3MyAxMUJGOworQjRGNTtCNEY1OzExMDMgMTE3MyAxMUMwO0I0RjU7MTEwMyAxMTczIDExQzA7CitCNEY2O0I0RjY7MTEwMyAxMTczIDExQzE7QjRGNjsxMTAzIDExNzMgMTFDMTsKK0I0Rjc7QjRGNzsxMTAzIDExNzMgMTFDMjtCNEY3OzExMDMgMTE3MyAxMUMyOworQjRGODtCNEY4OzExMDMgMTE3NDtCNEY4OzExMDMgMTE3NDsKK0I0Rjk7QjRGOTsxMTAzIDExNzQgMTFBODtCNEY5OzExMDMgMTE3NCAxMUE4OworQjRGQTtCNEZBOzExMDMgMTE3NCAxMUE5O0I0RkE7MTEwMyAxMTc0IDExQTk7CitCNEZCO0I0RkI7MTEwMyAxMTc0IDExQUE7QjRGQjsxMTAzIDExNzQgMTFBQTsKK0I0RkM7QjRGQzsxMTAzIDExNzQgMTFBQjtCNEZDOzExMDMgMTE3NCAxMUFCOworQjRGRDtCNEZEOzExMDMgMTE3NCAxMUFDO0I0RkQ7MTEwMyAxMTc0IDExQUM7CitCNEZFO0I0RkU7MTEwMyAxMTc0IDExQUQ7QjRGRTsxMTAzIDExNzQgMTFBRDsKK0I0RkY7QjRGRjsxMTAzIDExNzQgMTFBRTtCNEZGOzExMDMgMTE3NCAxMUFFOworQjUwMDtCNTAwOzExMDMgMTE3NCAxMUFGO0I1MDA7MTEwMyAxMTc0IDExQUY7CitCNTAxO0I1MDE7MTEwMyAxMTc0IDExQjA7QjUwMTsxMTAzIDExNzQgMTFCMDsKK0I1MDI7QjUwMjsxMTAzIDExNzQgMTFCMTtCNTAyOzExMDMgMTE3NCAxMUIxOworQjUwMztCNTAzOzExMDMgMTE3NCAxMUIyO0I1MDM7MTEwMyAxMTc0IDExQjI7CitCNTA0O0I1MDQ7MTEwMyAxMTc0IDExQjM7QjUwNDsxMTAzIDExNzQgMTFCMzsKK0I1MDU7QjUwNTsxMTAzIDExNzQgMTFCNDtCNTA1OzExMDMgMTE3NCAxMUI0OworQjUwNjtCNTA2OzExMDMgMTE3NCAxMUI1O0I1MDY7MTEwMyAxMTc0IDExQjU7CitCNTA3O0I1MDc7MTEwMyAxMTc0IDExQjY7QjUwNzsxMTAzIDExNzQgMTFCNjsKK0I1MDg7QjUwODsxMTAzIDExNzQgMTFCNztCNTA4OzExMDMgMTE3NCAxMUI3OworQjUwOTtCNTA5OzExMDMgMTE3NCAxMUI4O0I1MDk7MTEwMyAxMTc0IDExQjg7CitCNTBBO0I1MEE7MTEwMyAxMTc0IDExQjk7QjUwQTsxMTAzIDExNzQgMTFCOTsKK0I1MEI7QjUwQjsxMTAzIDExNzQgMTFCQTtCNTBCOzExMDMgMTE3NCAxMUJBOworQjUwQztCNTBDOzExMDMgMTE3NCAxMUJCO0I1MEM7MTEwMyAxMTc0IDExQkI7CitCNTBEO0I1MEQ7MTEwMyAxMTc0IDExQkM7QjUwRDsxMTAzIDExNzQgMTFCQzsKK0I1MEU7QjUwRTsxMTAzIDExNzQgMTFCRDtCNTBFOzExMDMgMTE3NCAxMUJEOworQjUwRjtCNTBGOzExMDMgMTE3NCAxMUJFO0I1MEY7MTEwMyAxMTc0IDExQkU7CitCNTEwO0I1MTA7MTEwMyAxMTc0IDExQkY7QjUxMDsxMTAzIDExNzQgMTFCRjsKK0I1MTE7QjUxMTsxMTAzIDExNzQgMTFDMDtCNTExOzExMDMgMTE3NCAxMUMwOworQjUxMjtCNTEyOzExMDMgMTE3NCAxMUMxO0I1MTI7MTEwMyAxMTc0IDExQzE7CitCNTEzO0I1MTM7MTEwMyAxMTc0IDExQzI7QjUxMzsxMTAzIDExNzQgMTFDMjsKK0I1MTQ7QjUxNDsxMTAzIDExNzU7QjUxNDsxMTAzIDExNzU7CitCNTE1O0I1MTU7MTEwMyAxMTc1IDExQTg7QjUxNTsxMTAzIDExNzUgMTFBODsKK0I1MTY7QjUxNjsxMTAzIDExNzUgMTFBOTtCNTE2OzExMDMgMTE3NSAxMUE5OworQjUxNztCNTE3OzExMDMgMTE3NSAxMUFBO0I1MTc7MTEwMyAxMTc1IDExQUE7CitCNTE4O0I1MTg7MTEwMyAxMTc1IDExQUI7QjUxODsxMTAzIDExNzUgMTFBQjsKK0I1MTk7QjUxOTsxMTAzIDExNzUgMTFBQztCNTE5OzExMDMgMTE3NSAxMUFDOworQjUxQTtCNTFBOzExMDMgMTE3NSAxMUFEO0I1MUE7MTEwMyAxMTc1IDExQUQ7CitCNTFCO0I1MUI7MTEwMyAxMTc1IDExQUU7QjUxQjsxMTAzIDExNzUgMTFBRTsKK0I1MUM7QjUxQzsxMTAzIDExNzUgMTFBRjtCNTFDOzExMDMgMTE3NSAxMUFGOworQjUxRDtCNTFEOzExMDMgMTE3NSAxMUIwO0I1MUQ7MTEwMyAxMTc1IDExQjA7CitCNTFFO0I1MUU7MTEwMyAxMTc1IDExQjE7QjUxRTsxMTAzIDExNzUgMTFCMTsKK0I1MUY7QjUxRjsxMTAzIDExNzUgMTFCMjtCNTFGOzExMDMgMTE3NSAxMUIyOworQjUyMDtCNTIwOzExMDMgMTE3NSAxMUIzO0I1MjA7MTEwMyAxMTc1IDExQjM7CitCNTIxO0I1MjE7MTEwMyAxMTc1IDExQjQ7QjUyMTsxMTAzIDExNzUgMTFCNDsKK0I1MjI7QjUyMjsxMTAzIDExNzUgMTFCNTtCNTIyOzExMDMgMTE3NSAxMUI1OworQjUyMztCNTIzOzExMDMgMTE3NSAxMUI2O0I1MjM7MTEwMyAxMTc1IDExQjY7CitCNTI0O0I1MjQ7MTEwMyAxMTc1IDExQjc7QjUyNDsxMTAzIDExNzUgMTFCNzsKK0I1MjU7QjUyNTsxMTAzIDExNzUgMTFCODtCNTI1OzExMDMgMTE3NSAxMUI4OworQjUyNjtCNTI2OzExMDMgMTE3NSAxMUI5O0I1MjY7MTEwMyAxMTc1IDExQjk7CitCNTI3O0I1Mjc7MTEwMyAxMTc1IDExQkE7QjUyNzsxMTAzIDExNzUgMTFCQTsKK0I1Mjg7QjUyODsxMTAzIDExNzUgMTFCQjtCNTI4OzExMDMgMTE3NSAxMUJCOworQjUyOTtCNTI5OzExMDMgMTE3NSAxMUJDO0I1Mjk7MTEwMyAxMTc1IDExQkM7CitCNTJBO0I1MkE7MTEwMyAxMTc1IDExQkQ7QjUyQTsxMTAzIDExNzUgMTFCRDsKK0I1MkI7QjUyQjsxMTAzIDExNzUgMTFCRTtCNTJCOzExMDMgMTE3NSAxMUJFOworQjUyQztCNTJDOzExMDMgMTE3NSAxMUJGO0I1MkM7MTEwMyAxMTc1IDExQkY7CitCNTJEO0I1MkQ7MTEwMyAxMTc1IDExQzA7QjUyRDsxMTAzIDExNzUgMTFDMDsKK0I1MkU7QjUyRTsxMTAzIDExNzUgMTFDMTtCNTJFOzExMDMgMTE3NSAxMUMxOworQjUyRjtCNTJGOzExMDMgMTE3NSAxMUMyO0I1MkY7MTEwMyAxMTc1IDExQzI7CitCNTMwO0I1MzA7MTEwNCAxMTYxO0I1MzA7MTEwNCAxMTYxOworQjUzMTtCNTMxOzExMDQgMTE2MSAxMUE4O0I1MzE7MTEwNCAxMTYxIDExQTg7CitCNTMyO0I1MzI7MTEwNCAxMTYxIDExQTk7QjUzMjsxMTA0IDExNjEgMTFBOTsKK0I1MzM7QjUzMzsxMTA0IDExNjEgMTFBQTtCNTMzOzExMDQgMTE2MSAxMUFBOworQjUzNDtCNTM0OzExMDQgMTE2MSAxMUFCO0I1MzQ7MTEwNCAxMTYxIDExQUI7CitCNTM1O0I1MzU7MTEwNCAxMTYxIDExQUM7QjUzNTsxMTA0IDExNjEgMTFBQzsKK0I1MzY7QjUzNjsxMTA0IDExNjEgMTFBRDtCNTM2OzExMDQgMTE2MSAxMUFEOworQjUzNztCNTM3OzExMDQgMTE2MSAxMUFFO0I1Mzc7MTEwNCAxMTYxIDExQUU7CitCNTM4O0I1Mzg7MTEwNCAxMTYxIDExQUY7QjUzODsxMTA0IDExNjEgMTFBRjsKK0I1Mzk7QjUzOTsxMTA0IDExNjEgMTFCMDtCNTM5OzExMDQgMTE2MSAxMUIwOworQjUzQTtCNTNBOzExMDQgMTE2MSAxMUIxO0I1M0E7MTEwNCAxMTYxIDExQjE7CitCNTNCO0I1M0I7MTEwNCAxMTYxIDExQjI7QjUzQjsxMTA0IDExNjEgMTFCMjsKK0I1M0M7QjUzQzsxMTA0IDExNjEgMTFCMztCNTNDOzExMDQgMTE2MSAxMUIzOworQjUzRDtCNTNEOzExMDQgMTE2MSAxMUI0O0I1M0Q7MTEwNCAxMTYxIDExQjQ7CitCNTNFO0I1M0U7MTEwNCAxMTYxIDExQjU7QjUzRTsxMTA0IDExNjEgMTFCNTsKK0I1M0Y7QjUzRjsxMTA0IDExNjEgMTFCNjtCNTNGOzExMDQgMTE2MSAxMUI2OworQjU0MDtCNTQwOzExMDQgMTE2MSAxMUI3O0I1NDA7MTEwNCAxMTYxIDExQjc7CitCNTQxO0I1NDE7MTEwNCAxMTYxIDExQjg7QjU0MTsxMTA0IDExNjEgMTFCODsKK0I1NDI7QjU0MjsxMTA0IDExNjEgMTFCOTtCNTQyOzExMDQgMTE2MSAxMUI5OworQjU0MztCNTQzOzExMDQgMTE2MSAxMUJBO0I1NDM7MTEwNCAxMTYxIDExQkE7CitCNTQ0O0I1NDQ7MTEwNCAxMTYxIDExQkI7QjU0NDsxMTA0IDExNjEgMTFCQjsKK0I1NDU7QjU0NTsxMTA0IDExNjEgMTFCQztCNTQ1OzExMDQgMTE2MSAxMUJDOworQjU0NjtCNTQ2OzExMDQgMTE2MSAxMUJEO0I1NDY7MTEwNCAxMTYxIDExQkQ7CitCNTQ3O0I1NDc7MTEwNCAxMTYxIDExQkU7QjU0NzsxMTA0IDExNjEgMTFCRTsKK0I1NDg7QjU0ODsxMTA0IDExNjEgMTFCRjtCNTQ4OzExMDQgMTE2MSAxMUJGOworQjU0OTtCNTQ5OzExMDQgMTE2MSAxMUMwO0I1NDk7MTEwNCAxMTYxIDExQzA7CitCNTRBO0I1NEE7MTEwNCAxMTYxIDExQzE7QjU0QTsxMTA0IDExNjEgMTFDMTsKK0I1NEI7QjU0QjsxMTA0IDExNjEgMTFDMjtCNTRCOzExMDQgMTE2MSAxMUMyOworQjU0QztCNTRDOzExMDQgMTE2MjtCNTRDOzExMDQgMTE2MjsKK0I1NEQ7QjU0RDsxMTA0IDExNjIgMTFBODtCNTREOzExMDQgMTE2MiAxMUE4OworQjU0RTtCNTRFOzExMDQgMTE2MiAxMUE5O0I1NEU7MTEwNCAxMTYyIDExQTk7CitCNTRGO0I1NEY7MTEwNCAxMTYyIDExQUE7QjU0RjsxMTA0IDExNjIgMTFBQTsKK0I1NTA7QjU1MDsxMTA0IDExNjIgMTFBQjtCNTUwOzExMDQgMTE2MiAxMUFCOworQjU1MTtCNTUxOzExMDQgMTE2MiAxMUFDO0I1NTE7MTEwNCAxMTYyIDExQUM7CitCNTUyO0I1NTI7MTEwNCAxMTYyIDExQUQ7QjU1MjsxMTA0IDExNjIgMTFBRDsKK0I1NTM7QjU1MzsxMTA0IDExNjIgMTFBRTtCNTUzOzExMDQgMTE2MiAxMUFFOworQjU1NDtCNTU0OzExMDQgMTE2MiAxMUFGO0I1NTQ7MTEwNCAxMTYyIDExQUY7CitCNTU1O0I1NTU7MTEwNCAxMTYyIDExQjA7QjU1NTsxMTA0IDExNjIgMTFCMDsKK0I1NTY7QjU1NjsxMTA0IDExNjIgMTFCMTtCNTU2OzExMDQgMTE2MiAxMUIxOworQjU1NztCNTU3OzExMDQgMTE2MiAxMUIyO0I1NTc7MTEwNCAxMTYyIDExQjI7CitCNTU4O0I1NTg7MTEwNCAxMTYyIDExQjM7QjU1ODsxMTA0IDExNjIgMTFCMzsKK0I1NTk7QjU1OTsxMTA0IDExNjIgMTFCNDtCNTU5OzExMDQgMTE2MiAxMUI0OworQjU1QTtCNTVBOzExMDQgMTE2MiAxMUI1O0I1NUE7MTEwNCAxMTYyIDExQjU7CitCNTVCO0I1NUI7MTEwNCAxMTYyIDExQjY7QjU1QjsxMTA0IDExNjIgMTFCNjsKK0I1NUM7QjU1QzsxMTA0IDExNjIgMTFCNztCNTVDOzExMDQgMTE2MiAxMUI3OworQjU1RDtCNTVEOzExMDQgMTE2MiAxMUI4O0I1NUQ7MTEwNCAxMTYyIDExQjg7CitCNTVFO0I1NUU7MTEwNCAxMTYyIDExQjk7QjU1RTsxMTA0IDExNjIgMTFCOTsKK0I1NUY7QjU1RjsxMTA0IDExNjIgMTFCQTtCNTVGOzExMDQgMTE2MiAxMUJBOworQjU2MDtCNTYwOzExMDQgMTE2MiAxMUJCO0I1NjA7MTEwNCAxMTYyIDExQkI7CitCNTYxO0I1NjE7MTEwNCAxMTYyIDExQkM7QjU2MTsxMTA0IDExNjIgMTFCQzsKK0I1NjI7QjU2MjsxMTA0IDExNjIgMTFCRDtCNTYyOzExMDQgMTE2MiAxMUJEOworQjU2MztCNTYzOzExMDQgMTE2MiAxMUJFO0I1NjM7MTEwNCAxMTYyIDExQkU7CitCNTY0O0I1NjQ7MTEwNCAxMTYyIDExQkY7QjU2NDsxMTA0IDExNjIgMTFCRjsKK0I1NjU7QjU2NTsxMTA0IDExNjIgMTFDMDtCNTY1OzExMDQgMTE2MiAxMUMwOworQjU2NjtCNTY2OzExMDQgMTE2MiAxMUMxO0I1NjY7MTEwNCAxMTYyIDExQzE7CitCNTY3O0I1Njc7MTEwNCAxMTYyIDExQzI7QjU2NzsxMTA0IDExNjIgMTFDMjsKK0I1Njg7QjU2ODsxMTA0IDExNjM7QjU2ODsxMTA0IDExNjM7CitCNTY5O0I1Njk7MTEwNCAxMTYzIDExQTg7QjU2OTsxMTA0IDExNjMgMTFBODsKK0I1NkE7QjU2QTsxMTA0IDExNjMgMTFBOTtCNTZBOzExMDQgMTE2MyAxMUE5OworQjU2QjtCNTZCOzExMDQgMTE2MyAxMUFBO0I1NkI7MTEwNCAxMTYzIDExQUE7CitCNTZDO0I1NkM7MTEwNCAxMTYzIDExQUI7QjU2QzsxMTA0IDExNjMgMTFBQjsKK0I1NkQ7QjU2RDsxMTA0IDExNjMgMTFBQztCNTZEOzExMDQgMTE2MyAxMUFDOworQjU2RTtCNTZFOzExMDQgMTE2MyAxMUFEO0I1NkU7MTEwNCAxMTYzIDExQUQ7CitCNTZGO0I1NkY7MTEwNCAxMTYzIDExQUU7QjU2RjsxMTA0IDExNjMgMTFBRTsKK0I1NzA7QjU3MDsxMTA0IDExNjMgMTFBRjtCNTcwOzExMDQgMTE2MyAxMUFGOworQjU3MTtCNTcxOzExMDQgMTE2MyAxMUIwO0I1NzE7MTEwNCAxMTYzIDExQjA7CitCNTcyO0I1NzI7MTEwNCAxMTYzIDExQjE7QjU3MjsxMTA0IDExNjMgMTFCMTsKK0I1NzM7QjU3MzsxMTA0IDExNjMgMTFCMjtCNTczOzExMDQgMTE2MyAxMUIyOworQjU3NDtCNTc0OzExMDQgMTE2MyAxMUIzO0I1NzQ7MTEwNCAxMTYzIDExQjM7CitCNTc1O0I1NzU7MTEwNCAxMTYzIDExQjQ7QjU3NTsxMTA0IDExNjMgMTFCNDsKK0I1NzY7QjU3NjsxMTA0IDExNjMgMTFCNTtCNTc2OzExMDQgMTE2MyAxMUI1OworQjU3NztCNTc3OzExMDQgMTE2MyAxMUI2O0I1Nzc7MTEwNCAxMTYzIDExQjY7CitCNTc4O0I1Nzg7MTEwNCAxMTYzIDExQjc7QjU3ODsxMTA0IDExNjMgMTFCNzsKK0I1Nzk7QjU3OTsxMTA0IDExNjMgMTFCODtCNTc5OzExMDQgMTE2MyAxMUI4OworQjU3QTtCNTdBOzExMDQgMTE2MyAxMUI5O0I1N0E7MTEwNCAxMTYzIDExQjk7CitCNTdCO0I1N0I7MTEwNCAxMTYzIDExQkE7QjU3QjsxMTA0IDExNjMgMTFCQTsKK0I1N0M7QjU3QzsxMTA0IDExNjMgMTFCQjtCNTdDOzExMDQgMTE2MyAxMUJCOworQjU3RDtCNTdEOzExMDQgMTE2MyAxMUJDO0I1N0Q7MTEwNCAxMTYzIDExQkM7CitCNTdFO0I1N0U7MTEwNCAxMTYzIDExQkQ7QjU3RTsxMTA0IDExNjMgMTFCRDsKK0I1N0Y7QjU3RjsxMTA0IDExNjMgMTFCRTtCNTdGOzExMDQgMTE2MyAxMUJFOworQjU4MDtCNTgwOzExMDQgMTE2MyAxMUJGO0I1ODA7MTEwNCAxMTYzIDExQkY7CitCNTgxO0I1ODE7MTEwNCAxMTYzIDExQzA7QjU4MTsxMTA0IDExNjMgMTFDMDsKK0I1ODI7QjU4MjsxMTA0IDExNjMgMTFDMTtCNTgyOzExMDQgMTE2MyAxMUMxOworQjU4MztCNTgzOzExMDQgMTE2MyAxMUMyO0I1ODM7MTEwNCAxMTYzIDExQzI7CitCNTg0O0I1ODQ7MTEwNCAxMTY0O0I1ODQ7MTEwNCAxMTY0OworQjU4NTtCNTg1OzExMDQgMTE2NCAxMUE4O0I1ODU7MTEwNCAxMTY0IDExQTg7CitCNTg2O0I1ODY7MTEwNCAxMTY0IDExQTk7QjU4NjsxMTA0IDExNjQgMTFBOTsKK0I1ODc7QjU4NzsxMTA0IDExNjQgMTFBQTtCNTg3OzExMDQgMTE2NCAxMUFBOworQjU4ODtCNTg4OzExMDQgMTE2NCAxMUFCO0I1ODg7MTEwNCAxMTY0IDExQUI7CitCNTg5O0I1ODk7MTEwNCAxMTY0IDExQUM7QjU4OTsxMTA0IDExNjQgMTFBQzsKK0I1OEE7QjU4QTsxMTA0IDExNjQgMTFBRDtCNThBOzExMDQgMTE2NCAxMUFEOworQjU4QjtCNThCOzExMDQgMTE2NCAxMUFFO0I1OEI7MTEwNCAxMTY0IDExQUU7CitCNThDO0I1OEM7MTEwNCAxMTY0IDExQUY7QjU4QzsxMTA0IDExNjQgMTFBRjsKK0I1OEQ7QjU4RDsxMTA0IDExNjQgMTFCMDtCNThEOzExMDQgMTE2NCAxMUIwOworQjU4RTtCNThFOzExMDQgMTE2NCAxMUIxO0I1OEU7MTEwNCAxMTY0IDExQjE7CitCNThGO0I1OEY7MTEwNCAxMTY0IDExQjI7QjU4RjsxMTA0IDExNjQgMTFCMjsKK0I1OTA7QjU5MDsxMTA0IDExNjQgMTFCMztCNTkwOzExMDQgMTE2NCAxMUIzOworQjU5MTtCNTkxOzExMDQgMTE2NCAxMUI0O0I1OTE7MTEwNCAxMTY0IDExQjQ7CitCNTkyO0I1OTI7MTEwNCAxMTY0IDExQjU7QjU5MjsxMTA0IDExNjQgMTFCNTsKK0I1OTM7QjU5MzsxMTA0IDExNjQgMTFCNjtCNTkzOzExMDQgMTE2NCAxMUI2OworQjU5NDtCNTk0OzExMDQgMTE2NCAxMUI3O0I1OTQ7MTEwNCAxMTY0IDExQjc7CitCNTk1O0I1OTU7MTEwNCAxMTY0IDExQjg7QjU5NTsxMTA0IDExNjQgMTFCODsKK0I1OTY7QjU5NjsxMTA0IDExNjQgMTFCOTtCNTk2OzExMDQgMTE2NCAxMUI5OworQjU5NztCNTk3OzExMDQgMTE2NCAxMUJBO0I1OTc7MTEwNCAxMTY0IDExQkE7CitCNTk4O0I1OTg7MTEwNCAxMTY0IDExQkI7QjU5ODsxMTA0IDExNjQgMTFCQjsKK0I1OTk7QjU5OTsxMTA0IDExNjQgMTFCQztCNTk5OzExMDQgMTE2NCAxMUJDOworQjU5QTtCNTlBOzExMDQgMTE2NCAxMUJEO0I1OUE7MTEwNCAxMTY0IDExQkQ7CitCNTlCO0I1OUI7MTEwNCAxMTY0IDExQkU7QjU5QjsxMTA0IDExNjQgMTFCRTsKK0I1OUM7QjU5QzsxMTA0IDExNjQgMTFCRjtCNTlDOzExMDQgMTE2NCAxMUJGOworQjU5RDtCNTlEOzExMDQgMTE2NCAxMUMwO0I1OUQ7MTEwNCAxMTY0IDExQzA7CitCNTlFO0I1OUU7MTEwNCAxMTY0IDExQzE7QjU5RTsxMTA0IDExNjQgMTFDMTsKK0I1OUY7QjU5RjsxMTA0IDExNjQgMTFDMjtCNTlGOzExMDQgMTE2NCAxMUMyOworQjVBMDtCNUEwOzExMDQgMTE2NTtCNUEwOzExMDQgMTE2NTsKK0I1QTE7QjVBMTsxMTA0IDExNjUgMTFBODtCNUExOzExMDQgMTE2NSAxMUE4OworQjVBMjtCNUEyOzExMDQgMTE2NSAxMUE5O0I1QTI7MTEwNCAxMTY1IDExQTk7CitCNUEzO0I1QTM7MTEwNCAxMTY1IDExQUE7QjVBMzsxMTA0IDExNjUgMTFBQTsKK0I1QTQ7QjVBNDsxMTA0IDExNjUgMTFBQjtCNUE0OzExMDQgMTE2NSAxMUFCOworQjVBNTtCNUE1OzExMDQgMTE2NSAxMUFDO0I1QTU7MTEwNCAxMTY1IDExQUM7CitCNUE2O0I1QTY7MTEwNCAxMTY1IDExQUQ7QjVBNjsxMTA0IDExNjUgMTFBRDsKK0I1QTc7QjVBNzsxMTA0IDExNjUgMTFBRTtCNUE3OzExMDQgMTE2NSAxMUFFOworQjVBODtCNUE4OzExMDQgMTE2NSAxMUFGO0I1QTg7MTEwNCAxMTY1IDExQUY7CitCNUE5O0I1QTk7MTEwNCAxMTY1IDExQjA7QjVBOTsxMTA0IDExNjUgMTFCMDsKK0I1QUE7QjVBQTsxMTA0IDExNjUgMTFCMTtCNUFBOzExMDQgMTE2NSAxMUIxOworQjVBQjtCNUFCOzExMDQgMTE2NSAxMUIyO0I1QUI7MTEwNCAxMTY1IDExQjI7CitCNUFDO0I1QUM7MTEwNCAxMTY1IDExQjM7QjVBQzsxMTA0IDExNjUgMTFCMzsKK0I1QUQ7QjVBRDsxMTA0IDExNjUgMTFCNDtCNUFEOzExMDQgMTE2NSAxMUI0OworQjVBRTtCNUFFOzExMDQgMTE2NSAxMUI1O0I1QUU7MTEwNCAxMTY1IDExQjU7CitCNUFGO0I1QUY7MTEwNCAxMTY1IDExQjY7QjVBRjsxMTA0IDExNjUgMTFCNjsKK0I1QjA7QjVCMDsxMTA0IDExNjUgMTFCNztCNUIwOzExMDQgMTE2NSAxMUI3OworQjVCMTtCNUIxOzExMDQgMTE2NSAxMUI4O0I1QjE7MTEwNCAxMTY1IDExQjg7CitCNUIyO0I1QjI7MTEwNCAxMTY1IDExQjk7QjVCMjsxMTA0IDExNjUgMTFCOTsKK0I1QjM7QjVCMzsxMTA0IDExNjUgMTFCQTtCNUIzOzExMDQgMTE2NSAxMUJBOworQjVCNDtCNUI0OzExMDQgMTE2NSAxMUJCO0I1QjQ7MTEwNCAxMTY1IDExQkI7CitCNUI1O0I1QjU7MTEwNCAxMTY1IDExQkM7QjVCNTsxMTA0IDExNjUgMTFCQzsKK0I1QjY7QjVCNjsxMTA0IDExNjUgMTFCRDtCNUI2OzExMDQgMTE2NSAxMUJEOworQjVCNztCNUI3OzExMDQgMTE2NSAxMUJFO0I1Qjc7MTEwNCAxMTY1IDExQkU7CitCNUI4O0I1Qjg7MTEwNCAxMTY1IDExQkY7QjVCODsxMTA0IDExNjUgMTFCRjsKK0I1Qjk7QjVCOTsxMTA0IDExNjUgMTFDMDtCNUI5OzExMDQgMTE2NSAxMUMwOworQjVCQTtCNUJBOzExMDQgMTE2NSAxMUMxO0I1QkE7MTEwNCAxMTY1IDExQzE7CitCNUJCO0I1QkI7MTEwNCAxMTY1IDExQzI7QjVCQjsxMTA0IDExNjUgMTFDMjsKK0I1QkM7QjVCQzsxMTA0IDExNjY7QjVCQzsxMTA0IDExNjY7CitCNUJEO0I1QkQ7MTEwNCAxMTY2IDExQTg7QjVCRDsxMTA0IDExNjYgMTFBODsKK0I1QkU7QjVCRTsxMTA0IDExNjYgMTFBOTtCNUJFOzExMDQgMTE2NiAxMUE5OworQjVCRjtCNUJGOzExMDQgMTE2NiAxMUFBO0I1QkY7MTEwNCAxMTY2IDExQUE7CitCNUMwO0I1QzA7MTEwNCAxMTY2IDExQUI7QjVDMDsxMTA0IDExNjYgMTFBQjsKK0I1QzE7QjVDMTsxMTA0IDExNjYgMTFBQztCNUMxOzExMDQgMTE2NiAxMUFDOworQjVDMjtCNUMyOzExMDQgMTE2NiAxMUFEO0I1QzI7MTEwNCAxMTY2IDExQUQ7CitCNUMzO0I1QzM7MTEwNCAxMTY2IDExQUU7QjVDMzsxMTA0IDExNjYgMTFBRTsKK0I1QzQ7QjVDNDsxMTA0IDExNjYgMTFBRjtCNUM0OzExMDQgMTE2NiAxMUFGOworQjVDNTtCNUM1OzExMDQgMTE2NiAxMUIwO0I1QzU7MTEwNCAxMTY2IDExQjA7CitCNUM2O0I1QzY7MTEwNCAxMTY2IDExQjE7QjVDNjsxMTA0IDExNjYgMTFCMTsKK0I1Qzc7QjVDNzsxMTA0IDExNjYgMTFCMjtCNUM3OzExMDQgMTE2NiAxMUIyOworQjVDODtCNUM4OzExMDQgMTE2NiAxMUIzO0I1Qzg7MTEwNCAxMTY2IDExQjM7CitCNUM5O0I1Qzk7MTEwNCAxMTY2IDExQjQ7QjVDOTsxMTA0IDExNjYgMTFCNDsKK0I1Q0E7QjVDQTsxMTA0IDExNjYgMTFCNTtCNUNBOzExMDQgMTE2NiAxMUI1OworQjVDQjtCNUNCOzExMDQgMTE2NiAxMUI2O0I1Q0I7MTEwNCAxMTY2IDExQjY7CitCNUNDO0I1Q0M7MTEwNCAxMTY2IDExQjc7QjVDQzsxMTA0IDExNjYgMTFCNzsKK0I1Q0Q7QjVDRDsxMTA0IDExNjYgMTFCODtCNUNEOzExMDQgMTE2NiAxMUI4OworQjVDRTtCNUNFOzExMDQgMTE2NiAxMUI5O0I1Q0U7MTEwNCAxMTY2IDExQjk7CitCNUNGO0I1Q0Y7MTEwNCAxMTY2IDExQkE7QjVDRjsxMTA0IDExNjYgMTFCQTsKK0I1RDA7QjVEMDsxMTA0IDExNjYgMTFCQjtCNUQwOzExMDQgMTE2NiAxMUJCOworQjVEMTtCNUQxOzExMDQgMTE2NiAxMUJDO0I1RDE7MTEwNCAxMTY2IDExQkM7CitCNUQyO0I1RDI7MTEwNCAxMTY2IDExQkQ7QjVEMjsxMTA0IDExNjYgMTFCRDsKK0I1RDM7QjVEMzsxMTA0IDExNjYgMTFCRTtCNUQzOzExMDQgMTE2NiAxMUJFOworQjVENDtCNUQ0OzExMDQgMTE2NiAxMUJGO0I1RDQ7MTEwNCAxMTY2IDExQkY7CitCNUQ1O0I1RDU7MTEwNCAxMTY2IDExQzA7QjVENTsxMTA0IDExNjYgMTFDMDsKK0I1RDY7QjVENjsxMTA0IDExNjYgMTFDMTtCNUQ2OzExMDQgMTE2NiAxMUMxOworQjVENztCNUQ3OzExMDQgMTE2NiAxMUMyO0I1RDc7MTEwNCAxMTY2IDExQzI7CitCNUQ4O0I1RDg7MTEwNCAxMTY3O0I1RDg7MTEwNCAxMTY3OworQjVEOTtCNUQ5OzExMDQgMTE2NyAxMUE4O0I1RDk7MTEwNCAxMTY3IDExQTg7CitCNURBO0I1REE7MTEwNCAxMTY3IDExQTk7QjVEQTsxMTA0IDExNjcgMTFBOTsKK0I1REI7QjVEQjsxMTA0IDExNjcgMTFBQTtCNURCOzExMDQgMTE2NyAxMUFBOworQjVEQztCNURDOzExMDQgMTE2NyAxMUFCO0I1REM7MTEwNCAxMTY3IDExQUI7CitCNUREO0I1REQ7MTEwNCAxMTY3IDExQUM7QjVERDsxMTA0IDExNjcgMTFBQzsKK0I1REU7QjVERTsxMTA0IDExNjcgMTFBRDtCNURFOzExMDQgMTE2NyAxMUFEOworQjVERjtCNURGOzExMDQgMTE2NyAxMUFFO0I1REY7MTEwNCAxMTY3IDExQUU7CitCNUUwO0I1RTA7MTEwNCAxMTY3IDExQUY7QjVFMDsxMTA0IDExNjcgMTFBRjsKK0I1RTE7QjVFMTsxMTA0IDExNjcgMTFCMDtCNUUxOzExMDQgMTE2NyAxMUIwOworQjVFMjtCNUUyOzExMDQgMTE2NyAxMUIxO0I1RTI7MTEwNCAxMTY3IDExQjE7CitCNUUzO0I1RTM7MTEwNCAxMTY3IDExQjI7QjVFMzsxMTA0IDExNjcgMTFCMjsKK0I1RTQ7QjVFNDsxMTA0IDExNjcgMTFCMztCNUU0OzExMDQgMTE2NyAxMUIzOworQjVFNTtCNUU1OzExMDQgMTE2NyAxMUI0O0I1RTU7MTEwNCAxMTY3IDExQjQ7CitCNUU2O0I1RTY7MTEwNCAxMTY3IDExQjU7QjVFNjsxMTA0IDExNjcgMTFCNTsKK0I1RTc7QjVFNzsxMTA0IDExNjcgMTFCNjtCNUU3OzExMDQgMTE2NyAxMUI2OworQjVFODtCNUU4OzExMDQgMTE2NyAxMUI3O0I1RTg7MTEwNCAxMTY3IDExQjc7CitCNUU5O0I1RTk7MTEwNCAxMTY3IDExQjg7QjVFOTsxMTA0IDExNjcgMTFCODsKK0I1RUE7QjVFQTsxMTA0IDExNjcgMTFCOTtCNUVBOzExMDQgMTE2NyAxMUI5OworQjVFQjtCNUVCOzExMDQgMTE2NyAxMUJBO0I1RUI7MTEwNCAxMTY3IDExQkE7CitCNUVDO0I1RUM7MTEwNCAxMTY3IDExQkI7QjVFQzsxMTA0IDExNjcgMTFCQjsKK0I1RUQ7QjVFRDsxMTA0IDExNjcgMTFCQztCNUVEOzExMDQgMTE2NyAxMUJDOworQjVFRTtCNUVFOzExMDQgMTE2NyAxMUJEO0I1RUU7MTEwNCAxMTY3IDExQkQ7CitCNUVGO0I1RUY7MTEwNCAxMTY3IDExQkU7QjVFRjsxMTA0IDExNjcgMTFCRTsKK0I1RjA7QjVGMDsxMTA0IDExNjcgMTFCRjtCNUYwOzExMDQgMTE2NyAxMUJGOworQjVGMTtCNUYxOzExMDQgMTE2NyAxMUMwO0I1RjE7MTEwNCAxMTY3IDExQzA7CitCNUYyO0I1RjI7MTEwNCAxMTY3IDExQzE7QjVGMjsxMTA0IDExNjcgMTFDMTsKK0I1RjM7QjVGMzsxMTA0IDExNjcgMTFDMjtCNUYzOzExMDQgMTE2NyAxMUMyOworQjVGNDtCNUY0OzExMDQgMTE2ODtCNUY0OzExMDQgMTE2ODsKK0I1RjU7QjVGNTsxMTA0IDExNjggMTFBODtCNUY1OzExMDQgMTE2OCAxMUE4OworQjVGNjtCNUY2OzExMDQgMTE2OCAxMUE5O0I1RjY7MTEwNCAxMTY4IDExQTk7CitCNUY3O0I1Rjc7MTEwNCAxMTY4IDExQUE7QjVGNzsxMTA0IDExNjggMTFBQTsKK0I1Rjg7QjVGODsxMTA0IDExNjggMTFBQjtCNUY4OzExMDQgMTE2OCAxMUFCOworQjVGOTtCNUY5OzExMDQgMTE2OCAxMUFDO0I1Rjk7MTEwNCAxMTY4IDExQUM7CitCNUZBO0I1RkE7MTEwNCAxMTY4IDExQUQ7QjVGQTsxMTA0IDExNjggMTFBRDsKK0I1RkI7QjVGQjsxMTA0IDExNjggMTFBRTtCNUZCOzExMDQgMTE2OCAxMUFFOworQjVGQztCNUZDOzExMDQgMTE2OCAxMUFGO0I1RkM7MTEwNCAxMTY4IDExQUY7CitCNUZEO0I1RkQ7MTEwNCAxMTY4IDExQjA7QjVGRDsxMTA0IDExNjggMTFCMDsKK0I1RkU7QjVGRTsxMTA0IDExNjggMTFCMTtCNUZFOzExMDQgMTE2OCAxMUIxOworQjVGRjtCNUZGOzExMDQgMTE2OCAxMUIyO0I1RkY7MTEwNCAxMTY4IDExQjI7CitCNjAwO0I2MDA7MTEwNCAxMTY4IDExQjM7QjYwMDsxMTA0IDExNjggMTFCMzsKK0I2MDE7QjYwMTsxMTA0IDExNjggMTFCNDtCNjAxOzExMDQgMTE2OCAxMUI0OworQjYwMjtCNjAyOzExMDQgMTE2OCAxMUI1O0I2MDI7MTEwNCAxMTY4IDExQjU7CitCNjAzO0I2MDM7MTEwNCAxMTY4IDExQjY7QjYwMzsxMTA0IDExNjggMTFCNjsKK0I2MDQ7QjYwNDsxMTA0IDExNjggMTFCNztCNjA0OzExMDQgMTE2OCAxMUI3OworQjYwNTtCNjA1OzExMDQgMTE2OCAxMUI4O0I2MDU7MTEwNCAxMTY4IDExQjg7CitCNjA2O0I2MDY7MTEwNCAxMTY4IDExQjk7QjYwNjsxMTA0IDExNjggMTFCOTsKK0I2MDc7QjYwNzsxMTA0IDExNjggMTFCQTtCNjA3OzExMDQgMTE2OCAxMUJBOworQjYwODtCNjA4OzExMDQgMTE2OCAxMUJCO0I2MDg7MTEwNCAxMTY4IDExQkI7CitCNjA5O0I2MDk7MTEwNCAxMTY4IDExQkM7QjYwOTsxMTA0IDExNjggMTFCQzsKK0I2MEE7QjYwQTsxMTA0IDExNjggMTFCRDtCNjBBOzExMDQgMTE2OCAxMUJEOworQjYwQjtCNjBCOzExMDQgMTE2OCAxMUJFO0I2MEI7MTEwNCAxMTY4IDExQkU7CitCNjBDO0I2MEM7MTEwNCAxMTY4IDExQkY7QjYwQzsxMTA0IDExNjggMTFCRjsKK0I2MEQ7QjYwRDsxMTA0IDExNjggMTFDMDtCNjBEOzExMDQgMTE2OCAxMUMwOworQjYwRTtCNjBFOzExMDQgMTE2OCAxMUMxO0I2MEU7MTEwNCAxMTY4IDExQzE7CitCNjBGO0I2MEY7MTEwNCAxMTY4IDExQzI7QjYwRjsxMTA0IDExNjggMTFDMjsKK0I2MTA7QjYxMDsxMTA0IDExNjk7QjYxMDsxMTA0IDExNjk7CitCNjExO0I2MTE7MTEwNCAxMTY5IDExQTg7QjYxMTsxMTA0IDExNjkgMTFBODsKK0I2MTI7QjYxMjsxMTA0IDExNjkgMTFBOTtCNjEyOzExMDQgMTE2OSAxMUE5OworQjYxMztCNjEzOzExMDQgMTE2OSAxMUFBO0I2MTM7MTEwNCAxMTY5IDExQUE7CitCNjE0O0I2MTQ7MTEwNCAxMTY5IDExQUI7QjYxNDsxMTA0IDExNjkgMTFBQjsKK0I2MTU7QjYxNTsxMTA0IDExNjkgMTFBQztCNjE1OzExMDQgMTE2OSAxMUFDOworQjYxNjtCNjE2OzExMDQgMTE2OSAxMUFEO0I2MTY7MTEwNCAxMTY5IDExQUQ7CitCNjE3O0I2MTc7MTEwNCAxMTY5IDExQUU7QjYxNzsxMTA0IDExNjkgMTFBRTsKK0I2MTg7QjYxODsxMTA0IDExNjkgMTFBRjtCNjE4OzExMDQgMTE2OSAxMUFGOworQjYxOTtCNjE5OzExMDQgMTE2OSAxMUIwO0I2MTk7MTEwNCAxMTY5IDExQjA7CitCNjFBO0I2MUE7MTEwNCAxMTY5IDExQjE7QjYxQTsxMTA0IDExNjkgMTFCMTsKK0I2MUI7QjYxQjsxMTA0IDExNjkgMTFCMjtCNjFCOzExMDQgMTE2OSAxMUIyOworQjYxQztCNjFDOzExMDQgMTE2OSAxMUIzO0I2MUM7MTEwNCAxMTY5IDExQjM7CitCNjFEO0I2MUQ7MTEwNCAxMTY5IDExQjQ7QjYxRDsxMTA0IDExNjkgMTFCNDsKK0I2MUU7QjYxRTsxMTA0IDExNjkgMTFCNTtCNjFFOzExMDQgMTE2OSAxMUI1OworQjYxRjtCNjFGOzExMDQgMTE2OSAxMUI2O0I2MUY7MTEwNCAxMTY5IDExQjY7CitCNjIwO0I2MjA7MTEwNCAxMTY5IDExQjc7QjYyMDsxMTA0IDExNjkgMTFCNzsKK0I2MjE7QjYyMTsxMTA0IDExNjkgMTFCODtCNjIxOzExMDQgMTE2OSAxMUI4OworQjYyMjtCNjIyOzExMDQgMTE2OSAxMUI5O0I2MjI7MTEwNCAxMTY5IDExQjk7CitCNjIzO0I2MjM7MTEwNCAxMTY5IDExQkE7QjYyMzsxMTA0IDExNjkgMTFCQTsKK0I2MjQ7QjYyNDsxMTA0IDExNjkgMTFCQjtCNjI0OzExMDQgMTE2OSAxMUJCOworQjYyNTtCNjI1OzExMDQgMTE2OSAxMUJDO0I2MjU7MTEwNCAxMTY5IDExQkM7CitCNjI2O0I2MjY7MTEwNCAxMTY5IDExQkQ7QjYyNjsxMTA0IDExNjkgMTFCRDsKK0I2Mjc7QjYyNzsxMTA0IDExNjkgMTFCRTtCNjI3OzExMDQgMTE2OSAxMUJFOworQjYyODtCNjI4OzExMDQgMTE2OSAxMUJGO0I2Mjg7MTEwNCAxMTY5IDExQkY7CitCNjI5O0I2Mjk7MTEwNCAxMTY5IDExQzA7QjYyOTsxMTA0IDExNjkgMTFDMDsKK0I2MkE7QjYyQTsxMTA0IDExNjkgMTFDMTtCNjJBOzExMDQgMTE2OSAxMUMxOworQjYyQjtCNjJCOzExMDQgMTE2OSAxMUMyO0I2MkI7MTEwNCAxMTY5IDExQzI7CitCNjJDO0I2MkM7MTEwNCAxMTZBO0I2MkM7MTEwNCAxMTZBOworQjYyRDtCNjJEOzExMDQgMTE2QSAxMUE4O0I2MkQ7MTEwNCAxMTZBIDExQTg7CitCNjJFO0I2MkU7MTEwNCAxMTZBIDExQTk7QjYyRTsxMTA0IDExNkEgMTFBOTsKK0I2MkY7QjYyRjsxMTA0IDExNkEgMTFBQTtCNjJGOzExMDQgMTE2QSAxMUFBOworQjYzMDtCNjMwOzExMDQgMTE2QSAxMUFCO0I2MzA7MTEwNCAxMTZBIDExQUI7CitCNjMxO0I2MzE7MTEwNCAxMTZBIDExQUM7QjYzMTsxMTA0IDExNkEgMTFBQzsKK0I2MzI7QjYzMjsxMTA0IDExNkEgMTFBRDtCNjMyOzExMDQgMTE2QSAxMUFEOworQjYzMztCNjMzOzExMDQgMTE2QSAxMUFFO0I2MzM7MTEwNCAxMTZBIDExQUU7CitCNjM0O0I2MzQ7MTEwNCAxMTZBIDExQUY7QjYzNDsxMTA0IDExNkEgMTFBRjsKK0I2MzU7QjYzNTsxMTA0IDExNkEgMTFCMDtCNjM1OzExMDQgMTE2QSAxMUIwOworQjYzNjtCNjM2OzExMDQgMTE2QSAxMUIxO0I2MzY7MTEwNCAxMTZBIDExQjE7CitCNjM3O0I2Mzc7MTEwNCAxMTZBIDExQjI7QjYzNzsxMTA0IDExNkEgMTFCMjsKK0I2Mzg7QjYzODsxMTA0IDExNkEgMTFCMztCNjM4OzExMDQgMTE2QSAxMUIzOworQjYzOTtCNjM5OzExMDQgMTE2QSAxMUI0O0I2Mzk7MTEwNCAxMTZBIDExQjQ7CitCNjNBO0I2M0E7MTEwNCAxMTZBIDExQjU7QjYzQTsxMTA0IDExNkEgMTFCNTsKK0I2M0I7QjYzQjsxMTA0IDExNkEgMTFCNjtCNjNCOzExMDQgMTE2QSAxMUI2OworQjYzQztCNjNDOzExMDQgMTE2QSAxMUI3O0I2M0M7MTEwNCAxMTZBIDExQjc7CitCNjNEO0I2M0Q7MTEwNCAxMTZBIDExQjg7QjYzRDsxMTA0IDExNkEgMTFCODsKK0I2M0U7QjYzRTsxMTA0IDExNkEgMTFCOTtCNjNFOzExMDQgMTE2QSAxMUI5OworQjYzRjtCNjNGOzExMDQgMTE2QSAxMUJBO0I2M0Y7MTEwNCAxMTZBIDExQkE7CitCNjQwO0I2NDA7MTEwNCAxMTZBIDExQkI7QjY0MDsxMTA0IDExNkEgMTFCQjsKK0I2NDE7QjY0MTsxMTA0IDExNkEgMTFCQztCNjQxOzExMDQgMTE2QSAxMUJDOworQjY0MjtCNjQyOzExMDQgMTE2QSAxMUJEO0I2NDI7MTEwNCAxMTZBIDExQkQ7CitCNjQzO0I2NDM7MTEwNCAxMTZBIDExQkU7QjY0MzsxMTA0IDExNkEgMTFCRTsKK0I2NDQ7QjY0NDsxMTA0IDExNkEgMTFCRjtCNjQ0OzExMDQgMTE2QSAxMUJGOworQjY0NTtCNjQ1OzExMDQgMTE2QSAxMUMwO0I2NDU7MTEwNCAxMTZBIDExQzA7CitCNjQ2O0I2NDY7MTEwNCAxMTZBIDExQzE7QjY0NjsxMTA0IDExNkEgMTFDMTsKK0I2NDc7QjY0NzsxMTA0IDExNkEgMTFDMjtCNjQ3OzExMDQgMTE2QSAxMUMyOworQjY0ODtCNjQ4OzExMDQgMTE2QjtCNjQ4OzExMDQgMTE2QjsKK0I2NDk7QjY0OTsxMTA0IDExNkIgMTFBODtCNjQ5OzExMDQgMTE2QiAxMUE4OworQjY0QTtCNjRBOzExMDQgMTE2QiAxMUE5O0I2NEE7MTEwNCAxMTZCIDExQTk7CitCNjRCO0I2NEI7MTEwNCAxMTZCIDExQUE7QjY0QjsxMTA0IDExNkIgMTFBQTsKK0I2NEM7QjY0QzsxMTA0IDExNkIgMTFBQjtCNjRDOzExMDQgMTE2QiAxMUFCOworQjY0RDtCNjREOzExMDQgMTE2QiAxMUFDO0I2NEQ7MTEwNCAxMTZCIDExQUM7CitCNjRFO0I2NEU7MTEwNCAxMTZCIDExQUQ7QjY0RTsxMTA0IDExNkIgMTFBRDsKK0I2NEY7QjY0RjsxMTA0IDExNkIgMTFBRTtCNjRGOzExMDQgMTE2QiAxMUFFOworQjY1MDtCNjUwOzExMDQgMTE2QiAxMUFGO0I2NTA7MTEwNCAxMTZCIDExQUY7CitCNjUxO0I2NTE7MTEwNCAxMTZCIDExQjA7QjY1MTsxMTA0IDExNkIgMTFCMDsKK0I2NTI7QjY1MjsxMTA0IDExNkIgMTFCMTtCNjUyOzExMDQgMTE2QiAxMUIxOworQjY1MztCNjUzOzExMDQgMTE2QiAxMUIyO0I2NTM7MTEwNCAxMTZCIDExQjI7CitCNjU0O0I2NTQ7MTEwNCAxMTZCIDExQjM7QjY1NDsxMTA0IDExNkIgMTFCMzsKK0I2NTU7QjY1NTsxMTA0IDExNkIgMTFCNDtCNjU1OzExMDQgMTE2QiAxMUI0OworQjY1NjtCNjU2OzExMDQgMTE2QiAxMUI1O0I2NTY7MTEwNCAxMTZCIDExQjU7CitCNjU3O0I2NTc7MTEwNCAxMTZCIDExQjY7QjY1NzsxMTA0IDExNkIgMTFCNjsKK0I2NTg7QjY1ODsxMTA0IDExNkIgMTFCNztCNjU4OzExMDQgMTE2QiAxMUI3OworQjY1OTtCNjU5OzExMDQgMTE2QiAxMUI4O0I2NTk7MTEwNCAxMTZCIDExQjg7CitCNjVBO0I2NUE7MTEwNCAxMTZCIDExQjk7QjY1QTsxMTA0IDExNkIgMTFCOTsKK0I2NUI7QjY1QjsxMTA0IDExNkIgMTFCQTtCNjVCOzExMDQgMTE2QiAxMUJBOworQjY1QztCNjVDOzExMDQgMTE2QiAxMUJCO0I2NUM7MTEwNCAxMTZCIDExQkI7CitCNjVEO0I2NUQ7MTEwNCAxMTZCIDExQkM7QjY1RDsxMTA0IDExNkIgMTFCQzsKK0I2NUU7QjY1RTsxMTA0IDExNkIgMTFCRDtCNjVFOzExMDQgMTE2QiAxMUJEOworQjY1RjtCNjVGOzExMDQgMTE2QiAxMUJFO0I2NUY7MTEwNCAxMTZCIDExQkU7CitCNjYwO0I2NjA7MTEwNCAxMTZCIDExQkY7QjY2MDsxMTA0IDExNkIgMTFCRjsKK0I2NjE7QjY2MTsxMTA0IDExNkIgMTFDMDtCNjYxOzExMDQgMTE2QiAxMUMwOworQjY2MjtCNjYyOzExMDQgMTE2QiAxMUMxO0I2NjI7MTEwNCAxMTZCIDExQzE7CitCNjYzO0I2NjM7MTEwNCAxMTZCIDExQzI7QjY2MzsxMTA0IDExNkIgMTFDMjsKK0I2NjQ7QjY2NDsxMTA0IDExNkM7QjY2NDsxMTA0IDExNkM7CitCNjY1O0I2NjU7MTEwNCAxMTZDIDExQTg7QjY2NTsxMTA0IDExNkMgMTFBODsKK0I2NjY7QjY2NjsxMTA0IDExNkMgMTFBOTtCNjY2OzExMDQgMTE2QyAxMUE5OworQjY2NztCNjY3OzExMDQgMTE2QyAxMUFBO0I2Njc7MTEwNCAxMTZDIDExQUE7CitCNjY4O0I2Njg7MTEwNCAxMTZDIDExQUI7QjY2ODsxMTA0IDExNkMgMTFBQjsKK0I2Njk7QjY2OTsxMTA0IDExNkMgMTFBQztCNjY5OzExMDQgMTE2QyAxMUFDOworQjY2QTtCNjZBOzExMDQgMTE2QyAxMUFEO0I2NkE7MTEwNCAxMTZDIDExQUQ7CitCNjZCO0I2NkI7MTEwNCAxMTZDIDExQUU7QjY2QjsxMTA0IDExNkMgMTFBRTsKK0I2NkM7QjY2QzsxMTA0IDExNkMgMTFBRjtCNjZDOzExMDQgMTE2QyAxMUFGOworQjY2RDtCNjZEOzExMDQgMTE2QyAxMUIwO0I2NkQ7MTEwNCAxMTZDIDExQjA7CitCNjZFO0I2NkU7MTEwNCAxMTZDIDExQjE7QjY2RTsxMTA0IDExNkMgMTFCMTsKK0I2NkY7QjY2RjsxMTA0IDExNkMgMTFCMjtCNjZGOzExMDQgMTE2QyAxMUIyOworQjY3MDtCNjcwOzExMDQgMTE2QyAxMUIzO0I2NzA7MTEwNCAxMTZDIDExQjM7CitCNjcxO0I2NzE7MTEwNCAxMTZDIDExQjQ7QjY3MTsxMTA0IDExNkMgMTFCNDsKK0I2NzI7QjY3MjsxMTA0IDExNkMgMTFCNTtCNjcyOzExMDQgMTE2QyAxMUI1OworQjY3MztCNjczOzExMDQgMTE2QyAxMUI2O0I2NzM7MTEwNCAxMTZDIDExQjY7CitCNjc0O0I2NzQ7MTEwNCAxMTZDIDExQjc7QjY3NDsxMTA0IDExNkMgMTFCNzsKK0I2NzU7QjY3NTsxMTA0IDExNkMgMTFCODtCNjc1OzExMDQgMTE2QyAxMUI4OworQjY3NjtCNjc2OzExMDQgMTE2QyAxMUI5O0I2NzY7MTEwNCAxMTZDIDExQjk7CitCNjc3O0I2Nzc7MTEwNCAxMTZDIDExQkE7QjY3NzsxMTA0IDExNkMgMTFCQTsKK0I2Nzg7QjY3ODsxMTA0IDExNkMgMTFCQjtCNjc4OzExMDQgMTE2QyAxMUJCOworQjY3OTtCNjc5OzExMDQgMTE2QyAxMUJDO0I2Nzk7MTEwNCAxMTZDIDExQkM7CitCNjdBO0I2N0E7MTEwNCAxMTZDIDExQkQ7QjY3QTsxMTA0IDExNkMgMTFCRDsKK0I2N0I7QjY3QjsxMTA0IDExNkMgMTFCRTtCNjdCOzExMDQgMTE2QyAxMUJFOworQjY3QztCNjdDOzExMDQgMTE2QyAxMUJGO0I2N0M7MTEwNCAxMTZDIDExQkY7CitCNjdEO0I2N0Q7MTEwNCAxMTZDIDExQzA7QjY3RDsxMTA0IDExNkMgMTFDMDsKK0I2N0U7QjY3RTsxMTA0IDExNkMgMTFDMTtCNjdFOzExMDQgMTE2QyAxMUMxOworQjY3RjtCNjdGOzExMDQgMTE2QyAxMUMyO0I2N0Y7MTEwNCAxMTZDIDExQzI7CitCNjgwO0I2ODA7MTEwNCAxMTZEO0I2ODA7MTEwNCAxMTZEOworQjY4MTtCNjgxOzExMDQgMTE2RCAxMUE4O0I2ODE7MTEwNCAxMTZEIDExQTg7CitCNjgyO0I2ODI7MTEwNCAxMTZEIDExQTk7QjY4MjsxMTA0IDExNkQgMTFBOTsKK0I2ODM7QjY4MzsxMTA0IDExNkQgMTFBQTtCNjgzOzExMDQgMTE2RCAxMUFBOworQjY4NDtCNjg0OzExMDQgMTE2RCAxMUFCO0I2ODQ7MTEwNCAxMTZEIDExQUI7CitCNjg1O0I2ODU7MTEwNCAxMTZEIDExQUM7QjY4NTsxMTA0IDExNkQgMTFBQzsKK0I2ODY7QjY4NjsxMTA0IDExNkQgMTFBRDtCNjg2OzExMDQgMTE2RCAxMUFEOworQjY4NztCNjg3OzExMDQgMTE2RCAxMUFFO0I2ODc7MTEwNCAxMTZEIDExQUU7CitCNjg4O0I2ODg7MTEwNCAxMTZEIDExQUY7QjY4ODsxMTA0IDExNkQgMTFBRjsKK0I2ODk7QjY4OTsxMTA0IDExNkQgMTFCMDtCNjg5OzExMDQgMTE2RCAxMUIwOworQjY4QTtCNjhBOzExMDQgMTE2RCAxMUIxO0I2OEE7MTEwNCAxMTZEIDExQjE7CitCNjhCO0I2OEI7MTEwNCAxMTZEIDExQjI7QjY4QjsxMTA0IDExNkQgMTFCMjsKK0I2OEM7QjY4QzsxMTA0IDExNkQgMTFCMztCNjhDOzExMDQgMTE2RCAxMUIzOworQjY4RDtCNjhEOzExMDQgMTE2RCAxMUI0O0I2OEQ7MTEwNCAxMTZEIDExQjQ7CitCNjhFO0I2OEU7MTEwNCAxMTZEIDExQjU7QjY4RTsxMTA0IDExNkQgMTFCNTsKK0I2OEY7QjY4RjsxMTA0IDExNkQgMTFCNjtCNjhGOzExMDQgMTE2RCAxMUI2OworQjY5MDtCNjkwOzExMDQgMTE2RCAxMUI3O0I2OTA7MTEwNCAxMTZEIDExQjc7CitCNjkxO0I2OTE7MTEwNCAxMTZEIDExQjg7QjY5MTsxMTA0IDExNkQgMTFCODsKK0I2OTI7QjY5MjsxMTA0IDExNkQgMTFCOTtCNjkyOzExMDQgMTE2RCAxMUI5OworQjY5MztCNjkzOzExMDQgMTE2RCAxMUJBO0I2OTM7MTEwNCAxMTZEIDExQkE7CitCNjk0O0I2OTQ7MTEwNCAxMTZEIDExQkI7QjY5NDsxMTA0IDExNkQgMTFCQjsKK0I2OTU7QjY5NTsxMTA0IDExNkQgMTFCQztCNjk1OzExMDQgMTE2RCAxMUJDOworQjY5NjtCNjk2OzExMDQgMTE2RCAxMUJEO0I2OTY7MTEwNCAxMTZEIDExQkQ7CitCNjk3O0I2OTc7MTEwNCAxMTZEIDExQkU7QjY5NzsxMTA0IDExNkQgMTFCRTsKK0I2OTg7QjY5ODsxMTA0IDExNkQgMTFCRjtCNjk4OzExMDQgMTE2RCAxMUJGOworQjY5OTtCNjk5OzExMDQgMTE2RCAxMUMwO0I2OTk7MTEwNCAxMTZEIDExQzA7CitCNjlBO0I2OUE7MTEwNCAxMTZEIDExQzE7QjY5QTsxMTA0IDExNkQgMTFDMTsKK0I2OUI7QjY5QjsxMTA0IDExNkQgMTFDMjtCNjlCOzExMDQgMTE2RCAxMUMyOworQjY5QztCNjlDOzExMDQgMTE2RTtCNjlDOzExMDQgMTE2RTsKK0I2OUQ7QjY5RDsxMTA0IDExNkUgMTFBODtCNjlEOzExMDQgMTE2RSAxMUE4OworQjY5RTtCNjlFOzExMDQgMTE2RSAxMUE5O0I2OUU7MTEwNCAxMTZFIDExQTk7CitCNjlGO0I2OUY7MTEwNCAxMTZFIDExQUE7QjY5RjsxMTA0IDExNkUgMTFBQTsKK0I2QTA7QjZBMDsxMTA0IDExNkUgMTFBQjtCNkEwOzExMDQgMTE2RSAxMUFCOworQjZBMTtCNkExOzExMDQgMTE2RSAxMUFDO0I2QTE7MTEwNCAxMTZFIDExQUM7CitCNkEyO0I2QTI7MTEwNCAxMTZFIDExQUQ7QjZBMjsxMTA0IDExNkUgMTFBRDsKK0I2QTM7QjZBMzsxMTA0IDExNkUgMTFBRTtCNkEzOzExMDQgMTE2RSAxMUFFOworQjZBNDtCNkE0OzExMDQgMTE2RSAxMUFGO0I2QTQ7MTEwNCAxMTZFIDExQUY7CitCNkE1O0I2QTU7MTEwNCAxMTZFIDExQjA7QjZBNTsxMTA0IDExNkUgMTFCMDsKK0I2QTY7QjZBNjsxMTA0IDExNkUgMTFCMTtCNkE2OzExMDQgMTE2RSAxMUIxOworQjZBNztCNkE3OzExMDQgMTE2RSAxMUIyO0I2QTc7MTEwNCAxMTZFIDExQjI7CitCNkE4O0I2QTg7MTEwNCAxMTZFIDExQjM7QjZBODsxMTA0IDExNkUgMTFCMzsKK0I2QTk7QjZBOTsxMTA0IDExNkUgMTFCNDtCNkE5OzExMDQgMTE2RSAxMUI0OworQjZBQTtCNkFBOzExMDQgMTE2RSAxMUI1O0I2QUE7MTEwNCAxMTZFIDExQjU7CitCNkFCO0I2QUI7MTEwNCAxMTZFIDExQjY7QjZBQjsxMTA0IDExNkUgMTFCNjsKK0I2QUM7QjZBQzsxMTA0IDExNkUgMTFCNztCNkFDOzExMDQgMTE2RSAxMUI3OworQjZBRDtCNkFEOzExMDQgMTE2RSAxMUI4O0I2QUQ7MTEwNCAxMTZFIDExQjg7CitCNkFFO0I2QUU7MTEwNCAxMTZFIDExQjk7QjZBRTsxMTA0IDExNkUgMTFCOTsKK0I2QUY7QjZBRjsxMTA0IDExNkUgMTFCQTtCNkFGOzExMDQgMTE2RSAxMUJBOworQjZCMDtCNkIwOzExMDQgMTE2RSAxMUJCO0I2QjA7MTEwNCAxMTZFIDExQkI7CitCNkIxO0I2QjE7MTEwNCAxMTZFIDExQkM7QjZCMTsxMTA0IDExNkUgMTFCQzsKK0I2QjI7QjZCMjsxMTA0IDExNkUgMTFCRDtCNkIyOzExMDQgMTE2RSAxMUJEOworQjZCMztCNkIzOzExMDQgMTE2RSAxMUJFO0I2QjM7MTEwNCAxMTZFIDExQkU7CitCNkI0O0I2QjQ7MTEwNCAxMTZFIDExQkY7QjZCNDsxMTA0IDExNkUgMTFCRjsKK0I2QjU7QjZCNTsxMTA0IDExNkUgMTFDMDtCNkI1OzExMDQgMTE2RSAxMUMwOworQjZCNjtCNkI2OzExMDQgMTE2RSAxMUMxO0I2QjY7MTEwNCAxMTZFIDExQzE7CitCNkI3O0I2Qjc7MTEwNCAxMTZFIDExQzI7QjZCNzsxMTA0IDExNkUgMTFDMjsKK0I2Qjg7QjZCODsxMTA0IDExNkY7QjZCODsxMTA0IDExNkY7CitCNkI5O0I2Qjk7MTEwNCAxMTZGIDExQTg7QjZCOTsxMTA0IDExNkYgMTFBODsKK0I2QkE7QjZCQTsxMTA0IDExNkYgMTFBOTtCNkJBOzExMDQgMTE2RiAxMUE5OworQjZCQjtCNkJCOzExMDQgMTE2RiAxMUFBO0I2QkI7MTEwNCAxMTZGIDExQUE7CitCNkJDO0I2QkM7MTEwNCAxMTZGIDExQUI7QjZCQzsxMTA0IDExNkYgMTFBQjsKK0I2QkQ7QjZCRDsxMTA0IDExNkYgMTFBQztCNkJEOzExMDQgMTE2RiAxMUFDOworQjZCRTtCNkJFOzExMDQgMTE2RiAxMUFEO0I2QkU7MTEwNCAxMTZGIDExQUQ7CitCNkJGO0I2QkY7MTEwNCAxMTZGIDExQUU7QjZCRjsxMTA0IDExNkYgMTFBRTsKK0I2QzA7QjZDMDsxMTA0IDExNkYgMTFBRjtCNkMwOzExMDQgMTE2RiAxMUFGOworQjZDMTtCNkMxOzExMDQgMTE2RiAxMUIwO0I2QzE7MTEwNCAxMTZGIDExQjA7CitCNkMyO0I2QzI7MTEwNCAxMTZGIDExQjE7QjZDMjsxMTA0IDExNkYgMTFCMTsKK0I2QzM7QjZDMzsxMTA0IDExNkYgMTFCMjtCNkMzOzExMDQgMTE2RiAxMUIyOworQjZDNDtCNkM0OzExMDQgMTE2RiAxMUIzO0I2QzQ7MTEwNCAxMTZGIDExQjM7CitCNkM1O0I2QzU7MTEwNCAxMTZGIDExQjQ7QjZDNTsxMTA0IDExNkYgMTFCNDsKK0I2QzY7QjZDNjsxMTA0IDExNkYgMTFCNTtCNkM2OzExMDQgMTE2RiAxMUI1OworQjZDNztCNkM3OzExMDQgMTE2RiAxMUI2O0I2Qzc7MTEwNCAxMTZGIDExQjY7CitCNkM4O0I2Qzg7MTEwNCAxMTZGIDExQjc7QjZDODsxMTA0IDExNkYgMTFCNzsKK0I2Qzk7QjZDOTsxMTA0IDExNkYgMTFCODtCNkM5OzExMDQgMTE2RiAxMUI4OworQjZDQTtCNkNBOzExMDQgMTE2RiAxMUI5O0I2Q0E7MTEwNCAxMTZGIDExQjk7CitCNkNCO0I2Q0I7MTEwNCAxMTZGIDExQkE7QjZDQjsxMTA0IDExNkYgMTFCQTsKK0I2Q0M7QjZDQzsxMTA0IDExNkYgMTFCQjtCNkNDOzExMDQgMTE2RiAxMUJCOworQjZDRDtCNkNEOzExMDQgMTE2RiAxMUJDO0I2Q0Q7MTEwNCAxMTZGIDExQkM7CitCNkNFO0I2Q0U7MTEwNCAxMTZGIDExQkQ7QjZDRTsxMTA0IDExNkYgMTFCRDsKK0I2Q0Y7QjZDRjsxMTA0IDExNkYgMTFCRTtCNkNGOzExMDQgMTE2RiAxMUJFOworQjZEMDtCNkQwOzExMDQgMTE2RiAxMUJGO0I2RDA7MTEwNCAxMTZGIDExQkY7CitCNkQxO0I2RDE7MTEwNCAxMTZGIDExQzA7QjZEMTsxMTA0IDExNkYgMTFDMDsKK0I2RDI7QjZEMjsxMTA0IDExNkYgMTFDMTtCNkQyOzExMDQgMTE2RiAxMUMxOworQjZEMztCNkQzOzExMDQgMTE2RiAxMUMyO0I2RDM7MTEwNCAxMTZGIDExQzI7CitCNkQ0O0I2RDQ7MTEwNCAxMTcwO0I2RDQ7MTEwNCAxMTcwOworQjZENTtCNkQ1OzExMDQgMTE3MCAxMUE4O0I2RDU7MTEwNCAxMTcwIDExQTg7CitCNkQ2O0I2RDY7MTEwNCAxMTcwIDExQTk7QjZENjsxMTA0IDExNzAgMTFBOTsKK0I2RDc7QjZENzsxMTA0IDExNzAgMTFBQTtCNkQ3OzExMDQgMTE3MCAxMUFBOworQjZEODtCNkQ4OzExMDQgMTE3MCAxMUFCO0I2RDg7MTEwNCAxMTcwIDExQUI7CitCNkQ5O0I2RDk7MTEwNCAxMTcwIDExQUM7QjZEOTsxMTA0IDExNzAgMTFBQzsKK0I2REE7QjZEQTsxMTA0IDExNzAgMTFBRDtCNkRBOzExMDQgMTE3MCAxMUFEOworQjZEQjtCNkRCOzExMDQgMTE3MCAxMUFFO0I2REI7MTEwNCAxMTcwIDExQUU7CitCNkRDO0I2REM7MTEwNCAxMTcwIDExQUY7QjZEQzsxMTA0IDExNzAgMTFBRjsKK0I2REQ7QjZERDsxMTA0IDExNzAgMTFCMDtCNkREOzExMDQgMTE3MCAxMUIwOworQjZERTtCNkRFOzExMDQgMTE3MCAxMUIxO0I2REU7MTEwNCAxMTcwIDExQjE7CitCNkRGO0I2REY7MTEwNCAxMTcwIDExQjI7QjZERjsxMTA0IDExNzAgMTFCMjsKK0I2RTA7QjZFMDsxMTA0IDExNzAgMTFCMztCNkUwOzExMDQgMTE3MCAxMUIzOworQjZFMTtCNkUxOzExMDQgMTE3MCAxMUI0O0I2RTE7MTEwNCAxMTcwIDExQjQ7CitCNkUyO0I2RTI7MTEwNCAxMTcwIDExQjU7QjZFMjsxMTA0IDExNzAgMTFCNTsKK0I2RTM7QjZFMzsxMTA0IDExNzAgMTFCNjtCNkUzOzExMDQgMTE3MCAxMUI2OworQjZFNDtCNkU0OzExMDQgMTE3MCAxMUI3O0I2RTQ7MTEwNCAxMTcwIDExQjc7CitCNkU1O0I2RTU7MTEwNCAxMTcwIDExQjg7QjZFNTsxMTA0IDExNzAgMTFCODsKK0I2RTY7QjZFNjsxMTA0IDExNzAgMTFCOTtCNkU2OzExMDQgMTE3MCAxMUI5OworQjZFNztCNkU3OzExMDQgMTE3MCAxMUJBO0I2RTc7MTEwNCAxMTcwIDExQkE7CitCNkU4O0I2RTg7MTEwNCAxMTcwIDExQkI7QjZFODsxMTA0IDExNzAgMTFCQjsKK0I2RTk7QjZFOTsxMTA0IDExNzAgMTFCQztCNkU5OzExMDQgMTE3MCAxMUJDOworQjZFQTtCNkVBOzExMDQgMTE3MCAxMUJEO0I2RUE7MTEwNCAxMTcwIDExQkQ7CitCNkVCO0I2RUI7MTEwNCAxMTcwIDExQkU7QjZFQjsxMTA0IDExNzAgMTFCRTsKK0I2RUM7QjZFQzsxMTA0IDExNzAgMTFCRjtCNkVDOzExMDQgMTE3MCAxMUJGOworQjZFRDtCNkVEOzExMDQgMTE3MCAxMUMwO0I2RUQ7MTEwNCAxMTcwIDExQzA7CitCNkVFO0I2RUU7MTEwNCAxMTcwIDExQzE7QjZFRTsxMTA0IDExNzAgMTFDMTsKK0I2RUY7QjZFRjsxMTA0IDExNzAgMTFDMjtCNkVGOzExMDQgMTE3MCAxMUMyOworQjZGMDtCNkYwOzExMDQgMTE3MTtCNkYwOzExMDQgMTE3MTsKK0I2RjE7QjZGMTsxMTA0IDExNzEgMTFBODtCNkYxOzExMDQgMTE3MSAxMUE4OworQjZGMjtCNkYyOzExMDQgMTE3MSAxMUE5O0I2RjI7MTEwNCAxMTcxIDExQTk7CitCNkYzO0I2RjM7MTEwNCAxMTcxIDExQUE7QjZGMzsxMTA0IDExNzEgMTFBQTsKK0I2RjQ7QjZGNDsxMTA0IDExNzEgMTFBQjtCNkY0OzExMDQgMTE3MSAxMUFCOworQjZGNTtCNkY1OzExMDQgMTE3MSAxMUFDO0I2RjU7MTEwNCAxMTcxIDExQUM7CitCNkY2O0I2RjY7MTEwNCAxMTcxIDExQUQ7QjZGNjsxMTA0IDExNzEgMTFBRDsKK0I2Rjc7QjZGNzsxMTA0IDExNzEgMTFBRTtCNkY3OzExMDQgMTE3MSAxMUFFOworQjZGODtCNkY4OzExMDQgMTE3MSAxMUFGO0I2Rjg7MTEwNCAxMTcxIDExQUY7CitCNkY5O0I2Rjk7MTEwNCAxMTcxIDExQjA7QjZGOTsxMTA0IDExNzEgMTFCMDsKK0I2RkE7QjZGQTsxMTA0IDExNzEgMTFCMTtCNkZBOzExMDQgMTE3MSAxMUIxOworQjZGQjtCNkZCOzExMDQgMTE3MSAxMUIyO0I2RkI7MTEwNCAxMTcxIDExQjI7CitCNkZDO0I2RkM7MTEwNCAxMTcxIDExQjM7QjZGQzsxMTA0IDExNzEgMTFCMzsKK0I2RkQ7QjZGRDsxMTA0IDExNzEgMTFCNDtCNkZEOzExMDQgMTE3MSAxMUI0OworQjZGRTtCNkZFOzExMDQgMTE3MSAxMUI1O0I2RkU7MTEwNCAxMTcxIDExQjU7CitCNkZGO0I2RkY7MTEwNCAxMTcxIDExQjY7QjZGRjsxMTA0IDExNzEgMTFCNjsKK0I3MDA7QjcwMDsxMTA0IDExNzEgMTFCNztCNzAwOzExMDQgMTE3MSAxMUI3OworQjcwMTtCNzAxOzExMDQgMTE3MSAxMUI4O0I3MDE7MTEwNCAxMTcxIDExQjg7CitCNzAyO0I3MDI7MTEwNCAxMTcxIDExQjk7QjcwMjsxMTA0IDExNzEgMTFCOTsKK0I3MDM7QjcwMzsxMTA0IDExNzEgMTFCQTtCNzAzOzExMDQgMTE3MSAxMUJBOworQjcwNDtCNzA0OzExMDQgMTE3MSAxMUJCO0I3MDQ7MTEwNCAxMTcxIDExQkI7CitCNzA1O0I3MDU7MTEwNCAxMTcxIDExQkM7QjcwNTsxMTA0IDExNzEgMTFCQzsKK0I3MDY7QjcwNjsxMTA0IDExNzEgMTFCRDtCNzA2OzExMDQgMTE3MSAxMUJEOworQjcwNztCNzA3OzExMDQgMTE3MSAxMUJFO0I3MDc7MTEwNCAxMTcxIDExQkU7CitCNzA4O0I3MDg7MTEwNCAxMTcxIDExQkY7QjcwODsxMTA0IDExNzEgMTFCRjsKK0I3MDk7QjcwOTsxMTA0IDExNzEgMTFDMDtCNzA5OzExMDQgMTE3MSAxMUMwOworQjcwQTtCNzBBOzExMDQgMTE3MSAxMUMxO0I3MEE7MTEwNCAxMTcxIDExQzE7CitCNzBCO0I3MEI7MTEwNCAxMTcxIDExQzI7QjcwQjsxMTA0IDExNzEgMTFDMjsKK0I3MEM7QjcwQzsxMTA0IDExNzI7QjcwQzsxMTA0IDExNzI7CitCNzBEO0I3MEQ7MTEwNCAxMTcyIDExQTg7QjcwRDsxMTA0IDExNzIgMTFBODsKK0I3MEU7QjcwRTsxMTA0IDExNzIgMTFBOTtCNzBFOzExMDQgMTE3MiAxMUE5OworQjcwRjtCNzBGOzExMDQgMTE3MiAxMUFBO0I3MEY7MTEwNCAxMTcyIDExQUE7CitCNzEwO0I3MTA7MTEwNCAxMTcyIDExQUI7QjcxMDsxMTA0IDExNzIgMTFBQjsKK0I3MTE7QjcxMTsxMTA0IDExNzIgMTFBQztCNzExOzExMDQgMTE3MiAxMUFDOworQjcxMjtCNzEyOzExMDQgMTE3MiAxMUFEO0I3MTI7MTEwNCAxMTcyIDExQUQ7CitCNzEzO0I3MTM7MTEwNCAxMTcyIDExQUU7QjcxMzsxMTA0IDExNzIgMTFBRTsKK0I3MTQ7QjcxNDsxMTA0IDExNzIgMTFBRjtCNzE0OzExMDQgMTE3MiAxMUFGOworQjcxNTtCNzE1OzExMDQgMTE3MiAxMUIwO0I3MTU7MTEwNCAxMTcyIDExQjA7CitCNzE2O0I3MTY7MTEwNCAxMTcyIDExQjE7QjcxNjsxMTA0IDExNzIgMTFCMTsKK0I3MTc7QjcxNzsxMTA0IDExNzIgMTFCMjtCNzE3OzExMDQgMTE3MiAxMUIyOworQjcxODtCNzE4OzExMDQgMTE3MiAxMUIzO0I3MTg7MTEwNCAxMTcyIDExQjM7CitCNzE5O0I3MTk7MTEwNCAxMTcyIDExQjQ7QjcxOTsxMTA0IDExNzIgMTFCNDsKK0I3MUE7QjcxQTsxMTA0IDExNzIgMTFCNTtCNzFBOzExMDQgMTE3MiAxMUI1OworQjcxQjtCNzFCOzExMDQgMTE3MiAxMUI2O0I3MUI7MTEwNCAxMTcyIDExQjY7CitCNzFDO0I3MUM7MTEwNCAxMTcyIDExQjc7QjcxQzsxMTA0IDExNzIgMTFCNzsKK0I3MUQ7QjcxRDsxMTA0IDExNzIgMTFCODtCNzFEOzExMDQgMTE3MiAxMUI4OworQjcxRTtCNzFFOzExMDQgMTE3MiAxMUI5O0I3MUU7MTEwNCAxMTcyIDExQjk7CitCNzFGO0I3MUY7MTEwNCAxMTcyIDExQkE7QjcxRjsxMTA0IDExNzIgMTFCQTsKK0I3MjA7QjcyMDsxMTA0IDExNzIgMTFCQjtCNzIwOzExMDQgMTE3MiAxMUJCOworQjcyMTtCNzIxOzExMDQgMTE3MiAxMUJDO0I3MjE7MTEwNCAxMTcyIDExQkM7CitCNzIyO0I3MjI7MTEwNCAxMTcyIDExQkQ7QjcyMjsxMTA0IDExNzIgMTFCRDsKK0I3MjM7QjcyMzsxMTA0IDExNzIgMTFCRTtCNzIzOzExMDQgMTE3MiAxMUJFOworQjcyNDtCNzI0OzExMDQgMTE3MiAxMUJGO0I3MjQ7MTEwNCAxMTcyIDExQkY7CitCNzI1O0I3MjU7MTEwNCAxMTcyIDExQzA7QjcyNTsxMTA0IDExNzIgMTFDMDsKK0I3MjY7QjcyNjsxMTA0IDExNzIgMTFDMTtCNzI2OzExMDQgMTE3MiAxMUMxOworQjcyNztCNzI3OzExMDQgMTE3MiAxMUMyO0I3Mjc7MTEwNCAxMTcyIDExQzI7CitCNzI4O0I3Mjg7MTEwNCAxMTczO0I3Mjg7MTEwNCAxMTczOworQjcyOTtCNzI5OzExMDQgMTE3MyAxMUE4O0I3Mjk7MTEwNCAxMTczIDExQTg7CitCNzJBO0I3MkE7MTEwNCAxMTczIDExQTk7QjcyQTsxMTA0IDExNzMgMTFBOTsKK0I3MkI7QjcyQjsxMTA0IDExNzMgMTFBQTtCNzJCOzExMDQgMTE3MyAxMUFBOworQjcyQztCNzJDOzExMDQgMTE3MyAxMUFCO0I3MkM7MTEwNCAxMTczIDExQUI7CitCNzJEO0I3MkQ7MTEwNCAxMTczIDExQUM7QjcyRDsxMTA0IDExNzMgMTFBQzsKK0I3MkU7QjcyRTsxMTA0IDExNzMgMTFBRDtCNzJFOzExMDQgMTE3MyAxMUFEOworQjcyRjtCNzJGOzExMDQgMTE3MyAxMUFFO0I3MkY7MTEwNCAxMTczIDExQUU7CitCNzMwO0I3MzA7MTEwNCAxMTczIDExQUY7QjczMDsxMTA0IDExNzMgMTFBRjsKK0I3MzE7QjczMTsxMTA0IDExNzMgMTFCMDtCNzMxOzExMDQgMTE3MyAxMUIwOworQjczMjtCNzMyOzExMDQgMTE3MyAxMUIxO0I3MzI7MTEwNCAxMTczIDExQjE7CitCNzMzO0I3MzM7MTEwNCAxMTczIDExQjI7QjczMzsxMTA0IDExNzMgMTFCMjsKK0I3MzQ7QjczNDsxMTA0IDExNzMgMTFCMztCNzM0OzExMDQgMTE3MyAxMUIzOworQjczNTtCNzM1OzExMDQgMTE3MyAxMUI0O0I3MzU7MTEwNCAxMTczIDExQjQ7CitCNzM2O0I3MzY7MTEwNCAxMTczIDExQjU7QjczNjsxMTA0IDExNzMgMTFCNTsKK0I3Mzc7QjczNzsxMTA0IDExNzMgMTFCNjtCNzM3OzExMDQgMTE3MyAxMUI2OworQjczODtCNzM4OzExMDQgMTE3MyAxMUI3O0I3Mzg7MTEwNCAxMTczIDExQjc7CitCNzM5O0I3Mzk7MTEwNCAxMTczIDExQjg7QjczOTsxMTA0IDExNzMgMTFCODsKK0I3M0E7QjczQTsxMTA0IDExNzMgMTFCOTtCNzNBOzExMDQgMTE3MyAxMUI5OworQjczQjtCNzNCOzExMDQgMTE3MyAxMUJBO0I3M0I7MTEwNCAxMTczIDExQkE7CitCNzNDO0I3M0M7MTEwNCAxMTczIDExQkI7QjczQzsxMTA0IDExNzMgMTFCQjsKK0I3M0Q7QjczRDsxMTA0IDExNzMgMTFCQztCNzNEOzExMDQgMTE3MyAxMUJDOworQjczRTtCNzNFOzExMDQgMTE3MyAxMUJEO0I3M0U7MTEwNCAxMTczIDExQkQ7CitCNzNGO0I3M0Y7MTEwNCAxMTczIDExQkU7QjczRjsxMTA0IDExNzMgMTFCRTsKK0I3NDA7Qjc0MDsxMTA0IDExNzMgMTFCRjtCNzQwOzExMDQgMTE3MyAxMUJGOworQjc0MTtCNzQxOzExMDQgMTE3MyAxMUMwO0I3NDE7MTEwNCAxMTczIDExQzA7CitCNzQyO0I3NDI7MTEwNCAxMTczIDExQzE7Qjc0MjsxMTA0IDExNzMgMTFDMTsKK0I3NDM7Qjc0MzsxMTA0IDExNzMgMTFDMjtCNzQzOzExMDQgMTE3MyAxMUMyOworQjc0NDtCNzQ0OzExMDQgMTE3NDtCNzQ0OzExMDQgMTE3NDsKK0I3NDU7Qjc0NTsxMTA0IDExNzQgMTFBODtCNzQ1OzExMDQgMTE3NCAxMUE4OworQjc0NjtCNzQ2OzExMDQgMTE3NCAxMUE5O0I3NDY7MTEwNCAxMTc0IDExQTk7CitCNzQ3O0I3NDc7MTEwNCAxMTc0IDExQUE7Qjc0NzsxMTA0IDExNzQgMTFBQTsKK0I3NDg7Qjc0ODsxMTA0IDExNzQgMTFBQjtCNzQ4OzExMDQgMTE3NCAxMUFCOworQjc0OTtCNzQ5OzExMDQgMTE3NCAxMUFDO0I3NDk7MTEwNCAxMTc0IDExQUM7CitCNzRBO0I3NEE7MTEwNCAxMTc0IDExQUQ7Qjc0QTsxMTA0IDExNzQgMTFBRDsKK0I3NEI7Qjc0QjsxMTA0IDExNzQgMTFBRTtCNzRCOzExMDQgMTE3NCAxMUFFOworQjc0QztCNzRDOzExMDQgMTE3NCAxMUFGO0I3NEM7MTEwNCAxMTc0IDExQUY7CitCNzREO0I3NEQ7MTEwNCAxMTc0IDExQjA7Qjc0RDsxMTA0IDExNzQgMTFCMDsKK0I3NEU7Qjc0RTsxMTA0IDExNzQgMTFCMTtCNzRFOzExMDQgMTE3NCAxMUIxOworQjc0RjtCNzRGOzExMDQgMTE3NCAxMUIyO0I3NEY7MTEwNCAxMTc0IDExQjI7CitCNzUwO0I3NTA7MTEwNCAxMTc0IDExQjM7Qjc1MDsxMTA0IDExNzQgMTFCMzsKK0I3NTE7Qjc1MTsxMTA0IDExNzQgMTFCNDtCNzUxOzExMDQgMTE3NCAxMUI0OworQjc1MjtCNzUyOzExMDQgMTE3NCAxMUI1O0I3NTI7MTEwNCAxMTc0IDExQjU7CitCNzUzO0I3NTM7MTEwNCAxMTc0IDExQjY7Qjc1MzsxMTA0IDExNzQgMTFCNjsKK0I3NTQ7Qjc1NDsxMTA0IDExNzQgMTFCNztCNzU0OzExMDQgMTE3NCAxMUI3OworQjc1NTtCNzU1OzExMDQgMTE3NCAxMUI4O0I3NTU7MTEwNCAxMTc0IDExQjg7CitCNzU2O0I3NTY7MTEwNCAxMTc0IDExQjk7Qjc1NjsxMTA0IDExNzQgMTFCOTsKK0I3NTc7Qjc1NzsxMTA0IDExNzQgMTFCQTtCNzU3OzExMDQgMTE3NCAxMUJBOworQjc1ODtCNzU4OzExMDQgMTE3NCAxMUJCO0I3NTg7MTEwNCAxMTc0IDExQkI7CitCNzU5O0I3NTk7MTEwNCAxMTc0IDExQkM7Qjc1OTsxMTA0IDExNzQgMTFCQzsKK0I3NUE7Qjc1QTsxMTA0IDExNzQgMTFCRDtCNzVBOzExMDQgMTE3NCAxMUJEOworQjc1QjtCNzVCOzExMDQgMTE3NCAxMUJFO0I3NUI7MTEwNCAxMTc0IDExQkU7CitCNzVDO0I3NUM7MTEwNCAxMTc0IDExQkY7Qjc1QzsxMTA0IDExNzQgMTFCRjsKK0I3NUQ7Qjc1RDsxMTA0IDExNzQgMTFDMDtCNzVEOzExMDQgMTE3NCAxMUMwOworQjc1RTtCNzVFOzExMDQgMTE3NCAxMUMxO0I3NUU7MTEwNCAxMTc0IDExQzE7CitCNzVGO0I3NUY7MTEwNCAxMTc0IDExQzI7Qjc1RjsxMTA0IDExNzQgMTFDMjsKK0I3NjA7Qjc2MDsxMTA0IDExNzU7Qjc2MDsxMTA0IDExNzU7CitCNzYxO0I3NjE7MTEwNCAxMTc1IDExQTg7Qjc2MTsxMTA0IDExNzUgMTFBODsKK0I3NjI7Qjc2MjsxMTA0IDExNzUgMTFBOTtCNzYyOzExMDQgMTE3NSAxMUE5OworQjc2MztCNzYzOzExMDQgMTE3NSAxMUFBO0I3NjM7MTEwNCAxMTc1IDExQUE7CitCNzY0O0I3NjQ7MTEwNCAxMTc1IDExQUI7Qjc2NDsxMTA0IDExNzUgMTFBQjsKK0I3NjU7Qjc2NTsxMTA0IDExNzUgMTFBQztCNzY1OzExMDQgMTE3NSAxMUFDOworQjc2NjtCNzY2OzExMDQgMTE3NSAxMUFEO0I3NjY7MTEwNCAxMTc1IDExQUQ7CitCNzY3O0I3Njc7MTEwNCAxMTc1IDExQUU7Qjc2NzsxMTA0IDExNzUgMTFBRTsKK0I3Njg7Qjc2ODsxMTA0IDExNzUgMTFBRjtCNzY4OzExMDQgMTE3NSAxMUFGOworQjc2OTtCNzY5OzExMDQgMTE3NSAxMUIwO0I3Njk7MTEwNCAxMTc1IDExQjA7CitCNzZBO0I3NkE7MTEwNCAxMTc1IDExQjE7Qjc2QTsxMTA0IDExNzUgMTFCMTsKK0I3NkI7Qjc2QjsxMTA0IDExNzUgMTFCMjtCNzZCOzExMDQgMTE3NSAxMUIyOworQjc2QztCNzZDOzExMDQgMTE3NSAxMUIzO0I3NkM7MTEwNCAxMTc1IDExQjM7CitCNzZEO0I3NkQ7MTEwNCAxMTc1IDExQjQ7Qjc2RDsxMTA0IDExNzUgMTFCNDsKK0I3NkU7Qjc2RTsxMTA0IDExNzUgMTFCNTtCNzZFOzExMDQgMTE3NSAxMUI1OworQjc2RjtCNzZGOzExMDQgMTE3NSAxMUI2O0I3NkY7MTEwNCAxMTc1IDExQjY7CitCNzcwO0I3NzA7MTEwNCAxMTc1IDExQjc7Qjc3MDsxMTA0IDExNzUgMTFCNzsKK0I3NzE7Qjc3MTsxMTA0IDExNzUgMTFCODtCNzcxOzExMDQgMTE3NSAxMUI4OworQjc3MjtCNzcyOzExMDQgMTE3NSAxMUI5O0I3NzI7MTEwNCAxMTc1IDExQjk7CitCNzczO0I3NzM7MTEwNCAxMTc1IDExQkE7Qjc3MzsxMTA0IDExNzUgMTFCQTsKK0I3NzQ7Qjc3NDsxMTA0IDExNzUgMTFCQjtCNzc0OzExMDQgMTE3NSAxMUJCOworQjc3NTtCNzc1OzExMDQgMTE3NSAxMUJDO0I3NzU7MTEwNCAxMTc1IDExQkM7CitCNzc2O0I3NzY7MTEwNCAxMTc1IDExQkQ7Qjc3NjsxMTA0IDExNzUgMTFCRDsKK0I3Nzc7Qjc3NzsxMTA0IDExNzUgMTFCRTtCNzc3OzExMDQgMTE3NSAxMUJFOworQjc3ODtCNzc4OzExMDQgMTE3NSAxMUJGO0I3Nzg7MTEwNCAxMTc1IDExQkY7CitCNzc5O0I3Nzk7MTEwNCAxMTc1IDExQzA7Qjc3OTsxMTA0IDExNzUgMTFDMDsKK0I3N0E7Qjc3QTsxMTA0IDExNzUgMTFDMTtCNzdBOzExMDQgMTE3NSAxMUMxOworQjc3QjtCNzdCOzExMDQgMTE3NSAxMUMyO0I3N0I7MTEwNCAxMTc1IDExQzI7CitCNzdDO0I3N0M7MTEwNSAxMTYxO0I3N0M7MTEwNSAxMTYxOworQjc3RDtCNzdEOzExMDUgMTE2MSAxMUE4O0I3N0Q7MTEwNSAxMTYxIDExQTg7CitCNzdFO0I3N0U7MTEwNSAxMTYxIDExQTk7Qjc3RTsxMTA1IDExNjEgMTFBOTsKK0I3N0Y7Qjc3RjsxMTA1IDExNjEgMTFBQTtCNzdGOzExMDUgMTE2MSAxMUFBOworQjc4MDtCNzgwOzExMDUgMTE2MSAxMUFCO0I3ODA7MTEwNSAxMTYxIDExQUI7CitCNzgxO0I3ODE7MTEwNSAxMTYxIDExQUM7Qjc4MTsxMTA1IDExNjEgMTFBQzsKK0I3ODI7Qjc4MjsxMTA1IDExNjEgMTFBRDtCNzgyOzExMDUgMTE2MSAxMUFEOworQjc4MztCNzgzOzExMDUgMTE2MSAxMUFFO0I3ODM7MTEwNSAxMTYxIDExQUU7CitCNzg0O0I3ODQ7MTEwNSAxMTYxIDExQUY7Qjc4NDsxMTA1IDExNjEgMTFBRjsKK0I3ODU7Qjc4NTsxMTA1IDExNjEgMTFCMDtCNzg1OzExMDUgMTE2MSAxMUIwOworQjc4NjtCNzg2OzExMDUgMTE2MSAxMUIxO0I3ODY7MTEwNSAxMTYxIDExQjE7CitCNzg3O0I3ODc7MTEwNSAxMTYxIDExQjI7Qjc4NzsxMTA1IDExNjEgMTFCMjsKK0I3ODg7Qjc4ODsxMTA1IDExNjEgMTFCMztCNzg4OzExMDUgMTE2MSAxMUIzOworQjc4OTtCNzg5OzExMDUgMTE2MSAxMUI0O0I3ODk7MTEwNSAxMTYxIDExQjQ7CitCNzhBO0I3OEE7MTEwNSAxMTYxIDExQjU7Qjc4QTsxMTA1IDExNjEgMTFCNTsKK0I3OEI7Qjc4QjsxMTA1IDExNjEgMTFCNjtCNzhCOzExMDUgMTE2MSAxMUI2OworQjc4QztCNzhDOzExMDUgMTE2MSAxMUI3O0I3OEM7MTEwNSAxMTYxIDExQjc7CitCNzhEO0I3OEQ7MTEwNSAxMTYxIDExQjg7Qjc4RDsxMTA1IDExNjEgMTFCODsKK0I3OEU7Qjc4RTsxMTA1IDExNjEgMTFCOTtCNzhFOzExMDUgMTE2MSAxMUI5OworQjc4RjtCNzhGOzExMDUgMTE2MSAxMUJBO0I3OEY7MTEwNSAxMTYxIDExQkE7CitCNzkwO0I3OTA7MTEwNSAxMTYxIDExQkI7Qjc5MDsxMTA1IDExNjEgMTFCQjsKK0I3OTE7Qjc5MTsxMTA1IDExNjEgMTFCQztCNzkxOzExMDUgMTE2MSAxMUJDOworQjc5MjtCNzkyOzExMDUgMTE2MSAxMUJEO0I3OTI7MTEwNSAxMTYxIDExQkQ7CitCNzkzO0I3OTM7MTEwNSAxMTYxIDExQkU7Qjc5MzsxMTA1IDExNjEgMTFCRTsKK0I3OTQ7Qjc5NDsxMTA1IDExNjEgMTFCRjtCNzk0OzExMDUgMTE2MSAxMUJGOworQjc5NTtCNzk1OzExMDUgMTE2MSAxMUMwO0I3OTU7MTEwNSAxMTYxIDExQzA7CitCNzk2O0I3OTY7MTEwNSAxMTYxIDExQzE7Qjc5NjsxMTA1IDExNjEgMTFDMTsKK0I3OTc7Qjc5NzsxMTA1IDExNjEgMTFDMjtCNzk3OzExMDUgMTE2MSAxMUMyOworQjc5ODtCNzk4OzExMDUgMTE2MjtCNzk4OzExMDUgMTE2MjsKK0I3OTk7Qjc5OTsxMTA1IDExNjIgMTFBODtCNzk5OzExMDUgMTE2MiAxMUE4OworQjc5QTtCNzlBOzExMDUgMTE2MiAxMUE5O0I3OUE7MTEwNSAxMTYyIDExQTk7CitCNzlCO0I3OUI7MTEwNSAxMTYyIDExQUE7Qjc5QjsxMTA1IDExNjIgMTFBQTsKK0I3OUM7Qjc5QzsxMTA1IDExNjIgMTFBQjtCNzlDOzExMDUgMTE2MiAxMUFCOworQjc5RDtCNzlEOzExMDUgMTE2MiAxMUFDO0I3OUQ7MTEwNSAxMTYyIDExQUM7CitCNzlFO0I3OUU7MTEwNSAxMTYyIDExQUQ7Qjc5RTsxMTA1IDExNjIgMTFBRDsKK0I3OUY7Qjc5RjsxMTA1IDExNjIgMTFBRTtCNzlGOzExMDUgMTE2MiAxMUFFOworQjdBMDtCN0EwOzExMDUgMTE2MiAxMUFGO0I3QTA7MTEwNSAxMTYyIDExQUY7CitCN0ExO0I3QTE7MTEwNSAxMTYyIDExQjA7QjdBMTsxMTA1IDExNjIgMTFCMDsKK0I3QTI7QjdBMjsxMTA1IDExNjIgMTFCMTtCN0EyOzExMDUgMTE2MiAxMUIxOworQjdBMztCN0EzOzExMDUgMTE2MiAxMUIyO0I3QTM7MTEwNSAxMTYyIDExQjI7CitCN0E0O0I3QTQ7MTEwNSAxMTYyIDExQjM7QjdBNDsxMTA1IDExNjIgMTFCMzsKK0I3QTU7QjdBNTsxMTA1IDExNjIgMTFCNDtCN0E1OzExMDUgMTE2MiAxMUI0OworQjdBNjtCN0E2OzExMDUgMTE2MiAxMUI1O0I3QTY7MTEwNSAxMTYyIDExQjU7CitCN0E3O0I3QTc7MTEwNSAxMTYyIDExQjY7QjdBNzsxMTA1IDExNjIgMTFCNjsKK0I3QTg7QjdBODsxMTA1IDExNjIgMTFCNztCN0E4OzExMDUgMTE2MiAxMUI3OworQjdBOTtCN0E5OzExMDUgMTE2MiAxMUI4O0I3QTk7MTEwNSAxMTYyIDExQjg7CitCN0FBO0I3QUE7MTEwNSAxMTYyIDExQjk7QjdBQTsxMTA1IDExNjIgMTFCOTsKK0I3QUI7QjdBQjsxMTA1IDExNjIgMTFCQTtCN0FCOzExMDUgMTE2MiAxMUJBOworQjdBQztCN0FDOzExMDUgMTE2MiAxMUJCO0I3QUM7MTEwNSAxMTYyIDExQkI7CitCN0FEO0I3QUQ7MTEwNSAxMTYyIDExQkM7QjdBRDsxMTA1IDExNjIgMTFCQzsKK0I3QUU7QjdBRTsxMTA1IDExNjIgMTFCRDtCN0FFOzExMDUgMTE2MiAxMUJEOworQjdBRjtCN0FGOzExMDUgMTE2MiAxMUJFO0I3QUY7MTEwNSAxMTYyIDExQkU7CitCN0IwO0I3QjA7MTEwNSAxMTYyIDExQkY7QjdCMDsxMTA1IDExNjIgMTFCRjsKK0I3QjE7QjdCMTsxMTA1IDExNjIgMTFDMDtCN0IxOzExMDUgMTE2MiAxMUMwOworQjdCMjtCN0IyOzExMDUgMTE2MiAxMUMxO0I3QjI7MTEwNSAxMTYyIDExQzE7CitCN0IzO0I3QjM7MTEwNSAxMTYyIDExQzI7QjdCMzsxMTA1IDExNjIgMTFDMjsKK0I3QjQ7QjdCNDsxMTA1IDExNjM7QjdCNDsxMTA1IDExNjM7CitCN0I1O0I3QjU7MTEwNSAxMTYzIDExQTg7QjdCNTsxMTA1IDExNjMgMTFBODsKK0I3QjY7QjdCNjsxMTA1IDExNjMgMTFBOTtCN0I2OzExMDUgMTE2MyAxMUE5OworQjdCNztCN0I3OzExMDUgMTE2MyAxMUFBO0I3Qjc7MTEwNSAxMTYzIDExQUE7CitCN0I4O0I3Qjg7MTEwNSAxMTYzIDExQUI7QjdCODsxMTA1IDExNjMgMTFBQjsKK0I3Qjk7QjdCOTsxMTA1IDExNjMgMTFBQztCN0I5OzExMDUgMTE2MyAxMUFDOworQjdCQTtCN0JBOzExMDUgMTE2MyAxMUFEO0I3QkE7MTEwNSAxMTYzIDExQUQ7CitCN0JCO0I3QkI7MTEwNSAxMTYzIDExQUU7QjdCQjsxMTA1IDExNjMgMTFBRTsKK0I3QkM7QjdCQzsxMTA1IDExNjMgMTFBRjtCN0JDOzExMDUgMTE2MyAxMUFGOworQjdCRDtCN0JEOzExMDUgMTE2MyAxMUIwO0I3QkQ7MTEwNSAxMTYzIDExQjA7CitCN0JFO0I3QkU7MTEwNSAxMTYzIDExQjE7QjdCRTsxMTA1IDExNjMgMTFCMTsKK0I3QkY7QjdCRjsxMTA1IDExNjMgMTFCMjtCN0JGOzExMDUgMTE2MyAxMUIyOworQjdDMDtCN0MwOzExMDUgMTE2MyAxMUIzO0I3QzA7MTEwNSAxMTYzIDExQjM7CitCN0MxO0I3QzE7MTEwNSAxMTYzIDExQjQ7QjdDMTsxMTA1IDExNjMgMTFCNDsKK0I3QzI7QjdDMjsxMTA1IDExNjMgMTFCNTtCN0MyOzExMDUgMTE2MyAxMUI1OworQjdDMztCN0MzOzExMDUgMTE2MyAxMUI2O0I3QzM7MTEwNSAxMTYzIDExQjY7CitCN0M0O0I3QzQ7MTEwNSAxMTYzIDExQjc7QjdDNDsxMTA1IDExNjMgMTFCNzsKK0I3QzU7QjdDNTsxMTA1IDExNjMgMTFCODtCN0M1OzExMDUgMTE2MyAxMUI4OworQjdDNjtCN0M2OzExMDUgMTE2MyAxMUI5O0I3QzY7MTEwNSAxMTYzIDExQjk7CitCN0M3O0I3Qzc7MTEwNSAxMTYzIDExQkE7QjdDNzsxMTA1IDExNjMgMTFCQTsKK0I3Qzg7QjdDODsxMTA1IDExNjMgMTFCQjtCN0M4OzExMDUgMTE2MyAxMUJCOworQjdDOTtCN0M5OzExMDUgMTE2MyAxMUJDO0I3Qzk7MTEwNSAxMTYzIDExQkM7CitCN0NBO0I3Q0E7MTEwNSAxMTYzIDExQkQ7QjdDQTsxMTA1IDExNjMgMTFCRDsKK0I3Q0I7QjdDQjsxMTA1IDExNjMgMTFCRTtCN0NCOzExMDUgMTE2MyAxMUJFOworQjdDQztCN0NDOzExMDUgMTE2MyAxMUJGO0I3Q0M7MTEwNSAxMTYzIDExQkY7CitCN0NEO0I3Q0Q7MTEwNSAxMTYzIDExQzA7QjdDRDsxMTA1IDExNjMgMTFDMDsKK0I3Q0U7QjdDRTsxMTA1IDExNjMgMTFDMTtCN0NFOzExMDUgMTE2MyAxMUMxOworQjdDRjtCN0NGOzExMDUgMTE2MyAxMUMyO0I3Q0Y7MTEwNSAxMTYzIDExQzI7CitCN0QwO0I3RDA7MTEwNSAxMTY0O0I3RDA7MTEwNSAxMTY0OworQjdEMTtCN0QxOzExMDUgMTE2NCAxMUE4O0I3RDE7MTEwNSAxMTY0IDExQTg7CitCN0QyO0I3RDI7MTEwNSAxMTY0IDExQTk7QjdEMjsxMTA1IDExNjQgMTFBOTsKK0I3RDM7QjdEMzsxMTA1IDExNjQgMTFBQTtCN0QzOzExMDUgMTE2NCAxMUFBOworQjdENDtCN0Q0OzExMDUgMTE2NCAxMUFCO0I3RDQ7MTEwNSAxMTY0IDExQUI7CitCN0Q1O0I3RDU7MTEwNSAxMTY0IDExQUM7QjdENTsxMTA1IDExNjQgMTFBQzsKK0I3RDY7QjdENjsxMTA1IDExNjQgMTFBRDtCN0Q2OzExMDUgMTE2NCAxMUFEOworQjdENztCN0Q3OzExMDUgMTE2NCAxMUFFO0I3RDc7MTEwNSAxMTY0IDExQUU7CitCN0Q4O0I3RDg7MTEwNSAxMTY0IDExQUY7QjdEODsxMTA1IDExNjQgMTFBRjsKK0I3RDk7QjdEOTsxMTA1IDExNjQgMTFCMDtCN0Q5OzExMDUgMTE2NCAxMUIwOworQjdEQTtCN0RBOzExMDUgMTE2NCAxMUIxO0I3REE7MTEwNSAxMTY0IDExQjE7CitCN0RCO0I3REI7MTEwNSAxMTY0IDExQjI7QjdEQjsxMTA1IDExNjQgMTFCMjsKK0I3REM7QjdEQzsxMTA1IDExNjQgMTFCMztCN0RDOzExMDUgMTE2NCAxMUIzOworQjdERDtCN0REOzExMDUgMTE2NCAxMUI0O0I3REQ7MTEwNSAxMTY0IDExQjQ7CitCN0RFO0I3REU7MTEwNSAxMTY0IDExQjU7QjdERTsxMTA1IDExNjQgMTFCNTsKK0I3REY7QjdERjsxMTA1IDExNjQgMTFCNjtCN0RGOzExMDUgMTE2NCAxMUI2OworQjdFMDtCN0UwOzExMDUgMTE2NCAxMUI3O0I3RTA7MTEwNSAxMTY0IDExQjc7CitCN0UxO0I3RTE7MTEwNSAxMTY0IDExQjg7QjdFMTsxMTA1IDExNjQgMTFCODsKK0I3RTI7QjdFMjsxMTA1IDExNjQgMTFCOTtCN0UyOzExMDUgMTE2NCAxMUI5OworQjdFMztCN0UzOzExMDUgMTE2NCAxMUJBO0I3RTM7MTEwNSAxMTY0IDExQkE7CitCN0U0O0I3RTQ7MTEwNSAxMTY0IDExQkI7QjdFNDsxMTA1IDExNjQgMTFCQjsKK0I3RTU7QjdFNTsxMTA1IDExNjQgMTFCQztCN0U1OzExMDUgMTE2NCAxMUJDOworQjdFNjtCN0U2OzExMDUgMTE2NCAxMUJEO0I3RTY7MTEwNSAxMTY0IDExQkQ7CitCN0U3O0I3RTc7MTEwNSAxMTY0IDExQkU7QjdFNzsxMTA1IDExNjQgMTFCRTsKK0I3RTg7QjdFODsxMTA1IDExNjQgMTFCRjtCN0U4OzExMDUgMTE2NCAxMUJGOworQjdFOTtCN0U5OzExMDUgMTE2NCAxMUMwO0I3RTk7MTEwNSAxMTY0IDExQzA7CitCN0VBO0I3RUE7MTEwNSAxMTY0IDExQzE7QjdFQTsxMTA1IDExNjQgMTFDMTsKK0I3RUI7QjdFQjsxMTA1IDExNjQgMTFDMjtCN0VCOzExMDUgMTE2NCAxMUMyOworQjdFQztCN0VDOzExMDUgMTE2NTtCN0VDOzExMDUgMTE2NTsKK0I3RUQ7QjdFRDsxMTA1IDExNjUgMTFBODtCN0VEOzExMDUgMTE2NSAxMUE4OworQjdFRTtCN0VFOzExMDUgMTE2NSAxMUE5O0I3RUU7MTEwNSAxMTY1IDExQTk7CitCN0VGO0I3RUY7MTEwNSAxMTY1IDExQUE7QjdFRjsxMTA1IDExNjUgMTFBQTsKK0I3RjA7QjdGMDsxMTA1IDExNjUgMTFBQjtCN0YwOzExMDUgMTE2NSAxMUFCOworQjdGMTtCN0YxOzExMDUgMTE2NSAxMUFDO0I3RjE7MTEwNSAxMTY1IDExQUM7CitCN0YyO0I3RjI7MTEwNSAxMTY1IDExQUQ7QjdGMjsxMTA1IDExNjUgMTFBRDsKK0I3RjM7QjdGMzsxMTA1IDExNjUgMTFBRTtCN0YzOzExMDUgMTE2NSAxMUFFOworQjdGNDtCN0Y0OzExMDUgMTE2NSAxMUFGO0I3RjQ7MTEwNSAxMTY1IDExQUY7CitCN0Y1O0I3RjU7MTEwNSAxMTY1IDExQjA7QjdGNTsxMTA1IDExNjUgMTFCMDsKK0I3RjY7QjdGNjsxMTA1IDExNjUgMTFCMTtCN0Y2OzExMDUgMTE2NSAxMUIxOworQjdGNztCN0Y3OzExMDUgMTE2NSAxMUIyO0I3Rjc7MTEwNSAxMTY1IDExQjI7CitCN0Y4O0I3Rjg7MTEwNSAxMTY1IDExQjM7QjdGODsxMTA1IDExNjUgMTFCMzsKK0I3Rjk7QjdGOTsxMTA1IDExNjUgMTFCNDtCN0Y5OzExMDUgMTE2NSAxMUI0OworQjdGQTtCN0ZBOzExMDUgMTE2NSAxMUI1O0I3RkE7MTEwNSAxMTY1IDExQjU7CitCN0ZCO0I3RkI7MTEwNSAxMTY1IDExQjY7QjdGQjsxMTA1IDExNjUgMTFCNjsKK0I3RkM7QjdGQzsxMTA1IDExNjUgMTFCNztCN0ZDOzExMDUgMTE2NSAxMUI3OworQjdGRDtCN0ZEOzExMDUgMTE2NSAxMUI4O0I3RkQ7MTEwNSAxMTY1IDExQjg7CitCN0ZFO0I3RkU7MTEwNSAxMTY1IDExQjk7QjdGRTsxMTA1IDExNjUgMTFCOTsKK0I3RkY7QjdGRjsxMTA1IDExNjUgMTFCQTtCN0ZGOzExMDUgMTE2NSAxMUJBOworQjgwMDtCODAwOzExMDUgMTE2NSAxMUJCO0I4MDA7MTEwNSAxMTY1IDExQkI7CitCODAxO0I4MDE7MTEwNSAxMTY1IDExQkM7QjgwMTsxMTA1IDExNjUgMTFCQzsKK0I4MDI7QjgwMjsxMTA1IDExNjUgMTFCRDtCODAyOzExMDUgMTE2NSAxMUJEOworQjgwMztCODAzOzExMDUgMTE2NSAxMUJFO0I4MDM7MTEwNSAxMTY1IDExQkU7CitCODA0O0I4MDQ7MTEwNSAxMTY1IDExQkY7QjgwNDsxMTA1IDExNjUgMTFCRjsKK0I4MDU7QjgwNTsxMTA1IDExNjUgMTFDMDtCODA1OzExMDUgMTE2NSAxMUMwOworQjgwNjtCODA2OzExMDUgMTE2NSAxMUMxO0I4MDY7MTEwNSAxMTY1IDExQzE7CitCODA3O0I4MDc7MTEwNSAxMTY1IDExQzI7QjgwNzsxMTA1IDExNjUgMTFDMjsKK0I4MDg7QjgwODsxMTA1IDExNjY7QjgwODsxMTA1IDExNjY7CitCODA5O0I4MDk7MTEwNSAxMTY2IDExQTg7QjgwOTsxMTA1IDExNjYgMTFBODsKK0I4MEE7QjgwQTsxMTA1IDExNjYgMTFBOTtCODBBOzExMDUgMTE2NiAxMUE5OworQjgwQjtCODBCOzExMDUgMTE2NiAxMUFBO0I4MEI7MTEwNSAxMTY2IDExQUE7CitCODBDO0I4MEM7MTEwNSAxMTY2IDExQUI7QjgwQzsxMTA1IDExNjYgMTFBQjsKK0I4MEQ7QjgwRDsxMTA1IDExNjYgMTFBQztCODBEOzExMDUgMTE2NiAxMUFDOworQjgwRTtCODBFOzExMDUgMTE2NiAxMUFEO0I4MEU7MTEwNSAxMTY2IDExQUQ7CitCODBGO0I4MEY7MTEwNSAxMTY2IDExQUU7QjgwRjsxMTA1IDExNjYgMTFBRTsKK0I4MTA7QjgxMDsxMTA1IDExNjYgMTFBRjtCODEwOzExMDUgMTE2NiAxMUFGOworQjgxMTtCODExOzExMDUgMTE2NiAxMUIwO0I4MTE7MTEwNSAxMTY2IDExQjA7CitCODEyO0I4MTI7MTEwNSAxMTY2IDExQjE7QjgxMjsxMTA1IDExNjYgMTFCMTsKK0I4MTM7QjgxMzsxMTA1IDExNjYgMTFCMjtCODEzOzExMDUgMTE2NiAxMUIyOworQjgxNDtCODE0OzExMDUgMTE2NiAxMUIzO0I4MTQ7MTEwNSAxMTY2IDExQjM7CitCODE1O0I4MTU7MTEwNSAxMTY2IDExQjQ7QjgxNTsxMTA1IDExNjYgMTFCNDsKK0I4MTY7QjgxNjsxMTA1IDExNjYgMTFCNTtCODE2OzExMDUgMTE2NiAxMUI1OworQjgxNztCODE3OzExMDUgMTE2NiAxMUI2O0I4MTc7MTEwNSAxMTY2IDExQjY7CitCODE4O0I4MTg7MTEwNSAxMTY2IDExQjc7QjgxODsxMTA1IDExNjYgMTFCNzsKK0I4MTk7QjgxOTsxMTA1IDExNjYgMTFCODtCODE5OzExMDUgMTE2NiAxMUI4OworQjgxQTtCODFBOzExMDUgMTE2NiAxMUI5O0I4MUE7MTEwNSAxMTY2IDExQjk7CitCODFCO0I4MUI7MTEwNSAxMTY2IDExQkE7QjgxQjsxMTA1IDExNjYgMTFCQTsKK0I4MUM7QjgxQzsxMTA1IDExNjYgMTFCQjtCODFDOzExMDUgMTE2NiAxMUJCOworQjgxRDtCODFEOzExMDUgMTE2NiAxMUJDO0I4MUQ7MTEwNSAxMTY2IDExQkM7CitCODFFO0I4MUU7MTEwNSAxMTY2IDExQkQ7QjgxRTsxMTA1IDExNjYgMTFCRDsKK0I4MUY7QjgxRjsxMTA1IDExNjYgMTFCRTtCODFGOzExMDUgMTE2NiAxMUJFOworQjgyMDtCODIwOzExMDUgMTE2NiAxMUJGO0I4MjA7MTEwNSAxMTY2IDExQkY7CitCODIxO0I4MjE7MTEwNSAxMTY2IDExQzA7QjgyMTsxMTA1IDExNjYgMTFDMDsKK0I4MjI7QjgyMjsxMTA1IDExNjYgMTFDMTtCODIyOzExMDUgMTE2NiAxMUMxOworQjgyMztCODIzOzExMDUgMTE2NiAxMUMyO0I4MjM7MTEwNSAxMTY2IDExQzI7CitCODI0O0I4MjQ7MTEwNSAxMTY3O0I4MjQ7MTEwNSAxMTY3OworQjgyNTtCODI1OzExMDUgMTE2NyAxMUE4O0I4MjU7MTEwNSAxMTY3IDExQTg7CitCODI2O0I4MjY7MTEwNSAxMTY3IDExQTk7QjgyNjsxMTA1IDExNjcgMTFBOTsKK0I4Mjc7QjgyNzsxMTA1IDExNjcgMTFBQTtCODI3OzExMDUgMTE2NyAxMUFBOworQjgyODtCODI4OzExMDUgMTE2NyAxMUFCO0I4Mjg7MTEwNSAxMTY3IDExQUI7CitCODI5O0I4Mjk7MTEwNSAxMTY3IDExQUM7QjgyOTsxMTA1IDExNjcgMTFBQzsKK0I4MkE7QjgyQTsxMTA1IDExNjcgMTFBRDtCODJBOzExMDUgMTE2NyAxMUFEOworQjgyQjtCODJCOzExMDUgMTE2NyAxMUFFO0I4MkI7MTEwNSAxMTY3IDExQUU7CitCODJDO0I4MkM7MTEwNSAxMTY3IDExQUY7QjgyQzsxMTA1IDExNjcgMTFBRjsKK0I4MkQ7QjgyRDsxMTA1IDExNjcgMTFCMDtCODJEOzExMDUgMTE2NyAxMUIwOworQjgyRTtCODJFOzExMDUgMTE2NyAxMUIxO0I4MkU7MTEwNSAxMTY3IDExQjE7CitCODJGO0I4MkY7MTEwNSAxMTY3IDExQjI7QjgyRjsxMTA1IDExNjcgMTFCMjsKK0I4MzA7QjgzMDsxMTA1IDExNjcgMTFCMztCODMwOzExMDUgMTE2NyAxMUIzOworQjgzMTtCODMxOzExMDUgMTE2NyAxMUI0O0I4MzE7MTEwNSAxMTY3IDExQjQ7CitCODMyO0I4MzI7MTEwNSAxMTY3IDExQjU7QjgzMjsxMTA1IDExNjcgMTFCNTsKK0I4MzM7QjgzMzsxMTA1IDExNjcgMTFCNjtCODMzOzExMDUgMTE2NyAxMUI2OworQjgzNDtCODM0OzExMDUgMTE2NyAxMUI3O0I4MzQ7MTEwNSAxMTY3IDExQjc7CitCODM1O0I4MzU7MTEwNSAxMTY3IDExQjg7QjgzNTsxMTA1IDExNjcgMTFCODsKK0I4MzY7QjgzNjsxMTA1IDExNjcgMTFCOTtCODM2OzExMDUgMTE2NyAxMUI5OworQjgzNztCODM3OzExMDUgMTE2NyAxMUJBO0I4Mzc7MTEwNSAxMTY3IDExQkE7CitCODM4O0I4Mzg7MTEwNSAxMTY3IDExQkI7QjgzODsxMTA1IDExNjcgMTFCQjsKK0I4Mzk7QjgzOTsxMTA1IDExNjcgMTFCQztCODM5OzExMDUgMTE2NyAxMUJDOworQjgzQTtCODNBOzExMDUgMTE2NyAxMUJEO0I4M0E7MTEwNSAxMTY3IDExQkQ7CitCODNCO0I4M0I7MTEwNSAxMTY3IDExQkU7QjgzQjsxMTA1IDExNjcgMTFCRTsKK0I4M0M7QjgzQzsxMTA1IDExNjcgMTFCRjtCODNDOzExMDUgMTE2NyAxMUJGOworQjgzRDtCODNEOzExMDUgMTE2NyAxMUMwO0I4M0Q7MTEwNSAxMTY3IDExQzA7CitCODNFO0I4M0U7MTEwNSAxMTY3IDExQzE7QjgzRTsxMTA1IDExNjcgMTFDMTsKK0I4M0Y7QjgzRjsxMTA1IDExNjcgMTFDMjtCODNGOzExMDUgMTE2NyAxMUMyOworQjg0MDtCODQwOzExMDUgMTE2ODtCODQwOzExMDUgMTE2ODsKK0I4NDE7Qjg0MTsxMTA1IDExNjggMTFBODtCODQxOzExMDUgMTE2OCAxMUE4OworQjg0MjtCODQyOzExMDUgMTE2OCAxMUE5O0I4NDI7MTEwNSAxMTY4IDExQTk7CitCODQzO0I4NDM7MTEwNSAxMTY4IDExQUE7Qjg0MzsxMTA1IDExNjggMTFBQTsKK0I4NDQ7Qjg0NDsxMTA1IDExNjggMTFBQjtCODQ0OzExMDUgMTE2OCAxMUFCOworQjg0NTtCODQ1OzExMDUgMTE2OCAxMUFDO0I4NDU7MTEwNSAxMTY4IDExQUM7CitCODQ2O0I4NDY7MTEwNSAxMTY4IDExQUQ7Qjg0NjsxMTA1IDExNjggMTFBRDsKK0I4NDc7Qjg0NzsxMTA1IDExNjggMTFBRTtCODQ3OzExMDUgMTE2OCAxMUFFOworQjg0ODtCODQ4OzExMDUgMTE2OCAxMUFGO0I4NDg7MTEwNSAxMTY4IDExQUY7CitCODQ5O0I4NDk7MTEwNSAxMTY4IDExQjA7Qjg0OTsxMTA1IDExNjggMTFCMDsKK0I4NEE7Qjg0QTsxMTA1IDExNjggMTFCMTtCODRBOzExMDUgMTE2OCAxMUIxOworQjg0QjtCODRCOzExMDUgMTE2OCAxMUIyO0I4NEI7MTEwNSAxMTY4IDExQjI7CitCODRDO0I4NEM7MTEwNSAxMTY4IDExQjM7Qjg0QzsxMTA1IDExNjggMTFCMzsKK0I4NEQ7Qjg0RDsxMTA1IDExNjggMTFCNDtCODREOzExMDUgMTE2OCAxMUI0OworQjg0RTtCODRFOzExMDUgMTE2OCAxMUI1O0I4NEU7MTEwNSAxMTY4IDExQjU7CitCODRGO0I4NEY7MTEwNSAxMTY4IDExQjY7Qjg0RjsxMTA1IDExNjggMTFCNjsKK0I4NTA7Qjg1MDsxMTA1IDExNjggMTFCNztCODUwOzExMDUgMTE2OCAxMUI3OworQjg1MTtCODUxOzExMDUgMTE2OCAxMUI4O0I4NTE7MTEwNSAxMTY4IDExQjg7CitCODUyO0I4NTI7MTEwNSAxMTY4IDExQjk7Qjg1MjsxMTA1IDExNjggMTFCOTsKK0I4NTM7Qjg1MzsxMTA1IDExNjggMTFCQTtCODUzOzExMDUgMTE2OCAxMUJBOworQjg1NDtCODU0OzExMDUgMTE2OCAxMUJCO0I4NTQ7MTEwNSAxMTY4IDExQkI7CitCODU1O0I4NTU7MTEwNSAxMTY4IDExQkM7Qjg1NTsxMTA1IDExNjggMTFCQzsKK0I4NTY7Qjg1NjsxMTA1IDExNjggMTFCRDtCODU2OzExMDUgMTE2OCAxMUJEOworQjg1NztCODU3OzExMDUgMTE2OCAxMUJFO0I4NTc7MTEwNSAxMTY4IDExQkU7CitCODU4O0I4NTg7MTEwNSAxMTY4IDExQkY7Qjg1ODsxMTA1IDExNjggMTFCRjsKK0I4NTk7Qjg1OTsxMTA1IDExNjggMTFDMDtCODU5OzExMDUgMTE2OCAxMUMwOworQjg1QTtCODVBOzExMDUgMTE2OCAxMUMxO0I4NUE7MTEwNSAxMTY4IDExQzE7CitCODVCO0I4NUI7MTEwNSAxMTY4IDExQzI7Qjg1QjsxMTA1IDExNjggMTFDMjsKK0I4NUM7Qjg1QzsxMTA1IDExNjk7Qjg1QzsxMTA1IDExNjk7CitCODVEO0I4NUQ7MTEwNSAxMTY5IDExQTg7Qjg1RDsxMTA1IDExNjkgMTFBODsKK0I4NUU7Qjg1RTsxMTA1IDExNjkgMTFBOTtCODVFOzExMDUgMTE2OSAxMUE5OworQjg1RjtCODVGOzExMDUgMTE2OSAxMUFBO0I4NUY7MTEwNSAxMTY5IDExQUE7CitCODYwO0I4NjA7MTEwNSAxMTY5IDExQUI7Qjg2MDsxMTA1IDExNjkgMTFBQjsKK0I4NjE7Qjg2MTsxMTA1IDExNjkgMTFBQztCODYxOzExMDUgMTE2OSAxMUFDOworQjg2MjtCODYyOzExMDUgMTE2OSAxMUFEO0I4NjI7MTEwNSAxMTY5IDExQUQ7CitCODYzO0I4NjM7MTEwNSAxMTY5IDExQUU7Qjg2MzsxMTA1IDExNjkgMTFBRTsKK0I4NjQ7Qjg2NDsxMTA1IDExNjkgMTFBRjtCODY0OzExMDUgMTE2OSAxMUFGOworQjg2NTtCODY1OzExMDUgMTE2OSAxMUIwO0I4NjU7MTEwNSAxMTY5IDExQjA7CitCODY2O0I4NjY7MTEwNSAxMTY5IDExQjE7Qjg2NjsxMTA1IDExNjkgMTFCMTsKK0I4Njc7Qjg2NzsxMTA1IDExNjkgMTFCMjtCODY3OzExMDUgMTE2OSAxMUIyOworQjg2ODtCODY4OzExMDUgMTE2OSAxMUIzO0I4Njg7MTEwNSAxMTY5IDExQjM7CitCODY5O0I4Njk7MTEwNSAxMTY5IDExQjQ7Qjg2OTsxMTA1IDExNjkgMTFCNDsKK0I4NkE7Qjg2QTsxMTA1IDExNjkgMTFCNTtCODZBOzExMDUgMTE2OSAxMUI1OworQjg2QjtCODZCOzExMDUgMTE2OSAxMUI2O0I4NkI7MTEwNSAxMTY5IDExQjY7CitCODZDO0I4NkM7MTEwNSAxMTY5IDExQjc7Qjg2QzsxMTA1IDExNjkgMTFCNzsKK0I4NkQ7Qjg2RDsxMTA1IDExNjkgMTFCODtCODZEOzExMDUgMTE2OSAxMUI4OworQjg2RTtCODZFOzExMDUgMTE2OSAxMUI5O0I4NkU7MTEwNSAxMTY5IDExQjk7CitCODZGO0I4NkY7MTEwNSAxMTY5IDExQkE7Qjg2RjsxMTA1IDExNjkgMTFCQTsKK0I4NzA7Qjg3MDsxMTA1IDExNjkgMTFCQjtCODcwOzExMDUgMTE2OSAxMUJCOworQjg3MTtCODcxOzExMDUgMTE2OSAxMUJDO0I4NzE7MTEwNSAxMTY5IDExQkM7CitCODcyO0I4NzI7MTEwNSAxMTY5IDExQkQ7Qjg3MjsxMTA1IDExNjkgMTFCRDsKK0I4NzM7Qjg3MzsxMTA1IDExNjkgMTFCRTtCODczOzExMDUgMTE2OSAxMUJFOworQjg3NDtCODc0OzExMDUgMTE2OSAxMUJGO0I4NzQ7MTEwNSAxMTY5IDExQkY7CitCODc1O0I4NzU7MTEwNSAxMTY5IDExQzA7Qjg3NTsxMTA1IDExNjkgMTFDMDsKK0I4NzY7Qjg3NjsxMTA1IDExNjkgMTFDMTtCODc2OzExMDUgMTE2OSAxMUMxOworQjg3NztCODc3OzExMDUgMTE2OSAxMUMyO0I4Nzc7MTEwNSAxMTY5IDExQzI7CitCODc4O0I4Nzg7MTEwNSAxMTZBO0I4Nzg7MTEwNSAxMTZBOworQjg3OTtCODc5OzExMDUgMTE2QSAxMUE4O0I4Nzk7MTEwNSAxMTZBIDExQTg7CitCODdBO0I4N0E7MTEwNSAxMTZBIDExQTk7Qjg3QTsxMTA1IDExNkEgMTFBOTsKK0I4N0I7Qjg3QjsxMTA1IDExNkEgMTFBQTtCODdCOzExMDUgMTE2QSAxMUFBOworQjg3QztCODdDOzExMDUgMTE2QSAxMUFCO0I4N0M7MTEwNSAxMTZBIDExQUI7CitCODdEO0I4N0Q7MTEwNSAxMTZBIDExQUM7Qjg3RDsxMTA1IDExNkEgMTFBQzsKK0I4N0U7Qjg3RTsxMTA1IDExNkEgMTFBRDtCODdFOzExMDUgMTE2QSAxMUFEOworQjg3RjtCODdGOzExMDUgMTE2QSAxMUFFO0I4N0Y7MTEwNSAxMTZBIDExQUU7CitCODgwO0I4ODA7MTEwNSAxMTZBIDExQUY7Qjg4MDsxMTA1IDExNkEgMTFBRjsKK0I4ODE7Qjg4MTsxMTA1IDExNkEgMTFCMDtCODgxOzExMDUgMTE2QSAxMUIwOworQjg4MjtCODgyOzExMDUgMTE2QSAxMUIxO0I4ODI7MTEwNSAxMTZBIDExQjE7CitCODgzO0I4ODM7MTEwNSAxMTZBIDExQjI7Qjg4MzsxMTA1IDExNkEgMTFCMjsKK0I4ODQ7Qjg4NDsxMTA1IDExNkEgMTFCMztCODg0OzExMDUgMTE2QSAxMUIzOworQjg4NTtCODg1OzExMDUgMTE2QSAxMUI0O0I4ODU7MTEwNSAxMTZBIDExQjQ7CitCODg2O0I4ODY7MTEwNSAxMTZBIDExQjU7Qjg4NjsxMTA1IDExNkEgMTFCNTsKK0I4ODc7Qjg4NzsxMTA1IDExNkEgMTFCNjtCODg3OzExMDUgMTE2QSAxMUI2OworQjg4ODtCODg4OzExMDUgMTE2QSAxMUI3O0I4ODg7MTEwNSAxMTZBIDExQjc7CitCODg5O0I4ODk7MTEwNSAxMTZBIDExQjg7Qjg4OTsxMTA1IDExNkEgMTFCODsKK0I4OEE7Qjg4QTsxMTA1IDExNkEgMTFCOTtCODhBOzExMDUgMTE2QSAxMUI5OworQjg4QjtCODhCOzExMDUgMTE2QSAxMUJBO0I4OEI7MTEwNSAxMTZBIDExQkE7CitCODhDO0I4OEM7MTEwNSAxMTZBIDExQkI7Qjg4QzsxMTA1IDExNkEgMTFCQjsKK0I4OEQ7Qjg4RDsxMTA1IDExNkEgMTFCQztCODhEOzExMDUgMTE2QSAxMUJDOworQjg4RTtCODhFOzExMDUgMTE2QSAxMUJEO0I4OEU7MTEwNSAxMTZBIDExQkQ7CitCODhGO0I4OEY7MTEwNSAxMTZBIDExQkU7Qjg4RjsxMTA1IDExNkEgMTFCRTsKK0I4OTA7Qjg5MDsxMTA1IDExNkEgMTFCRjtCODkwOzExMDUgMTE2QSAxMUJGOworQjg5MTtCODkxOzExMDUgMTE2QSAxMUMwO0I4OTE7MTEwNSAxMTZBIDExQzA7CitCODkyO0I4OTI7MTEwNSAxMTZBIDExQzE7Qjg5MjsxMTA1IDExNkEgMTFDMTsKK0I4OTM7Qjg5MzsxMTA1IDExNkEgMTFDMjtCODkzOzExMDUgMTE2QSAxMUMyOworQjg5NDtCODk0OzExMDUgMTE2QjtCODk0OzExMDUgMTE2QjsKK0I4OTU7Qjg5NTsxMTA1IDExNkIgMTFBODtCODk1OzExMDUgMTE2QiAxMUE4OworQjg5NjtCODk2OzExMDUgMTE2QiAxMUE5O0I4OTY7MTEwNSAxMTZCIDExQTk7CitCODk3O0I4OTc7MTEwNSAxMTZCIDExQUE7Qjg5NzsxMTA1IDExNkIgMTFBQTsKK0I4OTg7Qjg5ODsxMTA1IDExNkIgMTFBQjtCODk4OzExMDUgMTE2QiAxMUFCOworQjg5OTtCODk5OzExMDUgMTE2QiAxMUFDO0I4OTk7MTEwNSAxMTZCIDExQUM7CitCODlBO0I4OUE7MTEwNSAxMTZCIDExQUQ7Qjg5QTsxMTA1IDExNkIgMTFBRDsKK0I4OUI7Qjg5QjsxMTA1IDExNkIgMTFBRTtCODlCOzExMDUgMTE2QiAxMUFFOworQjg5QztCODlDOzExMDUgMTE2QiAxMUFGO0I4OUM7MTEwNSAxMTZCIDExQUY7CitCODlEO0I4OUQ7MTEwNSAxMTZCIDExQjA7Qjg5RDsxMTA1IDExNkIgMTFCMDsKK0I4OUU7Qjg5RTsxMTA1IDExNkIgMTFCMTtCODlFOzExMDUgMTE2QiAxMUIxOworQjg5RjtCODlGOzExMDUgMTE2QiAxMUIyO0I4OUY7MTEwNSAxMTZCIDExQjI7CitCOEEwO0I4QTA7MTEwNSAxMTZCIDExQjM7QjhBMDsxMTA1IDExNkIgMTFCMzsKK0I4QTE7QjhBMTsxMTA1IDExNkIgMTFCNDtCOEExOzExMDUgMTE2QiAxMUI0OworQjhBMjtCOEEyOzExMDUgMTE2QiAxMUI1O0I4QTI7MTEwNSAxMTZCIDExQjU7CitCOEEzO0I4QTM7MTEwNSAxMTZCIDExQjY7QjhBMzsxMTA1IDExNkIgMTFCNjsKK0I4QTQ7QjhBNDsxMTA1IDExNkIgMTFCNztCOEE0OzExMDUgMTE2QiAxMUI3OworQjhBNTtCOEE1OzExMDUgMTE2QiAxMUI4O0I4QTU7MTEwNSAxMTZCIDExQjg7CitCOEE2O0I4QTY7MTEwNSAxMTZCIDExQjk7QjhBNjsxMTA1IDExNkIgMTFCOTsKK0I4QTc7QjhBNzsxMTA1IDExNkIgMTFCQTtCOEE3OzExMDUgMTE2QiAxMUJBOworQjhBODtCOEE4OzExMDUgMTE2QiAxMUJCO0I4QTg7MTEwNSAxMTZCIDExQkI7CitCOEE5O0I4QTk7MTEwNSAxMTZCIDExQkM7QjhBOTsxMTA1IDExNkIgMTFCQzsKK0I4QUE7QjhBQTsxMTA1IDExNkIgMTFCRDtCOEFBOzExMDUgMTE2QiAxMUJEOworQjhBQjtCOEFCOzExMDUgMTE2QiAxMUJFO0I4QUI7MTEwNSAxMTZCIDExQkU7CitCOEFDO0I4QUM7MTEwNSAxMTZCIDExQkY7QjhBQzsxMTA1IDExNkIgMTFCRjsKK0I4QUQ7QjhBRDsxMTA1IDExNkIgMTFDMDtCOEFEOzExMDUgMTE2QiAxMUMwOworQjhBRTtCOEFFOzExMDUgMTE2QiAxMUMxO0I4QUU7MTEwNSAxMTZCIDExQzE7CitCOEFGO0I4QUY7MTEwNSAxMTZCIDExQzI7QjhBRjsxMTA1IDExNkIgMTFDMjsKK0I4QjA7QjhCMDsxMTA1IDExNkM7QjhCMDsxMTA1IDExNkM7CitCOEIxO0I4QjE7MTEwNSAxMTZDIDExQTg7QjhCMTsxMTA1IDExNkMgMTFBODsKK0I4QjI7QjhCMjsxMTA1IDExNkMgMTFBOTtCOEIyOzExMDUgMTE2QyAxMUE5OworQjhCMztCOEIzOzExMDUgMTE2QyAxMUFBO0I4QjM7MTEwNSAxMTZDIDExQUE7CitCOEI0O0I4QjQ7MTEwNSAxMTZDIDExQUI7QjhCNDsxMTA1IDExNkMgMTFBQjsKK0I4QjU7QjhCNTsxMTA1IDExNkMgMTFBQztCOEI1OzExMDUgMTE2QyAxMUFDOworQjhCNjtCOEI2OzExMDUgMTE2QyAxMUFEO0I4QjY7MTEwNSAxMTZDIDExQUQ7CitCOEI3O0I4Qjc7MTEwNSAxMTZDIDExQUU7QjhCNzsxMTA1IDExNkMgMTFBRTsKK0I4Qjg7QjhCODsxMTA1IDExNkMgMTFBRjtCOEI4OzExMDUgMTE2QyAxMUFGOworQjhCOTtCOEI5OzExMDUgMTE2QyAxMUIwO0I4Qjk7MTEwNSAxMTZDIDExQjA7CitCOEJBO0I4QkE7MTEwNSAxMTZDIDExQjE7QjhCQTsxMTA1IDExNkMgMTFCMTsKK0I4QkI7QjhCQjsxMTA1IDExNkMgMTFCMjtCOEJCOzExMDUgMTE2QyAxMUIyOworQjhCQztCOEJDOzExMDUgMTE2QyAxMUIzO0I4QkM7MTEwNSAxMTZDIDExQjM7CitCOEJEO0I4QkQ7MTEwNSAxMTZDIDExQjQ7QjhCRDsxMTA1IDExNkMgMTFCNDsKK0I4QkU7QjhCRTsxMTA1IDExNkMgMTFCNTtCOEJFOzExMDUgMTE2QyAxMUI1OworQjhCRjtCOEJGOzExMDUgMTE2QyAxMUI2O0I4QkY7MTEwNSAxMTZDIDExQjY7CitCOEMwO0I4QzA7MTEwNSAxMTZDIDExQjc7QjhDMDsxMTA1IDExNkMgMTFCNzsKK0I4QzE7QjhDMTsxMTA1IDExNkMgMTFCODtCOEMxOzExMDUgMTE2QyAxMUI4OworQjhDMjtCOEMyOzExMDUgMTE2QyAxMUI5O0I4QzI7MTEwNSAxMTZDIDExQjk7CitCOEMzO0I4QzM7MTEwNSAxMTZDIDExQkE7QjhDMzsxMTA1IDExNkMgMTFCQTsKK0I4QzQ7QjhDNDsxMTA1IDExNkMgMTFCQjtCOEM0OzExMDUgMTE2QyAxMUJCOworQjhDNTtCOEM1OzExMDUgMTE2QyAxMUJDO0I4QzU7MTEwNSAxMTZDIDExQkM7CitCOEM2O0I4QzY7MTEwNSAxMTZDIDExQkQ7QjhDNjsxMTA1IDExNkMgMTFCRDsKK0I4Qzc7QjhDNzsxMTA1IDExNkMgMTFCRTtCOEM3OzExMDUgMTE2QyAxMUJFOworQjhDODtCOEM4OzExMDUgMTE2QyAxMUJGO0I4Qzg7MTEwNSAxMTZDIDExQkY7CitCOEM5O0I4Qzk7MTEwNSAxMTZDIDExQzA7QjhDOTsxMTA1IDExNkMgMTFDMDsKK0I4Q0E7QjhDQTsxMTA1IDExNkMgMTFDMTtCOENBOzExMDUgMTE2QyAxMUMxOworQjhDQjtCOENCOzExMDUgMTE2QyAxMUMyO0I4Q0I7MTEwNSAxMTZDIDExQzI7CitCOENDO0I4Q0M7MTEwNSAxMTZEO0I4Q0M7MTEwNSAxMTZEOworQjhDRDtCOENEOzExMDUgMTE2RCAxMUE4O0I4Q0Q7MTEwNSAxMTZEIDExQTg7CitCOENFO0I4Q0U7MTEwNSAxMTZEIDExQTk7QjhDRTsxMTA1IDExNkQgMTFBOTsKK0I4Q0Y7QjhDRjsxMTA1IDExNkQgMTFBQTtCOENGOzExMDUgMTE2RCAxMUFBOworQjhEMDtCOEQwOzExMDUgMTE2RCAxMUFCO0I4RDA7MTEwNSAxMTZEIDExQUI7CitCOEQxO0I4RDE7MTEwNSAxMTZEIDExQUM7QjhEMTsxMTA1IDExNkQgMTFBQzsKK0I4RDI7QjhEMjsxMTA1IDExNkQgMTFBRDtCOEQyOzExMDUgMTE2RCAxMUFEOworQjhEMztCOEQzOzExMDUgMTE2RCAxMUFFO0I4RDM7MTEwNSAxMTZEIDExQUU7CitCOEQ0O0I4RDQ7MTEwNSAxMTZEIDExQUY7QjhENDsxMTA1IDExNkQgMTFBRjsKK0I4RDU7QjhENTsxMTA1IDExNkQgMTFCMDtCOEQ1OzExMDUgMTE2RCAxMUIwOworQjhENjtCOEQ2OzExMDUgMTE2RCAxMUIxO0I4RDY7MTEwNSAxMTZEIDExQjE7CitCOEQ3O0I4RDc7MTEwNSAxMTZEIDExQjI7QjhENzsxMTA1IDExNkQgMTFCMjsKK0I4RDg7QjhEODsxMTA1IDExNkQgMTFCMztCOEQ4OzExMDUgMTE2RCAxMUIzOworQjhEOTtCOEQ5OzExMDUgMTE2RCAxMUI0O0I4RDk7MTEwNSAxMTZEIDExQjQ7CitCOERBO0I4REE7MTEwNSAxMTZEIDExQjU7QjhEQTsxMTA1IDExNkQgMTFCNTsKK0I4REI7QjhEQjsxMTA1IDExNkQgMTFCNjtCOERCOzExMDUgMTE2RCAxMUI2OworQjhEQztCOERDOzExMDUgMTE2RCAxMUI3O0I4REM7MTEwNSAxMTZEIDExQjc7CitCOEREO0I4REQ7MTEwNSAxMTZEIDExQjg7QjhERDsxMTA1IDExNkQgMTFCODsKK0I4REU7QjhERTsxMTA1IDExNkQgMTFCOTtCOERFOzExMDUgMTE2RCAxMUI5OworQjhERjtCOERGOzExMDUgMTE2RCAxMUJBO0I4REY7MTEwNSAxMTZEIDExQkE7CitCOEUwO0I4RTA7MTEwNSAxMTZEIDExQkI7QjhFMDsxMTA1IDExNkQgMTFCQjsKK0I4RTE7QjhFMTsxMTA1IDExNkQgMTFCQztCOEUxOzExMDUgMTE2RCAxMUJDOworQjhFMjtCOEUyOzExMDUgMTE2RCAxMUJEO0I4RTI7MTEwNSAxMTZEIDExQkQ7CitCOEUzO0I4RTM7MTEwNSAxMTZEIDExQkU7QjhFMzsxMTA1IDExNkQgMTFCRTsKK0I4RTQ7QjhFNDsxMTA1IDExNkQgMTFCRjtCOEU0OzExMDUgMTE2RCAxMUJGOworQjhFNTtCOEU1OzExMDUgMTE2RCAxMUMwO0I4RTU7MTEwNSAxMTZEIDExQzA7CitCOEU2O0I4RTY7MTEwNSAxMTZEIDExQzE7QjhFNjsxMTA1IDExNkQgMTFDMTsKK0I4RTc7QjhFNzsxMTA1IDExNkQgMTFDMjtCOEU3OzExMDUgMTE2RCAxMUMyOworQjhFODtCOEU4OzExMDUgMTE2RTtCOEU4OzExMDUgMTE2RTsKK0I4RTk7QjhFOTsxMTA1IDExNkUgMTFBODtCOEU5OzExMDUgMTE2RSAxMUE4OworQjhFQTtCOEVBOzExMDUgMTE2RSAxMUE5O0I4RUE7MTEwNSAxMTZFIDExQTk7CitCOEVCO0I4RUI7MTEwNSAxMTZFIDExQUE7QjhFQjsxMTA1IDExNkUgMTFBQTsKK0I4RUM7QjhFQzsxMTA1IDExNkUgMTFBQjtCOEVDOzExMDUgMTE2RSAxMUFCOworQjhFRDtCOEVEOzExMDUgMTE2RSAxMUFDO0I4RUQ7MTEwNSAxMTZFIDExQUM7CitCOEVFO0I4RUU7MTEwNSAxMTZFIDExQUQ7QjhFRTsxMTA1IDExNkUgMTFBRDsKK0I4RUY7QjhFRjsxMTA1IDExNkUgMTFBRTtCOEVGOzExMDUgMTE2RSAxMUFFOworQjhGMDtCOEYwOzExMDUgMTE2RSAxMUFGO0I4RjA7MTEwNSAxMTZFIDExQUY7CitCOEYxO0I4RjE7MTEwNSAxMTZFIDExQjA7QjhGMTsxMTA1IDExNkUgMTFCMDsKK0I4RjI7QjhGMjsxMTA1IDExNkUgMTFCMTtCOEYyOzExMDUgMTE2RSAxMUIxOworQjhGMztCOEYzOzExMDUgMTE2RSAxMUIyO0I4RjM7MTEwNSAxMTZFIDExQjI7CitCOEY0O0I4RjQ7MTEwNSAxMTZFIDExQjM7QjhGNDsxMTA1IDExNkUgMTFCMzsKK0I4RjU7QjhGNTsxMTA1IDExNkUgMTFCNDtCOEY1OzExMDUgMTE2RSAxMUI0OworQjhGNjtCOEY2OzExMDUgMTE2RSAxMUI1O0I4RjY7MTEwNSAxMTZFIDExQjU7CitCOEY3O0I4Rjc7MTEwNSAxMTZFIDExQjY7QjhGNzsxMTA1IDExNkUgMTFCNjsKK0I4Rjg7QjhGODsxMTA1IDExNkUgMTFCNztCOEY4OzExMDUgMTE2RSAxMUI3OworQjhGOTtCOEY5OzExMDUgMTE2RSAxMUI4O0I4Rjk7MTEwNSAxMTZFIDExQjg7CitCOEZBO0I4RkE7MTEwNSAxMTZFIDExQjk7QjhGQTsxMTA1IDExNkUgMTFCOTsKK0I4RkI7QjhGQjsxMTA1IDExNkUgMTFCQTtCOEZCOzExMDUgMTE2RSAxMUJBOworQjhGQztCOEZDOzExMDUgMTE2RSAxMUJCO0I4RkM7MTEwNSAxMTZFIDExQkI7CitCOEZEO0I4RkQ7MTEwNSAxMTZFIDExQkM7QjhGRDsxMTA1IDExNkUgMTFCQzsKK0I4RkU7QjhGRTsxMTA1IDExNkUgMTFCRDtCOEZFOzExMDUgMTE2RSAxMUJEOworQjhGRjtCOEZGOzExMDUgMTE2RSAxMUJFO0I4RkY7MTEwNSAxMTZFIDExQkU7CitCOTAwO0I5MDA7MTEwNSAxMTZFIDExQkY7QjkwMDsxMTA1IDExNkUgMTFCRjsKK0I5MDE7QjkwMTsxMTA1IDExNkUgMTFDMDtCOTAxOzExMDUgMTE2RSAxMUMwOworQjkwMjtCOTAyOzExMDUgMTE2RSAxMUMxO0I5MDI7MTEwNSAxMTZFIDExQzE7CitCOTAzO0I5MDM7MTEwNSAxMTZFIDExQzI7QjkwMzsxMTA1IDExNkUgMTFDMjsKK0I5MDQ7QjkwNDsxMTA1IDExNkY7QjkwNDsxMTA1IDExNkY7CitCOTA1O0I5MDU7MTEwNSAxMTZGIDExQTg7QjkwNTsxMTA1IDExNkYgMTFBODsKK0I5MDY7QjkwNjsxMTA1IDExNkYgMTFBOTtCOTA2OzExMDUgMTE2RiAxMUE5OworQjkwNztCOTA3OzExMDUgMTE2RiAxMUFBO0I5MDc7MTEwNSAxMTZGIDExQUE7CitCOTA4O0I5MDg7MTEwNSAxMTZGIDExQUI7QjkwODsxMTA1IDExNkYgMTFBQjsKK0I5MDk7QjkwOTsxMTA1IDExNkYgMTFBQztCOTA5OzExMDUgMTE2RiAxMUFDOworQjkwQTtCOTBBOzExMDUgMTE2RiAxMUFEO0I5MEE7MTEwNSAxMTZGIDExQUQ7CitCOTBCO0I5MEI7MTEwNSAxMTZGIDExQUU7QjkwQjsxMTA1IDExNkYgMTFBRTsKK0I5MEM7QjkwQzsxMTA1IDExNkYgMTFBRjtCOTBDOzExMDUgMTE2RiAxMUFGOworQjkwRDtCOTBEOzExMDUgMTE2RiAxMUIwO0I5MEQ7MTEwNSAxMTZGIDExQjA7CitCOTBFO0I5MEU7MTEwNSAxMTZGIDExQjE7QjkwRTsxMTA1IDExNkYgMTFCMTsKK0I5MEY7QjkwRjsxMTA1IDExNkYgMTFCMjtCOTBGOzExMDUgMTE2RiAxMUIyOworQjkxMDtCOTEwOzExMDUgMTE2RiAxMUIzO0I5MTA7MTEwNSAxMTZGIDExQjM7CitCOTExO0I5MTE7MTEwNSAxMTZGIDExQjQ7QjkxMTsxMTA1IDExNkYgMTFCNDsKK0I5MTI7QjkxMjsxMTA1IDExNkYgMTFCNTtCOTEyOzExMDUgMTE2RiAxMUI1OworQjkxMztCOTEzOzExMDUgMTE2RiAxMUI2O0I5MTM7MTEwNSAxMTZGIDExQjY7CitCOTE0O0I5MTQ7MTEwNSAxMTZGIDExQjc7QjkxNDsxMTA1IDExNkYgMTFCNzsKK0I5MTU7QjkxNTsxMTA1IDExNkYgMTFCODtCOTE1OzExMDUgMTE2RiAxMUI4OworQjkxNjtCOTE2OzExMDUgMTE2RiAxMUI5O0I5MTY7MTEwNSAxMTZGIDExQjk7CitCOTE3O0I5MTc7MTEwNSAxMTZGIDExQkE7QjkxNzsxMTA1IDExNkYgMTFCQTsKK0I5MTg7QjkxODsxMTA1IDExNkYgMTFCQjtCOTE4OzExMDUgMTE2RiAxMUJCOworQjkxOTtCOTE5OzExMDUgMTE2RiAxMUJDO0I5MTk7MTEwNSAxMTZGIDExQkM7CitCOTFBO0I5MUE7MTEwNSAxMTZGIDExQkQ7QjkxQTsxMTA1IDExNkYgMTFCRDsKK0I5MUI7QjkxQjsxMTA1IDExNkYgMTFCRTtCOTFCOzExMDUgMTE2RiAxMUJFOworQjkxQztCOTFDOzExMDUgMTE2RiAxMUJGO0I5MUM7MTEwNSAxMTZGIDExQkY7CitCOTFEO0I5MUQ7MTEwNSAxMTZGIDExQzA7QjkxRDsxMTA1IDExNkYgMTFDMDsKK0I5MUU7QjkxRTsxMTA1IDExNkYgMTFDMTtCOTFFOzExMDUgMTE2RiAxMUMxOworQjkxRjtCOTFGOzExMDUgMTE2RiAxMUMyO0I5MUY7MTEwNSAxMTZGIDExQzI7CitCOTIwO0I5MjA7MTEwNSAxMTcwO0I5MjA7MTEwNSAxMTcwOworQjkyMTtCOTIxOzExMDUgMTE3MCAxMUE4O0I5MjE7MTEwNSAxMTcwIDExQTg7CitCOTIyO0I5MjI7MTEwNSAxMTcwIDExQTk7QjkyMjsxMTA1IDExNzAgMTFBOTsKK0I5MjM7QjkyMzsxMTA1IDExNzAgMTFBQTtCOTIzOzExMDUgMTE3MCAxMUFBOworQjkyNDtCOTI0OzExMDUgMTE3MCAxMUFCO0I5MjQ7MTEwNSAxMTcwIDExQUI7CitCOTI1O0I5MjU7MTEwNSAxMTcwIDExQUM7QjkyNTsxMTA1IDExNzAgMTFBQzsKK0I5MjY7QjkyNjsxMTA1IDExNzAgMTFBRDtCOTI2OzExMDUgMTE3MCAxMUFEOworQjkyNztCOTI3OzExMDUgMTE3MCAxMUFFO0I5Mjc7MTEwNSAxMTcwIDExQUU7CitCOTI4O0I5Mjg7MTEwNSAxMTcwIDExQUY7QjkyODsxMTA1IDExNzAgMTFBRjsKK0I5Mjk7QjkyOTsxMTA1IDExNzAgMTFCMDtCOTI5OzExMDUgMTE3MCAxMUIwOworQjkyQTtCOTJBOzExMDUgMTE3MCAxMUIxO0I5MkE7MTEwNSAxMTcwIDExQjE7CitCOTJCO0I5MkI7MTEwNSAxMTcwIDExQjI7QjkyQjsxMTA1IDExNzAgMTFCMjsKK0I5MkM7QjkyQzsxMTA1IDExNzAgMTFCMztCOTJDOzExMDUgMTE3MCAxMUIzOworQjkyRDtCOTJEOzExMDUgMTE3MCAxMUI0O0I5MkQ7MTEwNSAxMTcwIDExQjQ7CitCOTJFO0I5MkU7MTEwNSAxMTcwIDExQjU7QjkyRTsxMTA1IDExNzAgMTFCNTsKK0I5MkY7QjkyRjsxMTA1IDExNzAgMTFCNjtCOTJGOzExMDUgMTE3MCAxMUI2OworQjkzMDtCOTMwOzExMDUgMTE3MCAxMUI3O0I5MzA7MTEwNSAxMTcwIDExQjc7CitCOTMxO0I5MzE7MTEwNSAxMTcwIDExQjg7QjkzMTsxMTA1IDExNzAgMTFCODsKK0I5MzI7QjkzMjsxMTA1IDExNzAgMTFCOTtCOTMyOzExMDUgMTE3MCAxMUI5OworQjkzMztCOTMzOzExMDUgMTE3MCAxMUJBO0I5MzM7MTEwNSAxMTcwIDExQkE7CitCOTM0O0I5MzQ7MTEwNSAxMTcwIDExQkI7QjkzNDsxMTA1IDExNzAgMTFCQjsKK0I5MzU7QjkzNTsxMTA1IDExNzAgMTFCQztCOTM1OzExMDUgMTE3MCAxMUJDOworQjkzNjtCOTM2OzExMDUgMTE3MCAxMUJEO0I5MzY7MTEwNSAxMTcwIDExQkQ7CitCOTM3O0I5Mzc7MTEwNSAxMTcwIDExQkU7QjkzNzsxMTA1IDExNzAgMTFCRTsKK0I5Mzg7QjkzODsxMTA1IDExNzAgMTFCRjtCOTM4OzExMDUgMTE3MCAxMUJGOworQjkzOTtCOTM5OzExMDUgMTE3MCAxMUMwO0I5Mzk7MTEwNSAxMTcwIDExQzA7CitCOTNBO0I5M0E7MTEwNSAxMTcwIDExQzE7QjkzQTsxMTA1IDExNzAgMTFDMTsKK0I5M0I7QjkzQjsxMTA1IDExNzAgMTFDMjtCOTNCOzExMDUgMTE3MCAxMUMyOworQjkzQztCOTNDOzExMDUgMTE3MTtCOTNDOzExMDUgMTE3MTsKK0I5M0Q7QjkzRDsxMTA1IDExNzEgMTFBODtCOTNEOzExMDUgMTE3MSAxMUE4OworQjkzRTtCOTNFOzExMDUgMTE3MSAxMUE5O0I5M0U7MTEwNSAxMTcxIDExQTk7CitCOTNGO0I5M0Y7MTEwNSAxMTcxIDExQUE7QjkzRjsxMTA1IDExNzEgMTFBQTsKK0I5NDA7Qjk0MDsxMTA1IDExNzEgMTFBQjtCOTQwOzExMDUgMTE3MSAxMUFCOworQjk0MTtCOTQxOzExMDUgMTE3MSAxMUFDO0I5NDE7MTEwNSAxMTcxIDExQUM7CitCOTQyO0I5NDI7MTEwNSAxMTcxIDExQUQ7Qjk0MjsxMTA1IDExNzEgMTFBRDsKK0I5NDM7Qjk0MzsxMTA1IDExNzEgMTFBRTtCOTQzOzExMDUgMTE3MSAxMUFFOworQjk0NDtCOTQ0OzExMDUgMTE3MSAxMUFGO0I5NDQ7MTEwNSAxMTcxIDExQUY7CitCOTQ1O0I5NDU7MTEwNSAxMTcxIDExQjA7Qjk0NTsxMTA1IDExNzEgMTFCMDsKK0I5NDY7Qjk0NjsxMTA1IDExNzEgMTFCMTtCOTQ2OzExMDUgMTE3MSAxMUIxOworQjk0NztCOTQ3OzExMDUgMTE3MSAxMUIyO0I5NDc7MTEwNSAxMTcxIDExQjI7CitCOTQ4O0I5NDg7MTEwNSAxMTcxIDExQjM7Qjk0ODsxMTA1IDExNzEgMTFCMzsKK0I5NDk7Qjk0OTsxMTA1IDExNzEgMTFCNDtCOTQ5OzExMDUgMTE3MSAxMUI0OworQjk0QTtCOTRBOzExMDUgMTE3MSAxMUI1O0I5NEE7MTEwNSAxMTcxIDExQjU7CitCOTRCO0I5NEI7MTEwNSAxMTcxIDExQjY7Qjk0QjsxMTA1IDExNzEgMTFCNjsKK0I5NEM7Qjk0QzsxMTA1IDExNzEgMTFCNztCOTRDOzExMDUgMTE3MSAxMUI3OworQjk0RDtCOTREOzExMDUgMTE3MSAxMUI4O0I5NEQ7MTEwNSAxMTcxIDExQjg7CitCOTRFO0I5NEU7MTEwNSAxMTcxIDExQjk7Qjk0RTsxMTA1IDExNzEgMTFCOTsKK0I5NEY7Qjk0RjsxMTA1IDExNzEgMTFCQTtCOTRGOzExMDUgMTE3MSAxMUJBOworQjk1MDtCOTUwOzExMDUgMTE3MSAxMUJCO0I5NTA7MTEwNSAxMTcxIDExQkI7CitCOTUxO0I5NTE7MTEwNSAxMTcxIDExQkM7Qjk1MTsxMTA1IDExNzEgMTFCQzsKK0I5NTI7Qjk1MjsxMTA1IDExNzEgMTFCRDtCOTUyOzExMDUgMTE3MSAxMUJEOworQjk1MztCOTUzOzExMDUgMTE3MSAxMUJFO0I5NTM7MTEwNSAxMTcxIDExQkU7CitCOTU0O0I5NTQ7MTEwNSAxMTcxIDExQkY7Qjk1NDsxMTA1IDExNzEgMTFCRjsKK0I5NTU7Qjk1NTsxMTA1IDExNzEgMTFDMDtCOTU1OzExMDUgMTE3MSAxMUMwOworQjk1NjtCOTU2OzExMDUgMTE3MSAxMUMxO0I5NTY7MTEwNSAxMTcxIDExQzE7CitCOTU3O0I5NTc7MTEwNSAxMTcxIDExQzI7Qjk1NzsxMTA1IDExNzEgMTFDMjsKK0I5NTg7Qjk1ODsxMTA1IDExNzI7Qjk1ODsxMTA1IDExNzI7CitCOTU5O0I5NTk7MTEwNSAxMTcyIDExQTg7Qjk1OTsxMTA1IDExNzIgMTFBODsKK0I5NUE7Qjk1QTsxMTA1IDExNzIgMTFBOTtCOTVBOzExMDUgMTE3MiAxMUE5OworQjk1QjtCOTVCOzExMDUgMTE3MiAxMUFBO0I5NUI7MTEwNSAxMTcyIDExQUE7CitCOTVDO0I5NUM7MTEwNSAxMTcyIDExQUI7Qjk1QzsxMTA1IDExNzIgMTFBQjsKK0I5NUQ7Qjk1RDsxMTA1IDExNzIgMTFBQztCOTVEOzExMDUgMTE3MiAxMUFDOworQjk1RTtCOTVFOzExMDUgMTE3MiAxMUFEO0I5NUU7MTEwNSAxMTcyIDExQUQ7CitCOTVGO0I5NUY7MTEwNSAxMTcyIDExQUU7Qjk1RjsxMTA1IDExNzIgMTFBRTsKK0I5NjA7Qjk2MDsxMTA1IDExNzIgMTFBRjtCOTYwOzExMDUgMTE3MiAxMUFGOworQjk2MTtCOTYxOzExMDUgMTE3MiAxMUIwO0I5NjE7MTEwNSAxMTcyIDExQjA7CitCOTYyO0I5NjI7MTEwNSAxMTcyIDExQjE7Qjk2MjsxMTA1IDExNzIgMTFCMTsKK0I5NjM7Qjk2MzsxMTA1IDExNzIgMTFCMjtCOTYzOzExMDUgMTE3MiAxMUIyOworQjk2NDtCOTY0OzExMDUgMTE3MiAxMUIzO0I5NjQ7MTEwNSAxMTcyIDExQjM7CitCOTY1O0I5NjU7MTEwNSAxMTcyIDExQjQ7Qjk2NTsxMTA1IDExNzIgMTFCNDsKK0I5NjY7Qjk2NjsxMTA1IDExNzIgMTFCNTtCOTY2OzExMDUgMTE3MiAxMUI1OworQjk2NztCOTY3OzExMDUgMTE3MiAxMUI2O0I5Njc7MTEwNSAxMTcyIDExQjY7CitCOTY4O0I5Njg7MTEwNSAxMTcyIDExQjc7Qjk2ODsxMTA1IDExNzIgMTFCNzsKK0I5Njk7Qjk2OTsxMTA1IDExNzIgMTFCODtCOTY5OzExMDUgMTE3MiAxMUI4OworQjk2QTtCOTZBOzExMDUgMTE3MiAxMUI5O0I5NkE7MTEwNSAxMTcyIDExQjk7CitCOTZCO0I5NkI7MTEwNSAxMTcyIDExQkE7Qjk2QjsxMTA1IDExNzIgMTFCQTsKK0I5NkM7Qjk2QzsxMTA1IDExNzIgMTFCQjtCOTZDOzExMDUgMTE3MiAxMUJCOworQjk2RDtCOTZEOzExMDUgMTE3MiAxMUJDO0I5NkQ7MTEwNSAxMTcyIDExQkM7CitCOTZFO0I5NkU7MTEwNSAxMTcyIDExQkQ7Qjk2RTsxMTA1IDExNzIgMTFCRDsKK0I5NkY7Qjk2RjsxMTA1IDExNzIgMTFCRTtCOTZGOzExMDUgMTE3MiAxMUJFOworQjk3MDtCOTcwOzExMDUgMTE3MiAxMUJGO0I5NzA7MTEwNSAxMTcyIDExQkY7CitCOTcxO0I5NzE7MTEwNSAxMTcyIDExQzA7Qjk3MTsxMTA1IDExNzIgMTFDMDsKK0I5NzI7Qjk3MjsxMTA1IDExNzIgMTFDMTtCOTcyOzExMDUgMTE3MiAxMUMxOworQjk3MztCOTczOzExMDUgMTE3MiAxMUMyO0I5NzM7MTEwNSAxMTcyIDExQzI7CitCOTc0O0I5NzQ7MTEwNSAxMTczO0I5NzQ7MTEwNSAxMTczOworQjk3NTtCOTc1OzExMDUgMTE3MyAxMUE4O0I5NzU7MTEwNSAxMTczIDExQTg7CitCOTc2O0I5NzY7MTEwNSAxMTczIDExQTk7Qjk3NjsxMTA1IDExNzMgMTFBOTsKK0I5Nzc7Qjk3NzsxMTA1IDExNzMgMTFBQTtCOTc3OzExMDUgMTE3MyAxMUFBOworQjk3ODtCOTc4OzExMDUgMTE3MyAxMUFCO0I5Nzg7MTEwNSAxMTczIDExQUI7CitCOTc5O0I5Nzk7MTEwNSAxMTczIDExQUM7Qjk3OTsxMTA1IDExNzMgMTFBQzsKK0I5N0E7Qjk3QTsxMTA1IDExNzMgMTFBRDtCOTdBOzExMDUgMTE3MyAxMUFEOworQjk3QjtCOTdCOzExMDUgMTE3MyAxMUFFO0I5N0I7MTEwNSAxMTczIDExQUU7CitCOTdDO0I5N0M7MTEwNSAxMTczIDExQUY7Qjk3QzsxMTA1IDExNzMgMTFBRjsKK0I5N0Q7Qjk3RDsxMTA1IDExNzMgMTFCMDtCOTdEOzExMDUgMTE3MyAxMUIwOworQjk3RTtCOTdFOzExMDUgMTE3MyAxMUIxO0I5N0U7MTEwNSAxMTczIDExQjE7CitCOTdGO0I5N0Y7MTEwNSAxMTczIDExQjI7Qjk3RjsxMTA1IDExNzMgMTFCMjsKK0I5ODA7Qjk4MDsxMTA1IDExNzMgMTFCMztCOTgwOzExMDUgMTE3MyAxMUIzOworQjk4MTtCOTgxOzExMDUgMTE3MyAxMUI0O0I5ODE7MTEwNSAxMTczIDExQjQ7CitCOTgyO0I5ODI7MTEwNSAxMTczIDExQjU7Qjk4MjsxMTA1IDExNzMgMTFCNTsKK0I5ODM7Qjk4MzsxMTA1IDExNzMgMTFCNjtCOTgzOzExMDUgMTE3MyAxMUI2OworQjk4NDtCOTg0OzExMDUgMTE3MyAxMUI3O0I5ODQ7MTEwNSAxMTczIDExQjc7CitCOTg1O0I5ODU7MTEwNSAxMTczIDExQjg7Qjk4NTsxMTA1IDExNzMgMTFCODsKK0I5ODY7Qjk4NjsxMTA1IDExNzMgMTFCOTtCOTg2OzExMDUgMTE3MyAxMUI5OworQjk4NztCOTg3OzExMDUgMTE3MyAxMUJBO0I5ODc7MTEwNSAxMTczIDExQkE7CitCOTg4O0I5ODg7MTEwNSAxMTczIDExQkI7Qjk4ODsxMTA1IDExNzMgMTFCQjsKK0I5ODk7Qjk4OTsxMTA1IDExNzMgMTFCQztCOTg5OzExMDUgMTE3MyAxMUJDOworQjk4QTtCOThBOzExMDUgMTE3MyAxMUJEO0I5OEE7MTEwNSAxMTczIDExQkQ7CitCOThCO0I5OEI7MTEwNSAxMTczIDExQkU7Qjk4QjsxMTA1IDExNzMgMTFCRTsKK0I5OEM7Qjk4QzsxMTA1IDExNzMgMTFCRjtCOThDOzExMDUgMTE3MyAxMUJGOworQjk4RDtCOThEOzExMDUgMTE3MyAxMUMwO0I5OEQ7MTEwNSAxMTczIDExQzA7CitCOThFO0I5OEU7MTEwNSAxMTczIDExQzE7Qjk4RTsxMTA1IDExNzMgMTFDMTsKK0I5OEY7Qjk4RjsxMTA1IDExNzMgMTFDMjtCOThGOzExMDUgMTE3MyAxMUMyOworQjk5MDtCOTkwOzExMDUgMTE3NDtCOTkwOzExMDUgMTE3NDsKK0I5OTE7Qjk5MTsxMTA1IDExNzQgMTFBODtCOTkxOzExMDUgMTE3NCAxMUE4OworQjk5MjtCOTkyOzExMDUgMTE3NCAxMUE5O0I5OTI7MTEwNSAxMTc0IDExQTk7CitCOTkzO0I5OTM7MTEwNSAxMTc0IDExQUE7Qjk5MzsxMTA1IDExNzQgMTFBQTsKK0I5OTQ7Qjk5NDsxMTA1IDExNzQgMTFBQjtCOTk0OzExMDUgMTE3NCAxMUFCOworQjk5NTtCOTk1OzExMDUgMTE3NCAxMUFDO0I5OTU7MTEwNSAxMTc0IDExQUM7CitCOTk2O0I5OTY7MTEwNSAxMTc0IDExQUQ7Qjk5NjsxMTA1IDExNzQgMTFBRDsKK0I5OTc7Qjk5NzsxMTA1IDExNzQgMTFBRTtCOTk3OzExMDUgMTE3NCAxMUFFOworQjk5ODtCOTk4OzExMDUgMTE3NCAxMUFGO0I5OTg7MTEwNSAxMTc0IDExQUY7CitCOTk5O0I5OTk7MTEwNSAxMTc0IDExQjA7Qjk5OTsxMTA1IDExNzQgMTFCMDsKK0I5OUE7Qjk5QTsxMTA1IDExNzQgMTFCMTtCOTlBOzExMDUgMTE3NCAxMUIxOworQjk5QjtCOTlCOzExMDUgMTE3NCAxMUIyO0I5OUI7MTEwNSAxMTc0IDExQjI7CitCOTlDO0I5OUM7MTEwNSAxMTc0IDExQjM7Qjk5QzsxMTA1IDExNzQgMTFCMzsKK0I5OUQ7Qjk5RDsxMTA1IDExNzQgMTFCNDtCOTlEOzExMDUgMTE3NCAxMUI0OworQjk5RTtCOTlFOzExMDUgMTE3NCAxMUI1O0I5OUU7MTEwNSAxMTc0IDExQjU7CitCOTlGO0I5OUY7MTEwNSAxMTc0IDExQjY7Qjk5RjsxMTA1IDExNzQgMTFCNjsKK0I5QTA7QjlBMDsxMTA1IDExNzQgMTFCNztCOUEwOzExMDUgMTE3NCAxMUI3OworQjlBMTtCOUExOzExMDUgMTE3NCAxMUI4O0I5QTE7MTEwNSAxMTc0IDExQjg7CitCOUEyO0I5QTI7MTEwNSAxMTc0IDExQjk7QjlBMjsxMTA1IDExNzQgMTFCOTsKK0I5QTM7QjlBMzsxMTA1IDExNzQgMTFCQTtCOUEzOzExMDUgMTE3NCAxMUJBOworQjlBNDtCOUE0OzExMDUgMTE3NCAxMUJCO0I5QTQ7MTEwNSAxMTc0IDExQkI7CitCOUE1O0I5QTU7MTEwNSAxMTc0IDExQkM7QjlBNTsxMTA1IDExNzQgMTFCQzsKK0I5QTY7QjlBNjsxMTA1IDExNzQgMTFCRDtCOUE2OzExMDUgMTE3NCAxMUJEOworQjlBNztCOUE3OzExMDUgMTE3NCAxMUJFO0I5QTc7MTEwNSAxMTc0IDExQkU7CitCOUE4O0I5QTg7MTEwNSAxMTc0IDExQkY7QjlBODsxMTA1IDExNzQgMTFCRjsKK0I5QTk7QjlBOTsxMTA1IDExNzQgMTFDMDtCOUE5OzExMDUgMTE3NCAxMUMwOworQjlBQTtCOUFBOzExMDUgMTE3NCAxMUMxO0I5QUE7MTEwNSAxMTc0IDExQzE7CitCOUFCO0I5QUI7MTEwNSAxMTc0IDExQzI7QjlBQjsxMTA1IDExNzQgMTFDMjsKK0I5QUM7QjlBQzsxMTA1IDExNzU7QjlBQzsxMTA1IDExNzU7CitCOUFEO0I5QUQ7MTEwNSAxMTc1IDExQTg7QjlBRDsxMTA1IDExNzUgMTFBODsKK0I5QUU7QjlBRTsxMTA1IDExNzUgMTFBOTtCOUFFOzExMDUgMTE3NSAxMUE5OworQjlBRjtCOUFGOzExMDUgMTE3NSAxMUFBO0I5QUY7MTEwNSAxMTc1IDExQUE7CitCOUIwO0I5QjA7MTEwNSAxMTc1IDExQUI7QjlCMDsxMTA1IDExNzUgMTFBQjsKK0I5QjE7QjlCMTsxMTA1IDExNzUgMTFBQztCOUIxOzExMDUgMTE3NSAxMUFDOworQjlCMjtCOUIyOzExMDUgMTE3NSAxMUFEO0I5QjI7MTEwNSAxMTc1IDExQUQ7CitCOUIzO0I5QjM7MTEwNSAxMTc1IDExQUU7QjlCMzsxMTA1IDExNzUgMTFBRTsKK0I5QjQ7QjlCNDsxMTA1IDExNzUgMTFBRjtCOUI0OzExMDUgMTE3NSAxMUFGOworQjlCNTtCOUI1OzExMDUgMTE3NSAxMUIwO0I5QjU7MTEwNSAxMTc1IDExQjA7CitCOUI2O0I5QjY7MTEwNSAxMTc1IDExQjE7QjlCNjsxMTA1IDExNzUgMTFCMTsKK0I5Qjc7QjlCNzsxMTA1IDExNzUgMTFCMjtCOUI3OzExMDUgMTE3NSAxMUIyOworQjlCODtCOUI4OzExMDUgMTE3NSAxMUIzO0I5Qjg7MTEwNSAxMTc1IDExQjM7CitCOUI5O0I5Qjk7MTEwNSAxMTc1IDExQjQ7QjlCOTsxMTA1IDExNzUgMTFCNDsKK0I5QkE7QjlCQTsxMTA1IDExNzUgMTFCNTtCOUJBOzExMDUgMTE3NSAxMUI1OworQjlCQjtCOUJCOzExMDUgMTE3NSAxMUI2O0I5QkI7MTEwNSAxMTc1IDExQjY7CitCOUJDO0I5QkM7MTEwNSAxMTc1IDExQjc7QjlCQzsxMTA1IDExNzUgMTFCNzsKK0I5QkQ7QjlCRDsxMTA1IDExNzUgMTFCODtCOUJEOzExMDUgMTE3NSAxMUI4OworQjlCRTtCOUJFOzExMDUgMTE3NSAxMUI5O0I5QkU7MTEwNSAxMTc1IDExQjk7CitCOUJGO0I5QkY7MTEwNSAxMTc1IDExQkE7QjlCRjsxMTA1IDExNzUgMTFCQTsKK0I5QzA7QjlDMDsxMTA1IDExNzUgMTFCQjtCOUMwOzExMDUgMTE3NSAxMUJCOworQjlDMTtCOUMxOzExMDUgMTE3NSAxMUJDO0I5QzE7MTEwNSAxMTc1IDExQkM7CitCOUMyO0I5QzI7MTEwNSAxMTc1IDExQkQ7QjlDMjsxMTA1IDExNzUgMTFCRDsKK0I5QzM7QjlDMzsxMTA1IDExNzUgMTFCRTtCOUMzOzExMDUgMTE3NSAxMUJFOworQjlDNDtCOUM0OzExMDUgMTE3NSAxMUJGO0I5QzQ7MTEwNSAxMTc1IDExQkY7CitCOUM1O0I5QzU7MTEwNSAxMTc1IDExQzA7QjlDNTsxMTA1IDExNzUgMTFDMDsKK0I5QzY7QjlDNjsxMTA1IDExNzUgMTFDMTtCOUM2OzExMDUgMTE3NSAxMUMxOworQjlDNztCOUM3OzExMDUgMTE3NSAxMUMyO0I5Qzc7MTEwNSAxMTc1IDExQzI7CitCOUM4O0I5Qzg7MTEwNiAxMTYxO0I5Qzg7MTEwNiAxMTYxOworQjlDOTtCOUM5OzExMDYgMTE2MSAxMUE4O0I5Qzk7MTEwNiAxMTYxIDExQTg7CitCOUNBO0I5Q0E7MTEwNiAxMTYxIDExQTk7QjlDQTsxMTA2IDExNjEgMTFBOTsKK0I5Q0I7QjlDQjsxMTA2IDExNjEgMTFBQTtCOUNCOzExMDYgMTE2MSAxMUFBOworQjlDQztCOUNDOzExMDYgMTE2MSAxMUFCO0I5Q0M7MTEwNiAxMTYxIDExQUI7CitCOUNEO0I5Q0Q7MTEwNiAxMTYxIDExQUM7QjlDRDsxMTA2IDExNjEgMTFBQzsKK0I5Q0U7QjlDRTsxMTA2IDExNjEgMTFBRDtCOUNFOzExMDYgMTE2MSAxMUFEOworQjlDRjtCOUNGOzExMDYgMTE2MSAxMUFFO0I5Q0Y7MTEwNiAxMTYxIDExQUU7CitCOUQwO0I5RDA7MTEwNiAxMTYxIDExQUY7QjlEMDsxMTA2IDExNjEgMTFBRjsKK0I5RDE7QjlEMTsxMTA2IDExNjEgMTFCMDtCOUQxOzExMDYgMTE2MSAxMUIwOworQjlEMjtCOUQyOzExMDYgMTE2MSAxMUIxO0I5RDI7MTEwNiAxMTYxIDExQjE7CitCOUQzO0I5RDM7MTEwNiAxMTYxIDExQjI7QjlEMzsxMTA2IDExNjEgMTFCMjsKK0I5RDQ7QjlENDsxMTA2IDExNjEgMTFCMztCOUQ0OzExMDYgMTE2MSAxMUIzOworQjlENTtCOUQ1OzExMDYgMTE2MSAxMUI0O0I5RDU7MTEwNiAxMTYxIDExQjQ7CitCOUQ2O0I5RDY7MTEwNiAxMTYxIDExQjU7QjlENjsxMTA2IDExNjEgMTFCNTsKK0I5RDc7QjlENzsxMTA2IDExNjEgMTFCNjtCOUQ3OzExMDYgMTE2MSAxMUI2OworQjlEODtCOUQ4OzExMDYgMTE2MSAxMUI3O0I5RDg7MTEwNiAxMTYxIDExQjc7CitCOUQ5O0I5RDk7MTEwNiAxMTYxIDExQjg7QjlEOTsxMTA2IDExNjEgMTFCODsKK0I5REE7QjlEQTsxMTA2IDExNjEgMTFCOTtCOURBOzExMDYgMTE2MSAxMUI5OworQjlEQjtCOURCOzExMDYgMTE2MSAxMUJBO0I5REI7MTEwNiAxMTYxIDExQkE7CitCOURDO0I5REM7MTEwNiAxMTYxIDExQkI7QjlEQzsxMTA2IDExNjEgMTFCQjsKK0I5REQ7QjlERDsxMTA2IDExNjEgMTFCQztCOUREOzExMDYgMTE2MSAxMUJDOworQjlERTtCOURFOzExMDYgMTE2MSAxMUJEO0I5REU7MTEwNiAxMTYxIDExQkQ7CitCOURGO0I5REY7MTEwNiAxMTYxIDExQkU7QjlERjsxMTA2IDExNjEgMTFCRTsKK0I5RTA7QjlFMDsxMTA2IDExNjEgMTFCRjtCOUUwOzExMDYgMTE2MSAxMUJGOworQjlFMTtCOUUxOzExMDYgMTE2MSAxMUMwO0I5RTE7MTEwNiAxMTYxIDExQzA7CitCOUUyO0I5RTI7MTEwNiAxMTYxIDExQzE7QjlFMjsxMTA2IDExNjEgMTFDMTsKK0I5RTM7QjlFMzsxMTA2IDExNjEgMTFDMjtCOUUzOzExMDYgMTE2MSAxMUMyOworQjlFNDtCOUU0OzExMDYgMTE2MjtCOUU0OzExMDYgMTE2MjsKK0I5RTU7QjlFNTsxMTA2IDExNjIgMTFBODtCOUU1OzExMDYgMTE2MiAxMUE4OworQjlFNjtCOUU2OzExMDYgMTE2MiAxMUE5O0I5RTY7MTEwNiAxMTYyIDExQTk7CitCOUU3O0I5RTc7MTEwNiAxMTYyIDExQUE7QjlFNzsxMTA2IDExNjIgMTFBQTsKK0I5RTg7QjlFODsxMTA2IDExNjIgMTFBQjtCOUU4OzExMDYgMTE2MiAxMUFCOworQjlFOTtCOUU5OzExMDYgMTE2MiAxMUFDO0I5RTk7MTEwNiAxMTYyIDExQUM7CitCOUVBO0I5RUE7MTEwNiAxMTYyIDExQUQ7QjlFQTsxMTA2IDExNjIgMTFBRDsKK0I5RUI7QjlFQjsxMTA2IDExNjIgMTFBRTtCOUVCOzExMDYgMTE2MiAxMUFFOworQjlFQztCOUVDOzExMDYgMTE2MiAxMUFGO0I5RUM7MTEwNiAxMTYyIDExQUY7CitCOUVEO0I5RUQ7MTEwNiAxMTYyIDExQjA7QjlFRDsxMTA2IDExNjIgMTFCMDsKK0I5RUU7QjlFRTsxMTA2IDExNjIgMTFCMTtCOUVFOzExMDYgMTE2MiAxMUIxOworQjlFRjtCOUVGOzExMDYgMTE2MiAxMUIyO0I5RUY7MTEwNiAxMTYyIDExQjI7CitCOUYwO0I5RjA7MTEwNiAxMTYyIDExQjM7QjlGMDsxMTA2IDExNjIgMTFCMzsKK0I5RjE7QjlGMTsxMTA2IDExNjIgMTFCNDtCOUYxOzExMDYgMTE2MiAxMUI0OworQjlGMjtCOUYyOzExMDYgMTE2MiAxMUI1O0I5RjI7MTEwNiAxMTYyIDExQjU7CitCOUYzO0I5RjM7MTEwNiAxMTYyIDExQjY7QjlGMzsxMTA2IDExNjIgMTFCNjsKK0I5RjQ7QjlGNDsxMTA2IDExNjIgMTFCNztCOUY0OzExMDYgMTE2MiAxMUI3OworQjlGNTtCOUY1OzExMDYgMTE2MiAxMUI4O0I5RjU7MTEwNiAxMTYyIDExQjg7CitCOUY2O0I5RjY7MTEwNiAxMTYyIDExQjk7QjlGNjsxMTA2IDExNjIgMTFCOTsKK0I5Rjc7QjlGNzsxMTA2IDExNjIgMTFCQTtCOUY3OzExMDYgMTE2MiAxMUJBOworQjlGODtCOUY4OzExMDYgMTE2MiAxMUJCO0I5Rjg7MTEwNiAxMTYyIDExQkI7CitCOUY5O0I5Rjk7MTEwNiAxMTYyIDExQkM7QjlGOTsxMTA2IDExNjIgMTFCQzsKK0I5RkE7QjlGQTsxMTA2IDExNjIgMTFCRDtCOUZBOzExMDYgMTE2MiAxMUJEOworQjlGQjtCOUZCOzExMDYgMTE2MiAxMUJFO0I5RkI7MTEwNiAxMTYyIDExQkU7CitCOUZDO0I5RkM7MTEwNiAxMTYyIDExQkY7QjlGQzsxMTA2IDExNjIgMTFCRjsKK0I5RkQ7QjlGRDsxMTA2IDExNjIgMTFDMDtCOUZEOzExMDYgMTE2MiAxMUMwOworQjlGRTtCOUZFOzExMDYgMTE2MiAxMUMxO0I5RkU7MTEwNiAxMTYyIDExQzE7CitCOUZGO0I5RkY7MTEwNiAxMTYyIDExQzI7QjlGRjsxMTA2IDExNjIgMTFDMjsKK0JBMDA7QkEwMDsxMTA2IDExNjM7QkEwMDsxMTA2IDExNjM7CitCQTAxO0JBMDE7MTEwNiAxMTYzIDExQTg7QkEwMTsxMTA2IDExNjMgMTFBODsKK0JBMDI7QkEwMjsxMTA2IDExNjMgMTFBOTtCQTAyOzExMDYgMTE2MyAxMUE5OworQkEwMztCQTAzOzExMDYgMTE2MyAxMUFBO0JBMDM7MTEwNiAxMTYzIDExQUE7CitCQTA0O0JBMDQ7MTEwNiAxMTYzIDExQUI7QkEwNDsxMTA2IDExNjMgMTFBQjsKK0JBMDU7QkEwNTsxMTA2IDExNjMgMTFBQztCQTA1OzExMDYgMTE2MyAxMUFDOworQkEwNjtCQTA2OzExMDYgMTE2MyAxMUFEO0JBMDY7MTEwNiAxMTYzIDExQUQ7CitCQTA3O0JBMDc7MTEwNiAxMTYzIDExQUU7QkEwNzsxMTA2IDExNjMgMTFBRTsKK0JBMDg7QkEwODsxMTA2IDExNjMgMTFBRjtCQTA4OzExMDYgMTE2MyAxMUFGOworQkEwOTtCQTA5OzExMDYgMTE2MyAxMUIwO0JBMDk7MTEwNiAxMTYzIDExQjA7CitCQTBBO0JBMEE7MTEwNiAxMTYzIDExQjE7QkEwQTsxMTA2IDExNjMgMTFCMTsKK0JBMEI7QkEwQjsxMTA2IDExNjMgMTFCMjtCQTBCOzExMDYgMTE2MyAxMUIyOworQkEwQztCQTBDOzExMDYgMTE2MyAxMUIzO0JBMEM7MTEwNiAxMTYzIDExQjM7CitCQTBEO0JBMEQ7MTEwNiAxMTYzIDExQjQ7QkEwRDsxMTA2IDExNjMgMTFCNDsKK0JBMEU7QkEwRTsxMTA2IDExNjMgMTFCNTtCQTBFOzExMDYgMTE2MyAxMUI1OworQkEwRjtCQTBGOzExMDYgMTE2MyAxMUI2O0JBMEY7MTEwNiAxMTYzIDExQjY7CitCQTEwO0JBMTA7MTEwNiAxMTYzIDExQjc7QkExMDsxMTA2IDExNjMgMTFCNzsKK0JBMTE7QkExMTsxMTA2IDExNjMgMTFCODtCQTExOzExMDYgMTE2MyAxMUI4OworQkExMjtCQTEyOzExMDYgMTE2MyAxMUI5O0JBMTI7MTEwNiAxMTYzIDExQjk7CitCQTEzO0JBMTM7MTEwNiAxMTYzIDExQkE7QkExMzsxMTA2IDExNjMgMTFCQTsKK0JBMTQ7QkExNDsxMTA2IDExNjMgMTFCQjtCQTE0OzExMDYgMTE2MyAxMUJCOworQkExNTtCQTE1OzExMDYgMTE2MyAxMUJDO0JBMTU7MTEwNiAxMTYzIDExQkM7CitCQTE2O0JBMTY7MTEwNiAxMTYzIDExQkQ7QkExNjsxMTA2IDExNjMgMTFCRDsKK0JBMTc7QkExNzsxMTA2IDExNjMgMTFCRTtCQTE3OzExMDYgMTE2MyAxMUJFOworQkExODtCQTE4OzExMDYgMTE2MyAxMUJGO0JBMTg7MTEwNiAxMTYzIDExQkY7CitCQTE5O0JBMTk7MTEwNiAxMTYzIDExQzA7QkExOTsxMTA2IDExNjMgMTFDMDsKK0JBMUE7QkExQTsxMTA2IDExNjMgMTFDMTtCQTFBOzExMDYgMTE2MyAxMUMxOworQkExQjtCQTFCOzExMDYgMTE2MyAxMUMyO0JBMUI7MTEwNiAxMTYzIDExQzI7CitCQTFDO0JBMUM7MTEwNiAxMTY0O0JBMUM7MTEwNiAxMTY0OworQkExRDtCQTFEOzExMDYgMTE2NCAxMUE4O0JBMUQ7MTEwNiAxMTY0IDExQTg7CitCQTFFO0JBMUU7MTEwNiAxMTY0IDExQTk7QkExRTsxMTA2IDExNjQgMTFBOTsKK0JBMUY7QkExRjsxMTA2IDExNjQgMTFBQTtCQTFGOzExMDYgMTE2NCAxMUFBOworQkEyMDtCQTIwOzExMDYgMTE2NCAxMUFCO0JBMjA7MTEwNiAxMTY0IDExQUI7CitCQTIxO0JBMjE7MTEwNiAxMTY0IDExQUM7QkEyMTsxMTA2IDExNjQgMTFBQzsKK0JBMjI7QkEyMjsxMTA2IDExNjQgMTFBRDtCQTIyOzExMDYgMTE2NCAxMUFEOworQkEyMztCQTIzOzExMDYgMTE2NCAxMUFFO0JBMjM7MTEwNiAxMTY0IDExQUU7CitCQTI0O0JBMjQ7MTEwNiAxMTY0IDExQUY7QkEyNDsxMTA2IDExNjQgMTFBRjsKK0JBMjU7QkEyNTsxMTA2IDExNjQgMTFCMDtCQTI1OzExMDYgMTE2NCAxMUIwOworQkEyNjtCQTI2OzExMDYgMTE2NCAxMUIxO0JBMjY7MTEwNiAxMTY0IDExQjE7CitCQTI3O0JBMjc7MTEwNiAxMTY0IDExQjI7QkEyNzsxMTA2IDExNjQgMTFCMjsKK0JBMjg7QkEyODsxMTA2IDExNjQgMTFCMztCQTI4OzExMDYgMTE2NCAxMUIzOworQkEyOTtCQTI5OzExMDYgMTE2NCAxMUI0O0JBMjk7MTEwNiAxMTY0IDExQjQ7CitCQTJBO0JBMkE7MTEwNiAxMTY0IDExQjU7QkEyQTsxMTA2IDExNjQgMTFCNTsKK0JBMkI7QkEyQjsxMTA2IDExNjQgMTFCNjtCQTJCOzExMDYgMTE2NCAxMUI2OworQkEyQztCQTJDOzExMDYgMTE2NCAxMUI3O0JBMkM7MTEwNiAxMTY0IDExQjc7CitCQTJEO0JBMkQ7MTEwNiAxMTY0IDExQjg7QkEyRDsxMTA2IDExNjQgMTFCODsKK0JBMkU7QkEyRTsxMTA2IDExNjQgMTFCOTtCQTJFOzExMDYgMTE2NCAxMUI5OworQkEyRjtCQTJGOzExMDYgMTE2NCAxMUJBO0JBMkY7MTEwNiAxMTY0IDExQkE7CitCQTMwO0JBMzA7MTEwNiAxMTY0IDExQkI7QkEzMDsxMTA2IDExNjQgMTFCQjsKK0JBMzE7QkEzMTsxMTA2IDExNjQgMTFCQztCQTMxOzExMDYgMTE2NCAxMUJDOworQkEzMjtCQTMyOzExMDYgMTE2NCAxMUJEO0JBMzI7MTEwNiAxMTY0IDExQkQ7CitCQTMzO0JBMzM7MTEwNiAxMTY0IDExQkU7QkEzMzsxMTA2IDExNjQgMTFCRTsKK0JBMzQ7QkEzNDsxMTA2IDExNjQgMTFCRjtCQTM0OzExMDYgMTE2NCAxMUJGOworQkEzNTtCQTM1OzExMDYgMTE2NCAxMUMwO0JBMzU7MTEwNiAxMTY0IDExQzA7CitCQTM2O0JBMzY7MTEwNiAxMTY0IDExQzE7QkEzNjsxMTA2IDExNjQgMTFDMTsKK0JBMzc7QkEzNzsxMTA2IDExNjQgMTFDMjtCQTM3OzExMDYgMTE2NCAxMUMyOworQkEzODtCQTM4OzExMDYgMTE2NTtCQTM4OzExMDYgMTE2NTsKK0JBMzk7QkEzOTsxMTA2IDExNjUgMTFBODtCQTM5OzExMDYgMTE2NSAxMUE4OworQkEzQTtCQTNBOzExMDYgMTE2NSAxMUE5O0JBM0E7MTEwNiAxMTY1IDExQTk7CitCQTNCO0JBM0I7MTEwNiAxMTY1IDExQUE7QkEzQjsxMTA2IDExNjUgMTFBQTsKK0JBM0M7QkEzQzsxMTA2IDExNjUgMTFBQjtCQTNDOzExMDYgMTE2NSAxMUFCOworQkEzRDtCQTNEOzExMDYgMTE2NSAxMUFDO0JBM0Q7MTEwNiAxMTY1IDExQUM7CitCQTNFO0JBM0U7MTEwNiAxMTY1IDExQUQ7QkEzRTsxMTA2IDExNjUgMTFBRDsKK0JBM0Y7QkEzRjsxMTA2IDExNjUgMTFBRTtCQTNGOzExMDYgMTE2NSAxMUFFOworQkE0MDtCQTQwOzExMDYgMTE2NSAxMUFGO0JBNDA7MTEwNiAxMTY1IDExQUY7CitCQTQxO0JBNDE7MTEwNiAxMTY1IDExQjA7QkE0MTsxMTA2IDExNjUgMTFCMDsKK0JBNDI7QkE0MjsxMTA2IDExNjUgMTFCMTtCQTQyOzExMDYgMTE2NSAxMUIxOworQkE0MztCQTQzOzExMDYgMTE2NSAxMUIyO0JBNDM7MTEwNiAxMTY1IDExQjI7CitCQTQ0O0JBNDQ7MTEwNiAxMTY1IDExQjM7QkE0NDsxMTA2IDExNjUgMTFCMzsKK0JBNDU7QkE0NTsxMTA2IDExNjUgMTFCNDtCQTQ1OzExMDYgMTE2NSAxMUI0OworQkE0NjtCQTQ2OzExMDYgMTE2NSAxMUI1O0JBNDY7MTEwNiAxMTY1IDExQjU7CitCQTQ3O0JBNDc7MTEwNiAxMTY1IDExQjY7QkE0NzsxMTA2IDExNjUgMTFCNjsKK0JBNDg7QkE0ODsxMTA2IDExNjUgMTFCNztCQTQ4OzExMDYgMTE2NSAxMUI3OworQkE0OTtCQTQ5OzExMDYgMTE2NSAxMUI4O0JBNDk7MTEwNiAxMTY1IDExQjg7CitCQTRBO0JBNEE7MTEwNiAxMTY1IDExQjk7QkE0QTsxMTA2IDExNjUgMTFCOTsKK0JBNEI7QkE0QjsxMTA2IDExNjUgMTFCQTtCQTRCOzExMDYgMTE2NSAxMUJBOworQkE0QztCQTRDOzExMDYgMTE2NSAxMUJCO0JBNEM7MTEwNiAxMTY1IDExQkI7CitCQTREO0JBNEQ7MTEwNiAxMTY1IDExQkM7QkE0RDsxMTA2IDExNjUgMTFCQzsKK0JBNEU7QkE0RTsxMTA2IDExNjUgMTFCRDtCQTRFOzExMDYgMTE2NSAxMUJEOworQkE0RjtCQTRGOzExMDYgMTE2NSAxMUJFO0JBNEY7MTEwNiAxMTY1IDExQkU7CitCQTUwO0JBNTA7MTEwNiAxMTY1IDExQkY7QkE1MDsxMTA2IDExNjUgMTFCRjsKK0JBNTE7QkE1MTsxMTA2IDExNjUgMTFDMDtCQTUxOzExMDYgMTE2NSAxMUMwOworQkE1MjtCQTUyOzExMDYgMTE2NSAxMUMxO0JBNTI7MTEwNiAxMTY1IDExQzE7CitCQTUzO0JBNTM7MTEwNiAxMTY1IDExQzI7QkE1MzsxMTA2IDExNjUgMTFDMjsKK0JBNTQ7QkE1NDsxMTA2IDExNjY7QkE1NDsxMTA2IDExNjY7CitCQTU1O0JBNTU7MTEwNiAxMTY2IDExQTg7QkE1NTsxMTA2IDExNjYgMTFBODsKK0JBNTY7QkE1NjsxMTA2IDExNjYgMTFBOTtCQTU2OzExMDYgMTE2NiAxMUE5OworQkE1NztCQTU3OzExMDYgMTE2NiAxMUFBO0JBNTc7MTEwNiAxMTY2IDExQUE7CitCQTU4O0JBNTg7MTEwNiAxMTY2IDExQUI7QkE1ODsxMTA2IDExNjYgMTFBQjsKK0JBNTk7QkE1OTsxMTA2IDExNjYgMTFBQztCQTU5OzExMDYgMTE2NiAxMUFDOworQkE1QTtCQTVBOzExMDYgMTE2NiAxMUFEO0JBNUE7MTEwNiAxMTY2IDExQUQ7CitCQTVCO0JBNUI7MTEwNiAxMTY2IDExQUU7QkE1QjsxMTA2IDExNjYgMTFBRTsKK0JBNUM7QkE1QzsxMTA2IDExNjYgMTFBRjtCQTVDOzExMDYgMTE2NiAxMUFGOworQkE1RDtCQTVEOzExMDYgMTE2NiAxMUIwO0JBNUQ7MTEwNiAxMTY2IDExQjA7CitCQTVFO0JBNUU7MTEwNiAxMTY2IDExQjE7QkE1RTsxMTA2IDExNjYgMTFCMTsKK0JBNUY7QkE1RjsxMTA2IDExNjYgMTFCMjtCQTVGOzExMDYgMTE2NiAxMUIyOworQkE2MDtCQTYwOzExMDYgMTE2NiAxMUIzO0JBNjA7MTEwNiAxMTY2IDExQjM7CitCQTYxO0JBNjE7MTEwNiAxMTY2IDExQjQ7QkE2MTsxMTA2IDExNjYgMTFCNDsKK0JBNjI7QkE2MjsxMTA2IDExNjYgMTFCNTtCQTYyOzExMDYgMTE2NiAxMUI1OworQkE2MztCQTYzOzExMDYgMTE2NiAxMUI2O0JBNjM7MTEwNiAxMTY2IDExQjY7CitCQTY0O0JBNjQ7MTEwNiAxMTY2IDExQjc7QkE2NDsxMTA2IDExNjYgMTFCNzsKK0JBNjU7QkE2NTsxMTA2IDExNjYgMTFCODtCQTY1OzExMDYgMTE2NiAxMUI4OworQkE2NjtCQTY2OzExMDYgMTE2NiAxMUI5O0JBNjY7MTEwNiAxMTY2IDExQjk7CitCQTY3O0JBNjc7MTEwNiAxMTY2IDExQkE7QkE2NzsxMTA2IDExNjYgMTFCQTsKK0JBNjg7QkE2ODsxMTA2IDExNjYgMTFCQjtCQTY4OzExMDYgMTE2NiAxMUJCOworQkE2OTtCQTY5OzExMDYgMTE2NiAxMUJDO0JBNjk7MTEwNiAxMTY2IDExQkM7CitCQTZBO0JBNkE7MTEwNiAxMTY2IDExQkQ7QkE2QTsxMTA2IDExNjYgMTFCRDsKK0JBNkI7QkE2QjsxMTA2IDExNjYgMTFCRTtCQTZCOzExMDYgMTE2NiAxMUJFOworQkE2QztCQTZDOzExMDYgMTE2NiAxMUJGO0JBNkM7MTEwNiAxMTY2IDExQkY7CitCQTZEO0JBNkQ7MTEwNiAxMTY2IDExQzA7QkE2RDsxMTA2IDExNjYgMTFDMDsKK0JBNkU7QkE2RTsxMTA2IDExNjYgMTFDMTtCQTZFOzExMDYgMTE2NiAxMUMxOworQkE2RjtCQTZGOzExMDYgMTE2NiAxMUMyO0JBNkY7MTEwNiAxMTY2IDExQzI7CitCQTcwO0JBNzA7MTEwNiAxMTY3O0JBNzA7MTEwNiAxMTY3OworQkE3MTtCQTcxOzExMDYgMTE2NyAxMUE4O0JBNzE7MTEwNiAxMTY3IDExQTg7CitCQTcyO0JBNzI7MTEwNiAxMTY3IDExQTk7QkE3MjsxMTA2IDExNjcgMTFBOTsKK0JBNzM7QkE3MzsxMTA2IDExNjcgMTFBQTtCQTczOzExMDYgMTE2NyAxMUFBOworQkE3NDtCQTc0OzExMDYgMTE2NyAxMUFCO0JBNzQ7MTEwNiAxMTY3IDExQUI7CitCQTc1O0JBNzU7MTEwNiAxMTY3IDExQUM7QkE3NTsxMTA2IDExNjcgMTFBQzsKK0JBNzY7QkE3NjsxMTA2IDExNjcgMTFBRDtCQTc2OzExMDYgMTE2NyAxMUFEOworQkE3NztCQTc3OzExMDYgMTE2NyAxMUFFO0JBNzc7MTEwNiAxMTY3IDExQUU7CitCQTc4O0JBNzg7MTEwNiAxMTY3IDExQUY7QkE3ODsxMTA2IDExNjcgMTFBRjsKK0JBNzk7QkE3OTsxMTA2IDExNjcgMTFCMDtCQTc5OzExMDYgMTE2NyAxMUIwOworQkE3QTtCQTdBOzExMDYgMTE2NyAxMUIxO0JBN0E7MTEwNiAxMTY3IDExQjE7CitCQTdCO0JBN0I7MTEwNiAxMTY3IDExQjI7QkE3QjsxMTA2IDExNjcgMTFCMjsKK0JBN0M7QkE3QzsxMTA2IDExNjcgMTFCMztCQTdDOzExMDYgMTE2NyAxMUIzOworQkE3RDtCQTdEOzExMDYgMTE2NyAxMUI0O0JBN0Q7MTEwNiAxMTY3IDExQjQ7CitCQTdFO0JBN0U7MTEwNiAxMTY3IDExQjU7QkE3RTsxMTA2IDExNjcgMTFCNTsKK0JBN0Y7QkE3RjsxMTA2IDExNjcgMTFCNjtCQTdGOzExMDYgMTE2NyAxMUI2OworQkE4MDtCQTgwOzExMDYgMTE2NyAxMUI3O0JBODA7MTEwNiAxMTY3IDExQjc7CitCQTgxO0JBODE7MTEwNiAxMTY3IDExQjg7QkE4MTsxMTA2IDExNjcgMTFCODsKK0JBODI7QkE4MjsxMTA2IDExNjcgMTFCOTtCQTgyOzExMDYgMTE2NyAxMUI5OworQkE4MztCQTgzOzExMDYgMTE2NyAxMUJBO0JBODM7MTEwNiAxMTY3IDExQkE7CitCQTg0O0JBODQ7MTEwNiAxMTY3IDExQkI7QkE4NDsxMTA2IDExNjcgMTFCQjsKK0JBODU7QkE4NTsxMTA2IDExNjcgMTFCQztCQTg1OzExMDYgMTE2NyAxMUJDOworQkE4NjtCQTg2OzExMDYgMTE2NyAxMUJEO0JBODY7MTEwNiAxMTY3IDExQkQ7CitCQTg3O0JBODc7MTEwNiAxMTY3IDExQkU7QkE4NzsxMTA2IDExNjcgMTFCRTsKK0JBODg7QkE4ODsxMTA2IDExNjcgMTFCRjtCQTg4OzExMDYgMTE2NyAxMUJGOworQkE4OTtCQTg5OzExMDYgMTE2NyAxMUMwO0JBODk7MTEwNiAxMTY3IDExQzA7CitCQThBO0JBOEE7MTEwNiAxMTY3IDExQzE7QkE4QTsxMTA2IDExNjcgMTFDMTsKK0JBOEI7QkE4QjsxMTA2IDExNjcgMTFDMjtCQThCOzExMDYgMTE2NyAxMUMyOworQkE4QztCQThDOzExMDYgMTE2ODtCQThDOzExMDYgMTE2ODsKK0JBOEQ7QkE4RDsxMTA2IDExNjggMTFBODtCQThEOzExMDYgMTE2OCAxMUE4OworQkE4RTtCQThFOzExMDYgMTE2OCAxMUE5O0JBOEU7MTEwNiAxMTY4IDExQTk7CitCQThGO0JBOEY7MTEwNiAxMTY4IDExQUE7QkE4RjsxMTA2IDExNjggMTFBQTsKK0JBOTA7QkE5MDsxMTA2IDExNjggMTFBQjtCQTkwOzExMDYgMTE2OCAxMUFCOworQkE5MTtCQTkxOzExMDYgMTE2OCAxMUFDO0JBOTE7MTEwNiAxMTY4IDExQUM7CitCQTkyO0JBOTI7MTEwNiAxMTY4IDExQUQ7QkE5MjsxMTA2IDExNjggMTFBRDsKK0JBOTM7QkE5MzsxMTA2IDExNjggMTFBRTtCQTkzOzExMDYgMTE2OCAxMUFFOworQkE5NDtCQTk0OzExMDYgMTE2OCAxMUFGO0JBOTQ7MTEwNiAxMTY4IDExQUY7CitCQTk1O0JBOTU7MTEwNiAxMTY4IDExQjA7QkE5NTsxMTA2IDExNjggMTFCMDsKK0JBOTY7QkE5NjsxMTA2IDExNjggMTFCMTtCQTk2OzExMDYgMTE2OCAxMUIxOworQkE5NztCQTk3OzExMDYgMTE2OCAxMUIyO0JBOTc7MTEwNiAxMTY4IDExQjI7CitCQTk4O0JBOTg7MTEwNiAxMTY4IDExQjM7QkE5ODsxMTA2IDExNjggMTFCMzsKK0JBOTk7QkE5OTsxMTA2IDExNjggMTFCNDtCQTk5OzExMDYgMTE2OCAxMUI0OworQkE5QTtCQTlBOzExMDYgMTE2OCAxMUI1O0JBOUE7MTEwNiAxMTY4IDExQjU7CitCQTlCO0JBOUI7MTEwNiAxMTY4IDExQjY7QkE5QjsxMTA2IDExNjggMTFCNjsKK0JBOUM7QkE5QzsxMTA2IDExNjggMTFCNztCQTlDOzExMDYgMTE2OCAxMUI3OworQkE5RDtCQTlEOzExMDYgMTE2OCAxMUI4O0JBOUQ7MTEwNiAxMTY4IDExQjg7CitCQTlFO0JBOUU7MTEwNiAxMTY4IDExQjk7QkE5RTsxMTA2IDExNjggMTFCOTsKK0JBOUY7QkE5RjsxMTA2IDExNjggMTFCQTtCQTlGOzExMDYgMTE2OCAxMUJBOworQkFBMDtCQUEwOzExMDYgMTE2OCAxMUJCO0JBQTA7MTEwNiAxMTY4IDExQkI7CitCQUExO0JBQTE7MTEwNiAxMTY4IDExQkM7QkFBMTsxMTA2IDExNjggMTFCQzsKK0JBQTI7QkFBMjsxMTA2IDExNjggMTFCRDtCQUEyOzExMDYgMTE2OCAxMUJEOworQkFBMztCQUEzOzExMDYgMTE2OCAxMUJFO0JBQTM7MTEwNiAxMTY4IDExQkU7CitCQUE0O0JBQTQ7MTEwNiAxMTY4IDExQkY7QkFBNDsxMTA2IDExNjggMTFCRjsKK0JBQTU7QkFBNTsxMTA2IDExNjggMTFDMDtCQUE1OzExMDYgMTE2OCAxMUMwOworQkFBNjtCQUE2OzExMDYgMTE2OCAxMUMxO0JBQTY7MTEwNiAxMTY4IDExQzE7CitCQUE3O0JBQTc7MTEwNiAxMTY4IDExQzI7QkFBNzsxMTA2IDExNjggMTFDMjsKK0JBQTg7QkFBODsxMTA2IDExNjk7QkFBODsxMTA2IDExNjk7CitCQUE5O0JBQTk7MTEwNiAxMTY5IDExQTg7QkFBOTsxMTA2IDExNjkgMTFBODsKK0JBQUE7QkFBQTsxMTA2IDExNjkgMTFBOTtCQUFBOzExMDYgMTE2OSAxMUE5OworQkFBQjtCQUFCOzExMDYgMTE2OSAxMUFBO0JBQUI7MTEwNiAxMTY5IDExQUE7CitCQUFDO0JBQUM7MTEwNiAxMTY5IDExQUI7QkFBQzsxMTA2IDExNjkgMTFBQjsKK0JBQUQ7QkFBRDsxMTA2IDExNjkgMTFBQztCQUFEOzExMDYgMTE2OSAxMUFDOworQkFBRTtCQUFFOzExMDYgMTE2OSAxMUFEO0JBQUU7MTEwNiAxMTY5IDExQUQ7CitCQUFGO0JBQUY7MTEwNiAxMTY5IDExQUU7QkFBRjsxMTA2IDExNjkgMTFBRTsKK0JBQjA7QkFCMDsxMTA2IDExNjkgMTFBRjtCQUIwOzExMDYgMTE2OSAxMUFGOworQkFCMTtCQUIxOzExMDYgMTE2OSAxMUIwO0JBQjE7MTEwNiAxMTY5IDExQjA7CitCQUIyO0JBQjI7MTEwNiAxMTY5IDExQjE7QkFCMjsxMTA2IDExNjkgMTFCMTsKK0JBQjM7QkFCMzsxMTA2IDExNjkgMTFCMjtCQUIzOzExMDYgMTE2OSAxMUIyOworQkFCNDtCQUI0OzExMDYgMTE2OSAxMUIzO0JBQjQ7MTEwNiAxMTY5IDExQjM7CitCQUI1O0JBQjU7MTEwNiAxMTY5IDExQjQ7QkFCNTsxMTA2IDExNjkgMTFCNDsKK0JBQjY7QkFCNjsxMTA2IDExNjkgMTFCNTtCQUI2OzExMDYgMTE2OSAxMUI1OworQkFCNztCQUI3OzExMDYgMTE2OSAxMUI2O0JBQjc7MTEwNiAxMTY5IDExQjY7CitCQUI4O0JBQjg7MTEwNiAxMTY5IDExQjc7QkFCODsxMTA2IDExNjkgMTFCNzsKK0JBQjk7QkFCOTsxMTA2IDExNjkgMTFCODtCQUI5OzExMDYgMTE2OSAxMUI4OworQkFCQTtCQUJBOzExMDYgMTE2OSAxMUI5O0JBQkE7MTEwNiAxMTY5IDExQjk7CitCQUJCO0JBQkI7MTEwNiAxMTY5IDExQkE7QkFCQjsxMTA2IDExNjkgMTFCQTsKK0JBQkM7QkFCQzsxMTA2IDExNjkgMTFCQjtCQUJDOzExMDYgMTE2OSAxMUJCOworQkFCRDtCQUJEOzExMDYgMTE2OSAxMUJDO0JBQkQ7MTEwNiAxMTY5IDExQkM7CitCQUJFO0JBQkU7MTEwNiAxMTY5IDExQkQ7QkFCRTsxMTA2IDExNjkgMTFCRDsKK0JBQkY7QkFCRjsxMTA2IDExNjkgMTFCRTtCQUJGOzExMDYgMTE2OSAxMUJFOworQkFDMDtCQUMwOzExMDYgMTE2OSAxMUJGO0JBQzA7MTEwNiAxMTY5IDExQkY7CitCQUMxO0JBQzE7MTEwNiAxMTY5IDExQzA7QkFDMTsxMTA2IDExNjkgMTFDMDsKK0JBQzI7QkFDMjsxMTA2IDExNjkgMTFDMTtCQUMyOzExMDYgMTE2OSAxMUMxOworQkFDMztCQUMzOzExMDYgMTE2OSAxMUMyO0JBQzM7MTEwNiAxMTY5IDExQzI7CitCQUM0O0JBQzQ7MTEwNiAxMTZBO0JBQzQ7MTEwNiAxMTZBOworQkFDNTtCQUM1OzExMDYgMTE2QSAxMUE4O0JBQzU7MTEwNiAxMTZBIDExQTg7CitCQUM2O0JBQzY7MTEwNiAxMTZBIDExQTk7QkFDNjsxMTA2IDExNkEgMTFBOTsKK0JBQzc7QkFDNzsxMTA2IDExNkEgMTFBQTtCQUM3OzExMDYgMTE2QSAxMUFBOworQkFDODtCQUM4OzExMDYgMTE2QSAxMUFCO0JBQzg7MTEwNiAxMTZBIDExQUI7CitCQUM5O0JBQzk7MTEwNiAxMTZBIDExQUM7QkFDOTsxMTA2IDExNkEgMTFBQzsKK0JBQ0E7QkFDQTsxMTA2IDExNkEgMTFBRDtCQUNBOzExMDYgMTE2QSAxMUFEOworQkFDQjtCQUNCOzExMDYgMTE2QSAxMUFFO0JBQ0I7MTEwNiAxMTZBIDExQUU7CitCQUNDO0JBQ0M7MTEwNiAxMTZBIDExQUY7QkFDQzsxMTA2IDExNkEgMTFBRjsKK0JBQ0Q7QkFDRDsxMTA2IDExNkEgMTFCMDtCQUNEOzExMDYgMTE2QSAxMUIwOworQkFDRTtCQUNFOzExMDYgMTE2QSAxMUIxO0JBQ0U7MTEwNiAxMTZBIDExQjE7CitCQUNGO0JBQ0Y7MTEwNiAxMTZBIDExQjI7QkFDRjsxMTA2IDExNkEgMTFCMjsKK0JBRDA7QkFEMDsxMTA2IDExNkEgMTFCMztCQUQwOzExMDYgMTE2QSAxMUIzOworQkFEMTtCQUQxOzExMDYgMTE2QSAxMUI0O0JBRDE7MTEwNiAxMTZBIDExQjQ7CitCQUQyO0JBRDI7MTEwNiAxMTZBIDExQjU7QkFEMjsxMTA2IDExNkEgMTFCNTsKK0JBRDM7QkFEMzsxMTA2IDExNkEgMTFCNjtCQUQzOzExMDYgMTE2QSAxMUI2OworQkFENDtCQUQ0OzExMDYgMTE2QSAxMUI3O0JBRDQ7MTEwNiAxMTZBIDExQjc7CitCQUQ1O0JBRDU7MTEwNiAxMTZBIDExQjg7QkFENTsxMTA2IDExNkEgMTFCODsKK0JBRDY7QkFENjsxMTA2IDExNkEgMTFCOTtCQUQ2OzExMDYgMTE2QSAxMUI5OworQkFENztCQUQ3OzExMDYgMTE2QSAxMUJBO0JBRDc7MTEwNiAxMTZBIDExQkE7CitCQUQ4O0JBRDg7MTEwNiAxMTZBIDExQkI7QkFEODsxMTA2IDExNkEgMTFCQjsKK0JBRDk7QkFEOTsxMTA2IDExNkEgMTFCQztCQUQ5OzExMDYgMTE2QSAxMUJDOworQkFEQTtCQURBOzExMDYgMTE2QSAxMUJEO0JBREE7MTEwNiAxMTZBIDExQkQ7CitCQURCO0JBREI7MTEwNiAxMTZBIDExQkU7QkFEQjsxMTA2IDExNkEgMTFCRTsKK0JBREM7QkFEQzsxMTA2IDExNkEgMTFCRjtCQURDOzExMDYgMTE2QSAxMUJGOworQkFERDtCQUREOzExMDYgMTE2QSAxMUMwO0JBREQ7MTEwNiAxMTZBIDExQzA7CitCQURFO0JBREU7MTEwNiAxMTZBIDExQzE7QkFERTsxMTA2IDExNkEgMTFDMTsKK0JBREY7QkFERjsxMTA2IDExNkEgMTFDMjtCQURGOzExMDYgMTE2QSAxMUMyOworQkFFMDtCQUUwOzExMDYgMTE2QjtCQUUwOzExMDYgMTE2QjsKK0JBRTE7QkFFMTsxMTA2IDExNkIgMTFBODtCQUUxOzExMDYgMTE2QiAxMUE4OworQkFFMjtCQUUyOzExMDYgMTE2QiAxMUE5O0JBRTI7MTEwNiAxMTZCIDExQTk7CitCQUUzO0JBRTM7MTEwNiAxMTZCIDExQUE7QkFFMzsxMTA2IDExNkIgMTFBQTsKK0JBRTQ7QkFFNDsxMTA2IDExNkIgMTFBQjtCQUU0OzExMDYgMTE2QiAxMUFCOworQkFFNTtCQUU1OzExMDYgMTE2QiAxMUFDO0JBRTU7MTEwNiAxMTZCIDExQUM7CitCQUU2O0JBRTY7MTEwNiAxMTZCIDExQUQ7QkFFNjsxMTA2IDExNkIgMTFBRDsKK0JBRTc7QkFFNzsxMTA2IDExNkIgMTFBRTtCQUU3OzExMDYgMTE2QiAxMUFFOworQkFFODtCQUU4OzExMDYgMTE2QiAxMUFGO0JBRTg7MTEwNiAxMTZCIDExQUY7CitCQUU5O0JBRTk7MTEwNiAxMTZCIDExQjA7QkFFOTsxMTA2IDExNkIgMTFCMDsKK0JBRUE7QkFFQTsxMTA2IDExNkIgMTFCMTtCQUVBOzExMDYgMTE2QiAxMUIxOworQkFFQjtCQUVCOzExMDYgMTE2QiAxMUIyO0JBRUI7MTEwNiAxMTZCIDExQjI7CitCQUVDO0JBRUM7MTEwNiAxMTZCIDExQjM7QkFFQzsxMTA2IDExNkIgMTFCMzsKK0JBRUQ7QkFFRDsxMTA2IDExNkIgMTFCNDtCQUVEOzExMDYgMTE2QiAxMUI0OworQkFFRTtCQUVFOzExMDYgMTE2QiAxMUI1O0JBRUU7MTEwNiAxMTZCIDExQjU7CitCQUVGO0JBRUY7MTEwNiAxMTZCIDExQjY7QkFFRjsxMTA2IDExNkIgMTFCNjsKK0JBRjA7QkFGMDsxMTA2IDExNkIgMTFCNztCQUYwOzExMDYgMTE2QiAxMUI3OworQkFGMTtCQUYxOzExMDYgMTE2QiAxMUI4O0JBRjE7MTEwNiAxMTZCIDExQjg7CitCQUYyO0JBRjI7MTEwNiAxMTZCIDExQjk7QkFGMjsxMTA2IDExNkIgMTFCOTsKK0JBRjM7QkFGMzsxMTA2IDExNkIgMTFCQTtCQUYzOzExMDYgMTE2QiAxMUJBOworQkFGNDtCQUY0OzExMDYgMTE2QiAxMUJCO0JBRjQ7MTEwNiAxMTZCIDExQkI7CitCQUY1O0JBRjU7MTEwNiAxMTZCIDExQkM7QkFGNTsxMTA2IDExNkIgMTFCQzsKK0JBRjY7QkFGNjsxMTA2IDExNkIgMTFCRDtCQUY2OzExMDYgMTE2QiAxMUJEOworQkFGNztCQUY3OzExMDYgMTE2QiAxMUJFO0JBRjc7MTEwNiAxMTZCIDExQkU7CitCQUY4O0JBRjg7MTEwNiAxMTZCIDExQkY7QkFGODsxMTA2IDExNkIgMTFCRjsKK0JBRjk7QkFGOTsxMTA2IDExNkIgMTFDMDtCQUY5OzExMDYgMTE2QiAxMUMwOworQkFGQTtCQUZBOzExMDYgMTE2QiAxMUMxO0JBRkE7MTEwNiAxMTZCIDExQzE7CitCQUZCO0JBRkI7MTEwNiAxMTZCIDExQzI7QkFGQjsxMTA2IDExNkIgMTFDMjsKK0JBRkM7QkFGQzsxMTA2IDExNkM7QkFGQzsxMTA2IDExNkM7CitCQUZEO0JBRkQ7MTEwNiAxMTZDIDExQTg7QkFGRDsxMTA2IDExNkMgMTFBODsKK0JBRkU7QkFGRTsxMTA2IDExNkMgMTFBOTtCQUZFOzExMDYgMTE2QyAxMUE5OworQkFGRjtCQUZGOzExMDYgMTE2QyAxMUFBO0JBRkY7MTEwNiAxMTZDIDExQUE7CitCQjAwO0JCMDA7MTEwNiAxMTZDIDExQUI7QkIwMDsxMTA2IDExNkMgMTFBQjsKK0JCMDE7QkIwMTsxMTA2IDExNkMgMTFBQztCQjAxOzExMDYgMTE2QyAxMUFDOworQkIwMjtCQjAyOzExMDYgMTE2QyAxMUFEO0JCMDI7MTEwNiAxMTZDIDExQUQ7CitCQjAzO0JCMDM7MTEwNiAxMTZDIDExQUU7QkIwMzsxMTA2IDExNkMgMTFBRTsKK0JCMDQ7QkIwNDsxMTA2IDExNkMgMTFBRjtCQjA0OzExMDYgMTE2QyAxMUFGOworQkIwNTtCQjA1OzExMDYgMTE2QyAxMUIwO0JCMDU7MTEwNiAxMTZDIDExQjA7CitCQjA2O0JCMDY7MTEwNiAxMTZDIDExQjE7QkIwNjsxMTA2IDExNkMgMTFCMTsKK0JCMDc7QkIwNzsxMTA2IDExNkMgMTFCMjtCQjA3OzExMDYgMTE2QyAxMUIyOworQkIwODtCQjA4OzExMDYgMTE2QyAxMUIzO0JCMDg7MTEwNiAxMTZDIDExQjM7CitCQjA5O0JCMDk7MTEwNiAxMTZDIDExQjQ7QkIwOTsxMTA2IDExNkMgMTFCNDsKK0JCMEE7QkIwQTsxMTA2IDExNkMgMTFCNTtCQjBBOzExMDYgMTE2QyAxMUI1OworQkIwQjtCQjBCOzExMDYgMTE2QyAxMUI2O0JCMEI7MTEwNiAxMTZDIDExQjY7CitCQjBDO0JCMEM7MTEwNiAxMTZDIDExQjc7QkIwQzsxMTA2IDExNkMgMTFCNzsKK0JCMEQ7QkIwRDsxMTA2IDExNkMgMTFCODtCQjBEOzExMDYgMTE2QyAxMUI4OworQkIwRTtCQjBFOzExMDYgMTE2QyAxMUI5O0JCMEU7MTEwNiAxMTZDIDExQjk7CitCQjBGO0JCMEY7MTEwNiAxMTZDIDExQkE7QkIwRjsxMTA2IDExNkMgMTFCQTsKK0JCMTA7QkIxMDsxMTA2IDExNkMgMTFCQjtCQjEwOzExMDYgMTE2QyAxMUJCOworQkIxMTtCQjExOzExMDYgMTE2QyAxMUJDO0JCMTE7MTEwNiAxMTZDIDExQkM7CitCQjEyO0JCMTI7MTEwNiAxMTZDIDExQkQ7QkIxMjsxMTA2IDExNkMgMTFCRDsKK0JCMTM7QkIxMzsxMTA2IDExNkMgMTFCRTtCQjEzOzExMDYgMTE2QyAxMUJFOworQkIxNDtCQjE0OzExMDYgMTE2QyAxMUJGO0JCMTQ7MTEwNiAxMTZDIDExQkY7CitCQjE1O0JCMTU7MTEwNiAxMTZDIDExQzA7QkIxNTsxMTA2IDExNkMgMTFDMDsKK0JCMTY7QkIxNjsxMTA2IDExNkMgMTFDMTtCQjE2OzExMDYgMTE2QyAxMUMxOworQkIxNztCQjE3OzExMDYgMTE2QyAxMUMyO0JCMTc7MTEwNiAxMTZDIDExQzI7CitCQjE4O0JCMTg7MTEwNiAxMTZEO0JCMTg7MTEwNiAxMTZEOworQkIxOTtCQjE5OzExMDYgMTE2RCAxMUE4O0JCMTk7MTEwNiAxMTZEIDExQTg7CitCQjFBO0JCMUE7MTEwNiAxMTZEIDExQTk7QkIxQTsxMTA2IDExNkQgMTFBOTsKK0JCMUI7QkIxQjsxMTA2IDExNkQgMTFBQTtCQjFCOzExMDYgMTE2RCAxMUFBOworQkIxQztCQjFDOzExMDYgMTE2RCAxMUFCO0JCMUM7MTEwNiAxMTZEIDExQUI7CitCQjFEO0JCMUQ7MTEwNiAxMTZEIDExQUM7QkIxRDsxMTA2IDExNkQgMTFBQzsKK0JCMUU7QkIxRTsxMTA2IDExNkQgMTFBRDtCQjFFOzExMDYgMTE2RCAxMUFEOworQkIxRjtCQjFGOzExMDYgMTE2RCAxMUFFO0JCMUY7MTEwNiAxMTZEIDExQUU7CitCQjIwO0JCMjA7MTEwNiAxMTZEIDExQUY7QkIyMDsxMTA2IDExNkQgMTFBRjsKK0JCMjE7QkIyMTsxMTA2IDExNkQgMTFCMDtCQjIxOzExMDYgMTE2RCAxMUIwOworQkIyMjtCQjIyOzExMDYgMTE2RCAxMUIxO0JCMjI7MTEwNiAxMTZEIDExQjE7CitCQjIzO0JCMjM7MTEwNiAxMTZEIDExQjI7QkIyMzsxMTA2IDExNkQgMTFCMjsKK0JCMjQ7QkIyNDsxMTA2IDExNkQgMTFCMztCQjI0OzExMDYgMTE2RCAxMUIzOworQkIyNTtCQjI1OzExMDYgMTE2RCAxMUI0O0JCMjU7MTEwNiAxMTZEIDExQjQ7CitCQjI2O0JCMjY7MTEwNiAxMTZEIDExQjU7QkIyNjsxMTA2IDExNkQgMTFCNTsKK0JCMjc7QkIyNzsxMTA2IDExNkQgMTFCNjtCQjI3OzExMDYgMTE2RCAxMUI2OworQkIyODtCQjI4OzExMDYgMTE2RCAxMUI3O0JCMjg7MTEwNiAxMTZEIDExQjc7CitCQjI5O0JCMjk7MTEwNiAxMTZEIDExQjg7QkIyOTsxMTA2IDExNkQgMTFCODsKK0JCMkE7QkIyQTsxMTA2IDExNkQgMTFCOTtCQjJBOzExMDYgMTE2RCAxMUI5OworQkIyQjtCQjJCOzExMDYgMTE2RCAxMUJBO0JCMkI7MTEwNiAxMTZEIDExQkE7CitCQjJDO0JCMkM7MTEwNiAxMTZEIDExQkI7QkIyQzsxMTA2IDExNkQgMTFCQjsKK0JCMkQ7QkIyRDsxMTA2IDExNkQgMTFCQztCQjJEOzExMDYgMTE2RCAxMUJDOworQkIyRTtCQjJFOzExMDYgMTE2RCAxMUJEO0JCMkU7MTEwNiAxMTZEIDExQkQ7CitCQjJGO0JCMkY7MTEwNiAxMTZEIDExQkU7QkIyRjsxMTA2IDExNkQgMTFCRTsKK0JCMzA7QkIzMDsxMTA2IDExNkQgMTFCRjtCQjMwOzExMDYgMTE2RCAxMUJGOworQkIzMTtCQjMxOzExMDYgMTE2RCAxMUMwO0JCMzE7MTEwNiAxMTZEIDExQzA7CitCQjMyO0JCMzI7MTEwNiAxMTZEIDExQzE7QkIzMjsxMTA2IDExNkQgMTFDMTsKK0JCMzM7QkIzMzsxMTA2IDExNkQgMTFDMjtCQjMzOzExMDYgMTE2RCAxMUMyOworQkIzNDtCQjM0OzExMDYgMTE2RTtCQjM0OzExMDYgMTE2RTsKK0JCMzU7QkIzNTsxMTA2IDExNkUgMTFBODtCQjM1OzExMDYgMTE2RSAxMUE4OworQkIzNjtCQjM2OzExMDYgMTE2RSAxMUE5O0JCMzY7MTEwNiAxMTZFIDExQTk7CitCQjM3O0JCMzc7MTEwNiAxMTZFIDExQUE7QkIzNzsxMTA2IDExNkUgMTFBQTsKK0JCMzg7QkIzODsxMTA2IDExNkUgMTFBQjtCQjM4OzExMDYgMTE2RSAxMUFCOworQkIzOTtCQjM5OzExMDYgMTE2RSAxMUFDO0JCMzk7MTEwNiAxMTZFIDExQUM7CitCQjNBO0JCM0E7MTEwNiAxMTZFIDExQUQ7QkIzQTsxMTA2IDExNkUgMTFBRDsKK0JCM0I7QkIzQjsxMTA2IDExNkUgMTFBRTtCQjNCOzExMDYgMTE2RSAxMUFFOworQkIzQztCQjNDOzExMDYgMTE2RSAxMUFGO0JCM0M7MTEwNiAxMTZFIDExQUY7CitCQjNEO0JCM0Q7MTEwNiAxMTZFIDExQjA7QkIzRDsxMTA2IDExNkUgMTFCMDsKK0JCM0U7QkIzRTsxMTA2IDExNkUgMTFCMTtCQjNFOzExMDYgMTE2RSAxMUIxOworQkIzRjtCQjNGOzExMDYgMTE2RSAxMUIyO0JCM0Y7MTEwNiAxMTZFIDExQjI7CitCQjQwO0JCNDA7MTEwNiAxMTZFIDExQjM7QkI0MDsxMTA2IDExNkUgMTFCMzsKK0JCNDE7QkI0MTsxMTA2IDExNkUgMTFCNDtCQjQxOzExMDYgMTE2RSAxMUI0OworQkI0MjtCQjQyOzExMDYgMTE2RSAxMUI1O0JCNDI7MTEwNiAxMTZFIDExQjU7CitCQjQzO0JCNDM7MTEwNiAxMTZFIDExQjY7QkI0MzsxMTA2IDExNkUgMTFCNjsKK0JCNDQ7QkI0NDsxMTA2IDExNkUgMTFCNztCQjQ0OzExMDYgMTE2RSAxMUI3OworQkI0NTtCQjQ1OzExMDYgMTE2RSAxMUI4O0JCNDU7MTEwNiAxMTZFIDExQjg7CitCQjQ2O0JCNDY7MTEwNiAxMTZFIDExQjk7QkI0NjsxMTA2IDExNkUgMTFCOTsKK0JCNDc7QkI0NzsxMTA2IDExNkUgMTFCQTtCQjQ3OzExMDYgMTE2RSAxMUJBOworQkI0ODtCQjQ4OzExMDYgMTE2RSAxMUJCO0JCNDg7MTEwNiAxMTZFIDExQkI7CitCQjQ5O0JCNDk7MTEwNiAxMTZFIDExQkM7QkI0OTsxMTA2IDExNkUgMTFCQzsKK0JCNEE7QkI0QTsxMTA2IDExNkUgMTFCRDtCQjRBOzExMDYgMTE2RSAxMUJEOworQkI0QjtCQjRCOzExMDYgMTE2RSAxMUJFO0JCNEI7MTEwNiAxMTZFIDExQkU7CitCQjRDO0JCNEM7MTEwNiAxMTZFIDExQkY7QkI0QzsxMTA2IDExNkUgMTFCRjsKK0JCNEQ7QkI0RDsxMTA2IDExNkUgMTFDMDtCQjREOzExMDYgMTE2RSAxMUMwOworQkI0RTtCQjRFOzExMDYgMTE2RSAxMUMxO0JCNEU7MTEwNiAxMTZFIDExQzE7CitCQjRGO0JCNEY7MTEwNiAxMTZFIDExQzI7QkI0RjsxMTA2IDExNkUgMTFDMjsKK0JCNTA7QkI1MDsxMTA2IDExNkY7QkI1MDsxMTA2IDExNkY7CitCQjUxO0JCNTE7MTEwNiAxMTZGIDExQTg7QkI1MTsxMTA2IDExNkYgMTFBODsKK0JCNTI7QkI1MjsxMTA2IDExNkYgMTFBOTtCQjUyOzExMDYgMTE2RiAxMUE5OworQkI1MztCQjUzOzExMDYgMTE2RiAxMUFBO0JCNTM7MTEwNiAxMTZGIDExQUE7CitCQjU0O0JCNTQ7MTEwNiAxMTZGIDExQUI7QkI1NDsxMTA2IDExNkYgMTFBQjsKK0JCNTU7QkI1NTsxMTA2IDExNkYgMTFBQztCQjU1OzExMDYgMTE2RiAxMUFDOworQkI1NjtCQjU2OzExMDYgMTE2RiAxMUFEO0JCNTY7MTEwNiAxMTZGIDExQUQ7CitCQjU3O0JCNTc7MTEwNiAxMTZGIDExQUU7QkI1NzsxMTA2IDExNkYgMTFBRTsKK0JCNTg7QkI1ODsxMTA2IDExNkYgMTFBRjtCQjU4OzExMDYgMTE2RiAxMUFGOworQkI1OTtCQjU5OzExMDYgMTE2RiAxMUIwO0JCNTk7MTEwNiAxMTZGIDExQjA7CitCQjVBO0JCNUE7MTEwNiAxMTZGIDExQjE7QkI1QTsxMTA2IDExNkYgMTFCMTsKK0JCNUI7QkI1QjsxMTA2IDExNkYgMTFCMjtCQjVCOzExMDYgMTE2RiAxMUIyOworQkI1QztCQjVDOzExMDYgMTE2RiAxMUIzO0JCNUM7MTEwNiAxMTZGIDExQjM7CitCQjVEO0JCNUQ7MTEwNiAxMTZGIDExQjQ7QkI1RDsxMTA2IDExNkYgMTFCNDsKK0JCNUU7QkI1RTsxMTA2IDExNkYgMTFCNTtCQjVFOzExMDYgMTE2RiAxMUI1OworQkI1RjtCQjVGOzExMDYgMTE2RiAxMUI2O0JCNUY7MTEwNiAxMTZGIDExQjY7CitCQjYwO0JCNjA7MTEwNiAxMTZGIDExQjc7QkI2MDsxMTA2IDExNkYgMTFCNzsKK0JCNjE7QkI2MTsxMTA2IDExNkYgMTFCODtCQjYxOzExMDYgMTE2RiAxMUI4OworQkI2MjtCQjYyOzExMDYgMTE2RiAxMUI5O0JCNjI7MTEwNiAxMTZGIDExQjk7CitCQjYzO0JCNjM7MTEwNiAxMTZGIDExQkE7QkI2MzsxMTA2IDExNkYgMTFCQTsKK0JCNjQ7QkI2NDsxMTA2IDExNkYgMTFCQjtCQjY0OzExMDYgMTE2RiAxMUJCOworQkI2NTtCQjY1OzExMDYgMTE2RiAxMUJDO0JCNjU7MTEwNiAxMTZGIDExQkM7CitCQjY2O0JCNjY7MTEwNiAxMTZGIDExQkQ7QkI2NjsxMTA2IDExNkYgMTFCRDsKK0JCNjc7QkI2NzsxMTA2IDExNkYgMTFCRTtCQjY3OzExMDYgMTE2RiAxMUJFOworQkI2ODtCQjY4OzExMDYgMTE2RiAxMUJGO0JCNjg7MTEwNiAxMTZGIDExQkY7CitCQjY5O0JCNjk7MTEwNiAxMTZGIDExQzA7QkI2OTsxMTA2IDExNkYgMTFDMDsKK0JCNkE7QkI2QTsxMTA2IDExNkYgMTFDMTtCQjZBOzExMDYgMTE2RiAxMUMxOworQkI2QjtCQjZCOzExMDYgMTE2RiAxMUMyO0JCNkI7MTEwNiAxMTZGIDExQzI7CitCQjZDO0JCNkM7MTEwNiAxMTcwO0JCNkM7MTEwNiAxMTcwOworQkI2RDtCQjZEOzExMDYgMTE3MCAxMUE4O0JCNkQ7MTEwNiAxMTcwIDExQTg7CitCQjZFO0JCNkU7MTEwNiAxMTcwIDExQTk7QkI2RTsxMTA2IDExNzAgMTFBOTsKK0JCNkY7QkI2RjsxMTA2IDExNzAgMTFBQTtCQjZGOzExMDYgMTE3MCAxMUFBOworQkI3MDtCQjcwOzExMDYgMTE3MCAxMUFCO0JCNzA7MTEwNiAxMTcwIDExQUI7CitCQjcxO0JCNzE7MTEwNiAxMTcwIDExQUM7QkI3MTsxMTA2IDExNzAgMTFBQzsKK0JCNzI7QkI3MjsxMTA2IDExNzAgMTFBRDtCQjcyOzExMDYgMTE3MCAxMUFEOworQkI3MztCQjczOzExMDYgMTE3MCAxMUFFO0JCNzM7MTEwNiAxMTcwIDExQUU7CitCQjc0O0JCNzQ7MTEwNiAxMTcwIDExQUY7QkI3NDsxMTA2IDExNzAgMTFBRjsKK0JCNzU7QkI3NTsxMTA2IDExNzAgMTFCMDtCQjc1OzExMDYgMTE3MCAxMUIwOworQkI3NjtCQjc2OzExMDYgMTE3MCAxMUIxO0JCNzY7MTEwNiAxMTcwIDExQjE7CitCQjc3O0JCNzc7MTEwNiAxMTcwIDExQjI7QkI3NzsxMTA2IDExNzAgMTFCMjsKK0JCNzg7QkI3ODsxMTA2IDExNzAgMTFCMztCQjc4OzExMDYgMTE3MCAxMUIzOworQkI3OTtCQjc5OzExMDYgMTE3MCAxMUI0O0JCNzk7MTEwNiAxMTcwIDExQjQ7CitCQjdBO0JCN0E7MTEwNiAxMTcwIDExQjU7QkI3QTsxMTA2IDExNzAgMTFCNTsKK0JCN0I7QkI3QjsxMTA2IDExNzAgMTFCNjtCQjdCOzExMDYgMTE3MCAxMUI2OworQkI3QztCQjdDOzExMDYgMTE3MCAxMUI3O0JCN0M7MTEwNiAxMTcwIDExQjc7CitCQjdEO0JCN0Q7MTEwNiAxMTcwIDExQjg7QkI3RDsxMTA2IDExNzAgMTFCODsKK0JCN0U7QkI3RTsxMTA2IDExNzAgMTFCOTtCQjdFOzExMDYgMTE3MCAxMUI5OworQkI3RjtCQjdGOzExMDYgMTE3MCAxMUJBO0JCN0Y7MTEwNiAxMTcwIDExQkE7CitCQjgwO0JCODA7MTEwNiAxMTcwIDExQkI7QkI4MDsxMTA2IDExNzAgMTFCQjsKK0JCODE7QkI4MTsxMTA2IDExNzAgMTFCQztCQjgxOzExMDYgMTE3MCAxMUJDOworQkI4MjtCQjgyOzExMDYgMTE3MCAxMUJEO0JCODI7MTEwNiAxMTcwIDExQkQ7CitCQjgzO0JCODM7MTEwNiAxMTcwIDExQkU7QkI4MzsxMTA2IDExNzAgMTFCRTsKK0JCODQ7QkI4NDsxMTA2IDExNzAgMTFCRjtCQjg0OzExMDYgMTE3MCAxMUJGOworQkI4NTtCQjg1OzExMDYgMTE3MCAxMUMwO0JCODU7MTEwNiAxMTcwIDExQzA7CitCQjg2O0JCODY7MTEwNiAxMTcwIDExQzE7QkI4NjsxMTA2IDExNzAgMTFDMTsKK0JCODc7QkI4NzsxMTA2IDExNzAgMTFDMjtCQjg3OzExMDYgMTE3MCAxMUMyOworQkI4ODtCQjg4OzExMDYgMTE3MTtCQjg4OzExMDYgMTE3MTsKK0JCODk7QkI4OTsxMTA2IDExNzEgMTFBODtCQjg5OzExMDYgMTE3MSAxMUE4OworQkI4QTtCQjhBOzExMDYgMTE3MSAxMUE5O0JCOEE7MTEwNiAxMTcxIDExQTk7CitCQjhCO0JCOEI7MTEwNiAxMTcxIDExQUE7QkI4QjsxMTA2IDExNzEgMTFBQTsKK0JCOEM7QkI4QzsxMTA2IDExNzEgMTFBQjtCQjhDOzExMDYgMTE3MSAxMUFCOworQkI4RDtCQjhEOzExMDYgMTE3MSAxMUFDO0JCOEQ7MTEwNiAxMTcxIDExQUM7CitCQjhFO0JCOEU7MTEwNiAxMTcxIDExQUQ7QkI4RTsxMTA2IDExNzEgMTFBRDsKK0JCOEY7QkI4RjsxMTA2IDExNzEgMTFBRTtCQjhGOzExMDYgMTE3MSAxMUFFOworQkI5MDtCQjkwOzExMDYgMTE3MSAxMUFGO0JCOTA7MTEwNiAxMTcxIDExQUY7CitCQjkxO0JCOTE7MTEwNiAxMTcxIDExQjA7QkI5MTsxMTA2IDExNzEgMTFCMDsKK0JCOTI7QkI5MjsxMTA2IDExNzEgMTFCMTtCQjkyOzExMDYgMTE3MSAxMUIxOworQkI5MztCQjkzOzExMDYgMTE3MSAxMUIyO0JCOTM7MTEwNiAxMTcxIDExQjI7CitCQjk0O0JCOTQ7MTEwNiAxMTcxIDExQjM7QkI5NDsxMTA2IDExNzEgMTFCMzsKK0JCOTU7QkI5NTsxMTA2IDExNzEgMTFCNDtCQjk1OzExMDYgMTE3MSAxMUI0OworQkI5NjtCQjk2OzExMDYgMTE3MSAxMUI1O0JCOTY7MTEwNiAxMTcxIDExQjU7CitCQjk3O0JCOTc7MTEwNiAxMTcxIDExQjY7QkI5NzsxMTA2IDExNzEgMTFCNjsKK0JCOTg7QkI5ODsxMTA2IDExNzEgMTFCNztCQjk4OzExMDYgMTE3MSAxMUI3OworQkI5OTtCQjk5OzExMDYgMTE3MSAxMUI4O0JCOTk7MTEwNiAxMTcxIDExQjg7CitCQjlBO0JCOUE7MTEwNiAxMTcxIDExQjk7QkI5QTsxMTA2IDExNzEgMTFCOTsKK0JCOUI7QkI5QjsxMTA2IDExNzEgMTFCQTtCQjlCOzExMDYgMTE3MSAxMUJBOworQkI5QztCQjlDOzExMDYgMTE3MSAxMUJCO0JCOUM7MTEwNiAxMTcxIDExQkI7CitCQjlEO0JCOUQ7MTEwNiAxMTcxIDExQkM7QkI5RDsxMTA2IDExNzEgMTFCQzsKK0JCOUU7QkI5RTsxMTA2IDExNzEgMTFCRDtCQjlFOzExMDYgMTE3MSAxMUJEOworQkI5RjtCQjlGOzExMDYgMTE3MSAxMUJFO0JCOUY7MTEwNiAxMTcxIDExQkU7CitCQkEwO0JCQTA7MTEwNiAxMTcxIDExQkY7QkJBMDsxMTA2IDExNzEgMTFCRjsKK0JCQTE7QkJBMTsxMTA2IDExNzEgMTFDMDtCQkExOzExMDYgMTE3MSAxMUMwOworQkJBMjtCQkEyOzExMDYgMTE3MSAxMUMxO0JCQTI7MTEwNiAxMTcxIDExQzE7CitCQkEzO0JCQTM7MTEwNiAxMTcxIDExQzI7QkJBMzsxMTA2IDExNzEgMTFDMjsKK0JCQTQ7QkJBNDsxMTA2IDExNzI7QkJBNDsxMTA2IDExNzI7CitCQkE1O0JCQTU7MTEwNiAxMTcyIDExQTg7QkJBNTsxMTA2IDExNzIgMTFBODsKK0JCQTY7QkJBNjsxMTA2IDExNzIgMTFBOTtCQkE2OzExMDYgMTE3MiAxMUE5OworQkJBNztCQkE3OzExMDYgMTE3MiAxMUFBO0JCQTc7MTEwNiAxMTcyIDExQUE7CitCQkE4O0JCQTg7MTEwNiAxMTcyIDExQUI7QkJBODsxMTA2IDExNzIgMTFBQjsKK0JCQTk7QkJBOTsxMTA2IDExNzIgMTFBQztCQkE5OzExMDYgMTE3MiAxMUFDOworQkJBQTtCQkFBOzExMDYgMTE3MiAxMUFEO0JCQUE7MTEwNiAxMTcyIDExQUQ7CitCQkFCO0JCQUI7MTEwNiAxMTcyIDExQUU7QkJBQjsxMTA2IDExNzIgMTFBRTsKK0JCQUM7QkJBQzsxMTA2IDExNzIgMTFBRjtCQkFDOzExMDYgMTE3MiAxMUFGOworQkJBRDtCQkFEOzExMDYgMTE3MiAxMUIwO0JCQUQ7MTEwNiAxMTcyIDExQjA7CitCQkFFO0JCQUU7MTEwNiAxMTcyIDExQjE7QkJBRTsxMTA2IDExNzIgMTFCMTsKK0JCQUY7QkJBRjsxMTA2IDExNzIgMTFCMjtCQkFGOzExMDYgMTE3MiAxMUIyOworQkJCMDtCQkIwOzExMDYgMTE3MiAxMUIzO0JCQjA7MTEwNiAxMTcyIDExQjM7CitCQkIxO0JCQjE7MTEwNiAxMTcyIDExQjQ7QkJCMTsxMTA2IDExNzIgMTFCNDsKK0JCQjI7QkJCMjsxMTA2IDExNzIgMTFCNTtCQkIyOzExMDYgMTE3MiAxMUI1OworQkJCMztCQkIzOzExMDYgMTE3MiAxMUI2O0JCQjM7MTEwNiAxMTcyIDExQjY7CitCQkI0O0JCQjQ7MTEwNiAxMTcyIDExQjc7QkJCNDsxMTA2IDExNzIgMTFCNzsKK0JCQjU7QkJCNTsxMTA2IDExNzIgMTFCODtCQkI1OzExMDYgMTE3MiAxMUI4OworQkJCNjtCQkI2OzExMDYgMTE3MiAxMUI5O0JCQjY7MTEwNiAxMTcyIDExQjk7CitCQkI3O0JCQjc7MTEwNiAxMTcyIDExQkE7QkJCNzsxMTA2IDExNzIgMTFCQTsKK0JCQjg7QkJCODsxMTA2IDExNzIgMTFCQjtCQkI4OzExMDYgMTE3MiAxMUJCOworQkJCOTtCQkI5OzExMDYgMTE3MiAxMUJDO0JCQjk7MTEwNiAxMTcyIDExQkM7CitCQkJBO0JCQkE7MTEwNiAxMTcyIDExQkQ7QkJCQTsxMTA2IDExNzIgMTFCRDsKK0JCQkI7QkJCQjsxMTA2IDExNzIgMTFCRTtCQkJCOzExMDYgMTE3MiAxMUJFOworQkJCQztCQkJDOzExMDYgMTE3MiAxMUJGO0JCQkM7MTEwNiAxMTcyIDExQkY7CitCQkJEO0JCQkQ7MTEwNiAxMTcyIDExQzA7QkJCRDsxMTA2IDExNzIgMTFDMDsKK0JCQkU7QkJCRTsxMTA2IDExNzIgMTFDMTtCQkJFOzExMDYgMTE3MiAxMUMxOworQkJCRjtCQkJGOzExMDYgMTE3MiAxMUMyO0JCQkY7MTEwNiAxMTcyIDExQzI7CitCQkMwO0JCQzA7MTEwNiAxMTczO0JCQzA7MTEwNiAxMTczOworQkJDMTtCQkMxOzExMDYgMTE3MyAxMUE4O0JCQzE7MTEwNiAxMTczIDExQTg7CitCQkMyO0JCQzI7MTEwNiAxMTczIDExQTk7QkJDMjsxMTA2IDExNzMgMTFBOTsKK0JCQzM7QkJDMzsxMTA2IDExNzMgMTFBQTtCQkMzOzExMDYgMTE3MyAxMUFBOworQkJDNDtCQkM0OzExMDYgMTE3MyAxMUFCO0JCQzQ7MTEwNiAxMTczIDExQUI7CitCQkM1O0JCQzU7MTEwNiAxMTczIDExQUM7QkJDNTsxMTA2IDExNzMgMTFBQzsKK0JCQzY7QkJDNjsxMTA2IDExNzMgMTFBRDtCQkM2OzExMDYgMTE3MyAxMUFEOworQkJDNztCQkM3OzExMDYgMTE3MyAxMUFFO0JCQzc7MTEwNiAxMTczIDExQUU7CitCQkM4O0JCQzg7MTEwNiAxMTczIDExQUY7QkJDODsxMTA2IDExNzMgMTFBRjsKK0JCQzk7QkJDOTsxMTA2IDExNzMgMTFCMDtCQkM5OzExMDYgMTE3MyAxMUIwOworQkJDQTtCQkNBOzExMDYgMTE3MyAxMUIxO0JCQ0E7MTEwNiAxMTczIDExQjE7CitCQkNCO0JCQ0I7MTEwNiAxMTczIDExQjI7QkJDQjsxMTA2IDExNzMgMTFCMjsKK0JCQ0M7QkJDQzsxMTA2IDExNzMgMTFCMztCQkNDOzExMDYgMTE3MyAxMUIzOworQkJDRDtCQkNEOzExMDYgMTE3MyAxMUI0O0JCQ0Q7MTEwNiAxMTczIDExQjQ7CitCQkNFO0JCQ0U7MTEwNiAxMTczIDExQjU7QkJDRTsxMTA2IDExNzMgMTFCNTsKK0JCQ0Y7QkJDRjsxMTA2IDExNzMgMTFCNjtCQkNGOzExMDYgMTE3MyAxMUI2OworQkJEMDtCQkQwOzExMDYgMTE3MyAxMUI3O0JCRDA7MTEwNiAxMTczIDExQjc7CitCQkQxO0JCRDE7MTEwNiAxMTczIDExQjg7QkJEMTsxMTA2IDExNzMgMTFCODsKK0JCRDI7QkJEMjsxMTA2IDExNzMgMTFCOTtCQkQyOzExMDYgMTE3MyAxMUI5OworQkJEMztCQkQzOzExMDYgMTE3MyAxMUJBO0JCRDM7MTEwNiAxMTczIDExQkE7CitCQkQ0O0JCRDQ7MTEwNiAxMTczIDExQkI7QkJENDsxMTA2IDExNzMgMTFCQjsKK0JCRDU7QkJENTsxMTA2IDExNzMgMTFCQztCQkQ1OzExMDYgMTE3MyAxMUJDOworQkJENjtCQkQ2OzExMDYgMTE3MyAxMUJEO0JCRDY7MTEwNiAxMTczIDExQkQ7CitCQkQ3O0JCRDc7MTEwNiAxMTczIDExQkU7QkJENzsxMTA2IDExNzMgMTFCRTsKK0JCRDg7QkJEODsxMTA2IDExNzMgMTFCRjtCQkQ4OzExMDYgMTE3MyAxMUJGOworQkJEOTtCQkQ5OzExMDYgMTE3MyAxMUMwO0JCRDk7MTEwNiAxMTczIDExQzA7CitCQkRBO0JCREE7MTEwNiAxMTczIDExQzE7QkJEQTsxMTA2IDExNzMgMTFDMTsKK0JCREI7QkJEQjsxMTA2IDExNzMgMTFDMjtCQkRCOzExMDYgMTE3MyAxMUMyOworQkJEQztCQkRDOzExMDYgMTE3NDtCQkRDOzExMDYgMTE3NDsKK0JCREQ7QkJERDsxMTA2IDExNzQgMTFBODtCQkREOzExMDYgMTE3NCAxMUE4OworQkJERTtCQkRFOzExMDYgMTE3NCAxMUE5O0JCREU7MTEwNiAxMTc0IDExQTk7CitCQkRGO0JCREY7MTEwNiAxMTc0IDExQUE7QkJERjsxMTA2IDExNzQgMTFBQTsKK0JCRTA7QkJFMDsxMTA2IDExNzQgMTFBQjtCQkUwOzExMDYgMTE3NCAxMUFCOworQkJFMTtCQkUxOzExMDYgMTE3NCAxMUFDO0JCRTE7MTEwNiAxMTc0IDExQUM7CitCQkUyO0JCRTI7MTEwNiAxMTc0IDExQUQ7QkJFMjsxMTA2IDExNzQgMTFBRDsKK0JCRTM7QkJFMzsxMTA2IDExNzQgMTFBRTtCQkUzOzExMDYgMTE3NCAxMUFFOworQkJFNDtCQkU0OzExMDYgMTE3NCAxMUFGO0JCRTQ7MTEwNiAxMTc0IDExQUY7CitCQkU1O0JCRTU7MTEwNiAxMTc0IDExQjA7QkJFNTsxMTA2IDExNzQgMTFCMDsKK0JCRTY7QkJFNjsxMTA2IDExNzQgMTFCMTtCQkU2OzExMDYgMTE3NCAxMUIxOworQkJFNztCQkU3OzExMDYgMTE3NCAxMUIyO0JCRTc7MTEwNiAxMTc0IDExQjI7CitCQkU4O0JCRTg7MTEwNiAxMTc0IDExQjM7QkJFODsxMTA2IDExNzQgMTFCMzsKK0JCRTk7QkJFOTsxMTA2IDExNzQgMTFCNDtCQkU5OzExMDYgMTE3NCAxMUI0OworQkJFQTtCQkVBOzExMDYgMTE3NCAxMUI1O0JCRUE7MTEwNiAxMTc0IDExQjU7CitCQkVCO0JCRUI7MTEwNiAxMTc0IDExQjY7QkJFQjsxMTA2IDExNzQgMTFCNjsKK0JCRUM7QkJFQzsxMTA2IDExNzQgMTFCNztCQkVDOzExMDYgMTE3NCAxMUI3OworQkJFRDtCQkVEOzExMDYgMTE3NCAxMUI4O0JCRUQ7MTEwNiAxMTc0IDExQjg7CitCQkVFO0JCRUU7MTEwNiAxMTc0IDExQjk7QkJFRTsxMTA2IDExNzQgMTFCOTsKK0JCRUY7QkJFRjsxMTA2IDExNzQgMTFCQTtCQkVGOzExMDYgMTE3NCAxMUJBOworQkJGMDtCQkYwOzExMDYgMTE3NCAxMUJCO0JCRjA7MTEwNiAxMTc0IDExQkI7CitCQkYxO0JCRjE7MTEwNiAxMTc0IDExQkM7QkJGMTsxMTA2IDExNzQgMTFCQzsKK0JCRjI7QkJGMjsxMTA2IDExNzQgMTFCRDtCQkYyOzExMDYgMTE3NCAxMUJEOworQkJGMztCQkYzOzExMDYgMTE3NCAxMUJFO0JCRjM7MTEwNiAxMTc0IDExQkU7CitCQkY0O0JCRjQ7MTEwNiAxMTc0IDExQkY7QkJGNDsxMTA2IDExNzQgMTFCRjsKK0JCRjU7QkJGNTsxMTA2IDExNzQgMTFDMDtCQkY1OzExMDYgMTE3NCAxMUMwOworQkJGNjtCQkY2OzExMDYgMTE3NCAxMUMxO0JCRjY7MTEwNiAxMTc0IDExQzE7CitCQkY3O0JCRjc7MTEwNiAxMTc0IDExQzI7QkJGNzsxMTA2IDExNzQgMTFDMjsKK0JCRjg7QkJGODsxMTA2IDExNzU7QkJGODsxMTA2IDExNzU7CitCQkY5O0JCRjk7MTEwNiAxMTc1IDExQTg7QkJGOTsxMTA2IDExNzUgMTFBODsKK0JCRkE7QkJGQTsxMTA2IDExNzUgMTFBOTtCQkZBOzExMDYgMTE3NSAxMUE5OworQkJGQjtCQkZCOzExMDYgMTE3NSAxMUFBO0JCRkI7MTEwNiAxMTc1IDExQUE7CitCQkZDO0JCRkM7MTEwNiAxMTc1IDExQUI7QkJGQzsxMTA2IDExNzUgMTFBQjsKK0JCRkQ7QkJGRDsxMTA2IDExNzUgMTFBQztCQkZEOzExMDYgMTE3NSAxMUFDOworQkJGRTtCQkZFOzExMDYgMTE3NSAxMUFEO0JCRkU7MTEwNiAxMTc1IDExQUQ7CitCQkZGO0JCRkY7MTEwNiAxMTc1IDExQUU7QkJGRjsxMTA2IDExNzUgMTFBRTsKK0JDMDA7QkMwMDsxMTA2IDExNzUgMTFBRjtCQzAwOzExMDYgMTE3NSAxMUFGOworQkMwMTtCQzAxOzExMDYgMTE3NSAxMUIwO0JDMDE7MTEwNiAxMTc1IDExQjA7CitCQzAyO0JDMDI7MTEwNiAxMTc1IDExQjE7QkMwMjsxMTA2IDExNzUgMTFCMTsKK0JDMDM7QkMwMzsxMTA2IDExNzUgMTFCMjtCQzAzOzExMDYgMTE3NSAxMUIyOworQkMwNDtCQzA0OzExMDYgMTE3NSAxMUIzO0JDMDQ7MTEwNiAxMTc1IDExQjM7CitCQzA1O0JDMDU7MTEwNiAxMTc1IDExQjQ7QkMwNTsxMTA2IDExNzUgMTFCNDsKK0JDMDY7QkMwNjsxMTA2IDExNzUgMTFCNTtCQzA2OzExMDYgMTE3NSAxMUI1OworQkMwNztCQzA3OzExMDYgMTE3NSAxMUI2O0JDMDc7MTEwNiAxMTc1IDExQjY7CitCQzA4O0JDMDg7MTEwNiAxMTc1IDExQjc7QkMwODsxMTA2IDExNzUgMTFCNzsKK0JDMDk7QkMwOTsxMTA2IDExNzUgMTFCODtCQzA5OzExMDYgMTE3NSAxMUI4OworQkMwQTtCQzBBOzExMDYgMTE3NSAxMUI5O0JDMEE7MTEwNiAxMTc1IDExQjk7CitCQzBCO0JDMEI7MTEwNiAxMTc1IDExQkE7QkMwQjsxMTA2IDExNzUgMTFCQTsKK0JDMEM7QkMwQzsxMTA2IDExNzUgMTFCQjtCQzBDOzExMDYgMTE3NSAxMUJCOworQkMwRDtCQzBEOzExMDYgMTE3NSAxMUJDO0JDMEQ7MTEwNiAxMTc1IDExQkM7CitCQzBFO0JDMEU7MTEwNiAxMTc1IDExQkQ7QkMwRTsxMTA2IDExNzUgMTFCRDsKK0JDMEY7QkMwRjsxMTA2IDExNzUgMTFCRTtCQzBGOzExMDYgMTE3NSAxMUJFOworQkMxMDtCQzEwOzExMDYgMTE3NSAxMUJGO0JDMTA7MTEwNiAxMTc1IDExQkY7CitCQzExO0JDMTE7MTEwNiAxMTc1IDExQzA7QkMxMTsxMTA2IDExNzUgMTFDMDsKK0JDMTI7QkMxMjsxMTA2IDExNzUgMTFDMTtCQzEyOzExMDYgMTE3NSAxMUMxOworQkMxMztCQzEzOzExMDYgMTE3NSAxMUMyO0JDMTM7MTEwNiAxMTc1IDExQzI7CitCQzE0O0JDMTQ7MTEwNyAxMTYxO0JDMTQ7MTEwNyAxMTYxOworQkMxNTtCQzE1OzExMDcgMTE2MSAxMUE4O0JDMTU7MTEwNyAxMTYxIDExQTg7CitCQzE2O0JDMTY7MTEwNyAxMTYxIDExQTk7QkMxNjsxMTA3IDExNjEgMTFBOTsKK0JDMTc7QkMxNzsxMTA3IDExNjEgMTFBQTtCQzE3OzExMDcgMTE2MSAxMUFBOworQkMxODtCQzE4OzExMDcgMTE2MSAxMUFCO0JDMTg7MTEwNyAxMTYxIDExQUI7CitCQzE5O0JDMTk7MTEwNyAxMTYxIDExQUM7QkMxOTsxMTA3IDExNjEgMTFBQzsKK0JDMUE7QkMxQTsxMTA3IDExNjEgMTFBRDtCQzFBOzExMDcgMTE2MSAxMUFEOworQkMxQjtCQzFCOzExMDcgMTE2MSAxMUFFO0JDMUI7MTEwNyAxMTYxIDExQUU7CitCQzFDO0JDMUM7MTEwNyAxMTYxIDExQUY7QkMxQzsxMTA3IDExNjEgMTFBRjsKK0JDMUQ7QkMxRDsxMTA3IDExNjEgMTFCMDtCQzFEOzExMDcgMTE2MSAxMUIwOworQkMxRTtCQzFFOzExMDcgMTE2MSAxMUIxO0JDMUU7MTEwNyAxMTYxIDExQjE7CitCQzFGO0JDMUY7MTEwNyAxMTYxIDExQjI7QkMxRjsxMTA3IDExNjEgMTFCMjsKK0JDMjA7QkMyMDsxMTA3IDExNjEgMTFCMztCQzIwOzExMDcgMTE2MSAxMUIzOworQkMyMTtCQzIxOzExMDcgMTE2MSAxMUI0O0JDMjE7MTEwNyAxMTYxIDExQjQ7CitCQzIyO0JDMjI7MTEwNyAxMTYxIDExQjU7QkMyMjsxMTA3IDExNjEgMTFCNTsKK0JDMjM7QkMyMzsxMTA3IDExNjEgMTFCNjtCQzIzOzExMDcgMTE2MSAxMUI2OworQkMyNDtCQzI0OzExMDcgMTE2MSAxMUI3O0JDMjQ7MTEwNyAxMTYxIDExQjc7CitCQzI1O0JDMjU7MTEwNyAxMTYxIDExQjg7QkMyNTsxMTA3IDExNjEgMTFCODsKK0JDMjY7QkMyNjsxMTA3IDExNjEgMTFCOTtCQzI2OzExMDcgMTE2MSAxMUI5OworQkMyNztCQzI3OzExMDcgMTE2MSAxMUJBO0JDMjc7MTEwNyAxMTYxIDExQkE7CitCQzI4O0JDMjg7MTEwNyAxMTYxIDExQkI7QkMyODsxMTA3IDExNjEgMTFCQjsKK0JDMjk7QkMyOTsxMTA3IDExNjEgMTFCQztCQzI5OzExMDcgMTE2MSAxMUJDOworQkMyQTtCQzJBOzExMDcgMTE2MSAxMUJEO0JDMkE7MTEwNyAxMTYxIDExQkQ7CitCQzJCO0JDMkI7MTEwNyAxMTYxIDExQkU7QkMyQjsxMTA3IDExNjEgMTFCRTsKK0JDMkM7QkMyQzsxMTA3IDExNjEgMTFCRjtCQzJDOzExMDcgMTE2MSAxMUJGOworQkMyRDtCQzJEOzExMDcgMTE2MSAxMUMwO0JDMkQ7MTEwNyAxMTYxIDExQzA7CitCQzJFO0JDMkU7MTEwNyAxMTYxIDExQzE7QkMyRTsxMTA3IDExNjEgMTFDMTsKK0JDMkY7QkMyRjsxMTA3IDExNjEgMTFDMjtCQzJGOzExMDcgMTE2MSAxMUMyOworQkMzMDtCQzMwOzExMDcgMTE2MjtCQzMwOzExMDcgMTE2MjsKK0JDMzE7QkMzMTsxMTA3IDExNjIgMTFBODtCQzMxOzExMDcgMTE2MiAxMUE4OworQkMzMjtCQzMyOzExMDcgMTE2MiAxMUE5O0JDMzI7MTEwNyAxMTYyIDExQTk7CitCQzMzO0JDMzM7MTEwNyAxMTYyIDExQUE7QkMzMzsxMTA3IDExNjIgMTFBQTsKK0JDMzQ7QkMzNDsxMTA3IDExNjIgMTFBQjtCQzM0OzExMDcgMTE2MiAxMUFCOworQkMzNTtCQzM1OzExMDcgMTE2MiAxMUFDO0JDMzU7MTEwNyAxMTYyIDExQUM7CitCQzM2O0JDMzY7MTEwNyAxMTYyIDExQUQ7QkMzNjsxMTA3IDExNjIgMTFBRDsKK0JDMzc7QkMzNzsxMTA3IDExNjIgMTFBRTtCQzM3OzExMDcgMTE2MiAxMUFFOworQkMzODtCQzM4OzExMDcgMTE2MiAxMUFGO0JDMzg7MTEwNyAxMTYyIDExQUY7CitCQzM5O0JDMzk7MTEwNyAxMTYyIDExQjA7QkMzOTsxMTA3IDExNjIgMTFCMDsKK0JDM0E7QkMzQTsxMTA3IDExNjIgMTFCMTtCQzNBOzExMDcgMTE2MiAxMUIxOworQkMzQjtCQzNCOzExMDcgMTE2MiAxMUIyO0JDM0I7MTEwNyAxMTYyIDExQjI7CitCQzNDO0JDM0M7MTEwNyAxMTYyIDExQjM7QkMzQzsxMTA3IDExNjIgMTFCMzsKK0JDM0Q7QkMzRDsxMTA3IDExNjIgMTFCNDtCQzNEOzExMDcgMTE2MiAxMUI0OworQkMzRTtCQzNFOzExMDcgMTE2MiAxMUI1O0JDM0U7MTEwNyAxMTYyIDExQjU7CitCQzNGO0JDM0Y7MTEwNyAxMTYyIDExQjY7QkMzRjsxMTA3IDExNjIgMTFCNjsKK0JDNDA7QkM0MDsxMTA3IDExNjIgMTFCNztCQzQwOzExMDcgMTE2MiAxMUI3OworQkM0MTtCQzQxOzExMDcgMTE2MiAxMUI4O0JDNDE7MTEwNyAxMTYyIDExQjg7CitCQzQyO0JDNDI7MTEwNyAxMTYyIDExQjk7QkM0MjsxMTA3IDExNjIgMTFCOTsKK0JDNDM7QkM0MzsxMTA3IDExNjIgMTFCQTtCQzQzOzExMDcgMTE2MiAxMUJBOworQkM0NDtCQzQ0OzExMDcgMTE2MiAxMUJCO0JDNDQ7MTEwNyAxMTYyIDExQkI7CitCQzQ1O0JDNDU7MTEwNyAxMTYyIDExQkM7QkM0NTsxMTA3IDExNjIgMTFCQzsKK0JDNDY7QkM0NjsxMTA3IDExNjIgMTFCRDtCQzQ2OzExMDcgMTE2MiAxMUJEOworQkM0NztCQzQ3OzExMDcgMTE2MiAxMUJFO0JDNDc7MTEwNyAxMTYyIDExQkU7CitCQzQ4O0JDNDg7MTEwNyAxMTYyIDExQkY7QkM0ODsxMTA3IDExNjIgMTFCRjsKK0JDNDk7QkM0OTsxMTA3IDExNjIgMTFDMDtCQzQ5OzExMDcgMTE2MiAxMUMwOworQkM0QTtCQzRBOzExMDcgMTE2MiAxMUMxO0JDNEE7MTEwNyAxMTYyIDExQzE7CitCQzRCO0JDNEI7MTEwNyAxMTYyIDExQzI7QkM0QjsxMTA3IDExNjIgMTFDMjsKK0JDNEM7QkM0QzsxMTA3IDExNjM7QkM0QzsxMTA3IDExNjM7CitCQzREO0JDNEQ7MTEwNyAxMTYzIDExQTg7QkM0RDsxMTA3IDExNjMgMTFBODsKK0JDNEU7QkM0RTsxMTA3IDExNjMgMTFBOTtCQzRFOzExMDcgMTE2MyAxMUE5OworQkM0RjtCQzRGOzExMDcgMTE2MyAxMUFBO0JDNEY7MTEwNyAxMTYzIDExQUE7CitCQzUwO0JDNTA7MTEwNyAxMTYzIDExQUI7QkM1MDsxMTA3IDExNjMgMTFBQjsKK0JDNTE7QkM1MTsxMTA3IDExNjMgMTFBQztCQzUxOzExMDcgMTE2MyAxMUFDOworQkM1MjtCQzUyOzExMDcgMTE2MyAxMUFEO0JDNTI7MTEwNyAxMTYzIDExQUQ7CitCQzUzO0JDNTM7MTEwNyAxMTYzIDExQUU7QkM1MzsxMTA3IDExNjMgMTFBRTsKK0JDNTQ7QkM1NDsxMTA3IDExNjMgMTFBRjtCQzU0OzExMDcgMTE2MyAxMUFGOworQkM1NTtCQzU1OzExMDcgMTE2MyAxMUIwO0JDNTU7MTEwNyAxMTYzIDExQjA7CitCQzU2O0JDNTY7MTEwNyAxMTYzIDExQjE7QkM1NjsxMTA3IDExNjMgMTFCMTsKK0JDNTc7QkM1NzsxMTA3IDExNjMgMTFCMjtCQzU3OzExMDcgMTE2MyAxMUIyOworQkM1ODtCQzU4OzExMDcgMTE2MyAxMUIzO0JDNTg7MTEwNyAxMTYzIDExQjM7CitCQzU5O0JDNTk7MTEwNyAxMTYzIDExQjQ7QkM1OTsxMTA3IDExNjMgMTFCNDsKK0JDNUE7QkM1QTsxMTA3IDExNjMgMTFCNTtCQzVBOzExMDcgMTE2MyAxMUI1OworQkM1QjtCQzVCOzExMDcgMTE2MyAxMUI2O0JDNUI7MTEwNyAxMTYzIDExQjY7CitCQzVDO0JDNUM7MTEwNyAxMTYzIDExQjc7QkM1QzsxMTA3IDExNjMgMTFCNzsKK0JDNUQ7QkM1RDsxMTA3IDExNjMgMTFCODtCQzVEOzExMDcgMTE2MyAxMUI4OworQkM1RTtCQzVFOzExMDcgMTE2MyAxMUI5O0JDNUU7MTEwNyAxMTYzIDExQjk7CitCQzVGO0JDNUY7MTEwNyAxMTYzIDExQkE7QkM1RjsxMTA3IDExNjMgMTFCQTsKK0JDNjA7QkM2MDsxMTA3IDExNjMgMTFCQjtCQzYwOzExMDcgMTE2MyAxMUJCOworQkM2MTtCQzYxOzExMDcgMTE2MyAxMUJDO0JDNjE7MTEwNyAxMTYzIDExQkM7CitCQzYyO0JDNjI7MTEwNyAxMTYzIDExQkQ7QkM2MjsxMTA3IDExNjMgMTFCRDsKK0JDNjM7QkM2MzsxMTA3IDExNjMgMTFCRTtCQzYzOzExMDcgMTE2MyAxMUJFOworQkM2NDtCQzY0OzExMDcgMTE2MyAxMUJGO0JDNjQ7MTEwNyAxMTYzIDExQkY7CitCQzY1O0JDNjU7MTEwNyAxMTYzIDExQzA7QkM2NTsxMTA3IDExNjMgMTFDMDsKK0JDNjY7QkM2NjsxMTA3IDExNjMgMTFDMTtCQzY2OzExMDcgMTE2MyAxMUMxOworQkM2NztCQzY3OzExMDcgMTE2MyAxMUMyO0JDNjc7MTEwNyAxMTYzIDExQzI7CitCQzY4O0JDNjg7MTEwNyAxMTY0O0JDNjg7MTEwNyAxMTY0OworQkM2OTtCQzY5OzExMDcgMTE2NCAxMUE4O0JDNjk7MTEwNyAxMTY0IDExQTg7CitCQzZBO0JDNkE7MTEwNyAxMTY0IDExQTk7QkM2QTsxMTA3IDExNjQgMTFBOTsKK0JDNkI7QkM2QjsxMTA3IDExNjQgMTFBQTtCQzZCOzExMDcgMTE2NCAxMUFBOworQkM2QztCQzZDOzExMDcgMTE2NCAxMUFCO0JDNkM7MTEwNyAxMTY0IDExQUI7CitCQzZEO0JDNkQ7MTEwNyAxMTY0IDExQUM7QkM2RDsxMTA3IDExNjQgMTFBQzsKK0JDNkU7QkM2RTsxMTA3IDExNjQgMTFBRDtCQzZFOzExMDcgMTE2NCAxMUFEOworQkM2RjtCQzZGOzExMDcgMTE2NCAxMUFFO0JDNkY7MTEwNyAxMTY0IDExQUU7CitCQzcwO0JDNzA7MTEwNyAxMTY0IDExQUY7QkM3MDsxMTA3IDExNjQgMTFBRjsKK0JDNzE7QkM3MTsxMTA3IDExNjQgMTFCMDtCQzcxOzExMDcgMTE2NCAxMUIwOworQkM3MjtCQzcyOzExMDcgMTE2NCAxMUIxO0JDNzI7MTEwNyAxMTY0IDExQjE7CitCQzczO0JDNzM7MTEwNyAxMTY0IDExQjI7QkM3MzsxMTA3IDExNjQgMTFCMjsKK0JDNzQ7QkM3NDsxMTA3IDExNjQgMTFCMztCQzc0OzExMDcgMTE2NCAxMUIzOworQkM3NTtCQzc1OzExMDcgMTE2NCAxMUI0O0JDNzU7MTEwNyAxMTY0IDExQjQ7CitCQzc2O0JDNzY7MTEwNyAxMTY0IDExQjU7QkM3NjsxMTA3IDExNjQgMTFCNTsKK0JDNzc7QkM3NzsxMTA3IDExNjQgMTFCNjtCQzc3OzExMDcgMTE2NCAxMUI2OworQkM3ODtCQzc4OzExMDcgMTE2NCAxMUI3O0JDNzg7MTEwNyAxMTY0IDExQjc7CitCQzc5O0JDNzk7MTEwNyAxMTY0IDExQjg7QkM3OTsxMTA3IDExNjQgMTFCODsKK0JDN0E7QkM3QTsxMTA3IDExNjQgMTFCOTtCQzdBOzExMDcgMTE2NCAxMUI5OworQkM3QjtCQzdCOzExMDcgMTE2NCAxMUJBO0JDN0I7MTEwNyAxMTY0IDExQkE7CitCQzdDO0JDN0M7MTEwNyAxMTY0IDExQkI7QkM3QzsxMTA3IDExNjQgMTFCQjsKK0JDN0Q7QkM3RDsxMTA3IDExNjQgMTFCQztCQzdEOzExMDcgMTE2NCAxMUJDOworQkM3RTtCQzdFOzExMDcgMTE2NCAxMUJEO0JDN0U7MTEwNyAxMTY0IDExQkQ7CitCQzdGO0JDN0Y7MTEwNyAxMTY0IDExQkU7QkM3RjsxMTA3IDExNjQgMTFCRTsKK0JDODA7QkM4MDsxMTA3IDExNjQgMTFCRjtCQzgwOzExMDcgMTE2NCAxMUJGOworQkM4MTtCQzgxOzExMDcgMTE2NCAxMUMwO0JDODE7MTEwNyAxMTY0IDExQzA7CitCQzgyO0JDODI7MTEwNyAxMTY0IDExQzE7QkM4MjsxMTA3IDExNjQgMTFDMTsKK0JDODM7QkM4MzsxMTA3IDExNjQgMTFDMjtCQzgzOzExMDcgMTE2NCAxMUMyOworQkM4NDtCQzg0OzExMDcgMTE2NTtCQzg0OzExMDcgMTE2NTsKK0JDODU7QkM4NTsxMTA3IDExNjUgMTFBODtCQzg1OzExMDcgMTE2NSAxMUE4OworQkM4NjtCQzg2OzExMDcgMTE2NSAxMUE5O0JDODY7MTEwNyAxMTY1IDExQTk7CitCQzg3O0JDODc7MTEwNyAxMTY1IDExQUE7QkM4NzsxMTA3IDExNjUgMTFBQTsKK0JDODg7QkM4ODsxMTA3IDExNjUgMTFBQjtCQzg4OzExMDcgMTE2NSAxMUFCOworQkM4OTtCQzg5OzExMDcgMTE2NSAxMUFDO0JDODk7MTEwNyAxMTY1IDExQUM7CitCQzhBO0JDOEE7MTEwNyAxMTY1IDExQUQ7QkM4QTsxMTA3IDExNjUgMTFBRDsKK0JDOEI7QkM4QjsxMTA3IDExNjUgMTFBRTtCQzhCOzExMDcgMTE2NSAxMUFFOworQkM4QztCQzhDOzExMDcgMTE2NSAxMUFGO0JDOEM7MTEwNyAxMTY1IDExQUY7CitCQzhEO0JDOEQ7MTEwNyAxMTY1IDExQjA7QkM4RDsxMTA3IDExNjUgMTFCMDsKK0JDOEU7QkM4RTsxMTA3IDExNjUgMTFCMTtCQzhFOzExMDcgMTE2NSAxMUIxOworQkM4RjtCQzhGOzExMDcgMTE2NSAxMUIyO0JDOEY7MTEwNyAxMTY1IDExQjI7CitCQzkwO0JDOTA7MTEwNyAxMTY1IDExQjM7QkM5MDsxMTA3IDExNjUgMTFCMzsKK0JDOTE7QkM5MTsxMTA3IDExNjUgMTFCNDtCQzkxOzExMDcgMTE2NSAxMUI0OworQkM5MjtCQzkyOzExMDcgMTE2NSAxMUI1O0JDOTI7MTEwNyAxMTY1IDExQjU7CitCQzkzO0JDOTM7MTEwNyAxMTY1IDExQjY7QkM5MzsxMTA3IDExNjUgMTFCNjsKK0JDOTQ7QkM5NDsxMTA3IDExNjUgMTFCNztCQzk0OzExMDcgMTE2NSAxMUI3OworQkM5NTtCQzk1OzExMDcgMTE2NSAxMUI4O0JDOTU7MTEwNyAxMTY1IDExQjg7CitCQzk2O0JDOTY7MTEwNyAxMTY1IDExQjk7QkM5NjsxMTA3IDExNjUgMTFCOTsKK0JDOTc7QkM5NzsxMTA3IDExNjUgMTFCQTtCQzk3OzExMDcgMTE2NSAxMUJBOworQkM5ODtCQzk4OzExMDcgMTE2NSAxMUJCO0JDOTg7MTEwNyAxMTY1IDExQkI7CitCQzk5O0JDOTk7MTEwNyAxMTY1IDExQkM7QkM5OTsxMTA3IDExNjUgMTFCQzsKK0JDOUE7QkM5QTsxMTA3IDExNjUgMTFCRDtCQzlBOzExMDcgMTE2NSAxMUJEOworQkM5QjtCQzlCOzExMDcgMTE2NSAxMUJFO0JDOUI7MTEwNyAxMTY1IDExQkU7CitCQzlDO0JDOUM7MTEwNyAxMTY1IDExQkY7QkM5QzsxMTA3IDExNjUgMTFCRjsKK0JDOUQ7QkM5RDsxMTA3IDExNjUgMTFDMDtCQzlEOzExMDcgMTE2NSAxMUMwOworQkM5RTtCQzlFOzExMDcgMTE2NSAxMUMxO0JDOUU7MTEwNyAxMTY1IDExQzE7CitCQzlGO0JDOUY7MTEwNyAxMTY1IDExQzI7QkM5RjsxMTA3IDExNjUgMTFDMjsKK0JDQTA7QkNBMDsxMTA3IDExNjY7QkNBMDsxMTA3IDExNjY7CitCQ0ExO0JDQTE7MTEwNyAxMTY2IDExQTg7QkNBMTsxMTA3IDExNjYgMTFBODsKK0JDQTI7QkNBMjsxMTA3IDExNjYgMTFBOTtCQ0EyOzExMDcgMTE2NiAxMUE5OworQkNBMztCQ0EzOzExMDcgMTE2NiAxMUFBO0JDQTM7MTEwNyAxMTY2IDExQUE7CitCQ0E0O0JDQTQ7MTEwNyAxMTY2IDExQUI7QkNBNDsxMTA3IDExNjYgMTFBQjsKK0JDQTU7QkNBNTsxMTA3IDExNjYgMTFBQztCQ0E1OzExMDcgMTE2NiAxMUFDOworQkNBNjtCQ0E2OzExMDcgMTE2NiAxMUFEO0JDQTY7MTEwNyAxMTY2IDExQUQ7CitCQ0E3O0JDQTc7MTEwNyAxMTY2IDExQUU7QkNBNzsxMTA3IDExNjYgMTFBRTsKK0JDQTg7QkNBODsxMTA3IDExNjYgMTFBRjtCQ0E4OzExMDcgMTE2NiAxMUFGOworQkNBOTtCQ0E5OzExMDcgMTE2NiAxMUIwO0JDQTk7MTEwNyAxMTY2IDExQjA7CitCQ0FBO0JDQUE7MTEwNyAxMTY2IDExQjE7QkNBQTsxMTA3IDExNjYgMTFCMTsKK0JDQUI7QkNBQjsxMTA3IDExNjYgMTFCMjtCQ0FCOzExMDcgMTE2NiAxMUIyOworQkNBQztCQ0FDOzExMDcgMTE2NiAxMUIzO0JDQUM7MTEwNyAxMTY2IDExQjM7CitCQ0FEO0JDQUQ7MTEwNyAxMTY2IDExQjQ7QkNBRDsxMTA3IDExNjYgMTFCNDsKK0JDQUU7QkNBRTsxMTA3IDExNjYgMTFCNTtCQ0FFOzExMDcgMTE2NiAxMUI1OworQkNBRjtCQ0FGOzExMDcgMTE2NiAxMUI2O0JDQUY7MTEwNyAxMTY2IDExQjY7CitCQ0IwO0JDQjA7MTEwNyAxMTY2IDExQjc7QkNCMDsxMTA3IDExNjYgMTFCNzsKK0JDQjE7QkNCMTsxMTA3IDExNjYgMTFCODtCQ0IxOzExMDcgMTE2NiAxMUI4OworQkNCMjtCQ0IyOzExMDcgMTE2NiAxMUI5O0JDQjI7MTEwNyAxMTY2IDExQjk7CitCQ0IzO0JDQjM7MTEwNyAxMTY2IDExQkE7QkNCMzsxMTA3IDExNjYgMTFCQTsKK0JDQjQ7QkNCNDsxMTA3IDExNjYgMTFCQjtCQ0I0OzExMDcgMTE2NiAxMUJCOworQkNCNTtCQ0I1OzExMDcgMTE2NiAxMUJDO0JDQjU7MTEwNyAxMTY2IDExQkM7CitCQ0I2O0JDQjY7MTEwNyAxMTY2IDExQkQ7QkNCNjsxMTA3IDExNjYgMTFCRDsKK0JDQjc7QkNCNzsxMTA3IDExNjYgMTFCRTtCQ0I3OzExMDcgMTE2NiAxMUJFOworQkNCODtCQ0I4OzExMDcgMTE2NiAxMUJGO0JDQjg7MTEwNyAxMTY2IDExQkY7CitCQ0I5O0JDQjk7MTEwNyAxMTY2IDExQzA7QkNCOTsxMTA3IDExNjYgMTFDMDsKK0JDQkE7QkNCQTsxMTA3IDExNjYgMTFDMTtCQ0JBOzExMDcgMTE2NiAxMUMxOworQkNCQjtCQ0JCOzExMDcgMTE2NiAxMUMyO0JDQkI7MTEwNyAxMTY2IDExQzI7CitCQ0JDO0JDQkM7MTEwNyAxMTY3O0JDQkM7MTEwNyAxMTY3OworQkNCRDtCQ0JEOzExMDcgMTE2NyAxMUE4O0JDQkQ7MTEwNyAxMTY3IDExQTg7CitCQ0JFO0JDQkU7MTEwNyAxMTY3IDExQTk7QkNCRTsxMTA3IDExNjcgMTFBOTsKK0JDQkY7QkNCRjsxMTA3IDExNjcgMTFBQTtCQ0JGOzExMDcgMTE2NyAxMUFBOworQkNDMDtCQ0MwOzExMDcgMTE2NyAxMUFCO0JDQzA7MTEwNyAxMTY3IDExQUI7CitCQ0MxO0JDQzE7MTEwNyAxMTY3IDExQUM7QkNDMTsxMTA3IDExNjcgMTFBQzsKK0JDQzI7QkNDMjsxMTA3IDExNjcgMTFBRDtCQ0MyOzExMDcgMTE2NyAxMUFEOworQkNDMztCQ0MzOzExMDcgMTE2NyAxMUFFO0JDQzM7MTEwNyAxMTY3IDExQUU7CitCQ0M0O0JDQzQ7MTEwNyAxMTY3IDExQUY7QkNDNDsxMTA3IDExNjcgMTFBRjsKK0JDQzU7QkNDNTsxMTA3IDExNjcgMTFCMDtCQ0M1OzExMDcgMTE2NyAxMUIwOworQkNDNjtCQ0M2OzExMDcgMTE2NyAxMUIxO0JDQzY7MTEwNyAxMTY3IDExQjE7CitCQ0M3O0JDQzc7MTEwNyAxMTY3IDExQjI7QkNDNzsxMTA3IDExNjcgMTFCMjsKK0JDQzg7QkNDODsxMTA3IDExNjcgMTFCMztCQ0M4OzExMDcgMTE2NyAxMUIzOworQkNDOTtCQ0M5OzExMDcgMTE2NyAxMUI0O0JDQzk7MTEwNyAxMTY3IDExQjQ7CitCQ0NBO0JDQ0E7MTEwNyAxMTY3IDExQjU7QkNDQTsxMTA3IDExNjcgMTFCNTsKK0JDQ0I7QkNDQjsxMTA3IDExNjcgMTFCNjtCQ0NCOzExMDcgMTE2NyAxMUI2OworQkNDQztCQ0NDOzExMDcgMTE2NyAxMUI3O0JDQ0M7MTEwNyAxMTY3IDExQjc7CitCQ0NEO0JDQ0Q7MTEwNyAxMTY3IDExQjg7QkNDRDsxMTA3IDExNjcgMTFCODsKK0JDQ0U7QkNDRTsxMTA3IDExNjcgMTFCOTtCQ0NFOzExMDcgMTE2NyAxMUI5OworQkNDRjtCQ0NGOzExMDcgMTE2NyAxMUJBO0JDQ0Y7MTEwNyAxMTY3IDExQkE7CitCQ0QwO0JDRDA7MTEwNyAxMTY3IDExQkI7QkNEMDsxMTA3IDExNjcgMTFCQjsKK0JDRDE7QkNEMTsxMTA3IDExNjcgMTFCQztCQ0QxOzExMDcgMTE2NyAxMUJDOworQkNEMjtCQ0QyOzExMDcgMTE2NyAxMUJEO0JDRDI7MTEwNyAxMTY3IDExQkQ7CitCQ0QzO0JDRDM7MTEwNyAxMTY3IDExQkU7QkNEMzsxMTA3IDExNjcgMTFCRTsKK0JDRDQ7QkNENDsxMTA3IDExNjcgMTFCRjtCQ0Q0OzExMDcgMTE2NyAxMUJGOworQkNENTtCQ0Q1OzExMDcgMTE2NyAxMUMwO0JDRDU7MTEwNyAxMTY3IDExQzA7CitCQ0Q2O0JDRDY7MTEwNyAxMTY3IDExQzE7QkNENjsxMTA3IDExNjcgMTFDMTsKK0JDRDc7QkNENzsxMTA3IDExNjcgMTFDMjtCQ0Q3OzExMDcgMTE2NyAxMUMyOworQkNEODtCQ0Q4OzExMDcgMTE2ODtCQ0Q4OzExMDcgMTE2ODsKK0JDRDk7QkNEOTsxMTA3IDExNjggMTFBODtCQ0Q5OzExMDcgMTE2OCAxMUE4OworQkNEQTtCQ0RBOzExMDcgMTE2OCAxMUE5O0JDREE7MTEwNyAxMTY4IDExQTk7CitCQ0RCO0JDREI7MTEwNyAxMTY4IDExQUE7QkNEQjsxMTA3IDExNjggMTFBQTsKK0JDREM7QkNEQzsxMTA3IDExNjggMTFBQjtCQ0RDOzExMDcgMTE2OCAxMUFCOworQkNERDtCQ0REOzExMDcgMTE2OCAxMUFDO0JDREQ7MTEwNyAxMTY4IDExQUM7CitCQ0RFO0JDREU7MTEwNyAxMTY4IDExQUQ7QkNERTsxMTA3IDExNjggMTFBRDsKK0JDREY7QkNERjsxMTA3IDExNjggMTFBRTtCQ0RGOzExMDcgMTE2OCAxMUFFOworQkNFMDtCQ0UwOzExMDcgMTE2OCAxMUFGO0JDRTA7MTEwNyAxMTY4IDExQUY7CitCQ0UxO0JDRTE7MTEwNyAxMTY4IDExQjA7QkNFMTsxMTA3IDExNjggMTFCMDsKK0JDRTI7QkNFMjsxMTA3IDExNjggMTFCMTtCQ0UyOzExMDcgMTE2OCAxMUIxOworQkNFMztCQ0UzOzExMDcgMTE2OCAxMUIyO0JDRTM7MTEwNyAxMTY4IDExQjI7CitCQ0U0O0JDRTQ7MTEwNyAxMTY4IDExQjM7QkNFNDsxMTA3IDExNjggMTFCMzsKK0JDRTU7QkNFNTsxMTA3IDExNjggMTFCNDtCQ0U1OzExMDcgMTE2OCAxMUI0OworQkNFNjtCQ0U2OzExMDcgMTE2OCAxMUI1O0JDRTY7MTEwNyAxMTY4IDExQjU7CitCQ0U3O0JDRTc7MTEwNyAxMTY4IDExQjY7QkNFNzsxMTA3IDExNjggMTFCNjsKK0JDRTg7QkNFODsxMTA3IDExNjggMTFCNztCQ0U4OzExMDcgMTE2OCAxMUI3OworQkNFOTtCQ0U5OzExMDcgMTE2OCAxMUI4O0JDRTk7MTEwNyAxMTY4IDExQjg7CitCQ0VBO0JDRUE7MTEwNyAxMTY4IDExQjk7QkNFQTsxMTA3IDExNjggMTFCOTsKK0JDRUI7QkNFQjsxMTA3IDExNjggMTFCQTtCQ0VCOzExMDcgMTE2OCAxMUJBOworQkNFQztCQ0VDOzExMDcgMTE2OCAxMUJCO0JDRUM7MTEwNyAxMTY4IDExQkI7CitCQ0VEO0JDRUQ7MTEwNyAxMTY4IDExQkM7QkNFRDsxMTA3IDExNjggMTFCQzsKK0JDRUU7QkNFRTsxMTA3IDExNjggMTFCRDtCQ0VFOzExMDcgMTE2OCAxMUJEOworQkNFRjtCQ0VGOzExMDcgMTE2OCAxMUJFO0JDRUY7MTEwNyAxMTY4IDExQkU7CitCQ0YwO0JDRjA7MTEwNyAxMTY4IDExQkY7QkNGMDsxMTA3IDExNjggMTFCRjsKK0JDRjE7QkNGMTsxMTA3IDExNjggMTFDMDtCQ0YxOzExMDcgMTE2OCAxMUMwOworQkNGMjtCQ0YyOzExMDcgMTE2OCAxMUMxO0JDRjI7MTEwNyAxMTY4IDExQzE7CitCQ0YzO0JDRjM7MTEwNyAxMTY4IDExQzI7QkNGMzsxMTA3IDExNjggMTFDMjsKK0JDRjQ7QkNGNDsxMTA3IDExNjk7QkNGNDsxMTA3IDExNjk7CitCQ0Y1O0JDRjU7MTEwNyAxMTY5IDExQTg7QkNGNTsxMTA3IDExNjkgMTFBODsKK0JDRjY7QkNGNjsxMTA3IDExNjkgMTFBOTtCQ0Y2OzExMDcgMTE2OSAxMUE5OworQkNGNztCQ0Y3OzExMDcgMTE2OSAxMUFBO0JDRjc7MTEwNyAxMTY5IDExQUE7CitCQ0Y4O0JDRjg7MTEwNyAxMTY5IDExQUI7QkNGODsxMTA3IDExNjkgMTFBQjsKK0JDRjk7QkNGOTsxMTA3IDExNjkgMTFBQztCQ0Y5OzExMDcgMTE2OSAxMUFDOworQkNGQTtCQ0ZBOzExMDcgMTE2OSAxMUFEO0JDRkE7MTEwNyAxMTY5IDExQUQ7CitCQ0ZCO0JDRkI7MTEwNyAxMTY5IDExQUU7QkNGQjsxMTA3IDExNjkgMTFBRTsKK0JDRkM7QkNGQzsxMTA3IDExNjkgMTFBRjtCQ0ZDOzExMDcgMTE2OSAxMUFGOworQkNGRDtCQ0ZEOzExMDcgMTE2OSAxMUIwO0JDRkQ7MTEwNyAxMTY5IDExQjA7CitCQ0ZFO0JDRkU7MTEwNyAxMTY5IDExQjE7QkNGRTsxMTA3IDExNjkgMTFCMTsKK0JDRkY7QkNGRjsxMTA3IDExNjkgMTFCMjtCQ0ZGOzExMDcgMTE2OSAxMUIyOworQkQwMDtCRDAwOzExMDcgMTE2OSAxMUIzO0JEMDA7MTEwNyAxMTY5IDExQjM7CitCRDAxO0JEMDE7MTEwNyAxMTY5IDExQjQ7QkQwMTsxMTA3IDExNjkgMTFCNDsKK0JEMDI7QkQwMjsxMTA3IDExNjkgMTFCNTtCRDAyOzExMDcgMTE2OSAxMUI1OworQkQwMztCRDAzOzExMDcgMTE2OSAxMUI2O0JEMDM7MTEwNyAxMTY5IDExQjY7CitCRDA0O0JEMDQ7MTEwNyAxMTY5IDExQjc7QkQwNDsxMTA3IDExNjkgMTFCNzsKK0JEMDU7QkQwNTsxMTA3IDExNjkgMTFCODtCRDA1OzExMDcgMTE2OSAxMUI4OworQkQwNjtCRDA2OzExMDcgMTE2OSAxMUI5O0JEMDY7MTEwNyAxMTY5IDExQjk7CitCRDA3O0JEMDc7MTEwNyAxMTY5IDExQkE7QkQwNzsxMTA3IDExNjkgMTFCQTsKK0JEMDg7QkQwODsxMTA3IDExNjkgMTFCQjtCRDA4OzExMDcgMTE2OSAxMUJCOworQkQwOTtCRDA5OzExMDcgMTE2OSAxMUJDO0JEMDk7MTEwNyAxMTY5IDExQkM7CitCRDBBO0JEMEE7MTEwNyAxMTY5IDExQkQ7QkQwQTsxMTA3IDExNjkgMTFCRDsKK0JEMEI7QkQwQjsxMTA3IDExNjkgMTFCRTtCRDBCOzExMDcgMTE2OSAxMUJFOworQkQwQztCRDBDOzExMDcgMTE2OSAxMUJGO0JEMEM7MTEwNyAxMTY5IDExQkY7CitCRDBEO0JEMEQ7MTEwNyAxMTY5IDExQzA7QkQwRDsxMTA3IDExNjkgMTFDMDsKK0JEMEU7QkQwRTsxMTA3IDExNjkgMTFDMTtCRDBFOzExMDcgMTE2OSAxMUMxOworQkQwRjtCRDBGOzExMDcgMTE2OSAxMUMyO0JEMEY7MTEwNyAxMTY5IDExQzI7CitCRDEwO0JEMTA7MTEwNyAxMTZBO0JEMTA7MTEwNyAxMTZBOworQkQxMTtCRDExOzExMDcgMTE2QSAxMUE4O0JEMTE7MTEwNyAxMTZBIDExQTg7CitCRDEyO0JEMTI7MTEwNyAxMTZBIDExQTk7QkQxMjsxMTA3IDExNkEgMTFBOTsKK0JEMTM7QkQxMzsxMTA3IDExNkEgMTFBQTtCRDEzOzExMDcgMTE2QSAxMUFBOworQkQxNDtCRDE0OzExMDcgMTE2QSAxMUFCO0JEMTQ7MTEwNyAxMTZBIDExQUI7CitCRDE1O0JEMTU7MTEwNyAxMTZBIDExQUM7QkQxNTsxMTA3IDExNkEgMTFBQzsKK0JEMTY7QkQxNjsxMTA3IDExNkEgMTFBRDtCRDE2OzExMDcgMTE2QSAxMUFEOworQkQxNztCRDE3OzExMDcgMTE2QSAxMUFFO0JEMTc7MTEwNyAxMTZBIDExQUU7CitCRDE4O0JEMTg7MTEwNyAxMTZBIDExQUY7QkQxODsxMTA3IDExNkEgMTFBRjsKK0JEMTk7QkQxOTsxMTA3IDExNkEgMTFCMDtCRDE5OzExMDcgMTE2QSAxMUIwOworQkQxQTtCRDFBOzExMDcgMTE2QSAxMUIxO0JEMUE7MTEwNyAxMTZBIDExQjE7CitCRDFCO0JEMUI7MTEwNyAxMTZBIDExQjI7QkQxQjsxMTA3IDExNkEgMTFCMjsKK0JEMUM7QkQxQzsxMTA3IDExNkEgMTFCMztCRDFDOzExMDcgMTE2QSAxMUIzOworQkQxRDtCRDFEOzExMDcgMTE2QSAxMUI0O0JEMUQ7MTEwNyAxMTZBIDExQjQ7CitCRDFFO0JEMUU7MTEwNyAxMTZBIDExQjU7QkQxRTsxMTA3IDExNkEgMTFCNTsKK0JEMUY7QkQxRjsxMTA3IDExNkEgMTFCNjtCRDFGOzExMDcgMTE2QSAxMUI2OworQkQyMDtCRDIwOzExMDcgMTE2QSAxMUI3O0JEMjA7MTEwNyAxMTZBIDExQjc7CitCRDIxO0JEMjE7MTEwNyAxMTZBIDExQjg7QkQyMTsxMTA3IDExNkEgMTFCODsKK0JEMjI7QkQyMjsxMTA3IDExNkEgMTFCOTtCRDIyOzExMDcgMTE2QSAxMUI5OworQkQyMztCRDIzOzExMDcgMTE2QSAxMUJBO0JEMjM7MTEwNyAxMTZBIDExQkE7CitCRDI0O0JEMjQ7MTEwNyAxMTZBIDExQkI7QkQyNDsxMTA3IDExNkEgMTFCQjsKK0JEMjU7QkQyNTsxMTA3IDExNkEgMTFCQztCRDI1OzExMDcgMTE2QSAxMUJDOworQkQyNjtCRDI2OzExMDcgMTE2QSAxMUJEO0JEMjY7MTEwNyAxMTZBIDExQkQ7CitCRDI3O0JEMjc7MTEwNyAxMTZBIDExQkU7QkQyNzsxMTA3IDExNkEgMTFCRTsKK0JEMjg7QkQyODsxMTA3IDExNkEgMTFCRjtCRDI4OzExMDcgMTE2QSAxMUJGOworQkQyOTtCRDI5OzExMDcgMTE2QSAxMUMwO0JEMjk7MTEwNyAxMTZBIDExQzA7CitCRDJBO0JEMkE7MTEwNyAxMTZBIDExQzE7QkQyQTsxMTA3IDExNkEgMTFDMTsKK0JEMkI7QkQyQjsxMTA3IDExNkEgMTFDMjtCRDJCOzExMDcgMTE2QSAxMUMyOworQkQyQztCRDJDOzExMDcgMTE2QjtCRDJDOzExMDcgMTE2QjsKK0JEMkQ7QkQyRDsxMTA3IDExNkIgMTFBODtCRDJEOzExMDcgMTE2QiAxMUE4OworQkQyRTtCRDJFOzExMDcgMTE2QiAxMUE5O0JEMkU7MTEwNyAxMTZCIDExQTk7CitCRDJGO0JEMkY7MTEwNyAxMTZCIDExQUE7QkQyRjsxMTA3IDExNkIgMTFBQTsKK0JEMzA7QkQzMDsxMTA3IDExNkIgMTFBQjtCRDMwOzExMDcgMTE2QiAxMUFCOworQkQzMTtCRDMxOzExMDcgMTE2QiAxMUFDO0JEMzE7MTEwNyAxMTZCIDExQUM7CitCRDMyO0JEMzI7MTEwNyAxMTZCIDExQUQ7QkQzMjsxMTA3IDExNkIgMTFBRDsKK0JEMzM7QkQzMzsxMTA3IDExNkIgMTFBRTtCRDMzOzExMDcgMTE2QiAxMUFFOworQkQzNDtCRDM0OzExMDcgMTE2QiAxMUFGO0JEMzQ7MTEwNyAxMTZCIDExQUY7CitCRDM1O0JEMzU7MTEwNyAxMTZCIDExQjA7QkQzNTsxMTA3IDExNkIgMTFCMDsKK0JEMzY7QkQzNjsxMTA3IDExNkIgMTFCMTtCRDM2OzExMDcgMTE2QiAxMUIxOworQkQzNztCRDM3OzExMDcgMTE2QiAxMUIyO0JEMzc7MTEwNyAxMTZCIDExQjI7CitCRDM4O0JEMzg7MTEwNyAxMTZCIDExQjM7QkQzODsxMTA3IDExNkIgMTFCMzsKK0JEMzk7QkQzOTsxMTA3IDExNkIgMTFCNDtCRDM5OzExMDcgMTE2QiAxMUI0OworQkQzQTtCRDNBOzExMDcgMTE2QiAxMUI1O0JEM0E7MTEwNyAxMTZCIDExQjU7CitCRDNCO0JEM0I7MTEwNyAxMTZCIDExQjY7QkQzQjsxMTA3IDExNkIgMTFCNjsKK0JEM0M7QkQzQzsxMTA3IDExNkIgMTFCNztCRDNDOzExMDcgMTE2QiAxMUI3OworQkQzRDtCRDNEOzExMDcgMTE2QiAxMUI4O0JEM0Q7MTEwNyAxMTZCIDExQjg7CitCRDNFO0JEM0U7MTEwNyAxMTZCIDExQjk7QkQzRTsxMTA3IDExNkIgMTFCOTsKK0JEM0Y7QkQzRjsxMTA3IDExNkIgMTFCQTtCRDNGOzExMDcgMTE2QiAxMUJBOworQkQ0MDtCRDQwOzExMDcgMTE2QiAxMUJCO0JENDA7MTEwNyAxMTZCIDExQkI7CitCRDQxO0JENDE7MTEwNyAxMTZCIDExQkM7QkQ0MTsxMTA3IDExNkIgMTFCQzsKK0JENDI7QkQ0MjsxMTA3IDExNkIgMTFCRDtCRDQyOzExMDcgMTE2QiAxMUJEOworQkQ0MztCRDQzOzExMDcgMTE2QiAxMUJFO0JENDM7MTEwNyAxMTZCIDExQkU7CitCRDQ0O0JENDQ7MTEwNyAxMTZCIDExQkY7QkQ0NDsxMTA3IDExNkIgMTFCRjsKK0JENDU7QkQ0NTsxMTA3IDExNkIgMTFDMDtCRDQ1OzExMDcgMTE2QiAxMUMwOworQkQ0NjtCRDQ2OzExMDcgMTE2QiAxMUMxO0JENDY7MTEwNyAxMTZCIDExQzE7CitCRDQ3O0JENDc7MTEwNyAxMTZCIDExQzI7QkQ0NzsxMTA3IDExNkIgMTFDMjsKK0JENDg7QkQ0ODsxMTA3IDExNkM7QkQ0ODsxMTA3IDExNkM7CitCRDQ5O0JENDk7MTEwNyAxMTZDIDExQTg7QkQ0OTsxMTA3IDExNkMgMTFBODsKK0JENEE7QkQ0QTsxMTA3IDExNkMgMTFBOTtCRDRBOzExMDcgMTE2QyAxMUE5OworQkQ0QjtCRDRCOzExMDcgMTE2QyAxMUFBO0JENEI7MTEwNyAxMTZDIDExQUE7CitCRDRDO0JENEM7MTEwNyAxMTZDIDExQUI7QkQ0QzsxMTA3IDExNkMgMTFBQjsKK0JENEQ7QkQ0RDsxMTA3IDExNkMgMTFBQztCRDREOzExMDcgMTE2QyAxMUFDOworQkQ0RTtCRDRFOzExMDcgMTE2QyAxMUFEO0JENEU7MTEwNyAxMTZDIDExQUQ7CitCRDRGO0JENEY7MTEwNyAxMTZDIDExQUU7QkQ0RjsxMTA3IDExNkMgMTFBRTsKK0JENTA7QkQ1MDsxMTA3IDExNkMgMTFBRjtCRDUwOzExMDcgMTE2QyAxMUFGOworQkQ1MTtCRDUxOzExMDcgMTE2QyAxMUIwO0JENTE7MTEwNyAxMTZDIDExQjA7CitCRDUyO0JENTI7MTEwNyAxMTZDIDExQjE7QkQ1MjsxMTA3IDExNkMgMTFCMTsKK0JENTM7QkQ1MzsxMTA3IDExNkMgMTFCMjtCRDUzOzExMDcgMTE2QyAxMUIyOworQkQ1NDtCRDU0OzExMDcgMTE2QyAxMUIzO0JENTQ7MTEwNyAxMTZDIDExQjM7CitCRDU1O0JENTU7MTEwNyAxMTZDIDExQjQ7QkQ1NTsxMTA3IDExNkMgMTFCNDsKK0JENTY7QkQ1NjsxMTA3IDExNkMgMTFCNTtCRDU2OzExMDcgMTE2QyAxMUI1OworQkQ1NztCRDU3OzExMDcgMTE2QyAxMUI2O0JENTc7MTEwNyAxMTZDIDExQjY7CitCRDU4O0JENTg7MTEwNyAxMTZDIDExQjc7QkQ1ODsxMTA3IDExNkMgMTFCNzsKK0JENTk7QkQ1OTsxMTA3IDExNkMgMTFCODtCRDU5OzExMDcgMTE2QyAxMUI4OworQkQ1QTtCRDVBOzExMDcgMTE2QyAxMUI5O0JENUE7MTEwNyAxMTZDIDExQjk7CitCRDVCO0JENUI7MTEwNyAxMTZDIDExQkE7QkQ1QjsxMTA3IDExNkMgMTFCQTsKK0JENUM7QkQ1QzsxMTA3IDExNkMgMTFCQjtCRDVDOzExMDcgMTE2QyAxMUJCOworQkQ1RDtCRDVEOzExMDcgMTE2QyAxMUJDO0JENUQ7MTEwNyAxMTZDIDExQkM7CitCRDVFO0JENUU7MTEwNyAxMTZDIDExQkQ7QkQ1RTsxMTA3IDExNkMgMTFCRDsKK0JENUY7QkQ1RjsxMTA3IDExNkMgMTFCRTtCRDVGOzExMDcgMTE2QyAxMUJFOworQkQ2MDtCRDYwOzExMDcgMTE2QyAxMUJGO0JENjA7MTEwNyAxMTZDIDExQkY7CitCRDYxO0JENjE7MTEwNyAxMTZDIDExQzA7QkQ2MTsxMTA3IDExNkMgMTFDMDsKK0JENjI7QkQ2MjsxMTA3IDExNkMgMTFDMTtCRDYyOzExMDcgMTE2QyAxMUMxOworQkQ2MztCRDYzOzExMDcgMTE2QyAxMUMyO0JENjM7MTEwNyAxMTZDIDExQzI7CitCRDY0O0JENjQ7MTEwNyAxMTZEO0JENjQ7MTEwNyAxMTZEOworQkQ2NTtCRDY1OzExMDcgMTE2RCAxMUE4O0JENjU7MTEwNyAxMTZEIDExQTg7CitCRDY2O0JENjY7MTEwNyAxMTZEIDExQTk7QkQ2NjsxMTA3IDExNkQgMTFBOTsKK0JENjc7QkQ2NzsxMTA3IDExNkQgMTFBQTtCRDY3OzExMDcgMTE2RCAxMUFBOworQkQ2ODtCRDY4OzExMDcgMTE2RCAxMUFCO0JENjg7MTEwNyAxMTZEIDExQUI7CitCRDY5O0JENjk7MTEwNyAxMTZEIDExQUM7QkQ2OTsxMTA3IDExNkQgMTFBQzsKK0JENkE7QkQ2QTsxMTA3IDExNkQgMTFBRDtCRDZBOzExMDcgMTE2RCAxMUFEOworQkQ2QjtCRDZCOzExMDcgMTE2RCAxMUFFO0JENkI7MTEwNyAxMTZEIDExQUU7CitCRDZDO0JENkM7MTEwNyAxMTZEIDExQUY7QkQ2QzsxMTA3IDExNkQgMTFBRjsKK0JENkQ7QkQ2RDsxMTA3IDExNkQgMTFCMDtCRDZEOzExMDcgMTE2RCAxMUIwOworQkQ2RTtCRDZFOzExMDcgMTE2RCAxMUIxO0JENkU7MTEwNyAxMTZEIDExQjE7CitCRDZGO0JENkY7MTEwNyAxMTZEIDExQjI7QkQ2RjsxMTA3IDExNkQgMTFCMjsKK0JENzA7QkQ3MDsxMTA3IDExNkQgMTFCMztCRDcwOzExMDcgMTE2RCAxMUIzOworQkQ3MTtCRDcxOzExMDcgMTE2RCAxMUI0O0JENzE7MTEwNyAxMTZEIDExQjQ7CitCRDcyO0JENzI7MTEwNyAxMTZEIDExQjU7QkQ3MjsxMTA3IDExNkQgMTFCNTsKK0JENzM7QkQ3MzsxMTA3IDExNkQgMTFCNjtCRDczOzExMDcgMTE2RCAxMUI2OworQkQ3NDtCRDc0OzExMDcgMTE2RCAxMUI3O0JENzQ7MTEwNyAxMTZEIDExQjc7CitCRDc1O0JENzU7MTEwNyAxMTZEIDExQjg7QkQ3NTsxMTA3IDExNkQgMTFCODsKK0JENzY7QkQ3NjsxMTA3IDExNkQgMTFCOTtCRDc2OzExMDcgMTE2RCAxMUI5OworQkQ3NztCRDc3OzExMDcgMTE2RCAxMUJBO0JENzc7MTEwNyAxMTZEIDExQkE7CitCRDc4O0JENzg7MTEwNyAxMTZEIDExQkI7QkQ3ODsxMTA3IDExNkQgMTFCQjsKK0JENzk7QkQ3OTsxMTA3IDExNkQgMTFCQztCRDc5OzExMDcgMTE2RCAxMUJDOworQkQ3QTtCRDdBOzExMDcgMTE2RCAxMUJEO0JEN0E7MTEwNyAxMTZEIDExQkQ7CitCRDdCO0JEN0I7MTEwNyAxMTZEIDExQkU7QkQ3QjsxMTA3IDExNkQgMTFCRTsKK0JEN0M7QkQ3QzsxMTA3IDExNkQgMTFCRjtCRDdDOzExMDcgMTE2RCAxMUJGOworQkQ3RDtCRDdEOzExMDcgMTE2RCAxMUMwO0JEN0Q7MTEwNyAxMTZEIDExQzA7CitCRDdFO0JEN0U7MTEwNyAxMTZEIDExQzE7QkQ3RTsxMTA3IDExNkQgMTFDMTsKK0JEN0Y7QkQ3RjsxMTA3IDExNkQgMTFDMjtCRDdGOzExMDcgMTE2RCAxMUMyOworQkQ4MDtCRDgwOzExMDcgMTE2RTtCRDgwOzExMDcgMTE2RTsKK0JEODE7QkQ4MTsxMTA3IDExNkUgMTFBODtCRDgxOzExMDcgMTE2RSAxMUE4OworQkQ4MjtCRDgyOzExMDcgMTE2RSAxMUE5O0JEODI7MTEwNyAxMTZFIDExQTk7CitCRDgzO0JEODM7MTEwNyAxMTZFIDExQUE7QkQ4MzsxMTA3IDExNkUgMTFBQTsKK0JEODQ7QkQ4NDsxMTA3IDExNkUgMTFBQjtCRDg0OzExMDcgMTE2RSAxMUFCOworQkQ4NTtCRDg1OzExMDcgMTE2RSAxMUFDO0JEODU7MTEwNyAxMTZFIDExQUM7CitCRDg2O0JEODY7MTEwNyAxMTZFIDExQUQ7QkQ4NjsxMTA3IDExNkUgMTFBRDsKK0JEODc7QkQ4NzsxMTA3IDExNkUgMTFBRTtCRDg3OzExMDcgMTE2RSAxMUFFOworQkQ4ODtCRDg4OzExMDcgMTE2RSAxMUFGO0JEODg7MTEwNyAxMTZFIDExQUY7CitCRDg5O0JEODk7MTEwNyAxMTZFIDExQjA7QkQ4OTsxMTA3IDExNkUgMTFCMDsKK0JEOEE7QkQ4QTsxMTA3IDExNkUgMTFCMTtCRDhBOzExMDcgMTE2RSAxMUIxOworQkQ4QjtCRDhCOzExMDcgMTE2RSAxMUIyO0JEOEI7MTEwNyAxMTZFIDExQjI7CitCRDhDO0JEOEM7MTEwNyAxMTZFIDExQjM7QkQ4QzsxMTA3IDExNkUgMTFCMzsKK0JEOEQ7QkQ4RDsxMTA3IDExNkUgMTFCNDtCRDhEOzExMDcgMTE2RSAxMUI0OworQkQ4RTtCRDhFOzExMDcgMTE2RSAxMUI1O0JEOEU7MTEwNyAxMTZFIDExQjU7CitCRDhGO0JEOEY7MTEwNyAxMTZFIDExQjY7QkQ4RjsxMTA3IDExNkUgMTFCNjsKK0JEOTA7QkQ5MDsxMTA3IDExNkUgMTFCNztCRDkwOzExMDcgMTE2RSAxMUI3OworQkQ5MTtCRDkxOzExMDcgMTE2RSAxMUI4O0JEOTE7MTEwNyAxMTZFIDExQjg7CitCRDkyO0JEOTI7MTEwNyAxMTZFIDExQjk7QkQ5MjsxMTA3IDExNkUgMTFCOTsKK0JEOTM7QkQ5MzsxMTA3IDExNkUgMTFCQTtCRDkzOzExMDcgMTE2RSAxMUJBOworQkQ5NDtCRDk0OzExMDcgMTE2RSAxMUJCO0JEOTQ7MTEwNyAxMTZFIDExQkI7CitCRDk1O0JEOTU7MTEwNyAxMTZFIDExQkM7QkQ5NTsxMTA3IDExNkUgMTFCQzsKK0JEOTY7QkQ5NjsxMTA3IDExNkUgMTFCRDtCRDk2OzExMDcgMTE2RSAxMUJEOworQkQ5NztCRDk3OzExMDcgMTE2RSAxMUJFO0JEOTc7MTEwNyAxMTZFIDExQkU7CitCRDk4O0JEOTg7MTEwNyAxMTZFIDExQkY7QkQ5ODsxMTA3IDExNkUgMTFCRjsKK0JEOTk7QkQ5OTsxMTA3IDExNkUgMTFDMDtCRDk5OzExMDcgMTE2RSAxMUMwOworQkQ5QTtCRDlBOzExMDcgMTE2RSAxMUMxO0JEOUE7MTEwNyAxMTZFIDExQzE7CitCRDlCO0JEOUI7MTEwNyAxMTZFIDExQzI7QkQ5QjsxMTA3IDExNkUgMTFDMjsKK0JEOUM7QkQ5QzsxMTA3IDExNkY7QkQ5QzsxMTA3IDExNkY7CitCRDlEO0JEOUQ7MTEwNyAxMTZGIDExQTg7QkQ5RDsxMTA3IDExNkYgMTFBODsKK0JEOUU7QkQ5RTsxMTA3IDExNkYgMTFBOTtCRDlFOzExMDcgMTE2RiAxMUE5OworQkQ5RjtCRDlGOzExMDcgMTE2RiAxMUFBO0JEOUY7MTEwNyAxMTZGIDExQUE7CitCREEwO0JEQTA7MTEwNyAxMTZGIDExQUI7QkRBMDsxMTA3IDExNkYgMTFBQjsKK0JEQTE7QkRBMTsxMTA3IDExNkYgMTFBQztCREExOzExMDcgMTE2RiAxMUFDOworQkRBMjtCREEyOzExMDcgMTE2RiAxMUFEO0JEQTI7MTEwNyAxMTZGIDExQUQ7CitCREEzO0JEQTM7MTEwNyAxMTZGIDExQUU7QkRBMzsxMTA3IDExNkYgMTFBRTsKK0JEQTQ7QkRBNDsxMTA3IDExNkYgMTFBRjtCREE0OzExMDcgMTE2RiAxMUFGOworQkRBNTtCREE1OzExMDcgMTE2RiAxMUIwO0JEQTU7MTEwNyAxMTZGIDExQjA7CitCREE2O0JEQTY7MTEwNyAxMTZGIDExQjE7QkRBNjsxMTA3IDExNkYgMTFCMTsKK0JEQTc7QkRBNzsxMTA3IDExNkYgMTFCMjtCREE3OzExMDcgMTE2RiAxMUIyOworQkRBODtCREE4OzExMDcgMTE2RiAxMUIzO0JEQTg7MTEwNyAxMTZGIDExQjM7CitCREE5O0JEQTk7MTEwNyAxMTZGIDExQjQ7QkRBOTsxMTA3IDExNkYgMTFCNDsKK0JEQUE7QkRBQTsxMTA3IDExNkYgMTFCNTtCREFBOzExMDcgMTE2RiAxMUI1OworQkRBQjtCREFCOzExMDcgMTE2RiAxMUI2O0JEQUI7MTEwNyAxMTZGIDExQjY7CitCREFDO0JEQUM7MTEwNyAxMTZGIDExQjc7QkRBQzsxMTA3IDExNkYgMTFCNzsKK0JEQUQ7QkRBRDsxMTA3IDExNkYgMTFCODtCREFEOzExMDcgMTE2RiAxMUI4OworQkRBRTtCREFFOzExMDcgMTE2RiAxMUI5O0JEQUU7MTEwNyAxMTZGIDExQjk7CitCREFGO0JEQUY7MTEwNyAxMTZGIDExQkE7QkRBRjsxMTA3IDExNkYgMTFCQTsKK0JEQjA7QkRCMDsxMTA3IDExNkYgMTFCQjtCREIwOzExMDcgMTE2RiAxMUJCOworQkRCMTtCREIxOzExMDcgMTE2RiAxMUJDO0JEQjE7MTEwNyAxMTZGIDExQkM7CitCREIyO0JEQjI7MTEwNyAxMTZGIDExQkQ7QkRCMjsxMTA3IDExNkYgMTFCRDsKK0JEQjM7QkRCMzsxMTA3IDExNkYgMTFCRTtCREIzOzExMDcgMTE2RiAxMUJFOworQkRCNDtCREI0OzExMDcgMTE2RiAxMUJGO0JEQjQ7MTEwNyAxMTZGIDExQkY7CitCREI1O0JEQjU7MTEwNyAxMTZGIDExQzA7QkRCNTsxMTA3IDExNkYgMTFDMDsKK0JEQjY7QkRCNjsxMTA3IDExNkYgMTFDMTtCREI2OzExMDcgMTE2RiAxMUMxOworQkRCNztCREI3OzExMDcgMTE2RiAxMUMyO0JEQjc7MTEwNyAxMTZGIDExQzI7CitCREI4O0JEQjg7MTEwNyAxMTcwO0JEQjg7MTEwNyAxMTcwOworQkRCOTtCREI5OzExMDcgMTE3MCAxMUE4O0JEQjk7MTEwNyAxMTcwIDExQTg7CitCREJBO0JEQkE7MTEwNyAxMTcwIDExQTk7QkRCQTsxMTA3IDExNzAgMTFBOTsKK0JEQkI7QkRCQjsxMTA3IDExNzAgMTFBQTtCREJCOzExMDcgMTE3MCAxMUFBOworQkRCQztCREJDOzExMDcgMTE3MCAxMUFCO0JEQkM7MTEwNyAxMTcwIDExQUI7CitCREJEO0JEQkQ7MTEwNyAxMTcwIDExQUM7QkRCRDsxMTA3IDExNzAgMTFBQzsKK0JEQkU7QkRCRTsxMTA3IDExNzAgMTFBRDtCREJFOzExMDcgMTE3MCAxMUFEOworQkRCRjtCREJGOzExMDcgMTE3MCAxMUFFO0JEQkY7MTEwNyAxMTcwIDExQUU7CitCREMwO0JEQzA7MTEwNyAxMTcwIDExQUY7QkRDMDsxMTA3IDExNzAgMTFBRjsKK0JEQzE7QkRDMTsxMTA3IDExNzAgMTFCMDtCREMxOzExMDcgMTE3MCAxMUIwOworQkRDMjtCREMyOzExMDcgMTE3MCAxMUIxO0JEQzI7MTEwNyAxMTcwIDExQjE7CitCREMzO0JEQzM7MTEwNyAxMTcwIDExQjI7QkRDMzsxMTA3IDExNzAgMTFCMjsKK0JEQzQ7QkRDNDsxMTA3IDExNzAgMTFCMztCREM0OzExMDcgMTE3MCAxMUIzOworQkRDNTtCREM1OzExMDcgMTE3MCAxMUI0O0JEQzU7MTEwNyAxMTcwIDExQjQ7CitCREM2O0JEQzY7MTEwNyAxMTcwIDExQjU7QkRDNjsxMTA3IDExNzAgMTFCNTsKK0JEQzc7QkRDNzsxMTA3IDExNzAgMTFCNjtCREM3OzExMDcgMTE3MCAxMUI2OworQkRDODtCREM4OzExMDcgMTE3MCAxMUI3O0JEQzg7MTEwNyAxMTcwIDExQjc7CitCREM5O0JEQzk7MTEwNyAxMTcwIDExQjg7QkRDOTsxMTA3IDExNzAgMTFCODsKK0JEQ0E7QkRDQTsxMTA3IDExNzAgMTFCOTtCRENBOzExMDcgMTE3MCAxMUI5OworQkRDQjtCRENCOzExMDcgMTE3MCAxMUJBO0JEQ0I7MTEwNyAxMTcwIDExQkE7CitCRENDO0JEQ0M7MTEwNyAxMTcwIDExQkI7QkRDQzsxMTA3IDExNzAgMTFCQjsKK0JEQ0Q7QkRDRDsxMTA3IDExNzAgMTFCQztCRENEOzExMDcgMTE3MCAxMUJDOworQkRDRTtCRENFOzExMDcgMTE3MCAxMUJEO0JEQ0U7MTEwNyAxMTcwIDExQkQ7CitCRENGO0JEQ0Y7MTEwNyAxMTcwIDExQkU7QkRDRjsxMTA3IDExNzAgMTFCRTsKK0JERDA7QkREMDsxMTA3IDExNzAgMTFCRjtCREQwOzExMDcgMTE3MCAxMUJGOworQkREMTtCREQxOzExMDcgMTE3MCAxMUMwO0JERDE7MTEwNyAxMTcwIDExQzA7CitCREQyO0JERDI7MTEwNyAxMTcwIDExQzE7QkREMjsxMTA3IDExNzAgMTFDMTsKK0JERDM7QkREMzsxMTA3IDExNzAgMTFDMjtCREQzOzExMDcgMTE3MCAxMUMyOworQkRENDtCREQ0OzExMDcgMTE3MTtCREQ0OzExMDcgMTE3MTsKK0JERDU7QkRENTsxMTA3IDExNzEgMTFBODtCREQ1OzExMDcgMTE3MSAxMUE4OworQkRENjtCREQ2OzExMDcgMTE3MSAxMUE5O0JERDY7MTEwNyAxMTcxIDExQTk7CitCREQ3O0JERDc7MTEwNyAxMTcxIDExQUE7QkRENzsxMTA3IDExNzEgMTFBQTsKK0JERDg7QkREODsxMTA3IDExNzEgMTFBQjtCREQ4OzExMDcgMTE3MSAxMUFCOworQkREOTtCREQ5OzExMDcgMTE3MSAxMUFDO0JERDk7MTEwNyAxMTcxIDExQUM7CitCRERBO0JEREE7MTEwNyAxMTcxIDExQUQ7QkREQTsxMTA3IDExNzEgMTFBRDsKK0JEREI7QkREQjsxMTA3IDExNzEgMTFBRTtCRERCOzExMDcgMTE3MSAxMUFFOworQkREQztCRERDOzExMDcgMTE3MSAxMUFGO0JEREM7MTEwNyAxMTcxIDExQUY7CitCREREO0JEREQ7MTEwNyAxMTcxIDExQjA7QkRERDsxMTA3IDExNzEgMTFCMDsKK0JEREU7QkRERTsxMTA3IDExNzEgMTFCMTtCRERFOzExMDcgMTE3MSAxMUIxOworQkRERjtCRERGOzExMDcgMTE3MSAxMUIyO0JEREY7MTEwNyAxMTcxIDExQjI7CitCREUwO0JERTA7MTEwNyAxMTcxIDExQjM7QkRFMDsxMTA3IDExNzEgMTFCMzsKK0JERTE7QkRFMTsxMTA3IDExNzEgMTFCNDtCREUxOzExMDcgMTE3MSAxMUI0OworQkRFMjtCREUyOzExMDcgMTE3MSAxMUI1O0JERTI7MTEwNyAxMTcxIDExQjU7CitCREUzO0JERTM7MTEwNyAxMTcxIDExQjY7QkRFMzsxMTA3IDExNzEgMTFCNjsKK0JERTQ7QkRFNDsxMTA3IDExNzEgMTFCNztCREU0OzExMDcgMTE3MSAxMUI3OworQkRFNTtCREU1OzExMDcgMTE3MSAxMUI4O0JERTU7MTEwNyAxMTcxIDExQjg7CitCREU2O0JERTY7MTEwNyAxMTcxIDExQjk7QkRFNjsxMTA3IDExNzEgMTFCOTsKK0JERTc7QkRFNzsxMTA3IDExNzEgMTFCQTtCREU3OzExMDcgMTE3MSAxMUJBOworQkRFODtCREU4OzExMDcgMTE3MSAxMUJCO0JERTg7MTEwNyAxMTcxIDExQkI7CitCREU5O0JERTk7MTEwNyAxMTcxIDExQkM7QkRFOTsxMTA3IDExNzEgMTFCQzsKK0JERUE7QkRFQTsxMTA3IDExNzEgMTFCRDtCREVBOzExMDcgMTE3MSAxMUJEOworQkRFQjtCREVCOzExMDcgMTE3MSAxMUJFO0JERUI7MTEwNyAxMTcxIDExQkU7CitCREVDO0JERUM7MTEwNyAxMTcxIDExQkY7QkRFQzsxMTA3IDExNzEgMTFCRjsKK0JERUQ7QkRFRDsxMTA3IDExNzEgMTFDMDtCREVEOzExMDcgMTE3MSAxMUMwOworQkRFRTtCREVFOzExMDcgMTE3MSAxMUMxO0JERUU7MTEwNyAxMTcxIDExQzE7CitCREVGO0JERUY7MTEwNyAxMTcxIDExQzI7QkRFRjsxMTA3IDExNzEgMTFDMjsKK0JERjA7QkRGMDsxMTA3IDExNzI7QkRGMDsxMTA3IDExNzI7CitCREYxO0JERjE7MTEwNyAxMTcyIDExQTg7QkRGMTsxMTA3IDExNzIgMTFBODsKK0JERjI7QkRGMjsxMTA3IDExNzIgMTFBOTtCREYyOzExMDcgMTE3MiAxMUE5OworQkRGMztCREYzOzExMDcgMTE3MiAxMUFBO0JERjM7MTEwNyAxMTcyIDExQUE7CitCREY0O0JERjQ7MTEwNyAxMTcyIDExQUI7QkRGNDsxMTA3IDExNzIgMTFBQjsKK0JERjU7QkRGNTsxMTA3IDExNzIgMTFBQztCREY1OzExMDcgMTE3MiAxMUFDOworQkRGNjtCREY2OzExMDcgMTE3MiAxMUFEO0JERjY7MTEwNyAxMTcyIDExQUQ7CitCREY3O0JERjc7MTEwNyAxMTcyIDExQUU7QkRGNzsxMTA3IDExNzIgMTFBRTsKK0JERjg7QkRGODsxMTA3IDExNzIgMTFBRjtCREY4OzExMDcgMTE3MiAxMUFGOworQkRGOTtCREY5OzExMDcgMTE3MiAxMUIwO0JERjk7MTEwNyAxMTcyIDExQjA7CitCREZBO0JERkE7MTEwNyAxMTcyIDExQjE7QkRGQTsxMTA3IDExNzIgMTFCMTsKK0JERkI7QkRGQjsxMTA3IDExNzIgMTFCMjtCREZCOzExMDcgMTE3MiAxMUIyOworQkRGQztCREZDOzExMDcgMTE3MiAxMUIzO0JERkM7MTEwNyAxMTcyIDExQjM7CitCREZEO0JERkQ7MTEwNyAxMTcyIDExQjQ7QkRGRDsxMTA3IDExNzIgMTFCNDsKK0JERkU7QkRGRTsxMTA3IDExNzIgMTFCNTtCREZFOzExMDcgMTE3MiAxMUI1OworQkRGRjtCREZGOzExMDcgMTE3MiAxMUI2O0JERkY7MTEwNyAxMTcyIDExQjY7CitCRTAwO0JFMDA7MTEwNyAxMTcyIDExQjc7QkUwMDsxMTA3IDExNzIgMTFCNzsKK0JFMDE7QkUwMTsxMTA3IDExNzIgMTFCODtCRTAxOzExMDcgMTE3MiAxMUI4OworQkUwMjtCRTAyOzExMDcgMTE3MiAxMUI5O0JFMDI7MTEwNyAxMTcyIDExQjk7CitCRTAzO0JFMDM7MTEwNyAxMTcyIDExQkE7QkUwMzsxMTA3IDExNzIgMTFCQTsKK0JFMDQ7QkUwNDsxMTA3IDExNzIgMTFCQjtCRTA0OzExMDcgMTE3MiAxMUJCOworQkUwNTtCRTA1OzExMDcgMTE3MiAxMUJDO0JFMDU7MTEwNyAxMTcyIDExQkM7CitCRTA2O0JFMDY7MTEwNyAxMTcyIDExQkQ7QkUwNjsxMTA3IDExNzIgMTFCRDsKK0JFMDc7QkUwNzsxMTA3IDExNzIgMTFCRTtCRTA3OzExMDcgMTE3MiAxMUJFOworQkUwODtCRTA4OzExMDcgMTE3MiAxMUJGO0JFMDg7MTEwNyAxMTcyIDExQkY7CitCRTA5O0JFMDk7MTEwNyAxMTcyIDExQzA7QkUwOTsxMTA3IDExNzIgMTFDMDsKK0JFMEE7QkUwQTsxMTA3IDExNzIgMTFDMTtCRTBBOzExMDcgMTE3MiAxMUMxOworQkUwQjtCRTBCOzExMDcgMTE3MiAxMUMyO0JFMEI7MTEwNyAxMTcyIDExQzI7CitCRTBDO0JFMEM7MTEwNyAxMTczO0JFMEM7MTEwNyAxMTczOworQkUwRDtCRTBEOzExMDcgMTE3MyAxMUE4O0JFMEQ7MTEwNyAxMTczIDExQTg7CitCRTBFO0JFMEU7MTEwNyAxMTczIDExQTk7QkUwRTsxMTA3IDExNzMgMTFBOTsKK0JFMEY7QkUwRjsxMTA3IDExNzMgMTFBQTtCRTBGOzExMDcgMTE3MyAxMUFBOworQkUxMDtCRTEwOzExMDcgMTE3MyAxMUFCO0JFMTA7MTEwNyAxMTczIDExQUI7CitCRTExO0JFMTE7MTEwNyAxMTczIDExQUM7QkUxMTsxMTA3IDExNzMgMTFBQzsKK0JFMTI7QkUxMjsxMTA3IDExNzMgMTFBRDtCRTEyOzExMDcgMTE3MyAxMUFEOworQkUxMztCRTEzOzExMDcgMTE3MyAxMUFFO0JFMTM7MTEwNyAxMTczIDExQUU7CitCRTE0O0JFMTQ7MTEwNyAxMTczIDExQUY7QkUxNDsxMTA3IDExNzMgMTFBRjsKK0JFMTU7QkUxNTsxMTA3IDExNzMgMTFCMDtCRTE1OzExMDcgMTE3MyAxMUIwOworQkUxNjtCRTE2OzExMDcgMTE3MyAxMUIxO0JFMTY7MTEwNyAxMTczIDExQjE7CitCRTE3O0JFMTc7MTEwNyAxMTczIDExQjI7QkUxNzsxMTA3IDExNzMgMTFCMjsKK0JFMTg7QkUxODsxMTA3IDExNzMgMTFCMztCRTE4OzExMDcgMTE3MyAxMUIzOworQkUxOTtCRTE5OzExMDcgMTE3MyAxMUI0O0JFMTk7MTEwNyAxMTczIDExQjQ7CitCRTFBO0JFMUE7MTEwNyAxMTczIDExQjU7QkUxQTsxMTA3IDExNzMgMTFCNTsKK0JFMUI7QkUxQjsxMTA3IDExNzMgMTFCNjtCRTFCOzExMDcgMTE3MyAxMUI2OworQkUxQztCRTFDOzExMDcgMTE3MyAxMUI3O0JFMUM7MTEwNyAxMTczIDExQjc7CitCRTFEO0JFMUQ7MTEwNyAxMTczIDExQjg7QkUxRDsxMTA3IDExNzMgMTFCODsKK0JFMUU7QkUxRTsxMTA3IDExNzMgMTFCOTtCRTFFOzExMDcgMTE3MyAxMUI5OworQkUxRjtCRTFGOzExMDcgMTE3MyAxMUJBO0JFMUY7MTEwNyAxMTczIDExQkE7CitCRTIwO0JFMjA7MTEwNyAxMTczIDExQkI7QkUyMDsxMTA3IDExNzMgMTFCQjsKK0JFMjE7QkUyMTsxMTA3IDExNzMgMTFCQztCRTIxOzExMDcgMTE3MyAxMUJDOworQkUyMjtCRTIyOzExMDcgMTE3MyAxMUJEO0JFMjI7MTEwNyAxMTczIDExQkQ7CitCRTIzO0JFMjM7MTEwNyAxMTczIDExQkU7QkUyMzsxMTA3IDExNzMgMTFCRTsKK0JFMjQ7QkUyNDsxMTA3IDExNzMgMTFCRjtCRTI0OzExMDcgMTE3MyAxMUJGOworQkUyNTtCRTI1OzExMDcgMTE3MyAxMUMwO0JFMjU7MTEwNyAxMTczIDExQzA7CitCRTI2O0JFMjY7MTEwNyAxMTczIDExQzE7QkUyNjsxMTA3IDExNzMgMTFDMTsKK0JFMjc7QkUyNzsxMTA3IDExNzMgMTFDMjtCRTI3OzExMDcgMTE3MyAxMUMyOworQkUyODtCRTI4OzExMDcgMTE3NDtCRTI4OzExMDcgMTE3NDsKK0JFMjk7QkUyOTsxMTA3IDExNzQgMTFBODtCRTI5OzExMDcgMTE3NCAxMUE4OworQkUyQTtCRTJBOzExMDcgMTE3NCAxMUE5O0JFMkE7MTEwNyAxMTc0IDExQTk7CitCRTJCO0JFMkI7MTEwNyAxMTc0IDExQUE7QkUyQjsxMTA3IDExNzQgMTFBQTsKK0JFMkM7QkUyQzsxMTA3IDExNzQgMTFBQjtCRTJDOzExMDcgMTE3NCAxMUFCOworQkUyRDtCRTJEOzExMDcgMTE3NCAxMUFDO0JFMkQ7MTEwNyAxMTc0IDExQUM7CitCRTJFO0JFMkU7MTEwNyAxMTc0IDExQUQ7QkUyRTsxMTA3IDExNzQgMTFBRDsKK0JFMkY7QkUyRjsxMTA3IDExNzQgMTFBRTtCRTJGOzExMDcgMTE3NCAxMUFFOworQkUzMDtCRTMwOzExMDcgMTE3NCAxMUFGO0JFMzA7MTEwNyAxMTc0IDExQUY7CitCRTMxO0JFMzE7MTEwNyAxMTc0IDExQjA7QkUzMTsxMTA3IDExNzQgMTFCMDsKK0JFMzI7QkUzMjsxMTA3IDExNzQgMTFCMTtCRTMyOzExMDcgMTE3NCAxMUIxOworQkUzMztCRTMzOzExMDcgMTE3NCAxMUIyO0JFMzM7MTEwNyAxMTc0IDExQjI7CitCRTM0O0JFMzQ7MTEwNyAxMTc0IDExQjM7QkUzNDsxMTA3IDExNzQgMTFCMzsKK0JFMzU7QkUzNTsxMTA3IDExNzQgMTFCNDtCRTM1OzExMDcgMTE3NCAxMUI0OworQkUzNjtCRTM2OzExMDcgMTE3NCAxMUI1O0JFMzY7MTEwNyAxMTc0IDExQjU7CitCRTM3O0JFMzc7MTEwNyAxMTc0IDExQjY7QkUzNzsxMTA3IDExNzQgMTFCNjsKK0JFMzg7QkUzODsxMTA3IDExNzQgMTFCNztCRTM4OzExMDcgMTE3NCAxMUI3OworQkUzOTtCRTM5OzExMDcgMTE3NCAxMUI4O0JFMzk7MTEwNyAxMTc0IDExQjg7CitCRTNBO0JFM0E7MTEwNyAxMTc0IDExQjk7QkUzQTsxMTA3IDExNzQgMTFCOTsKK0JFM0I7QkUzQjsxMTA3IDExNzQgMTFCQTtCRTNCOzExMDcgMTE3NCAxMUJBOworQkUzQztCRTNDOzExMDcgMTE3NCAxMUJCO0JFM0M7MTEwNyAxMTc0IDExQkI7CitCRTNEO0JFM0Q7MTEwNyAxMTc0IDExQkM7QkUzRDsxMTA3IDExNzQgMTFCQzsKK0JFM0U7QkUzRTsxMTA3IDExNzQgMTFCRDtCRTNFOzExMDcgMTE3NCAxMUJEOworQkUzRjtCRTNGOzExMDcgMTE3NCAxMUJFO0JFM0Y7MTEwNyAxMTc0IDExQkU7CitCRTQwO0JFNDA7MTEwNyAxMTc0IDExQkY7QkU0MDsxMTA3IDExNzQgMTFCRjsKK0JFNDE7QkU0MTsxMTA3IDExNzQgMTFDMDtCRTQxOzExMDcgMTE3NCAxMUMwOworQkU0MjtCRTQyOzExMDcgMTE3NCAxMUMxO0JFNDI7MTEwNyAxMTc0IDExQzE7CitCRTQzO0JFNDM7MTEwNyAxMTc0IDExQzI7QkU0MzsxMTA3IDExNzQgMTFDMjsKK0JFNDQ7QkU0NDsxMTA3IDExNzU7QkU0NDsxMTA3IDExNzU7CitCRTQ1O0JFNDU7MTEwNyAxMTc1IDExQTg7QkU0NTsxMTA3IDExNzUgMTFBODsKK0JFNDY7QkU0NjsxMTA3IDExNzUgMTFBOTtCRTQ2OzExMDcgMTE3NSAxMUE5OworQkU0NztCRTQ3OzExMDcgMTE3NSAxMUFBO0JFNDc7MTEwNyAxMTc1IDExQUE7CitCRTQ4O0JFNDg7MTEwNyAxMTc1IDExQUI7QkU0ODsxMTA3IDExNzUgMTFBQjsKK0JFNDk7QkU0OTsxMTA3IDExNzUgMTFBQztCRTQ5OzExMDcgMTE3NSAxMUFDOworQkU0QTtCRTRBOzExMDcgMTE3NSAxMUFEO0JFNEE7MTEwNyAxMTc1IDExQUQ7CitCRTRCO0JFNEI7MTEwNyAxMTc1IDExQUU7QkU0QjsxMTA3IDExNzUgMTFBRTsKK0JFNEM7QkU0QzsxMTA3IDExNzUgMTFBRjtCRTRDOzExMDcgMTE3NSAxMUFGOworQkU0RDtCRTREOzExMDcgMTE3NSAxMUIwO0JFNEQ7MTEwNyAxMTc1IDExQjA7CitCRTRFO0JFNEU7MTEwNyAxMTc1IDExQjE7QkU0RTsxMTA3IDExNzUgMTFCMTsKK0JFNEY7QkU0RjsxMTA3IDExNzUgMTFCMjtCRTRGOzExMDcgMTE3NSAxMUIyOworQkU1MDtCRTUwOzExMDcgMTE3NSAxMUIzO0JFNTA7MTEwNyAxMTc1IDExQjM7CitCRTUxO0JFNTE7MTEwNyAxMTc1IDExQjQ7QkU1MTsxMTA3IDExNzUgMTFCNDsKK0JFNTI7QkU1MjsxMTA3IDExNzUgMTFCNTtCRTUyOzExMDcgMTE3NSAxMUI1OworQkU1MztCRTUzOzExMDcgMTE3NSAxMUI2O0JFNTM7MTEwNyAxMTc1IDExQjY7CitCRTU0O0JFNTQ7MTEwNyAxMTc1IDExQjc7QkU1NDsxMTA3IDExNzUgMTFCNzsKK0JFNTU7QkU1NTsxMTA3IDExNzUgMTFCODtCRTU1OzExMDcgMTE3NSAxMUI4OworQkU1NjtCRTU2OzExMDcgMTE3NSAxMUI5O0JFNTY7MTEwNyAxMTc1IDExQjk7CitCRTU3O0JFNTc7MTEwNyAxMTc1IDExQkE7QkU1NzsxMTA3IDExNzUgMTFCQTsKK0JFNTg7QkU1ODsxMTA3IDExNzUgMTFCQjtCRTU4OzExMDcgMTE3NSAxMUJCOworQkU1OTtCRTU5OzExMDcgMTE3NSAxMUJDO0JFNTk7MTEwNyAxMTc1IDExQkM7CitCRTVBO0JFNUE7MTEwNyAxMTc1IDExQkQ7QkU1QTsxMTA3IDExNzUgMTFCRDsKK0JFNUI7QkU1QjsxMTA3IDExNzUgMTFCRTtCRTVCOzExMDcgMTE3NSAxMUJFOworQkU1QztCRTVDOzExMDcgMTE3NSAxMUJGO0JFNUM7MTEwNyAxMTc1IDExQkY7CitCRTVEO0JFNUQ7MTEwNyAxMTc1IDExQzA7QkU1RDsxMTA3IDExNzUgMTFDMDsKK0JFNUU7QkU1RTsxMTA3IDExNzUgMTFDMTtCRTVFOzExMDcgMTE3NSAxMUMxOworQkU1RjtCRTVGOzExMDcgMTE3NSAxMUMyO0JFNUY7MTEwNyAxMTc1IDExQzI7CitCRTYwO0JFNjA7MTEwOCAxMTYxO0JFNjA7MTEwOCAxMTYxOworQkU2MTtCRTYxOzExMDggMTE2MSAxMUE4O0JFNjE7MTEwOCAxMTYxIDExQTg7CitCRTYyO0JFNjI7MTEwOCAxMTYxIDExQTk7QkU2MjsxMTA4IDExNjEgMTFBOTsKK0JFNjM7QkU2MzsxMTA4IDExNjEgMTFBQTtCRTYzOzExMDggMTE2MSAxMUFBOworQkU2NDtCRTY0OzExMDggMTE2MSAxMUFCO0JFNjQ7MTEwOCAxMTYxIDExQUI7CitCRTY1O0JFNjU7MTEwOCAxMTYxIDExQUM7QkU2NTsxMTA4IDExNjEgMTFBQzsKK0JFNjY7QkU2NjsxMTA4IDExNjEgMTFBRDtCRTY2OzExMDggMTE2MSAxMUFEOworQkU2NztCRTY3OzExMDggMTE2MSAxMUFFO0JFNjc7MTEwOCAxMTYxIDExQUU7CitCRTY4O0JFNjg7MTEwOCAxMTYxIDExQUY7QkU2ODsxMTA4IDExNjEgMTFBRjsKK0JFNjk7QkU2OTsxMTA4IDExNjEgMTFCMDtCRTY5OzExMDggMTE2MSAxMUIwOworQkU2QTtCRTZBOzExMDggMTE2MSAxMUIxO0JFNkE7MTEwOCAxMTYxIDExQjE7CitCRTZCO0JFNkI7MTEwOCAxMTYxIDExQjI7QkU2QjsxMTA4IDExNjEgMTFCMjsKK0JFNkM7QkU2QzsxMTA4IDExNjEgMTFCMztCRTZDOzExMDggMTE2MSAxMUIzOworQkU2RDtCRTZEOzExMDggMTE2MSAxMUI0O0JFNkQ7MTEwOCAxMTYxIDExQjQ7CitCRTZFO0JFNkU7MTEwOCAxMTYxIDExQjU7QkU2RTsxMTA4IDExNjEgMTFCNTsKK0JFNkY7QkU2RjsxMTA4IDExNjEgMTFCNjtCRTZGOzExMDggMTE2MSAxMUI2OworQkU3MDtCRTcwOzExMDggMTE2MSAxMUI3O0JFNzA7MTEwOCAxMTYxIDExQjc7CitCRTcxO0JFNzE7MTEwOCAxMTYxIDExQjg7QkU3MTsxMTA4IDExNjEgMTFCODsKK0JFNzI7QkU3MjsxMTA4IDExNjEgMTFCOTtCRTcyOzExMDggMTE2MSAxMUI5OworQkU3MztCRTczOzExMDggMTE2MSAxMUJBO0JFNzM7MTEwOCAxMTYxIDExQkE7CitCRTc0O0JFNzQ7MTEwOCAxMTYxIDExQkI7QkU3NDsxMTA4IDExNjEgMTFCQjsKK0JFNzU7QkU3NTsxMTA4IDExNjEgMTFCQztCRTc1OzExMDggMTE2MSAxMUJDOworQkU3NjtCRTc2OzExMDggMTE2MSAxMUJEO0JFNzY7MTEwOCAxMTYxIDExQkQ7CitCRTc3O0JFNzc7MTEwOCAxMTYxIDExQkU7QkU3NzsxMTA4IDExNjEgMTFCRTsKK0JFNzg7QkU3ODsxMTA4IDExNjEgMTFCRjtCRTc4OzExMDggMTE2MSAxMUJGOworQkU3OTtCRTc5OzExMDggMTE2MSAxMUMwO0JFNzk7MTEwOCAxMTYxIDExQzA7CitCRTdBO0JFN0E7MTEwOCAxMTYxIDExQzE7QkU3QTsxMTA4IDExNjEgMTFDMTsKK0JFN0I7QkU3QjsxMTA4IDExNjEgMTFDMjtCRTdCOzExMDggMTE2MSAxMUMyOworQkU3QztCRTdDOzExMDggMTE2MjtCRTdDOzExMDggMTE2MjsKK0JFN0Q7QkU3RDsxMTA4IDExNjIgMTFBODtCRTdEOzExMDggMTE2MiAxMUE4OworQkU3RTtCRTdFOzExMDggMTE2MiAxMUE5O0JFN0U7MTEwOCAxMTYyIDExQTk7CitCRTdGO0JFN0Y7MTEwOCAxMTYyIDExQUE7QkU3RjsxMTA4IDExNjIgMTFBQTsKK0JFODA7QkU4MDsxMTA4IDExNjIgMTFBQjtCRTgwOzExMDggMTE2MiAxMUFCOworQkU4MTtCRTgxOzExMDggMTE2MiAxMUFDO0JFODE7MTEwOCAxMTYyIDExQUM7CitCRTgyO0JFODI7MTEwOCAxMTYyIDExQUQ7QkU4MjsxMTA4IDExNjIgMTFBRDsKK0JFODM7QkU4MzsxMTA4IDExNjIgMTFBRTtCRTgzOzExMDggMTE2MiAxMUFFOworQkU4NDtCRTg0OzExMDggMTE2MiAxMUFGO0JFODQ7MTEwOCAxMTYyIDExQUY7CitCRTg1O0JFODU7MTEwOCAxMTYyIDExQjA7QkU4NTsxMTA4IDExNjIgMTFCMDsKK0JFODY7QkU4NjsxMTA4IDExNjIgMTFCMTtCRTg2OzExMDggMTE2MiAxMUIxOworQkU4NztCRTg3OzExMDggMTE2MiAxMUIyO0JFODc7MTEwOCAxMTYyIDExQjI7CitCRTg4O0JFODg7MTEwOCAxMTYyIDExQjM7QkU4ODsxMTA4IDExNjIgMTFCMzsKK0JFODk7QkU4OTsxMTA4IDExNjIgMTFCNDtCRTg5OzExMDggMTE2MiAxMUI0OworQkU4QTtCRThBOzExMDggMTE2MiAxMUI1O0JFOEE7MTEwOCAxMTYyIDExQjU7CitCRThCO0JFOEI7MTEwOCAxMTYyIDExQjY7QkU4QjsxMTA4IDExNjIgMTFCNjsKK0JFOEM7QkU4QzsxMTA4IDExNjIgMTFCNztCRThDOzExMDggMTE2MiAxMUI3OworQkU4RDtCRThEOzExMDggMTE2MiAxMUI4O0JFOEQ7MTEwOCAxMTYyIDExQjg7CitCRThFO0JFOEU7MTEwOCAxMTYyIDExQjk7QkU4RTsxMTA4IDExNjIgMTFCOTsKK0JFOEY7QkU4RjsxMTA4IDExNjIgMTFCQTtCRThGOzExMDggMTE2MiAxMUJBOworQkU5MDtCRTkwOzExMDggMTE2MiAxMUJCO0JFOTA7MTEwOCAxMTYyIDExQkI7CitCRTkxO0JFOTE7MTEwOCAxMTYyIDExQkM7QkU5MTsxMTA4IDExNjIgMTFCQzsKK0JFOTI7QkU5MjsxMTA4IDExNjIgMTFCRDtCRTkyOzExMDggMTE2MiAxMUJEOworQkU5MztCRTkzOzExMDggMTE2MiAxMUJFO0JFOTM7MTEwOCAxMTYyIDExQkU7CitCRTk0O0JFOTQ7MTEwOCAxMTYyIDExQkY7QkU5NDsxMTA4IDExNjIgMTFCRjsKK0JFOTU7QkU5NTsxMTA4IDExNjIgMTFDMDtCRTk1OzExMDggMTE2MiAxMUMwOworQkU5NjtCRTk2OzExMDggMTE2MiAxMUMxO0JFOTY7MTEwOCAxMTYyIDExQzE7CitCRTk3O0JFOTc7MTEwOCAxMTYyIDExQzI7QkU5NzsxMTA4IDExNjIgMTFDMjsKK0JFOTg7QkU5ODsxMTA4IDExNjM7QkU5ODsxMTA4IDExNjM7CitCRTk5O0JFOTk7MTEwOCAxMTYzIDExQTg7QkU5OTsxMTA4IDExNjMgMTFBODsKK0JFOUE7QkU5QTsxMTA4IDExNjMgMTFBOTtCRTlBOzExMDggMTE2MyAxMUE5OworQkU5QjtCRTlCOzExMDggMTE2MyAxMUFBO0JFOUI7MTEwOCAxMTYzIDExQUE7CitCRTlDO0JFOUM7MTEwOCAxMTYzIDExQUI7QkU5QzsxMTA4IDExNjMgMTFBQjsKK0JFOUQ7QkU5RDsxMTA4IDExNjMgMTFBQztCRTlEOzExMDggMTE2MyAxMUFDOworQkU5RTtCRTlFOzExMDggMTE2MyAxMUFEO0JFOUU7MTEwOCAxMTYzIDExQUQ7CitCRTlGO0JFOUY7MTEwOCAxMTYzIDExQUU7QkU5RjsxMTA4IDExNjMgMTFBRTsKK0JFQTA7QkVBMDsxMTA4IDExNjMgMTFBRjtCRUEwOzExMDggMTE2MyAxMUFGOworQkVBMTtCRUExOzExMDggMTE2MyAxMUIwO0JFQTE7MTEwOCAxMTYzIDExQjA7CitCRUEyO0JFQTI7MTEwOCAxMTYzIDExQjE7QkVBMjsxMTA4IDExNjMgMTFCMTsKK0JFQTM7QkVBMzsxMTA4IDExNjMgMTFCMjtCRUEzOzExMDggMTE2MyAxMUIyOworQkVBNDtCRUE0OzExMDggMTE2MyAxMUIzO0JFQTQ7MTEwOCAxMTYzIDExQjM7CitCRUE1O0JFQTU7MTEwOCAxMTYzIDExQjQ7QkVBNTsxMTA4IDExNjMgMTFCNDsKK0JFQTY7QkVBNjsxMTA4IDExNjMgMTFCNTtCRUE2OzExMDggMTE2MyAxMUI1OworQkVBNztCRUE3OzExMDggMTE2MyAxMUI2O0JFQTc7MTEwOCAxMTYzIDExQjY7CitCRUE4O0JFQTg7MTEwOCAxMTYzIDExQjc7QkVBODsxMTA4IDExNjMgMTFCNzsKK0JFQTk7QkVBOTsxMTA4IDExNjMgMTFCODtCRUE5OzExMDggMTE2MyAxMUI4OworQkVBQTtCRUFBOzExMDggMTE2MyAxMUI5O0JFQUE7MTEwOCAxMTYzIDExQjk7CitCRUFCO0JFQUI7MTEwOCAxMTYzIDExQkE7QkVBQjsxMTA4IDExNjMgMTFCQTsKK0JFQUM7QkVBQzsxMTA4IDExNjMgMTFCQjtCRUFDOzExMDggMTE2MyAxMUJCOworQkVBRDtCRUFEOzExMDggMTE2MyAxMUJDO0JFQUQ7MTEwOCAxMTYzIDExQkM7CitCRUFFO0JFQUU7MTEwOCAxMTYzIDExQkQ7QkVBRTsxMTA4IDExNjMgMTFCRDsKK0JFQUY7QkVBRjsxMTA4IDExNjMgMTFCRTtCRUFGOzExMDggMTE2MyAxMUJFOworQkVCMDtCRUIwOzExMDggMTE2MyAxMUJGO0JFQjA7MTEwOCAxMTYzIDExQkY7CitCRUIxO0JFQjE7MTEwOCAxMTYzIDExQzA7QkVCMTsxMTA4IDExNjMgMTFDMDsKK0JFQjI7QkVCMjsxMTA4IDExNjMgMTFDMTtCRUIyOzExMDggMTE2MyAxMUMxOworQkVCMztCRUIzOzExMDggMTE2MyAxMUMyO0JFQjM7MTEwOCAxMTYzIDExQzI7CitCRUI0O0JFQjQ7MTEwOCAxMTY0O0JFQjQ7MTEwOCAxMTY0OworQkVCNTtCRUI1OzExMDggMTE2NCAxMUE4O0JFQjU7MTEwOCAxMTY0IDExQTg7CitCRUI2O0JFQjY7MTEwOCAxMTY0IDExQTk7QkVCNjsxMTA4IDExNjQgMTFBOTsKK0JFQjc7QkVCNzsxMTA4IDExNjQgMTFBQTtCRUI3OzExMDggMTE2NCAxMUFBOworQkVCODtCRUI4OzExMDggMTE2NCAxMUFCO0JFQjg7MTEwOCAxMTY0IDExQUI7CitCRUI5O0JFQjk7MTEwOCAxMTY0IDExQUM7QkVCOTsxMTA4IDExNjQgMTFBQzsKK0JFQkE7QkVCQTsxMTA4IDExNjQgMTFBRDtCRUJBOzExMDggMTE2NCAxMUFEOworQkVCQjtCRUJCOzExMDggMTE2NCAxMUFFO0JFQkI7MTEwOCAxMTY0IDExQUU7CitCRUJDO0JFQkM7MTEwOCAxMTY0IDExQUY7QkVCQzsxMTA4IDExNjQgMTFBRjsKK0JFQkQ7QkVCRDsxMTA4IDExNjQgMTFCMDtCRUJEOzExMDggMTE2NCAxMUIwOworQkVCRTtCRUJFOzExMDggMTE2NCAxMUIxO0JFQkU7MTEwOCAxMTY0IDExQjE7CitCRUJGO0JFQkY7MTEwOCAxMTY0IDExQjI7QkVCRjsxMTA4IDExNjQgMTFCMjsKK0JFQzA7QkVDMDsxMTA4IDExNjQgMTFCMztCRUMwOzExMDggMTE2NCAxMUIzOworQkVDMTtCRUMxOzExMDggMTE2NCAxMUI0O0JFQzE7MTEwOCAxMTY0IDExQjQ7CitCRUMyO0JFQzI7MTEwOCAxMTY0IDExQjU7QkVDMjsxMTA4IDExNjQgMTFCNTsKK0JFQzM7QkVDMzsxMTA4IDExNjQgMTFCNjtCRUMzOzExMDggMTE2NCAxMUI2OworQkVDNDtCRUM0OzExMDggMTE2NCAxMUI3O0JFQzQ7MTEwOCAxMTY0IDExQjc7CitCRUM1O0JFQzU7MTEwOCAxMTY0IDExQjg7QkVDNTsxMTA4IDExNjQgMTFCODsKK0JFQzY7QkVDNjsxMTA4IDExNjQgMTFCOTtCRUM2OzExMDggMTE2NCAxMUI5OworQkVDNztCRUM3OzExMDggMTE2NCAxMUJBO0JFQzc7MTEwOCAxMTY0IDExQkE7CitCRUM4O0JFQzg7MTEwOCAxMTY0IDExQkI7QkVDODsxMTA4IDExNjQgMTFCQjsKK0JFQzk7QkVDOTsxMTA4IDExNjQgMTFCQztCRUM5OzExMDggMTE2NCAxMUJDOworQkVDQTtCRUNBOzExMDggMTE2NCAxMUJEO0JFQ0E7MTEwOCAxMTY0IDExQkQ7CitCRUNCO0JFQ0I7MTEwOCAxMTY0IDExQkU7QkVDQjsxMTA4IDExNjQgMTFCRTsKK0JFQ0M7QkVDQzsxMTA4IDExNjQgMTFCRjtCRUNDOzExMDggMTE2NCAxMUJGOworQkVDRDtCRUNEOzExMDggMTE2NCAxMUMwO0JFQ0Q7MTEwOCAxMTY0IDExQzA7CitCRUNFO0JFQ0U7MTEwOCAxMTY0IDExQzE7QkVDRTsxMTA4IDExNjQgMTFDMTsKK0JFQ0Y7QkVDRjsxMTA4IDExNjQgMTFDMjtCRUNGOzExMDggMTE2NCAxMUMyOworQkVEMDtCRUQwOzExMDggMTE2NTtCRUQwOzExMDggMTE2NTsKK0JFRDE7QkVEMTsxMTA4IDExNjUgMTFBODtCRUQxOzExMDggMTE2NSAxMUE4OworQkVEMjtCRUQyOzExMDggMTE2NSAxMUE5O0JFRDI7MTEwOCAxMTY1IDExQTk7CitCRUQzO0JFRDM7MTEwOCAxMTY1IDExQUE7QkVEMzsxMTA4IDExNjUgMTFBQTsKK0JFRDQ7QkVENDsxMTA4IDExNjUgMTFBQjtCRUQ0OzExMDggMTE2NSAxMUFCOworQkVENTtCRUQ1OzExMDggMTE2NSAxMUFDO0JFRDU7MTEwOCAxMTY1IDExQUM7CitCRUQ2O0JFRDY7MTEwOCAxMTY1IDExQUQ7QkVENjsxMTA4IDExNjUgMTFBRDsKK0JFRDc7QkVENzsxMTA4IDExNjUgMTFBRTtCRUQ3OzExMDggMTE2NSAxMUFFOworQkVEODtCRUQ4OzExMDggMTE2NSAxMUFGO0JFRDg7MTEwOCAxMTY1IDExQUY7CitCRUQ5O0JFRDk7MTEwOCAxMTY1IDExQjA7QkVEOTsxMTA4IDExNjUgMTFCMDsKK0JFREE7QkVEQTsxMTA4IDExNjUgMTFCMTtCRURBOzExMDggMTE2NSAxMUIxOworQkVEQjtCRURCOzExMDggMTE2NSAxMUIyO0JFREI7MTEwOCAxMTY1IDExQjI7CitCRURDO0JFREM7MTEwOCAxMTY1IDExQjM7QkVEQzsxMTA4IDExNjUgMTFCMzsKK0JFREQ7QkVERDsxMTA4IDExNjUgMTFCNDtCRUREOzExMDggMTE2NSAxMUI0OworQkVERTtCRURFOzExMDggMTE2NSAxMUI1O0JFREU7MTEwOCAxMTY1IDExQjU7CitCRURGO0JFREY7MTEwOCAxMTY1IDExQjY7QkVERjsxMTA4IDExNjUgMTFCNjsKK0JFRTA7QkVFMDsxMTA4IDExNjUgMTFCNztCRUUwOzExMDggMTE2NSAxMUI3OworQkVFMTtCRUUxOzExMDggMTE2NSAxMUI4O0JFRTE7MTEwOCAxMTY1IDExQjg7CitCRUUyO0JFRTI7MTEwOCAxMTY1IDExQjk7QkVFMjsxMTA4IDExNjUgMTFCOTsKK0JFRTM7QkVFMzsxMTA4IDExNjUgMTFCQTtCRUUzOzExMDggMTE2NSAxMUJBOworQkVFNDtCRUU0OzExMDggMTE2NSAxMUJCO0JFRTQ7MTEwOCAxMTY1IDExQkI7CitCRUU1O0JFRTU7MTEwOCAxMTY1IDExQkM7QkVFNTsxMTA4IDExNjUgMTFCQzsKK0JFRTY7QkVFNjsxMTA4IDExNjUgMTFCRDtCRUU2OzExMDggMTE2NSAxMUJEOworQkVFNztCRUU3OzExMDggMTE2NSAxMUJFO0JFRTc7MTEwOCAxMTY1IDExQkU7CitCRUU4O0JFRTg7MTEwOCAxMTY1IDExQkY7QkVFODsxMTA4IDExNjUgMTFCRjsKK0JFRTk7QkVFOTsxMTA4IDExNjUgMTFDMDtCRUU5OzExMDggMTE2NSAxMUMwOworQkVFQTtCRUVBOzExMDggMTE2NSAxMUMxO0JFRUE7MTEwOCAxMTY1IDExQzE7CitCRUVCO0JFRUI7MTEwOCAxMTY1IDExQzI7QkVFQjsxMTA4IDExNjUgMTFDMjsKK0JFRUM7QkVFQzsxMTA4IDExNjY7QkVFQzsxMTA4IDExNjY7CitCRUVEO0JFRUQ7MTEwOCAxMTY2IDExQTg7QkVFRDsxMTA4IDExNjYgMTFBODsKK0JFRUU7QkVFRTsxMTA4IDExNjYgMTFBOTtCRUVFOzExMDggMTE2NiAxMUE5OworQkVFRjtCRUVGOzExMDggMTE2NiAxMUFBO0JFRUY7MTEwOCAxMTY2IDExQUE7CitCRUYwO0JFRjA7MTEwOCAxMTY2IDExQUI7QkVGMDsxMTA4IDExNjYgMTFBQjsKK0JFRjE7QkVGMTsxMTA4IDExNjYgMTFBQztCRUYxOzExMDggMTE2NiAxMUFDOworQkVGMjtCRUYyOzExMDggMTE2NiAxMUFEO0JFRjI7MTEwOCAxMTY2IDExQUQ7CitCRUYzO0JFRjM7MTEwOCAxMTY2IDExQUU7QkVGMzsxMTA4IDExNjYgMTFBRTsKK0JFRjQ7QkVGNDsxMTA4IDExNjYgMTFBRjtCRUY0OzExMDggMTE2NiAxMUFGOworQkVGNTtCRUY1OzExMDggMTE2NiAxMUIwO0JFRjU7MTEwOCAxMTY2IDExQjA7CitCRUY2O0JFRjY7MTEwOCAxMTY2IDExQjE7QkVGNjsxMTA4IDExNjYgMTFCMTsKK0JFRjc7QkVGNzsxMTA4IDExNjYgMTFCMjtCRUY3OzExMDggMTE2NiAxMUIyOworQkVGODtCRUY4OzExMDggMTE2NiAxMUIzO0JFRjg7MTEwOCAxMTY2IDExQjM7CitCRUY5O0JFRjk7MTEwOCAxMTY2IDExQjQ7QkVGOTsxMTA4IDExNjYgMTFCNDsKK0JFRkE7QkVGQTsxMTA4IDExNjYgMTFCNTtCRUZBOzExMDggMTE2NiAxMUI1OworQkVGQjtCRUZCOzExMDggMTE2NiAxMUI2O0JFRkI7MTEwOCAxMTY2IDExQjY7CitCRUZDO0JFRkM7MTEwOCAxMTY2IDExQjc7QkVGQzsxMTA4IDExNjYgMTFCNzsKK0JFRkQ7QkVGRDsxMTA4IDExNjYgMTFCODtCRUZEOzExMDggMTE2NiAxMUI4OworQkVGRTtCRUZFOzExMDggMTE2NiAxMUI5O0JFRkU7MTEwOCAxMTY2IDExQjk7CitCRUZGO0JFRkY7MTEwOCAxMTY2IDExQkE7QkVGRjsxMTA4IDExNjYgMTFCQTsKK0JGMDA7QkYwMDsxMTA4IDExNjYgMTFCQjtCRjAwOzExMDggMTE2NiAxMUJCOworQkYwMTtCRjAxOzExMDggMTE2NiAxMUJDO0JGMDE7MTEwOCAxMTY2IDExQkM7CitCRjAyO0JGMDI7MTEwOCAxMTY2IDExQkQ7QkYwMjsxMTA4IDExNjYgMTFCRDsKK0JGMDM7QkYwMzsxMTA4IDExNjYgMTFCRTtCRjAzOzExMDggMTE2NiAxMUJFOworQkYwNDtCRjA0OzExMDggMTE2NiAxMUJGO0JGMDQ7MTEwOCAxMTY2IDExQkY7CitCRjA1O0JGMDU7MTEwOCAxMTY2IDExQzA7QkYwNTsxMTA4IDExNjYgMTFDMDsKK0JGMDY7QkYwNjsxMTA4IDExNjYgMTFDMTtCRjA2OzExMDggMTE2NiAxMUMxOworQkYwNztCRjA3OzExMDggMTE2NiAxMUMyO0JGMDc7MTEwOCAxMTY2IDExQzI7CitCRjA4O0JGMDg7MTEwOCAxMTY3O0JGMDg7MTEwOCAxMTY3OworQkYwOTtCRjA5OzExMDggMTE2NyAxMUE4O0JGMDk7MTEwOCAxMTY3IDExQTg7CitCRjBBO0JGMEE7MTEwOCAxMTY3IDExQTk7QkYwQTsxMTA4IDExNjcgMTFBOTsKK0JGMEI7QkYwQjsxMTA4IDExNjcgMTFBQTtCRjBCOzExMDggMTE2NyAxMUFBOworQkYwQztCRjBDOzExMDggMTE2NyAxMUFCO0JGMEM7MTEwOCAxMTY3IDExQUI7CitCRjBEO0JGMEQ7MTEwOCAxMTY3IDExQUM7QkYwRDsxMTA4IDExNjcgMTFBQzsKK0JGMEU7QkYwRTsxMTA4IDExNjcgMTFBRDtCRjBFOzExMDggMTE2NyAxMUFEOworQkYwRjtCRjBGOzExMDggMTE2NyAxMUFFO0JGMEY7MTEwOCAxMTY3IDExQUU7CitCRjEwO0JGMTA7MTEwOCAxMTY3IDExQUY7QkYxMDsxMTA4IDExNjcgMTFBRjsKK0JGMTE7QkYxMTsxMTA4IDExNjcgMTFCMDtCRjExOzExMDggMTE2NyAxMUIwOworQkYxMjtCRjEyOzExMDggMTE2NyAxMUIxO0JGMTI7MTEwOCAxMTY3IDExQjE7CitCRjEzO0JGMTM7MTEwOCAxMTY3IDExQjI7QkYxMzsxMTA4IDExNjcgMTFCMjsKK0JGMTQ7QkYxNDsxMTA4IDExNjcgMTFCMztCRjE0OzExMDggMTE2NyAxMUIzOworQkYxNTtCRjE1OzExMDggMTE2NyAxMUI0O0JGMTU7MTEwOCAxMTY3IDExQjQ7CitCRjE2O0JGMTY7MTEwOCAxMTY3IDExQjU7QkYxNjsxMTA4IDExNjcgMTFCNTsKK0JGMTc7QkYxNzsxMTA4IDExNjcgMTFCNjtCRjE3OzExMDggMTE2NyAxMUI2OworQkYxODtCRjE4OzExMDggMTE2NyAxMUI3O0JGMTg7MTEwOCAxMTY3IDExQjc7CitCRjE5O0JGMTk7MTEwOCAxMTY3IDExQjg7QkYxOTsxMTA4IDExNjcgMTFCODsKK0JGMUE7QkYxQTsxMTA4IDExNjcgMTFCOTtCRjFBOzExMDggMTE2NyAxMUI5OworQkYxQjtCRjFCOzExMDggMTE2NyAxMUJBO0JGMUI7MTEwOCAxMTY3IDExQkE7CitCRjFDO0JGMUM7MTEwOCAxMTY3IDExQkI7QkYxQzsxMTA4IDExNjcgMTFCQjsKK0JGMUQ7QkYxRDsxMTA4IDExNjcgMTFCQztCRjFEOzExMDggMTE2NyAxMUJDOworQkYxRTtCRjFFOzExMDggMTE2NyAxMUJEO0JGMUU7MTEwOCAxMTY3IDExQkQ7CitCRjFGO0JGMUY7MTEwOCAxMTY3IDExQkU7QkYxRjsxMTA4IDExNjcgMTFCRTsKK0JGMjA7QkYyMDsxMTA4IDExNjcgMTFCRjtCRjIwOzExMDggMTE2NyAxMUJGOworQkYyMTtCRjIxOzExMDggMTE2NyAxMUMwO0JGMjE7MTEwOCAxMTY3IDExQzA7CitCRjIyO0JGMjI7MTEwOCAxMTY3IDExQzE7QkYyMjsxMTA4IDExNjcgMTFDMTsKK0JGMjM7QkYyMzsxMTA4IDExNjcgMTFDMjtCRjIzOzExMDggMTE2NyAxMUMyOworQkYyNDtCRjI0OzExMDggMTE2ODtCRjI0OzExMDggMTE2ODsKK0JGMjU7QkYyNTsxMTA4IDExNjggMTFBODtCRjI1OzExMDggMTE2OCAxMUE4OworQkYyNjtCRjI2OzExMDggMTE2OCAxMUE5O0JGMjY7MTEwOCAxMTY4IDExQTk7CitCRjI3O0JGMjc7MTEwOCAxMTY4IDExQUE7QkYyNzsxMTA4IDExNjggMTFBQTsKK0JGMjg7QkYyODsxMTA4IDExNjggMTFBQjtCRjI4OzExMDggMTE2OCAxMUFCOworQkYyOTtCRjI5OzExMDggMTE2OCAxMUFDO0JGMjk7MTEwOCAxMTY4IDExQUM7CitCRjJBO0JGMkE7MTEwOCAxMTY4IDExQUQ7QkYyQTsxMTA4IDExNjggMTFBRDsKK0JGMkI7QkYyQjsxMTA4IDExNjggMTFBRTtCRjJCOzExMDggMTE2OCAxMUFFOworQkYyQztCRjJDOzExMDggMTE2OCAxMUFGO0JGMkM7MTEwOCAxMTY4IDExQUY7CitCRjJEO0JGMkQ7MTEwOCAxMTY4IDExQjA7QkYyRDsxMTA4IDExNjggMTFCMDsKK0JGMkU7QkYyRTsxMTA4IDExNjggMTFCMTtCRjJFOzExMDggMTE2OCAxMUIxOworQkYyRjtCRjJGOzExMDggMTE2OCAxMUIyO0JGMkY7MTEwOCAxMTY4IDExQjI7CitCRjMwO0JGMzA7MTEwOCAxMTY4IDExQjM7QkYzMDsxMTA4IDExNjggMTFCMzsKK0JGMzE7QkYzMTsxMTA4IDExNjggMTFCNDtCRjMxOzExMDggMTE2OCAxMUI0OworQkYzMjtCRjMyOzExMDggMTE2OCAxMUI1O0JGMzI7MTEwOCAxMTY4IDExQjU7CitCRjMzO0JGMzM7MTEwOCAxMTY4IDExQjY7QkYzMzsxMTA4IDExNjggMTFCNjsKK0JGMzQ7QkYzNDsxMTA4IDExNjggMTFCNztCRjM0OzExMDggMTE2OCAxMUI3OworQkYzNTtCRjM1OzExMDggMTE2OCAxMUI4O0JGMzU7MTEwOCAxMTY4IDExQjg7CitCRjM2O0JGMzY7MTEwOCAxMTY4IDExQjk7QkYzNjsxMTA4IDExNjggMTFCOTsKK0JGMzc7QkYzNzsxMTA4IDExNjggMTFCQTtCRjM3OzExMDggMTE2OCAxMUJBOworQkYzODtCRjM4OzExMDggMTE2OCAxMUJCO0JGMzg7MTEwOCAxMTY4IDExQkI7CitCRjM5O0JGMzk7MTEwOCAxMTY4IDExQkM7QkYzOTsxMTA4IDExNjggMTFCQzsKK0JGM0E7QkYzQTsxMTA4IDExNjggMTFCRDtCRjNBOzExMDggMTE2OCAxMUJEOworQkYzQjtCRjNCOzExMDggMTE2OCAxMUJFO0JGM0I7MTEwOCAxMTY4IDExQkU7CitCRjNDO0JGM0M7MTEwOCAxMTY4IDExQkY7QkYzQzsxMTA4IDExNjggMTFCRjsKK0JGM0Q7QkYzRDsxMTA4IDExNjggMTFDMDtCRjNEOzExMDggMTE2OCAxMUMwOworQkYzRTtCRjNFOzExMDggMTE2OCAxMUMxO0JGM0U7MTEwOCAxMTY4IDExQzE7CitCRjNGO0JGM0Y7MTEwOCAxMTY4IDExQzI7QkYzRjsxMTA4IDExNjggMTFDMjsKK0JGNDA7QkY0MDsxMTA4IDExNjk7QkY0MDsxMTA4IDExNjk7CitCRjQxO0JGNDE7MTEwOCAxMTY5IDExQTg7QkY0MTsxMTA4IDExNjkgMTFBODsKK0JGNDI7QkY0MjsxMTA4IDExNjkgMTFBOTtCRjQyOzExMDggMTE2OSAxMUE5OworQkY0MztCRjQzOzExMDggMTE2OSAxMUFBO0JGNDM7MTEwOCAxMTY5IDExQUE7CitCRjQ0O0JGNDQ7MTEwOCAxMTY5IDExQUI7QkY0NDsxMTA4IDExNjkgMTFBQjsKK0JGNDU7QkY0NTsxMTA4IDExNjkgMTFBQztCRjQ1OzExMDggMTE2OSAxMUFDOworQkY0NjtCRjQ2OzExMDggMTE2OSAxMUFEO0JGNDY7MTEwOCAxMTY5IDExQUQ7CitCRjQ3O0JGNDc7MTEwOCAxMTY5IDExQUU7QkY0NzsxMTA4IDExNjkgMTFBRTsKK0JGNDg7QkY0ODsxMTA4IDExNjkgMTFBRjtCRjQ4OzExMDggMTE2OSAxMUFGOworQkY0OTtCRjQ5OzExMDggMTE2OSAxMUIwO0JGNDk7MTEwOCAxMTY5IDExQjA7CitCRjRBO0JGNEE7MTEwOCAxMTY5IDExQjE7QkY0QTsxMTA4IDExNjkgMTFCMTsKK0JGNEI7QkY0QjsxMTA4IDExNjkgMTFCMjtCRjRCOzExMDggMTE2OSAxMUIyOworQkY0QztCRjRDOzExMDggMTE2OSAxMUIzO0JGNEM7MTEwOCAxMTY5IDExQjM7CitCRjREO0JGNEQ7MTEwOCAxMTY5IDExQjQ7QkY0RDsxMTA4IDExNjkgMTFCNDsKK0JGNEU7QkY0RTsxMTA4IDExNjkgMTFCNTtCRjRFOzExMDggMTE2OSAxMUI1OworQkY0RjtCRjRGOzExMDggMTE2OSAxMUI2O0JGNEY7MTEwOCAxMTY5IDExQjY7CitCRjUwO0JGNTA7MTEwOCAxMTY5IDExQjc7QkY1MDsxMTA4IDExNjkgMTFCNzsKK0JGNTE7QkY1MTsxMTA4IDExNjkgMTFCODtCRjUxOzExMDggMTE2OSAxMUI4OworQkY1MjtCRjUyOzExMDggMTE2OSAxMUI5O0JGNTI7MTEwOCAxMTY5IDExQjk7CitCRjUzO0JGNTM7MTEwOCAxMTY5IDExQkE7QkY1MzsxMTA4IDExNjkgMTFCQTsKK0JGNTQ7QkY1NDsxMTA4IDExNjkgMTFCQjtCRjU0OzExMDggMTE2OSAxMUJCOworQkY1NTtCRjU1OzExMDggMTE2OSAxMUJDO0JGNTU7MTEwOCAxMTY5IDExQkM7CitCRjU2O0JGNTY7MTEwOCAxMTY5IDExQkQ7QkY1NjsxMTA4IDExNjkgMTFCRDsKK0JGNTc7QkY1NzsxMTA4IDExNjkgMTFCRTtCRjU3OzExMDggMTE2OSAxMUJFOworQkY1ODtCRjU4OzExMDggMTE2OSAxMUJGO0JGNTg7MTEwOCAxMTY5IDExQkY7CitCRjU5O0JGNTk7MTEwOCAxMTY5IDExQzA7QkY1OTsxMTA4IDExNjkgMTFDMDsKK0JGNUE7QkY1QTsxMTA4IDExNjkgMTFDMTtCRjVBOzExMDggMTE2OSAxMUMxOworQkY1QjtCRjVCOzExMDggMTE2OSAxMUMyO0JGNUI7MTEwOCAxMTY5IDExQzI7CitCRjVDO0JGNUM7MTEwOCAxMTZBO0JGNUM7MTEwOCAxMTZBOworQkY1RDtCRjVEOzExMDggMTE2QSAxMUE4O0JGNUQ7MTEwOCAxMTZBIDExQTg7CitCRjVFO0JGNUU7MTEwOCAxMTZBIDExQTk7QkY1RTsxMTA4IDExNkEgMTFBOTsKK0JGNUY7QkY1RjsxMTA4IDExNkEgMTFBQTtCRjVGOzExMDggMTE2QSAxMUFBOworQkY2MDtCRjYwOzExMDggMTE2QSAxMUFCO0JGNjA7MTEwOCAxMTZBIDExQUI7CitCRjYxO0JGNjE7MTEwOCAxMTZBIDExQUM7QkY2MTsxMTA4IDExNkEgMTFBQzsKK0JGNjI7QkY2MjsxMTA4IDExNkEgMTFBRDtCRjYyOzExMDggMTE2QSAxMUFEOworQkY2MztCRjYzOzExMDggMTE2QSAxMUFFO0JGNjM7MTEwOCAxMTZBIDExQUU7CitCRjY0O0JGNjQ7MTEwOCAxMTZBIDExQUY7QkY2NDsxMTA4IDExNkEgMTFBRjsKK0JGNjU7QkY2NTsxMTA4IDExNkEgMTFCMDtCRjY1OzExMDggMTE2QSAxMUIwOworQkY2NjtCRjY2OzExMDggMTE2QSAxMUIxO0JGNjY7MTEwOCAxMTZBIDExQjE7CitCRjY3O0JGNjc7MTEwOCAxMTZBIDExQjI7QkY2NzsxMTA4IDExNkEgMTFCMjsKK0JGNjg7QkY2ODsxMTA4IDExNkEgMTFCMztCRjY4OzExMDggMTE2QSAxMUIzOworQkY2OTtCRjY5OzExMDggMTE2QSAxMUI0O0JGNjk7MTEwOCAxMTZBIDExQjQ7CitCRjZBO0JGNkE7MTEwOCAxMTZBIDExQjU7QkY2QTsxMTA4IDExNkEgMTFCNTsKK0JGNkI7QkY2QjsxMTA4IDExNkEgMTFCNjtCRjZCOzExMDggMTE2QSAxMUI2OworQkY2QztCRjZDOzExMDggMTE2QSAxMUI3O0JGNkM7MTEwOCAxMTZBIDExQjc7CitCRjZEO0JGNkQ7MTEwOCAxMTZBIDExQjg7QkY2RDsxMTA4IDExNkEgMTFCODsKK0JGNkU7QkY2RTsxMTA4IDExNkEgMTFCOTtCRjZFOzExMDggMTE2QSAxMUI5OworQkY2RjtCRjZGOzExMDggMTE2QSAxMUJBO0JGNkY7MTEwOCAxMTZBIDExQkE7CitCRjcwO0JGNzA7MTEwOCAxMTZBIDExQkI7QkY3MDsxMTA4IDExNkEgMTFCQjsKK0JGNzE7QkY3MTsxMTA4IDExNkEgMTFCQztCRjcxOzExMDggMTE2QSAxMUJDOworQkY3MjtCRjcyOzExMDggMTE2QSAxMUJEO0JGNzI7MTEwOCAxMTZBIDExQkQ7CitCRjczO0JGNzM7MTEwOCAxMTZBIDExQkU7QkY3MzsxMTA4IDExNkEgMTFCRTsKK0JGNzQ7QkY3NDsxMTA4IDExNkEgMTFCRjtCRjc0OzExMDggMTE2QSAxMUJGOworQkY3NTtCRjc1OzExMDggMTE2QSAxMUMwO0JGNzU7MTEwOCAxMTZBIDExQzA7CitCRjc2O0JGNzY7MTEwOCAxMTZBIDExQzE7QkY3NjsxMTA4IDExNkEgMTFDMTsKK0JGNzc7QkY3NzsxMTA4IDExNkEgMTFDMjtCRjc3OzExMDggMTE2QSAxMUMyOworQkY3ODtCRjc4OzExMDggMTE2QjtCRjc4OzExMDggMTE2QjsKK0JGNzk7QkY3OTsxMTA4IDExNkIgMTFBODtCRjc5OzExMDggMTE2QiAxMUE4OworQkY3QTtCRjdBOzExMDggMTE2QiAxMUE5O0JGN0E7MTEwOCAxMTZCIDExQTk7CitCRjdCO0JGN0I7MTEwOCAxMTZCIDExQUE7QkY3QjsxMTA4IDExNkIgMTFBQTsKK0JGN0M7QkY3QzsxMTA4IDExNkIgMTFBQjtCRjdDOzExMDggMTE2QiAxMUFCOworQkY3RDtCRjdEOzExMDggMTE2QiAxMUFDO0JGN0Q7MTEwOCAxMTZCIDExQUM7CitCRjdFO0JGN0U7MTEwOCAxMTZCIDExQUQ7QkY3RTsxMTA4IDExNkIgMTFBRDsKK0JGN0Y7QkY3RjsxMTA4IDExNkIgMTFBRTtCRjdGOzExMDggMTE2QiAxMUFFOworQkY4MDtCRjgwOzExMDggMTE2QiAxMUFGO0JGODA7MTEwOCAxMTZCIDExQUY7CitCRjgxO0JGODE7MTEwOCAxMTZCIDExQjA7QkY4MTsxMTA4IDExNkIgMTFCMDsKK0JGODI7QkY4MjsxMTA4IDExNkIgMTFCMTtCRjgyOzExMDggMTE2QiAxMUIxOworQkY4MztCRjgzOzExMDggMTE2QiAxMUIyO0JGODM7MTEwOCAxMTZCIDExQjI7CitCRjg0O0JGODQ7MTEwOCAxMTZCIDExQjM7QkY4NDsxMTA4IDExNkIgMTFCMzsKK0JGODU7QkY4NTsxMTA4IDExNkIgMTFCNDtCRjg1OzExMDggMTE2QiAxMUI0OworQkY4NjtCRjg2OzExMDggMTE2QiAxMUI1O0JGODY7MTEwOCAxMTZCIDExQjU7CitCRjg3O0JGODc7MTEwOCAxMTZCIDExQjY7QkY4NzsxMTA4IDExNkIgMTFCNjsKK0JGODg7QkY4ODsxMTA4IDExNkIgMTFCNztCRjg4OzExMDggMTE2QiAxMUI3OworQkY4OTtCRjg5OzExMDggMTE2QiAxMUI4O0JGODk7MTEwOCAxMTZCIDExQjg7CitCRjhBO0JGOEE7MTEwOCAxMTZCIDExQjk7QkY4QTsxMTA4IDExNkIgMTFCOTsKK0JGOEI7QkY4QjsxMTA4IDExNkIgMTFCQTtCRjhCOzExMDggMTE2QiAxMUJBOworQkY4QztCRjhDOzExMDggMTE2QiAxMUJCO0JGOEM7MTEwOCAxMTZCIDExQkI7CitCRjhEO0JGOEQ7MTEwOCAxMTZCIDExQkM7QkY4RDsxMTA4IDExNkIgMTFCQzsKK0JGOEU7QkY4RTsxMTA4IDExNkIgMTFCRDtCRjhFOzExMDggMTE2QiAxMUJEOworQkY4RjtCRjhGOzExMDggMTE2QiAxMUJFO0JGOEY7MTEwOCAxMTZCIDExQkU7CitCRjkwO0JGOTA7MTEwOCAxMTZCIDExQkY7QkY5MDsxMTA4IDExNkIgMTFCRjsKK0JGOTE7QkY5MTsxMTA4IDExNkIgMTFDMDtCRjkxOzExMDggMTE2QiAxMUMwOworQkY5MjtCRjkyOzExMDggMTE2QiAxMUMxO0JGOTI7MTEwOCAxMTZCIDExQzE7CitCRjkzO0JGOTM7MTEwOCAxMTZCIDExQzI7QkY5MzsxMTA4IDExNkIgMTFDMjsKK0JGOTQ7QkY5NDsxMTA4IDExNkM7QkY5NDsxMTA4IDExNkM7CitCRjk1O0JGOTU7MTEwOCAxMTZDIDExQTg7QkY5NTsxMTA4IDExNkMgMTFBODsKK0JGOTY7QkY5NjsxMTA4IDExNkMgMTFBOTtCRjk2OzExMDggMTE2QyAxMUE5OworQkY5NztCRjk3OzExMDggMTE2QyAxMUFBO0JGOTc7MTEwOCAxMTZDIDExQUE7CitCRjk4O0JGOTg7MTEwOCAxMTZDIDExQUI7QkY5ODsxMTA4IDExNkMgMTFBQjsKK0JGOTk7QkY5OTsxMTA4IDExNkMgMTFBQztCRjk5OzExMDggMTE2QyAxMUFDOworQkY5QTtCRjlBOzExMDggMTE2QyAxMUFEO0JGOUE7MTEwOCAxMTZDIDExQUQ7CitCRjlCO0JGOUI7MTEwOCAxMTZDIDExQUU7QkY5QjsxMTA4IDExNkMgMTFBRTsKK0JGOUM7QkY5QzsxMTA4IDExNkMgMTFBRjtCRjlDOzExMDggMTE2QyAxMUFGOworQkY5RDtCRjlEOzExMDggMTE2QyAxMUIwO0JGOUQ7MTEwOCAxMTZDIDExQjA7CitCRjlFO0JGOUU7MTEwOCAxMTZDIDExQjE7QkY5RTsxMTA4IDExNkMgMTFCMTsKK0JGOUY7QkY5RjsxMTA4IDExNkMgMTFCMjtCRjlGOzExMDggMTE2QyAxMUIyOworQkZBMDtCRkEwOzExMDggMTE2QyAxMUIzO0JGQTA7MTEwOCAxMTZDIDExQjM7CitCRkExO0JGQTE7MTEwOCAxMTZDIDExQjQ7QkZBMTsxMTA4IDExNkMgMTFCNDsKK0JGQTI7QkZBMjsxMTA4IDExNkMgMTFCNTtCRkEyOzExMDggMTE2QyAxMUI1OworQkZBMztCRkEzOzExMDggMTE2QyAxMUI2O0JGQTM7MTEwOCAxMTZDIDExQjY7CitCRkE0O0JGQTQ7MTEwOCAxMTZDIDExQjc7QkZBNDsxMTA4IDExNkMgMTFCNzsKK0JGQTU7QkZBNTsxMTA4IDExNkMgMTFCODtCRkE1OzExMDggMTE2QyAxMUI4OworQkZBNjtCRkE2OzExMDggMTE2QyAxMUI5O0JGQTY7MTEwOCAxMTZDIDExQjk7CitCRkE3O0JGQTc7MTEwOCAxMTZDIDExQkE7QkZBNzsxMTA4IDExNkMgMTFCQTsKK0JGQTg7QkZBODsxMTA4IDExNkMgMTFCQjtCRkE4OzExMDggMTE2QyAxMUJCOworQkZBOTtCRkE5OzExMDggMTE2QyAxMUJDO0JGQTk7MTEwOCAxMTZDIDExQkM7CitCRkFBO0JGQUE7MTEwOCAxMTZDIDExQkQ7QkZBQTsxMTA4IDExNkMgMTFCRDsKK0JGQUI7QkZBQjsxMTA4IDExNkMgMTFCRTtCRkFCOzExMDggMTE2QyAxMUJFOworQkZBQztCRkFDOzExMDggMTE2QyAxMUJGO0JGQUM7MTEwOCAxMTZDIDExQkY7CitCRkFEO0JGQUQ7MTEwOCAxMTZDIDExQzA7QkZBRDsxMTA4IDExNkMgMTFDMDsKK0JGQUU7QkZBRTsxMTA4IDExNkMgMTFDMTtCRkFFOzExMDggMTE2QyAxMUMxOworQkZBRjtCRkFGOzExMDggMTE2QyAxMUMyO0JGQUY7MTEwOCAxMTZDIDExQzI7CitCRkIwO0JGQjA7MTEwOCAxMTZEO0JGQjA7MTEwOCAxMTZEOworQkZCMTtCRkIxOzExMDggMTE2RCAxMUE4O0JGQjE7MTEwOCAxMTZEIDExQTg7CitCRkIyO0JGQjI7MTEwOCAxMTZEIDExQTk7QkZCMjsxMTA4IDExNkQgMTFBOTsKK0JGQjM7QkZCMzsxMTA4IDExNkQgMTFBQTtCRkIzOzExMDggMTE2RCAxMUFBOworQkZCNDtCRkI0OzExMDggMTE2RCAxMUFCO0JGQjQ7MTEwOCAxMTZEIDExQUI7CitCRkI1O0JGQjU7MTEwOCAxMTZEIDExQUM7QkZCNTsxMTA4IDExNkQgMTFBQzsKK0JGQjY7QkZCNjsxMTA4IDExNkQgMTFBRDtCRkI2OzExMDggMTE2RCAxMUFEOworQkZCNztCRkI3OzExMDggMTE2RCAxMUFFO0JGQjc7MTEwOCAxMTZEIDExQUU7CitCRkI4O0JGQjg7MTEwOCAxMTZEIDExQUY7QkZCODsxMTA4IDExNkQgMTFBRjsKK0JGQjk7QkZCOTsxMTA4IDExNkQgMTFCMDtCRkI5OzExMDggMTE2RCAxMUIwOworQkZCQTtCRkJBOzExMDggMTE2RCAxMUIxO0JGQkE7MTEwOCAxMTZEIDExQjE7CitCRkJCO0JGQkI7MTEwOCAxMTZEIDExQjI7QkZCQjsxMTA4IDExNkQgMTFCMjsKK0JGQkM7QkZCQzsxMTA4IDExNkQgMTFCMztCRkJDOzExMDggMTE2RCAxMUIzOworQkZCRDtCRkJEOzExMDggMTE2RCAxMUI0O0JGQkQ7MTEwOCAxMTZEIDExQjQ7CitCRkJFO0JGQkU7MTEwOCAxMTZEIDExQjU7QkZCRTsxMTA4IDExNkQgMTFCNTsKK0JGQkY7QkZCRjsxMTA4IDExNkQgMTFCNjtCRkJGOzExMDggMTE2RCAxMUI2OworQkZDMDtCRkMwOzExMDggMTE2RCAxMUI3O0JGQzA7MTEwOCAxMTZEIDExQjc7CitCRkMxO0JGQzE7MTEwOCAxMTZEIDExQjg7QkZDMTsxMTA4IDExNkQgMTFCODsKK0JGQzI7QkZDMjsxMTA4IDExNkQgMTFCOTtCRkMyOzExMDggMTE2RCAxMUI5OworQkZDMztCRkMzOzExMDggMTE2RCAxMUJBO0JGQzM7MTEwOCAxMTZEIDExQkE7CitCRkM0O0JGQzQ7MTEwOCAxMTZEIDExQkI7QkZDNDsxMTA4IDExNkQgMTFCQjsKK0JGQzU7QkZDNTsxMTA4IDExNkQgMTFCQztCRkM1OzExMDggMTE2RCAxMUJDOworQkZDNjtCRkM2OzExMDggMTE2RCAxMUJEO0JGQzY7MTEwOCAxMTZEIDExQkQ7CitCRkM3O0JGQzc7MTEwOCAxMTZEIDExQkU7QkZDNzsxMTA4IDExNkQgMTFCRTsKK0JGQzg7QkZDODsxMTA4IDExNkQgMTFCRjtCRkM4OzExMDggMTE2RCAxMUJGOworQkZDOTtCRkM5OzExMDggMTE2RCAxMUMwO0JGQzk7MTEwOCAxMTZEIDExQzA7CitCRkNBO0JGQ0E7MTEwOCAxMTZEIDExQzE7QkZDQTsxMTA4IDExNkQgMTFDMTsKK0JGQ0I7QkZDQjsxMTA4IDExNkQgMTFDMjtCRkNCOzExMDggMTE2RCAxMUMyOworQkZDQztCRkNDOzExMDggMTE2RTtCRkNDOzExMDggMTE2RTsKK0JGQ0Q7QkZDRDsxMTA4IDExNkUgMTFBODtCRkNEOzExMDggMTE2RSAxMUE4OworQkZDRTtCRkNFOzExMDggMTE2RSAxMUE5O0JGQ0U7MTEwOCAxMTZFIDExQTk7CitCRkNGO0JGQ0Y7MTEwOCAxMTZFIDExQUE7QkZDRjsxMTA4IDExNkUgMTFBQTsKK0JGRDA7QkZEMDsxMTA4IDExNkUgMTFBQjtCRkQwOzExMDggMTE2RSAxMUFCOworQkZEMTtCRkQxOzExMDggMTE2RSAxMUFDO0JGRDE7MTEwOCAxMTZFIDExQUM7CitCRkQyO0JGRDI7MTEwOCAxMTZFIDExQUQ7QkZEMjsxMTA4IDExNkUgMTFBRDsKK0JGRDM7QkZEMzsxMTA4IDExNkUgMTFBRTtCRkQzOzExMDggMTE2RSAxMUFFOworQkZENDtCRkQ0OzExMDggMTE2RSAxMUFGO0JGRDQ7MTEwOCAxMTZFIDExQUY7CitCRkQ1O0JGRDU7MTEwOCAxMTZFIDExQjA7QkZENTsxMTA4IDExNkUgMTFCMDsKK0JGRDY7QkZENjsxMTA4IDExNkUgMTFCMTtCRkQ2OzExMDggMTE2RSAxMUIxOworQkZENztCRkQ3OzExMDggMTE2RSAxMUIyO0JGRDc7MTEwOCAxMTZFIDExQjI7CitCRkQ4O0JGRDg7MTEwOCAxMTZFIDExQjM7QkZEODsxMTA4IDExNkUgMTFCMzsKK0JGRDk7QkZEOTsxMTA4IDExNkUgMTFCNDtCRkQ5OzExMDggMTE2RSAxMUI0OworQkZEQTtCRkRBOzExMDggMTE2RSAxMUI1O0JGREE7MTEwOCAxMTZFIDExQjU7CitCRkRCO0JGREI7MTEwOCAxMTZFIDExQjY7QkZEQjsxMTA4IDExNkUgMTFCNjsKK0JGREM7QkZEQzsxMTA4IDExNkUgMTFCNztCRkRDOzExMDggMTE2RSAxMUI3OworQkZERDtCRkREOzExMDggMTE2RSAxMUI4O0JGREQ7MTEwOCAxMTZFIDExQjg7CitCRkRFO0JGREU7MTEwOCAxMTZFIDExQjk7QkZERTsxMTA4IDExNkUgMTFCOTsKK0JGREY7QkZERjsxMTA4IDExNkUgMTFCQTtCRkRGOzExMDggMTE2RSAxMUJBOworQkZFMDtCRkUwOzExMDggMTE2RSAxMUJCO0JGRTA7MTEwOCAxMTZFIDExQkI7CitCRkUxO0JGRTE7MTEwOCAxMTZFIDExQkM7QkZFMTsxMTA4IDExNkUgMTFCQzsKK0JGRTI7QkZFMjsxMTA4IDExNkUgMTFCRDtCRkUyOzExMDggMTE2RSAxMUJEOworQkZFMztCRkUzOzExMDggMTE2RSAxMUJFO0JGRTM7MTEwOCAxMTZFIDExQkU7CitCRkU0O0JGRTQ7MTEwOCAxMTZFIDExQkY7QkZFNDsxMTA4IDExNkUgMTFCRjsKK0JGRTU7QkZFNTsxMTA4IDExNkUgMTFDMDtCRkU1OzExMDggMTE2RSAxMUMwOworQkZFNjtCRkU2OzExMDggMTE2RSAxMUMxO0JGRTY7MTEwOCAxMTZFIDExQzE7CitCRkU3O0JGRTc7MTEwOCAxMTZFIDExQzI7QkZFNzsxMTA4IDExNkUgMTFDMjsKK0JGRTg7QkZFODsxMTA4IDExNkY7QkZFODsxMTA4IDExNkY7CitCRkU5O0JGRTk7MTEwOCAxMTZGIDExQTg7QkZFOTsxMTA4IDExNkYgMTFBODsKK0JGRUE7QkZFQTsxMTA4IDExNkYgMTFBOTtCRkVBOzExMDggMTE2RiAxMUE5OworQkZFQjtCRkVCOzExMDggMTE2RiAxMUFBO0JGRUI7MTEwOCAxMTZGIDExQUE7CitCRkVDO0JGRUM7MTEwOCAxMTZGIDExQUI7QkZFQzsxMTA4IDExNkYgMTFBQjsKK0JGRUQ7QkZFRDsxMTA4IDExNkYgMTFBQztCRkVEOzExMDggMTE2RiAxMUFDOworQkZFRTtCRkVFOzExMDggMTE2RiAxMUFEO0JGRUU7MTEwOCAxMTZGIDExQUQ7CitCRkVGO0JGRUY7MTEwOCAxMTZGIDExQUU7QkZFRjsxMTA4IDExNkYgMTFBRTsKK0JGRjA7QkZGMDsxMTA4IDExNkYgMTFBRjtCRkYwOzExMDggMTE2RiAxMUFGOworQkZGMTtCRkYxOzExMDggMTE2RiAxMUIwO0JGRjE7MTEwOCAxMTZGIDExQjA7CitCRkYyO0JGRjI7MTEwOCAxMTZGIDExQjE7QkZGMjsxMTA4IDExNkYgMTFCMTsKK0JGRjM7QkZGMzsxMTA4IDExNkYgMTFCMjtCRkYzOzExMDggMTE2RiAxMUIyOworQkZGNDtCRkY0OzExMDggMTE2RiAxMUIzO0JGRjQ7MTEwOCAxMTZGIDExQjM7CitCRkY1O0JGRjU7MTEwOCAxMTZGIDExQjQ7QkZGNTsxMTA4IDExNkYgMTFCNDsKK0JGRjY7QkZGNjsxMTA4IDExNkYgMTFCNTtCRkY2OzExMDggMTE2RiAxMUI1OworQkZGNztCRkY3OzExMDggMTE2RiAxMUI2O0JGRjc7MTEwOCAxMTZGIDExQjY7CitCRkY4O0JGRjg7MTEwOCAxMTZGIDExQjc7QkZGODsxMTA4IDExNkYgMTFCNzsKK0JGRjk7QkZGOTsxMTA4IDExNkYgMTFCODtCRkY5OzExMDggMTE2RiAxMUI4OworQkZGQTtCRkZBOzExMDggMTE2RiAxMUI5O0JGRkE7MTEwOCAxMTZGIDExQjk7CitCRkZCO0JGRkI7MTEwOCAxMTZGIDExQkE7QkZGQjsxMTA4IDExNkYgMTFCQTsKK0JGRkM7QkZGQzsxMTA4IDExNkYgMTFCQjtCRkZDOzExMDggMTE2RiAxMUJCOworQkZGRDtCRkZEOzExMDggMTE2RiAxMUJDO0JGRkQ7MTEwOCAxMTZGIDExQkM7CitCRkZFO0JGRkU7MTEwOCAxMTZGIDExQkQ7QkZGRTsxMTA4IDExNkYgMTFCRDsKK0JGRkY7QkZGRjsxMTA4IDExNkYgMTFCRTtCRkZGOzExMDggMTE2RiAxMUJFOworQzAwMDtDMDAwOzExMDggMTE2RiAxMUJGO0MwMDA7MTEwOCAxMTZGIDExQkY7CitDMDAxO0MwMDE7MTEwOCAxMTZGIDExQzA7QzAwMTsxMTA4IDExNkYgMTFDMDsKK0MwMDI7QzAwMjsxMTA4IDExNkYgMTFDMTtDMDAyOzExMDggMTE2RiAxMUMxOworQzAwMztDMDAzOzExMDggMTE2RiAxMUMyO0MwMDM7MTEwOCAxMTZGIDExQzI7CitDMDA0O0MwMDQ7MTEwOCAxMTcwO0MwMDQ7MTEwOCAxMTcwOworQzAwNTtDMDA1OzExMDggMTE3MCAxMUE4O0MwMDU7MTEwOCAxMTcwIDExQTg7CitDMDA2O0MwMDY7MTEwOCAxMTcwIDExQTk7QzAwNjsxMTA4IDExNzAgMTFBOTsKK0MwMDc7QzAwNzsxMTA4IDExNzAgMTFBQTtDMDA3OzExMDggMTE3MCAxMUFBOworQzAwODtDMDA4OzExMDggMTE3MCAxMUFCO0MwMDg7MTEwOCAxMTcwIDExQUI7CitDMDA5O0MwMDk7MTEwOCAxMTcwIDExQUM7QzAwOTsxMTA4IDExNzAgMTFBQzsKK0MwMEE7QzAwQTsxMTA4IDExNzAgMTFBRDtDMDBBOzExMDggMTE3MCAxMUFEOworQzAwQjtDMDBCOzExMDggMTE3MCAxMUFFO0MwMEI7MTEwOCAxMTcwIDExQUU7CitDMDBDO0MwMEM7MTEwOCAxMTcwIDExQUY7QzAwQzsxMTA4IDExNzAgMTFBRjsKK0MwMEQ7QzAwRDsxMTA4IDExNzAgMTFCMDtDMDBEOzExMDggMTE3MCAxMUIwOworQzAwRTtDMDBFOzExMDggMTE3MCAxMUIxO0MwMEU7MTEwOCAxMTcwIDExQjE7CitDMDBGO0MwMEY7MTEwOCAxMTcwIDExQjI7QzAwRjsxMTA4IDExNzAgMTFCMjsKK0MwMTA7QzAxMDsxMTA4IDExNzAgMTFCMztDMDEwOzExMDggMTE3MCAxMUIzOworQzAxMTtDMDExOzExMDggMTE3MCAxMUI0O0MwMTE7MTEwOCAxMTcwIDExQjQ7CitDMDEyO0MwMTI7MTEwOCAxMTcwIDExQjU7QzAxMjsxMTA4IDExNzAgMTFCNTsKK0MwMTM7QzAxMzsxMTA4IDExNzAgMTFCNjtDMDEzOzExMDggMTE3MCAxMUI2OworQzAxNDtDMDE0OzExMDggMTE3MCAxMUI3O0MwMTQ7MTEwOCAxMTcwIDExQjc7CitDMDE1O0MwMTU7MTEwOCAxMTcwIDExQjg7QzAxNTsxMTA4IDExNzAgMTFCODsKK0MwMTY7QzAxNjsxMTA4IDExNzAgMTFCOTtDMDE2OzExMDggMTE3MCAxMUI5OworQzAxNztDMDE3OzExMDggMTE3MCAxMUJBO0MwMTc7MTEwOCAxMTcwIDExQkE7CitDMDE4O0MwMTg7MTEwOCAxMTcwIDExQkI7QzAxODsxMTA4IDExNzAgMTFCQjsKK0MwMTk7QzAxOTsxMTA4IDExNzAgMTFCQztDMDE5OzExMDggMTE3MCAxMUJDOworQzAxQTtDMDFBOzExMDggMTE3MCAxMUJEO0MwMUE7MTEwOCAxMTcwIDExQkQ7CitDMDFCO0MwMUI7MTEwOCAxMTcwIDExQkU7QzAxQjsxMTA4IDExNzAgMTFCRTsKK0MwMUM7QzAxQzsxMTA4IDExNzAgMTFCRjtDMDFDOzExMDggMTE3MCAxMUJGOworQzAxRDtDMDFEOzExMDggMTE3MCAxMUMwO0MwMUQ7MTEwOCAxMTcwIDExQzA7CitDMDFFO0MwMUU7MTEwOCAxMTcwIDExQzE7QzAxRTsxMTA4IDExNzAgMTFDMTsKK0MwMUY7QzAxRjsxMTA4IDExNzAgMTFDMjtDMDFGOzExMDggMTE3MCAxMUMyOworQzAyMDtDMDIwOzExMDggMTE3MTtDMDIwOzExMDggMTE3MTsKK0MwMjE7QzAyMTsxMTA4IDExNzEgMTFBODtDMDIxOzExMDggMTE3MSAxMUE4OworQzAyMjtDMDIyOzExMDggMTE3MSAxMUE5O0MwMjI7MTEwOCAxMTcxIDExQTk7CitDMDIzO0MwMjM7MTEwOCAxMTcxIDExQUE7QzAyMzsxMTA4IDExNzEgMTFBQTsKK0MwMjQ7QzAyNDsxMTA4IDExNzEgMTFBQjtDMDI0OzExMDggMTE3MSAxMUFCOworQzAyNTtDMDI1OzExMDggMTE3MSAxMUFDO0MwMjU7MTEwOCAxMTcxIDExQUM7CitDMDI2O0MwMjY7MTEwOCAxMTcxIDExQUQ7QzAyNjsxMTA4IDExNzEgMTFBRDsKK0MwMjc7QzAyNzsxMTA4IDExNzEgMTFBRTtDMDI3OzExMDggMTE3MSAxMUFFOworQzAyODtDMDI4OzExMDggMTE3MSAxMUFGO0MwMjg7MTEwOCAxMTcxIDExQUY7CitDMDI5O0MwMjk7MTEwOCAxMTcxIDExQjA7QzAyOTsxMTA4IDExNzEgMTFCMDsKK0MwMkE7QzAyQTsxMTA4IDExNzEgMTFCMTtDMDJBOzExMDggMTE3MSAxMUIxOworQzAyQjtDMDJCOzExMDggMTE3MSAxMUIyO0MwMkI7MTEwOCAxMTcxIDExQjI7CitDMDJDO0MwMkM7MTEwOCAxMTcxIDExQjM7QzAyQzsxMTA4IDExNzEgMTFCMzsKK0MwMkQ7QzAyRDsxMTA4IDExNzEgMTFCNDtDMDJEOzExMDggMTE3MSAxMUI0OworQzAyRTtDMDJFOzExMDggMTE3MSAxMUI1O0MwMkU7MTEwOCAxMTcxIDExQjU7CitDMDJGO0MwMkY7MTEwOCAxMTcxIDExQjY7QzAyRjsxMTA4IDExNzEgMTFCNjsKK0MwMzA7QzAzMDsxMTA4IDExNzEgMTFCNztDMDMwOzExMDggMTE3MSAxMUI3OworQzAzMTtDMDMxOzExMDggMTE3MSAxMUI4O0MwMzE7MTEwOCAxMTcxIDExQjg7CitDMDMyO0MwMzI7MTEwOCAxMTcxIDExQjk7QzAzMjsxMTA4IDExNzEgMTFCOTsKK0MwMzM7QzAzMzsxMTA4IDExNzEgMTFCQTtDMDMzOzExMDggMTE3MSAxMUJBOworQzAzNDtDMDM0OzExMDggMTE3MSAxMUJCO0MwMzQ7MTEwOCAxMTcxIDExQkI7CitDMDM1O0MwMzU7MTEwOCAxMTcxIDExQkM7QzAzNTsxMTA4IDExNzEgMTFCQzsKK0MwMzY7QzAzNjsxMTA4IDExNzEgMTFCRDtDMDM2OzExMDggMTE3MSAxMUJEOworQzAzNztDMDM3OzExMDggMTE3MSAxMUJFO0MwMzc7MTEwOCAxMTcxIDExQkU7CitDMDM4O0MwMzg7MTEwOCAxMTcxIDExQkY7QzAzODsxMTA4IDExNzEgMTFCRjsKK0MwMzk7QzAzOTsxMTA4IDExNzEgMTFDMDtDMDM5OzExMDggMTE3MSAxMUMwOworQzAzQTtDMDNBOzExMDggMTE3MSAxMUMxO0MwM0E7MTEwOCAxMTcxIDExQzE7CitDMDNCO0MwM0I7MTEwOCAxMTcxIDExQzI7QzAzQjsxMTA4IDExNzEgMTFDMjsKK0MwM0M7QzAzQzsxMTA4IDExNzI7QzAzQzsxMTA4IDExNzI7CitDMDNEO0MwM0Q7MTEwOCAxMTcyIDExQTg7QzAzRDsxMTA4IDExNzIgMTFBODsKK0MwM0U7QzAzRTsxMTA4IDExNzIgMTFBOTtDMDNFOzExMDggMTE3MiAxMUE5OworQzAzRjtDMDNGOzExMDggMTE3MiAxMUFBO0MwM0Y7MTEwOCAxMTcyIDExQUE7CitDMDQwO0MwNDA7MTEwOCAxMTcyIDExQUI7QzA0MDsxMTA4IDExNzIgMTFBQjsKK0MwNDE7QzA0MTsxMTA4IDExNzIgMTFBQztDMDQxOzExMDggMTE3MiAxMUFDOworQzA0MjtDMDQyOzExMDggMTE3MiAxMUFEO0MwNDI7MTEwOCAxMTcyIDExQUQ7CitDMDQzO0MwNDM7MTEwOCAxMTcyIDExQUU7QzA0MzsxMTA4IDExNzIgMTFBRTsKK0MwNDQ7QzA0NDsxMTA4IDExNzIgMTFBRjtDMDQ0OzExMDggMTE3MiAxMUFGOworQzA0NTtDMDQ1OzExMDggMTE3MiAxMUIwO0MwNDU7MTEwOCAxMTcyIDExQjA7CitDMDQ2O0MwNDY7MTEwOCAxMTcyIDExQjE7QzA0NjsxMTA4IDExNzIgMTFCMTsKK0MwNDc7QzA0NzsxMTA4IDExNzIgMTFCMjtDMDQ3OzExMDggMTE3MiAxMUIyOworQzA0ODtDMDQ4OzExMDggMTE3MiAxMUIzO0MwNDg7MTEwOCAxMTcyIDExQjM7CitDMDQ5O0MwNDk7MTEwOCAxMTcyIDExQjQ7QzA0OTsxMTA4IDExNzIgMTFCNDsKK0MwNEE7QzA0QTsxMTA4IDExNzIgMTFCNTtDMDRBOzExMDggMTE3MiAxMUI1OworQzA0QjtDMDRCOzExMDggMTE3MiAxMUI2O0MwNEI7MTEwOCAxMTcyIDExQjY7CitDMDRDO0MwNEM7MTEwOCAxMTcyIDExQjc7QzA0QzsxMTA4IDExNzIgMTFCNzsKK0MwNEQ7QzA0RDsxMTA4IDExNzIgMTFCODtDMDREOzExMDggMTE3MiAxMUI4OworQzA0RTtDMDRFOzExMDggMTE3MiAxMUI5O0MwNEU7MTEwOCAxMTcyIDExQjk7CitDMDRGO0MwNEY7MTEwOCAxMTcyIDExQkE7QzA0RjsxMTA4IDExNzIgMTFCQTsKK0MwNTA7QzA1MDsxMTA4IDExNzIgMTFCQjtDMDUwOzExMDggMTE3MiAxMUJCOworQzA1MTtDMDUxOzExMDggMTE3MiAxMUJDO0MwNTE7MTEwOCAxMTcyIDExQkM7CitDMDUyO0MwNTI7MTEwOCAxMTcyIDExQkQ7QzA1MjsxMTA4IDExNzIgMTFCRDsKK0MwNTM7QzA1MzsxMTA4IDExNzIgMTFCRTtDMDUzOzExMDggMTE3MiAxMUJFOworQzA1NDtDMDU0OzExMDggMTE3MiAxMUJGO0MwNTQ7MTEwOCAxMTcyIDExQkY7CitDMDU1O0MwNTU7MTEwOCAxMTcyIDExQzA7QzA1NTsxMTA4IDExNzIgMTFDMDsKK0MwNTY7QzA1NjsxMTA4IDExNzIgMTFDMTtDMDU2OzExMDggMTE3MiAxMUMxOworQzA1NztDMDU3OzExMDggMTE3MiAxMUMyO0MwNTc7MTEwOCAxMTcyIDExQzI7CitDMDU4O0MwNTg7MTEwOCAxMTczO0MwNTg7MTEwOCAxMTczOworQzA1OTtDMDU5OzExMDggMTE3MyAxMUE4O0MwNTk7MTEwOCAxMTczIDExQTg7CitDMDVBO0MwNUE7MTEwOCAxMTczIDExQTk7QzA1QTsxMTA4IDExNzMgMTFBOTsKK0MwNUI7QzA1QjsxMTA4IDExNzMgMTFBQTtDMDVCOzExMDggMTE3MyAxMUFBOworQzA1QztDMDVDOzExMDggMTE3MyAxMUFCO0MwNUM7MTEwOCAxMTczIDExQUI7CitDMDVEO0MwNUQ7MTEwOCAxMTczIDExQUM7QzA1RDsxMTA4IDExNzMgMTFBQzsKK0MwNUU7QzA1RTsxMTA4IDExNzMgMTFBRDtDMDVFOzExMDggMTE3MyAxMUFEOworQzA1RjtDMDVGOzExMDggMTE3MyAxMUFFO0MwNUY7MTEwOCAxMTczIDExQUU7CitDMDYwO0MwNjA7MTEwOCAxMTczIDExQUY7QzA2MDsxMTA4IDExNzMgMTFBRjsKK0MwNjE7QzA2MTsxMTA4IDExNzMgMTFCMDtDMDYxOzExMDggMTE3MyAxMUIwOworQzA2MjtDMDYyOzExMDggMTE3MyAxMUIxO0MwNjI7MTEwOCAxMTczIDExQjE7CitDMDYzO0MwNjM7MTEwOCAxMTczIDExQjI7QzA2MzsxMTA4IDExNzMgMTFCMjsKK0MwNjQ7QzA2NDsxMTA4IDExNzMgMTFCMztDMDY0OzExMDggMTE3MyAxMUIzOworQzA2NTtDMDY1OzExMDggMTE3MyAxMUI0O0MwNjU7MTEwOCAxMTczIDExQjQ7CitDMDY2O0MwNjY7MTEwOCAxMTczIDExQjU7QzA2NjsxMTA4IDExNzMgMTFCNTsKK0MwNjc7QzA2NzsxMTA4IDExNzMgMTFCNjtDMDY3OzExMDggMTE3MyAxMUI2OworQzA2ODtDMDY4OzExMDggMTE3MyAxMUI3O0MwNjg7MTEwOCAxMTczIDExQjc7CitDMDY5O0MwNjk7MTEwOCAxMTczIDExQjg7QzA2OTsxMTA4IDExNzMgMTFCODsKK0MwNkE7QzA2QTsxMTA4IDExNzMgMTFCOTtDMDZBOzExMDggMTE3MyAxMUI5OworQzA2QjtDMDZCOzExMDggMTE3MyAxMUJBO0MwNkI7MTEwOCAxMTczIDExQkE7CitDMDZDO0MwNkM7MTEwOCAxMTczIDExQkI7QzA2QzsxMTA4IDExNzMgMTFCQjsKK0MwNkQ7QzA2RDsxMTA4IDExNzMgMTFCQztDMDZEOzExMDggMTE3MyAxMUJDOworQzA2RTtDMDZFOzExMDggMTE3MyAxMUJEO0MwNkU7MTEwOCAxMTczIDExQkQ7CitDMDZGO0MwNkY7MTEwOCAxMTczIDExQkU7QzA2RjsxMTA4IDExNzMgMTFCRTsKK0MwNzA7QzA3MDsxMTA4IDExNzMgMTFCRjtDMDcwOzExMDggMTE3MyAxMUJGOworQzA3MTtDMDcxOzExMDggMTE3MyAxMUMwO0MwNzE7MTEwOCAxMTczIDExQzA7CitDMDcyO0MwNzI7MTEwOCAxMTczIDExQzE7QzA3MjsxMTA4IDExNzMgMTFDMTsKK0MwNzM7QzA3MzsxMTA4IDExNzMgMTFDMjtDMDczOzExMDggMTE3MyAxMUMyOworQzA3NDtDMDc0OzExMDggMTE3NDtDMDc0OzExMDggMTE3NDsKK0MwNzU7QzA3NTsxMTA4IDExNzQgMTFBODtDMDc1OzExMDggMTE3NCAxMUE4OworQzA3NjtDMDc2OzExMDggMTE3NCAxMUE5O0MwNzY7MTEwOCAxMTc0IDExQTk7CitDMDc3O0MwNzc7MTEwOCAxMTc0IDExQUE7QzA3NzsxMTA4IDExNzQgMTFBQTsKK0MwNzg7QzA3ODsxMTA4IDExNzQgMTFBQjtDMDc4OzExMDggMTE3NCAxMUFCOworQzA3OTtDMDc5OzExMDggMTE3NCAxMUFDO0MwNzk7MTEwOCAxMTc0IDExQUM7CitDMDdBO0MwN0E7MTEwOCAxMTc0IDExQUQ7QzA3QTsxMTA4IDExNzQgMTFBRDsKK0MwN0I7QzA3QjsxMTA4IDExNzQgMTFBRTtDMDdCOzExMDggMTE3NCAxMUFFOworQzA3QztDMDdDOzExMDggMTE3NCAxMUFGO0MwN0M7MTEwOCAxMTc0IDExQUY7CitDMDdEO0MwN0Q7MTEwOCAxMTc0IDExQjA7QzA3RDsxMTA4IDExNzQgMTFCMDsKK0MwN0U7QzA3RTsxMTA4IDExNzQgMTFCMTtDMDdFOzExMDggMTE3NCAxMUIxOworQzA3RjtDMDdGOzExMDggMTE3NCAxMUIyO0MwN0Y7MTEwOCAxMTc0IDExQjI7CitDMDgwO0MwODA7MTEwOCAxMTc0IDExQjM7QzA4MDsxMTA4IDExNzQgMTFCMzsKK0MwODE7QzA4MTsxMTA4IDExNzQgMTFCNDtDMDgxOzExMDggMTE3NCAxMUI0OworQzA4MjtDMDgyOzExMDggMTE3NCAxMUI1O0MwODI7MTEwOCAxMTc0IDExQjU7CitDMDgzO0MwODM7MTEwOCAxMTc0IDExQjY7QzA4MzsxMTA4IDExNzQgMTFCNjsKK0MwODQ7QzA4NDsxMTA4IDExNzQgMTFCNztDMDg0OzExMDggMTE3NCAxMUI3OworQzA4NTtDMDg1OzExMDggMTE3NCAxMUI4O0MwODU7MTEwOCAxMTc0IDExQjg7CitDMDg2O0MwODY7MTEwOCAxMTc0IDExQjk7QzA4NjsxMTA4IDExNzQgMTFCOTsKK0MwODc7QzA4NzsxMTA4IDExNzQgMTFCQTtDMDg3OzExMDggMTE3NCAxMUJBOworQzA4ODtDMDg4OzExMDggMTE3NCAxMUJCO0MwODg7MTEwOCAxMTc0IDExQkI7CitDMDg5O0MwODk7MTEwOCAxMTc0IDExQkM7QzA4OTsxMTA4IDExNzQgMTFCQzsKK0MwOEE7QzA4QTsxMTA4IDExNzQgMTFCRDtDMDhBOzExMDggMTE3NCAxMUJEOworQzA4QjtDMDhCOzExMDggMTE3NCAxMUJFO0MwOEI7MTEwOCAxMTc0IDExQkU7CitDMDhDO0MwOEM7MTEwOCAxMTc0IDExQkY7QzA4QzsxMTA4IDExNzQgMTFCRjsKK0MwOEQ7QzA4RDsxMTA4IDExNzQgMTFDMDtDMDhEOzExMDggMTE3NCAxMUMwOworQzA4RTtDMDhFOzExMDggMTE3NCAxMUMxO0MwOEU7MTEwOCAxMTc0IDExQzE7CitDMDhGO0MwOEY7MTEwOCAxMTc0IDExQzI7QzA4RjsxMTA4IDExNzQgMTFDMjsKK0MwOTA7QzA5MDsxMTA4IDExNzU7QzA5MDsxMTA4IDExNzU7CitDMDkxO0MwOTE7MTEwOCAxMTc1IDExQTg7QzA5MTsxMTA4IDExNzUgMTFBODsKK0MwOTI7QzA5MjsxMTA4IDExNzUgMTFBOTtDMDkyOzExMDggMTE3NSAxMUE5OworQzA5MztDMDkzOzExMDggMTE3NSAxMUFBO0MwOTM7MTEwOCAxMTc1IDExQUE7CitDMDk0O0MwOTQ7MTEwOCAxMTc1IDExQUI7QzA5NDsxMTA4IDExNzUgMTFBQjsKK0MwOTU7QzA5NTsxMTA4IDExNzUgMTFBQztDMDk1OzExMDggMTE3NSAxMUFDOworQzA5NjtDMDk2OzExMDggMTE3NSAxMUFEO0MwOTY7MTEwOCAxMTc1IDExQUQ7CitDMDk3O0MwOTc7MTEwOCAxMTc1IDExQUU7QzA5NzsxMTA4IDExNzUgMTFBRTsKK0MwOTg7QzA5ODsxMTA4IDExNzUgMTFBRjtDMDk4OzExMDggMTE3NSAxMUFGOworQzA5OTtDMDk5OzExMDggMTE3NSAxMUIwO0MwOTk7MTEwOCAxMTc1IDExQjA7CitDMDlBO0MwOUE7MTEwOCAxMTc1IDExQjE7QzA5QTsxMTA4IDExNzUgMTFCMTsKK0MwOUI7QzA5QjsxMTA4IDExNzUgMTFCMjtDMDlCOzExMDggMTE3NSAxMUIyOworQzA5QztDMDlDOzExMDggMTE3NSAxMUIzO0MwOUM7MTEwOCAxMTc1IDExQjM7CitDMDlEO0MwOUQ7MTEwOCAxMTc1IDExQjQ7QzA5RDsxMTA4IDExNzUgMTFCNDsKK0MwOUU7QzA5RTsxMTA4IDExNzUgMTFCNTtDMDlFOzExMDggMTE3NSAxMUI1OworQzA5RjtDMDlGOzExMDggMTE3NSAxMUI2O0MwOUY7MTEwOCAxMTc1IDExQjY7CitDMEEwO0MwQTA7MTEwOCAxMTc1IDExQjc7QzBBMDsxMTA4IDExNzUgMTFCNzsKK0MwQTE7QzBBMTsxMTA4IDExNzUgMTFCODtDMEExOzExMDggMTE3NSAxMUI4OworQzBBMjtDMEEyOzExMDggMTE3NSAxMUI5O0MwQTI7MTEwOCAxMTc1IDExQjk7CitDMEEzO0MwQTM7MTEwOCAxMTc1IDExQkE7QzBBMzsxMTA4IDExNzUgMTFCQTsKK0MwQTQ7QzBBNDsxMTA4IDExNzUgMTFCQjtDMEE0OzExMDggMTE3NSAxMUJCOworQzBBNTtDMEE1OzExMDggMTE3NSAxMUJDO0MwQTU7MTEwOCAxMTc1IDExQkM7CitDMEE2O0MwQTY7MTEwOCAxMTc1IDExQkQ7QzBBNjsxMTA4IDExNzUgMTFCRDsKK0MwQTc7QzBBNzsxMTA4IDExNzUgMTFCRTtDMEE3OzExMDggMTE3NSAxMUJFOworQzBBODtDMEE4OzExMDggMTE3NSAxMUJGO0MwQTg7MTEwOCAxMTc1IDExQkY7CitDMEE5O0MwQTk7MTEwOCAxMTc1IDExQzA7QzBBOTsxMTA4IDExNzUgMTFDMDsKK0MwQUE7QzBBQTsxMTA4IDExNzUgMTFDMTtDMEFBOzExMDggMTE3NSAxMUMxOworQzBBQjtDMEFCOzExMDggMTE3NSAxMUMyO0MwQUI7MTEwOCAxMTc1IDExQzI7CitDMEFDO0MwQUM7MTEwOSAxMTYxO0MwQUM7MTEwOSAxMTYxOworQzBBRDtDMEFEOzExMDkgMTE2MSAxMUE4O0MwQUQ7MTEwOSAxMTYxIDExQTg7CitDMEFFO0MwQUU7MTEwOSAxMTYxIDExQTk7QzBBRTsxMTA5IDExNjEgMTFBOTsKK0MwQUY7QzBBRjsxMTA5IDExNjEgMTFBQTtDMEFGOzExMDkgMTE2MSAxMUFBOworQzBCMDtDMEIwOzExMDkgMTE2MSAxMUFCO0MwQjA7MTEwOSAxMTYxIDExQUI7CitDMEIxO0MwQjE7MTEwOSAxMTYxIDExQUM7QzBCMTsxMTA5IDExNjEgMTFBQzsKK0MwQjI7QzBCMjsxMTA5IDExNjEgMTFBRDtDMEIyOzExMDkgMTE2MSAxMUFEOworQzBCMztDMEIzOzExMDkgMTE2MSAxMUFFO0MwQjM7MTEwOSAxMTYxIDExQUU7CitDMEI0O0MwQjQ7MTEwOSAxMTYxIDExQUY7QzBCNDsxMTA5IDExNjEgMTFBRjsKK0MwQjU7QzBCNTsxMTA5IDExNjEgMTFCMDtDMEI1OzExMDkgMTE2MSAxMUIwOworQzBCNjtDMEI2OzExMDkgMTE2MSAxMUIxO0MwQjY7MTEwOSAxMTYxIDExQjE7CitDMEI3O0MwQjc7MTEwOSAxMTYxIDExQjI7QzBCNzsxMTA5IDExNjEgMTFCMjsKK0MwQjg7QzBCODsxMTA5IDExNjEgMTFCMztDMEI4OzExMDkgMTE2MSAxMUIzOworQzBCOTtDMEI5OzExMDkgMTE2MSAxMUI0O0MwQjk7MTEwOSAxMTYxIDExQjQ7CitDMEJBO0MwQkE7MTEwOSAxMTYxIDExQjU7QzBCQTsxMTA5IDExNjEgMTFCNTsKK0MwQkI7QzBCQjsxMTA5IDExNjEgMTFCNjtDMEJCOzExMDkgMTE2MSAxMUI2OworQzBCQztDMEJDOzExMDkgMTE2MSAxMUI3O0MwQkM7MTEwOSAxMTYxIDExQjc7CitDMEJEO0MwQkQ7MTEwOSAxMTYxIDExQjg7QzBCRDsxMTA5IDExNjEgMTFCODsKK0MwQkU7QzBCRTsxMTA5IDExNjEgMTFCOTtDMEJFOzExMDkgMTE2MSAxMUI5OworQzBCRjtDMEJGOzExMDkgMTE2MSAxMUJBO0MwQkY7MTEwOSAxMTYxIDExQkE7CitDMEMwO0MwQzA7MTEwOSAxMTYxIDExQkI7QzBDMDsxMTA5IDExNjEgMTFCQjsKK0MwQzE7QzBDMTsxMTA5IDExNjEgMTFCQztDMEMxOzExMDkgMTE2MSAxMUJDOworQzBDMjtDMEMyOzExMDkgMTE2MSAxMUJEO0MwQzI7MTEwOSAxMTYxIDExQkQ7CitDMEMzO0MwQzM7MTEwOSAxMTYxIDExQkU7QzBDMzsxMTA5IDExNjEgMTFCRTsKK0MwQzQ7QzBDNDsxMTA5IDExNjEgMTFCRjtDMEM0OzExMDkgMTE2MSAxMUJGOworQzBDNTtDMEM1OzExMDkgMTE2MSAxMUMwO0MwQzU7MTEwOSAxMTYxIDExQzA7CitDMEM2O0MwQzY7MTEwOSAxMTYxIDExQzE7QzBDNjsxMTA5IDExNjEgMTFDMTsKK0MwQzc7QzBDNzsxMTA5IDExNjEgMTFDMjtDMEM3OzExMDkgMTE2MSAxMUMyOworQzBDODtDMEM4OzExMDkgMTE2MjtDMEM4OzExMDkgMTE2MjsKK0MwQzk7QzBDOTsxMTA5IDExNjIgMTFBODtDMEM5OzExMDkgMTE2MiAxMUE4OworQzBDQTtDMENBOzExMDkgMTE2MiAxMUE5O0MwQ0E7MTEwOSAxMTYyIDExQTk7CitDMENCO0MwQ0I7MTEwOSAxMTYyIDExQUE7QzBDQjsxMTA5IDExNjIgMTFBQTsKK0MwQ0M7QzBDQzsxMTA5IDExNjIgMTFBQjtDMENDOzExMDkgMTE2MiAxMUFCOworQzBDRDtDMENEOzExMDkgMTE2MiAxMUFDO0MwQ0Q7MTEwOSAxMTYyIDExQUM7CitDMENFO0MwQ0U7MTEwOSAxMTYyIDExQUQ7QzBDRTsxMTA5IDExNjIgMTFBRDsKK0MwQ0Y7QzBDRjsxMTA5IDExNjIgMTFBRTtDMENGOzExMDkgMTE2MiAxMUFFOworQzBEMDtDMEQwOzExMDkgMTE2MiAxMUFGO0MwRDA7MTEwOSAxMTYyIDExQUY7CitDMEQxO0MwRDE7MTEwOSAxMTYyIDExQjA7QzBEMTsxMTA5IDExNjIgMTFCMDsKK0MwRDI7QzBEMjsxMTA5IDExNjIgMTFCMTtDMEQyOzExMDkgMTE2MiAxMUIxOworQzBEMztDMEQzOzExMDkgMTE2MiAxMUIyO0MwRDM7MTEwOSAxMTYyIDExQjI7CitDMEQ0O0MwRDQ7MTEwOSAxMTYyIDExQjM7QzBENDsxMTA5IDExNjIgMTFCMzsKK0MwRDU7QzBENTsxMTA5IDExNjIgMTFCNDtDMEQ1OzExMDkgMTE2MiAxMUI0OworQzBENjtDMEQ2OzExMDkgMTE2MiAxMUI1O0MwRDY7MTEwOSAxMTYyIDExQjU7CitDMEQ3O0MwRDc7MTEwOSAxMTYyIDExQjY7QzBENzsxMTA5IDExNjIgMTFCNjsKK0MwRDg7QzBEODsxMTA5IDExNjIgMTFCNztDMEQ4OzExMDkgMTE2MiAxMUI3OworQzBEOTtDMEQ5OzExMDkgMTE2MiAxMUI4O0MwRDk7MTEwOSAxMTYyIDExQjg7CitDMERBO0MwREE7MTEwOSAxMTYyIDExQjk7QzBEQTsxMTA5IDExNjIgMTFCOTsKK0MwREI7QzBEQjsxMTA5IDExNjIgMTFCQTtDMERCOzExMDkgMTE2MiAxMUJBOworQzBEQztDMERDOzExMDkgMTE2MiAxMUJCO0MwREM7MTEwOSAxMTYyIDExQkI7CitDMEREO0MwREQ7MTEwOSAxMTYyIDExQkM7QzBERDsxMTA5IDExNjIgMTFCQzsKK0MwREU7QzBERTsxMTA5IDExNjIgMTFCRDtDMERFOzExMDkgMTE2MiAxMUJEOworQzBERjtDMERGOzExMDkgMTE2MiAxMUJFO0MwREY7MTEwOSAxMTYyIDExQkU7CitDMEUwO0MwRTA7MTEwOSAxMTYyIDExQkY7QzBFMDsxMTA5IDExNjIgMTFCRjsKK0MwRTE7QzBFMTsxMTA5IDExNjIgMTFDMDtDMEUxOzExMDkgMTE2MiAxMUMwOworQzBFMjtDMEUyOzExMDkgMTE2MiAxMUMxO0MwRTI7MTEwOSAxMTYyIDExQzE7CitDMEUzO0MwRTM7MTEwOSAxMTYyIDExQzI7QzBFMzsxMTA5IDExNjIgMTFDMjsKK0MwRTQ7QzBFNDsxMTA5IDExNjM7QzBFNDsxMTA5IDExNjM7CitDMEU1O0MwRTU7MTEwOSAxMTYzIDExQTg7QzBFNTsxMTA5IDExNjMgMTFBODsKK0MwRTY7QzBFNjsxMTA5IDExNjMgMTFBOTtDMEU2OzExMDkgMTE2MyAxMUE5OworQzBFNztDMEU3OzExMDkgMTE2MyAxMUFBO0MwRTc7MTEwOSAxMTYzIDExQUE7CitDMEU4O0MwRTg7MTEwOSAxMTYzIDExQUI7QzBFODsxMTA5IDExNjMgMTFBQjsKK0MwRTk7QzBFOTsxMTA5IDExNjMgMTFBQztDMEU5OzExMDkgMTE2MyAxMUFDOworQzBFQTtDMEVBOzExMDkgMTE2MyAxMUFEO0MwRUE7MTEwOSAxMTYzIDExQUQ7CitDMEVCO0MwRUI7MTEwOSAxMTYzIDExQUU7QzBFQjsxMTA5IDExNjMgMTFBRTsKK0MwRUM7QzBFQzsxMTA5IDExNjMgMTFBRjtDMEVDOzExMDkgMTE2MyAxMUFGOworQzBFRDtDMEVEOzExMDkgMTE2MyAxMUIwO0MwRUQ7MTEwOSAxMTYzIDExQjA7CitDMEVFO0MwRUU7MTEwOSAxMTYzIDExQjE7QzBFRTsxMTA5IDExNjMgMTFCMTsKK0MwRUY7QzBFRjsxMTA5IDExNjMgMTFCMjtDMEVGOzExMDkgMTE2MyAxMUIyOworQzBGMDtDMEYwOzExMDkgMTE2MyAxMUIzO0MwRjA7MTEwOSAxMTYzIDExQjM7CitDMEYxO0MwRjE7MTEwOSAxMTYzIDExQjQ7QzBGMTsxMTA5IDExNjMgMTFCNDsKK0MwRjI7QzBGMjsxMTA5IDExNjMgMTFCNTtDMEYyOzExMDkgMTE2MyAxMUI1OworQzBGMztDMEYzOzExMDkgMTE2MyAxMUI2O0MwRjM7MTEwOSAxMTYzIDExQjY7CitDMEY0O0MwRjQ7MTEwOSAxMTYzIDExQjc7QzBGNDsxMTA5IDExNjMgMTFCNzsKK0MwRjU7QzBGNTsxMTA5IDExNjMgMTFCODtDMEY1OzExMDkgMTE2MyAxMUI4OworQzBGNjtDMEY2OzExMDkgMTE2MyAxMUI5O0MwRjY7MTEwOSAxMTYzIDExQjk7CitDMEY3O0MwRjc7MTEwOSAxMTYzIDExQkE7QzBGNzsxMTA5IDExNjMgMTFCQTsKK0MwRjg7QzBGODsxMTA5IDExNjMgMTFCQjtDMEY4OzExMDkgMTE2MyAxMUJCOworQzBGOTtDMEY5OzExMDkgMTE2MyAxMUJDO0MwRjk7MTEwOSAxMTYzIDExQkM7CitDMEZBO0MwRkE7MTEwOSAxMTYzIDExQkQ7QzBGQTsxMTA5IDExNjMgMTFCRDsKK0MwRkI7QzBGQjsxMTA5IDExNjMgMTFCRTtDMEZCOzExMDkgMTE2MyAxMUJFOworQzBGQztDMEZDOzExMDkgMTE2MyAxMUJGO0MwRkM7MTEwOSAxMTYzIDExQkY7CitDMEZEO0MwRkQ7MTEwOSAxMTYzIDExQzA7QzBGRDsxMTA5IDExNjMgMTFDMDsKK0MwRkU7QzBGRTsxMTA5IDExNjMgMTFDMTtDMEZFOzExMDkgMTE2MyAxMUMxOworQzBGRjtDMEZGOzExMDkgMTE2MyAxMUMyO0MwRkY7MTEwOSAxMTYzIDExQzI7CitDMTAwO0MxMDA7MTEwOSAxMTY0O0MxMDA7MTEwOSAxMTY0OworQzEwMTtDMTAxOzExMDkgMTE2NCAxMUE4O0MxMDE7MTEwOSAxMTY0IDExQTg7CitDMTAyO0MxMDI7MTEwOSAxMTY0IDExQTk7QzEwMjsxMTA5IDExNjQgMTFBOTsKK0MxMDM7QzEwMzsxMTA5IDExNjQgMTFBQTtDMTAzOzExMDkgMTE2NCAxMUFBOworQzEwNDtDMTA0OzExMDkgMTE2NCAxMUFCO0MxMDQ7MTEwOSAxMTY0IDExQUI7CitDMTA1O0MxMDU7MTEwOSAxMTY0IDExQUM7QzEwNTsxMTA5IDExNjQgMTFBQzsKK0MxMDY7QzEwNjsxMTA5IDExNjQgMTFBRDtDMTA2OzExMDkgMTE2NCAxMUFEOworQzEwNztDMTA3OzExMDkgMTE2NCAxMUFFO0MxMDc7MTEwOSAxMTY0IDExQUU7CitDMTA4O0MxMDg7MTEwOSAxMTY0IDExQUY7QzEwODsxMTA5IDExNjQgMTFBRjsKK0MxMDk7QzEwOTsxMTA5IDExNjQgMTFCMDtDMTA5OzExMDkgMTE2NCAxMUIwOworQzEwQTtDMTBBOzExMDkgMTE2NCAxMUIxO0MxMEE7MTEwOSAxMTY0IDExQjE7CitDMTBCO0MxMEI7MTEwOSAxMTY0IDExQjI7QzEwQjsxMTA5IDExNjQgMTFCMjsKK0MxMEM7QzEwQzsxMTA5IDExNjQgMTFCMztDMTBDOzExMDkgMTE2NCAxMUIzOworQzEwRDtDMTBEOzExMDkgMTE2NCAxMUI0O0MxMEQ7MTEwOSAxMTY0IDExQjQ7CitDMTBFO0MxMEU7MTEwOSAxMTY0IDExQjU7QzEwRTsxMTA5IDExNjQgMTFCNTsKK0MxMEY7QzEwRjsxMTA5IDExNjQgMTFCNjtDMTBGOzExMDkgMTE2NCAxMUI2OworQzExMDtDMTEwOzExMDkgMTE2NCAxMUI3O0MxMTA7MTEwOSAxMTY0IDExQjc7CitDMTExO0MxMTE7MTEwOSAxMTY0IDExQjg7QzExMTsxMTA5IDExNjQgMTFCODsKK0MxMTI7QzExMjsxMTA5IDExNjQgMTFCOTtDMTEyOzExMDkgMTE2NCAxMUI5OworQzExMztDMTEzOzExMDkgMTE2NCAxMUJBO0MxMTM7MTEwOSAxMTY0IDExQkE7CitDMTE0O0MxMTQ7MTEwOSAxMTY0IDExQkI7QzExNDsxMTA5IDExNjQgMTFCQjsKK0MxMTU7QzExNTsxMTA5IDExNjQgMTFCQztDMTE1OzExMDkgMTE2NCAxMUJDOworQzExNjtDMTE2OzExMDkgMTE2NCAxMUJEO0MxMTY7MTEwOSAxMTY0IDExQkQ7CitDMTE3O0MxMTc7MTEwOSAxMTY0IDExQkU7QzExNzsxMTA5IDExNjQgMTFCRTsKK0MxMTg7QzExODsxMTA5IDExNjQgMTFCRjtDMTE4OzExMDkgMTE2NCAxMUJGOworQzExOTtDMTE5OzExMDkgMTE2NCAxMUMwO0MxMTk7MTEwOSAxMTY0IDExQzA7CitDMTFBO0MxMUE7MTEwOSAxMTY0IDExQzE7QzExQTsxMTA5IDExNjQgMTFDMTsKK0MxMUI7QzExQjsxMTA5IDExNjQgMTFDMjtDMTFCOzExMDkgMTE2NCAxMUMyOworQzExQztDMTFDOzExMDkgMTE2NTtDMTFDOzExMDkgMTE2NTsKK0MxMUQ7QzExRDsxMTA5IDExNjUgMTFBODtDMTFEOzExMDkgMTE2NSAxMUE4OworQzExRTtDMTFFOzExMDkgMTE2NSAxMUE5O0MxMUU7MTEwOSAxMTY1IDExQTk7CitDMTFGO0MxMUY7MTEwOSAxMTY1IDExQUE7QzExRjsxMTA5IDExNjUgMTFBQTsKK0MxMjA7QzEyMDsxMTA5IDExNjUgMTFBQjtDMTIwOzExMDkgMTE2NSAxMUFCOworQzEyMTtDMTIxOzExMDkgMTE2NSAxMUFDO0MxMjE7MTEwOSAxMTY1IDExQUM7CitDMTIyO0MxMjI7MTEwOSAxMTY1IDExQUQ7QzEyMjsxMTA5IDExNjUgMTFBRDsKK0MxMjM7QzEyMzsxMTA5IDExNjUgMTFBRTtDMTIzOzExMDkgMTE2NSAxMUFFOworQzEyNDtDMTI0OzExMDkgMTE2NSAxMUFGO0MxMjQ7MTEwOSAxMTY1IDExQUY7CitDMTI1O0MxMjU7MTEwOSAxMTY1IDExQjA7QzEyNTsxMTA5IDExNjUgMTFCMDsKK0MxMjY7QzEyNjsxMTA5IDExNjUgMTFCMTtDMTI2OzExMDkgMTE2NSAxMUIxOworQzEyNztDMTI3OzExMDkgMTE2NSAxMUIyO0MxMjc7MTEwOSAxMTY1IDExQjI7CitDMTI4O0MxMjg7MTEwOSAxMTY1IDExQjM7QzEyODsxMTA5IDExNjUgMTFCMzsKK0MxMjk7QzEyOTsxMTA5IDExNjUgMTFCNDtDMTI5OzExMDkgMTE2NSAxMUI0OworQzEyQTtDMTJBOzExMDkgMTE2NSAxMUI1O0MxMkE7MTEwOSAxMTY1IDExQjU7CitDMTJCO0MxMkI7MTEwOSAxMTY1IDExQjY7QzEyQjsxMTA5IDExNjUgMTFCNjsKK0MxMkM7QzEyQzsxMTA5IDExNjUgMTFCNztDMTJDOzExMDkgMTE2NSAxMUI3OworQzEyRDtDMTJEOzExMDkgMTE2NSAxMUI4O0MxMkQ7MTEwOSAxMTY1IDExQjg7CitDMTJFO0MxMkU7MTEwOSAxMTY1IDExQjk7QzEyRTsxMTA5IDExNjUgMTFCOTsKK0MxMkY7QzEyRjsxMTA5IDExNjUgMTFCQTtDMTJGOzExMDkgMTE2NSAxMUJBOworQzEzMDtDMTMwOzExMDkgMTE2NSAxMUJCO0MxMzA7MTEwOSAxMTY1IDExQkI7CitDMTMxO0MxMzE7MTEwOSAxMTY1IDExQkM7QzEzMTsxMTA5IDExNjUgMTFCQzsKK0MxMzI7QzEzMjsxMTA5IDExNjUgMTFCRDtDMTMyOzExMDkgMTE2NSAxMUJEOworQzEzMztDMTMzOzExMDkgMTE2NSAxMUJFO0MxMzM7MTEwOSAxMTY1IDExQkU7CitDMTM0O0MxMzQ7MTEwOSAxMTY1IDExQkY7QzEzNDsxMTA5IDExNjUgMTFCRjsKK0MxMzU7QzEzNTsxMTA5IDExNjUgMTFDMDtDMTM1OzExMDkgMTE2NSAxMUMwOworQzEzNjtDMTM2OzExMDkgMTE2NSAxMUMxO0MxMzY7MTEwOSAxMTY1IDExQzE7CitDMTM3O0MxMzc7MTEwOSAxMTY1IDExQzI7QzEzNzsxMTA5IDExNjUgMTFDMjsKK0MxMzg7QzEzODsxMTA5IDExNjY7QzEzODsxMTA5IDExNjY7CitDMTM5O0MxMzk7MTEwOSAxMTY2IDExQTg7QzEzOTsxMTA5IDExNjYgMTFBODsKK0MxM0E7QzEzQTsxMTA5IDExNjYgMTFBOTtDMTNBOzExMDkgMTE2NiAxMUE5OworQzEzQjtDMTNCOzExMDkgMTE2NiAxMUFBO0MxM0I7MTEwOSAxMTY2IDExQUE7CitDMTNDO0MxM0M7MTEwOSAxMTY2IDExQUI7QzEzQzsxMTA5IDExNjYgMTFBQjsKK0MxM0Q7QzEzRDsxMTA5IDExNjYgMTFBQztDMTNEOzExMDkgMTE2NiAxMUFDOworQzEzRTtDMTNFOzExMDkgMTE2NiAxMUFEO0MxM0U7MTEwOSAxMTY2IDExQUQ7CitDMTNGO0MxM0Y7MTEwOSAxMTY2IDExQUU7QzEzRjsxMTA5IDExNjYgMTFBRTsKK0MxNDA7QzE0MDsxMTA5IDExNjYgMTFBRjtDMTQwOzExMDkgMTE2NiAxMUFGOworQzE0MTtDMTQxOzExMDkgMTE2NiAxMUIwO0MxNDE7MTEwOSAxMTY2IDExQjA7CitDMTQyO0MxNDI7MTEwOSAxMTY2IDExQjE7QzE0MjsxMTA5IDExNjYgMTFCMTsKK0MxNDM7QzE0MzsxMTA5IDExNjYgMTFCMjtDMTQzOzExMDkgMTE2NiAxMUIyOworQzE0NDtDMTQ0OzExMDkgMTE2NiAxMUIzO0MxNDQ7MTEwOSAxMTY2IDExQjM7CitDMTQ1O0MxNDU7MTEwOSAxMTY2IDExQjQ7QzE0NTsxMTA5IDExNjYgMTFCNDsKK0MxNDY7QzE0NjsxMTA5IDExNjYgMTFCNTtDMTQ2OzExMDkgMTE2NiAxMUI1OworQzE0NztDMTQ3OzExMDkgMTE2NiAxMUI2O0MxNDc7MTEwOSAxMTY2IDExQjY7CitDMTQ4O0MxNDg7MTEwOSAxMTY2IDExQjc7QzE0ODsxMTA5IDExNjYgMTFCNzsKK0MxNDk7QzE0OTsxMTA5IDExNjYgMTFCODtDMTQ5OzExMDkgMTE2NiAxMUI4OworQzE0QTtDMTRBOzExMDkgMTE2NiAxMUI5O0MxNEE7MTEwOSAxMTY2IDExQjk7CitDMTRCO0MxNEI7MTEwOSAxMTY2IDExQkE7QzE0QjsxMTA5IDExNjYgMTFCQTsKK0MxNEM7QzE0QzsxMTA5IDExNjYgMTFCQjtDMTRDOzExMDkgMTE2NiAxMUJCOworQzE0RDtDMTREOzExMDkgMTE2NiAxMUJDO0MxNEQ7MTEwOSAxMTY2IDExQkM7CitDMTRFO0MxNEU7MTEwOSAxMTY2IDExQkQ7QzE0RTsxMTA5IDExNjYgMTFCRDsKK0MxNEY7QzE0RjsxMTA5IDExNjYgMTFCRTtDMTRGOzExMDkgMTE2NiAxMUJFOworQzE1MDtDMTUwOzExMDkgMTE2NiAxMUJGO0MxNTA7MTEwOSAxMTY2IDExQkY7CitDMTUxO0MxNTE7MTEwOSAxMTY2IDExQzA7QzE1MTsxMTA5IDExNjYgMTFDMDsKK0MxNTI7QzE1MjsxMTA5IDExNjYgMTFDMTtDMTUyOzExMDkgMTE2NiAxMUMxOworQzE1MztDMTUzOzExMDkgMTE2NiAxMUMyO0MxNTM7MTEwOSAxMTY2IDExQzI7CitDMTU0O0MxNTQ7MTEwOSAxMTY3O0MxNTQ7MTEwOSAxMTY3OworQzE1NTtDMTU1OzExMDkgMTE2NyAxMUE4O0MxNTU7MTEwOSAxMTY3IDExQTg7CitDMTU2O0MxNTY7MTEwOSAxMTY3IDExQTk7QzE1NjsxMTA5IDExNjcgMTFBOTsKK0MxNTc7QzE1NzsxMTA5IDExNjcgMTFBQTtDMTU3OzExMDkgMTE2NyAxMUFBOworQzE1ODtDMTU4OzExMDkgMTE2NyAxMUFCO0MxNTg7MTEwOSAxMTY3IDExQUI7CitDMTU5O0MxNTk7MTEwOSAxMTY3IDExQUM7QzE1OTsxMTA5IDExNjcgMTFBQzsKK0MxNUE7QzE1QTsxMTA5IDExNjcgMTFBRDtDMTVBOzExMDkgMTE2NyAxMUFEOworQzE1QjtDMTVCOzExMDkgMTE2NyAxMUFFO0MxNUI7MTEwOSAxMTY3IDExQUU7CitDMTVDO0MxNUM7MTEwOSAxMTY3IDExQUY7QzE1QzsxMTA5IDExNjcgMTFBRjsKK0MxNUQ7QzE1RDsxMTA5IDExNjcgMTFCMDtDMTVEOzExMDkgMTE2NyAxMUIwOworQzE1RTtDMTVFOzExMDkgMTE2NyAxMUIxO0MxNUU7MTEwOSAxMTY3IDExQjE7CitDMTVGO0MxNUY7MTEwOSAxMTY3IDExQjI7QzE1RjsxMTA5IDExNjcgMTFCMjsKK0MxNjA7QzE2MDsxMTA5IDExNjcgMTFCMztDMTYwOzExMDkgMTE2NyAxMUIzOworQzE2MTtDMTYxOzExMDkgMTE2NyAxMUI0O0MxNjE7MTEwOSAxMTY3IDExQjQ7CitDMTYyO0MxNjI7MTEwOSAxMTY3IDExQjU7QzE2MjsxMTA5IDExNjcgMTFCNTsKK0MxNjM7QzE2MzsxMTA5IDExNjcgMTFCNjtDMTYzOzExMDkgMTE2NyAxMUI2OworQzE2NDtDMTY0OzExMDkgMTE2NyAxMUI3O0MxNjQ7MTEwOSAxMTY3IDExQjc7CitDMTY1O0MxNjU7MTEwOSAxMTY3IDExQjg7QzE2NTsxMTA5IDExNjcgMTFCODsKK0MxNjY7QzE2NjsxMTA5IDExNjcgMTFCOTtDMTY2OzExMDkgMTE2NyAxMUI5OworQzE2NztDMTY3OzExMDkgMTE2NyAxMUJBO0MxNjc7MTEwOSAxMTY3IDExQkE7CitDMTY4O0MxNjg7MTEwOSAxMTY3IDExQkI7QzE2ODsxMTA5IDExNjcgMTFCQjsKK0MxNjk7QzE2OTsxMTA5IDExNjcgMTFCQztDMTY5OzExMDkgMTE2NyAxMUJDOworQzE2QTtDMTZBOzExMDkgMTE2NyAxMUJEO0MxNkE7MTEwOSAxMTY3IDExQkQ7CitDMTZCO0MxNkI7MTEwOSAxMTY3IDExQkU7QzE2QjsxMTA5IDExNjcgMTFCRTsKK0MxNkM7QzE2QzsxMTA5IDExNjcgMTFCRjtDMTZDOzExMDkgMTE2NyAxMUJGOworQzE2RDtDMTZEOzExMDkgMTE2NyAxMUMwO0MxNkQ7MTEwOSAxMTY3IDExQzA7CitDMTZFO0MxNkU7MTEwOSAxMTY3IDExQzE7QzE2RTsxMTA5IDExNjcgMTFDMTsKK0MxNkY7QzE2RjsxMTA5IDExNjcgMTFDMjtDMTZGOzExMDkgMTE2NyAxMUMyOworQzE3MDtDMTcwOzExMDkgMTE2ODtDMTcwOzExMDkgMTE2ODsKK0MxNzE7QzE3MTsxMTA5IDExNjggMTFBODtDMTcxOzExMDkgMTE2OCAxMUE4OworQzE3MjtDMTcyOzExMDkgMTE2OCAxMUE5O0MxNzI7MTEwOSAxMTY4IDExQTk7CitDMTczO0MxNzM7MTEwOSAxMTY4IDExQUE7QzE3MzsxMTA5IDExNjggMTFBQTsKK0MxNzQ7QzE3NDsxMTA5IDExNjggMTFBQjtDMTc0OzExMDkgMTE2OCAxMUFCOworQzE3NTtDMTc1OzExMDkgMTE2OCAxMUFDO0MxNzU7MTEwOSAxMTY4IDExQUM7CitDMTc2O0MxNzY7MTEwOSAxMTY4IDExQUQ7QzE3NjsxMTA5IDExNjggMTFBRDsKK0MxNzc7QzE3NzsxMTA5IDExNjggMTFBRTtDMTc3OzExMDkgMTE2OCAxMUFFOworQzE3ODtDMTc4OzExMDkgMTE2OCAxMUFGO0MxNzg7MTEwOSAxMTY4IDExQUY7CitDMTc5O0MxNzk7MTEwOSAxMTY4IDExQjA7QzE3OTsxMTA5IDExNjggMTFCMDsKK0MxN0E7QzE3QTsxMTA5IDExNjggMTFCMTtDMTdBOzExMDkgMTE2OCAxMUIxOworQzE3QjtDMTdCOzExMDkgMTE2OCAxMUIyO0MxN0I7MTEwOSAxMTY4IDExQjI7CitDMTdDO0MxN0M7MTEwOSAxMTY4IDExQjM7QzE3QzsxMTA5IDExNjggMTFCMzsKK0MxN0Q7QzE3RDsxMTA5IDExNjggMTFCNDtDMTdEOzExMDkgMTE2OCAxMUI0OworQzE3RTtDMTdFOzExMDkgMTE2OCAxMUI1O0MxN0U7MTEwOSAxMTY4IDExQjU7CitDMTdGO0MxN0Y7MTEwOSAxMTY4IDExQjY7QzE3RjsxMTA5IDExNjggMTFCNjsKK0MxODA7QzE4MDsxMTA5IDExNjggMTFCNztDMTgwOzExMDkgMTE2OCAxMUI3OworQzE4MTtDMTgxOzExMDkgMTE2OCAxMUI4O0MxODE7MTEwOSAxMTY4IDExQjg7CitDMTgyO0MxODI7MTEwOSAxMTY4IDExQjk7QzE4MjsxMTA5IDExNjggMTFCOTsKK0MxODM7QzE4MzsxMTA5IDExNjggMTFCQTtDMTgzOzExMDkgMTE2OCAxMUJBOworQzE4NDtDMTg0OzExMDkgMTE2OCAxMUJCO0MxODQ7MTEwOSAxMTY4IDExQkI7CitDMTg1O0MxODU7MTEwOSAxMTY4IDExQkM7QzE4NTsxMTA5IDExNjggMTFCQzsKK0MxODY7QzE4NjsxMTA5IDExNjggMTFCRDtDMTg2OzExMDkgMTE2OCAxMUJEOworQzE4NztDMTg3OzExMDkgMTE2OCAxMUJFO0MxODc7MTEwOSAxMTY4IDExQkU7CitDMTg4O0MxODg7MTEwOSAxMTY4IDExQkY7QzE4ODsxMTA5IDExNjggMTFCRjsKK0MxODk7QzE4OTsxMTA5IDExNjggMTFDMDtDMTg5OzExMDkgMTE2OCAxMUMwOworQzE4QTtDMThBOzExMDkgMTE2OCAxMUMxO0MxOEE7MTEwOSAxMTY4IDExQzE7CitDMThCO0MxOEI7MTEwOSAxMTY4IDExQzI7QzE4QjsxMTA5IDExNjggMTFDMjsKK0MxOEM7QzE4QzsxMTA5IDExNjk7QzE4QzsxMTA5IDExNjk7CitDMThEO0MxOEQ7MTEwOSAxMTY5IDExQTg7QzE4RDsxMTA5IDExNjkgMTFBODsKK0MxOEU7QzE4RTsxMTA5IDExNjkgMTFBOTtDMThFOzExMDkgMTE2OSAxMUE5OworQzE4RjtDMThGOzExMDkgMTE2OSAxMUFBO0MxOEY7MTEwOSAxMTY5IDExQUE7CitDMTkwO0MxOTA7MTEwOSAxMTY5IDExQUI7QzE5MDsxMTA5IDExNjkgMTFBQjsKK0MxOTE7QzE5MTsxMTA5IDExNjkgMTFBQztDMTkxOzExMDkgMTE2OSAxMUFDOworQzE5MjtDMTkyOzExMDkgMTE2OSAxMUFEO0MxOTI7MTEwOSAxMTY5IDExQUQ7CitDMTkzO0MxOTM7MTEwOSAxMTY5IDExQUU7QzE5MzsxMTA5IDExNjkgMTFBRTsKK0MxOTQ7QzE5NDsxMTA5IDExNjkgMTFBRjtDMTk0OzExMDkgMTE2OSAxMUFGOworQzE5NTtDMTk1OzExMDkgMTE2OSAxMUIwO0MxOTU7MTEwOSAxMTY5IDExQjA7CitDMTk2O0MxOTY7MTEwOSAxMTY5IDExQjE7QzE5NjsxMTA5IDExNjkgMTFCMTsKK0MxOTc7QzE5NzsxMTA5IDExNjkgMTFCMjtDMTk3OzExMDkgMTE2OSAxMUIyOworQzE5ODtDMTk4OzExMDkgMTE2OSAxMUIzO0MxOTg7MTEwOSAxMTY5IDExQjM7CitDMTk5O0MxOTk7MTEwOSAxMTY5IDExQjQ7QzE5OTsxMTA5IDExNjkgMTFCNDsKK0MxOUE7QzE5QTsxMTA5IDExNjkgMTFCNTtDMTlBOzExMDkgMTE2OSAxMUI1OworQzE5QjtDMTlCOzExMDkgMTE2OSAxMUI2O0MxOUI7MTEwOSAxMTY5IDExQjY7CitDMTlDO0MxOUM7MTEwOSAxMTY5IDExQjc7QzE5QzsxMTA5IDExNjkgMTFCNzsKK0MxOUQ7QzE5RDsxMTA5IDExNjkgMTFCODtDMTlEOzExMDkgMTE2OSAxMUI4OworQzE5RTtDMTlFOzExMDkgMTE2OSAxMUI5O0MxOUU7MTEwOSAxMTY5IDExQjk7CitDMTlGO0MxOUY7MTEwOSAxMTY5IDExQkE7QzE5RjsxMTA5IDExNjkgMTFCQTsKK0MxQTA7QzFBMDsxMTA5IDExNjkgMTFCQjtDMUEwOzExMDkgMTE2OSAxMUJCOworQzFBMTtDMUExOzExMDkgMTE2OSAxMUJDO0MxQTE7MTEwOSAxMTY5IDExQkM7CitDMUEyO0MxQTI7MTEwOSAxMTY5IDExQkQ7QzFBMjsxMTA5IDExNjkgMTFCRDsKK0MxQTM7QzFBMzsxMTA5IDExNjkgMTFCRTtDMUEzOzExMDkgMTE2OSAxMUJFOworQzFBNDtDMUE0OzExMDkgMTE2OSAxMUJGO0MxQTQ7MTEwOSAxMTY5IDExQkY7CitDMUE1O0MxQTU7MTEwOSAxMTY5IDExQzA7QzFBNTsxMTA5IDExNjkgMTFDMDsKK0MxQTY7QzFBNjsxMTA5IDExNjkgMTFDMTtDMUE2OzExMDkgMTE2OSAxMUMxOworQzFBNztDMUE3OzExMDkgMTE2OSAxMUMyO0MxQTc7MTEwOSAxMTY5IDExQzI7CitDMUE4O0MxQTg7MTEwOSAxMTZBO0MxQTg7MTEwOSAxMTZBOworQzFBOTtDMUE5OzExMDkgMTE2QSAxMUE4O0MxQTk7MTEwOSAxMTZBIDExQTg7CitDMUFBO0MxQUE7MTEwOSAxMTZBIDExQTk7QzFBQTsxMTA5IDExNkEgMTFBOTsKK0MxQUI7QzFBQjsxMTA5IDExNkEgMTFBQTtDMUFCOzExMDkgMTE2QSAxMUFBOworQzFBQztDMUFDOzExMDkgMTE2QSAxMUFCO0MxQUM7MTEwOSAxMTZBIDExQUI7CitDMUFEO0MxQUQ7MTEwOSAxMTZBIDExQUM7QzFBRDsxMTA5IDExNkEgMTFBQzsKK0MxQUU7QzFBRTsxMTA5IDExNkEgMTFBRDtDMUFFOzExMDkgMTE2QSAxMUFEOworQzFBRjtDMUFGOzExMDkgMTE2QSAxMUFFO0MxQUY7MTEwOSAxMTZBIDExQUU7CitDMUIwO0MxQjA7MTEwOSAxMTZBIDExQUY7QzFCMDsxMTA5IDExNkEgMTFBRjsKK0MxQjE7QzFCMTsxMTA5IDExNkEgMTFCMDtDMUIxOzExMDkgMTE2QSAxMUIwOworQzFCMjtDMUIyOzExMDkgMTE2QSAxMUIxO0MxQjI7MTEwOSAxMTZBIDExQjE7CitDMUIzO0MxQjM7MTEwOSAxMTZBIDExQjI7QzFCMzsxMTA5IDExNkEgMTFCMjsKK0MxQjQ7QzFCNDsxMTA5IDExNkEgMTFCMztDMUI0OzExMDkgMTE2QSAxMUIzOworQzFCNTtDMUI1OzExMDkgMTE2QSAxMUI0O0MxQjU7MTEwOSAxMTZBIDExQjQ7CitDMUI2O0MxQjY7MTEwOSAxMTZBIDExQjU7QzFCNjsxMTA5IDExNkEgMTFCNTsKK0MxQjc7QzFCNzsxMTA5IDExNkEgMTFCNjtDMUI3OzExMDkgMTE2QSAxMUI2OworQzFCODtDMUI4OzExMDkgMTE2QSAxMUI3O0MxQjg7MTEwOSAxMTZBIDExQjc7CitDMUI5O0MxQjk7MTEwOSAxMTZBIDExQjg7QzFCOTsxMTA5IDExNkEgMTFCODsKK0MxQkE7QzFCQTsxMTA5IDExNkEgMTFCOTtDMUJBOzExMDkgMTE2QSAxMUI5OworQzFCQjtDMUJCOzExMDkgMTE2QSAxMUJBO0MxQkI7MTEwOSAxMTZBIDExQkE7CitDMUJDO0MxQkM7MTEwOSAxMTZBIDExQkI7QzFCQzsxMTA5IDExNkEgMTFCQjsKK0MxQkQ7QzFCRDsxMTA5IDExNkEgMTFCQztDMUJEOzExMDkgMTE2QSAxMUJDOworQzFCRTtDMUJFOzExMDkgMTE2QSAxMUJEO0MxQkU7MTEwOSAxMTZBIDExQkQ7CitDMUJGO0MxQkY7MTEwOSAxMTZBIDExQkU7QzFCRjsxMTA5IDExNkEgMTFCRTsKK0MxQzA7QzFDMDsxMTA5IDExNkEgMTFCRjtDMUMwOzExMDkgMTE2QSAxMUJGOworQzFDMTtDMUMxOzExMDkgMTE2QSAxMUMwO0MxQzE7MTEwOSAxMTZBIDExQzA7CitDMUMyO0MxQzI7MTEwOSAxMTZBIDExQzE7QzFDMjsxMTA5IDExNkEgMTFDMTsKK0MxQzM7QzFDMzsxMTA5IDExNkEgMTFDMjtDMUMzOzExMDkgMTE2QSAxMUMyOworQzFDNDtDMUM0OzExMDkgMTE2QjtDMUM0OzExMDkgMTE2QjsKK0MxQzU7QzFDNTsxMTA5IDExNkIgMTFBODtDMUM1OzExMDkgMTE2QiAxMUE4OworQzFDNjtDMUM2OzExMDkgMTE2QiAxMUE5O0MxQzY7MTEwOSAxMTZCIDExQTk7CitDMUM3O0MxQzc7MTEwOSAxMTZCIDExQUE7QzFDNzsxMTA5IDExNkIgMTFBQTsKK0MxQzg7QzFDODsxMTA5IDExNkIgMTFBQjtDMUM4OzExMDkgMTE2QiAxMUFCOworQzFDOTtDMUM5OzExMDkgMTE2QiAxMUFDO0MxQzk7MTEwOSAxMTZCIDExQUM7CitDMUNBO0MxQ0E7MTEwOSAxMTZCIDExQUQ7QzFDQTsxMTA5IDExNkIgMTFBRDsKK0MxQ0I7QzFDQjsxMTA5IDExNkIgMTFBRTtDMUNCOzExMDkgMTE2QiAxMUFFOworQzFDQztDMUNDOzExMDkgMTE2QiAxMUFGO0MxQ0M7MTEwOSAxMTZCIDExQUY7CitDMUNEO0MxQ0Q7MTEwOSAxMTZCIDExQjA7QzFDRDsxMTA5IDExNkIgMTFCMDsKK0MxQ0U7QzFDRTsxMTA5IDExNkIgMTFCMTtDMUNFOzExMDkgMTE2QiAxMUIxOworQzFDRjtDMUNGOzExMDkgMTE2QiAxMUIyO0MxQ0Y7MTEwOSAxMTZCIDExQjI7CitDMUQwO0MxRDA7MTEwOSAxMTZCIDExQjM7QzFEMDsxMTA5IDExNkIgMTFCMzsKK0MxRDE7QzFEMTsxMTA5IDExNkIgMTFCNDtDMUQxOzExMDkgMTE2QiAxMUI0OworQzFEMjtDMUQyOzExMDkgMTE2QiAxMUI1O0MxRDI7MTEwOSAxMTZCIDExQjU7CitDMUQzO0MxRDM7MTEwOSAxMTZCIDExQjY7QzFEMzsxMTA5IDExNkIgMTFCNjsKK0MxRDQ7QzFENDsxMTA5IDExNkIgMTFCNztDMUQ0OzExMDkgMTE2QiAxMUI3OworQzFENTtDMUQ1OzExMDkgMTE2QiAxMUI4O0MxRDU7MTEwOSAxMTZCIDExQjg7CitDMUQ2O0MxRDY7MTEwOSAxMTZCIDExQjk7QzFENjsxMTA5IDExNkIgMTFCOTsKK0MxRDc7QzFENzsxMTA5IDExNkIgMTFCQTtDMUQ3OzExMDkgMTE2QiAxMUJBOworQzFEODtDMUQ4OzExMDkgMTE2QiAxMUJCO0MxRDg7MTEwOSAxMTZCIDExQkI7CitDMUQ5O0MxRDk7MTEwOSAxMTZCIDExQkM7QzFEOTsxMTA5IDExNkIgMTFCQzsKK0MxREE7QzFEQTsxMTA5IDExNkIgMTFCRDtDMURBOzExMDkgMTE2QiAxMUJEOworQzFEQjtDMURCOzExMDkgMTE2QiAxMUJFO0MxREI7MTEwOSAxMTZCIDExQkU7CitDMURDO0MxREM7MTEwOSAxMTZCIDExQkY7QzFEQzsxMTA5IDExNkIgMTFCRjsKK0MxREQ7QzFERDsxMTA5IDExNkIgMTFDMDtDMUREOzExMDkgMTE2QiAxMUMwOworQzFERTtDMURFOzExMDkgMTE2QiAxMUMxO0MxREU7MTEwOSAxMTZCIDExQzE7CitDMURGO0MxREY7MTEwOSAxMTZCIDExQzI7QzFERjsxMTA5IDExNkIgMTFDMjsKK0MxRTA7QzFFMDsxMTA5IDExNkM7QzFFMDsxMTA5IDExNkM7CitDMUUxO0MxRTE7MTEwOSAxMTZDIDExQTg7QzFFMTsxMTA5IDExNkMgMTFBODsKK0MxRTI7QzFFMjsxMTA5IDExNkMgMTFBOTtDMUUyOzExMDkgMTE2QyAxMUE5OworQzFFMztDMUUzOzExMDkgMTE2QyAxMUFBO0MxRTM7MTEwOSAxMTZDIDExQUE7CitDMUU0O0MxRTQ7MTEwOSAxMTZDIDExQUI7QzFFNDsxMTA5IDExNkMgMTFBQjsKK0MxRTU7QzFFNTsxMTA5IDExNkMgMTFBQztDMUU1OzExMDkgMTE2QyAxMUFDOworQzFFNjtDMUU2OzExMDkgMTE2QyAxMUFEO0MxRTY7MTEwOSAxMTZDIDExQUQ7CitDMUU3O0MxRTc7MTEwOSAxMTZDIDExQUU7QzFFNzsxMTA5IDExNkMgMTFBRTsKK0MxRTg7QzFFODsxMTA5IDExNkMgMTFBRjtDMUU4OzExMDkgMTE2QyAxMUFGOworQzFFOTtDMUU5OzExMDkgMTE2QyAxMUIwO0MxRTk7MTEwOSAxMTZDIDExQjA7CitDMUVBO0MxRUE7MTEwOSAxMTZDIDExQjE7QzFFQTsxMTA5IDExNkMgMTFCMTsKK0MxRUI7QzFFQjsxMTA5IDExNkMgMTFCMjtDMUVCOzExMDkgMTE2QyAxMUIyOworQzFFQztDMUVDOzExMDkgMTE2QyAxMUIzO0MxRUM7MTEwOSAxMTZDIDExQjM7CitDMUVEO0MxRUQ7MTEwOSAxMTZDIDExQjQ7QzFFRDsxMTA5IDExNkMgMTFCNDsKK0MxRUU7QzFFRTsxMTA5IDExNkMgMTFCNTtDMUVFOzExMDkgMTE2QyAxMUI1OworQzFFRjtDMUVGOzExMDkgMTE2QyAxMUI2O0MxRUY7MTEwOSAxMTZDIDExQjY7CitDMUYwO0MxRjA7MTEwOSAxMTZDIDExQjc7QzFGMDsxMTA5IDExNkMgMTFCNzsKK0MxRjE7QzFGMTsxMTA5IDExNkMgMTFCODtDMUYxOzExMDkgMTE2QyAxMUI4OworQzFGMjtDMUYyOzExMDkgMTE2QyAxMUI5O0MxRjI7MTEwOSAxMTZDIDExQjk7CitDMUYzO0MxRjM7MTEwOSAxMTZDIDExQkE7QzFGMzsxMTA5IDExNkMgMTFCQTsKK0MxRjQ7QzFGNDsxMTA5IDExNkMgMTFCQjtDMUY0OzExMDkgMTE2QyAxMUJCOworQzFGNTtDMUY1OzExMDkgMTE2QyAxMUJDO0MxRjU7MTEwOSAxMTZDIDExQkM7CitDMUY2O0MxRjY7MTEwOSAxMTZDIDExQkQ7QzFGNjsxMTA5IDExNkMgMTFCRDsKK0MxRjc7QzFGNzsxMTA5IDExNkMgMTFCRTtDMUY3OzExMDkgMTE2QyAxMUJFOworQzFGODtDMUY4OzExMDkgMTE2QyAxMUJGO0MxRjg7MTEwOSAxMTZDIDExQkY7CitDMUY5O0MxRjk7MTEwOSAxMTZDIDExQzA7QzFGOTsxMTA5IDExNkMgMTFDMDsKK0MxRkE7QzFGQTsxMTA5IDExNkMgMTFDMTtDMUZBOzExMDkgMTE2QyAxMUMxOworQzFGQjtDMUZCOzExMDkgMTE2QyAxMUMyO0MxRkI7MTEwOSAxMTZDIDExQzI7CitDMUZDO0MxRkM7MTEwOSAxMTZEO0MxRkM7MTEwOSAxMTZEOworQzFGRDtDMUZEOzExMDkgMTE2RCAxMUE4O0MxRkQ7MTEwOSAxMTZEIDExQTg7CitDMUZFO0MxRkU7MTEwOSAxMTZEIDExQTk7QzFGRTsxMTA5IDExNkQgMTFBOTsKK0MxRkY7QzFGRjsxMTA5IDExNkQgMTFBQTtDMUZGOzExMDkgMTE2RCAxMUFBOworQzIwMDtDMjAwOzExMDkgMTE2RCAxMUFCO0MyMDA7MTEwOSAxMTZEIDExQUI7CitDMjAxO0MyMDE7MTEwOSAxMTZEIDExQUM7QzIwMTsxMTA5IDExNkQgMTFBQzsKK0MyMDI7QzIwMjsxMTA5IDExNkQgMTFBRDtDMjAyOzExMDkgMTE2RCAxMUFEOworQzIwMztDMjAzOzExMDkgMTE2RCAxMUFFO0MyMDM7MTEwOSAxMTZEIDExQUU7CitDMjA0O0MyMDQ7MTEwOSAxMTZEIDExQUY7QzIwNDsxMTA5IDExNkQgMTFBRjsKK0MyMDU7QzIwNTsxMTA5IDExNkQgMTFCMDtDMjA1OzExMDkgMTE2RCAxMUIwOworQzIwNjtDMjA2OzExMDkgMTE2RCAxMUIxO0MyMDY7MTEwOSAxMTZEIDExQjE7CitDMjA3O0MyMDc7MTEwOSAxMTZEIDExQjI7QzIwNzsxMTA5IDExNkQgMTFCMjsKK0MyMDg7QzIwODsxMTA5IDExNkQgMTFCMztDMjA4OzExMDkgMTE2RCAxMUIzOworQzIwOTtDMjA5OzExMDkgMTE2RCAxMUI0O0MyMDk7MTEwOSAxMTZEIDExQjQ7CitDMjBBO0MyMEE7MTEwOSAxMTZEIDExQjU7QzIwQTsxMTA5IDExNkQgMTFCNTsKK0MyMEI7QzIwQjsxMTA5IDExNkQgMTFCNjtDMjBCOzExMDkgMTE2RCAxMUI2OworQzIwQztDMjBDOzExMDkgMTE2RCAxMUI3O0MyMEM7MTEwOSAxMTZEIDExQjc7CitDMjBEO0MyMEQ7MTEwOSAxMTZEIDExQjg7QzIwRDsxMTA5IDExNkQgMTFCODsKK0MyMEU7QzIwRTsxMTA5IDExNkQgMTFCOTtDMjBFOzExMDkgMTE2RCAxMUI5OworQzIwRjtDMjBGOzExMDkgMTE2RCAxMUJBO0MyMEY7MTEwOSAxMTZEIDExQkE7CitDMjEwO0MyMTA7MTEwOSAxMTZEIDExQkI7QzIxMDsxMTA5IDExNkQgMTFCQjsKK0MyMTE7QzIxMTsxMTA5IDExNkQgMTFCQztDMjExOzExMDkgMTE2RCAxMUJDOworQzIxMjtDMjEyOzExMDkgMTE2RCAxMUJEO0MyMTI7MTEwOSAxMTZEIDExQkQ7CitDMjEzO0MyMTM7MTEwOSAxMTZEIDExQkU7QzIxMzsxMTA5IDExNkQgMTFCRTsKK0MyMTQ7QzIxNDsxMTA5IDExNkQgMTFCRjtDMjE0OzExMDkgMTE2RCAxMUJGOworQzIxNTtDMjE1OzExMDkgMTE2RCAxMUMwO0MyMTU7MTEwOSAxMTZEIDExQzA7CitDMjE2O0MyMTY7MTEwOSAxMTZEIDExQzE7QzIxNjsxMTA5IDExNkQgMTFDMTsKK0MyMTc7QzIxNzsxMTA5IDExNkQgMTFDMjtDMjE3OzExMDkgMTE2RCAxMUMyOworQzIxODtDMjE4OzExMDkgMTE2RTtDMjE4OzExMDkgMTE2RTsKK0MyMTk7QzIxOTsxMTA5IDExNkUgMTFBODtDMjE5OzExMDkgMTE2RSAxMUE4OworQzIxQTtDMjFBOzExMDkgMTE2RSAxMUE5O0MyMUE7MTEwOSAxMTZFIDExQTk7CitDMjFCO0MyMUI7MTEwOSAxMTZFIDExQUE7QzIxQjsxMTA5IDExNkUgMTFBQTsKK0MyMUM7QzIxQzsxMTA5IDExNkUgMTFBQjtDMjFDOzExMDkgMTE2RSAxMUFCOworQzIxRDtDMjFEOzExMDkgMTE2RSAxMUFDO0MyMUQ7MTEwOSAxMTZFIDExQUM7CitDMjFFO0MyMUU7MTEwOSAxMTZFIDExQUQ7QzIxRTsxMTA5IDExNkUgMTFBRDsKK0MyMUY7QzIxRjsxMTA5IDExNkUgMTFBRTtDMjFGOzExMDkgMTE2RSAxMUFFOworQzIyMDtDMjIwOzExMDkgMTE2RSAxMUFGO0MyMjA7MTEwOSAxMTZFIDExQUY7CitDMjIxO0MyMjE7MTEwOSAxMTZFIDExQjA7QzIyMTsxMTA5IDExNkUgMTFCMDsKK0MyMjI7QzIyMjsxMTA5IDExNkUgMTFCMTtDMjIyOzExMDkgMTE2RSAxMUIxOworQzIyMztDMjIzOzExMDkgMTE2RSAxMUIyO0MyMjM7MTEwOSAxMTZFIDExQjI7CitDMjI0O0MyMjQ7MTEwOSAxMTZFIDExQjM7QzIyNDsxMTA5IDExNkUgMTFCMzsKK0MyMjU7QzIyNTsxMTA5IDExNkUgMTFCNDtDMjI1OzExMDkgMTE2RSAxMUI0OworQzIyNjtDMjI2OzExMDkgMTE2RSAxMUI1O0MyMjY7MTEwOSAxMTZFIDExQjU7CitDMjI3O0MyMjc7MTEwOSAxMTZFIDExQjY7QzIyNzsxMTA5IDExNkUgMTFCNjsKK0MyMjg7QzIyODsxMTA5IDExNkUgMTFCNztDMjI4OzExMDkgMTE2RSAxMUI3OworQzIyOTtDMjI5OzExMDkgMTE2RSAxMUI4O0MyMjk7MTEwOSAxMTZFIDExQjg7CitDMjJBO0MyMkE7MTEwOSAxMTZFIDExQjk7QzIyQTsxMTA5IDExNkUgMTFCOTsKK0MyMkI7QzIyQjsxMTA5IDExNkUgMTFCQTtDMjJCOzExMDkgMTE2RSAxMUJBOworQzIyQztDMjJDOzExMDkgMTE2RSAxMUJCO0MyMkM7MTEwOSAxMTZFIDExQkI7CitDMjJEO0MyMkQ7MTEwOSAxMTZFIDExQkM7QzIyRDsxMTA5IDExNkUgMTFCQzsKK0MyMkU7QzIyRTsxMTA5IDExNkUgMTFCRDtDMjJFOzExMDkgMTE2RSAxMUJEOworQzIyRjtDMjJGOzExMDkgMTE2RSAxMUJFO0MyMkY7MTEwOSAxMTZFIDExQkU7CitDMjMwO0MyMzA7MTEwOSAxMTZFIDExQkY7QzIzMDsxMTA5IDExNkUgMTFCRjsKK0MyMzE7QzIzMTsxMTA5IDExNkUgMTFDMDtDMjMxOzExMDkgMTE2RSAxMUMwOworQzIzMjtDMjMyOzExMDkgMTE2RSAxMUMxO0MyMzI7MTEwOSAxMTZFIDExQzE7CitDMjMzO0MyMzM7MTEwOSAxMTZFIDExQzI7QzIzMzsxMTA5IDExNkUgMTFDMjsKK0MyMzQ7QzIzNDsxMTA5IDExNkY7QzIzNDsxMTA5IDExNkY7CitDMjM1O0MyMzU7MTEwOSAxMTZGIDExQTg7QzIzNTsxMTA5IDExNkYgMTFBODsKK0MyMzY7QzIzNjsxMTA5IDExNkYgMTFBOTtDMjM2OzExMDkgMTE2RiAxMUE5OworQzIzNztDMjM3OzExMDkgMTE2RiAxMUFBO0MyMzc7MTEwOSAxMTZGIDExQUE7CitDMjM4O0MyMzg7MTEwOSAxMTZGIDExQUI7QzIzODsxMTA5IDExNkYgMTFBQjsKK0MyMzk7QzIzOTsxMTA5IDExNkYgMTFBQztDMjM5OzExMDkgMTE2RiAxMUFDOworQzIzQTtDMjNBOzExMDkgMTE2RiAxMUFEO0MyM0E7MTEwOSAxMTZGIDExQUQ7CitDMjNCO0MyM0I7MTEwOSAxMTZGIDExQUU7QzIzQjsxMTA5IDExNkYgMTFBRTsKK0MyM0M7QzIzQzsxMTA5IDExNkYgMTFBRjtDMjNDOzExMDkgMTE2RiAxMUFGOworQzIzRDtDMjNEOzExMDkgMTE2RiAxMUIwO0MyM0Q7MTEwOSAxMTZGIDExQjA7CitDMjNFO0MyM0U7MTEwOSAxMTZGIDExQjE7QzIzRTsxMTA5IDExNkYgMTFCMTsKK0MyM0Y7QzIzRjsxMTA5IDExNkYgMTFCMjtDMjNGOzExMDkgMTE2RiAxMUIyOworQzI0MDtDMjQwOzExMDkgMTE2RiAxMUIzO0MyNDA7MTEwOSAxMTZGIDExQjM7CitDMjQxO0MyNDE7MTEwOSAxMTZGIDExQjQ7QzI0MTsxMTA5IDExNkYgMTFCNDsKK0MyNDI7QzI0MjsxMTA5IDExNkYgMTFCNTtDMjQyOzExMDkgMTE2RiAxMUI1OworQzI0MztDMjQzOzExMDkgMTE2RiAxMUI2O0MyNDM7MTEwOSAxMTZGIDExQjY7CitDMjQ0O0MyNDQ7MTEwOSAxMTZGIDExQjc7QzI0NDsxMTA5IDExNkYgMTFCNzsKK0MyNDU7QzI0NTsxMTA5IDExNkYgMTFCODtDMjQ1OzExMDkgMTE2RiAxMUI4OworQzI0NjtDMjQ2OzExMDkgMTE2RiAxMUI5O0MyNDY7MTEwOSAxMTZGIDExQjk7CitDMjQ3O0MyNDc7MTEwOSAxMTZGIDExQkE7QzI0NzsxMTA5IDExNkYgMTFCQTsKK0MyNDg7QzI0ODsxMTA5IDExNkYgMTFCQjtDMjQ4OzExMDkgMTE2RiAxMUJCOworQzI0OTtDMjQ5OzExMDkgMTE2RiAxMUJDO0MyNDk7MTEwOSAxMTZGIDExQkM7CitDMjRBO0MyNEE7MTEwOSAxMTZGIDExQkQ7QzI0QTsxMTA5IDExNkYgMTFCRDsKK0MyNEI7QzI0QjsxMTA5IDExNkYgMTFCRTtDMjRCOzExMDkgMTE2RiAxMUJFOworQzI0QztDMjRDOzExMDkgMTE2RiAxMUJGO0MyNEM7MTEwOSAxMTZGIDExQkY7CitDMjREO0MyNEQ7MTEwOSAxMTZGIDExQzA7QzI0RDsxMTA5IDExNkYgMTFDMDsKK0MyNEU7QzI0RTsxMTA5IDExNkYgMTFDMTtDMjRFOzExMDkgMTE2RiAxMUMxOworQzI0RjtDMjRGOzExMDkgMTE2RiAxMUMyO0MyNEY7MTEwOSAxMTZGIDExQzI7CitDMjUwO0MyNTA7MTEwOSAxMTcwO0MyNTA7MTEwOSAxMTcwOworQzI1MTtDMjUxOzExMDkgMTE3MCAxMUE4O0MyNTE7MTEwOSAxMTcwIDExQTg7CitDMjUyO0MyNTI7MTEwOSAxMTcwIDExQTk7QzI1MjsxMTA5IDExNzAgMTFBOTsKK0MyNTM7QzI1MzsxMTA5IDExNzAgMTFBQTtDMjUzOzExMDkgMTE3MCAxMUFBOworQzI1NDtDMjU0OzExMDkgMTE3MCAxMUFCO0MyNTQ7MTEwOSAxMTcwIDExQUI7CitDMjU1O0MyNTU7MTEwOSAxMTcwIDExQUM7QzI1NTsxMTA5IDExNzAgMTFBQzsKK0MyNTY7QzI1NjsxMTA5IDExNzAgMTFBRDtDMjU2OzExMDkgMTE3MCAxMUFEOworQzI1NztDMjU3OzExMDkgMTE3MCAxMUFFO0MyNTc7MTEwOSAxMTcwIDExQUU7CitDMjU4O0MyNTg7MTEwOSAxMTcwIDExQUY7QzI1ODsxMTA5IDExNzAgMTFBRjsKK0MyNTk7QzI1OTsxMTA5IDExNzAgMTFCMDtDMjU5OzExMDkgMTE3MCAxMUIwOworQzI1QTtDMjVBOzExMDkgMTE3MCAxMUIxO0MyNUE7MTEwOSAxMTcwIDExQjE7CitDMjVCO0MyNUI7MTEwOSAxMTcwIDExQjI7QzI1QjsxMTA5IDExNzAgMTFCMjsKK0MyNUM7QzI1QzsxMTA5IDExNzAgMTFCMztDMjVDOzExMDkgMTE3MCAxMUIzOworQzI1RDtDMjVEOzExMDkgMTE3MCAxMUI0O0MyNUQ7MTEwOSAxMTcwIDExQjQ7CitDMjVFO0MyNUU7MTEwOSAxMTcwIDExQjU7QzI1RTsxMTA5IDExNzAgMTFCNTsKK0MyNUY7QzI1RjsxMTA5IDExNzAgMTFCNjtDMjVGOzExMDkgMTE3MCAxMUI2OworQzI2MDtDMjYwOzExMDkgMTE3MCAxMUI3O0MyNjA7MTEwOSAxMTcwIDExQjc7CitDMjYxO0MyNjE7MTEwOSAxMTcwIDExQjg7QzI2MTsxMTA5IDExNzAgMTFCODsKK0MyNjI7QzI2MjsxMTA5IDExNzAgMTFCOTtDMjYyOzExMDkgMTE3MCAxMUI5OworQzI2MztDMjYzOzExMDkgMTE3MCAxMUJBO0MyNjM7MTEwOSAxMTcwIDExQkE7CitDMjY0O0MyNjQ7MTEwOSAxMTcwIDExQkI7QzI2NDsxMTA5IDExNzAgMTFCQjsKK0MyNjU7QzI2NTsxMTA5IDExNzAgMTFCQztDMjY1OzExMDkgMTE3MCAxMUJDOworQzI2NjtDMjY2OzExMDkgMTE3MCAxMUJEO0MyNjY7MTEwOSAxMTcwIDExQkQ7CitDMjY3O0MyNjc7MTEwOSAxMTcwIDExQkU7QzI2NzsxMTA5IDExNzAgMTFCRTsKK0MyNjg7QzI2ODsxMTA5IDExNzAgMTFCRjtDMjY4OzExMDkgMTE3MCAxMUJGOworQzI2OTtDMjY5OzExMDkgMTE3MCAxMUMwO0MyNjk7MTEwOSAxMTcwIDExQzA7CitDMjZBO0MyNkE7MTEwOSAxMTcwIDExQzE7QzI2QTsxMTA5IDExNzAgMTFDMTsKK0MyNkI7QzI2QjsxMTA5IDExNzAgMTFDMjtDMjZCOzExMDkgMTE3MCAxMUMyOworQzI2QztDMjZDOzExMDkgMTE3MTtDMjZDOzExMDkgMTE3MTsKK0MyNkQ7QzI2RDsxMTA5IDExNzEgMTFBODtDMjZEOzExMDkgMTE3MSAxMUE4OworQzI2RTtDMjZFOzExMDkgMTE3MSAxMUE5O0MyNkU7MTEwOSAxMTcxIDExQTk7CitDMjZGO0MyNkY7MTEwOSAxMTcxIDExQUE7QzI2RjsxMTA5IDExNzEgMTFBQTsKK0MyNzA7QzI3MDsxMTA5IDExNzEgMTFBQjtDMjcwOzExMDkgMTE3MSAxMUFCOworQzI3MTtDMjcxOzExMDkgMTE3MSAxMUFDO0MyNzE7MTEwOSAxMTcxIDExQUM7CitDMjcyO0MyNzI7MTEwOSAxMTcxIDExQUQ7QzI3MjsxMTA5IDExNzEgMTFBRDsKK0MyNzM7QzI3MzsxMTA5IDExNzEgMTFBRTtDMjczOzExMDkgMTE3MSAxMUFFOworQzI3NDtDMjc0OzExMDkgMTE3MSAxMUFGO0MyNzQ7MTEwOSAxMTcxIDExQUY7CitDMjc1O0MyNzU7MTEwOSAxMTcxIDExQjA7QzI3NTsxMTA5IDExNzEgMTFCMDsKK0MyNzY7QzI3NjsxMTA5IDExNzEgMTFCMTtDMjc2OzExMDkgMTE3MSAxMUIxOworQzI3NztDMjc3OzExMDkgMTE3MSAxMUIyO0MyNzc7MTEwOSAxMTcxIDExQjI7CitDMjc4O0MyNzg7MTEwOSAxMTcxIDExQjM7QzI3ODsxMTA5IDExNzEgMTFCMzsKK0MyNzk7QzI3OTsxMTA5IDExNzEgMTFCNDtDMjc5OzExMDkgMTE3MSAxMUI0OworQzI3QTtDMjdBOzExMDkgMTE3MSAxMUI1O0MyN0E7MTEwOSAxMTcxIDExQjU7CitDMjdCO0MyN0I7MTEwOSAxMTcxIDExQjY7QzI3QjsxMTA5IDExNzEgMTFCNjsKK0MyN0M7QzI3QzsxMTA5IDExNzEgMTFCNztDMjdDOzExMDkgMTE3MSAxMUI3OworQzI3RDtDMjdEOzExMDkgMTE3MSAxMUI4O0MyN0Q7MTEwOSAxMTcxIDExQjg7CitDMjdFO0MyN0U7MTEwOSAxMTcxIDExQjk7QzI3RTsxMTA5IDExNzEgMTFCOTsKK0MyN0Y7QzI3RjsxMTA5IDExNzEgMTFCQTtDMjdGOzExMDkgMTE3MSAxMUJBOworQzI4MDtDMjgwOzExMDkgMTE3MSAxMUJCO0MyODA7MTEwOSAxMTcxIDExQkI7CitDMjgxO0MyODE7MTEwOSAxMTcxIDExQkM7QzI4MTsxMTA5IDExNzEgMTFCQzsKK0MyODI7QzI4MjsxMTA5IDExNzEgMTFCRDtDMjgyOzExMDkgMTE3MSAxMUJEOworQzI4MztDMjgzOzExMDkgMTE3MSAxMUJFO0MyODM7MTEwOSAxMTcxIDExQkU7CitDMjg0O0MyODQ7MTEwOSAxMTcxIDExQkY7QzI4NDsxMTA5IDExNzEgMTFCRjsKK0MyODU7QzI4NTsxMTA5IDExNzEgMTFDMDtDMjg1OzExMDkgMTE3MSAxMUMwOworQzI4NjtDMjg2OzExMDkgMTE3MSAxMUMxO0MyODY7MTEwOSAxMTcxIDExQzE7CitDMjg3O0MyODc7MTEwOSAxMTcxIDExQzI7QzI4NzsxMTA5IDExNzEgMTFDMjsKK0MyODg7QzI4ODsxMTA5IDExNzI7QzI4ODsxMTA5IDExNzI7CitDMjg5O0MyODk7MTEwOSAxMTcyIDExQTg7QzI4OTsxMTA5IDExNzIgMTFBODsKK0MyOEE7QzI4QTsxMTA5IDExNzIgMTFBOTtDMjhBOzExMDkgMTE3MiAxMUE5OworQzI4QjtDMjhCOzExMDkgMTE3MiAxMUFBO0MyOEI7MTEwOSAxMTcyIDExQUE7CitDMjhDO0MyOEM7MTEwOSAxMTcyIDExQUI7QzI4QzsxMTA5IDExNzIgMTFBQjsKK0MyOEQ7QzI4RDsxMTA5IDExNzIgMTFBQztDMjhEOzExMDkgMTE3MiAxMUFDOworQzI4RTtDMjhFOzExMDkgMTE3MiAxMUFEO0MyOEU7MTEwOSAxMTcyIDExQUQ7CitDMjhGO0MyOEY7MTEwOSAxMTcyIDExQUU7QzI4RjsxMTA5IDExNzIgMTFBRTsKK0MyOTA7QzI5MDsxMTA5IDExNzIgMTFBRjtDMjkwOzExMDkgMTE3MiAxMUFGOworQzI5MTtDMjkxOzExMDkgMTE3MiAxMUIwO0MyOTE7MTEwOSAxMTcyIDExQjA7CitDMjkyO0MyOTI7MTEwOSAxMTcyIDExQjE7QzI5MjsxMTA5IDExNzIgMTFCMTsKK0MyOTM7QzI5MzsxMTA5IDExNzIgMTFCMjtDMjkzOzExMDkgMTE3MiAxMUIyOworQzI5NDtDMjk0OzExMDkgMTE3MiAxMUIzO0MyOTQ7MTEwOSAxMTcyIDExQjM7CitDMjk1O0MyOTU7MTEwOSAxMTcyIDExQjQ7QzI5NTsxMTA5IDExNzIgMTFCNDsKK0MyOTY7QzI5NjsxMTA5IDExNzIgMTFCNTtDMjk2OzExMDkgMTE3MiAxMUI1OworQzI5NztDMjk3OzExMDkgMTE3MiAxMUI2O0MyOTc7MTEwOSAxMTcyIDExQjY7CitDMjk4O0MyOTg7MTEwOSAxMTcyIDExQjc7QzI5ODsxMTA5IDExNzIgMTFCNzsKK0MyOTk7QzI5OTsxMTA5IDExNzIgMTFCODtDMjk5OzExMDkgMTE3MiAxMUI4OworQzI5QTtDMjlBOzExMDkgMTE3MiAxMUI5O0MyOUE7MTEwOSAxMTcyIDExQjk7CitDMjlCO0MyOUI7MTEwOSAxMTcyIDExQkE7QzI5QjsxMTA5IDExNzIgMTFCQTsKK0MyOUM7QzI5QzsxMTA5IDExNzIgMTFCQjtDMjlDOzExMDkgMTE3MiAxMUJCOworQzI5RDtDMjlEOzExMDkgMTE3MiAxMUJDO0MyOUQ7MTEwOSAxMTcyIDExQkM7CitDMjlFO0MyOUU7MTEwOSAxMTcyIDExQkQ7QzI5RTsxMTA5IDExNzIgMTFCRDsKK0MyOUY7QzI5RjsxMTA5IDExNzIgMTFCRTtDMjlGOzExMDkgMTE3MiAxMUJFOworQzJBMDtDMkEwOzExMDkgMTE3MiAxMUJGO0MyQTA7MTEwOSAxMTcyIDExQkY7CitDMkExO0MyQTE7MTEwOSAxMTcyIDExQzA7QzJBMTsxMTA5IDExNzIgMTFDMDsKK0MyQTI7QzJBMjsxMTA5IDExNzIgMTFDMTtDMkEyOzExMDkgMTE3MiAxMUMxOworQzJBMztDMkEzOzExMDkgMTE3MiAxMUMyO0MyQTM7MTEwOSAxMTcyIDExQzI7CitDMkE0O0MyQTQ7MTEwOSAxMTczO0MyQTQ7MTEwOSAxMTczOworQzJBNTtDMkE1OzExMDkgMTE3MyAxMUE4O0MyQTU7MTEwOSAxMTczIDExQTg7CitDMkE2O0MyQTY7MTEwOSAxMTczIDExQTk7QzJBNjsxMTA5IDExNzMgMTFBOTsKK0MyQTc7QzJBNzsxMTA5IDExNzMgMTFBQTtDMkE3OzExMDkgMTE3MyAxMUFBOworQzJBODtDMkE4OzExMDkgMTE3MyAxMUFCO0MyQTg7MTEwOSAxMTczIDExQUI7CitDMkE5O0MyQTk7MTEwOSAxMTczIDExQUM7QzJBOTsxMTA5IDExNzMgMTFBQzsKK0MyQUE7QzJBQTsxMTA5IDExNzMgMTFBRDtDMkFBOzExMDkgMTE3MyAxMUFEOworQzJBQjtDMkFCOzExMDkgMTE3MyAxMUFFO0MyQUI7MTEwOSAxMTczIDExQUU7CitDMkFDO0MyQUM7MTEwOSAxMTczIDExQUY7QzJBQzsxMTA5IDExNzMgMTFBRjsKK0MyQUQ7QzJBRDsxMTA5IDExNzMgMTFCMDtDMkFEOzExMDkgMTE3MyAxMUIwOworQzJBRTtDMkFFOzExMDkgMTE3MyAxMUIxO0MyQUU7MTEwOSAxMTczIDExQjE7CitDMkFGO0MyQUY7MTEwOSAxMTczIDExQjI7QzJBRjsxMTA5IDExNzMgMTFCMjsKK0MyQjA7QzJCMDsxMTA5IDExNzMgMTFCMztDMkIwOzExMDkgMTE3MyAxMUIzOworQzJCMTtDMkIxOzExMDkgMTE3MyAxMUI0O0MyQjE7MTEwOSAxMTczIDExQjQ7CitDMkIyO0MyQjI7MTEwOSAxMTczIDExQjU7QzJCMjsxMTA5IDExNzMgMTFCNTsKK0MyQjM7QzJCMzsxMTA5IDExNzMgMTFCNjtDMkIzOzExMDkgMTE3MyAxMUI2OworQzJCNDtDMkI0OzExMDkgMTE3MyAxMUI3O0MyQjQ7MTEwOSAxMTczIDExQjc7CitDMkI1O0MyQjU7MTEwOSAxMTczIDExQjg7QzJCNTsxMTA5IDExNzMgMTFCODsKK0MyQjY7QzJCNjsxMTA5IDExNzMgMTFCOTtDMkI2OzExMDkgMTE3MyAxMUI5OworQzJCNztDMkI3OzExMDkgMTE3MyAxMUJBO0MyQjc7MTEwOSAxMTczIDExQkE7CitDMkI4O0MyQjg7MTEwOSAxMTczIDExQkI7QzJCODsxMTA5IDExNzMgMTFCQjsKK0MyQjk7QzJCOTsxMTA5IDExNzMgMTFCQztDMkI5OzExMDkgMTE3MyAxMUJDOworQzJCQTtDMkJBOzExMDkgMTE3MyAxMUJEO0MyQkE7MTEwOSAxMTczIDExQkQ7CitDMkJCO0MyQkI7MTEwOSAxMTczIDExQkU7QzJCQjsxMTA5IDExNzMgMTFCRTsKK0MyQkM7QzJCQzsxMTA5IDExNzMgMTFCRjtDMkJDOzExMDkgMTE3MyAxMUJGOworQzJCRDtDMkJEOzExMDkgMTE3MyAxMUMwO0MyQkQ7MTEwOSAxMTczIDExQzA7CitDMkJFO0MyQkU7MTEwOSAxMTczIDExQzE7QzJCRTsxMTA5IDExNzMgMTFDMTsKK0MyQkY7QzJCRjsxMTA5IDExNzMgMTFDMjtDMkJGOzExMDkgMTE3MyAxMUMyOworQzJDMDtDMkMwOzExMDkgMTE3NDtDMkMwOzExMDkgMTE3NDsKK0MyQzE7QzJDMTsxMTA5IDExNzQgMTFBODtDMkMxOzExMDkgMTE3NCAxMUE4OworQzJDMjtDMkMyOzExMDkgMTE3NCAxMUE5O0MyQzI7MTEwOSAxMTc0IDExQTk7CitDMkMzO0MyQzM7MTEwOSAxMTc0IDExQUE7QzJDMzsxMTA5IDExNzQgMTFBQTsKK0MyQzQ7QzJDNDsxMTA5IDExNzQgMTFBQjtDMkM0OzExMDkgMTE3NCAxMUFCOworQzJDNTtDMkM1OzExMDkgMTE3NCAxMUFDO0MyQzU7MTEwOSAxMTc0IDExQUM7CitDMkM2O0MyQzY7MTEwOSAxMTc0IDExQUQ7QzJDNjsxMTA5IDExNzQgMTFBRDsKK0MyQzc7QzJDNzsxMTA5IDExNzQgMTFBRTtDMkM3OzExMDkgMTE3NCAxMUFFOworQzJDODtDMkM4OzExMDkgMTE3NCAxMUFGO0MyQzg7MTEwOSAxMTc0IDExQUY7CitDMkM5O0MyQzk7MTEwOSAxMTc0IDExQjA7QzJDOTsxMTA5IDExNzQgMTFCMDsKK0MyQ0E7QzJDQTsxMTA5IDExNzQgMTFCMTtDMkNBOzExMDkgMTE3NCAxMUIxOworQzJDQjtDMkNCOzExMDkgMTE3NCAxMUIyO0MyQ0I7MTEwOSAxMTc0IDExQjI7CitDMkNDO0MyQ0M7MTEwOSAxMTc0IDExQjM7QzJDQzsxMTA5IDExNzQgMTFCMzsKK0MyQ0Q7QzJDRDsxMTA5IDExNzQgMTFCNDtDMkNEOzExMDkgMTE3NCAxMUI0OworQzJDRTtDMkNFOzExMDkgMTE3NCAxMUI1O0MyQ0U7MTEwOSAxMTc0IDExQjU7CitDMkNGO0MyQ0Y7MTEwOSAxMTc0IDExQjY7QzJDRjsxMTA5IDExNzQgMTFCNjsKK0MyRDA7QzJEMDsxMTA5IDExNzQgMTFCNztDMkQwOzExMDkgMTE3NCAxMUI3OworQzJEMTtDMkQxOzExMDkgMTE3NCAxMUI4O0MyRDE7MTEwOSAxMTc0IDExQjg7CitDMkQyO0MyRDI7MTEwOSAxMTc0IDExQjk7QzJEMjsxMTA5IDExNzQgMTFCOTsKK0MyRDM7QzJEMzsxMTA5IDExNzQgMTFCQTtDMkQzOzExMDkgMTE3NCAxMUJBOworQzJENDtDMkQ0OzExMDkgMTE3NCAxMUJCO0MyRDQ7MTEwOSAxMTc0IDExQkI7CitDMkQ1O0MyRDU7MTEwOSAxMTc0IDExQkM7QzJENTsxMTA5IDExNzQgMTFCQzsKK0MyRDY7QzJENjsxMTA5IDExNzQgMTFCRDtDMkQ2OzExMDkgMTE3NCAxMUJEOworQzJENztDMkQ3OzExMDkgMTE3NCAxMUJFO0MyRDc7MTEwOSAxMTc0IDExQkU7CitDMkQ4O0MyRDg7MTEwOSAxMTc0IDExQkY7QzJEODsxMTA5IDExNzQgMTFCRjsKK0MyRDk7QzJEOTsxMTA5IDExNzQgMTFDMDtDMkQ5OzExMDkgMTE3NCAxMUMwOworQzJEQTtDMkRBOzExMDkgMTE3NCAxMUMxO0MyREE7MTEwOSAxMTc0IDExQzE7CitDMkRCO0MyREI7MTEwOSAxMTc0IDExQzI7QzJEQjsxMTA5IDExNzQgMTFDMjsKK0MyREM7QzJEQzsxMTA5IDExNzU7QzJEQzsxMTA5IDExNzU7CitDMkREO0MyREQ7MTEwOSAxMTc1IDExQTg7QzJERDsxMTA5IDExNzUgMTFBODsKK0MyREU7QzJERTsxMTA5IDExNzUgMTFBOTtDMkRFOzExMDkgMTE3NSAxMUE5OworQzJERjtDMkRGOzExMDkgMTE3NSAxMUFBO0MyREY7MTEwOSAxMTc1IDExQUE7CitDMkUwO0MyRTA7MTEwOSAxMTc1IDExQUI7QzJFMDsxMTA5IDExNzUgMTFBQjsKK0MyRTE7QzJFMTsxMTA5IDExNzUgMTFBQztDMkUxOzExMDkgMTE3NSAxMUFDOworQzJFMjtDMkUyOzExMDkgMTE3NSAxMUFEO0MyRTI7MTEwOSAxMTc1IDExQUQ7CitDMkUzO0MyRTM7MTEwOSAxMTc1IDExQUU7QzJFMzsxMTA5IDExNzUgMTFBRTsKK0MyRTQ7QzJFNDsxMTA5IDExNzUgMTFBRjtDMkU0OzExMDkgMTE3NSAxMUFGOworQzJFNTtDMkU1OzExMDkgMTE3NSAxMUIwO0MyRTU7MTEwOSAxMTc1IDExQjA7CitDMkU2O0MyRTY7MTEwOSAxMTc1IDExQjE7QzJFNjsxMTA5IDExNzUgMTFCMTsKK0MyRTc7QzJFNzsxMTA5IDExNzUgMTFCMjtDMkU3OzExMDkgMTE3NSAxMUIyOworQzJFODtDMkU4OzExMDkgMTE3NSAxMUIzO0MyRTg7MTEwOSAxMTc1IDExQjM7CitDMkU5O0MyRTk7MTEwOSAxMTc1IDExQjQ7QzJFOTsxMTA5IDExNzUgMTFCNDsKK0MyRUE7QzJFQTsxMTA5IDExNzUgMTFCNTtDMkVBOzExMDkgMTE3NSAxMUI1OworQzJFQjtDMkVCOzExMDkgMTE3NSAxMUI2O0MyRUI7MTEwOSAxMTc1IDExQjY7CitDMkVDO0MyRUM7MTEwOSAxMTc1IDExQjc7QzJFQzsxMTA5IDExNzUgMTFCNzsKK0MyRUQ7QzJFRDsxMTA5IDExNzUgMTFCODtDMkVEOzExMDkgMTE3NSAxMUI4OworQzJFRTtDMkVFOzExMDkgMTE3NSAxMUI5O0MyRUU7MTEwOSAxMTc1IDExQjk7CitDMkVGO0MyRUY7MTEwOSAxMTc1IDExQkE7QzJFRjsxMTA5IDExNzUgMTFCQTsKK0MyRjA7QzJGMDsxMTA5IDExNzUgMTFCQjtDMkYwOzExMDkgMTE3NSAxMUJCOworQzJGMTtDMkYxOzExMDkgMTE3NSAxMUJDO0MyRjE7MTEwOSAxMTc1IDExQkM7CitDMkYyO0MyRjI7MTEwOSAxMTc1IDExQkQ7QzJGMjsxMTA5IDExNzUgMTFCRDsKK0MyRjM7QzJGMzsxMTA5IDExNzUgMTFCRTtDMkYzOzExMDkgMTE3NSAxMUJFOworQzJGNDtDMkY0OzExMDkgMTE3NSAxMUJGO0MyRjQ7MTEwOSAxMTc1IDExQkY7CitDMkY1O0MyRjU7MTEwOSAxMTc1IDExQzA7QzJGNTsxMTA5IDExNzUgMTFDMDsKK0MyRjY7QzJGNjsxMTA5IDExNzUgMTFDMTtDMkY2OzExMDkgMTE3NSAxMUMxOworQzJGNztDMkY3OzExMDkgMTE3NSAxMUMyO0MyRjc7MTEwOSAxMTc1IDExQzI7CitDMkY4O0MyRjg7MTEwQSAxMTYxO0MyRjg7MTEwQSAxMTYxOworQzJGOTtDMkY5OzExMEEgMTE2MSAxMUE4O0MyRjk7MTEwQSAxMTYxIDExQTg7CitDMkZBO0MyRkE7MTEwQSAxMTYxIDExQTk7QzJGQTsxMTBBIDExNjEgMTFBOTsKK0MyRkI7QzJGQjsxMTBBIDExNjEgMTFBQTtDMkZCOzExMEEgMTE2MSAxMUFBOworQzJGQztDMkZDOzExMEEgMTE2MSAxMUFCO0MyRkM7MTEwQSAxMTYxIDExQUI7CitDMkZEO0MyRkQ7MTEwQSAxMTYxIDExQUM7QzJGRDsxMTBBIDExNjEgMTFBQzsKK0MyRkU7QzJGRTsxMTBBIDExNjEgMTFBRDtDMkZFOzExMEEgMTE2MSAxMUFEOworQzJGRjtDMkZGOzExMEEgMTE2MSAxMUFFO0MyRkY7MTEwQSAxMTYxIDExQUU7CitDMzAwO0MzMDA7MTEwQSAxMTYxIDExQUY7QzMwMDsxMTBBIDExNjEgMTFBRjsKK0MzMDE7QzMwMTsxMTBBIDExNjEgMTFCMDtDMzAxOzExMEEgMTE2MSAxMUIwOworQzMwMjtDMzAyOzExMEEgMTE2MSAxMUIxO0MzMDI7MTEwQSAxMTYxIDExQjE7CitDMzAzO0MzMDM7MTEwQSAxMTYxIDExQjI7QzMwMzsxMTBBIDExNjEgMTFCMjsKK0MzMDQ7QzMwNDsxMTBBIDExNjEgMTFCMztDMzA0OzExMEEgMTE2MSAxMUIzOworQzMwNTtDMzA1OzExMEEgMTE2MSAxMUI0O0MzMDU7MTEwQSAxMTYxIDExQjQ7CitDMzA2O0MzMDY7MTEwQSAxMTYxIDExQjU7QzMwNjsxMTBBIDExNjEgMTFCNTsKK0MzMDc7QzMwNzsxMTBBIDExNjEgMTFCNjtDMzA3OzExMEEgMTE2MSAxMUI2OworQzMwODtDMzA4OzExMEEgMTE2MSAxMUI3O0MzMDg7MTEwQSAxMTYxIDExQjc7CitDMzA5O0MzMDk7MTEwQSAxMTYxIDExQjg7QzMwOTsxMTBBIDExNjEgMTFCODsKK0MzMEE7QzMwQTsxMTBBIDExNjEgMTFCOTtDMzBBOzExMEEgMTE2MSAxMUI5OworQzMwQjtDMzBCOzExMEEgMTE2MSAxMUJBO0MzMEI7MTEwQSAxMTYxIDExQkE7CitDMzBDO0MzMEM7MTEwQSAxMTYxIDExQkI7QzMwQzsxMTBBIDExNjEgMTFCQjsKK0MzMEQ7QzMwRDsxMTBBIDExNjEgMTFCQztDMzBEOzExMEEgMTE2MSAxMUJDOworQzMwRTtDMzBFOzExMEEgMTE2MSAxMUJEO0MzMEU7MTEwQSAxMTYxIDExQkQ7CitDMzBGO0MzMEY7MTEwQSAxMTYxIDExQkU7QzMwRjsxMTBBIDExNjEgMTFCRTsKK0MzMTA7QzMxMDsxMTBBIDExNjEgMTFCRjtDMzEwOzExMEEgMTE2MSAxMUJGOworQzMxMTtDMzExOzExMEEgMTE2MSAxMUMwO0MzMTE7MTEwQSAxMTYxIDExQzA7CitDMzEyO0MzMTI7MTEwQSAxMTYxIDExQzE7QzMxMjsxMTBBIDExNjEgMTFDMTsKK0MzMTM7QzMxMzsxMTBBIDExNjEgMTFDMjtDMzEzOzExMEEgMTE2MSAxMUMyOworQzMxNDtDMzE0OzExMEEgMTE2MjtDMzE0OzExMEEgMTE2MjsKK0MzMTU7QzMxNTsxMTBBIDExNjIgMTFBODtDMzE1OzExMEEgMTE2MiAxMUE4OworQzMxNjtDMzE2OzExMEEgMTE2MiAxMUE5O0MzMTY7MTEwQSAxMTYyIDExQTk7CitDMzE3O0MzMTc7MTEwQSAxMTYyIDExQUE7QzMxNzsxMTBBIDExNjIgMTFBQTsKK0MzMTg7QzMxODsxMTBBIDExNjIgMTFBQjtDMzE4OzExMEEgMTE2MiAxMUFCOworQzMxOTtDMzE5OzExMEEgMTE2MiAxMUFDO0MzMTk7MTEwQSAxMTYyIDExQUM7CitDMzFBO0MzMUE7MTEwQSAxMTYyIDExQUQ7QzMxQTsxMTBBIDExNjIgMTFBRDsKK0MzMUI7QzMxQjsxMTBBIDExNjIgMTFBRTtDMzFCOzExMEEgMTE2MiAxMUFFOworQzMxQztDMzFDOzExMEEgMTE2MiAxMUFGO0MzMUM7MTEwQSAxMTYyIDExQUY7CitDMzFEO0MzMUQ7MTEwQSAxMTYyIDExQjA7QzMxRDsxMTBBIDExNjIgMTFCMDsKK0MzMUU7QzMxRTsxMTBBIDExNjIgMTFCMTtDMzFFOzExMEEgMTE2MiAxMUIxOworQzMxRjtDMzFGOzExMEEgMTE2MiAxMUIyO0MzMUY7MTEwQSAxMTYyIDExQjI7CitDMzIwO0MzMjA7MTEwQSAxMTYyIDExQjM7QzMyMDsxMTBBIDExNjIgMTFCMzsKK0MzMjE7QzMyMTsxMTBBIDExNjIgMTFCNDtDMzIxOzExMEEgMTE2MiAxMUI0OworQzMyMjtDMzIyOzExMEEgMTE2MiAxMUI1O0MzMjI7MTEwQSAxMTYyIDExQjU7CitDMzIzO0MzMjM7MTEwQSAxMTYyIDExQjY7QzMyMzsxMTBBIDExNjIgMTFCNjsKK0MzMjQ7QzMyNDsxMTBBIDExNjIgMTFCNztDMzI0OzExMEEgMTE2MiAxMUI3OworQzMyNTtDMzI1OzExMEEgMTE2MiAxMUI4O0MzMjU7MTEwQSAxMTYyIDExQjg7CitDMzI2O0MzMjY7MTEwQSAxMTYyIDExQjk7QzMyNjsxMTBBIDExNjIgMTFCOTsKK0MzMjc7QzMyNzsxMTBBIDExNjIgMTFCQTtDMzI3OzExMEEgMTE2MiAxMUJBOworQzMyODtDMzI4OzExMEEgMTE2MiAxMUJCO0MzMjg7MTEwQSAxMTYyIDExQkI7CitDMzI5O0MzMjk7MTEwQSAxMTYyIDExQkM7QzMyOTsxMTBBIDExNjIgMTFCQzsKK0MzMkE7QzMyQTsxMTBBIDExNjIgMTFCRDtDMzJBOzExMEEgMTE2MiAxMUJEOworQzMyQjtDMzJCOzExMEEgMTE2MiAxMUJFO0MzMkI7MTEwQSAxMTYyIDExQkU7CitDMzJDO0MzMkM7MTEwQSAxMTYyIDExQkY7QzMyQzsxMTBBIDExNjIgMTFCRjsKK0MzMkQ7QzMyRDsxMTBBIDExNjIgMTFDMDtDMzJEOzExMEEgMTE2MiAxMUMwOworQzMyRTtDMzJFOzExMEEgMTE2MiAxMUMxO0MzMkU7MTEwQSAxMTYyIDExQzE7CitDMzJGO0MzMkY7MTEwQSAxMTYyIDExQzI7QzMyRjsxMTBBIDExNjIgMTFDMjsKK0MzMzA7QzMzMDsxMTBBIDExNjM7QzMzMDsxMTBBIDExNjM7CitDMzMxO0MzMzE7MTEwQSAxMTYzIDExQTg7QzMzMTsxMTBBIDExNjMgMTFBODsKK0MzMzI7QzMzMjsxMTBBIDExNjMgMTFBOTtDMzMyOzExMEEgMTE2MyAxMUE5OworQzMzMztDMzMzOzExMEEgMTE2MyAxMUFBO0MzMzM7MTEwQSAxMTYzIDExQUE7CitDMzM0O0MzMzQ7MTEwQSAxMTYzIDExQUI7QzMzNDsxMTBBIDExNjMgMTFBQjsKK0MzMzU7QzMzNTsxMTBBIDExNjMgMTFBQztDMzM1OzExMEEgMTE2MyAxMUFDOworQzMzNjtDMzM2OzExMEEgMTE2MyAxMUFEO0MzMzY7MTEwQSAxMTYzIDExQUQ7CitDMzM3O0MzMzc7MTEwQSAxMTYzIDExQUU7QzMzNzsxMTBBIDExNjMgMTFBRTsKK0MzMzg7QzMzODsxMTBBIDExNjMgMTFBRjtDMzM4OzExMEEgMTE2MyAxMUFGOworQzMzOTtDMzM5OzExMEEgMTE2MyAxMUIwO0MzMzk7MTEwQSAxMTYzIDExQjA7CitDMzNBO0MzM0E7MTEwQSAxMTYzIDExQjE7QzMzQTsxMTBBIDExNjMgMTFCMTsKK0MzM0I7QzMzQjsxMTBBIDExNjMgMTFCMjtDMzNCOzExMEEgMTE2MyAxMUIyOworQzMzQztDMzNDOzExMEEgMTE2MyAxMUIzO0MzM0M7MTEwQSAxMTYzIDExQjM7CitDMzNEO0MzM0Q7MTEwQSAxMTYzIDExQjQ7QzMzRDsxMTBBIDExNjMgMTFCNDsKK0MzM0U7QzMzRTsxMTBBIDExNjMgMTFCNTtDMzNFOzExMEEgMTE2MyAxMUI1OworQzMzRjtDMzNGOzExMEEgMTE2MyAxMUI2O0MzM0Y7MTEwQSAxMTYzIDExQjY7CitDMzQwO0MzNDA7MTEwQSAxMTYzIDExQjc7QzM0MDsxMTBBIDExNjMgMTFCNzsKK0MzNDE7QzM0MTsxMTBBIDExNjMgMTFCODtDMzQxOzExMEEgMTE2MyAxMUI4OworQzM0MjtDMzQyOzExMEEgMTE2MyAxMUI5O0MzNDI7MTEwQSAxMTYzIDExQjk7CitDMzQzO0MzNDM7MTEwQSAxMTYzIDExQkE7QzM0MzsxMTBBIDExNjMgMTFCQTsKK0MzNDQ7QzM0NDsxMTBBIDExNjMgMTFCQjtDMzQ0OzExMEEgMTE2MyAxMUJCOworQzM0NTtDMzQ1OzExMEEgMTE2MyAxMUJDO0MzNDU7MTEwQSAxMTYzIDExQkM7CitDMzQ2O0MzNDY7MTEwQSAxMTYzIDExQkQ7QzM0NjsxMTBBIDExNjMgMTFCRDsKK0MzNDc7QzM0NzsxMTBBIDExNjMgMTFCRTtDMzQ3OzExMEEgMTE2MyAxMUJFOworQzM0ODtDMzQ4OzExMEEgMTE2MyAxMUJGO0MzNDg7MTEwQSAxMTYzIDExQkY7CitDMzQ5O0MzNDk7MTEwQSAxMTYzIDExQzA7QzM0OTsxMTBBIDExNjMgMTFDMDsKK0MzNEE7QzM0QTsxMTBBIDExNjMgMTFDMTtDMzRBOzExMEEgMTE2MyAxMUMxOworQzM0QjtDMzRCOzExMEEgMTE2MyAxMUMyO0MzNEI7MTEwQSAxMTYzIDExQzI7CitDMzRDO0MzNEM7MTEwQSAxMTY0O0MzNEM7MTEwQSAxMTY0OworQzM0RDtDMzREOzExMEEgMTE2NCAxMUE4O0MzNEQ7MTEwQSAxMTY0IDExQTg7CitDMzRFO0MzNEU7MTEwQSAxMTY0IDExQTk7QzM0RTsxMTBBIDExNjQgMTFBOTsKK0MzNEY7QzM0RjsxMTBBIDExNjQgMTFBQTtDMzRGOzExMEEgMTE2NCAxMUFBOworQzM1MDtDMzUwOzExMEEgMTE2NCAxMUFCO0MzNTA7MTEwQSAxMTY0IDExQUI7CitDMzUxO0MzNTE7MTEwQSAxMTY0IDExQUM7QzM1MTsxMTBBIDExNjQgMTFBQzsKK0MzNTI7QzM1MjsxMTBBIDExNjQgMTFBRDtDMzUyOzExMEEgMTE2NCAxMUFEOworQzM1MztDMzUzOzExMEEgMTE2NCAxMUFFO0MzNTM7MTEwQSAxMTY0IDExQUU7CitDMzU0O0MzNTQ7MTEwQSAxMTY0IDExQUY7QzM1NDsxMTBBIDExNjQgMTFBRjsKK0MzNTU7QzM1NTsxMTBBIDExNjQgMTFCMDtDMzU1OzExMEEgMTE2NCAxMUIwOworQzM1NjtDMzU2OzExMEEgMTE2NCAxMUIxO0MzNTY7MTEwQSAxMTY0IDExQjE7CitDMzU3O0MzNTc7MTEwQSAxMTY0IDExQjI7QzM1NzsxMTBBIDExNjQgMTFCMjsKK0MzNTg7QzM1ODsxMTBBIDExNjQgMTFCMztDMzU4OzExMEEgMTE2NCAxMUIzOworQzM1OTtDMzU5OzExMEEgMTE2NCAxMUI0O0MzNTk7MTEwQSAxMTY0IDExQjQ7CitDMzVBO0MzNUE7MTEwQSAxMTY0IDExQjU7QzM1QTsxMTBBIDExNjQgMTFCNTsKK0MzNUI7QzM1QjsxMTBBIDExNjQgMTFCNjtDMzVCOzExMEEgMTE2NCAxMUI2OworQzM1QztDMzVDOzExMEEgMTE2NCAxMUI3O0MzNUM7MTEwQSAxMTY0IDExQjc7CitDMzVEO0MzNUQ7MTEwQSAxMTY0IDExQjg7QzM1RDsxMTBBIDExNjQgMTFCODsKK0MzNUU7QzM1RTsxMTBBIDExNjQgMTFCOTtDMzVFOzExMEEgMTE2NCAxMUI5OworQzM1RjtDMzVGOzExMEEgMTE2NCAxMUJBO0MzNUY7MTEwQSAxMTY0IDExQkE7CitDMzYwO0MzNjA7MTEwQSAxMTY0IDExQkI7QzM2MDsxMTBBIDExNjQgMTFCQjsKK0MzNjE7QzM2MTsxMTBBIDExNjQgMTFCQztDMzYxOzExMEEgMTE2NCAxMUJDOworQzM2MjtDMzYyOzExMEEgMTE2NCAxMUJEO0MzNjI7MTEwQSAxMTY0IDExQkQ7CitDMzYzO0MzNjM7MTEwQSAxMTY0IDExQkU7QzM2MzsxMTBBIDExNjQgMTFCRTsKK0MzNjQ7QzM2NDsxMTBBIDExNjQgMTFCRjtDMzY0OzExMEEgMTE2NCAxMUJGOworQzM2NTtDMzY1OzExMEEgMTE2NCAxMUMwO0MzNjU7MTEwQSAxMTY0IDExQzA7CitDMzY2O0MzNjY7MTEwQSAxMTY0IDExQzE7QzM2NjsxMTBBIDExNjQgMTFDMTsKK0MzNjc7QzM2NzsxMTBBIDExNjQgMTFDMjtDMzY3OzExMEEgMTE2NCAxMUMyOworQzM2ODtDMzY4OzExMEEgMTE2NTtDMzY4OzExMEEgMTE2NTsKK0MzNjk7QzM2OTsxMTBBIDExNjUgMTFBODtDMzY5OzExMEEgMTE2NSAxMUE4OworQzM2QTtDMzZBOzExMEEgMTE2NSAxMUE5O0MzNkE7MTEwQSAxMTY1IDExQTk7CitDMzZCO0MzNkI7MTEwQSAxMTY1IDExQUE7QzM2QjsxMTBBIDExNjUgMTFBQTsKK0MzNkM7QzM2QzsxMTBBIDExNjUgMTFBQjtDMzZDOzExMEEgMTE2NSAxMUFCOworQzM2RDtDMzZEOzExMEEgMTE2NSAxMUFDO0MzNkQ7MTEwQSAxMTY1IDExQUM7CitDMzZFO0MzNkU7MTEwQSAxMTY1IDExQUQ7QzM2RTsxMTBBIDExNjUgMTFBRDsKK0MzNkY7QzM2RjsxMTBBIDExNjUgMTFBRTtDMzZGOzExMEEgMTE2NSAxMUFFOworQzM3MDtDMzcwOzExMEEgMTE2NSAxMUFGO0MzNzA7MTEwQSAxMTY1IDExQUY7CitDMzcxO0MzNzE7MTEwQSAxMTY1IDExQjA7QzM3MTsxMTBBIDExNjUgMTFCMDsKK0MzNzI7QzM3MjsxMTBBIDExNjUgMTFCMTtDMzcyOzExMEEgMTE2NSAxMUIxOworQzM3MztDMzczOzExMEEgMTE2NSAxMUIyO0MzNzM7MTEwQSAxMTY1IDExQjI7CitDMzc0O0MzNzQ7MTEwQSAxMTY1IDExQjM7QzM3NDsxMTBBIDExNjUgMTFCMzsKK0MzNzU7QzM3NTsxMTBBIDExNjUgMTFCNDtDMzc1OzExMEEgMTE2NSAxMUI0OworQzM3NjtDMzc2OzExMEEgMTE2NSAxMUI1O0MzNzY7MTEwQSAxMTY1IDExQjU7CitDMzc3O0MzNzc7MTEwQSAxMTY1IDExQjY7QzM3NzsxMTBBIDExNjUgMTFCNjsKK0MzNzg7QzM3ODsxMTBBIDExNjUgMTFCNztDMzc4OzExMEEgMTE2NSAxMUI3OworQzM3OTtDMzc5OzExMEEgMTE2NSAxMUI4O0MzNzk7MTEwQSAxMTY1IDExQjg7CitDMzdBO0MzN0E7MTEwQSAxMTY1IDExQjk7QzM3QTsxMTBBIDExNjUgMTFCOTsKK0MzN0I7QzM3QjsxMTBBIDExNjUgMTFCQTtDMzdCOzExMEEgMTE2NSAxMUJBOworQzM3QztDMzdDOzExMEEgMTE2NSAxMUJCO0MzN0M7MTEwQSAxMTY1IDExQkI7CitDMzdEO0MzN0Q7MTEwQSAxMTY1IDExQkM7QzM3RDsxMTBBIDExNjUgMTFCQzsKK0MzN0U7QzM3RTsxMTBBIDExNjUgMTFCRDtDMzdFOzExMEEgMTE2NSAxMUJEOworQzM3RjtDMzdGOzExMEEgMTE2NSAxMUJFO0MzN0Y7MTEwQSAxMTY1IDExQkU7CitDMzgwO0MzODA7MTEwQSAxMTY1IDExQkY7QzM4MDsxMTBBIDExNjUgMTFCRjsKK0MzODE7QzM4MTsxMTBBIDExNjUgMTFDMDtDMzgxOzExMEEgMTE2NSAxMUMwOworQzM4MjtDMzgyOzExMEEgMTE2NSAxMUMxO0MzODI7MTEwQSAxMTY1IDExQzE7CitDMzgzO0MzODM7MTEwQSAxMTY1IDExQzI7QzM4MzsxMTBBIDExNjUgMTFDMjsKK0MzODQ7QzM4NDsxMTBBIDExNjY7QzM4NDsxMTBBIDExNjY7CitDMzg1O0MzODU7MTEwQSAxMTY2IDExQTg7QzM4NTsxMTBBIDExNjYgMTFBODsKK0MzODY7QzM4NjsxMTBBIDExNjYgMTFBOTtDMzg2OzExMEEgMTE2NiAxMUE5OworQzM4NztDMzg3OzExMEEgMTE2NiAxMUFBO0MzODc7MTEwQSAxMTY2IDExQUE7CitDMzg4O0MzODg7MTEwQSAxMTY2IDExQUI7QzM4ODsxMTBBIDExNjYgMTFBQjsKK0MzODk7QzM4OTsxMTBBIDExNjYgMTFBQztDMzg5OzExMEEgMTE2NiAxMUFDOworQzM4QTtDMzhBOzExMEEgMTE2NiAxMUFEO0MzOEE7MTEwQSAxMTY2IDExQUQ7CitDMzhCO0MzOEI7MTEwQSAxMTY2IDExQUU7QzM4QjsxMTBBIDExNjYgMTFBRTsKK0MzOEM7QzM4QzsxMTBBIDExNjYgMTFBRjtDMzhDOzExMEEgMTE2NiAxMUFGOworQzM4RDtDMzhEOzExMEEgMTE2NiAxMUIwO0MzOEQ7MTEwQSAxMTY2IDExQjA7CitDMzhFO0MzOEU7MTEwQSAxMTY2IDExQjE7QzM4RTsxMTBBIDExNjYgMTFCMTsKK0MzOEY7QzM4RjsxMTBBIDExNjYgMTFCMjtDMzhGOzExMEEgMTE2NiAxMUIyOworQzM5MDtDMzkwOzExMEEgMTE2NiAxMUIzO0MzOTA7MTEwQSAxMTY2IDExQjM7CitDMzkxO0MzOTE7MTEwQSAxMTY2IDExQjQ7QzM5MTsxMTBBIDExNjYgMTFCNDsKK0MzOTI7QzM5MjsxMTBBIDExNjYgMTFCNTtDMzkyOzExMEEgMTE2NiAxMUI1OworQzM5MztDMzkzOzExMEEgMTE2NiAxMUI2O0MzOTM7MTEwQSAxMTY2IDExQjY7CitDMzk0O0MzOTQ7MTEwQSAxMTY2IDExQjc7QzM5NDsxMTBBIDExNjYgMTFCNzsKK0MzOTU7QzM5NTsxMTBBIDExNjYgMTFCODtDMzk1OzExMEEgMTE2NiAxMUI4OworQzM5NjtDMzk2OzExMEEgMTE2NiAxMUI5O0MzOTY7MTEwQSAxMTY2IDExQjk7CitDMzk3O0MzOTc7MTEwQSAxMTY2IDExQkE7QzM5NzsxMTBBIDExNjYgMTFCQTsKK0MzOTg7QzM5ODsxMTBBIDExNjYgMTFCQjtDMzk4OzExMEEgMTE2NiAxMUJCOworQzM5OTtDMzk5OzExMEEgMTE2NiAxMUJDO0MzOTk7MTEwQSAxMTY2IDExQkM7CitDMzlBO0MzOUE7MTEwQSAxMTY2IDExQkQ7QzM5QTsxMTBBIDExNjYgMTFCRDsKK0MzOUI7QzM5QjsxMTBBIDExNjYgMTFCRTtDMzlCOzExMEEgMTE2NiAxMUJFOworQzM5QztDMzlDOzExMEEgMTE2NiAxMUJGO0MzOUM7MTEwQSAxMTY2IDExQkY7CitDMzlEO0MzOUQ7MTEwQSAxMTY2IDExQzA7QzM5RDsxMTBBIDExNjYgMTFDMDsKK0MzOUU7QzM5RTsxMTBBIDExNjYgMTFDMTtDMzlFOzExMEEgMTE2NiAxMUMxOworQzM5RjtDMzlGOzExMEEgMTE2NiAxMUMyO0MzOUY7MTEwQSAxMTY2IDExQzI7CitDM0EwO0MzQTA7MTEwQSAxMTY3O0MzQTA7MTEwQSAxMTY3OworQzNBMTtDM0ExOzExMEEgMTE2NyAxMUE4O0MzQTE7MTEwQSAxMTY3IDExQTg7CitDM0EyO0MzQTI7MTEwQSAxMTY3IDExQTk7QzNBMjsxMTBBIDExNjcgMTFBOTsKK0MzQTM7QzNBMzsxMTBBIDExNjcgMTFBQTtDM0EzOzExMEEgMTE2NyAxMUFBOworQzNBNDtDM0E0OzExMEEgMTE2NyAxMUFCO0MzQTQ7MTEwQSAxMTY3IDExQUI7CitDM0E1O0MzQTU7MTEwQSAxMTY3IDExQUM7QzNBNTsxMTBBIDExNjcgMTFBQzsKK0MzQTY7QzNBNjsxMTBBIDExNjcgMTFBRDtDM0E2OzExMEEgMTE2NyAxMUFEOworQzNBNztDM0E3OzExMEEgMTE2NyAxMUFFO0MzQTc7MTEwQSAxMTY3IDExQUU7CitDM0E4O0MzQTg7MTEwQSAxMTY3IDExQUY7QzNBODsxMTBBIDExNjcgMTFBRjsKK0MzQTk7QzNBOTsxMTBBIDExNjcgMTFCMDtDM0E5OzExMEEgMTE2NyAxMUIwOworQzNBQTtDM0FBOzExMEEgMTE2NyAxMUIxO0MzQUE7MTEwQSAxMTY3IDExQjE7CitDM0FCO0MzQUI7MTEwQSAxMTY3IDExQjI7QzNBQjsxMTBBIDExNjcgMTFCMjsKK0MzQUM7QzNBQzsxMTBBIDExNjcgMTFCMztDM0FDOzExMEEgMTE2NyAxMUIzOworQzNBRDtDM0FEOzExMEEgMTE2NyAxMUI0O0MzQUQ7MTEwQSAxMTY3IDExQjQ7CitDM0FFO0MzQUU7MTEwQSAxMTY3IDExQjU7QzNBRTsxMTBBIDExNjcgMTFCNTsKK0MzQUY7QzNBRjsxMTBBIDExNjcgMTFCNjtDM0FGOzExMEEgMTE2NyAxMUI2OworQzNCMDtDM0IwOzExMEEgMTE2NyAxMUI3O0MzQjA7MTEwQSAxMTY3IDExQjc7CitDM0IxO0MzQjE7MTEwQSAxMTY3IDExQjg7QzNCMTsxMTBBIDExNjcgMTFCODsKK0MzQjI7QzNCMjsxMTBBIDExNjcgMTFCOTtDM0IyOzExMEEgMTE2NyAxMUI5OworQzNCMztDM0IzOzExMEEgMTE2NyAxMUJBO0MzQjM7MTEwQSAxMTY3IDExQkE7CitDM0I0O0MzQjQ7MTEwQSAxMTY3IDExQkI7QzNCNDsxMTBBIDExNjcgMTFCQjsKK0MzQjU7QzNCNTsxMTBBIDExNjcgMTFCQztDM0I1OzExMEEgMTE2NyAxMUJDOworQzNCNjtDM0I2OzExMEEgMTE2NyAxMUJEO0MzQjY7MTEwQSAxMTY3IDExQkQ7CitDM0I3O0MzQjc7MTEwQSAxMTY3IDExQkU7QzNCNzsxMTBBIDExNjcgMTFCRTsKK0MzQjg7QzNCODsxMTBBIDExNjcgMTFCRjtDM0I4OzExMEEgMTE2NyAxMUJGOworQzNCOTtDM0I5OzExMEEgMTE2NyAxMUMwO0MzQjk7MTEwQSAxMTY3IDExQzA7CitDM0JBO0MzQkE7MTEwQSAxMTY3IDExQzE7QzNCQTsxMTBBIDExNjcgMTFDMTsKK0MzQkI7QzNCQjsxMTBBIDExNjcgMTFDMjtDM0JCOzExMEEgMTE2NyAxMUMyOworQzNCQztDM0JDOzExMEEgMTE2ODtDM0JDOzExMEEgMTE2ODsKK0MzQkQ7QzNCRDsxMTBBIDExNjggMTFBODtDM0JEOzExMEEgMTE2OCAxMUE4OworQzNCRTtDM0JFOzExMEEgMTE2OCAxMUE5O0MzQkU7MTEwQSAxMTY4IDExQTk7CitDM0JGO0MzQkY7MTEwQSAxMTY4IDExQUE7QzNCRjsxMTBBIDExNjggMTFBQTsKK0MzQzA7QzNDMDsxMTBBIDExNjggMTFBQjtDM0MwOzExMEEgMTE2OCAxMUFCOworQzNDMTtDM0MxOzExMEEgMTE2OCAxMUFDO0MzQzE7MTEwQSAxMTY4IDExQUM7CitDM0MyO0MzQzI7MTEwQSAxMTY4IDExQUQ7QzNDMjsxMTBBIDExNjggMTFBRDsKK0MzQzM7QzNDMzsxMTBBIDExNjggMTFBRTtDM0MzOzExMEEgMTE2OCAxMUFFOworQzNDNDtDM0M0OzExMEEgMTE2OCAxMUFGO0MzQzQ7MTEwQSAxMTY4IDExQUY7CitDM0M1O0MzQzU7MTEwQSAxMTY4IDExQjA7QzNDNTsxMTBBIDExNjggMTFCMDsKK0MzQzY7QzNDNjsxMTBBIDExNjggMTFCMTtDM0M2OzExMEEgMTE2OCAxMUIxOworQzNDNztDM0M3OzExMEEgMTE2OCAxMUIyO0MzQzc7MTEwQSAxMTY4IDExQjI7CitDM0M4O0MzQzg7MTEwQSAxMTY4IDExQjM7QzNDODsxMTBBIDExNjggMTFCMzsKK0MzQzk7QzNDOTsxMTBBIDExNjggMTFCNDtDM0M5OzExMEEgMTE2OCAxMUI0OworQzNDQTtDM0NBOzExMEEgMTE2OCAxMUI1O0MzQ0E7MTEwQSAxMTY4IDExQjU7CitDM0NCO0MzQ0I7MTEwQSAxMTY4IDExQjY7QzNDQjsxMTBBIDExNjggMTFCNjsKK0MzQ0M7QzNDQzsxMTBBIDExNjggMTFCNztDM0NDOzExMEEgMTE2OCAxMUI3OworQzNDRDtDM0NEOzExMEEgMTE2OCAxMUI4O0MzQ0Q7MTEwQSAxMTY4IDExQjg7CitDM0NFO0MzQ0U7MTEwQSAxMTY4IDExQjk7QzNDRTsxMTBBIDExNjggMTFCOTsKK0MzQ0Y7QzNDRjsxMTBBIDExNjggMTFCQTtDM0NGOzExMEEgMTE2OCAxMUJBOworQzNEMDtDM0QwOzExMEEgMTE2OCAxMUJCO0MzRDA7MTEwQSAxMTY4IDExQkI7CitDM0QxO0MzRDE7MTEwQSAxMTY4IDExQkM7QzNEMTsxMTBBIDExNjggMTFCQzsKK0MzRDI7QzNEMjsxMTBBIDExNjggMTFCRDtDM0QyOzExMEEgMTE2OCAxMUJEOworQzNEMztDM0QzOzExMEEgMTE2OCAxMUJFO0MzRDM7MTEwQSAxMTY4IDExQkU7CitDM0Q0O0MzRDQ7MTEwQSAxMTY4IDExQkY7QzNENDsxMTBBIDExNjggMTFCRjsKK0MzRDU7QzNENTsxMTBBIDExNjggMTFDMDtDM0Q1OzExMEEgMTE2OCAxMUMwOworQzNENjtDM0Q2OzExMEEgMTE2OCAxMUMxO0MzRDY7MTEwQSAxMTY4IDExQzE7CitDM0Q3O0MzRDc7MTEwQSAxMTY4IDExQzI7QzNENzsxMTBBIDExNjggMTFDMjsKK0MzRDg7QzNEODsxMTBBIDExNjk7QzNEODsxMTBBIDExNjk7CitDM0Q5O0MzRDk7MTEwQSAxMTY5IDExQTg7QzNEOTsxMTBBIDExNjkgMTFBODsKK0MzREE7QzNEQTsxMTBBIDExNjkgMTFBOTtDM0RBOzExMEEgMTE2OSAxMUE5OworQzNEQjtDM0RCOzExMEEgMTE2OSAxMUFBO0MzREI7MTEwQSAxMTY5IDExQUE7CitDM0RDO0MzREM7MTEwQSAxMTY5IDExQUI7QzNEQzsxMTBBIDExNjkgMTFBQjsKK0MzREQ7QzNERDsxMTBBIDExNjkgMTFBQztDM0REOzExMEEgMTE2OSAxMUFDOworQzNERTtDM0RFOzExMEEgMTE2OSAxMUFEO0MzREU7MTEwQSAxMTY5IDExQUQ7CitDM0RGO0MzREY7MTEwQSAxMTY5IDExQUU7QzNERjsxMTBBIDExNjkgMTFBRTsKK0MzRTA7QzNFMDsxMTBBIDExNjkgMTFBRjtDM0UwOzExMEEgMTE2OSAxMUFGOworQzNFMTtDM0UxOzExMEEgMTE2OSAxMUIwO0MzRTE7MTEwQSAxMTY5IDExQjA7CitDM0UyO0MzRTI7MTEwQSAxMTY5IDExQjE7QzNFMjsxMTBBIDExNjkgMTFCMTsKK0MzRTM7QzNFMzsxMTBBIDExNjkgMTFCMjtDM0UzOzExMEEgMTE2OSAxMUIyOworQzNFNDtDM0U0OzExMEEgMTE2OSAxMUIzO0MzRTQ7MTEwQSAxMTY5IDExQjM7CitDM0U1O0MzRTU7MTEwQSAxMTY5IDExQjQ7QzNFNTsxMTBBIDExNjkgMTFCNDsKK0MzRTY7QzNFNjsxMTBBIDExNjkgMTFCNTtDM0U2OzExMEEgMTE2OSAxMUI1OworQzNFNztDM0U3OzExMEEgMTE2OSAxMUI2O0MzRTc7MTEwQSAxMTY5IDExQjY7CitDM0U4O0MzRTg7MTEwQSAxMTY5IDExQjc7QzNFODsxMTBBIDExNjkgMTFCNzsKK0MzRTk7QzNFOTsxMTBBIDExNjkgMTFCODtDM0U5OzExMEEgMTE2OSAxMUI4OworQzNFQTtDM0VBOzExMEEgMTE2OSAxMUI5O0MzRUE7MTEwQSAxMTY5IDExQjk7CitDM0VCO0MzRUI7MTEwQSAxMTY5IDExQkE7QzNFQjsxMTBBIDExNjkgMTFCQTsKK0MzRUM7QzNFQzsxMTBBIDExNjkgMTFCQjtDM0VDOzExMEEgMTE2OSAxMUJCOworQzNFRDtDM0VEOzExMEEgMTE2OSAxMUJDO0MzRUQ7MTEwQSAxMTY5IDExQkM7CitDM0VFO0MzRUU7MTEwQSAxMTY5IDExQkQ7QzNFRTsxMTBBIDExNjkgMTFCRDsKK0MzRUY7QzNFRjsxMTBBIDExNjkgMTFCRTtDM0VGOzExMEEgMTE2OSAxMUJFOworQzNGMDtDM0YwOzExMEEgMTE2OSAxMUJGO0MzRjA7MTEwQSAxMTY5IDExQkY7CitDM0YxO0MzRjE7MTEwQSAxMTY5IDExQzA7QzNGMTsxMTBBIDExNjkgMTFDMDsKK0MzRjI7QzNGMjsxMTBBIDExNjkgMTFDMTtDM0YyOzExMEEgMTE2OSAxMUMxOworQzNGMztDM0YzOzExMEEgMTE2OSAxMUMyO0MzRjM7MTEwQSAxMTY5IDExQzI7CitDM0Y0O0MzRjQ7MTEwQSAxMTZBO0MzRjQ7MTEwQSAxMTZBOworQzNGNTtDM0Y1OzExMEEgMTE2QSAxMUE4O0MzRjU7MTEwQSAxMTZBIDExQTg7CitDM0Y2O0MzRjY7MTEwQSAxMTZBIDExQTk7QzNGNjsxMTBBIDExNkEgMTFBOTsKK0MzRjc7QzNGNzsxMTBBIDExNkEgMTFBQTtDM0Y3OzExMEEgMTE2QSAxMUFBOworQzNGODtDM0Y4OzExMEEgMTE2QSAxMUFCO0MzRjg7MTEwQSAxMTZBIDExQUI7CitDM0Y5O0MzRjk7MTEwQSAxMTZBIDExQUM7QzNGOTsxMTBBIDExNkEgMTFBQzsKK0MzRkE7QzNGQTsxMTBBIDExNkEgMTFBRDtDM0ZBOzExMEEgMTE2QSAxMUFEOworQzNGQjtDM0ZCOzExMEEgMTE2QSAxMUFFO0MzRkI7MTEwQSAxMTZBIDExQUU7CitDM0ZDO0MzRkM7MTEwQSAxMTZBIDExQUY7QzNGQzsxMTBBIDExNkEgMTFBRjsKK0MzRkQ7QzNGRDsxMTBBIDExNkEgMTFCMDtDM0ZEOzExMEEgMTE2QSAxMUIwOworQzNGRTtDM0ZFOzExMEEgMTE2QSAxMUIxO0MzRkU7MTEwQSAxMTZBIDExQjE7CitDM0ZGO0MzRkY7MTEwQSAxMTZBIDExQjI7QzNGRjsxMTBBIDExNkEgMTFCMjsKK0M0MDA7QzQwMDsxMTBBIDExNkEgMTFCMztDNDAwOzExMEEgMTE2QSAxMUIzOworQzQwMTtDNDAxOzExMEEgMTE2QSAxMUI0O0M0MDE7MTEwQSAxMTZBIDExQjQ7CitDNDAyO0M0MDI7MTEwQSAxMTZBIDExQjU7QzQwMjsxMTBBIDExNkEgMTFCNTsKK0M0MDM7QzQwMzsxMTBBIDExNkEgMTFCNjtDNDAzOzExMEEgMTE2QSAxMUI2OworQzQwNDtDNDA0OzExMEEgMTE2QSAxMUI3O0M0MDQ7MTEwQSAxMTZBIDExQjc7CitDNDA1O0M0MDU7MTEwQSAxMTZBIDExQjg7QzQwNTsxMTBBIDExNkEgMTFCODsKK0M0MDY7QzQwNjsxMTBBIDExNkEgMTFCOTtDNDA2OzExMEEgMTE2QSAxMUI5OworQzQwNztDNDA3OzExMEEgMTE2QSAxMUJBO0M0MDc7MTEwQSAxMTZBIDExQkE7CitDNDA4O0M0MDg7MTEwQSAxMTZBIDExQkI7QzQwODsxMTBBIDExNkEgMTFCQjsKK0M0MDk7QzQwOTsxMTBBIDExNkEgMTFCQztDNDA5OzExMEEgMTE2QSAxMUJDOworQzQwQTtDNDBBOzExMEEgMTE2QSAxMUJEO0M0MEE7MTEwQSAxMTZBIDExQkQ7CitDNDBCO0M0MEI7MTEwQSAxMTZBIDExQkU7QzQwQjsxMTBBIDExNkEgMTFCRTsKK0M0MEM7QzQwQzsxMTBBIDExNkEgMTFCRjtDNDBDOzExMEEgMTE2QSAxMUJGOworQzQwRDtDNDBEOzExMEEgMTE2QSAxMUMwO0M0MEQ7MTEwQSAxMTZBIDExQzA7CitDNDBFO0M0MEU7MTEwQSAxMTZBIDExQzE7QzQwRTsxMTBBIDExNkEgMTFDMTsKK0M0MEY7QzQwRjsxMTBBIDExNkEgMTFDMjtDNDBGOzExMEEgMTE2QSAxMUMyOworQzQxMDtDNDEwOzExMEEgMTE2QjtDNDEwOzExMEEgMTE2QjsKK0M0MTE7QzQxMTsxMTBBIDExNkIgMTFBODtDNDExOzExMEEgMTE2QiAxMUE4OworQzQxMjtDNDEyOzExMEEgMTE2QiAxMUE5O0M0MTI7MTEwQSAxMTZCIDExQTk7CitDNDEzO0M0MTM7MTEwQSAxMTZCIDExQUE7QzQxMzsxMTBBIDExNkIgMTFBQTsKK0M0MTQ7QzQxNDsxMTBBIDExNkIgMTFBQjtDNDE0OzExMEEgMTE2QiAxMUFCOworQzQxNTtDNDE1OzExMEEgMTE2QiAxMUFDO0M0MTU7MTEwQSAxMTZCIDExQUM7CitDNDE2O0M0MTY7MTEwQSAxMTZCIDExQUQ7QzQxNjsxMTBBIDExNkIgMTFBRDsKK0M0MTc7QzQxNzsxMTBBIDExNkIgMTFBRTtDNDE3OzExMEEgMTE2QiAxMUFFOworQzQxODtDNDE4OzExMEEgMTE2QiAxMUFGO0M0MTg7MTEwQSAxMTZCIDExQUY7CitDNDE5O0M0MTk7MTEwQSAxMTZCIDExQjA7QzQxOTsxMTBBIDExNkIgMTFCMDsKK0M0MUE7QzQxQTsxMTBBIDExNkIgMTFCMTtDNDFBOzExMEEgMTE2QiAxMUIxOworQzQxQjtDNDFCOzExMEEgMTE2QiAxMUIyO0M0MUI7MTEwQSAxMTZCIDExQjI7CitDNDFDO0M0MUM7MTEwQSAxMTZCIDExQjM7QzQxQzsxMTBBIDExNkIgMTFCMzsKK0M0MUQ7QzQxRDsxMTBBIDExNkIgMTFCNDtDNDFEOzExMEEgMTE2QiAxMUI0OworQzQxRTtDNDFFOzExMEEgMTE2QiAxMUI1O0M0MUU7MTEwQSAxMTZCIDExQjU7CitDNDFGO0M0MUY7MTEwQSAxMTZCIDExQjY7QzQxRjsxMTBBIDExNkIgMTFCNjsKK0M0MjA7QzQyMDsxMTBBIDExNkIgMTFCNztDNDIwOzExMEEgMTE2QiAxMUI3OworQzQyMTtDNDIxOzExMEEgMTE2QiAxMUI4O0M0MjE7MTEwQSAxMTZCIDExQjg7CitDNDIyO0M0MjI7MTEwQSAxMTZCIDExQjk7QzQyMjsxMTBBIDExNkIgMTFCOTsKK0M0MjM7QzQyMzsxMTBBIDExNkIgMTFCQTtDNDIzOzExMEEgMTE2QiAxMUJBOworQzQyNDtDNDI0OzExMEEgMTE2QiAxMUJCO0M0MjQ7MTEwQSAxMTZCIDExQkI7CitDNDI1O0M0MjU7MTEwQSAxMTZCIDExQkM7QzQyNTsxMTBBIDExNkIgMTFCQzsKK0M0MjY7QzQyNjsxMTBBIDExNkIgMTFCRDtDNDI2OzExMEEgMTE2QiAxMUJEOworQzQyNztDNDI3OzExMEEgMTE2QiAxMUJFO0M0Mjc7MTEwQSAxMTZCIDExQkU7CitDNDI4O0M0Mjg7MTEwQSAxMTZCIDExQkY7QzQyODsxMTBBIDExNkIgMTFCRjsKK0M0Mjk7QzQyOTsxMTBBIDExNkIgMTFDMDtDNDI5OzExMEEgMTE2QiAxMUMwOworQzQyQTtDNDJBOzExMEEgMTE2QiAxMUMxO0M0MkE7MTEwQSAxMTZCIDExQzE7CitDNDJCO0M0MkI7MTEwQSAxMTZCIDExQzI7QzQyQjsxMTBBIDExNkIgMTFDMjsKK0M0MkM7QzQyQzsxMTBBIDExNkM7QzQyQzsxMTBBIDExNkM7CitDNDJEO0M0MkQ7MTEwQSAxMTZDIDExQTg7QzQyRDsxMTBBIDExNkMgMTFBODsKK0M0MkU7QzQyRTsxMTBBIDExNkMgMTFBOTtDNDJFOzExMEEgMTE2QyAxMUE5OworQzQyRjtDNDJGOzExMEEgMTE2QyAxMUFBO0M0MkY7MTEwQSAxMTZDIDExQUE7CitDNDMwO0M0MzA7MTEwQSAxMTZDIDExQUI7QzQzMDsxMTBBIDExNkMgMTFBQjsKK0M0MzE7QzQzMTsxMTBBIDExNkMgMTFBQztDNDMxOzExMEEgMTE2QyAxMUFDOworQzQzMjtDNDMyOzExMEEgMTE2QyAxMUFEO0M0MzI7MTEwQSAxMTZDIDExQUQ7CitDNDMzO0M0MzM7MTEwQSAxMTZDIDExQUU7QzQzMzsxMTBBIDExNkMgMTFBRTsKK0M0MzQ7QzQzNDsxMTBBIDExNkMgMTFBRjtDNDM0OzExMEEgMTE2QyAxMUFGOworQzQzNTtDNDM1OzExMEEgMTE2QyAxMUIwO0M0MzU7MTEwQSAxMTZDIDExQjA7CitDNDM2O0M0MzY7MTEwQSAxMTZDIDExQjE7QzQzNjsxMTBBIDExNkMgMTFCMTsKK0M0Mzc7QzQzNzsxMTBBIDExNkMgMTFCMjtDNDM3OzExMEEgMTE2QyAxMUIyOworQzQzODtDNDM4OzExMEEgMTE2QyAxMUIzO0M0Mzg7MTEwQSAxMTZDIDExQjM7CitDNDM5O0M0Mzk7MTEwQSAxMTZDIDExQjQ7QzQzOTsxMTBBIDExNkMgMTFCNDsKK0M0M0E7QzQzQTsxMTBBIDExNkMgMTFCNTtDNDNBOzExMEEgMTE2QyAxMUI1OworQzQzQjtDNDNCOzExMEEgMTE2QyAxMUI2O0M0M0I7MTEwQSAxMTZDIDExQjY7CitDNDNDO0M0M0M7MTEwQSAxMTZDIDExQjc7QzQzQzsxMTBBIDExNkMgMTFCNzsKK0M0M0Q7QzQzRDsxMTBBIDExNkMgMTFCODtDNDNEOzExMEEgMTE2QyAxMUI4OworQzQzRTtDNDNFOzExMEEgMTE2QyAxMUI5O0M0M0U7MTEwQSAxMTZDIDExQjk7CitDNDNGO0M0M0Y7MTEwQSAxMTZDIDExQkE7QzQzRjsxMTBBIDExNkMgMTFCQTsKK0M0NDA7QzQ0MDsxMTBBIDExNkMgMTFCQjtDNDQwOzExMEEgMTE2QyAxMUJCOworQzQ0MTtDNDQxOzExMEEgMTE2QyAxMUJDO0M0NDE7MTEwQSAxMTZDIDExQkM7CitDNDQyO0M0NDI7MTEwQSAxMTZDIDExQkQ7QzQ0MjsxMTBBIDExNkMgMTFCRDsKK0M0NDM7QzQ0MzsxMTBBIDExNkMgMTFCRTtDNDQzOzExMEEgMTE2QyAxMUJFOworQzQ0NDtDNDQ0OzExMEEgMTE2QyAxMUJGO0M0NDQ7MTEwQSAxMTZDIDExQkY7CitDNDQ1O0M0NDU7MTEwQSAxMTZDIDExQzA7QzQ0NTsxMTBBIDExNkMgMTFDMDsKK0M0NDY7QzQ0NjsxMTBBIDExNkMgMTFDMTtDNDQ2OzExMEEgMTE2QyAxMUMxOworQzQ0NztDNDQ3OzExMEEgMTE2QyAxMUMyO0M0NDc7MTEwQSAxMTZDIDExQzI7CitDNDQ4O0M0NDg7MTEwQSAxMTZEO0M0NDg7MTEwQSAxMTZEOworQzQ0OTtDNDQ5OzExMEEgMTE2RCAxMUE4O0M0NDk7MTEwQSAxMTZEIDExQTg7CitDNDRBO0M0NEE7MTEwQSAxMTZEIDExQTk7QzQ0QTsxMTBBIDExNkQgMTFBOTsKK0M0NEI7QzQ0QjsxMTBBIDExNkQgMTFBQTtDNDRCOzExMEEgMTE2RCAxMUFBOworQzQ0QztDNDRDOzExMEEgMTE2RCAxMUFCO0M0NEM7MTEwQSAxMTZEIDExQUI7CitDNDREO0M0NEQ7MTEwQSAxMTZEIDExQUM7QzQ0RDsxMTBBIDExNkQgMTFBQzsKK0M0NEU7QzQ0RTsxMTBBIDExNkQgMTFBRDtDNDRFOzExMEEgMTE2RCAxMUFEOworQzQ0RjtDNDRGOzExMEEgMTE2RCAxMUFFO0M0NEY7MTEwQSAxMTZEIDExQUU7CitDNDUwO0M0NTA7MTEwQSAxMTZEIDExQUY7QzQ1MDsxMTBBIDExNkQgMTFBRjsKK0M0NTE7QzQ1MTsxMTBBIDExNkQgMTFCMDtDNDUxOzExMEEgMTE2RCAxMUIwOworQzQ1MjtDNDUyOzExMEEgMTE2RCAxMUIxO0M0NTI7MTEwQSAxMTZEIDExQjE7CitDNDUzO0M0NTM7MTEwQSAxMTZEIDExQjI7QzQ1MzsxMTBBIDExNkQgMTFCMjsKK0M0NTQ7QzQ1NDsxMTBBIDExNkQgMTFCMztDNDU0OzExMEEgMTE2RCAxMUIzOworQzQ1NTtDNDU1OzExMEEgMTE2RCAxMUI0O0M0NTU7MTEwQSAxMTZEIDExQjQ7CitDNDU2O0M0NTY7MTEwQSAxMTZEIDExQjU7QzQ1NjsxMTBBIDExNkQgMTFCNTsKK0M0NTc7QzQ1NzsxMTBBIDExNkQgMTFCNjtDNDU3OzExMEEgMTE2RCAxMUI2OworQzQ1ODtDNDU4OzExMEEgMTE2RCAxMUI3O0M0NTg7MTEwQSAxMTZEIDExQjc7CitDNDU5O0M0NTk7MTEwQSAxMTZEIDExQjg7QzQ1OTsxMTBBIDExNkQgMTFCODsKK0M0NUE7QzQ1QTsxMTBBIDExNkQgMTFCOTtDNDVBOzExMEEgMTE2RCAxMUI5OworQzQ1QjtDNDVCOzExMEEgMTE2RCAxMUJBO0M0NUI7MTEwQSAxMTZEIDExQkE7CitDNDVDO0M0NUM7MTEwQSAxMTZEIDExQkI7QzQ1QzsxMTBBIDExNkQgMTFCQjsKK0M0NUQ7QzQ1RDsxMTBBIDExNkQgMTFCQztDNDVEOzExMEEgMTE2RCAxMUJDOworQzQ1RTtDNDVFOzExMEEgMTE2RCAxMUJEO0M0NUU7MTEwQSAxMTZEIDExQkQ7CitDNDVGO0M0NUY7MTEwQSAxMTZEIDExQkU7QzQ1RjsxMTBBIDExNkQgMTFCRTsKK0M0NjA7QzQ2MDsxMTBBIDExNkQgMTFCRjtDNDYwOzExMEEgMTE2RCAxMUJGOworQzQ2MTtDNDYxOzExMEEgMTE2RCAxMUMwO0M0NjE7MTEwQSAxMTZEIDExQzA7CitDNDYyO0M0NjI7MTEwQSAxMTZEIDExQzE7QzQ2MjsxMTBBIDExNkQgMTFDMTsKK0M0NjM7QzQ2MzsxMTBBIDExNkQgMTFDMjtDNDYzOzExMEEgMTE2RCAxMUMyOworQzQ2NDtDNDY0OzExMEEgMTE2RTtDNDY0OzExMEEgMTE2RTsKK0M0NjU7QzQ2NTsxMTBBIDExNkUgMTFBODtDNDY1OzExMEEgMTE2RSAxMUE4OworQzQ2NjtDNDY2OzExMEEgMTE2RSAxMUE5O0M0NjY7MTEwQSAxMTZFIDExQTk7CitDNDY3O0M0Njc7MTEwQSAxMTZFIDExQUE7QzQ2NzsxMTBBIDExNkUgMTFBQTsKK0M0Njg7QzQ2ODsxMTBBIDExNkUgMTFBQjtDNDY4OzExMEEgMTE2RSAxMUFCOworQzQ2OTtDNDY5OzExMEEgMTE2RSAxMUFDO0M0Njk7MTEwQSAxMTZFIDExQUM7CitDNDZBO0M0NkE7MTEwQSAxMTZFIDExQUQ7QzQ2QTsxMTBBIDExNkUgMTFBRDsKK0M0NkI7QzQ2QjsxMTBBIDExNkUgMTFBRTtDNDZCOzExMEEgMTE2RSAxMUFFOworQzQ2QztDNDZDOzExMEEgMTE2RSAxMUFGO0M0NkM7MTEwQSAxMTZFIDExQUY7CitDNDZEO0M0NkQ7MTEwQSAxMTZFIDExQjA7QzQ2RDsxMTBBIDExNkUgMTFCMDsKK0M0NkU7QzQ2RTsxMTBBIDExNkUgMTFCMTtDNDZFOzExMEEgMTE2RSAxMUIxOworQzQ2RjtDNDZGOzExMEEgMTE2RSAxMUIyO0M0NkY7MTEwQSAxMTZFIDExQjI7CitDNDcwO0M0NzA7MTEwQSAxMTZFIDExQjM7QzQ3MDsxMTBBIDExNkUgMTFCMzsKK0M0NzE7QzQ3MTsxMTBBIDExNkUgMTFCNDtDNDcxOzExMEEgMTE2RSAxMUI0OworQzQ3MjtDNDcyOzExMEEgMTE2RSAxMUI1O0M0NzI7MTEwQSAxMTZFIDExQjU7CitDNDczO0M0NzM7MTEwQSAxMTZFIDExQjY7QzQ3MzsxMTBBIDExNkUgMTFCNjsKK0M0NzQ7QzQ3NDsxMTBBIDExNkUgMTFCNztDNDc0OzExMEEgMTE2RSAxMUI3OworQzQ3NTtDNDc1OzExMEEgMTE2RSAxMUI4O0M0NzU7MTEwQSAxMTZFIDExQjg7CitDNDc2O0M0NzY7MTEwQSAxMTZFIDExQjk7QzQ3NjsxMTBBIDExNkUgMTFCOTsKK0M0Nzc7QzQ3NzsxMTBBIDExNkUgMTFCQTtDNDc3OzExMEEgMTE2RSAxMUJBOworQzQ3ODtDNDc4OzExMEEgMTE2RSAxMUJCO0M0Nzg7MTEwQSAxMTZFIDExQkI7CitDNDc5O0M0Nzk7MTEwQSAxMTZFIDExQkM7QzQ3OTsxMTBBIDExNkUgMTFCQzsKK0M0N0E7QzQ3QTsxMTBBIDExNkUgMTFCRDtDNDdBOzExMEEgMTE2RSAxMUJEOworQzQ3QjtDNDdCOzExMEEgMTE2RSAxMUJFO0M0N0I7MTEwQSAxMTZFIDExQkU7CitDNDdDO0M0N0M7MTEwQSAxMTZFIDExQkY7QzQ3QzsxMTBBIDExNkUgMTFCRjsKK0M0N0Q7QzQ3RDsxMTBBIDExNkUgMTFDMDtDNDdEOzExMEEgMTE2RSAxMUMwOworQzQ3RTtDNDdFOzExMEEgMTE2RSAxMUMxO0M0N0U7MTEwQSAxMTZFIDExQzE7CitDNDdGO0M0N0Y7MTEwQSAxMTZFIDExQzI7QzQ3RjsxMTBBIDExNkUgMTFDMjsKK0M0ODA7QzQ4MDsxMTBBIDExNkY7QzQ4MDsxMTBBIDExNkY7CitDNDgxO0M0ODE7MTEwQSAxMTZGIDExQTg7QzQ4MTsxMTBBIDExNkYgMTFBODsKK0M0ODI7QzQ4MjsxMTBBIDExNkYgMTFBOTtDNDgyOzExMEEgMTE2RiAxMUE5OworQzQ4MztDNDgzOzExMEEgMTE2RiAxMUFBO0M0ODM7MTEwQSAxMTZGIDExQUE7CitDNDg0O0M0ODQ7MTEwQSAxMTZGIDExQUI7QzQ4NDsxMTBBIDExNkYgMTFBQjsKK0M0ODU7QzQ4NTsxMTBBIDExNkYgMTFBQztDNDg1OzExMEEgMTE2RiAxMUFDOworQzQ4NjtDNDg2OzExMEEgMTE2RiAxMUFEO0M0ODY7MTEwQSAxMTZGIDExQUQ7CitDNDg3O0M0ODc7MTEwQSAxMTZGIDExQUU7QzQ4NzsxMTBBIDExNkYgMTFBRTsKK0M0ODg7QzQ4ODsxMTBBIDExNkYgMTFBRjtDNDg4OzExMEEgMTE2RiAxMUFGOworQzQ4OTtDNDg5OzExMEEgMTE2RiAxMUIwO0M0ODk7MTEwQSAxMTZGIDExQjA7CitDNDhBO0M0OEE7MTEwQSAxMTZGIDExQjE7QzQ4QTsxMTBBIDExNkYgMTFCMTsKK0M0OEI7QzQ4QjsxMTBBIDExNkYgMTFCMjtDNDhCOzExMEEgMTE2RiAxMUIyOworQzQ4QztDNDhDOzExMEEgMTE2RiAxMUIzO0M0OEM7MTEwQSAxMTZGIDExQjM7CitDNDhEO0M0OEQ7MTEwQSAxMTZGIDExQjQ7QzQ4RDsxMTBBIDExNkYgMTFCNDsKK0M0OEU7QzQ4RTsxMTBBIDExNkYgMTFCNTtDNDhFOzExMEEgMTE2RiAxMUI1OworQzQ4RjtDNDhGOzExMEEgMTE2RiAxMUI2O0M0OEY7MTEwQSAxMTZGIDExQjY7CitDNDkwO0M0OTA7MTEwQSAxMTZGIDExQjc7QzQ5MDsxMTBBIDExNkYgMTFCNzsKK0M0OTE7QzQ5MTsxMTBBIDExNkYgMTFCODtDNDkxOzExMEEgMTE2RiAxMUI4OworQzQ5MjtDNDkyOzExMEEgMTE2RiAxMUI5O0M0OTI7MTEwQSAxMTZGIDExQjk7CitDNDkzO0M0OTM7MTEwQSAxMTZGIDExQkE7QzQ5MzsxMTBBIDExNkYgMTFCQTsKK0M0OTQ7QzQ5NDsxMTBBIDExNkYgMTFCQjtDNDk0OzExMEEgMTE2RiAxMUJCOworQzQ5NTtDNDk1OzExMEEgMTE2RiAxMUJDO0M0OTU7MTEwQSAxMTZGIDExQkM7CitDNDk2O0M0OTY7MTEwQSAxMTZGIDExQkQ7QzQ5NjsxMTBBIDExNkYgMTFCRDsKK0M0OTc7QzQ5NzsxMTBBIDExNkYgMTFCRTtDNDk3OzExMEEgMTE2RiAxMUJFOworQzQ5ODtDNDk4OzExMEEgMTE2RiAxMUJGO0M0OTg7MTEwQSAxMTZGIDExQkY7CitDNDk5O0M0OTk7MTEwQSAxMTZGIDExQzA7QzQ5OTsxMTBBIDExNkYgMTFDMDsKK0M0OUE7QzQ5QTsxMTBBIDExNkYgMTFDMTtDNDlBOzExMEEgMTE2RiAxMUMxOworQzQ5QjtDNDlCOzExMEEgMTE2RiAxMUMyO0M0OUI7MTEwQSAxMTZGIDExQzI7CitDNDlDO0M0OUM7MTEwQSAxMTcwO0M0OUM7MTEwQSAxMTcwOworQzQ5RDtDNDlEOzExMEEgMTE3MCAxMUE4O0M0OUQ7MTEwQSAxMTcwIDExQTg7CitDNDlFO0M0OUU7MTEwQSAxMTcwIDExQTk7QzQ5RTsxMTBBIDExNzAgMTFBOTsKK0M0OUY7QzQ5RjsxMTBBIDExNzAgMTFBQTtDNDlGOzExMEEgMTE3MCAxMUFBOworQzRBMDtDNEEwOzExMEEgMTE3MCAxMUFCO0M0QTA7MTEwQSAxMTcwIDExQUI7CitDNEExO0M0QTE7MTEwQSAxMTcwIDExQUM7QzRBMTsxMTBBIDExNzAgMTFBQzsKK0M0QTI7QzRBMjsxMTBBIDExNzAgMTFBRDtDNEEyOzExMEEgMTE3MCAxMUFEOworQzRBMztDNEEzOzExMEEgMTE3MCAxMUFFO0M0QTM7MTEwQSAxMTcwIDExQUU7CitDNEE0O0M0QTQ7MTEwQSAxMTcwIDExQUY7QzRBNDsxMTBBIDExNzAgMTFBRjsKK0M0QTU7QzRBNTsxMTBBIDExNzAgMTFCMDtDNEE1OzExMEEgMTE3MCAxMUIwOworQzRBNjtDNEE2OzExMEEgMTE3MCAxMUIxO0M0QTY7MTEwQSAxMTcwIDExQjE7CitDNEE3O0M0QTc7MTEwQSAxMTcwIDExQjI7QzRBNzsxMTBBIDExNzAgMTFCMjsKK0M0QTg7QzRBODsxMTBBIDExNzAgMTFCMztDNEE4OzExMEEgMTE3MCAxMUIzOworQzRBOTtDNEE5OzExMEEgMTE3MCAxMUI0O0M0QTk7MTEwQSAxMTcwIDExQjQ7CitDNEFBO0M0QUE7MTEwQSAxMTcwIDExQjU7QzRBQTsxMTBBIDExNzAgMTFCNTsKK0M0QUI7QzRBQjsxMTBBIDExNzAgMTFCNjtDNEFCOzExMEEgMTE3MCAxMUI2OworQzRBQztDNEFDOzExMEEgMTE3MCAxMUI3O0M0QUM7MTEwQSAxMTcwIDExQjc7CitDNEFEO0M0QUQ7MTEwQSAxMTcwIDExQjg7QzRBRDsxMTBBIDExNzAgMTFCODsKK0M0QUU7QzRBRTsxMTBBIDExNzAgMTFCOTtDNEFFOzExMEEgMTE3MCAxMUI5OworQzRBRjtDNEFGOzExMEEgMTE3MCAxMUJBO0M0QUY7MTEwQSAxMTcwIDExQkE7CitDNEIwO0M0QjA7MTEwQSAxMTcwIDExQkI7QzRCMDsxMTBBIDExNzAgMTFCQjsKK0M0QjE7QzRCMTsxMTBBIDExNzAgMTFCQztDNEIxOzExMEEgMTE3MCAxMUJDOworQzRCMjtDNEIyOzExMEEgMTE3MCAxMUJEO0M0QjI7MTEwQSAxMTcwIDExQkQ7CitDNEIzO0M0QjM7MTEwQSAxMTcwIDExQkU7QzRCMzsxMTBBIDExNzAgMTFCRTsKK0M0QjQ7QzRCNDsxMTBBIDExNzAgMTFCRjtDNEI0OzExMEEgMTE3MCAxMUJGOworQzRCNTtDNEI1OzExMEEgMTE3MCAxMUMwO0M0QjU7MTEwQSAxMTcwIDExQzA7CitDNEI2O0M0QjY7MTEwQSAxMTcwIDExQzE7QzRCNjsxMTBBIDExNzAgMTFDMTsKK0M0Qjc7QzRCNzsxMTBBIDExNzAgMTFDMjtDNEI3OzExMEEgMTE3MCAxMUMyOworQzRCODtDNEI4OzExMEEgMTE3MTtDNEI4OzExMEEgMTE3MTsKK0M0Qjk7QzRCOTsxMTBBIDExNzEgMTFBODtDNEI5OzExMEEgMTE3MSAxMUE4OworQzRCQTtDNEJBOzExMEEgMTE3MSAxMUE5O0M0QkE7MTEwQSAxMTcxIDExQTk7CitDNEJCO0M0QkI7MTEwQSAxMTcxIDExQUE7QzRCQjsxMTBBIDExNzEgMTFBQTsKK0M0QkM7QzRCQzsxMTBBIDExNzEgMTFBQjtDNEJDOzExMEEgMTE3MSAxMUFCOworQzRCRDtDNEJEOzExMEEgMTE3MSAxMUFDO0M0QkQ7MTEwQSAxMTcxIDExQUM7CitDNEJFO0M0QkU7MTEwQSAxMTcxIDExQUQ7QzRCRTsxMTBBIDExNzEgMTFBRDsKK0M0QkY7QzRCRjsxMTBBIDExNzEgMTFBRTtDNEJGOzExMEEgMTE3MSAxMUFFOworQzRDMDtDNEMwOzExMEEgMTE3MSAxMUFGO0M0QzA7MTEwQSAxMTcxIDExQUY7CitDNEMxO0M0QzE7MTEwQSAxMTcxIDExQjA7QzRDMTsxMTBBIDExNzEgMTFCMDsKK0M0QzI7QzRDMjsxMTBBIDExNzEgMTFCMTtDNEMyOzExMEEgMTE3MSAxMUIxOworQzRDMztDNEMzOzExMEEgMTE3MSAxMUIyO0M0QzM7MTEwQSAxMTcxIDExQjI7CitDNEM0O0M0QzQ7MTEwQSAxMTcxIDExQjM7QzRDNDsxMTBBIDExNzEgMTFCMzsKK0M0QzU7QzRDNTsxMTBBIDExNzEgMTFCNDtDNEM1OzExMEEgMTE3MSAxMUI0OworQzRDNjtDNEM2OzExMEEgMTE3MSAxMUI1O0M0QzY7MTEwQSAxMTcxIDExQjU7CitDNEM3O0M0Qzc7MTEwQSAxMTcxIDExQjY7QzRDNzsxMTBBIDExNzEgMTFCNjsKK0M0Qzg7QzRDODsxMTBBIDExNzEgMTFCNztDNEM4OzExMEEgMTE3MSAxMUI3OworQzRDOTtDNEM5OzExMEEgMTE3MSAxMUI4O0M0Qzk7MTEwQSAxMTcxIDExQjg7CitDNENBO0M0Q0E7MTEwQSAxMTcxIDExQjk7QzRDQTsxMTBBIDExNzEgMTFCOTsKK0M0Q0I7QzRDQjsxMTBBIDExNzEgMTFCQTtDNENCOzExMEEgMTE3MSAxMUJBOworQzRDQztDNENDOzExMEEgMTE3MSAxMUJCO0M0Q0M7MTEwQSAxMTcxIDExQkI7CitDNENEO0M0Q0Q7MTEwQSAxMTcxIDExQkM7QzRDRDsxMTBBIDExNzEgMTFCQzsKK0M0Q0U7QzRDRTsxMTBBIDExNzEgMTFCRDtDNENFOzExMEEgMTE3MSAxMUJEOworQzRDRjtDNENGOzExMEEgMTE3MSAxMUJFO0M0Q0Y7MTEwQSAxMTcxIDExQkU7CitDNEQwO0M0RDA7MTEwQSAxMTcxIDExQkY7QzREMDsxMTBBIDExNzEgMTFCRjsKK0M0RDE7QzREMTsxMTBBIDExNzEgMTFDMDtDNEQxOzExMEEgMTE3MSAxMUMwOworQzREMjtDNEQyOzExMEEgMTE3MSAxMUMxO0M0RDI7MTEwQSAxMTcxIDExQzE7CitDNEQzO0M0RDM7MTEwQSAxMTcxIDExQzI7QzREMzsxMTBBIDExNzEgMTFDMjsKK0M0RDQ7QzRENDsxMTBBIDExNzI7QzRENDsxMTBBIDExNzI7CitDNEQ1O0M0RDU7MTEwQSAxMTcyIDExQTg7QzRENTsxMTBBIDExNzIgMTFBODsKK0M0RDY7QzRENjsxMTBBIDExNzIgMTFBOTtDNEQ2OzExMEEgMTE3MiAxMUE5OworQzRENztDNEQ3OzExMEEgMTE3MiAxMUFBO0M0RDc7MTEwQSAxMTcyIDExQUE7CitDNEQ4O0M0RDg7MTEwQSAxMTcyIDExQUI7QzREODsxMTBBIDExNzIgMTFBQjsKK0M0RDk7QzREOTsxMTBBIDExNzIgMTFBQztDNEQ5OzExMEEgMTE3MiAxMUFDOworQzREQTtDNERBOzExMEEgMTE3MiAxMUFEO0M0REE7MTEwQSAxMTcyIDExQUQ7CitDNERCO0M0REI7MTEwQSAxMTcyIDExQUU7QzREQjsxMTBBIDExNzIgMTFBRTsKK0M0REM7QzREQzsxMTBBIDExNzIgMTFBRjtDNERDOzExMEEgMTE3MiAxMUFGOworQzRERDtDNEREOzExMEEgMTE3MiAxMUIwO0M0REQ7MTEwQSAxMTcyIDExQjA7CitDNERFO0M0REU7MTEwQSAxMTcyIDExQjE7QzRERTsxMTBBIDExNzIgMTFCMTsKK0M0REY7QzRERjsxMTBBIDExNzIgMTFCMjtDNERGOzExMEEgMTE3MiAxMUIyOworQzRFMDtDNEUwOzExMEEgMTE3MiAxMUIzO0M0RTA7MTEwQSAxMTcyIDExQjM7CitDNEUxO0M0RTE7MTEwQSAxMTcyIDExQjQ7QzRFMTsxMTBBIDExNzIgMTFCNDsKK0M0RTI7QzRFMjsxMTBBIDExNzIgMTFCNTtDNEUyOzExMEEgMTE3MiAxMUI1OworQzRFMztDNEUzOzExMEEgMTE3MiAxMUI2O0M0RTM7MTEwQSAxMTcyIDExQjY7CitDNEU0O0M0RTQ7MTEwQSAxMTcyIDExQjc7QzRFNDsxMTBBIDExNzIgMTFCNzsKK0M0RTU7QzRFNTsxMTBBIDExNzIgMTFCODtDNEU1OzExMEEgMTE3MiAxMUI4OworQzRFNjtDNEU2OzExMEEgMTE3MiAxMUI5O0M0RTY7MTEwQSAxMTcyIDExQjk7CitDNEU3O0M0RTc7MTEwQSAxMTcyIDExQkE7QzRFNzsxMTBBIDExNzIgMTFCQTsKK0M0RTg7QzRFODsxMTBBIDExNzIgMTFCQjtDNEU4OzExMEEgMTE3MiAxMUJCOworQzRFOTtDNEU5OzExMEEgMTE3MiAxMUJDO0M0RTk7MTEwQSAxMTcyIDExQkM7CitDNEVBO0M0RUE7MTEwQSAxMTcyIDExQkQ7QzRFQTsxMTBBIDExNzIgMTFCRDsKK0M0RUI7QzRFQjsxMTBBIDExNzIgMTFCRTtDNEVCOzExMEEgMTE3MiAxMUJFOworQzRFQztDNEVDOzExMEEgMTE3MiAxMUJGO0M0RUM7MTEwQSAxMTcyIDExQkY7CitDNEVEO0M0RUQ7MTEwQSAxMTcyIDExQzA7QzRFRDsxMTBBIDExNzIgMTFDMDsKK0M0RUU7QzRFRTsxMTBBIDExNzIgMTFDMTtDNEVFOzExMEEgMTE3MiAxMUMxOworQzRFRjtDNEVGOzExMEEgMTE3MiAxMUMyO0M0RUY7MTEwQSAxMTcyIDExQzI7CitDNEYwO0M0RjA7MTEwQSAxMTczO0M0RjA7MTEwQSAxMTczOworQzRGMTtDNEYxOzExMEEgMTE3MyAxMUE4O0M0RjE7MTEwQSAxMTczIDExQTg7CitDNEYyO0M0RjI7MTEwQSAxMTczIDExQTk7QzRGMjsxMTBBIDExNzMgMTFBOTsKK0M0RjM7QzRGMzsxMTBBIDExNzMgMTFBQTtDNEYzOzExMEEgMTE3MyAxMUFBOworQzRGNDtDNEY0OzExMEEgMTE3MyAxMUFCO0M0RjQ7MTEwQSAxMTczIDExQUI7CitDNEY1O0M0RjU7MTEwQSAxMTczIDExQUM7QzRGNTsxMTBBIDExNzMgMTFBQzsKK0M0RjY7QzRGNjsxMTBBIDExNzMgMTFBRDtDNEY2OzExMEEgMTE3MyAxMUFEOworQzRGNztDNEY3OzExMEEgMTE3MyAxMUFFO0M0Rjc7MTEwQSAxMTczIDExQUU7CitDNEY4O0M0Rjg7MTEwQSAxMTczIDExQUY7QzRGODsxMTBBIDExNzMgMTFBRjsKK0M0Rjk7QzRGOTsxMTBBIDExNzMgMTFCMDtDNEY5OzExMEEgMTE3MyAxMUIwOworQzRGQTtDNEZBOzExMEEgMTE3MyAxMUIxO0M0RkE7MTEwQSAxMTczIDExQjE7CitDNEZCO0M0RkI7MTEwQSAxMTczIDExQjI7QzRGQjsxMTBBIDExNzMgMTFCMjsKK0M0RkM7QzRGQzsxMTBBIDExNzMgMTFCMztDNEZDOzExMEEgMTE3MyAxMUIzOworQzRGRDtDNEZEOzExMEEgMTE3MyAxMUI0O0M0RkQ7MTEwQSAxMTczIDExQjQ7CitDNEZFO0M0RkU7MTEwQSAxMTczIDExQjU7QzRGRTsxMTBBIDExNzMgMTFCNTsKK0M0RkY7QzRGRjsxMTBBIDExNzMgMTFCNjtDNEZGOzExMEEgMTE3MyAxMUI2OworQzUwMDtDNTAwOzExMEEgMTE3MyAxMUI3O0M1MDA7MTEwQSAxMTczIDExQjc7CitDNTAxO0M1MDE7MTEwQSAxMTczIDExQjg7QzUwMTsxMTBBIDExNzMgMTFCODsKK0M1MDI7QzUwMjsxMTBBIDExNzMgMTFCOTtDNTAyOzExMEEgMTE3MyAxMUI5OworQzUwMztDNTAzOzExMEEgMTE3MyAxMUJBO0M1MDM7MTEwQSAxMTczIDExQkE7CitDNTA0O0M1MDQ7MTEwQSAxMTczIDExQkI7QzUwNDsxMTBBIDExNzMgMTFCQjsKK0M1MDU7QzUwNTsxMTBBIDExNzMgMTFCQztDNTA1OzExMEEgMTE3MyAxMUJDOworQzUwNjtDNTA2OzExMEEgMTE3MyAxMUJEO0M1MDY7MTEwQSAxMTczIDExQkQ7CitDNTA3O0M1MDc7MTEwQSAxMTczIDExQkU7QzUwNzsxMTBBIDExNzMgMTFCRTsKK0M1MDg7QzUwODsxMTBBIDExNzMgMTFCRjtDNTA4OzExMEEgMTE3MyAxMUJGOworQzUwOTtDNTA5OzExMEEgMTE3MyAxMUMwO0M1MDk7MTEwQSAxMTczIDExQzA7CitDNTBBO0M1MEE7MTEwQSAxMTczIDExQzE7QzUwQTsxMTBBIDExNzMgMTFDMTsKK0M1MEI7QzUwQjsxMTBBIDExNzMgMTFDMjtDNTBCOzExMEEgMTE3MyAxMUMyOworQzUwQztDNTBDOzExMEEgMTE3NDtDNTBDOzExMEEgMTE3NDsKK0M1MEQ7QzUwRDsxMTBBIDExNzQgMTFBODtDNTBEOzExMEEgMTE3NCAxMUE4OworQzUwRTtDNTBFOzExMEEgMTE3NCAxMUE5O0M1MEU7MTEwQSAxMTc0IDExQTk7CitDNTBGO0M1MEY7MTEwQSAxMTc0IDExQUE7QzUwRjsxMTBBIDExNzQgMTFBQTsKK0M1MTA7QzUxMDsxMTBBIDExNzQgMTFBQjtDNTEwOzExMEEgMTE3NCAxMUFCOworQzUxMTtDNTExOzExMEEgMTE3NCAxMUFDO0M1MTE7MTEwQSAxMTc0IDExQUM7CitDNTEyO0M1MTI7MTEwQSAxMTc0IDExQUQ7QzUxMjsxMTBBIDExNzQgMTFBRDsKK0M1MTM7QzUxMzsxMTBBIDExNzQgMTFBRTtDNTEzOzExMEEgMTE3NCAxMUFFOworQzUxNDtDNTE0OzExMEEgMTE3NCAxMUFGO0M1MTQ7MTEwQSAxMTc0IDExQUY7CitDNTE1O0M1MTU7MTEwQSAxMTc0IDExQjA7QzUxNTsxMTBBIDExNzQgMTFCMDsKK0M1MTY7QzUxNjsxMTBBIDExNzQgMTFCMTtDNTE2OzExMEEgMTE3NCAxMUIxOworQzUxNztDNTE3OzExMEEgMTE3NCAxMUIyO0M1MTc7MTEwQSAxMTc0IDExQjI7CitDNTE4O0M1MTg7MTEwQSAxMTc0IDExQjM7QzUxODsxMTBBIDExNzQgMTFCMzsKK0M1MTk7QzUxOTsxMTBBIDExNzQgMTFCNDtDNTE5OzExMEEgMTE3NCAxMUI0OworQzUxQTtDNTFBOzExMEEgMTE3NCAxMUI1O0M1MUE7MTEwQSAxMTc0IDExQjU7CitDNTFCO0M1MUI7MTEwQSAxMTc0IDExQjY7QzUxQjsxMTBBIDExNzQgMTFCNjsKK0M1MUM7QzUxQzsxMTBBIDExNzQgMTFCNztDNTFDOzExMEEgMTE3NCAxMUI3OworQzUxRDtDNTFEOzExMEEgMTE3NCAxMUI4O0M1MUQ7MTEwQSAxMTc0IDExQjg7CitDNTFFO0M1MUU7MTEwQSAxMTc0IDExQjk7QzUxRTsxMTBBIDExNzQgMTFCOTsKK0M1MUY7QzUxRjsxMTBBIDExNzQgMTFCQTtDNTFGOzExMEEgMTE3NCAxMUJBOworQzUyMDtDNTIwOzExMEEgMTE3NCAxMUJCO0M1MjA7MTEwQSAxMTc0IDExQkI7CitDNTIxO0M1MjE7MTEwQSAxMTc0IDExQkM7QzUyMTsxMTBBIDExNzQgMTFCQzsKK0M1MjI7QzUyMjsxMTBBIDExNzQgMTFCRDtDNTIyOzExMEEgMTE3NCAxMUJEOworQzUyMztDNTIzOzExMEEgMTE3NCAxMUJFO0M1MjM7MTEwQSAxMTc0IDExQkU7CitDNTI0O0M1MjQ7MTEwQSAxMTc0IDExQkY7QzUyNDsxMTBBIDExNzQgMTFCRjsKK0M1MjU7QzUyNTsxMTBBIDExNzQgMTFDMDtDNTI1OzExMEEgMTE3NCAxMUMwOworQzUyNjtDNTI2OzExMEEgMTE3NCAxMUMxO0M1MjY7MTEwQSAxMTc0IDExQzE7CitDNTI3O0M1Mjc7MTEwQSAxMTc0IDExQzI7QzUyNzsxMTBBIDExNzQgMTFDMjsKK0M1Mjg7QzUyODsxMTBBIDExNzU7QzUyODsxMTBBIDExNzU7CitDNTI5O0M1Mjk7MTEwQSAxMTc1IDExQTg7QzUyOTsxMTBBIDExNzUgMTFBODsKK0M1MkE7QzUyQTsxMTBBIDExNzUgMTFBOTtDNTJBOzExMEEgMTE3NSAxMUE5OworQzUyQjtDNTJCOzExMEEgMTE3NSAxMUFBO0M1MkI7MTEwQSAxMTc1IDExQUE7CitDNTJDO0M1MkM7MTEwQSAxMTc1IDExQUI7QzUyQzsxMTBBIDExNzUgMTFBQjsKK0M1MkQ7QzUyRDsxMTBBIDExNzUgMTFBQztDNTJEOzExMEEgMTE3NSAxMUFDOworQzUyRTtDNTJFOzExMEEgMTE3NSAxMUFEO0M1MkU7MTEwQSAxMTc1IDExQUQ7CitDNTJGO0M1MkY7MTEwQSAxMTc1IDExQUU7QzUyRjsxMTBBIDExNzUgMTFBRTsKK0M1MzA7QzUzMDsxMTBBIDExNzUgMTFBRjtDNTMwOzExMEEgMTE3NSAxMUFGOworQzUzMTtDNTMxOzExMEEgMTE3NSAxMUIwO0M1MzE7MTEwQSAxMTc1IDExQjA7CitDNTMyO0M1MzI7MTEwQSAxMTc1IDExQjE7QzUzMjsxMTBBIDExNzUgMTFCMTsKK0M1MzM7QzUzMzsxMTBBIDExNzUgMTFCMjtDNTMzOzExMEEgMTE3NSAxMUIyOworQzUzNDtDNTM0OzExMEEgMTE3NSAxMUIzO0M1MzQ7MTEwQSAxMTc1IDExQjM7CitDNTM1O0M1MzU7MTEwQSAxMTc1IDExQjQ7QzUzNTsxMTBBIDExNzUgMTFCNDsKK0M1MzY7QzUzNjsxMTBBIDExNzUgMTFCNTtDNTM2OzExMEEgMTE3NSAxMUI1OworQzUzNztDNTM3OzExMEEgMTE3NSAxMUI2O0M1Mzc7MTEwQSAxMTc1IDExQjY7CitDNTM4O0M1Mzg7MTEwQSAxMTc1IDExQjc7QzUzODsxMTBBIDExNzUgMTFCNzsKK0M1Mzk7QzUzOTsxMTBBIDExNzUgMTFCODtDNTM5OzExMEEgMTE3NSAxMUI4OworQzUzQTtDNTNBOzExMEEgMTE3NSAxMUI5O0M1M0E7MTEwQSAxMTc1IDExQjk7CitDNTNCO0M1M0I7MTEwQSAxMTc1IDExQkE7QzUzQjsxMTBBIDExNzUgMTFCQTsKK0M1M0M7QzUzQzsxMTBBIDExNzUgMTFCQjtDNTNDOzExMEEgMTE3NSAxMUJCOworQzUzRDtDNTNEOzExMEEgMTE3NSAxMUJDO0M1M0Q7MTEwQSAxMTc1IDExQkM7CitDNTNFO0M1M0U7MTEwQSAxMTc1IDExQkQ7QzUzRTsxMTBBIDExNzUgMTFCRDsKK0M1M0Y7QzUzRjsxMTBBIDExNzUgMTFCRTtDNTNGOzExMEEgMTE3NSAxMUJFOworQzU0MDtDNTQwOzExMEEgMTE3NSAxMUJGO0M1NDA7MTEwQSAxMTc1IDExQkY7CitDNTQxO0M1NDE7MTEwQSAxMTc1IDExQzA7QzU0MTsxMTBBIDExNzUgMTFDMDsKK0M1NDI7QzU0MjsxMTBBIDExNzUgMTFDMTtDNTQyOzExMEEgMTE3NSAxMUMxOworQzU0MztDNTQzOzExMEEgMTE3NSAxMUMyO0M1NDM7MTEwQSAxMTc1IDExQzI7CitDNTQ0O0M1NDQ7MTEwQiAxMTYxO0M1NDQ7MTEwQiAxMTYxOworQzU0NTtDNTQ1OzExMEIgMTE2MSAxMUE4O0M1NDU7MTEwQiAxMTYxIDExQTg7CitDNTQ2O0M1NDY7MTEwQiAxMTYxIDExQTk7QzU0NjsxMTBCIDExNjEgMTFBOTsKK0M1NDc7QzU0NzsxMTBCIDExNjEgMTFBQTtDNTQ3OzExMEIgMTE2MSAxMUFBOworQzU0ODtDNTQ4OzExMEIgMTE2MSAxMUFCO0M1NDg7MTEwQiAxMTYxIDExQUI7CitDNTQ5O0M1NDk7MTEwQiAxMTYxIDExQUM7QzU0OTsxMTBCIDExNjEgMTFBQzsKK0M1NEE7QzU0QTsxMTBCIDExNjEgMTFBRDtDNTRBOzExMEIgMTE2MSAxMUFEOworQzU0QjtDNTRCOzExMEIgMTE2MSAxMUFFO0M1NEI7MTEwQiAxMTYxIDExQUU7CitDNTRDO0M1NEM7MTEwQiAxMTYxIDExQUY7QzU0QzsxMTBCIDExNjEgMTFBRjsKK0M1NEQ7QzU0RDsxMTBCIDExNjEgMTFCMDtDNTREOzExMEIgMTE2MSAxMUIwOworQzU0RTtDNTRFOzExMEIgMTE2MSAxMUIxO0M1NEU7MTEwQiAxMTYxIDExQjE7CitDNTRGO0M1NEY7MTEwQiAxMTYxIDExQjI7QzU0RjsxMTBCIDExNjEgMTFCMjsKK0M1NTA7QzU1MDsxMTBCIDExNjEgMTFCMztDNTUwOzExMEIgMTE2MSAxMUIzOworQzU1MTtDNTUxOzExMEIgMTE2MSAxMUI0O0M1NTE7MTEwQiAxMTYxIDExQjQ7CitDNTUyO0M1NTI7MTEwQiAxMTYxIDExQjU7QzU1MjsxMTBCIDExNjEgMTFCNTsKK0M1NTM7QzU1MzsxMTBCIDExNjEgMTFCNjtDNTUzOzExMEIgMTE2MSAxMUI2OworQzU1NDtDNTU0OzExMEIgMTE2MSAxMUI3O0M1NTQ7MTEwQiAxMTYxIDExQjc7CitDNTU1O0M1NTU7MTEwQiAxMTYxIDExQjg7QzU1NTsxMTBCIDExNjEgMTFCODsKK0M1NTY7QzU1NjsxMTBCIDExNjEgMTFCOTtDNTU2OzExMEIgMTE2MSAxMUI5OworQzU1NztDNTU3OzExMEIgMTE2MSAxMUJBO0M1NTc7MTEwQiAxMTYxIDExQkE7CitDNTU4O0M1NTg7MTEwQiAxMTYxIDExQkI7QzU1ODsxMTBCIDExNjEgMTFCQjsKK0M1NTk7QzU1OTsxMTBCIDExNjEgMTFCQztDNTU5OzExMEIgMTE2MSAxMUJDOworQzU1QTtDNTVBOzExMEIgMTE2MSAxMUJEO0M1NUE7MTEwQiAxMTYxIDExQkQ7CitDNTVCO0M1NUI7MTEwQiAxMTYxIDExQkU7QzU1QjsxMTBCIDExNjEgMTFCRTsKK0M1NUM7QzU1QzsxMTBCIDExNjEgMTFCRjtDNTVDOzExMEIgMTE2MSAxMUJGOworQzU1RDtDNTVEOzExMEIgMTE2MSAxMUMwO0M1NUQ7MTEwQiAxMTYxIDExQzA7CitDNTVFO0M1NUU7MTEwQiAxMTYxIDExQzE7QzU1RTsxMTBCIDExNjEgMTFDMTsKK0M1NUY7QzU1RjsxMTBCIDExNjEgMTFDMjtDNTVGOzExMEIgMTE2MSAxMUMyOworQzU2MDtDNTYwOzExMEIgMTE2MjtDNTYwOzExMEIgMTE2MjsKK0M1NjE7QzU2MTsxMTBCIDExNjIgMTFBODtDNTYxOzExMEIgMTE2MiAxMUE4OworQzU2MjtDNTYyOzExMEIgMTE2MiAxMUE5O0M1NjI7MTEwQiAxMTYyIDExQTk7CitDNTYzO0M1NjM7MTEwQiAxMTYyIDExQUE7QzU2MzsxMTBCIDExNjIgMTFBQTsKK0M1NjQ7QzU2NDsxMTBCIDExNjIgMTFBQjtDNTY0OzExMEIgMTE2MiAxMUFCOworQzU2NTtDNTY1OzExMEIgMTE2MiAxMUFDO0M1NjU7MTEwQiAxMTYyIDExQUM7CitDNTY2O0M1NjY7MTEwQiAxMTYyIDExQUQ7QzU2NjsxMTBCIDExNjIgMTFBRDsKK0M1Njc7QzU2NzsxMTBCIDExNjIgMTFBRTtDNTY3OzExMEIgMTE2MiAxMUFFOworQzU2ODtDNTY4OzExMEIgMTE2MiAxMUFGO0M1Njg7MTEwQiAxMTYyIDExQUY7CitDNTY5O0M1Njk7MTEwQiAxMTYyIDExQjA7QzU2OTsxMTBCIDExNjIgMTFCMDsKK0M1NkE7QzU2QTsxMTBCIDExNjIgMTFCMTtDNTZBOzExMEIgMTE2MiAxMUIxOworQzU2QjtDNTZCOzExMEIgMTE2MiAxMUIyO0M1NkI7MTEwQiAxMTYyIDExQjI7CitDNTZDO0M1NkM7MTEwQiAxMTYyIDExQjM7QzU2QzsxMTBCIDExNjIgMTFCMzsKK0M1NkQ7QzU2RDsxMTBCIDExNjIgMTFCNDtDNTZEOzExMEIgMTE2MiAxMUI0OworQzU2RTtDNTZFOzExMEIgMTE2MiAxMUI1O0M1NkU7MTEwQiAxMTYyIDExQjU7CitDNTZGO0M1NkY7MTEwQiAxMTYyIDExQjY7QzU2RjsxMTBCIDExNjIgMTFCNjsKK0M1NzA7QzU3MDsxMTBCIDExNjIgMTFCNztDNTcwOzExMEIgMTE2MiAxMUI3OworQzU3MTtDNTcxOzExMEIgMTE2MiAxMUI4O0M1NzE7MTEwQiAxMTYyIDExQjg7CitDNTcyO0M1NzI7MTEwQiAxMTYyIDExQjk7QzU3MjsxMTBCIDExNjIgMTFCOTsKK0M1NzM7QzU3MzsxMTBCIDExNjIgMTFCQTtDNTczOzExMEIgMTE2MiAxMUJBOworQzU3NDtDNTc0OzExMEIgMTE2MiAxMUJCO0M1NzQ7MTEwQiAxMTYyIDExQkI7CitDNTc1O0M1NzU7MTEwQiAxMTYyIDExQkM7QzU3NTsxMTBCIDExNjIgMTFCQzsKK0M1NzY7QzU3NjsxMTBCIDExNjIgMTFCRDtDNTc2OzExMEIgMTE2MiAxMUJEOworQzU3NztDNTc3OzExMEIgMTE2MiAxMUJFO0M1Nzc7MTEwQiAxMTYyIDExQkU7CitDNTc4O0M1Nzg7MTEwQiAxMTYyIDExQkY7QzU3ODsxMTBCIDExNjIgMTFCRjsKK0M1Nzk7QzU3OTsxMTBCIDExNjIgMTFDMDtDNTc5OzExMEIgMTE2MiAxMUMwOworQzU3QTtDNTdBOzExMEIgMTE2MiAxMUMxO0M1N0E7MTEwQiAxMTYyIDExQzE7CitDNTdCO0M1N0I7MTEwQiAxMTYyIDExQzI7QzU3QjsxMTBCIDExNjIgMTFDMjsKK0M1N0M7QzU3QzsxMTBCIDExNjM7QzU3QzsxMTBCIDExNjM7CitDNTdEO0M1N0Q7MTEwQiAxMTYzIDExQTg7QzU3RDsxMTBCIDExNjMgMTFBODsKK0M1N0U7QzU3RTsxMTBCIDExNjMgMTFBOTtDNTdFOzExMEIgMTE2MyAxMUE5OworQzU3RjtDNTdGOzExMEIgMTE2MyAxMUFBO0M1N0Y7MTEwQiAxMTYzIDExQUE7CitDNTgwO0M1ODA7MTEwQiAxMTYzIDExQUI7QzU4MDsxMTBCIDExNjMgMTFBQjsKK0M1ODE7QzU4MTsxMTBCIDExNjMgMTFBQztDNTgxOzExMEIgMTE2MyAxMUFDOworQzU4MjtDNTgyOzExMEIgMTE2MyAxMUFEO0M1ODI7MTEwQiAxMTYzIDExQUQ7CitDNTgzO0M1ODM7MTEwQiAxMTYzIDExQUU7QzU4MzsxMTBCIDExNjMgMTFBRTsKK0M1ODQ7QzU4NDsxMTBCIDExNjMgMTFBRjtDNTg0OzExMEIgMTE2MyAxMUFGOworQzU4NTtDNTg1OzExMEIgMTE2MyAxMUIwO0M1ODU7MTEwQiAxMTYzIDExQjA7CitDNTg2O0M1ODY7MTEwQiAxMTYzIDExQjE7QzU4NjsxMTBCIDExNjMgMTFCMTsKK0M1ODc7QzU4NzsxMTBCIDExNjMgMTFCMjtDNTg3OzExMEIgMTE2MyAxMUIyOworQzU4ODtDNTg4OzExMEIgMTE2MyAxMUIzO0M1ODg7MTEwQiAxMTYzIDExQjM7CitDNTg5O0M1ODk7MTEwQiAxMTYzIDExQjQ7QzU4OTsxMTBCIDExNjMgMTFCNDsKK0M1OEE7QzU4QTsxMTBCIDExNjMgMTFCNTtDNThBOzExMEIgMTE2MyAxMUI1OworQzU4QjtDNThCOzExMEIgMTE2MyAxMUI2O0M1OEI7MTEwQiAxMTYzIDExQjY7CitDNThDO0M1OEM7MTEwQiAxMTYzIDExQjc7QzU4QzsxMTBCIDExNjMgMTFCNzsKK0M1OEQ7QzU4RDsxMTBCIDExNjMgMTFCODtDNThEOzExMEIgMTE2MyAxMUI4OworQzU4RTtDNThFOzExMEIgMTE2MyAxMUI5O0M1OEU7MTEwQiAxMTYzIDExQjk7CitDNThGO0M1OEY7MTEwQiAxMTYzIDExQkE7QzU4RjsxMTBCIDExNjMgMTFCQTsKK0M1OTA7QzU5MDsxMTBCIDExNjMgMTFCQjtDNTkwOzExMEIgMTE2MyAxMUJCOworQzU5MTtDNTkxOzExMEIgMTE2MyAxMUJDO0M1OTE7MTEwQiAxMTYzIDExQkM7CitDNTkyO0M1OTI7MTEwQiAxMTYzIDExQkQ7QzU5MjsxMTBCIDExNjMgMTFCRDsKK0M1OTM7QzU5MzsxMTBCIDExNjMgMTFCRTtDNTkzOzExMEIgMTE2MyAxMUJFOworQzU5NDtDNTk0OzExMEIgMTE2MyAxMUJGO0M1OTQ7MTEwQiAxMTYzIDExQkY7CitDNTk1O0M1OTU7MTEwQiAxMTYzIDExQzA7QzU5NTsxMTBCIDExNjMgMTFDMDsKK0M1OTY7QzU5NjsxMTBCIDExNjMgMTFDMTtDNTk2OzExMEIgMTE2MyAxMUMxOworQzU5NztDNTk3OzExMEIgMTE2MyAxMUMyO0M1OTc7MTEwQiAxMTYzIDExQzI7CitDNTk4O0M1OTg7MTEwQiAxMTY0O0M1OTg7MTEwQiAxMTY0OworQzU5OTtDNTk5OzExMEIgMTE2NCAxMUE4O0M1OTk7MTEwQiAxMTY0IDExQTg7CitDNTlBO0M1OUE7MTEwQiAxMTY0IDExQTk7QzU5QTsxMTBCIDExNjQgMTFBOTsKK0M1OUI7QzU5QjsxMTBCIDExNjQgMTFBQTtDNTlCOzExMEIgMTE2NCAxMUFBOworQzU5QztDNTlDOzExMEIgMTE2NCAxMUFCO0M1OUM7MTEwQiAxMTY0IDExQUI7CitDNTlEO0M1OUQ7MTEwQiAxMTY0IDExQUM7QzU5RDsxMTBCIDExNjQgMTFBQzsKK0M1OUU7QzU5RTsxMTBCIDExNjQgMTFBRDtDNTlFOzExMEIgMTE2NCAxMUFEOworQzU5RjtDNTlGOzExMEIgMTE2NCAxMUFFO0M1OUY7MTEwQiAxMTY0IDExQUU7CitDNUEwO0M1QTA7MTEwQiAxMTY0IDExQUY7QzVBMDsxMTBCIDExNjQgMTFBRjsKK0M1QTE7QzVBMTsxMTBCIDExNjQgMTFCMDtDNUExOzExMEIgMTE2NCAxMUIwOworQzVBMjtDNUEyOzExMEIgMTE2NCAxMUIxO0M1QTI7MTEwQiAxMTY0IDExQjE7CitDNUEzO0M1QTM7MTEwQiAxMTY0IDExQjI7QzVBMzsxMTBCIDExNjQgMTFCMjsKK0M1QTQ7QzVBNDsxMTBCIDExNjQgMTFCMztDNUE0OzExMEIgMTE2NCAxMUIzOworQzVBNTtDNUE1OzExMEIgMTE2NCAxMUI0O0M1QTU7MTEwQiAxMTY0IDExQjQ7CitDNUE2O0M1QTY7MTEwQiAxMTY0IDExQjU7QzVBNjsxMTBCIDExNjQgMTFCNTsKK0M1QTc7QzVBNzsxMTBCIDExNjQgMTFCNjtDNUE3OzExMEIgMTE2NCAxMUI2OworQzVBODtDNUE4OzExMEIgMTE2NCAxMUI3O0M1QTg7MTEwQiAxMTY0IDExQjc7CitDNUE5O0M1QTk7MTEwQiAxMTY0IDExQjg7QzVBOTsxMTBCIDExNjQgMTFCODsKK0M1QUE7QzVBQTsxMTBCIDExNjQgMTFCOTtDNUFBOzExMEIgMTE2NCAxMUI5OworQzVBQjtDNUFCOzExMEIgMTE2NCAxMUJBO0M1QUI7MTEwQiAxMTY0IDExQkE7CitDNUFDO0M1QUM7MTEwQiAxMTY0IDExQkI7QzVBQzsxMTBCIDExNjQgMTFCQjsKK0M1QUQ7QzVBRDsxMTBCIDExNjQgMTFCQztDNUFEOzExMEIgMTE2NCAxMUJDOworQzVBRTtDNUFFOzExMEIgMTE2NCAxMUJEO0M1QUU7MTEwQiAxMTY0IDExQkQ7CitDNUFGO0M1QUY7MTEwQiAxMTY0IDExQkU7QzVBRjsxMTBCIDExNjQgMTFCRTsKK0M1QjA7QzVCMDsxMTBCIDExNjQgMTFCRjtDNUIwOzExMEIgMTE2NCAxMUJGOworQzVCMTtDNUIxOzExMEIgMTE2NCAxMUMwO0M1QjE7MTEwQiAxMTY0IDExQzA7CitDNUIyO0M1QjI7MTEwQiAxMTY0IDExQzE7QzVCMjsxMTBCIDExNjQgMTFDMTsKK0M1QjM7QzVCMzsxMTBCIDExNjQgMTFDMjtDNUIzOzExMEIgMTE2NCAxMUMyOworQzVCNDtDNUI0OzExMEIgMTE2NTtDNUI0OzExMEIgMTE2NTsKK0M1QjU7QzVCNTsxMTBCIDExNjUgMTFBODtDNUI1OzExMEIgMTE2NSAxMUE4OworQzVCNjtDNUI2OzExMEIgMTE2NSAxMUE5O0M1QjY7MTEwQiAxMTY1IDExQTk7CitDNUI3O0M1Qjc7MTEwQiAxMTY1IDExQUE7QzVCNzsxMTBCIDExNjUgMTFBQTsKK0M1Qjg7QzVCODsxMTBCIDExNjUgMTFBQjtDNUI4OzExMEIgMTE2NSAxMUFCOworQzVCOTtDNUI5OzExMEIgMTE2NSAxMUFDO0M1Qjk7MTEwQiAxMTY1IDExQUM7CitDNUJBO0M1QkE7MTEwQiAxMTY1IDExQUQ7QzVCQTsxMTBCIDExNjUgMTFBRDsKK0M1QkI7QzVCQjsxMTBCIDExNjUgMTFBRTtDNUJCOzExMEIgMTE2NSAxMUFFOworQzVCQztDNUJDOzExMEIgMTE2NSAxMUFGO0M1QkM7MTEwQiAxMTY1IDExQUY7CitDNUJEO0M1QkQ7MTEwQiAxMTY1IDExQjA7QzVCRDsxMTBCIDExNjUgMTFCMDsKK0M1QkU7QzVCRTsxMTBCIDExNjUgMTFCMTtDNUJFOzExMEIgMTE2NSAxMUIxOworQzVCRjtDNUJGOzExMEIgMTE2NSAxMUIyO0M1QkY7MTEwQiAxMTY1IDExQjI7CitDNUMwO0M1QzA7MTEwQiAxMTY1IDExQjM7QzVDMDsxMTBCIDExNjUgMTFCMzsKK0M1QzE7QzVDMTsxMTBCIDExNjUgMTFCNDtDNUMxOzExMEIgMTE2NSAxMUI0OworQzVDMjtDNUMyOzExMEIgMTE2NSAxMUI1O0M1QzI7MTEwQiAxMTY1IDExQjU7CitDNUMzO0M1QzM7MTEwQiAxMTY1IDExQjY7QzVDMzsxMTBCIDExNjUgMTFCNjsKK0M1QzQ7QzVDNDsxMTBCIDExNjUgMTFCNztDNUM0OzExMEIgMTE2NSAxMUI3OworQzVDNTtDNUM1OzExMEIgMTE2NSAxMUI4O0M1QzU7MTEwQiAxMTY1IDExQjg7CitDNUM2O0M1QzY7MTEwQiAxMTY1IDExQjk7QzVDNjsxMTBCIDExNjUgMTFCOTsKK0M1Qzc7QzVDNzsxMTBCIDExNjUgMTFCQTtDNUM3OzExMEIgMTE2NSAxMUJBOworQzVDODtDNUM4OzExMEIgMTE2NSAxMUJCO0M1Qzg7MTEwQiAxMTY1IDExQkI7CitDNUM5O0M1Qzk7MTEwQiAxMTY1IDExQkM7QzVDOTsxMTBCIDExNjUgMTFCQzsKK0M1Q0E7QzVDQTsxMTBCIDExNjUgMTFCRDtDNUNBOzExMEIgMTE2NSAxMUJEOworQzVDQjtDNUNCOzExMEIgMTE2NSAxMUJFO0M1Q0I7MTEwQiAxMTY1IDExQkU7CitDNUNDO0M1Q0M7MTEwQiAxMTY1IDExQkY7QzVDQzsxMTBCIDExNjUgMTFCRjsKK0M1Q0Q7QzVDRDsxMTBCIDExNjUgMTFDMDtDNUNEOzExMEIgMTE2NSAxMUMwOworQzVDRTtDNUNFOzExMEIgMTE2NSAxMUMxO0M1Q0U7MTEwQiAxMTY1IDExQzE7CitDNUNGO0M1Q0Y7MTEwQiAxMTY1IDExQzI7QzVDRjsxMTBCIDExNjUgMTFDMjsKK0M1RDA7QzVEMDsxMTBCIDExNjY7QzVEMDsxMTBCIDExNjY7CitDNUQxO0M1RDE7MTEwQiAxMTY2IDExQTg7QzVEMTsxMTBCIDExNjYgMTFBODsKK0M1RDI7QzVEMjsxMTBCIDExNjYgMTFBOTtDNUQyOzExMEIgMTE2NiAxMUE5OworQzVEMztDNUQzOzExMEIgMTE2NiAxMUFBO0M1RDM7MTEwQiAxMTY2IDExQUE7CitDNUQ0O0M1RDQ7MTEwQiAxMTY2IDExQUI7QzVENDsxMTBCIDExNjYgMTFBQjsKK0M1RDU7QzVENTsxMTBCIDExNjYgMTFBQztDNUQ1OzExMEIgMTE2NiAxMUFDOworQzVENjtDNUQ2OzExMEIgMTE2NiAxMUFEO0M1RDY7MTEwQiAxMTY2IDExQUQ7CitDNUQ3O0M1RDc7MTEwQiAxMTY2IDExQUU7QzVENzsxMTBCIDExNjYgMTFBRTsKK0M1RDg7QzVEODsxMTBCIDExNjYgMTFBRjtDNUQ4OzExMEIgMTE2NiAxMUFGOworQzVEOTtDNUQ5OzExMEIgMTE2NiAxMUIwO0M1RDk7MTEwQiAxMTY2IDExQjA7CitDNURBO0M1REE7MTEwQiAxMTY2IDExQjE7QzVEQTsxMTBCIDExNjYgMTFCMTsKK0M1REI7QzVEQjsxMTBCIDExNjYgMTFCMjtDNURCOzExMEIgMTE2NiAxMUIyOworQzVEQztDNURDOzExMEIgMTE2NiAxMUIzO0M1REM7MTEwQiAxMTY2IDExQjM7CitDNUREO0M1REQ7MTEwQiAxMTY2IDExQjQ7QzVERDsxMTBCIDExNjYgMTFCNDsKK0M1REU7QzVERTsxMTBCIDExNjYgMTFCNTtDNURFOzExMEIgMTE2NiAxMUI1OworQzVERjtDNURGOzExMEIgMTE2NiAxMUI2O0M1REY7MTEwQiAxMTY2IDExQjY7CitDNUUwO0M1RTA7MTEwQiAxMTY2IDExQjc7QzVFMDsxMTBCIDExNjYgMTFCNzsKK0M1RTE7QzVFMTsxMTBCIDExNjYgMTFCODtDNUUxOzExMEIgMTE2NiAxMUI4OworQzVFMjtDNUUyOzExMEIgMTE2NiAxMUI5O0M1RTI7MTEwQiAxMTY2IDExQjk7CitDNUUzO0M1RTM7MTEwQiAxMTY2IDExQkE7QzVFMzsxMTBCIDExNjYgMTFCQTsKK0M1RTQ7QzVFNDsxMTBCIDExNjYgMTFCQjtDNUU0OzExMEIgMTE2NiAxMUJCOworQzVFNTtDNUU1OzExMEIgMTE2NiAxMUJDO0M1RTU7MTEwQiAxMTY2IDExQkM7CitDNUU2O0M1RTY7MTEwQiAxMTY2IDExQkQ7QzVFNjsxMTBCIDExNjYgMTFCRDsKK0M1RTc7QzVFNzsxMTBCIDExNjYgMTFCRTtDNUU3OzExMEIgMTE2NiAxMUJFOworQzVFODtDNUU4OzExMEIgMTE2NiAxMUJGO0M1RTg7MTEwQiAxMTY2IDExQkY7CitDNUU5O0M1RTk7MTEwQiAxMTY2IDExQzA7QzVFOTsxMTBCIDExNjYgMTFDMDsKK0M1RUE7QzVFQTsxMTBCIDExNjYgMTFDMTtDNUVBOzExMEIgMTE2NiAxMUMxOworQzVFQjtDNUVCOzExMEIgMTE2NiAxMUMyO0M1RUI7MTEwQiAxMTY2IDExQzI7CitDNUVDO0M1RUM7MTEwQiAxMTY3O0M1RUM7MTEwQiAxMTY3OworQzVFRDtDNUVEOzExMEIgMTE2NyAxMUE4O0M1RUQ7MTEwQiAxMTY3IDExQTg7CitDNUVFO0M1RUU7MTEwQiAxMTY3IDExQTk7QzVFRTsxMTBCIDExNjcgMTFBOTsKK0M1RUY7QzVFRjsxMTBCIDExNjcgMTFBQTtDNUVGOzExMEIgMTE2NyAxMUFBOworQzVGMDtDNUYwOzExMEIgMTE2NyAxMUFCO0M1RjA7MTEwQiAxMTY3IDExQUI7CitDNUYxO0M1RjE7MTEwQiAxMTY3IDExQUM7QzVGMTsxMTBCIDExNjcgMTFBQzsKK0M1RjI7QzVGMjsxMTBCIDExNjcgMTFBRDtDNUYyOzExMEIgMTE2NyAxMUFEOworQzVGMztDNUYzOzExMEIgMTE2NyAxMUFFO0M1RjM7MTEwQiAxMTY3IDExQUU7CitDNUY0O0M1RjQ7MTEwQiAxMTY3IDExQUY7QzVGNDsxMTBCIDExNjcgMTFBRjsKK0M1RjU7QzVGNTsxMTBCIDExNjcgMTFCMDtDNUY1OzExMEIgMTE2NyAxMUIwOworQzVGNjtDNUY2OzExMEIgMTE2NyAxMUIxO0M1RjY7MTEwQiAxMTY3IDExQjE7CitDNUY3O0M1Rjc7MTEwQiAxMTY3IDExQjI7QzVGNzsxMTBCIDExNjcgMTFCMjsKK0M1Rjg7QzVGODsxMTBCIDExNjcgMTFCMztDNUY4OzExMEIgMTE2NyAxMUIzOworQzVGOTtDNUY5OzExMEIgMTE2NyAxMUI0O0M1Rjk7MTEwQiAxMTY3IDExQjQ7CitDNUZBO0M1RkE7MTEwQiAxMTY3IDExQjU7QzVGQTsxMTBCIDExNjcgMTFCNTsKK0M1RkI7QzVGQjsxMTBCIDExNjcgMTFCNjtDNUZCOzExMEIgMTE2NyAxMUI2OworQzVGQztDNUZDOzExMEIgMTE2NyAxMUI3O0M1RkM7MTEwQiAxMTY3IDExQjc7CitDNUZEO0M1RkQ7MTEwQiAxMTY3IDExQjg7QzVGRDsxMTBCIDExNjcgMTFCODsKK0M1RkU7QzVGRTsxMTBCIDExNjcgMTFCOTtDNUZFOzExMEIgMTE2NyAxMUI5OworQzVGRjtDNUZGOzExMEIgMTE2NyAxMUJBO0M1RkY7MTEwQiAxMTY3IDExQkE7CitDNjAwO0M2MDA7MTEwQiAxMTY3IDExQkI7QzYwMDsxMTBCIDExNjcgMTFCQjsKK0M2MDE7QzYwMTsxMTBCIDExNjcgMTFCQztDNjAxOzExMEIgMTE2NyAxMUJDOworQzYwMjtDNjAyOzExMEIgMTE2NyAxMUJEO0M2MDI7MTEwQiAxMTY3IDExQkQ7CitDNjAzO0M2MDM7MTEwQiAxMTY3IDExQkU7QzYwMzsxMTBCIDExNjcgMTFCRTsKK0M2MDQ7QzYwNDsxMTBCIDExNjcgMTFCRjtDNjA0OzExMEIgMTE2NyAxMUJGOworQzYwNTtDNjA1OzExMEIgMTE2NyAxMUMwO0M2MDU7MTEwQiAxMTY3IDExQzA7CitDNjA2O0M2MDY7MTEwQiAxMTY3IDExQzE7QzYwNjsxMTBCIDExNjcgMTFDMTsKK0M2MDc7QzYwNzsxMTBCIDExNjcgMTFDMjtDNjA3OzExMEIgMTE2NyAxMUMyOworQzYwODtDNjA4OzExMEIgMTE2ODtDNjA4OzExMEIgMTE2ODsKK0M2MDk7QzYwOTsxMTBCIDExNjggMTFBODtDNjA5OzExMEIgMTE2OCAxMUE4OworQzYwQTtDNjBBOzExMEIgMTE2OCAxMUE5O0M2MEE7MTEwQiAxMTY4IDExQTk7CitDNjBCO0M2MEI7MTEwQiAxMTY4IDExQUE7QzYwQjsxMTBCIDExNjggMTFBQTsKK0M2MEM7QzYwQzsxMTBCIDExNjggMTFBQjtDNjBDOzExMEIgMTE2OCAxMUFCOworQzYwRDtDNjBEOzExMEIgMTE2OCAxMUFDO0M2MEQ7MTEwQiAxMTY4IDExQUM7CitDNjBFO0M2MEU7MTEwQiAxMTY4IDExQUQ7QzYwRTsxMTBCIDExNjggMTFBRDsKK0M2MEY7QzYwRjsxMTBCIDExNjggMTFBRTtDNjBGOzExMEIgMTE2OCAxMUFFOworQzYxMDtDNjEwOzExMEIgMTE2OCAxMUFGO0M2MTA7MTEwQiAxMTY4IDExQUY7CitDNjExO0M2MTE7MTEwQiAxMTY4IDExQjA7QzYxMTsxMTBCIDExNjggMTFCMDsKK0M2MTI7QzYxMjsxMTBCIDExNjggMTFCMTtDNjEyOzExMEIgMTE2OCAxMUIxOworQzYxMztDNjEzOzExMEIgMTE2OCAxMUIyO0M2MTM7MTEwQiAxMTY4IDExQjI7CitDNjE0O0M2MTQ7MTEwQiAxMTY4IDExQjM7QzYxNDsxMTBCIDExNjggMTFCMzsKK0M2MTU7QzYxNTsxMTBCIDExNjggMTFCNDtDNjE1OzExMEIgMTE2OCAxMUI0OworQzYxNjtDNjE2OzExMEIgMTE2OCAxMUI1O0M2MTY7MTEwQiAxMTY4IDExQjU7CitDNjE3O0M2MTc7MTEwQiAxMTY4IDExQjY7QzYxNzsxMTBCIDExNjggMTFCNjsKK0M2MTg7QzYxODsxMTBCIDExNjggMTFCNztDNjE4OzExMEIgMTE2OCAxMUI3OworQzYxOTtDNjE5OzExMEIgMTE2OCAxMUI4O0M2MTk7MTEwQiAxMTY4IDExQjg7CitDNjFBO0M2MUE7MTEwQiAxMTY4IDExQjk7QzYxQTsxMTBCIDExNjggMTFCOTsKK0M2MUI7QzYxQjsxMTBCIDExNjggMTFCQTtDNjFCOzExMEIgMTE2OCAxMUJBOworQzYxQztDNjFDOzExMEIgMTE2OCAxMUJCO0M2MUM7MTEwQiAxMTY4IDExQkI7CitDNjFEO0M2MUQ7MTEwQiAxMTY4IDExQkM7QzYxRDsxMTBCIDExNjggMTFCQzsKK0M2MUU7QzYxRTsxMTBCIDExNjggMTFCRDtDNjFFOzExMEIgMTE2OCAxMUJEOworQzYxRjtDNjFGOzExMEIgMTE2OCAxMUJFO0M2MUY7MTEwQiAxMTY4IDExQkU7CitDNjIwO0M2MjA7MTEwQiAxMTY4IDExQkY7QzYyMDsxMTBCIDExNjggMTFCRjsKK0M2MjE7QzYyMTsxMTBCIDExNjggMTFDMDtDNjIxOzExMEIgMTE2OCAxMUMwOworQzYyMjtDNjIyOzExMEIgMTE2OCAxMUMxO0M2MjI7MTEwQiAxMTY4IDExQzE7CitDNjIzO0M2MjM7MTEwQiAxMTY4IDExQzI7QzYyMzsxMTBCIDExNjggMTFDMjsKK0M2MjQ7QzYyNDsxMTBCIDExNjk7QzYyNDsxMTBCIDExNjk7CitDNjI1O0M2MjU7MTEwQiAxMTY5IDExQTg7QzYyNTsxMTBCIDExNjkgMTFBODsKK0M2MjY7QzYyNjsxMTBCIDExNjkgMTFBOTtDNjI2OzExMEIgMTE2OSAxMUE5OworQzYyNztDNjI3OzExMEIgMTE2OSAxMUFBO0M2Mjc7MTEwQiAxMTY5IDExQUE7CitDNjI4O0M2Mjg7MTEwQiAxMTY5IDExQUI7QzYyODsxMTBCIDExNjkgMTFBQjsKK0M2Mjk7QzYyOTsxMTBCIDExNjkgMTFBQztDNjI5OzExMEIgMTE2OSAxMUFDOworQzYyQTtDNjJBOzExMEIgMTE2OSAxMUFEO0M2MkE7MTEwQiAxMTY5IDExQUQ7CitDNjJCO0M2MkI7MTEwQiAxMTY5IDExQUU7QzYyQjsxMTBCIDExNjkgMTFBRTsKK0M2MkM7QzYyQzsxMTBCIDExNjkgMTFBRjtDNjJDOzExMEIgMTE2OSAxMUFGOworQzYyRDtDNjJEOzExMEIgMTE2OSAxMUIwO0M2MkQ7MTEwQiAxMTY5IDExQjA7CitDNjJFO0M2MkU7MTEwQiAxMTY5IDExQjE7QzYyRTsxMTBCIDExNjkgMTFCMTsKK0M2MkY7QzYyRjsxMTBCIDExNjkgMTFCMjtDNjJGOzExMEIgMTE2OSAxMUIyOworQzYzMDtDNjMwOzExMEIgMTE2OSAxMUIzO0M2MzA7MTEwQiAxMTY5IDExQjM7CitDNjMxO0M2MzE7MTEwQiAxMTY5IDExQjQ7QzYzMTsxMTBCIDExNjkgMTFCNDsKK0M2MzI7QzYzMjsxMTBCIDExNjkgMTFCNTtDNjMyOzExMEIgMTE2OSAxMUI1OworQzYzMztDNjMzOzExMEIgMTE2OSAxMUI2O0M2MzM7MTEwQiAxMTY5IDExQjY7CitDNjM0O0M2MzQ7MTEwQiAxMTY5IDExQjc7QzYzNDsxMTBCIDExNjkgMTFCNzsKK0M2MzU7QzYzNTsxMTBCIDExNjkgMTFCODtDNjM1OzExMEIgMTE2OSAxMUI4OworQzYzNjtDNjM2OzExMEIgMTE2OSAxMUI5O0M2MzY7MTEwQiAxMTY5IDExQjk7CitDNjM3O0M2Mzc7MTEwQiAxMTY5IDExQkE7QzYzNzsxMTBCIDExNjkgMTFCQTsKK0M2Mzg7QzYzODsxMTBCIDExNjkgMTFCQjtDNjM4OzExMEIgMTE2OSAxMUJCOworQzYzOTtDNjM5OzExMEIgMTE2OSAxMUJDO0M2Mzk7MTEwQiAxMTY5IDExQkM7CitDNjNBO0M2M0E7MTEwQiAxMTY5IDExQkQ7QzYzQTsxMTBCIDExNjkgMTFCRDsKK0M2M0I7QzYzQjsxMTBCIDExNjkgMTFCRTtDNjNCOzExMEIgMTE2OSAxMUJFOworQzYzQztDNjNDOzExMEIgMTE2OSAxMUJGO0M2M0M7MTEwQiAxMTY5IDExQkY7CitDNjNEO0M2M0Q7MTEwQiAxMTY5IDExQzA7QzYzRDsxMTBCIDExNjkgMTFDMDsKK0M2M0U7QzYzRTsxMTBCIDExNjkgMTFDMTtDNjNFOzExMEIgMTE2OSAxMUMxOworQzYzRjtDNjNGOzExMEIgMTE2OSAxMUMyO0M2M0Y7MTEwQiAxMTY5IDExQzI7CitDNjQwO0M2NDA7MTEwQiAxMTZBO0M2NDA7MTEwQiAxMTZBOworQzY0MTtDNjQxOzExMEIgMTE2QSAxMUE4O0M2NDE7MTEwQiAxMTZBIDExQTg7CitDNjQyO0M2NDI7MTEwQiAxMTZBIDExQTk7QzY0MjsxMTBCIDExNkEgMTFBOTsKK0M2NDM7QzY0MzsxMTBCIDExNkEgMTFBQTtDNjQzOzExMEIgMTE2QSAxMUFBOworQzY0NDtDNjQ0OzExMEIgMTE2QSAxMUFCO0M2NDQ7MTEwQiAxMTZBIDExQUI7CitDNjQ1O0M2NDU7MTEwQiAxMTZBIDExQUM7QzY0NTsxMTBCIDExNkEgMTFBQzsKK0M2NDY7QzY0NjsxMTBCIDExNkEgMTFBRDtDNjQ2OzExMEIgMTE2QSAxMUFEOworQzY0NztDNjQ3OzExMEIgMTE2QSAxMUFFO0M2NDc7MTEwQiAxMTZBIDExQUU7CitDNjQ4O0M2NDg7MTEwQiAxMTZBIDExQUY7QzY0ODsxMTBCIDExNkEgMTFBRjsKK0M2NDk7QzY0OTsxMTBCIDExNkEgMTFCMDtDNjQ5OzExMEIgMTE2QSAxMUIwOworQzY0QTtDNjRBOzExMEIgMTE2QSAxMUIxO0M2NEE7MTEwQiAxMTZBIDExQjE7CitDNjRCO0M2NEI7MTEwQiAxMTZBIDExQjI7QzY0QjsxMTBCIDExNkEgMTFCMjsKK0M2NEM7QzY0QzsxMTBCIDExNkEgMTFCMztDNjRDOzExMEIgMTE2QSAxMUIzOworQzY0RDtDNjREOzExMEIgMTE2QSAxMUI0O0M2NEQ7MTEwQiAxMTZBIDExQjQ7CitDNjRFO0M2NEU7MTEwQiAxMTZBIDExQjU7QzY0RTsxMTBCIDExNkEgMTFCNTsKK0M2NEY7QzY0RjsxMTBCIDExNkEgMTFCNjtDNjRGOzExMEIgMTE2QSAxMUI2OworQzY1MDtDNjUwOzExMEIgMTE2QSAxMUI3O0M2NTA7MTEwQiAxMTZBIDExQjc7CitDNjUxO0M2NTE7MTEwQiAxMTZBIDExQjg7QzY1MTsxMTBCIDExNkEgMTFCODsKK0M2NTI7QzY1MjsxMTBCIDExNkEgMTFCOTtDNjUyOzExMEIgMTE2QSAxMUI5OworQzY1MztDNjUzOzExMEIgMTE2QSAxMUJBO0M2NTM7MTEwQiAxMTZBIDExQkE7CitDNjU0O0M2NTQ7MTEwQiAxMTZBIDExQkI7QzY1NDsxMTBCIDExNkEgMTFCQjsKK0M2NTU7QzY1NTsxMTBCIDExNkEgMTFCQztDNjU1OzExMEIgMTE2QSAxMUJDOworQzY1NjtDNjU2OzExMEIgMTE2QSAxMUJEO0M2NTY7MTEwQiAxMTZBIDExQkQ7CitDNjU3O0M2NTc7MTEwQiAxMTZBIDExQkU7QzY1NzsxMTBCIDExNkEgMTFCRTsKK0M2NTg7QzY1ODsxMTBCIDExNkEgMTFCRjtDNjU4OzExMEIgMTE2QSAxMUJGOworQzY1OTtDNjU5OzExMEIgMTE2QSAxMUMwO0M2NTk7MTEwQiAxMTZBIDExQzA7CitDNjVBO0M2NUE7MTEwQiAxMTZBIDExQzE7QzY1QTsxMTBCIDExNkEgMTFDMTsKK0M2NUI7QzY1QjsxMTBCIDExNkEgMTFDMjtDNjVCOzExMEIgMTE2QSAxMUMyOworQzY1QztDNjVDOzExMEIgMTE2QjtDNjVDOzExMEIgMTE2QjsKK0M2NUQ7QzY1RDsxMTBCIDExNkIgMTFBODtDNjVEOzExMEIgMTE2QiAxMUE4OworQzY1RTtDNjVFOzExMEIgMTE2QiAxMUE5O0M2NUU7MTEwQiAxMTZCIDExQTk7CitDNjVGO0M2NUY7MTEwQiAxMTZCIDExQUE7QzY1RjsxMTBCIDExNkIgMTFBQTsKK0M2NjA7QzY2MDsxMTBCIDExNkIgMTFBQjtDNjYwOzExMEIgMTE2QiAxMUFCOworQzY2MTtDNjYxOzExMEIgMTE2QiAxMUFDO0M2NjE7MTEwQiAxMTZCIDExQUM7CitDNjYyO0M2NjI7MTEwQiAxMTZCIDExQUQ7QzY2MjsxMTBCIDExNkIgMTFBRDsKK0M2NjM7QzY2MzsxMTBCIDExNkIgMTFBRTtDNjYzOzExMEIgMTE2QiAxMUFFOworQzY2NDtDNjY0OzExMEIgMTE2QiAxMUFGO0M2NjQ7MTEwQiAxMTZCIDExQUY7CitDNjY1O0M2NjU7MTEwQiAxMTZCIDExQjA7QzY2NTsxMTBCIDExNkIgMTFCMDsKK0M2NjY7QzY2NjsxMTBCIDExNkIgMTFCMTtDNjY2OzExMEIgMTE2QiAxMUIxOworQzY2NztDNjY3OzExMEIgMTE2QiAxMUIyO0M2Njc7MTEwQiAxMTZCIDExQjI7CitDNjY4O0M2Njg7MTEwQiAxMTZCIDExQjM7QzY2ODsxMTBCIDExNkIgMTFCMzsKK0M2Njk7QzY2OTsxMTBCIDExNkIgMTFCNDtDNjY5OzExMEIgMTE2QiAxMUI0OworQzY2QTtDNjZBOzExMEIgMTE2QiAxMUI1O0M2NkE7MTEwQiAxMTZCIDExQjU7CitDNjZCO0M2NkI7MTEwQiAxMTZCIDExQjY7QzY2QjsxMTBCIDExNkIgMTFCNjsKK0M2NkM7QzY2QzsxMTBCIDExNkIgMTFCNztDNjZDOzExMEIgMTE2QiAxMUI3OworQzY2RDtDNjZEOzExMEIgMTE2QiAxMUI4O0M2NkQ7MTEwQiAxMTZCIDExQjg7CitDNjZFO0M2NkU7MTEwQiAxMTZCIDExQjk7QzY2RTsxMTBCIDExNkIgMTFCOTsKK0M2NkY7QzY2RjsxMTBCIDExNkIgMTFCQTtDNjZGOzExMEIgMTE2QiAxMUJBOworQzY3MDtDNjcwOzExMEIgMTE2QiAxMUJCO0M2NzA7MTEwQiAxMTZCIDExQkI7CitDNjcxO0M2NzE7MTEwQiAxMTZCIDExQkM7QzY3MTsxMTBCIDExNkIgMTFCQzsKK0M2NzI7QzY3MjsxMTBCIDExNkIgMTFCRDtDNjcyOzExMEIgMTE2QiAxMUJEOworQzY3MztDNjczOzExMEIgMTE2QiAxMUJFO0M2NzM7MTEwQiAxMTZCIDExQkU7CitDNjc0O0M2NzQ7MTEwQiAxMTZCIDExQkY7QzY3NDsxMTBCIDExNkIgMTFCRjsKK0M2NzU7QzY3NTsxMTBCIDExNkIgMTFDMDtDNjc1OzExMEIgMTE2QiAxMUMwOworQzY3NjtDNjc2OzExMEIgMTE2QiAxMUMxO0M2NzY7MTEwQiAxMTZCIDExQzE7CitDNjc3O0M2Nzc7MTEwQiAxMTZCIDExQzI7QzY3NzsxMTBCIDExNkIgMTFDMjsKK0M2Nzg7QzY3ODsxMTBCIDExNkM7QzY3ODsxMTBCIDExNkM7CitDNjc5O0M2Nzk7MTEwQiAxMTZDIDExQTg7QzY3OTsxMTBCIDExNkMgMTFBODsKK0M2N0E7QzY3QTsxMTBCIDExNkMgMTFBOTtDNjdBOzExMEIgMTE2QyAxMUE5OworQzY3QjtDNjdCOzExMEIgMTE2QyAxMUFBO0M2N0I7MTEwQiAxMTZDIDExQUE7CitDNjdDO0M2N0M7MTEwQiAxMTZDIDExQUI7QzY3QzsxMTBCIDExNkMgMTFBQjsKK0M2N0Q7QzY3RDsxMTBCIDExNkMgMTFBQztDNjdEOzExMEIgMTE2QyAxMUFDOworQzY3RTtDNjdFOzExMEIgMTE2QyAxMUFEO0M2N0U7MTEwQiAxMTZDIDExQUQ7CitDNjdGO0M2N0Y7MTEwQiAxMTZDIDExQUU7QzY3RjsxMTBCIDExNkMgMTFBRTsKK0M2ODA7QzY4MDsxMTBCIDExNkMgMTFBRjtDNjgwOzExMEIgMTE2QyAxMUFGOworQzY4MTtDNjgxOzExMEIgMTE2QyAxMUIwO0M2ODE7MTEwQiAxMTZDIDExQjA7CitDNjgyO0M2ODI7MTEwQiAxMTZDIDExQjE7QzY4MjsxMTBCIDExNkMgMTFCMTsKK0M2ODM7QzY4MzsxMTBCIDExNkMgMTFCMjtDNjgzOzExMEIgMTE2QyAxMUIyOworQzY4NDtDNjg0OzExMEIgMTE2QyAxMUIzO0M2ODQ7MTEwQiAxMTZDIDExQjM7CitDNjg1O0M2ODU7MTEwQiAxMTZDIDExQjQ7QzY4NTsxMTBCIDExNkMgMTFCNDsKK0M2ODY7QzY4NjsxMTBCIDExNkMgMTFCNTtDNjg2OzExMEIgMTE2QyAxMUI1OworQzY4NztDNjg3OzExMEIgMTE2QyAxMUI2O0M2ODc7MTEwQiAxMTZDIDExQjY7CitDNjg4O0M2ODg7MTEwQiAxMTZDIDExQjc7QzY4ODsxMTBCIDExNkMgMTFCNzsKK0M2ODk7QzY4OTsxMTBCIDExNkMgMTFCODtDNjg5OzExMEIgMTE2QyAxMUI4OworQzY4QTtDNjhBOzExMEIgMTE2QyAxMUI5O0M2OEE7MTEwQiAxMTZDIDExQjk7CitDNjhCO0M2OEI7MTEwQiAxMTZDIDExQkE7QzY4QjsxMTBCIDExNkMgMTFCQTsKK0M2OEM7QzY4QzsxMTBCIDExNkMgMTFCQjtDNjhDOzExMEIgMTE2QyAxMUJCOworQzY4RDtDNjhEOzExMEIgMTE2QyAxMUJDO0M2OEQ7MTEwQiAxMTZDIDExQkM7CitDNjhFO0M2OEU7MTEwQiAxMTZDIDExQkQ7QzY4RTsxMTBCIDExNkMgMTFCRDsKK0M2OEY7QzY4RjsxMTBCIDExNkMgMTFCRTtDNjhGOzExMEIgMTE2QyAxMUJFOworQzY5MDtDNjkwOzExMEIgMTE2QyAxMUJGO0M2OTA7MTEwQiAxMTZDIDExQkY7CitDNjkxO0M2OTE7MTEwQiAxMTZDIDExQzA7QzY5MTsxMTBCIDExNkMgMTFDMDsKK0M2OTI7QzY5MjsxMTBCIDExNkMgMTFDMTtDNjkyOzExMEIgMTE2QyAxMUMxOworQzY5MztDNjkzOzExMEIgMTE2QyAxMUMyO0M2OTM7MTEwQiAxMTZDIDExQzI7CitDNjk0O0M2OTQ7MTEwQiAxMTZEO0M2OTQ7MTEwQiAxMTZEOworQzY5NTtDNjk1OzExMEIgMTE2RCAxMUE4O0M2OTU7MTEwQiAxMTZEIDExQTg7CitDNjk2O0M2OTY7MTEwQiAxMTZEIDExQTk7QzY5NjsxMTBCIDExNkQgMTFBOTsKK0M2OTc7QzY5NzsxMTBCIDExNkQgMTFBQTtDNjk3OzExMEIgMTE2RCAxMUFBOworQzY5ODtDNjk4OzExMEIgMTE2RCAxMUFCO0M2OTg7MTEwQiAxMTZEIDExQUI7CitDNjk5O0M2OTk7MTEwQiAxMTZEIDExQUM7QzY5OTsxMTBCIDExNkQgMTFBQzsKK0M2OUE7QzY5QTsxMTBCIDExNkQgMTFBRDtDNjlBOzExMEIgMTE2RCAxMUFEOworQzY5QjtDNjlCOzExMEIgMTE2RCAxMUFFO0M2OUI7MTEwQiAxMTZEIDExQUU7CitDNjlDO0M2OUM7MTEwQiAxMTZEIDExQUY7QzY5QzsxMTBCIDExNkQgMTFBRjsKK0M2OUQ7QzY5RDsxMTBCIDExNkQgMTFCMDtDNjlEOzExMEIgMTE2RCAxMUIwOworQzY5RTtDNjlFOzExMEIgMTE2RCAxMUIxO0M2OUU7MTEwQiAxMTZEIDExQjE7CitDNjlGO0M2OUY7MTEwQiAxMTZEIDExQjI7QzY5RjsxMTBCIDExNkQgMTFCMjsKK0M2QTA7QzZBMDsxMTBCIDExNkQgMTFCMztDNkEwOzExMEIgMTE2RCAxMUIzOworQzZBMTtDNkExOzExMEIgMTE2RCAxMUI0O0M2QTE7MTEwQiAxMTZEIDExQjQ7CitDNkEyO0M2QTI7MTEwQiAxMTZEIDExQjU7QzZBMjsxMTBCIDExNkQgMTFCNTsKK0M2QTM7QzZBMzsxMTBCIDExNkQgMTFCNjtDNkEzOzExMEIgMTE2RCAxMUI2OworQzZBNDtDNkE0OzExMEIgMTE2RCAxMUI3O0M2QTQ7MTEwQiAxMTZEIDExQjc7CitDNkE1O0M2QTU7MTEwQiAxMTZEIDExQjg7QzZBNTsxMTBCIDExNkQgMTFCODsKK0M2QTY7QzZBNjsxMTBCIDExNkQgMTFCOTtDNkE2OzExMEIgMTE2RCAxMUI5OworQzZBNztDNkE3OzExMEIgMTE2RCAxMUJBO0M2QTc7MTEwQiAxMTZEIDExQkE7CitDNkE4O0M2QTg7MTEwQiAxMTZEIDExQkI7QzZBODsxMTBCIDExNkQgMTFCQjsKK0M2QTk7QzZBOTsxMTBCIDExNkQgMTFCQztDNkE5OzExMEIgMTE2RCAxMUJDOworQzZBQTtDNkFBOzExMEIgMTE2RCAxMUJEO0M2QUE7MTEwQiAxMTZEIDExQkQ7CitDNkFCO0M2QUI7MTEwQiAxMTZEIDExQkU7QzZBQjsxMTBCIDExNkQgMTFCRTsKK0M2QUM7QzZBQzsxMTBCIDExNkQgMTFCRjtDNkFDOzExMEIgMTE2RCAxMUJGOworQzZBRDtDNkFEOzExMEIgMTE2RCAxMUMwO0M2QUQ7MTEwQiAxMTZEIDExQzA7CitDNkFFO0M2QUU7MTEwQiAxMTZEIDExQzE7QzZBRTsxMTBCIDExNkQgMTFDMTsKK0M2QUY7QzZBRjsxMTBCIDExNkQgMTFDMjtDNkFGOzExMEIgMTE2RCAxMUMyOworQzZCMDtDNkIwOzExMEIgMTE2RTtDNkIwOzExMEIgMTE2RTsKK0M2QjE7QzZCMTsxMTBCIDExNkUgMTFBODtDNkIxOzExMEIgMTE2RSAxMUE4OworQzZCMjtDNkIyOzExMEIgMTE2RSAxMUE5O0M2QjI7MTEwQiAxMTZFIDExQTk7CitDNkIzO0M2QjM7MTEwQiAxMTZFIDExQUE7QzZCMzsxMTBCIDExNkUgMTFBQTsKK0M2QjQ7QzZCNDsxMTBCIDExNkUgMTFBQjtDNkI0OzExMEIgMTE2RSAxMUFCOworQzZCNTtDNkI1OzExMEIgMTE2RSAxMUFDO0M2QjU7MTEwQiAxMTZFIDExQUM7CitDNkI2O0M2QjY7MTEwQiAxMTZFIDExQUQ7QzZCNjsxMTBCIDExNkUgMTFBRDsKK0M2Qjc7QzZCNzsxMTBCIDExNkUgMTFBRTtDNkI3OzExMEIgMTE2RSAxMUFFOworQzZCODtDNkI4OzExMEIgMTE2RSAxMUFGO0M2Qjg7MTEwQiAxMTZFIDExQUY7CitDNkI5O0M2Qjk7MTEwQiAxMTZFIDExQjA7QzZCOTsxMTBCIDExNkUgMTFCMDsKK0M2QkE7QzZCQTsxMTBCIDExNkUgMTFCMTtDNkJBOzExMEIgMTE2RSAxMUIxOworQzZCQjtDNkJCOzExMEIgMTE2RSAxMUIyO0M2QkI7MTEwQiAxMTZFIDExQjI7CitDNkJDO0M2QkM7MTEwQiAxMTZFIDExQjM7QzZCQzsxMTBCIDExNkUgMTFCMzsKK0M2QkQ7QzZCRDsxMTBCIDExNkUgMTFCNDtDNkJEOzExMEIgMTE2RSAxMUI0OworQzZCRTtDNkJFOzExMEIgMTE2RSAxMUI1O0M2QkU7MTEwQiAxMTZFIDExQjU7CitDNkJGO0M2QkY7MTEwQiAxMTZFIDExQjY7QzZCRjsxMTBCIDExNkUgMTFCNjsKK0M2QzA7QzZDMDsxMTBCIDExNkUgMTFCNztDNkMwOzExMEIgMTE2RSAxMUI3OworQzZDMTtDNkMxOzExMEIgMTE2RSAxMUI4O0M2QzE7MTEwQiAxMTZFIDExQjg7CitDNkMyO0M2QzI7MTEwQiAxMTZFIDExQjk7QzZDMjsxMTBCIDExNkUgMTFCOTsKK0M2QzM7QzZDMzsxMTBCIDExNkUgMTFCQTtDNkMzOzExMEIgMTE2RSAxMUJBOworQzZDNDtDNkM0OzExMEIgMTE2RSAxMUJCO0M2QzQ7MTEwQiAxMTZFIDExQkI7CitDNkM1O0M2QzU7MTEwQiAxMTZFIDExQkM7QzZDNTsxMTBCIDExNkUgMTFCQzsKK0M2QzY7QzZDNjsxMTBCIDExNkUgMTFCRDtDNkM2OzExMEIgMTE2RSAxMUJEOworQzZDNztDNkM3OzExMEIgMTE2RSAxMUJFO0M2Qzc7MTEwQiAxMTZFIDExQkU7CitDNkM4O0M2Qzg7MTEwQiAxMTZFIDExQkY7QzZDODsxMTBCIDExNkUgMTFCRjsKK0M2Qzk7QzZDOTsxMTBCIDExNkUgMTFDMDtDNkM5OzExMEIgMTE2RSAxMUMwOworQzZDQTtDNkNBOzExMEIgMTE2RSAxMUMxO0M2Q0E7MTEwQiAxMTZFIDExQzE7CitDNkNCO0M2Q0I7MTEwQiAxMTZFIDExQzI7QzZDQjsxMTBCIDExNkUgMTFDMjsKK0M2Q0M7QzZDQzsxMTBCIDExNkY7QzZDQzsxMTBCIDExNkY7CitDNkNEO0M2Q0Q7MTEwQiAxMTZGIDExQTg7QzZDRDsxMTBCIDExNkYgMTFBODsKK0M2Q0U7QzZDRTsxMTBCIDExNkYgMTFBOTtDNkNFOzExMEIgMTE2RiAxMUE5OworQzZDRjtDNkNGOzExMEIgMTE2RiAxMUFBO0M2Q0Y7MTEwQiAxMTZGIDExQUE7CitDNkQwO0M2RDA7MTEwQiAxMTZGIDExQUI7QzZEMDsxMTBCIDExNkYgMTFBQjsKK0M2RDE7QzZEMTsxMTBCIDExNkYgMTFBQztDNkQxOzExMEIgMTE2RiAxMUFDOworQzZEMjtDNkQyOzExMEIgMTE2RiAxMUFEO0M2RDI7MTEwQiAxMTZGIDExQUQ7CitDNkQzO0M2RDM7MTEwQiAxMTZGIDExQUU7QzZEMzsxMTBCIDExNkYgMTFBRTsKK0M2RDQ7QzZENDsxMTBCIDExNkYgMTFBRjtDNkQ0OzExMEIgMTE2RiAxMUFGOworQzZENTtDNkQ1OzExMEIgMTE2RiAxMUIwO0M2RDU7MTEwQiAxMTZGIDExQjA7CitDNkQ2O0M2RDY7MTEwQiAxMTZGIDExQjE7QzZENjsxMTBCIDExNkYgMTFCMTsKK0M2RDc7QzZENzsxMTBCIDExNkYgMTFCMjtDNkQ3OzExMEIgMTE2RiAxMUIyOworQzZEODtDNkQ4OzExMEIgMTE2RiAxMUIzO0M2RDg7MTEwQiAxMTZGIDExQjM7CitDNkQ5O0M2RDk7MTEwQiAxMTZGIDExQjQ7QzZEOTsxMTBCIDExNkYgMTFCNDsKK0M2REE7QzZEQTsxMTBCIDExNkYgMTFCNTtDNkRBOzExMEIgMTE2RiAxMUI1OworQzZEQjtDNkRCOzExMEIgMTE2RiAxMUI2O0M2REI7MTEwQiAxMTZGIDExQjY7CitDNkRDO0M2REM7MTEwQiAxMTZGIDExQjc7QzZEQzsxMTBCIDExNkYgMTFCNzsKK0M2REQ7QzZERDsxMTBCIDExNkYgMTFCODtDNkREOzExMEIgMTE2RiAxMUI4OworQzZERTtDNkRFOzExMEIgMTE2RiAxMUI5O0M2REU7MTEwQiAxMTZGIDExQjk7CitDNkRGO0M2REY7MTEwQiAxMTZGIDExQkE7QzZERjsxMTBCIDExNkYgMTFCQTsKK0M2RTA7QzZFMDsxMTBCIDExNkYgMTFCQjtDNkUwOzExMEIgMTE2RiAxMUJCOworQzZFMTtDNkUxOzExMEIgMTE2RiAxMUJDO0M2RTE7MTEwQiAxMTZGIDExQkM7CitDNkUyO0M2RTI7MTEwQiAxMTZGIDExQkQ7QzZFMjsxMTBCIDExNkYgMTFCRDsKK0M2RTM7QzZFMzsxMTBCIDExNkYgMTFCRTtDNkUzOzExMEIgMTE2RiAxMUJFOworQzZFNDtDNkU0OzExMEIgMTE2RiAxMUJGO0M2RTQ7MTEwQiAxMTZGIDExQkY7CitDNkU1O0M2RTU7MTEwQiAxMTZGIDExQzA7QzZFNTsxMTBCIDExNkYgMTFDMDsKK0M2RTY7QzZFNjsxMTBCIDExNkYgMTFDMTtDNkU2OzExMEIgMTE2RiAxMUMxOworQzZFNztDNkU3OzExMEIgMTE2RiAxMUMyO0M2RTc7MTEwQiAxMTZGIDExQzI7CitDNkU4O0M2RTg7MTEwQiAxMTcwO0M2RTg7MTEwQiAxMTcwOworQzZFOTtDNkU5OzExMEIgMTE3MCAxMUE4O0M2RTk7MTEwQiAxMTcwIDExQTg7CitDNkVBO0M2RUE7MTEwQiAxMTcwIDExQTk7QzZFQTsxMTBCIDExNzAgMTFBOTsKK0M2RUI7QzZFQjsxMTBCIDExNzAgMTFBQTtDNkVCOzExMEIgMTE3MCAxMUFBOworQzZFQztDNkVDOzExMEIgMTE3MCAxMUFCO0M2RUM7MTEwQiAxMTcwIDExQUI7CitDNkVEO0M2RUQ7MTEwQiAxMTcwIDExQUM7QzZFRDsxMTBCIDExNzAgMTFBQzsKK0M2RUU7QzZFRTsxMTBCIDExNzAgMTFBRDtDNkVFOzExMEIgMTE3MCAxMUFEOworQzZFRjtDNkVGOzExMEIgMTE3MCAxMUFFO0M2RUY7MTEwQiAxMTcwIDExQUU7CitDNkYwO0M2RjA7MTEwQiAxMTcwIDExQUY7QzZGMDsxMTBCIDExNzAgMTFBRjsKK0M2RjE7QzZGMTsxMTBCIDExNzAgMTFCMDtDNkYxOzExMEIgMTE3MCAxMUIwOworQzZGMjtDNkYyOzExMEIgMTE3MCAxMUIxO0M2RjI7MTEwQiAxMTcwIDExQjE7CitDNkYzO0M2RjM7MTEwQiAxMTcwIDExQjI7QzZGMzsxMTBCIDExNzAgMTFCMjsKK0M2RjQ7QzZGNDsxMTBCIDExNzAgMTFCMztDNkY0OzExMEIgMTE3MCAxMUIzOworQzZGNTtDNkY1OzExMEIgMTE3MCAxMUI0O0M2RjU7MTEwQiAxMTcwIDExQjQ7CitDNkY2O0M2RjY7MTEwQiAxMTcwIDExQjU7QzZGNjsxMTBCIDExNzAgMTFCNTsKK0M2Rjc7QzZGNzsxMTBCIDExNzAgMTFCNjtDNkY3OzExMEIgMTE3MCAxMUI2OworQzZGODtDNkY4OzExMEIgMTE3MCAxMUI3O0M2Rjg7MTEwQiAxMTcwIDExQjc7CitDNkY5O0M2Rjk7MTEwQiAxMTcwIDExQjg7QzZGOTsxMTBCIDExNzAgMTFCODsKK0M2RkE7QzZGQTsxMTBCIDExNzAgMTFCOTtDNkZBOzExMEIgMTE3MCAxMUI5OworQzZGQjtDNkZCOzExMEIgMTE3MCAxMUJBO0M2RkI7MTEwQiAxMTcwIDExQkE7CitDNkZDO0M2RkM7MTEwQiAxMTcwIDExQkI7QzZGQzsxMTBCIDExNzAgMTFCQjsKK0M2RkQ7QzZGRDsxMTBCIDExNzAgMTFCQztDNkZEOzExMEIgMTE3MCAxMUJDOworQzZGRTtDNkZFOzExMEIgMTE3MCAxMUJEO0M2RkU7MTEwQiAxMTcwIDExQkQ7CitDNkZGO0M2RkY7MTEwQiAxMTcwIDExQkU7QzZGRjsxMTBCIDExNzAgMTFCRTsKK0M3MDA7QzcwMDsxMTBCIDExNzAgMTFCRjtDNzAwOzExMEIgMTE3MCAxMUJGOworQzcwMTtDNzAxOzExMEIgMTE3MCAxMUMwO0M3MDE7MTEwQiAxMTcwIDExQzA7CitDNzAyO0M3MDI7MTEwQiAxMTcwIDExQzE7QzcwMjsxMTBCIDExNzAgMTFDMTsKK0M3MDM7QzcwMzsxMTBCIDExNzAgMTFDMjtDNzAzOzExMEIgMTE3MCAxMUMyOworQzcwNDtDNzA0OzExMEIgMTE3MTtDNzA0OzExMEIgMTE3MTsKK0M3MDU7QzcwNTsxMTBCIDExNzEgMTFBODtDNzA1OzExMEIgMTE3MSAxMUE4OworQzcwNjtDNzA2OzExMEIgMTE3MSAxMUE5O0M3MDY7MTEwQiAxMTcxIDExQTk7CitDNzA3O0M3MDc7MTEwQiAxMTcxIDExQUE7QzcwNzsxMTBCIDExNzEgMTFBQTsKK0M3MDg7QzcwODsxMTBCIDExNzEgMTFBQjtDNzA4OzExMEIgMTE3MSAxMUFCOworQzcwOTtDNzA5OzExMEIgMTE3MSAxMUFDO0M3MDk7MTEwQiAxMTcxIDExQUM7CitDNzBBO0M3MEE7MTEwQiAxMTcxIDExQUQ7QzcwQTsxMTBCIDExNzEgMTFBRDsKK0M3MEI7QzcwQjsxMTBCIDExNzEgMTFBRTtDNzBCOzExMEIgMTE3MSAxMUFFOworQzcwQztDNzBDOzExMEIgMTE3MSAxMUFGO0M3MEM7MTEwQiAxMTcxIDExQUY7CitDNzBEO0M3MEQ7MTEwQiAxMTcxIDExQjA7QzcwRDsxMTBCIDExNzEgMTFCMDsKK0M3MEU7QzcwRTsxMTBCIDExNzEgMTFCMTtDNzBFOzExMEIgMTE3MSAxMUIxOworQzcwRjtDNzBGOzExMEIgMTE3MSAxMUIyO0M3MEY7MTEwQiAxMTcxIDExQjI7CitDNzEwO0M3MTA7MTEwQiAxMTcxIDExQjM7QzcxMDsxMTBCIDExNzEgMTFCMzsKK0M3MTE7QzcxMTsxMTBCIDExNzEgMTFCNDtDNzExOzExMEIgMTE3MSAxMUI0OworQzcxMjtDNzEyOzExMEIgMTE3MSAxMUI1O0M3MTI7MTEwQiAxMTcxIDExQjU7CitDNzEzO0M3MTM7MTEwQiAxMTcxIDExQjY7QzcxMzsxMTBCIDExNzEgMTFCNjsKK0M3MTQ7QzcxNDsxMTBCIDExNzEgMTFCNztDNzE0OzExMEIgMTE3MSAxMUI3OworQzcxNTtDNzE1OzExMEIgMTE3MSAxMUI4O0M3MTU7MTEwQiAxMTcxIDExQjg7CitDNzE2O0M3MTY7MTEwQiAxMTcxIDExQjk7QzcxNjsxMTBCIDExNzEgMTFCOTsKK0M3MTc7QzcxNzsxMTBCIDExNzEgMTFCQTtDNzE3OzExMEIgMTE3MSAxMUJBOworQzcxODtDNzE4OzExMEIgMTE3MSAxMUJCO0M3MTg7MTEwQiAxMTcxIDExQkI7CitDNzE5O0M3MTk7MTEwQiAxMTcxIDExQkM7QzcxOTsxMTBCIDExNzEgMTFCQzsKK0M3MUE7QzcxQTsxMTBCIDExNzEgMTFCRDtDNzFBOzExMEIgMTE3MSAxMUJEOworQzcxQjtDNzFCOzExMEIgMTE3MSAxMUJFO0M3MUI7MTEwQiAxMTcxIDExQkU7CitDNzFDO0M3MUM7MTEwQiAxMTcxIDExQkY7QzcxQzsxMTBCIDExNzEgMTFCRjsKK0M3MUQ7QzcxRDsxMTBCIDExNzEgMTFDMDtDNzFEOzExMEIgMTE3MSAxMUMwOworQzcxRTtDNzFFOzExMEIgMTE3MSAxMUMxO0M3MUU7MTEwQiAxMTcxIDExQzE7CitDNzFGO0M3MUY7MTEwQiAxMTcxIDExQzI7QzcxRjsxMTBCIDExNzEgMTFDMjsKK0M3MjA7QzcyMDsxMTBCIDExNzI7QzcyMDsxMTBCIDExNzI7CitDNzIxO0M3MjE7MTEwQiAxMTcyIDExQTg7QzcyMTsxMTBCIDExNzIgMTFBODsKK0M3MjI7QzcyMjsxMTBCIDExNzIgMTFBOTtDNzIyOzExMEIgMTE3MiAxMUE5OworQzcyMztDNzIzOzExMEIgMTE3MiAxMUFBO0M3MjM7MTEwQiAxMTcyIDExQUE7CitDNzI0O0M3MjQ7MTEwQiAxMTcyIDExQUI7QzcyNDsxMTBCIDExNzIgMTFBQjsKK0M3MjU7QzcyNTsxMTBCIDExNzIgMTFBQztDNzI1OzExMEIgMTE3MiAxMUFDOworQzcyNjtDNzI2OzExMEIgMTE3MiAxMUFEO0M3MjY7MTEwQiAxMTcyIDExQUQ7CitDNzI3O0M3Mjc7MTEwQiAxMTcyIDExQUU7QzcyNzsxMTBCIDExNzIgMTFBRTsKK0M3Mjg7QzcyODsxMTBCIDExNzIgMTFBRjtDNzI4OzExMEIgMTE3MiAxMUFGOworQzcyOTtDNzI5OzExMEIgMTE3MiAxMUIwO0M3Mjk7MTEwQiAxMTcyIDExQjA7CitDNzJBO0M3MkE7MTEwQiAxMTcyIDExQjE7QzcyQTsxMTBCIDExNzIgMTFCMTsKK0M3MkI7QzcyQjsxMTBCIDExNzIgMTFCMjtDNzJCOzExMEIgMTE3MiAxMUIyOworQzcyQztDNzJDOzExMEIgMTE3MiAxMUIzO0M3MkM7MTEwQiAxMTcyIDExQjM7CitDNzJEO0M3MkQ7MTEwQiAxMTcyIDExQjQ7QzcyRDsxMTBCIDExNzIgMTFCNDsKK0M3MkU7QzcyRTsxMTBCIDExNzIgMTFCNTtDNzJFOzExMEIgMTE3MiAxMUI1OworQzcyRjtDNzJGOzExMEIgMTE3MiAxMUI2O0M3MkY7MTEwQiAxMTcyIDExQjY7CitDNzMwO0M3MzA7MTEwQiAxMTcyIDExQjc7QzczMDsxMTBCIDExNzIgMTFCNzsKK0M3MzE7QzczMTsxMTBCIDExNzIgMTFCODtDNzMxOzExMEIgMTE3MiAxMUI4OworQzczMjtDNzMyOzExMEIgMTE3MiAxMUI5O0M3MzI7MTEwQiAxMTcyIDExQjk7CitDNzMzO0M3MzM7MTEwQiAxMTcyIDExQkE7QzczMzsxMTBCIDExNzIgMTFCQTsKK0M3MzQ7QzczNDsxMTBCIDExNzIgMTFCQjtDNzM0OzExMEIgMTE3MiAxMUJCOworQzczNTtDNzM1OzExMEIgMTE3MiAxMUJDO0M3MzU7MTEwQiAxMTcyIDExQkM7CitDNzM2O0M3MzY7MTEwQiAxMTcyIDExQkQ7QzczNjsxMTBCIDExNzIgMTFCRDsKK0M3Mzc7QzczNzsxMTBCIDExNzIgMTFCRTtDNzM3OzExMEIgMTE3MiAxMUJFOworQzczODtDNzM4OzExMEIgMTE3MiAxMUJGO0M3Mzg7MTEwQiAxMTcyIDExQkY7CitDNzM5O0M3Mzk7MTEwQiAxMTcyIDExQzA7QzczOTsxMTBCIDExNzIgMTFDMDsKK0M3M0E7QzczQTsxMTBCIDExNzIgMTFDMTtDNzNBOzExMEIgMTE3MiAxMUMxOworQzczQjtDNzNCOzExMEIgMTE3MiAxMUMyO0M3M0I7MTEwQiAxMTcyIDExQzI7CitDNzNDO0M3M0M7MTEwQiAxMTczO0M3M0M7MTEwQiAxMTczOworQzczRDtDNzNEOzExMEIgMTE3MyAxMUE4O0M3M0Q7MTEwQiAxMTczIDExQTg7CitDNzNFO0M3M0U7MTEwQiAxMTczIDExQTk7QzczRTsxMTBCIDExNzMgMTFBOTsKK0M3M0Y7QzczRjsxMTBCIDExNzMgMTFBQTtDNzNGOzExMEIgMTE3MyAxMUFBOworQzc0MDtDNzQwOzExMEIgMTE3MyAxMUFCO0M3NDA7MTEwQiAxMTczIDExQUI7CitDNzQxO0M3NDE7MTEwQiAxMTczIDExQUM7Qzc0MTsxMTBCIDExNzMgMTFBQzsKK0M3NDI7Qzc0MjsxMTBCIDExNzMgMTFBRDtDNzQyOzExMEIgMTE3MyAxMUFEOworQzc0MztDNzQzOzExMEIgMTE3MyAxMUFFO0M3NDM7MTEwQiAxMTczIDExQUU7CitDNzQ0O0M3NDQ7MTEwQiAxMTczIDExQUY7Qzc0NDsxMTBCIDExNzMgMTFBRjsKK0M3NDU7Qzc0NTsxMTBCIDExNzMgMTFCMDtDNzQ1OzExMEIgMTE3MyAxMUIwOworQzc0NjtDNzQ2OzExMEIgMTE3MyAxMUIxO0M3NDY7MTEwQiAxMTczIDExQjE7CitDNzQ3O0M3NDc7MTEwQiAxMTczIDExQjI7Qzc0NzsxMTBCIDExNzMgMTFCMjsKK0M3NDg7Qzc0ODsxMTBCIDExNzMgMTFCMztDNzQ4OzExMEIgMTE3MyAxMUIzOworQzc0OTtDNzQ5OzExMEIgMTE3MyAxMUI0O0M3NDk7MTEwQiAxMTczIDExQjQ7CitDNzRBO0M3NEE7MTEwQiAxMTczIDExQjU7Qzc0QTsxMTBCIDExNzMgMTFCNTsKK0M3NEI7Qzc0QjsxMTBCIDExNzMgMTFCNjtDNzRCOzExMEIgMTE3MyAxMUI2OworQzc0QztDNzRDOzExMEIgMTE3MyAxMUI3O0M3NEM7MTEwQiAxMTczIDExQjc7CitDNzREO0M3NEQ7MTEwQiAxMTczIDExQjg7Qzc0RDsxMTBCIDExNzMgMTFCODsKK0M3NEU7Qzc0RTsxMTBCIDExNzMgMTFCOTtDNzRFOzExMEIgMTE3MyAxMUI5OworQzc0RjtDNzRGOzExMEIgMTE3MyAxMUJBO0M3NEY7MTEwQiAxMTczIDExQkE7CitDNzUwO0M3NTA7MTEwQiAxMTczIDExQkI7Qzc1MDsxMTBCIDExNzMgMTFCQjsKK0M3NTE7Qzc1MTsxMTBCIDExNzMgMTFCQztDNzUxOzExMEIgMTE3MyAxMUJDOworQzc1MjtDNzUyOzExMEIgMTE3MyAxMUJEO0M3NTI7MTEwQiAxMTczIDExQkQ7CitDNzUzO0M3NTM7MTEwQiAxMTczIDExQkU7Qzc1MzsxMTBCIDExNzMgMTFCRTsKK0M3NTQ7Qzc1NDsxMTBCIDExNzMgMTFCRjtDNzU0OzExMEIgMTE3MyAxMUJGOworQzc1NTtDNzU1OzExMEIgMTE3MyAxMUMwO0M3NTU7MTEwQiAxMTczIDExQzA7CitDNzU2O0M3NTY7MTEwQiAxMTczIDExQzE7Qzc1NjsxMTBCIDExNzMgMTFDMTsKK0M3NTc7Qzc1NzsxMTBCIDExNzMgMTFDMjtDNzU3OzExMEIgMTE3MyAxMUMyOworQzc1ODtDNzU4OzExMEIgMTE3NDtDNzU4OzExMEIgMTE3NDsKK0M3NTk7Qzc1OTsxMTBCIDExNzQgMTFBODtDNzU5OzExMEIgMTE3NCAxMUE4OworQzc1QTtDNzVBOzExMEIgMTE3NCAxMUE5O0M3NUE7MTEwQiAxMTc0IDExQTk7CitDNzVCO0M3NUI7MTEwQiAxMTc0IDExQUE7Qzc1QjsxMTBCIDExNzQgMTFBQTsKK0M3NUM7Qzc1QzsxMTBCIDExNzQgMTFBQjtDNzVDOzExMEIgMTE3NCAxMUFCOworQzc1RDtDNzVEOzExMEIgMTE3NCAxMUFDO0M3NUQ7MTEwQiAxMTc0IDExQUM7CitDNzVFO0M3NUU7MTEwQiAxMTc0IDExQUQ7Qzc1RTsxMTBCIDExNzQgMTFBRDsKK0M3NUY7Qzc1RjsxMTBCIDExNzQgMTFBRTtDNzVGOzExMEIgMTE3NCAxMUFFOworQzc2MDtDNzYwOzExMEIgMTE3NCAxMUFGO0M3NjA7MTEwQiAxMTc0IDExQUY7CitDNzYxO0M3NjE7MTEwQiAxMTc0IDExQjA7Qzc2MTsxMTBCIDExNzQgMTFCMDsKK0M3NjI7Qzc2MjsxMTBCIDExNzQgMTFCMTtDNzYyOzExMEIgMTE3NCAxMUIxOworQzc2MztDNzYzOzExMEIgMTE3NCAxMUIyO0M3NjM7MTEwQiAxMTc0IDExQjI7CitDNzY0O0M3NjQ7MTEwQiAxMTc0IDExQjM7Qzc2NDsxMTBCIDExNzQgMTFCMzsKK0M3NjU7Qzc2NTsxMTBCIDExNzQgMTFCNDtDNzY1OzExMEIgMTE3NCAxMUI0OworQzc2NjtDNzY2OzExMEIgMTE3NCAxMUI1O0M3NjY7MTEwQiAxMTc0IDExQjU7CitDNzY3O0M3Njc7MTEwQiAxMTc0IDExQjY7Qzc2NzsxMTBCIDExNzQgMTFCNjsKK0M3Njg7Qzc2ODsxMTBCIDExNzQgMTFCNztDNzY4OzExMEIgMTE3NCAxMUI3OworQzc2OTtDNzY5OzExMEIgMTE3NCAxMUI4O0M3Njk7MTEwQiAxMTc0IDExQjg7CitDNzZBO0M3NkE7MTEwQiAxMTc0IDExQjk7Qzc2QTsxMTBCIDExNzQgMTFCOTsKK0M3NkI7Qzc2QjsxMTBCIDExNzQgMTFCQTtDNzZCOzExMEIgMTE3NCAxMUJBOworQzc2QztDNzZDOzExMEIgMTE3NCAxMUJCO0M3NkM7MTEwQiAxMTc0IDExQkI7CitDNzZEO0M3NkQ7MTEwQiAxMTc0IDExQkM7Qzc2RDsxMTBCIDExNzQgMTFCQzsKK0M3NkU7Qzc2RTsxMTBCIDExNzQgMTFCRDtDNzZFOzExMEIgMTE3NCAxMUJEOworQzc2RjtDNzZGOzExMEIgMTE3NCAxMUJFO0M3NkY7MTEwQiAxMTc0IDExQkU7CitDNzcwO0M3NzA7MTEwQiAxMTc0IDExQkY7Qzc3MDsxMTBCIDExNzQgMTFCRjsKK0M3NzE7Qzc3MTsxMTBCIDExNzQgMTFDMDtDNzcxOzExMEIgMTE3NCAxMUMwOworQzc3MjtDNzcyOzExMEIgMTE3NCAxMUMxO0M3NzI7MTEwQiAxMTc0IDExQzE7CitDNzczO0M3NzM7MTEwQiAxMTc0IDExQzI7Qzc3MzsxMTBCIDExNzQgMTFDMjsKK0M3NzQ7Qzc3NDsxMTBCIDExNzU7Qzc3NDsxMTBCIDExNzU7CitDNzc1O0M3NzU7MTEwQiAxMTc1IDExQTg7Qzc3NTsxMTBCIDExNzUgMTFBODsKK0M3NzY7Qzc3NjsxMTBCIDExNzUgMTFBOTtDNzc2OzExMEIgMTE3NSAxMUE5OworQzc3NztDNzc3OzExMEIgMTE3NSAxMUFBO0M3Nzc7MTEwQiAxMTc1IDExQUE7CitDNzc4O0M3Nzg7MTEwQiAxMTc1IDExQUI7Qzc3ODsxMTBCIDExNzUgMTFBQjsKK0M3Nzk7Qzc3OTsxMTBCIDExNzUgMTFBQztDNzc5OzExMEIgMTE3NSAxMUFDOworQzc3QTtDNzdBOzExMEIgMTE3NSAxMUFEO0M3N0E7MTEwQiAxMTc1IDExQUQ7CitDNzdCO0M3N0I7MTEwQiAxMTc1IDExQUU7Qzc3QjsxMTBCIDExNzUgMTFBRTsKK0M3N0M7Qzc3QzsxMTBCIDExNzUgMTFBRjtDNzdDOzExMEIgMTE3NSAxMUFGOworQzc3RDtDNzdEOzExMEIgMTE3NSAxMUIwO0M3N0Q7MTEwQiAxMTc1IDExQjA7CitDNzdFO0M3N0U7MTEwQiAxMTc1IDExQjE7Qzc3RTsxMTBCIDExNzUgMTFCMTsKK0M3N0Y7Qzc3RjsxMTBCIDExNzUgMTFCMjtDNzdGOzExMEIgMTE3NSAxMUIyOworQzc4MDtDNzgwOzExMEIgMTE3NSAxMUIzO0M3ODA7MTEwQiAxMTc1IDExQjM7CitDNzgxO0M3ODE7MTEwQiAxMTc1IDExQjQ7Qzc4MTsxMTBCIDExNzUgMTFCNDsKK0M3ODI7Qzc4MjsxMTBCIDExNzUgMTFCNTtDNzgyOzExMEIgMTE3NSAxMUI1OworQzc4MztDNzgzOzExMEIgMTE3NSAxMUI2O0M3ODM7MTEwQiAxMTc1IDExQjY7CitDNzg0O0M3ODQ7MTEwQiAxMTc1IDExQjc7Qzc4NDsxMTBCIDExNzUgMTFCNzsKK0M3ODU7Qzc4NTsxMTBCIDExNzUgMTFCODtDNzg1OzExMEIgMTE3NSAxMUI4OworQzc4NjtDNzg2OzExMEIgMTE3NSAxMUI5O0M3ODY7MTEwQiAxMTc1IDExQjk7CitDNzg3O0M3ODc7MTEwQiAxMTc1IDExQkE7Qzc4NzsxMTBCIDExNzUgMTFCQTsKK0M3ODg7Qzc4ODsxMTBCIDExNzUgMTFCQjtDNzg4OzExMEIgMTE3NSAxMUJCOworQzc4OTtDNzg5OzExMEIgMTE3NSAxMUJDO0M3ODk7MTEwQiAxMTc1IDExQkM7CitDNzhBO0M3OEE7MTEwQiAxMTc1IDExQkQ7Qzc4QTsxMTBCIDExNzUgMTFCRDsKK0M3OEI7Qzc4QjsxMTBCIDExNzUgMTFCRTtDNzhCOzExMEIgMTE3NSAxMUJFOworQzc4QztDNzhDOzExMEIgMTE3NSAxMUJGO0M3OEM7MTEwQiAxMTc1IDExQkY7CitDNzhEO0M3OEQ7MTEwQiAxMTc1IDExQzA7Qzc4RDsxMTBCIDExNzUgMTFDMDsKK0M3OEU7Qzc4RTsxMTBCIDExNzUgMTFDMTtDNzhFOzExMEIgMTE3NSAxMUMxOworQzc4RjtDNzhGOzExMEIgMTE3NSAxMUMyO0M3OEY7MTEwQiAxMTc1IDExQzI7CitDNzkwO0M3OTA7MTEwQyAxMTYxO0M3OTA7MTEwQyAxMTYxOworQzc5MTtDNzkxOzExMEMgMTE2MSAxMUE4O0M3OTE7MTEwQyAxMTYxIDExQTg7CitDNzkyO0M3OTI7MTEwQyAxMTYxIDExQTk7Qzc5MjsxMTBDIDExNjEgMTFBOTsKK0M3OTM7Qzc5MzsxMTBDIDExNjEgMTFBQTtDNzkzOzExMEMgMTE2MSAxMUFBOworQzc5NDtDNzk0OzExMEMgMTE2MSAxMUFCO0M3OTQ7MTEwQyAxMTYxIDExQUI7CitDNzk1O0M3OTU7MTEwQyAxMTYxIDExQUM7Qzc5NTsxMTBDIDExNjEgMTFBQzsKK0M3OTY7Qzc5NjsxMTBDIDExNjEgMTFBRDtDNzk2OzExMEMgMTE2MSAxMUFEOworQzc5NztDNzk3OzExMEMgMTE2MSAxMUFFO0M3OTc7MTEwQyAxMTYxIDExQUU7CitDNzk4O0M3OTg7MTEwQyAxMTYxIDExQUY7Qzc5ODsxMTBDIDExNjEgMTFBRjsKK0M3OTk7Qzc5OTsxMTBDIDExNjEgMTFCMDtDNzk5OzExMEMgMTE2MSAxMUIwOworQzc5QTtDNzlBOzExMEMgMTE2MSAxMUIxO0M3OUE7MTEwQyAxMTYxIDExQjE7CitDNzlCO0M3OUI7MTEwQyAxMTYxIDExQjI7Qzc5QjsxMTBDIDExNjEgMTFCMjsKK0M3OUM7Qzc5QzsxMTBDIDExNjEgMTFCMztDNzlDOzExMEMgMTE2MSAxMUIzOworQzc5RDtDNzlEOzExMEMgMTE2MSAxMUI0O0M3OUQ7MTEwQyAxMTYxIDExQjQ7CitDNzlFO0M3OUU7MTEwQyAxMTYxIDExQjU7Qzc5RTsxMTBDIDExNjEgMTFCNTsKK0M3OUY7Qzc5RjsxMTBDIDExNjEgMTFCNjtDNzlGOzExMEMgMTE2MSAxMUI2OworQzdBMDtDN0EwOzExMEMgMTE2MSAxMUI3O0M3QTA7MTEwQyAxMTYxIDExQjc7CitDN0ExO0M3QTE7MTEwQyAxMTYxIDExQjg7QzdBMTsxMTBDIDExNjEgMTFCODsKK0M3QTI7QzdBMjsxMTBDIDExNjEgMTFCOTtDN0EyOzExMEMgMTE2MSAxMUI5OworQzdBMztDN0EzOzExMEMgMTE2MSAxMUJBO0M3QTM7MTEwQyAxMTYxIDExQkE7CitDN0E0O0M3QTQ7MTEwQyAxMTYxIDExQkI7QzdBNDsxMTBDIDExNjEgMTFCQjsKK0M3QTU7QzdBNTsxMTBDIDExNjEgMTFCQztDN0E1OzExMEMgMTE2MSAxMUJDOworQzdBNjtDN0E2OzExMEMgMTE2MSAxMUJEO0M3QTY7MTEwQyAxMTYxIDExQkQ7CitDN0E3O0M3QTc7MTEwQyAxMTYxIDExQkU7QzdBNzsxMTBDIDExNjEgMTFCRTsKK0M3QTg7QzdBODsxMTBDIDExNjEgMTFCRjtDN0E4OzExMEMgMTE2MSAxMUJGOworQzdBOTtDN0E5OzExMEMgMTE2MSAxMUMwO0M3QTk7MTEwQyAxMTYxIDExQzA7CitDN0FBO0M3QUE7MTEwQyAxMTYxIDExQzE7QzdBQTsxMTBDIDExNjEgMTFDMTsKK0M3QUI7QzdBQjsxMTBDIDExNjEgMTFDMjtDN0FCOzExMEMgMTE2MSAxMUMyOworQzdBQztDN0FDOzExMEMgMTE2MjtDN0FDOzExMEMgMTE2MjsKK0M3QUQ7QzdBRDsxMTBDIDExNjIgMTFBODtDN0FEOzExMEMgMTE2MiAxMUE4OworQzdBRTtDN0FFOzExMEMgMTE2MiAxMUE5O0M3QUU7MTEwQyAxMTYyIDExQTk7CitDN0FGO0M3QUY7MTEwQyAxMTYyIDExQUE7QzdBRjsxMTBDIDExNjIgMTFBQTsKK0M3QjA7QzdCMDsxMTBDIDExNjIgMTFBQjtDN0IwOzExMEMgMTE2MiAxMUFCOworQzdCMTtDN0IxOzExMEMgMTE2MiAxMUFDO0M3QjE7MTEwQyAxMTYyIDExQUM7CitDN0IyO0M3QjI7MTEwQyAxMTYyIDExQUQ7QzdCMjsxMTBDIDExNjIgMTFBRDsKK0M3QjM7QzdCMzsxMTBDIDExNjIgMTFBRTtDN0IzOzExMEMgMTE2MiAxMUFFOworQzdCNDtDN0I0OzExMEMgMTE2MiAxMUFGO0M3QjQ7MTEwQyAxMTYyIDExQUY7CitDN0I1O0M3QjU7MTEwQyAxMTYyIDExQjA7QzdCNTsxMTBDIDExNjIgMTFCMDsKK0M3QjY7QzdCNjsxMTBDIDExNjIgMTFCMTtDN0I2OzExMEMgMTE2MiAxMUIxOworQzdCNztDN0I3OzExMEMgMTE2MiAxMUIyO0M3Qjc7MTEwQyAxMTYyIDExQjI7CitDN0I4O0M3Qjg7MTEwQyAxMTYyIDExQjM7QzdCODsxMTBDIDExNjIgMTFCMzsKK0M3Qjk7QzdCOTsxMTBDIDExNjIgMTFCNDtDN0I5OzExMEMgMTE2MiAxMUI0OworQzdCQTtDN0JBOzExMEMgMTE2MiAxMUI1O0M3QkE7MTEwQyAxMTYyIDExQjU7CitDN0JCO0M3QkI7MTEwQyAxMTYyIDExQjY7QzdCQjsxMTBDIDExNjIgMTFCNjsKK0M3QkM7QzdCQzsxMTBDIDExNjIgMTFCNztDN0JDOzExMEMgMTE2MiAxMUI3OworQzdCRDtDN0JEOzExMEMgMTE2MiAxMUI4O0M3QkQ7MTEwQyAxMTYyIDExQjg7CitDN0JFO0M3QkU7MTEwQyAxMTYyIDExQjk7QzdCRTsxMTBDIDExNjIgMTFCOTsKK0M3QkY7QzdCRjsxMTBDIDExNjIgMTFCQTtDN0JGOzExMEMgMTE2MiAxMUJBOworQzdDMDtDN0MwOzExMEMgMTE2MiAxMUJCO0M3QzA7MTEwQyAxMTYyIDExQkI7CitDN0MxO0M3QzE7MTEwQyAxMTYyIDExQkM7QzdDMTsxMTBDIDExNjIgMTFCQzsKK0M3QzI7QzdDMjsxMTBDIDExNjIgMTFCRDtDN0MyOzExMEMgMTE2MiAxMUJEOworQzdDMztDN0MzOzExMEMgMTE2MiAxMUJFO0M3QzM7MTEwQyAxMTYyIDExQkU7CitDN0M0O0M3QzQ7MTEwQyAxMTYyIDExQkY7QzdDNDsxMTBDIDExNjIgMTFCRjsKK0M3QzU7QzdDNTsxMTBDIDExNjIgMTFDMDtDN0M1OzExMEMgMTE2MiAxMUMwOworQzdDNjtDN0M2OzExMEMgMTE2MiAxMUMxO0M3QzY7MTEwQyAxMTYyIDExQzE7CitDN0M3O0M3Qzc7MTEwQyAxMTYyIDExQzI7QzdDNzsxMTBDIDExNjIgMTFDMjsKK0M3Qzg7QzdDODsxMTBDIDExNjM7QzdDODsxMTBDIDExNjM7CitDN0M5O0M3Qzk7MTEwQyAxMTYzIDExQTg7QzdDOTsxMTBDIDExNjMgMTFBODsKK0M3Q0E7QzdDQTsxMTBDIDExNjMgMTFBOTtDN0NBOzExMEMgMTE2MyAxMUE5OworQzdDQjtDN0NCOzExMEMgMTE2MyAxMUFBO0M3Q0I7MTEwQyAxMTYzIDExQUE7CitDN0NDO0M3Q0M7MTEwQyAxMTYzIDExQUI7QzdDQzsxMTBDIDExNjMgMTFBQjsKK0M3Q0Q7QzdDRDsxMTBDIDExNjMgMTFBQztDN0NEOzExMEMgMTE2MyAxMUFDOworQzdDRTtDN0NFOzExMEMgMTE2MyAxMUFEO0M3Q0U7MTEwQyAxMTYzIDExQUQ7CitDN0NGO0M3Q0Y7MTEwQyAxMTYzIDExQUU7QzdDRjsxMTBDIDExNjMgMTFBRTsKK0M3RDA7QzdEMDsxMTBDIDExNjMgMTFBRjtDN0QwOzExMEMgMTE2MyAxMUFGOworQzdEMTtDN0QxOzExMEMgMTE2MyAxMUIwO0M3RDE7MTEwQyAxMTYzIDExQjA7CitDN0QyO0M3RDI7MTEwQyAxMTYzIDExQjE7QzdEMjsxMTBDIDExNjMgMTFCMTsKK0M3RDM7QzdEMzsxMTBDIDExNjMgMTFCMjtDN0QzOzExMEMgMTE2MyAxMUIyOworQzdENDtDN0Q0OzExMEMgMTE2MyAxMUIzO0M3RDQ7MTEwQyAxMTYzIDExQjM7CitDN0Q1O0M3RDU7MTEwQyAxMTYzIDExQjQ7QzdENTsxMTBDIDExNjMgMTFCNDsKK0M3RDY7QzdENjsxMTBDIDExNjMgMTFCNTtDN0Q2OzExMEMgMTE2MyAxMUI1OworQzdENztDN0Q3OzExMEMgMTE2MyAxMUI2O0M3RDc7MTEwQyAxMTYzIDExQjY7CitDN0Q4O0M3RDg7MTEwQyAxMTYzIDExQjc7QzdEODsxMTBDIDExNjMgMTFCNzsKK0M3RDk7QzdEOTsxMTBDIDExNjMgMTFCODtDN0Q5OzExMEMgMTE2MyAxMUI4OworQzdEQTtDN0RBOzExMEMgMTE2MyAxMUI5O0M3REE7MTEwQyAxMTYzIDExQjk7CitDN0RCO0M3REI7MTEwQyAxMTYzIDExQkE7QzdEQjsxMTBDIDExNjMgMTFCQTsKK0M3REM7QzdEQzsxMTBDIDExNjMgMTFCQjtDN0RDOzExMEMgMTE2MyAxMUJCOworQzdERDtDN0REOzExMEMgMTE2MyAxMUJDO0M3REQ7MTEwQyAxMTYzIDExQkM7CitDN0RFO0M3REU7MTEwQyAxMTYzIDExQkQ7QzdERTsxMTBDIDExNjMgMTFCRDsKK0M3REY7QzdERjsxMTBDIDExNjMgMTFCRTtDN0RGOzExMEMgMTE2MyAxMUJFOworQzdFMDtDN0UwOzExMEMgMTE2MyAxMUJGO0M3RTA7MTEwQyAxMTYzIDExQkY7CitDN0UxO0M3RTE7MTEwQyAxMTYzIDExQzA7QzdFMTsxMTBDIDExNjMgMTFDMDsKK0M3RTI7QzdFMjsxMTBDIDExNjMgMTFDMTtDN0UyOzExMEMgMTE2MyAxMUMxOworQzdFMztDN0UzOzExMEMgMTE2MyAxMUMyO0M3RTM7MTEwQyAxMTYzIDExQzI7CitDN0U0O0M3RTQ7MTEwQyAxMTY0O0M3RTQ7MTEwQyAxMTY0OworQzdFNTtDN0U1OzExMEMgMTE2NCAxMUE4O0M3RTU7MTEwQyAxMTY0IDExQTg7CitDN0U2O0M3RTY7MTEwQyAxMTY0IDExQTk7QzdFNjsxMTBDIDExNjQgMTFBOTsKK0M3RTc7QzdFNzsxMTBDIDExNjQgMTFBQTtDN0U3OzExMEMgMTE2NCAxMUFBOworQzdFODtDN0U4OzExMEMgMTE2NCAxMUFCO0M3RTg7MTEwQyAxMTY0IDExQUI7CitDN0U5O0M3RTk7MTEwQyAxMTY0IDExQUM7QzdFOTsxMTBDIDExNjQgMTFBQzsKK0M3RUE7QzdFQTsxMTBDIDExNjQgMTFBRDtDN0VBOzExMEMgMTE2NCAxMUFEOworQzdFQjtDN0VCOzExMEMgMTE2NCAxMUFFO0M3RUI7MTEwQyAxMTY0IDExQUU7CitDN0VDO0M3RUM7MTEwQyAxMTY0IDExQUY7QzdFQzsxMTBDIDExNjQgMTFBRjsKK0M3RUQ7QzdFRDsxMTBDIDExNjQgMTFCMDtDN0VEOzExMEMgMTE2NCAxMUIwOworQzdFRTtDN0VFOzExMEMgMTE2NCAxMUIxO0M3RUU7MTEwQyAxMTY0IDExQjE7CitDN0VGO0M3RUY7MTEwQyAxMTY0IDExQjI7QzdFRjsxMTBDIDExNjQgMTFCMjsKK0M3RjA7QzdGMDsxMTBDIDExNjQgMTFCMztDN0YwOzExMEMgMTE2NCAxMUIzOworQzdGMTtDN0YxOzExMEMgMTE2NCAxMUI0O0M3RjE7MTEwQyAxMTY0IDExQjQ7CitDN0YyO0M3RjI7MTEwQyAxMTY0IDExQjU7QzdGMjsxMTBDIDExNjQgMTFCNTsKK0M3RjM7QzdGMzsxMTBDIDExNjQgMTFCNjtDN0YzOzExMEMgMTE2NCAxMUI2OworQzdGNDtDN0Y0OzExMEMgMTE2NCAxMUI3O0M3RjQ7MTEwQyAxMTY0IDExQjc7CitDN0Y1O0M3RjU7MTEwQyAxMTY0IDExQjg7QzdGNTsxMTBDIDExNjQgMTFCODsKK0M3RjY7QzdGNjsxMTBDIDExNjQgMTFCOTtDN0Y2OzExMEMgMTE2NCAxMUI5OworQzdGNztDN0Y3OzExMEMgMTE2NCAxMUJBO0M3Rjc7MTEwQyAxMTY0IDExQkE7CitDN0Y4O0M3Rjg7MTEwQyAxMTY0IDExQkI7QzdGODsxMTBDIDExNjQgMTFCQjsKK0M3Rjk7QzdGOTsxMTBDIDExNjQgMTFCQztDN0Y5OzExMEMgMTE2NCAxMUJDOworQzdGQTtDN0ZBOzExMEMgMTE2NCAxMUJEO0M3RkE7MTEwQyAxMTY0IDExQkQ7CitDN0ZCO0M3RkI7MTEwQyAxMTY0IDExQkU7QzdGQjsxMTBDIDExNjQgMTFCRTsKK0M3RkM7QzdGQzsxMTBDIDExNjQgMTFCRjtDN0ZDOzExMEMgMTE2NCAxMUJGOworQzdGRDtDN0ZEOzExMEMgMTE2NCAxMUMwO0M3RkQ7MTEwQyAxMTY0IDExQzA7CitDN0ZFO0M3RkU7MTEwQyAxMTY0IDExQzE7QzdGRTsxMTBDIDExNjQgMTFDMTsKK0M3RkY7QzdGRjsxMTBDIDExNjQgMTFDMjtDN0ZGOzExMEMgMTE2NCAxMUMyOworQzgwMDtDODAwOzExMEMgMTE2NTtDODAwOzExMEMgMTE2NTsKK0M4MDE7QzgwMTsxMTBDIDExNjUgMTFBODtDODAxOzExMEMgMTE2NSAxMUE4OworQzgwMjtDODAyOzExMEMgMTE2NSAxMUE5O0M4MDI7MTEwQyAxMTY1IDExQTk7CitDODAzO0M4MDM7MTEwQyAxMTY1IDExQUE7QzgwMzsxMTBDIDExNjUgMTFBQTsKK0M4MDQ7QzgwNDsxMTBDIDExNjUgMTFBQjtDODA0OzExMEMgMTE2NSAxMUFCOworQzgwNTtDODA1OzExMEMgMTE2NSAxMUFDO0M4MDU7MTEwQyAxMTY1IDExQUM7CitDODA2O0M4MDY7MTEwQyAxMTY1IDExQUQ7QzgwNjsxMTBDIDExNjUgMTFBRDsKK0M4MDc7QzgwNzsxMTBDIDExNjUgMTFBRTtDODA3OzExMEMgMTE2NSAxMUFFOworQzgwODtDODA4OzExMEMgMTE2NSAxMUFGO0M4MDg7MTEwQyAxMTY1IDExQUY7CitDODA5O0M4MDk7MTEwQyAxMTY1IDExQjA7QzgwOTsxMTBDIDExNjUgMTFCMDsKK0M4MEE7QzgwQTsxMTBDIDExNjUgMTFCMTtDODBBOzExMEMgMTE2NSAxMUIxOworQzgwQjtDODBCOzExMEMgMTE2NSAxMUIyO0M4MEI7MTEwQyAxMTY1IDExQjI7CitDODBDO0M4MEM7MTEwQyAxMTY1IDExQjM7QzgwQzsxMTBDIDExNjUgMTFCMzsKK0M4MEQ7QzgwRDsxMTBDIDExNjUgMTFCNDtDODBEOzExMEMgMTE2NSAxMUI0OworQzgwRTtDODBFOzExMEMgMTE2NSAxMUI1O0M4MEU7MTEwQyAxMTY1IDExQjU7CitDODBGO0M4MEY7MTEwQyAxMTY1IDExQjY7QzgwRjsxMTBDIDExNjUgMTFCNjsKK0M4MTA7QzgxMDsxMTBDIDExNjUgMTFCNztDODEwOzExMEMgMTE2NSAxMUI3OworQzgxMTtDODExOzExMEMgMTE2NSAxMUI4O0M4MTE7MTEwQyAxMTY1IDExQjg7CitDODEyO0M4MTI7MTEwQyAxMTY1IDExQjk7QzgxMjsxMTBDIDExNjUgMTFCOTsKK0M4MTM7QzgxMzsxMTBDIDExNjUgMTFCQTtDODEzOzExMEMgMTE2NSAxMUJBOworQzgxNDtDODE0OzExMEMgMTE2NSAxMUJCO0M4MTQ7MTEwQyAxMTY1IDExQkI7CitDODE1O0M4MTU7MTEwQyAxMTY1IDExQkM7QzgxNTsxMTBDIDExNjUgMTFCQzsKK0M4MTY7QzgxNjsxMTBDIDExNjUgMTFCRDtDODE2OzExMEMgMTE2NSAxMUJEOworQzgxNztDODE3OzExMEMgMTE2NSAxMUJFO0M4MTc7MTEwQyAxMTY1IDExQkU7CitDODE4O0M4MTg7MTEwQyAxMTY1IDExQkY7QzgxODsxMTBDIDExNjUgMTFCRjsKK0M4MTk7QzgxOTsxMTBDIDExNjUgMTFDMDtDODE5OzExMEMgMTE2NSAxMUMwOworQzgxQTtDODFBOzExMEMgMTE2NSAxMUMxO0M4MUE7MTEwQyAxMTY1IDExQzE7CitDODFCO0M4MUI7MTEwQyAxMTY1IDExQzI7QzgxQjsxMTBDIDExNjUgMTFDMjsKK0M4MUM7QzgxQzsxMTBDIDExNjY7QzgxQzsxMTBDIDExNjY7CitDODFEO0M4MUQ7MTEwQyAxMTY2IDExQTg7QzgxRDsxMTBDIDExNjYgMTFBODsKK0M4MUU7QzgxRTsxMTBDIDExNjYgMTFBOTtDODFFOzExMEMgMTE2NiAxMUE5OworQzgxRjtDODFGOzExMEMgMTE2NiAxMUFBO0M4MUY7MTEwQyAxMTY2IDExQUE7CitDODIwO0M4MjA7MTEwQyAxMTY2IDExQUI7QzgyMDsxMTBDIDExNjYgMTFBQjsKK0M4MjE7QzgyMTsxMTBDIDExNjYgMTFBQztDODIxOzExMEMgMTE2NiAxMUFDOworQzgyMjtDODIyOzExMEMgMTE2NiAxMUFEO0M4MjI7MTEwQyAxMTY2IDExQUQ7CitDODIzO0M4MjM7MTEwQyAxMTY2IDExQUU7QzgyMzsxMTBDIDExNjYgMTFBRTsKK0M4MjQ7QzgyNDsxMTBDIDExNjYgMTFBRjtDODI0OzExMEMgMTE2NiAxMUFGOworQzgyNTtDODI1OzExMEMgMTE2NiAxMUIwO0M4MjU7MTEwQyAxMTY2IDExQjA7CitDODI2O0M4MjY7MTEwQyAxMTY2IDExQjE7QzgyNjsxMTBDIDExNjYgMTFCMTsKK0M4Mjc7QzgyNzsxMTBDIDExNjYgMTFCMjtDODI3OzExMEMgMTE2NiAxMUIyOworQzgyODtDODI4OzExMEMgMTE2NiAxMUIzO0M4Mjg7MTEwQyAxMTY2IDExQjM7CitDODI5O0M4Mjk7MTEwQyAxMTY2IDExQjQ7QzgyOTsxMTBDIDExNjYgMTFCNDsKK0M4MkE7QzgyQTsxMTBDIDExNjYgMTFCNTtDODJBOzExMEMgMTE2NiAxMUI1OworQzgyQjtDODJCOzExMEMgMTE2NiAxMUI2O0M4MkI7MTEwQyAxMTY2IDExQjY7CitDODJDO0M4MkM7MTEwQyAxMTY2IDExQjc7QzgyQzsxMTBDIDExNjYgMTFCNzsKK0M4MkQ7QzgyRDsxMTBDIDExNjYgMTFCODtDODJEOzExMEMgMTE2NiAxMUI4OworQzgyRTtDODJFOzExMEMgMTE2NiAxMUI5O0M4MkU7MTEwQyAxMTY2IDExQjk7CitDODJGO0M4MkY7MTEwQyAxMTY2IDExQkE7QzgyRjsxMTBDIDExNjYgMTFCQTsKK0M4MzA7QzgzMDsxMTBDIDExNjYgMTFCQjtDODMwOzExMEMgMTE2NiAxMUJCOworQzgzMTtDODMxOzExMEMgMTE2NiAxMUJDO0M4MzE7MTEwQyAxMTY2IDExQkM7CitDODMyO0M4MzI7MTEwQyAxMTY2IDExQkQ7QzgzMjsxMTBDIDExNjYgMTFCRDsKK0M4MzM7QzgzMzsxMTBDIDExNjYgMTFCRTtDODMzOzExMEMgMTE2NiAxMUJFOworQzgzNDtDODM0OzExMEMgMTE2NiAxMUJGO0M4MzQ7MTEwQyAxMTY2IDExQkY7CitDODM1O0M4MzU7MTEwQyAxMTY2IDExQzA7QzgzNTsxMTBDIDExNjYgMTFDMDsKK0M4MzY7QzgzNjsxMTBDIDExNjYgMTFDMTtDODM2OzExMEMgMTE2NiAxMUMxOworQzgzNztDODM3OzExMEMgMTE2NiAxMUMyO0M4Mzc7MTEwQyAxMTY2IDExQzI7CitDODM4O0M4Mzg7MTEwQyAxMTY3O0M4Mzg7MTEwQyAxMTY3OworQzgzOTtDODM5OzExMEMgMTE2NyAxMUE4O0M4Mzk7MTEwQyAxMTY3IDExQTg7CitDODNBO0M4M0E7MTEwQyAxMTY3IDExQTk7QzgzQTsxMTBDIDExNjcgMTFBOTsKK0M4M0I7QzgzQjsxMTBDIDExNjcgMTFBQTtDODNCOzExMEMgMTE2NyAxMUFBOworQzgzQztDODNDOzExMEMgMTE2NyAxMUFCO0M4M0M7MTEwQyAxMTY3IDExQUI7CitDODNEO0M4M0Q7MTEwQyAxMTY3IDExQUM7QzgzRDsxMTBDIDExNjcgMTFBQzsKK0M4M0U7QzgzRTsxMTBDIDExNjcgMTFBRDtDODNFOzExMEMgMTE2NyAxMUFEOworQzgzRjtDODNGOzExMEMgMTE2NyAxMUFFO0M4M0Y7MTEwQyAxMTY3IDExQUU7CitDODQwO0M4NDA7MTEwQyAxMTY3IDExQUY7Qzg0MDsxMTBDIDExNjcgMTFBRjsKK0M4NDE7Qzg0MTsxMTBDIDExNjcgMTFCMDtDODQxOzExMEMgMTE2NyAxMUIwOworQzg0MjtDODQyOzExMEMgMTE2NyAxMUIxO0M4NDI7MTEwQyAxMTY3IDExQjE7CitDODQzO0M4NDM7MTEwQyAxMTY3IDExQjI7Qzg0MzsxMTBDIDExNjcgMTFCMjsKK0M4NDQ7Qzg0NDsxMTBDIDExNjcgMTFCMztDODQ0OzExMEMgMTE2NyAxMUIzOworQzg0NTtDODQ1OzExMEMgMTE2NyAxMUI0O0M4NDU7MTEwQyAxMTY3IDExQjQ7CitDODQ2O0M4NDY7MTEwQyAxMTY3IDExQjU7Qzg0NjsxMTBDIDExNjcgMTFCNTsKK0M4NDc7Qzg0NzsxMTBDIDExNjcgMTFCNjtDODQ3OzExMEMgMTE2NyAxMUI2OworQzg0ODtDODQ4OzExMEMgMTE2NyAxMUI3O0M4NDg7MTEwQyAxMTY3IDExQjc7CitDODQ5O0M4NDk7MTEwQyAxMTY3IDExQjg7Qzg0OTsxMTBDIDExNjcgMTFCODsKK0M4NEE7Qzg0QTsxMTBDIDExNjcgMTFCOTtDODRBOzExMEMgMTE2NyAxMUI5OworQzg0QjtDODRCOzExMEMgMTE2NyAxMUJBO0M4NEI7MTEwQyAxMTY3IDExQkE7CitDODRDO0M4NEM7MTEwQyAxMTY3IDExQkI7Qzg0QzsxMTBDIDExNjcgMTFCQjsKK0M4NEQ7Qzg0RDsxMTBDIDExNjcgMTFCQztDODREOzExMEMgMTE2NyAxMUJDOworQzg0RTtDODRFOzExMEMgMTE2NyAxMUJEO0M4NEU7MTEwQyAxMTY3IDExQkQ7CitDODRGO0M4NEY7MTEwQyAxMTY3IDExQkU7Qzg0RjsxMTBDIDExNjcgMTFCRTsKK0M4NTA7Qzg1MDsxMTBDIDExNjcgMTFCRjtDODUwOzExMEMgMTE2NyAxMUJGOworQzg1MTtDODUxOzExMEMgMTE2NyAxMUMwO0M4NTE7MTEwQyAxMTY3IDExQzA7CitDODUyO0M4NTI7MTEwQyAxMTY3IDExQzE7Qzg1MjsxMTBDIDExNjcgMTFDMTsKK0M4NTM7Qzg1MzsxMTBDIDExNjcgMTFDMjtDODUzOzExMEMgMTE2NyAxMUMyOworQzg1NDtDODU0OzExMEMgMTE2ODtDODU0OzExMEMgMTE2ODsKK0M4NTU7Qzg1NTsxMTBDIDExNjggMTFBODtDODU1OzExMEMgMTE2OCAxMUE4OworQzg1NjtDODU2OzExMEMgMTE2OCAxMUE5O0M4NTY7MTEwQyAxMTY4IDExQTk7CitDODU3O0M4NTc7MTEwQyAxMTY4IDExQUE7Qzg1NzsxMTBDIDExNjggMTFBQTsKK0M4NTg7Qzg1ODsxMTBDIDExNjggMTFBQjtDODU4OzExMEMgMTE2OCAxMUFCOworQzg1OTtDODU5OzExMEMgMTE2OCAxMUFDO0M4NTk7MTEwQyAxMTY4IDExQUM7CitDODVBO0M4NUE7MTEwQyAxMTY4IDExQUQ7Qzg1QTsxMTBDIDExNjggMTFBRDsKK0M4NUI7Qzg1QjsxMTBDIDExNjggMTFBRTtDODVCOzExMEMgMTE2OCAxMUFFOworQzg1QztDODVDOzExMEMgMTE2OCAxMUFGO0M4NUM7MTEwQyAxMTY4IDExQUY7CitDODVEO0M4NUQ7MTEwQyAxMTY4IDExQjA7Qzg1RDsxMTBDIDExNjggMTFCMDsKK0M4NUU7Qzg1RTsxMTBDIDExNjggMTFCMTtDODVFOzExMEMgMTE2OCAxMUIxOworQzg1RjtDODVGOzExMEMgMTE2OCAxMUIyO0M4NUY7MTEwQyAxMTY4IDExQjI7CitDODYwO0M4NjA7MTEwQyAxMTY4IDExQjM7Qzg2MDsxMTBDIDExNjggMTFCMzsKK0M4NjE7Qzg2MTsxMTBDIDExNjggMTFCNDtDODYxOzExMEMgMTE2OCAxMUI0OworQzg2MjtDODYyOzExMEMgMTE2OCAxMUI1O0M4NjI7MTEwQyAxMTY4IDExQjU7CitDODYzO0M4NjM7MTEwQyAxMTY4IDExQjY7Qzg2MzsxMTBDIDExNjggMTFCNjsKK0M4NjQ7Qzg2NDsxMTBDIDExNjggMTFCNztDODY0OzExMEMgMTE2OCAxMUI3OworQzg2NTtDODY1OzExMEMgMTE2OCAxMUI4O0M4NjU7MTEwQyAxMTY4IDExQjg7CitDODY2O0M4NjY7MTEwQyAxMTY4IDExQjk7Qzg2NjsxMTBDIDExNjggMTFCOTsKK0M4Njc7Qzg2NzsxMTBDIDExNjggMTFCQTtDODY3OzExMEMgMTE2OCAxMUJBOworQzg2ODtDODY4OzExMEMgMTE2OCAxMUJCO0M4Njg7MTEwQyAxMTY4IDExQkI7CitDODY5O0M4Njk7MTEwQyAxMTY4IDExQkM7Qzg2OTsxMTBDIDExNjggMTFCQzsKK0M4NkE7Qzg2QTsxMTBDIDExNjggMTFCRDtDODZBOzExMEMgMTE2OCAxMUJEOworQzg2QjtDODZCOzExMEMgMTE2OCAxMUJFO0M4NkI7MTEwQyAxMTY4IDExQkU7CitDODZDO0M4NkM7MTEwQyAxMTY4IDExQkY7Qzg2QzsxMTBDIDExNjggMTFCRjsKK0M4NkQ7Qzg2RDsxMTBDIDExNjggMTFDMDtDODZEOzExMEMgMTE2OCAxMUMwOworQzg2RTtDODZFOzExMEMgMTE2OCAxMUMxO0M4NkU7MTEwQyAxMTY4IDExQzE7CitDODZGO0M4NkY7MTEwQyAxMTY4IDExQzI7Qzg2RjsxMTBDIDExNjggMTFDMjsKK0M4NzA7Qzg3MDsxMTBDIDExNjk7Qzg3MDsxMTBDIDExNjk7CitDODcxO0M4NzE7MTEwQyAxMTY5IDExQTg7Qzg3MTsxMTBDIDExNjkgMTFBODsKK0M4NzI7Qzg3MjsxMTBDIDExNjkgMTFBOTtDODcyOzExMEMgMTE2OSAxMUE5OworQzg3MztDODczOzExMEMgMTE2OSAxMUFBO0M4NzM7MTEwQyAxMTY5IDExQUE7CitDODc0O0M4NzQ7MTEwQyAxMTY5IDExQUI7Qzg3NDsxMTBDIDExNjkgMTFBQjsKK0M4NzU7Qzg3NTsxMTBDIDExNjkgMTFBQztDODc1OzExMEMgMTE2OSAxMUFDOworQzg3NjtDODc2OzExMEMgMTE2OSAxMUFEO0M4NzY7MTEwQyAxMTY5IDExQUQ7CitDODc3O0M4Nzc7MTEwQyAxMTY5IDExQUU7Qzg3NzsxMTBDIDExNjkgMTFBRTsKK0M4Nzg7Qzg3ODsxMTBDIDExNjkgMTFBRjtDODc4OzExMEMgMTE2OSAxMUFGOworQzg3OTtDODc5OzExMEMgMTE2OSAxMUIwO0M4Nzk7MTEwQyAxMTY5IDExQjA7CitDODdBO0M4N0E7MTEwQyAxMTY5IDExQjE7Qzg3QTsxMTBDIDExNjkgMTFCMTsKK0M4N0I7Qzg3QjsxMTBDIDExNjkgMTFCMjtDODdCOzExMEMgMTE2OSAxMUIyOworQzg3QztDODdDOzExMEMgMTE2OSAxMUIzO0M4N0M7MTEwQyAxMTY5IDExQjM7CitDODdEO0M4N0Q7MTEwQyAxMTY5IDExQjQ7Qzg3RDsxMTBDIDExNjkgMTFCNDsKK0M4N0U7Qzg3RTsxMTBDIDExNjkgMTFCNTtDODdFOzExMEMgMTE2OSAxMUI1OworQzg3RjtDODdGOzExMEMgMTE2OSAxMUI2O0M4N0Y7MTEwQyAxMTY5IDExQjY7CitDODgwO0M4ODA7MTEwQyAxMTY5IDExQjc7Qzg4MDsxMTBDIDExNjkgMTFCNzsKK0M4ODE7Qzg4MTsxMTBDIDExNjkgMTFCODtDODgxOzExMEMgMTE2OSAxMUI4OworQzg4MjtDODgyOzExMEMgMTE2OSAxMUI5O0M4ODI7MTEwQyAxMTY5IDExQjk7CitDODgzO0M4ODM7MTEwQyAxMTY5IDExQkE7Qzg4MzsxMTBDIDExNjkgMTFCQTsKK0M4ODQ7Qzg4NDsxMTBDIDExNjkgMTFCQjtDODg0OzExMEMgMTE2OSAxMUJCOworQzg4NTtDODg1OzExMEMgMTE2OSAxMUJDO0M4ODU7MTEwQyAxMTY5IDExQkM7CitDODg2O0M4ODY7MTEwQyAxMTY5IDExQkQ7Qzg4NjsxMTBDIDExNjkgMTFCRDsKK0M4ODc7Qzg4NzsxMTBDIDExNjkgMTFCRTtDODg3OzExMEMgMTE2OSAxMUJFOworQzg4ODtDODg4OzExMEMgMTE2OSAxMUJGO0M4ODg7MTEwQyAxMTY5IDExQkY7CitDODg5O0M4ODk7MTEwQyAxMTY5IDExQzA7Qzg4OTsxMTBDIDExNjkgMTFDMDsKK0M4OEE7Qzg4QTsxMTBDIDExNjkgMTFDMTtDODhBOzExMEMgMTE2OSAxMUMxOworQzg4QjtDODhCOzExMEMgMTE2OSAxMUMyO0M4OEI7MTEwQyAxMTY5IDExQzI7CitDODhDO0M4OEM7MTEwQyAxMTZBO0M4OEM7MTEwQyAxMTZBOworQzg4RDtDODhEOzExMEMgMTE2QSAxMUE4O0M4OEQ7MTEwQyAxMTZBIDExQTg7CitDODhFO0M4OEU7MTEwQyAxMTZBIDExQTk7Qzg4RTsxMTBDIDExNkEgMTFBOTsKK0M4OEY7Qzg4RjsxMTBDIDExNkEgMTFBQTtDODhGOzExMEMgMTE2QSAxMUFBOworQzg5MDtDODkwOzExMEMgMTE2QSAxMUFCO0M4OTA7MTEwQyAxMTZBIDExQUI7CitDODkxO0M4OTE7MTEwQyAxMTZBIDExQUM7Qzg5MTsxMTBDIDExNkEgMTFBQzsKK0M4OTI7Qzg5MjsxMTBDIDExNkEgMTFBRDtDODkyOzExMEMgMTE2QSAxMUFEOworQzg5MztDODkzOzExMEMgMTE2QSAxMUFFO0M4OTM7MTEwQyAxMTZBIDExQUU7CitDODk0O0M4OTQ7MTEwQyAxMTZBIDExQUY7Qzg5NDsxMTBDIDExNkEgMTFBRjsKK0M4OTU7Qzg5NTsxMTBDIDExNkEgMTFCMDtDODk1OzExMEMgMTE2QSAxMUIwOworQzg5NjtDODk2OzExMEMgMTE2QSAxMUIxO0M4OTY7MTEwQyAxMTZBIDExQjE7CitDODk3O0M4OTc7MTEwQyAxMTZBIDExQjI7Qzg5NzsxMTBDIDExNkEgMTFCMjsKK0M4OTg7Qzg5ODsxMTBDIDExNkEgMTFCMztDODk4OzExMEMgMTE2QSAxMUIzOworQzg5OTtDODk5OzExMEMgMTE2QSAxMUI0O0M4OTk7MTEwQyAxMTZBIDExQjQ7CitDODlBO0M4OUE7MTEwQyAxMTZBIDExQjU7Qzg5QTsxMTBDIDExNkEgMTFCNTsKK0M4OUI7Qzg5QjsxMTBDIDExNkEgMTFCNjtDODlCOzExMEMgMTE2QSAxMUI2OworQzg5QztDODlDOzExMEMgMTE2QSAxMUI3O0M4OUM7MTEwQyAxMTZBIDExQjc7CitDODlEO0M4OUQ7MTEwQyAxMTZBIDExQjg7Qzg5RDsxMTBDIDExNkEgMTFCODsKK0M4OUU7Qzg5RTsxMTBDIDExNkEgMTFCOTtDODlFOzExMEMgMTE2QSAxMUI5OworQzg5RjtDODlGOzExMEMgMTE2QSAxMUJBO0M4OUY7MTEwQyAxMTZBIDExQkE7CitDOEEwO0M4QTA7MTEwQyAxMTZBIDExQkI7QzhBMDsxMTBDIDExNkEgMTFCQjsKK0M4QTE7QzhBMTsxMTBDIDExNkEgMTFCQztDOEExOzExMEMgMTE2QSAxMUJDOworQzhBMjtDOEEyOzExMEMgMTE2QSAxMUJEO0M4QTI7MTEwQyAxMTZBIDExQkQ7CitDOEEzO0M4QTM7MTEwQyAxMTZBIDExQkU7QzhBMzsxMTBDIDExNkEgMTFCRTsKK0M4QTQ7QzhBNDsxMTBDIDExNkEgMTFCRjtDOEE0OzExMEMgMTE2QSAxMUJGOworQzhBNTtDOEE1OzExMEMgMTE2QSAxMUMwO0M4QTU7MTEwQyAxMTZBIDExQzA7CitDOEE2O0M4QTY7MTEwQyAxMTZBIDExQzE7QzhBNjsxMTBDIDExNkEgMTFDMTsKK0M4QTc7QzhBNzsxMTBDIDExNkEgMTFDMjtDOEE3OzExMEMgMTE2QSAxMUMyOworQzhBODtDOEE4OzExMEMgMTE2QjtDOEE4OzExMEMgMTE2QjsKK0M4QTk7QzhBOTsxMTBDIDExNkIgMTFBODtDOEE5OzExMEMgMTE2QiAxMUE4OworQzhBQTtDOEFBOzExMEMgMTE2QiAxMUE5O0M4QUE7MTEwQyAxMTZCIDExQTk7CitDOEFCO0M4QUI7MTEwQyAxMTZCIDExQUE7QzhBQjsxMTBDIDExNkIgMTFBQTsKK0M4QUM7QzhBQzsxMTBDIDExNkIgMTFBQjtDOEFDOzExMEMgMTE2QiAxMUFCOworQzhBRDtDOEFEOzExMEMgMTE2QiAxMUFDO0M4QUQ7MTEwQyAxMTZCIDExQUM7CitDOEFFO0M4QUU7MTEwQyAxMTZCIDExQUQ7QzhBRTsxMTBDIDExNkIgMTFBRDsKK0M4QUY7QzhBRjsxMTBDIDExNkIgMTFBRTtDOEFGOzExMEMgMTE2QiAxMUFFOworQzhCMDtDOEIwOzExMEMgMTE2QiAxMUFGO0M4QjA7MTEwQyAxMTZCIDExQUY7CitDOEIxO0M4QjE7MTEwQyAxMTZCIDExQjA7QzhCMTsxMTBDIDExNkIgMTFCMDsKK0M4QjI7QzhCMjsxMTBDIDExNkIgMTFCMTtDOEIyOzExMEMgMTE2QiAxMUIxOworQzhCMztDOEIzOzExMEMgMTE2QiAxMUIyO0M4QjM7MTEwQyAxMTZCIDExQjI7CitDOEI0O0M4QjQ7MTEwQyAxMTZCIDExQjM7QzhCNDsxMTBDIDExNkIgMTFCMzsKK0M4QjU7QzhCNTsxMTBDIDExNkIgMTFCNDtDOEI1OzExMEMgMTE2QiAxMUI0OworQzhCNjtDOEI2OzExMEMgMTE2QiAxMUI1O0M4QjY7MTEwQyAxMTZCIDExQjU7CitDOEI3O0M4Qjc7MTEwQyAxMTZCIDExQjY7QzhCNzsxMTBDIDExNkIgMTFCNjsKK0M4Qjg7QzhCODsxMTBDIDExNkIgMTFCNztDOEI4OzExMEMgMTE2QiAxMUI3OworQzhCOTtDOEI5OzExMEMgMTE2QiAxMUI4O0M4Qjk7MTEwQyAxMTZCIDExQjg7CitDOEJBO0M4QkE7MTEwQyAxMTZCIDExQjk7QzhCQTsxMTBDIDExNkIgMTFCOTsKK0M4QkI7QzhCQjsxMTBDIDExNkIgMTFCQTtDOEJCOzExMEMgMTE2QiAxMUJBOworQzhCQztDOEJDOzExMEMgMTE2QiAxMUJCO0M4QkM7MTEwQyAxMTZCIDExQkI7CitDOEJEO0M4QkQ7MTEwQyAxMTZCIDExQkM7QzhCRDsxMTBDIDExNkIgMTFCQzsKK0M4QkU7QzhCRTsxMTBDIDExNkIgMTFCRDtDOEJFOzExMEMgMTE2QiAxMUJEOworQzhCRjtDOEJGOzExMEMgMTE2QiAxMUJFO0M4QkY7MTEwQyAxMTZCIDExQkU7CitDOEMwO0M4QzA7MTEwQyAxMTZCIDExQkY7QzhDMDsxMTBDIDExNkIgMTFCRjsKK0M4QzE7QzhDMTsxMTBDIDExNkIgMTFDMDtDOEMxOzExMEMgMTE2QiAxMUMwOworQzhDMjtDOEMyOzExMEMgMTE2QiAxMUMxO0M4QzI7MTEwQyAxMTZCIDExQzE7CitDOEMzO0M4QzM7MTEwQyAxMTZCIDExQzI7QzhDMzsxMTBDIDExNkIgMTFDMjsKK0M4QzQ7QzhDNDsxMTBDIDExNkM7QzhDNDsxMTBDIDExNkM7CitDOEM1O0M4QzU7MTEwQyAxMTZDIDExQTg7QzhDNTsxMTBDIDExNkMgMTFBODsKK0M4QzY7QzhDNjsxMTBDIDExNkMgMTFBOTtDOEM2OzExMEMgMTE2QyAxMUE5OworQzhDNztDOEM3OzExMEMgMTE2QyAxMUFBO0M4Qzc7MTEwQyAxMTZDIDExQUE7CitDOEM4O0M4Qzg7MTEwQyAxMTZDIDExQUI7QzhDODsxMTBDIDExNkMgMTFBQjsKK0M4Qzk7QzhDOTsxMTBDIDExNkMgMTFBQztDOEM5OzExMEMgMTE2QyAxMUFDOworQzhDQTtDOENBOzExMEMgMTE2QyAxMUFEO0M4Q0E7MTEwQyAxMTZDIDExQUQ7CitDOENCO0M4Q0I7MTEwQyAxMTZDIDExQUU7QzhDQjsxMTBDIDExNkMgMTFBRTsKK0M4Q0M7QzhDQzsxMTBDIDExNkMgMTFBRjtDOENDOzExMEMgMTE2QyAxMUFGOworQzhDRDtDOENEOzExMEMgMTE2QyAxMUIwO0M4Q0Q7MTEwQyAxMTZDIDExQjA7CitDOENFO0M4Q0U7MTEwQyAxMTZDIDExQjE7QzhDRTsxMTBDIDExNkMgMTFCMTsKK0M4Q0Y7QzhDRjsxMTBDIDExNkMgMTFCMjtDOENGOzExMEMgMTE2QyAxMUIyOworQzhEMDtDOEQwOzExMEMgMTE2QyAxMUIzO0M4RDA7MTEwQyAxMTZDIDExQjM7CitDOEQxO0M4RDE7MTEwQyAxMTZDIDExQjQ7QzhEMTsxMTBDIDExNkMgMTFCNDsKK0M4RDI7QzhEMjsxMTBDIDExNkMgMTFCNTtDOEQyOzExMEMgMTE2QyAxMUI1OworQzhEMztDOEQzOzExMEMgMTE2QyAxMUI2O0M4RDM7MTEwQyAxMTZDIDExQjY7CitDOEQ0O0M4RDQ7MTEwQyAxMTZDIDExQjc7QzhENDsxMTBDIDExNkMgMTFCNzsKK0M4RDU7QzhENTsxMTBDIDExNkMgMTFCODtDOEQ1OzExMEMgMTE2QyAxMUI4OworQzhENjtDOEQ2OzExMEMgMTE2QyAxMUI5O0M4RDY7MTEwQyAxMTZDIDExQjk7CitDOEQ3O0M4RDc7MTEwQyAxMTZDIDExQkE7QzhENzsxMTBDIDExNkMgMTFCQTsKK0M4RDg7QzhEODsxMTBDIDExNkMgMTFCQjtDOEQ4OzExMEMgMTE2QyAxMUJCOworQzhEOTtDOEQ5OzExMEMgMTE2QyAxMUJDO0M4RDk7MTEwQyAxMTZDIDExQkM7CitDOERBO0M4REE7MTEwQyAxMTZDIDExQkQ7QzhEQTsxMTBDIDExNkMgMTFCRDsKK0M4REI7QzhEQjsxMTBDIDExNkMgMTFCRTtDOERCOzExMEMgMTE2QyAxMUJFOworQzhEQztDOERDOzExMEMgMTE2QyAxMUJGO0M4REM7MTEwQyAxMTZDIDExQkY7CitDOEREO0M4REQ7MTEwQyAxMTZDIDExQzA7QzhERDsxMTBDIDExNkMgMTFDMDsKK0M4REU7QzhERTsxMTBDIDExNkMgMTFDMTtDOERFOzExMEMgMTE2QyAxMUMxOworQzhERjtDOERGOzExMEMgMTE2QyAxMUMyO0M4REY7MTEwQyAxMTZDIDExQzI7CitDOEUwO0M4RTA7MTEwQyAxMTZEO0M4RTA7MTEwQyAxMTZEOworQzhFMTtDOEUxOzExMEMgMTE2RCAxMUE4O0M4RTE7MTEwQyAxMTZEIDExQTg7CitDOEUyO0M4RTI7MTEwQyAxMTZEIDExQTk7QzhFMjsxMTBDIDExNkQgMTFBOTsKK0M4RTM7QzhFMzsxMTBDIDExNkQgMTFBQTtDOEUzOzExMEMgMTE2RCAxMUFBOworQzhFNDtDOEU0OzExMEMgMTE2RCAxMUFCO0M4RTQ7MTEwQyAxMTZEIDExQUI7CitDOEU1O0M4RTU7MTEwQyAxMTZEIDExQUM7QzhFNTsxMTBDIDExNkQgMTFBQzsKK0M4RTY7QzhFNjsxMTBDIDExNkQgMTFBRDtDOEU2OzExMEMgMTE2RCAxMUFEOworQzhFNztDOEU3OzExMEMgMTE2RCAxMUFFO0M4RTc7MTEwQyAxMTZEIDExQUU7CitDOEU4O0M4RTg7MTEwQyAxMTZEIDExQUY7QzhFODsxMTBDIDExNkQgMTFBRjsKK0M4RTk7QzhFOTsxMTBDIDExNkQgMTFCMDtDOEU5OzExMEMgMTE2RCAxMUIwOworQzhFQTtDOEVBOzExMEMgMTE2RCAxMUIxO0M4RUE7MTEwQyAxMTZEIDExQjE7CitDOEVCO0M4RUI7MTEwQyAxMTZEIDExQjI7QzhFQjsxMTBDIDExNkQgMTFCMjsKK0M4RUM7QzhFQzsxMTBDIDExNkQgMTFCMztDOEVDOzExMEMgMTE2RCAxMUIzOworQzhFRDtDOEVEOzExMEMgMTE2RCAxMUI0O0M4RUQ7MTEwQyAxMTZEIDExQjQ7CitDOEVFO0M4RUU7MTEwQyAxMTZEIDExQjU7QzhFRTsxMTBDIDExNkQgMTFCNTsKK0M4RUY7QzhFRjsxMTBDIDExNkQgMTFCNjtDOEVGOzExMEMgMTE2RCAxMUI2OworQzhGMDtDOEYwOzExMEMgMTE2RCAxMUI3O0M4RjA7MTEwQyAxMTZEIDExQjc7CitDOEYxO0M4RjE7MTEwQyAxMTZEIDExQjg7QzhGMTsxMTBDIDExNkQgMTFCODsKK0M4RjI7QzhGMjsxMTBDIDExNkQgMTFCOTtDOEYyOzExMEMgMTE2RCAxMUI5OworQzhGMztDOEYzOzExMEMgMTE2RCAxMUJBO0M4RjM7MTEwQyAxMTZEIDExQkE7CitDOEY0O0M4RjQ7MTEwQyAxMTZEIDExQkI7QzhGNDsxMTBDIDExNkQgMTFCQjsKK0M4RjU7QzhGNTsxMTBDIDExNkQgMTFCQztDOEY1OzExMEMgMTE2RCAxMUJDOworQzhGNjtDOEY2OzExMEMgMTE2RCAxMUJEO0M4RjY7MTEwQyAxMTZEIDExQkQ7CitDOEY3O0M4Rjc7MTEwQyAxMTZEIDExQkU7QzhGNzsxMTBDIDExNkQgMTFCRTsKK0M4Rjg7QzhGODsxMTBDIDExNkQgMTFCRjtDOEY4OzExMEMgMTE2RCAxMUJGOworQzhGOTtDOEY5OzExMEMgMTE2RCAxMUMwO0M4Rjk7MTEwQyAxMTZEIDExQzA7CitDOEZBO0M4RkE7MTEwQyAxMTZEIDExQzE7QzhGQTsxMTBDIDExNkQgMTFDMTsKK0M4RkI7QzhGQjsxMTBDIDExNkQgMTFDMjtDOEZCOzExMEMgMTE2RCAxMUMyOworQzhGQztDOEZDOzExMEMgMTE2RTtDOEZDOzExMEMgMTE2RTsKK0M4RkQ7QzhGRDsxMTBDIDExNkUgMTFBODtDOEZEOzExMEMgMTE2RSAxMUE4OworQzhGRTtDOEZFOzExMEMgMTE2RSAxMUE5O0M4RkU7MTEwQyAxMTZFIDExQTk7CitDOEZGO0M4RkY7MTEwQyAxMTZFIDExQUE7QzhGRjsxMTBDIDExNkUgMTFBQTsKK0M5MDA7QzkwMDsxMTBDIDExNkUgMTFBQjtDOTAwOzExMEMgMTE2RSAxMUFCOworQzkwMTtDOTAxOzExMEMgMTE2RSAxMUFDO0M5MDE7MTEwQyAxMTZFIDExQUM7CitDOTAyO0M5MDI7MTEwQyAxMTZFIDExQUQ7QzkwMjsxMTBDIDExNkUgMTFBRDsKK0M5MDM7QzkwMzsxMTBDIDExNkUgMTFBRTtDOTAzOzExMEMgMTE2RSAxMUFFOworQzkwNDtDOTA0OzExMEMgMTE2RSAxMUFGO0M5MDQ7MTEwQyAxMTZFIDExQUY7CitDOTA1O0M5MDU7MTEwQyAxMTZFIDExQjA7QzkwNTsxMTBDIDExNkUgMTFCMDsKK0M5MDY7QzkwNjsxMTBDIDExNkUgMTFCMTtDOTA2OzExMEMgMTE2RSAxMUIxOworQzkwNztDOTA3OzExMEMgMTE2RSAxMUIyO0M5MDc7MTEwQyAxMTZFIDExQjI7CitDOTA4O0M5MDg7MTEwQyAxMTZFIDExQjM7QzkwODsxMTBDIDExNkUgMTFCMzsKK0M5MDk7QzkwOTsxMTBDIDExNkUgMTFCNDtDOTA5OzExMEMgMTE2RSAxMUI0OworQzkwQTtDOTBBOzExMEMgMTE2RSAxMUI1O0M5MEE7MTEwQyAxMTZFIDExQjU7CitDOTBCO0M5MEI7MTEwQyAxMTZFIDExQjY7QzkwQjsxMTBDIDExNkUgMTFCNjsKK0M5MEM7QzkwQzsxMTBDIDExNkUgMTFCNztDOTBDOzExMEMgMTE2RSAxMUI3OworQzkwRDtDOTBEOzExMEMgMTE2RSAxMUI4O0M5MEQ7MTEwQyAxMTZFIDExQjg7CitDOTBFO0M5MEU7MTEwQyAxMTZFIDExQjk7QzkwRTsxMTBDIDExNkUgMTFCOTsKK0M5MEY7QzkwRjsxMTBDIDExNkUgMTFCQTtDOTBGOzExMEMgMTE2RSAxMUJBOworQzkxMDtDOTEwOzExMEMgMTE2RSAxMUJCO0M5MTA7MTEwQyAxMTZFIDExQkI7CitDOTExO0M5MTE7MTEwQyAxMTZFIDExQkM7QzkxMTsxMTBDIDExNkUgMTFCQzsKK0M5MTI7QzkxMjsxMTBDIDExNkUgMTFCRDtDOTEyOzExMEMgMTE2RSAxMUJEOworQzkxMztDOTEzOzExMEMgMTE2RSAxMUJFO0M5MTM7MTEwQyAxMTZFIDExQkU7CitDOTE0O0M5MTQ7MTEwQyAxMTZFIDExQkY7QzkxNDsxMTBDIDExNkUgMTFCRjsKK0M5MTU7QzkxNTsxMTBDIDExNkUgMTFDMDtDOTE1OzExMEMgMTE2RSAxMUMwOworQzkxNjtDOTE2OzExMEMgMTE2RSAxMUMxO0M5MTY7MTEwQyAxMTZFIDExQzE7CitDOTE3O0M5MTc7MTEwQyAxMTZFIDExQzI7QzkxNzsxMTBDIDExNkUgMTFDMjsKK0M5MTg7QzkxODsxMTBDIDExNkY7QzkxODsxMTBDIDExNkY7CitDOTE5O0M5MTk7MTEwQyAxMTZGIDExQTg7QzkxOTsxMTBDIDExNkYgMTFBODsKK0M5MUE7QzkxQTsxMTBDIDExNkYgMTFBOTtDOTFBOzExMEMgMTE2RiAxMUE5OworQzkxQjtDOTFCOzExMEMgMTE2RiAxMUFBO0M5MUI7MTEwQyAxMTZGIDExQUE7CitDOTFDO0M5MUM7MTEwQyAxMTZGIDExQUI7QzkxQzsxMTBDIDExNkYgMTFBQjsKK0M5MUQ7QzkxRDsxMTBDIDExNkYgMTFBQztDOTFEOzExMEMgMTE2RiAxMUFDOworQzkxRTtDOTFFOzExMEMgMTE2RiAxMUFEO0M5MUU7MTEwQyAxMTZGIDExQUQ7CitDOTFGO0M5MUY7MTEwQyAxMTZGIDExQUU7QzkxRjsxMTBDIDExNkYgMTFBRTsKK0M5MjA7QzkyMDsxMTBDIDExNkYgMTFBRjtDOTIwOzExMEMgMTE2RiAxMUFGOworQzkyMTtDOTIxOzExMEMgMTE2RiAxMUIwO0M5MjE7MTEwQyAxMTZGIDExQjA7CitDOTIyO0M5MjI7MTEwQyAxMTZGIDExQjE7QzkyMjsxMTBDIDExNkYgMTFCMTsKK0M5MjM7QzkyMzsxMTBDIDExNkYgMTFCMjtDOTIzOzExMEMgMTE2RiAxMUIyOworQzkyNDtDOTI0OzExMEMgMTE2RiAxMUIzO0M5MjQ7MTEwQyAxMTZGIDExQjM7CitDOTI1O0M5MjU7MTEwQyAxMTZGIDExQjQ7QzkyNTsxMTBDIDExNkYgMTFCNDsKK0M5MjY7QzkyNjsxMTBDIDExNkYgMTFCNTtDOTI2OzExMEMgMTE2RiAxMUI1OworQzkyNztDOTI3OzExMEMgMTE2RiAxMUI2O0M5Mjc7MTEwQyAxMTZGIDExQjY7CitDOTI4O0M5Mjg7MTEwQyAxMTZGIDExQjc7QzkyODsxMTBDIDExNkYgMTFCNzsKK0M5Mjk7QzkyOTsxMTBDIDExNkYgMTFCODtDOTI5OzExMEMgMTE2RiAxMUI4OworQzkyQTtDOTJBOzExMEMgMTE2RiAxMUI5O0M5MkE7MTEwQyAxMTZGIDExQjk7CitDOTJCO0M5MkI7MTEwQyAxMTZGIDExQkE7QzkyQjsxMTBDIDExNkYgMTFCQTsKK0M5MkM7QzkyQzsxMTBDIDExNkYgMTFCQjtDOTJDOzExMEMgMTE2RiAxMUJCOworQzkyRDtDOTJEOzExMEMgMTE2RiAxMUJDO0M5MkQ7MTEwQyAxMTZGIDExQkM7CitDOTJFO0M5MkU7MTEwQyAxMTZGIDExQkQ7QzkyRTsxMTBDIDExNkYgMTFCRDsKK0M5MkY7QzkyRjsxMTBDIDExNkYgMTFCRTtDOTJGOzExMEMgMTE2RiAxMUJFOworQzkzMDtDOTMwOzExMEMgMTE2RiAxMUJGO0M5MzA7MTEwQyAxMTZGIDExQkY7CitDOTMxO0M5MzE7MTEwQyAxMTZGIDExQzA7QzkzMTsxMTBDIDExNkYgMTFDMDsKK0M5MzI7QzkzMjsxMTBDIDExNkYgMTFDMTtDOTMyOzExMEMgMTE2RiAxMUMxOworQzkzMztDOTMzOzExMEMgMTE2RiAxMUMyO0M5MzM7MTEwQyAxMTZGIDExQzI7CitDOTM0O0M5MzQ7MTEwQyAxMTcwO0M5MzQ7MTEwQyAxMTcwOworQzkzNTtDOTM1OzExMEMgMTE3MCAxMUE4O0M5MzU7MTEwQyAxMTcwIDExQTg7CitDOTM2O0M5MzY7MTEwQyAxMTcwIDExQTk7QzkzNjsxMTBDIDExNzAgMTFBOTsKK0M5Mzc7QzkzNzsxMTBDIDExNzAgMTFBQTtDOTM3OzExMEMgMTE3MCAxMUFBOworQzkzODtDOTM4OzExMEMgMTE3MCAxMUFCO0M5Mzg7MTEwQyAxMTcwIDExQUI7CitDOTM5O0M5Mzk7MTEwQyAxMTcwIDExQUM7QzkzOTsxMTBDIDExNzAgMTFBQzsKK0M5M0E7QzkzQTsxMTBDIDExNzAgMTFBRDtDOTNBOzExMEMgMTE3MCAxMUFEOworQzkzQjtDOTNCOzExMEMgMTE3MCAxMUFFO0M5M0I7MTEwQyAxMTcwIDExQUU7CitDOTNDO0M5M0M7MTEwQyAxMTcwIDExQUY7QzkzQzsxMTBDIDExNzAgMTFBRjsKK0M5M0Q7QzkzRDsxMTBDIDExNzAgMTFCMDtDOTNEOzExMEMgMTE3MCAxMUIwOworQzkzRTtDOTNFOzExMEMgMTE3MCAxMUIxO0M5M0U7MTEwQyAxMTcwIDExQjE7CitDOTNGO0M5M0Y7MTEwQyAxMTcwIDExQjI7QzkzRjsxMTBDIDExNzAgMTFCMjsKK0M5NDA7Qzk0MDsxMTBDIDExNzAgMTFCMztDOTQwOzExMEMgMTE3MCAxMUIzOworQzk0MTtDOTQxOzExMEMgMTE3MCAxMUI0O0M5NDE7MTEwQyAxMTcwIDExQjQ7CitDOTQyO0M5NDI7MTEwQyAxMTcwIDExQjU7Qzk0MjsxMTBDIDExNzAgMTFCNTsKK0M5NDM7Qzk0MzsxMTBDIDExNzAgMTFCNjtDOTQzOzExMEMgMTE3MCAxMUI2OworQzk0NDtDOTQ0OzExMEMgMTE3MCAxMUI3O0M5NDQ7MTEwQyAxMTcwIDExQjc7CitDOTQ1O0M5NDU7MTEwQyAxMTcwIDExQjg7Qzk0NTsxMTBDIDExNzAgMTFCODsKK0M5NDY7Qzk0NjsxMTBDIDExNzAgMTFCOTtDOTQ2OzExMEMgMTE3MCAxMUI5OworQzk0NztDOTQ3OzExMEMgMTE3MCAxMUJBO0M5NDc7MTEwQyAxMTcwIDExQkE7CitDOTQ4O0M5NDg7MTEwQyAxMTcwIDExQkI7Qzk0ODsxMTBDIDExNzAgMTFCQjsKK0M5NDk7Qzk0OTsxMTBDIDExNzAgMTFCQztDOTQ5OzExMEMgMTE3MCAxMUJDOworQzk0QTtDOTRBOzExMEMgMTE3MCAxMUJEO0M5NEE7MTEwQyAxMTcwIDExQkQ7CitDOTRCO0M5NEI7MTEwQyAxMTcwIDExQkU7Qzk0QjsxMTBDIDExNzAgMTFCRTsKK0M5NEM7Qzk0QzsxMTBDIDExNzAgMTFCRjtDOTRDOzExMEMgMTE3MCAxMUJGOworQzk0RDtDOTREOzExMEMgMTE3MCAxMUMwO0M5NEQ7MTEwQyAxMTcwIDExQzA7CitDOTRFO0M5NEU7MTEwQyAxMTcwIDExQzE7Qzk0RTsxMTBDIDExNzAgMTFDMTsKK0M5NEY7Qzk0RjsxMTBDIDExNzAgMTFDMjtDOTRGOzExMEMgMTE3MCAxMUMyOworQzk1MDtDOTUwOzExMEMgMTE3MTtDOTUwOzExMEMgMTE3MTsKK0M5NTE7Qzk1MTsxMTBDIDExNzEgMTFBODtDOTUxOzExMEMgMTE3MSAxMUE4OworQzk1MjtDOTUyOzExMEMgMTE3MSAxMUE5O0M5NTI7MTEwQyAxMTcxIDExQTk7CitDOTUzO0M5NTM7MTEwQyAxMTcxIDExQUE7Qzk1MzsxMTBDIDExNzEgMTFBQTsKK0M5NTQ7Qzk1NDsxMTBDIDExNzEgMTFBQjtDOTU0OzExMEMgMTE3MSAxMUFCOworQzk1NTtDOTU1OzExMEMgMTE3MSAxMUFDO0M5NTU7MTEwQyAxMTcxIDExQUM7CitDOTU2O0M5NTY7MTEwQyAxMTcxIDExQUQ7Qzk1NjsxMTBDIDExNzEgMTFBRDsKK0M5NTc7Qzk1NzsxMTBDIDExNzEgMTFBRTtDOTU3OzExMEMgMTE3MSAxMUFFOworQzk1ODtDOTU4OzExMEMgMTE3MSAxMUFGO0M5NTg7MTEwQyAxMTcxIDExQUY7CitDOTU5O0M5NTk7MTEwQyAxMTcxIDExQjA7Qzk1OTsxMTBDIDExNzEgMTFCMDsKK0M5NUE7Qzk1QTsxMTBDIDExNzEgMTFCMTtDOTVBOzExMEMgMTE3MSAxMUIxOworQzk1QjtDOTVCOzExMEMgMTE3MSAxMUIyO0M5NUI7MTEwQyAxMTcxIDExQjI7CitDOTVDO0M5NUM7MTEwQyAxMTcxIDExQjM7Qzk1QzsxMTBDIDExNzEgMTFCMzsKK0M5NUQ7Qzk1RDsxMTBDIDExNzEgMTFCNDtDOTVEOzExMEMgMTE3MSAxMUI0OworQzk1RTtDOTVFOzExMEMgMTE3MSAxMUI1O0M5NUU7MTEwQyAxMTcxIDExQjU7CitDOTVGO0M5NUY7MTEwQyAxMTcxIDExQjY7Qzk1RjsxMTBDIDExNzEgMTFCNjsKK0M5NjA7Qzk2MDsxMTBDIDExNzEgMTFCNztDOTYwOzExMEMgMTE3MSAxMUI3OworQzk2MTtDOTYxOzExMEMgMTE3MSAxMUI4O0M5NjE7MTEwQyAxMTcxIDExQjg7CitDOTYyO0M5NjI7MTEwQyAxMTcxIDExQjk7Qzk2MjsxMTBDIDExNzEgMTFCOTsKK0M5NjM7Qzk2MzsxMTBDIDExNzEgMTFCQTtDOTYzOzExMEMgMTE3MSAxMUJBOworQzk2NDtDOTY0OzExMEMgMTE3MSAxMUJCO0M5NjQ7MTEwQyAxMTcxIDExQkI7CitDOTY1O0M5NjU7MTEwQyAxMTcxIDExQkM7Qzk2NTsxMTBDIDExNzEgMTFCQzsKK0M5NjY7Qzk2NjsxMTBDIDExNzEgMTFCRDtDOTY2OzExMEMgMTE3MSAxMUJEOworQzk2NztDOTY3OzExMEMgMTE3MSAxMUJFO0M5Njc7MTEwQyAxMTcxIDExQkU7CitDOTY4O0M5Njg7MTEwQyAxMTcxIDExQkY7Qzk2ODsxMTBDIDExNzEgMTFCRjsKK0M5Njk7Qzk2OTsxMTBDIDExNzEgMTFDMDtDOTY5OzExMEMgMTE3MSAxMUMwOworQzk2QTtDOTZBOzExMEMgMTE3MSAxMUMxO0M5NkE7MTEwQyAxMTcxIDExQzE7CitDOTZCO0M5NkI7MTEwQyAxMTcxIDExQzI7Qzk2QjsxMTBDIDExNzEgMTFDMjsKK0M5NkM7Qzk2QzsxMTBDIDExNzI7Qzk2QzsxMTBDIDExNzI7CitDOTZEO0M5NkQ7MTEwQyAxMTcyIDExQTg7Qzk2RDsxMTBDIDExNzIgMTFBODsKK0M5NkU7Qzk2RTsxMTBDIDExNzIgMTFBOTtDOTZFOzExMEMgMTE3MiAxMUE5OworQzk2RjtDOTZGOzExMEMgMTE3MiAxMUFBO0M5NkY7MTEwQyAxMTcyIDExQUE7CitDOTcwO0M5NzA7MTEwQyAxMTcyIDExQUI7Qzk3MDsxMTBDIDExNzIgMTFBQjsKK0M5NzE7Qzk3MTsxMTBDIDExNzIgMTFBQztDOTcxOzExMEMgMTE3MiAxMUFDOworQzk3MjtDOTcyOzExMEMgMTE3MiAxMUFEO0M5NzI7MTEwQyAxMTcyIDExQUQ7CitDOTczO0M5NzM7MTEwQyAxMTcyIDExQUU7Qzk3MzsxMTBDIDExNzIgMTFBRTsKK0M5NzQ7Qzk3NDsxMTBDIDExNzIgMTFBRjtDOTc0OzExMEMgMTE3MiAxMUFGOworQzk3NTtDOTc1OzExMEMgMTE3MiAxMUIwO0M5NzU7MTEwQyAxMTcyIDExQjA7CitDOTc2O0M5NzY7MTEwQyAxMTcyIDExQjE7Qzk3NjsxMTBDIDExNzIgMTFCMTsKK0M5Nzc7Qzk3NzsxMTBDIDExNzIgMTFCMjtDOTc3OzExMEMgMTE3MiAxMUIyOworQzk3ODtDOTc4OzExMEMgMTE3MiAxMUIzO0M5Nzg7MTEwQyAxMTcyIDExQjM7CitDOTc5O0M5Nzk7MTEwQyAxMTcyIDExQjQ7Qzk3OTsxMTBDIDExNzIgMTFCNDsKK0M5N0E7Qzk3QTsxMTBDIDExNzIgMTFCNTtDOTdBOzExMEMgMTE3MiAxMUI1OworQzk3QjtDOTdCOzExMEMgMTE3MiAxMUI2O0M5N0I7MTEwQyAxMTcyIDExQjY7CitDOTdDO0M5N0M7MTEwQyAxMTcyIDExQjc7Qzk3QzsxMTBDIDExNzIgMTFCNzsKK0M5N0Q7Qzk3RDsxMTBDIDExNzIgMTFCODtDOTdEOzExMEMgMTE3MiAxMUI4OworQzk3RTtDOTdFOzExMEMgMTE3MiAxMUI5O0M5N0U7MTEwQyAxMTcyIDExQjk7CitDOTdGO0M5N0Y7MTEwQyAxMTcyIDExQkE7Qzk3RjsxMTBDIDExNzIgMTFCQTsKK0M5ODA7Qzk4MDsxMTBDIDExNzIgMTFCQjtDOTgwOzExMEMgMTE3MiAxMUJCOworQzk4MTtDOTgxOzExMEMgMTE3MiAxMUJDO0M5ODE7MTEwQyAxMTcyIDExQkM7CitDOTgyO0M5ODI7MTEwQyAxMTcyIDExQkQ7Qzk4MjsxMTBDIDExNzIgMTFCRDsKK0M5ODM7Qzk4MzsxMTBDIDExNzIgMTFCRTtDOTgzOzExMEMgMTE3MiAxMUJFOworQzk4NDtDOTg0OzExMEMgMTE3MiAxMUJGO0M5ODQ7MTEwQyAxMTcyIDExQkY7CitDOTg1O0M5ODU7MTEwQyAxMTcyIDExQzA7Qzk4NTsxMTBDIDExNzIgMTFDMDsKK0M5ODY7Qzk4NjsxMTBDIDExNzIgMTFDMTtDOTg2OzExMEMgMTE3MiAxMUMxOworQzk4NztDOTg3OzExMEMgMTE3MiAxMUMyO0M5ODc7MTEwQyAxMTcyIDExQzI7CitDOTg4O0M5ODg7MTEwQyAxMTczO0M5ODg7MTEwQyAxMTczOworQzk4OTtDOTg5OzExMEMgMTE3MyAxMUE4O0M5ODk7MTEwQyAxMTczIDExQTg7CitDOThBO0M5OEE7MTEwQyAxMTczIDExQTk7Qzk4QTsxMTBDIDExNzMgMTFBOTsKK0M5OEI7Qzk4QjsxMTBDIDExNzMgMTFBQTtDOThCOzExMEMgMTE3MyAxMUFBOworQzk4QztDOThDOzExMEMgMTE3MyAxMUFCO0M5OEM7MTEwQyAxMTczIDExQUI7CitDOThEO0M5OEQ7MTEwQyAxMTczIDExQUM7Qzk4RDsxMTBDIDExNzMgMTFBQzsKK0M5OEU7Qzk4RTsxMTBDIDExNzMgMTFBRDtDOThFOzExMEMgMTE3MyAxMUFEOworQzk4RjtDOThGOzExMEMgMTE3MyAxMUFFO0M5OEY7MTEwQyAxMTczIDExQUU7CitDOTkwO0M5OTA7MTEwQyAxMTczIDExQUY7Qzk5MDsxMTBDIDExNzMgMTFBRjsKK0M5OTE7Qzk5MTsxMTBDIDExNzMgMTFCMDtDOTkxOzExMEMgMTE3MyAxMUIwOworQzk5MjtDOTkyOzExMEMgMTE3MyAxMUIxO0M5OTI7MTEwQyAxMTczIDExQjE7CitDOTkzO0M5OTM7MTEwQyAxMTczIDExQjI7Qzk5MzsxMTBDIDExNzMgMTFCMjsKK0M5OTQ7Qzk5NDsxMTBDIDExNzMgMTFCMztDOTk0OzExMEMgMTE3MyAxMUIzOworQzk5NTtDOTk1OzExMEMgMTE3MyAxMUI0O0M5OTU7MTEwQyAxMTczIDExQjQ7CitDOTk2O0M5OTY7MTEwQyAxMTczIDExQjU7Qzk5NjsxMTBDIDExNzMgMTFCNTsKK0M5OTc7Qzk5NzsxMTBDIDExNzMgMTFCNjtDOTk3OzExMEMgMTE3MyAxMUI2OworQzk5ODtDOTk4OzExMEMgMTE3MyAxMUI3O0M5OTg7MTEwQyAxMTczIDExQjc7CitDOTk5O0M5OTk7MTEwQyAxMTczIDExQjg7Qzk5OTsxMTBDIDExNzMgMTFCODsKK0M5OUE7Qzk5QTsxMTBDIDExNzMgMTFCOTtDOTlBOzExMEMgMTE3MyAxMUI5OworQzk5QjtDOTlCOzExMEMgMTE3MyAxMUJBO0M5OUI7MTEwQyAxMTczIDExQkE7CitDOTlDO0M5OUM7MTEwQyAxMTczIDExQkI7Qzk5QzsxMTBDIDExNzMgMTFCQjsKK0M5OUQ7Qzk5RDsxMTBDIDExNzMgMTFCQztDOTlEOzExMEMgMTE3MyAxMUJDOworQzk5RTtDOTlFOzExMEMgMTE3MyAxMUJEO0M5OUU7MTEwQyAxMTczIDExQkQ7CitDOTlGO0M5OUY7MTEwQyAxMTczIDExQkU7Qzk5RjsxMTBDIDExNzMgMTFCRTsKK0M5QTA7QzlBMDsxMTBDIDExNzMgMTFCRjtDOUEwOzExMEMgMTE3MyAxMUJGOworQzlBMTtDOUExOzExMEMgMTE3MyAxMUMwO0M5QTE7MTEwQyAxMTczIDExQzA7CitDOUEyO0M5QTI7MTEwQyAxMTczIDExQzE7QzlBMjsxMTBDIDExNzMgMTFDMTsKK0M5QTM7QzlBMzsxMTBDIDExNzMgMTFDMjtDOUEzOzExMEMgMTE3MyAxMUMyOworQzlBNDtDOUE0OzExMEMgMTE3NDtDOUE0OzExMEMgMTE3NDsKK0M5QTU7QzlBNTsxMTBDIDExNzQgMTFBODtDOUE1OzExMEMgMTE3NCAxMUE4OworQzlBNjtDOUE2OzExMEMgMTE3NCAxMUE5O0M5QTY7MTEwQyAxMTc0IDExQTk7CitDOUE3O0M5QTc7MTEwQyAxMTc0IDExQUE7QzlBNzsxMTBDIDExNzQgMTFBQTsKK0M5QTg7QzlBODsxMTBDIDExNzQgMTFBQjtDOUE4OzExMEMgMTE3NCAxMUFCOworQzlBOTtDOUE5OzExMEMgMTE3NCAxMUFDO0M5QTk7MTEwQyAxMTc0IDExQUM7CitDOUFBO0M5QUE7MTEwQyAxMTc0IDExQUQ7QzlBQTsxMTBDIDExNzQgMTFBRDsKK0M5QUI7QzlBQjsxMTBDIDExNzQgMTFBRTtDOUFCOzExMEMgMTE3NCAxMUFFOworQzlBQztDOUFDOzExMEMgMTE3NCAxMUFGO0M5QUM7MTEwQyAxMTc0IDExQUY7CitDOUFEO0M5QUQ7MTEwQyAxMTc0IDExQjA7QzlBRDsxMTBDIDExNzQgMTFCMDsKK0M5QUU7QzlBRTsxMTBDIDExNzQgMTFCMTtDOUFFOzExMEMgMTE3NCAxMUIxOworQzlBRjtDOUFGOzExMEMgMTE3NCAxMUIyO0M5QUY7MTEwQyAxMTc0IDExQjI7CitDOUIwO0M5QjA7MTEwQyAxMTc0IDExQjM7QzlCMDsxMTBDIDExNzQgMTFCMzsKK0M5QjE7QzlCMTsxMTBDIDExNzQgMTFCNDtDOUIxOzExMEMgMTE3NCAxMUI0OworQzlCMjtDOUIyOzExMEMgMTE3NCAxMUI1O0M5QjI7MTEwQyAxMTc0IDExQjU7CitDOUIzO0M5QjM7MTEwQyAxMTc0IDExQjY7QzlCMzsxMTBDIDExNzQgMTFCNjsKK0M5QjQ7QzlCNDsxMTBDIDExNzQgMTFCNztDOUI0OzExMEMgMTE3NCAxMUI3OworQzlCNTtDOUI1OzExMEMgMTE3NCAxMUI4O0M5QjU7MTEwQyAxMTc0IDExQjg7CitDOUI2O0M5QjY7MTEwQyAxMTc0IDExQjk7QzlCNjsxMTBDIDExNzQgMTFCOTsKK0M5Qjc7QzlCNzsxMTBDIDExNzQgMTFCQTtDOUI3OzExMEMgMTE3NCAxMUJBOworQzlCODtDOUI4OzExMEMgMTE3NCAxMUJCO0M5Qjg7MTEwQyAxMTc0IDExQkI7CitDOUI5O0M5Qjk7MTEwQyAxMTc0IDExQkM7QzlCOTsxMTBDIDExNzQgMTFCQzsKK0M5QkE7QzlCQTsxMTBDIDExNzQgMTFCRDtDOUJBOzExMEMgMTE3NCAxMUJEOworQzlCQjtDOUJCOzExMEMgMTE3NCAxMUJFO0M5QkI7MTEwQyAxMTc0IDExQkU7CitDOUJDO0M5QkM7MTEwQyAxMTc0IDExQkY7QzlCQzsxMTBDIDExNzQgMTFCRjsKK0M5QkQ7QzlCRDsxMTBDIDExNzQgMTFDMDtDOUJEOzExMEMgMTE3NCAxMUMwOworQzlCRTtDOUJFOzExMEMgMTE3NCAxMUMxO0M5QkU7MTEwQyAxMTc0IDExQzE7CitDOUJGO0M5QkY7MTEwQyAxMTc0IDExQzI7QzlCRjsxMTBDIDExNzQgMTFDMjsKK0M5QzA7QzlDMDsxMTBDIDExNzU7QzlDMDsxMTBDIDExNzU7CitDOUMxO0M5QzE7MTEwQyAxMTc1IDExQTg7QzlDMTsxMTBDIDExNzUgMTFBODsKK0M5QzI7QzlDMjsxMTBDIDExNzUgMTFBOTtDOUMyOzExMEMgMTE3NSAxMUE5OworQzlDMztDOUMzOzExMEMgMTE3NSAxMUFBO0M5QzM7MTEwQyAxMTc1IDExQUE7CitDOUM0O0M5QzQ7MTEwQyAxMTc1IDExQUI7QzlDNDsxMTBDIDExNzUgMTFBQjsKK0M5QzU7QzlDNTsxMTBDIDExNzUgMTFBQztDOUM1OzExMEMgMTE3NSAxMUFDOworQzlDNjtDOUM2OzExMEMgMTE3NSAxMUFEO0M5QzY7MTEwQyAxMTc1IDExQUQ7CitDOUM3O0M5Qzc7MTEwQyAxMTc1IDExQUU7QzlDNzsxMTBDIDExNzUgMTFBRTsKK0M5Qzg7QzlDODsxMTBDIDExNzUgMTFBRjtDOUM4OzExMEMgMTE3NSAxMUFGOworQzlDOTtDOUM5OzExMEMgMTE3NSAxMUIwO0M5Qzk7MTEwQyAxMTc1IDExQjA7CitDOUNBO0M5Q0E7MTEwQyAxMTc1IDExQjE7QzlDQTsxMTBDIDExNzUgMTFCMTsKK0M5Q0I7QzlDQjsxMTBDIDExNzUgMTFCMjtDOUNCOzExMEMgMTE3NSAxMUIyOworQzlDQztDOUNDOzExMEMgMTE3NSAxMUIzO0M5Q0M7MTEwQyAxMTc1IDExQjM7CitDOUNEO0M5Q0Q7MTEwQyAxMTc1IDExQjQ7QzlDRDsxMTBDIDExNzUgMTFCNDsKK0M5Q0U7QzlDRTsxMTBDIDExNzUgMTFCNTtDOUNFOzExMEMgMTE3NSAxMUI1OworQzlDRjtDOUNGOzExMEMgMTE3NSAxMUI2O0M5Q0Y7MTEwQyAxMTc1IDExQjY7CitDOUQwO0M5RDA7MTEwQyAxMTc1IDExQjc7QzlEMDsxMTBDIDExNzUgMTFCNzsKK0M5RDE7QzlEMTsxMTBDIDExNzUgMTFCODtDOUQxOzExMEMgMTE3NSAxMUI4OworQzlEMjtDOUQyOzExMEMgMTE3NSAxMUI5O0M5RDI7MTEwQyAxMTc1IDExQjk7CitDOUQzO0M5RDM7MTEwQyAxMTc1IDExQkE7QzlEMzsxMTBDIDExNzUgMTFCQTsKK0M5RDQ7QzlENDsxMTBDIDExNzUgMTFCQjtDOUQ0OzExMEMgMTE3NSAxMUJCOworQzlENTtDOUQ1OzExMEMgMTE3NSAxMUJDO0M5RDU7MTEwQyAxMTc1IDExQkM7CitDOUQ2O0M5RDY7MTEwQyAxMTc1IDExQkQ7QzlENjsxMTBDIDExNzUgMTFCRDsKK0M5RDc7QzlENzsxMTBDIDExNzUgMTFCRTtDOUQ3OzExMEMgMTE3NSAxMUJFOworQzlEODtDOUQ4OzExMEMgMTE3NSAxMUJGO0M5RDg7MTEwQyAxMTc1IDExQkY7CitDOUQ5O0M5RDk7MTEwQyAxMTc1IDExQzA7QzlEOTsxMTBDIDExNzUgMTFDMDsKK0M5REE7QzlEQTsxMTBDIDExNzUgMTFDMTtDOURBOzExMEMgMTE3NSAxMUMxOworQzlEQjtDOURCOzExMEMgMTE3NSAxMUMyO0M5REI7MTEwQyAxMTc1IDExQzI7CitDOURDO0M5REM7MTEwRCAxMTYxO0M5REM7MTEwRCAxMTYxOworQzlERDtDOUREOzExMEQgMTE2MSAxMUE4O0M5REQ7MTEwRCAxMTYxIDExQTg7CitDOURFO0M5REU7MTEwRCAxMTYxIDExQTk7QzlERTsxMTBEIDExNjEgMTFBOTsKK0M5REY7QzlERjsxMTBEIDExNjEgMTFBQTtDOURGOzExMEQgMTE2MSAxMUFBOworQzlFMDtDOUUwOzExMEQgMTE2MSAxMUFCO0M5RTA7MTEwRCAxMTYxIDExQUI7CitDOUUxO0M5RTE7MTEwRCAxMTYxIDExQUM7QzlFMTsxMTBEIDExNjEgMTFBQzsKK0M5RTI7QzlFMjsxMTBEIDExNjEgMTFBRDtDOUUyOzExMEQgMTE2MSAxMUFEOworQzlFMztDOUUzOzExMEQgMTE2MSAxMUFFO0M5RTM7MTEwRCAxMTYxIDExQUU7CitDOUU0O0M5RTQ7MTEwRCAxMTYxIDExQUY7QzlFNDsxMTBEIDExNjEgMTFBRjsKK0M5RTU7QzlFNTsxMTBEIDExNjEgMTFCMDtDOUU1OzExMEQgMTE2MSAxMUIwOworQzlFNjtDOUU2OzExMEQgMTE2MSAxMUIxO0M5RTY7MTEwRCAxMTYxIDExQjE7CitDOUU3O0M5RTc7MTEwRCAxMTYxIDExQjI7QzlFNzsxMTBEIDExNjEgMTFCMjsKK0M5RTg7QzlFODsxMTBEIDExNjEgMTFCMztDOUU4OzExMEQgMTE2MSAxMUIzOworQzlFOTtDOUU5OzExMEQgMTE2MSAxMUI0O0M5RTk7MTEwRCAxMTYxIDExQjQ7CitDOUVBO0M5RUE7MTEwRCAxMTYxIDExQjU7QzlFQTsxMTBEIDExNjEgMTFCNTsKK0M5RUI7QzlFQjsxMTBEIDExNjEgMTFCNjtDOUVCOzExMEQgMTE2MSAxMUI2OworQzlFQztDOUVDOzExMEQgMTE2MSAxMUI3O0M5RUM7MTEwRCAxMTYxIDExQjc7CitDOUVEO0M5RUQ7MTEwRCAxMTYxIDExQjg7QzlFRDsxMTBEIDExNjEgMTFCODsKK0M5RUU7QzlFRTsxMTBEIDExNjEgMTFCOTtDOUVFOzExMEQgMTE2MSAxMUI5OworQzlFRjtDOUVGOzExMEQgMTE2MSAxMUJBO0M5RUY7MTEwRCAxMTYxIDExQkE7CitDOUYwO0M5RjA7MTEwRCAxMTYxIDExQkI7QzlGMDsxMTBEIDExNjEgMTFCQjsKK0M5RjE7QzlGMTsxMTBEIDExNjEgMTFCQztDOUYxOzExMEQgMTE2MSAxMUJDOworQzlGMjtDOUYyOzExMEQgMTE2MSAxMUJEO0M5RjI7MTEwRCAxMTYxIDExQkQ7CitDOUYzO0M5RjM7MTEwRCAxMTYxIDExQkU7QzlGMzsxMTBEIDExNjEgMTFCRTsKK0M5RjQ7QzlGNDsxMTBEIDExNjEgMTFCRjtDOUY0OzExMEQgMTE2MSAxMUJGOworQzlGNTtDOUY1OzExMEQgMTE2MSAxMUMwO0M5RjU7MTEwRCAxMTYxIDExQzA7CitDOUY2O0M5RjY7MTEwRCAxMTYxIDExQzE7QzlGNjsxMTBEIDExNjEgMTFDMTsKK0M5Rjc7QzlGNzsxMTBEIDExNjEgMTFDMjtDOUY3OzExMEQgMTE2MSAxMUMyOworQzlGODtDOUY4OzExMEQgMTE2MjtDOUY4OzExMEQgMTE2MjsKK0M5Rjk7QzlGOTsxMTBEIDExNjIgMTFBODtDOUY5OzExMEQgMTE2MiAxMUE4OworQzlGQTtDOUZBOzExMEQgMTE2MiAxMUE5O0M5RkE7MTEwRCAxMTYyIDExQTk7CitDOUZCO0M5RkI7MTEwRCAxMTYyIDExQUE7QzlGQjsxMTBEIDExNjIgMTFBQTsKK0M5RkM7QzlGQzsxMTBEIDExNjIgMTFBQjtDOUZDOzExMEQgMTE2MiAxMUFCOworQzlGRDtDOUZEOzExMEQgMTE2MiAxMUFDO0M5RkQ7MTEwRCAxMTYyIDExQUM7CitDOUZFO0M5RkU7MTEwRCAxMTYyIDExQUQ7QzlGRTsxMTBEIDExNjIgMTFBRDsKK0M5RkY7QzlGRjsxMTBEIDExNjIgMTFBRTtDOUZGOzExMEQgMTE2MiAxMUFFOworQ0EwMDtDQTAwOzExMEQgMTE2MiAxMUFGO0NBMDA7MTEwRCAxMTYyIDExQUY7CitDQTAxO0NBMDE7MTEwRCAxMTYyIDExQjA7Q0EwMTsxMTBEIDExNjIgMTFCMDsKK0NBMDI7Q0EwMjsxMTBEIDExNjIgMTFCMTtDQTAyOzExMEQgMTE2MiAxMUIxOworQ0EwMztDQTAzOzExMEQgMTE2MiAxMUIyO0NBMDM7MTEwRCAxMTYyIDExQjI7CitDQTA0O0NBMDQ7MTEwRCAxMTYyIDExQjM7Q0EwNDsxMTBEIDExNjIgMTFCMzsKK0NBMDU7Q0EwNTsxMTBEIDExNjIgMTFCNDtDQTA1OzExMEQgMTE2MiAxMUI0OworQ0EwNjtDQTA2OzExMEQgMTE2MiAxMUI1O0NBMDY7MTEwRCAxMTYyIDExQjU7CitDQTA3O0NBMDc7MTEwRCAxMTYyIDExQjY7Q0EwNzsxMTBEIDExNjIgMTFCNjsKK0NBMDg7Q0EwODsxMTBEIDExNjIgMTFCNztDQTA4OzExMEQgMTE2MiAxMUI3OworQ0EwOTtDQTA5OzExMEQgMTE2MiAxMUI4O0NBMDk7MTEwRCAxMTYyIDExQjg7CitDQTBBO0NBMEE7MTEwRCAxMTYyIDExQjk7Q0EwQTsxMTBEIDExNjIgMTFCOTsKK0NBMEI7Q0EwQjsxMTBEIDExNjIgMTFCQTtDQTBCOzExMEQgMTE2MiAxMUJBOworQ0EwQztDQTBDOzExMEQgMTE2MiAxMUJCO0NBMEM7MTEwRCAxMTYyIDExQkI7CitDQTBEO0NBMEQ7MTEwRCAxMTYyIDExQkM7Q0EwRDsxMTBEIDExNjIgMTFCQzsKK0NBMEU7Q0EwRTsxMTBEIDExNjIgMTFCRDtDQTBFOzExMEQgMTE2MiAxMUJEOworQ0EwRjtDQTBGOzExMEQgMTE2MiAxMUJFO0NBMEY7MTEwRCAxMTYyIDExQkU7CitDQTEwO0NBMTA7MTEwRCAxMTYyIDExQkY7Q0ExMDsxMTBEIDExNjIgMTFCRjsKK0NBMTE7Q0ExMTsxMTBEIDExNjIgMTFDMDtDQTExOzExMEQgMTE2MiAxMUMwOworQ0ExMjtDQTEyOzExMEQgMTE2MiAxMUMxO0NBMTI7MTEwRCAxMTYyIDExQzE7CitDQTEzO0NBMTM7MTEwRCAxMTYyIDExQzI7Q0ExMzsxMTBEIDExNjIgMTFDMjsKK0NBMTQ7Q0ExNDsxMTBEIDExNjM7Q0ExNDsxMTBEIDExNjM7CitDQTE1O0NBMTU7MTEwRCAxMTYzIDExQTg7Q0ExNTsxMTBEIDExNjMgMTFBODsKK0NBMTY7Q0ExNjsxMTBEIDExNjMgMTFBOTtDQTE2OzExMEQgMTE2MyAxMUE5OworQ0ExNztDQTE3OzExMEQgMTE2MyAxMUFBO0NBMTc7MTEwRCAxMTYzIDExQUE7CitDQTE4O0NBMTg7MTEwRCAxMTYzIDExQUI7Q0ExODsxMTBEIDExNjMgMTFBQjsKK0NBMTk7Q0ExOTsxMTBEIDExNjMgMTFBQztDQTE5OzExMEQgMTE2MyAxMUFDOworQ0ExQTtDQTFBOzExMEQgMTE2MyAxMUFEO0NBMUE7MTEwRCAxMTYzIDExQUQ7CitDQTFCO0NBMUI7MTEwRCAxMTYzIDExQUU7Q0ExQjsxMTBEIDExNjMgMTFBRTsKK0NBMUM7Q0ExQzsxMTBEIDExNjMgMTFBRjtDQTFDOzExMEQgMTE2MyAxMUFGOworQ0ExRDtDQTFEOzExMEQgMTE2MyAxMUIwO0NBMUQ7MTEwRCAxMTYzIDExQjA7CitDQTFFO0NBMUU7MTEwRCAxMTYzIDExQjE7Q0ExRTsxMTBEIDExNjMgMTFCMTsKK0NBMUY7Q0ExRjsxMTBEIDExNjMgMTFCMjtDQTFGOzExMEQgMTE2MyAxMUIyOworQ0EyMDtDQTIwOzExMEQgMTE2MyAxMUIzO0NBMjA7MTEwRCAxMTYzIDExQjM7CitDQTIxO0NBMjE7MTEwRCAxMTYzIDExQjQ7Q0EyMTsxMTBEIDExNjMgMTFCNDsKK0NBMjI7Q0EyMjsxMTBEIDExNjMgMTFCNTtDQTIyOzExMEQgMTE2MyAxMUI1OworQ0EyMztDQTIzOzExMEQgMTE2MyAxMUI2O0NBMjM7MTEwRCAxMTYzIDExQjY7CitDQTI0O0NBMjQ7MTEwRCAxMTYzIDExQjc7Q0EyNDsxMTBEIDExNjMgMTFCNzsKK0NBMjU7Q0EyNTsxMTBEIDExNjMgMTFCODtDQTI1OzExMEQgMTE2MyAxMUI4OworQ0EyNjtDQTI2OzExMEQgMTE2MyAxMUI5O0NBMjY7MTEwRCAxMTYzIDExQjk7CitDQTI3O0NBMjc7MTEwRCAxMTYzIDExQkE7Q0EyNzsxMTBEIDExNjMgMTFCQTsKK0NBMjg7Q0EyODsxMTBEIDExNjMgMTFCQjtDQTI4OzExMEQgMTE2MyAxMUJCOworQ0EyOTtDQTI5OzExMEQgMTE2MyAxMUJDO0NBMjk7MTEwRCAxMTYzIDExQkM7CitDQTJBO0NBMkE7MTEwRCAxMTYzIDExQkQ7Q0EyQTsxMTBEIDExNjMgMTFCRDsKK0NBMkI7Q0EyQjsxMTBEIDExNjMgMTFCRTtDQTJCOzExMEQgMTE2MyAxMUJFOworQ0EyQztDQTJDOzExMEQgMTE2MyAxMUJGO0NBMkM7MTEwRCAxMTYzIDExQkY7CitDQTJEO0NBMkQ7MTEwRCAxMTYzIDExQzA7Q0EyRDsxMTBEIDExNjMgMTFDMDsKK0NBMkU7Q0EyRTsxMTBEIDExNjMgMTFDMTtDQTJFOzExMEQgMTE2MyAxMUMxOworQ0EyRjtDQTJGOzExMEQgMTE2MyAxMUMyO0NBMkY7MTEwRCAxMTYzIDExQzI7CitDQTMwO0NBMzA7MTEwRCAxMTY0O0NBMzA7MTEwRCAxMTY0OworQ0EzMTtDQTMxOzExMEQgMTE2NCAxMUE4O0NBMzE7MTEwRCAxMTY0IDExQTg7CitDQTMyO0NBMzI7MTEwRCAxMTY0IDExQTk7Q0EzMjsxMTBEIDExNjQgMTFBOTsKK0NBMzM7Q0EzMzsxMTBEIDExNjQgMTFBQTtDQTMzOzExMEQgMTE2NCAxMUFBOworQ0EzNDtDQTM0OzExMEQgMTE2NCAxMUFCO0NBMzQ7MTEwRCAxMTY0IDExQUI7CitDQTM1O0NBMzU7MTEwRCAxMTY0IDExQUM7Q0EzNTsxMTBEIDExNjQgMTFBQzsKK0NBMzY7Q0EzNjsxMTBEIDExNjQgMTFBRDtDQTM2OzExMEQgMTE2NCAxMUFEOworQ0EzNztDQTM3OzExMEQgMTE2NCAxMUFFO0NBMzc7MTEwRCAxMTY0IDExQUU7CitDQTM4O0NBMzg7MTEwRCAxMTY0IDExQUY7Q0EzODsxMTBEIDExNjQgMTFBRjsKK0NBMzk7Q0EzOTsxMTBEIDExNjQgMTFCMDtDQTM5OzExMEQgMTE2NCAxMUIwOworQ0EzQTtDQTNBOzExMEQgMTE2NCAxMUIxO0NBM0E7MTEwRCAxMTY0IDExQjE7CitDQTNCO0NBM0I7MTEwRCAxMTY0IDExQjI7Q0EzQjsxMTBEIDExNjQgMTFCMjsKK0NBM0M7Q0EzQzsxMTBEIDExNjQgMTFCMztDQTNDOzExMEQgMTE2NCAxMUIzOworQ0EzRDtDQTNEOzExMEQgMTE2NCAxMUI0O0NBM0Q7MTEwRCAxMTY0IDExQjQ7CitDQTNFO0NBM0U7MTEwRCAxMTY0IDExQjU7Q0EzRTsxMTBEIDExNjQgMTFCNTsKK0NBM0Y7Q0EzRjsxMTBEIDExNjQgMTFCNjtDQTNGOzExMEQgMTE2NCAxMUI2OworQ0E0MDtDQTQwOzExMEQgMTE2NCAxMUI3O0NBNDA7MTEwRCAxMTY0IDExQjc7CitDQTQxO0NBNDE7MTEwRCAxMTY0IDExQjg7Q0E0MTsxMTBEIDExNjQgMTFCODsKK0NBNDI7Q0E0MjsxMTBEIDExNjQgMTFCOTtDQTQyOzExMEQgMTE2NCAxMUI5OworQ0E0MztDQTQzOzExMEQgMTE2NCAxMUJBO0NBNDM7MTEwRCAxMTY0IDExQkE7CitDQTQ0O0NBNDQ7MTEwRCAxMTY0IDExQkI7Q0E0NDsxMTBEIDExNjQgMTFCQjsKK0NBNDU7Q0E0NTsxMTBEIDExNjQgMTFCQztDQTQ1OzExMEQgMTE2NCAxMUJDOworQ0E0NjtDQTQ2OzExMEQgMTE2NCAxMUJEO0NBNDY7MTEwRCAxMTY0IDExQkQ7CitDQTQ3O0NBNDc7MTEwRCAxMTY0IDExQkU7Q0E0NzsxMTBEIDExNjQgMTFCRTsKK0NBNDg7Q0E0ODsxMTBEIDExNjQgMTFCRjtDQTQ4OzExMEQgMTE2NCAxMUJGOworQ0E0OTtDQTQ5OzExMEQgMTE2NCAxMUMwO0NBNDk7MTEwRCAxMTY0IDExQzA7CitDQTRBO0NBNEE7MTEwRCAxMTY0IDExQzE7Q0E0QTsxMTBEIDExNjQgMTFDMTsKK0NBNEI7Q0E0QjsxMTBEIDExNjQgMTFDMjtDQTRCOzExMEQgMTE2NCAxMUMyOworQ0E0QztDQTRDOzExMEQgMTE2NTtDQTRDOzExMEQgMTE2NTsKK0NBNEQ7Q0E0RDsxMTBEIDExNjUgMTFBODtDQTREOzExMEQgMTE2NSAxMUE4OworQ0E0RTtDQTRFOzExMEQgMTE2NSAxMUE5O0NBNEU7MTEwRCAxMTY1IDExQTk7CitDQTRGO0NBNEY7MTEwRCAxMTY1IDExQUE7Q0E0RjsxMTBEIDExNjUgMTFBQTsKK0NBNTA7Q0E1MDsxMTBEIDExNjUgMTFBQjtDQTUwOzExMEQgMTE2NSAxMUFCOworQ0E1MTtDQTUxOzExMEQgMTE2NSAxMUFDO0NBNTE7MTEwRCAxMTY1IDExQUM7CitDQTUyO0NBNTI7MTEwRCAxMTY1IDExQUQ7Q0E1MjsxMTBEIDExNjUgMTFBRDsKK0NBNTM7Q0E1MzsxMTBEIDExNjUgMTFBRTtDQTUzOzExMEQgMTE2NSAxMUFFOworQ0E1NDtDQTU0OzExMEQgMTE2NSAxMUFGO0NBNTQ7MTEwRCAxMTY1IDExQUY7CitDQTU1O0NBNTU7MTEwRCAxMTY1IDExQjA7Q0E1NTsxMTBEIDExNjUgMTFCMDsKK0NBNTY7Q0E1NjsxMTBEIDExNjUgMTFCMTtDQTU2OzExMEQgMTE2NSAxMUIxOworQ0E1NztDQTU3OzExMEQgMTE2NSAxMUIyO0NBNTc7MTEwRCAxMTY1IDExQjI7CitDQTU4O0NBNTg7MTEwRCAxMTY1IDExQjM7Q0E1ODsxMTBEIDExNjUgMTFCMzsKK0NBNTk7Q0E1OTsxMTBEIDExNjUgMTFCNDtDQTU5OzExMEQgMTE2NSAxMUI0OworQ0E1QTtDQTVBOzExMEQgMTE2NSAxMUI1O0NBNUE7MTEwRCAxMTY1IDExQjU7CitDQTVCO0NBNUI7MTEwRCAxMTY1IDExQjY7Q0E1QjsxMTBEIDExNjUgMTFCNjsKK0NBNUM7Q0E1QzsxMTBEIDExNjUgMTFCNztDQTVDOzExMEQgMTE2NSAxMUI3OworQ0E1RDtDQTVEOzExMEQgMTE2NSAxMUI4O0NBNUQ7MTEwRCAxMTY1IDExQjg7CitDQTVFO0NBNUU7MTEwRCAxMTY1IDExQjk7Q0E1RTsxMTBEIDExNjUgMTFCOTsKK0NBNUY7Q0E1RjsxMTBEIDExNjUgMTFCQTtDQTVGOzExMEQgMTE2NSAxMUJBOworQ0E2MDtDQTYwOzExMEQgMTE2NSAxMUJCO0NBNjA7MTEwRCAxMTY1IDExQkI7CitDQTYxO0NBNjE7MTEwRCAxMTY1IDExQkM7Q0E2MTsxMTBEIDExNjUgMTFCQzsKK0NBNjI7Q0E2MjsxMTBEIDExNjUgMTFCRDtDQTYyOzExMEQgMTE2NSAxMUJEOworQ0E2MztDQTYzOzExMEQgMTE2NSAxMUJFO0NBNjM7MTEwRCAxMTY1IDExQkU7CitDQTY0O0NBNjQ7MTEwRCAxMTY1IDExQkY7Q0E2NDsxMTBEIDExNjUgMTFCRjsKK0NBNjU7Q0E2NTsxMTBEIDExNjUgMTFDMDtDQTY1OzExMEQgMTE2NSAxMUMwOworQ0E2NjtDQTY2OzExMEQgMTE2NSAxMUMxO0NBNjY7MTEwRCAxMTY1IDExQzE7CitDQTY3O0NBNjc7MTEwRCAxMTY1IDExQzI7Q0E2NzsxMTBEIDExNjUgMTFDMjsKK0NBNjg7Q0E2ODsxMTBEIDExNjY7Q0E2ODsxMTBEIDExNjY7CitDQTY5O0NBNjk7MTEwRCAxMTY2IDExQTg7Q0E2OTsxMTBEIDExNjYgMTFBODsKK0NBNkE7Q0E2QTsxMTBEIDExNjYgMTFBOTtDQTZBOzExMEQgMTE2NiAxMUE5OworQ0E2QjtDQTZCOzExMEQgMTE2NiAxMUFBO0NBNkI7MTEwRCAxMTY2IDExQUE7CitDQTZDO0NBNkM7MTEwRCAxMTY2IDExQUI7Q0E2QzsxMTBEIDExNjYgMTFBQjsKK0NBNkQ7Q0E2RDsxMTBEIDExNjYgMTFBQztDQTZEOzExMEQgMTE2NiAxMUFDOworQ0E2RTtDQTZFOzExMEQgMTE2NiAxMUFEO0NBNkU7MTEwRCAxMTY2IDExQUQ7CitDQTZGO0NBNkY7MTEwRCAxMTY2IDExQUU7Q0E2RjsxMTBEIDExNjYgMTFBRTsKK0NBNzA7Q0E3MDsxMTBEIDExNjYgMTFBRjtDQTcwOzExMEQgMTE2NiAxMUFGOworQ0E3MTtDQTcxOzExMEQgMTE2NiAxMUIwO0NBNzE7MTEwRCAxMTY2IDExQjA7CitDQTcyO0NBNzI7MTEwRCAxMTY2IDExQjE7Q0E3MjsxMTBEIDExNjYgMTFCMTsKK0NBNzM7Q0E3MzsxMTBEIDExNjYgMTFCMjtDQTczOzExMEQgMTE2NiAxMUIyOworQ0E3NDtDQTc0OzExMEQgMTE2NiAxMUIzO0NBNzQ7MTEwRCAxMTY2IDExQjM7CitDQTc1O0NBNzU7MTEwRCAxMTY2IDExQjQ7Q0E3NTsxMTBEIDExNjYgMTFCNDsKK0NBNzY7Q0E3NjsxMTBEIDExNjYgMTFCNTtDQTc2OzExMEQgMTE2NiAxMUI1OworQ0E3NztDQTc3OzExMEQgMTE2NiAxMUI2O0NBNzc7MTEwRCAxMTY2IDExQjY7CitDQTc4O0NBNzg7MTEwRCAxMTY2IDExQjc7Q0E3ODsxMTBEIDExNjYgMTFCNzsKK0NBNzk7Q0E3OTsxMTBEIDExNjYgMTFCODtDQTc5OzExMEQgMTE2NiAxMUI4OworQ0E3QTtDQTdBOzExMEQgMTE2NiAxMUI5O0NBN0E7MTEwRCAxMTY2IDExQjk7CitDQTdCO0NBN0I7MTEwRCAxMTY2IDExQkE7Q0E3QjsxMTBEIDExNjYgMTFCQTsKK0NBN0M7Q0E3QzsxMTBEIDExNjYgMTFCQjtDQTdDOzExMEQgMTE2NiAxMUJCOworQ0E3RDtDQTdEOzExMEQgMTE2NiAxMUJDO0NBN0Q7MTEwRCAxMTY2IDExQkM7CitDQTdFO0NBN0U7MTEwRCAxMTY2IDExQkQ7Q0E3RTsxMTBEIDExNjYgMTFCRDsKK0NBN0Y7Q0E3RjsxMTBEIDExNjYgMTFCRTtDQTdGOzExMEQgMTE2NiAxMUJFOworQ0E4MDtDQTgwOzExMEQgMTE2NiAxMUJGO0NBODA7MTEwRCAxMTY2IDExQkY7CitDQTgxO0NBODE7MTEwRCAxMTY2IDExQzA7Q0E4MTsxMTBEIDExNjYgMTFDMDsKK0NBODI7Q0E4MjsxMTBEIDExNjYgMTFDMTtDQTgyOzExMEQgMTE2NiAxMUMxOworQ0E4MztDQTgzOzExMEQgMTE2NiAxMUMyO0NBODM7MTEwRCAxMTY2IDExQzI7CitDQTg0O0NBODQ7MTEwRCAxMTY3O0NBODQ7MTEwRCAxMTY3OworQ0E4NTtDQTg1OzExMEQgMTE2NyAxMUE4O0NBODU7MTEwRCAxMTY3IDExQTg7CitDQTg2O0NBODY7MTEwRCAxMTY3IDExQTk7Q0E4NjsxMTBEIDExNjcgMTFBOTsKK0NBODc7Q0E4NzsxMTBEIDExNjcgMTFBQTtDQTg3OzExMEQgMTE2NyAxMUFBOworQ0E4ODtDQTg4OzExMEQgMTE2NyAxMUFCO0NBODg7MTEwRCAxMTY3IDExQUI7CitDQTg5O0NBODk7MTEwRCAxMTY3IDExQUM7Q0E4OTsxMTBEIDExNjcgMTFBQzsKK0NBOEE7Q0E4QTsxMTBEIDExNjcgMTFBRDtDQThBOzExMEQgMTE2NyAxMUFEOworQ0E4QjtDQThCOzExMEQgMTE2NyAxMUFFO0NBOEI7MTEwRCAxMTY3IDExQUU7CitDQThDO0NBOEM7MTEwRCAxMTY3IDExQUY7Q0E4QzsxMTBEIDExNjcgMTFBRjsKK0NBOEQ7Q0E4RDsxMTBEIDExNjcgMTFCMDtDQThEOzExMEQgMTE2NyAxMUIwOworQ0E4RTtDQThFOzExMEQgMTE2NyAxMUIxO0NBOEU7MTEwRCAxMTY3IDExQjE7CitDQThGO0NBOEY7MTEwRCAxMTY3IDExQjI7Q0E4RjsxMTBEIDExNjcgMTFCMjsKK0NBOTA7Q0E5MDsxMTBEIDExNjcgMTFCMztDQTkwOzExMEQgMTE2NyAxMUIzOworQ0E5MTtDQTkxOzExMEQgMTE2NyAxMUI0O0NBOTE7MTEwRCAxMTY3IDExQjQ7CitDQTkyO0NBOTI7MTEwRCAxMTY3IDExQjU7Q0E5MjsxMTBEIDExNjcgMTFCNTsKK0NBOTM7Q0E5MzsxMTBEIDExNjcgMTFCNjtDQTkzOzExMEQgMTE2NyAxMUI2OworQ0E5NDtDQTk0OzExMEQgMTE2NyAxMUI3O0NBOTQ7MTEwRCAxMTY3IDExQjc7CitDQTk1O0NBOTU7MTEwRCAxMTY3IDExQjg7Q0E5NTsxMTBEIDExNjcgMTFCODsKK0NBOTY7Q0E5NjsxMTBEIDExNjcgMTFCOTtDQTk2OzExMEQgMTE2NyAxMUI5OworQ0E5NztDQTk3OzExMEQgMTE2NyAxMUJBO0NBOTc7MTEwRCAxMTY3IDExQkE7CitDQTk4O0NBOTg7MTEwRCAxMTY3IDExQkI7Q0E5ODsxMTBEIDExNjcgMTFCQjsKK0NBOTk7Q0E5OTsxMTBEIDExNjcgMTFCQztDQTk5OzExMEQgMTE2NyAxMUJDOworQ0E5QTtDQTlBOzExMEQgMTE2NyAxMUJEO0NBOUE7MTEwRCAxMTY3IDExQkQ7CitDQTlCO0NBOUI7MTEwRCAxMTY3IDExQkU7Q0E5QjsxMTBEIDExNjcgMTFCRTsKK0NBOUM7Q0E5QzsxMTBEIDExNjcgMTFCRjtDQTlDOzExMEQgMTE2NyAxMUJGOworQ0E5RDtDQTlEOzExMEQgMTE2NyAxMUMwO0NBOUQ7MTEwRCAxMTY3IDExQzA7CitDQTlFO0NBOUU7MTEwRCAxMTY3IDExQzE7Q0E5RTsxMTBEIDExNjcgMTFDMTsKK0NBOUY7Q0E5RjsxMTBEIDExNjcgMTFDMjtDQTlGOzExMEQgMTE2NyAxMUMyOworQ0FBMDtDQUEwOzExMEQgMTE2ODtDQUEwOzExMEQgMTE2ODsKK0NBQTE7Q0FBMTsxMTBEIDExNjggMTFBODtDQUExOzExMEQgMTE2OCAxMUE4OworQ0FBMjtDQUEyOzExMEQgMTE2OCAxMUE5O0NBQTI7MTEwRCAxMTY4IDExQTk7CitDQUEzO0NBQTM7MTEwRCAxMTY4IDExQUE7Q0FBMzsxMTBEIDExNjggMTFBQTsKK0NBQTQ7Q0FBNDsxMTBEIDExNjggMTFBQjtDQUE0OzExMEQgMTE2OCAxMUFCOworQ0FBNTtDQUE1OzExMEQgMTE2OCAxMUFDO0NBQTU7MTEwRCAxMTY4IDExQUM7CitDQUE2O0NBQTY7MTEwRCAxMTY4IDExQUQ7Q0FBNjsxMTBEIDExNjggMTFBRDsKK0NBQTc7Q0FBNzsxMTBEIDExNjggMTFBRTtDQUE3OzExMEQgMTE2OCAxMUFFOworQ0FBODtDQUE4OzExMEQgMTE2OCAxMUFGO0NBQTg7MTEwRCAxMTY4IDExQUY7CitDQUE5O0NBQTk7MTEwRCAxMTY4IDExQjA7Q0FBOTsxMTBEIDExNjggMTFCMDsKK0NBQUE7Q0FBQTsxMTBEIDExNjggMTFCMTtDQUFBOzExMEQgMTE2OCAxMUIxOworQ0FBQjtDQUFCOzExMEQgMTE2OCAxMUIyO0NBQUI7MTEwRCAxMTY4IDExQjI7CitDQUFDO0NBQUM7MTEwRCAxMTY4IDExQjM7Q0FBQzsxMTBEIDExNjggMTFCMzsKK0NBQUQ7Q0FBRDsxMTBEIDExNjggMTFCNDtDQUFEOzExMEQgMTE2OCAxMUI0OworQ0FBRTtDQUFFOzExMEQgMTE2OCAxMUI1O0NBQUU7MTEwRCAxMTY4IDExQjU7CitDQUFGO0NBQUY7MTEwRCAxMTY4IDExQjY7Q0FBRjsxMTBEIDExNjggMTFCNjsKK0NBQjA7Q0FCMDsxMTBEIDExNjggMTFCNztDQUIwOzExMEQgMTE2OCAxMUI3OworQ0FCMTtDQUIxOzExMEQgMTE2OCAxMUI4O0NBQjE7MTEwRCAxMTY4IDExQjg7CitDQUIyO0NBQjI7MTEwRCAxMTY4IDExQjk7Q0FCMjsxMTBEIDExNjggMTFCOTsKK0NBQjM7Q0FCMzsxMTBEIDExNjggMTFCQTtDQUIzOzExMEQgMTE2OCAxMUJBOworQ0FCNDtDQUI0OzExMEQgMTE2OCAxMUJCO0NBQjQ7MTEwRCAxMTY4IDExQkI7CitDQUI1O0NBQjU7MTEwRCAxMTY4IDExQkM7Q0FCNTsxMTBEIDExNjggMTFCQzsKK0NBQjY7Q0FCNjsxMTBEIDExNjggMTFCRDtDQUI2OzExMEQgMTE2OCAxMUJEOworQ0FCNztDQUI3OzExMEQgMTE2OCAxMUJFO0NBQjc7MTEwRCAxMTY4IDExQkU7CitDQUI4O0NBQjg7MTEwRCAxMTY4IDExQkY7Q0FCODsxMTBEIDExNjggMTFCRjsKK0NBQjk7Q0FCOTsxMTBEIDExNjggMTFDMDtDQUI5OzExMEQgMTE2OCAxMUMwOworQ0FCQTtDQUJBOzExMEQgMTE2OCAxMUMxO0NBQkE7MTEwRCAxMTY4IDExQzE7CitDQUJCO0NBQkI7MTEwRCAxMTY4IDExQzI7Q0FCQjsxMTBEIDExNjggMTFDMjsKK0NBQkM7Q0FCQzsxMTBEIDExNjk7Q0FCQzsxMTBEIDExNjk7CitDQUJEO0NBQkQ7MTEwRCAxMTY5IDExQTg7Q0FCRDsxMTBEIDExNjkgMTFBODsKK0NBQkU7Q0FCRTsxMTBEIDExNjkgMTFBOTtDQUJFOzExMEQgMTE2OSAxMUE5OworQ0FCRjtDQUJGOzExMEQgMTE2OSAxMUFBO0NBQkY7MTEwRCAxMTY5IDExQUE7CitDQUMwO0NBQzA7MTEwRCAxMTY5IDExQUI7Q0FDMDsxMTBEIDExNjkgMTFBQjsKK0NBQzE7Q0FDMTsxMTBEIDExNjkgMTFBQztDQUMxOzExMEQgMTE2OSAxMUFDOworQ0FDMjtDQUMyOzExMEQgMTE2OSAxMUFEO0NBQzI7MTEwRCAxMTY5IDExQUQ7CitDQUMzO0NBQzM7MTEwRCAxMTY5IDExQUU7Q0FDMzsxMTBEIDExNjkgMTFBRTsKK0NBQzQ7Q0FDNDsxMTBEIDExNjkgMTFBRjtDQUM0OzExMEQgMTE2OSAxMUFGOworQ0FDNTtDQUM1OzExMEQgMTE2OSAxMUIwO0NBQzU7MTEwRCAxMTY5IDExQjA7CitDQUM2O0NBQzY7MTEwRCAxMTY5IDExQjE7Q0FDNjsxMTBEIDExNjkgMTFCMTsKK0NBQzc7Q0FDNzsxMTBEIDExNjkgMTFCMjtDQUM3OzExMEQgMTE2OSAxMUIyOworQ0FDODtDQUM4OzExMEQgMTE2OSAxMUIzO0NBQzg7MTEwRCAxMTY5IDExQjM7CitDQUM5O0NBQzk7MTEwRCAxMTY5IDExQjQ7Q0FDOTsxMTBEIDExNjkgMTFCNDsKK0NBQ0E7Q0FDQTsxMTBEIDExNjkgMTFCNTtDQUNBOzExMEQgMTE2OSAxMUI1OworQ0FDQjtDQUNCOzExMEQgMTE2OSAxMUI2O0NBQ0I7MTEwRCAxMTY5IDExQjY7CitDQUNDO0NBQ0M7MTEwRCAxMTY5IDExQjc7Q0FDQzsxMTBEIDExNjkgMTFCNzsKK0NBQ0Q7Q0FDRDsxMTBEIDExNjkgMTFCODtDQUNEOzExMEQgMTE2OSAxMUI4OworQ0FDRTtDQUNFOzExMEQgMTE2OSAxMUI5O0NBQ0U7MTEwRCAxMTY5IDExQjk7CitDQUNGO0NBQ0Y7MTEwRCAxMTY5IDExQkE7Q0FDRjsxMTBEIDExNjkgMTFCQTsKK0NBRDA7Q0FEMDsxMTBEIDExNjkgMTFCQjtDQUQwOzExMEQgMTE2OSAxMUJCOworQ0FEMTtDQUQxOzExMEQgMTE2OSAxMUJDO0NBRDE7MTEwRCAxMTY5IDExQkM7CitDQUQyO0NBRDI7MTEwRCAxMTY5IDExQkQ7Q0FEMjsxMTBEIDExNjkgMTFCRDsKK0NBRDM7Q0FEMzsxMTBEIDExNjkgMTFCRTtDQUQzOzExMEQgMTE2OSAxMUJFOworQ0FENDtDQUQ0OzExMEQgMTE2OSAxMUJGO0NBRDQ7MTEwRCAxMTY5IDExQkY7CitDQUQ1O0NBRDU7MTEwRCAxMTY5IDExQzA7Q0FENTsxMTBEIDExNjkgMTFDMDsKK0NBRDY7Q0FENjsxMTBEIDExNjkgMTFDMTtDQUQ2OzExMEQgMTE2OSAxMUMxOworQ0FENztDQUQ3OzExMEQgMTE2OSAxMUMyO0NBRDc7MTEwRCAxMTY5IDExQzI7CitDQUQ4O0NBRDg7MTEwRCAxMTZBO0NBRDg7MTEwRCAxMTZBOworQ0FEOTtDQUQ5OzExMEQgMTE2QSAxMUE4O0NBRDk7MTEwRCAxMTZBIDExQTg7CitDQURBO0NBREE7MTEwRCAxMTZBIDExQTk7Q0FEQTsxMTBEIDExNkEgMTFBOTsKK0NBREI7Q0FEQjsxMTBEIDExNkEgMTFBQTtDQURCOzExMEQgMTE2QSAxMUFBOworQ0FEQztDQURDOzExMEQgMTE2QSAxMUFCO0NBREM7MTEwRCAxMTZBIDExQUI7CitDQUREO0NBREQ7MTEwRCAxMTZBIDExQUM7Q0FERDsxMTBEIDExNkEgMTFBQzsKK0NBREU7Q0FERTsxMTBEIDExNkEgMTFBRDtDQURFOzExMEQgMTE2QSAxMUFEOworQ0FERjtDQURGOzExMEQgMTE2QSAxMUFFO0NBREY7MTEwRCAxMTZBIDExQUU7CitDQUUwO0NBRTA7MTEwRCAxMTZBIDExQUY7Q0FFMDsxMTBEIDExNkEgMTFBRjsKK0NBRTE7Q0FFMTsxMTBEIDExNkEgMTFCMDtDQUUxOzExMEQgMTE2QSAxMUIwOworQ0FFMjtDQUUyOzExMEQgMTE2QSAxMUIxO0NBRTI7MTEwRCAxMTZBIDExQjE7CitDQUUzO0NBRTM7MTEwRCAxMTZBIDExQjI7Q0FFMzsxMTBEIDExNkEgMTFCMjsKK0NBRTQ7Q0FFNDsxMTBEIDExNkEgMTFCMztDQUU0OzExMEQgMTE2QSAxMUIzOworQ0FFNTtDQUU1OzExMEQgMTE2QSAxMUI0O0NBRTU7MTEwRCAxMTZBIDExQjQ7CitDQUU2O0NBRTY7MTEwRCAxMTZBIDExQjU7Q0FFNjsxMTBEIDExNkEgMTFCNTsKK0NBRTc7Q0FFNzsxMTBEIDExNkEgMTFCNjtDQUU3OzExMEQgMTE2QSAxMUI2OworQ0FFODtDQUU4OzExMEQgMTE2QSAxMUI3O0NBRTg7MTEwRCAxMTZBIDExQjc7CitDQUU5O0NBRTk7MTEwRCAxMTZBIDExQjg7Q0FFOTsxMTBEIDExNkEgMTFCODsKK0NBRUE7Q0FFQTsxMTBEIDExNkEgMTFCOTtDQUVBOzExMEQgMTE2QSAxMUI5OworQ0FFQjtDQUVCOzExMEQgMTE2QSAxMUJBO0NBRUI7MTEwRCAxMTZBIDExQkE7CitDQUVDO0NBRUM7MTEwRCAxMTZBIDExQkI7Q0FFQzsxMTBEIDExNkEgMTFCQjsKK0NBRUQ7Q0FFRDsxMTBEIDExNkEgMTFCQztDQUVEOzExMEQgMTE2QSAxMUJDOworQ0FFRTtDQUVFOzExMEQgMTE2QSAxMUJEO0NBRUU7MTEwRCAxMTZBIDExQkQ7CitDQUVGO0NBRUY7MTEwRCAxMTZBIDExQkU7Q0FFRjsxMTBEIDExNkEgMTFCRTsKK0NBRjA7Q0FGMDsxMTBEIDExNkEgMTFCRjtDQUYwOzExMEQgMTE2QSAxMUJGOworQ0FGMTtDQUYxOzExMEQgMTE2QSAxMUMwO0NBRjE7MTEwRCAxMTZBIDExQzA7CitDQUYyO0NBRjI7MTEwRCAxMTZBIDExQzE7Q0FGMjsxMTBEIDExNkEgMTFDMTsKK0NBRjM7Q0FGMzsxMTBEIDExNkEgMTFDMjtDQUYzOzExMEQgMTE2QSAxMUMyOworQ0FGNDtDQUY0OzExMEQgMTE2QjtDQUY0OzExMEQgMTE2QjsKK0NBRjU7Q0FGNTsxMTBEIDExNkIgMTFBODtDQUY1OzExMEQgMTE2QiAxMUE4OworQ0FGNjtDQUY2OzExMEQgMTE2QiAxMUE5O0NBRjY7MTEwRCAxMTZCIDExQTk7CitDQUY3O0NBRjc7MTEwRCAxMTZCIDExQUE7Q0FGNzsxMTBEIDExNkIgMTFBQTsKK0NBRjg7Q0FGODsxMTBEIDExNkIgMTFBQjtDQUY4OzExMEQgMTE2QiAxMUFCOworQ0FGOTtDQUY5OzExMEQgMTE2QiAxMUFDO0NBRjk7MTEwRCAxMTZCIDExQUM7CitDQUZBO0NBRkE7MTEwRCAxMTZCIDExQUQ7Q0FGQTsxMTBEIDExNkIgMTFBRDsKK0NBRkI7Q0FGQjsxMTBEIDExNkIgMTFBRTtDQUZCOzExMEQgMTE2QiAxMUFFOworQ0FGQztDQUZDOzExMEQgMTE2QiAxMUFGO0NBRkM7MTEwRCAxMTZCIDExQUY7CitDQUZEO0NBRkQ7MTEwRCAxMTZCIDExQjA7Q0FGRDsxMTBEIDExNkIgMTFCMDsKK0NBRkU7Q0FGRTsxMTBEIDExNkIgMTFCMTtDQUZFOzExMEQgMTE2QiAxMUIxOworQ0FGRjtDQUZGOzExMEQgMTE2QiAxMUIyO0NBRkY7MTEwRCAxMTZCIDExQjI7CitDQjAwO0NCMDA7MTEwRCAxMTZCIDExQjM7Q0IwMDsxMTBEIDExNkIgMTFCMzsKK0NCMDE7Q0IwMTsxMTBEIDExNkIgMTFCNDtDQjAxOzExMEQgMTE2QiAxMUI0OworQ0IwMjtDQjAyOzExMEQgMTE2QiAxMUI1O0NCMDI7MTEwRCAxMTZCIDExQjU7CitDQjAzO0NCMDM7MTEwRCAxMTZCIDExQjY7Q0IwMzsxMTBEIDExNkIgMTFCNjsKK0NCMDQ7Q0IwNDsxMTBEIDExNkIgMTFCNztDQjA0OzExMEQgMTE2QiAxMUI3OworQ0IwNTtDQjA1OzExMEQgMTE2QiAxMUI4O0NCMDU7MTEwRCAxMTZCIDExQjg7CitDQjA2O0NCMDY7MTEwRCAxMTZCIDExQjk7Q0IwNjsxMTBEIDExNkIgMTFCOTsKK0NCMDc7Q0IwNzsxMTBEIDExNkIgMTFCQTtDQjA3OzExMEQgMTE2QiAxMUJBOworQ0IwODtDQjA4OzExMEQgMTE2QiAxMUJCO0NCMDg7MTEwRCAxMTZCIDExQkI7CitDQjA5O0NCMDk7MTEwRCAxMTZCIDExQkM7Q0IwOTsxMTBEIDExNkIgMTFCQzsKK0NCMEE7Q0IwQTsxMTBEIDExNkIgMTFCRDtDQjBBOzExMEQgMTE2QiAxMUJEOworQ0IwQjtDQjBCOzExMEQgMTE2QiAxMUJFO0NCMEI7MTEwRCAxMTZCIDExQkU7CitDQjBDO0NCMEM7MTEwRCAxMTZCIDExQkY7Q0IwQzsxMTBEIDExNkIgMTFCRjsKK0NCMEQ7Q0IwRDsxMTBEIDExNkIgMTFDMDtDQjBEOzExMEQgMTE2QiAxMUMwOworQ0IwRTtDQjBFOzExMEQgMTE2QiAxMUMxO0NCMEU7MTEwRCAxMTZCIDExQzE7CitDQjBGO0NCMEY7MTEwRCAxMTZCIDExQzI7Q0IwRjsxMTBEIDExNkIgMTFDMjsKK0NCMTA7Q0IxMDsxMTBEIDExNkM7Q0IxMDsxMTBEIDExNkM7CitDQjExO0NCMTE7MTEwRCAxMTZDIDExQTg7Q0IxMTsxMTBEIDExNkMgMTFBODsKK0NCMTI7Q0IxMjsxMTBEIDExNkMgMTFBOTtDQjEyOzExMEQgMTE2QyAxMUE5OworQ0IxMztDQjEzOzExMEQgMTE2QyAxMUFBO0NCMTM7MTEwRCAxMTZDIDExQUE7CitDQjE0O0NCMTQ7MTEwRCAxMTZDIDExQUI7Q0IxNDsxMTBEIDExNkMgMTFBQjsKK0NCMTU7Q0IxNTsxMTBEIDExNkMgMTFBQztDQjE1OzExMEQgMTE2QyAxMUFDOworQ0IxNjtDQjE2OzExMEQgMTE2QyAxMUFEO0NCMTY7MTEwRCAxMTZDIDExQUQ7CitDQjE3O0NCMTc7MTEwRCAxMTZDIDExQUU7Q0IxNzsxMTBEIDExNkMgMTFBRTsKK0NCMTg7Q0IxODsxMTBEIDExNkMgMTFBRjtDQjE4OzExMEQgMTE2QyAxMUFGOworQ0IxOTtDQjE5OzExMEQgMTE2QyAxMUIwO0NCMTk7MTEwRCAxMTZDIDExQjA7CitDQjFBO0NCMUE7MTEwRCAxMTZDIDExQjE7Q0IxQTsxMTBEIDExNkMgMTFCMTsKK0NCMUI7Q0IxQjsxMTBEIDExNkMgMTFCMjtDQjFCOzExMEQgMTE2QyAxMUIyOworQ0IxQztDQjFDOzExMEQgMTE2QyAxMUIzO0NCMUM7MTEwRCAxMTZDIDExQjM7CitDQjFEO0NCMUQ7MTEwRCAxMTZDIDExQjQ7Q0IxRDsxMTBEIDExNkMgMTFCNDsKK0NCMUU7Q0IxRTsxMTBEIDExNkMgMTFCNTtDQjFFOzExMEQgMTE2QyAxMUI1OworQ0IxRjtDQjFGOzExMEQgMTE2QyAxMUI2O0NCMUY7MTEwRCAxMTZDIDExQjY7CitDQjIwO0NCMjA7MTEwRCAxMTZDIDExQjc7Q0IyMDsxMTBEIDExNkMgMTFCNzsKK0NCMjE7Q0IyMTsxMTBEIDExNkMgMTFCODtDQjIxOzExMEQgMTE2QyAxMUI4OworQ0IyMjtDQjIyOzExMEQgMTE2QyAxMUI5O0NCMjI7MTEwRCAxMTZDIDExQjk7CitDQjIzO0NCMjM7MTEwRCAxMTZDIDExQkE7Q0IyMzsxMTBEIDExNkMgMTFCQTsKK0NCMjQ7Q0IyNDsxMTBEIDExNkMgMTFCQjtDQjI0OzExMEQgMTE2QyAxMUJCOworQ0IyNTtDQjI1OzExMEQgMTE2QyAxMUJDO0NCMjU7MTEwRCAxMTZDIDExQkM7CitDQjI2O0NCMjY7MTEwRCAxMTZDIDExQkQ7Q0IyNjsxMTBEIDExNkMgMTFCRDsKK0NCMjc7Q0IyNzsxMTBEIDExNkMgMTFCRTtDQjI3OzExMEQgMTE2QyAxMUJFOworQ0IyODtDQjI4OzExMEQgMTE2QyAxMUJGO0NCMjg7MTEwRCAxMTZDIDExQkY7CitDQjI5O0NCMjk7MTEwRCAxMTZDIDExQzA7Q0IyOTsxMTBEIDExNkMgMTFDMDsKK0NCMkE7Q0IyQTsxMTBEIDExNkMgMTFDMTtDQjJBOzExMEQgMTE2QyAxMUMxOworQ0IyQjtDQjJCOzExMEQgMTE2QyAxMUMyO0NCMkI7MTEwRCAxMTZDIDExQzI7CitDQjJDO0NCMkM7MTEwRCAxMTZEO0NCMkM7MTEwRCAxMTZEOworQ0IyRDtDQjJEOzExMEQgMTE2RCAxMUE4O0NCMkQ7MTEwRCAxMTZEIDExQTg7CitDQjJFO0NCMkU7MTEwRCAxMTZEIDExQTk7Q0IyRTsxMTBEIDExNkQgMTFBOTsKK0NCMkY7Q0IyRjsxMTBEIDExNkQgMTFBQTtDQjJGOzExMEQgMTE2RCAxMUFBOworQ0IzMDtDQjMwOzExMEQgMTE2RCAxMUFCO0NCMzA7MTEwRCAxMTZEIDExQUI7CitDQjMxO0NCMzE7MTEwRCAxMTZEIDExQUM7Q0IzMTsxMTBEIDExNkQgMTFBQzsKK0NCMzI7Q0IzMjsxMTBEIDExNkQgMTFBRDtDQjMyOzExMEQgMTE2RCAxMUFEOworQ0IzMztDQjMzOzExMEQgMTE2RCAxMUFFO0NCMzM7MTEwRCAxMTZEIDExQUU7CitDQjM0O0NCMzQ7MTEwRCAxMTZEIDExQUY7Q0IzNDsxMTBEIDExNkQgMTFBRjsKK0NCMzU7Q0IzNTsxMTBEIDExNkQgMTFCMDtDQjM1OzExMEQgMTE2RCAxMUIwOworQ0IzNjtDQjM2OzExMEQgMTE2RCAxMUIxO0NCMzY7MTEwRCAxMTZEIDExQjE7CitDQjM3O0NCMzc7MTEwRCAxMTZEIDExQjI7Q0IzNzsxMTBEIDExNkQgMTFCMjsKK0NCMzg7Q0IzODsxMTBEIDExNkQgMTFCMztDQjM4OzExMEQgMTE2RCAxMUIzOworQ0IzOTtDQjM5OzExMEQgMTE2RCAxMUI0O0NCMzk7MTEwRCAxMTZEIDExQjQ7CitDQjNBO0NCM0E7MTEwRCAxMTZEIDExQjU7Q0IzQTsxMTBEIDExNkQgMTFCNTsKK0NCM0I7Q0IzQjsxMTBEIDExNkQgMTFCNjtDQjNCOzExMEQgMTE2RCAxMUI2OworQ0IzQztDQjNDOzExMEQgMTE2RCAxMUI3O0NCM0M7MTEwRCAxMTZEIDExQjc7CitDQjNEO0NCM0Q7MTEwRCAxMTZEIDExQjg7Q0IzRDsxMTBEIDExNkQgMTFCODsKK0NCM0U7Q0IzRTsxMTBEIDExNkQgMTFCOTtDQjNFOzExMEQgMTE2RCAxMUI5OworQ0IzRjtDQjNGOzExMEQgMTE2RCAxMUJBO0NCM0Y7MTEwRCAxMTZEIDExQkE7CitDQjQwO0NCNDA7MTEwRCAxMTZEIDExQkI7Q0I0MDsxMTBEIDExNkQgMTFCQjsKK0NCNDE7Q0I0MTsxMTBEIDExNkQgMTFCQztDQjQxOzExMEQgMTE2RCAxMUJDOworQ0I0MjtDQjQyOzExMEQgMTE2RCAxMUJEO0NCNDI7MTEwRCAxMTZEIDExQkQ7CitDQjQzO0NCNDM7MTEwRCAxMTZEIDExQkU7Q0I0MzsxMTBEIDExNkQgMTFCRTsKK0NCNDQ7Q0I0NDsxMTBEIDExNkQgMTFCRjtDQjQ0OzExMEQgMTE2RCAxMUJGOworQ0I0NTtDQjQ1OzExMEQgMTE2RCAxMUMwO0NCNDU7MTEwRCAxMTZEIDExQzA7CitDQjQ2O0NCNDY7MTEwRCAxMTZEIDExQzE7Q0I0NjsxMTBEIDExNkQgMTFDMTsKK0NCNDc7Q0I0NzsxMTBEIDExNkQgMTFDMjtDQjQ3OzExMEQgMTE2RCAxMUMyOworQ0I0ODtDQjQ4OzExMEQgMTE2RTtDQjQ4OzExMEQgMTE2RTsKK0NCNDk7Q0I0OTsxMTBEIDExNkUgMTFBODtDQjQ5OzExMEQgMTE2RSAxMUE4OworQ0I0QTtDQjRBOzExMEQgMTE2RSAxMUE5O0NCNEE7MTEwRCAxMTZFIDExQTk7CitDQjRCO0NCNEI7MTEwRCAxMTZFIDExQUE7Q0I0QjsxMTBEIDExNkUgMTFBQTsKK0NCNEM7Q0I0QzsxMTBEIDExNkUgMTFBQjtDQjRDOzExMEQgMTE2RSAxMUFCOworQ0I0RDtDQjREOzExMEQgMTE2RSAxMUFDO0NCNEQ7MTEwRCAxMTZFIDExQUM7CitDQjRFO0NCNEU7MTEwRCAxMTZFIDExQUQ7Q0I0RTsxMTBEIDExNkUgMTFBRDsKK0NCNEY7Q0I0RjsxMTBEIDExNkUgMTFBRTtDQjRGOzExMEQgMTE2RSAxMUFFOworQ0I1MDtDQjUwOzExMEQgMTE2RSAxMUFGO0NCNTA7MTEwRCAxMTZFIDExQUY7CitDQjUxO0NCNTE7MTEwRCAxMTZFIDExQjA7Q0I1MTsxMTBEIDExNkUgMTFCMDsKK0NCNTI7Q0I1MjsxMTBEIDExNkUgMTFCMTtDQjUyOzExMEQgMTE2RSAxMUIxOworQ0I1MztDQjUzOzExMEQgMTE2RSAxMUIyO0NCNTM7MTEwRCAxMTZFIDExQjI7CitDQjU0O0NCNTQ7MTEwRCAxMTZFIDExQjM7Q0I1NDsxMTBEIDExNkUgMTFCMzsKK0NCNTU7Q0I1NTsxMTBEIDExNkUgMTFCNDtDQjU1OzExMEQgMTE2RSAxMUI0OworQ0I1NjtDQjU2OzExMEQgMTE2RSAxMUI1O0NCNTY7MTEwRCAxMTZFIDExQjU7CitDQjU3O0NCNTc7MTEwRCAxMTZFIDExQjY7Q0I1NzsxMTBEIDExNkUgMTFCNjsKK0NCNTg7Q0I1ODsxMTBEIDExNkUgMTFCNztDQjU4OzExMEQgMTE2RSAxMUI3OworQ0I1OTtDQjU5OzExMEQgMTE2RSAxMUI4O0NCNTk7MTEwRCAxMTZFIDExQjg7CitDQjVBO0NCNUE7MTEwRCAxMTZFIDExQjk7Q0I1QTsxMTBEIDExNkUgMTFCOTsKK0NCNUI7Q0I1QjsxMTBEIDExNkUgMTFCQTtDQjVCOzExMEQgMTE2RSAxMUJBOworQ0I1QztDQjVDOzExMEQgMTE2RSAxMUJCO0NCNUM7MTEwRCAxMTZFIDExQkI7CitDQjVEO0NCNUQ7MTEwRCAxMTZFIDExQkM7Q0I1RDsxMTBEIDExNkUgMTFCQzsKK0NCNUU7Q0I1RTsxMTBEIDExNkUgMTFCRDtDQjVFOzExMEQgMTE2RSAxMUJEOworQ0I1RjtDQjVGOzExMEQgMTE2RSAxMUJFO0NCNUY7MTEwRCAxMTZFIDExQkU7CitDQjYwO0NCNjA7MTEwRCAxMTZFIDExQkY7Q0I2MDsxMTBEIDExNkUgMTFCRjsKK0NCNjE7Q0I2MTsxMTBEIDExNkUgMTFDMDtDQjYxOzExMEQgMTE2RSAxMUMwOworQ0I2MjtDQjYyOzExMEQgMTE2RSAxMUMxO0NCNjI7MTEwRCAxMTZFIDExQzE7CitDQjYzO0NCNjM7MTEwRCAxMTZFIDExQzI7Q0I2MzsxMTBEIDExNkUgMTFDMjsKK0NCNjQ7Q0I2NDsxMTBEIDExNkY7Q0I2NDsxMTBEIDExNkY7CitDQjY1O0NCNjU7MTEwRCAxMTZGIDExQTg7Q0I2NTsxMTBEIDExNkYgMTFBODsKK0NCNjY7Q0I2NjsxMTBEIDExNkYgMTFBOTtDQjY2OzExMEQgMTE2RiAxMUE5OworQ0I2NztDQjY3OzExMEQgMTE2RiAxMUFBO0NCNjc7MTEwRCAxMTZGIDExQUE7CitDQjY4O0NCNjg7MTEwRCAxMTZGIDExQUI7Q0I2ODsxMTBEIDExNkYgMTFBQjsKK0NCNjk7Q0I2OTsxMTBEIDExNkYgMTFBQztDQjY5OzExMEQgMTE2RiAxMUFDOworQ0I2QTtDQjZBOzExMEQgMTE2RiAxMUFEO0NCNkE7MTEwRCAxMTZGIDExQUQ7CitDQjZCO0NCNkI7MTEwRCAxMTZGIDExQUU7Q0I2QjsxMTBEIDExNkYgMTFBRTsKK0NCNkM7Q0I2QzsxMTBEIDExNkYgMTFBRjtDQjZDOzExMEQgMTE2RiAxMUFGOworQ0I2RDtDQjZEOzExMEQgMTE2RiAxMUIwO0NCNkQ7MTEwRCAxMTZGIDExQjA7CitDQjZFO0NCNkU7MTEwRCAxMTZGIDExQjE7Q0I2RTsxMTBEIDExNkYgMTFCMTsKK0NCNkY7Q0I2RjsxMTBEIDExNkYgMTFCMjtDQjZGOzExMEQgMTE2RiAxMUIyOworQ0I3MDtDQjcwOzExMEQgMTE2RiAxMUIzO0NCNzA7MTEwRCAxMTZGIDExQjM7CitDQjcxO0NCNzE7MTEwRCAxMTZGIDExQjQ7Q0I3MTsxMTBEIDExNkYgMTFCNDsKK0NCNzI7Q0I3MjsxMTBEIDExNkYgMTFCNTtDQjcyOzExMEQgMTE2RiAxMUI1OworQ0I3MztDQjczOzExMEQgMTE2RiAxMUI2O0NCNzM7MTEwRCAxMTZGIDExQjY7CitDQjc0O0NCNzQ7MTEwRCAxMTZGIDExQjc7Q0I3NDsxMTBEIDExNkYgMTFCNzsKK0NCNzU7Q0I3NTsxMTBEIDExNkYgMTFCODtDQjc1OzExMEQgMTE2RiAxMUI4OworQ0I3NjtDQjc2OzExMEQgMTE2RiAxMUI5O0NCNzY7MTEwRCAxMTZGIDExQjk7CitDQjc3O0NCNzc7MTEwRCAxMTZGIDExQkE7Q0I3NzsxMTBEIDExNkYgMTFCQTsKK0NCNzg7Q0I3ODsxMTBEIDExNkYgMTFCQjtDQjc4OzExMEQgMTE2RiAxMUJCOworQ0I3OTtDQjc5OzExMEQgMTE2RiAxMUJDO0NCNzk7MTEwRCAxMTZGIDExQkM7CitDQjdBO0NCN0E7MTEwRCAxMTZGIDExQkQ7Q0I3QTsxMTBEIDExNkYgMTFCRDsKK0NCN0I7Q0I3QjsxMTBEIDExNkYgMTFCRTtDQjdCOzExMEQgMTE2RiAxMUJFOworQ0I3QztDQjdDOzExMEQgMTE2RiAxMUJGO0NCN0M7MTEwRCAxMTZGIDExQkY7CitDQjdEO0NCN0Q7MTEwRCAxMTZGIDExQzA7Q0I3RDsxMTBEIDExNkYgMTFDMDsKK0NCN0U7Q0I3RTsxMTBEIDExNkYgMTFDMTtDQjdFOzExMEQgMTE2RiAxMUMxOworQ0I3RjtDQjdGOzExMEQgMTE2RiAxMUMyO0NCN0Y7MTEwRCAxMTZGIDExQzI7CitDQjgwO0NCODA7MTEwRCAxMTcwO0NCODA7MTEwRCAxMTcwOworQ0I4MTtDQjgxOzExMEQgMTE3MCAxMUE4O0NCODE7MTEwRCAxMTcwIDExQTg7CitDQjgyO0NCODI7MTEwRCAxMTcwIDExQTk7Q0I4MjsxMTBEIDExNzAgMTFBOTsKK0NCODM7Q0I4MzsxMTBEIDExNzAgMTFBQTtDQjgzOzExMEQgMTE3MCAxMUFBOworQ0I4NDtDQjg0OzExMEQgMTE3MCAxMUFCO0NCODQ7MTEwRCAxMTcwIDExQUI7CitDQjg1O0NCODU7MTEwRCAxMTcwIDExQUM7Q0I4NTsxMTBEIDExNzAgMTFBQzsKK0NCODY7Q0I4NjsxMTBEIDExNzAgMTFBRDtDQjg2OzExMEQgMTE3MCAxMUFEOworQ0I4NztDQjg3OzExMEQgMTE3MCAxMUFFO0NCODc7MTEwRCAxMTcwIDExQUU7CitDQjg4O0NCODg7MTEwRCAxMTcwIDExQUY7Q0I4ODsxMTBEIDExNzAgMTFBRjsKK0NCODk7Q0I4OTsxMTBEIDExNzAgMTFCMDtDQjg5OzExMEQgMTE3MCAxMUIwOworQ0I4QTtDQjhBOzExMEQgMTE3MCAxMUIxO0NCOEE7MTEwRCAxMTcwIDExQjE7CitDQjhCO0NCOEI7MTEwRCAxMTcwIDExQjI7Q0I4QjsxMTBEIDExNzAgMTFCMjsKK0NCOEM7Q0I4QzsxMTBEIDExNzAgMTFCMztDQjhDOzExMEQgMTE3MCAxMUIzOworQ0I4RDtDQjhEOzExMEQgMTE3MCAxMUI0O0NCOEQ7MTEwRCAxMTcwIDExQjQ7CitDQjhFO0NCOEU7MTEwRCAxMTcwIDExQjU7Q0I4RTsxMTBEIDExNzAgMTFCNTsKK0NCOEY7Q0I4RjsxMTBEIDExNzAgMTFCNjtDQjhGOzExMEQgMTE3MCAxMUI2OworQ0I5MDtDQjkwOzExMEQgMTE3MCAxMUI3O0NCOTA7MTEwRCAxMTcwIDExQjc7CitDQjkxO0NCOTE7MTEwRCAxMTcwIDExQjg7Q0I5MTsxMTBEIDExNzAgMTFCODsKK0NCOTI7Q0I5MjsxMTBEIDExNzAgMTFCOTtDQjkyOzExMEQgMTE3MCAxMUI5OworQ0I5MztDQjkzOzExMEQgMTE3MCAxMUJBO0NCOTM7MTEwRCAxMTcwIDExQkE7CitDQjk0O0NCOTQ7MTEwRCAxMTcwIDExQkI7Q0I5NDsxMTBEIDExNzAgMTFCQjsKK0NCOTU7Q0I5NTsxMTBEIDExNzAgMTFCQztDQjk1OzExMEQgMTE3MCAxMUJDOworQ0I5NjtDQjk2OzExMEQgMTE3MCAxMUJEO0NCOTY7MTEwRCAxMTcwIDExQkQ7CitDQjk3O0NCOTc7MTEwRCAxMTcwIDExQkU7Q0I5NzsxMTBEIDExNzAgMTFCRTsKK0NCOTg7Q0I5ODsxMTBEIDExNzAgMTFCRjtDQjk4OzExMEQgMTE3MCAxMUJGOworQ0I5OTtDQjk5OzExMEQgMTE3MCAxMUMwO0NCOTk7MTEwRCAxMTcwIDExQzA7CitDQjlBO0NCOUE7MTEwRCAxMTcwIDExQzE7Q0I5QTsxMTBEIDExNzAgMTFDMTsKK0NCOUI7Q0I5QjsxMTBEIDExNzAgMTFDMjtDQjlCOzExMEQgMTE3MCAxMUMyOworQ0I5QztDQjlDOzExMEQgMTE3MTtDQjlDOzExMEQgMTE3MTsKK0NCOUQ7Q0I5RDsxMTBEIDExNzEgMTFBODtDQjlEOzExMEQgMTE3MSAxMUE4OworQ0I5RTtDQjlFOzExMEQgMTE3MSAxMUE5O0NCOUU7MTEwRCAxMTcxIDExQTk7CitDQjlGO0NCOUY7MTEwRCAxMTcxIDExQUE7Q0I5RjsxMTBEIDExNzEgMTFBQTsKK0NCQTA7Q0JBMDsxMTBEIDExNzEgMTFBQjtDQkEwOzExMEQgMTE3MSAxMUFCOworQ0JBMTtDQkExOzExMEQgMTE3MSAxMUFDO0NCQTE7MTEwRCAxMTcxIDExQUM7CitDQkEyO0NCQTI7MTEwRCAxMTcxIDExQUQ7Q0JBMjsxMTBEIDExNzEgMTFBRDsKK0NCQTM7Q0JBMzsxMTBEIDExNzEgMTFBRTtDQkEzOzExMEQgMTE3MSAxMUFFOworQ0JBNDtDQkE0OzExMEQgMTE3MSAxMUFGO0NCQTQ7MTEwRCAxMTcxIDExQUY7CitDQkE1O0NCQTU7MTEwRCAxMTcxIDExQjA7Q0JBNTsxMTBEIDExNzEgMTFCMDsKK0NCQTY7Q0JBNjsxMTBEIDExNzEgMTFCMTtDQkE2OzExMEQgMTE3MSAxMUIxOworQ0JBNztDQkE3OzExMEQgMTE3MSAxMUIyO0NCQTc7MTEwRCAxMTcxIDExQjI7CitDQkE4O0NCQTg7MTEwRCAxMTcxIDExQjM7Q0JBODsxMTBEIDExNzEgMTFCMzsKK0NCQTk7Q0JBOTsxMTBEIDExNzEgMTFCNDtDQkE5OzExMEQgMTE3MSAxMUI0OworQ0JBQTtDQkFBOzExMEQgMTE3MSAxMUI1O0NCQUE7MTEwRCAxMTcxIDExQjU7CitDQkFCO0NCQUI7MTEwRCAxMTcxIDExQjY7Q0JBQjsxMTBEIDExNzEgMTFCNjsKK0NCQUM7Q0JBQzsxMTBEIDExNzEgMTFCNztDQkFDOzExMEQgMTE3MSAxMUI3OworQ0JBRDtDQkFEOzExMEQgMTE3MSAxMUI4O0NCQUQ7MTEwRCAxMTcxIDExQjg7CitDQkFFO0NCQUU7MTEwRCAxMTcxIDExQjk7Q0JBRTsxMTBEIDExNzEgMTFCOTsKK0NCQUY7Q0JBRjsxMTBEIDExNzEgMTFCQTtDQkFGOzExMEQgMTE3MSAxMUJBOworQ0JCMDtDQkIwOzExMEQgMTE3MSAxMUJCO0NCQjA7MTEwRCAxMTcxIDExQkI7CitDQkIxO0NCQjE7MTEwRCAxMTcxIDExQkM7Q0JCMTsxMTBEIDExNzEgMTFCQzsKK0NCQjI7Q0JCMjsxMTBEIDExNzEgMTFCRDtDQkIyOzExMEQgMTE3MSAxMUJEOworQ0JCMztDQkIzOzExMEQgMTE3MSAxMUJFO0NCQjM7MTEwRCAxMTcxIDExQkU7CitDQkI0O0NCQjQ7MTEwRCAxMTcxIDExQkY7Q0JCNDsxMTBEIDExNzEgMTFCRjsKK0NCQjU7Q0JCNTsxMTBEIDExNzEgMTFDMDtDQkI1OzExMEQgMTE3MSAxMUMwOworQ0JCNjtDQkI2OzExMEQgMTE3MSAxMUMxO0NCQjY7MTEwRCAxMTcxIDExQzE7CitDQkI3O0NCQjc7MTEwRCAxMTcxIDExQzI7Q0JCNzsxMTBEIDExNzEgMTFDMjsKK0NCQjg7Q0JCODsxMTBEIDExNzI7Q0JCODsxMTBEIDExNzI7CitDQkI5O0NCQjk7MTEwRCAxMTcyIDExQTg7Q0JCOTsxMTBEIDExNzIgMTFBODsKK0NCQkE7Q0JCQTsxMTBEIDExNzIgMTFBOTtDQkJBOzExMEQgMTE3MiAxMUE5OworQ0JCQjtDQkJCOzExMEQgMTE3MiAxMUFBO0NCQkI7MTEwRCAxMTcyIDExQUE7CitDQkJDO0NCQkM7MTEwRCAxMTcyIDExQUI7Q0JCQzsxMTBEIDExNzIgMTFBQjsKK0NCQkQ7Q0JCRDsxMTBEIDExNzIgMTFBQztDQkJEOzExMEQgMTE3MiAxMUFDOworQ0JCRTtDQkJFOzExMEQgMTE3MiAxMUFEO0NCQkU7MTEwRCAxMTcyIDExQUQ7CitDQkJGO0NCQkY7MTEwRCAxMTcyIDExQUU7Q0JCRjsxMTBEIDExNzIgMTFBRTsKK0NCQzA7Q0JDMDsxMTBEIDExNzIgMTFBRjtDQkMwOzExMEQgMTE3MiAxMUFGOworQ0JDMTtDQkMxOzExMEQgMTE3MiAxMUIwO0NCQzE7MTEwRCAxMTcyIDExQjA7CitDQkMyO0NCQzI7MTEwRCAxMTcyIDExQjE7Q0JDMjsxMTBEIDExNzIgMTFCMTsKK0NCQzM7Q0JDMzsxMTBEIDExNzIgMTFCMjtDQkMzOzExMEQgMTE3MiAxMUIyOworQ0JDNDtDQkM0OzExMEQgMTE3MiAxMUIzO0NCQzQ7MTEwRCAxMTcyIDExQjM7CitDQkM1O0NCQzU7MTEwRCAxMTcyIDExQjQ7Q0JDNTsxMTBEIDExNzIgMTFCNDsKK0NCQzY7Q0JDNjsxMTBEIDExNzIgMTFCNTtDQkM2OzExMEQgMTE3MiAxMUI1OworQ0JDNztDQkM3OzExMEQgMTE3MiAxMUI2O0NCQzc7MTEwRCAxMTcyIDExQjY7CitDQkM4O0NCQzg7MTEwRCAxMTcyIDExQjc7Q0JDODsxMTBEIDExNzIgMTFCNzsKK0NCQzk7Q0JDOTsxMTBEIDExNzIgMTFCODtDQkM5OzExMEQgMTE3MiAxMUI4OworQ0JDQTtDQkNBOzExMEQgMTE3MiAxMUI5O0NCQ0E7MTEwRCAxMTcyIDExQjk7CitDQkNCO0NCQ0I7MTEwRCAxMTcyIDExQkE7Q0JDQjsxMTBEIDExNzIgMTFCQTsKK0NCQ0M7Q0JDQzsxMTBEIDExNzIgMTFCQjtDQkNDOzExMEQgMTE3MiAxMUJCOworQ0JDRDtDQkNEOzExMEQgMTE3MiAxMUJDO0NCQ0Q7MTEwRCAxMTcyIDExQkM7CitDQkNFO0NCQ0U7MTEwRCAxMTcyIDExQkQ7Q0JDRTsxMTBEIDExNzIgMTFCRDsKK0NCQ0Y7Q0JDRjsxMTBEIDExNzIgMTFCRTtDQkNGOzExMEQgMTE3MiAxMUJFOworQ0JEMDtDQkQwOzExMEQgMTE3MiAxMUJGO0NCRDA7MTEwRCAxMTcyIDExQkY7CitDQkQxO0NCRDE7MTEwRCAxMTcyIDExQzA7Q0JEMTsxMTBEIDExNzIgMTFDMDsKK0NCRDI7Q0JEMjsxMTBEIDExNzIgMTFDMTtDQkQyOzExMEQgMTE3MiAxMUMxOworQ0JEMztDQkQzOzExMEQgMTE3MiAxMUMyO0NCRDM7MTEwRCAxMTcyIDExQzI7CitDQkQ0O0NCRDQ7MTEwRCAxMTczO0NCRDQ7MTEwRCAxMTczOworQ0JENTtDQkQ1OzExMEQgMTE3MyAxMUE4O0NCRDU7MTEwRCAxMTczIDExQTg7CitDQkQ2O0NCRDY7MTEwRCAxMTczIDExQTk7Q0JENjsxMTBEIDExNzMgMTFBOTsKK0NCRDc7Q0JENzsxMTBEIDExNzMgMTFBQTtDQkQ3OzExMEQgMTE3MyAxMUFBOworQ0JEODtDQkQ4OzExMEQgMTE3MyAxMUFCO0NCRDg7MTEwRCAxMTczIDExQUI7CitDQkQ5O0NCRDk7MTEwRCAxMTczIDExQUM7Q0JEOTsxMTBEIDExNzMgMTFBQzsKK0NCREE7Q0JEQTsxMTBEIDExNzMgMTFBRDtDQkRBOzExMEQgMTE3MyAxMUFEOworQ0JEQjtDQkRCOzExMEQgMTE3MyAxMUFFO0NCREI7MTEwRCAxMTczIDExQUU7CitDQkRDO0NCREM7MTEwRCAxMTczIDExQUY7Q0JEQzsxMTBEIDExNzMgMTFBRjsKK0NCREQ7Q0JERDsxMTBEIDExNzMgMTFCMDtDQkREOzExMEQgMTE3MyAxMUIwOworQ0JERTtDQkRFOzExMEQgMTE3MyAxMUIxO0NCREU7MTEwRCAxMTczIDExQjE7CitDQkRGO0NCREY7MTEwRCAxMTczIDExQjI7Q0JERjsxMTBEIDExNzMgMTFCMjsKK0NCRTA7Q0JFMDsxMTBEIDExNzMgMTFCMztDQkUwOzExMEQgMTE3MyAxMUIzOworQ0JFMTtDQkUxOzExMEQgMTE3MyAxMUI0O0NCRTE7MTEwRCAxMTczIDExQjQ7CitDQkUyO0NCRTI7MTEwRCAxMTczIDExQjU7Q0JFMjsxMTBEIDExNzMgMTFCNTsKK0NCRTM7Q0JFMzsxMTBEIDExNzMgMTFCNjtDQkUzOzExMEQgMTE3MyAxMUI2OworQ0JFNDtDQkU0OzExMEQgMTE3MyAxMUI3O0NCRTQ7MTEwRCAxMTczIDExQjc7CitDQkU1O0NCRTU7MTEwRCAxMTczIDExQjg7Q0JFNTsxMTBEIDExNzMgMTFCODsKK0NCRTY7Q0JFNjsxMTBEIDExNzMgMTFCOTtDQkU2OzExMEQgMTE3MyAxMUI5OworQ0JFNztDQkU3OzExMEQgMTE3MyAxMUJBO0NCRTc7MTEwRCAxMTczIDExQkE7CitDQkU4O0NCRTg7MTEwRCAxMTczIDExQkI7Q0JFODsxMTBEIDExNzMgMTFCQjsKK0NCRTk7Q0JFOTsxMTBEIDExNzMgMTFCQztDQkU5OzExMEQgMTE3MyAxMUJDOworQ0JFQTtDQkVBOzExMEQgMTE3MyAxMUJEO0NCRUE7MTEwRCAxMTczIDExQkQ7CitDQkVCO0NCRUI7MTEwRCAxMTczIDExQkU7Q0JFQjsxMTBEIDExNzMgMTFCRTsKK0NCRUM7Q0JFQzsxMTBEIDExNzMgMTFCRjtDQkVDOzExMEQgMTE3MyAxMUJGOworQ0JFRDtDQkVEOzExMEQgMTE3MyAxMUMwO0NCRUQ7MTEwRCAxMTczIDExQzA7CitDQkVFO0NCRUU7MTEwRCAxMTczIDExQzE7Q0JFRTsxMTBEIDExNzMgMTFDMTsKK0NCRUY7Q0JFRjsxMTBEIDExNzMgMTFDMjtDQkVGOzExMEQgMTE3MyAxMUMyOworQ0JGMDtDQkYwOzExMEQgMTE3NDtDQkYwOzExMEQgMTE3NDsKK0NCRjE7Q0JGMTsxMTBEIDExNzQgMTFBODtDQkYxOzExMEQgMTE3NCAxMUE4OworQ0JGMjtDQkYyOzExMEQgMTE3NCAxMUE5O0NCRjI7MTEwRCAxMTc0IDExQTk7CitDQkYzO0NCRjM7MTEwRCAxMTc0IDExQUE7Q0JGMzsxMTBEIDExNzQgMTFBQTsKK0NCRjQ7Q0JGNDsxMTBEIDExNzQgMTFBQjtDQkY0OzExMEQgMTE3NCAxMUFCOworQ0JGNTtDQkY1OzExMEQgMTE3NCAxMUFDO0NCRjU7MTEwRCAxMTc0IDExQUM7CitDQkY2O0NCRjY7MTEwRCAxMTc0IDExQUQ7Q0JGNjsxMTBEIDExNzQgMTFBRDsKK0NCRjc7Q0JGNzsxMTBEIDExNzQgMTFBRTtDQkY3OzExMEQgMTE3NCAxMUFFOworQ0JGODtDQkY4OzExMEQgMTE3NCAxMUFGO0NCRjg7MTEwRCAxMTc0IDExQUY7CitDQkY5O0NCRjk7MTEwRCAxMTc0IDExQjA7Q0JGOTsxMTBEIDExNzQgMTFCMDsKK0NCRkE7Q0JGQTsxMTBEIDExNzQgMTFCMTtDQkZBOzExMEQgMTE3NCAxMUIxOworQ0JGQjtDQkZCOzExMEQgMTE3NCAxMUIyO0NCRkI7MTEwRCAxMTc0IDExQjI7CitDQkZDO0NCRkM7MTEwRCAxMTc0IDExQjM7Q0JGQzsxMTBEIDExNzQgMTFCMzsKK0NCRkQ7Q0JGRDsxMTBEIDExNzQgMTFCNDtDQkZEOzExMEQgMTE3NCAxMUI0OworQ0JGRTtDQkZFOzExMEQgMTE3NCAxMUI1O0NCRkU7MTEwRCAxMTc0IDExQjU7CitDQkZGO0NCRkY7MTEwRCAxMTc0IDExQjY7Q0JGRjsxMTBEIDExNzQgMTFCNjsKK0NDMDA7Q0MwMDsxMTBEIDExNzQgMTFCNztDQzAwOzExMEQgMTE3NCAxMUI3OworQ0MwMTtDQzAxOzExMEQgMTE3NCAxMUI4O0NDMDE7MTEwRCAxMTc0IDExQjg7CitDQzAyO0NDMDI7MTEwRCAxMTc0IDExQjk7Q0MwMjsxMTBEIDExNzQgMTFCOTsKK0NDMDM7Q0MwMzsxMTBEIDExNzQgMTFCQTtDQzAzOzExMEQgMTE3NCAxMUJBOworQ0MwNDtDQzA0OzExMEQgMTE3NCAxMUJCO0NDMDQ7MTEwRCAxMTc0IDExQkI7CitDQzA1O0NDMDU7MTEwRCAxMTc0IDExQkM7Q0MwNTsxMTBEIDExNzQgMTFCQzsKK0NDMDY7Q0MwNjsxMTBEIDExNzQgMTFCRDtDQzA2OzExMEQgMTE3NCAxMUJEOworQ0MwNztDQzA3OzExMEQgMTE3NCAxMUJFO0NDMDc7MTEwRCAxMTc0IDExQkU7CitDQzA4O0NDMDg7MTEwRCAxMTc0IDExQkY7Q0MwODsxMTBEIDExNzQgMTFCRjsKK0NDMDk7Q0MwOTsxMTBEIDExNzQgMTFDMDtDQzA5OzExMEQgMTE3NCAxMUMwOworQ0MwQTtDQzBBOzExMEQgMTE3NCAxMUMxO0NDMEE7MTEwRCAxMTc0IDExQzE7CitDQzBCO0NDMEI7MTEwRCAxMTc0IDExQzI7Q0MwQjsxMTBEIDExNzQgMTFDMjsKK0NDMEM7Q0MwQzsxMTBEIDExNzU7Q0MwQzsxMTBEIDExNzU7CitDQzBEO0NDMEQ7MTEwRCAxMTc1IDExQTg7Q0MwRDsxMTBEIDExNzUgMTFBODsKK0NDMEU7Q0MwRTsxMTBEIDExNzUgMTFBOTtDQzBFOzExMEQgMTE3NSAxMUE5OworQ0MwRjtDQzBGOzExMEQgMTE3NSAxMUFBO0NDMEY7MTEwRCAxMTc1IDExQUE7CitDQzEwO0NDMTA7MTEwRCAxMTc1IDExQUI7Q0MxMDsxMTBEIDExNzUgMTFBQjsKK0NDMTE7Q0MxMTsxMTBEIDExNzUgMTFBQztDQzExOzExMEQgMTE3NSAxMUFDOworQ0MxMjtDQzEyOzExMEQgMTE3NSAxMUFEO0NDMTI7MTEwRCAxMTc1IDExQUQ7CitDQzEzO0NDMTM7MTEwRCAxMTc1IDExQUU7Q0MxMzsxMTBEIDExNzUgMTFBRTsKK0NDMTQ7Q0MxNDsxMTBEIDExNzUgMTFBRjtDQzE0OzExMEQgMTE3NSAxMUFGOworQ0MxNTtDQzE1OzExMEQgMTE3NSAxMUIwO0NDMTU7MTEwRCAxMTc1IDExQjA7CitDQzE2O0NDMTY7MTEwRCAxMTc1IDExQjE7Q0MxNjsxMTBEIDExNzUgMTFCMTsKK0NDMTc7Q0MxNzsxMTBEIDExNzUgMTFCMjtDQzE3OzExMEQgMTE3NSAxMUIyOworQ0MxODtDQzE4OzExMEQgMTE3NSAxMUIzO0NDMTg7MTEwRCAxMTc1IDExQjM7CitDQzE5O0NDMTk7MTEwRCAxMTc1IDExQjQ7Q0MxOTsxMTBEIDExNzUgMTFCNDsKK0NDMUE7Q0MxQTsxMTBEIDExNzUgMTFCNTtDQzFBOzExMEQgMTE3NSAxMUI1OworQ0MxQjtDQzFCOzExMEQgMTE3NSAxMUI2O0NDMUI7MTEwRCAxMTc1IDExQjY7CitDQzFDO0NDMUM7MTEwRCAxMTc1IDExQjc7Q0MxQzsxMTBEIDExNzUgMTFCNzsKK0NDMUQ7Q0MxRDsxMTBEIDExNzUgMTFCODtDQzFEOzExMEQgMTE3NSAxMUI4OworQ0MxRTtDQzFFOzExMEQgMTE3NSAxMUI5O0NDMUU7MTEwRCAxMTc1IDExQjk7CitDQzFGO0NDMUY7MTEwRCAxMTc1IDExQkE7Q0MxRjsxMTBEIDExNzUgMTFCQTsKK0NDMjA7Q0MyMDsxMTBEIDExNzUgMTFCQjtDQzIwOzExMEQgMTE3NSAxMUJCOworQ0MyMTtDQzIxOzExMEQgMTE3NSAxMUJDO0NDMjE7MTEwRCAxMTc1IDExQkM7CitDQzIyO0NDMjI7MTEwRCAxMTc1IDExQkQ7Q0MyMjsxMTBEIDExNzUgMTFCRDsKK0NDMjM7Q0MyMzsxMTBEIDExNzUgMTFCRTtDQzIzOzExMEQgMTE3NSAxMUJFOworQ0MyNDtDQzI0OzExMEQgMTE3NSAxMUJGO0NDMjQ7MTEwRCAxMTc1IDExQkY7CitDQzI1O0NDMjU7MTEwRCAxMTc1IDExQzA7Q0MyNTsxMTBEIDExNzUgMTFDMDsKK0NDMjY7Q0MyNjsxMTBEIDExNzUgMTFDMTtDQzI2OzExMEQgMTE3NSAxMUMxOworQ0MyNztDQzI3OzExMEQgMTE3NSAxMUMyO0NDMjc7MTEwRCAxMTc1IDExQzI7CitDQzI4O0NDMjg7MTEwRSAxMTYxO0NDMjg7MTEwRSAxMTYxOworQ0MyOTtDQzI5OzExMEUgMTE2MSAxMUE4O0NDMjk7MTEwRSAxMTYxIDExQTg7CitDQzJBO0NDMkE7MTEwRSAxMTYxIDExQTk7Q0MyQTsxMTBFIDExNjEgMTFBOTsKK0NDMkI7Q0MyQjsxMTBFIDExNjEgMTFBQTtDQzJCOzExMEUgMTE2MSAxMUFBOworQ0MyQztDQzJDOzExMEUgMTE2MSAxMUFCO0NDMkM7MTEwRSAxMTYxIDExQUI7CitDQzJEO0NDMkQ7MTEwRSAxMTYxIDExQUM7Q0MyRDsxMTBFIDExNjEgMTFBQzsKK0NDMkU7Q0MyRTsxMTBFIDExNjEgMTFBRDtDQzJFOzExMEUgMTE2MSAxMUFEOworQ0MyRjtDQzJGOzExMEUgMTE2MSAxMUFFO0NDMkY7MTEwRSAxMTYxIDExQUU7CitDQzMwO0NDMzA7MTEwRSAxMTYxIDExQUY7Q0MzMDsxMTBFIDExNjEgMTFBRjsKK0NDMzE7Q0MzMTsxMTBFIDExNjEgMTFCMDtDQzMxOzExMEUgMTE2MSAxMUIwOworQ0MzMjtDQzMyOzExMEUgMTE2MSAxMUIxO0NDMzI7MTEwRSAxMTYxIDExQjE7CitDQzMzO0NDMzM7MTEwRSAxMTYxIDExQjI7Q0MzMzsxMTBFIDExNjEgMTFCMjsKK0NDMzQ7Q0MzNDsxMTBFIDExNjEgMTFCMztDQzM0OzExMEUgMTE2MSAxMUIzOworQ0MzNTtDQzM1OzExMEUgMTE2MSAxMUI0O0NDMzU7MTEwRSAxMTYxIDExQjQ7CitDQzM2O0NDMzY7MTEwRSAxMTYxIDExQjU7Q0MzNjsxMTBFIDExNjEgMTFCNTsKK0NDMzc7Q0MzNzsxMTBFIDExNjEgMTFCNjtDQzM3OzExMEUgMTE2MSAxMUI2OworQ0MzODtDQzM4OzExMEUgMTE2MSAxMUI3O0NDMzg7MTEwRSAxMTYxIDExQjc7CitDQzM5O0NDMzk7MTEwRSAxMTYxIDExQjg7Q0MzOTsxMTBFIDExNjEgMTFCODsKK0NDM0E7Q0MzQTsxMTBFIDExNjEgMTFCOTtDQzNBOzExMEUgMTE2MSAxMUI5OworQ0MzQjtDQzNCOzExMEUgMTE2MSAxMUJBO0NDM0I7MTEwRSAxMTYxIDExQkE7CitDQzNDO0NDM0M7MTEwRSAxMTYxIDExQkI7Q0MzQzsxMTBFIDExNjEgMTFCQjsKK0NDM0Q7Q0MzRDsxMTBFIDExNjEgMTFCQztDQzNEOzExMEUgMTE2MSAxMUJDOworQ0MzRTtDQzNFOzExMEUgMTE2MSAxMUJEO0NDM0U7MTEwRSAxMTYxIDExQkQ7CitDQzNGO0NDM0Y7MTEwRSAxMTYxIDExQkU7Q0MzRjsxMTBFIDExNjEgMTFCRTsKK0NDNDA7Q0M0MDsxMTBFIDExNjEgMTFCRjtDQzQwOzExMEUgMTE2MSAxMUJGOworQ0M0MTtDQzQxOzExMEUgMTE2MSAxMUMwO0NDNDE7MTEwRSAxMTYxIDExQzA7CitDQzQyO0NDNDI7MTEwRSAxMTYxIDExQzE7Q0M0MjsxMTBFIDExNjEgMTFDMTsKK0NDNDM7Q0M0MzsxMTBFIDExNjEgMTFDMjtDQzQzOzExMEUgMTE2MSAxMUMyOworQ0M0NDtDQzQ0OzExMEUgMTE2MjtDQzQ0OzExMEUgMTE2MjsKK0NDNDU7Q0M0NTsxMTBFIDExNjIgMTFBODtDQzQ1OzExMEUgMTE2MiAxMUE4OworQ0M0NjtDQzQ2OzExMEUgMTE2MiAxMUE5O0NDNDY7MTEwRSAxMTYyIDExQTk7CitDQzQ3O0NDNDc7MTEwRSAxMTYyIDExQUE7Q0M0NzsxMTBFIDExNjIgMTFBQTsKK0NDNDg7Q0M0ODsxMTBFIDExNjIgMTFBQjtDQzQ4OzExMEUgMTE2MiAxMUFCOworQ0M0OTtDQzQ5OzExMEUgMTE2MiAxMUFDO0NDNDk7MTEwRSAxMTYyIDExQUM7CitDQzRBO0NDNEE7MTEwRSAxMTYyIDExQUQ7Q0M0QTsxMTBFIDExNjIgMTFBRDsKK0NDNEI7Q0M0QjsxMTBFIDExNjIgMTFBRTtDQzRCOzExMEUgMTE2MiAxMUFFOworQ0M0QztDQzRDOzExMEUgMTE2MiAxMUFGO0NDNEM7MTEwRSAxMTYyIDExQUY7CitDQzREO0NDNEQ7MTEwRSAxMTYyIDExQjA7Q0M0RDsxMTBFIDExNjIgMTFCMDsKK0NDNEU7Q0M0RTsxMTBFIDExNjIgMTFCMTtDQzRFOzExMEUgMTE2MiAxMUIxOworQ0M0RjtDQzRGOzExMEUgMTE2MiAxMUIyO0NDNEY7MTEwRSAxMTYyIDExQjI7CitDQzUwO0NDNTA7MTEwRSAxMTYyIDExQjM7Q0M1MDsxMTBFIDExNjIgMTFCMzsKK0NDNTE7Q0M1MTsxMTBFIDExNjIgMTFCNDtDQzUxOzExMEUgMTE2MiAxMUI0OworQ0M1MjtDQzUyOzExMEUgMTE2MiAxMUI1O0NDNTI7MTEwRSAxMTYyIDExQjU7CitDQzUzO0NDNTM7MTEwRSAxMTYyIDExQjY7Q0M1MzsxMTBFIDExNjIgMTFCNjsKK0NDNTQ7Q0M1NDsxMTBFIDExNjIgMTFCNztDQzU0OzExMEUgMTE2MiAxMUI3OworQ0M1NTtDQzU1OzExMEUgMTE2MiAxMUI4O0NDNTU7MTEwRSAxMTYyIDExQjg7CitDQzU2O0NDNTY7MTEwRSAxMTYyIDExQjk7Q0M1NjsxMTBFIDExNjIgMTFCOTsKK0NDNTc7Q0M1NzsxMTBFIDExNjIgMTFCQTtDQzU3OzExMEUgMTE2MiAxMUJBOworQ0M1ODtDQzU4OzExMEUgMTE2MiAxMUJCO0NDNTg7MTEwRSAxMTYyIDExQkI7CitDQzU5O0NDNTk7MTEwRSAxMTYyIDExQkM7Q0M1OTsxMTBFIDExNjIgMTFCQzsKK0NDNUE7Q0M1QTsxMTBFIDExNjIgMTFCRDtDQzVBOzExMEUgMTE2MiAxMUJEOworQ0M1QjtDQzVCOzExMEUgMTE2MiAxMUJFO0NDNUI7MTEwRSAxMTYyIDExQkU7CitDQzVDO0NDNUM7MTEwRSAxMTYyIDExQkY7Q0M1QzsxMTBFIDExNjIgMTFCRjsKK0NDNUQ7Q0M1RDsxMTBFIDExNjIgMTFDMDtDQzVEOzExMEUgMTE2MiAxMUMwOworQ0M1RTtDQzVFOzExMEUgMTE2MiAxMUMxO0NDNUU7MTEwRSAxMTYyIDExQzE7CitDQzVGO0NDNUY7MTEwRSAxMTYyIDExQzI7Q0M1RjsxMTBFIDExNjIgMTFDMjsKK0NDNjA7Q0M2MDsxMTBFIDExNjM7Q0M2MDsxMTBFIDExNjM7CitDQzYxO0NDNjE7MTEwRSAxMTYzIDExQTg7Q0M2MTsxMTBFIDExNjMgMTFBODsKK0NDNjI7Q0M2MjsxMTBFIDExNjMgMTFBOTtDQzYyOzExMEUgMTE2MyAxMUE5OworQ0M2MztDQzYzOzExMEUgMTE2MyAxMUFBO0NDNjM7MTEwRSAxMTYzIDExQUE7CitDQzY0O0NDNjQ7MTEwRSAxMTYzIDExQUI7Q0M2NDsxMTBFIDExNjMgMTFBQjsKK0NDNjU7Q0M2NTsxMTBFIDExNjMgMTFBQztDQzY1OzExMEUgMTE2MyAxMUFDOworQ0M2NjtDQzY2OzExMEUgMTE2MyAxMUFEO0NDNjY7MTEwRSAxMTYzIDExQUQ7CitDQzY3O0NDNjc7MTEwRSAxMTYzIDExQUU7Q0M2NzsxMTBFIDExNjMgMTFBRTsKK0NDNjg7Q0M2ODsxMTBFIDExNjMgMTFBRjtDQzY4OzExMEUgMTE2MyAxMUFGOworQ0M2OTtDQzY5OzExMEUgMTE2MyAxMUIwO0NDNjk7MTEwRSAxMTYzIDExQjA7CitDQzZBO0NDNkE7MTEwRSAxMTYzIDExQjE7Q0M2QTsxMTBFIDExNjMgMTFCMTsKK0NDNkI7Q0M2QjsxMTBFIDExNjMgMTFCMjtDQzZCOzExMEUgMTE2MyAxMUIyOworQ0M2QztDQzZDOzExMEUgMTE2MyAxMUIzO0NDNkM7MTEwRSAxMTYzIDExQjM7CitDQzZEO0NDNkQ7MTEwRSAxMTYzIDExQjQ7Q0M2RDsxMTBFIDExNjMgMTFCNDsKK0NDNkU7Q0M2RTsxMTBFIDExNjMgMTFCNTtDQzZFOzExMEUgMTE2MyAxMUI1OworQ0M2RjtDQzZGOzExMEUgMTE2MyAxMUI2O0NDNkY7MTEwRSAxMTYzIDExQjY7CitDQzcwO0NDNzA7MTEwRSAxMTYzIDExQjc7Q0M3MDsxMTBFIDExNjMgMTFCNzsKK0NDNzE7Q0M3MTsxMTBFIDExNjMgMTFCODtDQzcxOzExMEUgMTE2MyAxMUI4OworQ0M3MjtDQzcyOzExMEUgMTE2MyAxMUI5O0NDNzI7MTEwRSAxMTYzIDExQjk7CitDQzczO0NDNzM7MTEwRSAxMTYzIDExQkE7Q0M3MzsxMTBFIDExNjMgMTFCQTsKK0NDNzQ7Q0M3NDsxMTBFIDExNjMgMTFCQjtDQzc0OzExMEUgMTE2MyAxMUJCOworQ0M3NTtDQzc1OzExMEUgMTE2MyAxMUJDO0NDNzU7MTEwRSAxMTYzIDExQkM7CitDQzc2O0NDNzY7MTEwRSAxMTYzIDExQkQ7Q0M3NjsxMTBFIDExNjMgMTFCRDsKK0NDNzc7Q0M3NzsxMTBFIDExNjMgMTFCRTtDQzc3OzExMEUgMTE2MyAxMUJFOworQ0M3ODtDQzc4OzExMEUgMTE2MyAxMUJGO0NDNzg7MTEwRSAxMTYzIDExQkY7CitDQzc5O0NDNzk7MTEwRSAxMTYzIDExQzA7Q0M3OTsxMTBFIDExNjMgMTFDMDsKK0NDN0E7Q0M3QTsxMTBFIDExNjMgMTFDMTtDQzdBOzExMEUgMTE2MyAxMUMxOworQ0M3QjtDQzdCOzExMEUgMTE2MyAxMUMyO0NDN0I7MTEwRSAxMTYzIDExQzI7CitDQzdDO0NDN0M7MTEwRSAxMTY0O0NDN0M7MTEwRSAxMTY0OworQ0M3RDtDQzdEOzExMEUgMTE2NCAxMUE4O0NDN0Q7MTEwRSAxMTY0IDExQTg7CitDQzdFO0NDN0U7MTEwRSAxMTY0IDExQTk7Q0M3RTsxMTBFIDExNjQgMTFBOTsKK0NDN0Y7Q0M3RjsxMTBFIDExNjQgMTFBQTtDQzdGOzExMEUgMTE2NCAxMUFBOworQ0M4MDtDQzgwOzExMEUgMTE2NCAxMUFCO0NDODA7MTEwRSAxMTY0IDExQUI7CitDQzgxO0NDODE7MTEwRSAxMTY0IDExQUM7Q0M4MTsxMTBFIDExNjQgMTFBQzsKK0NDODI7Q0M4MjsxMTBFIDExNjQgMTFBRDtDQzgyOzExMEUgMTE2NCAxMUFEOworQ0M4MztDQzgzOzExMEUgMTE2NCAxMUFFO0NDODM7MTEwRSAxMTY0IDExQUU7CitDQzg0O0NDODQ7MTEwRSAxMTY0IDExQUY7Q0M4NDsxMTBFIDExNjQgMTFBRjsKK0NDODU7Q0M4NTsxMTBFIDExNjQgMTFCMDtDQzg1OzExMEUgMTE2NCAxMUIwOworQ0M4NjtDQzg2OzExMEUgMTE2NCAxMUIxO0NDODY7MTEwRSAxMTY0IDExQjE7CitDQzg3O0NDODc7MTEwRSAxMTY0IDExQjI7Q0M4NzsxMTBFIDExNjQgMTFCMjsKK0NDODg7Q0M4ODsxMTBFIDExNjQgMTFCMztDQzg4OzExMEUgMTE2NCAxMUIzOworQ0M4OTtDQzg5OzExMEUgMTE2NCAxMUI0O0NDODk7MTEwRSAxMTY0IDExQjQ7CitDQzhBO0NDOEE7MTEwRSAxMTY0IDExQjU7Q0M4QTsxMTBFIDExNjQgMTFCNTsKK0NDOEI7Q0M4QjsxMTBFIDExNjQgMTFCNjtDQzhCOzExMEUgMTE2NCAxMUI2OworQ0M4QztDQzhDOzExMEUgMTE2NCAxMUI3O0NDOEM7MTEwRSAxMTY0IDExQjc7CitDQzhEO0NDOEQ7MTEwRSAxMTY0IDExQjg7Q0M4RDsxMTBFIDExNjQgMTFCODsKK0NDOEU7Q0M4RTsxMTBFIDExNjQgMTFCOTtDQzhFOzExMEUgMTE2NCAxMUI5OworQ0M4RjtDQzhGOzExMEUgMTE2NCAxMUJBO0NDOEY7MTEwRSAxMTY0IDExQkE7CitDQzkwO0NDOTA7MTEwRSAxMTY0IDExQkI7Q0M5MDsxMTBFIDExNjQgMTFCQjsKK0NDOTE7Q0M5MTsxMTBFIDExNjQgMTFCQztDQzkxOzExMEUgMTE2NCAxMUJDOworQ0M5MjtDQzkyOzExMEUgMTE2NCAxMUJEO0NDOTI7MTEwRSAxMTY0IDExQkQ7CitDQzkzO0NDOTM7MTEwRSAxMTY0IDExQkU7Q0M5MzsxMTBFIDExNjQgMTFCRTsKK0NDOTQ7Q0M5NDsxMTBFIDExNjQgMTFCRjtDQzk0OzExMEUgMTE2NCAxMUJGOworQ0M5NTtDQzk1OzExMEUgMTE2NCAxMUMwO0NDOTU7MTEwRSAxMTY0IDExQzA7CitDQzk2O0NDOTY7MTEwRSAxMTY0IDExQzE7Q0M5NjsxMTBFIDExNjQgMTFDMTsKK0NDOTc7Q0M5NzsxMTBFIDExNjQgMTFDMjtDQzk3OzExMEUgMTE2NCAxMUMyOworQ0M5ODtDQzk4OzExMEUgMTE2NTtDQzk4OzExMEUgMTE2NTsKK0NDOTk7Q0M5OTsxMTBFIDExNjUgMTFBODtDQzk5OzExMEUgMTE2NSAxMUE4OworQ0M5QTtDQzlBOzExMEUgMTE2NSAxMUE5O0NDOUE7MTEwRSAxMTY1IDExQTk7CitDQzlCO0NDOUI7MTEwRSAxMTY1IDExQUE7Q0M5QjsxMTBFIDExNjUgMTFBQTsKK0NDOUM7Q0M5QzsxMTBFIDExNjUgMTFBQjtDQzlDOzExMEUgMTE2NSAxMUFCOworQ0M5RDtDQzlEOzExMEUgMTE2NSAxMUFDO0NDOUQ7MTEwRSAxMTY1IDExQUM7CitDQzlFO0NDOUU7MTEwRSAxMTY1IDExQUQ7Q0M5RTsxMTBFIDExNjUgMTFBRDsKK0NDOUY7Q0M5RjsxMTBFIDExNjUgMTFBRTtDQzlGOzExMEUgMTE2NSAxMUFFOworQ0NBMDtDQ0EwOzExMEUgMTE2NSAxMUFGO0NDQTA7MTEwRSAxMTY1IDExQUY7CitDQ0ExO0NDQTE7MTEwRSAxMTY1IDExQjA7Q0NBMTsxMTBFIDExNjUgMTFCMDsKK0NDQTI7Q0NBMjsxMTBFIDExNjUgMTFCMTtDQ0EyOzExMEUgMTE2NSAxMUIxOworQ0NBMztDQ0EzOzExMEUgMTE2NSAxMUIyO0NDQTM7MTEwRSAxMTY1IDExQjI7CitDQ0E0O0NDQTQ7MTEwRSAxMTY1IDExQjM7Q0NBNDsxMTBFIDExNjUgMTFCMzsKK0NDQTU7Q0NBNTsxMTBFIDExNjUgMTFCNDtDQ0E1OzExMEUgMTE2NSAxMUI0OworQ0NBNjtDQ0E2OzExMEUgMTE2NSAxMUI1O0NDQTY7MTEwRSAxMTY1IDExQjU7CitDQ0E3O0NDQTc7MTEwRSAxMTY1IDExQjY7Q0NBNzsxMTBFIDExNjUgMTFCNjsKK0NDQTg7Q0NBODsxMTBFIDExNjUgMTFCNztDQ0E4OzExMEUgMTE2NSAxMUI3OworQ0NBOTtDQ0E5OzExMEUgMTE2NSAxMUI4O0NDQTk7MTEwRSAxMTY1IDExQjg7CitDQ0FBO0NDQUE7MTEwRSAxMTY1IDExQjk7Q0NBQTsxMTBFIDExNjUgMTFCOTsKK0NDQUI7Q0NBQjsxMTBFIDExNjUgMTFCQTtDQ0FCOzExMEUgMTE2NSAxMUJBOworQ0NBQztDQ0FDOzExMEUgMTE2NSAxMUJCO0NDQUM7MTEwRSAxMTY1IDExQkI7CitDQ0FEO0NDQUQ7MTEwRSAxMTY1IDExQkM7Q0NBRDsxMTBFIDExNjUgMTFCQzsKK0NDQUU7Q0NBRTsxMTBFIDExNjUgMTFCRDtDQ0FFOzExMEUgMTE2NSAxMUJEOworQ0NBRjtDQ0FGOzExMEUgMTE2NSAxMUJFO0NDQUY7MTEwRSAxMTY1IDExQkU7CitDQ0IwO0NDQjA7MTEwRSAxMTY1IDExQkY7Q0NCMDsxMTBFIDExNjUgMTFCRjsKK0NDQjE7Q0NCMTsxMTBFIDExNjUgMTFDMDtDQ0IxOzExMEUgMTE2NSAxMUMwOworQ0NCMjtDQ0IyOzExMEUgMTE2NSAxMUMxO0NDQjI7MTEwRSAxMTY1IDExQzE7CitDQ0IzO0NDQjM7MTEwRSAxMTY1IDExQzI7Q0NCMzsxMTBFIDExNjUgMTFDMjsKK0NDQjQ7Q0NCNDsxMTBFIDExNjY7Q0NCNDsxMTBFIDExNjY7CitDQ0I1O0NDQjU7MTEwRSAxMTY2IDExQTg7Q0NCNTsxMTBFIDExNjYgMTFBODsKK0NDQjY7Q0NCNjsxMTBFIDExNjYgMTFBOTtDQ0I2OzExMEUgMTE2NiAxMUE5OworQ0NCNztDQ0I3OzExMEUgMTE2NiAxMUFBO0NDQjc7MTEwRSAxMTY2IDExQUE7CitDQ0I4O0NDQjg7MTEwRSAxMTY2IDExQUI7Q0NCODsxMTBFIDExNjYgMTFBQjsKK0NDQjk7Q0NCOTsxMTBFIDExNjYgMTFBQztDQ0I5OzExMEUgMTE2NiAxMUFDOworQ0NCQTtDQ0JBOzExMEUgMTE2NiAxMUFEO0NDQkE7MTEwRSAxMTY2IDExQUQ7CitDQ0JCO0NDQkI7MTEwRSAxMTY2IDExQUU7Q0NCQjsxMTBFIDExNjYgMTFBRTsKK0NDQkM7Q0NCQzsxMTBFIDExNjYgMTFBRjtDQ0JDOzExMEUgMTE2NiAxMUFGOworQ0NCRDtDQ0JEOzExMEUgMTE2NiAxMUIwO0NDQkQ7MTEwRSAxMTY2IDExQjA7CitDQ0JFO0NDQkU7MTEwRSAxMTY2IDExQjE7Q0NCRTsxMTBFIDExNjYgMTFCMTsKK0NDQkY7Q0NCRjsxMTBFIDExNjYgMTFCMjtDQ0JGOzExMEUgMTE2NiAxMUIyOworQ0NDMDtDQ0MwOzExMEUgMTE2NiAxMUIzO0NDQzA7MTEwRSAxMTY2IDExQjM7CitDQ0MxO0NDQzE7MTEwRSAxMTY2IDExQjQ7Q0NDMTsxMTBFIDExNjYgMTFCNDsKK0NDQzI7Q0NDMjsxMTBFIDExNjYgMTFCNTtDQ0MyOzExMEUgMTE2NiAxMUI1OworQ0NDMztDQ0MzOzExMEUgMTE2NiAxMUI2O0NDQzM7MTEwRSAxMTY2IDExQjY7CitDQ0M0O0NDQzQ7MTEwRSAxMTY2IDExQjc7Q0NDNDsxMTBFIDExNjYgMTFCNzsKK0NDQzU7Q0NDNTsxMTBFIDExNjYgMTFCODtDQ0M1OzExMEUgMTE2NiAxMUI4OworQ0NDNjtDQ0M2OzExMEUgMTE2NiAxMUI5O0NDQzY7MTEwRSAxMTY2IDExQjk7CitDQ0M3O0NDQzc7MTEwRSAxMTY2IDExQkE7Q0NDNzsxMTBFIDExNjYgMTFCQTsKK0NDQzg7Q0NDODsxMTBFIDExNjYgMTFCQjtDQ0M4OzExMEUgMTE2NiAxMUJCOworQ0NDOTtDQ0M5OzExMEUgMTE2NiAxMUJDO0NDQzk7MTEwRSAxMTY2IDExQkM7CitDQ0NBO0NDQ0E7MTEwRSAxMTY2IDExQkQ7Q0NDQTsxMTBFIDExNjYgMTFCRDsKK0NDQ0I7Q0NDQjsxMTBFIDExNjYgMTFCRTtDQ0NCOzExMEUgMTE2NiAxMUJFOworQ0NDQztDQ0NDOzExMEUgMTE2NiAxMUJGO0NDQ0M7MTEwRSAxMTY2IDExQkY7CitDQ0NEO0NDQ0Q7MTEwRSAxMTY2IDExQzA7Q0NDRDsxMTBFIDExNjYgMTFDMDsKK0NDQ0U7Q0NDRTsxMTBFIDExNjYgMTFDMTtDQ0NFOzExMEUgMTE2NiAxMUMxOworQ0NDRjtDQ0NGOzExMEUgMTE2NiAxMUMyO0NDQ0Y7MTEwRSAxMTY2IDExQzI7CitDQ0QwO0NDRDA7MTEwRSAxMTY3O0NDRDA7MTEwRSAxMTY3OworQ0NEMTtDQ0QxOzExMEUgMTE2NyAxMUE4O0NDRDE7MTEwRSAxMTY3IDExQTg7CitDQ0QyO0NDRDI7MTEwRSAxMTY3IDExQTk7Q0NEMjsxMTBFIDExNjcgMTFBOTsKK0NDRDM7Q0NEMzsxMTBFIDExNjcgMTFBQTtDQ0QzOzExMEUgMTE2NyAxMUFBOworQ0NENDtDQ0Q0OzExMEUgMTE2NyAxMUFCO0NDRDQ7MTEwRSAxMTY3IDExQUI7CitDQ0Q1O0NDRDU7MTEwRSAxMTY3IDExQUM7Q0NENTsxMTBFIDExNjcgMTFBQzsKK0NDRDY7Q0NENjsxMTBFIDExNjcgMTFBRDtDQ0Q2OzExMEUgMTE2NyAxMUFEOworQ0NENztDQ0Q3OzExMEUgMTE2NyAxMUFFO0NDRDc7MTEwRSAxMTY3IDExQUU7CitDQ0Q4O0NDRDg7MTEwRSAxMTY3IDExQUY7Q0NEODsxMTBFIDExNjcgMTFBRjsKK0NDRDk7Q0NEOTsxMTBFIDExNjcgMTFCMDtDQ0Q5OzExMEUgMTE2NyAxMUIwOworQ0NEQTtDQ0RBOzExMEUgMTE2NyAxMUIxO0NDREE7MTEwRSAxMTY3IDExQjE7CitDQ0RCO0NDREI7MTEwRSAxMTY3IDExQjI7Q0NEQjsxMTBFIDExNjcgMTFCMjsKK0NDREM7Q0NEQzsxMTBFIDExNjcgMTFCMztDQ0RDOzExMEUgMTE2NyAxMUIzOworQ0NERDtDQ0REOzExMEUgMTE2NyAxMUI0O0NDREQ7MTEwRSAxMTY3IDExQjQ7CitDQ0RFO0NDREU7MTEwRSAxMTY3IDExQjU7Q0NERTsxMTBFIDExNjcgMTFCNTsKK0NDREY7Q0NERjsxMTBFIDExNjcgMTFCNjtDQ0RGOzExMEUgMTE2NyAxMUI2OworQ0NFMDtDQ0UwOzExMEUgMTE2NyAxMUI3O0NDRTA7MTEwRSAxMTY3IDExQjc7CitDQ0UxO0NDRTE7MTEwRSAxMTY3IDExQjg7Q0NFMTsxMTBFIDExNjcgMTFCODsKK0NDRTI7Q0NFMjsxMTBFIDExNjcgMTFCOTtDQ0UyOzExMEUgMTE2NyAxMUI5OworQ0NFMztDQ0UzOzExMEUgMTE2NyAxMUJBO0NDRTM7MTEwRSAxMTY3IDExQkE7CitDQ0U0O0NDRTQ7MTEwRSAxMTY3IDExQkI7Q0NFNDsxMTBFIDExNjcgMTFCQjsKK0NDRTU7Q0NFNTsxMTBFIDExNjcgMTFCQztDQ0U1OzExMEUgMTE2NyAxMUJDOworQ0NFNjtDQ0U2OzExMEUgMTE2NyAxMUJEO0NDRTY7MTEwRSAxMTY3IDExQkQ7CitDQ0U3O0NDRTc7MTEwRSAxMTY3IDExQkU7Q0NFNzsxMTBFIDExNjcgMTFCRTsKK0NDRTg7Q0NFODsxMTBFIDExNjcgMTFCRjtDQ0U4OzExMEUgMTE2NyAxMUJGOworQ0NFOTtDQ0U5OzExMEUgMTE2NyAxMUMwO0NDRTk7MTEwRSAxMTY3IDExQzA7CitDQ0VBO0NDRUE7MTEwRSAxMTY3IDExQzE7Q0NFQTsxMTBFIDExNjcgMTFDMTsKK0NDRUI7Q0NFQjsxMTBFIDExNjcgMTFDMjtDQ0VCOzExMEUgMTE2NyAxMUMyOworQ0NFQztDQ0VDOzExMEUgMTE2ODtDQ0VDOzExMEUgMTE2ODsKK0NDRUQ7Q0NFRDsxMTBFIDExNjggMTFBODtDQ0VEOzExMEUgMTE2OCAxMUE4OworQ0NFRTtDQ0VFOzExMEUgMTE2OCAxMUE5O0NDRUU7MTEwRSAxMTY4IDExQTk7CitDQ0VGO0NDRUY7MTEwRSAxMTY4IDExQUE7Q0NFRjsxMTBFIDExNjggMTFBQTsKK0NDRjA7Q0NGMDsxMTBFIDExNjggMTFBQjtDQ0YwOzExMEUgMTE2OCAxMUFCOworQ0NGMTtDQ0YxOzExMEUgMTE2OCAxMUFDO0NDRjE7MTEwRSAxMTY4IDExQUM7CitDQ0YyO0NDRjI7MTEwRSAxMTY4IDExQUQ7Q0NGMjsxMTBFIDExNjggMTFBRDsKK0NDRjM7Q0NGMzsxMTBFIDExNjggMTFBRTtDQ0YzOzExMEUgMTE2OCAxMUFFOworQ0NGNDtDQ0Y0OzExMEUgMTE2OCAxMUFGO0NDRjQ7MTEwRSAxMTY4IDExQUY7CitDQ0Y1O0NDRjU7MTEwRSAxMTY4IDExQjA7Q0NGNTsxMTBFIDExNjggMTFCMDsKK0NDRjY7Q0NGNjsxMTBFIDExNjggMTFCMTtDQ0Y2OzExMEUgMTE2OCAxMUIxOworQ0NGNztDQ0Y3OzExMEUgMTE2OCAxMUIyO0NDRjc7MTEwRSAxMTY4IDExQjI7CitDQ0Y4O0NDRjg7MTEwRSAxMTY4IDExQjM7Q0NGODsxMTBFIDExNjggMTFCMzsKK0NDRjk7Q0NGOTsxMTBFIDExNjggMTFCNDtDQ0Y5OzExMEUgMTE2OCAxMUI0OworQ0NGQTtDQ0ZBOzExMEUgMTE2OCAxMUI1O0NDRkE7MTEwRSAxMTY4IDExQjU7CitDQ0ZCO0NDRkI7MTEwRSAxMTY4IDExQjY7Q0NGQjsxMTBFIDExNjggMTFCNjsKK0NDRkM7Q0NGQzsxMTBFIDExNjggMTFCNztDQ0ZDOzExMEUgMTE2OCAxMUI3OworQ0NGRDtDQ0ZEOzExMEUgMTE2OCAxMUI4O0NDRkQ7MTEwRSAxMTY4IDExQjg7CitDQ0ZFO0NDRkU7MTEwRSAxMTY4IDExQjk7Q0NGRTsxMTBFIDExNjggMTFCOTsKK0NDRkY7Q0NGRjsxMTBFIDExNjggMTFCQTtDQ0ZGOzExMEUgMTE2OCAxMUJBOworQ0QwMDtDRDAwOzExMEUgMTE2OCAxMUJCO0NEMDA7MTEwRSAxMTY4IDExQkI7CitDRDAxO0NEMDE7MTEwRSAxMTY4IDExQkM7Q0QwMTsxMTBFIDExNjggMTFCQzsKK0NEMDI7Q0QwMjsxMTBFIDExNjggMTFCRDtDRDAyOzExMEUgMTE2OCAxMUJEOworQ0QwMztDRDAzOzExMEUgMTE2OCAxMUJFO0NEMDM7MTEwRSAxMTY4IDExQkU7CitDRDA0O0NEMDQ7MTEwRSAxMTY4IDExQkY7Q0QwNDsxMTBFIDExNjggMTFCRjsKK0NEMDU7Q0QwNTsxMTBFIDExNjggMTFDMDtDRDA1OzExMEUgMTE2OCAxMUMwOworQ0QwNjtDRDA2OzExMEUgMTE2OCAxMUMxO0NEMDY7MTEwRSAxMTY4IDExQzE7CitDRDA3O0NEMDc7MTEwRSAxMTY4IDExQzI7Q0QwNzsxMTBFIDExNjggMTFDMjsKK0NEMDg7Q0QwODsxMTBFIDExNjk7Q0QwODsxMTBFIDExNjk7CitDRDA5O0NEMDk7MTEwRSAxMTY5IDExQTg7Q0QwOTsxMTBFIDExNjkgMTFBODsKK0NEMEE7Q0QwQTsxMTBFIDExNjkgMTFBOTtDRDBBOzExMEUgMTE2OSAxMUE5OworQ0QwQjtDRDBCOzExMEUgMTE2OSAxMUFBO0NEMEI7MTEwRSAxMTY5IDExQUE7CitDRDBDO0NEMEM7MTEwRSAxMTY5IDExQUI7Q0QwQzsxMTBFIDExNjkgMTFBQjsKK0NEMEQ7Q0QwRDsxMTBFIDExNjkgMTFBQztDRDBEOzExMEUgMTE2OSAxMUFDOworQ0QwRTtDRDBFOzExMEUgMTE2OSAxMUFEO0NEMEU7MTEwRSAxMTY5IDExQUQ7CitDRDBGO0NEMEY7MTEwRSAxMTY5IDExQUU7Q0QwRjsxMTBFIDExNjkgMTFBRTsKK0NEMTA7Q0QxMDsxMTBFIDExNjkgMTFBRjtDRDEwOzExMEUgMTE2OSAxMUFGOworQ0QxMTtDRDExOzExMEUgMTE2OSAxMUIwO0NEMTE7MTEwRSAxMTY5IDExQjA7CitDRDEyO0NEMTI7MTEwRSAxMTY5IDExQjE7Q0QxMjsxMTBFIDExNjkgMTFCMTsKK0NEMTM7Q0QxMzsxMTBFIDExNjkgMTFCMjtDRDEzOzExMEUgMTE2OSAxMUIyOworQ0QxNDtDRDE0OzExMEUgMTE2OSAxMUIzO0NEMTQ7MTEwRSAxMTY5IDExQjM7CitDRDE1O0NEMTU7MTEwRSAxMTY5IDExQjQ7Q0QxNTsxMTBFIDExNjkgMTFCNDsKK0NEMTY7Q0QxNjsxMTBFIDExNjkgMTFCNTtDRDE2OzExMEUgMTE2OSAxMUI1OworQ0QxNztDRDE3OzExMEUgMTE2OSAxMUI2O0NEMTc7MTEwRSAxMTY5IDExQjY7CitDRDE4O0NEMTg7MTEwRSAxMTY5IDExQjc7Q0QxODsxMTBFIDExNjkgMTFCNzsKK0NEMTk7Q0QxOTsxMTBFIDExNjkgMTFCODtDRDE5OzExMEUgMTE2OSAxMUI4OworQ0QxQTtDRDFBOzExMEUgMTE2OSAxMUI5O0NEMUE7MTEwRSAxMTY5IDExQjk7CitDRDFCO0NEMUI7MTEwRSAxMTY5IDExQkE7Q0QxQjsxMTBFIDExNjkgMTFCQTsKK0NEMUM7Q0QxQzsxMTBFIDExNjkgMTFCQjtDRDFDOzExMEUgMTE2OSAxMUJCOworQ0QxRDtDRDFEOzExMEUgMTE2OSAxMUJDO0NEMUQ7MTEwRSAxMTY5IDExQkM7CitDRDFFO0NEMUU7MTEwRSAxMTY5IDExQkQ7Q0QxRTsxMTBFIDExNjkgMTFCRDsKK0NEMUY7Q0QxRjsxMTBFIDExNjkgMTFCRTtDRDFGOzExMEUgMTE2OSAxMUJFOworQ0QyMDtDRDIwOzExMEUgMTE2OSAxMUJGO0NEMjA7MTEwRSAxMTY5IDExQkY7CitDRDIxO0NEMjE7MTEwRSAxMTY5IDExQzA7Q0QyMTsxMTBFIDExNjkgMTFDMDsKK0NEMjI7Q0QyMjsxMTBFIDExNjkgMTFDMTtDRDIyOzExMEUgMTE2OSAxMUMxOworQ0QyMztDRDIzOzExMEUgMTE2OSAxMUMyO0NEMjM7MTEwRSAxMTY5IDExQzI7CitDRDI0O0NEMjQ7MTEwRSAxMTZBO0NEMjQ7MTEwRSAxMTZBOworQ0QyNTtDRDI1OzExMEUgMTE2QSAxMUE4O0NEMjU7MTEwRSAxMTZBIDExQTg7CitDRDI2O0NEMjY7MTEwRSAxMTZBIDExQTk7Q0QyNjsxMTBFIDExNkEgMTFBOTsKK0NEMjc7Q0QyNzsxMTBFIDExNkEgMTFBQTtDRDI3OzExMEUgMTE2QSAxMUFBOworQ0QyODtDRDI4OzExMEUgMTE2QSAxMUFCO0NEMjg7MTEwRSAxMTZBIDExQUI7CitDRDI5O0NEMjk7MTEwRSAxMTZBIDExQUM7Q0QyOTsxMTBFIDExNkEgMTFBQzsKK0NEMkE7Q0QyQTsxMTBFIDExNkEgMTFBRDtDRDJBOzExMEUgMTE2QSAxMUFEOworQ0QyQjtDRDJCOzExMEUgMTE2QSAxMUFFO0NEMkI7MTEwRSAxMTZBIDExQUU7CitDRDJDO0NEMkM7MTEwRSAxMTZBIDExQUY7Q0QyQzsxMTBFIDExNkEgMTFBRjsKK0NEMkQ7Q0QyRDsxMTBFIDExNkEgMTFCMDtDRDJEOzExMEUgMTE2QSAxMUIwOworQ0QyRTtDRDJFOzExMEUgMTE2QSAxMUIxO0NEMkU7MTEwRSAxMTZBIDExQjE7CitDRDJGO0NEMkY7MTEwRSAxMTZBIDExQjI7Q0QyRjsxMTBFIDExNkEgMTFCMjsKK0NEMzA7Q0QzMDsxMTBFIDExNkEgMTFCMztDRDMwOzExMEUgMTE2QSAxMUIzOworQ0QzMTtDRDMxOzExMEUgMTE2QSAxMUI0O0NEMzE7MTEwRSAxMTZBIDExQjQ7CitDRDMyO0NEMzI7MTEwRSAxMTZBIDExQjU7Q0QzMjsxMTBFIDExNkEgMTFCNTsKK0NEMzM7Q0QzMzsxMTBFIDExNkEgMTFCNjtDRDMzOzExMEUgMTE2QSAxMUI2OworQ0QzNDtDRDM0OzExMEUgMTE2QSAxMUI3O0NEMzQ7MTEwRSAxMTZBIDExQjc7CitDRDM1O0NEMzU7MTEwRSAxMTZBIDExQjg7Q0QzNTsxMTBFIDExNkEgMTFCODsKK0NEMzY7Q0QzNjsxMTBFIDExNkEgMTFCOTtDRDM2OzExMEUgMTE2QSAxMUI5OworQ0QzNztDRDM3OzExMEUgMTE2QSAxMUJBO0NEMzc7MTEwRSAxMTZBIDExQkE7CitDRDM4O0NEMzg7MTEwRSAxMTZBIDExQkI7Q0QzODsxMTBFIDExNkEgMTFCQjsKK0NEMzk7Q0QzOTsxMTBFIDExNkEgMTFCQztDRDM5OzExMEUgMTE2QSAxMUJDOworQ0QzQTtDRDNBOzExMEUgMTE2QSAxMUJEO0NEM0E7MTEwRSAxMTZBIDExQkQ7CitDRDNCO0NEM0I7MTEwRSAxMTZBIDExQkU7Q0QzQjsxMTBFIDExNkEgMTFCRTsKK0NEM0M7Q0QzQzsxMTBFIDExNkEgMTFCRjtDRDNDOzExMEUgMTE2QSAxMUJGOworQ0QzRDtDRDNEOzExMEUgMTE2QSAxMUMwO0NEM0Q7MTEwRSAxMTZBIDExQzA7CitDRDNFO0NEM0U7MTEwRSAxMTZBIDExQzE7Q0QzRTsxMTBFIDExNkEgMTFDMTsKK0NEM0Y7Q0QzRjsxMTBFIDExNkEgMTFDMjtDRDNGOzExMEUgMTE2QSAxMUMyOworQ0Q0MDtDRDQwOzExMEUgMTE2QjtDRDQwOzExMEUgMTE2QjsKK0NENDE7Q0Q0MTsxMTBFIDExNkIgMTFBODtDRDQxOzExMEUgMTE2QiAxMUE4OworQ0Q0MjtDRDQyOzExMEUgMTE2QiAxMUE5O0NENDI7MTEwRSAxMTZCIDExQTk7CitDRDQzO0NENDM7MTEwRSAxMTZCIDExQUE7Q0Q0MzsxMTBFIDExNkIgMTFBQTsKK0NENDQ7Q0Q0NDsxMTBFIDExNkIgMTFBQjtDRDQ0OzExMEUgMTE2QiAxMUFCOworQ0Q0NTtDRDQ1OzExMEUgMTE2QiAxMUFDO0NENDU7MTEwRSAxMTZCIDExQUM7CitDRDQ2O0NENDY7MTEwRSAxMTZCIDExQUQ7Q0Q0NjsxMTBFIDExNkIgMTFBRDsKK0NENDc7Q0Q0NzsxMTBFIDExNkIgMTFBRTtDRDQ3OzExMEUgMTE2QiAxMUFFOworQ0Q0ODtDRDQ4OzExMEUgMTE2QiAxMUFGO0NENDg7MTEwRSAxMTZCIDExQUY7CitDRDQ5O0NENDk7MTEwRSAxMTZCIDExQjA7Q0Q0OTsxMTBFIDExNkIgMTFCMDsKK0NENEE7Q0Q0QTsxMTBFIDExNkIgMTFCMTtDRDRBOzExMEUgMTE2QiAxMUIxOworQ0Q0QjtDRDRCOzExMEUgMTE2QiAxMUIyO0NENEI7MTEwRSAxMTZCIDExQjI7CitDRDRDO0NENEM7MTEwRSAxMTZCIDExQjM7Q0Q0QzsxMTBFIDExNkIgMTFCMzsKK0NENEQ7Q0Q0RDsxMTBFIDExNkIgMTFCNDtDRDREOzExMEUgMTE2QiAxMUI0OworQ0Q0RTtDRDRFOzExMEUgMTE2QiAxMUI1O0NENEU7MTEwRSAxMTZCIDExQjU7CitDRDRGO0NENEY7MTEwRSAxMTZCIDExQjY7Q0Q0RjsxMTBFIDExNkIgMTFCNjsKK0NENTA7Q0Q1MDsxMTBFIDExNkIgMTFCNztDRDUwOzExMEUgMTE2QiAxMUI3OworQ0Q1MTtDRDUxOzExMEUgMTE2QiAxMUI4O0NENTE7MTEwRSAxMTZCIDExQjg7CitDRDUyO0NENTI7MTEwRSAxMTZCIDExQjk7Q0Q1MjsxMTBFIDExNkIgMTFCOTsKK0NENTM7Q0Q1MzsxMTBFIDExNkIgMTFCQTtDRDUzOzExMEUgMTE2QiAxMUJBOworQ0Q1NDtDRDU0OzExMEUgMTE2QiAxMUJCO0NENTQ7MTEwRSAxMTZCIDExQkI7CitDRDU1O0NENTU7MTEwRSAxMTZCIDExQkM7Q0Q1NTsxMTBFIDExNkIgMTFCQzsKK0NENTY7Q0Q1NjsxMTBFIDExNkIgMTFCRDtDRDU2OzExMEUgMTE2QiAxMUJEOworQ0Q1NztDRDU3OzExMEUgMTE2QiAxMUJFO0NENTc7MTEwRSAxMTZCIDExQkU7CitDRDU4O0NENTg7MTEwRSAxMTZCIDExQkY7Q0Q1ODsxMTBFIDExNkIgMTFCRjsKK0NENTk7Q0Q1OTsxMTBFIDExNkIgMTFDMDtDRDU5OzExMEUgMTE2QiAxMUMwOworQ0Q1QTtDRDVBOzExMEUgMTE2QiAxMUMxO0NENUE7MTEwRSAxMTZCIDExQzE7CitDRDVCO0NENUI7MTEwRSAxMTZCIDExQzI7Q0Q1QjsxMTBFIDExNkIgMTFDMjsKK0NENUM7Q0Q1QzsxMTBFIDExNkM7Q0Q1QzsxMTBFIDExNkM7CitDRDVEO0NENUQ7MTEwRSAxMTZDIDExQTg7Q0Q1RDsxMTBFIDExNkMgMTFBODsKK0NENUU7Q0Q1RTsxMTBFIDExNkMgMTFBOTtDRDVFOzExMEUgMTE2QyAxMUE5OworQ0Q1RjtDRDVGOzExMEUgMTE2QyAxMUFBO0NENUY7MTEwRSAxMTZDIDExQUE7CitDRDYwO0NENjA7MTEwRSAxMTZDIDExQUI7Q0Q2MDsxMTBFIDExNkMgMTFBQjsKK0NENjE7Q0Q2MTsxMTBFIDExNkMgMTFBQztDRDYxOzExMEUgMTE2QyAxMUFDOworQ0Q2MjtDRDYyOzExMEUgMTE2QyAxMUFEO0NENjI7MTEwRSAxMTZDIDExQUQ7CitDRDYzO0NENjM7MTEwRSAxMTZDIDExQUU7Q0Q2MzsxMTBFIDExNkMgMTFBRTsKK0NENjQ7Q0Q2NDsxMTBFIDExNkMgMTFBRjtDRDY0OzExMEUgMTE2QyAxMUFGOworQ0Q2NTtDRDY1OzExMEUgMTE2QyAxMUIwO0NENjU7MTEwRSAxMTZDIDExQjA7CitDRDY2O0NENjY7MTEwRSAxMTZDIDExQjE7Q0Q2NjsxMTBFIDExNkMgMTFCMTsKK0NENjc7Q0Q2NzsxMTBFIDExNkMgMTFCMjtDRDY3OzExMEUgMTE2QyAxMUIyOworQ0Q2ODtDRDY4OzExMEUgMTE2QyAxMUIzO0NENjg7MTEwRSAxMTZDIDExQjM7CitDRDY5O0NENjk7MTEwRSAxMTZDIDExQjQ7Q0Q2OTsxMTBFIDExNkMgMTFCNDsKK0NENkE7Q0Q2QTsxMTBFIDExNkMgMTFCNTtDRDZBOzExMEUgMTE2QyAxMUI1OworQ0Q2QjtDRDZCOzExMEUgMTE2QyAxMUI2O0NENkI7MTEwRSAxMTZDIDExQjY7CitDRDZDO0NENkM7MTEwRSAxMTZDIDExQjc7Q0Q2QzsxMTBFIDExNkMgMTFCNzsKK0NENkQ7Q0Q2RDsxMTBFIDExNkMgMTFCODtDRDZEOzExMEUgMTE2QyAxMUI4OworQ0Q2RTtDRDZFOzExMEUgMTE2QyAxMUI5O0NENkU7MTEwRSAxMTZDIDExQjk7CitDRDZGO0NENkY7MTEwRSAxMTZDIDExQkE7Q0Q2RjsxMTBFIDExNkMgMTFCQTsKK0NENzA7Q0Q3MDsxMTBFIDExNkMgMTFCQjtDRDcwOzExMEUgMTE2QyAxMUJCOworQ0Q3MTtDRDcxOzExMEUgMTE2QyAxMUJDO0NENzE7MTEwRSAxMTZDIDExQkM7CitDRDcyO0NENzI7MTEwRSAxMTZDIDExQkQ7Q0Q3MjsxMTBFIDExNkMgMTFCRDsKK0NENzM7Q0Q3MzsxMTBFIDExNkMgMTFCRTtDRDczOzExMEUgMTE2QyAxMUJFOworQ0Q3NDtDRDc0OzExMEUgMTE2QyAxMUJGO0NENzQ7MTEwRSAxMTZDIDExQkY7CitDRDc1O0NENzU7MTEwRSAxMTZDIDExQzA7Q0Q3NTsxMTBFIDExNkMgMTFDMDsKK0NENzY7Q0Q3NjsxMTBFIDExNkMgMTFDMTtDRDc2OzExMEUgMTE2QyAxMUMxOworQ0Q3NztDRDc3OzExMEUgMTE2QyAxMUMyO0NENzc7MTEwRSAxMTZDIDExQzI7CitDRDc4O0NENzg7MTEwRSAxMTZEO0NENzg7MTEwRSAxMTZEOworQ0Q3OTtDRDc5OzExMEUgMTE2RCAxMUE4O0NENzk7MTEwRSAxMTZEIDExQTg7CitDRDdBO0NEN0E7MTEwRSAxMTZEIDExQTk7Q0Q3QTsxMTBFIDExNkQgMTFBOTsKK0NEN0I7Q0Q3QjsxMTBFIDExNkQgMTFBQTtDRDdCOzExMEUgMTE2RCAxMUFBOworQ0Q3QztDRDdDOzExMEUgMTE2RCAxMUFCO0NEN0M7MTEwRSAxMTZEIDExQUI7CitDRDdEO0NEN0Q7MTEwRSAxMTZEIDExQUM7Q0Q3RDsxMTBFIDExNkQgMTFBQzsKK0NEN0U7Q0Q3RTsxMTBFIDExNkQgMTFBRDtDRDdFOzExMEUgMTE2RCAxMUFEOworQ0Q3RjtDRDdGOzExMEUgMTE2RCAxMUFFO0NEN0Y7MTEwRSAxMTZEIDExQUU7CitDRDgwO0NEODA7MTEwRSAxMTZEIDExQUY7Q0Q4MDsxMTBFIDExNkQgMTFBRjsKK0NEODE7Q0Q4MTsxMTBFIDExNkQgMTFCMDtDRDgxOzExMEUgMTE2RCAxMUIwOworQ0Q4MjtDRDgyOzExMEUgMTE2RCAxMUIxO0NEODI7MTEwRSAxMTZEIDExQjE7CitDRDgzO0NEODM7MTEwRSAxMTZEIDExQjI7Q0Q4MzsxMTBFIDExNkQgMTFCMjsKK0NEODQ7Q0Q4NDsxMTBFIDExNkQgMTFCMztDRDg0OzExMEUgMTE2RCAxMUIzOworQ0Q4NTtDRDg1OzExMEUgMTE2RCAxMUI0O0NEODU7MTEwRSAxMTZEIDExQjQ7CitDRDg2O0NEODY7MTEwRSAxMTZEIDExQjU7Q0Q4NjsxMTBFIDExNkQgMTFCNTsKK0NEODc7Q0Q4NzsxMTBFIDExNkQgMTFCNjtDRDg3OzExMEUgMTE2RCAxMUI2OworQ0Q4ODtDRDg4OzExMEUgMTE2RCAxMUI3O0NEODg7MTEwRSAxMTZEIDExQjc7CitDRDg5O0NEODk7MTEwRSAxMTZEIDExQjg7Q0Q4OTsxMTBFIDExNkQgMTFCODsKK0NEOEE7Q0Q4QTsxMTBFIDExNkQgMTFCOTtDRDhBOzExMEUgMTE2RCAxMUI5OworQ0Q4QjtDRDhCOzExMEUgMTE2RCAxMUJBO0NEOEI7MTEwRSAxMTZEIDExQkE7CitDRDhDO0NEOEM7MTEwRSAxMTZEIDExQkI7Q0Q4QzsxMTBFIDExNkQgMTFCQjsKK0NEOEQ7Q0Q4RDsxMTBFIDExNkQgMTFCQztDRDhEOzExMEUgMTE2RCAxMUJDOworQ0Q4RTtDRDhFOzExMEUgMTE2RCAxMUJEO0NEOEU7MTEwRSAxMTZEIDExQkQ7CitDRDhGO0NEOEY7MTEwRSAxMTZEIDExQkU7Q0Q4RjsxMTBFIDExNkQgMTFCRTsKK0NEOTA7Q0Q5MDsxMTBFIDExNkQgMTFCRjtDRDkwOzExMEUgMTE2RCAxMUJGOworQ0Q5MTtDRDkxOzExMEUgMTE2RCAxMUMwO0NEOTE7MTEwRSAxMTZEIDExQzA7CitDRDkyO0NEOTI7MTEwRSAxMTZEIDExQzE7Q0Q5MjsxMTBFIDExNkQgMTFDMTsKK0NEOTM7Q0Q5MzsxMTBFIDExNkQgMTFDMjtDRDkzOzExMEUgMTE2RCAxMUMyOworQ0Q5NDtDRDk0OzExMEUgMTE2RTtDRDk0OzExMEUgMTE2RTsKK0NEOTU7Q0Q5NTsxMTBFIDExNkUgMTFBODtDRDk1OzExMEUgMTE2RSAxMUE4OworQ0Q5NjtDRDk2OzExMEUgMTE2RSAxMUE5O0NEOTY7MTEwRSAxMTZFIDExQTk7CitDRDk3O0NEOTc7MTEwRSAxMTZFIDExQUE7Q0Q5NzsxMTBFIDExNkUgMTFBQTsKK0NEOTg7Q0Q5ODsxMTBFIDExNkUgMTFBQjtDRDk4OzExMEUgMTE2RSAxMUFCOworQ0Q5OTtDRDk5OzExMEUgMTE2RSAxMUFDO0NEOTk7MTEwRSAxMTZFIDExQUM7CitDRDlBO0NEOUE7MTEwRSAxMTZFIDExQUQ7Q0Q5QTsxMTBFIDExNkUgMTFBRDsKK0NEOUI7Q0Q5QjsxMTBFIDExNkUgMTFBRTtDRDlCOzExMEUgMTE2RSAxMUFFOworQ0Q5QztDRDlDOzExMEUgMTE2RSAxMUFGO0NEOUM7MTEwRSAxMTZFIDExQUY7CitDRDlEO0NEOUQ7MTEwRSAxMTZFIDExQjA7Q0Q5RDsxMTBFIDExNkUgMTFCMDsKK0NEOUU7Q0Q5RTsxMTBFIDExNkUgMTFCMTtDRDlFOzExMEUgMTE2RSAxMUIxOworQ0Q5RjtDRDlGOzExMEUgMTE2RSAxMUIyO0NEOUY7MTEwRSAxMTZFIDExQjI7CitDREEwO0NEQTA7MTEwRSAxMTZFIDExQjM7Q0RBMDsxMTBFIDExNkUgMTFCMzsKK0NEQTE7Q0RBMTsxMTBFIDExNkUgMTFCNDtDREExOzExMEUgMTE2RSAxMUI0OworQ0RBMjtDREEyOzExMEUgMTE2RSAxMUI1O0NEQTI7MTEwRSAxMTZFIDExQjU7CitDREEzO0NEQTM7MTEwRSAxMTZFIDExQjY7Q0RBMzsxMTBFIDExNkUgMTFCNjsKK0NEQTQ7Q0RBNDsxMTBFIDExNkUgMTFCNztDREE0OzExMEUgMTE2RSAxMUI3OworQ0RBNTtDREE1OzExMEUgMTE2RSAxMUI4O0NEQTU7MTEwRSAxMTZFIDExQjg7CitDREE2O0NEQTY7MTEwRSAxMTZFIDExQjk7Q0RBNjsxMTBFIDExNkUgMTFCOTsKK0NEQTc7Q0RBNzsxMTBFIDExNkUgMTFCQTtDREE3OzExMEUgMTE2RSAxMUJBOworQ0RBODtDREE4OzExMEUgMTE2RSAxMUJCO0NEQTg7MTEwRSAxMTZFIDExQkI7CitDREE5O0NEQTk7MTEwRSAxMTZFIDExQkM7Q0RBOTsxMTBFIDExNkUgMTFCQzsKK0NEQUE7Q0RBQTsxMTBFIDExNkUgMTFCRDtDREFBOzExMEUgMTE2RSAxMUJEOworQ0RBQjtDREFCOzExMEUgMTE2RSAxMUJFO0NEQUI7MTEwRSAxMTZFIDExQkU7CitDREFDO0NEQUM7MTEwRSAxMTZFIDExQkY7Q0RBQzsxMTBFIDExNkUgMTFCRjsKK0NEQUQ7Q0RBRDsxMTBFIDExNkUgMTFDMDtDREFEOzExMEUgMTE2RSAxMUMwOworQ0RBRTtDREFFOzExMEUgMTE2RSAxMUMxO0NEQUU7MTEwRSAxMTZFIDExQzE7CitDREFGO0NEQUY7MTEwRSAxMTZFIDExQzI7Q0RBRjsxMTBFIDExNkUgMTFDMjsKK0NEQjA7Q0RCMDsxMTBFIDExNkY7Q0RCMDsxMTBFIDExNkY7CitDREIxO0NEQjE7MTEwRSAxMTZGIDExQTg7Q0RCMTsxMTBFIDExNkYgMTFBODsKK0NEQjI7Q0RCMjsxMTBFIDExNkYgMTFBOTtDREIyOzExMEUgMTE2RiAxMUE5OworQ0RCMztDREIzOzExMEUgMTE2RiAxMUFBO0NEQjM7MTEwRSAxMTZGIDExQUE7CitDREI0O0NEQjQ7MTEwRSAxMTZGIDExQUI7Q0RCNDsxMTBFIDExNkYgMTFBQjsKK0NEQjU7Q0RCNTsxMTBFIDExNkYgMTFBQztDREI1OzExMEUgMTE2RiAxMUFDOworQ0RCNjtDREI2OzExMEUgMTE2RiAxMUFEO0NEQjY7MTEwRSAxMTZGIDExQUQ7CitDREI3O0NEQjc7MTEwRSAxMTZGIDExQUU7Q0RCNzsxMTBFIDExNkYgMTFBRTsKK0NEQjg7Q0RCODsxMTBFIDExNkYgMTFBRjtDREI4OzExMEUgMTE2RiAxMUFGOworQ0RCOTtDREI5OzExMEUgMTE2RiAxMUIwO0NEQjk7MTEwRSAxMTZGIDExQjA7CitDREJBO0NEQkE7MTEwRSAxMTZGIDExQjE7Q0RCQTsxMTBFIDExNkYgMTFCMTsKK0NEQkI7Q0RCQjsxMTBFIDExNkYgMTFCMjtDREJCOzExMEUgMTE2RiAxMUIyOworQ0RCQztDREJDOzExMEUgMTE2RiAxMUIzO0NEQkM7MTEwRSAxMTZGIDExQjM7CitDREJEO0NEQkQ7MTEwRSAxMTZGIDExQjQ7Q0RCRDsxMTBFIDExNkYgMTFCNDsKK0NEQkU7Q0RCRTsxMTBFIDExNkYgMTFCNTtDREJFOzExMEUgMTE2RiAxMUI1OworQ0RCRjtDREJGOzExMEUgMTE2RiAxMUI2O0NEQkY7MTEwRSAxMTZGIDExQjY7CitDREMwO0NEQzA7MTEwRSAxMTZGIDExQjc7Q0RDMDsxMTBFIDExNkYgMTFCNzsKK0NEQzE7Q0RDMTsxMTBFIDExNkYgMTFCODtDREMxOzExMEUgMTE2RiAxMUI4OworQ0RDMjtDREMyOzExMEUgMTE2RiAxMUI5O0NEQzI7MTEwRSAxMTZGIDExQjk7CitDREMzO0NEQzM7MTEwRSAxMTZGIDExQkE7Q0RDMzsxMTBFIDExNkYgMTFCQTsKK0NEQzQ7Q0RDNDsxMTBFIDExNkYgMTFCQjtDREM0OzExMEUgMTE2RiAxMUJCOworQ0RDNTtDREM1OzExMEUgMTE2RiAxMUJDO0NEQzU7MTEwRSAxMTZGIDExQkM7CitDREM2O0NEQzY7MTEwRSAxMTZGIDExQkQ7Q0RDNjsxMTBFIDExNkYgMTFCRDsKK0NEQzc7Q0RDNzsxMTBFIDExNkYgMTFCRTtDREM3OzExMEUgMTE2RiAxMUJFOworQ0RDODtDREM4OzExMEUgMTE2RiAxMUJGO0NEQzg7MTEwRSAxMTZGIDExQkY7CitDREM5O0NEQzk7MTEwRSAxMTZGIDExQzA7Q0RDOTsxMTBFIDExNkYgMTFDMDsKK0NEQ0E7Q0RDQTsxMTBFIDExNkYgMTFDMTtDRENBOzExMEUgMTE2RiAxMUMxOworQ0RDQjtDRENCOzExMEUgMTE2RiAxMUMyO0NEQ0I7MTEwRSAxMTZGIDExQzI7CitDRENDO0NEQ0M7MTEwRSAxMTcwO0NEQ0M7MTEwRSAxMTcwOworQ0RDRDtDRENEOzExMEUgMTE3MCAxMUE4O0NEQ0Q7MTEwRSAxMTcwIDExQTg7CitDRENFO0NEQ0U7MTEwRSAxMTcwIDExQTk7Q0RDRTsxMTBFIDExNzAgMTFBOTsKK0NEQ0Y7Q0RDRjsxMTBFIDExNzAgMTFBQTtDRENGOzExMEUgMTE3MCAxMUFBOworQ0REMDtDREQwOzExMEUgMTE3MCAxMUFCO0NERDA7MTEwRSAxMTcwIDExQUI7CitDREQxO0NERDE7MTEwRSAxMTcwIDExQUM7Q0REMTsxMTBFIDExNzAgMTFBQzsKK0NERDI7Q0REMjsxMTBFIDExNzAgMTFBRDtDREQyOzExMEUgMTE3MCAxMUFEOworQ0REMztDREQzOzExMEUgMTE3MCAxMUFFO0NERDM7MTEwRSAxMTcwIDExQUU7CitDREQ0O0NERDQ7MTEwRSAxMTcwIDExQUY7Q0RENDsxMTBFIDExNzAgMTFBRjsKK0NERDU7Q0RENTsxMTBFIDExNzAgMTFCMDtDREQ1OzExMEUgMTE3MCAxMUIwOworQ0RENjtDREQ2OzExMEUgMTE3MCAxMUIxO0NERDY7MTEwRSAxMTcwIDExQjE7CitDREQ3O0NERDc7MTEwRSAxMTcwIDExQjI7Q0RENzsxMTBFIDExNzAgMTFCMjsKK0NERDg7Q0REODsxMTBFIDExNzAgMTFCMztDREQ4OzExMEUgMTE3MCAxMUIzOworQ0REOTtDREQ5OzExMEUgMTE3MCAxMUI0O0NERDk7MTEwRSAxMTcwIDExQjQ7CitDRERBO0NEREE7MTEwRSAxMTcwIDExQjU7Q0REQTsxMTBFIDExNzAgMTFCNTsKK0NEREI7Q0REQjsxMTBFIDExNzAgMTFCNjtDRERCOzExMEUgMTE3MCAxMUI2OworQ0REQztDRERDOzExMEUgMTE3MCAxMUI3O0NEREM7MTEwRSAxMTcwIDExQjc7CitDREREO0NEREQ7MTEwRSAxMTcwIDExQjg7Q0RERDsxMTBFIDExNzAgMTFCODsKK0NEREU7Q0RERTsxMTBFIDExNzAgMTFCOTtDRERFOzExMEUgMTE3MCAxMUI5OworQ0RERjtDRERGOzExMEUgMTE3MCAxMUJBO0NEREY7MTEwRSAxMTcwIDExQkE7CitDREUwO0NERTA7MTEwRSAxMTcwIDExQkI7Q0RFMDsxMTBFIDExNzAgMTFCQjsKK0NERTE7Q0RFMTsxMTBFIDExNzAgMTFCQztDREUxOzExMEUgMTE3MCAxMUJDOworQ0RFMjtDREUyOzExMEUgMTE3MCAxMUJEO0NERTI7MTEwRSAxMTcwIDExQkQ7CitDREUzO0NERTM7MTEwRSAxMTcwIDExQkU7Q0RFMzsxMTBFIDExNzAgMTFCRTsKK0NERTQ7Q0RFNDsxMTBFIDExNzAgMTFCRjtDREU0OzExMEUgMTE3MCAxMUJGOworQ0RFNTtDREU1OzExMEUgMTE3MCAxMUMwO0NERTU7MTEwRSAxMTcwIDExQzA7CitDREU2O0NERTY7MTEwRSAxMTcwIDExQzE7Q0RFNjsxMTBFIDExNzAgMTFDMTsKK0NERTc7Q0RFNzsxMTBFIDExNzAgMTFDMjtDREU3OzExMEUgMTE3MCAxMUMyOworQ0RFODtDREU4OzExMEUgMTE3MTtDREU4OzExMEUgMTE3MTsKK0NERTk7Q0RFOTsxMTBFIDExNzEgMTFBODtDREU5OzExMEUgMTE3MSAxMUE4OworQ0RFQTtDREVBOzExMEUgMTE3MSAxMUE5O0NERUE7MTEwRSAxMTcxIDExQTk7CitDREVCO0NERUI7MTEwRSAxMTcxIDExQUE7Q0RFQjsxMTBFIDExNzEgMTFBQTsKK0NERUM7Q0RFQzsxMTBFIDExNzEgMTFBQjtDREVDOzExMEUgMTE3MSAxMUFCOworQ0RFRDtDREVEOzExMEUgMTE3MSAxMUFDO0NERUQ7MTEwRSAxMTcxIDExQUM7CitDREVFO0NERUU7MTEwRSAxMTcxIDExQUQ7Q0RFRTsxMTBFIDExNzEgMTFBRDsKK0NERUY7Q0RFRjsxMTBFIDExNzEgMTFBRTtDREVGOzExMEUgMTE3MSAxMUFFOworQ0RGMDtDREYwOzExMEUgMTE3MSAxMUFGO0NERjA7MTEwRSAxMTcxIDExQUY7CitDREYxO0NERjE7MTEwRSAxMTcxIDExQjA7Q0RGMTsxMTBFIDExNzEgMTFCMDsKK0NERjI7Q0RGMjsxMTBFIDExNzEgMTFCMTtDREYyOzExMEUgMTE3MSAxMUIxOworQ0RGMztDREYzOzExMEUgMTE3MSAxMUIyO0NERjM7MTEwRSAxMTcxIDExQjI7CitDREY0O0NERjQ7MTEwRSAxMTcxIDExQjM7Q0RGNDsxMTBFIDExNzEgMTFCMzsKK0NERjU7Q0RGNTsxMTBFIDExNzEgMTFCNDtDREY1OzExMEUgMTE3MSAxMUI0OworQ0RGNjtDREY2OzExMEUgMTE3MSAxMUI1O0NERjY7MTEwRSAxMTcxIDExQjU7CitDREY3O0NERjc7MTEwRSAxMTcxIDExQjY7Q0RGNzsxMTBFIDExNzEgMTFCNjsKK0NERjg7Q0RGODsxMTBFIDExNzEgMTFCNztDREY4OzExMEUgMTE3MSAxMUI3OworQ0RGOTtDREY5OzExMEUgMTE3MSAxMUI4O0NERjk7MTEwRSAxMTcxIDExQjg7CitDREZBO0NERkE7MTEwRSAxMTcxIDExQjk7Q0RGQTsxMTBFIDExNzEgMTFCOTsKK0NERkI7Q0RGQjsxMTBFIDExNzEgMTFCQTtDREZCOzExMEUgMTE3MSAxMUJBOworQ0RGQztDREZDOzExMEUgMTE3MSAxMUJCO0NERkM7MTEwRSAxMTcxIDExQkI7CitDREZEO0NERkQ7MTEwRSAxMTcxIDExQkM7Q0RGRDsxMTBFIDExNzEgMTFCQzsKK0NERkU7Q0RGRTsxMTBFIDExNzEgMTFCRDtDREZFOzExMEUgMTE3MSAxMUJEOworQ0RGRjtDREZGOzExMEUgMTE3MSAxMUJFO0NERkY7MTEwRSAxMTcxIDExQkU7CitDRTAwO0NFMDA7MTEwRSAxMTcxIDExQkY7Q0UwMDsxMTBFIDExNzEgMTFCRjsKK0NFMDE7Q0UwMTsxMTBFIDExNzEgMTFDMDtDRTAxOzExMEUgMTE3MSAxMUMwOworQ0UwMjtDRTAyOzExMEUgMTE3MSAxMUMxO0NFMDI7MTEwRSAxMTcxIDExQzE7CitDRTAzO0NFMDM7MTEwRSAxMTcxIDExQzI7Q0UwMzsxMTBFIDExNzEgMTFDMjsKK0NFMDQ7Q0UwNDsxMTBFIDExNzI7Q0UwNDsxMTBFIDExNzI7CitDRTA1O0NFMDU7MTEwRSAxMTcyIDExQTg7Q0UwNTsxMTBFIDExNzIgMTFBODsKK0NFMDY7Q0UwNjsxMTBFIDExNzIgMTFBOTtDRTA2OzExMEUgMTE3MiAxMUE5OworQ0UwNztDRTA3OzExMEUgMTE3MiAxMUFBO0NFMDc7MTEwRSAxMTcyIDExQUE7CitDRTA4O0NFMDg7MTEwRSAxMTcyIDExQUI7Q0UwODsxMTBFIDExNzIgMTFBQjsKK0NFMDk7Q0UwOTsxMTBFIDExNzIgMTFBQztDRTA5OzExMEUgMTE3MiAxMUFDOworQ0UwQTtDRTBBOzExMEUgMTE3MiAxMUFEO0NFMEE7MTEwRSAxMTcyIDExQUQ7CitDRTBCO0NFMEI7MTEwRSAxMTcyIDExQUU7Q0UwQjsxMTBFIDExNzIgMTFBRTsKK0NFMEM7Q0UwQzsxMTBFIDExNzIgMTFBRjtDRTBDOzExMEUgMTE3MiAxMUFGOworQ0UwRDtDRTBEOzExMEUgMTE3MiAxMUIwO0NFMEQ7MTEwRSAxMTcyIDExQjA7CitDRTBFO0NFMEU7MTEwRSAxMTcyIDExQjE7Q0UwRTsxMTBFIDExNzIgMTFCMTsKK0NFMEY7Q0UwRjsxMTBFIDExNzIgMTFCMjtDRTBGOzExMEUgMTE3MiAxMUIyOworQ0UxMDtDRTEwOzExMEUgMTE3MiAxMUIzO0NFMTA7MTEwRSAxMTcyIDExQjM7CitDRTExO0NFMTE7MTEwRSAxMTcyIDExQjQ7Q0UxMTsxMTBFIDExNzIgMTFCNDsKK0NFMTI7Q0UxMjsxMTBFIDExNzIgMTFCNTtDRTEyOzExMEUgMTE3MiAxMUI1OworQ0UxMztDRTEzOzExMEUgMTE3MiAxMUI2O0NFMTM7MTEwRSAxMTcyIDExQjY7CitDRTE0O0NFMTQ7MTEwRSAxMTcyIDExQjc7Q0UxNDsxMTBFIDExNzIgMTFCNzsKK0NFMTU7Q0UxNTsxMTBFIDExNzIgMTFCODtDRTE1OzExMEUgMTE3MiAxMUI4OworQ0UxNjtDRTE2OzExMEUgMTE3MiAxMUI5O0NFMTY7MTEwRSAxMTcyIDExQjk7CitDRTE3O0NFMTc7MTEwRSAxMTcyIDExQkE7Q0UxNzsxMTBFIDExNzIgMTFCQTsKK0NFMTg7Q0UxODsxMTBFIDExNzIgMTFCQjtDRTE4OzExMEUgMTE3MiAxMUJCOworQ0UxOTtDRTE5OzExMEUgMTE3MiAxMUJDO0NFMTk7MTEwRSAxMTcyIDExQkM7CitDRTFBO0NFMUE7MTEwRSAxMTcyIDExQkQ7Q0UxQTsxMTBFIDExNzIgMTFCRDsKK0NFMUI7Q0UxQjsxMTBFIDExNzIgMTFCRTtDRTFCOzExMEUgMTE3MiAxMUJFOworQ0UxQztDRTFDOzExMEUgMTE3MiAxMUJGO0NFMUM7MTEwRSAxMTcyIDExQkY7CitDRTFEO0NFMUQ7MTEwRSAxMTcyIDExQzA7Q0UxRDsxMTBFIDExNzIgMTFDMDsKK0NFMUU7Q0UxRTsxMTBFIDExNzIgMTFDMTtDRTFFOzExMEUgMTE3MiAxMUMxOworQ0UxRjtDRTFGOzExMEUgMTE3MiAxMUMyO0NFMUY7MTEwRSAxMTcyIDExQzI7CitDRTIwO0NFMjA7MTEwRSAxMTczO0NFMjA7MTEwRSAxMTczOworQ0UyMTtDRTIxOzExMEUgMTE3MyAxMUE4O0NFMjE7MTEwRSAxMTczIDExQTg7CitDRTIyO0NFMjI7MTEwRSAxMTczIDExQTk7Q0UyMjsxMTBFIDExNzMgMTFBOTsKK0NFMjM7Q0UyMzsxMTBFIDExNzMgMTFBQTtDRTIzOzExMEUgMTE3MyAxMUFBOworQ0UyNDtDRTI0OzExMEUgMTE3MyAxMUFCO0NFMjQ7MTEwRSAxMTczIDExQUI7CitDRTI1O0NFMjU7MTEwRSAxMTczIDExQUM7Q0UyNTsxMTBFIDExNzMgMTFBQzsKK0NFMjY7Q0UyNjsxMTBFIDExNzMgMTFBRDtDRTI2OzExMEUgMTE3MyAxMUFEOworQ0UyNztDRTI3OzExMEUgMTE3MyAxMUFFO0NFMjc7MTEwRSAxMTczIDExQUU7CitDRTI4O0NFMjg7MTEwRSAxMTczIDExQUY7Q0UyODsxMTBFIDExNzMgMTFBRjsKK0NFMjk7Q0UyOTsxMTBFIDExNzMgMTFCMDtDRTI5OzExMEUgMTE3MyAxMUIwOworQ0UyQTtDRTJBOzExMEUgMTE3MyAxMUIxO0NFMkE7MTEwRSAxMTczIDExQjE7CitDRTJCO0NFMkI7MTEwRSAxMTczIDExQjI7Q0UyQjsxMTBFIDExNzMgMTFCMjsKK0NFMkM7Q0UyQzsxMTBFIDExNzMgMTFCMztDRTJDOzExMEUgMTE3MyAxMUIzOworQ0UyRDtDRTJEOzExMEUgMTE3MyAxMUI0O0NFMkQ7MTEwRSAxMTczIDExQjQ7CitDRTJFO0NFMkU7MTEwRSAxMTczIDExQjU7Q0UyRTsxMTBFIDExNzMgMTFCNTsKK0NFMkY7Q0UyRjsxMTBFIDExNzMgMTFCNjtDRTJGOzExMEUgMTE3MyAxMUI2OworQ0UzMDtDRTMwOzExMEUgMTE3MyAxMUI3O0NFMzA7MTEwRSAxMTczIDExQjc7CitDRTMxO0NFMzE7MTEwRSAxMTczIDExQjg7Q0UzMTsxMTBFIDExNzMgMTFCODsKK0NFMzI7Q0UzMjsxMTBFIDExNzMgMTFCOTtDRTMyOzExMEUgMTE3MyAxMUI5OworQ0UzMztDRTMzOzExMEUgMTE3MyAxMUJBO0NFMzM7MTEwRSAxMTczIDExQkE7CitDRTM0O0NFMzQ7MTEwRSAxMTczIDExQkI7Q0UzNDsxMTBFIDExNzMgMTFCQjsKK0NFMzU7Q0UzNTsxMTBFIDExNzMgMTFCQztDRTM1OzExMEUgMTE3MyAxMUJDOworQ0UzNjtDRTM2OzExMEUgMTE3MyAxMUJEO0NFMzY7MTEwRSAxMTczIDExQkQ7CitDRTM3O0NFMzc7MTEwRSAxMTczIDExQkU7Q0UzNzsxMTBFIDExNzMgMTFCRTsKK0NFMzg7Q0UzODsxMTBFIDExNzMgMTFCRjtDRTM4OzExMEUgMTE3MyAxMUJGOworQ0UzOTtDRTM5OzExMEUgMTE3MyAxMUMwO0NFMzk7MTEwRSAxMTczIDExQzA7CitDRTNBO0NFM0E7MTEwRSAxMTczIDExQzE7Q0UzQTsxMTBFIDExNzMgMTFDMTsKK0NFM0I7Q0UzQjsxMTBFIDExNzMgMTFDMjtDRTNCOzExMEUgMTE3MyAxMUMyOworQ0UzQztDRTNDOzExMEUgMTE3NDtDRTNDOzExMEUgMTE3NDsKK0NFM0Q7Q0UzRDsxMTBFIDExNzQgMTFBODtDRTNEOzExMEUgMTE3NCAxMUE4OworQ0UzRTtDRTNFOzExMEUgMTE3NCAxMUE5O0NFM0U7MTEwRSAxMTc0IDExQTk7CitDRTNGO0NFM0Y7MTEwRSAxMTc0IDExQUE7Q0UzRjsxMTBFIDExNzQgMTFBQTsKK0NFNDA7Q0U0MDsxMTBFIDExNzQgMTFBQjtDRTQwOzExMEUgMTE3NCAxMUFCOworQ0U0MTtDRTQxOzExMEUgMTE3NCAxMUFDO0NFNDE7MTEwRSAxMTc0IDExQUM7CitDRTQyO0NFNDI7MTEwRSAxMTc0IDExQUQ7Q0U0MjsxMTBFIDExNzQgMTFBRDsKK0NFNDM7Q0U0MzsxMTBFIDExNzQgMTFBRTtDRTQzOzExMEUgMTE3NCAxMUFFOworQ0U0NDtDRTQ0OzExMEUgMTE3NCAxMUFGO0NFNDQ7MTEwRSAxMTc0IDExQUY7CitDRTQ1O0NFNDU7MTEwRSAxMTc0IDExQjA7Q0U0NTsxMTBFIDExNzQgMTFCMDsKK0NFNDY7Q0U0NjsxMTBFIDExNzQgMTFCMTtDRTQ2OzExMEUgMTE3NCAxMUIxOworQ0U0NztDRTQ3OzExMEUgMTE3NCAxMUIyO0NFNDc7MTEwRSAxMTc0IDExQjI7CitDRTQ4O0NFNDg7MTEwRSAxMTc0IDExQjM7Q0U0ODsxMTBFIDExNzQgMTFCMzsKK0NFNDk7Q0U0OTsxMTBFIDExNzQgMTFCNDtDRTQ5OzExMEUgMTE3NCAxMUI0OworQ0U0QTtDRTRBOzExMEUgMTE3NCAxMUI1O0NFNEE7MTEwRSAxMTc0IDExQjU7CitDRTRCO0NFNEI7MTEwRSAxMTc0IDExQjY7Q0U0QjsxMTBFIDExNzQgMTFCNjsKK0NFNEM7Q0U0QzsxMTBFIDExNzQgMTFCNztDRTRDOzExMEUgMTE3NCAxMUI3OworQ0U0RDtDRTREOzExMEUgMTE3NCAxMUI4O0NFNEQ7MTEwRSAxMTc0IDExQjg7CitDRTRFO0NFNEU7MTEwRSAxMTc0IDExQjk7Q0U0RTsxMTBFIDExNzQgMTFCOTsKK0NFNEY7Q0U0RjsxMTBFIDExNzQgMTFCQTtDRTRGOzExMEUgMTE3NCAxMUJBOworQ0U1MDtDRTUwOzExMEUgMTE3NCAxMUJCO0NFNTA7MTEwRSAxMTc0IDExQkI7CitDRTUxO0NFNTE7MTEwRSAxMTc0IDExQkM7Q0U1MTsxMTBFIDExNzQgMTFCQzsKK0NFNTI7Q0U1MjsxMTBFIDExNzQgMTFCRDtDRTUyOzExMEUgMTE3NCAxMUJEOworQ0U1MztDRTUzOzExMEUgMTE3NCAxMUJFO0NFNTM7MTEwRSAxMTc0IDExQkU7CitDRTU0O0NFNTQ7MTEwRSAxMTc0IDExQkY7Q0U1NDsxMTBFIDExNzQgMTFCRjsKK0NFNTU7Q0U1NTsxMTBFIDExNzQgMTFDMDtDRTU1OzExMEUgMTE3NCAxMUMwOworQ0U1NjtDRTU2OzExMEUgMTE3NCAxMUMxO0NFNTY7MTEwRSAxMTc0IDExQzE7CitDRTU3O0NFNTc7MTEwRSAxMTc0IDExQzI7Q0U1NzsxMTBFIDExNzQgMTFDMjsKK0NFNTg7Q0U1ODsxMTBFIDExNzU7Q0U1ODsxMTBFIDExNzU7CitDRTU5O0NFNTk7MTEwRSAxMTc1IDExQTg7Q0U1OTsxMTBFIDExNzUgMTFBODsKK0NFNUE7Q0U1QTsxMTBFIDExNzUgMTFBOTtDRTVBOzExMEUgMTE3NSAxMUE5OworQ0U1QjtDRTVCOzExMEUgMTE3NSAxMUFBO0NFNUI7MTEwRSAxMTc1IDExQUE7CitDRTVDO0NFNUM7MTEwRSAxMTc1IDExQUI7Q0U1QzsxMTBFIDExNzUgMTFBQjsKK0NFNUQ7Q0U1RDsxMTBFIDExNzUgMTFBQztDRTVEOzExMEUgMTE3NSAxMUFDOworQ0U1RTtDRTVFOzExMEUgMTE3NSAxMUFEO0NFNUU7MTEwRSAxMTc1IDExQUQ7CitDRTVGO0NFNUY7MTEwRSAxMTc1IDExQUU7Q0U1RjsxMTBFIDExNzUgMTFBRTsKK0NFNjA7Q0U2MDsxMTBFIDExNzUgMTFBRjtDRTYwOzExMEUgMTE3NSAxMUFGOworQ0U2MTtDRTYxOzExMEUgMTE3NSAxMUIwO0NFNjE7MTEwRSAxMTc1IDExQjA7CitDRTYyO0NFNjI7MTEwRSAxMTc1IDExQjE7Q0U2MjsxMTBFIDExNzUgMTFCMTsKK0NFNjM7Q0U2MzsxMTBFIDExNzUgMTFCMjtDRTYzOzExMEUgMTE3NSAxMUIyOworQ0U2NDtDRTY0OzExMEUgMTE3NSAxMUIzO0NFNjQ7MTEwRSAxMTc1IDExQjM7CitDRTY1O0NFNjU7MTEwRSAxMTc1IDExQjQ7Q0U2NTsxMTBFIDExNzUgMTFCNDsKK0NFNjY7Q0U2NjsxMTBFIDExNzUgMTFCNTtDRTY2OzExMEUgMTE3NSAxMUI1OworQ0U2NztDRTY3OzExMEUgMTE3NSAxMUI2O0NFNjc7MTEwRSAxMTc1IDExQjY7CitDRTY4O0NFNjg7MTEwRSAxMTc1IDExQjc7Q0U2ODsxMTBFIDExNzUgMTFCNzsKK0NFNjk7Q0U2OTsxMTBFIDExNzUgMTFCODtDRTY5OzExMEUgMTE3NSAxMUI4OworQ0U2QTtDRTZBOzExMEUgMTE3NSAxMUI5O0NFNkE7MTEwRSAxMTc1IDExQjk7CitDRTZCO0NFNkI7MTEwRSAxMTc1IDExQkE7Q0U2QjsxMTBFIDExNzUgMTFCQTsKK0NFNkM7Q0U2QzsxMTBFIDExNzUgMTFCQjtDRTZDOzExMEUgMTE3NSAxMUJCOworQ0U2RDtDRTZEOzExMEUgMTE3NSAxMUJDO0NFNkQ7MTEwRSAxMTc1IDExQkM7CitDRTZFO0NFNkU7MTEwRSAxMTc1IDExQkQ7Q0U2RTsxMTBFIDExNzUgMTFCRDsKK0NFNkY7Q0U2RjsxMTBFIDExNzUgMTFCRTtDRTZGOzExMEUgMTE3NSAxMUJFOworQ0U3MDtDRTcwOzExMEUgMTE3NSAxMUJGO0NFNzA7MTEwRSAxMTc1IDExQkY7CitDRTcxO0NFNzE7MTEwRSAxMTc1IDExQzA7Q0U3MTsxMTBFIDExNzUgMTFDMDsKK0NFNzI7Q0U3MjsxMTBFIDExNzUgMTFDMTtDRTcyOzExMEUgMTE3NSAxMUMxOworQ0U3MztDRTczOzExMEUgMTE3NSAxMUMyO0NFNzM7MTEwRSAxMTc1IDExQzI7CitDRTc0O0NFNzQ7MTEwRiAxMTYxO0NFNzQ7MTEwRiAxMTYxOworQ0U3NTtDRTc1OzExMEYgMTE2MSAxMUE4O0NFNzU7MTEwRiAxMTYxIDExQTg7CitDRTc2O0NFNzY7MTEwRiAxMTYxIDExQTk7Q0U3NjsxMTBGIDExNjEgMTFBOTsKK0NFNzc7Q0U3NzsxMTBGIDExNjEgMTFBQTtDRTc3OzExMEYgMTE2MSAxMUFBOworQ0U3ODtDRTc4OzExMEYgMTE2MSAxMUFCO0NFNzg7MTEwRiAxMTYxIDExQUI7CitDRTc5O0NFNzk7MTEwRiAxMTYxIDExQUM7Q0U3OTsxMTBGIDExNjEgMTFBQzsKK0NFN0E7Q0U3QTsxMTBGIDExNjEgMTFBRDtDRTdBOzExMEYgMTE2MSAxMUFEOworQ0U3QjtDRTdCOzExMEYgMTE2MSAxMUFFO0NFN0I7MTEwRiAxMTYxIDExQUU7CitDRTdDO0NFN0M7MTEwRiAxMTYxIDExQUY7Q0U3QzsxMTBGIDExNjEgMTFBRjsKK0NFN0Q7Q0U3RDsxMTBGIDExNjEgMTFCMDtDRTdEOzExMEYgMTE2MSAxMUIwOworQ0U3RTtDRTdFOzExMEYgMTE2MSAxMUIxO0NFN0U7MTEwRiAxMTYxIDExQjE7CitDRTdGO0NFN0Y7MTEwRiAxMTYxIDExQjI7Q0U3RjsxMTBGIDExNjEgMTFCMjsKK0NFODA7Q0U4MDsxMTBGIDExNjEgMTFCMztDRTgwOzExMEYgMTE2MSAxMUIzOworQ0U4MTtDRTgxOzExMEYgMTE2MSAxMUI0O0NFODE7MTEwRiAxMTYxIDExQjQ7CitDRTgyO0NFODI7MTEwRiAxMTYxIDExQjU7Q0U4MjsxMTBGIDExNjEgMTFCNTsKK0NFODM7Q0U4MzsxMTBGIDExNjEgMTFCNjtDRTgzOzExMEYgMTE2MSAxMUI2OworQ0U4NDtDRTg0OzExMEYgMTE2MSAxMUI3O0NFODQ7MTEwRiAxMTYxIDExQjc7CitDRTg1O0NFODU7MTEwRiAxMTYxIDExQjg7Q0U4NTsxMTBGIDExNjEgMTFCODsKK0NFODY7Q0U4NjsxMTBGIDExNjEgMTFCOTtDRTg2OzExMEYgMTE2MSAxMUI5OworQ0U4NztDRTg3OzExMEYgMTE2MSAxMUJBO0NFODc7MTEwRiAxMTYxIDExQkE7CitDRTg4O0NFODg7MTEwRiAxMTYxIDExQkI7Q0U4ODsxMTBGIDExNjEgMTFCQjsKK0NFODk7Q0U4OTsxMTBGIDExNjEgMTFCQztDRTg5OzExMEYgMTE2MSAxMUJDOworQ0U4QTtDRThBOzExMEYgMTE2MSAxMUJEO0NFOEE7MTEwRiAxMTYxIDExQkQ7CitDRThCO0NFOEI7MTEwRiAxMTYxIDExQkU7Q0U4QjsxMTBGIDExNjEgMTFCRTsKK0NFOEM7Q0U4QzsxMTBGIDExNjEgMTFCRjtDRThDOzExMEYgMTE2MSAxMUJGOworQ0U4RDtDRThEOzExMEYgMTE2MSAxMUMwO0NFOEQ7MTEwRiAxMTYxIDExQzA7CitDRThFO0NFOEU7MTEwRiAxMTYxIDExQzE7Q0U4RTsxMTBGIDExNjEgMTFDMTsKK0NFOEY7Q0U4RjsxMTBGIDExNjEgMTFDMjtDRThGOzExMEYgMTE2MSAxMUMyOworQ0U5MDtDRTkwOzExMEYgMTE2MjtDRTkwOzExMEYgMTE2MjsKK0NFOTE7Q0U5MTsxMTBGIDExNjIgMTFBODtDRTkxOzExMEYgMTE2MiAxMUE4OworQ0U5MjtDRTkyOzExMEYgMTE2MiAxMUE5O0NFOTI7MTEwRiAxMTYyIDExQTk7CitDRTkzO0NFOTM7MTEwRiAxMTYyIDExQUE7Q0U5MzsxMTBGIDExNjIgMTFBQTsKK0NFOTQ7Q0U5NDsxMTBGIDExNjIgMTFBQjtDRTk0OzExMEYgMTE2MiAxMUFCOworQ0U5NTtDRTk1OzExMEYgMTE2MiAxMUFDO0NFOTU7MTEwRiAxMTYyIDExQUM7CitDRTk2O0NFOTY7MTEwRiAxMTYyIDExQUQ7Q0U5NjsxMTBGIDExNjIgMTFBRDsKK0NFOTc7Q0U5NzsxMTBGIDExNjIgMTFBRTtDRTk3OzExMEYgMTE2MiAxMUFFOworQ0U5ODtDRTk4OzExMEYgMTE2MiAxMUFGO0NFOTg7MTEwRiAxMTYyIDExQUY7CitDRTk5O0NFOTk7MTEwRiAxMTYyIDExQjA7Q0U5OTsxMTBGIDExNjIgMTFCMDsKK0NFOUE7Q0U5QTsxMTBGIDExNjIgMTFCMTtDRTlBOzExMEYgMTE2MiAxMUIxOworQ0U5QjtDRTlCOzExMEYgMTE2MiAxMUIyO0NFOUI7MTEwRiAxMTYyIDExQjI7CitDRTlDO0NFOUM7MTEwRiAxMTYyIDExQjM7Q0U5QzsxMTBGIDExNjIgMTFCMzsKK0NFOUQ7Q0U5RDsxMTBGIDExNjIgMTFCNDtDRTlEOzExMEYgMTE2MiAxMUI0OworQ0U5RTtDRTlFOzExMEYgMTE2MiAxMUI1O0NFOUU7MTEwRiAxMTYyIDExQjU7CitDRTlGO0NFOUY7MTEwRiAxMTYyIDExQjY7Q0U5RjsxMTBGIDExNjIgMTFCNjsKK0NFQTA7Q0VBMDsxMTBGIDExNjIgMTFCNztDRUEwOzExMEYgMTE2MiAxMUI3OworQ0VBMTtDRUExOzExMEYgMTE2MiAxMUI4O0NFQTE7MTEwRiAxMTYyIDExQjg7CitDRUEyO0NFQTI7MTEwRiAxMTYyIDExQjk7Q0VBMjsxMTBGIDExNjIgMTFCOTsKK0NFQTM7Q0VBMzsxMTBGIDExNjIgMTFCQTtDRUEzOzExMEYgMTE2MiAxMUJBOworQ0VBNDtDRUE0OzExMEYgMTE2MiAxMUJCO0NFQTQ7MTEwRiAxMTYyIDExQkI7CitDRUE1O0NFQTU7MTEwRiAxMTYyIDExQkM7Q0VBNTsxMTBGIDExNjIgMTFCQzsKK0NFQTY7Q0VBNjsxMTBGIDExNjIgMTFCRDtDRUE2OzExMEYgMTE2MiAxMUJEOworQ0VBNztDRUE3OzExMEYgMTE2MiAxMUJFO0NFQTc7MTEwRiAxMTYyIDExQkU7CitDRUE4O0NFQTg7MTEwRiAxMTYyIDExQkY7Q0VBODsxMTBGIDExNjIgMTFCRjsKK0NFQTk7Q0VBOTsxMTBGIDExNjIgMTFDMDtDRUE5OzExMEYgMTE2MiAxMUMwOworQ0VBQTtDRUFBOzExMEYgMTE2MiAxMUMxO0NFQUE7MTEwRiAxMTYyIDExQzE7CitDRUFCO0NFQUI7MTEwRiAxMTYyIDExQzI7Q0VBQjsxMTBGIDExNjIgMTFDMjsKK0NFQUM7Q0VBQzsxMTBGIDExNjM7Q0VBQzsxMTBGIDExNjM7CitDRUFEO0NFQUQ7MTEwRiAxMTYzIDExQTg7Q0VBRDsxMTBGIDExNjMgMTFBODsKK0NFQUU7Q0VBRTsxMTBGIDExNjMgMTFBOTtDRUFFOzExMEYgMTE2MyAxMUE5OworQ0VBRjtDRUFGOzExMEYgMTE2MyAxMUFBO0NFQUY7MTEwRiAxMTYzIDExQUE7CitDRUIwO0NFQjA7MTEwRiAxMTYzIDExQUI7Q0VCMDsxMTBGIDExNjMgMTFBQjsKK0NFQjE7Q0VCMTsxMTBGIDExNjMgMTFBQztDRUIxOzExMEYgMTE2MyAxMUFDOworQ0VCMjtDRUIyOzExMEYgMTE2MyAxMUFEO0NFQjI7MTEwRiAxMTYzIDExQUQ7CitDRUIzO0NFQjM7MTEwRiAxMTYzIDExQUU7Q0VCMzsxMTBGIDExNjMgMTFBRTsKK0NFQjQ7Q0VCNDsxMTBGIDExNjMgMTFBRjtDRUI0OzExMEYgMTE2MyAxMUFGOworQ0VCNTtDRUI1OzExMEYgMTE2MyAxMUIwO0NFQjU7MTEwRiAxMTYzIDExQjA7CitDRUI2O0NFQjY7MTEwRiAxMTYzIDExQjE7Q0VCNjsxMTBGIDExNjMgMTFCMTsKK0NFQjc7Q0VCNzsxMTBGIDExNjMgMTFCMjtDRUI3OzExMEYgMTE2MyAxMUIyOworQ0VCODtDRUI4OzExMEYgMTE2MyAxMUIzO0NFQjg7MTEwRiAxMTYzIDExQjM7CitDRUI5O0NFQjk7MTEwRiAxMTYzIDExQjQ7Q0VCOTsxMTBGIDExNjMgMTFCNDsKK0NFQkE7Q0VCQTsxMTBGIDExNjMgMTFCNTtDRUJBOzExMEYgMTE2MyAxMUI1OworQ0VCQjtDRUJCOzExMEYgMTE2MyAxMUI2O0NFQkI7MTEwRiAxMTYzIDExQjY7CitDRUJDO0NFQkM7MTEwRiAxMTYzIDExQjc7Q0VCQzsxMTBGIDExNjMgMTFCNzsKK0NFQkQ7Q0VCRDsxMTBGIDExNjMgMTFCODtDRUJEOzExMEYgMTE2MyAxMUI4OworQ0VCRTtDRUJFOzExMEYgMTE2MyAxMUI5O0NFQkU7MTEwRiAxMTYzIDExQjk7CitDRUJGO0NFQkY7MTEwRiAxMTYzIDExQkE7Q0VCRjsxMTBGIDExNjMgMTFCQTsKK0NFQzA7Q0VDMDsxMTBGIDExNjMgMTFCQjtDRUMwOzExMEYgMTE2MyAxMUJCOworQ0VDMTtDRUMxOzExMEYgMTE2MyAxMUJDO0NFQzE7MTEwRiAxMTYzIDExQkM7CitDRUMyO0NFQzI7MTEwRiAxMTYzIDExQkQ7Q0VDMjsxMTBGIDExNjMgMTFCRDsKK0NFQzM7Q0VDMzsxMTBGIDExNjMgMTFCRTtDRUMzOzExMEYgMTE2MyAxMUJFOworQ0VDNDtDRUM0OzExMEYgMTE2MyAxMUJGO0NFQzQ7MTEwRiAxMTYzIDExQkY7CitDRUM1O0NFQzU7MTEwRiAxMTYzIDExQzA7Q0VDNTsxMTBGIDExNjMgMTFDMDsKK0NFQzY7Q0VDNjsxMTBGIDExNjMgMTFDMTtDRUM2OzExMEYgMTE2MyAxMUMxOworQ0VDNztDRUM3OzExMEYgMTE2MyAxMUMyO0NFQzc7MTEwRiAxMTYzIDExQzI7CitDRUM4O0NFQzg7MTEwRiAxMTY0O0NFQzg7MTEwRiAxMTY0OworQ0VDOTtDRUM5OzExMEYgMTE2NCAxMUE4O0NFQzk7MTEwRiAxMTY0IDExQTg7CitDRUNBO0NFQ0E7MTEwRiAxMTY0IDExQTk7Q0VDQTsxMTBGIDExNjQgMTFBOTsKK0NFQ0I7Q0VDQjsxMTBGIDExNjQgMTFBQTtDRUNCOzExMEYgMTE2NCAxMUFBOworQ0VDQztDRUNDOzExMEYgMTE2NCAxMUFCO0NFQ0M7MTEwRiAxMTY0IDExQUI7CitDRUNEO0NFQ0Q7MTEwRiAxMTY0IDExQUM7Q0VDRDsxMTBGIDExNjQgMTFBQzsKK0NFQ0U7Q0VDRTsxMTBGIDExNjQgMTFBRDtDRUNFOzExMEYgMTE2NCAxMUFEOworQ0VDRjtDRUNGOzExMEYgMTE2NCAxMUFFO0NFQ0Y7MTEwRiAxMTY0IDExQUU7CitDRUQwO0NFRDA7MTEwRiAxMTY0IDExQUY7Q0VEMDsxMTBGIDExNjQgMTFBRjsKK0NFRDE7Q0VEMTsxMTBGIDExNjQgMTFCMDtDRUQxOzExMEYgMTE2NCAxMUIwOworQ0VEMjtDRUQyOzExMEYgMTE2NCAxMUIxO0NFRDI7MTEwRiAxMTY0IDExQjE7CitDRUQzO0NFRDM7MTEwRiAxMTY0IDExQjI7Q0VEMzsxMTBGIDExNjQgMTFCMjsKK0NFRDQ7Q0VENDsxMTBGIDExNjQgMTFCMztDRUQ0OzExMEYgMTE2NCAxMUIzOworQ0VENTtDRUQ1OzExMEYgMTE2NCAxMUI0O0NFRDU7MTEwRiAxMTY0IDExQjQ7CitDRUQ2O0NFRDY7MTEwRiAxMTY0IDExQjU7Q0VENjsxMTBGIDExNjQgMTFCNTsKK0NFRDc7Q0VENzsxMTBGIDExNjQgMTFCNjtDRUQ3OzExMEYgMTE2NCAxMUI2OworQ0VEODtDRUQ4OzExMEYgMTE2NCAxMUI3O0NFRDg7MTEwRiAxMTY0IDExQjc7CitDRUQ5O0NFRDk7MTEwRiAxMTY0IDExQjg7Q0VEOTsxMTBGIDExNjQgMTFCODsKK0NFREE7Q0VEQTsxMTBGIDExNjQgMTFCOTtDRURBOzExMEYgMTE2NCAxMUI5OworQ0VEQjtDRURCOzExMEYgMTE2NCAxMUJBO0NFREI7MTEwRiAxMTY0IDExQkE7CitDRURDO0NFREM7MTEwRiAxMTY0IDExQkI7Q0VEQzsxMTBGIDExNjQgMTFCQjsKK0NFREQ7Q0VERDsxMTBGIDExNjQgMTFCQztDRUREOzExMEYgMTE2NCAxMUJDOworQ0VERTtDRURFOzExMEYgMTE2NCAxMUJEO0NFREU7MTEwRiAxMTY0IDExQkQ7CitDRURGO0NFREY7MTEwRiAxMTY0IDExQkU7Q0VERjsxMTBGIDExNjQgMTFCRTsKK0NFRTA7Q0VFMDsxMTBGIDExNjQgMTFCRjtDRUUwOzExMEYgMTE2NCAxMUJGOworQ0VFMTtDRUUxOzExMEYgMTE2NCAxMUMwO0NFRTE7MTEwRiAxMTY0IDExQzA7CitDRUUyO0NFRTI7MTEwRiAxMTY0IDExQzE7Q0VFMjsxMTBGIDExNjQgMTFDMTsKK0NFRTM7Q0VFMzsxMTBGIDExNjQgMTFDMjtDRUUzOzExMEYgMTE2NCAxMUMyOworQ0VFNDtDRUU0OzExMEYgMTE2NTtDRUU0OzExMEYgMTE2NTsKK0NFRTU7Q0VFNTsxMTBGIDExNjUgMTFBODtDRUU1OzExMEYgMTE2NSAxMUE4OworQ0VFNjtDRUU2OzExMEYgMTE2NSAxMUE5O0NFRTY7MTEwRiAxMTY1IDExQTk7CitDRUU3O0NFRTc7MTEwRiAxMTY1IDExQUE7Q0VFNzsxMTBGIDExNjUgMTFBQTsKK0NFRTg7Q0VFODsxMTBGIDExNjUgMTFBQjtDRUU4OzExMEYgMTE2NSAxMUFCOworQ0VFOTtDRUU5OzExMEYgMTE2NSAxMUFDO0NFRTk7MTEwRiAxMTY1IDExQUM7CitDRUVBO0NFRUE7MTEwRiAxMTY1IDExQUQ7Q0VFQTsxMTBGIDExNjUgMTFBRDsKK0NFRUI7Q0VFQjsxMTBGIDExNjUgMTFBRTtDRUVCOzExMEYgMTE2NSAxMUFFOworQ0VFQztDRUVDOzExMEYgMTE2NSAxMUFGO0NFRUM7MTEwRiAxMTY1IDExQUY7CitDRUVEO0NFRUQ7MTEwRiAxMTY1IDExQjA7Q0VFRDsxMTBGIDExNjUgMTFCMDsKK0NFRUU7Q0VFRTsxMTBGIDExNjUgMTFCMTtDRUVFOzExMEYgMTE2NSAxMUIxOworQ0VFRjtDRUVGOzExMEYgMTE2NSAxMUIyO0NFRUY7MTEwRiAxMTY1IDExQjI7CitDRUYwO0NFRjA7MTEwRiAxMTY1IDExQjM7Q0VGMDsxMTBGIDExNjUgMTFCMzsKK0NFRjE7Q0VGMTsxMTBGIDExNjUgMTFCNDtDRUYxOzExMEYgMTE2NSAxMUI0OworQ0VGMjtDRUYyOzExMEYgMTE2NSAxMUI1O0NFRjI7MTEwRiAxMTY1IDExQjU7CitDRUYzO0NFRjM7MTEwRiAxMTY1IDExQjY7Q0VGMzsxMTBGIDExNjUgMTFCNjsKK0NFRjQ7Q0VGNDsxMTBGIDExNjUgMTFCNztDRUY0OzExMEYgMTE2NSAxMUI3OworQ0VGNTtDRUY1OzExMEYgMTE2NSAxMUI4O0NFRjU7MTEwRiAxMTY1IDExQjg7CitDRUY2O0NFRjY7MTEwRiAxMTY1IDExQjk7Q0VGNjsxMTBGIDExNjUgMTFCOTsKK0NFRjc7Q0VGNzsxMTBGIDExNjUgMTFCQTtDRUY3OzExMEYgMTE2NSAxMUJBOworQ0VGODtDRUY4OzExMEYgMTE2NSAxMUJCO0NFRjg7MTEwRiAxMTY1IDExQkI7CitDRUY5O0NFRjk7MTEwRiAxMTY1IDExQkM7Q0VGOTsxMTBGIDExNjUgMTFCQzsKK0NFRkE7Q0VGQTsxMTBGIDExNjUgMTFCRDtDRUZBOzExMEYgMTE2NSAxMUJEOworQ0VGQjtDRUZCOzExMEYgMTE2NSAxMUJFO0NFRkI7MTEwRiAxMTY1IDExQkU7CitDRUZDO0NFRkM7MTEwRiAxMTY1IDExQkY7Q0VGQzsxMTBGIDExNjUgMTFCRjsKK0NFRkQ7Q0VGRDsxMTBGIDExNjUgMTFDMDtDRUZEOzExMEYgMTE2NSAxMUMwOworQ0VGRTtDRUZFOzExMEYgMTE2NSAxMUMxO0NFRkU7MTEwRiAxMTY1IDExQzE7CitDRUZGO0NFRkY7MTEwRiAxMTY1IDExQzI7Q0VGRjsxMTBGIDExNjUgMTFDMjsKK0NGMDA7Q0YwMDsxMTBGIDExNjY7Q0YwMDsxMTBGIDExNjY7CitDRjAxO0NGMDE7MTEwRiAxMTY2IDExQTg7Q0YwMTsxMTBGIDExNjYgMTFBODsKK0NGMDI7Q0YwMjsxMTBGIDExNjYgMTFBOTtDRjAyOzExMEYgMTE2NiAxMUE5OworQ0YwMztDRjAzOzExMEYgMTE2NiAxMUFBO0NGMDM7MTEwRiAxMTY2IDExQUE7CitDRjA0O0NGMDQ7MTEwRiAxMTY2IDExQUI7Q0YwNDsxMTBGIDExNjYgMTFBQjsKK0NGMDU7Q0YwNTsxMTBGIDExNjYgMTFBQztDRjA1OzExMEYgMTE2NiAxMUFDOworQ0YwNjtDRjA2OzExMEYgMTE2NiAxMUFEO0NGMDY7MTEwRiAxMTY2IDExQUQ7CitDRjA3O0NGMDc7MTEwRiAxMTY2IDExQUU7Q0YwNzsxMTBGIDExNjYgMTFBRTsKK0NGMDg7Q0YwODsxMTBGIDExNjYgMTFBRjtDRjA4OzExMEYgMTE2NiAxMUFGOworQ0YwOTtDRjA5OzExMEYgMTE2NiAxMUIwO0NGMDk7MTEwRiAxMTY2IDExQjA7CitDRjBBO0NGMEE7MTEwRiAxMTY2IDExQjE7Q0YwQTsxMTBGIDExNjYgMTFCMTsKK0NGMEI7Q0YwQjsxMTBGIDExNjYgMTFCMjtDRjBCOzExMEYgMTE2NiAxMUIyOworQ0YwQztDRjBDOzExMEYgMTE2NiAxMUIzO0NGMEM7MTEwRiAxMTY2IDExQjM7CitDRjBEO0NGMEQ7MTEwRiAxMTY2IDExQjQ7Q0YwRDsxMTBGIDExNjYgMTFCNDsKK0NGMEU7Q0YwRTsxMTBGIDExNjYgMTFCNTtDRjBFOzExMEYgMTE2NiAxMUI1OworQ0YwRjtDRjBGOzExMEYgMTE2NiAxMUI2O0NGMEY7MTEwRiAxMTY2IDExQjY7CitDRjEwO0NGMTA7MTEwRiAxMTY2IDExQjc7Q0YxMDsxMTBGIDExNjYgMTFCNzsKK0NGMTE7Q0YxMTsxMTBGIDExNjYgMTFCODtDRjExOzExMEYgMTE2NiAxMUI4OworQ0YxMjtDRjEyOzExMEYgMTE2NiAxMUI5O0NGMTI7MTEwRiAxMTY2IDExQjk7CitDRjEzO0NGMTM7MTEwRiAxMTY2IDExQkE7Q0YxMzsxMTBGIDExNjYgMTFCQTsKK0NGMTQ7Q0YxNDsxMTBGIDExNjYgMTFCQjtDRjE0OzExMEYgMTE2NiAxMUJCOworQ0YxNTtDRjE1OzExMEYgMTE2NiAxMUJDO0NGMTU7MTEwRiAxMTY2IDExQkM7CitDRjE2O0NGMTY7MTEwRiAxMTY2IDExQkQ7Q0YxNjsxMTBGIDExNjYgMTFCRDsKK0NGMTc7Q0YxNzsxMTBGIDExNjYgMTFCRTtDRjE3OzExMEYgMTE2NiAxMUJFOworQ0YxODtDRjE4OzExMEYgMTE2NiAxMUJGO0NGMTg7MTEwRiAxMTY2IDExQkY7CitDRjE5O0NGMTk7MTEwRiAxMTY2IDExQzA7Q0YxOTsxMTBGIDExNjYgMTFDMDsKK0NGMUE7Q0YxQTsxMTBGIDExNjYgMTFDMTtDRjFBOzExMEYgMTE2NiAxMUMxOworQ0YxQjtDRjFCOzExMEYgMTE2NiAxMUMyO0NGMUI7MTEwRiAxMTY2IDExQzI7CitDRjFDO0NGMUM7MTEwRiAxMTY3O0NGMUM7MTEwRiAxMTY3OworQ0YxRDtDRjFEOzExMEYgMTE2NyAxMUE4O0NGMUQ7MTEwRiAxMTY3IDExQTg7CitDRjFFO0NGMUU7MTEwRiAxMTY3IDExQTk7Q0YxRTsxMTBGIDExNjcgMTFBOTsKK0NGMUY7Q0YxRjsxMTBGIDExNjcgMTFBQTtDRjFGOzExMEYgMTE2NyAxMUFBOworQ0YyMDtDRjIwOzExMEYgMTE2NyAxMUFCO0NGMjA7MTEwRiAxMTY3IDExQUI7CitDRjIxO0NGMjE7MTEwRiAxMTY3IDExQUM7Q0YyMTsxMTBGIDExNjcgMTFBQzsKK0NGMjI7Q0YyMjsxMTBGIDExNjcgMTFBRDtDRjIyOzExMEYgMTE2NyAxMUFEOworQ0YyMztDRjIzOzExMEYgMTE2NyAxMUFFO0NGMjM7MTEwRiAxMTY3IDExQUU7CitDRjI0O0NGMjQ7MTEwRiAxMTY3IDExQUY7Q0YyNDsxMTBGIDExNjcgMTFBRjsKK0NGMjU7Q0YyNTsxMTBGIDExNjcgMTFCMDtDRjI1OzExMEYgMTE2NyAxMUIwOworQ0YyNjtDRjI2OzExMEYgMTE2NyAxMUIxO0NGMjY7MTEwRiAxMTY3IDExQjE7CitDRjI3O0NGMjc7MTEwRiAxMTY3IDExQjI7Q0YyNzsxMTBGIDExNjcgMTFCMjsKK0NGMjg7Q0YyODsxMTBGIDExNjcgMTFCMztDRjI4OzExMEYgMTE2NyAxMUIzOworQ0YyOTtDRjI5OzExMEYgMTE2NyAxMUI0O0NGMjk7MTEwRiAxMTY3IDExQjQ7CitDRjJBO0NGMkE7MTEwRiAxMTY3IDExQjU7Q0YyQTsxMTBGIDExNjcgMTFCNTsKK0NGMkI7Q0YyQjsxMTBGIDExNjcgMTFCNjtDRjJCOzExMEYgMTE2NyAxMUI2OworQ0YyQztDRjJDOzExMEYgMTE2NyAxMUI3O0NGMkM7MTEwRiAxMTY3IDExQjc7CitDRjJEO0NGMkQ7MTEwRiAxMTY3IDExQjg7Q0YyRDsxMTBGIDExNjcgMTFCODsKK0NGMkU7Q0YyRTsxMTBGIDExNjcgMTFCOTtDRjJFOzExMEYgMTE2NyAxMUI5OworQ0YyRjtDRjJGOzExMEYgMTE2NyAxMUJBO0NGMkY7MTEwRiAxMTY3IDExQkE7CitDRjMwO0NGMzA7MTEwRiAxMTY3IDExQkI7Q0YzMDsxMTBGIDExNjcgMTFCQjsKK0NGMzE7Q0YzMTsxMTBGIDExNjcgMTFCQztDRjMxOzExMEYgMTE2NyAxMUJDOworQ0YzMjtDRjMyOzExMEYgMTE2NyAxMUJEO0NGMzI7MTEwRiAxMTY3IDExQkQ7CitDRjMzO0NGMzM7MTEwRiAxMTY3IDExQkU7Q0YzMzsxMTBGIDExNjcgMTFCRTsKK0NGMzQ7Q0YzNDsxMTBGIDExNjcgMTFCRjtDRjM0OzExMEYgMTE2NyAxMUJGOworQ0YzNTtDRjM1OzExMEYgMTE2NyAxMUMwO0NGMzU7MTEwRiAxMTY3IDExQzA7CitDRjM2O0NGMzY7MTEwRiAxMTY3IDExQzE7Q0YzNjsxMTBGIDExNjcgMTFDMTsKK0NGMzc7Q0YzNzsxMTBGIDExNjcgMTFDMjtDRjM3OzExMEYgMTE2NyAxMUMyOworQ0YzODtDRjM4OzExMEYgMTE2ODtDRjM4OzExMEYgMTE2ODsKK0NGMzk7Q0YzOTsxMTBGIDExNjggMTFBODtDRjM5OzExMEYgMTE2OCAxMUE4OworQ0YzQTtDRjNBOzExMEYgMTE2OCAxMUE5O0NGM0E7MTEwRiAxMTY4IDExQTk7CitDRjNCO0NGM0I7MTEwRiAxMTY4IDExQUE7Q0YzQjsxMTBGIDExNjggMTFBQTsKK0NGM0M7Q0YzQzsxMTBGIDExNjggMTFBQjtDRjNDOzExMEYgMTE2OCAxMUFCOworQ0YzRDtDRjNEOzExMEYgMTE2OCAxMUFDO0NGM0Q7MTEwRiAxMTY4IDExQUM7CitDRjNFO0NGM0U7MTEwRiAxMTY4IDExQUQ7Q0YzRTsxMTBGIDExNjggMTFBRDsKK0NGM0Y7Q0YzRjsxMTBGIDExNjggMTFBRTtDRjNGOzExMEYgMTE2OCAxMUFFOworQ0Y0MDtDRjQwOzExMEYgMTE2OCAxMUFGO0NGNDA7MTEwRiAxMTY4IDExQUY7CitDRjQxO0NGNDE7MTEwRiAxMTY4IDExQjA7Q0Y0MTsxMTBGIDExNjggMTFCMDsKK0NGNDI7Q0Y0MjsxMTBGIDExNjggMTFCMTtDRjQyOzExMEYgMTE2OCAxMUIxOworQ0Y0MztDRjQzOzExMEYgMTE2OCAxMUIyO0NGNDM7MTEwRiAxMTY4IDExQjI7CitDRjQ0O0NGNDQ7MTEwRiAxMTY4IDExQjM7Q0Y0NDsxMTBGIDExNjggMTFCMzsKK0NGNDU7Q0Y0NTsxMTBGIDExNjggMTFCNDtDRjQ1OzExMEYgMTE2OCAxMUI0OworQ0Y0NjtDRjQ2OzExMEYgMTE2OCAxMUI1O0NGNDY7MTEwRiAxMTY4IDExQjU7CitDRjQ3O0NGNDc7MTEwRiAxMTY4IDExQjY7Q0Y0NzsxMTBGIDExNjggMTFCNjsKK0NGNDg7Q0Y0ODsxMTBGIDExNjggMTFCNztDRjQ4OzExMEYgMTE2OCAxMUI3OworQ0Y0OTtDRjQ5OzExMEYgMTE2OCAxMUI4O0NGNDk7MTEwRiAxMTY4IDExQjg7CitDRjRBO0NGNEE7MTEwRiAxMTY4IDExQjk7Q0Y0QTsxMTBGIDExNjggMTFCOTsKK0NGNEI7Q0Y0QjsxMTBGIDExNjggMTFCQTtDRjRCOzExMEYgMTE2OCAxMUJBOworQ0Y0QztDRjRDOzExMEYgMTE2OCAxMUJCO0NGNEM7MTEwRiAxMTY4IDExQkI7CitDRjREO0NGNEQ7MTEwRiAxMTY4IDExQkM7Q0Y0RDsxMTBGIDExNjggMTFCQzsKK0NGNEU7Q0Y0RTsxMTBGIDExNjggMTFCRDtDRjRFOzExMEYgMTE2OCAxMUJEOworQ0Y0RjtDRjRGOzExMEYgMTE2OCAxMUJFO0NGNEY7MTEwRiAxMTY4IDExQkU7CitDRjUwO0NGNTA7MTEwRiAxMTY4IDExQkY7Q0Y1MDsxMTBGIDExNjggMTFCRjsKK0NGNTE7Q0Y1MTsxMTBGIDExNjggMTFDMDtDRjUxOzExMEYgMTE2OCAxMUMwOworQ0Y1MjtDRjUyOzExMEYgMTE2OCAxMUMxO0NGNTI7MTEwRiAxMTY4IDExQzE7CitDRjUzO0NGNTM7MTEwRiAxMTY4IDExQzI7Q0Y1MzsxMTBGIDExNjggMTFDMjsKK0NGNTQ7Q0Y1NDsxMTBGIDExNjk7Q0Y1NDsxMTBGIDExNjk7CitDRjU1O0NGNTU7MTEwRiAxMTY5IDExQTg7Q0Y1NTsxMTBGIDExNjkgMTFBODsKK0NGNTY7Q0Y1NjsxMTBGIDExNjkgMTFBOTtDRjU2OzExMEYgMTE2OSAxMUE5OworQ0Y1NztDRjU3OzExMEYgMTE2OSAxMUFBO0NGNTc7MTEwRiAxMTY5IDExQUE7CitDRjU4O0NGNTg7MTEwRiAxMTY5IDExQUI7Q0Y1ODsxMTBGIDExNjkgMTFBQjsKK0NGNTk7Q0Y1OTsxMTBGIDExNjkgMTFBQztDRjU5OzExMEYgMTE2OSAxMUFDOworQ0Y1QTtDRjVBOzExMEYgMTE2OSAxMUFEO0NGNUE7MTEwRiAxMTY5IDExQUQ7CitDRjVCO0NGNUI7MTEwRiAxMTY5IDExQUU7Q0Y1QjsxMTBGIDExNjkgMTFBRTsKK0NGNUM7Q0Y1QzsxMTBGIDExNjkgMTFBRjtDRjVDOzExMEYgMTE2OSAxMUFGOworQ0Y1RDtDRjVEOzExMEYgMTE2OSAxMUIwO0NGNUQ7MTEwRiAxMTY5IDExQjA7CitDRjVFO0NGNUU7MTEwRiAxMTY5IDExQjE7Q0Y1RTsxMTBGIDExNjkgMTFCMTsKK0NGNUY7Q0Y1RjsxMTBGIDExNjkgMTFCMjtDRjVGOzExMEYgMTE2OSAxMUIyOworQ0Y2MDtDRjYwOzExMEYgMTE2OSAxMUIzO0NGNjA7MTEwRiAxMTY5IDExQjM7CitDRjYxO0NGNjE7MTEwRiAxMTY5IDExQjQ7Q0Y2MTsxMTBGIDExNjkgMTFCNDsKK0NGNjI7Q0Y2MjsxMTBGIDExNjkgMTFCNTtDRjYyOzExMEYgMTE2OSAxMUI1OworQ0Y2MztDRjYzOzExMEYgMTE2OSAxMUI2O0NGNjM7MTEwRiAxMTY5IDExQjY7CitDRjY0O0NGNjQ7MTEwRiAxMTY5IDExQjc7Q0Y2NDsxMTBGIDExNjkgMTFCNzsKK0NGNjU7Q0Y2NTsxMTBGIDExNjkgMTFCODtDRjY1OzExMEYgMTE2OSAxMUI4OworQ0Y2NjtDRjY2OzExMEYgMTE2OSAxMUI5O0NGNjY7MTEwRiAxMTY5IDExQjk7CitDRjY3O0NGNjc7MTEwRiAxMTY5IDExQkE7Q0Y2NzsxMTBGIDExNjkgMTFCQTsKK0NGNjg7Q0Y2ODsxMTBGIDExNjkgMTFCQjtDRjY4OzExMEYgMTE2OSAxMUJCOworQ0Y2OTtDRjY5OzExMEYgMTE2OSAxMUJDO0NGNjk7MTEwRiAxMTY5IDExQkM7CitDRjZBO0NGNkE7MTEwRiAxMTY5IDExQkQ7Q0Y2QTsxMTBGIDExNjkgMTFCRDsKK0NGNkI7Q0Y2QjsxMTBGIDExNjkgMTFCRTtDRjZCOzExMEYgMTE2OSAxMUJFOworQ0Y2QztDRjZDOzExMEYgMTE2OSAxMUJGO0NGNkM7MTEwRiAxMTY5IDExQkY7CitDRjZEO0NGNkQ7MTEwRiAxMTY5IDExQzA7Q0Y2RDsxMTBGIDExNjkgMTFDMDsKK0NGNkU7Q0Y2RTsxMTBGIDExNjkgMTFDMTtDRjZFOzExMEYgMTE2OSAxMUMxOworQ0Y2RjtDRjZGOzExMEYgMTE2OSAxMUMyO0NGNkY7MTEwRiAxMTY5IDExQzI7CitDRjcwO0NGNzA7MTEwRiAxMTZBO0NGNzA7MTEwRiAxMTZBOworQ0Y3MTtDRjcxOzExMEYgMTE2QSAxMUE4O0NGNzE7MTEwRiAxMTZBIDExQTg7CitDRjcyO0NGNzI7MTEwRiAxMTZBIDExQTk7Q0Y3MjsxMTBGIDExNkEgMTFBOTsKK0NGNzM7Q0Y3MzsxMTBGIDExNkEgMTFBQTtDRjczOzExMEYgMTE2QSAxMUFBOworQ0Y3NDtDRjc0OzExMEYgMTE2QSAxMUFCO0NGNzQ7MTEwRiAxMTZBIDExQUI7CitDRjc1O0NGNzU7MTEwRiAxMTZBIDExQUM7Q0Y3NTsxMTBGIDExNkEgMTFBQzsKK0NGNzY7Q0Y3NjsxMTBGIDExNkEgMTFBRDtDRjc2OzExMEYgMTE2QSAxMUFEOworQ0Y3NztDRjc3OzExMEYgMTE2QSAxMUFFO0NGNzc7MTEwRiAxMTZBIDExQUU7CitDRjc4O0NGNzg7MTEwRiAxMTZBIDExQUY7Q0Y3ODsxMTBGIDExNkEgMTFBRjsKK0NGNzk7Q0Y3OTsxMTBGIDExNkEgMTFCMDtDRjc5OzExMEYgMTE2QSAxMUIwOworQ0Y3QTtDRjdBOzExMEYgMTE2QSAxMUIxO0NGN0E7MTEwRiAxMTZBIDExQjE7CitDRjdCO0NGN0I7MTEwRiAxMTZBIDExQjI7Q0Y3QjsxMTBGIDExNkEgMTFCMjsKK0NGN0M7Q0Y3QzsxMTBGIDExNkEgMTFCMztDRjdDOzExMEYgMTE2QSAxMUIzOworQ0Y3RDtDRjdEOzExMEYgMTE2QSAxMUI0O0NGN0Q7MTEwRiAxMTZBIDExQjQ7CitDRjdFO0NGN0U7MTEwRiAxMTZBIDExQjU7Q0Y3RTsxMTBGIDExNkEgMTFCNTsKK0NGN0Y7Q0Y3RjsxMTBGIDExNkEgMTFCNjtDRjdGOzExMEYgMTE2QSAxMUI2OworQ0Y4MDtDRjgwOzExMEYgMTE2QSAxMUI3O0NGODA7MTEwRiAxMTZBIDExQjc7CitDRjgxO0NGODE7MTEwRiAxMTZBIDExQjg7Q0Y4MTsxMTBGIDExNkEgMTFCODsKK0NGODI7Q0Y4MjsxMTBGIDExNkEgMTFCOTtDRjgyOzExMEYgMTE2QSAxMUI5OworQ0Y4MztDRjgzOzExMEYgMTE2QSAxMUJBO0NGODM7MTEwRiAxMTZBIDExQkE7CitDRjg0O0NGODQ7MTEwRiAxMTZBIDExQkI7Q0Y4NDsxMTBGIDExNkEgMTFCQjsKK0NGODU7Q0Y4NTsxMTBGIDExNkEgMTFCQztDRjg1OzExMEYgMTE2QSAxMUJDOworQ0Y4NjtDRjg2OzExMEYgMTE2QSAxMUJEO0NGODY7MTEwRiAxMTZBIDExQkQ7CitDRjg3O0NGODc7MTEwRiAxMTZBIDExQkU7Q0Y4NzsxMTBGIDExNkEgMTFCRTsKK0NGODg7Q0Y4ODsxMTBGIDExNkEgMTFCRjtDRjg4OzExMEYgMTE2QSAxMUJGOworQ0Y4OTtDRjg5OzExMEYgMTE2QSAxMUMwO0NGODk7MTEwRiAxMTZBIDExQzA7CitDRjhBO0NGOEE7MTEwRiAxMTZBIDExQzE7Q0Y4QTsxMTBGIDExNkEgMTFDMTsKK0NGOEI7Q0Y4QjsxMTBGIDExNkEgMTFDMjtDRjhCOzExMEYgMTE2QSAxMUMyOworQ0Y4QztDRjhDOzExMEYgMTE2QjtDRjhDOzExMEYgMTE2QjsKK0NGOEQ7Q0Y4RDsxMTBGIDExNkIgMTFBODtDRjhEOzExMEYgMTE2QiAxMUE4OworQ0Y4RTtDRjhFOzExMEYgMTE2QiAxMUE5O0NGOEU7MTEwRiAxMTZCIDExQTk7CitDRjhGO0NGOEY7MTEwRiAxMTZCIDExQUE7Q0Y4RjsxMTBGIDExNkIgMTFBQTsKK0NGOTA7Q0Y5MDsxMTBGIDExNkIgMTFBQjtDRjkwOzExMEYgMTE2QiAxMUFCOworQ0Y5MTtDRjkxOzExMEYgMTE2QiAxMUFDO0NGOTE7MTEwRiAxMTZCIDExQUM7CitDRjkyO0NGOTI7MTEwRiAxMTZCIDExQUQ7Q0Y5MjsxMTBGIDExNkIgMTFBRDsKK0NGOTM7Q0Y5MzsxMTBGIDExNkIgMTFBRTtDRjkzOzExMEYgMTE2QiAxMUFFOworQ0Y5NDtDRjk0OzExMEYgMTE2QiAxMUFGO0NGOTQ7MTEwRiAxMTZCIDExQUY7CitDRjk1O0NGOTU7MTEwRiAxMTZCIDExQjA7Q0Y5NTsxMTBGIDExNkIgMTFCMDsKK0NGOTY7Q0Y5NjsxMTBGIDExNkIgMTFCMTtDRjk2OzExMEYgMTE2QiAxMUIxOworQ0Y5NztDRjk3OzExMEYgMTE2QiAxMUIyO0NGOTc7MTEwRiAxMTZCIDExQjI7CitDRjk4O0NGOTg7MTEwRiAxMTZCIDExQjM7Q0Y5ODsxMTBGIDExNkIgMTFCMzsKK0NGOTk7Q0Y5OTsxMTBGIDExNkIgMTFCNDtDRjk5OzExMEYgMTE2QiAxMUI0OworQ0Y5QTtDRjlBOzExMEYgMTE2QiAxMUI1O0NGOUE7MTEwRiAxMTZCIDExQjU7CitDRjlCO0NGOUI7MTEwRiAxMTZCIDExQjY7Q0Y5QjsxMTBGIDExNkIgMTFCNjsKK0NGOUM7Q0Y5QzsxMTBGIDExNkIgMTFCNztDRjlDOzExMEYgMTE2QiAxMUI3OworQ0Y5RDtDRjlEOzExMEYgMTE2QiAxMUI4O0NGOUQ7MTEwRiAxMTZCIDExQjg7CitDRjlFO0NGOUU7MTEwRiAxMTZCIDExQjk7Q0Y5RTsxMTBGIDExNkIgMTFCOTsKK0NGOUY7Q0Y5RjsxMTBGIDExNkIgMTFCQTtDRjlGOzExMEYgMTE2QiAxMUJBOworQ0ZBMDtDRkEwOzExMEYgMTE2QiAxMUJCO0NGQTA7MTEwRiAxMTZCIDExQkI7CitDRkExO0NGQTE7MTEwRiAxMTZCIDExQkM7Q0ZBMTsxMTBGIDExNkIgMTFCQzsKK0NGQTI7Q0ZBMjsxMTBGIDExNkIgMTFCRDtDRkEyOzExMEYgMTE2QiAxMUJEOworQ0ZBMztDRkEzOzExMEYgMTE2QiAxMUJFO0NGQTM7MTEwRiAxMTZCIDExQkU7CitDRkE0O0NGQTQ7MTEwRiAxMTZCIDExQkY7Q0ZBNDsxMTBGIDExNkIgMTFCRjsKK0NGQTU7Q0ZBNTsxMTBGIDExNkIgMTFDMDtDRkE1OzExMEYgMTE2QiAxMUMwOworQ0ZBNjtDRkE2OzExMEYgMTE2QiAxMUMxO0NGQTY7MTEwRiAxMTZCIDExQzE7CitDRkE3O0NGQTc7MTEwRiAxMTZCIDExQzI7Q0ZBNzsxMTBGIDExNkIgMTFDMjsKK0NGQTg7Q0ZBODsxMTBGIDExNkM7Q0ZBODsxMTBGIDExNkM7CitDRkE5O0NGQTk7MTEwRiAxMTZDIDExQTg7Q0ZBOTsxMTBGIDExNkMgMTFBODsKK0NGQUE7Q0ZBQTsxMTBGIDExNkMgMTFBOTtDRkFBOzExMEYgMTE2QyAxMUE5OworQ0ZBQjtDRkFCOzExMEYgMTE2QyAxMUFBO0NGQUI7MTEwRiAxMTZDIDExQUE7CitDRkFDO0NGQUM7MTEwRiAxMTZDIDExQUI7Q0ZBQzsxMTBGIDExNkMgMTFBQjsKK0NGQUQ7Q0ZBRDsxMTBGIDExNkMgMTFBQztDRkFEOzExMEYgMTE2QyAxMUFDOworQ0ZBRTtDRkFFOzExMEYgMTE2QyAxMUFEO0NGQUU7MTEwRiAxMTZDIDExQUQ7CitDRkFGO0NGQUY7MTEwRiAxMTZDIDExQUU7Q0ZBRjsxMTBGIDExNkMgMTFBRTsKK0NGQjA7Q0ZCMDsxMTBGIDExNkMgMTFBRjtDRkIwOzExMEYgMTE2QyAxMUFGOworQ0ZCMTtDRkIxOzExMEYgMTE2QyAxMUIwO0NGQjE7MTEwRiAxMTZDIDExQjA7CitDRkIyO0NGQjI7MTEwRiAxMTZDIDExQjE7Q0ZCMjsxMTBGIDExNkMgMTFCMTsKK0NGQjM7Q0ZCMzsxMTBGIDExNkMgMTFCMjtDRkIzOzExMEYgMTE2QyAxMUIyOworQ0ZCNDtDRkI0OzExMEYgMTE2QyAxMUIzO0NGQjQ7MTEwRiAxMTZDIDExQjM7CitDRkI1O0NGQjU7MTEwRiAxMTZDIDExQjQ7Q0ZCNTsxMTBGIDExNkMgMTFCNDsKK0NGQjY7Q0ZCNjsxMTBGIDExNkMgMTFCNTtDRkI2OzExMEYgMTE2QyAxMUI1OworQ0ZCNztDRkI3OzExMEYgMTE2QyAxMUI2O0NGQjc7MTEwRiAxMTZDIDExQjY7CitDRkI4O0NGQjg7MTEwRiAxMTZDIDExQjc7Q0ZCODsxMTBGIDExNkMgMTFCNzsKK0NGQjk7Q0ZCOTsxMTBGIDExNkMgMTFCODtDRkI5OzExMEYgMTE2QyAxMUI4OworQ0ZCQTtDRkJBOzExMEYgMTE2QyAxMUI5O0NGQkE7MTEwRiAxMTZDIDExQjk7CitDRkJCO0NGQkI7MTEwRiAxMTZDIDExQkE7Q0ZCQjsxMTBGIDExNkMgMTFCQTsKK0NGQkM7Q0ZCQzsxMTBGIDExNkMgMTFCQjtDRkJDOzExMEYgMTE2QyAxMUJCOworQ0ZCRDtDRkJEOzExMEYgMTE2QyAxMUJDO0NGQkQ7MTEwRiAxMTZDIDExQkM7CitDRkJFO0NGQkU7MTEwRiAxMTZDIDExQkQ7Q0ZCRTsxMTBGIDExNkMgMTFCRDsKK0NGQkY7Q0ZCRjsxMTBGIDExNkMgMTFCRTtDRkJGOzExMEYgMTE2QyAxMUJFOworQ0ZDMDtDRkMwOzExMEYgMTE2QyAxMUJGO0NGQzA7MTEwRiAxMTZDIDExQkY7CitDRkMxO0NGQzE7MTEwRiAxMTZDIDExQzA7Q0ZDMTsxMTBGIDExNkMgMTFDMDsKK0NGQzI7Q0ZDMjsxMTBGIDExNkMgMTFDMTtDRkMyOzExMEYgMTE2QyAxMUMxOworQ0ZDMztDRkMzOzExMEYgMTE2QyAxMUMyO0NGQzM7MTEwRiAxMTZDIDExQzI7CitDRkM0O0NGQzQ7MTEwRiAxMTZEO0NGQzQ7MTEwRiAxMTZEOworQ0ZDNTtDRkM1OzExMEYgMTE2RCAxMUE4O0NGQzU7MTEwRiAxMTZEIDExQTg7CitDRkM2O0NGQzY7MTEwRiAxMTZEIDExQTk7Q0ZDNjsxMTBGIDExNkQgMTFBOTsKK0NGQzc7Q0ZDNzsxMTBGIDExNkQgMTFBQTtDRkM3OzExMEYgMTE2RCAxMUFBOworQ0ZDODtDRkM4OzExMEYgMTE2RCAxMUFCO0NGQzg7MTEwRiAxMTZEIDExQUI7CitDRkM5O0NGQzk7MTEwRiAxMTZEIDExQUM7Q0ZDOTsxMTBGIDExNkQgMTFBQzsKK0NGQ0E7Q0ZDQTsxMTBGIDExNkQgMTFBRDtDRkNBOzExMEYgMTE2RCAxMUFEOworQ0ZDQjtDRkNCOzExMEYgMTE2RCAxMUFFO0NGQ0I7MTEwRiAxMTZEIDExQUU7CitDRkNDO0NGQ0M7MTEwRiAxMTZEIDExQUY7Q0ZDQzsxMTBGIDExNkQgMTFBRjsKK0NGQ0Q7Q0ZDRDsxMTBGIDExNkQgMTFCMDtDRkNEOzExMEYgMTE2RCAxMUIwOworQ0ZDRTtDRkNFOzExMEYgMTE2RCAxMUIxO0NGQ0U7MTEwRiAxMTZEIDExQjE7CitDRkNGO0NGQ0Y7MTEwRiAxMTZEIDExQjI7Q0ZDRjsxMTBGIDExNkQgMTFCMjsKK0NGRDA7Q0ZEMDsxMTBGIDExNkQgMTFCMztDRkQwOzExMEYgMTE2RCAxMUIzOworQ0ZEMTtDRkQxOzExMEYgMTE2RCAxMUI0O0NGRDE7MTEwRiAxMTZEIDExQjQ7CitDRkQyO0NGRDI7MTEwRiAxMTZEIDExQjU7Q0ZEMjsxMTBGIDExNkQgMTFCNTsKK0NGRDM7Q0ZEMzsxMTBGIDExNkQgMTFCNjtDRkQzOzExMEYgMTE2RCAxMUI2OworQ0ZENDtDRkQ0OzExMEYgMTE2RCAxMUI3O0NGRDQ7MTEwRiAxMTZEIDExQjc7CitDRkQ1O0NGRDU7MTEwRiAxMTZEIDExQjg7Q0ZENTsxMTBGIDExNkQgMTFCODsKK0NGRDY7Q0ZENjsxMTBGIDExNkQgMTFCOTtDRkQ2OzExMEYgMTE2RCAxMUI5OworQ0ZENztDRkQ3OzExMEYgMTE2RCAxMUJBO0NGRDc7MTEwRiAxMTZEIDExQkE7CitDRkQ4O0NGRDg7MTEwRiAxMTZEIDExQkI7Q0ZEODsxMTBGIDExNkQgMTFCQjsKK0NGRDk7Q0ZEOTsxMTBGIDExNkQgMTFCQztDRkQ5OzExMEYgMTE2RCAxMUJDOworQ0ZEQTtDRkRBOzExMEYgMTE2RCAxMUJEO0NGREE7MTEwRiAxMTZEIDExQkQ7CitDRkRCO0NGREI7MTEwRiAxMTZEIDExQkU7Q0ZEQjsxMTBGIDExNkQgMTFCRTsKK0NGREM7Q0ZEQzsxMTBGIDExNkQgMTFCRjtDRkRDOzExMEYgMTE2RCAxMUJGOworQ0ZERDtDRkREOzExMEYgMTE2RCAxMUMwO0NGREQ7MTEwRiAxMTZEIDExQzA7CitDRkRFO0NGREU7MTEwRiAxMTZEIDExQzE7Q0ZERTsxMTBGIDExNkQgMTFDMTsKK0NGREY7Q0ZERjsxMTBGIDExNkQgMTFDMjtDRkRGOzExMEYgMTE2RCAxMUMyOworQ0ZFMDtDRkUwOzExMEYgMTE2RTtDRkUwOzExMEYgMTE2RTsKK0NGRTE7Q0ZFMTsxMTBGIDExNkUgMTFBODtDRkUxOzExMEYgMTE2RSAxMUE4OworQ0ZFMjtDRkUyOzExMEYgMTE2RSAxMUE5O0NGRTI7MTEwRiAxMTZFIDExQTk7CitDRkUzO0NGRTM7MTEwRiAxMTZFIDExQUE7Q0ZFMzsxMTBGIDExNkUgMTFBQTsKK0NGRTQ7Q0ZFNDsxMTBGIDExNkUgMTFBQjtDRkU0OzExMEYgMTE2RSAxMUFCOworQ0ZFNTtDRkU1OzExMEYgMTE2RSAxMUFDO0NGRTU7MTEwRiAxMTZFIDExQUM7CitDRkU2O0NGRTY7MTEwRiAxMTZFIDExQUQ7Q0ZFNjsxMTBGIDExNkUgMTFBRDsKK0NGRTc7Q0ZFNzsxMTBGIDExNkUgMTFBRTtDRkU3OzExMEYgMTE2RSAxMUFFOworQ0ZFODtDRkU4OzExMEYgMTE2RSAxMUFGO0NGRTg7MTEwRiAxMTZFIDExQUY7CitDRkU5O0NGRTk7MTEwRiAxMTZFIDExQjA7Q0ZFOTsxMTBGIDExNkUgMTFCMDsKK0NGRUE7Q0ZFQTsxMTBGIDExNkUgMTFCMTtDRkVBOzExMEYgMTE2RSAxMUIxOworQ0ZFQjtDRkVCOzExMEYgMTE2RSAxMUIyO0NGRUI7MTEwRiAxMTZFIDExQjI7CitDRkVDO0NGRUM7MTEwRiAxMTZFIDExQjM7Q0ZFQzsxMTBGIDExNkUgMTFCMzsKK0NGRUQ7Q0ZFRDsxMTBGIDExNkUgMTFCNDtDRkVEOzExMEYgMTE2RSAxMUI0OworQ0ZFRTtDRkVFOzExMEYgMTE2RSAxMUI1O0NGRUU7MTEwRiAxMTZFIDExQjU7CitDRkVGO0NGRUY7MTEwRiAxMTZFIDExQjY7Q0ZFRjsxMTBGIDExNkUgMTFCNjsKK0NGRjA7Q0ZGMDsxMTBGIDExNkUgMTFCNztDRkYwOzExMEYgMTE2RSAxMUI3OworQ0ZGMTtDRkYxOzExMEYgMTE2RSAxMUI4O0NGRjE7MTEwRiAxMTZFIDExQjg7CitDRkYyO0NGRjI7MTEwRiAxMTZFIDExQjk7Q0ZGMjsxMTBGIDExNkUgMTFCOTsKK0NGRjM7Q0ZGMzsxMTBGIDExNkUgMTFCQTtDRkYzOzExMEYgMTE2RSAxMUJBOworQ0ZGNDtDRkY0OzExMEYgMTE2RSAxMUJCO0NGRjQ7MTEwRiAxMTZFIDExQkI7CitDRkY1O0NGRjU7MTEwRiAxMTZFIDExQkM7Q0ZGNTsxMTBGIDExNkUgMTFCQzsKK0NGRjY7Q0ZGNjsxMTBGIDExNkUgMTFCRDtDRkY2OzExMEYgMTE2RSAxMUJEOworQ0ZGNztDRkY3OzExMEYgMTE2RSAxMUJFO0NGRjc7MTEwRiAxMTZFIDExQkU7CitDRkY4O0NGRjg7MTEwRiAxMTZFIDExQkY7Q0ZGODsxMTBGIDExNkUgMTFCRjsKK0NGRjk7Q0ZGOTsxMTBGIDExNkUgMTFDMDtDRkY5OzExMEYgMTE2RSAxMUMwOworQ0ZGQTtDRkZBOzExMEYgMTE2RSAxMUMxO0NGRkE7MTEwRiAxMTZFIDExQzE7CitDRkZCO0NGRkI7MTEwRiAxMTZFIDExQzI7Q0ZGQjsxMTBGIDExNkUgMTFDMjsKK0NGRkM7Q0ZGQzsxMTBGIDExNkY7Q0ZGQzsxMTBGIDExNkY7CitDRkZEO0NGRkQ7MTEwRiAxMTZGIDExQTg7Q0ZGRDsxMTBGIDExNkYgMTFBODsKK0NGRkU7Q0ZGRTsxMTBGIDExNkYgMTFBOTtDRkZFOzExMEYgMTE2RiAxMUE5OworQ0ZGRjtDRkZGOzExMEYgMTE2RiAxMUFBO0NGRkY7MTEwRiAxMTZGIDExQUE7CitEMDAwO0QwMDA7MTEwRiAxMTZGIDExQUI7RDAwMDsxMTBGIDExNkYgMTFBQjsKK0QwMDE7RDAwMTsxMTBGIDExNkYgMTFBQztEMDAxOzExMEYgMTE2RiAxMUFDOworRDAwMjtEMDAyOzExMEYgMTE2RiAxMUFEO0QwMDI7MTEwRiAxMTZGIDExQUQ7CitEMDAzO0QwMDM7MTEwRiAxMTZGIDExQUU7RDAwMzsxMTBGIDExNkYgMTFBRTsKK0QwMDQ7RDAwNDsxMTBGIDExNkYgMTFBRjtEMDA0OzExMEYgMTE2RiAxMUFGOworRDAwNTtEMDA1OzExMEYgMTE2RiAxMUIwO0QwMDU7MTEwRiAxMTZGIDExQjA7CitEMDA2O0QwMDY7MTEwRiAxMTZGIDExQjE7RDAwNjsxMTBGIDExNkYgMTFCMTsKK0QwMDc7RDAwNzsxMTBGIDExNkYgMTFCMjtEMDA3OzExMEYgMTE2RiAxMUIyOworRDAwODtEMDA4OzExMEYgMTE2RiAxMUIzO0QwMDg7MTEwRiAxMTZGIDExQjM7CitEMDA5O0QwMDk7MTEwRiAxMTZGIDExQjQ7RDAwOTsxMTBGIDExNkYgMTFCNDsKK0QwMEE7RDAwQTsxMTBGIDExNkYgMTFCNTtEMDBBOzExMEYgMTE2RiAxMUI1OworRDAwQjtEMDBCOzExMEYgMTE2RiAxMUI2O0QwMEI7MTEwRiAxMTZGIDExQjY7CitEMDBDO0QwMEM7MTEwRiAxMTZGIDExQjc7RDAwQzsxMTBGIDExNkYgMTFCNzsKK0QwMEQ7RDAwRDsxMTBGIDExNkYgMTFCODtEMDBEOzExMEYgMTE2RiAxMUI4OworRDAwRTtEMDBFOzExMEYgMTE2RiAxMUI5O0QwMEU7MTEwRiAxMTZGIDExQjk7CitEMDBGO0QwMEY7MTEwRiAxMTZGIDExQkE7RDAwRjsxMTBGIDExNkYgMTFCQTsKK0QwMTA7RDAxMDsxMTBGIDExNkYgMTFCQjtEMDEwOzExMEYgMTE2RiAxMUJCOworRDAxMTtEMDExOzExMEYgMTE2RiAxMUJDO0QwMTE7MTEwRiAxMTZGIDExQkM7CitEMDEyO0QwMTI7MTEwRiAxMTZGIDExQkQ7RDAxMjsxMTBGIDExNkYgMTFCRDsKK0QwMTM7RDAxMzsxMTBGIDExNkYgMTFCRTtEMDEzOzExMEYgMTE2RiAxMUJFOworRDAxNDtEMDE0OzExMEYgMTE2RiAxMUJGO0QwMTQ7MTEwRiAxMTZGIDExQkY7CitEMDE1O0QwMTU7MTEwRiAxMTZGIDExQzA7RDAxNTsxMTBGIDExNkYgMTFDMDsKK0QwMTY7RDAxNjsxMTBGIDExNkYgMTFDMTtEMDE2OzExMEYgMTE2RiAxMUMxOworRDAxNztEMDE3OzExMEYgMTE2RiAxMUMyO0QwMTc7MTEwRiAxMTZGIDExQzI7CitEMDE4O0QwMTg7MTEwRiAxMTcwO0QwMTg7MTEwRiAxMTcwOworRDAxOTtEMDE5OzExMEYgMTE3MCAxMUE4O0QwMTk7MTEwRiAxMTcwIDExQTg7CitEMDFBO0QwMUE7MTEwRiAxMTcwIDExQTk7RDAxQTsxMTBGIDExNzAgMTFBOTsKK0QwMUI7RDAxQjsxMTBGIDExNzAgMTFBQTtEMDFCOzExMEYgMTE3MCAxMUFBOworRDAxQztEMDFDOzExMEYgMTE3MCAxMUFCO0QwMUM7MTEwRiAxMTcwIDExQUI7CitEMDFEO0QwMUQ7MTEwRiAxMTcwIDExQUM7RDAxRDsxMTBGIDExNzAgMTFBQzsKK0QwMUU7RDAxRTsxMTBGIDExNzAgMTFBRDtEMDFFOzExMEYgMTE3MCAxMUFEOworRDAxRjtEMDFGOzExMEYgMTE3MCAxMUFFO0QwMUY7MTEwRiAxMTcwIDExQUU7CitEMDIwO0QwMjA7MTEwRiAxMTcwIDExQUY7RDAyMDsxMTBGIDExNzAgMTFBRjsKK0QwMjE7RDAyMTsxMTBGIDExNzAgMTFCMDtEMDIxOzExMEYgMTE3MCAxMUIwOworRDAyMjtEMDIyOzExMEYgMTE3MCAxMUIxO0QwMjI7MTEwRiAxMTcwIDExQjE7CitEMDIzO0QwMjM7MTEwRiAxMTcwIDExQjI7RDAyMzsxMTBGIDExNzAgMTFCMjsKK0QwMjQ7RDAyNDsxMTBGIDExNzAgMTFCMztEMDI0OzExMEYgMTE3MCAxMUIzOworRDAyNTtEMDI1OzExMEYgMTE3MCAxMUI0O0QwMjU7MTEwRiAxMTcwIDExQjQ7CitEMDI2O0QwMjY7MTEwRiAxMTcwIDExQjU7RDAyNjsxMTBGIDExNzAgMTFCNTsKK0QwMjc7RDAyNzsxMTBGIDExNzAgMTFCNjtEMDI3OzExMEYgMTE3MCAxMUI2OworRDAyODtEMDI4OzExMEYgMTE3MCAxMUI3O0QwMjg7MTEwRiAxMTcwIDExQjc7CitEMDI5O0QwMjk7MTEwRiAxMTcwIDExQjg7RDAyOTsxMTBGIDExNzAgMTFCODsKK0QwMkE7RDAyQTsxMTBGIDExNzAgMTFCOTtEMDJBOzExMEYgMTE3MCAxMUI5OworRDAyQjtEMDJCOzExMEYgMTE3MCAxMUJBO0QwMkI7MTEwRiAxMTcwIDExQkE7CitEMDJDO0QwMkM7MTEwRiAxMTcwIDExQkI7RDAyQzsxMTBGIDExNzAgMTFCQjsKK0QwMkQ7RDAyRDsxMTBGIDExNzAgMTFCQztEMDJEOzExMEYgMTE3MCAxMUJDOworRDAyRTtEMDJFOzExMEYgMTE3MCAxMUJEO0QwMkU7MTEwRiAxMTcwIDExQkQ7CitEMDJGO0QwMkY7MTEwRiAxMTcwIDExQkU7RDAyRjsxMTBGIDExNzAgMTFCRTsKK0QwMzA7RDAzMDsxMTBGIDExNzAgMTFCRjtEMDMwOzExMEYgMTE3MCAxMUJGOworRDAzMTtEMDMxOzExMEYgMTE3MCAxMUMwO0QwMzE7MTEwRiAxMTcwIDExQzA7CitEMDMyO0QwMzI7MTEwRiAxMTcwIDExQzE7RDAzMjsxMTBGIDExNzAgMTFDMTsKK0QwMzM7RDAzMzsxMTBGIDExNzAgMTFDMjtEMDMzOzExMEYgMTE3MCAxMUMyOworRDAzNDtEMDM0OzExMEYgMTE3MTtEMDM0OzExMEYgMTE3MTsKK0QwMzU7RDAzNTsxMTBGIDExNzEgMTFBODtEMDM1OzExMEYgMTE3MSAxMUE4OworRDAzNjtEMDM2OzExMEYgMTE3MSAxMUE5O0QwMzY7MTEwRiAxMTcxIDExQTk7CitEMDM3O0QwMzc7MTEwRiAxMTcxIDExQUE7RDAzNzsxMTBGIDExNzEgMTFBQTsKK0QwMzg7RDAzODsxMTBGIDExNzEgMTFBQjtEMDM4OzExMEYgMTE3MSAxMUFCOworRDAzOTtEMDM5OzExMEYgMTE3MSAxMUFDO0QwMzk7MTEwRiAxMTcxIDExQUM7CitEMDNBO0QwM0E7MTEwRiAxMTcxIDExQUQ7RDAzQTsxMTBGIDExNzEgMTFBRDsKK0QwM0I7RDAzQjsxMTBGIDExNzEgMTFBRTtEMDNCOzExMEYgMTE3MSAxMUFFOworRDAzQztEMDNDOzExMEYgMTE3MSAxMUFGO0QwM0M7MTEwRiAxMTcxIDExQUY7CitEMDNEO0QwM0Q7MTEwRiAxMTcxIDExQjA7RDAzRDsxMTBGIDExNzEgMTFCMDsKK0QwM0U7RDAzRTsxMTBGIDExNzEgMTFCMTtEMDNFOzExMEYgMTE3MSAxMUIxOworRDAzRjtEMDNGOzExMEYgMTE3MSAxMUIyO0QwM0Y7MTEwRiAxMTcxIDExQjI7CitEMDQwO0QwNDA7MTEwRiAxMTcxIDExQjM7RDA0MDsxMTBGIDExNzEgMTFCMzsKK0QwNDE7RDA0MTsxMTBGIDExNzEgMTFCNDtEMDQxOzExMEYgMTE3MSAxMUI0OworRDA0MjtEMDQyOzExMEYgMTE3MSAxMUI1O0QwNDI7MTEwRiAxMTcxIDExQjU7CitEMDQzO0QwNDM7MTEwRiAxMTcxIDExQjY7RDA0MzsxMTBGIDExNzEgMTFCNjsKK0QwNDQ7RDA0NDsxMTBGIDExNzEgMTFCNztEMDQ0OzExMEYgMTE3MSAxMUI3OworRDA0NTtEMDQ1OzExMEYgMTE3MSAxMUI4O0QwNDU7MTEwRiAxMTcxIDExQjg7CitEMDQ2O0QwNDY7MTEwRiAxMTcxIDExQjk7RDA0NjsxMTBGIDExNzEgMTFCOTsKK0QwNDc7RDA0NzsxMTBGIDExNzEgMTFCQTtEMDQ3OzExMEYgMTE3MSAxMUJBOworRDA0ODtEMDQ4OzExMEYgMTE3MSAxMUJCO0QwNDg7MTEwRiAxMTcxIDExQkI7CitEMDQ5O0QwNDk7MTEwRiAxMTcxIDExQkM7RDA0OTsxMTBGIDExNzEgMTFCQzsKK0QwNEE7RDA0QTsxMTBGIDExNzEgMTFCRDtEMDRBOzExMEYgMTE3MSAxMUJEOworRDA0QjtEMDRCOzExMEYgMTE3MSAxMUJFO0QwNEI7MTEwRiAxMTcxIDExQkU7CitEMDRDO0QwNEM7MTEwRiAxMTcxIDExQkY7RDA0QzsxMTBGIDExNzEgMTFCRjsKK0QwNEQ7RDA0RDsxMTBGIDExNzEgMTFDMDtEMDREOzExMEYgMTE3MSAxMUMwOworRDA0RTtEMDRFOzExMEYgMTE3MSAxMUMxO0QwNEU7MTEwRiAxMTcxIDExQzE7CitEMDRGO0QwNEY7MTEwRiAxMTcxIDExQzI7RDA0RjsxMTBGIDExNzEgMTFDMjsKK0QwNTA7RDA1MDsxMTBGIDExNzI7RDA1MDsxMTBGIDExNzI7CitEMDUxO0QwNTE7MTEwRiAxMTcyIDExQTg7RDA1MTsxMTBGIDExNzIgMTFBODsKK0QwNTI7RDA1MjsxMTBGIDExNzIgMTFBOTtEMDUyOzExMEYgMTE3MiAxMUE5OworRDA1MztEMDUzOzExMEYgMTE3MiAxMUFBO0QwNTM7MTEwRiAxMTcyIDExQUE7CitEMDU0O0QwNTQ7MTEwRiAxMTcyIDExQUI7RDA1NDsxMTBGIDExNzIgMTFBQjsKK0QwNTU7RDA1NTsxMTBGIDExNzIgMTFBQztEMDU1OzExMEYgMTE3MiAxMUFDOworRDA1NjtEMDU2OzExMEYgMTE3MiAxMUFEO0QwNTY7MTEwRiAxMTcyIDExQUQ7CitEMDU3O0QwNTc7MTEwRiAxMTcyIDExQUU7RDA1NzsxMTBGIDExNzIgMTFBRTsKK0QwNTg7RDA1ODsxMTBGIDExNzIgMTFBRjtEMDU4OzExMEYgMTE3MiAxMUFGOworRDA1OTtEMDU5OzExMEYgMTE3MiAxMUIwO0QwNTk7MTEwRiAxMTcyIDExQjA7CitEMDVBO0QwNUE7MTEwRiAxMTcyIDExQjE7RDA1QTsxMTBGIDExNzIgMTFCMTsKK0QwNUI7RDA1QjsxMTBGIDExNzIgMTFCMjtEMDVCOzExMEYgMTE3MiAxMUIyOworRDA1QztEMDVDOzExMEYgMTE3MiAxMUIzO0QwNUM7MTEwRiAxMTcyIDExQjM7CitEMDVEO0QwNUQ7MTEwRiAxMTcyIDExQjQ7RDA1RDsxMTBGIDExNzIgMTFCNDsKK0QwNUU7RDA1RTsxMTBGIDExNzIgMTFCNTtEMDVFOzExMEYgMTE3MiAxMUI1OworRDA1RjtEMDVGOzExMEYgMTE3MiAxMUI2O0QwNUY7MTEwRiAxMTcyIDExQjY7CitEMDYwO0QwNjA7MTEwRiAxMTcyIDExQjc7RDA2MDsxMTBGIDExNzIgMTFCNzsKK0QwNjE7RDA2MTsxMTBGIDExNzIgMTFCODtEMDYxOzExMEYgMTE3MiAxMUI4OworRDA2MjtEMDYyOzExMEYgMTE3MiAxMUI5O0QwNjI7MTEwRiAxMTcyIDExQjk7CitEMDYzO0QwNjM7MTEwRiAxMTcyIDExQkE7RDA2MzsxMTBGIDExNzIgMTFCQTsKK0QwNjQ7RDA2NDsxMTBGIDExNzIgMTFCQjtEMDY0OzExMEYgMTE3MiAxMUJCOworRDA2NTtEMDY1OzExMEYgMTE3MiAxMUJDO0QwNjU7MTEwRiAxMTcyIDExQkM7CitEMDY2O0QwNjY7MTEwRiAxMTcyIDExQkQ7RDA2NjsxMTBGIDExNzIgMTFCRDsKK0QwNjc7RDA2NzsxMTBGIDExNzIgMTFCRTtEMDY3OzExMEYgMTE3MiAxMUJFOworRDA2ODtEMDY4OzExMEYgMTE3MiAxMUJGO0QwNjg7MTEwRiAxMTcyIDExQkY7CitEMDY5O0QwNjk7MTEwRiAxMTcyIDExQzA7RDA2OTsxMTBGIDExNzIgMTFDMDsKK0QwNkE7RDA2QTsxMTBGIDExNzIgMTFDMTtEMDZBOzExMEYgMTE3MiAxMUMxOworRDA2QjtEMDZCOzExMEYgMTE3MiAxMUMyO0QwNkI7MTEwRiAxMTcyIDExQzI7CitEMDZDO0QwNkM7MTEwRiAxMTczO0QwNkM7MTEwRiAxMTczOworRDA2RDtEMDZEOzExMEYgMTE3MyAxMUE4O0QwNkQ7MTEwRiAxMTczIDExQTg7CitEMDZFO0QwNkU7MTEwRiAxMTczIDExQTk7RDA2RTsxMTBGIDExNzMgMTFBOTsKK0QwNkY7RDA2RjsxMTBGIDExNzMgMTFBQTtEMDZGOzExMEYgMTE3MyAxMUFBOworRDA3MDtEMDcwOzExMEYgMTE3MyAxMUFCO0QwNzA7MTEwRiAxMTczIDExQUI7CitEMDcxO0QwNzE7MTEwRiAxMTczIDExQUM7RDA3MTsxMTBGIDExNzMgMTFBQzsKK0QwNzI7RDA3MjsxMTBGIDExNzMgMTFBRDtEMDcyOzExMEYgMTE3MyAxMUFEOworRDA3MztEMDczOzExMEYgMTE3MyAxMUFFO0QwNzM7MTEwRiAxMTczIDExQUU7CitEMDc0O0QwNzQ7MTEwRiAxMTczIDExQUY7RDA3NDsxMTBGIDExNzMgMTFBRjsKK0QwNzU7RDA3NTsxMTBGIDExNzMgMTFCMDtEMDc1OzExMEYgMTE3MyAxMUIwOworRDA3NjtEMDc2OzExMEYgMTE3MyAxMUIxO0QwNzY7MTEwRiAxMTczIDExQjE7CitEMDc3O0QwNzc7MTEwRiAxMTczIDExQjI7RDA3NzsxMTBGIDExNzMgMTFCMjsKK0QwNzg7RDA3ODsxMTBGIDExNzMgMTFCMztEMDc4OzExMEYgMTE3MyAxMUIzOworRDA3OTtEMDc5OzExMEYgMTE3MyAxMUI0O0QwNzk7MTEwRiAxMTczIDExQjQ7CitEMDdBO0QwN0E7MTEwRiAxMTczIDExQjU7RDA3QTsxMTBGIDExNzMgMTFCNTsKK0QwN0I7RDA3QjsxMTBGIDExNzMgMTFCNjtEMDdCOzExMEYgMTE3MyAxMUI2OworRDA3QztEMDdDOzExMEYgMTE3MyAxMUI3O0QwN0M7MTEwRiAxMTczIDExQjc7CitEMDdEO0QwN0Q7MTEwRiAxMTczIDExQjg7RDA3RDsxMTBGIDExNzMgMTFCODsKK0QwN0U7RDA3RTsxMTBGIDExNzMgMTFCOTtEMDdFOzExMEYgMTE3MyAxMUI5OworRDA3RjtEMDdGOzExMEYgMTE3MyAxMUJBO0QwN0Y7MTEwRiAxMTczIDExQkE7CitEMDgwO0QwODA7MTEwRiAxMTczIDExQkI7RDA4MDsxMTBGIDExNzMgMTFCQjsKK0QwODE7RDA4MTsxMTBGIDExNzMgMTFCQztEMDgxOzExMEYgMTE3MyAxMUJDOworRDA4MjtEMDgyOzExMEYgMTE3MyAxMUJEO0QwODI7MTEwRiAxMTczIDExQkQ7CitEMDgzO0QwODM7MTEwRiAxMTczIDExQkU7RDA4MzsxMTBGIDExNzMgMTFCRTsKK0QwODQ7RDA4NDsxMTBGIDExNzMgMTFCRjtEMDg0OzExMEYgMTE3MyAxMUJGOworRDA4NTtEMDg1OzExMEYgMTE3MyAxMUMwO0QwODU7MTEwRiAxMTczIDExQzA7CitEMDg2O0QwODY7MTEwRiAxMTczIDExQzE7RDA4NjsxMTBGIDExNzMgMTFDMTsKK0QwODc7RDA4NzsxMTBGIDExNzMgMTFDMjtEMDg3OzExMEYgMTE3MyAxMUMyOworRDA4ODtEMDg4OzExMEYgMTE3NDtEMDg4OzExMEYgMTE3NDsKK0QwODk7RDA4OTsxMTBGIDExNzQgMTFBODtEMDg5OzExMEYgMTE3NCAxMUE4OworRDA4QTtEMDhBOzExMEYgMTE3NCAxMUE5O0QwOEE7MTEwRiAxMTc0IDExQTk7CitEMDhCO0QwOEI7MTEwRiAxMTc0IDExQUE7RDA4QjsxMTBGIDExNzQgMTFBQTsKK0QwOEM7RDA4QzsxMTBGIDExNzQgMTFBQjtEMDhDOzExMEYgMTE3NCAxMUFCOworRDA4RDtEMDhEOzExMEYgMTE3NCAxMUFDO0QwOEQ7MTEwRiAxMTc0IDExQUM7CitEMDhFO0QwOEU7MTEwRiAxMTc0IDExQUQ7RDA4RTsxMTBGIDExNzQgMTFBRDsKK0QwOEY7RDA4RjsxMTBGIDExNzQgMTFBRTtEMDhGOzExMEYgMTE3NCAxMUFFOworRDA5MDtEMDkwOzExMEYgMTE3NCAxMUFGO0QwOTA7MTEwRiAxMTc0IDExQUY7CitEMDkxO0QwOTE7MTEwRiAxMTc0IDExQjA7RDA5MTsxMTBGIDExNzQgMTFCMDsKK0QwOTI7RDA5MjsxMTBGIDExNzQgMTFCMTtEMDkyOzExMEYgMTE3NCAxMUIxOworRDA5MztEMDkzOzExMEYgMTE3NCAxMUIyO0QwOTM7MTEwRiAxMTc0IDExQjI7CitEMDk0O0QwOTQ7MTEwRiAxMTc0IDExQjM7RDA5NDsxMTBGIDExNzQgMTFCMzsKK0QwOTU7RDA5NTsxMTBGIDExNzQgMTFCNDtEMDk1OzExMEYgMTE3NCAxMUI0OworRDA5NjtEMDk2OzExMEYgMTE3NCAxMUI1O0QwOTY7MTEwRiAxMTc0IDExQjU7CitEMDk3O0QwOTc7MTEwRiAxMTc0IDExQjY7RDA5NzsxMTBGIDExNzQgMTFCNjsKK0QwOTg7RDA5ODsxMTBGIDExNzQgMTFCNztEMDk4OzExMEYgMTE3NCAxMUI3OworRDA5OTtEMDk5OzExMEYgMTE3NCAxMUI4O0QwOTk7MTEwRiAxMTc0IDExQjg7CitEMDlBO0QwOUE7MTEwRiAxMTc0IDExQjk7RDA5QTsxMTBGIDExNzQgMTFCOTsKK0QwOUI7RDA5QjsxMTBGIDExNzQgMTFCQTtEMDlCOzExMEYgMTE3NCAxMUJBOworRDA5QztEMDlDOzExMEYgMTE3NCAxMUJCO0QwOUM7MTEwRiAxMTc0IDExQkI7CitEMDlEO0QwOUQ7MTEwRiAxMTc0IDExQkM7RDA5RDsxMTBGIDExNzQgMTFCQzsKK0QwOUU7RDA5RTsxMTBGIDExNzQgMTFCRDtEMDlFOzExMEYgMTE3NCAxMUJEOworRDA5RjtEMDlGOzExMEYgMTE3NCAxMUJFO0QwOUY7MTEwRiAxMTc0IDExQkU7CitEMEEwO0QwQTA7MTEwRiAxMTc0IDExQkY7RDBBMDsxMTBGIDExNzQgMTFCRjsKK0QwQTE7RDBBMTsxMTBGIDExNzQgMTFDMDtEMEExOzExMEYgMTE3NCAxMUMwOworRDBBMjtEMEEyOzExMEYgMTE3NCAxMUMxO0QwQTI7MTEwRiAxMTc0IDExQzE7CitEMEEzO0QwQTM7MTEwRiAxMTc0IDExQzI7RDBBMzsxMTBGIDExNzQgMTFDMjsKK0QwQTQ7RDBBNDsxMTBGIDExNzU7RDBBNDsxMTBGIDExNzU7CitEMEE1O0QwQTU7MTEwRiAxMTc1IDExQTg7RDBBNTsxMTBGIDExNzUgMTFBODsKK0QwQTY7RDBBNjsxMTBGIDExNzUgMTFBOTtEMEE2OzExMEYgMTE3NSAxMUE5OworRDBBNztEMEE3OzExMEYgMTE3NSAxMUFBO0QwQTc7MTEwRiAxMTc1IDExQUE7CitEMEE4O0QwQTg7MTEwRiAxMTc1IDExQUI7RDBBODsxMTBGIDExNzUgMTFBQjsKK0QwQTk7RDBBOTsxMTBGIDExNzUgMTFBQztEMEE5OzExMEYgMTE3NSAxMUFDOworRDBBQTtEMEFBOzExMEYgMTE3NSAxMUFEO0QwQUE7MTEwRiAxMTc1IDExQUQ7CitEMEFCO0QwQUI7MTEwRiAxMTc1IDExQUU7RDBBQjsxMTBGIDExNzUgMTFBRTsKK0QwQUM7RDBBQzsxMTBGIDExNzUgMTFBRjtEMEFDOzExMEYgMTE3NSAxMUFGOworRDBBRDtEMEFEOzExMEYgMTE3NSAxMUIwO0QwQUQ7MTEwRiAxMTc1IDExQjA7CitEMEFFO0QwQUU7MTEwRiAxMTc1IDExQjE7RDBBRTsxMTBGIDExNzUgMTFCMTsKK0QwQUY7RDBBRjsxMTBGIDExNzUgMTFCMjtEMEFGOzExMEYgMTE3NSAxMUIyOworRDBCMDtEMEIwOzExMEYgMTE3NSAxMUIzO0QwQjA7MTEwRiAxMTc1IDExQjM7CitEMEIxO0QwQjE7MTEwRiAxMTc1IDExQjQ7RDBCMTsxMTBGIDExNzUgMTFCNDsKK0QwQjI7RDBCMjsxMTBGIDExNzUgMTFCNTtEMEIyOzExMEYgMTE3NSAxMUI1OworRDBCMztEMEIzOzExMEYgMTE3NSAxMUI2O0QwQjM7MTEwRiAxMTc1IDExQjY7CitEMEI0O0QwQjQ7MTEwRiAxMTc1IDExQjc7RDBCNDsxMTBGIDExNzUgMTFCNzsKK0QwQjU7RDBCNTsxMTBGIDExNzUgMTFCODtEMEI1OzExMEYgMTE3NSAxMUI4OworRDBCNjtEMEI2OzExMEYgMTE3NSAxMUI5O0QwQjY7MTEwRiAxMTc1IDExQjk7CitEMEI3O0QwQjc7MTEwRiAxMTc1IDExQkE7RDBCNzsxMTBGIDExNzUgMTFCQTsKK0QwQjg7RDBCODsxMTBGIDExNzUgMTFCQjtEMEI4OzExMEYgMTE3NSAxMUJCOworRDBCOTtEMEI5OzExMEYgMTE3NSAxMUJDO0QwQjk7MTEwRiAxMTc1IDExQkM7CitEMEJBO0QwQkE7MTEwRiAxMTc1IDExQkQ7RDBCQTsxMTBGIDExNzUgMTFCRDsKK0QwQkI7RDBCQjsxMTBGIDExNzUgMTFCRTtEMEJCOzExMEYgMTE3NSAxMUJFOworRDBCQztEMEJDOzExMEYgMTE3NSAxMUJGO0QwQkM7MTEwRiAxMTc1IDExQkY7CitEMEJEO0QwQkQ7MTEwRiAxMTc1IDExQzA7RDBCRDsxMTBGIDExNzUgMTFDMDsKK0QwQkU7RDBCRTsxMTBGIDExNzUgMTFDMTtEMEJFOzExMEYgMTE3NSAxMUMxOworRDBCRjtEMEJGOzExMEYgMTE3NSAxMUMyO0QwQkY7MTEwRiAxMTc1IDExQzI7CitEMEMwO0QwQzA7MTExMCAxMTYxO0QwQzA7MTExMCAxMTYxOworRDBDMTtEMEMxOzExMTAgMTE2MSAxMUE4O0QwQzE7MTExMCAxMTYxIDExQTg7CitEMEMyO0QwQzI7MTExMCAxMTYxIDExQTk7RDBDMjsxMTEwIDExNjEgMTFBOTsKK0QwQzM7RDBDMzsxMTEwIDExNjEgMTFBQTtEMEMzOzExMTAgMTE2MSAxMUFBOworRDBDNDtEMEM0OzExMTAgMTE2MSAxMUFCO0QwQzQ7MTExMCAxMTYxIDExQUI7CitEMEM1O0QwQzU7MTExMCAxMTYxIDExQUM7RDBDNTsxMTEwIDExNjEgMTFBQzsKK0QwQzY7RDBDNjsxMTEwIDExNjEgMTFBRDtEMEM2OzExMTAgMTE2MSAxMUFEOworRDBDNztEMEM3OzExMTAgMTE2MSAxMUFFO0QwQzc7MTExMCAxMTYxIDExQUU7CitEMEM4O0QwQzg7MTExMCAxMTYxIDExQUY7RDBDODsxMTEwIDExNjEgMTFBRjsKK0QwQzk7RDBDOTsxMTEwIDExNjEgMTFCMDtEMEM5OzExMTAgMTE2MSAxMUIwOworRDBDQTtEMENBOzExMTAgMTE2MSAxMUIxO0QwQ0E7MTExMCAxMTYxIDExQjE7CitEMENCO0QwQ0I7MTExMCAxMTYxIDExQjI7RDBDQjsxMTEwIDExNjEgMTFCMjsKK0QwQ0M7RDBDQzsxMTEwIDExNjEgMTFCMztEMENDOzExMTAgMTE2MSAxMUIzOworRDBDRDtEMENEOzExMTAgMTE2MSAxMUI0O0QwQ0Q7MTExMCAxMTYxIDExQjQ7CitEMENFO0QwQ0U7MTExMCAxMTYxIDExQjU7RDBDRTsxMTEwIDExNjEgMTFCNTsKK0QwQ0Y7RDBDRjsxMTEwIDExNjEgMTFCNjtEMENGOzExMTAgMTE2MSAxMUI2OworRDBEMDtEMEQwOzExMTAgMTE2MSAxMUI3O0QwRDA7MTExMCAxMTYxIDExQjc7CitEMEQxO0QwRDE7MTExMCAxMTYxIDExQjg7RDBEMTsxMTEwIDExNjEgMTFCODsKK0QwRDI7RDBEMjsxMTEwIDExNjEgMTFCOTtEMEQyOzExMTAgMTE2MSAxMUI5OworRDBEMztEMEQzOzExMTAgMTE2MSAxMUJBO0QwRDM7MTExMCAxMTYxIDExQkE7CitEMEQ0O0QwRDQ7MTExMCAxMTYxIDExQkI7RDBENDsxMTEwIDExNjEgMTFCQjsKK0QwRDU7RDBENTsxMTEwIDExNjEgMTFCQztEMEQ1OzExMTAgMTE2MSAxMUJDOworRDBENjtEMEQ2OzExMTAgMTE2MSAxMUJEO0QwRDY7MTExMCAxMTYxIDExQkQ7CitEMEQ3O0QwRDc7MTExMCAxMTYxIDExQkU7RDBENzsxMTEwIDExNjEgMTFCRTsKK0QwRDg7RDBEODsxMTEwIDExNjEgMTFCRjtEMEQ4OzExMTAgMTE2MSAxMUJGOworRDBEOTtEMEQ5OzExMTAgMTE2MSAxMUMwO0QwRDk7MTExMCAxMTYxIDExQzA7CitEMERBO0QwREE7MTExMCAxMTYxIDExQzE7RDBEQTsxMTEwIDExNjEgMTFDMTsKK0QwREI7RDBEQjsxMTEwIDExNjEgMTFDMjtEMERCOzExMTAgMTE2MSAxMUMyOworRDBEQztEMERDOzExMTAgMTE2MjtEMERDOzExMTAgMTE2MjsKK0QwREQ7RDBERDsxMTEwIDExNjIgMTFBODtEMEREOzExMTAgMTE2MiAxMUE4OworRDBERTtEMERFOzExMTAgMTE2MiAxMUE5O0QwREU7MTExMCAxMTYyIDExQTk7CitEMERGO0QwREY7MTExMCAxMTYyIDExQUE7RDBERjsxMTEwIDExNjIgMTFBQTsKK0QwRTA7RDBFMDsxMTEwIDExNjIgMTFBQjtEMEUwOzExMTAgMTE2MiAxMUFCOworRDBFMTtEMEUxOzExMTAgMTE2MiAxMUFDO0QwRTE7MTExMCAxMTYyIDExQUM7CitEMEUyO0QwRTI7MTExMCAxMTYyIDExQUQ7RDBFMjsxMTEwIDExNjIgMTFBRDsKK0QwRTM7RDBFMzsxMTEwIDExNjIgMTFBRTtEMEUzOzExMTAgMTE2MiAxMUFFOworRDBFNDtEMEU0OzExMTAgMTE2MiAxMUFGO0QwRTQ7MTExMCAxMTYyIDExQUY7CitEMEU1O0QwRTU7MTExMCAxMTYyIDExQjA7RDBFNTsxMTEwIDExNjIgMTFCMDsKK0QwRTY7RDBFNjsxMTEwIDExNjIgMTFCMTtEMEU2OzExMTAgMTE2MiAxMUIxOworRDBFNztEMEU3OzExMTAgMTE2MiAxMUIyO0QwRTc7MTExMCAxMTYyIDExQjI7CitEMEU4O0QwRTg7MTExMCAxMTYyIDExQjM7RDBFODsxMTEwIDExNjIgMTFCMzsKK0QwRTk7RDBFOTsxMTEwIDExNjIgMTFCNDtEMEU5OzExMTAgMTE2MiAxMUI0OworRDBFQTtEMEVBOzExMTAgMTE2MiAxMUI1O0QwRUE7MTExMCAxMTYyIDExQjU7CitEMEVCO0QwRUI7MTExMCAxMTYyIDExQjY7RDBFQjsxMTEwIDExNjIgMTFCNjsKK0QwRUM7RDBFQzsxMTEwIDExNjIgMTFCNztEMEVDOzExMTAgMTE2MiAxMUI3OworRDBFRDtEMEVEOzExMTAgMTE2MiAxMUI4O0QwRUQ7MTExMCAxMTYyIDExQjg7CitEMEVFO0QwRUU7MTExMCAxMTYyIDExQjk7RDBFRTsxMTEwIDExNjIgMTFCOTsKK0QwRUY7RDBFRjsxMTEwIDExNjIgMTFCQTtEMEVGOzExMTAgMTE2MiAxMUJBOworRDBGMDtEMEYwOzExMTAgMTE2MiAxMUJCO0QwRjA7MTExMCAxMTYyIDExQkI7CitEMEYxO0QwRjE7MTExMCAxMTYyIDExQkM7RDBGMTsxMTEwIDExNjIgMTFCQzsKK0QwRjI7RDBGMjsxMTEwIDExNjIgMTFCRDtEMEYyOzExMTAgMTE2MiAxMUJEOworRDBGMztEMEYzOzExMTAgMTE2MiAxMUJFO0QwRjM7MTExMCAxMTYyIDExQkU7CitEMEY0O0QwRjQ7MTExMCAxMTYyIDExQkY7RDBGNDsxMTEwIDExNjIgMTFCRjsKK0QwRjU7RDBGNTsxMTEwIDExNjIgMTFDMDtEMEY1OzExMTAgMTE2MiAxMUMwOworRDBGNjtEMEY2OzExMTAgMTE2MiAxMUMxO0QwRjY7MTExMCAxMTYyIDExQzE7CitEMEY3O0QwRjc7MTExMCAxMTYyIDExQzI7RDBGNzsxMTEwIDExNjIgMTFDMjsKK0QwRjg7RDBGODsxMTEwIDExNjM7RDBGODsxMTEwIDExNjM7CitEMEY5O0QwRjk7MTExMCAxMTYzIDExQTg7RDBGOTsxMTEwIDExNjMgMTFBODsKK0QwRkE7RDBGQTsxMTEwIDExNjMgMTFBOTtEMEZBOzExMTAgMTE2MyAxMUE5OworRDBGQjtEMEZCOzExMTAgMTE2MyAxMUFBO0QwRkI7MTExMCAxMTYzIDExQUE7CitEMEZDO0QwRkM7MTExMCAxMTYzIDExQUI7RDBGQzsxMTEwIDExNjMgMTFBQjsKK0QwRkQ7RDBGRDsxMTEwIDExNjMgMTFBQztEMEZEOzExMTAgMTE2MyAxMUFDOworRDBGRTtEMEZFOzExMTAgMTE2MyAxMUFEO0QwRkU7MTExMCAxMTYzIDExQUQ7CitEMEZGO0QwRkY7MTExMCAxMTYzIDExQUU7RDBGRjsxMTEwIDExNjMgMTFBRTsKK0QxMDA7RDEwMDsxMTEwIDExNjMgMTFBRjtEMTAwOzExMTAgMTE2MyAxMUFGOworRDEwMTtEMTAxOzExMTAgMTE2MyAxMUIwO0QxMDE7MTExMCAxMTYzIDExQjA7CitEMTAyO0QxMDI7MTExMCAxMTYzIDExQjE7RDEwMjsxMTEwIDExNjMgMTFCMTsKK0QxMDM7RDEwMzsxMTEwIDExNjMgMTFCMjtEMTAzOzExMTAgMTE2MyAxMUIyOworRDEwNDtEMTA0OzExMTAgMTE2MyAxMUIzO0QxMDQ7MTExMCAxMTYzIDExQjM7CitEMTA1O0QxMDU7MTExMCAxMTYzIDExQjQ7RDEwNTsxMTEwIDExNjMgMTFCNDsKK0QxMDY7RDEwNjsxMTEwIDExNjMgMTFCNTtEMTA2OzExMTAgMTE2MyAxMUI1OworRDEwNztEMTA3OzExMTAgMTE2MyAxMUI2O0QxMDc7MTExMCAxMTYzIDExQjY7CitEMTA4O0QxMDg7MTExMCAxMTYzIDExQjc7RDEwODsxMTEwIDExNjMgMTFCNzsKK0QxMDk7RDEwOTsxMTEwIDExNjMgMTFCODtEMTA5OzExMTAgMTE2MyAxMUI4OworRDEwQTtEMTBBOzExMTAgMTE2MyAxMUI5O0QxMEE7MTExMCAxMTYzIDExQjk7CitEMTBCO0QxMEI7MTExMCAxMTYzIDExQkE7RDEwQjsxMTEwIDExNjMgMTFCQTsKK0QxMEM7RDEwQzsxMTEwIDExNjMgMTFCQjtEMTBDOzExMTAgMTE2MyAxMUJCOworRDEwRDtEMTBEOzExMTAgMTE2MyAxMUJDO0QxMEQ7MTExMCAxMTYzIDExQkM7CitEMTBFO0QxMEU7MTExMCAxMTYzIDExQkQ7RDEwRTsxMTEwIDExNjMgMTFCRDsKK0QxMEY7RDEwRjsxMTEwIDExNjMgMTFCRTtEMTBGOzExMTAgMTE2MyAxMUJFOworRDExMDtEMTEwOzExMTAgMTE2MyAxMUJGO0QxMTA7MTExMCAxMTYzIDExQkY7CitEMTExO0QxMTE7MTExMCAxMTYzIDExQzA7RDExMTsxMTEwIDExNjMgMTFDMDsKK0QxMTI7RDExMjsxMTEwIDExNjMgMTFDMTtEMTEyOzExMTAgMTE2MyAxMUMxOworRDExMztEMTEzOzExMTAgMTE2MyAxMUMyO0QxMTM7MTExMCAxMTYzIDExQzI7CitEMTE0O0QxMTQ7MTExMCAxMTY0O0QxMTQ7MTExMCAxMTY0OworRDExNTtEMTE1OzExMTAgMTE2NCAxMUE4O0QxMTU7MTExMCAxMTY0IDExQTg7CitEMTE2O0QxMTY7MTExMCAxMTY0IDExQTk7RDExNjsxMTEwIDExNjQgMTFBOTsKK0QxMTc7RDExNzsxMTEwIDExNjQgMTFBQTtEMTE3OzExMTAgMTE2NCAxMUFBOworRDExODtEMTE4OzExMTAgMTE2NCAxMUFCO0QxMTg7MTExMCAxMTY0IDExQUI7CitEMTE5O0QxMTk7MTExMCAxMTY0IDExQUM7RDExOTsxMTEwIDExNjQgMTFBQzsKK0QxMUE7RDExQTsxMTEwIDExNjQgMTFBRDtEMTFBOzExMTAgMTE2NCAxMUFEOworRDExQjtEMTFCOzExMTAgMTE2NCAxMUFFO0QxMUI7MTExMCAxMTY0IDExQUU7CitEMTFDO0QxMUM7MTExMCAxMTY0IDExQUY7RDExQzsxMTEwIDExNjQgMTFBRjsKK0QxMUQ7RDExRDsxMTEwIDExNjQgMTFCMDtEMTFEOzExMTAgMTE2NCAxMUIwOworRDExRTtEMTFFOzExMTAgMTE2NCAxMUIxO0QxMUU7MTExMCAxMTY0IDExQjE7CitEMTFGO0QxMUY7MTExMCAxMTY0IDExQjI7RDExRjsxMTEwIDExNjQgMTFCMjsKK0QxMjA7RDEyMDsxMTEwIDExNjQgMTFCMztEMTIwOzExMTAgMTE2NCAxMUIzOworRDEyMTtEMTIxOzExMTAgMTE2NCAxMUI0O0QxMjE7MTExMCAxMTY0IDExQjQ7CitEMTIyO0QxMjI7MTExMCAxMTY0IDExQjU7RDEyMjsxMTEwIDExNjQgMTFCNTsKK0QxMjM7RDEyMzsxMTEwIDExNjQgMTFCNjtEMTIzOzExMTAgMTE2NCAxMUI2OworRDEyNDtEMTI0OzExMTAgMTE2NCAxMUI3O0QxMjQ7MTExMCAxMTY0IDExQjc7CitEMTI1O0QxMjU7MTExMCAxMTY0IDExQjg7RDEyNTsxMTEwIDExNjQgMTFCODsKK0QxMjY7RDEyNjsxMTEwIDExNjQgMTFCOTtEMTI2OzExMTAgMTE2NCAxMUI5OworRDEyNztEMTI3OzExMTAgMTE2NCAxMUJBO0QxMjc7MTExMCAxMTY0IDExQkE7CitEMTI4O0QxMjg7MTExMCAxMTY0IDExQkI7RDEyODsxMTEwIDExNjQgMTFCQjsKK0QxMjk7RDEyOTsxMTEwIDExNjQgMTFCQztEMTI5OzExMTAgMTE2NCAxMUJDOworRDEyQTtEMTJBOzExMTAgMTE2NCAxMUJEO0QxMkE7MTExMCAxMTY0IDExQkQ7CitEMTJCO0QxMkI7MTExMCAxMTY0IDExQkU7RDEyQjsxMTEwIDExNjQgMTFCRTsKK0QxMkM7RDEyQzsxMTEwIDExNjQgMTFCRjtEMTJDOzExMTAgMTE2NCAxMUJGOworRDEyRDtEMTJEOzExMTAgMTE2NCAxMUMwO0QxMkQ7MTExMCAxMTY0IDExQzA7CitEMTJFO0QxMkU7MTExMCAxMTY0IDExQzE7RDEyRTsxMTEwIDExNjQgMTFDMTsKK0QxMkY7RDEyRjsxMTEwIDExNjQgMTFDMjtEMTJGOzExMTAgMTE2NCAxMUMyOworRDEzMDtEMTMwOzExMTAgMTE2NTtEMTMwOzExMTAgMTE2NTsKK0QxMzE7RDEzMTsxMTEwIDExNjUgMTFBODtEMTMxOzExMTAgMTE2NSAxMUE4OworRDEzMjtEMTMyOzExMTAgMTE2NSAxMUE5O0QxMzI7MTExMCAxMTY1IDExQTk7CitEMTMzO0QxMzM7MTExMCAxMTY1IDExQUE7RDEzMzsxMTEwIDExNjUgMTFBQTsKK0QxMzQ7RDEzNDsxMTEwIDExNjUgMTFBQjtEMTM0OzExMTAgMTE2NSAxMUFCOworRDEzNTtEMTM1OzExMTAgMTE2NSAxMUFDO0QxMzU7MTExMCAxMTY1IDExQUM7CitEMTM2O0QxMzY7MTExMCAxMTY1IDExQUQ7RDEzNjsxMTEwIDExNjUgMTFBRDsKK0QxMzc7RDEzNzsxMTEwIDExNjUgMTFBRTtEMTM3OzExMTAgMTE2NSAxMUFFOworRDEzODtEMTM4OzExMTAgMTE2NSAxMUFGO0QxMzg7MTExMCAxMTY1IDExQUY7CitEMTM5O0QxMzk7MTExMCAxMTY1IDExQjA7RDEzOTsxMTEwIDExNjUgMTFCMDsKK0QxM0E7RDEzQTsxMTEwIDExNjUgMTFCMTtEMTNBOzExMTAgMTE2NSAxMUIxOworRDEzQjtEMTNCOzExMTAgMTE2NSAxMUIyO0QxM0I7MTExMCAxMTY1IDExQjI7CitEMTNDO0QxM0M7MTExMCAxMTY1IDExQjM7RDEzQzsxMTEwIDExNjUgMTFCMzsKK0QxM0Q7RDEzRDsxMTEwIDExNjUgMTFCNDtEMTNEOzExMTAgMTE2NSAxMUI0OworRDEzRTtEMTNFOzExMTAgMTE2NSAxMUI1O0QxM0U7MTExMCAxMTY1IDExQjU7CitEMTNGO0QxM0Y7MTExMCAxMTY1IDExQjY7RDEzRjsxMTEwIDExNjUgMTFCNjsKK0QxNDA7RDE0MDsxMTEwIDExNjUgMTFCNztEMTQwOzExMTAgMTE2NSAxMUI3OworRDE0MTtEMTQxOzExMTAgMTE2NSAxMUI4O0QxNDE7MTExMCAxMTY1IDExQjg7CitEMTQyO0QxNDI7MTExMCAxMTY1IDExQjk7RDE0MjsxMTEwIDExNjUgMTFCOTsKK0QxNDM7RDE0MzsxMTEwIDExNjUgMTFCQTtEMTQzOzExMTAgMTE2NSAxMUJBOworRDE0NDtEMTQ0OzExMTAgMTE2NSAxMUJCO0QxNDQ7MTExMCAxMTY1IDExQkI7CitEMTQ1O0QxNDU7MTExMCAxMTY1IDExQkM7RDE0NTsxMTEwIDExNjUgMTFCQzsKK0QxNDY7RDE0NjsxMTEwIDExNjUgMTFCRDtEMTQ2OzExMTAgMTE2NSAxMUJEOworRDE0NztEMTQ3OzExMTAgMTE2NSAxMUJFO0QxNDc7MTExMCAxMTY1IDExQkU7CitEMTQ4O0QxNDg7MTExMCAxMTY1IDExQkY7RDE0ODsxMTEwIDExNjUgMTFCRjsKK0QxNDk7RDE0OTsxMTEwIDExNjUgMTFDMDtEMTQ5OzExMTAgMTE2NSAxMUMwOworRDE0QTtEMTRBOzExMTAgMTE2NSAxMUMxO0QxNEE7MTExMCAxMTY1IDExQzE7CitEMTRCO0QxNEI7MTExMCAxMTY1IDExQzI7RDE0QjsxMTEwIDExNjUgMTFDMjsKK0QxNEM7RDE0QzsxMTEwIDExNjY7RDE0QzsxMTEwIDExNjY7CitEMTREO0QxNEQ7MTExMCAxMTY2IDExQTg7RDE0RDsxMTEwIDExNjYgMTFBODsKK0QxNEU7RDE0RTsxMTEwIDExNjYgMTFBOTtEMTRFOzExMTAgMTE2NiAxMUE5OworRDE0RjtEMTRGOzExMTAgMTE2NiAxMUFBO0QxNEY7MTExMCAxMTY2IDExQUE7CitEMTUwO0QxNTA7MTExMCAxMTY2IDExQUI7RDE1MDsxMTEwIDExNjYgMTFBQjsKK0QxNTE7RDE1MTsxMTEwIDExNjYgMTFBQztEMTUxOzExMTAgMTE2NiAxMUFDOworRDE1MjtEMTUyOzExMTAgMTE2NiAxMUFEO0QxNTI7MTExMCAxMTY2IDExQUQ7CitEMTUzO0QxNTM7MTExMCAxMTY2IDExQUU7RDE1MzsxMTEwIDExNjYgMTFBRTsKK0QxNTQ7RDE1NDsxMTEwIDExNjYgMTFBRjtEMTU0OzExMTAgMTE2NiAxMUFGOworRDE1NTtEMTU1OzExMTAgMTE2NiAxMUIwO0QxNTU7MTExMCAxMTY2IDExQjA7CitEMTU2O0QxNTY7MTExMCAxMTY2IDExQjE7RDE1NjsxMTEwIDExNjYgMTFCMTsKK0QxNTc7RDE1NzsxMTEwIDExNjYgMTFCMjtEMTU3OzExMTAgMTE2NiAxMUIyOworRDE1ODtEMTU4OzExMTAgMTE2NiAxMUIzO0QxNTg7MTExMCAxMTY2IDExQjM7CitEMTU5O0QxNTk7MTExMCAxMTY2IDExQjQ7RDE1OTsxMTEwIDExNjYgMTFCNDsKK0QxNUE7RDE1QTsxMTEwIDExNjYgMTFCNTtEMTVBOzExMTAgMTE2NiAxMUI1OworRDE1QjtEMTVCOzExMTAgMTE2NiAxMUI2O0QxNUI7MTExMCAxMTY2IDExQjY7CitEMTVDO0QxNUM7MTExMCAxMTY2IDExQjc7RDE1QzsxMTEwIDExNjYgMTFCNzsKK0QxNUQ7RDE1RDsxMTEwIDExNjYgMTFCODtEMTVEOzExMTAgMTE2NiAxMUI4OworRDE1RTtEMTVFOzExMTAgMTE2NiAxMUI5O0QxNUU7MTExMCAxMTY2IDExQjk7CitEMTVGO0QxNUY7MTExMCAxMTY2IDExQkE7RDE1RjsxMTEwIDExNjYgMTFCQTsKK0QxNjA7RDE2MDsxMTEwIDExNjYgMTFCQjtEMTYwOzExMTAgMTE2NiAxMUJCOworRDE2MTtEMTYxOzExMTAgMTE2NiAxMUJDO0QxNjE7MTExMCAxMTY2IDExQkM7CitEMTYyO0QxNjI7MTExMCAxMTY2IDExQkQ7RDE2MjsxMTEwIDExNjYgMTFCRDsKK0QxNjM7RDE2MzsxMTEwIDExNjYgMTFCRTtEMTYzOzExMTAgMTE2NiAxMUJFOworRDE2NDtEMTY0OzExMTAgMTE2NiAxMUJGO0QxNjQ7MTExMCAxMTY2IDExQkY7CitEMTY1O0QxNjU7MTExMCAxMTY2IDExQzA7RDE2NTsxMTEwIDExNjYgMTFDMDsKK0QxNjY7RDE2NjsxMTEwIDExNjYgMTFDMTtEMTY2OzExMTAgMTE2NiAxMUMxOworRDE2NztEMTY3OzExMTAgMTE2NiAxMUMyO0QxNjc7MTExMCAxMTY2IDExQzI7CitEMTY4O0QxNjg7MTExMCAxMTY3O0QxNjg7MTExMCAxMTY3OworRDE2OTtEMTY5OzExMTAgMTE2NyAxMUE4O0QxNjk7MTExMCAxMTY3IDExQTg7CitEMTZBO0QxNkE7MTExMCAxMTY3IDExQTk7RDE2QTsxMTEwIDExNjcgMTFBOTsKK0QxNkI7RDE2QjsxMTEwIDExNjcgMTFBQTtEMTZCOzExMTAgMTE2NyAxMUFBOworRDE2QztEMTZDOzExMTAgMTE2NyAxMUFCO0QxNkM7MTExMCAxMTY3IDExQUI7CitEMTZEO0QxNkQ7MTExMCAxMTY3IDExQUM7RDE2RDsxMTEwIDExNjcgMTFBQzsKK0QxNkU7RDE2RTsxMTEwIDExNjcgMTFBRDtEMTZFOzExMTAgMTE2NyAxMUFEOworRDE2RjtEMTZGOzExMTAgMTE2NyAxMUFFO0QxNkY7MTExMCAxMTY3IDExQUU7CitEMTcwO0QxNzA7MTExMCAxMTY3IDExQUY7RDE3MDsxMTEwIDExNjcgMTFBRjsKK0QxNzE7RDE3MTsxMTEwIDExNjcgMTFCMDtEMTcxOzExMTAgMTE2NyAxMUIwOworRDE3MjtEMTcyOzExMTAgMTE2NyAxMUIxO0QxNzI7MTExMCAxMTY3IDExQjE7CitEMTczO0QxNzM7MTExMCAxMTY3IDExQjI7RDE3MzsxMTEwIDExNjcgMTFCMjsKK0QxNzQ7RDE3NDsxMTEwIDExNjcgMTFCMztEMTc0OzExMTAgMTE2NyAxMUIzOworRDE3NTtEMTc1OzExMTAgMTE2NyAxMUI0O0QxNzU7MTExMCAxMTY3IDExQjQ7CitEMTc2O0QxNzY7MTExMCAxMTY3IDExQjU7RDE3NjsxMTEwIDExNjcgMTFCNTsKK0QxNzc7RDE3NzsxMTEwIDExNjcgMTFCNjtEMTc3OzExMTAgMTE2NyAxMUI2OworRDE3ODtEMTc4OzExMTAgMTE2NyAxMUI3O0QxNzg7MTExMCAxMTY3IDExQjc7CitEMTc5O0QxNzk7MTExMCAxMTY3IDExQjg7RDE3OTsxMTEwIDExNjcgMTFCODsKK0QxN0E7RDE3QTsxMTEwIDExNjcgMTFCOTtEMTdBOzExMTAgMTE2NyAxMUI5OworRDE3QjtEMTdCOzExMTAgMTE2NyAxMUJBO0QxN0I7MTExMCAxMTY3IDExQkE7CitEMTdDO0QxN0M7MTExMCAxMTY3IDExQkI7RDE3QzsxMTEwIDExNjcgMTFCQjsKK0QxN0Q7RDE3RDsxMTEwIDExNjcgMTFCQztEMTdEOzExMTAgMTE2NyAxMUJDOworRDE3RTtEMTdFOzExMTAgMTE2NyAxMUJEO0QxN0U7MTExMCAxMTY3IDExQkQ7CitEMTdGO0QxN0Y7MTExMCAxMTY3IDExQkU7RDE3RjsxMTEwIDExNjcgMTFCRTsKK0QxODA7RDE4MDsxMTEwIDExNjcgMTFCRjtEMTgwOzExMTAgMTE2NyAxMUJGOworRDE4MTtEMTgxOzExMTAgMTE2NyAxMUMwO0QxODE7MTExMCAxMTY3IDExQzA7CitEMTgyO0QxODI7MTExMCAxMTY3IDExQzE7RDE4MjsxMTEwIDExNjcgMTFDMTsKK0QxODM7RDE4MzsxMTEwIDExNjcgMTFDMjtEMTgzOzExMTAgMTE2NyAxMUMyOworRDE4NDtEMTg0OzExMTAgMTE2ODtEMTg0OzExMTAgMTE2ODsKK0QxODU7RDE4NTsxMTEwIDExNjggMTFBODtEMTg1OzExMTAgMTE2OCAxMUE4OworRDE4NjtEMTg2OzExMTAgMTE2OCAxMUE5O0QxODY7MTExMCAxMTY4IDExQTk7CitEMTg3O0QxODc7MTExMCAxMTY4IDExQUE7RDE4NzsxMTEwIDExNjggMTFBQTsKK0QxODg7RDE4ODsxMTEwIDExNjggMTFBQjtEMTg4OzExMTAgMTE2OCAxMUFCOworRDE4OTtEMTg5OzExMTAgMTE2OCAxMUFDO0QxODk7MTExMCAxMTY4IDExQUM7CitEMThBO0QxOEE7MTExMCAxMTY4IDExQUQ7RDE4QTsxMTEwIDExNjggMTFBRDsKK0QxOEI7RDE4QjsxMTEwIDExNjggMTFBRTtEMThCOzExMTAgMTE2OCAxMUFFOworRDE4QztEMThDOzExMTAgMTE2OCAxMUFGO0QxOEM7MTExMCAxMTY4IDExQUY7CitEMThEO0QxOEQ7MTExMCAxMTY4IDExQjA7RDE4RDsxMTEwIDExNjggMTFCMDsKK0QxOEU7RDE4RTsxMTEwIDExNjggMTFCMTtEMThFOzExMTAgMTE2OCAxMUIxOworRDE4RjtEMThGOzExMTAgMTE2OCAxMUIyO0QxOEY7MTExMCAxMTY4IDExQjI7CitEMTkwO0QxOTA7MTExMCAxMTY4IDExQjM7RDE5MDsxMTEwIDExNjggMTFCMzsKK0QxOTE7RDE5MTsxMTEwIDExNjggMTFCNDtEMTkxOzExMTAgMTE2OCAxMUI0OworRDE5MjtEMTkyOzExMTAgMTE2OCAxMUI1O0QxOTI7MTExMCAxMTY4IDExQjU7CitEMTkzO0QxOTM7MTExMCAxMTY4IDExQjY7RDE5MzsxMTEwIDExNjggMTFCNjsKK0QxOTQ7RDE5NDsxMTEwIDExNjggMTFCNztEMTk0OzExMTAgMTE2OCAxMUI3OworRDE5NTtEMTk1OzExMTAgMTE2OCAxMUI4O0QxOTU7MTExMCAxMTY4IDExQjg7CitEMTk2O0QxOTY7MTExMCAxMTY4IDExQjk7RDE5NjsxMTEwIDExNjggMTFCOTsKK0QxOTc7RDE5NzsxMTEwIDExNjggMTFCQTtEMTk3OzExMTAgMTE2OCAxMUJBOworRDE5ODtEMTk4OzExMTAgMTE2OCAxMUJCO0QxOTg7MTExMCAxMTY4IDExQkI7CitEMTk5O0QxOTk7MTExMCAxMTY4IDExQkM7RDE5OTsxMTEwIDExNjggMTFCQzsKK0QxOUE7RDE5QTsxMTEwIDExNjggMTFCRDtEMTlBOzExMTAgMTE2OCAxMUJEOworRDE5QjtEMTlCOzExMTAgMTE2OCAxMUJFO0QxOUI7MTExMCAxMTY4IDExQkU7CitEMTlDO0QxOUM7MTExMCAxMTY4IDExQkY7RDE5QzsxMTEwIDExNjggMTFCRjsKK0QxOUQ7RDE5RDsxMTEwIDExNjggMTFDMDtEMTlEOzExMTAgMTE2OCAxMUMwOworRDE5RTtEMTlFOzExMTAgMTE2OCAxMUMxO0QxOUU7MTExMCAxMTY4IDExQzE7CitEMTlGO0QxOUY7MTExMCAxMTY4IDExQzI7RDE5RjsxMTEwIDExNjggMTFDMjsKK0QxQTA7RDFBMDsxMTEwIDExNjk7RDFBMDsxMTEwIDExNjk7CitEMUExO0QxQTE7MTExMCAxMTY5IDExQTg7RDFBMTsxMTEwIDExNjkgMTFBODsKK0QxQTI7RDFBMjsxMTEwIDExNjkgMTFBOTtEMUEyOzExMTAgMTE2OSAxMUE5OworRDFBMztEMUEzOzExMTAgMTE2OSAxMUFBO0QxQTM7MTExMCAxMTY5IDExQUE7CitEMUE0O0QxQTQ7MTExMCAxMTY5IDExQUI7RDFBNDsxMTEwIDExNjkgMTFBQjsKK0QxQTU7RDFBNTsxMTEwIDExNjkgMTFBQztEMUE1OzExMTAgMTE2OSAxMUFDOworRDFBNjtEMUE2OzExMTAgMTE2OSAxMUFEO0QxQTY7MTExMCAxMTY5IDExQUQ7CitEMUE3O0QxQTc7MTExMCAxMTY5IDExQUU7RDFBNzsxMTEwIDExNjkgMTFBRTsKK0QxQTg7RDFBODsxMTEwIDExNjkgMTFBRjtEMUE4OzExMTAgMTE2OSAxMUFGOworRDFBOTtEMUE5OzExMTAgMTE2OSAxMUIwO0QxQTk7MTExMCAxMTY5IDExQjA7CitEMUFBO0QxQUE7MTExMCAxMTY5IDExQjE7RDFBQTsxMTEwIDExNjkgMTFCMTsKK0QxQUI7RDFBQjsxMTEwIDExNjkgMTFCMjtEMUFCOzExMTAgMTE2OSAxMUIyOworRDFBQztEMUFDOzExMTAgMTE2OSAxMUIzO0QxQUM7MTExMCAxMTY5IDExQjM7CitEMUFEO0QxQUQ7MTExMCAxMTY5IDExQjQ7RDFBRDsxMTEwIDExNjkgMTFCNDsKK0QxQUU7RDFBRTsxMTEwIDExNjkgMTFCNTtEMUFFOzExMTAgMTE2OSAxMUI1OworRDFBRjtEMUFGOzExMTAgMTE2OSAxMUI2O0QxQUY7MTExMCAxMTY5IDExQjY7CitEMUIwO0QxQjA7MTExMCAxMTY5IDExQjc7RDFCMDsxMTEwIDExNjkgMTFCNzsKK0QxQjE7RDFCMTsxMTEwIDExNjkgMTFCODtEMUIxOzExMTAgMTE2OSAxMUI4OworRDFCMjtEMUIyOzExMTAgMTE2OSAxMUI5O0QxQjI7MTExMCAxMTY5IDExQjk7CitEMUIzO0QxQjM7MTExMCAxMTY5IDExQkE7RDFCMzsxMTEwIDExNjkgMTFCQTsKK0QxQjQ7RDFCNDsxMTEwIDExNjkgMTFCQjtEMUI0OzExMTAgMTE2OSAxMUJCOworRDFCNTtEMUI1OzExMTAgMTE2OSAxMUJDO0QxQjU7MTExMCAxMTY5IDExQkM7CitEMUI2O0QxQjY7MTExMCAxMTY5IDExQkQ7RDFCNjsxMTEwIDExNjkgMTFCRDsKK0QxQjc7RDFCNzsxMTEwIDExNjkgMTFCRTtEMUI3OzExMTAgMTE2OSAxMUJFOworRDFCODtEMUI4OzExMTAgMTE2OSAxMUJGO0QxQjg7MTExMCAxMTY5IDExQkY7CitEMUI5O0QxQjk7MTExMCAxMTY5IDExQzA7RDFCOTsxMTEwIDExNjkgMTFDMDsKK0QxQkE7RDFCQTsxMTEwIDExNjkgMTFDMTtEMUJBOzExMTAgMTE2OSAxMUMxOworRDFCQjtEMUJCOzExMTAgMTE2OSAxMUMyO0QxQkI7MTExMCAxMTY5IDExQzI7CitEMUJDO0QxQkM7MTExMCAxMTZBO0QxQkM7MTExMCAxMTZBOworRDFCRDtEMUJEOzExMTAgMTE2QSAxMUE4O0QxQkQ7MTExMCAxMTZBIDExQTg7CitEMUJFO0QxQkU7MTExMCAxMTZBIDExQTk7RDFCRTsxMTEwIDExNkEgMTFBOTsKK0QxQkY7RDFCRjsxMTEwIDExNkEgMTFBQTtEMUJGOzExMTAgMTE2QSAxMUFBOworRDFDMDtEMUMwOzExMTAgMTE2QSAxMUFCO0QxQzA7MTExMCAxMTZBIDExQUI7CitEMUMxO0QxQzE7MTExMCAxMTZBIDExQUM7RDFDMTsxMTEwIDExNkEgMTFBQzsKK0QxQzI7RDFDMjsxMTEwIDExNkEgMTFBRDtEMUMyOzExMTAgMTE2QSAxMUFEOworRDFDMztEMUMzOzExMTAgMTE2QSAxMUFFO0QxQzM7MTExMCAxMTZBIDExQUU7CitEMUM0O0QxQzQ7MTExMCAxMTZBIDExQUY7RDFDNDsxMTEwIDExNkEgMTFBRjsKK0QxQzU7RDFDNTsxMTEwIDExNkEgMTFCMDtEMUM1OzExMTAgMTE2QSAxMUIwOworRDFDNjtEMUM2OzExMTAgMTE2QSAxMUIxO0QxQzY7MTExMCAxMTZBIDExQjE7CitEMUM3O0QxQzc7MTExMCAxMTZBIDExQjI7RDFDNzsxMTEwIDExNkEgMTFCMjsKK0QxQzg7RDFDODsxMTEwIDExNkEgMTFCMztEMUM4OzExMTAgMTE2QSAxMUIzOworRDFDOTtEMUM5OzExMTAgMTE2QSAxMUI0O0QxQzk7MTExMCAxMTZBIDExQjQ7CitEMUNBO0QxQ0E7MTExMCAxMTZBIDExQjU7RDFDQTsxMTEwIDExNkEgMTFCNTsKK0QxQ0I7RDFDQjsxMTEwIDExNkEgMTFCNjtEMUNCOzExMTAgMTE2QSAxMUI2OworRDFDQztEMUNDOzExMTAgMTE2QSAxMUI3O0QxQ0M7MTExMCAxMTZBIDExQjc7CitEMUNEO0QxQ0Q7MTExMCAxMTZBIDExQjg7RDFDRDsxMTEwIDExNkEgMTFCODsKK0QxQ0U7RDFDRTsxMTEwIDExNkEgMTFCOTtEMUNFOzExMTAgMTE2QSAxMUI5OworRDFDRjtEMUNGOzExMTAgMTE2QSAxMUJBO0QxQ0Y7MTExMCAxMTZBIDExQkE7CitEMUQwO0QxRDA7MTExMCAxMTZBIDExQkI7RDFEMDsxMTEwIDExNkEgMTFCQjsKK0QxRDE7RDFEMTsxMTEwIDExNkEgMTFCQztEMUQxOzExMTAgMTE2QSAxMUJDOworRDFEMjtEMUQyOzExMTAgMTE2QSAxMUJEO0QxRDI7MTExMCAxMTZBIDExQkQ7CitEMUQzO0QxRDM7MTExMCAxMTZBIDExQkU7RDFEMzsxMTEwIDExNkEgMTFCRTsKK0QxRDQ7RDFENDsxMTEwIDExNkEgMTFCRjtEMUQ0OzExMTAgMTE2QSAxMUJGOworRDFENTtEMUQ1OzExMTAgMTE2QSAxMUMwO0QxRDU7MTExMCAxMTZBIDExQzA7CitEMUQ2O0QxRDY7MTExMCAxMTZBIDExQzE7RDFENjsxMTEwIDExNkEgMTFDMTsKK0QxRDc7RDFENzsxMTEwIDExNkEgMTFDMjtEMUQ3OzExMTAgMTE2QSAxMUMyOworRDFEODtEMUQ4OzExMTAgMTE2QjtEMUQ4OzExMTAgMTE2QjsKK0QxRDk7RDFEOTsxMTEwIDExNkIgMTFBODtEMUQ5OzExMTAgMTE2QiAxMUE4OworRDFEQTtEMURBOzExMTAgMTE2QiAxMUE5O0QxREE7MTExMCAxMTZCIDExQTk7CitEMURCO0QxREI7MTExMCAxMTZCIDExQUE7RDFEQjsxMTEwIDExNkIgMTFBQTsKK0QxREM7RDFEQzsxMTEwIDExNkIgMTFBQjtEMURDOzExMTAgMTE2QiAxMUFCOworRDFERDtEMUREOzExMTAgMTE2QiAxMUFDO0QxREQ7MTExMCAxMTZCIDExQUM7CitEMURFO0QxREU7MTExMCAxMTZCIDExQUQ7RDFERTsxMTEwIDExNkIgMTFBRDsKK0QxREY7RDFERjsxMTEwIDExNkIgMTFBRTtEMURGOzExMTAgMTE2QiAxMUFFOworRDFFMDtEMUUwOzExMTAgMTE2QiAxMUFGO0QxRTA7MTExMCAxMTZCIDExQUY7CitEMUUxO0QxRTE7MTExMCAxMTZCIDExQjA7RDFFMTsxMTEwIDExNkIgMTFCMDsKK0QxRTI7RDFFMjsxMTEwIDExNkIgMTFCMTtEMUUyOzExMTAgMTE2QiAxMUIxOworRDFFMztEMUUzOzExMTAgMTE2QiAxMUIyO0QxRTM7MTExMCAxMTZCIDExQjI7CitEMUU0O0QxRTQ7MTExMCAxMTZCIDExQjM7RDFFNDsxMTEwIDExNkIgMTFCMzsKK0QxRTU7RDFFNTsxMTEwIDExNkIgMTFCNDtEMUU1OzExMTAgMTE2QiAxMUI0OworRDFFNjtEMUU2OzExMTAgMTE2QiAxMUI1O0QxRTY7MTExMCAxMTZCIDExQjU7CitEMUU3O0QxRTc7MTExMCAxMTZCIDExQjY7RDFFNzsxMTEwIDExNkIgMTFCNjsKK0QxRTg7RDFFODsxMTEwIDExNkIgMTFCNztEMUU4OzExMTAgMTE2QiAxMUI3OworRDFFOTtEMUU5OzExMTAgMTE2QiAxMUI4O0QxRTk7MTExMCAxMTZCIDExQjg7CitEMUVBO0QxRUE7MTExMCAxMTZCIDExQjk7RDFFQTsxMTEwIDExNkIgMTFCOTsKK0QxRUI7RDFFQjsxMTEwIDExNkIgMTFCQTtEMUVCOzExMTAgMTE2QiAxMUJBOworRDFFQztEMUVDOzExMTAgMTE2QiAxMUJCO0QxRUM7MTExMCAxMTZCIDExQkI7CitEMUVEO0QxRUQ7MTExMCAxMTZCIDExQkM7RDFFRDsxMTEwIDExNkIgMTFCQzsKK0QxRUU7RDFFRTsxMTEwIDExNkIgMTFCRDtEMUVFOzExMTAgMTE2QiAxMUJEOworRDFFRjtEMUVGOzExMTAgMTE2QiAxMUJFO0QxRUY7MTExMCAxMTZCIDExQkU7CitEMUYwO0QxRjA7MTExMCAxMTZCIDExQkY7RDFGMDsxMTEwIDExNkIgMTFCRjsKK0QxRjE7RDFGMTsxMTEwIDExNkIgMTFDMDtEMUYxOzExMTAgMTE2QiAxMUMwOworRDFGMjtEMUYyOzExMTAgMTE2QiAxMUMxO0QxRjI7MTExMCAxMTZCIDExQzE7CitEMUYzO0QxRjM7MTExMCAxMTZCIDExQzI7RDFGMzsxMTEwIDExNkIgMTFDMjsKK0QxRjQ7RDFGNDsxMTEwIDExNkM7RDFGNDsxMTEwIDExNkM7CitEMUY1O0QxRjU7MTExMCAxMTZDIDExQTg7RDFGNTsxMTEwIDExNkMgMTFBODsKK0QxRjY7RDFGNjsxMTEwIDExNkMgMTFBOTtEMUY2OzExMTAgMTE2QyAxMUE5OworRDFGNztEMUY3OzExMTAgMTE2QyAxMUFBO0QxRjc7MTExMCAxMTZDIDExQUE7CitEMUY4O0QxRjg7MTExMCAxMTZDIDExQUI7RDFGODsxMTEwIDExNkMgMTFBQjsKK0QxRjk7RDFGOTsxMTEwIDExNkMgMTFBQztEMUY5OzExMTAgMTE2QyAxMUFDOworRDFGQTtEMUZBOzExMTAgMTE2QyAxMUFEO0QxRkE7MTExMCAxMTZDIDExQUQ7CitEMUZCO0QxRkI7MTExMCAxMTZDIDExQUU7RDFGQjsxMTEwIDExNkMgMTFBRTsKK0QxRkM7RDFGQzsxMTEwIDExNkMgMTFBRjtEMUZDOzExMTAgMTE2QyAxMUFGOworRDFGRDtEMUZEOzExMTAgMTE2QyAxMUIwO0QxRkQ7MTExMCAxMTZDIDExQjA7CitEMUZFO0QxRkU7MTExMCAxMTZDIDExQjE7RDFGRTsxMTEwIDExNkMgMTFCMTsKK0QxRkY7RDFGRjsxMTEwIDExNkMgMTFCMjtEMUZGOzExMTAgMTE2QyAxMUIyOworRDIwMDtEMjAwOzExMTAgMTE2QyAxMUIzO0QyMDA7MTExMCAxMTZDIDExQjM7CitEMjAxO0QyMDE7MTExMCAxMTZDIDExQjQ7RDIwMTsxMTEwIDExNkMgMTFCNDsKK0QyMDI7RDIwMjsxMTEwIDExNkMgMTFCNTtEMjAyOzExMTAgMTE2QyAxMUI1OworRDIwMztEMjAzOzExMTAgMTE2QyAxMUI2O0QyMDM7MTExMCAxMTZDIDExQjY7CitEMjA0O0QyMDQ7MTExMCAxMTZDIDExQjc7RDIwNDsxMTEwIDExNkMgMTFCNzsKK0QyMDU7RDIwNTsxMTEwIDExNkMgMTFCODtEMjA1OzExMTAgMTE2QyAxMUI4OworRDIwNjtEMjA2OzExMTAgMTE2QyAxMUI5O0QyMDY7MTExMCAxMTZDIDExQjk7CitEMjA3O0QyMDc7MTExMCAxMTZDIDExQkE7RDIwNzsxMTEwIDExNkMgMTFCQTsKK0QyMDg7RDIwODsxMTEwIDExNkMgMTFCQjtEMjA4OzExMTAgMTE2QyAxMUJCOworRDIwOTtEMjA5OzExMTAgMTE2QyAxMUJDO0QyMDk7MTExMCAxMTZDIDExQkM7CitEMjBBO0QyMEE7MTExMCAxMTZDIDExQkQ7RDIwQTsxMTEwIDExNkMgMTFCRDsKK0QyMEI7RDIwQjsxMTEwIDExNkMgMTFCRTtEMjBCOzExMTAgMTE2QyAxMUJFOworRDIwQztEMjBDOzExMTAgMTE2QyAxMUJGO0QyMEM7MTExMCAxMTZDIDExQkY7CitEMjBEO0QyMEQ7MTExMCAxMTZDIDExQzA7RDIwRDsxMTEwIDExNkMgMTFDMDsKK0QyMEU7RDIwRTsxMTEwIDExNkMgMTFDMTtEMjBFOzExMTAgMTE2QyAxMUMxOworRDIwRjtEMjBGOzExMTAgMTE2QyAxMUMyO0QyMEY7MTExMCAxMTZDIDExQzI7CitEMjEwO0QyMTA7MTExMCAxMTZEO0QyMTA7MTExMCAxMTZEOworRDIxMTtEMjExOzExMTAgMTE2RCAxMUE4O0QyMTE7MTExMCAxMTZEIDExQTg7CitEMjEyO0QyMTI7MTExMCAxMTZEIDExQTk7RDIxMjsxMTEwIDExNkQgMTFBOTsKK0QyMTM7RDIxMzsxMTEwIDExNkQgMTFBQTtEMjEzOzExMTAgMTE2RCAxMUFBOworRDIxNDtEMjE0OzExMTAgMTE2RCAxMUFCO0QyMTQ7MTExMCAxMTZEIDExQUI7CitEMjE1O0QyMTU7MTExMCAxMTZEIDExQUM7RDIxNTsxMTEwIDExNkQgMTFBQzsKK0QyMTY7RDIxNjsxMTEwIDExNkQgMTFBRDtEMjE2OzExMTAgMTE2RCAxMUFEOworRDIxNztEMjE3OzExMTAgMTE2RCAxMUFFO0QyMTc7MTExMCAxMTZEIDExQUU7CitEMjE4O0QyMTg7MTExMCAxMTZEIDExQUY7RDIxODsxMTEwIDExNkQgMTFBRjsKK0QyMTk7RDIxOTsxMTEwIDExNkQgMTFCMDtEMjE5OzExMTAgMTE2RCAxMUIwOworRDIxQTtEMjFBOzExMTAgMTE2RCAxMUIxO0QyMUE7MTExMCAxMTZEIDExQjE7CitEMjFCO0QyMUI7MTExMCAxMTZEIDExQjI7RDIxQjsxMTEwIDExNkQgMTFCMjsKK0QyMUM7RDIxQzsxMTEwIDExNkQgMTFCMztEMjFDOzExMTAgMTE2RCAxMUIzOworRDIxRDtEMjFEOzExMTAgMTE2RCAxMUI0O0QyMUQ7MTExMCAxMTZEIDExQjQ7CitEMjFFO0QyMUU7MTExMCAxMTZEIDExQjU7RDIxRTsxMTEwIDExNkQgMTFCNTsKK0QyMUY7RDIxRjsxMTEwIDExNkQgMTFCNjtEMjFGOzExMTAgMTE2RCAxMUI2OworRDIyMDtEMjIwOzExMTAgMTE2RCAxMUI3O0QyMjA7MTExMCAxMTZEIDExQjc7CitEMjIxO0QyMjE7MTExMCAxMTZEIDExQjg7RDIyMTsxMTEwIDExNkQgMTFCODsKK0QyMjI7RDIyMjsxMTEwIDExNkQgMTFCOTtEMjIyOzExMTAgMTE2RCAxMUI5OworRDIyMztEMjIzOzExMTAgMTE2RCAxMUJBO0QyMjM7MTExMCAxMTZEIDExQkE7CitEMjI0O0QyMjQ7MTExMCAxMTZEIDExQkI7RDIyNDsxMTEwIDExNkQgMTFCQjsKK0QyMjU7RDIyNTsxMTEwIDExNkQgMTFCQztEMjI1OzExMTAgMTE2RCAxMUJDOworRDIyNjtEMjI2OzExMTAgMTE2RCAxMUJEO0QyMjY7MTExMCAxMTZEIDExQkQ7CitEMjI3O0QyMjc7MTExMCAxMTZEIDExQkU7RDIyNzsxMTEwIDExNkQgMTFCRTsKK0QyMjg7RDIyODsxMTEwIDExNkQgMTFCRjtEMjI4OzExMTAgMTE2RCAxMUJGOworRDIyOTtEMjI5OzExMTAgMTE2RCAxMUMwO0QyMjk7MTExMCAxMTZEIDExQzA7CitEMjJBO0QyMkE7MTExMCAxMTZEIDExQzE7RDIyQTsxMTEwIDExNkQgMTFDMTsKK0QyMkI7RDIyQjsxMTEwIDExNkQgMTFDMjtEMjJCOzExMTAgMTE2RCAxMUMyOworRDIyQztEMjJDOzExMTAgMTE2RTtEMjJDOzExMTAgMTE2RTsKK0QyMkQ7RDIyRDsxMTEwIDExNkUgMTFBODtEMjJEOzExMTAgMTE2RSAxMUE4OworRDIyRTtEMjJFOzExMTAgMTE2RSAxMUE5O0QyMkU7MTExMCAxMTZFIDExQTk7CitEMjJGO0QyMkY7MTExMCAxMTZFIDExQUE7RDIyRjsxMTEwIDExNkUgMTFBQTsKK0QyMzA7RDIzMDsxMTEwIDExNkUgMTFBQjtEMjMwOzExMTAgMTE2RSAxMUFCOworRDIzMTtEMjMxOzExMTAgMTE2RSAxMUFDO0QyMzE7MTExMCAxMTZFIDExQUM7CitEMjMyO0QyMzI7MTExMCAxMTZFIDExQUQ7RDIzMjsxMTEwIDExNkUgMTFBRDsKK0QyMzM7RDIzMzsxMTEwIDExNkUgMTFBRTtEMjMzOzExMTAgMTE2RSAxMUFFOworRDIzNDtEMjM0OzExMTAgMTE2RSAxMUFGO0QyMzQ7MTExMCAxMTZFIDExQUY7CitEMjM1O0QyMzU7MTExMCAxMTZFIDExQjA7RDIzNTsxMTEwIDExNkUgMTFCMDsKK0QyMzY7RDIzNjsxMTEwIDExNkUgMTFCMTtEMjM2OzExMTAgMTE2RSAxMUIxOworRDIzNztEMjM3OzExMTAgMTE2RSAxMUIyO0QyMzc7MTExMCAxMTZFIDExQjI7CitEMjM4O0QyMzg7MTExMCAxMTZFIDExQjM7RDIzODsxMTEwIDExNkUgMTFCMzsKK0QyMzk7RDIzOTsxMTEwIDExNkUgMTFCNDtEMjM5OzExMTAgMTE2RSAxMUI0OworRDIzQTtEMjNBOzExMTAgMTE2RSAxMUI1O0QyM0E7MTExMCAxMTZFIDExQjU7CitEMjNCO0QyM0I7MTExMCAxMTZFIDExQjY7RDIzQjsxMTEwIDExNkUgMTFCNjsKK0QyM0M7RDIzQzsxMTEwIDExNkUgMTFCNztEMjNDOzExMTAgMTE2RSAxMUI3OworRDIzRDtEMjNEOzExMTAgMTE2RSAxMUI4O0QyM0Q7MTExMCAxMTZFIDExQjg7CitEMjNFO0QyM0U7MTExMCAxMTZFIDExQjk7RDIzRTsxMTEwIDExNkUgMTFCOTsKK0QyM0Y7RDIzRjsxMTEwIDExNkUgMTFCQTtEMjNGOzExMTAgMTE2RSAxMUJBOworRDI0MDtEMjQwOzExMTAgMTE2RSAxMUJCO0QyNDA7MTExMCAxMTZFIDExQkI7CitEMjQxO0QyNDE7MTExMCAxMTZFIDExQkM7RDI0MTsxMTEwIDExNkUgMTFCQzsKK0QyNDI7RDI0MjsxMTEwIDExNkUgMTFCRDtEMjQyOzExMTAgMTE2RSAxMUJEOworRDI0MztEMjQzOzExMTAgMTE2RSAxMUJFO0QyNDM7MTExMCAxMTZFIDExQkU7CitEMjQ0O0QyNDQ7MTExMCAxMTZFIDExQkY7RDI0NDsxMTEwIDExNkUgMTFCRjsKK0QyNDU7RDI0NTsxMTEwIDExNkUgMTFDMDtEMjQ1OzExMTAgMTE2RSAxMUMwOworRDI0NjtEMjQ2OzExMTAgMTE2RSAxMUMxO0QyNDY7MTExMCAxMTZFIDExQzE7CitEMjQ3O0QyNDc7MTExMCAxMTZFIDExQzI7RDI0NzsxMTEwIDExNkUgMTFDMjsKK0QyNDg7RDI0ODsxMTEwIDExNkY7RDI0ODsxMTEwIDExNkY7CitEMjQ5O0QyNDk7MTExMCAxMTZGIDExQTg7RDI0OTsxMTEwIDExNkYgMTFBODsKK0QyNEE7RDI0QTsxMTEwIDExNkYgMTFBOTtEMjRBOzExMTAgMTE2RiAxMUE5OworRDI0QjtEMjRCOzExMTAgMTE2RiAxMUFBO0QyNEI7MTExMCAxMTZGIDExQUE7CitEMjRDO0QyNEM7MTExMCAxMTZGIDExQUI7RDI0QzsxMTEwIDExNkYgMTFBQjsKK0QyNEQ7RDI0RDsxMTEwIDExNkYgMTFBQztEMjREOzExMTAgMTE2RiAxMUFDOworRDI0RTtEMjRFOzExMTAgMTE2RiAxMUFEO0QyNEU7MTExMCAxMTZGIDExQUQ7CitEMjRGO0QyNEY7MTExMCAxMTZGIDExQUU7RDI0RjsxMTEwIDExNkYgMTFBRTsKK0QyNTA7RDI1MDsxMTEwIDExNkYgMTFBRjtEMjUwOzExMTAgMTE2RiAxMUFGOworRDI1MTtEMjUxOzExMTAgMTE2RiAxMUIwO0QyNTE7MTExMCAxMTZGIDExQjA7CitEMjUyO0QyNTI7MTExMCAxMTZGIDExQjE7RDI1MjsxMTEwIDExNkYgMTFCMTsKK0QyNTM7RDI1MzsxMTEwIDExNkYgMTFCMjtEMjUzOzExMTAgMTE2RiAxMUIyOworRDI1NDtEMjU0OzExMTAgMTE2RiAxMUIzO0QyNTQ7MTExMCAxMTZGIDExQjM7CitEMjU1O0QyNTU7MTExMCAxMTZGIDExQjQ7RDI1NTsxMTEwIDExNkYgMTFCNDsKK0QyNTY7RDI1NjsxMTEwIDExNkYgMTFCNTtEMjU2OzExMTAgMTE2RiAxMUI1OworRDI1NztEMjU3OzExMTAgMTE2RiAxMUI2O0QyNTc7MTExMCAxMTZGIDExQjY7CitEMjU4O0QyNTg7MTExMCAxMTZGIDExQjc7RDI1ODsxMTEwIDExNkYgMTFCNzsKK0QyNTk7RDI1OTsxMTEwIDExNkYgMTFCODtEMjU5OzExMTAgMTE2RiAxMUI4OworRDI1QTtEMjVBOzExMTAgMTE2RiAxMUI5O0QyNUE7MTExMCAxMTZGIDExQjk7CitEMjVCO0QyNUI7MTExMCAxMTZGIDExQkE7RDI1QjsxMTEwIDExNkYgMTFCQTsKK0QyNUM7RDI1QzsxMTEwIDExNkYgMTFCQjtEMjVDOzExMTAgMTE2RiAxMUJCOworRDI1RDtEMjVEOzExMTAgMTE2RiAxMUJDO0QyNUQ7MTExMCAxMTZGIDExQkM7CitEMjVFO0QyNUU7MTExMCAxMTZGIDExQkQ7RDI1RTsxMTEwIDExNkYgMTFCRDsKK0QyNUY7RDI1RjsxMTEwIDExNkYgMTFCRTtEMjVGOzExMTAgMTE2RiAxMUJFOworRDI2MDtEMjYwOzExMTAgMTE2RiAxMUJGO0QyNjA7MTExMCAxMTZGIDExQkY7CitEMjYxO0QyNjE7MTExMCAxMTZGIDExQzA7RDI2MTsxMTEwIDExNkYgMTFDMDsKK0QyNjI7RDI2MjsxMTEwIDExNkYgMTFDMTtEMjYyOzExMTAgMTE2RiAxMUMxOworRDI2MztEMjYzOzExMTAgMTE2RiAxMUMyO0QyNjM7MTExMCAxMTZGIDExQzI7CitEMjY0O0QyNjQ7MTExMCAxMTcwO0QyNjQ7MTExMCAxMTcwOworRDI2NTtEMjY1OzExMTAgMTE3MCAxMUE4O0QyNjU7MTExMCAxMTcwIDExQTg7CitEMjY2O0QyNjY7MTExMCAxMTcwIDExQTk7RDI2NjsxMTEwIDExNzAgMTFBOTsKK0QyNjc7RDI2NzsxMTEwIDExNzAgMTFBQTtEMjY3OzExMTAgMTE3MCAxMUFBOworRDI2ODtEMjY4OzExMTAgMTE3MCAxMUFCO0QyNjg7MTExMCAxMTcwIDExQUI7CitEMjY5O0QyNjk7MTExMCAxMTcwIDExQUM7RDI2OTsxMTEwIDExNzAgMTFBQzsKK0QyNkE7RDI2QTsxMTEwIDExNzAgMTFBRDtEMjZBOzExMTAgMTE3MCAxMUFEOworRDI2QjtEMjZCOzExMTAgMTE3MCAxMUFFO0QyNkI7MTExMCAxMTcwIDExQUU7CitEMjZDO0QyNkM7MTExMCAxMTcwIDExQUY7RDI2QzsxMTEwIDExNzAgMTFBRjsKK0QyNkQ7RDI2RDsxMTEwIDExNzAgMTFCMDtEMjZEOzExMTAgMTE3MCAxMUIwOworRDI2RTtEMjZFOzExMTAgMTE3MCAxMUIxO0QyNkU7MTExMCAxMTcwIDExQjE7CitEMjZGO0QyNkY7MTExMCAxMTcwIDExQjI7RDI2RjsxMTEwIDExNzAgMTFCMjsKK0QyNzA7RDI3MDsxMTEwIDExNzAgMTFCMztEMjcwOzExMTAgMTE3MCAxMUIzOworRDI3MTtEMjcxOzExMTAgMTE3MCAxMUI0O0QyNzE7MTExMCAxMTcwIDExQjQ7CitEMjcyO0QyNzI7MTExMCAxMTcwIDExQjU7RDI3MjsxMTEwIDExNzAgMTFCNTsKK0QyNzM7RDI3MzsxMTEwIDExNzAgMTFCNjtEMjczOzExMTAgMTE3MCAxMUI2OworRDI3NDtEMjc0OzExMTAgMTE3MCAxMUI3O0QyNzQ7MTExMCAxMTcwIDExQjc7CitEMjc1O0QyNzU7MTExMCAxMTcwIDExQjg7RDI3NTsxMTEwIDExNzAgMTFCODsKK0QyNzY7RDI3NjsxMTEwIDExNzAgMTFCOTtEMjc2OzExMTAgMTE3MCAxMUI5OworRDI3NztEMjc3OzExMTAgMTE3MCAxMUJBO0QyNzc7MTExMCAxMTcwIDExQkE7CitEMjc4O0QyNzg7MTExMCAxMTcwIDExQkI7RDI3ODsxMTEwIDExNzAgMTFCQjsKK0QyNzk7RDI3OTsxMTEwIDExNzAgMTFCQztEMjc5OzExMTAgMTE3MCAxMUJDOworRDI3QTtEMjdBOzExMTAgMTE3MCAxMUJEO0QyN0E7MTExMCAxMTcwIDExQkQ7CitEMjdCO0QyN0I7MTExMCAxMTcwIDExQkU7RDI3QjsxMTEwIDExNzAgMTFCRTsKK0QyN0M7RDI3QzsxMTEwIDExNzAgMTFCRjtEMjdDOzExMTAgMTE3MCAxMUJGOworRDI3RDtEMjdEOzExMTAgMTE3MCAxMUMwO0QyN0Q7MTExMCAxMTcwIDExQzA7CitEMjdFO0QyN0U7MTExMCAxMTcwIDExQzE7RDI3RTsxMTEwIDExNzAgMTFDMTsKK0QyN0Y7RDI3RjsxMTEwIDExNzAgMTFDMjtEMjdGOzExMTAgMTE3MCAxMUMyOworRDI4MDtEMjgwOzExMTAgMTE3MTtEMjgwOzExMTAgMTE3MTsKK0QyODE7RDI4MTsxMTEwIDExNzEgMTFBODtEMjgxOzExMTAgMTE3MSAxMUE4OworRDI4MjtEMjgyOzExMTAgMTE3MSAxMUE5O0QyODI7MTExMCAxMTcxIDExQTk7CitEMjgzO0QyODM7MTExMCAxMTcxIDExQUE7RDI4MzsxMTEwIDExNzEgMTFBQTsKK0QyODQ7RDI4NDsxMTEwIDExNzEgMTFBQjtEMjg0OzExMTAgMTE3MSAxMUFCOworRDI4NTtEMjg1OzExMTAgMTE3MSAxMUFDO0QyODU7MTExMCAxMTcxIDExQUM7CitEMjg2O0QyODY7MTExMCAxMTcxIDExQUQ7RDI4NjsxMTEwIDExNzEgMTFBRDsKK0QyODc7RDI4NzsxMTEwIDExNzEgMTFBRTtEMjg3OzExMTAgMTE3MSAxMUFFOworRDI4ODtEMjg4OzExMTAgMTE3MSAxMUFGO0QyODg7MTExMCAxMTcxIDExQUY7CitEMjg5O0QyODk7MTExMCAxMTcxIDExQjA7RDI4OTsxMTEwIDExNzEgMTFCMDsKK0QyOEE7RDI4QTsxMTEwIDExNzEgMTFCMTtEMjhBOzExMTAgMTE3MSAxMUIxOworRDI4QjtEMjhCOzExMTAgMTE3MSAxMUIyO0QyOEI7MTExMCAxMTcxIDExQjI7CitEMjhDO0QyOEM7MTExMCAxMTcxIDExQjM7RDI4QzsxMTEwIDExNzEgMTFCMzsKK0QyOEQ7RDI4RDsxMTEwIDExNzEgMTFCNDtEMjhEOzExMTAgMTE3MSAxMUI0OworRDI4RTtEMjhFOzExMTAgMTE3MSAxMUI1O0QyOEU7MTExMCAxMTcxIDExQjU7CitEMjhGO0QyOEY7MTExMCAxMTcxIDExQjY7RDI4RjsxMTEwIDExNzEgMTFCNjsKK0QyOTA7RDI5MDsxMTEwIDExNzEgMTFCNztEMjkwOzExMTAgMTE3MSAxMUI3OworRDI5MTtEMjkxOzExMTAgMTE3MSAxMUI4O0QyOTE7MTExMCAxMTcxIDExQjg7CitEMjkyO0QyOTI7MTExMCAxMTcxIDExQjk7RDI5MjsxMTEwIDExNzEgMTFCOTsKK0QyOTM7RDI5MzsxMTEwIDExNzEgMTFCQTtEMjkzOzExMTAgMTE3MSAxMUJBOworRDI5NDtEMjk0OzExMTAgMTE3MSAxMUJCO0QyOTQ7MTExMCAxMTcxIDExQkI7CitEMjk1O0QyOTU7MTExMCAxMTcxIDExQkM7RDI5NTsxMTEwIDExNzEgMTFCQzsKK0QyOTY7RDI5NjsxMTEwIDExNzEgMTFCRDtEMjk2OzExMTAgMTE3MSAxMUJEOworRDI5NztEMjk3OzExMTAgMTE3MSAxMUJFO0QyOTc7MTExMCAxMTcxIDExQkU7CitEMjk4O0QyOTg7MTExMCAxMTcxIDExQkY7RDI5ODsxMTEwIDExNzEgMTFCRjsKK0QyOTk7RDI5OTsxMTEwIDExNzEgMTFDMDtEMjk5OzExMTAgMTE3MSAxMUMwOworRDI5QTtEMjlBOzExMTAgMTE3MSAxMUMxO0QyOUE7MTExMCAxMTcxIDExQzE7CitEMjlCO0QyOUI7MTExMCAxMTcxIDExQzI7RDI5QjsxMTEwIDExNzEgMTFDMjsKK0QyOUM7RDI5QzsxMTEwIDExNzI7RDI5QzsxMTEwIDExNzI7CitEMjlEO0QyOUQ7MTExMCAxMTcyIDExQTg7RDI5RDsxMTEwIDExNzIgMTFBODsKK0QyOUU7RDI5RTsxMTEwIDExNzIgMTFBOTtEMjlFOzExMTAgMTE3MiAxMUE5OworRDI5RjtEMjlGOzExMTAgMTE3MiAxMUFBO0QyOUY7MTExMCAxMTcyIDExQUE7CitEMkEwO0QyQTA7MTExMCAxMTcyIDExQUI7RDJBMDsxMTEwIDExNzIgMTFBQjsKK0QyQTE7RDJBMTsxMTEwIDExNzIgMTFBQztEMkExOzExMTAgMTE3MiAxMUFDOworRDJBMjtEMkEyOzExMTAgMTE3MiAxMUFEO0QyQTI7MTExMCAxMTcyIDExQUQ7CitEMkEzO0QyQTM7MTExMCAxMTcyIDExQUU7RDJBMzsxMTEwIDExNzIgMTFBRTsKK0QyQTQ7RDJBNDsxMTEwIDExNzIgMTFBRjtEMkE0OzExMTAgMTE3MiAxMUFGOworRDJBNTtEMkE1OzExMTAgMTE3MiAxMUIwO0QyQTU7MTExMCAxMTcyIDExQjA7CitEMkE2O0QyQTY7MTExMCAxMTcyIDExQjE7RDJBNjsxMTEwIDExNzIgMTFCMTsKK0QyQTc7RDJBNzsxMTEwIDExNzIgMTFCMjtEMkE3OzExMTAgMTE3MiAxMUIyOworRDJBODtEMkE4OzExMTAgMTE3MiAxMUIzO0QyQTg7MTExMCAxMTcyIDExQjM7CitEMkE5O0QyQTk7MTExMCAxMTcyIDExQjQ7RDJBOTsxMTEwIDExNzIgMTFCNDsKK0QyQUE7RDJBQTsxMTEwIDExNzIgMTFCNTtEMkFBOzExMTAgMTE3MiAxMUI1OworRDJBQjtEMkFCOzExMTAgMTE3MiAxMUI2O0QyQUI7MTExMCAxMTcyIDExQjY7CitEMkFDO0QyQUM7MTExMCAxMTcyIDExQjc7RDJBQzsxMTEwIDExNzIgMTFCNzsKK0QyQUQ7RDJBRDsxMTEwIDExNzIgMTFCODtEMkFEOzExMTAgMTE3MiAxMUI4OworRDJBRTtEMkFFOzExMTAgMTE3MiAxMUI5O0QyQUU7MTExMCAxMTcyIDExQjk7CitEMkFGO0QyQUY7MTExMCAxMTcyIDExQkE7RDJBRjsxMTEwIDExNzIgMTFCQTsKK0QyQjA7RDJCMDsxMTEwIDExNzIgMTFCQjtEMkIwOzExMTAgMTE3MiAxMUJCOworRDJCMTtEMkIxOzExMTAgMTE3MiAxMUJDO0QyQjE7MTExMCAxMTcyIDExQkM7CitEMkIyO0QyQjI7MTExMCAxMTcyIDExQkQ7RDJCMjsxMTEwIDExNzIgMTFCRDsKK0QyQjM7RDJCMzsxMTEwIDExNzIgMTFCRTtEMkIzOzExMTAgMTE3MiAxMUJFOworRDJCNDtEMkI0OzExMTAgMTE3MiAxMUJGO0QyQjQ7MTExMCAxMTcyIDExQkY7CitEMkI1O0QyQjU7MTExMCAxMTcyIDExQzA7RDJCNTsxMTEwIDExNzIgMTFDMDsKK0QyQjY7RDJCNjsxMTEwIDExNzIgMTFDMTtEMkI2OzExMTAgMTE3MiAxMUMxOworRDJCNztEMkI3OzExMTAgMTE3MiAxMUMyO0QyQjc7MTExMCAxMTcyIDExQzI7CitEMkI4O0QyQjg7MTExMCAxMTczO0QyQjg7MTExMCAxMTczOworRDJCOTtEMkI5OzExMTAgMTE3MyAxMUE4O0QyQjk7MTExMCAxMTczIDExQTg7CitEMkJBO0QyQkE7MTExMCAxMTczIDExQTk7RDJCQTsxMTEwIDExNzMgMTFBOTsKK0QyQkI7RDJCQjsxMTEwIDExNzMgMTFBQTtEMkJCOzExMTAgMTE3MyAxMUFBOworRDJCQztEMkJDOzExMTAgMTE3MyAxMUFCO0QyQkM7MTExMCAxMTczIDExQUI7CitEMkJEO0QyQkQ7MTExMCAxMTczIDExQUM7RDJCRDsxMTEwIDExNzMgMTFBQzsKK0QyQkU7RDJCRTsxMTEwIDExNzMgMTFBRDtEMkJFOzExMTAgMTE3MyAxMUFEOworRDJCRjtEMkJGOzExMTAgMTE3MyAxMUFFO0QyQkY7MTExMCAxMTczIDExQUU7CitEMkMwO0QyQzA7MTExMCAxMTczIDExQUY7RDJDMDsxMTEwIDExNzMgMTFBRjsKK0QyQzE7RDJDMTsxMTEwIDExNzMgMTFCMDtEMkMxOzExMTAgMTE3MyAxMUIwOworRDJDMjtEMkMyOzExMTAgMTE3MyAxMUIxO0QyQzI7MTExMCAxMTczIDExQjE7CitEMkMzO0QyQzM7MTExMCAxMTczIDExQjI7RDJDMzsxMTEwIDExNzMgMTFCMjsKK0QyQzQ7RDJDNDsxMTEwIDExNzMgMTFCMztEMkM0OzExMTAgMTE3MyAxMUIzOworRDJDNTtEMkM1OzExMTAgMTE3MyAxMUI0O0QyQzU7MTExMCAxMTczIDExQjQ7CitEMkM2O0QyQzY7MTExMCAxMTczIDExQjU7RDJDNjsxMTEwIDExNzMgMTFCNTsKK0QyQzc7RDJDNzsxMTEwIDExNzMgMTFCNjtEMkM3OzExMTAgMTE3MyAxMUI2OworRDJDODtEMkM4OzExMTAgMTE3MyAxMUI3O0QyQzg7MTExMCAxMTczIDExQjc7CitEMkM5O0QyQzk7MTExMCAxMTczIDExQjg7RDJDOTsxMTEwIDExNzMgMTFCODsKK0QyQ0E7RDJDQTsxMTEwIDExNzMgMTFCOTtEMkNBOzExMTAgMTE3MyAxMUI5OworRDJDQjtEMkNCOzExMTAgMTE3MyAxMUJBO0QyQ0I7MTExMCAxMTczIDExQkE7CitEMkNDO0QyQ0M7MTExMCAxMTczIDExQkI7RDJDQzsxMTEwIDExNzMgMTFCQjsKK0QyQ0Q7RDJDRDsxMTEwIDExNzMgMTFCQztEMkNEOzExMTAgMTE3MyAxMUJDOworRDJDRTtEMkNFOzExMTAgMTE3MyAxMUJEO0QyQ0U7MTExMCAxMTczIDExQkQ7CitEMkNGO0QyQ0Y7MTExMCAxMTczIDExQkU7RDJDRjsxMTEwIDExNzMgMTFCRTsKK0QyRDA7RDJEMDsxMTEwIDExNzMgMTFCRjtEMkQwOzExMTAgMTE3MyAxMUJGOworRDJEMTtEMkQxOzExMTAgMTE3MyAxMUMwO0QyRDE7MTExMCAxMTczIDExQzA7CitEMkQyO0QyRDI7MTExMCAxMTczIDExQzE7RDJEMjsxMTEwIDExNzMgMTFDMTsKK0QyRDM7RDJEMzsxMTEwIDExNzMgMTFDMjtEMkQzOzExMTAgMTE3MyAxMUMyOworRDJENDtEMkQ0OzExMTAgMTE3NDtEMkQ0OzExMTAgMTE3NDsKK0QyRDU7RDJENTsxMTEwIDExNzQgMTFBODtEMkQ1OzExMTAgMTE3NCAxMUE4OworRDJENjtEMkQ2OzExMTAgMTE3NCAxMUE5O0QyRDY7MTExMCAxMTc0IDExQTk7CitEMkQ3O0QyRDc7MTExMCAxMTc0IDExQUE7RDJENzsxMTEwIDExNzQgMTFBQTsKK0QyRDg7RDJEODsxMTEwIDExNzQgMTFBQjtEMkQ4OzExMTAgMTE3NCAxMUFCOworRDJEOTtEMkQ5OzExMTAgMTE3NCAxMUFDO0QyRDk7MTExMCAxMTc0IDExQUM7CitEMkRBO0QyREE7MTExMCAxMTc0IDExQUQ7RDJEQTsxMTEwIDExNzQgMTFBRDsKK0QyREI7RDJEQjsxMTEwIDExNzQgMTFBRTtEMkRCOzExMTAgMTE3NCAxMUFFOworRDJEQztEMkRDOzExMTAgMTE3NCAxMUFGO0QyREM7MTExMCAxMTc0IDExQUY7CitEMkREO0QyREQ7MTExMCAxMTc0IDExQjA7RDJERDsxMTEwIDExNzQgMTFCMDsKK0QyREU7RDJERTsxMTEwIDExNzQgMTFCMTtEMkRFOzExMTAgMTE3NCAxMUIxOworRDJERjtEMkRGOzExMTAgMTE3NCAxMUIyO0QyREY7MTExMCAxMTc0IDExQjI7CitEMkUwO0QyRTA7MTExMCAxMTc0IDExQjM7RDJFMDsxMTEwIDExNzQgMTFCMzsKK0QyRTE7RDJFMTsxMTEwIDExNzQgMTFCNDtEMkUxOzExMTAgMTE3NCAxMUI0OworRDJFMjtEMkUyOzExMTAgMTE3NCAxMUI1O0QyRTI7MTExMCAxMTc0IDExQjU7CitEMkUzO0QyRTM7MTExMCAxMTc0IDExQjY7RDJFMzsxMTEwIDExNzQgMTFCNjsKK0QyRTQ7RDJFNDsxMTEwIDExNzQgMTFCNztEMkU0OzExMTAgMTE3NCAxMUI3OworRDJFNTtEMkU1OzExMTAgMTE3NCAxMUI4O0QyRTU7MTExMCAxMTc0IDExQjg7CitEMkU2O0QyRTY7MTExMCAxMTc0IDExQjk7RDJFNjsxMTEwIDExNzQgMTFCOTsKK0QyRTc7RDJFNzsxMTEwIDExNzQgMTFCQTtEMkU3OzExMTAgMTE3NCAxMUJBOworRDJFODtEMkU4OzExMTAgMTE3NCAxMUJCO0QyRTg7MTExMCAxMTc0IDExQkI7CitEMkU5O0QyRTk7MTExMCAxMTc0IDExQkM7RDJFOTsxMTEwIDExNzQgMTFCQzsKK0QyRUE7RDJFQTsxMTEwIDExNzQgMTFCRDtEMkVBOzExMTAgMTE3NCAxMUJEOworRDJFQjtEMkVCOzExMTAgMTE3NCAxMUJFO0QyRUI7MTExMCAxMTc0IDExQkU7CitEMkVDO0QyRUM7MTExMCAxMTc0IDExQkY7RDJFQzsxMTEwIDExNzQgMTFCRjsKK0QyRUQ7RDJFRDsxMTEwIDExNzQgMTFDMDtEMkVEOzExMTAgMTE3NCAxMUMwOworRDJFRTtEMkVFOzExMTAgMTE3NCAxMUMxO0QyRUU7MTExMCAxMTc0IDExQzE7CitEMkVGO0QyRUY7MTExMCAxMTc0IDExQzI7RDJFRjsxMTEwIDExNzQgMTFDMjsKK0QyRjA7RDJGMDsxMTEwIDExNzU7RDJGMDsxMTEwIDExNzU7CitEMkYxO0QyRjE7MTExMCAxMTc1IDExQTg7RDJGMTsxMTEwIDExNzUgMTFBODsKK0QyRjI7RDJGMjsxMTEwIDExNzUgMTFBOTtEMkYyOzExMTAgMTE3NSAxMUE5OworRDJGMztEMkYzOzExMTAgMTE3NSAxMUFBO0QyRjM7MTExMCAxMTc1IDExQUE7CitEMkY0O0QyRjQ7MTExMCAxMTc1IDExQUI7RDJGNDsxMTEwIDExNzUgMTFBQjsKK0QyRjU7RDJGNTsxMTEwIDExNzUgMTFBQztEMkY1OzExMTAgMTE3NSAxMUFDOworRDJGNjtEMkY2OzExMTAgMTE3NSAxMUFEO0QyRjY7MTExMCAxMTc1IDExQUQ7CitEMkY3O0QyRjc7MTExMCAxMTc1IDExQUU7RDJGNzsxMTEwIDExNzUgMTFBRTsKK0QyRjg7RDJGODsxMTEwIDExNzUgMTFBRjtEMkY4OzExMTAgMTE3NSAxMUFGOworRDJGOTtEMkY5OzExMTAgMTE3NSAxMUIwO0QyRjk7MTExMCAxMTc1IDExQjA7CitEMkZBO0QyRkE7MTExMCAxMTc1IDExQjE7RDJGQTsxMTEwIDExNzUgMTFCMTsKK0QyRkI7RDJGQjsxMTEwIDExNzUgMTFCMjtEMkZCOzExMTAgMTE3NSAxMUIyOworRDJGQztEMkZDOzExMTAgMTE3NSAxMUIzO0QyRkM7MTExMCAxMTc1IDExQjM7CitEMkZEO0QyRkQ7MTExMCAxMTc1IDExQjQ7RDJGRDsxMTEwIDExNzUgMTFCNDsKK0QyRkU7RDJGRTsxMTEwIDExNzUgMTFCNTtEMkZFOzExMTAgMTE3NSAxMUI1OworRDJGRjtEMkZGOzExMTAgMTE3NSAxMUI2O0QyRkY7MTExMCAxMTc1IDExQjY7CitEMzAwO0QzMDA7MTExMCAxMTc1IDExQjc7RDMwMDsxMTEwIDExNzUgMTFCNzsKK0QzMDE7RDMwMTsxMTEwIDExNzUgMTFCODtEMzAxOzExMTAgMTE3NSAxMUI4OworRDMwMjtEMzAyOzExMTAgMTE3NSAxMUI5O0QzMDI7MTExMCAxMTc1IDExQjk7CitEMzAzO0QzMDM7MTExMCAxMTc1IDExQkE7RDMwMzsxMTEwIDExNzUgMTFCQTsKK0QzMDQ7RDMwNDsxMTEwIDExNzUgMTFCQjtEMzA0OzExMTAgMTE3NSAxMUJCOworRDMwNTtEMzA1OzExMTAgMTE3NSAxMUJDO0QzMDU7MTExMCAxMTc1IDExQkM7CitEMzA2O0QzMDY7MTExMCAxMTc1IDExQkQ7RDMwNjsxMTEwIDExNzUgMTFCRDsKK0QzMDc7RDMwNzsxMTEwIDExNzUgMTFCRTtEMzA3OzExMTAgMTE3NSAxMUJFOworRDMwODtEMzA4OzExMTAgMTE3NSAxMUJGO0QzMDg7MTExMCAxMTc1IDExQkY7CitEMzA5O0QzMDk7MTExMCAxMTc1IDExQzA7RDMwOTsxMTEwIDExNzUgMTFDMDsKK0QzMEE7RDMwQTsxMTEwIDExNzUgMTFDMTtEMzBBOzExMTAgMTE3NSAxMUMxOworRDMwQjtEMzBCOzExMTAgMTE3NSAxMUMyO0QzMEI7MTExMCAxMTc1IDExQzI7CitEMzBDO0QzMEM7MTExMSAxMTYxO0QzMEM7MTExMSAxMTYxOworRDMwRDtEMzBEOzExMTEgMTE2MSAxMUE4O0QzMEQ7MTExMSAxMTYxIDExQTg7CitEMzBFO0QzMEU7MTExMSAxMTYxIDExQTk7RDMwRTsxMTExIDExNjEgMTFBOTsKK0QzMEY7RDMwRjsxMTExIDExNjEgMTFBQTtEMzBGOzExMTEgMTE2MSAxMUFBOworRDMxMDtEMzEwOzExMTEgMTE2MSAxMUFCO0QzMTA7MTExMSAxMTYxIDExQUI7CitEMzExO0QzMTE7MTExMSAxMTYxIDExQUM7RDMxMTsxMTExIDExNjEgMTFBQzsKK0QzMTI7RDMxMjsxMTExIDExNjEgMTFBRDtEMzEyOzExMTEgMTE2MSAxMUFEOworRDMxMztEMzEzOzExMTEgMTE2MSAxMUFFO0QzMTM7MTExMSAxMTYxIDExQUU7CitEMzE0O0QzMTQ7MTExMSAxMTYxIDExQUY7RDMxNDsxMTExIDExNjEgMTFBRjsKK0QzMTU7RDMxNTsxMTExIDExNjEgMTFCMDtEMzE1OzExMTEgMTE2MSAxMUIwOworRDMxNjtEMzE2OzExMTEgMTE2MSAxMUIxO0QzMTY7MTExMSAxMTYxIDExQjE7CitEMzE3O0QzMTc7MTExMSAxMTYxIDExQjI7RDMxNzsxMTExIDExNjEgMTFCMjsKK0QzMTg7RDMxODsxMTExIDExNjEgMTFCMztEMzE4OzExMTEgMTE2MSAxMUIzOworRDMxOTtEMzE5OzExMTEgMTE2MSAxMUI0O0QzMTk7MTExMSAxMTYxIDExQjQ7CitEMzFBO0QzMUE7MTExMSAxMTYxIDExQjU7RDMxQTsxMTExIDExNjEgMTFCNTsKK0QzMUI7RDMxQjsxMTExIDExNjEgMTFCNjtEMzFCOzExMTEgMTE2MSAxMUI2OworRDMxQztEMzFDOzExMTEgMTE2MSAxMUI3O0QzMUM7MTExMSAxMTYxIDExQjc7CitEMzFEO0QzMUQ7MTExMSAxMTYxIDExQjg7RDMxRDsxMTExIDExNjEgMTFCODsKK0QzMUU7RDMxRTsxMTExIDExNjEgMTFCOTtEMzFFOzExMTEgMTE2MSAxMUI5OworRDMxRjtEMzFGOzExMTEgMTE2MSAxMUJBO0QzMUY7MTExMSAxMTYxIDExQkE7CitEMzIwO0QzMjA7MTExMSAxMTYxIDExQkI7RDMyMDsxMTExIDExNjEgMTFCQjsKK0QzMjE7RDMyMTsxMTExIDExNjEgMTFCQztEMzIxOzExMTEgMTE2MSAxMUJDOworRDMyMjtEMzIyOzExMTEgMTE2MSAxMUJEO0QzMjI7MTExMSAxMTYxIDExQkQ7CitEMzIzO0QzMjM7MTExMSAxMTYxIDExQkU7RDMyMzsxMTExIDExNjEgMTFCRTsKK0QzMjQ7RDMyNDsxMTExIDExNjEgMTFCRjtEMzI0OzExMTEgMTE2MSAxMUJGOworRDMyNTtEMzI1OzExMTEgMTE2MSAxMUMwO0QzMjU7MTExMSAxMTYxIDExQzA7CitEMzI2O0QzMjY7MTExMSAxMTYxIDExQzE7RDMyNjsxMTExIDExNjEgMTFDMTsKK0QzMjc7RDMyNzsxMTExIDExNjEgMTFDMjtEMzI3OzExMTEgMTE2MSAxMUMyOworRDMyODtEMzI4OzExMTEgMTE2MjtEMzI4OzExMTEgMTE2MjsKK0QzMjk7RDMyOTsxMTExIDExNjIgMTFBODtEMzI5OzExMTEgMTE2MiAxMUE4OworRDMyQTtEMzJBOzExMTEgMTE2MiAxMUE5O0QzMkE7MTExMSAxMTYyIDExQTk7CitEMzJCO0QzMkI7MTExMSAxMTYyIDExQUE7RDMyQjsxMTExIDExNjIgMTFBQTsKK0QzMkM7RDMyQzsxMTExIDExNjIgMTFBQjtEMzJDOzExMTEgMTE2MiAxMUFCOworRDMyRDtEMzJEOzExMTEgMTE2MiAxMUFDO0QzMkQ7MTExMSAxMTYyIDExQUM7CitEMzJFO0QzMkU7MTExMSAxMTYyIDExQUQ7RDMyRTsxMTExIDExNjIgMTFBRDsKK0QzMkY7RDMyRjsxMTExIDExNjIgMTFBRTtEMzJGOzExMTEgMTE2MiAxMUFFOworRDMzMDtEMzMwOzExMTEgMTE2MiAxMUFGO0QzMzA7MTExMSAxMTYyIDExQUY7CitEMzMxO0QzMzE7MTExMSAxMTYyIDExQjA7RDMzMTsxMTExIDExNjIgMTFCMDsKK0QzMzI7RDMzMjsxMTExIDExNjIgMTFCMTtEMzMyOzExMTEgMTE2MiAxMUIxOworRDMzMztEMzMzOzExMTEgMTE2MiAxMUIyO0QzMzM7MTExMSAxMTYyIDExQjI7CitEMzM0O0QzMzQ7MTExMSAxMTYyIDExQjM7RDMzNDsxMTExIDExNjIgMTFCMzsKK0QzMzU7RDMzNTsxMTExIDExNjIgMTFCNDtEMzM1OzExMTEgMTE2MiAxMUI0OworRDMzNjtEMzM2OzExMTEgMTE2MiAxMUI1O0QzMzY7MTExMSAxMTYyIDExQjU7CitEMzM3O0QzMzc7MTExMSAxMTYyIDExQjY7RDMzNzsxMTExIDExNjIgMTFCNjsKK0QzMzg7RDMzODsxMTExIDExNjIgMTFCNztEMzM4OzExMTEgMTE2MiAxMUI3OworRDMzOTtEMzM5OzExMTEgMTE2MiAxMUI4O0QzMzk7MTExMSAxMTYyIDExQjg7CitEMzNBO0QzM0E7MTExMSAxMTYyIDExQjk7RDMzQTsxMTExIDExNjIgMTFCOTsKK0QzM0I7RDMzQjsxMTExIDExNjIgMTFCQTtEMzNCOzExMTEgMTE2MiAxMUJBOworRDMzQztEMzNDOzExMTEgMTE2MiAxMUJCO0QzM0M7MTExMSAxMTYyIDExQkI7CitEMzNEO0QzM0Q7MTExMSAxMTYyIDExQkM7RDMzRDsxMTExIDExNjIgMTFCQzsKK0QzM0U7RDMzRTsxMTExIDExNjIgMTFCRDtEMzNFOzExMTEgMTE2MiAxMUJEOworRDMzRjtEMzNGOzExMTEgMTE2MiAxMUJFO0QzM0Y7MTExMSAxMTYyIDExQkU7CitEMzQwO0QzNDA7MTExMSAxMTYyIDExQkY7RDM0MDsxMTExIDExNjIgMTFCRjsKK0QzNDE7RDM0MTsxMTExIDExNjIgMTFDMDtEMzQxOzExMTEgMTE2MiAxMUMwOworRDM0MjtEMzQyOzExMTEgMTE2MiAxMUMxO0QzNDI7MTExMSAxMTYyIDExQzE7CitEMzQzO0QzNDM7MTExMSAxMTYyIDExQzI7RDM0MzsxMTExIDExNjIgMTFDMjsKK0QzNDQ7RDM0NDsxMTExIDExNjM7RDM0NDsxMTExIDExNjM7CitEMzQ1O0QzNDU7MTExMSAxMTYzIDExQTg7RDM0NTsxMTExIDExNjMgMTFBODsKK0QzNDY7RDM0NjsxMTExIDExNjMgMTFBOTtEMzQ2OzExMTEgMTE2MyAxMUE5OworRDM0NztEMzQ3OzExMTEgMTE2MyAxMUFBO0QzNDc7MTExMSAxMTYzIDExQUE7CitEMzQ4O0QzNDg7MTExMSAxMTYzIDExQUI7RDM0ODsxMTExIDExNjMgMTFBQjsKK0QzNDk7RDM0OTsxMTExIDExNjMgMTFBQztEMzQ5OzExMTEgMTE2MyAxMUFDOworRDM0QTtEMzRBOzExMTEgMTE2MyAxMUFEO0QzNEE7MTExMSAxMTYzIDExQUQ7CitEMzRCO0QzNEI7MTExMSAxMTYzIDExQUU7RDM0QjsxMTExIDExNjMgMTFBRTsKK0QzNEM7RDM0QzsxMTExIDExNjMgMTFBRjtEMzRDOzExMTEgMTE2MyAxMUFGOworRDM0RDtEMzREOzExMTEgMTE2MyAxMUIwO0QzNEQ7MTExMSAxMTYzIDExQjA7CitEMzRFO0QzNEU7MTExMSAxMTYzIDExQjE7RDM0RTsxMTExIDExNjMgMTFCMTsKK0QzNEY7RDM0RjsxMTExIDExNjMgMTFCMjtEMzRGOzExMTEgMTE2MyAxMUIyOworRDM1MDtEMzUwOzExMTEgMTE2MyAxMUIzO0QzNTA7MTExMSAxMTYzIDExQjM7CitEMzUxO0QzNTE7MTExMSAxMTYzIDExQjQ7RDM1MTsxMTExIDExNjMgMTFCNDsKK0QzNTI7RDM1MjsxMTExIDExNjMgMTFCNTtEMzUyOzExMTEgMTE2MyAxMUI1OworRDM1MztEMzUzOzExMTEgMTE2MyAxMUI2O0QzNTM7MTExMSAxMTYzIDExQjY7CitEMzU0O0QzNTQ7MTExMSAxMTYzIDExQjc7RDM1NDsxMTExIDExNjMgMTFCNzsKK0QzNTU7RDM1NTsxMTExIDExNjMgMTFCODtEMzU1OzExMTEgMTE2MyAxMUI4OworRDM1NjtEMzU2OzExMTEgMTE2MyAxMUI5O0QzNTY7MTExMSAxMTYzIDExQjk7CitEMzU3O0QzNTc7MTExMSAxMTYzIDExQkE7RDM1NzsxMTExIDExNjMgMTFCQTsKK0QzNTg7RDM1ODsxMTExIDExNjMgMTFCQjtEMzU4OzExMTEgMTE2MyAxMUJCOworRDM1OTtEMzU5OzExMTEgMTE2MyAxMUJDO0QzNTk7MTExMSAxMTYzIDExQkM7CitEMzVBO0QzNUE7MTExMSAxMTYzIDExQkQ7RDM1QTsxMTExIDExNjMgMTFCRDsKK0QzNUI7RDM1QjsxMTExIDExNjMgMTFCRTtEMzVCOzExMTEgMTE2MyAxMUJFOworRDM1QztEMzVDOzExMTEgMTE2MyAxMUJGO0QzNUM7MTExMSAxMTYzIDExQkY7CitEMzVEO0QzNUQ7MTExMSAxMTYzIDExQzA7RDM1RDsxMTExIDExNjMgMTFDMDsKK0QzNUU7RDM1RTsxMTExIDExNjMgMTFDMTtEMzVFOzExMTEgMTE2MyAxMUMxOworRDM1RjtEMzVGOzExMTEgMTE2MyAxMUMyO0QzNUY7MTExMSAxMTYzIDExQzI7CitEMzYwO0QzNjA7MTExMSAxMTY0O0QzNjA7MTExMSAxMTY0OworRDM2MTtEMzYxOzExMTEgMTE2NCAxMUE4O0QzNjE7MTExMSAxMTY0IDExQTg7CitEMzYyO0QzNjI7MTExMSAxMTY0IDExQTk7RDM2MjsxMTExIDExNjQgMTFBOTsKK0QzNjM7RDM2MzsxMTExIDExNjQgMTFBQTtEMzYzOzExMTEgMTE2NCAxMUFBOworRDM2NDtEMzY0OzExMTEgMTE2NCAxMUFCO0QzNjQ7MTExMSAxMTY0IDExQUI7CitEMzY1O0QzNjU7MTExMSAxMTY0IDExQUM7RDM2NTsxMTExIDExNjQgMTFBQzsKK0QzNjY7RDM2NjsxMTExIDExNjQgMTFBRDtEMzY2OzExMTEgMTE2NCAxMUFEOworRDM2NztEMzY3OzExMTEgMTE2NCAxMUFFO0QzNjc7MTExMSAxMTY0IDExQUU7CitEMzY4O0QzNjg7MTExMSAxMTY0IDExQUY7RDM2ODsxMTExIDExNjQgMTFBRjsKK0QzNjk7RDM2OTsxMTExIDExNjQgMTFCMDtEMzY5OzExMTEgMTE2NCAxMUIwOworRDM2QTtEMzZBOzExMTEgMTE2NCAxMUIxO0QzNkE7MTExMSAxMTY0IDExQjE7CitEMzZCO0QzNkI7MTExMSAxMTY0IDExQjI7RDM2QjsxMTExIDExNjQgMTFCMjsKK0QzNkM7RDM2QzsxMTExIDExNjQgMTFCMztEMzZDOzExMTEgMTE2NCAxMUIzOworRDM2RDtEMzZEOzExMTEgMTE2NCAxMUI0O0QzNkQ7MTExMSAxMTY0IDExQjQ7CitEMzZFO0QzNkU7MTExMSAxMTY0IDExQjU7RDM2RTsxMTExIDExNjQgMTFCNTsKK0QzNkY7RDM2RjsxMTExIDExNjQgMTFCNjtEMzZGOzExMTEgMTE2NCAxMUI2OworRDM3MDtEMzcwOzExMTEgMTE2NCAxMUI3O0QzNzA7MTExMSAxMTY0IDExQjc7CitEMzcxO0QzNzE7MTExMSAxMTY0IDExQjg7RDM3MTsxMTExIDExNjQgMTFCODsKK0QzNzI7RDM3MjsxMTExIDExNjQgMTFCOTtEMzcyOzExMTEgMTE2NCAxMUI5OworRDM3MztEMzczOzExMTEgMTE2NCAxMUJBO0QzNzM7MTExMSAxMTY0IDExQkE7CitEMzc0O0QzNzQ7MTExMSAxMTY0IDExQkI7RDM3NDsxMTExIDExNjQgMTFCQjsKK0QzNzU7RDM3NTsxMTExIDExNjQgMTFCQztEMzc1OzExMTEgMTE2NCAxMUJDOworRDM3NjtEMzc2OzExMTEgMTE2NCAxMUJEO0QzNzY7MTExMSAxMTY0IDExQkQ7CitEMzc3O0QzNzc7MTExMSAxMTY0IDExQkU7RDM3NzsxMTExIDExNjQgMTFCRTsKK0QzNzg7RDM3ODsxMTExIDExNjQgMTFCRjtEMzc4OzExMTEgMTE2NCAxMUJGOworRDM3OTtEMzc5OzExMTEgMTE2NCAxMUMwO0QzNzk7MTExMSAxMTY0IDExQzA7CitEMzdBO0QzN0E7MTExMSAxMTY0IDExQzE7RDM3QTsxMTExIDExNjQgMTFDMTsKK0QzN0I7RDM3QjsxMTExIDExNjQgMTFDMjtEMzdCOzExMTEgMTE2NCAxMUMyOworRDM3QztEMzdDOzExMTEgMTE2NTtEMzdDOzExMTEgMTE2NTsKK0QzN0Q7RDM3RDsxMTExIDExNjUgMTFBODtEMzdEOzExMTEgMTE2NSAxMUE4OworRDM3RTtEMzdFOzExMTEgMTE2NSAxMUE5O0QzN0U7MTExMSAxMTY1IDExQTk7CitEMzdGO0QzN0Y7MTExMSAxMTY1IDExQUE7RDM3RjsxMTExIDExNjUgMTFBQTsKK0QzODA7RDM4MDsxMTExIDExNjUgMTFBQjtEMzgwOzExMTEgMTE2NSAxMUFCOworRDM4MTtEMzgxOzExMTEgMTE2NSAxMUFDO0QzODE7MTExMSAxMTY1IDExQUM7CitEMzgyO0QzODI7MTExMSAxMTY1IDExQUQ7RDM4MjsxMTExIDExNjUgMTFBRDsKK0QzODM7RDM4MzsxMTExIDExNjUgMTFBRTtEMzgzOzExMTEgMTE2NSAxMUFFOworRDM4NDtEMzg0OzExMTEgMTE2NSAxMUFGO0QzODQ7MTExMSAxMTY1IDExQUY7CitEMzg1O0QzODU7MTExMSAxMTY1IDExQjA7RDM4NTsxMTExIDExNjUgMTFCMDsKK0QzODY7RDM4NjsxMTExIDExNjUgMTFCMTtEMzg2OzExMTEgMTE2NSAxMUIxOworRDM4NztEMzg3OzExMTEgMTE2NSAxMUIyO0QzODc7MTExMSAxMTY1IDExQjI7CitEMzg4O0QzODg7MTExMSAxMTY1IDExQjM7RDM4ODsxMTExIDExNjUgMTFCMzsKK0QzODk7RDM4OTsxMTExIDExNjUgMTFCNDtEMzg5OzExMTEgMTE2NSAxMUI0OworRDM4QTtEMzhBOzExMTEgMTE2NSAxMUI1O0QzOEE7MTExMSAxMTY1IDExQjU7CitEMzhCO0QzOEI7MTExMSAxMTY1IDExQjY7RDM4QjsxMTExIDExNjUgMTFCNjsKK0QzOEM7RDM4QzsxMTExIDExNjUgMTFCNztEMzhDOzExMTEgMTE2NSAxMUI3OworRDM4RDtEMzhEOzExMTEgMTE2NSAxMUI4O0QzOEQ7MTExMSAxMTY1IDExQjg7CitEMzhFO0QzOEU7MTExMSAxMTY1IDExQjk7RDM4RTsxMTExIDExNjUgMTFCOTsKK0QzOEY7RDM4RjsxMTExIDExNjUgMTFCQTtEMzhGOzExMTEgMTE2NSAxMUJBOworRDM5MDtEMzkwOzExMTEgMTE2NSAxMUJCO0QzOTA7MTExMSAxMTY1IDExQkI7CitEMzkxO0QzOTE7MTExMSAxMTY1IDExQkM7RDM5MTsxMTExIDExNjUgMTFCQzsKK0QzOTI7RDM5MjsxMTExIDExNjUgMTFCRDtEMzkyOzExMTEgMTE2NSAxMUJEOworRDM5MztEMzkzOzExMTEgMTE2NSAxMUJFO0QzOTM7MTExMSAxMTY1IDExQkU7CitEMzk0O0QzOTQ7MTExMSAxMTY1IDExQkY7RDM5NDsxMTExIDExNjUgMTFCRjsKK0QzOTU7RDM5NTsxMTExIDExNjUgMTFDMDtEMzk1OzExMTEgMTE2NSAxMUMwOworRDM5NjtEMzk2OzExMTEgMTE2NSAxMUMxO0QzOTY7MTExMSAxMTY1IDExQzE7CitEMzk3O0QzOTc7MTExMSAxMTY1IDExQzI7RDM5NzsxMTExIDExNjUgMTFDMjsKK0QzOTg7RDM5ODsxMTExIDExNjY7RDM5ODsxMTExIDExNjY7CitEMzk5O0QzOTk7MTExMSAxMTY2IDExQTg7RDM5OTsxMTExIDExNjYgMTFBODsKK0QzOUE7RDM5QTsxMTExIDExNjYgMTFBOTtEMzlBOzExMTEgMTE2NiAxMUE5OworRDM5QjtEMzlCOzExMTEgMTE2NiAxMUFBO0QzOUI7MTExMSAxMTY2IDExQUE7CitEMzlDO0QzOUM7MTExMSAxMTY2IDExQUI7RDM5QzsxMTExIDExNjYgMTFBQjsKK0QzOUQ7RDM5RDsxMTExIDExNjYgMTFBQztEMzlEOzExMTEgMTE2NiAxMUFDOworRDM5RTtEMzlFOzExMTEgMTE2NiAxMUFEO0QzOUU7MTExMSAxMTY2IDExQUQ7CitEMzlGO0QzOUY7MTExMSAxMTY2IDExQUU7RDM5RjsxMTExIDExNjYgMTFBRTsKK0QzQTA7RDNBMDsxMTExIDExNjYgMTFBRjtEM0EwOzExMTEgMTE2NiAxMUFGOworRDNBMTtEM0ExOzExMTEgMTE2NiAxMUIwO0QzQTE7MTExMSAxMTY2IDExQjA7CitEM0EyO0QzQTI7MTExMSAxMTY2IDExQjE7RDNBMjsxMTExIDExNjYgMTFCMTsKK0QzQTM7RDNBMzsxMTExIDExNjYgMTFCMjtEM0EzOzExMTEgMTE2NiAxMUIyOworRDNBNDtEM0E0OzExMTEgMTE2NiAxMUIzO0QzQTQ7MTExMSAxMTY2IDExQjM7CitEM0E1O0QzQTU7MTExMSAxMTY2IDExQjQ7RDNBNTsxMTExIDExNjYgMTFCNDsKK0QzQTY7RDNBNjsxMTExIDExNjYgMTFCNTtEM0E2OzExMTEgMTE2NiAxMUI1OworRDNBNztEM0E3OzExMTEgMTE2NiAxMUI2O0QzQTc7MTExMSAxMTY2IDExQjY7CitEM0E4O0QzQTg7MTExMSAxMTY2IDExQjc7RDNBODsxMTExIDExNjYgMTFCNzsKK0QzQTk7RDNBOTsxMTExIDExNjYgMTFCODtEM0E5OzExMTEgMTE2NiAxMUI4OworRDNBQTtEM0FBOzExMTEgMTE2NiAxMUI5O0QzQUE7MTExMSAxMTY2IDExQjk7CitEM0FCO0QzQUI7MTExMSAxMTY2IDExQkE7RDNBQjsxMTExIDExNjYgMTFCQTsKK0QzQUM7RDNBQzsxMTExIDExNjYgMTFCQjtEM0FDOzExMTEgMTE2NiAxMUJCOworRDNBRDtEM0FEOzExMTEgMTE2NiAxMUJDO0QzQUQ7MTExMSAxMTY2IDExQkM7CitEM0FFO0QzQUU7MTExMSAxMTY2IDExQkQ7RDNBRTsxMTExIDExNjYgMTFCRDsKK0QzQUY7RDNBRjsxMTExIDExNjYgMTFCRTtEM0FGOzExMTEgMTE2NiAxMUJFOworRDNCMDtEM0IwOzExMTEgMTE2NiAxMUJGO0QzQjA7MTExMSAxMTY2IDExQkY7CitEM0IxO0QzQjE7MTExMSAxMTY2IDExQzA7RDNCMTsxMTExIDExNjYgMTFDMDsKK0QzQjI7RDNCMjsxMTExIDExNjYgMTFDMTtEM0IyOzExMTEgMTE2NiAxMUMxOworRDNCMztEM0IzOzExMTEgMTE2NiAxMUMyO0QzQjM7MTExMSAxMTY2IDExQzI7CitEM0I0O0QzQjQ7MTExMSAxMTY3O0QzQjQ7MTExMSAxMTY3OworRDNCNTtEM0I1OzExMTEgMTE2NyAxMUE4O0QzQjU7MTExMSAxMTY3IDExQTg7CitEM0I2O0QzQjY7MTExMSAxMTY3IDExQTk7RDNCNjsxMTExIDExNjcgMTFBOTsKK0QzQjc7RDNCNzsxMTExIDExNjcgMTFBQTtEM0I3OzExMTEgMTE2NyAxMUFBOworRDNCODtEM0I4OzExMTEgMTE2NyAxMUFCO0QzQjg7MTExMSAxMTY3IDExQUI7CitEM0I5O0QzQjk7MTExMSAxMTY3IDExQUM7RDNCOTsxMTExIDExNjcgMTFBQzsKK0QzQkE7RDNCQTsxMTExIDExNjcgMTFBRDtEM0JBOzExMTEgMTE2NyAxMUFEOworRDNCQjtEM0JCOzExMTEgMTE2NyAxMUFFO0QzQkI7MTExMSAxMTY3IDExQUU7CitEM0JDO0QzQkM7MTExMSAxMTY3IDExQUY7RDNCQzsxMTExIDExNjcgMTFBRjsKK0QzQkQ7RDNCRDsxMTExIDExNjcgMTFCMDtEM0JEOzExMTEgMTE2NyAxMUIwOworRDNCRTtEM0JFOzExMTEgMTE2NyAxMUIxO0QzQkU7MTExMSAxMTY3IDExQjE7CitEM0JGO0QzQkY7MTExMSAxMTY3IDExQjI7RDNCRjsxMTExIDExNjcgMTFCMjsKK0QzQzA7RDNDMDsxMTExIDExNjcgMTFCMztEM0MwOzExMTEgMTE2NyAxMUIzOworRDNDMTtEM0MxOzExMTEgMTE2NyAxMUI0O0QzQzE7MTExMSAxMTY3IDExQjQ7CitEM0MyO0QzQzI7MTExMSAxMTY3IDExQjU7RDNDMjsxMTExIDExNjcgMTFCNTsKK0QzQzM7RDNDMzsxMTExIDExNjcgMTFCNjtEM0MzOzExMTEgMTE2NyAxMUI2OworRDNDNDtEM0M0OzExMTEgMTE2NyAxMUI3O0QzQzQ7MTExMSAxMTY3IDExQjc7CitEM0M1O0QzQzU7MTExMSAxMTY3IDExQjg7RDNDNTsxMTExIDExNjcgMTFCODsKK0QzQzY7RDNDNjsxMTExIDExNjcgMTFCOTtEM0M2OzExMTEgMTE2NyAxMUI5OworRDNDNztEM0M3OzExMTEgMTE2NyAxMUJBO0QzQzc7MTExMSAxMTY3IDExQkE7CitEM0M4O0QzQzg7MTExMSAxMTY3IDExQkI7RDNDODsxMTExIDExNjcgMTFCQjsKK0QzQzk7RDNDOTsxMTExIDExNjcgMTFCQztEM0M5OzExMTEgMTE2NyAxMUJDOworRDNDQTtEM0NBOzExMTEgMTE2NyAxMUJEO0QzQ0E7MTExMSAxMTY3IDExQkQ7CitEM0NCO0QzQ0I7MTExMSAxMTY3IDExQkU7RDNDQjsxMTExIDExNjcgMTFCRTsKK0QzQ0M7RDNDQzsxMTExIDExNjcgMTFCRjtEM0NDOzExMTEgMTE2NyAxMUJGOworRDNDRDtEM0NEOzExMTEgMTE2NyAxMUMwO0QzQ0Q7MTExMSAxMTY3IDExQzA7CitEM0NFO0QzQ0U7MTExMSAxMTY3IDExQzE7RDNDRTsxMTExIDExNjcgMTFDMTsKK0QzQ0Y7RDNDRjsxMTExIDExNjcgMTFDMjtEM0NGOzExMTEgMTE2NyAxMUMyOworRDNEMDtEM0QwOzExMTEgMTE2ODtEM0QwOzExMTEgMTE2ODsKK0QzRDE7RDNEMTsxMTExIDExNjggMTFBODtEM0QxOzExMTEgMTE2OCAxMUE4OworRDNEMjtEM0QyOzExMTEgMTE2OCAxMUE5O0QzRDI7MTExMSAxMTY4IDExQTk7CitEM0QzO0QzRDM7MTExMSAxMTY4IDExQUE7RDNEMzsxMTExIDExNjggMTFBQTsKK0QzRDQ7RDNENDsxMTExIDExNjggMTFBQjtEM0Q0OzExMTEgMTE2OCAxMUFCOworRDNENTtEM0Q1OzExMTEgMTE2OCAxMUFDO0QzRDU7MTExMSAxMTY4IDExQUM7CitEM0Q2O0QzRDY7MTExMSAxMTY4IDExQUQ7RDNENjsxMTExIDExNjggMTFBRDsKK0QzRDc7RDNENzsxMTExIDExNjggMTFBRTtEM0Q3OzExMTEgMTE2OCAxMUFFOworRDNEODtEM0Q4OzExMTEgMTE2OCAxMUFGO0QzRDg7MTExMSAxMTY4IDExQUY7CitEM0Q5O0QzRDk7MTExMSAxMTY4IDExQjA7RDNEOTsxMTExIDExNjggMTFCMDsKK0QzREE7RDNEQTsxMTExIDExNjggMTFCMTtEM0RBOzExMTEgMTE2OCAxMUIxOworRDNEQjtEM0RCOzExMTEgMTE2OCAxMUIyO0QzREI7MTExMSAxMTY4IDExQjI7CitEM0RDO0QzREM7MTExMSAxMTY4IDExQjM7RDNEQzsxMTExIDExNjggMTFCMzsKK0QzREQ7RDNERDsxMTExIDExNjggMTFCNDtEM0REOzExMTEgMTE2OCAxMUI0OworRDNERTtEM0RFOzExMTEgMTE2OCAxMUI1O0QzREU7MTExMSAxMTY4IDExQjU7CitEM0RGO0QzREY7MTExMSAxMTY4IDExQjY7RDNERjsxMTExIDExNjggMTFCNjsKK0QzRTA7RDNFMDsxMTExIDExNjggMTFCNztEM0UwOzExMTEgMTE2OCAxMUI3OworRDNFMTtEM0UxOzExMTEgMTE2OCAxMUI4O0QzRTE7MTExMSAxMTY4IDExQjg7CitEM0UyO0QzRTI7MTExMSAxMTY4IDExQjk7RDNFMjsxMTExIDExNjggMTFCOTsKK0QzRTM7RDNFMzsxMTExIDExNjggMTFCQTtEM0UzOzExMTEgMTE2OCAxMUJBOworRDNFNDtEM0U0OzExMTEgMTE2OCAxMUJCO0QzRTQ7MTExMSAxMTY4IDExQkI7CitEM0U1O0QzRTU7MTExMSAxMTY4IDExQkM7RDNFNTsxMTExIDExNjggMTFCQzsKK0QzRTY7RDNFNjsxMTExIDExNjggMTFCRDtEM0U2OzExMTEgMTE2OCAxMUJEOworRDNFNztEM0U3OzExMTEgMTE2OCAxMUJFO0QzRTc7MTExMSAxMTY4IDExQkU7CitEM0U4O0QzRTg7MTExMSAxMTY4IDExQkY7RDNFODsxMTExIDExNjggMTFCRjsKK0QzRTk7RDNFOTsxMTExIDExNjggMTFDMDtEM0U5OzExMTEgMTE2OCAxMUMwOworRDNFQTtEM0VBOzExMTEgMTE2OCAxMUMxO0QzRUE7MTExMSAxMTY4IDExQzE7CitEM0VCO0QzRUI7MTExMSAxMTY4IDExQzI7RDNFQjsxMTExIDExNjggMTFDMjsKK0QzRUM7RDNFQzsxMTExIDExNjk7RDNFQzsxMTExIDExNjk7CitEM0VEO0QzRUQ7MTExMSAxMTY5IDExQTg7RDNFRDsxMTExIDExNjkgMTFBODsKK0QzRUU7RDNFRTsxMTExIDExNjkgMTFBOTtEM0VFOzExMTEgMTE2OSAxMUE5OworRDNFRjtEM0VGOzExMTEgMTE2OSAxMUFBO0QzRUY7MTExMSAxMTY5IDExQUE7CitEM0YwO0QzRjA7MTExMSAxMTY5IDExQUI7RDNGMDsxMTExIDExNjkgMTFBQjsKK0QzRjE7RDNGMTsxMTExIDExNjkgMTFBQztEM0YxOzExMTEgMTE2OSAxMUFDOworRDNGMjtEM0YyOzExMTEgMTE2OSAxMUFEO0QzRjI7MTExMSAxMTY5IDExQUQ7CitEM0YzO0QzRjM7MTExMSAxMTY5IDExQUU7RDNGMzsxMTExIDExNjkgMTFBRTsKK0QzRjQ7RDNGNDsxMTExIDExNjkgMTFBRjtEM0Y0OzExMTEgMTE2OSAxMUFGOworRDNGNTtEM0Y1OzExMTEgMTE2OSAxMUIwO0QzRjU7MTExMSAxMTY5IDExQjA7CitEM0Y2O0QzRjY7MTExMSAxMTY5IDExQjE7RDNGNjsxMTExIDExNjkgMTFCMTsKK0QzRjc7RDNGNzsxMTExIDExNjkgMTFCMjtEM0Y3OzExMTEgMTE2OSAxMUIyOworRDNGODtEM0Y4OzExMTEgMTE2OSAxMUIzO0QzRjg7MTExMSAxMTY5IDExQjM7CitEM0Y5O0QzRjk7MTExMSAxMTY5IDExQjQ7RDNGOTsxMTExIDExNjkgMTFCNDsKK0QzRkE7RDNGQTsxMTExIDExNjkgMTFCNTtEM0ZBOzExMTEgMTE2OSAxMUI1OworRDNGQjtEM0ZCOzExMTEgMTE2OSAxMUI2O0QzRkI7MTExMSAxMTY5IDExQjY7CitEM0ZDO0QzRkM7MTExMSAxMTY5IDExQjc7RDNGQzsxMTExIDExNjkgMTFCNzsKK0QzRkQ7RDNGRDsxMTExIDExNjkgMTFCODtEM0ZEOzExMTEgMTE2OSAxMUI4OworRDNGRTtEM0ZFOzExMTEgMTE2OSAxMUI5O0QzRkU7MTExMSAxMTY5IDExQjk7CitEM0ZGO0QzRkY7MTExMSAxMTY5IDExQkE7RDNGRjsxMTExIDExNjkgMTFCQTsKK0Q0MDA7RDQwMDsxMTExIDExNjkgMTFCQjtENDAwOzExMTEgMTE2OSAxMUJCOworRDQwMTtENDAxOzExMTEgMTE2OSAxMUJDO0Q0MDE7MTExMSAxMTY5IDExQkM7CitENDAyO0Q0MDI7MTExMSAxMTY5IDExQkQ7RDQwMjsxMTExIDExNjkgMTFCRDsKK0Q0MDM7RDQwMzsxMTExIDExNjkgMTFCRTtENDAzOzExMTEgMTE2OSAxMUJFOworRDQwNDtENDA0OzExMTEgMTE2OSAxMUJGO0Q0MDQ7MTExMSAxMTY5IDExQkY7CitENDA1O0Q0MDU7MTExMSAxMTY5IDExQzA7RDQwNTsxMTExIDExNjkgMTFDMDsKK0Q0MDY7RDQwNjsxMTExIDExNjkgMTFDMTtENDA2OzExMTEgMTE2OSAxMUMxOworRDQwNztENDA3OzExMTEgMTE2OSAxMUMyO0Q0MDc7MTExMSAxMTY5IDExQzI7CitENDA4O0Q0MDg7MTExMSAxMTZBO0Q0MDg7MTExMSAxMTZBOworRDQwOTtENDA5OzExMTEgMTE2QSAxMUE4O0Q0MDk7MTExMSAxMTZBIDExQTg7CitENDBBO0Q0MEE7MTExMSAxMTZBIDExQTk7RDQwQTsxMTExIDExNkEgMTFBOTsKK0Q0MEI7RDQwQjsxMTExIDExNkEgMTFBQTtENDBCOzExMTEgMTE2QSAxMUFBOworRDQwQztENDBDOzExMTEgMTE2QSAxMUFCO0Q0MEM7MTExMSAxMTZBIDExQUI7CitENDBEO0Q0MEQ7MTExMSAxMTZBIDExQUM7RDQwRDsxMTExIDExNkEgMTFBQzsKK0Q0MEU7RDQwRTsxMTExIDExNkEgMTFBRDtENDBFOzExMTEgMTE2QSAxMUFEOworRDQwRjtENDBGOzExMTEgMTE2QSAxMUFFO0Q0MEY7MTExMSAxMTZBIDExQUU7CitENDEwO0Q0MTA7MTExMSAxMTZBIDExQUY7RDQxMDsxMTExIDExNkEgMTFBRjsKK0Q0MTE7RDQxMTsxMTExIDExNkEgMTFCMDtENDExOzExMTEgMTE2QSAxMUIwOworRDQxMjtENDEyOzExMTEgMTE2QSAxMUIxO0Q0MTI7MTExMSAxMTZBIDExQjE7CitENDEzO0Q0MTM7MTExMSAxMTZBIDExQjI7RDQxMzsxMTExIDExNkEgMTFCMjsKK0Q0MTQ7RDQxNDsxMTExIDExNkEgMTFCMztENDE0OzExMTEgMTE2QSAxMUIzOworRDQxNTtENDE1OzExMTEgMTE2QSAxMUI0O0Q0MTU7MTExMSAxMTZBIDExQjQ7CitENDE2O0Q0MTY7MTExMSAxMTZBIDExQjU7RDQxNjsxMTExIDExNkEgMTFCNTsKK0Q0MTc7RDQxNzsxMTExIDExNkEgMTFCNjtENDE3OzExMTEgMTE2QSAxMUI2OworRDQxODtENDE4OzExMTEgMTE2QSAxMUI3O0Q0MTg7MTExMSAxMTZBIDExQjc7CitENDE5O0Q0MTk7MTExMSAxMTZBIDExQjg7RDQxOTsxMTExIDExNkEgMTFCODsKK0Q0MUE7RDQxQTsxMTExIDExNkEgMTFCOTtENDFBOzExMTEgMTE2QSAxMUI5OworRDQxQjtENDFCOzExMTEgMTE2QSAxMUJBO0Q0MUI7MTExMSAxMTZBIDExQkE7CitENDFDO0Q0MUM7MTExMSAxMTZBIDExQkI7RDQxQzsxMTExIDExNkEgMTFCQjsKK0Q0MUQ7RDQxRDsxMTExIDExNkEgMTFCQztENDFEOzExMTEgMTE2QSAxMUJDOworRDQxRTtENDFFOzExMTEgMTE2QSAxMUJEO0Q0MUU7MTExMSAxMTZBIDExQkQ7CitENDFGO0Q0MUY7MTExMSAxMTZBIDExQkU7RDQxRjsxMTExIDExNkEgMTFCRTsKK0Q0MjA7RDQyMDsxMTExIDExNkEgMTFCRjtENDIwOzExMTEgMTE2QSAxMUJGOworRDQyMTtENDIxOzExMTEgMTE2QSAxMUMwO0Q0MjE7MTExMSAxMTZBIDExQzA7CitENDIyO0Q0MjI7MTExMSAxMTZBIDExQzE7RDQyMjsxMTExIDExNkEgMTFDMTsKK0Q0MjM7RDQyMzsxMTExIDExNkEgMTFDMjtENDIzOzExMTEgMTE2QSAxMUMyOworRDQyNDtENDI0OzExMTEgMTE2QjtENDI0OzExMTEgMTE2QjsKK0Q0MjU7RDQyNTsxMTExIDExNkIgMTFBODtENDI1OzExMTEgMTE2QiAxMUE4OworRDQyNjtENDI2OzExMTEgMTE2QiAxMUE5O0Q0MjY7MTExMSAxMTZCIDExQTk7CitENDI3O0Q0Mjc7MTExMSAxMTZCIDExQUE7RDQyNzsxMTExIDExNkIgMTFBQTsKK0Q0Mjg7RDQyODsxMTExIDExNkIgMTFBQjtENDI4OzExMTEgMTE2QiAxMUFCOworRDQyOTtENDI5OzExMTEgMTE2QiAxMUFDO0Q0Mjk7MTExMSAxMTZCIDExQUM7CitENDJBO0Q0MkE7MTExMSAxMTZCIDExQUQ7RDQyQTsxMTExIDExNkIgMTFBRDsKK0Q0MkI7RDQyQjsxMTExIDExNkIgMTFBRTtENDJCOzExMTEgMTE2QiAxMUFFOworRDQyQztENDJDOzExMTEgMTE2QiAxMUFGO0Q0MkM7MTExMSAxMTZCIDExQUY7CitENDJEO0Q0MkQ7MTExMSAxMTZCIDExQjA7RDQyRDsxMTExIDExNkIgMTFCMDsKK0Q0MkU7RDQyRTsxMTExIDExNkIgMTFCMTtENDJFOzExMTEgMTE2QiAxMUIxOworRDQyRjtENDJGOzExMTEgMTE2QiAxMUIyO0Q0MkY7MTExMSAxMTZCIDExQjI7CitENDMwO0Q0MzA7MTExMSAxMTZCIDExQjM7RDQzMDsxMTExIDExNkIgMTFCMzsKK0Q0MzE7RDQzMTsxMTExIDExNkIgMTFCNDtENDMxOzExMTEgMTE2QiAxMUI0OworRDQzMjtENDMyOzExMTEgMTE2QiAxMUI1O0Q0MzI7MTExMSAxMTZCIDExQjU7CitENDMzO0Q0MzM7MTExMSAxMTZCIDExQjY7RDQzMzsxMTExIDExNkIgMTFCNjsKK0Q0MzQ7RDQzNDsxMTExIDExNkIgMTFCNztENDM0OzExMTEgMTE2QiAxMUI3OworRDQzNTtENDM1OzExMTEgMTE2QiAxMUI4O0Q0MzU7MTExMSAxMTZCIDExQjg7CitENDM2O0Q0MzY7MTExMSAxMTZCIDExQjk7RDQzNjsxMTExIDExNkIgMTFCOTsKK0Q0Mzc7RDQzNzsxMTExIDExNkIgMTFCQTtENDM3OzExMTEgMTE2QiAxMUJBOworRDQzODtENDM4OzExMTEgMTE2QiAxMUJCO0Q0Mzg7MTExMSAxMTZCIDExQkI7CitENDM5O0Q0Mzk7MTExMSAxMTZCIDExQkM7RDQzOTsxMTExIDExNkIgMTFCQzsKK0Q0M0E7RDQzQTsxMTExIDExNkIgMTFCRDtENDNBOzExMTEgMTE2QiAxMUJEOworRDQzQjtENDNCOzExMTEgMTE2QiAxMUJFO0Q0M0I7MTExMSAxMTZCIDExQkU7CitENDNDO0Q0M0M7MTExMSAxMTZCIDExQkY7RDQzQzsxMTExIDExNkIgMTFCRjsKK0Q0M0Q7RDQzRDsxMTExIDExNkIgMTFDMDtENDNEOzExMTEgMTE2QiAxMUMwOworRDQzRTtENDNFOzExMTEgMTE2QiAxMUMxO0Q0M0U7MTExMSAxMTZCIDExQzE7CitENDNGO0Q0M0Y7MTExMSAxMTZCIDExQzI7RDQzRjsxMTExIDExNkIgMTFDMjsKK0Q0NDA7RDQ0MDsxMTExIDExNkM7RDQ0MDsxMTExIDExNkM7CitENDQxO0Q0NDE7MTExMSAxMTZDIDExQTg7RDQ0MTsxMTExIDExNkMgMTFBODsKK0Q0NDI7RDQ0MjsxMTExIDExNkMgMTFBOTtENDQyOzExMTEgMTE2QyAxMUE5OworRDQ0MztENDQzOzExMTEgMTE2QyAxMUFBO0Q0NDM7MTExMSAxMTZDIDExQUE7CitENDQ0O0Q0NDQ7MTExMSAxMTZDIDExQUI7RDQ0NDsxMTExIDExNkMgMTFBQjsKK0Q0NDU7RDQ0NTsxMTExIDExNkMgMTFBQztENDQ1OzExMTEgMTE2QyAxMUFDOworRDQ0NjtENDQ2OzExMTEgMTE2QyAxMUFEO0Q0NDY7MTExMSAxMTZDIDExQUQ7CitENDQ3O0Q0NDc7MTExMSAxMTZDIDExQUU7RDQ0NzsxMTExIDExNkMgMTFBRTsKK0Q0NDg7RDQ0ODsxMTExIDExNkMgMTFBRjtENDQ4OzExMTEgMTE2QyAxMUFGOworRDQ0OTtENDQ5OzExMTEgMTE2QyAxMUIwO0Q0NDk7MTExMSAxMTZDIDExQjA7CitENDRBO0Q0NEE7MTExMSAxMTZDIDExQjE7RDQ0QTsxMTExIDExNkMgMTFCMTsKK0Q0NEI7RDQ0QjsxMTExIDExNkMgMTFCMjtENDRCOzExMTEgMTE2QyAxMUIyOworRDQ0QztENDRDOzExMTEgMTE2QyAxMUIzO0Q0NEM7MTExMSAxMTZDIDExQjM7CitENDREO0Q0NEQ7MTExMSAxMTZDIDExQjQ7RDQ0RDsxMTExIDExNkMgMTFCNDsKK0Q0NEU7RDQ0RTsxMTExIDExNkMgMTFCNTtENDRFOzExMTEgMTE2QyAxMUI1OworRDQ0RjtENDRGOzExMTEgMTE2QyAxMUI2O0Q0NEY7MTExMSAxMTZDIDExQjY7CitENDUwO0Q0NTA7MTExMSAxMTZDIDExQjc7RDQ1MDsxMTExIDExNkMgMTFCNzsKK0Q0NTE7RDQ1MTsxMTExIDExNkMgMTFCODtENDUxOzExMTEgMTE2QyAxMUI4OworRDQ1MjtENDUyOzExMTEgMTE2QyAxMUI5O0Q0NTI7MTExMSAxMTZDIDExQjk7CitENDUzO0Q0NTM7MTExMSAxMTZDIDExQkE7RDQ1MzsxMTExIDExNkMgMTFCQTsKK0Q0NTQ7RDQ1NDsxMTExIDExNkMgMTFCQjtENDU0OzExMTEgMTE2QyAxMUJCOworRDQ1NTtENDU1OzExMTEgMTE2QyAxMUJDO0Q0NTU7MTExMSAxMTZDIDExQkM7CitENDU2O0Q0NTY7MTExMSAxMTZDIDExQkQ7RDQ1NjsxMTExIDExNkMgMTFCRDsKK0Q0NTc7RDQ1NzsxMTExIDExNkMgMTFCRTtENDU3OzExMTEgMTE2QyAxMUJFOworRDQ1ODtENDU4OzExMTEgMTE2QyAxMUJGO0Q0NTg7MTExMSAxMTZDIDExQkY7CitENDU5O0Q0NTk7MTExMSAxMTZDIDExQzA7RDQ1OTsxMTExIDExNkMgMTFDMDsKK0Q0NUE7RDQ1QTsxMTExIDExNkMgMTFDMTtENDVBOzExMTEgMTE2QyAxMUMxOworRDQ1QjtENDVCOzExMTEgMTE2QyAxMUMyO0Q0NUI7MTExMSAxMTZDIDExQzI7CitENDVDO0Q0NUM7MTExMSAxMTZEO0Q0NUM7MTExMSAxMTZEOworRDQ1RDtENDVEOzExMTEgMTE2RCAxMUE4O0Q0NUQ7MTExMSAxMTZEIDExQTg7CitENDVFO0Q0NUU7MTExMSAxMTZEIDExQTk7RDQ1RTsxMTExIDExNkQgMTFBOTsKK0Q0NUY7RDQ1RjsxMTExIDExNkQgMTFBQTtENDVGOzExMTEgMTE2RCAxMUFBOworRDQ2MDtENDYwOzExMTEgMTE2RCAxMUFCO0Q0NjA7MTExMSAxMTZEIDExQUI7CitENDYxO0Q0NjE7MTExMSAxMTZEIDExQUM7RDQ2MTsxMTExIDExNkQgMTFBQzsKK0Q0NjI7RDQ2MjsxMTExIDExNkQgMTFBRDtENDYyOzExMTEgMTE2RCAxMUFEOworRDQ2MztENDYzOzExMTEgMTE2RCAxMUFFO0Q0NjM7MTExMSAxMTZEIDExQUU7CitENDY0O0Q0NjQ7MTExMSAxMTZEIDExQUY7RDQ2NDsxMTExIDExNkQgMTFBRjsKK0Q0NjU7RDQ2NTsxMTExIDExNkQgMTFCMDtENDY1OzExMTEgMTE2RCAxMUIwOworRDQ2NjtENDY2OzExMTEgMTE2RCAxMUIxO0Q0NjY7MTExMSAxMTZEIDExQjE7CitENDY3O0Q0Njc7MTExMSAxMTZEIDExQjI7RDQ2NzsxMTExIDExNkQgMTFCMjsKK0Q0Njg7RDQ2ODsxMTExIDExNkQgMTFCMztENDY4OzExMTEgMTE2RCAxMUIzOworRDQ2OTtENDY5OzExMTEgMTE2RCAxMUI0O0Q0Njk7MTExMSAxMTZEIDExQjQ7CitENDZBO0Q0NkE7MTExMSAxMTZEIDExQjU7RDQ2QTsxMTExIDExNkQgMTFCNTsKK0Q0NkI7RDQ2QjsxMTExIDExNkQgMTFCNjtENDZCOzExMTEgMTE2RCAxMUI2OworRDQ2QztENDZDOzExMTEgMTE2RCAxMUI3O0Q0NkM7MTExMSAxMTZEIDExQjc7CitENDZEO0Q0NkQ7MTExMSAxMTZEIDExQjg7RDQ2RDsxMTExIDExNkQgMTFCODsKK0Q0NkU7RDQ2RTsxMTExIDExNkQgMTFCOTtENDZFOzExMTEgMTE2RCAxMUI5OworRDQ2RjtENDZGOzExMTEgMTE2RCAxMUJBO0Q0NkY7MTExMSAxMTZEIDExQkE7CitENDcwO0Q0NzA7MTExMSAxMTZEIDExQkI7RDQ3MDsxMTExIDExNkQgMTFCQjsKK0Q0NzE7RDQ3MTsxMTExIDExNkQgMTFCQztENDcxOzExMTEgMTE2RCAxMUJDOworRDQ3MjtENDcyOzExMTEgMTE2RCAxMUJEO0Q0NzI7MTExMSAxMTZEIDExQkQ7CitENDczO0Q0NzM7MTExMSAxMTZEIDExQkU7RDQ3MzsxMTExIDExNkQgMTFCRTsKK0Q0NzQ7RDQ3NDsxMTExIDExNkQgMTFCRjtENDc0OzExMTEgMTE2RCAxMUJGOworRDQ3NTtENDc1OzExMTEgMTE2RCAxMUMwO0Q0NzU7MTExMSAxMTZEIDExQzA7CitENDc2O0Q0NzY7MTExMSAxMTZEIDExQzE7RDQ3NjsxMTExIDExNkQgMTFDMTsKK0Q0Nzc7RDQ3NzsxMTExIDExNkQgMTFDMjtENDc3OzExMTEgMTE2RCAxMUMyOworRDQ3ODtENDc4OzExMTEgMTE2RTtENDc4OzExMTEgMTE2RTsKK0Q0Nzk7RDQ3OTsxMTExIDExNkUgMTFBODtENDc5OzExMTEgMTE2RSAxMUE4OworRDQ3QTtENDdBOzExMTEgMTE2RSAxMUE5O0Q0N0E7MTExMSAxMTZFIDExQTk7CitENDdCO0Q0N0I7MTExMSAxMTZFIDExQUE7RDQ3QjsxMTExIDExNkUgMTFBQTsKK0Q0N0M7RDQ3QzsxMTExIDExNkUgMTFBQjtENDdDOzExMTEgMTE2RSAxMUFCOworRDQ3RDtENDdEOzExMTEgMTE2RSAxMUFDO0Q0N0Q7MTExMSAxMTZFIDExQUM7CitENDdFO0Q0N0U7MTExMSAxMTZFIDExQUQ7RDQ3RTsxMTExIDExNkUgMTFBRDsKK0Q0N0Y7RDQ3RjsxMTExIDExNkUgMTFBRTtENDdGOzExMTEgMTE2RSAxMUFFOworRDQ4MDtENDgwOzExMTEgMTE2RSAxMUFGO0Q0ODA7MTExMSAxMTZFIDExQUY7CitENDgxO0Q0ODE7MTExMSAxMTZFIDExQjA7RDQ4MTsxMTExIDExNkUgMTFCMDsKK0Q0ODI7RDQ4MjsxMTExIDExNkUgMTFCMTtENDgyOzExMTEgMTE2RSAxMUIxOworRDQ4MztENDgzOzExMTEgMTE2RSAxMUIyO0Q0ODM7MTExMSAxMTZFIDExQjI7CitENDg0O0Q0ODQ7MTExMSAxMTZFIDExQjM7RDQ4NDsxMTExIDExNkUgMTFCMzsKK0Q0ODU7RDQ4NTsxMTExIDExNkUgMTFCNDtENDg1OzExMTEgMTE2RSAxMUI0OworRDQ4NjtENDg2OzExMTEgMTE2RSAxMUI1O0Q0ODY7MTExMSAxMTZFIDExQjU7CitENDg3O0Q0ODc7MTExMSAxMTZFIDExQjY7RDQ4NzsxMTExIDExNkUgMTFCNjsKK0Q0ODg7RDQ4ODsxMTExIDExNkUgMTFCNztENDg4OzExMTEgMTE2RSAxMUI3OworRDQ4OTtENDg5OzExMTEgMTE2RSAxMUI4O0Q0ODk7MTExMSAxMTZFIDExQjg7CitENDhBO0Q0OEE7MTExMSAxMTZFIDExQjk7RDQ4QTsxMTExIDExNkUgMTFCOTsKK0Q0OEI7RDQ4QjsxMTExIDExNkUgMTFCQTtENDhCOzExMTEgMTE2RSAxMUJBOworRDQ4QztENDhDOzExMTEgMTE2RSAxMUJCO0Q0OEM7MTExMSAxMTZFIDExQkI7CitENDhEO0Q0OEQ7MTExMSAxMTZFIDExQkM7RDQ4RDsxMTExIDExNkUgMTFCQzsKK0Q0OEU7RDQ4RTsxMTExIDExNkUgMTFCRDtENDhFOzExMTEgMTE2RSAxMUJEOworRDQ4RjtENDhGOzExMTEgMTE2RSAxMUJFO0Q0OEY7MTExMSAxMTZFIDExQkU7CitENDkwO0Q0OTA7MTExMSAxMTZFIDExQkY7RDQ5MDsxMTExIDExNkUgMTFCRjsKK0Q0OTE7RDQ5MTsxMTExIDExNkUgMTFDMDtENDkxOzExMTEgMTE2RSAxMUMwOworRDQ5MjtENDkyOzExMTEgMTE2RSAxMUMxO0Q0OTI7MTExMSAxMTZFIDExQzE7CitENDkzO0Q0OTM7MTExMSAxMTZFIDExQzI7RDQ5MzsxMTExIDExNkUgMTFDMjsKK0Q0OTQ7RDQ5NDsxMTExIDExNkY7RDQ5NDsxMTExIDExNkY7CitENDk1O0Q0OTU7MTExMSAxMTZGIDExQTg7RDQ5NTsxMTExIDExNkYgMTFBODsKK0Q0OTY7RDQ5NjsxMTExIDExNkYgMTFBOTtENDk2OzExMTEgMTE2RiAxMUE5OworRDQ5NztENDk3OzExMTEgMTE2RiAxMUFBO0Q0OTc7MTExMSAxMTZGIDExQUE7CitENDk4O0Q0OTg7MTExMSAxMTZGIDExQUI7RDQ5ODsxMTExIDExNkYgMTFBQjsKK0Q0OTk7RDQ5OTsxMTExIDExNkYgMTFBQztENDk5OzExMTEgMTE2RiAxMUFDOworRDQ5QTtENDlBOzExMTEgMTE2RiAxMUFEO0Q0OUE7MTExMSAxMTZGIDExQUQ7CitENDlCO0Q0OUI7MTExMSAxMTZGIDExQUU7RDQ5QjsxMTExIDExNkYgMTFBRTsKK0Q0OUM7RDQ5QzsxMTExIDExNkYgMTFBRjtENDlDOzExMTEgMTE2RiAxMUFGOworRDQ5RDtENDlEOzExMTEgMTE2RiAxMUIwO0Q0OUQ7MTExMSAxMTZGIDExQjA7CitENDlFO0Q0OUU7MTExMSAxMTZGIDExQjE7RDQ5RTsxMTExIDExNkYgMTFCMTsKK0Q0OUY7RDQ5RjsxMTExIDExNkYgMTFCMjtENDlGOzExMTEgMTE2RiAxMUIyOworRDRBMDtENEEwOzExMTEgMTE2RiAxMUIzO0Q0QTA7MTExMSAxMTZGIDExQjM7CitENEExO0Q0QTE7MTExMSAxMTZGIDExQjQ7RDRBMTsxMTExIDExNkYgMTFCNDsKK0Q0QTI7RDRBMjsxMTExIDExNkYgMTFCNTtENEEyOzExMTEgMTE2RiAxMUI1OworRDRBMztENEEzOzExMTEgMTE2RiAxMUI2O0Q0QTM7MTExMSAxMTZGIDExQjY7CitENEE0O0Q0QTQ7MTExMSAxMTZGIDExQjc7RDRBNDsxMTExIDExNkYgMTFCNzsKK0Q0QTU7RDRBNTsxMTExIDExNkYgMTFCODtENEE1OzExMTEgMTE2RiAxMUI4OworRDRBNjtENEE2OzExMTEgMTE2RiAxMUI5O0Q0QTY7MTExMSAxMTZGIDExQjk7CitENEE3O0Q0QTc7MTExMSAxMTZGIDExQkE7RDRBNzsxMTExIDExNkYgMTFCQTsKK0Q0QTg7RDRBODsxMTExIDExNkYgMTFCQjtENEE4OzExMTEgMTE2RiAxMUJCOworRDRBOTtENEE5OzExMTEgMTE2RiAxMUJDO0Q0QTk7MTExMSAxMTZGIDExQkM7CitENEFBO0Q0QUE7MTExMSAxMTZGIDExQkQ7RDRBQTsxMTExIDExNkYgMTFCRDsKK0Q0QUI7RDRBQjsxMTExIDExNkYgMTFCRTtENEFCOzExMTEgMTE2RiAxMUJFOworRDRBQztENEFDOzExMTEgMTE2RiAxMUJGO0Q0QUM7MTExMSAxMTZGIDExQkY7CitENEFEO0Q0QUQ7MTExMSAxMTZGIDExQzA7RDRBRDsxMTExIDExNkYgMTFDMDsKK0Q0QUU7RDRBRTsxMTExIDExNkYgMTFDMTtENEFFOzExMTEgMTE2RiAxMUMxOworRDRBRjtENEFGOzExMTEgMTE2RiAxMUMyO0Q0QUY7MTExMSAxMTZGIDExQzI7CitENEIwO0Q0QjA7MTExMSAxMTcwO0Q0QjA7MTExMSAxMTcwOworRDRCMTtENEIxOzExMTEgMTE3MCAxMUE4O0Q0QjE7MTExMSAxMTcwIDExQTg7CitENEIyO0Q0QjI7MTExMSAxMTcwIDExQTk7RDRCMjsxMTExIDExNzAgMTFBOTsKK0Q0QjM7RDRCMzsxMTExIDExNzAgMTFBQTtENEIzOzExMTEgMTE3MCAxMUFBOworRDRCNDtENEI0OzExMTEgMTE3MCAxMUFCO0Q0QjQ7MTExMSAxMTcwIDExQUI7CitENEI1O0Q0QjU7MTExMSAxMTcwIDExQUM7RDRCNTsxMTExIDExNzAgMTFBQzsKK0Q0QjY7RDRCNjsxMTExIDExNzAgMTFBRDtENEI2OzExMTEgMTE3MCAxMUFEOworRDRCNztENEI3OzExMTEgMTE3MCAxMUFFO0Q0Qjc7MTExMSAxMTcwIDExQUU7CitENEI4O0Q0Qjg7MTExMSAxMTcwIDExQUY7RDRCODsxMTExIDExNzAgMTFBRjsKK0Q0Qjk7RDRCOTsxMTExIDExNzAgMTFCMDtENEI5OzExMTEgMTE3MCAxMUIwOworRDRCQTtENEJBOzExMTEgMTE3MCAxMUIxO0Q0QkE7MTExMSAxMTcwIDExQjE7CitENEJCO0Q0QkI7MTExMSAxMTcwIDExQjI7RDRCQjsxMTExIDExNzAgMTFCMjsKK0Q0QkM7RDRCQzsxMTExIDExNzAgMTFCMztENEJDOzExMTEgMTE3MCAxMUIzOworRDRCRDtENEJEOzExMTEgMTE3MCAxMUI0O0Q0QkQ7MTExMSAxMTcwIDExQjQ7CitENEJFO0Q0QkU7MTExMSAxMTcwIDExQjU7RDRCRTsxMTExIDExNzAgMTFCNTsKK0Q0QkY7RDRCRjsxMTExIDExNzAgMTFCNjtENEJGOzExMTEgMTE3MCAxMUI2OworRDRDMDtENEMwOzExMTEgMTE3MCAxMUI3O0Q0QzA7MTExMSAxMTcwIDExQjc7CitENEMxO0Q0QzE7MTExMSAxMTcwIDExQjg7RDRDMTsxMTExIDExNzAgMTFCODsKK0Q0QzI7RDRDMjsxMTExIDExNzAgMTFCOTtENEMyOzExMTEgMTE3MCAxMUI5OworRDRDMztENEMzOzExMTEgMTE3MCAxMUJBO0Q0QzM7MTExMSAxMTcwIDExQkE7CitENEM0O0Q0QzQ7MTExMSAxMTcwIDExQkI7RDRDNDsxMTExIDExNzAgMTFCQjsKK0Q0QzU7RDRDNTsxMTExIDExNzAgMTFCQztENEM1OzExMTEgMTE3MCAxMUJDOworRDRDNjtENEM2OzExMTEgMTE3MCAxMUJEO0Q0QzY7MTExMSAxMTcwIDExQkQ7CitENEM3O0Q0Qzc7MTExMSAxMTcwIDExQkU7RDRDNzsxMTExIDExNzAgMTFCRTsKK0Q0Qzg7RDRDODsxMTExIDExNzAgMTFCRjtENEM4OzExMTEgMTE3MCAxMUJGOworRDRDOTtENEM5OzExMTEgMTE3MCAxMUMwO0Q0Qzk7MTExMSAxMTcwIDExQzA7CitENENBO0Q0Q0E7MTExMSAxMTcwIDExQzE7RDRDQTsxMTExIDExNzAgMTFDMTsKK0Q0Q0I7RDRDQjsxMTExIDExNzAgMTFDMjtENENCOzExMTEgMTE3MCAxMUMyOworRDRDQztENENDOzExMTEgMTE3MTtENENDOzExMTEgMTE3MTsKK0Q0Q0Q7RDRDRDsxMTExIDExNzEgMTFBODtENENEOzExMTEgMTE3MSAxMUE4OworRDRDRTtENENFOzExMTEgMTE3MSAxMUE5O0Q0Q0U7MTExMSAxMTcxIDExQTk7CitENENGO0Q0Q0Y7MTExMSAxMTcxIDExQUE7RDRDRjsxMTExIDExNzEgMTFBQTsKK0Q0RDA7RDREMDsxMTExIDExNzEgMTFBQjtENEQwOzExMTEgMTE3MSAxMUFCOworRDREMTtENEQxOzExMTEgMTE3MSAxMUFDO0Q0RDE7MTExMSAxMTcxIDExQUM7CitENEQyO0Q0RDI7MTExMSAxMTcxIDExQUQ7RDREMjsxMTExIDExNzEgMTFBRDsKK0Q0RDM7RDREMzsxMTExIDExNzEgMTFBRTtENEQzOzExMTEgMTE3MSAxMUFFOworRDRENDtENEQ0OzExMTEgMTE3MSAxMUFGO0Q0RDQ7MTExMSAxMTcxIDExQUY7CitENEQ1O0Q0RDU7MTExMSAxMTcxIDExQjA7RDRENTsxMTExIDExNzEgMTFCMDsKK0Q0RDY7RDRENjsxMTExIDExNzEgMTFCMTtENEQ2OzExMTEgMTE3MSAxMUIxOworRDRENztENEQ3OzExMTEgMTE3MSAxMUIyO0Q0RDc7MTExMSAxMTcxIDExQjI7CitENEQ4O0Q0RDg7MTExMSAxMTcxIDExQjM7RDREODsxMTExIDExNzEgMTFCMzsKK0Q0RDk7RDREOTsxMTExIDExNzEgMTFCNDtENEQ5OzExMTEgMTE3MSAxMUI0OworRDREQTtENERBOzExMTEgMTE3MSAxMUI1O0Q0REE7MTExMSAxMTcxIDExQjU7CitENERCO0Q0REI7MTExMSAxMTcxIDExQjY7RDREQjsxMTExIDExNzEgMTFCNjsKK0Q0REM7RDREQzsxMTExIDExNzEgMTFCNztENERDOzExMTEgMTE3MSAxMUI3OworRDRERDtENEREOzExMTEgMTE3MSAxMUI4O0Q0REQ7MTExMSAxMTcxIDExQjg7CitENERFO0Q0REU7MTExMSAxMTcxIDExQjk7RDRERTsxMTExIDExNzEgMTFCOTsKK0Q0REY7RDRERjsxMTExIDExNzEgMTFCQTtENERGOzExMTEgMTE3MSAxMUJBOworRDRFMDtENEUwOzExMTEgMTE3MSAxMUJCO0Q0RTA7MTExMSAxMTcxIDExQkI7CitENEUxO0Q0RTE7MTExMSAxMTcxIDExQkM7RDRFMTsxMTExIDExNzEgMTFCQzsKK0Q0RTI7RDRFMjsxMTExIDExNzEgMTFCRDtENEUyOzExMTEgMTE3MSAxMUJEOworRDRFMztENEUzOzExMTEgMTE3MSAxMUJFO0Q0RTM7MTExMSAxMTcxIDExQkU7CitENEU0O0Q0RTQ7MTExMSAxMTcxIDExQkY7RDRFNDsxMTExIDExNzEgMTFCRjsKK0Q0RTU7RDRFNTsxMTExIDExNzEgMTFDMDtENEU1OzExMTEgMTE3MSAxMUMwOworRDRFNjtENEU2OzExMTEgMTE3MSAxMUMxO0Q0RTY7MTExMSAxMTcxIDExQzE7CitENEU3O0Q0RTc7MTExMSAxMTcxIDExQzI7RDRFNzsxMTExIDExNzEgMTFDMjsKK0Q0RTg7RDRFODsxMTExIDExNzI7RDRFODsxMTExIDExNzI7CitENEU5O0Q0RTk7MTExMSAxMTcyIDExQTg7RDRFOTsxMTExIDExNzIgMTFBODsKK0Q0RUE7RDRFQTsxMTExIDExNzIgMTFBOTtENEVBOzExMTEgMTE3MiAxMUE5OworRDRFQjtENEVCOzExMTEgMTE3MiAxMUFBO0Q0RUI7MTExMSAxMTcyIDExQUE7CitENEVDO0Q0RUM7MTExMSAxMTcyIDExQUI7RDRFQzsxMTExIDExNzIgMTFBQjsKK0Q0RUQ7RDRFRDsxMTExIDExNzIgMTFBQztENEVEOzExMTEgMTE3MiAxMUFDOworRDRFRTtENEVFOzExMTEgMTE3MiAxMUFEO0Q0RUU7MTExMSAxMTcyIDExQUQ7CitENEVGO0Q0RUY7MTExMSAxMTcyIDExQUU7RDRFRjsxMTExIDExNzIgMTFBRTsKK0Q0RjA7RDRGMDsxMTExIDExNzIgMTFBRjtENEYwOzExMTEgMTE3MiAxMUFGOworRDRGMTtENEYxOzExMTEgMTE3MiAxMUIwO0Q0RjE7MTExMSAxMTcyIDExQjA7CitENEYyO0Q0RjI7MTExMSAxMTcyIDExQjE7RDRGMjsxMTExIDExNzIgMTFCMTsKK0Q0RjM7RDRGMzsxMTExIDExNzIgMTFCMjtENEYzOzExMTEgMTE3MiAxMUIyOworRDRGNDtENEY0OzExMTEgMTE3MiAxMUIzO0Q0RjQ7MTExMSAxMTcyIDExQjM7CitENEY1O0Q0RjU7MTExMSAxMTcyIDExQjQ7RDRGNTsxMTExIDExNzIgMTFCNDsKK0Q0RjY7RDRGNjsxMTExIDExNzIgMTFCNTtENEY2OzExMTEgMTE3MiAxMUI1OworRDRGNztENEY3OzExMTEgMTE3MiAxMUI2O0Q0Rjc7MTExMSAxMTcyIDExQjY7CitENEY4O0Q0Rjg7MTExMSAxMTcyIDExQjc7RDRGODsxMTExIDExNzIgMTFCNzsKK0Q0Rjk7RDRGOTsxMTExIDExNzIgMTFCODtENEY5OzExMTEgMTE3MiAxMUI4OworRDRGQTtENEZBOzExMTEgMTE3MiAxMUI5O0Q0RkE7MTExMSAxMTcyIDExQjk7CitENEZCO0Q0RkI7MTExMSAxMTcyIDExQkE7RDRGQjsxMTExIDExNzIgMTFCQTsKK0Q0RkM7RDRGQzsxMTExIDExNzIgMTFCQjtENEZDOzExMTEgMTE3MiAxMUJCOworRDRGRDtENEZEOzExMTEgMTE3MiAxMUJDO0Q0RkQ7MTExMSAxMTcyIDExQkM7CitENEZFO0Q0RkU7MTExMSAxMTcyIDExQkQ7RDRGRTsxMTExIDExNzIgMTFCRDsKK0Q0RkY7RDRGRjsxMTExIDExNzIgMTFCRTtENEZGOzExMTEgMTE3MiAxMUJFOworRDUwMDtENTAwOzExMTEgMTE3MiAxMUJGO0Q1MDA7MTExMSAxMTcyIDExQkY7CitENTAxO0Q1MDE7MTExMSAxMTcyIDExQzA7RDUwMTsxMTExIDExNzIgMTFDMDsKK0Q1MDI7RDUwMjsxMTExIDExNzIgMTFDMTtENTAyOzExMTEgMTE3MiAxMUMxOworRDUwMztENTAzOzExMTEgMTE3MiAxMUMyO0Q1MDM7MTExMSAxMTcyIDExQzI7CitENTA0O0Q1MDQ7MTExMSAxMTczO0Q1MDQ7MTExMSAxMTczOworRDUwNTtENTA1OzExMTEgMTE3MyAxMUE4O0Q1MDU7MTExMSAxMTczIDExQTg7CitENTA2O0Q1MDY7MTExMSAxMTczIDExQTk7RDUwNjsxMTExIDExNzMgMTFBOTsKK0Q1MDc7RDUwNzsxMTExIDExNzMgMTFBQTtENTA3OzExMTEgMTE3MyAxMUFBOworRDUwODtENTA4OzExMTEgMTE3MyAxMUFCO0Q1MDg7MTExMSAxMTczIDExQUI7CitENTA5O0Q1MDk7MTExMSAxMTczIDExQUM7RDUwOTsxMTExIDExNzMgMTFBQzsKK0Q1MEE7RDUwQTsxMTExIDExNzMgMTFBRDtENTBBOzExMTEgMTE3MyAxMUFEOworRDUwQjtENTBCOzExMTEgMTE3MyAxMUFFO0Q1MEI7MTExMSAxMTczIDExQUU7CitENTBDO0Q1MEM7MTExMSAxMTczIDExQUY7RDUwQzsxMTExIDExNzMgMTFBRjsKK0Q1MEQ7RDUwRDsxMTExIDExNzMgMTFCMDtENTBEOzExMTEgMTE3MyAxMUIwOworRDUwRTtENTBFOzExMTEgMTE3MyAxMUIxO0Q1MEU7MTExMSAxMTczIDExQjE7CitENTBGO0Q1MEY7MTExMSAxMTczIDExQjI7RDUwRjsxMTExIDExNzMgMTFCMjsKK0Q1MTA7RDUxMDsxMTExIDExNzMgMTFCMztENTEwOzExMTEgMTE3MyAxMUIzOworRDUxMTtENTExOzExMTEgMTE3MyAxMUI0O0Q1MTE7MTExMSAxMTczIDExQjQ7CitENTEyO0Q1MTI7MTExMSAxMTczIDExQjU7RDUxMjsxMTExIDExNzMgMTFCNTsKK0Q1MTM7RDUxMzsxMTExIDExNzMgMTFCNjtENTEzOzExMTEgMTE3MyAxMUI2OworRDUxNDtENTE0OzExMTEgMTE3MyAxMUI3O0Q1MTQ7MTExMSAxMTczIDExQjc7CitENTE1O0Q1MTU7MTExMSAxMTczIDExQjg7RDUxNTsxMTExIDExNzMgMTFCODsKK0Q1MTY7RDUxNjsxMTExIDExNzMgMTFCOTtENTE2OzExMTEgMTE3MyAxMUI5OworRDUxNztENTE3OzExMTEgMTE3MyAxMUJBO0Q1MTc7MTExMSAxMTczIDExQkE7CitENTE4O0Q1MTg7MTExMSAxMTczIDExQkI7RDUxODsxMTExIDExNzMgMTFCQjsKK0Q1MTk7RDUxOTsxMTExIDExNzMgMTFCQztENTE5OzExMTEgMTE3MyAxMUJDOworRDUxQTtENTFBOzExMTEgMTE3MyAxMUJEO0Q1MUE7MTExMSAxMTczIDExQkQ7CitENTFCO0Q1MUI7MTExMSAxMTczIDExQkU7RDUxQjsxMTExIDExNzMgMTFCRTsKK0Q1MUM7RDUxQzsxMTExIDExNzMgMTFCRjtENTFDOzExMTEgMTE3MyAxMUJGOworRDUxRDtENTFEOzExMTEgMTE3MyAxMUMwO0Q1MUQ7MTExMSAxMTczIDExQzA7CitENTFFO0Q1MUU7MTExMSAxMTczIDExQzE7RDUxRTsxMTExIDExNzMgMTFDMTsKK0Q1MUY7RDUxRjsxMTExIDExNzMgMTFDMjtENTFGOzExMTEgMTE3MyAxMUMyOworRDUyMDtENTIwOzExMTEgMTE3NDtENTIwOzExMTEgMTE3NDsKK0Q1MjE7RDUyMTsxMTExIDExNzQgMTFBODtENTIxOzExMTEgMTE3NCAxMUE4OworRDUyMjtENTIyOzExMTEgMTE3NCAxMUE5O0Q1MjI7MTExMSAxMTc0IDExQTk7CitENTIzO0Q1MjM7MTExMSAxMTc0IDExQUE7RDUyMzsxMTExIDExNzQgMTFBQTsKK0Q1MjQ7RDUyNDsxMTExIDExNzQgMTFBQjtENTI0OzExMTEgMTE3NCAxMUFCOworRDUyNTtENTI1OzExMTEgMTE3NCAxMUFDO0Q1MjU7MTExMSAxMTc0IDExQUM7CitENTI2O0Q1MjY7MTExMSAxMTc0IDExQUQ7RDUyNjsxMTExIDExNzQgMTFBRDsKK0Q1Mjc7RDUyNzsxMTExIDExNzQgMTFBRTtENTI3OzExMTEgMTE3NCAxMUFFOworRDUyODtENTI4OzExMTEgMTE3NCAxMUFGO0Q1Mjg7MTExMSAxMTc0IDExQUY7CitENTI5O0Q1Mjk7MTExMSAxMTc0IDExQjA7RDUyOTsxMTExIDExNzQgMTFCMDsKK0Q1MkE7RDUyQTsxMTExIDExNzQgMTFCMTtENTJBOzExMTEgMTE3NCAxMUIxOworRDUyQjtENTJCOzExMTEgMTE3NCAxMUIyO0Q1MkI7MTExMSAxMTc0IDExQjI7CitENTJDO0Q1MkM7MTExMSAxMTc0IDExQjM7RDUyQzsxMTExIDExNzQgMTFCMzsKK0Q1MkQ7RDUyRDsxMTExIDExNzQgMTFCNDtENTJEOzExMTEgMTE3NCAxMUI0OworRDUyRTtENTJFOzExMTEgMTE3NCAxMUI1O0Q1MkU7MTExMSAxMTc0IDExQjU7CitENTJGO0Q1MkY7MTExMSAxMTc0IDExQjY7RDUyRjsxMTExIDExNzQgMTFCNjsKK0Q1MzA7RDUzMDsxMTExIDExNzQgMTFCNztENTMwOzExMTEgMTE3NCAxMUI3OworRDUzMTtENTMxOzExMTEgMTE3NCAxMUI4O0Q1MzE7MTExMSAxMTc0IDExQjg7CitENTMyO0Q1MzI7MTExMSAxMTc0IDExQjk7RDUzMjsxMTExIDExNzQgMTFCOTsKK0Q1MzM7RDUzMzsxMTExIDExNzQgMTFCQTtENTMzOzExMTEgMTE3NCAxMUJBOworRDUzNDtENTM0OzExMTEgMTE3NCAxMUJCO0Q1MzQ7MTExMSAxMTc0IDExQkI7CitENTM1O0Q1MzU7MTExMSAxMTc0IDExQkM7RDUzNTsxMTExIDExNzQgMTFCQzsKK0Q1MzY7RDUzNjsxMTExIDExNzQgMTFCRDtENTM2OzExMTEgMTE3NCAxMUJEOworRDUzNztENTM3OzExMTEgMTE3NCAxMUJFO0Q1Mzc7MTExMSAxMTc0IDExQkU7CitENTM4O0Q1Mzg7MTExMSAxMTc0IDExQkY7RDUzODsxMTExIDExNzQgMTFCRjsKK0Q1Mzk7RDUzOTsxMTExIDExNzQgMTFDMDtENTM5OzExMTEgMTE3NCAxMUMwOworRDUzQTtENTNBOzExMTEgMTE3NCAxMUMxO0Q1M0E7MTExMSAxMTc0IDExQzE7CitENTNCO0Q1M0I7MTExMSAxMTc0IDExQzI7RDUzQjsxMTExIDExNzQgMTFDMjsKK0Q1M0M7RDUzQzsxMTExIDExNzU7RDUzQzsxMTExIDExNzU7CitENTNEO0Q1M0Q7MTExMSAxMTc1IDExQTg7RDUzRDsxMTExIDExNzUgMTFBODsKK0Q1M0U7RDUzRTsxMTExIDExNzUgMTFBOTtENTNFOzExMTEgMTE3NSAxMUE5OworRDUzRjtENTNGOzExMTEgMTE3NSAxMUFBO0Q1M0Y7MTExMSAxMTc1IDExQUE7CitENTQwO0Q1NDA7MTExMSAxMTc1IDExQUI7RDU0MDsxMTExIDExNzUgMTFBQjsKK0Q1NDE7RDU0MTsxMTExIDExNzUgMTFBQztENTQxOzExMTEgMTE3NSAxMUFDOworRDU0MjtENTQyOzExMTEgMTE3NSAxMUFEO0Q1NDI7MTExMSAxMTc1IDExQUQ7CitENTQzO0Q1NDM7MTExMSAxMTc1IDExQUU7RDU0MzsxMTExIDExNzUgMTFBRTsKK0Q1NDQ7RDU0NDsxMTExIDExNzUgMTFBRjtENTQ0OzExMTEgMTE3NSAxMUFGOworRDU0NTtENTQ1OzExMTEgMTE3NSAxMUIwO0Q1NDU7MTExMSAxMTc1IDExQjA7CitENTQ2O0Q1NDY7MTExMSAxMTc1IDExQjE7RDU0NjsxMTExIDExNzUgMTFCMTsKK0Q1NDc7RDU0NzsxMTExIDExNzUgMTFCMjtENTQ3OzExMTEgMTE3NSAxMUIyOworRDU0ODtENTQ4OzExMTEgMTE3NSAxMUIzO0Q1NDg7MTExMSAxMTc1IDExQjM7CitENTQ5O0Q1NDk7MTExMSAxMTc1IDExQjQ7RDU0OTsxMTExIDExNzUgMTFCNDsKK0Q1NEE7RDU0QTsxMTExIDExNzUgMTFCNTtENTRBOzExMTEgMTE3NSAxMUI1OworRDU0QjtENTRCOzExMTEgMTE3NSAxMUI2O0Q1NEI7MTExMSAxMTc1IDExQjY7CitENTRDO0Q1NEM7MTExMSAxMTc1IDExQjc7RDU0QzsxMTExIDExNzUgMTFCNzsKK0Q1NEQ7RDU0RDsxMTExIDExNzUgMTFCODtENTREOzExMTEgMTE3NSAxMUI4OworRDU0RTtENTRFOzExMTEgMTE3NSAxMUI5O0Q1NEU7MTExMSAxMTc1IDExQjk7CitENTRGO0Q1NEY7MTExMSAxMTc1IDExQkE7RDU0RjsxMTExIDExNzUgMTFCQTsKK0Q1NTA7RDU1MDsxMTExIDExNzUgMTFCQjtENTUwOzExMTEgMTE3NSAxMUJCOworRDU1MTtENTUxOzExMTEgMTE3NSAxMUJDO0Q1NTE7MTExMSAxMTc1IDExQkM7CitENTUyO0Q1NTI7MTExMSAxMTc1IDExQkQ7RDU1MjsxMTExIDExNzUgMTFCRDsKK0Q1NTM7RDU1MzsxMTExIDExNzUgMTFCRTtENTUzOzExMTEgMTE3NSAxMUJFOworRDU1NDtENTU0OzExMTEgMTE3NSAxMUJGO0Q1NTQ7MTExMSAxMTc1IDExQkY7CitENTU1O0Q1NTU7MTExMSAxMTc1IDExQzA7RDU1NTsxMTExIDExNzUgMTFDMDsKK0Q1NTY7RDU1NjsxMTExIDExNzUgMTFDMTtENTU2OzExMTEgMTE3NSAxMUMxOworRDU1NztENTU3OzExMTEgMTE3NSAxMUMyO0Q1NTc7MTExMSAxMTc1IDExQzI7CitENTU4O0Q1NTg7MTExMiAxMTYxO0Q1NTg7MTExMiAxMTYxOworRDU1OTtENTU5OzExMTIgMTE2MSAxMUE4O0Q1NTk7MTExMiAxMTYxIDExQTg7CitENTVBO0Q1NUE7MTExMiAxMTYxIDExQTk7RDU1QTsxMTEyIDExNjEgMTFBOTsKK0Q1NUI7RDU1QjsxMTEyIDExNjEgMTFBQTtENTVCOzExMTIgMTE2MSAxMUFBOworRDU1QztENTVDOzExMTIgMTE2MSAxMUFCO0Q1NUM7MTExMiAxMTYxIDExQUI7CitENTVEO0Q1NUQ7MTExMiAxMTYxIDExQUM7RDU1RDsxMTEyIDExNjEgMTFBQzsKK0Q1NUU7RDU1RTsxMTEyIDExNjEgMTFBRDtENTVFOzExMTIgMTE2MSAxMUFEOworRDU1RjtENTVGOzExMTIgMTE2MSAxMUFFO0Q1NUY7MTExMiAxMTYxIDExQUU7CitENTYwO0Q1NjA7MTExMiAxMTYxIDExQUY7RDU2MDsxMTEyIDExNjEgMTFBRjsKK0Q1NjE7RDU2MTsxMTEyIDExNjEgMTFCMDtENTYxOzExMTIgMTE2MSAxMUIwOworRDU2MjtENTYyOzExMTIgMTE2MSAxMUIxO0Q1NjI7MTExMiAxMTYxIDExQjE7CitENTYzO0Q1NjM7MTExMiAxMTYxIDExQjI7RDU2MzsxMTEyIDExNjEgMTFCMjsKK0Q1NjQ7RDU2NDsxMTEyIDExNjEgMTFCMztENTY0OzExMTIgMTE2MSAxMUIzOworRDU2NTtENTY1OzExMTIgMTE2MSAxMUI0O0Q1NjU7MTExMiAxMTYxIDExQjQ7CitENTY2O0Q1NjY7MTExMiAxMTYxIDExQjU7RDU2NjsxMTEyIDExNjEgMTFCNTsKK0Q1Njc7RDU2NzsxMTEyIDExNjEgMTFCNjtENTY3OzExMTIgMTE2MSAxMUI2OworRDU2ODtENTY4OzExMTIgMTE2MSAxMUI3O0Q1Njg7MTExMiAxMTYxIDExQjc7CitENTY5O0Q1Njk7MTExMiAxMTYxIDExQjg7RDU2OTsxMTEyIDExNjEgMTFCODsKK0Q1NkE7RDU2QTsxMTEyIDExNjEgMTFCOTtENTZBOzExMTIgMTE2MSAxMUI5OworRDU2QjtENTZCOzExMTIgMTE2MSAxMUJBO0Q1NkI7MTExMiAxMTYxIDExQkE7CitENTZDO0Q1NkM7MTExMiAxMTYxIDExQkI7RDU2QzsxMTEyIDExNjEgMTFCQjsKK0Q1NkQ7RDU2RDsxMTEyIDExNjEgMTFCQztENTZEOzExMTIgMTE2MSAxMUJDOworRDU2RTtENTZFOzExMTIgMTE2MSAxMUJEO0Q1NkU7MTExMiAxMTYxIDExQkQ7CitENTZGO0Q1NkY7MTExMiAxMTYxIDExQkU7RDU2RjsxMTEyIDExNjEgMTFCRTsKK0Q1NzA7RDU3MDsxMTEyIDExNjEgMTFCRjtENTcwOzExMTIgMTE2MSAxMUJGOworRDU3MTtENTcxOzExMTIgMTE2MSAxMUMwO0Q1NzE7MTExMiAxMTYxIDExQzA7CitENTcyO0Q1NzI7MTExMiAxMTYxIDExQzE7RDU3MjsxMTEyIDExNjEgMTFDMTsKK0Q1NzM7RDU3MzsxMTEyIDExNjEgMTFDMjtENTczOzExMTIgMTE2MSAxMUMyOworRDU3NDtENTc0OzExMTIgMTE2MjtENTc0OzExMTIgMTE2MjsKK0Q1NzU7RDU3NTsxMTEyIDExNjIgMTFBODtENTc1OzExMTIgMTE2MiAxMUE4OworRDU3NjtENTc2OzExMTIgMTE2MiAxMUE5O0Q1NzY7MTExMiAxMTYyIDExQTk7CitENTc3O0Q1Nzc7MTExMiAxMTYyIDExQUE7RDU3NzsxMTEyIDExNjIgMTFBQTsKK0Q1Nzg7RDU3ODsxMTEyIDExNjIgMTFBQjtENTc4OzExMTIgMTE2MiAxMUFCOworRDU3OTtENTc5OzExMTIgMTE2MiAxMUFDO0Q1Nzk7MTExMiAxMTYyIDExQUM7CitENTdBO0Q1N0E7MTExMiAxMTYyIDExQUQ7RDU3QTsxMTEyIDExNjIgMTFBRDsKK0Q1N0I7RDU3QjsxMTEyIDExNjIgMTFBRTtENTdCOzExMTIgMTE2MiAxMUFFOworRDU3QztENTdDOzExMTIgMTE2MiAxMUFGO0Q1N0M7MTExMiAxMTYyIDExQUY7CitENTdEO0Q1N0Q7MTExMiAxMTYyIDExQjA7RDU3RDsxMTEyIDExNjIgMTFCMDsKK0Q1N0U7RDU3RTsxMTEyIDExNjIgMTFCMTtENTdFOzExMTIgMTE2MiAxMUIxOworRDU3RjtENTdGOzExMTIgMTE2MiAxMUIyO0Q1N0Y7MTExMiAxMTYyIDExQjI7CitENTgwO0Q1ODA7MTExMiAxMTYyIDExQjM7RDU4MDsxMTEyIDExNjIgMTFCMzsKK0Q1ODE7RDU4MTsxMTEyIDExNjIgMTFCNDtENTgxOzExMTIgMTE2MiAxMUI0OworRDU4MjtENTgyOzExMTIgMTE2MiAxMUI1O0Q1ODI7MTExMiAxMTYyIDExQjU7CitENTgzO0Q1ODM7MTExMiAxMTYyIDExQjY7RDU4MzsxMTEyIDExNjIgMTFCNjsKK0Q1ODQ7RDU4NDsxMTEyIDExNjIgMTFCNztENTg0OzExMTIgMTE2MiAxMUI3OworRDU4NTtENTg1OzExMTIgMTE2MiAxMUI4O0Q1ODU7MTExMiAxMTYyIDExQjg7CitENTg2O0Q1ODY7MTExMiAxMTYyIDExQjk7RDU4NjsxMTEyIDExNjIgMTFCOTsKK0Q1ODc7RDU4NzsxMTEyIDExNjIgMTFCQTtENTg3OzExMTIgMTE2MiAxMUJBOworRDU4ODtENTg4OzExMTIgMTE2MiAxMUJCO0Q1ODg7MTExMiAxMTYyIDExQkI7CitENTg5O0Q1ODk7MTExMiAxMTYyIDExQkM7RDU4OTsxMTEyIDExNjIgMTFCQzsKK0Q1OEE7RDU4QTsxMTEyIDExNjIgMTFCRDtENThBOzExMTIgMTE2MiAxMUJEOworRDU4QjtENThCOzExMTIgMTE2MiAxMUJFO0Q1OEI7MTExMiAxMTYyIDExQkU7CitENThDO0Q1OEM7MTExMiAxMTYyIDExQkY7RDU4QzsxMTEyIDExNjIgMTFCRjsKK0Q1OEQ7RDU4RDsxMTEyIDExNjIgMTFDMDtENThEOzExMTIgMTE2MiAxMUMwOworRDU4RTtENThFOzExMTIgMTE2MiAxMUMxO0Q1OEU7MTExMiAxMTYyIDExQzE7CitENThGO0Q1OEY7MTExMiAxMTYyIDExQzI7RDU4RjsxMTEyIDExNjIgMTFDMjsKK0Q1OTA7RDU5MDsxMTEyIDExNjM7RDU5MDsxMTEyIDExNjM7CitENTkxO0Q1OTE7MTExMiAxMTYzIDExQTg7RDU5MTsxMTEyIDExNjMgMTFBODsKK0Q1OTI7RDU5MjsxMTEyIDExNjMgMTFBOTtENTkyOzExMTIgMTE2MyAxMUE5OworRDU5MztENTkzOzExMTIgMTE2MyAxMUFBO0Q1OTM7MTExMiAxMTYzIDExQUE7CitENTk0O0Q1OTQ7MTExMiAxMTYzIDExQUI7RDU5NDsxMTEyIDExNjMgMTFBQjsKK0Q1OTU7RDU5NTsxMTEyIDExNjMgMTFBQztENTk1OzExMTIgMTE2MyAxMUFDOworRDU5NjtENTk2OzExMTIgMTE2MyAxMUFEO0Q1OTY7MTExMiAxMTYzIDExQUQ7CitENTk3O0Q1OTc7MTExMiAxMTYzIDExQUU7RDU5NzsxMTEyIDExNjMgMTFBRTsKK0Q1OTg7RDU5ODsxMTEyIDExNjMgMTFBRjtENTk4OzExMTIgMTE2MyAxMUFGOworRDU5OTtENTk5OzExMTIgMTE2MyAxMUIwO0Q1OTk7MTExMiAxMTYzIDExQjA7CitENTlBO0Q1OUE7MTExMiAxMTYzIDExQjE7RDU5QTsxMTEyIDExNjMgMTFCMTsKK0Q1OUI7RDU5QjsxMTEyIDExNjMgMTFCMjtENTlCOzExMTIgMTE2MyAxMUIyOworRDU5QztENTlDOzExMTIgMTE2MyAxMUIzO0Q1OUM7MTExMiAxMTYzIDExQjM7CitENTlEO0Q1OUQ7MTExMiAxMTYzIDExQjQ7RDU5RDsxMTEyIDExNjMgMTFCNDsKK0Q1OUU7RDU5RTsxMTEyIDExNjMgMTFCNTtENTlFOzExMTIgMTE2MyAxMUI1OworRDU5RjtENTlGOzExMTIgMTE2MyAxMUI2O0Q1OUY7MTExMiAxMTYzIDExQjY7CitENUEwO0Q1QTA7MTExMiAxMTYzIDExQjc7RDVBMDsxMTEyIDExNjMgMTFCNzsKK0Q1QTE7RDVBMTsxMTEyIDExNjMgMTFCODtENUExOzExMTIgMTE2MyAxMUI4OworRDVBMjtENUEyOzExMTIgMTE2MyAxMUI5O0Q1QTI7MTExMiAxMTYzIDExQjk7CitENUEzO0Q1QTM7MTExMiAxMTYzIDExQkE7RDVBMzsxMTEyIDExNjMgMTFCQTsKK0Q1QTQ7RDVBNDsxMTEyIDExNjMgMTFCQjtENUE0OzExMTIgMTE2MyAxMUJCOworRDVBNTtENUE1OzExMTIgMTE2MyAxMUJDO0Q1QTU7MTExMiAxMTYzIDExQkM7CitENUE2O0Q1QTY7MTExMiAxMTYzIDExQkQ7RDVBNjsxMTEyIDExNjMgMTFCRDsKK0Q1QTc7RDVBNzsxMTEyIDExNjMgMTFCRTtENUE3OzExMTIgMTE2MyAxMUJFOworRDVBODtENUE4OzExMTIgMTE2MyAxMUJGO0Q1QTg7MTExMiAxMTYzIDExQkY7CitENUE5O0Q1QTk7MTExMiAxMTYzIDExQzA7RDVBOTsxMTEyIDExNjMgMTFDMDsKK0Q1QUE7RDVBQTsxMTEyIDExNjMgMTFDMTtENUFBOzExMTIgMTE2MyAxMUMxOworRDVBQjtENUFCOzExMTIgMTE2MyAxMUMyO0Q1QUI7MTExMiAxMTYzIDExQzI7CitENUFDO0Q1QUM7MTExMiAxMTY0O0Q1QUM7MTExMiAxMTY0OworRDVBRDtENUFEOzExMTIgMTE2NCAxMUE4O0Q1QUQ7MTExMiAxMTY0IDExQTg7CitENUFFO0Q1QUU7MTExMiAxMTY0IDExQTk7RDVBRTsxMTEyIDExNjQgMTFBOTsKK0Q1QUY7RDVBRjsxMTEyIDExNjQgMTFBQTtENUFGOzExMTIgMTE2NCAxMUFBOworRDVCMDtENUIwOzExMTIgMTE2NCAxMUFCO0Q1QjA7MTExMiAxMTY0IDExQUI7CitENUIxO0Q1QjE7MTExMiAxMTY0IDExQUM7RDVCMTsxMTEyIDExNjQgMTFBQzsKK0Q1QjI7RDVCMjsxMTEyIDExNjQgMTFBRDtENUIyOzExMTIgMTE2NCAxMUFEOworRDVCMztENUIzOzExMTIgMTE2NCAxMUFFO0Q1QjM7MTExMiAxMTY0IDExQUU7CitENUI0O0Q1QjQ7MTExMiAxMTY0IDExQUY7RDVCNDsxMTEyIDExNjQgMTFBRjsKK0Q1QjU7RDVCNTsxMTEyIDExNjQgMTFCMDtENUI1OzExMTIgMTE2NCAxMUIwOworRDVCNjtENUI2OzExMTIgMTE2NCAxMUIxO0Q1QjY7MTExMiAxMTY0IDExQjE7CitENUI3O0Q1Qjc7MTExMiAxMTY0IDExQjI7RDVCNzsxMTEyIDExNjQgMTFCMjsKK0Q1Qjg7RDVCODsxMTEyIDExNjQgMTFCMztENUI4OzExMTIgMTE2NCAxMUIzOworRDVCOTtENUI5OzExMTIgMTE2NCAxMUI0O0Q1Qjk7MTExMiAxMTY0IDExQjQ7CitENUJBO0Q1QkE7MTExMiAxMTY0IDExQjU7RDVCQTsxMTEyIDExNjQgMTFCNTsKK0Q1QkI7RDVCQjsxMTEyIDExNjQgMTFCNjtENUJCOzExMTIgMTE2NCAxMUI2OworRDVCQztENUJDOzExMTIgMTE2NCAxMUI3O0Q1QkM7MTExMiAxMTY0IDExQjc7CitENUJEO0Q1QkQ7MTExMiAxMTY0IDExQjg7RDVCRDsxMTEyIDExNjQgMTFCODsKK0Q1QkU7RDVCRTsxMTEyIDExNjQgMTFCOTtENUJFOzExMTIgMTE2NCAxMUI5OworRDVCRjtENUJGOzExMTIgMTE2NCAxMUJBO0Q1QkY7MTExMiAxMTY0IDExQkE7CitENUMwO0Q1QzA7MTExMiAxMTY0IDExQkI7RDVDMDsxMTEyIDExNjQgMTFCQjsKK0Q1QzE7RDVDMTsxMTEyIDExNjQgMTFCQztENUMxOzExMTIgMTE2NCAxMUJDOworRDVDMjtENUMyOzExMTIgMTE2NCAxMUJEO0Q1QzI7MTExMiAxMTY0IDExQkQ7CitENUMzO0Q1QzM7MTExMiAxMTY0IDExQkU7RDVDMzsxMTEyIDExNjQgMTFCRTsKK0Q1QzQ7RDVDNDsxMTEyIDExNjQgMTFCRjtENUM0OzExMTIgMTE2NCAxMUJGOworRDVDNTtENUM1OzExMTIgMTE2NCAxMUMwO0Q1QzU7MTExMiAxMTY0IDExQzA7CitENUM2O0Q1QzY7MTExMiAxMTY0IDExQzE7RDVDNjsxMTEyIDExNjQgMTFDMTsKK0Q1Qzc7RDVDNzsxMTEyIDExNjQgMTFDMjtENUM3OzExMTIgMTE2NCAxMUMyOworRDVDODtENUM4OzExMTIgMTE2NTtENUM4OzExMTIgMTE2NTsKK0Q1Qzk7RDVDOTsxMTEyIDExNjUgMTFBODtENUM5OzExMTIgMTE2NSAxMUE4OworRDVDQTtENUNBOzExMTIgMTE2NSAxMUE5O0Q1Q0E7MTExMiAxMTY1IDExQTk7CitENUNCO0Q1Q0I7MTExMiAxMTY1IDExQUE7RDVDQjsxMTEyIDExNjUgMTFBQTsKK0Q1Q0M7RDVDQzsxMTEyIDExNjUgMTFBQjtENUNDOzExMTIgMTE2NSAxMUFCOworRDVDRDtENUNEOzExMTIgMTE2NSAxMUFDO0Q1Q0Q7MTExMiAxMTY1IDExQUM7CitENUNFO0Q1Q0U7MTExMiAxMTY1IDExQUQ7RDVDRTsxMTEyIDExNjUgMTFBRDsKK0Q1Q0Y7RDVDRjsxMTEyIDExNjUgMTFBRTtENUNGOzExMTIgMTE2NSAxMUFFOworRDVEMDtENUQwOzExMTIgMTE2NSAxMUFGO0Q1RDA7MTExMiAxMTY1IDExQUY7CitENUQxO0Q1RDE7MTExMiAxMTY1IDExQjA7RDVEMTsxMTEyIDExNjUgMTFCMDsKK0Q1RDI7RDVEMjsxMTEyIDExNjUgMTFCMTtENUQyOzExMTIgMTE2NSAxMUIxOworRDVEMztENUQzOzExMTIgMTE2NSAxMUIyO0Q1RDM7MTExMiAxMTY1IDExQjI7CitENUQ0O0Q1RDQ7MTExMiAxMTY1IDExQjM7RDVENDsxMTEyIDExNjUgMTFCMzsKK0Q1RDU7RDVENTsxMTEyIDExNjUgMTFCNDtENUQ1OzExMTIgMTE2NSAxMUI0OworRDVENjtENUQ2OzExMTIgMTE2NSAxMUI1O0Q1RDY7MTExMiAxMTY1IDExQjU7CitENUQ3O0Q1RDc7MTExMiAxMTY1IDExQjY7RDVENzsxMTEyIDExNjUgMTFCNjsKK0Q1RDg7RDVEODsxMTEyIDExNjUgMTFCNztENUQ4OzExMTIgMTE2NSAxMUI3OworRDVEOTtENUQ5OzExMTIgMTE2NSAxMUI4O0Q1RDk7MTExMiAxMTY1IDExQjg7CitENURBO0Q1REE7MTExMiAxMTY1IDExQjk7RDVEQTsxMTEyIDExNjUgMTFCOTsKK0Q1REI7RDVEQjsxMTEyIDExNjUgMTFCQTtENURCOzExMTIgMTE2NSAxMUJBOworRDVEQztENURDOzExMTIgMTE2NSAxMUJCO0Q1REM7MTExMiAxMTY1IDExQkI7CitENUREO0Q1REQ7MTExMiAxMTY1IDExQkM7RDVERDsxMTEyIDExNjUgMTFCQzsKK0Q1REU7RDVERTsxMTEyIDExNjUgMTFCRDtENURFOzExMTIgMTE2NSAxMUJEOworRDVERjtENURGOzExMTIgMTE2NSAxMUJFO0Q1REY7MTExMiAxMTY1IDExQkU7CitENUUwO0Q1RTA7MTExMiAxMTY1IDExQkY7RDVFMDsxMTEyIDExNjUgMTFCRjsKK0Q1RTE7RDVFMTsxMTEyIDExNjUgMTFDMDtENUUxOzExMTIgMTE2NSAxMUMwOworRDVFMjtENUUyOzExMTIgMTE2NSAxMUMxO0Q1RTI7MTExMiAxMTY1IDExQzE7CitENUUzO0Q1RTM7MTExMiAxMTY1IDExQzI7RDVFMzsxMTEyIDExNjUgMTFDMjsKK0Q1RTQ7RDVFNDsxMTEyIDExNjY7RDVFNDsxMTEyIDExNjY7CitENUU1O0Q1RTU7MTExMiAxMTY2IDExQTg7RDVFNTsxMTEyIDExNjYgMTFBODsKK0Q1RTY7RDVFNjsxMTEyIDExNjYgMTFBOTtENUU2OzExMTIgMTE2NiAxMUE5OworRDVFNztENUU3OzExMTIgMTE2NiAxMUFBO0Q1RTc7MTExMiAxMTY2IDExQUE7CitENUU4O0Q1RTg7MTExMiAxMTY2IDExQUI7RDVFODsxMTEyIDExNjYgMTFBQjsKK0Q1RTk7RDVFOTsxMTEyIDExNjYgMTFBQztENUU5OzExMTIgMTE2NiAxMUFDOworRDVFQTtENUVBOzExMTIgMTE2NiAxMUFEO0Q1RUE7MTExMiAxMTY2IDExQUQ7CitENUVCO0Q1RUI7MTExMiAxMTY2IDExQUU7RDVFQjsxMTEyIDExNjYgMTFBRTsKK0Q1RUM7RDVFQzsxMTEyIDExNjYgMTFBRjtENUVDOzExMTIgMTE2NiAxMUFGOworRDVFRDtENUVEOzExMTIgMTE2NiAxMUIwO0Q1RUQ7MTExMiAxMTY2IDExQjA7CitENUVFO0Q1RUU7MTExMiAxMTY2IDExQjE7RDVFRTsxMTEyIDExNjYgMTFCMTsKK0Q1RUY7RDVFRjsxMTEyIDExNjYgMTFCMjtENUVGOzExMTIgMTE2NiAxMUIyOworRDVGMDtENUYwOzExMTIgMTE2NiAxMUIzO0Q1RjA7MTExMiAxMTY2IDExQjM7CitENUYxO0Q1RjE7MTExMiAxMTY2IDExQjQ7RDVGMTsxMTEyIDExNjYgMTFCNDsKK0Q1RjI7RDVGMjsxMTEyIDExNjYgMTFCNTtENUYyOzExMTIgMTE2NiAxMUI1OworRDVGMztENUYzOzExMTIgMTE2NiAxMUI2O0Q1RjM7MTExMiAxMTY2IDExQjY7CitENUY0O0Q1RjQ7MTExMiAxMTY2IDExQjc7RDVGNDsxMTEyIDExNjYgMTFCNzsKK0Q1RjU7RDVGNTsxMTEyIDExNjYgMTFCODtENUY1OzExMTIgMTE2NiAxMUI4OworRDVGNjtENUY2OzExMTIgMTE2NiAxMUI5O0Q1RjY7MTExMiAxMTY2IDExQjk7CitENUY3O0Q1Rjc7MTExMiAxMTY2IDExQkE7RDVGNzsxMTEyIDExNjYgMTFCQTsKK0Q1Rjg7RDVGODsxMTEyIDExNjYgMTFCQjtENUY4OzExMTIgMTE2NiAxMUJCOworRDVGOTtENUY5OzExMTIgMTE2NiAxMUJDO0Q1Rjk7MTExMiAxMTY2IDExQkM7CitENUZBO0Q1RkE7MTExMiAxMTY2IDExQkQ7RDVGQTsxMTEyIDExNjYgMTFCRDsKK0Q1RkI7RDVGQjsxMTEyIDExNjYgMTFCRTtENUZCOzExMTIgMTE2NiAxMUJFOworRDVGQztENUZDOzExMTIgMTE2NiAxMUJGO0Q1RkM7MTExMiAxMTY2IDExQkY7CitENUZEO0Q1RkQ7MTExMiAxMTY2IDExQzA7RDVGRDsxMTEyIDExNjYgMTFDMDsKK0Q1RkU7RDVGRTsxMTEyIDExNjYgMTFDMTtENUZFOzExMTIgMTE2NiAxMUMxOworRDVGRjtENUZGOzExMTIgMTE2NiAxMUMyO0Q1RkY7MTExMiAxMTY2IDExQzI7CitENjAwO0Q2MDA7MTExMiAxMTY3O0Q2MDA7MTExMiAxMTY3OworRDYwMTtENjAxOzExMTIgMTE2NyAxMUE4O0Q2MDE7MTExMiAxMTY3IDExQTg7CitENjAyO0Q2MDI7MTExMiAxMTY3IDExQTk7RDYwMjsxMTEyIDExNjcgMTFBOTsKK0Q2MDM7RDYwMzsxMTEyIDExNjcgMTFBQTtENjAzOzExMTIgMTE2NyAxMUFBOworRDYwNDtENjA0OzExMTIgMTE2NyAxMUFCO0Q2MDQ7MTExMiAxMTY3IDExQUI7CitENjA1O0Q2MDU7MTExMiAxMTY3IDExQUM7RDYwNTsxMTEyIDExNjcgMTFBQzsKK0Q2MDY7RDYwNjsxMTEyIDExNjcgMTFBRDtENjA2OzExMTIgMTE2NyAxMUFEOworRDYwNztENjA3OzExMTIgMTE2NyAxMUFFO0Q2MDc7MTExMiAxMTY3IDExQUU7CitENjA4O0Q2MDg7MTExMiAxMTY3IDExQUY7RDYwODsxMTEyIDExNjcgMTFBRjsKK0Q2MDk7RDYwOTsxMTEyIDExNjcgMTFCMDtENjA5OzExMTIgMTE2NyAxMUIwOworRDYwQTtENjBBOzExMTIgMTE2NyAxMUIxO0Q2MEE7MTExMiAxMTY3IDExQjE7CitENjBCO0Q2MEI7MTExMiAxMTY3IDExQjI7RDYwQjsxMTEyIDExNjcgMTFCMjsKK0Q2MEM7RDYwQzsxMTEyIDExNjcgMTFCMztENjBDOzExMTIgMTE2NyAxMUIzOworRDYwRDtENjBEOzExMTIgMTE2NyAxMUI0O0Q2MEQ7MTExMiAxMTY3IDExQjQ7CitENjBFO0Q2MEU7MTExMiAxMTY3IDExQjU7RDYwRTsxMTEyIDExNjcgMTFCNTsKK0Q2MEY7RDYwRjsxMTEyIDExNjcgMTFCNjtENjBGOzExMTIgMTE2NyAxMUI2OworRDYxMDtENjEwOzExMTIgMTE2NyAxMUI3O0Q2MTA7MTExMiAxMTY3IDExQjc7CitENjExO0Q2MTE7MTExMiAxMTY3IDExQjg7RDYxMTsxMTEyIDExNjcgMTFCODsKK0Q2MTI7RDYxMjsxMTEyIDExNjcgMTFCOTtENjEyOzExMTIgMTE2NyAxMUI5OworRDYxMztENjEzOzExMTIgMTE2NyAxMUJBO0Q2MTM7MTExMiAxMTY3IDExQkE7CitENjE0O0Q2MTQ7MTExMiAxMTY3IDExQkI7RDYxNDsxMTEyIDExNjcgMTFCQjsKK0Q2MTU7RDYxNTsxMTEyIDExNjcgMTFCQztENjE1OzExMTIgMTE2NyAxMUJDOworRDYxNjtENjE2OzExMTIgMTE2NyAxMUJEO0Q2MTY7MTExMiAxMTY3IDExQkQ7CitENjE3O0Q2MTc7MTExMiAxMTY3IDExQkU7RDYxNzsxMTEyIDExNjcgMTFCRTsKK0Q2MTg7RDYxODsxMTEyIDExNjcgMTFCRjtENjE4OzExMTIgMTE2NyAxMUJGOworRDYxOTtENjE5OzExMTIgMTE2NyAxMUMwO0Q2MTk7MTExMiAxMTY3IDExQzA7CitENjFBO0Q2MUE7MTExMiAxMTY3IDExQzE7RDYxQTsxMTEyIDExNjcgMTFDMTsKK0Q2MUI7RDYxQjsxMTEyIDExNjcgMTFDMjtENjFCOzExMTIgMTE2NyAxMUMyOworRDYxQztENjFDOzExMTIgMTE2ODtENjFDOzExMTIgMTE2ODsKK0Q2MUQ7RDYxRDsxMTEyIDExNjggMTFBODtENjFEOzExMTIgMTE2OCAxMUE4OworRDYxRTtENjFFOzExMTIgMTE2OCAxMUE5O0Q2MUU7MTExMiAxMTY4IDExQTk7CitENjFGO0Q2MUY7MTExMiAxMTY4IDExQUE7RDYxRjsxMTEyIDExNjggMTFBQTsKK0Q2MjA7RDYyMDsxMTEyIDExNjggMTFBQjtENjIwOzExMTIgMTE2OCAxMUFCOworRDYyMTtENjIxOzExMTIgMTE2OCAxMUFDO0Q2MjE7MTExMiAxMTY4IDExQUM7CitENjIyO0Q2MjI7MTExMiAxMTY4IDExQUQ7RDYyMjsxMTEyIDExNjggMTFBRDsKK0Q2MjM7RDYyMzsxMTEyIDExNjggMTFBRTtENjIzOzExMTIgMTE2OCAxMUFFOworRDYyNDtENjI0OzExMTIgMTE2OCAxMUFGO0Q2MjQ7MTExMiAxMTY4IDExQUY7CitENjI1O0Q2MjU7MTExMiAxMTY4IDExQjA7RDYyNTsxMTEyIDExNjggMTFCMDsKK0Q2MjY7RDYyNjsxMTEyIDExNjggMTFCMTtENjI2OzExMTIgMTE2OCAxMUIxOworRDYyNztENjI3OzExMTIgMTE2OCAxMUIyO0Q2Mjc7MTExMiAxMTY4IDExQjI7CitENjI4O0Q2Mjg7MTExMiAxMTY4IDExQjM7RDYyODsxMTEyIDExNjggMTFCMzsKK0Q2Mjk7RDYyOTsxMTEyIDExNjggMTFCNDtENjI5OzExMTIgMTE2OCAxMUI0OworRDYyQTtENjJBOzExMTIgMTE2OCAxMUI1O0Q2MkE7MTExMiAxMTY4IDExQjU7CitENjJCO0Q2MkI7MTExMiAxMTY4IDExQjY7RDYyQjsxMTEyIDExNjggMTFCNjsKK0Q2MkM7RDYyQzsxMTEyIDExNjggMTFCNztENjJDOzExMTIgMTE2OCAxMUI3OworRDYyRDtENjJEOzExMTIgMTE2OCAxMUI4O0Q2MkQ7MTExMiAxMTY4IDExQjg7CitENjJFO0Q2MkU7MTExMiAxMTY4IDExQjk7RDYyRTsxMTEyIDExNjggMTFCOTsKK0Q2MkY7RDYyRjsxMTEyIDExNjggMTFCQTtENjJGOzExMTIgMTE2OCAxMUJBOworRDYzMDtENjMwOzExMTIgMTE2OCAxMUJCO0Q2MzA7MTExMiAxMTY4IDExQkI7CitENjMxO0Q2MzE7MTExMiAxMTY4IDExQkM7RDYzMTsxMTEyIDExNjggMTFCQzsKK0Q2MzI7RDYzMjsxMTEyIDExNjggMTFCRDtENjMyOzExMTIgMTE2OCAxMUJEOworRDYzMztENjMzOzExMTIgMTE2OCAxMUJFO0Q2MzM7MTExMiAxMTY4IDExQkU7CitENjM0O0Q2MzQ7MTExMiAxMTY4IDExQkY7RDYzNDsxMTEyIDExNjggMTFCRjsKK0Q2MzU7RDYzNTsxMTEyIDExNjggMTFDMDtENjM1OzExMTIgMTE2OCAxMUMwOworRDYzNjtENjM2OzExMTIgMTE2OCAxMUMxO0Q2MzY7MTExMiAxMTY4IDExQzE7CitENjM3O0Q2Mzc7MTExMiAxMTY4IDExQzI7RDYzNzsxMTEyIDExNjggMTFDMjsKK0Q2Mzg7RDYzODsxMTEyIDExNjk7RDYzODsxMTEyIDExNjk7CitENjM5O0Q2Mzk7MTExMiAxMTY5IDExQTg7RDYzOTsxMTEyIDExNjkgMTFBODsKK0Q2M0E7RDYzQTsxMTEyIDExNjkgMTFBOTtENjNBOzExMTIgMTE2OSAxMUE5OworRDYzQjtENjNCOzExMTIgMTE2OSAxMUFBO0Q2M0I7MTExMiAxMTY5IDExQUE7CitENjNDO0Q2M0M7MTExMiAxMTY5IDExQUI7RDYzQzsxMTEyIDExNjkgMTFBQjsKK0Q2M0Q7RDYzRDsxMTEyIDExNjkgMTFBQztENjNEOzExMTIgMTE2OSAxMUFDOworRDYzRTtENjNFOzExMTIgMTE2OSAxMUFEO0Q2M0U7MTExMiAxMTY5IDExQUQ7CitENjNGO0Q2M0Y7MTExMiAxMTY5IDExQUU7RDYzRjsxMTEyIDExNjkgMTFBRTsKK0Q2NDA7RDY0MDsxMTEyIDExNjkgMTFBRjtENjQwOzExMTIgMTE2OSAxMUFGOworRDY0MTtENjQxOzExMTIgMTE2OSAxMUIwO0Q2NDE7MTExMiAxMTY5IDExQjA7CitENjQyO0Q2NDI7MTExMiAxMTY5IDExQjE7RDY0MjsxMTEyIDExNjkgMTFCMTsKK0Q2NDM7RDY0MzsxMTEyIDExNjkgMTFCMjtENjQzOzExMTIgMTE2OSAxMUIyOworRDY0NDtENjQ0OzExMTIgMTE2OSAxMUIzO0Q2NDQ7MTExMiAxMTY5IDExQjM7CitENjQ1O0Q2NDU7MTExMiAxMTY5IDExQjQ7RDY0NTsxMTEyIDExNjkgMTFCNDsKK0Q2NDY7RDY0NjsxMTEyIDExNjkgMTFCNTtENjQ2OzExMTIgMTE2OSAxMUI1OworRDY0NztENjQ3OzExMTIgMTE2OSAxMUI2O0Q2NDc7MTExMiAxMTY5IDExQjY7CitENjQ4O0Q2NDg7MTExMiAxMTY5IDExQjc7RDY0ODsxMTEyIDExNjkgMTFCNzsKK0Q2NDk7RDY0OTsxMTEyIDExNjkgMTFCODtENjQ5OzExMTIgMTE2OSAxMUI4OworRDY0QTtENjRBOzExMTIgMTE2OSAxMUI5O0Q2NEE7MTExMiAxMTY5IDExQjk7CitENjRCO0Q2NEI7MTExMiAxMTY5IDExQkE7RDY0QjsxMTEyIDExNjkgMTFCQTsKK0Q2NEM7RDY0QzsxMTEyIDExNjkgMTFCQjtENjRDOzExMTIgMTE2OSAxMUJCOworRDY0RDtENjREOzExMTIgMTE2OSAxMUJDO0Q2NEQ7MTExMiAxMTY5IDExQkM7CitENjRFO0Q2NEU7MTExMiAxMTY5IDExQkQ7RDY0RTsxMTEyIDExNjkgMTFCRDsKK0Q2NEY7RDY0RjsxMTEyIDExNjkgMTFCRTtENjRGOzExMTIgMTE2OSAxMUJFOworRDY1MDtENjUwOzExMTIgMTE2OSAxMUJGO0Q2NTA7MTExMiAxMTY5IDExQkY7CitENjUxO0Q2NTE7MTExMiAxMTY5IDExQzA7RDY1MTsxMTEyIDExNjkgMTFDMDsKK0Q2NTI7RDY1MjsxMTEyIDExNjkgMTFDMTtENjUyOzExMTIgMTE2OSAxMUMxOworRDY1MztENjUzOzExMTIgMTE2OSAxMUMyO0Q2NTM7MTExMiAxMTY5IDExQzI7CitENjU0O0Q2NTQ7MTExMiAxMTZBO0Q2NTQ7MTExMiAxMTZBOworRDY1NTtENjU1OzExMTIgMTE2QSAxMUE4O0Q2NTU7MTExMiAxMTZBIDExQTg7CitENjU2O0Q2NTY7MTExMiAxMTZBIDExQTk7RDY1NjsxMTEyIDExNkEgMTFBOTsKK0Q2NTc7RDY1NzsxMTEyIDExNkEgMTFBQTtENjU3OzExMTIgMTE2QSAxMUFBOworRDY1ODtENjU4OzExMTIgMTE2QSAxMUFCO0Q2NTg7MTExMiAxMTZBIDExQUI7CitENjU5O0Q2NTk7MTExMiAxMTZBIDExQUM7RDY1OTsxMTEyIDExNkEgMTFBQzsKK0Q2NUE7RDY1QTsxMTEyIDExNkEgMTFBRDtENjVBOzExMTIgMTE2QSAxMUFEOworRDY1QjtENjVCOzExMTIgMTE2QSAxMUFFO0Q2NUI7MTExMiAxMTZBIDExQUU7CitENjVDO0Q2NUM7MTExMiAxMTZBIDExQUY7RDY1QzsxMTEyIDExNkEgMTFBRjsKK0Q2NUQ7RDY1RDsxMTEyIDExNkEgMTFCMDtENjVEOzExMTIgMTE2QSAxMUIwOworRDY1RTtENjVFOzExMTIgMTE2QSAxMUIxO0Q2NUU7MTExMiAxMTZBIDExQjE7CitENjVGO0Q2NUY7MTExMiAxMTZBIDExQjI7RDY1RjsxMTEyIDExNkEgMTFCMjsKK0Q2NjA7RDY2MDsxMTEyIDExNkEgMTFCMztENjYwOzExMTIgMTE2QSAxMUIzOworRDY2MTtENjYxOzExMTIgMTE2QSAxMUI0O0Q2NjE7MTExMiAxMTZBIDExQjQ7CitENjYyO0Q2NjI7MTExMiAxMTZBIDExQjU7RDY2MjsxMTEyIDExNkEgMTFCNTsKK0Q2NjM7RDY2MzsxMTEyIDExNkEgMTFCNjtENjYzOzExMTIgMTE2QSAxMUI2OworRDY2NDtENjY0OzExMTIgMTE2QSAxMUI3O0Q2NjQ7MTExMiAxMTZBIDExQjc7CitENjY1O0Q2NjU7MTExMiAxMTZBIDExQjg7RDY2NTsxMTEyIDExNkEgMTFCODsKK0Q2NjY7RDY2NjsxMTEyIDExNkEgMTFCOTtENjY2OzExMTIgMTE2QSAxMUI5OworRDY2NztENjY3OzExMTIgMTE2QSAxMUJBO0Q2Njc7MTExMiAxMTZBIDExQkE7CitENjY4O0Q2Njg7MTExMiAxMTZBIDExQkI7RDY2ODsxMTEyIDExNkEgMTFCQjsKK0Q2Njk7RDY2OTsxMTEyIDExNkEgMTFCQztENjY5OzExMTIgMTE2QSAxMUJDOworRDY2QTtENjZBOzExMTIgMTE2QSAxMUJEO0Q2NkE7MTExMiAxMTZBIDExQkQ7CitENjZCO0Q2NkI7MTExMiAxMTZBIDExQkU7RDY2QjsxMTEyIDExNkEgMTFCRTsKK0Q2NkM7RDY2QzsxMTEyIDExNkEgMTFCRjtENjZDOzExMTIgMTE2QSAxMUJGOworRDY2RDtENjZEOzExMTIgMTE2QSAxMUMwO0Q2NkQ7MTExMiAxMTZBIDExQzA7CitENjZFO0Q2NkU7MTExMiAxMTZBIDExQzE7RDY2RTsxMTEyIDExNkEgMTFDMTsKK0Q2NkY7RDY2RjsxMTEyIDExNkEgMTFDMjtENjZGOzExMTIgMTE2QSAxMUMyOworRDY3MDtENjcwOzExMTIgMTE2QjtENjcwOzExMTIgMTE2QjsKK0Q2NzE7RDY3MTsxMTEyIDExNkIgMTFBODtENjcxOzExMTIgMTE2QiAxMUE4OworRDY3MjtENjcyOzExMTIgMTE2QiAxMUE5O0Q2NzI7MTExMiAxMTZCIDExQTk7CitENjczO0Q2NzM7MTExMiAxMTZCIDExQUE7RDY3MzsxMTEyIDExNkIgMTFBQTsKK0Q2NzQ7RDY3NDsxMTEyIDExNkIgMTFBQjtENjc0OzExMTIgMTE2QiAxMUFCOworRDY3NTtENjc1OzExMTIgMTE2QiAxMUFDO0Q2NzU7MTExMiAxMTZCIDExQUM7CitENjc2O0Q2NzY7MTExMiAxMTZCIDExQUQ7RDY3NjsxMTEyIDExNkIgMTFBRDsKK0Q2Nzc7RDY3NzsxMTEyIDExNkIgMTFBRTtENjc3OzExMTIgMTE2QiAxMUFFOworRDY3ODtENjc4OzExMTIgMTE2QiAxMUFGO0Q2Nzg7MTExMiAxMTZCIDExQUY7CitENjc5O0Q2Nzk7MTExMiAxMTZCIDExQjA7RDY3OTsxMTEyIDExNkIgMTFCMDsKK0Q2N0E7RDY3QTsxMTEyIDExNkIgMTFCMTtENjdBOzExMTIgMTE2QiAxMUIxOworRDY3QjtENjdCOzExMTIgMTE2QiAxMUIyO0Q2N0I7MTExMiAxMTZCIDExQjI7CitENjdDO0Q2N0M7MTExMiAxMTZCIDExQjM7RDY3QzsxMTEyIDExNkIgMTFCMzsKK0Q2N0Q7RDY3RDsxMTEyIDExNkIgMTFCNDtENjdEOzExMTIgMTE2QiAxMUI0OworRDY3RTtENjdFOzExMTIgMTE2QiAxMUI1O0Q2N0U7MTExMiAxMTZCIDExQjU7CitENjdGO0Q2N0Y7MTExMiAxMTZCIDExQjY7RDY3RjsxMTEyIDExNkIgMTFCNjsKK0Q2ODA7RDY4MDsxMTEyIDExNkIgMTFCNztENjgwOzExMTIgMTE2QiAxMUI3OworRDY4MTtENjgxOzExMTIgMTE2QiAxMUI4O0Q2ODE7MTExMiAxMTZCIDExQjg7CitENjgyO0Q2ODI7MTExMiAxMTZCIDExQjk7RDY4MjsxMTEyIDExNkIgMTFCOTsKK0Q2ODM7RDY4MzsxMTEyIDExNkIgMTFCQTtENjgzOzExMTIgMTE2QiAxMUJBOworRDY4NDtENjg0OzExMTIgMTE2QiAxMUJCO0Q2ODQ7MTExMiAxMTZCIDExQkI7CitENjg1O0Q2ODU7MTExMiAxMTZCIDExQkM7RDY4NTsxMTEyIDExNkIgMTFCQzsKK0Q2ODY7RDY4NjsxMTEyIDExNkIgMTFCRDtENjg2OzExMTIgMTE2QiAxMUJEOworRDY4NztENjg3OzExMTIgMTE2QiAxMUJFO0Q2ODc7MTExMiAxMTZCIDExQkU7CitENjg4O0Q2ODg7MTExMiAxMTZCIDExQkY7RDY4ODsxMTEyIDExNkIgMTFCRjsKK0Q2ODk7RDY4OTsxMTEyIDExNkIgMTFDMDtENjg5OzExMTIgMTE2QiAxMUMwOworRDY4QTtENjhBOzExMTIgMTE2QiAxMUMxO0Q2OEE7MTExMiAxMTZCIDExQzE7CitENjhCO0Q2OEI7MTExMiAxMTZCIDExQzI7RDY4QjsxMTEyIDExNkIgMTFDMjsKK0Q2OEM7RDY4QzsxMTEyIDExNkM7RDY4QzsxMTEyIDExNkM7CitENjhEO0Q2OEQ7MTExMiAxMTZDIDExQTg7RDY4RDsxMTEyIDExNkMgMTFBODsKK0Q2OEU7RDY4RTsxMTEyIDExNkMgMTFBOTtENjhFOzExMTIgMTE2QyAxMUE5OworRDY4RjtENjhGOzExMTIgMTE2QyAxMUFBO0Q2OEY7MTExMiAxMTZDIDExQUE7CitENjkwO0Q2OTA7MTExMiAxMTZDIDExQUI7RDY5MDsxMTEyIDExNkMgMTFBQjsKK0Q2OTE7RDY5MTsxMTEyIDExNkMgMTFBQztENjkxOzExMTIgMTE2QyAxMUFDOworRDY5MjtENjkyOzExMTIgMTE2QyAxMUFEO0Q2OTI7MTExMiAxMTZDIDExQUQ7CitENjkzO0Q2OTM7MTExMiAxMTZDIDExQUU7RDY5MzsxMTEyIDExNkMgMTFBRTsKK0Q2OTQ7RDY5NDsxMTEyIDExNkMgMTFBRjtENjk0OzExMTIgMTE2QyAxMUFGOworRDY5NTtENjk1OzExMTIgMTE2QyAxMUIwO0Q2OTU7MTExMiAxMTZDIDExQjA7CitENjk2O0Q2OTY7MTExMiAxMTZDIDExQjE7RDY5NjsxMTEyIDExNkMgMTFCMTsKK0Q2OTc7RDY5NzsxMTEyIDExNkMgMTFCMjtENjk3OzExMTIgMTE2QyAxMUIyOworRDY5ODtENjk4OzExMTIgMTE2QyAxMUIzO0Q2OTg7MTExMiAxMTZDIDExQjM7CitENjk5O0Q2OTk7MTExMiAxMTZDIDExQjQ7RDY5OTsxMTEyIDExNkMgMTFCNDsKK0Q2OUE7RDY5QTsxMTEyIDExNkMgMTFCNTtENjlBOzExMTIgMTE2QyAxMUI1OworRDY5QjtENjlCOzExMTIgMTE2QyAxMUI2O0Q2OUI7MTExMiAxMTZDIDExQjY7CitENjlDO0Q2OUM7MTExMiAxMTZDIDExQjc7RDY5QzsxMTEyIDExNkMgMTFCNzsKK0Q2OUQ7RDY5RDsxMTEyIDExNkMgMTFCODtENjlEOzExMTIgMTE2QyAxMUI4OworRDY5RTtENjlFOzExMTIgMTE2QyAxMUI5O0Q2OUU7MTExMiAxMTZDIDExQjk7CitENjlGO0Q2OUY7MTExMiAxMTZDIDExQkE7RDY5RjsxMTEyIDExNkMgMTFCQTsKK0Q2QTA7RDZBMDsxMTEyIDExNkMgMTFCQjtENkEwOzExMTIgMTE2QyAxMUJCOworRDZBMTtENkExOzExMTIgMTE2QyAxMUJDO0Q2QTE7MTExMiAxMTZDIDExQkM7CitENkEyO0Q2QTI7MTExMiAxMTZDIDExQkQ7RDZBMjsxMTEyIDExNkMgMTFCRDsKK0Q2QTM7RDZBMzsxMTEyIDExNkMgMTFCRTtENkEzOzExMTIgMTE2QyAxMUJFOworRDZBNDtENkE0OzExMTIgMTE2QyAxMUJGO0Q2QTQ7MTExMiAxMTZDIDExQkY7CitENkE1O0Q2QTU7MTExMiAxMTZDIDExQzA7RDZBNTsxMTEyIDExNkMgMTFDMDsKK0Q2QTY7RDZBNjsxMTEyIDExNkMgMTFDMTtENkE2OzExMTIgMTE2QyAxMUMxOworRDZBNztENkE3OzExMTIgMTE2QyAxMUMyO0Q2QTc7MTExMiAxMTZDIDExQzI7CitENkE4O0Q2QTg7MTExMiAxMTZEO0Q2QTg7MTExMiAxMTZEOworRDZBOTtENkE5OzExMTIgMTE2RCAxMUE4O0Q2QTk7MTExMiAxMTZEIDExQTg7CitENkFBO0Q2QUE7MTExMiAxMTZEIDExQTk7RDZBQTsxMTEyIDExNkQgMTFBOTsKK0Q2QUI7RDZBQjsxMTEyIDExNkQgMTFBQTtENkFCOzExMTIgMTE2RCAxMUFBOworRDZBQztENkFDOzExMTIgMTE2RCAxMUFCO0Q2QUM7MTExMiAxMTZEIDExQUI7CitENkFEO0Q2QUQ7MTExMiAxMTZEIDExQUM7RDZBRDsxMTEyIDExNkQgMTFBQzsKK0Q2QUU7RDZBRTsxMTEyIDExNkQgMTFBRDtENkFFOzExMTIgMTE2RCAxMUFEOworRDZBRjtENkFGOzExMTIgMTE2RCAxMUFFO0Q2QUY7MTExMiAxMTZEIDExQUU7CitENkIwO0Q2QjA7MTExMiAxMTZEIDExQUY7RDZCMDsxMTEyIDExNkQgMTFBRjsKK0Q2QjE7RDZCMTsxMTEyIDExNkQgMTFCMDtENkIxOzExMTIgMTE2RCAxMUIwOworRDZCMjtENkIyOzExMTIgMTE2RCAxMUIxO0Q2QjI7MTExMiAxMTZEIDExQjE7CitENkIzO0Q2QjM7MTExMiAxMTZEIDExQjI7RDZCMzsxMTEyIDExNkQgMTFCMjsKK0Q2QjQ7RDZCNDsxMTEyIDExNkQgMTFCMztENkI0OzExMTIgMTE2RCAxMUIzOworRDZCNTtENkI1OzExMTIgMTE2RCAxMUI0O0Q2QjU7MTExMiAxMTZEIDExQjQ7CitENkI2O0Q2QjY7MTExMiAxMTZEIDExQjU7RDZCNjsxMTEyIDExNkQgMTFCNTsKK0Q2Qjc7RDZCNzsxMTEyIDExNkQgMTFCNjtENkI3OzExMTIgMTE2RCAxMUI2OworRDZCODtENkI4OzExMTIgMTE2RCAxMUI3O0Q2Qjg7MTExMiAxMTZEIDExQjc7CitENkI5O0Q2Qjk7MTExMiAxMTZEIDExQjg7RDZCOTsxMTEyIDExNkQgMTFCODsKK0Q2QkE7RDZCQTsxMTEyIDExNkQgMTFCOTtENkJBOzExMTIgMTE2RCAxMUI5OworRDZCQjtENkJCOzExMTIgMTE2RCAxMUJBO0Q2QkI7MTExMiAxMTZEIDExQkE7CitENkJDO0Q2QkM7MTExMiAxMTZEIDExQkI7RDZCQzsxMTEyIDExNkQgMTFCQjsKK0Q2QkQ7RDZCRDsxMTEyIDExNkQgMTFCQztENkJEOzExMTIgMTE2RCAxMUJDOworRDZCRTtENkJFOzExMTIgMTE2RCAxMUJEO0Q2QkU7MTExMiAxMTZEIDExQkQ7CitENkJGO0Q2QkY7MTExMiAxMTZEIDExQkU7RDZCRjsxMTEyIDExNkQgMTFCRTsKK0Q2QzA7RDZDMDsxMTEyIDExNkQgMTFCRjtENkMwOzExMTIgMTE2RCAxMUJGOworRDZDMTtENkMxOzExMTIgMTE2RCAxMUMwO0Q2QzE7MTExMiAxMTZEIDExQzA7CitENkMyO0Q2QzI7MTExMiAxMTZEIDExQzE7RDZDMjsxMTEyIDExNkQgMTFDMTsKK0Q2QzM7RDZDMzsxMTEyIDExNkQgMTFDMjtENkMzOzExMTIgMTE2RCAxMUMyOworRDZDNDtENkM0OzExMTIgMTE2RTtENkM0OzExMTIgMTE2RTsKK0Q2QzU7RDZDNTsxMTEyIDExNkUgMTFBODtENkM1OzExMTIgMTE2RSAxMUE4OworRDZDNjtENkM2OzExMTIgMTE2RSAxMUE5O0Q2QzY7MTExMiAxMTZFIDExQTk7CitENkM3O0Q2Qzc7MTExMiAxMTZFIDExQUE7RDZDNzsxMTEyIDExNkUgMTFBQTsKK0Q2Qzg7RDZDODsxMTEyIDExNkUgMTFBQjtENkM4OzExMTIgMTE2RSAxMUFCOworRDZDOTtENkM5OzExMTIgMTE2RSAxMUFDO0Q2Qzk7MTExMiAxMTZFIDExQUM7CitENkNBO0Q2Q0E7MTExMiAxMTZFIDExQUQ7RDZDQTsxMTEyIDExNkUgMTFBRDsKK0Q2Q0I7RDZDQjsxMTEyIDExNkUgMTFBRTtENkNCOzExMTIgMTE2RSAxMUFFOworRDZDQztENkNDOzExMTIgMTE2RSAxMUFGO0Q2Q0M7MTExMiAxMTZFIDExQUY7CitENkNEO0Q2Q0Q7MTExMiAxMTZFIDExQjA7RDZDRDsxMTEyIDExNkUgMTFCMDsKK0Q2Q0U7RDZDRTsxMTEyIDExNkUgMTFCMTtENkNFOzExMTIgMTE2RSAxMUIxOworRDZDRjtENkNGOzExMTIgMTE2RSAxMUIyO0Q2Q0Y7MTExMiAxMTZFIDExQjI7CitENkQwO0Q2RDA7MTExMiAxMTZFIDExQjM7RDZEMDsxMTEyIDExNkUgMTFCMzsKK0Q2RDE7RDZEMTsxMTEyIDExNkUgMTFCNDtENkQxOzExMTIgMTE2RSAxMUI0OworRDZEMjtENkQyOzExMTIgMTE2RSAxMUI1O0Q2RDI7MTExMiAxMTZFIDExQjU7CitENkQzO0Q2RDM7MTExMiAxMTZFIDExQjY7RDZEMzsxMTEyIDExNkUgMTFCNjsKK0Q2RDQ7RDZENDsxMTEyIDExNkUgMTFCNztENkQ0OzExMTIgMTE2RSAxMUI3OworRDZENTtENkQ1OzExMTIgMTE2RSAxMUI4O0Q2RDU7MTExMiAxMTZFIDExQjg7CitENkQ2O0Q2RDY7MTExMiAxMTZFIDExQjk7RDZENjsxMTEyIDExNkUgMTFCOTsKK0Q2RDc7RDZENzsxMTEyIDExNkUgMTFCQTtENkQ3OzExMTIgMTE2RSAxMUJBOworRDZEODtENkQ4OzExMTIgMTE2RSAxMUJCO0Q2RDg7MTExMiAxMTZFIDExQkI7CitENkQ5O0Q2RDk7MTExMiAxMTZFIDExQkM7RDZEOTsxMTEyIDExNkUgMTFCQzsKK0Q2REE7RDZEQTsxMTEyIDExNkUgMTFCRDtENkRBOzExMTIgMTE2RSAxMUJEOworRDZEQjtENkRCOzExMTIgMTE2RSAxMUJFO0Q2REI7MTExMiAxMTZFIDExQkU7CitENkRDO0Q2REM7MTExMiAxMTZFIDExQkY7RDZEQzsxMTEyIDExNkUgMTFCRjsKK0Q2REQ7RDZERDsxMTEyIDExNkUgMTFDMDtENkREOzExMTIgMTE2RSAxMUMwOworRDZERTtENkRFOzExMTIgMTE2RSAxMUMxO0Q2REU7MTExMiAxMTZFIDExQzE7CitENkRGO0Q2REY7MTExMiAxMTZFIDExQzI7RDZERjsxMTEyIDExNkUgMTFDMjsKK0Q2RTA7RDZFMDsxMTEyIDExNkY7RDZFMDsxMTEyIDExNkY7CitENkUxO0Q2RTE7MTExMiAxMTZGIDExQTg7RDZFMTsxMTEyIDExNkYgMTFBODsKK0Q2RTI7RDZFMjsxMTEyIDExNkYgMTFBOTtENkUyOzExMTIgMTE2RiAxMUE5OworRDZFMztENkUzOzExMTIgMTE2RiAxMUFBO0Q2RTM7MTExMiAxMTZGIDExQUE7CitENkU0O0Q2RTQ7MTExMiAxMTZGIDExQUI7RDZFNDsxMTEyIDExNkYgMTFBQjsKK0Q2RTU7RDZFNTsxMTEyIDExNkYgMTFBQztENkU1OzExMTIgMTE2RiAxMUFDOworRDZFNjtENkU2OzExMTIgMTE2RiAxMUFEO0Q2RTY7MTExMiAxMTZGIDExQUQ7CitENkU3O0Q2RTc7MTExMiAxMTZGIDExQUU7RDZFNzsxMTEyIDExNkYgMTFBRTsKK0Q2RTg7RDZFODsxMTEyIDExNkYgMTFBRjtENkU4OzExMTIgMTE2RiAxMUFGOworRDZFOTtENkU5OzExMTIgMTE2RiAxMUIwO0Q2RTk7MTExMiAxMTZGIDExQjA7CitENkVBO0Q2RUE7MTExMiAxMTZGIDExQjE7RDZFQTsxMTEyIDExNkYgMTFCMTsKK0Q2RUI7RDZFQjsxMTEyIDExNkYgMTFCMjtENkVCOzExMTIgMTE2RiAxMUIyOworRDZFQztENkVDOzExMTIgMTE2RiAxMUIzO0Q2RUM7MTExMiAxMTZGIDExQjM7CitENkVEO0Q2RUQ7MTExMiAxMTZGIDExQjQ7RDZFRDsxMTEyIDExNkYgMTFCNDsKK0Q2RUU7RDZFRTsxMTEyIDExNkYgMTFCNTtENkVFOzExMTIgMTE2RiAxMUI1OworRDZFRjtENkVGOzExMTIgMTE2RiAxMUI2O0Q2RUY7MTExMiAxMTZGIDExQjY7CitENkYwO0Q2RjA7MTExMiAxMTZGIDExQjc7RDZGMDsxMTEyIDExNkYgMTFCNzsKK0Q2RjE7RDZGMTsxMTEyIDExNkYgMTFCODtENkYxOzExMTIgMTE2RiAxMUI4OworRDZGMjtENkYyOzExMTIgMTE2RiAxMUI5O0Q2RjI7MTExMiAxMTZGIDExQjk7CitENkYzO0Q2RjM7MTExMiAxMTZGIDExQkE7RDZGMzsxMTEyIDExNkYgMTFCQTsKK0Q2RjQ7RDZGNDsxMTEyIDExNkYgMTFCQjtENkY0OzExMTIgMTE2RiAxMUJCOworRDZGNTtENkY1OzExMTIgMTE2RiAxMUJDO0Q2RjU7MTExMiAxMTZGIDExQkM7CitENkY2O0Q2RjY7MTExMiAxMTZGIDExQkQ7RDZGNjsxMTEyIDExNkYgMTFCRDsKK0Q2Rjc7RDZGNzsxMTEyIDExNkYgMTFCRTtENkY3OzExMTIgMTE2RiAxMUJFOworRDZGODtENkY4OzExMTIgMTE2RiAxMUJGO0Q2Rjg7MTExMiAxMTZGIDExQkY7CitENkY5O0Q2Rjk7MTExMiAxMTZGIDExQzA7RDZGOTsxMTEyIDExNkYgMTFDMDsKK0Q2RkE7RDZGQTsxMTEyIDExNkYgMTFDMTtENkZBOzExMTIgMTE2RiAxMUMxOworRDZGQjtENkZCOzExMTIgMTE2RiAxMUMyO0Q2RkI7MTExMiAxMTZGIDExQzI7CitENkZDO0Q2RkM7MTExMiAxMTcwO0Q2RkM7MTExMiAxMTcwOworRDZGRDtENkZEOzExMTIgMTE3MCAxMUE4O0Q2RkQ7MTExMiAxMTcwIDExQTg7CitENkZFO0Q2RkU7MTExMiAxMTcwIDExQTk7RDZGRTsxMTEyIDExNzAgMTFBOTsKK0Q2RkY7RDZGRjsxMTEyIDExNzAgMTFBQTtENkZGOzExMTIgMTE3MCAxMUFBOworRDcwMDtENzAwOzExMTIgMTE3MCAxMUFCO0Q3MDA7MTExMiAxMTcwIDExQUI7CitENzAxO0Q3MDE7MTExMiAxMTcwIDExQUM7RDcwMTsxMTEyIDExNzAgMTFBQzsKK0Q3MDI7RDcwMjsxMTEyIDExNzAgMTFBRDtENzAyOzExMTIgMTE3MCAxMUFEOworRDcwMztENzAzOzExMTIgMTE3MCAxMUFFO0Q3MDM7MTExMiAxMTcwIDExQUU7CitENzA0O0Q3MDQ7MTExMiAxMTcwIDExQUY7RDcwNDsxMTEyIDExNzAgMTFBRjsKK0Q3MDU7RDcwNTsxMTEyIDExNzAgMTFCMDtENzA1OzExMTIgMTE3MCAxMUIwOworRDcwNjtENzA2OzExMTIgMTE3MCAxMUIxO0Q3MDY7MTExMiAxMTcwIDExQjE7CitENzA3O0Q3MDc7MTExMiAxMTcwIDExQjI7RDcwNzsxMTEyIDExNzAgMTFCMjsKK0Q3MDg7RDcwODsxMTEyIDExNzAgMTFCMztENzA4OzExMTIgMTE3MCAxMUIzOworRDcwOTtENzA5OzExMTIgMTE3MCAxMUI0O0Q3MDk7MTExMiAxMTcwIDExQjQ7CitENzBBO0Q3MEE7MTExMiAxMTcwIDExQjU7RDcwQTsxMTEyIDExNzAgMTFCNTsKK0Q3MEI7RDcwQjsxMTEyIDExNzAgMTFCNjtENzBCOzExMTIgMTE3MCAxMUI2OworRDcwQztENzBDOzExMTIgMTE3MCAxMUI3O0Q3MEM7MTExMiAxMTcwIDExQjc7CitENzBEO0Q3MEQ7MTExMiAxMTcwIDExQjg7RDcwRDsxMTEyIDExNzAgMTFCODsKK0Q3MEU7RDcwRTsxMTEyIDExNzAgMTFCOTtENzBFOzExMTIgMTE3MCAxMUI5OworRDcwRjtENzBGOzExMTIgMTE3MCAxMUJBO0Q3MEY7MTExMiAxMTcwIDExQkE7CitENzEwO0Q3MTA7MTExMiAxMTcwIDExQkI7RDcxMDsxMTEyIDExNzAgMTFCQjsKK0Q3MTE7RDcxMTsxMTEyIDExNzAgMTFCQztENzExOzExMTIgMTE3MCAxMUJDOworRDcxMjtENzEyOzExMTIgMTE3MCAxMUJEO0Q3MTI7MTExMiAxMTcwIDExQkQ7CitENzEzO0Q3MTM7MTExMiAxMTcwIDExQkU7RDcxMzsxMTEyIDExNzAgMTFCRTsKK0Q3MTQ7RDcxNDsxMTEyIDExNzAgMTFCRjtENzE0OzExMTIgMTE3MCAxMUJGOworRDcxNTtENzE1OzExMTIgMTE3MCAxMUMwO0Q3MTU7MTExMiAxMTcwIDExQzA7CitENzE2O0Q3MTY7MTExMiAxMTcwIDExQzE7RDcxNjsxMTEyIDExNzAgMTFDMTsKK0Q3MTc7RDcxNzsxMTEyIDExNzAgMTFDMjtENzE3OzExMTIgMTE3MCAxMUMyOworRDcxODtENzE4OzExMTIgMTE3MTtENzE4OzExMTIgMTE3MTsKK0Q3MTk7RDcxOTsxMTEyIDExNzEgMTFBODtENzE5OzExMTIgMTE3MSAxMUE4OworRDcxQTtENzFBOzExMTIgMTE3MSAxMUE5O0Q3MUE7MTExMiAxMTcxIDExQTk7CitENzFCO0Q3MUI7MTExMiAxMTcxIDExQUE7RDcxQjsxMTEyIDExNzEgMTFBQTsKK0Q3MUM7RDcxQzsxMTEyIDExNzEgMTFBQjtENzFDOzExMTIgMTE3MSAxMUFCOworRDcxRDtENzFEOzExMTIgMTE3MSAxMUFDO0Q3MUQ7MTExMiAxMTcxIDExQUM7CitENzFFO0Q3MUU7MTExMiAxMTcxIDExQUQ7RDcxRTsxMTEyIDExNzEgMTFBRDsKK0Q3MUY7RDcxRjsxMTEyIDExNzEgMTFBRTtENzFGOzExMTIgMTE3MSAxMUFFOworRDcyMDtENzIwOzExMTIgMTE3MSAxMUFGO0Q3MjA7MTExMiAxMTcxIDExQUY7CitENzIxO0Q3MjE7MTExMiAxMTcxIDExQjA7RDcyMTsxMTEyIDExNzEgMTFCMDsKK0Q3MjI7RDcyMjsxMTEyIDExNzEgMTFCMTtENzIyOzExMTIgMTE3MSAxMUIxOworRDcyMztENzIzOzExMTIgMTE3MSAxMUIyO0Q3MjM7MTExMiAxMTcxIDExQjI7CitENzI0O0Q3MjQ7MTExMiAxMTcxIDExQjM7RDcyNDsxMTEyIDExNzEgMTFCMzsKK0Q3MjU7RDcyNTsxMTEyIDExNzEgMTFCNDtENzI1OzExMTIgMTE3MSAxMUI0OworRDcyNjtENzI2OzExMTIgMTE3MSAxMUI1O0Q3MjY7MTExMiAxMTcxIDExQjU7CitENzI3O0Q3Mjc7MTExMiAxMTcxIDExQjY7RDcyNzsxMTEyIDExNzEgMTFCNjsKK0Q3Mjg7RDcyODsxMTEyIDExNzEgMTFCNztENzI4OzExMTIgMTE3MSAxMUI3OworRDcyOTtENzI5OzExMTIgMTE3MSAxMUI4O0Q3Mjk7MTExMiAxMTcxIDExQjg7CitENzJBO0Q3MkE7MTExMiAxMTcxIDExQjk7RDcyQTsxMTEyIDExNzEgMTFCOTsKK0Q3MkI7RDcyQjsxMTEyIDExNzEgMTFCQTtENzJCOzExMTIgMTE3MSAxMUJBOworRDcyQztENzJDOzExMTIgMTE3MSAxMUJCO0Q3MkM7MTExMiAxMTcxIDExQkI7CitENzJEO0Q3MkQ7MTExMiAxMTcxIDExQkM7RDcyRDsxMTEyIDExNzEgMTFCQzsKK0Q3MkU7RDcyRTsxMTEyIDExNzEgMTFCRDtENzJFOzExMTIgMTE3MSAxMUJEOworRDcyRjtENzJGOzExMTIgMTE3MSAxMUJFO0Q3MkY7MTExMiAxMTcxIDExQkU7CitENzMwO0Q3MzA7MTExMiAxMTcxIDExQkY7RDczMDsxMTEyIDExNzEgMTFCRjsKK0Q3MzE7RDczMTsxMTEyIDExNzEgMTFDMDtENzMxOzExMTIgMTE3MSAxMUMwOworRDczMjtENzMyOzExMTIgMTE3MSAxMUMxO0Q3MzI7MTExMiAxMTcxIDExQzE7CitENzMzO0Q3MzM7MTExMiAxMTcxIDExQzI7RDczMzsxMTEyIDExNzEgMTFDMjsKK0Q3MzQ7RDczNDsxMTEyIDExNzI7RDczNDsxMTEyIDExNzI7CitENzM1O0Q3MzU7MTExMiAxMTcyIDExQTg7RDczNTsxMTEyIDExNzIgMTFBODsKK0Q3MzY7RDczNjsxMTEyIDExNzIgMTFBOTtENzM2OzExMTIgMTE3MiAxMUE5OworRDczNztENzM3OzExMTIgMTE3MiAxMUFBO0Q3Mzc7MTExMiAxMTcyIDExQUE7CitENzM4O0Q3Mzg7MTExMiAxMTcyIDExQUI7RDczODsxMTEyIDExNzIgMTFBQjsKK0Q3Mzk7RDczOTsxMTEyIDExNzIgMTFBQztENzM5OzExMTIgMTE3MiAxMUFDOworRDczQTtENzNBOzExMTIgMTE3MiAxMUFEO0Q3M0E7MTExMiAxMTcyIDExQUQ7CitENzNCO0Q3M0I7MTExMiAxMTcyIDExQUU7RDczQjsxMTEyIDExNzIgMTFBRTsKK0Q3M0M7RDczQzsxMTEyIDExNzIgMTFBRjtENzNDOzExMTIgMTE3MiAxMUFGOworRDczRDtENzNEOzExMTIgMTE3MiAxMUIwO0Q3M0Q7MTExMiAxMTcyIDExQjA7CitENzNFO0Q3M0U7MTExMiAxMTcyIDExQjE7RDczRTsxMTEyIDExNzIgMTFCMTsKK0Q3M0Y7RDczRjsxMTEyIDExNzIgMTFCMjtENzNGOzExMTIgMTE3MiAxMUIyOworRDc0MDtENzQwOzExMTIgMTE3MiAxMUIzO0Q3NDA7MTExMiAxMTcyIDExQjM7CitENzQxO0Q3NDE7MTExMiAxMTcyIDExQjQ7RDc0MTsxMTEyIDExNzIgMTFCNDsKK0Q3NDI7RDc0MjsxMTEyIDExNzIgMTFCNTtENzQyOzExMTIgMTE3MiAxMUI1OworRDc0MztENzQzOzExMTIgMTE3MiAxMUI2O0Q3NDM7MTExMiAxMTcyIDExQjY7CitENzQ0O0Q3NDQ7MTExMiAxMTcyIDExQjc7RDc0NDsxMTEyIDExNzIgMTFCNzsKK0Q3NDU7RDc0NTsxMTEyIDExNzIgMTFCODtENzQ1OzExMTIgMTE3MiAxMUI4OworRDc0NjtENzQ2OzExMTIgMTE3MiAxMUI5O0Q3NDY7MTExMiAxMTcyIDExQjk7CitENzQ3O0Q3NDc7MTExMiAxMTcyIDExQkE7RDc0NzsxMTEyIDExNzIgMTFCQTsKK0Q3NDg7RDc0ODsxMTEyIDExNzIgMTFCQjtENzQ4OzExMTIgMTE3MiAxMUJCOworRDc0OTtENzQ5OzExMTIgMTE3MiAxMUJDO0Q3NDk7MTExMiAxMTcyIDExQkM7CitENzRBO0Q3NEE7MTExMiAxMTcyIDExQkQ7RDc0QTsxMTEyIDExNzIgMTFCRDsKK0Q3NEI7RDc0QjsxMTEyIDExNzIgMTFCRTtENzRCOzExMTIgMTE3MiAxMUJFOworRDc0QztENzRDOzExMTIgMTE3MiAxMUJGO0Q3NEM7MTExMiAxMTcyIDExQkY7CitENzREO0Q3NEQ7MTExMiAxMTcyIDExQzA7RDc0RDsxMTEyIDExNzIgMTFDMDsKK0Q3NEU7RDc0RTsxMTEyIDExNzIgMTFDMTtENzRFOzExMTIgMTE3MiAxMUMxOworRDc0RjtENzRGOzExMTIgMTE3MiAxMUMyO0Q3NEY7MTExMiAxMTcyIDExQzI7CitENzUwO0Q3NTA7MTExMiAxMTczO0Q3NTA7MTExMiAxMTczOworRDc1MTtENzUxOzExMTIgMTE3MyAxMUE4O0Q3NTE7MTExMiAxMTczIDExQTg7CitENzUyO0Q3NTI7MTExMiAxMTczIDExQTk7RDc1MjsxMTEyIDExNzMgMTFBOTsKK0Q3NTM7RDc1MzsxMTEyIDExNzMgMTFBQTtENzUzOzExMTIgMTE3MyAxMUFBOworRDc1NDtENzU0OzExMTIgMTE3MyAxMUFCO0Q3NTQ7MTExMiAxMTczIDExQUI7CitENzU1O0Q3NTU7MTExMiAxMTczIDExQUM7RDc1NTsxMTEyIDExNzMgMTFBQzsKK0Q3NTY7RDc1NjsxMTEyIDExNzMgMTFBRDtENzU2OzExMTIgMTE3MyAxMUFEOworRDc1NztENzU3OzExMTIgMTE3MyAxMUFFO0Q3NTc7MTExMiAxMTczIDExQUU7CitENzU4O0Q3NTg7MTExMiAxMTczIDExQUY7RDc1ODsxMTEyIDExNzMgMTFBRjsKK0Q3NTk7RDc1OTsxMTEyIDExNzMgMTFCMDtENzU5OzExMTIgMTE3MyAxMUIwOworRDc1QTtENzVBOzExMTIgMTE3MyAxMUIxO0Q3NUE7MTExMiAxMTczIDExQjE7CitENzVCO0Q3NUI7MTExMiAxMTczIDExQjI7RDc1QjsxMTEyIDExNzMgMTFCMjsKK0Q3NUM7RDc1QzsxMTEyIDExNzMgMTFCMztENzVDOzExMTIgMTE3MyAxMUIzOworRDc1RDtENzVEOzExMTIgMTE3MyAxMUI0O0Q3NUQ7MTExMiAxMTczIDExQjQ7CitENzVFO0Q3NUU7MTExMiAxMTczIDExQjU7RDc1RTsxMTEyIDExNzMgMTFCNTsKK0Q3NUY7RDc1RjsxMTEyIDExNzMgMTFCNjtENzVGOzExMTIgMTE3MyAxMUI2OworRDc2MDtENzYwOzExMTIgMTE3MyAxMUI3O0Q3NjA7MTExMiAxMTczIDExQjc7CitENzYxO0Q3NjE7MTExMiAxMTczIDExQjg7RDc2MTsxMTEyIDExNzMgMTFCODsKK0Q3NjI7RDc2MjsxMTEyIDExNzMgMTFCOTtENzYyOzExMTIgMTE3MyAxMUI5OworRDc2MztENzYzOzExMTIgMTE3MyAxMUJBO0Q3NjM7MTExMiAxMTczIDExQkE7CitENzY0O0Q3NjQ7MTExMiAxMTczIDExQkI7RDc2NDsxMTEyIDExNzMgMTFCQjsKK0Q3NjU7RDc2NTsxMTEyIDExNzMgMTFCQztENzY1OzExMTIgMTE3MyAxMUJDOworRDc2NjtENzY2OzExMTIgMTE3MyAxMUJEO0Q3NjY7MTExMiAxMTczIDExQkQ7CitENzY3O0Q3Njc7MTExMiAxMTczIDExQkU7RDc2NzsxMTEyIDExNzMgMTFCRTsKK0Q3Njg7RDc2ODsxMTEyIDExNzMgMTFCRjtENzY4OzExMTIgMTE3MyAxMUJGOworRDc2OTtENzY5OzExMTIgMTE3MyAxMUMwO0Q3Njk7MTExMiAxMTczIDExQzA7CitENzZBO0Q3NkE7MTExMiAxMTczIDExQzE7RDc2QTsxMTEyIDExNzMgMTFDMTsKK0Q3NkI7RDc2QjsxMTEyIDExNzMgMTFDMjtENzZCOzExMTIgMTE3MyAxMUMyOworRDc2QztENzZDOzExMTIgMTE3NDtENzZDOzExMTIgMTE3NDsKK0Q3NkQ7RDc2RDsxMTEyIDExNzQgMTFBODtENzZEOzExMTIgMTE3NCAxMUE4OworRDc2RTtENzZFOzExMTIgMTE3NCAxMUE5O0Q3NkU7MTExMiAxMTc0IDExQTk7CitENzZGO0Q3NkY7MTExMiAxMTc0IDExQUE7RDc2RjsxMTEyIDExNzQgMTFBQTsKK0Q3NzA7RDc3MDsxMTEyIDExNzQgMTFBQjtENzcwOzExMTIgMTE3NCAxMUFCOworRDc3MTtENzcxOzExMTIgMTE3NCAxMUFDO0Q3NzE7MTExMiAxMTc0IDExQUM7CitENzcyO0Q3NzI7MTExMiAxMTc0IDExQUQ7RDc3MjsxMTEyIDExNzQgMTFBRDsKK0Q3NzM7RDc3MzsxMTEyIDExNzQgMTFBRTtENzczOzExMTIgMTE3NCAxMUFFOworRDc3NDtENzc0OzExMTIgMTE3NCAxMUFGO0Q3NzQ7MTExMiAxMTc0IDExQUY7CitENzc1O0Q3NzU7MTExMiAxMTc0IDExQjA7RDc3NTsxMTEyIDExNzQgMTFCMDsKK0Q3NzY7RDc3NjsxMTEyIDExNzQgMTFCMTtENzc2OzExMTIgMTE3NCAxMUIxOworRDc3NztENzc3OzExMTIgMTE3NCAxMUIyO0Q3Nzc7MTExMiAxMTc0IDExQjI7CitENzc4O0Q3Nzg7MTExMiAxMTc0IDExQjM7RDc3ODsxMTEyIDExNzQgMTFCMzsKK0Q3Nzk7RDc3OTsxMTEyIDExNzQgMTFCNDtENzc5OzExMTIgMTE3NCAxMUI0OworRDc3QTtENzdBOzExMTIgMTE3NCAxMUI1O0Q3N0E7MTExMiAxMTc0IDExQjU7CitENzdCO0Q3N0I7MTExMiAxMTc0IDExQjY7RDc3QjsxMTEyIDExNzQgMTFCNjsKK0Q3N0M7RDc3QzsxMTEyIDExNzQgMTFCNztENzdDOzExMTIgMTE3NCAxMUI3OworRDc3RDtENzdEOzExMTIgMTE3NCAxMUI4O0Q3N0Q7MTExMiAxMTc0IDExQjg7CitENzdFO0Q3N0U7MTExMiAxMTc0IDExQjk7RDc3RTsxMTEyIDExNzQgMTFCOTsKK0Q3N0Y7RDc3RjsxMTEyIDExNzQgMTFCQTtENzdGOzExMTIgMTE3NCAxMUJBOworRDc4MDtENzgwOzExMTIgMTE3NCAxMUJCO0Q3ODA7MTExMiAxMTc0IDExQkI7CitENzgxO0Q3ODE7MTExMiAxMTc0IDExQkM7RDc4MTsxMTEyIDExNzQgMTFCQzsKK0Q3ODI7RDc4MjsxMTEyIDExNzQgMTFCRDtENzgyOzExMTIgMTE3NCAxMUJEOworRDc4MztENzgzOzExMTIgMTE3NCAxMUJFO0Q3ODM7MTExMiAxMTc0IDExQkU7CitENzg0O0Q3ODQ7MTExMiAxMTc0IDExQkY7RDc4NDsxMTEyIDExNzQgMTFCRjsKK0Q3ODU7RDc4NTsxMTEyIDExNzQgMTFDMDtENzg1OzExMTIgMTE3NCAxMUMwOworRDc4NjtENzg2OzExMTIgMTE3NCAxMUMxO0Q3ODY7MTExMiAxMTc0IDExQzE7CitENzg3O0Q3ODc7MTExMiAxMTc0IDExQzI7RDc4NzsxMTEyIDExNzQgMTFDMjsKK0Q3ODg7RDc4ODsxMTEyIDExNzU7RDc4ODsxMTEyIDExNzU7CitENzg5O0Q3ODk7MTExMiAxMTc1IDExQTg7RDc4OTsxMTEyIDExNzUgMTFBODsKK0Q3OEE7RDc4QTsxMTEyIDExNzUgMTFBOTtENzhBOzExMTIgMTE3NSAxMUE5OworRDc4QjtENzhCOzExMTIgMTE3NSAxMUFBO0Q3OEI7MTExMiAxMTc1IDExQUE7CitENzhDO0Q3OEM7MTExMiAxMTc1IDExQUI7RDc4QzsxMTEyIDExNzUgMTFBQjsKK0Q3OEQ7RDc4RDsxMTEyIDExNzUgMTFBQztENzhEOzExMTIgMTE3NSAxMUFDOworRDc4RTtENzhFOzExMTIgMTE3NSAxMUFEO0Q3OEU7MTExMiAxMTc1IDExQUQ7CitENzhGO0Q3OEY7MTExMiAxMTc1IDExQUU7RDc4RjsxMTEyIDExNzUgMTFBRTsKK0Q3OTA7RDc5MDsxMTEyIDExNzUgMTFBRjtENzkwOzExMTIgMTE3NSAxMUFGOworRDc5MTtENzkxOzExMTIgMTE3NSAxMUIwO0Q3OTE7MTExMiAxMTc1IDExQjA7CitENzkyO0Q3OTI7MTExMiAxMTc1IDExQjE7RDc5MjsxMTEyIDExNzUgMTFCMTsKK0Q3OTM7RDc5MzsxMTEyIDExNzUgMTFCMjtENzkzOzExMTIgMTE3NSAxMUIyOworRDc5NDtENzk0OzExMTIgMTE3NSAxMUIzO0Q3OTQ7MTExMiAxMTc1IDExQjM7CitENzk1O0Q3OTU7MTExMiAxMTc1IDExQjQ7RDc5NTsxMTEyIDExNzUgMTFCNDsKK0Q3OTY7RDc5NjsxMTEyIDExNzUgMTFCNTtENzk2OzExMTIgMTE3NSAxMUI1OworRDc5NztENzk3OzExMTIgMTE3NSAxMUI2O0Q3OTc7MTExMiAxMTc1IDExQjY7CitENzk4O0Q3OTg7MTExMiAxMTc1IDExQjc7RDc5ODsxMTEyIDExNzUgMTFCNzsKK0Q3OTk7RDc5OTsxMTEyIDExNzUgMTFCODtENzk5OzExMTIgMTE3NSAxMUI4OworRDc5QTtENzlBOzExMTIgMTE3NSAxMUI5O0Q3OUE7MTExMiAxMTc1IDExQjk7CitENzlCO0Q3OUI7MTExMiAxMTc1IDExQkE7RDc5QjsxMTEyIDExNzUgMTFCQTsKK0Q3OUM7RDc5QzsxMTEyIDExNzUgMTFCQjtENzlDOzExMTIgMTE3NSAxMUJCOworRDc5RDtENzlEOzExMTIgMTE3NSAxMUJDO0Q3OUQ7MTExMiAxMTc1IDExQkM7CitENzlFO0Q3OUU7MTExMiAxMTc1IDExQkQ7RDc5RTsxMTEyIDExNzUgMTFCRDsKK0Q3OUY7RDc5RjsxMTEyIDExNzUgMTFCRTtENzlGOzExMTIgMTE3NSAxMUJFOworRDdBMDtEN0EwOzExMTIgMTE3NSAxMUJGO0Q3QTA7MTExMiAxMTc1IDExQkY7CitEN0ExO0Q3QTE7MTExMiAxMTc1IDExQzA7RDdBMTsxMTEyIDExNzUgMTFDMDsKK0Q3QTI7RDdBMjsxMTEyIDExNzUgMTFDMTtEN0EyOzExMTIgMTE3NSAxMUMxOworRDdBMztEN0EzOzExMTIgMTE3NSAxMUMyO0Q3QTM7MTExMiAxMTc1IDExQzI7CitGOTAwOzhDNDg7OEM0ODs4QzQ4OzhDNDg7CitGOTAxOzY2RjQ7NjZGNDs2NkY0OzY2RjQ7CitGOTAyOzhFQ0E7OEVDQTs4RUNBOzhFQ0E7CitGOTAzOzhDQzg7OENDODs4Q0M4OzhDQzg7CitGOTA0OzZFRDE7NkVEMTs2RUQxOzZFRDE7CitGOTA1OzRFMzI7NEUzMjs0RTMyOzRFMzI7CitGOTA2OzUzRTU7NTNFNTs1M0U1OzUzRTU7CitGOTA3OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA4OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA5OzU5NTE7NTk1MTs1OTUxOzU5NTE7CitGOTBBOzkxRDE7OTFEMTs5MUQxOzkxRDE7CitGOTBCOzU1ODc7NTU4Nzs1NTg3OzU1ODc7CitGOTBDOzU5NDg7NTk0ODs1OTQ4OzU5NDg7CitGOTBEOzYxRjY7NjFGNjs2MUY2OzYxRjY7CitGOTBFOzc2Njk7NzY2OTs3NjY5Ozc2Njk7CitGOTBGOzdGODU7N0Y4NTs3Rjg1OzdGODU7CitGOTEwOzg2M0Y7ODYzRjs4NjNGOzg2M0Y7CitGOTExOzg3QkE7ODdCQTs4N0JBOzg3QkE7CitGOTEyOzg4Rjg7ODhGODs4OEY4Ozg4Rjg7CitGOTEzOzkwOEY7OTA4Rjs5MDhGOzkwOEY7CitGOTE0OzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTE1OzZEMUI7NkQxQjs2RDFCOzZEMUI7CitGOTE2OzcwRDk7NzBEOTs3MEQ5OzcwRDk7CitGOTE3OzczREU7NzNERTs3M0RFOzczREU7CitGOTE4Ozg0M0Q7ODQzRDs4NDNEOzg0M0Q7CitGOTE5OzkxNkE7OTE2QTs5MTZBOzkxNkE7CitGOTFBOzk5RjE7OTlGMTs5OUYxOzk5RjE7CitGOTFCOzRFODI7NEU4Mjs0RTgyOzRFODI7CitGOTFDOzUzNzU7NTM3NTs1Mzc1OzUzNzU7CitGOTFEOzZCMDQ7NkIwNDs2QjA0OzZCMDQ7CitGOTFFOzcyMUI7NzIxQjs3MjFCOzcyMUI7CitGOTFGOzg2MkQ7ODYyRDs4NjJEOzg2MkQ7CitGOTIwOzlFMUU7OUUxRTs5RTFFOzlFMUU7CitGOTIxOzVENTA7NUQ1MDs1RDUwOzVENTA7CitGOTIyOzZGRUI7NkZFQjs2RkVCOzZGRUI7CitGOTIzOzg1Q0Q7ODVDRDs4NUNEOzg1Q0Q7CitGOTI0Ozg5NjQ7ODk2NDs4OTY0Ozg5NjQ7CitGOTI1OzYyQzk7NjJDOTs2MkM5OzYyQzk7CitGOTI2OzgxRDg7ODFEODs4MUQ4OzgxRDg7CitGOTI3Ozg4MUY7ODgxRjs4ODFGOzg4MUY7CitGOTI4OzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CitGOTI5OzY3MTc7NjcxNzs2NzE3OzY3MTc7CitGOTJBOzZENkE7NkQ2QTs2RDZBOzZENkE7CitGOTJCOzcyRkM7NzJGQzs3MkZDOzcyRkM7CitGOTJDOzkwQ0U7OTBDRTs5MENFOzkwQ0U7CitGOTJEOzRGODY7NEY4Njs0Rjg2OzRGODY7CitGOTJFOzUxQjc7NTFCNzs1MUI3OzUxQjc7CitGOTJGOzUyREU7NTJERTs1MkRFOzUyREU7CitGOTMwOzY0QzQ7NjRDNDs2NEM0OzY0QzQ7CitGOTMxOzZBRDM7NkFEMzs2QUQzOzZBRDM7CitGOTMyOzcyMTA7NzIxMDs3MjEwOzcyMTA7CitGOTMzOzc2RTc7NzZFNzs3NkU3Ozc2RTc7CitGOTM0OzgwMDE7ODAwMTs4MDAxOzgwMDE7CitGOTM1Ozg2MDY7ODYwNjs4NjA2Ozg2MDY7CitGOTM2Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CitGOTM3OzhERUY7OERFRjs4REVGOzhERUY7CitGOTM4Ozk3MzI7OTczMjs5NzMyOzk3MzI7CitGOTM5OzlCNkY7OUI2Rjs5QjZGOzlCNkY7CitGOTNBOzlERkE7OURGQTs5REZBOzlERkE7CitGOTNCOzc4OEM7Nzg4Qzs3ODhDOzc4OEM7CitGOTNDOzc5N0Y7Nzk3Rjs3OTdGOzc5N0Y7CitGOTNEOzdEQTA7N0RBMDs3REEwOzdEQTA7CitGOTNFOzgzQzk7ODNDOTs4M0M5OzgzQzk7CitGOTNGOzkzMDQ7OTMwNDs5MzA0OzkzMDQ7CitGOTQwOzlFN0Y7OUU3Rjs5RTdGOzlFN0Y7CitGOTQxOzhBRDY7OEFENjs4QUQ2OzhBRDY7CitGOTQyOzU4REY7NThERjs1OERGOzU4REY7CitGOTQzOzVGMDQ7NUYwNDs1RjA0OzVGMDQ7CitGOTQ0OzdDNjA7N0M2MDs3QzYwOzdDNjA7CitGOTQ1OzgwN0U7ODA3RTs4MDdFOzgwN0U7CitGOTQ2OzcyNjI7NzI2Mjs3MjYyOzcyNjI7CitGOTQ3Ozc4Q0E7NzhDQTs3OENBOzc4Q0E7CitGOTQ4OzhDQzI7OENDMjs4Q0MyOzhDQzI7CitGOTQ5Ozk2Rjc7OTZGNzs5NkY3Ozk2Rjc7CitGOTRBOzU4RDg7NThEODs1OEQ4OzU4RDg7CitGOTRCOzVDNjI7NUM2Mjs1QzYyOzVDNjI7CitGOTRDOzZBMTM7NkExMzs2QTEzOzZBMTM7CitGOTREOzZEREE7NkREQTs2RERBOzZEREE7CitGOTRFOzZGMEY7NkYwRjs2RjBGOzZGMEY7CitGOTRGOzdEMkY7N0QyRjs3RDJGOzdEMkY7CitGOTUwOzdFMzc7N0UzNzs3RTM3OzdFMzc7CitGOTUxOzk2NEI7OTY0Qjs5NjRCOzk2NEI7CitGOTUyOzUyRDI7NTJEMjs1MkQyOzUyRDI7CitGOTUzOzgwOEI7ODA4Qjs4MDhCOzgwOEI7CitGOTU0OzUxREM7NTFEQzs1MURDOzUxREM7CitGOTU1OzUxQ0M7NTFDQzs1MUNDOzUxQ0M7CitGOTU2OzdBMUM7N0ExQzs3QTFDOzdBMUM7CitGOTU3OzdEQkU7N0RCRTs3REJFOzdEQkU7CitGOTU4OzgzRjE7ODNGMTs4M0YxOzgzRjE7CitGOTU5Ozk2NzU7OTY3NTs5Njc1Ozk2NzU7CitGOTVBOzhCODA7OEI4MDs4QjgwOzhCODA7CitGOTVCOzYyQ0Y7NjJDRjs2MkNGOzYyQ0Y7CitGOTVDOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTVEOzhBRkU7OEFGRTs4QUZFOzhBRkU7CitGOTVFOzRFMzk7NEUzOTs0RTM5OzRFMzk7CitGOTVGOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOTYwOzYwMTI7NjAxMjs2MDEyOzYwMTI7CitGOTYxOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOTYyOzc1NzA7NzU3MDs3NTcwOzc1NzA7CitGOTYzOzUzMTc7NTMxNzs1MzE3OzUzMTc7CitGOTY0Ozc4RkI7NzhGQjs3OEZCOzc4RkI7CitGOTY1OzRGQkY7NEZCRjs0RkJGOzRGQkY7CitGOTY2OzVGQTk7NUZBOTs1RkE5OzVGQTk7CitGOTY3OzRFMEQ7NEUwRDs0RTBEOzRFMEQ7CitGOTY4OzZDQ0M7NkNDQzs2Q0NDOzZDQ0M7CitGOTY5OzY1Nzg7NjU3ODs2NTc4OzY1Nzg7CitGOTZBOzdEMjI7N0QyMjs3RDIyOzdEMjI7CitGOTZCOzUzQzM7NTNDMzs1M0MzOzUzQzM7CitGOTZDOzU4NUU7NTg1RTs1ODVFOzU4NUU7CitGOTZEOzc3MDE7NzcwMTs3NzAxOzc3MDE7CitGOTZFOzg0NDk7ODQ0OTs4NDQ5Ozg0NDk7CitGOTZGOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOTcwOzZCQkE7NkJCQTs2QkJBOzZCQkE7CitGOTcxOzhGQjA7OEZCMDs4RkIwOzhGQjA7CitGOTcyOzZDODg7NkM4ODs2Qzg4OzZDODg7CitGOTczOzYyRkU7NjJGRTs2MkZFOzYyRkU7CitGOTc0OzgyRTU7ODJFNTs4MkU1OzgyRTU7CitGOTc1OzYzQTA7NjNBMDs2M0EwOzYzQTA7CitGOTc2Ozc1NjU7NzU2NTs3NTY1Ozc1NjU7CitGOTc3OzRFQUU7NEVBRTs0RUFFOzRFQUU7CitGOTc4OzUxNjk7NTE2OTs1MTY5OzUxNjk7CitGOTc5OzUxQzk7NTFDOTs1MUM5OzUxQzk7CitGOTdBOzY4ODE7Njg4MTs2ODgxOzY4ODE7CitGOTdCOzdDRTc7N0NFNzs3Q0U3OzdDRTc7CitGOTdDOzgyNkY7ODI2Rjs4MjZGOzgyNkY7CitGOTdEOzhBRDI7OEFEMjs4QUQyOzhBRDI7CitGOTdFOzkxQ0Y7OTFDRjs5MUNGOzkxQ0Y7CitGOTdGOzUyRjU7NTJGNTs1MkY1OzUyRjU7CitGOTgwOzU0NDI7NTQ0Mjs1NDQyOzU0NDI7CitGOTgxOzU5NzM7NTk3Mzs1OTczOzU5NzM7CitGOTgyOzVFRUM7NUVFQzs1RUVDOzVFRUM7CitGOTgzOzY1QzU7NjVDNTs2NUM1OzY1QzU7CitGOTg0OzZGRkU7NkZGRTs2RkZFOzZGRkU7CitGOTg1Ozc5MkE7NzkyQTs3OTJBOzc5MkE7CitGOTg2Ozk1QUQ7OTVBRDs5NUFEOzk1QUQ7CitGOTg3OzlBNkE7OUE2QTs5QTZBOzlBNkE7CitGOTg4OzlFOTc7OUU5Nzs5RTk3OzlFOTc7CitGOTg5OzlFQ0U7OUVDRTs5RUNFOzlFQ0U7CitGOThBOzUyOUI7NTI5Qjs1MjlCOzUyOUI7CitGOThCOzY2QzY7NjZDNjs2NkM2OzY2QzY7CitGOThDOzZCNzc7NkI3Nzs2Qjc3OzZCNzc7CitGOThEOzhGNjI7OEY2Mjs4RjYyOzhGNjI7CitGOThFOzVFNzQ7NUU3NDs1RTc0OzVFNzQ7CitGOThGOzYxOTA7NjE5MDs2MTkwOzYxOTA7CitGOTkwOzYyMDA7NjIwMDs2MjAwOzYyMDA7CitGOTkxOzY0OUE7NjQ5QTs2NDlBOzY0OUE7CitGOTkyOzZGMjM7NkYyMzs2RjIzOzZGMjM7CitGOTkzOzcxNDk7NzE0OTs3MTQ5OzcxNDk7CitGOTk0Ozc0ODk7NzQ4OTs3NDg5Ozc0ODk7CitGOTk1Ozc5Q0E7NzlDQTs3OUNBOzc5Q0E7CitGOTk2OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGOTk3OzgwNkY7ODA2Rjs4MDZGOzgwNkY7CitGOTk4OzhGMjY7OEYyNjs4RjI2OzhGMjY7CitGOTk5Ozg0RUU7ODRFRTs4NEVFOzg0RUU7CitGOTlBOzkwMjM7OTAyMzs5MDIzOzkwMjM7CitGOTlCOzkzNEE7OTM0QTs5MzRBOzkzNEE7CitGOTlDOzUyMTc7NTIxNzs1MjE3OzUyMTc7CitGOTlEOzUyQTM7NTJBMzs1MkEzOzUyQTM7CitGOTlFOzU0QkQ7NTRCRDs1NEJEOzU0QkQ7CitGOTlGOzcwQzg7NzBDODs3MEM4OzcwQzg7CitGOUEwOzg4QzI7ODhDMjs4OEMyOzg4QzI7CitGOUExOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOUEyOzVFQzk7NUVDOTs1RUM5OzVFQzk7CitGOUEzOzVGRjU7NUZGNTs1RkY1OzVGRjU7CitGOUE0OzYzN0I7NjM3Qjs2MzdCOzYzN0I7CitGOUE1OzZCQUU7NkJBRTs2QkFFOzZCQUU7CitGOUE2OzdDM0U7N0MzRTs3QzNFOzdDM0U7CitGOUE3OzczNzU7NzM3NTs3Mzc1OzczNzU7CitGOUE4OzRFRTQ7NEVFNDs0RUU0OzRFRTQ7CitGOUE5OzU2Rjk7NTZGOTs1NkY5OzU2Rjk7CitGOUFBOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOUFCOzVEQkE7NURCQTs1REJBOzVEQkE7CitGOUFDOzYwMUM7NjAxQzs2MDFDOzYwMUM7CitGOUFEOzczQjI7NzNCMjs3M0IyOzczQjI7CitGOUFFOzc0Njk7NzQ2OTs3NDY5Ozc0Njk7CitGOUFGOzdGOUE7N0Y5QTs3RjlBOzdGOUE7CitGOUIwOzgwNDY7ODA0Njs4MDQ2OzgwNDY7CitGOUIxOzkyMzQ7OTIzNDs5MjM0OzkyMzQ7CitGOUIyOzk2RjY7OTZGNjs5NkY2Ozk2RjY7CitGOUIzOzk3NDg7OTc0ODs5NzQ4Ozk3NDg7CitGOUI0Ozk4MTg7OTgxODs5ODE4Ozk4MTg7CitGOUI1OzRGOEI7NEY4Qjs0RjhCOzRGOEI7CitGOUI2Ozc5QUU7NzlBRTs3OUFFOzc5QUU7CitGOUI3OzkxQjQ7OTFCNDs5MUI0OzkxQjQ7CitGOUI4Ozk2Qjg7OTZCODs5NkI4Ozk2Qjg7CitGOUI5OzYwRTE7NjBFMTs2MEUxOzYwRTE7CitGOUJBOzRFODY7NEU4Njs0RTg2OzRFODY7CitGOUJCOzUwREE7NTBEQTs1MERBOzUwREE7CitGOUJDOzVCRUU7NUJFRTs1QkVFOzVCRUU7CitGOUJEOzVDM0Y7NUMzRjs1QzNGOzVDM0Y7CitGOUJFOzY1OTk7NjU5OTs2NTk5OzY1OTk7CitGOUJGOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOUMwOzcxQ0U7NzFDRTs3MUNFOzcxQ0U7CitGOUMxOzc2NDI7NzY0Mjs3NjQyOzc2NDI7CitGOUMyOzg0RkM7ODRGQzs4NEZDOzg0RkM7CitGOUMzOzkwN0M7OTA3Qzs5MDdDOzkwN0M7CitGOUM0OzlGOEQ7OUY4RDs5RjhEOzlGOEQ7CitGOUM1OzY2ODg7NjY4ODs2Njg4OzY2ODg7CitGOUM2Ozk2MkU7OTYyRTs5NjJFOzk2MkU7CitGOUM3OzUyODk7NTI4OTs1Mjg5OzUyODk7CitGOUM4OzY3N0I7Njc3Qjs2NzdCOzY3N0I7CitGOUM5OzY3RjM7NjdGMzs2N0YzOzY3RjM7CitGOUNBOzZENDE7NkQ0MTs2RDQxOzZENDE7CitGOUNCOzZFOUM7NkU5Qzs2RTlDOzZFOUM7CitGOUNDOzc0MDk7NzQwOTs3NDA5Ozc0MDk7CitGOUNEOzc1NTk7NzU1OTs3NTU5Ozc1NTk7CitGOUNFOzc4NkI7Nzg2Qjs3ODZCOzc4NkI7CitGOUNGOzdEMTA7N0QxMDs3RDEwOzdEMTA7CitGOUQwOzk4NUU7OTg1RTs5ODVFOzk4NUU7CitGOUQxOzUxNkQ7NTE2RDs1MTZEOzUxNkQ7CitGOUQyOzYyMkU7NjIyRTs2MjJFOzYyMkU7CitGOUQzOzk2Nzg7OTY3ODs5Njc4Ozk2Nzg7CitGOUQ0OzUwMkI7NTAyQjs1MDJCOzUwMkI7CitGOUQ1OzVEMTk7NUQxOTs1RDE5OzVEMTk7CitGOUQ2OzZERUE7NkRFQTs2REVBOzZERUE7CitGOUQ3OzhGMkE7OEYyQTs4RjJBOzhGMkE7CitGOUQ4OzVGOEI7NUY4Qjs1RjhCOzVGOEI7CitGOUQ5OzYxNDQ7NjE0NDs2MTQ0OzYxNDQ7CitGOURBOzY4MTc7NjgxNzs2ODE3OzY4MTc7CitGOURCOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOURDOzk2ODY7OTY4Njs5Njg2Ozk2ODY7CitGOUREOzUyMjk7NTIyOTs1MjI5OzUyMjk7CitGOURFOzU0MEY7NTQwRjs1NDBGOzU0MEY7CitGOURGOzVDNjU7NUM2NTs1QzY1OzVDNjU7CitGOUUwOzY2MTM7NjYxMzs2NjEzOzY2MTM7CitGOUUxOzY3NEU7Njc0RTs2NzRFOzY3NEU7CitGOUUyOzY4QTg7NjhBODs2OEE4OzY4QTg7CitGOUUzOzZDRTU7NkNFNTs2Q0U1OzZDRTU7CitGOUU0Ozc0MDY7NzQwNjs3NDA2Ozc0MDY7CitGOUU1Ozc1RTI7NzVFMjs3NUUyOzc1RTI7CitGOUU2OzdGNzk7N0Y3OTs3Rjc5OzdGNzk7CitGOUU3Ozg4Q0Y7ODhDRjs4OENGOzg4Q0Y7CitGOUU4Ozg4RTE7ODhFMTs4OEUxOzg4RTE7CitGOUU5OzkxQ0M7OTFDQzs5MUNDOzkxQ0M7CitGOUVBOzk2RTI7OTZFMjs5NkUyOzk2RTI7CitGOUVCOzUzM0Y7NTMzRjs1MzNGOzUzM0Y7CitGOUVDOzZFQkE7NkVCQTs2RUJBOzZFQkE7CitGOUVEOzU0MUQ7NTQxRDs1NDFEOzU0MUQ7CitGOUVFOzcxRDA7NzFEMDs3MUQwOzcxRDA7CitGOUVGOzc0OTg7NzQ5ODs3NDk4Ozc0OTg7CitGOUYwOzg1RkE7ODVGQTs4NUZBOzg1RkE7CitGOUYxOzk2QTM7OTZBMzs5NkEzOzk2QTM7CitGOUYyOzlDNTc7OUM1Nzs5QzU3OzlDNTc7CitGOUYzOzlFOUY7OUU5Rjs5RTlGOzlFOUY7CitGOUY0OzY3OTc7Njc5Nzs2Nzk3OzY3OTc7CitGOUY1OzZEQ0I7NkRDQjs2RENCOzZEQ0I7CitGOUY2OzgxRTg7ODFFODs4MUU4OzgxRTg7CitGOUY3OzdBQ0I7N0FDQjs3QUNCOzdBQ0I7CitGOUY4OzdCMjA7N0IyMDs3QjIwOzdCMjA7CitGOUY5OzdDOTI7N0M5Mjs3QzkyOzdDOTI7CitGOUZBOzcyQzA7NzJDMDs3MkMwOzcyQzA7CitGOUZCOzcwOTk7NzA5OTs3MDk5OzcwOTk7CitGOUZDOzhCNTg7OEI1ODs4QjU4OzhCNTg7CitGOUZEOzRFQzA7NEVDMDs0RUMwOzRFQzA7CitGOUZFOzgzMzY7ODMzNjs4MzM2OzgzMzY7CitGOUZGOzUyM0E7NTIzQTs1MjNBOzUyM0E7CitGQTAwOzUyMDc7NTIwNzs1MjA3OzUyMDc7CitGQTAxOzVFQTY7NUVBNjs1RUE2OzVFQTY7CitGQTAyOzYyRDM7NjJEMzs2MkQzOzYyRDM7CitGQTAzOzdDRDY7N0NENjs3Q0Q2OzdDRDY7CitGQTA0OzVCODU7NUI4NTs1Qjg1OzVCODU7CitGQTA1OzZEMUU7NkQxRTs2RDFFOzZEMUU7CitGQTA2OzY2QjQ7NjZCNDs2NkI0OzY2QjQ7CitGQTA3OzhGM0I7OEYzQjs4RjNCOzhGM0I7CitGQTA4Ozg4NEM7ODg0Qzs4ODRDOzg4NEM7CitGQTA5Ozk2NEQ7OTY0RDs5NjREOzk2NEQ7CitGQTBBOzg5OEI7ODk4Qjs4OThCOzg5OEI7CitGQTBCOzVFRDM7NUVEMzs1RUQzOzVFRDM7CitGQTBDOzUxNDA7NTE0MDs1MTQwOzUxNDA7CitGQTBEOzU1QzA7NTVDMDs1NUMwOzU1QzA7CitGQTEwOzU4NUE7NTg1QTs1ODVBOzU4NUE7CitGQTEyOzY2NzQ7NjY3NDs2Njc0OzY2NzQ7CitGQTE1OzUxREU7NTFERTs1MURFOzUxREU7CitGQTE2OzczMkE7NzMyQTs3MzJBOzczMkE7CitGQTE3Ozc2Q0E7NzZDQTs3NkNBOzc2Q0E7CitGQTE4Ozc5M0M7NzkzQzs3OTNDOzc5M0M7CitGQTE5Ozc5NUU7Nzk1RTs3OTVFOzc5NUU7CitGQTFBOzc5NjU7Nzk2NTs3OTY1Ozc5NjU7CitGQTFCOzc5OEY7Nzk4Rjs3OThGOzc5OEY7CitGQTFDOzk3NTY7OTc1Njs5NzU2Ozk3NTY7CitGQTFEOzdDQkU7N0NCRTs3Q0JFOzdDQkU7CitGQTFFOzdGQkQ7N0ZCRDs3RkJEOzdGQkQ7CitGQTIwOzg2MTI7ODYxMjs4NjEyOzg2MTI7CitGQTIyOzhBRjg7OEFGODs4QUY4OzhBRjg7CitGQTI1OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTI2OzkwRkQ7OTBGRDs5MEZEOzkwRkQ7CitGQTJBOzk4RUY7OThFRjs5OEVGOzk4RUY7CitGQTJCOzk4RkM7OThGQzs5OEZDOzk4RkM7CitGQTJDOzk5Mjg7OTkyODs5OTI4Ozk5Mjg7CitGQTJEOzlEQjQ7OURCNDs5REI0OzlEQjQ7CitGQTMwOzRGQUU7NEZBRTs0RkFFOzRGQUU7CitGQTMxOzUwRTc7NTBFNzs1MEU3OzUwRTc7CitGQTMyOzUxNEQ7NTE0RDs1MTREOzUxNEQ7CitGQTMzOzUyQzk7NTJDOTs1MkM5OzUyQzk7CitGQTM0OzUyRTQ7NTJFNDs1MkU0OzUyRTQ7CitGQTM1OzUzNTE7NTM1MTs1MzUxOzUzNTE7CitGQTM2OzU1OUQ7NTU5RDs1NTlEOzU1OUQ7CitGQTM3OzU2MDY7NTYwNjs1NjA2OzU2MDY7CitGQTM4OzU2Njg7NTY2ODs1NjY4OzU2Njg7CitGQTM5OzU4NDA7NTg0MDs1ODQwOzU4NDA7CitGQTNBOzU4QTg7NThBODs1OEE4OzU4QTg7CitGQTNCOzVDNjQ7NUM2NDs1QzY0OzVDNjQ7CitGQTNDOzVDNkU7NUM2RTs1QzZFOzVDNkU7CitGQTNEOzYwOTQ7NjA5NDs2MDk0OzYwOTQ7CitGQTNFOzYxNjg7NjE2ODs2MTY4OzYxNjg7CitGQTNGOzYxOEU7NjE4RTs2MThFOzYxOEU7CitGQTQwOzYxRjI7NjFGMjs2MUYyOzYxRjI7CitGQTQxOzY1NEY7NjU0Rjs2NTRGOzY1NEY7CitGQTQyOzY1RTI7NjVFMjs2NUUyOzY1RTI7CitGQTQzOzY2OTE7NjY5MTs2NjkxOzY2OTE7CitGQTQ0OzY4ODU7Njg4NTs2ODg1OzY4ODU7CitGQTQ1OzZENzc7NkQ3Nzs2RDc3OzZENzc7CitGQTQ2OzZFMUE7NkUxQTs2RTFBOzZFMUE7CitGQTQ3OzZGMjI7NkYyMjs2RjIyOzZGMjI7CitGQTQ4OzcxNkU7NzE2RTs3MTZFOzcxNkU7CitGQTQ5OzcyMkI7NzIyQjs3MjJCOzcyMkI7CitGQTRBOzc0MjI7NzQyMjs3NDIyOzc0MjI7CitGQTRCOzc4OTE7Nzg5MTs3ODkxOzc4OTE7CitGQTRDOzc5M0U7NzkzRTs3OTNFOzc5M0U7CitGQTREOzc5NDk7Nzk0OTs3OTQ5Ozc5NDk7CitGQTRFOzc5NDg7Nzk0ODs3OTQ4Ozc5NDg7CitGQTRGOzc5NTA7Nzk1MDs3OTUwOzc5NTA7CitGQTUwOzc5NTY7Nzk1Njs3OTU2Ozc5NTY7CitGQTUxOzc5NUQ7Nzk1RDs3OTVEOzc5NUQ7CitGQTUyOzc5OEQ7Nzk4RDs3OThEOzc5OEQ7CitGQTUzOzc5OEU7Nzk4RTs3OThFOzc5OEU7CitGQTU0OzdBNDA7N0E0MDs3QTQwOzdBNDA7CitGQTU1OzdBODE7N0E4MTs3QTgxOzdBODE7CitGQTU2OzdCQzA7N0JDMDs3QkMwOzdCQzA7CitGQTU3OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGQTU4OzdFMDk7N0UwOTs3RTA5OzdFMDk7CitGQTU5OzdFNDE7N0U0MTs3RTQxOzdFNDE7CitGQTVBOzdGNzI7N0Y3Mjs3RjcyOzdGNzI7CitGQTVCOzgwMDU7ODAwNTs4MDA1OzgwMDU7CitGQTVDOzgxRUQ7ODFFRDs4MUVEOzgxRUQ7CitGQTVEOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVFOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVGOzg0NTc7ODQ1Nzs4NDU3Ozg0NTc7CitGQTYwOzg5MTA7ODkxMDs4OTEwOzg5MTA7CitGQTYxOzg5OTY7ODk5Njs4OTk2Ozg5OTY7CitGQTYyOzhCMDE7OEIwMTs4QjAxOzhCMDE7CitGQTYzOzhCMzk7OEIzOTs4QjM5OzhCMzk7CitGQTY0OzhDRDM7OENEMzs4Q0QzOzhDRDM7CitGQTY1OzhEMDg7OEQwODs4RDA4OzhEMDg7CitGQTY2OzhGQjY7OEZCNjs4RkI2OzhGQjY7CitGQTY3OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTY4Ozk2RTM7OTZFMzs5NkUzOzk2RTM7CitGQTY5Ozk3RkY7OTdGRjs5N0ZGOzk3RkY7CitGQTZBOzk4M0I7OTgzQjs5ODNCOzk4M0I7CitGQTcwOzRFMjY7NEUyNjs0RTI2OzRFMjY7CitGQTcxOzUxQjU7NTFCNTs1MUI1OzUxQjU7CitGQTcyOzUxNjg7NTE2ODs1MTY4OzUxNjg7CitGQTczOzRGODA7NEY4MDs0RjgwOzRGODA7CitGQTc0OzUxNDU7NTE0NTs1MTQ1OzUxNDU7CitGQTc1OzUxODA7NTE4MDs1MTgwOzUxODA7CitGQTc2OzUyQzc7NTJDNzs1MkM3OzUyQzc7CitGQTc3OzUyRkE7NTJGQTs1MkZBOzUyRkE7CitGQTc4OzU1OUQ7NTU5RDs1NTlEOzU1OUQ7CitGQTc5OzU1NTU7NTU1NTs1NTU1OzU1NTU7CitGQTdBOzU1OTk7NTU5OTs1NTk5OzU1OTk7CitGQTdCOzU1RTI7NTVFMjs1NUUyOzU1RTI7CitGQTdDOzU4NUE7NTg1QTs1ODVBOzU4NUE7CitGQTdEOzU4QjM7NThCMzs1OEIzOzU4QjM7CitGQTdFOzU5NDQ7NTk0NDs1OTQ0OzU5NDQ7CitGQTdGOzU5NTQ7NTk1NDs1OTU0OzU5NTQ7CitGQTgwOzVBNjI7NUE2Mjs1QTYyOzVBNjI7CitGQTgxOzVCMjg7NUIyODs1QjI4OzVCMjg7CitGQTgyOzVFRDI7NUVEMjs1RUQyOzVFRDI7CitGQTgzOzVFRDk7NUVEOTs1RUQ5OzVFRDk7CitGQTg0OzVGNjk7NUY2OTs1RjY5OzVGNjk7CitGQTg1OzVGQUQ7NUZBRDs1RkFEOzVGQUQ7CitGQTg2OzYwRDg7NjBEODs2MEQ4OzYwRDg7CitGQTg3OzYxNEU7NjE0RTs2MTRFOzYxNEU7CitGQTg4OzYxMDg7NjEwODs2MTA4OzYxMDg7CitGQTg5OzYxOEU7NjE4RTs2MThFOzYxOEU7CitGQThBOzYxNjA7NjE2MDs2MTYwOzYxNjA7CitGQThCOzYxRjI7NjFGMjs2MUYyOzYxRjI7CitGQThDOzYyMzQ7NjIzNDs2MjM0OzYyMzQ7CitGQThEOzYzQzQ7NjNDNDs2M0M0OzYzQzQ7CitGQThFOzY0MUM7NjQxQzs2NDFDOzY0MUM7CitGQThGOzY0NTI7NjQ1Mjs2NDUyOzY0NTI7CitGQTkwOzY1NTY7NjU1Njs2NTU2OzY1NTY7CitGQTkxOzY2NzQ7NjY3NDs2Njc0OzY2NzQ7CitGQTkyOzY3MTc7NjcxNzs2NzE3OzY3MTc7CitGQTkzOzY3MUI7NjcxQjs2NzFCOzY3MUI7CitGQTk0OzY3NTY7Njc1Njs2NzU2OzY3NTY7CitGQTk1OzZCNzk7NkI3OTs2Qjc5OzZCNzk7CitGQTk2OzZCQkE7NkJCQTs2QkJBOzZCQkE7CitGQTk3OzZENDE7NkQ0MTs2RDQxOzZENDE7CitGQTk4OzZFREI7NkVEQjs2RURCOzZFREI7CitGQTk5OzZFQ0I7NkVDQjs2RUNCOzZFQ0I7CitGQTlBOzZGMjI7NkYyMjs2RjIyOzZGMjI7CitGQTlCOzcwMUU7NzAxRTs3MDFFOzcwMUU7CitGQTlDOzcxNkU7NzE2RTs3MTZFOzcxNkU7CitGQTlEOzc3QTc7NzdBNzs3N0E3Ozc3QTc7CitGQTlFOzcyMzU7NzIzNTs3MjM1OzcyMzU7CitGQTlGOzcyQUY7NzJBRjs3MkFGOzcyQUY7CitGQUEwOzczMkE7NzMyQTs3MzJBOzczMkE7CitGQUExOzc0NzE7NzQ3MTs3NDcxOzc0NzE7CitGQUEyOzc1MDY7NzUwNjs3NTA2Ozc1MDY7CitGQUEzOzc1M0I7NzUzQjs3NTNCOzc1M0I7CitGQUE0Ozc2MUQ7NzYxRDs3NjFEOzc2MUQ7CitGQUE1Ozc2MUY7NzYxRjs3NjFGOzc2MUY7CitGQUE2Ozc2Q0E7NzZDQTs3NkNBOzc2Q0E7CitGQUE3Ozc2REI7NzZEQjs3NkRCOzc2REI7CitGQUE4Ozc2RjQ7NzZGNDs3NkY0Ozc2RjQ7CitGQUE5Ozc3NEE7Nzc0QTs3NzRBOzc3NEE7CitGQUFBOzc3NDA7Nzc0MDs3NzQwOzc3NDA7CitGQUFCOzc4Q0M7NzhDQzs3OENDOzc4Q0M7CitGQUFDOzdBQjE7N0FCMTs3QUIxOzdBQjE7CitGQUFEOzdCQzA7N0JDMDs3QkMwOzdCQzA7CitGQUFFOzdDN0I7N0M3Qjs3QzdCOzdDN0I7CitGQUFGOzdENUI7N0Q1Qjs3RDVCOzdENUI7CitGQUIwOzdERjQ7N0RGNDs3REY0OzdERjQ7CitGQUIxOzdGM0U7N0YzRTs3RjNFOzdGM0U7CitGQUIyOzgwMDU7ODAwNTs4MDA1OzgwMDU7CitGQUIzOzgzNTI7ODM1Mjs4MzUyOzgzNTI7CitGQUI0OzgzRUY7ODNFRjs4M0VGOzgzRUY7CitGQUI1Ozg3Nzk7ODc3OTs4Nzc5Ozg3Nzk7CitGQUI2Ozg5NDE7ODk0MTs4OTQxOzg5NDE7CitGQUI3Ozg5ODY7ODk4Njs4OTg2Ozg5ODY7CitGQUI4Ozg5OTY7ODk5Njs4OTk2Ozg5OTY7CitGQUI5OzhBQkY7OEFCRjs4QUJGOzhBQkY7CitGQUJBOzhBRjg7OEFGODs4QUY4OzhBRjg7CitGQUJCOzhBQ0I7OEFDQjs4QUNCOzhBQ0I7CitGQUJDOzhCMDE7OEIwMTs4QjAxOzhCMDE7CitGQUJEOzhBRkU7OEFGRTs4QUZFOzhBRkU7CitGQUJFOzhBRUQ7OEFFRDs4QUVEOzhBRUQ7CitGQUJGOzhCMzk7OEIzOTs4QjM5OzhCMzk7CitGQUMwOzhCOEE7OEI4QTs4QjhBOzhCOEE7CitGQUMxOzhEMDg7OEQwODs4RDA4OzhEMDg7CitGQUMyOzhGMzg7OEYzODs4RjM4OzhGMzg7CitGQUMzOzkwNzI7OTA3Mjs5MDcyOzkwNzI7CitGQUM0OzkxOTk7OTE5OTs5MTk5OzkxOTk7CitGQUM1OzkyNzY7OTI3Njs5Mjc2OzkyNzY7CitGQUM2Ozk2N0M7OTY3Qzs5NjdDOzk2N0M7CitGQUM3Ozk2RTM7OTZFMzs5NkUzOzk2RTM7CitGQUM4Ozk3NTY7OTc1Njs5NzU2Ozk3NTY7CitGQUM5Ozk3REI7OTdEQjs5N0RCOzk3REI7CitGQUNBOzk3RkY7OTdGRjs5N0ZGOzk3RkY7CitGQUNCOzk4MEI7OTgwQjs5ODBCOzk4MEI7CitGQUNDOzk4M0I7OTgzQjs5ODNCOzk4M0I7CitGQUNEOzlCMTI7OUIxMjs5QjEyOzlCMTI7CitGQUNFOzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGQUNGOzIyODRBOzIyODRBOzIyODRBOzIyODRBOworRkFEMDsyMjg0NDsyMjg0NDsyMjg0NDsyMjg0NDsKK0ZBRDE7MjMzRDU7MjMzRDU7MjMzRDU7MjMzRDU7CitGQUQyOzNCOUQ7M0I5RDszQjlEOzNCOUQ7CitGQUQzOzQwMTg7NDAxODs0MDE4OzQwMTg7CitGQUQ0OzQwMzk7NDAzOTs0MDM5OzQwMzk7CitGQUQ1OzI1MjQ5OzI1MjQ5OzI1MjQ5OzI1MjQ5OworRkFENjsyNUNEMDsyNUNEMDsyNUNEMDsyNUNEMDsKK0ZBRDc7MjdFRDM7MjdFRDM7MjdFRDM7MjdFRDM7CitGQUQ4OzlGNDM7OUY0Mzs5RjQzOzlGNDM7CitGQUQ5OzlGOEU7OUY4RTs5RjhFOzlGOEU7CitGQjAwO0ZCMDA7RkIwMDswMDY2IDAwNjY7MDA2NiAwMDY2OworRkIwMTtGQjAxO0ZCMDE7MDA2NiAwMDY5OzAwNjYgMDA2OTsKK0ZCMDI7RkIwMjtGQjAyOzAwNjYgMDA2QzswMDY2IDAwNkM7CitGQjAzO0ZCMDM7RkIwMzswMDY2IDAwNjYgMDA2OTswMDY2IDAwNjYgMDA2OTsKK0ZCMDQ7RkIwNDtGQjA0OzAwNjYgMDA2NiAwMDZDOzAwNjYgMDA2NiAwMDZDOworRkIwNTtGQjA1O0ZCMDU7MDA3MyAwMDc0OzAwNzMgMDA3NDsKK0ZCMDY7RkIwNjtGQjA2OzAwNzMgMDA3NDswMDczIDAwNzQ7CitGQjEzO0ZCMTM7RkIxMzswNTc0IDA1NzY7MDU3NCAwNTc2OworRkIxNDtGQjE0O0ZCMTQ7MDU3NCAwNTY1OzA1NzQgMDU2NTsKK0ZCMTU7RkIxNTtGQjE1OzA1NzQgMDU2QjswNTc0IDA1NkI7CitGQjE2O0ZCMTY7RkIxNjswNTdFIDA1NzY7MDU3RSAwNTc2OworRkIxNztGQjE3O0ZCMTc7MDU3NCAwNTZEOzA1NzQgMDU2RDsKK0ZCMUQ7MDVEOSAwNUI0OzA1RDkgMDVCNDswNUQ5IDA1QjQ7MDVEOSAwNUI0OworRkIxRjswNUYyIDA1Qjc7MDVGMiAwNUI3OzA1RjIgMDVCNzswNUYyIDA1Qjc7CitGQjIwO0ZCMjA7RkIyMDswNUUyOzA1RTI7CitGQjIxO0ZCMjE7RkIyMTswNUQwOzA1RDA7CitGQjIyO0ZCMjI7RkIyMjswNUQzOzA1RDM7CitGQjIzO0ZCMjM7RkIyMzswNUQ0OzA1RDQ7CitGQjI0O0ZCMjQ7RkIyNDswNURCOzA1REI7CitGQjI1O0ZCMjU7RkIyNTswNURDOzA1REM7CitGQjI2O0ZCMjY7RkIyNjswNUREOzA1REQ7CitGQjI3O0ZCMjc7RkIyNzswNUU4OzA1RTg7CitGQjI4O0ZCMjg7RkIyODswNUVBOzA1RUE7CitGQjI5O0ZCMjk7RkIyOTswMDJCOzAwMkI7CitGQjJBOzA1RTkgMDVDMTswNUU5IDA1QzE7MDVFOSAwNUMxOzA1RTkgMDVDMTsKK0ZCMkI7MDVFOSAwNUMyOzA1RTkgMDVDMjswNUU5IDA1QzI7MDVFOSAwNUMyOworRkIyQzswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTsKK0ZCMkQ7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7CitGQjJFOzA1RDAgMDVCNzswNUQwIDA1Qjc7MDVEMCAwNUI3OzA1RDAgMDVCNzsKK0ZCMkY7MDVEMCAwNUI4OzA1RDAgMDVCODswNUQwIDA1Qjg7MDVEMCAwNUI4OworRkIzMDswNUQwIDA1QkM7MDVEMCAwNUJDOzA1RDAgMDVCQzswNUQwIDA1QkM7CitGQjMxOzA1RDEgMDVCQzswNUQxIDA1QkM7MDVEMSAwNUJDOzA1RDEgMDVCQzsKK0ZCMzI7MDVEMiAwNUJDOzA1RDIgMDVCQzswNUQyIDA1QkM7MDVEMiAwNUJDOworRkIzMzswNUQzIDA1QkM7MDVEMyAwNUJDOzA1RDMgMDVCQzswNUQzIDA1QkM7CitGQjM0OzA1RDQgMDVCQzswNUQ0IDA1QkM7MDVENCAwNUJDOzA1RDQgMDVCQzsKK0ZCMzU7MDVENSAwNUJDOzA1RDUgMDVCQzswNUQ1IDA1QkM7MDVENSAwNUJDOworRkIzNjswNUQ2IDA1QkM7MDVENiAwNUJDOzA1RDYgMDVCQzswNUQ2IDA1QkM7CitGQjM4OzA1RDggMDVCQzswNUQ4IDA1QkM7MDVEOCAwNUJDOzA1RDggMDVCQzsKK0ZCMzk7MDVEOSAwNUJDOzA1RDkgMDVCQzswNUQ5IDA1QkM7MDVEOSAwNUJDOworRkIzQTswNURBIDA1QkM7MDVEQSAwNUJDOzA1REEgMDVCQzswNURBIDA1QkM7CitGQjNCOzA1REIgMDVCQzswNURCIDA1QkM7MDVEQiAwNUJDOzA1REIgMDVCQzsKK0ZCM0M7MDVEQyAwNUJDOzA1REMgMDVCQzswNURDIDA1QkM7MDVEQyAwNUJDOworRkIzRTswNURFIDA1QkM7MDVERSAwNUJDOzA1REUgMDVCQzswNURFIDA1QkM7CitGQjQwOzA1RTAgMDVCQzswNUUwIDA1QkM7MDVFMCAwNUJDOzA1RTAgMDVCQzsKK0ZCNDE7MDVFMSAwNUJDOzA1RTEgMDVCQzswNUUxIDA1QkM7MDVFMSAwNUJDOworRkI0MzswNUUzIDA1QkM7MDVFMyAwNUJDOzA1RTMgMDVCQzswNUUzIDA1QkM7CitGQjQ0OzA1RTQgMDVCQzswNUU0IDA1QkM7MDVFNCAwNUJDOzA1RTQgMDVCQzsKK0ZCNDY7MDVFNiAwNUJDOzA1RTYgMDVCQzswNUU2IDA1QkM7MDVFNiAwNUJDOworRkI0NzswNUU3IDA1QkM7MDVFNyAwNUJDOzA1RTcgMDVCQzswNUU3IDA1QkM7CitGQjQ4OzA1RTggMDVCQzswNUU4IDA1QkM7MDVFOCAwNUJDOzA1RTggMDVCQzsKK0ZCNDk7MDVFOSAwNUJDOzA1RTkgMDVCQzswNUU5IDA1QkM7MDVFOSAwNUJDOworRkI0QTswNUVBIDA1QkM7MDVFQSAwNUJDOzA1RUEgMDVCQzswNUVBIDA1QkM7CitGQjRCOzA1RDUgMDVCOTswNUQ1IDA1Qjk7MDVENSAwNUI5OzA1RDUgMDVCOTsKK0ZCNEM7MDVEMSAwNUJGOzA1RDEgMDVCRjswNUQxIDA1QkY7MDVEMSAwNUJGOworRkI0RDswNURCIDA1QkY7MDVEQiAwNUJGOzA1REIgMDVCRjswNURCIDA1QkY7CitGQjRFOzA1RTQgMDVCRjswNUU0IDA1QkY7MDVFNCAwNUJGOzA1RTQgMDVCRjsKK0ZCNEY7RkI0RjtGQjRGOzA1RDAgMDVEQzswNUQwIDA1REM7CitGQjUwO0ZCNTA7RkI1MDswNjcxOzA2NzE7CitGQjUxO0ZCNTE7RkI1MTswNjcxOzA2NzE7CitGQjUyO0ZCNTI7RkI1MjswNjdCOzA2N0I7CitGQjUzO0ZCNTM7RkI1MzswNjdCOzA2N0I7CitGQjU0O0ZCNTQ7RkI1NDswNjdCOzA2N0I7CitGQjU1O0ZCNTU7RkI1NTswNjdCOzA2N0I7CitGQjU2O0ZCNTY7RkI1NjswNjdFOzA2N0U7CitGQjU3O0ZCNTc7RkI1NzswNjdFOzA2N0U7CitGQjU4O0ZCNTg7RkI1ODswNjdFOzA2N0U7CitGQjU5O0ZCNTk7RkI1OTswNjdFOzA2N0U7CitGQjVBO0ZCNUE7RkI1QTswNjgwOzA2ODA7CitGQjVCO0ZCNUI7RkI1QjswNjgwOzA2ODA7CitGQjVDO0ZCNUM7RkI1QzswNjgwOzA2ODA7CitGQjVEO0ZCNUQ7RkI1RDswNjgwOzA2ODA7CitGQjVFO0ZCNUU7RkI1RTswNjdBOzA2N0E7CitGQjVGO0ZCNUY7RkI1RjswNjdBOzA2N0E7CitGQjYwO0ZCNjA7RkI2MDswNjdBOzA2N0E7CitGQjYxO0ZCNjE7RkI2MTswNjdBOzA2N0E7CitGQjYyO0ZCNjI7RkI2MjswNjdGOzA2N0Y7CitGQjYzO0ZCNjM7RkI2MzswNjdGOzA2N0Y7CitGQjY0O0ZCNjQ7RkI2NDswNjdGOzA2N0Y7CitGQjY1O0ZCNjU7RkI2NTswNjdGOzA2N0Y7CitGQjY2O0ZCNjY7RkI2NjswNjc5OzA2Nzk7CitGQjY3O0ZCNjc7RkI2NzswNjc5OzA2Nzk7CitGQjY4O0ZCNjg7RkI2ODswNjc5OzA2Nzk7CitGQjY5O0ZCNjk7RkI2OTswNjc5OzA2Nzk7CitGQjZBO0ZCNkE7RkI2QTswNkE0OzA2QTQ7CitGQjZCO0ZCNkI7RkI2QjswNkE0OzA2QTQ7CitGQjZDO0ZCNkM7RkI2QzswNkE0OzA2QTQ7CitGQjZEO0ZCNkQ7RkI2RDswNkE0OzA2QTQ7CitGQjZFO0ZCNkU7RkI2RTswNkE2OzA2QTY7CitGQjZGO0ZCNkY7RkI2RjswNkE2OzA2QTY7CitGQjcwO0ZCNzA7RkI3MDswNkE2OzA2QTY7CitGQjcxO0ZCNzE7RkI3MTswNkE2OzA2QTY7CitGQjcyO0ZCNzI7RkI3MjswNjg0OzA2ODQ7CitGQjczO0ZCNzM7RkI3MzswNjg0OzA2ODQ7CitGQjc0O0ZCNzQ7RkI3NDswNjg0OzA2ODQ7CitGQjc1O0ZCNzU7RkI3NTswNjg0OzA2ODQ7CitGQjc2O0ZCNzY7RkI3NjswNjgzOzA2ODM7CitGQjc3O0ZCNzc7RkI3NzswNjgzOzA2ODM7CitGQjc4O0ZCNzg7RkI3ODswNjgzOzA2ODM7CitGQjc5O0ZCNzk7RkI3OTswNjgzOzA2ODM7CitGQjdBO0ZCN0E7RkI3QTswNjg2OzA2ODY7CitGQjdCO0ZCN0I7RkI3QjswNjg2OzA2ODY7CitGQjdDO0ZCN0M7RkI3QzswNjg2OzA2ODY7CitGQjdEO0ZCN0Q7RkI3RDswNjg2OzA2ODY7CitGQjdFO0ZCN0U7RkI3RTswNjg3OzA2ODc7CitGQjdGO0ZCN0Y7RkI3RjswNjg3OzA2ODc7CitGQjgwO0ZCODA7RkI4MDswNjg3OzA2ODc7CitGQjgxO0ZCODE7RkI4MTswNjg3OzA2ODc7CitGQjgyO0ZCODI7RkI4MjswNjhEOzA2OEQ7CitGQjgzO0ZCODM7RkI4MzswNjhEOzA2OEQ7CitGQjg0O0ZCODQ7RkI4NDswNjhDOzA2OEM7CitGQjg1O0ZCODU7RkI4NTswNjhDOzA2OEM7CitGQjg2O0ZCODY7RkI4NjswNjhFOzA2OEU7CitGQjg3O0ZCODc7RkI4NzswNjhFOzA2OEU7CitGQjg4O0ZCODg7RkI4ODswNjg4OzA2ODg7CitGQjg5O0ZCODk7RkI4OTswNjg4OzA2ODg7CitGQjhBO0ZCOEE7RkI4QTswNjk4OzA2OTg7CitGQjhCO0ZCOEI7RkI4QjswNjk4OzA2OTg7CitGQjhDO0ZCOEM7RkI4QzswNjkxOzA2OTE7CitGQjhEO0ZCOEQ7RkI4RDswNjkxOzA2OTE7CitGQjhFO0ZCOEU7RkI4RTswNkE5OzA2QTk7CitGQjhGO0ZCOEY7RkI4RjswNkE5OzA2QTk7CitGQjkwO0ZCOTA7RkI5MDswNkE5OzA2QTk7CitGQjkxO0ZCOTE7RkI5MTswNkE5OzA2QTk7CitGQjkyO0ZCOTI7RkI5MjswNkFGOzA2QUY7CitGQjkzO0ZCOTM7RkI5MzswNkFGOzA2QUY7CitGQjk0O0ZCOTQ7RkI5NDswNkFGOzA2QUY7CitGQjk1O0ZCOTU7RkI5NTswNkFGOzA2QUY7CitGQjk2O0ZCOTY7RkI5NjswNkIzOzA2QjM7CitGQjk3O0ZCOTc7RkI5NzswNkIzOzA2QjM7CitGQjk4O0ZCOTg7RkI5ODswNkIzOzA2QjM7CitGQjk5O0ZCOTk7RkI5OTswNkIzOzA2QjM7CitGQjlBO0ZCOUE7RkI5QTswNkIxOzA2QjE7CitGQjlCO0ZCOUI7RkI5QjswNkIxOzA2QjE7CitGQjlDO0ZCOUM7RkI5QzswNkIxOzA2QjE7CitGQjlEO0ZCOUQ7RkI5RDswNkIxOzA2QjE7CitGQjlFO0ZCOUU7RkI5RTswNkJBOzA2QkE7CitGQjlGO0ZCOUY7RkI5RjswNkJBOzA2QkE7CitGQkEwO0ZCQTA7RkJBMDswNkJCOzA2QkI7CitGQkExO0ZCQTE7RkJBMTswNkJCOzA2QkI7CitGQkEyO0ZCQTI7RkJBMjswNkJCOzA2QkI7CitGQkEzO0ZCQTM7RkJBMzswNkJCOzA2QkI7CitGQkE0O0ZCQTQ7RkJBNDswNkMwOzA2RDUgMDY1NDsKK0ZCQTU7RkJBNTtGQkE1OzA2QzA7MDZENSAwNjU0OworRkJBNjtGQkE2O0ZCQTY7MDZDMTswNkMxOworRkJBNztGQkE3O0ZCQTc7MDZDMTswNkMxOworRkJBODtGQkE4O0ZCQTg7MDZDMTswNkMxOworRkJBOTtGQkE5O0ZCQTk7MDZDMTswNkMxOworRkJBQTtGQkFBO0ZCQUE7MDZCRTswNkJFOworRkJBQjtGQkFCO0ZCQUI7MDZCRTswNkJFOworRkJBQztGQkFDO0ZCQUM7MDZCRTswNkJFOworRkJBRDtGQkFEO0ZCQUQ7MDZCRTswNkJFOworRkJBRTtGQkFFO0ZCQUU7MDZEMjswNkQyOworRkJBRjtGQkFGO0ZCQUY7MDZEMjswNkQyOworRkJCMDtGQkIwO0ZCQjA7MDZEMzswNkQyIDA2NTQ7CitGQkIxO0ZCQjE7RkJCMTswNkQzOzA2RDIgMDY1NDsKK0ZCRDM7RkJEMztGQkQzOzA2QUQ7MDZBRDsKK0ZCRDQ7RkJENDtGQkQ0OzA2QUQ7MDZBRDsKK0ZCRDU7RkJENTtGQkQ1OzA2QUQ7MDZBRDsKK0ZCRDY7RkJENjtGQkQ2OzA2QUQ7MDZBRDsKK0ZCRDc7RkJENztGQkQ3OzA2Qzc7MDZDNzsKK0ZCRDg7RkJEODtGQkQ4OzA2Qzc7MDZDNzsKK0ZCRDk7RkJEOTtGQkQ5OzA2QzY7MDZDNjsKK0ZCREE7RkJEQTtGQkRBOzA2QzY7MDZDNjsKK0ZCREI7RkJEQjtGQkRCOzA2Qzg7MDZDODsKK0ZCREM7RkJEQztGQkRDOzA2Qzg7MDZDODsKK0ZCREQ7RkJERDtGQkREOzA2QzcgMDY3NDswNkM3IDA2NzQ7CitGQkRFO0ZCREU7RkJERTswNkNCOzA2Q0I7CitGQkRGO0ZCREY7RkJERjswNkNCOzA2Q0I7CitGQkUwO0ZCRTA7RkJFMDswNkM1OzA2QzU7CitGQkUxO0ZCRTE7RkJFMTswNkM1OzA2QzU7CitGQkUyO0ZCRTI7RkJFMjswNkM5OzA2Qzk7CitGQkUzO0ZCRTM7RkJFMzswNkM5OzA2Qzk7CitGQkU0O0ZCRTQ7RkJFNDswNkQwOzA2RDA7CitGQkU1O0ZCRTU7RkJFNTswNkQwOzA2RDA7CitGQkU2O0ZCRTY7RkJFNjswNkQwOzA2RDA7CitGQkU3O0ZCRTc7RkJFNzswNkQwOzA2RDA7CitGQkU4O0ZCRTg7RkJFODswNjQ5OzA2NDk7CitGQkU5O0ZCRTk7RkJFOTswNjQ5OzA2NDk7CitGQkVBO0ZCRUE7RkJFQTswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVCO0ZCRUI7RkJFQjswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVDO0ZCRUM7RkJFQzswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVEO0ZCRUQ7RkJFRDswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVFO0ZCRUU7RkJFRTswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkVGO0ZCRUY7RkJFRjswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkYwO0ZCRjA7RkJGMDswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYxO0ZCRjE7RkJGMTswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYyO0ZCRjI7RkJGMjswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkYzO0ZCRjM7RkJGMzswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkY0O0ZCRjQ7RkJGNDswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY1O0ZCRjU7RkJGNTswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY2O0ZCRjY7RkJGNjswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY3O0ZCRjc7RkJGNzswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY4O0ZCRjg7RkJGODswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY5O0ZCRjk7RkJGOTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZBO0ZCRkE7RkJGQTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZCO0ZCRkI7RkJGQjswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZDO0ZCRkM7RkJGQzswNkNDOzA2Q0M7CitGQkZEO0ZCRkQ7RkJGRDswNkNDOzA2Q0M7CitGQkZFO0ZCRkU7RkJGRTswNkNDOzA2Q0M7CitGQkZGO0ZCRkY7RkJGRjswNkNDOzA2Q0M7CitGQzAwO0ZDMDA7RkMwMDswNjI2IDA2MkM7MDY0QSAwNjU0IDA2MkM7CitGQzAxO0ZDMDE7RkMwMTswNjI2IDA2MkQ7MDY0QSAwNjU0IDA2MkQ7CitGQzAyO0ZDMDI7RkMwMjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQzAzO0ZDMDM7RkMwMzswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQzA0O0ZDMDQ7RkMwNDswNjI2IDA2NEE7MDY0QSAwNjU0IDA2NEE7CitGQzA1O0ZDMDU7RkMwNTswNjI4IDA2MkM7MDYyOCAwNjJDOworRkMwNjtGQzA2O0ZDMDY7MDYyOCAwNjJEOzA2MjggMDYyRDsKK0ZDMDc7RkMwNztGQzA3OzA2MjggMDYyRTswNjI4IDA2MkU7CitGQzA4O0ZDMDg7RkMwODswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkMwOTtGQzA5O0ZDMDk7MDYyOCAwNjQ5OzA2MjggMDY0OTsKK0ZDMEE7RkMwQTtGQzBBOzA2MjggMDY0QTswNjI4IDA2NEE7CitGQzBCO0ZDMEI7RkMwQjswNjJBIDA2MkM7MDYyQSAwNjJDOworRkMwQztGQzBDO0ZDMEM7MDYyQSAwNjJEOzA2MkEgMDYyRDsKK0ZDMEQ7RkMwRDtGQzBEOzA2MkEgMDYyRTswNjJBIDA2MkU7CitGQzBFO0ZDMEU7RkMwRTswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkMwRjtGQzBGO0ZDMEY7MDYyQSAwNjQ5OzA2MkEgMDY0OTsKK0ZDMTA7RkMxMDtGQzEwOzA2MkEgMDY0QTswNjJBIDA2NEE7CitGQzExO0ZDMTE7RkMxMTswNjJCIDA2MkM7MDYyQiAwNjJDOworRkMxMjtGQzEyO0ZDMTI7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDMTM7RkMxMztGQzEzOzA2MkIgMDY0OTswNjJCIDA2NDk7CitGQzE0O0ZDMTQ7RkMxNDswNjJCIDA2NEE7MDYyQiAwNjRBOworRkMxNTtGQzE1O0ZDMTU7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDMTY7RkMxNjtGQzE2OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQzE3O0ZDMTc7RkMxNzswNjJEIDA2MkM7MDYyRCAwNjJDOworRkMxODtGQzE4O0ZDMTg7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDMTk7RkMxOTtGQzE5OzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQzFBO0ZDMUE7RkMxQTswNjJFIDA2MkQ7MDYyRSAwNjJEOworRkMxQjtGQzFCO0ZDMUI7MDYyRSAwNjQ1OzA2MkUgMDY0NTsKK0ZDMUM7RkMxQztGQzFDOzA2MzMgMDYyQzswNjMzIDA2MkM7CitGQzFEO0ZDMUQ7RkMxRDswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkMxRTtGQzFFO0ZDMUU7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZDMUY7RkMxRjtGQzFGOzA2MzMgMDY0NTswNjMzIDA2NDU7CitGQzIwO0ZDMjA7RkMyMDswNjM1IDA2MkQ7MDYzNSAwNjJEOworRkMyMTtGQzIxO0ZDMjE7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDMjI7RkMyMjtGQzIyOzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQzIzO0ZDMjM7RkMyMzswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkMyNDtGQzI0O0ZDMjQ7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDMjU7RkMyNTtGQzI1OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQzI2O0ZDMjY7RkMyNjswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkMyNztGQzI3O0ZDMjc7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZDMjg7RkMyODtGQzI4OzA2MzggMDY0NTswNjM4IDA2NDU7CitGQzI5O0ZDMjk7RkMyOTswNjM5IDA2MkM7MDYzOSAwNjJDOworRkMyQTtGQzJBO0ZDMkE7MDYzOSAwNjQ1OzA2MzkgMDY0NTsKK0ZDMkI7RkMyQjtGQzJCOzA2M0EgMDYyQzswNjNBIDA2MkM7CitGQzJDO0ZDMkM7RkMyQzswNjNBIDA2NDU7MDYzQSAwNjQ1OworRkMyRDtGQzJEO0ZDMkQ7MDY0MSAwNjJDOzA2NDEgMDYyQzsKK0ZDMkU7RkMyRTtGQzJFOzA2NDEgMDYyRDswNjQxIDA2MkQ7CitGQzJGO0ZDMkY7RkMyRjswNjQxIDA2MkU7MDY0MSAwNjJFOworRkMzMDtGQzMwO0ZDMzA7MDY0MSAwNjQ1OzA2NDEgMDY0NTsKK0ZDMzE7RkMzMTtGQzMxOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzMyO0ZDMzI7RkMzMjswNjQxIDA2NEE7MDY0MSAwNjRBOworRkMzMztGQzMzO0ZDMzM7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDMzQ7RkMzNDtGQzM0OzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQzM1O0ZDMzU7RkMzNTswNjQyIDA2NDk7MDY0MiAwNjQ5OworRkMzNjtGQzM2O0ZDMzY7MDY0MiAwNjRBOzA2NDIgMDY0QTsKK0ZDMzc7RkMzNztGQzM3OzA2NDMgMDYyNzswNjQzIDA2Mjc7CitGQzM4O0ZDMzg7RkMzODswNjQzIDA2MkM7MDY0MyAwNjJDOworRkMzOTtGQzM5O0ZDMzk7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDM0E7RkMzQTtGQzNBOzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQzNCO0ZDM0I7RkMzQjswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkMzQztGQzNDO0ZDM0M7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDM0Q7RkMzRDtGQzNEOzA2NDMgMDY0OTswNjQzIDA2NDk7CitGQzNFO0ZDM0U7RkMzRTswNjQzIDA2NEE7MDY0MyAwNjRBOworRkMzRjtGQzNGO0ZDM0Y7MDY0NCAwNjJDOzA2NDQgMDYyQzsKK0ZDNDA7RkM0MDtGQzQwOzA2NDQgMDYyRDswNjQ0IDA2MkQ7CitGQzQxO0ZDNDE7RkM0MTswNjQ0IDA2MkU7MDY0NCAwNjJFOworRkM0MjtGQzQyO0ZDNDI7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDNDM7RkM0MztGQzQzOzA2NDQgMDY0OTswNjQ0IDA2NDk7CitGQzQ0O0ZDNDQ7RkM0NDswNjQ0IDA2NEE7MDY0NCAwNjRBOworRkM0NTtGQzQ1O0ZDNDU7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDNDY7RkM0NjtGQzQ2OzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQzQ3O0ZDNDc7RkM0NzswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkM0ODtGQzQ4O0ZDNDg7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDNDk7RkM0OTtGQzQ5OzA2NDUgMDY0OTswNjQ1IDA2NDk7CitGQzRBO0ZDNEE7RkM0QTswNjQ1IDA2NEE7MDY0NSAwNjRBOworRkM0QjtGQzRCO0ZDNEI7MDY0NiAwNjJDOzA2NDYgMDYyQzsKK0ZDNEM7RkM0QztGQzRDOzA2NDYgMDYyRDswNjQ2IDA2MkQ7CitGQzREO0ZDNEQ7RkM0RDswNjQ2IDA2MkU7MDY0NiAwNjJFOworRkM0RTtGQzRFO0ZDNEU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDNEY7RkM0RjtGQzRGOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzUwO0ZDNTA7RkM1MDswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM1MTtGQzUxO0ZDNTE7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDNTI7RkM1MjtGQzUyOzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQzUzO0ZDNTM7RkM1MzswNjQ3IDA2NDk7MDY0NyAwNjQ5OworRkM1NDtGQzU0O0ZDNTQ7MDY0NyAwNjRBOzA2NDcgMDY0QTsKK0ZDNTU7RkM1NTtGQzU1OzA2NEEgMDYyQzswNjRBIDA2MkM7CitGQzU2O0ZDNTY7RkM1NjswNjRBIDA2MkQ7MDY0QSAwNjJEOworRkM1NztGQzU3O0ZDNTc7MDY0QSAwNjJFOzA2NEEgMDYyRTsKK0ZDNTg7RkM1ODtGQzU4OzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQzU5O0ZDNTk7RkM1OTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM1QTtGQzVBO0ZDNUE7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDNUI7RkM1QjtGQzVCOzA2MzAgMDY3MDswNjMwIDA2NzA7CitGQzVDO0ZDNUM7RkM1QzswNjMxIDA2NzA7MDYzMSAwNjcwOworRkM1RDtGQzVEO0ZDNUQ7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDNUU7RkM1RTtGQzVFOzAwMjAgMDY0QyAwNjUxOzAwMjAgMDY0QyAwNjUxOworRkM1RjtGQzVGO0ZDNUY7MDAyMCAwNjREIDA2NTE7MDAyMCAwNjREIDA2NTE7CitGQzYwO0ZDNjA7RkM2MDswMDIwIDA2NEUgMDY1MTswMDIwIDA2NEUgMDY1MTsKK0ZDNjE7RkM2MTtGQzYxOzAwMjAgMDY0RiAwNjUxOzAwMjAgMDY0RiAwNjUxOworRkM2MjtGQzYyO0ZDNjI7MDAyMCAwNjUwIDA2NTE7MDAyMCAwNjUwIDA2NTE7CitGQzYzO0ZDNjM7RkM2MzswMDIwIDA2NTEgMDY3MDswMDIwIDA2NTEgMDY3MDsKK0ZDNjQ7RkM2NDtGQzY0OzA2MjYgMDYzMTswNjRBIDA2NTQgMDYzMTsKK0ZDNjU7RkM2NTtGQzY1OzA2MjYgMDYzMjswNjRBIDA2NTQgMDYzMjsKK0ZDNjY7RkM2NjtGQzY2OzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDNjc7RkM2NztGQzY3OzA2MjYgMDY0NjswNjRBIDA2NTQgMDY0NjsKK0ZDNjg7RkM2ODtGQzY4OzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZDNjk7RkM2OTtGQzY5OzA2MjYgMDY0QTswNjRBIDA2NTQgMDY0QTsKK0ZDNkE7RkM2QTtGQzZBOzA2MjggMDYzMTswNjI4IDA2MzE7CitGQzZCO0ZDNkI7RkM2QjswNjI4IDA2MzI7MDYyOCAwNjMyOworRkM2QztGQzZDO0ZDNkM7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDNkQ7RkM2RDtGQzZEOzA2MjggMDY0NjswNjI4IDA2NDY7CitGQzZFO0ZDNkU7RkM2RTswNjI4IDA2NDk7MDYyOCAwNjQ5OworRkM2RjtGQzZGO0ZDNkY7MDYyOCAwNjRBOzA2MjggMDY0QTsKK0ZDNzA7RkM3MDtGQzcwOzA2MkEgMDYzMTswNjJBIDA2MzE7CitGQzcxO0ZDNzE7RkM3MTswNjJBIDA2MzI7MDYyQSAwNjMyOworRkM3MjtGQzcyO0ZDNzI7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDNzM7RkM3MztGQzczOzA2MkEgMDY0NjswNjJBIDA2NDY7CitGQzc0O0ZDNzQ7RkM3NDswNjJBIDA2NDk7MDYyQSAwNjQ5OworRkM3NTtGQzc1O0ZDNzU7MDYyQSAwNjRBOzA2MkEgMDY0QTsKK0ZDNzY7RkM3NjtGQzc2OzA2MkIgMDYzMTswNjJCIDA2MzE7CitGQzc3O0ZDNzc7RkM3NzswNjJCIDA2MzI7MDYyQiAwNjMyOworRkM3ODtGQzc4O0ZDNzg7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDNzk7RkM3OTtGQzc5OzA2MkIgMDY0NjswNjJCIDA2NDY7CitGQzdBO0ZDN0E7RkM3QTswNjJCIDA2NDk7MDYyQiAwNjQ5OworRkM3QjtGQzdCO0ZDN0I7MDYyQiAwNjRBOzA2MkIgMDY0QTsKK0ZDN0M7RkM3QztGQzdDOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzdEO0ZDN0Q7RkM3RDswNjQxIDA2NEE7MDY0MSAwNjRBOworRkM3RTtGQzdFO0ZDN0U7MDY0MiAwNjQ5OzA2NDIgMDY0OTsKK0ZDN0Y7RkM3RjtGQzdGOzA2NDIgMDY0QTswNjQyIDA2NEE7CitGQzgwO0ZDODA7RkM4MDswNjQzIDA2Mjc7MDY0MyAwNjI3OworRkM4MTtGQzgxO0ZDODE7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDODI7RkM4MjtGQzgyOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQzgzO0ZDODM7RkM4MzswNjQzIDA2NDk7MDY0MyAwNjQ5OworRkM4NDtGQzg0O0ZDODQ7MDY0MyAwNjRBOzA2NDMgMDY0QTsKK0ZDODU7RkM4NTtGQzg1OzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQzg2O0ZDODY7RkM4NjswNjQ0IDA2NDk7MDY0NCAwNjQ5OworRkM4NztGQzg3O0ZDODc7MDY0NCAwNjRBOzA2NDQgMDY0QTsKK0ZDODg7RkM4ODtGQzg4OzA2NDUgMDYyNzswNjQ1IDA2Mjc7CitGQzg5O0ZDODk7RkM4OTswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkM4QTtGQzhBO0ZDOEE7MDY0NiAwNjMxOzA2NDYgMDYzMTsKK0ZDOEI7RkM4QjtGQzhCOzA2NDYgMDYzMjswNjQ2IDA2MzI7CitGQzhDO0ZDOEM7RkM4QzswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkM4RDtGQzhEO0ZDOEQ7MDY0NiAwNjQ2OzA2NDYgMDY0NjsKK0ZDOEU7RkM4RTtGQzhFOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzhGO0ZDOEY7RkM4RjswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM5MDtGQzkwO0ZDOTA7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDOTE7RkM5MTtGQzkxOzA2NEEgMDYzMTswNjRBIDA2MzE7CitGQzkyO0ZDOTI7RkM5MjswNjRBIDA2MzI7MDY0QSAwNjMyOworRkM5MztGQzkzO0ZDOTM7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDOTQ7RkM5NDtGQzk0OzA2NEEgMDY0NjswNjRBIDA2NDY7CitGQzk1O0ZDOTU7RkM5NTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM5NjtGQzk2O0ZDOTY7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDOTc7RkM5NztGQzk3OzA2MjYgMDYyQzswNjRBIDA2NTQgMDYyQzsKK0ZDOTg7RkM5ODtGQzk4OzA2MjYgMDYyRDswNjRBIDA2NTQgMDYyRDsKK0ZDOTk7RkM5OTtGQzk5OzA2MjYgMDYyRTswNjRBIDA2NTQgMDYyRTsKK0ZDOUE7RkM5QTtGQzlBOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDOUI7RkM5QjtGQzlCOzA2MjYgMDY0NzswNjRBIDA2NTQgMDY0NzsKK0ZDOUM7RkM5QztGQzlDOzA2MjggMDYyQzswNjI4IDA2MkM7CitGQzlEO0ZDOUQ7RkM5RDswNjI4IDA2MkQ7MDYyOCAwNjJEOworRkM5RTtGQzlFO0ZDOUU7MDYyOCAwNjJFOzA2MjggMDYyRTsKK0ZDOUY7RkM5RjtGQzlGOzA2MjggMDY0NTswNjI4IDA2NDU7CitGQ0EwO0ZDQTA7RkNBMDswNjI4IDA2NDc7MDYyOCAwNjQ3OworRkNBMTtGQ0ExO0ZDQTE7MDYyQSAwNjJDOzA2MkEgMDYyQzsKK0ZDQTI7RkNBMjtGQ0EyOzA2MkEgMDYyRDswNjJBIDA2MkQ7CitGQ0EzO0ZDQTM7RkNBMzswNjJBIDA2MkU7MDYyQSAwNjJFOworRkNBNDtGQ0E0O0ZDQTQ7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDQTU7RkNBNTtGQ0E1OzA2MkEgMDY0NzswNjJBIDA2NDc7CitGQ0E2O0ZDQTY7RkNBNjswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkNBNztGQ0E3O0ZDQTc7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDQTg7RkNBODtGQ0E4OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQ0E5O0ZDQTk7RkNBOTswNjJEIDA2MkM7MDYyRCAwNjJDOworRkNBQTtGQ0FBO0ZDQUE7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDQUI7RkNBQjtGQ0FCOzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQ0FDO0ZDQUM7RkNBQzswNjJFIDA2NDU7MDYyRSAwNjQ1OworRkNBRDtGQ0FEO0ZDQUQ7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZDQUU7RkNBRTtGQ0FFOzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGQ0FGO0ZDQUY7RkNBRjswNjMzIDA2MkU7MDYzMyAwNjJFOworRkNCMDtGQ0IwO0ZDQjA7MDYzMyAwNjQ1OzA2MzMgMDY0NTsKK0ZDQjE7RkNCMTtGQ0IxOzA2MzUgMDYyRDswNjM1IDA2MkQ7CitGQ0IyO0ZDQjI7RkNCMjswNjM1IDA2MkU7MDYzNSAwNjJFOworRkNCMztGQ0IzO0ZDQjM7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDQjQ7RkNCNDtGQ0I0OzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQ0I1O0ZDQjU7RkNCNTswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkNCNjtGQ0I2O0ZDQjY7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDQjc7RkNCNztGQ0I3OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQ0I4O0ZDQjg7RkNCODswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkNCOTtGQ0I5O0ZDQjk7MDYzOCAwNjQ1OzA2MzggMDY0NTsKK0ZDQkE7RkNCQTtGQ0JBOzA2MzkgMDYyQzswNjM5IDA2MkM7CitGQ0JCO0ZDQkI7RkNCQjswNjM5IDA2NDU7MDYzOSAwNjQ1OworRkNCQztGQ0JDO0ZDQkM7MDYzQSAwNjJDOzA2M0EgMDYyQzsKK0ZDQkQ7RkNCRDtGQ0JEOzA2M0EgMDY0NTswNjNBIDA2NDU7CitGQ0JFO0ZDQkU7RkNCRTswNjQxIDA2MkM7MDY0MSAwNjJDOworRkNCRjtGQ0JGO0ZDQkY7MDY0MSAwNjJEOzA2NDEgMDYyRDsKK0ZDQzA7RkNDMDtGQ0MwOzA2NDEgMDYyRTswNjQxIDA2MkU7CitGQ0MxO0ZDQzE7RkNDMTswNjQxIDA2NDU7MDY0MSAwNjQ1OworRkNDMjtGQ0MyO0ZDQzI7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDQzM7RkNDMztGQ0MzOzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQ0M0O0ZDQzQ7RkNDNDswNjQzIDA2MkM7MDY0MyAwNjJDOworRkNDNTtGQ0M1O0ZDQzU7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDQzY7RkNDNjtGQ0M2OzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQ0M3O0ZDQzc7RkNDNzswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkNDODtGQ0M4O0ZDQzg7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDQzk7RkNDOTtGQ0M5OzA2NDQgMDYyQzswNjQ0IDA2MkM7CitGQ0NBO0ZDQ0E7RkNDQTswNjQ0IDA2MkQ7MDY0NCAwNjJEOworRkNDQjtGQ0NCO0ZDQ0I7MDY0NCAwNjJFOzA2NDQgMDYyRTsKK0ZDQ0M7RkNDQztGQ0NDOzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQ0NEO0ZDQ0Q7RkNDRDswNjQ0IDA2NDc7MDY0NCAwNjQ3OworRkNDRTtGQ0NFO0ZDQ0U7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDQ0Y7RkNDRjtGQ0NGOzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQ0QwO0ZDRDA7RkNEMDswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkNEMTtGQ0QxO0ZDRDE7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDRDI7RkNEMjtGQ0QyOzA2NDYgMDYyQzswNjQ2IDA2MkM7CitGQ0QzO0ZDRDM7RkNEMzswNjQ2IDA2MkQ7MDY0NiAwNjJEOworRkNENDtGQ0Q0O0ZDRDQ7MDY0NiAwNjJFOzA2NDYgMDYyRTsKK0ZDRDU7RkNENTtGQ0Q1OzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQ0Q2O0ZDRDY7RkNENjswNjQ2IDA2NDc7MDY0NiAwNjQ3OworRkNENztGQ0Q3O0ZDRDc7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDRDg7RkNEODtGQ0Q4OzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQ0Q5O0ZDRDk7RkNEOTswNjQ3IDA2NzA7MDY0NyAwNjcwOworRkNEQTtGQ0RBO0ZDREE7MDY0QSAwNjJDOzA2NEEgMDYyQzsKK0ZDREI7RkNEQjtGQ0RCOzA2NEEgMDYyRDswNjRBIDA2MkQ7CitGQ0RDO0ZDREM7RkNEQzswNjRBIDA2MkU7MDY0QSAwNjJFOworRkNERDtGQ0REO0ZDREQ7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDREU7RkNERTtGQ0RFOzA2NEEgMDY0NzswNjRBIDA2NDc7CitGQ0RGO0ZDREY7RkNERjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQ0UwO0ZDRTA7RkNFMDswNjI2IDA2NDc7MDY0QSAwNjU0IDA2NDc7CitGQ0UxO0ZDRTE7RkNFMTswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkNFMjtGQ0UyO0ZDRTI7MDYyOCAwNjQ3OzA2MjggMDY0NzsKK0ZDRTM7RkNFMztGQ0UzOzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQ0U0O0ZDRTQ7RkNFNDswNjJBIDA2NDc7MDYyQSAwNjQ3OworRkNFNTtGQ0U1O0ZDRTU7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDRTY7RkNFNjtGQ0U2OzA2MkIgMDY0NzswNjJCIDA2NDc7CitGQ0U3O0ZDRTc7RkNFNzswNjMzIDA2NDU7MDYzMyAwNjQ1OworRkNFODtGQ0U4O0ZDRTg7MDYzMyAwNjQ3OzA2MzMgMDY0NzsKK0ZDRTk7RkNFOTtGQ0U5OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGQ0VBO0ZDRUE7RkNFQTswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkNFQjtGQ0VCO0ZDRUI7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDRUM7RkNFQztGQ0VDOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQ0VEO0ZDRUQ7RkNFRDswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkNFRTtGQ0VFO0ZDRUU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDRUY7RkNFRjtGQ0VGOzA2NDYgMDY0NzswNjQ2IDA2NDc7CitGQ0YwO0ZDRjA7RkNGMDswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkNGMTtGQ0YxO0ZDRjE7MDY0QSAwNjQ3OzA2NEEgMDY0NzsKK0ZDRjI7RkNGMjtGQ0YyOzA2NDAgMDY0RSAwNjUxOzA2NDAgMDY0RSAwNjUxOworRkNGMztGQ0YzO0ZDRjM7MDY0MCAwNjRGIDA2NTE7MDY0MCAwNjRGIDA2NTE7CitGQ0Y0O0ZDRjQ7RkNGNDswNjQwIDA2NTAgMDY1MTswNjQwIDA2NTAgMDY1MTsKK0ZDRjU7RkNGNTtGQ0Y1OzA2MzcgMDY0OTswNjM3IDA2NDk7CitGQ0Y2O0ZDRjY7RkNGNjswNjM3IDA2NEE7MDYzNyAwNjRBOworRkNGNztGQ0Y3O0ZDRjc7MDYzOSAwNjQ5OzA2MzkgMDY0OTsKK0ZDRjg7RkNGODtGQ0Y4OzA2MzkgMDY0QTswNjM5IDA2NEE7CitGQ0Y5O0ZDRjk7RkNGOTswNjNBIDA2NDk7MDYzQSAwNjQ5OworRkNGQTtGQ0ZBO0ZDRkE7MDYzQSAwNjRBOzA2M0EgMDY0QTsKK0ZDRkI7RkNGQjtGQ0ZCOzA2MzMgMDY0OTswNjMzIDA2NDk7CitGQ0ZDO0ZDRkM7RkNGQzswNjMzIDA2NEE7MDYzMyAwNjRBOworRkNGRDtGQ0ZEO0ZDRkQ7MDYzNCAwNjQ5OzA2MzQgMDY0OTsKK0ZDRkU7RkNGRTtGQ0ZFOzA2MzQgMDY0QTswNjM0IDA2NEE7CitGQ0ZGO0ZDRkY7RkNGRjswNjJEIDA2NDk7MDYyRCAwNjQ5OworRkQwMDtGRDAwO0ZEMDA7MDYyRCAwNjRBOzA2MkQgMDY0QTsKK0ZEMDE7RkQwMTtGRDAxOzA2MkMgMDY0OTswNjJDIDA2NDk7CitGRDAyO0ZEMDI7RkQwMjswNjJDIDA2NEE7MDYyQyAwNjRBOworRkQwMztGRDAzO0ZEMDM7MDYyRSAwNjQ5OzA2MkUgMDY0OTsKK0ZEMDQ7RkQwNDtGRDA0OzA2MkUgMDY0QTswNjJFIDA2NEE7CitGRDA1O0ZEMDU7RkQwNTswNjM1IDA2NDk7MDYzNSAwNjQ5OworRkQwNjtGRDA2O0ZEMDY7MDYzNSAwNjRBOzA2MzUgMDY0QTsKK0ZEMDc7RkQwNztGRDA3OzA2MzYgMDY0OTswNjM2IDA2NDk7CitGRDA4O0ZEMDg7RkQwODswNjM2IDA2NEE7MDYzNiAwNjRBOworRkQwOTtGRDA5O0ZEMDk7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMEE7RkQwQTtGRDBBOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDBCO0ZEMEI7RkQwQjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQwQztGRDBDO0ZEMEM7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMEQ7RkQwRDtGRDBEOzA2MzQgMDYzMTswNjM0IDA2MzE7CitGRDBFO0ZEMEU7RkQwRTswNjMzIDA2MzE7MDYzMyAwNjMxOworRkQwRjtGRDBGO0ZEMEY7MDYzNSAwNjMxOzA2MzUgMDYzMTsKK0ZEMTA7RkQxMDtGRDEwOzA2MzYgMDYzMTswNjM2IDA2MzE7CitGRDExO0ZEMTE7RkQxMTswNjM3IDA2NDk7MDYzNyAwNjQ5OworRkQxMjtGRDEyO0ZEMTI7MDYzNyAwNjRBOzA2MzcgMDY0QTsKK0ZEMTM7RkQxMztGRDEzOzA2MzkgMDY0OTswNjM5IDA2NDk7CitGRDE0O0ZEMTQ7RkQxNDswNjM5IDA2NEE7MDYzOSAwNjRBOworRkQxNTtGRDE1O0ZEMTU7MDYzQSAwNjQ5OzA2M0EgMDY0OTsKK0ZEMTY7RkQxNjtGRDE2OzA2M0EgMDY0QTswNjNBIDA2NEE7CitGRDE3O0ZEMTc7RkQxNzswNjMzIDA2NDk7MDYzMyAwNjQ5OworRkQxODtGRDE4O0ZEMTg7MDYzMyAwNjRBOzA2MzMgMDY0QTsKK0ZEMTk7RkQxOTtGRDE5OzA2MzQgMDY0OTswNjM0IDA2NDk7CitGRDFBO0ZEMUE7RkQxQTswNjM0IDA2NEE7MDYzNCAwNjRBOworRkQxQjtGRDFCO0ZEMUI7MDYyRCAwNjQ5OzA2MkQgMDY0OTsKK0ZEMUM7RkQxQztGRDFDOzA2MkQgMDY0QTswNjJEIDA2NEE7CitGRDFEO0ZEMUQ7RkQxRDswNjJDIDA2NDk7MDYyQyAwNjQ5OworRkQxRTtGRDFFO0ZEMUU7MDYyQyAwNjRBOzA2MkMgMDY0QTsKK0ZEMUY7RkQxRjtGRDFGOzA2MkUgMDY0OTswNjJFIDA2NDk7CitGRDIwO0ZEMjA7RkQyMDswNjJFIDA2NEE7MDYyRSAwNjRBOworRkQyMTtGRDIxO0ZEMjE7MDYzNSAwNjQ5OzA2MzUgMDY0OTsKK0ZEMjI7RkQyMjtGRDIyOzA2MzUgMDY0QTswNjM1IDA2NEE7CitGRDIzO0ZEMjM7RkQyMzswNjM2IDA2NDk7MDYzNiAwNjQ5OworRkQyNDtGRDI0O0ZEMjQ7MDYzNiAwNjRBOzA2MzYgMDY0QTsKK0ZEMjU7RkQyNTtGRDI1OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDI2O0ZEMjY7RkQyNjswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQyNztGRDI3O0ZEMjc7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEMjg7RkQyODtGRDI4OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGRDI5O0ZEMjk7RkQyOTswNjM0IDA2MzE7MDYzNCAwNjMxOworRkQyQTtGRDJBO0ZEMkE7MDYzMyAwNjMxOzA2MzMgMDYzMTsKK0ZEMkI7RkQyQjtGRDJCOzA2MzUgMDYzMTswNjM1IDA2MzE7CitGRDJDO0ZEMkM7RkQyQzswNjM2IDA2MzE7MDYzNiAwNjMxOworRkQyRDtGRDJEO0ZEMkQ7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMkU7RkQyRTtGRDJFOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDJGO0ZEMkY7RkQyRjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQzMDtGRDMwO0ZEMzA7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMzE7RkQzMTtGRDMxOzA2MzMgMDY0NzswNjMzIDA2NDc7CitGRDMyO0ZEMzI7RkQzMjswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkQzMztGRDMzO0ZEMzM7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZEMzQ7RkQzNDtGRDM0OzA2MzMgMDYyQzswNjMzIDA2MkM7CitGRDM1O0ZEMzU7RkQzNTswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkQzNjtGRDM2O0ZEMzY7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZEMzc7RkQzNztGRDM3OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDM4O0ZEMzg7RkQzODswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQzOTtGRDM5O0ZEMzk7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEM0E7RkQzQTtGRDNBOzA2MzcgMDY0NTswNjM3IDA2NDU7CitGRDNCO0ZEM0I7RkQzQjswNjM4IDA2NDU7MDYzOCAwNjQ1OworRkQzQztGRDNDO0ZEM0M7MDYyNyAwNjRCOzA2MjcgMDY0QjsKK0ZEM0Q7RkQzRDtGRDNEOzA2MjcgMDY0QjswNjI3IDA2NEI7CitGRDUwO0ZENTA7RkQ1MDswNjJBIDA2MkMgMDY0NTswNjJBIDA2MkMgMDY0NTsKK0ZENTE7RkQ1MTtGRDUxOzA2MkEgMDYyRCAwNjJDOzA2MkEgMDYyRCAwNjJDOworRkQ1MjtGRDUyO0ZENTI7MDYyQSAwNjJEIDA2MkM7MDYyQSAwNjJEIDA2MkM7CitGRDUzO0ZENTM7RkQ1MzswNjJBIDA2MkQgMDY0NTswNjJBIDA2MkQgMDY0NTsKK0ZENTQ7RkQ1NDtGRDU0OzA2MkEgMDYyRSAwNjQ1OzA2MkEgMDYyRSAwNjQ1OworRkQ1NTtGRDU1O0ZENTU7MDYyQSAwNjQ1IDA2MkM7MDYyQSAwNjQ1IDA2MkM7CitGRDU2O0ZENTY7RkQ1NjswNjJBIDA2NDUgMDYyRDswNjJBIDA2NDUgMDYyRDsKK0ZENTc7RkQ1NztGRDU3OzA2MkEgMDY0NSAwNjJFOzA2MkEgMDY0NSAwNjJFOworRkQ1ODtGRDU4O0ZENTg7MDYyQyAwNjQ1IDA2MkQ7MDYyQyAwNjQ1IDA2MkQ7CitGRDU5O0ZENTk7RkQ1OTswNjJDIDA2NDUgMDYyRDswNjJDIDA2NDUgMDYyRDsKK0ZENUE7RkQ1QTtGRDVBOzA2MkQgMDY0NSAwNjRBOzA2MkQgMDY0NSAwNjRBOworRkQ1QjtGRDVCO0ZENUI7MDYyRCAwNjQ1IDA2NDk7MDYyRCAwNjQ1IDA2NDk7CitGRDVDO0ZENUM7RkQ1QzswNjMzIDA2MkQgMDYyQzswNjMzIDA2MkQgMDYyQzsKK0ZENUQ7RkQ1RDtGRDVEOzA2MzMgMDYyQyAwNjJEOzA2MzMgMDYyQyAwNjJEOworRkQ1RTtGRDVFO0ZENUU7MDYzMyAwNjJDIDA2NDk7MDYzMyAwNjJDIDA2NDk7CitGRDVGO0ZENUY7RkQ1RjswNjMzIDA2NDUgMDYyRDswNjMzIDA2NDUgMDYyRDsKK0ZENjA7RkQ2MDtGRDYwOzA2MzMgMDY0NSAwNjJEOzA2MzMgMDY0NSAwNjJEOworRkQ2MTtGRDYxO0ZENjE7MDYzMyAwNjQ1IDA2MkM7MDYzMyAwNjQ1IDA2MkM7CitGRDYyO0ZENjI7RkQ2MjswNjMzIDA2NDUgMDY0NTswNjMzIDA2NDUgMDY0NTsKK0ZENjM7RkQ2MztGRDYzOzA2MzMgMDY0NSAwNjQ1OzA2MzMgMDY0NSAwNjQ1OworRkQ2NDtGRDY0O0ZENjQ7MDYzNSAwNjJEIDA2MkQ7MDYzNSAwNjJEIDA2MkQ7CitGRDY1O0ZENjU7RkQ2NTswNjM1IDA2MkQgMDYyRDswNjM1IDA2MkQgMDYyRDsKK0ZENjY7RkQ2NjtGRDY2OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkQ2NztGRDY3O0ZENjc7MDYzNCAwNjJEIDA2NDU7MDYzNCAwNjJEIDA2NDU7CitGRDY4O0ZENjg7RkQ2ODswNjM0IDA2MkQgMDY0NTswNjM0IDA2MkQgMDY0NTsKK0ZENjk7RkQ2OTtGRDY5OzA2MzQgMDYyQyAwNjRBOzA2MzQgMDYyQyAwNjRBOworRkQ2QTtGRDZBO0ZENkE7MDYzNCAwNjQ1IDA2MkU7MDYzNCAwNjQ1IDA2MkU7CitGRDZCO0ZENkI7RkQ2QjswNjM0IDA2NDUgMDYyRTswNjM0IDA2NDUgMDYyRTsKK0ZENkM7RkQ2QztGRDZDOzA2MzQgMDY0NSAwNjQ1OzA2MzQgMDY0NSAwNjQ1OworRkQ2RDtGRDZEO0ZENkQ7MDYzNCAwNjQ1IDA2NDU7MDYzNCAwNjQ1IDA2NDU7CitGRDZFO0ZENkU7RkQ2RTswNjM2IDA2MkQgMDY0OTswNjM2IDA2MkQgMDY0OTsKK0ZENkY7RkQ2RjtGRDZGOzA2MzYgMDYyRSAwNjQ1OzA2MzYgMDYyRSAwNjQ1OworRkQ3MDtGRDcwO0ZENzA7MDYzNiAwNjJFIDA2NDU7MDYzNiAwNjJFIDA2NDU7CitGRDcxO0ZENzE7RkQ3MTswNjM3IDA2NDUgMDYyRDswNjM3IDA2NDUgMDYyRDsKK0ZENzI7RkQ3MjtGRDcyOzA2MzcgMDY0NSAwNjJEOzA2MzcgMDY0NSAwNjJEOworRkQ3MztGRDczO0ZENzM7MDYzNyAwNjQ1IDA2NDU7MDYzNyAwNjQ1IDA2NDU7CitGRDc0O0ZENzQ7RkQ3NDswNjM3IDA2NDUgMDY0QTswNjM3IDA2NDUgMDY0QTsKK0ZENzU7RkQ3NTtGRDc1OzA2MzkgMDYyQyAwNjQ1OzA2MzkgMDYyQyAwNjQ1OworRkQ3NjtGRDc2O0ZENzY7MDYzOSAwNjQ1IDA2NDU7MDYzOSAwNjQ1IDA2NDU7CitGRDc3O0ZENzc7RkQ3NzswNjM5IDA2NDUgMDY0NTswNjM5IDA2NDUgMDY0NTsKK0ZENzg7RkQ3ODtGRDc4OzA2MzkgMDY0NSAwNjQ5OzA2MzkgMDY0NSAwNjQ5OworRkQ3OTtGRDc5O0ZENzk7MDYzQSAwNjQ1IDA2NDU7MDYzQSAwNjQ1IDA2NDU7CitGRDdBO0ZEN0E7RkQ3QTswNjNBIDA2NDUgMDY0QTswNjNBIDA2NDUgMDY0QTsKK0ZEN0I7RkQ3QjtGRDdCOzA2M0EgMDY0NSAwNjQ5OzA2M0EgMDY0NSAwNjQ5OworRkQ3QztGRDdDO0ZEN0M7MDY0MSAwNjJFIDA2NDU7MDY0MSAwNjJFIDA2NDU7CitGRDdEO0ZEN0Q7RkQ3RDswNjQxIDA2MkUgMDY0NTswNjQxIDA2MkUgMDY0NTsKK0ZEN0U7RkQ3RTtGRDdFOzA2NDIgMDY0NSAwNjJEOzA2NDIgMDY0NSAwNjJEOworRkQ3RjtGRDdGO0ZEN0Y7MDY0MiAwNjQ1IDA2NDU7MDY0MiAwNjQ1IDA2NDU7CitGRDgwO0ZEODA7RkQ4MDswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEODE7RkQ4MTtGRDgxOzA2NDQgMDYyRCAwNjRBOzA2NDQgMDYyRCAwNjRBOworRkQ4MjtGRDgyO0ZEODI7MDY0NCAwNjJEIDA2NDk7MDY0NCAwNjJEIDA2NDk7CitGRDgzO0ZEODM7RkQ4MzswNjQ0IDA2MkMgMDYyQzswNjQ0IDA2MkMgMDYyQzsKK0ZEODQ7RkQ4NDtGRDg0OzA2NDQgMDYyQyAwNjJDOzA2NDQgMDYyQyAwNjJDOworRkQ4NTtGRDg1O0ZEODU7MDY0NCAwNjJFIDA2NDU7MDY0NCAwNjJFIDA2NDU7CitGRDg2O0ZEODY7RkQ4NjswNjQ0IDA2MkUgMDY0NTswNjQ0IDA2MkUgMDY0NTsKK0ZEODc7RkQ4NztGRDg3OzA2NDQgMDY0NSAwNjJEOzA2NDQgMDY0NSAwNjJEOworRkQ4ODtGRDg4O0ZEODg7MDY0NCAwNjQ1IDA2MkQ7MDY0NCAwNjQ1IDA2MkQ7CitGRDg5O0ZEODk7RkQ4OTswNjQ1IDA2MkQgMDYyQzswNjQ1IDA2MkQgMDYyQzsKK0ZEOEE7RkQ4QTtGRDhBOzA2NDUgMDYyRCAwNjQ1OzA2NDUgMDYyRCAwNjQ1OworRkQ4QjtGRDhCO0ZEOEI7MDY0NSAwNjJEIDA2NEE7MDY0NSAwNjJEIDA2NEE7CitGRDhDO0ZEOEM7RkQ4QzswNjQ1IDA2MkMgMDYyRDswNjQ1IDA2MkMgMDYyRDsKK0ZEOEQ7RkQ4RDtGRDhEOzA2NDUgMDYyQyAwNjQ1OzA2NDUgMDYyQyAwNjQ1OworRkQ4RTtGRDhFO0ZEOEU7MDY0NSAwNjJFIDA2MkM7MDY0NSAwNjJFIDA2MkM7CitGRDhGO0ZEOEY7RkQ4RjswNjQ1IDA2MkUgMDY0NTswNjQ1IDA2MkUgMDY0NTsKK0ZEOTI7RkQ5MjtGRDkyOzA2NDUgMDYyQyAwNjJFOzA2NDUgMDYyQyAwNjJFOworRkQ5MztGRDkzO0ZEOTM7MDY0NyAwNjQ1IDA2MkM7MDY0NyAwNjQ1IDA2MkM7CitGRDk0O0ZEOTQ7RkQ5NDswNjQ3IDA2NDUgMDY0NTswNjQ3IDA2NDUgMDY0NTsKK0ZEOTU7RkQ5NTtGRDk1OzA2NDYgMDYyRCAwNjQ1OzA2NDYgMDYyRCAwNjQ1OworRkQ5NjtGRDk2O0ZEOTY7MDY0NiAwNjJEIDA2NDk7MDY0NiAwNjJEIDA2NDk7CitGRDk3O0ZEOTc7RkQ5NzswNjQ2IDA2MkMgMDY0NTswNjQ2IDA2MkMgMDY0NTsKK0ZEOTg7RkQ5ODtGRDk4OzA2NDYgMDYyQyAwNjQ1OzA2NDYgMDYyQyAwNjQ1OworRkQ5OTtGRDk5O0ZEOTk7MDY0NiAwNjJDIDA2NDk7MDY0NiAwNjJDIDA2NDk7CitGRDlBO0ZEOUE7RkQ5QTswNjQ2IDA2NDUgMDY0QTswNjQ2IDA2NDUgMDY0QTsKK0ZEOUI7RkQ5QjtGRDlCOzA2NDYgMDY0NSAwNjQ5OzA2NDYgMDY0NSAwNjQ5OworRkQ5QztGRDlDO0ZEOUM7MDY0QSAwNjQ1IDA2NDU7MDY0QSAwNjQ1IDA2NDU7CitGRDlEO0ZEOUQ7RkQ5RDswNjRBIDA2NDUgMDY0NTswNjRBIDA2NDUgMDY0NTsKK0ZEOUU7RkQ5RTtGRDlFOzA2MjggMDYyRSAwNjRBOzA2MjggMDYyRSAwNjRBOworRkQ5RjtGRDlGO0ZEOUY7MDYyQSAwNjJDIDA2NEE7MDYyQSAwNjJDIDA2NEE7CitGREEwO0ZEQTA7RkRBMDswNjJBIDA2MkMgMDY0OTswNjJBIDA2MkMgMDY0OTsKK0ZEQTE7RkRBMTtGREExOzA2MkEgMDYyRSAwNjRBOzA2MkEgMDYyRSAwNjRBOworRkRBMjtGREEyO0ZEQTI7MDYyQSAwNjJFIDA2NDk7MDYyQSAwNjJFIDA2NDk7CitGREEzO0ZEQTM7RkRBMzswNjJBIDA2NDUgMDY0QTswNjJBIDA2NDUgMDY0QTsKK0ZEQTQ7RkRBNDtGREE0OzA2MkEgMDY0NSAwNjQ5OzA2MkEgMDY0NSAwNjQ5OworRkRBNTtGREE1O0ZEQTU7MDYyQyAwNjQ1IDA2NEE7MDYyQyAwNjQ1IDA2NEE7CitGREE2O0ZEQTY7RkRBNjswNjJDIDA2MkQgMDY0OTswNjJDIDA2MkQgMDY0OTsKK0ZEQTc7RkRBNztGREE3OzA2MkMgMDY0NSAwNjQ5OzA2MkMgMDY0NSAwNjQ5OworRkRBODtGREE4O0ZEQTg7MDYzMyAwNjJFIDA2NDk7MDYzMyAwNjJFIDA2NDk7CitGREE5O0ZEQTk7RkRBOTswNjM1IDA2MkQgMDY0QTswNjM1IDA2MkQgMDY0QTsKK0ZEQUE7RkRBQTtGREFBOzA2MzQgMDYyRCAwNjRBOzA2MzQgMDYyRCAwNjRBOworRkRBQjtGREFCO0ZEQUI7MDYzNiAwNjJEIDA2NEE7MDYzNiAwNjJEIDA2NEE7CitGREFDO0ZEQUM7RkRBQzswNjQ0IDA2MkMgMDY0QTswNjQ0IDA2MkMgMDY0QTsKK0ZEQUQ7RkRBRDtGREFEOzA2NDQgMDY0NSAwNjRBOzA2NDQgMDY0NSAwNjRBOworRkRBRTtGREFFO0ZEQUU7MDY0QSAwNjJEIDA2NEE7MDY0QSAwNjJEIDA2NEE7CitGREFGO0ZEQUY7RkRBRjswNjRBIDA2MkMgMDY0QTswNjRBIDA2MkMgMDY0QTsKK0ZEQjA7RkRCMDtGREIwOzA2NEEgMDY0NSAwNjRBOzA2NEEgMDY0NSAwNjRBOworRkRCMTtGREIxO0ZEQjE7MDY0NSAwNjQ1IDA2NEE7MDY0NSAwNjQ1IDA2NEE7CitGREIyO0ZEQjI7RkRCMjswNjQyIDA2NDUgMDY0QTswNjQyIDA2NDUgMDY0QTsKK0ZEQjM7RkRCMztGREIzOzA2NDYgMDYyRCAwNjRBOzA2NDYgMDYyRCAwNjRBOworRkRCNDtGREI0O0ZEQjQ7MDY0MiAwNjQ1IDA2MkQ7MDY0MiAwNjQ1IDA2MkQ7CitGREI1O0ZEQjU7RkRCNTswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEQjY7RkRCNjtGREI2OzA2MzkgMDY0NSAwNjRBOzA2MzkgMDY0NSAwNjRBOworRkRCNztGREI3O0ZEQjc7MDY0MyAwNjQ1IDA2NEE7MDY0MyAwNjQ1IDA2NEE7CitGREI4O0ZEQjg7RkRCODswNjQ2IDA2MkMgMDYyRDswNjQ2IDA2MkMgMDYyRDsKK0ZEQjk7RkRCOTtGREI5OzA2NDUgMDYyRSAwNjRBOzA2NDUgMDYyRSAwNjRBOworRkRCQTtGREJBO0ZEQkE7MDY0NCAwNjJDIDA2NDU7MDY0NCAwNjJDIDA2NDU7CitGREJCO0ZEQkI7RkRCQjswNjQzIDA2NDUgMDY0NTswNjQzIDA2NDUgMDY0NTsKK0ZEQkM7RkRCQztGREJDOzA2NDQgMDYyQyAwNjQ1OzA2NDQgMDYyQyAwNjQ1OworRkRCRDtGREJEO0ZEQkQ7MDY0NiAwNjJDIDA2MkQ7MDY0NiAwNjJDIDA2MkQ7CitGREJFO0ZEQkU7RkRCRTswNjJDIDA2MkQgMDY0QTswNjJDIDA2MkQgMDY0QTsKK0ZEQkY7RkRCRjtGREJGOzA2MkQgMDYyQyAwNjRBOzA2MkQgMDYyQyAwNjRBOworRkRDMDtGREMwO0ZEQzA7MDY0NSAwNjJDIDA2NEE7MDY0NSAwNjJDIDA2NEE7CitGREMxO0ZEQzE7RkRDMTswNjQxIDA2NDUgMDY0QTswNjQxIDA2NDUgMDY0QTsKK0ZEQzI7RkRDMjtGREMyOzA2MjggMDYyRCAwNjRBOzA2MjggMDYyRCAwNjRBOworRkRDMztGREMzO0ZEQzM7MDY0MyAwNjQ1IDA2NDU7MDY0MyAwNjQ1IDA2NDU7CitGREM0O0ZEQzQ7RkRDNDswNjM5IDA2MkMgMDY0NTswNjM5IDA2MkMgMDY0NTsKK0ZEQzU7RkRDNTtGREM1OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkRDNjtGREM2O0ZEQzY7MDYzMyAwNjJFIDA2NEE7MDYzMyAwNjJFIDA2NEE7CitGREM3O0ZEQzc7RkRDNzswNjQ2IDA2MkMgMDY0QTswNjQ2IDA2MkMgMDY0QTsKK0ZERjA7RkRGMDtGREYwOzA2MzUgMDY0NCAwNkQyOzA2MzUgMDY0NCAwNkQyOworRkRGMTtGREYxO0ZERjE7MDY0MiAwNjQ0IDA2RDI7MDY0MiAwNjQ0IDA2RDI7CitGREYyO0ZERjI7RkRGMjswNjI3IDA2NDQgMDY0NCAwNjQ3OzA2MjcgMDY0NCAwNjQ0IDA2NDc7CitGREYzO0ZERjM7RkRGMzswNjI3IDA2NDMgMDYyOCAwNjMxOzA2MjcgMDY0MyAwNjI4IDA2MzE7CitGREY0O0ZERjQ7RkRGNDswNjQ1IDA2MkQgMDY0NSAwNjJGOzA2NDUgMDYyRCAwNjQ1IDA2MkY7CitGREY1O0ZERjU7RkRGNTswNjM1IDA2NDQgMDYzOSAwNjQ1OzA2MzUgMDY0NCAwNjM5IDA2NDU7CitGREY2O0ZERjY7RkRGNjswNjMxIDA2MzMgMDY0OCAwNjQ0OzA2MzEgMDYzMyAwNjQ4IDA2NDQ7CitGREY3O0ZERjc7RkRGNzswNjM5IDA2NDQgMDY0QSAwNjQ3OzA2MzkgMDY0NCAwNjRBIDA2NDc7CitGREY4O0ZERjg7RkRGODswNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2NDggMDYzMyAwNjQ0IDA2NDU7CitGREY5O0ZERjk7RkRGOTswNjM1IDA2NDQgMDY0OTswNjM1IDA2NDQgMDY0OTsKK0ZERkE7RkRGQTtGREZBOzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OworRkRGQjtGREZCO0ZERkI7MDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3OzA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0NzsKK0ZERkM7RkRGQztGREZDOzA2MzEgMDZDQyAwNjI3IDA2NDQ7MDYzMSAwNkNDIDA2MjcgMDY0NDsKK0ZFMTA7RkUxMDtGRTEwOzAwMkM7MDAyQzsKK0ZFMTE7RkUxMTtGRTExOzMwMDE7MzAwMTsKK0ZFMTI7RkUxMjtGRTEyOzMwMDI7MzAwMjsKK0ZFMTM7RkUxMztGRTEzOzAwM0E7MDAzQTsKK0ZFMTQ7RkUxNDtGRTE0OzAwM0I7MDAzQjsKK0ZFMTU7RkUxNTtGRTE1OzAwMjE7MDAyMTsKK0ZFMTY7RkUxNjtGRTE2OzAwM0Y7MDAzRjsKK0ZFMTc7RkUxNztGRTE3OzMwMTY7MzAxNjsKK0ZFMTg7RkUxODtGRTE4OzMwMTc7MzAxNzsKK0ZFMTk7RkUxOTtGRTE5OzAwMkUgMDAyRSAwMDJFOzAwMkUgMDAyRSAwMDJFOworRkUzMDtGRTMwO0ZFMzA7MDAyRSAwMDJFOzAwMkUgMDAyRTsKK0ZFMzE7RkUzMTtGRTMxOzIwMTQ7MjAxNDsKK0ZFMzI7RkUzMjtGRTMyOzIwMTM7MjAxMzsKK0ZFMzM7RkUzMztGRTMzOzAwNUY7MDA1RjsKK0ZFMzQ7RkUzNDtGRTM0OzAwNUY7MDA1RjsKK0ZFMzU7RkUzNTtGRTM1OzAwMjg7MDAyODsKK0ZFMzY7RkUzNjtGRTM2OzAwMjk7MDAyOTsKK0ZFMzc7RkUzNztGRTM3OzAwN0I7MDA3QjsKK0ZFMzg7RkUzODtGRTM4OzAwN0Q7MDA3RDsKK0ZFMzk7RkUzOTtGRTM5OzMwMTQ7MzAxNDsKK0ZFM0E7RkUzQTtGRTNBOzMwMTU7MzAxNTsKK0ZFM0I7RkUzQjtGRTNCOzMwMTA7MzAxMDsKK0ZFM0M7RkUzQztGRTNDOzMwMTE7MzAxMTsKK0ZFM0Q7RkUzRDtGRTNEOzMwMEE7MzAwQTsKK0ZFM0U7RkUzRTtGRTNFOzMwMEI7MzAwQjsKK0ZFM0Y7RkUzRjtGRTNGOzMwMDg7MzAwODsKK0ZFNDA7RkU0MDtGRTQwOzMwMDk7MzAwOTsKK0ZFNDE7RkU0MTtGRTQxOzMwMEM7MzAwQzsKK0ZFNDI7RkU0MjtGRTQyOzMwMEQ7MzAwRDsKK0ZFNDM7RkU0MztGRTQzOzMwMEU7MzAwRTsKK0ZFNDQ7RkU0NDtGRTQ0OzMwMEY7MzAwRjsKK0ZFNDc7RkU0NztGRTQ3OzAwNUI7MDA1QjsKK0ZFNDg7RkU0ODtGRTQ4OzAwNUQ7MDA1RDsKK0ZFNDk7RkU0OTtGRTQ5OzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTRBO0ZFNEE7RkU0QTswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0QjtGRTRCO0ZFNEI7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEM7RkU0QztGRTRDOzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTREO0ZFNEQ7RkU0RDswMDVGOzAwNUY7CitGRTRFO0ZFNEU7RkU0RTswMDVGOzAwNUY7CitGRTRGO0ZFNEY7RkU0RjswMDVGOzAwNUY7CitGRTUwO0ZFNTA7RkU1MDswMDJDOzAwMkM7CitGRTUxO0ZFNTE7RkU1MTszMDAxOzMwMDE7CitGRTUyO0ZFNTI7RkU1MjswMDJFOzAwMkU7CitGRTU0O0ZFNTQ7RkU1NDswMDNCOzAwM0I7CitGRTU1O0ZFNTU7RkU1NTswMDNBOzAwM0E7CitGRTU2O0ZFNTY7RkU1NjswMDNGOzAwM0Y7CitGRTU3O0ZFNTc7RkU1NzswMDIxOzAwMjE7CitGRTU4O0ZFNTg7RkU1ODsyMDE0OzIwMTQ7CitGRTU5O0ZFNTk7RkU1OTswMDI4OzAwMjg7CitGRTVBO0ZFNUE7RkU1QTswMDI5OzAwMjk7CitGRTVCO0ZFNUI7RkU1QjswMDdCOzAwN0I7CitGRTVDO0ZFNUM7RkU1QzswMDdEOzAwN0Q7CitGRTVEO0ZFNUQ7RkU1RDszMDE0OzMwMTQ7CitGRTVFO0ZFNUU7RkU1RTszMDE1OzMwMTU7CitGRTVGO0ZFNUY7RkU1RjswMDIzOzAwMjM7CitGRTYwO0ZFNjA7RkU2MDswMDI2OzAwMjY7CitGRTYxO0ZFNjE7RkU2MTswMDJBOzAwMkE7CitGRTYyO0ZFNjI7RkU2MjswMDJCOzAwMkI7CitGRTYzO0ZFNjM7RkU2MzswMDJEOzAwMkQ7CitGRTY0O0ZFNjQ7RkU2NDswMDNDOzAwM0M7CitGRTY1O0ZFNjU7RkU2NTswMDNFOzAwM0U7CitGRTY2O0ZFNjY7RkU2NjswMDNEOzAwM0Q7CitGRTY4O0ZFNjg7RkU2ODswMDVDOzAwNUM7CitGRTY5O0ZFNjk7RkU2OTswMDI0OzAwMjQ7CitGRTZBO0ZFNkE7RkU2QTswMDI1OzAwMjU7CitGRTZCO0ZFNkI7RkU2QjswMDQwOzAwNDA7CitGRTcwO0ZFNzA7RkU3MDswMDIwIDA2NEI7MDAyMCAwNjRCOworRkU3MTtGRTcxO0ZFNzE7MDY0MCAwNjRCOzA2NDAgMDY0QjsKK0ZFNzI7RkU3MjtGRTcyOzAwMjAgMDY0QzswMDIwIDA2NEM7CitGRTc0O0ZFNzQ7RkU3NDswMDIwIDA2NEQ7MDAyMCAwNjREOworRkU3NjtGRTc2O0ZFNzY7MDAyMCAwNjRFOzAwMjAgMDY0RTsKK0ZFNzc7RkU3NztGRTc3OzA2NDAgMDY0RTswNjQwIDA2NEU7CitGRTc4O0ZFNzg7RkU3ODswMDIwIDA2NEY7MDAyMCAwNjRGOworRkU3OTtGRTc5O0ZFNzk7MDY0MCAwNjRGOzA2NDAgMDY0RjsKK0ZFN0E7RkU3QTtGRTdBOzAwMjAgMDY1MDswMDIwIDA2NTA7CitGRTdCO0ZFN0I7RkU3QjswNjQwIDA2NTA7MDY0MCAwNjUwOworRkU3QztGRTdDO0ZFN0M7MDAyMCAwNjUxOzAwMjAgMDY1MTsKK0ZFN0Q7RkU3RDtGRTdEOzA2NDAgMDY1MTswNjQwIDA2NTE7CitGRTdFO0ZFN0U7RkU3RTswMDIwIDA2NTI7MDAyMCAwNjUyOworRkU3RjtGRTdGO0ZFN0Y7MDY0MCAwNjUyOzA2NDAgMDY1MjsKK0ZFODA7RkU4MDtGRTgwOzA2MjE7MDYyMTsKK0ZFODE7RkU4MTtGRTgxOzA2MjI7MDYyNyAwNjUzOworRkU4MjtGRTgyO0ZFODI7MDYyMjswNjI3IDA2NTM7CitGRTgzO0ZFODM7RkU4MzswNjIzOzA2MjcgMDY1NDsKK0ZFODQ7RkU4NDtGRTg0OzA2MjM7MDYyNyAwNjU0OworRkU4NTtGRTg1O0ZFODU7MDYyNDswNjQ4IDA2NTQ7CitGRTg2O0ZFODY7RkU4NjswNjI0OzA2NDggMDY1NDsKK0ZFODc7RkU4NztGRTg3OzA2MjU7MDYyNyAwNjU1OworRkU4ODtGRTg4O0ZFODg7MDYyNTswNjI3IDA2NTU7CitGRTg5O0ZFODk7RkU4OTswNjI2OzA2NEEgMDY1NDsKK0ZFOEE7RkU4QTtGRThBOzA2MjY7MDY0QSAwNjU0OworRkU4QjtGRThCO0ZFOEI7MDYyNjswNjRBIDA2NTQ7CitGRThDO0ZFOEM7RkU4QzswNjI2OzA2NEEgMDY1NDsKK0ZFOEQ7RkU4RDtGRThEOzA2Mjc7MDYyNzsKK0ZFOEU7RkU4RTtGRThFOzA2Mjc7MDYyNzsKK0ZFOEY7RkU4RjtGRThGOzA2Mjg7MDYyODsKK0ZFOTA7RkU5MDtGRTkwOzA2Mjg7MDYyODsKK0ZFOTE7RkU5MTtGRTkxOzA2Mjg7MDYyODsKK0ZFOTI7RkU5MjtGRTkyOzA2Mjg7MDYyODsKK0ZFOTM7RkU5MztGRTkzOzA2Mjk7MDYyOTsKK0ZFOTQ7RkU5NDtGRTk0OzA2Mjk7MDYyOTsKK0ZFOTU7RkU5NTtGRTk1OzA2MkE7MDYyQTsKK0ZFOTY7RkU5NjtGRTk2OzA2MkE7MDYyQTsKK0ZFOTc7RkU5NztGRTk3OzA2MkE7MDYyQTsKK0ZFOTg7RkU5ODtGRTk4OzA2MkE7MDYyQTsKK0ZFOTk7RkU5OTtGRTk5OzA2MkI7MDYyQjsKK0ZFOUE7RkU5QTtGRTlBOzA2MkI7MDYyQjsKK0ZFOUI7RkU5QjtGRTlCOzA2MkI7MDYyQjsKK0ZFOUM7RkU5QztGRTlDOzA2MkI7MDYyQjsKK0ZFOUQ7RkU5RDtGRTlEOzA2MkM7MDYyQzsKK0ZFOUU7RkU5RTtGRTlFOzA2MkM7MDYyQzsKK0ZFOUY7RkU5RjtGRTlGOzA2MkM7MDYyQzsKK0ZFQTA7RkVBMDtGRUEwOzA2MkM7MDYyQzsKK0ZFQTE7RkVBMTtGRUExOzA2MkQ7MDYyRDsKK0ZFQTI7RkVBMjtGRUEyOzA2MkQ7MDYyRDsKK0ZFQTM7RkVBMztGRUEzOzA2MkQ7MDYyRDsKK0ZFQTQ7RkVBNDtGRUE0OzA2MkQ7MDYyRDsKK0ZFQTU7RkVBNTtGRUE1OzA2MkU7MDYyRTsKK0ZFQTY7RkVBNjtGRUE2OzA2MkU7MDYyRTsKK0ZFQTc7RkVBNztGRUE3OzA2MkU7MDYyRTsKK0ZFQTg7RkVBODtGRUE4OzA2MkU7MDYyRTsKK0ZFQTk7RkVBOTtGRUE5OzA2MkY7MDYyRjsKK0ZFQUE7RkVBQTtGRUFBOzA2MkY7MDYyRjsKK0ZFQUI7RkVBQjtGRUFCOzA2MzA7MDYzMDsKK0ZFQUM7RkVBQztGRUFDOzA2MzA7MDYzMDsKK0ZFQUQ7RkVBRDtGRUFEOzA2MzE7MDYzMTsKK0ZFQUU7RkVBRTtGRUFFOzA2MzE7MDYzMTsKK0ZFQUY7RkVBRjtGRUFGOzA2MzI7MDYzMjsKK0ZFQjA7RkVCMDtGRUIwOzA2MzI7MDYzMjsKK0ZFQjE7RkVCMTtGRUIxOzA2MzM7MDYzMzsKK0ZFQjI7RkVCMjtGRUIyOzA2MzM7MDYzMzsKK0ZFQjM7RkVCMztGRUIzOzA2MzM7MDYzMzsKK0ZFQjQ7RkVCNDtGRUI0OzA2MzM7MDYzMzsKK0ZFQjU7RkVCNTtGRUI1OzA2MzQ7MDYzNDsKK0ZFQjY7RkVCNjtGRUI2OzA2MzQ7MDYzNDsKK0ZFQjc7RkVCNztGRUI3OzA2MzQ7MDYzNDsKK0ZFQjg7RkVCODtGRUI4OzA2MzQ7MDYzNDsKK0ZFQjk7RkVCOTtGRUI5OzA2MzU7MDYzNTsKK0ZFQkE7RkVCQTtGRUJBOzA2MzU7MDYzNTsKK0ZFQkI7RkVCQjtGRUJCOzA2MzU7MDYzNTsKK0ZFQkM7RkVCQztGRUJDOzA2MzU7MDYzNTsKK0ZFQkQ7RkVCRDtGRUJEOzA2MzY7MDYzNjsKK0ZFQkU7RkVCRTtGRUJFOzA2MzY7MDYzNjsKK0ZFQkY7RkVCRjtGRUJGOzA2MzY7MDYzNjsKK0ZFQzA7RkVDMDtGRUMwOzA2MzY7MDYzNjsKK0ZFQzE7RkVDMTtGRUMxOzA2Mzc7MDYzNzsKK0ZFQzI7RkVDMjtGRUMyOzA2Mzc7MDYzNzsKK0ZFQzM7RkVDMztGRUMzOzA2Mzc7MDYzNzsKK0ZFQzQ7RkVDNDtGRUM0OzA2Mzc7MDYzNzsKK0ZFQzU7RkVDNTtGRUM1OzA2Mzg7MDYzODsKK0ZFQzY7RkVDNjtGRUM2OzA2Mzg7MDYzODsKK0ZFQzc7RkVDNztGRUM3OzA2Mzg7MDYzODsKK0ZFQzg7RkVDODtGRUM4OzA2Mzg7MDYzODsKK0ZFQzk7RkVDOTtGRUM5OzA2Mzk7MDYzOTsKK0ZFQ0E7RkVDQTtGRUNBOzA2Mzk7MDYzOTsKK0ZFQ0I7RkVDQjtGRUNCOzA2Mzk7MDYzOTsKK0ZFQ0M7RkVDQztGRUNDOzA2Mzk7MDYzOTsKK0ZFQ0Q7RkVDRDtGRUNEOzA2M0E7MDYzQTsKK0ZFQ0U7RkVDRTtGRUNFOzA2M0E7MDYzQTsKK0ZFQ0Y7RkVDRjtGRUNGOzA2M0E7MDYzQTsKK0ZFRDA7RkVEMDtGRUQwOzA2M0E7MDYzQTsKK0ZFRDE7RkVEMTtGRUQxOzA2NDE7MDY0MTsKK0ZFRDI7RkVEMjtGRUQyOzA2NDE7MDY0MTsKK0ZFRDM7RkVEMztGRUQzOzA2NDE7MDY0MTsKK0ZFRDQ7RkVENDtGRUQ0OzA2NDE7MDY0MTsKK0ZFRDU7RkVENTtGRUQ1OzA2NDI7MDY0MjsKK0ZFRDY7RkVENjtGRUQ2OzA2NDI7MDY0MjsKK0ZFRDc7RkVENztGRUQ3OzA2NDI7MDY0MjsKK0ZFRDg7RkVEODtGRUQ4OzA2NDI7MDY0MjsKK0ZFRDk7RkVEOTtGRUQ5OzA2NDM7MDY0MzsKK0ZFREE7RkVEQTtGRURBOzA2NDM7MDY0MzsKK0ZFREI7RkVEQjtGRURCOzA2NDM7MDY0MzsKK0ZFREM7RkVEQztGRURDOzA2NDM7MDY0MzsKK0ZFREQ7RkVERDtGRUREOzA2NDQ7MDY0NDsKK0ZFREU7RkVERTtGRURFOzA2NDQ7MDY0NDsKK0ZFREY7RkVERjtGRURGOzA2NDQ7MDY0NDsKK0ZFRTA7RkVFMDtGRUUwOzA2NDQ7MDY0NDsKK0ZFRTE7RkVFMTtGRUUxOzA2NDU7MDY0NTsKK0ZFRTI7RkVFMjtGRUUyOzA2NDU7MDY0NTsKK0ZFRTM7RkVFMztGRUUzOzA2NDU7MDY0NTsKK0ZFRTQ7RkVFNDtGRUU0OzA2NDU7MDY0NTsKK0ZFRTU7RkVFNTtGRUU1OzA2NDY7MDY0NjsKK0ZFRTY7RkVFNjtGRUU2OzA2NDY7MDY0NjsKK0ZFRTc7RkVFNztGRUU3OzA2NDY7MDY0NjsKK0ZFRTg7RkVFODtGRUU4OzA2NDY7MDY0NjsKK0ZFRTk7RkVFOTtGRUU5OzA2NDc7MDY0NzsKK0ZFRUE7RkVFQTtGRUVBOzA2NDc7MDY0NzsKK0ZFRUI7RkVFQjtGRUVCOzA2NDc7MDY0NzsKK0ZFRUM7RkVFQztGRUVDOzA2NDc7MDY0NzsKK0ZFRUQ7RkVFRDtGRUVEOzA2NDg7MDY0ODsKK0ZFRUU7RkVFRTtGRUVFOzA2NDg7MDY0ODsKK0ZFRUY7RkVFRjtGRUVGOzA2NDk7MDY0OTsKK0ZFRjA7RkVGMDtGRUYwOzA2NDk7MDY0OTsKK0ZFRjE7RkVGMTtGRUYxOzA2NEE7MDY0QTsKK0ZFRjI7RkVGMjtGRUYyOzA2NEE7MDY0QTsKK0ZFRjM7RkVGMztGRUYzOzA2NEE7MDY0QTsKK0ZFRjQ7RkVGNDtGRUY0OzA2NEE7MDY0QTsKK0ZFRjU7RkVGNTtGRUY1OzA2NDQgMDYyMjswNjQ0IDA2MjcgMDY1MzsKK0ZFRjY7RkVGNjtGRUY2OzA2NDQgMDYyMjswNjQ0IDA2MjcgMDY1MzsKK0ZFRjc7RkVGNztGRUY3OzA2NDQgMDYyMzswNjQ0IDA2MjcgMDY1NDsKK0ZFRjg7RkVGODtGRUY4OzA2NDQgMDYyMzswNjQ0IDA2MjcgMDY1NDsKK0ZFRjk7RkVGOTtGRUY5OzA2NDQgMDYyNTswNjQ0IDA2MjcgMDY1NTsKK0ZFRkE7RkVGQTtGRUZBOzA2NDQgMDYyNTswNjQ0IDA2MjcgMDY1NTsKK0ZFRkI7RkVGQjtGRUZCOzA2NDQgMDYyNzswNjQ0IDA2Mjc7CitGRUZDO0ZFRkM7RkVGQzswNjQ0IDA2Mjc7MDY0NCAwNjI3OworRkYwMTtGRjAxO0ZGMDE7MDAyMTswMDIxOworRkYwMjtGRjAyO0ZGMDI7MDAyMjswMDIyOworRkYwMztGRjAzO0ZGMDM7MDAyMzswMDIzOworRkYwNDtGRjA0O0ZGMDQ7MDAyNDswMDI0OworRkYwNTtGRjA1O0ZGMDU7MDAyNTswMDI1OworRkYwNjtGRjA2O0ZGMDY7MDAyNjswMDI2OworRkYwNztGRjA3O0ZGMDc7MDAyNzswMDI3OworRkYwODtGRjA4O0ZGMDg7MDAyODswMDI4OworRkYwOTtGRjA5O0ZGMDk7MDAyOTswMDI5OworRkYwQTtGRjBBO0ZGMEE7MDAyQTswMDJBOworRkYwQjtGRjBCO0ZGMEI7MDAyQjswMDJCOworRkYwQztGRjBDO0ZGMEM7MDAyQzswMDJDOworRkYwRDtGRjBEO0ZGMEQ7MDAyRDswMDJEOworRkYwRTtGRjBFO0ZGMEU7MDAyRTswMDJFOworRkYwRjtGRjBGO0ZGMEY7MDAyRjswMDJGOworRkYxMDtGRjEwO0ZGMTA7MDAzMDswMDMwOworRkYxMTtGRjExO0ZGMTE7MDAzMTswMDMxOworRkYxMjtGRjEyO0ZGMTI7MDAzMjswMDMyOworRkYxMztGRjEzO0ZGMTM7MDAzMzswMDMzOworRkYxNDtGRjE0O0ZGMTQ7MDAzNDswMDM0OworRkYxNTtGRjE1O0ZGMTU7MDAzNTswMDM1OworRkYxNjtGRjE2O0ZGMTY7MDAzNjswMDM2OworRkYxNztGRjE3O0ZGMTc7MDAzNzswMDM3OworRkYxODtGRjE4O0ZGMTg7MDAzODswMDM4OworRkYxOTtGRjE5O0ZGMTk7MDAzOTswMDM5OworRkYxQTtGRjFBO0ZGMUE7MDAzQTswMDNBOworRkYxQjtGRjFCO0ZGMUI7MDAzQjswMDNCOworRkYxQztGRjFDO0ZGMUM7MDAzQzswMDNDOworRkYxRDtGRjFEO0ZGMUQ7MDAzRDswMDNEOworRkYxRTtGRjFFO0ZGMUU7MDAzRTswMDNFOworRkYxRjtGRjFGO0ZGMUY7MDAzRjswMDNGOworRkYyMDtGRjIwO0ZGMjA7MDA0MDswMDQwOworRkYyMTtGRjIxO0ZGMjE7MDA0MTswMDQxOworRkYyMjtGRjIyO0ZGMjI7MDA0MjswMDQyOworRkYyMztGRjIzO0ZGMjM7MDA0MzswMDQzOworRkYyNDtGRjI0O0ZGMjQ7MDA0NDswMDQ0OworRkYyNTtGRjI1O0ZGMjU7MDA0NTswMDQ1OworRkYyNjtGRjI2O0ZGMjY7MDA0NjswMDQ2OworRkYyNztGRjI3O0ZGMjc7MDA0NzswMDQ3OworRkYyODtGRjI4O0ZGMjg7MDA0ODswMDQ4OworRkYyOTtGRjI5O0ZGMjk7MDA0OTswMDQ5OworRkYyQTtGRjJBO0ZGMkE7MDA0QTswMDRBOworRkYyQjtGRjJCO0ZGMkI7MDA0QjswMDRCOworRkYyQztGRjJDO0ZGMkM7MDA0QzswMDRDOworRkYyRDtGRjJEO0ZGMkQ7MDA0RDswMDREOworRkYyRTtGRjJFO0ZGMkU7MDA0RTswMDRFOworRkYyRjtGRjJGO0ZGMkY7MDA0RjswMDRGOworRkYzMDtGRjMwO0ZGMzA7MDA1MDswMDUwOworRkYzMTtGRjMxO0ZGMzE7MDA1MTswMDUxOworRkYzMjtGRjMyO0ZGMzI7MDA1MjswMDUyOworRkYzMztGRjMzO0ZGMzM7MDA1MzswMDUzOworRkYzNDtGRjM0O0ZGMzQ7MDA1NDswMDU0OworRkYzNTtGRjM1O0ZGMzU7MDA1NTswMDU1OworRkYzNjtGRjM2O0ZGMzY7MDA1NjswMDU2OworRkYzNztGRjM3O0ZGMzc7MDA1NzswMDU3OworRkYzODtGRjM4O0ZGMzg7MDA1ODswMDU4OworRkYzOTtGRjM5O0ZGMzk7MDA1OTswMDU5OworRkYzQTtGRjNBO0ZGM0E7MDA1QTswMDVBOworRkYzQjtGRjNCO0ZGM0I7MDA1QjswMDVCOworRkYzQztGRjNDO0ZGM0M7MDA1QzswMDVDOworRkYzRDtGRjNEO0ZGM0Q7MDA1RDswMDVEOworRkYzRTtGRjNFO0ZGM0U7MDA1RTswMDVFOworRkYzRjtGRjNGO0ZGM0Y7MDA1RjswMDVGOworRkY0MDtGRjQwO0ZGNDA7MDA2MDswMDYwOworRkY0MTtGRjQxO0ZGNDE7MDA2MTswMDYxOworRkY0MjtGRjQyO0ZGNDI7MDA2MjswMDYyOworRkY0MztGRjQzO0ZGNDM7MDA2MzswMDYzOworRkY0NDtGRjQ0O0ZGNDQ7MDA2NDswMDY0OworRkY0NTtGRjQ1O0ZGNDU7MDA2NTswMDY1OworRkY0NjtGRjQ2O0ZGNDY7MDA2NjswMDY2OworRkY0NztGRjQ3O0ZGNDc7MDA2NzswMDY3OworRkY0ODtGRjQ4O0ZGNDg7MDA2ODswMDY4OworRkY0OTtGRjQ5O0ZGNDk7MDA2OTswMDY5OworRkY0QTtGRjRBO0ZGNEE7MDA2QTswMDZBOworRkY0QjtGRjRCO0ZGNEI7MDA2QjswMDZCOworRkY0QztGRjRDO0ZGNEM7MDA2QzswMDZDOworRkY0RDtGRjREO0ZGNEQ7MDA2RDswMDZEOworRkY0RTtGRjRFO0ZGNEU7MDA2RTswMDZFOworRkY0RjtGRjRGO0ZGNEY7MDA2RjswMDZGOworRkY1MDtGRjUwO0ZGNTA7MDA3MDswMDcwOworRkY1MTtGRjUxO0ZGNTE7MDA3MTswMDcxOworRkY1MjtGRjUyO0ZGNTI7MDA3MjswMDcyOworRkY1MztGRjUzO0ZGNTM7MDA3MzswMDczOworRkY1NDtGRjU0O0ZGNTQ7MDA3NDswMDc0OworRkY1NTtGRjU1O0ZGNTU7MDA3NTswMDc1OworRkY1NjtGRjU2O0ZGNTY7MDA3NjswMDc2OworRkY1NztGRjU3O0ZGNTc7MDA3NzswMDc3OworRkY1ODtGRjU4O0ZGNTg7MDA3ODswMDc4OworRkY1OTtGRjU5O0ZGNTk7MDA3OTswMDc5OworRkY1QTtGRjVBO0ZGNUE7MDA3QTswMDdBOworRkY1QjtGRjVCO0ZGNUI7MDA3QjswMDdCOworRkY1QztGRjVDO0ZGNUM7MDA3QzswMDdDOworRkY1RDtGRjVEO0ZGNUQ7MDA3RDswMDdEOworRkY1RTtGRjVFO0ZGNUU7MDA3RTswMDdFOworRkY1RjtGRjVGO0ZGNUY7Mjk4NTsyOTg1OworRkY2MDtGRjYwO0ZGNjA7Mjk4NjsyOTg2OworRkY2MTtGRjYxO0ZGNjE7MzAwMjszMDAyOworRkY2MjtGRjYyO0ZGNjI7MzAwQzszMDBDOworRkY2MztGRjYzO0ZGNjM7MzAwRDszMDBEOworRkY2NDtGRjY0O0ZGNjQ7MzAwMTszMDAxOworRkY2NTtGRjY1O0ZGNjU7MzBGQjszMEZCOworRkY2NjtGRjY2O0ZGNjY7MzBGMjszMEYyOworRkY2NztGRjY3O0ZGNjc7MzBBMTszMEExOworRkY2ODtGRjY4O0ZGNjg7MzBBMzszMEEzOworRkY2OTtGRjY5O0ZGNjk7MzBBNTszMEE1OworRkY2QTtGRjZBO0ZGNkE7MzBBNzszMEE3OworRkY2QjtGRjZCO0ZGNkI7MzBBOTszMEE5OworRkY2QztGRjZDO0ZGNkM7MzBFMzszMEUzOworRkY2RDtGRjZEO0ZGNkQ7MzBFNTszMEU1OworRkY2RTtGRjZFO0ZGNkU7MzBFNzszMEU3OworRkY2RjtGRjZGO0ZGNkY7MzBDMzszMEMzOworRkY3MDtGRjcwO0ZGNzA7MzBGQzszMEZDOworRkY3MTtGRjcxO0ZGNzE7MzBBMjszMEEyOworRkY3MjtGRjcyO0ZGNzI7MzBBNDszMEE0OworRkY3MztGRjczO0ZGNzM7MzBBNjszMEE2OworRkY3NDtGRjc0O0ZGNzQ7MzBBODszMEE4OworRkY3NTtGRjc1O0ZGNzU7MzBBQTszMEFBOworRkY3NjtGRjc2O0ZGNzY7MzBBQjszMEFCOworRkY3NztGRjc3O0ZGNzc7MzBBRDszMEFEOworRkY3ODtGRjc4O0ZGNzg7MzBBRjszMEFGOworRkY3OTtGRjc5O0ZGNzk7MzBCMTszMEIxOworRkY3QTtGRjdBO0ZGN0E7MzBCMzszMEIzOworRkY3QjtGRjdCO0ZGN0I7MzBCNTszMEI1OworRkY3QztGRjdDO0ZGN0M7MzBCNzszMEI3OworRkY3RDtGRjdEO0ZGN0Q7MzBCOTszMEI5OworRkY3RTtGRjdFO0ZGN0U7MzBCQjszMEJCOworRkY3RjtGRjdGO0ZGN0Y7MzBCRDszMEJEOworRkY4MDtGRjgwO0ZGODA7MzBCRjszMEJGOworRkY4MTtGRjgxO0ZGODE7MzBDMTszMEMxOworRkY4MjtGRjgyO0ZGODI7MzBDNDszMEM0OworRkY4MztGRjgzO0ZGODM7MzBDNjszMEM2OworRkY4NDtGRjg0O0ZGODQ7MzBDODszMEM4OworRkY4NTtGRjg1O0ZGODU7MzBDQTszMENBOworRkY4NjtGRjg2O0ZGODY7MzBDQjszMENCOworRkY4NztGRjg3O0ZGODc7MzBDQzszMENDOworRkY4ODtGRjg4O0ZGODg7MzBDRDszMENEOworRkY4OTtGRjg5O0ZGODk7MzBDRTszMENFOworRkY4QTtGRjhBO0ZGOEE7MzBDRjszMENGOworRkY4QjtGRjhCO0ZGOEI7MzBEMjszMEQyOworRkY4QztGRjhDO0ZGOEM7MzBENTszMEQ1OworRkY4RDtGRjhEO0ZGOEQ7MzBEODszMEQ4OworRkY4RTtGRjhFO0ZGOEU7MzBEQjszMERCOworRkY4RjtGRjhGO0ZGOEY7MzBERTszMERFOworRkY5MDtGRjkwO0ZGOTA7MzBERjszMERGOworRkY5MTtGRjkxO0ZGOTE7MzBFMDszMEUwOworRkY5MjtGRjkyO0ZGOTI7MzBFMTszMEUxOworRkY5MztGRjkzO0ZGOTM7MzBFMjszMEUyOworRkY5NDtGRjk0O0ZGOTQ7MzBFNDszMEU0OworRkY5NTtGRjk1O0ZGOTU7MzBFNjszMEU2OworRkY5NjtGRjk2O0ZGOTY7MzBFODszMEU4OworRkY5NztGRjk3O0ZGOTc7MzBFOTszMEU5OworRkY5ODtGRjk4O0ZGOTg7MzBFQTszMEVBOworRkY5OTtGRjk5O0ZGOTk7MzBFQjszMEVCOworRkY5QTtGRjlBO0ZGOUE7MzBFQzszMEVDOworRkY5QjtGRjlCO0ZGOUI7MzBFRDszMEVEOworRkY5QztGRjlDO0ZGOUM7MzBFRjszMEVGOworRkY5RDtGRjlEO0ZGOUQ7MzBGMzszMEYzOworRkY5RTtGRjlFO0ZGOUU7MzA5OTszMDk5OworRkY5RjtGRjlGO0ZGOUY7MzA5QTszMDlBOworRkZBMDtGRkEwO0ZGQTA7MTE2MDsxMTYwOworRkZBMTtGRkExO0ZGQTE7MTEwMDsxMTAwOworRkZBMjtGRkEyO0ZGQTI7MTEwMTsxMTAxOworRkZBMztGRkEzO0ZGQTM7MTFBQTsxMUFBOworRkZBNDtGRkE0O0ZGQTQ7MTEwMjsxMTAyOworRkZBNTtGRkE1O0ZGQTU7MTFBQzsxMUFDOworRkZBNjtGRkE2O0ZGQTY7MTFBRDsxMUFEOworRkZBNztGRkE3O0ZGQTc7MTEwMzsxMTAzOworRkZBODtGRkE4O0ZGQTg7MTEwNDsxMTA0OworRkZBOTtGRkE5O0ZGQTk7MTEwNTsxMTA1OworRkZBQTtGRkFBO0ZGQUE7MTFCMDsxMUIwOworRkZBQjtGRkFCO0ZGQUI7MTFCMTsxMUIxOworRkZBQztGRkFDO0ZGQUM7MTFCMjsxMUIyOworRkZBRDtGRkFEO0ZGQUQ7MTFCMzsxMUIzOworRkZBRTtGRkFFO0ZGQUU7MTFCNDsxMUI0OworRkZBRjtGRkFGO0ZGQUY7MTFCNTsxMUI1OworRkZCMDtGRkIwO0ZGQjA7MTExQTsxMTFBOworRkZCMTtGRkIxO0ZGQjE7MTEwNjsxMTA2OworRkZCMjtGRkIyO0ZGQjI7MTEwNzsxMTA3OworRkZCMztGRkIzO0ZGQjM7MTEwODsxMTA4OworRkZCNDtGRkI0O0ZGQjQ7MTEyMTsxMTIxOworRkZCNTtGRkI1O0ZGQjU7MTEwOTsxMTA5OworRkZCNjtGRkI2O0ZGQjY7MTEwQTsxMTBBOworRkZCNztGRkI3O0ZGQjc7MTEwQjsxMTBCOworRkZCODtGRkI4O0ZGQjg7MTEwQzsxMTBDOworRkZCOTtGRkI5O0ZGQjk7MTEwRDsxMTBEOworRkZCQTtGRkJBO0ZGQkE7MTEwRTsxMTBFOworRkZCQjtGRkJCO0ZGQkI7MTEwRjsxMTBGOworRkZCQztGRkJDO0ZGQkM7MTExMDsxMTEwOworRkZCRDtGRkJEO0ZGQkQ7MTExMTsxMTExOworRkZCRTtGRkJFO0ZGQkU7MTExMjsxMTEyOworRkZDMjtGRkMyO0ZGQzI7MTE2MTsxMTYxOworRkZDMztGRkMzO0ZGQzM7MTE2MjsxMTYyOworRkZDNDtGRkM0O0ZGQzQ7MTE2MzsxMTYzOworRkZDNTtGRkM1O0ZGQzU7MTE2NDsxMTY0OworRkZDNjtGRkM2O0ZGQzY7MTE2NTsxMTY1OworRkZDNztGRkM3O0ZGQzc7MTE2NjsxMTY2OworRkZDQTtGRkNBO0ZGQ0E7MTE2NzsxMTY3OworRkZDQjtGRkNCO0ZGQ0I7MTE2ODsxMTY4OworRkZDQztGRkNDO0ZGQ0M7MTE2OTsxMTY5OworRkZDRDtGRkNEO0ZGQ0Q7MTE2QTsxMTZBOworRkZDRTtGRkNFO0ZGQ0U7MTE2QjsxMTZCOworRkZDRjtGRkNGO0ZGQ0Y7MTE2QzsxMTZDOworRkZEMjtGRkQyO0ZGRDI7MTE2RDsxMTZEOworRkZEMztGRkQzO0ZGRDM7MTE2RTsxMTZFOworRkZENDtGRkQ0O0ZGRDQ7MTE2RjsxMTZGOworRkZENTtGRkQ1O0ZGRDU7MTE3MDsxMTcwOworRkZENjtGRkQ2O0ZGRDY7MTE3MTsxMTcxOworRkZENztGRkQ3O0ZGRDc7MTE3MjsxMTcyOworRkZEQTtGRkRBO0ZGREE7MTE3MzsxMTczOworRkZEQjtGRkRCO0ZGREI7MTE3NDsxMTc0OworRkZEQztGRkRDO0ZGREM7MTE3NTsxMTc1OworRkZFMDtGRkUwO0ZGRTA7MDBBMjswMEEyOworRkZFMTtGRkUxO0ZGRTE7MDBBMzswMEEzOworRkZFMjtGRkUyO0ZGRTI7MDBBQzswMEFDOworRkZFMztGRkUzO0ZGRTM7MDAyMCAwMzA0OzAwMjAgMDMwNDsKK0ZGRTQ7RkZFNDtGRkU0OzAwQTY7MDBBNjsKK0ZGRTU7RkZFNTtGRkU1OzAwQTU7MDBBNTsKK0ZGRTY7RkZFNjtGRkU2OzIwQTk7MjBBOTsKK0ZGRTg7RkZFODtGRkU4OzI1MDI7MjUwMjsKK0ZGRTk7RkZFOTtGRkU5OzIxOTA7MjE5MDsKK0ZGRUE7RkZFQTtGRkVBOzIxOTE7MjE5MTsKK0ZGRUI7RkZFQjtGRkVCOzIxOTI7MjE5MjsKK0ZGRUM7RkZFQztGRkVDOzIxOTM7MjE5MzsKK0ZGRUQ7RkZFRDtGRkVEOzI1QTA7MjVBMDsKK0ZGRUU7RkZFRTtGRkVFOzI1Q0I7MjVDQjsKKzFEMTVFOzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OworMUQxNUY7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7CisxRDE2MDsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsKKzFEMTYxOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOworMUQxNjI7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7CisxRDE2MzsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsKKzFEMTY0OzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOworMUQxQkI7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7CisxRDFCQzsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsKKzFEMUJEOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOworMUQxQkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7CisxRDFCRjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsKKzFEMUMwOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOworMUQ0MDA7MUQ0MDA7MUQ0MDA7MDA0MTswMDQxOworMUQ0MDE7MUQ0MDE7MUQ0MDE7MDA0MjswMDQyOworMUQ0MDI7MUQ0MDI7MUQ0MDI7MDA0MzswMDQzOworMUQ0MDM7MUQ0MDM7MUQ0MDM7MDA0NDswMDQ0OworMUQ0MDQ7MUQ0MDQ7MUQ0MDQ7MDA0NTswMDQ1OworMUQ0MDU7MUQ0MDU7MUQ0MDU7MDA0NjswMDQ2OworMUQ0MDY7MUQ0MDY7MUQ0MDY7MDA0NzswMDQ3OworMUQ0MDc7MUQ0MDc7MUQ0MDc7MDA0ODswMDQ4OworMUQ0MDg7MUQ0MDg7MUQ0MDg7MDA0OTswMDQ5OworMUQ0MDk7MUQ0MDk7MUQ0MDk7MDA0QTswMDRBOworMUQ0MEE7MUQ0MEE7MUQ0MEE7MDA0QjswMDRCOworMUQ0MEI7MUQ0MEI7MUQ0MEI7MDA0QzswMDRDOworMUQ0MEM7MUQ0MEM7MUQ0MEM7MDA0RDswMDREOworMUQ0MEQ7MUQ0MEQ7MUQ0MEQ7MDA0RTswMDRFOworMUQ0MEU7MUQ0MEU7MUQ0MEU7MDA0RjswMDRGOworMUQ0MEY7MUQ0MEY7MUQ0MEY7MDA1MDswMDUwOworMUQ0MTA7MUQ0MTA7MUQ0MTA7MDA1MTswMDUxOworMUQ0MTE7MUQ0MTE7MUQ0MTE7MDA1MjswMDUyOworMUQ0MTI7MUQ0MTI7MUQ0MTI7MDA1MzswMDUzOworMUQ0MTM7MUQ0MTM7MUQ0MTM7MDA1NDswMDU0OworMUQ0MTQ7MUQ0MTQ7MUQ0MTQ7MDA1NTswMDU1OworMUQ0MTU7MUQ0MTU7MUQ0MTU7MDA1NjswMDU2OworMUQ0MTY7MUQ0MTY7MUQ0MTY7MDA1NzswMDU3OworMUQ0MTc7MUQ0MTc7MUQ0MTc7MDA1ODswMDU4OworMUQ0MTg7MUQ0MTg7MUQ0MTg7MDA1OTswMDU5OworMUQ0MTk7MUQ0MTk7MUQ0MTk7MDA1QTswMDVBOworMUQ0MUE7MUQ0MUE7MUQ0MUE7MDA2MTswMDYxOworMUQ0MUI7MUQ0MUI7MUQ0MUI7MDA2MjswMDYyOworMUQ0MUM7MUQ0MUM7MUQ0MUM7MDA2MzswMDYzOworMUQ0MUQ7MUQ0MUQ7MUQ0MUQ7MDA2NDswMDY0OworMUQ0MUU7MUQ0MUU7MUQ0MUU7MDA2NTswMDY1OworMUQ0MUY7MUQ0MUY7MUQ0MUY7MDA2NjswMDY2OworMUQ0MjA7MUQ0MjA7MUQ0MjA7MDA2NzswMDY3OworMUQ0MjE7MUQ0MjE7MUQ0MjE7MDA2ODswMDY4OworMUQ0MjI7MUQ0MjI7MUQ0MjI7MDA2OTswMDY5OworMUQ0MjM7MUQ0MjM7MUQ0MjM7MDA2QTswMDZBOworMUQ0MjQ7MUQ0MjQ7MUQ0MjQ7MDA2QjswMDZCOworMUQ0MjU7MUQ0MjU7MUQ0MjU7MDA2QzswMDZDOworMUQ0MjY7MUQ0MjY7MUQ0MjY7MDA2RDswMDZEOworMUQ0Mjc7MUQ0Mjc7MUQ0Mjc7MDA2RTswMDZFOworMUQ0Mjg7MUQ0Mjg7MUQ0Mjg7MDA2RjswMDZGOworMUQ0Mjk7MUQ0Mjk7MUQ0Mjk7MDA3MDswMDcwOworMUQ0MkE7MUQ0MkE7MUQ0MkE7MDA3MTswMDcxOworMUQ0MkI7MUQ0MkI7MUQ0MkI7MDA3MjswMDcyOworMUQ0MkM7MUQ0MkM7MUQ0MkM7MDA3MzswMDczOworMUQ0MkQ7MUQ0MkQ7MUQ0MkQ7MDA3NDswMDc0OworMUQ0MkU7MUQ0MkU7MUQ0MkU7MDA3NTswMDc1OworMUQ0MkY7MUQ0MkY7MUQ0MkY7MDA3NjswMDc2OworMUQ0MzA7MUQ0MzA7MUQ0MzA7MDA3NzswMDc3OworMUQ0MzE7MUQ0MzE7MUQ0MzE7MDA3ODswMDc4OworMUQ0MzI7MUQ0MzI7MUQ0MzI7MDA3OTswMDc5OworMUQ0MzM7MUQ0MzM7MUQ0MzM7MDA3QTswMDdBOworMUQ0MzQ7MUQ0MzQ7MUQ0MzQ7MDA0MTswMDQxOworMUQ0MzU7MUQ0MzU7MUQ0MzU7MDA0MjswMDQyOworMUQ0MzY7MUQ0MzY7MUQ0MzY7MDA0MzswMDQzOworMUQ0Mzc7MUQ0Mzc7MUQ0Mzc7MDA0NDswMDQ0OworMUQ0Mzg7MUQ0Mzg7MUQ0Mzg7MDA0NTswMDQ1OworMUQ0Mzk7MUQ0Mzk7MUQ0Mzk7MDA0NjswMDQ2OworMUQ0M0E7MUQ0M0E7MUQ0M0E7MDA0NzswMDQ3OworMUQ0M0I7MUQ0M0I7MUQ0M0I7MDA0ODswMDQ4OworMUQ0M0M7MUQ0M0M7MUQ0M0M7MDA0OTswMDQ5OworMUQ0M0Q7MUQ0M0Q7MUQ0M0Q7MDA0QTswMDRBOworMUQ0M0U7MUQ0M0U7MUQ0M0U7MDA0QjswMDRCOworMUQ0M0Y7MUQ0M0Y7MUQ0M0Y7MDA0QzswMDRDOworMUQ0NDA7MUQ0NDA7MUQ0NDA7MDA0RDswMDREOworMUQ0NDE7MUQ0NDE7MUQ0NDE7MDA0RTswMDRFOworMUQ0NDI7MUQ0NDI7MUQ0NDI7MDA0RjswMDRGOworMUQ0NDM7MUQ0NDM7MUQ0NDM7MDA1MDswMDUwOworMUQ0NDQ7MUQ0NDQ7MUQ0NDQ7MDA1MTswMDUxOworMUQ0NDU7MUQ0NDU7MUQ0NDU7MDA1MjswMDUyOworMUQ0NDY7MUQ0NDY7MUQ0NDY7MDA1MzswMDUzOworMUQ0NDc7MUQ0NDc7MUQ0NDc7MDA1NDswMDU0OworMUQ0NDg7MUQ0NDg7MUQ0NDg7MDA1NTswMDU1OworMUQ0NDk7MUQ0NDk7MUQ0NDk7MDA1NjswMDU2OworMUQ0NEE7MUQ0NEE7MUQ0NEE7MDA1NzswMDU3OworMUQ0NEI7MUQ0NEI7MUQ0NEI7MDA1ODswMDU4OworMUQ0NEM7MUQ0NEM7MUQ0NEM7MDA1OTswMDU5OworMUQ0NEQ7MUQ0NEQ7MUQ0NEQ7MDA1QTswMDVBOworMUQ0NEU7MUQ0NEU7MUQ0NEU7MDA2MTswMDYxOworMUQ0NEY7MUQ0NEY7MUQ0NEY7MDA2MjswMDYyOworMUQ0NTA7MUQ0NTA7MUQ0NTA7MDA2MzswMDYzOworMUQ0NTE7MUQ0NTE7MUQ0NTE7MDA2NDswMDY0OworMUQ0NTI7MUQ0NTI7MUQ0NTI7MDA2NTswMDY1OworMUQ0NTM7MUQ0NTM7MUQ0NTM7MDA2NjswMDY2OworMUQ0NTQ7MUQ0NTQ7MUQ0NTQ7MDA2NzswMDY3OworMUQ0NTY7MUQ0NTY7MUQ0NTY7MDA2OTswMDY5OworMUQ0NTc7MUQ0NTc7MUQ0NTc7MDA2QTswMDZBOworMUQ0NTg7MUQ0NTg7MUQ0NTg7MDA2QjswMDZCOworMUQ0NTk7MUQ0NTk7MUQ0NTk7MDA2QzswMDZDOworMUQ0NUE7MUQ0NUE7MUQ0NUE7MDA2RDswMDZEOworMUQ0NUI7MUQ0NUI7MUQ0NUI7MDA2RTswMDZFOworMUQ0NUM7MUQ0NUM7MUQ0NUM7MDA2RjswMDZGOworMUQ0NUQ7MUQ0NUQ7MUQ0NUQ7MDA3MDswMDcwOworMUQ0NUU7MUQ0NUU7MUQ0NUU7MDA3MTswMDcxOworMUQ0NUY7MUQ0NUY7MUQ0NUY7MDA3MjswMDcyOworMUQ0NjA7MUQ0NjA7MUQ0NjA7MDA3MzswMDczOworMUQ0NjE7MUQ0NjE7MUQ0NjE7MDA3NDswMDc0OworMUQ0NjI7MUQ0NjI7MUQ0NjI7MDA3NTswMDc1OworMUQ0NjM7MUQ0NjM7MUQ0NjM7MDA3NjswMDc2OworMUQ0NjQ7MUQ0NjQ7MUQ0NjQ7MDA3NzswMDc3OworMUQ0NjU7MUQ0NjU7MUQ0NjU7MDA3ODswMDc4OworMUQ0NjY7MUQ0NjY7MUQ0NjY7MDA3OTswMDc5OworMUQ0Njc7MUQ0Njc7MUQ0Njc7MDA3QTswMDdBOworMUQ0Njg7MUQ0Njg7MUQ0Njg7MDA0MTswMDQxOworMUQ0Njk7MUQ0Njk7MUQ0Njk7MDA0MjswMDQyOworMUQ0NkE7MUQ0NkE7MUQ0NkE7MDA0MzswMDQzOworMUQ0NkI7MUQ0NkI7MUQ0NkI7MDA0NDswMDQ0OworMUQ0NkM7MUQ0NkM7MUQ0NkM7MDA0NTswMDQ1OworMUQ0NkQ7MUQ0NkQ7MUQ0NkQ7MDA0NjswMDQ2OworMUQ0NkU7MUQ0NkU7MUQ0NkU7MDA0NzswMDQ3OworMUQ0NkY7MUQ0NkY7MUQ0NkY7MDA0ODswMDQ4OworMUQ0NzA7MUQ0NzA7MUQ0NzA7MDA0OTswMDQ5OworMUQ0NzE7MUQ0NzE7MUQ0NzE7MDA0QTswMDRBOworMUQ0NzI7MUQ0NzI7MUQ0NzI7MDA0QjswMDRCOworMUQ0NzM7MUQ0NzM7MUQ0NzM7MDA0QzswMDRDOworMUQ0NzQ7MUQ0NzQ7MUQ0NzQ7MDA0RDswMDREOworMUQ0NzU7MUQ0NzU7MUQ0NzU7MDA0RTswMDRFOworMUQ0NzY7MUQ0NzY7MUQ0NzY7MDA0RjswMDRGOworMUQ0Nzc7MUQ0Nzc7MUQ0Nzc7MDA1MDswMDUwOworMUQ0Nzg7MUQ0Nzg7MUQ0Nzg7MDA1MTswMDUxOworMUQ0Nzk7MUQ0Nzk7MUQ0Nzk7MDA1MjswMDUyOworMUQ0N0E7MUQ0N0E7MUQ0N0E7MDA1MzswMDUzOworMUQ0N0I7MUQ0N0I7MUQ0N0I7MDA1NDswMDU0OworMUQ0N0M7MUQ0N0M7MUQ0N0M7MDA1NTswMDU1OworMUQ0N0Q7MUQ0N0Q7MUQ0N0Q7MDA1NjswMDU2OworMUQ0N0U7MUQ0N0U7MUQ0N0U7MDA1NzswMDU3OworMUQ0N0Y7MUQ0N0Y7MUQ0N0Y7MDA1ODswMDU4OworMUQ0ODA7MUQ0ODA7MUQ0ODA7MDA1OTswMDU5OworMUQ0ODE7MUQ0ODE7MUQ0ODE7MDA1QTswMDVBOworMUQ0ODI7MUQ0ODI7MUQ0ODI7MDA2MTswMDYxOworMUQ0ODM7MUQ0ODM7MUQ0ODM7MDA2MjswMDYyOworMUQ0ODQ7MUQ0ODQ7MUQ0ODQ7MDA2MzswMDYzOworMUQ0ODU7MUQ0ODU7MUQ0ODU7MDA2NDswMDY0OworMUQ0ODY7MUQ0ODY7MUQ0ODY7MDA2NTswMDY1OworMUQ0ODc7MUQ0ODc7MUQ0ODc7MDA2NjswMDY2OworMUQ0ODg7MUQ0ODg7MUQ0ODg7MDA2NzswMDY3OworMUQ0ODk7MUQ0ODk7MUQ0ODk7MDA2ODswMDY4OworMUQ0OEE7MUQ0OEE7MUQ0OEE7MDA2OTswMDY5OworMUQ0OEI7MUQ0OEI7MUQ0OEI7MDA2QTswMDZBOworMUQ0OEM7MUQ0OEM7MUQ0OEM7MDA2QjswMDZCOworMUQ0OEQ7MUQ0OEQ7MUQ0OEQ7MDA2QzswMDZDOworMUQ0OEU7MUQ0OEU7MUQ0OEU7MDA2RDswMDZEOworMUQ0OEY7MUQ0OEY7MUQ0OEY7MDA2RTswMDZFOworMUQ0OTA7MUQ0OTA7MUQ0OTA7MDA2RjswMDZGOworMUQ0OTE7MUQ0OTE7MUQ0OTE7MDA3MDswMDcwOworMUQ0OTI7MUQ0OTI7MUQ0OTI7MDA3MTswMDcxOworMUQ0OTM7MUQ0OTM7MUQ0OTM7MDA3MjswMDcyOworMUQ0OTQ7MUQ0OTQ7MUQ0OTQ7MDA3MzswMDczOworMUQ0OTU7MUQ0OTU7MUQ0OTU7MDA3NDswMDc0OworMUQ0OTY7MUQ0OTY7MUQ0OTY7MDA3NTswMDc1OworMUQ0OTc7MUQ0OTc7MUQ0OTc7MDA3NjswMDc2OworMUQ0OTg7MUQ0OTg7MUQ0OTg7MDA3NzswMDc3OworMUQ0OTk7MUQ0OTk7MUQ0OTk7MDA3ODswMDc4OworMUQ0OUE7MUQ0OUE7MUQ0OUE7MDA3OTswMDc5OworMUQ0OUI7MUQ0OUI7MUQ0OUI7MDA3QTswMDdBOworMUQ0OUM7MUQ0OUM7MUQ0OUM7MDA0MTswMDQxOworMUQ0OUU7MUQ0OUU7MUQ0OUU7MDA0MzswMDQzOworMUQ0OUY7MUQ0OUY7MUQ0OUY7MDA0NDswMDQ0OworMUQ0QTI7MUQ0QTI7MUQ0QTI7MDA0NzswMDQ3OworMUQ0QTU7MUQ0QTU7MUQ0QTU7MDA0QTswMDRBOworMUQ0QTY7MUQ0QTY7MUQ0QTY7MDA0QjswMDRCOworMUQ0QTk7MUQ0QTk7MUQ0QTk7MDA0RTswMDRFOworMUQ0QUE7MUQ0QUE7MUQ0QUE7MDA0RjswMDRGOworMUQ0QUI7MUQ0QUI7MUQ0QUI7MDA1MDswMDUwOworMUQ0QUM7MUQ0QUM7MUQ0QUM7MDA1MTswMDUxOworMUQ0QUU7MUQ0QUU7MUQ0QUU7MDA1MzswMDUzOworMUQ0QUY7MUQ0QUY7MUQ0QUY7MDA1NDswMDU0OworMUQ0QjA7MUQ0QjA7MUQ0QjA7MDA1NTswMDU1OworMUQ0QjE7MUQ0QjE7MUQ0QjE7MDA1NjswMDU2OworMUQ0QjI7MUQ0QjI7MUQ0QjI7MDA1NzswMDU3OworMUQ0QjM7MUQ0QjM7MUQ0QjM7MDA1ODswMDU4OworMUQ0QjQ7MUQ0QjQ7MUQ0QjQ7MDA1OTswMDU5OworMUQ0QjU7MUQ0QjU7MUQ0QjU7MDA1QTswMDVBOworMUQ0QjY7MUQ0QjY7MUQ0QjY7MDA2MTswMDYxOworMUQ0Qjc7MUQ0Qjc7MUQ0Qjc7MDA2MjswMDYyOworMUQ0Qjg7MUQ0Qjg7MUQ0Qjg7MDA2MzswMDYzOworMUQ0Qjk7MUQ0Qjk7MUQ0Qjk7MDA2NDswMDY0OworMUQ0QkI7MUQ0QkI7MUQ0QkI7MDA2NjswMDY2OworMUQ0QkQ7MUQ0QkQ7MUQ0QkQ7MDA2ODswMDY4OworMUQ0QkU7MUQ0QkU7MUQ0QkU7MDA2OTswMDY5OworMUQ0QkY7MUQ0QkY7MUQ0QkY7MDA2QTswMDZBOworMUQ0QzA7MUQ0QzA7MUQ0QzA7MDA2QjswMDZCOworMUQ0QzE7MUQ0QzE7MUQ0QzE7MDA2QzswMDZDOworMUQ0QzI7MUQ0QzI7MUQ0QzI7MDA2RDswMDZEOworMUQ0QzM7MUQ0QzM7MUQ0QzM7MDA2RTswMDZFOworMUQ0QzU7MUQ0QzU7MUQ0QzU7MDA3MDswMDcwOworMUQ0QzY7MUQ0QzY7MUQ0QzY7MDA3MTswMDcxOworMUQ0Qzc7MUQ0Qzc7MUQ0Qzc7MDA3MjswMDcyOworMUQ0Qzg7MUQ0Qzg7MUQ0Qzg7MDA3MzswMDczOworMUQ0Qzk7MUQ0Qzk7MUQ0Qzk7MDA3NDswMDc0OworMUQ0Q0E7MUQ0Q0E7MUQ0Q0E7MDA3NTswMDc1OworMUQ0Q0I7MUQ0Q0I7MUQ0Q0I7MDA3NjswMDc2OworMUQ0Q0M7MUQ0Q0M7MUQ0Q0M7MDA3NzswMDc3OworMUQ0Q0Q7MUQ0Q0Q7MUQ0Q0Q7MDA3ODswMDc4OworMUQ0Q0U7MUQ0Q0U7MUQ0Q0U7MDA3OTswMDc5OworMUQ0Q0Y7MUQ0Q0Y7MUQ0Q0Y7MDA3QTswMDdBOworMUQ0RDA7MUQ0RDA7MUQ0RDA7MDA0MTswMDQxOworMUQ0RDE7MUQ0RDE7MUQ0RDE7MDA0MjswMDQyOworMUQ0RDI7MUQ0RDI7MUQ0RDI7MDA0MzswMDQzOworMUQ0RDM7MUQ0RDM7MUQ0RDM7MDA0NDswMDQ0OworMUQ0RDQ7MUQ0RDQ7MUQ0RDQ7MDA0NTswMDQ1OworMUQ0RDU7MUQ0RDU7MUQ0RDU7MDA0NjswMDQ2OworMUQ0RDY7MUQ0RDY7MUQ0RDY7MDA0NzswMDQ3OworMUQ0RDc7MUQ0RDc7MUQ0RDc7MDA0ODswMDQ4OworMUQ0RDg7MUQ0RDg7MUQ0RDg7MDA0OTswMDQ5OworMUQ0RDk7MUQ0RDk7MUQ0RDk7MDA0QTswMDRBOworMUQ0REE7MUQ0REE7MUQ0REE7MDA0QjswMDRCOworMUQ0REI7MUQ0REI7MUQ0REI7MDA0QzswMDRDOworMUQ0REM7MUQ0REM7MUQ0REM7MDA0RDswMDREOworMUQ0REQ7MUQ0REQ7MUQ0REQ7MDA0RTswMDRFOworMUQ0REU7MUQ0REU7MUQ0REU7MDA0RjswMDRGOworMUQ0REY7MUQ0REY7MUQ0REY7MDA1MDswMDUwOworMUQ0RTA7MUQ0RTA7MUQ0RTA7MDA1MTswMDUxOworMUQ0RTE7MUQ0RTE7MUQ0RTE7MDA1MjswMDUyOworMUQ0RTI7MUQ0RTI7MUQ0RTI7MDA1MzswMDUzOworMUQ0RTM7MUQ0RTM7MUQ0RTM7MDA1NDswMDU0OworMUQ0RTQ7MUQ0RTQ7MUQ0RTQ7MDA1NTswMDU1OworMUQ0RTU7MUQ0RTU7MUQ0RTU7MDA1NjswMDU2OworMUQ0RTY7MUQ0RTY7MUQ0RTY7MDA1NzswMDU3OworMUQ0RTc7MUQ0RTc7MUQ0RTc7MDA1ODswMDU4OworMUQ0RTg7MUQ0RTg7MUQ0RTg7MDA1OTswMDU5OworMUQ0RTk7MUQ0RTk7MUQ0RTk7MDA1QTswMDVBOworMUQ0RUE7MUQ0RUE7MUQ0RUE7MDA2MTswMDYxOworMUQ0RUI7MUQ0RUI7MUQ0RUI7MDA2MjswMDYyOworMUQ0RUM7MUQ0RUM7MUQ0RUM7MDA2MzswMDYzOworMUQ0RUQ7MUQ0RUQ7MUQ0RUQ7MDA2NDswMDY0OworMUQ0RUU7MUQ0RUU7MUQ0RUU7MDA2NTswMDY1OworMUQ0RUY7MUQ0RUY7MUQ0RUY7MDA2NjswMDY2OworMUQ0RjA7MUQ0RjA7MUQ0RjA7MDA2NzswMDY3OworMUQ0RjE7MUQ0RjE7MUQ0RjE7MDA2ODswMDY4OworMUQ0RjI7MUQ0RjI7MUQ0RjI7MDA2OTswMDY5OworMUQ0RjM7MUQ0RjM7MUQ0RjM7MDA2QTswMDZBOworMUQ0RjQ7MUQ0RjQ7MUQ0RjQ7MDA2QjswMDZCOworMUQ0RjU7MUQ0RjU7MUQ0RjU7MDA2QzswMDZDOworMUQ0RjY7MUQ0RjY7MUQ0RjY7MDA2RDswMDZEOworMUQ0Rjc7MUQ0Rjc7MUQ0Rjc7MDA2RTswMDZFOworMUQ0Rjg7MUQ0Rjg7MUQ0Rjg7MDA2RjswMDZGOworMUQ0Rjk7MUQ0Rjk7MUQ0Rjk7MDA3MDswMDcwOworMUQ0RkE7MUQ0RkE7MUQ0RkE7MDA3MTswMDcxOworMUQ0RkI7MUQ0RkI7MUQ0RkI7MDA3MjswMDcyOworMUQ0RkM7MUQ0RkM7MUQ0RkM7MDA3MzswMDczOworMUQ0RkQ7MUQ0RkQ7MUQ0RkQ7MDA3NDswMDc0OworMUQ0RkU7MUQ0RkU7MUQ0RkU7MDA3NTswMDc1OworMUQ0RkY7MUQ0RkY7MUQ0RkY7MDA3NjswMDc2OworMUQ1MDA7MUQ1MDA7MUQ1MDA7MDA3NzswMDc3OworMUQ1MDE7MUQ1MDE7MUQ1MDE7MDA3ODswMDc4OworMUQ1MDI7MUQ1MDI7MUQ1MDI7MDA3OTswMDc5OworMUQ1MDM7MUQ1MDM7MUQ1MDM7MDA3QTswMDdBOworMUQ1MDQ7MUQ1MDQ7MUQ1MDQ7MDA0MTswMDQxOworMUQ1MDU7MUQ1MDU7MUQ1MDU7MDA0MjswMDQyOworMUQ1MDc7MUQ1MDc7MUQ1MDc7MDA0NDswMDQ0OworMUQ1MDg7MUQ1MDg7MUQ1MDg7MDA0NTswMDQ1OworMUQ1MDk7MUQ1MDk7MUQ1MDk7MDA0NjswMDQ2OworMUQ1MEE7MUQ1MEE7MUQ1MEE7MDA0NzswMDQ3OworMUQ1MEQ7MUQ1MEQ7MUQ1MEQ7MDA0QTswMDRBOworMUQ1MEU7MUQ1MEU7MUQ1MEU7MDA0QjswMDRCOworMUQ1MEY7MUQ1MEY7MUQ1MEY7MDA0QzswMDRDOworMUQ1MTA7MUQ1MTA7MUQ1MTA7MDA0RDswMDREOworMUQ1MTE7MUQ1MTE7MUQ1MTE7MDA0RTswMDRFOworMUQ1MTI7MUQ1MTI7MUQ1MTI7MDA0RjswMDRGOworMUQ1MTM7MUQ1MTM7MUQ1MTM7MDA1MDswMDUwOworMUQ1MTQ7MUQ1MTQ7MUQ1MTQ7MDA1MTswMDUxOworMUQ1MTY7MUQ1MTY7MUQ1MTY7MDA1MzswMDUzOworMUQ1MTc7MUQ1MTc7MUQ1MTc7MDA1NDswMDU0OworMUQ1MTg7MUQ1MTg7MUQ1MTg7MDA1NTswMDU1OworMUQ1MTk7MUQ1MTk7MUQ1MTk7MDA1NjswMDU2OworMUQ1MUE7MUQ1MUE7MUQ1MUE7MDA1NzswMDU3OworMUQ1MUI7MUQ1MUI7MUQ1MUI7MDA1ODswMDU4OworMUQ1MUM7MUQ1MUM7MUQ1MUM7MDA1OTswMDU5OworMUQ1MUU7MUQ1MUU7MUQ1MUU7MDA2MTswMDYxOworMUQ1MUY7MUQ1MUY7MUQ1MUY7MDA2MjswMDYyOworMUQ1MjA7MUQ1MjA7MUQ1MjA7MDA2MzswMDYzOworMUQ1MjE7MUQ1MjE7MUQ1MjE7MDA2NDswMDY0OworMUQ1MjI7MUQ1MjI7MUQ1MjI7MDA2NTswMDY1OworMUQ1MjM7MUQ1MjM7MUQ1MjM7MDA2NjswMDY2OworMUQ1MjQ7MUQ1MjQ7MUQ1MjQ7MDA2NzswMDY3OworMUQ1MjU7MUQ1MjU7MUQ1MjU7MDA2ODswMDY4OworMUQ1MjY7MUQ1MjY7MUQ1MjY7MDA2OTswMDY5OworMUQ1Mjc7MUQ1Mjc7MUQ1Mjc7MDA2QTswMDZBOworMUQ1Mjg7MUQ1Mjg7MUQ1Mjg7MDA2QjswMDZCOworMUQ1Mjk7MUQ1Mjk7MUQ1Mjk7MDA2QzswMDZDOworMUQ1MkE7MUQ1MkE7MUQ1MkE7MDA2RDswMDZEOworMUQ1MkI7MUQ1MkI7MUQ1MkI7MDA2RTswMDZFOworMUQ1MkM7MUQ1MkM7MUQ1MkM7MDA2RjswMDZGOworMUQ1MkQ7MUQ1MkQ7MUQ1MkQ7MDA3MDswMDcwOworMUQ1MkU7MUQ1MkU7MUQ1MkU7MDA3MTswMDcxOworMUQ1MkY7MUQ1MkY7MUQ1MkY7MDA3MjswMDcyOworMUQ1MzA7MUQ1MzA7MUQ1MzA7MDA3MzswMDczOworMUQ1MzE7MUQ1MzE7MUQ1MzE7MDA3NDswMDc0OworMUQ1MzI7MUQ1MzI7MUQ1MzI7MDA3NTswMDc1OworMUQ1MzM7MUQ1MzM7MUQ1MzM7MDA3NjswMDc2OworMUQ1MzQ7MUQ1MzQ7MUQ1MzQ7MDA3NzswMDc3OworMUQ1MzU7MUQ1MzU7MUQ1MzU7MDA3ODswMDc4OworMUQ1MzY7MUQ1MzY7MUQ1MzY7MDA3OTswMDc5OworMUQ1Mzc7MUQ1Mzc7MUQ1Mzc7MDA3QTswMDdBOworMUQ1Mzg7MUQ1Mzg7MUQ1Mzg7MDA0MTswMDQxOworMUQ1Mzk7MUQ1Mzk7MUQ1Mzk7MDA0MjswMDQyOworMUQ1M0I7MUQ1M0I7MUQ1M0I7MDA0NDswMDQ0OworMUQ1M0M7MUQ1M0M7MUQ1M0M7MDA0NTswMDQ1OworMUQ1M0Q7MUQ1M0Q7MUQ1M0Q7MDA0NjswMDQ2OworMUQ1M0U7MUQ1M0U7MUQ1M0U7MDA0NzswMDQ3OworMUQ1NDA7MUQ1NDA7MUQ1NDA7MDA0OTswMDQ5OworMUQ1NDE7MUQ1NDE7MUQ1NDE7MDA0QTswMDRBOworMUQ1NDI7MUQ1NDI7MUQ1NDI7MDA0QjswMDRCOworMUQ1NDM7MUQ1NDM7MUQ1NDM7MDA0QzswMDRDOworMUQ1NDQ7MUQ1NDQ7MUQ1NDQ7MDA0RDswMDREOworMUQ1NDY7MUQ1NDY7MUQ1NDY7MDA0RjswMDRGOworMUQ1NEE7MUQ1NEE7MUQ1NEE7MDA1MzswMDUzOworMUQ1NEI7MUQ1NEI7MUQ1NEI7MDA1NDswMDU0OworMUQ1NEM7MUQ1NEM7MUQ1NEM7MDA1NTswMDU1OworMUQ1NEQ7MUQ1NEQ7MUQ1NEQ7MDA1NjswMDU2OworMUQ1NEU7MUQ1NEU7MUQ1NEU7MDA1NzswMDU3OworMUQ1NEY7MUQ1NEY7MUQ1NEY7MDA1ODswMDU4OworMUQ1NTA7MUQ1NTA7MUQ1NTA7MDA1OTswMDU5OworMUQ1NTI7MUQ1NTI7MUQ1NTI7MDA2MTswMDYxOworMUQ1NTM7MUQ1NTM7MUQ1NTM7MDA2MjswMDYyOworMUQ1NTQ7MUQ1NTQ7MUQ1NTQ7MDA2MzswMDYzOworMUQ1NTU7MUQ1NTU7MUQ1NTU7MDA2NDswMDY0OworMUQ1NTY7MUQ1NTY7MUQ1NTY7MDA2NTswMDY1OworMUQ1NTc7MUQ1NTc7MUQ1NTc7MDA2NjswMDY2OworMUQ1NTg7MUQ1NTg7MUQ1NTg7MDA2NzswMDY3OworMUQ1NTk7MUQ1NTk7MUQ1NTk7MDA2ODswMDY4OworMUQ1NUE7MUQ1NUE7MUQ1NUE7MDA2OTswMDY5OworMUQ1NUI7MUQ1NUI7MUQ1NUI7MDA2QTswMDZBOworMUQ1NUM7MUQ1NUM7MUQ1NUM7MDA2QjswMDZCOworMUQ1NUQ7MUQ1NUQ7MUQ1NUQ7MDA2QzswMDZDOworMUQ1NUU7MUQ1NUU7MUQ1NUU7MDA2RDswMDZEOworMUQ1NUY7MUQ1NUY7MUQ1NUY7MDA2RTswMDZFOworMUQ1NjA7MUQ1NjA7MUQ1NjA7MDA2RjswMDZGOworMUQ1NjE7MUQ1NjE7MUQ1NjE7MDA3MDswMDcwOworMUQ1NjI7MUQ1NjI7MUQ1NjI7MDA3MTswMDcxOworMUQ1NjM7MUQ1NjM7MUQ1NjM7MDA3MjswMDcyOworMUQ1NjQ7MUQ1NjQ7MUQ1NjQ7MDA3MzswMDczOworMUQ1NjU7MUQ1NjU7MUQ1NjU7MDA3NDswMDc0OworMUQ1NjY7MUQ1NjY7MUQ1NjY7MDA3NTswMDc1OworMUQ1Njc7MUQ1Njc7MUQ1Njc7MDA3NjswMDc2OworMUQ1Njg7MUQ1Njg7MUQ1Njg7MDA3NzswMDc3OworMUQ1Njk7MUQ1Njk7MUQ1Njk7MDA3ODswMDc4OworMUQ1NkE7MUQ1NkE7MUQ1NkE7MDA3OTswMDc5OworMUQ1NkI7MUQ1NkI7MUQ1NkI7MDA3QTswMDdBOworMUQ1NkM7MUQ1NkM7MUQ1NkM7MDA0MTswMDQxOworMUQ1NkQ7MUQ1NkQ7MUQ1NkQ7MDA0MjswMDQyOworMUQ1NkU7MUQ1NkU7MUQ1NkU7MDA0MzswMDQzOworMUQ1NkY7MUQ1NkY7MUQ1NkY7MDA0NDswMDQ0OworMUQ1NzA7MUQ1NzA7MUQ1NzA7MDA0NTswMDQ1OworMUQ1NzE7MUQ1NzE7MUQ1NzE7MDA0NjswMDQ2OworMUQ1NzI7MUQ1NzI7MUQ1NzI7MDA0NzswMDQ3OworMUQ1NzM7MUQ1NzM7MUQ1NzM7MDA0ODswMDQ4OworMUQ1NzQ7MUQ1NzQ7MUQ1NzQ7MDA0OTswMDQ5OworMUQ1NzU7MUQ1NzU7MUQ1NzU7MDA0QTswMDRBOworMUQ1NzY7MUQ1NzY7MUQ1NzY7MDA0QjswMDRCOworMUQ1Nzc7MUQ1Nzc7MUQ1Nzc7MDA0QzswMDRDOworMUQ1Nzg7MUQ1Nzg7MUQ1Nzg7MDA0RDswMDREOworMUQ1Nzk7MUQ1Nzk7MUQ1Nzk7MDA0RTswMDRFOworMUQ1N0E7MUQ1N0E7MUQ1N0E7MDA0RjswMDRGOworMUQ1N0I7MUQ1N0I7MUQ1N0I7MDA1MDswMDUwOworMUQ1N0M7MUQ1N0M7MUQ1N0M7MDA1MTswMDUxOworMUQ1N0Q7MUQ1N0Q7MUQ1N0Q7MDA1MjswMDUyOworMUQ1N0U7MUQ1N0U7MUQ1N0U7MDA1MzswMDUzOworMUQ1N0Y7MUQ1N0Y7MUQ1N0Y7MDA1NDswMDU0OworMUQ1ODA7MUQ1ODA7MUQ1ODA7MDA1NTswMDU1OworMUQ1ODE7MUQ1ODE7MUQ1ODE7MDA1NjswMDU2OworMUQ1ODI7MUQ1ODI7MUQ1ODI7MDA1NzswMDU3OworMUQ1ODM7MUQ1ODM7MUQ1ODM7MDA1ODswMDU4OworMUQ1ODQ7MUQ1ODQ7MUQ1ODQ7MDA1OTswMDU5OworMUQ1ODU7MUQ1ODU7MUQ1ODU7MDA1QTswMDVBOworMUQ1ODY7MUQ1ODY7MUQ1ODY7MDA2MTswMDYxOworMUQ1ODc7MUQ1ODc7MUQ1ODc7MDA2MjswMDYyOworMUQ1ODg7MUQ1ODg7MUQ1ODg7MDA2MzswMDYzOworMUQ1ODk7MUQ1ODk7MUQ1ODk7MDA2NDswMDY0OworMUQ1OEE7MUQ1OEE7MUQ1OEE7MDA2NTswMDY1OworMUQ1OEI7MUQ1OEI7MUQ1OEI7MDA2NjswMDY2OworMUQ1OEM7MUQ1OEM7MUQ1OEM7MDA2NzswMDY3OworMUQ1OEQ7MUQ1OEQ7MUQ1OEQ7MDA2ODswMDY4OworMUQ1OEU7MUQ1OEU7MUQ1OEU7MDA2OTswMDY5OworMUQ1OEY7MUQ1OEY7MUQ1OEY7MDA2QTswMDZBOworMUQ1OTA7MUQ1OTA7MUQ1OTA7MDA2QjswMDZCOworMUQ1OTE7MUQ1OTE7MUQ1OTE7MDA2QzswMDZDOworMUQ1OTI7MUQ1OTI7MUQ1OTI7MDA2RDswMDZEOworMUQ1OTM7MUQ1OTM7MUQ1OTM7MDA2RTswMDZFOworMUQ1OTQ7MUQ1OTQ7MUQ1OTQ7MDA2RjswMDZGOworMUQ1OTU7MUQ1OTU7MUQ1OTU7MDA3MDswMDcwOworMUQ1OTY7MUQ1OTY7MUQ1OTY7MDA3MTswMDcxOworMUQ1OTc7MUQ1OTc7MUQ1OTc7MDA3MjswMDcyOworMUQ1OTg7MUQ1OTg7MUQ1OTg7MDA3MzswMDczOworMUQ1OTk7MUQ1OTk7MUQ1OTk7MDA3NDswMDc0OworMUQ1OUE7MUQ1OUE7MUQ1OUE7MDA3NTswMDc1OworMUQ1OUI7MUQ1OUI7MUQ1OUI7MDA3NjswMDc2OworMUQ1OUM7MUQ1OUM7MUQ1OUM7MDA3NzswMDc3OworMUQ1OUQ7MUQ1OUQ7MUQ1OUQ7MDA3ODswMDc4OworMUQ1OUU7MUQ1OUU7MUQ1OUU7MDA3OTswMDc5OworMUQ1OUY7MUQ1OUY7MUQ1OUY7MDA3QTswMDdBOworMUQ1QTA7MUQ1QTA7MUQ1QTA7MDA0MTswMDQxOworMUQ1QTE7MUQ1QTE7MUQ1QTE7MDA0MjswMDQyOworMUQ1QTI7MUQ1QTI7MUQ1QTI7MDA0MzswMDQzOworMUQ1QTM7MUQ1QTM7MUQ1QTM7MDA0NDswMDQ0OworMUQ1QTQ7MUQ1QTQ7MUQ1QTQ7MDA0NTswMDQ1OworMUQ1QTU7MUQ1QTU7MUQ1QTU7MDA0NjswMDQ2OworMUQ1QTY7MUQ1QTY7MUQ1QTY7MDA0NzswMDQ3OworMUQ1QTc7MUQ1QTc7MUQ1QTc7MDA0ODswMDQ4OworMUQ1QTg7MUQ1QTg7MUQ1QTg7MDA0OTswMDQ5OworMUQ1QTk7MUQ1QTk7MUQ1QTk7MDA0QTswMDRBOworMUQ1QUE7MUQ1QUE7MUQ1QUE7MDA0QjswMDRCOworMUQ1QUI7MUQ1QUI7MUQ1QUI7MDA0QzswMDRDOworMUQ1QUM7MUQ1QUM7MUQ1QUM7MDA0RDswMDREOworMUQ1QUQ7MUQ1QUQ7MUQ1QUQ7MDA0RTswMDRFOworMUQ1QUU7MUQ1QUU7MUQ1QUU7MDA0RjswMDRGOworMUQ1QUY7MUQ1QUY7MUQ1QUY7MDA1MDswMDUwOworMUQ1QjA7MUQ1QjA7MUQ1QjA7MDA1MTswMDUxOworMUQ1QjE7MUQ1QjE7MUQ1QjE7MDA1MjswMDUyOworMUQ1QjI7MUQ1QjI7MUQ1QjI7MDA1MzswMDUzOworMUQ1QjM7MUQ1QjM7MUQ1QjM7MDA1NDswMDU0OworMUQ1QjQ7MUQ1QjQ7MUQ1QjQ7MDA1NTswMDU1OworMUQ1QjU7MUQ1QjU7MUQ1QjU7MDA1NjswMDU2OworMUQ1QjY7MUQ1QjY7MUQ1QjY7MDA1NzswMDU3OworMUQ1Qjc7MUQ1Qjc7MUQ1Qjc7MDA1ODswMDU4OworMUQ1Qjg7MUQ1Qjg7MUQ1Qjg7MDA1OTswMDU5OworMUQ1Qjk7MUQ1Qjk7MUQ1Qjk7MDA1QTswMDVBOworMUQ1QkE7MUQ1QkE7MUQ1QkE7MDA2MTswMDYxOworMUQ1QkI7MUQ1QkI7MUQ1QkI7MDA2MjswMDYyOworMUQ1QkM7MUQ1QkM7MUQ1QkM7MDA2MzswMDYzOworMUQ1QkQ7MUQ1QkQ7MUQ1QkQ7MDA2NDswMDY0OworMUQ1QkU7MUQ1QkU7MUQ1QkU7MDA2NTswMDY1OworMUQ1QkY7MUQ1QkY7MUQ1QkY7MDA2NjswMDY2OworMUQ1QzA7MUQ1QzA7MUQ1QzA7MDA2NzswMDY3OworMUQ1QzE7MUQ1QzE7MUQ1QzE7MDA2ODswMDY4OworMUQ1QzI7MUQ1QzI7MUQ1QzI7MDA2OTswMDY5OworMUQ1QzM7MUQ1QzM7MUQ1QzM7MDA2QTswMDZBOworMUQ1QzQ7MUQ1QzQ7MUQ1QzQ7MDA2QjswMDZCOworMUQ1QzU7MUQ1QzU7MUQ1QzU7MDA2QzswMDZDOworMUQ1QzY7MUQ1QzY7MUQ1QzY7MDA2RDswMDZEOworMUQ1Qzc7MUQ1Qzc7MUQ1Qzc7MDA2RTswMDZFOworMUQ1Qzg7MUQ1Qzg7MUQ1Qzg7MDA2RjswMDZGOworMUQ1Qzk7MUQ1Qzk7MUQ1Qzk7MDA3MDswMDcwOworMUQ1Q0E7MUQ1Q0E7MUQ1Q0E7MDA3MTswMDcxOworMUQ1Q0I7MUQ1Q0I7MUQ1Q0I7MDA3MjswMDcyOworMUQ1Q0M7MUQ1Q0M7MUQ1Q0M7MDA3MzswMDczOworMUQ1Q0Q7MUQ1Q0Q7MUQ1Q0Q7MDA3NDswMDc0OworMUQ1Q0U7MUQ1Q0U7MUQ1Q0U7MDA3NTswMDc1OworMUQ1Q0Y7MUQ1Q0Y7MUQ1Q0Y7MDA3NjswMDc2OworMUQ1RDA7MUQ1RDA7MUQ1RDA7MDA3NzswMDc3OworMUQ1RDE7MUQ1RDE7MUQ1RDE7MDA3ODswMDc4OworMUQ1RDI7MUQ1RDI7MUQ1RDI7MDA3OTswMDc5OworMUQ1RDM7MUQ1RDM7MUQ1RDM7MDA3QTswMDdBOworMUQ1RDQ7MUQ1RDQ7MUQ1RDQ7MDA0MTswMDQxOworMUQ1RDU7MUQ1RDU7MUQ1RDU7MDA0MjswMDQyOworMUQ1RDY7MUQ1RDY7MUQ1RDY7MDA0MzswMDQzOworMUQ1RDc7MUQ1RDc7MUQ1RDc7MDA0NDswMDQ0OworMUQ1RDg7MUQ1RDg7MUQ1RDg7MDA0NTswMDQ1OworMUQ1RDk7MUQ1RDk7MUQ1RDk7MDA0NjswMDQ2OworMUQ1REE7MUQ1REE7MUQ1REE7MDA0NzswMDQ3OworMUQ1REI7MUQ1REI7MUQ1REI7MDA0ODswMDQ4OworMUQ1REM7MUQ1REM7MUQ1REM7MDA0OTswMDQ5OworMUQ1REQ7MUQ1REQ7MUQ1REQ7MDA0QTswMDRBOworMUQ1REU7MUQ1REU7MUQ1REU7MDA0QjswMDRCOworMUQ1REY7MUQ1REY7MUQ1REY7MDA0QzswMDRDOworMUQ1RTA7MUQ1RTA7MUQ1RTA7MDA0RDswMDREOworMUQ1RTE7MUQ1RTE7MUQ1RTE7MDA0RTswMDRFOworMUQ1RTI7MUQ1RTI7MUQ1RTI7MDA0RjswMDRGOworMUQ1RTM7MUQ1RTM7MUQ1RTM7MDA1MDswMDUwOworMUQ1RTQ7MUQ1RTQ7MUQ1RTQ7MDA1MTswMDUxOworMUQ1RTU7MUQ1RTU7MUQ1RTU7MDA1MjswMDUyOworMUQ1RTY7MUQ1RTY7MUQ1RTY7MDA1MzswMDUzOworMUQ1RTc7MUQ1RTc7MUQ1RTc7MDA1NDswMDU0OworMUQ1RTg7MUQ1RTg7MUQ1RTg7MDA1NTswMDU1OworMUQ1RTk7MUQ1RTk7MUQ1RTk7MDA1NjswMDU2OworMUQ1RUE7MUQ1RUE7MUQ1RUE7MDA1NzswMDU3OworMUQ1RUI7MUQ1RUI7MUQ1RUI7MDA1ODswMDU4OworMUQ1RUM7MUQ1RUM7MUQ1RUM7MDA1OTswMDU5OworMUQ1RUQ7MUQ1RUQ7MUQ1RUQ7MDA1QTswMDVBOworMUQ1RUU7MUQ1RUU7MUQ1RUU7MDA2MTswMDYxOworMUQ1RUY7MUQ1RUY7MUQ1RUY7MDA2MjswMDYyOworMUQ1RjA7MUQ1RjA7MUQ1RjA7MDA2MzswMDYzOworMUQ1RjE7MUQ1RjE7MUQ1RjE7MDA2NDswMDY0OworMUQ1RjI7MUQ1RjI7MUQ1RjI7MDA2NTswMDY1OworMUQ1RjM7MUQ1RjM7MUQ1RjM7MDA2NjswMDY2OworMUQ1RjQ7MUQ1RjQ7MUQ1RjQ7MDA2NzswMDY3OworMUQ1RjU7MUQ1RjU7MUQ1RjU7MDA2ODswMDY4OworMUQ1RjY7MUQ1RjY7MUQ1RjY7MDA2OTswMDY5OworMUQ1Rjc7MUQ1Rjc7MUQ1Rjc7MDA2QTswMDZBOworMUQ1Rjg7MUQ1Rjg7MUQ1Rjg7MDA2QjswMDZCOworMUQ1Rjk7MUQ1Rjk7MUQ1Rjk7MDA2QzswMDZDOworMUQ1RkE7MUQ1RkE7MUQ1RkE7MDA2RDswMDZEOworMUQ1RkI7MUQ1RkI7MUQ1RkI7MDA2RTswMDZFOworMUQ1RkM7MUQ1RkM7MUQ1RkM7MDA2RjswMDZGOworMUQ1RkQ7MUQ1RkQ7MUQ1RkQ7MDA3MDswMDcwOworMUQ1RkU7MUQ1RkU7MUQ1RkU7MDA3MTswMDcxOworMUQ1RkY7MUQ1RkY7MUQ1RkY7MDA3MjswMDcyOworMUQ2MDA7MUQ2MDA7MUQ2MDA7MDA3MzswMDczOworMUQ2MDE7MUQ2MDE7MUQ2MDE7MDA3NDswMDc0OworMUQ2MDI7MUQ2MDI7MUQ2MDI7MDA3NTswMDc1OworMUQ2MDM7MUQ2MDM7MUQ2MDM7MDA3NjswMDc2OworMUQ2MDQ7MUQ2MDQ7MUQ2MDQ7MDA3NzswMDc3OworMUQ2MDU7MUQ2MDU7MUQ2MDU7MDA3ODswMDc4OworMUQ2MDY7MUQ2MDY7MUQ2MDY7MDA3OTswMDc5OworMUQ2MDc7MUQ2MDc7MUQ2MDc7MDA3QTswMDdBOworMUQ2MDg7MUQ2MDg7MUQ2MDg7MDA0MTswMDQxOworMUQ2MDk7MUQ2MDk7MUQ2MDk7MDA0MjswMDQyOworMUQ2MEE7MUQ2MEE7MUQ2MEE7MDA0MzswMDQzOworMUQ2MEI7MUQ2MEI7MUQ2MEI7MDA0NDswMDQ0OworMUQ2MEM7MUQ2MEM7MUQ2MEM7MDA0NTswMDQ1OworMUQ2MEQ7MUQ2MEQ7MUQ2MEQ7MDA0NjswMDQ2OworMUQ2MEU7MUQ2MEU7MUQ2MEU7MDA0NzswMDQ3OworMUQ2MEY7MUQ2MEY7MUQ2MEY7MDA0ODswMDQ4OworMUQ2MTA7MUQ2MTA7MUQ2MTA7MDA0OTswMDQ5OworMUQ2MTE7MUQ2MTE7MUQ2MTE7MDA0QTswMDRBOworMUQ2MTI7MUQ2MTI7MUQ2MTI7MDA0QjswMDRCOworMUQ2MTM7MUQ2MTM7MUQ2MTM7MDA0QzswMDRDOworMUQ2MTQ7MUQ2MTQ7MUQ2MTQ7MDA0RDswMDREOworMUQ2MTU7MUQ2MTU7MUQ2MTU7MDA0RTswMDRFOworMUQ2MTY7MUQ2MTY7MUQ2MTY7MDA0RjswMDRGOworMUQ2MTc7MUQ2MTc7MUQ2MTc7MDA1MDswMDUwOworMUQ2MTg7MUQ2MTg7MUQ2MTg7MDA1MTswMDUxOworMUQ2MTk7MUQ2MTk7MUQ2MTk7MDA1MjswMDUyOworMUQ2MUE7MUQ2MUE7MUQ2MUE7MDA1MzswMDUzOworMUQ2MUI7MUQ2MUI7MUQ2MUI7MDA1NDswMDU0OworMUQ2MUM7MUQ2MUM7MUQ2MUM7MDA1NTswMDU1OworMUQ2MUQ7MUQ2MUQ7MUQ2MUQ7MDA1NjswMDU2OworMUQ2MUU7MUQ2MUU7MUQ2MUU7MDA1NzswMDU3OworMUQ2MUY7MUQ2MUY7MUQ2MUY7MDA1ODswMDU4OworMUQ2MjA7MUQ2MjA7MUQ2MjA7MDA1OTswMDU5OworMUQ2MjE7MUQ2MjE7MUQ2MjE7MDA1QTswMDVBOworMUQ2MjI7MUQ2MjI7MUQ2MjI7MDA2MTswMDYxOworMUQ2MjM7MUQ2MjM7MUQ2MjM7MDA2MjswMDYyOworMUQ2MjQ7MUQ2MjQ7MUQ2MjQ7MDA2MzswMDYzOworMUQ2MjU7MUQ2MjU7MUQ2MjU7MDA2NDswMDY0OworMUQ2MjY7MUQ2MjY7MUQ2MjY7MDA2NTswMDY1OworMUQ2Mjc7MUQ2Mjc7MUQ2Mjc7MDA2NjswMDY2OworMUQ2Mjg7MUQ2Mjg7MUQ2Mjg7MDA2NzswMDY3OworMUQ2Mjk7MUQ2Mjk7MUQ2Mjk7MDA2ODswMDY4OworMUQ2MkE7MUQ2MkE7MUQ2MkE7MDA2OTswMDY5OworMUQ2MkI7MUQ2MkI7MUQ2MkI7MDA2QTswMDZBOworMUQ2MkM7MUQ2MkM7MUQ2MkM7MDA2QjswMDZCOworMUQ2MkQ7MUQ2MkQ7MUQ2MkQ7MDA2QzswMDZDOworMUQ2MkU7MUQ2MkU7MUQ2MkU7MDA2RDswMDZEOworMUQ2MkY7MUQ2MkY7MUQ2MkY7MDA2RTswMDZFOworMUQ2MzA7MUQ2MzA7MUQ2MzA7MDA2RjswMDZGOworMUQ2MzE7MUQ2MzE7MUQ2MzE7MDA3MDswMDcwOworMUQ2MzI7MUQ2MzI7MUQ2MzI7MDA3MTswMDcxOworMUQ2MzM7MUQ2MzM7MUQ2MzM7MDA3MjswMDcyOworMUQ2MzQ7MUQ2MzQ7MUQ2MzQ7MDA3MzswMDczOworMUQ2MzU7MUQ2MzU7MUQ2MzU7MDA3NDswMDc0OworMUQ2MzY7MUQ2MzY7MUQ2MzY7MDA3NTswMDc1OworMUQ2Mzc7MUQ2Mzc7MUQ2Mzc7MDA3NjswMDc2OworMUQ2Mzg7MUQ2Mzg7MUQ2Mzg7MDA3NzswMDc3OworMUQ2Mzk7MUQ2Mzk7MUQ2Mzk7MDA3ODswMDc4OworMUQ2M0E7MUQ2M0E7MUQ2M0E7MDA3OTswMDc5OworMUQ2M0I7MUQ2M0I7MUQ2M0I7MDA3QTswMDdBOworMUQ2M0M7MUQ2M0M7MUQ2M0M7MDA0MTswMDQxOworMUQ2M0Q7MUQ2M0Q7MUQ2M0Q7MDA0MjswMDQyOworMUQ2M0U7MUQ2M0U7MUQ2M0U7MDA0MzswMDQzOworMUQ2M0Y7MUQ2M0Y7MUQ2M0Y7MDA0NDswMDQ0OworMUQ2NDA7MUQ2NDA7MUQ2NDA7MDA0NTswMDQ1OworMUQ2NDE7MUQ2NDE7MUQ2NDE7MDA0NjswMDQ2OworMUQ2NDI7MUQ2NDI7MUQ2NDI7MDA0NzswMDQ3OworMUQ2NDM7MUQ2NDM7MUQ2NDM7MDA0ODswMDQ4OworMUQ2NDQ7MUQ2NDQ7MUQ2NDQ7MDA0OTswMDQ5OworMUQ2NDU7MUQ2NDU7MUQ2NDU7MDA0QTswMDRBOworMUQ2NDY7MUQ2NDY7MUQ2NDY7MDA0QjswMDRCOworMUQ2NDc7MUQ2NDc7MUQ2NDc7MDA0QzswMDRDOworMUQ2NDg7MUQ2NDg7MUQ2NDg7MDA0RDswMDREOworMUQ2NDk7MUQ2NDk7MUQ2NDk7MDA0RTswMDRFOworMUQ2NEE7MUQ2NEE7MUQ2NEE7MDA0RjswMDRGOworMUQ2NEI7MUQ2NEI7MUQ2NEI7MDA1MDswMDUwOworMUQ2NEM7MUQ2NEM7MUQ2NEM7MDA1MTswMDUxOworMUQ2NEQ7MUQ2NEQ7MUQ2NEQ7MDA1MjswMDUyOworMUQ2NEU7MUQ2NEU7MUQ2NEU7MDA1MzswMDUzOworMUQ2NEY7MUQ2NEY7MUQ2NEY7MDA1NDswMDU0OworMUQ2NTA7MUQ2NTA7MUQ2NTA7MDA1NTswMDU1OworMUQ2NTE7MUQ2NTE7MUQ2NTE7MDA1NjswMDU2OworMUQ2NTI7MUQ2NTI7MUQ2NTI7MDA1NzswMDU3OworMUQ2NTM7MUQ2NTM7MUQ2NTM7MDA1ODswMDU4OworMUQ2NTQ7MUQ2NTQ7MUQ2NTQ7MDA1OTswMDU5OworMUQ2NTU7MUQ2NTU7MUQ2NTU7MDA1QTswMDVBOworMUQ2NTY7MUQ2NTY7MUQ2NTY7MDA2MTswMDYxOworMUQ2NTc7MUQ2NTc7MUQ2NTc7MDA2MjswMDYyOworMUQ2NTg7MUQ2NTg7MUQ2NTg7MDA2MzswMDYzOworMUQ2NTk7MUQ2NTk7MUQ2NTk7MDA2NDswMDY0OworMUQ2NUE7MUQ2NUE7MUQ2NUE7MDA2NTswMDY1OworMUQ2NUI7MUQ2NUI7MUQ2NUI7MDA2NjswMDY2OworMUQ2NUM7MUQ2NUM7MUQ2NUM7MDA2NzswMDY3OworMUQ2NUQ7MUQ2NUQ7MUQ2NUQ7MDA2ODswMDY4OworMUQ2NUU7MUQ2NUU7MUQ2NUU7MDA2OTswMDY5OworMUQ2NUY7MUQ2NUY7MUQ2NUY7MDA2QTswMDZBOworMUQ2NjA7MUQ2NjA7MUQ2NjA7MDA2QjswMDZCOworMUQ2NjE7MUQ2NjE7MUQ2NjE7MDA2QzswMDZDOworMUQ2NjI7MUQ2NjI7MUQ2NjI7MDA2RDswMDZEOworMUQ2NjM7MUQ2NjM7MUQ2NjM7MDA2RTswMDZFOworMUQ2NjQ7MUQ2NjQ7MUQ2NjQ7MDA2RjswMDZGOworMUQ2NjU7MUQ2NjU7MUQ2NjU7MDA3MDswMDcwOworMUQ2NjY7MUQ2NjY7MUQ2NjY7MDA3MTswMDcxOworMUQ2Njc7MUQ2Njc7MUQ2Njc7MDA3MjswMDcyOworMUQ2Njg7MUQ2Njg7MUQ2Njg7MDA3MzswMDczOworMUQ2Njk7MUQ2Njk7MUQ2Njk7MDA3NDswMDc0OworMUQ2NkE7MUQ2NkE7MUQ2NkE7MDA3NTswMDc1OworMUQ2NkI7MUQ2NkI7MUQ2NkI7MDA3NjswMDc2OworMUQ2NkM7MUQ2NkM7MUQ2NkM7MDA3NzswMDc3OworMUQ2NkQ7MUQ2NkQ7MUQ2NkQ7MDA3ODswMDc4OworMUQ2NkU7MUQ2NkU7MUQ2NkU7MDA3OTswMDc5OworMUQ2NkY7MUQ2NkY7MUQ2NkY7MDA3QTswMDdBOworMUQ2NzA7MUQ2NzA7MUQ2NzA7MDA0MTswMDQxOworMUQ2NzE7MUQ2NzE7MUQ2NzE7MDA0MjswMDQyOworMUQ2NzI7MUQ2NzI7MUQ2NzI7MDA0MzswMDQzOworMUQ2NzM7MUQ2NzM7MUQ2NzM7MDA0NDswMDQ0OworMUQ2NzQ7MUQ2NzQ7MUQ2NzQ7MDA0NTswMDQ1OworMUQ2NzU7MUQ2NzU7MUQ2NzU7MDA0NjswMDQ2OworMUQ2NzY7MUQ2NzY7MUQ2NzY7MDA0NzswMDQ3OworMUQ2Nzc7MUQ2Nzc7MUQ2Nzc7MDA0ODswMDQ4OworMUQ2Nzg7MUQ2Nzg7MUQ2Nzg7MDA0OTswMDQ5OworMUQ2Nzk7MUQ2Nzk7MUQ2Nzk7MDA0QTswMDRBOworMUQ2N0E7MUQ2N0E7MUQ2N0E7MDA0QjswMDRCOworMUQ2N0I7MUQ2N0I7MUQ2N0I7MDA0QzswMDRDOworMUQ2N0M7MUQ2N0M7MUQ2N0M7MDA0RDswMDREOworMUQ2N0Q7MUQ2N0Q7MUQ2N0Q7MDA0RTswMDRFOworMUQ2N0U7MUQ2N0U7MUQ2N0U7MDA0RjswMDRGOworMUQ2N0Y7MUQ2N0Y7MUQ2N0Y7MDA1MDswMDUwOworMUQ2ODA7MUQ2ODA7MUQ2ODA7MDA1MTswMDUxOworMUQ2ODE7MUQ2ODE7MUQ2ODE7MDA1MjswMDUyOworMUQ2ODI7MUQ2ODI7MUQ2ODI7MDA1MzswMDUzOworMUQ2ODM7MUQ2ODM7MUQ2ODM7MDA1NDswMDU0OworMUQ2ODQ7MUQ2ODQ7MUQ2ODQ7MDA1NTswMDU1OworMUQ2ODU7MUQ2ODU7MUQ2ODU7MDA1NjswMDU2OworMUQ2ODY7MUQ2ODY7MUQ2ODY7MDA1NzswMDU3OworMUQ2ODc7MUQ2ODc7MUQ2ODc7MDA1ODswMDU4OworMUQ2ODg7MUQ2ODg7MUQ2ODg7MDA1OTswMDU5OworMUQ2ODk7MUQ2ODk7MUQ2ODk7MDA1QTswMDVBOworMUQ2OEE7MUQ2OEE7MUQ2OEE7MDA2MTswMDYxOworMUQ2OEI7MUQ2OEI7MUQ2OEI7MDA2MjswMDYyOworMUQ2OEM7MUQ2OEM7MUQ2OEM7MDA2MzswMDYzOworMUQ2OEQ7MUQ2OEQ7MUQ2OEQ7MDA2NDswMDY0OworMUQ2OEU7MUQ2OEU7MUQ2OEU7MDA2NTswMDY1OworMUQ2OEY7MUQ2OEY7MUQ2OEY7MDA2NjswMDY2OworMUQ2OTA7MUQ2OTA7MUQ2OTA7MDA2NzswMDY3OworMUQ2OTE7MUQ2OTE7MUQ2OTE7MDA2ODswMDY4OworMUQ2OTI7MUQ2OTI7MUQ2OTI7MDA2OTswMDY5OworMUQ2OTM7MUQ2OTM7MUQ2OTM7MDA2QTswMDZBOworMUQ2OTQ7MUQ2OTQ7MUQ2OTQ7MDA2QjswMDZCOworMUQ2OTU7MUQ2OTU7MUQ2OTU7MDA2QzswMDZDOworMUQ2OTY7MUQ2OTY7MUQ2OTY7MDA2RDswMDZEOworMUQ2OTc7MUQ2OTc7MUQ2OTc7MDA2RTswMDZFOworMUQ2OTg7MUQ2OTg7MUQ2OTg7MDA2RjswMDZGOworMUQ2OTk7MUQ2OTk7MUQ2OTk7MDA3MDswMDcwOworMUQ2OUE7MUQ2OUE7MUQ2OUE7MDA3MTswMDcxOworMUQ2OUI7MUQ2OUI7MUQ2OUI7MDA3MjswMDcyOworMUQ2OUM7MUQ2OUM7MUQ2OUM7MDA3MzswMDczOworMUQ2OUQ7MUQ2OUQ7MUQ2OUQ7MDA3NDswMDc0OworMUQ2OUU7MUQ2OUU7MUQ2OUU7MDA3NTswMDc1OworMUQ2OUY7MUQ2OUY7MUQ2OUY7MDA3NjswMDc2OworMUQ2QTA7MUQ2QTA7MUQ2QTA7MDA3NzswMDc3OworMUQ2QTE7MUQ2QTE7MUQ2QTE7MDA3ODswMDc4OworMUQ2QTI7MUQ2QTI7MUQ2QTI7MDA3OTswMDc5OworMUQ2QTM7MUQ2QTM7MUQ2QTM7MDA3QTswMDdBOworMUQ2QTQ7MUQ2QTQ7MUQ2QTQ7MDEzMTswMTMxOworMUQ2QTU7MUQ2QTU7MUQ2QTU7MDIzNzswMjM3OworMUQ2QTg7MUQ2QTg7MUQ2QTg7MDM5MTswMzkxOworMUQ2QTk7MUQ2QTk7MUQ2QTk7MDM5MjswMzkyOworMUQ2QUE7MUQ2QUE7MUQ2QUE7MDM5MzswMzkzOworMUQ2QUI7MUQ2QUI7MUQ2QUI7MDM5NDswMzk0OworMUQ2QUM7MUQ2QUM7MUQ2QUM7MDM5NTswMzk1OworMUQ2QUQ7MUQ2QUQ7MUQ2QUQ7MDM5NjswMzk2OworMUQ2QUU7MUQ2QUU7MUQ2QUU7MDM5NzswMzk3OworMUQ2QUY7MUQ2QUY7MUQ2QUY7MDM5ODswMzk4OworMUQ2QjA7MUQ2QjA7MUQ2QjA7MDM5OTswMzk5OworMUQ2QjE7MUQ2QjE7MUQ2QjE7MDM5QTswMzlBOworMUQ2QjI7MUQ2QjI7MUQ2QjI7MDM5QjswMzlCOworMUQ2QjM7MUQ2QjM7MUQ2QjM7MDM5QzswMzlDOworMUQ2QjQ7MUQ2QjQ7MUQ2QjQ7MDM5RDswMzlEOworMUQ2QjU7MUQ2QjU7MUQ2QjU7MDM5RTswMzlFOworMUQ2QjY7MUQ2QjY7MUQ2QjY7MDM5RjswMzlGOworMUQ2Qjc7MUQ2Qjc7MUQ2Qjc7MDNBMDswM0EwOworMUQ2Qjg7MUQ2Qjg7MUQ2Qjg7MDNBMTswM0ExOworMUQ2Qjk7MUQ2Qjk7MUQ2Qjk7MDM5ODswMzk4OworMUQ2QkE7MUQ2QkE7MUQ2QkE7MDNBMzswM0EzOworMUQ2QkI7MUQ2QkI7MUQ2QkI7MDNBNDswM0E0OworMUQ2QkM7MUQ2QkM7MUQ2QkM7MDNBNTswM0E1OworMUQ2QkQ7MUQ2QkQ7MUQ2QkQ7MDNBNjswM0E2OworMUQ2QkU7MUQ2QkU7MUQ2QkU7MDNBNzswM0E3OworMUQ2QkY7MUQ2QkY7MUQ2QkY7MDNBODswM0E4OworMUQ2QzA7MUQ2QzA7MUQ2QzA7MDNBOTswM0E5OworMUQ2QzE7MUQ2QzE7MUQ2QzE7MjIwNzsyMjA3OworMUQ2QzI7MUQ2QzI7MUQ2QzI7MDNCMTswM0IxOworMUQ2QzM7MUQ2QzM7MUQ2QzM7MDNCMjswM0IyOworMUQ2QzQ7MUQ2QzQ7MUQ2QzQ7MDNCMzswM0IzOworMUQ2QzU7MUQ2QzU7MUQ2QzU7MDNCNDswM0I0OworMUQ2QzY7MUQ2QzY7MUQ2QzY7MDNCNTswM0I1OworMUQ2Qzc7MUQ2Qzc7MUQ2Qzc7MDNCNjswM0I2OworMUQ2Qzg7MUQ2Qzg7MUQ2Qzg7MDNCNzswM0I3OworMUQ2Qzk7MUQ2Qzk7MUQ2Qzk7MDNCODswM0I4OworMUQ2Q0E7MUQ2Q0E7MUQ2Q0E7MDNCOTswM0I5OworMUQ2Q0I7MUQ2Q0I7MUQ2Q0I7MDNCQTswM0JBOworMUQ2Q0M7MUQ2Q0M7MUQ2Q0M7MDNCQjswM0JCOworMUQ2Q0Q7MUQ2Q0Q7MUQ2Q0Q7MDNCQzswM0JDOworMUQ2Q0U7MUQ2Q0U7MUQ2Q0U7MDNCRDswM0JEOworMUQ2Q0Y7MUQ2Q0Y7MUQ2Q0Y7MDNCRTswM0JFOworMUQ2RDA7MUQ2RDA7MUQ2RDA7MDNCRjswM0JGOworMUQ2RDE7MUQ2RDE7MUQ2RDE7MDNDMDswM0MwOworMUQ2RDI7MUQ2RDI7MUQ2RDI7MDNDMTswM0MxOworMUQ2RDM7MUQ2RDM7MUQ2RDM7MDNDMjswM0MyOworMUQ2RDQ7MUQ2RDQ7MUQ2RDQ7MDNDMzswM0MzOworMUQ2RDU7MUQ2RDU7MUQ2RDU7MDNDNDswM0M0OworMUQ2RDY7MUQ2RDY7MUQ2RDY7MDNDNTswM0M1OworMUQ2RDc7MUQ2RDc7MUQ2RDc7MDNDNjswM0M2OworMUQ2RDg7MUQ2RDg7MUQ2RDg7MDNDNzswM0M3OworMUQ2RDk7MUQ2RDk7MUQ2RDk7MDNDODswM0M4OworMUQ2REE7MUQ2REE7MUQ2REE7MDNDOTswM0M5OworMUQ2REI7MUQ2REI7MUQ2REI7MjIwMjsyMjAyOworMUQ2REM7MUQ2REM7MUQ2REM7MDNCNTswM0I1OworMUQ2REQ7MUQ2REQ7MUQ2REQ7MDNCODswM0I4OworMUQ2REU7MUQ2REU7MUQ2REU7MDNCQTswM0JBOworMUQ2REY7MUQ2REY7MUQ2REY7MDNDNjswM0M2OworMUQ2RTA7MUQ2RTA7MUQ2RTA7MDNDMTswM0MxOworMUQ2RTE7MUQ2RTE7MUQ2RTE7MDNDMDswM0MwOworMUQ2RTI7MUQ2RTI7MUQ2RTI7MDM5MTswMzkxOworMUQ2RTM7MUQ2RTM7MUQ2RTM7MDM5MjswMzkyOworMUQ2RTQ7MUQ2RTQ7MUQ2RTQ7MDM5MzswMzkzOworMUQ2RTU7MUQ2RTU7MUQ2RTU7MDM5NDswMzk0OworMUQ2RTY7MUQ2RTY7MUQ2RTY7MDM5NTswMzk1OworMUQ2RTc7MUQ2RTc7MUQ2RTc7MDM5NjswMzk2OworMUQ2RTg7MUQ2RTg7MUQ2RTg7MDM5NzswMzk3OworMUQ2RTk7MUQ2RTk7MUQ2RTk7MDM5ODswMzk4OworMUQ2RUE7MUQ2RUE7MUQ2RUE7MDM5OTswMzk5OworMUQ2RUI7MUQ2RUI7MUQ2RUI7MDM5QTswMzlBOworMUQ2RUM7MUQ2RUM7MUQ2RUM7MDM5QjswMzlCOworMUQ2RUQ7MUQ2RUQ7MUQ2RUQ7MDM5QzswMzlDOworMUQ2RUU7MUQ2RUU7MUQ2RUU7MDM5RDswMzlEOworMUQ2RUY7MUQ2RUY7MUQ2RUY7MDM5RTswMzlFOworMUQ2RjA7MUQ2RjA7MUQ2RjA7MDM5RjswMzlGOworMUQ2RjE7MUQ2RjE7MUQ2RjE7MDNBMDswM0EwOworMUQ2RjI7MUQ2RjI7MUQ2RjI7MDNBMTswM0ExOworMUQ2RjM7MUQ2RjM7MUQ2RjM7MDM5ODswMzk4OworMUQ2RjQ7MUQ2RjQ7MUQ2RjQ7MDNBMzswM0EzOworMUQ2RjU7MUQ2RjU7MUQ2RjU7MDNBNDswM0E0OworMUQ2RjY7MUQ2RjY7MUQ2RjY7MDNBNTswM0E1OworMUQ2Rjc7MUQ2Rjc7MUQ2Rjc7MDNBNjswM0E2OworMUQ2Rjg7MUQ2Rjg7MUQ2Rjg7MDNBNzswM0E3OworMUQ2Rjk7MUQ2Rjk7MUQ2Rjk7MDNBODswM0E4OworMUQ2RkE7MUQ2RkE7MUQ2RkE7MDNBOTswM0E5OworMUQ2RkI7MUQ2RkI7MUQ2RkI7MjIwNzsyMjA3OworMUQ2RkM7MUQ2RkM7MUQ2RkM7MDNCMTswM0IxOworMUQ2RkQ7MUQ2RkQ7MUQ2RkQ7MDNCMjswM0IyOworMUQ2RkU7MUQ2RkU7MUQ2RkU7MDNCMzswM0IzOworMUQ2RkY7MUQ2RkY7MUQ2RkY7MDNCNDswM0I0OworMUQ3MDA7MUQ3MDA7MUQ3MDA7MDNCNTswM0I1OworMUQ3MDE7MUQ3MDE7MUQ3MDE7MDNCNjswM0I2OworMUQ3MDI7MUQ3MDI7MUQ3MDI7MDNCNzswM0I3OworMUQ3MDM7MUQ3MDM7MUQ3MDM7MDNCODswM0I4OworMUQ3MDQ7MUQ3MDQ7MUQ3MDQ7MDNCOTswM0I5OworMUQ3MDU7MUQ3MDU7MUQ3MDU7MDNCQTswM0JBOworMUQ3MDY7MUQ3MDY7MUQ3MDY7MDNCQjswM0JCOworMUQ3MDc7MUQ3MDc7MUQ3MDc7MDNCQzswM0JDOworMUQ3MDg7MUQ3MDg7MUQ3MDg7MDNCRDswM0JEOworMUQ3MDk7MUQ3MDk7MUQ3MDk7MDNCRTswM0JFOworMUQ3MEE7MUQ3MEE7MUQ3MEE7MDNCRjswM0JGOworMUQ3MEI7MUQ3MEI7MUQ3MEI7MDNDMDswM0MwOworMUQ3MEM7MUQ3MEM7MUQ3MEM7MDNDMTswM0MxOworMUQ3MEQ7MUQ3MEQ7MUQ3MEQ7MDNDMjswM0MyOworMUQ3MEU7MUQ3MEU7MUQ3MEU7MDNDMzswM0MzOworMUQ3MEY7MUQ3MEY7MUQ3MEY7MDNDNDswM0M0OworMUQ3MTA7MUQ3MTA7MUQ3MTA7MDNDNTswM0M1OworMUQ3MTE7MUQ3MTE7MUQ3MTE7MDNDNjswM0M2OworMUQ3MTI7MUQ3MTI7MUQ3MTI7MDNDNzswM0M3OworMUQ3MTM7MUQ3MTM7MUQ3MTM7MDNDODswM0M4OworMUQ3MTQ7MUQ3MTQ7MUQ3MTQ7MDNDOTswM0M5OworMUQ3MTU7MUQ3MTU7MUQ3MTU7MjIwMjsyMjAyOworMUQ3MTY7MUQ3MTY7MUQ3MTY7MDNCNTswM0I1OworMUQ3MTc7MUQ3MTc7MUQ3MTc7MDNCODswM0I4OworMUQ3MTg7MUQ3MTg7MUQ3MTg7MDNCQTswM0JBOworMUQ3MTk7MUQ3MTk7MUQ3MTk7MDNDNjswM0M2OworMUQ3MUE7MUQ3MUE7MUQ3MUE7MDNDMTswM0MxOworMUQ3MUI7MUQ3MUI7MUQ3MUI7MDNDMDswM0MwOworMUQ3MUM7MUQ3MUM7MUQ3MUM7MDM5MTswMzkxOworMUQ3MUQ7MUQ3MUQ7MUQ3MUQ7MDM5MjswMzkyOworMUQ3MUU7MUQ3MUU7MUQ3MUU7MDM5MzswMzkzOworMUQ3MUY7MUQ3MUY7MUQ3MUY7MDM5NDswMzk0OworMUQ3MjA7MUQ3MjA7MUQ3MjA7MDM5NTswMzk1OworMUQ3MjE7MUQ3MjE7MUQ3MjE7MDM5NjswMzk2OworMUQ3MjI7MUQ3MjI7MUQ3MjI7MDM5NzswMzk3OworMUQ3MjM7MUQ3MjM7MUQ3MjM7MDM5ODswMzk4OworMUQ3MjQ7MUQ3MjQ7MUQ3MjQ7MDM5OTswMzk5OworMUQ3MjU7MUQ3MjU7MUQ3MjU7MDM5QTswMzlBOworMUQ3MjY7MUQ3MjY7MUQ3MjY7MDM5QjswMzlCOworMUQ3Mjc7MUQ3Mjc7MUQ3Mjc7MDM5QzswMzlDOworMUQ3Mjg7MUQ3Mjg7MUQ3Mjg7MDM5RDswMzlEOworMUQ3Mjk7MUQ3Mjk7MUQ3Mjk7MDM5RTswMzlFOworMUQ3MkE7MUQ3MkE7MUQ3MkE7MDM5RjswMzlGOworMUQ3MkI7MUQ3MkI7MUQ3MkI7MDNBMDswM0EwOworMUQ3MkM7MUQ3MkM7MUQ3MkM7MDNBMTswM0ExOworMUQ3MkQ7MUQ3MkQ7MUQ3MkQ7MDM5ODswMzk4OworMUQ3MkU7MUQ3MkU7MUQ3MkU7MDNBMzswM0EzOworMUQ3MkY7MUQ3MkY7MUQ3MkY7MDNBNDswM0E0OworMUQ3MzA7MUQ3MzA7MUQ3MzA7MDNBNTswM0E1OworMUQ3MzE7MUQ3MzE7MUQ3MzE7MDNBNjswM0E2OworMUQ3MzI7MUQ3MzI7MUQ3MzI7MDNBNzswM0E3OworMUQ3MzM7MUQ3MzM7MUQ3MzM7MDNBODswM0E4OworMUQ3MzQ7MUQ3MzQ7MUQ3MzQ7MDNBOTswM0E5OworMUQ3MzU7MUQ3MzU7MUQ3MzU7MjIwNzsyMjA3OworMUQ3MzY7MUQ3MzY7MUQ3MzY7MDNCMTswM0IxOworMUQ3Mzc7MUQ3Mzc7MUQ3Mzc7MDNCMjswM0IyOworMUQ3Mzg7MUQ3Mzg7MUQ3Mzg7MDNCMzswM0IzOworMUQ3Mzk7MUQ3Mzk7MUQ3Mzk7MDNCNDswM0I0OworMUQ3M0E7MUQ3M0E7MUQ3M0E7MDNCNTswM0I1OworMUQ3M0I7MUQ3M0I7MUQ3M0I7MDNCNjswM0I2OworMUQ3M0M7MUQ3M0M7MUQ3M0M7MDNCNzswM0I3OworMUQ3M0Q7MUQ3M0Q7MUQ3M0Q7MDNCODswM0I4OworMUQ3M0U7MUQ3M0U7MUQ3M0U7MDNCOTswM0I5OworMUQ3M0Y7MUQ3M0Y7MUQ3M0Y7MDNCQTswM0JBOworMUQ3NDA7MUQ3NDA7MUQ3NDA7MDNCQjswM0JCOworMUQ3NDE7MUQ3NDE7MUQ3NDE7MDNCQzswM0JDOworMUQ3NDI7MUQ3NDI7MUQ3NDI7MDNCRDswM0JEOworMUQ3NDM7MUQ3NDM7MUQ3NDM7MDNCRTswM0JFOworMUQ3NDQ7MUQ3NDQ7MUQ3NDQ7MDNCRjswM0JGOworMUQ3NDU7MUQ3NDU7MUQ3NDU7MDNDMDswM0MwOworMUQ3NDY7MUQ3NDY7MUQ3NDY7MDNDMTswM0MxOworMUQ3NDc7MUQ3NDc7MUQ3NDc7MDNDMjswM0MyOworMUQ3NDg7MUQ3NDg7MUQ3NDg7MDNDMzswM0MzOworMUQ3NDk7MUQ3NDk7MUQ3NDk7MDNDNDswM0M0OworMUQ3NEE7MUQ3NEE7MUQ3NEE7MDNDNTswM0M1OworMUQ3NEI7MUQ3NEI7MUQ3NEI7MDNDNjswM0M2OworMUQ3NEM7MUQ3NEM7MUQ3NEM7MDNDNzswM0M3OworMUQ3NEQ7MUQ3NEQ7MUQ3NEQ7MDNDODswM0M4OworMUQ3NEU7MUQ3NEU7MUQ3NEU7MDNDOTswM0M5OworMUQ3NEY7MUQ3NEY7MUQ3NEY7MjIwMjsyMjAyOworMUQ3NTA7MUQ3NTA7MUQ3NTA7MDNCNTswM0I1OworMUQ3NTE7MUQ3NTE7MUQ3NTE7MDNCODswM0I4OworMUQ3NTI7MUQ3NTI7MUQ3NTI7MDNCQTswM0JBOworMUQ3NTM7MUQ3NTM7MUQ3NTM7MDNDNjswM0M2OworMUQ3NTQ7MUQ3NTQ7MUQ3NTQ7MDNDMTswM0MxOworMUQ3NTU7MUQ3NTU7MUQ3NTU7MDNDMDswM0MwOworMUQ3NTY7MUQ3NTY7MUQ3NTY7MDM5MTswMzkxOworMUQ3NTc7MUQ3NTc7MUQ3NTc7MDM5MjswMzkyOworMUQ3NTg7MUQ3NTg7MUQ3NTg7MDM5MzswMzkzOworMUQ3NTk7MUQ3NTk7MUQ3NTk7MDM5NDswMzk0OworMUQ3NUE7MUQ3NUE7MUQ3NUE7MDM5NTswMzk1OworMUQ3NUI7MUQ3NUI7MUQ3NUI7MDM5NjswMzk2OworMUQ3NUM7MUQ3NUM7MUQ3NUM7MDM5NzswMzk3OworMUQ3NUQ7MUQ3NUQ7MUQ3NUQ7MDM5ODswMzk4OworMUQ3NUU7MUQ3NUU7MUQ3NUU7MDM5OTswMzk5OworMUQ3NUY7MUQ3NUY7MUQ3NUY7MDM5QTswMzlBOworMUQ3NjA7MUQ3NjA7MUQ3NjA7MDM5QjswMzlCOworMUQ3NjE7MUQ3NjE7MUQ3NjE7MDM5QzswMzlDOworMUQ3NjI7MUQ3NjI7MUQ3NjI7MDM5RDswMzlEOworMUQ3NjM7MUQ3NjM7MUQ3NjM7MDM5RTswMzlFOworMUQ3NjQ7MUQ3NjQ7MUQ3NjQ7MDM5RjswMzlGOworMUQ3NjU7MUQ3NjU7MUQ3NjU7MDNBMDswM0EwOworMUQ3NjY7MUQ3NjY7MUQ3NjY7MDNBMTswM0ExOworMUQ3Njc7MUQ3Njc7MUQ3Njc7MDM5ODswMzk4OworMUQ3Njg7MUQ3Njg7MUQ3Njg7MDNBMzswM0EzOworMUQ3Njk7MUQ3Njk7MUQ3Njk7MDNBNDswM0E0OworMUQ3NkE7MUQ3NkE7MUQ3NkE7MDNBNTswM0E1OworMUQ3NkI7MUQ3NkI7MUQ3NkI7MDNBNjswM0E2OworMUQ3NkM7MUQ3NkM7MUQ3NkM7MDNBNzswM0E3OworMUQ3NkQ7MUQ3NkQ7MUQ3NkQ7MDNBODswM0E4OworMUQ3NkU7MUQ3NkU7MUQ3NkU7MDNBOTswM0E5OworMUQ3NkY7MUQ3NkY7MUQ3NkY7MjIwNzsyMjA3OworMUQ3NzA7MUQ3NzA7MUQ3NzA7MDNCMTswM0IxOworMUQ3NzE7MUQ3NzE7MUQ3NzE7MDNCMjswM0IyOworMUQ3NzI7MUQ3NzI7MUQ3NzI7MDNCMzswM0IzOworMUQ3NzM7MUQ3NzM7MUQ3NzM7MDNCNDswM0I0OworMUQ3NzQ7MUQ3NzQ7MUQ3NzQ7MDNCNTswM0I1OworMUQ3NzU7MUQ3NzU7MUQ3NzU7MDNCNjswM0I2OworMUQ3NzY7MUQ3NzY7MUQ3NzY7MDNCNzswM0I3OworMUQ3Nzc7MUQ3Nzc7MUQ3Nzc7MDNCODswM0I4OworMUQ3Nzg7MUQ3Nzg7MUQ3Nzg7MDNCOTswM0I5OworMUQ3Nzk7MUQ3Nzk7MUQ3Nzk7MDNCQTswM0JBOworMUQ3N0E7MUQ3N0E7MUQ3N0E7MDNCQjswM0JCOworMUQ3N0I7MUQ3N0I7MUQ3N0I7MDNCQzswM0JDOworMUQ3N0M7MUQ3N0M7MUQ3N0M7MDNCRDswM0JEOworMUQ3N0Q7MUQ3N0Q7MUQ3N0Q7MDNCRTswM0JFOworMUQ3N0U7MUQ3N0U7MUQ3N0U7MDNCRjswM0JGOworMUQ3N0Y7MUQ3N0Y7MUQ3N0Y7MDNDMDswM0MwOworMUQ3ODA7MUQ3ODA7MUQ3ODA7MDNDMTswM0MxOworMUQ3ODE7MUQ3ODE7MUQ3ODE7MDNDMjswM0MyOworMUQ3ODI7MUQ3ODI7MUQ3ODI7MDNDMzswM0MzOworMUQ3ODM7MUQ3ODM7MUQ3ODM7MDNDNDswM0M0OworMUQ3ODQ7MUQ3ODQ7MUQ3ODQ7MDNDNTswM0M1OworMUQ3ODU7MUQ3ODU7MUQ3ODU7MDNDNjswM0M2OworMUQ3ODY7MUQ3ODY7MUQ3ODY7MDNDNzswM0M3OworMUQ3ODc7MUQ3ODc7MUQ3ODc7MDNDODswM0M4OworMUQ3ODg7MUQ3ODg7MUQ3ODg7MDNDOTswM0M5OworMUQ3ODk7MUQ3ODk7MUQ3ODk7MjIwMjsyMjAyOworMUQ3OEE7MUQ3OEE7MUQ3OEE7MDNCNTswM0I1OworMUQ3OEI7MUQ3OEI7MUQ3OEI7MDNCODswM0I4OworMUQ3OEM7MUQ3OEM7MUQ3OEM7MDNCQTswM0JBOworMUQ3OEQ7MUQ3OEQ7MUQ3OEQ7MDNDNjswM0M2OworMUQ3OEU7MUQ3OEU7MUQ3OEU7MDNDMTswM0MxOworMUQ3OEY7MUQ3OEY7MUQ3OEY7MDNDMDswM0MwOworMUQ3OTA7MUQ3OTA7MUQ3OTA7MDM5MTswMzkxOworMUQ3OTE7MUQ3OTE7MUQ3OTE7MDM5MjswMzkyOworMUQ3OTI7MUQ3OTI7MUQ3OTI7MDM5MzswMzkzOworMUQ3OTM7MUQ3OTM7MUQ3OTM7MDM5NDswMzk0OworMUQ3OTQ7MUQ3OTQ7MUQ3OTQ7MDM5NTswMzk1OworMUQ3OTU7MUQ3OTU7MUQ3OTU7MDM5NjswMzk2OworMUQ3OTY7MUQ3OTY7MUQ3OTY7MDM5NzswMzk3OworMUQ3OTc7MUQ3OTc7MUQ3OTc7MDM5ODswMzk4OworMUQ3OTg7MUQ3OTg7MUQ3OTg7MDM5OTswMzk5OworMUQ3OTk7MUQ3OTk7MUQ3OTk7MDM5QTswMzlBOworMUQ3OUE7MUQ3OUE7MUQ3OUE7MDM5QjswMzlCOworMUQ3OUI7MUQ3OUI7MUQ3OUI7MDM5QzswMzlDOworMUQ3OUM7MUQ3OUM7MUQ3OUM7MDM5RDswMzlEOworMUQ3OUQ7MUQ3OUQ7MUQ3OUQ7MDM5RTswMzlFOworMUQ3OUU7MUQ3OUU7MUQ3OUU7MDM5RjswMzlGOworMUQ3OUY7MUQ3OUY7MUQ3OUY7MDNBMDswM0EwOworMUQ3QTA7MUQ3QTA7MUQ3QTA7MDNBMTswM0ExOworMUQ3QTE7MUQ3QTE7MUQ3QTE7MDM5ODswMzk4OworMUQ3QTI7MUQ3QTI7MUQ3QTI7MDNBMzswM0EzOworMUQ3QTM7MUQ3QTM7MUQ3QTM7MDNBNDswM0E0OworMUQ3QTQ7MUQ3QTQ7MUQ3QTQ7MDNBNTswM0E1OworMUQ3QTU7MUQ3QTU7MUQ3QTU7MDNBNjswM0E2OworMUQ3QTY7MUQ3QTY7MUQ3QTY7MDNBNzswM0E3OworMUQ3QTc7MUQ3QTc7MUQ3QTc7MDNBODswM0E4OworMUQ3QTg7MUQ3QTg7MUQ3QTg7MDNBOTswM0E5OworMUQ3QTk7MUQ3QTk7MUQ3QTk7MjIwNzsyMjA3OworMUQ3QUE7MUQ3QUE7MUQ3QUE7MDNCMTswM0IxOworMUQ3QUI7MUQ3QUI7MUQ3QUI7MDNCMjswM0IyOworMUQ3QUM7MUQ3QUM7MUQ3QUM7MDNCMzswM0IzOworMUQ3QUQ7MUQ3QUQ7MUQ3QUQ7MDNCNDswM0I0OworMUQ3QUU7MUQ3QUU7MUQ3QUU7MDNCNTswM0I1OworMUQ3QUY7MUQ3QUY7MUQ3QUY7MDNCNjswM0I2OworMUQ3QjA7MUQ3QjA7MUQ3QjA7MDNCNzswM0I3OworMUQ3QjE7MUQ3QjE7MUQ3QjE7MDNCODswM0I4OworMUQ3QjI7MUQ3QjI7MUQ3QjI7MDNCOTswM0I5OworMUQ3QjM7MUQ3QjM7MUQ3QjM7MDNCQTswM0JBOworMUQ3QjQ7MUQ3QjQ7MUQ3QjQ7MDNCQjswM0JCOworMUQ3QjU7MUQ3QjU7MUQ3QjU7MDNCQzswM0JDOworMUQ3QjY7MUQ3QjY7MUQ3QjY7MDNCRDswM0JEOworMUQ3Qjc7MUQ3Qjc7MUQ3Qjc7MDNCRTswM0JFOworMUQ3Qjg7MUQ3Qjg7MUQ3Qjg7MDNCRjswM0JGOworMUQ3Qjk7MUQ3Qjk7MUQ3Qjk7MDNDMDswM0MwOworMUQ3QkE7MUQ3QkE7MUQ3QkE7MDNDMTswM0MxOworMUQ3QkI7MUQ3QkI7MUQ3QkI7MDNDMjswM0MyOworMUQ3QkM7MUQ3QkM7MUQ3QkM7MDNDMzswM0MzOworMUQ3QkQ7MUQ3QkQ7MUQ3QkQ7MDNDNDswM0M0OworMUQ3QkU7MUQ3QkU7MUQ3QkU7MDNDNTswM0M1OworMUQ3QkY7MUQ3QkY7MUQ3QkY7MDNDNjswM0M2OworMUQ3QzA7MUQ3QzA7MUQ3QzA7MDNDNzswM0M3OworMUQ3QzE7MUQ3QzE7MUQ3QzE7MDNDODswM0M4OworMUQ3QzI7MUQ3QzI7MUQ3QzI7MDNDOTswM0M5OworMUQ3QzM7MUQ3QzM7MUQ3QzM7MjIwMjsyMjAyOworMUQ3QzQ7MUQ3QzQ7MUQ3QzQ7MDNCNTswM0I1OworMUQ3QzU7MUQ3QzU7MUQ3QzU7MDNCODswM0I4OworMUQ3QzY7MUQ3QzY7MUQ3QzY7MDNCQTswM0JBOworMUQ3Qzc7MUQ3Qzc7MUQ3Qzc7MDNDNjswM0M2OworMUQ3Qzg7MUQ3Qzg7MUQ3Qzg7MDNDMTswM0MxOworMUQ3Qzk7MUQ3Qzk7MUQ3Qzk7MDNDMDswM0MwOworMUQ3Q0U7MUQ3Q0U7MUQ3Q0U7MDAzMDswMDMwOworMUQ3Q0Y7MUQ3Q0Y7MUQ3Q0Y7MDAzMTswMDMxOworMUQ3RDA7MUQ3RDA7MUQ3RDA7MDAzMjswMDMyOworMUQ3RDE7MUQ3RDE7MUQ3RDE7MDAzMzswMDMzOworMUQ3RDI7MUQ3RDI7MUQ3RDI7MDAzNDswMDM0OworMUQ3RDM7MUQ3RDM7MUQ3RDM7MDAzNTswMDM1OworMUQ3RDQ7MUQ3RDQ7MUQ3RDQ7MDAzNjswMDM2OworMUQ3RDU7MUQ3RDU7MUQ3RDU7MDAzNzswMDM3OworMUQ3RDY7MUQ3RDY7MUQ3RDY7MDAzODswMDM4OworMUQ3RDc7MUQ3RDc7MUQ3RDc7MDAzOTswMDM5OworMUQ3RDg7MUQ3RDg7MUQ3RDg7MDAzMDswMDMwOworMUQ3RDk7MUQ3RDk7MUQ3RDk7MDAzMTswMDMxOworMUQ3REE7MUQ3REE7MUQ3REE7MDAzMjswMDMyOworMUQ3REI7MUQ3REI7MUQ3REI7MDAzMzswMDMzOworMUQ3REM7MUQ3REM7MUQ3REM7MDAzNDswMDM0OworMUQ3REQ7MUQ3REQ7MUQ3REQ7MDAzNTswMDM1OworMUQ3REU7MUQ3REU7MUQ3REU7MDAzNjswMDM2OworMUQ3REY7MUQ3REY7MUQ3REY7MDAzNzswMDM3OworMUQ3RTA7MUQ3RTA7MUQ3RTA7MDAzODswMDM4OworMUQ3RTE7MUQ3RTE7MUQ3RTE7MDAzOTswMDM5OworMUQ3RTI7MUQ3RTI7MUQ3RTI7MDAzMDswMDMwOworMUQ3RTM7MUQ3RTM7MUQ3RTM7MDAzMTswMDMxOworMUQ3RTQ7MUQ3RTQ7MUQ3RTQ7MDAzMjswMDMyOworMUQ3RTU7MUQ3RTU7MUQ3RTU7MDAzMzswMDMzOworMUQ3RTY7MUQ3RTY7MUQ3RTY7MDAzNDswMDM0OworMUQ3RTc7MUQ3RTc7MUQ3RTc7MDAzNTswMDM1OworMUQ3RTg7MUQ3RTg7MUQ3RTg7MDAzNjswMDM2OworMUQ3RTk7MUQ3RTk7MUQ3RTk7MDAzNzswMDM3OworMUQ3RUE7MUQ3RUE7MUQ3RUE7MDAzODswMDM4OworMUQ3RUI7MUQ3RUI7MUQ3RUI7MDAzOTswMDM5OworMUQ3RUM7MUQ3RUM7MUQ3RUM7MDAzMDswMDMwOworMUQ3RUQ7MUQ3RUQ7MUQ3RUQ7MDAzMTswMDMxOworMUQ3RUU7MUQ3RUU7MUQ3RUU7MDAzMjswMDMyOworMUQ3RUY7MUQ3RUY7MUQ3RUY7MDAzMzswMDMzOworMUQ3RjA7MUQ3RjA7MUQ3RjA7MDAzNDswMDM0OworMUQ3RjE7MUQ3RjE7MUQ3RjE7MDAzNTswMDM1OworMUQ3RjI7MUQ3RjI7MUQ3RjI7MDAzNjswMDM2OworMUQ3RjM7MUQ3RjM7MUQ3RjM7MDAzNzswMDM3OworMUQ3RjQ7MUQ3RjQ7MUQ3RjQ7MDAzODswMDM4OworMUQ3RjU7MUQ3RjU7MUQ3RjU7MDAzOTswMDM5OworMUQ3RjY7MUQ3RjY7MUQ3RjY7MDAzMDswMDMwOworMUQ3Rjc7MUQ3Rjc7MUQ3Rjc7MDAzMTswMDMxOworMUQ3Rjg7MUQ3Rjg7MUQ3Rjg7MDAzMjswMDMyOworMUQ3Rjk7MUQ3Rjk7MUQ3Rjk7MDAzMzswMDMzOworMUQ3RkE7MUQ3RkE7MUQ3RkE7MDAzNDswMDM0OworMUQ3RkI7MUQ3RkI7MUQ3RkI7MDAzNTswMDM1OworMUQ3RkM7MUQ3RkM7MUQ3RkM7MDAzNjswMDM2OworMUQ3RkQ7MUQ3RkQ7MUQ3RkQ7MDAzNzswMDM3OworMUQ3RkU7MUQ3RkU7MUQ3RkU7MDAzODswMDM4OworMUQ3RkY7MUQ3RkY7MUQ3RkY7MDAzOTswMDM5OworMkY4MDA7NEUzRDs0RTNEOzRFM0Q7NEUzRDsKKzJGODAxOzRFMzg7NEUzODs0RTM4OzRFMzg7CisyRjgwMjs0RTQxOzRFNDE7NEU0MTs0RTQxOworMkY4MDM7MjAxMjI7MjAxMjI7MjAxMjI7MjAxMjI7CisyRjgwNDs0RjYwOzRGNjA7NEY2MDs0RjYwOworMkY4MDU7NEZBRTs0RkFFOzRGQUU7NEZBRTsKKzJGODA2OzRGQkI7NEZCQjs0RkJCOzRGQkI7CisyRjgwNzs1MDAyOzUwMDI7NTAwMjs1MDAyOworMkY4MDg7NTA3QTs1MDdBOzUwN0E7NTA3QTsKKzJGODA5OzUwOTk7NTA5OTs1MDk5OzUwOTk7CisyRjgwQTs1MEU3OzUwRTc7NTBFNzs1MEU3OworMkY4MEI7NTBDRjs1MENGOzUwQ0Y7NTBDRjsKKzJGODBDOzM0OUU7MzQ5RTszNDlFOzM0OUU7CisyRjgwRDsyMDYzQTsyMDYzQTsyMDYzQTsyMDYzQTsKKzJGODBFOzUxNEQ7NTE0RDs1MTREOzUxNEQ7CisyRjgwRjs1MTU0OzUxNTQ7NTE1NDs1MTU0OworMkY4MTA7NTE2NDs1MTY0OzUxNjQ7NTE2NDsKKzJGODExOzUxNzc7NTE3Nzs1MTc3OzUxNzc7CisyRjgxMjsyMDUxQzsyMDUxQzsyMDUxQzsyMDUxQzsKKzJGODEzOzM0Qjk7MzRCOTszNEI5OzM0Qjk7CisyRjgxNDs1MTY3OzUxNjc7NTE2Nzs1MTY3OworMkY4MTU7NTE4RDs1MThEOzUxOEQ7NTE4RDsKKzJGODE2OzIwNTRCOzIwNTRCOzIwNTRCOzIwNTRCOworMkY4MTc7NTE5Nzs1MTk3OzUxOTc7NTE5NzsKKzJGODE4OzUxQTQ7NTFBNDs1MUE0OzUxQTQ7CisyRjgxOTs0RUNDOzRFQ0M7NEVDQzs0RUNDOworMkY4MUE7NTFBQzs1MUFDOzUxQUM7NTFBQzsKKzJGODFCOzUxQjU7NTFCNTs1MUI1OzUxQjU7CisyRjgxQzsyOTFERjsyOTFERjsyOTFERjsyOTFERjsKKzJGODFEOzUxRjU7NTFGNTs1MUY1OzUxRjU7CisyRjgxRTs1MjAzOzUyMDM7NTIwMzs1MjAzOworMkY4MUY7MzRERjszNERGOzM0REY7MzRERjsKKzJGODIwOzUyM0I7NTIzQjs1MjNCOzUyM0I7CisyRjgyMTs1MjQ2OzUyNDY7NTI0Njs1MjQ2OworMkY4MjI7NTI3Mjs1MjcyOzUyNzI7NTI3MjsKKzJGODIzOzUyNzc7NTI3Nzs1Mjc3OzUyNzc7CisyRjgyNDszNTE1OzM1MTU7MzUxNTszNTE1OworMkY4MjU7NTJDNzs1MkM3OzUyQzc7NTJDNzsKKzJGODI2OzUyQzk7NTJDOTs1MkM5OzUyQzk7CisyRjgyNzs1MkU0OzUyRTQ7NTJFNDs1MkU0OworMkY4Mjg7NTJGQTs1MkZBOzUyRkE7NTJGQTsKKzJGODI5OzUzMDU7NTMwNTs1MzA1OzUzMDU7CisyRjgyQTs1MzA2OzUzMDY7NTMwNjs1MzA2OworMkY4MkI7NTMxNzs1MzE3OzUzMTc7NTMxNzsKKzJGODJDOzUzNDk7NTM0OTs1MzQ5OzUzNDk7CisyRjgyRDs1MzUxOzUzNTE7NTM1MTs1MzUxOworMkY4MkU7NTM1QTs1MzVBOzUzNUE7NTM1QTsKKzJGODJGOzUzNzM7NTM3Mzs1MzczOzUzNzM7CisyRjgzMDs1MzdEOzUzN0Q7NTM3RDs1MzdEOworMkY4MzE7NTM3Rjs1MzdGOzUzN0Y7NTM3RjsKKzJGODMyOzUzN0Y7NTM3Rjs1MzdGOzUzN0Y7CisyRjgzMzs1MzdGOzUzN0Y7NTM3Rjs1MzdGOworMkY4MzQ7MjBBMkM7MjBBMkM7MjBBMkM7MjBBMkM7CisyRjgzNTs3MDcwOzcwNzA7NzA3MDs3MDcwOworMkY4MzY7NTNDQTs1M0NBOzUzQ0E7NTNDQTsKKzJGODM3OzUzREY7NTNERjs1M0RGOzUzREY7CisyRjgzODsyMEI2MzsyMEI2MzsyMEI2MzsyMEI2MzsKKzJGODM5OzUzRUI7NTNFQjs1M0VCOzUzRUI7CisyRjgzQTs1M0YxOzUzRjE7NTNGMTs1M0YxOworMkY4M0I7NTQwNjs1NDA2OzU0MDY7NTQwNjsKKzJGODNDOzU0OUU7NTQ5RTs1NDlFOzU0OUU7CisyRjgzRDs1NDM4OzU0Mzg7NTQzODs1NDM4OworMkY4M0U7NTQ0ODs1NDQ4OzU0NDg7NTQ0ODsKKzJGODNGOzU0Njg7NTQ2ODs1NDY4OzU0Njg7CisyRjg0MDs1NEEyOzU0QTI7NTRBMjs1NEEyOworMkY4NDE7NTRGNjs1NEY2OzU0RjY7NTRGNjsKKzJGODQyOzU1MTA7NTUxMDs1NTEwOzU1MTA7CisyRjg0Mzs1NTUzOzU1NTM7NTU1Mzs1NTUzOworMkY4NDQ7NTU2Mzs1NTYzOzU1NjM7NTU2MzsKKzJGODQ1OzU1ODQ7NTU4NDs1NTg0OzU1ODQ7CisyRjg0Njs1NTg0OzU1ODQ7NTU4NDs1NTg0OworMkY4NDc7NTU5OTs1NTk5OzU1OTk7NTU5OTsKKzJGODQ4OzU1QUI7NTVBQjs1NUFCOzU1QUI7CisyRjg0OTs1NUIzOzU1QjM7NTVCMzs1NUIzOworMkY4NEE7NTVDMjs1NUMyOzU1QzI7NTVDMjsKKzJGODRCOzU3MTY7NTcxNjs1NzE2OzU3MTY7CisyRjg0Qzs1NjA2OzU2MDY7NTYwNjs1NjA2OworMkY4NEQ7NTcxNzs1NzE3OzU3MTc7NTcxNzsKKzJGODRFOzU2NTE7NTY1MTs1NjUxOzU2NTE7CisyRjg0Rjs1Njc0OzU2NzQ7NTY3NDs1Njc0OworMkY4NTA7NTIwNzs1MjA3OzUyMDc7NTIwNzsKKzJGODUxOzU4RUU7NThFRTs1OEVFOzU4RUU7CisyRjg1Mjs1N0NFOzU3Q0U7NTdDRTs1N0NFOworMkY4NTM7NTdGNDs1N0Y0OzU3RjQ7NTdGNDsKKzJGODU0OzU4MEQ7NTgwRDs1ODBEOzU4MEQ7CisyRjg1NTs1NzhCOzU3OEI7NTc4Qjs1NzhCOworMkY4NTY7NTgzMjs1ODMyOzU4MzI7NTgzMjsKKzJGODU3OzU4MzE7NTgzMTs1ODMxOzU4MzE7CisyRjg1ODs1OEFDOzU4QUM7NThBQzs1OEFDOworMkY4NTk7MjE0RTQ7MjE0RTQ7MjE0RTQ7MjE0RTQ7CisyRjg1QTs1OEYyOzU4RjI7NThGMjs1OEYyOworMkY4NUI7NThGNzs1OEY3OzU4Rjc7NThGNzsKKzJGODVDOzU5MDY7NTkwNjs1OTA2OzU5MDY7CisyRjg1RDs1OTFBOzU5MUE7NTkxQTs1OTFBOworMkY4NUU7NTkyMjs1OTIyOzU5MjI7NTkyMjsKKzJGODVGOzU5NjI7NTk2Mjs1OTYyOzU5NjI7CisyRjg2MDsyMTZBODsyMTZBODsyMTZBODsyMTZBODsKKzJGODYxOzIxNkVBOzIxNkVBOzIxNkVBOzIxNkVBOworMkY4NjI7NTlFQzs1OUVDOzU5RUM7NTlFQzsKKzJGODYzOzVBMUI7NUExQjs1QTFCOzVBMUI7CisyRjg2NDs1QTI3OzVBMjc7NUEyNzs1QTI3OworMkY4NjU7NTlEODs1OUQ4OzU5RDg7NTlEODsKKzJGODY2OzVBNjY7NUE2Njs1QTY2OzVBNjY7CisyRjg2NzszNkVFOzM2RUU7MzZFRTszNkVFOworMkY4Njg7MzZGQzszNkZDOzM2RkM7MzZGQzsKKzJGODY5OzVCMDg7NUIwODs1QjA4OzVCMDg7CisyRjg2QTs1QjNFOzVCM0U7NUIzRTs1QjNFOworMkY4NkI7NUIzRTs1QjNFOzVCM0U7NUIzRTsKKzJGODZDOzIxOUM4OzIxOUM4OzIxOUM4OzIxOUM4OworMkY4NkQ7NUJDMzs1QkMzOzVCQzM7NUJDMzsKKzJGODZFOzVCRDg7NUJEODs1QkQ4OzVCRDg7CisyRjg2Rjs1QkU3OzVCRTc7NUJFNzs1QkU3OworMkY4NzA7NUJGMzs1QkYzOzVCRjM7NUJGMzsKKzJGODcxOzIxQjE4OzIxQjE4OzIxQjE4OzIxQjE4OworMkY4NzI7NUJGRjs1QkZGOzVCRkY7NUJGRjsKKzJGODczOzVDMDY7NUMwNjs1QzA2OzVDMDY7CisyRjg3NDs1RjUzOzVGNTM7NUY1Mzs1RjUzOworMkY4NzU7NUMyMjs1QzIyOzVDMjI7NUMyMjsKKzJGODc2OzM3ODE7Mzc4MTszNzgxOzM3ODE7CisyRjg3Nzs1QzYwOzVDNjA7NUM2MDs1QzYwOworMkY4Nzg7NUM2RTs1QzZFOzVDNkU7NUM2RTsKKzJGODc5OzVDQzA7NUNDMDs1Q0MwOzVDQzA7CisyRjg3QTs1QzhEOzVDOEQ7NUM4RDs1QzhEOworMkY4N0I7MjFERTQ7MjFERTQ7MjFERTQ7MjFERTQ7CisyRjg3Qzs1RDQzOzVENDM7NUQ0Mzs1RDQzOworMkY4N0Q7MjFERTY7MjFERTY7MjFERTY7MjFERTY7CisyRjg3RTs1RDZFOzVENkU7NUQ2RTs1RDZFOworMkY4N0Y7NUQ2Qjs1RDZCOzVENkI7NUQ2QjsKKzJGODgwOzVEN0M7NUQ3Qzs1RDdDOzVEN0M7CisyRjg4MTs1REUxOzVERTE7NURFMTs1REUxOworMkY4ODI7NURFMjs1REUyOzVERTI7NURFMjsKKzJGODgzOzM4MkY7MzgyRjszODJGOzM4MkY7CisyRjg4NDs1REZEOzVERkQ7NURGRDs1REZEOworMkY4ODU7NUUyODs1RTI4OzVFMjg7NUUyODsKKzJGODg2OzVFM0Q7NUUzRDs1RTNEOzVFM0Q7CisyRjg4Nzs1RTY5OzVFNjk7NUU2OTs1RTY5OworMkY4ODg7Mzg2MjszODYyOzM4NjI7Mzg2MjsKKzJGODg5OzIyMTgzOzIyMTgzOzIyMTgzOzIyMTgzOworMkY4OEE7Mzg3QzszODdDOzM4N0M7Mzg3QzsKKzJGODhCOzVFQjA7NUVCMDs1RUIwOzVFQjA7CisyRjg4Qzs1RUIzOzVFQjM7NUVCMzs1RUIzOworMkY4OEQ7NUVCNjs1RUI2OzVFQjY7NUVCNjsKKzJGODhFOzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CisyRjg4RjsyQTM5MjsyQTM5MjsyQTM5MjsyQTM5MjsKKzJGODkwOzVFRkU7NUVGRTs1RUZFOzVFRkU7CisyRjg5MTsyMjMzMTsyMjMzMTsyMjMzMTsyMjMzMTsKKzJGODkyOzIyMzMxOzIyMzMxOzIyMzMxOzIyMzMxOworMkY4OTM7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGODk0OzVGMjI7NUYyMjs1RjIyOzVGMjI7CisyRjg5NTs1RjIyOzVGMjI7NUYyMjs1RjIyOworMkY4OTY7MzhDNzszOEM3OzM4Qzc7MzhDNzsKKzJGODk3OzIzMkI4OzIzMkI4OzIzMkI4OzIzMkI4OworMkY4OTg7MjYxREE7MjYxREE7MjYxREE7MjYxREE7CisyRjg5OTs1RjYyOzVGNjI7NUY2Mjs1RjYyOworMkY4OUE7NUY2Qjs1RjZCOzVGNkI7NUY2QjsKKzJGODlCOzM4RTM7MzhFMzszOEUzOzM4RTM7CisyRjg5Qzs1RjlBOzVGOUE7NUY5QTs1RjlBOworMkY4OUQ7NUZDRDs1RkNEOzVGQ0Q7NUZDRDsKKzJGODlFOzVGRDc7NUZENzs1RkQ3OzVGRDc7CisyRjg5Rjs1RkY5OzVGRjk7NUZGOTs1RkY5OworMkY4QTA7NjA4MTs2MDgxOzYwODE7NjA4MTsKKzJGOEExOzM5M0E7MzkzQTszOTNBOzM5M0E7CisyRjhBMjszOTFDOzM5MUM7MzkxQzszOTFDOworMkY4QTM7NjA5NDs2MDk0OzYwOTQ7NjA5NDsKKzJGOEE0OzIyNkQ0OzIyNkQ0OzIyNkQ0OzIyNkQ0OworMkY4QTU7NjBDNzs2MEM3OzYwQzc7NjBDNzsKKzJGOEE2OzYxNDg7NjE0ODs2MTQ4OzYxNDg7CisyRjhBNzs2MTRDOzYxNEM7NjE0Qzs2MTRDOworMkY4QTg7NjE0RTs2MTRFOzYxNEU7NjE0RTsKKzJGOEE5OzYxNEM7NjE0Qzs2MTRDOzYxNEM7CisyRjhBQTs2MTdBOzYxN0E7NjE3QTs2MTdBOworMkY4QUI7NjE4RTs2MThFOzYxOEU7NjE4RTsKKzJGOEFDOzYxQjI7NjFCMjs2MUIyOzYxQjI7CisyRjhBRDs2MUE0OzYxQTQ7NjFBNDs2MUE0OworMkY4QUU7NjFBRjs2MUFGOzYxQUY7NjFBRjsKKzJGOEFGOzYxREU7NjFERTs2MURFOzYxREU7CisyRjhCMDs2MUYyOzYxRjI7NjFGMjs2MUYyOworMkY4QjE7NjFGNjs2MUY2OzYxRjY7NjFGNjsKKzJGOEIyOzYyMTA7NjIxMDs2MjEwOzYyMTA7CisyRjhCMzs2MjFCOzYyMUI7NjIxQjs2MjFCOworMkY4QjQ7NjI1RDs2MjVEOzYyNUQ7NjI1RDsKKzJGOEI1OzYyQjE7NjJCMTs2MkIxOzYyQjE7CisyRjhCNjs2MkQ0OzYyRDQ7NjJENDs2MkQ0OworMkY4Qjc7NjM1MDs2MzUwOzYzNTA7NjM1MDsKKzJGOEI4OzIyQjBDOzIyQjBDOzIyQjBDOzIyQjBDOworMkY4Qjk7NjMzRDs2MzNEOzYzM0Q7NjMzRDsKKzJGOEJBOzYyRkM7NjJGQzs2MkZDOzYyRkM7CisyRjhCQjs2MzY4OzYzNjg7NjM2ODs2MzY4OworMkY4QkM7NjM4Mzs2MzgzOzYzODM7NjM4MzsKKzJGOEJEOzYzRTQ7NjNFNDs2M0U0OzYzRTQ7CisyRjhCRTsyMkJGMTsyMkJGMTsyMkJGMTsyMkJGMTsKKzJGOEJGOzY0MjI7NjQyMjs2NDIyOzY0MjI7CisyRjhDMDs2M0M1OzYzQzU7NjNDNTs2M0M1OworMkY4QzE7NjNBOTs2M0E5OzYzQTk7NjNBOTsKKzJGOEMyOzNBMkU7M0EyRTszQTJFOzNBMkU7CisyRjhDMzs2NDY5OzY0Njk7NjQ2OTs2NDY5OworMkY4QzQ7NjQ3RTs2NDdFOzY0N0U7NjQ3RTsKKzJGOEM1OzY0OUQ7NjQ5RDs2NDlEOzY0OUQ7CisyRjhDNjs2NDc3OzY0Nzc7NjQ3Nzs2NDc3OworMkY4Qzc7M0E2QzszQTZDOzNBNkM7M0E2QzsKKzJGOEM4OzY1NEY7NjU0Rjs2NTRGOzY1NEY7CisyRjhDOTs2NTZDOzY1NkM7NjU2Qzs2NTZDOworMkY4Q0E7MjMwMEE7MjMwMEE7MjMwMEE7MjMwMEE7CisyRjhDQjs2NUUzOzY1RTM7NjVFMzs2NUUzOworMkY4Q0M7NjZGODs2NkY4OzY2Rjg7NjZGODsKKzJGOENEOzY2NDk7NjY0OTs2NjQ5OzY2NDk7CisyRjhDRTszQjE5OzNCMTk7M0IxOTszQjE5OworMkY4Q0Y7NjY5MTs2NjkxOzY2OTE7NjY5MTsKKzJGOEQwOzNCMDg7M0IwODszQjA4OzNCMDg7CisyRjhEMTszQUU0OzNBRTQ7M0FFNDszQUU0OworMkY4RDI7NTE5Mjs1MTkyOzUxOTI7NTE5MjsKKzJGOEQzOzUxOTU7NTE5NTs1MTk1OzUxOTU7CisyRjhENDs2NzAwOzY3MDA7NjcwMDs2NzAwOworMkY4RDU7NjY5Qzs2NjlDOzY2OUM7NjY5QzsKKzJGOEQ2OzgwQUQ7ODBBRDs4MEFEOzgwQUQ7CisyRjhENzs0M0Q5OzQzRDk7NDNEOTs0M0Q5OworMkY4RDg7NjcxNzs2NzE3OzY3MTc7NjcxNzsKKzJGOEQ5OzY3MUI7NjcxQjs2NzFCOzY3MUI7CisyRjhEQTs2NzIxOzY3MjE7NjcyMTs2NzIxOworMkY4REI7Njc1RTs2NzVFOzY3NUU7Njc1RTsKKzJGOERDOzY3NTM7Njc1Mzs2NzUzOzY3NTM7CisyRjhERDsyMzNDMzsyMzNDMzsyMzNDMzsyMzNDMzsKKzJGOERFOzNCNDk7M0I0OTszQjQ5OzNCNDk7CisyRjhERjs2N0ZBOzY3RkE7NjdGQTs2N0ZBOworMkY4RTA7Njc4NTs2Nzg1OzY3ODU7Njc4NTsKKzJGOEUxOzY4NTI7Njg1Mjs2ODUyOzY4NTI7CisyRjhFMjs2ODg1OzY4ODU7Njg4NTs2ODg1OworMkY4RTM7MjM0NkQ7MjM0NkQ7MjM0NkQ7MjM0NkQ7CisyRjhFNDs2ODhFOzY4OEU7Njg4RTs2ODhFOworMkY4RTU7NjgxRjs2ODFGOzY4MUY7NjgxRjsKKzJGOEU2OzY5MTQ7NjkxNDs2OTE0OzY5MTQ7CisyRjhFNzszQjlEOzNCOUQ7M0I5RDszQjlEOworMkY4RTg7Njk0Mjs2OTQyOzY5NDI7Njk0MjsKKzJGOEU5OzY5QTM7NjlBMzs2OUEzOzY5QTM7CisyRjhFQTs2OUVBOzY5RUE7NjlFQTs2OUVBOworMkY4RUI7NkFBODs2QUE4OzZBQTg7NkFBODsKKzJGOEVDOzIzNkEzOzIzNkEzOzIzNkEzOzIzNkEzOworMkY4RUQ7NkFEQjs2QURCOzZBREI7NkFEQjsKKzJGOEVFOzNDMTg7M0MxODszQzE4OzNDMTg7CisyRjhFRjs2QjIxOzZCMjE7NkIyMTs2QjIxOworMkY4RjA7MjM4QTc7MjM4QTc7MjM4QTc7MjM4QTc7CisyRjhGMTs2QjU0OzZCNTQ7NkI1NDs2QjU0OworMkY4RjI7M0M0RTszQzRFOzNDNEU7M0M0RTsKKzJGOEYzOzZCNzI7NkI3Mjs2QjcyOzZCNzI7CisyRjhGNDs2QjlGOzZCOUY7NkI5Rjs2QjlGOworMkY4RjU7NkJCQTs2QkJBOzZCQkE7NkJCQTsKKzJGOEY2OzZCQkI7NkJCQjs2QkJCOzZCQkI7CisyRjhGNzsyM0E4RDsyM0E4RDsyM0E4RDsyM0E4RDsKKzJGOEY4OzIxRDBCOzIxRDBCOzIxRDBCOzIxRDBCOworMkY4Rjk7MjNBRkE7MjNBRkE7MjNBRkE7MjNBRkE7CisyRjhGQTs2QzRFOzZDNEU7NkM0RTs2QzRFOworMkY4RkI7MjNDQkM7MjNDQkM7MjNDQkM7MjNDQkM7CisyRjhGQzs2Q0JGOzZDQkY7NkNCRjs2Q0JGOworMkY4RkQ7NkNDRDs2Q0NEOzZDQ0Q7NkNDRDsKKzJGOEZFOzZDNjc7NkM2Nzs2QzY3OzZDNjc7CisyRjhGRjs2RDE2OzZEMTY7NkQxNjs2RDE2OworMkY5MDA7NkQzRTs2RDNFOzZEM0U7NkQzRTsKKzJGOTAxOzZENzc7NkQ3Nzs2RDc3OzZENzc7CisyRjkwMjs2RDQxOzZENDE7NkQ0MTs2RDQxOworMkY5MDM7NkQ2OTs2RDY5OzZENjk7NkQ2OTsKKzJGOTA0OzZENzg7NkQ3ODs2RDc4OzZENzg7CisyRjkwNTs2RDg1OzZEODU7NkQ4NTs2RDg1OworMkY5MDY7MjNEMUU7MjNEMUU7MjNEMUU7MjNEMUU7CisyRjkwNzs2RDM0OzZEMzQ7NkQzNDs2RDM0OworMkY5MDg7NkUyRjs2RTJGOzZFMkY7NkUyRjsKKzJGOTA5OzZFNkU7NkU2RTs2RTZFOzZFNkU7CisyRjkwQTszRDMzOzNEMzM7M0QzMzszRDMzOworMkY5MEI7NkVDQjs2RUNCOzZFQ0I7NkVDQjsKKzJGOTBDOzZFQzc7NkVDNzs2RUM3OzZFQzc7CisyRjkwRDsyM0VEMTsyM0VEMTsyM0VEMTsyM0VEMTsKKzJGOTBFOzZERjk7NkRGOTs2REY5OzZERjk7CisyRjkwRjs2RjZFOzZGNkU7NkY2RTs2RjZFOworMkY5MTA7MjNGNUU7MjNGNUU7MjNGNUU7MjNGNUU7CisyRjkxMTsyM0Y4RTsyM0Y4RTsyM0Y4RTsyM0Y4RTsKKzJGOTEyOzZGQzY7NkZDNjs2RkM2OzZGQzY7CisyRjkxMzs3MDM5OzcwMzk7NzAzOTs3MDM5OworMkY5MTQ7NzAxRTs3MDFFOzcwMUU7NzAxRTsKKzJGOTE1OzcwMUI7NzAxQjs3MDFCOzcwMUI7CisyRjkxNjszRDk2OzNEOTY7M0Q5NjszRDk2OworMkY5MTc7NzA0QTs3MDRBOzcwNEE7NzA0QTsKKzJGOTE4OzcwN0Q7NzA3RDs3MDdEOzcwN0Q7CisyRjkxOTs3MDc3OzcwNzc7NzA3Nzs3MDc3OworMkY5MUE7NzBBRDs3MEFEOzcwQUQ7NzBBRDsKKzJGOTFCOzIwNTI1OzIwNTI1OzIwNTI1OzIwNTI1OworMkY5MUM7NzE0NTs3MTQ1OzcxNDU7NzE0NTsKKzJGOTFEOzI0MjYzOzI0MjYzOzI0MjYzOzI0MjYzOworMkY5MUU7NzE5Qzs3MTlDOzcxOUM7NzE5QzsKKzJGOTFGOzI0M0FCOzI0M0FCOzI0M0FCOzI0M0FCOworMkY5MjA7NzIyODs3MjI4OzcyMjg7NzIyODsKKzJGOTIxOzcyMzU7NzIzNTs3MjM1OzcyMzU7CisyRjkyMjs3MjUwOzcyNTA7NzI1MDs3MjUwOworMkY5MjM7MjQ2MDg7MjQ2MDg7MjQ2MDg7MjQ2MDg7CisyRjkyNDs3MjgwOzcyODA7NzI4MDs3MjgwOworMkY5MjU7NzI5NTs3Mjk1OzcyOTU7NzI5NTsKKzJGOTI2OzI0NzM1OzI0NzM1OzI0NzM1OzI0NzM1OworMkY5Mjc7MjQ4MTQ7MjQ4MTQ7MjQ4MTQ7MjQ4MTQ7CisyRjkyODs3MzdBOzczN0E7NzM3QTs3MzdBOworMkY5Mjk7NzM4Qjs3MzhCOzczOEI7NzM4QjsKKzJGOTJBOzNFQUM7M0VBQzszRUFDOzNFQUM7CisyRjkyQjs3M0E1OzczQTU7NzNBNTs3M0E1OworMkY5MkM7M0VCODszRUI4OzNFQjg7M0VCODsKKzJGOTJEOzNFQjg7M0VCODszRUI4OzNFQjg7CisyRjkyRTs3NDQ3Ozc0NDc7NzQ0Nzs3NDQ3OworMkY5MkY7NzQ1Qzs3NDVDOzc0NUM7NzQ1QzsKKzJGOTMwOzc0NzE7NzQ3MTs3NDcxOzc0NzE7CisyRjkzMTs3NDg1Ozc0ODU7NzQ4NTs3NDg1OworMkY5MzI7NzRDQTs3NENBOzc0Q0E7NzRDQTsKKzJGOTMzOzNGMUI7M0YxQjszRjFCOzNGMUI7CisyRjkzNDs3NTI0Ozc1MjQ7NzUyNDs3NTI0OworMkY5MzU7MjRDMzY7MjRDMzY7MjRDMzY7MjRDMzY7CisyRjkzNjs3NTNFOzc1M0U7NzUzRTs3NTNFOworMkY5Mzc7MjRDOTI7MjRDOTI7MjRDOTI7MjRDOTI7CisyRjkzODs3NTcwOzc1NzA7NzU3MDs3NTcwOworMkY5Mzk7MjIxOUY7MjIxOUY7MjIxOUY7MjIxOUY7CisyRjkzQTs3NjEwOzc2MTA7NzYxMDs3NjEwOworMkY5M0I7MjRGQTE7MjRGQTE7MjRGQTE7MjRGQTE7CisyRjkzQzsyNEZCODsyNEZCODsyNEZCODsyNEZCODsKKzJGOTNEOzI1MDQ0OzI1MDQ0OzI1MDQ0OzI1MDQ0OworMkY5M0U7M0ZGQzszRkZDOzNGRkM7M0ZGQzsKKzJGOTNGOzQwMDg7NDAwODs0MDA4OzQwMDg7CisyRjk0MDs3NkY0Ozc2RjQ7NzZGNDs3NkY0OworMkY5NDE7MjUwRjM7MjUwRjM7MjUwRjM7MjUwRjM7CisyRjk0MjsyNTBGMjsyNTBGMjsyNTBGMjsyNTBGMjsKKzJGOTQzOzI1MTE5OzI1MTE5OzI1MTE5OzI1MTE5OworMkY5NDQ7MjUxMzM7MjUxMzM7MjUxMzM7MjUxMzM7CisyRjk0NTs3NzFFOzc3MUU7NzcxRTs3NzFFOworMkY5NDY7NzcxRjs3NzFGOzc3MUY7NzcxRjsKKzJGOTQ3Ozc3MUY7NzcxRjs3NzFGOzc3MUY7CisyRjk0ODs3NzRBOzc3NEE7Nzc0QTs3NzRBOworMkY5NDk7NDAzOTs0MDM5OzQwMzk7NDAzOTsKKzJGOTRBOzc3OEI7Nzc4Qjs3NzhCOzc3OEI7CisyRjk0Qjs0MDQ2OzQwNDY7NDA0Njs0MDQ2OworMkY5NEM7NDA5Njs0MDk2OzQwOTY7NDA5NjsKKzJGOTREOzI1NDFEOzI1NDFEOzI1NDFEOzI1NDFEOworMkY5NEU7Nzg0RTs3ODRFOzc4NEU7Nzg0RTsKKzJGOTRGOzc4OEM7Nzg4Qzs3ODhDOzc4OEM7CisyRjk1MDs3OENDOzc4Q0M7NzhDQzs3OENDOworMkY5NTE7NDBFMzs0MEUzOzQwRTM7NDBFMzsKKzJGOTUyOzI1NjI2OzI1NjI2OzI1NjI2OzI1NjI2OworMkY5NTM7Nzk1Njs3OTU2Ozc5NTY7Nzk1NjsKKzJGOTU0OzI1NjlBOzI1NjlBOzI1NjlBOzI1NjlBOworMkY5NTU7MjU2QzU7MjU2QzU7MjU2QzU7MjU2QzU7CisyRjk1Njs3OThGOzc5OEY7Nzk4Rjs3OThGOworMkY5NTc7NzlFQjs3OUVCOzc5RUI7NzlFQjsKKzJGOTU4OzQxMkY7NDEyRjs0MTJGOzQxMkY7CisyRjk1OTs3QTQwOzdBNDA7N0E0MDs3QTQwOworMkY5NUE7N0E0QTs3QTRBOzdBNEE7N0E0QTsKKzJGOTVCOzdBNEY7N0E0Rjs3QTRGOzdBNEY7CisyRjk1QzsyNTk3QzsyNTk3QzsyNTk3QzsyNTk3QzsKKzJGOTVEOzI1QUE3OzI1QUE3OzI1QUE3OzI1QUE3OworMkY5NUU7MjVBQTc7MjVBQTc7MjVBQTc7MjVBQTc7CisyRjk1Rjs3QUVFOzdBRUU7N0FFRTs3QUVFOworMkY5NjA7NDIwMjs0MjAyOzQyMDI7NDIwMjsKKzJGOTYxOzI1QkFCOzI1QkFCOzI1QkFCOzI1QkFCOworMkY5NjI7N0JDNjs3QkM2OzdCQzY7N0JDNjsKKzJGOTYzOzdCQzk7N0JDOTs3QkM5OzdCQzk7CisyRjk2NDs0MjI3OzQyMjc7NDIyNzs0MjI3OworMkY5NjU7MjVDODA7MjVDODA7MjVDODA7MjVDODA7CisyRjk2Njs3Q0QyOzdDRDI7N0NEMjs3Q0QyOworMkY5Njc7NDJBMDs0MkEwOzQyQTA7NDJBMDsKKzJGOTY4OzdDRTg7N0NFODs3Q0U4OzdDRTg7CisyRjk2OTs3Q0UzOzdDRTM7N0NFMzs3Q0UzOworMkY5NkE7N0QwMDs3RDAwOzdEMDA7N0QwMDsKKzJGOTZCOzI1Rjg2OzI1Rjg2OzI1Rjg2OzI1Rjg2OworMkY5NkM7N0Q2Mzs3RDYzOzdENjM7N0Q2MzsKKzJGOTZEOzQzMDE7NDMwMTs0MzAxOzQzMDE7CisyRjk2RTs3REM3OzdEQzc7N0RDNzs3REM3OworMkY5NkY7N0UwMjs3RTAyOzdFMDI7N0UwMjsKKzJGOTcwOzdFNDU7N0U0NTs3RTQ1OzdFNDU7CisyRjk3MTs0MzM0OzQzMzQ7NDMzNDs0MzM0OworMkY5NzI7MjYyMjg7MjYyMjg7MjYyMjg7MjYyMjg7CisyRjk3MzsyNjI0NzsyNjI0NzsyNjI0NzsyNjI0NzsKKzJGOTc0OzQzNTk7NDM1OTs0MzU5OzQzNTk7CisyRjk3NTsyNjJEOTsyNjJEOTsyNjJEOTsyNjJEOTsKKzJGOTc2OzdGN0E7N0Y3QTs3RjdBOzdGN0E7CisyRjk3NzsyNjMzRTsyNjMzRTsyNjMzRTsyNjMzRTsKKzJGOTc4OzdGOTU7N0Y5NTs3Rjk1OzdGOTU7CisyRjk3OTs3RkZBOzdGRkE7N0ZGQTs3RkZBOworMkY5N0E7ODAwNTs4MDA1OzgwMDU7ODAwNTsKKzJGOTdCOzI2NERBOzI2NERBOzI2NERBOzI2NERBOworMkY5N0M7MjY1MjM7MjY1MjM7MjY1MjM7MjY1MjM7CisyRjk3RDs4MDYwOzgwNjA7ODA2MDs4MDYwOworMkY5N0U7MjY1QTg7MjY1QTg7MjY1QTg7MjY1QTg7CisyRjk3Rjs4MDcwOzgwNzA7ODA3MDs4MDcwOworMkY5ODA7MjMzNUY7MjMzNUY7MjMzNUY7MjMzNUY7CisyRjk4MTs0M0Q1OzQzRDU7NDNENTs0M0Q1OworMkY5ODI7ODBCMjs4MEIyOzgwQjI7ODBCMjsKKzJGOTgzOzgxMDM7ODEwMzs4MTAzOzgxMDM7CisyRjk4NDs0NDBCOzQ0MEI7NDQwQjs0NDBCOworMkY5ODU7ODEzRTs4MTNFOzgxM0U7ODEzRTsKKzJGOTg2OzVBQjU7NUFCNTs1QUI1OzVBQjU7CisyRjk4NzsyNjdBNzsyNjdBNzsyNjdBNzsyNjdBNzsKKzJGOTg4OzI2N0I1OzI2N0I1OzI2N0I1OzI2N0I1OworMkY5ODk7MjMzOTM7MjMzOTM7MjMzOTM7MjMzOTM7CisyRjk4QTsyMzM5QzsyMzM5QzsyMzM5QzsyMzM5QzsKKzJGOThCOzgyMDE7ODIwMTs4MjAxOzgyMDE7CisyRjk4Qzs4MjA0OzgyMDQ7ODIwNDs4MjA0OworMkY5OEQ7OEY5RTs4RjlFOzhGOUU7OEY5RTsKKzJGOThFOzQ0NkI7NDQ2Qjs0NDZCOzQ0NkI7CisyRjk4Rjs4MjkxOzgyOTE7ODI5MTs4MjkxOworMkY5OTA7ODI4Qjs4MjhCOzgyOEI7ODI4QjsKKzJGOTkxOzgyOUQ7ODI5RDs4MjlEOzgyOUQ7CisyRjk5Mjs1MkIzOzUyQjM7NTJCMzs1MkIzOworMkY5OTM7ODJCMTs4MkIxOzgyQjE7ODJCMTsKKzJGOTk0OzgyQjM7ODJCMzs4MkIzOzgyQjM7CisyRjk5NTs4MkJEOzgyQkQ7ODJCRDs4MkJEOworMkY5OTY7ODJFNjs4MkU2OzgyRTY7ODJFNjsKKzJGOTk3OzI2QjNDOzI2QjNDOzI2QjNDOzI2QjNDOworMkY5OTg7ODJFNTs4MkU1OzgyRTU7ODJFNTsKKzJGOTk5OzgzMUQ7ODMxRDs4MzFEOzgzMUQ7CisyRjk5QTs4MzYzOzgzNjM7ODM2Mzs4MzYzOworMkY5OUI7ODNBRDs4M0FEOzgzQUQ7ODNBRDsKKzJGOTlDOzgzMjM7ODMyMzs4MzIzOzgzMjM7CisyRjk5RDs4M0JEOzgzQkQ7ODNCRDs4M0JEOworMkY5OUU7ODNFNzs4M0U3OzgzRTc7ODNFNzsKKzJGOTlGOzg0NTc7ODQ1Nzs4NDU3Ozg0NTc7CisyRjlBMDs4MzUzOzgzNTM7ODM1Mzs4MzUzOworMkY5QTE7ODNDQTs4M0NBOzgzQ0E7ODNDQTsKKzJGOUEyOzgzQ0M7ODNDQzs4M0NDOzgzQ0M7CisyRjlBMzs4M0RDOzgzREM7ODNEQzs4M0RDOworMkY5QTQ7MjZDMzY7MjZDMzY7MjZDMzY7MjZDMzY7CisyRjlBNTsyNkQ2QjsyNkQ2QjsyNkQ2QjsyNkQ2QjsKKzJGOUE2OzI2Q0Q1OzI2Q0Q1OzI2Q0Q1OzI2Q0Q1OworMkY5QTc7NDUyQjs0NTJCOzQ1MkI7NDUyQjsKKzJGOUE4Ozg0RjE7ODRGMTs4NEYxOzg0RjE7CisyRjlBOTs4NEYzOzg0RjM7ODRGMzs4NEYzOworMkY5QUE7ODUxNjs4NTE2Ozg1MTY7ODUxNjsKKzJGOUFCOzI3M0NBOzI3M0NBOzI3M0NBOzI3M0NBOworMkY5QUM7ODU2NDs4NTY0Ozg1NjQ7ODU2NDsKKzJGOUFEOzI2RjJDOzI2RjJDOzI2RjJDOzI2RjJDOworMkY5QUU7NDU1RDs0NTVEOzQ1NUQ7NDU1RDsKKzJGOUFGOzQ1NjE7NDU2MTs0NTYxOzQ1NjE7CisyRjlCMDsyNkZCMTsyNkZCMTsyNkZCMTsyNkZCMTsKKzJGOUIxOzI3MEQyOzI3MEQyOzI3MEQyOzI3MEQyOworMkY5QjI7NDU2Qjs0NTZCOzQ1NkI7NDU2QjsKKzJGOUIzOzg2NTA7ODY1MDs4NjUwOzg2NTA7CisyRjlCNDs4NjVDOzg2NUM7ODY1Qzs4NjVDOworMkY5QjU7ODY2Nzs4NjY3Ozg2Njc7ODY2NzsKKzJGOUI2Ozg2Njk7ODY2OTs4NjY5Ozg2Njk7CisyRjlCNzs4NkE5Ozg2QTk7ODZBOTs4NkE5OworMkY5Qjg7ODY4ODs4Njg4Ozg2ODg7ODY4ODsKKzJGOUI5Ozg3MEU7ODcwRTs4NzBFOzg3MEU7CisyRjlCQTs4NkUyOzg2RTI7ODZFMjs4NkUyOworMkY5QkI7ODc3OTs4Nzc5Ozg3Nzk7ODc3OTsKKzJGOUJDOzg3Mjg7ODcyODs4NzI4Ozg3Mjg7CisyRjlCRDs4NzZCOzg3NkI7ODc2Qjs4NzZCOworMkY5QkU7ODc4Njs4Nzg2Ozg3ODY7ODc4NjsKKzJGOUJGOzQ1RDc7NDVENzs0NUQ3OzQ1RDc7CisyRjlDMDs4N0UxOzg3RTE7ODdFMTs4N0UxOworMkY5QzE7ODgwMTs4ODAxOzg4MDE7ODgwMTsKKzJGOUMyOzQ1Rjk7NDVGOTs0NUY5OzQ1Rjk7CisyRjlDMzs4ODYwOzg4NjA7ODg2MDs4ODYwOworMkY5QzQ7ODg2Mzs4ODYzOzg4NjM7ODg2MzsKKzJGOUM1OzI3NjY3OzI3NjY3OzI3NjY3OzI3NjY3OworMkY5QzY7ODhENzs4OEQ3Ozg4RDc7ODhENzsKKzJGOUM3Ozg4REU7ODhERTs4OERFOzg4REU7CisyRjlDODs0NjM1OzQ2MzU7NDYzNTs0NjM1OworMkY5Qzk7ODhGQTs4OEZBOzg4RkE7ODhGQTsKKzJGOUNBOzM0QkI7MzRCQjszNEJCOzM0QkI7CisyRjlDQjsyNzhBRTsyNzhBRTsyNzhBRTsyNzhBRTsKKzJGOUNDOzI3OTY2OzI3OTY2OzI3OTY2OzI3OTY2OworMkY5Q0Q7NDZCRTs0NkJFOzQ2QkU7NDZCRTsKKzJGOUNFOzQ2Qzc7NDZDNzs0NkM3OzQ2Qzc7CisyRjlDRjs4QUEwOzhBQTA7OEFBMDs4QUEwOworMkY5RDA7OEFFRDs4QUVEOzhBRUQ7OEFFRDsKKzJGOUQxOzhCOEE7OEI4QTs4QjhBOzhCOEE7CisyRjlEMjs4QzU1OzhDNTU7OEM1NTs4QzU1OworMkY5RDM7MjdDQTg7MjdDQTg7MjdDQTg7MjdDQTg7CisyRjlENDs4Q0FCOzhDQUI7OENBQjs4Q0FCOworMkY5RDU7OENDMTs4Q0MxOzhDQzE7OENDMTsKKzJGOUQ2OzhEMUI7OEQxQjs4RDFCOzhEMUI7CisyRjlENzs4RDc3OzhENzc7OEQ3Nzs4RDc3OworMkY5RDg7MjdGMkY7MjdGMkY7MjdGMkY7MjdGMkY7CisyRjlEOTsyMDgwNDsyMDgwNDsyMDgwNDsyMDgwNDsKKzJGOURBOzhEQ0I7OERDQjs4RENCOzhEQ0I7CisyRjlEQjs4REJDOzhEQkM7OERCQzs4REJDOworMkY5REM7OERGMDs4REYwOzhERjA7OERGMDsKKzJGOUREOzIwOERFOzIwOERFOzIwOERFOzIwOERFOworMkY5REU7OEVENDs4RUQ0OzhFRDQ7OEVENDsKKzJGOURGOzhGMzg7OEYzODs4RjM4OzhGMzg7CisyRjlFMDsyODVEMjsyODVEMjsyODVEMjsyODVEMjsKKzJGOUUxOzI4NUVEOzI4NUVEOzI4NUVEOzI4NUVEOworMkY5RTI7OTA5NDs5MDk0OzkwOTQ7OTA5NDsKKzJGOUUzOzkwRjE7OTBGMTs5MEYxOzkwRjE7CisyRjlFNDs5MTExOzkxMTE7OTExMTs5MTExOworMkY5RTU7Mjg3MkU7Mjg3MkU7Mjg3MkU7Mjg3MkU7CisyRjlFNjs5MTFCOzkxMUI7OTExQjs5MTFCOworMkY5RTc7OTIzODs5MjM4OzkyMzg7OTIzODsKKzJGOUU4OzkyRDc7OTJENzs5MkQ3OzkyRDc7CisyRjlFOTs5MkQ4OzkyRDg7OTJEODs5MkQ4OworMkY5RUE7OTI3Qzs5MjdDOzkyN0M7OTI3QzsKKzJGOUVCOzkzRjk7OTNGOTs5M0Y5OzkzRjk7CisyRjlFQzs5NDE1Ozk0MTU7OTQxNTs5NDE1OworMkY5RUQ7MjhCRkE7MjhCRkE7MjhCRkE7MjhCRkE7CisyRjlFRTs5NThCOzk1OEI7OTU4Qjs5NThCOworMkY5RUY7NDk5NTs0OTk1OzQ5OTU7NDk5NTsKKzJGOUYwOzk1Qjc7OTVCNzs5NUI3Ozk1Qjc7CisyRjlGMTsyOEQ3NzsyOEQ3NzsyOEQ3NzsyOEQ3NzsKKzJGOUYyOzQ5RTY7NDlFNjs0OUU2OzQ5RTY7CisyRjlGMzs5NkMzOzk2QzM7OTZDMzs5NkMzOworMkY5RjQ7NURCMjs1REIyOzVEQjI7NURCMjsKKzJGOUY1Ozk3MjM7OTcyMzs5NzIzOzk3MjM7CisyRjlGNjsyOTE0NTsyOTE0NTsyOTE0NTsyOTE0NTsKKzJGOUY3OzI5MjFBOzI5MjFBOzI5MjFBOzI5MjFBOworMkY5Rjg7NEE2RTs0QTZFOzRBNkU7NEE2RTsKKzJGOUY5OzRBNzY7NEE3Njs0QTc2OzRBNzY7CisyRjlGQTs5N0UwOzk3RTA7OTdFMDs5N0UwOworMkY5RkI7Mjk0MEE7Mjk0MEE7Mjk0MEE7Mjk0MEE7CisyRjlGQzs0QUIyOzRBQjI7NEFCMjs0QUIyOworMkY5RkQ7Mjk0OTY7Mjk0OTY7Mjk0OTY7Mjk0OTY7CisyRjlGRTs5ODBCOzk4MEI7OTgwQjs5ODBCOworMkY5RkY7OTgwQjs5ODBCOzk4MEI7OTgwQjsKKzJGQTAwOzk4Mjk7OTgyOTs5ODI5Ozk4Mjk7CisyRkEwMTsyOTVCNjsyOTVCNjsyOTVCNjsyOTVCNjsKKzJGQTAyOzk4RTI7OThFMjs5OEUyOzk4RTI7CisyRkEwMzs0QjMzOzRCMzM7NEIzMzs0QjMzOworMkZBMDQ7OTkyOTs5OTI5Ozk5Mjk7OTkyOTsKKzJGQTA1Ozk5QTc7OTlBNzs5OUE3Ozk5QTc7CisyRkEwNjs5OUMyOzk5QzI7OTlDMjs5OUMyOworMkZBMDc7OTlGRTs5OUZFOzk5RkU7OTlGRTsKKzJGQTA4OzRCQ0U7NEJDRTs0QkNFOzRCQ0U7CisyRkEwOTsyOUIzMDsyOUIzMDsyOUIzMDsyOUIzMDsKKzJGQTBBOzlCMTI7OUIxMjs5QjEyOzlCMTI7CisyRkEwQjs5QzQwOzlDNDA7OUM0MDs5QzQwOworMkZBMEM7OUNGRDs5Q0ZEOzlDRkQ7OUNGRDsKKzJGQTBEOzRDQ0U7NENDRTs0Q0NFOzRDQ0U7CisyRkEwRTs0Q0VEOzRDRUQ7NENFRDs0Q0VEOworMkZBMEY7OUQ2Nzs5RDY3OzlENjc7OUQ2NzsKKzJGQTEwOzJBMENFOzJBMENFOzJBMENFOzJBMENFOworMkZBMTE7NENGODs0Q0Y4OzRDRjg7NENGODsKKzJGQTEyOzJBMTA1OzJBMTA1OzJBMTA1OzJBMTA1OworMkZBMTM7MkEyMEU7MkEyMEU7MkEyMEU7MkEyMEU7CisyRkExNDsyQTI5MTsyQTI5MTsyQTI5MTsyQTI5MTsKKzJGQTE1OzlFQkI7OUVCQjs5RUJCOzlFQkI7CisyRkExNjs0RDU2OzRENTY7NEQ1Njs0RDU2OworMkZBMTc7OUVGOTs5RUY5OzlFRjk7OUVGOTsKKzJGQTE4OzlFRkU7OUVGRTs5RUZFOzlFRkU7CisyRkExOTs5RjA1OzlGMDU7OUYwNTs5RjA1OworMkZBMUE7OUYwRjs5RjBGOzlGMEY7OUYwRjsKKzJGQTFCOzlGMTY7OUYxNjs5RjE2OzlGMTY7CisyRkExQzs5RjNCOzlGM0I7OUYzQjs5RjNCOworMkZBMUQ7MkE2MDA7MkE2MDA7MkE2MDA7MkE2MDA7CisjCitAUGFydDIgIyBDYW5vbmljYWwgT3JkZXIgVGVzdAorIworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzAwIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMwMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDEgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzAxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwRTEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMiAwMDYyOzAwRTAgMDVBRSAwMzAyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMiAwMzE1IDAwNjI7CiswMDYxIDAzMDIgMDMxNSAwMzAwIDA1QUUgMDA2MjsxRUE3IDA1QUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAyIDAzMDAgMDMxNSAwMDYyOzFFQTcgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDMgMDA2MjswMEUwIDA1QUUgMDMwMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDMgMDMxNSAwMDYyOworMDA2MSAwMzAzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAzIDAzMDAgMDMxNSAwMDYyOzAwRTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNCAwMDYyOzAwRTAgMDVBRSAwMzA0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNCAwMzE1IDAwNjI7CiswMDYxIDAzMDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMTAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDQgMDMwMCAwMzE1IDAwNjI7MDEwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA1IDAwNjI7MDBFMCAwNUFFIDAzMDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA1IDAzMTUgMDA2MjsKKzAwNjEgMDMwNSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA2IDAwNjI7MDBFMCAwNUFFIDAzMDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA2IDAzMTUgMDA2MjsKKzAwNjEgMDMwNiAwMzE1IDAzMDAgMDVBRSAwMDYyOzFFQjEgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDYgMDMwMCAwMzE1IDAwNjI7MUVCMSAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNyAwMDYyOzAwRTAgMDVBRSAwMzA3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNyAwMzE1IDAwNjI7CiswMDYxIDAzMDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjI3IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDcgMDMwMCAwMzE1IDAwNjI7MDIyNyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA4IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMTUgMDA2MjsKKzAwNjEgMDMwOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTQgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDkgMDA2MjswMEUwIDA1QUUgMDMwOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDkgMDMxNSAwMDYyOworMDA2MSAwMzA5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MUVBMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA5IDAzMDAgMDMxNSAwMDYyOzFFQTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwQSAwMDYyOzAwRTAgMDVBRSAwMzBBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQSAwMzE1IDAwNjI7CiswMDYxIDAzMEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEU1IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEEgMDMwMCAwMzE1IDAwNjI7MDBFNSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBCIDAwNjI7MDBFMCAwNUFFIDAzMEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBCIDAzMTUgMDA2MjsKKzAwNjEgMDMwQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBDIDAwNjI7MDBFMCAwNUFFIDAzMEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBDIDAzMTUgMDA2MjsKKzAwNjEgMDMwQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAxQ0UgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQyAwMzAwIDAzMTUgMDA2MjswMUNFIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEQgMDA2MjswMEUwIDA1QUUgMDMwRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEQgMDMxNSAwMDYyOworMDA2MSAwMzBEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEUgMDA2MjswMEUwIDA1QUUgMDMwRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEUgMDMxNSAwMDYyOworMDA2MSAwMzBFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEYgMDA2MjswMEUwIDA1QUUgMDMwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEYgMDMxNSAwMDYyOworMDA2MSAwMzBGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDIwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBGIDAzMDAgMDMxNSAwMDYyOzAyMDEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMCAwMDYyOzAwRTAgMDVBRSAwMzEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMCAwMzE1IDAwNjI7CiswMDYxIDAzMTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMSAwMDYyOzAwRTAgMDVBRSAwMzExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMSAwMzE1IDAwNjI7CiswMDYxIDAzMTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjAzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTEgMDMwMCAwMzE1IDAwNjI7MDIwMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzExIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEyIDAwNjI7MDBFMCAwNUFFIDAzMTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEyIDAzMTUgMDA2MjsKKzAwNjEgMDMxMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDMxMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzE0IDAwNjI7MDBFMCAwNUFFIDAzMTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzE0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzE0IDAzMTUgMDA2MjsKKzAwNjEgMDMxNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzVDIDAzMTUgMDMwMCAwMzE1IDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM1QyAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNUMgMDA2MjsKKzAwNjEgMDMxNSAwMzVDIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNUMgMDA2MjswMEUwIDAzMTUgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxNSAwMzVDIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzE3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7CiswMDYxIDAzMTcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOworMDA2MSAwMzE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjsKKzAwNjEgMDMxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzVDIDAzMTUgMDMwMCAwMzFBIDAwNjI7MDBFMCAwMzE1IDAzMUEgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMUEgMDM1QyAwMDYyOzAwRTAgMDMxNSAwMzFBIDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzFBIDAzNUMgMDA2MjsKKzAwNjEgMDMxQSAwMzVDIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxQSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxQSAwMzE1IDAzNUMgMDA2MjswMEUwIDAzMUEgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMUEgMDMxNSAwMzVDIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDAzMUIgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMDMxQiAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7CiswMDYxIDAzMUMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOworMDA2MSAwMzFEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjsKKzAwNjEgMDMxRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7CiswMDYxIDAzMUYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOworMDA2MSAwMzIwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMyMSAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzIyIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7CiswMDYxIDAzMjIgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOworMDA2MSAwMzIzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MUVBMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzIzIDAzMTYgMDU5QSAwMDYyOzFFQTEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOworMDA2MSAwMzI0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjsKKzAwNjEgMDMyNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzFFMDEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNSAwMzE2IDA1OUEgMDA2MjsxRTAxIDMwMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjsKKzAwNjEgMDMyNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzI3IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7CiswMDYxIDAzMjcgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMxQiAwMzIxIDBGNzQgMDMyOCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOworMDA2MSAwMzI4IDAzMUIgMDMyMSAwRjc0IDAwNjI7MDEwNSAwRjc0IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI4IDAzMjEgMDMxQiAwMDYyOzAxMDUgMEY3NCAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyOCAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOworMDA2MSAwMzI5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjsKKzAwNjEgMDMyQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7CiswMDYxIDAzMkIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOworMDA2MSAwMzJDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjsKKzAwNjEgMDMyRCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7CiswMDYxIDAzMkUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyRiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOworMDA2MSAwMzJGIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzAgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjsKKzAwNjEgMDMzMCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzMxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7CiswMDYxIDAzMzEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOworMDA2MSAwMzMyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzMgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjsKKzAwNjEgMDMzMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNCAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMzNCAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM1IDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM1IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOworMDA2MSAwMzM1IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzUgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzYgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzYgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7CiswMDYxIDAzMzYgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNiAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNyAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjsKKzAwNjEgMDMzNyAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM4IDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM4IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOworMDA2MSAwMzM4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzggMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOworMDA2MSAwMzM5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzM0EgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjsKKzAwNjEgMDMzQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzNCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7CiswMDYxIDAzM0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOworMDA2MSAwMzNDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0QgMDA2MjswMEUwIDA1QUUgMDMzRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0QgMDMxNSAwMDYyOworMDA2MSAwMzNEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0UgMDA2MjswMEUwIDA1QUUgMDMzRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0UgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0UgMDMxNSAwMDYyOworMDA2MSAwMzNFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0YgMDA2MjswMEUwIDA1QUUgMDMzRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0YgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0YgMDMxNSAwMDYyOworMDA2MSAwMzNGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDAgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0MSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzNDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQyIDAwNjI7MDBFMCAwNUFFIDAzNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzQyIDAzMTUgMDA2MjsKKzAwNjEgMDM0MiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDM0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQ0IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwOCAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzQ0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFNCAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMSAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQ1IDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzVEIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzQ1IDAzNUQgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzVEIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDYgMDA2MjswMEUwIDA1QUUgMDM0NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDYgMDMxNSAwMDYyOworMDA2MSAwMzQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNDcgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjsKKzAwNjEgMDM0NyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzQ4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7CiswMDYxIDAzNDggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0OSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOworMDA2MSAwMzQ5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEEgMDA2MjswMEUwIDA1QUUgMDM0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEEgMDMxNSAwMDYyOworMDA2MSAwMzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEIgMDA2MjswMEUwIDA1QUUgMDM0QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEIgMDMxNSAwMDYyOworMDA2MSAwMzRCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEMgMDA2MjswMEUwIDA1QUUgMDM0QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEMgMDMxNSAwMDYyOworMDA2MSAwMzRDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNEQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjsKKzAwNjEgMDM0RCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzRFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7CiswMDYxIDAzNEUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM1MCAwMDYyOzAwRTAgMDVBRSAwMzUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM1MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1MCAwMzE1IDAwNjI7CiswMDYxIDAzNTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM1MSAwMDYyOzAwRTAgMDVBRSAwMzUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1MSAwMzE1IDAwNjI7CiswMDYxIDAzNTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM1MiAwMDYyOzAwRTAgMDVBRSAwMzUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM1MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1MiAwMzE1IDAwNjI7CiswMDYxIDAzNTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1MyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOworMDA2MSAwMzUzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNTQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjsKKzAwNjEgMDM1NCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzU1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7CiswMDYxIDAzNTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOworMDA2MSAwMzU2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNTcgMDA2MjswMEUwIDA1QUUgMDM1NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNTcgMDMxNSAwMDYyOworMDA2MSAwMzU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNUMgMDMxNSAwMzAwIDAzNTggMDA2MjswMEUwIDAzMTUgMDM1OCAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDM1OCAwMzVDIDAwNjI7MDBFMCAwMzE1IDAzNTggMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzNTggMDM1QyAwMDYyOworMDA2MSAwMzU4IDAzNUMgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzU4IDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzU4IDAzMTUgMDM1QyAwMDYyOzAwRTAgMDM1OCAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDM1OCAwMzE1IDAzNUMgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1OSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOworMDA2MSAwMzU5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjsKKzAwNjEgMDM1QSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzVCIDAwNjI7MDBFMCAwNUFFIDAzNUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzVCIDAzMTUgMDA2MjsKKzAwNjEgMDM1QiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzVEIDAzNUMgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7CiswMDYxIDAzNUMgMDM1RCAwMzVDIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjsKKzAwNjEgMDM0NSAwMzVEIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOworMDA2MSAwMzVEIDAzNDUgMDM1RCAwMzVDIDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7CiswMDYxIDAzNDUgMDM1RCAwMzVDIDAzNUUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjsKKzAwNjEgMDM1RSAwMzQ1IDAzNUQgMDM1QyAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOworMDA2MSAwMzVEIDAzNUMgMDMxNSAwMzVGIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7CiswMDYxIDAzNUYgMDM1RCAwMzVDIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjsKKzAwNjEgMDM0NSAwMzVEIDAzNUMgMDM2MCAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOworMDA2MSAwMzYwIDAzNDUgMDM1RCAwMzVDIDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7CiswMDYxIDAzNDUgMDM1RCAwMzVDIDAzNjEgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjsKKzAwNjEgMDM2MSAwMzQ1IDAzNUQgMDM1QyAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOworMDA2MSAwMzVEIDAzNUMgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7CiswMDYxIDAzNjIgMDM1RCAwMzVDIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2MyAwMDYyOzAwRTAgMDVBRSAwMzYzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzYzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2MyAwMzE1IDAwNjI7CiswMDYxIDAzNjMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NCAwMDYyOzAwRTAgMDVBRSAwMzY0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NCAwMzE1IDAwNjI7CiswMDYxIDAzNjQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NSAwMDYyOzAwRTAgMDVBRSAwMzY1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NSAwMzE1IDAwNjI7CiswMDYxIDAzNjUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NiAwMDYyOzAwRTAgMDVBRSAwMzY2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NiAwMzE1IDAwNjI7CiswMDYxIDAzNjYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NyAwMDYyOzAwRTAgMDVBRSAwMzY3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NyAwMzE1IDAwNjI7CiswMDYxIDAzNjcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OCAwMDYyOzAwRTAgMDVBRSAwMzY4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OCAwMzE1IDAwNjI7CiswMDYxIDAzNjggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OSAwMDYyOzAwRTAgMDVBRSAwMzY5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OSAwMzE1IDAwNjI7CiswMDYxIDAzNjkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QSAwMDYyOzAwRTAgMDVBRSAwMzZBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QSAwMzE1IDAwNjI7CiswMDYxIDAzNkEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QiAwMDYyOzAwRTAgMDVBRSAwMzZCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QiAwMzE1IDAwNjI7CiswMDYxIDAzNkIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QyAwMDYyOzAwRTAgMDVBRSAwMzZDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QyAwMzE1IDAwNjI7CiswMDYxIDAzNkMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RCAwMDYyOzAwRTAgMDVBRSAwMzZEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RCAwMzE1IDAwNjI7CiswMDYxIDAzNkQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RSAwMDYyOzAwRTAgMDVBRSAwMzZFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RSAwMzE1IDAwNjI7CiswMDYxIDAzNkUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RiAwMDYyOzAwRTAgMDVBRSAwMzZGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RiAwMzE1IDAwNjI7CiswMDYxIDAzNkYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4MyAwMDYyOzAwRTAgMDVBRSAwNDgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDgzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4MyAwMzE1IDAwNjI7CiswMDYxIDA0ODMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NCAwMDYyOzAwRTAgMDVBRSAwNDg0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NCAwMzE1IDAwNjI7CiswMDYxIDA0ODQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NSAwMDYyOzAwRTAgMDVBRSAwNDg1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NSAwMzE1IDAwNjI7CiswMDYxIDA0ODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NiAwMDYyOzAwRTAgMDVBRSAwNDg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NiAwMzE1IDAwNjI7CiswMDYxIDA0ODYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOworMDA2MSAwNTkxIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTIgMDA2MjswMEUwIDA1QUUgMDU5MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTIgMDMxNSAwMDYyOworMDA2MSAwNTkyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTMgMDA2MjswMEUwIDA1QUUgMDU5MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTMgMDMxNSAwMDYyOworMDA2MSAwNTkzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTQgMDA2MjswMEUwIDA1QUUgMDU5NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTQgMDMxNSAwMDYyOworMDA2MSAwNTk0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTUgMDA2MjswMEUwIDA1QUUgMDU5NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTUgMDMxNSAwMDYyOworMDA2MSAwNTk1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1OTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjsKKzAwNjEgMDU5NiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk3IDAwNjI7MDBFMCAwNUFFIDA1OTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk3IDAzMTUgMDA2MjsKKzAwNjEgMDU5NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk4IDAwNjI7MDBFMCAwNUFFIDA1OTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk4IDAzMTUgMDA2MjsKKzAwNjEgMDU5OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk5IDAwNjI7MDBFMCAwNUFFIDA1OTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk5IDAzMTUgMDA2MjsKKzAwNjEgMDU5OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDA1OUEgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOworMDA2MSAwNTlCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUMgMDA2MjswMEUwIDA1QUUgMDU5QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUMgMDMxNSAwMDYyOworMDA2MSAwNTlDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUQgMDA2MjswMEUwIDA1QUUgMDU5RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUQgMDMxNSAwMDYyOworMDA2MSAwNTlEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUUgMDA2MjswMEUwIDA1QUUgMDU5RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUUgMDMxNSAwMDYyOworMDA2MSAwNTlFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUYgMDA2MjswMEUwIDA1QUUgMDU5RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUYgMDMxNSAwMDYyOworMDA2MSAwNTlGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTAgMDA2MjswMEUwIDA1QUUgMDVBMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTAgMDMxNSAwMDYyOworMDA2MSAwNUEwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTEgMDA2MjswMEUwIDA1QUUgMDVBMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTEgMDMxNSAwMDYyOworMDA2MSAwNUExIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTIgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjsKKzAwNjEgMDVBMiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUEzIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7CiswMDYxIDA1QTMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOworMDA2MSAwNUE0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTUgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjsKKzAwNjEgMDVBNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7CiswMDYxIDA1QTYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOworMDA2MSAwNUE3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTggMDA2MjswMEUwIDA1QUUgMDVBOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTggMDMxNSAwMDYyOworMDA2MSAwNUE4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTkgMDA2MjswMEUwIDA1QUUgMDVBOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTkgMDMxNSAwMDYyOworMDA2MSAwNUE5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjsKKzAwNjEgMDVBQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUFCIDAwNjI7MDBFMCAwNUFFIDA1QUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFCIDAzMTUgMDA2MjsKKzAwNjEgMDVBQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUFDIDAwNjI7MDBFMCAwNUFFIDA1QUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFDIDAzMTUgMDA2MjsKKzAwNjEgMDVBQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAwNUFEIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7CiswMDYxIDA1QUQgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDMwMCAwNUFFIDFEMTZEIDA1QUUgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjsKKzAwNjEgMDVBRSAwMzAwIDA1QUUgMUQxNkQgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBRiAwMDYyOzAwRTAgMDVBRSAwNUFGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBRiAwMzE1IDAwNjI7CiswMDYxIDA1QUYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDVCMSAwNUIwIDA5NEQgMDVCMCAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOworMDA2MSAwNUIwIDA1QjEgMDVCMCAwOTREIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7CiswMDYxIDA1QjIgMDVCMSAwNUIwIDA1QjEgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjsKKzAwNjEgMDVCMSAwNUIyIDA1QjEgMDVCMCAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOworMDA2MSAwNUIzIDA1QjIgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7CiswMDYxIDA1QjIgMDVCMyAwNUIyIDA1QjEgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjsKKzAwNjEgMDVCNCAwNUIzIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOworMDA2MSAwNUIzIDA1QjQgMDVCMyAwNUIyIDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7CiswMDYxIDA1QjUgMDVCNCAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjsKKzAwNjEgMDVCNCAwNUI1IDA1QjQgMDVCMyAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOworMDA2MSAwNUI2IDA1QjUgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7CiswMDYxIDA1QjUgMDVCNiAwNUI1IDA1QjQgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjsKKzAwNjEgMDVCNyAwNUI2IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOworMDA2MSAwNUI2IDA1QjcgMDVCNiAwNUI1IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7CiswMDYxIDA1QjggMDVCNyAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjsKKzAwNjEgMDVCNyAwNUI4IDA1QjcgMDVCNiAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOworMDA2MSAwNUI5IDA1QjggMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7CiswMDYxIDA1QjggMDVCOSAwNUI4IDA1QjcgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjsKKzAwNjEgMDVCQiAwNUI5IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOworMDA2MSAwNUI5IDA1QkIgMDVCOSAwNUI4IDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7CiswMDYxIDA1QkMgMDVCQiAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjsKKzAwNjEgMDVCQiAwNUJDIDA1QkIgMDVCOSAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOworMDA2MSAwNUJEIDA1QkMgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7CiswMDYxIDA1QkMgMDVCRCAwNUJDIDA1QkIgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjsKKzAwNjEgMDVCRiAwNUJEIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOworMDA2MSAwNUJEIDA1QkYgMDVCRCAwNUJDIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7CiswMDYxIDA1QzEgMDVCRiAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjsKKzAwNjEgMDVCRiAwNUMxIDA1QkYgMDVCRCAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOworMDA2MSAwNUMyIDA1QzEgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7CiswMDYxIDA1QzEgMDVDMiAwNUMxIDA1QkYgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjsKKzAwNjEgRkIxRSAwNUMyIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOworMDA2MSAwNUMyIEZCMUUgMDVDMiAwNUMxIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QzQgMDA2MjswMEUwIDA1QUUgMDVDNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVDNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QzQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QzQgMDMxNSAwMDYyOworMDA2MSAwNUM0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QzUgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjsKKzAwNjEgMDVDNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNUI5IDA1QjggMDVCNyAwNUM3IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7CiswMDYxIDA1QzcgMDVCOSAwNUI4IDA1QjcgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMCAwMDYyOzAwRTAgMDVBRSAwNjEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMCAwMzE1IDAwNjI7CiswMDYxIDA2MTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMSAwMDYyOzAwRTAgMDVBRSAwNjExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMSAwMzE1IDAwNjI7CiswMDYxIDA2MTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMiAwMDYyOzAwRTAgMDVBRSAwNjEyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMiAwMzE1IDAwNjI7CiswMDYxIDA2MTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMyAwMDYyOzAwRTAgMDVBRSAwNjEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMyAwMzE1IDAwNjI7CiswMDYxIDA2MTMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxNCAwMDYyOzAwRTAgMDVBRSAwNjE0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjE0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxNCAwMzE1IDAwNjI7CiswMDYxIDA2MTQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxNSAwMDYyOzAwRTAgMDVBRSAwNjE1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjE1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxNSAwMzE1IDAwNjI7CiswMDYxIDA2MTUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDY0QyAwNjRCIEZCMUUgMDY0QiAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOworMDA2MSAwNjRCIDA2NEMgMDY0QiBGQjFFIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7CiswMDYxIDA2NEQgMDY0QyAwNjRCIDA2NEMgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjsKKzAwNjEgMDY0QyAwNjREIDA2NEMgMDY0QiAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOworMDA2MSAwNjRFIDA2NEQgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7CiswMDYxIDA2NEQgMDY0RSAwNjREIDA2NEMgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjsKKzAwNjEgMDY0RiAwNjRFIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOworMDA2MSAwNjRFIDA2NEYgMDY0RSAwNjREIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7CiswMDYxIDA2NTAgMDY0RiAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjsKKzAwNjEgMDY0RiAwNjUwIDA2NEYgMDY0RSAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOworMDA2MSAwNjUxIDA2NTAgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7CiswMDYxIDA2NTAgMDY1MSAwNjUwIDA2NEYgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjsKKzAwNjEgMDY1MiAwNjUxIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOworMDA2MSAwNjUxIDA2NTIgMDY1MSAwNjUwIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7CiswMDYxIDA2NzAgMDY1MiAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjsKKzAwNjEgMDY1MiAwNjcwIDA2NTIgMDY1MSAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjUzIDAwNjI7MDBFMCAwNUFFIDA2NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjUzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjUzIDAzMTUgMDA2MjsKKzAwNjEgMDY1MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjU0IDAwNjI7MDBFMCAwNUFFIDA2NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjU0IDAzMTUgMDA2MjsKKzAwNjEgMDY1NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNjU1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7CiswMDYxIDA2NTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDY1NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOworMDA2MSAwNjU2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTcgMDA2MjswMEUwIDA1QUUgMDY1NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTcgMDMxNSAwMDYyOworMDA2MSAwNjU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTggMDA2MjswMEUwIDA1QUUgMDY1OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1OCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTggMDMxNSAwMDYyOworMDA2MSAwNjU4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTkgMDA2MjswMEUwIDA1QUUgMDY1OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTkgMDMxNSAwMDYyOworMDA2MSAwNjU5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NUEgMDA2MjswMEUwIDA1QUUgMDY1QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUEgMDMxNSAwMDYyOworMDA2MSAwNjVBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NUIgMDA2MjswMEUwIDA1QUUgMDY1QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1QiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUIgMDMxNSAwMDYyOworMDA2MSAwNjVCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2NUMgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjsKKzAwNjEgMDY1QyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjVEIDAwNjI7MDBFMCAwNUFFIDA2NUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjVEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjVEIDAzMTUgMDA2MjsKKzAwNjEgMDY1RCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjVFIDAwNjI7MDBFMCAwNUFFIDA2NUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjVFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjVFIDAzMTUgMDA2MjsKKzAwNjEgMDY1RSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNzExIDA2NzAgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7CiswMDYxIDA2NzAgMDcxMSAwNjcwIDA2NTIgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENiAwMDYyOzAwRTAgMDVBRSAwNkQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENiAwMzE1IDAwNjI7CiswMDYxIDA2RDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENyAwMDYyOzAwRTAgMDVBRSAwNkQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENyAwMzE1IDAwNjI7CiswMDYxIDA2RDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOCAwMDYyOzAwRTAgMDVBRSAwNkQ4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOCAwMzE1IDAwNjI7CiswMDYxIDA2RDggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOSAwMDYyOzAwRTAgMDVBRSAwNkQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOSAwMzE1IDAwNjI7CiswMDYxIDA2RDkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQSAwMDYyOzAwRTAgMDVBRSAwNkRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQSAwMzE1IDAwNjI7CiswMDYxIDA2REEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQiAwMDYyOzAwRTAgMDVBRSAwNkRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQiAwMzE1IDAwNjI7CiswMDYxIDA2REIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQyAwMDYyOzAwRTAgMDVBRSAwNkRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQyAwMzE1IDAwNjI7CiswMDYxIDA2REMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZERiAwMDYyOzAwRTAgMDVBRSAwNkRGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZERiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZERiAwMzE1IDAwNjI7CiswMDYxIDA2REYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMCAwMDYyOzAwRTAgMDVBRSAwNkUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMCAwMzE1IDAwNjI7CiswMDYxIDA2RTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMSAwMDYyOzAwRTAgMDVBRSAwNkUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMSAwMzE1IDAwNjI7CiswMDYxIDA2RTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMiAwMDYyOzAwRTAgMDVBRSAwNkUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMiAwMzE1IDAwNjI7CiswMDYxIDA2RTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDZFMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOworMDA2MSAwNkUzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTQgMDA2MjswMEUwIDA1QUUgMDZFNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTQgMDMxNSAwMDYyOworMDA2MSAwNkU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTcgMDA2MjswMEUwIDA1QUUgMDZFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTcgMDMxNSAwMDYyOworMDA2MSAwNkU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTggMDA2MjswMEUwIDA1QUUgMDZFOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTggMDMxNSAwMDYyOworMDA2MSAwNkU4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2RUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjsKKzAwNjEgMDZFQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVCIDAwNjI7MDBFMCAwNUFFIDA2RUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVCIDAzMTUgMDA2MjsKKzAwNjEgMDZFQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVDIDAwNjI7MDBFMCAwNUFFIDA2RUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVDIDAzMTUgMDA2MjsKKzAwNjEgMDZFQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNkVEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7CiswMDYxIDA2RUQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMEM1NSAwNzExIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOworMDA2MSAwNzExIDBDNTUgMDcxMSAwNjcwIDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzAgMDA2MjswMEUwIDA1QUUgMDczMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzAgMDMxNSAwMDYyOworMDA2MSAwNzMwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjsKKzAwNjEgMDczMSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMyIDAwNjI7MDBFMCAwNUFFIDA3MzIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMyIDAzMTUgMDA2MjsKKzAwNjEgMDczMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMzIDAwNjI7MDBFMCAwNUFFIDA3MzMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMzIDAzMTUgMDA2MjsKKzAwNjEgMDczMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7CiswMDYxIDA3MzQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNSAwMDYyOzAwRTAgMDVBRSAwNzM1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNSAwMzE1IDAwNjI7CiswMDYxIDA3MzUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNiAwMDYyOzAwRTAgMDVBRSAwNzM2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNiAwMzE1IDAwNjI7CiswMDYxIDA3MzYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOworMDA2MSAwNzM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzggMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjsKKzAwNjEgMDczOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7CiswMDYxIDA3MzkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczQSAwMDYyOzAwRTAgMDVBRSAwNzNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczQSAwMzE1IDAwNjI7CiswMDYxIDA3M0EgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczQiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOworMDA2MSAwNzNCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3M0MgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjsKKzAwNjEgMDczQyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzNEIDAwNjI7MDBFMCAwNUFFIDA3M0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0QgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNEIDAzMTUgMDA2MjsKKzAwNjEgMDczRCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzNFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7CiswMDYxIDA3M0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczRiAwMDYyOzAwRTAgMDVBRSAwNzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRiAwMzE1IDAwNjI7CiswMDYxIDA3M0YgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MCAwMDYyOzAwRTAgMDVBRSAwNzQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MCAwMzE1IDAwNjI7CiswMDYxIDA3NDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MSAwMDYyOzAwRTAgMDVBRSAwNzQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MSAwMzE1IDAwNjI7CiswMDYxIDA3NDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOworMDA2MSAwNzQyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDMgMDA2MjswMEUwIDA1QUUgMDc0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDMgMDMxNSAwMDYyOworMDA2MSAwNzQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjsKKzAwNjEgMDc0NCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQ1IDAwNjI7MDBFMCAwNUFFIDA3NDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ1IDAzMTUgMDA2MjsKKzAwNjEgMDc0NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQ2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7CiswMDYxIDA3NDYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0NyAwMDYyOzAwRTAgMDVBRSAwNzQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NyAwMzE1IDAwNjI7CiswMDYxIDA3NDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0OCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOworMDA2MSAwNzQ4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDkgMDA2MjswMEUwIDA1QUUgMDc0OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDkgMDMxNSAwMDYyOworMDA2MSAwNzQ5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NEEgMDA2MjswMEUwIDA1QUUgMDc0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NEEgMDMxNSAwMDYyOworMDA2MSAwNzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDkzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOTREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA5NEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDk1MSAwMDYyOzAwRTAgMDVBRSAwOTUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDk1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MSAwMzE1IDAwNjI7CiswMDYxIDA5NTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDk1MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOworMDA2MSAwOTUyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTMgMDA2MjswMEUwIDA1QUUgMDk1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTMgMDMxNSAwMDYyOworMDA2MSAwOTUzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTQgMDA2MjswMEUwIDA1QUUgMDk1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTQgMDMxNSAwMDYyOworMDA2MSAwOTU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5QkMgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjsKKzAwNjEgMDlCQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOUNEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7CiswMDYxIDA5Q0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMEEzQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOworMDA2MSAwQTNDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBBNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjsKKzAwNjEgMEE0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwQUJDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7CiswMDYxIDBBQkMgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEFDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOworMDA2MSAwQUNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBCM0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjsKKzAwNjEgMEIzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQjREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7CiswMDYxIDBCNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEJDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOworMDA2MSAwQkNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBDNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjsKKzAwNjEgMEM0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwQzU2IDBDNTUgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7CiswMDYxIDBDNTUgMEM1NiAwQzU1IDA3MTEgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjsKKzAwNjEgMEUzOCAwQzU2IDBDNTUgMEM1NiAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOworMDA2MSAwQzU2IDBFMzggMEM1NiAwQzU1IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBDQkMgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjsKKzAwNjEgMENCQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQ0NEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7CiswMDYxIDBDQ0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEQ0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOworMDA2MSAwRDREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBEQ0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjsKKzAwNjEgMERDQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRTQ4IDBFMzggMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDBFMzggMEU0OCAwRTM4IDBDNTYgMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMEU0OCAwRTM4IDBDNTYgMEUzOSAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOworMDA2MSAwRTM5IDBFNDggMEUzOCAwQzU2IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBFM0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjsKKzAwNjEgMEUzQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFNDggMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVCOCAwRTQ4IDBFMzggMEU0OSAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOworMDA2MSAwRTQ5IDBFQjggMEU0OCAwRTM4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNEEgMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjsKKzAwNjEgMEU0QSAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTRCIDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7CiswMDYxIDBFNEIgMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVDOCAwRUI4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRUI4IDBFQzggMEVCOCAwRTQ4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBFQzggMEVCOCAwRTQ4IDBFQjkgMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjsKKzAwNjEgMEVCOSAwRUM4IDBFQjggMEU0OCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBFQzggMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEY3MSAwRUM4IDBFQjggMEVDOSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOworMDA2MSAwRUM5IDBGNzEgMEVDOCAwRUI4IDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQ0EgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjsKKzAwNjEgMEVDQSAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUNCIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7CiswMDYxIDBFQ0IgMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOworMDA2MSAwRjE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjsKKzAwNjEgMEYxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjM1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7CiswMDYxIDBGMzUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYzNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOworMDA2MSAwRjM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDBGMzkgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjsKKzAwNjEgMEYzOSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOworMDA2MSAwRjcyIDBGNzEgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7CiswMDYxIDBGNzEgMEY3MiAwRjcxIDBFQzggMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjcyIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMjEgMEY3NCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjsKKzAwNjEgMEY3NCAwMzIxIDBGNzQgMEY3MiAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdBIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7CiswMDYxIDBGN0EgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3QiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOworMDA2MSAwRjdCIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0MgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjsKKzAwNjEgMEY3QyAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdEIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7CiswMDYxIDBGN0QgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY4MCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOworMDA2MSAwRjgwIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODIgMDA2MjswMEUwIDA1QUUgMEY4MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODIgMDMxNSAwMDYyOworMDA2MSAwRjgyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODMgMDA2MjswMEUwIDA1QUUgMEY4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODMgMDMxNSAwMDYyOworMDA2MSAwRjgzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBGODQgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjsKKzAwNjEgMEY4NCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg2IDAwNjI7MDBFMCAwNUFFIDBGODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg2IDAzMTUgMDA2MjsKKzAwNjEgMEY4NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg3IDAwNjI7MDBFMCAwNUFFIDBGODcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg3IDAzMTUgMDA2MjsKKzAwNjEgMEY4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRkM2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7CiswMDYxIDBGQzYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMTAzNyAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOworMDA2MSAxMDM3IDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDEwMzkgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjsKKzAwNjEgMTAzOSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxMzVGIDAwNjI7MDBFMCAwNUFFIDEzNUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEzNUYgMDMxNSAwMDYyOzAwRTAgMDVBRSAxMzVGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxMzVGIDAzMTUgMDA2MjsKKzAwNjEgMTM1RiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAxNzE0IDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7CiswMDYxIDE3MTQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTczNCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOworMDA2MSAxNzM0IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDE3RDIgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjsKKzAwNjEgMTdEMiAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxN0REIDAwNjI7MDBFMCAwNUFFIDE3REQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDE3REQgMDMxNSAwMDYyOzAwRTAgMDVBRSAxN0REIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxN0REIDAzMTUgMDA2MjsKKzAwNjEgMTdERCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMThBOSAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOworMDA2MSAxOEE5IDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAxOTM5IDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7CiswMDYxIDE5MzkgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMTkzQSAwMDYyOzAwRTAgMDVBRSAxOTNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxOTNBIDAzMTUgMDA2MjswMEUwIDA1QUUgMTkzQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMTkzQSAwMzE1IDAwNjI7CiswMDYxIDE5M0EgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMTkzQiAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOworMDA2MSAxOTNCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFBMTcgMDA2MjswMEUwIDA1QUUgMUExNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUExNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFBMTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFBMTcgMDMxNSAwMDYyOworMDA2MSAxQTE3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFBMTggMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjsKKzAwNjEgMUExOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxREMwIDAwNjI7MDBFMCAwNUFFIDFEQzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEQzAgMDMxNSAwMDYyOzAwRTAgMDVBRSAxREMwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxREMwIDAzMTUgMDA2MjsKKzAwNjEgMURDMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxREMxIDAwNjI7MDBFMCAwNUFFIDFEQzEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEQzEgMDMxNSAwMDYyOzAwRTAgMDVBRSAxREMxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxREMxIDAzMTUgMDA2MjsKKzAwNjEgMURDMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxREMyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7CiswMDYxIDFEQzIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMURDMyAwMDYyOzAwRTAgMDVBRSAxREMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxREMzIDAzMTUgMDA2MjswMEUwIDA1QUUgMURDMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMURDMyAwMzE1IDAwNjI7CiswMDYxIDFEQzMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEMCAwMDYyOzAwRTAgMDVBRSAyMEQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQwIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMCAwMzE1IDAwNjI7CiswMDYxIDIwRDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEMSAwMDYyOzAwRTAgMDVBRSAyMEQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQxIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMSAwMzE1IDAwNjI7CiswMDYxIDIwRDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDIgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7CiswMDYxIDIwRDIgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEMyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjsKKzAwNjEgMjBEMyAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDQgMDA2MjswMEUwIDA1QUUgMjBENCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENCAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDQgMDMxNSAwMDYyOworMDA2MSAyMEQ0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDUgMDA2MjswMEUwIDA1QUUgMjBENSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDUgMDMxNSAwMDYyOworMDA2MSAyMEQ1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDYgMDA2MjswMEUwIDA1QUUgMjBENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENiAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDYgMDMxNSAwMDYyOworMDA2MSAyMEQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDcgMDA2MjswMEUwIDA1QUUgMjBENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENyAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDcgMDMxNSAwMDYyOworMDA2MSAyMEQ3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQ4IDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOworMDA2MSAyMEQ4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDkgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7CiswMDYxIDIwRDkgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEQSAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjsKKzAwNjEgMjBEQSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwREIgMDA2MjswMEUwIDA1QUUgMjBEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwREIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREIgMDMxNSAwMDYyOworMDA2MSAyMERCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwREMgMDA2MjswMEUwIDA1QUUgMjBEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwREMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREMgMDMxNSAwMDYyOworMDA2MSAyMERDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRTEgMDA2MjswMEUwIDA1QUUgMjBFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTEgMDMxNSAwMDYyOworMDA2MSAyMEUxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEU1IDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOworMDA2MSAyMEU1IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRTYgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7CiswMDYxIDIwRTYgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEU3IDAwNjI7MDBFMCAwNUFFIDIwRTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU3IDAzMTUgMDA2MjsKKzAwNjEgMjBFNyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAyMEU4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7CiswMDYxIDIwRTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBFOSAwMDYyOzAwRTAgMDVBRSAyMEU5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU5IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBFOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFOSAwMzE1IDAwNjI7CiswMDYxIDIwRTkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRUEgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7CiswMDYxIDIwRUEgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFQiAwMDYyOzAwNjEgMDMzNCAyMEVCIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVCIDA5M0MgMDA2MjsKKzAwNjEgMjBFQiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRUIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVCIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUIgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTYgMzAyQSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjsKKzAwNjEgMzAyQSAwMzE2IDMwMkEgMDMxQiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMzAyQiAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOworMDA2MSAzMDJCIDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzVDIDAzMTUgMDMwMCAzMDJDIDAwNjI7MDBFMCAwMzE1IDMwMkMgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDMwMkMgMDM1QyAwMDYyOzAwRTAgMDMxNSAzMDJDIDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAzMDJDIDAzNUMgMDA2MjsKKzAwNjEgMzAyQyAwMzVDIDAzMTUgMDMwMCAwMDYyOzAwRTAgMzAyQyAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMzAyQyAwMzE1IDAzNUMgMDA2MjswMEUwIDMwMkMgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDMwMkMgMDMxNSAwMzVDIDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDMwMkQgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjsKKzAwNjEgMzAyRCAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOworMDA2MSAxRDE2RCAzMDJFIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMzAyRSAxRDE2RCAzMDJFIDA1OUEgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7CiswMDYxIDFEMTZEIDMwMkUgMDU5QSAzMDJGIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkYgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOworMDA2MSAzMDJGIDFEMTZEIDMwMkUgMDU5QSAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRiAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMDk0RCAzMDk5IDA5M0MgMzA5OSAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOworMDA2MSAzMDk5IDA5NEQgMzA5OSAwOTNDIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7CiswMDYxIDA5NEQgMzA5OSAwOTNDIDMwOUEgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjsKKzAwNjEgMzA5QSAwOTREIDMwOTkgMDkzQyAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSBBODA2IDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7CiswMDYxIEE4MDYgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDY0QiBGQjFFIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOworMDA2MSBGQjFFIDA2NEIgRkIxRSAwNUMyIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjAgMDA2MjswMEUwIDA1QUUgRkUyMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMCAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjAgMDMxNSAwMDYyOworMDA2MSBGRTIwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjEgMDA2MjswMEUwIDA1QUUgRkUyMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMSAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjEgMDMxNSAwMDYyOworMDA2MSBGRTIxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjIgMDA2MjswMEUwIDA1QUUgRkUyMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMiAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjIgMDMxNSAwMDYyOworMDA2MSBGRTIyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjMgMDA2MjswMEUwIDA1QUUgRkUyMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMyAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjMgMDMxNSAwMDYyOworMDA2MSBGRTIzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDEwQTBEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBMEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTBEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxMEEwRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBMEQgMDU5QSAwMDYyOworMDA2MSAxMEEwRCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxMEEwRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTBBMEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDEwQTBEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxMEEwRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMTBBMEYgMDA2MjswMEUwIDA1QUUgMTBBMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEwQTBGIDAzMTUgMDA2MjswMEUwIDA1QUUgMTBBMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEwQTBGIDAzMTUgMDA2MjsKKzAwNjEgMTBBMEYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMTBBMEYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEwQTBGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMEEwRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTBBMEYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDEwQTM4IDAwNjI7MDBFMCAwNUFFIDEwQTM4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxMEEzOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDEwQTM4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxMEEzOCAwMzE1IDAwNjI7CiswMDYxIDEwQTM4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDEwQTM4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMEEzOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTBBMzggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEwQTM4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMTBBMzkgMDA2MjswMDYxIDAzMzQgMTBBMzkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxMEEzOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDEwQTM5IDA5M0MgMDA2MjswMDYxIDAzMzQgMTBBMzkgMDkzQyAwMDYyOworMDA2MSAxMEEzOSAwOTNDIDAzMzQgMDA2MjswMDYxIDEwQTM5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMTBBMzkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxMEEzOSAwMzM0IDA5M0MgMDA2MjswMDYxIDEwQTM5IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxMEEzQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxMEEzQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTNBIDA1OUEgMDA2MjsKKzAwNjEgMTBBM0EgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMTBBM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDEwQTNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxMEEzQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTBBM0EgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDEwQTNGIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTBBM0YgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwQTNGIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMEEzRiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTBBM0YgMDVCMCAwMDYyOworMDA2MSAxMEEzRiAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxMEEzRiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTBBM0YgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwQTNGIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMEEzRiAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNjUgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7CiswMDYxIDFEMTY1IDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2NiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjsKKzAwNjEgMUQxNjYgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY2IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2NyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjcgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7CiswMDYxIDFEMTY3IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OCAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjggMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7CiswMDYxIDFEMTY4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OSAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7CiswMDYxIDFEMTY5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA1QUUgMUQxNkQgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDFEMTZEIDA1QUUgMUQxNkQgMzAyRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTZFIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZFIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOworMDA2MSAxRDE2RSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNkYgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7CiswMDYxIDFEMTZGIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE3MCAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MCAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjsKKzAwNjEgMUQxNzAgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcwIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTcxIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcxIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOworMDA2MSAxRDE3MSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzEgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNzIgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7CiswMDYxIDFEMTcyIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOworMDA2MSAxRDE3QyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0QgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0QgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7CiswMDYxIDFEMTdEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3RSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOworMDA2MSAxRDE3RiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0YgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxODAgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7CiswMDYxIDFEMTgwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjsKKzAwNjEgMUQxODEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTgyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOworMDA2MSAxRDE4MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjsKKzAwNjEgMUQxODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg2IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7CiswMDYxIDFEMTg2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4NyAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOworMDA2MSAxRDE4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODggMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjsKKzAwNjEgMUQxODggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg5IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7CiswMDYxIDFEMTg5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjsKKzAwNjEgMUQxOEEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMThCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOworMDA2MSAxRDE4QiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUEgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMUFCIDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7CiswMDYxIDFEMUFCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBQyAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOworMDA2MSAxRDFBQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUQgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMjQyIDAwNjI7MDBFMCAwNUFFIDFEMjQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDI0MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMjQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDI0MiAwMzE1IDAwNjI7CiswMDYxIDFEMjQyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMjQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDI0MyAwMDYyOzAwRTAgMDVBRSAxRDI0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQyNDMgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDI0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQyNDMgMDMxNSAwMDYyOworMDA2MSAxRDI0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDI0MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQyNDQgMDA2MjswMEUwIDA1QUUgMUQyNDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMjQ0IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQyNDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMjQ0IDAzMTUgMDA2MjsKKzAwNjEgMUQyNDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQyNDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDQgMDMwMCAwMzE1IDAwNjI7CisjCitAUGFydDMgIyBQUkkgIzI5IFRlc3QKKyMKKzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOworMDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7CiswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTsKKzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OworMEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7CiswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzsKKzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOworMEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7CiswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTsKKzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OworMENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7CiswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTsKKzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OworMENDQSAwMzM0IDBDRDU7MENDQSAwMzM0IDBDRDU7MENDNiAwQ0MyIDAzMzQgMENENTswQ0NBIDAzMzQgMENENTswQ0M2IDBDQzIgMDMzNCAwQ0Q1OworMEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7CiswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzsKKzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOworMEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7CiswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjsKKzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OworMEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7CiswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzsKKzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OworMEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7CiswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzsKKzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OworMEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7CiswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzsKKzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OworMEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7CiswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzsKKzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOworMTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7CisxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsKKzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OworMTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7CisxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsKKzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOworMTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7CisxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsKKzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OworMTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7CisxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsKKzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOworMTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7CisxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsKKzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOworMTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7CisxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsKKzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOworMTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7CisxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsKKzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OworMTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7CisxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsKKzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OworMTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7CisxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsKKzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOworMTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7CisxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsKKzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OworMTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7CitBQzU0IDAzMzQgMTFBRTtBQzU0IDAzMzQgMTFBRTsxMTAwIDExNjQgMDMzNCAxMUFFO0FDNTQgMDMzNCAxMUFFOzExMDAgMTE2NCAwMzM0IDExQUU7CitBQ0E4IDAzMzQgMTFCNTtBQ0E4IDAzMzQgMTFCNTsxMTAwIDExNjcgMDMzNCAxMUI1O0FDQTggMDMzNCAxMUI1OzExMDAgMTE2NyAwMzM0IDExQjU7CitBQ0ZDIDAzMzQgMTFCQztBQ0ZDIDAzMzQgMTFCQzsxMTAwIDExNkEgMDMzNCAxMUJDO0FDRkMgMDMzNCAxMUJDOzExMDAgMTE2QSAwMzM0IDExQkM7CitBREMwIDAzMzQgMTFBRTtBREMwIDAzMzQgMTFBRTsxMTAwIDExNzEgMDMzNCAxMUFFO0FEQzAgMDMzNCAxMUFFOzExMDAgMTE3MSAwMzM0IDExQUU7CitBRTE0IDAzMzQgMTFCNTtBRTE0IDAzMzQgMTFCNTsxMTAwIDExNzQgMDMzNCAxMUI1O0FFMTQgMDMzNCAxMUI1OzExMDAgMTE3NCAwMzM0IDExQjU7CitBRTY4IDAzMzQgMTFCQztBRTY4IDAzMzQgMTFCQzsxMTAxIDExNjIgMDMzNCAxMUJDO0FFNjggMDMzNCAxMUJDOzExMDEgMTE2MiAwMzM0IDExQkM7CitBRjJDIDAzMzQgMTFBRTtBRjJDIDAzMzQgMTFBRTsxMTAxIDExNjkgMDMzNCAxMUFFO0FGMkMgMDMzNCAxMUFFOzExMDEgMTE2OSAwMzM0IDExQUU7CitBRjgwIDAzMzQgMTFCNTtBRjgwIDAzMzQgMTFCNTsxMTAxIDExNkMgMDMzNCAxMUI1O0FGODAgMDMzNCAxMUI1OzExMDEgMTE2QyAwMzM0IDExQjU7CitBRkQ0IDAzMzQgMTFCQztBRkQ0IDAzMzQgMTFCQzsxMTAxIDExNkYgMDMzNCAxMUJDO0FGRDQgMDMzNCAxMUJDOzExMDEgMTE2RiAwMzM0IDExQkM7CitCMDk4IDAzMzQgMTFBRTtCMDk4IDAzMzQgMTFBRTsxMTAyIDExNjEgMDMzNCAxMUFFO0IwOTggMDMzNCAxMUFFOzExMDIgMTE2MSAwMzM0IDExQUU7CitCMEVDIDAzMzQgMTFCNTtCMEVDIDAzMzQgMTFCNTsxMTAyIDExNjQgMDMzNCAxMUI1O0IwRUMgMDMzNCAxMUI1OzExMDIgMTE2NCAwMzM0IDExQjU7CitCMTQwIDAzMzQgMTFCQztCMTQwIDAzMzQgMTFCQzsxMTAyIDExNjcgMDMzNCAxMUJDO0IxNDAgMDMzNCAxMUJDOzExMDIgMTE2NyAwMzM0IDExQkM7CitCMjA0IDAzMzQgMTFBRTtCMjA0IDAzMzQgMTFBRTsxMTAyIDExNkUgMDMzNCAxMUFFO0IyMDQgMDMzNCAxMUFFOzExMDIgMTE2RSAwMzM0IDExQUU7CitCMjU4IDAzMzQgMTFCNTtCMjU4IDAzMzQgMTFCNTsxMTAyIDExNzEgMDMzNCAxMUI1O0IyNTggMDMzNCAxMUI1OzExMDIgMTE3MSAwMzM0IDExQjU7CitCMkFDIDAzMzQgMTFCQztCMkFDIDAzMzQgMTFCQzsxMTAyIDExNzQgMDMzNCAxMUJDO0IyQUMgMDMzNCAxMUJDOzExMDIgMTE3NCAwMzM0IDExQkM7CitCMzcwIDAzMzQgMTFBRTtCMzcwIDAzMzQgMTFBRTsxMTAzIDExNjYgMDMzNCAxMUFFO0IzNzAgMDMzNCAxMUFFOzExMDMgMTE2NiAwMzM0IDExQUU7CitCM0M0IDAzMzQgMTFCNTtCM0M0IDAzMzQgMTFCNTsxMTAzIDExNjkgMDMzNCAxMUI1O0IzQzQgMDMzNCAxMUI1OzExMDMgMTE2OSAwMzM0IDExQjU7CitCNDE4IDAzMzQgMTFCQztCNDE4IDAzMzQgMTFCQzsxMTAzIDExNkMgMDMzNCAxMUJDO0I0MTggMDMzNCAxMUJDOzExMDMgMTE2QyAwMzM0IDExQkM7CitCNERDIDAzMzQgMTFBRTtCNERDIDAzMzQgMTFBRTsxMTAzIDExNzMgMDMzNCAxMUFFO0I0REMgMDMzNCAxMUFFOzExMDMgMTE3MyAwMzM0IDExQUU7CitCNTMwIDAzMzQgMTFCNTtCNTMwIDAzMzQgMTFCNTsxMTA0IDExNjEgMDMzNCAxMUI1O0I1MzAgMDMzNCAxMUI1OzExMDQgMTE2MSAwMzM0IDExQjU7CitCNTg0IDAzMzQgMTFCQztCNTg0IDAzMzQgMTFCQzsxMTA0IDExNjQgMDMzNCAxMUJDO0I1ODQgMDMzNCAxMUJDOzExMDQgMTE2NCAwMzM0IDExQkM7CitCNjQ4IDAzMzQgMTFBRTtCNjQ4IDAzMzQgMTFBRTsxMTA0IDExNkIgMDMzNCAxMUFFO0I2NDggMDMzNCAxMUFFOzExMDQgMTE2QiAwMzM0IDExQUU7CitCNjlDIDAzMzQgMTFCNTtCNjlDIDAzMzQgMTFCNTsxMTA0IDExNkUgMDMzNCAxMUI1O0I2OUMgMDMzNCAxMUI1OzExMDQgMTE2RSAwMzM0IDExQjU7CitCNkYwIDAzMzQgMTFCQztCNkYwIDAzMzQgMTFCQzsxMTA0IDExNzEgMDMzNCAxMUJDO0I2RjAgMDMzNCAxMUJDOzExMDQgMTE3MSAwMzM0IDExQkM7CitCN0I0IDAzMzQgMTFBRTtCN0I0IDAzMzQgMTFBRTsxMTA1IDExNjMgMDMzNCAxMUFFO0I3QjQgMDMzNCAxMUFFOzExMDUgMTE2MyAwMzM0IDExQUU7CitCODA4IDAzMzQgMTFCNTtCODA4IDAzMzQgMTFCNTsxMTA1IDExNjYgMDMzNCAxMUI1O0I4MDggMDMzNCAxMUI1OzExMDUgMTE2NiAwMzM0IDExQjU7CitCODVDIDAzMzQgMTFCQztCODVDIDAzMzQgMTFCQzsxMTA1IDExNjkgMDMzNCAxMUJDO0I4NUMgMDMzNCAxMUJDOzExMDUgMTE2OSAwMzM0IDExQkM7CitCOTIwIDAzMzQgMTFBRTtCOTIwIDAzMzQgMTFBRTsxMTA1IDExNzAgMDMzNCAxMUFFO0I5MjAgMDMzNCAxMUFFOzExMDUgMTE3MCAwMzM0IDExQUU7CitCOTc0IDAzMzQgMTFCNTtCOTc0IDAzMzQgMTFCNTsxMTA1IDExNzMgMDMzNCAxMUI1O0I5NzQgMDMzNCAxMUI1OzExMDUgMTE3MyAwMzM0IDExQjU7CitCOUM4IDAzMzQgMTFCQztCOUM4IDAzMzQgMTFCQzsxMTA2IDExNjEgMDMzNCAxMUJDO0I5QzggMDMzNCAxMUJDOzExMDYgMTE2MSAwMzM0IDExQkM7CitCQThDIDAzMzQgMTFBRTtCQThDIDAzMzQgMTFBRTsxMTA2IDExNjggMDMzNCAxMUFFO0JBOEMgMDMzNCAxMUFFOzExMDYgMTE2OCAwMzM0IDExQUU7CitCQUUwIDAzMzQgMTFCNTtCQUUwIDAzMzQgMTFCNTsxMTA2IDExNkIgMDMzNCAxMUI1O0JBRTAgMDMzNCAxMUI1OzExMDYgMTE2QiAwMzM0IDExQjU7CitCQjM0IDAzMzQgMTFCQztCQjM0IDAzMzQgMTFCQzsxMTA2IDExNkUgMDMzNCAxMUJDO0JCMzQgMDMzNCAxMUJDOzExMDYgMTE2RSAwMzM0IDExQkM7CitCQkY4IDAzMzQgMTFBRTtCQkY4IDAzMzQgMTFBRTsxMTA2IDExNzUgMDMzNCAxMUFFO0JCRjggMDMzNCAxMUFFOzExMDYgMTE3NSAwMzM0IDExQUU7CitCQzRDIDAzMzQgMTFCNTtCQzRDIDAzMzQgMTFCNTsxMTA3IDExNjMgMDMzNCAxMUI1O0JDNEMgMDMzNCAxMUI1OzExMDcgMTE2MyAwMzM0IDExQjU7CitCQ0EwIDAzMzQgMTFCQztCQ0EwIDAzMzQgMTFCQzsxMTA3IDExNjYgMDMzNCAxMUJDO0JDQTAgMDMzNCAxMUJDOzExMDcgMTE2NiAwMzM0IDExQkM7CitCRDY0IDAzMzQgMTFBRTtCRDY0IDAzMzQgMTFBRTsxMTA3IDExNkQgMDMzNCAxMUFFO0JENjQgMDMzNCAxMUFFOzExMDcgMTE2RCAwMzM0IDExQUU7CitCREI4IDAzMzQgMTFCNTtCREI4IDAzMzQgMTFCNTsxMTA3IDExNzAgMDMzNCAxMUI1O0JEQjggMDMzNCAxMUI1OzExMDcgMTE3MCAwMzM0IDExQjU7CitCRTBDIDAzMzQgMTFCQztCRTBDIDAzMzQgMTFCQzsxMTA3IDExNzMgMDMzNCAxMUJDO0JFMEMgMDMzNCAxMUJDOzExMDcgMTE3MyAwMzM0IDExQkM7CitCRUQwIDAzMzQgMTFBRTtCRUQwIDAzMzQgMTFBRTsxMTA4IDExNjUgMDMzNCAxMUFFO0JFRDAgMDMzNCAxMUFFOzExMDggMTE2NSAwMzM0IDExQUU7CitCRjI0IDAzMzQgMTFCNTtCRjI0IDAzMzQgMTFCNTsxMTA4IDExNjggMDMzNCAxMUI1O0JGMjQgMDMzNCAxMUI1OzExMDggMTE2OCAwMzM0IDExQjU7CitCRjc4IDAzMzQgMTFCQztCRjc4IDAzMzQgMTFCQzsxMTA4IDExNkIgMDMzNCAxMUJDO0JGNzggMDMzNCAxMUJDOzExMDggMTE2QiAwMzM0IDExQkM7CitDMDNDIDAzMzQgMTFBRTtDMDNDIDAzMzQgMTFBRTsxMTA4IDExNzIgMDMzNCAxMUFFO0MwM0MgMDMzNCAxMUFFOzExMDggMTE3MiAwMzM0IDExQUU7CitDMDkwIDAzMzQgMTFCNTtDMDkwIDAzMzQgMTFCNTsxMTA4IDExNzUgMDMzNCAxMUI1O0MwOTAgMDMzNCAxMUI1OzExMDggMTE3NSAwMzM0IDExQjU7CitDMEU0IDAzMzQgMTFCQztDMEU0IDAzMzQgMTFCQzsxMTA5IDExNjMgMDMzNCAxMUJDO0MwRTQgMDMzNCAxMUJDOzExMDkgMTE2MyAwMzM0IDExQkM7CitDMUE4IDAzMzQgMTFBRTtDMUE4IDAzMzQgMTFBRTsxMTA5IDExNkEgMDMzNCAxMUFFO0MxQTggMDMzNCAxMUFFOzExMDkgMTE2QSAwMzM0IDExQUU7CitDMUZDIDAzMzQgMTFCNTtDMUZDIDAzMzQgMTFCNTsxMTA5IDExNkQgMDMzNCAxMUI1O0MxRkMgMDMzNCAxMUI1OzExMDkgMTE2RCAwMzM0IDExQjU7CitDMjUwIDAzMzQgMTFCQztDMjUwIDAzMzQgMTFCQzsxMTA5IDExNzAgMDMzNCAxMUJDO0MyNTAgMDMzNCAxMUJDOzExMDkgMTE3MCAwMzM0IDExQkM7CitDMzE0IDAzMzQgMTFBRTtDMzE0IDAzMzQgMTFBRTsxMTBBIDExNjIgMDMzNCAxMUFFO0MzMTQgMDMzNCAxMUFFOzExMEEgMTE2MiAwMzM0IDExQUU7CitDMzY4IDAzMzQgMTFCNTtDMzY4IDAzMzQgMTFCNTsxMTBBIDExNjUgMDMzNCAxMUI1O0MzNjggMDMzNCAxMUI1OzExMEEgMTE2NSAwMzM0IDExQjU7CitDM0JDIDAzMzQgMTFCQztDM0JDIDAzMzQgMTFCQzsxMTBBIDExNjggMDMzNCAxMUJDO0MzQkMgMDMzNCAxMUJDOzExMEEgMTE2OCAwMzM0IDExQkM7CitDNDgwIDAzMzQgMTFBRTtDNDgwIDAzMzQgMTFBRTsxMTBBIDExNkYgMDMzNCAxMUFFO0M0ODAgMDMzNCAxMUFFOzExMEEgMTE2RiAwMzM0IDExQUU7CitDNEQ0IDAzMzQgMTFCNTtDNEQ0IDAzMzQgMTFCNTsxMTBBIDExNzIgMDMzNCAxMUI1O0M0RDQgMDMzNCAxMUI1OzExMEEgMTE3MiAwMzM0IDExQjU7CitDNTI4IDAzMzQgMTFCQztDNTI4IDAzMzQgMTFCQzsxMTBBIDExNzUgMDMzNCAxMUJDO0M1MjggMDMzNCAxMUJDOzExMEEgMTE3NSAwMzM0IDExQkM7CitDNUVDIDAzMzQgMTFBRTtDNUVDIDAzMzQgMTFBRTsxMTBCIDExNjcgMDMzNCAxMUFFO0M1RUMgMDMzNCAxMUFFOzExMEIgMTE2NyAwMzM0IDExQUU7CitDNjQwIDAzMzQgMTFCNTtDNjQwIDAzMzQgMTFCNTsxMTBCIDExNkEgMDMzNCAxMUI1O0M2NDAgMDMzNCAxMUI1OzExMEIgMTE2QSAwMzM0IDExQjU7CitDNjk0IDAzMzQgMTFCQztDNjk0IDAzMzQgMTFCQzsxMTBCIDExNkQgMDMzNCAxMUJDO0M2OTQgMDMzNCAxMUJDOzExMEIgMTE2RCAwMzM0IDExQkM7CitDNzU4IDAzMzQgMTFBRTtDNzU4IDAzMzQgMTFBRTsxMTBCIDExNzQgMDMzNCAxMUFFO0M3NTggMDMzNCAxMUFFOzExMEIgMTE3NCAwMzM0IDExQUU7CitDN0FDIDAzMzQgMTFCNTtDN0FDIDAzMzQgMTFCNTsxMTBDIDExNjIgMDMzNCAxMUI1O0M3QUMgMDMzNCAxMUI1OzExMEMgMTE2MiAwMzM0IDExQjU7CitDODAwIDAzMzQgMTFCQztDODAwIDAzMzQgMTFCQzsxMTBDIDExNjUgMDMzNCAxMUJDO0M4MDAgMDMzNCAxMUJDOzExMEMgMTE2NSAwMzM0IDExQkM7CitDOEM0IDAzMzQgMTFBRTtDOEM0IDAzMzQgMTFBRTsxMTBDIDExNkMgMDMzNCAxMUFFO0M4QzQgMDMzNCAxMUFFOzExMEMgMTE2QyAwMzM0IDExQUU7CitDOTE4IDAzMzQgMTFCNTtDOTE4IDAzMzQgMTFCNTsxMTBDIDExNkYgMDMzNCAxMUI1O0M5MTggMDMzNCAxMUI1OzExMEMgMTE2RiAwMzM0IDExQjU7CitDOTZDIDAzMzQgMTFCQztDOTZDIDAzMzQgMTFCQzsxMTBDIDExNzIgMDMzNCAxMUJDO0M5NkMgMDMzNCAxMUJDOzExMEMgMTE3MiAwMzM0IDExQkM7CitDQTMwIDAzMzQgMTFBRTtDQTMwIDAzMzQgMTFBRTsxMTBEIDExNjQgMDMzNCAxMUFFO0NBMzAgMDMzNCAxMUFFOzExMEQgMTE2NCAwMzM0IDExQUU7CitDQTg0IDAzMzQgMTFCNTtDQTg0IDAzMzQgMTFCNTsxMTBEIDExNjcgMDMzNCAxMUI1O0NBODQgMDMzNCAxMUI1OzExMEQgMTE2NyAwMzM0IDExQjU7CitDQUQ4IDAzMzQgMTFCQztDQUQ4IDAzMzQgMTFCQzsxMTBEIDExNkEgMDMzNCAxMUJDO0NBRDggMDMzNCAxMUJDOzExMEQgMTE2QSAwMzM0IDExQkM7CitDQjlDIDAzMzQgMTFBRTtDQjlDIDAzMzQgMTFBRTsxMTBEIDExNzEgMDMzNCAxMUFFO0NCOUMgMDMzNCAxMUFFOzExMEQgMTE3MSAwMzM0IDExQUU7CitDQkYwIDAzMzQgMTFCNTtDQkYwIDAzMzQgMTFCNTsxMTBEIDExNzQgMDMzNCAxMUI1O0NCRjAgMDMzNCAxMUI1OzExMEQgMTE3NCAwMzM0IDExQjU7CitDQzQ0IDAzMzQgMTFCQztDQzQ0IDAzMzQgMTFCQzsxMTBFIDExNjIgMDMzNCAxMUJDO0NDNDQgMDMzNCAxMUJDOzExMEUgMTE2MiAwMzM0IDExQkM7CitDRDA4IDAzMzQgMTFBRTtDRDA4IDAzMzQgMTFBRTsxMTBFIDExNjkgMDMzNCAxMUFFO0NEMDggMDMzNCAxMUFFOzExMEUgMTE2OSAwMzM0IDExQUU7CitDRDVDIDAzMzQgMTFCNTtDRDVDIDAzMzQgMTFCNTsxMTBFIDExNkMgMDMzNCAxMUI1O0NENUMgMDMzNCAxMUI1OzExMEUgMTE2QyAwMzM0IDExQjU7CitDREIwIDAzMzQgMTFCQztDREIwIDAzMzQgMTFCQzsxMTBFIDExNkYgMDMzNCAxMUJDO0NEQjAgMDMzNCAxMUJDOzExMEUgMTE2RiAwMzM0IDExQkM7CitDRTc0IDAzMzQgMTFBRTtDRTc0IDAzMzQgMTFBRTsxMTBGIDExNjEgMDMzNCAxMUFFO0NFNzQgMDMzNCAxMUFFOzExMEYgMTE2MSAwMzM0IDExQUU7CitDRUM4IDAzMzQgMTFCNTtDRUM4IDAzMzQgMTFCNTsxMTBGIDExNjQgMDMzNCAxMUI1O0NFQzggMDMzNCAxMUI1OzExMEYgMTE2NCAwMzM0IDExQjU7CitDRjFDIDAzMzQgMTFCQztDRjFDIDAzMzQgMTFCQzsxMTBGIDExNjcgMDMzNCAxMUJDO0NGMUMgMDMzNCAxMUJDOzExMEYgMTE2NyAwMzM0IDExQkM7CitDRkUwIDAzMzQgMTFBRTtDRkUwIDAzMzQgMTFBRTsxMTBGIDExNkUgMDMzNCAxMUFFO0NGRTAgMDMzNCAxMUFFOzExMEYgMTE2RSAwMzM0IDExQUU7CitEMDM0IDAzMzQgMTFCNTtEMDM0IDAzMzQgMTFCNTsxMTBGIDExNzEgMDMzNCAxMUI1O0QwMzQgMDMzNCAxMUI1OzExMEYgMTE3MSAwMzM0IDExQjU7CitEMDg4IDAzMzQgMTFCQztEMDg4IDAzMzQgMTFCQzsxMTBGIDExNzQgMDMzNCAxMUJDO0QwODggMDMzNCAxMUJDOzExMEYgMTE3NCAwMzM0IDExQkM7CitEMTRDIDAzMzQgMTFBRTtEMTRDIDAzMzQgMTFBRTsxMTEwIDExNjYgMDMzNCAxMUFFO0QxNEMgMDMzNCAxMUFFOzExMTAgMTE2NiAwMzM0IDExQUU7CitEMUEwIDAzMzQgMTFCNTtEMUEwIDAzMzQgMTFCNTsxMTEwIDExNjkgMDMzNCAxMUI1O0QxQTAgMDMzNCAxMUI1OzExMTAgMTE2OSAwMzM0IDExQjU7CitEMUY0IDAzMzQgMTFCQztEMUY0IDAzMzQgMTFCQzsxMTEwIDExNkMgMDMzNCAxMUJDO0QxRjQgMDMzNCAxMUJDOzExMTAgMTE2QyAwMzM0IDExQkM7CitEMkI4IDAzMzQgMTFBRTtEMkI4IDAzMzQgMTFBRTsxMTEwIDExNzMgMDMzNCAxMUFFO0QyQjggMDMzNCAxMUFFOzExMTAgMTE3MyAwMzM0IDExQUU7CitEMzBDIDAzMzQgMTFCNTtEMzBDIDAzMzQgMTFCNTsxMTExIDExNjEgMDMzNCAxMUI1O0QzMEMgMDMzNCAxMUI1OzExMTEgMTE2MSAwMzM0IDExQjU7CitEMzYwIDAzMzQgMTFCQztEMzYwIDAzMzQgMTFCQzsxMTExIDExNjQgMDMzNCAxMUJDO0QzNjAgMDMzNCAxMUJDOzExMTEgMTE2NCAwMzM0IDExQkM7CitENDI0IDAzMzQgMTFBRTtENDI0IDAzMzQgMTFBRTsxMTExIDExNkIgMDMzNCAxMUFFO0Q0MjQgMDMzNCAxMUFFOzExMTEgMTE2QiAwMzM0IDExQUU7CitENDc4IDAzMzQgMTFCNTtENDc4IDAzMzQgMTFCNTsxMTExIDExNkUgMDMzNCAxMUI1O0Q0NzggMDMzNCAxMUI1OzExMTEgMTE2RSAwMzM0IDExQjU7CitENENDIDAzMzQgMTFCQztENENDIDAzMzQgMTFCQzsxMTExIDExNzEgMDMzNCAxMUJDO0Q0Q0MgMDMzNCAxMUJDOzExMTEgMTE3MSAwMzM0IDExQkM7CitENTkwIDAzMzQgMTFBRTtENTkwIDAzMzQgMTFBRTsxMTEyIDExNjMgMDMzNCAxMUFFO0Q1OTAgMDMzNCAxMUFFOzExMTIgMTE2MyAwMzM0IDExQUU7CitENUU0IDAzMzQgMTFCNTtENUU0IDAzMzQgMTFCNTsxMTEyIDExNjYgMDMzNCAxMUI1O0Q1RTQgMDMzNCAxMUI1OzExMTIgMTE2NiAwMzM0IDExQjU7CitENjM4IDAzMzQgMTFCQztENjM4IDAzMzQgMTFCQzsxMTEyIDExNjkgMDMzNCAxMUJDO0Q2MzggMDMzNCAxMUJDOzExMTIgMTE2OSAwMzM0IDExQkM7CitENkZDIDAzMzQgMTFBRTtENkZDIDAzMzQgMTFBRTsxMTEyIDExNzAgMDMzNCAxMUFFO0Q2RkMgMDMzNCAxMUFFOzExMTIgMTE3MCAwMzM0IDExQUU7CitENzUwIDAzMzQgMTFCNTtENzUwIDAzMzQgMTFCNTsxMTEyIDExNzMgMDMzNCAxMUI1O0Q3NTAgMDMzNCAxMUI1OzExMTIgMTE3MyAwMzM0IDExQjU7CisjCisjIEVORCBPRiBGSUxFCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjExYTViMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLnR4dApAQCAtMCwwICsxLDI2MCBAQAorIyBTcGVjaWFsQ2FzaW5nLTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTI2LCAwMDozNTo0NSBHTVQgW01EXQorIworIyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZQorIyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuCisjIEZvciB0ZXJtcyBvZiB1c2UsIHNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Rlcm1zX29mX3VzZS5odG1sCisjIEZvciBkb2N1bWVudGF0aW9uLCBzZWUgVUNELmh0bWwKKyMKKyMgU3BlY2lhbCBDYXNpbmcgUHJvcGVydGllcworIworIyBUaGlzIGZpbGUgaXMgYSBzdXBwbGVtZW50IHRvIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorIyBJdCBjb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjYXNpbmcgb2YgVW5pY29kZSBjaGFyYWN0ZXJzLgorIyAoRm9yIGNvbXBhdGliaWxpdHksIHRoZSBVbmljb2RlRGF0YS50eHQgZmlsZSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yCisjIGNoYXJhY3RlcnMgd2hlcmUgdGhleSBhcmUgMS0xLCBhbmQgZG9lcyBub3QgaGF2ZSBsb2NhbGUtc3BlY2lmaWMgbWFwcGluZ3MuKQorIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkaXNjdXNzaW9uIG9mIENhc2UgTWFwcGluZ3MgaW4gdGhlIFVuaWNvZGUgU3RhbmRhcmQuCisjCisjIEFsbCBjb2RlIHBvaW50cyBub3QgbGlzdGVkIGluIHRoaXMgZmlsZSB0aGF0IGRvIG5vdCBoYXZlIGEgc2ltcGxlIGNhc2UgbWFwcGluZ3MKKyMgaW4gVW5pY29kZURhdGEudHh0IG1hcCB0byB0aGVtc2VsdmVzLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBGb3JtYXQKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgVGhlIGVudHJpZXMgaW4gdGhpcyBmaWxlIGFyZSBpbiB0aGUgZm9sbG93aW5nIG1hY2hpbmUtcmVhZGFibGUgZm9ybWF0OgorIworIyA8Y29kZT47IDxsb3dlcj4gOyA8dGl0bGU+IDsgPHVwcGVyPiA7ICg8Y29uZGl0aW9uX2xpc3Q+IDspPyAjIDxjb21tZW50PgorIworIyA8Y29kZT4sIDxsb3dlcj4sIDx0aXRsZT4sIGFuZCA8dXBwZXI+IHByb3ZpZGUgY2hhcmFjdGVyIHZhbHVlcyBpbiBoZXguIElmIHRoZXJlIGlzIG1vcmUKKyMgdGhhbiBvbmUgY2hhcmFjdGVyLCB0aGV5IGFyZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLiBPdGhlciB0aGFuIGFzIHVzZWQgdG8gc2VwYXJhdGUgCisjIGVsZW1lbnRzLCBzcGFjZXMgYXJlIHRvIGJlIGlnbm9yZWQuCisjCisjIFRoZSA8Y29uZGl0aW9uX2xpc3Q+IGlzIG9wdGlvbmFsLiBXaGVyZSBwcmVzZW50LCBpdCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBsb2NhbGUgSURzCisjIG9yIGNvbnRleHRzLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLiBJbiB0aGVzZSBjb25kaXRpb25zOgorIyAtIEEgY29uZGl0aW9uIGxpc3Qgb3ZlcnJpZGVzIHRoZSBub3JtYWwgYmVoYXZpb3IgaWYgYWxsIG9mIHRoZSBsaXN0ZWQgY29uZGl0aW9ucyBhcmUgdHJ1ZS4KKyMgLSBUaGUgY29udGV4dCBpcyBhbHdheXMgdGhlIGNvbnRleHQgb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIG9yaWdpbmFsIHN0cmluZywKKyMgICBOT1QgaW4gdGhlIHJlc3VsdGluZyBzdHJpbmcuCisjIC0gQ2FzZSBkaXN0aW5jdGlvbnMgaW4gdGhlIGNvbmRpdGlvbiBsaXN0IGFyZSBub3Qgc2lnbmlmaWNhbnQuCisjIC0gQ29uZGl0aW9ucyBwcmVjZWRlZCBieSAiTm90XyIgcmVwcmVzZW50IHRoZSBuZWdhdGlvbiBvZiB0aGUgY29uZGl0aW9uLgorIworIyBBIGxvY2FsZSBJRCBpcyBkZWZpbmVkIGJ5IHRha2luZyBhbnkgbGFuZ3VhZ2UgdGFnIGFzIGRlZmluZWQgYnkKKyMgUkZDIDMwNjYgKG9yIGl0cyBzdWNjZXNzb3IpLCBhbmQgcmVwbGFjaW5nICctJyBieSAnXycuCisjCisjIEEgY29udGV4dCBmb3IgYSBjaGFyYWN0ZXIgQyBpcyBkZWZpbmVkIGJ5IFNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9ucywKKyMgb24gcC4gODktOTAgb2YgVGhlIFVuaWNvZGUgU3RhbmRhcmQsIFZlcnNpb24gNC4wLCBhcyBhbWVuZGVkIGJ5IFVuaWNvZGUgNC4xLjAsCisjIGFzIHNwZWNpZmllZCBpbiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3ZlcnNpb25zL1VuaWNvZGU0LjEuMC8KKyMKKyMgUGFyc2VycyBvZiB0aGlzIGZpbGUgbXVzdCBiZSBwcmVwYXJlZCB0byBkZWFsIHdpdGggZnV0dXJlIGFkZGl0aW9ucyB0byB0aGlzIGZvcm1hdDoKKyMgICogQWRkaXRpb25hbCBjb250ZXh0cworIyAgKiBBZGRpdGlvbmFsIGZpZWxkcworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFVuY29uZGl0aW9uYWwgbWFwcGluZ3MKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBUaGUgR2VybWFuIGVzLXplZCBpcyBzcGVjaWFsLS10aGUgbm9ybWFsIG1hcHBpbmcgaXMgdG8gU1MuCisjIE5vdGU6IHRoZSB0aXRsZWNhc2Ugc2hvdWxkIG5ldmVyIG9jY3VyIGluIHByYWN0aWNlLiBJdCBpcyBlcXVhbCB0byB0aXRsZWNhc2UodXBwZXJjYXNlKDxlcy16ZWQ+KSkKKworMDBERjsgMDBERjsgMDA1MyAwMDczOyAwMDUzIDAwNTM7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKworIyBQcmVzZXJ2ZSBjYW5vbmljYWwgZXF1aXZhbGVuY2UgZm9yIEkgd2l0aCBkb3QuIFR1cmtpYyBpcyBoYW5kbGVkIGJlbG93LgorCiswMTMwOyAwMDY5IDAzMDc7IDAxMzA7IDAxMzA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorCisjIExpZ2F0dXJlcworCitGQjAwOyBGQjAwOyAwMDQ2IDAwNjY7IDAwNDYgMDA0NjsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRgorRkIwMTsgRkIwMTsgMDA0NiAwMDY5OyAwMDQ2IDAwNDk7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkkKK0ZCMDI7IEZCMDI7IDAwNDYgMDA2QzsgMDA0NiAwMDRDOyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZMCitGQjAzOyBGQjAzOyAwMDQ2IDAwNjYgMDA2OTsgMDA0NiAwMDQ2IDAwNDk7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZJCitGQjA0OyBGQjA0OyAwMDQ2IDAwNjYgMDA2QzsgMDA0NiAwMDQ2IDAwNEM7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZMCitGQjA1OyBGQjA1OyAwMDUzIDAwNzQ7IDAwNTMgMDA1NDsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBMT05HIFMgVAorRkIwNjsgRkIwNjsgMDA1MyAwMDc0OyAwMDUzIDAwNTQ7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgU1QKKworMDU4NzsgMDU4NzsgMDUzNSAwNTgyOyAwNTM1IDA1NTI7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgRUNIIFlJV04KK0ZCMTM7IEZCMTM7IDA1NDQgMDU3NjsgMDU0NCAwNTQ2OyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBOT1cKK0ZCMTQ7IEZCMTQ7IDA1NDQgMDU2NTsgMDU0NCAwNTM1OyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBFQ0gKK0ZCMTU7IEZCMTU7IDA1NDQgMDU2QjsgMDU0NCAwNTNCOyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBJTkkKK0ZCMTY7IEZCMTY7IDA1NEUgMDU3NjsgMDU0RSAwNTQ2OyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIFZFVyBOT1cKK0ZCMTc7IEZCMTc7IDA1NDQgMDU2RDsgMDU0NCAwNTNEOyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBYRUgKKworIyBObyBjb3JyZXNwb25kaW5nIHVwcGVyY2FzZSBwcmVjb21wb3NlZCBjaGFyYWN0ZXIKKworMDE0OTsgMDE0OTsgMDJCQyAwMDRFOyAwMkJDIDAwNEU7ICMgTEFUSU4gU01BTEwgTEVUVEVSIE4gUFJFQ0VERUQgQlkgQVBPU1RST1BIRQorMDM5MDsgMDM5MDsgMDM5OSAwMzA4IDAzMDE7IDAzOTkgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBUT05PUworMDNCMDsgMDNCMDsgMDNBNSAwMzA4IDAzMDE7IDAzQTUgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBUT05PUworMDFGMDsgMDFGMDsgMDA0QSAwMzBDOyAwMDRBIDAzMEM7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDQVJPTgorMUU5NjsgMUU5NjsgMDA0OCAwMzMxOyAwMDQ4IDAzMzE7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBMSU5FIEJFTE9XCisxRTk3OyAxRTk3OyAwMDU0IDAzMDg7IDAwNTQgMDMwODsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERJQUVSRVNJUworMUU5ODsgMUU5ODsgMDA1NyAwMzBBOyAwMDU3IDAzMEE7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBSSU5HIEFCT1ZFCisxRTk5OyAxRTk5OyAwMDU5IDAzMEE7IDAwNTkgMDMwQTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFJJTkcgQUJPVkUKKzFFOUE7IDFFOUE7IDAwNDEgMDJCRTsgMDA0MSAwMkJFOyAjIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklHSFQgSEFMRiBSSU5HCisxRjUwOyAxRjUwOyAwM0E1IDAzMTM7IDAzQTUgMDMxMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJCisxRjUyOyAxRjUyOyAwM0E1IDAzMTMgMDMwMDsgMDNBNSAwMzEzIDAzMDA7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUEKKzFGNTQ7IDFGNTQ7IDAzQTUgMDMxMyAwMzAxOyAwM0E1IDAzMTMgMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBCisxRjU2OyAxRjU2OyAwM0E1IDAzMTMgMDM0MjsgMDNBNSAwMzEzIDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkKKzFGQjY7IDFGQjY7IDAzOTEgMDM0MjsgMDM5MSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JCisxRkM2OyAxRkM2OyAwMzk3IDAzNDI7IDAzOTcgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkKKzFGRDI7IDFGRDI7IDAzOTkgMDMwOCAwMzAwOyAwMzk5IDAzMDggMDMwMDsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUEKKzFGRDM7IDFGRDM7IDAzOTkgMDMwOCAwMzAxOyAwMzk5IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgT1hJQQorMUZENjsgMUZENjsgMDM5OSAwMzQyOyAwMzk5IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQRVJJU1BPTUVOSQorMUZENzsgMUZENzsgMDM5OSAwMzA4IDAzNDI7IDAzOTkgMDMwOCAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSQorMUZFMjsgMUZFMjsgMDNBNSAwMzA4IDAzMDA7IDAzQTUgMDMwOCAwMzAwOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQQorMUZFMzsgMUZFMzsgMDNBNSAwMzA4IDAzMDE7IDAzQTUgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisxRkU0OyAxRkU0OyAwM0ExIDAzMTM7IDAzQTEgMDMxMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggUFNJTEkKKzFGRTY7IDFGRTY7IDAzQTUgMDM0MjsgMDNBNSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUEVSSVNQT01FTkkKKzFGRTc7IDFGRTc7IDAzQTUgMDMwOCAwMzQyOyAwM0E1IDAzMDggMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkkKKzFGRjY7IDFGRjY7IDAzQTkgMDM0MjsgMDNBOSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBFUklTUE9NRU5JCisKKyMgSU1QT1JUQU5ULXdoZW4gY2FwaXRhbGl6aW5nIGlvdGEtc3Vic2NyaXB0ICgwMzQ1KQorIyAgSXQgTVVTVCBiZSBpbiBub3JtYWxpemVkIGZvcm0tLW1vdmVkIHRvIHRoZSBlbmQgb2YgYW55IHNlcXVlbmNlIG9mIGNvbWJpbmluZyBtYXJrcy4KKyMgIFRoaXMgaXMgYmVjYXVzZSBsb2dpY2FsbHkgaXQgcmVwcmVzZW50cyBhIGZvbGxvd2luZyBiYXNlIGNoYXJhY3RlciEKKyMgIEUuZy4gPGlvdGFfc3Vic2NyaXB0PiAoPE1uPiB8IDxNYz4gfCA8TWU+KSsgPT4gKDxNbj4gfCA8TWM+IHwgPE1lPikrIDxpb3RhX3N1YnNjcmlwdD4KKyMgSXQgc2hvdWxkIG5ldmVyIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gYSB3b3JkLCBzbyBpbiB0aXRsZWNhc2luZyBpdCBjYW4gYmUgbGVmdCBhcyBpcy4KKworIyBUaGUgZm9sbG93aW5nIGNhc2VzIGFyZSBhbHJlYWR5IGluIHRoZSBVbmljb2RlRGF0YSBmaWxlLCBzbyBhcmUgb25seSBjb21tZW50ZWQgaGVyZS4KKworIyAwMzQ1OyAwMzQ1OyAwMzQ1OyAwMzk5OyAjIENPTUJJTklORyBHUkVFSyBZUE9HRUdSQU1NRU5JCisKKyMgQWxsIGxldHRlcnMgd2l0aCBZUE9HRUdSQU1NRU5JIChpb3RhLXN1YnNjcmlwdCkgb3IgUFJPU0dFR1JBTU1FTkkgKGlvdGEgYWRzY3JpcHQpCisjIGhhdmUgc3BlY2lhbCB1cHBlcmNhc2VzLgorIyBOb3RlOiBjaGFyYWN0ZXJzIHdpdGggUFJPU0dFR1JBTU1FTkkgYXJlIGFjdHVhbGx5IHRpdGxlY2FzZSwgbm90IHVwcGVyY2FzZSEKKworMUY4MDsgMUY4MDsgMUY4ODsgMUYwOCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JCisxRjgxOyAxRjgxOyAxRjg5OyAxRjA5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODI7IDFGODI7IDFGOEE7IDFGMEEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODM7IDFGODM7IDFGOEI7IDFGMEIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODQ7IDFGODQ7IDFGOEM7IDFGMEMgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NTsgMUY4NTsgMUY4RDsgMUYwRCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjg2OyAxRjg2OyAxRjhFOyAxRjBFIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjg3OyAxRjg3OyAxRjhGOyAxRjBGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjg4OyAxRjgwOyAxRjg4OyAxRjA4IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGODk7IDFGODE7IDFGODk7IDFGMDkgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4QTsgMUY4MjsgMUY4QTsgMUYwQSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4QjsgMUY4MzsgMUY4QjsgMUYwQiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4QzsgMUY4NDsgMUY4QzsgMUYwQyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhEOyAxRjg1OyAxRjhEOyAxRjBEIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEU7IDFGODY7IDFGOEU7IDFGMEUgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEY7IDFGODc7IDFGOEY7IDFGMEYgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOTA7IDFGOTA7IDFGOTg7IDFGMjggMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTE7IDFGOTE7IDFGOTk7IDFGMjkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTI7IDFGOTI7IDFGOUE7IDFGMkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjkzOyAxRjkzOyAxRjlCOyAxRjJCIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NDsgMUY5NDsgMUY5QzsgMUYyQyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NTsgMUY5NTsgMUY5RDsgMUYyRCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NjsgMUY5NjsgMUY5RTsgMUYyRSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTc7IDFGOTc7IDFGOUY7IDFGMkYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjk4OyAxRjkwOyAxRjk4OyAxRjI4IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjk5OyAxRjkxOyAxRjk5OyAxRjI5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlBOyAxRjkyOyAxRjlBOyAxRjJBIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5QjsgMUY5MzsgMUY5QjsgMUYyQiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUM7IDFGOTQ7IDFGOUM7IDFGMkMgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUQ7IDFGOTU7IDFGOUQ7IDFGMkQgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUU7IDFGOTY7IDFGOUU7IDFGMkUgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlGOyAxRjk3OyAxRjlGOyAxRjJGIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBMDsgMUZBMDsgMUZBODsgMUY2OCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JCisxRkExOyAxRkExOyAxRkE5OyAxRjY5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTI7IDFGQTI7IDFGQUE7IDFGNkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTM7IDFGQTM7IDFGQUI7IDFGNkIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTQ7IDFGQTQ7IDFGQUM7IDFGNkMgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNTsgMUZBNTsgMUZBRDsgMUY2RCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkE2OyAxRkE2OyAxRkFFOyAxRjZFIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkE3OyAxRkE3OyAxRkFGOyAxRjZGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkE4OyAxRkEwOyAxRkE4OyAxRjY4IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQTk7IDFGQTE7IDFGQTk7IDFGNjkgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBQTsgMUZBMjsgMUZBQTsgMUY2QSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBQjsgMUZBMzsgMUZBQjsgMUY2QiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBQzsgMUZBNDsgMUZBQzsgMUY2QyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFEOyAxRkE1OyAxRkFEOyAxRjZEIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUU7IDFGQTY7IDFGQUU7IDFGNkUgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUY7IDFGQTc7IDFGQUY7IDFGNkYgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQjM7IDFGQjM7IDFGQkM7IDAzOTEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkJDOyAxRkIzOyAxRkJDOyAwMzkxIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQUk9TR0VHUkFNTUVOSQorMUZDMzsgMUZDMzsgMUZDQzsgMDM5NyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkNDOyAxRkMzOyAxRkNDOyAwMzk3IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFJPU0dFR1JBTU1FTkkKKzFGRjM7IDFGRjM7IDFGRkM7IDAzQTkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkZDOyAxRkYzOyAxRkZDOyAwM0E5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQUk9TR0VHUkFNTUVOSQorCisjIFNvbWUgY2hhcmFjdGVycyB3aXRoIFlQT0dFR1JBTU1FTkkgYWxzbyBoYXZlIG5vIGNvcnJlc3BvbmRpbmcgdGl0bGVjYXNlcworCisxRkIyOyAxRkIyOyAxRkJBIDAzNDU7IDFGQkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZCNDsgMUZCNDsgMDM4NiAwMzQ1OyAwMzg2IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZDMjsgMUZDMjsgMUZDQSAwMzQ1OyAxRkNBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkM0OyAxRkM0OyAwMzg5IDAzNDU7IDAzODkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZGMjsgMUZGMjsgMUZGQSAwMzQ1OyAxRkZBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGRjQ7IDFGRjQ7IDAzOEYgMDM0NTsgMDM4RiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKworMUZCNzsgMUZCNzsgMDM5MSAwMzQyIDAzNDU7IDAzOTEgMDM0MiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkM3OyAxRkM3OyAwMzk3IDAzNDIgMDM0NTsgMDM5NyAwMzQyIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkY3OyAxRkY3OyAwM0E5IDAzNDIgMDM0NTsgMDNBOSAwMzQyIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBDb25kaXRpb25hbCBtYXBwaW5ncworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFNwZWNpYWwgY2FzZSBmb3IgZmluYWwgZm9ybSBvZiBzaWdtYQorCiswM0EzOyAwM0MyOyAwM0EzOyAwM0EzOyBGaW5hbF9TaWdtYTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBTSUdNQQorCisjIE5vdGU6IHRoZSBmb2xsb3dpbmcgY2FzZXMgZm9yIG5vbi1maW5hbCBhcmUgYWxyZWFkeSBpbiB0aGUgVW5pY29kZURhdGEgZmlsZS4KKworIyAwM0EzOyAwM0MzOyAwM0EzOyAwM0EzOyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BCisjIDAzQzM7IDAzQzM7IDAzQTM7IDAzQTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFNJR01BCisjIDAzQzI7IDAzQzI7IDAzQTM7IDAzQTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEZJTkFMIFNJR01BCisKKyMgTm90ZTogdGhlIGZvbGxvd2luZyBjYXNlcyBhcmUgbm90IGluY2x1ZGVkLCBzaW5jZSB0aGV5IHdvdWxkIGNhc2UtZm9sZCBpbiBsb3dlcmNhc2luZworCisjIDAzQzM7IDAzQzI7IDAzQTM7IDAzQTM7IEZpbmFsX1NpZ21hOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBTSUdNQQorIyAwM0MyOyAwM0MzOyAwM0EzOyAwM0EzOyBOb3RfRmluYWxfU2lnbWE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEZJTkFMIFNJR01BCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgTG9jYWxlLXNlbnNpdGl2ZSBtYXBwaW5ncworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIExpdGh1YW5pYW4KKworIyBMaXRodWFuaWFuIHJldGFpbnMgdGhlIGRvdCBpbiBhIGxvd2VyY2FzZSBpIHdoZW4gZm9sbG93ZWQgYnkgYWNjZW50cy4KKworIyBSZW1vdmUgRE9UIEFCT1ZFIGFmdGVyICJpIiB3aXRoIHVwcGVyIG9yIHRpdGxlY2FzZQorCiswMzA3OyAwMzA3OyA7IDsgbHQgQWZ0ZXJfU29mdF9Eb3R0ZWQ7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorCisjIEludHJvZHVjZSBhbiBleHBsaWNpdCBkb3QgYWJvdmUgd2hlbiBsb3dlcmNhc2luZyBjYXBpdGFsIEkncyBhbmQgSidzCisjIHdoZW5ldmVyIHRoZXJlIGFyZSBtb3JlIGFjY2VudHMgYWJvdmUuCisjIChvZiB0aGUgYWNjZW50cyB1c2VkIGluIExpdGh1YW5pYW46IGdyYXZlLCBhY3V0ZSwgdGlsZGUgYWJvdmUsIGFuZCBvZ29uZWspCisKKzAwNDk7IDAwNjkgMDMwNzsgMDA0OTsgMDA0OTsgbHQgTW9yZV9BYm92ZTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCiswMDRBOyAwMDZBIDAzMDc7IDAwNEE7IDAwNEE7IGx0IE1vcmVfQWJvdmU7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSgorMDEyRTsgMDEyRiAwMzA3OyAwMTJFOyAwMTJFOyBsdCBNb3JlX0Fib3ZlOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUsKKzAwQ0M7IDAwNjkgMDMwNyAwMzAwOyAwMENDOyAwMENDOyBsdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkUKKzAwQ0Q7IDAwNjkgMDMwNyAwMzAxOyAwMENEOyAwMENEOyBsdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKzAxMjg7IDAwNjkgMDMwNyAwMzAzOyAwMTI4OyAwMTI4OyBsdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFR1cmtpc2ggYW5kIEF6ZXJpCisKKyMgSSBhbmQgaS1kb3RsZXNzOyBJLWRvdCBhbmQgaSBhcmUgY2FzZSBwYWlycyBpbiBUdXJraXNoIGFuZCBBemVyaQorIyBUaGUgZm9sbG93aW5nIHJ1bGVzIGhhbmRsZSB0aG9zZSBjYXNlcy4KKworMDEzMDsgMDA2OTsgMDEzMDsgMDEzMDsgdHI7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorMDEzMDsgMDA2OTsgMDEzMDsgMDEzMDsgYXo7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorCisjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIEkgKyBkb3RfYWJvdmUsIHdoaWNoIHdpbGwgdHVybiBpbnRvIGkuCisjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgSS1kb3RfYWJvdmUKKworMDMwNzsgOyAwMzA3OyAwMzA3OyB0ciBBZnRlcl9JOyAjIENPTUJJTklORyBET1QgQUJPVkUKKzAzMDc7IDsgMDMwNzsgMDMwNzsgYXogQWZ0ZXJfSTsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisKKyMgV2hlbiBsb3dlcmNhc2luZywgdW5sZXNzIGFuIEkgaXMgYmVmb3JlIGEgZG90X2Fib3ZlLCBpdCB0dXJucyBpbnRvIGEgZG90bGVzcyBpLgorCiswMDQ5OyAwMTMxOyAwMDQ5OyAwMDQ5OyB0ciBOb3RfQmVmb3JlX0RvdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCiswMDQ5OyAwMTMxOyAwMDQ5OyAwMDQ5OyBheiBOb3RfQmVmb3JlX0RvdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisKKyMgV2hlbiB1cHBlcmNhc2luZywgaSB0dXJucyBpbnRvIGEgZG90dGVkIGNhcGl0YWwgSQorCiswMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyB0cjsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorMDA2OTsgMDA2OTsgMDEzMDsgMDEzMDsgYXo7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEkKKworIyBOb3RlOiB0aGUgZm9sbG93aW5nIGNhc2UgaXMgYWxyZWFkeSBpbiB0aGUgVW5pY29kZURhdGEgZmlsZS4KKworIyAwMTMxOyAwMTMxOyAwMDQ5OyAwMDQ5OyB0cjsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBJCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTkwMzY0ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLnR4dApAQCAtMCwwICsxLDE3NzIwIEBACiswMDAwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO05VTEw7Ozs7CiswMDAxOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIEhFQURJTkc7Ozs7CiswMDAyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIFRFWFQ7Ozs7CiswMDAzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBURVhUOzs7OworMDAwNDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgVFJBTlNNSVNTSU9OOzs7OworMDAwNTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTlFVSVJZOzs7OworMDAwNjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtBQ0tOT1dMRURHRTs7OzsKKzAwMDc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QkVMTDs7OzsKKzAwMDg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QkFDS1NQQUNFOzs7OworMDAwOTs8Y29udHJvbD47Q2M7MDtTOzs7OztOO0NIQVJBQ1RFUiBUQUJVTEFUSU9OOzs7OworMDAwQTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0xJTkUgRkVFRCAoTEYpOzs7OworMDAwQjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO0xJTkUgVEFCVUxBVElPTjs7OzsKKzAwMEM7PGNvbnRyb2w+O0NjOzA7V1M7Ozs7O047Rk9STSBGRUVEIChGRik7Ozs7CiswMDBEOzxjb250cm9sPjtDYzswO0I7Ozs7O047Q0FSUklBR0UgUkVUVVJOIChDUik7Ozs7CiswMDBFOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NISUZUIE9VVDs7OzsKKzAwMEY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0hJRlQgSU47Ozs7CiswMDEwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RBVEEgTElOSyBFU0NBUEU7Ozs7CiswMDExOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIE9ORTs7OzsKKzAwMTI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgVFdPOzs7OworMDAxMzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzAwMTQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzAwMTU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CiswMDE2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NZTkNIUk9OT1VTIElETEU7Ozs7CiswMDE3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CiswMDE4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NBTkNFTDs7OzsKKzAwMTk7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIE1FRElVTTs7OzsKKzAwMUE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1VCU1RJVFVURTs7OzsKKzAwMUI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RVNDQVBFOzs7OworMDAxQzs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0lORk9STUFUSU9OIFNFUEFSQVRPUiBGT1VSOzs7OworMDAxRDs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0lORk9STUFUSU9OIFNFUEFSQVRPUiBUSFJFRTs7OzsKKzAwMUU7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtJTkZPUk1BVElPTiBTRVBBUkFUT1IgVFdPOzs7OworMDAxRjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO0lORk9STUFUSU9OIFNFUEFSQVRPUiBPTkU7Ozs7CiswMDIwO1NQQUNFO1pzOzA7V1M7Ozs7O047Ozs7OworMDAyMTtFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDAyMjtRVU9UQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwMjM7TlVNQkVSIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI0O0RPTExBUiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDAyNTtQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI2O0FNUEVSU0FORDtQbzswO09OOzs7OztOOzs7OzsKKzAwMjc7QVBPU1RST1BIRTtQbzswO09OOzs7OztOO0FQT1NUUk9QSEUtUVVPVEU7Ozs7CiswMDI4O0xFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMDAyOTtSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzs7OztZO0NMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CiswMDJBO0FTVEVSSVNLO1BvOzA7T047Ozs7O047Ozs7OworMDAyQjtQTFVTIFNJR047U207MDtFUzs7Ozs7Tjs7Ozs7CiswMDJDO0NPTU1BO1BvOzA7Q1M7Ozs7O047Ozs7OworMDAyRDtIWVBIRU4tTUlOVVM7UGQ7MDtFUzs7Ozs7Tjs7Ozs7CiswMDJFO0ZVTEwgU1RPUDtQbzswO0NTOzs7OztOO1BFUklPRDs7OzsKKzAwMkY7U09MSURVUztQbzswO0NTOzs7OztOO1NMQVNIOzs7OworMDAzMDtESUdJVCBaRVJPO05kOzA7RU47OzA7MDswO047Ozs7OworMDAzMTtESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7Tjs7Ozs7CiswMDMyO0RJR0lUIFRXTztOZDswO0VOOzsyOzI7MjtOOzs7OzsKKzAwMzM7RElHSVQgVEhSRUU7TmQ7MDtFTjs7MzszOzM7Tjs7Ozs7CiswMDM0O0RJR0lUIEZPVVI7TmQ7MDtFTjs7NDs0OzQ7Tjs7Ozs7CiswMDM1O0RJR0lUIEZJVkU7TmQ7MDtFTjs7NTs1OzU7Tjs7Ozs7CiswMDM2O0RJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOOzs7OzsKKzAwMzc7RElHSVQgU0VWRU47TmQ7MDtFTjs7Nzs3Ozc7Tjs7Ozs7CiswMDM4O0RJR0lUIEVJR0hUO05kOzA7RU47Ozg7ODs4O047Ozs7OworMDAzOTtESUdJVCBOSU5FO05kOzA7RU47Ozk7OTs5O047Ozs7OworMDAzQTtDT0xPTjtQbzswO0NTOzs7OztOOzs7OzsKKzAwM0I7U0VNSUNPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMDAzQztMRVNTLVRIQU4gU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzAwM0Q7RVFVQUxTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDNFO0dSRUFURVItVEhBTiBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMDAzRjtRVUVTVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDA0MDtDT01NRVJDSUFMIEFUO1BvOzA7T047Ozs7O047Ozs7OworMDA0MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs7Ozs7Tjs7OzswMDYxOworMDA0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCO0x1OzA7TDs7Ozs7Tjs7OzswMDYyOworMDA0MztMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0x1OzA7TDs7Ozs7Tjs7OzswMDYzOworMDA0NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0x1OzA7TDs7Ozs7Tjs7OzswMDY0OworMDA0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs7Ozs7Tjs7OzswMDY1OworMDA0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0x1OzA7TDs7Ozs7Tjs7OzswMDY2OworMDA0NztMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0x1OzA7TDs7Ozs7Tjs7OzswMDY3OworMDA0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs7Ozs7Tjs7OzswMDY4OworMDA0OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7Tjs7OzswMDY5OworMDA0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0x1OzA7TDs7Ozs7Tjs7OzswMDZBOworMDA0QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLO0x1OzA7TDs7Ozs7Tjs7OzswMDZCOworMDA0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0x1OzA7TDs7Ozs7Tjs7OzswMDZDOworMDA0RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0x1OzA7TDs7Ozs7Tjs7OzswMDZEOworMDA0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOO0x1OzA7TDs7Ozs7Tjs7OzswMDZFOworMDA0RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzswMDZGOworMDA1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0x1OzA7TDs7Ozs7Tjs7OzswMDcwOworMDA1MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBRO0x1OzA7TDs7Ozs7Tjs7OzswMDcxOworMDA1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0x1OzA7TDs7Ozs7Tjs7OzswMDcyOworMDA1MztMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0x1OzA7TDs7Ozs7Tjs7OzswMDczOworMDA1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUO0x1OzA7TDs7Ozs7Tjs7OzswMDc0OworMDA1NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswMDc1OworMDA1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0x1OzA7TDs7Ozs7Tjs7OzswMDc2OworMDA1NztMQVRJTiBDQVBJVEFMIExFVFRFUiBXO0x1OzA7TDs7Ozs7Tjs7OzswMDc3OworMDA1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0x1OzA7TDs7Ozs7Tjs7OzswMDc4OworMDA1OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0x1OzA7TDs7Ozs7Tjs7OzswMDc5OworMDA1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaO0x1OzA7TDs7Ozs7Tjs7OzswMDdBOworMDA1QjtMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBTUVVBUkUgQlJBQ0tFVDs7OzsKKzAwNUM7UkVWRVJTRSBTT0xJRFVTO1BvOzA7T047Ozs7O047QkFDS1NMQVNIOzs7OworMDA1RDtSSUdIVCBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CiswMDVFO0NJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047Ozs7O047U1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDA1RjtMT1cgTElORTtQYzswO09OOzs7OztOO1NQQUNJTkcgVU5ERVJTQ09SRTs7OzsKKzAwNjA7R1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047U1BBQ0lORyBHUkFWRTs7OzsKKzAwNjE7TEFUSU4gU01BTEwgTEVUVEVSIEE7TGw7MDtMOzs7OztOOzs7MDA0MTs7MDA0MQorMDA2MjtMQVRJTiBTTUFMTCBMRVRURVIgQjtMbDswO0w7Ozs7O047OzswMDQyOzswMDQyCiswMDYzO0xBVElOIFNNQUxMIExFVFRFUiBDO0xsOzA7TDs7Ozs7Tjs7OzAwNDM7OzAwNDMKKzAwNjQ7TEFUSU4gU01BTEwgTEVUVEVSIEQ7TGw7MDtMOzs7OztOOzs7MDA0NDs7MDA0NAorMDA2NTtMQVRJTiBTTUFMTCBMRVRURVIgRTtMbDswO0w7Ozs7O047OzswMDQ1OzswMDQ1CiswMDY2O0xBVElOIFNNQUxMIExFVFRFUiBGO0xsOzA7TDs7Ozs7Tjs7OzAwNDY7OzAwNDYKKzAwNjc7TEFUSU4gU01BTEwgTEVUVEVSIEc7TGw7MDtMOzs7OztOOzs7MDA0Nzs7MDA0NworMDA2ODtMQVRJTiBTTUFMTCBMRVRURVIgSDtMbDswO0w7Ozs7O047OzswMDQ4OzswMDQ4CiswMDY5O0xBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7Tjs7OzAwNDk7OzAwNDkKKzAwNkE7TEFUSU4gU01BTEwgTEVUVEVSIEo7TGw7MDtMOzs7OztOOzs7MDA0QTs7MDA0QQorMDA2QjtMQVRJTiBTTUFMTCBMRVRURVIgSztMbDswO0w7Ozs7O047OzswMDRCOzswMDRCCiswMDZDO0xBVElOIFNNQUxMIExFVFRFUiBMO0xsOzA7TDs7Ozs7Tjs7OzAwNEM7OzAwNEMKKzAwNkQ7TEFUSU4gU01BTEwgTEVUVEVSIE07TGw7MDtMOzs7OztOOzs7MDA0RDs7MDA0RAorMDA2RTtMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7Ozs7O047OzswMDRFOzswMDRFCiswMDZGO0xBVElOIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzAwNEY7OzAwNEYKKzAwNzA7TEFUSU4gU01BTEwgTEVUVEVSIFA7TGw7MDtMOzs7OztOOzs7MDA1MDs7MDA1MAorMDA3MTtMQVRJTiBTTUFMTCBMRVRURVIgUTtMbDswO0w7Ozs7O047OzswMDUxOzswMDUxCiswMDcyO0xBVElOIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs7Ozs7Tjs7OzAwNTI7OzAwNTIKKzAwNzM7TEFUSU4gU01BTEwgTEVUVEVSIFM7TGw7MDtMOzs7OztOOzs7MDA1Mzs7MDA1MworMDA3NDtMQVRJTiBTTUFMTCBMRVRURVIgVDtMbDswO0w7Ozs7O047OzswMDU0OzswMDU0CiswMDc1O0xBVElOIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs7Ozs7Tjs7OzAwNTU7OzAwNTUKKzAwNzY7TEFUSU4gU01BTEwgTEVUVEVSIFY7TGw7MDtMOzs7OztOOzs7MDA1Njs7MDA1NgorMDA3NztMQVRJTiBTTUFMTCBMRVRURVIgVztMbDswO0w7Ozs7O047OzswMDU3OzswMDU3CiswMDc4O0xBVElOIFNNQUxMIExFVFRFUiBYO0xsOzA7TDs7Ozs7Tjs7OzAwNTg7OzAwNTgKKzAwNzk7TEFUSU4gU01BTEwgTEVUVEVSIFk7TGw7MDtMOzs7OztOOzs7MDA1OTs7MDA1OQorMDA3QTtMQVRJTiBTTUFMTCBMRVRURVIgWjtMbDswO0w7Ozs7O047OzswMDVBOzswMDVBCiswMDdCO0xFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0M7VkVSVElDQUwgTElORTtTbTswO09OOzs7OztOO1ZFUlRJQ0FMIEJBUjs7OzsKKzAwN0Q7UklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0U7VElMREU7U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDdGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFTEVURTs7OzsKKzAwODA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA4MTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDgyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0JSRUFLIFBFUk1JVFRFRCBIRVJFOzs7OworMDA4Mzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtOTyBCUkVBSyBIRVJFOzs7OworMDA4NDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDg1Ozxjb250cm9sPjtDYzswO0I7Ozs7O047TkVYVCBMSU5FIChORUwpOzs7OworMDA4Njs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBTRUxFQ1RFRCBBUkVBOzs7OworMDA4Nzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgU0VMRUNURUQgQVJFQTs7OzsKKzAwODg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0hBUkFDVEVSIFRBQlVMQVRJT04gU0VUOzs7OworMDA4OTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDSEFSQUNURVIgVEFCVUxBVElPTiBXSVRIIEpVU1RJRklDQVRJT047Ozs7CiswMDhBOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0xJTkUgVEFCVUxBVElPTiBTRVQ7Ozs7CiswMDhCOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BBUlRJQUwgTElORSBGT1JXQVJEOzs7OworMDA4Qzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQQVJUSUFMIExJTkUgQkFDS1dBUkQ7Ozs7CiswMDhEOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1JFVkVSU0UgTElORSBGRUVEOzs7OworMDA4RTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSU5HTEUgU0hJRlQgVFdPOzs7OworMDA4Rjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSU5HTEUgU0hJRlQgVEhSRUU7Ozs7CiswMDkwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIFNUUklORzs7OzsKKzAwOTE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UFJJVkFURSBVU0UgT05FOzs7OworMDA5Mjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQUklWQVRFIFVTRSBUV087Ozs7CiswMDkzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NFVCBUUkFOU01JVCBTVEFURTs7OzsKKzAwOTQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0FOQ0VMIENIQVJBQ1RFUjs7OzsKKzAwOTU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TUVTU0FHRSBXQUlUSU5HOzs7OworMDA5Njs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBHVUFSREVEIEFSRUE7Ozs7CiswMDk3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBHVUFSREVEIEFSRUE7Ozs7CiswMDk4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIFNUUklORzs7OzsKKzAwOTk7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA5QTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSU5HTEUgQ0hBUkFDVEVSIElOVFJPRFVDRVI7Ozs7CiswMDlCOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0NPTlRST0wgU0VRVUVOQ0UgSU5UUk9EVUNFUjs7OzsKKzAwOUM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RSSU5HIFRFUk1JTkFUT1I7Ozs7CiswMDlEOzxjb250cm9sPjtDYzswO0JOOzs7OztOO09QRVJBVElORyBTWVNURU0gQ09NTUFORDs7OzsKKzAwOUU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UFJJVkFDWSBNRVNTQUdFOzs7OworMDA5Rjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtBUFBMSUNBVElPTiBQUk9HUkFNIENPTU1BTkQ7Ozs7CiswMEEwO05PLUJSRUFLIFNQQUNFO1pzOzA7Q1M7PG5vQnJlYWs+IDAwMjA7Ozs7TjtOT04tQlJFQUtJTkcgU1BBQ0U7Ozs7CiswMEExO0lOVkVSVEVEIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEEyO0NFTlQgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTM7UE9VTkQgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTQ7Q1VSUkVOQ1kgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTU7WUVOIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE2O0JST0tFTiBCQVI7U287MDtPTjs7Ozs7TjtCUk9LRU4gVkVSVElDQUwgQkFSOzs7OworMDBBNztTRUNUSU9OIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswMEE4O0RJQUVSRVNJUztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwODs7OztOO1NQQUNJTkcgRElBRVJFU0lTOzs7OworMDBBOTtDT1BZUklHSFQgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzAwQUE7RkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1I7TGw7MDtMOzxzdXBlcj4gMDA2MTs7OztOOzs7OzsKKzAwQUI7TEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7WTtMRUZUIFBPSU5USU5HIEdVSUxMRU1FVDsqOzs7CiswMEFDO05PVCBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBBRDtTT0ZUIEhZUEhFTjtDZjswO0JOOzs7OztOOzs7OzsKKzAwQUU7UkVHSVNURVJFRCBTSUdOO1NvOzA7T047Ozs7O047UkVHSVNURVJFRCBUUkFERSBNQVJLIFNJR047Ozs7CiswMEFGO01BQ1JPTjtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwNDs7OztOO1NQQUNJTkcgTUFDUk9OOzs7OworMDBCMDtERUdSRUUgU0lHTjtTbzswO0VUOzs7OztOOzs7OzsKKzAwQjE7UExVUy1NSU5VUyBTSUdOO1NtOzA7RVQ7Ozs7O047UExVUy1PUi1NSU5VUyBTSUdOOzs7OworMDBCMjtTVVBFUlNDUklQVCBUV087Tm87MDtFTjs8c3VwZXI+IDAwMzI7OzI7MjtOO1NVUEVSU0NSSVBUIERJR0lUIFRXTzs7OzsKKzAwQjM7U1VQRVJTQ1JJUFQgVEhSRUU7Tm87MDtFTjs8c3VwZXI+IDAwMzM7OzM7MztOO1NVUEVSU0NSSVBUIERJR0lUIFRIUkVFOzs7OworMDBCNDtBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDE7Ozs7TjtTUEFDSU5HIEFDVVRFOzs7OworMDBCNTtNSUNSTyBTSUdOO0xsOzA7TDs8Y29tcGF0PiAwM0JDOzs7O047OzswMzlDOzswMzlDCiswMEI2O1BJTENST1cgU0lHTjtTbzswO09OOzs7OztOO1BBUkFHUkFQSCBTSUdOOzs7OworMDBCNztNSURETEUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworMDBCODtDRURJTExBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI3Ozs7O047U1BBQ0lORyBDRURJTExBOzs7OworMDBCOTtTVVBFUlNDUklQVCBPTkU7Tm87MDtFTjs8c3VwZXI+IDAwMzE7OzE7MTtOO1NVUEVSU0NSSVBUIERJR0lUIE9ORTs7OzsKKzAwQkE7TUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SO0xsOzA7TDs8c3VwZXI+IDAwNkY7Ozs7Tjs7Ozs7CiswMEJCO1JJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztZO1JJR0hUIFBPSU5USU5HIEdVSUxMRU1FVDsqOzs7CiswMEJDO1ZVTEdBUiBGUkFDVElPTiBPTkUgUVVBUlRFUjtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzQ7OzsxLzQ7TjtGUkFDVElPTiBPTkUgUVVBUlRFUjs7OzsKKzAwQkQ7VlVMR0FSIEZSQUNUSU9OIE9ORSBIQUxGO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMjs7OzEvMjtOO0ZSQUNUSU9OIE9ORSBIQUxGOzs7OworMDBCRTtWVUxHQVIgRlJBQ1RJT04gVEhSRUUgUVVBUlRFUlM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM0Ozs7My80O047RlJBQ1RJT04gVEhSRUUgUVVBUlRFUlM7Ozs7CiswMEJGO0lOVkVSVEVEIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEMwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBHUkFWRTtMdTswO0w7MDA0MSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBHUkFWRTs7OzAwRTA7CiswMEMxO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBBQ1VURTtMdTswO0w7MDA0MSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBBQ1VURTs7OzAwRTE7CiswMEMyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQxIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIENJUkNVTUZMRVg7OzswMEUyOworMDBDMztMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggVElMREU7THU7MDtMOzAwNDEgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgVElMREU7OzswMEUzOworMDBDNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQxIDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIERJQUVSRVNJUzs7OzAwRTQ7CiswMEM1O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFO0x1OzA7TDswMDQxIDAzMEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFJJTkc7OzswMEU1OworMDBDNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBFO2FzaCAqOzswMEU2OworMDBDNztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0MyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBDRURJTExBOzs7MDBFNzsKKzAwQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEdSQVZFO0x1OzA7TDswMDQ1IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEdSQVZFOzs7MDBFODsKKzAwQzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFO0x1OzA7TDswMDQ1IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEFDVVRFOzs7MDBFOTsKKzAwQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDUgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQ0lSQ1VNRkxFWDs7OzAwRUE7CiswMENCO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDUgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgRElBRVJFU0lTOzs7MDBFQjsKKzAwQ0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFO0x1OzA7TDswMDQ5IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEdSQVZFOzs7MDBFQzsKKzAwQ0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFO0x1OzA7TDswMDQ5IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEFDVVRFOzs7MDBFRDsKKzAwQ0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDkgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQ0lSQ1VNRkxFWDs7OzAwRUU7CiswMENGO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDkgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgRElBRVJFU0lTOzs7MDBFRjsKKzAwRDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVRIO0x1OzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzswMEYwOworMDBEMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggVElMREU7THU7MDtMOzAwNEUgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gVElMREU7OzswMEYxOworMDBEMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggR1JBVkU7THU7MDtMOzAwNEYgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gR1JBVkU7OzswMEYyOworMDBEMztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEU7THU7MDtMOzAwNEYgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQUNVVEU7OzswMEYzOworMDBENDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0RiAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBDSVJDVU1GTEVYOzs7MDBGNDsKKzAwRDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFO0x1OzA7TDswMDRGIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFRJTERFOzs7MDBGNTsKKzAwRDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0RiAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBESUFFUkVTSVM7OzswMEY2OworMDBENztNVUxUSVBMSUNBVElPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBEODtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFNMQVNIOzs7MDBGODsKKzAwRDk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFO0x1OzA7TDswMDU1IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEdSQVZFOzs7MDBGOTsKKzAwREE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFO0x1OzA7TDswMDU1IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEFDVVRFOzs7MDBGQTsKKzAwREI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTUgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQ0lSQ1VNRkxFWDs7OzAwRkI7CiswMERDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTUgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRElBRVJFU0lTOzs7MDBGQzsKKzAwREQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFO0x1OzA7TDswMDU5IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIEFDVVRFOzs7MDBGRDsKKzAwREU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk47THU7MDtMOzs7OztOOztJY2VsYW5kaWM7OzAwRkU7CiswMERGO0xBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTO0xsOzA7TDs7Ozs7Tjs7R2VybWFuOzs7CiswMEUwO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkU7TGw7MDtMOzAwNjEgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEdSQVZFOzswMEMwOzswMEMwCiswMEUxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEU7TGw7MDtMOzAwNjEgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEFDVVRFOzswMEMxOzswMEMxCiswMEUyO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2MSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQ0lSQ1VNRkxFWDs7MDBDMjs7MDBDMgorMDBFMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFRJTERFO0xsOzA7TDswMDYxIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBUSUxERTs7MDBDMzs7MDBDMworMDBFNDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2MSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRElBRVJFU0lTOzswMEM0OzswMEM0CiswMEU1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA2MSAwMzBBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgUklORzs7MDBDNTs7MDBDNQorMDBFNjtMQVRJTiBTTUFMTCBMRVRURVIgQUU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEU7YXNoICo7MDBDNjs7MDBDNgorMDBFNztMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENFRElMTEE7OzAwQzc7OzAwQzcKKzAwRTg7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBHUkFWRTtMbDswO0w7MDA2NSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgR1JBVkU7OzAwQzg7OzAwQzgKKzAwRTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBBQ1VURTtMbDswO0w7MDA2NSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQUNVVEU7OzAwQzk7OzAwQzkKKzAwRUE7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY1IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBDSVJDVU1GTEVYOzswMENBOzswMENBCiswMEVCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY1IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBESUFFUkVTSVM7OzAwQ0I7OzAwQ0IKKzAwRUM7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMbDswO0w7MDA2OSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgR1JBVkU7OzAwQ0M7OzAwQ0MKKzAwRUQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBBQ1VURTtMbDswO0w7MDA2OSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQUNVVEU7OzAwQ0Q7OzAwQ0QKKzAwRUU7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY5IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBDSVJDVU1GTEVYOzswMENFOzswMENFCiswMEVGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY5IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBESUFFUkVTSVM7OzAwQ0Y7OzAwQ0YKKzAwRjA7TEFUSU4gU01BTEwgTEVUVEVSIEVUSDtMbDswO0w7Ozs7O047O0ljZWxhbmRpYzswMEQwOzswMEQwCiswMEYxO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggVElMREU7TGw7MDtMOzAwNkUgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIFRJTERFOzswMEQxOzswMEQxCiswMEYyO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkU7TGw7MDtMOzAwNkYgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEdSQVZFOzswMEQyOzswMEQyCiswMEYzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEU7TGw7MDtMOzAwNkYgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEFDVVRFOzswMEQzOzswMEQzCiswMEY0O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2RiAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQ0lSQ1VNRkxFWDs7MDBENDs7MDBENAorMDBGNTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFO0xsOzA7TDswMDZGIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBUSUxERTs7MDBENTs7MDBENQorMDBGNjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2RiAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRElBRVJFU0lTOzswMEQ2OzswMEQ2CiswMEY3O0RJVklTSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEY4O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBTTEFTSDs7MDBEODs7MDBEOAorMDBGOTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEdSQVZFO0xsOzA7TDswMDc1IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBHUkFWRTs7MDBEOTs7MDBEOQorMDBGQTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFO0xsOzA7TDswMDc1IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBBQ1VURTs7MDBEQTs7MDBEQQorMDBGQjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzUgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIENJUkNVTUZMRVg7OzAwREI7OzAwREIKKzAwRkM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzUgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUzs7MDBEQzs7MDBEQworMDBGRDtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFO0xsOzA7TDswMDc5IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBBQ1VURTs7MDBERDs7MDBERAorMDBGRTtMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk47TGw7MDtMOzs7OztOOztJY2VsYW5kaWM7MDBERTs7MDBERQorMDBGRjtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3OSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgRElBRVJFU0lTOzswMTc4OzswMTc4CiswMTAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBNQUNST047THU7MDtMOzAwNDEgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgTUFDUk9OOzs7MDEwMTsKKzAxMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBNQUNST047TGw7MDtMOzAwNjEgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIE1BQ1JPTjs7MDEwMDs7MDEwMAorMDEwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkU7THU7MDtMOzAwNDEgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQlJFVkU7OzswMTAzOworMDEwMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFO0xsOzA7TDswMDYxIDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBCUkVWRTs7MDEwMjs7MDEwMgorMDEwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggT0dPTkVLO0x1OzA7TDswMDQxIDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIE9HT05FSzs7OzAxMDU7CiswMTA1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggT0dPTkVLO0xsOzA7TDswMDYxIDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBPR09ORUs7OzAxMDQ7OzAxMDQKKzAxMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEFDVVRFO0x1OzA7TDswMDQzIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEFDVVRFOzs7MDEwNzsKKzAxMDc7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBBQ1VURTtMbDswO0w7MDA2MyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQUNVVEU7OzAxMDY7OzAxMDYKKzAxMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDMgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQ0lSQ1VNRkxFWDs7OzAxMDk7CiswMTA5O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2MyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ0lSQ1VNRkxFWDs7MDEwODs7MDEwOAorMDEwQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQzIDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIERPVDs7OzAxMEI7CiswMTBCO0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDYzIDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBET1Q7OzAxMEE7OzAxMEEKKzAxMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENBUk9OO0x1OzA7TDswMDQzIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEhBQ0VLOzs7MDEwRDsKKzAxMEQ7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDQVJPTjtMbDswO0w7MDA2MyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgSEFDRUs7OzAxMEM7OzAxMEMKKzAxMEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENBUk9OO0x1OzA7TDswMDQ0IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEhBQ0VLOzs7MDEwRjsKKzAxMEY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDQVJPTjtMbDswO0w7MDA2NCAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgSEFDRUs7OzAxMEU7OzAxMEUKKzAxMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBCQVI7OzswMTExOworMDExMTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgQkFSOzswMTEwOzswMTEwCiswMTEyO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST047THU7MDtMOzAwNDUgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgTUFDUk9OOzs7MDExMzsKKzAxMTM7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST047TGw7MDtMOzAwNjUgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIE1BQ1JPTjs7MDExMjs7MDExMgorMDExNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQlJFVkU7THU7MDtMOzAwNDUgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQlJFVkU7OzswMTE1OworMDExNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEJSRVZFO0xsOzA7TDswMDY1IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBCUkVWRTs7MDExNDs7MDExNAorMDExNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ1IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIERPVDs7OzAxMTc7CiswMTE3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY1IDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBET1Q7OzAxMTY7OzAxMTYKKzAxMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE9HT05FSztMdTswO0w7MDA0NSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBPR09ORUs7OzswMTE5OworMDExOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE9HT05FSztMbDswO0w7MDA2NSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgT0dPTkVLOzswMTE4OzswMTE4CiswMTFBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDQVJPTjtMdTswO0w7MDA0NSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBIQUNFSzs7OzAxMUI7CiswMTFCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0FST047TGw7MDtMOzAwNjUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEhBQ0VLOzswMTFBOzswMTFBCiswMTFDO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ3IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIENJUkNVTUZMRVg7OzswMTFEOworMDExRDtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjcgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIENJUkNVTUZMRVg7OzAxMUM7OzAxMUMKKzAxMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEJSRVZFO0x1OzA7TDswMDQ3IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEJSRVZFOzs7MDExRjsKKzAxMUY7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBCUkVWRTtMbDswO0w7MDA2NyAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQlJFVkU7OzAxMUU7OzAxMUUKKzAxMjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NyAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBET1Q7OzswMTIxOworMDEyMTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NyAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgRE9UOzswMTIwOzswMTIwCiswMTIyO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ3IDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIENFRElMTEE7OzswMTIzOworMDEyMztMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjcgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIENFRElMTEE7OzAxMjI7OzAxMjIKKzAxMjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDggMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEggQ0lSQ1VNRkxFWDs7OzAxMjU7CiswMTI1O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2OCAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggQ0lSQ1VNRkxFWDs7MDEyNDs7MDEyNAorMDEyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIEJBUjs7OzAxMjc7CiswMTI3O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBCQVI7OzAxMjY7OzAxMjYKKzAxMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFO0x1OzA7TDswMDQ5IDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFRJTERFOzs7MDEyOTsKKzAxMjk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERTtMbDswO0w7MDA2OSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgVElMREU7OzAxMjg7OzAxMjgKKzAxMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0OSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBNQUNST047OzswMTJCOworMDEyQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2OSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgTUFDUk9OOzswMTJBOzswMTJBCiswMTJDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBCUkVWRTtMdTswO0w7MDA0OSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBCUkVWRTs7OzAxMkQ7CiswMTJEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQlJFVkU7TGw7MDtMOzAwNjkgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEJSRVZFOzswMTJDOzswMTJDCiswMTJFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUs7THU7MDtMOzAwNDkgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgT0dPTkVLOzs7MDEyRjsKKzAxMkY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjkgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIE9HT05FSzs7MDEyRTs7MDEyRQorMDEzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ5IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIERPVDs7OzAwNjk7CiswMTMxO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEk7TGw7MDtMOzs7OztOOzs7MDA0OTs7MDA0OQorMDEzMjtMQVRJTiBDQVBJVEFMIExJR0FUVVJFIElKO0x1OzA7TDs8Y29tcGF0PiAwMDQ5IDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEo7OzswMTMzOworMDEzMztMQVRJTiBTTUFMTCBMSUdBVFVSRSBJSjtMbDswO0w7PGNvbXBhdD4gMDA2OSAwMDZBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgSjs7MDEzMjs7MDEzMgorMDEzNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBKIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0QSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSiBDSVJDVU1GTEVYOzs7MDEzNTsKKzAxMzU7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDZBIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSiBDSVJDVU1GTEVYOzswMTM0OzswMTM0CiswMTM2O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDRURJTExBO0x1OzA7TDswMDRCIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIENFRElMTEE7OzswMTM3OworMDEzNztMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkIgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIENFRElMTEE7OzAxMzY7OzAxMzYKKzAxMzg7TEFUSU4gU01BTEwgTEVUVEVSIEtSQTtMbDswO0w7Ozs7O047O0dyZWVubGFuZGljOzs7CiswMTM5O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBBQ1VURTtMdTswO0w7MDA0QyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBBQ1VURTs7OzAxM0E7CiswMTNBO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQUNVVEU7TGw7MDtMOzAwNkMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEFDVVRFOzswMTM5OzswMTM5CiswMTNCO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDRURJTExBO0x1OzA7TDswMDRDIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIENFRElMTEE7OzswMTNDOworMDEzQztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIENFRElMTEE7OzAxM0I7OzAxM0IKKzAxM0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENBUk9OO0x1OzA7TDswMDRDIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEhBQ0VLOzs7MDEzRTsKKzAxM0U7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDQVJPTjtMbDswO0w7MDA2QyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgSEFDRUs7OzAxM0Q7OzAxM0QKKzAxM0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIE1JRERMRSBET1Q7THU7MDtMOzxjb21wYXQ+IDAwNEMgMDBCNzs7OztOOzs7OzAxNDA7CiswMTQwO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTUlERExFIERPVDtMbDswO0w7PGNvbXBhdD4gMDA2QyAwMEI3Ozs7O047OzswMTNGOzswMTNGCiswMTQxO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgU0xBU0g7OzswMTQyOworMDE0MjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgU0xBU0g7OzAxNDE7OzAxNDEKKzAxNDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIEFDVVRFO0x1OzA7TDswMDRFIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEFDVVRFOzs7MDE0NDsKKzAxNDQ7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBBQ1VURTtMbDswO0w7MDA2RSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gQUNVVEU7OzAxNDM7OzAxNDMKKzAxNDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENFRElMTEE7THU7MDtMOzAwNEUgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gQ0VESUxMQTs7OzAxNDY7CiswMTQ2O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2RSAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gQ0VESUxMQTs7MDE0NTs7MDE0NQorMDE0NztMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0FST047THU7MDtMOzAwNEUgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSEFDRUs7OzswMTQ4OworMDE0ODtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENBUk9OO0xsOzA7TDswMDZFIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBIQUNFSzs7MDE0Nzs7MDE0NworMDE0OTtMQVRJTiBTTUFMTCBMRVRURVIgTiBQUkVDRURFRCBCWSBBUE9TVFJPUEhFO0xsOzA7TDs8Y29tcGF0PiAwMkJDIDAwNkU7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQVBPU1RST1BIRSBOOzs7OworMDE0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFTkc7THU7MDtMOzs7OztOOztTYW1pOzswMTRCOworMDE0QjtMQVRJTiBTTUFMTCBMRVRURVIgRU5HO0xsOzA7TDs7Ozs7Tjs7U2FtaTswMTRBOzswMTRBCiswMTRDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST047THU7MDtMOzAwNEYgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gTUFDUk9OOzs7MDE0RDsKKzAxNEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST047TGw7MDtMOzAwNkYgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE1BQ1JPTjs7MDE0Qzs7MDE0QworMDE0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQlJFVkU7THU7MDtMOzAwNEYgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQlJFVkU7OzswMTRGOworMDE0RjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEJSRVZFO0xsOzA7TDswMDZGIDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBCUkVWRTs7MDE0RTs7MDE0RQorMDE1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswMDRGIDAzMEI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIERPVUJMRSBBQ1VURTs7OzAxNTE7CiswMTUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9VQkxFIEFDVVRFO0xsOzA7TDswMDZGIDAzMEI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBET1VCTEUgQUNVVEU7OzAxNTA7OzAxNTAKKzAxNTI7TEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBPRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBFOzs7MDE1MzsKKzAxNTM7TEFUSU4gU01BTEwgTElHQVRVUkUgT0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEU7OzAxNTI7OzAxNTIKKzAxNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIEFDVVRFO0x1OzA7TDswMDUyIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIEFDVVRFOzs7MDE1NTsKKzAxNTU7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBBQ1VURTtMbDswO0w7MDA3MiAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgQUNVVEU7OzAxNTQ7OzAxNTQKKzAxNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENFRElMTEE7THU7MDtMOzAwNTIgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgQ0VESUxMQTs7OzAxNTc7CiswMTU3O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3MiAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgQ0VESUxMQTs7MDE1Njs7MDE1NgorMDE1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQ0FST047THU7MDtMOzAwNTIgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgSEFDRUs7OzswMTU5OworMDE1OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIENBUk9OO0xsOzA7TDswMDcyIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBIQUNFSzs7MDE1ODs7MDE1OAorMDE1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQUNVVEU7THU7MDtMOzAwNTMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQUNVVEU7OzswMTVCOworMDE1QjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEFDVVRFO0xsOzA7TDswMDczIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBBQ1VURTs7MDE1QTs7MDE1QQorMDE1QztMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1MyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBDSVJDVU1GTEVYOzs7MDE1RDsKKzAxNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDczIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBDSVJDVU1GTEVYOzswMTVDOzswMTVDCiswMTVFO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDRURJTExBO0x1OzA7TDswMDUzIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIENFRElMTEE7Kjs7MDE1RjsKKzAxNUY7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDRURJTExBO0xsOzA7TDswMDczIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBDRURJTExBOyo7MDE1RTs7MDE1RQorMDE2MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST047THU7MDtMOzAwNTMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgSEFDRUs7OzswMTYxOworMDE2MTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OO0xsOzA7TDswMDczIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBIQUNFSzs7MDE2MDs7MDE2MAorMDE2MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1NCAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBDRURJTExBOyo7OzAxNjM7CiswMTYzO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3NCAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQ0VESUxMQTsqOzAxNjI7OzAxNjIKKzAxNjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENBUk9OO0x1OzA7TDswMDU0IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEhBQ0VLOzs7MDE2NTsKKzAxNjU7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDQVJPTjtMbDswO0w7MDA3NCAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgSEFDRUs7OzAxNjQ7OzAxNjQKKzAxNjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBCQVI7OzswMTY3OworMDE2NztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQkFSOzswMTY2OzswMTY2CiswMTY4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERTtMdTswO0w7MDA1NSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBUSUxERTs7OzAxNjk7CiswMTY5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREU7TGw7MDtMOzAwNzUgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIFRJTERFOzswMTY4OzswMTY4CiswMTZBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST047THU7MDtMOzAwNTUgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgTUFDUk9OOzs7MDE2QjsKKzAxNkI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST047TGw7MDtMOzAwNzUgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIE1BQ1JPTjs7MDE2QTs7MDE2QQorMDE2QztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQlJFVkU7THU7MDtMOzAwNTUgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQlJFVkU7OzswMTZEOworMDE2RDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEJSRVZFO0xsOzA7TDswMDc1IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBCUkVWRTs7MDE2Qzs7MDE2QworMDE2RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRTtMdTswO0w7MDA1NSAwMzBBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBSSU5HOzs7MDE2RjsKKzAxNkY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc1IDAzMEE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBSSU5HOzswMTZFOzswMTZFCiswMTcwO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7THU7MDtMOzAwNTUgMDMwQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRE9VQkxFIEFDVVRFOzs7MDE3MTsKKzAxNzE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzAwNzUgMDMwQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERPVUJMRSBBQ1VURTs7MDE3MDs7MDE3MAorMDE3MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggT0dPTkVLO0x1OzA7TDswMDU1IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIE9HT05FSzs7OzAxNzM7CiswMTczO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggT0dPTkVLO0xsOzA7TDswMDc1IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBPR09ORUs7OzAxNzI7OzAxNzIKKzAxNzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTcgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFcgQ0lSQ1VNRkxFWDs7OzAxNzU7CiswMTc1O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3NyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFcgQ0lSQ1VNRkxFWDs7MDE3NDs7MDE3NAorMDE3NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1OSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBDSVJDVU1GTEVYOzs7MDE3NzsKKzAxNzc7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc5IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBDSVJDVU1GTEVYOzswMTc2OzswMTc2CiswMTc4O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTkgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgRElBRVJFU0lTOzs7MDBGRjsKKzAxNzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIEFDVVRFO0x1OzA7TDswMDVBIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEFDVVRFOzs7MDE3QTsKKzAxN0E7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBBQ1VURTtMbDswO0w7MDA3QSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogQUNVVEU7OzAxNzk7OzAxNzkKKzAxN0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1QSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBET1Q7OzswMTdDOworMDE3QztMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3QSAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogRE9UOzswMTdCOzswMTdCCiswMTdEO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBDQVJPTjtMdTswO0w7MDA1QSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBIQUNFSzs7OzAxN0U7CiswMTdFO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQ0FST047TGw7MDtMOzAwN0EgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEhBQ0VLOzswMTdEOzswMTdECiswMTdGO0xBVElOIFNNQUxMIExFVFRFUiBMT05HIFM7TGw7MDtMOzxjb21wYXQ+IDAwNzM7Ozs7Tjs7OzAwNTM7OzAwNTMKKzAxODA7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIEJBUjs7MDI0Mzs7MDI0MworMDE4MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBIT09LOzs7MDI1MzsKKzAxODI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIFRPUEJBUjtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBUT1BCQVI7OzswMTgzOworMDE4MztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFRPUEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgVE9QQkFSOzswMTgyOzswMTgyCiswMTg0O0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgU0lYO0x1OzA7TDs7Ozs7Tjs7OzswMTg1OworMDE4NTtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBTSVg7TGw7MDtMOzs7OztOOzs7MDE4NDs7MDE4NAorMDE4NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPUEVOIE87THU7MDtMOzs7OztOOzs7OzAyNTQ7CiswMTg3O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEhPT0s7OzswMTg4OworMDE4ODtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEhPT0s7OzAxODc7OzAxODcKKzAxODk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUZSSUNBTiBEO0x1OzA7TDs7Ozs7Tjs7Kjs7MDI1NjsKKzAxOEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgSE9PSzs7OzAyNTc7CiswMThCO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBUT1BCQVI7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgVE9QQkFSOzs7MDE4QzsKKzAxOEM7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBUT1BCQVI7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFRPUEJBUjs7MDE4Qjs7MDE4QgorMDE4RDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIERFTFRBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMThFO0xBVElOIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFRVUk5FRCBFOzs7MDFERDsKKzAxOEY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgU0NIV0E7THU7MDtMOzs7OztOOzs7OzAyNTk7CiswMTkwO0xBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVBTSUxPTjs7OzAyNUI7CiswMTkxO0xBVElOIENBUElUQUwgTEVUVEVSIEYgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIEhPT0s7OzswMTkyOworMDE5MjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgRjs7MDE5MTs7MDE5MQorMDE5MztMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBIT09LOzs7MDI2MDsKKzAxOTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAyNjM7CiswMTk1O0xBVElOIFNNQUxMIExFVFRFUiBIVjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggVjtod2FpcjswMUY2OzswMUY2CiswMTk2O0xBVElOIENBUElUQUwgTEVUVEVSIElPVEE7THU7MDtMOzs7OztOOzs7OzAyNjk7CiswMTk3O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEJBUlJFRCBJOzs7MDI2ODsKKzAxOTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEsgSE9PSzs7OzAxOTk7CiswMTk5O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgSE9PSzs7MDE5ODs7MDE5OAorMDE5QTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBMOzswMjNEOzswMjNECiswMTlCO0xBVElOIFNNQUxMIExFVFRFUiBMQU1CREEgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTEFNQkRBOzs7OworMDE5QztMQVRJTiBDQVBJVEFMIExFVFRFUiBUVVJORUQgTTtMdTswO0w7Ozs7O047Ozs7MDI2RjsKKzAxOUQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBIT09LOzs7MDI3MjsKKzAxOUU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMT05HIFJJR0hUIExFRztMbDswO0w7Ozs7O047OzswMjIwOzswMjIwCiswMTlGO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNSURETEUgVElMREU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPOyo7OzAyNzU7CiswMUEwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOO0x1OzA7TDswMDRGIDAzMUI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEhPUk47OzswMUExOworMDFBMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk47TGw7MDtMOzAwNkYgMDMxQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEhPUk47OzAxQTA7OzAxQTAKKzAxQTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT0k7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gSTtnaGE7OzAxQTM7CiswMUEzO0xBVElOIFNNQUxMIExFVFRFUiBPSTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSTtnaGE7MDFBMjs7MDFBMgorMDFBNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBIT09LOzs7MDFBNTsKKzAxQTU7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUCBIT09LOzswMUE0OzswMUE0CiswMUE2O0xBVElOIExFVFRFUiBZUjtMdTswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFkgUjsqOzswMjgwOworMDFBNztMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIFRXTztMdTswO0w7Ozs7O047Ozs7MDFBODsKKzAxQTg7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgVFdPO0xsOzA7TDs7Ozs7Tjs7OzAxQTc7OzAxQTcKKzAxQTk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVNIO0x1OzA7TDs7Ozs7Tjs7OzswMjgzOworMDFBQTtMQVRJTiBMRVRURVIgUkVWRVJTRUQgRVNIIExPT1A7TGw7MDtMOzs7OztOOzs7OzsKKzAxQUI7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFBBTEFUQUwgSE9PSzs7OzsKKzAxQUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgSE9PSzs7OzAxQUQ7CiswMUFEO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgSE9PSzs7MDFBQzs7MDFBQworMDFBRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggUkVUUk9GTEVYIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgUkVUUk9GTEVYIEhPT0s7OzswMjg4OworMDFBRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STjtMdTswO0w7MDA1NSAwMzFCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBIT1JOOzs7MDFCMDsKKzAxQjA7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOO0xsOzA7TDswMDc1IDAzMUI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBIT1JOOzswMUFGOzswMUFGCiswMUIxO0xBVElOIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAyOEE7CiswMUIyO0xBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTQ1JJUFQgVjs7OzAyOEI7CiswMUIzO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIEhPT0s7OzswMUI0OworMDFCNDtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIEhPT0s7OzAxQjM7OzAxQjMKKzAxQjU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBCQVI7OzswMUI2OworMDFCNjtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogQkFSOzswMUI1OzswMUI1CiswMUI3O0xBVElOIENBUElUQUwgTEVUVEVSIEVaSDtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSDs7OzAyOTI7CiswMUI4O0xBVElOIENBUElUQUwgTEVUVEVSIEVaSCBSRVZFUlNFRDtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgWU9HSDs7OzAxQjk7CiswMUI5O0xBVElOIFNNQUxMIExFVFRFUiBFWkggUkVWRVJTRUQ7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBZT0dIOzswMUI4OzswMUI4CiswMUJBO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBXSVRIIFRBSUw7Ozs7CiswMUJCO0xBVElOIExFVFRFUiBUV08gV0lUSCBTVFJPS0U7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBUV08gQkFSOzs7OworMDFCQztMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIEZJVkU7THU7MDtMOzs7OztOOzs7OzAxQkQ7CiswMUJEO0xBVElOIFNNQUxMIExFVFRFUiBUT05FIEZJVkU7TGw7MDtMOzs7OztOOzs7MDFCQzs7MDFCQworMDFCRTtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAxQkY7TEFUSU4gTEVUVEVSIFdZTk47TGw7MDtMOzs7OztOOzs7MDFGNzs7MDFGNworMDFDMDtMQVRJTiBMRVRURVIgREVOVEFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRTs7OzsKKzAxQzE7TEFUSU4gTEVUVEVSIExBVEVSQUwgQ0xJQ0s7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBET1VCTEUgUElQRTs7OzsKKzAxQzI7TEFUSU4gTEVUVEVSIEFMVkVPTEFSIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRSBET1VCTEUgQkFSOzs7OworMDFDMztMQVRJTiBMRVRURVIgUkVUUk9GTEVYIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRVhDTEFNQVRJT04gTUFSSzs7OzsKKzAxQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRFogV0lUSCBDQVJPTjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMTdEOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBaIEhBQ0VLOzs7MDFDNjswMUM1CiswMUM1O0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWiBXSVRIIENBUk9OO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAxN0U7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBEIFNNQUxMIFogSEFDRUs7OzAxQzQ7MDFDNjswMUM1CiswMUM2O0xBVElOIFNNQUxMIExFVFRFUiBEWiBXSVRIIENBUk9OO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAxN0U7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIEhBQ0VLOzswMUM0OzswMUM1CiswMUM3O0xBVElOIENBUElUQUwgTEVUVEVSIExKO0x1OzA7TDs8Y29tcGF0PiAwMDRDIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEo7OzswMUM5OzAxQzgKKzAxQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRDIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBMIFNNQUxMIEo7OzAxQzc7MDFDOTswMUM4CiswMUM5O0xBVElOIFNNQUxMIExFVFRFUiBMSjtMbDswO0w7PGNvbXBhdD4gMDA2QyAwMDZBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgSjs7MDFDNzs7MDFDOAorMDFDQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOSjtMdTswO0w7PGNvbXBhdD4gMDA0RSAwMDRBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBKOzs7MDFDQzswMUNCCiswMUNCO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBTTUFMTCBMRVRURVIgSjtMdDswO0w7PGNvbXBhdD4gMDA0RSAwMDZBOzs7O047TEFUSU4gTEVUVEVSIENBUElUQUwgTiBTTUFMTCBKOzswMUNBOzAxQ0M7MDFDQgorMDFDQztMQVRJTiBTTUFMTCBMRVRURVIgTko7TGw7MDtMOzxjb21wYXQ+IDAwNkUgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEo7OzAxQ0E7OzAxQ0IKKzAxQ0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENBUk9OO0x1OzA7TDswMDQxIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEhBQ0VLOzs7MDFDRTsKKzAxQ0U7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMbDswO0w7MDA2MSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgSEFDRUs7OzAxQ0Q7OzAxQ0QKKzAxQ0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENBUk9OO0x1OzA7TDswMDQ5IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEhBQ0VLOzs7MDFEMDsKKzAxRDA7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMbDswO0w7MDA2OSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgSEFDRUs7OzAxQ0Y7OzAxQ0YKKzAxRDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENBUk9OO0x1OzA7TDswMDRGIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEhBQ0VLOzs7MDFEMjsKKzAxRDI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMbDswO0w7MDA2RiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSEFDRUs7OzAxRDE7OzAxRDEKKzAxRDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENBUk9OO0x1OzA7TDswMDU1IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEhBQ0VLOzs7MDFENDsKKzAxRDQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMbDswO0w7MDA3NSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgSEFDRUs7OzAxRDM7OzAxRDMKKzAxRDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0x1OzA7TDswMERDIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBNQUNST047OzswMUQ2OworMDFENjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0xsOzA7TDswMEZDIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzswMUQ1OzswMUQ1CiswMUQ3O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMERDIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7OzAxRDg7CiswMUQ4O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMbDswO0w7MDBGQyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEFDVVRFOzswMUQ3OzswMUQ3CiswMUQ5O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIENBUk9OO0x1OzA7TDswMERDIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7OzAxREE7CiswMURBO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMbDswO0w7MDBGQyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEhBQ0VLOzswMUQ5OzswMUQ5CiswMURCO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEdSQVZFO0x1OzA7TDswMERDIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7OzAxREM7CiswMURDO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMbDswO0w7MDBGQyAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEdSQVZFOzswMURCOzswMURCCiswMUREO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgRTtMbDswO0w7Ozs7O047OzswMThFOzswMThFCiswMURFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBDNCAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBESUFFUkVTSVMgTUFDUk9OOzs7MDFERjsKKzAxREY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBFNCAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7MDFERTs7MDFERQorMDFFMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047THU7MDtMOzAyMjYgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRE9UIE1BQ1JPTjs7OzAxRTE7CiswMUUxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047TGw7MDtMOzAyMjcgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERPVCBNQUNST047OzAxRTA7OzAxRTAKKzAxRTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUgV0lUSCBNQUNST047THU7MDtMOzAwQzYgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRSBNQUNST047YXNoICo7OzAxRTM7CiswMUUzO0xBVElOIFNNQUxMIExFVFRFUiBBRSBXSVRIIE1BQ1JPTjtMbDswO0w7MDBFNiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRSBNQUNST047YXNoICo7MDFFMjs7MDFFMgorMDFFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEJBUjs7OzAxRTU7CiswMUU1O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBCQVI7OzAxRTQ7OzAxRTQKKzAxRTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENBUk9OO0x1OzA7TDswMDQ3IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhBQ0VLOzs7MDFFNzsKKzAxRTc7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMbDswO0w7MDA2NyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgSEFDRUs7OzAxRTY7OzAxRTYKKzAxRTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIENBUk9OO0x1OzA7TDswMDRCIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIEhBQ0VLOzs7MDFFOTsKKzAxRTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMbDswO0w7MDA2QiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgSEFDRUs7OzAxRTg7OzAxRTgKKzAxRUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE9HT05FSztMdTswO0w7MDA0RiAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUs7OzswMUVCOworMDFFQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE9HT05FSztMbDswO0w7MDA2RiAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLOzswMUVBOzswMUVBCiswMUVDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMdTswO0w7MDFFQSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUsgTUFDUk9OOzs7MDFFRDsKKzAxRUQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMbDswO0w7MDFFQiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7MDFFQzs7MDFFQworMDFFRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMdTswO0w7MDFCNyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSCBIQUNFSzs7OzAxRUY7CiswMUVGO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMbDswO0w7MDI5MiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggSEFDRUs7OzAxRUU7OzAxRUUKKzAxRjA7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDQVJPTjtMbDswO0w7MDA2QSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEogSEFDRUs7Ozs7CiswMUYxO0xBVElOIENBUElUQUwgTEVUVEVSIERaO0x1OzA7TDs8Y29tcGF0PiAwMDQ0IDAwNUE7Ozs7Tjs7OzswMUYzOzAxRjIKKzAxRjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNNQUxMIExFVFRFUiBaO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAwN0E7Ozs7Tjs7OzAxRjE7MDFGMzswMUYyCiswMUYzO0xBVElOIFNNQUxMIExFVFRFUiBEWjtMbDswO0w7PGNvbXBhdD4gMDA2NCAwMDdBOzs7O047OzswMUYxOzswMUYyCiswMUY0O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMdTswO0w7MDA0NyAwMzAxOzs7O047Ozs7MDFGNTsKKzAxRjU7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMbDswO0w7MDA2NyAwMzAxOzs7O047OzswMUY0OzswMUY0CiswMUY2O0xBVElOIENBUElUQUwgTEVUVEVSIEhXQUlSO0x1OzA7TDs7Ozs7Tjs7OzswMTk1OworMDFGNztMQVRJTiBDQVBJVEFMIExFVFRFUiBXWU5OO0x1OzA7TDs7Ozs7Tjs7OzswMUJGOworMDFGODtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggR1JBVkU7THU7MDtMOzAwNEUgMDMwMDs7OztOOzs7OzAxRjk7CiswMUY5O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggR1JBVkU7TGw7MDtMOzAwNkUgMDMwMDs7OztOOzs7MDFGODs7MDFGOAorMDFGQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRSBBTkQgQUNVVEU7THU7MDtMOzAwQzUgMDMwMTs7OztOOzs7OzAxRkI7CiswMUZCO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRSBBTkQgQUNVVEU7TGw7MDtMOzAwRTUgMDMwMTs7OztOOzs7MDFGQTs7MDFGQQorMDFGQztMQVRJTiBDQVBJVEFMIExFVFRFUiBBRSBXSVRIIEFDVVRFO0x1OzA7TDswMEM2IDAzMDE7Ozs7Tjs7YXNoICo7OzAxRkQ7CiswMUZEO0xBVElOIFNNQUxMIExFVFRFUiBBRSBXSVRIIEFDVVRFO0xsOzA7TDswMEU2IDAzMDE7Ozs7Tjs7YXNoICo7MDFGQzs7MDFGQworMDFGRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFIEFORCBBQ1VURTtMdTswO0w7MDBEOCAwMzAxOzs7O047Ozs7MDFGRjsKKzAxRkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UgQU5EIEFDVVRFO0xsOzA7TDswMEY4IDAzMDE7Ozs7Tjs7OzAxRkU7OzAxRkUKKzAyMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0MSAwMzBGOzs7O047Ozs7MDIwMTsKKzAyMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjEgMDMwRjs7OztOOzs7MDIwMDs7MDIwMAorMDIwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDEgMDMxMTs7OztOOzs7OzAyMDM7CiswMjAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjEgMDMxMTs7OztOOzs7MDIwMjs7MDIwMgorMDIwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQ1IDAzMEY7Ozs7Tjs7OzswMjA1OworMDIwNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2NSAwMzBGOzs7O047OzswMjA0OzswMjA0CiswMjA2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0NSAwMzExOzs7O047Ozs7MDIwNzsKKzAyMDc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2NSAwMzExOzs7O047OzswMjA2OzswMjA2CiswMjA4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDkgMDMwRjs7OztOOzs7OzAyMDk7CiswMjA5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDY5IDAzMEY7Ozs7Tjs7OzAyMDg7OzAyMDgKKzAyMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQ5IDAzMTE7Ozs7Tjs7OzswMjBCOworMDIwQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDY5IDAzMTE7Ozs7Tjs7OzAyMEE7OzAyMEEKKzAyMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0RiAwMzBGOzs7O047Ozs7MDIwRDsKKzAyMEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNkYgMDMwRjs7OztOOzs7MDIwQzs7MDIwQworMDIwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNEYgMDMxMTs7OztOOzs7OzAyMEY7CiswMjBGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNkYgMDMxMTs7OztOOzs7MDIwRTs7MDIwRQorMDIxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDUyIDAzMEY7Ozs7Tjs7OzswMjExOworMDIxMTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA3MiAwMzBGOzs7O047OzswMjEwOzswMjEwCiswMjEyO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA1MiAwMzExOzs7O047Ozs7MDIxMzsKKzAyMTM7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA3MiAwMzExOzs7O047OzswMjEyOzswMjEyCiswMjE0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNTUgMDMwRjs7OztOOzs7OzAyMTU7CiswMjE1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDc1IDAzMEY7Ozs7Tjs7OzAyMTQ7OzAyMTQKKzAyMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDU1IDAzMTE7Ozs7Tjs7OzswMjE3OworMDIxNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDc1IDAzMTE7Ozs7Tjs7OzAyMTY7OzAyMTYKKzAyMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENPTU1BIEJFTE9XO0x1OzA7TDswMDUzIDAzMjY7Ozs7Tjs7Kjs7MDIxOTsKKzAyMTk7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDT01NQSBCRUxPVztMbDswO0w7MDA3MyAwMzI2Ozs7O047Oyo7MDIxODs7MDIxOAorMDIxQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ09NTUEgQkVMT1c7THU7MDtMOzAwNTQgMDMyNjs7OztOOzsqOzswMjFCOworMDIxQjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENPTU1BIEJFTE9XO0xsOzA7TDswMDc0IDAzMjY7Ozs7Tjs7KjswMjFBOzswMjFBCiswMjFDO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0g7THU7MDtMOzs7OztOOzs7OzAyMUQ7CiswMjFEO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIO0xsOzA7TDs7Ozs7Tjs7OzAyMUM7OzAyMUMKKzAyMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENBUk9OO0x1OzA7TDswMDQ4IDAzMEM7Ozs7Tjs7OzswMjFGOworMDIxRjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENBUk9OO0xsOzA7TDswMDY4IDAzMEM7Ozs7Tjs7OzAyMUU7OzAyMUUKKzAyMjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExPTkcgUklHSFQgTEVHO0x1OzA7TDs7Ozs7Tjs7OzswMTlFOworMDIyMTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENVUkw7TGw7MDtMOzs7OztOOzs7OzsKKzAyMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1U7THU7MDtMOzs7OztOOzs7OzAyMjM7CiswMjIzO0xBVElOIFNNQUxMIExFVFRFUiBPVTtMbDswO0w7Ozs7O047OzswMjIyOzswMjIyCiswMjI0O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBIT09LO0x1OzA7TDs7Ozs7Tjs7OzswMjI1OworMDIyNTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOOzs7MDIyNDs7MDIyNAorMDIyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQxIDAzMDc7Ozs7Tjs7OzswMjI3OworMDIyNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MSAwMzA3Ozs7O047OzswMjI2OzswMjI2CiswMjI4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ1IDAzMjc7Ozs7Tjs7OzswMjI5OworMDIyOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjUgMDMyNzs7OztOOzs7MDIyODs7MDIyOAorMDIyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwRDYgMDMwNDs7OztOOzs7OzAyMkI7CiswMjJCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRjYgMDMwNDs7OztOOzs7MDIyQTs7MDIyQQorMDIyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIE1BQ1JPTjtMdTswO0w7MDBENSAwMzA0Ozs7O047Ozs7MDIyRDsKKzAyMkQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgTUFDUk9OO0xsOzA7TDswMEY1IDAzMDQ7Ozs7Tjs7OzAyMkM7OzAyMkMKKzAyMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RiAwMzA3Ozs7O047Ozs7MDIyRjsKKzAyMkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkYgMDMwNzs7OztOOzs7MDIyRTs7MDIyRQorMDIzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047THU7MDtMOzAyMkUgMDMwNDs7OztOOzs7OzAyMzE7CiswMjMxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047TGw7MDtMOzAyMkYgMDMwNDs7OztOOzs7MDIzMDs7MDIzMAorMDIzMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggTUFDUk9OO0x1OzA7TDswMDU5IDAzMDQ7Ozs7Tjs7OzswMjMzOworMDIzMztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA3OSAwMzA0Ozs7O047OzswMjMyOzswMjMyCiswMjM0O0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047Ozs7OworMDIzNTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENVUkw7TGw7MDtMOzs7OztOOzs7OzsKKzAyMzY7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDVVJMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjM3O0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEo7TGw7MDtMOzs7OztOOzs7OzsKKzAyMzg7TEFUSU4gU01BTEwgTEVUVEVSIERCIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyMzk7TEFUSU4gU01BTEwgTEVUVEVSIFFQIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyM0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Ozs7MkM2NTsKKzAyM0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Ozs7MDIzQzsKKzAyM0M7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7MDIzQjs7MDIzQgorMDIzRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQkFSO0x1OzA7TDs7Ozs7Tjs7OzswMTlBOworMDIzRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggRElBR09OQUwgU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzsyQzY2OworMDIzRjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIFNXQVNIIFRBSUw7TGw7MDtMOzs7OztOOzs7OzsKKzAyNDA7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBTV0FTSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjQxO0xBVElOIENBUElUQUwgTEVUVEVSIEdMT1RUQUwgU1RPUDtMdTswO0w7Ozs7O047Ozs7MDI0MjsKKzAyNDI7TEFUSU4gU01BTEwgTEVUVEVSIEdMT1RUQUwgU1RPUDtMbDswO0w7Ozs7O047OzswMjQxOzswMjQxCiswMjQzO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOOzs7OzAxODA7CiswMjQ0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgQkFSO0x1OzA7TDs7Ozs7Tjs7OzswMjg5OworMDI0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUVVJORUQgVjtMdTswO0w7Ozs7O047Ozs7MDI4QzsKKzAyNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Ozs7MDI0NzsKKzAyNDc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7MDI0Njs7MDI0NgorMDI0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBKIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzswMjQ5OworMDI0OTtMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzswMjQ4OzswMjQ4CiswMjRBO0xBVElOIENBUElUQUwgTEVUVEVSIFNNQUxMIFEgV0lUSCBIT09LIFRBSUw7THU7MDtMOzs7OztOOzs7OzAyNEI7CiswMjRCO0xBVElOIFNNQUxMIExFVFRFUiBRIFdJVEggSE9PSyBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzAyNEE7OzAyNEEKKzAyNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Ozs7MDI0RDsKKzAyNEQ7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7MDI0Qzs7MDI0QworMDI0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzswMjRGOworMDI0RjtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzswMjRFOzswMjRFCiswMjUwO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgQTtMbDswO0w7Ozs7O047Ozs7OworMDI1MTtMQVRJTiBTTUFMTCBMRVRURVIgQUxQSEE7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgQTs7OzsKKzAyNTI7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBBTFBIQTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBTQ1JJUFQgQTs7OzsKKzAyNTM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBIT09LOzswMTgxOzswMTgxCiswMjU0O0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIE87TGw7MDtMOzs7OztOOzs7MDE4Njs7MDE4NgorMDI1NTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENVUkw7Ozs7CiswMjU2O0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgUkVUUk9GTEVYIEhPT0s7OzAxODk7OzAxODkKKzAyNTc7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBIT09LOzswMThBOzswMThBCiswMjU4O0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjU5O0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQTtMbDswO0w7Ozs7O047OzswMThGOzswMThGCiswMjVBO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBIT09LOzs7OworMDI1QjtMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVBTSUxPTjs7MDE5MDs7MDE5MAorMDI1QztMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRVBTSUxPTjs7OzsKKzAyNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFUFNJTE9OIEhPT0s7Ozs7CiswMjVFO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIFJFVkVSU0VEIEVQU0lMT047Ozs7CiswMjVGO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSOzs7OworMDI2MDtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhPT0s7OzAxOTM7OzAxOTMKKzAyNjE7TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjYyO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjM7TEFUSU4gU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAxOTQ7OzAxOTQKKzAyNjQ7TEFUSU4gU01BTEwgTEVUVEVSIFJBTVMgSE9STjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBQlkgR0FNTUE7Ozs7CiswMjY1O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSDtMbDswO0w7Ozs7O047Ozs7OworMDI2NjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIEhPT0s7Ozs7CiswMjY3O0xBVElOIFNNQUxMIExFVFRFUiBIRU5HIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEhFTkcgSE9PSzs7OzsKKzAyNjg7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgSTs7MDE5Nzs7MDE5NworMDI2OTtMQVRJTiBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMTk2OzswMTk2CiswMjZBO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNkI7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7MkM2Mjs7MkM2MgorMDI2QztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEJFTFQ7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEJFTFQ7Ozs7CiswMjZEO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFJFVFJPRkxFWCBIT09LOzs7OworMDI2RTtMQVRJTiBTTUFMTCBMRVRURVIgTEVaSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgWU9HSDs7OzsKKzAyNkY7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBNO0xsOzA7TDs7Ozs7Tjs7OzAxOUM7OzAxOUMKKzAyNzA7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBNIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzE7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTSBIT09LOzs7OworMDI3MjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gSE9PSzs7MDE5RDs7MDE5RAorMDI3MztMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBSRVRST0ZMRVggSE9PSzs7OzsKKzAyNzQ7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTjtMbDswO0w7Ozs7O047Ozs7OworMDI3NTtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIE87TGw7MDtMOzs7OztOOzs7MDE5Rjs7MDE5RgorMDI3NjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTyBFOzs7OworMDI3NztMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc4O0xBVElOIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzk7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdBO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdCO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBIT09LOzs7OworMDI3QztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdEO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgSE9PSzs7MkM2NDs7MkM2NAorMDI3RTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIEZJU0hIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRklTSEhPT0sgUjs7OzsKKzAyN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIFIgV0lUSCBGSVNISE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEZJU0hIT09LIFI7Ozs7CiswMjgwO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFI7TGw7MDtMOzs7OztOOzsqOzAxQTY7OzAxQTYKKzAyODE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbDswO0w7Ozs7O047Ozs7OworMDI4MjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEhPT0s7Ozs7CiswMjgzO0xBVElOIFNNQUxMIExFVFRFUiBFU0g7TGw7MDtMOzs7OztOOzs7MDFBOTs7MDFBOQorMDI4NDtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIEJBUiBIT09LOzs7OworMDI4NTtMQVRJTiBTTUFMTCBMRVRURVIgU1FVQVQgUkVWRVJTRUQgRVNIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjg2O0xBVElOIFNNQUxMIExFVFRFUiBFU0ggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIENVUkw7Ozs7CiswMjg3O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVDtMbDswO0w7Ozs7O047Ozs7OworMDI4ODtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBSRVRST0ZMRVggSE9PSzs7MDFBRTs7MDFBRQorMDI4OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBCQVI7TGw7MDtMOzs7OztOOzs7MDI0NDs7MDI0NAorMDI4QTtMQVRJTiBTTUFMTCBMRVRURVIgVVBTSUxPTjtMbDswO0w7Ozs7O047OzswMUIxOzswMUIxCiswMjhCO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBWOzswMUIyOzswMUIyCiswMjhDO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVjtMbDswO0w7Ozs7O047OzswMjQ1OzswMjQ1CiswMjhEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVztMbDswO0w7Ozs7O047Ozs7OworMDI4RTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFk7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgWTtMbDswO0w7Ozs7O047Ozs7OworMDI5MDtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBSRVRST0ZMRVggSE9PSzs7OzsKKzAyOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBDVVJMOzs7OworMDI5MjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSDs7MDFCNzs7MDFCNworMDI5MztMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggQ1VSTDs7OzsKKzAyOTQ7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUDtMbzswO0w7Ozs7O047Ozs7OworMDI5NTtMQVRJTiBMRVRURVIgUEhBUllOR0VBTCBWT0lDRUQgRlJJQ0FUSVZFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QOzs7OworMDI5NjtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk3O0xBVElOIExFVFRFUiBTVFJFVENIRUQgQztMbDswO0w7Ozs7O047Ozs7OworMDI5ODtMQVRJTiBMRVRURVIgQklMQUJJQUwgQ0xJQ0s7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBCVUxMU0VZRTs7OzsKKzAyOTk7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQjtMbDswO0w7Ozs7O047Ozs7OworMDI5QTtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBFUFNJTE9OOzs7OworMDI5QjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRyBIT09LOzs7OworMDI5QztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlEO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ1JPU1NFRC1UQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ1JPU1NFRC1UQUlMIEo7Ozs7CiswMjlFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSztMbDswO0w7Ozs7O047Ozs7OworMDI5RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkEwO0xBVElOIFNNQUxMIExFVFRFUiBRIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFEgSE9PSzs7OzsKKzAyQTE7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMkEyO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDJBMztMQVRJTiBTTUFMTCBMRVRURVIgRFogRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWjs7OzsKKzAyQTQ7TEFUSU4gU01BTEwgTEVUVEVSIERFWkggRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWU9HSDs7OzsKKzAyQTU7TEFUSU4gU01BTEwgTEVUVEVSIERaIERJR1JBUEggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIENVUkw7Ozs7CiswMkE2O0xBVElOIFNNQUxMIExFVFRFUiBUUyBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBTOzs7OworMDJBNztMQVRJTiBTTUFMTCBMRVRURVIgVEVTSCBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBFU0g7Ozs7CiswMkE4O0xBVElOIFNNQUxMIExFVFRFUiBUQyBESUdSQVBIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQyBDVVJMOzs7OworMDJBOTtMQVRJTiBTTUFMTCBMRVRURVIgRkVORyBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFBO0xBVElOIFNNQUxMIExFVFRFUiBMUyBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFCO0xBVElOIFNNQUxMIExFVFRFUiBMWiBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFDO0xBVElOIExFVFRFUiBCSUxBQklBTCBQRVJDVVNTSVZFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFEO0xBVElOIExFVFRFUiBCSURFTlRBTCBQRVJDVVNTSVZFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSCBXSVRIIEZJU0hIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFGO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSCBXSVRIIEZJU0hIT09LIEFORCBUQUlMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkIwO01PRElGSUVSIExFVFRFUiBTTUFMTCBIO0xtOzA7TDs8c3VwZXI+IDAwNjg7Ozs7Tjs7Ozs7CiswMkIxO01PRElGSUVSIExFVFRFUiBTTUFMTCBIIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjY2Ozs7O047TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEggSE9PSzs7OzsKKzAyQjI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEo7TG07MDtMOzxzdXBlcj4gMDA2QTs7OztOOzs7OzsKKzAyQjM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFI7TG07MDtMOzxzdXBlcj4gMDA3Mjs7OztOOzs7OzsKKzAyQjQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBSO0xtOzA7TDs8c3VwZXI+IDAyNzk7Ozs7Tjs7Ozs7CiswMkI1O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUiBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI3Qjs7OztOO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUiBIT09LOzs7OworMDJCNjtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJTlZFUlRFRCBSO0xtOzA7TDs8c3VwZXI+IDAyODE7Ozs7Tjs7Ozs7CiswMkI3O01PRElGSUVSIExFVFRFUiBTTUFMTCBXO0xtOzA7TDs8c3VwZXI+IDAwNzc7Ozs7Tjs7Ozs7CiswMkI4O01PRElGSUVSIExFVFRFUiBTTUFMTCBZO0xtOzA7TDs8c3VwZXI+IDAwNzk7Ozs7Tjs7Ozs7CiswMkI5O01PRElGSUVSIExFVFRFUiBQUklNRTtMbTswO09OOzs7OztOOzs7OzsKKzAyQkE7TU9ESUZJRVIgTEVUVEVSIERPVUJMRSBQUklNRTtMbTswO09OOzs7OztOOzs7OzsKKzAyQkI7TU9ESUZJRVIgTEVUVEVSIFRVUk5FRCBDT01NQTtMbTswO0w7Ozs7O047Ozs7OworMDJCQztNT0RJRklFUiBMRVRURVIgQVBPU1RST1BIRTtMbTswO0w7Ozs7O047Ozs7OworMDJCRDtNT0RJRklFUiBMRVRURVIgUkVWRVJTRUQgQ09NTUE7TG07MDtMOzs7OztOOzs7OzsKKzAyQkU7TU9ESUZJRVIgTEVUVEVSIFJJR0hUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDJCRjtNT0RJRklFUiBMRVRURVIgTEVGVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzAyQzA7TU9ESUZJRVIgTEVUVEVSIEdMT1RUQUwgU1RPUDtMbTswO0w7Ozs7O047Ozs7OworMDJDMTtNT0RJRklFUiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMyO01PRElGSUVSIExFVFRFUiBMRUZUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzM7TU9ESUZJRVIgTEVUVEVSIFJJR0hUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzQ7TU9ESUZJRVIgTEVUVEVSIFVQIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzU7TU9ESUZJRVIgTEVUVEVSIERPV04gQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDNjtNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWCBBQ0NFTlQ7TG07MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWDs7OzsKKzAyQzc7Q0FST047TG07MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgSEFDRUs7TWFuZGFyaW4gQ2hpbmVzZSB0aGlyZCB0b25lOzs7CiswMkM4O01PRElGSUVSIExFVFRFUiBWRVJUSUNBTCBMSU5FO0xtOzA7T047Ozs7O047Ozs7OworMDJDOTtNT0RJRklFUiBMRVRURVIgTUFDUk9OO0xtOzA7T047Ozs7O047O01hbmRhcmluIENoaW5lc2UgZmlyc3QgdG9uZTs7OworMDJDQTtNT0RJRklFUiBMRVRURVIgQUNVVEUgQUNDRU5UO0xtOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEFDVVRFO01hbmRhcmluIENoaW5lc2Ugc2Vjb25kIHRvbmU7OzsKKzAyQ0I7TU9ESUZJRVIgTEVUVEVSIEdSQVZFIEFDQ0VOVDtMbTswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBHUkFWRTtNYW5kYXJpbiBDaGluZXNlIGZvdXJ0aCB0b25lOzs7CiswMkNDO01PRElGSUVSIExFVFRFUiBMT1cgVkVSVElDQUwgTElORTtMbTswO09OOzs7OztOOzs7OzsKKzAyQ0Q7TU9ESUZJRVIgTEVUVEVSIExPVyBNQUNST047TG07MDtPTjs7Ozs7Tjs7Ozs7CiswMkNFO01PRElGSUVSIExFVFRFUiBMT1cgR1JBVkUgQUNDRU5UO0xtOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIExPVyBHUkFWRTs7OzsKKzAyQ0Y7TU9ESUZJRVIgTEVUVEVSIExPVyBBQ1VURSBBQ0NFTlQ7TG07MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgTE9XIEFDVVRFOzs7OworMDJEMDtNT0RJRklFUiBMRVRURVIgVFJJQU5HVUxBUiBDT0xPTjtMbTswO0w7Ozs7O047Ozs7OworMDJEMTtNT0RJRklFUiBMRVRURVIgSEFMRiBUUklBTkdVTEFSIENPTE9OO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkQyO01PRElGSUVSIExFVFRFUiBDRU5UUkVEIFJJR0hUIEhBTEYgUklORztTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBDRU5URVJFRCBSSUdIVCBIQUxGIFJJTkc7Ozs7CiswMkQzO01PRElGSUVSIExFVFRFUiBDRU5UUkVEIExFRlQgSEFMRiBSSU5HO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENFTlRFUkVEIExFRlQgSEFMRiBSSU5HOzs7OworMDJENDtNT0RJRklFUiBMRVRURVIgVVAgVEFDSztTazswO09OOzs7OztOOzs7OzsKKzAyRDU7TU9ESUZJRVIgTEVUVEVSIERPV04gVEFDSztTazswO09OOzs7OztOOzs7OzsKKzAyRDY7TU9ESUZJRVIgTEVUVEVSIFBMVVMgU0lHTjtTazswO09OOzs7OztOOzs7OzsKKzAyRDc7TU9ESUZJRVIgTEVUVEVSIE1JTlVTIFNJR047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ4O0JSRVZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA2Ozs7O047U1BBQ0lORyBCUkVWRTs7OzsKKzAyRDk7RE9UIEFCT1ZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA3Ozs7O047U1BBQ0lORyBET1QgQUJPVkU7TWFuZGFyaW4gQ2hpbmVzZSBsaWdodCB0b25lOzs7CiswMkRBO1JJTkcgQUJPVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMEE7Ozs7TjtTUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMkRCO09HT05FSztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMyODs7OztOO1NQQUNJTkcgT0dPTkVLOzs7OworMDJEQztTTUFMTCBUSUxERTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMzs7OztOO1NQQUNJTkcgVElMREU7Ozs7CiswMkREO0RPVUJMRSBBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMEI7Ozs7TjtTUEFDSU5HIERPVUJMRSBBQ1VURTs7OzsKKzAyREU7TU9ESUZJRVIgTEVUVEVSIFJIT1RJQyBIT09LO1NrOzA7T047Ozs7O047Ozs7OworMDJERjtNT0RJRklFUiBMRVRURVIgQ1JPU1MgQUNDRU5UO1NrOzA7T047Ozs7O047Ozs7OworMDJFMDtNT0RJRklFUiBMRVRURVIgU01BTEwgR0FNTUE7TG07MDtMOzxzdXBlcj4gMDI2Mzs7OztOOzs7OzsKKzAyRTE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEw7TG07MDtMOzxzdXBlcj4gMDA2Qzs7OztOOzs7OzsKKzAyRTI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFM7TG07MDtMOzxzdXBlcj4gMDA3Mzs7OztOOzs7OzsKKzAyRTM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFg7TG07MDtMOzxzdXBlcj4gMDA3ODs7OztOOzs7OzsKKzAyRTQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDtMbTswO0w7PHN1cGVyPiAwMjk1Ozs7O047Ozs7OworMDJFNTtNT0RJRklFUiBMRVRURVIgRVhUUkEtSElHSCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTY7TU9ESUZJRVIgTEVUVEVSIEhJR0ggVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU3O01PRElGSUVSIExFVFRFUiBNSUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU4O01PRElGSUVSIExFVFRFUiBMT1cgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU5O01PRElGSUVSIExFVFRFUiBFWFRSQS1MT1cgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVBO01PRElGSUVSIExFVFRFUiBZSU4gREVQQVJUSU5HIFRPTkUgTUFSSztTazswO09OOzs7OztOOzs7OzsKKzAyRUI7TU9ESUZJRVIgTEVUVEVSIFlBTkcgREVQQVJUSU5HIFRPTkUgTUFSSztTazswO09OOzs7OztOOzs7OzsKKzAyRUM7TU9ESUZJRVIgTEVUVEVSIFZPSUNJTkc7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVEO01PRElGSUVSIExFVFRFUiBVTkFTUElSQVRFRDtTazswO09OOzs7OztOOzs7OzsKKzAyRUU7TU9ESUZJRVIgTEVUVEVSIERPVUJMRSBBUE9TVFJPUEhFO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkVGO01PRElGSUVSIExFVFRFUiBMT1cgRE9XTiBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkYwO01PRElGSUVSIExFVFRFUiBMT1cgVVAgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJGMTtNT0RJRklFUiBMRVRURVIgTE9XIExFRlQgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJGMjtNT0RJRklFUiBMRVRURVIgTE9XIFJJR0hUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyRjM7TU9ESUZJRVIgTEVUVEVSIExPVyBSSU5HO1NrOzA7T047Ozs7O047Ozs7OworMDJGNDtNT0RJRklFUiBMRVRURVIgTUlERExFIEdSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOOzs7OzsKKzAyRjU7TU9ESUZJRVIgTEVUVEVSIE1JRERMRSBET1VCTEUgR1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047Ozs7OworMDJGNjtNT0RJRklFUiBMRVRURVIgTUlERExFIERPVUJMRSBBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkY3O01PRElGSUVSIExFVFRFUiBMT1cgVElMREU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkY4O01PRElGSUVSIExFVFRFUiBSQUlTRUQgQ09MT047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkY5O01PRElGSUVSIExFVFRFUiBCRUdJTiBISUdIIFRPTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkZBO01PRElGSUVSIExFVFRFUiBFTkQgSElHSCBUT05FO1NrOzA7T047Ozs7O047Ozs7OworMDJGQjtNT0RJRklFUiBMRVRURVIgQkVHSU4gTE9XIFRPTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkZDO01PRElGSUVSIExFVFRFUiBFTkQgTE9XIFRPTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkZEO01PRElGSUVSIExFVFRFUiBTSEVMRjtTazswO09OOzs7OztOOzs7OzsKKzAyRkU7TU9ESUZJRVIgTEVUVEVSIE9QRU4gU0hFTEY7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkZGO01PRElGSUVSIExFVFRFUiBMT1cgTEVGVCBBUlJPVztTazswO09OOzs7OztOOzs7OzsKKzAzMDA7Q09NQklOSU5HIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEdSQVZFO1ZhcmlhOzs7CiswMzAxO0NPTUJJTklORyBBQ1VURSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURTtPeGlhLCBUb25vczs7OworMDMwMjtDT01CSU5JTkcgQ0lSQ1VNRkxFWCBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDMwMztDT01CSU5JTkcgVElMREU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBUSUxERTs7OzsKKzAzMDQ7Q09NQklOSU5HIE1BQ1JPTjtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE1BQ1JPTjs7OzsKKzAzMDU7Q09NQklOSU5HIE9WRVJMSU5FO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgT1ZFUlNDT1JFOzs7OworMDMwNjtDT01CSU5JTkcgQlJFVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBCUkVWRTtWcmFjaHk7OzsKKzAzMDc7Q09NQklOSU5HIERPVCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVCBBQk9WRTs7OzsKKzAzMDg7Q09NQklOSU5HIERJQUVSRVNJUztNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERJQUVSRVNJUztEaWFseXRpa2E7OzsKKzAzMDk7Q09NQklOSU5HIEhPT0sgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIT09LIEFCT1ZFOzs7OworMDMwQTtDT01CSU5JTkcgUklORyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMzBCO0NPTUJJTklORyBET1VCTEUgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDMwQztDT01CSU5JTkcgQ0FST047TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIQUNFSzs7OzsKKzAzMEQ7Q09NQklOSU5HIFZFUlRJQ0FMIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEFCT1ZFOzs7OworMDMwRTtDT01CSU5JTkcgRE9VQkxFIFZFUlRJQ0FMIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgVkVSVElDQUwgTElORSBBQk9WRTs7OzsKKzAzMEY7Q09NQklOSU5HIERPVUJMRSBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgR1JBVkU7Ozs7CiswMzEwO0NPTUJJTklORyBDQU5EUkFCSU5EVTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENBTkRSQUJJTkRVOzs7OworMDMxMTtDT01CSU5JTkcgSU5WRVJURUQgQlJFVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUkVWRTs7OzsKKzAzMTI7Q09NQklOSU5HIFRVUk5FRCBDT01NQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRVUk5FRCBDT01NQSBBQk9WRTs7OzsKKzAzMTM7Q09NQklOSU5HIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkU7UHNpbGk7OzsKKzAzMTQ7Q09NQklOSU5HIFJFVkVSU0VEIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUkVWRVJTRUQgQ09NTUEgQUJPVkU7RGFzaWE7OzsKKzAzMTU7Q09NQklOSU5HIENPTU1BIEFCT1ZFIFJJR0hUO01uOzIzMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkUgUklHSFQ7Ozs7CiswMzE2O0NPTUJJTklORyBHUkFWRSBBQ0NFTlQgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRSBCRUxPVzs7OzsKKzAzMTc7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFDVVRFIEJFTE9XOzs7OworMDMxODtDT01CSU5JTkcgTEVGVCBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBUQUNLIEJFTE9XOzs7OworMDMxOTtDT01CSU5JTkcgUklHSFQgVEFDSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIFRBQ0sgQkVMT1c7Ozs7CiswMzFBO0NPTUJJTklORyBMRUZUIEFOR0xFIEFCT1ZFO01uOzIzMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBBTkdMRSBBQk9WRTs7OzsKKzAzMUI7Q09NQklOSU5HIEhPUk47TW47MjE2O05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIT1JOOzs7OworMDMxQztDT01CSU5JTkcgTEVGVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBTEYgUklORyBCRUxPVzs7OzsKKzAzMUQ7Q09NQklOSU5HIFVQIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBVUCBUQUNLIEJFTE9XOzs7OworMDMxRTtDT01CSU5JTkcgRE9XTiBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9XTiBUQUNLIEJFTE9XOzs7OworMDMxRjtDT01CSU5JTkcgUExVUyBTSUdOIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUExVUyBTSUdOIEJFTE9XOzs7OworMDMyMDtDT01CSU5JTkcgTUlOVVMgU0lHTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE1JTlVTIFNJR04gQkVMT1c7Ozs7CiswMzIxO0NPTUJJTklORyBQQUxBVEFMSVpFRCBIT09LIEJFTE9XO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgUEFMQVRBTElaRUQgSE9PSyBCRUxPVzs7OzsKKzAzMjI7Q09NQklOSU5HIFJFVFJPRkxFWCBIT09LIEJFTE9XO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgUkVUUk9GTEVYIEhPT0sgQkVMT1c7Ozs7CiswMzIzO0NPTUJJTklORyBET1QgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1QgQkVMT1c7Ozs7CiswMzI0O0NPTUJJTklORyBESUFFUkVTSVMgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgRE9UIEJFTE9XOzs7OworMDMyNTtDT01CSU5JTkcgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQkVMT1c7Ozs7CiswMzI2O0NPTUJJTklORyBDT01NQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENPTU1BIEJFTE9XOzs7OworMDMyNztDT01CSU5JTkcgQ0VESUxMQTtNbjsyMDI7TlNNOzs7OztOO05PTi1TUEFDSU5HIENFRElMTEE7Ozs7CiswMzI4O0NPTUJJTklORyBPR09ORUs7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBPR09ORUs7Ozs7CiswMzI5O0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgTElORSBCRUxPVzs7OzsKKzAzMkE7Q09NQklOSU5HIEJSSURHRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEJSSURHRSBCRUxPVzs7OzsKKzAzMkI7Q09NQklOSU5HIElOVkVSVEVEIERPVUJMRSBBUkNIIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgRE9VQkxFIEFSQ0ggQkVMT1c7Ozs7CiswMzJDO0NPTUJJTklORyBDQVJPTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEhBQ0VLIEJFTE9XOzs7OworMDMyRDtDT01CSU5JTkcgQ0lSQ1VNRkxFWCBBQ0NFTlQgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYIEJFTE9XOzs7OworMDMyRTtDT01CSU5JTkcgQlJFVkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBCUkVWRSBCRUxPVzs7OzsKKzAzMkY7Q09NQklOSU5HIElOVkVSVEVEIEJSRVZFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJFVkUgQkVMT1c7Ozs7CiswMzMwO0NPTUJJTklORyBUSUxERSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIEJFTE9XOzs7OworMDMzMTtDT01CSU5JTkcgTUFDUk9OIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTUFDUk9OIEJFTE9XOzs7OworMDMzMjtDT01CSU5JTkcgTE9XIExJTkU7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworMDMzMztDT01CSU5JTkcgRE9VQkxFIExPVyBMSU5FO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CiswMzM0O0NPTUJJTklORyBUSUxERSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIE9WRVJMQVk7Ozs7CiswMzM1O0NPTUJJTklORyBTSE9SVCBTVFJPS0UgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBCQVIgT1ZFUkxBWTs7OzsKKzAzMzY7Q09NQklOSU5HIExPTkcgU1RST0tFIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBCQVIgT1ZFUkxBWTs7OzsKKzAzMzc7Q09NQklOSU5HIFNIT1JUIFNPTElEVVMgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBTTEFTSCBPVkVSTEFZOzs7OworMDMzODtDT01CSU5JTkcgTE9ORyBTT0xJRFVTIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBTTEFTSCBPVkVSTEFZOzs7OworMDMzOTtDT01CSU5JTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMzQTtDT01CSU5JTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XOzs7OworMDMzQjtDT01CSU5JTkcgU1FVQVJFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgU1FVQVJFIEJFTE9XOzs7OworMDMzQztDT01CSU5JTkcgU0VBR1VMTCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNFQUdVTEwgQkVMT1c7Ozs7CiswMzNEO0NPTUJJTklORyBYIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgWCBBQk9WRTs7OzsKKzAzM0U7Q09NQklOSU5HIFZFUlRJQ0FMIFRJTERFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgVElMREU7Ozs7CiswMzNGO0NPTUJJTklORyBET1VCTEUgT1ZFUkxJTkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgT1ZFUlNDT1JFOzs7OworMDM0MDtDT01CSU5JTkcgR1JBVkUgVE9ORSBNQVJLO01uOzIzMDtOU007MDMwMDs7OztOO05PTi1TUEFDSU5HIEdSQVZFIFRPTkUgTUFSSztWaWV0bmFtZXNlOzs7CiswMzQxO0NPTUJJTklORyBBQ1VURSBUT05FIE1BUks7TW47MjMwO05TTTswMzAxOzs7O047Tk9OLVNQQUNJTkcgQUNVVEUgVE9ORSBNQVJLO1ZpZXRuYW1lc2U7OzsKKzAzNDI7Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0MztDT01CSU5JTkcgR1JFRUsgS09ST05JUztNbjsyMzA7TlNNOzAzMTM7Ozs7Tjs7Ozs7CiswMzQ0O0NPTUJJTklORyBHUkVFSyBESUFMWVRJS0EgVE9OT1M7TW47MjMwO05TTTswMzA4IDAzMDE7Ozs7TjtHUkVFSyBOT04tU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzQ1O0NPTUJJTklORyBHUkVFSyBZUE9HRUdSQU1NRU5JO01uOzI0MDtOU007Ozs7O047R1JFRUsgTk9OLVNQQUNJTkcgSU9UQSBCRUxPVzs7MDM5OTs7MDM5OQorMDM0NjtDT01CSU5JTkcgQlJJREdFIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0NztDT01CSU5JTkcgRVFVQUxTIFNJR04gQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzQ4O0NPTUJJTklORyBET1VCTEUgVkVSVElDQUwgTElORSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNDk7Q09NQklOSU5HIExFRlQgQU5HTEUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzRBO0NPTUJJTklORyBOT1QgVElMREUgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzRCO0NPTUJJTklORyBIT01PVEhFVElDIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0QztDT01CSU5JTkcgQUxNT1NUIEVRVUFMIFRPIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0RDtDT01CSU5JTkcgTEVGVCBSSUdIVCBBUlJPVyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNEU7Q09NQklOSU5HIFVQV0FSRFMgQVJST1cgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzRGO0NPTUJJTklORyBHUkFQSEVNRSBKT0lORVI7TW47MDtOU007Ozs7O047Ozs7OworMDM1MDtDT01CSU5JTkcgUklHSFQgQVJST1dIRUFEIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM1MTtDT01CSU5JTkcgTEVGVCBIQUxGIFJJTkcgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzUyO0NPTUJJTklORyBGRVJNQVRBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM1MztDT01CSU5JTkcgWCBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNTQ7Q09NQklOSU5HIExFRlQgQVJST1dIRUFEIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM1NTtDT01CSU5JTkcgUklHSFQgQVJST1dIRUFEIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM1NjtDT01CSU5JTkcgUklHSFQgQVJST1dIRUFEIEFORCBVUCBBUlJPV0hFQUQgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzU3O0NPTUJJTklORyBSSUdIVCBIQUxGIFJJTkcgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzU4O0NPTUJJTklORyBET1QgQUJPVkUgUklHSFQ7TW47MjMyO05TTTs7Ozs7Tjs7Ozs7CiswMzU5O0NPTUJJTklORyBBU1RFUklTSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNUE7Q09NQklOSU5HIERPVUJMRSBSSU5HIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM1QjtDT01CSU5JTkcgWklHWkFHIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM1QztDT01CSU5JTkcgRE9VQkxFIEJSRVZFIEJFTE9XO01uOzIzMztOU007Ozs7O047Ozs7OworMDM1RDtDT01CSU5JTkcgRE9VQkxFIEJSRVZFO01uOzIzNDtOU007Ozs7O047Ozs7OworMDM1RTtDT01CSU5JTkcgRE9VQkxFIE1BQ1JPTjtNbjsyMzQ7TlNNOzs7OztOOzs7OzsKKzAzNUY7Q09NQklOSU5HIERPVUJMRSBNQUNST04gQkVMT1c7TW47MjMzO05TTTs7Ozs7Tjs7Ozs7CiswMzYwO0NPTUJJTklORyBET1VCTEUgVElMREU7TW47MjM0O05TTTs7Ozs7Tjs7Ozs7CiswMzYxO0NPTUJJTklORyBET1VCTEUgSU5WRVJURUQgQlJFVkU7TW47MjM0O05TTTs7Ozs7Tjs7Ozs7CiswMzYyO0NPTUJJTklORyBET1VCTEUgUklHSFRXQVJEUyBBUlJPVyBCRUxPVztNbjsyMzM7TlNNOzs7OztOOzs7OzsKKzAzNjM7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2NDtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY1O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgSTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjY7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBPO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2NztDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIFU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY4O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgQztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjk7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBEO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2QTtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEg7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZCO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgTTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkM7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBSO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2RDtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIFQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZFO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgVjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkY7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBYO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM3NDtHUkVFSyBOVU1FUkFMIFNJR047U2s7MDtPTjswMkI5Ozs7O047R1JFRUsgVVBQRVIgTlVNRVJBTCBTSUdOO0RleGlhIGtlcmFpYTs7OworMDM3NTtHUkVFSyBMT1dFUiBOVU1FUkFMIFNJR047U2s7MDtPTjs7Ozs7Tjs7QXJpc3Rlcmkga2VyYWlhOzs7CiswMzdBO0dSRUVLIFlQT0dFR1JBTU1FTkk7TG07MDtMOzxjb21wYXQ+IDAwMjAgMDM0NTs7OztOO0dSRUVLIFNQQUNJTkcgSU9UQSBCRUxPVzs7OzsKKzAzN0I7R1JFRUsgU01BTEwgUkVWRVJTRUQgTFVOQVRFIFNJR01BIFNZTUJPTDtMbDswO0w7Ozs7O047OzswM0ZEOzswM0ZECiswMzdDO0dSRUVLIFNNQUxMIERPVFRFRCBMVU5BVEUgU0lHTUEgU1lNQk9MO0xsOzA7TDs7Ozs7Tjs7OzAzRkU7OzAzRkUKKzAzN0Q7R1JFRUsgU01BTEwgUkVWRVJTRUQgRE9UVEVEIExVTkFURSBTSUdNQSBTWU1CT0w7TGw7MDtMOzs7OztOOzs7MDNGRjs7MDNGRgorMDM3RTtHUkVFSyBRVUVTVElPTiBNQVJLO1BvOzA7T047MDAzQjs7OztOOztFcm90aW1hdGlrbzs7OworMDM4NDtHUkVFSyBUT05PUztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMTs7OztOO0dSRUVLIFNQQUNJTkcgVE9OT1M7Ozs7CiswMzg1O0dSRUVLIERJQUxZVElLQSBUT05PUztTazswO09OOzAwQTggMDMwMTs7OztOO0dSRUVLIFNQQUNJTkcgRElBRVJFU0lTIFRPTk9TOzs7OworMDM4NjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFRPTk9TO0x1OzA7TDswMzkxIDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBUT05PUzs7OzAzQUM7CiswMzg3O0dSRUVLIEFOTyBURUxFSUE7UG87MDtPTjswMEI3Ozs7O047Ozs7OworMDM4ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggVE9OT1M7THU7MDtMOzAzOTUgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gVE9OT1M7OzswM0FEOworMDM4OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBUT05PUztMdTswO0w7MDM5NyAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFRPTk9TOzs7MDNBRTsKKzAzOEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFRPTk9TO0x1OzA7TDswMzk5IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFRPTk9TOzs7MDNBRjsKKzAzOEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFRPTk9TO0x1OzA7TDswMzlGIDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFRPTk9TOzs7MDNDQzsKKzAzOEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFRPTk9TO0x1OzA7TDswM0E1IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFRPTk9TOzs7MDNDRDsKKzAzOEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBUT05PUztMdTswO0w7MDNBOSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgVE9OT1M7OzswM0NFOworMDM5MDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1M7TGw7MDtMOzAzQ0EgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzOTE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEE7THU7MDtMOzs7OztOOzs7OzAzQjE7CiswMzkyO0dSRUVLIENBUElUQUwgTEVUVEVSIEJFVEE7THU7MDtMOzs7OztOOzs7OzAzQjI7CiswMzkzO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTU1BO0x1OzA7TDs7Ozs7Tjs7OzswM0IzOworMDM5NDtHUkVFSyBDQVBJVEFMIExFVFRFUiBERUxUQTtMdTswO0w7Ozs7O047Ozs7MDNCNDsKKzAzOTU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTjtMdTswO0w7Ozs7O047Ozs7MDNCNTsKKzAzOTY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgWkVUQTtMdTswO0w7Ozs7O047Ozs7MDNCNjsKKzAzOTc7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I3OworMDM5ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBUSEVUQTtMdTswO0w7Ozs7O047Ozs7MDNCODsKKzAzOTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQTtMdTswO0w7Ozs7O047Ozs7MDNCOTsKKzAzOUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0FQUEE7THU7MDtMOzs7OztOOzs7OzAzQkE7CiswMzlCO0dSRUVLIENBUElUQUwgTEVUVEVSIExBTURBO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBMQU1CREE7OzswM0JCOworMDM5QztHUkVFSyBDQVBJVEFMIExFVFRFUiBNVTtMdTswO0w7Ozs7O047Ozs7MDNCQzsKKzAzOUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTlU7THU7MDtMOzs7OztOOzs7OzAzQkQ7CiswMzlFO0dSRUVLIENBUElUQUwgTEVUVEVSIFhJO0x1OzA7TDs7Ozs7Tjs7OzswM0JFOworMDM5RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OO0x1OzA7TDs7Ozs7Tjs7OzswM0JGOworMDNBMDtHUkVFSyBDQVBJVEFMIExFVFRFUiBQSTtMdTswO0w7Ozs7O047Ozs7MDNDMDsKKzAzQTE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUkhPO0x1OzA7TDs7Ozs7Tjs7OzswM0MxOworMDNBMztHUkVFSyBDQVBJVEFMIExFVFRFUiBTSUdNQTtMdTswO0w7Ozs7O047Ozs7MDNDMzsKKzAzQTQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVEFVO0x1OzA7TDs7Ozs7Tjs7OzswM0M0OworMDNBNTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswM0M1OworMDNBNjtHUkVFSyBDQVBJVEFMIExFVFRFUiBQSEk7THU7MDtMOzs7OztOOzs7OzAzQzY7CiswM0E3O0dSRUVLIENBUElUQUwgTEVUVEVSIENISTtMdTswO0w7Ozs7O047Ozs7MDNDNzsKKzAzQTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUFNJO0x1OzA7TDs7Ozs7Tjs7OzswM0M4OworMDNBOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQTtMdTswO0w7Ozs7O047Ozs7MDNDOTsKKzAzQUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQTtMdTswO0w7MDM5OSAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBESUFFUkVTSVM7OzswM0NBOworMDNBQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBO0x1OzA7TDswM0E1IDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIERJQUVSRVNJUzs7OzAzQ0I7CiswM0FDO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFRPTk9TO0xsOzA7TDswM0IxIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgVE9OT1M7OzAzODY7OzAzODYKKzAzQUQ7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBUT05PUztMbDswO0w7MDNCNSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gVE9OT1M7OzAzODg7OzAzODgKKzAzQUU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TO0xsOzA7TDswM0I3IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFRPTk9TOzswMzg5OzswMzg5CiswM0FGO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjkgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFRPTk9TOzswMzhBOzswMzhBCiswM0IwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBUT05PUztMbDswO0w7MDNDQiAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTIFRPTk9TOzs7OworMDNCMTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEE7TGw7MDtMOzs7OztOOzs7MDM5MTs7MDM5MQorMDNCMjtHUkVFSyBTTUFMTCBMRVRURVIgQkVUQTtMbDswO0w7Ozs7O047OzswMzkyOzswMzkyCiswM0IzO0dSRUVLIFNNQUxMIExFVFRFUiBHQU1NQTtMbDswO0w7Ozs7O047OzswMzkzOzswMzkzCiswM0I0O0dSRUVLIFNNQUxMIExFVFRFUiBERUxUQTtMbDswO0w7Ozs7O047OzswMzk0OzswMzk0CiswM0I1O0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAzOTU7OzAzOTUKKzAzQjY7R1JFRUsgU01BTEwgTEVUVEVSIFpFVEE7TGw7MDtMOzs7OztOOzs7MDM5Njs7MDM5NgorMDNCNztHUkVFSyBTTUFMTCBMRVRURVIgRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTc7OzAzOTcKKzAzQjg7R1JFRUsgU01BTEwgTEVUVEVSIFRIRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTg7OzAzOTgKKzAzQjk7R1JFRUsgU01BTEwgTEVUVEVSIElPVEE7TGw7MDtMOzs7OztOOzs7MDM5OTs7MDM5OQorMDNCQTtHUkVFSyBTTUFMTCBMRVRURVIgS0FQUEE7TGw7MDtMOzs7OztOOzs7MDM5QTs7MDM5QQorMDNCQjtHUkVFSyBTTUFMTCBMRVRURVIgTEFNREE7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBMQU1CREE7OzAzOUI7OzAzOUIKKzAzQkM7R1JFRUsgU01BTEwgTEVUVEVSIE1VO0xsOzA7TDs7Ozs7Tjs7OzAzOUM7OzAzOUMKKzAzQkQ7R1JFRUsgU01BTEwgTEVUVEVSIE5VO0xsOzA7TDs7Ozs7Tjs7OzAzOUQ7OzAzOUQKKzAzQkU7R1JFRUsgU01BTEwgTEVUVEVSIFhJO0xsOzA7TDs7Ozs7Tjs7OzAzOUU7OzAzOUUKKzAzQkY7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST047TGw7MDtMOzs7OztOOzs7MDM5Rjs7MDM5RgorMDNDMDtHUkVFSyBTTUFMTCBMRVRURVIgUEk7TGw7MDtMOzs7OztOOzs7MDNBMDs7MDNBMAorMDNDMTtHUkVFSyBTTUFMTCBMRVRURVIgUkhPO0xsOzA7TDs7Ozs7Tjs7OzAzQTE7OzAzQTEKKzAzQzI7R1JFRUsgU01BTEwgTEVUVEVSIEZJTkFMIFNJR01BO0xsOzA7TDs7Ozs7Tjs7OzAzQTM7OzAzQTMKKzAzQzM7R1JFRUsgU01BTEwgTEVUVEVSIFNJR01BO0xsOzA7TDs7Ozs7Tjs7OzAzQTM7OzAzQTMKKzAzQzQ7R1JFRUsgU01BTEwgTEVUVEVSIFRBVTtMbDswO0w7Ozs7O047OzswM0E0OzswM0E0CiswM0M1O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAzQTU7OzAzQTUKKzAzQzY7R1JFRUsgU01BTEwgTEVUVEVSIFBISTtMbDswO0w7Ozs7O047OzswM0E2OzswM0E2CiswM0M3O0dSRUVLIFNNQUxMIExFVFRFUiBDSEk7TGw7MDtMOzs7OztOOzs7MDNBNzs7MDNBNworMDNDODtHUkVFSyBTTUFMTCBMRVRURVIgUFNJO0xsOzA7TDs7Ozs7Tjs7OzAzQTg7OzAzQTgKKzAzQzk7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7OzAzQTk7OzAzQTkKKzAzQ0E7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0E7TGw7MDtMOzAzQjkgMDMwODs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIERJQUVSRVNJUzs7MDNBQTs7MDNBQQorMDNDQjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQTtMbDswO0w7MDNDNSAwMzA4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTOzswM0FCOzswM0FCCiswM0NDO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggVE9OT1M7TGw7MDtMOzAzQkYgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFRPTk9TOzswMzhDOzswMzhDCiswM0NEO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVE9OT1M7TGw7MDtMOzAzQzUgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFRPTk9TOzswMzhFOzswMzhFCiswM0NFO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TO0xsOzA7TDswM0M5IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgVE9OT1M7OzAzOEY7OzAzOEYKKzAzRDA7R1JFRUsgQkVUQSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQjI7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgQ1VSTEVEIEJFVEE7OzAzOTI7OzAzOTIKKzAzRDE7R1JFRUsgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0I4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBUSEVUQTs7MDM5ODs7MDM5OAorMDNEMjtHUkVFSyBVUFNJTE9OIFdJVEggSE9PSyBTWU1CT0w7THU7MDtMOzxjb21wYXQ+IDAzQTU7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIEhPT0s7Ozs7CiswM0QzO0dSRUVLIFVQU0lMT04gV0lUSCBBQ1VURSBBTkQgSE9PSyBTWU1CT0w7THU7MDtMOzAzRDIgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSyBUT05PUzs7OzsKKzAzRDQ7R1JFRUsgVVBTSUxPTiBXSVRIIERJQUVSRVNJUyBBTkQgSE9PSyBTWU1CT0w7THU7MDtMOzAzRDIgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSyBESUFFUkVTSVM7Ozs7CiswM0Q1O0dSRUVLIFBISSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQzY7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0NSSVBUIFBISTs7MDNBNjs7MDNBNgorMDNENjtHUkVFSyBQSSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQzA7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgUEk7OzAzQTA7OzAzQTAKKzAzRDc7R1JFRUsgS0FJIFNZTUJPTDtMbDswO0w7Ozs7O047Ozs7OworMDNEODtHUkVFSyBMRVRURVIgQVJDSEFJQyBLT1BQQTtMdTswO0w7Ozs7O047Oyo7OzAzRDk7CiswM0Q5O0dSRUVLIFNNQUxMIExFVFRFUiBBUkNIQUlDIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7KjswM0Q4OzswM0Q4CiswM0RBO0dSRUVLIExFVFRFUiBTVElHTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFNUSUdNQTs7OzAzREI7CiswM0RCO0dSRUVLIFNNQUxMIExFVFRFUiBTVElHTUE7TGw7MDtMOzs7OztOOzs7MDNEQTs7MDNEQQorMDNEQztHUkVFSyBMRVRURVIgRElHQU1NQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRElHQU1NQTs7OzAzREQ7CiswM0REO0dSRUVLIFNNQUxMIExFVFRFUiBESUdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAzREM7OzAzREMKKzAzREU7R1JFRUsgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBLT1BQQTs7OzAzREY7CiswM0RGO0dSRUVLIFNNQUxMIExFVFRFUiBLT1BQQTtMbDswO0w7Ozs7O047OzswM0RFOzswM0RFCiswM0UwO0dSRUVLIExFVFRFUiBTQU1QSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0FNUEk7OzswM0UxOworMDNFMTtHUkVFSyBTTUFMTCBMRVRURVIgU0FNUEk7TGw7MDtMOzs7OztOOzs7MDNFMDs7MDNFMAorMDNFMjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hFSTs7OzAzRTM7CiswM0UzO0NPUFRJQyBTTUFMTCBMRVRURVIgU0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNIRUk7OzAzRTI7OzAzRTIKKzAzRTQ7Q09QVElDIENBUElUQUwgTEVUVEVSIEZFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRkVJOzs7MDNFNTsKKzAzRTU7Q09QVElDIFNNQUxMIExFVFRFUiBGRUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBGRUk7OzAzRTQ7OzAzRTQKKzAzRTY7Q09QVElDIENBUElUQUwgTEVUVEVSIEtIRUk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEtIRUk7OzswM0U3OworMDNFNztDT1BUSUMgU01BTEwgTEVUVEVSIEtIRUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBLSEVJOzswM0U2OzswM0U2CiswM0U4O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBIT1JJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBIT1JJOzs7MDNFOTsKKzAzRTk7Q09QVElDIFNNQUxMIExFVFRFUiBIT1JJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSE9SSTs7MDNFODs7MDNFOAorMDNFQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgR0FOR0lBO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7OzswM0VCOworMDNFQjtDT1BUSUMgU01BTEwgTEVUVEVSIEdBTkdJQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEdBTkdJQTs7MDNFQTs7MDNFQQorMDNFQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU0hJTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFNISU1BOzs7MDNFRDsKKzAzRUQ7Q09QVElDIFNNQUxMIExFVFRFUiBTSElNQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNISU1BOzswM0VDOzswM0VDCiswM0VFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBERUk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIERFSTs7OzAzRUY7CiswM0VGO0NPUFRJQyBTTUFMTCBMRVRURVIgREVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgREVJOzswM0VFOzswM0VFCiswM0YwO0dSRUVLIEtBUFBBIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCQTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgS0FQUEE7OzAzOUE7OzAzOUEKKzAzRjE7R1JFRUsgUkhPIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBUQUlMRUQgUkhPOzswM0ExOzswM0ExCiswM0YyO0dSRUVLIExVTkFURSBTSUdNQSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQzI7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgTFVOQVRFIFNJR01BOzswM0Y5OzswM0Y5CiswM0YzO0dSRUVLIExFVFRFUiBZT1Q7TGw7MDtMOzs7OztOOzs7OzsKKzAzRjQ7R1JFRUsgQ0FQSVRBTCBUSEVUQSBTWU1CT0w7THU7MDtMOzxjb21wYXQ+IDAzOTg7Ozs7Tjs7OzswM0I4OworMDNGNTtHUkVFSyBMVU5BVEUgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQjU7Ozs7Tjs7OzAzOTU7OzAzOTUKKzAzRjY7R1JFRUsgUkVWRVJTRUQgTFVOQVRFIEVQU0lMT04gU1lNQk9MO1NtOzA7T047Ozs7O047Ozs7OworMDNGNztHUkVFSyBDQVBJVEFMIExFVFRFUiBTSE87THU7MDtMOzs7OztOOzs7OzAzRjg7CiswM0Y4O0dSRUVLIFNNQUxMIExFVFRFUiBTSE87TGw7MDtMOzs7OztOOzs7MDNGNzs7MDNGNworMDNGOTtHUkVFSyBDQVBJVEFMIExVTkFURSBTSUdNQSBTWU1CT0w7THU7MDtMOzxjb21wYXQ+IDAzQTM7Ozs7Tjs7OzswM0YyOworMDNGQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBTQU47THU7MDtMOzs7OztOOzs7OzAzRkI7CiswM0ZCO0dSRUVLIFNNQUxMIExFVFRFUiBTQU47TGw7MDtMOzs7OztOOzs7MDNGQTs7MDNGQQorMDNGQztHUkVFSyBSSE8gV0lUSCBTVFJPS0UgU1lNQk9MO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswM0ZEO0dSRUVLIENBUElUQUwgUkVWRVJTRUQgTFVOQVRFIFNJR01BIFNZTUJPTDtMdTswO0w7Ozs7O047Ozs7MDM3QjsKKzAzRkU7R1JFRUsgQ0FQSVRBTCBET1RURUQgTFVOQVRFIFNJR01BIFNZTUJPTDtMdTswO0w7Ozs7O047Ozs7MDM3QzsKKzAzRkY7R1JFRUsgQ0FQSVRBTCBSRVZFUlNFRCBET1RURUQgTFVOQVRFIFNJR01BIFNZTUJPTDtMdTswO0w7Ozs7O047Ozs7MDM3RDsKKzA0MDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgV0lUSCBHUkFWRTtMdTswO0w7MDQxNSAwMzAwOzs7O047Ozs7MDQ1MDsKKzA0MDE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU87THU7MDtMOzA0MTUgMDMwODs7OztOOzs7OzA0NTE7CiswNDAyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIERKRTtMdTswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47OzA0NTI7CiswNDAzO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdKRTtMdTswO0w7MDQxMyAwMzAxOzs7O047Ozs7MDQ1MzsKKzA0MDQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUtSQUlOSUFOIElFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFOzs7MDQ1NDsKKzA0MDU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU1OworMDQwNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCWUVMT1JVU1NJQU4tVUtSQUlOSUFOIEk7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEk7OzswNDU2OworMDQwNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZSTtMdTswO0w7MDQwNiAwMzA4Ozs7O047O1VrcmFpbmlhbjs7MDQ1NzsKKzA0MDg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSkU7THU7MDtMOzs7OztOOzs7OzA0NTg7CiswNDA5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIExKRTtMdTswO0w7Ozs7O047Ozs7MDQ1OTsKKzA0MEE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTkpFO0x1OzA7TDs7Ozs7Tjs7OzswNDVBOworMDQwQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0hFO0x1OzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjs7MDQ1QjsKKzA0MEM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0pFO0x1OzA7TDswNDFBIDAzMDE7Ozs7Tjs7OzswNDVDOworMDQwRDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkU7THU7MDtMOzA0MTggMDMwMDs7OztOOzs7OzA0NUQ7CiswNDBFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIFU7THU7MDtMOzA0MjMgMDMwNjs7OztOOztCeWVsb3J1c3NpYW47OzA0NUU7CiswNDBGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIERaSEU7THU7MDtMOzs7OztOOzs7OzA0NUY7CiswNDEwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzs7OztOOzs7OzA0MzA7CiswNDExO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJFO0x1OzA7TDs7Ozs7Tjs7OzswNDMxOworMDQxMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBWRTtMdTswO0w7Ozs7O047Ozs7MDQzMjsKKzA0MTM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRTs7OzA0MzM7CiswNDE0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIERFO0x1OzA7TDs7Ozs7Tjs7OzswNDM0OworMDQxNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRTtMdTswO0w7Ozs7O047Ozs7MDQzNTsKKzA0MTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFO0x1OzA7TDs7Ozs7Tjs7OzswNDM2OworMDQxNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRTtMdTswO0w7Ozs7O047Ozs7MDQzNzsKKzA0MTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUk7OzswNDM4OworMDQxOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBJO0x1OzA7TDswNDE4IDAzMDY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBJSTs7OzA0Mzk7CiswNDFBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBO0x1OzA7TDs7Ozs7Tjs7OzswNDNBOworMDQxQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTDtMdTswO0w7Ozs7O047Ozs7MDQzQjsKKzA0MUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU07THU7MDtMOzs7OztOOzs7OzA0M0M7CiswNDFEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7OzswNDNEOworMDQxRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzswNDNFOworMDQxRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRTtMdTswO0w7Ozs7O047Ozs7MDQzRjsKKzA0MjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVI7THU7MDtMOzs7OztOOzs7OzA0NDA7CiswNDIxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTO0x1OzA7TDs7Ozs7Tjs7OzswNDQxOworMDQyMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURTtMdTswO0w7Ozs7O047Ozs7MDQ0MjsKKzA0MjM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7Ozs7O047Ozs7MDQ0MzsKKzA0MjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUY7THU7MDtMOzs7OztOOzs7OzA0NDQ7CiswNDI1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEE7OzswNDQ1OworMDQyNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0U7THU7MDtMOzs7OztOOzs7OzA0NDY7CiswNDI3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRTtMdTswO0w7Ozs7O047Ozs7MDQ0NzsKKzA0Mjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ4OworMDQyOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSENIQTtMdTswO0w7Ozs7O047Ozs7MDQ0OTsKKzA0MkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDRBOworMDQyQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJJOzs7MDQ0QjsKKzA0MkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU09GVCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDRDOworMDQyRDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBFOzs7MDQ0RDsKKzA0MkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWVU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElVOzs7MDQ0RTsKKzA0MkY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElBOzs7MDQ0RjsKKzA0MzA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEE7TGw7MDtMOzs7OztOOzs7MDQxMDs7MDQxMAorMDQzMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkU7TGw7MDtMOzs7OztOOzs7MDQxMTs7MDQxMQorMDQzMjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVkU7TGw7MDtMOzs7OztOOzs7MDQxMjs7MDQxMgorMDQzMztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0U7OzA0MTM7OzA0MTMKKzA0MzQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERFO0xsOzA7TDs7Ozs7Tjs7OzA0MTQ7OzA0MTQKKzA0MzU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFO0xsOzA7TDs7Ozs7Tjs7OzA0MTU7OzA0MTUKKzA0MzY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRTtMbDswO0w7Ozs7O047OzswNDE2OzswNDE2CiswNDM3O0NZUklMTElDIFNNQUxMIExFVFRFUiBaRTtMbDswO0w7Ozs7O047OzswNDE3OzswNDE3CiswNDM4O0NZUklMTElDIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUk7OzA0MTg7OzA0MTgKKzA0Mzk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIEk7TGw7MDtMOzA0MzggMDMwNjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBJSTs7MDQxOTs7MDQxOQorMDQzQTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0E7TGw7MDtMOzs7OztOOzs7MDQxQTs7MDQxQQorMDQzQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUw7TGw7MDtMOzs7OztOOzs7MDQxQjs7MDQxQgorMDQzQztDWVJJTExJQyBTTUFMTCBMRVRURVIgRU07TGw7MDtMOzs7OztOOzs7MDQxQzs7MDQxQworMDQzRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOzs7MDQxRDs7MDQxRAorMDQzRTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTztMbDswO0w7Ozs7O047OzswNDFFOzswNDFFCiswNDNGO0NZUklMTElDIFNNQUxMIExFVFRFUiBQRTtMbDswO0w7Ozs7O047OzswNDFGOzswNDFGCiswNDQwO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUjtMbDswO0w7Ozs7O047OzswNDIwOzswNDIwCiswNDQxO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUztMbDswO0w7Ozs7O047OzswNDIxOzswNDIxCiswNDQyO0NZUklMTElDIFNNQUxMIExFVFRFUiBURTtMbDswO0w7Ozs7O047OzswNDIyOzswNDIyCiswNDQzO0NZUklMTElDIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs7Ozs7Tjs7OzA0MjM7OzA0MjMKKzA0NDQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVGO0xsOzA7TDs7Ozs7Tjs7OzA0MjQ7OzA0MjQKKzA0NDU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0hBOzswNDI1OzswNDI1CiswNDQ2O0NZUklMTElDIFNNQUxMIExFVFRFUiBUU0U7TGw7MDtMOzs7OztOOzs7MDQyNjs7MDQyNgorMDQ0NztDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFO0xsOzA7TDs7Ozs7Tjs7OzA0Mjc7OzA0MjcKKzA0NDg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQTtMbDswO0w7Ozs7O047OzswNDI4OzswNDI4CiswNDQ5O0NZUklMTElDIFNNQUxMIExFVFRFUiBTSENIQTtMbDswO0w7Ozs7O047OzswNDI5OzswNDI5CiswNDRBO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQVJEIFNJR047TGw7MDtMOzs7OztOOzs7MDQyQTs7MDQyQQorMDQ0QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlFUkk7OzA0MkI7OzA0MkIKKzA0NEM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNPRlQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJDOzswNDJDCiswNDREO0NZUklMTElDIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRTs7MDQyRDs7MDQyRAorMDQ0RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWVU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJVTs7MDQyRTs7MDQyRQorMDQ0RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJQTs7MDQyRjs7MDQyRgorMDQ1MDtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgV0lUSCBHUkFWRTtMbDswO0w7MDQzNSAwMzAwOzs7O047OzswNDAwOzswNDAwCiswNDUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBJTztMbDswO0w7MDQzNSAwMzA4Ozs7O047OzswNDAxOzswNDAxCiswNDUyO0NZUklMTElDIFNNQUxMIExFVFRFUiBESkU7TGw7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzA0MDI7OzA0MDIKKzA0NTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdKRTtMbDswO0w7MDQzMyAwMzAxOzs7O047OzswNDAzOzswNDAzCiswNDU0O0NZUklMTElDIFNNQUxMIExFVFRFUiBVS1JBSU5JQU4gSUU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFOzswNDA0OzswNDA0CiswNDU1O0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkU7TGw7MDtMOzs7OztOOzs7MDQwNTs7MDQwNQorMDQ1NjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSTs7MDQwNjs7MDQwNgorMDQ1NztDWVJJTExJQyBTTUFMTCBMRVRURVIgWUk7TGw7MDtMOzA0NTYgMDMwODs7OztOOztVa3JhaW5pYW47MDQwNzs7MDQwNworMDQ1ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgSkU7TGw7MDtMOzs7OztOOzs7MDQwODs7MDQwOAorMDQ1OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTEpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDk7OzA0MDkKKzA0NUE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE5KRTtMbDswO0w7Ozs7O047OzswNDBBOzswNDBBCiswNDVCO0NZUklMTElDIFNNQUxMIExFVFRFUiBUU0hFO0xsOzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjswNDBCOzswNDBCCiswNDVDO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSkU7TGw7MDtMOzA0M0EgMDMwMTs7OztOOzs7MDQwQzs7MDQwQworMDQ1RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIEdSQVZFO0xsOzA7TDswNDM4IDAzMDA7Ozs7Tjs7OzA0MEQ7OzA0MEQKKzA0NUU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIFU7TGw7MDtMOzA0NDMgMDMwNjs7OztOOztCeWVsb3J1c3NpYW47MDQwRTs7MDQwRQorMDQ1RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRFpIRTtMbDswO0w7Ozs7O047OzswNDBGOzswNDBGCiswNDYwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDYxOworMDQ2MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ2MDs7MDQ2MAorMDQ2MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQVQ7THU7MDtMOzs7OztOOzs7OzA0NjM7CiswNDYzO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQVQ7TGw7MDtMOzs7OztOOzs7MDQ2Mjs7MDQ2MgorMDQ2NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBFO0x1OzA7TDs7Ozs7Tjs7OzswNDY1OworMDQ2NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgRTtMbDswO0w7Ozs7O047OzswNDY0OzswNDY0CiswNDY2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIExJVFRMRSBZVVM7THU7MDtMOzs7OztOOzs7OzA0Njc7CiswNDY3O0NZUklMTElDIFNNQUxMIExFVFRFUiBMSVRUTEUgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NjY7OzA0NjYKKzA0Njg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2OTsKKzA0Njk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2ODs7MDQ2OAorMDQ2QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCSUcgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDZCOworMDQ2QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQklHIFlVUztMbDswO0w7Ozs7O047OzswNDZBOzswNDZBCiswNDZDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkQ7CiswNDZEO0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkM7OzA0NkMKKzA0NkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS1NJO0x1OzA7TDs7Ozs7Tjs7OzswNDZGOworMDQ2RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS1NJO0xsOzA7TDs7Ozs7Tjs7OzA0NkU7OzA0NkUKKzA0NzA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUFNJO0x1OzA7TDs7Ozs7Tjs7OzswNDcxOworMDQ3MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgUFNJO0xsOzA7TDs7Ozs7Tjs7OzA0NzA7OzA0NzAKKzA0NzI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRklUQTtMdTswO0w7Ozs7O047Ozs7MDQ3MzsKKzA0NzM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEZJVEE7TGw7MDtMOzs7OztOOzs7MDQ3Mjs7MDQ3MgorMDQ3NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBO0x1OzA7TDs7Ozs7Tjs7OzswNDc1OworMDQ3NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQTtMbDswO0w7Ozs7O047OzswNDc0OzswNDc0CiswNDc2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0x1OzA7TDswNDc0IDAzMEY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBIERPVUJMRSBHUkFWRTs7OzA0Nzc7CiswNDc3O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBIFdJVEggRE9VQkxFIEdSQVZFIEFDQ0VOVDtMbDswO0w7MDQ3NSAwMzBGOzs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzswNDc2OzswNDc2CiswNDc4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVSyBESUdSQVBIOzs7MDQ3OTsKKzA0Nzk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFVLO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUsgRElHUkFQSDs7MDQ3ODs7MDQ3OAorMDQ3QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBST1VORCBPTUVHQTtMdTswO0w7Ozs7O047Ozs7MDQ3QjsKKzA0N0I7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFJPVU5EIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7OzA0N0E7OzA0N0EKKzA0N0M7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBUSVRMTztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0EgVElUTE87OzswNDdEOworMDQ3RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBUSVRMTztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE9NRUdBIFRJVExPOzswNDdDOzswNDdDCiswNDdFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9UO0x1OzA7TDs7Ozs7Tjs7OzswNDdGOworMDQ3RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT1Q7TGw7MDtMOzs7OztOOzs7MDQ3RTs7MDQ3RQorMDQ4MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT1BQQTtMdTswO0w7Ozs7O047Ozs7MDQ4MTsKKzA0ODE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7OzA0ODA7OzA0ODAKKzA0ODI7Q1lSSUxMSUMgVEhPVVNBTkRTIFNJR047U287MDtMOzs7OztOOzs7OzsKKzA0ODM7Q09NQklOSU5HIENZUklMTElDIFRJVExPO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgVElUTE87Ozs7CiswNDg0O0NPTUJJTklORyBDWVJJTExJQyBQQUxBVEFMSVpBVElPTjtNbjsyMzA7TlNNOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIFBBTEFUQUxJWkFUSU9OOzs7OworMDQ4NTtDT01CSU5JTkcgQ1lSSUxMSUMgREFTSUEgUE5FVU1BVEE7TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBEQVNJQSBQTkVVTUFUQTs7OzsKKzA0ODY7Q09NQklOSU5HIENZUklMTElDIFBTSUxJIFBORVVNQVRBO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgUFNJTEkgUE5FVU1BVEE7Ozs7CiswNDg4O0NPTUJJTklORyBDWVJJTExJQyBIVU5EUkVEIFRIT1VTQU5EUyBTSUdOO01lOzA7TlNNOzs7OztOOzs7OzsKKzA0ODk7Q09NQklOSU5HIENZUklMTElDIE1JTExJT05TIFNJR047TWU7MDtOU007Ozs7O047Ozs7OworMDQ4QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBJIFdJVEggVEFJTDtMdTswO0w7Ozs7O047Ozs7MDQ4QjsKKzA0OEI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIEkgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzA0OEE7OzA0OEEKKzA0OEM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0VNSVNPRlQgU0lHTjtMdTswO0w7Ozs7O047Ozs7MDQ4RDsKKzA0OEQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNFTUlTT0ZUIFNJR047TGw7MDtMOzs7OztOOzs7MDQ4Qzs7MDQ4QworMDQ4RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUiBXSVRIIFRJQ0s7THU7MDtMOzs7OztOOzs7OzA0OEY7CiswNDhGO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUiBXSVRIIFRJQ0s7TGw7MDtMOzs7OztOOzs7MDQ4RTs7MDQ4RQorMDQ5MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBVUFRVUk47THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIFdJVEggVVBUVVJOOzs7MDQ5MTsKKzA0OTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIFVQVFVSTjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdFIFdJVEggVVBUVVJOOzswNDkwOzswNDkwCiswNDkyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgQkFSOzs7MDQ5MzsKKzA0OTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdFIEJBUjs7MDQ5Mjs7MDQ5MgorMDQ5NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBNSURETEUgSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgSE9PSzs7OzA0OTU7CiswNDk1O0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBNSURETEUgSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdFIEhPT0s7OzA0OTQ7OzA0OTQKKzA0OTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNDk3OworMDQ5NztDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNDk2OzswNDk2CiswNDk4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBDRURJTExBOzs7MDQ5OTsKKzA0OTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgQ0VESUxMQTs7MDQ5ODs7MDQ5OAorMDQ5QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNDlCOworMDQ5QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDQ5QTs7MDQ5QQorMDQ5QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgVkVSVElDQUwgQkFSOzs7MDQ5RDsKKzA0OUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgVkVSVElDQUwgQkFSOzswNDlDOzswNDlDCiswNDlFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBCQVI7OzswNDlGOworMDQ5RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBCQVI7OzA0OUU7OzA0OUUKKzA0QTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFTSEtJUiBLQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgR0UgS0E7OzswNEExOworMDRBMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFTSEtJUiBLQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFJFVkVSU0VEIEdFIEtBOzswNEEwOzswNEEwCiswNEEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QTM7CiswNEEzO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEEyOzswNEEyCiswNEE0O0NZUklMTElDIENBUElUQUwgTElHQVRVUkUgRU4gR0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBHRTs7OzA0QTU7CiswNEE1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIEVOIEdIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIEdFOzswNEE0OzswNEE0CiswNEE2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFIFdJVEggTUlERExFIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFIEhPT0s7QWJraGFzaWFuOzswNEE3OworMDRBNztDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUgV0lUSCBNSURETEUgSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFIEhPT0s7QWJraGFzaWFuOzA0QTY7OzA0QTYKKzA0QTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPIEhPT0s7OzswNEE5OworMDRBOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgTyBIT09LOzswNEE4OzswNEE4CiswNEFBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUyBDRURJTExBOzs7MDRBQjsKKzA0QUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMgQ0VESUxMQTs7MDRBQTs7MDRBQQorMDRBQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEFEOworMDRBRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRBQzs7MDRBQworMDRBRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVO0x1OzA7TDs7Ozs7Tjs7OzswNEFGOworMDRBRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVTtMbDswO0w7Ozs7O047OzswNEFFOzswNEFFCiswNEIwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFUgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFUgQkFSOzs7MDRCMTsKKzA0QjE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVIEJBUjs7MDRCMDs7MDRCMAorMDRCMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0hBIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRCMzsKKzA0QjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0hBIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEIyOzswNEIyCiswNEI0O0NZUklMTElDIENBUElUQUwgTElHQVRVUkUgVEUgVFNFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBUU0U7QWJraGFzaWFuOzswNEI1OworMDRCNTtDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBURSBUU0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBUU0U7QWJraGFzaWFuOzA0QjQ7OzA0QjQKKzA0QjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEI3OworMDRCNztDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEI2OzswNEI2CiswNEI4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFZFUlRJQ0FMIEJBUjs7OzA0Qjk7CiswNEI5O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBWRVJUSUNBTCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgVkVSVElDQUwgQkFSOzswNEI4OzswNEI4CiswNEJBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNISEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEg7OzswNEJCOworMDRCQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hIQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEg7OzA0QkE7OzA0QkEKKzA0QkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIENIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgSE9PSzs7OzA0QkQ7CiswNEJEO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gQ0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgSE9PSzs7MDRCQzs7MDRCQworMDRCRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBIT09LIE9HT05FSzs7OzA0QkY7CiswNEJGO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gQ0hFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgSE9PSyBPR09ORUs7OzA0QkU7OzA0QkUKKzA0QzA7Q1lSSUxMSUMgTEVUVEVSIFBBTE9DSEtBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBMRVRURVIgSTs7OzA0Q0Y7CiswNEMxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE2IDAzMDY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBaSEU7OzswNEMyOworMDRDMjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggQlJFVkU7TGw7MDtMOzA0MzYgMDMwNjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBaSEU7OzA0QzE7OzA0QzEKKzA0QzM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBIT09LOzs7MDRDNDsKKzA0QzQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEhPT0s7OzA0QzM7OzA0QzMKKzA0QzU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUwgV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNEM2OworMDRDNjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUwgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzA0QzU7OzA0QzUKKzA0Qzc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBIT09LOzs7MDRDODsKKzA0Qzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIEhPT0s7OzA0Qzc7OzA0QzcKKzA0Qzk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNENBOworMDRDQTtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzA0Qzk7OzA0QzkKKzA0Q0I7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0hBS0FTU0lBTiBDSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIExFRlQgREVTQ0VOREVSOzs7MDRDQzsKKzA0Q0M7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggTEVGVCBERVNDRU5ERVI7OzA0Q0I7OzA0Q0IKKzA0Q0Q7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU0gV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNENFOworMDRDRTtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU0gV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzA0Q0Q7OzA0Q0QKKzA0Q0Y7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBBTE9DSEtBO0xsOzA7TDs7Ozs7Tjs7OzA0QzA7OzA0QzAKKzA0RDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFO0x1OzA7TDswNDEwIDAzMDY7Ozs7Tjs7OzswNEQxOworMDREMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFO0xsOzA7TDswNDMwIDAzMDY7Ozs7Tjs7OzA0RDA7OzA0RDAKKzA0RDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxMCAwMzA4Ozs7O047Ozs7MDREMzsKKzA0RDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzAgMDMwODs7OztOOzs7MDREMjs7MDREMgorMDRENDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEEgSUU7THU7MDtMOzs7OztOOzs7OzA0RDU7CiswNEQ1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIEEgSUU7TGw7MDtMOzs7OztOOzs7MDRENDs7MDRENAorMDRENjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE1IDAzMDY7Ozs7Tjs7OzswNEQ3OworMDRENztDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgV0lUSCBCUkVWRTtMbDswO0w7MDQzNSAwMzA2Ozs7O047OzswNEQ2OzswNEQ2CiswNEQ4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBO0x1OzA7TDs7Ozs7Tjs7OzswNEQ5OworMDREOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0E7TGw7MDtMOzs7OztOOzs7MDREODs7MDREOAorMDREQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTQ0hXQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDREOCAwMzA4Ozs7O047Ozs7MDREQjsKKzA0REI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNEQ5IDAzMDg7Ozs7Tjs7OzA0REE7OzA0REEKKzA0REM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE2IDAzMDg7Ozs7Tjs7OzswNEREOworMDRERDtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM2IDAzMDg7Ozs7Tjs7OzA0REM7OzA0REMKKzA0REU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTcgMDMwODs7OztOOzs7OzA0REY7CiswNERGO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzNyAwMzA4Ozs7O047OzswNERFOzswNERFCiswNEUwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBEWkU7THU7MDtMOzs7OztOOzs7OzA0RTE7CiswNEUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gRFpFO0xsOzA7TDs7Ozs7Tjs7OzA0RTA7OzA0RTAKKzA0RTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMdTswO0w7MDQxOCAwMzA0Ozs7O047Ozs7MDRFMzsKKzA0RTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST047TGw7MDtMOzA0MzggMDMwNDs7OztOOzs7MDRFMjs7MDRFMgorMDRFNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE4IDAzMDg7Ozs7Tjs7OzswNEU1OworMDRFNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzOCAwMzA4Ozs7O047OzswNEU0OzswNEU0CiswNEU2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MUUgMDMwODs7OztOOzs7OzA0RTc7CiswNEU3O0NZUklMTElDIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDNFIDAzMDg7Ozs7Tjs7OzA0RTY7OzA0RTYKKzA0RTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE87THU7MDtMOzs7OztOOzs7OzA0RTk7CiswNEU5O0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVJSRUQgTztMbDswO0w7Ozs7O047OzswNEU4OzswNEU4CiswNEVBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNEU4IDAzMDg7Ozs7Tjs7OzswNEVCOworMDRFQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0RTkgMDMwODs7OztOOzs7MDRFQTs7MDRFQQorMDRFQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDJEIDAzMDg7Ozs7Tjs7OzswNEVEOworMDRFRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0RCAwMzA4Ozs7O047OzswNEVDOzswNEVDCiswNEVFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST047THU7MDtMOzA0MjMgMDMwNDs7OztOOzs7OzA0RUY7CiswNEVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OO0xsOzA7TDswNDQzIDAzMDQ7Ozs7Tjs7OzA0RUU7OzA0RUUKKzA0RjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyMyAwMzA4Ozs7O047Ozs7MDRGMTsKKzA0RjE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDMgMDMwODs7OztOOzs7MDRGMDs7MDRGMAorMDRGMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswNDIzIDAzMEI7Ozs7Tjs7OzswNEYzOworMDRGMztDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDQ0MyAwMzBCOzs7O047OzswNEYyOzswNEYyCiswNEY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyNyAwMzA4Ozs7O047Ozs7MDRGNTsKKzA0RjU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0NyAwMzA4Ozs7O047OzswNEY0OzswNEY0CiswNEY2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Ozs7MDRGNzsKKzA0Rjc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047OzswNEY2OzswNEY2CiswNEY4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MkIgMDMwODs7OztOOzs7OzA0Rjk7CiswNEY5O0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDRCIDAzMDg7Ozs7Tjs7OzA0Rjg7OzA0RjgKKzA0RkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggU1RST0tFIEFORCBIT09LO0x1OzA7TDs7Ozs7Tjs7OzswNEZCOworMDRGQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggU1RST0tFIEFORCBIT09LO0xsOzA7TDs7Ozs7Tjs7OzA0RkE7OzA0RkEKKzA0RkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEEgV0lUSCBIT09LO0x1OzA7TDs7Ozs7Tjs7OzswNEZEOworMDRGRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgSEEgV0lUSCBIT09LO0xsOzA7TDs7Ozs7Tjs7OzA0RkM7OzA0RkMKKzA0RkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEEgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOOzs7OzA0RkY7CiswNEZGO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzswNEZFOzswNEZFCiswNTAwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgREU7THU7MDtMOzs7OztOOzs7OzA1MDE7CiswNTAxO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIERFO0xsOzA7TDs7Ozs7Tjs7OzA1MDA7OzA1MDAKKzA1MDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBESkU7THU7MDtMOzs7OztOOzs7OzA1MDM7CiswNTAzO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIERKRTtMbDswO0w7Ozs7O047OzswNTAyOzswNTAyCiswNTA0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgWkpFO0x1OzA7TDs7Ozs7Tjs7OzswNTA1OworMDUwNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBaSkU7TGw7MDtMOzs7OztOOzs7MDUwNDs7MDUwNAorMDUwNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIERaSkU7THU7MDtMOzs7OztOOzs7OzA1MDc7CiswNTA3O0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIERaSkU7TGw7MDtMOzs7OztOOzs7MDUwNjs7MDUwNgorMDUwODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIExKRTtMdTswO0w7Ozs7O047Ozs7MDUwOTsKKzA1MDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgTEpFO0xsOzA7TDs7Ozs7Tjs7OzA1MDg7OzA1MDgKKzA1MEE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBOSkU7THU7MDtMOzs7OztOOzs7OzA1MEI7CiswNTBCO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIE5KRTtMbDswO0w7Ozs7O047OzswNTBBOzswNTBBCiswNTBDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgU0pFO0x1OzA7TDs7Ozs7Tjs7OzswNTBEOworMDUwRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBTSkU7TGw7MDtMOzs7OztOOzs7MDUwQzs7MDUwQworMDUwRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIFRKRTtMdTswO0w7Ozs7O047Ozs7MDUwRjsKKzA1MEY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgVEpFO0xsOzA7TDs7Ozs7Tjs7OzA1MEU7OzA1MEUKKzA1MTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgWkU7THU7MDtMOzs7OztOOzs7OzA1MTE7CiswNTExO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBaRTtMbDswO0w7Ozs7O047OzswNTEwOzswNTEwCiswNTEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVMIFdJVEggSE9PSztMdTswO0w7Ozs7O047Ozs7MDUxMzsKKzA1MTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVMIFdJVEggSE9PSztMbDswO0w7Ozs7O047OzswNTEyOzswNTEyCiswNTMxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEFZQjtMdTswO0w7Ozs7O047Ozs7MDU2MTsKKzA1MzI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQkVOO0x1OzA7TDs7Ozs7Tjs7OzswNTYyOworMDUzMztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBHSU07THU7MDtMOzs7OztOOzs7OzA1NjM7CiswNTM0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIERBO0x1OzA7TDs7Ozs7Tjs7OzswNTY0OworMDUzNTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFQ0g7THU7MDtMOzs7OztOOzs7OzA1NjU7CiswNTM2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpBO0x1OzA7TDs7Ozs7Tjs7OzswNTY2OworMDUzNztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFSDtMdTswO0w7Ozs7O047Ozs7MDU2NzsKKzA1Mzg7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRVQ7THU7MDtMOzs7OztOOzs7OzA1Njg7CiswNTM5O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFRPO0x1OzA7TDs7Ozs7Tjs7OzswNTY5OworMDUzQTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA1NkE7CiswNTNCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIElOSTtMdTswO0w7Ozs7O047Ozs7MDU2QjsKKzA1M0M7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTElXTjtMdTswO0w7Ozs7O047Ozs7MDU2QzsKKzA1M0Q7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTZEOworMDUzRTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDQTtMdTswO0w7Ozs7O047Ozs7MDU2RTsKKzA1M0Y7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VOO0x1OzA7TDs7Ozs7Tjs7OzswNTZGOworMDU0MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBITztMdTswO0w7Ozs7O047Ozs7MDU3MDsKKzA1NDE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkE7THU7MDtMOzs7OztOOzs7OzA1NzE7CiswNTQyO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdIQUQ7THU7MDtMOzs7OztOO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIExBRDs7OzA1NzI7CiswNTQzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENIRUg7THU7MDtMOzs7OztOOzs7OzA1NzM7CiswNTQ0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE1FTjtMdTswO0w7Ozs7O047Ozs7MDU3NDsKKzA1NDU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUk7THU7MDtMOzs7OztOOzs7OzA1NzU7CiswNTQ2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE5PVztMdTswO0w7Ozs7O047Ozs7MDU3NjsKKzA1NDc7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgU0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc3OworMDU0ODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBWTztMdTswO0w7Ozs7O047Ozs7MDU3ODsKKzA1NDk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc5OworMDU0QTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQRUg7THU7MDtMOzs7OztOOzs7OzA1N0E7CiswNTRCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEpIRUg7THU7MDtMOzs7OztOOzs7OzA1N0I7CiswNTRDO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFJBO0x1OzA7TDs7Ozs7Tjs7OzswNTdDOworMDU0RDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTRUg7THU7MDtMOzs7OztOOzs7OzA1N0Q7CiswNTRFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZFVztMdTswO0w7Ozs7O047Ozs7MDU3RTsKKzA1NEY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVElXTjtMdTswO0w7Ozs7O047Ozs7MDU3RjsKKzA1NTA7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTgwOworMDU1MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDTztMdTswO0w7Ozs7O047Ozs7MDU4MTsKKzA1NTI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUlXTjtMdTswO0w7Ozs7O047Ozs7MDU4MjsKKzA1NTM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUElXUjtMdTswO0w7Ozs7O047Ozs7MDU4MzsKKzA1NTQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VIO0x1OzA7TDs7Ozs7Tjs7OzswNTg0OworMDU1NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBPSDtMdTswO0w7Ozs7O047Ozs7MDU4NTsKKzA1NTY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTg2OworMDU1OTtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgTEVGVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzA1NUE7QVJNRU5JQU4gQVBPU1RST1BIRTtQbzswO0w7Ozs7O047QVJNRU5JQU4gTU9ESUZJRVIgTEVUVEVSIFJJR0hUIEhBTEYgUklORzs7OzsKKzA1NUI7QVJNRU5JQU4gRU1QSEFTSVMgTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1QztBUk1FTklBTiBFWENMQU1BVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVEO0FSTUVOSUFOIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVFO0FSTUVOSUFOIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUY7QVJNRU5JQU4gQUJCUkVWSUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NjE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEFZQjtMbDswO0w7Ozs7O047OzswNTMxOzswNTMxCiswNTYyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBCRU47TGw7MDtMOzs7OztOOzs7MDUzMjs7MDUzMgorMDU2MztBUk1FTklBTiBTTUFMTCBMRVRURVIgR0lNO0xsOzA7TDs7Ozs7Tjs7OzA1MzM7OzA1MzMKKzA1NjQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIERBO0xsOzA7TDs7Ozs7Tjs7OzA1MzQ7OzA1MzQKKzA1NjU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSDtMbDswO0w7Ozs7O047OzswNTM1OzswNTM1CiswNTY2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaQTtMbDswO0w7Ozs7O047OzswNTM2OzswNTM2CiswNTY3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFSDtMbDswO0w7Ozs7O047OzswNTM3OzswNTM3CiswNTY4O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFVDtMbDswO0w7Ozs7O047OzswNTM4OzswNTM4CiswNTY5O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBUTztMbDswO0w7Ozs7O047OzswNTM5OzswNTM5CiswNTZBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaSEU7TGw7MDtMOzs7OztOOzs7MDUzQTs7MDUzQQorMDU2QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSU5JO0xsOzA7TDs7Ozs7Tjs7OzA1M0I7OzA1M0IKKzA1NkM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIExJV047TGw7MDtMOzs7OztOOzs7MDUzQzs7MDUzQworMDU2RDtBUk1FTklBTiBTTUFMTCBMRVRURVIgWEVIO0xsOzA7TDs7Ozs7Tjs7OzA1M0Q7OzA1M0QKKzA1NkU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENBO0xsOzA7TDs7Ozs7Tjs7OzA1M0U7OzA1M0UKKzA1NkY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFTjtMbDswO0w7Ozs7O047OzswNTNGOzswNTNGCiswNTcwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBITztMbDswO0w7Ozs7O047OzswNTQwOzswNTQwCiswNTcxO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKQTtMbDswO0w7Ozs7O047OzswNTQxOzswNTQxCiswNTcyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSEFEO0xsOzA7TDs7Ozs7TjtBUk1FTklBTiBTTUFMTCBMRVRURVIgTEFEOzswNTQyOzswNTQyCiswNTczO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBDSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NDM7OzA1NDMKKzA1NzQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTjtMbDswO0w7Ozs7O047OzswNTQ0OzswNTQ0CiswNTc1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSTtMbDswO0w7Ozs7O047OzswNTQ1OzswNTQ1CiswNTc2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBOT1c7TGw7MDtMOzs7OztOOzs7MDU0Njs7MDU0NgorMDU3NztBUk1FTklBTiBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDc7OzA1NDcKKzA1Nzg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZPO0xsOzA7TDs7Ozs7Tjs7OzA1NDg7OzA1NDgKKzA1Nzk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIQTtMbDswO0w7Ozs7O047OzswNTQ5OzswNTQ5CiswNTdBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQRUg7TGw7MDtMOzs7OztOOzs7MDU0QTs7MDU0QQorMDU3QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSkhFSDtMbDswO0w7Ozs7O047OzswNTRCOzswNTRCCiswNTdDO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSQTtMbDswO0w7Ozs7O047OzswNTRDOzswNTRDCiswNTdEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTRUg7TGw7MDtMOzs7OztOOzs7MDU0RDs7MDU0RAorMDU3RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgVkVXO0xsOzA7TDs7Ozs7Tjs7OzA1NEU7OzA1NEUKKzA1N0Y7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRJV047TGw7MDtMOzs7OztOOzs7MDU0Rjs7MDU0RgorMDU4MDtBUk1FTklBTiBTTUFMTCBMRVRURVIgUkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTA7OzA1NTAKKzA1ODE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENPO0xsOzA7TDs7Ozs7Tjs7OzA1NTE7OzA1NTEKKzA1ODI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJV047TGw7MDtMOzs7OztOOzs7MDU1Mjs7MDU1MgorMDU4MztBUk1FTklBTiBTTUFMTCBMRVRURVIgUElXUjtMbDswO0w7Ozs7O047OzswNTUzOzswNTUzCiswNTg0O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBLRUg7TGw7MDtMOzs7OztOOzs7MDU1NDs7MDU1NAorMDU4NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgT0g7TGw7MDtMOzs7OztOOzs7MDU1NTs7MDU1NQorMDU4NjtBUk1FTklBTiBTTUFMTCBMRVRURVIgRkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTY7OzA1NTYKKzA1ODc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgRUNIIFlJV047TGw7MDtMOzxjb21wYXQ+IDA1NjUgMDU4Mjs7OztOOzs7OzsKKzA1ODk7QVJNRU5JQU4gRlVMTCBTVE9QO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBQRVJJT0Q7Ozs7CiswNThBO0FSTUVOSUFOIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzA1OTE7SEVCUkVXIEFDQ0VOVCBFVE5BSFRBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDU5MjtIRUJSRVcgQUNDRU5UIFNFR09MO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5MztIRUJSRVcgQUNDRU5UIFNIQUxTSEVMRVQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTk0O0hFQlJFVyBBQ0NFTlQgWkFRRUYgUUFUQU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTk1O0hFQlJFVyBBQ0NFTlQgWkFRRUYgR0FET0w7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTk2O0hFQlJFVyBBQ0NFTlQgVElQRUhBO01uOzIyMDtOU007Ozs7O047Oyo7OzsKKzA1OTc7SEVCUkVXIEFDQ0VOVCBSRVZJQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTg7SEVCUkVXIEFDQ0VOVCBaQVJRQTtNbjsyMzA7TlNNOzs7OztOOzsqOzs7CiswNTk5O0hFQlJFVyBBQ0NFTlQgUEFTSFRBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5QTtIRUJSRVcgQUNDRU5UIFlFVElWO01uOzIyMjtOU007Ozs7O047Ozs7OworMDU5QjtIRUJSRVcgQUNDRU5UIFRFVklSO01uOzIyMDtOU007Ozs7O047Ozs7OworMDU5QztIRUJSRVcgQUNDRU5UIEdFUkVTSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OUQ7SEVCUkVXIEFDQ0VOVCBHRVJFU0ggTVVRREFNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RTtIRUJSRVcgQUNDRU5UIEdFUlNIQVlJTTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OUY7SEVCUkVXIEFDQ0VOVCBRQVJORVkgUEFSQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QTA7SEVCUkVXIEFDQ0VOVCBURUxJU0hBIEdFRE9MQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QTE7SEVCUkVXIEFDQ0VOVCBQQVpFUjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QTI7SEVCUkVXIEFDQ0VOVCBBVE5BSCBIQUZVS0g7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUEzO0hFQlJFVyBBQ0NFTlQgTVVOQUg7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE0O0hFQlJFVyBBQ0NFTlQgTUFIQVBBS0g7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE1O0hFQlJFVyBBQ0NFTlQgTUVSS0hBO01uOzIyMDtOU007Ozs7O047Oyo7OzsKKzA1QTY7SEVCUkVXIEFDQ0VOVCBNRVJLSEEgS0VGVUxBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVBNztIRUJSRVcgQUNDRU5UIERBUkdBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVBODtIRUJSRVcgQUNDRU5UIFFBRE1BO01uOzIzMDtOU007Ozs7O047Oyo7OzsKKzA1QTk7SEVCUkVXIEFDQ0VOVCBURUxJU0hBIFFFVEFOQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QUE7SEVCUkVXIEFDQ0VOVCBZRVJBSCBCRU4gWU9NTztNbjsyMjA7TlNNOzs7OztOOzsqOzs7CiswNUFCO0hFQlJFVyBBQ0NFTlQgT0xFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBQztIRUJSRVcgQUNDRU5UIElMVVk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUFEO0hFQlJFVyBBQ0NFTlQgREVISTtNbjsyMjI7TlNNOzs7OztOOzs7OzsKKzA1QUU7SEVCUkVXIEFDQ0VOVCBaSU5PUjtNbjsyMjg7TlNNOzs7OztOOzs7OzsKKzA1QUY7SEVCUkVXIE1BUksgTUFTT1JBIENJUkNMRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QjA7SEVCUkVXIFBPSU5UIFNIRVZBO01uOzEwO05TTTs7Ozs7Tjs7Ozs7CiswNUIxO0hFQlJFVyBQT0lOVCBIQVRBRiBTRUdPTDtNbjsxMTtOU007Ozs7O047Ozs7OworMDVCMjtIRUJSRVcgUE9JTlQgSEFUQUYgUEFUQUg7TW47MTI7TlNNOzs7OztOOzs7OzsKKzA1QjM7SEVCUkVXIFBPSU5UIEhBVEFGIFFBTUFUUztNbjsxMztOU007Ozs7O047Ozs7OworMDVCNDtIRUJSRVcgUE9JTlQgSElSSVE7TW47MTQ7TlNNOzs7OztOOzs7OzsKKzA1QjU7SEVCUkVXIFBPSU5UIFRTRVJFO01uOzE1O05TTTs7Ozs7Tjs7Ozs7CiswNUI2O0hFQlJFVyBQT0lOVCBTRUdPTDtNbjsxNjtOU007Ozs7O047Ozs7OworMDVCNztIRUJSRVcgUE9JTlQgUEFUQUg7TW47MTc7TlNNOzs7OztOOzs7OzsKKzA1Qjg7SEVCUkVXIFBPSU5UIFFBTUFUUztNbjsxODtOU007Ozs7O047Ozs7OworMDVCOTtIRUJSRVcgUE9JTlQgSE9MQU07TW47MTk7TlNNOzs7OztOOzs7OzsKKzA1QkE7SEVCUkVXIFBPSU5UIEhPTEFNIEhBU0VSIEZPUiBWQVY7TW47MTk7TlNNOzs7OztOOzs7OzsKKzA1QkI7SEVCUkVXIFBPSU5UIFFVQlVUUztNbjsyMDtOU007Ozs7O047Ozs7OworMDVCQztIRUJSRVcgUE9JTlQgREFHRVNIIE9SIE1BUElRO01uOzIxO05TTTs7Ozs7TjtIRUJSRVcgUE9JTlQgREFHRVNIO29yIHNodXJ1cTs7OworMDVCRDtIRUJSRVcgUE9JTlQgTUVURUc7TW47MjI7TlNNOzs7OztOOzsqOzs7CiswNUJFO0hFQlJFVyBQVU5DVFVBVElPTiBNQVFBRjtQbzswO1I7Ozs7O047Ozs7OworMDVCRjtIRUJSRVcgUE9JTlQgUkFGRTtNbjsyMztOU007Ozs7O047Ozs7OworMDVDMDtIRUJSRVcgUFVOQ1RVQVRJT04gUEFTRVE7UG87MDtSOzs7OztOO0hFQlJFVyBQT0lOVCBQQVNFUTsqOzs7CiswNUMxO0hFQlJFVyBQT0lOVCBTSElOIERPVDtNbjsyNDtOU007Ozs7O047Ozs7OworMDVDMjtIRUJSRVcgUE9JTlQgU0lOIERPVDtNbjsyNTtOU007Ozs7O047Ozs7OworMDVDMztIRUJSRVcgUFVOQ1RVQVRJT04gU09GIFBBU1VRO1BvOzA7Ujs7Ozs7Tjs7Kjs7OworMDVDNDtIRUJSRVcgTUFSSyBVUFBFUiBET1Q7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUM1O0hFQlJFVyBNQVJLIExPV0VSIERPVDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QzY7SEVCUkVXIFBVTkNUVUFUSU9OIE5VTiBIQUZVS0hBO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUM3O0hFQlJFVyBQT0lOVCBRQU1BVFMgUUFUQU47TW47MTg7TlNNOzs7OztOOzs7OzsKKzA1RDA7SEVCUkVXIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQxO0hFQlJFVyBMRVRURVIgQkVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQyO0hFQlJFVyBMRVRURVIgR0lNRUw7TG87MDtSOzs7OztOOzs7OzsKKzA1RDM7SEVCUkVXIExFVFRFUiBEQUxFVDtMbzswO1I7Ozs7O047Ozs7OworMDVENDtIRUJSRVcgTEVUVEVSIEhFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ1O0hFQlJFVyBMRVRURVIgVkFWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ2O0hFQlJFVyBMRVRURVIgWkFZSU47TG87MDtSOzs7OztOOzs7OzsKKzA1RDc7SEVCUkVXIExFVFRFUiBIRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDg7SEVCUkVXIExFVFRFUiBURVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDk7SEVCUkVXIExFVFRFUiBZT0Q7TG87MDtSOzs7OztOOzs7OzsKKzA1REE7SEVCUkVXIExFVFRFUiBGSU5BTCBLQUY7TG87MDtSOzs7OztOOzs7OzsKKzA1REI7SEVCUkVXIExFVFRFUiBLQUY7TG87MDtSOzs7OztOOzs7OzsKKzA1REM7SEVCUkVXIExFVFRFUiBMQU1FRDtMbzswO1I7Ozs7O047Ozs7OworMDVERDtIRUJSRVcgTEVUVEVSIEZJTkFMIE1FTTtMbzswO1I7Ozs7O047Ozs7OworMDVERTtIRUJSRVcgTEVUVEVSIE1FTTtMbzswO1I7Ozs7O047Ozs7OworMDVERjtIRUJSRVcgTEVUVEVSIEZJTkFMIE5VTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMDtIRUJSRVcgTEVUVEVSIE5VTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMTtIRUJSRVcgTEVUVEVSIFNBTUVLSDtMbzswO1I7Ozs7O047Ozs7OworMDVFMjtIRUJSRVcgTEVUVEVSIEFZSU47TG87MDtSOzs7OztOOzs7OzsKKzA1RTM7SEVCUkVXIExFVFRFUiBGSU5BTCBQRTtMbzswO1I7Ozs7O047Ozs7OworMDVFNDtIRUJSRVcgTEVUVEVSIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU1O0hFQlJFVyBMRVRURVIgRklOQUwgVFNBREk7TG87MDtSOzs7OztOOzs7OzsKKzA1RTY7SEVCUkVXIExFVFRFUiBUU0FESTtMbzswO1I7Ozs7O047Ozs7OworMDVFNztIRUJSRVcgTEVUVEVSIFFPRjtMbzswO1I7Ozs7O047Ozs7OworMDVFODtIRUJSRVcgTEVUVEVSIFJFU0g7TG87MDtSOzs7OztOOzs7OzsKKzA1RTk7SEVCUkVXIExFVFRFUiBTSElOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUVBO0hFQlJFVyBMRVRURVIgVEFWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUYwO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIERPVUJMRSBWQVY7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgRE9VQkxFIFZBVjs7OzsKKzA1RjE7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggVkFWIFlPRDtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBWQVYgWU9EOzs7OworMDVGMjtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBET1VCTEUgWU9EO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIERPVUJMRSBZT0Q7Ozs7CiswNUYzO0hFQlJFVyBQVU5DVFVBVElPTiBHRVJFU0g7UG87MDtSOzs7OztOOzs7OzsKKzA1RjQ7SEVCUkVXIFBVTkNUVUFUSU9OIEdFUlNIQVlJTTtQbzswO1I7Ozs7O047Ozs7OworMDYwMDtBUkFCSUMgTlVNQkVSIFNJR047Q2Y7MDtBTDs7Ozs7Tjs7Ozs7CiswNjAxO0FSQUJJQyBTSUdOIFNBTkFIO0NmOzA7QUw7Ozs7O047Ozs7OworMDYwMjtBUkFCSUMgRk9PVE5PVEUgTUFSS0VSO0NmOzA7QUw7Ozs7O047Ozs7OworMDYwMztBUkFCSUMgU0lHTiBTQUZIQTtDZjswO0FMOzs7OztOOzs7OzsKKzA2MEI7QUZHSEFOSSBTSUdOO1NjOzA7QUw7Ozs7O047Ozs7OworMDYwQztBUkFCSUMgQ09NTUE7UG87MDtDUzs7Ozs7Tjs7Ozs7CiswNjBEO0FSQUJJQyBEQVRFIFNFUEFSQVRPUjtQbzswO0FMOzs7OztOOzs7OzsKKzA2MEU7QVJBQklDIFBPRVRJQyBWRVJTRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMDYwRjtBUkFCSUMgU0lHTiBNSVNSQTtTbzswO09OOzs7OztOOzs7OzsKKzA2MTA7QVJBQklDIFNJR04gU0FMTEFMTEFIT1UgQUxBWUhFIFdBU1NBTExBTTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2MTE7QVJBQklDIFNJR04gQUxBWUhFIEFTU0FMTEFNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDYxMjtBUkFCSUMgU0lHTiBSQUhNQVRVTExBSCBBTEFZSEU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjEzO0FSQUJJQyBTSUdOIFJBREkgQUxMQUhPVSBBTkhVO01uOzIzMDtOU007Ozs7O047Ozs7OworMDYxNDtBUkFCSUMgU0lHTiBUQUtIQUxMVVM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjE1O0FSQUJJQyBTTUFMTCBISUdIIFRBSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2MUI7QVJBQklDIFNFTUlDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA2MUU7QVJBQklDIFRSSVBMRSBET1QgUFVOQ1RVQVRJT04gTUFSSztQbzswO0FMOzs7OztOOzs7OzsKKzA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjIxO0FSQUJJQyBMRVRURVIgSEFNWkE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSDs7OzsKKzA2MjI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkU7TG87MDtBTDswNjI3IDA2NTM7Ozs7TjtBUkFCSUMgTEVUVEVSIE1BRERBSCBPTiBBTEVGOzs7OworMDYyMztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2MjcgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEFMRUY7Ozs7CiswNjI0O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNjQ4IDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBXQVc7Ozs7CiswNjI1O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XO0xvOzA7QUw7MDYyNyAwNjU1Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2MjY7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2NEEgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFlBOzs7OworMDYyNztBUkFCSUMgTEVUVEVSIEFMRUY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjI4O0FSQUJJQyBMRVRURVIgQkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CiswNjI5O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBNQVJCVVRBSDs7OzsKKzA2MkE7QVJBQklDIExFVFRFUiBURUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQTs7OzsKKzA2MkI7QVJBQklDIExFVFRFUiBUSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworMDYyQztBUkFCSUMgTEVUVEVSIEpFRU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjJEO0FSQUJJQyBMRVRURVIgSEFIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUE7Ozs7CiswNjJFO0FSQUJJQyBMRVRURVIgS0hBSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgS0hBQTs7OzsKKzA2MkY7QVJBQklDIExFVFRFUiBEQUw7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjMwO0FSQUJJQyBMRVRURVIgVEhBTDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzE7QVJBQklDIExFVFRFUiBSRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBOzs7OworMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzQ7QVJBQklDIExFVFRFUiBTSEVFTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM2O0FSQUJJQyBMRVRURVIgREFEO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNztBUkFCSUMgTEVUVEVSIFRBSDtMbzswO0FMOzs7OztOOzs7OzsKKzA2Mzg7QVJBQklDIExFVFRFUiBaQUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERIQUg7Ozs7CiswNjM5O0FSQUJJQyBMRVRURVIgQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzQTtBUkFCSUMgTEVUVEVSIEdIQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO0FMOzs7OztOOzs7OzsKKzA2NDE7QVJBQklDIExFVFRFUiBGRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OworMDY0MjtBUkFCSUMgTEVUVEVSIFFBRjtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDM7QVJBQklDIExFVFRFUiBLQUY7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRjs7OzsKKzA2NDQ7QVJBQklDIExFVFRFUiBMQU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ1O0FSQUJJQyBMRVRURVIgTUVFTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDY7QVJBQklDIExFVFRFUiBOT09OO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0NztBUkFCSUMgTEVUVEVSIEhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEE7Ozs7CiswNjQ4O0FSQUJJQyBMRVRURVIgV0FXO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0OTtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQUxFRiBNQVFTVVJBSDs7OzsKKzA2NEE7QVJBQklDIExFVFRFUiBZRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBOzs7OworMDY0QjtBUkFCSUMgRkFUSEFUQU47TW47Mjc7TlNNOzs7OztOOzs7OzsKKzA2NEM7QVJBQklDIERBTU1BVEFOO01uOzI4O05TTTs7Ozs7Tjs7Ozs7CiswNjREO0FSQUJJQyBLQVNSQVRBTjtNbjsyOTtOU007Ozs7O047Ozs7OworMDY0RTtBUkFCSUMgRkFUSEE7TW47MzA7TlNNOzs7OztOO0FSQUJJQyBGQVRIQUg7Ozs7CiswNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtOU007Ozs7O047QVJBQklDIERBTU1BSDs7OzsKKzA2NTA7QVJBQklDIEtBU1JBO01uOzMyO05TTTs7Ozs7TjtBUkFCSUMgS0FTUkFIOzs7OworMDY1MTtBUkFCSUMgU0hBRERBO01uOzMzO05TTTs7Ozs7TjtBUkFCSUMgU0hBRERBSDs7OzsKKzA2NTI7QVJBQklDIFNVS1VOO01uOzM0O05TTTs7Ozs7Tjs7Ozs7CiswNjUzO0FSQUJJQyBNQUREQUggQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjU0O0FSQUJJQyBIQU1aQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTU7QVJBQklDIEhBTVpBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDY1NjtBUkFCSUMgU1VCU0NSSVBUIEFMRUY7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNjU3O0FSQUJJQyBJTlZFUlRFRCBEQU1NQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTg7QVJBQklDIE1BUksgTk9PTiBHSFVOTkE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjU5O0FSQUJJQyBaV0FSQUtBWTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NUE7QVJBQklDIFZPV0VMIFNJR04gU01BTEwgViBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NUI7QVJBQklDIFZPV0VMIFNJR04gSU5WRVJURUQgU01BTEwgViBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NUM7QVJBQklDIFZPV0VMIFNJR04gRE9UIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDY1RDtBUkFCSUMgUkVWRVJTRUQgREFNTUE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjVFO0FSQUJJQyBGQVRIQSBXSVRIIFRXTyBET1RTO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY2MDtBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0FOOzswOzA7MDtOOzs7OzsKKzA2NjE7QVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0FOOzsxOzE7MTtOOzs7OzsKKzA2NjI7QVJBQklDLUlORElDIERJR0lUIFRXTztOZDswO0FOOzsyOzI7MjtOOzs7OzsKKzA2NjM7QVJBQklDLUlORElDIERJR0lUIFRIUkVFO05kOzA7QU47OzM7MzszO047Ozs7OworMDY2NDtBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0FOOzs0OzQ7NDtOOzs7OzsKKzA2NjU7QVJBQklDLUlORElDIERJR0lUIEZJVkU7TmQ7MDtBTjs7NTs1OzU7Tjs7Ozs7CiswNjY2O0FSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtBTjs7Njs2OzY7Tjs7Ozs7CiswNjY3O0FSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0FOOzs3Ozc7NztOOzs7OzsKKzA2Njg7QVJBQklDLUlORElDIERJR0lUIEVJR0hUO05kOzA7QU47Ozg7ODs4O047Ozs7OworMDY2OTtBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0FOOzs5Ozk7OTtOOzs7OzsKKzA2NkE7QVJBQklDIFBFUkNFTlQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzA2NkI7QVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworMDY2QztBUkFCSUMgVEhPVVNBTkRTIFNFUEFSQVRPUjtQbzswO0FOOzs7OztOOzs7OzsKKzA2NkQ7QVJBQklDIEZJVkUgUE9JTlRFRCBTVEFSO1BvOzA7QUw7Ozs7O047Ozs7OworMDY2RTtBUkFCSUMgTEVUVEVSIERPVExFU1MgQkVIO0xvOzA7QUw7Ozs7O047Ozs7OworMDY2RjtBUkFCSUMgTEVUVEVSIERPVExFU1MgUUFGO0xvOzA7QUw7Ozs7O047Ozs7OworMDY3MDtBUkFCSUMgTEVUVEVSIFNVUEVSU0NSSVBUIEFMRUY7TW47MzU7TlNNOzs7OztOO0FSQUJJQyBBTEVGIEFCT1ZFOzs7OworMDY3MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBVCBXQVNMIE9OIEFMRUY7Ozs7CiswNjcyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIFdBVlkgSEFNWkEgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVlkgSEFNWkFIIE9OIEFMRUY7Ozs7CiswNjczO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIFdBVlkgSEFNWkEgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVlkgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CiswNjc0O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUg7Ozs7CiswNjc1O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBBTEVGO0xvOzA7QUw7PGNvbXBhdD4gMDYyNyAwNjc0Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBBTEVGOzs7OworMDY3NjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgV0FXO0xvOzA7QUw7PGNvbXBhdD4gMDY0OCAwNjc0Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBXQVc7Ozs7CiswNjc3O0FSQUJJQyBMRVRURVIgVSBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7PGNvbXBhdD4gMDZDNyAwNjc0Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBXQVcgV0lUSCBEQU1NQUg7Ozs7CiswNjc4O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBZRUg7TG87MDtBTDs8Y29tcGF0PiAwNjRBIDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFlBOzs7OworMDY3OTtBUkFCSUMgTEVUVEVSIFRURUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2N0E7QVJBQklDIExFVFRFUiBUVEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFOzs7OworMDY3QjtBUkFCSUMgTEVUVEVSIEJFRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDY3QztBUkFCSUMgTEVUVEVSIFRFSCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFJJTkc7Ozs7CiswNjdEO0FSQUJJQyBMRVRURVIgVEVIIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRFM7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkQ7Ozs7CiswNjdFO0FSQUJJQyBMRVRURVIgUEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDY3RjtBUkFCSUMgTEVUVEVSIFRFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBGT1VSIERPVFMgQUJPVkU7Ozs7CiswNjgwO0FSQUJJQyBMRVRURVIgQkVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQSBXSVRIIEZPVVIgRE9UUyBCRUxPVzs7OzsKKzA2ODE7QVJBQklDIExFVFRFUiBIQUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBQTs7OzsKKzA2ODI7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQUJPVkU7Ozs7CiswNjgzO0FSQUJJQyBMRVRURVIgTllFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRXTyBET1RTOzs7OworMDY4NDtBUkFCSUMgTEVUVEVSIERZRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUV08gRE9UUyBWRVJUSUNBTDs7OzsKKzA2ODU7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDY4NjtBUkFCSUMgTEVUVEVSIFRDSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgVEhSRUUgRE9UUyBET1dOV0FSRDs7OzsKKzA2ODc7QVJBQklDIExFVFRFUiBUQ0hFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgRk9VUiBET1RTOzs7OworMDY4ODtBUkFCSUMgTEVUVEVSIEREQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2ODk7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OEI7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBET1QgQkVMT1cgQU5EIFNNQUxMIFRBSDtMbzswO0FMOzs7OztOOzs7OzsKKzA2OEM7QVJBQklDIExFVFRFUiBEQUhBTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNjhEO0FSQUJJQyBMRVRURVIgRERBSEFMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBCRUxPVzs7OzsKKzA2OEU7QVJBQklDIExFVFRFUiBEVUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjhGO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRFM7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkQ7Ozs7CiswNjkwO0FSQUJJQyBMRVRURVIgREFMIFdJVEggRk9VUiBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5MTtBUkFCSUMgTEVUVEVSIFJSRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgVEFIOzs7OworMDY5MjtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFNNQUxMIFY7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgVjs7OzsKKzA2OTM7QVJBQklDIExFVFRFUiBSRUggV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFJJTkc7Ozs7CiswNjk0O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIERPVCBCRUxPVzs7OzsKKzA2OTU7QVJBQklDIExFVFRFUiBSRUggV0lUSCBTTUFMTCBWIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFYgQkVMT1c7Ozs7CiswNjk2O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7Ozs7CiswNjk3O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNjk4O0FSQUJJQyBMRVRURVIgSkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjk5O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRk9VUiBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2OUE7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlCO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlDO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIFRIUkVFIERPVFMgQkVMT1cgQU5EIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlEO0FSQUJJQyBMRVRURVIgU0FEIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlFO0FSQUJJQyBMRVRURVIgU0FEIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUY7QVJBQklDIExFVFRFUiBUQUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZBMDtBUkFCSUMgTEVUVEVSIEFJTiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkExO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBGRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgRkE7Ozs7CiswNkEyO0FSQUJJQyBMRVRURVIgRkVIIFdJVEggRE9UIE1PVkVEIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIERPVCBNT1ZFRCBCRUxPVzs7OzsKKzA2QTM7QVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRE9UIEJFTE9XOzs7OworMDZBNDtBUkFCSUMgTEVUVEVSIFZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZBNTtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QTY7QVJBQklDIExFVFRFUiBQRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBGT1VSIERPVFMgQUJPVkU7Ozs7CiswNkE3O0FSQUJJQyBMRVRURVIgUUFGIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZBODtBUkFCSUMgTEVUVEVSIFFBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkE5O0FSQUJJQyBMRVRURVIgS0VIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIE9QRU4gQ0FGOzs7OworMDZBQTtBUkFCSUMgTEVUVEVSIFNXQVNIIEtBRjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgU1dBU0ggQ0FGOzs7OworMDZBQjtBUkFCSUMgTEVUVEVSIEtBRiBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFJJTkc7Ozs7CiswNkFDO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBET1QgQUJPVkU7Ozs7CiswNkFEO0FSQUJJQyBMRVRURVIgTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkFFO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QUY7QVJBQklDIExFVFRFUiBHQUY7TG87MDtBTDs7Ozs7Tjs7Kjs7OworMDZCMDtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkIxO0FSQUJJQyBMRVRURVIgTkdPRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIEFCT1ZFOzs7OworMDZCMjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCMztBUkFCSUMgTEVUVEVSIEdVRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDZCNDtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI1O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOOzs7OzsKKzA2QjY7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI3O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2Qjg7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCOTtBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJBO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgTk9PTjs7OzsKKzA2QkI7QVJBQklDIExFVFRFUiBSTk9PTjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBOT09OIFdJVEggU01BTEwgVEFIOzs7OworMDZCQztBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCRDtBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCRTtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgS05PVFRFRCBIQTs7OzsKKzA2QkY7QVJBQklDIExFVFRFUiBUQ0hFSCBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QzA7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkU7TG87MDtBTDswNkQ1IDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQTs7OzsKKzA2QzE7QVJBQklDIExFVFRFUiBIRUggR09BTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEEgR09BTDs7OzsKKzA2QzI7QVJBQklDIExFVFRFUiBIRUggR09BTCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDZDMSAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEEgR09BTDs7OzsKKzA2QzM7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQSBHT0FMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgTUFSQlVUQUggR09BTDs7OzsKKzA2QzQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDNTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0U7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEJBUjs7OzsKKzA2QzY7QVJBQklDIExFVFRFUiBPRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggU01BTEwgVjs7OzsKKzA2Qzc7QVJBQklDIExFVFRFUiBVO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBEQU1NQUg7Ozs7CiswNkM4O0FSQUJJQyBMRVRURVIgWVU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEFMRUYgQUJPVkU7Ozs7CiswNkM5O0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSU5WRVJURUQgU01BTEwgVjs7OzsKKzA2Q0E7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2Q0I7QVJBQklDIExFVFRFUiBWRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2Q0M7QVJBQklDIExFVFRFUiBGQVJTSSBZRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgWUE7Ozs7CiswNkNEO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggVEFJTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUQUlMOzs7OworMDZDRTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFNNQUxMIFY7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIFdJVEggU01BTEwgVjs7OzsKKzA2Q0Y7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkQwO0FSQUJJQyBMRVRURVIgRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBCRUxPVzsqOzs7CiswNkQxO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZEMjtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIEJBUlJFRTs7OzsKKzA2RDM7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNkQyIDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBZQSBCQVJSRUU7Ozs7CiswNkQ0O0FSQUJJQyBGVUxMIFNUT1A7UG87MDtBTDs7Ozs7TjtBUkFCSUMgUEVSSU9EOzs7OworMDZENTtBUkFCSUMgTEVUVEVSIEFFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZENjtBUkFCSUMgU01BTEwgSElHSCBMSUdBVFVSRSBTQUQgV0lUSCBMQU0gV0lUSCBBTEVGIE1BS1NVUkE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkQ3O0FSQUJJQyBTTUFMTCBISUdIIExJR0FUVVJFIFFBRiBXSVRIIExBTSBXSVRIIEFMRUYgTUFLU1VSQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDg7QVJBQklDIFNNQUxMIEhJR0ggTUVFTSBJTklUSUFMIEZPUk07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkQ5O0FSQUJJQyBTTUFMTCBISUdIIExBTSBBTEVGO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEQTtBUkFCSUMgU01BTEwgSElHSCBKRUVNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEQjtBUkFCSUMgU01BTEwgSElHSCBUSFJFRSBET1RTO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEQztBUkFCSUMgU01BTEwgSElHSCBTRUVOO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZERDtBUkFCSUMgRU5EIE9GIEFZQUg7Q2Y7MDtBTDs7Ozs7Tjs7Ozs7CiswNkRFO0FSQUJJQyBTVEFSVCBPRiBSVUIgRUwgSElaQjtNZTswO05TTTs7Ozs7Tjs7Ozs7CiswNkRGO0FSQUJJQyBTTUFMTCBISUdIIFJPVU5ERUQgWkVSTztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTA7QVJBQklDIFNNQUxMIEhJR0ggVVBSSUdIVCBSRUNUQU5HVUxBUiBaRVJPO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMTtBUkFCSUMgU01BTEwgSElHSCBET1RMRVNTIEhFQUQgT0YgS0hBSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTI7QVJBQklDIFNNQUxMIEhJR0ggTUVFTSBJU09MQVRFRCBGT1JNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMztBUkFCSUMgU01BTEwgTE9XIFNFRU47TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNkU0O0FSQUJJQyBTTUFMTCBISUdIIE1BRERBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFNTtBUkFCSUMgU01BTEwgV0FXO0xtOzA7QUw7Ozs7O047Ozs7OworMDZFNjtBUkFCSUMgU01BTEwgWUVIO0xtOzA7QUw7Ozs7O047Ozs7OworMDZFNztBUkFCSUMgU01BTEwgSElHSCBZRUg7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkU4O0FSQUJJQyBTTUFMTCBISUdIIE5PT047TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkU5O0FSQUJJQyBQTEFDRSBPRiBTQUpEQUg7U287MDtPTjs7Ozs7Tjs7Ozs7CiswNkVBO0FSQUJJQyBFTVBUWSBDRU5UUkUgTE9XIFNUT1A7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNkVCO0FSQUJJQyBFTVBUWSBDRU5UUkUgSElHSCBTVE9QO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFQztBUkFCSUMgUk9VTkRFRCBISUdIIFNUT1AgV0lUSCBGSUxMRUQgQ0VOVFJFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFRDtBUkFCSUMgU01BTEwgTE9XIE1FRU07TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNkVFO0FSQUJJQyBMRVRURVIgREFMIFdJVEggSU5WRVJURUQgVjtMbzswO0FMOzs7OztOOzs7OzsKKzA2RUY7QVJBQklDIExFVFRFUiBSRUggV0lUSCBJTlZFUlRFRCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDZGMDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0VOOzswOzA7MDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFpFUk87Ozs7CiswNkYxO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7Ozs7CiswNkYyO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtFTjs7MjsyOzI7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBUV087Ozs7CiswNkYzO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0VOOzszOzM7MztOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFRIUkVFOzs7OworMDZGNDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0VOOzs0OzQ7NDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEZPVVI7Ozs7CiswNkY1O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7RU47OzU7NTs1O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRklWRTs7OzsKKzA2RjY7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFNJWDs7OzsKKzA2Rjc7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7RU47Ozc7Nzs3O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47Ozs7CiswNkY4O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0VOOzs4Ozg7ODtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEVJR0hUOzs7OworMDZGOTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0VOOzs5Ozk7OTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIE5JTkU7Ozs7CiswNkZBO0FSQUJJQyBMRVRURVIgU0hFRU4gV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkZCO0FSQUJJQyBMRVRURVIgREFEIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZGQztBUkFCSUMgTEVUVEVSIEdIQUlOIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZGRDtBUkFCSUMgU0lHTiBTSU5ESEkgQU1QRVJTQU5EO1NvOzA7QUw7Ozs7O047Ozs7OworMDZGRTtBUkFCSUMgU0lHTiBTSU5ESEkgUE9TVFBPU0lUSU9OIE1FTjtTbzswO0FMOzs7OztOOzs7OzsKKzA2RkY7QVJBQklDIExFVFRFUiBIRUggV0lUSCBJTlZFUlRFRCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDcwMDtTWVJJQUMgRU5EIE9GIFBBUkFHUkFQSDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDE7U1lSSUFDIFNVUFJBTElORUFSIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDI7U1lSSUFDIFNVQkxJTkVBUiBGVUxMIFNUT1A7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzAzO1NZUklBQyBTVVBSQUxJTkVBUiBDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDQ7U1lSSUFDIFNVQkxJTkVBUiBDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDU7U1lSSUFDIEhPUklaT05UQUwgQ09MT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA2O1NZUklBQyBDT0xPTiBTS0VXRUQgTEVGVDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDc7U1lSSUFDIENPTE9OIFNLRVdFRCBSSUdIVDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDg7U1lSSUFDIFNVUFJBTElORUFSIENPTE9OIFNLRVdFRCBMRUZUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwOTtTWVJJQUMgU1VCTElORUFSIENPTE9OIFNLRVdFRCBSSUdIVDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MEE7U1lSSUFDIENPTlRSQUNUSU9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwQjtTWVJJQUMgSEFSS0xFQU4gT0JFTFVTO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwQztTWVJJQUMgSEFSS0xFQU4gTUVUT0JFTFVTO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwRDtTWVJJQUMgSEFSS0xFQU4gQVNURVJJU0NVUztQbzswO0FMOzs7OztOOzs7OzsKKzA3MEY7U1lSSUFDIEFCQlJFVklBVElPTiBNQVJLO0NmOzA7Qk47Ozs7O047Ozs7OworMDcxMDtTWVJJQUMgTEVUVEVSIEFMQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxMTtTWVJJQUMgTEVUVEVSIFNVUEVSU0NSSVBUIEFMQVBIO01uOzM2O05TTTs7Ozs7Tjs7Ozs7CiswNzEyO1NZUklBQyBMRVRURVIgQkVUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTM7U1lSSUFDIExFVFRFUiBHQU1BTDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTQ7U1lSSUFDIExFVFRFUiBHQU1BTCBHQVJTSFVOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTU7U1lSSUFDIExFVFRFUiBEQUxBVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzE2O1NZUklBQyBMRVRURVIgRE9UTEVTUyBEQUxBVEggUklTSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTc7U1lSSUFDIExFVFRFUiBIRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTg7U1lSSUFDIExFVFRFUiBXQVc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzE5O1NZUklBQyBMRVRURVIgWkFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUE7U1lSSUFDIExFVFRFUiBIRVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxQjtTWVJJQUMgTEVUVEVSIFRFVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFDO1NZUklBQyBMRVRURVIgVEVUSCBHQVJTSFVOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUQ7U1lSSUFDIExFVFRFUiBZVURIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxRTtTWVJJQUMgTEVUVEVSIFlVREggSEU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFGO1NZUklBQyBMRVRURVIgS0FQSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjA7U1lSSUFDIExFVFRFUiBMQU1BREg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzIxO1NZUklBQyBMRVRURVIgTUlNO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMjtTWVJJQUMgTEVUVEVSIE5VTjtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjM7U1lSSUFDIExFVFRFUiBTRU1LQVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNDtTWVJJQUMgTEVUVEVSIEZJTkFMIFNFTUtBVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI1O1NZUklBQyBMRVRURVIgRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjY7U1lSSUFDIExFVFRFUiBQRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3Mjc7U1lSSUFDIExFVFRFUiBSRVZFUlNFRCBQRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3Mjg7U1lSSUFDIExFVFRFUiBTQURIRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3Mjk7U1lSSUFDIExFVFRFUiBRQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyQTtTWVJJQUMgTEVUVEVSIFJJU0g7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzJCO1NZUklBQyBMRVRURVIgU0hJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkM7U1lSSUFDIExFVFRFUiBUQVc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzJEO1NZUklBQyBMRVRURVIgUEVSU0lBTiBCSEVUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkU7U1lSSUFDIExFVFRFUiBQRVJTSUFOIEdIQU1BTDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkY7U1lSSUFDIExFVFRFUiBQRVJTSUFOIERIQUxBVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzMwO1NZUklBQyBQVEhBSEEgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzMxO1NZUklBQyBQVEhBSEEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzMyO1NZUklBQyBQVEhBSEEgRE9UVEVEO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczMztTWVJJQUMgWlFBUEhBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczNDtTWVJJQUMgWlFBUEhBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczNTtTWVJJQUMgWlFBUEhBIERPVFRFRDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3MzY7U1lSSUFDIFJCQVNBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczNztTWVJJQUMgUkJBU0EgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzM4O1NZUklBQyBET1RURUQgWkxBTUEgSE9SSVpPTlRBTDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3Mzk7U1lSSUFDIERPVFRFRCBaTEFNQSBBTkdVTEFSO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczQTtTWVJJQUMgSEJBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzNCO1NZUklBQyBIQkFTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3M0M7U1lSSUFDIEhCQVNBLUVTQVNBIERPVFRFRDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3M0Q7U1lSSUFDIEVTQVNBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczRTtTWVJJQUMgRVNBU0EgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzNGO1NZUklBQyBSV0FIQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDA7U1lSSUFDIEZFTUlOSU5FIERPVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDE7U1lSSUFDIFFVU0hTSEFZQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDI7U1lSSUFDIFJVS0tBS0hBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDc0MztTWVJJQUMgVFdPIFZFUlRJQ0FMIERPVFMgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ0O1NZUklBQyBUV08gVkVSVElDQUwgRE9UUyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3NDU7U1lSSUFDIFRIUkVFIERPVFMgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ2O1NZUklBQyBUSFJFRSBET1RTIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDc0NztTWVJJQUMgT0JMSVFVRSBMSU5FIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0ODtTWVJJQUMgT0JMSVFVRSBMSU5FIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDc0OTtTWVJJQUMgTVVTSUM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzRBO1NZUklBQyBCQVJSRUtIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0RDtTWVJJQUMgTEVUVEVSIFNPR0RJQU4gWkhBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzRFO1NZUklBQyBMRVRURVIgU09HRElBTiBLSEFQSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3NEY7U1lSSUFDIExFVFRFUiBTT0dESUFOIEZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1MDtBUkFCSUMgTEVUVEVSIEJFSCBXSVRIIFRIUkVFIERPVFMgSE9SSVpPTlRBTExZIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1MTtBUkFCSUMgTEVUVEVSIEJFSCBXSVRIIERPVCBCRUxPVyBBTkQgVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NTI7QVJBQklDIExFVFRFUiBCRUggV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIFVQV0FSRFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzUzO0FSQUJJQyBMRVRURVIgQkVIIFdJVEggVEhSRUUgRE9UUyBQT0lOVElORyBVUFdBUkRTIEJFTE9XIEFORCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NTQ7QVJBQklDIExFVFRFUiBCRUggV0lUSCBUV08gRE9UUyBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1NTtBUkFCSUMgTEVUVEVSIEJFSCBXSVRIIElOVkVSVEVEIFNNQUxMIFYgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzU2O0FSQUJJQyBMRVRURVIgQkVIIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOOzs7OzsKKzA3NTc7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NTg7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIFVQV0FSRFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzU5O0FSQUJJQyBMRVRURVIgREFMIFdJVEggVFdPIERPVFMgVkVSVElDQUxMWSBCRUxPVyBBTkQgU01BTEwgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1QTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIElOVkVSVEVEIFNNQUxMIFYgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVCO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU1RST0tFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1QztBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBGT1VSIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVEO0FSQUJJQyBMRVRURVIgQUlOIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVFO0FSQUJJQyBMRVRURVIgQUlOIFdJVEggVEhSRUUgRE9UUyBQT0lOVElORyBET1dOV0FSRFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVGO0FSQUJJQyBMRVRURVIgQUlOIFdJVEggVFdPIERPVFMgVkVSVElDQUxMWSBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NjA7QVJBQklDIExFVFRFUiBGRUggV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NjE7QVJBQklDIExFVFRFUiBGRUggV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIFVQV0FSRFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzYyO0FSQUJJQyBMRVRURVIgS0VIRUggV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzYzO0FSQUJJQyBMRVRURVIgS0VIRUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2NDtBUkFCSUMgTEVUVEVSIEtFSEVIIFdJVEggVEhSRUUgRE9UUyBQT0lOVElORyBVUFdBUkRTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2NTtBUkFCSUMgTEVUVEVSIE1FRU0gV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzY2O0FSQUJJQyBMRVRURVIgTUVFTSBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3Njc7QVJBQklDIExFVFRFUiBOT09OIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzY4O0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFNNQUxMIFRBSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3Njk7QVJBQklDIExFVFRFUiBOT09OIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOOzs7OzsKKzA3NkE7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBCQVI7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzZCO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggVFdPIERPVFMgVkVSVElDQUxMWSBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NkM7QVJBQklDIExFVFRFUiBSRUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NkQ7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVFdPIERPVFMgVkVSVElDQUxMWSBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODA7VEhBQU5BIExFVFRFUiBIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzgxO1RIQUFOQSBMRVRURVIgU0hBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MjtUSEFBTkEgTEVUVEVSIE5PT05VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MztUSEFBTkEgTEVUVEVSIFJBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODQ7VEhBQU5BIExFVFRFUiBCQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg1O1RIQUFOQSBMRVRURVIgTEhBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NjtUSEFBTkEgTEVUVEVSIEtBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NztUSEFBTkEgTEVUVEVSIEFMSUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4ODtUSEFBTkEgTEVUVEVSIFZBQVZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4OTtUSEFBTkEgTEVUVEVSIE1FRU1VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4QTtUSEFBTkEgTEVUVEVSIEZBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4QjtUSEFBTkEgTEVUVEVSIERIQUFMVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEM7VEhBQU5BIExFVFRFUiBUSEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4RDtUSEFBTkEgTEVUVEVSIExBQU1VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4RTtUSEFBTkEgTEVUVEVSIEdBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4RjtUSEFBTkEgTEVUVEVSIEdOQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTA7VEhBQU5BIExFVFRFUiBTRUVOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTE7VEhBQU5BIExFVFRFUiBEQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTI7VEhBQU5BIExFVFRFUiBaQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTM7VEhBQU5BIExFVFRFUiBUQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTQ7VEhBQU5BIExFVFRFUiBZQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk1O1RIQUFOQSBMRVRURVIgUEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk2O1RIQUFOQSBMRVRURVIgSkFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk3O1RIQUFOQSBMRVRURVIgQ0hBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5ODtUSEFBTkEgTEVUVEVSIFRUQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk5O1RIQUFOQSBMRVRURVIgSEhBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUE7VEhBQU5BIExFVFRFUiBLSEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5QjtUSEFBTkEgTEVUVEVSIFRIQUFMVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUM7VEhBQU5BIExFVFRFUiBaQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlEO1RIQUFOQSBMRVRURVIgU0hFRU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5RTtUSEFBTkEgTEVUVEVSIFNBQURIVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUY7VEhBQU5BIExFVFRFUiBEQUFESFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0EwO1RIQUFOQSBMRVRURVIgVE87TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0ExO1RIQUFOQSBMRVRURVIgWk87TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0EyO1RIQUFOQSBMRVRURVIgQUlOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTM7VEhBQU5BIExFVFRFUiBHSEFJTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0E0O1RIQUFOQSBMRVRURVIgUUFBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0E1O1RIQUFOQSBMRVRURVIgV0FBVlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0E2O1RIQUFOQSBBQkFGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QTc7VEhBQU5BIEFBQkFBRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0E4O1RIQUFOQSBJQklGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QTk7VEhBQU5BIEVFQkVFRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FBO1RIQUFOQSBVQlVGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUI7VEhBQU5BIE9PQk9PRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FDO1RIQUFOQSBFQkVGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUQ7VEhBQU5BIEVZQkVZRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FFO1RIQUFOQSBPQk9GSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUY7VEhBQU5BIE9BQk9BRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0IwO1RIQUFOQSBTVUtVTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0IxO1RIQUFOQSBMRVRURVIgTkFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDdDMDtOS08gRElHSVQgWkVSTztOZDswO1I7OzA7MDswO047Ozs7OworMDdDMTtOS08gRElHSVQgT05FO05kOzA7Ujs7MTsxOzE7Tjs7Ozs7CiswN0MyO05LTyBESUdJVCBUV087TmQ7MDtSOzsyOzI7MjtOOzs7OzsKKzA3QzM7TktPIERJR0lUIFRIUkVFO05kOzA7Ujs7MzszOzM7Tjs7Ozs7CiswN0M0O05LTyBESUdJVCBGT1VSO05kOzA7Ujs7NDs0OzQ7Tjs7Ozs7CiswN0M1O05LTyBESUdJVCBGSVZFO05kOzA7Ujs7NTs1OzU7Tjs7Ozs7CiswN0M2O05LTyBESUdJVCBTSVg7TmQ7MDtSOzs2OzY7NjtOOzs7OzsKKzA3Qzc7TktPIERJR0lUIFNFVkVOO05kOzA7Ujs7Nzs3Ozc7Tjs7Ozs7CiswN0M4O05LTyBESUdJVCBFSUdIVDtOZDswO1I7Ozg7ODs4O047Ozs7OworMDdDOTtOS08gRElHSVQgTklORTtOZDswO1I7Ozk7OTs5O047Ozs7OworMDdDQTtOS08gTEVUVEVSIEE7TG87MDtSOzs7OztOOzs7OzsKKzA3Q0I7TktPIExFVFRFUiBFRTtMbzswO1I7Ozs7O047Ozs7OworMDdDQztOS08gTEVUVEVSIEk7TG87MDtSOzs7OztOOzs7OzsKKzA3Q0Q7TktPIExFVFRFUiBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0NFO05LTyBMRVRURVIgVTtMbzswO1I7Ozs7O047Ozs7OworMDdDRjtOS08gTEVUVEVSIE9PO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0QwO05LTyBMRVRURVIgTztMbzswO1I7Ozs7O047Ozs7OworMDdEMTtOS08gTEVUVEVSIERBR0JBU0lOTkE7TG87MDtSOzs7OztOOzs7OzsKKzA3RDI7TktPIExFVFRFUiBOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0QzO05LTyBMRVRURVIgQkE7TG87MDtSOzs7OztOOzs7OzsKKzA3RDQ7TktPIExFVFRFUiBQQTtMbzswO1I7Ozs7O047Ozs7OworMDdENTtOS08gTEVUVEVSIFRBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0Q2O05LTyBMRVRURVIgSkE7TG87MDtSOzs7OztOOzs7OzsKKzA3RDc7TktPIExFVFRFUiBDSEE7TG87MDtSOzs7OztOOzs7OzsKKzA3RDg7TktPIExFVFRFUiBEQTtMbzswO1I7Ozs7O047Ozs7OworMDdEOTtOS08gTEVUVEVSIFJBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0RBO05LTyBMRVRURVIgUlJBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0RCO05LTyBMRVRURVIgU0E7TG87MDtSOzs7OztOOzs7OzsKKzA3REM7TktPIExFVFRFUiBHQkE7TG87MDtSOzs7OztOOzs7OzsKKzA3REQ7TktPIExFVFRFUiBGQTtMbzswO1I7Ozs7O047Ozs7OworMDdERTtOS08gTEVUVEVSIEtBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0RGO05LTyBMRVRURVIgTEE7TG87MDtSOzs7OztOOzs7OzsKKzA3RTA7TktPIExFVFRFUiBOQSBXT0xPU087TG87MDtSOzs7OztOOzs7OzsKKzA3RTE7TktPIExFVFRFUiBNQTtMbzswO1I7Ozs7O047Ozs7OworMDdFMjtOS08gTEVUVEVSIE5ZQTtMbzswO1I7Ozs7O047Ozs7OworMDdFMztOS08gTEVUVEVSIE5BO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0U0O05LTyBMRVRURVIgSEE7TG87MDtSOzs7OztOOzs7OzsKKzA3RTU7TktPIExFVFRFUiBXQTtMbzswO1I7Ozs7O047Ozs7OworMDdFNjtOS08gTEVUVEVSIFlBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0U3O05LTyBMRVRURVIgTllBIFdPTE9TTztMbzswO1I7Ozs7O047Ozs7OworMDdFODtOS08gTEVUVEVSIEpPTkEgSkE7TG87MDtSOzs7OztOOzs7OzsKKzA3RTk7TktPIExFVFRFUiBKT05BIENIQTtMbzswO1I7Ozs7O047Ozs7OworMDdFQTtOS08gTEVUVEVSIEpPTkEgUkE7TG87MDtSOzs7OztOOzs7OzsKKzA3RUI7TktPIENPTUJJTklORyBTSE9SVCBISUdIIFRPTkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswN0VDO05LTyBDT01CSU5JTkcgU0hPUlQgTE9XIFRPTkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswN0VEO05LTyBDT01CSU5JTkcgU0hPUlQgUklTSU5HIFRPTkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswN0VFO05LTyBDT01CSU5JTkcgTE9ORyBERVNDRU5ESU5HIFRPTkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswN0VGO05LTyBDT01CSU5JTkcgTE9ORyBISUdIIFRPTkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswN0YwO05LTyBDT01CSU5JTkcgTE9ORyBMT1cgVE9ORTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3RjE7TktPIENPTUJJTklORyBMT05HIFJJU0lORyBUT05FO01uOzIzMDtOU007Ozs7O047Ozs7OworMDdGMjtOS08gQ09NQklOSU5HIE5BU0FMSVpBVElPTiBNQVJLO01uOzIyMDtOU007Ozs7O047Ozs7OworMDdGMztOS08gQ09NQklOSU5HIERPVUJMRSBET1QgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswN0Y0O05LTyBISUdIIFRPTkUgQVBPU1RST1BIRTtMbTswO1I7Ozs7O047Ozs7OworMDdGNTtOS08gTE9XIFRPTkUgQVBPU1RST1BIRTtMbTswO1I7Ozs7O047Ozs7OworMDdGNjtOS08gU1lNQk9MIE9PIERFTk5FTjtTbzswO09OOzs7OztOOzs7OzsKKzA3Rjc7TktPIFNZTUJPTCBHQkFLVVJVTkVOO1BvOzA7T047Ozs7O047Ozs7OworMDdGODtOS08gQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswN0Y5O05LTyBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDdGQTtOS08gTEFKQU5ZQUxBTjtMbTswO1I7Ozs7O047Ozs7OworMDkwMTtERVZBTkFHQVJJIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMDkwMjtERVZBTkFHQVJJIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMDkwMztERVZBTkFHQVJJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDkwNDtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA1O0RFVkFOQUdBUkkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MDY7REVWQU5BR0FSSSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MDc7REVWQU5BR0FSSSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMDkwODtERVZBTkFHQVJJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMDkwOTtERVZBTkFHQVJJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBBO0RFVkFOQUdBUkkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBCO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMDkwQztERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzA5MEQ7REVWQU5BR0FSSSBMRVRURVIgQ0FORFJBIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEU7REVWQU5BR0FSSSBMRVRURVIgU0hPUlQgRTtMbzswO0w7Ozs7O047Ozs7OworMDkwRjtERVZBTkFHQVJJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEwO0RFVkFOQUdBUkkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTExO0RFVkFOQUdBUkkgTEVUVEVSIENBTkRSQSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEyO0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTM7REVWQU5BR0FSSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMDkxNDtERVZBTkFHQVJJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMDkxNTtERVZBTkFHQVJJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMDkxNjtERVZBTkFHQVJJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MTc7REVWQU5BR0FSSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MTg7REVWQU5BR0FSSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE5O0RFVkFOQUdBUkkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMDkxQTtERVZBTkFHQVJJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMDkxQjtERVZBTkFHQVJJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUM7REVWQU5BR0FSSSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUQ7REVWQU5BR0FSSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFFO0RFVkFOQUdBUkkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRjtERVZBTkFHQVJJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjA7REVWQU5BR0FSSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMTtERVZBTkFHQVJJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjI7REVWQU5BR0FSSSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMztERVZBTkFHQVJJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjQ7REVWQU5BR0FSSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjU7REVWQU5BR0FSSSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI2O0RFVkFOQUdBUkkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI3O0RFVkFOQUdBUkkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyODtERVZBTkFHQVJJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMDkyOTtERVZBTkFHQVJJIExFVFRFUiBOTk5BO0xvOzA7TDswOTI4IDA5M0M7Ozs7Tjs7Ozs7CiswOTJBO0RFVkFOQUdBUkkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJCO0RFVkFOQUdBUkkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyQztERVZBTkFHQVJJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRDtERVZBTkFHQVJJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkU7REVWQU5BR0FSSSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkY7REVWQU5BR0FSSSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzA7REVWQU5BR0FSSSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzE7REVWQU5BR0FSSSBMRVRURVIgUlJBO0xvOzA7TDswOTMwIDA5M0M7Ozs7Tjs7Ozs7CiswOTMyO0RFVkFOQUdBUkkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMzO0RFVkFOQUdBUkkgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNDtERVZBTkFHQVJJIExFVFRFUiBMTExBO0xvOzA7TDswOTMzIDA5M0M7Ozs7Tjs7Ozs7CiswOTM1O0RFVkFOQUdBUkkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM2O0RFVkFOQUdBUkkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNztERVZBTkFHQVJJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzg7REVWQU5BR0FSSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzk7REVWQU5BR0FSSSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5M0M7REVWQU5BR0FSSSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzA5M0Q7REVWQU5BR0FSSSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNFO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMDkzRjtERVZBTkFHQVJJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MDtERVZBTkFHQVJJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5NDE7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMDk0MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMDk0MztERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDQ7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007Ozs7O047Ozs7OworMDk0NTtERVZBTkFHQVJJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47MDtOU007Ozs7O047Ozs7OworMDk0NjtERVZBTkFHQVJJIFZPV0VMIFNJR04gU0hPUlQgRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ3O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDg7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDk7REVWQU5BR0FSSSBWT1dFTCBTSUdOIENBTkRSQSBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRBO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBTSE9SVCBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRCO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRDO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMDk0RDtERVZBTkFHQVJJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzA5NTA7REVWQU5BR0FSSSBPTTtMbzswO0w7Ozs7O047Ozs7OworMDk1MTtERVZBTkFHQVJJIFNUUkVTUyBTSUdOIFVEQVRUQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA5NTI7REVWQU5BR0FSSSBTVFJFU1MgU0lHTiBBTlVEQVRUQTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA5NTM7REVWQU5BR0FSSSBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswOTU0O0RFVkFOQUdBUkkgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDk1ODtERVZBTkFHQVJJIExFVFRFUiBRQTtMbzswO0w7MDkxNSAwOTNDOzs7O047Ozs7OworMDk1OTtERVZBTkFHQVJJIExFVFRFUiBLSEhBO0xvOzA7TDswOTE2IDA5M0M7Ozs7Tjs7Ozs7CiswOTVBO0RFVkFOQUdBUkkgTEVUVEVSIEdISEE7TG87MDtMOzA5MTcgMDkzQzs7OztOOzs7OzsKKzA5NUI7REVWQU5BR0FSSSBMRVRURVIgWkE7TG87MDtMOzA5MUMgMDkzQzs7OztOOzs7OzsKKzA5NUM7REVWQU5BR0FSSSBMRVRURVIgRERESEE7TG87MDtMOzA5MjEgMDkzQzs7OztOOzs7OzsKKzA5NUQ7REVWQU5BR0FSSSBMRVRURVIgUkhBO0xvOzA7TDswOTIyIDA5M0M7Ozs7Tjs7Ozs7CiswOTVFO0RFVkFOQUdBUkkgTEVUVEVSIEZBO0xvOzA7TDswOTJCIDA5M0M7Ozs7Tjs7Ozs7CiswOTVGO0RFVkFOQUdBUkkgTEVUVEVSIFlZQTtMbzswO0w7MDkyRiAwOTNDOzs7O047Ozs7OworMDk2MDtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTYxO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzA5NjI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTYzO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NjQ7REVWQU5BR0FSSSBEQU5EQTtQbzswO0w7Ozs7O047Ozs7OworMDk2NTtERVZBTkFHQVJJIERPVUJMRSBEQU5EQTtQbzswO0w7Ozs7O047Ozs7OworMDk2NjtERVZBTkFHQVJJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzA5Njc7REVWQU5BR0FSSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzA5Njg7REVWQU5BR0FSSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzA5Njk7REVWQU5BR0FSSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMDk2QTtERVZBTkFHQVJJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzA5NkI7REVWQU5BR0FSSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswOTZDO0RFVkFOQUdBUkkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswOTZEO0RFVkFOQUdBUkkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzA5NkU7REVWQU5BR0FSSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMDk2RjtERVZBTkFHQVJJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzA5NzA7REVWQU5BR0FSSSBBQkJSRVZJQVRJT04gU0lHTjtQbzswO0w7Ozs7O047Ozs7OworMDk3QjtERVZBTkFHQVJJIExFVFRFUiBHR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5N0M7REVWQU5BR0FSSSBMRVRURVIgSkpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTdEO0RFVkFOQUdBUkkgTEVUVEVSIEdMT1RUQUwgU1RPUDtMbzswO0w7Ozs7O047Ozs7OworMDk3RTtERVZBTkFHQVJJIExFVFRFUiBERERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTdGO0RFVkFOQUdBUkkgTEVUVEVSIEJCQTtMbzswO0w7Ozs7O047Ozs7OworMDk4MTtCRU5HQUxJIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMDk4MjtCRU5HQUxJIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODM7QkVOR0FMSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODU7QkVOR0FMSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NjtCRU5HQUxJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NztCRU5HQUxJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg4O0JFTkdBTEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg5O0JFTkdBTEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEE7QkVOR0FMSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEI7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThDO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMDk4RjtCRU5HQUxJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkwO0JFTkdBTEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkzO0JFTkdBTEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5OTQ7QkVOR0FMSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTU7QkVOR0FMSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTY7QkVOR0FMSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk3O0JFTkdBTEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk4O0JFTkdBTEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5OTtCRU5HQUxJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUE7QkVOR0FMSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUI7QkVOR0FMSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlDO0JFTkdBTEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlEO0JFTkdBTEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RTtCRU5HQUxJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUY7QkVOR0FMSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEwO0JFTkdBTEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTE7QkVOR0FMSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEyO0JFTkdBTEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTM7QkVOR0FMSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE0O0JFTkdBTEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE1O0JFTkdBTEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNjtCRU5HQUxJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNztCRU5HQUxJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTg7QkVOR0FMSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUE7QkVOR0FMSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUI7QkVOR0FMSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFDO0JFTkdBTEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFEO0JFTkdBTEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRTtCRU5HQUxJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRjtCRU5HQUxJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMDlCMDtCRU5HQUxJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMDlCMjtCRU5HQUxJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNjtCRU5HQUxJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjc7QkVOR0FMSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI4O0JFTkdBTEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI5O0JFTkdBTEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUJDO0JFTkdBTEkgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswOUJEO0JFTkdBTEkgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMDlCRTtCRU5HQUxJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzA5QkY7QkVOR0FMSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzA7QkVOR0FMSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUMxO0JFTkdBTEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzI7QkVOR0FMSSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzM7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUM0O0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5Qzc7QkVOR0FMSSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzA5Qzg7QkVOR0FMSSBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUNCO0JFTkdBTEkgVk9XRUwgU0lHTiBPO01jOzA7TDswOUM3IDA5QkU7Ozs7Tjs7Ozs7CiswOUNDO0JFTkdBTEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7MDlDNyAwOUQ3Ozs7O047Ozs7OworMDlDRDtCRU5HQUxJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzA5Q0U7QkVOR0FMSSBMRVRURVIgS0hBTkRBIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUQ3O0JFTkdBTEkgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzA5REM7QkVOR0FMSSBMRVRURVIgUlJBO0xvOzA7TDswOUExIDA5QkM7Ozs7Tjs7Ozs7CiswOUREO0JFTkdBTEkgTEVUVEVSIFJIQTtMbzswO0w7MDlBMiAwOUJDOzs7O047Ozs7OworMDlERjtCRU5HQUxJIExFVFRFUiBZWUE7TG87MDtMOzA5QUYgMDlCQzs7OztOOzs7OzsKKzA5RTA7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMDlFMTtCRU5HQUxJIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUUyO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMDlFMztCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUU2O0JFTkdBTEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDlFNztCRU5HQUxJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDlFODtCRU5HQUxJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDlFOTtCRU5HQUxJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOUVBO0JFTkdBTEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDlFQjtCRU5HQUxJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5RUM7QkVOR0FMSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5RUQ7QkVOR0FMSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDlFRTtCRU5HQUxJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOUVGO0JFTkdBTEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDlGMDtCRU5HQUxJIExFVFRFUiBSQSBXSVRIIE1JRERMRSBESUFHT05BTDtMbzswO0w7Ozs7O047O0Fzc2FtZXNlOzs7CiswOUYxO0JFTkdBTEkgTEVUVEVSIFJBIFdJVEggTE9XRVIgRElBR09OQUw7TG87MDtMOzs7OztOO0JFTkdBTEkgTEVUVEVSIFZBIFdJVEggTE9XRVIgRElBR09OQUw7QXNzYW1lc2U7OzsKKzA5RjI7QkVOR0FMSSBSVVBFRSBNQVJLO1NjOzA7RVQ7Ozs7O047Ozs7OworMDlGMztCRU5HQUxJIFJVUEVFIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswOUY0O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIE9ORTtObzswO0w7Ozs7MTtOOzs7OzsKKzA5RjU7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgVFdPO05vOzA7TDs7OzsyO047Ozs7OworMDlGNjtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBUSFJFRTtObzswO0w7Ozs7MztOOzs7OzsKKzA5Rjc7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgRk9VUjtObzswO0w7Ozs7NDtOOzs7OzsKKzA5Rjg7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgT05FIExFU1MgVEhBTiBUSEUgREVOT01JTkFUT1I7Tm87MDtMOzs7OztOOzs7OzsKKzA5Rjk7QkVOR0FMSSBDVVJSRU5DWSBERU5PTUlOQVRPUiBTSVhURUVOO05vOzA7TDs7OzsxNjtOOzs7OzsKKzA5RkE7QkVOR0FMSSBJU1NIQVI7U287MDtMOzs7OztOOzs7OzsKKzBBMDE7R1VSTVVLSEkgU0lHTiBBREFLIEJJTkRJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBMDI7R1VSTVVLSEkgU0lHTiBCSU5ESTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTAzO0dVUk1VS0hJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEEwNTtHVVJNVUtISSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEEwNjtHVVJNVUtISSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMDc7R1VSTVVLSEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBBMDg7R1VSTVVLSEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA5O0dVUk1VS0hJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTBBO0dVUk1VS0hJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEEwRjtHVVJNVUtISSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTA7R1VSTVVLSEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTEzO0dVUk1VS0hJIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEExNDtHVVJNVUtISSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTU7R1VSTVVLSEkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE2O0dVUk1VS0hJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTc7R1VSTVVLSEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE4O0dVUk1VS0hJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTk7R1VSTVVLSEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEExQTtHVVJNVUtISSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMUI7R1VSTVVLSEkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEExQztHVVJNVUtISSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUQ7R1VSTVVLSEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEExRTtHVVJNVUtISSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFGO0dVUk1VS0hJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjA7R1VSTVVLSEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjE7R1VSTVVLSEkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMjtHVVJNVUtISSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMztHVVJNVUtISSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI0O0dVUk1VS0hJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNTtHVVJNVUtISSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI2O0dVUk1VS0hJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNztHVVJNVUtISSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI4O0dVUk1VS0hJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQTtHVVJNVUtISSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkI7R1VSTVVLSEkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQztHVVJNVUtISSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkQ7R1VSTVVLSEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRTtHVVJNVUtISSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkY7R1VSTVVLSEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMwO0dVUk1VS0hJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMjtHVVJNVUtISSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzM7R1VSTVVLSEkgTEVUVEVSIExMQTtMbzswO0w7MEEzMiAwQTNDOzs7O047Ozs7OworMEEzNTtHVVJNVUtISSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzY7R1VSTVVLSEkgTEVUVEVSIFNIQTtMbzswO0w7MEEzOCAwQTNDOzs7O047Ozs7OworMEEzODtHVVJNVUtISSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMzk7R1VSTVVLSEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTNDO0dVUk1VS0hJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMEEzRTtHVVJNVUtISSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTNGO0dVUk1VS0hJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEE0MDtHVVJNVUtISSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQxO0dVUk1VS0hJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTQyO0dVUk1VS0hJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEE0NztHVVJNVUtISSBWT1dFTCBTSUdOIEVFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNDg7R1VSTVVLSEkgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTRCO0dVUk1VS0hJIFZPV0VMIFNJR04gT087TW47MDtOU007Ozs7O047Ozs7OworMEE0QztHVVJNVUtISSBWT1dFTCBTSUdOIEFVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNEQ7R1VSTVVLSEkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEE1OTtHVVJNVUtISSBMRVRURVIgS0hIQTtMbzswO0w7MEExNiAwQTNDOzs7O047Ozs7OworMEE1QTtHVVJNVUtISSBMRVRURVIgR0hIQTtMbzswO0w7MEExNyAwQTNDOzs7O047Ozs7OworMEE1QjtHVVJNVUtISSBMRVRURVIgWkE7TG87MDtMOzBBMUMgMEEzQzs7OztOOzs7OzsKKzBBNUM7R1VSTVVLSEkgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEE1RTtHVVJNVUtISSBMRVRURVIgRkE7TG87MDtMOzBBMkIgMEEzQzs7OztOOzs7OzsKKzBBNjY7R1VSTVVLSEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEE2NztHVVJNVUtISSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBNjg7R1VSTVVLSEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQTY5O0dVUk1VS0hJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQTZBO0dVUk1VS0hJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBNkI7R1VSTVVLSEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEE2QztHVVJNVUtISSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBNkQ7R1VSTVVLSEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBNkU7R1VSTVVLSEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBNkY7R1VSTVVLSEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEE3MDtHVVJNVUtISSBUSVBQSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTcxO0dVUk1VS0hJIEFEREFLO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNzI7R1VSTVVLSEkgSVJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTczO0dVUk1VS0hJIFVSQTtMbzswO0w7Ozs7O047Ozs7OworMEE3NDtHVVJNVUtISSBFSyBPTktBUjtMbzswO0w7Ozs7O047Ozs7OworMEE4MTtHVUpBUkFUSSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBODI7R1VKQVJBVEkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTgzO0dVSkFSQVRJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEE4NTtHVUpBUkFUSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEE4NjtHVUpBUkFUSSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBBODc7R1VKQVJBVEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBBODg7R1VKQVJBVEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg5O0dVSkFSQVRJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThBO0dVSkFSQVRJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEE4QjtHVUpBUkFUSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThDO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBBOEQ7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEY7R1VKQVJBVEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOTA7R1VKQVJBVEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkxO0dVSkFSQVRJIFZPV0VMIENBTkRSQSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkzO0dVSkFSQVRJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk0O0dVSkFSQVRJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEE5NTtHVUpBUkFUSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTY7R1VKQVJBVEkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NztHVUpBUkFUSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTg7R1VKQVJBVEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5OTtHVUpBUkFUSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlBO0dVSkFSQVRJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEE5QjtHVUpBUkFUSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlDO0dVSkFSQVRJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RDtHVUpBUkFUSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlFO0dVSkFSQVRJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUY7R1VKQVJBVEkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMDtHVUpBUkFUSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMTtHVUpBUkFUSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEyO0dVSkFSQVRJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEzO0dVSkFSQVRJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTQ7R1VKQVJBVEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE1O0dVSkFSQVRJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTY7R1VKQVJBVEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE3O0dVSkFSQVRJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTg7R1VKQVJBVEkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFBO0dVSkFSQVRJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEFBQjtHVUpBUkFUSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFDO0dVSkFSQVRJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRDtHVUpBUkFUSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFFO0dVSkFSQVRJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRjtHVUpBUkFUSSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjA7R1VKQVJBVEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIyO0dVSkFSQVRJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMztHVUpBUkFUSSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI1O0dVSkFSQVRJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEFCNjtHVUpBUkFUSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI3O0dVSkFSQVRJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjg7R1VKQVJBVEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI5O0dVSkFSQVRJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCQztHVUpBUkFUSSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzBBQkQ7R1VKQVJBVEkgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCRTtHVUpBUkFUSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUJGO0dVSkFSQVRJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEFDMDtHVUpBUkFUSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUMxO0dVSkFSQVRJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUMyO0dVSkFSQVRJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEFDMztHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM0O0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM1O0dVSkFSQVRJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47MDtOU007Ozs7O047Ozs7OworMEFDNztHVUpBUkFUSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMEFDODtHVUpBUkFUSSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzk7R1VKQVJBVEkgVk9XRUwgU0lHTiBDQU5EUkEgTztNYzswO0w7Ozs7O047Ozs7OworMEFDQjtHVUpBUkFUSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0M7R1VKQVJBVEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMEFDRDtHVUpBUkFUSSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQUQwO0dVSkFSQVRJIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUwO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUxO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUyO0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBRTM7R1VKQVJBVEkgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBRTY7R1VKQVJBVEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEFFNztHVUpBUkFUSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBRTg7R1VKQVJBVEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQUU5O0dVSkFSQVRJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQUVBO0dVSkFSQVRJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBRUI7R1VKQVJBVEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEFFQztHVUpBUkFUSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBRUQ7R1VKQVJBVEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBRUU7R1VKQVJBVEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBRUY7R1VKQVJBVEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEFGMTtHVUpBUkFUSSBSVVBFRSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMEIwMTtPUklZQSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCMDI7T1JJWUEgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEIwMztPUklZQSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBCMDU7T1JJWUEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMDY7T1JJWUEgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA3O09SSVlBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA4O09SSVlBIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEIwOTtPUklZQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEIwQTtPUklZQSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBCMEI7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEIwQztPUklZQSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBGO09SSVlBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjEwO09SSVlBIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEIxMztPUklZQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEIxNDtPUklZQSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBCMTU7T1JJWUEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE2O09SSVlBIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMTc7T1JJWUEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE4O09SSVlBIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMTk7T1JJWUEgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQTtPUklZQSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMUI7T1JJWUEgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQztPUklZQSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUQ7T1JJWUEgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRTtPUklZQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFGO09SSVlBIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjA7T1JJWUEgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjE7T1JJWUEgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMjtPUklZQSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMztPUklZQSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI0O09SSVlBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNTtPUklZQSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI2O09SSVlBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNztPUklZQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI4O09SSVlBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQTtPUklZQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkI7T1JJWUEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQztPUklZQSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkQ7T1JJWUEgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRTtPUklZQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkY7T1JJWUEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMwO09SSVlBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMjtPUklZQSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzM7T1JJWUEgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNTtPUklZQSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzY7T1JJWUEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNztPUklZQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM4O09SSVlBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEIzOTtPUklZQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0M7T1JJWUEgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQjNEO09SSVlBIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0U7T1JJWUEgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEIzRjtPUklZQSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEI0MDtPUklZQSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQxO09SSVlBIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQyO09SSVlBIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEI0MztPUklZQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQ3O09SSVlBIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEI0ODtPUklZQSBWT1dFTCBTSUdOIEFJO01jOzA7TDswQjQ3IDBCNTY7Ozs7Tjs7Ozs7CiswQjRCO09SSVlBIFZPV0VMIFNJR04gTztNYzswO0w7MEI0NyAwQjNFOzs7O047Ozs7OworMEI0QztPUklZQSBWT1dFTCBTSUdOIEFVO01jOzA7TDswQjQ3IDBCNTc7Ozs7Tjs7Ozs7CiswQjREO09SSVlBIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBCNTY7T1JJWUEgQUkgTEVOR1RIIE1BUks7TW47MDtOU007Ozs7O047Ozs7OworMEI1NztPUklZQSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEI1QztPUklZQSBMRVRURVIgUlJBO0xvOzA7TDswQjIxIDBCM0M7Ozs7Tjs7Ozs7CiswQjVEO09SSVlBIExFVFRFUiBSSEE7TG87MDtMOzBCMjIgMEIzQzs7OztOOzs7OzsKKzBCNUY7T1JJWUEgTEVUVEVSIFlZQTtMbzswO0w7Ozs7O047Ozs7OworMEI2MDtPUklZQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEI2MTtPUklZQSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEI2NjtPUklZQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQjY3O09SSVlBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEI2ODtPUklZQSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBCNjk7T1JJWUEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBCNkE7T1JJWUEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEI2QjtPUklZQSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQjZDO09SSVlBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEI2RDtPUklZQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEI2RTtPUklZQSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEI2RjtPUklZQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQjcwO09SSVlBIElTU0hBUjtTbzswO0w7Ozs7O047Ozs7OworMEI3MTtPUklZQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzBCODI7VEFNSUwgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjgzO1RBTUlMIFNJR04gVklTQVJHQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NTtUQU1JTCBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NjtUQU1JTCBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBCODc7VEFNSUwgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBCODg7VEFNSUwgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg5O1RBTUlMIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhBO1RBTUlMIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEI4RTtUQU1JTCBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEI4RjtUQU1JTCBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBCOTA7VEFNSUwgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkyO1RBTUlMIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkzO1RBTUlMIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEI5NDtUQU1JTCBMRVRURVIgQVU7TG87MDtMOzBCOTIgMEJENzs7OztOOzs7OzsKKzBCOTU7VEFNSUwgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjk5O1RBTUlMIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOUE7VEFNSUwgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlDO1RBTUlMIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEI5RTtUQU1JTCBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlGO1RBTUlMIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTM7VEFNSUwgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEJBNDtUQU1JTCBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTg7VEFNSUwgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE5O1RBTUlMIExFVFRFUiBOTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFBO1RBTUlMIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEJBRTtUQU1JTCBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUY7VEFNSUwgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIwO1RBTUlMIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMTtUQU1JTCBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIyO1RBTUlMIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMztUQU1JTCBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI0O1RBTUlMIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI1O1RBTUlMIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNjtUQU1JTCBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI3O1RBTUlMIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCQjg7VEFNSUwgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI5O1RBTUlMIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEJCRTtUQU1JTCBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkJGO1RBTUlMIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEJDMDtUQU1JTCBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCQzE7VEFNSUwgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkMyO1RBTUlMIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzY7VEFNSUwgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM3O1RBTUlMIFZPV0VMIFNJR04gRUU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzg7VEFNSUwgVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMEJDQTtUQU1JTCBWT1dFTCBTSUdOIE87TWM7MDtMOzBCQzYgMEJCRTs7OztOOzs7OzsKKzBCQ0I7VEFNSUwgVk9XRUwgU0lHTiBPTztNYzswO0w7MEJDNyAwQkJFOzs7O047Ozs7OworMEJDQztUQU1JTCBWT1dFTCBTSUdOIEFVO01jOzA7TDswQkM2IDBCRDc7Ozs7Tjs7Ozs7CiswQkNEO1RBTUlMIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBCRDc7VEFNSUwgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBCRTY7VEFNSUwgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEJFNztUQU1JTCBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBCRTg7VEFNSUwgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQkU5O1RBTUlMIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQkVBO1RBTUlMIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBCRUI7VEFNSUwgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEJFQztUQU1JTCBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBCRUQ7VEFNSUwgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBCRUU7VEFNSUwgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBCRUY7VEFNSUwgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEJGMDtUQU1JTCBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzBCRjE7VEFNSUwgTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7TDs7OzsxMDA7Tjs7Ozs7CiswQkYyO1RBTUlMIE5VTUJFUiBPTkUgVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDA7Tjs7Ozs7CiswQkYzO1RBTUlMIERBWSBTSUdOO1NvOzA7T047Ozs7O047O05hYWw7OzsKKzBCRjQ7VEFNSUwgTU9OVEggU0lHTjtTbzswO09OOzs7OztOOztNYWF0aGFtOzs7CiswQkY1O1RBTUlMIFlFQVIgU0lHTjtTbzswO09OOzs7OztOOztWYXJ1ZGFtOzs7CiswQkY2O1RBTUlMIERFQklUIFNJR047U287MDtPTjs7Ozs7Tjs7UGF0cnU7OzsKKzBCRjc7VEFNSUwgQ1JFRElUIFNJR047U287MDtPTjs7Ozs7Tjs7VmFyYXZ1Ozs7CiswQkY4O1RBTUlMIEFTIEFCT1ZFIFNJR047U287MDtPTjs7Ozs7Tjs7TWVycGFkaTs7OworMEJGOTtUQU1JTCBSVVBFRSBTSUdOO1NjOzA7RVQ7Ozs7O047O1J1cGFpOzs7CiswQkZBO1RBTUlMIE5VTUJFUiBTSUdOO1NvOzA7T047Ozs7O047O0Vubjs7OworMEMwMTtURUxVR1UgU0lHTiBDQU5EUkFCSU5EVTtNYzswO0w7Ozs7O047Ozs7OworMEMwMjtURUxVR1UgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEMwMztURUxVR1UgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzA1O1RFTFVHVSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEMwNjtURUxVR1UgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA3O1RFTFVHVSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEMwODtURUxVR1UgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA5O1RFTFVHVSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEMwQTtURUxVR1UgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBCO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBDO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBFO1RFTFVHVSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEMwRjtURUxVR1UgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEwO1RFTFVHVSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMTI7VEVMVUdVIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEzO1RFTFVHVSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDMTQ7VEVMVUdVIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEMxNTtURUxVR1UgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE2O1RFTFVHVSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE3O1RFTFVHVSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTg7VEVMVUdVIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTk7VEVMVUdVIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMUE7VEVMVUdVIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQjtURUxVR1UgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQztURUxVR1UgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFEO1RFTFVHVSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFFO1RFTFVHVSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFGO1RFTFVHVSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIwO1RFTFVHVSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMTtURUxVR1UgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMjtURUxVR1UgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjM7VEVMVUdVIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjQ7VEVMVUdVIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNTtURUxVR1UgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNjtURUxVR1UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI3O1RFTFVHVSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI4O1RFTFVHVSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkE7VEVMVUdVIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQjtURUxVR1UgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQztURUxVR1UgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJEO1RFTFVHVSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJFO1RFTFVHVSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkY7VEVMVUdVIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMDtURUxVR1UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMxO1RFTFVHVSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMyO1RFTFVHVSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzM7VEVMVUdVIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzU7VEVMVUdVIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNjtURUxVR1UgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNztURUxVR1UgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEMzODtURUxVR1UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM5O1RFTFVHVSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDM0U7VEVMVUdVIFZPV0VMIFNJR04gQUE7TW47MDtOU007Ozs7O047Ozs7OworMEMzRjtURUxVR1UgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNDA7VEVMVUdVIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMEM0MTtURUxVR1UgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQyO1RFTFVHVSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQzO1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMEM0NDtURUxVR1UgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ2O1RFTFVHVSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMEM0NztURUxVR1UgVk9XRUwgU0lHTiBFRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQ4O1RFTFVHVSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzBDNDYgMEM1Njs7OztOOzs7OzsKKzBDNEE7VEVMVUdVIFZPV0VMIFNJR04gTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzRCO1RFTFVHVSBWT1dFTCBTSUdOIE9PO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNEM7VEVMVUdVIFZPV0VMIFNJR04gQVU7TW47MDtOU007Ozs7O047Ozs7OworMEM0RDtURUxVR1UgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEM1NTtURUxVR1UgTEVOR1RIIE1BUks7TW47ODQ7TlNNOzs7OztOOzs7OzsKKzBDNTY7VEVMVUdVIEFJIExFTkdUSCBNQVJLO01uOzkxO05TTTs7Ozs7Tjs7Ozs7CiswQzYwO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEM2MTtURUxVR1UgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBDNjY7VEVMVUdVIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBDNjc7VEVMVUdVIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEM2ODtURUxVR1UgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQzY5O1RFTFVHVSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEM2QTtURUxVR1UgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEM2QjtURUxVR1UgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEM2QztURUxVR1UgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQzZEO1RFTFVHVSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEM2RTtURUxVR1UgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBDNkY7VEVMVUdVIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBDODI7S0FOTkFEQSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzgzO0tBTk5BREEgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzg1O0tBTk5BREEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBDODY7S0FOTkFEQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBDODc7S0FOTkFEQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEM4ODtLQU5OQURBIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEM4OTtLQU5OQURBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhBO0tBTk5BREEgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhCO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEM4QztLQU5OQURBIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBDOEU7S0FOTkFEQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEM4RjtLQU5OQURBIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEM5MDtLQU5OQURBIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEM5MjtLQU5OQURBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkzO0tBTk5BREEgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk0O0tBTk5BREEgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk1O0tBTk5BREEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk2O0tBTk5BREEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5NztLQU5OQURBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEM5ODtLQU5OQURBIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOTk7S0FOTkFEQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlBO0tBTk5BREEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlCO0tBTk5BREEgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QztLQU5OQURBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RDtLQU5OQURBIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUU7S0FOTkFEQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlGO0tBTk5BREEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMENBMDtLQU5OQURBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0ExO0tBTk5BREEgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMENBMjtLQU5OQURBIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EzO0tBTk5BREEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMENBNDtLQU5OQURBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMENBNTtLQU5OQURBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTY7S0FOTkFEQSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTc7S0FOTkFEQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E4O0tBTk5BREEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FBO0tBTk5BREEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FCO0tBTk5BREEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMENBQztLQU5OQURBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMENBRDtLQU5OQURBIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUU7S0FOTkFEQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUY7S0FOTkFEQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjA7S0FOTkFEQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjE7S0FOTkFEQSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IyO0tBTk5BREEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IzO0tBTk5BREEgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMENCNTtLQU5OQURBIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMENCNjtLQU5OQURBIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjc7S0FOTkFEQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I4O0tBTk5BREEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I5O0tBTk5BREEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0JDO0tBTk5BREEgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQ0JEO0tBTk5BREEgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMENCRTtLQU5OQURBIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBDQkY7S0FOTkFEQSBWT1dFTCBTSUdOIEk7TW47MDtMOzs7OztOOzs7OzsKKzBDQzA7S0FOTkFEQSBWT1dFTCBTSUdOIElJO01jOzA7TDswQ0JGIDBDRDU7Ozs7Tjs7Ozs7CiswQ0MxO0tBTk5BREEgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0MyO0tBTk5BREEgVk9XRUwgU0lHTiBVVTtNYzswO0w7Ozs7O047Ozs7OworMENDMztLQU5OQURBIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M0O0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M2O0tBTk5BREEgVk9XRUwgU0lHTiBFO01uOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M3O0tBTk5BREEgVk9XRUwgU0lHTiBFRTtNYzswO0w7MENDNiAwQ0Q1Ozs7O047Ozs7OworMENDODtLQU5OQURBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBDQzYgMENENjs7OztOOzs7OzsKKzBDQ0E7S0FOTkFEQSBWT1dFTCBTSUdOIE87TWM7MDtMOzBDQzYgMENDMjs7OztOOzs7OzsKKzBDQ0I7S0FOTkFEQSBWT1dFTCBTSUdOIE9PO01jOzA7TDswQ0NBIDBDRDU7Ozs7Tjs7Ozs7CiswQ0NDO0tBTk5BREEgVk9XRUwgU0lHTiBBVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQ0NEO0tBTk5BREEgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMENENTtLQU5OQURBIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0Q2O0tBTk5BREEgQUkgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBDREU7S0FOTkFEQSBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzBDRTA7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMENFMTtLQU5OQURBIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0UyO0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMENFMztLQU5OQURBIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQ0U2O0tBTk5BREEgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMENFNztLQU5OQURBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMENFODtLQU5OQURBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMENFOTtLQU5OQURBIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQ0VBO0tBTk5BREEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMENFQjtLQU5OQURBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBDRUM7S0FOTkFEQSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBDRUQ7S0FOTkFEQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMENFRTtLQU5OQURBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQ0VGO0tBTk5BREEgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMENGMTtLQU5OQURBIFNJR04gSklIVkFNVUxJWUE7U287MDtPTjs7Ozs7Tjs7Ozs7CiswQ0YyO0tBTk5BREEgU0lHTiBVUEFESE1BTklZQTtTbzswO09OOzs7OztOOzs7OzsKKzBEMDI7TUFMQVlBTEFNIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBEMDM7TUFMQVlBTEFNIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEQwNTtNQUxBWUFMQU0gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMDY7TUFMQVlBTEFNIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEQwNztNQUxBWUFMQU0gTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBEMDg7TUFMQVlBTEFNIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEQwOTtNQUxBWUFMQU0gTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEE7TUFMQVlBTEFNIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEQwQjtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEQwQztNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEQwRTtNQUxBWUFMQU0gTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEY7TUFMQVlBTEFNIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEQxMDtNQUxBWUFMQU0gTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEyO01BTEFZQUxBTSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEQxMztNQUxBWUFMQU0gTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE0O01BTEFZQUxBTSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBEMTU7TUFMQVlBTEFNIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEQxNjtNQUxBWUFMQU0gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxNztNQUxBWUFMQU0gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE4O01BTEFZQUxBTSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE5O01BTEFZQUxBTSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFBO01BTEFZQUxBTSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMUI7TUFMQVlBTEFNIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUM7TUFMQVlBTEFNIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRDtNQUxBWUFMQU0gTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRTtNQUxBWUFMQU0gTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRjtNQUxBWUFMQU0gTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMDtNQUxBWUFMQU0gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjE7TUFMQVlBTEFNIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjI7TUFMQVlBTEFNIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIzO01BTEFZQUxBTSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI0O01BTEFZQUxBTSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjU7TUFMQVlBTEFNIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjY7TUFMQVlBTEFNIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNztNQUxBWUFMQU0gTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyODtNQUxBWUFMQU0gTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJBO01BTEFZQUxBTSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkI7TUFMQVlBTEFNIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkM7TUFMQVlBTEFNIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRDtNQUxBWUFMQU0gTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRTtNQUxBWUFMQU0gTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJGO01BTEFZQUxBTSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzA7TUFMQVlBTEFNIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMTtNQUxBWUFMQU0gTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMjtNQUxBWUFMQU0gTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMzO01BTEFZQUxBTSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM0O01BTEFZQUxBTSBMRVRURVIgTExMQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNTtNQUxBWUFMQU0gTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM2O01BTEFZQUxBTSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM3O01BTEFZQUxBTSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM4O01BTEFZQUxBTSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMzk7TUFMQVlBTEFNIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEQzRTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEQzRjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQwO01BTEFZQUxBTSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQxO01BTEFZQUxBTSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMEQ0MjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRDQzO01BTEFZQUxBTSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRDQ2O01BTEFZQUxBTSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzBENDc7TUFMQVlBTEFNIFZPV0VMIFNJR04gRUU7TWM7MDtMOzs7OztOOzs7OzsKKzBENDg7TUFMQVlBTEFNIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzBENEE7TUFMQVlBTEFNIFZPV0VMIFNJR04gTztNYzswO0w7MEQ0NiAwRDNFOzs7O047Ozs7OworMEQ0QjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBPTztNYzswO0w7MEQ0NyAwRDNFOzs7O047Ozs7OworMEQ0QztNQUxBWUFMQU0gVk9XRUwgU0lHTiBBVTtNYzswO0w7MEQ0NiAwRDU3Ozs7O047Ozs7OworMEQ0RDtNQUxBWUFMQU0gU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEQ1NztNQUxBWUFMQU0gQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBENjA7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDYxO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEQ2NjtNQUxBWUFMQU0gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEQ2NztNQUxBWUFMQU0gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRDY4O01BTEFZQUxBTSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBENjk7TUFMQVlBTEFNIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRDZBO01BTEFZQUxBTSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRDZCO01BTEFZQUxBTSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRDZDO01BTEFZQUxBTSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBENkQ7TUFMQVlBTEFNIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRDZFO01BTEFZQUxBTSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEQ2RjtNQUxBWUFMQU0gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEQ4MjtTSU5IQUxBIFNJR04gQU5VU1ZBUkFZQTtNYzswO0w7Ozs7O047Ozs7OworMEQ4MztTSU5IQUxBIFNJR04gVklTQVJHQVlBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDg1O1NJTkhBTEEgTEVUVEVSIEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4NjtTSU5IQUxBIExFVFRFUiBBQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDg3O1NJTkhBTEEgTEVUVEVSIEFFWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODg7U0lOSEFMQSBMRVRURVIgQUVFWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODk7U0lOSEFMQSBMRVRURVIgSVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhBO1NJTkhBTEEgTEVUVEVSIElJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEI7U0lOSEFMQSBMRVRURVIgVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhDO1NJTkhBTEEgTEVUVEVSIFVVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEQ7U0lOSEFMQSBMRVRURVIgSVJVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEU7U0lOSEFMQSBMRVRURVIgSVJVVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhGO1NJTkhBTEEgTEVUVEVSIElMVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkwO1NJTkhBTEEgTEVUVEVSIElMVVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MTtTSU5IQUxBIExFVFRFUiBFWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTI7U0lOSEFMQSBMRVRURVIgRUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MztTSU5IQUxBIExFVFRFUiBBSVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDk0O1NJTkhBTEEgTEVUVEVSIE9ZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5NTtTSU5IQUxBIExFVFRFUiBPT1lBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDk2O1NJTkhBTEEgTEVUVEVSIEFVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUE7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBLQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlCO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEtBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUM7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBHQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlEO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEdBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUU7U0lOSEFMQSBMRVRURVIgS0FOVEFKQSBOQUFTSUtZQVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlGO1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgR0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMDtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIENBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTE7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgQ0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMjtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEpBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTM7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBNDtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIE5BQVNJS1lBWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTU7U0lOSEFMQSBMRVRURVIgVEFBTFVKQSBTQU5ZT09HQSBOQUFLU0lLWUFZQTtMbzswO0w7Ozs7O047Ozs7OworMERBNjtTSU5IQUxBIExFVFRFUiBTQU5ZQUtBIEpBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTc7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBUVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBODtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBUVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBOTtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEREQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFBO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEREQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFCO1NJTkhBTEEgTEVUVEVSIE1VVVJESEFKQSBOQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFDO1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUQ7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFFO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIFRBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUY7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBEQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREIwO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjE7U0lOSEFMQSBMRVRURVIgREFOVEFKQSBOQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREIzO1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNDtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFBBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjU7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgUEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNjtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEJBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjc7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgQkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCODtTSU5IQUxBIExFVFRFUiBNQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI5O1NJTkhBTEEgTEVUVEVSIEFNQkEgQkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCQTtTSU5IQUxBIExFVFRFUiBZQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREJCO1NJTkhBTEEgTEVUVEVSIFJBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQkQ7U0lOSEFMQSBMRVRURVIgREFOVEFKQSBMQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREMwO1NJTkhBTEEgTEVUVEVSIFZBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzE7U0lOSEFMQSBMRVRURVIgVEFBTFVKQSBTQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREMyO1NJTkhBTEEgTEVUVEVSIE1VVVJESEFKQSBTQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREMzO1NJTkhBTEEgTEVUVEVSIERBTlRBSkEgU0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDNDtTSU5IQUxBIExFVFRFUiBIQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREM1O1NJTkhBTEEgTEVUVEVSIE1VVVJESEFKQSBMQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREM2O1NJTkhBTEEgTEVUVEVSIEZBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQ0E7U0lOSEFMQSBTSUdOIEFMLUxBS1VOQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswRENGO1NJTkhBTEEgVk9XRUwgU0lHTiBBRUxBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQwO1NJTkhBTEEgVk9XRUwgU0lHTiBLRVRUSSBBRURBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQxO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEFFREEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDI7U0lOSEFMQSBWT1dFTCBTSUdOIEtFVFRJIElTLVBJTExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBERDM7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgSVMtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMERENDtTSU5IQUxBIFZPV0VMIFNJR04gS0VUVEkgUEFBLVBJTExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBERDY7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgUEFBLVBJTExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBERDg7U0lOSEFMQSBWT1dFTCBTSUdOIEdBRVRUQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMEREOTtTSU5IQUxBIFZPV0VMIFNJR04gS09NQlVWQTtNYzswO0w7Ozs7O047Ozs7OworMEREQTtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBLT01CVVZBO01jOzA7TDswREQ5IDBEQ0E7Ozs7Tjs7Ozs7CiswRERCO1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVSBERUtBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRERDO1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBIEhBQSBBRUxBLVBJTExBO01jOzA7TDswREQ5IDBEQ0Y7Ozs7Tjs7Ozs7CiswREREO1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBIEhBQSBESUdBIEFFTEEtUElMTEE7TWM7MDtMOzBEREMgMERDQTs7OztOOzs7OzsKKzBEREU7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIEdBWUFOVUtJVFRBO01jOzA7TDswREQ5IDBEREY7Ozs7Tjs7Ozs7CiswRERGO1NJTkhBTEEgVk9XRUwgU0lHTiBHQVlBTlVLSVRUQTtNYzswO0w7Ozs7O047Ozs7OworMERGMjtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBHQUVUVEEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERjM7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgR0FZQU5VS0lUVEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERjQ7U0lOSEFMQSBQVU5DVFVBVElPTiBLVU5EREFMSVlBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswRTAxO1RIQUkgQ0hBUkFDVEVSIEtPIEtBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS08gS0FJOzs7OworMEUwMjtUSEFJIENIQVJBQ1RFUiBLSE8gS0hBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIQUk7Ozs7CiswRTAzO1RIQUkgQ0hBUkFDVEVSIEtITyBLSFVBVDtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIVUFUOzs7OworMEUwNDtUSEFJIENIQVJBQ1RFUiBLSE8gS0hXQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSFdBSTs7OzsKKzBFMDU7VEhBSSBDSEFSQUNURVIgS0hPIEtIT047TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSE9OOzs7OworMEUwNjtUSEFJIENIQVJBQ1RFUiBLSE8gUkFLSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIFJBS0hBTkc7Ozs7CiswRTA3O1RIQUkgQ0hBUkFDVEVSIE5HTyBOR1U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5HTyBOR1U7Ozs7CiswRTA4O1RIQUkgQ0hBUkFDVEVSIENITyBDSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTjs7OzsKKzBFMDk7VEhBSSBDSEFSQUNURVIgQ0hPIENISU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hJTkc7Ozs7CiswRTBBO1RIQUkgQ0hBUkFDVEVSIENITyBDSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQ0hPIENIQU5HOzs7OworMEUwQjtUSEFJIENIQVJBQ1RFUiBTTyBTTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU087Ozs7CiswRTBDO1RIQUkgQ0hBUkFDVEVSIENITyBDSE9FO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hPRTs7OzsKKzBFMEQ7VEhBSSBDSEFSQUNURVIgWU8gWUlORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUlORzs7OzsKKzBFMEU7VEhBSSBDSEFSQUNURVIgRE8gQ0hBREE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIENIQURBOzs7OworMEUwRjtUSEFJIENIQVJBQ1RFUiBUTyBQQVRBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVE8gUEFUQUs7Ozs7CiswRTEwO1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBTjs7OzsKKzBFMTE7VEhBSSBDSEFSQUNURVIgVEhPIE5BTkdNT05USE87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBOQU5HTU9OVEhPOzs7OworMEUxMjtUSEFJIENIQVJBQ1RFUiBUSE8gUEhVVEhBTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFBIVVRIQU87Ozs7CiswRTEzO1RIQUkgQ0hBUkFDVEVSIE5PIE5FTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTkVOOzs7OworMEUxNDtUSEFJIENIQVJBQ1RFUiBETyBERUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIERFSzs7OzsKKzBFMTU7VEhBSSBDSEFSQUNURVIgVE8gVEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBUQU87Ozs7CiswRTE2O1RIQUkgQ0hBUkFDVEVSIFRITyBUSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIVU5HOzs7OworMEUxNztUSEFJIENIQVJBQ1RFUiBUSE8gVEhBSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBSEFOOzs7OworMEUxODtUSEFJIENIQVJBQ1RFUiBUSE8gVEhPTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSE9ORzs7OzsKKzBFMTk7VEhBSSBDSEFSQUNURVIgTk8gTlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5PIE5VOzs7OworMEUxQTtUSEFJIENIQVJBQ1RFUiBCTyBCQUlNQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEJPIEJBSU1BSTs7OzsKKzBFMUI7VEhBSSBDSEFSQUNURVIgUE8gUExBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQTyBQTEE7Ozs7CiswRTFDO1RIQUkgQ0hBUkFDVEVSIFBITyBQSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUEhPIFBIVU5HOzs7OworMEUxRDtUSEFJIENIQVJBQ1RFUiBGTyBGQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRk8gRkE7Ozs7CiswRTFFO1RIQUkgQ0hBUkFDVEVSIFBITyBQSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhBTjs7OzsKKzBFMUY7VEhBSSBDSEFSQUNURVIgRk8gRkFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQU47Ozs7CiswRTIwO1RIQUkgQ0hBUkFDVEVSIFBITyBTQU1QSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gU0FNUEhBTzs7OzsKKzBFMjE7VEhBSSBDSEFSQUNURVIgTU8gTUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE1PIE1BOzs7OworMEUyMjtUSEFJIENIQVJBQ1RFUiBZTyBZQUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFlPIFlBSzs7OzsKKzBFMjM7VEhBSSBDSEFSQUNURVIgUk8gUlVBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSTyBSVUE7Ozs7CiswRTI0O1RIQUkgQ0hBUkFDVEVSIFJVO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSVTs7OzsKKzBFMjU7VEhBSSBDSEFSQUNURVIgTE8gTElORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTE8gTElORzs7OzsKKzBFMjY7VEhBSSBDSEFSQUNURVIgTFU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExVOzs7OworMEUyNztUSEFJIENIQVJBQ1RFUiBXTyBXQUVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBXTyBXQUVOOzs7OworMEUyODtUSEFJIENIQVJBQ1RFUiBTTyBTQUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTQUxBOzs7OworMEUyOTtUSEFJIENIQVJBQ1RFUiBTTyBSVVNJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBSVVNJOzs7OworMEUyQTtUSEFJIENIQVJBQ1RFUiBTTyBTVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNVQTs7OzsKKzBFMkI7VEhBSSBDSEFSQUNURVIgSE8gSElQO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBITyBISVA7Ozs7CiswRTJDO1RIQUkgQ0hBUkFDVEVSIExPIENIVUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBDSFVMQTs7OzsKKzBFMkQ7VEhBSSBDSEFSQUNURVIgTyBBTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE8gQU5HOzs7OworMEUyRTtUSEFJIENIQVJBQ1RFUiBITyBOT0tIVUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIE5PSyBIVUs7Ozs7CiswRTJGO1RIQUkgQ0hBUkFDVEVSIFBBSVlBTk5PSTtMbzswO0w7Ozs7O047VEhBSSBQQUkgWUFOIE5PSTtwYWl5YW4gbm9pOzs7CiswRTMwO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQTs7OzsKKzBFMzE7VEhBSSBDSEFSQUNURVIgTUFJIEhBTi1BS0FUO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBNQUkgSEFOLUFLQVQ7Ozs7CiswRTMyO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUE7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFBOzs7OworMEUzMztUSEFJIENIQVJBQ1RFUiBTQVJBIEFNO0xvOzA7TDs8Y29tcGF0PiAwRTREIDBFMzI7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBTTs7OzsKKzBFMzQ7VEhBSSBDSEFSQUNURVIgU0FSQSBJO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEk7Ozs7CiswRTM1O1RIQUkgQ0hBUkFDVEVSIFNBUkEgSUk7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSUk7Ozs7CiswRTM2O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUU7Ozs7CiswRTM3O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUVFO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVFRTtzYXJhIHV1ZTs7OworMEUzODtUSEFJIENIQVJBQ1RFUiBTQVJBIFU7TW47MTAzO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVOzs7OworMEUzOTtUSEFJIENIQVJBQ1RFUiBTQVJBIFVVO01uOzEwMztOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVVU7Ozs7CiswRTNBO1RIQUkgQ0hBUkFDVEVSIFBISU5USFU7TW47OTtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFBISU5USFU7Ozs7CiswRTNGO1RIQUkgQ1VSUkVOQ1kgU1lNQk9MIEJBSFQ7U2M7MDtFVDs7Ozs7TjtUSEFJIEJBSFQgU0lHTjs7OzsKKzBFNDA7VEhBSSBDSEFSQUNURVIgU0FSQSBFO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBFOzs7OworMEU0MTtUSEFJIENIQVJBQ1RFUiBTQVJBIEFFO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBRTs7OzsKKzBFNDI7VEhBSSBDSEFSQUNURVIgU0FSQSBPO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBPOzs7OworMEU0MztUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1VQU47TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE1BSSBNVUFOO3NhcmEgYWkgbWFpIG11YW47OzsKKzBFNDQ7VEhBSSBDSEFSQUNURVIgU0FSQSBBSSBNQUlNQUxBSTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTUFJIE1BTEFJO3NhcmEgYWkgbWFpIG1hbGFpOzs7CiswRTQ1O1RIQUkgQ0hBUkFDVEVSIExBS0tIQU5HWUFPO0xvOzA7TDs7Ozs7TjtUSEFJIExBSyBLSEFORyBZQU87bGFra2hhbmcgeWFvOzs7CiswRTQ2O1RIQUkgQ0hBUkFDVEVSIE1BSVlBTU9LO0xtOzA7TDs7Ozs7TjtUSEFJIE1BSSBZQU1PSzttYWkgeWFtb2s7OzsKKzBFNDc7VEhBSSBDSEFSQUNURVIgTUFJVEFJS0hVO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBNQUkgVEFJIEtIVTttYWkgdGFpa2h1Ozs7CiswRTQ4O1RIQUkgQ0hBUkFDVEVSIE1BSSBFSztNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgRUs7Ozs7CiswRTQ5O1RIQUkgQ0hBUkFDVEVSIE1BSSBUSE87TW47MTA3O05TTTs7Ozs7TjtUSEFJIFRPTkUgTUFJIFRITzs7OzsKKzBFNEE7VEhBSSBDSEFSQUNURVIgTUFJIFRSSTtNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgVFJJOzs7OworMEU0QjtUSEFJIENIQVJBQ1RFUiBNQUkgQ0hBVFRBV0E7TW47MTA3O05TTTs7Ozs7TjtUSEFJIFRPTkUgTUFJIENIQVRUQVdBOzs7OworMEU0QztUSEFJIENIQVJBQ1RFUiBUSEFOVEhBS0hBVDtNbjswO05TTTs7Ozs7TjtUSEFJIFRIQU5USEFLSEFUOzs7OworMEU0RDtUSEFJIENIQVJBQ1RFUiBOSUtIQUhJVDtNbjswO05TTTs7Ozs7TjtUSEFJIE5JS0tIQUhJVDtuaWtraGFoaXQ7OzsKKzBFNEU7VEhBSSBDSEFSQUNURVIgWUFNQUtLQU47TW47MDtOU007Ozs7O047VEhBSSBZQU1BS0tBTjs7OzsKKzBFNEY7VEhBSSBDSEFSQUNURVIgRk9OR01BTjtQbzswO0w7Ozs7O047VEhBSSBGT05HTUFOOzs7OworMEU1MDtUSEFJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBFNTE7VEhBSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBFNTI7VEhBSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBFNTM7VEhBSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEU1NDtUSEFJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBFNTU7VEhBSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRTU2O1RIQUkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRTU3O1RIQUkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBFNTg7VEhBSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEU1OTtUSEFJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBFNUE7VEhBSSBDSEFSQUNURVIgQU5HS0hBTktIVTtQbzswO0w7Ozs7O047VEhBSSBBTkdLSEFOS0hVOzs7OworMEU1QjtUSEFJIENIQVJBQ1RFUiBLSE9NVVQ7UG87MDtMOzs7OztOO1RIQUkgS0hPTVVUOzs7OworMEU4MTtMQU8gTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTgyO0xBTyBMRVRURVIgS0hPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFODQ7TEFPIExFVFRFUiBLSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTg3O0xBTyBMRVRURVIgTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTg4O0xBTyBMRVRURVIgQ087TG87MDtMOzs7OztOOzs7OzsKKzBFOEE7TEFPIExFVFRFUiBTTyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOEQ7TEFPIExFVFRFUiBOWU87TG87MDtMOzs7OztOOzs7OzsKKzBFOTQ7TEFPIExFVFRFUiBETztMbzswO0w7Ozs7O047Ozs7OworMEU5NTtMQU8gTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk2O0xBTyBMRVRURVIgVEhPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFOTc7TEFPIExFVFRFUiBUSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk5O0xBTyBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzBFOUE7TEFPIExFVFRFUiBCTztMbzswO0w7Ozs7O047Ozs7OworMEU5QjtMQU8gTEVUVEVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlDO0xBTyBMRVRURVIgUEhPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFOUQ7TEFPIExFVFRFUiBGTyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOUU7TEFPIExFVFRFUiBQSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlGO0xBTyBMRVRURVIgRk8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBMTtMQU8gTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUEyO0xBTyBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzBFQTM7TEFPIExFVFRFUiBMTyBMSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUE1O0xBTyBMRVRURVIgTE8gTE9PVDtMbzswO0w7Ozs7O047Ozs7OworMEVBNztMQU8gTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFBO0xBTyBMRVRURVIgU08gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBQjtMQU8gTEVUVEVSIEhPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQUQ7TEFPIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFFO0xBTyBMRVRURVIgSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFGO0xBTyBFTExJUFNJUztMbzswO0w7Ozs7O047Ozs7OworMEVCMDtMQU8gVk9XRUwgU0lHTiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIxO0xBTyBWT1dFTCBTSUdOIE1BSSBLQU47TW47MDtOU007Ozs7O047Ozs7OworMEVCMjtMQU8gVk9XRUwgU0lHTiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEVCMztMQU8gVk9XRUwgU0lHTiBBTTtMbzswO0w7PGNvbXBhdD4gMEVDRCAwRUIyOzs7O047Ozs7OworMEVCNDtMQU8gVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQjU7TEFPIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNjtMQU8gVk9XRUwgU0lHTiBZO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQjc7TEFPIFZPV0VMIFNJR04gWVk7TW47MDtOU007Ozs7O047Ozs7OworMEVCODtMQU8gVk9XRUwgU0lHTiBVO01uOzExODtOU007Ozs7O047Ozs7OworMEVCOTtMQU8gVk9XRUwgU0lHTiBVVTtNbjsxMTg7TlNNOzs7OztOOzs7OzsKKzBFQkI7TEFPIFZPV0VMIFNJR04gTUFJIEtPTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUJDO0xBTyBTRU1JVk9XRUwgU0lHTiBMTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUJEO0xBTyBTRU1JVk9XRUwgU0lHTiBOWU87TG87MDtMOzs7OztOOzs7OzsKKzBFQzA7TEFPIFZPV0VMIFNJR04gRTtMbzswO0w7Ozs7O047Ozs7OworMEVDMTtMQU8gVk9XRUwgU0lHTiBFSTtMbzswO0w7Ozs7O047Ozs7OworMEVDMjtMQU8gVk9XRUwgU0lHTiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMzO0xBTyBWT1dFTCBTSUdOIEFZO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUM0O0xBTyBWT1dFTCBTSUdOIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUM2O0xBTyBLTyBMQTtMbTswO0w7Ozs7O047Ozs7OworMEVDODtMQU8gVE9ORSBNQUkgRUs7TW47MTIyO05TTTs7Ozs7Tjs7Ozs7CiswRUM5O0xBTyBUT05FIE1BSSBUSE87TW47MTIyO05TTTs7Ozs7Tjs7Ozs7CiswRUNBO0xBTyBUT05FIE1BSSBUSTtNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQ0I7TEFPIFRPTkUgTUFJIENBVEFXQTtNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQ0M7TEFPIENBTkNFTExBVElPTiBNQVJLO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQ0Q7TEFPIE5JR0dBSElUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUQwO0xBTyBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRUQxO0xBTyBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBFRDI7TEFPIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEVEMztMQU8gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBFRDQ7TEFPIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBFRDU7TEFPIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBFRDY7TEFPIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEVENztMQU8gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBFRDg7TEFPIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRUQ5O0xBTyBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRURDO0xBTyBITyBOTztMbzswO0w7PGNvbXBhdD4gMEVBQiAwRTk5Ozs7O047Ozs7OworMEVERDtMQU8gSE8gTU87TG87MDtMOzxjb21wYXQ+IDBFQUIgMEVBMTs7OztOOzs7OzsKKzBGMDA7VElCRVRBTiBTWUxMQUJMRSBPTTtMbzswO0w7Ozs7O047Ozs7OworMEYwMTtUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIFRSVU5DQVRFRCBBO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyBhIHRodW5nOzs7CiswRjAyO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gLVVNIFJOQU0gQkNBRCBNQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gd3VtIG5hbSBjaGV5IG1hOzs7CiswRjAzO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gLVVNIEdURVIgVFNIRUcgTUE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIHd1bSB0ZXIgdHNlayBtYTs7OworMEYwNDtUSUJFVEFOIE1BUksgSU5JVElBTCBZSUcgTUdPIE1EVU4gTUE7UG87MDtMOzs7OztOO1RJQkVUQU4gU0lOR0xFIE9STkFNRU5UO3lpayBnbyBkdW4gbWE7OzsKKzBGMDU7VElCRVRBTiBNQVJLIENMT1NJTkcgWUlHIE1HTyBTR0FCIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIGthYiBtYTs7OworMEYwNjtUSUJFVEFOIE1BUksgQ0FSRVQgWUlHIE1HTyBQSFVSIFNIQUQgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28gcHVyIHNoZXkgbWE7OzsKKzBGMDc7VElCRVRBTiBNQVJLIFlJRyBNR08gVFNIRUcgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyB0c2VrIHNoZXkgbWE7OzsKKzBGMDg7VElCRVRBTiBNQVJLIFNCUlVMIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gUkdZQU5TSEFEO2RydWwgc2hleTs7OworMEYwOTtUSUJFVEFOIE1BUksgQlNLVVIgWUlHIE1HTztQbzswO0w7Ozs7O047O2t1ciB5aWsgZ287OzsKKzBGMEE7VElCRVRBTiBNQVJLIEJLQS0gU0hPRyBZSUcgTUdPO1BvOzA7TDs7Ozs7Tjs7a2Egc2hvIHlpayBnbzs7OworMEYwQjtUSUJFVEFOIE1BUksgSU5URVJTWUxMQUJJQyBUU0hFRztQbzswO0w7Ozs7O047VElCRVRBTiBUU0VHO3RzZWs7OzsKKzBGMEM7VElCRVRBTiBNQVJLIERFTElNSVRFUiBUU0hFRyBCU1RBUjtQbzswO0w7PG5vQnJlYWs+IDBGMEI7Ozs7Tjs7dHNlayB0YXI7OzsKKzBGMEQ7VElCRVRBTiBNQVJLIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gU0hBRDtzaGV5Ozs7CiswRjBFO1RJQkVUQU4gTUFSSyBOWUlTIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gRE9VQkxFIFNIQUQ7bnlpIHNoZXk7OzsKKzBGMEY7VElCRVRBTiBNQVJLIFRTSEVHIFNIQUQ7UG87MDtMOzs7OztOOzt0c2VrIHNoZXk7OzsKKzBGMTA7VElCRVRBTiBNQVJLIE5ZSVMgVFNIRUcgU0hBRDtQbzswO0w7Ozs7O047O255aSB0c2VrIHNoZXk7OzsKKzBGMTE7VElCRVRBTiBNQVJLIFJJTiBDSEVOIFNQVU5HUyBTSEFEO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFJJTkNIQU5QSFVOR1NIQUQ7cmluY2hlbiBwdW5nIHNoZXk7OzsKKzBGMTI7VElCRVRBTiBNQVJLIFJHWUEgR1JBTSBTSEFEO1BvOzA7TDs7Ozs7Tjs7Z3lhIHRyYW0gc2hleTs7OworMEYxMztUSUJFVEFOIE1BUksgQ0FSRVQgLURaVUQgUlRBR1MgTUUgTE9ORyBDQU47U287MDtMOzs7OztOOztkenUgdGEgbWUgbG9uZyBjaGVuOzs7CiswRjE0O1RJQkVUQU4gTUFSSyBHVEVSIFRTSEVHO1NvOzA7TDs7Ozs7TjtUSUJFVEFOIENPTU1BO3RlciB0c2VrOzs7CiswRjE1O1RJQkVUQU4gTE9HT1RZUEUgU0lHTiBDSEFEIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7Y2hlIHRhOzs7CiswRjE2O1RJQkVUQU4gTE9HT1RZUEUgU0lHTiBMSEFHIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7aGxhayB0YTs7OworMEYxNztUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIFNHUkEgR0NBTiAtQ0hBUiBSVEFHUztTbzswO0w7Ozs7O047O3RyYWNoZW4gY2hhciB0YTs7OworMEYxODtUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIC1LSFlVRCBQQTtNbjsyMjA7TlNNOzs7OztOOztreXUgcGE7OzsKKzBGMTk7VElCRVRBTiBBU1RST0xPR0lDQUwgU0lHTiBTRE9ORyBUU0hVR1M7TW47MjIwO05TTTs7Ozs7Tjs7ZG9uZyB0c3U7OzsKKzBGMUE7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBjaGlnOzs7CiswRjFCO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR05ZSVM7U287MDtMOzs7OztOOztkZWthIG55aTs7OworMEYxQztUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdTVU07U287MDtMOzs7OztOOztkZWthIHN1bTs7OworMEYxRDtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR0NJRztTbzswO0w7Ozs7O047O2RlbmEgY2hpZzs7OworMEYxRTtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR05ZSVM7U287MDtMOzs7OztOOztkZW5hIG55aTs7OworMEYxRjtUSUJFVEFOIFNJR04gUkRFTCBES0FSIFJERUwgTkFHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBkZW5hOzs7CiswRjIwO1RJQkVUQU4gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEYyMTtUSUJFVEFOIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEYyMjtUSUJFVEFOIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEYyMztUSUJFVEFOIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRjI0O1RJQkVUQU4gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEYyNTtUSUJFVEFOIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBGMjY7VElCRVRBTiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBGMjc7VElCRVRBTiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEYyODtUSUJFVEFOIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRjI5O1RJQkVUQU4gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEYyQTtUSUJFVEFOIERJR0lUIEhBTEYgT05FO05vOzA7TDs7OzsxLzI7Tjs7Ozs7CiswRjJCO1RJQkVUQU4gRElHSVQgSEFMRiBUV087Tm87MDtMOzs7OzMvMjtOOzs7OzsKKzBGMkM7VElCRVRBTiBESUdJVCBIQUxGIFRIUkVFO05vOzA7TDs7Ozs1LzI7Tjs7Ozs7CiswRjJEO1RJQkVUQU4gRElHSVQgSEFMRiBGT1VSO05vOzA7TDs7Ozs3LzI7Tjs7Ozs7CiswRjJFO1RJQkVUQU4gRElHSVQgSEFMRiBGSVZFO05vOzA7TDs7Ozs5LzI7Tjs7Ozs7CiswRjJGO1RJQkVUQU4gRElHSVQgSEFMRiBTSVg7Tm87MDtMOzs7OzExLzI7Tjs7Ozs7CiswRjMwO1RJQkVUQU4gRElHSVQgSEFMRiBTRVZFTjtObzswO0w7Ozs7MTMvMjtOOzs7OzsKKzBGMzE7VElCRVRBTiBESUdJVCBIQUxGIEVJR0hUO05vOzA7TDs7OzsxNS8yO047Ozs7OworMEYzMjtUSUJFVEFOIERJR0lUIEhBTEYgTklORTtObzswO0w7Ozs7MTcvMjtOOzs7OzsKKzBGMzM7VElCRVRBTiBESUdJVCBIQUxGIFpFUk87Tm87MDtMOzs7Oy0xLzI7Tjs7Ozs7CiswRjM0O1RJQkVUQU4gTUFSSyBCU0RVUyBSVEFHUztTbzswO0w7Ozs7O047O2R1IHRhOzs7CiswRjM1O1RJQkVUQU4gTUFSSyBOR0FTIEJaVU5HIE5ZSSBaTEE7TW47MjIwO05TTTs7Ozs7TjtUSUJFVEFOIEhPTk9SSUZJQyBVTkRFUiBSSU5HO25nZSB6dW5nIG55aSBkYTs7OworMEYzNjtUSUJFVEFOIE1BUksgQ0FSRVQgLURaVUQgUlRBR1MgQlpISSBNSUcgQ0FOO1NvOzA7TDs7Ozs7Tjs7ZHp1IHRhIHNoaSBtaWcgY2hlbjs7OworMEYzNztUSUJFVEFOIE1BUksgTkdBUyBCWlVORyBTR09SIFJUQUdTO01uOzIyMDtOU007Ozs7O047VElCRVRBTiBVTkRFUiBSSU5HO25nZSB6dW5nIGdvciB0YTs7OworMEYzODtUSUJFVEFOIE1BUksgQ0hFIE1HTztTbzswO0w7Ozs7O047O2NoZSBnbzs7OworMEYzOTtUSUJFVEFOIE1BUksgVFNBIC1QSFJVO01uOzIxNjtOU007Ozs7O047VElCRVRBTiBMRU5JVElPTiBNQVJLO3RzYSB0cnU7OzsKKzBGM0E7VElCRVRBTiBNQVJLIEdVRyBSVEFHUyBHWU9OO1BzOzA7T047Ozs7O1k7O2d1ZyB0YSB5dW47OzsKKzBGM0I7VElCRVRBTiBNQVJLIEdVRyBSVEFHUyBHWUFTO1BlOzA7T047Ozs7O1k7O2d1ZyB0YSB5ZTs7OworMEYzQztUSUJFVEFOIE1BUksgQU5HIEtIQU5HIEdZT047UHM7MDtPTjs7Ozs7WTtUSUJFVEFOIExFRlQgQlJBQ0U7YW5nIGthbmcgeXVuOzs7CiswRjNEO1RJQkVUQU4gTUFSSyBBTkcgS0hBTkcgR1lBUztQZTswO09OOzs7OztZO1RJQkVUQU4gUklHSFQgQlJBQ0U7YW5nIGthbmcgeWU7OzsKKzBGM0U7VElCRVRBTiBTSUdOIFlBUiBUU0hFUztNYzswO0w7Ozs7O047O3lhciB0c2U7OzsKKzBGM0Y7VElCRVRBTiBTSUdOIE1BUiBUU0hFUztNYzswO0w7Ozs7O047O21hciB0c2U7OzsKKzBGNDA7VElCRVRBTiBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNDE7VElCRVRBTiBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQyO1RJQkVUQU4gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQzO1RJQkVUQU4gTEVUVEVSIEdIQTtMbzswO0w7MEY0MiAwRkI3Ozs7O047Ozs7OworMEY0NDtUSUJFVEFOIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNDU7VElCRVRBTiBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNDY7VElCRVRBTiBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ3O1RJQkVUQU4gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ5O1RJQkVUQU4gTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEY0QTtUSUJFVEFOIExFVFRFUiBUVEE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIFRBOzs7OworMEY0QjtUSUJFVEFOIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBUSEE7Ozs7CiswRjRDO1RJQkVUQU4gTEVUVEVSIEREQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgREE7Ozs7CiswRjREO1RJQkVUQU4gTEVUVEVSIERESEE7TG87MDtMOzBGNEMgMEZCNzs7OztOOzs7OzsKKzBGNEU7VElCRVRBTiBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBOQTs7OzsKKzBGNEY7VElCRVRBTiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTA7VElCRVRBTiBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjUxO1RJQkVUQU4gTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjUyO1RJQkVUQU4gTEVUVEVSIERIQTtMbzswO0w7MEY1MSAwRkI3Ozs7O047Ozs7OworMEY1MztUSUJFVEFOIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NDtUSUJFVEFOIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NTtUSUJFVEFOIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTY7VElCRVRBTiBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTc7VElCRVRBTiBMRVRURVIgQkhBO0xvOzA7TDswRjU2IDBGQjc7Ozs7Tjs7Ozs7CiswRjU4O1RJQkVUQU4gTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU5O1RJQkVUQU4gTEVUVEVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMEY1QTtUSUJFVEFOIExFVFRFUiBUU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVCO1RJQkVUQU4gTEVUVEVSIERaQTtMbzswO0w7Ozs7O047Ozs7OworMEY1QztUSUJFVEFOIExFVFRFUiBEWkhBO0xvOzA7TDswRjVCIDBGQjc7Ozs7Tjs7Ozs7CiswRjVEO1RJQkVUQU4gTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVFO1RJQkVUQU4gTEVUVEVSIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1RjtUSUJFVEFOIExFVFRFUiBaQTtMbzswO0w7Ozs7O047Ozs7OworMEY2MDtUSUJFVEFOIExFVFRFUiAtQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgQUE7Ozs7CiswRjYxO1RJQkVUQU4gTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjYyO1RJQkVUQU4gTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Kjs7OworMEY2MztUSUJFVEFOIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NDtUSUJFVEFOIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjU7VElCRVRBTiBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBTSEE7Ozs7CiswRjY2O1RJQkVUQU4gTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY3O1RJQkVUQU4gTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY4O1RJQkVUQU4gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjk7VElCRVRBTiBMRVRURVIgS1NTQTtMbzswO0w7MEY0MCAwRkI1Ozs7O047Ozs7OworMEY2QTtUSUJFVEFOIExFVFRFUiBGSVhFRC1GT1JNIFJBO0xvOzA7TDs7Ozs7Tjs7Kjs7OworMEY3MTtUSUJFVEFOIFZPV0VMIFNJR04gQUE7TW47MTI5O05TTTs7Ozs7Tjs7Ozs7CiswRjcyO1RJQkVUQU4gVk9XRUwgU0lHTiBJO01uOzEzMDtOU007Ozs7O047Ozs7OworMEY3MztUSUJFVEFOIFZPV0VMIFNJR04gSUk7TW47MDtOU007MEY3MSAwRjcyOzs7O047Ozs7OworMEY3NDtUSUJFVEFOIFZPV0VMIFNJR04gVTtNbjsxMzI7TlNNOzs7OztOOzs7OzsKKzBGNzU7VElCRVRBTiBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzBGNzEgMEY3NDs7OztOOzs7OzsKKzBGNzY7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTswRkIyIDBGODA7Ozs7Tjs7Ozs7CiswRjc3O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7TlNNOzxjb21wYXQ+IDBGQjIgMEY4MTs7OztOOzs7OzsKKzBGNzg7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjswO05TTTswRkIzIDBGODA7Ozs7Tjs7Ozs7CiswRjc5O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzxjb21wYXQ+IDBGQjMgMEY4MTs7OztOOzs7OzsKKzBGN0E7VElCRVRBTiBWT1dFTCBTSUdOIEU7TW47MTMwO05TTTs7Ozs7Tjs7Ozs7CiswRjdCO1RJQkVUQU4gVk9XRUwgU0lHTiBFRTtNbjsxMzA7TlNNOzs7OztOO1RJQkVUQU4gVk9XRUwgU0lHTiBBSTs7OzsKKzBGN0M7VElCRVRBTiBWT1dFTCBTSUdOIE87TW47MTMwO05TTTs7Ozs7Tjs7Ozs7CiswRjdEO1RJQkVUQU4gVk9XRUwgU0lHTiBPTztNbjsxMzA7TlNNOzs7OztOO1RJQkVUQU4gVk9XRUwgU0lHTiBBVTs7OzsKKzBGN0U7VElCRVRBTiBTSUdOIFJKRVMgU1UgTkdBIFJPO01uOzA7TlNNOzs7OztOO1RJQkVUQU4gQU5VU1ZBUkE7amUgc3UgbmdhIHJvOzs7CiswRjdGO1RJQkVUQU4gU0lHTiBSTkFNIEJDQUQ7TWM7MDtMOzs7OztOO1RJQkVUQU4gVklTQVJHQTtuYW0gY2hleTs7OworMEY4MDtUSUJFVEFOIFZPV0VMIFNJR04gUkVWRVJTRUQgSTtNbjsxMzA7TlNNOzs7OztOO1RJQkVUQU4gVk9XRUwgU0lHTiBTSE9SVCBJOzs7OworMEY4MTtUSUJFVEFOIFZPV0VMIFNJR04gUkVWRVJTRUQgSUk7TW47MDtOU007MEY3MSAwRjgwOzs7O047Ozs7OworMEY4MjtUSUJFVEFOIFNJR04gTllJIFpMQSBOQUEgREE7TW47MjMwO05TTTs7Ozs7TjtUSUJFVEFOIENBTkRSQUJJTkRVIFdJVEggT1JOQU1FTlQ7bnlpIGRhIG5hIGRhOzs7CiswRjgzO1RJQkVUQU4gU0lHTiBTTkEgTERBTjtNbjsyMzA7TlNNOzs7OztOO1RJQkVUQU4gQ0FORFJBQklORFU7bmFuIGRlOzs7CiswRjg0O1RJQkVUQU4gTUFSSyBIQUxBTlRBO01uOzk7TlNNOzs7OztOO1RJQkVUQU4gVklSQU1BOzs7OworMEY4NTtUSUJFVEFOIE1BUksgUEFMVVRBO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIENIVUNIRU5ZSUdFOzs7OworMEY4NjtUSUJFVEFOIFNJR04gTENJIFJUQUdTO01uOzIzMDtOU007Ozs7O047O2ppIHRhOzs7CiswRjg3O1RJQkVUQU4gU0lHTiBZQU5HIFJUQUdTO01uOzIzMDtOU007Ozs7O047O3lhbmcgdGE7OzsKKzBGODg7VElCRVRBTiBTSUdOIExDRSBUU0EgQ0FOO0xvOzA7TDs7Ozs7Tjs7Y2hlIHRzYSBjaGVuOzs7CiswRjg5O1RJQkVUQU4gU0lHTiBNQ0hVIENBTjtMbzswO0w7Ozs7O047O2NodSBjaGVuOzs7CiswRjhBO1RJQkVUQU4gU0lHTiBHUlUgQ0FOIFJHWUlOR1M7TG87MDtMOzs7OztOOzt0cnUgY2hlbiBnaW5nOzs7CiswRjhCO1RJQkVUQU4gU0lHTiBHUlUgTUVEIFJHWUlOR1M7TG87MDtMOzs7OztOOzt0cnUgbWUgZ2luZzs7OworMEY5MDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS0E7TW47MDtOU007Ozs7O047Ozs7OworMEY5MTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS0hBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEdBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEdIQTtNbjswO05TTTswRjkyIDBGQjc7Ozs7Tjs7Ozs7CiswRjk0O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOR0E7TW47MDtOU007Ozs7O047Ozs7OworMEY5NTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQ0E7TW47MDtOU007Ozs7O047Ozs7OworMEY5NjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQ0hBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTc7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEpBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5ZQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlBO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUVEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5QjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlDO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREE7TW47MDtOU007Ozs7O047Ozs7OworMEY5RDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRERIQTtNbjswO05TTTswRjlDIDBGQjc7Ozs7Tjs7Ozs7CiswRjlFO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOTkE7TW47MDtOU007Ozs7O047Ozs7OworMEY5RjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBMDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVEhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERIQTtNbjswO05TTTswRkExIDBGQjc7Ozs7Tjs7Ozs7CiswRkEzO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE0O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBQQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBQSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBNjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQkE7TW47MDtOU007Ozs7O047Ozs7OworMEZBNztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQkhBO01uOzA7TlNNOzBGQTYgMEZCNzs7OztOOzs7OzsKKzBGQTg7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE1BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRTQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkFBO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0hBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERaQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkFDO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEWkhBO01uOzA7TlNNOzBGQUIgMEZCNzs7OztOOzs7OzsKKzBGQUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFdBO01uOzA7TlNNOzs7OztOOzsqOzs7CiswRkFFO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBaSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBRjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgWkE7TW47MDtOU007Ozs7O047Ozs7OworMEZCMDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgLUE7TW47MDtOU007Ozs7O047Ozs7OworMEZCMTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgWUE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQjI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFJBO01uOzA7TlNNOzs7OztOOzsqOzs7CiswRkIzO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBMQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI0O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBTSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZCNTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU1NBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFNBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjc7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjg7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEE7TW47MDtOU007Ozs7O047Ozs7OworMEZCOTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS1NTQTtNbjswO05TTTswRjkwIDBGQjU7Ozs7Tjs7Ozs7CiswRkJBO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBGSVhFRC1GT1JNIFdBO01uOzA7TlNNOzs7OztOOzsqOzs7CiswRkJCO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBGSVhFRC1GT1JNIFlBO01uOzA7TlNNOzs7OztOOzsqOzs7CiswRkJDO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBGSVhFRC1GT1JNIFJBO01uOzA7TlNNOzs7OztOOzsqOzs7CiswRkJFO1RJQkVUQU4gS1UgUlUgS0hBO1NvOzA7TDs7Ozs7Tjs7a3VydWthOzs7CiswRkJGO1RJQkVUQU4gS1UgUlUgS0hBIEJaSEkgTUlHIENBTjtTbzswO0w7Ozs7O047O2t1cnVrYSBzaGkgbWlrIGNoZW47OzsKKzBGQzA7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBIRUFWWSBCRUFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswRkMxO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gTElHSFQgQkVBVDtTbzswO0w7Ozs7O047Ozs7OworMEZDMjtUSUJFVEFOIENBTlRJTExBVElPTiBTSUdOIENBTkcgVEUtVTtTbzswO0w7Ozs7O047O2NoYW5nIHR5dTs7OworMEZDMztUSUJFVEFOIENBTlRJTExBVElPTiBTSUdOIFNCVUIgLUNIQUw7U287MDtMOzs7OztOOztidWIgY2hleTs7OworMEZDNDtUSUJFVEFOIFNZTUJPTCBEUklMIEJVO1NvOzA7TDs7Ozs7Tjs7ZHJpbGJ1Ozs7CiswRkM1O1RJQkVUQU4gU1lNQk9MIFJETyBSSkU7U287MDtMOzs7OztOOztkb3JqZTs7OworMEZDNjtUSUJFVEFOIFNZTUJPTCBQQURNQSBHREFOO01uOzIyMDtOU007Ozs7O047O3BlbWEgZGVuOzs7CiswRkM3O1RJQkVUQU4gU1lNQk9MIFJETyBSSkUgUkdZQSBHUkFNO1NvOzA7TDs7Ozs7Tjs7ZG9yamUgZ3lhIGRyYW07OzsKKzBGQzg7VElCRVRBTiBTWU1CT0wgUEhVUiBQQTtTbzswO0w7Ozs7O047O3BodXJiYTs7OworMEZDOTtUSUJFVEFOIFNZTUJPTCBOT1IgQlU7U287MDtMOzs7OztOOztub3JidTs7OworMEZDQTtUSUJFVEFOIFNZTUJPTCBOT1IgQlUgTllJUyAtS0hZSUw7U287MDtMOzs7OztOOztub3JidSBueWkga2h5aTs7OworMEZDQjtUSUJFVEFOIFNZTUJPTCBOT1IgQlUgR1NVTSAtS0hZSUw7U287MDtMOzs7OztOOztub3JidSBzdW0ga2h5aTs7OworMEZDQztUSUJFVEFOIFNZTUJPTCBOT1IgQlUgQlpISSAtS0hZSUw7U287MDtMOzs7OztOOztub3JidSBzaGkga2h5aTs7OworMEZDRjtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR1NVTTtTbzswO0w7Ozs7O047O2RlbmEgc3VtOzs7CiswRkQwO1RJQkVUQU4gTUFSSyBCU0tBLSBTSE9HIEdJIE1HTyBSR1lBTjtQbzswO0w7Ozs7O047O2thIHNob2cgZ2kgZ28gZ3llbjs7OworMEZEMTtUSUJFVEFOIE1BUksgTU5ZQU0gWUlHIEdJIE1HTyBSR1lBTjtQbzswO0w7Ozs7O047O255YW0geWlnIGdpIGdvIGd5ZW47OzsKKzEwMDA7TVlBTk1BUiBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE7TVlBTk1BUiBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyO01ZQU5NQVIgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzO01ZQU5NQVIgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNDtNWUFOTUFSIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU7TVlBTk1BUiBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDY7TVlBTk1BUiBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA3O01ZQU5NQVIgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4O01ZQU5NQVIgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTtNWUFOTUFSIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE7TVlBTk1BUiBMRVRURVIgTk5ZQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQjtNWUFOTUFSIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM7TVlBTk1BUiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRDtNWUFOTUFSIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU7TVlBTk1BUiBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRjtNWUFOTUFSIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTA7TVlBTk1BUiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTE7TVlBTk1BUiBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEyO01ZQU5NQVIgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzO01ZQU5NQVIgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNDtNWUFOTUFSIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNTtNWUFOTUFSIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNjtNWUFOTUFSIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTc7TVlBTk1BUiBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTg7TVlBTk1BUiBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE5O01ZQU5NQVIgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFBO01ZQU5NQVIgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFCO01ZQU5NQVIgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFDO01ZQU5NQVIgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFEO01ZQU5NQVIgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFFO01ZQU5NQVIgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFGO01ZQU5NQVIgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIwO01ZQU5NQVIgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMTAyMTtNWUFOTUFSIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIzO01ZQU5NQVIgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMjQ7TVlBTk1BUiBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzEwMjU7TVlBTk1BUiBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTAyNjtNWUFOTUFSIExFVFRFUiBVVTtMbzswO0w7MTAyNSAxMDJFOzs7O047Ozs7OworMTAyNztNWUFOTUFSIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDI5O01ZQU5NQVIgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzEwMkE7TVlBTk1BUiBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzEwMkM7TVlBTk1BUiBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDJEO01ZQU5NQVIgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwMkU7TVlBTk1BUiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwMkY7TVlBTk1BUiBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTAzMDtNWUFOTUFSIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMTAzMTtNWUFOTUFSIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMTAzMjtNWUFOTUFSIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMTAzNjtNWUFOTUFSIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMTAzNztNWUFOTUFSIFNJR04gRE9UIEJFTE9XO01uOzc7TlNNOzs7OztOOzs7OzsKKzEwMzg7TVlBTk1BUiBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzEwMzk7TVlBTk1BUiBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxMDQwO01ZQU5NQVIgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTA0MTtNWUFOTUFSIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTA0MjtNWUFOTUFSIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTA0MztNWUFOTUFSIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxMDQ0O01ZQU5NQVIgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTA0NTtNWUFOTUFSIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzEwNDY7TVlBTk1BUiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzEwNDc7TVlBTk1BUiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTA0ODtNWUFOTUFSIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxMDQ5O01ZQU5NQVIgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTA0QTtNWUFOTUFSIFNJR04gTElUVExFIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzEwNEI7TVlBTk1BUiBTSUdOIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzEwNEM7TVlBTk1BUiBTWU1CT0wgTE9DQVRJVkU7UG87MDtMOzs7OztOOzs7OzsKKzEwNEQ7TVlBTk1BUiBTWU1CT0wgQ09NUExFVEVEO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDRFO01ZQU5NQVIgU1lNQk9MIEFGT1JFTUVOVElPTkVEO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDRGO01ZQU5NQVIgU1lNQk9MIEdFTklUSVZFO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUwO01ZQU5NQVIgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTA1MTtNWUFOTUFSIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwNTI7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUzO01ZQU5NQVIgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzEwNTQ7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDU1O01ZQU5NQVIgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzEwNTY7TVlBTk1BUiBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMTA1NztNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNYzswO0w7Ozs7O047Ozs7OworMTA1ODtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwNTk7TVlBTk1BUiBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDAwOworMTBBMTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBCQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwMTsKKzEwQTI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDI7CisxMEEzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIERPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDAzOworMTBBNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBFTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDA0OworMTBBNTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBWSU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwNTsKKzEwQTY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDY7CisxMEE3O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFRBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDA3OworMTBBODtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDA4OworMTBBOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBLQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwOTsKKzEwQUE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgTEFTO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMEE7CisxMEFCO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE1BTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDBCOworMTBBQztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBOQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwQzsKKzEwQUQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgT047THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwRDsKKzEwQUU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgUEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMEU7CisxMEFGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFpIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwRjsKKzEwQjA7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgUkFFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTA7CisxMEIxO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFNBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDExOworMTBCMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBUQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxMjsKKzEwQjM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxMzsKKzEwQjQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgUEhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDE0OworMTBCNTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBLSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTU7CisxMEI2O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEdIQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxNjsKKzEwQjc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgUUFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTc7CisxMEI4O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFNISU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxODsKKzEwQjk7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0hJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDE5OworMTBCQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxQTsKKzEwQkI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSklMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMUI7CisxMEJDO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENJTDtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDFDOworMTBCRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMUQ7CisxMEJFO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFhBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDFFOworMTBCRjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBKSEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMUY7CisxMEMwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhBRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDIwOworMTBDMTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDIxOworMTBDMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBISUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQyMjsKKzEwQzM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgV0U7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQyMzsKKzEwQzQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMjQ7CisxMEM1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhPRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDI1OworMTBEMDtHRU9SR0lBTiBMRVRURVIgQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBBTjs7OzsKKzEwRDE7R0VPUkdJQU4gTEVUVEVSIEJBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEJBTjs7OzsKKzEwRDI7R0VPUkdJQU4gTEVUVEVSIEdBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEdBTjs7OzsKKzEwRDM7R0VPUkdJQU4gTEVUVEVSIERPTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIERPTjs7OzsKKzEwRDQ7R0VPUkdJQU4gTEVUVEVSIEVOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRU47Ozs7CisxMEQ1O0dFT1JHSUFOIExFVFRFUiBWSU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBWSU47Ozs7CisxMEQ2O0dFT1JHSUFOIExFVFRFUiBaRU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBaRU47Ozs7CisxMEQ3O0dFT1JHSUFOIExFVFRFUiBUQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQU47Ozs7CisxMEQ4O0dFT1JHSUFOIExFVFRFUiBJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIElOOzs7OworMTBEOTtHRU9SR0lBTiBMRVRURVIgS0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0FOOzs7OworMTBEQTtHRU9SR0lBTiBMRVRURVIgTEFTO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTEFTOzs7OworMTBEQjtHRU9SR0lBTiBMRVRURVIgTUFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTUFOOzs7OworMTBEQztHRU9SR0lBTiBMRVRURVIgTkFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTkFSOzs7OworMTBERDtHRU9SR0lBTiBMRVRURVIgT047TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBPTjs7OzsKKzEwREU7R0VPUkdJQU4gTEVUVEVSIFBBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFBBUjs7OzsKKzEwREY7R0VPUkdJQU4gTEVUVEVSIFpIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBaSEFSOzs7OworMTBFMDtHRU9SR0lBTiBMRVRURVIgUkFFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUkFFOzs7OworMTBFMTtHRU9SR0lBTiBMRVRURVIgU0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0FOOzs7OworMTBFMjtHRU9SR0lBTiBMRVRURVIgVEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVEFSOzs7OworMTBFMztHRU9SR0lBTiBMRVRURVIgVU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBVTjs7OzsKKzEwRTQ7R0VPUkdJQU4gTEVUVEVSIFBIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBQSEFSOzs7OworMTBFNTtHRU9SR0lBTiBMRVRURVIgS0hBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtIQVI7Ozs7CisxMEU2O0dFT1JHSUFOIExFVFRFUiBHSEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0hBTjs7OzsKKzEwRTc7R0VPUkdJQU4gTEVUVEVSIFFBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFFBUjs7OzsKKzEwRTg7R0VPUkdJQU4gTEVUVEVSIFNISU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBTSElOOzs7OworMTBFOTtHRU9SR0lBTiBMRVRURVIgQ0hJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENISU47Ozs7CisxMEVBO0dFT1JHSUFOIExFVFRFUiBDQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDQU47Ozs7CisxMEVCO0dFT1JHSUFOIExFVFRFUiBKSUw7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBKSUw7Ozs7CisxMEVDO0dFT1JHSUFOIExFVFRFUiBDSUw7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSUw7Ozs7CisxMEVEO0dFT1JHSUFOIExFVFRFUiBDSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0hBUjs7OzsKKzEwRUU7R0VPUkdJQU4gTEVUVEVSIFhBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFhBTjs7OzsKKzEwRUY7R0VPUkdJQU4gTEVUVEVSIEpIQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBKSEFOOzs7OworMTBGMDtHRU9SR0lBTiBMRVRURVIgSEFFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEFFOzs7OworMTBGMTtHRU9SR0lBTiBMRVRURVIgSEU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIRTs7OzsKKzEwRjI7R0VPUkdJQU4gTEVUVEVSIEhJRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhJRTs7OzsKKzEwRjM7R0VPUkdJQU4gTEVUVEVSIFdFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgV0U7Ozs7CisxMEY0O0dFT1JHSUFOIExFVFRFUiBIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQVI7Ozs7CisxMEY1O0dFT1JHSUFOIExFVFRFUiBIT0U7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIT0U7Ozs7CisxMEY2O0dFT1JHSUFOIExFVFRFUiBGSTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEZJOzs7OworMTBGNztHRU9SR0lBTiBMRVRURVIgWU47TG87MDtMOzs7OztOOzs7OzsKKzEwRjg7R0VPUkdJQU4gTEVUVEVSIEVMSUZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMEY5O0dFT1JHSUFOIExFVFRFUiBUVVJORUQgR0FOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMEZBO0dFT1JHSUFOIExFVFRFUiBBSU47TG87MDtMOzs7OztOOzs7OzsKKzEwRkI7R0VPUkdJQU4gUEFSQUdSQVBIIFNFUEFSQVRPUjtQbzswO0w7Ozs7O047Ozs7OworMTBGQztNT0RJRklFUiBMRVRURVIgR0VPUkdJQU4gTkFSO0xtOzA7TDs8c3VwZXI+IDEwREM7Ozs7Tjs7Ozs7CisxMTAwO0hBTkdVTCBDSE9TRU9ORyBLSVlFT0s7TG87MDtMOzs7OztOOztnICo7OzsKKzExMDE7SEFOR1VMIENIT1NFT05HIFNTQU5HS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Z2cgKjs7OworMTEwMjtIQU5HVUwgQ0hPU0VPTkcgTklFVU47TG87MDtMOzs7OztOOztuICo7OzsKKzExMDM7SEFOR1VMIENIT1NFT05HIFRJS0VVVDtMbzswO0w7Ozs7O047O2QgKjs7OworMTEwNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdUSUtFVVQ7TG87MDtMOzs7OztOOztkZCAqOzs7CisxMTA1O0hBTkdVTCBDSE9TRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047O3IgKjs7OworMTEwNjtIQU5HVUwgQ0hPU0VPTkcgTUlFVU07TG87MDtMOzs7OztOOzttICo7OzsKKzExMDc7SEFOR1VMIENIT1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7YiAqOzs7CisxMTA4O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1BJRVVQO0xvOzA7TDs7Ozs7Tjs7YmIgKjs7OworMTEwOTtIQU5HVUwgQ0hPU0VPTkcgU0lPUztMbzswO0w7Ozs7O047O3MgKjs7OworMTEwQTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7c3MgKjs7OworMTEwQjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExMEM7SEFOR1VMIENIT1NFT05HIENJRVVDO0xvOzA7TDs7Ozs7Tjs7aiAqOzs7CisxMTBEO0hBTkdVTCBDSE9TRU9ORyBTU0FOR0NJRVVDO0xvOzA7TDs7Ozs7Tjs7amogKjs7OworMTEwRTtIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047O2MgKjs7OworMTEwRjtIQU5HVUwgQ0hPU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047O2sgKjs7OworMTExMDtIQU5HVUwgQ0hPU0VPTkcgVEhJRVVUSDtMbzswO0w7Ozs7O047O3QgKjs7OworMTExMTtIQU5HVUwgQ0hPU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047O3AgKjs7OworMTExMjtIQU5HVUwgQ0hPU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOztoICo7OzsKKzExMTM7SEFOR1VMIENIT1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTExNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdOSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTExNTtIQU5HVUwgQ0hPU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE2O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTExNztIQU5HVUwgQ0hPU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTExODtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMTk7SEFOR1VMIENIT1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExMUE7SEFOR1VMIENIT1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFDO0hBTkdVTCBDSE9TRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTExRDtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTExRTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFGO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTEyMDtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIxO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIyO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEyMztIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMjQ7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMjU7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEyNjtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEyNztIQU5HVUwgQ0hPU0VPTkcgUElFVVAtQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExMjg7SEFOR1VMIENIT1NFT05HIFBJRVVQLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExMjk7SEFOR1VMIENIT1NFT05HIFBJRVVQLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExMkE7SEFOR1VMIENIT1NFT05HIFBJRVVQLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExMkI7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMkM7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEyRDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMkU7SEFOR1VMIENIT1NFT05HIFNJT1MtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMkY7SEFOR1VMIENIT1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMwO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMxO0hBTkdVTCBDSE9TRU9ORyBTSU9TLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMyO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMzO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEzNDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExMzU7SEFOR1VMIENIT1NFT05HIFNJT1MtSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExMzY7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExMzc7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTEzODtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM5O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExM0E7SEFOR1VMIENIT1NFT05HIFNJT1MtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQztIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNEO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNGO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0MDtIQU5HVUwgQ0hPU0VPTkcgUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0MTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQyO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExNDM7SEFOR1VMIENIT1NFT05HIElFVU5HLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ0O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTE0NTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0NjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0NztIQU5HVUwgQ0hPU0VPTkcgU1NBTkdJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0ODtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNDk7SEFOR1VMIENIT1NFT05HIElFVU5HLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNEE7SEFOR1VMIENIT1NFT05HIElFVU5HLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExNEI7SEFOR1VMIENIT1NFT05HIElFVU5HLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExNEM7SEFOR1VMIENIT1NFT05HIFlFU0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTREO0hBTkdVTCBDSE9TRU9ORyBDSUVVQy1JRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0RTtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE0RjtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TU0FOR0NJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUwO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUxO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNTI7SEFOR1VMIENIT1NFT05HIENISUVVQ0gtS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTE1MztIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NDtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU1O0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNTY7SEFOR1VMIENIT1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExNTc7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTE1ODtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1OTtIQU5HVUwgQ0hPU0VPTkcgWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExNUY7SEFOR1VMIENIT1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MDtIQU5HVUwgSlVOR1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MTtIQU5HVUwgSlVOR1NFT05HIEE7TG87MDtMOzs7OztOOzs7OzsKKzExNjI7SEFOR1VMIEpVTkdTRU9ORyBBRTtMbzswO0w7Ozs7O047Ozs7OworMTE2MztIQU5HVUwgSlVOR1NFT05HIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY0O0hBTkdVTCBKVU5HU0VPTkcgWUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY1O0hBTkdVTCBKVU5HU0VPTkcgRU87TG87MDtMOzs7OztOOzs7OzsKKzExNjY7SEFOR1VMIEpVTkdTRU9ORyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY3O0hBTkdVTCBKVU5HU0VPTkcgWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY4O0hBTkdVTCBKVU5HU0VPTkcgWUU7TG87MDtMOzs7OztOOzs7OzsKKzExNjk7SEFOR1VMIEpVTkdTRU9ORyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZBO0hBTkdVTCBKVU5HU0VPTkcgV0E7TG87MDtMOzs7OztOOzs7OzsKKzExNkI7SEFOR1VMIEpVTkdTRU9ORyBXQUU7TG87MDtMOzs7OztOOzs7OzsKKzExNkM7SEFOR1VMIEpVTkdTRU9ORyBPRTtMbzswO0w7Ozs7O047Ozs7OworMTE2RDtIQU5HVUwgSlVOR1NFT05HIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZFO0hBTkdVTCBKVU5HU0VPTkcgVTtMbzswO0w7Ozs7O047Ozs7OworMTE2RjtIQU5HVUwgSlVOR1NFT05HIFdFTztMbzswO0w7Ozs7O047Ozs7OworMTE3MDtIQU5HVUwgSlVOR1NFT05HIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTcxO0hBTkdVTCBKVU5HU0VPTkcgV0k7TG87MDtMOzs7OztOOzs7OzsKKzExNzI7SEFOR1VMIEpVTkdTRU9ORyBZVTtMbzswO0w7Ozs7O047Ozs7OworMTE3MztIQU5HVUwgSlVOR1NFT05HIEVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc0O0hBTkdVTCBKVU5HU0VPTkcgWUk7TG87MDtMOzs7OztOOzs7OzsKKzExNzU7SEFOR1VMIEpVTkdTRU9ORyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc2O0hBTkdVTCBKVU5HU0VPTkcgQS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc3O0hBTkdVTCBKVU5HU0VPTkcgQS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc4O0hBTkdVTCBKVU5HU0VPTkcgWUEtTztMbzswO0w7Ozs7O047Ozs7OworMTE3OTtIQU5HVUwgSlVOR1NFT05HIFlBLVlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdBO0hBTkdVTCBKVU5HU0VPTkcgRU8tTztMbzswO0w7Ozs7O047Ozs7OworMTE3QjtIQU5HVUwgSlVOR1NFT05HIEVPLVU7TG87MDtMOzs7OztOOzs7OzsKKzExN0M7SEFOR1VMIEpVTkdTRU9ORyBFTy1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE3RDtIQU5HVUwgSlVOR1NFT05HIFlFTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdFO0hBTkdVTCBKVU5HU0VPTkcgWUVPLVU7TG87MDtMOzs7OztOOzs7OzsKKzExN0Y7SEFOR1VMIEpVTkdTRU9ORyBPLUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgwO0hBTkdVTCBKVU5HU0VPTkcgTy1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgxO0hBTkdVTCBKVU5HU0VPTkcgTy1ZRTtMbzswO0w7Ozs7O047Ozs7OworMTE4MjtIQU5HVUwgSlVOR1NFT05HIE8tTztMbzswO0w7Ozs7O047Ozs7OworMTE4MztIQU5HVUwgSlVOR1NFT05HIE8tVTtMbzswO0w7Ozs7O047Ozs7OworMTE4NDtIQU5HVUwgSlVOR1NFT05HIFlPLVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg1O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg2O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg3O0hBTkdVTCBKVU5HU0VPTkcgWU8tTztMbzswO0w7Ozs7O047Ozs7OworMTE4ODtIQU5HVUwgSlVOR1NFT05HIFlPLUk7TG87MDtMOzs7OztOOzs7OzsKKzExODk7SEFOR1VMIEpVTkdTRU9ORyBVLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOEE7SEFOR1VMIEpVTkdTRU9ORyBVLUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThCO0hBTkdVTCBKVU5HU0VPTkcgVS1FTy1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE4QztIQU5HVUwgSlVOR1NFT05HIFUtWUU7TG87MDtMOzs7OztOOzs7OzsKKzExOEQ7SEFOR1VMIEpVTkdTRU9ORyBVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOEU7SEFOR1VMIEpVTkdTRU9ORyBZVS1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThGO0hBTkdVTCBKVU5HU0VPTkcgWVUtRU87TG87MDtMOzs7OztOOzs7OzsKKzExOTA7SEFOR1VMIEpVTkdTRU9ORyBZVS1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkxO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkyO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUU7TG87MDtMOzs7OztOOzs7OzsKKzExOTM7SEFOR1VMIEpVTkdTRU9ORyBZVS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk0O0hBTkdVTCBKVU5HU0VPTkcgWVUtSTtMbzswO0w7Ozs7O047Ozs7OworMTE5NTtIQU5HVUwgSlVOR1NFT05HIEVVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTY7SEFOR1VMIEpVTkdTRU9ORyBFVS1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE5NztIQU5HVUwgSlVOR1NFT05HIFlJLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTg7SEFOR1VMIEpVTkdTRU9ORyBJLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOTk7SEFOR1VMIEpVTkdTRU9ORyBJLVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlBO0hBTkdVTCBKVU5HU0VPTkcgSS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlCO0hBTkdVTCBKVU5HU0VPTkcgSS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlDO0hBTkdVTCBKVU5HU0VPTkcgSS1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE5RDtIQU5HVUwgSlVOR1NFT05HIEktQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUU7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQTtMbzswO0w7Ozs7O047Ozs7OworMTE5RjtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUEwO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtVTtMbzswO0w7Ozs7O047Ozs7OworMTFBMTtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUk7TG87MDtMOzs7OztOOzs7OzsKKzExQTI7SEFOR1VMIEpVTkdTRU9ORyBTU0FOR0FSQUVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUE4O0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7ZyAqOzs7CisxMUE5O0hBTkdVTCBKT05HU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzs7OztOOztnZyAqOzs7CisxMUFBO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1M7TG87MDtMOzs7OztOOztncyAqOzs7CisxMUFCO0hBTkdVTCBKT05HU0VPTkcgTklFVU47TG87MDtMOzs7OztOOztuICo7OzsKKzExQUM7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1DSUVVQztMbzswO0w7Ozs7O047O25qICo7OzsKKzExQUQ7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1ISUVVSDtMbzswO0w7Ozs7O047O25oICo7OzsKKzExQUU7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOztkICo7OzsKKzExQUY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047O2wgKjs7OworMTFCMDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSztMbzswO0w7Ozs7O047O2xnICo7OzsKKzExQjE7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTTtMbzswO0w7Ozs7O047O2xtICo7OzsKKzExQjI7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUDtMbzswO0w7Ozs7O047O2xiICo7OzsKKzExQjM7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TSU9TO0xvOzA7TDs7Ozs7Tjs7bHMgKjs7OworMTFCNDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRISUVVVEg7TG87MDtMOzs7OztOOztsdCAqOzs7CisxMUI1O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUEhJRVVQSDtMbzswO0w7Ozs7O047O2xwICo7OzsKKzExQjY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1ISUVVSDtMbzswO0w7Ozs7O047O2xoICo7OzsKKzExQjc7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTTtMbzswO0w7Ozs7O047O20gKjs7OworMTFCODtIQU5HVUwgSk9OR1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7YiAqOzs7CisxMUI5O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtU0lPUztMbzswO0w7Ozs7O047O2JzICo7OzsKKzExQkE7SEFOR1VMIEpPTkdTRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7cyAqOzs7CisxMUJCO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7c3MgKjs7OworMTFCQztIQU5HVUwgSk9OR1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7bmcgKjs7OworMTFCRDtIQU5HVUwgSk9OR1NFT05HIENJRVVDO0xvOzA7TDs7Ozs7Tjs7aiAqOzs7CisxMUJFO0hBTkdVTCBKT05HU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047O2MgKjs7OworMTFCRjtIQU5HVUwgSk9OR1NFT05HIEtISUVVS0g7TG87MDtMOzs7OztOOztrICo7OzsKKzExQzA7SEFOR1VMIEpPTkdTRU9ORyBUSElFVVRIO0xvOzA7TDs7Ozs7Tjs7dCAqOzs7CisxMUMxO0hBTkdVTCBKT05HU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047O3AgKjs7OworMTFDMjtIQU5HVUwgSk9OR1NFT05HIEhJRVVIO0xvOzA7TDs7Ozs7Tjs7aCAqOzs7CisxMUMzO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM0O0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM1O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM2O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM3O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFDODtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExQzk7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1USElFVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNBO0hBTkdVTCBKT05HU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFDQjtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVC1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFDQztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNEO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExQ0U7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExQ0Y7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRDA7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR1JJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQxO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU0tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQyO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU0tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFEMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDQ7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFENTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtBUFlFT1VOUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRDY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDc7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ4O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTFEOTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURBO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURCO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExREM7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFERDtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExREU7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExREY7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUwO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTFFMTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUyO0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTFFMztIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU0O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTFFNTtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU2O0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFFNztIQU5HVUwgSk9OR1NFT05HIFNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU4O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExRTk7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVBO0hBTkdVTCBKT05HU0VPTkcgU0lPUy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFFQjtIQU5HVUwgSk9OR1NFT05HIFBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRUM7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRUQ7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1TU0FOR0tJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFFRTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRUY7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYwO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRjE7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYyO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFGMztIQU5HVUwgSk9OR1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRjQ7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExRjU7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTFGNjtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY3O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExRjg7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFGOTtIQU5HVUwgSk9OR1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwO0VUSElPUElDIFNZTExBQkxFIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxO0VUSElPUElDIFNZTExBQkxFIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyO0VUSElPUElDIFNZTExBQkxFIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzO0VUSElPUElDIFNZTExBQkxFIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTIwNDtFVEhJT1BJQyBTWUxMQUJMRSBIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU7RVRISU9QSUMgU1lMTEFCTEUgSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY7RVRISU9QSUMgU1lMTEFCTEUgSE87TG87MDtMOzs7OztOOzs7OzsKKzEyMDc7RVRISU9QSUMgU1lMTEFCTEUgSE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4O0VUSElPUElDIFNZTExBQkxFIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5O0VUSElPUElDIFNZTExBQkxFIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBO0VUSElPUElDIFNZTExBQkxFIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCO0VUSElPUElDIFNZTExBQkxFIExBQTtMbzswO0w7Ozs7O047Ozs7OworMTIwQztFVEhJT1BJQyBTWUxMQUJMRSBMRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQ7RVRISU9QSUMgU1lMTEFCTEUgTEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEU7RVRISU9QSUMgU1lMTEFCTEUgTE87TG87MDtMOzs7OztOOzs7OzsKKzEyMEY7RVRISU9QSUMgU1lMTEFCTEUgTFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwO0VUSElPUElDIFNZTExBQkxFIEhIQTtMbzswO0w7Ozs7O047Ozs7OworMTIxMTtFVEhJT1BJQyBTWUxMQUJMRSBISFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTI7RVRISU9QSUMgU1lMTEFCTEUgSEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzO0VUSElPUElDIFNZTExBQkxFIEhIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMTQ7RVRISU9QSUMgU1lMTEFCTEUgSEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTIxNTtFVEhJT1BJQyBTWUxMQUJMRSBISEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTY7RVRISU9QSUMgU1lMTEFCTEUgSEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3O0VUSElPUElDIFNZTExBQkxFIEhIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTg7RVRISU9QSUMgU1lMTEFCTEUgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMTk7RVRISU9QSUMgU1lMTEFCTEUgTVU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUE7RVRISU9QSUMgU1lMTEFCTEUgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEyMUI7RVRISU9QSUMgU1lMTEFCTEUgTUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDO0VUSElPUElDIFNZTExBQkxFIE1FRTtMbzswO0w7Ozs7O047Ozs7OworMTIxRDtFVEhJT1BJQyBTWUxMQUJMRSBNRTtMbzswO0w7Ozs7O047Ozs7OworMTIxRTtFVEhJT1BJQyBTWUxMQUJMRSBNTztMbzswO0w7Ozs7O047Ozs7OworMTIxRjtFVEhJT1BJQyBTWUxMQUJMRSBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMjA7RVRISU9QSUMgU1lMTEFCTEUgU1pBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxO0VUSElPUElDIFNZTExBQkxFIFNaVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMjtFVEhJT1BJQyBTWUxMQUJMRSBTWkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjM7RVRISU9QSUMgU1lMTEFCTEUgU1pBQTtMbzswO0w7Ozs7O047Ozs7OworMTIyNDtFVEhJT1BJQyBTWUxMQUJMRSBTWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1O0VUSElPUElDIFNZTExBQkxFIFNaRTtMbzswO0w7Ozs7O047Ozs7OworMTIyNjtFVEhJT1BJQyBTWUxMQUJMRSBTWk87TG87MDtMOzs7OztOOzs7OzsKKzEyMjc7RVRISU9QSUMgU1lMTEFCTEUgU1pXQTtMbzswO0w7Ozs7O047Ozs7OworMTIyODtFVEhJT1BJQyBTWUxMQUJMRSBSQTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTtFVEhJT1BJQyBTWUxMQUJMRSBSVTtMbzswO0w7Ozs7O047Ozs7OworMTIyQTtFVEhJT1BJQyBTWUxMQUJMRSBSSTtMbzswO0w7Ozs7O047Ozs7OworMTIyQjtFVEhJT1BJQyBTWUxMQUJMRSBSQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkM7RVRISU9QSUMgU1lMTEFCTEUgUkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEO0VUSElPUElDIFNZTExBQkxFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFO0VUSElPUElDIFNZTExBQkxFIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGO0VUSElPUElDIFNZTExBQkxFIFJXQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMDtFVEhJT1BJQyBTWUxMQUJMRSBTQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMTtFVEhJT1BJQyBTWUxMQUJMRSBTVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMjtFVEhJT1BJQyBTWUxMQUJMRSBTSTtMbzswO0w7Ozs7O047Ozs7OworMTIzMztFVEhJT1BJQyBTWUxMQUJMRSBTQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzQ7RVRISU9QSUMgU1lMTEFCTEUgU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1O0VUSElPUElDIFNZTExBQkxFIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2O0VUSElPUElDIFNZTExBQkxFIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM3O0VUSElPUElDIFNZTExBQkxFIFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTIzODtFVEhJT1BJQyBTWUxMQUJMRSBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzk7RVRISU9QSUMgU1lMTEFCTEUgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNBO0VUSElPUElDIFNZTExBQkxFIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTIzQjtFVEhJT1BJQyBTWUxMQUJMRSBTSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNDO0VUSElPUElDIFNZTExBQkxFIFNIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0Q7RVRISU9QSUMgU1lMTEFCTEUgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNFO0VUSElPUElDIFNZTExBQkxFIFNITztMbzswO0w7Ozs7O047Ozs7OworMTIzRjtFVEhJT1BJQyBTWUxMQUJMRSBTSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQwO0VUSElPUElDIFNZTExBQkxFIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQxO0VUSElPUElDIFNZTExBQkxFIFFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQyO0VUSElPUElDIFNZTExBQkxFIFFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQzO0VUSElPUElDIFNZTExBQkxFIFFBQTtMbzswO0w7Ozs7O047Ozs7OworMTI0NDtFVEhJT1BJQyBTWUxMQUJMRSBRRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDU7RVRISU9QSUMgU1lMTEFCTEUgUUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDY7RVRISU9QSUMgU1lMTEFCTEUgUU87TG87MDtMOzs7OztOOzs7OzsKKzEyNDc7RVRISU9QSUMgU1lMTEFCTEUgUU9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ4O0VUSElPUElDIFNZTExBQkxFIFFXQTtMbzswO0w7Ozs7O047Ozs7OworMTI0QTtFVEhJT1BJQyBTWUxMQUJMRSBRV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyNEI7RVRISU9QSUMgU1lMTEFCTEUgUVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTI0QztFVEhJT1BJQyBTWUxMQUJMRSBRV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjREO0VUSElPUElDIFNZTExBQkxFIFFXRTtMbzswO0w7Ozs7O047Ozs7OworMTI1MDtFVEhJT1BJQyBTWUxMQUJMRSBRSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyNTE7RVRISU9QSUMgU1lMTEFCTEUgUUhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUyO0VUSElPUElDIFNZTExBQkxFIFFISTtMbzswO0w7Ozs7O047Ozs7OworMTI1MztFVEhJT1BJQyBTWUxMQUJMRSBRSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjU0O0VUSElPUElDIFNZTExBQkxFIFFIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNTU7RVRISU9QSUMgU1lMTEFCTEUgUUhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjU2O0VUSElPUElDIFNZTExBQkxFIFFITztMbzswO0w7Ozs7O047Ozs7OworMTI1ODtFVEhJT1BJQyBTWUxMQUJMRSBRSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjVBO0VUSElPUElDIFNZTExBQkxFIFFIV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyNUI7RVRISU9QSUMgU1lMTEFCTEUgUUhXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNUM7RVRISU9QSUMgU1lMTEFCTEUgUUhXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNUQ7RVRISU9QSUMgU1lMTEFCTEUgUUhXRTtMbzswO0w7Ozs7O047Ozs7OworMTI2MDtFVEhJT1BJQyBTWUxMQUJMRSBCQTtMbzswO0w7Ozs7O047Ozs7OworMTI2MTtFVEhJT1BJQyBTWUxMQUJMRSBCVTtMbzswO0w7Ozs7O047Ozs7OworMTI2MjtFVEhJT1BJQyBTWUxMQUJMRSBCSTtMbzswO0w7Ozs7O047Ozs7OworMTI2MztFVEhJT1BJQyBTWUxMQUJMRSBCQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNjQ7RVRISU9QSUMgU1lMTEFCTEUgQkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY1O0VUSElPUElDIFNZTExBQkxFIEJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY2O0VUSElPUElDIFNZTExBQkxFIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY3O0VUSElPUElDIFNZTExBQkxFIEJXQTtMbzswO0w7Ozs7O047Ozs7OworMTI2ODtFVEhJT1BJQyBTWUxMQUJMRSBWQTtMbzswO0w7Ozs7O047Ozs7OworMTI2OTtFVEhJT1BJQyBTWUxMQUJMRSBWVTtMbzswO0w7Ozs7O047Ozs7OworMTI2QTtFVEhJT1BJQyBTWUxMQUJMRSBWSTtMbzswO0w7Ozs7O047Ozs7OworMTI2QjtFVEhJT1BJQyBTWUxMQUJMRSBWQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNkM7RVRISU9QSUMgU1lMTEFCTEUgVkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZEO0VUSElPUElDIFNZTExBQkxFIFZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZFO0VUSElPUElDIFNZTExBQkxFIFZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZGO0VUSElPUElDIFNZTExBQkxFIFZXQTtMbzswO0w7Ozs7O047Ozs7OworMTI3MDtFVEhJT1BJQyBTWUxMQUJMRSBUQTtMbzswO0w7Ozs7O047Ozs7OworMTI3MTtFVEhJT1BJQyBTWUxMQUJMRSBUVTtMbzswO0w7Ozs7O047Ozs7OworMTI3MjtFVEhJT1BJQyBTWUxMQUJMRSBUSTtMbzswO0w7Ozs7O047Ozs7OworMTI3MztFVEhJT1BJQyBTWUxMQUJMRSBUQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNzQ7RVRISU9QSUMgU1lMTEFCTEUgVEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc1O0VUSElPUElDIFNZTExBQkxFIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc2O0VUSElPUElDIFNZTExBQkxFIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc3O0VUSElPUElDIFNZTExBQkxFIFRXQTtMbzswO0w7Ozs7O047Ozs7OworMTI3ODtFVEhJT1BJQyBTWUxMQUJMRSBDQTtMbzswO0w7Ozs7O047Ozs7OworMTI3OTtFVEhJT1BJQyBTWUxMQUJMRSBDVTtMbzswO0w7Ozs7O047Ozs7OworMTI3QTtFVEhJT1BJQyBTWUxMQUJMRSBDSTtMbzswO0w7Ozs7O047Ozs7OworMTI3QjtFVEhJT1BJQyBTWUxMQUJMRSBDQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyN0M7RVRISU9QSUMgU1lMTEFCTEUgQ0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdEO0VUSElPUElDIFNZTExBQkxFIENFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdFO0VUSElPUElDIFNZTExBQkxFIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdGO0VUSElPUElDIFNZTExBQkxFIENXQTtMbzswO0w7Ozs7O047Ozs7OworMTI4MDtFVEhJT1BJQyBTWUxMQUJMRSBYQTtMbzswO0w7Ozs7O047Ozs7OworMTI4MTtFVEhJT1BJQyBTWUxMQUJMRSBYVTtMbzswO0w7Ozs7O047Ozs7OworMTI4MjtFVEhJT1BJQyBTWUxMQUJMRSBYSTtMbzswO0w7Ozs7O047Ozs7OworMTI4MztFVEhJT1BJQyBTWUxMQUJMRSBYQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyODQ7RVRISU9QSUMgU1lMTEFCTEUgWEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjg1O0VUSElPUElDIFNZTExBQkxFIFhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjg2O0VUSElPUElDIFNZTExBQkxFIFhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjg3O0VUSElPUElDIFNZTExBQkxFIFhPQTtMbzswO0w7Ozs7O047Ozs7OworMTI4ODtFVEhJT1BJQyBTWUxMQUJMRSBYV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyOEE7RVRISU9QSUMgU1lMTEFCTEUgWFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjhCO0VUSElPUElDIFNZTExBQkxFIFhXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOEM7RVRISU9QSUMgU1lMTEFCTEUgWFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI4RDtFVEhJT1BJQyBTWUxMQUJMRSBYV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyOTA7RVRISU9QSUMgU1lMTEFCTEUgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEyOTE7RVRISU9QSUMgU1lMTEFCTEUgTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyOTI7RVRISU9QSUMgU1lMTEFCTEUgTkk7TG87MDtMOzs7OztOOzs7OzsKKzEyOTM7RVRISU9QSUMgU1lMTEFCTEUgTkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk0O0VUSElPUElDIFNZTExBQkxFIE5FRTtMbzswO0w7Ozs7O047Ozs7OworMTI5NTtFVEhJT1BJQyBTWUxMQUJMRSBORTtMbzswO0w7Ozs7O047Ozs7OworMTI5NjtFVEhJT1BJQyBTWUxMQUJMRSBOTztMbzswO0w7Ozs7O047Ozs7OworMTI5NztFVEhJT1BJQyBTWUxMQUJMRSBOV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyOTg7RVRISU9QSUMgU1lMTEFCTEUgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk5O0VUSElPUElDIFNZTExBQkxFIE5ZVTtMbzswO0w7Ozs7O047Ozs7OworMTI5QTtFVEhJT1BJQyBTWUxMQUJMRSBOWUk7TG87MDtMOzs7OztOOzs7OzsKKzEyOUI7RVRISU9QSUMgU1lMTEFCTEUgTllBQTtMbzswO0w7Ozs7O047Ozs7OworMTI5QztFVEhJT1BJQyBTWUxMQUJMRSBOWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlEO0VUSElPUElDIFNZTExBQkxFIE5ZRTtMbzswO0w7Ozs7O047Ozs7OworMTI5RTtFVEhJT1BJQyBTWUxMQUJMRSBOWU87TG87MDtMOzs7OztOOzs7OzsKKzEyOUY7RVRISU9QSUMgU1lMTEFCTEUgTllXQTtMbzswO0w7Ozs7O047Ozs7OworMTJBMDtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyQTE7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkEyO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgSTtMbzswO0w7Ozs7O047Ozs7OworMTJBMztFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE0O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQTU7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE2O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgTztMbzswO0w7Ozs7O047Ozs7OworMTJBNztFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE4O0VUSElPUElDIFNZTExBQkxFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE5O0VUSElPUElDIFNZTExBQkxFIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFBO0VUSElPUElDIFNZTExBQkxFIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFCO0VUSElPUElDIFNZTExBQkxFIEtBQTtMbzswO0w7Ozs7O047Ozs7OworMTJBQztFVEhJT1BJQyBTWUxMQUJMRSBLRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQUQ7RVRISU9QSUMgU1lMTEFCTEUgS0U7TG87MDtMOzs7OztOOzs7OzsKKzEyQUU7RVRISU9QSUMgU1lMTEFCTEUgS087TG87MDtMOzs7OztOOzs7OzsKKzEyQUY7RVRISU9QSUMgU1lMTEFCTEUgS09BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkIwO0VUSElPUElDIFNZTExBQkxFIEtXQTtMbzswO0w7Ozs7O047Ozs7OworMTJCMjtFVEhJT1BJQyBTWUxMQUJMRSBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyQjM7RVRISU9QSUMgU1lMTEFCTEUgS1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTJCNDtFVEhJT1BJQyBTWUxMQUJMRSBLV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI1O0VUSElPUElDIFNZTExBQkxFIEtXRTtMbzswO0w7Ozs7O047Ozs7OworMTJCODtFVEhJT1BJQyBTWUxMQUJMRSBLWEE7TG87MDtMOzs7OztOOzs7OzsKKzEyQjk7RVRISU9QSUMgU1lMTEFCTEUgS1hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJBO0VUSElPUElDIFNZTExBQkxFIEtYSTtMbzswO0w7Ozs7O047Ozs7OworMTJCQjtFVEhJT1BJQyBTWUxMQUJMRSBLWEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJDO0VUSElPUElDIFNZTExBQkxFIEtYRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkQ7RVRISU9QSUMgU1lMTEFCTEUgS1hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJFO0VUSElPUElDIFNZTExBQkxFIEtYTztMbzswO0w7Ozs7O047Ozs7OworMTJDMDtFVEhJT1BJQyBTWUxMQUJMRSBLWFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkMyO0VUSElPUElDIFNZTExBQkxFIEtYV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyQzM7RVRISU9QSUMgU1lMTEFCTEUgS1hXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQzQ7RVRISU9QSUMgU1lMTEFCTEUgS1hXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQzU7RVRISU9QSUMgU1lMTEFCTEUgS1hXRTtMbzswO0w7Ozs7O047Ozs7OworMTJDODtFVEhJT1BJQyBTWUxMQUJMRSBXQTtMbzswO0w7Ozs7O047Ozs7OworMTJDOTtFVEhJT1BJQyBTWUxMQUJMRSBXVTtMbzswO0w7Ozs7O047Ozs7OworMTJDQTtFVEhJT1BJQyBTWUxMQUJMRSBXSTtMbzswO0w7Ozs7O047Ozs7OworMTJDQjtFVEhJT1BJQyBTWUxMQUJMRSBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0M7RVRISU9QSUMgU1lMTEFCTEUgV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNEO0VUSElPUElDIFNZTExBQkxFIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNFO0VUSElPUElDIFNZTExBQkxFIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNGO0VUSElPUElDIFNZTExBQkxFIFdPQTtMbzswO0w7Ozs7O047Ozs7OworMTJEMDtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyRDE7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQyO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgSTtMbzswO0w7Ozs7O047Ozs7OworMTJEMztFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ0O0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRDU7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ2O0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgTztMbzswO0w7Ozs7O047Ozs7OworMTJEODtFVEhJT1BJQyBTWUxMQUJMRSBaQTtMbzswO0w7Ozs7O047Ozs7OworMTJEOTtFVEhJT1BJQyBTWUxMQUJMRSBaVTtMbzswO0w7Ozs7O047Ozs7OworMTJEQTtFVEhJT1BJQyBTWUxMQUJMRSBaSTtMbzswO0w7Ozs7O047Ozs7OworMTJEQjtFVEhJT1BJQyBTWUxMQUJMRSBaQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyREM7RVRISU9QSUMgU1lMTEFCTEUgWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkREO0VUSElPUElDIFNZTExBQkxFIFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRFO0VUSElPUElDIFNZTExBQkxFIFpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRGO0VUSElPUElDIFNZTExBQkxFIFpXQTtMbzswO0w7Ozs7O047Ozs7OworMTJFMDtFVEhJT1BJQyBTWUxMQUJMRSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyRTE7RVRISU9QSUMgU1lMTEFCTEUgWkhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUyO0VUSElPUElDIFNZTExBQkxFIFpISTtMbzswO0w7Ozs7O047Ozs7OworMTJFMztFVEhJT1BJQyBTWUxMQUJMRSBaSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU0O0VUSElPUElDIFNZTExBQkxFIFpIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRTU7RVRISU9QSUMgU1lMTEFCTEUgWkhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU2O0VUSElPUElDIFNZTExBQkxFIFpITztMbzswO0w7Ozs7O047Ozs7OworMTJFNztFVEhJT1BJQyBTWUxMQUJMRSBaSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU4O0VUSElPUElDIFNZTExBQkxFIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU5O0VUSElPUElDIFNZTExBQkxFIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVBO0VUSElPUElDIFNZTExBQkxFIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVCO0VUSElPUElDIFNZTExBQkxFIFlBQTtMbzswO0w7Ozs7O047Ozs7OworMTJFQztFVEhJT1BJQyBTWUxMQUJMRSBZRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRUQ7RVRISU9QSUMgU1lMTEFCTEUgWUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRUU7RVRISU9QSUMgU1lMTEFCTEUgWU87TG87MDtMOzs7OztOOzs7OzsKKzEyRUY7RVRISU9QSUMgU1lMTEFCTEUgWU9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYwO0VUSElPUElDIFNZTExBQkxFIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYxO0VUSElPUElDIFNZTExBQkxFIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYyO0VUSElPUElDIFNZTExBQkxFIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYzO0VUSElPUElDIFNZTExBQkxFIERBQTtMbzswO0w7Ozs7O047Ozs7OworMTJGNDtFVEhJT1BJQyBTWUxMQUJMRSBERUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjU7RVRISU9QSUMgU1lMTEFCTEUgREU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjY7RVRISU9QSUMgU1lMTEFCTEUgRE87TG87MDtMOzs7OztOOzs7OzsKKzEyRjc7RVRISU9QSUMgU1lMTEFCTEUgRFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY4O0VUSElPUElDIFNZTExBQkxFIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTJGOTtFVEhJT1BJQyBTWUxMQUJMRSBERFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRkE7RVRISU9QSUMgU1lMTEFCTEUgRERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZCO0VUSElPUElDIFNZTExBQkxFIEREQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRkM7RVRISU9QSUMgU1lMTEFCTEUgRERFRTtMbzswO0w7Ozs7O047Ozs7OworMTJGRDtFVEhJT1BJQyBTWUxMQUJMRSBEREU7TG87MDtMOzs7OztOOzs7OzsKKzEyRkU7RVRISU9QSUMgU1lMTEFCTEUgRERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZGO0VUSElPUElDIFNZTExBQkxFIEREV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDA7RVRISU9QSUMgU1lMTEFCTEUgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEzMDE7RVRISU9QSUMgU1lMTEFCTEUgSlU7TG87MDtMOzs7OztOOzs7OzsKKzEzMDI7RVRISU9QSUMgU1lMTEFCTEUgSkk7TG87MDtMOzs7OztOOzs7OzsKKzEzMDM7RVRISU9QSUMgU1lMTEFCTEUgSkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA0O0VUSElPUElDIFNZTExBQkxFIEpFRTtMbzswO0w7Ozs7O047Ozs7OworMTMwNTtFVEhJT1BJQyBTWUxMQUJMRSBKRTtMbzswO0w7Ozs7O047Ozs7OworMTMwNjtFVEhJT1BJQyBTWUxMQUJMRSBKTztMbzswO0w7Ozs7O047Ozs7OworMTMwNztFVEhJT1BJQyBTWUxMQUJMRSBKV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDg7RVRISU9QSUMgU1lMTEFCTEUgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDk7RVRISU9QSUMgU1lMTEFCTEUgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEzMEE7RVRISU9QSUMgU1lMTEFCTEUgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzMEI7RVRISU9QSUMgU1lMTEFCTEUgR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBDO0VUSElPUElDIFNZTExBQkxFIEdFRTtMbzswO0w7Ozs7O047Ozs7OworMTMwRDtFVEhJT1BJQyBTWUxMQUJMRSBHRTtMbzswO0w7Ozs7O047Ozs7OworMTMwRTtFVEhJT1BJQyBTWUxMQUJMRSBHTztMbzswO0w7Ozs7O047Ozs7OworMTMwRjtFVEhJT1BJQyBTWUxMQUJMRSBHT0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMTA7RVRISU9QSUMgU1lMTEFCTEUgR1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzEyO0VUSElPUElDIFNZTExBQkxFIEdXSTtMbzswO0w7Ozs7O047Ozs7OworMTMxMztFVEhJT1BJQyBTWUxMQUJMRSBHV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE0O0VUSElPUElDIFNZTExBQkxFIEdXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMTU7RVRISU9QSUMgU1lMTEFCTEUgR1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE4O0VUSElPUElDIFNZTExBQkxFIEdHQTtMbzswO0w7Ozs7O047Ozs7OworMTMxOTtFVEhJT1BJQyBTWUxMQUJMRSBHR1U7TG87MDtMOzs7OztOOzs7OzsKKzEzMUE7RVRISU9QSUMgU1lMTEFCTEUgR0dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzFCO0VUSElPUElDIFNZTExBQkxFIEdHQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMUM7RVRISU9QSUMgU1lMTEFCTEUgR0dFRTtMbzswO0w7Ozs7O047Ozs7OworMTMxRDtFVEhJT1BJQyBTWUxMQUJMRSBHR0U7TG87MDtMOzs7OztOOzs7OzsKKzEzMUU7RVRISU9QSUMgU1lMTEFCTEUgR0dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzFGO0VUSElPUElDIFNZTExBQkxFIEdHV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIwO0VUSElPUElDIFNZTExBQkxFIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTMyMTtFVEhJT1BJQyBTWUxMQUJMRSBUSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzMjI7RVRISU9QSUMgU1lMTEFCTEUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIzO0VUSElPUElDIFNZTExBQkxFIFRIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjQ7RVRISU9QSUMgU1lMTEFCTEUgVEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTMyNTtFVEhJT1BJQyBTWUxMQUJMRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzMjY7RVRISU9QSUMgU1lMTEFCTEUgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI3O0VUSElPUElDIFNZTExBQkxFIFRIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMjg7RVRISU9QSUMgU1lMTEFCTEUgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI5O0VUSElPUElDIFNZTExBQkxFIENIVTtMbzswO0w7Ozs7O047Ozs7OworMTMyQTtFVEhJT1BJQyBTWUxMQUJMRSBDSEk7TG87MDtMOzs7OztOOzs7OzsKKzEzMkI7RVRISU9QSUMgU1lMTEFCTEUgQ0hBQTtMbzswO0w7Ozs7O047Ozs7OworMTMyQztFVEhJT1BJQyBTWUxMQUJMRSBDSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJEO0VUSElPUElDIFNZTExBQkxFIENIRTtMbzswO0w7Ozs7O047Ozs7OworMTMyRTtFVEhJT1BJQyBTWUxMQUJMRSBDSE87TG87MDtMOzs7OztOOzs7OzsKKzEzMkY7RVRISU9QSUMgU1lMTEFCTEUgQ0hXQTtMbzswO0w7Ozs7O047Ozs7OworMTMzMDtFVEhJT1BJQyBTWUxMQUJMRSBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzMzE7RVRISU9QSUMgU1lMTEFCTEUgUEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMyO0VUSElPUElDIFNZTExBQkxFIFBISTtMbzswO0w7Ozs7O047Ozs7OworMTMzMztFVEhJT1BJQyBTWUxMQUJMRSBQSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM0O0VUSElPUElDIFNZTExBQkxFIFBIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzU7RVRISU9QSUMgU1lMTEFCTEUgUEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM2O0VUSElPUElDIFNZTExBQkxFIFBITztMbzswO0w7Ozs7O047Ozs7OworMTMzNztFVEhJT1BJQyBTWUxMQUJMRSBQSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM4O0VUSElPUElDIFNZTExBQkxFIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTMzOTtFVEhJT1BJQyBTWUxMQUJMRSBUU1U7TG87MDtMOzs7OztOOzs7OzsKKzEzM0E7RVRISU9QSUMgU1lMTEFCTEUgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNCO0VUSElPUElDIFNZTExBQkxFIFRTQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzM0M7RVRISU9QSUMgU1lMTEFCTEUgVFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTMzRDtFVEhJT1BJQyBTWUxMQUJMRSBUU0U7TG87MDtMOzs7OztOOzs7OzsKKzEzM0U7RVRISU9QSUMgU1lMTEFCTEUgVFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNGO0VUSElPUElDIFNZTExBQkxFIFRTV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzNDA7RVRISU9QSUMgU1lMTEFCTEUgVFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQxO0VUSElPUElDIFNZTExBQkxFIFRaVTtMbzswO0w7Ozs7O047Ozs7OworMTM0MjtFVEhJT1BJQyBTWUxMQUJMRSBUWkk7TG87MDtMOzs7OztOOzs7OzsKKzEzNDM7RVRISU9QSUMgU1lMTEFCTEUgVFpBQTtMbzswO0w7Ozs7O047Ozs7OworMTM0NDtFVEhJT1BJQyBTWUxMQUJMRSBUWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ1O0VUSElPUElDIFNZTExBQkxFIFRaRTtMbzswO0w7Ozs7O047Ozs7OworMTM0NjtFVEhJT1BJQyBTWUxMQUJMRSBUWk87TG87MDtMOzs7OztOOzs7OzsKKzEzNDc7RVRISU9QSUMgU1lMTEFCTEUgVFpPQTtMbzswO0w7Ozs7O047Ozs7OworMTM0ODtFVEhJT1BJQyBTWUxMQUJMRSBGQTtMbzswO0w7Ozs7O047Ozs7OworMTM0OTtFVEhJT1BJQyBTWUxMQUJMRSBGVTtMbzswO0w7Ozs7O047Ozs7OworMTM0QTtFVEhJT1BJQyBTWUxMQUJMRSBGSTtMbzswO0w7Ozs7O047Ozs7OworMTM0QjtFVEhJT1BJQyBTWUxMQUJMRSBGQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNEM7RVRISU9QSUMgU1lMTEFCTEUgRkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzREO0VUSElPUElDIFNZTExBQkxFIEZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRFO0VUSElPUElDIFNZTExBQkxFIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRGO0VUSElPUElDIFNZTExBQkxFIEZXQTtMbzswO0w7Ozs7O047Ozs7OworMTM1MDtFVEhJT1BJQyBTWUxMQUJMRSBQQTtMbzswO0w7Ozs7O047Ozs7OworMTM1MTtFVEhJT1BJQyBTWUxMQUJMRSBQVTtMbzswO0w7Ozs7O047Ozs7OworMTM1MjtFVEhJT1BJQyBTWUxMQUJMRSBQSTtMbzswO0w7Ozs7O047Ozs7OworMTM1MztFVEhJT1BJQyBTWUxMQUJMRSBQQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNTQ7RVRISU9QSUMgU1lMTEFCTEUgUEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU1O0VUSElPUElDIFNZTExBQkxFIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU2O0VUSElPUElDIFNZTExBQkxFIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU3O0VUSElPUElDIFNZTExBQkxFIFBXQTtMbzswO0w7Ozs7O047Ozs7OworMTM1ODtFVEhJT1BJQyBTWUxMQUJMRSBSWUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNTk7RVRISU9QSUMgU1lMTEFCTEUgTVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzVBO0VUSElPUElDIFNZTExBQkxFIEZZQTtMbzswO0w7Ozs7O047Ozs7OworMTM1RjtFVEhJT1BJQyBDT01CSU5JTkcgR0VNSU5BVElPTiBNQVJLO01uOzIzMDtOU007Ozs7O047Ozs7OworMTM2MDtFVEhJT1BJQyBTRUNUSU9OIE1BUks7U287MDtMOzs7OztOOzs7OzsKKzEzNjE7RVRISU9QSUMgV09SRFNQQUNFO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzYyO0VUSElPUElDIEZVTEwgU1RPUDtQbzswO0w7Ozs7O047Ozs7OworMTM2MztFVEhJT1BJQyBDT01NQTtQbzswO0w7Ozs7O047Ozs7OworMTM2NDtFVEhJT1BJQyBTRU1JQ09MT047UG87MDtMOzs7OztOOzs7OzsKKzEzNjU7RVRISU9QSUMgQ09MT047UG87MDtMOzs7OztOOzs7OzsKKzEzNjY7RVRISU9QSUMgUFJFRkFDRSBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NztFVEhJT1BJQyBRVUVTVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY4O0VUSElPUElDIFBBUkFHUkFQSCBTRVBBUkFUT1I7UG87MDtMOzs7OztOOzs7OzsKKzEzNjk7RVRISU9QSUMgRElHSVQgT05FO05vOzA7TDs7OzE7MTtOOzs7OzsKKzEzNkE7RVRISU9QSUMgRElHSVQgVFdPO05vOzA7TDs7OzI7MjtOOzs7OzsKKzEzNkI7RVRISU9QSUMgRElHSVQgVEhSRUU7Tm87MDtMOzs7MzszO047Ozs7OworMTM2QztFVEhJT1BJQyBESUdJVCBGT1VSO05vOzA7TDs7OzQ7NDtOOzs7OzsKKzEzNkQ7RVRISU9QSUMgRElHSVQgRklWRTtObzswO0w7Ozs1OzU7Tjs7Ozs7CisxMzZFO0VUSElPUElDIERJR0lUIFNJWDtObzswO0w7Ozs2OzY7Tjs7Ozs7CisxMzZGO0VUSElPUElDIERJR0lUIFNFVkVOO05vOzA7TDs7Ozc7NztOOzs7OzsKKzEzNzA7RVRISU9QSUMgRElHSVQgRUlHSFQ7Tm87MDtMOzs7ODs4O047Ozs7OworMTM3MTtFVEhJT1BJQyBESUdJVCBOSU5FO05vOzA7TDs7Ozk7OTtOOzs7OzsKKzEzNzI7RVRISU9QSUMgTlVNQkVSIFRFTjtObzswO0w7Ozs7MTA7Tjs7Ozs7CisxMzczO0VUSElPUElDIE5VTUJFUiBUV0VOVFk7Tm87MDtMOzs7OzIwO047Ozs7OworMTM3NDtFVEhJT1BJQyBOVU1CRVIgVEhJUlRZO05vOzA7TDs7OzszMDtOOzs7OzsKKzEzNzU7RVRISU9QSUMgTlVNQkVSIEZPUlRZO05vOzA7TDs7Ozs0MDtOOzs7OzsKKzEzNzY7RVRISU9QSUMgTlVNQkVSIEZJRlRZO05vOzA7TDs7Ozs1MDtOOzs7OzsKKzEzNzc7RVRISU9QSUMgTlVNQkVSIFNJWFRZO05vOzA7TDs7Ozs2MDtOOzs7OzsKKzEzNzg7RVRISU9QSUMgTlVNQkVSIFNFVkVOVFk7Tm87MDtMOzs7OzcwO047Ozs7OworMTM3OTtFVEhJT1BJQyBOVU1CRVIgRUlHSFRZO05vOzA7TDs7Ozs4MDtOOzs7OzsKKzEzN0E7RVRISU9QSUMgTlVNQkVSIE5JTkVUWTtObzswO0w7Ozs7OTA7Tjs7Ozs7CisxMzdCO0VUSElPUElDIE5VTUJFUiBIVU5EUkVEO05vOzA7TDs7OzsxMDA7Tjs7Ozs7CisxMzdDO0VUSElPUElDIE5VTUJFUiBURU4gVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDAwO047Ozs7OworMTM4MDtFVEhJT1BJQyBTWUxMQUJMRSBTRUJBVEJFSVQgTVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzgxO0VUSElPUElDIFNZTExBQkxFIE1XSTtMbzswO0w7Ozs7O047Ozs7OworMTM4MjtFVEhJT1BJQyBTWUxMQUJMRSBNV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzgzO0VUSElPUElDIFNZTExBQkxFIE1XRTtMbzswO0w7Ozs7O047Ozs7OworMTM4NDtFVEhJT1BJQyBTWUxMQUJMRSBTRUJBVEJFSVQgQldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg1O0VUSElPUElDIFNZTExBQkxFIEJXSTtMbzswO0w7Ozs7O047Ozs7OworMTM4NjtFVEhJT1BJQyBTWUxMQUJMRSBCV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg3O0VUSElPUElDIFNZTExBQkxFIEJXRTtMbzswO0w7Ozs7O047Ozs7OworMTM4ODtFVEhJT1BJQyBTWUxMQUJMRSBTRUJBVEJFSVQgRldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg5O0VUSElPUElDIFNZTExBQkxFIEZXSTtMbzswO0w7Ozs7O047Ozs7OworMTM4QTtFVEhJT1BJQyBTWUxMQUJMRSBGV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhCO0VUSElPUElDIFNZTExBQkxFIEZXRTtMbzswO0w7Ozs7O047Ozs7OworMTM4QztFVEhJT1BJQyBTWUxMQUJMRSBTRUJBVEJFSVQgUFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhEO0VUSElPUElDIFNZTExBQkxFIFBXSTtMbzswO0w7Ozs7O047Ozs7OworMTM4RTtFVEhJT1BJQyBTWUxMQUJMRSBQV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhGO0VUSElPUElDIFNZTExBQkxFIFBXRTtMbzswO0w7Ozs7O047Ozs7OworMTM5MDtFVEhJT1BJQyBUT05BTCBNQVJLIFlJWkVUO1NvOzA7T047Ozs7O047Ozs7OworMTM5MTtFVEhJT1BJQyBUT05BTCBNQVJLIERFUkVUO1NvOzA7T047Ozs7O047Ozs7OworMTM5MjtFVEhJT1BJQyBUT05BTCBNQVJLIFJJS1JJSztTbzswO09OOzs7OztOOzs7OzsKKzEzOTM7RVRISU9QSUMgVE9OQUwgTUFSSyBTSE9SVCBSSUtSSUs7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk0O0VUSElPUElDIFRPTkFMIE1BUksgRElGQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk1O0VUSElPUElDIFRPTkFMIE1BUksgS0VOQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk2O0VUSElPUElDIFRPTkFMIE1BUksgQ0hJUkVUO1NvOzA7T047Ozs7O047Ozs7OworMTM5NztFVEhJT1BJQyBUT05BTCBNQVJLIEhJREVUO1NvOzA7T047Ozs7O047Ozs7OworMTM5ODtFVEhJT1BJQyBUT05BTCBNQVJLIERFUkVULUhJREVUO1NvOzA7T047Ozs7O047Ozs7OworMTM5OTtFVEhJT1BJQyBUT05BTCBNQVJLIEtVUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxM0EwO0NIRVJPS0VFIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0ExO0NIRVJPS0VFIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0EyO0NIRVJPS0VFIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0EzO0NIRVJPS0VFIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E0O0NIRVJPS0VFIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E1O0NIRVJPS0VFIExFVFRFUiBWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E2O0NIRVJPS0VFIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTNBNztDSEVST0tFRSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEzQTg7Q0hFUk9LRUUgTEVUVEVSIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E5O0NIRVJPS0VFIExFVFRFUiBHSTtMbzswO0w7Ozs7O047Ozs7OworMTNBQTtDSEVST0tFRSBMRVRURVIgR087TG87MDtMOzs7OztOOzs7OzsKKzEzQUI7Q0hFUk9LRUUgTEVUVEVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FDO0NIRVJPS0VFIExFVFRFUiBHVjtMbzswO0w7Ozs7O047Ozs7OworMTNBRDtDSEVST0tFRSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQUU7Q0hFUk9LRUUgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FGO0NIRVJPS0VFIExFVFRFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMTNCMDtDSEVST0tFRSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzEzQjE7Q0hFUk9LRUUgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IyO0NIRVJPS0VFIExFVFRFUiBIVjtMbzswO0w7Ozs7O047Ozs7OworMTNCMztDSEVST0tFRSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQjQ7Q0hFUk9LRUUgTEVUVEVSIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I1O0NIRVJPS0VFIExFVFRFUiBMSTtMbzswO0w7Ozs7O047Ozs7OworMTNCNjtDSEVST0tFRSBMRVRURVIgTE87TG87MDtMOzs7OztOOzs7OzsKKzEzQjc7Q0hFUk9LRUUgTEVUVEVSIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I4O0NIRVJPS0VFIExFVFRFUiBMVjtMbzswO0w7Ozs7O047Ozs7OworMTNCOTtDSEVST0tFRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEzQkE7Q0hFUk9LRUUgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JCO0NIRVJPS0VFIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTNCQztDSEVST0tFRSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzEzQkQ7Q0hFUk9LRUUgTEVUVEVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JFO0NIRVJPS0VFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTNCRjtDSEVST0tFRSBMRVRURVIgSE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MwO0NIRVJPS0VFIExFVFRFUiBOQUg7TG87MDtMOzs7OztOOzs7OzsKKzEzQzE7Q0hFUk9LRUUgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MyO0NIRVJPS0VFIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMTNDMztDSEVST0tFRSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzEzQzQ7Q0hFUk9LRUUgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M1O0NIRVJPS0VFIExFVFRFUiBOVjtMbzswO0w7Ozs7O047Ozs7OworMTNDNjtDSEVST0tFRSBMRVRURVIgUVVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M3O0NIRVJPS0VFIExFVFRFUiBRVUU7TG87MDtMOzs7OztOOzs7OzsKKzEzQzg7Q0hFUk9LRUUgTEVUVEVSIFFVSTtMbzswO0w7Ozs7O047Ozs7OworMTNDOTtDSEVST0tFRSBMRVRURVIgUVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NBO0NIRVJPS0VFIExFVFRFUiBRVVU7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0I7Q0hFUk9LRUUgTEVUVEVSIFFVVjtMbzswO0w7Ozs7O047Ozs7OworMTNDQztDSEVST0tFRSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0Q7Q0hFUk9LRUUgTEVUVEVSIFM7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0U7Q0hFUk9LRUUgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NGO0NIRVJPS0VFIExFVFRFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMTNEMDtDSEVST0tFRSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzEzRDE7Q0hFUk9LRUUgTEVUVEVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QyO0NIRVJPS0VFIExFVFRFUiBTVjtMbzswO0w7Ozs7O047Ozs7OworMTNEMztDSEVST0tFRSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzEzRDQ7Q0hFUk9LRUUgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q1O0NIRVJPS0VFIExFVFRFUiBERTtMbzswO0w7Ozs7O047Ozs7OworMTNENjtDSEVST0tFRSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEzRDc7Q0hFUk9LRUUgTEVUVEVSIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q4O0NIRVJPS0VFIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMTNEOTtDSEVST0tFRSBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzEzREE7Q0hFUk9LRUUgTEVUVEVSIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RCO0NIRVJPS0VFIExFVFRFUiBEVjtMbzswO0w7Ozs7O047Ozs7OworMTNEQztDSEVST0tFRSBMRVRURVIgRExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0REO0NIRVJPS0VFIExFVFRFUiBUTEE7TG87MDtMOzs7OztOOzs7OzsKKzEzREU7Q0hFUk9LRUUgTEVUVEVSIFRMRTtMbzswO0w7Ozs7O047Ozs7OworMTNERjtDSEVST0tFRSBMRVRURVIgVExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UwO0NIRVJPS0VFIExFVFRFUiBUTE87TG87MDtMOzs7OztOOzs7OzsKKzEzRTE7Q0hFUk9LRUUgTEVUVEVSIFRMVTtMbzswO0w7Ozs7O047Ozs7OworMTNFMjtDSEVST0tFRSBMRVRURVIgVExWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UzO0NIRVJPS0VFIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzEzRTQ7Q0hFUk9LRUUgTEVUVEVSIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTNFNTtDSEVST0tFRSBMRVRURVIgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U2O0NIRVJPS0VFIExFVFRFUiBUU087TG87MDtMOzs7OztOOzs7OzsKKzEzRTc7Q0hFUk9LRUUgTEVUVEVSIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTNFODtDSEVST0tFRSBMRVRURVIgVFNWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U5O0NIRVJPS0VFIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTNFQTtDSEVST0tFRSBMRVRURVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEzRUI7Q0hFUk9LRUUgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VDO0NIRVJPS0VFIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMTNFRDtDSEVST0tFRSBMRVRURVIgV1U7TG87MDtMOzs7OztOOzs7OzsKKzEzRUU7Q0hFUk9LRUUgTEVUVEVSIFdWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VGO0NIRVJPS0VFIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTNGMDtDSEVST0tFRSBMRVRURVIgWUU7TG87MDtMOzs7OztOOzs7OzsKKzEzRjE7Q0hFUk9LRUUgTEVUVEVSIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YyO0NIRVJPS0VFIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTNGMztDSEVST0tFRSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzEzRjQ7Q0hFUk9LRUUgTEVUVEVSIFlWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDAxO0NBTkFESUFOIFNZTExBQklDUyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDAyO0NBTkFESUFOIFNZTExBQklDUyBBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDM7Q0FOQURJQU4gU1lMTEFCSUNTIEk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDQ7Q0FOQURJQU4gU1lMTEFCSUNTIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA1O0NBTkFESUFOIFNZTExBQklDUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA2O0NBTkFESUFOIFNZTExBQklDUyBPTztMbzswO0w7Ozs7O047Ozs7OworMTQwNztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE0MEE7Q0FOQURJQU4gU1lMTEFCSUNTIEE7TG87MDtMOzs7OztOOzs7OzsKKzE0MEI7Q0FOQURJQU4gU1lMTEFCSUNTIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBDO0NBTkFESUFOIFNZTExBQklDUyBXRTtMbzswO0w7Ozs7O047Ozs7OworMTQwRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBFO0NBTkFESUFOIFNZTExBQklDUyBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQwRjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDEwO0NBTkFESUFOIFNZTExBQklDUyBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MTE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MTI7Q0FOQURJQU4gU1lMTEFCSUNTIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDEzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV087TG87MDtMOzs7OztOOzs7OzsKKzE0MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0MTc7Q0FOQURJQU4gU1lMTEFCSUNTIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE4O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0MTk7Q0FOQURJQU4gU1lMTEFCSUNTIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0MUM7Q0FOQURJQU4gU1lMTEFCSUNTIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFEO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgVztMbzswO0w7Ozs7O047Ozs7OworMTQxRTtDQU5BRElBTiBTWUxMQUJJQ1MgR0xPVFRBTCBTVE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFGO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBBQ1VURTtMbzswO0w7Ozs7O047Ozs7OworMTQyMDtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgR1JBVkU7TG87MDtMOzs7OztOOzs7OzsKKzE0MjE7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIEJPVFRPTSBIQUxGIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjI7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFRPUCBIQUxGIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjM7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFJJR0hUIEhBTEYgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyNDtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyNTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgRE9VQkxFIEFDVVRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI2O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBET1VCTEUgU0hPUlQgVkVSVElDQUwgU1RST0tFUztMbzswO0w7Ozs7O047Ozs7OworMTQyNztDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgTUlERExFIERPVDtMbzswO0w7Ozs7O047Ozs7OworMTQyODtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgU0hPUlQgSE9SSVpPTlRBTCBTVFJPS0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFBMVVM7TG87MDtMOzs7OztOOzs7OzsKKzE0MkE7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIERPV04gVEFDSztMbzswO0w7Ozs7O047Ozs7OworMTQyQjtDQU5BRElBTiBTWUxMQUJJQ1MgRU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkM7Q0FOQURJQU4gU1lMTEFCSUNTIElOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJEO0NBTkFESUFOIFNZTExBQklDUyBPTjtMbzswO0w7Ozs7O047Ozs7OworMTQyRTtDQU5BRElBTiBTWUxMQUJJQ1MgQU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkY7Q0FOQURJQU4gU1lMTEFCSUNTIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMwO0NBTkFESUFOIFNZTExBQklDUyBQQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMxO0NBTkFESUFOIFNZTExBQklDUyBQSTtMbzswO0w7Ozs7O047Ozs7OworMTQzMjtDQU5BRElBTiBTWUxMQUJJQ1MgUElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMzO0NBTkFESUFOIFNZTExBQklDUyBQTztMbzswO0w7Ozs7O047Ozs7OworMTQzNDtDQU5BRElBTiBTWUxMQUJJQ1MgUE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM1O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgUE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTQzNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMTQzODtDQU5BRElBTiBTWUxMQUJJQ1MgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE0Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIFBBQTtMbzswO0w7Ozs7O047Ozs7OworMTQzQTtDQU5BRElBTiBTWUxMQUJJQ1MgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNDO0NBTkFESUFOIFNZTExBQklDUyBQV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0M0Q7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0M0U7Q0FOQURJQU4gU1lMTEFCSUNTIFBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0M0Y7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQwO0NBTkFESUFOIFNZTExBQklDUyBQV087TG87MDtMOzs7OztOOzs7OzsKKzE0NDE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV087TG87MDtMOzs7OztOOzs7OzsKKzE0NDI7Q0FOQURJQU4gU1lMTEFCSUNTIFBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NDM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ0O0NBTkFESUFOIFNZTExBQklDUyBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NDU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NDY7Q0FOQURJQU4gU1lMTEFCSUNTIFBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NDc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ4O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgUFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0OTtDQU5BRElBTiBTWUxMQUJJQ1MgUDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFA7TG87MDtMOzs7OztOOzs7OzsKKzE0NEI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QztDQU5BRElBTiBTWUxMQUJJQ1MgVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NEU7Q0FOQURJQU4gU1lMTEFCSUNTIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRGO0NBTkFESUFOIFNZTExBQklDUyBUSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NTA7Q0FOQURJQU4gU1lMTEFCSUNTIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDUxO0NBTkFESUFOIFNZTExBQklDUyBUT087TG87MDtMOzs7OztOOzs7OzsKKzE0NTI7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBUT087TG87MDtMOzs7OztOOzs7OzsKKzE0NTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgREVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU1O0NBTkFESUFOIFNZTExBQklDUyBUQTtMbzswO0w7Ozs7O047Ozs7OworMTQ1NjtDQU5BRElBTiBTWUxMQUJJQ1MgVEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU3O0NBTkFESUFOIFNZTExBQklDUyBUV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NTg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NTk7Q0FOQURJQU4gU1lMTEFCSUNTIFRXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QjtDQU5BRElBTiBTWUxMQUJJQ1MgVFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTQ1RTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTQ1RjtDQU5BRElBTiBTWUxMQUJJQ1MgVFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ2MDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NjE7Q0FOQURJQU4gU1lMTEFCSUNTIFRXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2MjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2MztDQU5BRElBTiBTWUxMQUJJQ1MgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NjU7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NjtDQU5BRElBTiBTWUxMQUJJQ1MgVDtMbzswO0w7Ozs7O047Ozs7OworMTQ2NztDQU5BRElBTiBTWUxMQUJJQ1MgVFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY4O0NBTkFESUFOIFNZTExBQklDUyBUVEk7TG87MDtMOzs7OztOOzs7OzsKKzE0Njk7Q0FOQURJQU4gU1lMTEFCSUNTIFRUTztMbzswO0w7Ozs7O047Ozs7OworMTQ2QTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZCO0NBTkFESUFOIFNZTExBQklDUyBLRTtMbzswO0w7Ozs7O047Ozs7OworMTQ2QztDQU5BRElBTiBTWUxMQUJJQ1MgS0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RDtDQU5BRElBTiBTWUxMQUJJQ1MgS0k7TG87MDtMOzs7OztOOzs7OzsKKzE0NkU7Q0FOQURJQU4gU1lMTEFCSUNTIEtJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RjtDQU5BRElBTiBTWUxMQUJJQ1MgS087TG87MDtMOzs7OztOOzs7OzsKKzE0NzA7Q0FOQURJQU4gU1lMTEFCSUNTIEtPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MTtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIEtPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MjtDQU5BRElBTiBTWUxMQUJJQ1MgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NzM7Q0FOQURJQU4gU1lMTEFCSUNTIEtBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ3NDtDQU5BRElBTiBTWUxMQUJJQ1MgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc2O0NBTkFESUFOIFNZTExBQklDUyBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzg7Q0FOQURJQU4gU1lMTEFCSUNTIEtXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdBO0NBTkFESUFOIFNZTExBQklDUyBLV087TG87MDtMOzs7OztOOzs7OzsKKzE0N0I7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV087TG87MDtMOzs7OztOOzs7OzsKKzE0N0M7Q0FOQURJQU4gU1lMTEFCSUNTIEtXT087TG87MDtMOzs7OztOOzs7OzsKKzE0N0Q7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdFO0NBTkFESUFOIFNZTExBQklDUyBLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0N0Y7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0ODA7Q0FOQURJQU4gU1lMTEFCSUNTIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDgyO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODM7Q0FOQURJQU4gU1lMTEFCSUNTIEs7TG87MDtMOzs7OztOOzs7OzsKKzE0ODQ7Q0FOQURJQU4gU1lMTEFCSUNTIEtXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg1O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0VIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg2O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0lIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg3O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS09IO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg4O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0FIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg5O0NBTkFESUFOIFNZTExBQklDUyBDRTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OEM7Q0FOQURJQU4gU1lMTEFCSUNTIENJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4RDtDQU5BRElBTiBTWUxMQUJJQ1MgQ087TG87MDtMOzs7OztOOzs7OzsKKzE0OEU7Q0FOQURJQU4gU1lMTEFCSUNTIENPTztMbzswO0w7Ozs7O047Ozs7OworMTQ4RjtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIENPTztMbzswO0w7Ozs7O047Ozs7OworMTQ5MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk0O0NBTkFESUFOIFNZTExBQklDUyBDV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OTU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OTY7Q0FOQURJQU4gU1lMTEFCSUNTIENXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0OTc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk4O0NBTkFESUFOIFNZTExBQklDUyBDV087TG87MDtMOzs7OztOOzs7OzsKKzE0OTk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV087TG87MDtMOzs7OztOOzs7OzsKKzE0OUE7Q0FOQURJQU4gU1lMTEFCSUNTIENXT087TG87MDtMOzs7OztOOzs7OzsKKzE0OUI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlDO0NBTkFESUFOIFNZTExBQklDUyBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OUU7Q0FOQURJQU4gU1lMTEFCSUNTIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0OUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEEwO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QTE7Q0FOQURJQU4gU1lMTEFCSUNTIEM7TG87MDtMOzs7OztOOzs7OzsKKzE0QTI7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTRBMztDQU5BRElBTiBTWUxMQUJJQ1MgTUU7TG87MDtMOzs7OztOOzs7OzsKKzE0QTQ7Q0FOQURJQU4gU1lMTEFCSUNTIE1BQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTU7Q0FOQURJQU4gU1lMTEFCSUNTIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE2O0NBTkFESUFOIFNZTExBQklDUyBNSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTc7Q0FOQURJQU4gU1lMTEFCSUNTIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE4O0NBTkFESUFOIFNZTExBQklDUyBNT087TG87MDtMOzs7OztOOzs7OzsKKzE0QTk7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBNT087TG87MDtMOzs7OztOOzs7OzsKKzE0QUE7Q0FOQURJQU4gU1lMTEFCSUNTIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFCO0NBTkFESUFOIFNZTExBQklDUyBNQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QUM7Q0FOQURJQU4gU1lMTEFCSUNTIE1XRTtMbzswO0w7Ozs7O047Ozs7OworMTRBRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XRTtMbzswO0w7Ozs7O047Ozs7OworMTRBRTtDQU5BRElBTiBTWUxMQUJJQ1MgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIwO0NBTkFESUFOIFNZTExBQklDUyBNV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRCMjtDQU5BRElBTiBTWUxMQUJJQ1MgTVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI0O0NBTkFESUFOIFNZTExBQklDUyBNV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdPTztMbzswO0w7Ozs7O047Ozs7OworMTRCNjtDQU5BRElBTiBTWUxMQUJJQ1MgTVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI4O0NBTkFESUFOIFNZTExBQklDUyBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRCQTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJCO0NBTkFESUFOIFNZTExBQklDUyBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTTtMbzswO0w7Ozs7O047Ozs7OworMTRCRDtDQU5BRElBTiBTWUxMQUJJQ1MgTUg7TG87MDtMOzs7OztOOzs7OzsKKzE0QkU7Q0FOQURJQU4gU1lMTEFCSUNTIEFUSEFQQVNDQU4gTTtMbzswO0w7Ozs7O047Ozs7OworMTRCRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIE07TG87MDtMOzs7OztOOzs7OzsKKzE0QzA7Q0FOQURJQU4gU1lMTEFCSUNTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMxO0NBTkFESUFOIFNZTExBQklDUyBOQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMyO0NBTkFESUFOIFNZTExBQklDUyBOSTtMbzswO0w7Ozs7O047Ozs7OworMTRDMztDQU5BRElBTiBTWUxMQUJJQ1MgTklJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM0O0NBTkFESUFOIFNZTExBQklDUyBOTztMbzswO0w7Ozs7O047Ozs7OworMTRDNTtDQU5BRElBTiBTWUxMQUJJQ1MgTk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM2O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgTk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM3O0NBTkFESUFOIFNZTExBQklDUyBOQTtMbzswO0w7Ozs7O047Ozs7OworMTRDODtDQU5BRElBTiBTWUxMQUJJQ1MgTkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM5O0NBTkFESUFOIFNZTExBQklDUyBOV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0E7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBOV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0I7Q0FOQURJQU4gU1lMTEFCSUNTIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTRDQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRDtDQU5BRElBTiBTWUxMQUJJQ1MgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0Y7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTREMDtDQU5BRElBTiBTWUxMQUJJQ1MgTjtMbzswO0w7Ozs7O047Ozs7OworMTREMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBORztMbzswO0w7Ozs7O047Ozs7OworMTREMjtDQU5BRElBTiBTWUxMQUJJQ1MgTkg7TG87MDtMOzs7OztOOzs7OzsKKzE0RDM7Q0FOQURJQU4gU1lMTEFCSUNTIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ0O0NBTkFESUFOIFNZTExBQklDUyBMQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ1O0NBTkFESUFOIFNZTExBQklDUyBMSTtMbzswO0w7Ozs7O047Ozs7OworMTRENjtDQU5BRElBTiBTWUxMQUJJQ1MgTElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ3O0NBTkFESUFOIFNZTExBQklDUyBMTztMbzswO0w7Ozs7O047Ozs7OworMTREODtDQU5BRElBTiBTWUxMQUJJQ1MgTE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ5O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgTE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERBO0NBTkFESUFOIFNZTExBQklDUyBMQTtMbzswO0w7Ozs7O047Ozs7OworMTREQjtDQU5BRElBTiBTWUxMQUJJQ1MgTEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERDO0NBTkFESUFOIFNZTExBQklDUyBMV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0REQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0REU7Q0FOQURJQU4gU1lMTEFCSUNTIExXSTtMbzswO0w7Ozs7O047Ozs7OworMTRERjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMDtDQU5BRElBTiBTWUxMQUJJQ1MgTFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RTI7Q0FOQURJQU4gU1lMTEFCSUNTIExXTztMbzswO0w7Ozs7O047Ozs7OworMTRFMztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXTztMbzswO0w7Ozs7O047Ozs7OworMTRFNDtDQU5BRElBTiBTWUxMQUJJQ1MgTFdPTztMbzswO0w7Ozs7O047Ozs7OworMTRFNTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXT087TG87MDtMOzs7OztOOzs7OzsKKzE0RTY7Q0FOQURJQU4gU1lMTEFCSUNTIExXQTtMbzswO0w7Ozs7O047Ozs7OworMTRFNztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXQTtMbzswO0w7Ozs7O047Ozs7OworMTRFODtDQU5BRElBTiBTWUxMQUJJQ1MgTFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRFOTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RUE7Q0FOQURJQU4gU1lMTEFCSUNTIEw7TG87MDtMOzs7OztOOzs7OzsKKzE0RUI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVDO0NBTkFESUFOIFNZTExBQklDUyBNRURJQUwgTDtMbzswO0w7Ozs7O047Ozs7OworMTRFRDtDQU5BRElBTiBTWUxMQUJJQ1MgU0U7TG87MDtMOzs7OztOOzs7OzsKKzE0RUU7Q0FOQURJQU4gU1lMTEFCSUNTIFNBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RUY7Q0FOQURJQU4gU1lMTEFCSUNTIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYwO0NBTkFESUFOIFNZTExBQklDUyBTSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RjE7Q0FOQURJQU4gU1lMTEFCSUNTIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYyO0NBTkFESUFOIFNZTExBQklDUyBTT087TG87MDtMOzs7OztOOzs7OzsKKzE0RjM7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBTT087TG87MDtMOzs7OztOOzs7OzsKKzE0RjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY1O0NBTkFESUFOIFNZTExBQklDUyBTQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RjY7Q0FOQURJQU4gU1lMTEFCSUNTIFNXRTtMbzswO0w7Ozs7O047Ozs7OworMTRGNztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXRTtMbzswO0w7Ozs7O047Ozs7OworMTRGODtDQU5BRElBTiBTWUxMQUJJQ1MgU1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZBO0NBTkFESUFOIFNZTExBQklDUyBTV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTRGQztDQU5BRElBTiBTWUxMQUJJQ1MgU1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZFO0NBTkFESUFOIFNZTExBQklDUyBTV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dPTztMbzswO0w7Ozs7O047Ozs7OworMTUwMDtDQU5BRElBTiBTWUxMQUJJQ1MgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAyO0NBTkFESUFOIFNZTExBQklDUyBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTUwNDtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA1O0NBTkFESUFOIFNZTExBQklDUyBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA2O0NBTkFESUFOIFNZTExBQklDUyBBVEhBUEFTQ0FOIFM7TG87MDtMOzs7OztOOzs7OzsKKzE1MDc7Q0FOQURJQU4gU1lMTEFCSUNTIFNXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA4O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgUztMbzswO0w7Ozs7O047Ozs7OworMTUwOTtDQU5BRElBTiBTWUxMQUJJQ1MgTU9PU0UtQ1JFRSBTSztMbzswO0w7Ozs7O047Ozs7OworMTUwQTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTS1c7TG87MDtMOzs7OztOOzs7OzsKKzE1MEI7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgUy1XO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBDO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MEQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU1RXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwRTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBGO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MTA7Q0FOQURJQU4gU1lMTEFCSUNTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTUxMTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTEyO0NBTkFESUFOIFNZTExBQklDUyBTSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTEzO0NBTkFESUFOIFNZTExBQklDUyBTSE87TG87MDtMOzs7OztOOzs7OzsKKzE1MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNIT087TG87MDtMOzs7OztOOzs7OzsKKzE1MTU7Q0FOQURJQU4gU1lMTEFCSUNTIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTUxNjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hBQTtMbzswO0w7Ozs7O047Ozs7OworMTUxNztDQU5BRElBTiBTWUxMQUJJQ1MgU0hXRTtMbzswO0w7Ozs7O047Ozs7OworMTUxODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MTk7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MUE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFCO0NBTkFESUFOIFNZTExBQklDUyBTSFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTUxQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFEO0NBTkFESUFOIFNZTExBQklDUyBTSFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFFO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXTztMbzswO0w7Ozs7O047Ozs7OworMTUxRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXT087TG87MDtMOzs7OztOOzs7OzsKKzE1MjA7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdPTztMbzswO0w7Ozs7O047Ozs7OworMTUyMTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXQTtMbzswO0w7Ozs7O047Ozs7OworMTUyMjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MjM7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MjU7Q0FOQURJQU4gU1lMTEFCSUNTIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI2O0NBTkFESUFOIFNZTExBQklDUyBZRTtMbzswO0w7Ozs7O047Ozs7OworMTUyNztDQU5BRElBTiBTWUxMQUJJQ1MgWUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTUyODtDQU5BRElBTiBTWUxMQUJJQ1MgWUk7TG87MDtMOzs7OztOOzs7OzsKKzE1Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIFlJSTtMbzswO0w7Ozs7O047Ozs7OworMTUyQTtDQU5BRElBTiBTWUxMQUJJQ1MgWU87TG87MDtMOzs7OztOOzs7OzsKKzE1MkI7Q0FOQURJQU4gU1lMTEFCSUNTIFlPTztMbzswO0w7Ozs7O047Ozs7OworMTUyQztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFlPTztMbzswO0w7Ozs7O047Ozs7OworMTUyRDtDQU5BRElBTiBTWUxMQUJJQ1MgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MkU7Q0FOQURJQU4gU1lMTEFCSUNTIFlBQTtMbzswO0w7Ozs7O047Ozs7OworMTUyRjtDQU5BRElBTiBTWUxMQUJJQ1MgWVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMxO0NBTkFESUFOIFNZTExBQklDUyBZV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MzI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MzM7Q0FOQURJQU4gU1lMTEFCSUNTIFlXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MzQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM1O0NBTkFESUFOIFNZTExBQklDUyBZV087TG87MDtMOzs7OztOOzs7OzsKKzE1MzY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzc7Q0FOQURJQU4gU1lMTEFCSUNTIFlXT087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM5O0NBTkFESUFOIFNZTExBQklDUyBZV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1M0E7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1M0I7Q0FOQURJQU4gU1lMTEFCSUNTIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0M7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNEO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0U7Q0FOQURJQU4gU1lMTEFCSUNTIFk7TG87MDtMOzs7OztOOzs7OzsKKzE1M0Y7Q0FOQURJQU4gU1lMTEFCSUNTIEJJQkxFLUNSRUUgWTtMbzswO0w7Ozs7O047Ozs7OworMTU0MDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBZSTtMbzswO0w7Ozs7O047Ozs7OworMTU0MjtDQU5BRElBTiBTWUxMQUJJQ1MgUkU7TG87MDtMOzs7OztOOzs7OzsKKzE1NDM7Q0FOQURJQU4gU1lMTEFCSUNTIFItQ1JFRSBSRTtMbzswO0w7Ozs7O047Ozs7OworMTU0NDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ1O0NBTkFESUFOIFNZTExBQklDUyBSQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ2O0NBTkFESUFOIFNZTExBQklDUyBSSTtMbzswO0w7Ozs7O047Ozs7OworMTU0NztDQU5BRElBTiBTWUxMQUJJQ1MgUklJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ4O0NBTkFESUFOIFNZTExBQklDUyBSTztMbzswO0w7Ozs7O047Ozs7OworMTU0OTtDQU5BRElBTiBTWUxMQUJJQ1MgUk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTE87TG87MDtMOzs7OztOOzs7OzsKKzE1NEI7Q0FOQURJQU4gU1lMTEFCSUNTIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRDO0NBTkFESUFOIFNZTExBQklDUyBSQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RTtDQU5BRElBTiBTWUxMQUJJQ1MgUldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NTA7Q0FOQURJQU4gU1lMTEFCSUNTIFI7TG87MDtMOzs7OztOOzs7OzsKKzE1NTE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTUyO0NBTkFESUFOIFNZTExBQklDUyBNRURJQUwgUjtMbzswO0w7Ozs7O047Ozs7OworMTU1MztDQU5BRElBTiBTWUxMQUJJQ1MgRkU7TG87MDtMOzs7OztOOzs7OzsKKzE1NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIEZBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTU7Q0FOQURJQU4gU1lMTEFCSUNTIEZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU2O0NBTkFESUFOIFNZTExBQklDUyBGSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTc7Q0FOQURJQU4gU1lMTEFCSUNTIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU4O0NBTkFESUFOIFNZTExBQklDUyBGT087TG87MDtMOzs7OztOOzs7OzsKKzE1NTk7Q0FOQURJQU4gU1lMTEFCSUNTIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVBO0NBTkFESUFOIFNZTExBQklDUyBGQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUI7Q0FOQURJQU4gU1lMTEFCSUNTIEZXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBGV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVEO0NBTkFESUFOIFNZTExBQklDUyBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVFO0NBTkFESUFOIFNZTExBQklDUyBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NUY7Q0FOQURJQU4gU1lMTEFCSUNTIE4tQ1JFRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NjA7Q0FOQURJQU4gU1lMTEFCSUNTIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2MTtDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2MjtDQU5BRElBTiBTWUxMQUJJQ1MgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTU2MztDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRITztMbzswO0w7Ozs7O047Ozs7OworMTU2NTtDQU5BRElBTiBTWUxMQUJJQ1MgVEhPTztMbzswO0w7Ozs7O047Ozs7OworMTU2NjtDQU5BRElBTiBTWUxMQUJJQ1MgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY3O0NBTkFESUFOIFNZTExBQklDUyBUSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY4O0NBTkFESUFOIFNZTExBQklDUyBUSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTU2OTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZBO0NBTkFESUFOIFNZTExBQklDUyBUSDtMbzswO0w7Ozs7O047Ozs7OworMTU2QjtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU2QztDQU5BRElBTiBTWUxMQUJJQ1MgVFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2RDtDQU5BRElBTiBTWUxMQUJJQ1MgVFRITztMbzswO0w7Ozs7O047Ozs7OworMTU2RTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTU2RjtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTcwO0NBTkFESUFOIFNZTExBQklDUyBUWUU7TG87MDtMOzs7OztOOzs7OzsKKzE1NzE7Q0FOQURJQU4gU1lMTEFCSUNTIFRZSTtMbzswO0w7Ozs7O047Ozs7OworMTU3MjtDQU5BRElBTiBTWUxMQUJJQ1MgVFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTczO0NBTkFESUFOIFNZTExBQklDUyBUWUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NzQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NzU7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1NzY7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc3O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc4O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhPTztMbzswO0w7Ozs7O047Ozs7OworMTU3OTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTU3QTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1N0I7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSDtMbzswO0w7Ozs7O047Ozs7OworMTU3QztDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZVVCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdEO0NBTkFESUFOIFNZTExBQklDUyBISztMbzswO0w7Ozs7O047Ozs7OworMTU3RTtDQU5BRElBTiBTWUxMQUJJQ1MgUUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTU3RjtDQU5BRElBTiBTWUxMQUJJQ1MgUUk7TG87MDtMOzs7OztOOzs7OzsKKzE1ODA7Q0FOQURJQU4gU1lMTEFCSUNTIFFJSTtMbzswO0w7Ozs7O047Ozs7OworMTU4MTtDQU5BRElBTiBTWUxMQUJJQ1MgUU87TG87MDtMOzs7OztOOzs7OzsKKzE1ODI7Q0FOQURJQU4gU1lMTEFCSUNTIFFPTztMbzswO0w7Ozs7O047Ozs7OworMTU4MztDQU5BRElBTiBTWUxMQUJJQ1MgUUE7TG87MDtMOzs7OztOOzs7OzsKKzE1ODQ7Q0FOQURJQU4gU1lMTEFCSUNTIFFBQTtMbzswO0w7Ozs7O047Ozs7OworMTU4NTtDQU5BRElBTiBTWUxMQUJJQ1MgUTtMbzswO0w7Ozs7O047Ozs7OworMTU4NjtDQU5BRElBTiBTWUxMQUJJQ1MgVExIRTtMbzswO0w7Ozs7O047Ozs7OworMTU4NztDQU5BRElBTiBTWUxMQUJJQ1MgVExISTtMbzswO0w7Ozs7O047Ozs7OworMTU4ODtDQU5BRElBTiBTWUxMQUJJQ1MgVExITztMbzswO0w7Ozs7O047Ozs7OworMTU4OTtDQU5BRElBTiBTWUxMQUJJQ1MgVExIQTtMbzswO0w7Ozs7O047Ozs7OworMTU4QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUkk7TG87MDtMOzs7OztOOzs7OzsKKzE1OEM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSTztMbzswO0w7Ozs7O047Ozs7OworMTU4RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThFO0NBTkFESUFOIFNZTExBQklDUyBOR0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTU4RjtDQU5BRElBTiBTWUxMQUJJQ1MgTkdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkwO0NBTkFESUFOIFNZTExBQklDUyBOR0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkxO0NBTkFESUFOIFNZTExBQklDUyBOR087TG87MDtMOzs7OztOOzs7OzsKKzE1OTI7Q0FOQURJQU4gU1lMTEFCSUNTIE5HT087TG87MDtMOzs7OztOOzs7OzsKKzE1OTM7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTU5NDtDQU5BRElBTiBTWUxMQUJJQ1MgTkdBQTtMbzswO0w7Ozs7O047Ozs7OworMTU5NTtDQU5BRElBTiBTWUxMQUJJQ1MgTkc7TG87MDtMOzs7OztOOzs7OzsKKzE1OTY7Q0FOQURJQU4gU1lMTEFCSUNTIE5ORztMbzswO0w7Ozs7O047Ozs7OworMTU5NztDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTU5ODtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTU5OTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNITztMbzswO0w7Ozs7O047Ozs7OworMTU5QTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTU5QjtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1OUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlEO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRITztMbzswO0w7Ozs7O047Ozs7OworMTU5RTtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1OUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEg7TG87MDtMOzs7OztOOzs7OzsKKzE1QTA7Q0FOQURJQU4gU1lMTEFCSUNTIExISTtMbzswO0w7Ozs7O047Ozs7OworMTVBMTtDQU5BRElBTiBTWUxMQUJJQ1MgTEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTVBMjtDQU5BRElBTiBTWUxMQUJJQ1MgTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUEzO0NBTkFESUFOIFNZTExBQklDUyBMSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE0O0NBTkFESUFOIFNZTExBQklDUyBMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QTU7Q0FOQURJQU4gU1lMTEFCSUNTIExIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1QTY7Q0FOQURJQU4gU1lMTEFCSUNTIExIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE3O0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTVBODtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QTk7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTVBQTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QUI7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhPTztMbzswO0w7Ozs7O047Ozs7OworMTVBQztDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTVBRTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTVBRjtDQU5BRElBTiBTWUxMQUJJQ1MgQUlWSUxJSyBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIwO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgRTtMbzswO0w7Ozs7O047Ozs7OworMTVCMTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QjI7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIzO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgQTtMbzswO0w7Ozs7O047Ozs7OworMTVCNDtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI1O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1QjY7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBXTztMbzswO0w7Ozs7O047Ozs7OworMTVCNztDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI4O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTkU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qjk7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBOSTtMbzswO0w7Ozs7O047Ozs7OworMTVCQTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJCO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE1QkM7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLRTtMbzswO0w7Ozs7O047Ozs7OworMTVCRDtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJFO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgS087TG87MDtMOzs7OztOOzs7OzsKKzE1QkY7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLQTtMbzswO0w7Ozs7O047Ozs7OworMTVDMDtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMxO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QzI7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBITztMbzswO0w7Ozs7O047Ozs7OworMTVDMztDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIVTtMbzswO0w7Ozs7O047Ozs7OworMTVDNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QzY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qzg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTVDQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMTVDQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMTVDQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMTVDRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0U7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0Y7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE1RDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV087TG87MDtMOzs7OztOOzs7OzsKKzE1RDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXVTtMbzswO0w7Ozs7O047Ozs7OworMTVENztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV087TG87MDtMOzs7OztOOzs7OzsKKzE1RDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1REE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTVEQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSFU7TG87MDtMOzs7OztOOzs7OzsKKzE1REQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTVERjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTVFMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUTztMbzswO0w7Ozs7O047Ozs7OworMTVFNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRFRTtMbzswO0w7Ozs7O047Ozs7OworMTVFNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEk7TG87MDtMOzs7OztOOzs7OzsKKzE1RTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBFRTtMbzswO0w7Ozs7O047Ozs7OworMTVFQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQSTtMbzswO0w7Ozs7O047Ozs7OworMTVFRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTVFRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdFRTtMbzswO0w7Ozs7O047Ozs7OworMTVGMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSTtMbzswO0w7Ozs7O047Ozs7OworMTVGNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTVGNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSFU7TG87MDtMOzs7OztOOzs7OzsKKzE1RjY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIRTtMbzswO0w7Ozs7O047Ozs7OworMTVGODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtISTtMbzswO0w7Ozs7O047Ozs7OworMTVGQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RkI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLTztMbzswO0w7Ozs7O047Ozs7OworMTVGRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RkU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tFRTtMbzswO0w7Ozs7O047Ozs7OworMTVGRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0k7TG87MDtMOzs7OztOOzs7OzsKKzE2MDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5FRTtMbzswO0w7Ozs7O047Ozs7OworMTYwNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMTYwNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTYwODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTYwOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMTYwQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMTYwQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MEM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzE2MEQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE2MEU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzE2MEY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzE2MTA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjEyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjEzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE1O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSk87TG87MDtMOzs7OztOOzs7OzsKKzE2MTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFBO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MUI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzE2MUM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKTztMbzswO0w7Ozs7O047Ozs7OworMTYxRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpFRTtMbzswO0w7Ozs7O047Ozs7OworMTYyMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MjE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExFRTtMbzswO0w7Ozs7O047Ozs7OworMTYyNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSTtMbzswO0w7Ozs7O047Ozs7OworMTYyNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTYyODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETFU7TG87MDtMOzs7OztOOzs7OzsKKzE2Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMRTtMbzswO0w7Ozs7O047Ozs7OworMTYyQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMSTtMbzswO0w7Ozs7O047Ozs7OworMTYyRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEE7TG87MDtMOzs7OztOOzs7OzsKKzE2MkU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExITztMbzswO0w7Ozs7O047Ozs7OworMTYzMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2MzE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTYzMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2MzM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2MzU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExITztMbzswO0w7Ozs7O047Ozs7OworMTYzNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIQTtMbzswO0w7Ozs7O047Ozs7OworMTYzQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTFU7TG87MDtMOzs7OztOOzs7OzsKKzE2M0I7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMRTtMbzswO0w7Ozs7O047Ozs7OworMTYzRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSTtMbzswO0w7Ozs7O047Ozs7OworMTYzRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEE7TG87MDtMOzs7OztOOzs7OzsKKzE2NDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWlU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWk87TG87MDtMOzs7OztOOzs7OzsKKzE2NDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFo7TG87MDtMOzs7OztOOzs7OzsKKzE2NDc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSU5JVElBTCBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaVTtMbzswO0w7Ozs7O047Ozs7OworMTY0OTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWk87TG87MDtMOzs7OztOOzs7OzsKKzE2NEE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NEM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjREO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaQTtMbzswO0w7Ozs7O047Ozs7OworMTY0RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMTY0RjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMTY1MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMTY1MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE2NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNITztMbzswO0w7Ozs7O047Ozs7OworMTY1NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTY1ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2NTk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTY1QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU087TG87MDtMOzs7OztOOzs7OzsKKzE2NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTY2MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2NjI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIRTtMbzswO0w7Ozs7O047Ozs7OworMTY2NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENISTtMbzswO0w7Ozs7O047Ozs7OworMTY2NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2Njc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTY2ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU0U7TG87MDtMOzs7OztOOzs7OzsKKzE2NkE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NkI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTSTtMbzswO0w7Ozs7O047Ozs7OworMTY2QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZEO0NBTkFESUFOIFNZTExBQklDUyBDSEkgU0lHTjtQbzswO0w7Ozs7O047Ozs7OworMTY2RTtDQU5BRElBTiBTWUxMQUJJQ1MgRlVMTCBTVE9QO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZGO0NBTkFESUFOIFNZTExBQklDUyBRQUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzA7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzE7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NzI7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjczO0NBTkFESUFOIFNZTExBQklDUyBOTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjc0O0NBTkFESUFOIFNZTExBQklDUyBOTkdPTztMbzswO0w7Ozs7O047Ozs7OworMTY3NTtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HQTtMbzswO0w7Ozs7O047Ozs7OworMTY3NjtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HQUE7TG87MDtMOzs7OztOOzs7OzsKKzE2ODA7T0dIQU0gU1BBQ0UgTUFSSztaczswO1dTOzs7OztOOzs7OzsKKzE2ODE7T0dIQU0gTEVUVEVSIEJFSVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjgyO09HSEFNIExFVFRFUiBMVUlTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjgzO09HSEFNIExFVFRFUiBGRUFSTjtMbzswO0w7Ozs7O047Ozs7OworMTY4NDtPR0hBTSBMRVRURVIgU0FJTDtMbzswO0w7Ozs7O047Ozs7OworMTY4NTtPR0hBTSBMRVRURVIgTklPTjtMbzswO0w7Ozs7O047Ozs7OworMTY4NjtPR0hBTSBMRVRURVIgVUFUSDtMbzswO0w7Ozs7O047Ozs7OworMTY4NztPR0hBTSBMRVRURVIgREFJUjtMbzswO0w7Ozs7O047Ozs7OworMTY4ODtPR0hBTSBMRVRURVIgVElOTkU7TG87MDtMOzs7OztOOzs7OzsKKzE2ODk7T0dIQU0gTEVUVEVSIENPTEw7TG87MDtMOzs7OztOOzs7OzsKKzE2OEE7T0dIQU0gTEVUVEVSIENFSVJUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhCO09HSEFNIExFVFRFUiBNVUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhDO09HSEFNIExFVFRFUiBHT1JUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhEO09HSEFNIExFVFRFUiBOR0VBREFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhFO09HSEFNIExFVFRFUiBTVFJBSUY7TG87MDtMOzs7OztOOzs7OzsKKzE2OEY7T0dIQU0gTEVUVEVSIFJVSVM7TG87MDtMOzs7OztOOzs7OzsKKzE2OTA7T0dIQU0gTEVUVEVSIEFJTE07TG87MDtMOzs7OztOOzs7OzsKKzE2OTE7T0dIQU0gTEVUVEVSIE9OTjtMbzswO0w7Ozs7O047Ozs7OworMTY5MjtPR0hBTSBMRVRURVIgVVI7TG87MDtMOzs7OztOOzs7OzsKKzE2OTM7T0dIQU0gTEVUVEVSIEVBREhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTQ7T0dIQU0gTEVUVEVSIElPREhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTU7T0dIQU0gTEVUVEVSIEVBQkhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTY7T0dIQU0gTEVUVEVSIE9SO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk3O09HSEFNIExFVFRFUiBVSUxMRUFOTjtMbzswO0w7Ozs7O047Ozs7OworMTY5ODtPR0hBTSBMRVRURVIgSUZJTjtMbzswO0w7Ozs7O047Ozs7OworMTY5OTtPR0hBTSBMRVRURVIgRUFNSEFOQ0hPTEw7TG87MDtMOzs7OztOOzs7OzsKKzE2OUE7T0dIQU0gTEVUVEVSIFBFSVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjlCO09HSEFNIEZFQVRIRVIgTUFSSztQczswO09OOzs7OztZOzs7OzsKKzE2OUM7T0dIQU0gUkVWRVJTRUQgRkVBVEhFUiBNQVJLO1BlOzA7T047Ozs7O1k7Ozs7OworMTZBMDtSVU5JQyBMRVRURVIgRkVIVSBGRU9IIEZFIEY7TG87MDtMOzs7OztOOzs7OzsKKzE2QTE7UlVOSUMgTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzE2QTI7UlVOSUMgTEVUVEVSIFVSVVogVVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTZBMztSVU5JQyBMRVRURVIgWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2QTQ7UlVOSUMgTEVUVEVSIFk7TG87MDtMOzs7OztOOzs7OzsKKzE2QTU7UlVOSUMgTEVUVEVSIFc7TG87MDtMOzs7OztOOzs7OzsKKzE2QTY7UlVOSUMgTEVUVEVSIFRIVVJJU0FaIFRIVVJTIFRIT1JOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE3O1JVTklDIExFVFRFUiBFVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QTg7UlVOSUMgTEVUVEVSIEFOU1VaIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2QTk7UlVOSUMgTEVUVEVSIE9TIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUE7UlVOSUMgTEVUVEVSIEFDIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2QUI7UlVOSUMgTEVUVEVSIEFFU0M7TG87MDtMOzs7OztOOzs7OzsKKzE2QUM7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILU9TUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFEO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLU9TUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFFO1JVTklDIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFGO1JVTklDIExFVFRFUiBPRTtMbzswO0w7Ozs7O047Ozs7OworMTZCMDtSVU5JQyBMRVRURVIgT047TG87MDtMOzs7OztOOzs7OzsKKzE2QjE7UlVOSUMgTEVUVEVSIFJBSURPIFJBRCBSRUlEIFI7TG87MDtMOzs7OztOOzs7OzsKKzE2QjI7UlVOSUMgTEVUVEVSIEtBVU5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkIzO1JVTklDIExFVFRFUiBDRU47TG87MDtMOzs7OztOOzs7OzsKKzE2QjQ7UlVOSUMgTEVUVEVSIEtBVU4gSztMbzswO0w7Ozs7O047Ozs7OworMTZCNTtSVU5JQyBMRVRURVIgRztMbzswO0w7Ozs7O047Ozs7OworMTZCNjtSVU5JQyBMRVRURVIgRU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI3O1JVTklDIExFVFRFUiBHRUJPIEdZRlUgRztMbzswO0w7Ozs7O047Ozs7OworMTZCODtSVU5JQyBMRVRURVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI5O1JVTklDIExFVFRFUiBXVU5KTyBXWU5OIFc7TG87MDtMOzs7OztOOzs7OzsKKzE2QkE7UlVOSUMgTEVUVEVSIEhBR0xBWiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJCO1JVTklDIExFVFRFUiBIQUVHTCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJDO1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1IQUdBTEwgSDtMbzswO0w7Ozs7O047Ozs7OworMTZCRDtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1IQUdBTEwgSDtMbzswO0w7Ozs7O047Ozs7OworMTZCRTtSVU5JQyBMRVRURVIgTkFVRElaIE5ZRCBOQVVEIE47TG87MDtMOzs7OztOOzs7OzsKKzE2QkY7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctTkFVRCBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMwO1JVTklDIExFVFRFUiBET1RURUQtTjtMbzswO0w7Ozs7O047Ozs7OworMTZDMTtSVU5JQyBMRVRURVIgSVNBWiBJUyBJU1MgSTtMbzswO0w7Ozs7O047Ozs7OworMTZDMjtSVU5JQyBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMTZDMztSVU5JQyBMRVRURVIgSkVSQU4gSjtMbzswO0w7Ozs7O047Ozs7OworMTZDNDtSVU5JQyBMRVRURVIgR0VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM1O1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1BUiBBRTtMbzswO0w7Ozs7O047Ozs7OworMTZDNjtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1BUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM3O1JVTklDIExFVFRFUiBJV0FaIEVPSDtMbzswO0w7Ozs7O047Ozs7OworMTZDODtSVU5JQyBMRVRURVIgUEVSVEhPIFBFT1JUSCBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM5O1JVTklDIExFVFRFUiBBTEdJWiBFT0xIWDtMbzswO0w7Ozs7O047Ozs7OworMTZDQTtSVU5JQyBMRVRURVIgU09XSUxPIFM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0I7UlVOSUMgTEVUVEVSIFNJR0VMIExPTkctQlJBTkNILVNPTCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNDO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLVNPTCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNEO1JVTklDIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNFO1JVTklDIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNGO1JVTklDIExFVFRFUiBUSVdBWiBUSVIgVFlSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDA7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctVFlSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDE7UlVOSUMgTEVUVEVSIEQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDI7UlVOSUMgTEVUVEVSIEJFUktBTkFOIEJFT1JDIEJKQVJLQU4gQjtMbzswO0w7Ozs7O047Ozs7OworMTZEMztSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1CSkFSS0FOIEI7TG87MDtMOzs7OztOOzs7OzsKKzE2RDQ7UlVOSUMgTEVUVEVSIERPVFRFRC1QO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ1O1JVTklDIExFVFRFUiBPUEVOLVA7TG87MDtMOzs7OztOOzs7OzsKKzE2RDY7UlVOSUMgTEVUVEVSIEVIV0FaIEVIIEU7TG87MDtMOzs7OztOOzs7OzsKKzE2RDc7UlVOSUMgTEVUVEVSIE1BTk5BWiBNQU4gTTtMbzswO0w7Ozs7O047Ozs7OworMTZEODtSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtTUFEUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ5O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLU1BRFIgTTtMbzswO0w7Ozs7O047Ozs7OworMTZEQTtSVU5JQyBMRVRURVIgTEFVS0FaIExBR1UgTE9HUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRCO1JVTklDIExFVFRFUiBET1RURUQtTDtMbzswO0w7Ozs7O047Ozs7OworMTZEQztSVU5JQyBMRVRURVIgSU5HV0FaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkREO1JVTklDIExFVFRFUiBJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE2REU7UlVOSUMgTEVUVEVSIERBR0FaIERBRUcgRDtMbzswO0w7Ozs7O047Ozs7OworMTZERjtSVU5JQyBMRVRURVIgT1RIQUxBTiBFVEhFTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUwO1JVTklDIExFVFRFUiBFQVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTE7UlVOSUMgTEVUVEVSIElPUjtMbzswO0w7Ozs7O047Ozs7OworMTZFMjtSVU5JQyBMRVRURVIgQ1dFT1JUSDtMbzswO0w7Ozs7O047Ozs7OworMTZFMztSVU5JQyBMRVRURVIgQ0FMQztMbzswO0w7Ozs7O047Ozs7OworMTZFNDtSVU5JQyBMRVRURVIgQ0VBTEM7TG87MDtMOzs7OztOOzs7OzsKKzE2RTU7UlVOSUMgTEVUVEVSIFNUQU47TG87MDtMOzs7OztOOzs7OzsKKzE2RTY7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU3O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU4O1JVTklDIExFVFRFUiBJQ0VMQU5ESUMtWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTk7UlVOSUMgTEVUVEVSIFE7TG87MDtMOzs7OztOOzs7OzsKKzE2RUE7UlVOSUMgTEVUVEVSIFg7TG87MDtMOzs7OztOOzs7OzsKKzE2RUI7UlVOSUMgU0lOR0xFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVDO1JVTklDIE1VTFRJUExFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVEO1JVTklDIENST1NTIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVFO1JVTklDIEFSTEFVRyBTWU1CT0w7Tmw7MDtMOzs7OzE3O047O2dvbGRlbiBudW1iZXIgMTc7OzsKKzE2RUY7UlVOSUMgVFZJTUFEVVIgU1lNQk9MO05sOzA7TDs7OzsxODtOOztnb2xkZW4gbnVtYmVyIDE4Ozs7CisxNkYwO1JVTklDIEJFTEdUSE9SIFNZTUJPTDtObDswO0w7Ozs7MTk7Tjs7Z29sZGVuIG51bWJlciAxOTs7OworMTcwMDtUQUdBTE9HIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzAxO1RBR0FMT0cgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE3MDI7VEFHQUxPRyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTcwMztUQUdBTE9HIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNDtUQUdBTE9HIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNTtUQUdBTE9HIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MDY7VEFHQUxPRyBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDc7VEFHQUxPRyBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDg7VEFHQUxPRyBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDk7VEFHQUxPRyBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEE7VEFHQUxPRyBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEI7VEFHQUxPRyBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEM7VEFHQUxPRyBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEU7VEFHQUxPRyBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEY7VEFHQUxPRyBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MTA7VEFHQUxPRyBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MTE7VEFHQUxPRyBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MTI7VEFHQUxPRyBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTcxMztUQUdBTE9HIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzE0O1RBR0FMT0cgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMTcyMDtIQU5VTk9PIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzIxO0hBTlVOT08gTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE3MjI7SEFOVU5PTyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTcyMztIQU5VTk9PIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNDtIQU5VTk9PIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNTtIQU5VTk9PIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MjY7SEFOVU5PTyBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3Mjc7SEFOVU5PTyBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3Mjg7SEFOVU5PTyBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE3Mjk7SEFOVU5PTyBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkE7SEFOVU5PTyBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkI7SEFOVU5PTyBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkM7SEFOVU5PTyBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkQ7SEFOVU5PTyBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkU7SEFOVU5PTyBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkY7SEFOVU5PTyBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MzA7SEFOVU5PTyBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MzE7SEFOVU5PTyBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MzI7SEFOVU5PTyBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTczMztIQU5VTk9PIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzM0O0hBTlVOT08gU0lHTiBQQU1VRFBPRDtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxNzM1O1BISUxJUFBJTkUgU0lOR0xFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNzM2O1BISUxJUFBJTkUgRE9VQkxFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQwO0JVSElEIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQxO0JVSElEIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQyO0JVSElEIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQzO0JVSElEIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NDtCVUhJRCBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NDU7QlVISUQgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NjtCVUhJRCBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NDc7QlVISUQgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ4O0JVSElEIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTc0OTtCVUhJRCBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEE7QlVISUQgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRCO0JVSElEIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTc0QztCVUhJRCBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEQ7QlVISUQgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRFO0JVSElEIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTc0RjtCVUhJRCBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NTA7QlVISUQgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzUxO0JVSElEIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTc1MjtCVUhJRCBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTc1MztCVUhJRCBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTc2MDtUQUdCQU5XQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTc2MTtUQUdCQU5XQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTc2MjtUQUdCQU5XQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTc2MztUQUdCQU5XQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NjQ7VEFHQkFOV0EgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzY1O1RBR0JBTldBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NjY7VEFHQkFOV0EgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzY3O1RBR0JBTldBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTc2ODtUQUdCQU5XQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE3Njk7VEFHQkFOV0EgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZBO1RBR0JBTldBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTc2QjtUQUdCQU5XQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE3NkM7VEFHQkFOV0EgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZFO1RBR0JBTldBIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTc2RjtUQUdCQU5XQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NzA7VEFHQkFOV0EgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzcyO1RBR0JBTldBIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzczO1RBR0JBTldBIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzgwO0tITUVSIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTc4MTtLSE1FUiBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgyO0tITUVSIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMTc4MztLSE1FUiBMRVRURVIgS0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg0O0tITUVSIExFVFRFUiBOR087TG87MDtMOzs7OztOOzs7OzsKKzE3ODU7S0hNRVIgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg2O0tITUVSIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3ODc7S0hNRVIgTEVUVEVSIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg4O0tITUVSIExFVFRFUiBDSE87TG87MDtMOzs7OztOOzs7OzsKKzE3ODk7S0hNRVIgTEVUVEVSIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMTc4QTtLSE1FUiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3OEI7S0hNRVIgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OEM7S0hNRVIgTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhEO0tITUVSIExFVFRFUiBUVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhFO0tITUVSIExFVFRFUiBOTk87TG87MDtMOzs7OztOOzs7OzsKKzE3OEY7S0hNRVIgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzkwO0tITUVSIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTE7S0hNRVIgTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzkyO0tITUVSIExFVFRFUiBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTM7S0hNRVIgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk0O0tITUVSIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTc5NTtLSE1FUiBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk2O0tITUVSIExFVFRFUiBQTztMbzswO0w7Ozs7O047Ozs7OworMTc5NztLSE1FUiBMRVRURVIgUEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk4O0tITUVSIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMTc5OTtLSE1FUiBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzE3OUE7S0hNRVIgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlCO0tITUVSIExFVFRFUiBMTztMbzswO0w7Ozs7O047Ozs7OworMTc5QztLSE1FUiBMRVRURVIgVk87TG87MDtMOzs7OztOOzs7OzsKKzE3OUQ7S0hNRVIgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTc5RTtLSE1FUiBMRVRURVIgU1NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlGO0tITUVSIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMDtLSE1FUiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTE7S0hNRVIgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EyO0tITUVSIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMztLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRQVE7TG87MDtMOzs7OztOOzsqOzs7CisxN0E0O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBQTtMbzswO0w7Ozs7O047Oyo7OzsKKzE3QTU7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUk7TG87MDtMOzs7OztOOzs7OzsKKzE3QTY7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E3O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E4O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVSztMbzswO0w7Ozs7O047Ozs7OworMTdBOTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRVVU7TG87MDtMOzs7OztOOzs7OzsKKzE3QUE7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVVVVjtMbzswO0w7Ozs7O047Ozs7OworMTdBQjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBSWTtMbzswO0w7Ozs7O047Ozs7OworMTdBQztLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBSWVk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUQ7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgTFk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUU7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgTFlZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FGO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IwO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBSTtMbzswO0w7Ozs7O047Ozs7OworMTdCMTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRT08gVFlQRSBPTkU7TG87MDtMOzs7OztOOzs7OzsKKzE3QjI7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUU9PIFRZUEUgVFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IzO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBVTtMbzswO0w7Ozs7O047Ozs7OworMTdCNDtLSE1FUiBWT1dFTCBJTkhFUkVOVCBBUTtDZjswO0w7Ozs7O047Oyo7OzsKKzE3QjU7S0hNRVIgVk9XRUwgSU5IRVJFTlQgQUE7Q2Y7MDtMOzs7OztOOzsqOzs7CisxN0I2O0tITUVSIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzE3Qjc7S0hNRVIgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qjg7S0hNRVIgVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0I5O0tITUVSIFZPV0VMIFNJR04gWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JBO0tITUVSIFZPV0VMIFNJR04gWVk7TW47MDtOU007Ozs7O047Ozs7OworMTdCQjtLSE1FUiBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTdCQztLSE1FUiBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkQ7S0hNRVIgVk9XRUwgU0lHTiBVQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JFO0tITUVSIFZPV0VMIFNJR04gT0U7TWM7MDtMOzs7OztOOzs7OzsKKzE3QkY7S0hNRVIgVk9XRUwgU0lHTiBZQTtNYzswO0w7Ozs7O047Ozs7OworMTdDMDtLSE1FUiBWT1dFTCBTSUdOIElFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MxO0tITUVSIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMTdDMjtLSE1FUiBWT1dFTCBTSUdOIEFFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MzO0tITUVSIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzQ7S0hNRVIgVk9XRUwgU0lHTiBPTztNYzswO0w7Ozs7O047Ozs7OworMTdDNTtLSE1FUiBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M2O0tITUVSIFNJR04gTklLQUhJVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0M3O0tITUVSIFNJR04gUkVBSE1VSztNYzswO0w7Ozs7O047Ozs7OworMTdDODtLSE1FUiBTSUdOIFlVVUtBTEVBUElOVFU7TWM7MDtMOzs7OztOOzs7OzsKKzE3Qzk7S0hNRVIgU0lHTiBNVVVTSUtBVE9BTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NBO0tITUVSIFNJR04gVFJJSVNBUDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NCO0tITUVSIFNJR04gQkFOVE9DO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0M7S0hNRVIgU0lHTiBST0JBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NEO0tITUVSIFNJR04gVE9BTkRBS0hJQVQ7TW47MDtOU007Ozs7O047Ozs7OworMTdDRTtLSE1FUiBTSUdOIEtBS0FCQVQ7TW47MDtOU007Ozs7O047Ozs7OworMTdDRjtLSE1FUiBTSUdOIEFIU0RBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3RDA7S0hNRVIgU0lHTiBTQU1ZT0sgU0FOTllBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3RDE7S0hNRVIgU0lHTiBWSVJJQU07TW47MDtOU007Ozs7O047Ozs7OworMTdEMjtLSE1FUiBTSUdOIENPRU5HO01uOzk7TlNNOzs7OztOOzs7OzsKKzE3RDM7S0hNRVIgU0lHTiBCQVRIQU1BU0FUO01uOzA7TlNNOzs7OztOOzsqOzs7CisxN0Q0O0tITUVSIFNJR04gS0hBTjtQbzswO0w7Ozs7O047Ozs7OworMTdENTtLSE1FUiBTSUdOIEJBUklZT09TQU47UG87MDtMOzs7OztOOzs7OzsKKzE3RDY7S0hNRVIgU0lHTiBDQU1OVUMgUElJIEtVVUg7UG87MDtMOzs7OztOOzs7OzsKKzE3RDc7S0hNRVIgU0lHTiBMRUsgVE9PO0xtOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q4O0tITUVSIFNJR04gQkVZWUFMO1BvOzA7TDs7Ozs7Tjs7Kjs7OworMTdEOTtLSE1FUiBTSUdOIFBITkFFSyBNVUFOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0RBO0tITUVSIFNJR04gS09PTVVVVDtQbzswO0w7Ozs7O047Ozs7OworMTdEQjtLSE1FUiBDVVJSRU5DWSBTWU1CT0wgUklFTDtTYzswO0VUOzs7OztOOzs7OzsKKzE3REM7S0hNRVIgU0lHTiBBVkFLUkFIQVNBTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0REO0tITUVSIFNJR04gQVRUSEFDQU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxN0UwO0tITUVSIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzE3RTE7S0hNRVIgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxN0UyO0tITUVSIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTdFMztLSE1FUiBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMTdFNDtLSE1FUiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxN0U1O0tITUVSIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzE3RTY7S0hNRVIgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CisxN0U3O0tITUVSIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxN0U4O0tITUVSIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxN0U5O0tITUVSIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzE3RjA7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBTT047Tm87MDtPTjs7OzswO047Ozs7OworMTdGMTtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIE1VT1k7Tm87MDtPTjs7OzsxO047Ozs7OworMTdGMjtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBJSTtObzswO09OOzs7OzI7Tjs7Ozs7CisxN0YzO0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgQkVJO05vOzA7T047Ozs7MztOOzs7OzsKKzE3RjQ7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBCVU9OO05vOzA7T047Ozs7NDtOOzs7OzsKKzE3RjU7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBQUkFNO05vOzA7T047Ozs7NTtOOzs7OzsKKzE3RjY7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBQUkFNLU1VT1k7Tm87MDtPTjs7Ozs2O047Ozs7OworMTdGNztLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBSQU0tUElJO05vOzA7T047Ozs7NztOOzs7OzsKKzE3Rjg7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBQUkFNLUJFSTtObzswO09OOzs7Ozg7Tjs7Ozs7CisxN0Y5O0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgUFJBTS1CVU9OO05vOzA7T047Ozs7OTtOOzs7OzsKKzE4MDA7TU9OR09MSUFOIEJJUkdBO1BvOzA7T047Ozs7O047Ozs7OworMTgwMTtNT05HT0xJQU4gRUxMSVBTSVM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODAyO01PTkdPTElBTiBDT01NQTtQbzswO09OOzs7OztOOzs7OzsKKzE4MDM7TU9OR09MSUFOIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzE4MDQ7TU9OR09MSUFOIENPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMTgwNTtNT05HT0xJQU4gRk9VUiBET1RTO1BvOzA7T047Ozs7O047Ozs7OworMTgwNjtNT05HT0xJQU4gVE9ETyBTT0ZUIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzE4MDc7TU9OR09MSUFOIFNJQkUgU1lMTEFCTEUgQk9VTkRBUlkgTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMTgwODtNT05HT0xJQU4gTUFOQ0hVIENPTU1BO1BvOzA7T047Ozs7O047Ozs7OworMTgwOTtNT05HT0xJQU4gTUFOQ0hVIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzE4MEE7TU9OR09MSUFOIE5JUlVHVTtQbzswO09OOzs7OztOOzs7OzsKKzE4MEI7TU9OR09MSUFOIEZSRUUgVkFSSUFUSU9OIFNFTEVDVE9SIE9ORTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxODBDO01PTkdPTElBTiBGUkVFIFZBUklBVElPTiBTRUxFQ1RPUiBUV087TW47MDtOU007Ozs7O047Ozs7OworMTgwRDtNT05HT0xJQU4gRlJFRSBWQVJJQVRJT04gU0VMRUNUT1IgVEhSRUU7TW47MDtOU007Ozs7O047Ozs7OworMTgwRTtNT05HT0xJQU4gVk9XRUwgU0VQQVJBVE9SO1pzOzA7V1M7Ozs7O047Ozs7OworMTgxMDtNT05HT0xJQU4gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTgxMTtNT05HT0xJQU4gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxODEyO01PTkdPTElBTiBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzE4MTM7TU9OR09MSUFOIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxODE0O01PTkdPTElBTiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxODE1O01PTkdPTElBTiBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CisxODE2O01PTkdPTElBTiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE4MTc7TU9OR09MSUFOIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxODE4O01PTkdPTElBTiBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMTgxOTtNT05HT0xJQU4gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTgyMDtNT05HT0xJQU4gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MjE7TU9OR09MSUFOIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODIyO01PTkdPTElBTiBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTgyMztNT05HT0xJQU4gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzE4MjQ7TU9OR09MSUFOIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI1O01PTkdPTElBTiBMRVRURVIgT0U7TG87MDtMOzs7OztOOzs7OzsKKzE4MjY7TU9OR09MSUFOIExFVFRFUiBVRTtMbzswO0w7Ozs7O047Ozs7OworMTgyNztNT05HT0xJQU4gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI4O01PTkdPTElBTiBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE4Mjk7TU9OR09MSUFOIExFVFRFUiBBTkc7TG87MDtMOzs7OztOOzs7OzsKKzE4MkE7TU9OR09MSUFOIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTgyQjtNT05HT0xJQU4gTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJDO01PTkdPTElBTiBMRVRURVIgUUE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkQ7TU9OR09MSUFOIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTgyRTtNT05HT0xJQU4gTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJGO01PTkdPTElBTiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzA7TU9OR09MSUFOIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMTtNT05HT0xJQU4gTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMjtNT05HT0xJQU4gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMzO01PTkdPTElBTiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzQ7TU9OR09MSUFOIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzU7TU9OR09MSUFOIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNjtNT05HT0xJQU4gTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM3O01PTkdPTElBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE4Mzg7TU9OR09MSUFOIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTgzOTtNT05HT0xJQU4gTEVUVEVSIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNBO01PTkdPTElBTiBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE4M0I7TU9OR09MSUFOIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4M0M7TU9OR09MSUFOIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE4M0Q7TU9OR09MSUFOIExFVFRFUiBaQTtMbzswO0w7Ozs7O047Ozs7OworMTgzRTtNT05HT0xJQU4gTEVUVEVSIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTgzRjtNT05HT0xJQU4gTEVUVEVSIFpSQTtMbzswO0w7Ozs7O047Ozs7OworMTg0MDtNT05HT0xJQU4gTEVUVEVSIExIQTtMbzswO0w7Ozs7O047Ozs7OworMTg0MTtNT05HT0xJQU4gTEVUVEVSIFpISTtMbzswO0w7Ozs7O047Ozs7OworMTg0MjtNT05HT0xJQU4gTEVUVEVSIENISTtMbzswO0w7Ozs7O047Ozs7OworMTg0MztNT05HT0xJQU4gTEVUVEVSIFRPRE8gTE9ORyBWT1dFTCBTSUdOO0xtOzA7TDs7Ozs7Tjs7Ozs7CisxODQ0O01PTkdPTElBTiBMRVRURVIgVE9ETyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ1O01PTkdPTElBTiBMRVRURVIgVE9ETyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ2O01PTkdPTElBTiBMRVRURVIgVE9ETyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ3O01PTkdPTElBTiBMRVRURVIgVE9ETyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ4O01PTkdPTElBTiBMRVRURVIgVE9ETyBPRTtMbzswO0w7Ozs7O047Ozs7OworMTg0OTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gVUU7TG87MDtMOzs7OztOOzs7OzsKKzE4NEE7TU9OR09MSUFOIExFVFRFUiBUT0RPIEFORztMbzswO0w7Ozs7O047Ozs7OworMTg0QjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NEM7TU9OR09MSUFOIExFVFRFUiBUT0RPIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODREO01PTkdPTElBTiBMRVRURVIgVE9ETyBRQTtMbzswO0w7Ozs7O047Ozs7OworMTg0RTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gR0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NEY7TU9OR09MSUFOIExFVFRFUiBUT0RPIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUwO01PTkdPTElBTiBMRVRURVIgVE9ETyBUQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gREE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTI7TU9OR09MSUFOIExFVFRFUiBUT0RPIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MztNT05HT0xJQU4gTEVUVEVSIFRPRE8gSkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTY7TU9OR09MSUFOIExFVFRFUiBUT0RPIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU3O01PTkdPTElBTiBMRVRURVIgVE9ETyBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg1ODtNT05HT0xJQU4gTEVUVEVSIFRPRE8gR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU5O01PTkdPTElBTiBMRVRURVIgVE9ETyBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUE7TU9OR09MSUFOIExFVFRFUiBUT0RPIEpJQTtMbzswO0w7Ozs7O047Ozs7OworMTg1QjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gTklBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVDO01PTkdPTElBTiBMRVRURVIgVE9ETyBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUQ7TU9OR09MSUFOIExFVFRFUiBTSUJFIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4NUU7TU9OR09MSUFOIExFVFRFUiBTSUJFIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NUY7TU9OR09MSUFOIExFVFRFUiBTSUJFIElZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYwO01PTkdPTElBTiBMRVRURVIgU0lCRSBVRTtMbzswO0w7Ozs7O047Ozs7OworMTg2MTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgVTtMbzswO0w7Ozs7O047Ozs7OworMTg2MjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYzO01PTkdPTElBTiBMRVRURVIgU0lCRSBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NjU7TU9OR09MSUFOIExFVFRFUiBTSUJFIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY2O01PTkdPTElBTiBMRVRURVIgU0lCRSBQQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NztNT05HT0xJQU4gTEVUVEVSIFNJQkUgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY4O01PTkdPTElBTiBMRVRURVIgU0lCRSBUQTtMbzswO0w7Ozs7O047Ozs7OworMTg2OTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgREE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkE7TU9OR09MSUFOIExFVFRFUiBTSUJFIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZCO01PTkdPTElBTiBMRVRURVIgU0lCRSBGQTtMbzswO0w7Ozs7O047Ozs7OworMTg2QztNT05HT0xJQU4gTEVUVEVSIFNJQkUgR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZEO01PTkdPTElBTiBMRVRURVIgU0lCRSBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkU7TU9OR09MSUFOIExFVFRFUiBTSUJFIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTg2RjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzA7TU9OR09MSUFOIExFVFRFUiBTSUJFIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODcyO01PTkdPTElBTiBMRVRURVIgU0lCRSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzM7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgSTtMbzswO0w7Ozs7O047Ozs7OworMTg3NDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg3NTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBSQTtMbzswO0w7Ozs7O047Ozs7OworMTg3NjtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBGQTtMbzswO0w7Ozs7O047Ozs7OworMTg3NztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODA7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBTlVTVkFSQSBPTkU7TG87MDtMOzs7OztOOzs7OzsKKzE4ODE7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBWSVNBUkdBIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTg4MjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIERBTUFSVTtMbzswO0w7Ozs7O047Ozs7OworMTg4MztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFVCQURBTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODQ7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBJTlZFUlRFRCBVQkFEQU1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg1O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQkFMVURBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg2O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVEhSRUUgQkFMVURBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg3O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQTtMbzswO0w7Ozs7O047Ozs7OworMTg4ODtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4ODk7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg4QTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTg4QjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhDO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhEO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTg4RTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTg4RjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkxO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgREE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTI7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBQQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5NDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMTg5NTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5NjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk3O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQUg7TG87MDtMOzs7OztOOzs7OzsKKzE4OTg7TU9OR09MSUFOIExFVFRFUiBUT0RPIEFMSSBHQUxJIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk5O01PTkdPTElBTiBMRVRURVIgVE9ETyBBTEkgR0FMSSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUE7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlCO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTg5QztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBDQTtMbzswO0w7Ozs7O047Ozs7OworMTg5RDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUU7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlGO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTA7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTE7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEEyO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMThBMztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBDWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTQ7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE1O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE2O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSEFMRiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE3O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSEFMRiBZQTtMbzswO0w7Ozs7O047Ozs7OworMThBODtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTk7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBEQUdBTEdBO01uOzIyODtOU007Ozs7O047Ozs7OworMTkwMDtMSU1CVSBWT1dFTC1DQVJSSUVSIExFVFRFUjtMbzswO0w7Ozs7O047Ozs7OworMTkwMTtMSU1CVSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE5MDI7TElNQlUgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTkwMztMSU1CVSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5MDQ7TElNQlUgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTkwNTtMSU1CVSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA2O0xJTUJVIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMTkwNztMSU1CVSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA4O0xJTUJVIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMTkwOTtMSU1CVSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTBBO0xJTUJVIExFVFRFUiBZQU47TG87MDtMOzs7OztOOzs7OzsKKzE5MEI7TElNQlUgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTBDO0xJTUJVIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEQ7TElNQlUgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTBFO0xJTUJVIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEY7TElNQlUgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTEwO0xJTUJVIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTkxMTtMSU1CVSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTEyO0xJTUJVIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTkxMztMSU1CVSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTE0O0xJTUJVIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTkxNTtMSU1CVSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTY7TElNQlUgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTE3O0xJTUJVIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTkxODtMSU1CVSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE5MTk7TElNQlUgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTkxQTtMSU1CVSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTFCO0xJTUJVIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTkxQztMSU1CVSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MjA7TElNQlUgVk9XRUwgU0lHTiBBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE5MjE7TElNQlUgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE5MjI7TElNQlUgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE5MjM7TElNQlUgVk9XRUwgU0lHTiBFRTtNYzswO0w7Ozs7O047Ozs7OworMTkyNDtMSU1CVSBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTI1O0xJTUJVIFZPV0VMIFNJR04gT087TWM7MDtMOzs7OztOOzs7OzsKKzE5MjY7TElNQlUgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMTkyNztMSU1CVSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMTkyODtMSU1CVSBWT1dFTCBTSUdOIE87TW47MDtOU007Ozs7O047Ozs7OworMTkyOTtMSU1CVSBTVUJKT0lORUQgTEVUVEVSIFlBO01jOzA7TlNNOzs7OztOOzs7OzsKKzE5MkE7TElNQlUgU1VCSk9JTkVEIExFVFRFUiBSQTtNYzswO05TTTs7Ozs7Tjs7Ozs7CisxOTJCO0xJTUJVIFNVQkpPSU5FRCBMRVRURVIgV0E7TWM7MDtOU007Ozs7O047Ozs7OworMTkzMDtMSU1CVSBTTUFMTCBMRVRURVIgS0E7TWM7MDtMOzs7OztOOzs7OzsKKzE5MzE7TElNQlUgU01BTEwgTEVUVEVSIE5HQTtNYzswO0w7Ozs7O047Ozs7OworMTkzMjtMSU1CVSBTTUFMTCBMRVRURVIgQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMTkzMztMSU1CVSBTTUFMTCBMRVRURVIgVEE7TWM7MDtMOzs7OztOOzs7OzsKKzE5MzQ7TElNQlUgU01BTEwgTEVUVEVSIE5BO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTM1O0xJTUJVIFNNQUxMIExFVFRFUiBQQTtNYzswO0w7Ozs7O047Ozs7OworMTkzNjtMSU1CVSBTTUFMTCBMRVRURVIgTUE7TWM7MDtMOzs7OztOOzs7OzsKKzE5Mzc7TElNQlUgU01BTEwgTEVUVEVSIFJBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTM4O0xJTUJVIFNNQUxMIExFVFRFUiBMQTtNYzswO0w7Ozs7O047Ozs7OworMTkzOTtMSU1CVSBTSUdOIE1VS1BIUkVORztNbjsyMjI7TlNNOzs7OztOOzs7OzsKKzE5M0E7TElNQlUgU0lHTiBLRU1QSFJFTkc7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxOTNCO0xJTUJVIFNJR04gU0EtSTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzE5NDA7TElNQlUgU0lHTiBMT087U287MDtPTjs7Ozs7Tjs7Ozs7CisxOTQ0O0xJTUJVIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxOTQ1O0xJTUJVIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxOTQ2O0xJTUJVIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzE5NDc7TElNQlUgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxOTQ4O0xJTUJVIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTk0OTtMSU1CVSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMTk0QTtMSU1CVSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxOTRCO0xJTUJVIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzE5NEM7TElNQlUgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CisxOTREO0xJTUJVIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxOTRFO0xJTUJVIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxOTRGO0xJTUJVIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzE5NTA7VEFJIExFIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTk1MTtUQUkgTEUgTEVUVEVSIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTUyO1RBSSBMRSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTUzO1RBSSBMRSBMRVRURVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTU0O1RBSSBMRSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE5NTU7VEFJIExFIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTk1NjtUQUkgTEUgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTU3O1RBSSBMRSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTU4O1RBSSBMRSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NTk7VEFJIExFIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTk1QTtUQUkgTEUgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTk1QjtUQUkgTEUgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVDO1RBSSBMRSBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE5NUQ7VEFJIExFIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMTk1RTtUQUkgTEUgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVGO1RBSSBMRSBMRVRURVIgUUE7TG87MDtMOzs7OztOOzs7OzsKKzE5NjA7VEFJIExFIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NjE7VEFJIExFIExFVFRFUiBUU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTYyO1RBSSBMRSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE5NjM7VEFJIExFIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTY0O1RBSSBMRSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTk2NTtUQUkgTEUgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTY2O1RBSSBMRSBMRVRURVIgRUg7TG87MDtMOzs7OztOOzs7OzsKKzE5Njc7VEFJIExFIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTY4O1RBSSBMRSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzE5Njk7VEFJIExFIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTZBO1RBSSBMRSBMRVRURVIgVUU7TG87MDtMOzs7OztOOzs7OzsKKzE5NkI7VEFJIExFIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTZDO1RBSSBMRSBMRVRURVIgQVVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTZEO1RBSSBMRSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzE5NzA7VEFJIExFIExFVFRFUiBUT05FLTI7TG87MDtMOzs7OztOOzs7OzsKKzE5NzE7VEFJIExFIExFVFRFUiBUT05FLTM7TG87MDtMOzs7OztOOzs7OzsKKzE5NzI7VEFJIExFIExFVFRFUiBUT05FLTQ7TG87MDtMOzs7OztOOzs7OzsKKzE5NzM7VEFJIExFIExFVFRFUiBUT05FLTU7TG87MDtMOzs7OztOOzs7OzsKKzE5NzQ7VEFJIExFIExFVFRFUiBUT05FLTY7TG87MDtMOzs7OztOOzs7OzsKKzE5ODA7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggUUE7TG87MDtMOzs7OztOOzs7OzsKKzE5ODE7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBRQTtMbzswO0w7Ozs7O047Ozs7OworMTk4MjtORVcgVEFJIExVRSBMRVRURVIgSElHSCBLQTtMbzswO0w7Ozs7O047Ozs7OworMTk4MztORVcgVEFJIExVRSBMRVRURVIgSElHSCBYQTtMbzswO0w7Ozs7O047Ozs7OworMTk4NDtORVcgVEFJIExVRSBMRVRURVIgSElHSCBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5ODU7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBLQTtMbzswO0w7Ozs7O047Ozs7OworMTk4NjtORVcgVEFJIExVRSBMRVRURVIgTE9XIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg3O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg4O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTk4OTtORVcgVEFJIExVRSBMRVRURVIgSElHSCBTQTtMbzswO0w7Ozs7O047Ozs7OworMTk4QTtORVcgVEFJIExVRSBMRVRURVIgSElHSCBZQTtMbzswO0w7Ozs7O047Ozs7OworMTk4QjtORVcgVEFJIExVRSBMRVRURVIgTE9XIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTk4QztORVcgVEFJIExVRSBMRVRURVIgTE9XIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOThEO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE5OEU7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggVEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OEY7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTkwO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTkxO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTI7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTM7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBOQTtMbzswO0w7Ozs7O047Ozs7OworMTk5NDtORVcgVEFJIExVRSBMRVRURVIgSElHSCBQQTtMbzswO0w7Ozs7O047Ozs7OworMTk5NTtORVcgVEFJIExVRSBMRVRURVIgSElHSCBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTY7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggTUE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTc7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTk5ODtORVcgVEFJIExVRSBMRVRURVIgTE9XIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTk5OTtORVcgVEFJIExVRSBMRVRURVIgTE9XIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTlBO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTlCO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTlDO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTlEO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUU7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBWQTtMbzswO0w7Ozs7O047Ozs7OworMTk5RjtORVcgVEFJIExVRSBMRVRURVIgTE9XIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUEwO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUExO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUEyO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUEzO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTQ7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBEQTtMbzswO0w7Ozs7O047Ozs7OworMTlBNTtORVcgVEFJIExVRSBMRVRURVIgTE9XIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUE2O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIEtWQTtMbzswO0w7Ozs7O047Ozs7OworMTlBNztORVcgVEFJIExVRSBMRVRURVIgSElHSCBYVkE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTg7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBLVkE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTk7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBYVkE7TG87MDtMOzs7OztOOzs7OzsKKzE5QjA7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBWT1dFTCBTSE9SVEVORVI7TWM7MDtMOzs7OztOOzs7OzsKKzE5QjE7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMTlCMjtORVcgVEFJIExVRSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUIzO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMTlCNDtORVcgVEFJIExVRSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI1O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMTlCNjtORVcgVEFJIExVRSBWT1dFTCBTSUdOIEFFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI3O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gTztNYzswO0w7Ozs7O047Ozs7OworMTlCODtORVcgVEFJIExVRSBWT1dFTCBTSUdOIE9BO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI5O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gVUU7TWM7MDtMOzs7OztOOzs7OzsKKzE5QkE7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBBWTtNYzswO0w7Ozs7O047Ozs7OworMTlCQjtORVcgVEFJIExVRSBWT1dFTCBTSUdOIEFBWTtNYzswO0w7Ozs7O047Ozs7OworMTlCQztORVcgVEFJIExVRSBWT1dFTCBTSUdOIFVZO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUJEO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gT1k7TWM7MDtMOzs7OztOOzs7OzsKKzE5QkU7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBPQVk7TWM7MDtMOzs7OztOOzs7OzsKKzE5QkY7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBVRVk7TWM7MDtMOzs7OztOOzs7OzsKKzE5QzA7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBJWTtNYzswO0w7Ozs7O047Ozs7OworMTlDMTtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgVjtMbzswO0w7Ozs7O047Ozs7OworMTlDMjtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgTkc7TG87MDtMOzs7OztOOzs7OzsKKzE5QzM7TkVXIFRBSSBMVUUgTEVUVEVSIEZJTkFMIE47TG87MDtMOzs7OztOOzs7OzsKKzE5QzQ7TkVXIFRBSSBMVUUgTEVUVEVSIEZJTkFMIE07TG87MDtMOzs7OztOOzs7OzsKKzE5QzU7TkVXIFRBSSBMVUUgTEVUVEVSIEZJTkFMIEs7TG87MDtMOzs7OztOOzs7OzsKKzE5QzY7TkVXIFRBSSBMVUUgTEVUVEVSIEZJTkFMIEQ7TG87MDtMOzs7OztOOzs7OzsKKzE5Qzc7TkVXIFRBSSBMVUUgTEVUVEVSIEZJTkFMIEI7TG87MDtMOzs7OztOOzs7OzsKKzE5Qzg7TkVXIFRBSSBMVUUgVE9ORSBNQVJLLTE7TWM7MDtMOzs7OztOOzs7OzsKKzE5Qzk7TkVXIFRBSSBMVUUgVE9ORSBNQVJLLTI7TWM7MDtMOzs7OztOOzs7OzsKKzE5RDA7TkVXIFRBSSBMVUUgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTlEMTtORVcgVEFJIExVRSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE5RDI7TkVXIFRBSSBMVUUgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxOUQzO05FVyBUQUkgTFVFIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxOUQ0O05FVyBUQUkgTFVFIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE5RDU7TkVXIFRBSSBMVUUgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTlENjtORVcgVEFJIExVRSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE5RDc7TkVXIFRBSSBMVUUgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE5RDg7TkVXIFRBSSBMVUUgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzE5RDk7TkVXIFRBSSBMVUUgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTlERTtORVcgVEFJIExVRSBTSUdOIExBRTtQbzswO09OOzs7OztOOzs7OzsKKzE5REY7TkVXIFRBSSBMVUUgU0lHTiBMQUVWO1BvOzA7T047Ozs7O047Ozs7OworMTlFMDtLSE1FUiBTWU1CT0wgUEFUSEFNQVNBVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTE7S0hNRVIgU1lNQk9MIE1VT1kgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTI7S0hNRVIgU1lNQk9MIFBJSSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFMztLSE1FUiBTWU1CT0wgQkVJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUU0O0tITUVSIFNZTUJPTCBCVU9OIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUU1O0tITUVSIFNZTUJPTCBQUkFNIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUU2O0tITUVSIFNZTUJPTCBQUkFNLU1VT1kgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTc7S0hNRVIgU1lNQk9MIFBSQU0tUElJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUU4O0tITUVSIFNZTUJPTCBQUkFNLUJFSSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFOTtLSE1FUiBTWU1CT0wgUFJBTS1CVU9OIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUVBO0tITUVSIFNZTUJPTCBEQVAgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUI7S0hNRVIgU1lNQk9MIERBUC1NVU9ZIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUVDO0tITUVSIFNZTUJPTCBEQVAtUElJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUVEO0tITUVSIFNZTUJPTCBEQVAtQkVJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUVFO0tITUVSIFNZTUJPTCBEQVAtQlVPTiBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFRjtLSE1FUiBTWU1CT0wgREFQLVBSQU0gS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RjA7S0hNRVIgU1lNQk9MIFRVVEVZQVNBVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RjE7S0hNRVIgU1lNQk9MIE1VT1kgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGMjtLSE1FUiBTWU1CT0wgUElJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RjM7S0hNRVIgU1lNQk9MIEJFSSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUY0O0tITUVSIFNZTUJPTCBCVU9OIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RjU7S0hNRVIgU1lNQk9MIFBSQU0gUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGNjtLSE1FUiBTWU1CT0wgUFJBTS1NVU9ZIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5Rjc7S0hNRVIgU1lNQk9MIFBSQU0tUElJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5Rjg7S0hNRVIgU1lNQk9MIFBSQU0tQkVJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5Rjk7S0hNRVIgU1lNQk9MIFBSQU0tQlVPTiBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUZBO0tITUVSIFNZTUJPTCBEQVAgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGQjtLSE1FUiBTWU1CT0wgREFQLU1VT1kgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGQztLSE1FUiBTWU1CT0wgREFQLVBJSSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUZEO0tITUVSIFNZTUJPTCBEQVAtQkVJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RkU7S0hNRVIgU1lNQk9MIERBUC1CVU9OIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RkY7S0hNRVIgU1lNQk9MIERBUC1QUkFNIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzFBMDA7QlVHSU5FU0UgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTAxO0JVR0lORVNFIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMUEwMjtCVUdJTkVTRSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTAzO0JVR0lORVNFIExFVFRFUiBOR0tBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTA0O0JVR0lORVNFIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMUEwNTtCVUdJTkVTRSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzFBMDY7QlVHSU5FU0UgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTA3O0JVR0lORVNFIExFVFRFUiBNUEE7TG87MDtMOzs7OztOOzs7OzsKKzFBMDg7QlVHSU5FU0UgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTA5O0JVR0lORVNFIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMUEwQTtCVUdJTkVTRSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzFBMEI7QlVHSU5FU0UgTEVUVEVSIE5SQTtMbzswO0w7Ozs7O047Ozs7OworMUEwQztCVUdJTkVTRSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMEQ7QlVHSU5FU0UgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTBFO0JVR0lORVNFIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzFBMEY7QlVHSU5FU0UgTEVUVEVSIE5ZQ0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMTA7QlVHSU5FU0UgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTExO0JVR0lORVNFIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMUExMjtCVUdJTkVTRSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzFBMTM7QlVHSU5FU0UgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTE0O0JVR0lORVNFIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMUExNTtCVUdJTkVTRSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMUExNjtCVUdJTkVTRSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzFBMTc7QlVHSU5FU0UgVk9XRUwgU0lHTiBJO01uOzIzMDtOU007Ozs7O047Ozs7OworMUExODtCVUdJTkVTRSBWT1dFTCBTSUdOIFU7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxQTE5O0JVR0lORVNFIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMUExQTtCVUdJTkVTRSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzFBMUI7QlVHSU5FU0UgVk9XRUwgU0lHTiBBRTtNYzswO0w7Ozs7O047Ozs7OworMUExRTtCVUdJTkVTRSBQQUxMQVdBO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxQTFGO0JVR0lORVNFIEVORCBPRiBTRUNUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxQjAwO0JBTElORVNFIFNJR04gVUxVIFJJQ0VNO01uOzA7TlNNOzs7OztOOzthcmRoYWNhbmRyYTs7OworMUIwMTtCQUxJTkVTRSBTSUdOIFVMVSBDQU5EUkE7TW47MDtOU007Ozs7O047O2NhbmRyYWJpbmR1Ozs7CisxQjAyO0JBTElORVNFIFNJR04gQ0VDRUs7TW47MDtOU007Ozs7O047O2FudXN2YXJhOzs7CisxQjAzO0JBTElORVNFIFNJR04gU1VSQU5HO01uOzA7TlNNOzs7OztOOztyZXBoYTs7OworMUIwNDtCQUxJTkVTRSBTSUdOIEJJU0FIO01jOzA7TDs7Ozs7Tjs7dmlzYXJnYTs7OworMUIwNTtCQUxJTkVTRSBMRVRURVIgQUtBUkE7TG87MDtMOzs7OztOOzthOzs7CisxQjA2O0JBTElORVNFIExFVFRFUiBBS0FSQSBURURVTkc7TG87MDtMOzs7OztOOzthYTs7OworMUIwNztCQUxJTkVTRSBMRVRURVIgSUtBUkE7TG87MDtMOzs7OztOOztpOzs7CisxQjA4O0JBTElORVNFIExFVFRFUiBJS0FSQSBURURVTkc7TG87MDtMOzs7OztOOztpaTs7OworMUIwOTtCQUxJTkVTRSBMRVRURVIgVUtBUkE7TG87MDtMOzs7OztOOzt1Ozs7CisxQjBBO0JBTElORVNFIExFVFRFUiBVS0FSQSBURURVTkc7TG87MDtMOzs7OztOOzt1dTs7OworMUIwQjtCQUxJTkVTRSBMRVRURVIgUkEgUkVQQTtMbzswO0w7Ozs7O047O3ZvY2FsaWMgcjs7OworMUIwQztCQUxJTkVTRSBMRVRURVIgUkEgUkVQQSBURURVTkc7TG87MDtMOzs7OztOOzt2b2NhbGljIHJyOzs7CisxQjBEO0JBTElORVNFIExFVFRFUiBMQSBMRU5HQTtMbzswO0w7Ozs7O047O3ZvY2FsaWMgbDs7OworMUIwRTtCQUxJTkVTRSBMRVRURVIgTEEgTEVOR0EgVEVEVU5HO0xvOzA7TDs7Ozs7Tjs7dm9jYWxpYyBsbDs7OworMUIwRjtCQUxJTkVTRSBMRVRURVIgRUtBUkE7TG87MDtMOzs7OztOOztlOzs7CisxQjEwO0JBTElORVNFIExFVFRFUiBBSUtBUkE7TG87MDtMOzs7OztOOzthaTs7OworMUIxMTtCQUxJTkVTRSBMRVRURVIgT0tBUkE7TG87MDtMOzs7OztOOztvOzs7CisxQjEyO0JBTElORVNFIExFVFRFUiBPS0FSQSBURURVTkc7TG87MDtMOzs7OztOOzthdTs7OworMUIxMztCQUxJTkVTRSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzFCMTQ7QkFMSU5FU0UgTEVUVEVSIEtBIE1BSEFQUkFOQTtMbzswO0w7Ozs7O047O2toYTs7OworMUIxNTtCQUxJTkVTRSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzFCMTY7QkFMSU5FU0UgTEVUVEVSIEdBIEdPUkE7TG87MDtMOzs7OztOOztnaGE7OzsKKzFCMTc7QkFMSU5FU0UgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMUIxODtCQUxJTkVTRSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzFCMTk7QkFMSU5FU0UgTEVUVEVSIENBIExBQ0E7TG87MDtMOzs7OztOOztjaGE7OzsKKzFCMUE7QkFMSU5FU0UgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjFCO0JBTElORVNFIExFVFRFUiBKQSBKRVJBO0xvOzA7TDs7Ozs7Tjs7amhhOzs7CisxQjFDO0JBTElORVNFIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzFCMUQ7QkFMSU5FU0UgTEVUVEVSIFRBIExBVElLO0xvOzA7TDs7Ozs7Tjs7dHRhOzs7CisxQjFFO0JBTElORVNFIExFVFRFUiBUQSBNVVJEQSBNQUhBUFJBTkE7TG87MDtMOzs7OztOOzt0dGhhOzs7CisxQjFGO0JBTElORVNFIExFVFRFUiBEQSBNVVJEQSBBTFBBUFJBTkE7TG87MDtMOzs7OztOOztkZGE7OzsKKzFCMjA7QkFMSU5FU0UgTEVUVEVSIERBIE1VUkRBIE1BSEFQUkFOQTtMbzswO0w7Ozs7O047O2RkaGE7OzsKKzFCMjE7QkFMSU5FU0UgTEVUVEVSIE5BIFJBTUJBVDtMbzswO0w7Ozs7O047O25uYTs7OworMUIyMjtCQUxJTkVTRSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzFCMjM7QkFMSU5FU0UgTEVUVEVSIFRBIFRBV0E7TG87MDtMOzs7OztOOzt0aGE7OzsKKzFCMjQ7QkFMSU5FU0UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjI1O0JBTElORVNFIExFVFRFUiBEQSBNQURVO0xvOzA7TDs7Ozs7Tjs7ZGhhOzs7CisxQjI2O0JBTElORVNFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMUIyNztCQUxJTkVTRSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzFCMjg7QkFMSU5FU0UgTEVUVEVSIFBBIEtBUEFMO0xvOzA7TDs7Ozs7Tjs7cGhhOzs7CisxQjI5O0JBTElORVNFIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMUIyQTtCQUxJTkVTRSBMRVRURVIgQkEgS0VNQkFORztMbzswO0w7Ozs7O047O2JoYTs7OworMUIyQjtCQUxJTkVTRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzFCMkM7QkFMSU5FU0UgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjJEO0JBTElORVNFIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMUIyRTtCQUxJTkVTRSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzFCMkY7QkFMSU5FU0UgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjMwO0JBTElORVNFIExFVFRFUiBTQSBTQUdBO0xvOzA7TDs7Ozs7Tjs7c2hhOzs7CisxQjMxO0JBTElORVNFIExFVFRFUiBTQSBTQVBBO0xvOzA7TDs7Ozs7Tjs7c3NhOzs7CisxQjMyO0JBTElORVNFIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMUIzMztCQUxJTkVTRSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzFCMzQ7QkFMSU5FU0UgU0lHTiBSRVJFS0FOO01uOzc7TlNNOzs7OztOOztudWt0YTs7OworMUIzNTtCQUxJTkVTRSBWT1dFTCBTSUdOIFRFRFVORztNYzswO0w7Ozs7O047O2FhOzs7CisxQjM2O0JBTElORVNFIFZPV0VMIFNJR04gVUxVO01uOzA7TlNNOzs7OztOOztpOzs7CisxQjM3O0JBTElORVNFIFZPV0VMIFNJR04gVUxVIFNBUkk7TW47MDtOU007Ozs7O047O2lpOzs7CisxQjM4O0JBTElORVNFIFZPV0VMIFNJR04gU1VLVTtNbjswO05TTTs7Ozs7Tjs7dTs7OworMUIzOTtCQUxJTkVTRSBWT1dFTCBTSUdOIFNVS1UgSUxVVDtNbjswO05TTTs7Ozs7Tjs7dXU7OzsKKzFCM0E7QkFMSU5FU0UgVk9XRUwgU0lHTiBSQSBSRVBBO01uOzA7TlNNOzs7OztOOzt2b2NhbGljIHI7OzsKKzFCM0I7QkFMSU5FU0UgVk9XRUwgU0lHTiBSQSBSRVBBIFRFRFVORztNYzswO0w7Ozs7O047O3ZvY2FsaWMgcnI7OzsKKzFCM0M7QkFMSU5FU0UgVk9XRUwgU0lHTiBMQSBMRU5HQTtNbjswO05TTTs7Ozs7Tjs7dm9jYWxpYyBsOzs7CisxQjNEO0JBTElORVNFIFZPV0VMIFNJR04gTEEgTEVOR0EgVEVEVU5HO01jOzA7TDs7Ozs7Tjs7dm9jYWxpYyBsbDs7OworMUIzRTtCQUxJTkVTRSBWT1dFTCBTSUdOIFRBTElORztNYzswO0w7Ozs7O047O2U7OzsKKzFCM0Y7QkFMSU5FU0UgVk9XRUwgU0lHTiBUQUxJTkcgUkVQQTtNYzswO0w7Ozs7O047O2FpOzs7CisxQjQwO0JBTElORVNFIFZPV0VMIFNJR04gVEFMSU5HIFRFRFVORztNYzswO0w7Ozs7O047O287OzsKKzFCNDE7QkFMSU5FU0UgVk9XRUwgU0lHTiBUQUxJTkcgUkVQQSBURURVTkc7TWM7MDtMOzs7OztOOzthdTs7OworMUI0MjtCQUxJTkVTRSBWT1dFTCBTSUdOIFBFUEVUO01uOzA7TlNNOzs7OztOOzthZTs7OworMUI0MztCQUxJTkVTRSBWT1dFTCBTSUdOIFBFUEVUIFRFRFVORztNYzswO0w7Ozs7O047O29lOzs7CisxQjQ0O0JBTElORVNFIEFERUcgQURFRztNYzs5O0w7Ozs7O047O3ZpcmFtYTs7OworMUI0NTtCQUxJTkVTRSBMRVRURVIgS0FGIFNBU0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjQ2O0JBTElORVNFIExFVFRFUiBLSE9UIFNBU0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjQ3O0JBTElORVNFIExFVFRFUiBUWklSIFNBU0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjQ4O0JBTElORVNFIExFVFRFUiBFRiBTQVNBSztMbzswO0w7Ozs7O047Ozs7OworMUI0OTtCQUxJTkVTRSBMRVRURVIgVkUgU0FTQUs7TG87MDtMOzs7OztOOzs7OzsKKzFCNEE7QkFMSU5FU0UgTEVUVEVSIFpBTCBTQVNBSztMbzswO0w7Ozs7O047Ozs7OworMUI0QjtCQUxJTkVTRSBMRVRURVIgQVNZVVJBIFNBU0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjUwO0JBTElORVNFIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzFCNTE7QkFMSU5FU0UgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxQjUyO0JBTElORVNFIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMUI1MztCQUxJTkVTRSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMUI1NDtCQUxJTkVTRSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxQjU1O0JBTElORVNFIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzFCNTY7QkFMSU5FU0UgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CisxQjU3O0JBTElORVNFIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxQjU4O0JBTElORVNFIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxQjU5O0JBTElORVNFIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzFCNUE7QkFMSU5FU0UgUEFOVEk7UG87MDtMOzs7OztOOztzZWN0aW9uOzs7CisxQjVCO0JBTElORVNFIFBBTUFEQTtQbzswO0w7Ozs7O047O2hvbm9yaWZpYyBzZWN0aW9uOzs7CisxQjVDO0JBTElORVNFIFdJTkRVO1BvOzA7TDs7Ozs7Tjs7cHVuY3R1YXRpb24gcmluZzs7OworMUI1RDtCQUxJTkVTRSBDQVJJSyBQQU1VTkdLQUg7UG87MDtMOzs7OztOOztjb2xvbjs7OworMUI1RTtCQUxJTkVTRSBDQVJJSyBTSUtJO1BvOzA7TDs7Ozs7Tjs7ZGFuZGE7OzsKKzFCNUY7QkFMSU5FU0UgQ0FSSUsgUEFSRVJFTjtQbzswO0w7Ozs7O047O2RvdWJsZSBkYW5kYTs7OworMUI2MDtCQUxJTkVTRSBQQU1FTkVORztQbzswO0w7Ozs7O047O2xpbmUtYnJlYWtpbmcgaHlwaGVuOzs7CisxQjYxO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIERPTkc7U287MDtMOzs7OztOOzs7OzsKKzFCNjI7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgREVORztTbzswO0w7Ozs7O047Ozs7OworMUI2MztCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBEVU5HO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjY0O0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIERBTkc7U287MDtMOzs7OztOOzs7OzsKKzFCNjU7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgREFORyBTVVJBTkc7U287MDtMOzs7OztOOzs7OzsKKzFCNjY7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgRElORztTbzswO0w7Ozs7O047Ozs7OworMUI2NztCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBEQUVORztTbzswO0w7Ozs7O047Ozs7OworMUI2ODtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBERVVORztTbzswO0w7Ozs7O047Ozs7OworMUI2OTtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBEQUlORztTbzswO0w7Ozs7O047Ozs7OworMUI2QTtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBEQU5HIEdFREU7U287MDtMOzs7OztOOzs7OzsKKzFCNkI7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRFR0VIO01uOzIzMDtOU007Ozs7O047Ozs7OworMUI2QztCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRU5ERVA7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxQjZEO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIENPTUJJTklORyBLRU1QVUw7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQjZFO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIENPTUJJTklORyBLRU1QTEk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQjZGO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIENPTUJJTklORyBKRUdPR0FOO01uOzIzMDtOU007Ozs7O047Ozs7OworMUI3MDtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgS0VNUFVMIFdJVEggSkVHT0dBTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFCNzE7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEtFTVBMSSBXSVRIIEpFR09HQU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQjcyO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIENPTUJJTklORyBCRU5ERTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFCNzM7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEdPTkc7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQjc0O0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIFJJR0hULUhBTkQgT1BFTiBEVUc7U287MDtMOzs7OztOOzs7OzsKKzFCNzU7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgUklHSFQtSEFORCBPUEVOIERBRztTbzswO0w7Ozs7O047Ozs7OworMUI3NjtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBSSUdIVC1IQU5EIENMT1NFRCBUVUs7U287MDtMOzs7OztOOzs7OzsKKzFCNzc7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgUklHSFQtSEFORCBDTE9TRUQgVEFLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjc4O0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIExFRlQtSEFORCBPUEVOIFBBTkc7U287MDtMOzs7OztOOzs7OzsKKzFCNzk7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgTEVGVC1IQU5EIE9QRU4gUFVORztTbzswO0w7Ozs7O047Ozs7OworMUI3QTtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBMRUZULUhBTkQgQ0xPU0VEIFBMQUs7U287MDtMOzs7OztOOzs7OzsKKzFCN0I7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgTEVGVC1IQU5EIENMT1NFRCBQTFVLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjdDO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIExFRlQtSEFORCBPUEVOIFBJTkc7U287MDtMOzs7OztOOzs7OzsKKzFEMDA7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQTtMbDswO0w7Ozs7O047Ozs7OworMUQwMTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBBRTtMbDswO0w7Ozs7O047Ozs7OworMUQwMjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEFFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEJBUlJFRCBCO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEM7TGw7MDtMOzs7OztOOzs7OzsKKzFEMDU7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRDtMbDswO0w7Ozs7O047Ozs7OworMUQwNjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBFVEg7TGw7MDtMOzs7OztOOzs7OzsKKzFEMDc7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRTtMbDswO0w7Ozs7O047Ozs7OworMUQwODtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE9QRU4gRTtMbDswO0w7Ozs7O047Ozs7OworMUQwOTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEk7TGw7MDtMOzs7OztOOzs7OzsKKzFEMEE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSjtMbDswO0w7Ozs7O047Ozs7OworMUQwQjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBLO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEwgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEMEQ7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTTtMbDswO0w7Ozs7O047Ozs7OworMUQwRTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBSRVZFUlNFRCBOO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE87TGw7MDtMOzs7OztOOzs7OzsKKzFEMTA7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgT1BFTiBPO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDExO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBPO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBPUEVOIE87TGw7MDtMOzs7OztOOzs7OzsKKzFEMTM7TEFUSU4gU01BTEwgTEVUVEVSIFNJREVXQVlTIE8gV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEMTQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBPRTtMbDswO0w7Ozs7O047Ozs7OworMUQxNTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPVTtMbDswO0w7Ozs7O047Ozs7OworMUQxNjtMQVRJTiBTTUFMTCBMRVRURVIgVE9QIEhBTEYgTztMbDswO0w7Ozs7O047Ozs7OworMUQxNztMQVRJTiBTTUFMTCBMRVRURVIgQk9UVE9NIEhBTEYgTztMbDswO0w7Ozs7O047Ozs7OworMUQxODtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBQO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFJFVkVSU0VEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzFEMUE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgVFVSTkVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzFEMUI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgVDtMbDswO0w7Ozs7O047Ozs7OworMUQxQztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBVO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBVO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDFFO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBESUFFUkVTSVpFRCBVO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDFGO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBUVVJORUQgTTtMbDswO0w7Ozs7O047Ozs7OworMUQyMDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBWO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDIxO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFc7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgWjtMbDswO0w7Ozs7O047Ozs7OworMUQyMztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBFWkg7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjQ7TEFUSU4gTEVUVEVSIFZPSUNFRCBMQVJZTkdFQUwgU1BJUkFOVDtMbDswO0w7Ozs7O047Ozs7OworMUQyNTtMQVRJTiBMRVRURVIgQUlOO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI2O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI3O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIExBTURBO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI4O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIFBJO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI5O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIFJITztMbDswO0w7Ozs7O047Ozs7OworMUQyQTtHUkVFSyBMRVRURVIgU01BTEwgQ0FQSVRBTCBQU0k7TGw7MDtMOzs7OztOOzs7OzsKKzFEMkI7Q1lSSUxMSUMgTEVUVEVSIFNNQUxMIENBUElUQUwgRUw7TGw7MDtMOzs7OztOOzs7OzsKKzFEMkM7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgQTtMbTswO0w7PHN1cGVyPiAwMDQxOzs7O047Ozs7OworMUQyRDtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBBRTtMbTswO0w7PHN1cGVyPiAwMEM2Ozs7O047Ozs7OworMUQyRTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBCO0xtOzA7TDs8c3VwZXI+IDAwNDI7Ozs7Tjs7Ozs7CisxRDJGO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEJBUlJFRCBCO0xtOzA7TDs7Ozs7Tjs7Ozs7CisxRDMwO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEQ7TG07MDtMOzxzdXBlcj4gMDA0NDs7OztOOzs7OzsKKzFEMzE7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgRTtMbTswO0w7PHN1cGVyPiAwMDQ1Ozs7O047Ozs7OworMUQzMjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBSRVZFUlNFRCBFO0xtOzA7TDs8c3VwZXI+IDAxOEU7Ozs7Tjs7Ozs7CisxRDMzO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEc7TG07MDtMOzxzdXBlcj4gMDA0Nzs7OztOOzs7OzsKKzFEMzQ7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgSDtMbTswO0w7PHN1cGVyPiAwMDQ4Ozs7O047Ozs7OworMUQzNTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBJO0xtOzA7TDs8c3VwZXI+IDAwNDk7Ozs7Tjs7Ozs7CisxRDM2O01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEo7TG07MDtMOzxzdXBlcj4gMDA0QTs7OztOOzs7OzsKKzFEMzc7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgSztMbTswO0w7PHN1cGVyPiAwMDRCOzs7O047Ozs7OworMUQzODtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBMO0xtOzA7TDs8c3VwZXI+IDAwNEM7Ozs7Tjs7Ozs7CisxRDM5O01PRElGSUVSIExFVFRFUiBDQVBJVEFMIE07TG07MDtMOzxzdXBlcj4gMDA0RDs7OztOOzs7OzsKKzFEM0E7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgTjtMbTswO0w7PHN1cGVyPiAwMDRFOzs7O047Ozs7OworMUQzQjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBSRVZFUlNFRCBOO0xtOzA7TDs7Ozs7Tjs7Ozs7CisxRDNDO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIE87TG07MDtMOzxzdXBlcj4gMDA0Rjs7OztOOzs7OzsKKzFEM0Q7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgT1U7TG07MDtMOzxzdXBlcj4gMDIyMjs7OztOOzs7OzsKKzFEM0U7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgUDtMbTswO0w7PHN1cGVyPiAwMDUwOzs7O047Ozs7OworMUQzRjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBSO0xtOzA7TDs8c3VwZXI+IDAwNTI7Ozs7Tjs7Ozs7CisxRDQwO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIFQ7TG07MDtMOzxzdXBlcj4gMDA1NDs7OztOOzs7OzsKKzFENDE7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgVTtMbTswO0w7PHN1cGVyPiAwMDU1Ozs7O047Ozs7OworMUQ0MjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBXO0xtOzA7TDs8c3VwZXI+IDAwNTc7Ozs7Tjs7Ozs7CisxRDQzO01PRElGSUVSIExFVFRFUiBTTUFMTCBBO0xtOzA7TDs8c3VwZXI+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQ0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgQTtMbTswO0w7PHN1cGVyPiAwMjUwOzs7O047Ozs7OworMUQ0NTtNT0RJRklFUiBMRVRURVIgU01BTEwgQUxQSEE7TG07MDtMOzxzdXBlcj4gMDI1MTs7OztOOzs7OzsKKzFENDY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBBRTtMbTswO0w7PHN1cGVyPiAxRDAyOzs7O047Ozs7OworMUQ0NztNT0RJRklFUiBMRVRURVIgU01BTEwgQjtMbTswO0w7PHN1cGVyPiAwMDYyOzs7O047Ozs7OworMUQ0ODtNT0RJRklFUiBMRVRURVIgU01BTEwgRDtMbTswO0w7PHN1cGVyPiAwMDY0Ozs7O047Ozs7OworMUQ0OTtNT0RJRklFUiBMRVRURVIgU01BTEwgRTtMbTswO0w7PHN1cGVyPiAwMDY1Ozs7O047Ozs7OworMUQ0QTtNT0RJRklFUiBMRVRURVIgU01BTEwgU0NIV0E7TG07MDtMOzxzdXBlcj4gMDI1OTs7OztOOzs7OzsKKzFENEI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIE9QRU4gRTtMbTswO0w7PHN1cGVyPiAwMjVCOzs7O047Ozs7OworMUQ0QztNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIE9QRU4gRTtMbTswO0w7PHN1cGVyPiAwMjVDOzs7O047Ozs7OworMUQ0RDtNT0RJRklFUiBMRVRURVIgU01BTEwgRztMbTswO0w7PHN1cGVyPiAwMDY3Ozs7O047Ozs7OworMUQ0RTtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIEk7TG07MDtMOzs7OztOOzs7OzsKKzFENEY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEs7TG07MDtMOzxzdXBlcj4gMDA2Qjs7OztOOzs7OzsKKzFENTA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIE07TG07MDtMOzxzdXBlcj4gMDA2RDs7OztOOzs7OzsKKzFENTE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEVORztMbTswO0w7PHN1cGVyPiAwMTRCOzs7O047Ozs7OworMUQ1MjtNT0RJRklFUiBMRVRURVIgU01BTEwgTztMbTswO0w7PHN1cGVyPiAwMDZGOzs7O047Ozs7OworMUQ1MztNT0RJRklFUiBMRVRURVIgU01BTEwgT1BFTiBPO0xtOzA7TDs8c3VwZXI+IDAyNTQ7Ozs7Tjs7Ozs7CisxRDU0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUT1AgSEFMRiBPO0xtOzA7TDs8c3VwZXI+IDFEMTY7Ozs7Tjs7Ozs7CisxRDU1O01PRElGSUVSIExFVFRFUiBTTUFMTCBCT1RUT00gSEFMRiBPO0xtOzA7TDs8c3VwZXI+IDFEMTc7Ozs7Tjs7Ozs7CisxRDU2O01PRElGSUVSIExFVFRFUiBTTUFMTCBQO0xtOzA7TDs8c3VwZXI+IDAwNzA7Ozs7Tjs7Ozs7CisxRDU3O01PRElGSUVSIExFVFRFUiBTTUFMTCBUO0xtOzA7TDs8c3VwZXI+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDU4O01PRElGSUVSIExFVFRFUiBTTUFMTCBVO0xtOzA7TDs8c3VwZXI+IDAwNzU7Ozs7Tjs7Ozs7CisxRDU5O01PRElGSUVSIExFVFRFUiBTTUFMTCBTSURFV0FZUyBVO0xtOzA7TDs8c3VwZXI+IDFEMUQ7Ozs7Tjs7Ozs7CisxRDVBO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgTTtMbTswO0w7PHN1cGVyPiAwMjZGOzs7O047Ozs7OworMUQ1QjtNT0RJRklFUiBMRVRURVIgU01BTEwgVjtMbTswO0w7PHN1cGVyPiAwMDc2Ozs7O047Ozs7OworMUQ1QztNT0RJRklFUiBMRVRURVIgU01BTEwgQUlOO0xtOzA7TDs8c3VwZXI+IDFEMjU7Ozs7Tjs7Ozs7CisxRDVEO01PRElGSUVSIExFVFRFUiBTTUFMTCBCRVRBO0xtOzA7TDs8c3VwZXI+IDAzQjI7Ozs7Tjs7Ozs7CisxRDVFO01PRElGSUVSIExFVFRFUiBTTUFMTCBHUkVFSyBHQU1NQTtMbTswO0w7PHN1cGVyPiAwM0IzOzs7O047Ozs7OworMUQ1RjtNT0RJRklFUiBMRVRURVIgU01BTEwgREVMVEE7TG07MDtMOzxzdXBlcj4gMDNCNDs7OztOOzs7OzsKKzFENjA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEdSRUVLIFBISTtMbTswO0w7PHN1cGVyPiAwM0M2Ozs7O047Ozs7OworMUQ2MTtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0hJO0xtOzA7TDs8c3VwZXI+IDAzQzc7Ozs7Tjs7Ozs7CisxRDYyO0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgSTtMbDswO0w7PHN1Yj4gMDA2OTs7OztOOzs7OzsKKzFENjM7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs8c3ViPiAwMDcyOzs7O047Ozs7OworMUQ2NDtMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFU7TGw7MDtMOzxzdWI+IDAwNzU7Ozs7Tjs7Ozs7CisxRDY1O0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgVjtMbDswO0w7PHN1Yj4gMDA3Njs7OztOOzs7OzsKKzFENjY7R1JFRUsgU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBCRVRBO0xsOzA7TDs8c3ViPiAwM0IyOzs7O047Ozs7OworMUQ2NztHUkVFSyBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs8c3ViPiAwM0IzOzs7O047Ozs7OworMUQ2ODtHUkVFSyBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFJITztMbDswO0w7PHN1Yj4gMDNDMTs7OztOOzs7OzsKKzFENjk7R1JFRUsgU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzxzdWI+IDAzQzY7Ozs7Tjs7Ozs7CisxRDZBO0dSRUVLIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgQ0hJO0xsOzA7TDs8c3ViPiAwM0M3Ozs7O047Ozs7OworMUQ2QjtMQVRJTiBTTUFMTCBMRVRURVIgVUU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkQ7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkU7TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkY7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzA7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzE7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzI7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzM7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBGSVNISE9PSyBBTkQgTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc0O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc1O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc2O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc3O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgRztMbDswO0w7Ozs7O047Ozs7OworMUQ3ODtNT0RJRklFUiBMRVRURVIgQ1lSSUxMSUMgRU47TG07MDtMOzxzdXBlcj4gMDQzRDs7OztOOzs7OzsKKzFENzk7TEFUSU4gU01BTEwgTEVUVEVSIElOU1VMQVIgRztMbDswO0w7Ozs7O047Ozs7OworMUQ3QTtMQVRJTiBTTUFMTCBMRVRURVIgVEggV0lUSCBTVFJJS0VUSFJPVUdIO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDdCO0xBVElOIFNNQUxMIENBUElUQUwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEN0M7TEFUSU4gU01BTEwgTEVUVEVSIElPVEEgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEN0Q7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7MkM2Mzs7MkM2MworMUQ3RTtMQVRJTiBTTUFMTCBDQVBJVEFMIExFVFRFUiBVIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDdGO0xBVElOIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDgwO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDgxO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDgyO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDgzO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDg0O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDg1O0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDg2O0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDg3O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDg4O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDg5O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDhBO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDhCO0xBVElOIFNNQUxMIExFVFRFUiBFU0ggV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOEM7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFggV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOEU7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOEY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5MDtMQVRJTiBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5MTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIEhPT0sgQU5EIFRBSUw7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5MztMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBFIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTQ7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDk1O0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDk2O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTc7TEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gTyBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDk4O0xBVElOIFNNQUxMIExFVFRFUiBFU0ggV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDlBO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5QjtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIEFMUEhBO0xtOzA7TDs8c3VwZXI+IDAyNTI7Ozs7Tjs7Ozs7CisxRDlDO01PRElGSUVSIExFVFRFUiBTTUFMTCBDO0xtOzA7TDs8c3VwZXI+IDAwNjM7Ozs7Tjs7Ozs7CisxRDlEO01PRElGSUVSIExFVFRFUiBTTUFMTCBDIFdJVEggQ1VSTDtMbTswO0w7PHN1cGVyPiAwMjU1Ozs7O047Ozs7OworMUQ5RTtNT0RJRklFUiBMRVRURVIgU01BTEwgRVRIO0xtOzA7TDs8c3VwZXI+IDAwRjA7Ozs7Tjs7Ozs7CisxRDlGO01PRElGSUVSIExFVFRFUiBTTUFMTCBSRVZFUlNFRCBPUEVOIEU7TG07MDtMOzxzdXBlcj4gMDI1Qzs7OztOOzs7OzsKKzFEQTA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEY7TG07MDtMOzxzdXBlcj4gMDA2Njs7OztOOzs7OzsKKzFEQTE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIERPVExFU1MgSiBXSVRIIFNUUk9LRTtMbTswO0w7PHN1cGVyPiAwMjVGOzs7O047Ozs7OworMURBMjtNT0RJRklFUiBMRVRURVIgU01BTEwgU0NSSVBUIEc7TG07MDtMOzxzdXBlcj4gMDI2MTs7OztOOzs7OzsKKzFEQTM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBIO0xtOzA7TDs8c3VwZXI+IDAyNjU7Ozs7Tjs7Ozs7CisxREE0O01PRElGSUVSIExFVFRFUiBTTUFMTCBJIFdJVEggU1RST0tFO0xtOzA7TDs8c3VwZXI+IDAyNjg7Ozs7Tjs7Ozs7CisxREE1O01PRElGSUVSIExFVFRFUiBTTUFMTCBJT1RBO0xtOzA7TDs8c3VwZXI+IDAyNjk7Ozs7Tjs7Ozs7CisxREE2O01PRElGSUVSIExFVFRFUiBTTUFMTCBDQVBJVEFMIEk7TG07MDtMOzxzdXBlcj4gMDI2QTs7OztOOzs7OzsKKzFEQTc7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgSSBXSVRIIFNUUk9LRTtMbTswO0w7PHN1cGVyPiAxRDdCOzs7O047Ozs7OworMURBODtNT0RJRklFUiBMRVRURVIgU01BTEwgSiBXSVRIIENST1NTRUQtVEFJTDtMbTswO0w7PHN1cGVyPiAwMjlEOzs7O047Ozs7OworMURBOTtNT0RJRklFUiBMRVRURVIgU01BTEwgTCBXSVRIIFJFVFJPRkxFWCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyNkQ7Ozs7Tjs7Ozs7CisxREFBO01PRElGSUVSIExFVFRFUiBTTUFMTCBMIFdJVEggUEFMQVRBTCBIT09LO0xtOzA7TDs8c3VwZXI+IDFEODU7Ozs7Tjs7Ozs7CisxREFCO01PRElGSUVSIExFVFRFUiBTTUFMTCBDQVBJVEFMIEw7TG07MDtMOzxzdXBlcj4gMDI5Rjs7OztOOzs7OzsKKzFEQUM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIE0gV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyNzE7Ozs7Tjs7Ozs7CisxREFEO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgTSBXSVRIIExPTkcgTEVHO0xtOzA7TDs8c3VwZXI+IDAyNzA7Ozs7Tjs7Ozs7CisxREFFO01PRElGSUVSIExFVFRFUiBTTUFMTCBOIFdJVEggTEVGVCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyNzI7Ozs7Tjs7Ozs7CisxREFGO01PRElGSUVSIExFVFRFUiBTTUFMTCBOIFdJVEggUkVUUk9GTEVYIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI3Mzs7OztOOzs7OzsKKzFEQjA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgTjtMbTswO0w7PHN1cGVyPiAwMjc0Ozs7O047Ozs7OworMURCMTtNT0RJRklFUiBMRVRURVIgU01BTEwgQkFSUkVEIE87TG07MDtMOzxzdXBlcj4gMDI3NTs7OztOOzs7OzsKKzFEQjI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFBISTtMbTswO0w7PHN1cGVyPiAwMjc4Ozs7O047Ozs7OworMURCMztNT0RJRklFUiBMRVRURVIgU01BTEwgUyBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI4Mjs7OztOOzs7OzsKKzFEQjQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEVTSDtMbTswO0w7PHN1cGVyPiAwMjgzOzs7O047Ozs7OworMURCNTtNT0RJRklFUiBMRVRURVIgU01BTEwgVCBXSVRIIFBBTEFUQUwgSE9PSztMbTswO0w7PHN1cGVyPiAwMUFCOzs7O047Ozs7OworMURCNjtNT0RJRklFUiBMRVRURVIgU01BTEwgVSBCQVI7TG07MDtMOzxzdXBlcj4gMDI4OTs7OztOOzs7OzsKKzFEQjc7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFVQU0lMT047TG07MDtMOzxzdXBlcj4gMDI4QTs7OztOOzs7OzsKKzFEQjg7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgVTtMbTswO0w7PHN1cGVyPiAxRDFDOzs7O047Ozs7OworMURCOTtNT0RJRklFUiBMRVRURVIgU01BTEwgViBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI4Qjs7OztOOzs7OzsKKzFEQkE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBWO0xtOzA7TDs8c3VwZXI+IDAyOEM7Ozs7Tjs7Ozs7CisxREJCO01PRElGSUVSIExFVFRFUiBTTUFMTCBaO0xtOzA7TDs8c3VwZXI+IDAwN0E7Ozs7Tjs7Ozs7CisxREJDO01PRElGSUVSIExFVFRFUiBTTUFMTCBaIFdJVEggUkVUUk9GTEVYIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI5MDs7OztOOzs7OzsKKzFEQkQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFogV0lUSCBDVVJMO0xtOzA7TDs8c3VwZXI+IDAyOTE7Ozs7Tjs7Ozs7CisxREJFO01PRElGSUVSIExFVFRFUiBTTUFMTCBFWkg7TG07MDtMOzxzdXBlcj4gMDI5Mjs7OztOOzs7OzsKKzFEQkY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRIRVRBO0xtOzA7TDs8c3VwZXI+IDAzQjg7Ozs7Tjs7Ozs7CisxREMwO0NPTUJJTklORyBET1RURUQgR1JBVkUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDMTtDT01CSU5JTkcgRE9UVEVEIEFDVVRFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEQzI7Q09NQklOSU5HIFNOQUtFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMURDMztDT01CSU5JTkcgU1VTUEVOU0lPTiBNQVJLO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDNDtDT01CSU5JTkcgTUFDUk9OLUFDVVRFO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDNTtDT01CSU5JTkcgR1JBVkUtTUFDUk9OO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDNjtDT01CSU5JTkcgTUFDUk9OLUdSQVZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDNztDT01CSU5JTkcgQUNVVEUtTUFDUk9OO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDODtDT01CSU5JTkcgR1JBVkUtQUNVVEUtR1JBVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREM5O0NPTUJJTklORyBBQ1VURS1HUkFWRS1BQ1VURTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEQ0E7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBSIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMURGRTtDT01CSU5JTkcgTEVGVCBBUlJPV0hFQUQgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREZGO0NPTUJJTklORyBSSUdIVCBBUlJPV0hFQUQgQU5EIERPV04gQVJST1dIRUFEIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMUUwMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBCRUxPVztMdTswO0w7MDA0MSAwMzI1Ozs7O047Ozs7MUUwMTsKKzFFMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEJFTE9XO0xsOzA7TDswMDYxIDAzMjU7Ozs7Tjs7OzFFMDA7OzFFMDAKKzFFMDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0MiAwMzA3Ozs7O047Ozs7MUUwMzsKKzFFMDM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjIgMDMwNzs7OztOOzs7MUUwMjs7MUUwMgorMUUwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQyIDAzMjM7Ozs7Tjs7OzsxRTA1OworMUUwNTtMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2MiAwMzIzOzs7O047OzsxRTA0OzsxRTA0CisxRTA2O0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDQyIDAzMzE7Ozs7Tjs7OzsxRTA3OworMUUwNztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjIgMDMzMTs7OztOOzs7MUUwNjs7MUUwNgorMUUwODtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQSBBTkQgQUNVVEU7THU7MDtMOzAwQzcgMDMwMTs7OztOOzs7OzFFMDk7CisxRTA5O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQSBBTkQgQUNVVEU7TGw7MDtMOzAwRTcgMDMwMTs7OztOOzs7MUUwODs7MUUwOAorMUUwQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ0IDAzMDc7Ozs7Tjs7OzsxRTBCOworMUUwQjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NCAwMzA3Ozs7O047OzsxRTBBOzsxRTBBCisxRTBDO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDQgMDMyMzs7OztOOzs7OzFFMEQ7CisxRTBEO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY0IDAzMjM7Ozs7Tjs7OzFFMEM7OzFFMEMKKzFFMEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNDQgMDMzMTs7OztOOzs7OzFFMEY7CisxRTBGO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2NCAwMzMxOzs7O047OzsxRTBFOzsxRTBFCisxRTEwO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ0IDAzMjc7Ozs7Tjs7OzsxRTExOworMUUxMTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjQgMDMyNzs7OztOOzs7MUUxMDs7MUUxMAorMUUxMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0NCAwMzJEOzs7O047Ozs7MUUxMzsKKzFFMTM7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDY0IDAzMkQ7Ozs7Tjs7OzFFMTI7OzFFMTIKKzFFMTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7THU7MDtMOzAxMTIgMDMwMDs7OztOOzs7OzFFMTU7CisxRTE1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMbDswO0w7MDExMyAwMzAwOzs7O047OzsxRTE0OzsxRTE0CisxRTE2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEFDVVRFO0x1OzA7TDswMTEyIDAzMDE7Ozs7Tjs7OzsxRTE3OworMUUxNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7TGw7MDtMOzAxMTMgMDMwMTs7OztOOzs7MUUxNjs7MUUxNgorMUUxODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0NSAwMzJEOzs7O047Ozs7MUUxOTsKKzFFMTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDY1IDAzMkQ7Ozs7Tjs7OzFFMTg7OzFFMTgKKzFFMUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDQ1IDAzMzA7Ozs7Tjs7OzsxRTFCOworMUUxQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDY1IDAzMzA7Ozs7Tjs7OzFFMUE7OzFFMUEKKzFFMUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENFRElMTEEgQU5EIEJSRVZFO0x1OzA7TDswMjI4IDAzMDY7Ozs7Tjs7OzsxRTFEOworMUUxRDtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENFRElMTEEgQU5EIEJSRVZFO0xsOzA7TDswMjI5IDAzMDY7Ozs7Tjs7OzFFMUM7OzFFMUMKKzFFMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NiAwMzA3Ozs7O047Ozs7MUUxRjsKKzFFMUY7TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjYgMDMwNzs7OztOOzs7MUUxRTs7MUUxRQorMUUyMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ3IDAzMDQ7Ozs7Tjs7OzsxRTIxOworMUUyMTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2NyAwMzA0Ozs7O047OzsxRTIwOzsxRTIwCisxRTIyO0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDggMDMwNzs7OztOOzs7OzFFMjM7CisxRTIzO0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY4IDAzMDc7Ozs7Tjs7OzFFMjI7OzFFMjIKKzFFMjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0OCAwMzIzOzs7O047Ozs7MUUyNTsKKzFFMjU7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjggMDMyMzs7OztOOzs7MUUyNDs7MUUyNAorMUUyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ4IDAzMDg7Ozs7Tjs7OzsxRTI3OworMUUyNztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2OCAwMzA4Ozs7O047OzsxRTI2OzsxRTI2CisxRTI4O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBDRURJTExBO0x1OzA7TDswMDQ4IDAzMjc7Ozs7Tjs7OzsxRTI5OworMUUyOTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjggMDMyNzs7OztOOzs7MUUyODs7MUUyOAorMUUyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQlJFVkUgQkVMT1c7THU7MDtMOzAwNDggMDMyRTs7OztOOzs7OzFFMkI7CisxRTJCO0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQlJFVkUgQkVMT1c7TGw7MDtMOzAwNjggMDMyRTs7OztOOzs7MUUyQTs7MUUyQQorMUUyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNDkgMDMzMDs7OztOOzs7OzFFMkQ7CisxRTJEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNjkgMDMzMDs7OztOOzs7MUUyQzs7MUUyQworMUUyRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMdTswO0w7MDBDRiAwMzAxOzs7O047Ozs7MUUyRjsKKzFFMkY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0xsOzA7TDswMEVGIDAzMDE7Ozs7Tjs7OzFFMkU7OzFFMkUKKzFFMzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIEFDVVRFO0x1OzA7TDswMDRCIDAzMDE7Ozs7Tjs7OzsxRTMxOworMUUzMTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIEFDVVRFO0xsOzA7TDswMDZCIDAzMDE7Ozs7Tjs7OzFFMzA7OzFFMzAKKzFFMzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0QiAwMzIzOzs7O047Ozs7MUUzMzsKKzFFMzM7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkIgMDMyMzs7OztOOzs7MUUzMjs7MUUzMgorMUUzNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0QiAwMzMxOzs7O047Ozs7MUUzNTsKKzFFMzU7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZCIDAzMzE7Ozs7Tjs7OzFFMzQ7OzFFMzQKKzFFMzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0QyAwMzIzOzs7O047Ozs7MUUzNzsKKzFFMzc7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkMgMDMyMzs7OztOOzs7MUUzNjs7MUUzNgorMUUzODtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047THU7MDtMOzFFMzYgMDMwNDs7OztOOzs7OzFFMzk7CisxRTM5O0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047TGw7MDtMOzFFMzcgMDMwNDs7OztOOzs7MUUzODs7MUUzOAorMUUzQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0QyAwMzMxOzs7O047Ozs7MUUzQjsKKzFFM0I7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZDIDAzMzE7Ozs7Tjs7OzFFM0E7OzFFM0EKKzFFM0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNEMgMDMyRDs7OztOOzs7OzFFM0Q7CisxRTNEO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2QyAwMzJEOzs7O047OzsxRTNDOzsxRTNDCisxRTNFO0xBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBBQ1VURTtMdTswO0w7MDA0RCAwMzAxOzs7O047Ozs7MUUzRjsKKzFFM0Y7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBBQ1VURTtMbDswO0w7MDA2RCAwMzAxOzs7O047OzsxRTNFOzsxRTNFCisxRTQwO0xBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEQgMDMwNzs7OztOOzs7OzFFNDE7CisxRTQxO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZEIDAzMDc7Ozs7Tjs7OzFFNDA7OzFFNDAKKzFFNDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RCAwMzIzOzs7O047Ozs7MUU0MzsKKzFFNDM7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkQgMDMyMzs7OztOOzs7MUU0Mjs7MUU0MgorMUU0NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDRFIDAzMDc7Ozs7Tjs7OzsxRTQ1OworMUU0NTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2RSAwMzA3Ozs7O047OzsxRTQ0OzsxRTQ0CisxRTQ2O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEUgMDMyMzs7OztOOzs7OzFFNDc7CisxRTQ3O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZFIDAzMjM7Ozs7Tjs7OzFFNDY7OzFFNDYKKzFFNDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEUgMDMzMTs7OztOOzs7OzFFNDk7CisxRTQ5O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2RSAwMzMxOzs7O047OzsxRTQ4OzsxRTQ4CisxRTRBO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDRFIDAzMkQ7Ozs7Tjs7OzsxRTRCOworMUU0QjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNkUgMDMyRDs7OztOOzs7MUU0QTs7MUU0QQorMUU0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIEFDVVRFO0x1OzA7TDswMEQ1IDAzMDE7Ozs7Tjs7OzsxRTREOworMUU0RDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBBQ1VURTtMbDswO0w7MDBGNSAwMzAxOzs7O047OzsxRTRDOzsxRTRDCisxRTRFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgRElBRVJFU0lTO0x1OzA7TDswMEQ1IDAzMDg7Ozs7Tjs7OzsxRTRGOworMUU0RjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBESUFFUkVTSVM7TGw7MDtMOzAwRjUgMDMwODs7OztOOzs7MUU0RTs7MUU0RQorMUU1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMdTswO0w7MDE0QyAwMzAwOzs7O047Ozs7MUU1MTsKKzFFNTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEdSQVZFO0xsOzA7TDswMTREIDAzMDA7Ozs7Tjs7OzFFNTA7OzFFNTAKKzFFNTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7THU7MDtMOzAxNEMgMDMwMTs7OztOOzs7OzFFNTM7CisxRTUzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMbDswO0w7MDE0RCAwMzAxOzs7O047OzsxRTUyOzsxRTUyCisxRTU0O0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBBQ1VURTtMdTswO0w7MDA1MCAwMzAxOzs7O047Ozs7MUU1NTsKKzFFNTU7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBBQ1VURTtMbDswO0w7MDA3MCAwMzAxOzs7O047OzsxRTU0OzsxRTU0CisxRTU2O0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTAgMDMwNzs7OztOOzs7OzFFNTc7CisxRTU3O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDcwIDAzMDc7Ozs7Tjs7OzFFNTY7OzFFNTYKKzFFNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MiAwMzA3Ozs7O047Ozs7MUU1OTsKKzFFNTk7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzIgMDMwNzs7OztOOzs7MUU1ODs7MUU1OAorMUU1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDUyIDAzMjM7Ozs7Tjs7OzsxRTVCOworMUU1QjtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3MiAwMzIzOzs7O047OzsxRTVBOzsxRTVBCisxRTVDO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMdTswO0w7MUU1QSAwMzA0Ozs7O047Ozs7MUU1RDsKKzFFNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMbDswO0w7MUU1QiAwMzA0Ozs7O047OzsxRTVDOzsxRTVDCisxRTVFO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDUyIDAzMzE7Ozs7Tjs7OzsxRTVGOworMUU1RjtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNzIgMDMzMTs7OztOOzs7MUU1RTs7MUU1RQorMUU2MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUzIDAzMDc7Ozs7Tjs7OzsxRTYxOworMUU2MTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MyAwMzA3Ozs7O047OzsxRTYwOzsxRTYwCisxRTYyO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTMgMDMyMzs7OztOOzs7OzFFNjM7CisxRTYzO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDczIDAzMjM7Ozs7Tjs7OzFFNjI7OzFFNjIKKzFFNjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIEFDVVRFIEFORCBET1QgQUJPVkU7THU7MDtMOzAxNUEgMDMwNzs7OztOOzs7OzFFNjU7CisxRTY1O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQUNVVEUgQU5EIERPVCBBQk9WRTtMbDswO0w7MDE1QiAwMzA3Ozs7O047OzsxRTY0OzsxRTY0CisxRTY2O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDQVJPTiBBTkQgRE9UIEFCT1ZFO0x1OzA7TDswMTYwIDAzMDc7Ozs7Tjs7OzsxRTY3OworMUU2NztMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OIEFORCBET1QgQUJPVkU7TGw7MDtMOzAxNjEgMDMwNzs7OztOOzs7MUU2Njs7MUU2NgorMUU2ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7THU7MDtMOzFFNjIgMDMwNzs7OztOOzs7OzFFNjk7CisxRTY5O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TGw7MDtMOzFFNjMgMDMwNzs7OztOOzs7MUU2ODs7MUU2OAorMUU2QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU0IDAzMDc7Ozs7Tjs7OzsxRTZCOworMUU2QjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3NCAwMzA3Ozs7O047OzsxRTZBOzsxRTZBCisxRTZDO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTQgMDMyMzs7OztOOzs7OzFFNkQ7CisxRTZEO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc0IDAzMjM7Ozs7Tjs7OzFFNkM7OzFFNkMKKzFFNkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNTQgMDMzMTs7OztOOzs7OzFFNkY7CisxRTZGO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3NCAwMzMxOzs7O047OzsxRTZFOzsxRTZFCisxRTcwO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDU0IDAzMkQ7Ozs7Tjs7OzsxRTcxOworMUU3MTtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNzQgMDMyRDs7OztOOzs7MUU3MDs7MUU3MAorMUU3MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEJFTE9XO0x1OzA7TDswMDU1IDAzMjQ7Ozs7Tjs7OzsxRTczOworMUU3MztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBCRUxPVztMbDswO0w7MDA3NSAwMzI0Ozs7O047OzsxRTcyOzsxRTcyCisxRTc0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA1NSAwMzMwOzs7O047Ozs7MUU3NTsKKzFFNzU7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA3NSAwMzMwOzs7O047OzsxRTc0OzsxRTc0CisxRTc2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDU1IDAzMkQ7Ozs7Tjs7OzsxRTc3OworMUU3NztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNzUgMDMyRDs7OztOOzs7MUU3Njs7MUU3NgorMUU3ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREUgQU5EIEFDVVRFO0x1OzA7TDswMTY4IDAzMDE7Ozs7Tjs7OzsxRTc5OworMUU3OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFIEFORCBBQ1VURTtMbDswO0w7MDE2OSAwMzAxOzs7O047OzsxRTc4OzsxRTc4CisxRTdBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST04gQU5EIERJQUVSRVNJUztMdTswO0w7MDE2QSAwMzA4Ozs7O047Ozs7MUU3QjsKKzFFN0I7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST04gQU5EIERJQUVSRVNJUztMbDswO0w7MDE2QiAwMzA4Ozs7O047OzsxRTdBOzsxRTdBCisxRTdDO0xBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBUSUxERTtMdTswO0w7MDA1NiAwMzAzOzs7O047Ozs7MUU3RDsKKzFFN0Q7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBUSUxERTtMbDswO0w7MDA3NiAwMzAzOzs7O047OzsxRTdDOzsxRTdDCisxRTdFO0xBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTYgMDMyMzs7OztOOzs7OzFFN0Y7CisxRTdGO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc2IDAzMjM7Ozs7Tjs7OzFFN0U7OzFFN0UKKzFFODA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIEdSQVZFO0x1OzA7TDswMDU3IDAzMDA7Ozs7Tjs7OzsxRTgxOworMUU4MTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIEdSQVZFO0xsOzA7TDswMDc3IDAzMDA7Ozs7Tjs7OzFFODA7OzFFODAKKzFFODI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIEFDVVRFO0x1OzA7TDswMDU3IDAzMDE7Ozs7Tjs7OzsxRTgzOworMUU4MztMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIEFDVVRFO0xsOzA7TDswMDc3IDAzMDE7Ozs7Tjs7OzFFODI7OzFFODIKKzFFODQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1NyAwMzA4Ozs7O047Ozs7MUU4NTsKKzFFODU7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzcgMDMwODs7OztOOzs7MUU4NDs7MUU4NAorMUU4NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU3IDAzMDc7Ozs7Tjs7OzsxRTg3OworMUU4NztMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3NyAwMzA3Ozs7O047OzsxRTg2OzsxRTg2CisxRTg4O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTcgMDMyMzs7OztOOzs7OzFFODk7CisxRTg5O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc3IDAzMjM7Ozs7Tjs7OzFFODg7OzFFODgKKzFFOEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1OCAwMzA3Ozs7O047Ozs7MUU4QjsKKzFFOEI7TEFUSU4gU01BTEwgTEVUVEVSIFggV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzggMDMwNzs7OztOOzs7MUU4QTs7MUU4QQorMUU4QztMQVRJTiBDQVBJVEFMIExFVFRFUiBYIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU4IDAzMDg7Ozs7Tjs7OzsxRThEOworMUU4RDtMQVRJTiBTTUFMTCBMRVRURVIgWCBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3OCAwMzA4Ozs7O047OzsxRThDOzsxRThDCisxRThFO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTkgMDMwNzs7OztOOzs7OzFFOEY7CisxRThGO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc5IDAzMDc7Ozs7Tjs7OzFFOEU7OzFFOEUKKzFFOTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNUEgMDMwMjs7OztOOzs7OzFFOTE7CisxRTkxO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3QSAwMzAyOzs7O047OzsxRTkwOzsxRTkwCisxRTkyO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNUEgMDMyMzs7OztOOzs7OzFFOTM7CisxRTkzO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDdBIDAzMjM7Ozs7Tjs7OzFFOTI7OzFFOTIKKzFFOTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNUEgMDMzMTs7OztOOzs7OzFFOTU7CisxRTk1O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3QSAwMzMxOzs7O047OzsxRTk0OzsxRTk0CisxRTk2O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2OCAwMzMxOzs7O047Ozs7OworMUU5NztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NCAwMzA4Ozs7O047Ozs7OworMUU5ODtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzcgMDMwQTs7OztOOzs7OzsKKzFFOTk7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc5IDAzMEE7Ozs7Tjs7Ozs7CisxRTlBO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklHSFQgSEFMRiBSSU5HO0xsOzA7TDs8Y29tcGF0PiAwMDYxIDAyQkU7Ozs7Tjs7Ozs7CisxRTlCO0xBVElOIFNNQUxMIExFVFRFUiBMT05HIFMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAxN0YgMDMwNzs7OztOOzs7MUU2MDs7MUU2MAorMUVBMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQxIDAzMjM7Ozs7Tjs7OzsxRUExOworMUVBMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2MSAwMzIzOzs7O047OzsxRUEwOzsxRUEwCisxRUEyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQxIDAzMDk7Ozs7Tjs7OzsxRUEzOworMUVBMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjEgMDMwOTs7OztOOzs7MUVBMjs7MUVBMgorMUVBNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwQzIgMDMwMTs7OztOOzs7OzFFQTU7CisxRUE1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRTIgMDMwMTs7OztOOzs7MUVBNDs7MUVBNAorMUVBNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwQzIgMDMwMDs7OztOOzs7OzFFQTc7CisxRUE3O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRTIgMDMwMDs7OztOOzs7MUVBNjs7MUVBNgorMUVBODtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBDMiAwMzA5Ozs7O047Ozs7MUVBOTsKKzFFQTk7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEUyIDAzMDk7Ozs7Tjs7OzFFQTg7OzFFQTgKKzFFQUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMEMyIDAzMDM7Ozs7Tjs7OzsxRUFCOworMUVBQjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEUyIDAzMDM7Ozs7Tjs7OzFFQUE7OzFFQUEKKzFFQUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MUVBMCAwMzAyOzs7O047Ozs7MUVBRDsKKzFFQUQ7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQTEgMDMwMjs7OztOOzs7MUVBQzs7MUVBQworMUVBRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEFDVVRFO0x1OzA7TDswMTAyIDAzMDE7Ozs7Tjs7OzsxRUFGOworMUVBRjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBBQ1VURTtMbDswO0w7MDEwMyAwMzAxOzs7O047OzsxRUFFOzsxRUFFCisxRUIwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgR1JBVkU7THU7MDtMOzAxMDIgMDMwMDs7OztOOzs7OzFFQjE7CisxRUIxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEdSQVZFO0xsOzA7TDswMTAzIDAzMDA7Ozs7Tjs7OzFFQjA7OzFFQjAKKzFFQjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMTAyIDAzMDk7Ozs7Tjs7OzsxRUIzOworMUVCMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMTAzIDAzMDk7Ozs7Tjs7OzFFQjI7OzFFQjIKKzFFQjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBUSUxERTtMdTswO0w7MDEwMiAwMzAzOzs7O047Ozs7MUVCNTsKKzFFQjU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgVElMREU7TGw7MDtMOzAxMDMgMDMwMzs7OztOOzs7MUVCNDs7MUVCNAorMUVCNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIERPVCBCRUxPVztMdTswO0w7MUVBMCAwMzA2Ozs7O047Ozs7MUVCNzsKKzFFQjc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUExIDAzMDY7Ozs7Tjs7OzFFQjY7OzFFQjYKKzFFQjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0NSAwMzIzOzs7O047Ozs7MUVCOTsKKzFFQjk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjUgMDMyMzs7OztOOzs7MUVCODs7MUVCOAorMUVCQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0NSAwMzA5Ozs7O047Ozs7MUVCQjsKKzFFQkI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDY1IDAzMDk7Ozs7Tjs7OzFFQkE7OzFFQkEKKzFFQkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIFRJTERFO0x1OzA7TDswMDQ1IDAzMDM7Ozs7Tjs7OzsxRUJEOworMUVCRDtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIFRJTERFO0xsOzA7TDswMDY1IDAzMDM7Ozs7Tjs7OzFFQkM7OzFFQkMKKzFFQkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0x1OzA7TDswMENBIDAzMDE7Ozs7Tjs7OzsxRUJGOworMUVCRjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0xsOzA7TDswMEVBIDAzMDE7Ozs7Tjs7OzFFQkU7OzFFQkUKKzFFQzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0x1OzA7TDswMENBIDAzMDA7Ozs7Tjs7OzsxRUMxOworMUVDMTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0xsOzA7TDswMEVBIDAzMDA7Ozs7Tjs7OzFFQzA7OzFFQzAKKzFFQzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAwQ0EgMDMwOTs7OztOOzs7OzFFQzM7CisxRUMzO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDBFQSAwMzA5Ozs7O047OzsxRUMyOzsxRUMyCisxRUM0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMdTswO0w7MDBDQSAwMzAzOzs7O047Ozs7MUVDNTsKKzFFQzU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMbDswO0w7MDBFQSAwMzAzOzs7O047OzsxRUM0OzsxRUM0CisxRUM2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQjggMDMwMjs7OztOOzs7OzFFQzc7CisxRUM3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUI5IDAzMDI7Ozs7Tjs7OzFFQzY7OzFFQzYKKzFFQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDkgMDMwOTs7OztOOzs7OzFFQzk7CisxRUM5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2OSAwMzA5Ozs7O047OzsxRUM4OzsxRUM4CisxRUNBO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDkgMDMyMzs7OztOOzs7OzFFQ0I7CisxRUNCO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY5IDAzMjM7Ozs7Tjs7OzFFQ0E7OzFFQ0EKKzFFQ0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RiAwMzIzOzs7O047Ozs7MUVDRDsKKzFFQ0Q7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkYgMDMyMzs7OztOOzs7MUVDQzs7MUVDQworMUVDRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0RiAwMzA5Ozs7O047Ozs7MUVDRjsKKzFFQ0Y7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDZGIDAzMDk7Ozs7Tjs7OzFFQ0U7OzFFQ0UKKzFFRDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0x1OzA7TDswMEQ0IDAzMDE7Ozs7Tjs7OzsxRUQxOworMUVEMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0xsOzA7TDswMEY0IDAzMDE7Ozs7Tjs7OzFFRDA7OzFFRDAKKzFFRDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0x1OzA7TDswMEQ0IDAzMDA7Ozs7Tjs7OzsxRUQzOworMUVEMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0xsOzA7TDswMEY0IDAzMDA7Ozs7Tjs7OzFFRDI7OzFFRDIKKzFFRDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAwRDQgMDMwOTs7OztOOzs7OzFFRDU7CisxRUQ1O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDBGNCAwMzA5Ozs7O047OzsxRUQ0OzsxRUQ0CisxRUQ2O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMdTswO0w7MDBENCAwMzAzOzs7O047Ozs7MUVENzsKKzFFRDc7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMbDswO0w7MDBGNCAwMzAzOzs7O047OzsxRUQ2OzsxRUQ2CisxRUQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQ0MgMDMwMjs7OztOOzs7OzFFRDk7CisxRUQ5O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUNEIDAzMDI7Ozs7Tjs7OzFFRDg7OzFFRDgKKzFFREE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEFDVVRFO0x1OzA7TDswMUEwIDAzMDE7Ozs7Tjs7OzsxRURCOworMUVEQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEFDVVRFO0xsOzA7TDswMUExIDAzMDE7Ozs7Tjs7OzFFREE7OzFFREEKKzFFREM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEdSQVZFO0x1OzA7TDswMUEwIDAzMDA7Ozs7Tjs7OzsxRUREOworMUVERDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEdSQVZFO0xsOzA7TDswMUExIDAzMDA7Ozs7Tjs7OzFFREM7OzFFREMKKzFFREU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxQTAgMDMwOTs7OztOOzs7OzFFREY7CisxRURGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDFBMSAwMzA5Ozs7O047OzsxRURFOzsxRURFCisxRUUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBUSUxERTtMdTswO0w7MDFBMCAwMzAzOzs7O047Ozs7MUVFMTsKKzFFRTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBUSUxERTtMbDswO0w7MDFBMSAwMzAzOzs7O047OzsxRUUwOzsxRUUwCisxRUUyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7THU7MDtMOzAxQTAgMDMyMzs7OztOOzs7OzFFRTM7CisxRUUzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0xsOzA7TDswMUExIDAzMjM7Ozs7Tjs7OzFFRTI7OzFFRTIKKzFFRTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NSAwMzIzOzs7O047Ozs7MUVFNTsKKzFFRTU7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzUgMDMyMzs7OztOOzs7MUVFNDs7MUVFNAorMUVFNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA1NSAwMzA5Ozs7O047Ozs7MUVFNzsKKzFFRTc7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDc1IDAzMDk7Ozs7Tjs7OzFFRTY7OzFFRTYKKzFFRTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEFDVVRFO0x1OzA7TDswMUFGIDAzMDE7Ozs7Tjs7OzsxRUU5OworMUVFOTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEFDVVRFO0xsOzA7TDswMUIwIDAzMDE7Ozs7Tjs7OzFFRTg7OzFFRTgKKzFFRUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEdSQVZFO0x1OzA7TDswMUFGIDAzMDA7Ozs7Tjs7OzsxRUVCOworMUVFQjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEdSQVZFO0xsOzA7TDswMUIwIDAzMDA7Ozs7Tjs7OzFFRUE7OzFFRUEKKzFFRUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxQUYgMDMwOTs7OztOOzs7OzFFRUQ7CisxRUVEO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDFCMCAwMzA5Ozs7O047OzsxRUVDOzsxRUVDCisxRUVFO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBUSUxERTtMdTswO0w7MDFBRiAwMzAzOzs7O047Ozs7MUVFRjsKKzFFRUY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBUSUxERTtMbDswO0w7MDFCMCAwMzAzOzs7O047OzsxRUVFOzsxRUVFCisxRUYwO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7THU7MDtMOzAxQUYgMDMyMzs7OztOOzs7OzFFRjE7CisxRUYxO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0xsOzA7TDswMUIwIDAzMjM7Ozs7Tjs7OzFFRjA7OzFFRjAKKzFFRjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEdSQVZFO0x1OzA7TDswMDU5IDAzMDA7Ozs7Tjs7OzsxRUYzOworMUVGMztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEdSQVZFO0xsOzA7TDswMDc5IDAzMDA7Ozs7Tjs7OzFFRjI7OzFFRjIKKzFFRjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1OSAwMzIzOzs7O047Ozs7MUVGNTsKKzFFRjU7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzkgMDMyMzs7OztOOzs7MUVGNDs7MUVGNAorMUVGNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA1OSAwMzA5Ozs7O047Ozs7MUVGNzsKKzFFRjc7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDc5IDAzMDk7Ozs7Tjs7OzFFRjY7OzFFRjYKKzFFRjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIFRJTERFO0x1OzA7TDswMDU5IDAzMDM7Ozs7Tjs7OzsxRUY5OworMUVGOTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFRJTERFO0xsOzA7TDswMDc5IDAzMDM7Ozs7Tjs7OzFFRjg7OzFFRjgKKzFGMDA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjEgMDMxMzs7OztOOzs7MUYwODs7MUYwOAorMUYwMTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQTtMbDswO0w7MDNCMSAwMzE0Ozs7O047OzsxRjA5OzsxRjA5CisxRjAyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYwMCAwMzAwOzs7O047OzsxRjBBOzsxRjBBCisxRjAzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYwMSAwMzAwOzs7O047OzsxRjBCOzsxRjBCCisxRjA0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjAwIDAzMDE7Ozs7Tjs7OzFGMEM7OzFGMEMKKzFGMDU7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMDEgMDMwMTs7OztOOzs7MUYwRDs7MUYwRAorMUYwNjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMDAgMDM0Mjs7OztOOzs7MUYwRTs7MUYwRQorMUYwNztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMDEgMDM0Mjs7OztOOzs7MUYwRjs7MUYwRgorMUYwODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJO0x1OzA7TDswMzkxIDAzMTM7Ozs7Tjs7OzsxRjAwOworMUYwOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBO0x1OzA7TDswMzkxIDAzMTQ7Ozs7Tjs7OzsxRjAxOworMUYwQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYwOCAwMzAwOzs7O047Ozs7MUYwMjsKKzFGMEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMDkgMDMwMDs7OztOOzs7OzFGMDM7CisxRjBDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMDggMDMwMTs7OztOOzs7OzFGMDQ7CisxRjBEO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMDkgMDMwMTs7OztOOzs7OzFGMDU7CisxRjBFO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjA4IDAzNDI7Ozs7Tjs7OzsxRjA2OworMUYwRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYwOSAwMzQyOzs7O047Ozs7MUYwNzsKKzFGMTA7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSTtMbDswO0w7MDNCNSAwMzEzOzs7O047OzsxRjE4OzsxRjE4CisxRjExO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUE7TGw7MDtMOzAzQjUgMDMxNDs7OztOOzs7MUYxOTs7MUYxOQorMUYxMjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYxMCAwMzAwOzs7O047OzsxRjFBOzsxRjFBCisxRjEzO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjExIDAzMDA7Ozs7Tjs7OzFGMUI7OzFGMUIKKzFGMTQ7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYxMCAwMzAxOzs7O047OzsxRjFDOzsxRjFDCisxRjE1O0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMTEgMDMwMTs7OztOOzs7MUYxRDs7MUYxRAorMUYxODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEk7THU7MDtMOzAzOTUgMDMxMzs7OztOOzs7OzFGMTA7CisxRjE5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQTtMdTswO0w7MDM5NSAwMzE0Ozs7O047Ozs7MUYxMTsKKzFGMUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYxOCAwMzAwOzs7O047Ozs7MUYxMjsKKzFGMUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYxOSAwMzAwOzs7O047Ozs7MUYxMzsKKzFGMUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjE4IDAzMDE7Ozs7Tjs7OzsxRjE0OworMUYxRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMTkgMDMwMTs7OztOOzs7OzFGMTU7CisxRjIwO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCNyAwMzEzOzs7O047OzsxRjI4OzsxRjI4CisxRjIxO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQTtMbDswO0w7MDNCNyAwMzE0Ozs7O047OzsxRjI5OzsxRjI5CisxRjIyO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMjAgMDMwMDs7OztOOzs7MUYyQTs7MUYyQQorMUYyMztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjIxIDAzMDA7Ozs7Tjs7OzFGMkI7OzFGMkIKKzFGMjQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjIwIDAzMDE7Ozs7Tjs7OzFGMkM7OzFGMkMKKzFGMjU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjIxIDAzMDE7Ozs7Tjs7OzFGMkQ7OzFGMkQKKzFGMjY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYyMCAwMzQyOzs7O047OzsxRjJFOzsxRjJFCisxRjI3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMjEgMDM0Mjs7OztOOzs7MUYyRjs7MUYyRgorMUYyODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5NyAwMzEzOzs7O047Ozs7MUYyMDsKKzFGMjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUE7THU7MDtMOzAzOTcgMDMxNDs7OztOOzs7OzFGMjE7CisxRjJBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYyOCAwMzAwOzs7O047Ozs7MUYyMjsKKzFGMkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjI5IDAzMDA7Ozs7Tjs7OzsxRjIzOworMUYyQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYyOCAwMzAxOzs7O047Ozs7MUYyNDsKKzFGMkQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMjkgMDMwMTs7OztOOzs7OzFGMjU7CisxRjJFO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYyOCAwMzQyOzs7O047Ozs7MUYyNjsKKzFGMkY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjI5IDAzNDI7Ozs7Tjs7OzsxRjI3OworMUYzMDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJO0xsOzA7TDswM0I5IDAzMTM7Ozs7Tjs7OzFGMzg7OzFGMzgKKzFGMzE7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQTtMbDswO0w7MDNCOSAwMzE0Ozs7O047OzsxRjM5OzsxRjM5CisxRjMyO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjMwIDAzMDA7Ozs7Tjs7OzFGM0E7OzFGM0EKKzFGMzM7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMzEgMDMwMDs7OztOOzs7MUYzQjs7MUYzQgorMUYzNDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjMwIDAzMDE7Ozs7Tjs7OzFGM0M7OzFGM0MKKzFGMzU7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYzMSAwMzAxOzs7O047OzsxRjNEOzsxRjNECisxRjM2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjMwIDAzNDI7Ozs7Tjs7OzFGM0U7OzFGM0UKKzFGMzc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMzEgMDM0Mjs7OztOOzs7MUYzRjs7MUYzRgorMUYzODtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEk7THU7MDtMOzAzOTkgMDMxMzs7OztOOzs7OzFGMzA7CisxRjM5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5OSAwMzE0Ozs7O047Ozs7MUYzMTsKKzFGM0E7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYzOCAwMzAwOzs7O047Ozs7MUYzMjsKKzFGM0I7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYzOSAwMzAwOzs7O047Ozs7MUYzMzsKKzFGM0M7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjM4IDAzMDE7Ozs7Tjs7OzsxRjM0OworMUYzRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMzkgMDMwMTs7OztOOzs7OzFGMzU7CisxRjNFO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMzggMDM0Mjs7OztOOzs7OzFGMzY7CisxRjNGO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMzkgMDM0Mjs7OztOOzs7OzFGMzc7CisxRjQwO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQkYgMDMxMzs7OztOOzs7MUY0ODs7MUY0OAorMUY0MTtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBO0xsOzA7TDswM0JGIDAzMTQ7Ozs7Tjs7OzFGNDk7OzFGNDkKKzFGNDI7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGNDAgMDMwMDs7OztOOzs7MUY0QTs7MUY0QQorMUY0MztHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY0MSAwMzAwOzs7O047OzsxRjRCOzsxRjRCCisxRjQ0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGNDAgMDMwMTs7OztOOzs7MUY0Qzs7MUY0QworMUY0NTtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjQxIDAzMDE7Ozs7Tjs7OzFGNEQ7OzFGNEQKKzFGNDg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJO0x1OzA7TDswMzlGIDAzMTM7Ozs7Tjs7OzsxRjQwOworMUY0OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUE7THU7MDtMOzAzOUYgMDMxNDs7OztOOzs7OzFGNDE7CisxRjRBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGNDggMDMwMDs7OztOOzs7OzFGNDI7CisxRjRCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNDkgMDMwMDs7OztOOzs7OzFGNDM7CisxRjRDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUY0OCAwMzAxOzs7O047Ozs7MUY0NDsKKzFGNEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjQ5IDAzMDE7Ozs7Tjs7OzsxRjQ1OworMUY1MDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0M1IDAzMTM7Ozs7Tjs7Ozs7CisxRjUxO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUE7TGw7MDtMOzAzQzUgMDMxNDs7OztOOzs7MUY1OTs7MUY1OQorMUY1MjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY1MCAwMzAwOzs7O047Ozs7OworMUY1MztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY1MSAwMzAwOzs7O047OzsxRjVCOzsxRjVCCisxRjU0O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGNTAgMDMwMTs7OztOOzs7OzsKKzFGNTU7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY1MSAwMzAxOzs7O047OzsxRjVEOzsxRjVECisxRjU2O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjUwIDAzNDI7Ozs7Tjs7Ozs7CisxRjU3O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjUxIDAzNDI7Ozs7Tjs7OzFGNUY7OzFGNUYKKzFGNTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBO0x1OzA7TDswM0E1IDAzMTQ7Ozs7Tjs7OzsxRjUxOworMUY1QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjU5IDAzMDA7Ozs7Tjs7OzsxRjUzOworMUY1RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNTkgMDMwMTs7OztOOzs7OzFGNTU7CisxRjVGO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGNTkgMDM0Mjs7OztOOzs7OzFGNTc7CisxRjYwO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJO0xsOzA7TDswM0M5IDAzMTM7Ozs7Tjs7OzFGNjg7OzFGNjgKKzFGNjE7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUE7TGw7MDtMOzAzQzkgMDMxNDs7OztOOzs7MUY2OTs7MUY2OQorMUY2MjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGNjAgMDMwMDs7OztOOzs7MUY2QTs7MUY2QQorMUY2MztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNjEgMDMwMDs7OztOOzs7MUY2Qjs7MUY2QgorMUY2NDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY2MCAwMzAxOzs7O047OzsxRjZDOzsxRjZDCisxRjY1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjYxIDAzMDE7Ozs7Tjs7OzFGNkQ7OzFGNkQKKzFGNjY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjYwIDAzNDI7Ozs7Tjs7OzFGNkU7OzFGNkUKKzFGNjc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjYxIDAzNDI7Ozs7Tjs7OzFGNkY7OzFGNkYKKzFGNjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSTtMdTswO0w7MDNBOSAwMzEzOzs7O047Ozs7MUY2MDsKKzFGNjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQTtMdTswO0w7MDNBOSAwMzE0Ozs7O047Ozs7MUY2MTsKKzFGNkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGNjggMDMwMDs7OztOOzs7OzFGNjI7CisxRjZCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjY5IDAzMDA7Ozs7Tjs7OzsxRjYzOworMUY2QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjY4IDAzMDE7Ozs7Tjs7OzsxRjY0OworMUY2RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjY5IDAzMDE7Ozs7Tjs7OzsxRjY1OworMUY2RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY2OCAwMzQyOzs7O047Ozs7MUY2NjsKKzFGNkY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGNjkgMDM0Mjs7OztOOzs7OzFGNjc7CisxRjcwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBO0xsOzA7TDswM0IxIDAzMDA7Ozs7Tjs7OzFGQkE7OzFGQkEKKzFGNzE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQTtMbDswO0w7MDNBQzs7OztOOzs7MUZCQjs7MUZCQgorMUY3MjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFZBUklBO0xsOzA7TDswM0I1IDAzMDA7Ozs7Tjs7OzFGQzg7OzFGQzgKKzFGNzM7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBO0xsOzA7TDswM0FEOzs7O047OzsxRkM5OzsxRkM5CisxRjc0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCNyAwMzAwOzs7O047OzsxRkNBOzsxRkNBCisxRjc1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBO0xsOzA7TDswM0FFOzs7O047OzsxRkNCOzsxRkNCCisxRjc2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjkgMDMwMDs7OztOOzs7MUZEQTs7MUZEQQorMUY3NztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE9YSUE7TGw7MDtMOzAzQUY7Ozs7Tjs7OzFGREI7OzFGREIKKzFGNzg7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBWQVJJQTtMbDswO0w7MDNCRiAwMzAwOzs7O047OzsxRkY4OzsxRkY4CisxRjc5O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQTtMbDswO0w7MDNDQzs7OztOOzs7MUZGOTs7MUZGOQorMUY3QTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZBUklBO0xsOzA7TDswM0M1IDAzMDA7Ozs7Tjs7OzFGRUE7OzFGRUEKKzFGN0I7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBO0xsOzA7TDswM0NEOzs7O047OzsxRkVCOzsxRkVCCisxRjdDO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBO0xsOzA7TDswM0M5IDAzMDA7Ozs7Tjs7OzFGRkE7OzFGRkEKKzFGN0Q7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQTtMbDswO0w7MDNDRTs7OztOOzs7MUZGQjs7MUZGQgorMUY4MDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMCAwMzQ1Ozs7O047OzsxRjg4OzsxRjg4CisxRjgxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAxIDAzNDU7Ozs7Tjs7OzFGODk7OzFGODkKKzFGODI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAyIDAzNDU7Ozs7Tjs7OzFGOEE7OzFGOEEKKzFGODM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAzIDAzNDU7Ozs7Tjs7OzFGOEI7OzFGOEIKKzFGODQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDQgMDM0NTs7OztOOzs7MUY4Qzs7MUY4QworMUY4NTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNSAwMzQ1Ozs7O047OzsxRjhEOzsxRjhECisxRjg2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNiAwMzQ1Ozs7O047OzsxRjhFOzsxRjhFCisxRjg3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNyAwMzQ1Ozs7O047OzsxRjhGOzsxRjhGCisxRjg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjA4IDAzNDU7Ozs7Tjs7OzsxRjgwOworMUY4OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwOSAwMzQ1Ozs7O047Ozs7MUY4MTsKKzFGOEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBBIDAzNDU7Ozs7Tjs7OzsxRjgyOworMUY4QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEIgMDM0NTs7OztOOzs7OzFGODM7CisxRjhDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBDIDAzNDU7Ozs7Tjs7OzsxRjg0OworMUY4RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwRCAwMzQ1Ozs7O047Ozs7MUY4NTsKKzFGOEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBFIDAzNDU7Ozs7Tjs7OzsxRjg2OworMUY4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEYgMDM0NTs7OztOOzs7OzFGODc7CisxRjkwO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMCAwMzQ1Ozs7O047OzsxRjk4OzsxRjk4CisxRjkxO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMSAwMzQ1Ozs7O047OzsxRjk5OzsxRjk5CisxRjkyO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjIgMDM0NTs7OztOOzs7MUY5QTs7MUY5QQorMUY5MztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIzIDAzNDU7Ozs7Tjs7OzFGOUI7OzFGOUIKKzFGOTQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI0IDAzNDU7Ozs7Tjs7OzFGOUM7OzFGOUMKKzFGOTU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI1IDAzNDU7Ozs7Tjs7OzFGOUQ7OzFGOUQKKzFGOTY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNiAwMzQ1Ozs7O047OzsxRjlFOzsxRjlFCisxRjk3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjcgMDM0NTs7OztOOzs7MUY5Rjs7MUY5RgorMUY5ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMjggMDM0NTs7OztOOzs7OzFGOTA7CisxRjk5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyOSAwMzQ1Ozs7O047Ozs7MUY5MTsKKzFGOUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyQSAwMzQ1Ozs7O047Ozs7MUY5MjsKKzFGOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyQiAwMzQ1Ozs7O047Ozs7MUY5MzsKKzFGOUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJDIDAzNDU7Ozs7Tjs7OzsxRjk0OworMUY5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkQgMDM0NTs7OztOOzs7OzFGOTU7CisxRjlFO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkUgMDM0NTs7OztOOzs7OzFGOTY7CisxRjlGO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkYgMDM0NTs7OztOOzs7OzFGOTc7CisxRkEwO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYwIDAzNDU7Ozs7Tjs7OzFGQTg7OzFGQTgKKzFGQTE7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjEgMDM0NTs7OztOOzs7MUZBOTs7MUZBOQorMUZBMjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjIgMDM0NTs7OztOOzs7MUZBQTs7MUZBQQorMUZBMztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjMgMDM0NTs7OztOOzs7MUZBQjs7MUZBQgorMUZBNDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NCAwMzQ1Ozs7O047OzsxRkFDOzsxRkFDCisxRkE1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY1IDAzNDU7Ozs7Tjs7OzFGQUQ7OzFGQUQKKzFGQTY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY2IDAzNDU7Ozs7Tjs7OzFGQUU7OzFGQUUKKzFGQTc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY3IDAzNDU7Ozs7Tjs7OzFGQUY7OzFGQUYKKzFGQTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNjggMDM0NTs7OztOOzs7OzFGQTA7CisxRkE5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjY5IDAzNDU7Ozs7Tjs7OzsxRkExOworMUZBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkEgMDM0NTs7OztOOzs7OzFGQTI7CisxRkFCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2QiAwMzQ1Ozs7O047Ozs7MUZBMzsKKzFGQUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkMgMDM0NTs7OztOOzs7OzFGQTQ7CisxRkFEO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZEIDAzNDU7Ozs7Tjs7OzsxRkE1OworMUZBRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkUgMDM0NTs7OztOOzs7OzFGQTY7CisxRkFGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2RiAwMzQ1Ozs7O047Ozs7MUZBNzsKKzFGQjA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVlJBQ0hZO0xsOzA7TDswM0IxIDAzMDY7Ozs7Tjs7OzFGQjg7OzFGQjgKKzFGQjE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggTUFDUk9OO0xsOzA7TDswM0IxIDAzMDQ7Ozs7Tjs7OzFGQjk7OzFGQjkKKzFGQjI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzAgMDM0NTs7OztOOzs7OzsKKzFGQjM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNCMSAwMzQ1Ozs7O047OzsxRkJDOzsxRkJDCisxRkI0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQUMgMDM0NTs7OztOOzs7OzsKKzFGQjY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjEgMDM0Mjs7OztOOzs7OzsKKzFGQjc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGQjYgMDM0NTs7OztOOzs7OzsKKzFGQjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBWUkFDSFk7THU7MDtMOzAzOTEgMDMwNjs7OztOOzs7OzFGQjA7CisxRkI5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggTUFDUk9OO0x1OzA7TDswMzkxIDAzMDQ7Ozs7Tjs7OzsxRkIxOworMUZCQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBO0x1OzA7TDswMzkxIDAzMDA7Ozs7Tjs7OzsxRjcwOworMUZCQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUE7THU7MDtMOzAzODY7Ozs7Tjs7OzsxRjcxOworMUZCQztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x0OzA7TDswMzkxIDAzNDU7Ozs7Tjs7OzsxRkIzOworMUZCRDtHUkVFSyBLT1JPTklTO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzEzOzs7O047Ozs7OworMUZCRTtHUkVFSyBQUk9TR0VHUkFNTUVOSTtMbDswO0w7MDNCOTs7OztOOzs7MDM5OTs7MDM5OQorMUZCRjtHUkVFSyBQU0lMSTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxMzs7OztOOzs7OzsKKzFGQzA7R1JFRUsgUEVSSVNQT01FTkk7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzNDI7Ozs7Tjs7Ozs7CisxRkMxO0dSRUVLIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjswMEE4IDAzNDI7Ozs7Tjs7Ozs7CisxRkMyO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3NCAwMzQ1Ozs7O047Ozs7OworMUZDMztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNCNyAwMzQ1Ozs7O047OzsxRkNDOzsxRkNDCisxRkM0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0FFIDAzNDU7Ozs7Tjs7Ozs7CisxRkM2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNCNyAwMzQyOzs7O047Ozs7OworMUZDNztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGQzYgMDM0NTs7OztOOzs7OzsKKzFGQzg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFZBUklBO0x1OzA7TDswMzk1IDAzMDA7Ozs7Tjs7OzsxRjcyOworMUZDOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQTtMdTswO0w7MDM4ODs7OztOOzs7OzFGNzM7CisxRkNBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFZBUklBO0x1OzA7TDswMzk3IDAzMDA7Ozs7Tjs7OzsxRjc0OworMUZDQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBPWElBO0x1OzA7TDswMzg5Ozs7O047Ozs7MUY3NTsKKzFGQ0M7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzAzOTcgMDM0NTs7OztOOzs7OzFGQzM7CisxRkNEO0dSRUVLIFBTSUxJIEFORCBWQVJJQTtTazswO09OOzFGQkYgMDMwMDs7OztOOzs7OzsKKzFGQ0U7R1JFRUsgUFNJTEkgQU5EIE9YSUE7U2s7MDtPTjsxRkJGIDAzMDE7Ozs7Tjs7Ozs7CisxRkNGO0dSRUVLIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtTazswO09OOzFGQkYgMDM0Mjs7OztOOzs7OzsKKzFGRDA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBWUkFDSFk7TGw7MDtMOzAzQjkgMDMwNjs7OztOOzs7MUZEODs7MUZEOAorMUZEMTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDNCOSAwMzA0Ozs7O047OzsxRkQ5OzsxRkQ5CisxRkQyO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQTtMbDswO0w7MDNDQSAwMzAwOzs7O047Ozs7OworMUZEMztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgT1hJQTtMbDswO0w7MDM5MDs7OztOOzs7OzsKKzFGRDY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNCOSAwMzQyOzs7O047Ozs7OworMUZENztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzAzQ0EgMDM0Mjs7OztOOzs7OzsKKzFGRDg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFZSQUNIWTtMdTswO0w7MDM5OSAwMzA2Ozs7O047Ozs7MUZEMDsKKzFGRDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDM5OSAwMzA0Ozs7O047Ozs7MUZEMTsKKzFGREE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFZBUklBO0x1OzA7TDswMzk5IDAzMDA7Ozs7Tjs7OzsxRjc2OworMUZEQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggT1hJQTtMdTswO0w7MDM4QTs7OztOOzs7OzFGNzc7CisxRkREO0dSRUVLIERBU0lBIEFORCBWQVJJQTtTazswO09OOzFGRkUgMDMwMDs7OztOOzs7OzsKKzFGREU7R1JFRUsgREFTSUEgQU5EIE9YSUE7U2s7MDtPTjsxRkZFIDAzMDE7Ozs7Tjs7Ozs7CisxRkRGO0dSRUVLIERBU0lBIEFORCBQRVJJU1BPTUVOSTtTazswO09OOzFGRkUgMDM0Mjs7OztOOzs7OzsKKzFGRTA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBWUkFDSFk7TGw7MDtMOzAzQzUgMDMwNjs7OztOOzs7MUZFODs7MUZFOAorMUZFMTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE1BQ1JPTjtMbDswO0w7MDNDNSAwMzA0Ozs7O047OzsxRkU5OzsxRkU5CisxRkUyO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQTtMbDswO0w7MDNDQiAwMzAwOzs7O047Ozs7OworMUZFMztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgT1hJQTtMbDswO0w7MDNCMDs7OztOOzs7OzsKKzFGRTQ7R1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIFBTSUxJO0xsOzA7TDswM0MxIDAzMTM7Ozs7Tjs7Ozs7CisxRkU1O0dSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBEQVNJQTtMbDswO0w7MDNDMSAwMzE0Ozs7O047OzsxRkVDOzsxRkVDCisxRkU2O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQzUgMDM0Mjs7OztOOzs7OzsKKzFGRTc7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDswM0NCIDAzNDI7Ozs7Tjs7Ozs7CisxRkU4O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBWUkFDSFk7THU7MDtMOzAzQTUgMDMwNjs7OztOOzs7OzFGRTA7CisxRkU5O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBNQUNST047THU7MDtMOzAzQTUgMDMwNDs7OztOOzs7OzFGRTE7CisxRkVBO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBWQVJJQTtMdTswO0w7MDNBNSAwMzAwOzs7O047Ozs7MUY3QTsKKzFGRUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUE7THU7MDtMOzAzOEU7Ozs7Tjs7OzsxRjdCOworMUZFQztHUkVFSyBDQVBJVEFMIExFVFRFUiBSSE8gV0lUSCBEQVNJQTtMdTswO0w7MDNBMSAwMzE0Ozs7O047Ozs7MUZFNTsKKzFGRUQ7R1JFRUsgRElBTFlUSUtBIEFORCBWQVJJQTtTazswO09OOzAwQTggMDMwMDs7OztOOzs7OzsKKzFGRUU7R1JFRUsgRElBTFlUSUtBIEFORCBPWElBO1NrOzA7T047MDM4NTs7OztOOzs7OzsKKzFGRUY7R1JFRUsgVkFSSUE7U2s7MDtPTjswMDYwOzs7O047Ozs7OworMUZGMjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3QyAwMzQ1Ozs7O047Ozs7OworMUZGMztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0M5IDAzNDU7Ozs7Tjs7OzFGRkM7OzFGRkMKKzFGRjQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNDRSAwMzQ1Ozs7O047Ozs7OworMUZGNjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDOSAwMzQyOzs7O047Ozs7OworMUZGNztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZGNiAwMzQ1Ozs7O047Ozs7OworMUZGODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVkFSSUE7THU7MDtMOzAzOUYgMDMwMDs7OztOOzs7OzFGNzg7CisxRkY5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBO0x1OzA7TDswMzhDOzs7O047Ozs7MUY3OTsKKzFGRkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQTtMdTswO0w7MDNBOSAwMzAwOzs7O047Ozs7MUY3QzsKKzFGRkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBPWElBO0x1OzA7TDswMzhGOzs7O047Ozs7MUY3RDsKKzFGRkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MDNBOSAwMzQ1Ozs7O047Ozs7MUZGMzsKKzFGRkQ7R1JFRUsgT1hJQTtTazswO09OOzAwQjQ7Ozs7Tjs7Ozs7CisxRkZFO0dSRUVLIERBU0lBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzE0Ozs7O047Ozs7OworMjAwMDtFTiBRVUFEO1pzOzA7V1M7MjAwMjs7OztOOzs7OzsKKzIwMDE7RU0gUVVBRDtaczswO1dTOzIwMDM7Ozs7Tjs7Ozs7CisyMDAyO0VOIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDM7RU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNDtUSFJFRS1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNTtGT1VSLVBFUi1FTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA2O1NJWC1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNztGSUdVUkUgU1BBQ0U7WnM7MDtXUzs8bm9CcmVhaz4gMDAyMDs7OztOOzs7OzsKKzIwMDg7UFVOQ1RVQVRJT04gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwOTtUSElOIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMEE7SEFJUiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDBCO1pFUk8gV0lEVEggU1BBQ0U7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDBDO1pFUk8gV0lEVEggTk9OLUpPSU5FUjtDZjswO0JOOzs7OztOOzs7OzsKKzIwMEQ7WkVSTyBXSURUSCBKT0lORVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDBFO0xFRlQtVE8tUklHSFQgTUFSSztDZjswO0w7Ozs7O047Ozs7OworMjAwRjtSSUdIVC1UTy1MRUZUIE1BUks7Q2Y7MDtSOzs7OztOOzs7OzsKKzIwMTA7SFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMjAxMTtOT04tQlJFQUtJTkcgSFlQSEVOO1BkOzA7T047PG5vQnJlYWs+IDIwMTA7Ozs7Tjs7Ozs7CisyMDEyO0ZJR1VSRSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxMztFTiBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxNDtFTSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxNTtIT1JJWk9OVEFMIEJBUjtQZDswO09OOzs7OztOO1FVT1RBVElPTiBEQVNIOzs7OworMjAxNjtET1VCTEUgVkVSVElDQUwgTElORTtQbzswO09OOzs7OztOO0RPVUJMRSBWRVJUSUNBTCBCQVI7Ozs7CisyMDE3O0RPVUJMRSBMT1cgTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMzMzs7OztOO1NQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CisyMDE4O0xFRlQgU0lOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7U0lOR0xFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMTk7UklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O1k7U0lOR0xFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQTtTSU5HTEUgTE9XLTkgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7WTtMT1cgU0lOR0xFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQjtTSU5HTEUgSElHSC1SRVZFUlNFRC05IFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7U0lOR0xFIFJFVkVSU0VEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQztMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztZO0RPVUJMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFEO1JJR0hUIERPVUJMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztZO0RPVUJMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUU7RE9VQkxFIExPVy05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O1k7TE9XIERPVUJMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUY7RE9VQkxFIEhJR0gtUkVWRVJTRUQtOSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztZO0RPVUJMRSBSRVZFUlNFRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMjA7REFHR0VSO1BvOzA7T047Ozs7O047Ozs7OworMjAyMTtET1VCTEUgREFHR0VSO1BvOzA7T047Ozs7O047Ozs7OworMjAyMjtCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDIzO1RSSUFOR1VMQVIgQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjAyNDtPTkUgRE9UIExFQURFUjtQbzswO09OOzxjb21wYXQ+IDAwMkU7Ozs7Tjs7Ozs7CisyMDI1O1RXTyBET1QgTEVBREVSO1BvOzA7T047PGNvbXBhdD4gMDAyRSAwMDJFOzs7O047Ozs7OworMjAyNjtIT1JJWk9OVEFMIEVMTElQU0lTO1BvOzA7T047PGNvbXBhdD4gMDAyRSAwMDJFIDAwMkU7Ozs7Tjs7Ozs7CisyMDI3O0hZUEhFTkFUSU9OIFBPSU5UO1BvOzA7T047Ozs7O047Ozs7OworMjAyODtMSU5FIFNFUEFSQVRPUjtabDswO1dTOzs7OztOOzs7OzsKKzIwMjk7UEFSQUdSQVBIIFNFUEFSQVRPUjtacDswO0I7Ozs7O047Ozs7OworMjAyQTtMRUZULVRPLVJJR0hUIEVNQkVERElORztDZjswO0xSRTs7Ozs7Tjs7Ozs7CisyMDJCO1JJR0hULVRPLUxFRlQgRU1CRURESU5HO0NmOzA7UkxFOzs7OztOOzs7OzsKKzIwMkM7UE9QIERJUkVDVElPTkFMIEZPUk1BVFRJTkc7Q2Y7MDtQREY7Ozs7O047Ozs7OworMjAyRDtMRUZULVRPLVJJR0hUIE9WRVJSSURFO0NmOzA7TFJPOzs7OztOOzs7OzsKKzIwMkU7UklHSFQtVE8tTEVGVCBPVkVSUklERTtDZjswO1JMTzs7Ozs7Tjs7Ozs7CisyMDJGO05BUlJPVyBOTy1CUkVBSyBTUEFDRTtaczswO0NTOzxub0JyZWFrPiAwMDIwOzs7O047Ozs7OworMjAzMDtQRVIgTUlMTEUgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzIwMzE7UEVSIFRFTiBUSE9VU0FORCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMjtQUklNRTtQbzswO0VUOzs7OztOOzs7OzsKKzIwMzM7RE9VQkxFIFBSSU1FO1BvOzA7RVQ7PGNvbXBhdD4gMjAzMiAyMDMyOzs7O047Ozs7OworMjAzNDtUUklQTEUgUFJJTUU7UG87MDtFVDs8Y29tcGF0PiAyMDMyIDIwMzIgMjAzMjs7OztOOzs7OzsKKzIwMzU7UkVWRVJTRUQgUFJJTUU7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDM2O1JFVkVSU0VEIERPVUJMRSBQUklNRTtQbzswO09OOzxjb21wYXQ+IDIwMzUgMjAzNTs7OztOOzs7OzsKKzIwMzc7UkVWRVJTRUQgVFJJUExFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzNSAyMDM1IDIwMzU7Ozs7Tjs7Ozs7CisyMDM4O0NBUkVUO1BvOzA7T047Ozs7O047Ozs7OworMjAzOTtTSU5HTEUgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztZO0xFRlQgUE9JTlRJTkcgU0lOR0xFIEdVSUxMRU1FVDs7OzsKKzIwM0E7U0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O1k7UklHSFQgUE9JTlRJTkcgU0lOR0xFIEdVSUxMRU1FVDs7OzsKKzIwM0I7UkVGRVJFTkNFIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDNDO0RPVUJMRSBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PGNvbXBhdD4gMDAyMSAwMDIxOzs7O047Ozs7OworMjAzRDtJTlRFUlJPQkFORztQbzswO09OOzs7OztOOzs7OzsKKzIwM0U7T1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDU7Ozs7TjtTUEFDSU5HIE9WRVJTQ09SRTs7OzsKKzIwM0Y7VU5ERVJUSUU7UGM7MDtPTjs7Ozs7Tjs7RW5vdGlrb247OzsKKzIwNDA7Q0hBUkFDVEVSIFRJRTtQYzswO09OOzs7OztOOzs7OzsKKzIwNDE7Q0FSRVQgSU5TRVJUSU9OIFBPSU5UO1BvOzA7T047Ozs7O047Ozs7OworMjA0MjtBU1RFUklTTTtQbzswO09OOzs7OztOOzs7OzsKKzIwNDM7SFlQSEVOIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNDQ7RlJBQ1RJT04gU0xBU0g7U207MDtDUzs7Ozs7Tjs7Ozs7CisyMDQ1O0xFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBRVUlMTDtQczswO09OOzs7OztZOzs7OzsKKzIwNDY7UklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBRVUlMTDtQZTswO09OOzs7OztZOzs7OzsKKzIwNDc7RE9VQkxFIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDNGIDAwM0Y7Ozs7Tjs7Ozs7CisyMDQ4O1FVRVNUSU9OIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDNGIDAwMjE7Ozs7Tjs7Ozs7CisyMDQ5O0VYQ0xBTUFUSU9OIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwM0Y7Ozs7Tjs7Ozs7CisyMDRBO1RJUk9OSUFOIFNJR04gRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRCO1JFVkVSU0VEIFBJTENST1cgU0lHTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNEM7QkxBQ0sgTEVGVFdBUkRTIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNEQ7QkxBQ0sgUklHSFRXQVJEUyBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRFO0xPVyBBU1RFUklTSztQbzswO09OOzs7OztOOzs7OzsKKzIwNEY7UkVWRVJTRUQgU0VNSUNPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMjA1MDtDTE9TRSBVUDtQbzswO09OOzs7OztOOzs7OzsKKzIwNTE7VFdPIEFTVEVSSVNLUyBBTElHTkVEIFZFUlRJQ0FMTFk7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDUyO0NPTU1FUkNJQUwgTUlOVVMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzIwNTM7U1dVTkcgREFTSDtQbzswO09OOzs7OztOOzs7OzsKKzIwNTQ7SU5WRVJURUQgVU5ERVJUSUU7UGM7MDtPTjs7Ozs7Tjs7Ozs7CisyMDU1O0ZMT1dFUiBQVU5DVFVBVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMjA1NjtUSFJFRSBET1QgUFVOQ1RVQVRJT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDU3O1FVQURSVVBMRSBQUklNRTtQbzswO09OOzxjb21wYXQ+IDIwMzIgMjAzMiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDU4O0ZPVVIgRE9UIFBVTkNUVUFUSU9OO1BvOzA7T047Ozs7O047Ozs7OworMjA1OTtGSVZFIERPVCBQVU5DVFVBVElPTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNUE7VFdPIERPVCBQVU5DVFVBVElPTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNUI7Rk9VUiBET1QgTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzIwNUM7RE9UVEVEIENST1NTO1BvOzA7T047Ozs7O047Ozs7OworMjA1RDtUUklDT0xPTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNUU7VkVSVElDQUwgRk9VUiBET1RTO1BvOzA7T047Ozs7O047Ozs7OworMjA1RjtNRURJVU0gTUFUSEVNQVRJQ0FMIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwNjA7V09SRCBKT0lORVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDYxO0ZVTkNUSU9OIEFQUExJQ0FUSU9OO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2MjtJTlZJU0lCTEUgVElNRVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDYzO0lOVklTSUJMRSBTRVBBUkFUT1I7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZBO0lOSElCSVQgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2QjtBQ1RJVkFURSBTWU1NRVRSSUMgU1dBUFBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZDO0lOSElCSVQgQVJBQklDIEZPUk0gU0hBUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkQ7QUNUSVZBVEUgQVJBQklDIEZPUk0gU0hBUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkU7TkFUSU9OQUwgRElHSVQgU0hBUEVTO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2RjtOT01JTkFMIERJR0lUIFNIQVBFUztDZjswO0JOOzs7OztOOzs7OzsKKzIwNzA7U1VQRVJTQ1JJUFQgWkVSTztObzswO0VOOzxzdXBlcj4gMDAzMDs7MDswO047U1VQRVJTQ1JJUFQgRElHSVQgWkVSTzs7OzsKKzIwNzE7U1VQRVJTQ1JJUFQgTEFUSU4gU01BTEwgTEVUVEVSIEk7TGw7MDtMOzxzdXBlcj4gMDA2OTs7OztOOzs7OzsKKzIwNzQ7U1VQRVJTQ1JJUFQgRk9VUjtObzswO0VOOzxzdXBlcj4gMDAzNDs7NDs0O047U1VQRVJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwNzU7U1VQRVJTQ1JJUFQgRklWRTtObzswO0VOOzxzdXBlcj4gMDAzNTs7NTs1O047U1VQRVJTQ1JJUFQgRElHSVQgRklWRTs7OzsKKzIwNzY7U1VQRVJTQ1JJUFQgU0lYO05vOzA7RU47PHN1cGVyPiAwMDM2Ozs2OzY7TjtTVVBFUlNDUklQVCBESUdJVCBTSVg7Ozs7CisyMDc3O1NVUEVSU0NSSVBUIFNFVkVOO05vOzA7RU47PHN1cGVyPiAwMDM3Ozs3Ozc7TjtTVVBFUlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwNzg7U1VQRVJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3VwZXI+IDAwMzg7Ozg7ODtOO1NVUEVSU0NSSVBUIERJR0lUIEVJR0hUOzs7OworMjA3OTtTVVBFUlNDUklQVCBOSU5FO05vOzA7RU47PHN1cGVyPiAwMDM5Ozs5Ozk7TjtTVVBFUlNDUklQVCBESUdJVCBOSU5FOzs7OworMjA3QTtTVVBFUlNDUklQVCBQTFVTIFNJR047U207MDtFUzs8c3VwZXI+IDAwMkI7Ozs7Tjs7Ozs7CisyMDdCO1NVUEVSU0NSSVBUIE1JTlVTO1NtOzA7RVM7PHN1cGVyPiAyMjEyOzs7O047U1VQRVJTQ1JJUFQgSFlQSEVOLU1JTlVTOzs7OworMjA3QztTVVBFUlNDUklQVCBFUVVBTFMgU0lHTjtTbTswO09OOzxzdXBlcj4gMDAzRDs7OztOOzs7OzsKKzIwN0Q7U1VQRVJTQ1JJUFQgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzdXBlcj4gMDAyODs7OztZO1NVUEVSU0NSSVBUIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CisyMDdFO1NVUEVSU0NSSVBUIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHN1cGVyPiAwMDI5Ozs7O1k7U1VQRVJTQ1JJUFQgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKKzIwN0Y7U1VQRVJTQ1JJUFQgTEFUSU4gU01BTEwgTEVUVEVSIE47TGw7MDtMOzxzdXBlcj4gMDA2RTs7OztOOzs7OzsKKzIwODA7U1VCU0NSSVBUIFpFUk87Tm87MDtFTjs8c3ViPiAwMDMwOzswOzA7TjtTVUJTQ1JJUFQgRElHSVQgWkVSTzs7OzsKKzIwODE7U1VCU0NSSVBUIE9ORTtObzswO0VOOzxzdWI+IDAwMzE7OzE7MTtOO1NVQlNDUklQVCBESUdJVCBPTkU7Ozs7CisyMDgyO1NVQlNDUklQVCBUV087Tm87MDtFTjs8c3ViPiAwMDMyOzsyOzI7TjtTVUJTQ1JJUFQgRElHSVQgVFdPOzs7OworMjA4MztTVUJTQ1JJUFQgVEhSRUU7Tm87MDtFTjs8c3ViPiAwMDMzOzszOzM7TjtTVUJTQ1JJUFQgRElHSVQgVEhSRUU7Ozs7CisyMDg0O1NVQlNDUklQVCBGT1VSO05vOzA7RU47PHN1Yj4gMDAzNDs7NDs0O047U1VCU0NSSVBUIERJR0lUIEZPVVI7Ozs7CisyMDg1O1NVQlNDUklQVCBGSVZFO05vOzA7RU47PHN1Yj4gMDAzNTs7NTs1O047U1VCU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDg2O1NVQlNDUklQVCBTSVg7Tm87MDtFTjs8c3ViPiAwMDM2Ozs2OzY7TjtTVUJTQ1JJUFQgRElHSVQgU0lYOzs7OworMjA4NztTVUJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3ViPiAwMDM3Ozs3Ozc7TjtTVUJTQ1JJUFQgRElHSVQgU0VWRU47Ozs7CisyMDg4O1NVQlNDUklQVCBFSUdIVDtObzswO0VOOzxzdWI+IDAwMzg7Ozg7ODtOO1NVQlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwODk7U1VCU0NSSVBUIE5JTkU7Tm87MDtFTjs8c3ViPiAwMDM5Ozs5Ozk7TjtTVUJTQ1JJUFQgRElHSVQgTklORTs7OzsKKzIwOEE7U1VCU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VTOzxzdWI+IDAwMkI7Ozs7Tjs7Ozs7CisyMDhCO1NVQlNDUklQVCBNSU5VUztTbTswO0VTOzxzdWI+IDIyMTI7Ozs7TjtTVUJTQ1JJUFQgSFlQSEVOLU1JTlVTOzs7OworMjA4QztTVUJTQ1JJUFQgRVFVQUxTIFNJR047U207MDtPTjs8c3ViPiAwMDNEOzs7O047Ozs7OworMjA4RDtTVUJTQ1JJUFQgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzdWI+IDAwMjg7Ozs7WTtTVUJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwOEU7U1VCU0NSSVBUIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHN1Yj4gMDAyOTs7OztZO1NVQlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjA5MDtMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIEE7TG07MDtMOzxzdWI+IDAwNjE7Ozs7Tjs7Ozs7CisyMDkxO0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgRTtMbTswO0w7PHN1Yj4gMDA2NTs7OztOOzs7OzsKKzIwOTI7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBPO0xtOzA7TDs8c3ViPiAwMDZGOzs7O047Ozs7OworMjA5MztMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFg7TG07MDtMOzxzdWI+IDAwNzg7Ozs7Tjs7Ozs7CisyMDk0O0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgU0NIV0E7TG07MDtMOzxzdWI+IDAyNTk7Ozs7Tjs7Ozs7CisyMEEwO0VVUk8tQ1VSUkVOQ1kgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTE7Q09MT04gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTI7Q1JVWkVJUk8gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTM7RlJFTkNIIEZSQU5DIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE0O0xJUkEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTU7TUlMTCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNjtOQUlSQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNztQRVNFVEEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTg7UlVQRUUgU0lHTjtTYzswO0VUOzxjb21wYXQ+IDAwNTIgMDA3Mzs7OztOOzs7OzsKKzIwQTk7V09OIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFBO05FVyBTSEVRRUwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUI7RE9ORyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQztFVVJPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFEO0tJUCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBRTtUVUdSSUsgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUY7RFJBQ0hNQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBCMDtHRVJNQU4gUEVOTlkgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQjE7UEVTTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBCMjtHVUFSQU5JIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEIzO0FVU1RSQUwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQjQ7SFJZVk5JQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBCNTtDRURJIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEQwO0NPTUJJTklORyBMRUZUIEhBUlBPT04gQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBUlBPT04gQUJPVkU7Ozs7CisyMEQxO0NPTUJJTklORyBSSUdIVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgSEFSUE9PTiBBQk9WRTs7OzsKKzIwRDI7Q09NQklOSU5HIExPTkcgVkVSVElDQUwgTElORSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIExPTkcgVkVSVElDQUwgQkFSIE9WRVJMQVk7Ozs7CisyMEQzO0NPTUJJTklORyBTSE9SVCBWRVJUSUNBTCBMSU5FIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgVkVSVElDQUwgQkFSIE9WRVJMQVk7Ozs7CisyMEQ0O0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQU5USUNMT0NLV0lTRSBBUlJPVyBBQk9WRTs7OzsKKzIwRDU7Q09NQklOSU5HIENMT0NLV0lTRSBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENMT0NLV0lTRSBBUlJPVyBBQk9WRTs7OzsKKzIwRDY7Q09NQklOSU5HIExFRlQgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFSUk9XIEFCT1ZFOzs7OworMjBENztDT01CSU5JTkcgUklHSFQgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBBUlJPVyBBQk9WRTs7OzsKKzIwRDg7Q09NQklOSU5HIFJJTkcgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSU5HIE9WRVJMQVk7Ozs7CisyMEQ5O0NPTUJJTklORyBDTE9DS1dJU0UgUklORyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7Ozs7CisyMERBO0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBBTlRJQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTs7OzsKKzIwREI7Q09NQklOSU5HIFRIUkVFIERPVFMgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBUSFJFRSBET1RTIEFCT1ZFOzs7OworMjBEQztDT01CSU5JTkcgRk9VUiBET1RTIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRk9VUiBET1RTIEFCT1ZFOzs7OworMjBERDtDT01CSU5JTkcgRU5DTE9TSU5HIENJUkNMRTtNZTswO05TTTs7Ozs7TjtFTkNMT1NJTkcgQ0lSQ0xFOzs7OworMjBERTtDT01CSU5JTkcgRU5DTE9TSU5HIFNRVUFSRTtNZTswO05TTTs7Ozs7TjtFTkNMT1NJTkcgU1FVQVJFOzs7OworMjBERjtDT01CSU5JTkcgRU5DTE9TSU5HIERJQU1PTkQ7TWU7MDtOU007Ozs7O047RU5DTE9TSU5HIERJQU1PTkQ7Ozs7CisyMEUwO0NPTUJJTklORyBFTkNMT1NJTkcgQ0lSQ0xFIEJBQ0tTTEFTSDtNZTswO05TTTs7Ozs7TjtFTkNMT1NJTkcgQ0lSQ0xFIFNMQVNIOzs7OworMjBFMTtDT01CSU5JTkcgTEVGVCBSSUdIVCBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgUklHSFQgQVJST1cgQUJPVkU7Ozs7CisyMEUyO0NPTUJJTklORyBFTkNMT1NJTkcgU0NSRUVOO01lOzA7TlNNOzs7OztOOzs7OzsKKzIwRTM7Q09NQklOSU5HIEVOQ0xPU0lORyBLRVlDQVA7TWU7MDtOU007Ozs7O047Ozs7OworMjBFNDtDT01CSU5JTkcgRU5DTE9TSU5HIFVQV0FSRCBQT0lOVElORyBUUklBTkdMRTtNZTswO05TTTs7Ozs7Tjs7Ozs7CisyMEU1O0NPTUJJTklORyBSRVZFUlNFIFNPTElEVVMgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisyMEU2O0NPTUJJTklORyBET1VCTEUgVkVSVElDQUwgU1RST0tFIE9WRVJMQVk7TW47MTtOU007Ozs7O047Ozs7OworMjBFNztDT01CSU5JTkcgQU5OVUlUWSBTWU1CT0w7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisyMEU4O0NPTUJJTklORyBUUklQTEUgVU5ERVJET1Q7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisyMEU5O0NPTUJJTklORyBXSURFIEJSSURHRSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzIwRUE7Q09NQklOSU5HIExFRlRXQVJEUyBBUlJPVyBPVkVSTEFZO01uOzE7TlNNOzs7OztOOzs7OzsKKzIwRUI7Q09NQklOSU5HIExPTkcgRE9VQkxFIFNPTElEVVMgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisyMEVDO0NPTUJJTklORyBSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV05XQVJEUztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzIwRUQ7Q09NQklOSU5HIExFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisyMEVFO0NPTUJJTklORyBMRUZUIEFSUk9XIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMjBFRjtDT01CSU5JTkcgUklHSFQgQVJST1cgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisyMTAwO0FDQ09VTlQgT0Y7U287MDtPTjs8Y29tcGF0PiAwMDYxIDAwMkYgMDA2Mzs7OztOOzs7OzsKKzIxMDE7QUREUkVTU0VEIFRPIFRIRSBTVUJKRUNUO1NvOzA7T047PGNvbXBhdD4gMDA2MSAwMDJGIDAwNzM7Ozs7Tjs7Ozs7CisyMTAyO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOO0RPVUJMRS1TVFJVQ0sgQzs7OzsKKzIxMDM7REVHUkVFIENFTFNJVVM7U287MDtPTjs8Y29tcGF0PiAwMEIwIDAwNDM7Ozs7TjtERUdSRUVTIENFTlRJR1JBREU7Ozs7CisyMTA0O0NFTlRSRSBMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOO0MgTCBTWU1CT0w7Ozs7CisyMTA1O0NBUkUgT0Y7U287MDtPTjs8Y29tcGF0PiAwMDYzIDAwMkYgMDA2Rjs7OztOOzs7OzsKKzIxMDY7Q0FEQSBVTkE7U287MDtPTjs8Y29tcGF0PiAwMDYzIDAwMkYgMDA3NTs7OztOOzs7OzsKKzIxMDc7RVVMRVIgQ09OU1RBTlQ7THU7MDtMOzxjb21wYXQ+IDAxOTA7Ozs7TjtFVUxFUlM7Ozs7CisyMTA4O1NDUlVQTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTA5O0RFR1JFRSBGQUhSRU5IRUlUO1NvOzA7T047PGNvbXBhdD4gMDBCMCAwMDQ2Ozs7O047REVHUkVFUyBGQUhSRU5IRUlUOzs7OworMjEwQTtTQ1JJUFQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisyMTBCO1NDUklQVCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047U0NSSVBUIEg7Ozs7CisyMTBDO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047QkxBQ0stTEVUVEVSIEg7Ozs7CisyMTBEO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOO0RPVUJMRS1TVFJVQ0sgSDs7OzsKKzIxMEU7UExBTkNLIENPTlNUQU5UO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzIxMEY7UExBTkNLIENPTlNUQU5UIE9WRVIgVFdPIFBJO0xsOzA7TDs8Zm9udD4gMDEyNzs7OztOO1BMQU5DSyBDT05TVEFOVCBPVkVSIDIgUEk7Ozs7CisyMTEwO1NDUklQVCBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047U0NSSVBUIEk7Ozs7CisyMTExO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047QkxBQ0stTEVUVEVSIEk7Ozs7CisyMTEyO1NDUklQVCBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047U0NSSVBUIEw7Ozs7CisyMTEzO1NDUklQVCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzIxMTQ7TCBCIEJBUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTE1O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOO0RPVUJMRS1TVFJVQ0sgTjs7OzsKKzIxMTY7TlVNRVJPIFNJR047U287MDtPTjs8Y29tcGF0PiAwMDRFIDAwNkY7Ozs7TjtOVU1FUk87Ozs7CisyMTE3O1NPVU5EIFJFQ09SRElORyBDT1BZUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTE4O1NDUklQVCBDQVBJVEFMIFA7U287MDtPTjs7Ozs7TjtTQ1JJUFQgUDs7OzsKKzIxMTk7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047RE9VQkxFLVNUUlVDSyBQOzs7OworMjExQTtET1VCTEUtU1RSVUNLIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7TjtET1VCTEUtU1RSVUNLIFE7Ozs7CisyMTFCO1NDUklQVCBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047U0NSSVBUIFI7Ozs7CisyMTFDO0JMQUNLLUxFVFRFUiBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047QkxBQ0stTEVUVEVSIFI7Ozs7CisyMTFEO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO0RPVUJMRS1TVFJVQ0sgUjs7OzsKKzIxMUU7UFJFU0NSSVBUSU9OIFRBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTFGO1JFU1BPTlNFO1NvOzA7T047Ozs7O047Ozs7OworMjEyMDtTRVJWSUNFIE1BUks7U287MDtPTjs8c3VwZXI+IDAwNTMgMDA0RDs7OztOOzs7OzsKKzIxMjE7VEVMRVBIT05FIFNJR047U287MDtPTjs8Y29tcGF0PiAwMDU0IDAwNDUgMDA0Qzs7OztOO1QgRSBMIFNZTUJPTDs7OzsKKzIxMjI7VFJBREUgTUFSSyBTSUdOO1NvOzA7T047PHN1cGVyPiAwMDU0IDAwNEQ7Ozs7TjtUUkFERU1BUks7Ozs7CisyMTIzO1ZFUlNJQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjEyNDtET1VCTEUtU1RSVUNLIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7TjtET1VCTEUtU1RSVUNLIFo7Ozs7CisyMTI1O09VTkNFIFNJR047U287MDtPTjs7Ozs7TjtPVU5DRTs7OzsKKzIxMjY7T0hNIFNJR047THU7MDtMOzAzQTk7Ozs7TjtPSE07OzswM0M5OworMjEyNztJTlZFUlRFRCBPSE0gU0lHTjtTbzswO09OOzs7OztOO01ITzs7OzsKKzIxMjg7QkxBQ0stTEVUVEVSIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7TjtCTEFDSy1MRVRURVIgWjs7OzsKKzIxMjk7VFVSTkVEIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBO1NvOzA7T047Ozs7O047Ozs7OworMjEyQTtLRUxWSU4gU0lHTjtMdTswO0w7MDA0Qjs7OztOO0RFR1JFRVMgS0VMVklOOzs7MDA2QjsKKzIxMkI7QU5HU1RST00gU0lHTjtMdTswO0w7MDBDNTs7OztOO0FOR1NUUk9NIFVOSVQ7OzswMEU1OworMjEyQztTQ1JJUFQgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOO1NDUklQVCBCOzs7OworMjEyRDtCTEFDSy1MRVRURVIgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOO0JMQUNLLUxFVFRFUiBDOzs7OworMjEyRTtFU1RJTUFURUQgU1lNQk9MO1NvOzA7RVQ7Ozs7O047Ozs7OworMjEyRjtTQ1JJUFQgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisyMTMwO1NDUklQVCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047U0NSSVBUIEU7Ozs7CisyMTMxO1NDUklQVCBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047U0NSSVBUIEY7Ozs7CisyMTMyO1RVUk5FRCBDQVBJVEFMIEY7THU7MDtMOzs7OztOO1RVUk5FRCBGOzs7MjE0RTsKKzIxMzM7U0NSSVBUIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7TjtTQ1JJUFQgTTs7OzsKKzIxMzQ7U0NSSVBUIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMjEzNTtBTEVGIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMDs7OztOO0ZJUlNUIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNjtCRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQxOzs7O047U0VDT05EIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNztHSU1FTCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDI7Ozs7TjtUSElSRCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzg7REFMRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQzOzs7O047Rk9VUlRIIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzOTtJTkZPUk1BVElPTiBTT1VSQ0U7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMjEzQTtST1RBVEVEIENBUElUQUwgUTtTbzswO09OOzs7OztOOzs7OzsKKzIxM0I7RkFDU0lNSUxFIFNJR047U287MDtPTjs8Y29tcGF0PiAwMDQ2IDAwNDEgMDA1ODs7OztOOzs7OzsKKzIxM0M7RE9VQkxFLVNUUlVDSyBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisyMTNEO0RPVUJMRS1TVFJVQ0sgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMjEzRTtET1VCTEUtU1RSVUNLIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMjEzRjtET1VCTEUtU1RSVUNLIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMjE0MDtET1VCTEUtU1RSVUNLIE4tQVJZIFNVTU1BVElPTjtTbTswO09OOzxmb250PiAyMjExOzs7O1k7Ozs7OworMjE0MTtUVVJORUQgU0FOUy1TRVJJRiBDQVBJVEFMIEc7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTQyO1RVUk5FRCBTQU5TLVNFUklGIENBUElUQUwgTDtTbTswO09OOzs7OztOOzs7OzsKKzIxNDM7UkVWRVJTRUQgU0FOUy1TRVJJRiBDQVBJVEFMIEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTQ0O1RVUk5FRCBTQU5TLVNFUklGIENBUElUQUwgWTtTbTswO09OOzs7OztOOzs7OzsKKzIxNDU7RE9VQkxFLVNUUlVDSyBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzIxNDY7RE9VQkxFLVNUUlVDSyBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisyMTQ3O0RPVUJMRS1TVFJVQ0sgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMjE0ODtET1VCTEUtU1RSVUNLIElUQUxJQyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzIxNDk7RE9VQkxFLVNUUlVDSyBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisyMTRBO1BST1BFUlRZIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTRCO1RVUk5FRCBBTVBFUlNBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTRDO1BFUiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjE0RDtBS1RJRVNFTFNLQUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTRFO1RVUk5FRCBTTUFMTCBGO0xsOzA7TDs7Ozs7Tjs7OzIxMzI7OzIxMzIKKzIxNTM7VlVMR0FSIEZSQUNUSU9OIE9ORSBUSElSRDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzM7OzsxLzM7TjtGUkFDVElPTiBPTkUgVEhJUkQ7Ozs7CisyMTU0O1ZVTEdBUiBGUkFDVElPTiBUV08gVEhJUkRTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzMzs7OzIvMztOO0ZSQUNUSU9OIFRXTyBUSElSRFM7Ozs7CisyMTU1O1ZVTEdBUiBGUkFDVElPTiBPTkUgRklGVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM1Ozs7MS81O047RlJBQ1RJT04gT05FIEZJRlRIOzs7OworMjE1NjtWVUxHQVIgRlJBQ1RJT04gVFdPIEZJRlRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzMiAyMDQ0IDAwMzU7OzsyLzU7TjtGUkFDVElPTiBUV08gRklGVEhTOzs7OworMjE1NztWVUxHQVIgRlJBQ1RJT04gVEhSRUUgRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzNTs7OzMvNTtOO0ZSQUNUSU9OIFRIUkVFIEZJRlRIUzs7OzsKKzIxNTg7VlVMR0FSIEZSQUNUSU9OIEZPVVIgRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM0IDIwNDQgMDAzNTs7OzQvNTtOO0ZSQUNUSU9OIEZPVVIgRklGVEhTOzs7OworMjE1OTtWVUxHQVIgRlJBQ1RJT04gT05FIFNJWFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzNjs7OzEvNjtOO0ZSQUNUSU9OIE9ORSBTSVhUSDs7OzsKKzIxNUE7VlVMR0FSIEZSQUNUSU9OIEZJVkUgU0lYVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM1IDIwNDQgMDAzNjs7OzUvNjtOO0ZSQUNUSU9OIEZJVkUgU0lYVEhTOzs7OworMjE1QjtWVUxHQVIgRlJBQ1RJT04gT05FIEVJR0hUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzg7OzsxLzg7TjtGUkFDVElPTiBPTkUgRUlHSFRIOzs7OworMjE1QztWVUxHQVIgRlJBQ1RJT04gVEhSRUUgRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzMyAyMDQ0IDAwMzg7OzszLzg7TjtGUkFDVElPTiBUSFJFRSBFSUdIVEhTOzs7OworMjE1RDtWVUxHQVIgRlJBQ1RJT04gRklWRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM1IDIwNDQgMDAzODs7OzUvODtOO0ZSQUNUSU9OIEZJVkUgRUlHSFRIUzs7OzsKKzIxNUU7VlVMR0FSIEZSQUNUSU9OIFNFVkVOIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzcgMjA0NCAwMDM4Ozs7Ny84O047RlJBQ1RJT04gU0VWRU4gRUlHSFRIUzs7OzsKKzIxNUY7RlJBQ1RJT04gTlVNRVJBVE9SIE9ORTtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0Ozs7MTtOOzs7OzsKKzIxNjA7Uk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNDk7OzsxO047Ozs7MjE3MDsKKzIxNjE7Uk9NQU4gTlVNRVJBTCBUV087Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OTs7OzI7Tjs7OzsyMTcxOworMjE2MjtST01BTiBOVU1FUkFMIFRIUkVFO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNDkgMDA0OTs7OzM7Tjs7OzsyMTcyOworMjE2MztST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA1Njs7OzQ7Tjs7OzsyMTczOworMjE2NDtST01BTiBOVU1FUkFMIEZJVkU7Tmw7MDtMOzxjb21wYXQ+IDAwNTY7Ozs1O047Ozs7MjE3NDsKKzIxNjU7Uk9NQU4gTlVNRVJBTCBTSVg7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OTs7OzY7Tjs7OzsyMTc1OworMjE2NjtST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU2IDAwNDkgMDA0OTs7Ozc7Tjs7OzsyMTc2OworMjE2NztST01BTiBOVU1FUkFMIEVJR0hUO05sOzA7TDs8Y29tcGF0PiAwMDU2IDAwNDkgMDA0OSAwMDQ5Ozs7ODtOOzs7OzIxNzc7CisyMTY4O1JPTUFOIE5VTUVSQUwgTklORTtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU4Ozs7OTtOOzs7OzIxNzg7CisyMTY5O1JPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDU4Ozs7MTA7Tjs7OzsyMTc5OworMjE2QTtST01BTiBOVU1FUkFMIEVMRVZFTjtObDswO0w7PGNvbXBhdD4gMDA1OCAwMDQ5Ozs7MTE7Tjs7OzsyMTdBOworMjE2QjtST01BTiBOVU1FUkFMIFRXRUxWRTtObDswO0w7PGNvbXBhdD4gMDA1OCAwMDQ5IDAwNDk7OzsxMjtOOzs7OzIxN0I7CisyMTZDO1JPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNEM7Ozs1MDtOOzs7OzIxN0M7CisyMTZEO1JPTUFOIE5VTUVSQUwgT05FIEhVTkRSRUQ7Tmw7MDtMOzxjb21wYXQ+IDAwNDM7OzsxMDA7Tjs7OzsyMTdEOworMjE2RTtST01BTiBOVU1FUkFMIEZJVkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0NDs7OzUwMDtOOzs7OzIxN0U7CisyMTZGO1JPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDREOzs7MTAwMDtOOzs7OzIxN0Y7CisyMTcwO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FO05sOzA7TDs8Y29tcGF0PiAwMDY5Ozs7MTtOOzs7MjE2MDs7MjE2MAorMjE3MTtTTUFMTCBST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA2OSAwMDY5Ozs7MjtOOzs7MjE2MTs7MjE2MQorMjE3MjtTTUFMTCBST01BTiBOVU1FUkFMIFRIUkVFO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjkgMDA2OTs7OzM7Tjs7OzIxNjI7OzIxNjIKKzIxNzM7U01BTEwgUk9NQU4gTlVNRVJBTCBGT1VSO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzY7Ozs0O047OzsyMTYzOzsyMTYzCisyMTc0O1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA3Njs7OzU7Tjs7OzIxNjQ7OzIxNjQKKzIxNzU7U01BTEwgUk9NQU4gTlVNRVJBTCBTSVg7Tmw7MDtMOzxjb21wYXQ+IDAwNzYgMDA2OTs7OzY7Tjs7OzIxNjU7OzIxNjUKKzIxNzY7U01BTEwgUk9NQU4gTlVNRVJBTCBTRVZFTjtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjk7Ozs3O047OzsyMTY2OzsyMTY2CisyMTc3O1NNQUxMIFJPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNzYgMDA2OSAwMDY5IDAwNjk7Ozs4O047OzsyMTY3OzsyMTY3CisyMTc4O1NNQUxMIFJPTUFOIE5VTUVSQUwgTklORTtObDswO0w7PGNvbXBhdD4gMDA2OSAwMDc4Ozs7OTtOOzs7MjE2ODs7MjE2OAorMjE3OTtTTUFMTCBST01BTiBOVU1FUkFMIFRFTjtObDswO0w7PGNvbXBhdD4gMDA3ODs7OzEwO047OzsyMTY5OzsyMTY5CisyMTdBO1NNQUxMIFJPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjk7OzsxMTtOOzs7MjE2QTs7MjE2QQorMjE3QjtTTUFMTCBST01BTiBOVU1FUkFMIFRXRUxWRTtObDswO0w7PGNvbXBhdD4gMDA3OCAwMDY5IDAwNjk7OzsxMjtOOzs7MjE2Qjs7MjE2QgorMjE3QztTTUFMTCBST01BTiBOVU1FUkFMIEZJRlRZO05sOzA7TDs8Y29tcGF0PiAwMDZDOzs7NTA7Tjs7OzIxNkM7OzIxNkMKKzIxN0Q7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA2Mzs7OzEwMDtOOzs7MjE2RDs7MjE2RAorMjE3RTtTTUFMTCBST01BTiBOVU1FUkFMIEZJVkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA2NDs7OzUwMDtOOzs7MjE2RTs7MjE2RQorMjE3RjtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORDtObDswO0w7PGNvbXBhdD4gMDA2RDs7OzEwMDA7Tjs7OzIxNkY7OzIxNkYKKzIxODA7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQgQyBEO05sOzA7TDs7OzsxMDAwO047Ozs7OworMjE4MTtST01BTiBOVU1FUkFMIEZJVkUgVEhPVVNBTkQ7Tmw7MDtMOzs7OzUwMDA7Tjs7Ozs7CisyMTgyO1JPTUFOIE5VTUVSQUwgVEVOIFRIT1VTQU5EO05sOzA7TDs7OzsxMDAwMDtOOzs7OzsKKzIxODM7Uk9NQU4gTlVNRVJBTCBSRVZFUlNFRCBPTkUgSFVORFJFRDtMdTswO0w7Ozs7O047Ozs7MjE4NDsKKzIxODQ7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEM7TGw7MDtMOzs7OztOOzs7MjE4Mzs7MjE4MworMjE5MDtMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtMRUZUIEFSUk9XOzs7OworMjE5MTtVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047VVAgQVJST1c7Ozs7CisyMTkyO1JJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVzs7OzsKKzIxOTM7RE9XTldBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047RE9XTiBBUlJPVzs7OzsKKzIxOTQ7TEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxOTU7VVAgRE9XTiBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxOTY7Tk9SVEggV0VTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgQVJST1c7Ozs7CisyMTk3O05PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzIxOTg7U09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIFJJR0hUIEFSUk9XOzs7OworMjE5OTtTT1VUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBBUlJPVzs7OzsKKzIxOUE7TEVGVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjE5MCAwMzM4Ozs7O047TEVGVCBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxOUI7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxOTIgMDMzODs7OztOO1JJR0hUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QztMRUZUV0FSRFMgV0FWRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgV0FWRSBBUlJPVzs7OzsKKzIxOUQ7UklHSFRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgV0FWRSBBUlJPVzs7OzsKKzIxOUU7TEVGVFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMTlGO1VQV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEwO1JJR0hUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbTswO09OOzs7OztOO1JJR0hUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUExO0RPV05XQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMjtMRUZUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUEzO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NtOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBUQUlMOzs7OworMjFBNDtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNTtVUFdBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047VVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE2O1JJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTc7RE9XTldBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTg7VVAgRE9XTiBBUlJPVyBXSVRIIEJBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUE5O0xFRlRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUE7UklHSFRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIEhPT0s7Ozs7CisyMUFCO0xFRlRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIExPT1A7Ozs7CisyMUFEO0xFRlQgUklHSFQgV0FWRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQUU7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxOTQgMDMzODs7OztOOzs7OzsKKzIxQUY7RE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbzswO09OOzs7OztOO0RPV04gWklHWkFHIEFSUk9XOzs7OworMjFCMDtVUFdBUkRTIEFSUk9XIFdJVEggVElQIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIxO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIFJJR0hUOzs7OworMjFCMjtET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBMRUZUOzs7OworMjFCMztET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUI0O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBDT1JORVIgRE9XTjs7OzsKKzIxQjU7RE9XTldBUkRTIEFSUk9XIFdJVEggQ09STkVSIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBDT1JORVIgTEVGVDs7OzsKKzIxQjY7QU5USUNMT0NLV0lTRSBUT1AgU0VNSUNJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQjc7Q0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCODtOT1JUSCBXRVNUIEFSUk9XIFRPIExPTkcgQkFSO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVyBUTyBMT05HIEJBUjs7OzsKKzIxQjk7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBUTyBCQVIgT1ZFUiBSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUJBO0FOVElDTE9DS1dJU0UgT1BFTiBDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUJCO0NMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkM7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFCRDtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFCRTtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQkY7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBMRUZUOzs7OworMjFDMDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBVUDs7OzsKKzIxQzE7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFDMjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7Ozs7CisyMUMzO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUM0O1JJR0hUV0FSRFMgQVJST1cgT1ZFUiBMRUZUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBPVkVSIExFRlQgQVJST1c7Ozs7CisyMUM1O1VQV0FSRFMgQVJST1cgTEVGVFdBUkRTIE9GIERPV05XQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1VQIEFSUk9XIExFRlQgT0YgRE9XTiBBUlJPVzs7OzsKKzIxQzY7TEVGVFdBUkRTIEFSUk9XIE9WRVIgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgT1ZFUiBSSUdIVCBBUlJPVzs7OzsKKzIxQzc7TEVGVFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtMRUZUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM4O1VQV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1VQIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM5O1JJR0hUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1JJR0hUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNBO0RPV05XQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047RE9XTiBQQUlSRUQgQVJST1dTOzs7OworMjFDQjtMRUZUV0FSRFMgSEFSUE9PTiBPVkVSIFJJR0hUV0FSRFMgSEFSUE9PTjtTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBPVkVSIFJJR0hUIEhBUlBPT047Ozs7CisyMUNDO1JJR0hUV0FSRFMgSEFSUE9PTiBPVkVSIExFRlRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBPVkVSIExFRlQgSEFSUE9PTjs7OzsKKzIxQ0Q7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzIxRDAgMDMzODs7OztOO0xFRlQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjFDRTtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxRDQgMDMzODs7OztOOzs7OzsKKzIxQ0Y7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMUQyIDAzMzg7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUQwO0xFRlRXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDE7VVBXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBET1VCTEUgQVJST1c7Ozs7CisyMUQyO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEMztET1dOV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBET1VCTEUgQVJST1c7Ozs7CisyMUQ0O0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFENTtVUCBET1dOIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRDY7Tk9SVEggV0VTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDc7Tk9SVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ4O1NPVVRIIEVBU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEOTtTT1VUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEQTtMRUZUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBUUklQTEUgQVJST1c7Ozs7CisyMURCO1JJR0hUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgVFJJUExFIEFSUk9XOzs7OworMjFEQztMRUZUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFNRVUlHR0xFIEFSUk9XOzs7OworMjFERDtSSUdIVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMURFO1VQV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFOzs7OworMjFERjtET1dOV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMUUwO0xFRlRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERBU0hFRCBBUlJPVzs7OzsKKzIxRTE7VVBXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBEQVNIRUQgQVJST1c7Ozs7CisyMUUyO1JJR0hUV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgREFTSEVEIEFSUk9XOzs7OworMjFFMztET1dOV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBEQVNIRUQgQVJST1c7Ozs7CisyMUU0O0xFRlRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTU7UklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUU2O0xFRlRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIExFRlQgQVJST1c7Ozs7CisyMUU3O1VQV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVzs7OzsKKzIxRTg7UklHSFRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIEFSUk9XOzs7OworMjFFOTtET1dOV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIEFSUk9XOzs7OworMjFFQTtVUFdBUkRTIFdISVRFIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047V0hJVEUgVVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUVCO1VQV0FSRFMgV0hJVEUgQVJST1cgT04gUEVERVNUQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVDO1VQV0FSRFMgV0hJVEUgQVJST1cgT04gUEVERVNUQUwgV0lUSCBIT1JJWk9OVEFMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRUQ7VVBXQVJEUyBXSElURSBBUlJPVyBPTiBQRURFU1RBTCBXSVRIIFZFUlRJQ0FMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRUU7VVBXQVJEUyBXSElURSBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVGO1VQV0FSRFMgV0hJVEUgRE9VQkxFIEFSUk9XIE9OIFBFREVTVEFMO1NvOzA7T047Ozs7O047Ozs7OworMjFGMDtSSUdIVFdBUkRTIFdISVRFIEFSUk9XIEZST00gV0FMTDtTbzswO09OOzs7OztOOzs7OzsKKzIxRjE7Tk9SVEggV0VTVCBBUlJPVyBUTyBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYyO1NPVVRIIEVBU1QgQVJST1cgVE8gQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjFGMztVUCBET1dOIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFGNDtSSUdIVCBBUlJPVyBXSVRIIFNNQUxMIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRjU7RE9XTldBUkRTIEFSUk9XIExFRlRXQVJEUyBPRiBVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFGNjtUSFJFRSBSSUdIVFdBUkRTIEFSUk9XUztTbTswO09OOzs7OztOOzs7OzsKKzIxRjc7TEVGVFdBUkRTIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGODtSSUdIVFdBUkRTIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGOTtMRUZUIFJJR0hUIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGQTtMRUZUV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGQjtSSUdIVFdBUkRTIEFSUk9XIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRkM7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUZEO0xFRlRXQVJEUyBPUEVOLUhFQURFRCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxRkU7UklHSFRXQVJEUyBPUEVOLUhFQURFRCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxRkY7TEVGVCBSSUdIVCBPUEVOLUhFQURFRCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIyMDA7Rk9SIEFMTDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDE7Q09NUExFTUVOVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMDI7UEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjAzO1RIRVJFIEVYSVNUUztTbTswO09OOzs7OztZOzs7OzsKKzIyMDQ7VEhFUkUgRE9FUyBOT1QgRVhJU1Q7U207MDtPTjsyMjAzIDAzMzg7Ozs7WTs7Ozs7CisyMjA1O0VNUFRZIFNFVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDY7SU5DUkVNRU5UO1NtOzA7T047Ozs7O047Ozs7OworMjIwNztOQUJMQTtTbTswO09OOzs7OztOOzs7OzsKKzIyMDg7RUxFTUVOVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyMDk7Tk9UIEFOIEVMRU1FTlQgT0Y7U207MDtPTjsyMjA4IDAzMzg7Ozs7WTs7Ozs7CisyMjBBO1NNQUxMIEVMRU1FTlQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBCO0NPTlRBSU5TIEFTIE1FTUJFUjtTbTswO09OOzs7OztZOzs7OzsKKzIyMEM7RE9FUyBOT1QgQ09OVEFJTiBBUyBNRU1CRVI7U207MDtPTjsyMjBCIDAzMzg7Ozs7WTs7Ozs7CisyMjBEO1NNQUxMIENPTlRBSU5TIEFTIE1FTUJFUjtTbTswO09OOzs7OztZOzs7OzsKKzIyMEU7RU5EIE9GIFBST09GO1NtOzA7T047Ozs7O047Ozs7OworMjIwRjtOLUFSWSBQUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjIxMDtOLUFSWSBDT1BST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjExO04tQVJZIFNVTU1BVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyMTI7TUlOVVMgU0lHTjtTbTswO0VTOzs7OztOOzs7OzsKKzIyMTM7TUlOVVMtT1ItUExVUyBTSUdOO1NtOzA7RVQ7Ozs7O047Ozs7OworMjIxNDtET1QgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzIyMTU7RElWSVNJT04gU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjE2O1NFVCBNSU5VUztTbTswO09OOzs7OztZOzs7OzsKKzIyMTc7QVNURVJJU0sgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE4O1JJTkcgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE5O0JVTExFVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMUE7U1FVQVJFIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFCO0NVQkUgUk9PVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMUM7Rk9VUlRIIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFEO1BST1BPUlRJT05BTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyMUU7SU5GSU5JVFk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjFGO1JJR0hUIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMDtBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjE7TUVBU1VSRUQgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIyO1NQSEVSSUNBTCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjM7RElWSURFUztTbTswO09OOzs7OztOOzs7OzsKKzIyMjQ7RE9FUyBOT1QgRElWSURFO1NtOzA7T047MjIyMyAwMzM4Ozs7O1k7Ozs7OworMjIyNTtQQVJBTExFTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyMjY7Tk9UIFBBUkFMTEVMIFRPO1NtOzA7T047MjIyNSAwMzM4Ozs7O1k7Ozs7OworMjIyNztMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyMjg7TE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMjk7SU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIyQTtVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMkI7SU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjJDO0RPVUJMRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQjs7OztZOzs7OzsKKzIyMkQ7VFJJUExFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyQiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyMjJFO0NPTlRPVVIgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjJGO1NVUkZBQ0UgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJFIDIyMkU7Ozs7WTs7Ozs7CisyMjMwO1ZPTFVNRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkUgMjIyRSAyMjJFOzs7O1k7Ozs7OworMjIzMTtDTE9DS1dJU0UgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjMyO0NMT0NLV0lTRSBDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzMztBTlRJQ0xPQ0tXSVNFIENPTlRPVVIgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjM0O1RIRVJFRk9SRTtTbTswO09OOzs7OztOOzs7OzsKKzIyMzU7QkVDQVVTRTtTbTswO09OOzs7OztOOzs7OzsKKzIyMzY7UkFUSU87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM3O1BST1BPUlRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM4O0RPVCBNSU5VUztTbTswO09OOzs7OztOOzs7OzsKKzIyMzk7RVhDRVNTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzQTtHRU9NRVRSSUMgUFJPUE9SVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyM0I7SE9NT1RIRVRJQztTbTswO09OOzs7OztZOzs7OzsKKzIyM0M7VElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNEO1JFVkVSU0VEIFRJTERFO1NtOzA7T047Ozs7O1k7O2xhenkgUzs7OworMjIzRTtJTlZFUlRFRCBMQVpZIFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNGO1NJTkUgV0FWRTtTbTswO09OOzs7OztZOzs7OzsKKzIyNDA7V1JFQVRIIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQxO05PVCBUSUxERTtTbTswO09OOzIyM0MgMDMzODs7OztZOzs7OzsKKzIyNDI7TUlOVVMgVElMREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQzO0FTWU1QVE9USUNBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NDtOT1QgQVNZTVBUT1RJQ0FMTFkgRVFVQUwgVE87U207MDtPTjsyMjQzIDAzMzg7Ozs7WTs7Ozs7CisyMjQ1O0FQUFJPWElNQVRFTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ2O0FQUFJPWElNQVRFTFkgQlVUIE5PVCBBQ1RVQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDc7TkVJVEhFUiBBUFBST1hJTUFURUxZIE5PUiBBQ1RVQUxMWSBFUVVBTCBUTztTbTswO09OOzIyNDUgMDMzODs7OztZOzs7OzsKKzIyNDg7QUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0OTtOT1QgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047MjI0OCAwMzM4Ozs7O1k7Ozs7OworMjI0QTtBTE1PU1QgRVFVQUwgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjRCO1RSSVBMRSBUSUxERTtTbTswO09OOzs7OztZOzs7OzsKKzIyNEM7QUxMIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0RDtFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI0RTtHRU9NRVRSSUNBTExZIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjRGO0RJRkZFUkVOQ0UgQkVUV0VFTjtTbTswO09OOzs7OztOOzs7OzsKKzIyNTA7QVBQUk9BQ0hFUyBUSEUgTElNSVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUxO0dFT01FVFJJQ0FMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUyO0FQUFJPWElNQVRFTFkgRVFVQUwgVE8gT1IgVEhFIElNQUdFIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI1MztJTUFHRSBPRiBPUiBBUFBST1hJTUFURUxZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI1NDtDT0xPTiBFUVVBTFM7U207MDtPTjs7Ozs7WTtDT0xPTiBFUVVBTDs7OzsKKzIyNTU7RVFVQUxTIENPTE9OO1NtOzA7T047Ozs7O1k7RVFVQUwgQ09MT047Ozs7CisyMjU2O1JJTkcgSU4gRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjU3O1JJTkcgRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjU4O0NPUlJFU1BPTkRTIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1OTtFU1RJTUFURVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVBO0VRVUlBTkdVTEFSIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1QjtTVEFSIEVRVUFMUztTbTswO09OOzs7OztOOzs7OzsKKzIyNUM7REVMVEEgRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVEO0VRVUFMIFRPIEJZIERFRklOSVRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVFO01FQVNVUkVEIEJZO1NtOzA7T047Ozs7O047Ozs7OworMjI1RjtRVUVTVElPTkVEIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI2MDtOT1QgRVFVQUwgVE87U207MDtPTjswMDNEIDAzMzg7Ozs7WTs7Ozs7CisyMjYxO0lERU5USUNBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNjI7Tk9UIElERU5USUNBTCBUTztTbTswO09OOzIyNjEgMDMzODs7OztZOzs7OzsKKzIyNjM7U1RSSUNUTFkgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNjQ7TEVTUy1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9SIEVRVUFMIFRPOzs7OworMjI2NTtHUkVBVEVSLVRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE87Ozs7CisyMjY2O0xFU1MtVEhBTiBPVkVSIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9WRVIgRVFVQUwgVE87Ozs7CisyMjY3O0dSRUFURVItVEhBTiBPVkVSIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9WRVIgRVFVQUwgVE87Ozs7CisyMjY4O0xFU1MtVEhBTiBCVVQgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIEJVVCBOT1QgRVFVQUwgVE87Ozs7CisyMjY5O0dSRUFURVItVEhBTiBCVVQgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEJVVCBOT1QgRVFVQUwgVE87Ozs7CisyMjZBO01VQ0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7TVVDSCBMRVNTIFRIQU47Ozs7CisyMjZCO01VQ0ggR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7TVVDSCBHUkVBVEVSIFRIQU47Ozs7CisyMjZDO0JFVFdFRU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjZEO05PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047MjI0RCAwMzM4Ozs7O047Ozs7OworMjI2RTtOT1QgTEVTUy1USEFOO1NtOzA7T047MDAzQyAwMzM4Ozs7O1k7Tk9UIExFU1MgVEhBTjs7OzsKKzIyNkY7Tk9UIEdSRUFURVItVEhBTjtTbTswO09OOzAwM0UgMDMzODs7OztZO05PVCBHUkVBVEVSIFRIQU47Ozs7CisyMjcwO05FSVRIRVIgTEVTUy1USEFOIE5PUiBFUVVBTCBUTztTbTswO09OOzIyNjQgMDMzODs7OztZO05FSVRIRVIgTEVTUyBUSEFOIE5PUiBFUVVBTCBUTzs7OzsKKzIyNzE7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIEVRVUFMIFRPO1NtOzA7T047MjI2NSAwMzM4Ozs7O1k7TkVJVEhFUiBHUkVBVEVSIFRIQU4gTk9SIEVRVUFMIFRPOzs7OworMjI3MjtMRVNTLVRIQU4gT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3MztHUkVBVEVSLVRIQU4gT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3NDtORUlUSEVSIExFU1MtVEhBTiBOT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNzIgMDMzODs7OztZO05FSVRIRVIgTEVTUyBUSEFOIE5PUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3NTtORUlUSEVSIEdSRUFURVItVEhBTiBOT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNzMgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3NjtMRVNTLVRIQU4gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9SIEdSRUFURVIgVEhBTjs7OzsKKzIyNzc7R1JFQVRFUi1USEFOIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPUiBMRVNTIFRIQU47Ozs7CisyMjc4O05FSVRIRVIgTEVTUy1USEFOIE5PUiBHUkVBVEVSLVRIQU47U207MDtPTjsyMjc2IDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgR1JFQVRFUiBUSEFOOzs7OworMjI3OTtORUlUSEVSIEdSRUFURVItVEhBTiBOT1IgTEVTUy1USEFOO1NtOzA7T047MjI3NyAwMzM4Ozs7O1k7TkVJVEhFUiBHUkVBVEVSIFRIQU4gTk9SIExFU1MgVEhBTjs7OzsKKzIyN0E7UFJFQ0VERVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdCO1NVQ0NFRURTO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3QztQUkVDRURFUyBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyN0Q7U1VDQ0VFRFMgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdFO1BSRUNFREVTIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdGO1NVQ0NFRURTIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjgwO0RPRVMgTk9UIFBSRUNFREU7U207MDtPTjsyMjdBIDAzMzg7Ozs7WTs7Ozs7CisyMjgxO0RPRVMgTk9UIFNVQ0NFRUQ7U207MDtPTjsyMjdCIDAzMzg7Ozs7WTs7Ozs7CisyMjgyO1NVQlNFVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyODM7U1VQRVJTRVQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg0O05PVCBBIFNVQlNFVCBPRjtTbTswO09OOzIyODIgMDMzODs7OztZOzs7OzsKKzIyODU7Tk9UIEEgU1VQRVJTRVQgT0Y7U207MDtPTjsyMjgzIDAzMzg7Ozs7WTs7Ozs7CisyMjg2O1NVQlNFVCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyODc7U1VQRVJTRVQgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg4O05FSVRIRVIgQSBTVUJTRVQgT0YgTk9SIEVRVUFMIFRPO1NtOzA7T047MjI4NiAwMzM4Ozs7O1k7Ozs7OworMjI4OTtORUlUSEVSIEEgU1VQRVJTRVQgT0YgTk9SIEVRVUFMIFRPO1NtOzA7T047MjI4NyAwMzM4Ozs7O1k7Ozs7OworMjI4QTtTVUJTRVQgT0YgV0lUSCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtTVUJTRVQgT0YgT1IgTk9UIEVRVUFMIFRPOzs7OworMjI4QjtTVVBFUlNFVCBPRiBXSVRIIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO1NVUEVSU0VUIE9GIE9SIE5PVCBFUVVBTCBUTzs7OzsKKzIyOEM7TVVMVElTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjhEO01VTFRJU0VUIE1VTFRJUExJQ0FUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI4RTtNVUxUSVNFVCBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyOEY7U1FVQVJFIElNQUdFIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MDtTUVVBUkUgT1JJR0lOQUwgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkxO1NRVUFSRSBJTUFHRSBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyOTI7U1FVQVJFIE9SSUdJTkFMIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MztTUVVBUkUgQ0FQO1NtOzA7T047Ozs7O047Ozs7OworMjI5NDtTUVVBUkUgQ1VQO1NtOzA7T047Ozs7O047Ozs7OworMjI5NTtDSVJDTEVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk2O0NJUkNMRUQgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk3O0NJUkNMRUQgVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk4O0NJUkNMRUQgRElWSVNJT04gU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjk5O0NJUkNMRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QTtDSVJDTEVEIFJJTkcgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlCO0NJUkNMRUQgQVNURVJJU0sgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlDO0NJUkNMRUQgRVFVQUxTO1NtOzA7T047Ozs7O047Ozs7OworMjI5RDtDSVJDTEVEIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlFO1NRVUFSRUQgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzIyOUY7U1FVQVJFRCBNSU5VUztTbTswO09OOzs7OztOOzs7OzsKKzIyQTA7U1FVQVJFRCBUSU1FUztTbTswO09OOzs7OztOOzs7OzsKKzIyQTE7U1FVQVJFRCBET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkEyO1JJR0hUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkEzO0xFRlQgVEFDSztTbTswO09OOzs7OztZOzs7OzsKKzIyQTQ7RE9XTiBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjJBNTtVUCBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjJBNjtBU1NFUlRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE3O01PREVMUztTbTswO09OOzs7OztZOzs7OzsKKzIyQTg7VFJVRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQTk7Rk9SQ0VTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBQTtUUklQTEUgVkVSVElDQUwgQkFSIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQUI7RE9VQkxFIFZFUlRJQ0FMIEJBUiBET1VCTEUgUklHSFQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBQztET0VTIE5PVCBQUk9WRTtTbTswO09OOzIyQTIgMDMzODs7OztZOzs7OzsKKzIyQUQ7Tk9UIFRSVUU7U207MDtPTjsyMkE4IDAzMzg7Ozs7WTs7Ozs7CisyMkFFO0RPRVMgTk9UIEZPUkNFO1NtOzA7T047MjJBOSAwMzM4Ozs7O1k7Ozs7OworMjJBRjtORUdBVEVEIERPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzIyQUIgMDMzODs7OztZOzs7OzsKKzIyQjA7UFJFQ0VERVMgVU5ERVIgUkVMQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMkIxO1NVQ0NFRURTIFVOREVSIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMjtOT1JNQUwgU1VCR1JPVVAgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkIzO0NPTlRBSU5TIEFTIE5PUk1BTCBTVUJHUk9VUDtTbTswO09OOzs7OztZOzs7OzsKKzIyQjQ7Tk9STUFMIFNVQkdST1VQIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNTtDT05UQUlOUyBBUyBOT1JNQUwgU1VCR1JPVVAgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI2O09SSUdJTkFMIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNztJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjg7TVVMVElNQVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI5O0hFUk1JVElBTiBDT05KVUdBVEUgTUFUUklYO1NtOzA7T047Ozs7O047Ozs7OworMjJCQTtJTlRFUkNBTEFURTtTbTswO09OOzs7OztOOzs7OzsKKzIyQkI7WE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJCQztOQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJCRDtOT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJFO1JJR0hUIEFOR0xFIFdJVEggQVJDO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCRjtSSUdIVCBUUklBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQzA7Ti1BUlkgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMxO04tQVJZIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMyO04tQVJZIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzM7Ti1BUlkgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM0O0RJQU1PTkQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM1O0RPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzY7U1RBUiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzc7RElWSVNJT04gVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM4O0JPV1RJRTtTbTswO09OOzs7OztOOzs7OzsKKzIyQzk7TEVGVCBOT1JNQUwgRkFDVE9SIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0E7UklHSFQgTk9STUFMIEZBQ1RPUiBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNCO0xFRlQgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQztSSUdIVCBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNEO1JFVkVSU0VEIFRJTERFIEVRVUFMUztTbTswO09OOzs7OztZOzs7OzsKKzIyQ0U7Q1VSTFkgTE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQ0Y7Q1VSTFkgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQwO0RPVUJMRSBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkQxO0RPVUJMRSBTVVBFUlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzIyRDI7RE9VQkxFIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyRDM7RE9VQkxFIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJENDtQSVRDSEZPUks7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ1O0VRVUFMIEFORCBQQVJBTExFTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyRDY7TEVTUy1USEFOIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIFdJVEggRE9UOzs7OworMjJENztHUkVBVEVSLVRIQU4gV0lUSCBET1Q7U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gV0lUSCBET1Q7Ozs7CisyMkQ4O1ZFUlkgTVVDSCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtWRVJZIE1VQ0ggTEVTUyBUSEFOOzs7OworMjJEOTtWRVJZIE1VQ0ggR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7VkVSWSBNVUNIIEdSRUFURVIgVEhBTjs7OzsKKzIyREE7TEVTUy1USEFOIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBFUVVBTCBUTyBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMkRCO0dSRUFURVItVEhBTiBFUVVBTCBUTyBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gRVFVQUwgVE8gT1IgTEVTUyBUSEFOOzs7OworMjJEQztFUVVBTCBUTyBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtFUVVBTCBUTyBPUiBMRVNTIFRIQU47Ozs7CisyMkREO0VRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0VRVUFMIFRPIE9SIEdSRUFURVIgVEhBTjs7OzsKKzIyREU7RVFVQUwgVE8gT1IgUFJFQ0VERVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkRGO0VRVUFMIFRPIE9SIFNVQ0NFRURTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFMDtET0VTIE5PVCBQUkVDRURFIE9SIEVRVUFMO1NtOzA7T047MjI3QyAwMzM4Ozs7O1k7Ozs7OworMjJFMTtET0VTIE5PVCBTVUNDRUVEIE9SIEVRVUFMO1NtOzA7T047MjI3RCAwMzM4Ozs7O1k7Ozs7OworMjJFMjtOT1QgU1FVQVJFIElNQUdFIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047MjI5MSAwMzM4Ozs7O1k7Ozs7OworMjJFMztOT1QgU1FVQVJFIE9SSUdJTkFMIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047MjI5MiAwMzM4Ozs7O1k7Ozs7OworMjJFNDtTUVVBUkUgSU1BR0UgT0YgT1IgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFNTtTUVVBUkUgT1JJR0lOQUwgT0YgT1IgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFNjtMRVNTLVRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTzs7OzsKKzIyRTc7R1JFQVRFUi1USEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87Ozs7CisyMkU4O1BSRUNFREVTIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTk7U1VDQ0VFRFMgQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFQTtOT1QgTk9STUFMIFNVQkdST1VQIE9GO1NtOzA7T047MjJCMiAwMzM4Ozs7O1k7Ozs7OworMjJFQjtET0VTIE5PVCBDT05UQUlOIEFTIE5PUk1BTCBTVUJHUk9VUDtTbTswO09OOzIyQjMgMDMzODs7OztZOzs7OzsKKzIyRUM7Tk9UIE5PUk1BTCBTVUJHUk9VUCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyQjQgMDMzODs7OztZOzs7OzsKKzIyRUQ7RE9FUyBOT1QgQ09OVEFJTiBBUyBOT1JNQUwgU1VCR1JPVVAgT1IgRVFVQUw7U207MDtPTjsyMkI1IDAzMzg7Ozs7WTs7Ozs7CisyMkVFO1ZFUlRJQ0FMIEVMTElQU0lTO1NtOzA7T047Ozs7O047Ozs7OworMjJFRjtNSURMSU5FIEhPUklaT05UQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkYwO1VQIFJJR0hUIERJQUdPTkFMIEVMTElQU0lTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGMTtET1dOIFJJR0hUIERJQUdPTkFMIEVMTElQU0lTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGMjtFTEVNRU5UIE9GIFdJVEggTE9ORyBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRjM7RUxFTUVOVCBPRiBXSVRIIFZFUlRJQ0FMIEJBUiBBVCBFTkQgT0YgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY0O1NNQUxMIEVMRU1FTlQgT0YgV0lUSCBWRVJUSUNBTCBCQVIgQVQgRU5EIE9GIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGNTtFTEVNRU5UIE9GIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGNjtFTEVNRU5UIE9GIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRjc7U01BTEwgRUxFTUVOVCBPRiBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY4O0VMRU1FTlQgT0YgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRjk7RUxFTUVOVCBPRiBXSVRIIFRXTyBIT1JJWk9OVEFMIFNUUk9LRVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZBO0NPTlRBSU5TIFdJVEggTE9ORyBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRkI7Q09OVEFJTlMgV0lUSCBWRVJUSUNBTCBCQVIgQVQgRU5EIE9GIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGQztTTUFMTCBDT05UQUlOUyBXSVRIIFZFUlRJQ0FMIEJBUiBBVCBFTkQgT0YgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZEO0NPTlRBSU5TIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRkU7U01BTEwgQ09OVEFJTlMgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGRjtaIE5PVEFUSU9OIEJBRyBNRU1CRVJTSElQO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwMDtESUFNRVRFUiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjMwMTtFTEVDVFJJQyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIzMDI7SE9VU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAzO1VQIEFSUk9XSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMDQ7RE9XTiBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA1O1BST0pFQ1RJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA2O1BFUlNQRUNUSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjMwNztXQVZZIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA4O0xFRlQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMDk7UklHSFQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMEE7TEVGVCBGTE9PUjtTbTswO09OOzs7OztZOzs7OzsKKzIzMEI7UklHSFQgRkxPT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBDO0JPVFRPTSBSSUdIVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRDtCT1RUT00gTEVGVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRTtUT1AgUklHSFQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEY7VE9QIExFRlQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMTA7UkVWRVJTRUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzExO1NRVUFSRSBMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjMxMjtBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEzO1NFR01FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE0O1NFQ1RPUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTU7VEVMRVBIT05FIFJFQ09SREVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxNjtQT1NJVElPTiBJTkRJQ0FUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE3O1ZJRVdEQVRBIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMTg7UExBQ0UgT0YgSU5URVJFU1QgU0lHTjtTbzswO09OOzs7OztOO0NPTU1BTkQgS0VZOzs7OworMjMxOTtUVVJORUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFBO1dBVENIO1NvOzA7T047Ozs7O047Ozs7OworMjMxQjtIT1VSR0xBU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFDO1RPUCBMRUZUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUQ7VE9QIFJJR0hUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUU7Qk9UVE9NIExFRlQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRjtCT1RUT00gUklHSFQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMyMDtUT1AgSEFMRiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIzMjE7Qk9UVE9NIEhBTEYgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzIyO0ZST1dOO1NvOzA7T047Ozs7O047Ozs7OworMjMyMztTTUlMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjQ7VVAgQVJST1dIRUFEIEJFVFdFRU4gVFdPIEhPUklaT05UQUwgQkFSUztTbzswO09OOzs7OztOO0VOVEVSIEtFWTs7OzsKKzIzMjU7T1BUSU9OIEtFWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjY7RVJBU0UgVE8gVEhFIFJJR0hUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBSSUdIVCBLRVk7Ozs7CisyMzI3O1ggSU4gQSBSRUNUQU5HTEUgQk9YO1NvOzA7T047Ozs7O047Q0xFQVIgS0VZOzs7OworMjMyODtLRVlCT0FSRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMjk7TEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUO1BzOzA7T047MzAwODs7OztZO0JSQTs7OzsKKzIzMkE7UklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzMwMDk7Ozs7WTtLRVQ7Ozs7CisyMzJCO0VSQVNFIFRPIFRIRSBMRUZUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBMRUZUIEtFWTs7OzsKKzIzMkM7QkVOWkVORSBSSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjMyRDtDWUxJTkRSSUNJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJFO0FMTCBBUk9VTkQtUFJPRklMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMkY7U1lNTUVUUlk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMwO1RPVEFMIFJVTk9VVDtTbzswO09OOzs7OztOOzs7OzsKKzIzMzE7RElNRU5TSU9OIE9SSUdJTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzI7Q09OSUNBTCBUQVBFUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzM7U0xPUEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM0O0NPVU5URVJCT1JFO1NvOzA7T047Ozs7O047Ozs7OworMjMzNTtDT1VOVEVSU0lOSztTbzswO09OOzs7OztOOzs7OzsKKzIzMzY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEktQkVBTTtTbzswO0w7Ozs7O047Ozs7OworMjMzNztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1FVSVNIIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzMzg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzMzk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRElWSURFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERJQU1PTkQ7U287MDtMOzs7OztOOzs7OzsKKzIzM0I7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENJUkNMRTtTbzswO0w7Ozs7O047Ozs7OworMjMzRDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEJBQ0tTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNDI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQkFDS1NMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIExFU1MtVEhBTjtTbzswO0w7Ozs7O047Ozs7OworMjM0NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBHUkVBVEVSLVRIQU47U287MDtMOzs7OztOOzs7OzsKKzIzNDU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIExFRlRXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSUdIVFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNDc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTEVGVFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFJJR0hUV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNDk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBCQUNLU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNEE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gVEFDSyBVTkRFUkJBUjtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNEI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTFRBIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzRDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERPV04gQ0FSRVQ7U287MDtMOzs7OztOOzs7OzsKKzIzNEQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgREVMVEE7U287MDtMOzs7OztOOzs7OzsKKzIzNEU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gVEFDSyBKT1Q7U287MDtMOzs7OztOOzsqOzs7CisyMzRGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNTA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgVVBXQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM1MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBPVkVSQkFSO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM1MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQIENBUkVUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERFTDtTbzswO0w7Ozs7O047Ozs7OworMjM1NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBKT1Q7U287MDtMOzs7OztOOzsqOzs7CisyMzU2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM1NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBET1dOV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNTg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVT1RFIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUxUQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRElBTU9ORCBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSk9UIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFNIT0UgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVU9URSBRVUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgU1RBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBDT0xPTjtTbzswO0w7Ozs7O047Ozs7OworMjM2MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBESUFFUkVTSVM7U287MDtMOzs7OztOOzsqOzs7CisyMzYyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUwgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTVEFSIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSk9UIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBTSE9FIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBMRUZUIFNIT0UgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNjg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFRJTERFIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgR1JFQVRFUi1USEFOIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ09NTUEgQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUwgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFpJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZEO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTVElMRSBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU0VNSUNPTE9OIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIE5PVCBFUVVBTDtTbzswO0w7Ozs7O047Ozs7OworMjM3MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBRVUVTVElPTjtTbzswO0w7Ozs7O047Ozs7OworMjM3MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBDQVJFVCBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM3MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgQ0FSRVQgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNzM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIElPVEE7U287MDtMOzs7OztOOzs7OzsKKzIzNzQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFJITztTbzswO0w7Ozs7O047Ozs7OworMjM3NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgT01FR0E7U287MDtMOzs7OztOOzs7OzsKKzIzNzY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEFMUEhBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBFUFNJTE9OIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJT1RBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBPTUVHQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQUxQSEE7U287MDtMOzs7OztOOzs7OzsKKzIzN0I7Tk9UIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzdDO1JJR0hUIEFOR0xFIFdJVEggRE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIzN0Q7U0hPVUxERVJFRCBPUEVOIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzIzN0U7QkVMTCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzdGO1ZFUlRJQ0FMIExJTkUgV0lUSCBNSURETEUgRE9UO1NvOzA7T047Ozs7O047Ozs7OworMjM4MDtJTlNFUlRJT04gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4MTtDT05USU5VT1VTIFVOREVSTElORSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgyO0RJU0NPTlRJTlVPVVMgVU5ERVJMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODM7RU1QSEFTSVMgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4NDtDT01QT1NJVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg1O1dISVRFIFNRVUFSRSBXSVRIIENFTlRSRSBWRVJUSUNBTCBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjM4NjtFTlRFUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg3O0FMVEVSTkFUSVZFIEtFWSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg4O0hFTE0gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4OTtDSVJDTEVEIEhPUklaT05UQUwgQkFSIFdJVEggTk9UQ0g7U287MDtPTjs7Ozs7Tjs7cGF1c2U7OzsKKzIzOEE7Q0lSQ0xFRCBUUklBTkdMRSBET1dOO1NvOzA7T047Ozs7O047O2JyZWFrOzs7CisyMzhCO0JST0tFTiBDSVJDTEUgV0lUSCBOT1JUSFdFU1QgQVJST1c7U287MDtPTjs7Ozs7Tjs7ZXNjYXBlOzs7CisyMzhDO1VORE8gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4RDtNT05PU1RBQkxFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOEU7SFlTVEVSRVNJUyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzhGO09QRU4tQ0lSQ1VJVC1PVVRQVVQgSC1UWVBFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTA7T1BFTi1DSVJDVUlULU9VVFBVVCBMLVRZUEUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MTtQQVNTSVZFLVBVTEwtRE9XTi1PVVRQVVQgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MjtQQVNTSVZFLVBVTEwtVVAtT1VUUFVUIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTM7RElSRUNUIENVUlJFTlQgU1lNQk9MIEZPUk0gVFdPO1NvOzA7T047Ozs7O047Ozs7OworMjM5NDtTT0ZUV0FSRS1GVU5DVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzk2O0RFQ0lNQUwgU0VQQVJBVE9SIEtFWSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk3O1BSRVZJT1VTIFBBR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk4O05FWFQgUEFHRTtTbzswO09OOzs7OztOOzs7OzsKKzIzOTk7UFJJTlQgU0NSRUVOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOUE7Q0xFQVIgU0NSRUVOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOUI7TEVGVCBQQVJFTlRIRVNJUyBVUFBFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjM5QztMRUZUIFBBUkVOVEhFU0lTIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzOUQ7TEVGVCBQQVJFTlRIRVNJUyBMT1dFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjM5RTtSSUdIVCBQQVJFTlRIRVNJUyBVUFBFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjM5RjtSSUdIVCBQQVJFTlRIRVNJUyBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0EwO1JJR0hUIFBBUkVOVEhFU0lTIExPV0VSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0ExO0xFRlQgU1FVQVJFIEJSQUNLRVQgVVBQRVIgQ09STkVSO1NtOzA7T047Ozs7O047Ozs7OworMjNBMjtMRUZUIFNRVUFSRSBCUkFDS0VUIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTM7TEVGVCBTUVVBUkUgQlJBQ0tFVCBMT1dFUiBDT1JORVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E0O1JJR0hUIFNRVUFSRSBCUkFDS0VUIFVQUEVSIENPUk5FUjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTU7UklHSFQgU1FVQVJFIEJSQUNLRVQgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNBNjtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBMT1dFUiBDT1JORVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E3O0xFRlQgQ1VSTFkgQlJBQ0tFVCBVUFBFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjNBODtMRUZUIENVUkxZIEJSQUNLRVQgTUlERExFIFBJRUNFO1NtOzA7T047Ozs7O047Ozs7OworMjNBOTtMRUZUIENVUkxZIEJSQUNLRVQgTE9XRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQUE7Q1VSTFkgQlJBQ0tFVCBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FCO1JJR0hUIENVUkxZIEJSQUNLRVQgVVBQRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQUM7UklHSFQgQ1VSTFkgQlJBQ0tFVCBNSURETEUgUElFQ0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FEO1JJR0hUIENVUkxZIEJSQUNLRVQgTE9XRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQUU7SU5URUdSQUwgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNBRjtIT1JJWk9OVEFMIExJTkUgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNCMDtVUFBFUiBMRUZUIE9SIExPV0VSIFJJR0hUIENVUkxZIEJSQUNLRVQgU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQjE7VVBQRVIgUklHSFQgT1IgTE9XRVIgTEVGVCBDVVJMWSBCUkFDS0VUIFNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0IyO1NVTU1BVElPTiBUT1A7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0IzO1NVTU1BVElPTiBCT1RUT007U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0I0O1RPUCBTUVVBUkUgQlJBQ0tFVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQjU7Qk9UVE9NIFNRVUFSRSBCUkFDS0VUO1NvOzA7T047Ozs7O047Ozs7OworMjNCNjtCT1RUT00gU1FVQVJFIEJSQUNLRVQgT1ZFUiBUT1AgU1FVQVJFIEJSQUNLRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0I3O1JBRElDQUwgU1lNQk9MIEJPVFRPTTtTbzswO09OOzs7OztOOzs7OzsKKzIzQjg7TEVGVCBWRVJUSUNBTCBCT1ggTElORTtTbzswO09OOzs7OztOOzs7OzsKKzIzQjk7UklHSFQgVkVSVElDQUwgQk9YIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JBO0hPUklaT05UQUwgU0NBTiBMSU5FLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JCO0hPUklaT05UQUwgU0NBTiBMSU5FLTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JDO0hPUklaT05UQUwgU0NBTiBMSU5FLTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JEO0hPUklaT05UQUwgU0NBTiBMSU5FLTk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JFO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgQU5EIFRPUCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQkY7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgQk9UVE9NIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjNDMDtERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIFdJVEggQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNDMTtERU5USVNUUlkgU1lNQk9MIExJR0hUIERPV04gQU5EIEhPUklaT05UQUwgV0lUSCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0MyO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVVAgQU5EIEhPUklaT05UQUwgV0lUSCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0MzO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgV0lUSCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzQ7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMIFdJVEggVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M1O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVVAgQU5EIEhPUklaT05UQUwgV0lUSCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzY7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgV0FWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzc7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMIFdJVEggV0FWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzg7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTCBXSVRIIFdBVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M5O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0E7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0I7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgVE9QIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0NDO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgQU5EIEJPVFRPTSBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjNDRDtTUVVBUkUgRk9PVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0U7UkVUVVJOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0Y7RUpFQ1QgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjNEMDtWRVJUSUNBTCBMSU5FIEVYVEVOU0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzIzRDE7TUVUUklDQUwgQlJFVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0QyO01FVFJJQ0FMIExPTkcgT1ZFUiBTSE9SVDtTbzswO09OOzs7OztOOzs7OzsKKzIzRDM7TUVUUklDQUwgU0hPUlQgT1ZFUiBMT05HO1NvOzA7T047Ozs7O047Ozs7OworMjNENDtNRVRSSUNBTCBMT05HIE9WRVIgVFdPIFNIT1JUUztTbzswO09OOzs7OztOOzs7OzsKKzIzRDU7TUVUUklDQUwgVFdPIFNIT1JUUyBPVkVSIExPTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0Q2O01FVFJJQ0FMIFRXTyBTSE9SVFMgSk9JTkVEO1NvOzA7T047Ozs7O047Ozs7OworMjNENztNRVRSSUNBTCBUUklTRU1FO1NvOzA7T047Ozs7O047Ozs7OworMjNEODtNRVRSSUNBTCBURVRSQVNFTUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0Q5O01FVFJJQ0FMIFBFTlRBU0VNRTtTbzswO09OOzs7OztOOzs7OzsKKzIzREE7RUFSVEggR1JPVU5EO1NvOzA7T047Ozs7O047Ozs7OworMjNEQjtGVVNFO1NvOzA7T047Ozs7O047Ozs7OworMjNEQztUT1AgUEFSRU5USEVTSVM7U207MDtPTjs7Ozs7Tjs7bWF0aGVtYXRpY2FsIHVzZTs7OworMjNERDtCT1RUT00gUEFSRU5USEVTSVM7U207MDtPTjs7Ozs7Tjs7bWF0aGVtYXRpY2FsIHVzZTs7OworMjNERTtUT1AgQ1VSTFkgQlJBQ0tFVDtTbTswO09OOzs7OztOOzttYXRoZW1hdGljYWwgdXNlOzs7CisyM0RGO0JPVFRPTSBDVVJMWSBCUkFDS0VUO1NtOzA7T047Ozs7O047O21hdGhlbWF0aWNhbCB1c2U7OzsKKzIzRTA7VE9QIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7U207MDtPTjs7Ozs7Tjs7bWF0aGVtYXRpY2FsIHVzZTs7OworMjNFMTtCT1RUT00gVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtTbTswO09OOzs7OztOOzttYXRoZW1hdGljYWwgdXNlOzs7CisyM0UyO1dISVRFIFRSQVBFWklVTTtTbzswO09OOzs7OztOOzs7OzsKKzIzRTM7QkVOWkVORSBSSU5HIFdJVEggQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNFNDtTVFJBSUdIVE5FU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0U1O0ZMQVRORVNTO1NvOzA7T047Ozs7O047Ozs7OworMjNFNjtBQyBDVVJSRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjNFNztFTEVDVFJJQ0FMIElOVEVSU0VDVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI0MDA7U1lNQk9MIEZPUiBOVUxMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTlVMTDs7OzsKKzI0MDE7U1lNQk9MIEZPUiBTVEFSVCBPRiBIRUFESU5HO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1RBUlQgT0YgSEVBRElORzs7OzsKKzI0MDI7U1lNQk9MIEZPUiBTVEFSVCBPRiBURVhUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1RBUlQgT0YgVEVYVDs7OzsKKzI0MDM7U1lNQk9MIEZPUiBFTkQgT0YgVEVYVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBURVhUOzs7OworMjQwNDtTWU1CT0wgRk9SIEVORCBPRiBUUkFOU01JU1NJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OOzs7OworMjQwNTtTWU1CT0wgRk9SIEVOUVVJUlk7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTlFVSVJZOzs7OworMjQwNjtTWU1CT0wgRk9SIEFDS05PV0xFREdFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQUNLTk9XTEVER0U7Ozs7CisyNDA3O1NZTUJPTCBGT1IgQkVMTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEJFTEw7Ozs7CisyNDA4O1NZTUJPTCBGT1IgQkFDS1NQQUNFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQkFDS1NQQUNFOzs7OworMjQwOTtTWU1CT0wgRk9SIEhPUklaT05UQUwgVEFCVUxBVElPTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEhPUklaT05UQUwgVEFCVUxBVElPTjs7OzsKKzI0MEE7U1lNQk9MIEZPUiBMSU5FIEZFRUQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBMSU5FIEZFRUQ7Ozs7CisyNDBCO1NZTUJPTCBGT1IgVkVSVElDQUwgVEFCVUxBVElPTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFZFUlRJQ0FMIFRBQlVMQVRJT047Ozs7CisyNDBDO1NZTUJPTCBGT1IgRk9STSBGRUVEO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRk9STSBGRUVEOzs7OworMjQwRDtTWU1CT0wgRk9SIENBUlJJQUdFIFJFVFVSTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIENBUlJJQUdFIFJFVFVSTjs7OzsKKzI0MEU7U1lNQk9MIEZPUiBTSElGVCBPVVQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTSElGVCBPVVQ7Ozs7CisyNDBGO1NZTUJPTCBGT1IgU0hJRlQgSU47U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTSElGVCBJTjs7OzsKKzI0MTA7U1lNQk9MIEZPUiBEQVRBIExJTksgRVNDQVBFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREFUQSBMSU5LIEVTQ0FQRTs7OzsKKzI0MTE7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBPTkU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBPTkU7Ozs7CisyNDEyO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgVFdPO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgVFdPOzs7OworMjQxMztTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIFRIUkVFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgVEhSRUU7Ozs7CisyNDE0O1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgRk9VUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIEZPVVI7Ozs7CisyNDE1O1NZTUJPTCBGT1IgTkVHQVRJVkUgQUNLTk9XTEVER0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBORUdBVElWRSBBQ0tOT1dMRURHRTs7OzsKKzI0MTY7U1lNQk9MIEZPUiBTWU5DSFJPTk9VUyBJRExFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1lOQ0hST05PVVMgSURMRTs7OzsKKzI0MTc7U1lNQk9MIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OIEJMT0NLO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSzs7OzsKKzI0MTg7U1lNQk9MIEZPUiBDQU5DRUw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBDQU5DRUw7Ozs7CisyNDE5O1NZTUJPTCBGT1IgRU5EIE9GIE1FRElVTTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBNRURJVU07Ozs7CisyNDFBO1NZTUJPTCBGT1IgU1VCU1RJVFVURTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNVQlNUSVRVVEU7Ozs7CisyNDFCO1NZTUJPTCBGT1IgRVNDQVBFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRVNDQVBFOzs7OworMjQxQztTWU1CT0wgRk9SIEZJTEUgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRklMRSBTRVBBUkFUT1I7Ozs7CisyNDFEO1NZTUJPTCBGT1IgR1JPVVAgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgR1JPVVAgU0VQQVJBVE9SOzs7OworMjQxRTtTWU1CT0wgRk9SIFJFQ09SRCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBSRUNPUkQgU0VQQVJBVE9SOzs7OworMjQxRjtTWU1CT0wgRk9SIFVOSVQgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgVU5JVCBTRVBBUkFUT1I7Ozs7CisyNDIwO1NZTUJPTCBGT1IgU1BBQ0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTUEFDRTs7OzsKKzI0MjE7U1lNQk9MIEZPUiBERUxFVEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERUxFVEU7Ozs7CisyNDIyO0JMQU5LIFNZTUJPTDtTbzswO09OOzs7OztOO0JMQU5LOzs7OworMjQyMztPUEVOIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzI0MjQ7U1lNQk9MIEZPUiBORVdMSU5FO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTkVXTElORTs7OzsKKzI0MjU7U1lNQk9MIEZPUiBERUxFVEUgRk9STSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDI2O1NZTUJPTCBGT1IgU1VCU1RJVFVURSBGT1JNIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzI0NDA7T0NSIEhPT0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQxO09DUiBDSEFJUjtTbzswO09OOzs7OztOOzs7OzsKKzI0NDI7T0NSIEZPUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQzO09DUiBJTlZFUlRFRCBGT1JLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NDtPQ1IgQkVMVCBCVUNLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ1O09DUiBCT1cgVElFO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NjtPQ1IgQlJBTkNIIEJBTksgSURFTlRJRklDQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ3O09DUiBBTU9VTlQgT0YgQ0hFQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ4O09DUiBEQVNIO1NvOzA7T047Ozs7O047Ozs7OworMjQ0OTtPQ1IgQ1VTVE9NRVIgQUNDT1VOVCBOVU1CRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDRBO09DUiBET1VCTEUgQkFDS1NMQVNIO1NvOzA7T047Ozs7O047Ozs7OworMjQ2MDtDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzxjaXJjbGU+IDAwMzE7OzE7MTtOOzs7OzsKKzI0NjE7Q0lSQ0xFRCBESUdJVCBUV087Tm87MDtPTjs8Y2lyY2xlPiAwMDMyOzsyOzI7Tjs7Ozs7CisyNDYyO0NJUkNMRUQgRElHSVQgVEhSRUU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzOzszOzM7Tjs7Ozs7CisyNDYzO0NJUkNMRUQgRElHSVQgRk9VUjtObzswO09OOzxjaXJjbGU+IDAwMzQ7OzQ7NDtOOzs7OzsKKzI0NjQ7Q0lSQ0xFRCBESUdJVCBGSVZFO05vOzA7T047PGNpcmNsZT4gMDAzNTs7NTs1O047Ozs7OworMjQ2NTtDSVJDTEVEIERJR0lUIFNJWDtObzswO09OOzxjaXJjbGU+IDAwMzY7OzY7NjtOOzs7OzsKKzI0NjY7Q0lSQ0xFRCBESUdJVCBTRVZFTjtObzswO09OOzxjaXJjbGU+IDAwMzc7Ozc7NztOOzs7OzsKKzI0Njc7Q0lSQ0xFRCBESUdJVCBFSUdIVDtObzswO09OOzxjaXJjbGU+IDAwMzg7Ozg7ODtOOzs7OzsKKzI0Njg7Q0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047PGNpcmNsZT4gMDAzOTs7OTs5O047Ozs7OworMjQ2OTtDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzA7OzsxMDtOOzs7OzsKKzI0NkE7Q0lSQ0xFRCBOVU1CRVIgRUxFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDMxOzs7MTE7Tjs7Ozs7CisyNDZCO0NJUkNMRUQgTlVNQkVSIFRXRUxWRTtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzMjs7OzEyO047Ozs7OworMjQ2QztDSVJDTEVEIE5VTUJFUiBUSElSVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzMzs7OzEzO047Ozs7OworMjQ2RDtDSVJDTEVEIE5VTUJFUiBGT1VSVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzNDs7OzE0O047Ozs7OworMjQ2RTtDSVJDTEVEIE5VTUJFUiBGSUZURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDM1Ozs7MTU7Tjs7Ozs7CisyNDZGO0NJUkNMRUQgTlVNQkVSIFNJWFRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzY7OzsxNjtOOzs7OzsKKzI0NzA7Q0lSQ0xFRCBOVU1CRVIgU0VWRU5URUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDM3Ozs7MTc7Tjs7Ozs7CisyNDcxO0NJUkNMRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDM4Ozs7MTg7Tjs7Ozs7CisyNDcyO0NJUkNMRUQgTlVNQkVSIE5JTkVURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDM5Ozs7MTk7Tjs7Ozs7CisyNDczO0NJUkNMRUQgTlVNQkVSIFRXRU5UWTtObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzMDs7OzIwO047Ozs7OworMjQ3NDtQQVJFTlRIRVNJWkVEIERJR0lUIE9ORTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDI5OzsxOzE7Tjs7Ozs7CisyNDc1O1BBUkVOVEhFU0laRUQgRElHSVQgVFdPO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMyIDAwMjk7OzI7MjtOOzs7OzsKKzI0NzY7UEFSRU5USEVTSVpFRCBESUdJVCBUSFJFRTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMyAwMDI5OzszOzM7Tjs7Ozs7CisyNDc3O1BBUkVOVEhFU0laRUQgRElHSVQgRk9VUjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzNCAwMDI5Ozs0OzQ7Tjs7Ozs7CisyNDc4O1BBUkVOVEhFU0laRUQgRElHSVQgRklWRTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzNSAwMDI5Ozs1OzU7Tjs7Ozs7CisyNDc5O1BBUkVOVEhFU0laRUQgRElHSVQgU0lYO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM2IDAwMjk7OzY7NjtOOzs7OzsKKzI0N0E7UEFSRU5USEVTSVpFRCBESUdJVCBTRVZFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzNyAwMDI5Ozs3Ozc7Tjs7Ozs7CisyNDdCO1BBUkVOVEhFU0laRUQgRElHSVQgRUlHSFQ7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzggMDAyOTs7ODs4O047Ozs7OworMjQ3QztQQVJFTlRIRVNJWkVEIERJR0lUIE5JTkU7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzkgMDAyOTs7OTs5O047Ozs7OworMjQ3RDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBURU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMCAwMDI5Ozs7MTA7Tjs7Ozs7CisyNDdFO1BBUkVOVEhFU0laRUQgTlVNQkVSIEVMRVZFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMxIDAwMjk7OzsxMTtOOzs7OzsKKzI0N0Y7UEFSRU5USEVTSVpFRCBOVU1CRVIgVFdFTFZFO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzIgMDAyOTs7OzEyO047Ozs7OworMjQ4MDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBUSElSVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMzIDAwMjk7OzsxMztOOzs7OzsKKzI0ODE7UEFSRU5USEVTSVpFRCBOVU1CRVIgRk9VUlRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNCAwMDI5Ozs7MTQ7Tjs7Ozs7CisyNDgyO1BBUkVOVEhFU0laRUQgTlVNQkVSIEZJRlRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNSAwMDI5Ozs7MTU7Tjs7Ozs7CisyNDgzO1BBUkVOVEhFU0laRUQgTlVNQkVSIFNJWFRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNiAwMDI5Ozs7MTY7Tjs7Ozs7CisyNDg0O1BBUkVOVEhFU0laRUQgTlVNQkVSIFNFVkVOVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM3IDAwMjk7OzsxNztOOzs7OzsKKzI0ODU7UEFSRU5USEVTSVpFRCBOVU1CRVIgRUlHSFRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzOCAwMDI5Ozs7MTg7Tjs7Ozs7CisyNDg2O1BBUkVOVEhFU0laRUQgTlVNQkVSIE5JTkVURUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzkgMDAyOTs7OzE5O047Ozs7OworMjQ4NztQQVJFTlRIRVNJWkVEIE5VTUJFUiBUV0VOVFk7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzIgMDAzMCAwMDI5Ozs7MjA7Tjs7Ozs7CisyNDg4O0RJR0lUIE9ORSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMkU7OzE7MTtOO0RJR0lUIE9ORSBQRVJJT0Q7Ozs7CisyNDg5O0RJR0lUIFRXTyBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMyIDAwMkU7OzI7MjtOO0RJR0lUIFRXTyBQRVJJT0Q7Ozs7CisyNDhBO0RJR0lUIFRIUkVFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzMgMDAyRTs7MzszO047RElHSVQgVEhSRUUgUEVSSU9EOzs7OworMjQ4QjtESUdJVCBGT1VSIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzQgMDAyRTs7NDs0O047RElHSVQgRk9VUiBQRVJJT0Q7Ozs7CisyNDhDO0RJR0lUIEZJVkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNSAwMDJFOzs1OzU7TjtESUdJVCBGSVZFIFBFUklPRDs7OzsKKzI0OEQ7RElHSVQgU0lYIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzYgMDAyRTs7Njs2O047RElHSVQgU0lYIFBFUklPRDs7OzsKKzI0OEU7RElHSVQgU0VWRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNyAwMDJFOzs3Ozc7TjtESUdJVCBTRVZFTiBQRVJJT0Q7Ozs7CisyNDhGO0RJR0lUIEVJR0hUIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzggMDAyRTs7ODs4O047RElHSVQgRUlHSFQgUEVSSU9EOzs7OworMjQ5MDtESUdJVCBOSU5FIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzkgMDAyRTs7OTs5O047RElHSVQgTklORSBQRVJJT0Q7Ozs7CisyNDkxO05VTUJFUiBURU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMwIDAwMkU7OzsxMDtOO05VTUJFUiBURU4gUEVSSU9EOzs7OworMjQ5MjtOVU1CRVIgRUxFVkVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMSAwMDJFOzs7MTE7TjtOVU1CRVIgRUxFVkVOIFBFUklPRDs7OzsKKzI0OTM7TlVNQkVSIFRXRUxWRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzIgMDAyRTs7OzEyO047TlVNQkVSIFRXRUxWRSBQRVJJT0Q7Ozs7CisyNDk0O05VTUJFUiBUSElSVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzMgMDAyRTs7OzEzO047TlVNQkVSIFRISVJURUVOIFBFUklPRDs7OzsKKzI0OTU7TlVNQkVSIEZPVVJURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNCAwMDJFOzs7MTQ7TjtOVU1CRVIgRk9VUlRFRU4gUEVSSU9EOzs7OworMjQ5NjtOVU1CRVIgRklGVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzUgMDAyRTs7OzE1O047TlVNQkVSIEZJRlRFRU4gUEVSSU9EOzs7OworMjQ5NztOVU1CRVIgU0lYVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzYgMDAyRTs7OzE2O047TlVNQkVSIFNJWFRFRU4gUEVSSU9EOzs7OworMjQ5ODtOVU1CRVIgU0VWRU5URUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNyAwMDJFOzs7MTc7TjtOVU1CRVIgU0VWRU5URUVOIFBFUklPRDs7OzsKKzI0OTk7TlVNQkVSIEVJR0hURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzOCAwMDJFOzs7MTg7TjtOVU1CRVIgRUlHSFRFRU4gUEVSSU9EOzs7OworMjQ5QTtOVU1CRVIgTklORVRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM5IDAwMkU7OzsxOTtOO05VTUJFUiBOSU5FVEVFTiBQRVJJT0Q7Ozs7CisyNDlCO05VTUJFUiBUV0VOVFkgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMiAwMDMwIDAwMkU7OzsyMDtOO05VTUJFUiBUV0VOVFkgUEVSSU9EOzs7OworMjQ5QztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjEgMDAyOTs7OztOOzs7OzsKKzI0OUQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYyIDAwMjk7Ozs7Tjs7Ozs7CisyNDlFO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEM7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MyAwMDI5Ozs7O047Ozs7OworMjQ5RjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBEO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjQgMDAyOTs7OztOOzs7OzsKKzI0QTA7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY1IDAwMjk7Ozs7Tjs7Ozs7CisyNEExO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEY7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NiAwMDI5Ozs7O047Ozs7OworMjRBMjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBHO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjcgMDAyOTs7OztOOzs7OzsKKzI0QTM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY4IDAwMjk7Ozs7Tjs7Ozs7CisyNEE0O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEk7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2OSAwMDI5Ozs7O047Ozs7OworMjRBNTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBKO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkEgMDAyOTs7OztOOzs7OzsKKzI0QTY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZCIDAwMjk7Ozs7Tjs7Ozs7CisyNEE3O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEw7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QyAwMDI5Ozs7O047Ozs7OworMjRBODtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBNO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkQgMDAyOTs7OztOOzs7OzsKKzI0QTk7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZFIDAwMjk7Ozs7Tjs7Ozs7CisyNEFBO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE87U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RiAwMDI5Ozs7O047Ozs7OworMjRBQjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBQO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzAgMDAyOTs7OztOOzs7OzsKKzI0QUM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcxIDAwMjk7Ozs7Tjs7Ozs7CisyNEFEO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFI7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MiAwMDI5Ozs7O047Ozs7OworMjRBRTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBTO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzMgMDAyOTs7OztOOzs7OzsKKzI0QUY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc0IDAwMjk7Ozs7Tjs7Ozs7CisyNEIwO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFU7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NSAwMDI5Ozs7O047Ozs7OworMjRCMTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBWO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzYgMDAyOTs7OztOOzs7OzsKKzI0QjI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc3IDAwMjk7Ozs7Tjs7Ozs7CisyNEIzO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFg7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3OCAwMDI5Ozs7O047Ozs7OworMjRCNDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBZO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzkgMDAyOTs7OztOOzs7OzsKKzI0QjU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDdBIDAwMjk7Ozs7Tjs7Ozs7CisyNEI2O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtTbzswO0w7PGNpcmNsZT4gMDA0MTs7OztOOzs7OzI0RDA7CisyNEI3O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtTbzswO0w7PGNpcmNsZT4gMDA0Mjs7OztOOzs7OzI0RDE7CisyNEI4O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQztTbzswO0w7PGNpcmNsZT4gMDA0Mzs7OztOOzs7OzI0RDI7CisyNEI5O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtTbzswO0w7PGNpcmNsZT4gMDA0NDs7OztOOzs7OzI0RDM7CisyNEJBO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtTbzswO0w7PGNpcmNsZT4gMDA0NTs7OztOOzs7OzI0RDQ7CisyNEJCO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtTbzswO0w7PGNpcmNsZT4gMDA0Njs7OztOOzs7OzI0RDU7CisyNEJDO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRztTbzswO0w7PGNpcmNsZT4gMDA0Nzs7OztOOzs7OzI0RDY7CisyNEJEO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtTbzswO0w7PGNpcmNsZT4gMDA0ODs7OztOOzs7OzI0RDc7CisyNEJFO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtTbzswO0w7PGNpcmNsZT4gMDA0OTs7OztOOzs7OzI0RDg7CisyNEJGO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtTbzswO0w7PGNpcmNsZT4gMDA0QTs7OztOOzs7OzI0RDk7CisyNEMwO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSztTbzswO0w7PGNpcmNsZT4gMDA0Qjs7OztOOzs7OzI0REE7CisyNEMxO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtTbzswO0w7PGNpcmNsZT4gMDA0Qzs7OztOOzs7OzI0REI7CisyNEMyO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtTbzswO0w7PGNpcmNsZT4gMDA0RDs7OztOOzs7OzI0REM7CisyNEMzO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtTbzswO0w7PGNpcmNsZT4gMDA0RTs7OztOOzs7OzI0REQ7CisyNEM0O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTztTbzswO0w7PGNpcmNsZT4gMDA0Rjs7OztOOzs7OzI0REU7CisyNEM1O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtTbzswO0w7PGNpcmNsZT4gMDA1MDs7OztOOzs7OzI0REY7CisyNEM2O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtTbzswO0w7PGNpcmNsZT4gMDA1MTs7OztOOzs7OzI0RTA7CisyNEM3O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtTbzswO0w7PGNpcmNsZT4gMDA1Mjs7OztOOzs7OzI0RTE7CisyNEM4O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUztTbzswO0w7PGNpcmNsZT4gMDA1Mzs7OztOOzs7OzI0RTI7CisyNEM5O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtTbzswO0w7PGNpcmNsZT4gMDA1NDs7OztOOzs7OzI0RTM7CisyNENBO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtTbzswO0w7PGNpcmNsZT4gMDA1NTs7OztOOzs7OzI0RTQ7CisyNENCO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtTbzswO0w7PGNpcmNsZT4gMDA1Njs7OztOOzs7OzI0RTU7CisyNENDO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVztTbzswO0w7PGNpcmNsZT4gMDA1Nzs7OztOOzs7OzI0RTY7CisyNENEO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtTbzswO0w7PGNpcmNsZT4gMDA1ODs7OztOOzs7OzI0RTc7CisyNENFO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtTbzswO0w7PGNpcmNsZT4gMDA1OTs7OztOOzs7OzI0RTg7CisyNENGO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtTbzswO0w7PGNpcmNsZT4gMDA1QTs7OztOOzs7OzI0RTk7CisyNEQwO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEE7U287MDtMOzxjaXJjbGU+IDAwNjE7Ozs7Tjs7OzI0QjY7OzI0QjYKKzI0RDE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQjtTbzswO0w7PGNpcmNsZT4gMDA2Mjs7OztOOzs7MjRCNzs7MjRCNworMjREMjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBDO1NvOzA7TDs8Y2lyY2xlPiAwMDYzOzs7O047OzsyNEI4OzsyNEI4CisyNEQzO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEQ7U287MDtMOzxjaXJjbGU+IDAwNjQ7Ozs7Tjs7OzI0Qjk7OzI0QjkKKzI0RDQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRTtTbzswO0w7PGNpcmNsZT4gMDA2NTs7OztOOzs7MjRCQTs7MjRCQQorMjRENTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBGO1NvOzA7TDs8Y2lyY2xlPiAwMDY2Ozs7O047OzsyNEJCOzsyNEJCCisyNEQ2O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEc7U287MDtMOzxjaXJjbGU+IDAwNjc7Ozs7Tjs7OzI0QkM7OzI0QkMKKzI0RDc7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSDtTbzswO0w7PGNpcmNsZT4gMDA2ODs7OztOOzs7MjRCRDs7MjRCRAorMjREODtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBJO1NvOzA7TDs8Y2lyY2xlPiAwMDY5Ozs7O047OzsyNEJFOzsyNEJFCisyNEQ5O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEo7U287MDtMOzxjaXJjbGU+IDAwNkE7Ozs7Tjs7OzI0QkY7OzI0QkYKKzI0REE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSztTbzswO0w7PGNpcmNsZT4gMDA2Qjs7OztOOzs7MjRDMDs7MjRDMAorMjREQjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBMO1NvOzA7TDs8Y2lyY2xlPiAwMDZDOzs7O047OzsyNEMxOzsyNEMxCisyNERDO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE07U287MDtMOzxjaXJjbGU+IDAwNkQ7Ozs7Tjs7OzI0QzI7OzI0QzIKKzI0REQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTjtTbzswO0w7PGNpcmNsZT4gMDA2RTs7OztOOzs7MjRDMzs7MjRDMworMjRERTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBPO1NvOzA7TDs8Y2lyY2xlPiAwMDZGOzs7O047OzsyNEM0OzsyNEM0CisyNERGO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFA7U287MDtMOzxjaXJjbGU+IDAwNzA7Ozs7Tjs7OzI0QzU7OzI0QzUKKzI0RTA7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUTtTbzswO0w7PGNpcmNsZT4gMDA3MTs7OztOOzs7MjRDNjs7MjRDNgorMjRFMTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBSO1NvOzA7TDs8Y2lyY2xlPiAwMDcyOzs7O047OzsyNEM3OzsyNEM3CisyNEUyO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFM7U287MDtMOzxjaXJjbGU+IDAwNzM7Ozs7Tjs7OzI0Qzg7OzI0QzgKKzI0RTM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVDtTbzswO0w7PGNpcmNsZT4gMDA3NDs7OztOOzs7MjRDOTs7MjRDOQorMjRFNDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBVO1NvOzA7TDs8Y2lyY2xlPiAwMDc1Ozs7O047OzsyNENBOzsyNENBCisyNEU1O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFY7U287MDtMOzxjaXJjbGU+IDAwNzY7Ozs7Tjs7OzI0Q0I7OzI0Q0IKKzI0RTY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVztTbzswO0w7PGNpcmNsZT4gMDA3Nzs7OztOOzs7MjRDQzs7MjRDQworMjRFNztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBYO1NvOzA7TDs8Y2lyY2xlPiAwMDc4Ozs7O047OzsyNENEOzsyNENECisyNEU4O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFk7U287MDtMOzxjaXJjbGU+IDAwNzk7Ozs7Tjs7OzI0Q0U7OzI0Q0UKKzI0RTk7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWjtTbzswO0w7PGNpcmNsZT4gMDA3QTs7OztOOzs7MjRDRjs7MjRDRgorMjRFQTtDSVJDTEVEIERJR0lUIFpFUk87Tm87MDtPTjs8Y2lyY2xlPiAwMDMwOzswOzA7Tjs7Ozs7CisyNEVCO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIEVMRVZFTjtObzswO09OOzs7OzExO047Ozs7OworMjRFQztORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBUV0VMVkU7Tm87MDtPTjs7OzsxMjtOOzs7OzsKKzI0RUQ7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtPTjs7OzsxMztOOzs7OzsKKzI0RUU7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgRk9VUlRFRU47Tm87MDtPTjs7OzsxNDtOOzs7OzsKKzI0RUY7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgRklGVEVFTjtObzswO09OOzs7OzE1O047Ozs7OworMjRGMDtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBTSVhURUVOO05vOzA7T047Ozs7MTY7Tjs7Ozs7CisyNEYxO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFNFVkVOVEVFTjtObzswO09OOzs7OzE3O047Ozs7OworMjRGMjtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBFSUdIVEVFTjtObzswO09OOzs7OzE4O047Ozs7OworMjRGMztORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBOSU5FVEVFTjtObzswO09OOzs7OzE5O047Ozs7OworMjRGNDtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBUV0VOVFk7Tm87MDtPTjs7OzsyMDtOOzs7OzsKKzI0RjU7RE9VQkxFIENJUkNMRUQgRElHSVQgT05FO05vOzA7T047OzsxOzE7Tjs7Ozs7CisyNEY2O0RPVUJMRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Ozs7OworMjRGNztET1VCTEUgQ0lSQ0xFRCBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047Ozs7OworMjRGODtET1VCTEUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7Tjs7Ozs7CisyNEY5O0RPVUJMRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOOzs7OzsKKzI0RkE7RE9VQkxFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7Tjs7Ozs7CisyNEZCO0RPVUJMRSBDSVJDTEVEIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7Tjs7Ozs7CisyNEZDO0RPVUJMRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7Tjs7Ozs7CisyNEZEO0RPVUJMRSBDSVJDTEVEIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOOzs7OzsKKzI0RkU7RE9VQkxFIENJUkNMRUQgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047Ozs7OworMjRGRjtORUdBVElWRSBDSVJDTEVEIERJR0lUIFpFUk87Tm87MDtPTjs7OzA7MDtOOzs7OzsKKzI1MDA7Qk9YIERSQVdJTkdTIExJR0hUIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBIT1JJWk9OVEFMOzs7OworMjUwMTtCT1ggRFJBV0lOR1MgSEVBVlkgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIEhPUklaT05UQUw7Ozs7CisyNTAyO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMOzs7OworMjUwMztCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTDs7OzsKKzI1MDQ7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBUUklQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwNTtCT1ggRFJBV0lOR1MgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA2O0JPWCBEUkFXSU5HUyBMSUdIVCBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwNztCT1ggRFJBV0lOR1MgSEVBVlkgVFJJUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MDg7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwOTtCT1ggRFJBV0lOR1MgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTBBO0JPWCBEUkFXSU5HUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQjtCT1ggRFJBV0lOR1MgSEVBVlkgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MEM7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTBEO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUwRTtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgUklHSFQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTEwO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgTEVGVDs7OzsKKzI1MTE7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBMRUZUIEhFQVZZOzs7OworMjUxMjtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgTElHSFQ7Ozs7CisyNTEzO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgTEVGVDs7OzsKKzI1MTQ7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQIEFORCBSSUdIVDs7OzsKKzI1MTU7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MTY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MTc7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBSSUdIVDs7OzsKKzI1MTg7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIExFRlQ7Ozs7CisyNTE5O0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZOzs7OworMjUxQTtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIExFRlQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MUI7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIExFRlQ7Ozs7CisyNTFDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTFEO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTFFO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUxRjtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDs7OzsKKzI1MjA7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MjE7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7Ozs7CisyNTIyO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZOzs7OworMjUyMztCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUwgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIFJJR0hUOzs7OworMjUyNDtCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUwgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDs7OzsKKzI1MjU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTI2O0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDs7OzsKKzI1Mjc7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUyODtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIExFRlQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1Mjk7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUyQTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTJCO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV04gQU5EIEhPUklaT05UQUw7Ozs7CisyNTJEO0JPWCBEUkFXSU5HUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1MkU7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyRjtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTMwO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1MzE7Qk9YIERSQVdJTkdTIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZOzs7OworMjUzMjtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTMzO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzQ7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTM1O0JPWCBEUkFXSU5HUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUzNjtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1Mzc7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTM4O0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzOTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTs7OzsKKzI1M0E7Qk9YIERSQVdJTkdTIExFRlQgTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7Ozs7CisyNTNCO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMOzs7OworMjUzQztCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1M0Q7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNFO0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBWRVJUSUNBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUOzs7OworMjUzRjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1NDA7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgRE9XTiBIT1JJWk9OVEFMIExJR0hUOzs7OworMjU0MTtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFVQIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQyO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjU0MztCT1ggRFJBV0lOR1MgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTQ0O0JPWCBEUkFXSU5HUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDs7OzsKKzI1NDU7Qk9YIERSQVdJTkdTIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjU0NjtCT1ggRFJBV0lOR1MgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTQ3O0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgVVAgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1NDg7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgRE9XTiBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0OTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEE7Qk9YIERSQVdJTkdTIExFRlQgTElHSFQgQU5EIFJJR0hUIFZFUlRJQ0FMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7Ozs7CisyNTRCO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU0QztCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPVUJMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTREO0JPWCBEUkFXSU5HUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEU7Qk9YIERSQVdJTkdTIExJR0hUIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTRGO0JPWCBEUkFXSU5HUyBIRUFWWSBET1VCTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjU1MDtCT1ggRFJBV0lOR1MgRE9VQkxFIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgSE9SSVpPTlRBTDs7OzsKKzI1NTE7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTDs7OzsKKzI1NTI7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1MztCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7Ozs7CisyNTU0O0JPWCBEUkFXSU5HUyBET1VCTEUgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTU1O0JPWCBEUkFXSU5HUyBET1dOIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTU2O0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7Ozs7CisyNTU3O0JPWCBEUkFXSU5HUyBET1VCTEUgRE9XTiBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBMRUZUOzs7OworMjU1ODtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTs7OzsKKzI1NTk7Qk9YIERSQVdJTkdTIFVQIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7Ozs7CisyNTVBO0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFVQIEFORCBSSUdIVDs7OzsKKzI1NUI7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFOzs7OworMjU1QztCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7Ozs7CisyNTVEO0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIExFRlQ7Ozs7CisyNTVFO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1RjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NjA7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVkVSVElDQUwgQU5EIFJJR0hUOzs7OworMjU2MTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTYyO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NjM7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgTEVGVDs7OzsKKzI1NjQ7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NjU7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTs7OzsKKzI1NjY7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7Ozs7CisyNTY3O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1Njg7Qk9YIERSQVdJTkdTIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2OTtCT1ggRFJBV0lOR1MgRE9VQkxFIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFVQIEFORCBIT1JJWk9OVEFMOzs7OworMjU2QTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7Ozs7CisyNTZCO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTs7OzsKKzI1NkM7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1NkQ7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBET1dOIEFORCBSSUdIVDs7OzsKKzI1NkU7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7Ozs7CisyNTZGO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIExFRlQ7Ozs7CisyNTcwO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIFVQIEFORCBSSUdIVDs7OzsKKzI1NzE7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBESUFHT05BTCBVUFBFUiBSSUdIVCBUTyBMT1dFUiBMRUZUOzs7OworMjU3MjtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIExFRlQgVE8gTE9XRVIgUklHSFQ7Ozs7CisyNTczO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBDUk9TUztTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIENST1NTOzs7OworMjU3NDtCT1ggRFJBV0lOR1MgTElHSFQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQ7Ozs7CisyNTc1O0JPWCBEUkFXSU5HUyBMSUdIVCBVUDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQOzs7OworMjU3NjtCT1ggRFJBV0lOR1MgTElHSFQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBSSUdIVDs7OzsKKzI1Nzc7Qk9YIERSQVdJTkdTIExJR0hUIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOOzs7OworMjU3ODtCT1ggRFJBV0lOR1MgSEVBVlkgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIExFRlQ7Ozs7CisyNTc5O0JPWCBEUkFXSU5HUyBIRUFWWSBVUDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQOzs7OworMjU3QTtCT1ggRFJBV0lOR1MgSEVBVlkgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBSSUdIVDs7OzsKKzI1N0I7Qk9YIERSQVdJTkdTIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOOzs7OworMjU3QztCT1ggRFJBV0lOR1MgTElHSFQgTEVGVCBBTkQgSEVBVlkgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDs7OzsKKzI1N0Q7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBIRUFWWSBET1dOO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIEhFQVZZIERPV047Ozs7CisyNTdFO0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUIEFORCBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUOzs7OworMjU3RjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExJR0hUIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjs7OzsKKzI1ODA7VVBQRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODE7TE9XRVIgT05FIEVJR0hUSCBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODI7TE9XRVIgT05FIFFVQVJURVIgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTgzO0xPV0VSIFRIUkVFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg0O0xPV0VSIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg1O0xPV0VSIEZJVkUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODY7TE9XRVIgVEhSRUUgUVVBUlRFUlMgQkxPQ0s7U287MDtPTjs7Ozs7TjtMT1dFUiBUSFJFRSBRVUFSVEVSIEJMT0NLOzs7OworMjU4NztMT1dFUiBTRVZFTiBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4ODtGVUxMIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4OTtMRUZUIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThBO0xFRlQgVEhSRUUgUVVBUlRFUlMgQkxPQ0s7U287MDtPTjs7Ozs7TjtMRUZUIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNThCO0xFRlQgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4QztMRUZUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThEO0xFRlQgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEU7TEVGVCBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEY7TEVGVCBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5MDtSSUdIVCBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5MTtMSUdIVCBTSEFERTtTbzswO09OOzs7OztOOzs7OzsKKzI1OTI7TUVESVVNIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MztEQVJLIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5NDtVUFBFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5NTtSSUdIVCBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5NjtRVUFEUkFOVCBMT1dFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjU5NztRVUFEUkFOVCBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OTg7UVVBRFJBTlQgVVBQRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OTk7UVVBRFJBTlQgVVBQRVIgTEVGVCBBTkQgTE9XRVIgTEVGVCBBTkQgTE9XRVIgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlBO1FVQURSQU5UIFVQUEVSIExFRlQgQU5EIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5QjtRVUFEUkFOVCBVUFBFUiBMRUZUIEFORCBVUFBFUiBSSUdIVCBBTkQgTE9XRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUM7UVVBRFJBTlQgVVBQRVIgTEVGVCBBTkQgVVBQRVIgUklHSFQgQU5EIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5RDtRVUFEUkFOVCBVUFBFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUU7UVVBRFJBTlQgVVBQRVIgUklHSFQgQU5EIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlGO1FVQURSQU5UIFVQUEVSIFJJR0hUIEFORCBMT1dFUiBMRUZUIEFORCBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTA7QkxBQ0sgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBMTtXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEyO1dISVRFIFNRVUFSRSBXSVRIIFJPVU5ERUQgQ09STkVSUztTbzswO09OOzs7OztOOzs7OzsKKzI1QTM7V0hJVEUgU1FVQVJFIENPTlRBSU5JTkcgQkxBQ0sgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBNDtTUVVBUkUgV0lUSCBIT1JJWk9OVEFMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE1O1NRVUFSRSBXSVRIIFZFUlRJQ0FMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE2O1NRVUFSRSBXSVRIIE9SVEhPR09OQUwgQ1JPU1NIQVRDSCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNztTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE4O1NRVUFSRSBXSVRIIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTk7U1FVQVJFIFdJVEggRElBR09OQUwgQ1JPU1NIQVRDSCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBQTtCTEFDSyBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFCO1dISVRFIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUM7QkxBQ0sgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRDtXSElURSBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFFO0JMQUNLIFZFUlRJQ0FMIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUY7V0hJVEUgVkVSVElDQUwgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVCMDtCTEFDSyBQQVJBTExFTE9HUkFNO1NvOzA7T047Ozs7O047Ozs7OworMjVCMTtXSElURSBQQVJBTExFTE9HUkFNO1NvOzA7T047Ozs7O047Ozs7OworMjVCMjtCTEFDSyBVUC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFVQIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCMztXSElURSBVUC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCNDtCTEFDSyBVUC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFVQIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCNTtXSElURSBVUC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCNjtCTEFDSyBSSUdIVC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCNztXSElURSBSSUdIVC1QT0lOVElORyBUUklBTkdMRTtTbTswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCODtCTEFDSyBSSUdIVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCOTtXSElURSBSSUdIVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCQTtCTEFDSyBSSUdIVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QkI7V0hJVEUgUklHSFQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUJDO0JMQUNLIERPV04tUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBET1dOIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCRDtXSElURSBET1dOLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgRE9XTiBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QkU7QkxBQ0sgRE9XTi1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIERPV04gUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUJGO1dISVRFIERPV04tUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDMDtCTEFDSyBMRUZULVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QzE7V0hJVEUgTEVGVC1QT0lOVElORyBUUklBTkdMRTtTbTswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUMyO0JMQUNLIExFRlQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDMztXSElURSBMRUZULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzQ7QkxBQ0sgTEVGVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVDNTtXSElURSBMRUZULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUM2O0JMQUNLIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM3O1dISVRFIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM4O1dISVRFIERJQU1PTkQgQ09OVEFJTklORyBCTEFDSyBTTUFMTCBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDOTtGSVNIRVlFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQTtMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQjtXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNDO0RPVFRFRCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNEO0NJUkNMRSBXSVRIIFZFUlRJQ0FMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNFO0JVTExTRVlFO1NvOzA7T047Ozs7O047Ozs7OworMjVDRjtCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQwO0NJUkNMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDE7Q0lSQ0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDI7Q0lSQ0xFIFdJVEggTE9XRVIgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDM7Q0lSQ0xFIFdJVEggVVBQRVIgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDQ7Q0lSQ0xFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ1O0NJUkNMRSBXSVRIIEFMTCBCVVQgVVBQRVIgTEVGVCBRVUFEUkFOVCBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDY7TEVGVCBIQUxGIEJMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDc7UklHSFQgSEFMRiBCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ4O0lOVkVSU0UgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjVEOTtJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REE7VVBQRVIgSEFMRiBJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REI7TE9XRVIgSEFMRiBJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REM7VVBQRVIgTEVGVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUREO1VQUEVSIFJJR0hUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REU7TE9XRVIgUklHSFQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERjtMT1dFUiBMRUZUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1RTA7VVBQRVIgSEFMRiBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUxO0xPV0VSIEhBTEYgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMjtCTEFDSyBMT1dFUiBSSUdIVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTM7QkxBQ0sgTE9XRVIgTEVGVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTQ7QkxBQ0sgVVBQRVIgTEVGVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTU7QkxBQ0sgVVBQRVIgUklHSFQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU2O1dISVRFIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RTc7U1FVQVJFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFODtTUVVBUkUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFOTtTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVBO1NRVUFSRSBXSVRIIExPV0VSIFJJR0hUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVCO1dISVRFIFNRVUFSRSBXSVRIIFZFUlRJQ0FMIEJJU0VDVElORyBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjVFQztXSElURSBVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIERPVDtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggRE9UOzs7OworMjVFRDtVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOO1VQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLOzs7OworMjVFRTtVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7TjtVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7Ozs7CisyNUVGO0xBUkdFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RjA7V0hJVEUgU1FVQVJFIFdJVEggVVBQRVIgTEVGVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjE7V0hJVEUgU1FVQVJFIFdJVEggTE9XRVIgTEVGVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjI7V0hJVEUgU1FVQVJFIFdJVEggTE9XRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUYzO1dISVRFIFNRVUFSRSBXSVRIIFVQUEVSIFJJR0hUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNDtXSElURSBDSVJDTEUgV0lUSCBVUFBFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNTtXSElURSBDSVJDTEUgV0lUSCBMT1dFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNjtXSElURSBDSVJDTEUgV0lUSCBMT1dFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1Rjc7V0hJVEUgQ0lSQ0xFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY4O1VQUEVSIExFRlQgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUY5O1VQUEVSIFJJR0hUIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMjVGQTtMT1dFUiBMRUZUIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMjVGQjtXSElURSBNRURJVU0gU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGQztCTEFDSyBNRURJVU0gU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGRDtXSElURSBNRURJVU0gU01BTEwgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGRTtCTEFDSyBNRURJVU0gU01BTEwgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGRjtMT1dFUiBSSUdIVCBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzI2MDA7QkxBQ0sgU1VOIFdJVEggUkFZUztTbzswO09OOzs7OztOOzs7OzsKKzI2MDE7Q0xPVUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAyO1VNQlJFTExBO1NvOzA7T047Ozs7O047Ozs7OworMjYwMztTTk9XTUFOO1NvOzA7T047Ozs7O047Ozs7OworMjYwNDtDT01FVDtTbzswO09OOzs7OztOOzs7OzsKKzI2MDU7QkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDY7V0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDc7TElHSFROSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjYwODtUSFVOREVSU1RPUk07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA5O1NVTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MEE7QVNDRU5ESU5HIE5PREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBCO0RFU0NFTkRJTkcgTk9ERTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEM7Q09OSlVOQ1RJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBEO09QUE9TSVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBFO0JMQUNLIFRFTEVQSE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEY7V0hJVEUgVEVMRVBIT05FO1NvOzA7T047Ozs7O047Ozs7OworMjYxMDtCQUxMT1QgQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjYxMTtCQUxMT1QgQk9YIFdJVEggQ0hFQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjEyO0JBTExPVCBCT1ggV0lUSCBYO1NvOzA7T047Ozs7O047Ozs7OworMjYxMztTQUxUSVJFO1NvOzA7T047Ozs7O047Ozs7OworMjYxNDtVTUJSRUxMQSBXSVRIIFJBSU4gRFJPUFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjE1O0hPVCBCRVZFUkFHRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTY7V0hJVEUgU0hPR0kgUElFQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjE3O0JMQUNLIFNIT0dJIFBJRUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYxODtTSEFNUk9DSztTbzswO09OOzs7OztOOzs7OzsKKzI2MTk7UkVWRVJTRUQgUk9UQVRFRCBGTE9SQUwgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjYxQTtCTEFDSyBMRUZUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxQjtCTEFDSyBSSUdIVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUM7V0hJVEUgTEVGVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUQ7V0hJVEUgVVAgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFFO1dISVRFIFJJR0hUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRjtXSElURSBET1dOIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYyMDtTS1VMTCBBTkQgQ1JPU1NCT05FUztTbzswO09OOzs7OztOOzs7OzsKKzI2MjE7Q0FVVElPTiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjYyMjtSQURJT0FDVElWRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjYyMztCSU9IQVpBUkQgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjQ7Q0FEVUNFVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI1O0FOS0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI2O09SVEhPRE9YIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjYyNztDSEkgUkhPO1NvOzA7T047Ozs7O047Ozs7OworMjYyODtDUk9TUyBPRiBMT1JSQUlORTtTbzswO09OOzs7OztOOzs7OzsKKzI2Mjk7Q1JPU1MgT0YgSkVSVVNBTEVNO1NvOzA7T047Ozs7O047Ozs7OworMjYyQTtTVEFSIEFORCBDUkVTQ0VOVDtTbzswO09OOzs7OztOOzs7OzsKKzI2MkI7RkFSU0kgU1lNQk9MO1NvOzA7T047Ozs7O047U1lNQk9MIE9GIElSQU47Ozs7CisyNjJDO0FESSBTSEFLVEk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJEO0hBTU1FUiBBTkQgU0lDS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjYyRTtQRUFDRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJGO1lJTiBZQU5HO1NvOzA7T047Ozs7O047Ozs7OworMjYzMDtUUklHUkFNIEZPUiBIRUFWRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMxO1RSSUdSQU0gRk9SIExBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMyO1RSSUdSQU0gRk9SIEZJUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMzO1RSSUdSQU0gRk9SIFRIVU5ERVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM0O1RSSUdSQU0gRk9SIFdJTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM1O1RSSUdSQU0gRk9SIFdBVEVSO1NvOzA7T047Ozs7O047Ozs7OworMjYzNjtUUklHUkFNIEZPUiBNT1VOVEFJTjtTbzswO09OOzs7OztOOzs7OzsKKzI2Mzc7VFJJR1JBTSBGT1IgRUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM4O1dIRUVMIE9GIERIQVJNQTtTbzswO09OOzs7OztOOzs7OzsKKzI2Mzk7V0hJVEUgRlJPV05JTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0E7V0hJVEUgU01JTElORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQjtCTEFDSyBTTUlMSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNDO1dISVRFIFNVTiBXSVRIIFJBWVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNEO0ZJUlNUIFFVQVJURVIgTU9PTjtTbzswO09OOzs7OztOOzs7OzsKKzI2M0U7TEFTVCBRVUFSVEVSIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNGO01FUkNVUlk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQwO0ZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjY0MTtFQVJUSDtTbzswO09OOzs7OztOOzs7OzsKKzI2NDI7TUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjY0MztKVVBJVEVSO1NvOzA7T047Ozs7O047Ozs7OworMjY0NDtTQVRVUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ1O1VSQU5VUztTbzswO09OOzs7OztOOzs7OzsKKzI2NDY7TkVQVFVORTtTbzswO09OOzs7OztOOzs7OzsKKzI2NDc7UExVVE87U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ4O0FSSUVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0OTtUQVVSVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRBO0dFTUlOSTtTbzswO09OOzs7OztOOzs7OzsKKzI2NEI7Q0FOQ0VSO1NvOzA7T047Ozs7O047Ozs7OworMjY0QztMRU87U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjREO1ZJUkdPO1NvOzA7T047Ozs7O047Ozs7OworMjY0RTtMSUJSQTtTbzswO09OOzs7OztOOzs7OzsKKzI2NEY7U0NPUlBJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUwO1NBR0lUVEFSSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MTtDQVBSSUNPUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUyO0FRVUFSSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MztQSVNDRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU0O1dISVRFIENIRVNTIEtJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU1O1dISVRFIENIRVNTIFFVRUVOO1NvOzA7T047Ozs7O047Ozs7OworMjY1NjtXSElURSBDSEVTUyBST09LO1NvOzA7T047Ozs7O047Ozs7OworMjY1NztXSElURSBDSEVTUyBCSVNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU4O1dISVRFIENIRVNTIEtOSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NTk7V0hJVEUgQ0hFU1MgUEFXTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NUE7QkxBQ0sgQ0hFU1MgS0lORztTbzswO09OOzs7OztOOzs7OzsKKzI2NUI7QkxBQ0sgQ0hFU1MgUVVFRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVDO0JMQUNLIENIRVNTIFJPT0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVEO0JMQUNLIENIRVNTIEJJU0hPUDtTbzswO09OOzs7OztOOzs7OzsKKzI2NUU7QkxBQ0sgQ0hFU1MgS05JR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjY1RjtCTEFDSyBDSEVTUyBQQVdOO1NvOzA7T047Ozs7O047Ozs7OworMjY2MDtCTEFDSyBTUEFERSBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MTtXSElURSBIRUFSVCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MjtXSElURSBESUFNT05EIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYzO0JMQUNLIENMVUIgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjQ7V0hJVEUgU1BBREUgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjU7QkxBQ0sgSEVBUlQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjY7QkxBQ0sgRElBTU9ORCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NztXSElURSBDTFVCIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY4O0hPVCBTUFJJTkdTO1NvOzA7T047Ozs7O047Ozs7OworMjY2OTtRVUFSVEVSIE5PVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjZBO0VJR0hUSCBOT1RFO1NvOzA7T047Ozs7O047Ozs7OworMjY2QjtCRUFNRUQgRUlHSFRIIE5PVEVTO1NvOzA7T047Ozs7O047QkFSUkVEIEVJR0hUSCBOT1RFUzs7OzsKKzI2NkM7QkVBTUVEIFNJWFRFRU5USCBOT1RFUztTbzswO09OOzs7OztOO0JBUlJFRCBTSVhURUVOVEggTk9URVM7Ozs7CisyNjZEO01VU0lDIEZMQVQgU0lHTjtTbzswO09OOzs7OztOO0ZMQVQ7Ozs7CisyNjZFO01VU0lDIE5BVFVSQUwgU0lHTjtTbzswO09OOzs7OztOO05BVFVSQUw7Ozs7CisyNjZGO01VU0lDIFNIQVJQIFNJR047U207MDtPTjs7Ozs7TjtTSEFSUDs7OzsKKzI2NzA7V0VTVCBTWVJJQUMgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjcxO0VBU1QgU1lSSUFDIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjY3MjtVTklWRVJTQUwgUkVDWUNMSU5HIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2NzM7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS0xIFBMQVNUSUNTO1NvOzA7T047Ozs7O047O3BldGU7OzsKKzI2NzQ7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS0yIFBMQVNUSUNTO1NvOzA7T047Ozs7O047O2hkcGU7OzsKKzI2NzU7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS0zIFBMQVNUSUNTO1NvOzA7T047Ozs7O047O3B2Yzs7OworMjY3NjtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTQgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7bGRwZTs7OworMjY3NztSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTUgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7cHA7OzsKKzI2Nzg7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS02IFBMQVNUSUNTO1NvOzA7T047Ozs7O047O3BzOzs7CisyNjc5O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtNyBQTEFTVElDUztTbzswO09OOzs7OztOOztvdGhlcjs7OworMjY3QTtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBHRU5FUklDIE1BVEVSSUFMUztTbzswO09OOzs7OztOOzs7OzsKKzI2N0I7QkxBQ0sgVU5JVkVSU0FMIFJFQ1lDTElORyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjdDO1JFQ1lDTEVEIFBBUEVSIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2N0Q7UEFSVElBTExZLVJFQ1lDTEVEIFBBUEVSIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2N0U7UEVSTUFORU5UIFBBUEVSIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjdGO1dIRUVMQ0hBSVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY4MDtESUUgRkFDRS0xO1NvOzA7T047Ozs7O047Ozs7OworMjY4MTtESUUgRkFDRS0yO1NvOzA7T047Ozs7O047Ozs7OworMjY4MjtESUUgRkFDRS0zO1NvOzA7T047Ozs7O047Ozs7OworMjY4MztESUUgRkFDRS00O1NvOzA7T047Ozs7O047Ozs7OworMjY4NDtESUUgRkFDRS01O1NvOzA7T047Ozs7O047Ozs7OworMjY4NTtESUUgRkFDRS02O1NvOzA7T047Ozs7O047Ozs7OworMjY4NjtXSElURSBDSVJDTEUgV0lUSCBET1QgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg3O1dISVRFIENJUkNMRSBXSVRIIFRXTyBET1RTO1NvOzA7T047Ozs7O047Ozs7OworMjY4ODtCTEFDSyBDSVJDTEUgV0lUSCBXSElURSBET1QgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg5O0JMQUNLIENJUkNMRSBXSVRIIFRXTyBXSElURSBET1RTO1NvOzA7T047Ozs7O047Ozs7OworMjY4QTtNT05PR1JBTSBGT1IgWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2OEI7TU9OT0dSQU0gRk9SIFlJTjtTbzswO09OOzs7OztOOzs7OzsKKzI2OEM7RElHUkFNIEZPUiBHUkVBVEVSIFlBTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjhEO0RJR1JBTSBGT1IgTEVTU0VSIFlJTjtTbzswO09OOzs7OztOOzs7OzsKKzI2OEU7RElHUkFNIEZPUiBMRVNTRVIgWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2OEY7RElHUkFNIEZPUiBHUkVBVEVSIFlJTjtTbzswO09OOzs7OztOOzs7OzsKKzI2OTA7V0hJVEUgRkxBRztTbzswO09OOzs7OztOOzs7OzsKKzI2OTE7QkxBQ0sgRkxBRztTbzswO09OOzs7OztOOzs7OzsKKzI2OTI7SEFNTUVSIEFORCBQSUNLO1NvOzA7T047Ozs7O047Ozs7OworMjY5MztBTkNIT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk0O0NST1NTRUQgU1dPUkRTO1NvOzA7T047Ozs7O047Ozs7OworMjY5NTtTVEFGRiBPRiBBRVNDVUxBUElVUztTbzswO09OOzs7OztOOzs7OzsKKzI2OTY7U0NBTEVTO1NvOzA7T047Ozs7O047Ozs7OworMjY5NztBTEVNQklDO1NvOzA7T047Ozs7O047Ozs7OworMjY5ODtGTE9XRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk5O0dFQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjlBO1NUQUZGIE9GIEhFUk1FUztTbzswO09OOzs7OztOOzs7OzsKKzI2OUI7QVRPTSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjlDO0ZMRVVSLURFLUxJUztTbzswO09OOzs7OztOOzs7OzsKKzI2QTA7V0FSTklORyBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBMTtISUdIIFZPTFRBR0UgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QTI7RE9VQkxFRCBGRU1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QTM7RE9VQkxFRCBNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkE0O0lOVEVSTE9DS0VEIEZFTUFMRSBBTkQgTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBNTtNQUxFIEFORCBGRU1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QTY7TUFMRSBXSVRIIFNUUk9LRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBNztNQUxFIFdJVEggU1RST0tFIEFORCBNQUxFIEFORCBGRU1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QTg7VkVSVElDQUwgTUFMRSBXSVRIIFNUUk9LRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBOTtIT1JJWk9OVEFMIE1BTEUgV0lUSCBTVFJPS0UgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QUE7TUVESVVNIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI2QUI7TUVESVVNIEJMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI2QUM7TUVESVVNIFNNQUxMIFdISVRFIENJUkNMRTtTbzswO0w7Ozs7O047Ozs7OworMjZBRDtNQVJSSUFHRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkFFO0RJVk9SQ0UgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjZBRjtVTk1BUlJJRUQgUEFSVE5FUlNISVAgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjZCMDtDT0ZGSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkIxO0ZVTkVSQUwgVVJOO1NvOzA7T047Ozs7O047Ozs7OworMjZCMjtORVVURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzAxO1VQUEVSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMjtCTEFDSyBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDM7TE9XRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA0O1dISVRFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNjtURUxFUEhPTkUgTE9DQVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDc7VEFQRSBEUklWRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDg7QUlSUExBTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA5O0VOVkVMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjcwQztWSUNUT1JZIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBEO1dSSVRJTkcgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEU7TE9XRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcwRjtQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEwO1VQUEVSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTE7V0hJVEUgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMjtCTEFDSyBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEzO0NIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE0O0hFQVZZIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE1O01VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE2O0hFQVZZIE1VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE3O0JBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxODtIRUFWWSBCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTk7T1VUTElORUQgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFBO0hFQVZZIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQjtPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxQztIRUFWWSBPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO0hFQVZZIE9QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxRDtMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUU7U0hBRE9XRUQgV0hJVEUgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFGO09VVExJTkVEIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMDtNQUxURVNFIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMTtTVEFSIE9GIERBVklEO1NvOzA7T047Ozs7O047Ozs7OworMjcyMjtGT1VSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjM7Rk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjQ7SEVBVlkgRk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjU7Rk9VUiBDTFVCLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjY7QkxBQ0sgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI3O1dISVRFIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyOTtTVFJFU1MgT1VUTElORUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkE7Q0lSQ0xFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQjtPUEVOIENFTlRSRSBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQkxBQ0sgU1RBUjs7OzsKKzI3MkM7QkxBQ0sgQ0VOVFJFIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7TjtCTEFDSyBDRU5URVIgV0hJVEUgU1RBUjs7OzsKKzI3MkQ7T1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkU7SEVBVlkgT1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkY7UElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzA7U0hBRE9XRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzE7SEVBVlkgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMyO09QRU4gQ0VOVFJFIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQVNURVJJU0s7Ozs7CisyNzMzO0VJR0hUIFNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzQ7RUlHSFQgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNTtFSUdIVCBQT0lOVEVEIFBJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM2O1NJWCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM3O0VJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzg7SEVBVlkgRUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczOTtUV0VMVkUgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczQTtTSVhURUVOIFBPSU5URUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNCO1RFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0M7T1BFTiBDRU5UUkUgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLOzs7OworMjczRDtIRUFWWSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNFO1NJWCBQRVRBTExFRCBCTEFDSyBBTkQgV0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNGO0JMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MDtXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDE7RUlHSFQgUEVUQUxMRUQgT1VUTElORUQgQkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQyO0NJUkNMRUQgT1BFTiBDRU5UUkUgRUlHSFQgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBPUEVOIENFTlRFUiBFSUdIVCBQT0lOVEVEIFNUQVI7Ozs7CisyNzQzO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBQSU5XSEVFTCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NDQ7U05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NTtUSUdIVCBUUklGT0xJQVRFIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDY7SEVBVlkgQ0hFVlJPTiBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ3O1NQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ4O0hFQVZZIFNQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ5O0JBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QTtFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QjtIRUFWWSBFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0RDtTSEFET1dFRCBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRGO0xPV0VSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MDtVUFBFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTE7TE9XRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MjtVUFBFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU2O0JMQUNLIERJQU1PTkQgTUlOVVMgV0hJVEUgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3NTg7TElHSFQgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1OTtNRURJVU0gVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QTtIRUFWWSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVCO0hFQVZZIFNJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVDO0hFQVZZIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUQ7SEVBVlkgRE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUU7SEVBVlkgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MTtDVVJWRUQgU1RFTSBQQVJBR1JBUEggU0lHTiBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjI7SEVBVlkgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjM7SEVBVlkgSEVBUlQgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjQ7SEVBVlkgQkxBQ0sgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY1O1JPVEFURUQgSEVBVlkgQkxBQ0sgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NjtGTE9SQUwgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY3O1JPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3Njg7TUVESVVNIExFRlQgUEFSRU5USEVTSVMgT1JOQU1FTlQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyNzY5O01FRElVTSBSSUdIVCBQQVJFTlRIRVNJUyBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NkE7TUVESVVNIEZMQVRURU5FRCBMRUZUIFBBUkVOVEhFU0lTIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc2QjtNRURJVU0gRkxBVFRFTkVEIFJJR0hUIFBBUkVOVEhFU0lTIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc2QztNRURJVU0gTEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc2RDtNRURJVU0gUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NkU7SEVBVlkgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtQczswO09OOzs7OztZOzs7OzsKKzI3NkY7SEVBVlkgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyNzcwO0hFQVZZIExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQczswO09OOzs7OztZOzs7OzsKKzI3NzE7SEVBVlkgUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NzI7TElHSFQgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc3MztMSUdIVCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc3NDtNRURJVU0gTEVGVCBDVVJMWSBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc3NTtNRURJVU0gUklHSFQgQ1VSTFkgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NzY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE9ORTs7OzsKKzI3Nzc7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRXTzs7OzsKKzI3Nzg7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVEhSRUU7Ozs7CisyNzc5O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRk9VUjs7OzsKKzI3N0E7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGSVZFOzs7OworMjc3QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0lYOzs7OworMjc3QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTRVZFTjs7OzsKKzI3N0Q7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRUlHSFQ7Ozs7CisyNzdFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgTklORTs7OzsKKzI3N0Y7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBOVU1CRVIgVEVOOzs7OworMjc4MDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzgxO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3ODI7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3ODM7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzg0O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4NTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzg2O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzg3O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzg4O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc4OTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OEE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzhCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzhEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzhFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzhGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc5MDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzkxO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3OTI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3OTM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OTQ7SEVBVlkgV0lERS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdJREUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5ODtIRUFWWSBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyNzk5O0hFQVZZIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBSSUdIVCBBUlJPVzs7OzsKKzI3OUE7SEVBVlkgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjc5QjtEUkFGVElORyBQT0lOVCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RFJBRlRJTkcgUE9JTlQgUklHSFQgQVJST1c7Ozs7CisyNzlDO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUIEFSUk9XOzs7OworMjc5RDtUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUU7SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlGO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0EwO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0ExO0JMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTI7VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBMztUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E0O0JMQUNLIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNTtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTldBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV04gQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNjtIRUFWWSBCTEFDSyBDVVJWRUQgVVBXQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBVUCBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E3O1NRVUFUIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtTUVVBVCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTg7SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E5O1JJR0hULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQTtMRUZULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FCO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUM7RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FEO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUU7SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMTtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMztXSElURS1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dISVRFLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjQ7QkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I1O0JMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNjtCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjc7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I4O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCOTtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QkE7VEVBUkRST1AtQkFSQkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtURUFSRFJPUC1CQVJCRUQgUklHSFQgQVJST1c7Ozs7CisyN0JCO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFQgQVJST1c7Ozs7CisyN0JDO1dFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRDtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkU7T1BFTi1PVVRMSU5FRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047T1BFTi1PVVRMSU5FRCBSSUdIVCBBUlJPVzs7OzsKKzI3QzA7VEhSRUUgRElNRU5TSU9OQUwgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0MxO1dISVRFIFRSSUFOR0xFIENPTlRBSU5JTkcgU01BTEwgV0hJVEUgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0MyO1BFUlBFTkRJQ1VMQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0MzO09QRU4gU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjdDNDtPUEVOIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjdDNTtMRUZUIFMtU0hBUEVEIEJBRyBERUxJTUlURVI7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyN0M2O1JJR0hUIFMtU0hBUEVEIEJBRyBERUxJTUlURVI7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyN0M3O09SIFdJVEggRE9UIElOU0lERTtTbTswO09OOzs7OztOOzs7OzsKKzI3Qzg7UkVWRVJTRSBTT0xJRFVTIFBSRUNFRElORyBTVUJTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0M5O1NVUEVSU0VUIFBSRUNFRElORyBTT0xJRFVTO1NtOzA7T047Ozs7O047Ozs7OworMjdDQTtWRVJUSUNBTCBCQVIgV0lUSCBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI3RDA7V0hJVEUgRElBTU9ORCBXSVRIIENFTlRSRUQgRE9UO1NtOzA7T047Ozs7O047Ozs7OworMjdEMTtBTkQgV0lUSCBET1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0QyO0VMRU1FTlQgT0YgT1BFTklORyBVUFdBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMjdEMztMT1dFUiBSSUdIVCBDT1JORVIgV0lUSCBET1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0Q0O1VQUEVSIExFRlQgQ09STkVSIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMjdENTtMRUZUIE9VVEVSIEpPSU47U207MDtPTjs7Ozs7WTs7Ozs7CisyN0Q2O1JJR0hUIE9VVEVSIEpPSU47U207MDtPTjs7Ozs7WTs7Ozs7CisyN0Q3O0ZVTEwgT1VURVIgSk9JTjtTbTswO09OOzs7OztOOzs7OzsKKzI3RDg7TEFSR0UgVVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzI3RDk7TEFSR0UgRE9XTiBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjdEQTtMRUZUIEFORCBSSUdIVCBET1VCTEUgVFVSTlNUSUxFO1NtOzA7T047Ozs7O047Ozs7OworMjdEQjtMRUZUIEFORCBSSUdIVCBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjdEQztMRUZUIE1VTFRJTUFQO1NtOzA7T047Ozs7O1k7Ozs7OworMjdERDtMT05HIFJJR0hUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0RFO0xPTkcgTEVGVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdERjtVUCBUQUNLIFdJVEggQ0lSQ0xFIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjdFMDtMT1pFTkdFIERJVklERUQgQlkgSE9SSVpPTlRBTCBSVUxFO1NtOzA7T047Ozs7O047Ozs7OworMjdFMTtXSElURSBDT05DQVZFLVNJREVEIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0UyO1dISVRFIENPTkNBVkUtU0lERUQgRElBTU9ORCBXSVRIIExFRlRXQVJEUyBUSUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdFMztXSElURSBDT05DQVZFLVNJREVEIERJQU1PTkQgV0lUSCBSSUdIVFdBUkRTIFRJQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0U0O1dISVRFIFNRVUFSRSBXSVRIIExFRlRXQVJEUyBUSUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdFNTtXSElURSBTUVVBUkUgV0lUSCBSSUdIVFdBUkRTIFRJQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0U2O01BVEhFTUFUSUNBTCBMRUZUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjdFNztNQVRIRU1BVElDQUwgUklHSFQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyN0U4O01BVEhFTUFUSUNBTCBMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyN0U5O01BVEhFTUFUSUNBTCBSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjdFQTtNQVRIRU1BVElDQUwgTEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI3RUI7TUFUSEVNQVRJQ0FMIFJJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjdGMDtVUFdBUkRTIFFVQURSVVBMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjE7RE9XTldBUkRTIFFVQURSVVBMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjI7QU5USUNMT0NLV0lTRSBHQVBQRUQgQ0lSQ0xFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGMztDTE9DS1dJU0UgR0FQUEVEIENJUkNMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjQ7UklHSFQgQVJST1cgV0lUSCBDSVJDTEVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y1O0xPTkcgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGNjtMT05HIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y3O0xPTkcgTEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3Rjg7TE9ORyBMRUZUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGOTtMT05HIFJJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGQTtMT05HIExFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGQjtMT05HIExFRlRXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI3RkM7TE9ORyBSSUdIVFdBUkRTIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjdGRDtMT05HIExFRlRXQVJEUyBET1VCTEUgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZFO0xPTkcgUklHSFRXQVJEUyBET1VCTEUgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZGO0xPTkcgUklHSFRXQVJEUyBTUVVJR0dMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI4MDA7QlJBSUxMRSBQQVRURVJOIEJMQU5LO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODAxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE7U287MDtMOzs7OztOOzs7OzsKKzI4MDI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjtTbzswO0w7Ozs7O047Ozs7OworMjgwMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjtTbzswO0w7Ozs7O047Ozs7OworMjgwNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODA1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODA2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODA3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMztTbzswO0w7Ozs7O047Ozs7OworMjgwODtCUkFJTExFIFBBVFRFUk4gRE9UUy00O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODA5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODBBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODBCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDtTbzswO0w7Ozs7O047Ozs7OworMjgwQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDtTbzswO0w7Ozs7O047Ozs7OworMjgwRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ7U287MDtMOzs7OztOOzs7OzsKKzI4MEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODBGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ7U287MDtMOzs7OztOOzs7OzsKKzI4MTA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTtTbzswO0w7Ozs7O047Ozs7OworMjgxMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTtTbzswO0w7Ozs7O047Ozs7OworMjgxMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTtTbzswO0w7Ozs7O047Ozs7OworMjgxMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU7U287MDtMOzs7OztOOzs7OzsKKzI4MTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU7U287MDtMOzs7OztOOzs7OzsKKzI4MTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODE2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTtTbzswO0w7Ozs7O047Ozs7OworMjgxNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODE4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODE5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTtTbzswO0w7Ozs7O047Ozs7OworMjgxQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTtTbzswO0w7Ozs7O047Ozs7OworMjgxQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTtTbzswO0w7Ozs7O047Ozs7OworMjgxRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODFGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODIwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY7U287MDtMOzs7OztOOzs7OzsKKzI4MjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY7U287MDtMOzs7OztOOzs7OzsKKzI4MjI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjY7U287MDtMOzs7OztOOzs7OzsKKzI4MjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODI0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODI1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNjtTbzswO0w7Ozs7O047Ozs7OworMjgyNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY7U287MDtMOzs7OztOOzs7OzsKKzI4Mjc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjtTbzswO0w7Ozs7O047Ozs7OworMjgyODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NjtTbzswO0w7Ozs7O047Ozs7OworMjgyOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY7U287MDtMOzs7OztOOzs7OzsKKzI4MkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODJCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDY7U287MDtMOzs7OztOOzs7OzsKKzI4MkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODJEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY7U287MDtMOzs7OztOOzs7OzsKKzI4MkU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NjtTbzswO0w7Ozs7O047Ozs7OworMjgyRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NjtTbzswO0w7Ozs7O047Ozs7OworMjgzMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01NjtTbzswO0w7Ozs7O047Ozs7OworMjgzMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTY7U287MDtMOzs7OztOOzs7OzsKKzI4MzI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODMzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY7U287MDtMOzs7OztOOzs7OzsKKzI4MzQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODM1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY7U287MDtMOzs7OztOOzs7OzsKKzI4MzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY7U287MDtMOzs7OztOOzs7OzsKKzI4Mzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODNCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODNDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY7U287MDtMOzs7OztOOzs7OzsKKzI4M0Q7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTY7U287MDtMOzs7OztOOzs7OzsKKzI4M0U7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY7U287MDtMOzs7OztOOzs7OzsKKzI4M0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTc7U287MDtMOzs7OztOOzs7OzsKKzI4NDE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTc7U287MDtMOzs7OztOOzs7OzsKKzI4NDI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjc7U287MDtMOzs7OztOOzs7OzsKKzI4NDM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQ0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQ1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNztTbzswO0w7Ozs7O047Ozs7OworMjg0NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzc7U287MDtMOzs7OztOOzs7OzsKKzI4NDc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNztTbzswO0w7Ozs7O047Ozs7OworMjg0ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NztTbzswO0w7Ozs7O047Ozs7OworMjg0OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NEE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODRCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NEM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODREO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NztTbzswO0w7Ozs7O047Ozs7OworMjg0RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NztTbzswO0w7Ozs7O047Ozs7OworMjg1MDtCUkFJTExFIFBBVFRFUk4gRE9UUy01NztTbzswO0w7Ozs7O047Ozs7OworMjg1MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODUzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODU1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1NztTbzswO0w7Ozs7O047Ozs7OworMjg1NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1NztTbzswO0w7Ozs7O047Ozs7OworMjg1ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg1QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODVCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODVDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NUU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODYwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODYxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE2NztTbzswO0w7Ozs7O047Ozs7OworMjg2MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjc7U287MDtMOzs7OztOOzs7OzsKKzI4NjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2NztTbzswO0w7Ozs7O047Ozs7OworMjg2NDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNjc7U287MDtMOzs7OztOOzs7OzsKKzI4NjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2NztTbzswO0w7Ozs7O047Ozs7OworMjg2NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODY3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODY4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg2OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODZBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg2RDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg2RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg2RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NzA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODcxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NzI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3NDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODc1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODc2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODc3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODc5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODdBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODdCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3RDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4N0U7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODdGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4ODA7QlJBSUxMRSBQQVRURVJOIERPVFMtODtTbzswO0w7Ozs7O047Ozs7OworMjg4MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xODtTbzswO0w7Ozs7O047Ozs7OworMjg4MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yODtTbzswO0w7Ozs7O047Ozs7OworMjg4MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjg7U287MDtMOzs7OztOOzs7OzsKKzI4ODQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzg7U287MDtMOzs7OztOOzs7OzsKKzI4ODU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODg2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzODtTbzswO0w7Ozs7O047Ozs7OworMjg4NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODg4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODg5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0ODtTbzswO0w7Ozs7O047Ozs7OworMjg4QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDg7U287MDtMOzs7OztOOzs7OzsKKzI4OEI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0ODtTbzswO0w7Ozs7O047Ozs7OworMjg4QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDg7U287MDtMOzs7OztOOzs7OzsKKzI4OEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0ODtTbzswO0w7Ozs7O047Ozs7OworMjg4RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODhGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODkwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODkxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5NDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODk3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODk4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODlBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTg7U287MDtMOzs7OztOOzs7OzsKKzI4OUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTg7U287MDtMOzs7OztOOzs7OzsKKzI4OUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5RDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTg7U287MDtMOzs7OztOOzs7OzsKKzI4QTA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEEyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEE0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEE2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEE5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEFEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEFFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEFGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEIzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEI0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QjY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4Qjc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEI4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4Qjk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEJDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEJEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QkY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhDMDtCUkFJTExFIFBBVFRFUk4gRE9UUy03ODtTbzswO0w7Ozs7O047Ozs7OworMjhDMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNzg7U287MDtMOzs7OztOOzs7OzsKKzI4QzI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEMzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNzg7U287MDtMOzs7OztOOzs7OzsKKzI4QzQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEM1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNzg7U287MDtMOzs7OztOOzs7OzsKKzI4QzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDODtCUkFJTExFIFBBVFRFUk4gRE9UUy00Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Qzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOENCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOENDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Q0Q7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Q0U7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Q0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhENTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhENjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhENztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4REM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4REQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOERFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhERjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEUwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEUyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEVFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEYwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RjI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEY0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEY1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Rjc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEZCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEZEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RkU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjkwMDtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTAxO1JJR0hUV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTAyO0xFRlRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTAzO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwNDtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MDU7UklHSFRXQVJEUyBUV08tSEVBREVEIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjkwNjtMRUZUV0FSRFMgRE9VQkxFIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjkwNztSSUdIVFdBUkRTIERPVUJMRSBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5MDg7RE9XTldBUkRTIEFSUk9XIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA5O1VQV0FSRFMgQVJST1cgV0lUSCBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MEE7VVBXQVJEUyBUUklQTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBCO0RPV05XQVJEUyBUUklQTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBDO0xFRlRXQVJEUyBET1VCTEUgREFTSCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MEQ7UklHSFRXQVJEUyBET1VCTEUgREFTSCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MEU7TEVGVFdBUkRTIFRSSVBMRSBEQVNIIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkwRjtSSUdIVFdBUkRTIFRSSVBMRSBEQVNIIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkxMDtSSUdIVFdBUkRTIFRXTy1IRUFERUQgVFJJUExFIERBU0ggQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTExO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBET1RURUQgU1RFTTtTbTswO09OOzs7OztOOzs7OzsKKzI5MTI7VVBXQVJEUyBBUlJPVyBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTEzO0RPV05XQVJEUyBBUlJPVyBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTE0O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkxNTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggVEFJTCBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTE2O1JJR0hUV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBXSVRIIFRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTE3O1JJR0hUV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBXSVRIIFRBSUwgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTE4O1JJR0hUV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBXSVRIIFRBSUwgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkxOTtMRUZUV0FSRFMgQVJST1ctVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUE7UklHSFRXQVJEUyBBUlJPVy1UQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxQjtMRUZUV0FSRFMgRE9VQkxFIEFSUk9XLVRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTFDO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XLVRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTFEO0xFRlRXQVJEUyBBUlJPVyBUTyBCTEFDSyBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjkxRTtSSUdIVFdBUkRTIEFSUk9XIFRPIEJMQUNLIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTFGO0xFRlRXQVJEUyBBUlJPVyBGUk9NIEJBUiBUTyBCTEFDSyBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjkyMDtSSUdIVFdBUkRTIEFSUk9XIEZST00gQkFSIFRPIEJMQUNLIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTIxO05PUlRIIFdFU1QgQU5EIFNPVVRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTIyO05PUlRIIEVBU1QgQU5EIFNPVVRIIFdFU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTIzO05PUlRIIFdFU1QgQVJST1cgV0lUSCBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjkyNDtOT1JUSCBFQVNUIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzI5MjU7U09VVEggRUFTVCBBUlJPVyBXSVRIIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTI2O1NPVVRIIFdFU1QgQVJST1cgV0lUSCBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjkyNztOT1JUSCBXRVNUIEFSUk9XIEFORCBOT1JUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyODtOT1JUSCBFQVNUIEFSUk9XIEFORCBTT1VUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyOTtTT1VUSCBFQVNUIEFSUk9XIEFORCBTT1VUSCBXRVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyQTtTT1VUSCBXRVNUIEFSUk9XIEFORCBOT1JUSCBXRVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyQjtSSVNJTkcgRElBR09OQUwgQ1JPU1NJTkcgRkFMTElORyBESUFHT05BTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MkM7RkFMTElORyBESUFHT05BTCBDUk9TU0lORyBSSVNJTkcgRElBR09OQUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJEO1NPVVRIIEVBU1QgQVJST1cgQ1JPU1NJTkcgTk9SVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MkU7Tk9SVEggRUFTVCBBUlJPVyBDUk9TU0lORyBTT1VUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyRjtGQUxMSU5HIERJQUdPTkFMIENST1NTSU5HIE5PUlRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTMwO1JJU0lORyBESUFHT05BTCBDUk9TU0lORyBTT1VUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzMTtOT1JUSCBFQVNUIEFSUk9XIENST1NTSU5HIE5PUlRIIFdFU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTMyO05PUlRIIFdFU1QgQVJST1cgQ1JPU1NJTkcgTk9SVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MzM7V0FWRSBBUlJPVyBQT0lOVElORyBESVJFQ1RMWSBSSUdIVDtTbTswO09OOzs7OztOOzs7OzsKKzI5MzQ7QVJST1cgUE9JTlRJTkcgUklHSFRXQVJEUyBUSEVOIENVUlZJTkcgVVBXQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzI5MzU7QVJST1cgUE9JTlRJTkcgUklHSFRXQVJEUyBUSEVOIENVUlZJTkcgRE9XTldBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMjkzNjtBUlJPVyBQT0lOVElORyBET1dOV0FSRFMgVEhFTiBDVVJWSU5HIExFRlRXQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzI5Mzc7QVJST1cgUE9JTlRJTkcgRE9XTldBUkRTIFRIRU4gQ1VSVklORyBSSUdIVFdBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMjkzODtSSUdIVC1TSURFIEFSQyBDTE9DS1dJU0UgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM5O0xFRlQtU0lERSBBUkMgQU5USUNMT0NLV0lTRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5M0E7VE9QIEFSQyBBTlRJQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzQjtCT1RUT00gQVJDIEFOVElDTE9DS1dJU0UgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTNDO1RPUCBBUkMgQ0xPQ0tXSVNFIEFSUk9XIFdJVEggTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTNEO1RPUCBBUkMgQU5USUNMT0NLV0lTRSBBUlJPVyBXSVRIIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTNFO0xPV0VSIFJJR0hUIFNFTUlDSVJDVUxBUiBDTE9DS1dJU0UgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTNGO0xPV0VSIExFRlQgU0VNSUNJUkNVTEFSIEFOVElDTE9DS1dJU0UgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQwO0FOVElDTE9DS1dJU0UgQ0xPU0VEIENJUkNMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDE7Q0xPQ0tXSVNFIENMT1NFRCBDSVJDTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQyO1JJR0hUV0FSRFMgQVJST1cgQUJPVkUgU0hPUlQgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0MztMRUZUV0FSRFMgQVJST1cgQUJPVkUgU0hPUlQgUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDQ7U0hPUlQgUklHSFRXQVJEUyBBUlJPVyBBQk9WRSBMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ1O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBQTFVTIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0NjtMRUZUV0FSRFMgQVJST1cgV0lUSCBQTFVTIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0NztSSUdIVFdBUkRTIEFSUk9XIFRIUk9VR0ggWDtTbTswO09OOzs7OztOOzs7OzsKKzI5NDg7TEVGVCBSSUdIVCBBUlJPVyBUSFJPVUdIIFNNQUxMIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5NDk7VVBXQVJEUyBUV08tSEVBREVEIEFSUk9XIEZST00gU01BTEwgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjk0QTtMRUZUIEJBUkIgVVAgUklHSFQgQkFSQiBET1dOIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTRCO0xFRlQgQkFSQiBET1dOIFJJR0hUIEJBUkIgVVAgSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NEM7VVAgQkFSQiBSSUdIVCBET1dOIEJBUkIgTEVGVCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0RDtVUCBCQVJCIExFRlQgRE9XTiBCQVJCIFJJR0hUIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTRFO0xFRlQgQkFSQiBVUCBSSUdIVCBCQVJCIFVQIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTRGO1VQIEJBUkIgUklHSFQgRE9XTiBCQVJCIFJJR0hUIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTUwO0xFRlQgQkFSQiBET1dOIFJJR0hUIEJBUkIgRE9XTiBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk1MTtVUCBCQVJCIExFRlQgRE9XTiBCQVJCIExFRlQgSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTI7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTM7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTU0O1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1NTtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1NjtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTU3O1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTU4O1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTU5O0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUE7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1QjtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1QztVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1RDtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTVFO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1RjtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTYwO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NjE7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTYyO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NjM7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEJFU0lERSBVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUO1NtOzA7T047Ozs7O047Ozs7OworMjk2NDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEFCT1ZFIFJJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NjU7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgQkVTSURFIERPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDtTbTswO09OOzs7OztOOzs7OzsKKzI5NjY7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEFCT1ZFIFJJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVA7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY3O0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEFCT1ZFIFJJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTjtTbTswO09OOzs7OztOOzs7OzsKKzI5Njg7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVA7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY5O1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBBQk9WRSBMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NkE7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEFCT1ZFIExPTkcgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzI5NkI7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gQkVMT1cgTE9ORyBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjk2QztSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEFCT1ZFIExPTkcgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzI5NkQ7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEJFTE9XIExPTkcgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzI5NkU7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEJFU0lERSBET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZGO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEJFU0lERSBVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUO1NtOzA7T047Ozs7O047Ozs7OworMjk3MDtSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBST1VOREVEIEhFQUQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTcxO0VRVUFMUyBTSUdOIEFCT1ZFIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTcyO1RJTERFIE9QRVJBVE9SIEFCT1ZFIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTczO0xFRlRXQVJEUyBBUlJPVyBBQk9WRSBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NzQ7UklHSFRXQVJEUyBBUlJPVyBBQk9WRSBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NzU7UklHSFRXQVJEUyBBUlJPVyBBQk9WRSBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc2O0xFU1MtVEhBTiBBQk9WRSBMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc3O0xFRlRXQVJEUyBBUlJPVyBUSFJPVUdIIExFU1MtVEhBTjtTbTswO09OOzs7OztOOzs7OzsKKzI5Nzg7R1JFQVRFUi1USEFOIEFCT1ZFIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc5O1NVQlNFVCBBQk9WRSBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3QTtMRUZUV0FSRFMgQVJST1cgVEhST1VHSCBTVUJTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdCO1NVUEVSU0VUIEFCT1ZFIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5N0M7TEVGVCBGSVNIIFRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdEO1JJR0hUIEZJU0ggVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5N0U7VVAgRklTSCBUQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjk3RjtET1dOIEZJU0ggVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5ODA7VFJJUExFIFZFUlRJQ0FMIEJBUiBERUxJTUlURVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTgxO1ogTk9UQVRJT04gU1BPVDtTbTswO09OOzs7OztOOzs7OzsKKzI5ODI7WiBOT1RBVElPTiBUWVBFIENPTE9OO1NtOzA7T047Ozs7O047Ozs7OworMjk4MztMRUZUIFdISVRFIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTg0O1JJR0hUIFdISVRFIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTg1O0xFRlQgV0hJVEUgUEFSRU5USEVTSVM7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTg2O1JJR0hUIFdISVRFIFBBUkVOVEhFU0lTO1BlOzA7T047Ozs7O1k7Ozs7OworMjk4NztaIE5PVEFUSU9OIExFRlQgSU1BR0UgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5ODg7WiBOT1RBVElPTiBSSUdIVCBJTUFHRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk4OTtaIE5PVEFUSU9OIExFRlQgQklORElORyBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4QTtaIE5PVEFUSU9OIFJJR0hUIEJJTkRJTkcgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5OEI7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFVOREVSQkFSO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4QztSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFVOREVSQkFSO1BlOzA7T047Ozs7O1k7Ozs7OworMjk4RDtMRUZUIFNRVUFSRSBCUkFDS0VUIFdJVEggVElDSyBJTiBUT1AgQ09STkVSO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4RTtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFRJQ0sgSU4gQk9UVE9NIENPUk5FUjtQZTswO09OOzs7OztZOzs7OzsKKzI5OEY7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFRJQ0sgSU4gQk9UVE9NIENPUk5FUjtQczswO09OOzs7OztZOzs7OzsKKzI5OTA7UklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBUSUNLIElOIFRPUCBDT1JORVI7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTkxO0xFRlQgQU5HTEUgQlJBQ0tFVCBXSVRIIERPVDtQczswO09OOzs7OztZOzs7OzsKKzI5OTI7UklHSFQgQU5HTEUgQlJBQ0tFVCBXSVRIIERPVDtQZTswO09OOzs7OztZOzs7OzsKKzI5OTM7TEVGVCBBUkMgTEVTUy1USEFOIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTk0O1JJR0hUIEFSQyBHUkVBVEVSLVRIQU4gQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5OTU7RE9VQkxFIExFRlQgQVJDIEdSRUFURVItVEhBTiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk5NjtET1VCTEUgUklHSFQgQVJDIExFU1MtVEhBTiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk5NztMRUZUIEJMQUNLIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTk4O1JJR0hUIEJMQUNLIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTk5O0RPVFRFRCBGRU5DRTtTbTswO09OOzs7OztOOzs7OzsKKzI5OUE7VkVSVElDQUwgWklHWkFHIExJTkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTlCO01FQVNVUkVEIEFOR0xFIE9QRU5JTkcgTEVGVDtTbTswO09OOzs7OztZOzs7OzsKKzI5OUM7UklHSFQgQU5HTEUgVkFSSUFOVCBXSVRIIFNRVUFSRTtTbTswO09OOzs7OztZOzs7OzsKKzI5OUQ7TUVBU1VSRUQgUklHSFQgQU5HTEUgV0lUSCBET1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyOTlFO0FOR0xFIFdJVEggUyBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOTlGO0FDVVRFIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBMDtTUEhFUklDQUwgQU5HTEUgT1BFTklORyBMRUZUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBMTtTUEhFUklDQUwgQU5HTEUgT1BFTklORyBVUDtTbTswO09OOzs7OztZOzs7OzsKKzI5QTI7VFVSTkVEIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBMztSRVZFUlNFRCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI5QTQ7QU5HTEUgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzI5QTU7UkVWRVJTRUQgQU5HTEUgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzI5QTY7T0JMSVFVRSBBTkdMRSBPUEVOSU5HIFVQO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBNztPQkxJUVVFIEFOR0xFIE9QRU5JTkcgRE9XTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QTg7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgVVAgQU5EIFJJR0hUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBOTtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBVUCBBTkQgTEVGVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QUE7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgRE9XTiBBTkQgUklHSFQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFCO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIERPV04gQU5EIExFRlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFDO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIFJJR0hUIEFORCBVUDtTbTswO09OOzs7OztZOzs7OzsKKzI5QUQ7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgTEVGVCBBTkQgVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFFO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIFJJR0hUIEFORCBET1dOO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBRjtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBMRUZUIEFORCBET1dOO1NtOzA7T047Ozs7O1k7Ozs7OworMjlCMDtSRVZFUlNFRCBFTVBUWSBTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUIxO0VNUFRZIFNFVCBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUIyO0VNUFRZIFNFVCBXSVRIIFNNQUxMIENJUkNMRSBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzI5QjM7RU1QVFkgU0VUIFdJVEggUklHSFQgQVJST1cgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUI0O0VNUFRZIFNFVCBXSVRIIExFRlQgQVJST1cgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUI1O0NJUkNMRSBXSVRIIEhPUklaT05UQUwgQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjlCNjtDSVJDTEVEIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5Qjc7Q0lSQ0xFRCBQQVJBTExFTDtTbTswO09OOzs7OztOOzs7OzsKKzI5Qjg7Q0lSQ0xFRCBSRVZFUlNFIFNPTElEVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUI5O0NJUkNMRUQgUEVSUEVORElDVUxBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5QkE7Q0lSQ0xFIERJVklERUQgQlkgSE9SSVpPTlRBTCBCQVIgQU5EIFRPUCBIQUxGIERJVklERUQgQlkgVkVSVElDQUwgQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjlCQjtDSVJDTEUgV0lUSCBTVVBFUklNUE9TRUQgWDtTbTswO09OOzs7OztOOzs7OzsKKzI5QkM7Q0lSQ0xFRCBBTlRJQ0xPQ0tXSVNFLVJPVEFURUQgRElWSVNJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzI5QkQ7VVAgQVJST1cgVEhST1VHSCBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJFO0NJUkNMRUQgV0hJVEUgQlVMTEVUO1NtOzA7T047Ozs7O047Ozs7OworMjlCRjtDSVJDTEVEIEJVTExFVDtTbTswO09OOzs7OztOOzs7OzsKKzI5QzA7Q0lSQ0xFRCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyOUMxO0NJUkNMRUQgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDMjtDSVJDTEUgV0lUSCBTTUFMTCBDSVJDTEUgVE8gVEhFIFJJR0hUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDMztDSVJDTEUgV0lUSCBUV08gSE9SSVpPTlRBTCBTVFJPS0VTIFRPIFRIRSBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QzQ7U1FVQVJFRCBSSVNJTkcgRElBR09OQUwgU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUM1O1NRVUFSRUQgRkFMTElORyBESUFHT05BTCBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzI5QzY7U1FVQVJFRCBBU1RFUklTSztTbTswO09OOzs7OztOOzs7OzsKKzI5Qzc7U1FVQVJFRCBTTUFMTCBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUM4O1NRVUFSRUQgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjlDOTtUV08gSk9JTkVEIFNRVUFSRVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUNBO1RSSUFOR0xFIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjlDQjtUUklBTkdMRSBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjlDQztTIElOIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMjlDRDtUUklBTkdMRSBXSVRIIFNFUklGUyBBVCBCT1RUT007U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUNFO1JJR0hUIFRSSUFOR0xFIEFCT1ZFIExFRlQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUNGO0xFRlQgVFJJQU5HTEUgQkVTSURFIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztZOzs7OzsKKzI5RDA7VkVSVElDQUwgQkFSIEJFU0lERSBSSUdIVCBUUklBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI5RDE7Qk9XVElFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjlEMjtCT1dUSUUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjlEMztCTEFDSyBCT1dUSUU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUQ0O1RJTUVTIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjlENTtUSU1FUyBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQ2O1dISVRFIEhPVVJHTEFTUztTbTswO09OOzs7OztOOzs7OzsKKzI5RDc7QkxBQ0sgSE9VUkdMQVNTO1NtOzA7T047Ozs7O047Ozs7OworMjlEODtMRUZUIFdJR0dMWSBGRU5DRTtQczswO09OOzs7OztZOzs7OzsKKzI5RDk7UklHSFQgV0lHR0xZIEZFTkNFO1BlOzA7T047Ozs7O1k7Ozs7OworMjlEQTtMRUZUIERPVUJMRSBXSUdHTFkgRkVOQ0U7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOURCO1JJR0hUIERPVUJMRSBXSUdHTFkgRkVOQ0U7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOURDO0lOQ09NUExFVEUgSU5GSU5JVFk7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUREO1RJRSBPVkVSIElORklOSVRZO1NtOzA7T047Ozs7O047Ozs7OworMjlERTtJTkZJTklUWSBORUdBVEVEIFdJVEggVkVSVElDQUwgQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjlERjtET1VCTEUtRU5ERUQgTVVMVElNQVA7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUUwO1NRVUFSRSBXSVRIIENPTlRPVVJFRCBPVVRMSU5FO1NtOzA7T047Ozs7O047Ozs7OworMjlFMTtJTkNSRUFTRVMgQVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUUyO1NIVUZGTEUgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzI5RTM7RVFVQUxTIFNJR04gQU5EIFNMQU5URUQgUEFSQUxMRUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUU0O0VRVUFMUyBTSUdOIEFORCBTTEFOVEVEIFBBUkFMTEVMIFdJVEggVElMREUgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUU1O0lERU5USUNBTCBUTyBBTkQgU0xBTlRFRCBQQVJBTExFTDtTbTswO09OOzs7OztZOzs7OzsKKzI5RTY7R0xFSUNIIFNUQVJLO1NtOzA7T047Ozs7O047Ozs7OworMjlFNztUSEVSTU9EWU5BTUlDO1NtOzA7T047Ozs7O047Ozs7OworMjlFODtET1dOLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFOTtET1dOLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RUE7QkxBQ0sgRElBTU9ORCBXSVRIIERPV04gQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUVCO0JMQUNLIExPWkVOR0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUVDO1dISVRFIENJUkNMRSBXSVRIIERPV04gQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUVEO0JMQUNLIENJUkNMRSBXSVRIIERPV04gQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUVFO0VSUk9SLUJBUlJFRCBXSElURSBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUVGO0VSUk9SLUJBUlJFRCBCTEFDSyBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUYwO0VSUk9SLUJBUlJFRCBXSElURSBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjlGMTtFUlJPUi1CQVJSRUQgQkxBQ0sgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5RjI7RVJST1ItQkFSUkVEIFdISVRFIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5RjM7RVJST1ItQkFSUkVEIEJMQUNLIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5RjQ7UlVMRS1ERUxBWUVEO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGNTtSRVZFUlNFIFNPTElEVVMgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUY2O1NPTElEVVMgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGNztSRVZFUlNFIFNPTElEVVMgV0lUSCBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzI5Rjg7QklHIFNPTElEVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUY5O0JJRyBSRVZFUlNFIFNPTElEVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUZBO0RPVUJMRSBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjlGQjtUUklQTEUgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzI5RkM7TEVGVC1QT0lOVElORyBDVVJWRUQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5RkQ7UklHSFQtUE9JTlRJTkcgQ1VSVkVEIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOUZFO1RJTlk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUZGO01JTlk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTAwO04tQVJZIENJUkNMRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwMTtOLUFSWSBDSVJDTEVEIFBMVVMgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTAyO04tQVJZIENJUkNMRUQgVElNRVMgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTAzO04tQVJZIFVOSU9OIE9QRVJBVE9SIFdJVEggRE9UO1NtOzA7T047Ozs7O047Ozs7OworMkEwNDtOLUFSWSBVTklPTiBPUEVSQVRPUiBXSVRIIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA1O04tQVJZIFNRVUFSRSBJTlRFUlNFQ1RJT04gT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA2O04tQVJZIFNRVUFSRSBVTklPTiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDc7VFdPIExPR0lDQUwgQU5EIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwODtUV08gTE9HSUNBTCBPUiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDk7Ti1BUlkgVElNRVMgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTBBO01PRFVMTyBUV08gU1VNO1NtOzA7T047Ozs7O1k7Ozs7OworMkEwQjtTVU1NQVRJT04gV0lUSCBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBMEM7UVVBRFJVUExFIElOVEVHUkFMIE9QRVJBVE9SO1NtOzA7T047PGNvbXBhdD4gMjIyQiAyMjJCIDIyMkIgMjIyQjs7OztZOzs7OzsKKzJBMEQ7RklOSVRFIFBBUlQgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTBFO0lOVEVHUkFMIFdJVEggRE9VQkxFIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMEY7SU5URUdSQUwgQVZFUkFHRSBXSVRIIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMkExMDtDSVJDVUxBVElPTiBGVU5DVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMTE7QU5USUNMT0NLV0lTRSBJTlRFR1JBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMTI7TElORSBJTlRFR1JBVElPTiBXSVRIIFJFQ1RBTkdVTEFSIFBBVEggQVJPVU5EIFBPTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTEzO0xJTkUgSU5URUdSQVRJT04gV0lUSCBTRU1JQ0lSQ1VMQVIgUEFUSCBBUk9VTkQgUE9MRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMTQ7TElORSBJTlRFR1JBVElPTiBOT1QgSU5DTFVESU5HIFRIRSBQT0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkExNTtJTlRFR1JBTCBBUk9VTkQgQSBQT0lOVCBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBMTY7UVVBVEVSTklPTiBJTlRFR1JBTCBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBMTc7SU5URUdSQUwgV0lUSCBMRUZUV0FSRFMgQVJST1cgV0lUSCBIT09LO1NtOzA7T047Ozs7O1k7Ozs7OworMkExODtJTlRFR1JBTCBXSVRIIFRJTUVTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE5O0lOVEVHUkFMIFdJVEggSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkExQTtJTlRFR1JBTCBXSVRIIFVOSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkExQjtJTlRFR1JBTCBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTFDO0lOVEVHUkFMIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTFEO0pPSU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTFFO0xBUkdFIExFRlQgVFJJQU5HTEUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTFGO1ogTk9UQVRJT04gU0NIRU1BIENPTVBPU0lUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyMDtaIE5PVEFUSU9OIFNDSEVNQSBQSVBJTkc7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTIxO1ogTk9UQVRJT04gU0NIRU1BIFBST0pFQ1RJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTIyO1BMVVMgU0lHTiBXSVRIIFNNQUxMIENJUkNMRSBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBMjM7UExVUyBTSUdOIFdJVEggQ0lSQ1VNRkxFWCBBQ0NFTlQgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTI0O1BMVVMgU0lHTiBXSVRIIFRJTERFIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyNTtQTFVTIFNJR04gV0lUSCBET1QgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTI2O1BMVVMgU0lHTiBXSVRIIFRJTERFIEJFTE9XO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyNztQTFVTIFNJR04gV0lUSCBTVUJTQ1JJUFQgVFdPO1NtOzA7T047Ozs7O047Ozs7OworMkEyODtQTFVTIFNJR04gV0lUSCBCTEFDSyBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzJBMjk7TUlOVVMgU0lHTiBXSVRIIENPTU1BIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyQTtNSU5VUyBTSUdOIFdJVEggRE9UIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkEyQjtNSU5VUyBTSUdOIFdJVEggRkFMTElORyBET1RTO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyQztNSU5VUyBTSUdOIFdJVEggUklTSU5HIERPVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTJEO1BMVVMgU0lHTiBJTiBMRUZUIEhBTEYgQ0lSQ0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyRTtQTFVTIFNJR04gSU4gUklHSFQgSEFMRiBDSVJDTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTJGO1ZFQ1RPUiBPUiBDUk9TUyBQUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMkEzMDtNVUxUSVBMSUNBVElPTiBTSUdOIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkEzMTtNVUxUSVBMSUNBVElPTiBTSUdOIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTMyO1NFTUlESVJFQ1QgUFJPRFVDVCBXSVRIIEJPVFRPTSBDTE9TRUQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTMzO1NNQVNIIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTM0O01VTFRJUExJQ0FUSU9OIFNJR04gSU4gTEVGVCBIQUxGIENJUkNMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMzU7TVVMVElQTElDQVRJT04gU0lHTiBJTiBSSUdIVCBIQUxGIENJUkNMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMzY7Q0lSQ0xFRCBNVUxUSVBMSUNBVElPTiBTSUdOIFdJVEggQ0lSQ1VNRkxFWCBBQ0NFTlQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTM3O01VTFRJUExJQ0FUSU9OIFNJR04gSU4gRE9VQkxFIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzJBMzg7Q0lSQ0xFRCBESVZJU0lPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMkEzOTtQTFVTIFNJR04gSU4gVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTNBO01JTlVTIFNJR04gSU4gVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTNCO01VTFRJUExJQ0FUSU9OIFNJR04gSU4gVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTNDO0lOVEVSSU9SIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTNEO1JJR0hUSEFORCBJTlRFUklPUiBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMkEzRTtaIE5PVEFUSU9OIFJFTEFUSU9OQUwgQ09NUE9TSVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTNGO0FNQUxHQU1BVElPTiBPUiBDT1BST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQwO0lOVEVSU0VDVElPTiBXSVRIIERPVDtTbTswO09OOzs7OztOOzs7OzsKKzJBNDE7VU5JT04gV0lUSCBNSU5VUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMkE0MjtVTklPTiBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQzO0lOVEVSU0VDVElPTiBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQ0O0lOVEVSU0VDVElPTiBXSVRIIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMkE0NTtVTklPTiBXSVRIIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQ2O1VOSU9OIEFCT1ZFIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDc7SU5URVJTRUNUSU9OIEFCT1ZFIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0ODtVTklPTiBBQk9WRSBCQVIgQUJPVkUgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0OTtJTlRFUlNFQ1RJT04gQUJPVkUgQkFSIEFCT1ZFIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0QTtVTklPTiBCRVNJREUgQU5EIEpPSU5FRCBXSVRIIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0QjtJTlRFUlNFQ1RJT04gQkVTSURFIEFORCBKT0lORUQgV0lUSCBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTRDO0NMT1NFRCBVTklPTiBXSVRIIFNFUklGUztTbTswO09OOzs7OztOOzs7OzsKKzJBNEQ7Q0xPU0VEIElOVEVSU0VDVElPTiBXSVRIIFNFUklGUztTbTswO09OOzs7OztOOzs7OzsKKzJBNEU7RE9VQkxFIFNRVUFSRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTRGO0RPVUJMRSBTUVVBUkUgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTUwO0NMT1NFRCBVTklPTiBXSVRIIFNFUklGUyBBTkQgU01BU0ggUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzJBNTE7TE9HSUNBTCBBTkQgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTUyO0xPR0lDQUwgT1IgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTUzO0RPVUJMRSBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzJBNTQ7RE9VQkxFIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTU1O1RXTyBJTlRFUlNFQ1RJTkcgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTU2O1RXTyBJTlRFUlNFQ1RJTkcgTE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNTc7U0xPUElORyBMQVJHRSBPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBNTg7U0xPUElORyBMQVJHRSBBTkQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTU5O0xPR0lDQUwgT1IgT1ZFUkxBUFBJTkcgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTVBO0xPR0lDQUwgQU5EIFdJVEggTUlERExFIFNURU07U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTVCO0xPR0lDQUwgT1IgV0lUSCBNSURETEUgU1RFTTtTbTswO09OOzs7OztOOzs7OzsKKzJBNUM7TE9HSUNBTCBBTkQgV0lUSCBIT1JJWk9OVEFMIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTVEO0xPR0lDQUwgT1IgV0lUSCBIT1JJWk9OVEFMIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTVFO0xPR0lDQUwgQU5EIFdJVEggRE9VQkxFIE9WRVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTVGO0xPR0lDQUwgQU5EIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTYwO0xPR0lDQUwgQU5EIFdJVEggRE9VQkxFIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE2MTtTTUFMTCBWRUUgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjI7TE9HSUNBTCBPUiBXSVRIIERPVUJMRSBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE2MztMT0dJQ0FMIE9SIFdJVEggRE9VQkxFIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE2NDtaIE5PVEFUSU9OIERPTUFJTiBBTlRJUkVTVFJJQ1RJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTY1O1ogTk9UQVRJT04gUkFOR0UgQU5USVJFU1RSSUNUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2NjtFUVVBTFMgU0lHTiBXSVRIIERPVCBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBNjc7SURFTlRJQ0FMIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkE2ODtUUklQTEUgSE9SSVpPTlRBTCBCQVIgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMkE2OTtUUklQTEUgSE9SSVpPTlRBTCBCQVIgV0lUSCBUUklQTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMkE2QTtUSUxERSBPUEVSQVRPUiBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBNkI7VElMREUgT1BFUkFUT1IgV0lUSCBSSVNJTkcgRE9UUztTbTswO09OOzs7OztZOzs7OzsKKzJBNkM7U0lNSUxBUiBNSU5VUyBTSU1JTEFSO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2RDtDT05HUlVFTlQgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTZFO0VRVUFMUyBXSVRIIEFTVEVSSVNLO1NtOzA7T047Ozs7O047Ozs7OworMkE2RjtBTE1PU1QgRVFVQUwgVE8gV0lUSCBDSVJDVU1GTEVYIEFDQ0VOVDtTbTswO09OOzs7OztZOzs7OzsKKzJBNzA7QVBQUk9YSU1BVEVMWSBFUVVBTCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBNzE7RVFVQUxTIFNJR04gQUJPVkUgUExVUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMkE3MjtQTFVTIFNJR04gQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTczO0VRVUFMUyBTSUdOIEFCT1ZFIFRJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3NDtET1VCTEUgQ09MT04gRVFVQUw7U207MDtPTjs8Y29tcGF0PiAwMDNBIDAwM0EgMDAzRDs7OztZOzs7OzsKKzJBNzU7VFdPIENPTlNFQ1VUSVZFIEVRVUFMUyBTSUdOUztTbTswO09OOzxjb21wYXQ+IDAwM0QgMDAzRDs7OztOOzs7OzsKKzJBNzY7VEhSRUUgQ09OU0VDVVRJVkUgRVFVQUxTIFNJR05TO1NtOzA7T047PGNvbXBhdD4gMDAzRCAwMDNEIDAwM0Q7Ozs7Tjs7Ozs7CisyQTc3O0VRVUFMUyBTSUdOIFdJVEggVFdPIERPVFMgQUJPVkUgQU5EIFRXTyBET1RTIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkE3ODtFUVVJVkFMRU5UIFdJVEggRk9VUiBET1RTIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkE3OTtMRVNTLVRIQU4gV0lUSCBDSVJDTEUgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3QTtHUkVBVEVSLVRIQU4gV0lUSCBDSVJDTEUgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3QjtMRVNTLVRIQU4gV0lUSCBRVUVTVElPTiBNQVJLIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3QztHUkVBVEVSLVRIQU4gV0lUSCBRVUVTVElPTiBNQVJLIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3RDtMRVNTLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBN0U7R1JFQVRFUi1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQTdGO0xFU1MtVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBODA7R1JFQVRFUi1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4MTtMRVNTLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBODI7R1JFQVRFUi1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTgzO0xFU1MtVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIEFCT1ZFIFJJR0hUO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4NDtHUkVBVEVSLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRSBMRUZUO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4NTtMRVNTLVRIQU4gT1IgQVBQUk9YSU1BVEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTg2O0dSRUFURVItVEhBTiBPUiBBUFBST1hJTUFURTtTbTswO09OOzs7OztZOzs7OzsKKzJBODc7TEVTUy1USEFOIEFORCBTSU5HTEUtTElORSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQTg4O0dSRUFURVItVEhBTiBBTkQgU0lOR0xFLUxJTkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4OTtMRVNTLVRIQU4gQU5EIE5PVCBBUFBST1hJTUFURTtTbTswO09OOzs7OztZOzs7OzsKKzJBOEE7R1JFQVRFUi1USEFOIEFORCBOT1QgQVBQUk9YSU1BVEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQThCO0xFU1MtVEhBTiBBQk9WRSBET1VCTEUtTElORSBFUVVBTCBBQk9WRSBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQThDO0dSRUFURVItVEhBTiBBQk9WRSBET1VCTEUtTElORSBFUVVBTCBBQk9WRSBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQThEO0xFU1MtVEhBTiBBQk9WRSBTSU1JTEFSIE9SIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4RTtHUkVBVEVSLVRIQU4gQUJPVkUgU0lNSUxBUiBPUiBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOEY7TEVTUy1USEFOIEFCT1ZFIFNJTUlMQVIgQUJPVkUgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5MDtHUkVBVEVSLVRIQU4gQUJPVkUgU0lNSUxBUiBBQk9WRSBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTkxO0xFU1MtVEhBTiBBQk9WRSBHUkVBVEVSLVRIQU4gQUJPVkUgRE9VQkxFLUxJTkUgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTkyO0dSRUFURVItVEhBTiBBQk9WRSBMRVNTLVRIQU4gQUJPVkUgRE9VQkxFLUxJTkUgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTkzO0xFU1MtVEhBTiBBQk9WRSBTTEFOVEVEIEVRVUFMIEFCT1ZFIEdSRUFURVItVEhBTiBBQk9WRSBTTEFOVEVEIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5NDtHUkVBVEVSLVRIQU4gQUJPVkUgU0xBTlRFRCBFUVVBTCBBQk9WRSBMRVNTLVRIQU4gQUJPVkUgU0xBTlRFRCBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOTU7U0xBTlRFRCBFUVVBTCBUTyBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk2O1NMQU5URUQgRVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5NztTTEFOVEVEIEVRVUFMIFRPIE9SIExFU1MtVEhBTiBXSVRIIERPVCBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk4O1NMQU5URUQgRVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOIFdJVEggRE9UIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBOTk7RE9VQkxFLUxJTkUgRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5QTtET1VCTEUtTElORSBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTlCO0RPVUJMRS1MSU5FIFNMQU5URUQgRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5QztET1VCTEUtTElORSBTTEFOVEVEIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUQ7U0lNSUxBUiBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTlFO1NJTUlMQVIgT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5RjtTSU1JTEFSIEFCT1ZFIExFU1MtVEhBTiBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQTA7U0lNSUxBUiBBQk9WRSBHUkVBVEVSLVRIQU4gQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUExO0RPVUJMRSBORVNURUQgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBMjtET1VCTEUgTkVTVEVEIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQTM7RE9VQkxFIE5FU1RFRCBMRVNTLVRIQU4gV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzJBQTQ7R1JFQVRFUi1USEFOIE9WRVJMQVBQSU5HIExFU1MtVEhBTjtTbTswO09OOzs7OztOOzs7OzsKKzJBQTU7R1JFQVRFUi1USEFOIEJFU0lERSBMRVNTLVRIQU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUE2O0xFU1MtVEhBTiBDTE9TRUQgQlkgQ1VSVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUE3O0dSRUFURVItVEhBTiBDTE9TRUQgQlkgQ1VSVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUE4O0xFU1MtVEhBTiBDTE9TRUQgQlkgQ1VSVkUgQUJPVkUgU0xBTlRFRCBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBQTk7R1JFQVRFUi1USEFOIENMT1NFRCBCWSBDVVJWRSBBQk9WRSBTTEFOVEVEIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBQTtTTUFMTEVSIFRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUFCO0xBUkdFUiBUSEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBQztTTUFMTEVSIFRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUFEO0xBUkdFUiBUSEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBRTtFUVVBTFMgU0lHTiBXSVRIIEJVTVBZIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkFBRjtQUkVDRURFUyBBQk9WRSBTSU5HTEUtTElORSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQjA7U1VDQ0VFRFMgQUJPVkUgU0lOR0xFLUxJTkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUIxO1BSRUNFREVTIEFCT1ZFIFNJTkdMRS1MSU5FIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjI7U1VDQ0VFRFMgQUJPVkUgU0lOR0xFLUxJTkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCMztQUkVDRURFUyBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQjQ7U1VDQ0VFRFMgQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI1O1BSRUNFREVTIEFCT1ZFIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjY7U1VDQ0VFRFMgQUJPVkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCNztQUkVDRURFUyBBQk9WRSBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI4O1NVQ0NFRURTIEFCT1ZFIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjk7UFJFQ0VERVMgQUJPVkUgTk9UIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQkE7U1VDQ0VFRFMgQUJPVkUgTk9UIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQkI7RE9VQkxFIFBSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCQztET1VCTEUgU1VDQ0VFRFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJEO1NVQlNFVCBXSVRIIERPVDtTbTswO09OOzs7OztZOzs7OzsKKzJBQkU7U1VQRVJTRVQgV0lUSCBET1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJGO1NVQlNFVCBXSVRIIFBMVVMgU0lHTiBCRUxPVztTbTswO09OOzs7OztZOzs7OzsKKzJBQzA7U1VQRVJTRVQgV0lUSCBQTFVTIFNJR04gQkVMT1c7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUMxO1NVQlNFVCBXSVRIIE1VTFRJUExJQ0FUSU9OIFNJR04gQkVMT1c7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUMyO1NVUEVSU0VUIFdJVEggTVVMVElQTElDQVRJT04gU0lHTiBCRUxPVztTbTswO09OOzs7OztZOzs7OzsKKzJBQzM7U1VCU0VUIE9GIE9SIEVRVUFMIFRPIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDNDtTVVBFUlNFVCBPRiBPUiBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBQzU7U1VCU0VUIE9GIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDNjtTVVBFUlNFVCBPRiBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQzc7U1VCU0VUIE9GIEFCT1ZFIFRJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDODtTVVBFUlNFVCBPRiBBQk9WRSBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBQzk7U1VCU0VUIE9GIEFCT1ZFIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQ0E7U1VQRVJTRVQgT0YgQUJPVkUgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDQjtTVUJTRVQgT0YgQUJPVkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDQztTVVBFUlNFVCBPRiBBQk9WRSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUNEO1NRVUFSRSBMRUZUIE9QRU4gQk9YIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDRTtTUVVBUkUgUklHSFQgT1BFTiBCT1ggT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUNGO0NMT1NFRCBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQwO0NMT1NFRCBTVVBFUlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzJBRDE7Q0xPU0VEIFNVQlNFVCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBRDI7Q0xPU0VEIFNVUEVSU0VUIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFEMztTVUJTRVQgQUJPVkUgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQ0O1NVUEVSU0VUIEFCT1ZFIFNVQlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzJBRDU7U1VCU0VUIEFCT1ZFIFNVQlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzJBRDY7U1VQRVJTRVQgQUJPVkUgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQ3O1NVUEVSU0VUIEJFU0lERSBTVUJTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUQ4O1NVUEVSU0VUIEJFU0lERSBBTkQgSk9JTkVEIEJZIERBU0ggV0lUSCBTVUJTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUQ5O0VMRU1FTlQgT0YgT1BFTklORyBET1dOV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQURBO1BJVENIRk9SSyBXSVRIIFRFRSBUT1A7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQURCO1RSQU5TVkVSU0FMIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBREM7Rk9SS0lORztTbTswO09OOzJBREQgMDMzODs7OztZOztub3QgaW5kZXBlbmRlbnQ7OzsKKzJBREQ7Tk9ORk9SS0lORztTbTswO09OOzs7OztOOztpbmRlcGVuZGVudDs7OworMkFERTtTSE9SVCBMRUZUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyQURGO1NIT1JUIERPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzJBRTA7U0hPUlQgVVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzJBRTE7UEVSUEVORElDVUxBUiBXSVRIIFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUUyO1ZFUlRJQ0FMIEJBUiBUUklQTEUgUklHSFQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFMztET1VCTEUgVkVSVElDQUwgQkFSIExFRlQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFNDtWRVJUSUNBTCBCQVIgRE9VQkxFIExFRlQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFNTtET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBMRUZUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBRTY7TE9ORyBEQVNIIEZST00gTEVGVCBNRU1CRVIgT0YgRE9VQkxFIFZFUlRJQ0FMO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFNztTSE9SVCBET1dOIFRBQ0sgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkFFODtTSE9SVCBVUCBUQUNLIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUU5O1NIT1JUIFVQIFRBQ0sgQUJPVkUgU0hPUlQgRE9XTiBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMkFFQTtET1VCTEUgRE9XTiBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMkFFQjtET1VCTEUgVVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzJBRUM7RE9VQkxFIFNUUk9LRSBOT1QgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBRUQ7UkVWRVJTRUQgRE9VQkxFIFNUUk9LRSBOT1QgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBRUU7RE9FUyBOT1QgRElWSURFIFdJVEggUkVWRVJTRUQgTkVHQVRJT04gU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUVGO1ZFUlRJQ0FMIExJTkUgV0lUSCBDSVJDTEUgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUYwO1ZFUlRJQ0FMIExJTkUgV0lUSCBDSVJDTEUgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUYxO0RPV04gVEFDSyBXSVRIIENJUkNMRSBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBRjI7UEFSQUxMRUwgV0lUSCBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzJBRjM7UEFSQUxMRUwgV0lUSCBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBRjQ7VFJJUExFIFZFUlRJQ0FMIEJBUiBCSU5BUlkgUkVMQVRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUY1O1RSSVBMRSBWRVJUSUNBTCBCQVIgV0lUSCBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzJBRjY7VFJJUExFIENPTE9OIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkFGNztUUklQTEUgTkVTVEVEIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBRjg7VFJJUExFIE5FU1RFRCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUY5O0RPVUJMRS1MSU5FIFNMQU5URUQgTEVTUy1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGQTtET1VCTEUtTElORSBTTEFOVEVEIEdSRUFURVItVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBRkI7VFJJUExFIFNPTElEVVMgQklOQVJZIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGQztMQVJHRSBUUklQTEUgVkVSVElDQUwgQkFSIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkFGRDtET1VCTEUgU09MSURVUyBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBRkU7V0hJVEUgVkVSVElDQUwgQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkFGRjtOLUFSWSBXSElURSBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQjAwO05PUlRIIEVBU1QgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjAxO05PUlRIIFdFU1QgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjAyO1NPVVRIIEVBU1QgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjAzO1NPVVRIIFdFU1QgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjA0O0xFRlQgUklHSFQgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjA1O0xFRlRXQVJEUyBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDY7VVBXQVJEUyBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDc7RE9XTldBUkRTIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwODtOT1JUSCBFQVNUIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwOTtOT1JUSCBXRVNUIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwQTtTT1VUSCBFQVNUIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwQjtTT1VUSCBXRVNUIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwQztMRUZUIFJJR0hUIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwRDtVUCBET1dOIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwRTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggVElQIERPV05XQVJEUztTbzswO09OOzs7OztOOzs7OzsKKzJCMEY7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFRJUCBVUFdBUkRTO1NvOzA7T047Ozs7O047Ozs7OworMkIxMDtMRUZUV0FSRFMgQVJST1cgV0lUSCBUSVAgRE9XTldBUkRTO1NvOzA7T047Ozs7O047Ozs7OworMkIxMTtMRUZUV0FSRFMgQVJST1cgV0lUSCBUSVAgVVBXQVJEUztTbzswO09OOzs7OztOOzs7OzsKKzJCMTI7U1FVQVJFIFdJVEggVE9QIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjEzO1NRVUFSRSBXSVRIIEJPVFRPTSBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMkIxNDtTUVVBUkUgV0lUSCBVUFBFUiBSSUdIVCBESUFHT05BTCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMkIxNTtTUVVBUkUgV0lUSCBMT1dFUiBMRUZUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjE2O0RJQU1PTkQgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjE3O0RJQU1PTkQgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMkIxODtESUFNT05EIFdJVEggVE9QIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjE5O0RJQU1PTkQgV0lUSCBCT1RUT00gSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzJCMUE7RE9UVEVEIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzJCMjA7V0hJVEUgUEVOVEFHT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjIxO1dISVRFIEhFWEFHT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjIyO0JMQUNLIEhFWEFHT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjIzO0hPUklaT05UQUwgQkxBQ0sgSEVYQUdPTjtTbzswO09OOzs7OztOOzs7OzsKKzJDMDA7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBBWlU7THU7MDtMOzs7OztOOzs7OzJDMzA7CisyQzAxO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgQlVLWTtMdTswO0w7Ozs7O047Ozs7MkMzMTsKKzJDMDI7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBWRURFO0x1OzA7TDs7Ozs7Tjs7OzsyQzMyOworMkMwMztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEdMQUdPTEk7THU7MDtMOzs7OztOOzs7OzJDMzM7CisyQzA0O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgRE9CUk87THU7MDtMOzs7OztOOzs7OzJDMzQ7CisyQzA1O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgWUVTVFU7THU7MDtMOzs7OztOOzs7OzJDMzU7CisyQzA2O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgWkhJVkVURTtMdTswO0w7Ozs7O047Ozs7MkMzNjsKKzJDMDc7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBEWkVMTztMdTswO0w7Ozs7O047Ozs7MkMzNzsKKzJDMDg7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBaRU1MSkE7THU7MDtMOzs7OztOOzs7OzJDMzg7CisyQzA5O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgSVpIRTtMdTswO0w7Ozs7O047Ozs7MkMzOTsKKzJDMEE7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBJTklUSUFMIElaSEU7THU7MDtMOzs7OztOOzs7OzJDM0E7CisyQzBCO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Ozs7MkMzQjsKKzJDMEM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBESkVSVkk7THU7MDtMOzs7OztOOzs7OzJDM0M7CisyQzBEO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgS0FLTztMdTswO0w7Ozs7O047Ozs7MkMzRDsKKzJDMEU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBMSlVESUpFO0x1OzA7TDs7Ozs7Tjs7OzsyQzNFOworMkMwRjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIE1ZU0xJVEU7THU7MDtMOzs7OztOOzs7OzJDM0Y7CisyQzEwO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgTkFTSEk7THU7MDtMOzs7OztOOzs7OzJDNDA7CisyQzExO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgT05VO0x1OzA7TDs7Ozs7Tjs7OzsyQzQxOworMkMxMjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFBPS09KSTtMdTswO0w7Ozs7O047Ozs7MkM0MjsKKzJDMTM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBSSVRTSTtMdTswO0w7Ozs7O047Ozs7MkM0MzsKKzJDMTQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTTE9WTztMdTswO0w7Ozs7O047Ozs7MkM0NDsKKzJDMTU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBUVlJJRE87THU7MDtMOzs7OztOOzs7OzJDNDU7CisyQzE2O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgVUtVO0x1OzA7TDs7Ozs7Tjs7OzsyQzQ2OworMkMxNztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEZSSVRVO0x1OzA7TDs7Ozs7Tjs7OzsyQzQ3OworMkMxODtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEhFUlU7THU7MDtMOzs7OztOOzs7OzJDNDg7CisyQzE5O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgT1RVO0x1OzA7TDs7Ozs7Tjs7OzsyQzQ5OworMkMxQTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFBFO0x1OzA7TDs7Ozs7Tjs7OzsyQzRBOworMkMxQjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFNIVEE7THU7MDtMOzs7OztOOzs7OzJDNEI7CisyQzFDO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgVFNJO0x1OzA7TDs7Ozs7Tjs7OzsyQzRDOworMkMxRDtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIENIUklWSTtMdTswO0w7Ozs7O047Ozs7MkM0RDsKKzJDMUU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzJDNEU7CisyQzFGO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgWUVSVTtMdTswO0w7Ozs7O047Ozs7MkM0RjsKKzJDMjA7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZRVJJO0x1OzA7TDs7Ozs7Tjs7OzsyQzUwOworMkMyMTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFlBVEk7THU7MDtMOzs7OztOOzs7OzJDNTE7CisyQzIyO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgU1BJREVSWSBIQTtMdTswO0w7Ozs7O047Ozs7MkM1MjsKKzJDMjM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZVTtMdTswO0w7Ozs7O047Ozs7MkM1MzsKKzJDMjQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTTUFMTCBZVVM7THU7MDtMOzs7OztOOzs7OzJDNTQ7CisyQzI1O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgU01BTEwgWVVTIFdJVEggVEFJTDtMdTswO0w7Ozs7O047Ozs7MkM1NTsKKzJDMjY7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZTztMdTswO0w7Ozs7O047Ozs7MkM1NjsKKzJDMjc7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBJT1RBVEVEIFNNQUxMIFlVUztMdTswO0w7Ozs7O047Ozs7MkM1NzsKKzJDMjg7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBCSUcgWVVTO0x1OzA7TDs7Ozs7Tjs7OzsyQzU4OworMkMyOTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIElPVEFURUQgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MkM1OTsKKzJDMkE7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBGSVRBO0x1OzA7TDs7Ozs7Tjs7OzsyQzVBOworMkMyQjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIElaSElUU0E7THU7MDtMOzs7OztOOzs7OzJDNUI7CisyQzJDO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgU0hUQVBJQztMdTswO0w7Ozs7O047Ozs7MkM1QzsKKzJDMkQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBUUk9LVVRBU1RJIEE7THU7MDtMOzs7OztOOzs7OzJDNUQ7CisyQzJFO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgTEFUSU5BVEUgTVlTTElURTtMdTswO0w7Ozs7O047Ozs7MkM1RTsKKzJDMzA7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgQVpVO0xsOzA7TDs7Ozs7Tjs7OzJDMDA7OzJDMDAKKzJDMzE7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgQlVLWTtMbDswO0w7Ozs7O047OzsyQzAxOzsyQzAxCisyQzMyO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFZFREU7TGw7MDtMOzs7OztOOzs7MkMwMjs7MkMwMgorMkMzMztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBHTEFHT0xJO0xsOzA7TDs7Ozs7Tjs7OzJDMDM7OzJDMDMKKzJDMzQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgRE9CUk87TGw7MDtMOzs7OztOOzs7MkMwNDs7MkMwNAorMkMzNTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBZRVNUVTtMbDswO0w7Ozs7O047OzsyQzA1OzsyQzA1CisyQzM2O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFpISVZFVEU7TGw7MDtMOzs7OztOOzs7MkMwNjs7MkMwNgorMkMzNztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBEWkVMTztMbDswO0w7Ozs7O047OzsyQzA3OzsyQzA3CisyQzM4O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFpFTUxKQTtMbDswO0w7Ozs7O047OzsyQzA4OzsyQzA4CisyQzM5O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIElaSEU7TGw7MDtMOzs7OztOOzs7MkMwOTs7MkMwOQorMkMzQTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBJTklUSUFMIElaSEU7TGw7MDtMOzs7OztOOzs7MkMwQTs7MkMwQQorMkMzQjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7Tjs7OzJDMEI7OzJDMEIKKzJDM0M7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgREpFUlZJO0xsOzA7TDs7Ozs7Tjs7OzJDMEM7OzJDMEMKKzJDM0Q7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgS0FLTztMbDswO0w7Ozs7O047OzsyQzBEOzsyQzBECisyQzNFO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIExKVURJSkU7TGw7MDtMOzs7OztOOzs7MkMwRTs7MkMwRQorMkMzRjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBNWVNMSVRFO0xsOzA7TDs7Ozs7Tjs7OzJDMEY7OzJDMEYKKzJDNDA7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgTkFTSEk7TGw7MDtMOzs7OztOOzs7MkMxMDs7MkMxMAorMkM0MTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBPTlU7TGw7MDtMOzs7OztOOzs7MkMxMTs7MkMxMQorMkM0MjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBQT0tPSkk7TGw7MDtMOzs7OztOOzs7MkMxMjs7MkMxMgorMkM0MztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBSSVRTSTtMbDswO0w7Ozs7O047OzsyQzEzOzsyQzEzCisyQzQ0O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFNMT1ZPO0xsOzA7TDs7Ozs7Tjs7OzJDMTQ7OzJDMTQKKzJDNDU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVFZSSURPO0xsOzA7TDs7Ozs7Tjs7OzJDMTU7OzJDMTUKKzJDNDY7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVUtVO0xsOzA7TDs7Ozs7Tjs7OzJDMTY7OzJDMTYKKzJDNDc7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgRlJJVFU7TGw7MDtMOzs7OztOOzs7MkMxNzs7MkMxNworMkM0ODtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBIRVJVO0xsOzA7TDs7Ozs7Tjs7OzJDMTg7OzJDMTgKKzJDNDk7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgT1RVO0xsOzA7TDs7Ozs7Tjs7OzJDMTk7OzJDMTkKKzJDNEE7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgUEU7TGw7MDtMOzs7OztOOzs7MkMxQTs7MkMxQQorMkM0QjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTSFRBO0xsOzA7TDs7Ozs7Tjs7OzJDMUI7OzJDMUIKKzJDNEM7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVFNJO0xsOzA7TDs7Ozs7Tjs7OzJDMUM7OzJDMUMKKzJDNEQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgQ0hSSVZJO0xsOzA7TDs7Ozs7Tjs7OzJDMUQ7OzJDMUQKKzJDNEU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzJDMUU7OzJDMUUKKzJDNEY7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgWUVSVTtMbDswO0w7Ozs7O047OzsyQzFGOzsyQzFGCisyQzUwO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlFUkk7TGw7MDtMOzs7OztOOzs7MkMyMDs7MkMyMAorMkM1MTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBZQVRJO0xsOzA7TDs7Ozs7Tjs7OzJDMjE7OzJDMjEKKzJDNTI7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU1BJREVSWSBIQTtMbDswO0w7Ozs7O047OzsyQzIyOzsyQzIyCisyQzUzO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlVO0xsOzA7TDs7Ozs7Tjs7OzJDMjM7OzJDMjMKKzJDNTQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU01BTEwgWVVTO0xsOzA7TDs7Ozs7Tjs7OzJDMjQ7OzJDMjQKKzJDNTU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU01BTEwgWVVTIFdJVEggVEFJTDtMbDswO0w7Ozs7O047OzsyQzI1OzsyQzI1CisyQzU2O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlPO0xsOzA7TDs7Ozs7Tjs7OzJDMjY7OzJDMjYKKzJDNTc7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgSU9UQVRFRCBTTUFMTCBZVVM7TGw7MDtMOzs7OztOOzs7MkMyNzs7MkMyNworMkM1ODtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzJDMjg7OzJDMjgKKzJDNTk7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgSU9UQVRFRCBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzJDMjk7OzJDMjkKKzJDNUE7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgRklUQTtMbDswO0w7Ozs7O047OzsyQzJBOzsyQzJBCisyQzVCO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIElaSElUU0E7TGw7MDtMOzs7OztOOzs7MkMyQjs7MkMyQgorMkM1QztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTSFRBUElDO0xsOzA7TDs7Ozs7Tjs7OzJDMkM7OzJDMkMKKzJDNUQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVFJPS1VUQVNUSSBBO0xsOzA7TDs7Ozs7Tjs7OzJDMkQ7OzJDMkQKKzJDNUU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgTEFUSU5BVEUgTVlTTElURTtMbDswO0w7Ozs7O047OzsyQzJFOzsyQzJFCisyQzYwO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1VCTEUgQkFSO0x1OzA7TDs7Ozs7Tjs7OzsyQzYxOworMkM2MTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVUJMRSBCQVI7TGw7MDtMOzs7OztOOzs7MkM2MDs7MkM2MAorMkM2MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggTUlERExFIFRJTERFO0x1OzA7TDs7Ozs7Tjs7OzswMjZCOworMkM2MztMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzsxRDdEOworMkM2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggVEFJTDtMdTswO0w7Ozs7O047Ozs7MDI3RDsKKzJDNjU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7MDIzQTs7MDIzQQorMkM2NjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERJQUdPTkFMIFNUUk9LRTtMbDswO0w7Ozs7O047OzswMjNFOzswMjNFCisyQzY3O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOOzs7OzJDNjg7CisyQzY4O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7Tjs7OzJDNjc7OzJDNjcKKzJDNjk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Ozs7MkM2QTsKKzJDNkE7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOOzs7MkM2OTs7MkM2OQorMkM2QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7Tjs7OzsyQzZDOworMkM2QztMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047OzsyQzZCOzsyQzZCCisyQzc0O0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047Ozs7OworMkM3NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBIQUxGIEg7THU7MDtMOzs7OztOOzs7OzJDNzY7CisyQzc2O0xBVElOIFNNQUxMIExFVFRFUiBIQUxGIEg7TGw7MDtMOzs7OztOOzs7MkM3NTs7MkM3NQorMkM3NztMQVRJTiBTTUFMTCBMRVRURVIgVEFJTExFU1MgUEhJO0xsOzA7TDs7Ozs7Tjs7Ozs7CisyQzgwO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBBTEZBO0x1OzA7TDs7Ozs7Tjs7OzsyQzgxOworMkM4MTtDT1BUSUMgU01BTEwgTEVUVEVSIEFMRkE7TGw7MDtMOzs7OztOOzs7MkM4MDs7MkM4MAorMkM4MjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgVklEQTtMdTswO0w7Ozs7O047Ozs7MkM4MzsKKzJDODM7Q09QVElDIFNNQUxMIExFVFRFUiBWSURBO0xsOzA7TDs7Ozs7Tjs7OzJDODI7OzJDODIKKzJDODQ7Q09QVElDIENBUElUQUwgTEVUVEVSIEdBTU1BO0x1OzA7TDs7Ozs7Tjs7OzsyQzg1OworMkM4NTtDT1BUSUMgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzJDODQ7OzJDODQKKzJDODY7Q09QVElDIENBUElUQUwgTEVUVEVSIERBTERBO0x1OzA7TDs7Ozs7Tjs7OzsyQzg3OworMkM4NztDT1BUSUMgU01BTEwgTEVUVEVSIERBTERBO0xsOzA7TDs7Ozs7Tjs7OzJDODY7OzJDODYKKzJDODg7Q09QVElDIENBUElUQUwgTEVUVEVSIEVJRTtMdTswO0w7Ozs7O047Ozs7MkM4OTsKKzJDODk7Q09QVElDIFNNQUxMIExFVFRFUiBFSUU7TGw7MDtMOzs7OztOOzs7MkM4ODs7MkM4OAorMkM4QTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU09VO0x1OzA7TDs7Ozs7Tjs7OzsyQzhCOworMkM4QjtDT1BUSUMgU01BTEwgTEVUVEVSIFNPVTtMbDswO0w7Ozs7O047OzsyQzhBOzsyQzhBCisyQzhDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBaQVRBO0x1OzA7TDs7Ozs7Tjs7OzsyQzhEOworMkM4RDtDT1BUSUMgU01BTEwgTEVUVEVSIFpBVEE7TGw7MDtMOzs7OztOOzs7MkM4Qzs7MkM4QworMkM4RTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgSEFURTtMdTswO0w7Ozs7O047Ozs7MkM4RjsKKzJDOEY7Q09QVElDIFNNQUxMIExFVFRFUiBIQVRFO0xsOzA7TDs7Ozs7Tjs7OzJDOEU7OzJDOEUKKzJDOTA7Q09QVElDIENBUElUQUwgTEVUVEVSIFRIRVRIRTtMdTswO0w7Ozs7O047Ozs7MkM5MTsKKzJDOTE7Q09QVElDIFNNQUxMIExFVFRFUiBUSEVUSEU7TGw7MDtMOzs7OztOOzs7MkM5MDs7MkM5MAorMkM5MjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgSUFVREE7THU7MDtMOzs7OztOOzs7OzJDOTM7CisyQzkzO0NPUFRJQyBTTUFMTCBMRVRURVIgSUFVREE7TGw7MDtMOzs7OztOOzs7MkM5Mjs7MkM5MgorMkM5NDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0FQQTtMdTswO0w7Ozs7O047Ozs7MkM5NTsKKzJDOTU7Q09QVElDIFNNQUxMIExFVFRFUiBLQVBBO0xsOzA7TDs7Ozs7Tjs7OzJDOTQ7OzJDOTQKKzJDOTY7Q09QVElDIENBUElUQUwgTEVUVEVSIExBVUxBO0x1OzA7TDs7Ozs7Tjs7OzsyQzk3OworMkM5NztDT1BUSUMgU01BTEwgTEVUVEVSIExBVUxBO0xsOzA7TDs7Ozs7Tjs7OzJDOTY7OzJDOTYKKzJDOTg7Q09QVElDIENBUElUQUwgTEVUVEVSIE1JO0x1OzA7TDs7Ozs7Tjs7OzsyQzk5OworMkM5OTtDT1BUSUMgU01BTEwgTEVUVEVSIE1JO0xsOzA7TDs7Ozs7Tjs7OzJDOTg7OzJDOTgKKzJDOUE7Q09QVElDIENBUElUQUwgTEVUVEVSIE5JO0x1OzA7TDs7Ozs7Tjs7OzsyQzlCOworMkM5QjtDT1BUSUMgU01BTEwgTEVUVEVSIE5JO0xsOzA7TDs7Ozs7Tjs7OzJDOUE7OzJDOUEKKzJDOUM7Q09QVElDIENBUElUQUwgTEVUVEVSIEtTSTtMdTswO0w7Ozs7O047Ozs7MkM5RDsKKzJDOUQ7Q09QVElDIFNNQUxMIExFVFRFUiBLU0k7TGw7MDtMOzs7OztOOzs7MkM5Qzs7MkM5QworMkM5RTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7Ozs7O047Ozs7MkM5RjsKKzJDOUY7Q09QVElDIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzJDOUU7OzJDOUUKKzJDQTA7Q09QVElDIENBUElUQUwgTEVUVEVSIFBJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0ExOworMkNBMTtDT1BUSUMgU01BTEwgTEVUVEVSIFBJO0xsOzA7TDs7Ozs7Tjs7OzJDQTA7OzJDQTAKKzJDQTI7Q09QVElDIENBUElUQUwgTEVUVEVSIFJPO0x1OzA7TDs7Ozs7Tjs7OzsyQ0EzOworMkNBMztDT1BUSUMgU01BTEwgTEVUVEVSIFJPO0xsOzA7TDs7Ozs7Tjs7OzJDQTI7OzJDQTIKKzJDQTQ7Q09QVElDIENBUElUQUwgTEVUVEVSIFNJTUE7THU7MDtMOzs7OztOOzs7OzJDQTU7CisyQ0E1O0NPUFRJQyBTTUFMTCBMRVRURVIgU0lNQTtMbDswO0w7Ozs7O047OzsyQ0E0OzsyQ0E0CisyQ0E2O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBUQVU7THU7MDtMOzs7OztOOzs7OzJDQTc7CisyQ0E3O0NPUFRJQyBTTUFMTCBMRVRURVIgVEFVO0xsOzA7TDs7Ozs7Tjs7OzJDQTY7OzJDQTYKKzJDQTg7Q09QVElDIENBUElUQUwgTEVUVEVSIFVBO0x1OzA7TDs7Ozs7Tjs7OzsyQ0E5OworMkNBOTtDT1BUSUMgU01BTEwgTEVUVEVSIFVBO0xsOzA7TDs7Ozs7Tjs7OzJDQTg7OzJDQTgKKzJDQUE7Q09QVElDIENBUElUQUwgTEVUVEVSIEZJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0FCOworMkNBQjtDT1BUSUMgU01BTEwgTEVUVEVSIEZJO0xsOzA7TDs7Ozs7Tjs7OzJDQUE7OzJDQUEKKzJDQUM7Q09QVElDIENBUElUQUwgTEVUVEVSIEtISTtMdTswO0w7Ozs7O047Ozs7MkNBRDsKKzJDQUQ7Q09QVElDIFNNQUxMIExFVFRFUiBLSEk7TGw7MDtMOzs7OztOOzs7MkNBQzs7MkNBQworMkNBRTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgUFNJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0FGOworMkNBRjtDT1BUSUMgU01BTEwgTEVUVEVSIFBTSTtMbDswO0w7Ozs7O047OzsyQ0FFOzsyQ0FFCisyQ0IwO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPT1U7THU7MDtMOzs7OztOOzs7OzJDQjE7CisyQ0IxO0NPUFRJQyBTTUFMTCBMRVRURVIgT09VO0xsOzA7TDs7Ozs7Tjs7OzJDQjA7OzJDQjAKKzJDQjI7Q09QVElDIENBUElUQUwgTEVUVEVSIERJQUxFQ1QtUCBBTEVGO0x1OzA7TDs7Ozs7Tjs7OzsyQ0IzOworMkNCMztDT1BUSUMgU01BTEwgTEVUVEVSIERJQUxFQ1QtUCBBTEVGO0xsOzA7TDs7Ozs7Tjs7OzJDQjI7OzJDQjIKKzJDQjQ7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBDT1BUSUMgQUlOO0x1OzA7TDs7Ozs7Tjs7OzsyQ0I1OworMkNCNTtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgQUlOO0xsOzA7TDs7Ozs7Tjs7OzJDQjQ7OzJDQjQKKzJDQjY7Q09QVElDIENBUElUQUwgTEVUVEVSIENSWVBUT0dSQU1NSUMgRUlFO0x1OzA7TDs7Ozs7Tjs7OzsyQ0I3OworMkNCNztDT1BUSUMgU01BTEwgTEVUVEVSIENSWVBUT0dSQU1NSUMgRUlFO0xsOzA7TDs7Ozs7Tjs7OzJDQjY7OzJDQjYKKzJDQjg7Q09QVElDIENBUElUQUwgTEVUVEVSIERJQUxFQ1QtUCBLQVBBO0x1OzA7TDs7Ozs7Tjs7OzsyQ0I5OworMkNCOTtDT1BUSUMgU01BTEwgTEVUVEVSIERJQUxFQ1QtUCBLQVBBO0xsOzA7TDs7Ozs7Tjs7OzJDQjg7OzJDQjgKKzJDQkE7Q09QVElDIENBUElUQUwgTEVUVEVSIERJQUxFQ1QtUCBOSTtMdTswO0w7Ozs7O047Ozs7MkNCQjsKKzJDQkI7Q09QVElDIFNNQUxMIExFVFRFUiBESUFMRUNULVAgTkk7TGw7MDtMOzs7OztOOzs7MkNCQTs7MkNCQQorMkNCQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgQ1JZUFRPR1JBTU1JQyBOSTtMdTswO0w7Ozs7O047Ozs7MkNCRDsKKzJDQkQ7Q09QVElDIFNNQUxMIExFVFRFUiBDUllQVE9HUkFNTUlDIE5JO0xsOzA7TDs7Ozs7Tjs7OzJDQkM7OzJDQkMKKzJDQkU7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBDT1BUSUMgT09VO0x1OzA7TDs7Ozs7Tjs7OzsyQ0JGOworMkNCRjtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgT09VO0xsOzA7TDs7Ozs7Tjs7OzJDQkU7OzJDQkUKKzJDQzA7Q09QVElDIENBUElUQUwgTEVUVEVSIFNBTVBJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0MxOworMkNDMTtDT1BUSUMgU01BTEwgTEVUVEVSIFNBTVBJO0xsOzA7TDs7Ozs7Tjs7OzJDQzA7OzJDQzAKKzJDQzI7Q09QVElDIENBUElUQUwgTEVUVEVSIENST1NTRUQgU0hFSTtMdTswO0w7Ozs7O047Ozs7MkNDMzsKKzJDQzM7Q09QVElDIFNNQUxMIExFVFRFUiBDUk9TU0VEIFNIRUk7TGw7MDtMOzs7OztOOzs7MkNDMjs7MkNDMgorMkNDNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBTSEVJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0M1OworMkNDNTtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgU0hFSTtMbDswO0w7Ozs7O047OzsyQ0M0OzsyQ0M0CisyQ0M2O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEVTSDtMdTswO0w7Ozs7O047Ozs7MkNDNzsKKzJDQzc7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIEVTSDtMbDswO0w7Ozs7O047OzsyQ0M2OzsyQ0M2CisyQ0M4O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBBS0hNSU1JQyBLSEVJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0M5OworMkNDOTtDT1BUSUMgU01BTEwgTEVUVEVSIEFLSE1JTUlDIEtIRUk7TGw7MDtMOzs7OztOOzs7MkNDODs7MkNDOAorMkNDQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRElBTEVDVC1QIEhPUkk7THU7MDtMOzs7OztOOzs7OzJDQ0I7CisyQ0NCO0NPUFRJQyBTTUFMTCBMRVRURVIgRElBTEVDVC1QIEhPUkk7TGw7MDtMOzs7OztOOzs7MkNDQTs7MkNDQQorMkNDQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBIT1JJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0NEOworMkNDRDtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgSE9SSTtMbDswO0w7Ozs7O047OzsyQ0NDOzsyQ0NDCisyQ0NFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEhBO0x1OzA7TDs7Ozs7Tjs7OzsyQ0NGOworMkNDRjtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgSEE7TGw7MDtMOzs7OztOOzs7MkNDRTs7MkNDRQorMkNEMDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgTC1TSEFQRUQgSEE7THU7MDtMOzs7OztOOzs7OzJDRDE7CisyQ0QxO0NPUFRJQyBTTUFMTCBMRVRURVIgTC1TSEFQRUQgSEE7TGw7MDtMOzs7OztOOzs7MkNEMDs7MkNEMAorMkNEMjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBIRUk7THU7MDtMOzs7OztOOzs7OzJDRDM7CisyQ0QzO0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBIRUk7TGw7MDtMOzs7OztOOzs7MkNEMjs7MkNEMgorMkNENDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBIQVQ7THU7MDtMOzs7OztOOzs7OzJDRDU7CisyQ0Q1O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBIQVQ7TGw7MDtMOzs7OztOOzs7MkNENDs7MkNENAorMkNENjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBHQU5HSUE7THU7MDtMOzs7OztOOzs7OzJDRDc7CisyQ0Q3O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBHQU5HSUE7TGw7MDtMOzs7OztOOzs7MkNENjs7MkNENgorMkNEODtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBESkE7THU7MDtMOzs7OztOOzs7OzJDRDk7CisyQ0Q5O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBESkE7TGw7MDtMOzs7OztOOzs7MkNEODs7MkNEOAorMkNEQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBTSElNQTtMdTswO0w7Ozs7O047Ozs7MkNEQjsKKzJDREI7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIFNISU1BO0xsOzA7TDs7Ozs7Tjs7OzJDREE7OzJDREEKKzJDREM7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBOVUJJQU4gU0hJTUE7THU7MDtMOzs7OztOOzs7OzJDREQ7CisyQ0REO0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIE5VQklBTiBTSElNQTtMbDswO0w7Ozs7O047OzsyQ0RDOzsyQ0RDCisyQ0RFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgTlVCSUFOIE5HSTtMdTswO0w7Ozs7O047Ozs7MkNERjsKKzJDREY7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgTlVCSUFOIE5HSTtMbDswO0w7Ozs7O047OzsyQ0RFOzsyQ0RFCisyQ0UwO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgTlVCSUFOIE5ZSTtMdTswO0w7Ozs7O047Ozs7MkNFMTsKKzJDRTE7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgTlVCSUFOIE5ZSTtMbDswO0w7Ozs7O047OzsyQ0UwOzsyQ0UwCisyQ0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgTlVCSUFOIFdBVTtMdTswO0w7Ozs7O047Ozs7MkNFMzsKKzJDRTM7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgTlVCSUFOIFdBVTtMbDswO0w7Ozs7O047OzsyQ0UyOzsyQ0UyCisyQ0U0O0NPUFRJQyBTWU1CT0wgS0FJO0xsOzA7TDs7Ozs7Tjs7Ozs7CisyQ0U1O0NPUFRJQyBTWU1CT0wgTUkgUk87U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0U2O0NPUFRJQyBTWU1CT0wgUEkgUk87U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0U3O0NPUFRJQyBTWU1CT0wgU1RBVVJPUztTbzswO09OOzs7OztOOzs7OzsKKzJDRTg7Q09QVElDIFNZTUJPTCBUQVUgUk87U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0U5O0NPUFRJQyBTWU1CT0wgS0hJIFJPO1NvOzA7T047Ozs7O047Ozs7OworMkNFQTtDT1BUSUMgU1lNQk9MIFNISU1BIFNJTUE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0Y5O0NPUFRJQyBPTEQgTlVCSUFOIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzJDRkE7Q09QVElDIE9MRCBOVUJJQU4gRElSRUNUIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyQ0ZCO0NPUFRJQyBPTEQgTlVCSUFOIElORElSRUNUIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyQ0ZDO0NPUFRJQyBPTEQgTlVCSUFOIFZFUlNFIERJVklERVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyQ0ZEO0NPUFRJQyBGUkFDVElPTiBPTkUgSEFMRjtObzswO09OOzs7OzEvMjtOOzs7OzsKKzJDRkU7Q09QVElDIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzJDRkY7Q09QVElDIE1PUlBIT0xPR0lDQUwgRElWSURFUjtQbzswO09OOzs7OztOOzs7OzsKKzJEMDA7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMDs7MTBBMAorMkQwMTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQkFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMTs7MTBBMQorMkQwMjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0FOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMjs7MTBBMgorMkQwMztHRU9SR0lBTiBTTUFMTCBMRVRURVIgRE9OO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMzs7MTBBMworMkQwNDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE0OzsxMEE0CisyRDA1O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBWSU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE1OzsxMEE1CisyRDA2O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBaRU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE2OzsxMEE2CisyRDA3O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE3OzsxMEE3CisyRDA4O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBJTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTg7OzEwQTgKKzJEMDk7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTk7OzEwQTkKKzJEMEE7R0VPUkdJQU4gU01BTEwgTEVUVEVSIExBUztMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUE7OzEwQUEKKzJEMEI7R0VPUkdJQU4gU01BTEwgTEVUVEVSIE1BTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUI7OzEwQUIKKzJEMEM7R0VPUkdJQU4gU01BTEwgTEVUVEVSIE5BUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUM7OzEwQUMKKzJEMEQ7R0VPUkdJQU4gU01BTEwgTEVUVEVSIE9OO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBRDs7MTBBRAorMkQwRTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBRTs7MTBBRQorMkQwRjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkhBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUY7OzEwQUYKKzJEMTA7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFJBRTtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjA7OzEwQjAKKzJEMTE7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjE7OzEwQjEKKzJEMTI7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjI7OzEwQjIKKzJEMTM7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFVOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCMzs7MTBCMworMkQxNDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEhBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjQ7OzEwQjQKKzJEMTU7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtIQVI7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEI1OzsxMEI1CisyRDE2O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHSEFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCNjs7MTBCNgorMkQxNztHRU9SR0lBTiBTTUFMTCBMRVRURVIgUUFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCNzs7MTBCNworMkQxODtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0hJTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjg7OzEwQjgKKzJEMTk7R0VPUkdJQU4gU01BTEwgTEVUVEVSIENISU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEI5OzsxMEI5CisyRDFBO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJBOzsxMEJBCisyRDFCO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBKSUw7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJCOzsxMEJCCisyRDFDO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSUw7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJDOzsxMEJDCisyRDFEO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSEFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCRDs7MTBCRAorMkQxRTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWEFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCRTs7MTBCRQorMkQxRjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSkhBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQkY7OzEwQkYKKzJEMjA7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBRTtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQzA7OzEwQzAKKzJEMjE7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhFO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBDMTs7MTBDMQorMkQyMjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSElFO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBDMjs7MTBDMgorMkQyMztHRU9SR0lBTiBTTUFMTCBMRVRURVIgV0U7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEMzOzsxMEMzCisyRDI0O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQVI7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEM0OzsxMEM0CisyRDI1O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIT0U7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEM1OzsxMEM1CisyRDMwO1RJRklOQUdIIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMkQzMTtUSUZJTkFHSCBMRVRURVIgWUFCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDMyO1RJRklOQUdIIExFVFRFUiBZQUJIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDMzO1RJRklOQUdIIExFVFRFUiBZQUc7TG87MDtMOzs7OztOOzs7OzsKKzJEMzQ7VElGSU5BR0ggTEVUVEVSIFlBR0hIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDM1O1RJRklOQUdIIExFVFRFUiBCRVJCRVIgQUNBREVNWSBZQUo7TG87MDtMOzs7OztOOzs7OzsKKzJEMzY7VElGSU5BR0ggTEVUVEVSIFlBSjtMbzswO0w7Ozs7O047Ozs7OworMkQzNztUSUZJTkFHSCBMRVRURVIgWUFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDM4O1RJRklOQUdIIExFVFRFUiBZQURIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDM5O1RJRklOQUdIIExFVFRFUiBZQUREO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDNBO1RJRklOQUdIIExFVFRFUiBZQURESDtMbzswO0w7Ozs7O047Ozs7OworMkQzQjtUSUZJTkFHSCBMRVRURVIgWUVZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDNDO1RJRklOQUdIIExFVFRFUiBZQUY7TG87MDtMOzs7OztOOzs7OzsKKzJEM0Q7VElGSU5BR0ggTEVUVEVSIFlBSztMbzswO0w7Ozs7O047Ozs7OworMkQzRTtUSUZJTkFHSCBMRVRURVIgVFVBUkVHIFlBSztMbzswO0w7Ozs7O047Ozs7OworMkQzRjtUSUZJTkFHSCBMRVRURVIgWUFLSEg7TG87MDtMOzs7OztOOzs7OzsKKzJENDA7VElGSU5BR0ggTEVUVEVSIFlBSDtMbzswO0w7Ozs7O047O1R1YXJlZyB5YWI7OzsKKzJENDE7VElGSU5BR0ggTEVUVEVSIEJFUkJFUiBBQ0FERU1ZIFlBSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0MjtUSUZJTkFHSCBMRVRURVIgVFVBUkVHIFlBSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0MztUSUZJTkFHSCBMRVRURVIgWUFISDtMbzswO0w7Ozs7O047Ozs7OworMkQ0NDtUSUZJTkFHSCBMRVRURVIgWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ1O1RJRklOQUdIIExFVFRFUiBZQUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ2O1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFLSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0NztUSUZJTkFHSCBMRVRURVIgWUFRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ4O1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ5O1RJRklOQUdIIExFVFRFUiBZSTtMbzswO0w7Ozs7O047Ozs7OworMkQ0QTtUSUZJTkFHSCBMRVRURVIgWUFaSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0QjtUSUZJTkFHSCBMRVRURVIgQUhBR0dBUiBZQVpIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDRDO1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFaSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0RDtUSUZJTkFHSCBMRVRURVIgWUFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDRFO1RJRklOQUdIIExFVFRFUiBZQU07TG87MDtMOzs7OztOOzs7OzsKKzJENEY7VElGSU5BR0ggTEVUVEVSIFlBTjtMbzswO0w7Ozs7O047Ozs7OworMkQ1MDtUSUZJTkFHSCBMRVRURVIgVFVBUkVHIFlBR047TG87MDtMOzs7OztOOzs7OzsKKzJENTE7VElGSU5BR0ggTEVUVEVSIFRVQVJFRyBZQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDUyO1RJRklOQUdIIExFVFRFUiBZQVA7TG87MDtMOzs7OztOOzs7OzsKKzJENTM7VElGSU5BR0ggTEVUVEVSIFlVO0xvOzA7TDs7Ozs7Tjs7VHVhcmVnIHlhdzs7OworMkQ1NDtUSUZJTkFHSCBMRVRURVIgWUFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDU1O1RJRklOQUdIIExFVFRFUiBZQVJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDU2O1RJRklOQUdIIExFVFRFUiBZQUdIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDU3O1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFHSDtMbzswO0w7Ozs7O047Ozs7OworMkQ1ODtUSUZJTkFHSCBMRVRURVIgQVlFUiBZQUdIO0xvOzA7TDs7Ozs7Tjs7QWRyYXIgeWFqOzs7CisyRDU5O1RJRklOQUdIIExFVFRFUiBZQVM7TG87MDtMOzs7OztOOzs7OzsKKzJENUE7VElGSU5BR0ggTEVUVEVSIFlBU1M7TG87MDtMOzs7OztOOzs7OzsKKzJENUI7VElGSU5BR0ggTEVUVEVSIFlBU0g7TG87MDtMOzs7OztOOzs7OzsKKzJENUM7VElGSU5BR0ggTEVUVEVSIFlBVDtMbzswO0w7Ozs7O047Ozs7OworMkQ1RDtUSUZJTkFHSCBMRVRURVIgWUFUSDtMbzswO0w7Ozs7O047Ozs7OworMkQ1RTtUSUZJTkFHSCBMRVRURVIgWUFDSDtMbzswO0w7Ozs7O047Ozs7OworMkQ1RjtUSUZJTkFHSCBMRVRURVIgWUFUVDtMbzswO0w7Ozs7O047Ozs7OworMkQ2MDtUSUZJTkFHSCBMRVRURVIgWUFWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDYxO1RJRklOQUdIIExFVFRFUiBZQVc7TG87MDtMOzs7OztOOzs7OzsKKzJENjI7VElGSU5BR0ggTEVUVEVSIFlBWTtMbzswO0w7Ozs7O047Ozs7OworMkQ2MztUSUZJTkFHSCBMRVRURVIgWUFaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDY0O1RJRklOQUdIIExFVFRFUiBUQVdFTExFTUVUIFlBWjtMbzswO0w7Ozs7O047O2hhcnBvb24geWF6Ozs7CisyRDY1O1RJRklOQUdIIExFVFRFUiBZQVpaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDZGO1RJRklOQUdIIE1PRElGSUVSIExFVFRFUiBMQUJJQUxJWkFUSU9OIE1BUks7TG07MDtMOzxzdXBlcj4gMkQ2MTs7OztOOzt0YW1hdGFydDs7OworMkQ4MDtFVEhJT1BJQyBTWUxMQUJMRSBMT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODE7RVRISU9QSUMgU1lMTEFCTEUgTU9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDgyO0VUSElPUElDIFNZTExBQkxFIFJPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4MztFVEhJT1BJQyBTWUxMQUJMRSBTT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODQ7RVRISU9QSUMgU1lMTEFCTEUgU0hPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4NTtFVEhJT1BJQyBTWUxMQUJMRSBCT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODY7RVRISU9QSUMgU1lMTEFCTEUgVE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDg3O0VUSElPUElDIFNZTExBQkxFIENPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4ODtFVEhJT1BJQyBTWUxMQUJMRSBOT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODk7RVRISU9QSUMgU1lMTEFCTEUgTllPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4QTtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDhCO0VUSElPUElDIFNZTExBQkxFIFpPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4QztFVEhJT1BJQyBTWUxMQUJMRSBET0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOEQ7RVRISU9QSUMgU1lMTEFCTEUgRERPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4RTtFVEhJT1BJQyBTWUxMQUJMRSBKT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOEY7RVRISU9QSUMgU1lMTEFCTEUgVEhPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ5MDtFVEhJT1BJQyBTWUxMQUJMRSBDSE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDkxO0VUSElPUElDIFNZTExBQkxFIFBIT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOTI7RVRISU9QSUMgU1lMTEFCTEUgUE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDkzO0VUSElPUElDIFNZTExBQkxFIEdHV0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOTQ7RVRISU9QSUMgU1lMTEFCTEUgR0dXSTtMbzswO0w7Ozs7O047Ozs7OworMkQ5NTtFVEhJT1BJQyBTWUxMQUJMRSBHR1dFRTtMbzswO0w7Ozs7O047Ozs7OworMkQ5NjtFVEhJT1BJQyBTWUxMQUJMRSBHR1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREEwO0VUSElPUElDIFNZTExBQkxFIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMkRBMTtFVEhJT1BJQyBTWUxMQUJMRSBTU1U7TG87MDtMOzs7OztOOzs7OzsKKzJEQTI7RVRISU9QSUMgU1lMTEFCTEUgU1NJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREEzO0VUSElPUElDIFNZTExBQkxFIFNTQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQTQ7RVRISU9QSUMgU1lMTEFCTEUgU1NFRTtMbzswO0w7Ozs7O047Ozs7OworMkRBNTtFVEhJT1BJQyBTWUxMQUJMRSBTU0U7TG87MDtMOzs7OztOOzs7OzsKKzJEQTY7RVRISU9QSUMgU1lMTEFCTEUgU1NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREE4O0VUSElPUElDIFNZTExBQkxFIENDQTtMbzswO0w7Ozs7O047Ozs7OworMkRBOTtFVEhJT1BJQyBTWUxMQUJMRSBDQ1U7TG87MDtMOzs7OztOOzs7OzsKKzJEQUE7RVRISU9QSUMgU1lMTEFCTEUgQ0NJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREFCO0VUSElPUElDIFNZTExBQkxFIENDQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQUM7RVRISU9QSUMgU1lMTEFCTEUgQ0NFRTtMbzswO0w7Ozs7O047Ozs7OworMkRBRDtFVEhJT1BJQyBTWUxMQUJMRSBDQ0U7TG87MDtMOzs7OztOOzs7OzsKKzJEQUU7RVRISU9QSUMgU1lMTEFCTEUgQ0NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREIwO0VUSElPUElDIFNZTExBQkxFIFpaQTtMbzswO0w7Ozs7O047Ozs7OworMkRCMTtFVEhJT1BJQyBTWUxMQUJMRSBaWlU7TG87MDtMOzs7OztOOzs7OzsKKzJEQjI7RVRISU9QSUMgU1lMTEFCTEUgWlpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREIzO0VUSElPUElDIFNZTExBQkxFIFpaQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQjQ7RVRISU9QSUMgU1lMTEFCTEUgWlpFRTtMbzswO0w7Ozs7O047Ozs7OworMkRCNTtFVEhJT1BJQyBTWUxMQUJMRSBaWkU7TG87MDtMOzs7OztOOzs7OzsKKzJEQjY7RVRISU9QSUMgU1lMTEFCTEUgWlpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREI4O0VUSElPUElDIFNZTExBQkxFIENDSEE7TG87MDtMOzs7OztOOzs7OzsKKzJEQjk7RVRISU9QSUMgU1lMTEFCTEUgQ0NIVTtMbzswO0w7Ozs7O047Ozs7OworMkRCQTtFVEhJT1BJQyBTWUxMQUJMRSBDQ0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREJCO0VUSElPUElDIFNZTExBQkxFIENDSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREJDO0VUSElPUElDIFNZTExBQkxFIENDSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREJEO0VUSElPUElDIFNZTExBQkxFIENDSEU7TG87MDtMOzs7OztOOzs7OzsKKzJEQkU7RVRISU9QSUMgU1lMTEFCTEUgQ0NITztMbzswO0w7Ozs7O047Ozs7OworMkRDMDtFVEhJT1BJQyBTWUxMQUJMRSBRWUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQzE7RVRISU9QSUMgU1lMTEFCTEUgUVlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREMyO0VUSElPUElDIFNZTExBQkxFIFFZSTtMbzswO0w7Ozs7O047Ozs7OworMkRDMztFVEhJT1BJQyBTWUxMQUJMRSBRWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREM0O0VUSElPUElDIFNZTExBQkxFIFFZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJEQzU7RVRISU9QSUMgU1lMTEFCTEUgUVlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREM2O0VUSElPUElDIFNZTExBQkxFIFFZTztMbzswO0w7Ozs7O047Ozs7OworMkRDODtFVEhJT1BJQyBTWUxMQUJMRSBLWUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQzk7RVRISU9QSUMgU1lMTEFCTEUgS1lVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRENBO0VUSElPUElDIFNZTExBQkxFIEtZSTtMbzswO0w7Ozs7O047Ozs7OworMkRDQjtFVEhJT1BJQyBTWUxMQUJMRSBLWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRENDO0VUSElPUElDIFNZTExBQkxFIEtZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJEQ0Q7RVRISU9QSUMgU1lMTEFCTEUgS1lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRENFO0VUSElPUElDIFNZTExBQkxFIEtZTztMbzswO0w7Ozs7O047Ozs7OworMkREMDtFVEhJT1BJQyBTWUxMQUJMRSBYWUE7TG87MDtMOzs7OztOOzs7OzsKKzJERDE7RVRISU9QSUMgU1lMTEFCTEUgWFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQyO0VUSElPUElDIFNZTExBQkxFIFhZSTtMbzswO0w7Ozs7O047Ozs7OworMkREMztFVEhJT1BJQyBTWUxMQUJMRSBYWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQ0O0VUSElPUElDIFNZTExBQkxFIFhZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJERDU7RVRISU9QSUMgU1lMTEFCTEUgWFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQ2O0VUSElPUElDIFNZTExBQkxFIFhZTztMbzswO0w7Ozs7O047Ozs7OworMkREODtFVEhJT1BJQyBTWUxMQUJMRSBHWUE7TG87MDtMOzs7OztOOzs7OzsKKzJERDk7RVRISU9QSUMgU1lMTEFCTEUgR1lVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRERBO0VUSElPUElDIFNZTExBQkxFIEdZSTtMbzswO0w7Ozs7O047Ozs7OworMkREQjtFVEhJT1BJQyBTWUxMQUJMRSBHWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRERDO0VUSElPUElDIFNZTExBQkxFIEdZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJEREQ7RVRISU9QSUMgU1lMTEFCTEUgR1lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRERFO0VUSElPUElDIFNZTExBQkxFIEdZTztMbzswO0w7Ozs7O047Ozs7OworMkUwMDtSSUdIVCBBTkdMRSBTVUJTVElUVVRJT04gTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMkUwMTtSSUdIVCBBTkdMRSBET1RURUQgU1VCU1RJVFVUSU9OIE1BUktFUjtQbzswO09OOzs7OztOOzs7OzsKKzJFMDI7TEVGVCBTVUJTVElUVVRJT04gQlJBQ0tFVDtQaTswO09OOzs7OztZOzs7OzsKKzJFMDM7UklHSFQgU1VCU1RJVFVUSU9OIEJSQUNLRVQ7UGY7MDtPTjs7Ozs7WTs7Ozs7CisyRTA0O0xFRlQgRE9UVEVEIFNVQlNUSVRVVElPTiBCUkFDS0VUO1BpOzA7T047Ozs7O1k7Ozs7OworMkUwNTtSSUdIVCBET1RURUQgU1VCU1RJVFVUSU9OIEJSQUNLRVQ7UGY7MDtPTjs7Ozs7WTs7Ozs7CisyRTA2O1JBSVNFRCBJTlRFUlBPTEFUSU9OIE1BUktFUjtQbzswO09OOzs7OztOOzs7OzsKKzJFMDc7UkFJU0VEIERPVFRFRCBJTlRFUlBPTEFUSU9OIE1BUktFUjtQbzswO09OOzs7OztOOzs7OzsKKzJFMDg7RE9UVEVEIFRSQU5TUE9TSVRJT04gTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMkUwOTtMRUZUIFRSQU5TUE9TSVRJT04gQlJBQ0tFVDtQaTswO09OOzs7OztZOzs7OzsKKzJFMEE7UklHSFQgVFJBTlNQT1NJVElPTiBCUkFDS0VUO1BmOzA7T047Ozs7O1k7Ozs7OworMkUwQjtSQUlTRUQgU1FVQVJFO1BvOzA7T047Ozs7O047Ozs7OworMkUwQztMRUZUIFJBSVNFRCBPTUlTU0lPTiBCUkFDS0VUO1BpOzA7T047Ozs7O1k7Ozs7OworMkUwRDtSSUdIVCBSQUlTRUQgT01JU1NJT04gQlJBQ0tFVDtQZjswO09OOzs7OztZOzs7OzsKKzJFMEU7RURJVE9SSUFMIENPUk9OSVM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTBGO1BBUkFHUkFQSE9TO1BvOzA7T047Ozs7O047Ozs7OworMkUxMDtGT1JLRUQgUEFSQUdSQVBIT1M7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTExO1JFVkVSU0VEIEZPUktFRCBQQVJBR1JBUEhPUztQbzswO09OOzs7OztOOzs7OzsKKzJFMTI7SFlQT0RJQVNUT0xFO1BvOzA7T047Ozs7O047Ozs7OworMkUxMztET1RURUQgT0JFTE9TO1BvOzA7T047Ozs7O047Ozs7OworMkUxNDtET1dOV0FSRFMgQU5DT1JBO1BvOzA7T047Ozs7O047Ozs7OworMkUxNTtVUFdBUkRTIEFOQ09SQTtQbzswO09OOzs7OztOOzs7OzsKKzJFMTY7RE9UVEVEIFJJR0hULVBPSU5USU5HIEFOR0xFO1BvOzA7T047Ozs7O047Ozs7OworMkUxNztET1VCTEUgT0JMSVFVRSBIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyRTFDO0xFRlQgTE9XIFBBUkFQSFJBU0UgQlJBQ0tFVDtQaTswO09OOzs7OztZOzs7OzsKKzJFMUQ7UklHSFQgTE9XIFBBUkFQSFJBU0UgQlJBQ0tFVDtQZjswO09OOzs7OztZOzs7OzsKKzJFODA7Q0pLIFJBRElDQUwgUkVQRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkU4MTtDSksgUkFESUNBTCBDTElGRjtTbzswO09OOzs7OztOOzs7OzsKKzJFODI7Q0pLIFJBRElDQUwgU0VDT05EIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFODM7Q0pLIFJBRElDQUwgU0VDT05EIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFODQ7Q0pLIFJBRElDQUwgU0VDT05EIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkU4NTtDSksgUkFESUNBTCBQRVJTT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg2O0NKSyBSQURJQ0FMIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzJFODc7Q0pLIFJBRElDQUwgVEFCTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg4O0NKSyBSQURJQ0FMIEtOSUZFIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFODk7Q0pLIFJBRElDQUwgS05JRkUgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU4QTtDSksgUkFESUNBTCBESVZJTkFUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMkU4QjtDSksgUkFESUNBTCBTRUFMO1NvOzA7T047Ozs7O047Ozs7OworMkU4QztDSksgUkFESUNBTCBTTUFMTCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThEO0NKSyBSQURJQ0FMIFNNQUxMIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOEU7Q0pLIFJBRElDQUwgTEFNRSBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThGO0NKSyBSQURJQ0FMIExBTUUgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5MDtDSksgUkFESUNBTCBMQU1FIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkU5MTtDSksgUkFESUNBTCBMQU1FIEZPVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkyO0NKSyBSQURJQ0FMIFNOQUtFO1NvOzA7T047Ozs7O047Ozs7OworMkU5MztDSksgUkFESUNBTCBUSFJFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk0O0NKSyBSQURJQ0FMIFNOT1VUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOTU7Q0pLIFJBRElDQUwgU05PVVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5NjtDSksgUkFESUNBTCBIRUFSVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk3O0NKSyBSQURJQ0FMIEhFQVJUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOTg7Q0pLIFJBRElDQUwgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzJFOTk7Q0pLIFJBRElDQUwgUkFQO1NvOzA7T047Ozs7O047Ozs7OworMkU5QjtDSksgUkFESUNBTCBDSE9LRTtTbzswO09OOzs7OztOOzs7OzsKKzJFOUM7Q0pLIFJBRElDQUwgU1VOO1NvOzA7T047Ozs7O047Ozs7OworMkU5RDtDSksgUkFESUNBTCBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMkU5RTtDSksgUkFESUNBTCBERUFUSDtTbzswO09OOzs7OztOOzs7OzsKKzJFOUY7Q0pLIFJBRElDQUwgTU9USEVSO1NvOzA7T047PGNvbXBhdD4gNkJDRDs7OztOOzs7OzsKKzJFQTA7Q0pLIFJBRElDQUwgQ0lWSUxJQU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUExO0NKSyBSQURJQ0FMIFdBVEVSIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQTI7Q0pLIFJBRElDQUwgV0FURVIgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBMztDSksgUkFESUNBTCBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworMkVBNDtDSksgUkFESUNBTCBQQVcgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVBNTtDSksgUkFESUNBTCBQQVcgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBNjtDSksgUkFESUNBTCBTSU1QTElGSUVEIEhBTEYgVFJFRSBUUlVOSztTbzswO09OOzs7OztOOzs7OzsKKzJFQTc7Q0pLIFJBRElDQUwgQ09XO1NvOzA7T047Ozs7O047Ozs7OworMkVBODtDSksgUkFESUNBTCBET0c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE5O0NKSyBSQURJQ0FMIEpBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFBO0NKSyBSQURJQ0FMIEJPTFQgT0YgQ0xPVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFCO0NKSyBSQURJQ0FMIEVZRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUM7Q0pLIFJBRElDQUwgU1BJUklUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUQ7Q0pLIFJBRElDQUwgU1BJUklUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQUU7Q0pLIFJBRElDQUwgQkFNQk9PO1NvOzA7T047Ozs7O047Ozs7OworMkVBRjtDSksgUkFESUNBTCBTSUxLO1NvOzA7T047Ozs7O047Ozs7OworMkVCMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0lMSztTbzswO09OOzs7OztOOzs7OzsKKzJFQjE7Q0pLIFJBRElDQUwgTkVUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjI7Q0pLIFJBRElDQUwgTkVUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQjM7Q0pLIFJBRElDQUwgTkVUIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkVCNDtDSksgUkFESUNBTCBORVQgRk9VUjtTbzswO09OOzs7OztOOzs7OzsKKzJFQjU7Q0pLIFJBRElDQUwgTUVTSDtTbzswO09OOzs7OztOOzs7OzsKKzJFQjY7Q0pLIFJBRElDQUwgU0hFRVA7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI3O0NKSyBSQURJQ0FMIFJBTTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjg7Q0pLIFJBRElDQUwgRVdFO1NvOzA7T047Ozs7O047Ozs7OworMkVCOTtDSksgUkFESUNBTCBPTEQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJBO0NKSyBSQURJQ0FMIEJSVVNIIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQkI7Q0pLIFJBRElDQUwgQlJVU0ggVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVCQztDSksgUkFESUNBTCBNRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkVCRDtDSksgUkFESUNBTCBNT1JUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJFO0NKSyBSQURJQ0FMIEdSQVNTIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQkY7Q0pLIFJBRElDQUwgR1JBU1MgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVDMDtDSksgUkFESUNBTCBHUkFTUyBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQzE7Q0pLIFJBRElDQUwgVElHRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMyO0NKSyBSQURJQ0FMIENMT1RIRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMzO0NKSyBSQURJQ0FMIFdFU1QgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVDNDtDSksgUkFESUNBTCBXRVNUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQzU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFNFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQzY7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBIT1JOO1NvOzA7T047Ozs7O047Ozs7OworMkVDNztDSksgUkFESUNBTCBIT1JOO1NvOzA7T047Ozs7O047Ozs7OworMkVDODtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU1BFRUNIO1NvOzA7T047Ozs7O047Ozs7OworMkVDOTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0hFTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNBO0NKSyBSQURJQ0FMIEZPT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNCO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBDQVJUO1NvOzA7T047Ozs7O047Ozs7OworMkVDQztDSksgUkFESUNBTCBTSU1QTElGSUVEIFdBTEs7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNEO0NKSyBSQURJQ0FMIFdBTEsgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVDRTtDSksgUkFESUNBTCBXQUxLIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQ0Y7Q0pLIFJBRElDQUwgQ0lUWTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEdPTEQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQxO0NKSyBSQURJQ0FMIExPTkcgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVEMjtDSksgUkFESUNBTCBMT05HIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFRDM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIExPTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ0O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBHQVRFO1NvOzA7T047Ozs7O047Ozs7OworMkVENTtDSksgUkFESUNBTCBNT1VORCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ2O0NKSyBSQURJQ0FMIE1PVU5EIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFRDc7Q0pLIFJBRElDQUwgUkFJTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRDg7Q0pLIFJBRElDQUwgQkxVRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDk7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRBTk5FRCBMRUFUSEVSO1NvOzA7T047Ozs7O047Ozs7OworMkVEQTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgTEVBRjtTbzswO09OOzs7OztOOzs7OzsKKzJFREI7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFdJTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURDO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBGTFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUREO0NKSyBSQURJQ0FMIEVBVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURFO0NKSyBSQURJQ0FMIEVBVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURGO0NKSyBSQURJQ0FMIEVBVCBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRTA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTE7Q0pLIFJBRElDQUwgSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTI7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEhPUlNFO1NvOzA7T047Ozs7O047Ozs7OworMkVFMztDSksgUkFESUNBTCBCT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVFNDtDSksgUkFESUNBTCBHSE9TVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEZJU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU2O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBCSVJEO1NvOzA7T047Ozs7O047Ozs7OworMkVFNztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0FMVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTg7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBXSEVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTk7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBZRUxMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVBO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBGUk9HO1NvOzA7T047Ozs7O047Ozs7OworMkVFQjtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgRVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRUM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEVWRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVEO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBUT09USDtTbzswO09OOzs7OztOOzs7OzsKKzJFRUU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRPT1RIO1NvOzA7T047Ozs7O047Ozs7OworMkVFRjtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgRFJBR09OO1NvOzA7T047Ozs7O047Ozs7OworMkVGMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRFJBR09OO1NvOzA7T047Ozs7O047Ozs7OworMkVGMTtDSksgUkFESUNBTCBUVVJUTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYyO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBUVVJUTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYzO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBUVVJUTEU7U287MDtPTjs8Y29tcGF0PiA5RjlGOzs7O047Ozs7OworMkYwMDtLQU5HWEkgUkFESUNBTCBPTkU7U287MDtPTjs8Y29tcGF0PiA0RTAwOzs7O047Ozs7OworMkYwMTtLQU5HWEkgUkFESUNBTCBMSU5FO1NvOzA7T047PGNvbXBhdD4gNEUyODs7OztOOzs7OzsKKzJGMDI7S0FOR1hJIFJBRElDQUwgRE9UO1NvOzA7T047PGNvbXBhdD4gNEUzNjs7OztOOzs7OzsKKzJGMDM7S0FOR1hJIFJBRElDQUwgU0xBU0g7U287MDtPTjs8Y29tcGF0PiA0RTNGOzs7O047Ozs7OworMkYwNDtLQU5HWEkgUkFESUNBTCBTRUNPTkQ7U287MDtPTjs8Y29tcGF0PiA0RTU5Ozs7O047Ozs7OworMkYwNTtLQU5HWEkgUkFESUNBTCBIT09LO1NvOzA7T047PGNvbXBhdD4gNEU4NTs7OztOOzs7OzsKKzJGMDY7S0FOR1hJIFJBRElDQUwgVFdPO1NvOzA7T047PGNvbXBhdD4gNEU4Qzs7OztOOzs7OzsKKzJGMDc7S0FOR1hJIFJBRElDQUwgTElEO1NvOzA7T047PGNvbXBhdD4gNEVBMDs7OztOOzs7OzsKKzJGMDg7S0FOR1hJIFJBRElDQUwgTUFOO1NvOzA7T047PGNvbXBhdD4gNEVCQTs7OztOOzs7OzsKKzJGMDk7S0FOR1hJIFJBRElDQUwgTEVHUztTbzswO09OOzxjb21wYXQ+IDUxM0Y7Ozs7Tjs7Ozs7CisyRjBBO0tBTkdYSSBSQURJQ0FMIEVOVEVSO1NvOzA7T047PGNvbXBhdD4gNTE2NTs7OztOOzs7OzsKKzJGMEI7S0FOR1hJIFJBRElDQUwgRUlHSFQ7U287MDtPTjs8Y29tcGF0PiA1MTZCOzs7O047Ozs7OworMkYwQztLQU5HWEkgUkFESUNBTCBET1dOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUxODI7Ozs7Tjs7Ozs7CisyRjBEO0tBTkdYSSBSQURJQ0FMIENPVkVSO1NvOzA7T047PGNvbXBhdD4gNTE5Njs7OztOOzs7OzsKKzJGMEU7S0FOR1hJIFJBRElDQUwgSUNFO1NvOzA7T047PGNvbXBhdD4gNTFBQjs7OztOOzs7OzsKKzJGMEY7S0FOR1hJIFJBRElDQUwgVEFCTEU7U287MDtPTjs8Y29tcGF0PiA1MUUwOzs7O047Ozs7OworMkYxMDtLQU5HWEkgUkFESUNBTCBPUEVOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUxRjU7Ozs7Tjs7Ozs7CisyRjExO0tBTkdYSSBSQURJQ0FMIEtOSUZFO1NvOzA7T047PGNvbXBhdD4gNTIwMDs7OztOOzs7OzsKKzJGMTI7S0FOR1hJIFJBRElDQUwgUE9XRVI7U287MDtPTjs8Y29tcGF0PiA1MjlCOzs7O047Ozs7OworMkYxMztLQU5HWEkgUkFESUNBTCBXUkFQO1NvOzA7T047PGNvbXBhdD4gNTJGOTs7OztOOzs7OzsKKzJGMTQ7S0FOR1hJIFJBRElDQUwgU1BPT047U287MDtPTjs8Y29tcGF0PiA1MzE1Ozs7O047Ozs7OworMkYxNTtLQU5HWEkgUkFESUNBTCBSSUdIVCBPUEVOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUzMUE7Ozs7Tjs7Ozs7CisyRjE2O0tBTkdYSSBSQURJQ0FMIEhJRElORyBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA1MzM4Ozs7O047Ozs7OworMkYxNztLQU5HWEkgUkFESUNBTCBURU47U287MDtPTjs8Y29tcGF0PiA1MzQxOzs7O047Ozs7OworMkYxODtLQU5HWEkgUkFESUNBTCBESVZJTkFUSU9OO1NvOzA7T047PGNvbXBhdD4gNTM1Qzs7OztOOzs7OzsKKzJGMTk7S0FOR1hJIFJBRElDQUwgU0VBTDtTbzswO09OOzxjb21wYXQ+IDUzNjk7Ozs7Tjs7Ozs7CisyRjFBO0tBTkdYSSBSQURJQ0FMIENMSUZGO1NvOzA7T047PGNvbXBhdD4gNTM4Mjs7OztOOzs7OzsKKzJGMUI7S0FOR1hJIFJBRElDQUwgUFJJVkFURTtTbzswO09OOzxjb21wYXQ+IDUzQjY7Ozs7Tjs7Ozs7CisyRjFDO0tBTkdYSSBSQURJQ0FMIEFHQUlOO1NvOzA7T047PGNvbXBhdD4gNTNDODs7OztOOzs7OzsKKzJGMUQ7S0FOR1hJIFJBRElDQUwgTU9VVEg7U287MDtPTjs8Y29tcGF0PiA1M0UzOzs7O047Ozs7OworMkYxRTtLQU5HWEkgUkFESUNBTCBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA1NkQ3Ozs7O047Ozs7OworMkYxRjtLQU5HWEkgUkFESUNBTCBFQVJUSDtTbzswO09OOzxjb21wYXQ+IDU3MUY7Ozs7Tjs7Ozs7CisyRjIwO0tBTkdYSSBSQURJQ0FMIFNDSE9MQVI7U287MDtPTjs8Y29tcGF0PiA1OEVCOzs7O047Ozs7OworMkYyMTtLQU5HWEkgUkFESUNBTCBHTztTbzswO09OOzxjb21wYXQ+IDU5MDI7Ozs7Tjs7Ozs7CisyRjIyO0tBTkdYSSBSQURJQ0FMIEdPIFNMT1dMWTtTbzswO09OOzxjb21wYXQ+IDU5MEE7Ozs7Tjs7Ozs7CisyRjIzO0tBTkdYSSBSQURJQ0FMIEVWRU5JTkc7U287MDtPTjs8Y29tcGF0PiA1OTE1Ozs7O047Ozs7OworMkYyNDtLQU5HWEkgUkFESUNBTCBCSUc7U287MDtPTjs8Y29tcGF0PiA1OTI3Ozs7O047Ozs7OworMkYyNTtLQU5HWEkgUkFESUNBTCBXT01BTjtTbzswO09OOzxjb21wYXQ+IDU5NzM7Ozs7Tjs7Ozs7CisyRjI2O0tBTkdYSSBSQURJQ0FMIENISUxEO1NvOzA7T047PGNvbXBhdD4gNUI1MDs7OztOOzs7OzsKKzJGMjc7S0FOR1hJIFJBRElDQUwgUk9PRjtTbzswO09OOzxjb21wYXQ+IDVCODA7Ozs7Tjs7Ozs7CisyRjI4O0tBTkdYSSBSQURJQ0FMIElOQ0g7U287MDtPTjs8Y29tcGF0PiA1QkY4Ozs7O047Ozs7OworMkYyOTtLQU5HWEkgUkFESUNBTCBTTUFMTDtTbzswO09OOzxjb21wYXQ+IDVDMEY7Ozs7Tjs7Ozs7CisyRjJBO0tBTkdYSSBSQURJQ0FMIExBTUU7U287MDtPTjs8Y29tcGF0PiA1QzIyOzs7O047Ozs7OworMkYyQjtLQU5HWEkgUkFESUNBTCBDT1JQU0U7U287MDtPTjs8Y29tcGF0PiA1QzM4Ozs7O047Ozs7OworMkYyQztLQU5HWEkgUkFESUNBTCBTUFJPVVQ7U287MDtPTjs8Y29tcGF0PiA1QzZFOzs7O047Ozs7OworMkYyRDtLQU5HWEkgUkFESUNBTCBNT1VOVEFJTjtTbzswO09OOzxjb21wYXQ+IDVDNzE7Ozs7Tjs7Ozs7CisyRjJFO0tBTkdYSSBSQURJQ0FMIFJJVkVSO1NvOzA7T047PGNvbXBhdD4gNUREQjs7OztOOzs7OzsKKzJGMkY7S0FOR1hJIFJBRElDQUwgV09SSztTbzswO09OOzxjb21wYXQ+IDVERTU7Ozs7Tjs7Ozs7CisyRjMwO0tBTkdYSSBSQURJQ0FMIE9ORVNFTEY7U287MDtPTjs8Y29tcGF0PiA1REYxOzs7O047Ozs7OworMkYzMTtLQU5HWEkgUkFESUNBTCBUVVJCQU47U287MDtPTjs8Y29tcGF0PiA1REZFOzs7O047Ozs7OworMkYzMjtLQU5HWEkgUkFESUNBTCBEUlk7U287MDtPTjs8Y29tcGF0PiA1RTcyOzs7O047Ozs7OworMkYzMztLQU5HWEkgUkFESUNBTCBTSE9SVCBUSFJFQUQ7U287MDtPTjs8Y29tcGF0PiA1RTdBOzs7O047Ozs7OworMkYzNDtLQU5HWEkgUkFESUNBTCBET1RURUQgQ0xJRkY7U287MDtPTjs8Y29tcGF0PiA1RTdGOzs7O047Ozs7OworMkYzNTtLQU5HWEkgUkFESUNBTCBMT05HIFNUUklERTtTbzswO09OOzxjb21wYXQ+IDVFRjQ7Ozs7Tjs7Ozs7CisyRjM2O0tBTkdYSSBSQURJQ0FMIFRXTyBIQU5EUztTbzswO09OOzxjb21wYXQ+IDVFRkU7Ozs7Tjs7Ozs7CisyRjM3O0tBTkdYSSBSQURJQ0FMIFNIT09UO1NvOzA7T047PGNvbXBhdD4gNUYwQjs7OztOOzs7OzsKKzJGMzg7S0FOR1hJIFJBRElDQUwgQk9XO1NvOzA7T047PGNvbXBhdD4gNUYxMzs7OztOOzs7OzsKKzJGMzk7S0FOR1hJIFJBRElDQUwgU05PVVQ7U287MDtPTjs8Y29tcGF0PiA1RjUwOzs7O047Ozs7OworMkYzQTtLQU5HWEkgUkFESUNBTCBCUklTVExFO1NvOzA7T047PGNvbXBhdD4gNUY2MTs7OztOOzs7OzsKKzJGM0I7S0FOR1hJIFJBRElDQUwgU1RFUDtTbzswO09OOzxjb21wYXQ+IDVGNzM7Ozs7Tjs7Ozs7CisyRjNDO0tBTkdYSSBSQURJQ0FMIEhFQVJUO1NvOzA7T047PGNvbXBhdD4gNUZDMzs7OztOOzs7OzsKKzJGM0Q7S0FOR1hJIFJBRElDQUwgSEFMQkVSRDtTbzswO09OOzxjb21wYXQ+IDYyMDg7Ozs7Tjs7Ozs7CisyRjNFO0tBTkdYSSBSQURJQ0FMIERPT1I7U287MDtPTjs8Y29tcGF0PiA2MjM2Ozs7O047Ozs7OworMkYzRjtLQU5HWEkgUkFESUNBTCBIQU5EO1NvOzA7T047PGNvbXBhdD4gNjI0Qjs7OztOOzs7OzsKKzJGNDA7S0FOR1hJIFJBRElDQUwgQlJBTkNIO1NvOzA7T047PGNvbXBhdD4gNjUyRjs7OztOOzs7OzsKKzJGNDE7S0FOR1hJIFJBRElDQUwgUkFQO1NvOzA7T047PGNvbXBhdD4gNjUzNDs7OztOOzs7OzsKKzJGNDI7S0FOR1hJIFJBRElDQUwgU0NSSVBUO1NvOzA7T047PGNvbXBhdD4gNjU4Nzs7OztOOzs7OzsKKzJGNDM7S0FOR1hJIFJBRElDQUwgRElQUEVSO1NvOzA7T047PGNvbXBhdD4gNjU5Nzs7OztOOzs7OzsKKzJGNDQ7S0FOR1hJIFJBRElDQUwgQVhFO1NvOzA7T047PGNvbXBhdD4gNjVBNDs7OztOOzs7OzsKKzJGNDU7S0FOR1hJIFJBRElDQUwgU1FVQVJFO1NvOzA7T047PGNvbXBhdD4gNjVCOTs7OztOOzs7OzsKKzJGNDY7S0FOR1hJIFJBRElDQUwgTk9UO1NvOzA7T047PGNvbXBhdD4gNjVFMDs7OztOOzs7OzsKKzJGNDc7S0FOR1hJIFJBRElDQUwgU1VOO1NvOzA7T047PGNvbXBhdD4gNjVFNTs7OztOOzs7OzsKKzJGNDg7S0FOR1hJIFJBRElDQUwgU0FZO1NvOzA7T047PGNvbXBhdD4gNjZGMDs7OztOOzs7OzsKKzJGNDk7S0FOR1hJIFJBRElDQUwgTU9PTjtTbzswO09OOzxjb21wYXQ+IDY3MDg7Ozs7Tjs7Ozs7CisyRjRBO0tBTkdYSSBSQURJQ0FMIFRSRUU7U287MDtPTjs8Y29tcGF0PiA2NzI4Ozs7O047Ozs7OworMkY0QjtLQU5HWEkgUkFESUNBTCBMQUNLO1NvOzA7T047PGNvbXBhdD4gNkIyMDs7OztOOzs7OzsKKzJGNEM7S0FOR1hJIFJBRElDQUwgU1RPUDtTbzswO09OOzxjb21wYXQ+IDZCNjI7Ozs7Tjs7Ozs7CisyRjREO0tBTkdYSSBSQURJQ0FMIERFQVRIO1NvOzA7T047PGNvbXBhdD4gNkI3OTs7OztOOzs7OzsKKzJGNEU7S0FOR1hJIFJBRElDQUwgV0VBUE9OO1NvOzA7T047PGNvbXBhdD4gNkJCMzs7OztOOzs7OzsKKzJGNEY7S0FOR1hJIFJBRElDQUwgRE8gTk9UO1NvOzA7T047PGNvbXBhdD4gNkJDQjs7OztOOzs7OzsKKzJGNTA7S0FOR1hJIFJBRElDQUwgQ09NUEFSRTtTbzswO09OOzxjb21wYXQ+IDZCRDQ7Ozs7Tjs7Ozs7CisyRjUxO0tBTkdYSSBSQURJQ0FMIEZVUjtTbzswO09OOzxjb21wYXQ+IDZCREI7Ozs7Tjs7Ozs7CisyRjUyO0tBTkdYSSBSQURJQ0FMIENMQU47U287MDtPTjs8Y29tcGF0PiA2QzBGOzs7O047Ozs7OworMkY1MztLQU5HWEkgUkFESUNBTCBTVEVBTTtTbzswO09OOzxjb21wYXQ+IDZDMTQ7Ozs7Tjs7Ozs7CisyRjU0O0tBTkdYSSBSQURJQ0FMIFdBVEVSO1NvOzA7T047PGNvbXBhdD4gNkMzNDs7OztOOzs7OzsKKzJGNTU7S0FOR1hJIFJBRElDQUwgRklSRTtTbzswO09OOzxjb21wYXQ+IDcwNkI7Ozs7Tjs7Ozs7CisyRjU2O0tBTkdYSSBSQURJQ0FMIENMQVc7U287MDtPTjs8Y29tcGF0PiA3MjJBOzs7O047Ozs7OworMkY1NztLQU5HWEkgUkFESUNBTCBGQVRIRVI7U287MDtPTjs8Y29tcGF0PiA3MjM2Ozs7O047Ozs7OworMkY1ODtLQU5HWEkgUkFESUNBTCBET1VCTEUgWDtTbzswO09OOzxjb21wYXQ+IDcyM0I7Ozs7Tjs7Ozs7CisyRjU5O0tBTkdYSSBSQURJQ0FMIEhBTEYgVFJFRSBUUlVOSztTbzswO09OOzxjb21wYXQ+IDcyM0Y7Ozs7Tjs7Ozs7CisyRjVBO0tBTkdYSSBSQURJQ0FMIFNMSUNFO1NvOzA7T047PGNvbXBhdD4gNzI0Nzs7OztOOzs7OzsKKzJGNUI7S0FOR1hJIFJBRElDQUwgRkFORztTbzswO09OOzxjb21wYXQ+IDcyNTk7Ozs7Tjs7Ozs7CisyRjVDO0tBTkdYSSBSQURJQ0FMIENPVztTbzswO09OOzxjb21wYXQ+IDcyNUI7Ozs7Tjs7Ozs7CisyRjVEO0tBTkdYSSBSQURJQ0FMIERPRztTbzswO09OOzxjb21wYXQ+IDcyQUM7Ozs7Tjs7Ozs7CisyRjVFO0tBTkdYSSBSQURJQ0FMIFBST0ZPVU5EO1NvOzA7T047PGNvbXBhdD4gNzM4NDs7OztOOzs7OzsKKzJGNUY7S0FOR1hJIFJBRElDQUwgSkFERTtTbzswO09OOzxjb21wYXQ+IDczODk7Ozs7Tjs7Ozs7CisyRjYwO0tBTkdYSSBSQURJQ0FMIE1FTE9OO1NvOzA7T047PGNvbXBhdD4gNzREQzs7OztOOzs7OzsKKzJGNjE7S0FOR1hJIFJBRElDQUwgVElMRTtTbzswO09OOzxjb21wYXQ+IDc0RTY7Ozs7Tjs7Ozs7CisyRjYyO0tBTkdYSSBSQURJQ0FMIFNXRUVUO1NvOzA7T047PGNvbXBhdD4gNzUxODs7OztOOzs7OzsKKzJGNjM7S0FOR1hJIFJBRElDQUwgTElGRTtTbzswO09OOzxjb21wYXQ+IDc1MUY7Ozs7Tjs7Ozs7CisyRjY0O0tBTkdYSSBSQURJQ0FMIFVTRTtTbzswO09OOzxjb21wYXQ+IDc1Mjg7Ozs7Tjs7Ozs7CisyRjY1O0tBTkdYSSBSQURJQ0FMIEZJRUxEO1NvOzA7T047PGNvbXBhdD4gNzUzMDs7OztOOzs7OzsKKzJGNjY7S0FOR1hJIFJBRElDQUwgQk9MVCBPRiBDTE9USDtTbzswO09OOzxjb21wYXQ+IDc1OEI7Ozs7Tjs7Ozs7CisyRjY3O0tBTkdYSSBSQURJQ0FMIFNJQ0tORVNTO1NvOzA7T047PGNvbXBhdD4gNzU5Mjs7OztOOzs7OzsKKzJGNjg7S0FOR1hJIFJBRElDQUwgRE9UVEVEIFRFTlQ7U287MDtPTjs8Y29tcGF0PiA3Njc2Ozs7O047Ozs7OworMkY2OTtLQU5HWEkgUkFESUNBTCBXSElURTtTbzswO09OOzxjb21wYXQ+IDc2N0Q7Ozs7Tjs7Ozs7CisyRjZBO0tBTkdYSSBSQURJQ0FMIFNLSU47U287MDtPTjs8Y29tcGF0PiA3NkFFOzs7O047Ozs7OworMkY2QjtLQU5HWEkgUkFESUNBTCBESVNIO1NvOzA7T047PGNvbXBhdD4gNzZCRjs7OztOOzs7OzsKKzJGNkM7S0FOR1hJIFJBRElDQUwgRVlFO1NvOzA7T047PGNvbXBhdD4gNzZFRTs7OztOOzs7OzsKKzJGNkQ7S0FOR1hJIFJBRElDQUwgU1BFQVI7U287MDtPTjs8Y29tcGF0PiA3N0RCOzs7O047Ozs7OworMkY2RTtLQU5HWEkgUkFESUNBTCBBUlJPVztTbzswO09OOzxjb21wYXQ+IDc3RTI7Ozs7Tjs7Ozs7CisyRjZGO0tBTkdYSSBSQURJQ0FMIFNUT05FO1NvOzA7T047PGNvbXBhdD4gNzdGMzs7OztOOzs7OzsKKzJGNzA7S0FOR1hJIFJBRElDQUwgU1BJUklUO1NvOzA7T047PGNvbXBhdD4gNzkzQTs7OztOOzs7OzsKKzJGNzE7S0FOR1hJIFJBRElDQUwgVFJBQ0s7U287MDtPTjs8Y29tcGF0PiA3OUI4Ozs7O047Ozs7OworMkY3MjtLQU5HWEkgUkFESUNBTCBHUkFJTjtTbzswO09OOzxjb21wYXQ+IDc5QkU7Ozs7Tjs7Ozs7CisyRjczO0tBTkdYSSBSQURJQ0FMIENBVkU7U287MDtPTjs8Y29tcGF0PiA3QTc0Ozs7O047Ozs7OworMkY3NDtLQU5HWEkgUkFESUNBTCBTVEFORDtTbzswO09OOzxjb21wYXQ+IDdBQ0I7Ozs7Tjs7Ozs7CisyRjc1O0tBTkdYSSBSQURJQ0FMIEJBTUJPTztTbzswO09OOzxjb21wYXQ+IDdBRjk7Ozs7Tjs7Ozs7CisyRjc2O0tBTkdYSSBSQURJQ0FMIFJJQ0U7U287MDtPTjs8Y29tcGF0PiA3QzczOzs7O047Ozs7OworMkY3NztLQU5HWEkgUkFESUNBTCBTSUxLO1NvOzA7T047PGNvbXBhdD4gN0NGODs7OztOOzs7OzsKKzJGNzg7S0FOR1hJIFJBRElDQUwgSkFSO1NvOzA7T047PGNvbXBhdD4gN0YzNjs7OztOOzs7OzsKKzJGNzk7S0FOR1hJIFJBRElDQUwgTkVUO1NvOzA7T047PGNvbXBhdD4gN0Y1MTs7OztOOzs7OzsKKzJGN0E7S0FOR1hJIFJBRElDQUwgU0hFRVA7U287MDtPTjs8Y29tcGF0PiA3RjhBOzs7O047Ozs7OworMkY3QjtLQU5HWEkgUkFESUNBTCBGRUFUSEVSO1NvOzA7T047PGNvbXBhdD4gN0ZCRDs7OztOOzs7OzsKKzJGN0M7S0FOR1hJIFJBRElDQUwgT0xEO1NvOzA7T047PGNvbXBhdD4gODAwMTs7OztOOzs7OzsKKzJGN0Q7S0FOR1hJIFJBRElDQUwgQU5EO1NvOzA7T047PGNvbXBhdD4gODAwQzs7OztOOzs7OzsKKzJGN0U7S0FOR1hJIFJBRElDQUwgUExPVztTbzswO09OOzxjb21wYXQ+IDgwMTI7Ozs7Tjs7Ozs7CisyRjdGO0tBTkdYSSBSQURJQ0FMIEVBUjtTbzswO09OOzxjb21wYXQ+IDgwMzM7Ozs7Tjs7Ozs7CisyRjgwO0tBTkdYSSBSQURJQ0FMIEJSVVNIO1NvOzA7T047PGNvbXBhdD4gODA3Rjs7OztOOzs7OzsKKzJGODE7S0FOR1hJIFJBRElDQUwgTUVBVDtTbzswO09OOzxjb21wYXQ+IDgwODk7Ozs7Tjs7Ozs7CisyRjgyO0tBTkdYSSBSQURJQ0FMIE1JTklTVEVSO1NvOzA7T047PGNvbXBhdD4gODFFMzs7OztOOzs7OzsKKzJGODM7S0FOR1hJIFJBRElDQUwgU0VMRjtTbzswO09OOzxjb21wYXQ+IDgxRUE7Ozs7Tjs7Ozs7CisyRjg0O0tBTkdYSSBSQURJQ0FMIEFSUklWRTtTbzswO09OOzxjb21wYXQ+IDgxRjM7Ozs7Tjs7Ozs7CisyRjg1O0tBTkdYSSBSQURJQ0FMIE1PUlRBUjtTbzswO09OOzxjb21wYXQ+IDgxRkM7Ozs7Tjs7Ozs7CisyRjg2O0tBTkdYSSBSQURJQ0FMIFRPTkdVRTtTbzswO09OOzxjb21wYXQ+IDgyMEM7Ozs7Tjs7Ozs7CisyRjg3O0tBTkdYSSBSQURJQ0FMIE9QUE9TRTtTbzswO09OOzxjb21wYXQ+IDgyMUI7Ozs7Tjs7Ozs7CisyRjg4O0tBTkdYSSBSQURJQ0FMIEJPQVQ7U287MDtPTjs8Y29tcGF0PiA4MjFGOzs7O047Ozs7OworMkY4OTtLQU5HWEkgUkFESUNBTCBTVE9QUElORztTbzswO09OOzxjb21wYXQ+IDgyNkU7Ozs7Tjs7Ozs7CisyRjhBO0tBTkdYSSBSQURJQ0FMIENPTE9SO1NvOzA7T047PGNvbXBhdD4gODI3Mjs7OztOOzs7OzsKKzJGOEI7S0FOR1hJIFJBRElDQUwgR1JBU1M7U287MDtPTjs8Y29tcGF0PiA4Mjc4Ozs7O047Ozs7OworMkY4QztLQU5HWEkgUkFESUNBTCBUSUdFUjtTbzswO09OOzxjb21wYXQ+IDg2NEQ7Ozs7Tjs7Ozs7CisyRjhEO0tBTkdYSSBSQURJQ0FMIElOU0VDVDtTbzswO09OOzxjb21wYXQ+IDg2NkI7Ozs7Tjs7Ozs7CisyRjhFO0tBTkdYSSBSQURJQ0FMIEJMT09EO1NvOzA7T047PGNvbXBhdD4gODg0MDs7OztOOzs7OzsKKzJGOEY7S0FOR1hJIFJBRElDQUwgV0FMSyBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA4ODRDOzs7O047Ozs7OworMkY5MDtLQU5HWEkgUkFESUNBTCBDTE9USEVTO1NvOzA7T047PGNvbXBhdD4gODg2Mzs7OztOOzs7OzsKKzJGOTE7S0FOR1hJIFJBRElDQUwgV0VTVDtTbzswO09OOzxjb21wYXQ+IDg5N0U7Ozs7Tjs7Ozs7CisyRjkyO0tBTkdYSSBSQURJQ0FMIFNFRTtTbzswO09OOzxjb21wYXQ+IDg5OEI7Ozs7Tjs7Ozs7CisyRjkzO0tBTkdYSSBSQURJQ0FMIEhPUk47U287MDtPTjs8Y29tcGF0PiA4OUQyOzs7O047Ozs7OworMkY5NDtLQU5HWEkgUkFESUNBTCBTUEVFQ0g7U287MDtPTjs8Y29tcGF0PiA4QTAwOzs7O047Ozs7OworMkY5NTtLQU5HWEkgUkFESUNBTCBWQUxMRVk7U287MDtPTjs8Y29tcGF0PiA4QzM3Ozs7O047Ozs7OworMkY5NjtLQU5HWEkgUkFESUNBTCBCRUFOO1NvOzA7T047PGNvbXBhdD4gOEM0Njs7OztOOzs7OzsKKzJGOTc7S0FOR1hJIFJBRElDQUwgUElHO1NvOzA7T047PGNvbXBhdD4gOEM1NTs7OztOOzs7OzsKKzJGOTg7S0FOR1hJIFJBRElDQUwgQkFER0VSO1NvOzA7T047PGNvbXBhdD4gOEM3ODs7OztOOzs7OzsKKzJGOTk7S0FOR1hJIFJBRElDQUwgU0hFTEw7U287MDtPTjs8Y29tcGF0PiA4QzlEOzs7O047Ozs7OworMkY5QTtLQU5HWEkgUkFESUNBTCBSRUQ7U287MDtPTjs8Y29tcGF0PiA4RDY0Ozs7O047Ozs7OworMkY5QjtLQU5HWEkgUkFESUNBTCBSVU47U287MDtPTjs8Y29tcGF0PiA4RDcwOzs7O047Ozs7OworMkY5QztLQU5HWEkgUkFESUNBTCBGT09UO1NvOzA7T047PGNvbXBhdD4gOERCMzs7OztOOzs7OzsKKzJGOUQ7S0FOR1hJIFJBRElDQUwgQk9EWTtTbzswO09OOzxjb21wYXQ+IDhFQUI7Ozs7Tjs7Ozs7CisyRjlFO0tBTkdYSSBSQURJQ0FMIENBUlQ7U287MDtPTjs8Y29tcGF0PiA4RUNBOzs7O047Ozs7OworMkY5RjtLQU5HWEkgUkFESUNBTCBCSVRURVI7U287MDtPTjs8Y29tcGF0PiA4RjlCOzs7O047Ozs7OworMkZBMDtLQU5HWEkgUkFESUNBTCBNT1JOSU5HO1NvOzA7T047PGNvbXBhdD4gOEZCMDs7OztOOzs7OzsKKzJGQTE7S0FOR1hJIFJBRElDQUwgV0FMSztTbzswO09OOzxjb21wYXQ+IDhGQjU7Ozs7Tjs7Ozs7CisyRkEyO0tBTkdYSSBSQURJQ0FMIENJVFk7U287MDtPTjs8Y29tcGF0PiA5MDkxOzs7O047Ozs7OworMkZBMztLQU5HWEkgUkFESUNBTCBXSU5FO1NvOzA7T047PGNvbXBhdD4gOTE0OTs7OztOOzs7OzsKKzJGQTQ7S0FOR1hJIFJBRElDQUwgRElTVElOR1VJU0g7U287MDtPTjs8Y29tcGF0PiA5MUM2Ozs7O047Ozs7OworMkZBNTtLQU5HWEkgUkFESUNBTCBWSUxMQUdFO1NvOzA7T047PGNvbXBhdD4gOTFDQzs7OztOOzs7OzsKKzJGQTY7S0FOR1hJIFJBRElDQUwgR09MRDtTbzswO09OOzxjb21wYXQ+IDkxRDE7Ozs7Tjs7Ozs7CisyRkE3O0tBTkdYSSBSQURJQ0FMIExPTkc7U287MDtPTjs8Y29tcGF0PiA5NTc3Ozs7O047Ozs7OworMkZBODtLQU5HWEkgUkFESUNBTCBHQVRFO1NvOzA7T047PGNvbXBhdD4gOTU4MDs7OztOOzs7OzsKKzJGQTk7S0FOR1hJIFJBRElDQUwgTU9VTkQ7U287MDtPTjs8Y29tcGF0PiA5NjFDOzs7O047Ozs7OworMkZBQTtLQU5HWEkgUkFESUNBTCBTTEFWRTtTbzswO09OOzxjb21wYXQ+IDk2QjY7Ozs7Tjs7Ozs7CisyRkFCO0tBTkdYSSBSQURJQ0FMIFNIT1JUIFRBSUxFRCBCSVJEO1NvOzA7T047PGNvbXBhdD4gOTZCOTs7OztOOzs7OzsKKzJGQUM7S0FOR1hJIFJBRElDQUwgUkFJTjtTbzswO09OOzxjb21wYXQ+IDk2RTg7Ozs7Tjs7Ozs7CisyRkFEO0tBTkdYSSBSQURJQ0FMIEJMVUU7U287MDtPTjs8Y29tcGF0PiA5NzUxOzs7O047Ozs7OworMkZBRTtLQU5HWEkgUkFESUNBTCBXUk9ORztTbzswO09OOzxjb21wYXQ+IDk3NUU7Ozs7Tjs7Ozs7CisyRkFGO0tBTkdYSSBSQURJQ0FMIEZBQ0U7U287MDtPTjs8Y29tcGF0PiA5NzYyOzs7O047Ozs7OworMkZCMDtLQU5HWEkgUkFESUNBTCBMRUFUSEVSO1NvOzA7T047PGNvbXBhdD4gOTc2OTs7OztOOzs7OzsKKzJGQjE7S0FOR1hJIFJBRElDQUwgVEFOTkVEIExFQVRIRVI7U287MDtPTjs8Y29tcGF0PiA5N0NCOzs7O047Ozs7OworMkZCMjtLQU5HWEkgUkFESUNBTCBMRUVLO1NvOzA7T047PGNvbXBhdD4gOTdFRDs7OztOOzs7OzsKKzJGQjM7S0FOR1hJIFJBRElDQUwgU09VTkQ7U287MDtPTjs8Y29tcGF0PiA5N0YzOzs7O047Ozs7OworMkZCNDtLQU5HWEkgUkFESUNBTCBMRUFGO1NvOzA7T047PGNvbXBhdD4gOTgwMTs7OztOOzs7OzsKKzJGQjU7S0FOR1hJIFJBRElDQUwgV0lORDtTbzswO09OOzxjb21wYXQ+IDk4QTg7Ozs7Tjs7Ozs7CisyRkI2O0tBTkdYSSBSQURJQ0FMIEZMWTtTbzswO09OOzxjb21wYXQ+IDk4REI7Ozs7Tjs7Ozs7CisyRkI3O0tBTkdYSSBSQURJQ0FMIEVBVDtTbzswO09OOzxjb21wYXQ+IDk4REY7Ozs7Tjs7Ozs7CisyRkI4O0tBTkdYSSBSQURJQ0FMIEhFQUQ7U287MDtPTjs8Y29tcGF0PiA5OTk2Ozs7O047Ozs7OworMkZCOTtLQU5HWEkgUkFESUNBTCBGUkFHUkFOVDtTbzswO09OOzxjb21wYXQ+IDk5OTk7Ozs7Tjs7Ozs7CisyRkJBO0tBTkdYSSBSQURJQ0FMIEhPUlNFO1NvOzA7T047PGNvbXBhdD4gOTlBQzs7OztOOzs7OzsKKzJGQkI7S0FOR1hJIFJBRElDQUwgQk9ORTtTbzswO09OOzxjb21wYXQ+IDlBQTg7Ozs7Tjs7Ozs7CisyRkJDO0tBTkdYSSBSQURJQ0FMIFRBTEw7U287MDtPTjs8Y29tcGF0PiA5QUQ4Ozs7O047Ozs7OworMkZCRDtLQU5HWEkgUkFESUNBTCBIQUlSO1NvOzA7T047PGNvbXBhdD4gOUFERjs7OztOOzs7OzsKKzJGQkU7S0FOR1hJIFJBRElDQUwgRklHSFQ7U287MDtPTjs8Y29tcGF0PiA5QjI1Ozs7O047Ozs7OworMkZCRjtLQU5HWEkgUkFESUNBTCBTQUNSSUZJQ0lBTCBXSU5FO1NvOzA7T047PGNvbXBhdD4gOUIyRjs7OztOOzs7OzsKKzJGQzA7S0FOR1hJIFJBRElDQUwgQ0FVTERST047U287MDtPTjs8Y29tcGF0PiA5QjMyOzs7O047Ozs7OworMkZDMTtLQU5HWEkgUkFESUNBTCBHSE9TVDtTbzswO09OOzxjb21wYXQ+IDlCM0M7Ozs7Tjs7Ozs7CisyRkMyO0tBTkdYSSBSQURJQ0FMIEZJU0g7U287MDtPTjs8Y29tcGF0PiA5QjVBOzs7O047Ozs7OworMkZDMztLQU5HWEkgUkFESUNBTCBCSVJEO1NvOzA7T047PGNvbXBhdD4gOUNFNTs7OztOOzs7OzsKKzJGQzQ7S0FOR1hJIFJBRElDQUwgU0FMVDtTbzswO09OOzxjb21wYXQ+IDlFNzU7Ozs7Tjs7Ozs7CisyRkM1O0tBTkdYSSBSQURJQ0FMIERFRVI7U287MDtPTjs8Y29tcGF0PiA5RTdGOzs7O047Ozs7OworMkZDNjtLQU5HWEkgUkFESUNBTCBXSEVBVDtTbzswO09OOzxjb21wYXQ+IDlFQTU7Ozs7Tjs7Ozs7CisyRkM3O0tBTkdYSSBSQURJQ0FMIEhFTVA7U287MDtPTjs8Y29tcGF0PiA5RUJCOzs7O047Ozs7OworMkZDODtLQU5HWEkgUkFESUNBTCBZRUxMT1c7U287MDtPTjs8Y29tcGF0PiA5RUMzOzs7O047Ozs7OworMkZDOTtLQU5HWEkgUkFESUNBTCBNSUxMRVQ7U287MDtPTjs8Y29tcGF0PiA5RUNEOzs7O047Ozs7OworMkZDQTtLQU5HWEkgUkFESUNBTCBCTEFDSztTbzswO09OOzxjb21wYXQ+IDlFRDE7Ozs7Tjs7Ozs7CisyRkNCO0tBTkdYSSBSQURJQ0FMIEVNQlJPSURFUlk7U287MDtPTjs8Y29tcGF0PiA5RUY5Ozs7O047Ozs7OworMkZDQztLQU5HWEkgUkFESUNBTCBGUk9HO1NvOzA7T047PGNvbXBhdD4gOUVGRDs7OztOOzs7OzsKKzJGQ0Q7S0FOR1hJIFJBRElDQUwgVFJJUE9EO1NvOzA7T047PGNvbXBhdD4gOUYwRTs7OztOOzs7OzsKKzJGQ0U7S0FOR1hJIFJBRElDQUwgRFJVTTtTbzswO09OOzxjb21wYXQ+IDlGMTM7Ozs7Tjs7Ozs7CisyRkNGO0tBTkdYSSBSQURJQ0FMIFJBVDtTbzswO09OOzxjb21wYXQ+IDlGMjA7Ozs7Tjs7Ozs7CisyRkQwO0tBTkdYSSBSQURJQ0FMIE5PU0U7U287MDtPTjs8Y29tcGF0PiA5RjNCOzs7O047Ozs7OworMkZEMTtLQU5HWEkgUkFESUNBTCBFVkVOO1NvOzA7T047PGNvbXBhdD4gOUY0QTs7OztOOzs7OzsKKzJGRDI7S0FOR1hJIFJBRElDQUwgVE9PVEg7U287MDtPTjs8Y29tcGF0PiA5RjUyOzs7O047Ozs7OworMkZEMztLQU5HWEkgUkFESUNBTCBEUkFHT047U287MDtPTjs8Y29tcGF0PiA5RjhEOzs7O047Ozs7OworMkZENDtLQU5HWEkgUkFESUNBTCBUVVJUTEU7U287MDtPTjs8Y29tcGF0PiA5RjlDOzs7O047Ozs7OworMkZENTtLQU5HWEkgUkFESUNBTCBGTFVURTtTbzswO09OOzxjb21wYXQ+IDlGQTA7Ozs7Tjs7Ozs7CisyRkYwO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBMRUZUIFRPIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMkZGMTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgQUJPVkUgVE8gQkVMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYyO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBMRUZUIFRPIE1JRERMRSBBTkQgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYzO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBBQk9WRSBUTyBNSURETEUgQU5EIEJFTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkZGNDtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgRlVMTCBTVVJST1VORDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjU7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gQUJPVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY2O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIEJFTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkZGNztJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGODtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBVUFBFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGOTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBVUFBFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRkE7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRkI7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIE9WRVJMQUlEO1NvOzA7T047Ozs7O047Ozs7OworMzAwMDtJREVPR1JBUEhJQyBTUEFDRTtaczswO1dTOzx3aWRlPiAwMDIwOzs7O047Ozs7OworMzAwMTtJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzs7OztOOzs7OzsKKzMwMDI7SURFT0dSQVBISUMgRlVMTCBTVE9QO1BvOzA7T047Ozs7O047SURFT0dSQVBISUMgUEVSSU9EOzs7OworMzAwMztESVRUTyBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMzAwNDtKQVBBTkVTRSBJTkRVU1RSSUFMIFNUQU5EQVJEIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwMDU7SURFT0dSQVBISUMgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMDY7SURFT0dSQVBISUMgQ0xPU0lORyBNQVJLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDA3O0lERU9HUkFQSElDIE5VTUJFUiBaRVJPO05sOzA7TDs7OzswO047Ozs7OworMzAwODtMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDA5O1JJR0hUIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBBO0xFRlQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworMzAwQjtSSUdIVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBDO0xFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRDtSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBFO0xFRlQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRjtSSUdIVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDEwO0xFRlQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDExO1JJR0hUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxMjtQT1NUQUwgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzMwMTM7R0VUQSBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMzAxNDtMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE1O1JJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE2O0xFRlQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDE3O1JJR0hUIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxODtMRUZUIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE5O1JJR0hUIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDFBO0xFRlQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIFNRVUFSRSBCUkFDS0VUOzs7OworMzAxQjtSSUdIVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7Ozs7CiszMDFDO1dBVkUgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzMwMUQ7UkVWRVJTRUQgRE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O1k7Ozs7OworMzAxRTtET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UGU7MDtPTjs7Ozs7WTs7Ozs7CiszMDFGO0xPVyBET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UGU7MDtPTjs7Ozs7WTs7Ozs7CiszMDIwO1BPU1RBTCBNQVJLIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDIxO0hBTkdaSE9VIE5VTUVSQUwgT05FO05sOzA7TDs7OzsxO047Ozs7OworMzAyMjtIQU5HWkhPVSBOVU1FUkFMIFRXTztObDswO0w7Ozs7MjtOOzs7OzsKKzMwMjM7SEFOR1pIT1UgTlVNRVJBTCBUSFJFRTtObDswO0w7Ozs7MztOOzs7OzsKKzMwMjQ7SEFOR1pIT1UgTlVNRVJBTCBGT1VSO05sOzA7TDs7Ozs0O047Ozs7OworMzAyNTtIQU5HWkhPVSBOVU1FUkFMIEZJVkU7Tmw7MDtMOzs7OzU7Tjs7Ozs7CiszMDI2O0hBTkdaSE9VIE5VTUVSQUwgU0lYO05sOzA7TDs7Ozs2O047Ozs7OworMzAyNztIQU5HWkhPVSBOVU1FUkFMIFNFVkVOO05sOzA7TDs7Ozs3O047Ozs7OworMzAyODtIQU5HWkhPVSBOVU1FUkFMIEVJR0hUO05sOzA7TDs7Ozs4O047Ozs7OworMzAyOTtIQU5HWkhPVSBOVU1FUkFMIE5JTkU7Tmw7MDtMOzs7Ozk7Tjs7Ozs7CiszMDJBO0lERU9HUkFQSElDIExFVkVMIFRPTkUgTUFSSztNbjsyMTg7TlNNOzs7OztOOzs7OzsKKzMwMkI7SURFT0dSQVBISUMgUklTSU5HIFRPTkUgTUFSSztNbjsyMjg7TlNNOzs7OztOOzs7OzsKKzMwMkM7SURFT0dSQVBISUMgREVQQVJUSU5HIFRPTkUgTUFSSztNbjsyMzI7TlNNOzs7OztOOzs7OzsKKzMwMkQ7SURFT0dSQVBISUMgRU5URVJJTkcgVE9ORSBNQVJLO01uOzIyMjtOU007Ozs7O047Ozs7OworMzAyRTtIQU5HVUwgU0lOR0xFIERPVCBUT05FIE1BUks7TW47MjI0O05TTTs7Ozs7Tjs7Ozs7CiszMDJGO0hBTkdVTCBET1VCTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7TlNNOzs7OztOOzs7OzsKKzMwMzA7V0FWWSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMzAzMTtWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDMyO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIFdJVEggVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMzM7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDM0O1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIFdJVEggVk9JQ0VEIFNPVU5EIE1BUksgVVBQRVIgSEFMRjtMbTswO0w7Ozs7O047Ozs7OworMzAzNTtWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLIExPV0VSIEhBTEY7TG07MDtMOzs7OztOOzs7OzsKKzMwMzY7Q0lSQ0xFRCBQT1NUQUwgTUFSSztTbzswO09OOzxjb21wYXQ+IDMwMTI7Ozs7Tjs7Ozs7CiszMDM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBMSU5FIEZFRUQgU0VQQVJBVE9SIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwMzg7SEFOR1pIT1UgTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDUzNDE7OzsxMDtOOzs7OzsKKzMwMzk7SEFOR1pIT1UgTlVNRVJBTCBUV0VOVFk7Tmw7MDtMOzxjb21wYXQ+IDUzNDQ7OzsyMDtOOzs7OzsKKzMwM0E7SEFOR1pIT1UgTlVNRVJBTCBUSElSVFk7Tmw7MDtMOzxjb21wYXQ+IDUzNDU7OzszMDtOOzs7OzsKKzMwM0I7VkVSVElDQUwgSURFT0dSQVBISUMgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwM0M7TUFTVSBNQVJLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDNEO1BBUlQgQUxURVJOQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzMwM0U7SURFT0dSQVBISUMgVkFSSUFUSU9OIElORElDQVRPUjtTbzswO09OOzs7OztOOzs7OzsKKzMwM0Y7SURFT0dSQVBISUMgSEFMRiBGSUxMIFNQQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzA0MTtISVJBR0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MjtISVJBR0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MztISVJBR0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NDtISVJBR0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NTtISVJBR0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NjtISVJBR0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NztISVJBR0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0ODtISVJBR0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0OTtISVJBR0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QTtISVJBR0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QjtISVJBR0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwNEM7SElSQUdBTkEgTEVUVEVSIEdBO0xvOzA7TDszMDRCIDMwOTk7Ozs7Tjs7Ozs7CiszMDREO0hJUkFHQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzA0RTtISVJBR0FOQSBMRVRURVIgR0k7TG87MDtMOzMwNEQgMzA5OTs7OztOOzs7OzsKKzMwNEY7SElSQUdBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDUwO0hJUkFHQU5BIExFVFRFUiBHVTtMbzswO0w7MzA0RiAzMDk5Ozs7O047Ozs7OworMzA1MTtISVJBR0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwNTI7SElSQUdBTkEgTEVUVEVSIEdFO0xvOzA7TDszMDUxIDMwOTk7Ozs7Tjs7Ozs7CiszMDUzO0hJUkFHQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzA1NDtISVJBR0FOQSBMRVRURVIgR087TG87MDtMOzMwNTMgMzA5OTs7OztOOzs7OzsKKzMwNTU7SElSQUdBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU2O0hJUkFHQU5BIExFVFRFUiBaQTtMbzswO0w7MzA1NSAzMDk5Ozs7O047Ozs7OworMzA1NztISVJBR0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwNTg7SElSQUdBTkEgTEVUVEVSIFpJO0xvOzA7TDszMDU3IDMwOTk7Ozs7Tjs7Ozs7CiszMDU5O0hJUkFHQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzA1QTtISVJBR0FOQSBMRVRURVIgWlU7TG87MDtMOzMwNTkgMzA5OTs7OztOOzs7OzsKKzMwNUI7SElSQUdBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVDO0hJUkFHQU5BIExFVFRFUiBaRTtMbzswO0w7MzA1QiAzMDk5Ozs7O047Ozs7OworMzA1RDtISVJBR0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwNUU7SElSQUdBTkEgTEVUVEVSIFpPO0xvOzA7TDszMDVEIDMwOTk7Ozs7Tjs7Ozs7CiszMDVGO0hJUkFHQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzA2MDtISVJBR0FOQSBMRVRURVIgREE7TG87MDtMOzMwNUYgMzA5OTs7OztOOzs7OzsKKzMwNjE7SElSQUdBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDYyO0hJUkFHQU5BIExFVFRFUiBESTtMbzswO0w7MzA2MSAzMDk5Ozs7O047Ozs7OworMzA2MztISVJBR0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjQ7SElSQUdBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY1O0hJUkFHQU5BIExFVFRFUiBEVTtMbzswO0w7MzA2NCAzMDk5Ozs7O047Ozs7OworMzA2NjtISVJBR0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjc7SElSQUdBTkEgTEVUVEVSIERFO0xvOzA7TDszMDY2IDMwOTk7Ozs7Tjs7Ozs7CiszMDY4O0hJUkFHQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzA2OTtISVJBR0FOQSBMRVRURVIgRE87TG87MDtMOzMwNjggMzA5OTs7OztOOzs7OzsKKzMwNkE7SElSQUdBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZCO0hJUkFHQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzA2QztISVJBR0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwNkQ7SElSQUdBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZFO0hJUkFHQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzA2RjtISVJBR0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNzA7SElSQUdBTkEgTEVUVEVSIEJBO0xvOzA7TDszMDZGIDMwOTk7Ozs7Tjs7Ozs7CiszMDcxO0hJUkFHQU5BIExFVFRFUiBQQTtMbzswO0w7MzA2RiAzMDlBOzs7O047Ozs7OworMzA3MjtISVJBR0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNzM7SElSQUdBTkEgTEVUVEVSIEJJO0xvOzA7TDszMDcyIDMwOTk7Ozs7Tjs7Ozs7CiszMDc0O0hJUkFHQU5BIExFVFRFUiBQSTtMbzswO0w7MzA3MiAzMDlBOzs7O047Ozs7OworMzA3NTtISVJBR0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzY7SElSQUdBTkEgTEVUVEVSIEJVO0xvOzA7TDszMDc1IDMwOTk7Ozs7Tjs7Ozs7CiszMDc3O0hJUkFHQU5BIExFVFRFUiBQVTtMbzswO0w7MzA3NSAzMDlBOzs7O047Ozs7OworMzA3ODtISVJBR0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzk7SElSQUdBTkEgTEVUVEVSIEJFO0xvOzA7TDszMDc4IDMwOTk7Ozs7Tjs7Ozs7CiszMDdBO0hJUkFHQU5BIExFVFRFUiBQRTtMbzswO0w7MzA3OCAzMDlBOzs7O047Ozs7OworMzA3QjtISVJBR0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwN0M7SElSQUdBTkEgTEVUVEVSIEJPO0xvOzA7TDszMDdCIDMwOTk7Ozs7Tjs7Ozs7CiszMDdEO0hJUkFHQU5BIExFVFRFUiBQTztMbzswO0w7MzA3QiAzMDlBOzs7O047Ozs7OworMzA3RTtISVJBR0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwN0Y7SElSQUdBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgwO0hJUkFHQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzA4MTtISVJBR0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwODI7SElSQUdBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzA4NDtISVJBR0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwODU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg2O0hJUkFHQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzA4NztISVJBR0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwODg7SElSQUdBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg5O0hJUkFHQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzA4QTtISVJBR0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwOEI7SElSQUdBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhDO0hJUkFHQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzA4RDtISVJBR0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwOEU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhGO0hJUkFHQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzA5MDtISVJBR0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwOTE7SElSQUdBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkyO0hJUkFHQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzA5MztISVJBR0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzA5NDtISVJBR0FOQSBMRVRURVIgVlU7TG87MDtMOzMwNDYgMzA5OTs7OztOOzs7OzsKKzMwOTU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDk2O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBLRTtMbzswO0w7Ozs7O047Ozs7OworMzA5OTtDT01CSU5JTkcgS0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7TW47ODtOU007Ozs7O047Tk9OLVNQQUNJTkcgS0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7Ozs7CiszMDlBO0NPTUJJTklORyBLQVRBS0FOQS1ISVJBR0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO01uOzg7TlNNOzs7OztOO05PTi1TUEFDSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7Ozs7CiszMDlCO0tBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAzMDk5Ozs7O047Ozs7OworMzA5QztLQVRBS0FOQS1ISVJBR0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAzMDlBOzs7O047Ozs7OworMzA5RDtISVJBR0FOQSBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzA5RTtISVJBR0FOQSBWT0lDRUQgSVRFUkFUSU9OIE1BUks7TG07MDtMOzMwOUQgMzA5OTs7OztOOzs7OzsKKzMwOUY7SElSQUdBTkEgRElHUkFQSCBZT1JJO0xvOzA7TDs8dmVydGljYWw+IDMwODggMzA4QTs7OztOOzs7OzsKKzMwQTA7S0FUQUtBTkEtSElSQUdBTkEgRE9VQkxFIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzMwQTE7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTI7S0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTQ7S0FUQUtBTkEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTY7S0FUQUtBTkEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTg7S0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTk7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUE7S0FUQUtBTkEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUI7S0FUQUtBTkEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFDO0tBVEFLQU5BIExFVFRFUiBHQTtMbzswO0w7MzBBQiAzMDk5Ozs7O047Ozs7OworMzBBRDtLQVRBS0FOQSBMRVRURVIgS0k7TG87MDtMOzs7OztOOzs7OzsKKzMwQUU7S0FUQUtBTkEgTEVUVEVSIEdJO0xvOzA7TDszMEFEIDMwOTk7Ozs7Tjs7Ozs7CiszMEFGO0tBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7Ozs7O047Ozs7OworMzBCMDtLQVRBS0FOQSBMRVRURVIgR1U7TG87MDtMOzMwQUYgMzA5OTs7OztOOzs7OzsKKzMwQjE7S0FUQUtBTkEgTEVUVEVSIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEIyO0tBVEFLQU5BIExFVFRFUiBHRTtMbzswO0w7MzBCMSAzMDk5Ozs7O047Ozs7OworMzBCMztLQVRBS0FOQSBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzMwQjQ7S0FUQUtBTkEgTEVUVEVSIEdPO0xvOzA7TDszMEIzIDMwOTk7Ozs7Tjs7Ozs7CiszMEI1O0tBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMzBCNjtLQVRBS0FOQSBMRVRURVIgWkE7TG87MDtMOzMwQjUgMzA5OTs7OztOOzs7OzsKKzMwQjc7S0FUQUtBTkEgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI4O0tBVEFLQU5BIExFVFRFUiBaSTtMbzswO0w7MzBCNyAzMDk5Ozs7O047Ozs7OworMzBCOTtLQVRBS0FOQSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMwQkE7S0FUQUtBTkEgTEVUVEVSIFpVO0xvOzA7TDszMEI5IDMwOTk7Ozs7Tjs7Ozs7CiszMEJCO0tBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMzBCQztLQVRBS0FOQSBMRVRURVIgWkU7TG87MDtMOzMwQkIgMzA5OTs7OztOOzs7OzsKKzMwQkQ7S0FUQUtBTkEgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJFO0tBVEFLQU5BIExFVFRFUiBaTztMbzswO0w7MzBCRCAzMDk5Ozs7O047Ozs7OworMzBCRjtLQVRBS0FOQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQzA7S0FUQUtBTkEgTEVUVEVSIERBO0xvOzA7TDszMEJGIDMwOTk7Ozs7Tjs7Ozs7CiszMEMxO0tBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMzBDMjtLQVRBS0FOQSBMRVRURVIgREk7TG87MDtMOzMwQzEgMzA5OTs7OztOOzs7OzsKKzMwQzM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM0O0tBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7Ozs7O047Ozs7OworMzBDNTtLQVRBS0FOQSBMRVRURVIgRFU7TG87MDtMOzMwQzQgMzA5OTs7OztOOzs7OzsKKzMwQzY7S0FUQUtBTkEgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM3O0tBVEFLQU5BIExFVFRFUiBERTtMbzswO0w7MzBDNiAzMDk5Ozs7O047Ozs7OworMzBDODtLQVRBS0FOQSBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzMwQzk7S0FUQUtBTkEgTEVUVEVSIERPO0xvOzA7TDszMEM4IDMwOTk7Ozs7Tjs7Ozs7CiszMENBO0tBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMzBDQjtLQVRBS0FOQSBMRVRURVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0M7S0FUQUtBTkEgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENEO0tBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMzBDRTtLQVRBS0FOQSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzMwQ0Y7S0FUQUtBTkEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQwO0tBVEFLQU5BIExFVFRFUiBCQTtMbzswO0w7MzBDRiAzMDk5Ozs7O047Ozs7OworMzBEMTtLQVRBS0FOQSBMRVRURVIgUEE7TG87MDtMOzMwQ0YgMzA5QTs7OztOOzs7OzsKKzMwRDI7S0FUQUtBTkEgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQzO0tBVEFLQU5BIExFVFRFUiBCSTtMbzswO0w7MzBEMiAzMDk5Ozs7O047Ozs7OworMzBENDtLQVRBS0FOQSBMRVRURVIgUEk7TG87MDtMOzMwRDIgMzA5QTs7OztOOzs7OzsKKzMwRDU7S0FUQUtBTkEgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ2O0tBVEFLQU5BIExFVFRFUiBCVTtMbzswO0w7MzBENSAzMDk5Ozs7O047Ozs7OworMzBENztLQVRBS0FOQSBMRVRURVIgUFU7TG87MDtMOzMwRDUgMzA5QTs7OztOOzs7OzsKKzMwRDg7S0FUQUtBTkEgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ5O0tBVEFLQU5BIExFVFRFUiBCRTtMbzswO0w7MzBEOCAzMDk5Ozs7O047Ozs7OworMzBEQTtLQVRBS0FOQSBMRVRURVIgUEU7TG87MDtMOzMwRDggMzA5QTs7OztOOzs7OzsKKzMwREI7S0FUQUtBTkEgTEVUVEVSIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERDO0tBVEFLQU5BIExFVFRFUiBCTztMbzswO0w7MzBEQiAzMDk5Ozs7O047Ozs7OworMzBERDtLQVRBS0FOQSBMRVRURVIgUE87TG87MDtMOzMwREIgMzA5QTs7OztOOzs7OzsKKzMwREU7S0FUQUtBTkEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERGO0tBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMzBFMDtLQVRBS0FOQSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTE7S0FUQUtBTkEgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUyO0tBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMzBFMztLQVRBS0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwRTQ7S0FUQUtBTkEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7Ozs7O047Ozs7OworMzBFNjtLQVRBS0FOQSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU4O0tBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMzBFOTtLQVRBS0FOQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMwRUE7S0FUQUtBTkEgTEVUVEVSIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVCO0tBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMzBFQztLQVRBS0FOQSBMRVRURVIgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMwRUQ7S0FUQUtBTkEgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVFO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBXQTtMbzswO0w7Ozs7O047Ozs7OworMzBFRjtLQVRBS0FOQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRjA7S0FUQUtBTkEgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYxO0tBVEFLQU5BIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMzBGMjtLQVRBS0FOQSBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzMwRjM7S0FUQUtBTkEgTEVUVEVSIE47TG87MDtMOzs7OztOOzs7OzsKKzMwRjQ7S0FUQUtBTkEgTEVUVEVSIFZVO0xvOzA7TDszMEE2IDMwOTk7Ozs7Tjs7Ozs7CiszMEY1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLQTtMbzswO0w7Ozs7O047Ozs7OworMzBGNjtLQVRBS0FOQSBMRVRURVIgU01BTEwgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwRjc7S0FUQUtBTkEgTEVUVEVSIFZBO0xvOzA7TDszMEVGIDMwOTk7Ozs7Tjs7Ozs7CiszMEY4O0tBVEFLQU5BIExFVFRFUiBWSTtMbzswO0w7MzBGMCAzMDk5Ozs7O047Ozs7OworMzBGOTtLQVRBS0FOQSBMRVRURVIgVkU7TG87MDtMOzMwRjEgMzA5OTs7OztOOzs7OzsKKzMwRkE7S0FUQUtBTkEgTEVUVEVSIFZPO0xvOzA7TDszMEYyIDMwOTk7Ozs7Tjs7Ozs7CiszMEZCO0tBVEFLQU5BIE1JRERMRSBET1Q7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMEZDO0tBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMEZEO0tBVEFLQU5BIElURVJBVElPTiBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMEZFO0tBVEFLQU5BIFZPSUNFRCBJVEVSQVRJT04gTUFSSztMbTswO0w7MzBGRCAzMDk5Ozs7O047Ozs7OworMzBGRjtLQVRBS0FOQSBESUdSQVBIIEtPVE87TG87MDtMOzx2ZXJ0aWNhbD4gMzBCMyAzMEM4Ozs7O047Ozs7OworMzEwNTtCT1BPTU9GTyBMRVRURVIgQjtMbzswO0w7Ozs7O047Ozs7OworMzEwNjtCT1BPTU9GTyBMRVRURVIgUDtMbzswO0w7Ozs7O047Ozs7OworMzEwNztCT1BPTU9GTyBMRVRURVIgTTtMbzswO0w7Ozs7O047Ozs7OworMzEwODtCT1BPTU9GTyBMRVRURVIgRjtMbzswO0w7Ozs7O047Ozs7OworMzEwOTtCT1BPTU9GTyBMRVRURVIgRDtMbzswO0w7Ozs7O047Ozs7OworMzEwQTtCT1BPTU9GTyBMRVRURVIgVDtMbzswO0w7Ozs7O047Ozs7OworMzEwQjtCT1BPTU9GTyBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzEwQztCT1BPTU9GTyBMRVRURVIgTDtMbzswO0w7Ozs7O047Ozs7OworMzEwRDtCT1BPTU9GTyBMRVRURVIgRztMbzswO0w7Ozs7O047Ozs7OworMzEwRTtCT1BPTU9GTyBMRVRURVIgSztMbzswO0w7Ozs7O047Ozs7OworMzEwRjtCT1BPTU9GTyBMRVRURVIgSDtMbzswO0w7Ozs7O047Ozs7OworMzExMDtCT1BPTU9GTyBMRVRURVIgSjtMbzswO0w7Ozs7O047Ozs7OworMzExMTtCT1BPTU9GTyBMRVRURVIgUTtMbzswO0w7Ozs7O047Ozs7OworMzExMjtCT1BPTU9GTyBMRVRURVIgWDtMbzswO0w7Ozs7O047Ozs7OworMzExMztCT1BPTU9GTyBMRVRURVIgWkg7TG87MDtMOzs7OztOOzs7OzsKKzMxMTQ7Qk9QT01PRk8gTEVUVEVSIENIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE1O0JPUE9NT0ZPIExFVFRFUiBTSDtMbzswO0w7Ozs7O047Ozs7OworMzExNjtCT1BPTU9GTyBMRVRURVIgUjtMbzswO0w7Ozs7O047Ozs7OworMzExNztCT1BPTU9GTyBMRVRURVIgWjtMbzswO0w7Ozs7O047Ozs7OworMzExODtCT1BPTU9GTyBMRVRURVIgQztMbzswO0w7Ozs7O047Ozs7OworMzExOTtCT1BPTU9GTyBMRVRURVIgUztMbzswO0w7Ozs7O047Ozs7OworMzExQTtCT1BPTU9GTyBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzExQjtCT1BPTU9GTyBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzExQztCT1BPTU9GTyBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzExRDtCT1BPTU9GTyBMRVRURVIgRUg7TG87MDtMOzs7OztOOzs7OzsKKzMxMUU7Qk9QT01PRk8gTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFGO0JPUE9NT0ZPIExFVFRFUiBFSTtMbzswO0w7Ozs7O047Ozs7OworMzEyMDtCT1BPTU9GTyBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzMxMjE7Qk9QT01PRk8gTEVUVEVSIE9VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIyO0JPUE9NT0ZPIExFVFRFUiBBTjtMbzswO0w7Ozs7O047Ozs7OworMzEyMztCT1BPTU9GTyBMRVRURVIgRU47TG87MDtMOzs7OztOOzs7OzsKKzMxMjQ7Qk9QT01PRk8gTEVUVEVSIEFORztMbzswO0w7Ozs7O047Ozs7OworMzEyNTtCT1BPTU9GTyBMRVRURVIgRU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI2O0JPUE9NT0ZPIExFVFRFUiBFUjtMbzswO0w7Ozs7O047Ozs7OworMzEyNztCT1BPTU9GTyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzEyODtCT1BPTU9GTyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzEyOTtCT1BPTU9GTyBMRVRURVIgSVU7TG87MDtMOzs7OztOOzs7OzsKKzMxMkE7Qk9QT01PRk8gTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzMxMkI7Qk9QT01PRk8gTEVUVEVSIE5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTJDO0JPUE9NT0ZPIExFVFRFUiBHTjtMbzswO0w7Ozs7O047Ozs7OworMzEzMTtIQU5HVUwgTEVUVEVSIEtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMDs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HOzs7OworMzEzMjtIQU5HVUwgTEVUVEVSIFNTQU5HS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAxOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBHSVlFT0c7Ozs7CiszMTMzO0hBTkdVTCBMRVRURVIgS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUE7Ozs7TjtIQU5HVUwgTEVUVEVSIEdJWUVPRyBTSU9TOzs7OworMzEzNDtIQU5HVUwgTEVUVEVSIE5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTAyOzs7O047Ozs7OworMzEzNTtIQU5HVUwgTEVUVEVSIE5JRVVOLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMUFDOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBKSUVVSjs7OzsKKzMxMzY7SEFOR1VMIExFVFRFUiBOSUVVTi1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBRDs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gSElFVUg7Ozs7CiszMTM3O0hBTkdVTCBMRVRURVIgVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTAzOzs7O047SEFOR1VMIExFVFRFUiBESUdFVUQ7Ozs7CiszMTM4O0hBTkdVTCBMRVRURVIgU1NBTkdUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIERJR0VVRDs7OzsKKzMxMzk7SEFOR1VMIExFVFRFUiBSSUVVTDtMbzswO0w7PGNvbXBhdD4gMTEwNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUw7Ozs7CiszMTNBO0hBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUIwOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBHSVlFT0c7Ozs7CiszMTNCO0hBTkdVTCBMRVRURVIgUklFVUwtTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQjE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIE1JRVVNOzs7OworMzEzQztIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUIyOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCSUVVQjs7OzsKKzMxM0Q7SEFOR1VMIExFVFRFUiBSSUVVTC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUIzOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBTSU9TOzs7OworMzEzRTtIQU5HVUwgTEVUVEVSIFJJRVVMLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExQjQ7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFRJRVVUOzs7OworMzEzRjtIQU5HVUwgTEVUVEVSIFJJRVVMLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQjU7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFBJRVVQOzs7OworMzE0MDtIQU5HVUwgTEVUVEVSIFJJRVVMLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTFBOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBISUVVSDs7OzsKKzMxNDE7SEFOR1VMIExFVFRFUiBNSUVVTTtMbzswO0w7PGNvbXBhdD4gMTEwNjs7OztOOzs7OzsKKzMxNDI7SEFOR1VMIExFVFRFUiBQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwNzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUI7Ozs7CiszMTQzO0hBTkdVTCBMRVRURVIgU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwODs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUI7Ozs7CiszMTQ0O0hBTkdVTCBMRVRURVIgUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTEyMTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUzs7OzsKKzMxNDU7SEFOR1VMIExFVFRFUiBTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTA5Ozs7O047Ozs7OworMzE0NjtIQU5HVUwgTEVUVEVSIFNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwQTs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgU0lPUzs7OzsKKzMxNDc7SEFOR1VMIExFVFRFUiBJRVVORztMbzswO0w7PGNvbXBhdD4gMTEwQjs7OztOOzs7OzsKKzMxNDg7SEFOR1VMIExFVFRFUiBDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwQzs7OztOO0hBTkdVTCBMRVRURVIgSklFVUo7Ozs7CiszMTQ5O0hBTkdVTCBMRVRURVIgU1NBTkdDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwRDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgSklFVUo7Ozs7CiszMTRBO0hBTkdVTCBMRVRURVIgQ0hJRVVDSDtMbzswO0w7PGNvbXBhdD4gMTEwRTs7OztOO0hBTkdVTCBMRVRURVIgQ0lFVUM7Ozs7CiszMTRCO0hBTkdVTCBMRVRURVIgS0hJRVVLSDtMbzswO0w7PGNvbXBhdD4gMTEwRjs7OztOO0hBTkdVTCBMRVRURVIgS0lZRU9LOzs7OworMzE0QztIQU5HVUwgTEVUVEVSIFRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMTA7Ozs7TjtIQU5HVUwgTEVUVEVSIFRJRVVUOzs7OworMzE0RDtIQU5HVUwgTEVUVEVSIFBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMTE7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQOzs7OworMzE0RTtIQU5HVUwgTEVUVEVSIEhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTEyOzs7O047Ozs7OworMzE0RjtIQU5HVUwgTEVUVEVSIEE7TG87MDtMOzxjb21wYXQ+IDExNjE7Ozs7Tjs7Ozs7CiszMTUwO0hBTkdVTCBMRVRURVIgQUU7TG87MDtMOzxjb21wYXQ+IDExNjI7Ozs7Tjs7Ozs7CiszMTUxO0hBTkdVTCBMRVRURVIgWUE7TG87MDtMOzxjb21wYXQ+IDExNjM7Ozs7Tjs7Ozs7CiszMTUyO0hBTkdVTCBMRVRURVIgWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTY0Ozs7O047Ozs7OworMzE1MztIQU5HVUwgTEVUVEVSIEVPO0xvOzA7TDs8Y29tcGF0PiAxMTY1Ozs7O047Ozs7OworMzE1NDtIQU5HVUwgTEVUVEVSIEU7TG87MDtMOzxjb21wYXQ+IDExNjY7Ozs7Tjs7Ozs7CiszMTU1O0hBTkdVTCBMRVRURVIgWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTY3Ozs7O047Ozs7OworMzE1NjtIQU5HVUwgTEVUVEVSIFlFO0xvOzA7TDs8Y29tcGF0PiAxMTY4Ozs7O047Ozs7OworMzE1NztIQU5HVUwgTEVUVEVSIE87TG87MDtMOzxjb21wYXQ+IDExNjk7Ozs7Tjs7Ozs7CiszMTU4O0hBTkdVTCBMRVRURVIgV0E7TG87MDtMOzxjb21wYXQ+IDExNkE7Ozs7Tjs7Ozs7CiszMTU5O0hBTkdVTCBMRVRURVIgV0FFO0xvOzA7TDs8Y29tcGF0PiAxMTZCOzs7O047Ozs7OworMzE1QTtIQU5HVUwgTEVUVEVSIE9FO0xvOzA7TDs8Y29tcGF0PiAxMTZDOzs7O047Ozs7OworMzE1QjtIQU5HVUwgTEVUVEVSIFlPO0xvOzA7TDs8Y29tcGF0PiAxMTZEOzs7O047Ozs7OworMzE1QztIQU5HVUwgTEVUVEVSIFU7TG87MDtMOzxjb21wYXQ+IDExNkU7Ozs7Tjs7Ozs7CiszMTVEO0hBTkdVTCBMRVRURVIgV0VPO0xvOzA7TDs8Y29tcGF0PiAxMTZGOzs7O047Ozs7OworMzE1RTtIQU5HVUwgTEVUVEVSIFdFO0xvOzA7TDs8Y29tcGF0PiAxMTcwOzs7O047Ozs7OworMzE1RjtIQU5HVUwgTEVUVEVSIFdJO0xvOzA7TDs8Y29tcGF0PiAxMTcxOzs7O047Ozs7OworMzE2MDtIQU5HVUwgTEVUVEVSIFlVO0xvOzA7TDs8Y29tcGF0PiAxMTcyOzs7O047Ozs7OworMzE2MTtIQU5HVUwgTEVUVEVSIEVVO0xvOzA7TDs8Y29tcGF0PiAxMTczOzs7O047Ozs7OworMzE2MjtIQU5HVUwgTEVUVEVSIFlJO0xvOzA7TDs8Y29tcGF0PiAxMTc0Ozs7O047Ozs7OworMzE2MztIQU5HVUwgTEVUVEVSIEk7TG87MDtMOzxjb21wYXQ+IDExNzU7Ozs7Tjs7Ozs7CiszMTY0O0hBTkdVTCBGSUxMRVI7TG87MDtMOzxjb21wYXQ+IDExNjA7Ozs7TjtIQU5HVUwgQ0FFIE9NOzs7OworMzE2NTtIQU5HVUwgTEVUVEVSIFNTQU5HTklFVU47TG87MDtMOzxjb21wYXQ+IDExMTQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIE5JRVVOOzs7OworMzE2NjtIQU5HVUwgTEVUVEVSIE5JRVVOLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTExNTs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gRElHRVVEOzs7OworMzE2NztIQU5HVUwgTEVUVEVSIE5JRVVOLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQzc7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIFNJT1M7Ozs7CiszMTY4O0hBTkdVTCBMRVRURVIgTklFVU4tUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDODs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gQkFOIENISSBFVU07Ozs7CiszMTY5O0hBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQ0M7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRyBTSU9TOzs7OworMzE2QTtIQU5HVUwgTEVUVEVSIFJJRVVMLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTFDRTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgRElHRVVEOzs7OworMzE2QjtIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExRDM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCIFNJT1M7Ozs7CiszMTZDO0hBTkdVTCBMRVRURVIgUklFVUwtUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFENzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQkFOIENISSBFVU07Ozs7CiszMTZEO0hBTkdVTCBMRVRURVIgUklFVUwtWUVPUklOSElFVUg7TG87MDtMOzxjb21wYXQ+IDExRDk7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFlFT0xJTiBISUVVSDs7OzsKKzMxNkU7SEFOR1VMIExFVFRFUiBNSUVVTS1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTExQzs7OztOO0hBTkdVTCBMRVRURVIgTUlFVU0gQklFVUI7Ozs7CiszMTZGO0hBTkdVTCBMRVRURVIgTUlFVU0tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFERDs7OztOO0hBTkdVTCBMRVRURVIgTUlFVU0gU0lPUzs7OzsKKzMxNzA7SEFOR1VMIExFVFRFUiBNSUVVTS1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMURGOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBCQU4gQ0hJIEVVTTs7OzsKKzMxNzE7SEFOR1VMIExFVFRFUiBLQVBZRU9VTk1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTFEOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTVU4gR1lFT05HIEVVTTs7OzsKKzMxNzI7SEFOR1VMIExFVFRFUiBQSUVVUC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEdJWUVPRzs7OzsKKzMxNzM7SEFOR1VMIExFVFRFUiBQSUVVUC1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMjA7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIERJR0VVRDs7OzsKKzMxNzQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEyMjs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBHSVlFT0c7Ozs7CiszMTc1O0hBTkdVTCBMRVRURVIgUElFVVAtU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMjM7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1MgRElHRVVEOzs7OworMzE3NjtIQU5HVUwgTEVUVEVSIFBJRVVQLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTI3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBKSUVVSjs7OzsKKzMxNzc7SEFOR1VMIExFVFRFUiBQSUVVUC1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTI5Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBUSUVVVDs7OzsKKzMxNzg7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTJCOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTVU4gR1lFT05HIEVVTTs7OzsKKzMxNzk7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlNTQU5HUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkM7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3QTtIQU5HVUwgTEVUVEVSIFNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTJEOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIEdJWUVPRzs7OzsKKzMxN0I7SEFOR1VMIExFVFRFUiBTSU9TLU5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTJFOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIE5JRVVOOzs7OworMzE3QztIQU5HVUwgTEVUVEVSIFNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTJGOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIERJR0VVRDs7OzsKKzMxN0Q7SEFOR1VMIExFVFRFUiBTSU9TLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTMyOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIEJJRVVCOzs7OworMzE3RTtIQU5HVUwgTEVUVEVSIFNJT1MtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMzY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgSklFVUo7Ozs7CiszMTdGO0hBTkdVTCBMRVRURVIgUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTE0MDs7OztOO0hBTkdVTCBMRVRURVIgQkFOIENISSBFVU07Ozs7CiszMTgwO0hBTkdVTCBMRVRURVIgU1NBTkdJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Nzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgSUVVTkc7Ozs7CiszMTgxO0hBTkdVTCBMRVRURVIgWUVTSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExNEM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5HSUVVTkc7Ozs7CiszMTgyO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMTs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBTSU9TOzs7OworMzE4MztIQU5HVUwgTEVUVEVSIFlFU0lFVU5HLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExRjI7Ozs7TjtIQU5HVUwgTEVUVEVSIE5HSUVVTkcgQkFOIENISSBFVU07Ozs7CiszMTg0O0hBTkdVTCBMRVRURVIgS0FQWUVPVU5QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTU3Ozs7O047SEFOR1VMIExFVFRFUiBQSUVVUCBTVU4gR1lFT05HIEVVTTs7OzsKKzMxODU7SEFOR1VMIExFVFRFUiBTU0FOR0hJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBISUVVSDs7OzsKKzMxODY7SEFOR1VMIExFVFRFUiBZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTE1OTs7OztOO0hBTkdVTCBMRVRURVIgWUVPTElOIEhJRVVIOzs7OworMzE4NztIQU5HVUwgTEVUVEVSIFlPLVlBO0xvOzA7TDs8Y29tcGF0PiAxMTg0Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBOzs7OworMzE4ODtIQU5HVUwgTEVUVEVSIFlPLVlBRTtMbzswO0w7PGNvbXBhdD4gMTE4NTs7OztOO0hBTkdVTCBMRVRURVIgWU9ZQUU7Ozs7CiszMTg5O0hBTkdVTCBMRVRURVIgWU8tSTtMbzswO0w7PGNvbXBhdD4gMTE4ODs7OztOO0hBTkdVTCBMRVRURVIgWU9JOzs7OworMzE4QTtIQU5HVUwgTEVUVEVSIFlVLVlFTztMbzswO0w7PGNvbXBhdD4gMTE5MTs7OztOO0hBTkdVTCBMRVRURVIgWVVZRU87Ozs7CiszMThCO0hBTkdVTCBMRVRURVIgWVUtWUU7TG87MDtMOzxjb21wYXQ+IDExOTI7Ozs7TjtIQU5HVUwgTEVUVEVSIFlVWUU7Ozs7CiszMThDO0hBTkdVTCBMRVRURVIgWVUtSTtMbzswO0w7PGNvbXBhdD4gMTE5NDs7OztOO0hBTkdVTCBMRVRURVIgWVVJOzs7OworMzE4RDtIQU5HVUwgTEVUVEVSIEFSQUVBO0xvOzA7TDs8Y29tcGF0PiAxMTlFOzs7O047SEFOR1VMIExFVFRFUiBBTEFFIEE7Ozs7CiszMThFO0hBTkdVTCBMRVRURVIgQVJBRUFFO0xvOzA7TDs8Y29tcGF0PiAxMUExOzs7O047SEFOR1VMIExFVFRFUiBBTEFFIEFFOzs7OworMzE5MDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIExJTktJTkcgTUFSSztTbzswO0w7Ozs7O047S0FOQlVOIFRBVEVURU47S2FuYnVuIFRhdGV0ZW47OzsKKzMxOTE7SURFT0dSQVBISUMgQU5OT1RBVElPTiBSRVZFUlNFIE1BUks7U287MDtMOzs7OztOO0tBRVJJVEVOIFJFO0thZXJpdGVuOzs7CiszMTkyO0lERU9HUkFQSElDIEFOTk9UQVRJT04gT05FIE1BUks7Tm87MDtMOzxzdXBlcj4gNEUwMDs7OzE7TjtLQUVSSVRFTiBJVEk7S2Flcml0ZW47OzsKKzMxOTM7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUV08gTUFSSztObzswO0w7PHN1cGVyPiA0RThDOzs7MjtOO0tBRVJJVEVOIE5JO0thZXJpdGVuOzs7CiszMTk0O0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhSRUUgTUFSSztObzswO0w7PHN1cGVyPiA0RTA5Ozs7MztOO0tBRVJJVEVOIFNBTjtLYWVyaXRlbjs7OworMzE5NTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZPVVIgTUFSSztObzswO0w7PHN1cGVyPiA1NkRCOzs7NDtOO0tBRVJJVEVOIFNJO0thZXJpdGVuOzs7CiszMTk2O0lERU9HUkFQSElDIEFOTk9UQVRJT04gVE9QIE1BUks7U287MDtMOzxzdXBlcj4gNEUwQTs7OztOO0tBRVJJVEVOIFpZT1U7S2Flcml0ZW47OzsKKzMxOTc7SURFT0dSQVBISUMgQU5OT1RBVElPTiBNSURETEUgTUFSSztTbzswO0w7PHN1cGVyPiA0RTJEOzs7O047S0FFUklURU4gVFlVVTtLYWVyaXRlbjs7OworMzE5ODtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEJPVFRPTSBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMEI7Ozs7TjtLQUVSSVRFTiBHRTtLYWVyaXRlbjs7OworMzE5OTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZJUlNUIE1BUks7U287MDtMOzxzdXBlcj4gNzUzMjs7OztOO0tBRVJJVEVOIEtPVTtLYWVyaXRlbjs7OworMzE5QTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFNFQ09ORCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFNTk7Ozs7TjtLQUVSSVRFTiBPVFU7S2Flcml0ZW47OzsKKzMxOUI7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUSElSRCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMTk7Ozs7TjtLQUVSSVRFTiBIRUk7S2Flcml0ZW47OzsKKzMxOUM7SURFT0dSQVBISUMgQU5OT1RBVElPTiBGT1VSVEggTUFSSztTbzswO0w7PHN1cGVyPiA0RTAxOzs7O047S0FFUklURU4gVEVJO0thZXJpdGVuOzs7CiszMTlEO0lERU9HUkFQSElDIEFOTk9UQVRJT04gSEVBVkVOIE1BUks7U287MDtMOzxzdXBlcj4gNTkyOTs7OztOO0tBRVJJVEVOIFRFTjtLYWVyaXRlbjs7OworMzE5RTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEVBUlRIIE1BUks7U287MDtMOzxzdXBlcj4gNTczMDs7OztOO0tBRVJJVEVOIFRJO0thZXJpdGVuOzs7CiszMTlGO0lERU9HUkFQSElDIEFOTk9UQVRJT04gTUFOIE1BUks7U287MDtMOzxzdXBlcj4gNEVCQTs7OztOO0tBRVJJVEVOIFpJTjtLYWVyaXRlbjs7OworMzFBMDtCT1BPTU9GTyBMRVRURVIgQlU7TG87MDtMOzs7OztOOzs7OzsKKzMxQTE7Qk9QT01PRk8gTEVUVEVSIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUEyO0JPUE9NT0ZPIExFVFRFUiBKSTtMbzswO0w7Ozs7O047Ozs7OworMzFBMztCT1BPTU9GTyBMRVRURVIgR1U7TG87MDtMOzs7OztOOzs7OzsKKzMxQTQ7Qk9QT01PRk8gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE1O0JPUE9NT0ZPIExFVFRFUiBFTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQTY7Qk9QT01PRk8gTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE3O0JPUE9NT0ZPIExFVFRFUiBPTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQTg7Qk9QT01PRk8gTEVUVEVSIElSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE5O0JPUE9NT0ZPIExFVFRFUiBBTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUE7Qk9QT01PRk8gTEVUVEVSIElOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBQjtCT1BPTU9GTyBMRVRURVIgVU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFDO0JPUE9NT0ZPIExFVFRFUiBJTTtMbzswO0w7Ozs7O047Ozs7OworMzFBRDtCT1BPTU9GTyBMRVRURVIgTkdHO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFFO0JPUE9NT0ZPIExFVFRFUiBBSU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFGO0JPUE9NT0ZPIExFVFRFUiBBVU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIwO0JPUE9NT0ZPIExFVFRFUiBBTTtMbzswO0w7Ozs7O047Ozs7OworMzFCMTtCT1BPTU9GTyBMRVRURVIgT007TG87MDtMOzs7OztOOzs7OzsKKzMxQjI7Qk9QT01PRk8gTEVUVEVSIE9ORztMbzswO0w7Ozs7O047Ozs7OworMzFCMztCT1BPTU9GTyBMRVRURVIgSU5OTjtMbzswO0w7Ozs7O047Ozs7OworMzFCNDtCT1BPTU9GTyBGSU5BTCBMRVRURVIgUDtMbzswO0w7Ozs7O047Ozs7OworMzFCNTtCT1BPTU9GTyBGSU5BTCBMRVRURVIgVDtMbzswO0w7Ozs7O047Ozs7OworMzFCNjtCT1BPTU9GTyBGSU5BTCBMRVRURVIgSztMbzswO0w7Ozs7O047Ozs7OworMzFCNztCT1BPTU9GTyBGSU5BTCBMRVRURVIgSDtMbzswO0w7Ozs7O047Ozs7OworMzFDMDtDSksgU1RST0tFIFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUMxO0NKSyBTVFJPS0UgV0c7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUMyO0NKSyBTVFJPS0UgWEc7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUMzO0NKSyBTVFJPS0UgQlhHO1NvOzA7T047Ozs7O047Ozs7OworMzFDNDtDSksgU1RST0tFIFNXO1NvOzA7T047Ozs7O047Ozs7OworMzFDNTtDSksgU1RST0tFIEhaWjtTbzswO09OOzs7OztOOzs7OzsKKzMxQzY7Q0pLIFNUUk9LRSBIWkc7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUM3O0NKSyBTVFJPS0UgSFA7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUM4O0NKSyBTVFJPS0UgSFpXRztTbzswO09OOzs7OztOOzs7OzsKKzMxQzk7Q0pLIFNUUk9LRSBTWldHO1NvOzA7T047Ozs7O047Ozs7OworMzFDQTtDSksgU1RST0tFIEhaVDtTbzswO09OOzs7OztOOzs7OzsKKzMxQ0I7Q0pLIFNUUk9LRSBIWlpQO1NvOzA7T047Ozs7O047Ozs7OworMzFDQztDSksgU1RST0tFIEhQV0c7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUNEO0NKSyBTVFJPS0UgSFpXO1NvOzA7T047Ozs7O047Ozs7OworMzFDRTtDSksgU1RST0tFIEhaWlo7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUNGO0NKSyBTVFJPS0UgTjtTbzswO09OOzs7OztOOzs7OzsKKzMxRjA7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUYxO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBTSTtMbzswO0w7Ozs7O047Ozs7OworMzFGMjtLQVRBS0FOQSBMRVRURVIgU01BTEwgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMxRjM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY0O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBOVTtMbzswO0w7Ozs7O047Ozs7OworMzFGNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMxRjY7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY3O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBIVTtMbzswO0w7Ozs7O047Ozs7OworMzFGODtLQVRBS0FOQSBMRVRURVIgU01BTEwgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMxRjk7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZBO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBNVTtMbzswO0w7Ozs7O047Ozs7OworMzFGQjtLQVRBS0FOQSBMRVRURVIgU01BTEwgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMxRkM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZEO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBSVTtMbzswO0w7Ozs7O047Ozs7OworMzFGRTtLQVRBS0FOQSBMRVRURVIgU01BTEwgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMxRkY7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMjAwO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAwIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBHSVlFT0c7Ozs7CiszMjAxO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDIgMDAyOTs7OztOOzs7OzsKKzMyMDI7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDMgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIERJR0VVRDs7OzsKKzMyMDM7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUw7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTElFVUw7Ozs7CiszMjA0O1BBUkVOVEhFU0laRUQgSEFOR1VMIE1JRVVNO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMDAyOTs7OztOOzs7OzsKKzMyMDU7UEFSRU5USEVTSVpFRCBIQU5HVUwgUElFVVA7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQklFVUI7Ozs7CiszMjA2O1BBUkVOVEhFU0laRUQgSEFOR1VMIFNJT1M7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwOSAwMDI5Ozs7O047Ozs7OworMzIwNztQQVJFTlRIRVNJWkVEIEhBTkdVTCBJRVVORztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBCIDAwMjk7Ozs7Tjs7Ozs7CiszMjA4O1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEpJRVVKOzs7OworMzIwOTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSElFVUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEUgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDOzs7OworMzIwQTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEYgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSzs7OzsKKzMyMEI7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEwIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUVVVDs7OzsKKzMyMEM7UEFSRU5USEVTSVpFRCBIQU5HVUwgUEhJRVVQSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDs7OzsKKzMyMEQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgSElFVUg7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMiAwMDI5Ozs7O047Ozs7OworMzIwRTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSVlFT0sgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAwIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdBOzs7OworMzIwRjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOSUVVTiBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTkE7Ozs7CiszMjEwO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJS0VVVCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgREE7Ozs7CiszMjExO1BBUkVOVEhFU0laRUQgSEFOR1VMIFJJRVVMIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMQTs7OzsKKzMyMTI7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU0gQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA2IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIE1BOzs7OworMzIxMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDcgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQkE7Ozs7CiszMjE0O1BBUkVOVEhFU0laRUQgSEFOR1VMIFNJT1MgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFNBOzs7OworMzIxNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBJRVVORyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQTs7OzsKKzMyMTY7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUMgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBDIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEpBOzs7OworMzIxNztQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSElFVUNIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDQTs7OzsKKzMyMTg7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0hJRVVLSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0E7Ozs7CiszMjE5O1BBUkVOVEhFU0laRUQgSEFOR1VMIFRISUVVVEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEwIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRBOzs7OworMzIxQTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQQTs7OzsKKzMyMUI7UEFSRU5USEVTSVpFRCBIQU5HVUwgSElFVUggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEhBOzs7OworMzIxQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBVO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2RSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSlU7Ozs7CiszMjFEO1BBUkVOVEhFU0laRUQgS09SRUFOIENIQVJBQ1RFUiBPSkVPTjtTbzswO09OOzxjb21wYXQ+IDAwMjggMTEwQiAxMTY5IDExMEMgMTE2NSAxMUFCIDAwMjk7Ozs7Tjs7Ozs7CiszMjFFO1BBUkVOVEhFU0laRUQgS09SRUFOIENIQVJBQ1RFUiBPIEhVO1NvOzA7T047PGNvbXBhdD4gMDAyOCAxMTBCIDExNjkgMTExMiAxMTZFIDAwMjk7Ozs7Tjs7Ozs7CiszMjIwO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE9ORTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTAwIDAwMjk7OzsxO047Ozs7OworMzIyMTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBUV087Tm87MDtMOzxjb21wYXQ+IDAwMjggNEU4QyAwMDI5Ozs7MjtOOzs7OzsKKzMyMjI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEUwOSAwMDI5Ozs7MztOOzs7OzsKKzMyMjM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRk9VUjtObzswO0w7PGNvbXBhdD4gMDAyOCA1NkRCIDAwMjk7Ozs0O047Ozs7OworMzIyNDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGSVZFO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFOTQgMDAyOTs7OzU7Tjs7Ozs7CiszMjI1O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNvbXBhdD4gMDAyOCA1MTZEIDAwMjk7Ozs2O047Ozs7OworMzIyNjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTRVZFTjtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTAzIDAwMjk7Ozs3O047Ozs7OworMzIyNztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBFSUdIVDtObzswO0w7PGNvbXBhdD4gMDAyOCA1MTZCIDAwMjk7Ozs4O047Ozs7OworMzIyODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFNUQgMDAyOTs7Ozk7Tjs7Ozs7CiszMjI5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRFTjtObzswO0w7PGNvbXBhdD4gMDAyOCA1MzQxIDAwMjk7OzsxMDtOOzs7OzsKKzMyMkE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzA4IDAwMjk7Ozs7Tjs7Ozs7CiszMjJCO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjb21wYXQ+IDAwMjggNzA2QiAwMDI5Ozs7O047Ozs7OworMzIyQztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2QzM0IDAwMjk7Ozs7Tjs7Ozs7CiszMjJEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjb21wYXQ+IDAwMjggNjcyOCAwMDI5Ozs7O047Ozs7OworMzIyRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA5MUQxIDAwMjk7Ozs7Tjs7Ozs7CiszMjJGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU3MUYgMDAyOTs7OztOOzs7OzsKKzMyMzA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY1RTUgMDAyOTs7OztOOzs7OzsKKzMyMzE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjb21wYXQ+IDAwMjggNjgyQSAwMDI5Ozs7O047Ozs7OworMzIzMjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MDkgMDAyOTs7OztOOzs7OzsKKzMyMzM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTNFIDAwMjk7Ozs7Tjs7Ozs7CiszMjM0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjb21wYXQ+IDAwMjggNTQwRCAwMDI5Ozs7O047Ozs7OworMzIzNTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDcyNzkgMDAyOTs7OztOOzs7OzsKKzMyMzY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDhDQTEgMDAyOTs7OztOOzs7OzsKKzMyMzc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjb21wYXQ+IDAwMjggNzk1RCAwMDI5Ozs7O047Ozs7OworMzIzODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA1MkI0IDAwMjk7Ozs7Tjs7Ozs7CiszMjM5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFUFJFU0VOVDtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RUUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNBO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIENBTEw7U287MDtMOzxjb21wYXQ+IDAwMjggNTQ3QyAwMDI5Ozs7O047Ozs7OworMzIzQjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1QjY2IDAwMjk7Ozs7Tjs7Ozs7CiszMjNDO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3NkUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjb21wYXQ+IDAwMjggNEYwMSAwMDI5Ozs7O047Ozs7OworMzIzRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA4Q0M3IDAwMjk7Ozs7Tjs7Ozs7CiszMjNGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDUzNTQgMDAyOTs7OztOOzs7OzsKKzMyNDA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRkVTVElWQUw7U287MDtMOzxjb21wYXQ+IDAwMjggNzk2RCAwMDI5Ozs7O047Ozs7OworMzI0MTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRGMTEgMDAyOTs7OztOOzs7OzsKKzMyNDI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0VMRjtTbzswO0w7PGNvbXBhdD4gMDAyOCA4MUVBIDAwMjk7Ozs7Tjs7Ozs7CiszMjQzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFQUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDgxRjMgMDAyOTs7OztOOzs7OzsKKzMyNTA7UEFSVE5FUlNISVAgU0lHTjtTbzswO09OOzxzcXVhcmU+IDAwNTAgMDA1NCAwMDQ1Ozs7O047Ozs7OworMzI1MTtDSVJDTEVEIE5VTUJFUiBUV0VOVFkgT05FO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDMxOzs7MjE7Tjs7Ozs7CiszMjUyO0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBUV087Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzI7OzsyMjtOOzs7OzsKKzMyNTM7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFRIUkVFO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDMzOzs7MjM7Tjs7Ozs7CiszMjU0O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM0Ozs7MjQ7Tjs7Ozs7CiszMjU1O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBGSVZFO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM1Ozs7MjU7Tjs7Ozs7CiszMjU2O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBTSVg7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzY7OzsyNjtOOzs7OzsKKzMyNTc7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM3Ozs7Mjc7Tjs7Ozs7CiszMjU4O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBFSUdIVDtObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzODs7OzI4O047Ozs7OworMzI1OTtDSVJDTEVEIE5VTUJFUiBUV0VOVFkgTklORTtObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzOTs7OzI5O047Ozs7OworMzI1QTtDSVJDTEVEIE5VTUJFUiBUSElSVFk7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzA7OzszMDtOOzs7OzsKKzMyNUI7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIE9ORTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzMTs7OzMxO047Ozs7OworMzI1QztDSVJDTEVEIE5VTUJFUiBUSElSVFkgVFdPO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDMyOzs7MzI7Tjs7Ozs7CiszMjVEO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBUSFJFRTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzMzs7OzMzO047Ozs7OworMzI1RTtDSVJDTEVEIE5VTUJFUiBUSElSVFkgRk9VUjtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzNDs7OzM0O047Ozs7OworMzI1RjtDSVJDTEVEIE5VTUJFUiBUSElSVFkgRklWRTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzNTs7OzM1O047Ozs7OworMzI2MDtDSVJDTEVEIEhBTkdVTCBLSVlFT0s7U287MDtMOzxjaXJjbGU+IDExMDA7Ozs7TjtDSVJDTEVEIEhBTkdVTCBHSVlFT0c7Ozs7CiszMjYxO0NJUkNMRUQgSEFOR1VMIE5JRVVOO1NvOzA7TDs8Y2lyY2xlPiAxMTAyOzs7O047Ozs7OworMzI2MjtDSVJDTEVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjaXJjbGU+IDExMDM7Ozs7TjtDSVJDTEVEIEhBTkdVTCBESUdFVUQ7Ozs7CiszMjYzO0NJUkNMRUQgSEFOR1VMIFJJRVVMO1NvOzA7TDs8Y2lyY2xlPiAxMTA1Ozs7O047Q0lSQ0xFRCBIQU5HVUwgTElFVUw7Ozs7CiszMjY0O0NJUkNMRUQgSEFOR1VMIE1JRVVNO1NvOzA7TDs8Y2lyY2xlPiAxMTA2Ozs7O047Ozs7OworMzI2NTtDSVJDTEVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNpcmNsZT4gMTEwNzs7OztOO0NJUkNMRUQgSEFOR1VMIEJJRVVCOzs7OworMzI2NjtDSVJDTEVEIEhBTkdVTCBTSU9TO1NvOzA7TDs8Y2lyY2xlPiAxMTA5Ozs7O047Ozs7OworMzI2NztDSVJDTEVEIEhBTkdVTCBJRVVORztTbzswO0w7PGNpcmNsZT4gMTEwQjs7OztOOzs7OzsKKzMyNjg7Q0lSQ0xFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjaXJjbGU+IDExMEM7Ozs7TjtDSVJDTEVEIEhBTkdVTCBKSUVVSjs7OzsKKzMyNjk7Q0lSQ0xFRCBIQU5HVUwgQ0hJRVVDSDtTbzswO0w7PGNpcmNsZT4gMTEwRTs7OztOO0NJUkNMRUQgSEFOR1VMIENJRVVDOzs7OworMzI2QTtDSVJDTEVEIEhBTkdVTCBLSElFVUtIO1NvOzA7TDs8Y2lyY2xlPiAxMTBGOzs7O047Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LOzs7OworMzI2QjtDSVJDTEVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y2lyY2xlPiAxMTEwOzs7O047Q0lSQ0xFRCBIQU5HVUwgVElFVVQ7Ozs7CiszMjZDO0NJUkNMRUQgSEFOR1VMIFBISUVVUEg7U287MDtMOzxjaXJjbGU+IDExMTE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBQSUVVUDs7OzsKKzMyNkQ7Q0lSQ0xFRCBIQU5HVUwgSElFVUg7U287MDtMOzxjaXJjbGU+IDExMTI7Ozs7Tjs7Ozs7CiszMjZFO0NJUkNMRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAwIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBHQTs7OzsKKzMyNkY7Q0lSQ0xFRCBIQU5HVUwgTklFVU4gQTtTbzswO0w7PGNpcmNsZT4gMTEwMiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTkE7Ozs7CiszMjcwO0NJUkNMRUQgSEFOR1VMIFRJS0VVVCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAzIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBEQTs7OzsKKzMyNzE7Q0lSQ0xFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNpcmNsZT4gMTEwNSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTEE7Ozs7CiszMjcyO0NJUkNMRUQgSEFOR1VMIE1JRVVNIEE7U287MDtMOzxjaXJjbGU+IDExMDYgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIE1BOzs7OworMzI3MztDSVJDTEVEIEhBTkdVTCBQSUVVUCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA3IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBCQTs7OzsKKzMyNzQ7Q0lSQ0xFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA5IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBTQTs7OzsKKzMyNzU7Q0lSQ0xFRCBIQU5HVUwgSUVVTkcgQTtTbzswO0w7PGNpcmNsZT4gMTEwQiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQTs7OzsKKzMyNzY7Q0lSQ0xFRCBIQU5HVUwgQ0lFVUMgQTtTbzswO0w7PGNpcmNsZT4gMTEwQyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgSkE7Ozs7CiszMjc3O0NJUkNMRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNpcmNsZT4gMTEwRSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQ0E7Ozs7CiszMjc4O0NJUkNMRUQgSEFOR1VMIEtISUVVS0ggQTtTbzswO0w7PGNpcmNsZT4gMTEwRiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgS0E7Ozs7CiszMjc5O0NJUkNMRUQgSEFOR1VMIFRISUVVVEggQTtTbzswO0w7PGNpcmNsZT4gMTExMCAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgVEE7Ozs7CiszMjdBO0NJUkNMRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNpcmNsZT4gMTExMSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgUEE7Ozs7CiszMjdCO0NJUkNMRUQgSEFOR1VMIEhJRVVIIEE7U287MDtMOzxjaXJjbGU+IDExMTIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEhBOzs7OworMzI3QztDSVJDTEVEIEtPUkVBTiBDSEFSQUNURVIgQ0hBTUtPO1NvOzA7T047PGNpcmNsZT4gMTEwRSAxMTYxIDExQjcgMTEwMCAxMTY5Ozs7O047Ozs7OworMzI3RDtDSVJDTEVEIEtPUkVBTiBDSEFSQUNURVIgSlVFVUk7U287MDtPTjs8Y2lyY2xlPiAxMTBDIDExNkUgMTEwQiAxMTc0Ozs7O047Ozs7OworMzI3RTtDSVJDTEVEIEhBTkdVTCBJRVVORyBVO1NvOzA7T047PGNpcmNsZT4gMTEwQiAxMTZFOzs7O047Ozs7OworMzI3RjtLT1JFQU4gU1RBTkRBUkQgU1lNQk9MO1NvOzA7TDs7Ozs7Tjs7Ozs7CiszMjgwO0NJUkNMRUQgSURFT0dSQVBIIE9ORTtObzswO0w7PGNpcmNsZT4gNEUwMDs7OzE7Tjs7Ozs7CiszMjgxO0NJUkNMRUQgSURFT0dSQVBIIFRXTztObzswO0w7PGNpcmNsZT4gNEU4Qzs7OzI7Tjs7Ozs7CiszMjgyO0NJUkNMRUQgSURFT0dSQVBIIFRIUkVFO05vOzA7TDs8Y2lyY2xlPiA0RTA5Ozs7MztOOzs7OzsKKzMyODM7Q0lSQ0xFRCBJREVPR1JBUEggRk9VUjtObzswO0w7PGNpcmNsZT4gNTZEQjs7OzQ7Tjs7Ozs7CiszMjg0O0NJUkNMRUQgSURFT0dSQVBIIEZJVkU7Tm87MDtMOzxjaXJjbGU+IDRFOTQ7Ozs1O047Ozs7OworMzI4NTtDSVJDTEVEIElERU9HUkFQSCBTSVg7Tm87MDtMOzxjaXJjbGU+IDUxNkQ7Ozs2O047Ozs7OworMzI4NjtDSVJDTEVEIElERU9HUkFQSCBTRVZFTjtObzswO0w7PGNpcmNsZT4gNEUwMzs7Ozc7Tjs7Ozs7CiszMjg3O0NJUkNMRUQgSURFT0dSQVBIIEVJR0hUO05vOzA7TDs8Y2lyY2xlPiA1MTZCOzs7ODtOOzs7OzsKKzMyODg7Q0lSQ0xFRCBJREVPR1JBUEggTklORTtObzswO0w7PGNpcmNsZT4gNEU1RDs7Ozk7Tjs7Ozs7CiszMjg5O0NJUkNMRUQgSURFT0dSQVBIIFRFTjtObzswO0w7PGNpcmNsZT4gNTM0MTs7OzEwO047Ozs7OworMzI4QTtDSVJDTEVEIElERU9HUkFQSCBNT09OO1NvOzA7TDs8Y2lyY2xlPiA2NzA4Ozs7O047Ozs7OworMzI4QjtDSVJDTEVEIElERU9HUkFQSCBGSVJFO1NvOzA7TDs8Y2lyY2xlPiA3MDZCOzs7O047Ozs7OworMzI4QztDSVJDTEVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNpcmNsZT4gNkMzNDs7OztOOzs7OzsKKzMyOEQ7Q0lSQ0xFRCBJREVPR1JBUEggV09PRDtTbzswO0w7PGNpcmNsZT4gNjcyODs7OztOOzs7OzsKKzMyOEU7Q0lSQ0xFRCBJREVPR1JBUEggTUVUQUw7U287MDtMOzxjaXJjbGU+IDkxRDE7Ozs7Tjs7Ozs7CiszMjhGO0NJUkNMRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y2lyY2xlPiA1NzFGOzs7O047Ozs7OworMzI5MDtDSVJDTEVEIElERU9HUkFQSCBTVU47U287MDtMOzxjaXJjbGU+IDY1RTU7Ozs7Tjs7Ozs7CiszMjkxO0NJUkNMRUQgSURFT0dSQVBIIFNUT0NLO1NvOzA7TDs8Y2lyY2xlPiA2ODJBOzs7O047Ozs7OworMzI5MjtDSVJDTEVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y2lyY2xlPiA2NzA5Ozs7O047Ozs7OworMzI5MztDSVJDTEVEIElERU9HUkFQSCBTT0NJRVRZO1NvOzA7TDs8Y2lyY2xlPiA3OTNFOzs7O047Ozs7OworMzI5NDtDSVJDTEVEIElERU9HUkFQSCBOQU1FO1NvOzA7TDs8Y2lyY2xlPiA1NDBEOzs7O047Ozs7OworMzI5NTtDSVJDTEVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y2lyY2xlPiA3Mjc5Ozs7O047Ozs7OworMzI5NjtDSVJDTEVEIElERU9HUkFQSCBGSU5BTkNJQUw7U287MDtMOzxjaXJjbGU+IDhDQTE7Ozs7Tjs7Ozs7CiszMjk3O0NJUkNMRUQgSURFT0dSQVBIIENPTkdSQVRVTEFUSU9OO1NvOzA7TDs8Y2lyY2xlPiA3OTVEOzs7O047Ozs7OworMzI5ODtDSVJDTEVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNpcmNsZT4gNTJCNDs7OztOOzs7OzsKKzMyOTk7Q0lSQ0xFRCBJREVPR1JBUEggU0VDUkVUO1NvOzA7TDs8Y2lyY2xlPiA3OUQ4Ozs7O047Ozs7OworMzI5QTtDSVJDTEVEIElERU9HUkFQSCBNQUxFO1NvOzA7TDs8Y2lyY2xlPiA3NTM3Ozs7O047Ozs7OworMzI5QjtDSVJDTEVEIElERU9HUkFQSCBGRU1BTEU7U287MDtMOzxjaXJjbGU+IDU5NzM7Ozs7Tjs7Ozs7CiszMjlDO0NJUkNMRUQgSURFT0dSQVBIIFNVSVRBQkxFO1NvOzA7TDs8Y2lyY2xlPiA5MDY5Ozs7O047Ozs7OworMzI5RDtDSVJDTEVEIElERU9HUkFQSCBFWENFTExFTlQ7U287MDtMOzxjaXJjbGU+IDUxMkE7Ozs7Tjs7Ozs7CiszMjlFO0NJUkNMRUQgSURFT0dSQVBIIFBSSU5UO1NvOzA7TDs8Y2lyY2xlPiA1MzcwOzs7O047Ozs7OworMzI5RjtDSVJDTEVEIElERU9HUkFQSCBBVFRFTlRJT047U287MDtMOzxjaXJjbGU+IDZDRTg7Ozs7Tjs7Ozs7CiszMkEwO0NJUkNMRUQgSURFT0dSQVBIIElURU07U287MDtMOzxjaXJjbGU+IDk4MDU7Ozs7Tjs7Ozs7CiszMkExO0NJUkNMRUQgSURFT0dSQVBIIFJFU1Q7U287MDtMOzxjaXJjbGU+IDRGMTE7Ozs7Tjs7Ozs7CiszMkEyO0NJUkNMRUQgSURFT0dSQVBIIENPUFk7U287MDtMOzxjaXJjbGU+IDUxOTk7Ozs7Tjs7Ozs7CiszMkEzO0NJUkNMRUQgSURFT0dSQVBIIENPUlJFQ1Q7U287MDtMOzxjaXJjbGU+IDZCNjM7Ozs7Tjs7Ozs7CiszMkE0O0NJUkNMRUQgSURFT0dSQVBIIEhJR0g7U287MDtMOzxjaXJjbGU+IDRFMEE7Ozs7Tjs7Ozs7CiszMkE1O0NJUkNMRUQgSURFT0dSQVBIIENFTlRSRTtTbzswO0w7PGNpcmNsZT4gNEUyRDs7OztOO0NJUkNMRUQgSURFT0dSQVBIIENFTlRFUjs7OzsKKzMyQTY7Q0lSQ0xFRCBJREVPR1JBUEggTE9XO1NvOzA7TDs8Y2lyY2xlPiA0RTBCOzs7O047Ozs7OworMzJBNztDSVJDTEVEIElERU9HUkFQSCBMRUZUO1NvOzA7TDs8Y2lyY2xlPiA1REU2Ozs7O047Ozs7OworMzJBODtDSVJDTEVEIElERU9HUkFQSCBSSUdIVDtTbzswO0w7PGNpcmNsZT4gNTNGMzs7OztOOzs7OzsKKzMyQTk7Q0lSQ0xFRCBJREVPR1JBUEggTUVESUNJTkU7U287MDtMOzxjaXJjbGU+IDUzM0I7Ozs7Tjs7Ozs7CiszMkFBO0NJUkNMRUQgSURFT0dSQVBIIFJFTElHSU9OO1NvOzA7TDs8Y2lyY2xlPiA1Qjk3Ozs7O047Ozs7OworMzJBQjtDSVJDTEVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNpcmNsZT4gNUI2Njs7OztOOzs7OzsKKzMyQUM7Q0lSQ0xFRCBJREVPR1JBUEggU1VQRVJWSVNFO1NvOzA7TDs8Y2lyY2xlPiA3NkUzOzs7O047Ozs7OworMzJBRDtDSVJDTEVEIElERU9HUkFQSCBFTlRFUlBSSVNFO1NvOzA7TDs8Y2lyY2xlPiA0RjAxOzs7O047Ozs7OworMzJBRTtDSVJDTEVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNpcmNsZT4gOENDNzs7OztOOzs7OzsKKzMyQUY7Q0lSQ0xFRCBJREVPR1JBUEggQUxMSUFOQ0U7U287MDtMOzxjaXJjbGU+IDUzNTQ7Ozs7Tjs7Ozs7CiszMkIwO0NJUkNMRUQgSURFT0dSQVBIIE5JR0hUO1NvOzA7TDs8Y2lyY2xlPiA1OTFDOzs7O047Ozs7OworMzJCMTtDSVJDTEVEIE5VTUJFUiBUSElSVFkgU0lYO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM2Ozs7MzY7Tjs7Ozs7CiszMkIyO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBTRVZFTjtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzNzs7OzM3O047Ozs7OworMzJCMztDSVJDTEVEIE5VTUJFUiBUSElSVFkgRUlHSFQ7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzg7OzszODtOOzs7OzsKKzMyQjQ7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIE5JTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzk7OzszOTtOOzs7OzsKKzMyQjU7Q0lSQ0xFRCBOVU1CRVIgRk9SVFk7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzA7Ozs0MDtOOzs7OzsKKzMyQjY7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgT05FO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDMxOzs7NDE7Tjs7Ozs7CiszMkI3O0NJUkNMRUQgTlVNQkVSIEZPUlRZIFRXTztObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzMjs7OzQyO047Ozs7OworMzJCODtDSVJDTEVEIE5VTUJFUiBGT1JUWSBUSFJFRTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzMzs7OzQzO047Ozs7OworMzJCOTtDSVJDTEVEIE5VTUJFUiBGT1JUWSBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM0Ozs7NDQ7Tjs7Ozs7CiszMkJBO0NJUkNMRUQgTlVNQkVSIEZPUlRZIEZJVkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzU7Ozs0NTtOOzs7OzsKKzMyQkI7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgU0lYO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM2Ozs7NDY7Tjs7Ozs7CiszMkJDO0NJUkNMRUQgTlVNQkVSIEZPUlRZIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM3Ozs7NDc7Tjs7Ozs7CiszMkJEO0NJUkNMRUQgTlVNQkVSIEZPUlRZIEVJR0hUO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM4Ozs7NDg7Tjs7Ozs7CiszMkJFO0NJUkNMRUQgTlVNQkVSIEZPUlRZIE5JTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzk7Ozs0OTtOOzs7OzsKKzMyQkY7Q0lSQ0xFRCBOVU1CRVIgRklGVFk7Tm87MDtPTjs8Y2lyY2xlPiAwMDM1IDAwMzA7Ozs1MDtOOzs7OzsKKzMyQzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSkFOVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBGRUJSVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMiA2NzA4Ozs7O047Ozs7OworMzJDMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVJDSDtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NzA4Ozs7O047Ozs7OworMzJDMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBBUFJJTDtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NzA4Ozs7O047Ozs7OworMzJDNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVk7U287MDtMOzxjb21wYXQ+IDAwMzUgNjcwODs7OztOOzs7OzsKKzMyQzU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSlVORTtTbzswO0w7PGNvbXBhdD4gMDAzNiA2NzA4Ozs7O047Ozs7OworMzJDNjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVUxZO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY3MDg7Ozs7Tjs7Ozs7CiszMkM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFVR1VTVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NzA4Ozs7O047Ozs7OworMzJDODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBTRVBURU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzkgNjcwODs7OztOOzs7OzsKKzMyQzk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgT0NUT0JFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY3MDg7Ozs7Tjs7Ozs7CiszMkNBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE5PVkVNQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNjcwODs7OztOOzs7OzsKKzMyQ0I7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREVDRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NzA4Ozs7O047Ozs7OworMzJDQztTUVVBUkUgSEc7U287MDtPTjs8c3F1YXJlPiAwMDQ4IDAwNjc7Ozs7Tjs7Ozs7CiszMkNEO1NRVUFSRSBFUkc7U287MDtPTjs8c3F1YXJlPiAwMDY1IDAwNzIgMDA2Nzs7OztOOzs7OzsKKzMyQ0U7U1FVQVJFIEVWO1NvOzA7T047PHNxdWFyZT4gMDA2NSAwMDU2Ozs7O047Ozs7OworMzJDRjtMSU1JVEVEIExJQUJJTElUWSBTSUdOO1NvOzA7T047PHNxdWFyZT4gMDA0QyAwMDU0IDAwNDQ7Ozs7Tjs7Ozs7CiszMkQwO0NJUkNMRUQgS0FUQUtBTkEgQTtTbzswO0w7PGNpcmNsZT4gMzBBMjs7OztOOzs7OzsKKzMyRDE7Q0lSQ0xFRCBLQVRBS0FOQSBJO1NvOzA7TDs8Y2lyY2xlPiAzMEE0Ozs7O047Ozs7OworMzJEMjtDSVJDTEVEIEtBVEFLQU5BIFU7U287MDtMOzxjaXJjbGU+IDMwQTY7Ozs7Tjs7Ozs7CiszMkQzO0NJUkNMRUQgS0FUQUtBTkEgRTtTbzswO0w7PGNpcmNsZT4gMzBBODs7OztOOzs7OzsKKzMyRDQ7Q0lSQ0xFRCBLQVRBS0FOQSBPO1NvOzA7TDs8Y2lyY2xlPiAzMEFBOzs7O047Ozs7OworMzJENTtDSVJDTEVEIEtBVEFLQU5BIEtBO1NvOzA7TDs8Y2lyY2xlPiAzMEFCOzs7O047Ozs7OworMzJENjtDSVJDTEVEIEtBVEFLQU5BIEtJO1NvOzA7TDs8Y2lyY2xlPiAzMEFEOzs7O047Ozs7OworMzJENztDSVJDTEVEIEtBVEFLQU5BIEtVO1NvOzA7TDs8Y2lyY2xlPiAzMEFGOzs7O047Ozs7OworMzJEODtDSVJDTEVEIEtBVEFLQU5BIEtFO1NvOzA7TDs8Y2lyY2xlPiAzMEIxOzs7O047Ozs7OworMzJEOTtDSVJDTEVEIEtBVEFLQU5BIEtPO1NvOzA7TDs8Y2lyY2xlPiAzMEIzOzs7O047Ozs7OworMzJEQTtDSVJDTEVEIEtBVEFLQU5BIFNBO1NvOzA7TDs8Y2lyY2xlPiAzMEI1Ozs7O047Ozs7OworMzJEQjtDSVJDTEVEIEtBVEFLQU5BIFNJO1NvOzA7TDs8Y2lyY2xlPiAzMEI3Ozs7O047Ozs7OworMzJEQztDSVJDTEVEIEtBVEFLQU5BIFNVO1NvOzA7TDs8Y2lyY2xlPiAzMEI5Ozs7O047Ozs7OworMzJERDtDSVJDTEVEIEtBVEFLQU5BIFNFO1NvOzA7TDs8Y2lyY2xlPiAzMEJCOzs7O047Ozs7OworMzJERTtDSVJDTEVEIEtBVEFLQU5BIFNPO1NvOzA7TDs8Y2lyY2xlPiAzMEJEOzs7O047Ozs7OworMzJERjtDSVJDTEVEIEtBVEFLQU5BIFRBO1NvOzA7TDs8Y2lyY2xlPiAzMEJGOzs7O047Ozs7OworMzJFMDtDSVJDTEVEIEtBVEFLQU5BIFRJO1NvOzA7TDs8Y2lyY2xlPiAzMEMxOzs7O047Ozs7OworMzJFMTtDSVJDTEVEIEtBVEFLQU5BIFRVO1NvOzA7TDs8Y2lyY2xlPiAzMEM0Ozs7O047Ozs7OworMzJFMjtDSVJDTEVEIEtBVEFLQU5BIFRFO1NvOzA7TDs8Y2lyY2xlPiAzMEM2Ozs7O047Ozs7OworMzJFMztDSVJDTEVEIEtBVEFLQU5BIFRPO1NvOzA7TDs8Y2lyY2xlPiAzMEM4Ozs7O047Ozs7OworMzJFNDtDSVJDTEVEIEtBVEFLQU5BIE5BO1NvOzA7TDs8Y2lyY2xlPiAzMENBOzs7O047Ozs7OworMzJFNTtDSVJDTEVEIEtBVEFLQU5BIE5JO1NvOzA7TDs8Y2lyY2xlPiAzMENCOzs7O047Ozs7OworMzJFNjtDSVJDTEVEIEtBVEFLQU5BIE5VO1NvOzA7TDs8Y2lyY2xlPiAzMENDOzs7O047Ozs7OworMzJFNztDSVJDTEVEIEtBVEFLQU5BIE5FO1NvOzA7TDs8Y2lyY2xlPiAzMENEOzs7O047Ozs7OworMzJFODtDSVJDTEVEIEtBVEFLQU5BIE5PO1NvOzA7TDs8Y2lyY2xlPiAzMENFOzs7O047Ozs7OworMzJFOTtDSVJDTEVEIEtBVEFLQU5BIEhBO1NvOzA7TDs8Y2lyY2xlPiAzMENGOzs7O047Ozs7OworMzJFQTtDSVJDTEVEIEtBVEFLQU5BIEhJO1NvOzA7TDs8Y2lyY2xlPiAzMEQyOzs7O047Ozs7OworMzJFQjtDSVJDTEVEIEtBVEFLQU5BIEhVO1NvOzA7TDs8Y2lyY2xlPiAzMEQ1Ozs7O047Ozs7OworMzJFQztDSVJDTEVEIEtBVEFLQU5BIEhFO1NvOzA7TDs8Y2lyY2xlPiAzMEQ4Ozs7O047Ozs7OworMzJFRDtDSVJDTEVEIEtBVEFLQU5BIEhPO1NvOzA7TDs8Y2lyY2xlPiAzMERCOzs7O047Ozs7OworMzJFRTtDSVJDTEVEIEtBVEFLQU5BIE1BO1NvOzA7TDs8Y2lyY2xlPiAzMERFOzs7O047Ozs7OworMzJFRjtDSVJDTEVEIEtBVEFLQU5BIE1JO1NvOzA7TDs8Y2lyY2xlPiAzMERGOzs7O047Ozs7OworMzJGMDtDSVJDTEVEIEtBVEFLQU5BIE1VO1NvOzA7TDs8Y2lyY2xlPiAzMEUwOzs7O047Ozs7OworMzJGMTtDSVJDTEVEIEtBVEFLQU5BIE1FO1NvOzA7TDs8Y2lyY2xlPiAzMEUxOzs7O047Ozs7OworMzJGMjtDSVJDTEVEIEtBVEFLQU5BIE1PO1NvOzA7TDs8Y2lyY2xlPiAzMEUyOzs7O047Ozs7OworMzJGMztDSVJDTEVEIEtBVEFLQU5BIFlBO1NvOzA7TDs8Y2lyY2xlPiAzMEU0Ozs7O047Ozs7OworMzJGNDtDSVJDTEVEIEtBVEFLQU5BIFlVO1NvOzA7TDs8Y2lyY2xlPiAzMEU2Ozs7O047Ozs7OworMzJGNTtDSVJDTEVEIEtBVEFLQU5BIFlPO1NvOzA7TDs8Y2lyY2xlPiAzMEU4Ozs7O047Ozs7OworMzJGNjtDSVJDTEVEIEtBVEFLQU5BIFJBO1NvOzA7TDs8Y2lyY2xlPiAzMEU5Ozs7O047Ozs7OworMzJGNztDSVJDTEVEIEtBVEFLQU5BIFJJO1NvOzA7TDs8Y2lyY2xlPiAzMEVBOzs7O047Ozs7OworMzJGODtDSVJDTEVEIEtBVEFLQU5BIFJVO1NvOzA7TDs8Y2lyY2xlPiAzMEVCOzs7O047Ozs7OworMzJGOTtDSVJDTEVEIEtBVEFLQU5BIFJFO1NvOzA7TDs8Y2lyY2xlPiAzMEVDOzs7O047Ozs7OworMzJGQTtDSVJDTEVEIEtBVEFLQU5BIFJPO1NvOzA7TDs8Y2lyY2xlPiAzMEVEOzs7O047Ozs7OworMzJGQjtDSVJDTEVEIEtBVEFLQU5BIFdBO1NvOzA7TDs8Y2lyY2xlPiAzMEVGOzs7O047Ozs7OworMzJGQztDSVJDTEVEIEtBVEFLQU5BIFdJO1NvOzA7TDs8Y2lyY2xlPiAzMEYwOzs7O047Ozs7OworMzJGRDtDSVJDTEVEIEtBVEFLQU5BIFdFO1NvOzA7TDs8Y2lyY2xlPiAzMEYxOzs7O047Ozs7OworMzJGRTtDSVJDTEVEIEtBVEFLQU5BIFdPO1NvOzA7TDs8Y2lyY2xlPiAzMEYyOzs7O047Ozs7OworMzMwMDtTUVVBUkUgQVBBQVRPO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRDEgMzBGQyAzMEM4Ozs7O047U1FVQVJFRCBBUEFBVE87Ozs7CiszMzAxO1NRVUFSRSBBUlVIVUE7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBFQiAzMEQ1IDMwQTE7Ozs7TjtTUVVBUkVEIEFSVUhVQTs7OzsKKzMzMDI7U1FVQVJFIEFOUEVBO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRjMgMzBEQSAzMEEyOzs7O047U1FVQVJFRCBBTlBFQTs7OzsKKzMzMDM7U1FVQVJFIEFBUlU7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBBQVJVOzs7OworMzMwNDtTUVVBUkUgSU5JTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwQ0IgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBJTklOR1U7Ozs7CiszMzA1O1NRVUFSRSBJTlRJO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwRjMgMzBDMTs7OztOO1NRVUFSRUQgSU5USTs7OzsKKzMzMDY7U1FVQVJFIFVPTjtTbzswO0w7PHNxdWFyZT4gMzBBNiAzMEE5IDMwRjM7Ozs7TjtTUVVBUkVEIFVPTjs7OzsKKzMzMDc7U1FVQVJFIEVTVUtVVURPO1NvOzA7TDs8c3F1YXJlPiAzMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7Ozs7TjtTUVVBUkVEIEVTVUtVVURPOzs7OworMzMwODtTUVVBUkUgRUVLQUE7U287MDtMOzxzcXVhcmU+IDMwQTggMzBGQyAzMEFCIDMwRkM7Ozs7TjtTUVVBUkVEIEVFS0FBOzs7OworMzMwOTtTUVVBUkUgT05TVTtTbzswO0w7PHNxdWFyZT4gMzBBQSAzMEYzIDMwQjk7Ozs7TjtTUVVBUkVEIE9OU1U7Ozs7CiszMzBBO1NRVUFSRSBPT01VO1NvOzA7TDs8c3F1YXJlPiAzMEFBIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgT09NVTs7OzsKKzMzMEI7U1FVQVJFIEtBSVJJO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwQTQgMzBFQTs7OztOO1NRVUFSRUQgS0FJUkk7Ozs7CiszMzBDO1NRVUFSRSBLQVJBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwRTkgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBLQVJBVFRPOzs7OworMzMwRDtTUVVBUkUgS0FST1JJSTtTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEVEIDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS0FST1JJSTs7OzsKKzMzMEU7U1FVQVJFIEdBUk9OO1NvOzA7TDs8c3F1YXJlPiAzMEFDIDMwRUQgMzBGMzs7OztOO1NRVUFSRUQgR0FST047Ozs7CiszMzBGO1NRVUFSRSBHQU5NQTtTbzswO0w7PHNxdWFyZT4gMzBBQyAzMEYzIDMwREU7Ozs7TjtTUVVBUkVEIEdBTk1BOzs7OworMzMxMDtTUVVBUkUgR0lHQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEFDOzs7O047U1FVQVJFRCBHSUdBOzs7OworMzMxMTtTUVVBUkUgR0lOSUk7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBDQiAzMEZDOzs7O047U1FVQVJFRCBHSU5JSTs7OzsKKzMzMTI7U1FVQVJFIEtZVVJJSTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEU1IDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS1lVUklJOzs7OworMzMxMztTUVVBUkUgR0lSVURBQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEVCIDMwQzAgMzBGQzs7OztOO1NRVUFSRUQgR0lSVURBQTs7OzsKKzMzMTQ7U1FVQVJFIEtJUk87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRDs7OztOO1NRVUFSRUQgS0lSTzs7OzsKKzMzMTU7U1FVQVJFIEtJUk9HVVJBTVU7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgS0lST0dVUkFNVTs7OzsKKzMzMTY7U1FVQVJFIEtJUk9NRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgS0lST01FRVRPUlU7Ozs7CiszMzE3O1NRVUFSRSBLSVJPV0FUVE87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEVGIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgS0lST1dBVFRPOzs7OworMzMxODtTUVVBUkUgR1VSQU1VO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgR1VSQU1VOzs7OworMzMxOTtTUVVBUkUgR1VSQU1VVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMCAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIEdVUkFNVVRPTjs7OzsKKzMzMUE7U1FVQVJFIEtVUlVaRUlSTztTbzswO0w7PHNxdWFyZT4gMzBBRiAzMEVCIDMwQkMgMzBBNCAzMEVEOzs7O047U1FVQVJFRCBLVVJVWkVJUk87Ozs7CiszMzFCO1NRVUFSRSBLVVJPT05FO1NvOzA7TDs8c3F1YXJlPiAzMEFGIDMwRUQgMzBGQyAzMENEOzs7O047U1FVQVJFRCBLVVJPT05FOzs7OworMzMxQztTUVVBUkUgS0VFU1U7U287MDtMOzxzcXVhcmU+IDMwQjEgMzBGQyAzMEI5Ozs7O047U1FVQVJFRCBLRUVTVTs7OzsKKzMzMUQ7U1FVQVJFIEtPUlVOQTtTbzswO0w7PHNxdWFyZT4gMzBCMyAzMEVCIDMwQ0E7Ozs7TjtTUVVBUkVEIEtPUlVOQTs7OzsKKzMzMUU7U1FVQVJFIEtPT1BPO1NvOzA7TDs8c3F1YXJlPiAzMEIzIDMwRkMgMzBERDs7OztOO1NRVUFSRUQgS09PUE87Ozs7CiszMzFGO1NRVUFSRSBTQUlLVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEI1IDMwQTQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBTQUlLVVJVOzs7OworMzMyMDtTUVVBUkUgU0FOVElJTVU7U287MDtMOzxzcXVhcmU+IDMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgU0FOVElJTVU7Ozs7CiszMzIxO1NRVUFSRSBTSVJJTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEI3IDMwRUEgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBTSVJJTkdVOzs7OworMzMyMjtTUVVBUkUgU0VOVEk7U287MDtMOzxzcXVhcmU+IDMwQkIgMzBGMyAzMEMxOzs7O047U1FVQVJFRCBTRU5USTs7OzsKKzMzMjM7U1FVQVJFIFNFTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgU0VOVE87Ozs7CiszMzI0O1NRVUFSRSBEQUFTVTtTbzswO0w7PHNxdWFyZT4gMzBDMCAzMEZDIDMwQjk7Ozs7TjtTUVVBUkVEIERBQVNVOzs7OworMzMyNTtTUVVBUkUgREVTSTtTbzswO0w7PHNxdWFyZT4gMzBDNyAzMEI3Ozs7O047U1FVQVJFRCBERVNJOzs7OworMzMyNjtTUVVBUkUgRE9SVTtTbzswO0w7PHNxdWFyZT4gMzBDOSAzMEVCOzs7O047U1FVQVJFRCBET1JVOzs7OworMzMyNztTUVVBUkUgVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIFRPTjs7OzsKKzMzMjg7U1FVQVJFIE5BTk87U287MDtMOzxzcXVhcmU+IDMwQ0EgMzBDRTs7OztOO1NRVUFSRUQgTkFOTzs7OzsKKzMzMjk7U1FVQVJFIE5PVFRPO1NvOzA7TDs8c3F1YXJlPiAzMENFIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgTk9UVE87Ozs7CiszMzJBO1NRVUFSRSBIQUlUVTtTbzswO0w7PHNxdWFyZT4gMzBDRiAzMEE0IDMwQzQ7Ozs7TjtTUVVBUkVEIEhBSVRVOzs7OworMzMyQjtTUVVBUkUgUEFBU0VOVE87U287MDtMOzxzcXVhcmU+IDMwRDEgMzBGQyAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUEFBU0VOVE87Ozs7CiszMzJDO1NRVUFSRSBQQUFUVTtTbzswO0w7PHNxdWFyZT4gMzBEMSAzMEZDIDMwQzQ7Ozs7TjtTUVVBUkVEIFBBQVRVOzs7OworMzMyRDtTUVVBUkUgQkFBUkVSVTtTbzswO0w7PHNxdWFyZT4gMzBEMCAzMEZDIDMwRUMgMzBFQjs7OztOO1NRVUFSRUQgQkFBUkVSVTs7OzsKKzMzMkU7U1FVQVJFIFBJQVNVVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBENCAzMEEyIDMwQjkgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBQSUFTVVRPUlU7Ozs7CiszMzJGO1NRVUFSRSBQSUtVUlU7U287MDtMOzxzcXVhcmU+IDMwRDQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBQSUtVUlU7Ozs7CiszMzMwO1NRVUFSRSBQSUtPO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQjM7Ozs7TjtTUVVBUkVEIFBJS087Ozs7CiszMzMxO1NRVUFSRSBCSVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQzIDMwRUI7Ozs7TjtTUVVBUkVEIEJJUlU7Ozs7CiszMzMyO1NRVUFSRSBIVUFSQURETztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEExIDMwRTkgMzBDMyAzMEM5Ozs7O047U1FVQVJFRCBIVUFSQURETzs7OzsKKzMzMzM7U1FVQVJFIEhVSUlUTztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEEzIDMwRkMgMzBDODs7OztOO1NRVUFSRUQgSFVJSVRPOzs7OworMzMzNDtTUVVBUkUgQlVTU1lFUlU7U287MDtMOzxzcXVhcmU+IDMwRDYgMzBDMyAzMEI3IDMwQTcgMzBFQjs7OztOO1NRVUFSRUQgQlVTU1lFUlU7Ozs7CiszMzM1O1NRVUFSRSBIVVJBTjtTbzswO0w7PHNxdWFyZT4gMzBENSAzMEU5IDMwRjM7Ozs7TjtTUVVBUkVEIEhVUkFOOzs7OworMzMzNjtTUVVBUkUgSEVLVVRBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhFS1VUQUFSVTs7OzsKKzMzMzc7U1FVQVJFIFBFU087U287MDtMOzxzcXVhcmU+IDMwREEgMzBCRDs7OztOO1NRVUFSRUQgUEVTTzs7OzsKKzMzMzg7U1FVQVJFIFBFTklISTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMENCIDMwRDI7Ozs7TjtTUVVBUkVEIFBFTklISTs7OzsKKzMzMzk7U1FVQVJFIEhFUlVUVTtTbzswO0w7PHNxdWFyZT4gMzBEOCAzMEVCIDMwQzQ7Ozs7TjtTUVVBUkVEIEhFUlVUVTs7OzsKKzMzM0E7U1FVQVJFIFBFTlNVO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwRjMgMzBCOTs7OztOO1NRVUFSRUQgUEVOU1U7Ozs7CiszMzNCO1NRVUFSRSBQRUVaSTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEZDIDMwQjg7Ozs7TjtTUVVBUkVEIFBFRVpJOzs7OworMzMzQztTUVVBUkUgQkVFVEE7U287MDtMOzxzcXVhcmU+IDMwRDkgMzBGQyAzMEJGOzs7O047U1FVQVJFRCBCRUVUQTs7OzsKKzMzM0Q7U1FVQVJFIFBPSU5UTztTbzswO0w7PHNxdWFyZT4gMzBERCAzMEE0IDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUE9JTlRPOzs7OworMzMzRTtTUVVBUkUgQk9SVVRPO1NvOzA7TDs8c3F1YXJlPiAzMERDIDMwRUIgMzBDODs7OztOO1NRVUFSRUQgQk9SVVRPOzs7OworMzMzRjtTUVVBUkUgSE9OO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRjM7Ozs7TjtTUVVBUkVEIEhPTjs7OzsKKzMzNDA7U1FVQVJFIFBPTkRPO1NvOzA7TDs8c3F1YXJlPiAzMEREIDMwRjMgMzBDOTs7OztOO1NRVUFSRUQgUE9ORE87Ozs7CiszMzQxO1NRVUFSRSBIT09SVTtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhPT1JVOzs7OworMzM0MjtTUVVBUkUgSE9PTjtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRjM7Ozs7TjtTUVVBUkVEIEhPT047Ozs7CiszMzQzO1NRVUFSRSBNQUlLVVJPO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQTQgMzBBRiAzMEVEOzs7O047U1FVQVJFRCBNQUlLVVJPOzs7OworMzM0NDtTUVVBUkUgTUFJUlU7U287MDtMOzxzcXVhcmU+IDMwREUgMzBBNCAzMEVCOzs7O047U1FVQVJFRCBNQUlSVTs7OzsKKzMzNDU7U1FVQVJFIE1BSEhBO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQzMgMzBDRjs7OztOO1NRVUFSRUQgTUFISEE7Ozs7CiszMzQ2O1NRVUFSRSBNQVJVS1U7U287MDtMOzxzcXVhcmU+IDMwREUgMzBFQiAzMEFGOzs7O047U1FVQVJFRCBNQVJVS1U7Ozs7CiszMzQ3O1NRVUFSRSBNQU5TWU9OO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7Ozs7TjtTUVVBUkVEIE1BTlNZT047Ozs7CiszMzQ4O1NRVUFSRSBNSUtVUk9OO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwQUYgMzBFRCAzMEYzOzs7O047U1FVQVJFRCBNSUtVUk9OOzs7OworMzM0OTtTUVVBUkUgTUlSSTtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEVBOzs7O047U1FVQVJFRCBNSVJJOzs7OworMzM0QTtTUVVBUkUgTUlSSUJBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwRUEgMzBEMCAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIE1JUklCQUFSVTs7OzsKKzMzNEI7U1FVQVJFIE1FR0E7U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQzs7OztOO1NRVUFSRUQgTUVHQTs7OzsKKzMzNEM7U1FVQVJFIE1FR0FUT047U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQyAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIE1FR0FUT047Ozs7CiszMzREO1NRVUFSRSBNRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwRkMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBNRUVUT1JVOzs7OworMzM0RTtTUVVBUkUgWUFBRE87U287MDtMOzxzcXVhcmU+IDMwRTQgMzBGQyAzMEM5Ozs7O047U1FVQVJFRCBZQUFETzs7OzsKKzMzNEY7U1FVQVJFIFlBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEU0IDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgWUFBUlU7Ozs7CiszMzUwO1NRVUFSRSBZVUFOO1NvOzA7TDs8c3F1YXJlPiAzMEU2IDMwQTIgMzBGMzs7OztOO1NRVUFSRUQgWVVBTjs7OzsKKzMzNTE7U1FVQVJFIFJJVFRPUlU7U287MDtMOzxzcXVhcmU+IDMwRUEgMzBDMyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIFJJVFRPUlU7Ozs7CiszMzUyO1NRVUFSRSBSSVJBO1NvOzA7TDs8c3F1YXJlPiAzMEVBIDMwRTk7Ozs7TjtTUVVBUkVEIFJJUkE7Ozs7CiszMzUzO1NRVUFSRSBSVVBJSTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEQ0IDMwRkM7Ozs7TjtTUVVBUkVEIFJVUElJOzs7OworMzM1NDtTUVVBUkUgUlVVQlVSVTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEZDIDMwRDYgMzBFQjs7OztOO1NRVUFSRUQgUlVVQlVSVTs7OzsKKzMzNTU7U1FVQVJFIFJFTVU7U287MDtMOzxzcXVhcmU+IDMwRUMgMzBFMDs7OztOO1NRVUFSRUQgUkVNVTs7OzsKKzMzNTY7U1FVQVJFIFJFTlRPR0VOO1NvOzA7TDs8c3F1YXJlPiAzMEVDIDMwRjMgMzBDOCAzMEIyIDMwRjM7Ozs7TjtTUVVBUkVEIFJFTlRPR0VOOzs7OworMzM1NztTUVVBUkUgV0FUVE87U287MDtMOzxzcXVhcmU+IDMwRUYgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBXQVRUTzs7OzsKKzMzNTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBaRVJPO1NvOzA7TDs8Y29tcGF0PiAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzU5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzVBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzVCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzVEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA3MEI5Ozs7O047Ozs7OworMzM1RTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNJWDtTbzswO0w7PGNvbXBhdD4gMDAzNiA3MEI5Ozs7O047Ozs7OworMzM1RjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDcwQjk7Ozs7Tjs7Ozs7CiszMzYwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNjE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzYyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNjM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA3MEI5Ozs7O047Ozs7OworMzM2NDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRUxWRTtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzY1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhJUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM2NjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNjc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGSUZURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzUgNzBCOTs7OztOOzs7OzsKKzMzNjg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTSVhURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzYgNzBCOTs7OztOOzs7OzsKKzMzNjk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA3MEI5Ozs7O047Ozs7OworMzM2QTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVJR0hURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNkI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzZDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNkU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNkY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM3MDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1GT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNzE7U1FVQVJFIEhQQTtTbzswO0w7PHNxdWFyZT4gMDA2OCAwMDUwIDAwNjE7Ozs7Tjs7Ozs7CiszMzcyO1NRVUFSRSBEQTtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDYxOzs7O047Ozs7OworMzM3MztTUVVBUkUgQVU7U287MDtMOzxzcXVhcmU+IDAwNDEgMDA1NTs7OztOOzs7OzsKKzMzNzQ7U1FVQVJFIEJBUjtTbzswO0w7PHNxdWFyZT4gMDA2MiAwMDYxIDAwNzI7Ozs7Tjs7Ozs7CiszMzc1O1NRVUFSRSBPVjtTbzswO0w7PHNxdWFyZT4gMDA2RiAwMDU2Ozs7O047Ozs7OworMzM3NjtTUVVBUkUgUEM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA2Mzs7OztOOzs7OzsKKzMzNzc7U1FVQVJFIERNO1NvOzA7T047PHNxdWFyZT4gMDA2NCAwMDZEOzs7O047Ozs7OworMzM3ODtTUVVBUkUgRE0gU1FVQVJFRDtTbzswO09OOzxzcXVhcmU+IDAwNjQgMDA2RCAwMEIyOzs7O047Ozs7OworMzM3OTtTUVVBUkUgRE0gQ1VCRUQ7U287MDtPTjs8c3F1YXJlPiAwMDY0IDAwNkQgMDBCMzs7OztOOzs7OzsKKzMzN0E7U1FVQVJFIElVO1NvOzA7T047PHNxdWFyZT4gMDA0OSAwMDU1Ozs7O047Ozs7OworMzM3QjtTUVVBUkUgRVJBIE5BTUUgSEVJU0VJO1NvOzA7TDs8c3F1YXJlPiA1RTczIDYyMTA7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIEhFSVNFSTs7OzsKKzMzN0M7U1FVQVJFIEVSQSBOQU1FIFNZT1VXQTtTbzswO0w7PHNxdWFyZT4gNjYyRCA1NDhDOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBTWU9VV0E7Ozs7CiszMzdEO1NRVUFSRSBFUkEgTkFNRSBUQUlTWU9VO1NvOzA7TDs8c3F1YXJlPiA1OTI3IDZCNjM7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIFRBSVNZT1U7Ozs7CiszMzdFO1NRVUFSRSBFUkEgTkFNRSBNRUlaSTtTbzswO0w7PHNxdWFyZT4gNjYwRSA2Q0JCOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBNRUlaSTs7OzsKKzMzN0Y7U1FVQVJFIENPUlBPUkFUSU9OO1NvOzA7TDs8c3F1YXJlPiA2ODJBIDVGMEYgNEYxQSA3OTNFOzs7O047U1FVQVJFRCBGT1VSIElERU9HUkFQSFMgQ09SUE9SQVRJT047Ozs7CiszMzgwO1NRVUFSRSBQQSBBTVBTO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNDE7Ozs7TjtTUVVBUkVEIFBBIEFNUFM7Ozs7CiszMzgxO1NRVUFSRSBOQTtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDQxOzs7O047U1FVQVJFRCBOQTs7OzsKKzMzODI7U1FVQVJFIE1VIEE7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA0MTs7OztOO1NRVUFSRUQgTVUgQTs7OzsKKzMzODM7U1FVQVJFIE1BO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNDE7Ozs7TjtTUVVBUkVEIE1BOzs7OworMzM4NDtTUVVBUkUgS0E7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA0MTs7OztOO1NRVUFSRUQgS0E7Ozs7CiszMzg1O1NRVUFSRSBLQjtTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDQyOzs7O047U1FVQVJFRCBLQjs7OzsKKzMzODY7U1FVQVJFIE1CO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNDI7Ozs7TjtTUVVBUkVEIE1COzs7OworMzM4NztTUVVBUkUgR0I7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA0Mjs7OztOO1NRVUFSRUQgR0I7Ozs7CiszMzg4O1NRVUFSRSBDQUw7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2MSAwMDZDOzs7O047U1FVQVJFRCBDQUw7Ozs7CiszMzg5O1NRVUFSRSBLQ0FMO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNjMgMDA2MSAwMDZDOzs7O047U1FVQVJFRCBLQ0FMOzs7OworMzM4QTtTUVVBUkUgUEY7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA0Njs7OztOO1NRVUFSRUQgUEY7Ozs7CiszMzhCO1NRVUFSRSBORjtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDQ2Ozs7O047U1FVQVJFRCBORjs7OzsKKzMzOEM7U1FVQVJFIE1VIEY7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA0Njs7OztOO1NRVUFSRUQgTVUgRjs7OzsKKzMzOEQ7U1FVQVJFIE1VIEc7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA2Nzs7OztOO1NRVUFSRUQgTVUgRzs7OzsKKzMzOEU7U1FVQVJFIE1HO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjc7Ozs7TjtTUVVBUkVEIE1HOzs7OworMzM4RjtTUVVBUkUgS0c7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2Nzs7OztOO1NRVUFSRUQgS0c7Ozs7CiszMzkwO1NRVUFSRSBIWjtTbzswO0w7PHNxdWFyZT4gMDA0OCAwMDdBOzs7O047U1FVQVJFRCBIWjs7OzsKKzMzOTE7U1FVQVJFIEtIWjtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEtIWjs7OzsKKzMzOTI7U1FVQVJFIE1IWjtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIE1IWjs7OzsKKzMzOTM7U1FVQVJFIEdIWjtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEdIWjs7OzsKKzMzOTQ7U1FVQVJFIFRIWjtTbzswO0w7PHNxdWFyZT4gMDA1NCAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIFRIWjs7OzsKKzMzOTU7U1FVQVJFIE1VIEw7U287MDtMOzxzcXVhcmU+IDAzQkMgMjExMzs7OztOO1NRVUFSRUQgTVUgTDs7OzsKKzMzOTY7U1FVQVJFIE1MO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDIxMTM7Ozs7TjtTUVVBUkVEIE1MOzs7OworMzM5NztTUVVBUkUgREw7U287MDtMOzxzcXVhcmU+IDAwNjQgMjExMzs7OztOO1NRVUFSRUQgREw7Ozs7CiszMzk4O1NRVUFSRSBLTDtTbzswO0w7PHNxdWFyZT4gMDA2QiAyMTEzOzs7O047U1FVQVJFRCBLTDs7OzsKKzMzOTk7U1FVQVJFIEZNO1NvOzA7TDs8c3F1YXJlPiAwMDY2IDAwNkQ7Ozs7TjtTUVVBUkVEIEZNOzs7OworMzM5QTtTUVVBUkUgTk07U287MDtMOzxzcXVhcmU+IDAwNkUgMDA2RDs7OztOO1NRVUFSRUQgTk07Ozs7CiszMzlCO1NRVUFSRSBNVSBNO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNkQ7Ozs7TjtTUVVBUkVEIE1VIE07Ozs7CiszMzlDO1NRVUFSRSBNTTtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEOzs7O047U1FVQVJFRCBNTTs7OzsKKzMzOUQ7U1FVQVJFIENNO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQ7Ozs7TjtTUVVBUkVEIENNOzs7OworMzM5RTtTUVVBUkUgS007U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RDs7OztOO1NRVUFSRUQgS007Ozs7CiszMzlGO1NRVUFSRSBNTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgTU0gU1FVQVJFRDs7OzsKKzMzQTA7U1FVQVJFIENNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBDTSBTUVVBUkVEOzs7OworMzNBMTtTUVVBUkUgTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIE0gU1FVQVJFRDs7OzsKKzMzQTI7U1FVQVJFIEtNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBLTSBTUVVBUkVEOzs7OworMzNBMztTUVVBUkUgTU0gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBNTSBDVUJFRDs7OzsKKzMzQTQ7U1FVQVJFIENNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgQ00gQ1VCRUQ7Ozs7CiszM0E1O1NRVUFSRSBNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIE0gQ1VCRUQ7Ozs7CiszM0E2O1NRVUFSRSBLTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIEtNIENVQkVEOzs7OworMzNBNztTUVVBUkUgTSBPVkVSIFM7U287MDtMOzxzcXVhcmU+IDAwNkQgMjIxNSAwMDczOzs7O047U1FVQVJFRCBNIE9WRVIgUzs7OzsKKzMzQTg7U1FVQVJFIE0gT1ZFUiBTIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMjIxNSAwMDczIDAwQjI7Ozs7TjtTUVVBUkVEIE0gT1ZFUiBTIFNRVUFSRUQ7Ozs7CiszM0E5O1NRVUFSRSBQQTtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDYxOzs7O047U1FVQVJFRCBQQTs7OzsKKzMzQUE7U1FVQVJFIEtQQTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIEtQQTs7OzsKKzMzQUI7U1FVQVJFIE1QQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIE1QQTs7OzsKKzMzQUM7U1FVQVJFIEdQQTtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIEdQQTs7OzsKKzMzQUQ7U1FVQVJFIFJBRDtTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQ7Ozs7TjtTUVVBUkVEIFJBRDs7OzsKKzMzQUU7U1FVQVJFIFJBRCBPVkVSIFM7U287MDtMOzxzcXVhcmU+IDAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3Mzs7OztOO1NRVUFSRUQgUkFEIE9WRVIgUzs7OzsKKzMzQUY7U1FVQVJFIFJBRCBPVkVSIFMgU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczIDAwQjI7Ozs7TjtTUVVBUkVEIFJBRCBPVkVSIFMgU1FVQVJFRDs7OzsKKzMzQjA7U1FVQVJFIFBTO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNzM7Ozs7TjtTUVVBUkVEIFBTOzs7OworMzNCMTtTUVVBUkUgTlM7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA3Mzs7OztOO1NRVUFSRUQgTlM7Ozs7CiszM0IyO1NRVUFSRSBNVSBTO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNzM7Ozs7TjtTUVVBUkVEIE1VIFM7Ozs7CiszM0IzO1NRVUFSRSBNUztTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDczOzs7O047U1FVQVJFRCBNUzs7OzsKKzMzQjQ7U1FVQVJFIFBWO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNTY7Ozs7TjtTUVVBUkVEIFBWOzs7OworMzNCNTtTUVVBUkUgTlY7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA1Njs7OztOO1NRVUFSRUQgTlY7Ozs7CiszM0I2O1NRVUFSRSBNVSBWO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNTY7Ozs7TjtTUVVBUkVEIE1VIFY7Ozs7CiszM0I3O1NRVUFSRSBNVjtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDU2Ozs7O047U1FVQVJFRCBNVjs7OzsKKzMzQjg7U1FVQVJFIEtWO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTY7Ozs7TjtTUVVBUkVEIEtWOzs7OworMzNCOTtTUVVBUkUgTVYgTUVHQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDU2Ozs7O047U1FVQVJFRCBNViBNRUdBOzs7OworMzNCQTtTUVVBUkUgUFc7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA1Nzs7OztOO1NRVUFSRUQgUFc7Ozs7CiszM0JCO1NRVUFSRSBOVztTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDU3Ozs7O047U1FVQVJFRCBOVzs7OzsKKzMzQkM7U1FVQVJFIE1VIFc7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA1Nzs7OztOO1NRVUFSRUQgTVUgVzs7OzsKKzMzQkQ7U1FVQVJFIE1XO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNTc7Ozs7TjtTUVVBUkVEIE1XOzs7OworMzNCRTtTUVVBUkUgS1c7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1Nzs7OztOO1NRVUFSRUQgS1c7Ozs7CiszM0JGO1NRVUFSRSBNVyBNRUdBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTc7Ozs7TjtTUVVBUkVEIE1XIE1FR0E7Ozs7CiszM0MwO1NRVUFSRSBLIE9ITTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwM0E5Ozs7O047U1FVQVJFRCBLIE9ITTs7OzsKKzMzQzE7U1FVQVJFIE0gT0hNO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAzQTk7Ozs7TjtTUVVBUkVEIE0gT0hNOzs7OworMzNDMjtTUVVBUkUgQU07U287MDtMOzxzcXVhcmU+IDAwNjEgMDAyRSAwMDZEIDAwMkU7Ozs7TjtTUVVBUkVEIEFNOzs7OworMzNDMztTUVVBUkUgQlE7U287MDtMOzxzcXVhcmU+IDAwNDIgMDA3MTs7OztOO1NRVUFSRUQgQlE7Ozs7CiszM0M0O1NRVUFSRSBDQztTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDYzOzs7O047U1FVQVJFRCBDQzs7OzsKKzMzQzU7U1FVQVJFIENEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjQ7Ozs7TjtTUVVBUkVEIENEOzs7OworMzNDNjtTUVVBUkUgQyBPVkVSIEtHO1NvOzA7TDs8c3F1YXJlPiAwMDQzIDIyMTUgMDA2QiAwMDY3Ozs7O047U1FVQVJFRCBDIE9WRVIgS0c7Ozs7CiszM0M3O1NRVUFSRSBDTztTbzswO0w7PHNxdWFyZT4gMDA0MyAwMDZGIDAwMkU7Ozs7TjtTUVVBUkVEIENPOzs7OworMzNDODtTUVVBUkUgREI7U287MDtMOzxzcXVhcmU+IDAwNjQgMDA0Mjs7OztOO1NRVUFSRUQgREI7Ozs7CiszM0M5O1NRVUFSRSBHWTtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDc5Ozs7O047U1FVQVJFRCBHWTs7OzsKKzMzQ0E7U1FVQVJFIEhBO1NvOzA7TDs8c3F1YXJlPiAwMDY4IDAwNjE7Ozs7TjtTUVVBUkVEIEhBOzs7OworMzNDQjtTUVVBUkUgSFA7U287MDtMOzxzcXVhcmU+IDAwNDggMDA1MDs7OztOO1NRVUFSRUQgSFA7Ozs7CiszM0NDO1NRVUFSRSBJTjtTbzswO0w7PHNxdWFyZT4gMDA2OSAwMDZFOzs7O047U1FVQVJFRCBJTjs7OzsKKzMzQ0Q7U1FVQVJFIEtLO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNEI7Ozs7TjtTUVVBUkVEIEtLOzs7OworMzNDRTtTUVVBUkUgS00gQ0FQSVRBTDtTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDREOzs7O047U1FVQVJFRCBLTSBDQVBJVEFMOzs7OworMzNDRjtTUVVBUkUgS1Q7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA3NDs7OztOO1NRVUFSRUQgS1Q7Ozs7CiszM0QwO1NRVUFSRSBMTTtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDZEOzs7O047U1FVQVJFRCBMTTs7OzsKKzMzRDE7U1FVQVJFIExOO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkU7Ozs7TjtTUVVBUkVEIExOOzs7OworMzNEMjtTUVVBUkUgTE9HO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkYgMDA2Nzs7OztOO1NRVUFSRUQgTE9HOzs7OworMzNEMztTUVVBUkUgTFg7U287MDtMOzxzcXVhcmU+IDAwNkMgMDA3ODs7OztOO1NRVUFSRUQgTFg7Ozs7CiszM0Q0O1NRVUFSRSBNQiBTTUFMTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDYyOzs7O047U1FVQVJFRCBNQiBTTUFMTDs7OzsKKzMzRDU7U1FVQVJFIE1JTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDY5IDAwNkM7Ozs7TjtTUVVBUkVEIE1JTDs7OzsKKzMzRDY7U1FVQVJFIE1PTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZGIDAwNkM7Ozs7TjtTUVVBUkVEIE1PTDs7OzsKKzMzRDc7U1FVQVJFIFBIO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNDg7Ozs7TjtTUVVBUkVEIFBIOzs7OworMzNEODtTUVVBUkUgUE07U287MDtMOzxzcXVhcmU+IDAwNzAgMDAyRSAwMDZEIDAwMkU7Ozs7TjtTUVVBUkVEIFBNOzs7OworMzNEOTtTUVVBUkUgUFBNO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNTAgMDA0RDs7OztOO1NRVUFSRUQgUFBNOzs7OworMzNEQTtTUVVBUkUgUFI7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA1Mjs7OztOO1NRVUFSRUQgUFI7Ozs7CiszM0RCO1NRVUFSRSBTUjtTbzswO0w7PHNxdWFyZT4gMDA3MyAwMDcyOzs7O047U1FVQVJFRCBTUjs7OzsKKzMzREM7U1FVQVJFIFNWO1NvOzA7TDs8c3F1YXJlPiAwMDUzIDAwNzY7Ozs7TjtTUVVBUkVEIFNWOzs7OworMzNERDtTUVVBUkUgV0I7U287MDtMOzxzcXVhcmU+IDAwNTcgMDA2Mjs7OztOO1NRVUFSRUQgV0I7Ozs7CiszM0RFO1NRVUFSRSBWIE9WRVIgTTtTbzswO09OOzxzcXVhcmU+IDAwNTYgMjIxNSAwMDZEOzs7O047Ozs7OworMzNERjtTUVVBUkUgQSBPVkVSIE07U287MDtPTjs8c3F1YXJlPiAwMDQxIDIyMTUgMDA2RDs7OztOOzs7OzsKKzMzRTA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0UyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0U2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA2NUU1Ozs7O047Ozs7OworMzNFNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRTk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0VBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTFZFO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNjVFNTs7OztOOzs7OzsKKzMzRUQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNjVFNTs7OztOOzs7OzsKKzMzRUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZJRlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFRjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0YwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNGNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNGNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNGODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNGOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVNJWDtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRkM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1OSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWTtTbzswO0w7PGNvbXBhdD4gMDAzMyAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0ZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSElSVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzEgNjVFNTs7OztOOzs7OzsKKzMzRkY7U1FVQVJFIEdBTDtTbzswO09OOzxzcXVhcmU+IDAwNjcgMDA2MSAwMDZDOzs7O047Ozs7OworMzQwMDs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQSwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7Cis0REI1OzxDSksgSWRlb2dyYXBoIEV4dGVuc2lvbiBBLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworNERDMDtIRVhBR1JBTSBGT1IgVEhFIENSRUFUSVZFIEhFQVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzREQzE7SEVYQUdSQU0gRk9SIFRIRSBSRUNFUFRJVkUgRUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REMyO0hFWEFHUkFNIEZPUiBESUZGSUNVTFRZIEFUIFRIRSBCRUdJTk5JTkc7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REMzO0hFWEFHUkFNIEZPUiBZT1VUSEZVTCBGT0xMWTtTbzswO09OOzs7OztOOzs7OzsKKzREQzQ7SEVYQUdSQU0gRk9SIFdBSVRJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REM1O0hFWEFHUkFNIEZPUiBDT05GTElDVDtTbzswO09OOzs7OztOOzs7OzsKKzREQzY7SEVYQUdSQU0gRk9SIFRIRSBBUk1ZO1NvOzA7T047Ozs7O047Ozs7OworNERDNztIRVhBR1JBTSBGT1IgSE9MRElORyBUT0dFVEhFUjtTbzswO09OOzs7OztOOzs7OzsKKzREQzg7SEVYQUdSQU0gRk9SIFNNQUxMIFRBTUlORztTbzswO09OOzs7OztOOzs7OzsKKzREQzk7SEVYQUdSQU0gRk9SIFRSRUFESU5HO1NvOzA7T047Ozs7O047Ozs7OworNERDQTtIRVhBR1JBTSBGT1IgUEVBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RENCO0hFWEFHUkFNIEZPUiBTVEFORFNUSUxMO1NvOzA7T047Ozs7O047Ozs7OworNERDQztIRVhBR1JBTSBGT1IgRkVMTE9XU0hJUDtTbzswO09OOzs7OztOOzs7OzsKKzREQ0Q7SEVYQUdSQU0gRk9SIEdSRUFUIFBPU1NFU1NJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RENFO0hFWEFHUkFNIEZPUiBNT0RFU1RZO1NvOzA7T047Ozs7O047Ozs7OworNERDRjtIRVhBR1JBTSBGT1IgRU5USFVTSUFTTTtTbzswO09OOzs7OztOOzs7OzsKKzRERDA7SEVYQUdSQU0gRk9SIEZPTExPV0lORztTbzswO09OOzs7OztOOzs7OzsKKzRERDE7SEVYQUdSQU0gRk9SIFdPUksgT04gVEhFIERFQ0FZRUQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQyO0hFWEFHUkFNIEZPUiBBUFBST0FDSDtTbzswO09OOzs7OztOOzs7OzsKKzRERDM7SEVYQUdSQU0gRk9SIENPTlRFTVBMQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQ0O0hFWEFHUkFNIEZPUiBCSVRJTkcgVEhST1VHSDtTbzswO09OOzs7OztOOzs7OzsKKzRERDU7SEVYQUdSQU0gRk9SIEdSQUNFO1NvOzA7T047Ozs7O047Ozs7OworNERENjtIRVhBR1JBTSBGT1IgU1BMSVRUSU5HIEFQQVJUO1NvOzA7T047Ozs7O047Ozs7OworNERENztIRVhBR1JBTSBGT1IgUkVUVVJOO1NvOzA7T047Ozs7O047Ozs7OworNEREODtIRVhBR1JBTSBGT1IgSU5OT0NFTkNFO1NvOzA7T047Ozs7O047Ozs7OworNEREOTtIRVhBR1JBTSBGT1IgR1JFQVQgVEFNSU5HO1NvOzA7T047Ozs7O047Ozs7OworNEREQTtIRVhBR1JBTSBGT1IgTU9VVEggQ09STkVSUztTbzswO09OOzs7OztOOzs7OzsKKzREREI7SEVYQUdSQU0gRk9SIEdSRUFUIFBSRVBPTkRFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RERDO0hFWEFHUkFNIEZPUiBUSEUgQUJZU01BTCBXQVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzREREQ7SEVYQUdSQU0gRk9SIFRIRSBDTElOR0lORyBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworNERERTtIRVhBR1JBTSBGT1IgSU5GTFVFTkNFO1NvOzA7T047Ozs7O047Ozs7OworNERERjtIRVhBR1JBTSBGT1IgRFVSQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REUwO0hFWEFHUkFNIEZPUiBSRVRSRUFUO1NvOzA7T047Ozs7O047Ozs7OworNERFMTtIRVhBR1JBTSBGT1IgR1JFQVQgUE9XRVI7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REUyO0hFWEFHUkFNIEZPUiBQUk9HUkVTUztTbzswO09OOzs7OztOOzs7OzsKKzRERTM7SEVYQUdSQU0gRk9SIERBUktFTklORyBPRiBUSEUgTElHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REU0O0hFWEFHUkFNIEZPUiBUSEUgRkFNSUxZO1NvOzA7T047Ozs7O047Ozs7OworNERFNTtIRVhBR1JBTSBGT1IgT1BQT1NJVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERTY7SEVYQUdSQU0gRk9SIE9CU1RSVUNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworNERFNztIRVhBR1JBTSBGT1IgREVMSVZFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REU4O0hFWEFHUkFNIEZPUiBERUNSRUFTRTtTbzswO09OOzs7OztOOzs7OzsKKzRERTk7SEVYQUdSQU0gRk9SIElOQ1JFQVNFO1NvOzA7T047Ozs7O047Ozs7OworNERFQTtIRVhBR1JBTSBGT1IgQlJFQUtUSFJPVUdIO1NvOzA7T047Ozs7O047Ozs7OworNERFQjtIRVhBR1JBTSBGT1IgQ09NSU5HIFRPIE1FRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVDO0hFWEFHUkFNIEZPUiBHQVRIRVJJTkcgVE9HRVRIRVI7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVEO0hFWEFHUkFNIEZPUiBQVVNISU5HIFVQV0FSRDtTbzswO09OOzs7OztOOzs7OzsKKzRERUU7SEVYQUdSQU0gRk9SIE9QUFJFU1NJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVGO0hFWEFHUkFNIEZPUiBUSEUgV0VMTDtTbzswO09OOzs7OztOOzs7OzsKKzRERjA7SEVYQUdSQU0gRk9SIFJFVk9MVVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REYxO0hFWEFHUkFNIEZPUiBUSEUgQ0FVTERST047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REYyO0hFWEFHUkFNIEZPUiBUSEUgQVJPVVNJTkcgVEhVTkRFUjtTbzswO09OOzs7OztOOzs7OzsKKzRERjM7SEVYQUdSQU0gRk9SIFRIRSBLRUVQSU5HIFNUSUxMIE1PVU5UQUlOO1NvOzA7T047Ozs7O047Ozs7OworNERGNDtIRVhBR1JBTSBGT1IgREVWRUxPUE1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REY1O0hFWEFHUkFNIEZPUiBUSEUgTUFSUllJTkcgTUFJREVOO1NvOzA7T047Ozs7O047Ozs7OworNERGNjtIRVhBR1JBTSBGT1IgQUJVTkRBTkNFO1NvOzA7T047Ozs7O047Ozs7OworNERGNztIRVhBR1JBTSBGT1IgVEhFIFdBTkRFUkVSO1NvOzA7T047Ozs7O047Ozs7OworNERGODtIRVhBR1JBTSBGT1IgVEhFIEdFTlRMRSBXSU5EO1NvOzA7T047Ozs7O047Ozs7OworNERGOTtIRVhBR1JBTSBGT1IgVEhFIEpPWU9VUyBMQUtFO1NvOzA7T047Ozs7O047Ozs7OworNERGQTtIRVhBR1JBTSBGT1IgRElTUEVSU0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERkI7SEVYQUdSQU0gRk9SIExJTUlUQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REZDO0hFWEFHUkFNIEZPUiBJTk5FUiBUUlVUSDtTbzswO09OOzs7OztOOzs7OzsKKzRERkQ7SEVYQUdSQU0gRk9SIFNNQUxMIFBSRVBPTkRFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REZFO0hFWEFHUkFNIEZPUiBBRlRFUiBDT01QTEVUSU9OO1NvOzA7T047Ozs7O047Ozs7OworNERGRjtIRVhBR1JBTSBGT1IgQkVGT1JFIENPTVBMRVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RTAwOzxDSksgSWRlb2dyYXBoLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKKzlGQkI7PENKSyBJZGVvZ3JhcGgsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAwO1lJIFNZTExBQkxFIElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAxO1lJIFNZTExBQkxFIElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAyO1lJIFNZTExBQkxFIEk7TG87MDtMOzs7OztOOzs7OzsKK0EwMDM7WUkgU1lMTEFCTEUgSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMDQ7WUkgU1lMTEFCTEUgSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA1O1lJIFNZTExBQkxFIElFWDtMbzswO0w7Ozs7O047Ozs7OworQTAwNjtZSSBTWUxMQUJMRSBJRTtMbzswO0w7Ozs7O047Ozs7OworQTAwNztZSSBTWUxMQUJMRSBJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMDg7WUkgU1lMTEFCTEUgQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMDk7WUkgU1lMTEFCTEUgQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMEE7WUkgU1lMTEFCTEUgQTtMbzswO0w7Ozs7O047Ozs7OworQTAwQjtZSSBTWUxMQUJMRSBBUDtMbzswO0w7Ozs7O047Ozs7OworQTAwQztZSSBTWUxMQUJMRSBVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMEQ7WUkgU1lMTEFCTEUgVU87TG87MDtMOzs7OztOOzs7OzsKK0EwMEU7WUkgU1lMTEFCTEUgVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBGO1lJIFNZTExBQkxFIE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDEwO1lJIFNZTExBQkxFIE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDExO1lJIFNZTExBQkxFIE87TG87MDtMOzs7OztOOzs7OzsKK0EwMTI7WUkgU1lMTEFCTEUgT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMTM7WUkgU1lMTEFCTEUgRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMTQ7WUkgU1lMTEFCTEUgRTtMbzswO0w7Ozs7O047Ozs7OworQTAxNTtZSSBTWUxMQUJMRSBXVTtMbTswO0w7Ozs7O047Ozs7OworQTAxNjtZSSBTWUxMQUJMRSBCSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMTc7WUkgU1lMTEFCTEUgQklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE4O1lJIFNZTExBQkxFIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE5O1lJIFNZTExBQkxFIEJJUDtMbzswO0w7Ozs7O047Ozs7OworQTAxQTtZSSBTWUxMQUJMRSBCSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFCO1lJIFNZTExBQkxFIEJJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMUM7WUkgU1lMTEFCTEUgQklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFEO1lJIFNZTExBQkxFIEJJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMUU7WUkgU1lMTEFCTEUgQkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFGO1lJIFNZTExBQkxFIEJBWDtMbzswO0w7Ozs7O047Ozs7OworQTAyMDtZSSBTWUxMQUJMRSBCQTtMbzswO0w7Ozs7O047Ozs7OworQTAyMTtZSSBTWUxMQUJMRSBCQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMjI7WUkgU1lMTEFCTEUgQlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTAyMztZSSBTWUxMQUJMRSBCVU87TG87MDtMOzs7OztOOzs7OzsKK0EwMjQ7WUkgU1lMTEFCTEUgQlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTAyNTtZSSBTWUxMQUJMRSBCT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwMjY7WUkgU1lMTEFCTEUgQk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI3O1lJIFNZTExBQkxFIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI4O1lJIFNZTExBQkxFIEJPUDtMbzswO0w7Ozs7O047Ozs7OworQTAyOTtZSSBTWUxMQUJMRSBCRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMkE7WUkgU1lMTEFCTEUgQkU7TG87MDtMOzs7OztOOzs7OzsKK0EwMkI7WUkgU1lMTEFCTEUgQkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJDO1lJIFNZTExBQkxFIEJVVDtMbzswO0w7Ozs7O047Ozs7OworQTAyRDtZSSBTWUxMQUJMRSBCVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMkU7WUkgU1lMTEFCTEUgQlU7TG87MDtMOzs7OztOOzs7OzsKK0EwMkY7WUkgU1lMTEFCTEUgQlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMwO1lJIFNZTExBQkxFIEJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwMzE7WUkgU1lMTEFCTEUgQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMyO1lJIFNZTExBQkxFIEJZVDtMbzswO0w7Ozs7O047Ozs7OworQTAzMztZSSBTWUxMQUJMRSBCWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMzQ7WUkgU1lMTEFCTEUgQlk7TG87MDtMOzs7OztOOzs7OzsKK0EwMzU7WUkgU1lMTEFCTEUgQllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM2O1lJIFNZTExBQkxFIEJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwMzc7WUkgU1lMTEFCTEUgQllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM4O1lJIFNZTExBQkxFIFBJVDtMbzswO0w7Ozs7O047Ozs7OworQTAzOTtZSSBTWUxMQUJMRSBQSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwM0E7WUkgU1lMTEFCTEUgUEk7TG87MDtMOzs7OztOOzs7OzsKK0EwM0I7WUkgU1lMTEFCTEUgUElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNDO1lJIFNZTExBQkxFIFBJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwM0Q7WUkgU1lMTEFCTEUgUElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNFO1lJIFNZTExBQkxFIFBJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwM0Y7WUkgU1lMTEFCTEUgUEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQwO1lJIFNZTExBQkxFIFBBWDtMbzswO0w7Ozs7O047Ozs7OworQTA0MTtZSSBTWUxMQUJMRSBQQTtMbzswO0w7Ozs7O047Ozs7OworQTA0MjtZSSBTWUxMQUJMRSBQQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNDM7WUkgU1lMTEFCTEUgUFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTA0NDtZSSBTWUxMQUJMRSBQVU87TG87MDtMOzs7OztOOzs7OzsKK0EwNDU7WUkgU1lMTEFCTEUgUFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTA0NjtZSSBTWUxMQUJMRSBQT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwNDc7WUkgU1lMTEFCTEUgUE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ4O1lJIFNZTExBQkxFIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ5O1lJIFNZTExBQkxFIFBPUDtMbzswO0w7Ozs7O047Ozs7OworQTA0QTtZSSBTWUxMQUJMRSBQVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNEI7WUkgU1lMTEFCTEUgUFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRDO1lJIFNZTExBQkxFIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDREO1lJIFNZTExBQkxFIFBVUDtMbzswO0w7Ozs7O047Ozs7OworQTA0RTtZSSBTWUxMQUJMRSBQVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRGO1lJIFNZTExBQkxFIFBVUjtMbzswO0w7Ozs7O047Ozs7OworQTA1MDtZSSBTWUxMQUJMRSBQWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNTE7WUkgU1lMTEFCTEUgUFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUyO1lJIFNZTExBQkxFIFBZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUzO1lJIFNZTExBQkxFIFBZUDtMbzswO0w7Ozs7O047Ozs7OworQTA1NDtZSSBTWUxMQUJMRSBQWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU1O1lJIFNZTExBQkxFIFBZUjtMbzswO0w7Ozs7O047Ozs7OworQTA1NjtZSSBTWUxMQUJMRSBCQklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU3O1lJIFNZTExBQkxFIEJCSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNTg7WUkgU1lMTEFCTEUgQkJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU5O1lJIFNZTExBQkxFIEJCSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNUE7WUkgU1lMTEFCTEUgQkJJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNUI7WUkgU1lMTEFCTEUgQkJJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNUM7WUkgU1lMTEFCTEUgQkJJRTtMbzswO0w7Ozs7O047Ozs7OworQTA1RDtZSSBTWUxMQUJMRSBCQklFUDtMbzswO0w7Ozs7O047Ozs7OworQTA1RTtZSSBTWUxMQUJMRSBCQkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVGO1lJIFNZTExBQkxFIEJCQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNjA7WUkgU1lMTEFCTEUgQkJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYxO1lJIFNZTExBQkxFIEJCQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNjI7WUkgU1lMTEFCTEUgQkJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNjM7WUkgU1lMTEFCTEUgQkJVTztMbzswO0w7Ozs7O047Ozs7OworQTA2NDtZSSBTWUxMQUJMRSBCQlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTA2NTtZSSBTWUxMQUJMRSBCQk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY2O1lJIFNZTExBQkxFIEJCT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNjc7WUkgU1lMTEFCTEUgQkJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY4O1lJIFNZTExBQkxFIEJCT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNjk7WUkgU1lMTEFCTEUgQkJFWDtMbzswO0w7Ozs7O047Ozs7OworQTA2QTtZSSBTWUxMQUJMRSBCQkU7TG87MDtMOzs7OztOOzs7OzsKK0EwNkI7WUkgU1lMTEFCTEUgQkJFUDtMbzswO0w7Ozs7O047Ozs7OworQTA2QztZSSBTWUxMQUJMRSBCQlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZEO1lJIFNZTExBQkxFIEJCVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNkU7WUkgU1lMTEFCTEUgQkJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZGO1lJIFNZTExBQkxFIEJCVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNzA7WUkgU1lMTEFCTEUgQkJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwNzE7WUkgU1lMTEFCTEUgQkJVUjtMbzswO0w7Ozs7O047Ozs7OworQTA3MjtZSSBTWUxMQUJMRSBCQllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDczO1lJIFNZTExBQkxFIEJCWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNzQ7WUkgU1lMTEFCTEUgQkJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc1O1lJIFNZTExBQkxFIEJCWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNzY7WUkgU1lMTEFCTEUgTkJJVDtMbzswO0w7Ozs7O047Ozs7OworQTA3NztZSSBTWUxMQUJMRSBOQklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc4O1lJIFNZTExBQkxFIE5CSTtMbzswO0w7Ozs7O047Ozs7OworQTA3OTtZSSBTWUxMQUJMRSBOQklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdBO1lJIFNZTExBQkxFIE5CSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdCO1lJIFNZTExBQkxFIE5CSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwN0M7WUkgU1lMTEFCTEUgTkJJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwN0Q7WUkgU1lMTEFCTEUgTkJBVDtMbzswO0w7Ozs7O047Ozs7OworQTA3RTtZSSBTWUxMQUJMRSBOQkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdGO1lJIFNZTExBQkxFIE5CQTtMbzswO0w7Ozs7O047Ozs7OworQTA4MDtZSSBTWUxMQUJMRSBOQkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgxO1lJIFNZTExBQkxFIE5CT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwODI7WUkgU1lMTEFCTEUgTkJPWDtMbzswO0w7Ozs7O047Ozs7OworQTA4MztZSSBTWUxMQUJMRSBOQk87TG87MDtMOzs7OztOOzs7OzsKK0EwODQ7WUkgU1lMTEFCTEUgTkJPUDtMbzswO0w7Ozs7O047Ozs7OworQTA4NTtZSSBTWUxMQUJMRSBOQlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg2O1lJIFNZTExBQkxFIE5CVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwODc7WUkgU1lMTEFCTEUgTkJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg4O1lJIFNZTExBQkxFIE5CVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwODk7WUkgU1lMTEFCTEUgTkJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwOEE7WUkgU1lMTEFCTEUgTkJVUjtMbzswO0w7Ozs7O047Ozs7OworQTA4QjtZSSBTWUxMQUJMRSBOQllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhDO1lJIFNZTExBQkxFIE5CWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOEQ7WUkgU1lMTEFCTEUgTkJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhFO1lJIFNZTExBQkxFIE5CWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOEY7WUkgU1lMTEFCTEUgTkJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwOTA7WUkgU1lMTEFCTEUgTkJZUjtMbzswO0w7Ozs7O047Ozs7OworQTA5MTtZSSBTWUxMQUJMRSBITUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkyO1lJIFNZTExBQkxFIEhNSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOTM7WUkgU1lMTEFCTEUgSE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk0O1lJIFNZTExBQkxFIEhNSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOTU7WUkgU1lMTEFCTEUgSE1JRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOTY7WUkgU1lMTEFCTEUgSE1JRTtMbzswO0w7Ozs7O047Ozs7OworQTA5NztZSSBTWUxMQUJMRSBITUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTA5ODtZSSBTWUxMQUJMRSBITUFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk5O1lJIFNZTExBQkxFIEhNQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOUE7WUkgU1lMTEFCTEUgSE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlCO1lJIFNZTExBQkxFIEhNQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOUM7WUkgU1lMTEFCTEUgSE1VT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwOUQ7WUkgU1lMTEFCTEUgSE1VTztMbzswO0w7Ozs7O047Ozs7OworQTA5RTtZSSBTWUxMQUJMRSBITVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTA5RjtZSSBTWUxMQUJMRSBITU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEEwO1lJIFNZTExBQkxFIEhNT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwQTE7WUkgU1lMTEFCTEUgSE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEEyO1lJIFNZTExBQkxFIEhNT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwQTM7WUkgU1lMTEFCTEUgSE1VVDtMbzswO0w7Ozs7O047Ozs7OworQTBBNDtZSSBTWUxMQUJMRSBITVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE1O1lJIFNZTExBQkxFIEhNVTtMbzswO0w7Ozs7O047Ozs7OworQTBBNjtZSSBTWUxMQUJMRSBITVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE3O1lJIFNZTExBQkxFIEhNVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE4O1lJIFNZTExBQkxFIEhNVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwQTk7WUkgU1lMTEFCTEUgSE1ZWDtMbzswO0w7Ozs7O047Ozs7OworQTBBQTtZSSBTWUxMQUJMRSBITVk7TG87MDtMOzs7OztOOzs7OzsKK0EwQUI7WUkgU1lMTEFCTEUgSE1ZUDtMbzswO0w7Ozs7O047Ozs7OworQTBBQztZSSBTWUxMQUJMRSBITVlSWDtMbzswO0w7Ozs7O047Ozs7OworQTBBRDtZSSBTWUxMQUJMRSBITVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFFO1lJIFNZTExBQkxFIE1JVDtMbzswO0w7Ozs7O047Ozs7OworQTBBRjtZSSBTWUxMQUJMRSBNSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQjA7WUkgU1lMTEFCTEUgTUk7TG87MDtMOzs7OztOOzs7OzsKK0EwQjE7WUkgU1lMTEFCTEUgTUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIyO1lJIFNZTExBQkxFIE1JRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQjM7WUkgU1lMTEFCTEUgTUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI0O1lJIFNZTExBQkxFIE1JRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQjU7WUkgU1lMTEFCTEUgTUFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI2O1lJIFNZTExBQkxFIE1BWDtMbzswO0w7Ozs7O047Ozs7OworQTBCNztZSSBTWUxMQUJMRSBNQTtMbzswO0w7Ozs7O047Ozs7OworQTBCODtZSSBTWUxMQUJMRSBNQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQjk7WUkgU1lMTEFCTEUgTVVPVDtMbzswO0w7Ozs7O047Ozs7OworQTBCQTtZSSBTWUxMQUJMRSBNVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJCO1lJIFNZTExBQkxFIE1VTztMbzswO0w7Ozs7O047Ozs7OworQTBCQztZSSBTWUxMQUJMRSBNVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJEO1lJIFNZTExBQkxFIE1PVDtMbzswO0w7Ozs7O047Ozs7OworQTBCRTtZSSBTWUxMQUJMRSBNT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwQkY7WUkgU1lMTEFCTEUgTU87TG87MDtMOzs7OztOOzs7OzsKK0EwQzA7WUkgU1lMTEFCTEUgTU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMxO1lJIFNZTExBQkxFIE1FWDtMbzswO0w7Ozs7O047Ozs7OworQTBDMjtZSSBTWUxMQUJMRSBNRTtMbzswO0w7Ozs7O047Ozs7OworQTBDMztZSSBTWUxMQUJMRSBNVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQzQ7WUkgU1lMTEFCTEUgTVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM1O1lJIFNZTExBQkxFIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM2O1lJIFNZTExBQkxFIE1VUDtMbzswO0w7Ozs7O047Ozs7OworQTBDNztZSSBTWUxMQUJMRSBNVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM4O1lJIFNZTExBQkxFIE1VUjtMbzswO0w7Ozs7O047Ozs7OworQTBDOTtZSSBTWUxMQUJMRSBNWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0E7WUkgU1lMTEFCTEUgTVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENCO1lJIFNZTExBQkxFIE1ZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENDO1lJIFNZTExBQkxFIE1ZUDtMbzswO0w7Ozs7O047Ozs7OworQTBDRDtZSSBTWUxMQUJMRSBGSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0U7WUkgU1lMTEFCTEUgRklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENGO1lJIFNZTExBQkxFIEZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQwO1lJIFNZTExBQkxFIEZJUDtMbzswO0w7Ozs7O047Ozs7OworQTBEMTtZSSBTWUxMQUJMRSBGQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRDI7WUkgU1lMTEFCTEUgRkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQzO1lJIFNZTExBQkxFIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ0O1lJIFNZTExBQkxFIEZBUDtMbzswO0w7Ozs7O047Ozs7OworQTBENTtZSSBTWUxMQUJMRSBGT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwRDY7WUkgU1lMTEFCTEUgRk87TG87MDtMOzs7OztOOzs7OzsKK0EwRDc7WUkgU1lMTEFCTEUgRk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ4O1lJIFNZTExBQkxFIEZVVDtMbzswO0w7Ozs7O047Ozs7OworQTBEOTtZSSBTWUxMQUJMRSBGVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwREE7WUkgU1lMTEFCTEUgRlU7TG87MDtMOzs7OztOOzs7OzsKK0EwREI7WUkgU1lMTEFCTEUgRlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERDO1lJIFNZTExBQkxFIEZVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwREQ7WUkgU1lMTEFCTEUgRlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERFO1lJIFNZTExBQkxFIEZZVDtMbzswO0w7Ozs7O047Ozs7OworQTBERjtZSSBTWUxMQUJMRSBGWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRTA7WUkgU1lMTEFCTEUgRlk7TG87MDtMOzs7OztOOzs7OzsKK0EwRTE7WUkgU1lMTEFCTEUgRllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUyO1lJIFNZTExBQkxFIFZJVDtMbzswO0w7Ozs7O047Ozs7OworQTBFMztZSSBTWUxMQUJMRSBWSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRTQ7WUkgU1lMTEFCTEUgVkk7TG87MDtMOzs7OztOOzs7OzsKK0EwRTU7WUkgU1lMTEFCTEUgVklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU2O1lJIFNZTExBQkxFIFZJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRTc7WUkgU1lMTEFCTEUgVklFWDtMbzswO0w7Ozs7O047Ozs7OworQTBFODtZSSBTWUxMQUJMRSBWSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwRTk7WUkgU1lMTEFCTEUgVklFUDtMbzswO0w7Ozs7O047Ozs7OworQTBFQTtZSSBTWUxMQUJMRSBWQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRUI7WUkgU1lMTEFCTEUgVkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVDO1lJIFNZTExBQkxFIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVEO1lJIFNZTExBQkxFIFZBUDtMbzswO0w7Ozs7O047Ozs7OworQTBFRTtZSSBTWUxMQUJMRSBWT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwRUY7WUkgU1lMTEFCTEUgVk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYwO1lJIFNZTExBQkxFIFZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYxO1lJIFNZTExBQkxFIFZPUDtMbzswO0w7Ozs7O047Ozs7OworQTBGMjtZSSBTWUxMQUJMRSBWRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRjM7WUkgU1lMTEFCTEUgVkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY0O1lJIFNZTExBQkxFIFZVVDtMbzswO0w7Ozs7O047Ozs7OworQTBGNTtZSSBTWUxMQUJMRSBWVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRjY7WUkgU1lMTEFCTEUgVlU7TG87MDtMOzs7OztOOzs7OzsKK0EwRjc7WUkgU1lMTEFCTEUgVlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY4O1lJIFNZTExBQkxFIFZVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwRjk7WUkgU1lMTEFCTEUgVlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZBO1lJIFNZTExBQkxFIFZZVDtMbzswO0w7Ozs7O047Ozs7OworQTBGQjtZSSBTWUxMQUJMRSBWWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRkM7WUkgU1lMTEFCTEUgVlk7TG87MDtMOzs7OztOOzs7OzsKK0EwRkQ7WUkgU1lMTEFCTEUgVllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZFO1lJIFNZTExBQkxFIFZZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwRkY7WUkgU1lMTEFCTEUgVllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAwO1lJIFNZTExBQkxFIERJVDtMbzswO0w7Ozs7O047Ozs7OworQTEwMTtZSSBTWUxMQUJMRSBESVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMDI7WUkgU1lMTEFCTEUgREk7TG87MDtMOzs7OztOOzs7OzsKK0ExMDM7WUkgU1lMTEFCTEUgRElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA0O1lJIFNZTExBQkxFIERJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMDU7WUkgU1lMTEFCTEUgRElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA2O1lJIFNZTExBQkxFIERJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMDc7WUkgU1lMTEFCTEUgREFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA4O1lJIFNZTExBQkxFIERBWDtMbzswO0w7Ozs7O047Ozs7OworQTEwOTtZSSBTWUxMQUJMRSBEQTtMbzswO0w7Ozs7O047Ozs7OworQTEwQTtZSSBTWUxMQUJMRSBEQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMEI7WUkgU1lMTEFCTEUgRFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTEwQztZSSBTWUxMQUJMRSBEVU87TG87MDtMOzs7OztOOzs7OzsKK0ExMEQ7WUkgU1lMTEFCTEUgRE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBFO1lJIFNZTExBQkxFIERPWDtMbzswO0w7Ozs7O047Ozs7OworQTEwRjtZSSBTWUxMQUJMRSBETztMbzswO0w7Ozs7O047Ozs7OworQTExMDtZSSBTWUxMQUJMRSBET1A7TG87MDtMOzs7OztOOzs7OzsKK0ExMTE7WUkgU1lMTEFCTEUgREVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTEyO1lJIFNZTExBQkxFIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTEzO1lJIFNZTExBQkxFIERFUDtMbzswO0w7Ozs7O047Ozs7OworQTExNDtZSSBTWUxMQUJMRSBEVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMTU7WUkgU1lMTEFCTEUgRFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE2O1lJIFNZTExBQkxFIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE3O1lJIFNZTExBQkxFIERVUDtMbzswO0w7Ozs7O047Ozs7OworQTExODtZSSBTWUxMQUJMRSBEVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE5O1lJIFNZTExBQkxFIERVUjtMbzswO0w7Ozs7O047Ozs7OworQTExQTtZSSBTWUxMQUJMRSBUSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMUI7WUkgU1lMTEFCTEUgVElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFDO1lJIFNZTExBQkxFIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFEO1lJIFNZTExBQkxFIFRJUDtMbzswO0w7Ozs7O047Ozs7OworQTExRTtZSSBTWUxMQUJMRSBUSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFGO1lJIFNZTExBQkxFIFRJRTtMbzswO0w7Ozs7O047Ozs7OworQTEyMDtZSSBTWUxMQUJMRSBUSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIxO1lJIFNZTExBQkxFIFRBVDtMbzswO0w7Ozs7O047Ozs7OworQTEyMjtZSSBTWUxMQUJMRSBUQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMjM7WUkgU1lMTEFCTEUgVEE7TG87MDtMOzs7OztOOzs7OzsKK0ExMjQ7WUkgU1lMTEFCTEUgVEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI1O1lJIFNZTExBQkxFIFRVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExMjY7WUkgU1lMTEFCTEUgVFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTEyNztZSSBTWUxMQUJMRSBUVU87TG87MDtMOzs7OztOOzs7OzsKK0ExMjg7WUkgU1lMTEFCTEUgVFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTEyOTtZSSBTWUxMQUJMRSBUT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExMkE7WUkgU1lMTEFCTEUgVE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJCO1lJIFNZTExBQkxFIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJDO1lJIFNZTExBQkxFIFRPUDtMbzswO0w7Ozs7O047Ozs7OworQTEyRDtZSSBTWUxMQUJMRSBURVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMkU7WUkgU1lMTEFCTEUgVEU7TG87MDtMOzs7OztOOzs7OzsKK0ExMkY7WUkgU1lMTEFCTEUgVEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMwO1lJIFNZTExBQkxFIFRVVDtMbzswO0w7Ozs7O047Ozs7OworQTEzMTtZSSBTWUxMQUJMRSBUVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMzI7WUkgU1lMTEFCTEUgVFU7TG87MDtMOzs7OztOOzs7OzsKK0ExMzM7WUkgU1lMTEFCTEUgVFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM0O1lJIFNZTExBQkxFIFRVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExMzU7WUkgU1lMTEFCTEUgVFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM2O1lJIFNZTExBQkxFIERESVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMzc7WUkgU1lMTEFCTEUgRERJWDtMbzswO0w7Ozs7O047Ozs7OworQTEzODtZSSBTWUxMQUJMRSBEREk7TG87MDtMOzs7OztOOzs7OzsKK0ExMzk7WUkgU1lMTEFCTEUgRERJUDtMbzswO0w7Ozs7O047Ozs7OworQTEzQTtZSSBTWUxMQUJMRSBERElFWDtMbzswO0w7Ozs7O047Ozs7OworQTEzQjtZSSBTWUxMQUJMRSBERElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNDO1lJIFNZTExBQkxFIERESUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNEO1lJIFNZTExBQkxFIEREQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExM0U7WUkgU1lMTEFCTEUgRERBWDtMbzswO0w7Ozs7O047Ozs7OworQTEzRjtZSSBTWUxMQUJMRSBEREE7TG87MDtMOzs7OztOOzs7OzsKK0ExNDA7WUkgU1lMTEFCTEUgRERBUDtMbzswO0w7Ozs7O047Ozs7OworQTE0MTtZSSBTWUxMQUJMRSBERFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTE0MjtZSSBTWUxMQUJMRSBERFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQzO1lJIFNZTExBQkxFIEREVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ0O1lJIFNZTExBQkxFIERET1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExNDU7WUkgU1lMTEFCTEUgRERPWDtMbzswO0w7Ozs7O047Ozs7OworQTE0NjtZSSBTWUxMQUJMRSBERE87TG87MDtMOzs7OztOOzs7OzsKK0ExNDc7WUkgU1lMTEFCTEUgRERPUDtMbzswO0w7Ozs7O047Ozs7OworQTE0ODtZSSBTWUxMQUJMRSBEREVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ5O1lJIFNZTExBQkxFIERERTtMbzswO0w7Ozs7O047Ozs7OworQTE0QTtZSSBTWUxMQUJMRSBEREVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRCO1lJIFNZTExBQkxFIEREVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNEM7WUkgU1lMTEFCTEUgRERVWDtMbzswO0w7Ozs7O047Ozs7OworQTE0RDtZSSBTWUxMQUJMRSBERFU7TG87MDtMOzs7OztOOzs7OzsKK0ExNEU7WUkgU1lMTEFCTEUgRERVUDtMbzswO0w7Ozs7O047Ozs7OworQTE0RjtZSSBTWUxMQUJMRSBERFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTE1MDtZSSBTWUxMQUJMRSBERFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUxO1lJIFNZTExBQkxFIE5ESVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNTI7WUkgU1lMTEFCTEUgTkRJWDtMbzswO0w7Ozs7O047Ozs7OworQTE1MztZSSBTWUxMQUJMRSBOREk7TG87MDtMOzs7OztOOzs7OzsKK0ExNTQ7WUkgU1lMTEFCTEUgTkRJUDtMbzswO0w7Ozs7O047Ozs7OworQTE1NTtZSSBTWUxMQUJMRSBORElFWDtMbzswO0w7Ozs7O047Ozs7OworQTE1NjtZSSBTWUxMQUJMRSBORElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU3O1lJIFNZTExBQkxFIE5EQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNTg7WUkgU1lMTEFCTEUgTkRBWDtMbzswO0w7Ozs7O047Ozs7OworQTE1OTtZSSBTWUxMQUJMRSBOREE7TG87MDtMOzs7OztOOzs7OzsKK0ExNUE7WUkgU1lMTEFCTEUgTkRBUDtMbzswO0w7Ozs7O047Ozs7OworQTE1QjtZSSBTWUxMQUJMRSBORE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVDO1lJIFNZTExBQkxFIE5ET1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNUQ7WUkgU1lMTEFCTEUgTkRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVFO1lJIFNZTExBQkxFIE5ET1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNUY7WUkgU1lMTEFCTEUgTkRFWDtMbzswO0w7Ozs7O047Ozs7OworQTE2MDtZSSBTWUxMQUJMRSBOREU7TG87MDtMOzs7OztOOzs7OzsKK0ExNjE7WUkgU1lMTEFCTEUgTkRFUDtMbzswO0w7Ozs7O047Ozs7OworQTE2MjtZSSBTWUxMQUJMRSBORFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYzO1lJIFNZTExBQkxFIE5EVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNjQ7WUkgU1lMTEFCTEUgTkRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY1O1lJIFNZTExBQkxFIE5EVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNjY7WUkgU1lMTEFCTEUgTkRVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExNjc7WUkgU1lMTEFCTEUgTkRVUjtMbzswO0w7Ozs7O047Ozs7OworQTE2ODtZSSBTWUxMQUJMRSBITklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY5O1lJIFNZTExBQkxFIEhOSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNkE7WUkgU1lMTEFCTEUgSE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZCO1lJIFNZTExBQkxFIEhOSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNkM7WUkgU1lMTEFCTEUgSE5JRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNkQ7WUkgU1lMTEFCTEUgSE5JRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNkU7WUkgU1lMTEFCTEUgSE5JRTtMbzswO0w7Ozs7O047Ozs7OworQTE2RjtZSSBTWUxMQUJMRSBITklFUDtMbzswO0w7Ozs7O047Ozs7OworQTE3MDtZSSBTWUxMQUJMRSBITkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTcxO1lJIFNZTExBQkxFIEhOQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNzI7WUkgU1lMTEFCTEUgSE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTczO1lJIFNZTExBQkxFIEhOQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNzQ7WUkgU1lMTEFCTEUgSE5VT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNzU7WUkgU1lMTEFCTEUgSE5VTztMbzswO0w7Ozs7O047Ozs7OworQTE3NjtZSSBTWUxMQUJMRSBITk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc3O1lJIFNZTExBQkxFIEhOT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNzg7WUkgU1lMTEFCTEUgSE5PUDtMbzswO0w7Ozs7O047Ozs7OworQTE3OTtZSSBTWUxMQUJMRSBITkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdBO1lJIFNZTExBQkxFIEhORTtMbzswO0w7Ozs7O047Ozs7OworQTE3QjtZSSBTWUxMQUJMRSBITkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdDO1lJIFNZTExBQkxFIEhOVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExN0Q7WUkgU1lMTEFCTEUgTklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdFO1lJIFNZTExBQkxFIE5JWDtMbzswO0w7Ozs7O047Ozs7OworQTE3RjtZSSBTWUxMQUJMRSBOSTtMbzswO0w7Ozs7O047Ozs7OworQTE4MDtZSSBTWUxMQUJMRSBOSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExODE7WUkgU1lMTEFCTEUgTklFWDtMbzswO0w7Ozs7O047Ozs7OworQTE4MjtZSSBTWUxMQUJMRSBOSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExODM7WUkgU1lMTEFCTEUgTklFUDtMbzswO0w7Ozs7O047Ozs7OworQTE4NDtZSSBTWUxMQUJMRSBOQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExODU7WUkgU1lMTEFCTEUgTkE7TG87MDtMOzs7OztOOzs7OzsKK0ExODY7WUkgU1lMTEFCTEUgTkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg3O1lJIFNZTExBQkxFIE5VT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExODg7WUkgU1lMTEFCTEUgTlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg5O1lJIFNZTExBQkxFIE5VT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExOEE7WUkgU1lMTEFCTEUgTk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThCO1lJIFNZTExBQkxFIE5PWDtMbzswO0w7Ozs7O047Ozs7OworQTE4QztZSSBTWUxMQUJMRSBOTztMbzswO0w7Ozs7O047Ozs7OworQTE4RDtZSSBTWUxMQUJMRSBOT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExOEU7WUkgU1lMTEFCTEUgTkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThGO1lJIFNZTExBQkxFIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkwO1lJIFNZTExBQkxFIE5FUDtMbzswO0w7Ozs7O047Ozs7OworQTE5MTtZSSBTWUxMQUJMRSBOVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExOTI7WUkgU1lMTEFCTEUgTlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkzO1lJIFNZTExBQkxFIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk0O1lJIFNZTExBQkxFIE5VUDtMbzswO0w7Ozs7O047Ozs7OworQTE5NTtZSSBTWUxMQUJMRSBOVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk2O1lJIFNZTExBQkxFIE5VUjtMbzswO0w7Ozs7O047Ozs7OworQTE5NztZSSBTWUxMQUJMRSBITElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk4O1lJIFNZTExBQkxFIEhMSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOTk7WUkgU1lMTEFCTEUgSExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlBO1lJIFNZTExBQkxFIEhMSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOUI7WUkgU1lMTEFCTEUgSExJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOUM7WUkgU1lMTEFCTEUgSExJRTtMbzswO0w7Ozs7O047Ozs7OworQTE5RDtZSSBTWUxMQUJMRSBITElFUDtMbzswO0w7Ozs7O047Ozs7OworQTE5RTtZSSBTWUxMQUJMRSBITEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlGO1lJIFNZTExBQkxFIEhMQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQTA7WUkgU1lMTEFCTEUgSExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUExO1lJIFNZTExBQkxFIEhMQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQTI7WUkgU1lMTEFCTEUgSExVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQTM7WUkgU1lMTEFCTEUgSExVTztMbzswO0w7Ozs7O047Ozs7OworQTFBNDtZSSBTWUxMQUJMRSBITFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTFBNTtZSSBTWUxMQUJMRSBITE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE2O1lJIFNZTExBQkxFIEhMTztMbzswO0w7Ozs7O047Ozs7OworQTFBNztZSSBTWUxMQUJMRSBITE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE4O1lJIFNZTExBQkxFIEhMRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQTk7WUkgU1lMTEFCTEUgSExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFBO1lJIFNZTExBQkxFIEhMRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQUI7WUkgU1lMTEFCTEUgSExVVDtMbzswO0w7Ozs7O047Ozs7OworQTFBQztZSSBTWUxMQUJMRSBITFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFEO1lJIFNZTExBQkxFIEhMVTtMbzswO0w7Ozs7O047Ozs7OworQTFBRTtZSSBTWUxMQUJMRSBITFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFGO1lJIFNZTExBQkxFIEhMVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIwO1lJIFNZTExBQkxFIEhMVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExQjE7WUkgU1lMTEFCTEUgSExZVDtMbzswO0w7Ozs7O047Ozs7OworQTFCMjtZSSBTWUxMQUJMRSBITFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIzO1lJIFNZTExBQkxFIEhMWTtMbzswO0w7Ozs7O047Ozs7OworQTFCNDtZSSBTWUxMQUJMRSBITFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI1O1lJIFNZTExBQkxFIEhMWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI2O1lJIFNZTExBQkxFIEhMWVI7TG87MDtMOzs7OztOOzs7OzsKK0ExQjc7WUkgU1lMTEFCTEUgTElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI4O1lJIFNZTExBQkxFIExJWDtMbzswO0w7Ozs7O047Ozs7OworQTFCOTtZSSBTWUxMQUJMRSBMSTtMbzswO0w7Ozs7O047Ozs7OworQTFCQTtZSSBTWUxMQUJMRSBMSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQkI7WUkgU1lMTEFCTEUgTElFVDtMbzswO0w7Ozs7O047Ozs7OworQTFCQztZSSBTWUxMQUJMRSBMSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJEO1lJIFNZTExBQkxFIExJRTtMbzswO0w7Ozs7O047Ozs7OworQTFCRTtZSSBTWUxMQUJMRSBMSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJGO1lJIFNZTExBQkxFIExBVDtMbzswO0w7Ozs7O047Ozs7OworQTFDMDtZSSBTWUxMQUJMRSBMQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQzE7WUkgU1lMTEFCTEUgTEE7TG87MDtMOzs7OztOOzs7OzsKK0ExQzI7WUkgU1lMTEFCTEUgTEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMzO1lJIFNZTExBQkxFIExVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExQzQ7WUkgU1lMTEFCTEUgTFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTFDNTtZSSBTWUxMQUJMRSBMVU87TG87MDtMOzs7OztOOzs7OzsKK0ExQzY7WUkgU1lMTEFCTEUgTFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTFDNztZSSBTWUxMQUJMRSBMT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExQzg7WUkgU1lMTEFCTEUgTE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM5O1lJIFNZTExBQkxFIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNBO1lJIFNZTExBQkxFIExPUDtMbzswO0w7Ozs7O047Ozs7OworQTFDQjtZSSBTWUxMQUJMRSBMRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0M7WUkgU1lMTEFCTEUgTEU7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0Q7WUkgU1lMTEFCTEUgTEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNFO1lJIFNZTExBQkxFIExVVDtMbzswO0w7Ozs7O047Ozs7OworQTFDRjtZSSBTWUxMQUJMRSBMVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDA7WUkgU1lMTEFCTEUgTFU7TG87MDtMOzs7OztOOzs7OzsKK0ExRDE7WUkgU1lMTEFCTEUgTFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQyO1lJIFNZTExBQkxFIExVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDM7WUkgU1lMTEFCTEUgTFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ0O1lJIFNZTExBQkxFIExZVDtMbzswO0w7Ozs7O047Ozs7OworQTFENTtZSSBTWUxMQUJMRSBMWVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDY7WUkgU1lMTEFCTEUgTFk7TG87MDtMOzs7OztOOzs7OzsKK0ExRDc7WUkgU1lMTEFCTEUgTFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ4O1lJIFNZTExBQkxFIExZUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDk7WUkgU1lMTEFCTEUgTFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURBO1lJIFNZTExBQkxFIEdJVDtMbzswO0w7Ozs7O047Ozs7OworQTFEQjtZSSBTWUxMQUJMRSBHSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExREM7WUkgU1lMTEFCTEUgR0k7TG87MDtMOzs7OztOOzs7OzsKK0ExREQ7WUkgU1lMTEFCTEUgR0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURFO1lJIFNZTExBQkxFIEdJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExREY7WUkgU1lMTEFCTEUgR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTFFMDtZSSBTWUxMQUJMRSBHSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExRTE7WUkgU1lMTEFCTEUgR0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTFFMjtZSSBTWUxMQUJMRSBHQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRTM7WUkgU1lMTEFCTEUgR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU0O1lJIFNZTExBQkxFIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU1O1lJIFNZTExBQkxFIEdBUDtMbzswO0w7Ozs7O047Ozs7OworQTFFNjtZSSBTWUxMQUJMRSBHVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU3O1lJIFNZTExBQkxFIEdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExRTg7WUkgU1lMTEFCTEUgR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU5O1lJIFNZTExBQkxFIEdVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExRUE7WUkgU1lMTEFCTEUgR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVCO1lJIFNZTExBQkxFIEdPWDtMbzswO0w7Ozs7O047Ozs7OworQTFFQztZSSBTWUxMQUJMRSBHTztMbzswO0w7Ozs7O047Ozs7OworQTFFRDtZSSBTWUxMQUJMRSBHT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExRUU7WUkgU1lMTEFCTEUgR0VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVGO1lJIFNZTExBQkxFIEdFWDtMbzswO0w7Ozs7O047Ozs7OworQTFGMDtZSSBTWUxMQUJMRSBHRTtMbzswO0w7Ozs7O047Ozs7OworQTFGMTtZSSBTWUxMQUJMRSBHRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRjI7WUkgU1lMTEFCTEUgR1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYzO1lJIFNZTExBQkxFIEdVWDtMbzswO0w7Ozs7O047Ozs7OworQTFGNDtZSSBTWUxMQUJMRSBHVTtMbzswO0w7Ozs7O047Ozs7OworQTFGNTtZSSBTWUxMQUJMRSBHVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRjY7WUkgU1lMTEFCTEUgR1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTFGNztZSSBTWUxMQUJMRSBHVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExRjg7WUkgU1lMTEFCTEUgS0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY5O1lJIFNZTExBQkxFIEtJWDtMbzswO0w7Ozs7O047Ozs7OworQTFGQTtZSSBTWUxMQUJMRSBLSTtMbzswO0w7Ozs7O047Ozs7OworQTFGQjtZSSBTWUxMQUJMRSBLSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRkM7WUkgU1lMTEFCTEUgS0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTFGRDtZSSBTWUxMQUJMRSBLSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExRkU7WUkgU1lMTEFCTEUgS0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTFGRjtZSSBTWUxMQUJMRSBLQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMDA7WUkgU1lMTEFCTEUgS0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAxO1lJIFNZTExBQkxFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAyO1lJIFNZTExBQkxFIEtBUDtMbzswO0w7Ozs7O047Ozs7OworQTIwMztZSSBTWUxMQUJMRSBLVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA0O1lJIFNZTExBQkxFIEtVTztMbzswO0w7Ozs7O047Ozs7OworQTIwNTtZSSBTWUxMQUJMRSBLVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA2O1lJIFNZTExBQkxFIEtPVDtMbzswO0w7Ozs7O047Ozs7OworQTIwNztZSSBTWUxMQUJMRSBLT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMDg7WUkgU1lMTEFCTEUgS087TG87MDtMOzs7OztOOzs7OzsKK0EyMDk7WUkgU1lMTEFCTEUgS09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBBO1lJIFNZTExBQkxFIEtFVDtMbzswO0w7Ozs7O047Ozs7OworQTIwQjtZSSBTWUxMQUJMRSBLRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMEM7WUkgU1lMTEFCTEUgS0U7TG87MDtMOzs7OztOOzs7OzsKK0EyMEQ7WUkgU1lMTEFCTEUgS0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBFO1lJIFNZTExBQkxFIEtVVDtMbzswO0w7Ozs7O047Ozs7OworQTIwRjtZSSBTWUxMQUJMRSBLVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTA7WUkgU1lMTEFCTEUgS1U7TG87MDtMOzs7OztOOzs7OzsKK0EyMTE7WUkgU1lMTEFCTEUgS1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjEyO1lJIFNZTExBQkxFIEtVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTM7WUkgU1lMTEFCTEUgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE0O1lJIFNZTExBQkxFIEdHSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMTU7WUkgU1lMTEFCTEUgR0dJWDtMbzswO0w7Ozs7O047Ozs7OworQTIxNjtZSSBTWUxMQUJMRSBHR0k7TG87MDtMOzs7OztOOzs7OzsKK0EyMTc7WUkgU1lMTEFCTEUgR0dJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTg7WUkgU1lMTEFCTEUgR0dJRTtMbzswO0w7Ozs7O047Ozs7OworQTIxOTtZSSBTWUxMQUJMRSBHR0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTIxQTtZSSBTWUxMQUJMRSBHR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFCO1lJIFNZTExBQkxFIEdHQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMUM7WUkgU1lMTEFCTEUgR0dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFEO1lJIFNZTExBQkxFIEdHQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMUU7WUkgU1lMTEFCTEUgR0dVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyMUY7WUkgU1lMTEFCTEUgR0dVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMjA7WUkgU1lMTEFCTEUgR0dVTztMbzswO0w7Ozs7O047Ozs7OworQTIyMTtZSSBTWUxMQUJMRSBHR1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTIyMjtZSSBTWUxMQUJMRSBHR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIzO1lJIFNZTExBQkxFIEdHT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMjQ7WUkgU1lMTEFCTEUgR0dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI1O1lJIFNZTExBQkxFIEdHT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMjY7WUkgU1lMTEFCTEUgR0dFVDtMbzswO0w7Ozs7O047Ozs7OworQTIyNztZSSBTWUxMQUJMRSBHR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI4O1lJIFNZTExBQkxFIEdHRTtMbzswO0w7Ozs7O047Ozs7OworQTIyOTtZSSBTWUxMQUJMRSBHR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJBO1lJIFNZTExBQkxFIEdHVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMkI7WUkgU1lMTEFCTEUgR0dVWDtMbzswO0w7Ozs7O047Ozs7OworQTIyQztZSSBTWUxMQUJMRSBHR1U7TG87MDtMOzs7OztOOzs7OzsKK0EyMkQ7WUkgU1lMTEFCTEUgR0dVUDtMbzswO0w7Ozs7O047Ozs7OworQTIyRTtZSSBTWUxMQUJMRSBHR1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTIyRjtZSSBTWUxMQUJMRSBHR1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMwO1lJIFNZTExBQkxFIE1HSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMxO1lJIFNZTExBQkxFIE1HSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyMzI7WUkgU1lMTEFCTEUgTUdBVDtMbzswO0w7Ozs7O047Ozs7OworQTIzMztZSSBTWUxMQUJMRSBNR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM0O1lJIFNZTExBQkxFIE1HQTtMbzswO0w7Ozs7O047Ozs7OworQTIzNTtZSSBTWUxMQUJMRSBNR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM2O1lJIFNZTExBQkxFIE1HVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM3O1lJIFNZTExBQkxFIE1HVU87TG87MDtMOzs7OztOOzs7OzsKK0EyMzg7WUkgU1lMTEFCTEUgTUdVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMzk7WUkgU1lMTEFCTEUgTUdPVDtMbzswO0w7Ozs7O047Ozs7OworQTIzQTtZSSBTWUxMQUJMRSBNR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNCO1lJIFNZTExBQkxFIE1HTztMbzswO0w7Ozs7O047Ozs7OworQTIzQztZSSBTWUxMQUJMRSBNR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNEO1lJIFNZTExBQkxFIE1HRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyM0U7WUkgU1lMTEFCTEUgTUdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNGO1lJIFNZTExBQkxFIE1HRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNDA7WUkgU1lMTEFCTEUgTUdVVDtMbzswO0w7Ozs7O047Ozs7OworQTI0MTtZSSBTWUxMQUJMRSBNR1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQyO1lJIFNZTExBQkxFIE1HVTtMbzswO0w7Ozs7O047Ozs7OworQTI0MztZSSBTWUxMQUJMRSBNR1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ0O1lJIFNZTExBQkxFIE1HVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ1O1lJIFNZTExBQkxFIE1HVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyNDY7WUkgU1lMTEFCTEUgSFhJVDtMbzswO0w7Ozs7O047Ozs7OworQTI0NztZSSBTWUxMQUJMRSBIWElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ4O1lJIFNZTExBQkxFIEhYSTtMbzswO0w7Ozs7O047Ozs7OworQTI0OTtZSSBTWUxMQUJMRSBIWElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRBO1lJIFNZTExBQkxFIEhYSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRCO1lJIFNZTExBQkxFIEhYSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRDO1lJIFNZTExBQkxFIEhYSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyNEQ7WUkgU1lMTEFCTEUgSFhJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNEU7WUkgU1lMTEFCTEUgSFhBVDtMbzswO0w7Ozs7O047Ozs7OworQTI0RjtZSSBTWUxMQUJMRSBIWEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUwO1lJIFNZTExBQkxFIEhYQTtMbzswO0w7Ozs7O047Ozs7OworQTI1MTtZSSBTWUxMQUJMRSBIWEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUyO1lJIFNZTExBQkxFIEhYVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUzO1lJIFNZTExBQkxFIEhYVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU0O1lJIFNZTExBQkxFIEhYVU87TG87MDtMOzs7OztOOzs7OzsKK0EyNTU7WUkgU1lMTEFCTEUgSFhVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNTY7WUkgU1lMTEFCTEUgSFhPVDtMbzswO0w7Ozs7O047Ozs7OworQTI1NztZSSBTWUxMQUJMRSBIWE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU4O1lJIFNZTExBQkxFIEhYTztMbzswO0w7Ozs7O047Ozs7OworQTI1OTtZSSBTWUxMQUJMRSBIWE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVBO1lJIFNZTExBQkxFIEhYRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNUI7WUkgU1lMTEFCTEUgSFhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVDO1lJIFNZTExBQkxFIEhYRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNUQ7WUkgU1lMTEFCTEUgTkdJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNUU7WUkgU1lMTEFCTEUgTkdJRTtMbzswO0w7Ozs7O047Ozs7OworQTI1RjtZSSBTWUxMQUJMRSBOR0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTI2MDtZSSBTWUxMQUJMRSBOR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYxO1lJIFNZTExBQkxFIE5HQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNjI7WUkgU1lMTEFCTEUgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYzO1lJIFNZTExBQkxFIE5HQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNjQ7WUkgU1lMTEFCTEUgTkdVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNjU7WUkgU1lMTEFCTEUgTkdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNjY7WUkgU1lMTEFCTEUgTkdVTztMbzswO0w7Ozs7O047Ozs7OworQTI2NztZSSBTWUxMQUJMRSBOR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY4O1lJIFNZTExBQkxFIE5HT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNjk7WUkgU1lMTEFCTEUgTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZBO1lJIFNZTExBQkxFIE5HT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNkI7WUkgU1lMTEFCTEUgTkdFWDtMbzswO0w7Ozs7O047Ozs7OworQTI2QztZSSBTWUxMQUJMRSBOR0U7TG87MDtMOzs7OztOOzs7OzsKK0EyNkQ7WUkgU1lMTEFCTEUgTkdFUDtMbzswO0w7Ozs7O047Ozs7OworQTI2RTtZSSBTWUxMQUJMRSBISVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNkY7WUkgU1lMTEFCTEUgSElFWDtMbzswO0w7Ozs7O047Ozs7OworQTI3MDtZSSBTWUxMQUJMRSBISUU7TG87MDtMOzs7OztOOzs7OzsKK0EyNzE7WUkgU1lMTEFCTEUgSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjcyO1lJIFNZTExBQkxFIEhBWDtMbzswO0w7Ozs7O047Ozs7OworQTI3MztZSSBTWUxMQUJMRSBIQTtMbzswO0w7Ozs7O047Ozs7OworQTI3NDtZSSBTWUxMQUJMRSBIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNzU7WUkgU1lMTEFCTEUgSFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTI3NjtZSSBTWUxMQUJMRSBIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc3O1lJIFNZTExBQkxFIEhVTztMbzswO0w7Ozs7O047Ozs7OworQTI3ODtZSSBTWUxMQUJMRSBIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc5O1lJIFNZTExBQkxFIEhPVDtMbzswO0w7Ozs7O047Ozs7OworQTI3QTtZSSBTWUxMQUJMRSBIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyN0I7WUkgU1lMTEFCTEUgSE87TG87MDtMOzs7OztOOzs7OzsKK0EyN0M7WUkgU1lMTEFCTEUgSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdEO1lJIFNZTExBQkxFIEhFWDtMbzswO0w7Ozs7O047Ozs7OworQTI3RTtZSSBTWUxMQUJMRSBIRTtMbzswO0w7Ozs7O047Ozs7OworQTI3RjtZSSBTWUxMQUJMRSBIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyODA7WUkgU1lMTEFCTEUgV0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgxO1lJIFNZTExBQkxFIFdBWDtMbzswO0w7Ozs7O047Ozs7OworQTI4MjtZSSBTWUxMQUJMRSBXQTtMbzswO0w7Ozs7O047Ozs7OworQTI4MztZSSBTWUxMQUJMRSBXQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyODQ7WUkgU1lMTEFCTEUgV1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTI4NTtZSSBTWUxMQUJMRSBXVU87TG87MDtMOzs7OztOOzs7OzsKK0EyODY7WUkgU1lMTEFCTEUgV1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTI4NztZSSBTWUxMQUJMRSBXT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyODg7WUkgU1lMTEFCTEUgV087TG87MDtMOzs7OztOOzs7OzsKK0EyODk7WUkgU1lMTEFCTEUgV09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhBO1lJIFNZTExBQkxFIFdFWDtMbzswO0w7Ozs7O047Ozs7OworQTI4QjtZSSBTWUxMQUJMRSBXRTtMbzswO0w7Ozs7O047Ozs7OworQTI4QztZSSBTWUxMQUJMRSBXRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOEQ7WUkgU1lMTEFCTEUgWklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhFO1lJIFNZTExBQkxFIFpJWDtMbzswO0w7Ozs7O047Ozs7OworQTI4RjtZSSBTWUxMQUJMRSBaSTtMbzswO0w7Ozs7O047Ozs7OworQTI5MDtZSSBTWUxMQUJMRSBaSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOTE7WUkgU1lMTEFCTEUgWklFWDtMbzswO0w7Ozs7O047Ozs7OworQTI5MjtZSSBTWUxMQUJMRSBaSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyOTM7WUkgU1lMTEFCTEUgWklFUDtMbzswO0w7Ozs7O047Ozs7OworQTI5NDtZSSBTWUxMQUJMRSBaQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyOTU7WUkgU1lMTEFCTEUgWkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk2O1lJIFNZTExBQkxFIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk3O1lJIFNZTExBQkxFIFpBUDtMbzswO0w7Ozs7O047Ozs7OworQTI5ODtZSSBTWUxMQUJMRSBaVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk5O1lJIFNZTExBQkxFIFpVTztMbzswO0w7Ozs7O047Ozs7OworQTI5QTtZSSBTWUxMQUJMRSBaVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlCO1lJIFNZTExBQkxFIFpPVDtMbzswO0w7Ozs7O047Ozs7OworQTI5QztZSSBTWUxMQUJMRSBaT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyOUQ7WUkgU1lMTEFCTEUgWk87TG87MDtMOzs7OztOOzs7OzsKK0EyOUU7WUkgU1lMTEFCTEUgWk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlGO1lJIFNZTExBQkxFIFpFWDtMbzswO0w7Ozs7O047Ozs7OworQTJBMDtZSSBTWUxMQUJMRSBaRTtMbzswO0w7Ozs7O047Ozs7OworQTJBMTtZSSBTWUxMQUJMRSBaRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQTI7WUkgU1lMTEFCTEUgWlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkEzO1lJIFNZTExBQkxFIFpVWDtMbzswO0w7Ozs7O047Ozs7OworQTJBNDtZSSBTWUxMQUJMRSBaVTtMbzswO0w7Ozs7O047Ozs7OworQTJBNTtZSSBTWUxMQUJMRSBaVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQTY7WUkgU1lMTEFCTEUgWlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTJBNztZSSBTWUxMQUJMRSBaVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyQTg7WUkgU1lMTEFCTEUgWllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE5O1lJIFNZTExBQkxFIFpZWDtMbzswO0w7Ozs7O047Ozs7OworQTJBQTtZSSBTWUxMQUJMRSBaWTtMbzswO0w7Ozs7O047Ozs7OworQTJBQjtZSSBTWUxMQUJMRSBaWVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQUM7WUkgU1lMTEFCTEUgWllSWDtMbzswO0w7Ozs7O047Ozs7OworQTJBRDtZSSBTWUxMQUJMRSBaWVI7TG87MDtMOzs7OztOOzs7OzsKK0EyQUU7WUkgU1lMTEFCTEUgQ0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFGO1lJIFNZTExBQkxFIENJWDtMbzswO0w7Ozs7O047Ozs7OworQTJCMDtZSSBTWUxMQUJMRSBDSTtMbzswO0w7Ozs7O047Ozs7OworQTJCMTtZSSBTWUxMQUJMRSBDSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQjI7WUkgU1lMTEFCTEUgQ0lFVDtMbzswO0w7Ozs7O047Ozs7OworQTJCMztZSSBTWUxMQUJMRSBDSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI0O1lJIFNZTExBQkxFIENJRTtMbzswO0w7Ozs7O047Ozs7OworQTJCNTtZSSBTWUxMQUJMRSBDSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI2O1lJIFNZTExBQkxFIENBVDtMbzswO0w7Ozs7O047Ozs7OworQTJCNztZSSBTWUxMQUJMRSBDQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQjg7WUkgU1lMTEFCTEUgQ0E7TG87MDtMOzs7OztOOzs7OzsKK0EyQjk7WUkgU1lMTEFCTEUgQ0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJBO1lJIFNZTExBQkxFIENVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyQkI7WUkgU1lMTEFCTEUgQ1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJDO1lJIFNZTExBQkxFIENVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyQkQ7WUkgU1lMTEFCTEUgQ09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJFO1lJIFNZTExBQkxFIENPWDtMbzswO0w7Ozs7O047Ozs7OworQTJCRjtZSSBTWUxMQUJMRSBDTztMbzswO0w7Ozs7O047Ozs7OworQTJDMDtZSSBTWUxMQUJMRSBDT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyQzE7WUkgU1lMTEFCTEUgQ0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMyO1lJIFNZTExBQkxFIENFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMzO1lJIFNZTExBQkxFIENFUDtMbzswO0w7Ozs7O047Ozs7OworQTJDNDtZSSBTWUxMQUJMRSBDVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQzU7WUkgU1lMTEFCTEUgQ1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM2O1lJIFNZTExBQkxFIENVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM3O1lJIFNZTExBQkxFIENVUDtMbzswO0w7Ozs7O047Ozs7OworQTJDODtZSSBTWUxMQUJMRSBDVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM5O1lJIFNZTExBQkxFIENVUjtMbzswO0w7Ozs7O047Ozs7OworQTJDQTtZSSBTWUxMQUJMRSBDWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0I7WUkgU1lMTEFCTEUgQ1lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNDO1lJIFNZTExBQkxFIENZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNEO1lJIFNZTExBQkxFIENZUDtMbzswO0w7Ozs7O047Ozs7OworQTJDRTtZSSBTWUxMQUJMRSBDWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNGO1lJIFNZTExBQkxFIENZUjtMbzswO0w7Ozs7O047Ozs7OworQTJEMDtZSSBTWUxMQUJMRSBaWklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQxO1lJIFNZTExBQkxFIFpaSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRDI7WUkgU1lMTEFCTEUgWlpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQzO1lJIFNZTExBQkxFIFpaSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRDQ7WUkgU1lMTEFCTEUgWlpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRDU7WUkgU1lMTEFCTEUgWlpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRDY7WUkgU1lMTEFCTEUgWlpJRTtMbzswO0w7Ozs7O047Ozs7OworQTJENztZSSBTWUxMQUJMRSBaWklFUDtMbzswO0w7Ozs7O047Ozs7OworQTJEODtZSSBTWUxMQUJMRSBaWkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ5O1lJIFNZTExBQkxFIFpaQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyREE7WUkgU1lMTEFCTEUgWlpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRCO1lJIFNZTExBQkxFIFpaQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyREM7WUkgU1lMTEFCTEUgWlpPWDtMbzswO0w7Ozs7O047Ozs7OworQTJERDtZSSBTWUxMQUJMRSBaWk87TG87MDtMOzs7OztOOzs7OzsKK0EyREU7WUkgU1lMTEFCTEUgWlpPUDtMbzswO0w7Ozs7O047Ozs7OworQTJERjtZSSBTWUxMQUJMRSBaWkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUwO1lJIFNZTExBQkxFIFpaRTtMbzswO0w7Ozs7O047Ozs7OworQTJFMTtZSSBTWUxMQUJMRSBaWkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUyO1lJIFNZTExBQkxFIFpaVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTM7WUkgU1lMTEFCTEUgWlpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU0O1lJIFNZTExBQkxFIFpaVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRTU7WUkgU1lMTEFCTEUgWlpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTY7WUkgU1lMTEFCTEUgWlpVUjtMbzswO0w7Ozs7O047Ozs7OworQTJFNztZSSBTWUxMQUJMRSBaWllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU4O1lJIFNZTExBQkxFIFpaWVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTk7WUkgU1lMTEFCTEUgWlpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVBO1lJIFNZTExBQkxFIFpaWVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRUI7WUkgU1lMTEFCTEUgWlpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyRUM7WUkgU1lMTEFCTEUgWlpZUjtMbzswO0w7Ozs7O047Ozs7OworQTJFRDtZSSBTWUxMQUJMRSBOWklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVFO1lJIFNZTExBQkxFIE5aSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRUY7WUkgU1lMTEFCTEUgTlpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYwO1lJIFNZTExBQkxFIE5aSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRjE7WUkgU1lMTEFCTEUgTlpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRjI7WUkgU1lMTEFCTEUgTlpJRTtMbzswO0w7Ozs7O047Ozs7OworQTJGMztZSSBTWUxMQUJMRSBOWklFUDtMbzswO0w7Ozs7O047Ozs7OworQTJGNDtZSSBTWUxMQUJMRSBOWkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY1O1lJIFNZTExBQkxFIE5aQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRjY7WUkgU1lMTEFCTEUgTlpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY3O1lJIFNZTExBQkxFIE5aQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRjg7WUkgU1lMTEFCTEUgTlpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyRjk7WUkgU1lMTEFCTEUgTlpVTztMbzswO0w7Ozs7O047Ozs7OworQTJGQTtZSSBTWUxMQUJMRSBOWk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZCO1lJIFNZTExBQkxFIE5aT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyRkM7WUkgU1lMTEFCTEUgTlpFWDtMbzswO0w7Ozs7O047Ozs7OworQTJGRDtZSSBTWUxMQUJMRSBOWkU7TG87MDtMOzs7OztOOzs7OzsKK0EyRkU7WUkgU1lMTEFCTEUgTlpVWDtMbzswO0w7Ozs7O047Ozs7OworQTJGRjtZSSBTWUxMQUJMRSBOWlU7TG87MDtMOzs7OztOOzs7OzsKK0EzMDA7WUkgU1lMTEFCTEUgTlpVUDtMbzswO0w7Ozs7O047Ozs7OworQTMwMTtZSSBTWUxMQUJMRSBOWlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTMwMjtZSSBTWUxMQUJMRSBOWlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAzO1lJIFNZTExBQkxFIE5aWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMDQ7WUkgU1lMTEFCTEUgTlpZWDtMbzswO0w7Ozs7O047Ozs7OworQTMwNTtZSSBTWUxMQUJMRSBOWlk7TG87MDtMOzs7OztOOzs7OzsKK0EzMDY7WUkgU1lMTEFCTEUgTlpZUDtMbzswO0w7Ozs7O047Ozs7OworQTMwNztZSSBTWUxMQUJMRSBOWllSWDtMbzswO0w7Ozs7O047Ozs7OworQTMwODtZSSBTWUxMQUJMRSBOWllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA5O1lJIFNZTExBQkxFIFNJVDtMbzswO0w7Ozs7O047Ozs7OworQTMwQTtZSSBTWUxMQUJMRSBTSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMEI7WUkgU1lMTEFCTEUgU0k7TG87MDtMOzs7OztOOzs7OzsKK0EzMEM7WUkgU1lMTEFCTEUgU0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBEO1lJIFNZTExBQkxFIFNJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMEU7WUkgU1lMTEFCTEUgU0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBGO1lJIFNZTExBQkxFIFNJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMTA7WUkgU1lMTEFCTEUgU0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzExO1lJIFNZTExBQkxFIFNBWDtMbzswO0w7Ozs7O047Ozs7OworQTMxMjtZSSBTWUxMQUJMRSBTQTtMbzswO0w7Ozs7O047Ozs7OworQTMxMztZSSBTWUxMQUJMRSBTQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMTQ7WUkgU1lMTEFCTEUgU1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTMxNTtZSSBTWUxMQUJMRSBTVU87TG87MDtMOzs7OztOOzs7OzsKK0EzMTY7WUkgU1lMTEFCTEUgU1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTMxNztZSSBTWUxMQUJMRSBTT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzMTg7WUkgU1lMTEFCTEUgU09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE5O1lJIFNZTExBQkxFIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFBO1lJIFNZTExBQkxFIFNPUDtMbzswO0w7Ozs7O047Ozs7OworQTMxQjtZSSBTWUxMQUJMRSBTRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMUM7WUkgU1lMTEFCTEUgU0U7TG87MDtMOzs7OztOOzs7OzsKK0EzMUQ7WUkgU1lMTEFCTEUgU0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFFO1lJIFNZTExBQkxFIFNVVDtMbzswO0w7Ozs7O047Ozs7OworQTMxRjtZSSBTWUxMQUJMRSBTVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjA7WUkgU1lMTEFCTEUgU1U7TG87MDtMOzs7OztOOzs7OzsKK0EzMjE7WUkgU1lMTEFCTEUgU1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIyO1lJIFNZTExBQkxFIFNVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjM7WUkgU1lMTEFCTEUgU1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI0O1lJIFNZTExBQkxFIFNZVDtMbzswO0w7Ozs7O047Ozs7OworQTMyNTtZSSBTWUxMQUJMRSBTWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjY7WUkgU1lMTEFCTEUgU1k7TG87MDtMOzs7OztOOzs7OzsKK0EzMjc7WUkgU1lMTEFCTEUgU1lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI4O1lJIFNZTExBQkxFIFNZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjk7WUkgU1lMTEFCTEUgU1lSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJBO1lJIFNZTExBQkxFIFNTSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMkI7WUkgU1lMTEFCTEUgU1NJWDtMbzswO0w7Ozs7O047Ozs7OworQTMyQztZSSBTWUxMQUJMRSBTU0k7TG87MDtMOzs7OztOOzs7OzsKK0EzMkQ7WUkgU1lMTEFCTEUgU1NJUDtMbzswO0w7Ozs7O047Ozs7OworQTMyRTtZSSBTWUxMQUJMRSBTU0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTMyRjtZSSBTWUxMQUJMRSBTU0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMwO1lJIFNZTExBQkxFIFNTSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMxO1lJIFNZTExBQkxFIFNTQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMzI7WUkgU1lMTEFCTEUgU1NBWDtMbzswO0w7Ozs7O047Ozs7OworQTMzMztZSSBTWUxMQUJMRSBTU0E7TG87MDtMOzs7OztOOzs7OzsKK0EzMzQ7WUkgU1lMTEFCTEUgU1NBUDtMbzswO0w7Ozs7O047Ozs7OworQTMzNTtZSSBTWUxMQUJMRSBTU09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM2O1lJIFNZTExBQkxFIFNTT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzMzc7WUkgU1lMTEFCTEUgU1NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM4O1lJIFNZTExBQkxFIFNTT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzMzk7WUkgU1lMTEFCTEUgU1NFWDtMbzswO0w7Ozs7O047Ozs7OworQTMzQTtZSSBTWUxMQUJMRSBTU0U7TG87MDtMOzs7OztOOzs7OzsKK0EzM0I7WUkgU1lMTEFCTEUgU1NFUDtMbzswO0w7Ozs7O047Ozs7OworQTMzQztZSSBTWUxMQUJMRSBTU1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNEO1lJIFNZTExBQkxFIFNTVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzM0U7WUkgU1lMTEFCTEUgU1NVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNGO1lJIFNZTExBQkxFIFNTVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNDA7WUkgU1lMTEFCTEUgU1NZVDtMbzswO0w7Ozs7O047Ozs7OworQTM0MTtZSSBTWUxMQUJMRSBTU1lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQyO1lJIFNZTExBQkxFIFNTWTtMbzswO0w7Ozs7O047Ozs7OworQTM0MztZSSBTWUxMQUJMRSBTU1lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ0O1lJIFNZTExBQkxFIFNTWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ1O1lJIFNZTExBQkxFIFNTWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNDY7WUkgU1lMTEFCTEUgWkhBVDtMbzswO0w7Ozs7O047Ozs7OworQTM0NztZSSBTWUxMQUJMRSBaSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ4O1lJIFNZTExBQkxFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworQTM0OTtZSSBTWUxMQUJMRSBaSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRBO1lJIFNZTExBQkxFIFpIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRCO1lJIFNZTExBQkxFIFpIVU87TG87MDtMOzs7OztOOzs7OzsKK0EzNEM7WUkgU1lMTEFCTEUgWkhVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNEQ7WUkgU1lMTEFCTEUgWkhPVDtMbzswO0w7Ozs7O047Ozs7OworQTM0RTtZSSBTWUxMQUJMRSBaSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRGO1lJIFNZTExBQkxFIFpITztMbzswO0w7Ozs7O047Ozs7OworQTM1MDtZSSBTWUxMQUJMRSBaSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUxO1lJIFNZTExBQkxFIFpIRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNTI7WUkgU1lMTEFCTEUgWkhFWDtMbzswO0w7Ozs7O047Ozs7OworQTM1MztZSSBTWUxMQUJMRSBaSEU7TG87MDtMOzs7OztOOzs7OzsKK0EzNTQ7WUkgU1lMTEFCTEUgWkhFUDtMbzswO0w7Ozs7O047Ozs7OworQTM1NTtZSSBTWUxMQUJMRSBaSFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU2O1lJIFNZTExBQkxFIFpIVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNTc7WUkgU1lMTEFCTEUgWkhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU4O1lJIFNZTExBQkxFIFpIVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNTk7WUkgU1lMTEFCTEUgWkhVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNUE7WUkgU1lMTEFCTEUgWkhVUjtMbzswO0w7Ozs7O047Ozs7OworQTM1QjtZSSBTWUxMQUJMRSBaSFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVDO1lJIFNZTExBQkxFIFpIWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNUQ7WUkgU1lMTEFCTEUgWkhZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVFO1lJIFNZTExBQkxFIFpIWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNUY7WUkgU1lMTEFCTEUgWkhZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNjA7WUkgU1lMTEFCTEUgWkhZUjtMbzswO0w7Ozs7O047Ozs7OworQTM2MTtZSSBTWUxMQUJMRSBDSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYyO1lJIFNZTExBQkxFIENIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNjM7WUkgU1lMTEFCTEUgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY0O1lJIFNZTExBQkxFIENIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNjU7WUkgU1lMTEFCTEUgQ0hVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzNjY7WUkgU1lMTEFCTEUgQ0hVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNjc7WUkgU1lMTEFCTEUgQ0hVTztMbzswO0w7Ozs7O047Ozs7OworQTM2ODtZSSBTWUxMQUJMRSBDSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTM2OTtZSSBTWUxMQUJMRSBDSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZBO1lJIFNZTExBQkxFIENIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNkI7WUkgU1lMTEFCTEUgQ0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZDO1lJIFNZTExBQkxFIENIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNkQ7WUkgU1lMTEFCTEUgQ0hFVDtMbzswO0w7Ozs7O047Ozs7OworQTM2RTtZSSBTWUxMQUJMRSBDSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZGO1lJIFNZTExBQkxFIENIRTtMbzswO0w7Ozs7O047Ozs7OworQTM3MDtZSSBTWUxMQUJMRSBDSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzcxO1lJIFNZTExBQkxFIENIVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNzI7WUkgU1lMTEFCTEUgQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzczO1lJIFNZTExBQkxFIENIVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNzQ7WUkgU1lMTEFCTEUgQ0hVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNzU7WUkgU1lMTEFCTEUgQ0hVUjtMbzswO0w7Ozs7O047Ozs7OworQTM3NjtZSSBTWUxMQUJMRSBDSFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc3O1lJIFNZTExBQkxFIENIWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNzg7WUkgU1lMTEFCTEUgQ0hZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc5O1lJIFNZTExBQkxFIENIWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzN0E7WUkgU1lMTEFCTEUgQ0hZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzN0I7WUkgU1lMTEFCTEUgQ0hZUjtMbzswO0w7Ozs7O047Ozs7OworQTM3QztZSSBTWUxMQUJMRSBSUkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdEO1lJIFNZTExBQkxFIFJSQTtMbzswO0w7Ozs7O047Ozs7OworQTM3RTtZSSBTWUxMQUJMRSBSUlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTM3RjtZSSBTWUxMQUJMRSBSUlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgwO1lJIFNZTExBQkxFIFJST1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzODE7WUkgU1lMTEFCTEUgUlJPWDtMbzswO0w7Ozs7O047Ozs7OworQTM4MjtZSSBTWUxMQUJMRSBSUk87TG87MDtMOzs7OztOOzs7OzsKK0EzODM7WUkgU1lMTEFCTEUgUlJPUDtMbzswO0w7Ozs7O047Ozs7OworQTM4NDtZSSBTWUxMQUJMRSBSUkVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg1O1lJIFNZTExBQkxFIFJSRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzODY7WUkgU1lMTEFCTEUgUlJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg3O1lJIFNZTExBQkxFIFJSRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzODg7WUkgU1lMTEFCTEUgUlJVVDtMbzswO0w7Ozs7O047Ozs7OworQTM4OTtZSSBTWUxMQUJMRSBSUlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhBO1lJIFNZTExBQkxFIFJSVTtMbzswO0w7Ozs7O047Ozs7OworQTM4QjtZSSBTWUxMQUJMRSBSUlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhDO1lJIFNZTExBQkxFIFJSVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhEO1lJIFNZTExBQkxFIFJSVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzOEU7WUkgU1lMTEFCTEUgUlJZVDtMbzswO0w7Ozs7O047Ozs7OworQTM4RjtZSSBTWUxMQUJMRSBSUllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkwO1lJIFNZTExBQkxFIFJSWTtMbzswO0w7Ozs7O047Ozs7OworQTM5MTtZSSBTWUxMQUJMRSBSUllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkyO1lJIFNZTExBQkxFIFJSWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkzO1lJIFNZTExBQkxFIFJSWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzOTQ7WUkgU1lMTEFCTEUgTlJBVDtMbzswO0w7Ozs7O047Ozs7OworQTM5NTtZSSBTWUxMQUJMRSBOUkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk2O1lJIFNZTExBQkxFIE5SQTtMbzswO0w7Ozs7O047Ozs7OworQTM5NztZSSBTWUxMQUJMRSBOUkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk4O1lJIFNZTExBQkxFIE5ST1g7TG87MDtMOzs7OztOOzs7OzsKK0EzOTk7WUkgU1lMTEFCTEUgTlJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlBO1lJIFNZTExBQkxFIE5ST1A7TG87MDtMOzs7OztOOzs7OzsKK0EzOUI7WUkgU1lMTEFCTEUgTlJFVDtMbzswO0w7Ozs7O047Ozs7OworQTM5QztZSSBTWUxMQUJMRSBOUkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlEO1lJIFNZTExBQkxFIE5SRTtMbzswO0w7Ozs7O047Ozs7OworQTM5RTtZSSBTWUxMQUJMRSBOUkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlGO1lJIFNZTExBQkxFIE5SVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQTA7WUkgU1lMTEFCTEUgTlJVWDtMbzswO0w7Ozs7O047Ozs7OworQTNBMTtZSSBTWUxMQUJMRSBOUlU7TG87MDtMOzs7OztOOzs7OzsKK0EzQTI7WUkgU1lMTEFCTEUgTlJVUDtMbzswO0w7Ozs7O047Ozs7OworQTNBMztZSSBTWUxMQUJMRSBOUlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNBNDtZSSBTWUxMQUJMRSBOUlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E1O1lJIFNZTExBQkxFIE5SWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQTY7WUkgU1lMTEFCTEUgTlJZWDtMbzswO0w7Ozs7O047Ozs7OworQTNBNztZSSBTWUxMQUJMRSBOUlk7TG87MDtMOzs7OztOOzs7OzsKK0EzQTg7WUkgU1lMTEFCTEUgTlJZUDtMbzswO0w7Ozs7O047Ozs7OworQTNBOTtZSSBTWUxMQUJMRSBOUllSWDtMbzswO0w7Ozs7O047Ozs7OworQTNBQTtZSSBTWUxMQUJMRSBOUllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FCO1lJIFNZTExBQkxFIFNIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQUM7WUkgU1lMTEFCTEUgU0hBWDtMbzswO0w7Ozs7O047Ozs7OworQTNBRDtZSSBTWUxMQUJMRSBTSEE7TG87MDtMOzs7OztOOzs7OzsKK0EzQUU7WUkgU1lMTEFCTEUgU0hBUDtMbzswO0w7Ozs7O047Ozs7OworQTNBRjtZSSBTWUxMQUJMRSBTSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTNCMDtZSSBTWUxMQUJMRSBTSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IxO1lJIFNZTExBQkxFIFNIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IyO1lJIFNZTExBQkxFIFNIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzQjM7WUkgU1lMTEFCTEUgU0hPWDtMbzswO0w7Ozs7O047Ozs7OworQTNCNDtZSSBTWUxMQUJMRSBTSE87TG87MDtMOzs7OztOOzs7OzsKK0EzQjU7WUkgU1lMTEFCTEUgU0hPUDtMbzswO0w7Ozs7O047Ozs7OworQTNCNjtZSSBTWUxMQUJMRSBTSEVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I3O1lJIFNZTExBQkxFIFNIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQjg7WUkgU1lMTEFCTEUgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I5O1lJIFNZTExBQkxFIFNIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQkE7WUkgU1lMTEFCTEUgU0hVVDtMbzswO0w7Ozs7O047Ozs7OworQTNCQjtZSSBTWUxMQUJMRSBTSFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JDO1lJIFNZTExBQkxFIFNIVTtMbzswO0w7Ozs7O047Ozs7OworQTNCRDtZSSBTWUxMQUJMRSBTSFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JFO1lJIFNZTExBQkxFIFNIVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JGO1lJIFNZTExBQkxFIFNIVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQzA7WUkgU1lMTEFCTEUgU0hZVDtMbzswO0w7Ozs7O047Ozs7OworQTNDMTtZSSBTWUxMQUJMRSBTSFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MyO1lJIFNZTExBQkxFIFNIWTtMbzswO0w7Ozs7O047Ozs7OworQTNDMztZSSBTWUxMQUJMRSBTSFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M0O1lJIFNZTExBQkxFIFNIWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M1O1lJIFNZTExBQkxFIFNIWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQzY7WUkgU1lMTEFCTEUgUkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M3O1lJIFNZTExBQkxFIFJBWDtMbzswO0w7Ozs7O047Ozs7OworQTNDODtZSSBTWUxMQUJMRSBSQTtMbzswO0w7Ozs7O047Ozs7OworQTNDOTtZSSBTWUxMQUJMRSBSQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0E7WUkgU1lMTEFCTEUgUlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTNDQjtZSSBTWUxMQUJMRSBSVU87TG87MDtMOzs7OztOOzs7OzsKK0EzQ0M7WUkgU1lMTEFCTEUgUlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTNDRDtZSSBTWUxMQUJMRSBST1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0U7WUkgU1lMTEFCTEUgUk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NGO1lJIFNZTExBQkxFIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QwO1lJIFNZTExBQkxFIFJPUDtMbzswO0w7Ozs7O047Ozs7OworQTNEMTtZSSBTWUxMQUJMRSBSRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRDI7WUkgU1lMTEFCTEUgUkU7TG87MDtMOzs7OztOOzs7OzsKK0EzRDM7WUkgU1lMTEFCTEUgUkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q0O1lJIFNZTExBQkxFIFJVVDtMbzswO0w7Ozs7O047Ozs7OworQTNENTtZSSBTWUxMQUJMRSBSVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRDY7WUkgU1lMTEFCTEUgUlU7TG87MDtMOzs7OztOOzs7OzsKK0EzRDc7WUkgU1lMTEFCTEUgUlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q4O1lJIFNZTExBQkxFIFJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzRDk7WUkgU1lMTEFCTEUgUlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RBO1lJIFNZTExBQkxFIFJZVDtMbzswO0w7Ozs7O047Ozs7OworQTNEQjtZSSBTWUxMQUJMRSBSWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzREM7WUkgU1lMTEFCTEUgUlk7TG87MDtMOzs7OztOOzs7OzsKK0EzREQ7WUkgU1lMTEFCTEUgUllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RFO1lJIFNZTExBQkxFIFJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzREY7WUkgU1lMTEFCTEUgUllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UwO1lJIFNZTExBQkxFIEpJVDtMbzswO0w7Ozs7O047Ozs7OworQTNFMTtZSSBTWUxMQUJMRSBKSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRTI7WUkgU1lMTEFCTEUgSkk7TG87MDtMOzs7OztOOzs7OzsKK0EzRTM7WUkgU1lMTEFCTEUgSklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U0O1lJIFNZTExBQkxFIEpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRTU7WUkgU1lMTEFCTEUgSklFWDtMbzswO0w7Ozs7O047Ozs7OworQTNFNjtZSSBTWUxMQUJMRSBKSUU7TG87MDtMOzs7OztOOzs7OzsKK0EzRTc7WUkgU1lMTEFCTEUgSklFUDtMbzswO0w7Ozs7O047Ozs7OworQTNFODtZSSBTWUxMQUJMRSBKVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U5O1lJIFNZTExBQkxFIEpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzRUE7WUkgU1lMTEFCTEUgSlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VCO1lJIFNZTExBQkxFIEpVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzRUM7WUkgU1lMTEFCTEUgSk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VEO1lJIFNZTExBQkxFIEpPWDtMbzswO0w7Ozs7O047Ozs7OworQTNFRTtZSSBTWUxMQUJMRSBKTztMbzswO0w7Ozs7O047Ozs7OworQTNFRjtZSSBTWUxMQUJMRSBKT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzRjA7WUkgU1lMTEFCTEUgSlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YxO1lJIFNZTExBQkxFIEpVWDtMbzswO0w7Ozs7O047Ozs7OworQTNGMjtZSSBTWUxMQUJMRSBKVTtMbzswO0w7Ozs7O047Ozs7OworQTNGMztZSSBTWUxMQUJMRSBKVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRjQ7WUkgU1lMTEFCTEUgSlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNGNTtZSSBTWUxMQUJMRSBKVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzRjY7WUkgU1lMTEFCTEUgSllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y3O1lJIFNZTExBQkxFIEpZWDtMbzswO0w7Ozs7O047Ozs7OworQTNGODtZSSBTWUxMQUJMRSBKWTtMbzswO0w7Ozs7O047Ozs7OworQTNGOTtZSSBTWUxMQUJMRSBKWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRkE7WUkgU1lMTEFCTEUgSllSWDtMbzswO0w7Ozs7O047Ozs7OworQTNGQjtZSSBTWUxMQUJMRSBKWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzRkM7WUkgU1lMTEFCTEUgUUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZEO1lJIFNZTExBQkxFIFFJWDtMbzswO0w7Ozs7O047Ozs7OworQTNGRTtZSSBTWUxMQUJMRSBRSTtMbzswO0w7Ozs7O047Ozs7OworQTNGRjtZSSBTWUxMQUJMRSBRSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MDA7WUkgU1lMTEFCTEUgUUlFVDtMbzswO0w7Ozs7O047Ozs7OworQTQwMTtZSSBTWUxMQUJMRSBRSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAyO1lJIFNZTExBQkxFIFFJRTtMbzswO0w7Ozs7O047Ozs7OworQTQwMztZSSBTWUxMQUJMRSBRSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA0O1lJIFNZTExBQkxFIFFVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0MDU7WUkgU1lMTEFCTEUgUVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQwNjtZSSBTWUxMQUJMRSBRVU87TG87MDtMOzs7OztOOzs7OzsKK0E0MDc7WUkgU1lMTEFCTEUgUVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQwODtZSSBTWUxMQUJMRSBRT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0MDk7WUkgU1lMTEFCTEUgUU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBBO1lJIFNZTExBQkxFIFFPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBCO1lJIFNZTExBQkxFIFFPUDtMbzswO0w7Ozs7O047Ozs7OworQTQwQztZSSBTWUxMQUJMRSBRVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MEQ7WUkgU1lMTEFCTEUgUVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBFO1lJIFNZTExBQkxFIFFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBGO1lJIFNZTExBQkxFIFFVUDtMbzswO0w7Ozs7O047Ozs7OworQTQxMDtZSSBTWUxMQUJMRSBRVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDExO1lJIFNZTExBQkxFIFFVUjtMbzswO0w7Ozs7O047Ozs7OworQTQxMjtZSSBTWUxMQUJMRSBRWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MTM7WUkgU1lMTEFCTEUgUVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE0O1lJIFNZTExBQkxFIFFZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE1O1lJIFNZTExBQkxFIFFZUDtMbzswO0w7Ozs7O047Ozs7OworQTQxNjtZSSBTWUxMQUJMRSBRWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE3O1lJIFNZTExBQkxFIFFZUjtMbzswO0w7Ozs7O047Ozs7OworQTQxODtZSSBTWUxMQUJMRSBKSklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE5O1lJIFNZTExBQkxFIEpKSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MUE7WUkgU1lMTEFCTEUgSkpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFCO1lJIFNZTExBQkxFIEpKSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MUM7WUkgU1lMTEFCTEUgSkpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MUQ7WUkgU1lMTEFCTEUgSkpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MUU7WUkgU1lMTEFCTEUgSkpJRTtMbzswO0w7Ozs7O047Ozs7OworQTQxRjtZSSBTWUxMQUJMRSBKSklFUDtMbzswO0w7Ozs7O047Ozs7OworQTQyMDtZSSBTWUxMQUJMRSBKSlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQyMTtZSSBTWUxMQUJMRSBKSlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIyO1lJIFNZTExBQkxFIEpKVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIzO1lJIFNZTExBQkxFIEpKT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0MjQ7WUkgU1lMTEFCTEUgSkpPWDtMbzswO0w7Ozs7O047Ozs7OworQTQyNTtZSSBTWUxMQUJMRSBKSk87TG87MDtMOzs7OztOOzs7OzsKK0E0MjY7WUkgU1lMTEFCTEUgSkpPUDtMbzswO0w7Ozs7O047Ozs7OworQTQyNztZSSBTWUxMQUJMRSBKSlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI4O1lJIFNZTExBQkxFIEpKVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0Mjk7WUkgU1lMTEFCTEUgSkpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJBO1lJIFNZTExBQkxFIEpKVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MkI7WUkgU1lMTEFCTEUgSkpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0MkM7WUkgU1lMTEFCTEUgSkpVUjtMbzswO0w7Ozs7O047Ozs7OworQTQyRDtZSSBTWUxMQUJMRSBKSllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJFO1lJIFNZTExBQkxFIEpKWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MkY7WUkgU1lMTEFCTEUgSkpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMwO1lJIFNZTExBQkxFIEpKWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MzE7WUkgU1lMTEFCTEUgTkpJVDtMbzswO0w7Ozs7O047Ozs7OworQTQzMjtZSSBTWUxMQUJMRSBOSklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMzO1lJIFNZTExBQkxFIE5KSTtMbzswO0w7Ozs7O047Ozs7OworQTQzNDtZSSBTWUxMQUJMRSBOSklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM1O1lJIFNZTExBQkxFIE5KSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM2O1lJIFNZTExBQkxFIE5KSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM3O1lJIFNZTExBQkxFIE5KSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0Mzg7WUkgU1lMTEFCTEUgTkpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0Mzk7WUkgU1lMTEFCTEUgTkpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0M0E7WUkgU1lMTEFCTEUgTkpVTztMbzswO0w7Ozs7O047Ozs7OworQTQzQjtZSSBTWUxMQUJMRSBOSk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNDO1lJIFNZTExBQkxFIE5KT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0M0Q7WUkgU1lMTEFCTEUgTkpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNFO1lJIFNZTExBQkxFIE5KT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0M0Y7WUkgU1lMTEFCTEUgTkpVWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0MDtZSSBTWUxMQUJMRSBOSlU7TG87MDtMOzs7OztOOzs7OzsKK0E0NDE7WUkgU1lMTEFCTEUgTkpVUDtMbzswO0w7Ozs7O047Ozs7OworQTQ0MjtZSSBTWUxMQUJMRSBOSlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0MztZSSBTWUxMQUJMRSBOSlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ0O1lJIFNZTExBQkxFIE5KWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NDU7WUkgU1lMTEFCTEUgTkpZWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0NjtZSSBTWUxMQUJMRSBOSlk7TG87MDtMOzs7OztOOzs7OzsKK0E0NDc7WUkgU1lMTEFCTEUgTkpZUDtMbzswO0w7Ozs7O047Ozs7OworQTQ0ODtZSSBTWUxMQUJMRSBOSllSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0OTtZSSBTWUxMQUJMRSBOSllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRBO1lJIFNZTExBQkxFIE5ZSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NEI7WUkgU1lMTEFCTEUgTllJWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0QztZSSBTWUxMQUJMRSBOWUk7TG87MDtMOzs7OztOOzs7OzsKK0E0NEQ7WUkgU1lMTEFCTEUgTllJUDtMbzswO0w7Ozs7O047Ozs7OworQTQ0RTtZSSBTWUxMQUJMRSBOWUlFVDtMbzswO0w7Ozs7O047Ozs7OworQTQ0RjtZSSBTWUxMQUJMRSBOWUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1MDtZSSBTWUxMQUJMRSBOWUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUxO1lJIFNZTExBQkxFIE5ZSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUyO1lJIFNZTExBQkxFIE5ZVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUzO1lJIFNZTExBQkxFIE5ZVU87TG87MDtMOzs7OztOOzs7OzsKK0E0NTQ7WUkgU1lMTEFCTEUgTllVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0NTU7WUkgU1lMTEFCTEUgTllPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ1NjtZSSBTWUxMQUJMRSBOWU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU3O1lJIFNZTExBQkxFIE5ZTztMbzswO0w7Ozs7O047Ozs7OworQTQ1ODtZSSBTWUxMQUJMRSBOWU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU5O1lJIFNZTExBQkxFIE5ZVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NUE7WUkgU1lMTEFCTEUgTllVWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1QjtZSSBTWUxMQUJMRSBOWVU7TG87MDtMOzs7OztOOzs7OzsKK0E0NUM7WUkgU1lMTEFCTEUgTllVUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1RDtZSSBTWUxMQUJMRSBYSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NUU7WUkgU1lMTEFCTEUgWElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVGO1lJIFNZTExBQkxFIFhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYwO1lJIFNZTExBQkxFIFhJUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2MTtZSSBTWUxMQUJMRSBYSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYyO1lJIFNZTExBQkxFIFhJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NjM7WUkgU1lMTEFCTEUgWElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY0O1lJIFNZTExBQkxFIFhJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NjU7WUkgU1lMTEFCTEUgWFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2NjtZSSBTWUxMQUJMRSBYVU87TG87MDtMOzs7OztOOzs7OzsKK0E0Njc7WUkgU1lMTEFCTEUgWE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY4O1lJIFNZTExBQkxFIFhPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2OTtZSSBTWUxMQUJMRSBYTztMbzswO0w7Ozs7O047Ozs7OworQTQ2QTtZSSBTWUxMQUJMRSBYT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0NkI7WUkgU1lMTEFCTEUgWFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZDO1lJIFNZTExBQkxFIFhZWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2RDtZSSBTWUxMQUJMRSBYWTtMbzswO0w7Ozs7O047Ozs7OworQTQ2RTtZSSBTWUxMQUJMRSBYWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NkY7WUkgU1lMTEFCTEUgWFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3MDtZSSBTWUxMQUJMRSBYWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0NzE7WUkgU1lMTEFCTEUgWUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDcyO1lJIFNZTExBQkxFIFlJWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3MztZSSBTWUxMQUJMRSBZSTtMbzswO0w7Ozs7O047Ozs7OworQTQ3NDtZSSBTWUxMQUJMRSBZSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NzU7WUkgU1lMTEFCTEUgWUlFVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3NjtZSSBTWUxMQUJMRSBZSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc3O1lJIFNZTExBQkxFIFlJRTtMbzswO0w7Ozs7O047Ozs7OworQTQ3ODtZSSBTWUxMQUJMRSBZSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc5O1lJIFNZTExBQkxFIFlVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0N0E7WUkgU1lMTEFCTEUgWVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3QjtZSSBTWUxMQUJMRSBZVU87TG87MDtMOzs7OztOOzs7OzsKK0E0N0M7WUkgU1lMTEFCTEUgWVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ3RDtZSSBTWUxMQUJMRSBZT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0N0U7WUkgU1lMTEFCTEUgWU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdGO1lJIFNZTExBQkxFIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgwO1lJIFNZTExBQkxFIFlPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ4MTtZSSBTWUxMQUJMRSBZVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0ODI7WUkgU1lMTEFCTEUgWVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgzO1lJIFNZTExBQkxFIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg0O1lJIFNZTExBQkxFIFlVUDtMbzswO0w7Ozs7O047Ozs7OworQTQ4NTtZSSBTWUxMQUJMRSBZVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg2O1lJIFNZTExBQkxFIFlVUjtMbzswO0w7Ozs7O047Ozs7OworQTQ4NztZSSBTWUxMQUJMRSBZWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0ODg7WUkgU1lMTEFCTEUgWVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg5O1lJIFNZTExBQkxFIFlZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDhBO1lJIFNZTExBQkxFIFlZUDtMbzswO0w7Ozs7O047Ozs7OworQTQ4QjtZSSBTWUxMQUJMRSBZWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDhDO1lJIFNZTExBQkxFIFlZUjtMbzswO0w7Ozs7O047Ozs7OworQTQ5MDtZSSBSQURJQ0FMIFFPVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTE7WUkgUkFESUNBTCBMSTtTbzswO09OOzs7OztOOzs7OzsKK0E0OTI7WUkgUkFESUNBTCBLSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDkzO1lJIFJBRElDQUwgTllJUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTQ7WUkgUkFESUNBTCBDWVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk1O1lJIFJBRElDQUwgU1NJO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NjtZSSBSQURJQ0FMIEdHT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk3O1lJIFJBRElDQUwgR0VQO1NvOzA7T047Ozs7O047Ozs7OworQTQ5ODtZSSBSQURJQ0FMIE1JO1NvOzA7T047Ozs7O047Ozs7OworQTQ5OTtZSSBSQURJQ0FMIEhYSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlBO1lJIFJBRElDQUwgTFlSO1NvOzA7T047Ozs7O047Ozs7OworQTQ5QjtZSSBSQURJQ0FMIEJCVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlDO1lJIFJBRElDQUwgTU9QO1NvOzA7T047Ozs7O047Ozs7OworQTQ5RDtZSSBSQURJQ0FMIFlPO1NvOzA7T047Ozs7O047Ozs7OworQTQ5RTtZSSBSQURJQ0FMIFBVVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUY7WUkgUkFESUNBTCBIWFVPO1NvOzA7T047Ozs7O047Ozs7OworQTRBMDtZSSBSQURJQ0FMIFRBVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QTE7WUkgUkFESUNBTCBHQTtTbzswO09OOzs7OztOOzs7OzsKK0E0QTI7WUkgUkFESUNBTCBaVVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEEzO1lJIFJBRElDQUwgQ1lUO1NvOzA7T047Ozs7O047Ozs7OworQTRBNDtZSSBSQURJQ0FMIEREVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE1O1lJIFJBRElDQUwgQlVSO1NvOzA7T047Ozs7O047Ozs7OworQTRBNjtZSSBSQURJQ0FMIEdHVU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE3O1lJIFJBRElDQUwgTllPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QTg7WUkgUkFESUNBTCBUVTtTbzswO09OOzs7OztOOzs7OzsKK0E0QTk7WUkgUkFESUNBTCBPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUE7WUkgUkFESUNBTCBKSlVUO1NvOzA7T047Ozs7O047Ozs7OworQTRBQjtZSSBSQURJQ0FMIFpPVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUM7WUkgUkFESUNBTCBQWVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFEO1lJIFJBRElDQUwgSE1PO1NvOzA7T047Ozs7O047Ozs7OworQTRBRTtZSSBSQURJQ0FMIFlJVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUY7WUkgUkFESUNBTCBWVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEIwO1lJIFJBRElDQUwgU0hZO1NvOzA7T047Ozs7O047Ozs7OworQTRCMTtZSSBSQURJQ0FMIFZFUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QjI7WUkgUkFESUNBTCBaQTtTbzswO09OOzs7OztOOzs7OzsKK0E0QjM7WUkgUkFESUNBTCBKTztTbzswO09OOzs7OztOOzs7OzsKK0E0QjQ7WUkgUkFESUNBTCBOWlVQO1NvOzA7T047Ozs7O047Ozs7OworQTRCNTtZSSBSQURJQ0FMIEpKWTtTbzswO09OOzs7OztOOzs7OzsKK0E0QjY7WUkgUkFESUNBTCBHT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI3O1lJIFJBRElDQUwgSkpJRTtTbzswO09OOzs7OztOOzs7OzsKK0E0Qjg7WUkgUkFESUNBTCBXTztTbzswO09OOzs7OztOOzs7OzsKK0E0Qjk7WUkgUkFESUNBTCBEVTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkE7WUkgUkFESUNBTCBTSFVSO1NvOzA7T047Ozs7O047Ozs7OworQTRCQjtZSSBSQURJQ0FMIExJRTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkM7WUkgUkFESUNBTCBDWTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkQ7WUkgUkFESUNBTCBDVU9QO1NvOzA7T047Ozs7O047Ozs7OworQTRCRTtZSSBSQURJQ0FMIENJUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QkY7WUkgUkFESUNBTCBIWE9QO1NvOzA7T047Ozs7O047Ozs7OworQTRDMDtZSSBSQURJQ0FMIFNIQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMxO1lJIFJBRElDQUwgWlVSO1NvOzA7T047Ozs7O047Ozs7OworQTRDMjtZSSBSQURJQ0FMIFNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMzO1lJIFJBRElDQUwgQ0hFO1NvOzA7T047Ozs7O047Ozs7OworQTRDNDtZSSBSQURJQ0FMIFpaSUVUO1NvOzA7T047Ozs7O047Ozs7OworQTRDNTtZSSBSQURJQ0FMIE5CSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEM2O1lJIFJBRElDQUwgS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNzAwO01PRElGSUVSIExFVFRFUiBDSElORVNFIFRPTkUgWUlOIFBJTkc7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzAxO01PRElGSUVSIExFVFRFUiBDSElORVNFIFRPTkUgWUFORyBQSU5HO1NrOzA7T047Ozs7O047Ozs7OworQTcwMjtNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlJTiBTSEFORztTazswO09OOzs7OztOOzs7OzsKK0E3MDM7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZQU5HIFNIQU5HO1NrOzA7T047Ozs7O047Ozs7OworQTcwNDtNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlJTiBRVTtTazswO09OOzs7OztOOzs7OzsKK0E3MDU7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZQU5HIFFVO1NrOzA7T047Ozs7O047Ozs7OworQTcwNjtNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlJTiBSVTtTazswO09OOzs7OztOOzs7OzsKK0E3MDc7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZQU5HIFJVO1NrOzA7T047Ozs7O047Ozs7OworQTcwODtNT0RJRklFUiBMRVRURVIgRVhUUkEtSElHSCBET1RURUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzA5O01PRElGSUVSIExFVFRFUiBISUdIIERPVFRFRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEE7TU9ESUZJRVIgTEVUVEVSIE1JRCBET1RURUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzBCO01PRElGSUVSIExFVFRFUiBMT1cgRE9UVEVEIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcwQztNT0RJRklFUiBMRVRURVIgRVhUUkEtTE9XIERPVFRFRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEQ7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUhJR0ggRE9UVEVEIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEU7TU9ESUZJRVIgTEVUVEVSIEhJR0ggRE9UVEVEIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEY7TU9ESUZJRVIgTEVUVEVSIE1JRCBET1RURUQgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxMDtNT0RJRklFUiBMRVRURVIgTE9XIERPVFRFRCBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzExO01PRElGSUVSIExFVFRFUiBFWFRSQS1MT1cgRE9UVEVEIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MTI7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUhJR0ggTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxMztNT0RJRklFUiBMRVRURVIgSElHSCBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzE0O01PRElGSUVSIExFVFRFUiBNSUQgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxNTtNT0RJRklFUiBMRVRURVIgTE9XIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MTY7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUxPVyBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzE3O01PRElGSUVSIExFVFRFUiBET1QgVkVSVElDQUwgQkFSO0xtOzA7T047Ozs7O047Ozs7OworQTcxODtNT0RJRklFUiBMRVRURVIgRE9UIFNMQVNIO0xtOzA7T047Ozs7O047Ozs7OworQTcxOTtNT0RJRklFUiBMRVRURVIgRE9UIEhPUklaT05UQUwgQkFSO0xtOzA7T047Ozs7O047Ozs7OworQTcxQTtNT0RJRklFUiBMRVRURVIgTE9XRVIgUklHSFQgQ09STkVSIEFOR0xFO0xtOzA7T047Ozs7O047Ozs7OworQTcyMDtNT0RJRklFUiBMRVRURVIgU1RSRVNTIEFORCBISUdIIFRPTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzIxO01PRElGSUVSIExFVFRFUiBTVFJFU1MgQU5EIExPVyBUT05FO1NrOzA7T047Ozs7O047Ozs7OworQTgwMDtTWUxPVEkgTkFHUkkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKK0E4MDE7U1lMT1RJIE5BR1JJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODAyO1NZTE9USSBOQUdSSSBTSUdOIERWSVNWQVJBO01jOzA7TlNNOzs7OztOOzs7OzsKK0E4MDM7U1lMT1RJIE5BR1JJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODA0O1NZTE9USSBOQUdSSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworQTgwNTtTWUxPVEkgTkFHUkkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKK0E4MDY7U1lMT1RJIE5BR1JJIFNJR04gSEFTQU5UQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CitBODA3O1NZTE9USSBOQUdSSSBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKK0E4MDg7U1lMT1RJIE5BR1JJIExFVFRFUiBLSE87TG87MDtMOzs7OztOOzs7OzsKK0E4MDk7U1lMT1RJIE5BR1JJIExFVFRFUiBHTztMbzswO0w7Ozs7O047Ozs7OworQTgwQTtTWUxPVEkgTkFHUkkgTEVUVEVSIEdITztMbzswO0w7Ozs7O047Ozs7OworQTgwQjtTWUxPVEkgTkFHUkkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitBODBDO1NZTE9USSBOQUdSSSBMRVRURVIgQ087TG87MDtMOzs7OztOOzs7OzsKK0E4MEQ7U1lMT1RJIE5BR1JJIExFVFRFUiBDSE87TG87MDtMOzs7OztOOzs7OzsKK0E4MEU7U1lMT1RJIE5BR1JJIExFVFRFUiBKTztMbzswO0w7Ozs7O047Ozs7OworQTgwRjtTWUxPVEkgTkFHUkkgTEVUVEVSIEpITztMbzswO0w7Ozs7O047Ozs7OworQTgxMDtTWUxPVEkgTkFHUkkgTEVUVEVSIFRUTztMbzswO0w7Ozs7O047Ozs7OworQTgxMTtTWUxPVEkgTkFHUkkgTEVUVEVSIFRUSE87TG87MDtMOzs7OztOOzs7OzsKK0E4MTI7U1lMT1RJIE5BR1JJIExFVFRFUiBERE87TG87MDtMOzs7OztOOzs7OzsKK0E4MTM7U1lMT1RJIE5BR1JJIExFVFRFUiBEREhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODE0O1NZTE9USSBOQUdSSSBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKK0E4MTU7U1lMT1RJIE5BR1JJIExFVFRFUiBUSE87TG87MDtMOzs7OztOOzs7OzsKK0E4MTY7U1lMT1RJIE5BR1JJIExFVFRFUiBETztMbzswO0w7Ozs7O047Ozs7OworQTgxNztTWUxPVEkgTkFHUkkgTEVUVEVSIERITztMbzswO0w7Ozs7O047Ozs7OworQTgxODtTWUxPVEkgTkFHUkkgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODE5O1NZTE9USSBOQUdSSSBMRVRURVIgUE87TG87MDtMOzs7OztOOzs7OzsKK0E4MUE7U1lMT1RJIE5BR1JJIExFVFRFUiBQSE87TG87MDtMOzs7OztOOzs7OzsKK0E4MUI7U1lMT1RJIE5BR1JJIExFVFRFUiBCTztMbzswO0w7Ozs7O047Ozs7OworQTgxQztTWUxPVEkgTkFHUkkgTEVUVEVSIEJITztMbzswO0w7Ozs7O047Ozs7OworQTgxRDtTWUxPVEkgTkFHUkkgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODFFO1NZTE9USSBOQUdSSSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKK0E4MUY7U1lMT1RJIE5BR1JJIExFVFRFUiBMTztMbzswO0w7Ozs7O047Ozs7OworQTgyMDtTWUxPVEkgTkFHUkkgTEVUVEVSIFJSTztMbzswO0w7Ozs7O047Ozs7OworQTgyMTtTWUxPVEkgTkFHUkkgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODIyO1NZTE9USSBOQUdSSSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKK0E4MjM7U1lMT1RJIE5BR1JJIFZPV0VMIFNJR04gQTtNYzswO0w7Ozs7O047Ozs7OworQTgyNDtTWUxPVEkgTkFHUkkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CitBODI1O1NZTE9USSBOQUdSSSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworQTgyNjtTWUxPVEkgTkFHUkkgVk9XRUwgU0lHTiBFO01uOzA7TlNNOzs7OztOOzs7OzsKK0E4Mjc7U1lMT1RJIE5BR1JJIFZPV0VMIFNJR04gT087TWM7MDtMOzs7OztOOzs7OzsKK0E4Mjg7U1lMT1RJIE5BR1JJIFBPRVRSWSBNQVJLLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CitBODI5O1NZTE9USSBOQUdSSSBQT0VUUlkgTUFSSy0yO1NvOzA7T047Ozs7O047Ozs7OworQTgyQTtTWUxPVEkgTkFHUkkgUE9FVFJZIE1BUkstMztTbzswO09OOzs7OztOOzs7OzsKK0E4MkI7U1lMT1RJIE5BR1JJIFBPRVRSWSBNQVJLLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBODQwO1BIQUdTLVBBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworQTg0MTtQSEFHUy1QQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQyO1BIQUdTLVBBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworQTg0MztQSEFHUy1QQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQ0O1BIQUdTLVBBIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworQTg0NTtQSEFHUy1QQSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQ2O1BIQUdTLVBBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworQTg0NztQSEFHUy1QQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQ4O1BIQUdTLVBBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworQTg0OTtQSEFHUy1QQSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODRBO1BIQUdTLVBBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworQTg0QjtQSEFHUy1QQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKK0E4NEM7UEhBR1MtUEEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODREO1BIQUdTLVBBIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NEU7UEhBR1MtUEEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODRGO1BIQUdTLVBBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworQTg1MDtQSEFHUy1QQSBMRVRURVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODUxO1BIQUdTLVBBIExFVFRFUiBUU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODUyO1BIQUdTLVBBIExFVFRFUiBEWkE7TG87MDtMOzs7OztOOzs7OzsKK0E4NTM7UEhBR1MtUEEgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODU0O1BIQUdTLVBBIExFVFRFUiBaSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NTU7UEhBR1MtUEEgTEVUVEVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODU2O1BIQUdTLVBBIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODU3O1BIQUdTLVBBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworQTg1ODtQSEFHUy1QQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKK0E4NTk7UEhBR1MtUEEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODVBO1BIQUdTLVBBIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NUI7UEhBR1MtUEEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODVDO1BIQUdTLVBBIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworQTg1RDtQSEFHUy1QQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworQTg1RTtQSEFHUy1QQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworQTg1RjtQSEFHUy1QQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworQTg2MDtQSEFHUy1QQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworQTg2MTtQSEFHUy1QQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworQTg2MjtQSEFHUy1QQSBMRVRURVIgUUE7TG87MDtMOzs7OztOOzs7OzsKK0E4NjM7UEhBR1MtUEEgTEVUVEVSIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODY0O1BIQUdTLVBBIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworQTg2NTtQSEFHUy1QQSBMRVRURVIgR0dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODY2O1BIQUdTLVBBIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworQTg2NztQSEFHUy1QQSBTVUJKT0lORUQgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODY4O1BIQUdTLVBBIFNVQkpPSU5FRCBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKK0E4Njk7UEhBR1MtUEEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworQTg2QTtQSEFHUy1QQSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworQTg2QjtQSEFHUy1QQSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODZDO1BIQUdTLVBBIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKK0E4NkQ7UEhBR1MtUEEgTEVUVEVSIEFMVEVSTkFURSBZQTtMbzswO0w7Ozs7O047Ozs7OworQTg2RTtQSEFHUy1QQSBMRVRURVIgVk9JQ0VMRVNTIFNIQTtMbzswO0w7Ozs7O047Ozs7OworQTg2RjtQSEFHUy1QQSBMRVRURVIgVk9JQ0VEIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODcwO1BIQUdTLVBBIExFVFRFUiBBU1BJUkFURUQgRkE7TG87MDtMOzs7OztOOzs7OzsKK0E4NzE7UEhBR1MtUEEgU1VCSk9JTkVEIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworQTg3MjtQSEFHUy1QQSBTVVBFUkZJWEVEIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworQTg3MztQSEFHUy1QQSBMRVRURVIgQ0FORFJBQklORFU7TG87MDtMOzs7OztOOzs7OzsKK0E4NzQ7UEhBR1MtUEEgU0lOR0xFIEhFQUQgTUFSSztQbzswO09OOzs7OztOOzs7OzsKK0E4NzU7UEhBR1MtUEEgRE9VQkxFIEhFQUQgTUFSSztQbzswO09OOzs7OztOOzs7OzsKK0E4NzY7UEhBR1MtUEEgTUFSSyBTSEFEO1BvOzA7T047Ozs7O047Ozs7OworQTg3NztQSEFHUy1QQSBNQVJLIERPVUJMRSBTSEFEO1BvOzA7T047Ozs7O047Ozs7OworQUMwMDs8SGFuZ3VsIFN5bGxhYmxlLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKK0Q3QTM7PEhhbmd1bCBTeWxsYWJsZSwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKK0Q4MDA7PE5vbiBQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjdGOzxOb24gUHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjgwOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQkZGOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RDMDA7PExvdyBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREZGRjs8TG93IFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0UwMDA7PFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKK0Y4RkY7PFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworRjkwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMDtMbzswO0w7OEM0ODs7OztOOzs7OzsKK0Y5MDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDE7TG87MDtMOzY2RjQ7Ozs7Tjs7Ozs7CitGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAyO0xvOzA7TDs4RUNBOzs7O047Ozs7OworRjkwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMztMbzswO0w7OENDODs7OztOOzs7OzsKK0Y5MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDQ7TG87MDtMOzZFRDE7Ozs7Tjs7Ozs7CitGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA1O0xvOzA7TDs0RTMyOzs7O047Ozs7OworRjkwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNjtMbzswO0w7NTNFNTs7OztOOzs7OzsKK0Y5MDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDc7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGOTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA4O0xvOzA7TDs5RjlDOzs7O047Ozs7OworRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwOTtMbzswO0w7NTk1MTs7OztOOzs7OzsKK0Y5MEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEE7TG87MDtMOzkxRDE7Ozs7Tjs7Ozs7CitGOTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBCO0xvOzA7TDs1NTg3Ozs7O047Ozs7OworRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQztMbzswO0w7NTk0ODs7OztOOzs7OzsKK0Y5MEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEQ7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CitGOTBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBFO0xvOzA7TDs3NjY5Ozs7O047Ozs7OworRjkwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRjtMbzswO0w7N0Y4NTs7OztOOzs7OzsKK0Y5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTA7TG87MDtMOzg2M0Y7Ozs7Tjs7Ozs7CitGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTExO0xvOzA7TDs4N0JBOzs7O047Ozs7OworRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMjtMbzswO0w7ODhGODs7OztOOzs7OzsKK0Y5MTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTM7TG87MDtMOzkwOEY7Ozs7Tjs7Ozs7CitGOTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE0O0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNTtMbzswO0w7NkQxQjs7OztOOzs7OzsKK0Y5MTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTY7TG87MDtMOzcwRDk7Ozs7Tjs7Ozs7CitGOTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE3O0xvOzA7TDs3M0RFOzs7O047Ozs7OworRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxODtMbzswO0w7ODQzRDs7OztOOzs7OzsKK0Y5MTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTk7TG87MDtMOzkxNkE7Ozs7Tjs7Ozs7CitGOTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFBO0xvOzA7TDs5OUYxOzs7O047Ozs7OworRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQjtMbzswO0w7NEU4Mjs7OztOOzs7OzsKK0Y5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUM7TG87MDtMOzUzNzU7Ozs7Tjs7Ozs7CitGOTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFEO0xvOzA7TDs2QjA0Ozs7O047Ozs7OworRjkxRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRTtMbzswO0w7NzIxQjs7OztOOzs7OzsKK0Y5MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUY7TG87MDtMOzg2MkQ7Ozs7Tjs7Ozs7CitGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIwO0xvOzA7TDs5RTFFOzs7O047Ozs7OworRjkyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMTtMbzswO0w7NUQ1MDs7OztOOzs7OzsKK0Y5MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjI7TG87MDtMOzZGRUI7Ozs7Tjs7Ozs7CitGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIzO0xvOzA7TDs4NUNEOzs7O047Ozs7OworRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNDtMbzswO0w7ODk2NDs7OztOOzs7OzsKK0Y5MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjU7TG87MDtMOzYyQzk7Ozs7Tjs7Ozs7CitGOTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI2O0xvOzA7TDs4MUQ4Ozs7O047Ozs7OworRjkyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNztMbzswO0w7ODgxRjs7OztOOzs7OzsKK0Y5Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjg7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CitGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI5O0xvOzA7TDs2NzE3Ozs7O047Ozs7OworRjkyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQTtMbzswO0w7NkQ2QTs7OztOOzs7OzsKK0Y5MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkI7TG87MDtMOzcyRkM7Ozs7Tjs7Ozs7CitGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJDO0xvOzA7TDs5MENFOzs7O047Ozs7OworRjkyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRDtMbzswO0w7NEY4Njs7OztOOzs7OzsKK0Y5MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkU7TG87MDtMOzUxQjc7Ozs7Tjs7Ozs7CitGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJGO0xvOzA7TDs1MkRFOzs7O047Ozs7OworRjkzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMDtMbzswO0w7NjRDNDs7OztOOzs7OzsKK0Y5MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzE7TG87MDtMOzZBRDM7Ozs7Tjs7Ozs7CitGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMyO0xvOzA7TDs3MjEwOzs7O047Ozs7OworRjkzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMztMbzswO0w7NzZFNzs7OztOOzs7OzsKK0Y5MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzQ7TG87MDtMOzgwMDE7Ozs7Tjs7Ozs7CitGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM1O0xvOzA7TDs4NjA2Ozs7O047Ozs7OworRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNjtMbzswO0w7ODY1Qzs7OztOOzs7OzsKK0Y5Mzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzc7TG87MDtMOzhERUY7Ozs7Tjs7Ozs7CitGOTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM4O0xvOzA7TDs5NzMyOzs7O047Ozs7OworRjkzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzOTtMbzswO0w7OUI2Rjs7OztOOzs7OzsKK0Y5M0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0E7TG87MDtMOzlERkE7Ozs7Tjs7Ozs7CitGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNCO0xvOzA7TDs3ODhDOzs7O047Ozs7OworRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQztMbzswO0w7Nzk3Rjs7OztOOzs7OzsKK0Y5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0Q7TG87MDtMOzdEQTA7Ozs7Tjs7Ozs7CitGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNFO0xvOzA7TDs4M0M5Ozs7O047Ozs7OworRjkzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRjtMbzswO0w7OTMwNDs7OztOOzs7OzsKK0Y5NDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDA7TG87MDtMOzlFN0Y7Ozs7Tjs7Ozs7CitGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQxO0xvOzA7TDs4QUQ2Ozs7O047Ozs7OworRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MjtMbzswO0w7NThERjs7OztOOzs7OzsKK0Y5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDM7TG87MDtMOzVGMDQ7Ozs7Tjs7Ozs7CitGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ0O0xvOzA7TDs3QzYwOzs7O047Ozs7OworRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NTtMbzswO0w7ODA3RTs7OztOOzs7OzsKK0Y5NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDY7TG87MDtMOzcyNjI7Ozs7Tjs7Ozs7CitGOTQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ3O0xvOzA7TDs3OENBOzs7O047Ozs7OworRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0ODtMbzswO0w7OENDMjs7OztOOzs7OzsKK0Y5NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDk7TG87MDtMOzk2Rjc7Ozs7Tjs7Ozs7CitGOTRBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRBO0xvOzA7TDs1OEQ4Ozs7O047Ozs7OworRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QjtMbzswO0w7NUM2Mjs7OztOOzs7OzsKK0Y5NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEM7TG87MDtMOzZBMTM7Ozs7Tjs7Ozs7CitGOTREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTREO0xvOzA7TDs2RERBOzs7O047Ozs7OworRjk0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RTtMbzswO0w7NkYwRjs7OztOOzs7OzsKK0Y5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEY7TG87MDtMOzdEMkY7Ozs7Tjs7Ozs7CitGOTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUwO0xvOzA7TDs3RTM3Ozs7O047Ozs7OworRjk1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MTtMbzswO0w7OTY0Qjs7OztOOzs7OzsKK0Y5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTI7TG87MDtMOzUyRDI7Ozs7Tjs7Ozs7CitGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUzO0xvOzA7TDs4MDhCOzs7O047Ozs7OworRjk1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NDtMbzswO0w7NTFEQzs7OztOOzs7OzsKK0Y5NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTU7TG87MDtMOzUxQ0M7Ozs7Tjs7Ozs7CitGOTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU2O0xvOzA7TDs3QTFDOzs7O047Ozs7OworRjk1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NztMbzswO0w7N0RCRTs7OztOOzs7OzsKK0Y5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTg7TG87MDtMOzgzRjE7Ozs7Tjs7Ozs7CitGOTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU5O0xvOzA7TDs5Njc1Ozs7O047Ozs7OworRjk1QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QTtMbzswO0w7OEI4MDs7OztOOzs7OzsKK0Y5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUI7TG87MDtMOzYyQ0Y7Ozs7Tjs7Ozs7CitGOTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVDO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjk1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RDtMbzswO0w7OEFGRTs7OztOOzs7OzsKK0Y5NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUU7TG87MDtMOzRFMzk7Ozs7Tjs7Ozs7CitGOTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVGO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjk2MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MDtMbzswO0w7NjAxMjs7OztOOzs7OzsKK0Y5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjE7TG87MDtMOzczODc7Ozs7Tjs7Ozs7CitGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYyO0xvOzA7TDs3NTcwOzs7O047Ozs7OworRjk2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MztMbzswO0w7NTMxNzs7OztOOzs7OzsKK0Y5NjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjQ7TG87MDtMOzc4RkI7Ozs7Tjs7Ozs7CitGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY1O0xvOzA7TDs0RkJGOzs7O047Ozs7OworRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NjtMbzswO0w7NUZBOTs7OztOOzs7OzsKK0Y5Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njc7TG87MDtMOzRFMEQ7Ozs7Tjs7Ozs7CitGOTY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY4O0xvOzA7TDs2Q0NDOzs7O047Ozs7OworRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2OTtMbzswO0w7NjU3ODs7OztOOzs7OzsKK0Y5NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkE7TG87MDtMOzdEMjI7Ozs7Tjs7Ozs7CitGOTZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZCO0xvOzA7TDs1M0MzOzs7O047Ozs7OworRjk2QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QztMbzswO0w7NTg1RTs7OztOOzs7OzsKK0Y5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkQ7TG87MDtMOzc3MDE7Ozs7Tjs7Ozs7CitGOTZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZFO0xvOzA7TDs4NDQ5Ozs7O047Ozs7OworRjk2RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RjtMbzswO0w7OEFBQTs7OztOOzs7OzsKK0Y5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzA7TG87MDtMOzZCQkE7Ozs7Tjs7Ozs7CitGOTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcxO0xvOzA7TDs4RkIwOzs7O047Ozs7OworRjk3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MjtMbzswO0w7NkM4ODs7OztOOzs7OzsKK0Y5NzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzM7TG87MDtMOzYyRkU7Ozs7Tjs7Ozs7CitGOTc0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc0O0xvOzA7TDs4MkU1Ozs7O047Ozs7OworRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NTtMbzswO0w7NjNBMDs7OztOOzs7OzsKK0Y5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzY7TG87MDtMOzc1NjU7Ozs7Tjs7Ozs7CitGOTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc3O0xvOzA7TDs0RUFFOzs7O047Ozs7OworRjk3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3ODtMbzswO0w7NTE2OTs7OztOOzs7OzsKK0Y5Nzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzk7TG87MDtMOzUxQzk7Ozs7Tjs7Ozs7CitGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdBO0xvOzA7TDs2ODgxOzs7O047Ozs7OworRjk3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QjtMbzswO0w7N0NFNzs7OztOOzs7OzsKK0Y5N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0M7TG87MDtMOzgyNkY7Ozs7Tjs7Ozs7CitGOTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdEO0xvOzA7TDs4QUQyOzs7O047Ozs7OworRjk3RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RTtMbzswO0w7OTFDRjs7OztOOzs7OzsKK0Y5N0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0Y7TG87MDtMOzUyRjU7Ozs7Tjs7Ozs7CitGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgwO0xvOzA7TDs1NDQyOzs7O047Ozs7OworRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MTtMbzswO0w7NTk3Mzs7OztOOzs7OzsKK0Y5ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODI7TG87MDtMOzVFRUM7Ozs7Tjs7Ozs7CitGOTgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgzO0xvOzA7TDs2NUM1Ozs7O047Ozs7OworRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NDtMbzswO0w7NkZGRTs7OztOOzs7OzsKK0Y5ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODU7TG87MDtMOzc5MkE7Ozs7Tjs7Ozs7CitGOTg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg2O0xvOzA7TDs5NUFEOzs7O047Ozs7OworRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NztMbzswO0w7OUE2QTs7OztOOzs7OzsKK0Y5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODg7TG87MDtMOzlFOTc7Ozs7Tjs7Ozs7CitGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg5O0xvOzA7TDs5RUNFOzs7O047Ozs7OworRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QTtMbzswO0w7NTI5Qjs7OztOOzs7OzsKK0Y5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEI7TG87MDtMOzY2QzY7Ozs7Tjs7Ozs7CitGOThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThDO0xvOzA7TDs2Qjc3Ozs7O047Ozs7OworRjk4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RDtMbzswO0w7OEY2Mjs7OztOOzs7OzsKK0Y5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEU7TG87MDtMOzVFNzQ7Ozs7Tjs7Ozs7CitGOThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThGO0xvOzA7TDs2MTkwOzs7O047Ozs7OworRjk5MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MDtMbzswO0w7NjIwMDs7OztOOzs7OzsKK0Y5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTE7TG87MDtMOzY0OUE7Ozs7Tjs7Ozs7CitGOTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkyO0xvOzA7TDs2RjIzOzs7O047Ozs7OworRjk5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MztMbzswO0w7NzE0OTs7OztOOzs7OzsKK0Y5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTQ7TG87MDtMOzc0ODk7Ozs7Tjs7Ozs7CitGOTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk1O0xvOzA7TDs3OUNBOzs7O047Ozs7OworRjk5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NjtMbzswO0w7N0RGNDs7OztOOzs7OzsKK0Y5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTc7TG87MDtMOzgwNkY7Ozs7Tjs7Ozs7CitGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk4O0xvOzA7TDs4RjI2Ozs7O047Ozs7OworRjk5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5OTtMbzswO0w7ODRFRTs7OztOOzs7OzsKK0Y5OUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUE7TG87MDtMOzkwMjM7Ozs7Tjs7Ozs7CitGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlCO0xvOzA7TDs5MzRBOzs7O047Ozs7OworRjk5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QztMbzswO0w7NTIxNzs7OztOOzs7OzsKK0Y5OUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUQ7TG87MDtMOzUyQTM7Ozs7Tjs7Ozs7CitGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlFO0xvOzA7TDs1NEJEOzs7O047Ozs7OworRjk5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RjtMbzswO0w7NzBDODs7OztOOzs7OzsKK0Y5QTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTA7TG87MDtMOzg4QzI7Ozs7Tjs7Ozs7CitGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUExO0xvOzA7TDs4QUFBOzs7O047Ozs7OworRjlBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMjtMbzswO0w7NUVDOTs7OztOOzs7OzsKK0Y5QTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTM7TG87MDtMOzVGRjU7Ozs7Tjs7Ozs7CitGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE0O0xvOzA7TDs2MzdCOzs7O047Ozs7OworRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNTtMbzswO0w7NkJBRTs7OztOOzs7OzsKK0Y5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTY7TG87MDtMOzdDM0U7Ozs7Tjs7Ozs7CitGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE3O0xvOzA7TDs3Mzc1Ozs7O047Ozs7OworRjlBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBODtMbzswO0w7NEVFNDs7OztOOzs7OzsKK0Y5QTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTk7TG87MDtMOzU2Rjk7Ozs7Tjs7Ozs7CitGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFBO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjlBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQjtMbzswO0w7NURCQTs7OztOOzs7OzsKK0Y5QUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUM7TG87MDtMOzYwMUM7Ozs7Tjs7Ozs7CitGOUFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFEO0xvOzA7TDs3M0IyOzs7O047Ozs7OworRjlBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRTtMbzswO0w7NzQ2OTs7OztOOzs7OzsKK0Y5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUY7TG87MDtMOzdGOUE7Ozs7Tjs7Ozs7CitGOUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIwO0xvOzA7TDs4MDQ2Ozs7O047Ozs7OworRjlCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMTtMbzswO0w7OTIzNDs7OztOOzs7OzsKK0Y5QjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjI7TG87MDtMOzk2RjY7Ozs7Tjs7Ozs7CitGOUIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIzO0xvOzA7TDs5NzQ4Ozs7O047Ozs7OworRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNDtMbzswO0w7OTgxODs7OztOOzs7OzsKK0Y5QjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjU7TG87MDtMOzRGOEI7Ozs7Tjs7Ozs7CitGOUI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI2O0xvOzA7TDs3OUFFOzs7O047Ozs7OworRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNztMbzswO0w7OTFCNDs7OztOOzs7OzsKK0Y5Qjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjg7TG87MDtMOzk2Qjg7Ozs7Tjs7Ozs7CitGOUI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI5O0xvOzA7TDs2MEUxOzs7O047Ozs7OworRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQTtMbzswO0w7NEU4Njs7OztOOzs7OzsKK0Y5QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkI7TG87MDtMOzUwREE7Ozs7Tjs7Ozs7CitGOUJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJDO0xvOzA7TDs1QkVFOzs7O047Ozs7OworRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRDtMbzswO0w7NUMzRjs7OztOOzs7OzsKK0Y5QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkU7TG87MDtMOzY1OTk7Ozs7Tjs7Ozs7CitGOUJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJGO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMDtMbzswO0w7NzFDRTs7OztOOzs7OzsKK0Y5QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzE7TG87MDtMOzc2NDI7Ozs7Tjs7Ozs7CitGOUMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMyO0xvOzA7TDs4NEZDOzs7O047Ozs7OworRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMztMbzswO0w7OTA3Qzs7OztOOzs7OzsKK0Y5QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzQ7TG87MDtMOzlGOEQ7Ozs7Tjs7Ozs7CitGOUM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM1O0xvOzA7TDs2Njg4Ozs7O047Ozs7OworRjlDNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNjtMbzswO0w7OTYyRTs7OztOOzs7OzsKK0Y5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzc7TG87MDtMOzUyODk7Ozs7Tjs7Ozs7CitGOUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM4O0xvOzA7TDs2NzdCOzs7O047Ozs7OworRjlDOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDOTtMbzswO0w7NjdGMzs7OztOOzs7OzsKK0Y5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0E7TG87MDtMOzZENDE7Ozs7Tjs7Ozs7CitGOUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNCO0xvOzA7TDs2RTlDOzs7O047Ozs7OworRjlDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQztMbzswO0w7NzQwOTs7OztOOzs7OzsKK0Y5Q0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0Q7TG87MDtMOzc1NTk7Ozs7Tjs7Ozs7CitGOUNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNFO0xvOzA7TDs3ODZCOzs7O047Ozs7OworRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRjtMbzswO0w7N0QxMDs7OztOOzs7OzsKK0Y5RDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDA7TG87MDtMOzk4NUU7Ozs7Tjs7Ozs7CitGOUQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQxO0xvOzA7TDs1MTZEOzs7O047Ozs7OworRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMjtMbzswO0w7NjIyRTs7OztOOzs7OzsKK0Y5RDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDM7TG87MDtMOzk2Nzg7Ozs7Tjs7Ozs7CitGOUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ0O0xvOzA7TDs1MDJCOzs7O047Ozs7OworRjlENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENTtMbzswO0w7NUQxOTs7OztOOzs7OzsKK0Y5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDY7TG87MDtMOzZERUE7Ozs7Tjs7Ozs7CitGOUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ3O0xvOzA7TDs4RjJBOzs7O047Ozs7OworRjlEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEODtMbzswO0w7NUY4Qjs7OztOOzs7OzsKK0Y5RDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDk7TG87MDtMOzYxNDQ7Ozs7Tjs7Ozs7CitGOURBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURBO0xvOzA7TDs2ODE3Ozs7O047Ozs7OworRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQjtMbzswO0w7NzM4Nzs7OztOOzs7OzsKK0Y5REM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REM7TG87MDtMOzk2ODY7Ozs7Tjs7Ozs7CitGOUREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUREO0xvOzA7TDs1MjI5Ozs7O047Ozs7OworRjlERTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERTtMbzswO0w7NTQwRjs7OztOOzs7OzsKK0Y5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REY7TG87MDtMOzVDNjU7Ozs7Tjs7Ozs7CitGOUUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUwO0xvOzA7TDs2NjEzOzs7O047Ozs7OworRjlFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMTtMbzswO0w7Njc0RTs7OztOOzs7OzsKK0Y5RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTI7TG87MDtMOzY4QTg7Ozs7Tjs7Ozs7CitGOUUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUzO0xvOzA7TDs2Q0U1Ozs7O047Ozs7OworRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNDtMbzswO0w7NzQwNjs7OztOOzs7OzsKK0Y5RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTU7TG87MDtMOzc1RTI7Ozs7Tjs7Ozs7CitGOUU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU2O0xvOzA7TDs3Rjc5Ozs7O047Ozs7OworRjlFNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNztMbzswO0w7ODhDRjs7OztOOzs7OzsKK0Y5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTg7TG87MDtMOzg4RTE7Ozs7Tjs7Ozs7CitGOUU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU5O0xvOzA7TDs5MUNDOzs7O047Ozs7OworRjlFQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQTtMbzswO0w7OTZFMjs7OztOOzs7OzsKK0Y5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUI7TG87MDtMOzUzM0Y7Ozs7Tjs7Ozs7CitGOUVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVDO0xvOzA7TDs2RUJBOzs7O047Ozs7OworRjlFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRDtMbzswO0w7NTQxRDs7OztOOzs7OzsKK0Y5RUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUU7TG87MDtMOzcxRDA7Ozs7Tjs7Ozs7CitGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVGO0xvOzA7TDs3NDk4Ozs7O047Ozs7OworRjlGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMDtMbzswO0w7ODVGQTs7OztOOzs7OzsKK0Y5RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjE7TG87MDtMOzk2QTM7Ozs7Tjs7Ozs7CitGOUYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYyO0xvOzA7TDs5QzU3Ozs7O047Ozs7OworRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMztMbzswO0w7OUU5Rjs7OztOOzs7OzsKK0Y5RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjQ7TG87MDtMOzY3OTc7Ozs7Tjs7Ozs7CitGOUY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY1O0xvOzA7TDs2RENCOzs7O047Ozs7OworRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNjtMbzswO0w7ODFFODs7OztOOzs7OzsKK0Y5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjc7TG87MDtMOzdBQ0I7Ozs7Tjs7Ozs7CitGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY4O0xvOzA7TDs3QjIwOzs7O047Ozs7OworRjlGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGOTtMbzswO0w7N0M5Mjs7OztOOzs7OzsKK0Y5RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkE7TG87MDtMOzcyQzA7Ozs7Tjs7Ozs7CitGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZCO0xvOzA7TDs3MDk5Ozs7O047Ozs7OworRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQztMbzswO0w7OEI1ODs7OztOOzs7OzsKK0Y5RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkQ7TG87MDtMOzRFQzA7Ozs7Tjs7Ozs7CitGOUZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZFO0xvOzA7TDs4MzM2Ozs7O047Ozs7OworRjlGRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRjtMbzswO0w7NTIzQTs7OztOOzs7OzsKK0ZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CitGQTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAxO0xvOzA7TDs1RUE2Ozs7O047Ozs7OworRkEwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMjtMbzswO0w7NjJEMzs7OztOOzs7OzsKK0ZBMDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDM7TG87MDtMOzdDRDY7Ozs7Tjs7Ozs7CitGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA0O0xvOzA7TDs1Qjg1Ozs7O047Ozs7OworRkEwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNTtMbzswO0w7NkQxRTs7OztOOzs7OzsKK0ZBMDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDY7TG87MDtMOzY2QjQ7Ozs7Tjs7Ozs7CitGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA3O0xvOzA7TDs4RjNCOzs7O047Ozs7OworRkEwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwODtMbzswO0w7ODg0Qzs7OztOOzs7OzsKK0ZBMDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDk7TG87MDtMOzk2NEQ7Ozs7Tjs7Ozs7CitGQTBBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBBO0xvOzA7TDs4OThCOzs7O047Ozs7OworRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQjtMbzswO0w7NUVEMzs7OztOOzs7OzsKK0ZBMEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEM7TG87MDtMOzUxNDA7Ozs7Tjs7Ozs7CitGQTBEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBEO0xvOzA7TDs1NUMwOzs7O047Ozs7OworRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRTtMbzswO0w7Ozs7O047Ozs7OworRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRjtMbzswO0w7Ozs7O047Ozs7OworRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMDtMbzswO0w7NTg1QTs7OztOOzs7OzsKK0ZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTI7TG87MDtMOzY2NzQ7Ozs7Tjs7Ozs7CitGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE1O0xvOzA7TDs1MURFOzs7O047Ozs7OworRkExNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNjtMbzswO0w7NzMyQTs7OztOOzs7OzsKK0ZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTc7TG87MDtMOzc2Q0E7Ozs7Tjs7Ozs7CitGQTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE4O0xvOzA7TDs3OTNDOzs7O047Ozs7OworRkExOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExOTtMbzswO0w7Nzk1RTs7OztOOzs7OzsKK0ZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUE7TG87MDtMOzc5NjU7Ozs7Tjs7Ozs7CitGQTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFCO0xvOzA7TDs3OThGOzs7O047Ozs7OworRkExQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQztMbzswO0w7OTc1Njs7OztOOzs7OzsKK0ZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUQ7TG87MDtMOzdDQkU7Ozs7Tjs7Ozs7CitGQTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFO0xvOzA7TDs3RkJEOzs7O047Ozs7OworRkExRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRjtMbzswO0w7Ozs7O047Oyo7OzsKK0ZBMjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjA7TG87MDtMOzg2MTI7Ozs7Tjs7Ozs7CitGQTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIxO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIyO0xvOzA7TDs4QUY4Ozs7O047Ozs7OworRkEyMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMztMbzswO0w7Ozs7O047Oyo7OzsKK0ZBMjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjQ7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjU7TG87MDtMOzkwMzg7Ozs7Tjs7Ozs7CitGQTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI2O0xvOzA7TDs5MEZEOzs7O047Ozs7OworRkEyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNztMbzswO0w7Ozs7O047Ozs7OworRkEyODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyODtMbzswO0w7Ozs7O047Ozs7OworRkEyOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyOTtMbzswO0w7Ozs7O047Ozs7OworRkEyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQTtMbzswO0w7OThFRjs7OztOOzs7OzsKK0ZBMkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkI7TG87MDtMOzk4RkM7Ozs7Tjs7Ozs7CitGQTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJDO0xvOzA7TDs5OTI4Ozs7O047Ozs7OworRkEyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyRDtMbzswO0w7OURCNDs7OztOOzs7OzsKK0ZBMzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzA7TG87MDtMOzRGQUU7Ozs7Tjs7Ozs7CitGQTMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTMxO0xvOzA7TDs1MEU3Ozs7O047Ozs7OworRkEzMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzMjtMbzswO0w7NTE0RDs7OztOOzs7OzsKK0ZBMzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzM7TG87MDtMOzUyQzk7Ozs7Tjs7Ozs7CitGQTM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM0O0xvOzA7TDs1MkU0Ozs7O047Ozs7OworRkEzNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzNTtMbzswO0w7NTM1MTs7OztOOzs7OzsKK0ZBMzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzY7TG87MDtMOzU1OUQ7Ozs7Tjs7Ozs7CitGQTM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM3O0xvOzA7TDs1NjA2Ozs7O047Ozs7OworRkEzODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzODtMbzswO0w7NTY2ODs7OztOOzs7OzsKK0ZBMzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzk7TG87MDtMOzU4NDA7Ozs7Tjs7Ozs7CitGQTNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNBO0xvOzA7TDs1OEE4Ozs7O047Ozs7OworRkEzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzQjtMbzswO0w7NUM2NDs7OztOOzs7OzsKK0ZBM0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0M7TG87MDtMOzVDNkU7Ozs7Tjs7Ozs7CitGQTNEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNEO0xvOzA7TDs2MDk0Ozs7O047Ozs7OworRkEzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzRTtMbzswO0w7NjE2ODs7OztOOzs7OzsKK0ZBM0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0Y7TG87MDtMOzYxOEU7Ozs7Tjs7Ozs7CitGQTQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQwO0xvOzA7TDs2MUYyOzs7O047Ozs7OworRkE0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0MTtMbzswO0w7NjU0Rjs7OztOOzs7OzsKK0ZBNDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDI7TG87MDtMOzY1RTI7Ozs7Tjs7Ozs7CitGQTQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQzO0xvOzA7TDs2NjkxOzs7O047Ozs7OworRkE0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0NDtMbzswO0w7Njg4NTs7OztOOzs7OzsKK0ZBNDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDU7TG87MDtMOzZENzc7Ozs7Tjs7Ozs7CitGQTQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ2O0xvOzA7TDs2RTFBOzs7O047Ozs7OworRkE0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0NztMbzswO0w7NkYyMjs7OztOOzs7OzsKK0ZBNDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDg7TG87MDtMOzcxNkU7Ozs7Tjs7Ozs7CitGQTQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ5O0xvOzA7TDs3MjJCOzs7O047Ozs7OworRkE0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0QTtMbzswO0w7NzQyMjs7OztOOzs7OzsKK0ZBNEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEI7TG87MDtMOzc4OTE7Ozs7Tjs7Ozs7CitGQTRDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTRDO0xvOzA7TDs3OTNFOzs7O047Ozs7OworRkE0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0RDtMbzswO0w7Nzk0OTs7OztOOzs7OzsKK0ZBNEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEU7TG87MDtMOzc5NDg7Ozs7Tjs7Ozs7CitGQTRGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTRGO0xvOzA7TDs3OTUwOzs7O047Ozs7OworRkE1MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1MDtMbzswO0w7Nzk1Njs7OztOOzs7OzsKK0ZBNTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTE7TG87MDtMOzc5NUQ7Ozs7Tjs7Ozs7CitGQTUyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTUyO0xvOzA7TDs3OThEOzs7O047Ozs7OworRkE1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1MztMbzswO0w7Nzk4RTs7OztOOzs7OzsKK0ZBNTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTQ7TG87MDtMOzdBNDA7Ozs7Tjs7Ozs7CitGQTU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU1O0xvOzA7TDs3QTgxOzs7O047Ozs7OworRkE1NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1NjtMbzswO0w7N0JDMDs7OztOOzs7OzsKK0ZBNTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTc7TG87MDtMOzdERjQ7Ozs7Tjs7Ozs7CitGQTU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU4O0xvOzA7TDs3RTA5Ozs7O047Ozs7OworRkE1OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1OTtMbzswO0w7N0U0MTs7OztOOzs7OzsKK0ZBNUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUE7TG87MDtMOzdGNzI7Ozs7Tjs7Ozs7CitGQTVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVCO0xvOzA7TDs4MDA1Ozs7O047Ozs7OworRkE1QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1QztMbzswO0w7ODFFRDs7OztOOzs7OzsKK0ZBNUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUQ7TG87MDtMOzgyNzk7Ozs7Tjs7Ozs7CitGQTVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVFO0xvOzA7TDs4Mjc5Ozs7O047Ozs7OworRkE1RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1RjtMbzswO0w7ODQ1Nzs7OztOOzs7OzsKK0ZBNjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjA7TG87MDtMOzg5MTA7Ozs7Tjs7Ozs7CitGQTYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTYxO0xvOzA7TDs4OTk2Ozs7O047Ozs7OworRkE2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2MjtMbzswO0w7OEIwMTs7OztOOzs7OzsKK0ZBNjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjM7TG87MDtMOzhCMzk7Ozs7Tjs7Ozs7CitGQTY0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY0O0xvOzA7TDs4Q0QzOzs7O047Ozs7OworRkE2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2NTtMbzswO0w7OEQwODs7OztOOzs7OzsKK0ZBNjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjY7TG87MDtMOzhGQjY7Ozs7Tjs7Ozs7CitGQTY3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY3O0xvOzA7TDs5MDM4Ozs7O047Ozs7OworRkE2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2ODtMbzswO0w7OTZFMzs7OztOOzs7OzsKK0ZBNjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjk7TG87MDtMOzk3RkY7Ozs7Tjs7Ozs7CitGQTZBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTZBO0xvOzA7TDs5ODNCOzs7O047Ozs7OworRkE3MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3MDtMbzswO0w7NEUyNjs7OztOOzs7OzsKK0ZBNzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzE7TG87MDtMOzUxQjU7Ozs7Tjs7Ozs7CitGQTcyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTcyO0xvOzA7TDs1MTY4Ozs7O047Ozs7OworRkE3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3MztMbzswO0w7NEY4MDs7OztOOzs7OzsKK0ZBNzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzQ7TG87MDtMOzUxNDU7Ozs7Tjs7Ozs7CitGQTc1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTc1O0xvOzA7TDs1MTgwOzs7O047Ozs7OworRkE3NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3NjtMbzswO0w7NTJDNzs7OztOOzs7OzsKK0ZBNzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzc7TG87MDtMOzUyRkE7Ozs7Tjs7Ozs7CitGQTc4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTc4O0xvOzA7TDs1NTlEOzs7O047Ozs7OworRkE3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3OTtMbzswO0w7NTU1NTs7OztOOzs7OzsKK0ZBN0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBN0E7TG87MDtMOzU1OTk7Ozs7Tjs7Ozs7CitGQTdCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTdCO0xvOzA7TDs1NUUyOzs7O047Ozs7OworRkE3QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3QztMbzswO0w7NTg1QTs7OztOOzs7OzsKK0ZBN0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBN0Q7TG87MDtMOzU4QjM7Ozs7Tjs7Ozs7CitGQTdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTdFO0xvOzA7TDs1OTQ0Ozs7O047Ozs7OworRkE3RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3RjtMbzswO0w7NTk1NDs7OztOOzs7OzsKK0ZBODA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODA7TG87MDtMOzVBNjI7Ozs7Tjs7Ozs7CitGQTgxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTgxO0xvOzA7TDs1QjI4Ozs7O047Ozs7OworRkE4MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4MjtMbzswO0w7NUVEMjs7OztOOzs7OzsKK0ZBODM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODM7TG87MDtMOzVFRDk7Ozs7Tjs7Ozs7CitGQTg0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTg0O0xvOzA7TDs1RjY5Ozs7O047Ozs7OworRkE4NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4NTtMbzswO0w7NUZBRDs7OztOOzs7OzsKK0ZBODY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODY7TG87MDtMOzYwRDg7Ozs7Tjs7Ozs7CitGQTg3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTg3O0xvOzA7TDs2MTRFOzs7O047Ozs7OworRkE4ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4ODtMbzswO0w7NjEwODs7OztOOzs7OzsKK0ZBODk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODk7TG87MDtMOzYxOEU7Ozs7Tjs7Ozs7CitGQThBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQThBO0xvOzA7TDs2MTYwOzs7O047Ozs7OworRkE4QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4QjtMbzswO0w7NjFGMjs7OztOOzs7OzsKK0ZBOEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOEM7TG87MDtMOzYyMzQ7Ozs7Tjs7Ozs7CitGQThEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQThEO0xvOzA7TDs2M0M0Ozs7O047Ozs7OworRkE4RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4RTtMbzswO0w7NjQxQzs7OztOOzs7OzsKK0ZBOEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOEY7TG87MDtMOzY0NTI7Ozs7Tjs7Ozs7CitGQTkwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTkwO0xvOzA7TDs2NTU2Ozs7O047Ozs7OworRkE5MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5MTtMbzswO0w7NjY3NDs7OztOOzs7OzsKK0ZBOTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTI7TG87MDtMOzY3MTc7Ozs7Tjs7Ozs7CitGQTkzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTkzO0xvOzA7TDs2NzFCOzs7O047Ozs7OworRkE5NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5NDtMbzswO0w7Njc1Njs7OztOOzs7OzsKK0ZBOTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTU7TG87MDtMOzZCNzk7Ozs7Tjs7Ozs7CitGQTk2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTk2O0xvOzA7TDs2QkJBOzs7O047Ozs7OworRkE5NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5NztMbzswO0w7NkQ0MTs7OztOOzs7OzsKK0ZBOTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTg7TG87MDtMOzZFREI7Ozs7Tjs7Ozs7CitGQTk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTk5O0xvOzA7TDs2RUNCOzs7O047Ozs7OworRkE5QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5QTtMbzswO0w7NkYyMjs7OztOOzs7OzsKK0ZBOUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOUI7TG87MDtMOzcwMUU7Ozs7Tjs7Ozs7CitGQTlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTlDO0xvOzA7TDs3MTZFOzs7O047Ozs7OworRkE5RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5RDtMbzswO0w7NzdBNzs7OztOOzs7OzsKK0ZBOUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOUU7TG87MDtMOzcyMzU7Ozs7Tjs7Ozs7CitGQTlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTlGO0xvOzA7TDs3MkFGOzs7O047Ozs7OworRkFBMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBMDtMbzswO0w7NzMyQTs7OztOOzs7OzsKK0ZBQTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTE7TG87MDtMOzc0NzE7Ozs7Tjs7Ozs7CitGQUEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUEyO0xvOzA7TDs3NTA2Ozs7O047Ozs7OworRkFBMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBMztMbzswO0w7NzUzQjs7OztOOzs7OzsKK0ZBQTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTQ7TG87MDtMOzc2MUQ7Ozs7Tjs7Ozs7CitGQUE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUE1O0xvOzA7TDs3NjFGOzs7O047Ozs7OworRkFBNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBNjtMbzswO0w7NzZDQTs7OztOOzs7OzsKK0ZBQTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTc7TG87MDtMOzc2REI7Ozs7Tjs7Ozs7CitGQUE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUE4O0xvOzA7TDs3NkY0Ozs7O047Ozs7OworRkFBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBOTtMbzswO0w7Nzc0QTs7OztOOzs7OzsKK0ZBQUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQUE7TG87MDtMOzc3NDA7Ozs7Tjs7Ozs7CitGQUFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUFCO0xvOzA7TDs3OENDOzs7O047Ozs7OworRkFBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBQztMbzswO0w7N0FCMTs7OztOOzs7OzsKK0ZBQUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQUQ7TG87MDtMOzdCQzA7Ozs7Tjs7Ozs7CitGQUFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUFFO0xvOzA7TDs3QzdCOzs7O047Ozs7OworRkFBRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBRjtMbzswO0w7N0Q1Qjs7OztOOzs7OzsKK0ZBQjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjA7TG87MDtMOzdERjQ7Ozs7Tjs7Ozs7CitGQUIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUIxO0xvOzA7TDs3RjNFOzs7O047Ozs7OworRkFCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCMjtMbzswO0w7ODAwNTs7OztOOzs7OzsKK0ZBQjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjM7TG87MDtMOzgzNTI7Ozs7Tjs7Ozs7CitGQUI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUI0O0xvOzA7TDs4M0VGOzs7O047Ozs7OworRkFCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCNTtMbzswO0w7ODc3OTs7OztOOzs7OzsKK0ZBQjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjY7TG87MDtMOzg5NDE7Ozs7Tjs7Ozs7CitGQUI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUI3O0xvOzA7TDs4OTg2Ozs7O047Ozs7OworRkFCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCODtMbzswO0w7ODk5Njs7OztOOzs7OzsKK0ZBQjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjk7TG87MDtMOzhBQkY7Ozs7Tjs7Ozs7CitGQUJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUJBO0xvOzA7TDs4QUY4Ozs7O047Ozs7OworRkFCQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCQjtMbzswO0w7OEFDQjs7OztOOzs7OzsKK0ZBQkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQkM7TG87MDtMOzhCMDE7Ozs7Tjs7Ozs7CitGQUJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUJEO0xvOzA7TDs4QUZFOzs7O047Ozs7OworRkFCRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCRTtMbzswO0w7OEFFRDs7OztOOzs7OzsKK0ZBQkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQkY7TG87MDtMOzhCMzk7Ozs7Tjs7Ozs7CitGQUMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUMwO0xvOzA7TDs4QjhBOzs7O047Ozs7OworRkFDMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDMTtMbzswO0w7OEQwODs7OztOOzs7OzsKK0ZBQzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzI7TG87MDtMOzhGMzg7Ozs7Tjs7Ozs7CitGQUMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUMzO0xvOzA7TDs5MDcyOzs7O047Ozs7OworRkFDNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDNDtMbzswO0w7OTE5OTs7OztOOzs7OzsKK0ZBQzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzU7TG87MDtMOzkyNzY7Ozs7Tjs7Ozs7CitGQUM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUM2O0xvOzA7TDs5NjdDOzs7O047Ozs7OworRkFDNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDNztMbzswO0w7OTZFMzs7OztOOzs7OzsKK0ZBQzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzg7TG87MDtMOzk3NTY7Ozs7Tjs7Ozs7CitGQUM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUM5O0xvOzA7TDs5N0RCOzs7O047Ozs7OworRkFDQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDQTtMbzswO0w7OTdGRjs7OztOOzs7OzsKK0ZBQ0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQ0I7TG87MDtMOzk4MEI7Ozs7Tjs7Ozs7CitGQUNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUNDO0xvOzA7TDs5ODNCOzs7O047Ozs7OworRkFDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDRDtMbzswO0w7OUIxMjs7OztOOzs7OzsKK0ZBQ0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQ0U7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGQUNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUNGO0xvOzA7TDsyMjg0QTs7OztOOzs7OzsKK0ZBRDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDA7TG87MDtMOzIyODQ0Ozs7O047Ozs7OworRkFEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEMTtMbzswO0w7MjMzRDU7Ozs7Tjs7Ozs7CitGQUQyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQyO0xvOzA7TDszQjlEOzs7O047Ozs7OworRkFEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEMztMbzswO0w7NDAxODs7OztOOzs7OzsKK0ZBRDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDQ7TG87MDtMOzQwMzk7Ozs7Tjs7Ozs7CitGQUQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQ1O0xvOzA7TDsyNTI0OTs7OztOOzs7OzsKK0ZBRDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDY7TG87MDtMOzI1Q0QwOzs7O047Ozs7OworRkFENztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFENztMbzswO0w7MjdFRDM7Ozs7Tjs7Ozs7CitGQUQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQ4O0xvOzA7TDs5RjQzOzs7O047Ozs7OworRkFEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEOTtMbzswO0w7OUY4RTs7OztOOzs7OzsKK0ZCMDA7TEFUSU4gU01BTEwgTElHQVRVUkUgRkY7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2Njs7OztOOzs7OzsKK0ZCMDE7TEFUSU4gU01BTEwgTElHQVRVUkUgRkk7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2OTs7OztOOzs7OzsKK0ZCMDI7TEFUSU4gU01BTEwgTElHQVRVUkUgRkw7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2Qzs7OztOOzs7OzsKK0ZCMDM7TEFUSU4gU01BTEwgTElHQVRVUkUgRkZJO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjYgMDA2OTs7OztOOzs7OzsKK0ZCMDQ7TEFUSU4gU01BTEwgTElHQVRVUkUgRkZMO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjYgMDA2Qzs7OztOOzs7OzsKK0ZCMDU7TEFUSU4gU01BTEwgTElHQVRVUkUgTE9ORyBTIFQ7TGw7MDtMOzxjb21wYXQ+IDAxN0YgMDA3NDs7OztOOzs7OzsKK0ZCMDY7TEFUSU4gU01BTEwgTElHQVRVUkUgU1Q7TGw7MDtMOzxjb21wYXQ+IDAwNzMgMDA3NDs7OztOOzs7OzsKK0ZCMTM7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIE5PVztMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTc2Ozs7O047Ozs7OworRkIxNDtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gRUNIO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NjU7Ozs7Tjs7Ozs7CitGQjE1O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBJTkk7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2Qjs7OztOOzs7OzsKK0ZCMTY7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgVkVXIE5PVztMbDswO0w7PGNvbXBhdD4gMDU3RSAwNTc2Ozs7O047Ozs7OworRkIxNztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gWEVIO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NkQ7Ozs7Tjs7Ozs7CitGQjFEO0hFQlJFVyBMRVRURVIgWU9EIFdJVEggSElSSVE7TG87MDtSOzA1RDkgMDVCNDs7OztOOzs7OzsKK0ZCMUU7SEVCUkVXIFBPSU5UIEpVREVPLVNQQU5JU0ggVkFSSUtBO01uOzI2O05TTTs7Ozs7TjtIRUJSRVcgUE9JTlQgVkFSSUtBOzs7OworRkIxRjtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBZT0QgWU9EIFBBVEFIO0xvOzA7UjswNUYyIDA1Qjc7Ozs7Tjs7Ozs7CitGQjIwO0hFQlJFVyBMRVRURVIgQUxURVJOQVRJVkUgQVlJTjtMbzswO1I7PGZvbnQ+IDA1RTI7Ozs7Tjs7Ozs7CitGQjIxO0hFQlJFVyBMRVRURVIgV0lERSBBTEVGO0xvOzA7Ujs8Zm9udD4gMDVEMDs7OztOOzs7OzsKK0ZCMjI7SEVCUkVXIExFVFRFUiBXSURFIERBTEVUO0xvOzA7Ujs8Zm9udD4gMDVEMzs7OztOOzs7OzsKK0ZCMjM7SEVCUkVXIExFVFRFUiBXSURFIEhFO0xvOzA7Ujs8Zm9udD4gMDVENDs7OztOOzs7OzsKK0ZCMjQ7SEVCUkVXIExFVFRFUiBXSURFIEtBRjtMbzswO1I7PGZvbnQ+IDA1REI7Ozs7Tjs7Ozs7CitGQjI1O0hFQlJFVyBMRVRURVIgV0lERSBMQU1FRDtMbzswO1I7PGZvbnQ+IDA1REM7Ozs7Tjs7Ozs7CitGQjI2O0hFQlJFVyBMRVRURVIgV0lERSBGSU5BTCBNRU07TG87MDtSOzxmb250PiAwNUREOzs7O047Ozs7OworRkIyNztIRUJSRVcgTEVUVEVSIFdJREUgUkVTSDtMbzswO1I7PGZvbnQ+IDA1RTg7Ozs7Tjs7Ozs7CitGQjI4O0hFQlJFVyBMRVRURVIgV0lERSBUQVY7TG87MDtSOzxmb250PiAwNUVBOzs7O047Ozs7OworRkIyOTtIRUJSRVcgTEVUVEVSIEFMVEVSTkFUSVZFIFBMVVMgU0lHTjtTbTswO0VTOzxmb250PiAwMDJCOzs7O047Ozs7OworRkIyQTtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBTSElOIERPVDtMbzswO1I7MDVFOSAwNUMxOzs7O047Ozs7OworRkIyQjtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBTSU4gRE9UO0xvOzA7UjswNUU5IDA1QzI7Ozs7Tjs7Ozs7CitGQjJDO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0hJTiBET1Q7TG87MDtSO0ZCNDkgMDVDMTs7OztOOzs7OzsKK0ZCMkQ7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSU4gRE9UO0xvOzA7UjtGQjQ5IDA1QzI7Ozs7Tjs7Ozs7CitGQjJFO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFBBVEFIO0xvOzA7UjswNUQwIDA1Qjc7Ozs7Tjs7Ozs7CitGQjJGO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFFBTUFUUztMbzswO1I7MDVEMCAwNUI4Ozs7O047Ozs7OworRkIzMDtIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBNQVBJUTtMbzswO1I7MDVEMCAwNUJDOzs7O047Ozs7OworRkIzMTtIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMSAwNUJDOzs7O047Ozs7OworRkIzMjtIRUJSRVcgTEVUVEVSIEdJTUVMIFdJVEggREFHRVNIO0xvOzA7UjswNUQyIDA1QkM7Ozs7Tjs7Ozs7CitGQjMzO0hFQlJFVyBMRVRURVIgREFMRVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDMgMDVCQzs7OztOOzs7OzsKK0ZCMzQ7SEVCUkVXIExFVFRFUiBIRSBXSVRIIE1BUElRO0xvOzA7UjswNUQ0IDA1QkM7Ozs7Tjs7Ozs7CitGQjM1O0hFQlJFVyBMRVRURVIgVkFWIFdJVEggREFHRVNIO0xvOzA7UjswNUQ1IDA1QkM7Ozs7Tjs7Ozs7CitGQjM2O0hFQlJFVyBMRVRURVIgWkFZSU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RDYgMDVCQzs7OztOOzs7OzsKK0ZCMzg7SEVCUkVXIExFVFRFUiBURVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDggMDVCQzs7OztOOzs7OzsKK0ZCMzk7SEVCUkVXIExFVFRFUiBZT0QgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDkgMDVCQzs7OztOOzs7OzsKK0ZCM0E7SEVCUkVXIExFVFRFUiBGSU5BTCBLQUYgV0lUSCBEQUdFU0g7TG87MDtSOzA1REEgMDVCQzs7OztOOzs7OzsKK0ZCM0I7SEVCUkVXIExFVFRFUiBLQUYgV0lUSCBEQUdFU0g7TG87MDtSOzA1REIgMDVCQzs7OztOOzs7OzsKK0ZCM0M7SEVCUkVXIExFVFRFUiBMQU1FRCBXSVRIIERBR0VTSDtMbzswO1I7MDVEQyAwNUJDOzs7O047Ozs7OworRkIzRTtIRUJSRVcgTEVUVEVSIE1FTSBXSVRIIERBR0VTSDtMbzswO1I7MDVERSAwNUJDOzs7O047Ozs7OworRkI0MDtIRUJSRVcgTEVUVEVSIE5VTiBXSVRIIERBR0VTSDtMbzswO1I7MDVFMCAwNUJDOzs7O047Ozs7OworRkI0MTtIRUJSRVcgTEVUVEVSIFNBTUVLSCBXSVRIIERBR0VTSDtMbzswO1I7MDVFMSAwNUJDOzs7O047Ozs7OworRkI0MztIRUJSRVcgTEVUVEVSIEZJTkFMIFBFIFdJVEggREFHRVNIO0xvOzA7UjswNUUzIDA1QkM7Ozs7Tjs7Ozs7CitGQjQ0O0hFQlJFVyBMRVRURVIgUEUgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTQgMDVCQzs7OztOOzs7OzsKK0ZCNDY7SEVCUkVXIExFVFRFUiBUU0FESSBXSVRIIERBR0VTSDtMbzswO1I7MDVFNiAwNUJDOzs7O047Ozs7OworRkI0NztIRUJSRVcgTEVUVEVSIFFPRiBXSVRIIERBR0VTSDtMbzswO1I7MDVFNyAwNUJDOzs7O047Ozs7OworRkI0ODtIRUJSRVcgTEVUVEVSIFJFU0ggV0lUSCBEQUdFU0g7TG87MDtSOzA1RTggMDVCQzs7OztOOzs7OzsKK0ZCNDk7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIO0xvOzA7UjswNUU5IDA1QkM7Ozs7Tjs7Ozs7CitGQjRBO0hFQlJFVyBMRVRURVIgVEFWIFdJVEggREFHRVNIO0xvOzA7UjswNUVBIDA1QkM7Ozs7Tjs7Ozs7CitGQjRCO0hFQlJFVyBMRVRURVIgVkFWIFdJVEggSE9MQU07TG87MDtSOzA1RDUgMDVCOTs7OztOOzs7OzsKK0ZCNEM7SEVCUkVXIExFVFRFUiBCRVQgV0lUSCBSQUZFO0xvOzA7UjswNUQxIDA1QkY7Ozs7Tjs7Ozs7CitGQjREO0hFQlJFVyBMRVRURVIgS0FGIFdJVEggUkFGRTtMbzswO1I7MDVEQiAwNUJGOzs7O047Ozs7OworRkI0RTtIRUJSRVcgTEVUVEVSIFBFIFdJVEggUkFGRTtMbzswO1I7MDVFNCAwNUJGOzs7O047Ozs7OworRkI0RjtIRUJSRVcgTElHQVRVUkUgQUxFRiBMQU1FRDtMbzswO1I7PGNvbXBhdD4gMDVEMCAwNURDOzs7O047Ozs7OworRkI1MDtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3MTs7OztOOzs7OzsKK0ZCNTE7QVJBQklDIExFVFRFUiBBTEVGIFdBU0xBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NzE7Ozs7Tjs7Ozs7CitGQjUyO0FSQUJJQyBMRVRURVIgQkVFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdCOzs7O047Ozs7OworRkI1MztBUkFCSUMgTEVUVEVSIEJFRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTQ7QVJBQklDIExFVFRFUiBCRUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdCOzs7O047Ozs7OworRkI1NTtBUkFCSUMgTEVUVEVSIEJFRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdCOzs7O047Ozs7OworRkI1NjtBUkFCSUMgTEVUVEVSIFBFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdFOzs7O047Ozs7OworRkI1NztBUkFCSUMgTEVUVEVSIFBFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdFOzs7O047Ozs7OworRkI1ODtBUkFCSUMgTEVUVEVSIFBFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3RTs7OztOOzs7OzsKK0ZCNTk7QVJBQklDIExFVFRFUiBQRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdFOzs7O047Ozs7OworRkI1QTtBUkFCSUMgTEVUVEVSIEJFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVCO0FSQUJJQyBMRVRURVIgQkVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUM7QVJBQklDIExFVFRFUiBCRUhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUQ7QVJBQklDIExFVFRFUiBCRUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVFO0FSQUJJQyBMRVRURVIgVFRFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0E7Ozs7Tjs7Ozs7CitGQjVGO0FSQUJJQyBMRVRURVIgVFRFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYwO0FSQUJJQyBMRVRURVIgVFRFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdBOzs7O047Ozs7OworRkI2MTtBUkFCSUMgTEVUVEVSIFRURUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYyO0FSQUJJQyBMRVRURVIgVEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjM7QVJBQklDIExFVFRFUiBURUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdGOzs7O047Ozs7OworRkI2NDtBUkFCSUMgTEVUVEVSIFRFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdGOzs7O047Ozs7OworRkI2NTtBUkFCSUMgTEVUVEVSIFRFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjY7QVJBQklDIExFVFRFUiBUVEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY3O0FSQUJJQyBMRVRURVIgVFRFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjc5Ozs7O047Ozs7OworRkI2ODtBUkFCSUMgTEVUVEVSIFRURUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY5O0FSQUJJQyBMRVRURVIgVFRFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjZBO0FSQUJJQyBMRVRURVIgVkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZCO0FSQUJJQyBMRVRURVIgVkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZDO0FSQUJJQyBMRVRURVIgVkVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkE0Ozs7O047Ozs7OworRkI2RDtBUkFCSUMgTEVUVEVSIFZFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZFO0FSQUJJQyBMRVRURVIgUEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBNjs7OztOOzs7OzsKK0ZCNkY7QVJBQklDIExFVFRFUiBQRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkE2Ozs7O047Ozs7OworRkI3MDtBUkFCSUMgTEVUVEVSIFBFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkE2Ozs7O047Ozs7OworRkI3MTtBUkFCSUMgTEVUVEVSIFBFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBNjs7OztOOzs7OzsKK0ZCNzI7QVJBQklDIExFVFRFUiBEWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjczO0FSQUJJQyBMRVRURVIgRFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg0Ozs7O047Ozs7OworRkI3NDtBUkFCSUMgTEVUVEVSIERZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc1O0FSQUJJQyBMRVRURVIgRFlFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc2O0FSQUJJQyBMRVRURVIgTllFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjgzOzs7O047Ozs7OworRkI3NztBUkFCSUMgTEVUVEVSIE5ZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Mzs7OztOOzs7OzsKK0ZCNzg7QVJBQklDIExFVFRFUiBOWUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjgzOzs7O047Ozs7OworRkI3OTtBUkFCSUMgTEVUVEVSIE5ZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjgzOzs7O047Ozs7OworRkI3QTtBUkFCSUMgTEVUVEVSIFRDSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdCO0FSQUJJQyBMRVRURVIgVENIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0M7QVJBQklDIExFVFRFUiBUQ0hFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0Q7QVJBQklDIExFVFRFUiBUQ0hFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdFO0FSQUJJQyBMRVRURVIgVENIRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjg3Ozs7O047Ozs7OworRkI3RjtBUkFCSUMgTEVUVEVSIFRDSEVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Nzs7OztOOzs7OzsKK0ZCODA7QVJBQklDIExFVFRFUiBUQ0hFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjg3Ozs7O047Ozs7OworRkI4MTtBUkFCSUMgTEVUVEVSIFRDSEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjg3Ozs7O047Ozs7OworRkI4MjtBUkFCSUMgTEVUVEVSIEREQUhBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjhEOzs7O047Ozs7OworRkI4MztBUkFCSUMgTEVUVEVSIEREQUhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhEOzs7O047Ozs7OworRkI4NDtBUkFCSUMgTEVUVEVSIERBSEFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OEM7Ozs7Tjs7Ozs7CitGQjg1O0FSQUJJQyBMRVRURVIgREFIQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Qzs7OztOOzs7OzsKK0ZCODY7QVJBQklDIExFVFRFUiBEVUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4RTs7OztOOzs7OzsKK0ZCODc7QVJBQklDIExFVFRFUiBEVUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4RTs7OztOOzs7OzsKK0ZCODg7QVJBQklDIExFVFRFUiBEREFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODg7Ozs7Tjs7Ozs7CitGQjg5O0FSQUJJQyBMRVRURVIgRERBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg4Ozs7O047Ozs7OworRkI4QTtBUkFCSUMgTEVUVEVSIEpFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjk4Ozs7O047Ozs7OworRkI4QjtBUkFCSUMgTEVUVEVSIEpFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjk4Ozs7O047Ozs7OworRkI4QztBUkFCSUMgTEVUVEVSIFJSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY5MTs7OztOOzs7OzsKK0ZCOEQ7QVJBQklDIExFVFRFUiBSUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OTE7Ozs7Tjs7Ozs7CitGQjhFO0FSQUJJQyBMRVRURVIgS0VIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBOTs7OztOOzs7OzsKK0ZCOEY7QVJBQklDIExFVFRFUiBLRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkE5Ozs7O047Ozs7OworRkI5MDtBUkFCSUMgTEVUVEVSIEtFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkE5Ozs7O047Ozs7OworRkI5MTtBUkFCSUMgTEVUVEVSIEtFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBOTs7OztOOzs7OzsKK0ZCOTI7QVJBQklDIExFVFRFUiBHQUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBRjs7OztOOzs7OzsKK0ZCOTM7QVJBQklDIExFVFRFUiBHQUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTQ7QVJBQklDIExFVFRFUiBHQUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QUY7Ozs7Tjs7Ozs7CitGQjk1O0FSQUJJQyBMRVRURVIgR0FGIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTY7QVJBQklDIExFVFRFUiBHVUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk3O0FSQUJJQyBMRVRURVIgR1VFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkIzOzs7O047Ozs7OworRkI5ODtBUkFCSUMgTEVUVEVSIEdVRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk5O0FSQUJJQyBMRVRURVIgR1VFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjlBO0FSQUJJQyBMRVRURVIgTkdPRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCMTs7OztOOzs7OzsKK0ZCOUI7QVJBQklDIExFVFRFUiBOR09FSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkIxOzs7O047Ozs7OworRkI5QztBUkFCSUMgTEVUVEVSIE5HT0VIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkIxOzs7O047Ozs7OworRkI5RDtBUkFCSUMgTEVUVEVSIE5HT0VIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCMTs7OztOOzs7OzsKK0ZCOUU7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkJBOzs7O047Ozs7OworRkI5RjtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkE7Ozs7Tjs7Ozs7CitGQkEwO0FSQUJJQyBMRVRURVIgUk5PT04gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCQjs7OztOOzs7OzsKK0ZCQTE7QVJBQklDIExFVFRFUiBSTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkJCOzs7O047Ozs7OworRkJBMjtBUkFCSUMgTEVUVEVSIFJOT09OIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkJCOzs7O047Ozs7OworRkJBMztBUkFCSUMgTEVUVEVSIFJOT09OIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCQjs7OztOOzs7OzsKK0ZCQTQ7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDMDs7OztOOzs7OzsKK0ZCQTU7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDMDs7OztOOzs7OzsKK0ZCQTY7QVJBQklDIExFVFRFUiBIRUggR09BTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkMxOzs7O047Ozs7OworRkJBNztBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE4O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE5O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkMxOzs7O047Ozs7OworRkJBQTtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkJFOzs7O047Ozs7OworRkJBQjtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkJFOzs7O047Ozs7OworRkJBQztBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZCRTs7OztOOzs7OzsKK0ZCQUQ7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkJFOzs7O047Ozs7OworRkJBRTtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMjs7OztOOzs7OzsKK0ZCQUY7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2RDI7Ozs7Tjs7Ozs7CitGQkIwO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2RDM7Ozs7Tjs7Ozs7CitGQkIxO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2RDM7Ozs7Tjs7Ozs7CitGQkQzO0FSQUJJQyBMRVRURVIgTkcgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBRDs7OztOOzs7OzsKK0ZCRDQ7QVJBQklDIExFVFRFUiBORyBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkFEOzs7O047Ozs7OworRkJENTtBUkFCSUMgTEVUVEVSIE5HIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkFEOzs7O047Ozs7OworRkJENjtBUkFCSUMgTEVUVEVSIE5HIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBRDs7OztOOzs7OzsKK0ZCRDc7QVJBQklDIExFVFRFUiBVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzc7Ozs7Tjs7Ozs7CitGQkQ4O0FSQUJJQyBMRVRURVIgVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM3Ozs7O047Ozs7OworRkJEOTtBUkFCSUMgTEVUVEVSIE9FIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QzY7Ozs7Tjs7Ozs7CitGQkRBO0FSQUJJQyBMRVRURVIgT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDNjs7OztOOzs7OzsKK0ZCREI7QVJBQklDIExFVFRFUiBZVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM4Ozs7O047Ozs7OworRkJEQztBUkFCSUMgTEVUVEVSIFlVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Qzg7Ozs7Tjs7Ozs7CitGQkREO0FSQUJJQyBMRVRURVIgVSBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Nzc7Ozs7Tjs7Ozs7CitGQkRFO0FSQUJJQyBMRVRURVIgVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDQjs7OztOOzs7OzsKK0ZCREY7QVJBQklDIExFVFRFUiBWRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkNCOzs7O047Ozs7OworRkJFMDtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0UgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNTs7OztOOzs7OzsKK0ZCRTE7QVJBQklDIExFVFRFUiBLSVJHSElaIE9FIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QzU7Ozs7Tjs7Ozs7CitGQkUyO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM5Ozs7O047Ozs7OworRkJFMztBUkFCSUMgTEVUVEVSIEtJUkdISVogWVUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDOTs7OztOOzs7OzsKK0ZCRTQ7QVJBQklDIExFVFRFUiBFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU1O0FSQUJJQyBMRVRURVIgRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkQwOzs7O047Ozs7OworRkJFNjtBUkFCSUMgTEVUVEVSIEUgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU3O0FSQUJJQyBMRVRURVIgRSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU4O0FSQUJJQyBMRVRURVIgVUlHSFVSIEtBWkFLSCBLSVJHSElaIEFMRUYgTUFLU1VSQSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0OTs7OztOOzs7OzsKK0ZCRTk7QVJBQklDIExFVFRFUiBVSUdIVVIgS0FaQUtIIEtJUkdISVogQUxFRiBNQUtTVVJBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0OTs7OztOOzs7OzsKK0ZCRUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2Mjc7Ozs7Tjs7Ozs7CitGQkVCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjI3Ozs7O047Ozs7OworRkJFQztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2RDU7Ozs7Tjs7Ozs7CitGQkVEO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZENTs7OztOOzs7OzsKK0ZCRUU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggV0FXIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDY0ODs7OztOOzs7OzsKK0ZCRUY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggV0FXIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0ODs7OztOOzs7OzsKK0ZCRjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2Qzc7Ozs7Tjs7Ozs7CitGQkYxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkM3Ozs7O047Ozs7OworRkJGMjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBPRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2QzY7Ozs7Tjs7Ozs7CitGQkYzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE9FIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZDNjs7OztOOzs7OzsKK0ZCRjQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWVUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNkM4Ozs7O047Ozs7OworRkJGNTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Qzg7Ozs7Tjs7Ozs7CitGQkY2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGNztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZEMDs7OztOOzs7OzsKK0ZCRjg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGOTtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQTtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQjtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZCRkM7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDQzs7OztOOzs7OzsKK0ZCRkQ7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDQzs7OztOOzs7OzsKK0ZCRkU7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Q0M7Ozs7Tjs7Ozs7CitGQkZGO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZDQzs7OztOOzs7OzsKK0ZDMDA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2MkM7Ozs7Tjs7Ozs7CitGQzAxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzAyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkMwMztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkMwNDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjRBOzs7O047Ozs7OworRkMwNTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2MkM7Ozs7Tjs7Ozs7CitGQzA2O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjJEOzs7O047Ozs7OworRkMwNztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2MkU7Ozs7Tjs7Ozs7CitGQzA4O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDMDk7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2NDk7Ozs7Tjs7Ozs7CitGQzBBO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjRBOzs7O047Ozs7OworRkMwQjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2MkM7Ozs7Tjs7Ozs7CitGQzBDO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjJEOzs7O047Ozs7OworRkMwRDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2MkU7Ozs7Tjs7Ozs7CitGQzBFO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDMEY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2NDk7Ozs7Tjs7Ozs7CitGQzEwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjRBOzs7O047Ozs7OworRkMxMTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjJDOzs7O047Ozs7OworRkMxMjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkMxMztBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2NDk7Ozs7Tjs7Ozs7CitGQzE0O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkIgMDY0QTs7OztOOzs7OzsKK0ZDMTU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjJEOzs7O047Ozs7OworRkMxNjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjQ1Ozs7O047Ozs7OworRkMxNztBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGQzE4O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZDMTk7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZDMUE7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjJEOzs7O047Ozs7OworRkMxQjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjQ1Ozs7O047Ozs7OworRkMxQztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkMxRDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGQzFFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGQzFGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQzIwO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjJEOzs7O047Ozs7OworRkMyMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDU7Ozs7Tjs7Ozs7CitGQzIyO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYyQzs7OztOOzs7OzsKK0ZDMjM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzI0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYyRTs7OztOOzs7OzsKK0ZDMjU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjQ1Ozs7O047Ozs7OworRkMyNjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzcgMDYyRDs7OztOOzs7OzsKK0ZDMjc7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkMyODtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGQzI5O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDYyQzs7OztOOzs7OzsKK0ZDMkE7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjQ1Ozs7O047Ozs7OworRkMyQjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDYyQzs7OztOOzs7OzsKK0ZDMkM7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBIDA2NDU7Ozs7Tjs7Ozs7CitGQzJEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDYyQzs7OztOOzs7OzsKK0ZDMkU7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2MkQ7Ozs7Tjs7Ozs7CitGQzJGO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDYyRTs7OztOOzs7OzsKK0ZDMzA7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjQ1Ozs7O047Ozs7OworRkMzMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDY0OTs7OztOOzs7OzsKK0ZDMzI7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2NEE7Ozs7Tjs7Ozs7CitGQzMzO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjJEOzs7O047Ozs7OworRkMzNDtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NDU7Ozs7Tjs7Ozs7CitGQzM1O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjQ5Ozs7O047Ozs7OworRkMzNjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0QTs7OztOOzs7OzsKK0ZDMzc7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjI3Ozs7O047Ozs7OworRkMzODtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2MkM7Ozs7Tjs7Ozs7CitGQzM5O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjJEOzs7O047Ozs7OworRkMzQTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2MkU7Ozs7Tjs7Ozs7CitGQzNCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkMzQztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQzNEO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjQ5Ozs7O047Ozs7OworRkMzRTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDY0QTs7OztOOzs7OzsKK0ZDM0Y7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjJDOzs7O047Ozs7OworRkM0MDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyRDs7OztOOzs7OzsKK0ZDNDE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjJFOzs7O047Ozs7OworRkM0MjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQzQzO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjQ5Ozs7O047Ozs7OworRkM0NDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDY0QTs7OztOOzs7OzsKK0ZDNDU7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZDNDY7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJEOzs7O047Ozs7OworRkM0NztBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJFOzs7O047Ozs7OworRkM0ODtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkM0OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGQzRBO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZDNEI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDYyQzs7OztOOzs7OzsKK0ZDNEM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjJEOzs7O047Ozs7OworRkM0RDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjJFOzs7O047Ozs7OworRkM0RTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkM0RjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2NDk7Ozs7Tjs7Ozs7CitGQzUwO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDY0QTs7OztOOzs7OzsKK0ZDNTE7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjJDOzs7O047Ozs7OworRkM1MjtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2NDU7Ozs7Tjs7Ozs7CitGQzUzO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjQ5Ozs7O047Ozs7OworRkM1NDtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDcgMDY0QTs7OztOOzs7OzsKK0ZDNTU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjJDOzs7O047Ozs7OworRkM1NjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDYyRDs7OztOOzs7OzsKK0ZDNTc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjJFOzs7O047Ozs7OworRkM1ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQzU5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjQ5Ozs7O047Ozs7OworRkM1QTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDY0QTs7OztOOzs7OzsKK0ZDNUI7QVJBQklDIExJR0FUVVJFIFRIQUwgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzAgMDY3MDs7OztOOzs7OzsKK0ZDNUM7QVJBQklDIExJR0FUVVJFIFJFSCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMSAwNjcwOzs7O047Ozs7OworRkM1RDtBUkFCSUMgTElHQVRVUkUgQUxFRiBNQUtTVVJBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ5IDA2NzA7Ozs7Tjs7Ozs7CitGQzVFO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEMgMDY1MTs7OztOOzs7OzsKK0ZDNUY7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RCAwNjUxOzs7O047Ozs7OworRkM2MDtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggRkFUSEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRFIDA2NTE7Ozs7Tjs7Ozs7CitGQzYxO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEYgMDY1MTs7OztOOzs7OzsKK0ZDNjI7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MCAwNjUxOzs7O047Ozs7OworRkM2MztBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY3MDs7OztOOzs7OzsKK0ZDNjQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDYzMTs7OztOOzs7OzsKK0ZDNjU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2MzI7Ozs7Tjs7Ozs7CitGQzY2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkM2NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0Njs7OztOOzs7OzsKK0ZDNjg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZDNjk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0QTs7OztOOzs7OzsKK0ZDNkE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MzE7Ozs7Tjs7Ozs7CitGQzZCO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDYzMjs7OztOOzs7OzsKK0ZDNkM7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkM2RDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDY7Ozs7Tjs7Ozs7CitGQzZFO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjQ5Ozs7O047Ozs7OworRkM2RjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDY0QTs7OztOOzs7OzsKK0ZDNzA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MzE7Ozs7Tjs7Ozs7CitGQzcxO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYzMjs7OztOOzs7OzsKK0ZDNzI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkM3MztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDY7Ozs7Tjs7Ozs7CitGQzc0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ5Ozs7O047Ozs7OworRkM3NTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0QTs7OztOOzs7OzsKK0ZDNzY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjMxOzs7O047Ozs7OworRkM3NztBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjMyOzs7O047Ozs7OworRkM3ODtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkM3OTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjQ2Ozs7O047Ozs7OworRkM3QTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDk7Ozs7Tjs7Ozs7CitGQzdCO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDY0QTs7OztOOzs7OzsKK0ZDN0M7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NDk7Ozs7Tjs7Ozs7CitGQzdEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MSAwNjRBOzs7O047Ozs7OworRkM3RTtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0OTs7OztOOzs7OzsKK0ZDN0Y7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NEE7Ozs7Tjs7Ozs7CitGQzgwO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDYyNzs7OztOOzs7OzsKK0ZDODE7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQzgyO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDODM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDk7Ozs7Tjs7Ozs7CitGQzg0O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjRBOzs7O047Ozs7OworRkM4NTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQzg2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjQ5Ozs7O047Ozs7OworRkM4NztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0QTs7OztOOzs7OzsKK0ZDODg7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyNzs7OztOOzs7OzsKK0ZDODk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZDOEE7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjMxOzs7O047Ozs7OworRkM4QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjMyOzs7O047Ozs7OworRkM4QztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkM4RDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ2Ozs7O047Ozs7OworRkM4RTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDk7Ozs7Tjs7Ozs7CitGQzhGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0QTs7OztOOzs7OzsKK0ZDOTA7QVJBQklDIExJR0FUVVJFIEFMRUYgTUFLU1VSQSBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0OSAwNjcwOzs7O047Ozs7OworRkM5MTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDYzMTs7OztOOzs7OzsKK0ZDOTI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjMyOzs7O047Ozs7OworRkM5MztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQzk0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0Njs7OztOOzs7OzsKK0ZDOTU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDk7Ozs7Tjs7Ozs7CitGQzk2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjRBOzs7O047Ozs7OworRkM5NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2MkM7Ozs7Tjs7Ozs7CitGQzk4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjJEOzs7O047Ozs7OworRkM5OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2MkU7Ozs7Tjs7Ozs7CitGQzlBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDOUI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2NDc7Ozs7Tjs7Ozs7CitGQzlDO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2MkM7Ozs7Tjs7Ozs7CitGQzlEO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDYyRDs7OztOOzs7OzsKK0ZDOUU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDYyRTs7OztOOzs7OzsKK0ZDOUY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDQTA7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjQ3Ozs7O047Ozs7OworRkNBMTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJDOzs7O047Ozs7OworRkNBMjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0EzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkU7Ozs7Tjs7Ozs7CitGQ0E0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0Nzs7OztOOzs7OzsKK0ZDQTY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E3O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0E4O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQyAwNjQ1Ozs7O047Ozs7OworRkNBOTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRCAwNjJDOzs7O047Ozs7OworRkNBQTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRCAwNjQ1Ozs7O047Ozs7OworRkNBQjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZDQUM7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGQ0FEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkNBRTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkNBRjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZDQjA7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0IxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDYyRDs7OztOOzs7OzsKK0ZDQjI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDYyRTs7OztOOzs7OzsKK0ZDQjM7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDY0NTs7OztOOzs7OzsKK0ZDQjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzYgMDYyQzs7OztOOzs7OzsKK0ZDQjU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJEOzs7O047Ozs7OworRkNCNjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJFOzs7O047Ozs7OworRkNCNztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjQ1Ozs7O047Ozs7OworRkNCODtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0I5O0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGQ0JBO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2MkM7Ozs7Tjs7Ozs7CitGQ0JCO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGQ0JDO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2M0EgMDYyQzs7OztOOzs7OzsKK0ZDQkQ7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzQSAwNjQ1Ozs7O047Ozs7OworRkNCRTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MSAwNjJDOzs7O047Ozs7OworRkNCRjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0MwO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkU7Ozs7Tjs7Ozs7CitGQ0MxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2NDU7Ozs7Tjs7Ozs7CitGQ0MyO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDIgMDYyRDs7OztOOzs7OzsKK0ZDQzM7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDIgMDY0NTs7OztOOzs7OzsKK0ZDQzQ7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDYyQzs7OztOOzs7OzsKK0ZDQzU7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjJEOzs7O047Ozs7OworRkNDNjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjJFOzs7O047Ozs7OworRkNDNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQ0M4O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0M5O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkM7Ozs7Tjs7Ozs7CitGQ0NBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRDs7OztOOzs7OzsKK0ZDQ0I7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRTs7OztOOzs7OzsKK0ZDQ0M7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDQ0Q7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjQ3Ozs7O047Ozs7OworRkNDRTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZDQ0Y7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZDRDA7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGQ0QxO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkNEMjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyQzs7OztOOzs7OzsKK0ZDRDM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyRDs7OztOOzs7OzsKK0ZDRDQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkU7Ozs7Tjs7Ozs7CitGQ0Q1O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkNENjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjQ3Ozs7O047Ozs7OworRkNENztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjJDOzs7O047Ozs7OworRkNEODtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1Ozs7O047Ozs7OworRkNEOTtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjcwOzs7O047Ozs7OworRkNEQTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjJDOzs7O047Ozs7OworRkNEQjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0RDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2MkU7Ozs7Tjs7Ozs7CitGQ0REO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0RFO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZDREY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDRTA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyNiAwNjQ3Ozs7O047Ozs7OworRkNFMTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDRTI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjggMDY0Nzs7OztOOzs7OzsKK0ZDRTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0U0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U1O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDRTY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJCIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U3O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDRTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDY0Nzs7OztOOzs7OzsKK0ZDRUI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDRUM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0VEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkNFRTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NiAwNjQ3Ozs7O047Ozs7OworRkNGMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDRjE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZDRjI7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEZBVEhBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRFIDA2NTE7Ozs7Tjs7Ozs7CitGQ0YzO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0RiAwNjUxOzs7O047Ozs7OworRkNGNDtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTAgMDY1MTs7OztOOzs7OzsKK0ZDRjU7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NDk7Ozs7Tjs7Ozs7CitGQ0Y2O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjRBOzs7O047Ozs7OworRkNGNztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0OTs7OztOOzs7OzsKK0ZDRjg7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NEE7Ozs7Tjs7Ozs7CitGQ0Y5O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBIDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZBO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBIDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZCO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDY0OTs7OztOOzs7OzsKK0ZDRkM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjRBOzs7O047Ozs7OworRkNGRDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjQ5Ozs7O047Ozs7OworRkNGRTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjRBOzs7O047Ozs7OworRkNGRjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEMDA7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDAxO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEMDI7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjRBOzs7O047Ozs7OworRkQwMztBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGRDA0O0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEMDU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDk7Ozs7Tjs7Ozs7CitGRDA2O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjRBOzs7O047Ozs7OworRkQwNztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDY0OTs7OztOOzs7OzsKK0ZEMDg7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2NEE7Ozs7Tjs7Ozs7CitGRDA5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQwQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQwQjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMEM7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDBEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MzE7Ozs7Tjs7Ozs7CitGRDBFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYzMTs7OztOOzs7OzsKK0ZEMEY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2MzE7Ozs7Tjs7Ozs7CitGRDEwO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjMxOzs7O047Ozs7OworRkQxMTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0OTs7OztOOzs7OzsKK0ZEMTI7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM3IDA2NEE7Ozs7Tjs7Ozs7CitGRDEzO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ5Ozs7O047Ozs7OworRkQxNDtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0QTs7OztOOzs7OzsKK0ZEMTU7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0OTs7OztOOzs7OzsKK0ZEMTY7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0QTs7OztOOzs7OzsKK0ZEMTc7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjQ5Ozs7O047Ozs7OworRkQxODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NEE7Ozs7Tjs7Ozs7CitGRDE5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NDk7Ozs7Tjs7Ozs7CitGRDFBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NEE7Ozs7Tjs7Ozs7CitGRDFCO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQxQztBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEMUQ7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQxRTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDFGO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEMjA7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRSAwNjRBOzs7O047Ozs7OworRkQyMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDY0OTs7OztOOzs7OzsKK0ZEMjI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2NEE7Ozs7Tjs7Ozs7CitGRDIzO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjQ5Ozs7O047Ozs7OworRkQyNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDY0QTs7OztOOzs7OzsKK0ZEMjU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDI2O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDI3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQyODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMjk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYzMTs7OztOOzs7OzsKK0ZEMkE7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjMxOzs7O047Ozs7OworRkQyQjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDYzMTs7OztOOzs7OzsKK0ZEMkM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MzE7Ozs7Tjs7Ozs7CitGRDJEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMkU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDJGO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMzA7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQzMTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ3Ozs7O047Ozs7OworRkQzMjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDY0Nzs7OztOOzs7OzsKK0ZEMzM7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzcgMDY0NTs7OztOOzs7OzsKK0ZEMzQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkQzNTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZEMzY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkQzNztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQzODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDM5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDNBO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkQzQjtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZEM0M7QVJBQklDIExJR0FUVVJFIEFMRUYgV0lUSCBGQVRIQVRBTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI3IDA2NEI7Ozs7Tjs7Ozs7CitGRDNEO0FSQUJJQyBMSUdBVFVSRSBBTEVGIFdJVEggRkFUSEFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNyAwNjRCOzs7O047Ozs7OworRkQzRTtPUk5BVEUgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzs7OztOOzs7OzsKK0ZEM0Y7T1JOQVRFIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047Ozs7O047Ozs7OworRkQ1MDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ1MTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1MztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDU0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDU1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDU2O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENTc7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENTg7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1OTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1QTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZENUI7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDVDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDVEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGRDVFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZENUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ2MDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ2MTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZENjI7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDY0O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjJEIDA2MkQ7Ozs7Tjs7Ozs7CitGRDY1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDYyRCAwNjJEOzs7O047Ozs7OworRkQ2NjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDY3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDY4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ2OTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyQyAwNjRBOzs7O047Ozs7OworRkQ2QTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENkI7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ2QztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2RTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ2RjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDcwO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDcxO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3MjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDczO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDc0O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ3NTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDc2O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzc7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzg7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDc5O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3QTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ3QjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ3QztBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDdEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDdFO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3RjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDgwO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ4MTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRCAwNjRBOzs7O047Ozs7OworRkQ4MjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ4MztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyQyAwNjJDOzs7O047Ozs7OworRkQ4NDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIEpFRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJDIDA2MkM7Ozs7Tjs7Ozs7CitGRDg1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEODY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEODc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDg4O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEODk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZEOEE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEOEI7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDhDO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGRDhEO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ4RTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZEOEY7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDkyO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjJFOzs7O047Ozs7OworRkQ5MztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDcgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ5NDtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDcgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5NTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ5NjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEOTc7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOTg7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDk5O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEOUE7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ5QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDlDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOUQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOUU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDlGO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyQyAwNjRBOzs7O047Ozs7OworRkRBMDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEQTE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREEyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyRSAwNjQ5Ozs7O047Ozs7OworRkRBMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGREE1O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQTY7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGREE3O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEQTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyRSAwNjQ5Ozs7O047Ozs7OworRkRBOTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFCO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyQyAwNjRBOzs7O047Ozs7OworRkRBRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQUU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREIwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIyO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQjQ7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDIgMDY0NSAwNjJEOzs7O047Ozs7OworRkRCNTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGREI2O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjg7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEQjk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyRSAwNjRBOzs7O047Ozs7OworRkRCQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRCQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREJDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQkQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjJEOzs7O047Ozs7OworRkRCRTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQkY7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREMwO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREMyO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREMzO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREM0O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREM1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREM2O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQzc7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjRBOzs7O047Ozs7OworRkRGMDtBUkFCSUMgTElHQVRVUkUgU0FMTEEgVVNFRCBBUyBLT1JBTklDIFNUT1AgU0lHTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDZEMjs7OztOOzs7OzsKK0ZERjE7QVJBQklDIExJR0FUVVJFIFFBTEEgVVNFRCBBUyBLT1JBTklDIFNUT1AgU0lHTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NDQgMDZEMjs7OztOOzs7OzsKK0ZERjI7QVJBQklDIExJR0FUVVJFIEFMTEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjcgMDY0NCAwNjQ0IDA2NDc7Ozs7Tjs7Ozs7CitGREYzO0FSQUJJQyBMSUdBVFVSRSBBS0JBUiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI3IDA2NDMgMDYyOCAwNjMxOzs7O047Ozs7OworRkRGNDtBUkFCSUMgTElHQVRVUkUgTU9IQU1NQUQgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJEIDA2NDUgMDYyRjs7OztOOzs7OzsKK0ZERjU7QVJBQklDIExJR0FUVVJFIFNBTEFNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGREY2O0FSQUJJQyBMSUdBVFVSRSBSQVNPVUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMSAwNjMzIDA2NDggMDY0NDs7OztOOzs7OzsKK0ZERjc7QVJBQklDIExJR0FUVVJFIEFMQVlIRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NDQgMDY0QSAwNjQ3Ozs7O047Ozs7OworRkRGODtBUkFCSUMgTElHQVRVUkUgV0FTQUxMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0OCAwNjMzIDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZERjk7QVJBQklDIExJR0FUVVJFIFNBTExBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjQ5Ozs7O047Ozs7OworRkRGQTtBUkFCSUMgTElHQVRVUkUgU0FMTEFMTEFIT1UgQUxBWUhFIFdBU0FMTEFNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDY0OSAwMDIwIDA2MjcgMDY0NCAwNjQ0IDA2NDcgMDAyMCAwNjM5IDA2NDQgMDY0QSAwNjQ3IDAwMjAgMDY0OCAwNjMzIDA2NDQgMDY0NTs7OztOO0FSQUJJQyBMRVRURVIgU0FMTEFMTEFIT1UgQUxBWUhFIFdBU0FMTEFNOzs7OworRkRGQjtBUkFCSUMgTElHQVRVUkUgSkFMTEFKQUxBTE9VSE9VO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NDQgMDAyMCAwNjJDIDA2NDQgMDYyNyAwNjQ0IDA2NDc7Ozs7TjtBUkFCSUMgTEVUVEVSIEpBTExBSkFMQUxPVUhPVTs7OzsKK0ZERkM7UklBTCBTSUdOO1NjOzA7QUw7PGlzb2xhdGVkPiAwNjMxIDA2Q0MgMDYyNyAwNjQ0Ozs7O047Ozs7OworRkRGRDtBUkFCSUMgTElHQVRVUkUgQklTTUlMTEFIIEFSLVJBSE1BTiBBUi1SQUhFRU07U287MDtPTjs7Ozs7Tjs7Ozs7CitGRTAwO1ZBUklBVElPTiBTRUxFQ1RPUi0xO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDE7VkFSSUFUSU9OIFNFTEVDVE9SLTI7TW47MDtOU007Ozs7O047Ozs7OworRkUwMjtWQVJJQVRJT04gU0VMRUNUT1ItMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTAzO1ZBUklBVElPTiBTRUxFQ1RPUi00O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDQ7VkFSSUFUSU9OIFNFTEVDVE9SLTU7TW47MDtOU007Ozs7O047Ozs7OworRkUwNTtWQVJJQVRJT04gU0VMRUNUT1ItNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA2O1ZBUklBVElPTiBTRUxFQ1RPUi03O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDc7VkFSSUFUSU9OIFNFTEVDVE9SLTg7TW47MDtOU007Ozs7O047Ozs7OworRkUwODtWQVJJQVRJT04gU0VMRUNUT1ItOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA5O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBBO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBCO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBDO1ZBUklBVElPTiBTRUxFQ1RPUi0xMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBEO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBFO1ZBUklBVElPTiBTRUxFQ1RPUi0xNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBGO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTEwO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBDT01NQTtQbzswO09OOzx2ZXJ0aWNhbD4gMDAyQzs7OztOOzs7OzsKK0ZFMTE7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PHZlcnRpY2FsPiAzMDAxOzs7O047Ozs7OworRkUxMjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgSURFT0dSQVBISUMgRlVMTCBTVE9QO1BvOzA7T047PHZlcnRpY2FsPiAzMDAyOzs7O047Ozs7OworRkUxMztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgQ09MT047UG87MDtPTjs8dmVydGljYWw+IDAwM0E7Ozs7Tjs7Ozs7CitGRTE0O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBTRU1JQ09MT047UG87MDtPTjs8dmVydGljYWw+IDAwM0I7Ozs7Tjs7Ozs7CitGRTE1O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PHZlcnRpY2FsPiAwMDIxOzs7O047Ozs7OworRkUxNjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUVVFU1RJT04gTUFSSztQbzswO09OOzx2ZXJ0aWNhbD4gMDAzRjs7OztOOzs7OzsKK0ZFMTc7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDE2Ozs7O047Ozs7OworRkUxODtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgV0hJVEUgTEVOVElDVUxBUiBCUkFLQ0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDE3Ozs7O047Ozs7OworRkUxOTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgSE9SSVpPTlRBTCBFTExJUFNJUztQbzswO09OOzx2ZXJ0aWNhbD4gMjAyNjs7OztOOzs7OzsKK0ZFMjA7Q09NQklOSU5HIExJR0FUVVJFIExFRlQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMjE7Q09NQklOSU5HIExJR0FUVVJFIFJJR0hUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTIyO0NPTUJJTklORyBET1VCTEUgVElMREUgTEVGVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUyMztDT01CSU5JTkcgRE9VQkxFIFRJTERFIFJJR0hUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTMwO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBUV08gRE9UIExFQURFUjtQbzswO09OOzx2ZXJ0aWNhbD4gMjAyNTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBUV08gRE9UIExFQURFUjs7OzsKK0ZFMzE7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEVNIERBU0g7UGQ7MDtPTjs8dmVydGljYWw+IDIwMTQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgRU0gREFTSDs7OzsKK0ZFMzI7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEVOIERBU0g7UGQ7MDtPTjs8dmVydGljYWw+IDIwMTM7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgRU4gREFTSDs7OzsKK0ZFMzM7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExPVyBMSU5FO1BjOzA7T047PHZlcnRpY2FsPiAwMDVGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKK0ZFMzQ7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFdBVlkgTE9XIExJTkU7UGM7MDtPTjs8dmVydGljYWw+IDAwNUY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgU1BBQ0lORyBXQVZZIFVOREVSU0NPUkU7Ozs7CitGRTM1O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHZlcnRpY2FsPiAwMDI4Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRTM2O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzx2ZXJ0aWNhbD4gMDAyOTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkUzNztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAwMDdCOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFMzg7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDAwN0Q7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkUzOTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDE0Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFM0E7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMTU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkUzQjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMTA7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CitGRTNDO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMTE7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CitGRTNEO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBBOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTNFO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwQjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworRkUzRjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBBTkdMRSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDA4Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFNDA7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMDk7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBBTkdMRSBCUkFDS0VUOzs7OworRkU0MTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwQzs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkU0MjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDM7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDQ7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQ1O1NFU0FNRSBET1Q7UG87MDtPTjs7Ozs7Tjs7Ozs7CitGRTQ2O1dISVRFIFNFU0FNRSBET1Q7UG87MDtPTjs7Ozs7Tjs7Ozs7CitGRTQ3O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAwMDVCOzs7O047Ozs7OworRkU0ODtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDAwNUQ7Ozs7Tjs7Ozs7CitGRTQ5O0RBU0hFRCBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIERBU0hFRCBPVkVSU0NPUkU7Ozs7CitGRTRBO0NFTlRSRUxJTkUgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBDRU5URVJMSU5FIE9WRVJTQ09SRTs7OzsKK0ZFNEI7V0FWWSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIFdBVlkgT1ZFUlNDT1JFOzs7OworRkU0QztET1VCTEUgV0FWWSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIERPVUJMRSBXQVZZIE9WRVJTQ09SRTs7OzsKK0ZFNEQ7REFTSEVEIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgREFTSEVEIFVOREVSU0NPUkU7Ozs7CitGRTRFO0NFTlRSRUxJTkUgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBDRU5URVJMSU5FIFVOREVSU0NPUkU7Ozs7CitGRTRGO1dBVlkgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBXQVZZIFVOREVSU0NPUkU7Ozs7CitGRTUwO1NNQUxMIENPTU1BO1BvOzA7Q1M7PHNtYWxsPiAwMDJDOzs7O047Ozs7OworRkU1MTtTTUFMTCBJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzxzbWFsbD4gMzAwMTs7OztOOzs7OzsKK0ZFNTI7U01BTEwgRlVMTCBTVE9QO1BvOzA7Q1M7PHNtYWxsPiAwMDJFOzs7O047U01BTEwgUEVSSU9EOzs7OworRkU1NDtTTUFMTCBTRU1JQ09MT047UG87MDtPTjs8c21hbGw+IDAwM0I7Ozs7Tjs7Ozs7CitGRTU1O1NNQUxMIENPTE9OO1BvOzA7Q1M7PHNtYWxsPiAwMDNBOzs7O047Ozs7OworRkU1NjtTTUFMTCBRVUVTVElPTiBNQVJLO1BvOzA7T047PHNtYWxsPiAwMDNGOzs7O047Ozs7OworRkU1NztTTUFMTCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PHNtYWxsPiAwMDIxOzs7O047Ozs7OworRkU1ODtTTUFMTCBFTSBEQVNIO1BkOzA7T047PHNtYWxsPiAyMDE0Ozs7O047Ozs7OworRkU1OTtTTUFMTCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHNtYWxsPiAwMDI4Ozs7O1k7U01BTEwgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZFNUE7U01BTEwgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c21hbGw+IDAwMjk7Ozs7WTtTTUFMTCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkU1QjtTTUFMTCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8c21hbGw+IDAwN0I7Ozs7WTtTTUFMTCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTVDO1NNQUxMIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8c21hbGw+IDAwN0Q7Ozs7WTtTTUFMTCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTVEO1NNQUxMIExFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzxzbWFsbD4gMzAxNDs7OztZO1NNQUxMIE9QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFNUU7U01BTEwgUklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzxzbWFsbD4gMzAxNTs7OztZO1NNQUxMIENMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFNUY7U01BTEwgTlVNQkVSIFNJR047UG87MDtFVDs8c21hbGw+IDAwMjM7Ozs7Tjs7Ozs7CitGRTYwO1NNQUxMIEFNUEVSU0FORDtQbzswO09OOzxzbWFsbD4gMDAyNjs7OztOOzs7OzsKK0ZFNjE7U01BTEwgQVNURVJJU0s7UG87MDtPTjs8c21hbGw+IDAwMkE7Ozs7Tjs7Ozs7CitGRTYyO1NNQUxMIFBMVVMgU0lHTjtTbTswO0VTOzxzbWFsbD4gMDAyQjs7OztOOzs7OzsKK0ZFNjM7U01BTEwgSFlQSEVOLU1JTlVTO1BkOzA7RVM7PHNtYWxsPiAwMDJEOzs7O047Ozs7OworRkU2NDtTTUFMTCBMRVNTLVRIQU4gU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzQzs7OztZOzs7OzsKK0ZFNjU7U01BTEwgR1JFQVRFUi1USEFOIFNJR047U207MDtPTjs8c21hbGw+IDAwM0U7Ozs7WTs7Ozs7CitGRTY2O1NNQUxMIEVRVUFMUyBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNEOzs7O047Ozs7OworRkU2ODtTTUFMTCBSRVZFUlNFIFNPTElEVVM7UG87MDtPTjs8c21hbGw+IDAwNUM7Ozs7TjtTTUFMTCBCQUNLU0xBU0g7Ozs7CitGRTY5O1NNQUxMIERPTExBUiBTSUdOO1NjOzA7RVQ7PHNtYWxsPiAwMDI0Ozs7O047Ozs7OworRkU2QTtTTUFMTCBQRVJDRU5UIFNJR047UG87MDtFVDs8c21hbGw+IDAwMjU7Ozs7Tjs7Ozs7CitGRTZCO1NNQUxMIENPTU1FUkNJQUwgQVQ7UG87MDtPTjs8c21hbGw+IDAwNDA7Ozs7Tjs7Ozs7CitGRTcwO0FSQUJJQyBGQVRIQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEI7Ozs7TjtBUkFCSUMgU1BBQ0lORyBGQVRIQVRBTjs7OzsKK0ZFNzE7QVJBQklDIFRBVFdFRUwgV0lUSCBGQVRIQVRBTiBBQk9WRTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0Qjs7OztOO0FSQUJJQyBGQVRIQVRBTiBPTiBUQVRXRUVMOzs7OworRkU3MjtBUkFCSUMgREFNTUFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRDOzs7O047QVJBQklDIFNQQUNJTkcgREFNTUFUQU47Ozs7CitGRTczO0FSQUJJQyBUQUlMIEZSQUdNRU5UO0xvOzA7QUw7Ozs7O047Ozs7OworRkU3NDtBUkFCSUMgS0FTUkFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjREOzs7O047QVJBQklDIFNQQUNJTkcgS0FTUkFUQU47Ozs7CitGRTc2O0FSQUJJQyBGQVRIQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEU7Ozs7TjtBUkFCSUMgU1BBQ0lORyBGQVRIQUg7Ozs7CitGRTc3O0FSQUJJQyBGQVRIQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0RTs7OztOO0FSQUJJQyBGQVRIQUggT04gVEFUV0VFTDs7OzsKK0ZFNzg7QVJBQklDIERBTU1BIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0Rjs7OztOO0FSQUJJQyBTUEFDSU5HIERBTU1BSDs7OzsKK0ZFNzk7QVJBQklDIERBTU1BIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRGOzs7O047QVJBQklDIERBTU1BSCBPTiBUQVRXRUVMOzs7OworRkU3QTtBUkFCSUMgS0FTUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUwOzs7O047QVJBQklDIFNQQUNJTkcgS0FTUkFIOzs7OworRkU3QjtBUkFCSUMgS0FTUkEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTA7Ozs7TjtBUkFCSUMgS0FTUkFIIE9OIFRBVFdFRUw7Ozs7CitGRTdDO0FSQUJJQyBTSEFEREEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUxOzs7O047QVJBQklDIFNQQUNJTkcgU0hBRERBSDs7OzsKK0ZFN0Q7QVJBQklDIFNIQUREQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1MTs7OztOO0FSQUJJQyBTSEFEREFIIE9OIFRBVFdFRUw7Ozs7CitGRTdFO0FSQUJJQyBTVUtVTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTI7Ozs7TjtBUkFCSUMgU1BBQ0lORyBTVUtVTjs7OzsKK0ZFN0Y7QVJBQklDIFNVS1VOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjUyOzs7O047QVJBQklDIFNVS1VOIE9OIFRBVFdFRUw7Ozs7CitGRTgwO0FSQUJJQyBMRVRURVIgSEFNWkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyMTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUg7Ozs7CitGRTgxO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIE1BRERBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTUFEREFIIE9OIEFMRUY7Ozs7CitGRTgyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIE1BRERBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1BRERBSCBPTiBBTEVGOzs7OworRkU4MztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjIzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBBTEVGOzs7OworRkU4NDtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjIzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gQUxFRjs7OzsKK0ZFODU7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI0Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBXQVc7Ozs7CitGRTg2O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIFdBVzs7OzsKK0ZFODc7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQkVMT1cgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggVU5ERVIgQUxFRjs7OzsKK0ZFODg7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQkVMT1cgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CitGRTg5O0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThBO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QjtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEM7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThEO0FSQUJJQyBMRVRURVIgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFMRUY7Ozs7CitGRThFO0FSQUJJQyBMRVRURVIgQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBBTEVGOzs7OworRkU4RjtBUkFCSUMgTEVUVEVSIEJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEJBQTs7OzsKK0ZFOTA7QVJBQklDIExFVFRFUiBCRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQkFBOzs7OworRkU5MTtBUkFCSUMgTEVUVEVSIEJFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyODs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBCQUE7Ozs7CitGRTkyO0FSQUJJQyBMRVRURVIgQkVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyODs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTM7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBQSBNQVJCVVRBSDs7OzsKK0ZFOTQ7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI5Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUQUEgTUFSQlVUQUg7Ozs7CitGRTk1O0FSQUJJQyBMRVRURVIgVEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEFBOzs7OworRkU5NjtBUkFCSUMgTEVUVEVSIFRFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUQUE7Ozs7CitGRTk3O0FSQUJJQyBMRVRURVIgVEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTg7QVJBQklDIExFVFRFUiBURUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEFBOzs7OworRkU5OTtBUkFCSUMgTEVUVEVSIFRIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUSEFBOzs7OworRkU5QTtBUkFCSUMgTEVUVEVSIFRIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUI7QVJBQklDIExFVFRFUiBUSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJCOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlDO0FSQUJJQyBMRVRURVIgVEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUSEFBOzs7OworRkU5RDtBUkFCSUMgTEVUVEVSIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBKRUVNOzs7OworRkU5RTtBUkFCSUMgTEVUVEVSIEpFRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSkVFTTs7OzsKK0ZFOUY7QVJBQklDIExFVFRFUiBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJDOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEpFRU07Ozs7CitGRUEwO0FSQUJJQyBMRVRURVIgSkVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBKRUVNOzs7OworRkVBMTtBUkFCSUMgTEVUVEVSIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJEOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBQTs7OzsKK0ZFQTI7QVJBQklDIExFVFRFUiBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFBOzs7OworRkVBMztBUkFCSUMgTEVUVEVSIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQUE7Ozs7CitGRUE0O0FSQUJJQyBMRVRURVIgSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyRDs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTU7QVJBQklDIExFVFRFUiBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgS0hBQTs7OzsKK0ZFQTY7QVJBQklDIExFVFRFUiBLSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE3O0FSQUJJQyBMRVRURVIgS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBLSEFBOzs7OworRkVBODtBUkFCSUMgTEVUVEVSIEtIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJFOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTk7QVJBQklDIExFVFRFUiBEQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBEQUw7Ozs7CitGRUFBO0FSQUJJQyBMRVRURVIgREFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIERBTDs7OzsKK0ZFQUI7QVJBQklDIExFVFRFUiBUSEFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzA7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEhBTDs7OzsKK0ZFQUM7QVJBQklDIExFVFRFUiBUSEFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzA7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRIQUw7Ozs7CitGRUFEO0FSQUJJQyBMRVRURVIgUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgUkE7Ozs7CitGRUFFO0FSQUJJQyBMRVRURVIgUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFJBOzs7OworRkVBRjtBUkFCSUMgTEVUVEVSIFpBSU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBaQUlOOzs7OworRkVCMDtBUkFCSUMgTEVUVEVSIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgWkFJTjs7OzsKK0ZFQjE7QVJBQklDIExFVFRFUiBTRUVOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0VFTjs7OzsKK0ZFQjI7QVJBQklDIExFVFRFUiBTRUVOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNFRU47Ozs7CitGRUIzO0FSQUJJQyBMRVRURVIgU0VFTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTRUVOOzs7OworRkVCNDtBUkFCSUMgTEVUVEVSIFNFRU4gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjU7QVJBQklDIExFVFRFUiBTSEVFTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNIRUVOOzs7OworRkVCNjtBUkFCSUMgTEVUVEVSIFNIRUVOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNIRUVOOzs7OworRkVCNztBUkFCSUMgTEVUVEVSIFNIRUVOIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNIRUVOOzs7OworRkVCODtBUkFCSUMgTEVUVEVSIFNIRUVOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNIRUVOOzs7OworRkVCOTtBUkFCSUMgTEVUVEVSIFNBRCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNBRDs7OzsKK0ZFQkE7QVJBQklDIExFVFRFUiBTQUQgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0FEOzs7OworRkVCQjtBUkFCSUMgTEVUVEVSIFNBRCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJDO0FSQUJJQyBMRVRURVIgU0FEIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkQ7QVJBQklDIExFVFRFUiBEQUQgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBEQUQ7Ozs7CitGRUJFO0FSQUJJQyBMRVRURVIgREFEIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIERBRDs7OzsKK0ZFQkY7QVJBQklDIExFVFRFUiBEQUQgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgREFEOzs7OworRkVDMDtBUkFCSUMgTEVUVEVSIERBRCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBEQUQ7Ozs7CitGRUMxO0FSQUJJQyBMRVRURVIgVEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEFIOzs7OworRkVDMjtBUkFCSUMgTEVUVEVSIFRBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUQUg7Ozs7CitGRUMzO0FSQUJJQyBMRVRURVIgVEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzQ7QVJBQklDIExFVFRFUiBUQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM3Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEFIOzs7OworRkVDNTtBUkFCSUMgTEVUVEVSIFpBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERIQUg7Ozs7CitGRUM2O0FSQUJJQyBMRVRURVIgWkFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIERIQUg7Ozs7CitGRUM3O0FSQUJJQyBMRVRURVIgWkFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM4Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIERIQUg7Ozs7CitGRUM4O0FSQUJJQyBMRVRURVIgWkFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzODs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIERIQUg7Ozs7CitGRUM5O0FSQUJJQyBMRVRURVIgQUlOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQUlOOzs7OworRkVDQTtBUkFCSUMgTEVUVEVSIEFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBBSU47Ozs7CitGRUNCO0FSQUJJQyBMRVRURVIgQUlOIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0M7QVJBQklDIExFVFRFUiBBSU4gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM5Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQUlOOzs7OworRkVDRDtBUkFCSUMgTEVUVEVSIEdIQUlOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgR0hBSU47Ozs7CitGRUNFO0FSQUJJQyBMRVRURVIgR0hBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgR0hBSU47Ozs7CitGRUNGO0FSQUJJQyBMRVRURVIgR0hBSU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgR0hBSU47Ozs7CitGRUQwO0FSQUJJQyBMRVRURVIgR0hBSU4gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjNBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgR0hBSU47Ozs7CitGRUQxO0FSQUJJQyBMRVRURVIgRkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgRkE7Ozs7CitGRUQyO0FSQUJJQyBMRVRURVIgRkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEZBOzs7OworRkVEMztBUkFCSUMgTEVUVEVSIEZFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBGQTs7OzsKK0ZFRDQ7QVJBQklDIExFVFRFUiBGRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQxOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgRkE7Ozs7CitGRUQ1O0FSQUJJQyBMRVRURVIgUUFGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgUUFGOzs7OworRkVENjtBUkFCSUMgTEVUVEVSIFFBRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ3O0FSQUJJQyBMRVRURVIgUUFGIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQyOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDg7QVJBQklDIExFVFRFUiBRQUYgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQyOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgUUFGOzs7OworRkVEOTtBUkFCSUMgTEVUVEVSIEtBRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIENBRjs7OzsKK0ZFREE7QVJBQklDIExFVFRFUiBLQUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQ0FGOzs7OworRkVEQjtBUkFCSUMgTEVUVEVSIEtBRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBDQUY7Ozs7CitGRURDO0FSQUJJQyBMRVRURVIgS0FGIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIENBRjs7OzsKK0ZFREQ7QVJBQklDIExFVFRFUiBMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBMQU07Ozs7CitGRURFO0FSQUJJQyBMRVRURVIgTEFNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIExBTTs7OzsKK0ZFREY7QVJBQklDIExFVFRFUiBMQU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgTEFNOzs7OworRkVFMDtBUkFCSUMgTEVUVEVSIExBTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBMQU07Ozs7CitGRUUxO0FSQUJJQyBMRVRURVIgTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1FRU07Ozs7CitGRUUyO0FSQUJJQyBMRVRURVIgTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNRUVNOzs7OworRkVFMztBUkFCSUMgTEVUVEVSIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTQ7QVJBQklDIExFVFRFUiBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIE1FRU07Ozs7CitGRUU1O0FSQUJJQyBMRVRURVIgTk9PTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE5PT047Ozs7CitGRUU2O0FSQUJJQyBMRVRURVIgTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBOT09OOzs7OworRkVFNztBUkFCSUMgTEVUVEVSIE5PT04gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTg7QVJBQklDIExFVFRFUiBOT09OIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIE5PT047Ozs7CitGRUU5O0FSQUJJQyBMRVRURVIgSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEE7Ozs7CitGRUVBO0FSQUJJQyBMRVRURVIgSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBOzs7OworRkVFQjtBUkFCSUMgTEVUVEVSIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQTs7OzsKK0ZFRUM7QVJBQklDIExFVFRFUiBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEE7Ozs7CitGRUVEO0FSQUJJQyBMRVRURVIgV0FXIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgV0FXOzs7OworRkVFRTtBUkFCSUMgTEVUVEVSIFdBVyBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBXQVc7Ozs7CitGRUVGO0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDk7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQUxFRiBNQVFTVVJBSDs7OzsKK0ZFRjA7QVJBQklDIExFVFRFUiBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0OTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUxFRiBNQVFTVVJBSDs7OzsKK0ZFRjE7QVJBQklDIExFVFRFUiBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBZQTs7OzsKK0ZFRjI7QVJBQklDIExFVFRFUiBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgWUE7Ozs7CitGRUYzO0FSQUJJQyBMRVRURVIgWUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFlBOzs7OworRkVGNDtBUkFCSUMgTEVUVEVSIFlFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBZQTs7OzsKK0ZFRjU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MjI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTUFEREFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGNjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIE1BRERBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyMjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUFEREFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGNztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY4O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjIzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY5O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQkVMT1cgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjI1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBVTkRFUiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MjU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBVTkRFUiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkI7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjI3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGRjtaRVJPIFdJRFRIIE5PLUJSRUFLIFNQQUNFO0NmOzA7Qk47Ozs7O047QllURSBPUkRFUiBNQVJLOzs7OworRkYwMTtGVUxMV0lEVEggRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzx3aWRlPiAwMDIxOzs7O047Ozs7OworRkYwMjtGVUxMV0lEVEggUVVPVEFUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAyMjs7OztOOzs7OzsKK0ZGMDM7RlVMTFdJRFRIIE5VTUJFUiBTSUdOO1BvOzA7RVQ7PHdpZGU+IDAwMjM7Ozs7Tjs7Ozs7CitGRjA0O0ZVTExXSURUSCBET0xMQVIgU0lHTjtTYzswO0VUOzx3aWRlPiAwMDI0Ozs7O047Ozs7OworRkYwNTtGVUxMV0lEVEggUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7PHdpZGU+IDAwMjU7Ozs7Tjs7Ozs7CitGRjA2O0ZVTExXSURUSCBBTVBFUlNBTkQ7UG87MDtPTjs8d2lkZT4gMDAyNjs7OztOOzs7OzsKK0ZGMDc7RlVMTFdJRFRIIEFQT1NUUk9QSEU7UG87MDtPTjs8d2lkZT4gMDAyNzs7OztOOzs7OzsKK0ZGMDg7RlVMTFdJRFRIIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8d2lkZT4gMDAyODs7OztZO0ZVTExXSURUSCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkYwOTtGVUxMV0lEVEggUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8d2lkZT4gMDAyOTs7OztZO0ZVTExXSURUSCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkYwQTtGVUxMV0lEVEggQVNURVJJU0s7UG87MDtPTjs8d2lkZT4gMDAyQTs7OztOOzs7OzsKK0ZGMEI7RlVMTFdJRFRIIFBMVVMgU0lHTjtTbTswO0VTOzx3aWRlPiAwMDJCOzs7O047Ozs7OworRkYwQztGVUxMV0lEVEggQ09NTUE7UG87MDtDUzs8d2lkZT4gMDAyQzs7OztOOzs7OzsKK0ZGMEQ7RlVMTFdJRFRIIEhZUEhFTi1NSU5VUztQZDswO0VTOzx3aWRlPiAwMDJEOzs7O047Ozs7OworRkYwRTtGVUxMV0lEVEggRlVMTCBTVE9QO1BvOzA7Q1M7PHdpZGU+IDAwMkU7Ozs7TjtGVUxMV0lEVEggUEVSSU9EOzs7OworRkYwRjtGVUxMV0lEVEggU09MSURVUztQbzswO0NTOzx3aWRlPiAwMDJGOzs7O047RlVMTFdJRFRIIFNMQVNIOzs7OworRkYxMDtGVUxMV0lEVEggRElHSVQgWkVSTztOZDswO0VOOzx3aWRlPiAwMDMwOzA7MDswO047Ozs7OworRkYxMTtGVUxMV0lEVEggRElHSVQgT05FO05kOzA7RU47PHdpZGU+IDAwMzE7MTsxOzE7Tjs7Ozs7CitGRjEyO0ZVTExXSURUSCBESUdJVCBUV087TmQ7MDtFTjs8d2lkZT4gMDAzMjsyOzI7MjtOOzs7OzsKK0ZGMTM7RlVMTFdJRFRIIERJR0lUIFRIUkVFO05kOzA7RU47PHdpZGU+IDAwMzM7MzszOzM7Tjs7Ozs7CitGRjE0O0ZVTExXSURUSCBESUdJVCBGT1VSO05kOzA7RU47PHdpZGU+IDAwMzQ7NDs0OzQ7Tjs7Ozs7CitGRjE1O0ZVTExXSURUSCBESUdJVCBGSVZFO05kOzA7RU47PHdpZGU+IDAwMzU7NTs1OzU7Tjs7Ozs7CitGRjE2O0ZVTExXSURUSCBESUdJVCBTSVg7TmQ7MDtFTjs8d2lkZT4gMDAzNjs2OzY7NjtOOzs7OzsKK0ZGMTc7RlVMTFdJRFRIIERJR0lUIFNFVkVOO05kOzA7RU47PHdpZGU+IDAwMzc7Nzs3Ozc7Tjs7Ozs7CitGRjE4O0ZVTExXSURUSCBESUdJVCBFSUdIVDtOZDswO0VOOzx3aWRlPiAwMDM4Ozg7ODs4O047Ozs7OworRkYxOTtGVUxMV0lEVEggRElHSVQgTklORTtOZDswO0VOOzx3aWRlPiAwMDM5Ozk7OTs5O047Ozs7OworRkYxQTtGVUxMV0lEVEggQ09MT047UG87MDtDUzs8d2lkZT4gMDAzQTs7OztOOzs7OzsKK0ZGMUI7RlVMTFdJRFRIIFNFTUlDT0xPTjtQbzswO09OOzx3aWRlPiAwMDNCOzs7O047Ozs7OworRkYxQztGVUxMV0lEVEggTEVTUy1USEFOIFNJR047U207MDtPTjs8d2lkZT4gMDAzQzs7OztZOzs7OzsKK0ZGMUQ7RlVMTFdJRFRIIEVRVUFMUyBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0Q7Ozs7Tjs7Ozs7CitGRjFFO0ZVTExXSURUSCBHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzx3aWRlPiAwMDNFOzs7O1k7Ozs7OworRkYxRjtGVUxMV0lEVEggUVVFU1RJT04gTUFSSztQbzswO09OOzx3aWRlPiAwMDNGOzs7O047Ozs7OworRkYyMDtGVUxMV0lEVEggQ09NTUVSQ0lBTCBBVDtQbzswO09OOzx3aWRlPiAwMDQwOzs7O047Ozs7OworRkYyMTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7PHdpZGU+IDAwNDE7Ozs7Tjs7OztGRjQxOworRkYyMjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtMdTswO0w7PHdpZGU+IDAwNDI7Ozs7Tjs7OztGRjQyOworRkYyMztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgQztMdTswO0w7PHdpZGU+IDAwNDM7Ozs7Tjs7OztGRjQzOworRkYyNDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtMdTswO0w7PHdpZGU+IDAwNDQ7Ozs7Tjs7OztGRjQ0OworRkYyNTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtMdTswO0w7PHdpZGU+IDAwNDU7Ozs7Tjs7OztGRjQ1OworRkYyNjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtMdTswO0w7PHdpZGU+IDAwNDY7Ozs7Tjs7OztGRjQ2OworRkYyNztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRztMdTswO0w7PHdpZGU+IDAwNDc7Ozs7Tjs7OztGRjQ3OworRkYyODtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtMdTswO0w7PHdpZGU+IDAwNDg7Ozs7Tjs7OztGRjQ4OworRkYyOTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7PHdpZGU+IDAwNDk7Ozs7Tjs7OztGRjQ5OworRkYyQTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtMdTswO0w7PHdpZGU+IDAwNEE7Ozs7Tjs7OztGRjRBOworRkYyQjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSztMdTswO0w7PHdpZGU+IDAwNEI7Ozs7Tjs7OztGRjRCOworRkYyQztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtMdTswO0w7PHdpZGU+IDAwNEM7Ozs7Tjs7OztGRjRDOworRkYyRDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtMdTswO0w7PHdpZGU+IDAwNEQ7Ozs7Tjs7OztGRjREOworRkYyRTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtMdTswO0w7PHdpZGU+IDAwNEU7Ozs7Tjs7OztGRjRFOworRkYyRjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7PHdpZGU+IDAwNEY7Ozs7Tjs7OztGRjRGOworRkYzMDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtMdTswO0w7PHdpZGU+IDAwNTA7Ozs7Tjs7OztGRjUwOworRkYzMTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtMdTswO0w7PHdpZGU+IDAwNTE7Ozs7Tjs7OztGRjUxOworRkYzMjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtMdTswO0w7PHdpZGU+IDAwNTI7Ozs7Tjs7OztGRjUyOworRkYzMztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUztMdTswO0w7PHdpZGU+IDAwNTM7Ozs7Tjs7OztGRjUzOworRkYzNDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtMdTswO0w7PHdpZGU+IDAwNTQ7Ozs7Tjs7OztGRjU0OworRkYzNTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7PHdpZGU+IDAwNTU7Ozs7Tjs7OztGRjU1OworRkYzNjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtMdTswO0w7PHdpZGU+IDAwNTY7Ozs7Tjs7OztGRjU2OworRkYzNztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVztMdTswO0w7PHdpZGU+IDAwNTc7Ozs7Tjs7OztGRjU3OworRkYzODtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtMdTswO0w7PHdpZGU+IDAwNTg7Ozs7Tjs7OztGRjU4OworRkYzOTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtMdTswO0w7PHdpZGU+IDAwNTk7Ozs7Tjs7OztGRjU5OworRkYzQTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtMdTswO0w7PHdpZGU+IDAwNUE7Ozs7Tjs7OztGRjVBOworRkYzQjtGVUxMV0lEVEggTEVGVCBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzx3aWRlPiAwMDVCOzs7O1k7RlVMTFdJRFRIIE9QRU5JTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CitGRjNDO0ZVTExXSURUSCBSRVZFUlNFIFNPTElEVVM7UG87MDtPTjs8d2lkZT4gMDA1Qzs7OztOO0ZVTExXSURUSCBCQUNLU0xBU0g7Ozs7CitGRjNEO0ZVTExXSURUSCBSSUdIVCBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzx3aWRlPiAwMDVEOzs7O1k7RlVMTFdJRFRIIENMT1NJTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CitGRjNFO0ZVTExXSURUSCBDSVJDVU1GTEVYIEFDQ0VOVDtTazswO09OOzx3aWRlPiAwMDVFOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgQ0lSQ1VNRkxFWDs7OzsKK0ZGM0Y7RlVMTFdJRFRIIExPVyBMSU5FO1BjOzA7T047PHdpZGU+IDAwNUY7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworRkY0MDtGVUxMV0lEVEggR1JBVkUgQUNDRU5UO1NrOzA7T047PHdpZGU+IDAwNjA7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBHUkFWRTs7OzsKK0ZGNDE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBBO0xsOzA7TDs8d2lkZT4gMDA2MTs7OztOOzs7RkYyMTs7RkYyMQorRkY0MjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEI7TGw7MDtMOzx3aWRlPiAwMDYyOzs7O047OztGRjIyOztGRjIyCitGRjQzO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQztMbDswO0w7PHdpZGU+IDAwNjM7Ozs7Tjs7O0ZGMjM7O0ZGMjMKK0ZGNDQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBEO0xsOzA7TDs8d2lkZT4gMDA2NDs7OztOOzs7RkYyNDs7RkYyNAorRkY0NTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEU7TGw7MDtMOzx3aWRlPiAwMDY1Ozs7O047OztGRjI1OztGRjI1CitGRjQ2O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRjtMbDswO0w7PHdpZGU+IDAwNjY7Ozs7Tjs7O0ZGMjY7O0ZGMjYKK0ZGNDc7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBHO0xsOzA7TDs8d2lkZT4gMDA2Nzs7OztOOzs7RkYyNzs7RkYyNworRkY0ODtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEg7TGw7MDtMOzx3aWRlPiAwMDY4Ozs7O047OztGRjI4OztGRjI4CitGRjQ5O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSTtMbDswO0w7PHdpZGU+IDAwNjk7Ozs7Tjs7O0ZGMjk7O0ZGMjkKK0ZGNEE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBKO0xsOzA7TDs8d2lkZT4gMDA2QTs7OztOOzs7RkYyQTs7RkYyQQorRkY0QjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEs7TGw7MDtMOzx3aWRlPiAwMDZCOzs7O047OztGRjJCOztGRjJCCitGRjRDO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTDtMbDswO0w7PHdpZGU+IDAwNkM7Ozs7Tjs7O0ZGMkM7O0ZGMkMKK0ZGNEQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBNO0xsOzA7TDs8d2lkZT4gMDA2RDs7OztOOzs7RkYyRDs7RkYyRAorRkY0RTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE47TGw7MDtMOzx3aWRlPiAwMDZFOzs7O047OztGRjJFOztGRjJFCitGRjRGO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTztMbDswO0w7PHdpZGU+IDAwNkY7Ozs7Tjs7O0ZGMkY7O0ZGMkYKK0ZGNTA7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBQO0xsOzA7TDs8d2lkZT4gMDA3MDs7OztOOzs7RkYzMDs7RkYzMAorRkY1MTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFE7TGw7MDtMOzx3aWRlPiAwMDcxOzs7O047OztGRjMxOztGRjMxCitGRjUyO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUjtMbDswO0w7PHdpZGU+IDAwNzI7Ozs7Tjs7O0ZGMzI7O0ZGMzIKK0ZGNTM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBTO0xsOzA7TDs8d2lkZT4gMDA3Mzs7OztOOzs7RkYzMzs7RkYzMworRkY1NDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFQ7TGw7MDtMOzx3aWRlPiAwMDc0Ozs7O047OztGRjM0OztGRjM0CitGRjU1O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVTtMbDswO0w7PHdpZGU+IDAwNzU7Ozs7Tjs7O0ZGMzU7O0ZGMzUKK0ZGNTY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBWO0xsOzA7TDs8d2lkZT4gMDA3Njs7OztOOzs7RkYzNjs7RkYzNgorRkY1NztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFc7TGw7MDtMOzx3aWRlPiAwMDc3Ozs7O047OztGRjM3OztGRjM3CitGRjU4O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWDtMbDswO0w7PHdpZGU+IDAwNzg7Ozs7Tjs7O0ZGMzg7O0ZGMzgKK0ZGNTk7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBZO0xsOzA7TDs8d2lkZT4gMDA3OTs7OztOOzs7RkYzOTs7RkYzOQorRkY1QTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFo7TGw7MDtMOzx3aWRlPiAwMDdBOzs7O047OztGRjNBOztGRjNBCitGRjVCO0ZVTExXSURUSCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8d2lkZT4gMDA3Qjs7OztZO0ZVTExXSURUSCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRjVDO0ZVTExXSURUSCBWRVJUSUNBTCBMSU5FO1NtOzA7T047PHdpZGU+IDAwN0M7Ozs7TjtGVUxMV0lEVEggVkVSVElDQUwgQkFSOzs7OworRkY1RDtGVUxMV0lEVEggUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzx3aWRlPiAwMDdEOzs7O1k7RlVMTFdJRFRIIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZGNUU7RlVMTFdJRFRIIFRJTERFO1NtOzA7T047PHdpZGU+IDAwN0U7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBUSUxERTs7OzsKK0ZGNUY7RlVMTFdJRFRIIExFRlQgV0hJVEUgUEFSRU5USEVTSVM7UHM7MDtPTjs8d2lkZT4gMjk4NTs7OztZOzsqOzs7CitGRjYwO0ZVTExXSURUSCBSSUdIVCBXSElURSBQQVJFTlRIRVNJUztQZTswO09OOzx3aWRlPiAyOTg2Ozs7O1k7Oyo7OzsKK0ZGNjE7SEFMRldJRFRIIElERU9HUkFQSElDIEZVTEwgU1RPUDtQbzswO09OOzxuYXJyb3c+IDMwMDI7Ozs7TjtIQUxGV0lEVEggSURFT0dSQVBISUMgUEVSSU9EOzs7OworRkY2MjtIQUxGV0lEVEggTEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzxuYXJyb3c+IDMwMEM7Ozs7WTtIQUxGV0lEVEggT1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZGNjM7SEFMRldJRFRIIFJJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PG5hcnJvdz4gMzAwRDs7OztZO0hBTEZXSURUSCBDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkY2NDtIQUxGV0lEVEggSURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs8bmFycm93PiAzMDAxOzs7O047Ozs7OworRkY2NTtIQUxGV0lEVEggS0FUQUtBTkEgTUlERExFIERPVDtQbzswO09OOzxuYXJyb3c+IDMwRkI7Ozs7Tjs7Ozs7CitGRjY2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgV087TG87MDtMOzxuYXJyb3c+IDMwRjI7Ozs7Tjs7Ozs7CitGRjY3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7PG5hcnJvdz4gMzBBMTs7OztOOzs7OzsKK0ZGNjg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBJO0xvOzA7TDs8bmFycm93PiAzMEEzOzs7O047Ozs7OworRkY2OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzxuYXJyb3c+IDMwQTU7Ozs7Tjs7Ozs7CitGRjZBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7PG5hcnJvdz4gMzBBNzs7OztOOzs7OzsKK0ZGNkI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBPO0xvOzA7TDs8bmFycm93PiAzMEE5Ozs7O047Ozs7OworRkY2QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlBO0xvOzA7TDs8bmFycm93PiAzMEUzOzs7O047Ozs7OworRkY2RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs8bmFycm93PiAzMEU1Ozs7O047Ozs7OworRkY2RTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs8bmFycm93PiAzMEU3Ozs7O047Ozs7OworRkY2RjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs8bmFycm93PiAzMEMzOzs7O047Ozs7OworRkY3MDtIQUxGV0lEVEggS0FUQUtBTkEtSElSQUdBTkEgUFJPTE9OR0VEIFNPVU5EIE1BUks7TG07MDtMOzxuYXJyb3c+IDMwRkM7Ozs7Tjs7Ozs7CitGRjcxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgQTtMbzswO0w7PG5hcnJvdz4gMzBBMjs7OztOOzs7OzsKK0ZGNzI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBJO0xvOzA7TDs8bmFycm93PiAzMEE0Ozs7O047Ozs7OworRkY3MztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFU7TG87MDtMOzxuYXJyb3c+IDMwQTY7Ozs7Tjs7Ozs7CitGRjc0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgRTtMbzswO0w7PG5hcnJvdz4gMzBBODs7OztOOzs7OzsKK0ZGNzU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBPO0xvOzA7TDs8bmFycm93PiAzMEFBOzs7O047Ozs7OworRkY3NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtBO0xvOzA7TDs8bmFycm93PiAzMEFCOzs7O047Ozs7OworRkY3NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtJO0xvOzA7TDs8bmFycm93PiAzMEFEOzs7O047Ozs7OworRkY3ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtVO0xvOzA7TDs8bmFycm93PiAzMEFGOzs7O047Ozs7OworRkY3OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtFO0xvOzA7TDs8bmFycm93PiAzMEIxOzs7O047Ozs7OworRkY3QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtPO0xvOzA7TDs8bmFycm93PiAzMEIzOzs7O047Ozs7OworRkY3QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNBO0xvOzA7TDs8bmFycm93PiAzMEI1Ozs7O047Ozs7OworRkY3QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNJO0xvOzA7TDs8bmFycm93PiAzMEI3Ozs7O047Ozs7OworRkY3RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNVO0xvOzA7TDs8bmFycm93PiAzMEI5Ozs7O047Ozs7OworRkY3RTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNFO0xvOzA7TDs8bmFycm93PiAzMEJCOzs7O047Ozs7OworRkY3RjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNPO0xvOzA7TDs8bmFycm93PiAzMEJEOzs7O047Ozs7OworRkY4MDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRBO0xvOzA7TDs8bmFycm93PiAzMEJGOzs7O047Ozs7OworRkY4MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRJO0xvOzA7TDs8bmFycm93PiAzMEMxOzs7O047Ozs7OworRkY4MjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRVO0xvOzA7TDs8bmFycm93PiAzMEM0Ozs7O047Ozs7OworRkY4MztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRFO0xvOzA7TDs8bmFycm93PiAzMEM2Ozs7O047Ozs7OworRkY4NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRPO0xvOzA7TDs8bmFycm93PiAzMEM4Ozs7O047Ozs7OworRkY4NTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5BO0xvOzA7TDs8bmFycm93PiAzMENBOzs7O047Ozs7OworRkY4NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5JO0xvOzA7TDs8bmFycm93PiAzMENCOzs7O047Ozs7OworRkY4NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5VO0xvOzA7TDs8bmFycm93PiAzMENDOzs7O047Ozs7OworRkY4ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5FO0xvOzA7TDs8bmFycm93PiAzMENEOzs7O047Ozs7OworRkY4OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5PO0xvOzA7TDs8bmFycm93PiAzMENFOzs7O047Ozs7OworRkY4QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhBO0xvOzA7TDs8bmFycm93PiAzMENGOzs7O047Ozs7OworRkY4QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhJO0xvOzA7TDs8bmFycm93PiAzMEQyOzs7O047Ozs7OworRkY4QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhVO0xvOzA7TDs8bmFycm93PiAzMEQ1Ozs7O047Ozs7OworRkY4RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhFO0xvOzA7TDs8bmFycm93PiAzMEQ4Ozs7O047Ozs7OworRkY4RTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhPO0xvOzA7TDs8bmFycm93PiAzMERCOzs7O047Ozs7OworRkY4RjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1BO0xvOzA7TDs8bmFycm93PiAzMERFOzs7O047Ozs7OworRkY5MDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1JO0xvOzA7TDs8bmFycm93PiAzMERGOzs7O047Ozs7OworRkY5MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1VO0xvOzA7TDs8bmFycm93PiAzMEUwOzs7O047Ozs7OworRkY5MjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1FO0xvOzA7TDs8bmFycm93PiAzMEUxOzs7O047Ozs7OworRkY5MztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1PO0xvOzA7TDs8bmFycm93PiAzMEUyOzs7O047Ozs7OworRkY5NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFlBO0xvOzA7TDs8bmFycm93PiAzMEU0Ozs7O047Ozs7OworRkY5NTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFlVO0xvOzA7TDs8bmFycm93PiAzMEU2Ozs7O047Ozs7OworRkY5NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFlPO0xvOzA7TDs8bmFycm93PiAzMEU4Ozs7O047Ozs7OworRkY5NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJBO0xvOzA7TDs8bmFycm93PiAzMEU5Ozs7O047Ozs7OworRkY5ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJJO0xvOzA7TDs8bmFycm93PiAzMEVBOzs7O047Ozs7OworRkY5OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJVO0xvOzA7TDs8bmFycm93PiAzMEVCOzs7O047Ozs7OworRkY5QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJFO0xvOzA7TDs8bmFycm93PiAzMEVDOzs7O047Ozs7OworRkY5QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJPO0xvOzA7TDs8bmFycm93PiAzMEVEOzs7O047Ozs7OworRkY5QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdBO0xvOzA7TDs8bmFycm93PiAzMEVGOzs7O047Ozs7OworRkY5RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE47TG87MDtMOzxuYXJyb3c+IDMwRjM7Ozs7Tjs7Ozs7CitGRjlFO0hBTEZXSURUSCBLQVRBS0FOQSBWT0lDRUQgU09VTkQgTUFSSztMbTswO0w7PG5hcnJvdz4gMzA5OTs7OztOOztoYWxmd2lkdGgga2F0YWthbmEtaGlyYWdhbmEgdm9pY2VkIHNvdW5kIG1hcms7OzsKK0ZGOUY7SEFMRldJRFRIIEtBVEFLQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzxuYXJyb3c+IDMwOUE7Ozs7Tjs7aGFsZndpZHRoIGthdGFrYW5hLWhpcmFnYW5hIHNlbWktdm9pY2VkIHNvdW5kIG1hcms7OzsKK0ZGQTA7SEFMRldJRFRIIEhBTkdVTCBGSUxMRVI7TG87MDtMOzxuYXJyb3c+IDMxNjQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIENBRSBPTTs7OzsKK0ZGQTE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTMxOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgR0lZRU9HOzs7OworRkZBMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR0tJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzMjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKK0ZGQTM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxMzM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBHSVlFT0cgU0lPUzs7OzsKK0ZGQTQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxuYXJyb3c+IDMxMzQ7Ozs7Tjs7Ozs7CitGRkE1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOLUNJRVVDO0xvOzA7TDs8bmFycm93PiAzMTM1Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4gSklFVUo7Ozs7CitGRkE2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTM2Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4gSElFVUg7Ozs7CitGRkE3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRJS0VVVDtMbzswO0w7PG5hcnJvdz4gMzEzNzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKK0ZGQTg7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdUSUtFVVQ7TG87MDtMOzxuYXJyb3c+IDMxMzg7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBESUdFVUQ7Ozs7CitGRkE5O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8bmFycm93PiAzMTM5Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUw7Ozs7CitGRkFBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLUtJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzQTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKK0ZGQUI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtTUlFVU07TG87MDtMOzxuYXJyb3c+IDMxM0I7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBNSUVVTTs7OzsKK0ZGQUM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxM0M7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBCSUVVQjs7OzsKK0ZGQUQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtU0lPUztMbzswO0w7PG5hcnJvdz4gMzEzRDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CitGRkFFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVRISUVVVEg7TG87MDtMOzxuYXJyb3c+IDMxM0U7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBUSUVVVDs7OzsKK0ZGQUY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PG5hcnJvdz4gMzEzRjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFBJRVVQOzs7OworRkZCMDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1ISUVVSDtMbzswO0w7PG5hcnJvdz4gMzE0MDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworRkZCMTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBNSUVVTTtMbzswO0w7PG5hcnJvdz4gMzE0MTs7OztOOzs7OzsKK0ZGQjI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxNDI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKK0ZGQjM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdQSUVVUDtMbzswO0w7PG5hcnJvdz4gMzE0Mzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEJJRVVCOzs7OworRkZCNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ0Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQklFVUIgU0lPUzs7OzsKK0ZGQjU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0NTs7OztOOzs7OzsKK0ZGQjY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ2Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgU0lPUzs7OzsKK0ZGQjc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSUVVTkc7TG87MDtMOzxuYXJyb3c+IDMxNDc7Ozs7Tjs7Ozs7CitGRkI4O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8bmFycm93PiAzMTQ4Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSklFVUo7Ozs7CitGRkI5O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxNDk7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKK0ZGQkE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0hJRVVDSDtMbzswO0w7PG5hcnJvdz4gMzE0QTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENJRVVDOzs7OworRkZCQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8bmFycm93PiAzMTRCOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LOzs7OworRkZCQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSElFVVRIO0xvOzA7TDs8bmFycm93PiAzMTRDOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CitGRkJEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBISUVVUEg7TG87MDtMOzxuYXJyb3c+IDMxNEQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUDs7OzsKK0ZGQkU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxNEU7Ozs7Tjs7Ozs7CitGRkMyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEE7TG87MDtMOzxuYXJyb3c+IDMxNEY7Ozs7Tjs7Ozs7CitGRkMzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEFFO0xvOzA7TDs8bmFycm93PiAzMTUwOzs7O047Ozs7OworRkZDNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PG5hcnJvdz4gMzE1MTs7OztOOzs7OzsKK0ZGQzU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUFFO0xvOzA7TDs8bmFycm93PiAzMTUyOzs7O047Ozs7OworRkZDNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFTztMbzswO0w7PG5hcnJvdz4gMzE1Mzs7OztOOzs7OzsKK0ZGQzc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRTtMbzswO0w7PG5hcnJvdz4gMzE1NDs7OztOOzs7OzsKK0ZGQ0E7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUVPO0xvOzA7TDs8bmFycm93PiAzMTU1Ozs7O047Ozs7OworRkZDQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZRTtMbzswO0w7PG5hcnJvdz4gMzE1Njs7OztOOzs7OzsKK0ZGQ0M7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTztMbzswO0w7PG5hcnJvdz4gMzE1Nzs7OztOOzs7OzsKK0ZGQ0Q7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0E7TG87MDtMOzxuYXJyb3c+IDMxNTg7Ozs7Tjs7Ozs7CitGRkNFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdBRTtMbzswO0w7PG5hcnJvdz4gMzE1OTs7OztOOzs7OzsKK0ZGQ0Y7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxuYXJyb3c+IDMxNUE7Ozs7Tjs7Ozs7CitGRkQyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlPO0xvOzA7TDs8bmFycm93PiAzMTVCOzs7O047Ozs7OworRkZEMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBVO0xvOzA7TDs8bmFycm93PiAzMTVDOzs7O047Ozs7OworRkZENDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxuYXJyb3c+IDMxNUQ7Ozs7Tjs7Ozs7CitGRkQ1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdFO0xvOzA7TDs8bmFycm93PiAzMTVFOzs7O047Ozs7OworRkZENjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXSTtMbzswO0w7PG5hcnJvdz4gMzE1Rjs7OztOOzs7OzsKK0ZGRDc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxuYXJyb3c+IDMxNjA7Ozs7Tjs7Ozs7CitGRkRBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEVVO0xvOzA7TDs8bmFycm93PiAzMTYxOzs7O047Ozs7OworRkZEQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZSTtMbzswO0w7PG5hcnJvdz4gMzE2Mjs7OztOOzs7OzsKK0ZGREM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSTtMbzswO0w7PG5hcnJvdz4gMzE2Mzs7OztOOzs7OzsKK0ZGRTA7RlVMTFdJRFRIIENFTlQgU0lHTjtTYzswO0VUOzx3aWRlPiAwMEEyOzs7O047Ozs7OworRkZFMTtGVUxMV0lEVEggUE9VTkQgU0lHTjtTYzswO0VUOzx3aWRlPiAwMEEzOzs7O047Ozs7OworRkZFMjtGVUxMV0lEVEggTk9UIFNJR047U207MDtPTjs8d2lkZT4gMDBBQzs7OztOOzs7OzsKK0ZGRTM7RlVMTFdJRFRIIE1BQ1JPTjtTazswO09OOzx3aWRlPiAwMEFGOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgTUFDUk9OOyo7OzsKK0ZGRTQ7RlVMTFdJRFRIIEJST0tFTiBCQVI7U287MDtPTjs8d2lkZT4gMDBBNjs7OztOO0ZVTExXSURUSCBCUk9LRU4gVkVSVElDQUwgQkFSOzs7OworRkZFNTtGVUxMV0lEVEggWUVOIFNJR047U2M7MDtFVDs8d2lkZT4gMDBBNTs7OztOOzs7OzsKK0ZGRTY7RlVMTFdJRFRIIFdPTiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDIwQTk7Ozs7Tjs7Ozs7CitGRkU4O0hBTEZXSURUSCBGT1JNUyBMSUdIVCBWRVJUSUNBTDtTbzswO09OOzxuYXJyb3c+IDI1MDI7Ozs7Tjs7Ozs7CitGRkU5O0hBTEZXSURUSCBMRUZUV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkwOzs7O047Ozs7OworRkZFQTtIQUxGV0lEVEggVVBXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTE7Ozs7Tjs7Ozs7CitGRkVCO0hBTEZXSURUSCBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5Mjs7OztOOzs7OzsKK0ZGRUM7SEFMRldJRFRIIERPV05XQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTM7Ozs7Tjs7Ozs7CitGRkVEO0hBTEZXSURUSCBCTEFDSyBTUVVBUkU7U287MDtPTjs8bmFycm93PiAyNUEwOzs7O047Ozs7OworRkZFRTtIQUxGV0lEVEggV0hJVEUgQ0lSQ0xFO1NvOzA7T047PG5hcnJvdz4gMjVDQjs7OztOOzs7OzsKK0ZGRjk7SU5URVJMSU5FQVIgQU5OT1RBVElPTiBBTkNIT1I7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CitGRkZBO0lOVEVSTElORUFSIEFOTk9UQVRJT04gU0VQQVJBVE9SO0NmOzA7T047Ozs7O047Ozs7OworRkZGQjtJTlRFUkxJTkVBUiBBTk5PVEFUSU9OIFRFUk1JTkFUT1I7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CitGRkZDO09CSkVDVCBSRVBMQUNFTUVOVCBDSEFSQUNURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitGRkZEO1JFUExBQ0VNRU5UIENIQVJBQ1RFUjtTbzswO09OOzs7OztOOzs7OzsKKzEwMDAwO0xJTkVBUiBCIFNZTExBQkxFIEIwMDggQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMDE7TElORUFSIEIgU1lMTEFCTEUgQjAzOCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwMjtMSU5FQVIgQiBTWUxMQUJMRSBCMDI4IEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDAzO0xJTkVBUiBCIFNZTExBQkxFIEIwNjEgTztMbzswO0w7Ozs7O047Ozs7OworMTAwMDQ7TElORUFSIEIgU1lMTEFCTEUgQjAxMCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwNTtMSU5FQVIgQiBTWUxMQUJMRSBCMDAxIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwNjtMSU5FQVIgQiBTWUxMQUJMRSBCMDQ1IERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwNztMSU5FQVIgQiBTWUxMQUJMRSBCMDA3IERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwODtMSU5FQVIgQiBTWUxMQUJMRSBCMDE0IERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwOTtMSU5FQVIgQiBTWUxMQUJMRSBCMDUxIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwQTtMSU5FQVIgQiBTWUxMQUJMRSBCMDU3IEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwQjtMSU5FQVIgQiBTWUxMQUJMRSBCMDQ2IEpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwRDtMSU5FQVIgQiBTWUxMQUJMRSBCMDM2IEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwRTtMSU5FQVIgQiBTWUxMQUJMRSBCMDY1IEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwRjtMSU5FQVIgQiBTWUxMQUJMRSBCMDc3IEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxMDtMSU5FQVIgQiBTWUxMQUJMRSBCMDQ0IEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxMTtMSU5FQVIgQiBTWUxMQUJMRSBCMDY3IEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxMjtMSU5FQVIgQiBTWUxMQUJMRSBCMDcwIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxMztMSU5FQVIgQiBTWUxMQUJMRSBCMDgxIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxNDtMSU5FQVIgQiBTWUxMQUJMRSBCMDgwIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxNTtMSU5FQVIgQiBTWUxMQUJMRSBCMDEzIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxNjtMSU5FQVIgQiBTWUxMQUJMRSBCMDczIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxNztMSU5FQVIgQiBTWUxMQUJMRSBCMDE1IE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxODtMSU5FQVIgQiBTWUxMQUJMRSBCMDIzIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxOTtMSU5FQVIgQiBTWUxMQUJMRSBCMDA2IE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxQTtMSU5FQVIgQiBTWUxMQUJMRSBCMDI0IE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxQjtMSU5FQVIgQiBTWUxMQUJMRSBCMDMwIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxQztMSU5FQVIgQiBTWUxMQUJMRSBCMDUyIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxRDtMSU5FQVIgQiBTWUxMQUJMRSBCMDU1IE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxRTtMSU5FQVIgQiBTWUxMQUJMRSBCMDAzIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAxRjtMSU5FQVIgQiBTWUxMQUJMRSBCMDcyIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyMDtMSU5FQVIgQiBTWUxMQUJMRSBCMDM5IFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyMTtMSU5FQVIgQiBTWUxMQUJMRSBCMDExIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyMjtMSU5FQVIgQiBTWUxMQUJMRSBCMDUwIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyMztMSU5FQVIgQiBTWUxMQUJMRSBCMDE2IFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyNDtMSU5FQVIgQiBTWUxMQUJMRSBCMDc4IFFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyNTtMSU5FQVIgQiBTWUxMQUJMRSBCMDIxIFFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyNjtMSU5FQVIgQiBTWUxMQUJMRSBCMDMyIFFPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyODtMSU5FQVIgQiBTWUxMQUJMRSBCMDYwIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyOTtMSU5FQVIgQiBTWUxMQUJMRSBCMDI3IFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyQTtMSU5FQVIgQiBTWUxMQUJMRSBCMDUzIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyQjtMSU5FQVIgQiBTWUxMQUJMRSBCMDAyIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyQztMSU5FQVIgQiBTWUxMQUJMRSBCMDI2IFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyRDtMSU5FQVIgQiBTWUxMQUJMRSBCMDMxIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyRTtMSU5FQVIgQiBTWUxMQUJMRSBCMDA5IFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyRjtMSU5FQVIgQiBTWUxMQUJMRSBCMDQxIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzMDtMSU5FQVIgQiBTWUxMQUJMRSBCMDEyIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzMTtMSU5FQVIgQiBTWUxMQUJMRSBCMDU4IFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzMjtMSU5FQVIgQiBTWUxMQUJMRSBCMDU5IFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzMztMSU5FQVIgQiBTWUxMQUJMRSBCMDA0IFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzNDtMSU5FQVIgQiBTWUxMQUJMRSBCMDM3IFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzNTtMSU5FQVIgQiBTWUxMQUJMRSBCMDA1IFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzNjtMSU5FQVIgQiBTWUxMQUJMRSBCMDY5IFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzNztMSU5FQVIgQiBTWUxMQUJMRSBCMDU0IFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzODtMSU5FQVIgQiBTWUxMQUJMRSBCMDc1IFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzOTtMSU5FQVIgQiBTWUxMQUJMRSBCMDQwIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzQTtMSU5FQVIgQiBTWUxMQUJMRSBCMDQyIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzQztMSU5FQVIgQiBTWUxMQUJMRSBCMDE3IFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzRDtMSU5FQVIgQiBTWUxMQUJMRSBCMDc0IFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzRjtMSU5FQVIgQiBTWUxMQUJMRSBCMDIwIFpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0MDtMSU5FQVIgQiBTWUxMQUJMRSBCMDI1IEEyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0MTtMSU5FQVIgQiBTWUxMQUJMRSBCMDQzIEEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0MjtMSU5FQVIgQiBTWUxMQUJMRSBCMDg1IEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0MztMSU5FQVIgQiBTWUxMQUJMRSBCMDcxIERXRTtMbzswO0w7Ozs7O047Ozs7OworMTAwNDQ7TElORUFSIEIgU1lMTEFCTEUgQjA5MCBEV087TG87MDtMOzs7OztOOzs7OzsKKzEwMDQ1O0xJTkVBUiBCIFNZTExBQkxFIEIwNDggTldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0NjtMSU5FQVIgQiBTWUxMQUJMRSBCMDI5IFBVMjtMbzswO0w7Ozs7O047Ozs7OworMTAwNDc7TElORUFSIEIgU1lMTEFCTEUgQjA2MiBQVEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQ4O0xJTkVBUiBCIFNZTExBQkxFIEIwNzYgUkEyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0OTtMSU5FQVIgQiBTWUxMQUJMRSBCMDMzIFJBMztMbzswO0w7Ozs7O047Ozs7OworMTAwNEE7TElORUFSIEIgU1lMTEFCTEUgQjA2OCBSTzI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDRCO0xJTkVBUiBCIFNZTExBQkxFIEIwNjYgVEEyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0QztMSU5FQVIgQiBTWUxMQUJMRSBCMDg3IFRXRTtMbzswO0w7Ozs7O047Ozs7OworMTAwNEQ7TElORUFSIEIgU1lMTEFCTEUgQjA5MSBUV087TG87MDtMOzs7OztOOzs7OzsKKzEwMDUwO0xJTkVBUiBCIFNZTUJPTCBCMDE4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1MTtMSU5FQVIgQiBTWU1CT0wgQjAxOTtMbzswO0w7Ozs7O047Ozs7OworMTAwNTI7TElORUFSIEIgU1lNQk9MIEIwMjI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDUzO0xJTkVBUiBCIFNZTUJPTCBCMDM0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1NDtMSU5FQVIgQiBTWU1CT0wgQjA0NztMbzswO0w7Ozs7O047Ozs7OworMTAwNTU7TElORUFSIEIgU1lNQk9MIEIwNDk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU2O0xJTkVBUiBCIFNZTUJPTCBCMDU2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1NztMSU5FQVIgQiBTWU1CT0wgQjA2MztMbzswO0w7Ozs7O047Ozs7OworMTAwNTg7TElORUFSIEIgU1lNQk9MIEIwNjQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU5O0xJTkVBUiBCIFNZTUJPTCBCMDc5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1QTtMSU5FQVIgQiBTWU1CT0wgQjA4MjtMbzswO0w7Ozs7O047Ozs7OworMTAwNUI7TElORUFSIEIgU1lNQk9MIEIwODM7TG87MDtMOzs7OztOOzs7OzsKKzEwMDVDO0xJTkVBUiBCIFNZTUJPTCBCMDg2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1RDtMSU5FQVIgQiBTWU1CT0wgQjA4OTtMbzswO0w7Ozs7O047Ozs7OworMTAwODA7TElORUFSIEIgSURFT0dSQU0gQjEwMCBNQU47TG87MDtMOzs7OztOOzs7OzsKKzEwMDgxO0xJTkVBUiBCIElERU9HUkFNIEIxMDIgV09NQU47TG87MDtMOzs7OztOOzs7OzsKKzEwMDgyO0xJTkVBUiBCIElERU9HUkFNIEIxMDQgREVFUjtMbzswO0w7Ozs7O047Ozs7OworMTAwODM7TElORUFSIEIgSURFT0dSQU0gQjEwNSBFUVVJRDtMbzswO0w7Ozs7O047Ozs7OworMTAwODQ7TElORUFSIEIgSURFT0dSQU0gQjEwNUYgTUFSRTtMbzswO0w7Ozs7O047Ozs7OworMTAwODU7TElORUFSIEIgSURFT0dSQU0gQjEwNU0gU1RBTExJT047TG87MDtMOzs7OztOOzs7OzsKKzEwMDg2O0xJTkVBUiBCIElERU9HUkFNIEIxMDZGIEVXRTtMbzswO0w7Ozs7O047Ozs7OworMTAwODc7TElORUFSIEIgSURFT0dSQU0gQjEwNk0gUkFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4ODtMSU5FQVIgQiBJREVPR1JBTSBCMTA3RiBTSEUtR09BVDtMbzswO0w7Ozs7O047Ozs7OworMTAwODk7TElORUFSIEIgSURFT0dSQU0gQjEwN00gSEUtR09BVDtMbzswO0w7Ozs7O047Ozs7OworMTAwOEE7TElORUFSIEIgSURFT0dSQU0gQjEwOEYgU09XO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4QjtMSU5FQVIgQiBJREVPR1JBTSBCMTA4TSBCT0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4QztMSU5FQVIgQiBJREVPR1JBTSBCMTA5RiBDT1c7TG87MDtMOzs7OztOOzs7OzsKKzEwMDhEO0xJTkVBUiBCIElERU9HUkFNIEIxMDlNIEJVTEw7TG87MDtMOzs7OztOOzs7OzsKKzEwMDhFO0xJTkVBUiBCIElERU9HUkFNIEIxMjAgV0hFQVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMDhGO0xJTkVBUiBCIElERU9HUkFNIEIxMjEgQkFSTEVZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5MDtMSU5FQVIgQiBJREVPR1JBTSBCMTIyIE9MSVZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5MTtMSU5FQVIgQiBJREVPR1JBTSBCMTIzIFNQSUNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5MjtMSU5FQVIgQiBJREVPR1JBTSBCMTI1IENZUEVSVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMDkzO0xJTkVBUiBCIE1PTk9HUkFNIEIxMjcgS0FQTztMbzswO0w7Ozs7O047Ozs7OworMTAwOTQ7TElORUFSIEIgTU9OT0dSQU0gQjEyOCBLQU5BS087TG87MDtMOzs7OztOOzs7OzsKKzEwMDk1O0xJTkVBUiBCIElERU9HUkFNIEIxMzAgT0lMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5NjtMSU5FQVIgQiBJREVPR1JBTSBCMTMxIFdJTkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDk3O0xJTkVBUiBCIElERU9HUkFNIEIxMzI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDk4O0xJTkVBUiBCIE1PTk9HUkFNIEIxMzMgQVJFUEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDk5O0xJTkVBUiBCIE1PTk9HUkFNIEIxMzUgTUVSSTtMbzswO0w7Ozs7O047Ozs7OworMTAwOUE7TElORUFSIEIgSURFT0dSQU0gQjE0MCBCUk9OWkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDlCO0xJTkVBUiBCIElERU9HUkFNIEIxNDEgR09MRDtMbzswO0w7Ozs7O047Ozs7OworMTAwOUM7TElORUFSIEIgSURFT0dSQU0gQjE0MjtMbzswO0w7Ozs7O047Ozs7OworMTAwOUQ7TElORUFSIEIgSURFT0dSQU0gQjE0NSBXT09MO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5RTtMSU5FQVIgQiBJREVPR1JBTSBCMTQ2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5RjtMSU5FQVIgQiBJREVPR1JBTSBCMTUwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBMDtMSU5FQVIgQiBJREVPR1JBTSBCMTUxIEhPUk47TG87MDtMOzs7OztOOzs7OzsKKzEwMEExO0xJTkVBUiBCIElERU9HUkFNIEIxNTI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEEyO0xJTkVBUiBCIElERU9HUkFNIEIxNTM7TG87MDtMOzs7OztOOzs7OzsKKzEwMEEzO0xJTkVBUiBCIElERU9HUkFNIEIxNTQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE0O0xJTkVBUiBCIE1PTk9HUkFNIEIxNTYgVFVSTzI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE1O0xJTkVBUiBCIElERU9HUkFNIEIxNTc7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE2O0xJTkVBUiBCIElERU9HUkFNIEIxNTg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE3O0xJTkVBUiBCIElERU9HUkFNIEIxNTkgQ0xPVEg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE4O0xJTkVBUiBCIElERU9HUkFNIEIxNjA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE5O0xJTkVBUiBCIElERU9HUkFNIEIxNjE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEFBO0xJTkVBUiBCIElERU9HUkFNIEIxNjIgR0FSTUVOVDtMbzswO0w7Ozs7O047Ozs7OworMTAwQUI7TElORUFSIEIgSURFT0dSQU0gQjE2MyBBUk1PVVI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEFDO0xJTkVBUiBCIElERU9HUkFNIEIxNjQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEFEO0xJTkVBUiBCIElERU9HUkFNIEIxNjU7TG87MDtMOzs7OztOOzs7OzsKKzEwMEFFO0xJTkVBUiBCIElERU9HUkFNIEIxNjY7TG87MDtMOzs7OztOOzs7OzsKKzEwMEFGO0xJTkVBUiBCIElERU9HUkFNIEIxNjc7TG87MDtMOzs7OztOOzs7OzsKKzEwMEIwO0xJTkVBUiBCIElERU9HUkFNIEIxNjg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEIxO0xJTkVBUiBCIElERU9HUkFNIEIxNjk7TG87MDtMOzs7OztOOzs7OzsKKzEwMEIyO0xJTkVBUiBCIElERU9HUkFNIEIxNzA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEIzO0xJTkVBUiBCIElERU9HUkFNIEIxNzE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEI0O0xJTkVBUiBCIElERU9HUkFNIEIxNzI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEI1O0xJTkVBUiBCIElERU9HUkFNIEIxNzMgTU9OVEg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEI2O0xJTkVBUiBCIElERU9HUkFNIEIxNzQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEI3O0xJTkVBUiBCIElERU9HUkFNIEIxNzYgVFJFRTtMbzswO0w7Ozs7O047Ozs7OworMTAwQjg7TElORUFSIEIgSURFT0dSQU0gQjE3NztMbzswO0w7Ozs7O047Ozs7OworMTAwQjk7TElORUFSIEIgSURFT0dSQU0gQjE3ODtMbzswO0w7Ozs7O047Ozs7OworMTAwQkE7TElORUFSIEIgSURFT0dSQU0gQjE3OTtMbzswO0w7Ozs7O047Ozs7OworMTAwQkI7TElORUFSIEIgSURFT0dSQU0gQjE4MDtMbzswO0w7Ozs7O047Ozs7OworMTAwQkM7TElORUFSIEIgSURFT0dSQU0gQjE4MTtMbzswO0w7Ozs7O047Ozs7OworMTAwQkQ7TElORUFSIEIgSURFT0dSQU0gQjE4MjtMbzswO0w7Ozs7O047Ozs7OworMTAwQkU7TElORUFSIEIgSURFT0dSQU0gQjE4MztMbzswO0w7Ozs7O047Ozs7OworMTAwQkY7TElORUFSIEIgSURFT0dSQU0gQjE4NDtMbzswO0w7Ozs7O047Ozs7OworMTAwQzA7TElORUFSIEIgSURFT0dSQU0gQjE4NTtMbzswO0w7Ozs7O047Ozs7OworMTAwQzE7TElORUFSIEIgSURFT0dSQU0gQjE4OTtMbzswO0w7Ozs7O047Ozs7OworMTAwQzI7TElORUFSIEIgSURFT0dSQU0gQjE5MDtMbzswO0w7Ozs7O047Ozs7OworMTAwQzM7TElORUFSIEIgSURFT0dSQU0gQjE5MSBIRUxNRVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM0O0xJTkVBUiBCIElERU9HUkFNIEIyMjAgRk9PVFNUT09MO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDNTtMSU5FQVIgQiBJREVPR1JBTSBCMjI1IEJBVEhUVUI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM2O0xJTkVBUiBCIElERU9HUkFNIEIyMzAgU1BFQVI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM3O0xJTkVBUiBCIElERU9HUkFNIEIyMzEgQVJST1c7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM4O0xJTkVBUiBCIElERU9HUkFNIEIyMzI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM5O0xJTkVBUiBCIElERU9HUkFNIEIyMzMgU1dPUkQ7TG87MDtMOzs7OztOOztwdWc7OzsKKzEwMENBO0xJTkVBUiBCIElERU9HUkFNIEIyMzQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMENCO0xJTkVBUiBCIElERU9HUkFNIEIyMzY7TG87MDtMOzs7OztOOztndXA7OzsKKzEwMENDO0xJTkVBUiBCIElERU9HUkFNIEIyNDAgV0hFRUxFRCBDSEFSSU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDRDtMSU5FQVIgQiBJREVPR1JBTSBCMjQxIENIQVJJT1Q7TG87MDtMOzs7OztOOzs7OzsKKzEwMENFO0xJTkVBUiBCIElERU9HUkFNIEIyNDIgQ0hBUklPVCBGUkFNRTtMbzswO0w7Ozs7O047Ozs7OworMTAwQ0Y7TElORUFSIEIgSURFT0dSQU0gQjI0MyBXSEVFTDtMbzswO0w7Ozs7O047Ozs7OworMTAwRDA7TElORUFSIEIgSURFT0dSQU0gQjI0NTtMbzswO0w7Ozs7O047Ozs7OworMTAwRDE7TElORUFSIEIgSURFT0dSQU0gQjI0NjtMbzswO0w7Ozs7O047Ozs7OworMTAwRDI7TElORUFSIEIgTU9OT0dSQU0gQjI0NyBESVBURTtMbzswO0w7Ozs7O047Ozs7OworMTAwRDM7TElORUFSIEIgSURFT0dSQU0gQjI0ODtMbzswO0w7Ozs7O047Ozs7OworMTAwRDQ7TElORUFSIEIgSURFT0dSQU0gQjI0OTtMbzswO0w7Ozs7O047Ozs7OworMTAwRDU7TElORUFSIEIgSURFT0dSQU0gQjI1MTtMbzswO0w7Ozs7O047Ozs7OworMTAwRDY7TElORUFSIEIgSURFT0dSQU0gQjI1MjtMbzswO0w7Ozs7O047Ozs7OworMTAwRDc7TElORUFSIEIgSURFT0dSQU0gQjI1MztMbzswO0w7Ozs7O047Ozs7OworMTAwRDg7TElORUFSIEIgSURFT0dSQU0gQjI1NCBEQVJUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEOTtMSU5FQVIgQiBJREVPR1JBTSBCMjU1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEQTtMSU5FQVIgQiBJREVPR1JBTSBCMjU2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEQjtMSU5FQVIgQiBJREVPR1JBTSBCMjU3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEQztMSU5FQVIgQiBJREVPR1JBTSBCMjU4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBERDtMSU5FQVIgQiBJREVPR1JBTSBCMjU5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBERTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjE1NTtMbzswO0w7Ozs7O047Ozs7OworMTAwREY7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEUwO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjAxO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFMTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwMjtMbzswO0w7Ozs7O047Ozs7OworMTAwRTI7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDM7TG87MDtMOzs7OztOOzs7OzsKKzEwMEUzO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjA0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFNDtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwNTtMbzswO0w7Ozs7O047Ozs7OworMTAwRTU7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDY7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU2O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjA3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFNztMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwODtMbzswO0w7Ozs7O047Ozs7OworMTAwRTg7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDk7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU5O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjEwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFQTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxMTtMbzswO0w7Ozs7O047Ozs7OworMTAwRUI7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEVDO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFRDtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxNDtMbzswO0w7Ozs7O047Ozs7OworMTAwRUU7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTU7TG87MDtMOzs7OztOOzs7OzsKKzEwMEVGO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjE2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGMDtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxNztMbzswO0w7Ozs7O047Ozs7OworMTAwRjE7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEYyO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjE5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGMztMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIyMTtMbzswO0w7Ozs7O047Ozs7OworMTAwRjQ7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMjI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEY1O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjI2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGNjtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIyNztMbzswO0w7Ozs7O047Ozs7OworMTAwRjc7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMjg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEY4O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjI5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGOTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjI1MDtMbzswO0w7Ozs7O047Ozs7OworMTAwRkE7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIzMDU7TG87MDtMOzs7OztOOzs7OzsKKzEwMTAwO0FFR0VBTiBXT1JEIFNFUEFSQVRPUiBMSU5FO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEwMTtBRUdFQU4gV09SRCBTRVBBUkFUT1IgRE9UO1BvOzA7T047Ozs7O047Ozs7OworMTAxMDI7QUVHRUFOIENIRUNLIE1BUks7U287MDtMOzs7OztOOzs7OzsKKzEwMTA3O0FFR0VBTiBOVU1CRVIgT05FO05vOzA7TDs7OzsxO047Ozs7OworMTAxMDg7QUVHRUFOIE5VTUJFUiBUV087Tm87MDtMOzs7OzI7Tjs7Ozs7CisxMDEwOTtBRUdFQU4gTlVNQkVSIFRIUkVFO05vOzA7TDs7OzszO047Ozs7OworMTAxMEE7QUVHRUFOIE5VTUJFUiBGT1VSO05vOzA7TDs7Ozs0O047Ozs7OworMTAxMEI7QUVHRUFOIE5VTUJFUiBGSVZFO05vOzA7TDs7Ozs1O047Ozs7OworMTAxMEM7QUVHRUFOIE5VTUJFUiBTSVg7Tm87MDtMOzs7OzY7Tjs7Ozs7CisxMDEwRDtBRUdFQU4gTlVNQkVSIFNFVkVOO05vOzA7TDs7Ozs3O047Ozs7OworMTAxMEU7QUVHRUFOIE5VTUJFUiBFSUdIVDtObzswO0w7Ozs7ODtOOzs7OzsKKzEwMTBGO0FFR0VBTiBOVU1CRVIgTklORTtObzswO0w7Ozs7OTtOOzs7OzsKKzEwMTEwO0FFR0VBTiBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzEwMTExO0FFR0VBTiBOVU1CRVIgVFdFTlRZO05vOzA7TDs7OzsyMDtOOzs7OzsKKzEwMTEyO0FFR0VBTiBOVU1CRVIgVEhJUlRZO05vOzA7TDs7OzszMDtOOzs7OzsKKzEwMTEzO0FFR0VBTiBOVU1CRVIgRk9SVFk7Tm87MDtMOzs7OzQwO047Ozs7OworMTAxMTQ7QUVHRUFOIE5VTUJFUiBGSUZUWTtObzswO0w7Ozs7NTA7Tjs7Ozs7CisxMDExNTtBRUdFQU4gTlVNQkVSIFNJWFRZO05vOzA7TDs7Ozs2MDtOOzs7OzsKKzEwMTE2O0FFR0VBTiBOVU1CRVIgU0VWRU5UWTtObzswO0w7Ozs7NzA7Tjs7Ozs7CisxMDExNztBRUdFQU4gTlVNQkVSIEVJR0hUWTtObzswO0w7Ozs7ODA7Tjs7Ozs7CisxMDExODtBRUdFQU4gTlVNQkVSIE5JTkVUWTtObzswO0w7Ozs7OTA7Tjs7Ozs7CisxMDExOTtBRUdFQU4gTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7TDs7OzsxMDA7Tjs7Ozs7CisxMDExQTtBRUdFQU4gTlVNQkVSIFRXTyBIVU5EUkVEO05vOzA7TDs7OzsyMDA7Tjs7Ozs7CisxMDExQjtBRUdFQU4gTlVNQkVSIFRIUkVFIEhVTkRSRUQ7Tm87MDtMOzs7OzMwMDtOOzs7OzsKKzEwMTFDO0FFR0VBTiBOVU1CRVIgRk9VUiBIVU5EUkVEO05vOzA7TDs7Ozs0MDA7Tjs7Ozs7CisxMDExRDtBRUdFQU4gTlVNQkVSIEZJVkUgSFVORFJFRDtObzswO0w7Ozs7NTAwO047Ozs7OworMTAxMUU7QUVHRUFOIE5VTUJFUiBTSVggSFVORFJFRDtObzswO0w7Ozs7NjAwO047Ozs7OworMTAxMUY7QUVHRUFOIE5VTUJFUiBTRVZFTiBIVU5EUkVEO05vOzA7TDs7Ozs3MDA7Tjs7Ozs7CisxMDEyMDtBRUdFQU4gTlVNQkVSIEVJR0hUIEhVTkRSRUQ7Tm87MDtMOzs7OzgwMDtOOzs7OzsKKzEwMTIxO0FFR0VBTiBOVU1CRVIgTklORSBIVU5EUkVEO05vOzA7TDs7Ozs5MDA7Tjs7Ozs7CisxMDEyMjtBRUdFQU4gTlVNQkVSIE9ORSBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDtOOzs7OzsKKzEwMTIzO0FFR0VBTiBOVU1CRVIgVFdPIFRIT1VTQU5EO05vOzA7TDs7OzsyMDAwO047Ozs7OworMTAxMjQ7QUVHRUFOIE5VTUJFUiBUSFJFRSBUSE9VU0FORDtObzswO0w7Ozs7MzAwMDtOOzs7OzsKKzEwMTI1O0FFR0VBTiBOVU1CRVIgRk9VUiBUSE9VU0FORDtObzswO0w7Ozs7NDAwMDtOOzs7OzsKKzEwMTI2O0FFR0VBTiBOVU1CRVIgRklWRSBUSE9VU0FORDtObzswO0w7Ozs7NTAwMDtOOzs7OzsKKzEwMTI3O0FFR0VBTiBOVU1CRVIgU0lYIFRIT1VTQU5EO05vOzA7TDs7Ozs2MDAwO047Ozs7OworMTAxMjg7QUVHRUFOIE5VTUJFUiBTRVZFTiBUSE9VU0FORDtObzswO0w7Ozs7NzAwMDtOOzs7OzsKKzEwMTI5O0FFR0VBTiBOVU1CRVIgRUlHSFQgVEhPVVNBTkQ7Tm87MDtMOzs7OzgwMDA7Tjs7Ozs7CisxMDEyQTtBRUdFQU4gTlVNQkVSIE5JTkUgVEhPVVNBTkQ7Tm87MDtMOzs7OzkwMDA7Tjs7Ozs7CisxMDEyQjtBRUdFQU4gTlVNQkVSIFRFTiBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDA7Tjs7Ozs7CisxMDEyQztBRUdFQU4gTlVNQkVSIFRXRU5UWSBUSE9VU0FORDtObzswO0w7Ozs7MjAwMDA7Tjs7Ozs7CisxMDEyRDtBRUdFQU4gTlVNQkVSIFRISVJUWSBUSE9VU0FORDtObzswO0w7Ozs7MzAwMDA7Tjs7Ozs7CisxMDEyRTtBRUdFQU4gTlVNQkVSIEZPUlRZIFRIT1VTQU5EO05vOzA7TDs7Ozs0MDAwMDtOOzs7OzsKKzEwMTJGO0FFR0VBTiBOVU1CRVIgRklGVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzUwMDAwO047Ozs7OworMTAxMzA7QUVHRUFOIE5VTUJFUiBTSVhUWSBUSE9VU0FORDtObzswO0w7Ozs7NjAwMDA7Tjs7Ozs7CisxMDEzMTtBRUdFQU4gTlVNQkVSIFNFVkVOVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzcwMDAwO047Ozs7OworMTAxMzI7QUVHRUFOIE5VTUJFUiBFSUdIVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzgwMDAwO047Ozs7OworMTAxMzM7QUVHRUFOIE5VTUJFUiBOSU5FVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzkwMDAwO047Ozs7OworMTAxMzc7QUVHRUFOIFdFSUdIVCBCQVNFIFVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTM4O0FFR0VBTiBXRUlHSFQgRklSU1QgU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxMzk7QUVHRUFOIFdFSUdIVCBTRUNPTkQgU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxM0E7QUVHRUFOIFdFSUdIVCBUSElSRCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzQjtBRUdFQU4gV0VJR0hUIEZPVVJUSCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzQztBRUdFQU4gRFJZIE1FQVNVUkUgRklSU1QgU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxM0Q7QUVHRUFOIExJUVVJRCBNRUFTVVJFIEZJUlNUIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTNFO0FFR0VBTiBNRUFTVVJFIFNFQ09ORCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzRjtBRUdFQU4gTUVBU1VSRSBUSElSRCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE0MDtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIE9ORSBRVUFSVEVSO05sOzA7T047Ozs7MS80O047Ozs7OworMTAxNDE7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBPTkUgSEFMRjtObDswO09OOzs7OzEvMjtOOzs7OzsKKzEwMTQyO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgT05FIERSQUNITUE7Tmw7MDtPTjs7OzsxO047Ozs7OworMTAxNDM7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFO05sOzA7T047Ozs7NTtOOzs7OzsKKzEwMTQ0O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklGVFk7Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTQ1O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRSBIVU5EUkVEO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNDY7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFIFRIT1VTQU5EO05sOzA7T047Ozs7NTAwMDtOOzs7OzsKKzEwMTQ3O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklGVFkgVEhPVVNBTkQ7Tmw7MDtPTjs7Ozs1MDAwMDtOOzs7OzsKKzEwMTQ4O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRSBUQUxFTlRTO05sOzA7T047Ozs7NTtOOzs7OzsKKzEwMTQ5O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgVEVOIFRBTEVOVFM7Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTRBO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklGVFkgVEFMRU5UUztObDswO09OOzs7OzUwO047Ozs7OworMTAxNEI7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBPTkUgSFVORFJFRCBUQUxFTlRTO05sOzA7T047Ozs7MTAwO047Ozs7OworMTAxNEM7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFIEhVTkRSRUQgVEFMRU5UUztObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTREO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgT05FIFRIT1VTQU5EIFRBTEVOVFM7Tmw7MDtPTjs7OzsxMDAwO047Ozs7OworMTAxNEU7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFIFRIT1VTQU5EIFRBTEVOVFM7Tmw7MDtPTjs7Ozs1MDAwO047Ozs7OworMTAxNEY7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFIFNUQVRFUlM7Tmw7MDtPTjs7Ozs1O047Ozs7OworMTAxNTA7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBURU4gU1RBVEVSUztObDswO09OOzs7OzEwO047Ozs7OworMTAxNTE7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSUZUWSBTVEFURVJTO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE1MjtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIE9ORSBIVU5EUkVEIFNUQVRFUlM7Tmw7MDtPTjs7OzsxMDA7Tjs7Ozs7CisxMDE1MztHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkUgSFVORFJFRCBTVEFURVJTO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNTQ7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBPTkUgVEhPVVNBTkQgU1RBVEVSUztObDswO09OOzs7OzEwMDA7Tjs7Ozs7CisxMDE1NTtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIFRFTiBUSE9VU0FORCBTVEFURVJTO05sOzA7T047Ozs7MTAwMDA7Tjs7Ozs7CisxMDE1NjtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJRlRZIFRIT1VTQU5EIFNUQVRFUlM7Tmw7MDtPTjs7Ozs1MDAwMDtOOzs7OzsKKzEwMTU3O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgVEVOIE1OQVM7Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTU4O0dSRUVLIEFDUk9QSE9OSUMgSEVSQUVVTSBPTkUgUExFVEhST047Tmw7MDtPTjs7OzsxO047Ozs7OworMTAxNTk7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBPTkU7Tmw7MDtPTjs7OzsxO047Ozs7OworMTAxNUE7R1JFRUsgQUNST1BIT05JQyBIRVJNSU9OSUFOIE9ORTtObDswO09OOzs7OzE7Tjs7Ozs7CisxMDE1QjtHUkVFSyBBQ1JPUEhPTklDIEVQSURBVVJFQU4gVFdPO05sOzA7T047Ozs7MjtOOzs7OzsKKzEwMTVDO0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gVFdPO05sOzA7T047Ozs7MjtOOzs7OzsKKzEwMTVEO0dSRUVLIEFDUk9QSE9OSUMgQ1lSRU5BSUMgVFdPIERSQUNITUFTO05sOzA7T047Ozs7MjtOOzs7OzsKKzEwMTVFO0dSRUVLIEFDUk9QSE9OSUMgRVBJREFVUkVBTiBUV08gRFJBQ0hNQVM7Tmw7MDtPTjs7OzsyO047Ozs7OworMTAxNUY7R1JFRUsgQUNST1BIT05JQyBUUk9FWkVOSUFOIEZJVkU7Tmw7MDtPTjs7Ozs1O047Ozs7OworMTAxNjA7R1JFRUsgQUNST1BIT05JQyBUUk9FWkVOSUFOIFRFTjtObDswO09OOzs7OzEwO047Ozs7OworMTAxNjE7R1JFRUsgQUNST1BIT05JQyBUUk9FWkVOSUFOIFRFTiBBTFRFUk5BVEUgRk9STTtObDswO09OOzs7OzEwO047Ozs7OworMTAxNjI7R1JFRUsgQUNST1BIT05JQyBIRVJNSU9OSUFOIFRFTjtObDswO09OOzs7OzEwO047Ozs7OworMTAxNjM7R1JFRUsgQUNST1BIT05JQyBNRVNTRU5JQU4gVEVOO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE2NDtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIFRFTjtObDswO09OOzs7OzEwO047Ozs7OworMTAxNjU7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBUSElSVFk7Tmw7MDtPTjs7OzszMDtOOzs7OzsKKzEwMTY2O0dSRUVLIEFDUk9QSE9OSUMgVFJPRVpFTklBTiBGSUZUWTtObDswO09OOzs7OzUwO047Ozs7OworMTAxNjc7R1JFRUsgQUNST1BIT05JQyBUUk9FWkVOSUFOIEZJRlRZIEFMVEVSTkFURSBGT1JNO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE2ODtHUkVFSyBBQ1JPUEhPTklDIEhFUk1JT05JQU4gRklGVFk7Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTY5O0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gRklGVFk7Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTZBO0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gT05FIEhVTkRSRUQ7Tmw7MDtPTjs7OzsxMDA7Tjs7Ozs7CisxMDE2QjtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIFRIUkVFIEhVTkRSRUQ7Tmw7MDtPTjs7OzszMDA7Tjs7Ozs7CisxMDE2QztHUkVFSyBBQ1JPUEhPTklDIEVQSURBVVJFQU4gRklWRSBIVU5EUkVEO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNkQ7R1JFRUsgQUNST1BIT05JQyBUUk9FWkVOSUFOIEZJVkUgSFVORFJFRDtObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTZFO0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gRklWRSBIVU5EUkVEO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNkY7R1JFRUsgQUNST1BIT05JQyBDQVJZU1RJQU4gRklWRSBIVU5EUkVEO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNzA7R1JFRUsgQUNST1BIT05JQyBOQVhJQU4gRklWRSBIVU5EUkVEO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNzE7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBPTkUgVEhPVVNBTkQ7Tmw7MDtPTjs7OzsxMDAwO047Ozs7OworMTAxNzI7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBGSVZFIFRIT1VTQU5EO05sOzA7T047Ozs7NTAwMDtOOzs7OzsKKzEwMTczO0dSRUVLIEFDUk9QSE9OSUMgREVMUEhJQyBGSVZFIE1OQVM7Tmw7MDtPTjs7Ozs1O047Ozs7OworMTAxNzQ7R1JFRUsgQUNST1BIT05JQyBTVFJBVElBTiBGSUZUWSBNTkFTO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE3NTtHUkVFSyBPTkUgSEFMRiBTSUdOO05vOzA7T047Ozs7MS8yO047Ozs7OworMTAxNzY7R1JFRUsgT05FIEhBTEYgU0lHTiBBTFRFUk5BVEUgRk9STTtObzswO09OOzs7OzEvMjtOOzs7OzsKKzEwMTc3O0dSRUVLIFRXTyBUSElSRFMgU0lHTjtObzswO09OOzs7OzIvMztOOzs7OzsKKzEwMTc4O0dSRUVLIFRIUkVFIFFVQVJURVJTIFNJR047Tm87MDtPTjs7OzszLzQ7Tjs7Ozs7CisxMDE3OTtHUkVFSyBZRUFSIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE3QTtHUkVFSyBUQUxFTlQgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTdCO0dSRUVLIERSQUNITUEgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTdDO0dSRUVLIE9CT0wgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTdEO0dSRUVLIFRXTyBPQk9MUyBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxN0U7R1JFRUsgVEhSRUUgT0JPTFMgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTdGO0dSRUVLIEZPVVIgT0JPTFMgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTgwO0dSRUVLIEZJVkUgT0JPTFMgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTgxO0dSRUVLIE1FVFJFVEVTIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4MjtHUkVFSyBLWUFUSE9TIEJBU0UgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTgzO0dSRUVLIExJVFJBIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4NDtHUkVFSyBPVU5LSUEgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTg1O0dSRUVLIFhFU1RFUyBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODY7R1JFRUsgQVJUQUJFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4NztHUkVFSyBBUk9VUkEgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTg4O0dSRUVLIEdSQU1NQSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODk7R1JFRUsgVFJZQkxJT04gQkFTRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxOEE7R1JFRUsgWkVSTyBTSUdOO05vOzA7T047Ozs7MDtOOzs7OzsKKzEwMzAwO09MRCBJVEFMSUMgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzAxO09MRCBJVEFMSUMgTEVUVEVSIEJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwMjtPTEQgSVRBTElDIExFVFRFUiBLRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDM7T0xEIElUQUxJQyBMRVRURVIgREU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA0O09MRCBJVEFMSUMgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA1O09MRCBJVEFMSUMgTEVUVEVSIFZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNjtPTEQgSVRBTElDIExFVFRFUiBaRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDc7T0xEIElUQUxJQyBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA4O09MRCBJVEFMSUMgTEVUVEVSIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDk7T0xEIElUQUxJQyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTAzMEE7T0xEIElUQUxJQyBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBCO09MRCBJVEFMSUMgTEVUVEVSIEVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwQztPTEQgSVRBTElDIExFVFRFUiBFTTtMbzswO0w7Ozs7O047Ozs7OworMTAzMEQ7T0xEIElUQUxJQyBMRVRURVIgRU47TG87MDtMOzs7OztOOzs7OzsKKzEwMzBFO09MRCBJVEFMSUMgTEVUVEVSIEVTSDtMbzswO0w7Ozs7O047Ozs7OworMTAzMEY7T0xEIElUQUxJQyBMRVRURVIgTztMbzswO0w7Ozs7O047O0ZhbGlzY2FuOzs7CisxMDMxMDtPTEQgSVRBTElDIExFVFRFUiBQRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTE7T0xEIElUQUxJQyBMRVRURVIgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxMjtPTEQgSVRBTElDIExFVFRFUiBLVTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTM7T0xEIElUQUxJQyBMRVRURVIgRVI7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE0O09MRCBJVEFMSUMgTEVUVEVSIEVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxNTtPTEQgSVRBTElDIExFVFRFUiBURTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTY7T0xEIElUQUxJQyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTc7T0xEIElUQUxJQyBMRVRURVIgRUtTO0xvOzA7TDs7Ozs7Tjs7RmFsaXNjYW47OzsKKzEwMzE4O09MRCBJVEFMSUMgTEVUVEVSIFBIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTk7T0xEIElUQUxJQyBMRVRURVIgS0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxQTtPTEQgSVRBTElDIExFVFRFUiBFRjtMbzswO0w7Ozs7O047Ozs7OworMTAzMUI7T0xEIElUQUxJQyBMRVRURVIgRVJTO0xvOzA7TDs7Ozs7Tjs7VW1icmlhbjs7OworMTAzMUM7T0xEIElUQUxJQyBMRVRURVIgQ0hFO0xvOzA7TDs7Ozs7Tjs7VW1icmlhbjs7OworMTAzMUQ7T0xEIElUQUxJQyBMRVRURVIgSUk7TG87MDtMOzs7OztOOztPc2Nhbjs7OworMTAzMUU7T0xEIElUQUxJQyBMRVRURVIgVVU7TG87MDtMOzs7OztOOztPc2Nhbjs7OworMTAzMjA7T0xEIElUQUxJQyBOVU1FUkFMIE9ORTtObzswO0w7Ozs7MTtOOzs7OzsKKzEwMzIxO09MRCBJVEFMSUMgTlVNRVJBTCBGSVZFO05vOzA7TDs7Ozs1O047Ozs7OworMTAzMjI7T0xEIElUQUxJQyBOVU1FUkFMIFRFTjtObzswO0w7Ozs7MTA7Tjs7Ozs7CisxMDMyMztPTEQgSVRBTElDIE5VTUVSQUwgRklGVFk7Tm87MDtMOzs7OzUwO047Ozs7OworMTAzMzA7R09USElDIExFVFRFUiBBSFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzMTtHT1RISUMgTEVUVEVSIEJBSVJLQU47TG87MDtMOzs7OztOOzs7OzsKKzEwMzMyO0dPVEhJQyBMRVRURVIgR0lCQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzM7R09USElDIExFVFRFUiBEQUdTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzNDtHT1RISUMgTEVUVEVSIEFJSFZVUztMbzswO0w7Ozs7O047Ozs7OworMTAzMzU7R09USElDIExFVFRFUiBRQUlSVEhSQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzY7R09USElDIExFVFRFUiBJVUpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzNztHT1RISUMgTEVUVEVSIEhBR0w7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM4O0dPVEhJQyBMRVRURVIgVEhJVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzOTtHT1RISUMgTEVUVEVSIEVJUztMbzswO0w7Ozs7O047Ozs7OworMTAzM0E7R09USElDIExFVFRFUiBLVVNNQTtMbzswO0w7Ozs7O047Ozs7OworMTAzM0I7R09USElDIExFVFRFUiBMQUdVUztMbzswO0w7Ozs7O047Ozs7OworMTAzM0M7R09USElDIExFVFRFUiBNQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMTAzM0Q7R09USElDIExFVFRFUiBOQVVUSFM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNFO0dPVEhJQyBMRVRURVIgSkVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzRjtHT1RISUMgTEVUVEVSIFVSVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQwO0dPVEhJQyBMRVRURVIgUEFJUlRIUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQxO0dPVEhJQyBMRVRURVIgTklORVRZO05sOzA7TDs7Ozs5MDtOOzs7OzsKKzEwMzQyO0dPVEhJQyBMRVRURVIgUkFJREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQzO0dPVEhJQyBMRVRURVIgU0FVSUw7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQ0O0dPVEhJQyBMRVRURVIgVEVJV1M7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQ1O0dPVEhJQyBMRVRURVIgV0lOSkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQ2O0dPVEhJQyBMRVRURVIgRkFJSFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQ3O0dPVEhJQyBMRVRURVIgSUdHV1M7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQ4O0dPVEhJQyBMRVRURVIgSFdBSVI7TG87MDtMOzs7OztOOzs7OzsKKzEwMzQ5O0dPVEhJQyBMRVRURVIgT1RIQUw7TG87MDtMOzs7OztOOzs7OzsKKzEwMzRBO0dPVEhJQyBMRVRURVIgTklORSBIVU5EUkVEO05sOzA7TDs7Ozs5MDA7Tjs7Ozs7CisxMDM4MDtVR0FSSVRJQyBMRVRURVIgQUxQQTtMbzswO0w7Ozs7O047Ozs7OworMTAzODE7VUdBUklUSUMgTEVUVEVSIEJFVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzgyO1VHQVJJVElDIExFVFRFUiBHQU1MQTtMbzswO0w7Ozs7O047Ozs7OworMTAzODM7VUdBUklUSUMgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzODQ7VUdBUklUSUMgTEVUVEVSIERFTFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4NTtVR0FSSVRJQyBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzEwMzg2O1VHQVJJVElDIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMTAzODc7VUdBUklUSUMgTEVUVEVSIFpFVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzg4O1VHQVJJVElDIExFVFRFUiBIT1RBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4OTtVR0FSSVRJQyBMRVRURVIgVEVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4QTtVR0FSSVRJQyBMRVRURVIgWU9EO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4QjtVR0FSSVRJQyBMRVRURVIgS0FGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4QztVR0FSSVRJQyBMRVRURVIgU0hJTjtMbzswO0w7Ozs7O047Ozs7OworMTAzOEQ7VUdBUklUSUMgTEVUVEVSIExBTURBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4RTtVR0FSSVRJQyBMRVRURVIgTUVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4RjtVR0FSSVRJQyBMRVRURVIgREhBTDtMbzswO0w7Ozs7O047Ozs7OworMTAzOTA7VUdBUklUSUMgTEVUVEVSIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTAzOTE7VUdBUklUSUMgTEVUVEVSIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5MjtVR0FSSVRJQyBMRVRURVIgU0FNS0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMzkzO1VHQVJJVElDIExFVFRFUiBBSU47TG87MDtMOzs7OztOOzs7OzsKKzEwMzk0O1VHQVJJVElDIExFVFRFUiBQVTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTU7VUdBUklUSUMgTEVUVEVSIFNBREU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzk2O1VHQVJJVElDIExFVFRFUiBRT1BBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5NztVR0FSSVRJQyBMRVRURVIgUkFTSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzk4O1VHQVJJVElDIExFVFRFUiBUSEFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzk5O1VHQVJJVElDIExFVFRFUiBHSEFJTjtMbzswO0w7Ozs7O047Ozs7OworMTAzOUE7VUdBUklUSUMgTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5QjtVR0FSSVRJQyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTAzOUM7VUdBUklUSUMgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzlEO1VHQVJJVElDIExFVFRFUiBTU1U7TG87MDtMOzs7OztOOzs7OzsKKzEwMzlGO1VHQVJJVElDIFdPUkQgRElWSURFUjtQbzswO0w7Ozs7O047Ozs7OworMTAzQTA7T0xEIFBFUlNJQU4gU0lHTiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBMTtPTEQgUEVSU0lBTiBTSUdOIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwM0EyO09MRCBQRVJTSUFOIFNJR04gVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTM7T0xEIFBFUlNJQU4gU0lHTiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTQ7T0xEIFBFUlNJQU4gU0lHTiBLVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTU7T0xEIFBFUlNJQU4gU0lHTiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTY7T0xEIFBFUlNJQU4gU0lHTiBHVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTc7T0xEIFBFUlNJQU4gU0lHTiBYQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTg7T0xEIFBFUlNJQU4gU0lHTiBDQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTk7T0xEIFBFUlNJQU4gU0lHTiBKQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQUE7T0xEIFBFUlNJQU4gU0lHTiBKSTtMbzswO0w7Ozs7O047Ozs7OworMTAzQUI7T0xEIFBFUlNJQU4gU0lHTiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQUM7T0xEIFBFUlNJQU4gU0lHTiBUVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQUQ7T0xEIFBFUlNJQU4gU0lHTiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQUU7T0xEIFBFUlNJQU4gU0lHTiBESTtMbzswO0w7Ozs7O047Ozs7OworMTAzQUY7T0xEIFBFUlNJQU4gU0lHTiBEVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjA7T0xEIFBFUlNJQU4gU0lHTiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0IxO09MRCBQRVJTSUFOIFNJR04gUEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0IyO09MRCBQRVJTSUFOIFNJR04gQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0IzO09MRCBQRVJTSUFOIFNJR04gRkE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0I0O09MRCBQRVJTSUFOIFNJR04gTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0I1O09MRCBQRVJTSUFOIFNJR04gTlU7TG87MDtMOzs7OztOOzs7OzsKKzEwM0I2O09MRCBQRVJTSUFOIFNJR04gTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0I3O09MRCBQRVJTSUFOIFNJR04gTUk7TG87MDtMOzs7OztOOzs7OzsKKzEwM0I4O09MRCBQRVJTSUFOIFNJR04gTVU7TG87MDtMOzs7OztOOzs7OzsKKzEwM0I5O09MRCBQRVJTSUFOIFNJR04gWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0JBO09MRCBQRVJTSUFOIFNJR04gVkE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0JCO09MRCBQRVJTSUFOIFNJR04gVkk7TG87MDtMOzs7OztOOzs7OzsKKzEwM0JDO09MRCBQRVJTSUFOIFNJR04gUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0JEO09MRCBQRVJTSUFOIFNJR04gUlU7TG87MDtMOzs7OztOOzs7OzsKKzEwM0JFO09MRCBQRVJTSUFOIFNJR04gTEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0JGO09MRCBQRVJTSUFOIFNJR04gU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwM0MwO09MRCBQRVJTSUFOIFNJR04gWkE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0MxO09MRCBQRVJTSUFOIFNJR04gU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDMjtPTEQgUEVSU0lBTiBTSUdOIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQzM7T0xEIFBFUlNJQU4gU0lHTiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQzg7T0xEIFBFUlNJQU4gU0lHTiBBVVJBTUFaREFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDOTtPTEQgUEVSU0lBTiBTSUdOIEFVUkFNQVpEQUEtMjtMbzswO0w7Ozs7O047Ozs7OworMTAzQ0E7T0xEIFBFUlNJQU4gU0lHTiBBVVJBTUFaREFBSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0NCO09MRCBQRVJTSUFOIFNJR04gWFNIQUFZQVRISVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDQztPTEQgUEVSU0lBTiBTSUdOIERBSFlBQVVTSDtMbzswO0w7Ozs7O047Ozs7OworMTAzQ0Q7T0xEIFBFUlNJQU4gU0lHTiBEQUhZQUFVU0gtMjtMbzswO0w7Ozs7O047Ozs7OworMTAzQ0U7T0xEIFBFUlNJQU4gU0lHTiBCQUdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDRjtPTEQgUEVSU0lBTiBTSUdOIEJVVU1JU0g7TG87MDtMOzs7OztOOzs7OzsKKzEwM0QwO09MRCBQRVJTSUFOIFdPUkQgRElWSURFUjtQbzswO0w7Ozs7O047Ozs7OworMTAzRDE7T0xEIFBFUlNJQU4gTlVNQkVSIE9ORTtObDswO0w7Ozs7MTtOOzs7OzsKKzEwM0QyO09MRCBQRVJTSUFOIE5VTUJFUiBUV087Tmw7MDtMOzs7OzI7Tjs7Ozs7CisxMDNEMztPTEQgUEVSU0lBTiBOVU1CRVIgVEVOO05sOzA7TDs7OzsxMDtOOzs7OzsKKzEwM0Q0O09MRCBQRVJTSUFOIE5VTUJFUiBUV0VOVFk7Tmw7MDtMOzs7OzIwO047Ozs7OworMTAzRDU7T0xEIFBFUlNJQU4gTlVNQkVSIEhVTkRSRUQ7Tmw7MDtMOzs7OzEwMDtOOzs7OzsKKzEwNDAwO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBJO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyODsKKzEwNDAxO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyOTsKKzEwNDAyO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBBO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyQTsKKzEwNDAzO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBBSDtMdTswO0w7Ozs7O047Ozs7MTA0MkI7CisxMDQwNDtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgTztMdTswO0w7Ozs7O047Ozs7MTA0MkM7CisxMDQwNTtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgT087THU7MDtMOzs7OztOOzs7OzEwNDJEOworMTA0MDY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBJO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyRTsKKzEwNDA3O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgRTtMdTswO0w7Ozs7O047Ozs7MTA0MkY7CisxMDQwODtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIEE7THU7MDtMOzs7OztOOzs7OzEwNDMwOworMTA0MDk7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBBSDtMdTswO0w7Ozs7O047Ozs7MTA0MzE7CisxMDQwQTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIE87THU7MDtMOzs7OztOOzs7OzEwNDMyOworMTA0MEI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBPTztMdTswO0w7Ozs7O047Ozs7MTA0MzM7CisxMDQwQztERVNFUkVUIENBUElUQUwgTEVUVEVSIEFZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzNDsKKzEwNDBEO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgT1c7THU7MDtMOzs7OztOOzs7OzEwNDM1OworMTA0MEU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBXVTtMdTswO0w7Ozs7O047Ozs7MTA0MzY7CisxMDQwRjtERVNFUkVUIENBUElUQUwgTEVUVEVSIFlFRTtMdTswO0w7Ozs7O047Ozs7MTA0Mzc7CisxMDQxMDtERVNFUkVUIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzs7OztOOzs7OzEwNDM4OworMTA0MTE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBQRUU7THU7MDtMOzs7OztOOzs7OzEwNDM5OworMTA0MTI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBCRUU7THU7MDtMOzs7OztOOzs7OzEwNDNBOworMTA0MTM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBURUU7THU7MDtMOzs7OztOOzs7OzEwNDNCOworMTA0MTQ7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBERUU7THU7MDtMOzs7OztOOzs7OzEwNDNDOworMTA0MTU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBDSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRDsKKzEwNDE2O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgSkVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRTsKKzEwNDE3O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgS0FZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRjsKKzEwNDE4O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgR0FZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0MDsKKzEwNDE5O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRUY7THU7MDtMOzs7OztOOzs7OzEwNDQxOworMTA0MUE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBWRUU7THU7MDtMOzs7OztOOzs7OzEwNDQyOworMTA0MUI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFVEg7THU7MDtMOzs7OztOOzs7OzEwNDQzOworMTA0MUM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBUSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0NDsKKzEwNDFEO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzEwNDQ1OworMTA0MUU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBaRUU7THU7MDtMOzs7OztOOzs7OzEwNDQ2OworMTA0MUY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFU0g7THU7MDtMOzs7OztOOzs7OzEwNDQ3OworMTA0MjA7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBaSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0ODsKKzEwNDIxO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVI7THU7MDtMOzs7OztOOzs7OzEwNDQ5OworMTA0MjI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTDtMdTswO0w7Ozs7O047Ozs7MTA0NEE7CisxMDQyMztERVNFUkVUIENBUElUQUwgTEVUVEVSIEVNO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0QjsKKzEwNDI0O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzEwNDRDOworMTA0MjU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTkc7THU7MDtMOzs7OztOOzs7OzEwNDREOworMTA0MjY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBPSTtMdTswO0w7Ozs7O047Ozs7MTA0NEU7CisxMDQyNztERVNFUkVUIENBUElUQUwgTEVUVEVSIEVXO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0RjsKKzEwNDI4O0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgSTtMbDswO0w7Ozs7O047OzsxMDQwMDs7MTA0MDAKKzEwNDI5O0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgRTtMbDswO0w7Ozs7O047OzsxMDQwMTs7MTA0MDEKKzEwNDJBO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgQTtMbDswO0w7Ozs7O047OzsxMDQwMjs7MTA0MDIKKzEwNDJCO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgQUg7TGw7MDtMOzs7OztOOzs7MTA0MDM7OzEwNDAzCisxMDQyQztERVNFUkVUIFNNQUxMIExFVFRFUiBMT05HIE87TGw7MDtMOzs7OztOOzs7MTA0MDQ7OzEwNDA0CisxMDQyRDtERVNFUkVUIFNNQUxMIExFVFRFUiBMT05HIE9PO0xsOzA7TDs7Ozs7Tjs7OzEwNDA1OzsxMDQwNQorMTA0MkU7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgSTtMbDswO0w7Ozs7O047OzsxMDQwNjs7MTA0MDYKKzEwNDJGO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIEU7TGw7MDtMOzs7OztOOzs7MTA0MDc7OzEwNDA3CisxMDQzMDtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBBO0xsOzA7TDs7Ozs7Tjs7OzEwNDA4OzsxMDQwOAorMTA0MzE7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgQUg7TGw7MDtMOzs7OztOOzs7MTA0MDk7OzEwNDA5CisxMDQzMjtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBPO0xsOzA7TDs7Ozs7Tjs7OzEwNDBBOzsxMDQwQQorMTA0MzM7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgT087TGw7MDtMOzs7OztOOzs7MTA0MEI7OzEwNDBCCisxMDQzNDtERVNFUkVUIFNNQUxMIExFVFRFUiBBWTtMbDswO0w7Ozs7O047OzsxMDQwQzs7MTA0MEMKKzEwNDM1O0RFU0VSRVQgU01BTEwgTEVUVEVSIE9XO0xsOzA7TDs7Ozs7Tjs7OzEwNDBEOzsxMDQwRAorMTA0MzY7REVTRVJFVCBTTUFMTCBMRVRURVIgV1U7TGw7MDtMOzs7OztOOzs7MTA0MEU7OzEwNDBFCisxMDQzNztERVNFUkVUIFNNQUxMIExFVFRFUiBZRUU7TGw7MDtMOzs7OztOOzs7MTA0MEY7OzEwNDBGCisxMDQzODtERVNFUkVUIFNNQUxMIExFVFRFUiBIO0xsOzA7TDs7Ozs7Tjs7OzEwNDEwOzsxMDQxMAorMTA0Mzk7REVTRVJFVCBTTUFMTCBMRVRURVIgUEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDExOzsxMDQxMQorMTA0M0E7REVTRVJFVCBTTUFMTCBMRVRURVIgQkVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDEyOzsxMDQxMgorMTA0M0I7REVTRVJFVCBTTUFMTCBMRVRURVIgVEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDEzOzsxMDQxMworMTA0M0M7REVTRVJFVCBTTUFMTCBMRVRURVIgREVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDE0OzsxMDQxNAorMTA0M0Q7REVTRVJFVCBTTUFMTCBMRVRURVIgQ0hFRTtMbDswO0w7Ozs7O047OzsxMDQxNTs7MTA0MTUKKzEwNDNFO0RFU0VSRVQgU01BTEwgTEVUVEVSIEpFRTtMbDswO0w7Ozs7O047OzsxMDQxNjs7MTA0MTYKKzEwNDNGO0RFU0VSRVQgU01BTEwgTEVUVEVSIEtBWTtMbDswO0w7Ozs7O047OzsxMDQxNzs7MTA0MTcKKzEwNDQwO0RFU0VSRVQgU01BTEwgTEVUVEVSIEdBWTtMbDswO0w7Ozs7O047OzsxMDQxODs7MTA0MTgKKzEwNDQxO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVGO0xsOzA7TDs7Ozs7Tjs7OzEwNDE5OzsxMDQxOQorMTA0NDI7REVTRVJFVCBTTUFMTCBMRVRURVIgVkVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDFBOzsxMDQxQQorMTA0NDM7REVTRVJFVCBTTUFMTCBMRVRURVIgRVRIO0xsOzA7TDs7Ozs7Tjs7OzEwNDFCOzsxMDQxQgorMTA0NDQ7REVTRVJFVCBTTUFMTCBMRVRURVIgVEhFRTtMbDswO0w7Ozs7O047OzsxMDQxQzs7MTA0MUMKKzEwNDQ1O0RFU0VSRVQgU01BTEwgTEVUVEVSIEVTO0xsOzA7TDs7Ozs7Tjs7OzEwNDFEOzsxMDQxRAorMTA0NDY7REVTRVJFVCBTTUFMTCBMRVRURVIgWkVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDFFOzsxMDQxRQorMTA0NDc7REVTRVJFVCBTTUFMTCBMRVRURVIgRVNIO0xsOzA7TDs7Ozs7Tjs7OzEwNDFGOzsxMDQxRgorMTA0NDg7REVTRVJFVCBTTUFMTCBMRVRURVIgWkhFRTtMbDswO0w7Ozs7O047OzsxMDQyMDs7MTA0MjAKKzEwNDQ5O0RFU0VSRVQgU01BTEwgTEVUVEVSIEVSO0xsOzA7TDs7Ozs7Tjs7OzEwNDIxOzsxMDQyMQorMTA0NEE7REVTRVJFVCBTTUFMTCBMRVRURVIgRUw7TGw7MDtMOzs7OztOOzs7MTA0MjI7OzEwNDIyCisxMDQ0QjtERVNFUkVUIFNNQUxMIExFVFRFUiBFTTtMbDswO0w7Ozs7O047OzsxMDQyMzs7MTA0MjMKKzEwNDRDO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVOO0xsOzA7TDs7Ozs7Tjs7OzEwNDI0OzsxMDQyNAorMTA0NEQ7REVTRVJFVCBTTUFMTCBMRVRURVIgRU5HO0xsOzA7TDs7Ozs7Tjs7OzEwNDI1OzsxMDQyNQorMTA0NEU7REVTRVJFVCBTTUFMTCBMRVRURVIgT0k7TGw7MDtMOzs7OztOOzs7MTA0MjY7OzEwNDI2CisxMDQ0RjtERVNFUkVUIFNNQUxMIExFVFRFUiBFVztMbDswO0w7Ozs7O047OzsxMDQyNzs7MTA0MjcKKzEwNDUwO1NIQVZJQU4gTEVUVEVSIFBFRVA7TG87MDtMOzs7OztOOzs7OzsKKzEwNDUxO1NIQVZJQU4gTEVUVEVSIFRPVDtMbzswO0w7Ozs7O047Ozs7OworMTA0NTI7U0hBVklBTiBMRVRURVIgS0lDSztMbzswO0w7Ozs7O047Ozs7OworMTA0NTM7U0hBVklBTiBMRVRURVIgRkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1NDtTSEFWSUFOIExFVFRFUiBUSElHSDtMbzswO0w7Ozs7O047Ozs7OworMTA0NTU7U0hBVklBTiBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzEwNDU2O1NIQVZJQU4gTEVUVEVSIFNVUkU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDU3O1NIQVZJQU4gTEVUVEVSIENIVVJDSDtMbzswO0w7Ozs7O047Ozs7OworMTA0NTg7U0hBVklBTiBMRVRURVIgWUVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1OTtTSEFWSUFOIExFVFRFUiBIVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1QTtTSEFWSUFOIExFVFRFUiBCSUI7TG87MDtMOzs7OztOOzs7OzsKKzEwNDVCO1NIQVZJQU4gTEVUVEVSIERFQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEwNDVDO1NIQVZJQU4gTEVUVEVSIEdBRztMbzswO0w7Ozs7O047Ozs7OworMTA0NUQ7U0hBVklBTiBMRVRURVIgVk9XO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1RTtTSEFWSUFOIExFVFRFUiBUSEVZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1RjtTSEFWSUFOIExFVFRFUiBaT087TG87MDtMOzs7OztOOzs7OzsKKzEwNDYwO1NIQVZJQU4gTEVUVEVSIE1FQVNVUkU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDYxO1NIQVZJQU4gTEVUVEVSIEpVREdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2MjtTSEFWSUFOIExFVFRFUiBXT0U7TG87MDtMOzs7OztOOzs7OzsKKzEwNDYzO1NIQVZJQU4gTEVUVEVSIEhBLUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2NDtTSEFWSUFOIExFVFRFUiBMT0xMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2NTtTSEFWSUFOIExFVFRFUiBNSU1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2NjtTSEFWSUFOIExFVFRFUiBJRjtMbzswO0w7Ozs7O047Ozs7OworMTA0Njc7U0hBVklBTiBMRVRURVIgRUdHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2ODtTSEFWSUFOIExFVFRFUiBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEwNDY5O1NIQVZJQU4gTEVUVEVSIEFETztMbzswO0w7Ozs7O047Ozs7OworMTA0NkE7U0hBVklBTiBMRVRURVIgT047TG87MDtMOzs7OztOOzs7OzsKKzEwNDZCO1NIQVZJQU4gTEVUVEVSIFdPT0w7TG87MDtMOzs7OztOOzs7OzsKKzEwNDZDO1NIQVZJQU4gTEVUVEVSIE9VVDtMbzswO0w7Ozs7O047Ozs7OworMTA0NkQ7U0hBVklBTiBMRVRURVIgQUg7TG87MDtMOzs7OztOOzs7OzsKKzEwNDZFO1NIQVZJQU4gTEVUVEVSIFJPQVI7TG87MDtMOzs7OztOOzs7OzsKKzEwNDZGO1NIQVZJQU4gTEVUVEVSIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTA0NzA7U0hBVklBTiBMRVRURVIgRUFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3MTtTSEFWSUFOIExFVFRFUiBBR0U7TG87MDtMOzs7OztOOzs7OzsKKzEwNDcyO1NIQVZJQU4gTEVUVEVSIElDRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NzM7U0hBVklBTiBMRVRURVIgVVA7TG87MDtMOzs7OztOOzs7OzsKKzEwNDc0O1NIQVZJQU4gTEVUVEVSIE9BSztMbzswO0w7Ozs7O047Ozs7OworMTA0NzU7U0hBVklBTiBMRVRURVIgT09aRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NzY7U0hBVklBTiBMRVRURVIgT0lMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3NztTSEFWSUFOIExFVFRFUiBBV0U7TG87MDtMOzs7OztOOzs7OzsKKzEwNDc4O1NIQVZJQU4gTEVUVEVSIEFSRTtMbzswO0w7Ozs7O047Ozs7OworMTA0Nzk7U0hBVklBTiBMRVRURVIgT1I7TG87MDtMOzs7OztOOzs7OzsKKzEwNDdBO1NIQVZJQU4gTEVUVEVSIEFJUjtMbzswO0w7Ozs7O047Ozs7OworMTA0N0I7U0hBVklBTiBMRVRURVIgRVJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3QztTSEFWSUFOIExFVFRFUiBBUlJBWTtMbzswO0w7Ozs7O047Ozs7OworMTA0N0Q7U0hBVklBTiBMRVRURVIgRUFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3RTtTSEFWSUFOIExFVFRFUiBJQU47TG87MDtMOzs7OztOOzs7OzsKKzEwNDdGO1NIQVZJQU4gTEVUVEVSIFlFVztMbzswO0w7Ozs7O047Ozs7OworMTA0ODA7T1NNQU5ZQSBMRVRURVIgQUxFRjtMbzswO0w7Ozs7O047Ozs7OworMTA0ODE7T1NNQU5ZQSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDgyO09TTUFOWUEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4MztPU01BTllBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMTA0ODQ7T1NNQU5ZQSBMRVRURVIgWEE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDg1O09TTUFOWUEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTA0ODY7T1NNQU5ZQSBMRVRURVIgREVFTDtMbzswO0w7Ozs7O047Ozs7OworMTA0ODc7T1NNQU5ZQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDg4O09TTUFOWUEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4OTtPU01BTllBIExFVFRFUiBTSElJTjtMbzswO0w7Ozs7O047Ozs7OworMTA0OEE7T1NNQU5ZQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4QjtPU01BTllBIExFVFRFUiBDQVlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4QztPU01BTllBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTA0OEQ7T1NNQU5ZQSBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDhFO09TTUFOWUEgTEVUVEVSIFFBQUY7TG87MDtMOzs7OztOOzs7OzsKKzEwNDhGO09TTUFOWUEgTEVUVEVSIEtBQUY7TG87MDtMOzs7OztOOzs7OzsKKzEwNDkwO09TTUFOWUEgTEVUVEVSIExBQU47TG87MDtMOzs7OztOOzs7OzsKKzEwNDkxO09TTUFOWUEgTEVUVEVSIE1JSU47TG87MDtMOzs7OztOOzs7OzsKKzEwNDkyO09TTUFOWUEgTEVUVEVSIE5VVU47TG87MDtMOzs7OztOOzs7OzsKKzEwNDkzO09TTUFOWUEgTEVUVEVSIFdBVztMbzswO0w7Ozs7O047Ozs7OworMTA0OTQ7T1NNQU5ZQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDk1O09TTUFOWUEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5NjtPU01BTllBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5NztPU01BTllBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5ODtPU01BTllBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5OTtPU01BTllBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5QTtPU01BTllBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5QjtPU01BTllBIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMTA0OUM7T1NNQU5ZQSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDlEO09TTUFOWUEgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDRBMDtPU01BTllBIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzEwNEExO09TTUFOWUEgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxMDRBMjtPU01BTllBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTA0QTM7T1NNQU5ZQSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMTA0QTQ7T1NNQU5ZQSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxMDRBNTtPU01BTllBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzEwNEE2O09TTUFOWUEgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CisxMDRBNztPU01BTllBIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxMDRBODtPU01BTllBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxMDRBOTtPU01BTllBIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzEwODAwO0NZUFJJT1QgU1lMTEFCTEUgQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MDE7Q1lQUklPVCBTWUxMQUJMRSBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwMjtDWVBSSU9UIFNZTExBQkxFIEk7TG87MDtSOzs7OztOOzs7OzsKKzEwODAzO0NZUFJJT1QgU1lMTEFCTEUgTztMbzswO1I7Ozs7O047Ozs7OworMTA4MDQ7Q1lQUklPVCBTWUxMQUJMRSBVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwNTtDWVBSSU9UIFNZTExBQkxFIEpBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwODtDWVBSSU9UIFNZTExBQkxFIEpPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwQTtDWVBSSU9UIFNZTExBQkxFIEtBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwQjtDWVBSSU9UIFNZTExBQkxFIEtFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwQztDWVBSSU9UIFNZTExBQkxFIEtJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwRDtDWVBSSU9UIFNZTExBQkxFIEtPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwRTtDWVBSSU9UIFNZTExBQkxFIEtVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwRjtDWVBSSU9UIFNZTExBQkxFIExBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxMDtDWVBSSU9UIFNZTExBQkxFIExFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxMTtDWVBSSU9UIFNZTExBQkxFIExJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxMjtDWVBSSU9UIFNZTExBQkxFIExPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxMztDWVBSSU9UIFNZTExBQkxFIExVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxNDtDWVBSSU9UIFNZTExBQkxFIE1BO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxNTtDWVBSSU9UIFNZTExBQkxFIE1FO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxNjtDWVBSSU9UIFNZTExBQkxFIE1JO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxNztDWVBSSU9UIFNZTExBQkxFIE1PO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxODtDWVBSSU9UIFNZTExBQkxFIE1VO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxOTtDWVBSSU9UIFNZTExBQkxFIE5BO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxQTtDWVBSSU9UIFNZTExBQkxFIE5FO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxQjtDWVBSSU9UIFNZTExBQkxFIE5JO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxQztDWVBSSU9UIFNZTExBQkxFIE5PO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxRDtDWVBSSU9UIFNZTExBQkxFIE5VO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxRTtDWVBSSU9UIFNZTExBQkxFIFBBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgxRjtDWVBSSU9UIFNZTExBQkxFIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyMDtDWVBSSU9UIFNZTExBQkxFIFBJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyMTtDWVBSSU9UIFNZTExBQkxFIFBPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyMjtDWVBSSU9UIFNZTExBQkxFIFBVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyMztDWVBSSU9UIFNZTExBQkxFIFJBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyNDtDWVBSSU9UIFNZTExBQkxFIFJFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyNTtDWVBSSU9UIFNZTExBQkxFIFJJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyNjtDWVBSSU9UIFNZTExBQkxFIFJPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyNztDWVBSSU9UIFNZTExBQkxFIFJVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyODtDWVBSSU9UIFNZTExBQkxFIFNBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyOTtDWVBSSU9UIFNZTExBQkxFIFNFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyQTtDWVBSSU9UIFNZTExBQkxFIFNJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyQjtDWVBSSU9UIFNZTExBQkxFIFNPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyQztDWVBSSU9UIFNZTExBQkxFIFNVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyRDtDWVBSSU9UIFNZTExBQkxFIFRBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyRTtDWVBSSU9UIFNZTExBQkxFIFRFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgyRjtDWVBSSU9UIFNZTExBQkxFIFRJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzMDtDWVBSSU9UIFNZTExBQkxFIFRPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzMTtDWVBSSU9UIFNZTExBQkxFIFRVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzMjtDWVBSSU9UIFNZTExBQkxFIFdBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzMztDWVBSSU9UIFNZTExBQkxFIFdFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzNDtDWVBSSU9UIFNZTExBQkxFIFdJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzNTtDWVBSSU9UIFNZTExBQkxFIFdPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzNztDWVBSSU9UIFNZTExBQkxFIFhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzODtDWVBSSU9UIFNZTExBQkxFIFhFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzQztDWVBSSU9UIFNZTExBQkxFIFpBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgzRjtDWVBSSU9UIFNZTExBQkxFIFpPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwMDtQSE9FTklDSUFOIExFVFRFUiBBTEY7TG87MDtSOzs7OztOOzs7OzsKKzEwOTAxO1BIT0VOSUNJQU4gTEVUVEVSIEJFVDtMbzswO1I7Ozs7O047Ozs7OworMTA5MDI7UEhPRU5JQ0lBTiBMRVRURVIgR0FNTDtMbzswO1I7Ozs7O047Ozs7OworMTA5MDM7UEhPRU5JQ0lBTiBMRVRURVIgREVMVDtMbzswO1I7Ozs7O047Ozs7OworMTA5MDQ7UEhPRU5JQ0lBTiBMRVRURVIgSEU7TG87MDtSOzs7OztOOzs7OzsKKzEwOTA1O1BIT0VOSUNJQU4gTEVUVEVSIFdBVTtMbzswO1I7Ozs7O047Ozs7OworMTA5MDY7UEhPRU5JQ0lBTiBMRVRURVIgWkFJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwNztQSE9FTklDSUFOIExFVFRFUiBIRVQ7TG87MDtSOzs7OztOOzs7OzsKKzEwOTA4O1BIT0VOSUNJQU4gTEVUVEVSIFRFVDtMbzswO1I7Ozs7O047Ozs7OworMTA5MDk7UEhPRU5JQ0lBTiBMRVRURVIgWU9EO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwQTtQSE9FTklDSUFOIExFVFRFUiBLQUY7TG87MDtSOzs7OztOOzs7OzsKKzEwOTBCO1BIT0VOSUNJQU4gTEVUVEVSIExBTUQ7TG87MDtSOzs7OztOOzs7OzsKKzEwOTBDO1BIT0VOSUNJQU4gTEVUVEVSIE1FTTtMbzswO1I7Ozs7O047Ozs7OworMTA5MEQ7UEhPRU5JQ0lBTiBMRVRURVIgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwRTtQSE9FTklDSUFOIExFVFRFUiBTRU1LO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwRjtQSE9FTklDSUFOIExFVFRFUiBBSU47TG87MDtSOzs7OztOOzs7OzsKKzEwOTEwO1BIT0VOSUNJQU4gTEVUVEVSIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkxMTtQSE9FTklDSUFOIExFVFRFUiBTQURFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkxMjtQSE9FTklDSUFOIExFVFRFUiBRT0Y7TG87MDtSOzs7OztOOzs7OzsKKzEwOTEzO1BIT0VOSUNJQU4gTEVUVEVSIFJPU0g7TG87MDtSOzs7OztOOzs7OzsKKzEwOTE0O1BIT0VOSUNJQU4gTEVUVEVSIFNISU47TG87MDtSOzs7OztOOzs7OzsKKzEwOTE1O1BIT0VOSUNJQU4gTEVUVEVSIFRBVTtMbzswO1I7Ozs7O047Ozs7OworMTA5MTY7UEhPRU5JQ0lBTiBOVU1CRVIgT05FO05vOzA7Ujs7OzsxO047Ozs7OworMTA5MTc7UEhPRU5JQ0lBTiBOVU1CRVIgVEVOO05vOzA7Ujs7OzsxMDtOOzs7OzsKKzEwOTE4O1BIT0VOSUNJQU4gTlVNQkVSIFRXRU5UWTtObzswO1I7Ozs7MjA7Tjs7Ozs7CisxMDkxOTtQSE9FTklDSUFOIE5VTUJFUiBPTkUgSFVORFJFRDtObzswO1I7Ozs7MTAwO047Ozs7OworMTA5MUY7UEhPRU5JQ0lBTiBXT1JEIFNFUEFSQVRPUjtQbzswO09OOzs7OztOOzs7OzsKKzEwQTAwO0tIQVJPU0hUSEkgTEVUVEVSIEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTAxO0tIQVJPU0hUSEkgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwQTAyO0tIQVJPU0hUSEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwQTAzO0tIQVJPU0hUSEkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDU7S0hBUk9TSFRISSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDY7S0hBUk9TSFRISSBWT1dFTCBTSUdOIE87TW47MDtOU007Ozs7O047Ozs7OworMTBBMEM7S0hBUk9TSFRISSBWT1dFTCBMRU5HVEggTUFSSztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwRDtLSEFST1NIVEhJIFNJR04gRE9VQkxFIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxMEEwRTtLSEFST1NIVEhJIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMTBBMEY7S0hBUk9TSFRISSBTSUdOIFZJU0FSR0E7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxMEExMDtLSEFST1NIVEhJIExFVFRFUiBLQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMTE7S0hBUk9TSFRISSBMRVRURVIgS0hBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExMjtLSEFST1NIVEhJIExFVFRFUiBHQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMTM7S0hBUk9TSFRISSBMRVRURVIgR0hBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExNTtLSEFST1NIVEhJIExFVFRFUiBDQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMTY7S0hBUk9TSFRISSBMRVRURVIgQ0hBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExNztLSEFST1NIVEhJIExFVFRFUiBKQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMTk7S0hBUk9TSFRISSBMRVRURVIgTllBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExQTtLSEFST1NIVEhJIExFVFRFUiBUVEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTFCO0tIQVJPU0hUSEkgTEVUVEVSIFRUSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTFDO0tIQVJPU0hUSEkgTEVUVEVSIEREQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMUQ7S0hBUk9TSFRISSBMRVRURVIgRERIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMUU7S0hBUk9TSFRISSBMRVRURVIgTk5BO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExRjtLSEFST1NIVEhJIExFVFRFUiBUQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjA7S0hBUk9TSFRISSBMRVRURVIgVEhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyMTtLSEFST1NIVEhJIExFVFRFUiBEQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjI7S0hBUk9TSFRISSBMRVRURVIgREhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyMztLSEFST1NIVEhJIExFVFRFUiBOQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjQ7S0hBUk9TSFRISSBMRVRURVIgUEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTI1O0tIQVJPU0hUSEkgTEVUVEVSIFBIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjY7S0hBUk9TSFRISSBMRVRURVIgQkE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTI3O0tIQVJPU0hUSEkgTEVUVEVSIEJIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjg7S0hBUk9TSFRISSBMRVRURVIgTUE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTI5O0tIQVJPU0hUSEkgTEVUVEVSIFlBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyQTtLSEFST1NIVEhJIExFVFRFUiBSQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMkI7S0hBUk9TSFRISSBMRVRURVIgTEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTJDO0tIQVJPU0hUSEkgTEVUVEVSIFZBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyRDtLSEFST1NIVEhJIExFVFRFUiBTSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTJFO0tIQVJPU0hUSEkgTEVUVEVSIFNTQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMkY7S0hBUk9TSFRISSBMRVRURVIgU0E7TG87MDtSOzs7OztOOzs7OzsKKzEwQTMwO0tIQVJPU0hUSEkgTEVUVEVSIFpBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEzMTtLSEFST1NIVEhJIExFVFRFUiBIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMzI7S0hBUk9TSFRISSBMRVRURVIgS0tBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEzMztLSEFST1NIVEhJIExFVFRFUiBUVFRIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMzg7S0hBUk9TSFRISSBTSUdOIEJBUiBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzEwQTM5O0tIQVJPU0hUSEkgU0lHTiBDQVVEQTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisxMEEzQTtLSEFST1NIVEhJIFNJR04gRE9UIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMTBBM0Y7S0hBUk9TSFRISSBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMTBBNDA7S0hBUk9TSFRISSBESUdJVCBPTkU7Tm87MDtSOzs7MTsxO047Ozs7OworMTBBNDE7S0hBUk9TSFRISSBESUdJVCBUV087Tm87MDtSOzs7MjsyO047Ozs7OworMTBBNDI7S0hBUk9TSFRISSBESUdJVCBUSFJFRTtObzswO1I7OzszOzM7Tjs7Ozs7CisxMEE0MztLSEFST1NIVEhJIERJR0lUIEZPVVI7Tm87MDtSOzs7NDs0O047Ozs7OworMTBBNDQ7S0hBUk9TSFRISSBOVU1CRVIgVEVOO05vOzA7Ujs7OzsxMDtOOzs7OzsKKzEwQTQ1O0tIQVJPU0hUSEkgTlVNQkVSIFRXRU5UWTtObzswO1I7Ozs7MjA7Tjs7Ozs7CisxMEE0NjtLSEFST1NIVEhJIE5VTUJFUiBPTkUgSFVORFJFRDtObzswO1I7Ozs7MTAwO047Ozs7OworMTBBNDc7S0hBUk9TSFRISSBOVU1CRVIgT05FIFRIT1VTQU5EO05vOzA7Ujs7OzsxMDAwO047Ozs7OworMTBBNTA7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBET1Q7UG87MDtSOzs7OztOOzs7OzsKKzEwQTUxO0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gU01BTEwgQ0lSQ0xFO1BvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEE1MjtLSEFST1NIVEhJIFBVTkNUVUFUSU9OIENJUkNMRTtQbzswO1I7Ozs7O047Ozs7OworMTBBNTM7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBDUkVTQ0VOVCBCQVI7UG87MDtSOzs7OztOOzs7OzsKKzEwQTU0O0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gTUFOR0FMQU07UG87MDtSOzs7OztOOzs7OzsKKzEwQTU1O0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gTE9UVVM7UG87MDtSOzs7OztOOzs7OzsKKzEwQTU2O0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gREFOREE7UG87MDtSOzs7OztOOzs7OzsKKzEwQTU3O0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gRE9VQkxFIERBTkRBO1BvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEE1ODtLSEFST1NIVEhJIFBVTkNUVUFUSU9OIExJTkVTO1BvOzA7Ujs7Ozs7Tjs7Ozs7CisxMjAwMDtDVU5FSUZPUk0gU0lHTiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwMTtDVU5FSUZPUk0gU0lHTiBBIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDAyO0NVTkVJRk9STSBTSUdOIEEgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwMztDVU5FSUZPUk0gU0lHTiBBIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwMDQ7Q1VORUlGT1JNIFNJR04gQSBUSU1FUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIwMDU7Q1VORUlGT1JNIFNJR04gQSBUSU1FUyBJR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMDA2O0NVTkVJRk9STSBTSUdOIEEgVElNRVMgTEFHQVIgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwMDc7Q1VORUlGT1JNIFNJR04gQSBUSU1FUyBNVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwODtDVU5FSUZPUk0gU0lHTiBBIFRJTUVTIFNBRztMbzswO0w7Ozs7O047Ozs7OworMTIwMDk7Q1VORUlGT1JNIFNJR04gQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDBBO0NVTkVJRk9STSBTSUdOIEFCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwQjtDVU5FSUZPUk0gU0lHTiBBQiBUSU1FUyBBU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwQztDVU5FSUZPUk0gU0lHTiBBQiBUSU1FUyBEVU4zIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDBEO0NVTkVJRk9STSBTSUdOIEFCIFRJTUVTIEdBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwMEU7Q1VORUlGT1JNIFNJR04gQUIgVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwRjtDVU5FSUZPUk0gU0lHTiBBQiBUSU1FUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIwMTA7Q1VORUlGT1JNIFNJR04gQUIgVElNRVMgSUdJIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDExO0NVTkVJRk9STSBTSUdOIEFCIFRJTUVTIElNSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDEyO0NVTkVJRk9STSBTSUdOIEFCIFRJTUVTIExBR0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxMztDVU5FSUZPUk0gU0lHTiBBQiBUSU1FUyBTSEVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIwMTQ7Q1VORUlGT1JNIFNJR04gQUIgVElNRVMgVSBQTFVTIFUgUExVUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxNTtDVU5FSUZPUk0gU0lHTiBBQiBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxNjtDVU5FSUZPUk0gU0lHTiBBQjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDE3O0NVTkVJRk9STSBTSUdOIEFCMiBUSU1FUyBCQUxBRztMbzswO0w7Ozs7O047Ozs7OworMTIwMTg7Q1VORUlGT1JNIFNJR04gQUIyIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwMTk7Q1VORUlGT1JNIFNJR04gQUIyIFRJTUVTIE1FIFBMVVMgRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDFBO0NVTkVJRk9STSBTSUdOIEFCMiBUSU1FUyBTSEEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxQjtDVU5FSUZPUk0gU0lHTiBBQjIgVElNRVMgVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIwMUM7Q1VORUlGT1JNIFNJR04gQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDFEO0NVTkVJRk9STSBTSUdOIEFLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxRTtDVU5FSUZPUk0gU0lHTiBBSyBUSU1FUyBFUklOMjtMbzswO0w7Ozs7O047Ozs7OworMTIwMUY7Q1VORUlGT1JNIFNJR04gQUsgVElNRVMgU0hJVEEgUExVUyBHSVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyMDtDVU5FSUZPUk0gU0lHTiBBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwMjE7Q1VORUlGT1JNIFNJR04gQUwgVElNRVMgQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMDIyO0NVTkVJRk9STSBTSUdOIEFMIFRJTUVTIERJTTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDIzO0NVTkVJRk9STSBTSUdOIEFMIFRJTUVTIEdJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDI0O0NVTkVJRk9STSBTSUdOIEFMIFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyNTtDVU5FSUZPUk0gU0lHTiBBTCBUSU1FUyBLQUQzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyNjtDVU5FSUZPUk0gU0lHTiBBTCBUSU1FUyBLSTtMbzswO0w7Ozs7O047Ozs7OworMTIwMjc7Q1VORUlGT1JNIFNJR04gQUwgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyODtDVU5FSUZPUk0gU0lHTiBBTCBUSU1FUyBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDI5O0NVTkVJRk9STSBTSUdOIEFMQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDJBO0NVTkVJRk9STSBTSUdOIEFMRVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyQjtDVU5FSUZPUk0gU0lHTiBBTUFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyQztDVU5FSUZPUk0gU0lHTiBBTUFSIFRJTUVTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIwMkQ7Q1VORUlGT1JNIFNJR04gQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDJFO0NVTkVJRk9STSBTSUdOIEFOIE9WRVIgQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDJGO0NVTkVJRk9STSBTSUdOIEFOIFRIUkVFIFRJTUVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzMDtDVU5FSUZPUk0gU0lHTiBBTiBQTFVTIE5BR0EgT1BQT1NJTkcgQU4gUExVUyBOQUdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzMTtDVU5FSUZPUk0gU0lHTiBBTiBQTFVTIE5BR0EgU1FVQVJFRDtMbzswO0w7Ozs7O047Ozs7OworMTIwMzI7Q1VORUlGT1JNIFNJR04gQU5TSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDMzO0NVTkVJRk9STSBTSUdOIEFQSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDM0O0NVTkVJRk9STSBTSUdOIEFSQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDM1O0NVTkVJRk9STSBTSUdOIEFSQUQgVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzNjtDVU5FSUZPUk0gU0lHTiBBUktBQjtMbzswO0w7Ozs7O047Ozs7OworMTIwMzc7Q1VORUlGT1JNIFNJR04gQVNBTDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDM4O0NVTkVJRk9STSBTSUdOIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIwMzk7Q1VORUlGT1JNIFNJR04gQVNIIFpJREEgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwM0E7Q1VORUlGT1JNIFNJR04gQVNIIEtBQkEgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwM0I7Q1VORUlGT1JNIFNJR04gQVNIIE9WRVIgQVNIIFRVRzIgT1ZFUiBUVUcyIFRVRzIgT1ZFUiBUVUcyIFBBUDtMbzswO0w7Ozs7O047Ozs7OworMTIwM0M7Q1VORUlGT1JNIFNJR04gQVNIIE9WRVIgQVNIIE9WRVIgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzRDtDVU5FSUZPUk0gU0lHTiBBU0ggT1ZFUiBBU0ggT1ZFUiBBU0ggQ1JPU1NJTkcgQVNIIE9WRVIgQVNIIE9WRVIgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzRTtDVU5FSUZPUk0gU0lHTiBBU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzRjtDVU5FSUZPUk0gU0lHTiBBU0hHQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQwO0NVTkVJRk9STSBTSUdOIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0MTtDVU5FSUZPUk0gU0lHTiBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQyO0NVTkVJRk9STSBTSUdOIEJBRzM7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQzO0NVTkVJRk9STSBTSUdOIEJBSEFSMjtMbzswO0w7Ozs7O047Ozs7OworMTIwNDQ7Q1VORUlGT1JNIFNJR04gQkFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0NTtDVU5FSUZPUk0gU0lHTiBCQUwgT1ZFUiBCQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQ2O0NVTkVJRk9STSBTSUdOIEJBTEFHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0NztDVU5FSUZPUk0gU0lHTiBCQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQ4O0NVTkVJRk9STSBTSUdOIEJBUkEyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0OTtDVU5FSUZPUk0gU0lHTiBCSTtMbzswO0w7Ozs7O047Ozs7OworMTIwNEE7Q1VORUlGT1JNIFNJR04gQkkgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIwNEI7Q1VORUlGT1JNIFNJR04gQkkgVElNRVMgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0QztDVU5FSUZPUk0gU0lHTiBCSSBUSU1FUyBJR0kgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwNEQ7Q1VORUlGT1JNIFNJR04gQlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDRFO0NVTkVJRk9STSBTSUdOIEJVIE9WRVIgQlUgQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDRGO0NVTkVJRk9STSBTSUdOIEJVIE9WRVIgQlUgVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDUwO0NVTkVJRk9STSBTSUdOIEJVIENST1NTSU5HIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1MTtDVU5FSUZPUk0gU0lHTiBCVUxVRztMbzswO0w7Ozs7O047Ozs7OworMTIwNTI7Q1VORUlGT1JNIFNJR04gQlVMVUcgT1ZFUiBCVUxVRztMbzswO0w7Ozs7O047Ozs7OworMTIwNTM7Q1VORUlGT1JNIFNJR04gQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1NDtDVU5FSUZPUk0gU0lHTiBCVVIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1NTtDVU5FSUZPUk0gU0lHTiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTIwNTY7Q1VORUlGT1JNIFNJR04gREFHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1NztDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIEEgUExVUyBNQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1ODtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIEFNQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU5O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgQkFMQUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMDVBO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMDVCO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMDVDO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgR0EgUExVUyBNQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1RDtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1RTtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIEdJUjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDVGO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgR1VEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2MDtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2MTtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIElSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2MjtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIElSIFBMVVMgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDYzO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgS0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2NDtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2NTtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2NjtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIExVIFBMVVMgTUFTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY3O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgTFVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2ODtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2OTtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIFBBUCBQTFVTIFBBUDtMbzswO0w7Ozs7O047Ozs7OworMTIwNkE7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBTSTtMbzswO0w7Ozs7O047Ozs7OworMTIwNkI7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBUQUs0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2QztDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIFUyIFBMVVMgR0lSMjtMbzswO0w7Ozs7O047Ozs7OworMTIwNkQ7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDZFO0NVTkVJRk9STSBTSUdOIERBTTtMbzswO0w7Ozs7O047Ozs7OworMTIwNkY7Q1VORUlGT1JNIFNJR04gREFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3MDtDVU5FSUZPUk0gU0lHTiBEQVJBMztMbzswO0w7Ozs7O047Ozs7OworMTIwNzE7Q1VORUlGT1JNIFNJR04gREFSQTQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDcyO0NVTkVJRk9STSBTSUdOIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3MztDVU5FSUZPUk0gU0lHTiBESUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDc0O0NVTkVJRk9STSBTSUdOIERJTTtMbzswO0w7Ozs7O047Ozs7OworMTIwNzU7Q1VORUlGT1JNIFNJR04gRElNIFRJTUVTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIwNzY7Q1VORUlGT1JNIFNJR04gRElNMjtMbzswO0w7Ozs7O047Ozs7OworMTIwNzc7Q1VORUlGT1JNIFNJR04gRElOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3ODtDVU5FSUZPUk0gU0lHTiBESU4gS0FTS0FMIFUgR1VOVSBESVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3OTtDVU5FSUZPUk0gU0lHTiBESVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3QTtDVU5FSUZPUk0gU0lHTiBEVTtMbzswO0w7Ozs7O047Ozs7OworMTIwN0I7Q1VORUlGT1JNIFNJR04gRFUgT1ZFUiBEVTtMbzswO0w7Ozs7O047Ozs7OworMTIwN0M7Q1VORUlGT1JNIFNJR04gRFUgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwN0Q7Q1VORUlGT1JNIFNJR04gRFUgU0hFU0hJRztMbzswO0w7Ozs7O047Ozs7OworMTIwN0U7Q1VORUlGT1JNIFNJR04gRFVCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3RjtDVU5FSUZPUk0gU0lHTiBEVUIgVElNRVMgRVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIwODA7Q1VORUlGT1JNIFNJR04gRFVCMjtMbzswO0w7Ozs7O047Ozs7OworMTIwODE7Q1VORUlGT1JNIFNJR04gRFVHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4MjtDVU5FSUZPUk0gU0lHTiBEVUdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIwODM7Q1VORUlGT1JNIFNJR04gRFVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4NDtDVU5FSUZPUk0gU0lHTiBEVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDg1O0NVTkVJRk9STSBTSUdOIERVTjM7TG87MDtMOzs7OztOOzs7OzsKKzEyMDg2O0NVTkVJRk9STSBTSUdOIERVTjMgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwODc7Q1VORUlGT1JNIFNJR04gRFVOMyBHVU5VIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDg4O0NVTkVJRk9STSBTSUdOIERVTjQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDg5O0NVTkVJRk9STSBTSUdOIERVUjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDhBO0NVTkVJRk9STSBTSUdOIEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDhCO0NVTkVJRk9STSBTSUdOIEUgVElNRVMgUEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4QztDVU5FSUZPUk0gU0lHTiBFIE9WRVIgRSBOVU4gT1ZFUiBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDhEO0NVTkVJRk9STSBTSUdOIEUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4RTtDVU5FSUZPUk0gU0lHTiBFMiBUSU1FUyBBIFBMVVMgSEEgUExVUyBEQTtMbzswO0w7Ozs7O047Ozs7OworMTIwOEY7Q1VORUlGT1JNIFNJR04gRTIgVElNRVMgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5MDtDVU5FSUZPUk0gU0lHTiBFMiBUSU1FUyBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIwOTE7Q1VORUlGT1JNIFNJR04gRTIgVElNRVMgU0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5MjtDVU5FSUZPUk0gU0lHTiBFMiBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDkzO0NVTkVJRk9STSBTSUdOIEUyIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDk0O0NVTkVJRk9STSBTSUdOIEVESU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDk1O0NVTkVJRk9STSBTSUdOIEVHSVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDk2O0NVTkVJRk9STSBTSUdOIEVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5NztDVU5FSUZPUk0gU0lHTiBFTjtMbzswO0w7Ozs7O047Ozs7OworMTIwOTg7Q1VORUlGT1JNIFNJR04gRU4gVElNRVMgR0FOMjtMbzswO0w7Ozs7O047Ozs7OworMTIwOTk7Q1VORUlGT1JNIFNJR04gRU4gVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5QTtDVU5FSUZPUk0gU0lHTiBFTiBUSU1FUyBNRTtMbzswO0w7Ozs7O047Ozs7OworMTIwOUI7Q1VORUlGT1JNIFNJR04gRU4gQ1JPU1NJTkcgRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDlDO0NVTkVJRk9STSBTSUdOIEVOIE9QUE9TSU5HIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5RDtDVU5FSUZPUk0gU0lHTiBFTiBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5RTtDVU5FSUZPUk0gU0lHTiBFUkVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5RjtDVU5FSUZPUk0gU0lHTiBFUklOMjtMbzswO0w7Ozs7O047Ozs7OworMTIwQTA7Q1VORUlGT1JNIFNJR04gRVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIwQTE7Q1VORUlGT1JNIFNJR04gRVpFTjtMbzswO0w7Ozs7O047Ozs7OworMTIwQTI7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBMztDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIEEgUExVUyBMQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMEE0O0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgQSBQTFVTIExBTCBUSU1FUyBMQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMEE1O0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMEE2O0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBNztDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIERVTjMgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwQTg7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBEVU4zIEdVTlUgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwQTk7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIwQUE7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBIQSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBQjtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBQztDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIEtBU0tBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwQUQ7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBLQVNLQUwgU1FVQVJFRDtMbzswO0w7Ozs7O047Ozs7OworMTIwQUU7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBLVTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMEFGO0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEIwO0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgTEFMIFRJTUVTIExBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwQjE7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBMSTtMbzswO0w7Ozs7O047Ozs7OworMTIwQjI7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBMVTtMbzswO0w7Ozs7O047Ozs7OworMTIwQjM7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBVMjtMbzswO0w7Ozs7O047Ozs7OworMTIwQjQ7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIwQjU7Q1VORUlGT1JNIFNJR04gR0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMEI2O0NVTkVJRk9STSBTSUdOIEdBIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEI3O0NVTkVJRk9STSBTSUdOIEdBMjtMbzswO0w7Ozs7O047Ozs7OworMTIwQjg7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEEgUExVUyBEQSBQTFVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCOTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgQSBQTFVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCQTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgQSBQTFVTIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIwQkI7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEFCMiBURU5VIFBMVVMgVEFCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCQztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMEJEO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMEJFO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBBU0gyIFBMVVMgR0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCRjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDMDtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgQkFSIFBMVVMgUkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEMxO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBCVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEMyO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBCVVIgUExVUyBSQTtMbzswO0w7Ozs7O047Ozs7OworMTIwQzM7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDNDtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgREk7TG87MDtMOzs7OztOOzs7OzsKKzEyMEM1O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBESU0gVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDNjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgRFVCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDNztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgRUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMEM4O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBFTCBQTFVTIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDOTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMENBO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBFTiBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMENCO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMENDO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMENEO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBHSTtMbzswO0w7Ozs7O047Ozs7OworMTIwQ0U7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEdJNDtMbzswO0w7Ozs7O047Ozs7OworMTIwQ0Y7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEdJNCBQTFVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQwO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBHSVIyIFBMVVMgU1U7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQxO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBIQSBQTFVTIExVIFBMVVMgRVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIwRDI7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwRDM7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEhBTCBQTFVTIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBENDtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgSEkgUExVUyBMSTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDU7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEhVQjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQ2O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBJR0kgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDc7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIElTSCBQTFVTIEhVIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBEODtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgS0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBEOTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgS0FTS0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBEQTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgS0lEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBEQjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgS0lEIFBMVVMgTEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBEQztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgS1UzIFBMVVMgQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMEREO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBMQTtMbzswO0w7Ozs7O047Ozs7OworMTIwREU7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIE1FIFBMVVMgRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMERGO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIwRTA7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIwRTE7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIE5VTiBPVkVSIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIwRTI7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFMztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgU0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFNDtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgU0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFNTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFNjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgU0hFIFBMVVMgVFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFNztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgU0hJRDtMbzswO0w7Ozs7O047Ozs7OworMTIwRTg7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIFNVTTtMbzswO0w7Ozs7O047Ozs7OworMTIwRTk7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIFRBSzQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMEVBO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFQjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMEVDO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBVRCBQTFVTIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFRDtDVU5FSUZPUk0gU0lHTiBHQTIgT1ZFUiBHQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEVFO0NVTkVJRk9STSBTSUdOIEdBQkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEVGO0NVTkVJRk9STSBTSUdOIEdBQkEgQ1JPU1NJTkcgR0FCQTtMbzswO0w7Ozs7O047Ozs7OworMTIwRjA7Q1VORUlGT1JNIFNJR04gR0FEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGMTtDVU5FSUZPUk0gU0lHTiBHQUQgT1ZFUiBHQUQgR0FSIE9WRVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGMjtDVU5FSUZPUk0gU0lHTiBHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMEYzO0NVTkVJRk9STSBTSUdOIEdBTCBHQUQgT1ZFUiBHQUQgR0FSIE9WRVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGNDtDVU5FSUZPUk0gU0lHTiBHQUxBTTtMbzswO0w7Ozs7O047Ozs7OworMTIwRjU7Q1VORUlGT1JNIFNJR04gR0FNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGNjtDVU5FSUZPUk0gU0lHTiBHQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMEY3O0NVTkVJRk9STSBTSUdOIEdBTjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEY4O0NVTkVJRk9STSBTSUdOIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwRjk7Q1VORUlGT1JNIFNJR04gR0FOMiBPVkVSIEdBTjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEZBO0NVTkVJRk9STSBTSUdOIEdBTjIgQ1JPU1NJTkcgR0FOMjtMbzswO0w7Ozs7O047Ozs7OworMTIwRkI7Q1VORUlGT1JNIFNJR04gR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGQztDVU5FSUZPUk0gU0lHTiBHQVIzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGRDtDVU5FSUZPUk0gU0lHTiBHQVNIQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMEZFO0NVTkVJRk9STSBTSUdOIEdFU0hUSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMEZGO0NVTkVJRk9STSBTSUdOIEdFU0hUSU4gVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwMDtDVU5FSUZPUk0gU0lHTiBHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxMDE7Q1VORUlGT1JNIFNJR04gR0kgVElNRVMgRTtMbzswO0w7Ozs7O047Ozs7OworMTIxMDI7Q1VORUlGT1JNIFNJR04gR0kgVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMDM7Q1VORUlGT1JNIFNJR04gR0kgQ1JPU1NJTkcgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMTA0O0NVTkVJRk9STSBTSUdOIEdJNDtMbzswO0w7Ozs7O047Ozs7OworMTIxMDU7Q1VORUlGT1JNIFNJR04gR0k0IE9WRVIgR0k0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwNjtDVU5FSUZPUk0gU0lHTiBHSTQgQ1JPU1NJTkcgR0k0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwNztDVU5FSUZPUk0gU0lHTiBHSURJTTtMbzswO0w7Ozs7O047Ozs7OworMTIxMDg7Q1VORUlGT1JNIFNJR04gR0lSMjtMbzswO0w7Ozs7O047Ozs7OworMTIxMDk7Q1VORUlGT1JNIFNJR04gR0lSMiBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwQTtDVU5FSUZPUk0gU0lHTiBHSVIzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwQjtDVU5FSUZPUk0gU0lHTiBHSVIzIFRJTUVTIEEgUExVUyBJR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMTBDO0NVTkVJRk9STSBTSUdOIEdJUjMgVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwRDtDVU5FSUZPUk0gU0lHTiBHSVIzIFRJTUVTIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxMEU7Q1VORUlGT1JNIFNJR04gR0lSMyBUSU1FUyBMVSBQTFVTIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxMEY7Q1VORUlGT1JNIFNJR04gR0lSMyBUSU1FUyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTIxMTA7Q1VORUlGT1JNIFNJR04gR0lTQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTExO0NVTkVJRk9STSBTSUdOIEdJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMTEyO0NVTkVJRk9STSBTSUdOIEdJU0ggQ1JPU1NJTkcgR0lTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxMTM7Q1VORUlGT1JNIFNJR04gR0lTSCBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTE0O0NVTkVJRk9STSBTSUdOIEdJU0ggVElNRVMgVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIxMTU7Q1VORUlGT1JNIFNJR04gR0lTSCBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExNjtDVU5FSUZPUk0gU0lHTiBHVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMTc7Q1VORUlGT1JNIFNJR04gR1UgQ1JPU1NJTkcgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEyMTE4O0NVTkVJRk9STSBTSUdOIEdVMjtMbzswO0w7Ozs7O047Ozs7OworMTIxMTk7Q1VORUlGT1JNIFNJR04gR1UyIFRJTUVTIEtBSztMbzswO0w7Ozs7O047Ozs7OworMTIxMUE7Q1VORUlGT1JNIFNJR04gR1UyIFRJTUVTIEtBSyBUSU1FUyBJR0kgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMUI7Q1VORUlGT1JNIFNJR04gR1UyIFRJTUVTIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIxMUM7Q1VORUlGT1JNIFNJR04gR1UyIFRJTUVTIFNBTCBQTFVTIFRVRzI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTFEO0NVTkVJRk9STSBTSUdOIEdVMiBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExRTtDVU5FSUZPUk0gU0lHTiBHVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTFGO0NVTkVJRk9STSBTSUdOIEdVRCBUSU1FUyBBIFBMVVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyMDtDVU5FSUZPUk0gU0lHTiBHVUQgVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyMTtDVU5FSUZPUk0gU0lHTiBHVUQgT1ZFUiBHVUQgTFVHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTIyO0NVTkVJRk9STSBTSUdOIEdVTDtMbzswO0w7Ozs7O047Ozs7OworMTIxMjM7Q1VORUlGT1JNIFNJR04gR1VNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyNDtDVU5FSUZPUk0gU0lHTiBHVU0gVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyNTtDVU5FSUZPUk0gU0lHTiBHVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTI2O0NVTkVJRk9STSBTSUdOIEdVUjc7TG87MDtMOzs7OztOOzs7OzsKKzEyMTI3O0NVTkVJRk9STSBTSUdOIEdVUlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyODtDVU5FSUZPUk0gU0lHTiBHVVJVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMTI5O0NVTkVJRk9STSBTSUdOIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyQTtDVU5FSUZPUk0gU0lHTiBIQSBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyQjtDVU5FSUZPUk0gU0lHTiBIQSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyQztDVU5FSUZPUk0gU0lHTiBIQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTJEO0NVTkVJRk9STSBTSUdOIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyRTtDVU5FSUZPUk0gU0lHTiBISSBUSU1FUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMTJGO0NVTkVJRk9STSBTSUdOIEhJIFRJTUVTIEFTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTMwO0NVTkVJRk9STSBTSUdOIEhJIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIxMzE7Q1VORUlGT1JNIFNJR04gSEkgVElNRVMgRElTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxMzI7Q1VORUlGT1JNIFNJR04gSEkgVElNRVMgR0FEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzMztDVU5FSUZPUk0gU0lHTiBISSBUSU1FUyBLSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMTM0O0NVTkVJRk9STSBTSUdOIEhJIFRJTUVTIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIxMzU7Q1VORUlGT1JNIFNJR04gSEkgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzNjtDVU5FSUZPUk0gU0lHTiBISSBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzNztDVU5FSUZPUk0gU0lHTiBIVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMzg7Q1VORUlGT1JNIFNJR04gSFVCMjtMbzswO0w7Ozs7O047Ozs7OworMTIxMzk7Q1VORUlGT1JNIFNJR04gSFVCMiBUSU1FUyBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIxM0E7Q1VORUlGT1JNIFNJR04gSFVCMiBUSU1FUyBIQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTNCO0NVTkVJRk9STSBTSUdOIEhVQjIgVElNRVMgS0FTS0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzQztDVU5FSUZPUk0gU0lHTiBIVUIyIFRJTUVTIExJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMTNEO0NVTkVJRk9STSBTSUdOIEhVQjIgVElNRVMgVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTNFO0NVTkVJRk9STSBTSUdOIEhVTDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTNGO0NVTkVJRk9STSBTSUdOIEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTQwO0NVTkVJRk9STSBTSUdOIEkgQTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDE7Q1VORUlGT1JNIFNJR04gSUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTQyO0NVTkVJRk9STSBTSUdOIElESU07TG87MDtMOzs7OztOOzs7OzsKKzEyMTQzO0NVTkVJRk9STSBTSUdOIElESU0gT1ZFUiBJRElNIEJVUjtMbzswO0w7Ozs7O047Ozs7OworMTIxNDQ7Q1VORUlGT1JNIFNJR04gSURJTSBPVkVSIElESU0gU1FVQVJFRDtMbzswO0w7Ozs7O047Ozs7OworMTIxNDU7Q1VORUlGT1JNIFNJR04gSUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMTQ2O0NVTkVJRk9STSBTSUdOIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDc7Q1VORUlGT1JNIFNJR04gSUdJIERJQjtMbzswO0w7Ozs7O047Ozs7OworMTIxNDg7Q1VORUlGT1JNIFNJR04gSUdJIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0OTtDVU5FSUZPUk0gU0lHTiBJR0kgT1ZFUiBJR0kgU0hJUiBPVkVSIFNISVIgVUQgT1ZFUiBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIxNEE7Q1VORUlGT1JNIFNJR04gSUdJIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTRCO0NVTkVJRk9STSBTSUdOIElMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0QztDVU5FSUZPUk0gU0lHTiBJTCBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTREO0NVTkVJRk9STSBTSUdOIElMMjtMbzswO0w7Ozs7O047Ozs7OworMTIxNEU7Q1VORUlGT1JNIFNJR04gSU07TG87MDtMOzs7OztOOzs7OzsKKzEyMTRGO0NVTkVJRk9STSBTSUdOIElNIFRJTUVTIFRBSzQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTUwO0NVTkVJRk9STSBTSUdOIElNIENST1NTSU5HIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1MTtDVU5FSUZPUk0gU0lHTiBJTSBPUFBPU0lORyBJTTtMbzswO0w7Ozs7O047Ozs7OworMTIxNTI7Q1VORUlGT1JNIFNJR04gSU0gU1FVQVJFRDtMbzswO0w7Ozs7O047Ozs7OworMTIxNTM7Q1VORUlGT1JNIFNJR04gSU1JTjtMbzswO0w7Ozs7O047Ozs7OworMTIxNTQ7Q1VORUlGT1JNIFNJR04gSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMTU1O0NVTkVJRk9STSBTSUdOIElSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1NjtDVU5FSUZPUk0gU0lHTiBJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMTU3O0NVTkVJRk9STSBTSUdOIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1ODtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1OTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBBRDtMbzswO0w7Ozs7O047Ozs7OworMTIxNUE7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgQUQgUExVUyBLVTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMTVCO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEFTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTVDO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIxNUQ7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgQkFMQUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMTVFO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEJBUjtMbzswO0w7Ozs7O047Ozs7OworMTIxNUY7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTYwO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEVSSU4yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2MTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2MjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHQTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjM7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgR0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2NDtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTY1O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIxNjY7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgR0FSIFBMVVMgU0hBMyBQTFVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMTY3O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2ODtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHSVIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2OTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHSVNIIFBMVVMgU0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2QTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHSVNIIENST1NTSU5HIEdJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMTZCO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2QztDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHVVI3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2RDtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBJR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMTZFO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2RjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBLQUs7TG87MDtMOzs7OztOOzs7OzsKKzEyMTcwO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3MTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBLSUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTcyO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3MztDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBMVTtMbzswO0w7Ozs7O047Ozs7OworMTIxNzQ7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgTUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTc1O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIE1FIFBMVVMgRFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTc2O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIE1FIFBMVVMgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMTc3O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIE1FIFBMVVMgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTc4O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3OTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBNSSBQTFVTIE5VTlVaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3QTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBORTtMbzswO0w7Ozs7O047Ozs7OworMTIxN0I7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3QztDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBQSTtMbzswO0w7Ozs7O047Ozs7OworMTIxN0Q7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgUlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTdFO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3RjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBTQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTgwO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTIxODE7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4MjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBTSElEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4MztDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTg0O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFNJRztMbzswO0w7Ozs7O047Ozs7OworMTIxODU7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgU1VIVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTg2O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFRBUjtMbzswO0w7Ozs7O047Ozs7OworMTIxODc7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIxODg7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTg5O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4QTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBVTVVNIFRJTUVTIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4QjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMThDO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4RDtDVU5FSUZPUk0gU0lHTiBLQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMThFO0NVTkVJRk9STSBTSUdOIEtBMiBDUk9TU0lORyBLQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMThGO0NVTkVJRk9STSBTSUdOIEtBQjtMbzswO0w7Ozs7O047Ozs7OworMTIxOTA7Q1VORUlGT1JNIFNJR04gS0FEMjtMbzswO0w7Ozs7O047Ozs7OworMTIxOTE7Q1VORUlGT1JNIFNJR04gS0FEMztMbzswO0w7Ozs7O047Ozs7OworMTIxOTI7Q1VORUlGT1JNIFNJR04gS0FENDtMbzswO0w7Ozs7O047Ozs7OworMTIxOTM7Q1VORUlGT1JNIFNJR04gS0FENTtMbzswO0w7Ozs7O047Ozs7OworMTIxOTQ7Q1VORUlGT1JNIFNJR04gS0FENSBPVkVSIEtBRDU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTk1O0NVTkVJRk9STSBTSUdOIEtBSztMbzswO0w7Ozs7O047Ozs7OworMTIxOTY7Q1VORUlGT1JNIFNJR04gS0FLIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5NztDVU5FSUZPUk0gU0lHTiBLQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTk4O0NVTkVJRk9STSBTSUdOIEtBTCBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTk5O0NVTkVJRk9STSBTSUdOIEtBTCBDUk9TU0lORyBLQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTlBO0NVTkVJRk9STSBTSUdOIEtBTTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTlCO0NVTkVJRk9STSBTSUdOIEtBTTQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTlDO0NVTkVJRk9STSBTSUdOIEtBU0tBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxOUQ7Q1VORUlGT1JNIFNJR04gS0FTS0FMIExBR0FCIFRJTUVTIFUgT1ZFUiBMQUdBQiBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5RTtDVU5FSUZPUk0gU0lHTiBLQVNLQUwgT1ZFUiBLQVNLQUwgTEFHQUIgVElNRVMgVSBPVkVSIExBR0FCIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTlGO0NVTkVJRk9STSBTSUdOIEtFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBMDtDVU5FSUZPUk0gU0lHTiBLSTtMbzswO0w7Ozs7O047Ozs7OworMTIxQTE7Q1VORUlGT1JNIFNJR04gS0kgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBMjtDVU5FSUZPUk0gU0lHTiBLSSBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBMztDVU5FSUZPUk0gU0lHTiBLSSBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIxQTQ7Q1VORUlGT1JNIFNJR04gS0lEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBNTtDVU5FSUZPUk0gU0lHTiBLSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMUE2O0NVTkVJRk9STSBTSUdOIEtJU0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBNztDVU5FSUZPUk0gU0lHTiBLSVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBODtDVU5FSUZPUk0gU0lHTiBLSVNJTTU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUE5O0NVTkVJRk9STSBTSUdOIEtJU0lNNSBPVkVSIEtJU0lNNTtMbzswO0w7Ozs7O047Ozs7OworMTIxQUE7Q1VORUlGT1JNIFNJR04gS1U7TG87MDtMOzs7OztOOzs7OzsKKzEyMUFCO0NVTkVJRk9STSBTSUdOIEtVIE9WRVIgSEkgVElNRVMgQVNIMiBLVSBPVkVSIEhJIFRJTUVTIEFTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUFDO0NVTkVJRk9STSBTSUdOIEtVMztMbzswO0w7Ozs7O047Ozs7OworMTIxQUQ7Q1VORUlGT1JNIFNJR04gS1U0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBRTtDVU5FSUZPUk0gU0lHTiBLVTQgVkFSSUFOVCBGT1JNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBRjtDVU5FSUZPUk0gU0lHTiBLVTc7TG87MDtMOzs7OztOOzs7OzsKKzEyMUIwO0NVTkVJRk9STSBTSUdOIEtVTDtMbzswO0w7Ozs7O047Ozs7OworMTIxQjE7Q1VORUlGT1JNIFNJR04gS1VMIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUIyO0NVTkVJRk9STSBTSUdOIEtVTjtMbzswO0w7Ozs7O047Ozs7OworMTIxQjM7Q1VORUlGT1JNIFNJR04gS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCNDtDVU5FSUZPUk0gU0lHTiBLVVIgT1BQT1NJTkcgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCNTtDVU5FSUZPUk0gU0lHTiBLVVNIVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUI2O0NVTkVJRk9STSBTSUdOIEtXVTMxODtMbzswO0w7Ozs7O047Ozs7OworMTIxQjc7Q1VORUlGT1JNIFNJR04gTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUI4O0NVTkVJRk9STSBTSUdOIExBR0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCOTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCQTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBBIFBMVVMgREEgUExVUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIxQkI7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgQSBQTFVTIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIxQkM7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgQSBQTFVTIExBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxQkQ7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUJFO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCRjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBBU0ggWklEQSBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDMDtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUMxO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDMjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBEQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUMzO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDNDtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBHQTtMbzswO0w7Ozs7O047Ozs7OworMTIxQzU7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDNjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBHVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUM3O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEdVRCBQTFVTIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIxQzg7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUM5O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxQ0E7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgSEkgVElNRVMgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDQjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBJR0kgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQ0M7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgSU07TG87MDtMOzs7OztOOzs7OzsKKzEyMUNEO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIElNIFBMVVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUNFO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIElNIFBMVVMgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUNGO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEMDtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBLSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMUQxO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEtVMztMbzswO0w7Ozs7O047Ozs7OworMTIxRDI7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgS1VMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEMztDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBLVUwgUExVUyBISSBQTFVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUQ0O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIExBR0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFENTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBMSVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFENjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBMVTtMbzswO0w7Ozs7O047Ozs7OworMTIxRDc7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgTFVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEODtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBNRTtMbzswO0w7Ozs7O047Ozs7OworMTIxRDk7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgTUUgUExVUyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTIxREE7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgTVVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxREI7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMURDO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFNIRSBQTFVTIFNVTTtMbzswO0w7Ozs7O047Ozs7OworMTIxREQ7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgU0hJVEEgUExVUyBHSVNIIFBMVVMgRVJJTjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMURFO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFNISVRBIFBMVVMgR0lTSCBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFERjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBTSFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFMDtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBTSFUyIFBMVVMgU0hVMjtMbzswO0w7Ozs7O047Ozs7OworMTIxRTE7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgU1VNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFMjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBUQUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMUUzO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFRBSzQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUU0O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFRFIFBMVVMgQSBQTFVTIFNVIFBMVVMgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUU1O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUU2O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFUgUExVUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFNztDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBVIFBMVVMgVSBQTFVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUU4O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFUyIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFOTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIxRUE7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFQjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFQztDVU5FSUZPUk0gU0lHTiBMQUdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIxRUQ7Q1VORUlGT1JNIFNJR04gTEFHQVIgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFRTtDVU5FSUZPUk0gU0lHTiBMQUdBUiBUSU1FUyBTSEUgUExVUyBTVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMUVGO0NVTkVJRk9STSBTSUdOIExBR0FSIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUYwO0NVTkVJRk9STSBTSUdOIExBR0FSIEdVTlUgT1ZFUiBMQUdBUiBHVU5VIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIxRjE7Q1VORUlGT1JNIFNJR04gTEFIU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGMjtDVU5FSUZPUk0gU0lHTiBMQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUYzO0NVTkVJRk9STSBTSUdOIExBTCBUSU1FUyBMQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUY0O0NVTkVJRk9STSBTSUdOIExBTTtMbzswO0w7Ozs7O047Ozs7OworMTIxRjU7Q1VORUlGT1JNIFNJR04gTEFNIFRJTUVTIEtVUjtMbzswO0w7Ozs7O047Ozs7OworMTIxRjY7Q1VORUlGT1JNIFNJR04gTEFNIFRJTUVTIEtVUiBQTFVTIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGNztDVU5FSUZPUk0gU0lHTiBMSTtMbzswO0w7Ozs7O047Ozs7OworMTIxRjg7Q1VORUlGT1JNIFNJR04gTElMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGOTtDVU5FSUZPUk0gU0lHTiBMSU1NVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUZBO0NVTkVJRk9STSBTSUdOIExJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMUZCO0NVTkVJRk9STSBTSUdOIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGQztDVU5FSUZPUk0gU0lHTiBMVSBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUZEO0NVTkVJRk9STSBTSUdOIExVMjtMbzswO0w7Ozs7O047Ozs7OworMTIxRkU7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGRjtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwMDtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgRVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIyMDE7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIEVTSDIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMDI7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMDM7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIEhJIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIyMDQ7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwNTtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgS0FEMjtMbzswO0w7Ozs7O047Ozs7OworMTIyMDY7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIEtBRDM7TG87MDtMOzs7OztOOzs7OzsKKzEyMjA3O0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBLQUQzIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwODtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgS0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMjA5O0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBMQSBQTFVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyMEE7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIExBR0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwQjtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgTUUgUExVUyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTIyMEM7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwRDtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjBFO0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBTSSBQTFVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyMEY7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIFNJSzIgUExVUyBCVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMTA7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIFRVRzI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjExO0NVTkVJRk9STSBTSUdOIExVMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxMjtDVU5FSUZPUk0gU0lHTiBMVTIgQ1JPU1NJTkcgTFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxMztDVU5FSUZPUk0gU0lHTiBMVTIgT1BQT1NJTkcgTFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxNDtDVU5FSUZPUk0gU0lHTiBMVTIgU1FVQVJFRDtMbzswO0w7Ozs7O047Ozs7OworMTIyMTU7Q1VORUlGT1JNIFNJR04gTFUyIFNIRVNISUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE2O0NVTkVJRk9STSBTSUdOIExVMztMbzswO0w7Ozs7O047Ozs7OworMTIyMTc7Q1VORUlGT1JNIFNJR04gTFVHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE4O0NVTkVJRk9STSBTSUdOIExVR0FMIE9WRVIgTFVHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE5O0NVTkVJRk9STSBTSUdOIExVR0FMIE9QUE9TSU5HIExVR0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxQTtDVU5FSUZPUk0gU0lHTiBMVUdBTCBTSEVTSElHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxQjtDVU5FSUZPUk0gU0lHTiBMVUg7TG87MDtMOzs7OztOOzs7OzsKKzEyMjFDO0NVTkVJRk9STSBTSUdOIExVTDtMbzswO0w7Ozs7O047Ozs7OworMTIyMUQ7Q1VORUlGT1JNIFNJR04gTFVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxRTtDVU5FSUZPUk0gU0lHTiBMVU0gT1ZFUiBMVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMjFGO0NVTkVJRk9STSBTSUdOIExVTSBPVkVSIExVTSBHQVIgT1ZFUiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjIwO0NVTkVJRk9STSBTSUdOIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyMTtDVU5FSUZPUk0gU0lHTiBNQSBUSU1FUyBUQUs0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyMjtDVU5FSUZPUk0gU0lHTiBNQSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyMztDVU5FSUZPUk0gU0lHTiBNQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjI0O0NVTkVJRk9STSBTSUdOIE1BSDtMbzswO0w7Ozs7O047Ozs7OworMTIyMjU7Q1VORUlGT1JNIFNJR04gTUFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyNjtDVU5FSUZPUk0gU0lHTiBNQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyNztDVU5FSUZPUk0gU0lHTiBNQVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIyMjg7Q1VORUlGT1JNIFNJR04gTUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjI5O0NVTkVJRk9STSBTSUdOIE1FUztMbzswO0w7Ozs7O047Ozs7OworMTIyMkE7Q1VORUlGT1JNIFNJR04gTUk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjJCO0NVTkVJRk9STSBTSUdOIE1JTjtMbzswO0w7Ozs7O047Ozs7OworMTIyMkM7Q1VORUlGT1JNIFNJR04gTVU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjJEO0NVTkVJRk9STSBTSUdOIE1VIE9WRVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjJFO0NVTkVJRk9STSBTSUdOIE1VRztMbzswO0w7Ozs7O047Ozs7OworMTIyMkY7Q1VORUlGT1JNIFNJR04gTVVHIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjMwO0NVTkVJRk9STSBTSUdOIE1VTlNVQjtMbzswO0w7Ozs7O047Ozs7OworMTIyMzE7Q1VORUlGT1JNIFNJR04gTVVSR1UyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzMjtDVU5FSUZPUk0gU0lHTiBNVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzMztDVU5FSUZPUk0gU0lHTiBNVVNIIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjM0O0NVTkVJRk9STSBTSUdOIE1VU0ggVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzNTtDVU5FSUZPUk0gU0lHTiBNVVNIIFRJTUVTIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzNjtDVU5FSUZPUk0gU0lHTiBNVVNIIE9WRVIgTVVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyMzc7Q1VORUlGT1JNIFNJR04gTVVTSCBPVkVSIE1VU0ggVElNRVMgQSBQTFVTIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzODtDVU5FSUZPUk0gU0lHTiBNVVNIIENST1NTSU5HIE1VU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjM5O0NVTkVJRk9STSBTSUdOIE1VU0gzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzQTtDVU5FSUZPUk0gU0lHTiBNVVNIMyBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzQjtDVU5FSUZPUk0gU0lHTiBNVVNIMyBUSU1FUyBBIFBMVVMgREk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjNDO0NVTkVJRk9STSBTSUdOIE1VU0gzIFRJTUVTIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzRDtDVU5FSUZPUk0gU0lHTiBNVVNIMyBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzRTtDVU5FSUZPUk0gU0lHTiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTIyM0Y7Q1VORUlGT1JNIFNJR04gTkEyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0MDtDVU5FSUZPUk0gU0lHTiBOQUdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0MTtDVU5FSUZPUk0gU0lHTiBOQUdBIElOVkVSVEVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0MjtDVU5FSUZPUk0gU0lHTiBOQUdBIFRJTUVTIFNIVSBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0MztDVU5FSUZPUk0gU0lHTiBOQUdBIE9QUE9TSU5HIE5BR0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMjQ0O0NVTkVJRk9STSBTSUdOIE5BR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0NTtDVU5FSUZPUk0gU0lHTiBOQU0gTlVUSUxMVTtMbzswO0w7Ozs7O047Ozs7OworMTIyNDY7Q1VORUlGT1JNIFNJR04gTkFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0NztDVU5FSUZPUk0gU0lHTiBOQU0yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0ODtDVU5FSUZPUk0gU0lHTiBORTtMbzswO0w7Ozs7O047Ozs7OworMTIyNDk7Q1VORUlGT1JNIFNJR04gTkUgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIyNEE7Q1VORUlGT1JNIFNJR04gTkUgVElNRVMgVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMjRCO0NVTkVJRk9STSBTSUdOIE5FIFNIRVNISUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMjRDO0NVTkVJRk9STSBTSUdOIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0RDtDVU5FSUZPUk0gU0lHTiBOSSBUSU1FUyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0RTtDVU5FSUZPUk0gU0lHTiBOSTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjRGO0NVTkVJRk9STSBTSUdOIE5JTTtMbzswO0w7Ozs7O047Ozs7OworMTIyNTA7Q1VORUlGT1JNIFNJR04gTklNIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyNTE7Q1VORUlGT1JNIFNJR04gTklNIFRJTUVTIEdBUiBQTFVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyNTI7Q1VORUlGT1JNIFNJR04gTklOREEyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1MztDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMjU0O0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU1O0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBBU0ggUExVUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU2O0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBHVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU3O0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBNRSBQTFVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyNTg7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1OTtDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1QTtDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1QjtDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgU0hFIFBMVVMgQSBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIyNUM7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIFNIRSBQTFVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyNUQ7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIFNIRSBQTFVTIEFTSCBQTFVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyNUU7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIFUyIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1RjtDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2MDtDVU5FSUZPUk0gU0lHTiBOSVNBRztMbzswO0w7Ozs7O047Ozs7OworMTIyNjE7Q1VORUlGT1JNIFNJR04gTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjYyO0NVTkVJRk9STSBTSUdOIE5VMTE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjYzO0NVTkVJRk9STSBTSUdOIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIyNjQ7Q1VORUlGT1JNIFNJR04gTlVOIExBR0FSIFRJTUVTIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIyNjU7Q1VORUlGT1JNIFNJR04gTlVOIExBR0FSIFRJTUVTIE1BU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjY2O0NVTkVJRk9STSBTSUdOIE5VTiBMQUdBUiBUSU1FUyBTQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMjY3O0NVTkVJRk9STSBTSUdOIE5VTiBMQUdBUiBUSU1FUyBTQUwgT1ZFUiBOVU4gTEFHQVIgVElNRVMgU0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2ODtDVU5FSUZPUk0gU0lHTiBOVU4gTEFHQVIgVElNRVMgVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2OTtDVU5FSUZPUk0gU0lHTiBOVU4gVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyNkE7Q1VORUlGT1JNIFNJR04gTlVOIE9WRVIgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2QjtDVU5FSUZPUk0gU0lHTiBOVU4gQ1JPU1NJTkcgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2QztDVU5FSUZPUk0gU0lHTiBOVU4gQ1JPU1NJTkcgTlVOIExBR0FSIE9WRVIgTEFHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjZEO0NVTkVJRk9STSBTSUdOIE5VTlVaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2RTtDVU5FSUZPUk0gU0lHTiBOVU5VWiBBQjIgVElNRVMgQVNIR0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2RjtDVU5FSUZPUk0gU0lHTiBOVU5VWiBBQjIgVElNRVMgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjcwO0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBEVUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMjcxO0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBHVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMjcyO0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBJR0kgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyNzM7Q1VORUlGT1JNIFNJR04gTlVOVVogQUIyIFRJTUVTIEtBRDM7TG87MDtMOzs7OztOOzs7OzsKKzEyMjc0O0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBMQTtMbzswO0w7Ozs7O047Ozs7OworMTIyNzU7Q1VORUlGT1JNIFNJR04gTlVOVVogQUIyIFRJTUVTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3NjtDVU5FSUZPUk0gU0lHTiBOVU5VWiBBQjIgVElNRVMgU0lMQTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMjc3O0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBVMjtMbzswO0w7Ozs7O047Ozs7OworMTIyNzg7Q1VORUlGT1JNIFNJR04gTlVOVVogS0lTSU01IFRJTUVTIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3OTtDVU5FSUZPUk0gU0lHTiBOVU5VWiBLSVNJTTUgVElNRVMgQkkgVTtMbzswO0w7Ozs7O047Ozs7OworMTIyN0E7Q1VORUlGT1JNIFNJR04gUEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjdCO0NVTkVJRk9STSBTSUdOIFBBRDtMbzswO0w7Ozs7O047Ozs7OworMTIyN0M7Q1VORUlGT1JNIFNJR04gUEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3RDtDVU5FSUZPUk0gU0lHTiBQQVA7TG87MDtMOzs7OztOOzs7OzsKKzEyMjdFO0NVTkVJRk9STSBTSUdOIFBFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3RjtDVU5FSUZPUk0gU0lHTiBQSTtMbzswO0w7Ozs7O047Ozs7OworMTIyODA7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIyODE7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjgyO0NVTkVJRk9STSBTSUdOIFBJIFRJTUVTIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4MztDVU5FSUZPUk0gU0lHTiBQSSBUSU1FUyBCVTtMbzswO0w7Ozs7O047Ozs7OworMTIyODQ7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgRTtMbzswO0w7Ozs7O047Ozs7OworMTIyODU7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgSTtMbzswO0w7Ozs7O047Ozs7OworMTIyODY7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgSUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjg3O0NVTkVJRk9STSBTSUdOIFBJIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjg4O0NVTkVJRk9STSBTSUdOIFBJIFRJTUVTIFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4OTtDVU5FSUZPUk0gU0lHTiBQSSBDUk9TU0lORyBQSTtMbzswO0w7Ozs7O047Ozs7OworMTIyOEE7Q1VORUlGT1JNIFNJR04gUElSSUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMjhCO0NVTkVJRk9STSBTSUdOIFBJUklHIFRJTUVTIEtBTDtMbzswO0w7Ozs7O047Ozs7OworMTIyOEM7Q1VORUlGT1JNIFNJR04gUElSSUcgVElNRVMgVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMjhEO0NVTkVJRk9STSBTSUdOIFBJUklHIFRJTUVTIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4RTtDVU5FSUZPUk0gU0lHTiBQSVJJRyBPUFBPU0lORyBQSVJJRztMbzswO0w7Ozs7O047Ozs7OworMTIyOEY7Q1VORUlGT1JNIFNJR04gUkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjkwO0NVTkVJRk9STSBTSUdOIFJBQjtMbzswO0w7Ozs7O047Ozs7OworMTIyOTE7Q1VORUlGT1JNIFNJR04gUkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjkyO0NVTkVJRk9STSBTSUdOIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5MztDVU5FSUZPUk0gU0lHTiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTQ7Q1VORUlGT1JNIFNJR04gU0FHIE5VVElMTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjk1O0NVTkVJRk9STSBTSUdOIFNBRztMbzswO0w7Ozs7O047Ozs7OworMTIyOTY7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjk3O0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBEVTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTg7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIERVQjtMbzswO0w7Ozs7O047Ozs7OworMTIyOTk7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5QTtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgS0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5QjtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5QztDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgTFVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5RDtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjlFO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMjlGO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBTQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMkEwO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBTSElEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBMTtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgVEFCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBMjtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkEzO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBVQjtMbzswO0w7Ozs7O047Ozs7OworMTIyQTQ7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIFVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBNTtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkE2O0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMkE3O0NVTkVJRk9STSBTSUdOIFNBRyBPVkVSIFNBRztMbzswO0w7Ozs7O047Ozs7OworMTIyQTg7Q1VORUlGT1JNIFNJR04gU0FHIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkE5O0NVTkVJRk9STSBTSUdOIFNBTDtMbzswO0w7Ozs7O047Ozs7OworMTIyQUE7Q1VORUlGT1JNIFNJR04gU0FMIExBR0FCIFRJTUVTIEFTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkFCO0NVTkVJRk9STSBTSUdOIFNBTkdBMjtMbzswO0w7Ozs7O047Ozs7OworMTIyQUM7Q1VORUlGT1JNIFNJR04gU0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBRDtDVU5FSUZPUk0gU0lHTiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkFFO0NVTkVJRk9STSBTSUdOIFNIQTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMkFGO0NVTkVJRk9STSBTSUdOIFNIQTMgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIyQjA7Q1VORUlGT1JNIFNJR04gU0hBMyBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMkIxO0NVTkVJRk9STSBTSUdOIFNIQTMgVElNRVMgR0lTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyQjI7Q1VORUlGT1JNIFNJR04gU0hBMyBUSU1FUyBORTtMbzswO0w7Ozs7O047Ozs7OworMTIyQjM7Q1VORUlGT1JNIFNJR04gU0hBMyBUSU1FUyBTSFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCNDtDVU5FSUZPUk0gU0lHTiBTSEEzIFRJTUVTIFRVUjtMbzswO0w7Ozs7O047Ozs7OworMTIyQjU7Q1VORUlGT1JNIFNJR04gU0hBMyBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCNjtDVU5FSUZPUk0gU0lHTiBTSEEzIFRJTUVTIFUgUExVUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCNztDVU5FSUZPUk0gU0lHTiBTSEE2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCODtDVU5FSUZPUk0gU0lHTiBTSEFCNjtMbzswO0w7Ozs7O047Ozs7OworMTIyQjk7Q1VORUlGT1JNIFNJR04gU0hBUjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkJBO0NVTkVJRk9STSBTSUdOIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIyQkI7Q1VORUlGT1JNIFNJR04gU0hFIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCQztDVU5FSUZPUk0gU0lHTiBTSEUgT1ZFUiBTSEUgR0FEIE9WRVIgR0FEIEdBUiBPVkVSIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIyQkQ7Q1VORUlGT1JNIFNJR04gU0hFIE9WRVIgU0hFIFRBQiBPVkVSIFRBQiBHQVIgT1ZFUiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkJFO0NVTkVJRk9STSBTSUdOIFNIRUc5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCRjtDVU5FSUZPUk0gU0lHTiBTSEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDMDtDVU5FSUZPUk0gU0lHTiBTSEVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyQzE7Q1VORUlGT1JNIFNJR04gU0hFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDMjtDVU5FSUZPUk0gU0lHTiBTSEVTSExBTTtMbzswO0w7Ozs7O047Ozs7OworMTIyQzM7Q1VORUlGT1JNIFNJR04gU0hJRDtMbzswO0w7Ozs7O047Ozs7OworMTIyQzQ7Q1VORUlGT1JNIFNJR04gU0hJRCBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDNTtDVU5FSUZPUk0gU0lHTiBTSElEIFRJTUVTIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDNjtDVU5FSUZPUk0gU0lHTiBTSElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDNztDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkM4O0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgQkFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDOTtDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIEJVTFVHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDQTtDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIERJTjtMbzswO0w7Ozs7O047Ozs7OworMTIyQ0I7Q1VORUlGT1JNIFNJR04gU0hJTSBUSU1FUyBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkNDO0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgSUdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDRDtDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDRTtDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIEtVU0hVMjtMbzswO0w7Ozs7O047Ozs7OworMTIyQ0Y7Q1VORUlGT1JNIFNJR04gU0hJTSBUSU1FUyBMVUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQwO0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgTVVHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEMTtDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIFNBTDtMbzswO0w7Ozs7O047Ozs7OworMTIyRDI7Q1VORUlGT1JNIFNJR04gU0hJTklHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEMztDVU5FSUZPUk0gU0lHTiBTSElSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJENDtDVU5FSUZPUk0gU0lHTiBTSElSIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ1O0NVTkVJRk9STSBTSUdOIFNISVIgT1ZFUiBTSElSIEJVUiBPVkVSIEJVUjtMbzswO0w7Ozs7O047Ozs7OworMTIyRDY7Q1VORUlGT1JNIFNJR04gU0hJVEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ3O0NVTkVJRk9STSBTSUdOIFNIVTtMbzswO0w7Ozs7O047Ozs7OworMTIyRDg7Q1VORUlGT1JNIFNJR04gU0hVIE9WRVIgSU5WRVJURUQgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEOTtDVU5FSUZPUk0gU0lHTiBTSFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEQTtDVU5FSUZPUk0gU0lHTiBTSFVCVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkRCO0NVTkVJRk9STSBTSUdOIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEQztDVU5FSUZPUk0gU0lHTiBTSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJERDtDVU5FSUZPUk0gU0lHTiBTSUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMkRFO0NVTkVJRk9STSBTSUdOIFNJRzQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMkRGO0NVTkVJRk9STSBTSUdOIFNJRzQgT1ZFUiBTSUc0IFNIVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkUwO0NVTkVJRk9STSBTSUdOIFNJSzI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkUxO0NVTkVJRk9STSBTSUdOIFNJTEEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFMjtDVU5FSUZPUk0gU0lHTiBTVTtMbzswO0w7Ozs7O047Ozs7OworMTIyRTM7Q1VORUlGT1JNIFNJR04gU1UgT1ZFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMTIyRTQ7Q1VORUlGT1JNIFNJR04gU1VEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFNTtDVU5FSUZPUk0gU0lHTiBTVUQyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFNjtDVU5FSUZPUk0gU0lHTiBTVUhVUjtMbzswO0w7Ozs7O047Ozs7OworMTIyRTc7Q1VORUlGT1JNIFNJR04gU1VNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFODtDVU5FSUZPUk0gU0lHTiBTVU1BU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMkU5O0NVTkVJRk9STSBTSUdOIFNVUjtMbzswO0w7Ozs7O047Ozs7OworMTIyRUE7Q1VORUlGT1JNIFNJR04gU1VSOTtMbzswO0w7Ozs7O047Ozs7OworMTIyRUI7Q1VORUlGT1JNIFNJR04gVEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkVDO0NVTkVJRk9STSBTSUdOIFRBIEFTVEVSSVNLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFRDtDVU5FSUZPUk0gU0lHTiBUQSBUSU1FUyBISTtMbzswO0w7Ozs7O047Ozs7OworMTIyRUU7Q1VORUlGT1JNIFNJR04gVEEgVElNRVMgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEyMkVGO0NVTkVJRk9STSBTSUdOIFRBIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkYwO0NVTkVJRk9STSBTSUdOIFRBQjtMbzswO0w7Ozs7O047Ozs7OworMTIyRjE7Q1VORUlGT1JNIFNJR04gVEFCIE9WRVIgVEFCIE5JIE9WRVIgTkkgRElTSCBPVkVSIERJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMkYyO0NVTkVJRk9STSBTSUdOIFRBQiBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGMztDVU5FSUZPUk0gU0lHTiBUQUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMkY0O0NVTkVJRk9STSBTSUdOIFRBRyBUSU1FUyBCSTtMbzswO0w7Ozs7O047Ozs7OworMTIyRjU7Q1VORUlGT1JNIFNJR04gVEFHIFRJTUVTIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIyRjY7Q1VORUlGT1JNIFNJR04gVEFHIFRJTUVTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIyRjc7Q1VORUlGT1JNIFNJR04gVEFHIFRJTUVTIFNIVTtMbzswO0w7Ozs7O047Ozs7OworMTIyRjg7Q1VORUlGT1JNIFNJR04gVEFHIFRJTUVTIFRVRzI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkY5O0NVTkVJRk9STSBTSUdOIFRBRyBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIyRkE7Q1VORUlGT1JNIFNJR04gVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIyRkI7Q1VORUlGT1JNIFNJR04gVEFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGQztDVU5FSUZPUk0gU0lHTiBURTtMbzswO0w7Ozs7O047Ozs7OworMTIyRkQ7Q1VORUlGT1JNIFNJR04gVEUgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyRkU7Q1VORUlGT1JNIFNJR04gVEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMkZGO0NVTkVJRk9STSBTSUdOIFRJIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzAwO0NVTkVJRk9STSBTSUdOIFRJTDtMbzswO0w7Ozs7O047Ozs7OworMTIzMDE7Q1VORUlGT1JNIFNJR04gVElSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwMjtDVU5FSUZPUk0gU0lHTiBUSVIgVElNRVMgVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIzMDM7Q1VORUlGT1JNIFNJR04gVElSIE9WRVIgVElSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwNDtDVU5FSUZPUk0gU0lHTiBUSVIgT1ZFUiBUSVIgR0FEIE9WRVIgR0FEIEdBUiBPVkVSIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIzMDU7Q1VORUlGT1JNIFNJR04gVFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzA2O0NVTkVJRk9STSBTSUdOIFRVRzI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzA3O0NVTkVJRk9STSBTSUdOIFRVSztMbzswO0w7Ozs7O047Ozs7OworMTIzMDg7Q1VORUlGT1JNIFNJR04gVFVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwOTtDVU5FSUZPUk0gU0lHTiBUVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzBBO0NVTkVJRk9STSBTSUdOIFRVUiBPVkVSIFRVUiBaQSBPVkVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwQjtDVU5FSUZPUk0gU0lHTiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwQztDVU5FSUZPUk0gU0lHTiBVIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIzMEQ7Q1VORUlGT1JNIFNJR04gVSBVIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzBFO0NVTkVJRk9STSBTSUdOIFUgT1ZFUiBVIFBBIE9WRVIgUEEgR0FSIE9WRVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwRjtDVU5FSUZPUk0gU0lHTiBVIE9WRVIgVSBTVVIgT1ZFUiBTVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzEwO0NVTkVJRk9STSBTSUdOIFUgT1ZFUiBVIFUgUkVWRVJTRUQgT1ZFUiBVIFJFVkVSU0VEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxMTtDVU5FSUZPUk0gU0lHTiBVMjtMbzswO0w7Ozs7O047Ozs7OworMTIzMTI7Q1VORUlGT1JNIFNJR04gVUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzEzO0NVTkVJRk9STSBTSUdOIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxNDtDVU5FSUZPUk0gU0lHTiBVRCBLVVNIVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzE1O0NVTkVJRk9STSBTSUdOIFVEIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIzMTY7Q1VORUlGT1JNIFNJR04gVUQgVElNRVMgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEyMzE3O0NVTkVJRk9STSBTSUdOIFVEIFRJTUVTIFUgUExVUyBVIFBMVVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMTg7Q1VORUlGT1JNIFNJR04gVUQgVElNRVMgVSBQTFVTIFUgUExVUyBVIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzE5O0NVTkVJRk9STSBTSUdOIFVEIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzFBO0NVTkVJRk9STSBTSUdOIFVEIFNIRVNISUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMzFCO0NVTkVJRk9STSBTSUdOIFVEIFNIRVNISUcgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxQztDVU5FSUZPUk0gU0lHTiBVRFVHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxRDtDVU5FSUZPUk0gU0lHTiBVTTtMbzswO0w7Ozs7O047Ozs7OworMTIzMUU7Q1VORUlGT1JNIFNJR04gVU0gVElNRVMgTEFHQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzFGO0NVTkVJRk9STSBTSUdOIFVNIFRJTUVTIE1FIFBMVVMgREE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzIwO0NVTkVJRk9STSBTSUdOIFVNIFRJTUVTIFNIQTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMzIxO0NVTkVJRk9STSBTSUdOIFVNIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzIyO0NVTkVJRk9STSBTSUdOIFVNQklOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyMztDVU5FSUZPUk0gU0lHTiBVTVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyNDtDVU5FSUZPUk0gU0lHTiBVTVVNIFRJTUVTIEtBU0tBTDtMbzswO0w7Ozs7O047Ozs7OworMTIzMjU7Q1VORUlGT1JNIFNJR04gVU1VTSBUSU1FUyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMjY7Q1VORUlGT1JNIFNJR04gVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMzI3O0NVTkVJRk9STSBTSUdOIFVOIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzI4O0NVTkVJRk9STSBTSUdOIFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyOTtDVU5FSUZPUk0gU0lHTiBVUiBDUk9TU0lORyBVUjtMbzswO0w7Ozs7O047Ozs7OworMTIzMkE7Q1VORUlGT1JNIFNJR04gVVIgU0hFU0hJRztMbzswO0w7Ozs7O047Ozs7OworMTIzMkI7Q1VORUlGT1JNIFNJR04gVVIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyQztDVU5FSUZPUk0gU0lHTiBVUjIgVElNRVMgQSBQTFVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyRDtDVU5FSUZPUk0gU0lHTiBVUjIgVElNRVMgQSBQTFVTIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyRTtDVU5FSUZPUk0gU0lHTiBVUjIgVElNRVMgQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMzJGO0NVTkVJRk9STSBTSUdOIFVSMiBUSU1FUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMzA7Q1VORUlGT1JNIFNJR04gVVIyIFRJTUVTIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIzMzE7Q1VORUlGT1JNIFNJR04gVVIyIFRJTUVTIFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzMjtDVU5FSUZPUk0gU0lHTiBVUjIgVElNRVMgVTIgUExVUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMzMzO0NVTkVJRk9STSBTSUdOIFVSMiBUSU1FUyBVMiBQTFVTIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzNDtDVU5FSUZPUk0gU0lHTiBVUjQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMzM1O0NVTkVJRk9STSBTSUdOIFVSSTtMbzswO0w7Ozs7O047Ozs7OworMTIzMzY7Q1VORUlGT1JNIFNJR04gVVJJMztMbzswO0w7Ozs7O047Ozs7OworMTIzMzc7Q1VORUlGT1JNIFNJR04gVVJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzODtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMzk7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIEFTSEdBQjtMbzswO0w7Ozs7O047Ozs7OworMTIzM0E7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIEJBUjtMbzswO0w7Ozs7O047Ozs7OworMTIzM0I7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIERVTjtMbzswO0w7Ozs7O047Ozs7OworMTIzM0M7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzRDtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgR0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzRTtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzRjtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0MDtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEyMzQxO0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDI7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDM7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0NDtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgSVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0NTtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgS0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMzQ2O0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBMVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMzQ3O0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBNSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMzQ4O0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDk7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIzNEE7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIFNJRzQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMzRCO0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBUVTtMbzswO0w7Ozs7O047Ozs7OworMTIzNEM7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIFUgUExVUyBHVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMzREO0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIzNEU7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIFVSVURBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0RjtDVU5FSUZPUk0gU0lHTiBVUlVEQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNTA7Q1VORUlGT1JNIFNJR04gVVJVREEgVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIzNTE7Q1VORUlGT1JNIFNJR04gVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1MjtDVU5FSUZPUk0gU0lHTiBVU0ggVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNTM7Q1VORUlGT1JNIFNJR04gVVNIIFRJTUVTIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1NDtDVU5FSUZPUk0gU0lHTiBVU0ggVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1NTtDVU5FSUZPUk0gU0lHTiBVU0ggVElNRVMgVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIzNTY7Q1VORUlGT1JNIFNJR04gVVNIWDtMbzswO0w7Ozs7O047Ozs7OworMTIzNTc7Q1VORUlGT1JNIFNJR04gVVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIzNTg7Q1VORUlGT1JNIFNJR04gVVNIVU1YO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1OTtDVU5FSUZPUk0gU0lHTiBVVFVLSTtMbzswO0w7Ozs7O047Ozs7OworMTIzNUE7Q1VORUlGT1JNIFNJR04gVVozO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1QjtDVU5FSUZPUk0gU0lHTiBVWjMgVElNRVMgS0FTS0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1QztDVU5FSUZPUk0gU0lHTiBVWlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzVEO0NVTkVJRk9STSBTSUdOIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1RTtDVU5FSUZPUk0gU0lHTiBaQSBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1RjtDVU5FSUZPUk0gU0lHTiBaQSBTUVVBUkVEIFRJTUVTIEtVUjtMbzswO0w7Ozs7O047Ozs7OworMTIzNjA7Q1VORUlGT1JNIFNJR04gWkFHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2MTtDVU5FSUZPUk0gU0lHTiBaQU1YO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2MjtDVU5FSUZPUk0gU0lHTiBaRTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzYzO0NVTkVJRk9STSBTSUdOIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2NDtDVU5FSUZPUk0gU0lHTiBaSSBPVkVSIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2NTtDVU5FSUZPUk0gU0lHTiBaSTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY2O0NVTkVJRk9STSBTSUdOIFpJQjtMbzswO0w7Ozs7O047Ozs7OworMTIzNjc7Q1VORUlGT1JNIFNJR04gWklCIEtBQkEgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIzNjg7Q1VORUlGT1JNIFNJR04gWklHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2OTtDVU5FSUZPUk0gU0lHTiBaSVoyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2QTtDVU5FSUZPUk0gU0lHTiBaVTtMbzswO0w7Ozs7O047Ozs7OworMTIzNkI7Q1VORUlGT1JNIFNJR04gWlU1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2QztDVU5FSUZPUk0gU0lHTiBaVTUgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNkQ7Q1VORUlGT1JNIFNJR04gWlVCVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzZFO0NVTkVJRk9STSBTSUdOIFpVTTtMbzswO0w7Ozs7O047Ozs7OworMTI0MDA7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUV08gQVNIO05sOzA7TDs7OzsyO047Ozs7OworMTI0MDE7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBBU0g7Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQwMjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgQVNIO05sOzA7TDs7Ozs0O047Ozs7OworMTI0MDM7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGSVZFIEFTSDtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDA0O0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0lYIEFTSDtObDswO0w7Ozs7NjtOOzs7OzsKKzEyNDA1O0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0VWRU4gQVNIO05sOzA7TDs7Ozs3O047Ozs7OworMTI0MDY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBFSUdIVCBBU0g7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CisxMjQwNztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE5JTkUgQVNIO05sOzA7TDs7Ozs5O047Ozs7OworMTI0MDg7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBESVNIO05sOzA7TDs7OzszO047Ozs7OworMTI0MDk7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIERJU0g7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQwQTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgRElTSDtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDBCO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0lYIERJU0g7Tmw7MDtMOzs7OzY7Tjs7Ozs7CisxMjQwQztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNFVkVOIERJU0g7Tmw7MDtMOzs7Ozc7Tjs7Ozs7CisxMjQwRDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEVJR0hUIERJU0g7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CisxMjQwRTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE5JTkUgRElTSDtObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDBGO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBVO05sOzA7TDs7Ozs0O047Ozs7OworMTI0MTA7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGSVZFIFU7Tmw7MDtMOzs7OzU7Tjs7Ozs7CisxMjQxMTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNJWCBVO05sOzA7TDs7Ozs2O047Ozs7OworMTI0MTI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTRVZFTiBVO05sOzA7TDs7Ozs3O047Ozs7OworMTI0MTM7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBFSUdIVCBVO05sOzA7TDs7Ozs4O047Ozs7OworMTI0MTQ7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBOSU5FIFU7Tmw7MDtMOzs7Ozk7Tjs7Ozs7CisxMjQxNTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE9ORSBHRVNIMjtObDswO0w7Ozs7MTtOOzs7OzsKKzEyNDE2O0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIEdFU0gyO05sOzA7TDs7OzsyO047Ozs7OworMTI0MTc7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBHRVNIMjtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDE4O0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBHRVNIMjtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDE5O0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBHRVNIMjtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDFBO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0lYIEdFU0gyO05sOzA7TDs7Ozs2O047Ozs7OworMTI0MUI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTRVZFTiBHRVNIMjtObDswO0w7Ozs7NztOOzs7OzsKKzEyNDFDO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRUlHSFQgR0VTSDI7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CisxMjQxRDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE5JTkUgR0VTSDI7Tmw7MDtMOzs7Ozk7Tjs7Ozs7CisxMjQxRTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE9ORSBHRVNIVTtObDswO0w7Ozs7MTtOOzs7OzsKKzEyNDFGO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIEdFU0hVO05sOzA7TDs7OzsyO047Ozs7OworMTI0MjA7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBHRVNIVTtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDIxO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBHRVNIVTtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDIyO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBHRVNIVTtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDIzO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIFNIQVIyO05sOzA7TDs7OzsyO047Ozs7OworMTI0MjQ7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBTSEFSMjtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDI1O0NVTkVJRk9STSBOVU1FUklDIFNJR04gVEhSRUUgU0hBUjIgVkFSSUFOVCBGT1JNO05sOzA7TDs7OzszO047Ozs7OworMTI0MjY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIFNIQVIyO05sOzA7TDs7Ozs0O047Ozs7OworMTI0Mjc7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGSVZFIFNIQVIyO05sOzA7TDs7Ozs1O047Ozs7OworMTI0Mjg7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTSVggU0hBUjI7Tmw7MDtMOzs7OzY7Tjs7Ozs7CisxMjQyOTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNFVkVOIFNIQVIyO05sOzA7TDs7Ozs3O047Ozs7OworMTI0MkE7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBFSUdIVCBTSEFSMjtObDswO0w7Ozs7ODtOOzs7OzsKKzEyNDJCO0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBTSEFSMjtObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDJDO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIFNIQVJVO05sOzA7TDs7OzsxO047Ozs7OworMTI0MkQ7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUV08gU0hBUlU7Tmw7MDtMOzs7OzI7Tjs7Ozs7CisxMjQyRTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIFNIQVJVO05sOzA7TDs7OzszO047Ozs7OworMTI0MkY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBTSEFSVSBWQVJJQU5UIEZPUk07Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQzMDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgU0hBUlU7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQzMTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgU0hBUlU7Tmw7MDtMOzs7OzU7Tjs7Ozs7CisxMjQzMjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNIQVIyIFRJTUVTIEdBTCBQTFVTIERJU0g7Tmw7MDtMOzs7OztOOzs7OzsKKzEyNDMzO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0hBUjIgVElNRVMgR0FMIFBMVVMgTUlOO05sOzA7TDs7Ozs7Tjs7Ozs7CisxMjQzNDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE9ORSBCVVJVO05sOzA7TDs7OzsxO047Ozs7OworMTI0MzU7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUV08gQlVSVTtObDswO0w7Ozs7MjtOOzs7OzsKKzEyNDM2O0NVTkVJRk9STSBOVU1FUklDIFNJR04gVEhSRUUgQlVSVTtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDM3O0NVTkVJRk9STSBOVU1FUklDIFNJR04gVEhSRUUgQlVSVSBWQVJJQU5UIEZPUk07Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQzODtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgQlVSVTtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDM5O0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBCVVJVO05sOzA7TDs7Ozs1O047Ozs7OworMTI0M0E7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBWQVJJQU5UIEZPUk0gRVNIMTY7Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQzQjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIFZBUklBTlQgRk9STSBFU0gyMTtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDNDO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBWQVJJQU5UIEZPUk0gTElNTVU7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQzRDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgVkFSSUFOVCBGT1JNIExJTU1VNDtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDNFO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBWQVJJQU5UIEZPUk0gTElNTVUgQTtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDNGO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBWQVJJQU5UIEZPUk0gTElNTVUgQjtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDQwO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0lYIFZBUklBTlQgRk9STSBBU0g5O05sOzA7TDs7Ozs2O047Ozs7OworMTI0NDE7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTRVZFTiBWQVJJQU5UIEZPUk0gSU1JTjM7Tmw7MDtMOzs7Ozc7Tjs7Ozs7CisxMjQ0MjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNFVkVOIFZBUklBTlQgRk9STSBJTUlOIEE7Tmw7MDtMOzs7Ozc7Tjs7Ozs7CisxMjQ0MztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNFVkVOIFZBUklBTlQgRk9STSBJTUlOIEI7Tmw7MDtMOzs7Ozc7Tjs7Ozs7CisxMjQ0NDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEVJR0hUIFZBUklBTlQgRk9STSBVU1NVO05sOzA7TDs7Ozs4O047Ozs7OworMTI0NDU7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBFSUdIVCBWQVJJQU5UIEZPUk0gVVNTVTM7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CisxMjQ0NjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE5JTkUgVkFSSUFOVCBGT1JNIElMSU1NVTtObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDQ3O0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBWQVJJQU5UIEZPUk0gSUxJTU1VMztObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDQ4O0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBWQVJJQU5UIEZPUk0gSUxJTU1VNDtObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDQ5O0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBWQVJJQU5UIEZPUk0gSUxJTU1VIEE7Tmw7MDtMOzs7Ozk7Tjs7Ozs7CisxMjQ0QTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRXTyBBU0ggVEVOVTtObDswO0w7Ozs7MjtOOzs7OzsKKzEyNDRCO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVEhSRUUgQVNIIFRFTlU7Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQ0QztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgQVNIIFRFTlU7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQ0RDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgQVNIIFRFTlU7Tmw7MDtMOzs7OzU7Tjs7Ozs7CisxMjQ0RTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNJWCBBU0ggVEVOVTtObDswO0w7Ozs7NjtOOzs7OzsKKzEyNDRGO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIEJBTjI7Tmw7MDtMOzs7OzE7Tjs7Ozs7CisxMjQ1MDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRXTyBCQU4yO05sOzA7TDs7OzsyO047Ozs7OworMTI0NTE7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBCQU4yO05sOzA7TDs7OzszO047Ozs7OworMTI0NTI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIEJBTjI7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQ1MztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgQkFOMiBWQVJJQU5UIEZPUk07Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQ1NDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgQkFOMjtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDU1O0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBCQU4yIFZBUklBTlQgRk9STTtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDU2O0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklHSURBTUlOO05sOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ1NztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE5JR0lEQUVTSDtObDswO0w7Ozs7O047Ozs7OworMTI0NTg7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTkUgRVNIRTM7Tmw7MDtMOzs7OzE7Tjs7Ozs7CisxMjQ1OTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRXTyBFU0hFMztObDswO0w7Ozs7MjtOOzs7OzsKKzEyNDVBO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIFRISVJEIERJU0g7Tmw7MDtMOzs7OzEvMztOOzs7OzsKKzEyNDVCO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIFRISVJEUyBESVNIO05sOzA7TDs7OzsyLzM7Tjs7Ozs7CisxMjQ1QztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgU0lYVEhTIERJU0g7Tmw7MDtMOzs7OzUvNjtOOzs7OzsKKzEyNDVEO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIFRISVJEIFZBUklBTlQgRk9STSBBO05sOzA7TDs7OzsxLzM7Tjs7Ozs7CisxMjQ1RTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRXTyBUSElSRFMgVkFSSUFOVCBGT1JNIEE7Tmw7MDtMOzs7OzIvMztOOzs7OzsKKzEyNDVGO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIEVJR0hUSCBBU0g7Tmw7MDtMOzs7OzEvODtOOzs7OzsKKzEyNDYwO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIFFVQVJURVIgQVNIO05sOzA7TDs7OzsxLzQ7Tjs7Ozs7CisxMjQ2MTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE9MRCBBU1NZUklBTiBPTkUgU0lYVEg7Tmw7MDtMOzs7OzEvNjtOOzs7OzsKKzEyNDYyO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT0xEIEFTU1lSSUFOIE9ORSBRVUFSVEVSO05sOzA7TDs7OzsxLzQ7Tjs7Ozs7CisxMjQ3MDtDVU5FSUZPUk0gUFVOQ1RVQVRJT04gU0lHTiBPTEQgQVNTWVJJQU4gV09SRCBESVZJREVSO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ3MTtDVU5FSUZPUk0gUFVOQ1RVQVRJT04gU0lHTiBWRVJUSUNBTCBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTI0NzI7Q1VORUlGT1JNIFBVTkNUVUFUSU9OIFNJR04gRElBR09OQUwgQ09MT047UG87MDtMOzs7OztOOzs7OzsKKzEyNDczO0NVTkVJRk9STSBQVU5DVFVBVElPTiBTSUdOIERJQUdPTkFMIFRSSUNPTE9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDAxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBEQVNFSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDAyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVJJU1BPTUVOSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9YRUlBIEVLRk9OSVRJS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1hFSUEgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDA1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgRUtGT05JVElLT047U287MDtMOzs7OztOOzs7OzsKKzFEMDA2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDA3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLQVRISVNUSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZUk1BVElLSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPS1JJU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPS1JJU0lTIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JFTUFTVEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDBEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUEVTTyBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVYTyBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRFTEVJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMDEyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9TVFJPRk9TIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lORVZNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRISVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT0xJR09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hBTUlMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVRIWTtTbzswO0w7Ozs7O047Ozs7OworMUQwMUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTT04gQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDFCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0FYSU1BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDFFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQQVJJQ0hPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUQVZST1MgQVBPREVYSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDIwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQUkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUFJIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPREVSTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9USEVNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFJFVk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUElBU01BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVElOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFOQVRSSUNISVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNFSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZTkFHTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDJCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWU5BR01BIE1FVEEgU1RBVlJPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9ZUkFOSVNNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVNT0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDJGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBEWU87U287MDtMOzs7OztOOzs7OzsKKzFEMDMwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUklBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEVTU0VSQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQRVNPIEVYTyBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDM0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDM1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJTUlGVEhPUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDM2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTiBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtBVEFWQSBUUk9NSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFTEFTVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09OVEVWTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDNCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSE9SRVZNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwM0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFJBUElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDNEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQQVJBS0FMRVNNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwM0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSUNIQURJTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNDA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE5BTkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09OVEVWTUEgQUxMTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09OIEFMTE87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTVFJBR0dJU01BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQ1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHUk9OVEhJU01BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQ2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJU09OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9MSUdPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU1RJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0QTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDRCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU1RPS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDRDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1PS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDREO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRUxBU1RPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDRFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwNEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUEgTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwNTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlQU0lMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwNTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1MgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPSSBTWU5ERVNNT1MgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPUlJPSTtTbzswO0w7Ozs7O047Ozs7OworMUQwNTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTU9ZUE9SUk9PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVMQUZST047U287MDtMOzs7OztOOzs7OzsKKzFEMDU2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSEFNSUxJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUlLUk9OIElTT047U287MDtMOzs7OztOOzs7OzsKKzFEMDU4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUElBU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDVCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPTUFMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDVDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBTlRJS0VOT01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1RDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNUU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLQUxFU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVURVJPTiBQQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtZTElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDYyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBTlRJS0VOT0tZTElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDYzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDY0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFS1NUUkVQVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lOQUdNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDY2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWVJNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIT1JFVk1BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVQRUdFUk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0VJU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFhJUk9OIEtMQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09QU0lGSVNUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDZDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lGSVNUT0xZR0lTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDZEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09QQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPUEFSQUtBTEVTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDcwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPU1lOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPU1lOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJHT1NZTlRIRVRPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNzQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVURVJPTiBBUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1lSQU5JU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BVElTTU9TIEVTTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BVElTTU9TIEVYTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BIEFQTE9VTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNzk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRVMgS0FJIEFQT1RIRVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDdBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLQVRBVkFTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDdCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFTkRPRk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDdDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVOIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMDdEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVOIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwN0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUQVZST1M7U287MDtMOzs7OztOOzs7OzsKKzFEMDdGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLTEFTTUEgQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElQTEkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDgxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQSBBTExPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDg0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9ERVJNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDg1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4NjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUklQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBURVRSQVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwODk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtPUk9OSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDhBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgRU5PUyBDSFJPTk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4QjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIERZTyBDSFJPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4QztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIFRSSU9OIENIUk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDhEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgVEVTU0FST04gQ0hST05PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIExFSU1NQSBJTUlTRU9TIENIUk9OT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMDhGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwOTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPTiBQQVJFU1RJR01FTk9OIEFSSVNURVJBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIFBBUkVTVElHTUVOT04gREVYSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDkyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUdPUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkEgS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwOTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkEgQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHT1JHT04gUEFSRVNUSUdNRU5PTiBERVhJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwOTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRSSUdPUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5ODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRElBUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVJHT047U287MDtMOzs7OztOOzs7OzsKKzFEMDlBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBQT0xJIEFSR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBBUkdPVEVSSTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIEFSR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBNRVRSSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDlFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBNRVNJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQUdPR0kgR09SR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMEEwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBHT1JHT1RFUkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEExO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBQT0xJIEdPUkdJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUFJPVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgQUxMSSBQUk9UT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBERVlURVJPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIEFMTEkgREVZVEVST1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBUUklUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBUUklGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEE4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBURVRBUlRPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRFVEFSVE9TIExFR0VUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBMRUdFVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUExBR0lPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTQUtJQSBURUxPVVMgSUNISU1BVE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPSSBURUxPVVMgSUNISU1BVE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkFORVJPU0lTIFRFVFJBRk9OSUFTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkFORVJPU0lTIE1PTk9GT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEIwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGQU5FUk9TSVMgRElGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEIxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBWQVJZUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFBST1RPVkFSWVMgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEIzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBQTEFHSU9TIFRFVEFSVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SVEhNSUtPTiBOIEFQTE9VTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQjU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUlRITUlLT04gTiBESVBMT1VOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRU5BUlhJUyBLQUkgRlRIT1JBIFZPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwQjc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElNSUZPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRlRIT1JPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQjk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBBUkNIQUlPTiBERVlURVJPVSBJQ0hPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgUEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEJCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIE5BTkE7U287MDtMOzs7OztOOzs7OzsKKzFEMEJDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTkFPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgREk7U287MDtMOzs7OztOOzs7OzsKKzFEMEJFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgU0tMSVJPTiBESUFUT05PTiBESTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgS0U7U287MDtMOzs7OztOOzs7OzsKKzFEMEMwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIFpPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBOSSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBOSSBBTk87U287MDtMOzs7OztOOzs7OzsKKzFEMEMzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTUFMQUtPTiBDSFJPTUEgRElGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEM0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTUFMQUtPTiBDSFJPTUEgTU9OT0ZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZIVE9SQSBTS0xJUk9OIENIUk9NQSBWQVNJUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBTS0xJUk9OIENIUk9NQSBTWU5BRkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEM3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTkVOQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hST0EgWllHT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEM5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBLTElUT047U287MDtMOzs7OztOOzs7OzsKKzFEMENBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBTUEFUSEk7U287MDtMOzs7OztOOzs7OzsKKzFEMENCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgSSBZRkVTSVMgVEVUQVJUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBFTkFSTU9OSU9TIEFOVElGT05JQTtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0Q7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBUUklUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBUUklUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0Y7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBURVRBUlRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIEFQTEkgRFlPIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIE1PTk9HUkFNTU9TIFRFU1NFUkEgRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgRElHUkFNTU9TIEVYIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIFRSSUdSQU1NT1MgT0tUTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBBUExJIERZTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBNT05PR1JBTU1PUyBURVNTRVJBIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIERJR1JBTU1PUyBFWCBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBUUklHUkFNTU9TIE9LVE8gRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQ4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHRU5JS0kgRElFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR0VOSUtJIFlGRVNJUztTbzswO0w7Ozs7O047Ozs7OworMUQwREE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIEFQTEkgTUlLUkk7U287MDtMOzs7OztOOzs7OzsKKzFEMERCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUFTVE9MSSBBUExJIE1FR0FMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwREM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBERDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBU1RPTEkgVEhFU0VPUztTbzswO0w7Ozs7O047Ozs7OworMUQwREU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIFRIRVNFT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMERGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIERJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEUwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIFRSSVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgVEhFU0VPUyBURVRSQVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgQVJTRU9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgQVJTRU9TIERJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgVFJJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgVEVUUkFTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR1JBTU1BIEdHO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElGVE9HR09TIE9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1RJR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBQQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gVk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBHQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gREk7U287MDtMOzs7OztOOzs7OzsKKzFEMEVEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIEtFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBaTztTbzswO0w7Ozs7O047Ozs7OworMUQwRUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gTkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEYwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIE1FU087U287MDtMOzs7OztOOzs7OzsKKzFEMEYxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIE5FTyBNRVNPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQSBORU8gS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwRjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwMDtNVVNJQ0FMIFNZTUJPTCBTSU5HTEUgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDE7TVVTSUNBTCBTWU1CT0wgRE9VQkxFIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTAyO01VU0lDQUwgU1lNQk9MIEZJTkFMIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTAzO01VU0lDQUwgU1lNQk9MIFJFVkVSU0UgRklOQUwgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDQ7TVVTSUNBTCBTWU1CT0wgREFTSEVEIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTA1O01VU0lDQUwgU1lNQk9MIFNIT1JUIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTA2O01VU0lDQUwgU1lNQk9MIExFRlQgUkVQRUFUIFNJR047U287MDtMOzs7OztOOzs7OzsKKzFEMTA3O01VU0lDQUwgU1lNQk9MIFJJR0hUIFJFUEVBVCBTSUdOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwODtNVVNJQ0FMIFNZTUJPTCBSRVBFQVQgRE9UUztTbzswO0w7Ozs7O047Ozs7OworMUQxMDk7TVVTSUNBTCBTWU1CT0wgREFMIFNFR05PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQTtNVVNJQ0FMIFNZTUJPTCBEQSBDQVBPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQjtNVVNJQ0FMIFNZTUJPTCBTRUdOTztTbzswO0w7Ozs7O047Ozs7OworMUQxMEM7TVVTSUNBTCBTWU1CT0wgQ09EQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMEQ7TVVTSUNBTCBTWU1CT0wgUkVQRUFURUQgRklHVVJFLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTBFO01VU0lDQUwgU1lNQk9MIFJFUEVBVEVEIEZJR1VSRS0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwRjtNVVNJQ0FMIFNZTUJPTCBSRVBFQVRFRCBGSUdVUkUtMztTbzswO0w7Ozs7O047Ozs7OworMUQxMTA7TVVTSUNBTCBTWU1CT0wgRkVSTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMTE7TVVTSUNBTCBTWU1CT0wgRkVSTUFUQSBCRUxPVztTbzswO0w7Ozs7O047Ozs7OworMUQxMTI7TVVTSUNBTCBTWU1CT0wgQlJFQVRIIE1BUks7U287MDtMOzs7OztOOzs7OzsKKzFEMTEzO01VU0lDQUwgU1lNQk9MIENBRVNVUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMTE0O01VU0lDQUwgU1lNQk9MIEJSQUNFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNTtNVVNJQ0FMIFNZTUJPTCBCUkFDS0VUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNjtNVVNJQ0FMIFNZTUJPTCBPTkUtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMTc7TVVTSUNBTCBTWU1CT0wgVFdPLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTE4O01VU0lDQUwgU1lNQk9MIFRIUkVFLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTE5O01VU0lDQUwgU1lNQk9MIEZPVVItTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMUE7TVVTSUNBTCBTWU1CT0wgRklWRS1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExQjtNVVNJQ0FMIFNZTUJPTCBTSVgtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMUM7TVVTSUNBTCBTWU1CT0wgU0lYLVNUUklORyBGUkVUQk9BUkQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTFEO01VU0lDQUwgU1lNQk9MIEZPVVItU1RSSU5HIEZSRVRCT0FSRDtTbzswO0w7Ozs7O047Ozs7OworMUQxMUU7TVVTSUNBTCBTWU1CT0wgRyBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExRjtNVVNJQ0FMIFNZTUJPTCBHIENMRUYgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTIwO01VU0lDQUwgU1lNQk9MIEcgQ0xFRiBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTIxO01VU0lDQUwgU1lNQk9MIEMgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMjI7TVVTSUNBTCBTWU1CT0wgRiBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyMztNVVNJQ0FMIFNZTUJPTCBGIENMRUYgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTI0O01VU0lDQUwgU1lNQk9MIEYgQ0xFRiBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTI1O01VU0lDQUwgU1lNQk9MIERSVU0gQ0xFRi0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyNjtNVVNJQ0FMIFNZTUJPTCBEUlVNIENMRUYtMjtTbzswO0w7Ozs7O047Ozs7OworMUQxMkE7TVVTSUNBTCBTWU1CT0wgRE9VQkxFIFNIQVJQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyQjtNVVNJQ0FMIFNZTUJPTCBET1VCTEUgRkxBVDtTbzswO0w7Ozs7O047Ozs7OworMUQxMkM7TVVTSUNBTCBTWU1CT0wgRkxBVCBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxMkQ7TVVTSUNBTCBTWU1CT0wgRkxBVCBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRTtNVVNJQ0FMIFNZTUJPTCBOQVRVUkFMIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRjtNVVNJQ0FMIFNZTUJPTCBOQVRVUkFMIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMTMwO01VU0lDQUwgU1lNQk9MIFNIQVJQIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzMTtNVVNJQ0FMIFNZTUJPTCBTSEFSUCBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzMjtNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIFRPTkUgU0hBUlA7U287MDtMOzs7OztOOzs7OzsKKzFEMTMzO01VU0lDQUwgU1lNQk9MIFFVQVJURVIgVE9ORSBGTEFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNDtNVVNJQ0FMIFNZTUJPTCBDT01NT04gVElNRTtTbzswO0w7Ozs7O047Ozs7OworMUQxMzU7TVVTSUNBTCBTWU1CT0wgQ1VUIFRJTUU7U287MDtMOzs7OztOOzs7OzsKKzFEMTM2O01VU0lDQUwgU1lNQk9MIE9UVEFWQSBBTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNztNVVNJQ0FMIFNZTUJPTCBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTM4O01VU0lDQUwgU1lNQk9MIFFVSU5ESUNFU0lNQSBBTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzOTtNVVNJQ0FMIFNZTUJPTCBRVUlORElDRVNJTUEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTNBO01VU0lDQUwgU1lNQk9MIE1VTFRJIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNCO01VU0lDQUwgU1lNQk9MIFdIT0xFIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNDO01VU0lDQUwgU1lNQk9MIEhBTEYgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0Q7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzRTtNVVNJQ0FMIFNZTUJPTCBFSUdIVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0Y7TVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTQwO01VU0lDQUwgU1lNQk9MIFRISVJUWS1TRUNPTkQgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDE7TVVTSUNBTCBTWU1CT0wgU0lYVFktRk9VUlRIIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTQyO01VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDM7TVVTSUNBTCBTWU1CT0wgWCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDQ7TVVTSUNBTCBTWU1CT0wgUExVUyBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDU7TVVTSUNBTCBTWU1CT0wgQ0lSQ0xFIFggTk9URUhFQUQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTQ2O01VU0lDQUwgU1lNQk9MIFNRVUFSRSBOT1RFSEVBRCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNDc7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIE5PVEVIRUFEIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0ODtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBVUCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNDk7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTRBO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIExFRlQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTRCO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIExFRlQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTRDO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFJJR0hUIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0RDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBSSUdIVCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNEU7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgRE9XTiBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNEY7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgRE9XTiBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNTA7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgUklHSFQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTUxO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFVQIFJJR0hUIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MjtNVVNJQ0FMIFNZTUJPTCBNT09OIE5PVEVIRUFEIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MztNVVNJQ0FMIFNZTUJPTCBNT09OIE5PVEVIRUFEIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRS1ST1VORCBOT1RFSEVBRCBET1dOIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NTtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRS1ST1VORCBOT1RFSEVBRCBET1dOIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NjtNVVNJQ0FMIFNZTUJPTCBQQVJFTlRIRVNJUyBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNTc7TVVTSUNBTCBTWU1CT0wgVk9JRCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNTg7TVVTSUNBTCBTWU1CT0wgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTU5O01VU0lDQUwgU1lNQk9MIE5VTEwgTk9URUhFQUQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTVBO01VU0lDQUwgU1lNQk9MIENMVVNURVIgTk9URUhFQUQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTVCO01VU0lDQUwgU1lNQk9MIENMVVNURVIgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTVDO01VU0lDQUwgU1lNQk9MIEJSRVZFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1RDtNVVNJQ0FMIFNZTUJPTCBXSE9MRSBOT1RFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1RTtNVVNJQ0FMIFNZTUJPTCBIQUxGIE5PVEU7U287MDtMOzFEMTU3IDFEMTY1Ozs7O047Ozs7OworMUQxNUY7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBOT1RFO1NvOzA7TDsxRDE1OCAxRDE2NTs7OztOOzs7OzsKKzFEMTYwO01VU0lDQUwgU1lNQk9MIEVJR0hUSCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE2RTs7OztOOzs7OzsKKzFEMTYxO01VU0lDQUwgU1lNQk9MIFNJWFRFRU5USCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE2Rjs7OztOOzs7OzsKKzFEMTYyO01VU0lDQUwgU1lNQk9MIFRISVJUWS1TRUNPTkQgTk9URTtTbzswO0w7MUQxNUYgMUQxNzA7Ozs7Tjs7Ozs7CisxRDE2MztNVVNJQ0FMIFNZTUJPTCBTSVhUWS1GT1VSVEggTk9URTtTbzswO0w7MUQxNUYgMUQxNzE7Ozs7Tjs7Ozs7CisxRDE2NDtNVVNJQ0FMIFNZTUJPTCBPTkUgSFVORFJFRCBUV0VOVFktRUlHSFRIIE5PVEU7U287MDtMOzFEMTVGIDFEMTcyOzs7O047Ozs7OworMUQxNjU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNURU07TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNjY7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNQUkVDSEdFU0FORyBTVEVNO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTY3O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBUUkVNT0xPLTE7TW47MTtOU007Ozs7O047Ozs7OworMUQxNjg7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSRU1PTE8tMjtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisxRDE2OTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVFJFTU9MTy0zO01uOzE7TlNNOzs7OztOOzs7OzsKKzFEMTZBO01VU0lDQUwgU1lNQk9MIEZJTkdFUkVEIFRSRU1PTE8tMTtTbzswO0w7Ozs7O047Ozs7OworMUQxNkI7TVVTSUNBTCBTWU1CT0wgRklOR0VSRUQgVFJFTU9MTy0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE2QztNVVNJQ0FMIFNZTUJPTCBGSU5HRVJFRCBUUkVNT0xPLTM7U287MDtMOzs7OztOOzs7OzsKKzFEMTZEO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBBVUdNRU5UQVRJT04gRE9UO01jOzIyNjtMOzs7OztOOzs7OzsKKzFEMTZFO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTE7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNkY7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctMjtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxBRy0zO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTcxO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTQ7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNzI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctNTtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MztNVVNJQ0FMIFNZTUJPTCBCRUdJTiBCRUFNO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzQ7TVVTSUNBTCBTWU1CT0wgRU5EIEJFQU07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NTtNVVNJQ0FMIFNZTUJPTCBCRUdJTiBUSUU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NjtNVVNJQ0FMIFNZTUJPTCBFTkQgVElFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzc7TVVTSUNBTCBTWU1CT0wgQkVHSU4gU0xVUjtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTc4O01VU0lDQUwgU1lNQk9MIEVORCBTTFVSO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzk7TVVTSUNBTCBTWU1CT0wgQkVHSU4gUEhSQVNFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxN0E7TVVTSUNBTCBTWU1CT0wgRU5EIFBIUkFTRTtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTdCO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBBQ0NFTlQ7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3QztNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1RBQ0NBVE87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVEVOVVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxN0U7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNUQUNDQVRJU1NJTU87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgTUFSQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgwO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBNQVJDQVRPLVNUQUNDQVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODE7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEFDQ0VOVC1TVEFDQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgyO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBMT1VSRTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgzO01VU0lDQUwgU1lNQk9MIEFSUEVHR0lBVE8gVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMTg0O01VU0lDQUwgU1lNQk9MIEFSUEVHR0lBVE8gRE9XTjtTbzswO0w7Ozs7O047Ozs7OworMUQxODU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIERPSVQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4NjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgUklQO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxODc7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMSVA7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4ODtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU01FQVI7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4OTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgQkVORDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMThBO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBET1VCTEUgVE9OR1VFO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxOEI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSSVBMRSBUT05HVUU7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4QztNVVNJQ0FMIFNZTUJPTCBSSU5GT1JaQU5ETztTbzswO0w7Ozs7O047Ozs7OworMUQxOEQ7TVVTSUNBTCBTWU1CT0wgU1VCSVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RTtNVVNJQ0FMIFNZTUJPTCBaO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RjtNVVNJQ0FMIFNZTUJPTCBQSUFOTztTbzswO0w7Ozs7O047Ozs7OworMUQxOTA7TVVTSUNBTCBTWU1CT0wgTUVaWk87U287MDtMOzs7OztOOzs7OzsKKzFEMTkxO01VU0lDQUwgU1lNQk9MIEZPUlRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5MjtNVVNJQ0FMIFNZTUJPTCBDUkVTQ0VORE87U287MDtMOzs7OztOOzs7OzsKKzFEMTkzO01VU0lDQUwgU1lNQk9MIERFQ1JFU0NFTkRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NDtNVVNJQ0FMIFNZTUJPTCBHUkFDRSBOT1RFIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NTtNVVNJQ0FMIFNZTUJPTCBHUkFDRSBOT1RFIE5PIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NjtNVVNJQ0FMIFNZTUJPTCBUUjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTc7TVVTSUNBTCBTWU1CT0wgVFVSTjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTg7TVVTSUNBTCBTWU1CT0wgSU5WRVJURUQgVFVSTjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTk7TVVTSUNBTCBTWU1CT0wgVFVSTiBTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUE7TVVTSUNBTCBTWU1CT0wgVFVSTiBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUI7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTlDO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5RDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMztTbzswO0w7Ozs7O047Ozs7OworMUQxOUU7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTlGO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS01O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtNjtTbzswO0w7Ozs7O047Ozs7OworMUQxQTE7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTc7U287MDtMOzs7OztOOzs7OzsKKzFEMUEyO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS04O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMztNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtOTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTQ7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTEwO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNTtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUE2O01VU0lDQUwgU1lNQk9MIEhBVVBUU1RJTU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNztNVVNJQ0FMIFNZTUJPTCBORUJFTlNUSU1NRTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTg7TVVTSUNBTCBTWU1CT0wgRU5EIE9GIFNUSU1NRTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTk7TVVTSUNBTCBTWU1CT0wgREVHUkVFIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBQTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRE9XTiBCT1c7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBQjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVVAgQk9XO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUM7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEhBUk1PTklDO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUQ7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNOQVAgUElaWklDQVRPO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUU7TVVTSUNBTCBTWU1CT0wgUEVEQUwgTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxQUY7TVVTSUNBTCBTWU1CT0wgUEVEQUwgVVAgTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxQjA7TVVTSUNBTCBTWU1CT0wgSEFMRiBQRURBTCBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMTtNVVNJQ0FMIFNZTUJPTCBHTElTU0FORE8gVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMUIyO01VU0lDQUwgU1lNQk9MIEdMSVNTQU5ETyBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMztNVVNJQ0FMIFNZTUJPTCBXSVRIIEZJTkdFUk5BSUxTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNDtNVVNJQ0FMIFNZTUJPTCBEQU1QO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNTtNVVNJQ0FMIFNZTUJPTCBEQU1QIEFMTDtTbzswO0w7Ozs7O047Ozs7OworMUQxQjY7TVVTSUNBTCBTWU1CT0wgTUFYSU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNztNVVNJQ0FMIFNZTUJPTCBMT05HQTtTbzswO0w7Ozs7O047Ozs7OworMUQxQjg7TVVTSUNBTCBTWU1CT0wgQlJFVklTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCOTtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCQTtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCQjtNVVNJQ0FMIFNZTUJPTCBNSU5JTUE7U287MDtMOzFEMUI5IDFEMTY1Ozs7O047Ozs7OworMUQxQkM7TVVTSUNBTCBTWU1CT0wgTUlOSU1BIEJMQUNLO1NvOzA7TDsxRDFCQSAxRDE2NTs7OztOOzs7OzsKKzFEMUJEO01VU0lDQUwgU1lNQk9MIFNFTUlNSU5JTUEgV0hJVEU7U287MDtMOzFEMUJCIDFEMTZFOzs7O047Ozs7OworMUQxQkU7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBCTEFDSztTbzswO0w7MUQxQkMgMUQxNkU7Ozs7Tjs7Ozs7CisxRDFCRjtNVVNJQ0FMIFNZTUJPTCBGVVNBIFdISVRFO1NvOzA7TDsxRDFCQiAxRDE2Rjs7OztOOzs7OzsKKzFEMUMwO01VU0lDQUwgU1lNQk9MIEZVU0EgQkxBQ0s7U287MDtMOzFEMUJDIDFEMTZGOzs7O047Ozs7OworMUQxQzE7TVVTSUNBTCBTWU1CT0wgTE9OR0EgUEVSRkVDVEEgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzI7TVVTSUNBTCBTWU1CT0wgTE9OR0EgSU1QRVJGRUNUQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDMztNVVNJQ0FMIFNZTUJPTCBCUkVWSVMgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzQ7TVVTSUNBTCBTWU1CT0wgU0VNSUJSRVZJUyBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNTtNVVNJQ0FMIFNZTUJPTCBNSU5JTUEgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzY7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNztNVVNJQ0FMIFNZTUJPTCBURU1QVVMgUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIFBFUkZFQ1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDODtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUM5O01VU0lDQUwgU1lNQk9MIFRFTVBVUyBQRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEEgRElNSU5VVElPTi0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDQTtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNCO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDQztNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgSU1QRVJGRUNUQSBESU1JTlVUSU9OLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNEO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBIERJTUlOVVRJT04tMjtTbzswO0w7Ozs7O047Ozs7OworMUQxQ0U7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIElNUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEEgRElNSU5VVElPTi0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDRjtNVVNJQ0FMIFNZTUJPTCBDUk9JWDtTbzswO0w7Ozs7O047Ozs7OworMUQxRDA7TVVTSUNBTCBTWU1CT0wgR1JFR09SSUFOIEMgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDE7TVVTSUNBTCBTWU1CT0wgR1JFR09SSUFOIEYgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDI7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIEI7U287MDtMOzs7OztOOzs7OzsKKzFEMUQzO01VU0lDQUwgU1lNQk9MIFZJUkdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENDtNVVNJQ0FMIFNZTUJPTCBQT0RBVFVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENTtNVVNJQ0FMIFNZTUJPTCBDTElWSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ2O01VU0lDQUwgU1lNQk9MIFNDQU5ESUNVUztTbzswO0w7Ozs7O047Ozs7OworMUQxRDc7TVVTSUNBTCBTWU1CT0wgQ0xJTUFDVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ4O01VU0lDQUwgU1lNQk9MIFRPUkNVTFVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEOTtNVVNJQ0FMIFNZTUJPTCBQT1JSRUNUVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURBO01VU0lDQUwgU1lNQk9MIFBPUlJFQ1RVUyBGTEVYVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURCO01VU0lDQUwgU1lNQk9MIFNDQU5ESUNVUyBGTEVYVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURDO01VU0lDQUwgU1lNQk9MIFRPUkNVTFVTIFJFU1VQSU5VUztTbzswO0w7Ozs7O047Ozs7OworMUQxREQ7TVVTSUNBTCBTWU1CT0wgUEVTIFNVQlBVTkNUSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMjAwO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xO1NvOzA7T047Ozs7O047Ozs7OworMUQyMDE7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwMjtHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtMztTbzswO09OOzs7OztOOzs7OzsKKzFEMjAzO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC00O1NvOzA7T047Ozs7O047Ozs7OworMUQyMDQ7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwNTtHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtNjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjA2O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC03O1NvOzA7T047Ozs7O047Ozs7OworMUQyMDc7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwODtHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjA5O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xMDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjBBO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xMTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjBCO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xMjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjBDO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xMztTbzswO09OOzs7OztOOzs7OzsKKzFEMjBEO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xNDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjBFO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xNTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjBGO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xNjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjEwO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xNztTbzswO09OOzs7OztOOzs7OzsKKzFEMjExO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjEyO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0xOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjEzO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0yMDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjE0O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0yMTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjE1O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0yMjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjE2O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0yMztTbzswO09OOzs7OztOOzs7OzsKKzFEMjE3O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0yNDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjE4O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC01MDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjE5O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC01MTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjFBO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC01MjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjFCO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC01MztTbzswO09OOzs7OztOOzs7OzsKKzFEMjFDO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC01NDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjFEO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjFFO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjFGO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjIwO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjIxO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNztTbzswO09OOzs7OztOOzs7OzsKKzFEMjIyO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjIzO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyNDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTEyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMjU7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xMztTbzswO09OOzs7OztOOzs7OzsKKzFEMjI2O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyNztHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTE3O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjg7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjI5O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyQTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTIzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMkI7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yNDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjJDO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMjU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyRDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTI2O1NvOzA7T047Ozs7O047Ozs7OworMUQyMkU7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yNztTbzswO09OOzs7OztOOzs7OzsKKzFEMjJGO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMjk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzMDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTMwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMzE7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0zMjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjMyO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMzY7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzMztHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTM3O1NvOzA7T047Ozs7O047Ozs7OworMUQyMzQ7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0zODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjM1O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMzk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzNjtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTQwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMzc7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00MjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjM4O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzOTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTQ1O1NvOzA7T047Ozs7O047Ozs7OworMUQyM0E7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00NztTbzswO09OOzs7OztOOzs7OzsKKzFEMjNCO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzQztHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTQ5O1NvOzA7T047Ozs7O047Ozs7OworMUQyM0Q7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01MDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjNFO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzRjtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTUyO1NvOzA7T047Ozs7O047Ozs7OworMUQyNDA7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01MztTbzswO09OOzs7OztOOzs7OzsKKzFEMjQxO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDI0MjtDT01CSU5JTkcgR1JFRUsgTVVTSUNBTCBUUklTRU1FO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQyNDM7Q09NQklOSU5HIEdSRUVLIE1VU0lDQUwgVEVUUkFTRU1FO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQyNDQ7Q09NQklOSU5HIEdSRUVLIE1VU0lDQUwgUEVOVEFTRU1FO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQyNDU7R1JFRUsgTVVTSUNBTCBMRUlNTUE7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwMDtNT05PR1JBTSBGT1IgRUFSVEg7U287MDtPTjs7Ozs7Tjs7cmVuICo7OzsKKzFEMzAxO0RJR1JBTSBGT1IgSEVBVkVOTFkgRUFSVEg7U287MDtPTjs7Ozs7Tjs7dGlhbiByZW4gKjs7OworMUQzMDI7RElHUkFNIEZPUiBIVU1BTiBFQVJUSDtTbzswO09OOzs7OztOOztkaSByZW4gKjs7OworMUQzMDM7RElHUkFNIEZPUiBFQVJUSExZIEhFQVZFTjtTbzswO09OOzs7OztOOztyZW4gdGlhbiAqOzs7CisxRDMwNDtESUdSQU0gRk9SIEVBUlRITFkgSFVNQU47U287MDtPTjs7Ozs7Tjs7cmVuIGRpICo7OzsKKzFEMzA1O0RJR1JBTSBGT1IgRUFSVEg7U287MDtPTjs7Ozs7Tjs7cmVuIHJlbiAqOzs7CisxRDMwNjtURVRSQUdSQU0gRk9SIENFTlRSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzA3O1RFVFJBR1JBTSBGT1IgRlVMTCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwODtURVRSQUdSQU0gRk9SIE1JUkVEO1NvOzA7T047Ozs7O047Ozs7OworMUQzMDk7VEVUUkFHUkFNIEZPUiBCQVJSSUVSO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEE7VEVUUkFHUkFNIEZPUiBLRUVQSU5HIFNNQUxMO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEI7VEVUUkFHUkFNIEZPUiBDT05UUkFSSUVUWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzBDO1RFVFJBR1JBTSBGT1IgQVNDRU5UO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEQ7VEVUUkFHUkFNIEZPUiBPUFBPU0lUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEU7VEVUUkFHUkFNIEZPUiBCUkFOQ0hJTkcgT1VUO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEY7VEVUUkFHUkFNIEZPUiBERUZFQ1RJVkVORVNTIE9SIERJU1RPUlRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxMDtURVRSQUdSQU0gRk9SIERJVkVSR0VOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxMTtURVRSQUdSQU0gRk9SIFlPVVRIRlVMTkVTUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzEyO1RFVFJBR1JBTSBGT1IgSU5DUkVBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxMztURVRSQUdSQU0gRk9SIFBFTkVUUkFUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTQ7VEVUUkFHUkFNIEZPUiBSRUFDSDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzE1O1RFVFJBR1JBTSBGT1IgQ09OVEFDVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzE2O1RFVFJBR1JBTSBGT1IgSE9MRElORyBCQUNLO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTc7VEVUUkFHUkFNIEZPUiBXQUlUSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTg7VEVUUkFHUkFNIEZPUiBGT0xMT1dJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxOTtURVRSQUdSQU0gRk9SIEFEVkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxQTtURVRSQUdSQU0gRk9SIFJFTEVBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxQjtURVRSQUdSQU0gRk9SIFJFU0lTVEFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxQztURVRSQUdSQU0gRk9SIEVBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxRDtURVRSQUdSQU0gRk9SIEpPWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFFO1RFVFJBR1JBTSBGT1IgQ09OVEVOVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFGO1RFVFJBR1JBTSBGT1IgRU5ERUFWT1VSO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjA7VEVUUkFHUkFNIEZPUiBEVVRJRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyMTtURVRSQUdSQU0gRk9SIENIQU5HRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzIyO1RFVFJBR1JBTSBGT1IgREVDSVNJVkVORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjM7VEVUUkFHUkFNIEZPUiBCT0xEIFJFU09MVVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyNDtURVRSQUdSQU0gRk9SIFBBQ0tJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyNTtURVRSQUdSQU0gRk9SIExFR0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzI2O1RFVFJBR1JBTSBGT1IgQ0xPU0VORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjc7VEVUUkFHUkFNIEZPUiBLSU5TSElQO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjg7VEVUUkFHUkFNIEZPUiBHQVRIRVJJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyOTtURVRSQUdSQU0gRk9SIFNUUkVOR1RIO1NvOzA7T047Ozs7O047Ozs7OworMUQzMkE7VEVUUkFHUkFNIEZPUiBQVVJJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyQjtURVRSQUdSQU0gRk9SIEZVTExORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzMkM7VEVUUkFHUkFNIEZPUiBSRVNJREVOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyRDtURVRSQUdSQU0gRk9SIExBVyBPUiBNT0RFTDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzJFO1RFVFJBR1JBTSBGT1IgUkVTUE9OU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyRjtURVRSQUdSQU0gRk9SIEdPSU5HIFRPIE1FRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzMDtURVRSQUdSQU0gRk9SIEVOQ09VTlRFUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzMTtURVRSQUdSQU0gRk9SIFNUT1ZFO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzI7VEVUUkFHUkFNIEZPUiBHUkVBVE5FU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzMztURVRSQUdSQU0gRk9SIEVOTEFSR0VNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzQ7VEVUUkFHUkFNIEZPUiBQQVRURVJOO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzU7VEVUUkFHUkFNIEZPUiBSSVRVQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzNjtURVRSQUdSQU0gRk9SIEZMSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzM3O1RFVFJBR1JBTSBGT1IgVkFTVE5FU1MgT1IgV0FTVElORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzM4O1RFVFJBR1JBTSBGT1IgQ09OU1RBTkNZO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzk7VEVUUkFHUkFNIEZPUiBNRUFTVVJFO1NvOzA7T047Ozs7O047Ozs7OworMUQzM0E7VEVUUkFHUkFNIEZPUiBFVEVSTklUWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzNCO1RFVFJBR1JBTSBGT1IgVU5JVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzQztURVRSQUdSQU0gRk9SIERJTUlOSVNITUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzNEO1RFVFJBR1JBTSBGT1IgQ0xPU0VEIE1PVVRIO1NvOzA7T047Ozs7O047Ozs7OworMUQzM0U7VEVUUkFHUkFNIEZPUiBHVUFSREVETkVTUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzNGO1RFVFJBR1JBTSBGT1IgR0FUSEVSSU5HIElOO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDA7VEVUUkFHUkFNIEZPUiBNQVNTSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDE7VEVUUkFHUkFNIEZPUiBBQ0NVTVVMQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0MjtURVRSQUdSQU0gRk9SIEVNQkVMTElTSE1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0MztURVRSQUdSQU0gRk9SIERPVUJUO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDQ7VEVUUkFHUkFNIEZPUiBXQVRDSDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzQ1O1RFVFJBR1JBTSBGT1IgU0lOS0lORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzQ2O1RFVFJBR1JBTSBGT1IgSU5ORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0NztURVRSQUdSQU0gRk9SIERFUEFSVFVSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzQ4O1RFVFJBR1JBTSBGT1IgREFSS0VOSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDk7VEVUUkFHUkFNIEZPUiBESU1NSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEE7VEVUUkFHUkFNIEZPUiBFWEhBVVNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEI7VEVUUkFHUkFNIEZPUiBTRVZFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0QztURVRSQUdSQU0gRk9SIFNUT1BQQUdFO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEQ7VEVUUkFHUkFNIEZPUiBIQVJETkVTUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzRFO1RFVFJBR1JBTSBGT1IgQ09NUExFVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzRGO1RFVFJBR1JBTSBGT1IgQ0xPU1VSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzUwO1RFVFJBR1JBTSBGT1IgRkFJTFVSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzUxO1RFVFJBR1JBTSBGT1IgQUdHUkFWQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM1MjtURVRSQUdSQU0gRk9SIENPTVBMSUFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM1MztURVRSQUdSQU0gRk9SIE9OIFRIRSBWRVJHRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzU0O1RFVFJBR1JBTSBGT1IgRElGRklDVUxUSUVTO1NvOzA7T047Ozs7O047Ozs7OworMUQzNTU7VEVUUkFHUkFNIEZPUiBMQUJPVVJJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM1NjtURVRSQUdSQU0gRk9SIEZPU1RFUklORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzYwO0NPVU5USU5HIFJPRCBVTklUIERJR0lUIE9ORTtObzswO0w7Ozs7MTtOOzs7OzsKKzFEMzYxO0NPVU5USU5HIFJPRCBVTklUIERJR0lUIFRXTztObzswO0w7Ozs7MjtOOzs7OzsKKzFEMzYyO0NPVU5USU5HIFJPRCBVTklUIERJR0lUIFRIUkVFO05vOzA7TDs7OzszO047Ozs7OworMUQzNjM7Q09VTlRJTkcgUk9EIFVOSVQgRElHSVQgRk9VUjtObzswO0w7Ozs7NDtOOzs7OzsKKzFEMzY0O0NPVU5USU5HIFJPRCBVTklUIERJR0lUIEZJVkU7Tm87MDtMOzs7OzU7Tjs7Ozs7CisxRDM2NTtDT1VOVElORyBST0QgVU5JVCBESUdJVCBTSVg7Tm87MDtMOzs7OzY7Tjs7Ozs7CisxRDM2NjtDT1VOVElORyBST0QgVU5JVCBESUdJVCBTRVZFTjtObzswO0w7Ozs7NztOOzs7OzsKKzFEMzY3O0NPVU5USU5HIFJPRCBVTklUIERJR0lUIEVJR0hUO05vOzA7TDs7Ozs4O047Ozs7OworMUQzNjg7Q09VTlRJTkcgUk9EIFVOSVQgRElHSVQgTklORTtObzswO0w7Ozs7OTtOOzs7OzsKKzFEMzY5O0NPVU5USU5HIFJPRCBURU5TIERJR0lUIE9ORTtObzswO0w7Ozs7MTA7Tjs7Ozs7CisxRDM2QTtDT1VOVElORyBST0QgVEVOUyBESUdJVCBUV087Tm87MDtMOzs7OzIwO047Ozs7OworMUQzNkI7Q09VTlRJTkcgUk9EIFRFTlMgRElHSVQgVEhSRUU7Tm87MDtMOzs7OzMwO047Ozs7OworMUQzNkM7Q09VTlRJTkcgUk9EIFRFTlMgRElHSVQgRk9VUjtObzswO0w7Ozs7NDA7Tjs7Ozs7CisxRDM2RDtDT1VOVElORyBST0QgVEVOUyBESUdJVCBGSVZFO05vOzA7TDs7Ozs1MDtOOzs7OzsKKzFEMzZFO0NPVU5USU5HIFJPRCBURU5TIERJR0lUIFNJWDtObzswO0w7Ozs7NjA7Tjs7Ozs7CisxRDM2RjtDT1VOVElORyBST0QgVEVOUyBESUdJVCBTRVZFTjtObzswO0w7Ozs7NzA7Tjs7Ozs7CisxRDM3MDtDT1VOVElORyBST0QgVEVOUyBESUdJVCBFSUdIVDtObzswO0w7Ozs7ODA7Tjs7Ozs7CisxRDM3MTtDT1VOVElORyBST0QgVEVOUyBESUdJVCBOSU5FO05vOzA7TDs7Ozs5MDtOOzs7OzsKKzFENDAwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDQwMTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0MDI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDAzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDQwNDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0MDU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDA2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDQwNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0MDg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDA5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDQwQTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0MEI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDBDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDQwRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0MEU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDBGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDQxMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0MTE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDEyO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDQxMztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0MTQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDE1O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDQxNjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0MTc7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDE4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDQxOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0MUE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQxQjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENDFDO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0MUQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQxRTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENDFGO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0MjA7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQyMTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENDIyO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0MjM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDQyNDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENDI1O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0MjY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDQyNztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENDI4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0Mjk7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDQyQTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENDJCO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0MkM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDQyRDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENDJFO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0MkY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDQzMDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENDMxO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0MzI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDQzMztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENDM0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDM1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENDM2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDM3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDM4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENDM5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDNBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDNCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENDNDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDNEO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDNFO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENDNGO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDQwO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDQxO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENDQyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDQzO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDQ0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENDQ1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDQ2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDQ3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENDQ4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDQ5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDRBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENDRCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDRDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDREO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENDRFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQ0RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0NTA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENDUxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQ1MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0NTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENDU0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQ1NjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0NTc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENDU4O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDQ1OTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0NUE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENDVCO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDQ1QztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0NUQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENDVFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDQ1RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0NjA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENDYxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDQ2MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0NjM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENDY0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDQ2NTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0NjY7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENDY3O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDQ2ODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDY5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0NkE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDQ2QjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDZDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0NkQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDQ2RTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDZGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0NzA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDQ3MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDcyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0NzM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDQ3NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDc1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0NzY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDQ3NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDc4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0Nzk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDQ3QTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDdCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0N0M7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDQ3RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDdFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0N0Y7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDQ4MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDgxO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0ODI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ0ODM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0ODQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0ODU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ0ODY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0ODc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0ODg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ0ODk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0OEE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0OEI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ0OEM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0OEQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0OEU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ0OEY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0OTA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0OTE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0OTI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ0OTM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0OTQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0OTU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ0OTY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0OTc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0OTg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ0OTk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0OUE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0OUI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ0OUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0OUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ0OUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0QTI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0QTU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0QTY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0QTk7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0QUE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ0QUI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0QUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0QUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0QUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0QjA7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ0QjE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0QjI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0QjM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ0QjQ7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0QjU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0QjY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENEI3O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDRCODtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0Qjk7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENEJCO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDRCRDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0QkU7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENEJGO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDRDMDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0QzE7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENEMyO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDRDMztNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0QzU7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENEM2O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDRDNztNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0Qzg7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENEM5O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDRDQTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0Q0I7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENENDO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDRDRDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0Q0U7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENENGO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDREMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENEQxO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0RDI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDREMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENEQ0O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0RDU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDRENjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENEQ3O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0RDg7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDREOTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENERBO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0REI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDREQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENEREO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0REU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDRERjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENEUwO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0RTE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDRFMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENEUzO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0RTQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDRFNTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENEU2O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0RTc7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDRFODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENEU5O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0RUE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ0RUI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0RUM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0RUQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ0RUU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0RUY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0RjA7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ0RjE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0RjI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0RjM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ0RjQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0RjU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0RjY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ0Rjc7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0Rjg7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0Rjk7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0RkE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ0RkI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0RkM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0RkQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ0RkU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0RkY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1MDA7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ1MDE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1MDI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1MDM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ1MDQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENTA1O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDUwNztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1MDg7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENTA5O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDUwQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1MEQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENTBFO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDUwRjtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ1MTA7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENTExO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDUxMjtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ1MTM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENTE0O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDUxNjtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ1MTc7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENTE4O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDUxOTtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ1MUE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENTFCO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDUxQztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ1MUU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDUxRjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENTIwO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ1MjE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDUyMjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENTIzO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ1MjQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDUyNTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENTI2O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ1Mjc7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDUyODtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENTI5O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ1MkE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDUyQjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENTJDO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ1MkQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDUyRTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENTJGO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ1MzA7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDUzMTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENTMyO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ1MzM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDUzNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENTM1O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1MzY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDUzNztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENTM4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDUzOTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ1M0I7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENTNDO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDUzRDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ1M0U7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENTQwO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDU0MTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1NDI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENTQzO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDU0NDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1NDY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENTRBO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDU0QjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1NEM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENTREO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDU0RTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1NEY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENTUwO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDU1MjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENTUzO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1NTQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDU1NTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENTU2O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1NTc7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDU1ODtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENTU5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1NUE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDU1QjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENTVDO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1NUQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDU1RTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENTVGO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1NjA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDU2MTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENTYyO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1NjM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDU2NDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENTY1O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ1NjY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDU2NztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENTY4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ1Njk7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDU2QTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENTZCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ1NkM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ1NkQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ1NkU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ1NkY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1NzA7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1NzE7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ1NzI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1NzM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ1NzQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047Ozs7OworMUQ1NzU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1NzY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1Nzc7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ1Nzg7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1Nzk7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ1N0E7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ1N0I7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ1N0M7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ1N0Q7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047Ozs7OworMUQ1N0U7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ1N0Y7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1ODA7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ1ODE7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ1ODI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1ODM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ1ODQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ1ODU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ1ODY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENTg3O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDU4ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ1ODk7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENThBO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDU4QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ1OEM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENThEO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDU4RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ1OEY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENTkwO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDU5MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ1OTI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENTkzO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDU5NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ1OTU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENTk2O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDU5NztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ1OTg7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENTk5O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDU5QTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ1OUI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENTlDO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDU5RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1OUU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENTlGO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDVBMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ1QTE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENUEyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDVBMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1QTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENUE1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDVBNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1QTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENUE4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDVBOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1QUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENUFCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDVBQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1QUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENUFFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDVBRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ1QjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENUIxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDVCMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ1QjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENUI0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDVCNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ1QjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENUI3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDVCODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ1Qjk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENUJBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1QkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDVCQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENUJEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1QkU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDVCRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENUMwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1QzE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDVDMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENUMzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1QzQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDVDNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENUM2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1Qzc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDVDODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENUM5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1Q0E7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDVDQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENUNDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1Q0Q7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDVDRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENUNGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1RDA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDVEMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENUQyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1RDM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDVENDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDVENTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDVENjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDVENztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDVEODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDVEOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDVEQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDVEQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDVEQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDVERDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDVERTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDVERjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDVFMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDVFMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDVFMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDVFMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDVFNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDVFNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDVFNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDVFNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDVFODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDVFOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDVFQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDVFQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDVFQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDVFRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDVFRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1RUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENUYwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDVGMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1RjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENUYzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDVGNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1RjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENUY2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDVGNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1Rjg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENUY5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDVGQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1RkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENUZDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDVGRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1RkU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENUZGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDYwMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ2MDE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjAyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDYwMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ2MDQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjA1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDYwNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ2MDc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjA4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ2MDk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDYwQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjBCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ2MEM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDYwRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjBFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ2MEY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDYxMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjExO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ2MTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDYxMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjE0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ2MTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDYxNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjE3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ2MTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDYxOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjFBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ2MUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDYxQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjFEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ2MUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDYxRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjIwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ2MjE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDYyMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDYyMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDYyNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDYyNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDYyNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDYyNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDYyODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDYyOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDYyQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDYyQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDYyQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDYyRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDYyRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDYyRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDYzMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDYzMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDYzMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDYzMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDYzNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDYzNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDYzNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDYzNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDYzODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDYzOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDYzQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDYzQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDYzQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ2M0Q7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjNFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDYzRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ2NDA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjQxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDY0MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ2NDM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjQ0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDY0NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ2NDY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjQ3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDY0ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ2NDk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjRBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDY0QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ2NEM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjREO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDY0RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ2NEY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjUwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDY1MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ2NTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjUzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDY1NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ2NTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjU2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ2NTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDY1ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjU5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ2NUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDY1QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjVDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ2NUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDY1RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjVGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ2NjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDY2MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjYyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ2NjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDY2NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjY1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ2NjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDY2NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjY4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ2Njk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDY2QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjZCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ2NkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDY2RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjZFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ2NkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDY3MDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDY3MTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDY3MjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDY3MztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDY3NDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDY3NTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDY3NjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDY3NztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDY3ODtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDY3OTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDY3QTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDY3QjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDY3QztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDY3RDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDY3RTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDY3RjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDY4MDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDY4MTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDY4MjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDY4MztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDY4NDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDY4NTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDY4NjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDY4NztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDY4ODtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDY4OTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDY4QTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ2OEI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjhDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDY4RDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ2OEU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjhGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDY5MDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ2OTE7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjkyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDY5MztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ2OTQ7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjk1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDY5NjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ2OTc7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjk4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDY5OTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ2OUE7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjlCO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDY5QztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ2OUQ7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjlFO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDY5RjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ2QTA7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENkExO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDZBMjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ2QTM7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENkE0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRE9UTEVTUyBJO0xsOzA7TDs8Zm9udD4gMDEzMTs7OztOOzs7OzsKKzFENkE1O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRE9UTEVTUyBKO0xsOzA7TDs8Zm9udD4gMDIzNzs7OztOOzs7OzsKKzFENkE4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQUxQSEE7THU7MDtMOzxmb250PiAwMzkxOzs7O047Ozs7OworMUQ2QTk7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENkFBO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ2QUI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBERUxUQTtMdTswO0w7PGZvbnQ+IDAzOTQ7Ozs7Tjs7Ozs7CisxRDZBQztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ2QUQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENkFFO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRVRBO0x1OzA7TDs8Zm9udD4gMDM5Nzs7OztOOzs7OzsKKzFENkFGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ2QjA7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENkIxO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgS0FQUEE7THU7MDtMOzxmb250PiAwMzlBOzs7O047Ozs7OworMUQ2QjI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDZCMztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENkI0O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTlU7THU7MDtMOzxmb250PiAwMzlEOzs7O047Ozs7OworMUQ2QjU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDZCNjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ2Qjc7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBQSTtMdTswO0w7PGZvbnQ+IDAzQTA7Ozs7Tjs7Ozs7CisxRDZCODtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDZCOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDZCQTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFNJR01BO0x1OzA7TDs8Zm9udD4gMDNBMzs7OztOOzs7OzsKKzFENkJCO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFENkJDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDZCRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFBISTtMdTswO0w7PGZvbnQ+IDAzQTY7Ozs7Tjs7Ozs7CisxRDZCRTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDZCRjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDZDMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE9NRUdBO0x1OzA7TDs8Zm9udD4gMDNBOTs7OztOOzs7OzsKKzFENkMxO01BVEhFTUFUSUNBTCBCT0xEIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFENkMyO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENkMzO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEJFVEE7TGw7MDtMOzxmb250PiAwM0IyOzs7O047Ozs7OworMUQ2QzQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ2QzU7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ2QzY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQjU7Ozs7Tjs7Ozs7CisxRDZDNztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFENkM4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDZDOTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBUSEVUQTtMbDswO0w7PGZvbnQ+IDAzQjg7Ozs7Tjs7Ozs7CisxRDZDQTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFENkNCO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENkNDO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIExBTURBO0xsOzA7TDs8Zm9udD4gMDNCQjs7OztOOzs7OzsKKzFENkNEO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFENkNFO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENkNGO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFhJO0xsOzA7TDs8Zm9udD4gMDNCRTs7OztOOzs7OzsKKzFENkQwO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ2RDE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ2RDI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUkhPO0xsOzA7TDs8Zm9udD4gMDNDMTs7OztOOzs7OzsKKzFENkQzO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFENkQ0O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENkQ1O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFRBVTtMbDswO0w7PGZvbnQ+IDAzQzQ7Ozs7Tjs7Ozs7CisxRDZENjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFENkQ3O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDZEODtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBDSEk7TGw7MDtMOzxmb250PiAwM0M3Ozs7O047Ozs7OworMUQ2RDk7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFENkRBO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENkRCO01BVEhFTUFUSUNBTCBCT0xEIFBBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7TDs8Zm9udD4gMjIwMjs7OztZOzs7OzsKKzFENkRDO01BVEhFTUFUSUNBTCBCT0xEIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFENkREO01BVEhFTUFUSUNBTCBCT0xEIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDZERTtNQVRIRU1BVElDQUwgQk9MRCBLQVBQQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YwOzs7O047Ozs7OworMUQ2REY7TUFUSEVNQVRJQ0FMIEJPTEQgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDZFMDtNQVRIRU1BVElDQUwgQk9MRCBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENkUxO01BVEhFTUFUSUNBTCBCT0xEIFBJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDY7Ozs7Tjs7Ozs7CisxRDZFMjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgQUxQSEE7THU7MDtMOzxmb250PiAwMzkxOzs7O047Ozs7OworMUQ2RTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ2RTQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEdBTU1BO0x1OzA7TDs8Zm9udD4gMDM5Mzs7OztOOzs7OzsKKzFENkU1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBERUxUQTtMdTswO0w7PGZvbnQ+IDAzOTQ7Ozs7Tjs7Ozs7CisxRDZFNjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDZFNztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgWkVUQTtMdTswO0w7PGZvbnQ+IDAzOTY7Ozs7Tjs7Ozs7CisxRDZFODtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgRVRBO0x1OzA7TDs8Zm9udD4gMDM5Nzs7OztOOzs7OzsKKzFENkU5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDZFQTtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgSU9UQTtMdTswO0w7PGZvbnQ+IDAzOTk7Ozs7Tjs7Ozs7CisxRDZFQjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgS0FQUEE7THU7MDtMOzxmb250PiAwMzlBOzs7O047Ozs7OworMUQ2RUM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENkVEO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBNVTtMdTswO0w7PGZvbnQ+IDAzOUM7Ozs7Tjs7Ozs7CisxRDZFRTtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgTlU7THU7MDtMOzxmb250PiAwMzlEOzs7O047Ozs7OworMUQ2RUY7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENkYwO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBPTUlDUk9OO0x1OzA7TDs8Zm9udD4gMDM5Rjs7OztOOzs7OzsKKzFENkYxO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQSTtMdTswO0w7PGZvbnQ+IDAzQTA7Ozs7Tjs7Ozs7CisxRDZGMjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENkYzO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUSEVUQSBTWU1CT0w7THU7MDtMOzxmb250PiAwM0Y0Ozs7O047Ozs7OworMUQ2RjQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFNJR01BO0x1OzA7TDs8Zm9udD4gMDNBMzs7OztOOzs7OzsKKzFENkY1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ2RjY7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFVQU0lMT047THU7MDtMOzxmb250PiAwM0E1Ozs7O047Ozs7OworMUQ2Rjc7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBISTtMdTswO0w7PGZvbnQ+IDAzQTY7Ozs7Tjs7Ozs7CisxRDZGODtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENkY5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQU0k7THU7MDtMOzxmb250PiAwM0E4Ozs7O047Ozs7OworMUQ2RkE7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE9NRUdBO0x1OzA7TDs8Zm9udD4gMDNBOTs7OztOOzs7OzsKKzFENkZCO01BVEhFTUFUSUNBTCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ2RkM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBBTFBIQTtMbDswO0w7PGZvbnQ+IDAzQjE7Ozs7Tjs7Ozs7CisxRDZGRDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEJFVEE7TGw7MDtMOzxmb250PiAwM0IyOzs7O047Ozs7OworMUQ2RkU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDZGRjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIERFTFRBO0xsOzA7TDs8Zm9udD4gMDNCNDs7OztOOzs7OzsKKzFENzAwO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQjU7Ozs7Tjs7Ozs7CisxRDcwMTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3MDI7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBFVEE7TGw7MDtMOzxmb250PiAwM0I3Ozs7O047Ozs7OworMUQ3MDM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBUSEVUQTtMbDswO0w7PGZvbnQ+IDAzQjg7Ozs7Tjs7Ozs7CisxRDcwNDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3MDU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBLQVBQQTtMbDswO0w7PGZvbnQ+IDAzQkE7Ozs7Tjs7Ozs7CisxRDcwNjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIExBTURBO0xsOzA7TDs8Zm9udD4gMDNCQjs7OztOOzs7OzsKKzFENzA3O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3MDg7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBOVTtMbDswO0w7PGZvbnQ+IDAzQkQ7Ozs7Tjs7Ozs7CisxRDcwOTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFhJO0xsOzA7TDs8Zm9udD4gMDNCRTs7OztOOzs7OzsKKzFENzBBO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDcwQjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBJO0xsOzA7TDs8Zm9udD4gMDNDMDs7OztOOzs7OzsKKzFENzBDO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUkhPO0xsOzA7TDs8Zm9udD4gMDNDMTs7OztOOzs7OzsKKzFENzBEO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3MEU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzM7Ozs7Tjs7Ozs7CisxRDcwRjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFRBVTtMbDswO0w7PGZvbnQ+IDAzQzQ7Ozs7Tjs7Ozs7CisxRDcxMDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3MTE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQSEk7TGw7MDtMOzxmb250PiAwM0M2Ozs7O047Ozs7OworMUQ3MTI7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBDSEk7TGw7MDtMOzxmb250PiAwM0M3Ozs7O047Ozs7OworMUQ3MTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3MTQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBPTUVHQTtMbDswO0w7PGZvbnQ+IDAzQzk7Ozs7Tjs7Ozs7CisxRDcxNTtNQVRIRU1BVElDQUwgSVRBTElDIFBBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7TDs8Zm9udD4gMjIwMjs7OztZOzs7OzsKKzFENzE2O01BVEhFTUFUSUNBTCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3MTc7TUFUSEVNQVRJQ0FMIElUQUxJQyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0QxOzs7O047Ozs7OworMUQ3MTg7TUFUSEVNQVRJQ0FMIElUQUxJQyBLQVBQQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YwOzs7O047Ozs7OworMUQ3MTk7TUFUSEVNQVRJQ0FMIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENzFBO01BVEhFTUFUSUNBTCBJVEFMSUMgUkhPIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjE7Ozs7Tjs7Ozs7CisxRDcxQjtNQVRIRU1BVElDQUwgSVRBTElDIFBJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDY7Ozs7Tjs7Ozs7CisxRDcxQztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDcxRDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENzFFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEdBTU1BO0x1OzA7TDs8Zm9udD4gMDM5Mzs7OztOOzs7OzsKKzFENzFGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENzIwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ3MjE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgWkVUQTtMdTswO0w7PGZvbnQ+IDAzOTY7Ozs7Tjs7Ozs7CisxRDcyMjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ3MjM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ3MjQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSU9UQTtMdTswO0w7PGZvbnQ+IDAzOTk7Ozs7Tjs7Ozs7CisxRDcyNTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDcyNjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDcyNztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBNVTtMdTswO0w7PGZvbnQ+IDAzOUM7Ozs7Tjs7Ozs7CisxRDcyODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDcyOTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDcyQTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPTUlDUk9OO0x1OzA7TDs8Zm9udD4gMDM5Rjs7OztOOzs7OzsKKzFENzJCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENzJDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDcyRDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQSBTWU1CT0w7THU7MDtMOzxmb250PiAwM0Y0Ozs7O047Ozs7OworMUQ3MkU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ3MkY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFENzMwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFVQU0lMT047THU7MDtMOzxmb250PiAwM0E1Ozs7O047Ozs7OworMUQ3MzE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENzMyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDczMztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQU0k7THU7MDtMOzxmb250PiAwM0E4Ozs7O047Ozs7OworMUQ3MzQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ3MzU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFENzM2O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBBTFBIQTtMbDswO0w7PGZvbnQ+IDAzQjE7Ozs7Tjs7Ozs7CisxRDczNztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDczODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ3Mzk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIERFTFRBO0xsOzA7TDs8Zm9udD4gMDNCNDs7OztOOzs7OzsKKzFENzNBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENzNCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFENzNDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBFVEE7TGw7MDtMOzxmb250PiAwM0I3Ozs7O047Ozs7OworMUQ3M0Q7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENzNFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFENzNGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBLQVBQQTtMbDswO0w7PGZvbnQ+IDAzQkE7Ozs7Tjs7Ozs7CisxRDc0MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3NDE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFENzQyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBOVTtMbDswO0w7PGZvbnQ+IDAzQkQ7Ozs7Tjs7Ozs7CisxRDc0MztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3NDQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ3NDU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFBJO0xsOzA7TDs8Zm9udD4gMDNDMDs7OztOOzs7OzsKKzFENzQ2O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3NDc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFENzQ4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzM7Ozs7Tjs7Ozs7CisxRDc0OTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENzRBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFENzRCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBQSEk7TGw7MDtMOzxmb250PiAwM0M2Ozs7O047Ozs7OworMUQ3NEM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDc0RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFENzRFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBPTUVHQTtMbDswO0w7PGZvbnQ+IDAzQzk7Ozs7Tjs7Ozs7CisxRDc0RjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O1k7Ozs7OworMUQ3NTA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFENzUxO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0QxOzs7O047Ozs7OworMUQ3NTI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDc1MztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDc1NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUkhPIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjE7Ozs7Tjs7Ozs7CisxRDc1NTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENzU2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDc1NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQkVUQTtMdTswO0w7PGZvbnQ+IDAzOTI7Ozs7Tjs7Ozs7CisxRDc1ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ3NTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENzVBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBFUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDM5NTs7OztOOzs7OzsKKzFENzVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENzVDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ3NUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFRIRVRBO0x1OzA7TDs8Zm9udD4gMDM5ODs7OztOOzs7OzsKKzFENzVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENzVGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDc2MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTEFNREE7THU7MDtMOzxmb250PiAwMzlCOzs7O047Ozs7OworMUQ3NjE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENzYyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDc2MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWEk7THU7MDtMOzxmb250PiAwMzlFOzs7O047Ozs7OworMUQ3NjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ3NjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENzY2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBSSE87THU7MDtMOzxmb250PiAwM0ExOzs7O047Ozs7OworMUQ3Njc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDc2ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ3Njk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFRBVTtMdTswO0w7PGZvbnQ+IDAzQTQ7Ozs7Tjs7Ozs7CisxRDc2QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDc2QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENzZDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBDSEk7THU7MDtMOzxmb250PiAwM0E3Ozs7O047Ozs7OworMUQ3NkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDc2RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ3NkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBOQUJMQTtTbTswO0w7PGZvbnQ+IDIyMDc7Ozs7Tjs7Ozs7CisxRDc3MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENzcxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDc3MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEdBTU1BO0xsOzA7TDs8Zm9udD4gMDNCMzs7OztOOzs7OzsKKzFENzczO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3NzQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENzc1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWkVUQTtMbDswO0w7PGZvbnQ+IDAzQjY7Ozs7Tjs7Ozs7CisxRDc3NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDc3NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENzc4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgSU9UQTtMbDswO0w7PGZvbnQ+IDAzQjk7Ozs7Tjs7Ozs7CisxRDc3OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzdBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3N0I7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBNVTtMbDswO0w7PGZvbnQ+IDAzQkM7Ozs7Tjs7Ozs7CisxRDc3QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzdEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3N0U7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBPTUlDUk9OO0xsOzA7TDs8Zm9udD4gMDNCRjs7OztOOzs7OzsKKzFENzdGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3ODA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3ODE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBGSU5BTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzI7Ozs7Tjs7Ozs7CisxRDc4MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzgzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENzg0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQzU7Ozs7Tjs7Ozs7CisxRDc4NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDc4NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDc4NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFBTSTtMbDswO0w7PGZvbnQ+IDAzQzg7Ozs7Tjs7Ozs7CisxRDc4ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzg5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O1k7Ozs7OworMUQ3OEE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjU7Ozs7Tjs7Ozs7CisxRDc4QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDc4QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDc4RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFBISSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q1Ozs7O047Ozs7OworMUQ3OEU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzhGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENzkwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQUxQSEE7THU7MDtMOzxmb250PiAwMzkxOzs7O047Ozs7OworMUQ3OTE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENzkyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ3OTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBERUxUQTtMdTswO0w7PGZvbnQ+IDAzOTQ7Ozs7Tjs7Ozs7CisxRDc5NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ3OTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENzk2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRVRBO0x1OzA7TDs8Zm9udD4gMDM5Nzs7OztOOzs7OzsKKzFENzk3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ3OTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENzk5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgS0FQUEE7THU7MDtMOzxmb250PiAwMzlBOzs7O047Ozs7OworMUQ3OUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDc5QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENzlDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTlU7THU7MDtMOzxmb250PiAwMzlEOzs7O047Ozs7OworMUQ3OUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDc5RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ3OUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQSTtMdTswO0w7PGZvbnQ+IDAzQTA7Ozs7Tjs7Ozs7CisxRDdBMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDdBMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDdBMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFNJR01BO0x1OzA7TDs8Zm9udD4gMDNBMzs7OztOOzs7OzsKKzFEN0EzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFEN0E0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDdBNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFBISTtMdTswO0w7PGZvbnQ+IDAzQTY7Ozs7Tjs7Ozs7CisxRDdBNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDdBNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDdBODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE9NRUdBO0x1OzA7TDs8Zm9udD4gMDNBOTs7OztOOzs7OzsKKzFEN0E5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFEN0FBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFEN0FCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEJFVEE7TGw7MDtMOzxmb250PiAwM0IyOzs7O047Ozs7OworMUQ3QUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ3QUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3QUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQjU7Ozs7Tjs7Ozs7CisxRDdBRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFEN0IwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDdCMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBUSEVUQTtMbDswO0w7PGZvbnQ+IDAzQjg7Ozs7Tjs7Ozs7CisxRDdCMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFEN0IzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFEN0I0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIExBTURBO0xsOzA7TDs8Zm9udD4gMDNCQjs7OztOOzs7OzsKKzFEN0I1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFEN0I2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFEN0I3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFhJO0xsOzA7TDs8Zm9udD4gMDNCRTs7OztOOzs7OzsKKzFEN0I4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ3Qjk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3QkE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUkhPO0xsOzA7TDs8Zm9udD4gMDNDMTs7OztOOzs7OzsKKzFEN0JCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFEN0JDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFEN0JEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFRBVTtMbDswO0w7PGZvbnQ+IDAzQzQ7Ozs7Tjs7Ozs7CisxRDdCRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFEN0JGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDdDMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBDSEk7TGw7MDtMOzxmb250PiAwM0M3Ozs7O047Ozs7OworMUQ3QzE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFEN0MyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFEN0MzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFBBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7TDs8Zm9udD4gMjIwMjs7OztZOzs7OzsKKzFEN0M0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFEN0M1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDdDNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBLQVBQQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YwOzs7O047Ozs7OworMUQ3Qzc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDdDODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFEN0M5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFBJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDY7Ozs7Tjs7Ozs7CisxRDdDQTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIERJR0FNTUE7THU7MDtMOzxmb250PiAwM0RDOzs7O047Ozs7OworMUQ3Q0I7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRElHQU1NQTtMbDswO0w7PGZvbnQ+IDAzREQ7Ozs7Tjs7Ozs7CisxRDdDRTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdDRjtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0QwO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3RDE7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0QyO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0QzO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0Q0O01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3RDU7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0Q2O01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdENztNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisxRDdEODtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdEOTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0RBO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3REI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0RDO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0REO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0RFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3REY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0UwO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdFMTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisxRDdFMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdFMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0U0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3RTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0U2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0U3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0U4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3RTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0VBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdFQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisxRDdFQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0VEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgT05FO05kOzA7RU47PGZvbnQ+IDAwMzE7MTsxOzE7Tjs7Ozs7CisxRDdFRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3RUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBGT1VSO05kOzA7RU47PGZvbnQ+IDAwMzQ7NDs0OzQ7Tjs7Ozs7CisxRDdGMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0YyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdGMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFNFVkVOO05kOzA7RU47PGZvbnQ+IDAwMzc7Nzs3Ozc7Tjs7Ozs7CisxRDdGNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdGNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0Y2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgWkVSTztOZDswO0VOOzxmb250PiAwMDMwOzA7MDswO047Ozs7OworMUQ3Rjc7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0Y4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdGOTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIFRIUkVFO05kOzA7RU47PGZvbnQ+IDAwMzM7MzszOzM7Tjs7Ozs7CisxRDdGQTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0ZCO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RkM7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBTSVg7TmQ7MDtFTjs8Zm9udD4gMDAzNjs2OzY7NjtOOzs7OzsKKzFEN0ZEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0ZFO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0ZGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgTklORTtOZDswO0VOOzxmb250PiAwMDM5Ozk7OTs5O047Ozs7OworMjAwMDA7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEIsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworMkE2RDY7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEIsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRjgwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDA7TG87MDtMOzRFM0Q7Ozs7Tjs7Ozs7CisyRjgwMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDE7TG87MDtMOzRFMzg7Ozs7Tjs7Ozs7CisyRjgwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDI7TG87MDtMOzRFNDE7Ozs7Tjs7Ozs7CisyRjgwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDM7TG87MDtMOzIwMTIyOzs7O047Ozs7OworMkY4MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA0O0xvOzA7TDs0RjYwOzs7O047Ozs7OworMkY4MDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA1O0xvOzA7TDs0RkFFOzs7O047Ozs7OworMkY4MDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA2O0xvOzA7TDs0RkJCOzs7O047Ozs7OworMkY4MDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA3O0xvOzA7TDs1MDAyOzs7O047Ozs7OworMkY4MDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA4O0xvOzA7TDs1MDdBOzs7O047Ozs7OworMkY4MDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA5O0xvOzA7TDs1MDk5Ozs7O047Ozs7OworMkY4MEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBBO0xvOzA7TDs1MEU3Ozs7O047Ozs7OworMkY4MEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBCO0xvOzA7TDs1MENGOzs7O047Ozs7OworMkY4MEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBDO0xvOzA7TDszNDlFOzs7O047Ozs7OworMkY4MEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBEO0xvOzA7TDsyMDYzQTs7OztOOzs7OzsKKzJGODBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwRTtMbzswO0w7NTE0RDs7OztOOzs7OzsKKzJGODBGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwRjtMbzswO0w7NTE1NDs7OztOOzs7OzsKKzJGODEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMDtMbzswO0w7NTE2NDs7OztOOzs7OzsKKzJGODExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMTtMbzswO0w7NTE3Nzs7OztOOzs7OzsKKzJGODEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMjtMbzswO0w7MjA1MUM7Ozs7Tjs7Ozs7CisyRjgxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTM7TG87MDtMOzM0Qjk7Ozs7Tjs7Ozs7CisyRjgxNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTQ7TG87MDtMOzUxNjc7Ozs7Tjs7Ozs7CisyRjgxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTU7TG87MDtMOzUxOEQ7Ozs7Tjs7Ozs7CisyRjgxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTY7TG87MDtMOzIwNTRCOzs7O047Ozs7OworMkY4MTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODE3O0xvOzA7TDs1MTk3Ozs7O047Ozs7OworMkY4MTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODE4O0xvOzA7TDs1MUE0Ozs7O047Ozs7OworMkY4MTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODE5O0xvOzA7TDs0RUNDOzs7O047Ozs7OworMkY4MUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFBO0xvOzA7TDs1MUFDOzs7O047Ozs7OworMkY4MUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFCO0xvOzA7TDs1MUI1Ozs7O047Ozs7OworMkY4MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFDO0xvOzA7TDsyOTFERjs7OztOOzs7OzsKKzJGODFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxRDtMbzswO0w7NTFGNTs7OztOOzs7OzsKKzJGODFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxRTtMbzswO0w7NTIwMzs7OztOOzs7OzsKKzJGODFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxRjtMbzswO0w7MzRERjs7OztOOzs7OzsKKzJGODIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMDtMbzswO0w7NTIzQjs7OztOOzs7OzsKKzJGODIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMTtMbzswO0w7NTI0Njs7OztOOzs7OzsKKzJGODIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMjtMbzswO0w7NTI3Mjs7OztOOzs7OzsKKzJGODIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMztMbzswO0w7NTI3Nzs7OztOOzs7OzsKKzJGODI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNDtMbzswO0w7MzUxNTs7OztOOzs7OzsKKzJGODI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNTtMbzswO0w7NTJDNzs7OztOOzs7OzsKKzJGODI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNjtMbzswO0w7NTJDOTs7OztOOzs7OzsKKzJGODI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNztMbzswO0w7NTJFNDs7OztOOzs7OzsKKzJGODI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyODtMbzswO0w7NTJGQTs7OztOOzs7OzsKKzJGODI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyOTtMbzswO0w7NTMwNTs7OztOOzs7OzsKKzJGODJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyQTtMbzswO0w7NTMwNjs7OztOOzs7OzsKKzJGODJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyQjtMbzswO0w7NTMxNzs7OztOOzs7OzsKKzJGODJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyQztMbzswO0w7NTM0OTs7OztOOzs7OzsKKzJGODJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyRDtMbzswO0w7NTM1MTs7OztOOzs7OzsKKzJGODJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyRTtMbzswO0w7NTM1QTs7OztOOzs7OzsKKzJGODJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyRjtMbzswO0w7NTM3Mzs7OztOOzs7OzsKKzJGODMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMDtMbzswO0w7NTM3RDs7OztOOzs7OzsKKzJGODMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMTtMbzswO0w7NTM3Rjs7OztOOzs7OzsKKzJGODMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMjtMbzswO0w7NTM3Rjs7OztOOzs7OzsKKzJGODMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMztMbzswO0w7NTM3Rjs7OztOOzs7OzsKKzJGODM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNDtMbzswO0w7MjBBMkM7Ozs7Tjs7Ozs7CisyRjgzNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MzU7TG87MDtMOzcwNzA7Ozs7Tjs7Ozs7CisyRjgzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MzY7TG87MDtMOzUzQ0E7Ozs7Tjs7Ozs7CisyRjgzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Mzc7TG87MDtMOzUzREY7Ozs7Tjs7Ozs7CisyRjgzODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Mzg7TG87MDtMOzIwQjYzOzs7O047Ozs7OworMkY4Mzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODM5O0xvOzA7TDs1M0VCOzs7O047Ozs7OworMkY4M0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNBO0xvOzA7TDs1M0YxOzs7O047Ozs7OworMkY4M0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNCO0xvOzA7TDs1NDA2Ozs7O047Ozs7OworMkY4M0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNDO0xvOzA7TDs1NDlFOzs7O047Ozs7OworMkY4M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNEO0xvOzA7TDs1NDM4Ozs7O047Ozs7OworMkY4M0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNFO0xvOzA7TDs1NDQ4Ozs7O047Ozs7OworMkY4M0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNGO0xvOzA7TDs1NDY4Ozs7O047Ozs7OworMkY4NDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQwO0xvOzA7TDs1NEEyOzs7O047Ozs7OworMkY4NDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQxO0xvOzA7TDs1NEY2Ozs7O047Ozs7OworMkY4NDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQyO0xvOzA7TDs1NTEwOzs7O047Ozs7OworMkY4NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQzO0xvOzA7TDs1NTUzOzs7O047Ozs7OworMkY4NDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ0O0xvOzA7TDs1NTYzOzs7O047Ozs7OworMkY4NDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ1O0xvOzA7TDs1NTg0Ozs7O047Ozs7OworMkY4NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ2O0xvOzA7TDs1NTg0Ozs7O047Ozs7OworMkY4NDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ3O0xvOzA7TDs1NTk5Ozs7O047Ozs7OworMkY4NDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ4O0xvOzA7TDs1NUFCOzs7O047Ozs7OworMkY4NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ5O0xvOzA7TDs1NUIzOzs7O047Ozs7OworMkY4NEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRBO0xvOzA7TDs1NUMyOzs7O047Ozs7OworMkY4NEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRCO0xvOzA7TDs1NzE2Ozs7O047Ozs7OworMkY4NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRDO0xvOzA7TDs1NjA2Ozs7O047Ozs7OworMkY4NEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODREO0xvOzA7TDs1NzE3Ozs7O047Ozs7OworMkY4NEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRFO0xvOzA7TDs1NjUxOzs7O047Ozs7OworMkY4NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRGO0xvOzA7TDs1Njc0Ozs7O047Ozs7OworMkY4NTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUwO0xvOzA7TDs1MjA3Ozs7O047Ozs7OworMkY4NTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUxO0xvOzA7TDs1OEVFOzs7O047Ozs7OworMkY4NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUyO0xvOzA7TDs1N0NFOzs7O047Ozs7OworMkY4NTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUzO0xvOzA7TDs1N0Y0Ozs7O047Ozs7OworMkY4NTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU0O0xvOzA7TDs1ODBEOzs7O047Ozs7OworMkY4NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU1O0xvOzA7TDs1NzhCOzs7O047Ozs7OworMkY4NTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU2O0xvOzA7TDs1ODMyOzs7O047Ozs7OworMkY4NTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU3O0xvOzA7TDs1ODMxOzs7O047Ozs7OworMkY4NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU4O0xvOzA7TDs1OEFDOzs7O047Ozs7OworMkY4NTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU5O0xvOzA7TDsyMTRFNDs7OztOOzs7OzsKKzJGODVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1QTtMbzswO0w7NThGMjs7OztOOzs7OzsKKzJGODVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1QjtMbzswO0w7NThGNzs7OztOOzs7OzsKKzJGODVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1QztMbzswO0w7NTkwNjs7OztOOzs7OzsKKzJGODVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1RDtMbzswO0w7NTkxQTs7OztOOzs7OzsKKzJGODVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1RTtMbzswO0w7NTkyMjs7OztOOzs7OzsKKzJGODVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1RjtMbzswO0w7NTk2Mjs7OztOOzs7OzsKKzJGODYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2MDtMbzswO0w7MjE2QTg7Ozs7Tjs7Ozs7CisyRjg2MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjE7TG87MDtMOzIxNkVBOzs7O047Ozs7OworMkY4NjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODYyO0xvOzA7TDs1OUVDOzs7O047Ozs7OworMkY4NjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODYzO0xvOzA7TDs1QTFCOzs7O047Ozs7OworMkY4NjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY0O0xvOzA7TDs1QTI3Ozs7O047Ozs7OworMkY4NjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY1O0xvOzA7TDs1OUQ4Ozs7O047Ozs7OworMkY4NjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY2O0xvOzA7TDs1QTY2Ozs7O047Ozs7OworMkY4Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY3O0xvOzA7TDszNkVFOzs7O047Ozs7OworMkY4Njg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY4O0xvOzA7TDszNkZDOzs7O047Ozs7OworMkY4Njk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY5O0xvOzA7TDs1QjA4Ozs7O047Ozs7OworMkY4NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZBO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZCO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZDO0xvOzA7TDsyMTlDODs7OztOOzs7OzsKKzJGODZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RDtMbzswO0w7NUJDMzs7OztOOzs7OzsKKzJGODZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RTtMbzswO0w7NUJEODs7OztOOzs7OzsKKzJGODZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RjtMbzswO0w7NUJFNzs7OztOOzs7OzsKKzJGODcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MDtMbzswO0w7NUJGMzs7OztOOzs7OzsKKzJGODcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MTtMbzswO0w7MjFCMTg7Ozs7Tjs7Ozs7CisyRjg3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzI7TG87MDtMOzVCRkY7Ozs7Tjs7Ozs7CisyRjg3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzM7TG87MDtMOzVDMDY7Ozs7Tjs7Ozs7CisyRjg3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzQ7TG87MDtMOzVGNTM7Ozs7Tjs7Ozs7CisyRjg3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzU7TG87MDtMOzVDMjI7Ozs7Tjs7Ozs7CisyRjg3NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzY7TG87MDtMOzM3ODE7Ozs7Tjs7Ozs7CisyRjg3NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzc7TG87MDtMOzVDNjA7Ozs7Tjs7Ozs7CisyRjg3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzg7TG87MDtMOzVDNkU7Ozs7Tjs7Ozs7CisyRjg3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzk7TG87MDtMOzVDQzA7Ozs7Tjs7Ozs7CisyRjg3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0E7TG87MDtMOzVDOEQ7Ozs7Tjs7Ozs7CisyRjg3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0I7TG87MDtMOzIxREU0Ozs7O047Ozs7OworMkY4N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdDO0xvOzA7TDs1RDQzOzs7O047Ozs7OworMkY4N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdEO0xvOzA7TDsyMURFNjs7OztOOzs7OzsKKzJGODdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RTtMbzswO0w7NUQ2RTs7OztOOzs7OzsKKzJGODdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RjtMbzswO0w7NUQ2Qjs7OztOOzs7OzsKKzJGODgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MDtMbzswO0w7NUQ3Qzs7OztOOzs7OzsKKzJGODgxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MTtMbzswO0w7NURFMTs7OztOOzs7OzsKKzJGODgyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MjtMbzswO0w7NURFMjs7OztOOzs7OzsKKzJGODgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MztMbzswO0w7MzgyRjs7OztOOzs7OzsKKzJGODg0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NDtMbzswO0w7NURGRDs7OztOOzs7OzsKKzJGODg1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NTtMbzswO0w7NUUyODs7OztOOzs7OzsKKzJGODg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NjtMbzswO0w7NUUzRDs7OztOOzs7OzsKKzJGODg3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NztMbzswO0w7NUU2OTs7OztOOzs7OzsKKzJGODg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4ODtMbzswO0w7Mzg2Mjs7OztOOzs7OzsKKzJGODg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4OTtMbzswO0w7MjIxODM7Ozs7Tjs7Ozs7CisyRjg4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEE7TG87MDtMOzM4N0M7Ozs7Tjs7Ozs7CisyRjg4QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEI7TG87MDtMOzVFQjA7Ozs7Tjs7Ozs7CisyRjg4QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEM7TG87MDtMOzVFQjM7Ozs7Tjs7Ozs7CisyRjg4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEQ7TG87MDtMOzVFQjY7Ozs7Tjs7Ozs7CisyRjg4RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEU7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CisyRjg4RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEY7TG87MDtMOzJBMzkyOzs7O047Ozs7OworMkY4OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkwO0xvOzA7TDs1RUZFOzs7O047Ozs7OworMkY4OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkxO0xvOzA7TDsyMjMzMTs7OztOOzs7OzsKKzJGODkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5MjtMbzswO0w7MjIzMzE7Ozs7Tjs7Ozs7CisyRjg5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTM7TG87MDtMOzgyMDE7Ozs7Tjs7Ozs7CisyRjg5NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTQ7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTU7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTY7TG87MDtMOzM4Qzc7Ozs7Tjs7Ozs7CisyRjg5NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTc7TG87MDtMOzIzMkI4Ozs7O047Ozs7OworMkY4OTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODk4O0xvOzA7TDsyNjFEQTs7OztOOzs7OzsKKzJGODk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5OTtMbzswO0w7NUY2Mjs7OztOOzs7OzsKKzJGODlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QTtMbzswO0w7NUY2Qjs7OztOOzs7OzsKKzJGODlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QjtMbzswO0w7MzhFMzs7OztOOzs7OzsKKzJGODlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QztMbzswO0w7NUY5QTs7OztOOzs7OzsKKzJGODlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RDtMbzswO0w7NUZDRDs7OztOOzs7OzsKKzJGODlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RTtMbzswO0w7NUZENzs7OztOOzs7OzsKKzJGODlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RjtMbzswO0w7NUZGOTs7OztOOzs7OzsKKzJGOEEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMDtMbzswO0w7NjA4MTs7OztOOzs7OzsKKzJGOEExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMTtMbzswO0w7MzkzQTs7OztOOzs7OzsKKzJGOEEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMjtMbzswO0w7MzkxQzs7OztOOzs7OzsKKzJGOEEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMztMbzswO0w7NjA5NDs7OztOOzs7OzsKKzJGOEE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBNDtMbzswO0w7MjI2RDQ7Ozs7Tjs7Ozs7CisyRjhBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTU7TG87MDtMOzYwQzc7Ozs7Tjs7Ozs7CisyRjhBNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTY7TG87MDtMOzYxNDg7Ozs7Tjs7Ozs7CisyRjhBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTc7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTg7TG87MDtMOzYxNEU7Ozs7Tjs7Ozs7CisyRjhBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTk7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUE7TG87MDtMOzYxN0E7Ozs7Tjs7Ozs7CisyRjhBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUI7TG87MDtMOzYxOEU7Ozs7Tjs7Ozs7CisyRjhBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUM7TG87MDtMOzYxQjI7Ozs7Tjs7Ozs7CisyRjhBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUQ7TG87MDtMOzYxQTQ7Ozs7Tjs7Ozs7CisyRjhBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUU7TG87MDtMOzYxQUY7Ozs7Tjs7Ozs7CisyRjhBRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUY7TG87MDtMOzYxREU7Ozs7Tjs7Ozs7CisyRjhCMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjA7TG87MDtMOzYxRjI7Ozs7Tjs7Ozs7CisyRjhCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjE7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CisyRjhCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjI7TG87MDtMOzYyMTA7Ozs7Tjs7Ozs7CisyRjhCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjM7TG87MDtMOzYyMUI7Ozs7Tjs7Ozs7CisyRjhCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjQ7TG87MDtMOzYyNUQ7Ozs7Tjs7Ozs7CisyRjhCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjU7TG87MDtMOzYyQjE7Ozs7Tjs7Ozs7CisyRjhCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjY7TG87MDtMOzYyRDQ7Ozs7Tjs7Ozs7CisyRjhCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjc7TG87MDtMOzYzNTA7Ozs7Tjs7Ozs7CisyRjhCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjg7TG87MDtMOzIyQjBDOzs7O047Ozs7OworMkY4Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEI5O0xvOzA7TDs2MzNEOzs7O047Ozs7OworMkY4QkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJBO0xvOzA7TDs2MkZDOzs7O047Ozs7OworMkY4QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJCO0xvOzA7TDs2MzY4Ozs7O047Ozs7OworMkY4QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJDO0xvOzA7TDs2MzgzOzs7O047Ozs7OworMkY4QkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJEO0xvOzA7TDs2M0U0Ozs7O047Ozs7OworMkY4QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJFO0xvOzA7TDsyMkJGMTs7OztOOzs7OzsKKzJGOEJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCRjtMbzswO0w7NjQyMjs7OztOOzs7OzsKKzJGOEMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMDtMbzswO0w7NjNDNTs7OztOOzs7OzsKKzJGOEMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMTtMbzswO0w7NjNBOTs7OztOOzs7OzsKKzJGOEMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMjtMbzswO0w7M0EyRTs7OztOOzs7OzsKKzJGOEMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMztMbzswO0w7NjQ2OTs7OztOOzs7OzsKKzJGOEM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNDtMbzswO0w7NjQ3RTs7OztOOzs7OzsKKzJGOEM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNTtMbzswO0w7NjQ5RDs7OztOOzs7OzsKKzJGOEM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNjtMbzswO0w7NjQ3Nzs7OztOOzs7OzsKKzJGOEM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNztMbzswO0w7M0E2Qzs7OztOOzs7OzsKKzJGOEM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDODtMbzswO0w7NjU0Rjs7OztOOzs7OzsKKzJGOEM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDOTtMbzswO0w7NjU2Qzs7OztOOzs7OzsKKzJGOENBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDQTtMbzswO0w7MjMwMEE7Ozs7Tjs7Ozs7CisyRjhDQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0I7TG87MDtMOzY1RTM7Ozs7Tjs7Ozs7CisyRjhDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0M7TG87MDtMOzY2Rjg7Ozs7Tjs7Ozs7CisyRjhDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Q7TG87MDtMOzY2NDk7Ozs7Tjs7Ozs7CisyRjhDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0U7TG87MDtMOzNCMTk7Ozs7Tjs7Ozs7CisyRjhDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Y7TG87MDtMOzY2OTE7Ozs7Tjs7Ozs7CisyRjhEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDA7TG87MDtMOzNCMDg7Ozs7Tjs7Ozs7CisyRjhEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDE7TG87MDtMOzNBRTQ7Ozs7Tjs7Ozs7CisyRjhEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDI7TG87MDtMOzUxOTI7Ozs7Tjs7Ozs7CisyRjhEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDM7TG87MDtMOzUxOTU7Ozs7Tjs7Ozs7CisyRjhENDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDQ7TG87MDtMOzY3MDA7Ozs7Tjs7Ozs7CisyRjhENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDU7TG87MDtMOzY2OUM7Ozs7Tjs7Ozs7CisyRjhENjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDY7TG87MDtMOzgwQUQ7Ozs7Tjs7Ozs7CisyRjhENztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDc7TG87MDtMOzQzRDk7Ozs7Tjs7Ozs7CisyRjhEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDg7TG87MDtMOzY3MTc7Ozs7Tjs7Ozs7CisyRjhEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDk7TG87MDtMOzY3MUI7Ozs7Tjs7Ozs7CisyRjhEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REE7TG87MDtMOzY3MjE7Ozs7Tjs7Ozs7CisyRjhEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REI7TG87MDtMOzY3NUU7Ozs7Tjs7Ozs7CisyRjhEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REM7TG87MDtMOzY3NTM7Ozs7Tjs7Ozs7CisyRjhERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REQ7TG87MDtMOzIzM0MzOzs7O047Ozs7OworMkY4REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERFO0xvOzA7TDszQjQ5Ozs7O047Ozs7OworMkY4REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERGO0xvOzA7TDs2N0ZBOzs7O047Ozs7OworMkY4RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUwO0xvOzA7TDs2Nzg1Ozs7O047Ozs7OworMkY4RTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUxO0xvOzA7TDs2ODUyOzs7O047Ozs7OworMkY4RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUyO0xvOzA7TDs2ODg1Ozs7O047Ozs7OworMkY4RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUzO0xvOzA7TDsyMzQ2RDs7OztOOzs7OzsKKzJGOEU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNDtMbzswO0w7Njg4RTs7OztOOzs7OzsKKzJGOEU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNTtMbzswO0w7NjgxRjs7OztOOzs7OzsKKzJGOEU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNjtMbzswO0w7NjkxNDs7OztOOzs7OzsKKzJGOEU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNztMbzswO0w7M0I5RDs7OztOOzs7OzsKKzJGOEU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFODtMbzswO0w7Njk0Mjs7OztOOzs7OzsKKzJGOEU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFOTtMbzswO0w7NjlBMzs7OztOOzs7OzsKKzJGOEVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQTtMbzswO0w7NjlFQTs7OztOOzs7OzsKKzJGOEVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQjtMbzswO0w7NkFBODs7OztOOzs7OzsKKzJGOEVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQztMbzswO0w7MjM2QTM7Ozs7Tjs7Ozs7CisyRjhFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUQ7TG87MDtMOzZBREI7Ozs7Tjs7Ozs7CisyRjhFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUU7TG87MDtMOzNDMTg7Ozs7Tjs7Ozs7CisyRjhFRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUY7TG87MDtMOzZCMjE7Ozs7Tjs7Ozs7CisyRjhGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjA7TG87MDtMOzIzOEE3Ozs7O047Ozs7OworMkY4RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYxO0xvOzA7TDs2QjU0Ozs7O047Ozs7OworMkY4RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYyO0xvOzA7TDszQzRFOzs7O047Ozs7OworMkY4RjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYzO0xvOzA7TDs2QjcyOzs7O047Ozs7OworMkY4RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY0O0xvOzA7TDs2QjlGOzs7O047Ozs7OworMkY4RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY1O0xvOzA7TDs2QkJBOzs7O047Ozs7OworMkY4RjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY2O0xvOzA7TDs2QkJCOzs7O047Ozs7OworMkY4Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY3O0xvOzA7TDsyM0E4RDs7OztOOzs7OzsKKzJGOEY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGODtMbzswO0w7MjFEMEI7Ozs7Tjs7Ozs7CisyRjhGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Rjk7TG87MDtMOzIzQUZBOzs7O047Ozs7OworMkY4RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZBO0xvOzA7TDs2QzRFOzs7O047Ozs7OworMkY4RkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZCO0xvOzA7TDsyM0NCQzs7OztOOzs7OzsKKzJGOEZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGQztMbzswO0w7NkNCRjs7OztOOzs7OzsKKzJGOEZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRDtMbzswO0w7NkNDRDs7OztOOzs7OzsKKzJGOEZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRTtMbzswO0w7NkM2Nzs7OztOOzs7OzsKKzJGOEZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRjtMbzswO0w7NkQxNjs7OztOOzs7OzsKKzJGOTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMDtMbzswO0w7NkQzRTs7OztOOzs7OzsKKzJGOTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMTtMbzswO0w7NkQ3Nzs7OztOOzs7OzsKKzJGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMjtMbzswO0w7NkQ0MTs7OztOOzs7OzsKKzJGOTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMztMbzswO0w7NkQ2OTs7OztOOzs7OzsKKzJGOTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNDtMbzswO0w7NkQ3ODs7OztOOzs7OzsKKzJGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNTtMbzswO0w7NkQ4NTs7OztOOzs7OzsKKzJGOTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNjtMbzswO0w7MjNEMUU7Ozs7Tjs7Ozs7CisyRjkwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDc7TG87MDtMOzZEMzQ7Ozs7Tjs7Ozs7CisyRjkwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDg7TG87MDtMOzZFMkY7Ozs7Tjs7Ozs7CisyRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDk7TG87MDtMOzZFNkU7Ozs7Tjs7Ozs7CisyRjkwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEE7TG87MDtMOzNEMzM7Ozs7Tjs7Ozs7CisyRjkwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEI7TG87MDtMOzZFQ0I7Ozs7Tjs7Ozs7CisyRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEM7TG87MDtMOzZFQzc7Ozs7Tjs7Ozs7CisyRjkwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEQ7TG87MDtMOzIzRUQxOzs7O047Ozs7OworMkY5MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBFO0xvOzA7TDs2REY5Ozs7O047Ozs7OworMkY5MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBGO0xvOzA7TDs2RjZFOzs7O047Ozs7OworMkY5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTEwO0xvOzA7TDsyM0Y1RTs7OztOOzs7OzsKKzJGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxMTtMbzswO0w7MjNGOEU7Ozs7Tjs7Ozs7CisyRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTI7TG87MDtMOzZGQzY7Ozs7Tjs7Ozs7CisyRjkxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTM7TG87MDtMOzcwMzk7Ozs7Tjs7Ozs7CisyRjkxNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTQ7TG87MDtMOzcwMUU7Ozs7Tjs7Ozs7CisyRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTU7TG87MDtMOzcwMUI7Ozs7Tjs7Ozs7CisyRjkxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTY7TG87MDtMOzNEOTY7Ozs7Tjs7Ozs7CisyRjkxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTc7TG87MDtMOzcwNEE7Ozs7Tjs7Ozs7CisyRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTg7TG87MDtMOzcwN0Q7Ozs7Tjs7Ozs7CisyRjkxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTk7TG87MDtMOzcwNzc7Ozs7Tjs7Ozs7CisyRjkxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUE7TG87MDtMOzcwQUQ7Ozs7Tjs7Ozs7CisyRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUI7TG87MDtMOzIwNTI1Ozs7O047Ozs7OworMkY5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFDO0xvOzA7TDs3MTQ1Ozs7O047Ozs7OworMkY5MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFEO0xvOzA7TDsyNDI2Mzs7OztOOzs7OzsKKzJGOTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRTtMbzswO0w7NzE5Qzs7OztOOzs7OzsKKzJGOTFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRjtMbzswO0w7MjQzQUI7Ozs7Tjs7Ozs7CisyRjkyMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjA7TG87MDtMOzcyMjg7Ozs7Tjs7Ozs7CisyRjkyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjE7TG87MDtMOzcyMzU7Ozs7Tjs7Ozs7CisyRjkyMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjI7TG87MDtMOzcyNTA7Ozs7Tjs7Ozs7CisyRjkyMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjM7TG87MDtMOzI0NjA4Ozs7O047Ozs7OworMkY5MjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI0O0xvOzA7TDs3MjgwOzs7O047Ozs7OworMkY5MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI1O0xvOzA7TDs3Mjk1Ozs7O047Ozs7OworMkY5MjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI2O0xvOzA7TDsyNDczNTs7OztOOzs7OzsKKzJGOTI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyNztMbzswO0w7MjQ4MTQ7Ozs7Tjs7Ozs7CisyRjkyODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Mjg7TG87MDtMOzczN0E7Ozs7Tjs7Ozs7CisyRjkyOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Mjk7TG87MDtMOzczOEI7Ozs7Tjs7Ozs7CisyRjkyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkE7TG87MDtMOzNFQUM7Ozs7Tjs7Ozs7CisyRjkyQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkI7TG87MDtMOzczQTU7Ozs7Tjs7Ozs7CisyRjkyQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkM7TG87MDtMOzNFQjg7Ozs7Tjs7Ozs7CisyRjkyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkQ7TG87MDtMOzNFQjg7Ozs7Tjs7Ozs7CisyRjkyRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkU7TG87MDtMOzc0NDc7Ozs7Tjs7Ozs7CisyRjkyRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkY7TG87MDtMOzc0NUM7Ozs7Tjs7Ozs7CisyRjkzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzA7TG87MDtMOzc0NzE7Ozs7Tjs7Ozs7CisyRjkzMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzE7TG87MDtMOzc0ODU7Ozs7Tjs7Ozs7CisyRjkzMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzI7TG87MDtMOzc0Q0E7Ozs7Tjs7Ozs7CisyRjkzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzM7TG87MDtMOzNGMUI7Ozs7Tjs7Ozs7CisyRjkzNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzQ7TG87MDtMOzc1MjQ7Ozs7Tjs7Ozs7CisyRjkzNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzU7TG87MDtMOzI0QzM2Ozs7O047Ozs7OworMkY5MzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM2O0xvOzA7TDs3NTNFOzs7O047Ozs7OworMkY5Mzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM3O0xvOzA7TDsyNEM5Mjs7OztOOzs7OzsKKzJGOTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzODtMbzswO0w7NzU3MDs7OztOOzs7OzsKKzJGOTM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzOTtMbzswO0w7MjIxOUY7Ozs7Tjs7Ozs7CisyRjkzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0E7TG87MDtMOzc2MTA7Ozs7Tjs7Ozs7CisyRjkzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0I7TG87MDtMOzI0RkExOzs7O047Ozs7OworMkY5M0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTNDO0xvOzA7TDsyNEZCODs7OztOOzs7OzsKKzJGOTNEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRDtMbzswO0w7MjUwNDQ7Ozs7Tjs7Ozs7CisyRjkzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0U7TG87MDtMOzNGRkM7Ozs7Tjs7Ozs7CisyRjkzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0Y7TG87MDtMOzQwMDg7Ozs7Tjs7Ozs7CisyRjk0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDA7TG87MDtMOzc2RjQ7Ozs7Tjs7Ozs7CisyRjk0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDE7TG87MDtMOzI1MEYzOzs7O047Ozs7OworMkY5NDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQyO0xvOzA7TDsyNTBGMjs7OztOOzs7OzsKKzJGOTQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MztMbzswO0w7MjUxMTk7Ozs7Tjs7Ozs7CisyRjk0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDQ7TG87MDtMOzI1MTMzOzs7O047Ozs7OworMkY5NDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ1O0xvOzA7TDs3NzFFOzs7O047Ozs7OworMkY5NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ2O0xvOzA7TDs3NzFGOzs7O047Ozs7OworMkY5NDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ3O0xvOzA7TDs3NzFGOzs7O047Ozs7OworMkY5NDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ4O0xvOzA7TDs3NzRBOzs7O047Ozs7OworMkY5NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ5O0xvOzA7TDs0MDM5Ozs7O047Ozs7OworMkY5NEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRBO0xvOzA7TDs3NzhCOzs7O047Ozs7OworMkY5NEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRCO0xvOzA7TDs0MDQ2Ozs7O047Ozs7OworMkY5NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRDO0xvOzA7TDs0MDk2Ozs7O047Ozs7OworMkY5NEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTREO0xvOzA7TDsyNTQxRDs7OztOOzs7OzsKKzJGOTRFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0RTtMbzswO0w7Nzg0RTs7OztOOzs7OzsKKzJGOTRGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0RjtMbzswO0w7Nzg4Qzs7OztOOzs7OzsKKzJGOTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MDtMbzswO0w7NzhDQzs7OztOOzs7OzsKKzJGOTUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MTtMbzswO0w7NDBFMzs7OztOOzs7OzsKKzJGOTUyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MjtMbzswO0w7MjU2MjY7Ozs7Tjs7Ozs7CisyRjk1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NTM7TG87MDtMOzc5NTY7Ozs7Tjs7Ozs7CisyRjk1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NTQ7TG87MDtMOzI1NjlBOzs7O047Ozs7OworMkY5NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU1O0xvOzA7TDsyNTZDNTs7OztOOzs7OzsKKzJGOTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1NjtMbzswO0w7Nzk4Rjs7OztOOzs7OzsKKzJGOTU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1NztMbzswO0w7NzlFQjs7OztOOzs7OzsKKzJGOTU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1ODtMbzswO0w7NDEyRjs7OztOOzs7OzsKKzJGOTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1OTtMbzswO0w7N0E0MDs7OztOOzs7OzsKKzJGOTVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1QTtMbzswO0w7N0E0QTs7OztOOzs7OzsKKzJGOTVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1QjtMbzswO0w7N0E0Rjs7OztOOzs7OzsKKzJGOTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1QztMbzswO0w7MjU5N0M7Ozs7Tjs7Ozs7CisyRjk1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NUQ7TG87MDtMOzI1QUE3Ozs7O047Ozs7OworMkY5NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVFO0xvOzA7TDsyNUFBNzs7OztOOzs7OzsKKzJGOTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1RjtMbzswO0w7N0FFRTs7OztOOzs7OzsKKzJGOTYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MDtMbzswO0w7NDIwMjs7OztOOzs7OzsKKzJGOTYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MTtMbzswO0w7MjVCQUI7Ozs7Tjs7Ozs7CisyRjk2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjI7TG87MDtMOzdCQzY7Ozs7Tjs7Ozs7CisyRjk2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjM7TG87MDtMOzdCQzk7Ozs7Tjs7Ozs7CisyRjk2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjQ7TG87MDtMOzQyMjc7Ozs7Tjs7Ozs7CisyRjk2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjU7TG87MDtMOzI1QzgwOzs7O047Ozs7OworMkY5NjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY2O0xvOzA7TDs3Q0QyOzs7O047Ozs7OworMkY5Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY3O0xvOzA7TDs0MkEwOzs7O047Ozs7OworMkY5Njg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY4O0xvOzA7TDs3Q0U4Ozs7O047Ozs7OworMkY5Njk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY5O0xvOzA7TDs3Q0UzOzs7O047Ozs7OworMkY5NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZBO0xvOzA7TDs3RDAwOzs7O047Ozs7OworMkY5NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZCO0xvOzA7TDsyNUY4Njs7OztOOzs7OzsKKzJGOTZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2QztMbzswO0w7N0Q2Mzs7OztOOzs7OzsKKzJGOTZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2RDtMbzswO0w7NDMwMTs7OztOOzs7OzsKKzJGOTZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2RTtMbzswO0w7N0RDNzs7OztOOzs7OzsKKzJGOTZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2RjtMbzswO0w7N0UwMjs7OztOOzs7OzsKKzJGOTcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MDtMbzswO0w7N0U0NTs7OztOOzs7OzsKKzJGOTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MTtMbzswO0w7NDMzNDs7OztOOzs7OzsKKzJGOTcyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MjtMbzswO0w7MjYyMjg7Ozs7Tjs7Ozs7CisyRjk3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzM7TG87MDtMOzI2MjQ3Ozs7O047Ozs7OworMkY5NzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc0O0xvOzA7TDs0MzU5Ozs7O047Ozs7OworMkY5NzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc1O0xvOzA7TDsyNjJEOTs7OztOOzs7OzsKKzJGOTc2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3NjtMbzswO0w7N0Y3QTs7OztOOzs7OzsKKzJGOTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3NztMbzswO0w7MjYzM0U7Ozs7Tjs7Ozs7CisyRjk3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Nzg7TG87MDtMOzdGOTU7Ozs7Tjs7Ozs7CisyRjk3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Nzk7TG87MDtMOzdGRkE7Ozs7Tjs7Ozs7CisyRjk3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0E7TG87MDtMOzgwMDU7Ozs7Tjs7Ozs7CisyRjk3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0I7TG87MDtMOzI2NERBOzs7O047Ozs7OworMkY5N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdDO0xvOzA7TDsyNjUyMzs7OztOOzs7OzsKKzJGOTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3RDtMbzswO0w7ODA2MDs7OztOOzs7OzsKKzJGOTdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3RTtMbzswO0w7MjY1QTg7Ozs7Tjs7Ozs7CisyRjk3RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0Y7TG87MDtMOzgwNzA7Ozs7Tjs7Ozs7CisyRjk4MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODA7TG87MDtMOzIzMzVGOzs7O047Ozs7OworMkY5ODE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTgxO0xvOzA7TDs0M0Q1Ozs7O047Ozs7OworMkY5ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTgyO0xvOzA7TDs4MEIyOzs7O047Ozs7OworMkY5ODM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTgzO0xvOzA7TDs4MTAzOzs7O047Ozs7OworMkY5ODQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg0O0xvOzA7TDs0NDBCOzs7O047Ozs7OworMkY5ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg1O0xvOzA7TDs4MTNFOzs7O047Ozs7OworMkY5ODY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg2O0xvOzA7TDs1QUI1Ozs7O047Ozs7OworMkY5ODc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg3O0xvOzA7TDsyNjdBNzs7OztOOzs7OzsKKzJGOTg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4ODtMbzswO0w7MjY3QjU7Ozs7Tjs7Ozs7CisyRjk4OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODk7TG87MDtMOzIzMzkzOzs7O047Ozs7OworMkY5OEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThBO0xvOzA7TDsyMzM5Qzs7OztOOzs7OzsKKzJGOThCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4QjtMbzswO0w7ODIwMTs7OztOOzs7OzsKKzJGOThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4QztMbzswO0w7ODIwNDs7OztOOzs7OzsKKzJGOThEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4RDtMbzswO0w7OEY5RTs7OztOOzs7OzsKKzJGOThFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4RTtMbzswO0w7NDQ2Qjs7OztOOzs7OzsKKzJGOThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4RjtMbzswO0w7ODI5MTs7OztOOzs7OzsKKzJGOTkwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MDtMbzswO0w7ODI4Qjs7OztOOzs7OzsKKzJGOTkxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MTtMbzswO0w7ODI5RDs7OztOOzs7OzsKKzJGOTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MjtMbzswO0w7NTJCMzs7OztOOzs7OzsKKzJGOTkzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MztMbzswO0w7ODJCMTs7OztOOzs7OzsKKzJGOTk0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NDtMbzswO0w7ODJCMzs7OztOOzs7OzsKKzJGOTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NTtMbzswO0w7ODJCRDs7OztOOzs7OzsKKzJGOTk2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NjtMbzswO0w7ODJFNjs7OztOOzs7OzsKKzJGOTk3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NztMbzswO0w7MjZCM0M7Ozs7Tjs7Ozs7CisyRjk5ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OTg7TG87MDtMOzgyRTU7Ozs7Tjs7Ozs7CisyRjk5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OTk7TG87MDtMOzgzMUQ7Ozs7Tjs7Ozs7CisyRjk5QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUE7TG87MDtMOzgzNjM7Ozs7Tjs7Ozs7CisyRjk5QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUI7TG87MDtMOzgzQUQ7Ozs7Tjs7Ozs7CisyRjk5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUM7TG87MDtMOzgzMjM7Ozs7Tjs7Ozs7CisyRjk5RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUQ7TG87MDtMOzgzQkQ7Ozs7Tjs7Ozs7CisyRjk5RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUU7TG87MDtMOzgzRTc7Ozs7Tjs7Ozs7CisyRjk5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUY7TG87MDtMOzg0NTc7Ozs7Tjs7Ozs7CisyRjlBMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTA7TG87MDtMOzgzNTM7Ozs7Tjs7Ozs7CisyRjlBMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTE7TG87MDtMOzgzQ0E7Ozs7Tjs7Ozs7CisyRjlBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTI7TG87MDtMOzgzQ0M7Ozs7Tjs7Ozs7CisyRjlBMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTM7TG87MDtMOzgzREM7Ozs7Tjs7Ozs7CisyRjlBNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTQ7TG87MDtMOzI2QzM2Ozs7O047Ozs7OworMkY5QTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUE1O0xvOzA7TDsyNkQ2Qjs7OztOOzs7OzsKKzJGOUE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNjtMbzswO0w7MjZDRDU7Ozs7Tjs7Ozs7CisyRjlBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTc7TG87MDtMOzQ1MkI7Ozs7Tjs7Ozs7CisyRjlBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTg7TG87MDtMOzg0RjE7Ozs7Tjs7Ozs7CisyRjlBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTk7TG87MDtMOzg0RjM7Ozs7Tjs7Ozs7CisyRjlBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUE7TG87MDtMOzg1MTY7Ozs7Tjs7Ozs7CisyRjlBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUI7TG87MDtMOzI3M0NBOzs7O047Ozs7OworMkY5QUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFDO0xvOzA7TDs4NTY0Ozs7O047Ozs7OworMkY5QUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFEO0xvOzA7TDsyNkYyQzs7OztOOzs7OzsKKzJGOUFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBRTtMbzswO0w7NDU1RDs7OztOOzs7OzsKKzJGOUFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBRjtMbzswO0w7NDU2MTs7OztOOzs7OzsKKzJGOUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlCMDtMbzswO0w7MjZGQjE7Ozs7Tjs7Ozs7CisyRjlCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjE7TG87MDtMOzI3MEQyOzs7O047Ozs7OworMkY5QjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUIyO0xvOzA7TDs0NTZCOzs7O047Ozs7OworMkY5QjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUIzO0xvOzA7TDs4NjUwOzs7O047Ozs7OworMkY5QjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI0O0xvOzA7TDs4NjVDOzs7O047Ozs7OworMkY5QjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI1O0xvOzA7TDs4NjY3Ozs7O047Ozs7OworMkY5QjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI2O0xvOzA7TDs4NjY5Ozs7O047Ozs7OworMkY5Qjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI3O0xvOzA7TDs4NkE5Ozs7O047Ozs7OworMkY5Qjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI4O0xvOzA7TDs4Njg4Ozs7O047Ozs7OworMkY5Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI5O0xvOzA7TDs4NzBFOzs7O047Ozs7OworMkY5QkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJBO0xvOzA7TDs4NkUyOzs7O047Ozs7OworMkY5QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJCO0xvOzA7TDs4Nzc5Ozs7O047Ozs7OworMkY5QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJDO0xvOzA7TDs4NzI4Ozs7O047Ozs7OworMkY5QkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJEO0xvOzA7TDs4NzZCOzs7O047Ozs7OworMkY5QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJFO0xvOzA7TDs4Nzg2Ozs7O047Ozs7OworMkY5QkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJGO0xvOzA7TDs0NUQ3Ozs7O047Ozs7OworMkY5QzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMwO0xvOzA7TDs4N0UxOzs7O047Ozs7OworMkY5QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMxO0xvOzA7TDs4ODAxOzs7O047Ozs7OworMkY5QzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMyO0xvOzA7TDs0NUY5Ozs7O047Ozs7OworMkY5QzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMzO0xvOzA7TDs4ODYwOzs7O047Ozs7OworMkY5QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM0O0xvOzA7TDs4ODYzOzs7O047Ozs7OworMkY5QzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM1O0xvOzA7TDsyNzY2Nzs7OztOOzs7OzsKKzJGOUM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDNjtMbzswO0w7ODhENzs7OztOOzs7OzsKKzJGOUM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDNztMbzswO0w7ODhERTs7OztOOzs7OzsKKzJGOUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDODtMbzswO0w7NDYzNTs7OztOOzs7OzsKKzJGOUM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDOTtMbzswO0w7ODhGQTs7OztOOzs7OzsKKzJGOUNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDQTtMbzswO0w7MzRCQjs7OztOOzs7OzsKKzJGOUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDQjtMbzswO0w7Mjc4QUU7Ozs7Tjs7Ozs7CisyRjlDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0M7TG87MDtMOzI3OTY2Ozs7O047Ozs7OworMkY5Q0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNEO0xvOzA7TDs0NkJFOzs7O047Ozs7OworMkY5Q0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNFO0xvOzA7TDs0NkM3Ozs7O047Ozs7OworMkY5Q0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNGO0xvOzA7TDs4QUEwOzs7O047Ozs7OworMkY5RDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQwO0xvOzA7TDs4QUVEOzs7O047Ozs7OworMkY5RDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQxO0xvOzA7TDs4QjhBOzs7O047Ozs7OworMkY5RDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQyO0xvOzA7TDs4QzU1Ozs7O047Ozs7OworMkY5RDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQzO0xvOzA7TDsyN0NBODs7OztOOzs7OzsKKzJGOUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENDtMbzswO0w7OENBQjs7OztOOzs7OzsKKzJGOUQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENTtMbzswO0w7OENDMTs7OztOOzs7OzsKKzJGOUQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENjtMbzswO0w7OEQxQjs7OztOOzs7OzsKKzJGOUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENztMbzswO0w7OEQ3Nzs7OztOOzs7OzsKKzJGOUQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlEODtMbzswO0w7MjdGMkY7Ozs7Tjs7Ozs7CisyRjlEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDk7TG87MDtMOzIwODA0Ozs7O047Ozs7OworMkY5REE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURBO0xvOzA7TDs4RENCOzs7O047Ozs7OworMkY5REI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURCO0xvOzA7TDs4REJDOzs7O047Ozs7OworMkY5REM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURDO0xvOzA7TDs4REYwOzs7O047Ozs7OworMkY5REQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUREO0xvOzA7TDsyMDhERTs7OztOOzs7OzsKKzJGOURFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlERTtMbzswO0w7OEVENDs7OztOOzs7OzsKKzJGOURGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlERjtMbzswO0w7OEYzODs7OztOOzs7OzsKKzJGOUUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFMDtMbzswO0w7Mjg1RDI7Ozs7Tjs7Ozs7CisyRjlFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTE7TG87MDtMOzI4NUVEOzs7O047Ozs7OworMkY5RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUUyO0xvOzA7TDs5MDk0Ozs7O047Ozs7OworMkY5RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUUzO0xvOzA7TDs5MEYxOzs7O047Ozs7OworMkY5RTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU0O0xvOzA7TDs5MTExOzs7O047Ozs7OworMkY5RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU1O0xvOzA7TDsyODcyRTs7OztOOzs7OzsKKzJGOUU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFNjtMbzswO0w7OTExQjs7OztOOzs7OzsKKzJGOUU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFNztMbzswO0w7OTIzODs7OztOOzs7OzsKKzJGOUU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFODtMbzswO0w7OTJENzs7OztOOzs7OzsKKzJGOUU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFOTtMbzswO0w7OTJEODs7OztOOzs7OzsKKzJGOUVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFQTtMbzswO0w7OTI3Qzs7OztOOzs7OzsKKzJGOUVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFQjtMbzswO0w7OTNGOTs7OztOOzs7OzsKKzJGOUVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFQztMbzswO0w7OTQxNTs7OztOOzs7OzsKKzJGOUVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRDtMbzswO0w7MjhCRkE7Ozs7Tjs7Ozs7CisyRjlFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RUU7TG87MDtMOzk1OEI7Ozs7Tjs7Ozs7CisyRjlFRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RUY7TG87MDtMOzQ5OTU7Ozs7Tjs7Ozs7CisyRjlGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjA7TG87MDtMOzk1Qjc7Ozs7Tjs7Ozs7CisyRjlGMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjE7TG87MDtMOzI4RDc3Ozs7O047Ozs7OworMkY5RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUYyO0xvOzA7TDs0OUU2Ozs7O047Ozs7OworMkY5RjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUYzO0xvOzA7TDs5NkMzOzs7O047Ozs7OworMkY5RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY0O0xvOzA7TDs1REIyOzs7O047Ozs7OworMkY5RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY1O0xvOzA7TDs5NzIzOzs7O047Ozs7OworMkY5RjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY2O0xvOzA7TDsyOTE0NTs7OztOOzs7OzsKKzJGOUY3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGNztMbzswO0w7MjkyMUE7Ozs7Tjs7Ozs7CisyRjlGODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Rjg7TG87MDtMOzRBNkU7Ozs7Tjs7Ozs7CisyRjlGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Rjk7TG87MDtMOzRBNzY7Ozs7Tjs7Ozs7CisyRjlGQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkE7TG87MDtMOzk3RTA7Ozs7Tjs7Ozs7CisyRjlGQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkI7TG87MDtMOzI5NDBBOzs7O047Ozs7OworMkY5RkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZDO0xvOzA7TDs0QUIyOzs7O047Ozs7OworMkY5RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZEO0xvOzA7TDsyOTQ5Njs7OztOOzs7OzsKKzJGOUZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGRTtMbzswO0w7OTgwQjs7OztOOzs7OzsKKzJGOUZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGRjtMbzswO0w7OTgwQjs7OztOOzs7OzsKKzJGQTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMDtMbzswO0w7OTgyOTs7OztOOzs7OzsKKzJGQTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMTtMbzswO0w7Mjk1QjY7Ozs7Tjs7Ozs7CisyRkEwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDI7TG87MDtMOzk4RTI7Ozs7Tjs7Ozs7CisyRkEwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDM7TG87MDtMOzRCMzM7Ozs7Tjs7Ozs7CisyRkEwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDQ7TG87MDtMOzk5Mjk7Ozs7Tjs7Ozs7CisyRkEwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDU7TG87MDtMOzk5QTc7Ozs7Tjs7Ozs7CisyRkEwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDY7TG87MDtMOzk5QzI7Ozs7Tjs7Ozs7CisyRkEwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDc7TG87MDtMOzk5RkU7Ozs7Tjs7Ozs7CisyRkEwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDg7TG87MDtMOzRCQ0U7Ozs7Tjs7Ozs7CisyRkEwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDk7TG87MDtMOzI5QjMwOzs7O047Ozs7OworMkZBMEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBBO0xvOzA7TDs5QjEyOzs7O047Ozs7OworMkZBMEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBCO0xvOzA7TDs5QzQwOzs7O047Ozs7OworMkZBMEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBDO0xvOzA7TDs5Q0ZEOzs7O047Ozs7OworMkZBMEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBEO0xvOzA7TDs0Q0NFOzs7O047Ozs7OworMkZBMEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBFO0xvOzA7TDs0Q0VEOzs7O047Ozs7OworMkZBMEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBGO0xvOzA7TDs5RDY3Ozs7O047Ozs7OworMkZBMTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTEwO0xvOzA7TDsyQTBDRTs7OztOOzs7OzsKKzJGQTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExMTtMbzswO0w7NENGODs7OztOOzs7OzsKKzJGQTEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExMjtMbzswO0w7MkExMDU7Ozs7Tjs7Ozs7CisyRkExMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTM7TG87MDtMOzJBMjBFOzs7O047Ozs7OworMkZBMTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE0O0xvOzA7TDsyQTI5MTs7OztOOzs7OzsKKzJGQTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExNTtMbzswO0w7OUVCQjs7OztOOzs7OzsKKzJGQTE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExNjtMbzswO0w7NEQ1Njs7OztOOzs7OzsKKzJGQTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExNztMbzswO0w7OUVGOTs7OztOOzs7OzsKKzJGQTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExODtMbzswO0w7OUVGRTs7OztOOzs7OzsKKzJGQTE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExOTtMbzswO0w7OUYwNTs7OztOOzs7OzsKKzJGQTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExQTtMbzswO0w7OUYwRjs7OztOOzs7OzsKKzJGQTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExQjtMbzswO0w7OUYxNjs7OztOOzs7OzsKKzJGQTFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExQztMbzswO0w7OUYzQjs7OztOOzs7OzsKKzJGQTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExRDtMbzswO0w7MkE2MDA7Ozs7Tjs7Ozs7CitFMDAwMTtMQU5HVUFHRSBUQUc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyMDtUQUcgU1BBQ0U7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyMTtUQUcgRVhDTEFNQVRJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIyO1RBRyBRVU9UQVRJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIzO1RBRyBOVU1CRVIgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI0O1RBRyBET0xMQVIgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI1O1RBRyBQRVJDRU5UIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyNjtUQUcgQU1QRVJTQU5EO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjc7VEFHIEFQT1NUUk9QSEU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyODtUQUcgTEVGVCBQQVJFTlRIRVNJUztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI5O1RBRyBSSUdIVCBQQVJFTlRIRVNJUztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJBO1RBRyBBU1RFUklTSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJCO1RBRyBQTFVTIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyQztUQUcgQ09NTUE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyRDtUQUcgSFlQSEVOLU1JTlVTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkU7VEFHIEZVTEwgU1RPUDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJGO1RBRyBTT0xJRFVTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzA7VEFHIERJR0lUIFpFUk87Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMTtUQUcgRElHSVQgT05FO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzI7VEFHIERJR0lUIFRXTztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDMzO1RBRyBESUdJVCBUSFJFRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDM0O1RBRyBESUdJVCBGT1VSO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzU7VEFHIERJR0lUIEZJVkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNjtUQUcgRElHSVQgU0lYO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzc7VEFHIERJR0lUIFNFVkVOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzg7VEFHIERJR0lUIEVJR0hUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzk7VEFHIERJR0lUIE5JTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzQTtUQUcgQ09MT047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzQjtUQUcgU0VNSUNPTE9OO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0M7VEFHIExFU1MtVEhBTiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0Q7VEFHIEVRVUFMUyBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0U7VEFHIEdSRUFURVItVEhBTiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0Y7VEFHIFFVRVNUSU9OIE1BUks7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0MDtUQUcgQ09NTUVSQ0lBTCBBVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQxO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDI7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0MztUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ0O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDU7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0NjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ3O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDg7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0OTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRBO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEI7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEs7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0QztUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDREO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEU7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIE47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0RjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDUwO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1MjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDUzO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU2O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTc7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1ODtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU5O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNUE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1QjtUQUcgTEVGVCBTUVVBUkUgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVDO1RBRyBSRVZFUlNFIFNPTElEVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1RDtUQUcgUklHSFQgU1FVQVJFIEJSQUNLRVQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1RTtUQUcgQ0lSQ1VNRkxFWCBBQ0NFTlQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1RjtUQUcgTE9XIExJTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MDtUQUcgR1JBVkUgQUNDRU5UO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjE7VEFHIExBVElOIFNNQUxMIExFVFRFUiBBO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjI7VEFHIExBVElOIFNNQUxMIExFVFRFUiBCO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjM7VEFHIExBVElOIFNNQUxMIExFVFRFUiBDO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjQ7VEFHIExBVElOIFNNQUxMIExFVFRFUiBEO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjU7VEFHIExBVElOIFNNQUxMIExFVFRFUiBFO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjY7VEFHIExBVElOIFNNQUxMIExFVFRFUiBGO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjc7VEFHIExBVElOIFNNQUxMIExFVFRFUiBHO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjg7VEFHIExBVElOIFNNQUxMIExFVFRFUiBIO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjk7VEFHIExBVElOIFNNQUxMIExFVFRFUiBJO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkE7VEFHIExBVElOIFNNQUxMIExFVFRFUiBKO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkI7VEFHIExBVElOIFNNQUxMIExFVFRFUiBLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkM7VEFHIExBVElOIFNNQUxMIExFVFRFUiBMO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkQ7VEFHIExBVElOIFNNQUxMIExFVFRFUiBNO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkU7VEFHIExBVElOIFNNQUxMIExFVFRFUiBOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkY7VEFHIExBVElOIFNNQUxMIExFVFRFUiBPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzA7VEFHIExBVElOIFNNQUxMIExFVFRFUiBQO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzE7VEFHIExBVElOIFNNQUxMIExFVFRFUiBRO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzI7VEFHIExBVElOIFNNQUxMIExFVFRFUiBSO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzM7VEFHIExBVElOIFNNQUxMIExFVFRFUiBTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzQ7VEFHIExBVElOIFNNQUxMIExFVFRFUiBUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzU7VEFHIExBVElOIFNNQUxMIExFVFRFUiBVO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzY7VEFHIExBVElOIFNNQUxMIExFVFRFUiBWO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzc7VEFHIExBVElOIFNNQUxMIExFVFRFUiBXO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzg7VEFHIExBVElOIFNNQUxMIExFVFRFUiBYO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzk7VEFHIExBVElOIFNNQUxMIExFVFRFUiBZO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0E7VEFHIExBVElOIFNNQUxMIExFVFRFUiBaO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0I7VEFHIExFRlQgQ1VSTFkgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdDO1RBRyBWRVJUSUNBTCBMSU5FO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0Q7VEFHIFJJR0hUIENVUkxZIEJSQUNLRVQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3RTtUQUcgVElMREU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3RjtDQU5DRUwgVEFHO0NmOzA7Qk47Ozs7O047Ozs7OworRTAxMDA7VkFSSUFUSU9OIFNFTEVDVE9SLTE3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTAxO1ZBUklBVElPTiBTRUxFQ1RPUi0xODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwMjtWQVJJQVRJT04gU0VMRUNUT1ItMTk7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDM7VkFSSUFUSU9OIFNFTEVDVE9SLTIwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTA0O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwNTtWQVJJQVRJT04gU0VMRUNUT1ItMjI7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDY7VkFSSUFUSU9OIFNFTEVDVE9SLTIzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTA3O1ZBUklBVElPTiBTRUxFQ1RPUi0yNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwODtWQVJJQVRJT04gU0VMRUNUT1ItMjU7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDk7VkFSSUFUSU9OIFNFTEVDVE9SLTI2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTBBO1ZBUklBVElPTiBTRUxFQ1RPUi0yNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwQjtWQVJJQVRJT04gU0VMRUNUT1ItMjg7TW47MDtOU007Ozs7O047Ozs7OworRTAxMEM7VkFSSUFUSU9OIFNFTEVDVE9SLTI5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTBEO1ZBUklBVElPTiBTRUxFQ1RPUi0zMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwRTtWQVJJQVRJT04gU0VMRUNUT1ItMzE7TW47MDtOU007Ozs7O047Ozs7OworRTAxMEY7VkFSSUFUSU9OIFNFTEVDVE9SLTMyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTEwO1ZBUklBVElPTiBTRUxFQ1RPUi0zMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExMTtWQVJJQVRJT04gU0VMRUNUT1ItMzQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTI7VkFSSUFUSU9OIFNFTEVDVE9SLTM1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTEzO1ZBUklBVElPTiBTRUxFQ1RPUi0zNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExNDtWQVJJQVRJT04gU0VMRUNUT1ItMzc7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTU7VkFSSUFUSU9OIFNFTEVDVE9SLTM4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTE2O1ZBUklBVElPTiBTRUxFQ1RPUi0zOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExNztWQVJJQVRJT04gU0VMRUNUT1ItNDA7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTg7VkFSSUFUSU9OIFNFTEVDVE9SLTQxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTE5O1ZBUklBVElPTiBTRUxFQ1RPUi00MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExQTtWQVJJQVRJT04gU0VMRUNUT1ItNDM7TW47MDtOU007Ozs7O047Ozs7OworRTAxMUI7VkFSSUFUSU9OIFNFTEVDVE9SLTQ0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTFDO1ZBUklBVElPTiBTRUxFQ1RPUi00NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExRDtWQVJJQVRJT04gU0VMRUNUT1ItNDY7TW47MDtOU007Ozs7O047Ozs7OworRTAxMUU7VkFSSUFUSU9OIFNFTEVDVE9SLTQ3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTFGO1ZBUklBVElPTiBTRUxFQ1RPUi00ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyMDtWQVJJQVRJT04gU0VMRUNUT1ItNDk7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjE7VkFSSUFUSU9OIFNFTEVDVE9SLTUwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTIyO1ZBUklBVElPTiBTRUxFQ1RPUi01MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyMztWQVJJQVRJT04gU0VMRUNUT1ItNTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjQ7VkFSSUFUSU9OIFNFTEVDVE9SLTUzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTI1O1ZBUklBVElPTiBTRUxFQ1RPUi01NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyNjtWQVJJQVRJT04gU0VMRUNUT1ItNTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjc7VkFSSUFUSU9OIFNFTEVDVE9SLTU2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTI4O1ZBUklBVElPTiBTRUxFQ1RPUi01NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyOTtWQVJJQVRJT04gU0VMRUNUT1ItNTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxMkE7VkFSSUFUSU9OIFNFTEVDVE9SLTU5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTJCO1ZBUklBVElPTiBTRUxFQ1RPUi02MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyQztWQVJJQVRJT04gU0VMRUNUT1ItNjE7TW47MDtOU007Ozs7O047Ozs7OworRTAxMkQ7VkFSSUFUSU9OIFNFTEVDVE9SLTYyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTJFO1ZBUklBVElPTiBTRUxFQ1RPUi02MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyRjtWQVJJQVRJT04gU0VMRUNUT1ItNjQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzA7VkFSSUFUSU9OIFNFTEVDVE9SLTY1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTMxO1ZBUklBVElPTiBTRUxFQ1RPUi02NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzMjtWQVJJQVRJT04gU0VMRUNUT1ItNjc7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzM7VkFSSUFUSU9OIFNFTEVDVE9SLTY4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTM0O1ZBUklBVElPTiBTRUxFQ1RPUi02OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzNTtWQVJJQVRJT04gU0VMRUNUT1ItNzA7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzY7VkFSSUFUSU9OIFNFTEVDVE9SLTcxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTM3O1ZBUklBVElPTiBTRUxFQ1RPUi03MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzODtWQVJJQVRJT04gU0VMRUNUT1ItNzM7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzk7VkFSSUFUSU9OIFNFTEVDVE9SLTc0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTNBO1ZBUklBVElPTiBTRUxFQ1RPUi03NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzQjtWQVJJQVRJT04gU0VMRUNUT1ItNzY7TW47MDtOU007Ozs7O047Ozs7OworRTAxM0M7VkFSSUFUSU9OIFNFTEVDVE9SLTc3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTNEO1ZBUklBVElPTiBTRUxFQ1RPUi03ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzRTtWQVJJQVRJT04gU0VMRUNUT1ItNzk7TW47MDtOU007Ozs7O047Ozs7OworRTAxM0Y7VkFSSUFUSU9OIFNFTEVDVE9SLTgwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQwO1ZBUklBVElPTiBTRUxFQ1RPUi04MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0MTtWQVJJQVRJT04gU0VMRUNUT1ItODI7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDI7VkFSSUFUSU9OIFNFTEVDVE9SLTgzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQzO1ZBUklBVElPTiBTRUxFQ1RPUi04NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0NDtWQVJJQVRJT04gU0VMRUNUT1ItODU7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDU7VkFSSUFUSU9OIFNFTEVDVE9SLTg2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQ2O1ZBUklBVElPTiBTRUxFQ1RPUi04NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0NztWQVJJQVRJT04gU0VMRUNUT1ItODg7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDg7VkFSSUFUSU9OIFNFTEVDVE9SLTg5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQ5O1ZBUklBVElPTiBTRUxFQ1RPUi05MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0QTtWQVJJQVRJT04gU0VMRUNUT1ItOTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxNEI7VkFSSUFUSU9OIFNFTEVDVE9SLTkyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTRDO1ZBUklBVElPTiBTRUxFQ1RPUi05MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0RDtWQVJJQVRJT04gU0VMRUNUT1ItOTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxNEU7VkFSSUFUSU9OIFNFTEVDVE9SLTk1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTRGO1ZBUklBVElPTiBTRUxFQ1RPUi05NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1MDtWQVJJQVRJT04gU0VMRUNUT1ItOTc7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTE7VkFSSUFUSU9OIFNFTEVDVE9SLTk4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTUyO1ZBUklBVElPTiBTRUxFQ1RPUi05OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1MztWQVJJQVRJT04gU0VMRUNUT1ItMTAwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTU0O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDE7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTU7VkFSSUFUSU9OIFNFTEVDVE9SLTEwMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1NjtWQVJJQVRJT04gU0VMRUNUT1ItMTAzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTU3O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTg7VkFSSUFUSU9OIFNFTEVDVE9SLTEwNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1OTtWQVJJQVRJT04gU0VMRUNUT1ItMTA2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTVBO1ZBUklBVElPTiBTRUxFQ1RPUi0xMDc7TW47MDtOU007Ozs7O047Ozs7OworRTAxNUI7VkFSSUFUSU9OIFNFTEVDVE9SLTEwODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1QztWQVJJQVRJT04gU0VMRUNUT1ItMTA5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTVEO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTA7TW47MDtOU007Ozs7O047Ozs7OworRTAxNUU7VkFSSUFUSU9OIFNFTEVDVE9SLTExMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1RjtWQVJJQVRJT04gU0VMRUNUT1ItMTEyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTYwO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTM7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjE7VkFSSUFUSU9OIFNFTEVDVE9SLTExNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2MjtWQVJJQVRJT04gU0VMRUNUT1ItMTE1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTYzO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTY7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjQ7VkFSSUFUSU9OIFNFTEVDVE9SLTExNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2NTtWQVJJQVRJT04gU0VMRUNUT1ItMTE4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTY2O1ZBUklBVElPTiBTRUxFQ1RPUi0xMTk7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjc7VkFSSUFUSU9OIFNFTEVDVE9SLTEyMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2ODtWQVJJQVRJT04gU0VMRUNUT1ItMTIxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTY5O1ZBUklBVElPTiBTRUxFQ1RPUi0xMjI7TW47MDtOU007Ozs7O047Ozs7OworRTAxNkE7VkFSSUFUSU9OIFNFTEVDVE9SLTEyMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2QjtWQVJJQVRJT04gU0VMRUNUT1ItMTI0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTZDO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjU7TW47MDtOU007Ozs7O047Ozs7OworRTAxNkQ7VkFSSUFUSU9OIFNFTEVDVE9SLTEyNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2RTtWQVJJQVRJT04gU0VMRUNUT1ItMTI3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTZGO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjg7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzA7VkFSSUFUSU9OIFNFTEVDVE9SLTEyOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3MTtWQVJJQVRJT04gU0VMRUNUT1ItMTMwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTcyO1ZBUklBVElPTiBTRUxFQ1RPUi0xMzE7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzM7VkFSSUFUSU9OIFNFTEVDVE9SLTEzMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3NDtWQVJJQVRJT04gU0VMRUNUT1ItMTMzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTc1O1ZBUklBVElPTiBTRUxFQ1RPUi0xMzQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzY7VkFSSUFUSU9OIFNFTEVDVE9SLTEzNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3NztWQVJJQVRJT04gU0VMRUNUT1ItMTM2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTc4O1ZBUklBVElPTiBTRUxFQ1RPUi0xMzc7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzk7VkFSSUFUSU9OIFNFTEVDVE9SLTEzODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3QTtWQVJJQVRJT04gU0VMRUNUT1ItMTM5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTdCO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDA7TW47MDtOU007Ozs7O047Ozs7OworRTAxN0M7VkFSSUFUSU9OIFNFTEVDVE9SLTE0MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3RDtWQVJJQVRJT04gU0VMRUNUT1ItMTQyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTdFO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDM7TW47MDtOU007Ozs7O047Ozs7OworRTAxN0Y7VkFSSUFUSU9OIFNFTEVDVE9SLTE0NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4MDtWQVJJQVRJT04gU0VMRUNUT1ItMTQ1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTgxO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDY7TW47MDtOU007Ozs7O047Ozs7OworRTAxODI7VkFSSUFUSU9OIFNFTEVDVE9SLTE0NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4MztWQVJJQVRJT04gU0VMRUNUT1ItMTQ4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTg0O1ZBUklBVElPTiBTRUxFQ1RPUi0xNDk7TW47MDtOU007Ozs7O047Ozs7OworRTAxODU7VkFSSUFUSU9OIFNFTEVDVE9SLTE1MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4NjtWQVJJQVRJT04gU0VMRUNUT1ItMTUxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTg3O1ZBUklBVElPTiBTRUxFQ1RPUi0xNTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxODg7VkFSSUFUSU9OIFNFTEVDVE9SLTE1MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4OTtWQVJJQVRJT04gU0VMRUNUT1ItMTU0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMThBO1ZBUklBVElPTiBTRUxFQ1RPUi0xNTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxOEI7VkFSSUFUSU9OIFNFTEVDVE9SLTE1NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4QztWQVJJQVRJT04gU0VMRUNUT1ItMTU3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMThEO1ZBUklBVElPTiBTRUxFQ1RPUi0xNTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxOEU7VkFSSUFUSU9OIFNFTEVDVE9SLTE1OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4RjtWQVJJQVRJT04gU0VMRUNUT1ItMTYwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTkwO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjE7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTE7VkFSSUFUSU9OIFNFTEVDVE9SLTE2MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5MjtWQVJJQVRJT04gU0VMRUNUT1ItMTYzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTkzO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE2NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5NTtWQVJJQVRJT04gU0VMRUNUT1ItMTY2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTk2O1ZBUklBVElPTiBTRUxFQ1RPUi0xNjc7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTc7VkFSSUFUSU9OIFNFTEVDVE9SLTE2ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5ODtWQVJJQVRJT04gU0VMRUNUT1ItMTY5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTk5O1ZBUklBVElPTiBTRUxFQ1RPUi0xNzA7TW47MDtOU007Ozs7O047Ozs7OworRTAxOUE7VkFSSUFUSU9OIFNFTEVDVE9SLTE3MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5QjtWQVJJQVRJT04gU0VMRUNUT1ItMTcyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTlDO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzM7TW47MDtOU007Ozs7O047Ozs7OworRTAxOUQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE3NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5RTtWQVJJQVRJT04gU0VMRUNUT1ItMTc1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTlGO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzY7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTA7VkFSSUFUSU9OIFNFTEVDVE9SLTE3NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBMTtWQVJJQVRJT04gU0VMRUNUT1ItMTc4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUEyO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzk7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTM7VkFSSUFUSU9OIFNFTEVDVE9SLTE4MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBNDtWQVJJQVRJT04gU0VMRUNUT1ItMTgxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUE1O1ZBUklBVElPTiBTRUxFQ1RPUi0xODI7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTY7VkFSSUFUSU9OIFNFTEVDVE9SLTE4MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBNztWQVJJQVRJT04gU0VMRUNUT1ItMTg0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUE4O1ZBUklBVElPTiBTRUxFQ1RPUi0xODU7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTk7VkFSSUFUSU9OIFNFTEVDVE9SLTE4NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBQTtWQVJJQVRJT04gU0VMRUNUT1ItMTg3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUFCO1ZBUklBVElPTiBTRUxFQ1RPUi0xODg7TW47MDtOU007Ozs7O047Ozs7OworRTAxQUM7VkFSSUFUSU9OIFNFTEVDVE9SLTE4OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBRDtWQVJJQVRJT04gU0VMRUNUT1ItMTkwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUFFO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxQUY7VkFSSUFUSU9OIFNFTEVDVE9SLTE5MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCMDtWQVJJQVRJT04gU0VMRUNUT1ItMTkzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUIxO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjI7VkFSSUFUSU9OIFNFTEVDVE9SLTE5NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCMztWQVJJQVRJT04gU0VMRUNUT1ItMTk2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUI0O1ZBUklBVElPTiBTRUxFQ1RPUi0xOTc7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjU7VkFSSUFUSU9OIFNFTEVDVE9SLTE5ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCNjtWQVJJQVRJT04gU0VMRUNUT1ItMTk5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUI3O1ZBUklBVElPTiBTRUxFQ1RPUi0yMDA7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjg7VkFSSUFUSU9OIFNFTEVDVE9SLTIwMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCOTtWQVJJQVRJT04gU0VMRUNUT1ItMjAyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUJBO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDM7TW47MDtOU007Ozs7O047Ozs7OworRTAxQkI7VkFSSUFUSU9OIFNFTEVDVE9SLTIwNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCQztWQVJJQVRJT04gU0VMRUNUT1ItMjA1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUJEO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDY7TW47MDtOU007Ozs7O047Ozs7OworRTAxQkU7VkFSSUFUSU9OIFNFTEVDVE9SLTIwNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCRjtWQVJJQVRJT04gU0VMRUNUT1ItMjA4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUMwO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDk7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzE7VkFSSUFUSU9OIFNFTEVDVE9SLTIxMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDMjtWQVJJQVRJT04gU0VMRUNUT1ItMjExO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUMzO1ZBUklBVElPTiBTRUxFQ1RPUi0yMTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzQ7VkFSSUFUSU9OIFNFTEVDVE9SLTIxMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDNTtWQVJJQVRJT04gU0VMRUNUT1ItMjE0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUM2O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzc7VkFSSUFUSU9OIFNFTEVDVE9SLTIxNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDODtWQVJJQVRJT04gU0VMRUNUT1ItMjE3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUM5O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxQ0E7VkFSSUFUSU9OIFNFTEVDVE9SLTIxOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDQjtWQVJJQVRJT04gU0VMRUNUT1ItMjIwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUNDO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjE7TW47MDtOU007Ozs7O047Ozs7OworRTAxQ0Q7VkFSSUFUSU9OIFNFTEVDVE9SLTIyMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDRTtWQVJJQVRJT04gU0VMRUNUT1ItMjIzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUNGO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDA7VkFSSUFUSU9OIFNFTEVDVE9SLTIyNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEMTtWQVJJQVRJT04gU0VMRUNUT1ItMjI2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQyO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjc7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDM7VkFSSUFUSU9OIFNFTEVDVE9SLTIyODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFENDtWQVJJQVRJT04gU0VMRUNUT1ItMjI5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQ1O1ZBUklBVElPTiBTRUxFQ1RPUi0yMzA7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDY7VkFSSUFUSU9OIFNFTEVDVE9SLTIzMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFENztWQVJJQVRJT04gU0VMRUNUT1ItMjMyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQ4O1ZBUklBVElPTiBTRUxFQ1RPUi0yMzM7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDk7VkFSSUFUSU9OIFNFTEVDVE9SLTIzNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEQTtWQVJJQVRJT04gU0VMRUNUT1ItMjM1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMURCO1ZBUklBVElPTiBTRUxFQ1RPUi0yMzY7TW47MDtOU007Ozs7O047Ozs7OworRTAxREM7VkFSSUFUSU9OIFNFTEVDVE9SLTIzNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFERDtWQVJJQVRJT04gU0VMRUNUT1ItMjM4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMURFO1ZBUklBVElPTiBTRUxFQ1RPUi0yMzk7TW47MDtOU007Ozs7O047Ozs7OworRTAxREY7VkFSSUFUSU9OIFNFTEVDVE9SLTI0MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFMDtWQVJJQVRJT04gU0VMRUNUT1ItMjQxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUUxO1ZBUklBVElPTiBTRUxFQ1RPUi0yNDI7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTI7VkFSSUFUSU9OIFNFTEVDVE9SLTI0MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFMztWQVJJQVRJT04gU0VMRUNUT1ItMjQ0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUU0O1ZBUklBVElPTiBTRUxFQ1RPUi0yNDU7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTU7VkFSSUFUSU9OIFNFTEVDVE9SLTI0NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFNjtWQVJJQVRJT04gU0VMRUNUT1ItMjQ3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUU3O1ZBUklBVElPTiBTRUxFQ1RPUi0yNDg7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTg7VkFSSUFUSU9OIFNFTEVDVE9SLTI0OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFOTtWQVJJQVRJT04gU0VMRUNUT1ItMjUwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUVBO1ZBUklBVElPTiBTRUxFQ1RPUi0yNTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxRUI7VkFSSUFUSU9OIFNFTEVDVE9SLTI1MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFQztWQVJJQVRJT04gU0VMRUNUT1ItMjUzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUVEO1ZBUklBVElPTiBTRUxFQ1RPUi0yNTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxRUU7VkFSSUFUSU9OIFNFTEVDVE9SLTI1NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFRjtWQVJJQVRJT04gU0VMRUNUT1ItMjU2O01uOzA7TlNNOzs7OztOOzs7OzsKK0YwMDAwOzxQbGFuZSAxNSBQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CitGRkZGRDs8UGxhbmUgMTUgUHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwMDA7PFBsYW5lIDE2IFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKKzEwRkZGRDs8UGxhbmUgMTYgUHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS91Y2R0ZXJtcy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS91Y2R0ZXJtcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YxZGRlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL3VjZHRlcm1zLnR4dApAQCAtMCwwICsxLDQ1IEBACitVTklDT0RFLCBJTkMuIExJQ0VOU0UgQUdSRUVNRU5UIC0gREFUQSBGSUxFUyBBTkQgU09GVFdBUkUKKworVW5pY29kZSBEYXRhIEZpbGVzIGluY2x1ZGUgYWxsIGRhdGEgZmlsZXMgdW5kZXIgdGhlIGRpcmVjdG9yaWVzCitodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy8gYW5kIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy8uCitVbmljb2RlIFNvZnR3YXJlIGluY2x1ZGVzIGFueSBzb3VyY2UgY29kZSB1bmRlciB0aGUgZGlyZWN0b3JpZXMKK2h0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLyBhbmQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzLy4KKworTk9USUNFIFRPIFVTRVI6IENhcmVmdWxseSByZWFkIHRoZSBmb2xsb3dpbmcgbGVnYWwgYWdyZWVtZW50LiBCWSBET1dOTE9BRElORywKK0lOU1RBTExJTkcsIENPUFlJTkcgT1IgT1RIRVJXSVNFIFVTSU5HIFVOSUNPREUgSU5DLidTIERBVEEgRklMRVMgKCJEQVRBIEZJTEVTIiksCitBTkQvT1IgU09GVFdBUkUgKCJTT0ZUV0FSRSIpLCBZT1UgVU5FUVVJVk9DQUxMWSBBQ0NFUFQsIEFORCBBR1JFRSBUTyBCRSBCT1VORAorQlksIEFMTCBPRiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQuIElGIFlPVSBETyBOT1QgQUdSRUUsCitETyBOT1QgRE9XTkxPQUQsIElOU1RBTEwsIENPUFksIERJU1RSSUJVVEUgT1IgVVNFIFRIRSBEQVRBIEZJTEVTIE9SIFNPRlRXQVJFLgorCitDT1BZUklHSFQgQU5EIFBFUk1JU1NJT04gTk9USUNFCisKK0NvcHlyaWdodCAoYykgMTk5MS0yMDA0IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlCitUZXJtcyBvZiBVc2UgaW4gaHR0cDovL3d3dy51bmljb2RlLm9yZy9jb3B5cmlnaHQuaHRtbC4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgordGhlIFVuaWNvZGUgZGF0YSBmaWxlcyBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uICh0aGUgIkRhdGEgRmlsZXMiKSBvcgorVW5pY29kZSBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uICh0aGUgIlNvZnR3YXJlIikgdG8gZGVhbCBpbiB0aGUKK0RhdGEgRmlsZXMgb3IgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKK3JpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIGFuZC9vciBzZWxsIGNvcGllcyBvZgordGhlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBEYXRhIEZpbGVzIG9yCitTb2Z0d2FyZSBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBwcm92aWRlZCB0aGF0IChhKSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKQorYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgb2YgdGhlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUsCisoYikgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KK2Fzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiwgYW5kIChjKSB0aGVyZSBpcyBjbGVhciBub3RpY2UgaW4gZWFjaCBtb2RpZmllZCBEYXRhCitGaWxlIG9yIGluIHRoZSBTb2Z0d2FyZSBhcyB3ZWxsIGFzIGluIHRoZSBkb2N1bWVudGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgRGF0YQorRmlsZShzKSBvciBTb2Z0d2FyZSB0aGF0IHRoZSBkYXRhIG9yIHNvZnR3YXJlIGhhcyBiZWVuIG1vZGlmaWVkLgorCitUSEUgREFUQSBGSUxFUyBBTkQgU09GVFdBUkUgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVCBPRiBUSElSRAorUEFSVFkgUklHSFRTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBIT0xERVJTIElOQ0xVREVEIElOIFRISVMKK05PVElDRSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgT1IgQU5ZIFNQRUNJQUwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTAorREFNQUdFUywgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLAorV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhFIERBVEEgRklMRVMgT1IKK1NPRlRXQVJFLgorCitFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiBhIGNvcHlyaWdodCBob2xkZXIgc2hhbGwgbm90IGJlCit1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIgZGVhbGluZ3MgaW4KK3RoZXNlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gb2YgdGhlCitjb3B5cmlnaHQgaG9sZGVyLgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQXBwLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJBcHAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNzUyYzBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQXBwLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworCisvKioKKyAqIENhbGVuZGFyQXBwIGRlbW9uc3RyYXRlcyBob3cgQ2FsZW5kYXIgd29ya3MuCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckFwcCBleHRlbmRzIERlbW9BcHBsZXQKK3sKKyAgICAvKioKKyAgICAgKiBUaGUgbWFpbiBmdW5jdGlvbiB3aGljaCBkZWZpbmVzIHRoZSBiZWhhdmlvciBvZiB0aGUgQ2FsZW5kYXJEZW1vCisgICAgICogYXBwbGV0IHdoZW4gYW4gYXBwbGV0IGlzIHN0YXJ0ZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworCisgICAgICAgIG5ldyBDYWxlbmRhckFwcCgpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgLyogVGhpcyBjcmVhdGVzIGEgQ2FsZW5kYXJGcmFtZSBmb3IgdGhlIGRlbW8gYXBwbGV0LiAqLworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhckZyYW1lKGFwcGxldCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQ2FsYy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQ2FsYy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhZDE4NjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJDYWxjLmphdmEKQEAgLTAsMCArMSw1ODUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuQ2hlY2tib3g7CitpbXBvcnQgamF2YS5hd3QuQ2hlY2tib3hHcm91cDsKK2ltcG9ydCBqYXZhLmF3dC5DaG9pY2U7CitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5GbG93TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JpZExheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5MYWJlbDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5UZXh0RmllbGQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRGaWVsZDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuRGVtb0FwcGxldDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CdWRkaGlzdENhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisvKioKKyAqIENhbGVuZGFyQ2FsYyBkZW1vbnN0cmF0ZXMgaG93IERhdGUvVGltZSBmb3JtYXR0ZXIgd29ya3MuCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckNhbGMgZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgLyoqCisgICAgICogVGhlIG1haW4gZnVuY3Rpb24gd2hpY2ggZGVmaW5lcyB0aGUgYmVoYXZpb3Igb2YgdGhlIE11bHRpQ2FsZW5kYXJEZW1vCisgICAgICogYXBwbGV0IHdoZW4gYW4gYXBwbGV0IGlzIHN0YXJ0ZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBuZXcgQ2FsZW5kYXJDYWxjKCkuc2hvd0RlbW8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNyZWF0ZXMgYSBDYWxlbmRhckNhbGNGcmFtZSBmb3IgdGhlIGRlbW8gYXBwbGV0LgorICAgICAqLworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhckNhbGNGcmFtZShhcHBsZXQpOworICAgIH0KK30KKworLyoqCisgKiBBIEZyYW1lIGlzIGEgdG9wLWxldmVsIHdpbmRvdyB3aXRoIGEgdGl0bGUuIFRoZSBkZWZhdWx0IGxheW91dCBmb3IgYSBmcmFtZQorICogaXMgQm9yZGVyTGF5b3V0LiAgVGhlIENhbGVuZGFyQ2FsY0ZyYW1lIGNsYXNzIGRlZmluZXMgdGhlIHdpbmRvdyBsYXlvdXQgb2YKKyAqIE11bHRpQ2FsZW5kYXJEZW1vLgorICovCitjbGFzcyBDYWxlbmRhckNhbGNGcmFtZSBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IERlbW9VdGlsaXR5LmdldEc3TG9jYWxlcygpOworCisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0ICAgICAgICAgICAgICBhcHBsZXQ7CisgICAgcHJpdmF0ZSBsb25nICAgICAgICAgICAgICAgICAgICB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBSb2xsQWRkRmllbGQga1JvbGxBZGRGaWVsZHNbXSA9IHsKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5ZRUFSLCAgICAgICAgICAgICAgICAgIlllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuTU9OVEgsICAgICAgICAgICAgICAgICJNb250aCIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5XRUVLX09GX01PTlRILCAgICAgICAgIldlZWsgb2YgTW9udGgiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAgICAgICAgICJXZWVrIG9mIFllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAgICAgICAgICJEYXkgb2YgTW9udGgiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuREFZX09GX1dFRUssICAgICAgICAgICJEYXkgb2YgV2VlayIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgIkRheSBvZiBXZWVrIGluIE1vbnRoIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAgICAgICAgICAiRGF5IG9mIFllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuQU1fUE0sICAgICAgICAgICAgICAgICJBTS9QTSIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5IT1VSX09GX0RBWSwgICAgICAgICAgIkhvdXIgb2YgZGF5IiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkhPVVIsICAgICAgICAgICAgICAgICAiSG91ciIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5NSU5VVEUsICAgICAgICAgICAgICAgIk1pbnV0ZSIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5TRUNPTkQsICAgICAgICAgICAgICAgIlNlY29uZCIgKSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBDYWxlbmRhckNhbGNGcmFtZSB0aGF0IGlzIGluaXRpYWxseSBpbnZpc2libGUuCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQ2FsY0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIHsKKyAgICAgICAgc3VwZXIoIk11bHRpcGxlIENhbGVuZGFyIERlbW8iKTsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgc3RhcnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyB0aGUgYXBwbGV0LiBZb3UgbmV2ZXIgbmVlZCB0byBjYWxsIHRoaXMgZGlyZWN0bHksIGl0CisgICAgICogaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHN5c3RlbSBvbmNlIHRoZSBhcHBsZXQgaXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGJ1aWxkR1VJKCk7CisKKyAgICAgICAgcGF0dGVyblRleHQuc2V0VGV4dCggY2FsZW5kYXJzWzBdLnRvUGF0dGVybigpICk7CisKKyAgICAgICAgLy8gRm9yY2UgYW4gdXBkYXRlIG9mIHRoZSBkaXNwbGF5CisgICAgICAgIGNpdHlDaGFuZ2VkKCk7CisgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1JFTEVBU0VEKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdm9pZCBhZGRXaXRoRm9udChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgZm9vLCBGb250IGZvbnQpIHsKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICBjb250YWluZXIuYWRkKGZvbyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIHN0YXJ0IHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBtZXRob2QKKyAgICAgKiBkaXJlY3RseSwgaXQgaXMgY2FsbGVkIHdoZW4gdGhlIGFwcGxldCdzIGRvY3VtZW50IGlzIHZpc2l0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgLy8gZG8gbm90aGluZworICAgIH0KKworICAgIFRleHRGaWVsZCBwYXR0ZXJuVGV4dDsKKworICAgIENob2ljZSBkYXRlTWVudTsKKyAgICBDaG9pY2UgbG9jYWxlTWVudTsKKworICAgIEJ1dHRvbiB1cDsKKyAgICBCdXR0b24gZG93bjsKKworICAgIENoZWNrYm94IGdldFJvbGw7CisgICAgQ2hlY2tib3ggZ2V0QWRkOworCisgICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KCkpOyAvLyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgaXQgaXMuCisKKy8vIFRJVExFCisgICAgICAgIExhYmVsIGxhYmVsMT1uZXcgTGFiZWwoIkNhbGVuZGFyIENvbnZlcnRlciIsIExhYmVsLkNFTlRFUik7CisgICAgICAgIGxhYmVsMS5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgIGFkZChsYWJlbDEpOworICAgICAgICBhZGQoRGVtb1V0aWxpdHkuY3JlYXRlU3BhY2VyKCkpOworCisvLyBJTyBQYW5lbAorICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICB0b3BQYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoKSk7CisKKyAgICAgICAgQ2hlY2tib3hHcm91cCBncm91cDE9IG5ldyBDaGVja2JveEdyb3VwKCk7CisKKyAgICAgICAgLy8gU2V0IHVwIHRoZSBjb250cm9scyBmb3IgZWFjaCBjYWxlbmRhciB3ZSdyZSBkZW1vbnN0cmF0aW5nCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBMYWJlbCBsYWJlbCA9IG5ldyBMYWJlbChjYWxlbmRhcnNbaV0ubmFtZSwgTGFiZWwuUklHSFQpOworICAgICAgICAgICAgbGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGxhYmVsKTsKKworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNhbGVuZGFyc1tpXS50ZXh0KTsKKworICAgICAgICAgICAgZmluYWwgaW50IGogPSBpOworICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0Q2hhbmdlZChqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICk7CisKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5yb2xsQWRkLnNldENoZWNrYm94R3JvdXAoZ3JvdXAxKTsKKyAgICAgICAgICAgIHRvcFBhbmVsLmFkZChjYWxlbmRhcnNbaV0ucm9sbEFkZCk7CisgICAgICAgIH0KKyAgICAgICAgY2FsZW5kYXJzWzBdLnJvbGxBZGQuc2V0U3RhdGUodHJ1ZSk7ICAgIC8vIE1ha2UgdGhlIGZpcnN0IG9uZSBzZWxlY3RlZAorCisgICAgICAgIExhYmVsIGxhYmVsND1uZXcgTGFiZWwoIlBhdHRlcm4iLCBMYWJlbC5SSUdIVCk7CisgICAgICAgIGxhYmVsNC5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgIHRvcFBhbmVsLmFkZChsYWJlbDQpOworCisgICAgICAgIHBhdHRlcm5UZXh0PW5ldyBUZXh0RmllbGQoRklFTERfQ09MVU1OUyk7CisgICAgICAgIHBhdHRlcm5UZXh0LnNldEZvbnQoRGVtb1V0aWxpdHkuZWRpdEZvbnQpOworICAgICAgICB0b3BQYW5lbC5hZGQocGF0dGVyblRleHQpOworICAgICAgICB0b3BQYW5lbC5hZGQobmV3IExhYmVsKCIiKSk7CisKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwzKTsKKyAgICAgICAgYWRkKHRvcFBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKworLy8gUk9MTCAvIEFERAorICAgICAgICBQYW5lbCByb2xsQWRkUGFuZWw9bmV3IFBhbmVsKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIHJvbGxBZGRQYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIFBhbmVsIHJvbGxBZGRCb3hlcyA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJvbGxBZGRCb3hlcy5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMiwxKSk7CisgICAgICAgICAgICAgICAgQ2hlY2tib3hHcm91cCBncm91cDI9IG5ldyBDaGVja2JveEdyb3VwKCk7CisgICAgICAgICAgICAgICAgZ2V0Um9sbCA9IG5ldyBDaGVja2JveCgiUm9sbCIsZ3JvdXAyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgZ2V0QWRkID0gbmV3IENoZWNrYm94KCJBZGQiLGdyb3VwMiwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICByb2xsQWRkQm94ZXMuYWRkKGdldFJvbGwpOworICAgICAgICAgICAgICAgIHJvbGxBZGRCb3hlcy5hZGQoZ2V0QWRkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTGFiZWwgZGF0ZUxhYmVsPW5ldyBMYWJlbCgiRGF0ZSBGaWVsZHMiKTsKKyAgICAgICAgICAgIGRhdGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisKKyAgICAgICAgICAgIGRhdGVNZW51PSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICBkYXRlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwga1JvbGxBZGRGaWVsZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBkYXRlTWVudS5hZGRJdGVtKGtSb2xsQWRkRmllbGRzW2ldLm5hbWUpOworICAgICAgICAgICAgICAgIGlmIChrUm9sbEFkZEZpZWxkc1tpXS5maWVsZCA9PSBDYWxlbmRhci5NT05USCkgeworICAgICAgICAgICAgICAgICAgICBkYXRlTWVudS5zZWxlY3QoaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBQYW5lbCB1cERvd24gPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB1cERvd24uc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDIsMSkpOworCisgICAgICAgICAgICAgICAgLy8gKioqIElmIHRoZSBpbWFnZXMgYXJlIG5vdCBmb3VuZCwgd2UgdXNlIHRoZSBsYWJlbC4KKyAgICAgICAgICAgICAgICB1cCA9IG5ldyBCdXR0b24oIl4iKTsKKyAgICAgICAgICAgICAgICBkb3duID0gbmV3IEJ1dHRvbigidiIpOworICAgICAgICAgICAgICAgIHVwLnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgICAgICAgICAgZG93bi5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICAgICAgICAgIHVwRG93bi5hZGQodXApOworICAgICAgICAgICAgICAgIHVwRG93bi5hZGQoZG93bik7CisgICAgICAgICAgICAgICAgdXAuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICAgICAgZG93bi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcm9sbEFkZFBhbmVsLmFkZChkYXRlTGFiZWwpOworICAgICAgICAgICAgcm9sbEFkZFBhbmVsLmFkZChkYXRlTWVudSk7CisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKHJvbGxBZGRCb3hlcyk7CisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKHVwRG93bik7CisKKyAgICAgICAgfQorICAgICAgICBQYW5lbCBsb2NhbGVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICB7CisgICAgICAgICAgICAvLyBNYWtlIHRoZSBsb2NhbGUgcG9wdXAgbWVudXMKKyAgICAgICAgICAgIGxvY2FsZU1lbnU9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGludCBiZXN0TWF0Y2ggPSAtMSwgdGhpc01hdGNoID0gLTE7CisgICAgICAgICAgICBpbnQgc2VsZWN0TWUgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVNZW51LmFkZEl0ZW0oIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbSggbG9jYWxlc1tpXS5nZXREaXNwbGF5TGFuZ3VhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRoaXNNYXRjaCA9IERlbW9VdGlsaXR5LmNvbXBhcmVMb2NhbGVzKGxvY2FsZXNbaV0sIGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICh0aGlzTWF0Y2ggPj0gYmVzdE1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaCA9IHRoaXNNYXRjaDsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0TWUgPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9jYWxlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgTGFiZWwgbG9jYWxlTGFiZWwgPW5ldyBMYWJlbCgiRGlzcGxheSBMb2NhbGUiKTsKKyAgICAgICAgICAgIGxvY2FsZUxhYmVsLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKworICAgICAgICAgICAgbG9jYWxlUGFuZWwuYWRkKGxvY2FsZUxhYmVsKTsKKyAgICAgICAgICAgIGxvY2FsZVBhbmVsLmFkZChsb2NhbGVNZW51KTsKKyAgICAgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQobG9jYWxlUGFuZWwsMik7CisKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbUxpc3RlbmVyKCBuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGxvYyA9IGxvY2FsZXNbbG9jYWxlTWVudS5nZXRTZWxlY3RlZEluZGV4KCldOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNoYW5nZSBsb2NhbGUgdG8gIiArIGxvYy5nZXREaXNwbGF5TmFtZSgpKTsKKworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnNldExvY2FsZShsb2MpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKyAgICAgICAgfQorICAgICAgICBhZGQocm9sbEFkZFBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKyAgICAgICAgYWRkKGxvY2FsZVBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKworLy8gQ09QWVJJR0hUCisgICAgICAgIFBhbmVsIGNvcHlyaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGFkZFdpdGhGb250IChjb3B5cmlnaHRQYW5lbCxuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCksCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChjb3B5cmlnaHRQYW5lbCwxKTsKKyAgICAgICAgYWRkKGNvcHlyaWdodFBhbmVsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXJzIGNoYW5nZSB0aGUgcGF0dGVybiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdEZyb21QYXR0ZXJuKCkgeworICAgICAgICBTdHJpbmcgdGltZVBhdHRlcm4gPSBwYXR0ZXJuVGV4dC5nZXRUZXh0KCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5hcHBseVBhdHRlcm4odGltZVBhdHRlcm4pOworICAgICAgICB9CisKKyAgICAgICAgbWlsbGlzRm9ybWF0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBpdCBpcyBuZWNlc3NhcnkgdG8gcGFyc2UgdGhlIHRpbWUKKyAgICAgKiBzdHJpbmcgaW4gb25lIG9mIHRoZSBmb3JtYXR0ZWQgZGF0ZSBmaWVsZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXh0Q2hhbmdlZChpbnQgaW5kZXgpIHsKKyAgICAgICAgU3RyaW5nIHJpZ2h0U3RyaW5nID0gY2FsZW5kYXJzW2luZGV4XS50ZXh0LmdldFRleHQoKTsKKworICAgICAgICBQYXJzZVBvc2l0aW9uIHN0YXR1cyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIGlmIChyaWdodFN0cmluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJvclRleHQoIkVycm9yOiBubyBpbnB1dCB0byBwYXJzZSEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBjYWxlbmRhcnNbaW5kZXhdLmZvcm1hdC5wYXJzZShyaWdodFN0cmluZywgc3RhdHVzKTsKKyAgICAgICAgICAgIHRpbWUgPSBkYXRlLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dCgiRVJST1IiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJvclRleHQoIkV4Y2VwdGlvbjogIiArIGUuZ2V0Q2xhc3MoKS50b1N0cmluZygpICsgIiBwYXJzaW5nOiAiK3JpZ2h0U3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBzdGFydCA9IGNhbGVuZGFyc1tpbmRleF0udGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBpbnQgZW5kID0gY2FsZW5kYXJzW2luZGV4XS50ZXh0LmdldFNlbGVjdGlvbkVuZCgpOworCisgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworCisgICAgICAgIGNhbGVuZGFyc1tpbmRleF0udGV4dC5zZWxlY3Qoc3RhcnQsZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGl0IGlzIG5lY2Vzc2FyeSB0byBmb3JtYXQgdGhlIHRpbWUKKyAgICAgKiBpbiB0aGUgIk1pbGxpcyIgdGV4dCBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtaWxsaXNGb3JtYXQoKSB7CisgICAgICAgIFN0cmluZyBvdXQgPSAiIjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvdXQgPSBjYWxlbmRhcnNbaV0uZm9ybWF0LmZvcm1hdChuZXcgRGF0ZSh0aW1lKSk7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dChvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dCgiRVJST1IiKTsKKyAgICAgICAgICAgICAgICBlcnJvclRleHQoIkV4Y2VwdGlvbjogIiArIGUuZ2V0Q2xhc3MoKS50b1N0cmluZygpICsgIiBmb3JtYXR0aW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNhbGVuZGFyc1tpXS5uYW1lICsgIiAiICsgdGltZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgY2hhbmdlIHRoZSBwYXR0ZXJuIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGF0dGVyblRleHRDaGFuZ2VkKCkgeworICAgICAgICBzZXRGb3JtYXRGcm9tUGF0dGVybigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgc2VsZWN0IGEgbmV3IHJlcHJlc2VudGF0aXZlIGNpdHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2l0eUNoYW5nZWQoKSB7CisgICAgICAgIFRpbWVab25lIHRpbWVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBjYWxlbmRhcnNbaV0uZm9ybWF0LnNldFRpbWVab25lKHRpbWVab25lKTsKKyAgICAgICAgfQorICAgICAgICBtaWxsaXNGb3JtYXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXJzIHNlbGVjdCBhIG5ldyB0aW1lIGZpZWxkCisgICAgICogdG8gYWRkIG9yIHJvbGwgaXRzIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRhdGVGaWVsZENoYW5nZWQoYm9vbGVhbiB1cCkgeworICAgICAgICBpbnQgZmllbGQgPSBrUm9sbEFkZEZpZWxkc1tkYXRlTWVudS5nZXRTZWxlY3RlZEluZGV4KCldLmZpZWxkOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXJzW2ldLnJvbGxBZGQuZ2V0U3RhdGUoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBjID0gY2FsZW5kYXJzW2ldLmNhbGVuZGFyOworICAgICAgICAgICAgICAgIGMuc2V0VGltZShuZXcgRGF0ZSh0aW1lKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoZ2V0QWRkLmdldFN0YXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYy5hZGQoZmllbGQsIHVwID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjLnJvbGwoZmllbGQsIHVwKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0aW1lID0gYy5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgb3V0IHRoZSBlcnJvciBtZXNzYWdlIHdoaWxlIGRlYnVnZ2luZyB0aGlzIHByb2dyYW0uCisgICAgICovCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgaWYgYW4gYWN0aW9uIG9jY3VycyBpbiB0aGUgQ2FsZW5kYXJDYWxjRnJhbWUgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldnQpCisgICAgeworICAgICAgICAvLyAqKiogQnV0dG9uIGV2ZW50cyBhcmUgaGFuZGxlZCBoZXJlLgorICAgICAgICBPYmplY3Qgb2JqID0gZXZ0LmdldFNvdXJjZSgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImFjdGlvbiAiICsgb2JqKTsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEJ1dHRvbikgeworICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSB1cCkgeworICAgICAgICAgICAgICAgIGRhdGVGaWVsZENoYW5nZWQoZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSBkb3duKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGVGaWVsZENoYW5nZWQodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSGFuZGxlcyB0aGUgZXZlbnQuIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgaGFuZGxlZCBhbmQgc2hvdWxkIG5vdAorICAgICAqIGJlIHBhc3NlZCB0byB0aGUgcGFyZW50IG9mIHRoaXMgY29tcG9uZW50LiBUaGUgZGVmYXVsdCBldmVudCBoYW5kbGVyCisgICAgICogY2FsbHMgc29tZSBoZWxwZXIgbWV0aG9kcyB0byBtYWtlIGxpZmUgZWFzaWVyIG9uIHRoZSBwcm9ncmFtbWVyLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImtleSAiICsgZXZ0KTsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IEtleUV2ZW50LktFWV9SRUxFQVNFRCkgeyAKKyAgICAgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgPT0gcGF0dGVyblRleHQpIHsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuVGV4dENoYW5nZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgPT0gY2FsZW5kYXJzW2ldLnRleHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDaGFuZ2VkKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBldnQpIAorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ3aW5kb3cgIiArIGV2dCk7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRTb3VyY2UoKSA9PSB0aGlzKSB7CisgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpOworCisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICB9IGVsc2UgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzRXZlbnQoQVdURXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IEFXVEV2ZW50LiBFdmVudC5BQ1RJT05fRVZFTlQgJiYgZXZ0LnRhcmdldCA9PSB1cCkgeworICAgICAgICAgICAgZGF0ZUZpZWxkQ2hhbmdlZCh0cnVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2dC5pZCA9PSBFdmVudC5BQ1RJT05fRVZFTlQgJiYgZXZ0LnRhcmdldCA9PSBkb3duKSB7CisgICAgICAgICAgICBkYXRlRmllbGRDaGFuZ2VkKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgICAgIEZJRUxEX0NPTFVNTlMgPSAzNTsKKworCisgICAgY2xhc3MgQ2FsZW5kYXJSZWMgeworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJSZWMoU3RyaW5nIG5hbWVTdHIsIENhbGVuZGFyIGNhbCkKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZSA9IG5hbWVTdHI7CisgICAgICAgICAgICBjYWxlbmRhciA9IGNhbDsKKyAgICAgICAgICAgIHJvbGxBZGQgPSBuZXcgQ2hlY2tib3goKTsKKworICAgICAgICAgICAgdGV4dCA9IG5ldyBKVGV4dEZpZWxkKCIiLEZJRUxEX0NPTFVNTlMpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KERlbW9VdGlsaXR5LmVkaXRGb250KTsKKworICAgICAgICAgICAgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIC8vZm9ybWF0LmFwcGx5UGF0dGVybihERUZBVUxUX0ZPUk1BVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRMb2NhbGUoTG9jYWxlIGxvYykgeworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSB0b1BhdHRlcm4oKTsKKworICAgICAgICAgICAgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsZW5kYXIsIERhdGVGb3JtYXQuRlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYyk7CisgICAgICAgICAgICBhcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgKChTaW1wbGVEYXRlRm9ybWF0KWZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworLy9oZXkge2FsfSAtIAorLy8gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCBpbnN0YW5jZW9mIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSB7CisvLyAgICAgICAgICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgICAgICBpZiAoZm9ybWF0IGluc3RhbmNlb2YgU2ltcGxlRGF0ZUZvcm1hdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKFNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS50b1BhdHRlcm4oKTsKKy8vaGV5IHthbH0gLSAKKy8vICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCkgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyICBjYWxlbmRhcjsKKyAgICAgICAgRGF0ZUZvcm1hdCAgICAgICAgICBmb3JtYXQ7CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgbmFtZTsKKyAgICAgICAgSlRleHRGaWVsZCAgICAgICAgICAgdGV4dDsKKyAgICAgICAgQ2hlY2tib3ggICAgICAgICAgICByb2xsQWRkOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgQ2FsZW5kYXJSZWNbXSBjYWxlbmRhcnMgPSB7CisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiR3JlZ29yaWFuIiwgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJIZWJyZXciLCAgICAgICAgICAgbmV3IEhlYnJld0NhbGVuZGFyKCkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIklzbGFtaWMgKGNpdmlsKSIsICBtYWtlSXNsYW1pYyh0cnVlKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSXNsYW1pYyAodHJ1ZSkiLCAgIG1ha2VJc2xhbWljKGZhbHNlKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiQnVkZGhpc3QiLCAgICAgICAgIG5ldyBCdWRkaGlzdENhbGVuZGFyKCkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkphcGFuZXNlIiwgICAgICAgICBuZXcgSmFwYW5lc2VDYWxlbmRhcigpKSwKKy8vICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkNoaW5lc2UiLCAgICAgICAgICBuZXcgQ2hpbmVzZUNhbGVuZGFyKCkpLAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBDYWxlbmRhciBtYWtlSXNsYW1pYyhib29sZWFuIGNpdmlsKSB7CisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXRDaXZpbChjaXZpbCk7CisgICAgICAgIHJldHVybiBjYWw7CisgICAgfQorfQorCitjbGFzcyBSb2xsQWRkRmllbGQgeworICAgIFJvbGxBZGRGaWVsZChpbnQgZmllbGQsIFN0cmluZyBuYW1lKSB7CisgICAgICAgIHRoaXMuZmllbGQgPSBmaWVsZDsKKyAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICB9CisgICAgaW50IGZpZWxkOworICAgIFN0cmluZyBuYW1lOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhckZyYW1lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDFmY2E0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhckZyYW1lLmphdmEKQEAgLTAsMCArMSw0MzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuQnV0dG9uOworaW1wb3J0IGphdmEuYXd0LkNob2ljZTsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKK2ltcG9ydCBqYXZhLmF3dC5GbG93TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CitpbXBvcnQgamF2YS5hd3QuRm9udE1ldHJpY3M7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzOworaW1wb3J0IGphdmEuYXd0LkdyaWRCYWdMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vQXBwbGV0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuRGVtb1V0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKKworLyoqCisgKiBBIEZyYW1lIGlzIGEgdG9wLWxldmVsIHdpbmRvdyB3aXRoIGEgdGl0bGUuIFRoZSBkZWZhdWx0IGxheW91dCBmb3IgYSBmcmFtZQorICogaXMgQm9yZGVyTGF5b3V0LiAgVGhlIENhbGVuZGFyRnJhbWUgY2xhc3MgZGVmaW5lcyB0aGUgd2luZG93IGxheW91dCBvZgorICogQ2FsZW5kYXJEZW1vLgorICovCitjbGFzcyBDYWxlbmRhckZyYW1lIGV4dGVuZHMgRnJhbWUKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICBwcml2YXRlIERlbW9BcHBsZXQgYXBwbGV0OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBDYWxlbmRhckZyYW1lIHRoYXQgaXMgaW5pdGlhbGx5IGludmlzaWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXJGcmFtZShEZW1vQXBwbGV0IG15QXBwbGV0KQorICAgIHsKKyAgICAgICAgc3VwZXIoIkNhbGVuZGFyIERlbW8iKTsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBteUFwcGxldDsKKyAgICAgICAgaW5pdCgpOworCisgICAgICAgIC8vIFdoZW4gdGhlIHdpbmRvdyBpcyBjbG9zZWQsIHdlIHdhbnQgdG8gc2h1dCBkb3duIHRoZSBhcHBsZXQgb3IgYXBwbGljYXRpb24KKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIoCisgICAgICAgICAgICBuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGRpc3Bvc2UoKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICk7CisgICAgfQorCisgICAgcHJpdmF0ZSBDaG9pY2UgICAgICAgICAgZGlzcGxheU1lbnU7CisgICAgcHJpdmF0ZSBMb2NhbGVbXSAgICAgICAgbG9jYWxlcyA9IERlbW9VdGlsaXR5LmdldEc3TG9jYWxlcygpOworCisgICAgcHJpdmF0ZSBDYWxlbmRhciAgICAgICAgY2FsZW5kYXJzW10gICA9IG5ldyBDYWxlbmRhclsyXTsKKyAgICBwcml2YXRlIENob2ljZSAgICAgICAgICBjYWxNZW51W10gICAgID0gbmV3IENob2ljZVsyXTsKKyAgICBwcml2YXRlIENvbG9yZWRMYWJlbCAgICBtb250aExhYmVsW10gID0gbmV3IENvbG9yZWRMYWJlbFsyXTsKKyAgICBwcml2YXRlIERhdGVGb3JtYXQgICAgICBtb250aEZvcm1hdFtdID0gbmV3IERhdGVGb3JtYXRbMl07CisKKyAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBwcmV2WWVhcjsKKyAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBwcmV2TW9udGg7CisgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgZ290b1RvZGF5OworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIG5leHRNb250aDsKKyAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBuZXh0WWVhcjsKKyAgICBwcml2YXRlIENhbGVuZGFyUGFuZWwgICBjYWxlbmRhclBhbmVsOworCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGNvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmlkQmFnTGF5b3V0IGcsIEdyaWRCYWdDb25zdHJhaW50cyBjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBncmlkd2lkdGgsIGludCB3ZWlnaHR4KQorICAgIHsKKyAgICAgICAgYy5ncmlkd2lkdGggPSBncmlkd2lkdGg7CisgICAgICAgIGMud2VpZ2h0eCA9IHdlaWdodHg7CisgICAgICAgIGcuc2V0Q29uc3RyYWludHMoY29tcG9uZW50LCBjKTsKKyAgICAgICAgY29udGFpbmVyLmFkZChjb21wb25lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBkaXJlY3RseSwgaXQKKyAgICAgKiBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgc3lzdGVtIG9uY2UgdGhlIGFwcGxldCBpcyBjcmVhdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluaXQoKSB7CisgICAgICAgIHNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KDEwLDEwKSk7CisKKyAgICAgICAgUGFuZWwgdG9wUGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgR3JpZEJhZ0xheW91dCBnID0gbmV3IEdyaWRCYWdMYXlvdXQoKTsKKyAgICAgICAgdG9wUGFuZWwuc2V0TGF5b3V0KGcpOworICAgICAgICBHcmlkQmFnQ29uc3RyYWludHMgYyA9IG5ldyBHcmlkQmFnQ29uc3RyYWludHMoKTsKKyAgICAgICAgYy5maWxsID0gR3JpZEJhZ0NvbnN0cmFpbnRzLkhPUklaT05UQUw7CisKKyAgICAgICAgLy8gQnVpbGQgdGhlIHR3byBtZW51cyBmb3Igc2VsZWN0aW5nIHdoaWNoIGNhbGVuZGFyIGlzIGRpc3BsYXllZCwKKyAgICAgICAgLy8gcGx1cyB0aGUgbW9udGgveWVhciBsYWJlbCBmb3IgZWFjaCBjYWxlbmRhcgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgY2FsTWVudVtpXSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgQ0FMRU5EQVJTLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgY2FsTWVudVtpXS5hZGRJdGVtKENBTEVOREFSU1tqXS5uYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbE1lbnVbaV0uc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5jaG9pY2VDb2xvcik7CisgICAgICAgICAgICBjYWxNZW51W2ldLnNlbGVjdChpKTsKKyAgICAgICAgICAgIGNhbE1lbnVbaV0uYWRkSXRlbUxpc3RlbmVyKG5ldyBDYWxNZW51TGlzdGVuZXIoKSk7CisKKyAgICAgICAgICAgIC8vIExhYmVsIGZvciB0aGUgY3VycmVudCBtb250aCBuYW1lCisgICAgICAgICAgICBtb250aExhYmVsW2ldID0gbmV3IENvbG9yZWRMYWJlbCgiIiwgQ09MT1JTW2ldKTsKKyAgICAgICAgICAgIG1vbnRoTGFiZWxbaV0uc2V0Rm9udChEZW1vVXRpbGl0eS50aXRsZUZvbnQpOworCisgICAgICAgICAgICAvLyBBbmQgdGhlIGRlZmF1bHQgY2FsZW5kYXIgdG8gdXNlIGZvciB0aGlzIHNsb3QKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IENBTEVOREFSU1tpXS5jYWxlbmRhcjsKKworICAgICAgICAgICAgYWRkKHRvcFBhbmVsLCBjYWxNZW51W2ldLCBnLCBjLCA1LCAwKTsKKyAgICAgICAgICAgIGFkZCh0b3BQYW5lbCwgbW9udGhMYWJlbFtpXSwgZywgYywgR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUiwgMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgYWRkIHRoZSBuZXh0L3ByZXZpb3VzIHllYXIvbW9udGggYnV0dG9uczoKKyAgICAgICAgcHJldlllYXIgPSBuZXcgQnV0dG9uKCI8PCIpOworICAgICAgICBwcmV2WWVhci5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWRkQWN0aW9uKENhbGVuZGFyLllFQVIsIC0xKSk7CisKKyAgICAgICAgcHJldk1vbnRoID0gbmV3IEJ1dHRvbigiPCIpOworICAgICAgICBwcmV2TW9udGguYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFkZEFjdGlvbihDYWxlbmRhci5NT05USCwgLTEpKTsKKworICAgICAgICBnb3RvVG9kYXkgPSBuZXcgQnV0dG9uKCJUb2RheSIpOworICAgICAgICBnb3RvVG9kYXkuYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXREYXRlKCBuZXcgRGF0ZSgpICk7CisgICAgICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBuZXh0TW9udGggPSBuZXcgQnV0dG9uKCI+Iik7CisgICAgICAgIG5leHRNb250aC5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWRkQWN0aW9uKENhbGVuZGFyLk1PTlRILCAxKSk7CisKKyAgICAgICAgbmV4dFllYXIgPSBuZXcgQnV0dG9uKCI+PiIpOworICAgICAgICBuZXh0WWVhci5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWRkQWN0aW9uKENhbGVuZGFyLllFQVIsIDEpKTsKKworICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuTk9ORTsKKyAgICAgICAgYWRkKHRvcFBhbmVsLCBwcmV2WWVhciwgIGcsIGMsIDEsIDApOworICAgICAgICBhZGQodG9wUGFuZWwsIHByZXZNb250aCwgZywgYywgMSwgMCk7CisgICAgICAgIGFkZCh0b3BQYW5lbCwgZ290b1RvZGF5LCBnLCBjLCAxLCAwKTsKKyAgICAgICAgYWRkKHRvcFBhbmVsLCBuZXh0TW9udGgsIGcsIGMsIDEsIDApOworICAgICAgICBhZGQodG9wUGFuZWwsIG5leHRZZWFyLCAgZywgYywgMSwgMCk7CisKKyAgICAgICAgLy8gTm93IGFkZCB0aGUgbWVudSBmb3Igc2VsZWN0aW5nIHRoZSBkaXNwbGF5IGxhbmd1YWdlCisgICAgICAgIFBhbmVsIGRpc3BsYXlQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICB7CisgICAgICAgICAgICBkaXNwbGF5TWVudSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGludCBiZXN0TWF0Y2ggPSAtMSwgdGhpc01hdGNoID0gLTE7CisgICAgICAgICAgICBpbnQgc2VsZWN0TWUgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZXNbaV0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMobG9jYWxlc1tpLTFdLmdldExhbmd1YWdlKCkpIHx8CisgICAgICAgICAgICAgICAgICAgIGkgPCBsb2NhbGVzLmxlbmd0aCAtIDEgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZXNbaV0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMobG9jYWxlc1tpKzFdLmdldExhbmd1YWdlKCkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU1lbnUuYWRkSXRlbSggbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU1lbnUuYWRkSXRlbSggbG9jYWxlc1tpXS5nZXREaXNwbGF5TGFuZ3VhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdGhpc01hdGNoID0gRGVtb1V0aWxpdHkuY29tcGFyZUxvY2FsZXMobG9jYWxlc1tpXSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHRoaXNNYXRjaCA+PSBiZXN0TWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoID0gdGhpc01hdGNoOworICAgICAgICAgICAgICAgICAgICBzZWxlY3RNZSA9IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBkaXNwbGF5TWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGRpc3BsYXlNZW51LnNlbGVjdChzZWxlY3RNZSk7CisKKyAgICAgICAgICAgIGRpc3BsYXlNZW51LmFkZEl0ZW1MaXN0ZW5lciggbmV3IEl0ZW1MaXN0ZW5lcigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGxvYyA9IGxvY2FsZXNbZGlzcGxheU1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXTsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRMb2NhbGUoIGxvYyApOworICAgICAgICAgICAgICAgICAgICBtb250aEZvcm1hdFswXSA9IG1vbnRoRm9ybWF0WzFdID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICk7CisKKyAgICAgICAgICAgIExhYmVsIGwxID0gbmV3IExhYmVsKCJEaXNwbGF5IExhbmd1YWdlOiIsIExhYmVsLlJJR0hUKTsKKyAgICAgICAgICAgIGwxLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKworICAgICAgICAgICAgZGlzcGxheVBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dCgpKTsKKyAgICAgICAgICAgIGRpc3BsYXlQYW5lbC5hZGQobDEpOworICAgICAgICAgICAgZGlzcGxheVBhbmVsLmFkZChkaXNwbGF5TWVudSk7CisKKyAgICAgICAgfQorICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuTk9ORTsKKyAgICAgICAgYy5hbmNob3IgPSBHcmlkQmFnQ29uc3RyYWludHMuRUFTVDsKKworICAgICAgICBhZGQodG9wUGFuZWwsIGRpc3BsYXlQYW5lbCwgZywgYywgR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUiwgMCk7CisKKyAgICAgICAgLy8gVGhlIHRpdGxlLCBidXR0b25zLCBldGMuIGdvIGluIGEgcGFuZWwgYXQgdGhlIHRvcCBvZiB0aGUgd2luZG93CisgICAgICAgIGFkZCgiTm9ydGgiLCB0b3BQYW5lbCk7CisKKyAgICAgICAgLy8gVGhlIGNvcHlyaWdodCBub3RpY2UgZ29lcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgTGFiZWwgY29weXJpZ2h0ID0gbmV3IExhYmVsKERlbW9VdGlsaXR5LmNvcHlyaWdodDEsIExhYmVsLkxFRlQpOworICAgICAgICBjb3B5cmlnaHQuc2V0Rm9udChEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIGNvcHlyaWdodCk7CisKKyAgICAgICAgLy8gTm93IGNyZWF0ZSB0aGUgYmlnIGNhbGVuZGFyIHBhbmVsIGFuZCBzdGljayBpdCBpbiB0aGUgbWlkZGxlCisgICAgICAgIGNhbGVuZGFyUGFuZWwgPSBuZXcgQ2FsZW5kYXJQYW5lbCggbG9jYWxlc1tkaXNwbGF5TWVudS5nZXRTZWxlY3RlZEluZGV4KCldICk7CisgICAgICAgIGFkZCgiQ2VudGVyIiwgY2FsZW5kYXJQYW5lbCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0Q2FsZW5kYXIoaSwgY2FsZW5kYXJzW2ldKTsKKyAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0Q29sb3IoaSwgQ09MT1JTW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZU1vbnRoTmFtZSgpCisgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9udGhGb3JtYXRbaV0gPT0gbnVsbCkgeyAgICAgLy8gVE9ETzogb3B0aW1pemUKKyAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSwgRGF0ZUZvcm1hdC5NRURJVU0sIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tkaXNwbGF5TWVudS5nZXRTZWxlY3RlZEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmIGluc3RhbmNlb2YgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGYxID0gKGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdCkgZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMS5hcHBseVBhdHRlcm4oIk1NTU0sIHl5eXkgRyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYxLnNldFRpbWVab25lKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhGb3JtYXRbaV0gPSBmOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9oZXkge2x3fSAtIHRoZXJlJ3Mgc29tZXRoaW5nIHdyb25nIGluIHRoaXMgcm91dGluZSB0aGF0IGN1YXNlcyBleGNlcHRpb25zLgorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbW9udGhMYWJlbFtpXS5zZXRUZXh0KCBtb250aEZvcm1hdFtpXS5mb3JtYXQoIGNhbGVuZGFyUGFuZWwuZmlyc3RPZk1vbnRoKCkgKSk7CisgICAgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsTWVudUxpc3RlbmVyIHJlc3BvbmRzIHRvIGV2ZW50cyBpbiB0aGUgdHdvIHBvcHVwIG1lbnVzIHRoYXQgc2VsZWN0CisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbXMgdG8gYmUgdXNlZCBpbiB0aGUgZGlzcGxheS4gIEl0IGZpZ3VyZXMgb3V0IHdoaWNoCisgICAgICogb2YgdGhlIHR3byBtZW51cyB0aGUgZXZlbnQgb2NjdXJyZWQgaW4gYW5kIHVwZGF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgKiBlbGVtZW50IG9mIHRoZSBjYWxlbmRhcnNbXSBhcnJheSB0byBtYXRjaCB0aGUgbmV3IHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNsYXNzIENhbE1lbnVMaXN0ZW5lciBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgorICAgIHsKKyAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpCisgICAgICAgICB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbE1lbnUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0SXRlbVNlbGVjdGFibGUoKSA9PSBjYWxNZW51W2ldKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgZm91bmQgdGhlIG1lbnUgdGhhdCB0aGUgZXZlbnQgaGFwcGVuZWQgaW4uCisgICAgICAgICAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hpY2ggbmV3IGNhbGVuZGFyIHRoZXkgc2VsZWN0ZWQuCisgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIG5ld0NhbCA9IENBTEVOREFSU1sgY2FsTWVudVtpXS5nZXRTZWxlY3RlZEluZGV4KCkgXS5jYWxlbmRhcjsKKworICAgICAgICAgICAgICAgICAgICBpZiAobmV3Q2FsICE9IGNhbGVuZGFyc1tpXSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgYW55IG9mIHRoZSBvdGhlciBtZW51cyBhcmUgc2V0IHRvIHRoZSBzYW1lIG5ldyBjYWxlbmRhcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UncmUgYWJvdXQgdG8gdXNlIGZvciB0aGlzIG1lbnUsIHNldCB0aGVtIHRvIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWxlbmRhciBmcm9tICp0aGlzKiBtZW51IHNvIHdlIHdvbid0IGhhdmUgdHdvIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNhbGVuZGFycy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqICE9IGkgJiYgY2FsZW5kYXJzW2pdID09IG5ld0NhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbal0gPSBjYWxlbmRhcnNbaV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0Q2FsZW5kYXIoaiwgY2FsZW5kYXJzW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhGb3JtYXRbal0gPSBudWxsOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgQ0FMRU5EQVJTLmxlbmd0aDsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsZW5kYXJzW2pdID09IENBTEVOREFSU1trXS5jYWxlbmRhcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbE1lbnVbal0uc2VsZWN0KGspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93IHVwZGF0ZSB0aGlzIG1lbnUgdG8gdXNlIHRoZSBuZXcgY2FsZW5kYXIgdGhlIHVzZXIgc2VsZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ld0NhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0Q2FsZW5kYXIoaSwgbmV3Q2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoRm9ybWF0W2ldID0gbnVsbDsKKworICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZEFjdGlvbiBoYW5kbGVzIHRoZSBuZXh0L3ByZXZpb3VzIHllYXIvbW9udGggYnV0dG9ucy4uLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgQWRkQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworICAgICAgICBBZGRBY3Rpb24oaW50IGZpZWxkLCBpbnQgYW1vdW50KSB7CisgICAgICAgICAgICB0aGlzLmZpZWxkID0gZmllbGQ7CisgICAgICAgICAgICB0aGlzLmFtb3VudCA9IGFtb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmFkZChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgZmllbGQsIGFtb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb2xvcmVkTGFiZWwgaXMgc2ltaWxhciB0byBqYXZhLmF3dC5MYWJlbCwgd2l0aCB0d28gZGlmZmVyZW5jZXM6CisgICAgICoKKyAgICAgKiAgLSBZb3UgY2FuIHNldCBpdHMgdGV4dCBjb2xvcgorICAgICAqCisgICAgICogIC0gSXQgZHJhd3MgdGV4dCB1c2luZyBkcmF3U3RyaW5nIHJhdGhlciB0aGFuIHVzaW5nIGEgaG9zdC1zcGVjaWZpYworICAgICAqICAgICJQZWVyIiBvYmplY3QgbGlrZSBBV1QgZG9lcy4gIE9uIDEuMiwgdXNpbmcgZHJhd1N0cmluZyBnaXZlcworICAgICAqICAgIHVzIEJpZGkgcmVvcmRlcmluZyBmb3IgZnJlZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHJpdmF0ZSBjbGFzcyBDb2xvcmVkTGFiZWwgZXh0ZW5kcyBDb21wb25lbnQgeworICAgICAgICBwdWJsaWMgQ29sb3JlZExhYmVsKFN0cmluZyBsYWJlbCkgeworICAgICAgICAgICAgdGV4dCA9IGxhYmVsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIENvbG9yZWRMYWJlbChTdHJpbmcgbGFiZWwsIENvbG9yIGMpIHsKKyAgICAgICAgICAgIHRleHQgPSBsYWJlbDsKKyAgICAgICAgICAgIGNvbG9yID0gYzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIGxhYmVsKSB7CisgICAgICAgICAgICB0ZXh0ID0gbGFiZWw7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRGb250KEZvbnQgZikgeworICAgICAgICAgICAgZm9udCA9IGY7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgICAgICBGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoZm9udCk7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSBib3VuZHMgPSBnZXRCb3VuZHMoKTsKKworICAgICAgICAgICAgZy5zZXRDb2xvcihjb2xvcik7CisgICAgICAgICAgICBnLnNldEZvbnQoZm9udCk7CisgICAgICAgICAgICBnLmRyYXdTdHJpbmcodGV4dCwgZm0uc3RyaW5nV2lkdGgoIlx1MDBhMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy5oZWlnaHQvMiArIGZtLmdldEhlaWdodCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgLSBmbS5nZXRBc2NlbnQoKSArIGZtLmdldExlYWRpbmcoKS8yKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRNaW5pbXVtU2l6ZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIERpbWVuc2lvbiBnZXRNaW5pbXVtU2l6ZSgpIHsKKyAgICAgICAgICAgIEZvbnRNZXRyaWNzIGZtID0gZ2V0Rm9udE1ldHJpY3MoZm9udCk7CisKKyAgICAgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKCBmbS5zdHJpbmdXaWR0aCh0ZXh0KSArIDIqZm0uc3RyaW5nV2lkdGgoIlx1MDBhMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtLmdldEhlaWdodCgpICsgZm0uZ2V0TGVhZGluZygpKjIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHRleHQ7CisgICAgICAgIENvbG9yIGNvbG9yID0gQ29sb3IuYmxhY2s7CisgICAgICAgIEZvbnQgZm9udCA9IERlbW9VdGlsaXR5LmxhYmVsRm9udDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCBvdXQgdGhlIGVycm9yIG1lc3NhZ2Ugd2hpbGUgZGVidWdnaW5nIHRoaXMgcHJvZ3JhbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBlcnJvclRleHQoU3RyaW5nIHMpCisgICAgeworICAgICAgICBpZiAoREVCVUcpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNsYXNzIENhbGVuZGFyUmVjIHsKKyAgICAgICAgcHVibGljIENhbGVuZGFyUmVjKFN0cmluZyBuYW1lU3RyLCBDYWxlbmRhciBjYWwpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lU3RyOworICAgICAgICAgICAgY2FsZW5kYXIgPSBjYWw7CisgICAgICAgIH0KKworICAgICAgICBDYWxlbmRhciAgY2FsZW5kYXI7CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgbmFtZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIENhbGVuZGFyUmVjW10gQ0FMRU5EQVJTID0geworICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkdyZWdvcmlhbiBDYWxlbmRhciIsICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJIZWJyZXcgQ2FsZW5kYXIiLCAgICAgICAgICBuZXcgSGVicmV3Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSXNsYW1pYyBDYWxlbmRhciIsICAgICAgICAgbWFrZUlzbGFtaWMoZmFsc2UpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJJc2xhbWljIENpdmlsIENhbGVuZGFyICIsICBtYWtlSXNsYW1pYyh0cnVlKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiQnVkZGhpc3QgQ2FsZW5kYXIiLCAgICAgICAgbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSmFwYW5lc2UgQ2FsZW5kYXIiLCAgICAgICAgbmV3IEphcGFuZXNlQ2FsZW5kYXIoKSksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIENhbGVuZGFyIG1ha2VJc2xhbWljKGJvb2xlYW4gY2l2aWwpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldENpdmlsKGNpdmlsKTsKKyAgICAgICAgcmV0dXJuIGNhbDsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgQ29sb3JbXSBDT0xPUlMgPSB7IENvbG9yLmJsdWUsIENvbG9yLmJsYWNrIH07Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhclBhbmVsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVhYzE1YzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJQYW5lbC5qYXZhCkBAIC0wLDAgKzEsMzYwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNhbGVuZGFyOworCitpbXBvcnQgamF2YS5hd3QuQ2FudmFzOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKK2ltcG9ydCBqYXZhLmF3dC5Gb250TWV0cmljczsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKKworY2xhc3MgQ2FsZW5kYXJQYW5lbCBleHRlbmRzIENhbnZhcyB7CisKKyAgICBwdWJsaWMgQ2FsZW5kYXJQYW5lbCggTG9jYWxlIGxvY2FsZSApIHsKKyAgICAgICAgc2V0TG9jYWxlKGxvY2FsZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaWYgKGZEaXNwbGF5TG9jYWxlID09IG51bGwgfHwgIWZEaXNwbGF5TG9jYWxlLmVxdWFscyhsb2NhbGUpKSB7CisgICAgICAgICAgICBmRGlzcGxheUxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgICAgIGRpcnR5ID0gdHJ1ZTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmQ2FsZW5kYXIubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZkNhbGVuZGFyW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZlN5bWJvbHNbaV0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoZkNhbGVuZGFyW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIGxlZnRUb1JpZ2h0ID0gIShsYW5nLmVxdWFscygiaXciKSB8fCBsYW5nLmVxdWFscygiYXIiKSk7CisKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERhdGUoRGF0ZSBkYXRlKSB7CisgICAgICAgIGZTdGFydE9mTW9udGggPSBkYXRlOworICAgICAgICBkaXJ0eSA9IHRydWU7CisgICAgICAgIHJlcGFpbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGZpZWxkLCBpbnQgZGVsdGEpCisgICAgeworICAgICAgICBzeW5jaHJvbml6ZWQoZkNhbGVuZGFyKSB7CisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0VGltZShmU3RhcnRPZk1vbnRoKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5hZGQoZmllbGQsIGRlbHRhKTsKKyAgICAgICAgICAgIGZTdGFydE9mTW9udGggPSBmQ2FsZW5kYXJbMF0uZ2V0VGltZSgpOworICAgICAgICB9CisgICAgICAgIGRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgcmVwYWludCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldENvbG9yKGludCBpbmRleCwgQ29sb3IgYykgeworICAgICAgICBmQ29sb3JbaW5kZXhdID0gYzsKKyAgICAgICAgcmVwYWludCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldENhbGVuZGFyKGludCBpbmRleCwgQ2FsZW5kYXIgYykgeworICAgICAgICBEYXRlIGRhdGUgPSAoZkNhbGVuZGFyW2luZGV4XSA9PSBudWxsKSA/IG5ldyBEYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmQ2FsZW5kYXJbaW5kZXhdLmdldFRpbWUoKTsKKworICAgICAgICBmQ2FsZW5kYXJbaW5kZXhdID0gYzsKKyAgICAgICAgZkNhbGVuZGFyW2luZGV4XS5zZXRUaW1lKGRhdGUpOworCisgICAgICAgIGZTeW1ib2xzW2luZGV4XSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhjLCBmRGlzcGxheUxvY2FsZSk7CisgICAgICAgIGRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgcmVwYWludCgpOworICAgIH0KKworICAgIHB1YmxpYyBDYWxlbmRhciBnZXRDYWxlbmRhcihpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIGZDYWxlbmRhcltpbmRleF07CisgICAgfQorCisgICAgcHVibGljIExvY2FsZSBnZXREaXNwbGF5TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gZkRpc3BsYXlMb2NhbGU7CisgICAgfQorCisgICAgcHVibGljIERhdGUgZmlyc3RPZk1vbnRoKCkgeworICAgICAgICByZXR1cm4gZlN0YXJ0T2ZNb250aDsKKyAgICB9CisKKyAgICBwcml2YXRlIERhdGUgc3RhcnRPZk1vbnRoKERhdGUgZGF0ZUluTW9udGgpCisgICAgeworICAgICAgICBzeW5jaHJvbml6ZWQoZkNhbGVuZGFyKSB7CisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0VGltZShkYXRlSW5Nb250aCk7CisKKyAgICAgICAgICAgIGludCBlcmEgPSBmQ2FsZW5kYXJbMF0uZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgICAgICBpbnQgeWVhciA9IGZDYWxlbmRhclswXS5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICBpbnQgbW9udGggPSBmQ2FsZW5kYXJbMF0uZ2V0KENhbGVuZGFyLk1PTlRIKTsKKworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLmNsZWFyKCk7CisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCk7CisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0KENhbGVuZGFyLkRBVEUsIDEpOworCisgICAgICAgICAgICByZXR1cm4gZkNhbGVuZGFyWzBdLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjYWxjdWxhdGUoKQorICAgIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gQXMgYSB3b3JrYXJvdW5kIGZvciBKREsgMS4xLjMgYW5kIGJlbG93LCB3aGVyZSBDYWxlbmRhcnMgYW5kIHRpbWUKKyAgICAgICAgLy8gem9uZXMgYXJlIGEgYml0IGdvb2Z5LCBhbHdheXMgc2V0IG15IGNhbGVuZGFyJ3MgdGltZSB6b25lIHRvIFVUQy4KKyAgICAgICAgLy8gWW91IHdvdWxkIHRoaW5rIEkgd291bGQgd2FudCB0byBkbyB0aGlzIGluIHRoZSAic2V0IiBmdW5jdGlvbiBhYm92ZSwKKyAgICAgICAgLy8gYnV0IGlmIEkgZG8gdGhhdCwgdGhlIHByb2dyYW0gaGFuZ3Mgd2hlbiB0aGlzIGNsYXNzIGlzIGxvYWRlZCwKKyAgICAgICAgLy8gcGVyaGFwcyBkdWUgdG8gc29tZSBzb3J0IG9mIHN0YXRpYyBpbml0aWFsaXphdGlvbiBvcmRlcmluZyBwcm9ibGVtLgorICAgICAgICAvLyBTbyBJIGRvIGl0IGhlcmUgaW5zdGVhZC4KKyAgICAgICAgLy8KKyAgICAgICAgZkNhbGVuZGFyWzBdLnNldFRpbWVab25lKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworCisgICAgICAgIENhbGVuZGFyIGMgPSAoQ2FsZW5kYXIpZkNhbGVuZGFyWzBdLmNsb25lKCk7IC8vIFRlbXBvcmFyeSBjb3B5CisKKyAgICAgICAgZlN0YXJ0T2ZNb250aCA9IHN0YXJ0T2ZNb250aChmU3RhcnRPZk1vbnRoKTsKKworICAgICAgICAvLyBTdGFzaCBhd2F5IGEgZmV3IHVzZWZ1bCBjb25zdGFudHMgZm9yIHRoaXMgY2FsZW5kYXIgYW5kIGRpc3BsYXkKKyAgICAgICAgbWluRGF5ID0gYy5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgZGF5c0luV2VlayA9IGMuZ2V0TWF4aW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSykgLSBtaW5EYXkgKyAxOworCisgICAgICAgIGZpcnN0RGF5T2ZXZWVrID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoZkRpc3BsYXlMb2NhbGUpLmdldEZpcnN0RGF5T2ZXZWVrKCk7CisKKyAgICAgICAgLy8gU3Rhc2ggYXdheSBhIERhdGUgZm9yIHRoZSBzdGFydCBvZiB0aGlzIG1vbnRoCisKKyAgICAgICAgLy8gRmluZCB0aGUgZGF5IG9mIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBpbiB0aGlzIG1vbnRoCisgICAgICAgIGMuc2V0VGltZShmU3RhcnRPZk1vbnRoKTsKKyAgICAgICAgZmlyc3REYXlJbk1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICBpbnQgZmlyc3RXZWVrID0gYy5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCk7CisKKyAgICAgICAgLy8gTm93IGZpbmQgdGhlICMgb2YgZGF5cyBpbiB0aGUgbW9udGgKKyAgICAgICAgYy5yb2xsKENhbGVuZGFyLkRBVEUsIGZhbHNlKTsKKyAgICAgICAgZGF5c0luTW9udGggPSBjLmdldChDYWxlbmRhci5EQVRFKTsKKworICAgICAgICAvLyBGaW5hbGx5LCBmaW5kIHRoZSBlbmQgb2YgdGhlIG1vbnRoLCBpLmUuIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBvbmUKKyAgICAgICAgYy5yb2xsKENhbGVuZGFyLkRBVEUsIHRydWUpOworICAgICAgICBjLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgIGMuZ2V0VGltZSgpOyAgICAgICAgLy8gSkRLIDEuMS4yIGJ1ZyB3b3JrYXJvdW5kCisgICAgICAgIGMuYWRkKENhbGVuZGFyLlNFQ09ORCwgLTEpOworICAgICAgICBEYXRlIGVuZE9mTW9udGggPSBjLmdldFRpbWUoKTsKKyAgICAgICAgaWYoZW5kT2ZNb250aD09bnVsbCl7CisgICAgICAgICAvL2RvIG5vdGhpbmcKKyAgICAgICAgfQorICAgICAgICBlbmRPZk1vbnRoID0gbnVsbDsKKyAgICAgICAgaW50IGxhc3RXZWVrID0gYy5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCk7CisgICAgICAgIAorICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBmdWxsIG9yIHBhcnRpYWwgd2Vla3MgaW4gdGhpcyBtb250aC4KKyAgICAgICAgbnVtV2Vla3MgPSBsYXN0V2VlayAtIGZpcnN0V2VlayArIDE7CisKKyAgICAgICAgZGlydHkgPSBmYWxzZTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IFhJTlNFVCA9IDQ7CisgICAgc3RhdGljIGZpbmFsIGludCBZSU5TRVQgPSAyOworCisgICAgLyoKKyAgICAgKiBDb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgd2l0aGluIGEgbW9udGggKDEtYmFzZWQpCisgICAgICogdG8gdGhlIGNlbGwgY29vcmRpbmF0ZXMgb24gdGhlIGNhbGVuZGFyICgwLWJhc2VkKQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkYXRlVG9DZWxsKGludCBkYXRlLCBQb2ludCBwb3MpCisgICAgeworICAgICAgICBpbnQgY2VsbCA9IChkYXRlICsgZmlyc3REYXlJbk1vbnRoIC0gZmlyc3REYXlPZldlZWsgLSBtaW5EYXkpOworICAgICAgICBpZiAoZmlyc3REYXlJbk1vbnRoIDwgZmlyc3REYXlPZldlZWspIHsKKyAgICAgICAgICAgIGNlbGwgKz0gZGF5c0luV2VlazsKKyAgICAgICAgfQorCisgICAgICAgIHBvcy54ID0gY2VsbCAlIGRheXNJbldlZWs7CisgICAgICAgIHBvcy55ID0gY2VsbCAvIGRheXNJbldlZWs7CisgICAgfQorICAgIC8vcHJpdmF0ZSBQb2ludCBkYXRlVG9DZWxsKGludCBkYXRlKSB7CisgICAgLy8gICAgUG9pbnQgcCA9IG5ldyBQb2ludCgwLDApOworICAgIC8vICAgIGRhdGVUb0NlbGwoZGF0ZSwgcCk7CisgICAgLy8gICAgcmV0dXJuIHA7CisgICAgLy99CisKKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisKKyAgICAgICAgaWYgKGRpcnR5KSB7CisgICAgICAgICAgICBjYWxjdWxhdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFBvaW50IGNlbGxQb3MgPSBuZXcgUG9pbnQoMCwwKTsgICAgIC8vIFRlbXBvcmFyeSB2YXJpYWJsZQorICAgICAgICBEaW1lbnNpb24gZCA9IHRoaXMuZ2V0U2l6ZSgpOworCisgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IubGlnaHRHcmF5KTsKKyAgICAgICAgZy5maWxsUmVjdCgwLDAsZC53aWR0aCxkLmhlaWdodCk7CisKKyAgICAgICAgLy8gRHJhdyB0aGUgZGF5IG5hbWVzIGF0IHRoZSB0b3AKKyAgICAgICAgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICBGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgaW50IGxhYmVsSGVpZ2h0ID0gZm0uZ2V0SGVpZ2h0KCkgKyBZSU5TRVQgKiAyOworCisgICAgICAgIGludCB2ID0gZm0uZ2V0QXNjZW50KCkgKyBZSU5TRVQ7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF5c0luV2VlazsgaSsrKSB7CisgICAgICAgICAgICBpbnQgZGF5TnVtID0gKGkgKyBtaW5EYXkgKyBmaXJzdERheU9mV2VlayAtIDIpICUgZGF5c0luV2VlayArIDE7CisgICAgICAgICAgICBTdHJpbmcgZGF5TmFtZSA9IGZTeW1ib2xzWzBdLmdldFdlZWtkYXlzKClbZGF5TnVtXTsKKworCisgICAgICAgICAgICBkb3VibGUgaDsKKyAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGggPSBkLndpZHRoKihpICsgMC41KSAvIGRheXNJbldlZWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGggPSBkLndpZHRoKihkYXlzSW5XZWVrIC0gaSAtIDAuNSkgLyBkYXlzSW5XZWVrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaCAtPSBmbS5zdHJpbmdXaWR0aChkYXlOYW1lKSAvIDI7CisKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyhkYXlOYW1lLCAoaW50KWgsIHYpOworICAgICAgICB9CisKKyAgICAgICAgZG91YmxlIGNlbGxIZWlnaHQgPSAoZC5oZWlnaHQgLSBsYWJlbEhlaWdodCAtIDEpIC8gbnVtV2Vla3M7CisgICAgICAgIGRvdWJsZSBjZWxsV2lkdGggPSAoZG91YmxlKShkLndpZHRoIC0gMSkgLyBkYXlzSW5XZWVrOworCisgICAgICAgIC8vIERyYXcgYSB3aGl0ZSBiYWNrZ3JvdW5kIGluIHRoZSBwYXJ0IG9mIHRoZSBjYWxlbmRhcgorICAgICAgICAvLyB0aGF0IGRpc3BsYXlzIHRoaXMgbW9udGguCisgICAgICAgIC8vIEZpcnN0IGZpZ3VyZSBvdXQgaG93IG11Y2ggb2YgdGhlIGZpcnN0IHdlZWsgc2hvdWxkIGJlIHNoYWRlZC4KKyAgICAgICAgeworICAgICAgICAgICAgZy5zZXRDb2xvcihDb2xvci53aGl0ZSk7CisgICAgICAgICAgICBkYXRlVG9DZWxsKDEsIGNlbGxQb3MpOworICAgICAgICAgICAgaW50IHdpZHRoID0gKGludCkoY2VsbFBvcy54KmNlbGxXaWR0aCk7ICAvLyBXaWR0aCBvZiB1bnNoYWRlZCBhcmVhCisKKyAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoKGludCkod2lkdGgpLCBsYWJlbEhlaWdodCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkLndpZHRoIC0gd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoMCwgbGFiZWxIZWlnaHQgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZC53aWR0aCAtIHdpZHRoLCAoaW50KWNlbGxIZWlnaHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBBbGwgb2YgdGhlIGludGVybWVkaWF0ZSB3ZWVrcyBnZXQgc2hhZGVkIGNvbXBsZXRlbHkKKyAgICAgICAgICAgIGcuZmlsbFJlY3QoMCwgKGludCkobGFiZWxIZWlnaHQgKyBjZWxsSGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGQud2lkdGgsIChpbnQpKGNlbGxIZWlnaHQgKiAobnVtV2Vla3MgLSAyKSkpOworCisgICAgICAgICAgICAvLyBOb3cgZmlndXJlIG91dCB0aGUgbGFzdCB3ZWVrLgorICAgICAgICAgICAgZGF0ZVRvQ2VsbChkYXlzSW5Nb250aCwgY2VsbFBvcyk7CisgICAgICAgICAgICB3aWR0aCA9IChpbnQpKChjZWxsUG9zLngrMSkqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHNoYWRlZCBhcmVhCisKKyAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoMCwgKGludCkobGFiZWxIZWlnaHQgKyAobnVtV2Vla3MtMSkgKiBjZWxsSGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCAoaW50KWNlbGxIZWlnaHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBnLmZpbGxSZWN0KGQud2lkdGggLSB3aWR0aCwgKGludCkobGFiZWxIZWlnaHQgKyAobnVtV2Vla3MtMSkgKiBjZWxsSGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCAoaW50KWNlbGxIZWlnaHQpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgLy8gRHJhdyB0aGUgWC9ZIGdyaWQgbGluZXMKKyAgICAgICAgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG51bVdlZWtzOyBpKyspIHsKKyAgICAgICAgICAgIGludCB5ID0gKGludCkobGFiZWxIZWlnaHQgKyBpICogY2VsbEhlaWdodCk7CisgICAgICAgICAgICBnLmRyYXdMaW5lKDAsIHksIGQud2lkdGggLSAxLCB5KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgIGludCB4ID0gKGludCkoaSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICBnLmRyYXdMaW5lKHgsIGxhYmVsSGVpZ2h0LCB4LCBkLmhlaWdodCAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGxvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIGRheXMgaW4gdGhlIG1vbnRoLCBmaWd1cmUgb3V0IHdoZXJlCisgICAgICAgIC8vIHRoZXkgZ28gaW4gdGhlIGdyaWQsIGFuZCBkcmF3IHRoZSBkYXkgIyBmb3IgZWFjaCBvbmUKKworICAgICAgICAvLyBGaWd1cmUgb3V0IHRoZSBkYXRlIG9mIHRoZSBmaXJzdCBjZWxsIGluIHRoZSBjYWxlbmRhciBkaXNwbGF5CisgICAgICAgIGludCBjZWxsID0gKDEgKyBmaXJzdERheUluTW9udGggLSBmaXJzdERheU9mV2VlayAtIG1pbkRheSk7CisgICAgICAgIGlmIChmaXJzdERheUluTW9udGggPCBmaXJzdERheU9mV2VlaykgeworICAgICAgICAgICAgY2VsbCArPSBkYXlzSW5XZWVrOworICAgICAgICB9CisKKyAgICAgICAgQ2FsZW5kYXIgYyA9IChDYWxlbmRhcilmQ2FsZW5kYXJbMF0uY2xvbmUoKTsKKyAgICAgICAgYy5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICBjLmFkZChDYWxlbmRhci5EQVRFLCAtY2VsbCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBmb3IgKGludCByb3cgPSAwOyByb3cgPCBudW1XZWVrczsgcm93KyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGNvbCA9IDA7IGNvbCA8IGRheXNJbldlZWs7IGNvbCsrKSB7CisKKyAgICAgICAgICAgICAgICBnLnNldEZvbnQoRGVtb1V0aWxpdHkubnVtYmVyRm9udCk7CisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgICAgICAgICAgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisKKyAgICAgICAgICAgICAgICBpbnQgY2VsbHg7CisgICAgICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIGNlbGx4ID0gKGludCkoKGNvbCkgKiBjZWxsV2lkdGgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNlbGx4ID0gKGludCkoKGRheXNJbldlZWsgLSBjb2wgLSAxKSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IGNlbGx5ID0gKGludCkocm93ICogY2VsbEhlaWdodCArIGxhYmVsSGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGZDYWxlbmRhcltpXS5zZXRUaW1lKGMuZ2V0VGltZSgpKTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgZGF0ZSA9IGZDYWxlbmRhcltpXS5nZXQoQ2FsZW5kYXIuREFURSk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkYXlOdW0gPSBidWZmZXIudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgeDsKKworICAgICAgICAgICAgICAgICAgICBpZiAobGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHggPSBjZWxseCArIChpbnQpY2VsbFdpZHRoIC0gWElOU0VUIC0gZm0uc3RyaW5nV2lkdGgoZGF5TnVtKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHggPSBjZWxseCArIFhJTlNFVDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgeSA9IGNlbGx5ICsgKyBmbS5nZXRBc2NlbnQoKSArIFlJTlNFVCArIGkgKiBmbS5nZXRIZWlnaHQoKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoZkNvbG9yW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoZkNvbG9yW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcoZGF5TnVtLCB4LCB5KTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZSA9PSAxIHx8IHJvdyA9PSAwICYmIGNvbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnLnNldEZvbnQoRGVtb1V0aWxpdHkubnVtYmVyRm9udCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbW9udGggPSBmU3ltYm9sc1tpXS5nZXRNb250aHMoKVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkNhbGVuZGFyW2ldLmdldChDYWxlbmRhci5NT05USCldOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ID0gY2VsbHggKyBYSU5TRVQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPSBjZWxseCArIChpbnQpY2VsbFdpZHRoIC0gWElOU0VUIC0gZm0uc3RyaW5nV2lkdGgobW9udGgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZy5kcmF3U3RyaW5nKG1vbnRoLCB4LCB5KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGMuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gSW1wb3J0YW50IHN0YXRlIHZhcmlhYmxlcworICAgIHByaXZhdGUgQ2FsZW5kYXJbXSAgICAgICAgICBmQ2FsZW5kYXIgPSBuZXcgQ2FsZW5kYXJbNF07CisgICAgcHJpdmF0ZSBDb2xvcltdICAgICAgICAgICAgIGZDb2xvciA9IG5ldyBDb2xvcls0XTsKKworICAgIHByaXZhdGUgTG9jYWxlICAgICAgICAgICAgICBmRGlzcGxheUxvY2FsZTsKKyAgICBwcml2YXRlIERhdGVGb3JtYXRTeW1ib2xzW10gZlN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHNbNF07CisKKyAgICBwcml2YXRlIERhdGUgICAgICAgICAgICAgICAgZlN0YXJ0T2ZNb250aCA9IG5ldyBEYXRlKCk7ICAgICAvLyAwMDowMDowMCBvbiBmaXJzdCBkYXkgb2YgbW9udGgKKworICAgIC8vIENhY2hlZCBjYWxjdWxhdGlvbnMgdG8gbWFrZSBkcmF3aW5nIGZhc3Rlci4KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgbWluRGF5OyAgICAgICAgICAgLy8gTWluaW11bSBsZWdhbCBkYXkgIworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBkYXlzSW5XZWVrOyAgICAgICAvLyAjIG9mIGRheXMgaW4gYSB3ZWVrCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50ICAgICAgIGZpcnN0RGF5T2ZXZWVrOyAgIC8vIEZpcnN0IGRheSB0byBkaXNwbGF5IGluIHdlZWsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgbnVtV2Vla3M7ICAgICAgICAgLy8gIyBmdWxsIG9yIHBhcnRpYWwgd2Vla3MgaW4gbW9udGgKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgZGF5c0luTW9udGg7ICAgICAgLy8gIyBkYXlzIGluIHRoaXMgbW9udGgKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgZmlyc3REYXlJbk1vbnRoOyAgLy8gRGF5IG9mIHdlZWsgb2YgZmlyc3QgZGF5IGluIG1vbnRoCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiAgIGxlZnRUb1JpZ2h0OworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBkaXJ0eSA9IHRydWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMWJiMTA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitDYWxlbmRhciBkZW1vIGFwcGxpY2F0aW9ucyBpbmNsdWRpbmcgZGF0ZS90aW1lIGFyaXRobWV0aWMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJzZXRkZXQvRGV0ZWN0aW5nVmlld2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnNldGRldC9EZXRlY3RpbmdWaWV3ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTI2OGFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJzZXRkZXQvRGV0ZWN0aW5nVmlld2VyLmphdmEKQEAgLTAsMCArMSwzNzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uICAgKgorICogYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5jaGFyc2V0ZGV0OworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQ7CisKK2ltcG9ydCBqYXZheC5zd2luZy4qOworCitpbXBvcnQgY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0SUNVOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldERldGVjdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldE1hdGNoOworCisvKioKKyAqIFRoaXMgc2ltcGxlIGFwcGxpY2F0aW9uIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBDaGFyc2V0RGV0ZWN0b3IgQVBJLiBJdAorICogb3BlbnMgYSBmaWxlIG9yIHdlYiBwYWdlLCBkZXRlY3RzIHRoZSBlbmNvZGluZywgYW5kIHRoZW4gZGlzcGxheXMgaXQgdXNpbmcgdGhhdAorICogZW5jb2RpbmcuCisgKi8KK3B1YmxpYyBjbGFzcyBEZXRlY3RpbmdWaWV3ZXIgZXh0ZW5kcyBKRnJhbWUgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lcgoreworICAgIAorICAgIHByaXZhdGUgSlRleHRQYW5lIHRleHQ7CisgICAgcHJpdmF0ZSBKRmlsZUNob29zZXIgZmlsZUNob29zZXI7CisgICAgCisgICAgLyoqCisgICAgICogQHRocm93cyBqYXZhLmF3dC5IZWFkbGVzc0V4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBEZXRlY3RpbmdWaWV3ZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgCisgICAgICAgIGZpbGVDaG9vc2VyID0gbmV3IEpGaWxlQ2hvb3NlcigpOworICAgICAgICAKKyAgICAgICAgc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9uKEpGcmFtZS5FWElUX09OX0NMT1NFKTsKKyAgICAgICAgc2V0U2l6ZSg4MDAsIDgwMCk7CisKKyAgICAgICAgc2V0Sk1lbnVCYXIobWFrZU1lbnVzKCkpOworICAgICAgICB0ZXh0ID0gbmV3IEpUZXh0UGFuZSgpOworICAgICAgICB0ZXh0LnNldENvbnRlbnRUeXBlKCJ0ZXh0L3BsYWluIik7CisgICAgICAgIHRleHQuc2V0VGV4dCgiIik7CisgICAgICAgIHRleHQuc2V0U2l6ZSg4MDAsIDgwMCk7CisgICAgICAgIAorICAgICAgICBGb250IGZvbnQgPSBuZXcgRm9udCgiQXJpYWwgVW5pY29kZSBNUyIsIEZvbnQuUExBSU4sIDI0KTsKKyAgICAgICAgdGV4dC5zZXRGb250KGZvbnQpOworICAgICAgICAKKyAgICAgICAgSlNjcm9sbFBhbmUgc2Nyb2xsUGFuZSA9IG5ldyBKU2Nyb2xsUGFuZSh0ZXh0KTsKKyAgICAgICAgCisgICAgICAgIGdldENvbnRlbnRQYW5lKCkuYWRkKHNjcm9sbFBhbmUpOworICAgICAgICBzZXRWaXNpYmxlKHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkKKyAgICB7CisgICAgICAgIFN0cmluZyBjbWQgPSBldmVudC5nZXRBY3Rpb25Db21tYW5kKCk7CisgICAgICAgIAorICAgICAgICBpZiAoY21kLmVxdWFscygiTmV3Li4uIikpIHsKKyAgICAgICAgICAgZG9OZXcoKTsKKyAgICAgICAgfSBlbHNlIGlmIChjbWQuZXF1YWxzKCJPcGVuIEZpbGUuLi4iKSkgeworICAgICAgICAgICBkb09wZW5GaWxlKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY21kLmVxdWFscygiT3BlbiBVUkwuLi4iKSkgeworICAgICAgICAgICAgZG9PcGVuVVJMKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY21kLmVxdWFscygiUXVpdCIpKSB7CisgICAgICAgICAgIGRvUXVpdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIG5ldyBEZXRlY3RpbmdWaWV3ZXIoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGVycm9yRGlhbG9nKFN0cmluZyB0aXRsZSwgU3RyaW5nIG1zZykKKyAgICB7CisgICAgICAgIEpPcHRpb25QYW5lLnNob3dNZXNzYWdlRGlhbG9nKHRoaXMsIG1zZywgdGl0bGUsIEpPcHRpb25QYW5lLkVSUk9SX01FU1NBR0UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gb3BlbkZpbGUoRmlsZSBmaWxlKQorICAgIHsKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpbGVTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbGVTdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIkVycm9yIE9wZW5pbmcgRmlsZSIsIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oZmlsZVN0cmVhbSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBvcGVuRmlsZShTdHJpbmcgZGlyZWN0b3J5LCBTdHJpbmcgZmlsZW5hbWUpCisgICAgeworICAgICAgICBvcGVuRmlsZShuZXcgRmlsZShkaXJlY3RvcnksIGZpbGVuYW1lKSk7CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgQnVmZmVyZWRJbnB1dFN0cmVhbSBvcGVuVVJMKFN0cmluZyB1cmwpCisgICAgeworICAgICAgICBJbnB1dFN0cmVhbSBzID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgVVJMIGFVUkwgPSBuZXcgVVJMKHVybCk7CisgICAgICAgICAgICBzID0gYVVSTC5vcGVuU3RyZWFtKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvckRpYWxvZygiRXJyb3IgT3BlbmluZyBVUkwiLCBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKHMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBlbmNvZGluZ05hbWUoQ2hhcnNldE1hdGNoIG1hdGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1hdGNoLmdldE5hbWUoKSArICIgKCIgKyBtYXRjaC5nZXRMYW5ndWFnZSgpICsgIikiOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0TWF0Y2hNZW51KENoYXJzZXRNYXRjaFtdIG1hdGNoZXMpCisgICAgeworICAgICAgICBKTWVudSBtZW51ID0gZ2V0Sk1lbnVCYXIoKS5nZXRNZW51KDEpOworICAgICAgICBKTWVudUl0ZW0gbWVudUl0ZW07CisgICAgICAgIAorICAgICAgICBtZW51LnJlbW92ZUFsbCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXRjaGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBDaGFyc2V0TWF0Y2ggbWF0Y2ggPSBtYXRjaGVzW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBtZW51SXRlbSA9IG5ldyBKTWVudUl0ZW0oZW5jb2RpbmdOYW1lKG1hdGNoKSArICIgIiArIG1hdGNoLmdldENvbmZpZGVuY2UoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1lbnUuYWRkKG1lbnVJdGVtKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSBzY3JpcHRUYWcgPSB7KGJ5dGUpICdzJywgKGJ5dGUpICdjJywgKGJ5dGUpICdyJywgKGJ5dGUpICdpJywgKGJ5dGUpICdwJywgKGJ5dGUpICd0J307CisgICAgcHJpdmF0ZSBieXRlW10gc3R5bGVUYWcgID0geyhieXRlKSAncycsIChieXRlKSAndCcsIChieXRlKSAneScsIChieXRlKSAnbCcsIChieXRlKSAnZSd9OworICAgIHByaXZhdGUgc3RhdGljIGludCBCVUZGRVJfU0laRSA9IDEwMDAwMDsKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gb3BlblRhZyhieXRlW10gYnVmZmVyLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBieXRlW10gdGFnKQorICAgIHsKKyAgICAgICAgaW50IHRhZ0xlbiA9IHRhZy5sZW5ndGg7CisgICAgICAgIGludCBidWZSZW0gPSBsZW5ndGggLSBvZmZzZXQ7CisgICAgICAgIGludCBiOworICAgICAgICAKKyAgICAgICAgZm9yIChiID0gMDsgYiA8IHRhZ0xlbiAmJiBiIDwgYnVmUmVtOyBiICs9IDEpIHsKKyAgICAgICAgICAgIGlmIChidWZmZXJbYiArIG9mZnNldF0gIT0gdGFnW2JdKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYiA9PSB0YWdMZW47CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBjbG9zZWRUYWcoYnl0ZVtdIGJ1ZmZlciwgaW50IG9mZnNldCwgaW50IGxlbmd0aCwgYnl0ZVtdIHRhZykKKyAgICB7CisgICAgICAgIGlmIChidWZmZXJbb2Zmc2V0XSAhPSAoYnl0ZSkgJy8nKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBvcGVuVGFnKGJ1ZmZlciwgb2Zmc2V0ICsgMSwgbGVuZ3RoLCB0YWcpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSBmaWx0ZXIoSW5wdXRTdHJlYW0gaW4pCisgICAgeworICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbQlVGRkVSX1NJWkVdOworICAgICAgICBpbnQgYnl0ZXNSZW1haW5pbmcgPSBCVUZGRVJfU0laRTsKKyAgICAgICAgaW50IGJ1ZkxlbiA9IDA7CisgICAgICAgIAorICAgICAgICBpbi5tYXJrKEJVRkZFUl9TSVpFKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB3aGlsZSAoYnl0ZXNSZW1haW5pbmcgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50IGJ5dGVzUmVhZCA9IGluLnJlYWQoYnVmZmVyLCBidWZMZW4sIGJ5dGVzUmVtYWluaW5nKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoYnl0ZXNSZWFkIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJ1ZkxlbiArPSBieXRlc1JlYWQ7CisgICAgICAgICAgICAgICAgYnl0ZXNSZW1haW5pbmcgLT0gYnl0ZXNSZWFkOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETzogZXJyb3IgaGFuZGxpbmc/CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBpblRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIHNraXAgID0gZmFsc2U7CisgICAgICAgIGludCBvdXQgPSAwOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBidWZMZW47IGkgKz0gMSkgeworICAgICAgICAgICAgYnl0ZSBiID0gYnVmZmVyW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYiA9PSAoYnl0ZSkgJzwnKSB7CisgICAgICAgICAgICAgICAgaW5UYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChvcGVuVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc2NyaXB0VGFnKSB8fAorICAgICAgICAgICAgICAgICAgICBvcGVuVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc3R5bGVUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIHNraXAgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xvc2VkVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc2NyaXB0VGFnKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VkVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc3R5bGVUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIHNraXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPT0gKGJ5dGUpICc+JykgeworICAgICAgICAgICAgICAgIGluVGFnID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCEgKGluVGFnIHx8IHNraXApKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW291dCsrXSA9IGI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBieXRlW10gZmlsdGVyZWQgPSBuZXcgYnl0ZVtvdXRdOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIGZpbHRlcmVkLCAwLCBvdXQpOworICAgICAgICByZXR1cm4gZmlsdGVyZWQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgQ2hhcnNldE1hdGNoW10gZGV0ZWN0KGJ5dGVbXSBieXRlcykKKyAgICB7CisgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChieXRlcyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGV0LmRldGVjdEFsbCgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIENoYXJzZXRNYXRjaFtdIGRldGVjdChCdWZmZXJlZElucHV0U3RyZWFtIGlucHV0U3RyZWFtKQorICAgIHsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCAgICA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZXQuc2V0VGV4dChpbnB1dFN0cmVhbSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkZXQuZGV0ZWN0QWxsKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBUT0RPOiBlcnJvciBtZXNzYWdlPworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNob3coSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIENoYXJzZXRNYXRjaFtdIG1hdGNoZXMsIFN0cmluZyB0aXRsZSkKKyAgICB7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzcjsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzEwMjRdOworICAgICAgICBpbnQgYnl0ZXNSZWFkID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmIChtYXRjaGVzID09IG51bGwgfHwgbWF0Y2hlcy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIk1hdGNoIEVycm9yIiwgIk5vIG1hdGNoZXMhIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBTdHJpbmcgZW5jb2RpbmcgPSBtYXRjaGVzWzBdLmdldE5hbWUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5wdXRTdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGVuY29kaW5nLnN0YXJ0c1dpdGgoIlVURi0zMiIpKSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGNoQnl0ZXMgPSAwOworICAgICAgICAgICAgICAgIENoYXJzZXQgdXRmMzIgPSBDaGFyc2V0SUNVLmZvck5hbWVJQ1UoZW5jb2RpbmcpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlICgoYnl0ZXNSZWFkID0gaW5wdXRTdHJlYW0ucmVhZChieXRlcywgb2Zmc2V0LCAxMDI0KSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgID0gYnl0ZXNSZWFkICUgNDsKKyAgICAgICAgICAgICAgICAgICAgY2hCeXRlcyA9IGJ5dGVzUmVhZCAtIG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHNiLmFwcGVuZCh1dGYzMi5kZWNvZGUoQnl0ZUJ1ZmZlci53cmFwKGJ5dGVzKSkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1tpXSA9IGJ5dGVzW2NoQnl0ZXMgKyBpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlucHV0U3RyZWFtLCBlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKChieXRlc1JlYWQgPSBpc3IucmVhZChidWZmZXIsIDAsIDEwMjQpKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNiLmFwcGVuZChidWZmZXIsIDAsIGJ5dGVzUmVhZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlzci5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0aGlzLnNldFRpdGxlKHRpdGxlICsgIiAtICIgKyBlbmNvZGluZ05hbWUobWF0Y2hlc1swXSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzZXRNYXRjaE1lbnUobWF0Y2hlcyk7CisgICAgICAgICAgICB0ZXh0LnNldFRleHQoc2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yRGlhbG9nKCJJTyBFcnJvciIsIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yRGlhbG9nKCJJbnRlcm5hbCBFcnJvciIsIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9OZXcoKQorICAgIHsKKyAgICAgICAgLy8gb3BlbiBhIG5ldyB3aW5kb3cuLi4KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvT3BlbkZpbGUoKQorICAgIHsKKyAgICAgICAgaW50IHJldFZhbCA9IGZpbGVDaG9vc2VyLnNob3dPcGVuRGlhbG9nKHRoaXMpOworICAgICAgICAKKyAgICAgICAgaWYgKHJldFZhbCA9PSBKRmlsZUNob29zZXIuQVBQUk9WRV9PUFRJT04pIHsKKyAgICAgICAgICAgIEZpbGUgZmlsZSA9IGZpbGVDaG9vc2VyLmdldFNlbGVjdGVkRmlsZSgpOworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSA9IG9wZW5GaWxlKGZpbGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5wdXRTdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIENoYXJzZXRNYXRjaFtdIG1hdGNoZXMgPSBkZXRlY3QoaW5wdXRTdHJlYW0pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNob3coaW5wdXRTdHJlYW0sIG1hdGNoZXMsIGZpbGUuZ2V0TmFtZSgpKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvT3BlblVSTCgpCisgICAgeworICAgICAgICBTdHJpbmcgdXJsID0gKFN0cmluZykgSk9wdGlvblBhbmUuc2hvd0lucHV0RGlhbG9nKHRoaXMsICJVUkwgdG8gb3BlbjoiLCAiT3BlbiBVUkwiLCBKT3B0aW9uUGFuZS5QTEFJTl9NRVNTQUdFLAorICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICAKKyAgICAgICAgaWYgKHVybCAhPSBudWxsICYmIHVybC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0gPSBvcGVuVVJMKHVybCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnB1dFN0cmVhbSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGZpbHRlcmVkID0gZmlsdGVyKGlucHV0U3RyZWFtKTsKKyAgICAgICAgICAgICAgICBDaGFyc2V0TWF0Y2hbXSBtYXRjaGVzID0gZGV0ZWN0KGZpbHRlcmVkKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzaG93KGlucHV0U3RyZWFtLCBtYXRjaGVzLCB1cmwpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBkb1F1aXQoKQorICAgIHsKKyAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgSk1lbnVCYXIgbWFrZU1lbnVzKCkKKyAgICB7CisgICAgICAgIEpNZW51IG1lbnUgPSBuZXcgSk1lbnUoIkZpbGUiKTsKKyAgICAgICAgSk1lbnVJdGVtIG1pOworICAgICAgICAKKyAgICAgICAgbWkgPSBuZXcgSk1lbnVJdGVtKCJPcGVuIEZpbGUuLi4iKTsKKyAgICAgICAgbWkuc2V0QWNjZWxlcmF0b3IoKEtleVN0cm9rZS5nZXRLZXlTdHJva2UoS2V5RXZlbnQuVktfTywgQWN0aW9uRXZlbnQuQ1RSTF9NQVNLKSkpOworICAgICAgICBtaS5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgbWVudS5hZGQobWkpOworICAgICAgICAKKyAgICAgICAgbWkgPSBuZXcgSk1lbnVJdGVtKCJPcGVuIFVSTC4uLiIpOworICAgICAgICBtaS5zZXRBY2NlbGVyYXRvcigoS2V5U3Ryb2tlLmdldEtleVN0cm9rZShLZXlFdmVudC5WS19VLCBBY3Rpb25FdmVudC5DVFJMX01BU0spKSk7CisgICAgICAgIG1pLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBtZW51LmFkZChtaSk7CisgICAgICAgIAorICAgICAgICBtaSA9IG5ldyBKTWVudUl0ZW0oIlF1aXQiKTsKKyAgICAgICAgbWkuc2V0QWNjZWxlcmF0b3IoKEtleVN0cm9rZS5nZXRLZXlTdHJva2UoS2V5RXZlbnQuVktfUSwgQWN0aW9uRXZlbnQuQ1RSTF9NQVNLKSkpOworICAgICAgICBtaS5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgbWVudS5hZGQobWkpOworICAgICAgICAKKyAgICAgICAgSk1lbnVCYXIgbWJhciA9IG5ldyBKTWVudUJhcigpOworICAgICAgICBtYmFyLmFkZChtZW51KTsKKyAgICAgICAgCisgICAgICAgIG1lbnUgPSBuZXcgSk1lbnUoIkRldGVjdGVkIEVuY29kaW5ncyIpOworICAgICAgICBtYmFyLmFkZChtZW51KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBtYmFyOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jaGFydC9Vbmljb2RlQ2hhcnQuY3NzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWYwNTE2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jaGFydC9Vbmljb2RlQ2hhcnQuY3NzCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbgorICogYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKi8KKwordGgJeyBmb250LXNpemU6IDYwJTsgdGV4dC1hbGlnbjogQ2VudGVyOworCSAgd2lkdGg6IDAuMzklOyBmb250LWZhbWlseTogbW9ub3NwYWNlOworCSAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IG1hcmdpbjogMDsgcGFkZGluZzogMXB4IH0KK3RkCXsgZm9udC1zaXplOiA2MCU7IHRleHQtYWxpZ246IENlbnRlcjsKKwkgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5OTk5RkY7IGJvcmRlci10b3A6IDFweCBzb2xpZCAjOTk5OUZGOyBtYXJnaW46IDA7IHBhZGRpbmc6IDFweCB9Cit0YWJsZQl7IGJvcmRlci1zcGFjaW5nOiAwOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOworCSAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IG1hcmdpbjogMDsgcGFkZGluZzogMCB9CisuZAl7IGJvcmRlci10b3A6IDJweCBkb3VibGUgYmx1ZSB9CisudQl7IGJhY2tncm91bmQtY29sb3I6ICNEREREREQgfQorLmR1CXsgYmFja2dyb3VuZC1jb2xvcjogI0RERERERDsgYm9yZGVyLXRvcDogMnB4IGRvdWJsZSBibHVlIH0KKy5uCXsgYmFja2dyb3VuZC1jb2xvcjogYmxhY2sgfQorLmRuCXsgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IGJvcmRlci10b3A6IDJweCBkb3VibGUgYmx1ZSB9CisuaQl7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyB9CisuZGkJeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IGJvcmRlci10b3A6IDJweCBkb3VibGUgYmx1ZSB9CitwCXsgZm9udC1zaXplOiA1MCU7IHRleHQtYWxpZ246IFJpZ2h0IH0KKy5sZWZ0CXsgZm9udC1zaXplOiA3NSU7IHRleHQtYWxpZ246IExlZnQgfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jaGFydC9Vbmljb2RlQ2hhcnQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jaGFydC9Vbmljb2RlQ2hhcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzRiNzIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qYXZhCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNoYXJ0OworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitwdWJsaWMgY2xhc3MgVW5pY29kZUNoYXJ0IHsKKyAgICBzdGF0aWMgaW50IHN1cnJvZ2F0ZVR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoJ1x1ZDgwMCcpOworICAgIHN0YXRpYyBpbnQgcHJpdmF0ZVVzZVR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoJ1x1ZTAwMCcpOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgLy9pbnQgcm93V2lkdGggPSAyNTY7CisgICAgCVZlcnNpb25JbmZvIHZpID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworICAgIAlTdHJpbmcgdmVyc2lvbiA9IHZpLmdldE1ham9yKCkgKyAiLiIgKyB2aS5nZXRNaW5vcigpICsgIi4iICsgdmkuZ2V0TWlsbGkoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBCYWdGb3JtYXR0ZXIub3BlblVURjhXcml0ZXIoIkM6XFxEQVRBXFxHRU5cXCIsICJVbmljb2RlQ2hhcnQuaHRtbCIpOworICAgICAgICBwdy5wcmludGxuKCI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J1VuaWNvZGVDaGFydC5qcyc+PC9zY3JpcHQ+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIGhyZWY9J1VuaWNvZGVDaGFydC5jc3MnPiIpOworICAgICAgICBwdy5wcmludGxuKCI8dGl0bGU+VW5pY29kZSAiICsgdmVyc2lvbiArICIgQ2hhcnQ8L3RpdGxlPiIpOworICAgICAgICBwdy5wcmludGxuKCI8L2hlYWQ+PGJvZHkgYmdjb2xvcj0nI0ZGRkZGRic+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0YWJsZSBib3JkZXI9JzEnIGNlbGxzcGFjaW5nPScwJz48Y2FwdGlvbj48aDE+VW5pY29kZSAiICsgdmVyc2lvbiArICIgQ2hhcnQ8L2gxPjwvY2FwdGlvbj4iKTsKKworICAgICAgICAvKnB3LnByaW50bG4oIjx0cj48dGg+PC90aD4iKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCByb3dXaWR0aDsgKytqKSB7CisgICAgICAgICAgICBwdy5wcmludCgiPHRoPiIgKyBoZXgoaiwyKSArICI8L3RoPiIpOworICAgICAgICB9CisgICAgICAgIHB3LnByaW50bG4oIjwvdHI+Iik7CisgICAgICAgICovCisgICAgICAgIC8vIFRPRE86IGZpeCBVdGlsaXR5IHRvIHRha2UgaW50cworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIvL1N1cnJvZ2F0ZSBUeXBlOiBKYXZhPSIgKyBDaGFyYWN0ZXIuU1VSUk9HQVRFICsgIiwgSUNVPSIgKyBzdXJyb2dhdGVUeXBlKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIvL1ByaXZhdGUtVXNlIFR5cGU6IEphdmE9IiArIENoYXJhY3Rlci5QUklWQVRFX1VTRSArICIsIElDVT0iICsgcHJpdmF0ZVVzZVR5cGUpOworICAgICAgICAKKyAgICAgICAgLy9ib29sZWFuIGdvdE9uZSA9IHRydWU7CisgICAgICAgIGludCBjb2x1bW5zID0gMDsKKyAgICAgICAgaW50IGxpbWl0ID0gMHgxMTAwMDAvMTY7CisgICAgICAgIHB3LnByaW50bG4oIjxzY3JpcHQ+Iik7CisgICAgICAgIHB3LnByaW50KCJ0b3AoKTsiKTsKKyAgICAgICAgLy8gYW4gYXJyYXkgdGhhdCBtYXBzIFN0cmluZyAoY29udGFpbmluZyBjb2x1bW4gaW5mb3JtYXRpb24pIHRvIFVuaWNvZGVTZXQgKGNvbnRhaW5pbmcgY29sdW1uIG51bWJlcnMpCisgICAgICAgIE1hcCBpbmZvX251bWJlciA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIExpc3QgbnVtYmVyX2luZm8gPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGxhc3RJbmZvID0gLTE7CisgICAgICAgIGludCBzYW1lQ291bnQgPSAwOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInZhciBjaGFyUmFuZ2VzID0gWyIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKKyAgICAgICAgCS8vIGdldCB0aGUgc3RyaW5nIG9mIGluZm8sIGFuZCBnZXQgaXRzIG51bWJlcgorICAgICAgICAgICAgc2Iuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxNjsgKytqKSB7CisgICAgICAgICAgICAJaW50IGNwID0gaSoxNitqOworICAgICAgICAgICAgCWNoYXIgdHlwZSA9IGdldFR5cGUoY3ApOworICAgICAgICAgICAgCXNiLmFwcGVuZCh0eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBpbmZvID0gc2IudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIEludGVnZXIgcyA9IChJbnRlZ2VyKSBpbmZvX251bWJlci5nZXQoaW5mbyk7CisgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAJaW5mb19udW1iZXIucHV0KGluZm8sIHM9bmV3IEludGVnZXIobnVtYmVyX2luZm8uc2l6ZSgpKSk7CisgICAgICAgICAgICAJbnVtYmVyX2luZm8uYWRkKGluZm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB3cml0ZSBhIGxpbmUgd2hlbmV2ZXIgdGhlIHZhbHVlIGNoYW5nZXMKKyAgICAgICAgICAgIGlmIChsYXN0SW5mbyA9PSBzLmludFZhbHVlKCkpIHsKKyAgICAgICAgICAgIAlzYW1lQ291bnQrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAJaWYgKGxhc3RJbmZvICE9IC0xKSBTeXN0ZW0ub3V0LnByaW50bG4oc2FtZUNvdW50ICsgIiwiICsgbGFzdEluZm8gKyAiLCIpOworICAgICAgICAgICAgCXNhbWVDb3VudCA9IDE7CisgICAgICAgICAgICAJbGFzdEluZm8gPSBzLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gd3JpdGUgbGFzdCBsaW5lCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzYW1lQ291bnQgKyAiLCIgKyBsYXN0SW5mbyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXTsiKTsKKyAgICAgICAKKyAgICAgICAgLy8gbm93IHdyaXRlIG91dCBhcnJheQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInZhciBjaGFySW5mbyA9IFsiKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG51bWJlcl9pbmZvLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgCVN0cmluZyBpbmZvID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAJU3lzdGVtLm91dC5wcmludGxuKCInIiArIGluZm8gKyAiJywiKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIl07Iik7CisgICAgICAgIAorICAgICAgICAvLyB3cml0ZSBvdXQgYmxvY2tzCisgICAgICAgIE1hcCBibG9ja01hcCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIGludCBzdGFydFZhbHVlID0gLTE7CisgICAgICAgIGludCBsYXN0RW51bSA9IC0xOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgIAlpbnQgcHJvcCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShpLFVQcm9wZXJ0eS5CTE9DSyk7CisgICAgICAgIAlpZiAocHJvcCA9PSBsYXN0RW51bSkgY29udGludWU7CisgICAgICAgIAlpZiAobGFzdEVudW0gIT0gLTEpIHsKKyAgICAgICAgCQlTdHJpbmcgcyA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoVVByb3BlcnR5LkJMT0NLLCBsYXN0RW51bSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgIAkJYmxvY2tNYXAucHV0KHMsIGhleChzdGFydFZhbHVlLDApICsgIi8iICsgaGV4KGkgLSBzdGFydFZhbHVlLDApKTsKKyAgICAgICAgCQlTeXN0ZW0ub3V0LnByaW50bG4ocyArICI6ICIgKyBibG9ja01hcC5nZXQocykpOworICAgICAgICAJfQorICAgICAgICAJbGFzdEVudW0gPSBwcm9wOworICAgICAgICAJc3RhcnRWYWx1ZSA9IGk7CisgICAgICAgIH0KKwkJU3RyaW5nIHMgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKFVQcm9wZXJ0eS5CTE9DSywgbGFzdEVudW0sIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworCQlibG9ja01hcC5wdXQocywgaGV4KHN0YXJ0VmFsdWUsMCkgKyAiLyIgKyBoZXgoMHgxMTAwMDAgLSBzdGFydFZhbHVlLDApKTsKKwkJYmxvY2tNYXAucmVtb3ZlKCJOb19CbG9jayIpOworCQlmb3IgKEl0ZXJhdG9yIGl0ID0gYmxvY2tNYXAua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJU3RyaW5nIGJsb2NrTmFtZSA9IChTdHJpbmcpaXQubmV4dCgpOworCQkJU3RyaW5nIHZhbCA9IChTdHJpbmcpIGJsb2NrTWFwLmdldChibG9ja05hbWUpOworCQkJU3lzdGVtLm91dC5wcmludGxuKCI8b3B0aW9uIHZhbHVlPSciICsgdmFsICsgIic+IiArIGJsb2NrTmFtZSArICI8L29wdGlvbj4iKTsKKwkJfQorICAgICAgICAKKyAgICAgICAgLy8gICAgICA8b3B0aW9uIHZhbHVlPSI0REMwIj5ZaWppbmcgSGV4YWdyYW0gU3ltYm9sczwvb3B0aW9uPgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHB3LnByaW50bG4oIjwvc2NyaXB0PjwvdHI+PC90YWJsZT48cD48L3A+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0YWJsZT48Y2FwdGlvbj5LZXk8L2NhcHRpb24+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQ+WDwvdGQ+PHRkIGNsYXNzPSdsZWZ0Jz5HcmFwaGljIGNoYXJhY3RlcnM8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQ+XHUwMEEwPC90ZD48dGQgY2xhc3M9J2xlZnQnPldoaXRlc3BhY2U8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J2knPlx1MDBBMDwvdGQ+PHRkIGNsYXNzPSdsZWZ0Jz5PdGhlciBEZWZhdWx0IElnbm9yYWJsZTwvdGQ+PC90cj4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0ndSc+XHUwMEEwPC90ZD48dGQgY2xhc3M9J2xlZnQnPlVuZGVmaW5lZCwgUHJpdmF0ZSBVc2UsIG9yIFN1cnJvZ2F0ZXM8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J24nPlx1MDBBMDwvdGQ+PHRkIGNsYXNzPSdsZWZ0Jz5Ob25jaGFyYWN0ZXI8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjwvdGFibGU+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjxwPkNvcHlyaWdodCBcdTAwQTkgMjAwMywgTWFyayBEYXZpcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48L2JvZHk+PC9odG1sPiIpOworICAgICAgICBwdy5jbG9zZSgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi8vY29sdW1uczogIiArIGNvbHVtbnMpOworICAgIH0KKworCXByaXZhdGUgc3RhdGljIGNoYXIgZ2V0VHlwZShpbnQgaSkgeworCQljaGFyIHR5cGUgPSAndic7CisJCWludCBjYXQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoaSk7CisJCWlmIChVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGksIFVQcm9wZXJ0eS5OT05DSEFSQUNURVJfQ09ERV9QT0lOVCkpIHsKKwkJICAgIHR5cGUgPSAnbic7CisJCX0gZWxzZSBpZiAoY2F0ID09IENoYXJhY3Rlci5VTkFTU0lHTkVEIHx8IGNhdCA9PSBzdXJyb2dhdGVUeXBlIHx8IGNhdCA9PSBwcml2YXRlVXNlVHlwZSkgeworCQkgICAgdHlwZSA9ICd1JzsKKwkJfSBlbHNlIGlmIChVQ2hhcmFjdGVyLmlzVVdoaXRlU3BhY2UoaSkpIHsKKwkJICAgIHR5cGUgPSAndyc7CisJCX0gZWxzZSBpZiAoVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShpLCBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCkpIHsKKwkJICAgIHR5cGUgPSAnaSc7CisJCX0gZWxzZSB7CisJCSAgICB0eXBlID0gJ3YnOworCQl9CisJCXJldHVybiB0eXBlOworCX0KKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIGhleChpbnQgaSwgaW50IHBhZFRvKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpLnRvVXBwZXJDYXNlKGphdmEudXRpbC5Mb2NhbGUuRU5HTElTSCk7CisgICAgICAgIHdoaWxlIChyZXN1bHQubGVuZ3RoKCkgPCBwYWRUbykgcmVzdWx0ID0gIjAiICsgcmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmpzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjg1MjJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qcwpAQCAtMCwwICsxLDkzIEBACisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKy8vIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKwordmFyIGNvbHVtbkJpdHMgPSA4OwkvLyA4CisKK3ZhciBjb2x1bW5Db3VudCA9IE1hdGgucG93KDIsY29sdW1uQml0cyk7Cit2YXIgY29sdW1uTWFzayA9IGNvbHVtbkNvdW50LTE7Cit2YXIgY29sdW1uU2hpZnQgPSBNYXRoLmZsb29yKGNvbHVtbkJpdHMvNCk7Cit2YXIgY29sdW1uR2FwID0gcmVwZWF0KCdfJywgY29sdW1uU2hpZnQpOwordmFyIGNvbHVtblBhZCA9IDQtY29sdW1uU2hpZnQ7CisKK3ZhciBnb3RMYXN0ID0gdHJ1ZTsKK3ZhciBjdXJyZW50ID0gMDsKK3ZhciBoYXZlRmlyc3QgPSBmYWxzZTsKKworZnVuY3Rpb24gdG9wKGNvdW50KSB7CisgIGRvY3VtZW50LndyaXRlbG4oIjx0aD48L3RoPiIpOworICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbHVtbkNvdW50OyArK2kpIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCI8dGg+IiwgaGV4KGksMiksICI8L3RoPiIpOworICB9Cit9CisKK2Z1bmN0aW9uIHdyaXRlQ2VsbChjZWxsY2xhc3MsIHZhbHVlKSB7CisgaWYgKCFnb3RMYXN0KSBjZWxsY2xhc3MgPSAnZCcgKyBjZWxsY2xhc3M7CisgaWYgKHZhbHVlKSB7CisgICB2YWx1ZSA9IGN1cnJlbnQgPD0gMHhGRkZGIAorICAgCQk/IFN0cmluZy5mcm9tQ2hhckNvZGUoY3VycmVudCkgCisgICAJCTogU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MDAgKyAoY3VycmVudCA+PiAxMCksIDB4REMwMCArIChjdXJyZW50ICYgMHgzRkYpKTsKKyB9IGVsc2UgeworICAgdmFsdWUgPSAnXHUwMEEwJworIH0KKyBpZiAoY2VsbGNsYXNzIT0iIikgY2VsbGNsYXNzID0gIiBjbGFzcz0nIiArIGNlbGxjbGFzcyArICInIjsKKyBkb2N1bWVudC53cml0ZWxuKCI8dGQiLCBjZWxsY2xhc3MsICI+IiwgdmFsdWUsICI8L3RkPiIpOworICsrY3VycmVudDsKK30KKworZnVuY3Rpb24gd3JpdGVDZWxscyhjb3VudCxjZWxsY2xhc3MsdmFsdWUpIHsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgaWYgKChjdXJyZW50ICYgY29sdW1uTWFzaykgPT0gMCkgeworICAgICAgaWYgKGNlbGxjbGFzcyE9J3UnIHx8IGNvdW50IC0gaSA8IGNvbHVtbkNvdW50KSB7CisgICAJZ290TGFzdCA9IHRydWUKKyAgICAgIH0gZWxzZSB7CisgICAJZ290TGFzdCA9IGZhbHNlOworICAgICAgICB2YXIgcmVtID0gKGNvdW50IC0gaSkgJiB+Y29sdW1uTWFzazsKKyAgIAljdXJyZW50ICs9IHJlbTsKKyAgICAgICAgaSArPSByZW07CisgICAgICAgIGlmIChpID09IGNvdW50KSBicmVhazsKKyAgICAgIH0KKyAgICAgIG5ld1JvdygpOworICAgIH0KKyAgICB3cml0ZUNlbGwoY2VsbGNsYXNzLHZhbHVlKTsKKyAgfQorfQorCitmdW5jdGlvbiBuZXdSb3coKSB7CisgICBpZiAoaGF2ZUZpcnN0KSBkb2N1bWVudC53cml0ZSgiPC90cj4iKTsKKyAgIGVsc2UgaGF2ZUZpcnN0ID0gdHJ1ZTsKKyAgIHZhciBoY2xhc3MgPSAoZ290TGFzdCkgPyAiIiA6ICIgY2xhc3M9J2QnIjsKKyAgIGRvY3VtZW50LndyaXRlbG4oIjx0cj48dGgiLCBoY2xhc3MsICI+IiwgaGV4KGN1cnJlbnQ+Pihjb2x1bW5TaGlmdCo0KSxjb2x1bW5QYWQpLCBjb2x1bW5HYXAsICI8L3RoPiIpOworfQorCisvLyBVdGlsaXRpZXMKKworZnVuY3Rpb24gaGV4KHZhbHVlLCBwYWQpIHsKKyAgdmFyIHJlc3VsdCA9IHZhbHVlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOworICB3aGlsZSAocmVzdWx0Lmxlbmd0aCA8IHBhZCkgcmVzdWx0ID0gJzAnICsgcmVzdWx0OworICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiByZXBlYXQoc3RyLCBjb3VudCkgeworIHZhciByZXN1bHQgPSAiIjsKKyBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHJlc3VsdCArPSBzdHI7CisgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gdXNlZCBpbiB0aGUgYm9keS4gc2luZ2xlIGxldHRlcnMgdG8gc2F2ZSBieXRlcy4KK2Z1bmN0aW9uIHUoY291bnQpIHsgLy8gdW5kZWZpbmVkLCBwcml2YXRlIHVzZSwgb3Igc3Vycm9nYXRlcworCXdyaXRlQ2VsbHMoY291bnQsJ3UnLGZhbHNlKTsKK30KK2Z1bmN0aW9uIG4oY291bnQpIHsgLy8gbm9uY2hhcmFjdGVyCisJd3JpdGVDZWxscyhjb3VudCwnbicsZmFsc2UpOworfQorZnVuY3Rpb24gaShjb3VudCkgeyAvLyBpZ25vcmFibGUKKwl3cml0ZUNlbGxzKGNvdW50LCdpJyxmYWxzZSk7Cit9CitmdW5jdGlvbiB3KGNvdW50KSB7IC8vIHdoaXRlc3BhY2UKKwl3cml0ZUNlbGxzKGNvdW50LCcnLGZhbHNlKTsKK30KK2Z1bmN0aW9uIHYoY291bnQpIHsgLy8gbm9ybWFsIHZpc2libGUgZ3JhcGhpYworCXdyaXRlQ2VsbHMoY291bnQsJycsdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Qm9yZGVyUGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlCb3JkZXJQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZmMDc1NTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Qm9yZGVyUGFuZWwuamF2YQpAQCAtMCwwICsxLDU0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uaG9saWRheTsKKworaW1wb3J0IGphdmEuYXd0Lio7CisKKy8qKgorICogVmFyaW91cyBncmFwaGljYWwgYm9yZGVycy4gVGhlIGJvcmRlciBpdHNlbGYgaXMgYSBQYW5lbCBzbyB0aGF0IGl0IGNhbgorICogY29udGFpbiBvdGhlciBDb21wb25lbnRzIChpLmUuIGl0IGJvcmRlcnMgc29tZXRoaW5nKS4gWW91IHVzZSB0aGUKKyAqIEhvbGlkYXlCb3JkZXJQYW5lbCBsaWtlIGFueSBvdGhlciBQYW5lbDogeW91IHNldCB0aGUgbGF5b3V0IHRoYXQgeW91IHByZWZlciBhbmQKKyAqIGFkZCBDb21wb25lbnRzIHRvIGl0LiBCZXdhcmUgdGhhdCBhIG51bGwgbGF5b3V0IGRvZXMgbm90IG9iZXkgdGhlIGluc2V0cworICogb2YgdGhlIHBhbmVsIHNvIGlmIHlvdSB1c2UgbnVsbCBsYXlvdXRzLCBhZGp1c3QgeW91ciBtZWFzdXJlbWVudHMgdG8KKyAqIGhhbmRsZSB0aGUgYm9yZGVyIGJ5IGNhbGxpbmcgaW5zZXRzKCkuCisgKgorICogQGF1dGhvciAgQW5keSBDbGFyaywgVGFsaWdlbnQgSW5jLgorICogQHZlcnNpb24gMS4wCisgKi8KK3B1YmxpYyBjbGFzcyBIb2xpZGF5Qm9yZGVyUGFuZWwgZXh0ZW5kcyBQYW5lbCB7CisgICAgLy8gQ29uc3RhbnRzCisKKyAgICAvKiogU29saWQgYm9yZGVyLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNPTElEID0gMDsKKyAgICAvKiogQSByYWlzZWQgYm9yZGVyLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFJBSVNFRCA9IDE7CisgICAgLyoqIEEgbG93ZXJlZCBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTE9XRVJFRCA9IDI7CisgICAgLyoqIEFuIGV0Y2hlZCBpbiBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSU4gPSAzOworICAgIC8qKiBBbiBldGNoZWQgb3V0IGJvcmRlci4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBPVVQgPSA0OworCisgICAgLyoqIExlZnQgYWxpZ25tZW50LiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExFRlQgPSAwOworICAgIC8qKiBDZW50ZXIgYWxpZ25tZW50LiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IENFTlRFUiA9IDE7CisgICAgLyoqIFJpZ2h0IGFsaWdubWVudC4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBSSUdIVCA9IDI7CisKKyAgICAvKiogRGVmYXVsdCBzdHlsZSAoSU4pLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfU1RZTEUgPSBJTjsKKyAgICAvKiogRGVmYXVsdCB0aGlja25lc3MgKDEwKS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX1RISUNLTkVTUyA9IDEwOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3Igc29saWQgYm9yZGVycyAoNCkuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9TT0xJRF9USElDS05FU1MgPSA0OworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgcmFpc2VkIGJvcmRlcnMgKDIpLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfUkFJU0VEX1RISUNLTkVTUyA9IDI7CisgICAgLyoqIERlZmF1bHQgdGhpY2tuZXNzIGZvciBsb3dlcmVkIGJvcmRlcnMgKDIpLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfTE9XRVJFRF9USElDS05FU1MgPSAyOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgZXRjaGVkLWluIGJvcmRlcnMgKDEwKS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX0lOX1RISUNLTkVTUyA9IDEwOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgZXRjaGVkLW91dCBib3JkZXJzICgxMCkuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9PVVRfVEhJQ0tORVNTID0gMTA7CisgICAgLyoqIERlZmF1bHQgZ2FwIGJldHdlZW4gYm9yZGVyIGFuZCBjb250YWluZWQgY29tcG9uZW50ICg1KS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX0dBUCA9IDU7CisgICAgLyoqIERlZmF1bHQgY29sb3IgKGJsYWNrKS4gQXBwbGllcyB0byBTT0xJRCBhbmQgZXRjaGVkIGJvcmRlcnMuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBDb2xvciBERUZBVUxUX0NPTE9SID0gQ29sb3IuYmxhY2s7CisKKyAgICAvKiogRGVmYXVsdCBmb250IChUaW1lc1JvbWFuLFBMQUlOLDE0KS4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRm9udCBERUZBVUxUX0ZPTlQgPSBuZXcgRm9udCgiVGltZXNSb21hbiIsIEZvbnQuUExBSU4sIDE0KTsKKyAgICAvKiogRGVmYXVsdCBhbGlnbm1lbnQgKExFRlQpLiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9BTElHTk1FTlQgPSBMRUZUOworCisgICAgLy8gRGF0YQorICAgIHByaXZhdGUgaW50IHN0eWxlOworICAgIHByaXZhdGUgaW50IHRoaWNrbmVzczsKKyAgICBwcml2YXRlIGludCBnYXA7CisgICAgcHJpdmF0ZSBDb2xvciBjb2xvcjsKKworICAgIHByaXZhdGUgRm9udCBmb250OworICAgIHByaXZhdGUgU3RyaW5nIHRleHQ7CisgICAgcHJpdmF0ZSBpbnQgYWxpZ25tZW50OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIGRlZmF1bHQgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoKSB7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSBkYXRhCisgICAgICAgIHN0eWxlICAgICAgID0gREVGQVVMVF9TVFlMRTsKKyAgICAgICAgdGhpY2tuZXNzICAgPSBERUZBVUxUX1RISUNLTkVTUzsKKyAgICAgICAgZ2FwICAgICAgICAgPSBERUZBVUxUX0dBUDsKKyAgICAgICAgY29sb3IgICAgICAgPSBERUZBVUxUX0NPTE9SOworCisgICAgICAgIHRleHQgICAgICAgID0gbnVsbDsKKyAgICAgICAgZm9udCAgICAgICAgPSBERUZBVUxUX0ZPTlQ7CisgICAgICAgIGFsaWdubWVudCAgID0gREVGQVVMVF9BTElHTk1FTlQ7CisKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIGFuIGV0Y2hlZCBJTiBib3JkZXIgd2l0aCBnaXZlbiB0ZXh0IGNhcHRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGV4dCBjYXB0aW9uCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbChTdHJpbmcgdGV4dCkgeworICAgICAgICB0aGlzKCk7CisKKyAgICAgICAgc3R5bGUgPSBJTjsKKyAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIFNPTElEIGJvcmRlciB3aXRoIGNvbG9yIGFuZCB0aGlja25lc3MgZ2l2ZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29sb3IgICAgIFRoZSBjb2xvciBmb3IgdGhlIGJvcmRlci4KKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSB0aGlja25lc3Mgb2YgdGhlIGJvcmRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsKENvbG9yIGNvbG9yLCBpbnQgdGhpY2tuZXNzKSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICBzdHlsZSA9IFNPTElEOworICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgYSBib3JkZXIgb2YgdGhlIGdpdmVuIHN0eWxlIHdpdGggdGhlIGRlZmF1bHQKKyAgICAgKiB0aGlja25lc3MgZm9yIHRoYXQgc3R5bGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlIGZvciB0aGlzIGJvcmRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsKGludCBzdHlsZSkgeworICAgICAgICB0aGlzKCk7CisKKyAgICAgICAgLy8gc2V0IHRoaWNrbmVzcyBhcHByb3ByaWF0ZSB0byB0aGlzIHN0eWxlCisgICAgICAgIGludCB0aGlja25lc3M7CisgICAgICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAgICAgICAgIGNhc2UgU09MSUQ6IHRoaWNrbmVzcyA9IERFRkFVTFRfU09MSURfVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFJU0VEOiB0aGlja25lc3MgPSBERUZBVUxUX1JBSVNFRF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBMT1dFUkVEOiB0aGlja25lc3MgPSBERUZBVUxUX0xPV0VSRURfVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSU46IHRoaWNrbmVzcyA9IERFRkFVTFRfSU5fVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT1VUOiB0aGlja25lc3MgPSBERUZBVUxUX09VVF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aGlja25lc3MgPSBERUZBVUxUX1RISUNLTkVTUzsKKyAgICAgICAgICAgIH0KKworICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgYm9yZGVyIHdpdGggZ2l2ZW4gc3R5bGUgYW5kIHRoaWNrbmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHlsZSAgICAgVGhlIHN0eWxlIGZvciB0aGlzIGJvcmRlci4KKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSB0aGlja25lc3MgZm9yIHRoaXMgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoaW50IHN0eWxlLCBpbnQgdGhpY2tuZXNzKSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbnNldHMgb2YgdGhpcyBwYW5lbC4uCisgICAgICovCisgICAgcHVibGljIEluc2V0cyBnZXRJbnNldHMoKSB7CisgICAgICAgIGludCBhZGp1c3RtZW50ID0gMDsKKworICAgICAgICAvLyBhZGp1c3QgZm9yIHRleHQgc3RyaW5nCisgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwgJiYgdGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvLyBzZXQgZm9udCBhbmQgZ2V0IGluZm8KKyAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCA9IGdldEdyYXBoaWNzKCkuZ2V0Rm9udE1ldHJpY3MoZm9udCkuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQgPiB0aGlja25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RtZW50ID0gaGVpZ2h0IC0gdGhpY2tuZXNzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vdGhpbmc6IGp1c3QgaW4gY2FzZSB0aGVyZSBpcyBubyBncmFwaGljcyBjb250ZXh0CisgICAgICAgICAgICAgICAgICAgIC8vICAgYXQgdGhlIGJlZ2lubmluZy4KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIGFwcHJvcHJpYXRlIGluc2V0cworICAgICAgICBpbnQgZGlzdCA9IHRoaWNrbmVzcyArIGdhcDsKKyAgICAgICAgcmV0dXJuIG5ldyBJbnNldHMoZGlzdCArIGFkanVzdG1lbnQsIGRpc3QsIGRpc3QsIGRpc3QpOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBzdHlsZSBvZiB0aGUgYm9yZGVyCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIG5ldyBzdHlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldFN0eWxlKGludCBzdHlsZSkgeworCisgICAgICAgIC8vIHNldCB0aGUgc3R5bGUgYW5kIHJlLWxheW91dCB0aGUgcGFuZWwKKyAgICAgICAgdGhpcy5zdHlsZSA9IHN0eWxlOworICAgICAgICBkb0xheW91dCgpOworICAgICAgICByZXBhaW50KCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHN0eWxlIG9mIHRoZSBib3JkZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0eWxlKCkgeworCisgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGhpY2tuZXNzIG9mIHRoZSBib3JkZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSBuZXcgdGhpY2tuZXNzCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbCBzZXRUaGlja25lc3MoaW50IHRoaWNrbmVzcykgeworCisgICAgICAgIGlmICh0aGlja25lc3MgPiAwKSB7CisgICAgICAgICAgICB0aGlzLnRoaWNrbmVzcyA9IHRoaWNrbmVzczsKKyAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRoaWNrbmVzcyBvZiB0aGUgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGhpY2tuZXNzKCkgeworCisgICAgICAgIHJldHVybiB0aGlja25lc3M7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBib3JkZXIgYW5kIHRoZSBjb250YWluZWQgQ29tcG9uZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGdhcCBUaGUgbmV3IGdhcCwgaW4gcGl4ZWxzLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0R2FwKGludCBnYXApIHsKKworICAgICAgICBpZiAoZ2FwID4gLTEpIHsKKyAgICAgICAgICAgIHRoaXMuZ2FwID0gZ2FwOworICAgICAgICAgICAgZG9MYXlvdXQoKTsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZ2FwIGJldHdlZW4gdGhlIGJvcmRlciBhbmQgdGhlIGNvbnRhaW5lZCBDb21wb25lbnQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRHYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGdhcDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBjb2xvciBmb3IgU09MSUQgYm9yZGVycyBhbmQgdGhlIGNhcHRpb24gdGV4dAorICAgICAqIGNvbG9yIGZvciBldGNoZWQgYm9yZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBUaGUgbmV3IGNvbG9yLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0Q29sb3IoQ29sb3IgY29sb3IpIHsKKworICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7CisgICAgICAgIGlmIChzdHlsZSA9PSBTT0xJRCB8fCBzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpCisgICAgICAgICAgICByZXBhaW50KCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29sb3IgZm9yIFNPTElEIGJvcmRlcnMgYW5kIHRoZSBjYXB0aW9uCisgICAgICogdGV4dCBjb2xvciBmb3IgZXRjaGVkIGJvcmRlcnMuCisgICAgICovCisgICAgcHVibGljIENvbG9yIGdldENvbG9yKCkgeworCisgICAgICAgIHJldHVybiBjb2xvcjsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9udC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0VGV4dEZvbnQoRm9udCBmb250KSB7CisKKyAgICAgICAgLy8gc2V0IGZvbnQKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5mb250ID0gZm9udDsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgICAgICBkb0xheW91dCgpOworICAgICAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZvbnQgb2YgdGhlIHRleHQuIE9ubHkgYXBwbGllcyB0byBldGNoZWQgYm9yZGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgRm9udCBnZXRUZXh0Rm9udCgpIHsKKworICAgICAgICByZXR1cm4gZm9udDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGV4dC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBuZXcgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldFRleHQoU3RyaW5nIHRleHQpIHsKKworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICBpZiAoc3R5bGUgPT0gSU4gfHwgc3R5bGUgPT0gT1VUKSB7CisgICAgICAgICAgICBkb0xheW91dCgpOworICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0ZXh0LiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0ZXh0IGFsaWdubWVudC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGFsaWdubWVudCBUaGUgbmV3IGFsaWdubWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldEFsaWdubWVudChpbnQgYWxpZ25tZW50KSB7CisKKyAgICAgICAgdGhpcy5hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7CisgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRleHQgYWxpZ25tZW50LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxpZ25tZW50KCkgeworCisgICAgICAgIHJldHVybiBhbGlnbm1lbnQ7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGFpbnRzIHRoZSBib3JkZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZyBUaGUgZ3JhcGhpY3MgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisKKyAgICAgICAgLy8gZ2V0IGN1cnJlbnQgZGltZW5zaW9ucworICAgICAgICBEaW1lbnNpb24gc2l6ZSA9IGdldFNpemUoKTsKKyAgICAgICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aDsKKyAgICAgICAgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0OworCisgICAgICAgIC8vIHNldCBjb2xvcnMKKyAgICAgICAgQ29sb3IgbGlnaHQgPSBnZXRCYWNrZ3JvdW5kKCkuYnJpZ2h0ZXIoKS5icmlnaHRlcigpLmJyaWdodGVyKCk7CisgICAgICAgIENvbG9yIGRhcmsgPSBnZXRCYWNrZ3JvdW5kKCkuZGFya2VyKCkuZGFya2VyKCkuZGFya2VyKCk7CisKKyAgICAgICAgLy8gRHJhdyBib3JkZXIKKyAgICAgICAgc3dpdGNoIChzdHlsZSkgeworICAgICAgICAgICAgY2FzZSBSQUlTRUQ6ICAgIC8vIDNEIEJvcmRlciAoaW4gb3Igb3V0KQorICAgICAgICAgICAgY2FzZSBMT1dFUkVEOgorICAgICAgICAgICAgICAgIENvbG9yIHRvcGxlZnQgPSBudWxsOworICAgICAgICAgICAgICAgIENvbG9yIGJvdHRvbXJpZ2h0ID0gbnVsbDsKKworICAgICAgICAgICAgICAgIC8vIHNldCBjb2xvcnMKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUkFJU0VEKSB7CisgICAgICAgICAgICAgICAgICAgIHRvcGxlZnQgPSBsaWdodDsKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tcmlnaHQgPSBkYXJrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRvcGxlZnQgPSBkYXJrOworICAgICAgICAgICAgICAgICAgICBib3R0b21yaWdodCA9IGxpZ2h0OworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBkcmF3IGJvcmRlcgorICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IodG9wbGVmdCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aGlja25lc3M7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKGksIGksIHdpZHRoIC0gaSAtIDIsIGkpOworICAgICAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKGksIGkgKyAxLCBpLCBoZWlnaHQgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKGJvdHRvbXJpZ2h0KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRoaWNrbmVzczsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoaSArIDEsIGhlaWdodCAtIGkgLSAxLCB3aWR0aCAtIGkgLSAxLCBoZWlnaHQgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUod2lkdGggLSBpIC0gMSwgaSwgd2lkdGggLSBpIC0gMSwgaGVpZ2h0IC0gaSAtIDIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgSU46ICAgIC8vIEV0Y2hlZCBCb3JkZXIgKGluIG9yIG91dCkKKyAgICAgICAgICAgIGNhc2UgT1VUOgorICAgICAgICAgICAgICAgIGludCBhZGp1c3QxID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgYWRqdXN0MiA9IDA7CisKKyAgICAgICAgICAgICAgICAvLyBzZXQgZm9udCBhbmQgZ2V0IGluZm8KKyAgICAgICAgICAgICAgICBGb250IG9sZGZvbnQgPSBnLmdldEZvbnQoKTsKKyAgICAgICAgICAgICAgICBnLnNldEZvbnQoZm9udCk7CisgICAgICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGZtLmdldEFzY2VudCgpOworCisgICAgICAgICAgICAgICAgLy8gc2V0IGFkanVzdG1lbnQKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gSU4pCisgICAgICAgICAgICAgICAgICAgIGFkanVzdDEgPSAxOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0MiA9IDE7CisKKyAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgYWRqdXN0bWVudCBmb3IgdGV4dAorICAgICAgICAgICAgICAgIGludCBhZGp1c3RtZW50ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodGV4dCAhPSBudWxsICYmIHRleHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhc2NlbnQgPiB0aGlja25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RtZW50ID0gKGFzY2VudCAtIHRoaWNrbmVzcykgLyAyOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBUaGUgYWRqdXN0bWVudCBpcyB0aGVyZSBzbyB0aGF0IHdlIGFsd2F5cyBkcmF3IHRoZQorICAgICAgICAgICAgICAgIC8vIGxpZ2h0IHJlY3RhbmdsZSBmaXJzdC4gT3RoZXJ3aXNlLCB5b3VyIGV5ZSBwaWNrcyB1cAorICAgICAgICAgICAgICAgIC8vIHRoZSBkaXNjcmVwYW5jeSB3aGVyZSB0aGUgbGlnaHQgcmVjdC4gcGFzc2VzIG92ZXIKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGFya2VyIHJlY3QuCisgICAgICAgICAgICAgICAgaW50IHggPSB0aGlja25lc3MgLyAyOworICAgICAgICAgICAgICAgIGludCB5ID0gdGhpY2tuZXNzIC8gMiArIGFkanVzdG1lbnQ7CisgICAgICAgICAgICAgICAgaW50IHcgPSB3aWR0aCAtIHRoaWNrbmVzcyAtIDE7CisgICAgICAgICAgICAgICAgaW50IGggPSBoZWlnaHQgLSB0aGlja25lc3MgLSAxIC0gYWRqdXN0bWVudDsKKworICAgICAgICAgICAgICAgIC8vIGRyYXcgcmVjdGFuZ2xlcworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IobGlnaHQpOworICAgICAgICAgICAgICAgIGcuZHJhd1JlY3QoeCArIGFkanVzdDEsIHkgKyBhZGp1c3QxLCB3LCBoKTsKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKGRhcmspOworICAgICAgICAgICAgICAgIGcuZHJhd1JlY3QoeCArIGFkanVzdDIsIHkgKyBhZGp1c3QyLCB3LCBoKTsKKworICAgICAgICAgICAgICAgIC8vIGRyYXcgdGV4dCwgaWYgYXBwbGljYWJsZQorICAgICAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwgJiYgdGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRyYXdpbmcgYXJlYQorICAgICAgICAgICAgICAgICAgICBpbnQgZm9udGhlaWdodCA9IGZtLmdldEhlaWdodCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgc3Ryd2lkdGggPSBmbS5zdHJpbmdXaWR0aCh0ZXh0KTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgdGV4dHdpZHRoID0gd2lkdGggLSAyICogKHRoaWNrbmVzcyArIDUpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3Ryd2lkdGggPiB0ZXh0d2lkdGgpCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ3aWR0aCA9IHRleHR3aWR0aDsKKworICAgICAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgb2Zmc2V0IGZvciBhbGlnbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhbGlnbm1lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0VOVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9ICh3aWR0aCAtIHN0cndpZHRoKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJJR0hUOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHdpZHRoIC0gc3Ryd2lkdGggLSB0aGlja25lc3MgLSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBMRUZUOgorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogLy8gYXNzdW1lIGxlZnQgYWxpZ25tZW50IGlmIGludmFsaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0aGlja25lc3MgKyA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIGRyYXdpbmcgYXJlYSBhbmQgc2V0IGNsaXBwaW5nIHJlZ2lvbgorICAgICAgICAgICAgICAgICAgICBnLmNsZWFyUmVjdChvZmZzZXQgLSA1LCAwLCBzdHJ3aWR0aCAgKyAxMCwgZm9udGhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGcuY2xpcFJlY3Qob2Zmc2V0LCAwLCBzdHJ3aWR0aCwgZm9udGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZHJhdyB0ZXh0CisgICAgICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoY29sb3IpOworICAgICAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcodGV4dCwgb2Zmc2V0LCBhc2NlbnQpOworCisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3RvcmUgb2xkIGNsaXBwaW5nIGFyZWEKKyAgICAgICAgICAgICAgICAgICAgZy5jbGlwUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZy5zZXRGb250KG9sZGZvbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNPTElEOgorICAgICAgICAgICAgZGVmYXVsdDogLy8gYXNzdW1lIFNPTElECisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihjb2xvcik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aGlja25lc3M7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgZy5kcmF3UmVjdChpLCBpLCB3aWR0aCAtIDIgKiBpIC0gMSwgaGVpZ2h0IC0gMiAqIGkgLSAxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXR0aW5ncyBvZiB0aGlzIEhvbGlkYXlCb3JkZXJQYW5lbCBpbnN0YW5jZSBhcyBhIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigiSG9saWRheUJvcmRlclBhbmVsWyIpOworCisgICAgICAgIC8vIHN0eWxlCisgICAgICAgIHN0ci5hcHBlbmQoInN0eWxlPSIpOworICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgICAgICAgICBjYXNlIFNPTElEOiBzdHIuYXBwZW5kKCJTT0xJRCIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFJU0VEOiBzdHIuYXBwZW5kKCJSQUlTRUQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExPV0VSRUQ6IHN0ci5hcHBlbmQoIkxPV0VSRUQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElOOiBzdHIuYXBwZW5kKCJJTiIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT1VUOiBzdHIuYXBwZW5kKCJPVVQiKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBzdHIuYXBwZW5kKCJ1bmtub3duIik7CisgICAgICAgICAgICB9CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyB0aGlja25lc3MKKyAgICAgICAgc3RyLmFwcGVuZCgidGhpY2tuZXNzPSIpOworICAgICAgICBzdHIuYXBwZW5kKHRoaWNrbmVzcyk7CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyBnYXAKKyAgICAgICAgc3RyLmFwcGVuZCgiZ2FwPSIpOworICAgICAgICBzdHIuYXBwZW5kKGdhcCk7CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyBjb2xvcgorICAgICAgICBzdHIuYXBwZW5kKGNvbG9yKTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGZvbnQKKyAgICAgICAgc3RyLmFwcGVuZChmb250KTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIHRleHQKKyAgICAgICAgc3RyLmFwcGVuZCgidGV4dD0iKTsKKyAgICAgICAgc3RyLmFwcGVuZCh0ZXh0KTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGFsaWdubWVudAorICAgICAgICBzdHIuYXBwZW5kKCJhbGlnbm1lbnQ9Iik7CisgICAgICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7CisgICAgICAgICAgICBjYXNlIExFRlQ6IHN0ci5hcHBlbmQoIkxFRlQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENFTlRFUjogc3RyLmFwcGVuZCgiQ0VOVEVSIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSSUdIVDogc3RyLmFwcGVuZCgiUklHSFQiKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBzdHIuYXBwZW5kKCJ1bmtub3duIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgc3RyLmFwcGVuZCgiXSIpOworCisgICAgICAgIHJldHVybiBzdHIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Q2FsZW5kYXJEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Q2FsZW5kYXJEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGY2Y2EzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlDYWxlbmRhckRlbW8uamF2YQpAQCAtMCwwICsxLDczMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5ob2xpZGF5OworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5DYW52YXM7CitpbXBvcnQgamF2YS5hd3QuQ2hvaWNlOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CitpbXBvcnQgamF2YS5hd3QuRm9udE1ldHJpY3M7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzOworaW1wb3J0IGphdmEuYXd0LkdyaWRCYWdMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vQXBwbGV0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuRGVtb1RleHRCb3g7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhvbGlkYXk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKKworLyoqCisgKiBDYWxlbmRhckRlbW8gZGVtb25zdHJhdGVzIGhvdyBDYWxlbmRhciB3b3Jrcy4KKyAqLworcHVibGljIGNsYXNzIEhvbGlkYXlDYWxlbmRhckRlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0IAoreworICAgIC8qKgorICAgICAqIFRoZSBtYWluIGZ1bmN0aW9uIHdoaWNoIGRlZmluZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBDYWxlbmRhckRlbW8KKyAgICAgKiBhcHBsZXQgd2hlbiBhbiBhcHBsZXQgaXMgc3RhcnRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisKKyAgICAgICAgbmV3IEhvbGlkYXlDYWxlbmRhckRlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIC8qIFRoaXMgY3JlYXRlcyBhIENhbGVuZGFyRnJhbWUgZm9yIHRoZSBkZW1vIGFwcGxldC4gKi8KKyAgICBwdWJsaWMgRnJhbWUgY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXJGcmFtZShhcHBsZXQpOworICAgIH0KKworICAgIC8qKgorICAgICogQSBGcmFtZSBpcyBhIHRvcC1sZXZlbCB3aW5kb3cgd2l0aCBhIHRpdGxlLiBUaGUgZGVmYXVsdCBsYXlvdXQgZm9yIGEgZnJhbWUKKyAgICAqIGlzIEJvcmRlckxheW91dC4gIFRoZSBDYWxlbmRhckZyYW1lIGNsYXNzIGRlZmluZXMgdGhlIHdpbmRvdyBsYXlvdXQgb2YKKyAgICAqIENhbGVuZGFyRGVtby4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENhbGVuZGFyRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW1MaXN0ZW5lcgorICAgIHsKKyAgICAgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3JlZGl0U3RyaW5nID0gIiI7IC8vIHVudXNlZAorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgICAgICAvL3ByaXZhdGUgTG9jYWxlIGN1ckxvY2FsZSA9IExvY2FsZS5VUzsgLy8gdW51c2VkCisKKyAgICAgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBjYWxlbmRhcnMgPSB7CisgICAgICAgICAgICAvL25ldyBMb2NhbGUoImRlIiwiQVQiKSwKKyAgICAgICAgICAgIExvY2FsZS5DQU5BREEsCisgICAgICAgICAgICBMb2NhbGUuQ0FOQURBX0ZSRU5DSCwKKyAgICAgICAgICAgIExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgICBMb2NhbGUuR0VSTUFOWSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoIml3IiwiSUwiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVsIiwiR1IiKSwKKyAgICAgICAgICAgIC8vbmV3IExvY2FsZSgiZXMiLCJNWCIpLAorICAgICAgICAgICAgTG9jYWxlLlVLLAorICAgICAgICAgICAgTG9jYWxlLlVTLAorICAgICAgICB9OworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBkaXNwbGF5cyA9IHsKKyAgICAgICAgICAgIExvY2FsZS5DQU5BREEsCisgICAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgICBMb2NhbGUuVVMsCisgICAgICAgICAgICBMb2NhbGUuRlJBTkNFLAorICAgICAgICAgICAgTG9jYWxlLkNBTkFEQV9GUkVOQ0gsCisgICAgICAgICAgICAvL25ldyBMb2NhbGUoImRlIiwiQVQiKSwKKyAgICAgICAgICAgIExvY2FsZS5HRVJNQU4sCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbCIsIkdSIiksCisgICAgICAgICAgICAvL25ldyBMb2NhbGUoIml3IiwiSUwiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVzIiwiTVgiKSwKKyAgICAgICAgfTsKKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IENhbGVuZGFyRnJhbWUgdGhhdCBpcyBpbml0aWFsbHkgaW52aXNpYmxlLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJGcmFtZShEZW1vQXBwbGV0IGFwcGxldCkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIoIkNhbGVuZGFyIERlbW8iKTsKKyAgICAgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICAgICAgaW5pdCgpOworICAgICAgICAgICAgc3RhcnQoKTsKKyAgICAgICAgICAgIGVuYWJsZUV2ZW50cyhXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbml0aWFsaXplcyB0aGUgYXBwbGV0LiBZb3UgbmV2ZXIgbmVlZCB0byBjYWxsIHRoaXMgZGlyZWN0bHksIGl0CisgICAgICAgICogaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHN5c3RlbSBvbmNlIHRoZSBhcHBsZXQgaXMgY3JlYXRlZC4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEdldCBHNyBsb2NhbGVzIG9ubHkgZm9yIGRlbW8gcHVycG9zZS4gVG8gZ2V0IGFsbCB0aGUgbG9jYWxlcworICAgICAgICAgICAgLy8gc3VwcG9ydGVkLCBzd2l0Y2ggdG8gY2FsbGluZyBDYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCkuCisgICAgICAgICAgICAvLyBjb21tZW50ZWQKKyAgICAgICAgICAgIGxvY2FsZXMgPSBkaXNwbGF5czsKKworICAgICAgICAgICAgYnVpbGRHVUkoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZQorICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICB2b2lkIGFkZFdpdGhGb250KENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBmb28sIEZvbnQgZm9udCkgeworICAgICAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmb28uc2V0Rm9udChmb250KTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hZGQoZm9vKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENhbGxlZCB0byBzdGFydCB0aGUgYXBwbGV0LiBZb3UgbmV2ZXIgbmVlZCB0byBjYWxsIHRoaXMgbWV0aG9kCisgICAgICAgICogZGlyZWN0bHksIGl0IGlzIGNhbGxlZCB3aGVuIHRoZSBhcHBsZXQncyBkb2N1bWVudCBpcyB2aXNpdGVkLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgQ2hvaWNlICAgICAgICAgIGxvY2FsZU1lbnU7CisgICAgICAgIHByaXZhdGUgQ2hvaWNlICAgICAgICAgIGRpc3BsYXlNZW51OworICAgICAgICBwcml2YXRlIExvY2FsZVtdICAgICAgICBsb2NhbGVzOworCisgICAgICAgIHByaXZhdGUgTGFiZWwgICAgICAgICAgIG1vbnRoTGFiZWw7CisgICAgICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZZZWFyOworICAgICAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBwcmV2TW9udGg7CisgICAgICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIGdvdG9Ub2RheTsKKyAgICAgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgbmV4dE1vbnRoOworICAgICAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBuZXh0WWVhcjsKKyAgICAgICAgcHJpdmF0ZSBDYWxlbmRhclBhbmVsICAgY2FsZW5kYXJQYW5lbDsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUga0ZpcnN0TG9jYWxlID0gTG9jYWxlLlVTOworCisgICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkKENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBjb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyaWRCYWdMYXlvdXQgZywgR3JpZEJhZ0NvbnN0cmFpbnRzIGMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGcuc2V0Q29uc3RyYWludHMoY29tcG9uZW50LCBjKTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hZGQoY29tcG9uZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGJ1aWxkR1VJKCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KDEwLDEwKSk7CisKKyAgICAgICAgICAgIC8vIExhYmVsIGZvciB0aGUgZGVtbydzIHRpdGxlCisgICAgICAgICAgICBMYWJlbCB0aXRsZUxhYmVsID0gbmV3IExhYmVsKCJDYWxlbmRhciBEZW1vIiwgTGFiZWwuQ0VOVEVSKTsKKyAgICAgICAgICAgIHRpdGxlTGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS50aXRsZUZvbnQpOworCisgICAgICAgICAgICAvLyBMYWJlbCBmb3IgdGhlIGN1cnJlbnQgbW9udGggbmFtZQorICAgICAgICAgICAgbW9udGhMYWJlbCA9IG5ldyBMYWJlbCgiIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBtb250aExhYmVsLnNldEZvbnQobmV3IEZvbnQoRGVtb1V0aWxpdHkudGl0bGVGb250LmdldE5hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZW1vVXRpbGl0eS50aXRsZUZvbnQuZ2V0U3R5bGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRGVtb1V0aWxpdHkudGl0bGVGb250LmdldFNpemUoKSAqIDMpLzIpKTsKKworICAgICAgICAgICAgLy8gTWFrZSB0aGUgbG9jYWxlIHBvcHVwIG1lbnVzCisgICAgICAgICAgICBsb2NhbGVNZW51PSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICBsb2NhbGVNZW51LmFkZEl0ZW1MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGludCBzZWxlY3RNZSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0uZ2V0Q291bnRyeSgpLmVxdWFscyhjYWxlbmRhcnNbaS0xXS5nZXRDb3VudHJ5KCkpIHx8CisgICAgICAgICAgICAgICAgICAgIGkgPCBjYWxlbmRhcnMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLmdldENvdW50cnkoKS5lcXVhbHMoY2FsZW5kYXJzW2krMV0uZ2V0Q291bnRyeSgpKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbShjYWxlbmRhcnNbaV0uZ2V0RGlzcGxheUNvdW50cnkoKSArICIgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpICsgIikiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVNZW51LmFkZEl0ZW0oIGNhbGVuZGFyc1tpXS5nZXREaXNwbGF5Q291bnRyeSgpICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChjYWxlbmRhcnNbaV0uZXF1YWxzKGtGaXJzdExvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0TWUgPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9jYWxlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgZGlzcGxheU1lbnUgPSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNlbGVjdE1lID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZXF1YWxzKGtGaXJzdExvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0TWUgPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGlzcGxheU1lbnUuc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5jaG9pY2VDb2xvcik7CisgICAgICAgICAgICBkaXNwbGF5TWVudS5zZWxlY3Qoc2VsZWN0TWUpOworCisgICAgICAgICAgICAvLyBNYWtlIGFsbCB0aGUgbmV4dC9wcmV2aW91cy90b2RheSBidXR0b25zCisgICAgICAgICAgICBwcmV2WWVhciA9IG5ldyBCdXR0b24oIjw8Iik7CisgICAgICAgICAgICBwcmV2WWVhci5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIHByZXZNb250aCA9IG5ldyBCdXR0b24oIjwiKTsKKyAgICAgICAgICAgIHByZXZNb250aC5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGdvdG9Ub2RheSA9IG5ldyBCdXR0b24oIlRvZGF5Iik7CisgICAgICAgICAgICBnb3RvVG9kYXkuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBuZXh0TW9udGggPSBuZXcgQnV0dG9uKCI+Iik7CisgICAgICAgICAgICBuZXh0TW9udGguYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBuZXh0WWVhciA9IG5ldyBCdXR0b24oIj4+Iik7CisgICAgICAgICAgICBuZXh0WWVhci5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKworICAgICAgICAgICAgLy8gVGhlIG1vbnRoIG5hbWUgYW5kIHRoZSBjb250cm9sIGJ1dHRvbnMgYXJlIGJ1bmNoZWQgdG9nZXRoZXIKKyAgICAgICAgICAgIFBhbmVsIG1vbnRoUGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBHcmlkQmFnTGF5b3V0IGcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICAgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICAgICAgICAgIG1vbnRoUGFuZWwuc2V0TGF5b3V0KGcpOworCisgICAgICAgICAgICAgICAgYy53ZWlnaHR4ID0gMTsKKyAgICAgICAgICAgICAgICBjLndlaWdodHkgPSAxOworCisgICAgICAgICAgICAgICAgYy5ncmlkd2lkdGggPSAxOworICAgICAgICAgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5IT1JJWk9OVEFMOworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgbW9udGhMYWJlbCwgZywgYyk7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IDE7CisgICAgICAgICAgICAgICAgYWRkKG1vbnRoUGFuZWwsIHByZXZZZWFyLCBnLCBjKTsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgcHJldk1vbnRoLCBnLCBjKTsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgZ290b1RvZGF5LCBnLCBjKTsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgbmV4dE1vbnRoLCBnLCBjKTsKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRU1BSU5ERVI7CisgICAgICAgICAgICAgICAgYWRkKG1vbnRoUGFuZWwsIG5leHRZZWFyLCBnLCBjKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU3RpY2sgdGhlIG1lbnUgYW5kIGJ1dHRvbnMgaW4gYSBsaXR0bGUgImNvbnRyb2wgcGFuZWwiCisgICAgICAgICAgICBQYW5lbCBtZW51UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBHcmlkQmFnTGF5b3V0IGcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICAgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICAgICAgICAgIG1lbnVQYW5lbC5zZXRMYXlvdXQoZyk7CisKKyAgICAgICAgICAgICAgICBjLndlaWdodHggPSAxOworICAgICAgICAgICAgICAgIGMud2VpZ2h0eSA9IDE7CisKKyAgICAgICAgICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuSE9SSVpPTlRBTDsKKworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTEFUSVZFOworICAgICAgICAgICAgICAgIExhYmVsIGwxID0gbmV3IExhYmVsKCJIb2xpZGF5cyIpOworICAgICAgICAgICAgICAgIGwxLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgICAgICAgICBhZGQobWVudVBhbmVsLCBsMSwgZywgYyk7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRU1BSU5ERVI7CisgICAgICAgICAgICAgICAgYWRkKG1lbnVQYW5lbCwgbG9jYWxlTWVudSwgZywgYyk7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRUxBVElWRTsKKyAgICAgICAgICAgICAgICBMYWJlbCBsMiA9IG5ldyBMYWJlbCgiRGlzcGxheToiKTsKKyAgICAgICAgICAgICAgICBsMi5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICAgICAgYWRkKG1lbnVQYW5lbCwgbDIsIGcsIGMpOworCisgICAgICAgICAgICAgICAgYy5ncmlkd2lkdGggPSBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSOworICAgICAgICAgICAgICAgIGFkZChtZW51UGFuZWwsIGRpc3BsYXlNZW51LCBnLCBjKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhlIHRpdGxlLCBidXR0b25zLCBldGMuIGdvIGluIGEgcGFuZWwgYXQgdGhlIHRvcCBvZiB0aGUgd2luZG93CisgICAgICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRvcFBhbmVsLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgICAgICAgICAgLy90b3BQYW5lbC5hZGQoIk5vcnRoIiwgdGl0bGVMYWJlbCk7CisgICAgICAgICAgICAgICAgdG9wUGFuZWwuYWRkKCJDZW50ZXIiLCBtb250aFBhbmVsKTsKKyAgICAgICAgICAgICAgICB0b3BQYW5lbC5hZGQoIkVhc3QiLCBtZW51UGFuZWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworICAgICAgICAgICAgLy8gVGhlIGNvcHlyaWdodCBub3RpY2UgZ29lcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgICAgIExhYmVsIGNvcHlyaWdodCA9IG5ldyBMYWJlbChEZW1vVXRpbGl0eS5jb3B5cmlnaHQxLCBMYWJlbC5MRUZUKTsKKyAgICAgICAgICAgIGNvcHlyaWdodC5zZXRGb250KERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICAgICAgYWRkKCJTb3V0aCIsIGNvcHlyaWdodCk7CisKKyAgICAgICAgICAgIC8vIE5vdyBjcmVhdGUgdGhlIGJpZyBjYWxlbmRhciBwYW5lbCBhbmQgc3RpY2sgaXQgaW4gdGhlIG1pZGRsZQorICAgICAgICAgICAgY2FsZW5kYXJQYW5lbCA9IG5ldyBDYWxlbmRhclBhbmVsKCBrRmlyc3RMb2NhbGUgKTsKKyAgICAgICAgICAgIGFkZCgiQ2VudGVyIiwgY2FsZW5kYXJQYW5lbCk7CisKKyAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZU1vbnRoTmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU1NIHl5eXl5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5nZXREaXNwbGF5TG9jYWxlKCkpOworICAgICAgICAgICAgZi5zZXRDYWxlbmRhcihjYWxlbmRhclBhbmVsLmdldENhbGVuZGFyKCkpOworICAgICAgICAgICAgZi5zZXRUaW1lWm9uZShuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsgICAgICAgIC8vIEpESyAxLjEuMiB3b3JrYXJvdW5kCisgICAgICAgICAgICBtb250aExhYmVsLnNldFRleHQoIGYuZm9ybWF0KCBjYWxlbmRhclBhbmVsLmZpcnN0T2ZNb250aCgpICkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBIYW5kbGVzIHRoZSBldmVudC4gUmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBpcyBoYW5kbGVkIGFuZCBzaG91bGQgbm90CisgICAgICAgICogYmUgcGFzc2VkIHRvIHRoZSBwYXJlbnQgb2YgdGhpcyBjb21wb25lbnQuIFRoZSBkZWZhdWx0IGV2ZW50IGhhbmRsZXIKKyAgICAgICAgKiBjYWxscyBzb21lIGhlbHBlciBtZXRob2RzIHRvIG1ha2UgbGlmZSBlYXNpZXIgb24gdGhlIHByb2dyYW1tZXIuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKQorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3Qgb2JqID0gZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gKioqIEJ1dHRvbiBldmVudHMgYXJlIGhhbmRsZWQgaGVyZS4KKyAgICAgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBCdXR0b24pIHsKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IG5leHRNb250aCkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5NT05USCwgKzEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgKG9iaiA9PSBwcmV2TW9udGgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5hZGQoQ2FsZW5kYXIuTU9OVEgsIC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlmIChvYmogPT0gcHJldlllYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5hZGQoQ2FsZW5kYXIuWUVBUiwgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgKG9iaiA9PSBuZXh0WWVhcikgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5ZRUFSLCArMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IGdvdG9Ub2RheSkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldCggbmV3IERhdGUoKSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkKKyAgICAgICAgeworICAgICAgICAgICAgT2JqZWN0IG9iaiA9IGUuZ2V0U291cmNlKCk7CisgICAgICAgICAgICBpZiAob2JqID09IGxvY2FsZU1lbnUpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldENhbGVuZGFyTG9jYWxlKGNhbGVuZGFyc1tsb2NhbGVNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IGRpc3BsYXlNZW51KSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0RGlzcGxheUxvY2FsZShsb2NhbGVzW2Rpc3BsYXlNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIFByaW50IG91dCB0aGUgZXJyb3IgbWVzc2FnZSB3aGlsZSBkZWJ1Z2dpbmcgdGhpcyBwcm9ncmFtLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBlcnJvclRleHQoU3RyaW5nIHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBlKQorICAgICAgICB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImV2ZW50ICIgKyBlKTsKKyAgICAgICAgICAgIGlmIChlLmdldElEKCkgPT0gV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTsKKworICAgICAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ2FsZW5kYXJQYW5lbCBleHRlbmRzIENhbnZhcyB7CisKKyAgICAgICAgcHVibGljIENhbGVuZGFyUGFuZWwoIExvY2FsZSBsb2NhbGUgKSB7CisgICAgICAgICAgICBzZXQobG9jYWxlLCBsb2NhbGUsIG5ldyBEYXRlKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0Q2FsZW5kYXJMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgc2V0KGxvY2FsZSwgZkRpc3BsYXlMb2NhbGUsIGZDYWxlbmRhci5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0RGlzcGxheUxvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBzZXQoZkNhbGVuZGFyTG9jYWxlLCBsb2NhbGUsIGZDYWxlbmRhci5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0KERhdGUgZGF0ZSkgeworICAgICAgICAgICAgc2V0KGZDYWxlbmRhckxvY2FsZSwgZkRpc3BsYXlMb2NhbGUsIGRhdGUpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0KExvY2FsZSBsb2MsIExvY2FsZSBkaXNwbGF5LCBEYXRlIGRhdGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChmQ2FsZW5kYXJMb2NhbGUgPT0gbnVsbCB8fCAhbG9jLmVxdWFscyhmQ2FsZW5kYXJMb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgZkNhbGVuZGFyTG9jYWxlID0gbG9jOworICAgICAgICAgICAgICAgIGZDYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKGZDYWxlbmRhckxvY2FsZSk7CisgICAgICAgICAgICAgICAgZkFsbEhvbGlkYXlzID0gSG9saWRheS5nZXRIb2xpZGF5cyhmQ2FsZW5kYXJMb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZEaXNwbGF5TG9jYWxlID09IG51bGwgfHwgIWRpc3BsYXkuZXF1YWxzKGZEaXNwbGF5TG9jYWxlKSkgeworICAgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlID0gZGlzcGxheTsKKyAgICAgICAgICAgICAgICBmU3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhmRGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZTdGFydE9mTW9udGggPSBkYXRlOworCisgICAgICAgICAgICBkaXJ0eSA9IHRydWU7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGZpZWxkLCBpbnQgZGVsdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0VGltZShmU3RhcnRPZk1vbnRoKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuYWRkKGZpZWxkLCBkZWx0YSk7CisgICAgICAgICAgICAgICAgZlN0YXJ0T2ZNb250aCA9IGZDYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkaXJ0eSA9IHRydWU7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciBnZXRDYWxlbmRhcigpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ2FsZW5kYXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTG9jYWxlIGdldENhbGVuZGFyTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZDYWxlbmRhckxvY2FsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMb2NhbGUgZ2V0RGlzcGxheUxvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBmRGlzcGxheUxvY2FsZTsKKyAgICAgICAgfQorCisKKyAgICAgICAgcHVibGljIERhdGUgZmlyc3RPZk1vbnRoKCkgeworICAgICAgICAgICAgcmV0dXJuIGZTdGFydE9mTW9udGg7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIERhdGUgc3RhcnRPZk1vbnRoKERhdGUgZGF0ZUluTW9udGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0VGltZShkYXRlSW5Nb250aCk7ICAgICAgICAgICAgIC8vIFRPRE86IHN5bmNocm9uaXphdGlvbgorCisgICAgICAgICAgICAgICAgaW50IGVyYSA9IGZDYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhciA9IGZDYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICAgICAgaW50IG1vbnRoID0gZkNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCk7CisKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0KENhbGVuZGFyLkRBVEUsIDEpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZDYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgY2FsY3VsYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEgd29ya2Fyb3VuZCBmb3IgSkRLIDEuMS4zIGFuZCBiZWxvdywgd2hlcmUgQ2FsZW5kYXJzIGFuZCB0aW1lCisgICAgICAgICAgICAvLyB6b25lcyBhcmUgYSBiaXQgZ29vZnksIGFsd2F5cyBzZXQgbXkgY2FsZW5kYXIncyB0aW1lIHpvbmUgdG8gVVRDLgorICAgICAgICAgICAgLy8gWW91IHdvdWxkIHRoaW5rIEkgd291bGQgd2FudCB0byBkbyB0aGlzIGluIHRoZSAic2V0IiBmdW5jdGlvbiBhYm92ZSwKKyAgICAgICAgICAgIC8vIGJ1dCBpZiBJIGRvIHRoYXQsIHRoZSBwcm9ncmFtIGhhbmdzIHdoZW4gdGhpcyBjbGFzcyBpcyBsb2FkZWQsCisgICAgICAgICAgICAvLyBwZXJoYXBzIGR1ZSB0byBzb21lIHNvcnQgb2Ygc3RhdGljIGluaXRpYWxpemF0aW9uIG9yZGVyaW5nIHByb2JsZW0uCisgICAgICAgICAgICAvLyBTbyBJIGRvIGl0IGhlcmUgaW5zdGVhZC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0VGltZVpvbmUobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisKKyAgICAgICAgICAgIENhbGVuZGFyIGMgPSAoQ2FsZW5kYXIpZkNhbGVuZGFyLmNsb25lKCk7IC8vIFRlbXBvcmFyeSBjb3B5CisKKyAgICAgICAgICAgIGZTdGFydE9mTW9udGggPSBzdGFydE9mTW9udGgoZlN0YXJ0T2ZNb250aCk7CisKKyAgICAgICAgICAgIC8vIFN0YXNoIGF3YXkgYSBmZXcgdXNlZnVsIGNvbnN0YW50cyBmb3IgdGhpcyBjYWxlbmRhciBhbmQgZGlzcGxheQorICAgICAgICAgICAgbWluRGF5ID0gYy5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGRheXNJbldlZWsgPSBjLmdldE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspIC0gbWluRGF5ICsgMTsKKworICAgICAgICAgICAgZmlyc3REYXlPZldlZWsgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShmRGlzcGxheUxvY2FsZSkuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKworICAgICAgICAgICAgLy8gU3Rhc2ggYXdheSBhIERhdGUgZm9yIHRoZSBzdGFydCBvZiB0aGlzIG1vbnRoCisKKyAgICAgICAgICAgIC8vIEZpbmQgdGhlIGRheSBvZiB3ZWVrIG9mIHRoZSBmaXJzdCBkYXkgaW4gdGhpcyBtb250aAorICAgICAgICAgICAgYy5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICAgICAgZmlyc3REYXlJbk1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworCisgICAgICAgICAgICAvLyBOb3cgZmluZCB0aGUgIyBvZiBkYXlzIGluIHRoZSBtb250aAorICAgICAgICAgICAgYy5yb2xsKENhbGVuZGFyLkRBVEUsIGZhbHNlKTsKKyAgICAgICAgICAgIGRheXNJbk1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuREFURSk7CisKKyAgICAgICAgICAgIC8vIEZpbmFsbHksIGZpbmQgdGhlIGVuZCBvZiB0aGUgbW9udGgsIGkuZS4gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IG9uZQorICAgICAgICAgICAgYy5yb2xsKENhbGVuZGFyLkRBVEUsIHRydWUpOworICAgICAgICAgICAgYy5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEpOworICAgICAgICAgICAgYy5nZXRUaW1lKCk7ICAgICAgICAvLyBKREsgMS4xLjIgYnVnIHdvcmthcm91bmQKKyAgICAgICAgICAgIGMuYWRkKENhbGVuZGFyLlNFQ09ORCwgLTEpOworICAgICAgICAgICAgRGF0ZSBlbmRPZk1vbnRoID0gYy5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBmdWxsIG9yIHBhcnRpYWwgd2Vla3MgaW4gdGhpcyBtb250aC4KKyAgICAgICAgICAgIC8vIFRvIGRvIHRoaXMgSSBjYW4ganVzdCByZXVzZSB0aGUgY29kZSB0aGF0IGNhbGN1bGF0ZXMgd2hpY2gKKyAgICAgICAgICAgIC8vIGNhbGVuZGFyIGNlbGwgY29udGFpbnMgYSBnaXZlbiBkYXRlLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIG51bVdlZWtzID0gZGF0ZVRvQ2VsbChkYXlzSW5Nb250aCkueSAtIGRhdGVUb0NlbGwoMSkueSArIDE7CisKKyAgICAgICAgICAgIC8vIFJlbWVtYmVyIHdoaWNoIGhvbGlkYXlzIGZhbGwgb24gd2hpY2ggZGF5cyBpbiB0aGlzIG1vbnRoLAorICAgICAgICAgICAgLy8gdG8gc2F2ZSB0aGUgdHJvdWJsZSBvZiBoYXZpbmcgdG8gZG8gaXQgbGF0ZXIKKyAgICAgICAgICAgIGZIb2xpZGF5cy5zZXRTaXplKDApOworCisgICAgICAgICAgICBmb3IgKGludCBoID0gMDsgaCA8IGZBbGxIb2xpZGF5cy5sZW5ndGg7IGgrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmU3RhcnRPZk1vbnRoOworICAgICAgICAgICAgICAgIHdoaWxlICggKGQgPSBmQWxsSG9saWRheXNbaF0uZmlyc3RCZXR3ZWVuKGQsIGVuZE9mTW9udGgpICkgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGMuc2V0VGltZShkKTsKKyAgICAgICAgICAgICAgICAgICAgZkhvbGlkYXlzLmFkZEVsZW1lbnQoIG5ldyBIb2xpZGF5SW5mbyhjLmdldChDYWxlbmRhci5EQVRFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkFsbEhvbGlkYXlzW2hdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQWxsSG9saWRheXNbaF0uZ2V0RGlzcGxheU5hbWUoZkRpc3BsYXlMb2NhbGUpICkpOworCisgICAgICAgICAgICAgICAgICAgIGQuc2V0VGltZSggZC5nZXRUaW1lKCkgKyAxMDAwICk7ICAgIC8vICJkKysiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZGlydHkgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5TRVQgPSAyOworCisgICAgICAgIC8qCisgICAgICAgICogQ29udmVydCBmcm9tIHRoZSBkYXkgbnVtYmVyIHdpdGhpbiBhIG1vbnRoICgxLWJhc2VkKQorICAgICAgICAqIHRvIHRoZSBjZWxsIGNvb3JkaW5hdGVzIG9uIHRoZSBjYWxlbmRhciAoMC1iYXNlZCkKKyAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGRhdGVUb0NlbGwoaW50IGRhdGUsIFBvaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGNlbGwgPSAoZGF0ZSArIGZpcnN0RGF5SW5Nb250aCAtIGZpcnN0RGF5T2ZXZWVrIC0gbWluRGF5KTsKKyAgICAgICAgICAgIGlmIChmaXJzdERheUluTW9udGggPCBmaXJzdERheU9mV2VlaykgeworICAgICAgICAgICAgICAgIGNlbGwgKz0gZGF5c0luV2VlazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcG9zLnggPSBjZWxsICUgZGF5c0luV2VlazsKKyAgICAgICAgICAgIHBvcy55ID0gY2VsbCAvIGRheXNJbldlZWs7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBQb2ludCBkYXRlVG9DZWxsKGludCBkYXRlKSB7CisgICAgICAgICAgICBQb2ludCBwID0gbmV3IFBvaW50KDAsMCk7CisgICAgICAgICAgICBkYXRlVG9DZWxsKGRhdGUsIHApOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisKKyAgICAgICAgICAgIGlmIChkaXJ0eSkgeworICAgICAgICAgICAgICAgIGNhbGN1bGF0ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBQb2ludCBjZWxsUG9zID0gbmV3IFBvaW50KDAsMCk7ICAgICAvLyBUZW1wb3JhcnkgdmFyaWFibGUKKyAgICAgICAgICAgIERpbWVuc2lvbiBkID0gZ2V0U2l6ZSgpOworCisgICAgICAgICAgICBnLnNldENvbG9yKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICAgICAgZy5maWxsUmVjdCgwLDAsZC53aWR0aCxkLmhlaWdodCk7CisKKyAgICAgICAgICAgIC8vIERyYXcgdGhlIGRheSBuYW1lcyBhdCB0aGUgdG9wCisgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgICAgICBpbnQgbGFiZWxIZWlnaHQgPSBmbS5nZXRIZWlnaHQoKSArIElOU0VUICogMjsKKworICAgICAgICAgICAgaW50IHYgPSBmbS5nZXRBc2NlbnQoKSArIElOU0VUOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgZGF5TnVtID0gKGkgKyBtaW5EYXkgKyBmaXJzdERheU9mV2VlayAtIDIpICUgZGF5c0luV2VlayArIDE7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRheU5hbWUgPSBmU3ltYm9scy5nZXRXZWVrZGF5cygpW2RheU51bV07CisKKyAgICAgICAgICAgICAgICBpbnQgaCA9IChpbnQpIChkLndpZHRoICogKGkgKyAwLjUpKSAvIGRheXNJbldlZWs7CisgICAgICAgICAgICAgICAgaCAtPSBmbS5zdHJpbmdXaWR0aChkYXlOYW1lKSAvIDI7CisKKyAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcoZGF5TmFtZSwgaCwgdik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRvdWJsZSBjZWxsSGVpZ2h0ID0gKGQuaGVpZ2h0IC0gbGFiZWxIZWlnaHQgLSAxKSAvIG51bVdlZWtzOworICAgICAgICAgICAgZG91YmxlIGNlbGxXaWR0aCA9IChkb3VibGUpKGQud2lkdGggLSAxKSAvIGRheXNJbldlZWs7CisKKyAgICAgICAgICAgIC8vIERyYXcgYSB3aGl0ZSBiYWNrZ3JvdW5kIGluIHRoZSBwYXJ0IG9mIHRoZSBjYWxlbmRhcgorICAgICAgICAgICAgLy8gdGhhdCBkaXNwbGF5cyB0aGlzIG1vbnRoLgorICAgICAgICAgICAgLy8gRmlyc3QgZmlndXJlIG91dCBob3cgbXVjaCBvZiB0aGUgZmlyc3Qgd2VlayBzaG91bGQgYmUgc2hhZGVkLgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3Iud2hpdGUpOworICAgICAgICAgICAgICAgIGRhdGVUb0NlbGwoMSwgY2VsbFBvcyk7CisgICAgICAgICAgICAgICAgaW50IHdpZHRoID0gKGludCkoY2VsbFBvcy54KmNlbGxXaWR0aCk7ICAvLyBXaWR0aCBvZiB1bnNoYWRlZCBhcmVhCisKKyAgICAgICAgICAgICAgICBnLmZpbGxSZWN0KChpbnQpKHdpZHRoKSwgbGFiZWxIZWlnaHQgLAorICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoZC53aWR0aCAtIHdpZHRoKSwgKGludCljZWxsSGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgaW50ZXJtZWRpYXRlIHdlZWtzIGdldCBzaGFkZWQgY29tcGxldGVseQorICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoMCwgKGludCkobGFiZWxIZWlnaHQgKyBjZWxsSGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLndpZHRoLCAoaW50KShjZWxsSGVpZ2h0ICogKG51bVdlZWtzIC0gMikpKTsKKworICAgICAgICAgICAgICAgIC8vIE5vdyBmaWd1cmUgb3V0IHRoZSBsYXN0IHdlZWsuCisgICAgICAgICAgICAgICAgZGF0ZVRvQ2VsbChkYXlzSW5Nb250aCwgY2VsbFBvcyk7CisgICAgICAgICAgICAgICAgd2lkdGggPSAoaW50KSgoY2VsbFBvcy54KzEpKmNlbGxXaWR0aCk7ICAvLyBXaWR0aCBvZiBzaGFkZWQgYXJlYQorCisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCAoaW50KShjZWxsSGVpZ2h0KSk7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIERyYXcgdGhlIFgvWSBncmlkIGxpbmVzCisgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG51bVdlZWtzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgeSA9IChpbnQpKGxhYmVsSGVpZ2h0ICsgaSAqIGNlbGxIZWlnaHQpOworICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoMCwgeSwgZC53aWR0aCAtIDEsIHkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gZGF5c0luV2VlazsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IHggPSAoaW50KShpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKHgsIGxhYmVsSGVpZ2h0LCB4LCBkLmhlaWdodCAtIDEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBOb3cgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZGF5cyBpbiB0aGUgbW9udGgsIGZpZ3VyZSBvdXQgd2hlcmUKKyAgICAgICAgICAgIC8vIHRoZXkgZ28gaW4gdGhlIGdyaWQsIGFuZCBkcmF3IHRoZSBkYXkgIyBmb3IgZWFjaCBvbmUKKyAgICAgICAgICAgIEZvbnQgbnVtYmVyRm9udCA9IG5ldyBGb250KCJIZWx2ZXRpY2EiLEZvbnQuUExBSU4sMTIpOworICAgICAgICAgICAgLy8gbm90IHVzZWQgRm9udCBob2xpZGF5Rm9udCA9IERlbW9VdGlsaXR5LmNyZWRpdEZvbnQ7CisKKyAgICAgICAgICAgIENhbGVuZGFyIGMgPSAoQ2FsZW5kYXIpZkNhbGVuZGFyLmNsb25lKCk7CisgICAgICAgICAgICBjLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxLCBoID0gMDsgaSA8PSBkYXlzSW5Nb250aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZy5zZXRGb250KG51bWJlckZvbnQpOworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICAgICAgICAgIGZtID0gZy5nZXRGb250TWV0cmljcygpOworCisgICAgICAgICAgICAgICAgZGF0ZVRvQ2VsbChpLCBjZWxsUG9zKTsKKyAgICAgICAgICAgICAgICBpbnQgeCA9IChpbnQpKChjZWxsUG9zLnggKyAxKSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAgICAgaW50IHkgPSAoaW50KShjZWxsUG9zLnkgKiBjZWxsSGVpZ2h0ICsgbGFiZWxIZWlnaHQpOworCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGkpOworICAgICAgICAgICAgICAgIFN0cmluZyBkYXlOdW0gPSBidWZmZXIudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgICAgIHggPSB4IC0gSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChkYXlOdW0pOworICAgICAgICAgICAgICAgIHkgPSB5ICsgZm0uZ2V0QXNjZW50KCkgKyBJTlNFVDsKKworICAgICAgICAgICAgICAgIGcuZHJhd1N0cmluZyhkYXlOdW0sIHgsIHkpOworCisgICAgICAgICAgICAgICAgLy8gU2VlIGlmIGFueSBvZiB0aGUgaG9saWRheXMgbGFuZCBvbiB0aGlzIGRheS4uLi4KKyAgICAgICAgICAgICAgICBIb2xpZGF5SW5mbyBpbmZvID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgICAgICAgICAgLy8gQ29vcmRpbmF0ZXMgb2YgbG93ZXItbGVmdCBjb3JuZXIgb2YgY2VsbC4KKyAgICAgICAgICAgICAgICB4ID0gKGludCkoKGNlbGxQb3MueCkgKiBjZWxsV2lkdGgpOworICAgICAgICAgICAgICAgIHkgPSAoaW50KSgoY2VsbFBvcy55KzEpICogY2VsbEhlaWdodCkgKyBsYWJlbEhlaWdodDsKKworICAgICAgICAgICAgICAgIHdoaWxlIChoIDwgZkhvbGlkYXlzLnNpemUoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKGluZm8gPSAoSG9saWRheUluZm8pZkhvbGlkYXlzLmVsZW1lbnRBdChoKSkuZGF0ZSA8PSBpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uZGF0ZSA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBEcmF3IHRoZSBob2xpZGF5IGhlcmUuCisgICAgICAgICAgICAgICAgICAgICAgICBnLnNldEZvbnQobnVtYmVyRm9udCk7CisgICAgICAgICAgICAgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLnJlZCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIERlbW9UZXh0Qm94IGJveCA9IG5ldyBEZW1vVGV4dEJveChnLCBpbmZvLm5hbWUsIChpbnQpKGNlbGxXaWR0aCAtIElOU0VUKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBib3guZHJhdyhnLCB4ICsgSU5TRVQsIHkgLSBJTlNFVCAtIGJveC5nZXRIZWlnaHQoKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHkgLT0gKGJveC5nZXRIZWlnaHQoKSArIElOU0VUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEltcG9ydGFudCBzdGF0ZSB2YXJpYWJsZXMKKyAgICAgICAgcHJpdmF0ZSBMb2NhbGUgICAgICAgICAgICAgIGZDYWxlbmRhckxvY2FsZTsgICAgLy8gV2hvc2UgY2FsZW5kYXIKKyAgICAgICAgcHJpdmF0ZSBDYWxlbmRhciAgICAgICAgICAgIGZDYWxlbmRhcjsgICAgICAgICAgLy8gQ2FsZW5kYXIgZm9yIGNhbGN1bGF0aW9ucworCisgICAgICAgIHByaXZhdGUgTG9jYWxlICAgICAgICAgICAgICBmRGlzcGxheUxvY2FsZTsgICAgIC8vIEhvdyB0byBkaXNwbGF5IGl0CisgICAgICAgIHByaXZhdGUgRGF0ZUZvcm1hdFN5bWJvbHMgICBmU3ltYm9sczsgICAgICAgICAgIC8vIFN5bWJvbHMgZm9yIGRyYXdpbmcKKworICAgICAgICBwcml2YXRlIERhdGUgICAgICAgICAgICAgICAgZlN0YXJ0T2ZNb250aDsgICAgICAvLyAwMDowMDowMCBvbiBmaXJzdCBkYXkgb2YgbW9udGgKKworICAgICAgICAvLyBDYWNoZWQgY2FsY3VsYXRpb25zIHRvIG1ha2UgZHJhd2luZyBmYXN0ZXIuCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBtaW5EYXk7ICAgICAgICAgICAvLyBNaW5pbXVtIGxlZ2FsIGRheSAjCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBkYXlzSW5XZWVrOyAgICAgICAvLyAjIG9mIGRheXMgaW4gYSB3ZWVrCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBmaXJzdERheU9mV2VlazsgICAvLyBGaXJzdCBkYXkgdG8gZGlzcGxheSBpbiB3ZWVrCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBudW1XZWVrczsgICAgICAgICAvLyAjIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiBtb250aAorICAgICAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZGF5c0luTW9udGg7ICAgICAgLy8gIyBkYXlzIGluIHRoaXMgbW9udGgKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGZpcnN0RGF5SW5Nb250aDsgIC8vIERheSBvZiB3ZWVrIG9mIGZpcnN0IGRheSBpbiBtb250aAorCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IEhvbGlkYXlbXSBmQWxsSG9saWRheXM7CisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IFZlY3RvciAgICBmSG9saWRheXMgPSBuZXcgVmVjdG9yKDUsNSk7CisKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBkaXJ0eSA9IHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSG9saWRheUluZm8geworICAgICAgICBwdWJsaWMgSG9saWRheUluZm8oaW50IGRhdGUsIEhvbGlkYXkgaG9saWRheSwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMuZGF0ZSA9IGRhdGU7CisgICAgICAgICAgICB0aGlzLmhvbGlkYXkgPSBob2xpZGF5OworICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBIb2xpZGF5IGhvbGlkYXk7CisgICAgICAgIHB1YmxpYyBpbnQgZGF0ZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBuYW1lOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwNWUyZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorSG9saWRheSBkZW1vIGFwcGxpY2F0aW9uLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0FwcGxldEZyYW1lLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9BcHBsZXRGcmFtZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVkZmYzODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9BcHBsZXRGcmFtZS5qYXZhCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworaW1wb3J0IGphdmEuYXBwbGV0Lio7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiA8cD5BIEZyYW1lIHRoYXQgcnVucyBhbiBBcHBsZXQgd2l0aGluIGl0c2VsZiwgbWFraW5nIGl0IHBvc3NpYmxlCisgKiBmb3IgYW4gYXBwbGV0IHRvIHJ1biBhcyBhbiBhcHBsaWNhdGlvbi4gIFVzYWdlOgorICoKKyAqIDxwcmU+CisgKiBwdWJsaWMgY2xhc3MgTXlBcHBsZXQgZXh0ZW5kcyBBcHBsZXQgeworICogICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAqICAgICAgICAgTXlBcHBsZXQgYXBwbGV0ID0gbmV3IE15QXBwbGV0KCk7CisgKiAgICAgICAgIG5ldyBBcHBsZXRGcmFtZSgiTXkgQXBwbGV0IFJ1bm5pbmcgQXMgQW4gQXBwIiwgYXBwbGV0LCA2NDAsIDQ4MCk7CisgKiAgICAgfQorICogICAgIC4uLgorICogfQorICogPHByZT4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBBcHBsZXRGcmFtZSBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQXBwbGV0U3R1YiwgQXBwbGV0Q29udGV4dCB7CisKKyAgICBBcHBsZXQgYXBwbGV0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBGcmFtZSBydW5uaW5nIHRoZSBnaXZlbiBBcHBsZXQgd2l0aCB0aGUgZGVmYXVsdCBzaXplCisgICAgICogb2YgNjQwIGJ5IDQ4MC4KKyAgICAgKiBXaGVuIHRoZSBGcmFtZSBpcyBjbG9zZWQsIHRoZSBhcHBsZXQncyBzdG9wKCkgbWV0aG9kIGlzIGNhbGxlZCwKKyAgICAgKiB0aGUgRnJhbWUgaXMgZGlzcG9zZSgpZCBvZiwgYW5kIFN5c3RlbS5leGl0KDApIGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBGcmFtZSB0aXRsZQorICAgICAqIEBwYXJhbSBhcHBsZXQgdGhlIGFwcGxldCB0byBiZSBydW4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXBwbGV0RnJhbWUoU3RyaW5nIG5hbWUsIEFwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgdGhpcyhuYW1lLCBhcHBsZXQsIDY0MCwgNDgwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBGcmFtZSBydW5uaW5nIHRoZSBnaXZlbiBBcHBsZXQgd2l0aCB0aGUgZ2l2ZW4gc2l6ZS4KKyAgICAgKiBXaGVuIHRoZSBGcmFtZSBpcyBjbG9zZWQsIHRoZSBhcHBsZXQncyBzdG9wKCkgbWV0aG9kIGlzIGNhbGxlZCwKKyAgICAgKiB0aGUgRnJhbWUgaXMgZGlzcG9zZSgpZCBvZiwgYW5kIFN5c3RlbS5leGl0KDApIGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBGcmFtZSB0aXRsZQorICAgICAqIEBwYXJhbSBhcHBsZXQgdGhlIGFwcGxldCB0byBiZSBydW4KKyAgICAgKiBAcGFyYW0gd2lkdGggd2lkdGggb2YgdGhlIEZyYW1lCisgICAgICogQHBhcmFtIGhlaWdodCBoZWlnaHQgb2YgdGhlIEZyYW1lCisgICAgICovCisgICAgcHVibGljIEFwcGxldEZyYW1lKFN0cmluZyBuYW1lLCBBcHBsZXQgYXBwbGV0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKyAgICAgICAgc3VwZXIobmFtZSk7CisgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICBhcHBsZXQuc2V0U3R1Yih0aGlzKTsKKworICAgICAgICBzZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBhZGQoIkNlbnRlciIsIGFwcGxldCk7CisgICAgICAgIHNob3coKTsKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBBcHBsZXRGcmFtZS50aGlzLmFwcGxldC5zdG9wKCk7CisgICAgICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBhcHBsZXQuaW5pdCgpOworICAgICAgICBhcHBsZXQuc3RhcnQoKTsKKyAgICB9CisKKyAgICAvLyBBcHBsZXRTdHViIEFQSQorICAgIHB1YmxpYyB2b2lkIGFwcGxldFJlc2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKyAgICAgICAgc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgQXBwbGV0Q29udGV4dCBnZXRBcHBsZXRDb250ZXh0KCkgeworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgVVJMIGdldENvZGVCYXNlKCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgVVJMIGdldERvY3VtZW50QmFzZSgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFyYW1ldGVyKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiAiUEFSQU1FVEVSIjsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0FjdGl2ZSgpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIAorICAgIC8vIEFwcGxldENvbnRleHQgQVBJCisgICAgcHVibGljIEFwcGxldCBnZXRBcHBsZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGFwcGxldDsKKyAgICB9CisKKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXBwbGV0cygpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIEF1ZGlvQ2xpcCBnZXRBdWRpb0NsaXAoVVJMIHVybCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgSW1hZ2UgZ2V0SW1hZ2UoVVJMIHVybCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93RG9jdW1lbnQoVVJMIHVybCkge30KKyAgICBwdWJsaWMgdm9pZCBzaG93RG9jdW1lbnQoVVJMIHVybCwgU3RyaW5nIHRhcmdldCkge30KKworICAgIHB1YmxpYyB2b2lkIHNob3dTdGF0dXMoU3RyaW5nIHN0YXR1cykgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3RhdHVzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0U3RyZWFtKFN0cmluZyBrZXksIElucHV0U3RyZWFtIHN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIElucHV0U3RyZWFtIGdldFN0cmVhbShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0U3RyZWFtS2V5cygpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb0FwcGxldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb0FwcGxldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjNTI3YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vQXBwbGV0LmphdmEKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRGVtb0FwcGxldCBleHRlbmRzIGphdmEuYXBwbGV0LkFwcGxldCB7CisgICAgcHJpdmF0ZSBCdXR0b24gICBkZW1vQnV0dG9uOworICAgIHByaXZhdGUgRnJhbWUgICAgZGVtb0ZyYW1lOworICAgIHByaXZhdGUgc3RhdGljIGludCBkZW1vRnJhbWVDb3VudCA9IDA7CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRnJhbWUgY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KTsKKyAgICBwcm90ZWN0ZWQgRGltZW5zaW9uIGdldERlZmF1bHRGcmFtZVNpemUoRGVtb0FwcGxldCBhcHBsZXQsIEZyYW1lIGYpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24oNzAwLCA1NTApOworICAgIH0KKworICAgIC8vQ3JlYXRlIGEgYnV0dG9uIHRoYXQgd2lsbCBkaXNwbGF5IHRoZSBkZW1vCisgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgeworICAgICAgICBzZXRCYWNrZ3JvdW5kKENvbG9yLndoaXRlKTsKKyAgICAgICAgZGVtb0J1dHRvbiA9IG5ldyBCdXR0b24oIkRlbW8iKTsKKyAgICAgICAgZGVtb0J1dHRvbi5zZXRCYWNrZ3JvdW5kKENvbG9yLnllbGxvdyk7CisgICAgICAgIGFkZCggZGVtb0J1dHRvbiApOworCisgICAgICAgIGRlbW9CdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChlLmdldElEKCkgPT0gQWN0aW9uRXZlbnQuQUNUSU9OX1BFUkZPUk1FRCkgeworICAgICAgICAgICAgICAgICAgICBkZW1vQnV0dG9uLnNldExhYmVsKCJsb2FkaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlbW9GcmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgIGRlbW9GcmFtZSA9IGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0LnRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICBzaG93RGVtbygpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZGVtb0J1dHRvbi5zZXRMYWJlbCgiRGVtbyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93RGVtbygpCisgICAgeworICAgICAgICBkZW1vRnJhbWUgPSBjcmVhdGVEZW1vRnJhbWUodGhpcyk7CisgICAgICAgIGRlbW9GcmFtZS5kb0xheW91dCgpOworICAgICAgICBEaW1lbnNpb24gZCA9IGdldERlZmF1bHRGcmFtZVNpemUodGhpcywgZGVtb0ZyYW1lKTsKKyAgICAgICAgZGVtb0ZyYW1lLnNldFNpemUoZC53aWR0aCwgZC5oZWlnaHQpOworICAgICAgICBkZW1vRnJhbWUuc2hvdygpOworICAgICAgICBkZW1vRnJhbWVPcGVuZWQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkZW1vQ2xvc2VkKCkKKyAgICB7CisgICAgICAgIGRlbW9GcmFtZSA9IG51bGw7CisgICAgICAgIGRlbW9GcmFtZUNsb3NlZCgpOworICAgIH0KKworICAgIHByb3RlY3RlZCBzdGF0aWMgdm9pZCBkZW1vRnJhbWVPcGVuZWQoKSB7CisgICAgICAgIGRlbW9GcmFtZUNvdW50Kys7CisgICAgfQorICAgIHByb3RlY3RlZCBzdGF0aWMgdm9pZCBkZW1vRnJhbWVDbG9zZWQoKSB7CisgICAgICAgIGlmICgtLWRlbW9GcmFtZUNvdW50ID09IDApIHsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vVGV4dEJveC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1RleHRCb3guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYjZhOWM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1RleHRCb3guamF2YQpAQCAtMCwwICsxLDk1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworCisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC4qOworCitwdWJsaWMgY2xhc3MgRGVtb1RleHRCb3ggeworCisgICAgcHVibGljIERlbW9UZXh0Qm94KEdyYXBoaWNzIGcsIFN0cmluZyB0ZXh0LCBpbnQgd2lkdGgpCisgICAgeworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLmNoYXJzID0gbmV3IGNoYXJbdGV4dC5sZW5ndGgoKV07CisgICAgICAgIHRleHQuZ2V0Q2hhcnMoMCwgdGV4dC5sZW5ndGgoKSwgY2hhcnMsIDApOworCisgICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5wb3J0ID0gZzsKKyAgICAgICAgdGhpcy5tZXRyaWNzID0gZy5nZXRGb250TWV0cmljcygpOworCisgICAgICAgIGJyZWFrVGV4dCgpOworICAgIH0KKworICAgIHB1YmxpYyAgaW50IGdldEhlaWdodCgpIHsKKyAgICAgICAgcmV0dXJuIChuYnJlYWtzICsgMSkgKiBtZXRyaWNzLmdldEhlaWdodCgpOworICAgIH0KKworICAgIHB1YmxpYyAgdm9pZCBkcmF3KEdyYXBoaWNzIGcsIGludCB4LCBpbnQgeSkKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgeSArPSBtZXRyaWNzLmdldEFzY2VudCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJyZWFrczsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBnLmRyYXdDaGFycyhjaGFycywgaW5kZXgsIGJyZWFrUG9zW2ldIC0gaW5kZXgsIHgsIHkpOworICAgICAgICAgICAgaW5kZXggPSBicmVha1Bvc1tpXTsKKyAgICAgICAgICAgIHkgKz0gbWV0cmljcy5nZXRIZWlnaHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGcuZHJhd0NoYXJzKGNoYXJzLCBpbmRleCwgY2hhcnMubGVuZ3RoIC0gaW5kZXgsIHgsIHkpOworICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIGJyZWFrVGV4dCgpCisgICAgeworICAgICAgICBpZiAobWV0cmljcy5jaGFyc1dpZHRoKGNoYXJzLCAwLCBjaGFycy5sZW5ndGgpID4gd2lkdGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dCk7CisKKyAgICAgICAgICAgIGludCBzdGFydCA9IGl0ZXIuZmlyc3QoKTsKKyAgICAgICAgICAgIGludCBlbmQgPSBzdGFydDsKKyAgICAgICAgICAgIGludCBwb3M7CisKKyAgICAgICAgICAgIHdoaWxlICggKHBvcyA9IGl0ZXIubmV4dCgpKSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCB3ID0gbWV0cmljcy5jaGFyc1dpZHRoKGNoYXJzLCBzdGFydCwgcG9zIC0gc3RhcnQpOworICAgICAgICAgICAgICAgIGlmICh3ID4gd2lkdGgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb25lIHBhc3QgdGhlIG1heGltdW0gd2lkdGgsIHNvIGJyZWFrIHRoZSBsaW5lCisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPiBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgd2FzIGF0IGxlYXN0IG9uZSBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhpcyBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtQb3NbbmJyZWFrcysrXSA9IGVuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZW5kOworICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcG9zOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgd2VyZW4ndCBhbnkgYnJlYWsgcG9zaXRpb25zIGJlZm9yZSB0aGlzIG9uZSwgc28KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCB0aGlzIHdvcmQgb3ZlcmZsb3cgdGhlIG1hcmdpbiAoeXVjaykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrUG9zW25icmVha3MrK10gPSBwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIHN0aWxsIGZpdHMgb24gdGhlIGxpbmU7IGl0J3MgdGhlIGJlc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVudGF0aXZlIGJyZWFrIHBvc2l0aW9uIHdlIGhhdmUgc28gZmFyLgorICAgICAgICAgICAgICAgICAgICBlbmQgPSBwb3M7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyAgICAgICAgICB0ZXh0OworICAgIHByaXZhdGUgY2hhcltdICAgICAgICAgIGNoYXJzOworICAgIHByaXZhdGUgR3JhcGhpY3MgICAgICAgIHBvcnQ7CisgICAgcHJpdmF0ZSBGb250TWV0cmljcyAgICAgbWV0cmljczsKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICB3aWR0aDsKKworICAgIHByaXZhdGUgaW50W10gICAgICAgICAgIGJyZWFrUG9zID0gbmV3IGludFsxMF07IC8vIFRPRE86IGdldCByZWFsCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgbmJyZWFrcyA9IDA7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1V0aWxpdHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9VdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWM1YzNmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9VdGlsaXR5LmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CisKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgRGVtb1V0aWxpdHkKK3sKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgdGl0bGVGb250ID0gbmV3IEZvbnQoIlRpbWVzUm9tYW4iLEZvbnQuQk9MRCwxOCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGb250IGxhYmVsRm9udCA9IG5ldyBGb250KCJUaW1lc1JvbWFuIixGb250LkJPTEQsMTQpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbmV3IEZvbnQoIkhlbHZldGljYSIsRm9udC5CT0xELDEyKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgZWRpdEZvbnQgPSBuZXcgRm9udCgiSGVsdmV0aWNhIixGb250LlBMQUlOLDE0KTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgY3JlZGl0Rm9udCA9IG5ldyBGb250KCJIZWx2ZXRpY2EiLEZvbnQuUExBSU4sMTApOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCBudW1iZXJGb250ID0gbmV3IEZvbnQoInNhbnNzZXJpZiIsIEZvbnQuUExBSU4sIDE0KTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sb3IgYmdDb2xvciA9IENvbG9yLmxpZ2h0R3JheTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbG9yIGNob2ljZUNvbG9yID0gQ29sb3Iud2hpdGU7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQxID0KKyAgICAgICAgIkNvcHlyaWdodCAoQykgSUJNIENvcnAgYW5kIG90aGVycy4gMTk5NyAtIDIwMDIgQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICBQcm92aWRlcyBlYXN5IHdheSB0byB1c2UgYmFzaWMgZnVuY3Rpb25zIG9mIEdyaWRCYWdMYXlvdXQsIHdpdGhvdXQKKyAgICB0aGUgY29tcGxpY2F0aW9ucy4gQWZ0ZXIgYnVpbGRpbmcgYSBwYW5lbCwgYW5kIGluc2VydGluZyBhbGwgdGhlCisgICAgKiBzdWJjb21wb25lbnRzLCBjYWxsIHRoaXMgdG8gbGF5IGl0IG91dCBpbiB0aGUgZGVzaXJlZCBudW1iZXIgb2YgY29sdW1ucy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmaXhHcmlkKENvbnRhaW5lciBjb250LCBpbnQgY29sdW1ucykgeworICAgICAgICBHcmlkQmFnTGF5b3V0IGdyaWRiYWcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICBjb250LnNldExheW91dChncmlkYmFnKTsKKworICAgICAgICBHcmlkQmFnQ29uc3RyYWludHMgYyA9IG5ldyBHcmlkQmFnQ29uc3RyYWludHMoKTsKKyAgICAgICAgYy5maWxsID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlZFUlRJQ0FMOworICAgICAgICBjLndlaWdodHggPSAxLjA7CisgICAgICAgIGMuaW5zZXRzID0gbmV3IEluc2V0cygyLDIsMiwyKTsKKworICAgICAgICBDb21wb25lbnRbXSBjb21wb25lbnRzID0gY29udC5nZXRDb21wb25lbnRzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29tcG9uZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IGNvbE51bWJlciA9IGklY29sdW1uczsKKyAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gMTsgICAgLy8gZGVmYXVsdAorICAgICAgICAgICAgaWYgKChpJWNvbHVtbnMpID09IGNvbHVtbnMgLSAxKQorICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsgICAgLy8gbGFzdCBpbiBncmlkCisgICAgICAgICAgICBpZiAoY29tcG9uZW50c1tpXSBpbnN0YW5jZW9mIExhYmVsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICgoKExhYmVsKWNvbXBvbmVudHNbaV0pLmdldEFsaWdubWVudCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBMYWJlbC5DRU5URVI6IGMuYW5jaG9yID0gR3JpZEJhZ0NvbnN0cmFpbnRzLkNFTlRFUjsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBMYWJlbC5MRUZUOiBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5XRVNUOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIExhYmVsLlJJR0hUOiBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5FQVNUOyBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBncmlkYmFnLnNldENvbnN0cmFpbnRzKGNvbXBvbmVudHNbaV0sIGMpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICAvKioKKyAgICBQcm92aWRlcyBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIHNwYWNpbmcgYXJvdW5kIGFuIG9iamVjdCBpbiBhIEdyaWRCYWdMYXlvdXQuCisgICAgQ2FsbCBBRlRFUiBmaXhHcmlkQmFnLCBwYXNzaW5nIGluIHRoZSBjb250YWluZXIsIHRoZSBjb21wb25lbnQsIGFuZCB0aGUKKyAgICBuZXcgaW5zZXRzLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldEluc2V0cyhDb250YWluZXIgY29udCwgQ29tcG9uZW50IGNvbXAsIEluc2V0cyBpbnNldHMpIHsKKyAgICAgICAgR3JpZEJhZ0xheW91dCBnYmwgPSAoR3JpZEJhZ0xheW91dCljb250LmdldExheW91dCgpOworICAgICAgICBHcmlkQmFnQ29uc3RyYWludHMgZyA9IGdibC5nZXRDb25zdHJhaW50cyhjb21wKTsKKyAgICAgICAgZy5pbnNldHMgPSBpbnNldHM7CisgICAgICAgIGdibC5zZXRDb25zdHJhaW50cyhjb21wLGcpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUGFuZWwgY3JlYXRlU3BhY2VyKCkgeworICAgICAgICBQYW5lbCBzcGFjZXIgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgc3BhY2VyLnNldExheW91dChudWxsKTsKKyAgICAgICAgc3BhY2VyLnNldFNpemUoMTAwMCwgMSk7CisgICAgICAgIHJldHVybiBzcGFjZXI7CisgICAgfQorCisgICAgLy8gdG8gYXZvaWQgZ29vZnkgdXBkYXRlcyBhbmQgbWlzcGxhY2VkIGN1cnNvcnMKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0VGV4dChUZXh0Q29tcG9uZW50IGFyZWEsIFN0cmluZyBuZXdUZXh0KSB7CisgICAgICAgIFN0cmluZyBmb28gPSBhcmVhLmdldFRleHQoKTsKKyAgICAgICAgaWYgKGZvby5lcXVhbHMobmV3VGV4dCkpIHJldHVybjsKKyAgICAgICAgYXJlYS5zZXRUZXh0KG5ld1RleHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0d28gbG9jYWxzLiBSZXR1cm4gdmFsdWUgaXMgbmVnYXRpdmUKKyAgICAgKiBpZiB0aGV5J3JlIGRpZmZlcmVudCwgYW5kIG1vcmUgcG9zaXRpdmUgdGhlIG1vcmUKKyAgICAgKiBmaWVsZHMgdGhhdCBtYXRjaC4KKyAgICAgKi8KKyAgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZUxvY2FsZXMoTG9jYWxlIGwxLCBMb2NhbGUgbDIpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gLTE7CisgICAgICAgIAorICAgICAgICBpZiAobDEuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMobDIuZ2V0TGFuZ3VhZ2UoKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobDEuZ2V0Q291bnRyeSgpLmVxdWFscyhsMi5nZXRDb3VudHJ5KCkpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IDE7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGwxLmdldFZhcmlhbnQoKS5lcXVhbHMobDIuZ2V0VmFyaWFudCgpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgRzcgbG9jYWxlIGxpc3QgZm9yIGRlbW9zLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0RzdMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlTGlzdDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlW10gbG9jYWxlTGlzdCA9IHsKKyAgICAgICAgbmV3IExvY2FsZSgiREEiLCAiREsiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkVOIiwgIlVTIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJFTiIsICJHQiIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiRU4iLCAiQ0EiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkZSIiwgIkZSIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJGUiIsICJDQSIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiREUiLCAiREUiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIklUIiwgIklUIiwgIiIpLAorICAgIC8vbmV3IExvY2FsZSgiSkEiLCAiSlAiLCAiIiksCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0R1bWJUZXh0Q29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EdW1iVGV4dENvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY3OWE0OTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EdW1iVGV4dENvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsNzk4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuKjsKKworLy8gTElVOiBDaGFuZ2VkIGZyb20gZmluYWwgdG8gbm9uLWZpbmFsCitwdWJsaWMgY2xhc3MgRHVtYlRleHRDb21wb25lbnQgZXh0ZW5kcyBDYW52YXMKKyAgaW1wbGVtZW50cyBLZXlMaXN0ZW5lciwgTW91c2VMaXN0ZW5lciwgTW91c2VNb3Rpb25MaXN0ZW5lciwgRm9jdXNMaXN0ZW5lcgorICB7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPQorICAgICAgIkNvcHlyaWdodCBcdTAwQTkgMTk5OCwgTWFyayBEYXZpcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworICAgIHByaXZhdGUgdHJhbnNpZW50IHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICBwcml2YXRlIFN0cmluZyBjb250ZW50cyA9ICIiOworICAgIHByaXZhdGUgU2VsZWN0aW9uIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKKyAgICBwcml2YXRlIGludCBhY3RpdmVTdGFydCA9IC0xOworICAgIHByaXZhdGUgYm9vbGVhbiBlZGl0YWJsZSA9IHRydWU7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBTZWxlY3Rpb24gdGVtcFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGZvY3VzOworICAgIHByaXZhdGUgdHJhbnNpZW50IEJyZWFrSXRlcmF0b3IgbGluZUJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IEJyZWFrSXRlcmF0b3Igd29yZEJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IEJyZWFrSXRlcmF0b3IgY2hhckJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxpbmVBc2NlbnQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxpbmVIZWlnaHQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxpbmVMZWFkaW5nOworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBsYXN0SGVpZ2h0ID0gMTA7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxhc3RXaWR0aCA9IDUwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfTElORVMgPSAyMDA7IC8vIExJVTogVXNlIHN5bWJvbGljIG5hbWUKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnRbXSBsaW5lU3RhcnRzID0gbmV3IGludFtNQVhfTElORVNdOyAvLyBMSVUKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUNvdW50ID0gMTsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gdmFsaWQgPSBmYWxzZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBGb250TWV0cmljcyBmbTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHJlZG9MaW5lcyA9IHRydWU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBkb3VibGVDbGljayA9IGZhbHNlOworICAgIHByaXZhdGUgdHJhbnNpZW50IFRleHRMaXN0ZW5lciB0ZXh0TGlzdGVuZXI7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQWN0aW9uTGlzdGVuZXIgc2VsZWN0aW9uTGlzdGVuZXI7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgSW1hZ2UgY2FjaGVJbWFnZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBEaW1lbnNpb24gbXlTaXplOworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCB4SW5zZXQgPSA1OworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCB5SW5zZXQgPSA1OworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IHN0YXJ0UG9pbnQgPSBuZXcgUG9pbnQoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBQb2ludCBlbmRQb2ludCA9IG5ldyBQb2ludCgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IGNhcmV0UG9pbnQgPSBuZXcgUG9pbnQoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBQb2ludCBhY3RpdmVQb2ludCA9IG5ldyBQb2ludCgpOworICAgIAorICAgIC8vcHJpdmF0ZSB0cmFuc2llbnQgc3RhdGljIFN0cmluZyBjbGlwQm9hcmQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENSID0gJ1wwMTUnOyAvLyBMSVUKKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwdWJsaWMgRHVtYlRleHRDb21wb25lbnQoKSB7CisgICAgICAgIGFkZE1vdXNlTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZE1vdXNlTW90aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZEtleUxpc3RlbmVyKHRoaXMpOworICAgICAgICBhZGRGb2N1c0xpc3RlbmVyKHRoaXMpOworICAgICAgICBzZXRDdXJzb3IoQ3Vyc29yLmdldFByZWRlZmluZWRDdXJzb3IoQ3Vyc29yLlRFWFRfQ1VSU09SKSk7CisKKyAgICB9CisKKy8vID09PT09PT09PT09PT09PT0gRXZlbnRzID09PT09PT09PT09PT09PT09PT09CisKKyAgICAvLyBwdWJsaWMgYm9vbGVhbiBpc0ZvY3VzVHJhdmVyc2FibGUoKSB7IHJldHVybiB0cnVlOyB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRBY3Rpb25MaXN0ZW5lcihBY3Rpb25MaXN0ZW5lciBsKSB7CisgICAgICAgIHNlbGVjdGlvbkxpc3RlbmVyID0gQVdURXZlbnRNdWx0aWNhc3Rlci5hZGQoc2VsZWN0aW9uTGlzdGVuZXIsIGwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUFjdGlvbkxpc3RlbmVyKEFjdGlvbkxpc3RlbmVyIGwpIHsKKyAgICAgICAgc2VsZWN0aW9uTGlzdGVuZXIgPSBBV1RFdmVudE11bHRpY2FzdGVyLnJlbW92ZShzZWxlY3Rpb25MaXN0ZW5lciwgbCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkVGV4dExpc3RlbmVyKFRleHRMaXN0ZW5lciBsKSB7CisgICAgICAgIHRleHRMaXN0ZW5lciA9IEFXVEV2ZW50TXVsdGljYXN0ZXIuYWRkKHRleHRMaXN0ZW5lciwgbCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlVGV4dExpc3RlbmVyKFRleHRMaXN0ZW5lciBsKSB7CisgICAgICAgIHRleHRMaXN0ZW5lciA9IEFXVEV2ZW50TXVsdGljYXN0ZXIucmVtb3ZlKHRleHRMaXN0ZW5lciwgbCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBwcmVzc2VkOworCisgICAgcHVibGljIHZvaWQgbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibW91c2VQcmVzc2VkIik7CisgICAgICAgIGlmIChwcmVzc2VkKSB7CisgICAgICAgICAgICBzZWxlY3QoZSxmYWxzZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb3VibGVDbGljayA9IGUuZ2V0Q2xpY2tDb3VudCgpID4gMTsKKyAgICAgICAgICAgIHJlcXVlc3RGb2N1cygpOworICAgICAgICAgICAgc2VsZWN0KGUsIHRydWUpOworICAgICAgICAgICAgcHJlc3NlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtb3VzZURyYWdnZWQiKTsKKyAgICAgICAgc2VsZWN0KGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibW91c2VSZWxlYXNlZCIpOworICAgICAgICBwcmVzc2VkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICAvL2lmIChwcmVzc2VkKSBzZWxlY3QoZSwgZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSl7CisgICAgICAgIC8vaWYgKHByZXNzZWQpIHNlbGVjdChlLCBmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZSkge30KKyAgICBwdWJsaWMgdm9pZCBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkge30KKworCisgICAgcHVibGljIHZvaWQgZm9jdXNHYWluZWQoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJmb2N1c0dhaW5lZCIpOworICAgICAgICBmb2N1cyA9IHRydWU7CisgICAgICAgIHZhbGlkID0gZmFsc2U7CisgICAgICAgIHJlcGFpbnQoMTYpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJmb2N1c0xvc3QiKTsKKyAgICAgICAgZm9jdXMgPSBmYWxzZTsKKyAgICAgICAgdmFsaWQgPSBmYWxzZTsKKyAgICAgICAgcmVwYWludCgxNik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KE1vdXNlRXZlbnQgZSwgYm9vbGVhbiBmaXJzdCkgeworICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgIHBvaW50Mk9mZnNldChlLmdldFBvaW50KCksIHRlbXBTZWxlY3Rpb24pOworICAgICAgICBpZiAoZmlyc3QpIHsKKyAgICAgICAgICAgIGlmICgoZS5nZXRNb2RpZmllcnMoKSAmIElucHV0RXZlbnQuU0hJRlRfTUFTSykgPT0gMCkgeworICAgICAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uYW5jaG9yID0gdGVtcFNlbGVjdGlvbi5jYXJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBmaXggd29yZHMKKyAgICAgICAgaWYgKGRvdWJsZUNsaWNrKSB7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmV4cGFuZCh3b3JkQnJlYWtlcik7CisgICAgICAgIH0KKyAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgaW50IGNvZGUgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImtleVByZXNzZWQgIgorICAgICAgICAgICsgaGV4KChjaGFyKWNvZGUpICsgIiwgIiArIGhleCgoY2hhcillLmdldE1vZGlmaWVycygpKSk7CisgICAgICAgIGludCBzdGFydCA9IHNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICBpbnQgZW5kID0gc2VsZWN0aW9uLmdldEVuZCgpOworICAgICAgICBib29sZWFuIHNoaWZ0ID0gKGUuZ2V0TW9kaWZpZXJzKCkgJiBJbnB1dEV2ZW50LlNISUZUX01BU0spICE9IDA7CisgICAgICAgIGJvb2xlYW4gY3RybCA9IChlLmdldE1vZGlmaWVycygpICYgSW5wdXRFdmVudC5DVFJMX01BU0spICE9IDA7CisgICAgICAgICAgICAgICAgCisgICAgICAgIHN3aXRjaCAoY29kZSkgeworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1E6CisgICAgICAgICAgICBpZiAoIWN0cmwgfHwgIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIGZpeEhleCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfVjoKKyAgICAgICAgICAgIGlmICghY3RybCkgYnJlYWs7CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5nZXRUb29sa2l0KCkuYmVlcCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXN0ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfQzoKKyAgICAgICAgICAgIGlmICghY3RybCkgYnJlYWs7CisgICAgICAgICAgICBjb3B5KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19YOgorICAgICAgICAgICAgaWYgKCFjdHJsKSBicmVhazsKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmdldFRvb2xraXQoKS5iZWVwKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvcHkoKTsKKyAgICAgICAgICAgICAgICBpbnNlcnRUZXh0KCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0E6CisgICAgICAgICAgICBpZiAoIWN0cmwpIGJyZWFrOworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgc2VsZWN0KEludGVnZXIuTUFYX1ZBTFVFLCAwLCBmYWxzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbik7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLm5leHRCb3VuZChjdHJsID8gd29yZEJyZWFrZXIgOiBjaGFyQnJlYWtlciwgKzEsIHNoaWZ0KTsKKyAgICAgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5uZXh0Qm91bmQoY3RybCA/IHdvcmRCcmVha2VyIDogY2hhckJyZWFrZXIsIC0xLCBzaGlmdCk7CisgICAgICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19VUDogLy8gTElVOiBBZGQgc3VwcG9ydCBmb3IgdXAgYXJyb3cKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbik7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmNhcmV0ID0gbGluZURlbHRhKHRlbXBTZWxlY3Rpb24uY2FyZXQsIC0xKTsKKyAgICAgICAgICAgIGlmICghc2hpZnQpIHsKKyAgICAgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmFuY2hvciA9IHRlbXBTZWxlY3Rpb24uY2FyZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOiAvLyBMSVU6IEFkZCBzdXBwb3J0IGZvciBkb3duIGFycm93CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5jYXJldCA9IGxpbmVEZWx0YSh0ZW1wU2VsZWN0aW9uLmNhcmV0LCArMSk7CisgICAgICAgICAgICBpZiAoIXNoaWZ0KSB7CisgICAgICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5hbmNob3IgPSB0ZW1wU2VsZWN0aW9uLmNhcmV0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfREVMRVRFOiAvLyBMSVU6IEFkZCBkZWxldGUga2V5IHN1cHBvcnQKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIGJyZWFrOworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgaWYgKGNvbnRlbnRzLmxlbmd0aCgpID09IDApIGJyZWFrOworICAgICAgICAgICAgc3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIGVuZCA9IHNlbGVjdGlvbi5nZXRFbmQoKTsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgICAgICAgICArK2VuZDsKKyAgICAgICAgICAgICAgICBpZiAoZW5kID4gY29udGVudHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VG9vbGtpdCgpLmJlZXAoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcGxhY2VSYW5nZSgiIiwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgY29weSgpIHsKKyAgICAgICAgQ2xpcGJvYXJkIGNiID0gdGhpcy5nZXRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCk7CisgICAgICAgIFN0cmluZ1NlbGVjdGlvbiBzcyA9IG5ldyBTdHJpbmdTZWxlY3Rpb24oCisgICAgICAgICAgICBjb250ZW50cy5zdWJzdHJpbmcoc2VsZWN0aW9uLmdldFN0YXJ0KCksIHNlbGVjdGlvbi5nZXRFbmQoKSkpOworICAgICAgICBjYi5zZXRDb250ZW50cyhzcywgc3MpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHBhc3RlICgpIHsKKyAgICAgICAgQ2xpcGJvYXJkIGNiID0gdGhpcy5nZXRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCk7CisgICAgICAgIFRyYW5zZmVyYWJsZSB0ID0gY2IuZ2V0Q29udGVudHModGhpcyk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuZ2V0VG9vbGtpdCgpLmJlZXAoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSAoU3RyaW5nKSB0LmdldFRyYW5zZmVyRGF0YShEYXRhRmxhdm9yLnN0cmluZ0ZsYXZvcik7CisgICAgICAgICAgICBpbnNlcnRUZXh0KHRlbXApOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhpcy5nZXRUb29sa2l0KCkuYmVlcCgpOworICAgICAgICB9ICAgICAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogTElVOiBHaXZlbiBhbiBvZmZzZXQgaW50byBjb250ZW50cywgbW92ZXMgdXAgb3IgZG93biBieSBsaW5lcywKKyAgICAgKiBhY2NvcmRpbmcgdG8gbGluZVN0YXJ0c1tdLgorICAgICAqIEBwYXJhbSBvZmYgdGhlIG9mZnNldCBpbnRvIGNvbnRlbnRzCisgICAgICogQHBhcmFtIGRlbHRhIGhvdyBtYW55IGxpbmVzIHRvIG1vdmUgdXAgKDwgMCkgb3IgZG93biAoPiAwKQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBvZmZzZXQgaW50byBjb250ZW50cworICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmVEZWx0YShpbnQgb2ZmLCBpbnQgZGVsdGEpIHsKKyAgICAgICAgaW50IGxpbmUgPSBmaW5kTGluZShvZmYsIGZhbHNlKTsKKyAgICAgICAgaW50IHBvc0luTGluZSA9IG9mZiAtIGxpbmVTdGFydHNbbGluZV07CisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigib2ZmPSIgKyBvZmYgKyAiIGF0ICIgKyBsaW5lICsgIjoiICsgcG9zSW5MaW5lKTsKKyAgICAgICAgbGluZSArPSBkZWx0YTsKKyAgICAgICAgaWYgKGxpbmUgPCAwKSB7CisgICAgICAgICAgICBsaW5lID0gcG9zSW5MaW5lID0gMDsKKyAgICAgICAgfSBlbHNlIGlmIChsaW5lID49IGxpbmVDb3VudCkgeworICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRzLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIG9mZiA9IGxpbmVTdGFydHNbbGluZV0gKyBwb3NJbkxpbmU7CisgICAgICAgIGlmIChvZmYgPj0gbGluZVN0YXJ0c1tsaW5lKzFdKSB7CisgICAgICAgICAgICBvZmYgPSBsaW5lU3RhcnRzW2xpbmUrMV0gLSAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvZmY7CisgICAgfQorICAgICAgCisgICAgcHVibGljIHZvaWQga2V5UmVsZWFzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBpbnQgY29kZSA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigia2V5UmVsZWFzZWQgIgorICAgICAgICAgICsgaGV4KChjaGFyKWNvZGUpICsgIiwgIiArIGhleCgoY2hhcillLmdldE1vZGlmaWVycygpKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBjaGFyIGNoID0gZS5nZXRLZXlDaGFyKCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJrZXlUeXBlZCAiCisgICAgICAgICAgKyBoZXgoKGNoYXIpY2gpICsgIiwgIiArIGhleCgoY2hhcillLmdldE1vZGlmaWVycygpKSk7CisgICAgICAgIGlmICgoZS5nZXRNb2RpZmllcnMoKSAmIElucHV0RXZlbnQuQ1RSTF9NQVNLKSAhPSAwKSByZXR1cm47CisgICAgICAgIGludCBzdGFydCwgZW5kOworICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuQ0hBUl9VTkRFRklORUQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19CQUNLX1NQQUNFOgorICAgICAgICAgICAgLy9zZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGgoKSA9PSAwKSBicmVhazsKKyAgICAgICAgICAgIHN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBlbmQgPSBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gZW5kKSB7CisgICAgICAgICAgICAgICAgLS1zdGFydDsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdldFRvb2xraXQoKS5iZWVwKCk7IC8vIExJVTogQWRkIGF1ZGlvIGZlZWRiYWNrIG9mIE5PUAorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwbGFjZVJhbmdlKCIiLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGJyZWFrOyAgICAgICAgCisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfREVMRVRFOgorICAgICAgICAgICAgLy9zZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGgoKSA9PSAwKSBicmVhazsKKyAgICAgICAgICAgIHN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBlbmQgPSBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gZW5kKSB7CisgICAgICAgICAgICAgICAgKytlbmQ7CisgICAgICAgICAgICAgICAgaWYgKGVuZCA+IGNvbnRlbnRzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGdldFRvb2xraXQoKS5iZWVwKCk7IC8vIExJVTogQWRkIGF1ZGlvIGZlZWRiYWNrIG9mIE5PUAorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwbGFjZVJhbmdlKCIiLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKCFlZGl0YWJsZSkgYnJlYWs7CisgICAgICAgICAgICAvLyBMSVU6IERpc3BhdGNoIHRvIHN1YmNsYXNzIEFQSQorICAgICAgICAgICAgaGFuZGxlS2V5VHlwZWQoZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIExJVTogU3ViY2xhc3MgQVBJIGZvciBoYW5kbGluZyBvZiBrZXkgdHlwaW5nCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlS2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBpbnNlcnRUZXh0KFN0cmluZy52YWx1ZU9mKGUuZ2V0S2V5Q2hhcigpKSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHNldEtleVN0YXJ0KGludCBrZXlTdGFydCkgeworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgIT0ga2V5U3RhcnQpIHsKKyAgICAgICAgICAgIGFjdGl2ZVN0YXJ0ID0ga2V5U3RhcnQ7CisgICAgICAgICAgICByZXBhaW50KDEwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUtleVN0YXJ0KCkgeworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgPiBzZWxlY3Rpb24uZ2V0U3RhcnQoKSkgeworICAgICAgICAgICAgYWN0aXZlU3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIHJlcGFpbnQoMTApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBpbnQgZ2V0S2V5U3RhcnQoKSB7CisgICAgICAgIHJldHVybiBhY3RpdmVTdGFydDsKKyAgICB9CisKKy8vID09PT09PT09PT09PT09PT09PT09PSBDb250cm9sID09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXRFZGl0YWJsZShib29sZWFuIGIpIHsKKyAgICAgICAgZWRpdGFibGUgPSBiOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzRWRpdGFibGUoKSB7CisgICAgICAgIHJldHVybiBlZGl0YWJsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoU2VsZWN0aW9uIG5ld1NlbGVjdGlvbikgeworICAgICAgICBuZXdTZWxlY3Rpb24ucGluKGNvbnRlbnRzKTsKKyAgICAgICAgaWYgKCFzZWxlY3Rpb24uZXF1YWxzKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgICAgIHNlbGVjdGlvbi5zZXQobmV3U2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25MaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uTGlzdGVuZXIuYWN0aW9uUGVyZm9ybWVkKAorICAgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkV2ZW50KHRoaXMsIEFjdGlvbkV2ZW50LkFDVElPTl9QRVJGT1JNRUQsCisgICAgICAgICAgICAgICAgICAgICJTZWxlY3Rpb24gQ2hhbmdlZCIsIDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcGFpbnQoMTApOworICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgc2VsZWN0KHN0YXJ0LCBlbmQsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHN0YXJ0LCBpbnQgZW5kLCBib29sZWFuIGNsaWNrQWZ0ZXIpIHsKKyAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc3RhcnQsIGVuZCwgY2xpY2tBZnRlcik7CisgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkgeworICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKSB7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Qm91bmRzKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSB7CisgICAgICAgIHN1cGVyLnNldEJvdW5kcyh4LHksdyxoKTsKKyAgICAgICAgcmVkb0xpbmVzID0gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKGxhc3RXaWR0aCxsYXN0SGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1heGltdW1TaXplKCkgeworICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbihsYXN0V2lkdGgsbGFzdEhlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBnZXRNaW5pbXVtU2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24obGFzdEhlaWdodCxsYXN0SGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIHNldFRleHQyKHRleHQpOworICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKS5waW4oY29udGVudHMpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0MihTdHJpbmcgdGV4dCkgeworICAgICAgICBjb250ZW50cyA9IHRleHQ7CisgICAgICAgIGNoYXJCcmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIHdvcmRCcmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIGxpbmVCcmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIHJlZG9MaW5lcyA9IHRydWU7CisgICAgICAgIGlmICh0ZXh0TGlzdGVuZXIgIT0gbnVsbCkKKyAgICAgICAgICAgIHRleHRMaXN0ZW5lci50ZXh0VmFsdWVDaGFuZ2VkKAorICAgICAgICAgICAgICBuZXcgVGV4dEV2ZW50KHRoaXMsIFRleHRFdmVudC5URVhUX1ZBTFVFX0NIQU5HRUQpKTsKKyAgICAgICAgcmVwYWludCgxNik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaW5zZXJ0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgPT0gLTEpIGFjdGl2ZVN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgIHJlcGxhY2VSYW5nZSh0ZXh0LCBzZWxlY3Rpb24uZ2V0U3RhcnQoKSwgc2VsZWN0aW9uLmdldEVuZCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlUmFuZ2UoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBzZXRUZXh0Mihjb250ZW50cy5zdWJzdHJpbmcoMCxzdGFydCkgKyBzCisgICAgICAgICAgKyBjb250ZW50cy5zdWJzdHJpbmcoZW5kKSk7CisgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pLgorICAgICAgICAgIGZpeEFmdGVyUmVwbGFjZShzdGFydCwgZW5kLCBzLmxlbmd0aCgpKSk7CisgICAgICAgIHZhbGlkYXRlS2V5U3RhcnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiBjb250ZW50czsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGb250KEZvbnQgZm9udCkgeworICAgICAgICBzdXBlci5zZXRGb250KGZvbnQpOworICAgICAgICByZWRvTGluZXMgPSB0cnVlOworICAgICAgICByZXBhaW50KDE2KTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT0gR3JhcGhpY3MgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIHZvaWQgdXBkYXRlKEdyYXBoaWNzIGcpIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oInVwZGF0ZSIpOworICAgICAgICBwYWludChnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgIG15U2l6ZSA9IGdldFNpemUoKTsKKyAgICAgICAgaWYgKGNhY2hlSW1hZ2UgPT0gbnVsbAorICAgICAgICAgIHx8IGNhY2hlSW1hZ2UuZ2V0SGVpZ2h0KHRoaXMpICE9IG15U2l6ZS5oZWlnaHQKKyAgICAgICAgICB8fCBjYWNoZUltYWdlLmdldFdpZHRoKHRoaXMpICE9IG15U2l6ZS53aWR0aCkgeworICAgICAgICAgICAgY2FjaGVJbWFnZSA9IGNyZWF0ZUltYWdlKG15U2l6ZS53aWR0aCwgbXlTaXplLmhlaWdodCk7CisgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghdmFsaWQgfHwgcmVkb0xpbmVzKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigicGFpbnRpbmciKTsKKyAgICAgICAgICAgIHBhaW50MihjYWNoZUltYWdlLmdldEdyYXBoaWNzKCkpOworICAgICAgICAgICAgdmFsaWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vZ2V0VG9vbGtpdCgpLnN5bmMoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImNvcHlpbmciKTsKKyAgICAgICAgZy5kcmF3SW1hZ2UoY2FjaGVJbWFnZSwKKyAgICAgICAgICAwLCAwLCBteVNpemUud2lkdGgsIG15U2l6ZS5oZWlnaHQsCisgICAgICAgICAgMCwgMCwgbXlTaXplLndpZHRoLCBteVNpemUuaGVpZ2h0LAorICAgICAgICAgIHRoaXMpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50MihHcmFwaGljcyBnKSB7CisgICAgICAgIGcuY2xlYXJSZWN0KDAsIDAsIG15U2l6ZS53aWR0aCwgbXlTaXplLmhlaWdodCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJwcmludCIpOworICAgICAgICBpZiAoZm9jdXMpIGcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICBlbHNlIGcuc2V0Q29sb3IoQ29sb3IuZ3JheSk7CisgICAgICAgIGcuZHJhd1JlY3QoMCwwLG15U2l6ZS53aWR0aC0xLG15U2l6ZS5oZWlnaHQtMSk7CisgICAgICAgIGcuc2V0Q2xpcCgxLDEsCisgICAgICAgICAgbXlTaXplLndpZHRoLTIsbXlTaXplLmhlaWdodC0yKTsKKyAgICAgICAgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgIGcuc2V0Rm9udChnZXRGb250KCkpOworICAgICAgICBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgbGluZUFzY2VudCA9IGZtLmdldEFzY2VudCgpOworICAgICAgICBsaW5lTGVhZGluZyA9IGZtLmdldExlYWRpbmcoKTsKKyAgICAgICAgbGluZUhlaWdodCA9IGxpbmVBc2NlbnQgKyBmbS5nZXREZXNjZW50KCkgKyBsaW5lTGVhZGluZzsKKyAgICAgICAgaW50IHkgPSB5SW5zZXQgKyBsaW5lQXNjZW50OworICAgICAgICBTdHJpbmcgbGFzdFN1YnN0cmluZyA9ICIiOworICAgICAgICBpZiAocmVkb0xpbmVzKSBmaXhMaW5lU3RhcnRzKG15U2l6ZS53aWR0aC14SW5zZXQteEluc2V0KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW5lQ291bnQ7IHkgKz0gbGluZUhlaWdodCwgKytpKSB7CisgICAgICAgICAgICAvLyBMSVU6IERvbid0IGRpc3BsYXkgdGVybWluYXRpbmcgXk0gY2hhcmFjdGVycworICAgICAgICAgICAgaW50IGxpbSA9IGxpbmVTdGFydHNbaSsxXTsKKyAgICAgICAgICAgIGlmIChsaW0gPiAwICYmIGNvbnRlbnRzLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgIGNvbnRlbnRzLmNoYXJBdChsaW0tMSkgPT0gQ1IpIC0tbGltOworICAgICAgICAgICAgbGFzdFN1YnN0cmluZyA9IGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2ldLGxpbSk7CisgICAgICAgICAgICBnLmRyYXdTdHJpbmcobGFzdFN1YnN0cmluZywgeEluc2V0LCB5KTsKKyAgICAgICAgfQorICAgICAgICBkcmF3U2VsZWN0aW9uKGcsIGxhc3RTdWJzdHJpbmcpOworICAgICAgICBsYXN0SGVpZ2h0ID0geSArIHlJbnNldCAtIGxpbmVIZWlnaHQgKyB5SW5zZXQ7CisgICAgICAgIGxhc3RXaWR0aCA9IG15U2l6ZS53aWR0aC14SW5zZXQteEluc2V0OworICAgIH0KKworICAgIHZvaWQgcGFpbnRSZWN0KEdyYXBoaWNzIGcsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSB7CisgICAgICAgIGlmIChmb2N1cykgeworICAgICAgICAgICAgZy5maWxsUmVjdCh4LCB5LCB3LCBoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGcuZHJhd1JlY3QoeCwgeSwgdy0xLCBoLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZHJhd1NlbGVjdGlvbihHcmFwaGljcyBnLCBTdHJpbmcgbGFzdFN1YnN0cmluZykgeworICAgICAgICBnLnNldFhPUk1vZGUoQ29sb3IuYmxhY2spOworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgIT0gLTEpIHsKKyAgICAgICAgICAgIG9mZnNldDJQb2ludChhY3RpdmVTdGFydCwgZmFsc2UsIGFjdGl2ZVBvaW50KTsKKyAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IubWFnZW50YSk7CisgICAgICAgICAgICBpbnQgbGluZSA9IGFjdGl2ZVBvaW50LnggLSAxOworICAgICAgICAgICAgZy5maWxsUmVjdChsaW5lLCBhY3RpdmVQb2ludC55LCAxLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VsZWN0aW9uLmlzQ2FyZXQoKSkgeworICAgICAgICAgICAgb2Zmc2V0MlBvaW50KHNlbGVjdGlvbi5jYXJldCwgc2VsZWN0aW9uLmNsaWNrQWZ0ZXIsIGNhcmV0UG9pbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGZvY3VzKSBnLnNldENvbG9yKENvbG9yLmJsdWUpOworICAgICAgICAgICAgZWxzZSBnLnNldENvbG9yKENvbG9yLnllbGxvdyk7CisgICAgICAgICAgICBvZmZzZXQyUG9pbnQoc2VsZWN0aW9uLmdldFN0YXJ0KCksIHRydWUsIHN0YXJ0UG9pbnQpOworICAgICAgICAgICAgb2Zmc2V0MlBvaW50KHNlbGVjdGlvbi5nZXRFbmQoKSwgZmFsc2UsIGVuZFBvaW50KTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb24uZ2V0U3RhcnQoKSA9PSBzZWxlY3Rpb24uY2FyZXQpCisgICAgICAgICAgICAgICAgY2FyZXRQb2ludC5zZXRMb2NhdGlvbihzdGFydFBvaW50KTsKKyAgICAgICAgICAgIGVsc2UgY2FyZXRQb2ludC5zZXRMb2NhdGlvbihlbmRQb2ludCk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb2ludC55ID09IGVuZFBvaW50LnkpIHsKKyAgICAgICAgICAgICAgICBwYWludFJlY3QoZywgc3RhcnRQb2ludC54LCBzdGFydFBvaW50LnksCisgICAgICAgICAgICAgICAgICBNYXRoLm1heCgxLGVuZFBvaW50Lngtc3RhcnRQb2ludC54KSwgbGluZUhlaWdodCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhaW50UmVjdChnLCBzdGFydFBvaW50LngsIHN0YXJ0UG9pbnQueSwKKyAgICAgICAgICAgICAgICAgIChteVNpemUud2lkdGgteEluc2V0KS1zdGFydFBvaW50LngsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgICAgIGlmIChzdGFydFBvaW50LnkgKyBsaW5lSGVpZ2h0IDwgZW5kUG9pbnQueSkKKyAgICAgICAgICAgICAgICAgIHBhaW50UmVjdChnLCB4SW5zZXQsIHN0YXJ0UG9pbnQueSArIGxpbmVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAobXlTaXplLndpZHRoLXhJbnNldCkteEluc2V0LCBlbmRQb2ludC55IC0gc3RhcnRQb2ludC55IC0gbGluZUhlaWdodCk7CisgICAgICAgICAgICAgICAgcGFpbnRSZWN0KGcsIHhJbnNldCwgZW5kUG9pbnQueSwgZW5kUG9pbnQueC14SW5zZXQsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmb2N1cyB8fCBzZWxlY3Rpb24uaXNDYXJldCgpKSB7CisgICAgICAgICAgICBpZiAoZm9jdXMpIGcuc2V0Q29sb3IoQ29sb3IuZ3JlZW4pOworICAgICAgICAgICAgZWxzZSBnLnNldENvbG9yKENvbG9yLnJlZCk7CisgICAgICAgICAgICBpbnQgbGluZSA9IGNhcmV0UG9pbnQueCAtIChzZWxlY3Rpb24uY2xpY2tBZnRlciA/IDAgOiAxKTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QobGluZSwgY2FyZXRQb2ludC55LCAxLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIGludCB3ID0gbGluZUhlaWdodC8xMiArIDE7CisgICAgICAgICAgICBpbnQgYnJhY2VzID0gbGluZSAtIChzZWxlY3Rpb24uY2xpY2tBZnRlciA/IC0xIDogdyk7CisgICAgICAgICAgICBnLmZpbGxSZWN0KGJyYWNlcywgY2FyZXRQb2ludC55LCB3LCAxKTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QoYnJhY2VzLCBjYXJldFBvaW50LnkgKyBsaW5lSGVpZ2h0IC0gMSwgdywgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgUG9pbnQgb2Zmc2V0MlBvaW50KGludCBvZmYsIGJvb2xlYW4gc3RhcnQsIFBvaW50IHApIHsKKyAgICAgICAgaW50IGxpbmUgPSBmaW5kTGluZShvZmYsIHN0YXJ0KTsKKyAgICAgICAgaW50IHdpZHRoID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHdpZHRoID0gZm0uc3RyaW5nV2lkdGgoCisgICAgICAgICAgICAgIGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLCBvZmYpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgICAgICBwLnggPSB3aWR0aCArIHhJbnNldDsKKyAgICAgICAgaWYgKHAueCA+IG15U2l6ZS53aWR0aCAtIHhJbnNldCkKKyAgICAgICAgICAgIHAueCA9IG15U2l6ZS53aWR0aCAtIHhJbnNldDsKKyAgICAgICAgcC55ID0gbGluZUhlaWdodCAqIGxpbmUgKyB5SW5zZXQ7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGZpbmRMaW5lKGludCBvZmYsIGJvb2xlYW4gc3RhcnQpIHsKKyAgICAgICAgLy8gaWYgaXQgaXMgc3RhcnQsIHRoZW4gZ28gdG8gdGhlIG5leHQgbGluZSEKKyAgICAgICAgaWYgKHN0YXJ0KSArK29mZjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsaW5lQ291bnQ7ICsraSkgeworICAgICAgICAgICAgLy8gTElVOiBUaGlzIHdhcyA8PSA7IGNoYW5nZWQgdG8gPCB0byBtYWtlIGNhcmV0IGFmdGVyCisgICAgICAgICAgICAvLyBmaW5hbCBDUiBpbiBsaW5lIGFwcGVhciBhdCBTVEFSVCBvZiBuZXh0IGxpbmUuCisgICAgICAgICAgICBpZiAob2ZmIDwgbGluZVN0YXJ0c1tpXSkgcmV0dXJuIGktMTsKKyAgICAgICAgfQorICAgICAgICAvLyBMSVU6IENoZWNrIGZvciBzcGVjaWFsIGNhc2U7IGFmdGVyIENSIGF0IGVuZCBvZiB0aGUgbGFzdCBsaW5lCisgICAgICAgIGlmIChvZmYgPT0gbGluZVN0YXJ0c1tsaW5lQ291bnRdICYmCisgICAgICAgICAgICBvZmYgPiAwICYmIGNvbnRlbnRzLmxlbmd0aCgpID4gMCAmJiBjb250ZW50cy5jaGFyQXQob2ZmLTEpID09IENSKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNvdW50OworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW5lQ291bnQtMTsKKyAgICB9CisKKyAgICAvLyBvZmZzZXRzIG9uIGFueSBsaW5lIHdpbGwgZ28gZnJvbSBzdGFydCx0cnVlIHRvIGVuZCxmYWxzZQorICAgIC8vIGV4Y2x1ZGluZyBzdGFydCxmYWxzZSBhbmQgZW5kLHRydWUKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHBvaW50Mk9mZnNldChQb2ludCBwLCBTZWxlY3Rpb24gbykgeworICAgICAgICBpZiAocC55IDwgeUluc2V0KSB7CisgICAgICAgICAgICBvLmNhcmV0ID0gMDsKKyAgICAgICAgICAgIG8uY2xpY2tBZnRlciA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGluZSA9IChwLnkgLSB5SW5zZXQpL2xpbmVIZWlnaHQ7CisgICAgICAgIGlmIChsaW5lID49IGxpbmVDb3VudCkgeworICAgICAgICAgICAgby5jYXJldCA9IGNvbnRlbnRzLmxlbmd0aCgpOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBpbnQgdGFyZ2V0ID0gcC54IC0geEluc2V0OworICAgICAgICBpZiAodGFyZ2V0IDw9IDApIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSBsaW5lU3RhcnRzW2xpbmVdOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIGludCBsb3dHdWVzcyA9IGxpbmVTdGFydHNbbGluZV07CisgICAgICAgIGludCBsb3dXaWR0aCA9IDA7CisgICAgICAgIGludCBoaWdoR3Vlc3MgPSBsaW5lU3RhcnRzW2xpbmUrMV07CisgICAgICAgIGludCBoaWdoV2lkdGggPSBmbS5zdHJpbmdXaWR0aChjb250ZW50cy5zdWJzdHJpbmcobGluZVN0YXJ0c1tsaW5lXSxoaWdoR3Vlc3MpKTsKKyAgICAgICAgaWYgKHRhcmdldCA+PSBoaWdoV2lkdGgpIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSBsaW5lU3RhcnRzW2xpbmUrMV07CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChsb3dHdWVzcyA8IGhpZ2hHdWVzcyAtIDEpIHsKKyAgICAgICAgICAgIGludCBndWVzcyA9IChsb3dHdWVzcyArIGhpZ2hHdWVzcykvMjsKKyAgICAgICAgICAgIGludCB3aWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGd1ZXNzKSk7CisgICAgICAgICAgICBpZiAod2lkdGggPD0gdGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgbG93R3Vlc3MgPSBndWVzczsKKyAgICAgICAgICAgICAgICBsb3dXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgICAgIGlmICh3aWR0aCA9PSB0YXJnZXQpIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBoaWdoR3Vlc3MgPSBndWVzczsKKyAgICAgICAgICAgICAgICBoaWdoV2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBhdCBlbmQsIGVpdGhlciBsb3dXaWR0aCA8IHRhcmdldCA8IHdpZHRoKGxvdysxKSwgb3IgbG93V2lkdGggPSB0YXJnZXQKKyAgICAgICAgaW50IGhpZ2hCb3VuZCA9IGNoYXJCcmVha2VyLmZvbGxvd2luZyhsb3dHdWVzcyk7CisgICAgICAgIGludCBsb3dCb3VuZCA9IGNoYXJCcmVha2VyLnByZXZpb3VzKCk7CisgICAgICAgIC8vIHdlIGFyZSBub3cgYXQgY2hhcmFjdGVyIGJvdW5kYXJpZXMKKyAgICAgICAgaWYgKGxvd0JvdW5kICE9IGxvd0d1ZXNzKQorICAgICAgICAgICAgbG93V2lkdGggPSBmbS5zdHJpbmdXaWR0aChjb250ZW50cy5zdWJzdHJpbmcobGluZVN0YXJ0c1tsaW5lXSxsb3dCb3VuZCkpOworICAgICAgICBpZiAoaGlnaEJvdW5kICE9IGhpZ2hHdWVzcykKKyAgICAgICAgICAgIGhpZ2hXaWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGhpZ2hCb3VuZCkpOworICAgICAgICAvLyB3ZSBub3cgaGF2ZSB0aGUgcmlnaHQgd2lkdGhzCisgICAgICAgIGlmICh0YXJnZXQgLSBsb3dXaWR0aCA8IGhpZ2hXaWR0aCAtIHRhcmdldCkgeworICAgICAgICAgICAgby5jYXJldCA9IGxvd0JvdW5kOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSBoaWdoQm91bmQ7CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyB3ZSBub3cgaGF2ZSB0aGUgY2xvc2VzdCEKKyAgICAgICAgcmV0dXJuIG87CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZpeExpbmVTdGFydHMoaW50IHdpZHRoKSB7CisgICAgICAgIGxpbmVDb3VudCA9IDE7CisgICAgICAgIGxpbmVTdGFydHNbMF0gPSAwOworICAgICAgICBpZiAoY29udGVudHMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgbGluZVN0YXJ0c1sxXSA9IDA7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaW50IGVuZCA9IDA7CisgICAgICAgIC8vIExJVTogQWRkIGNoZWNrIGZvciBNQVhfTElORVMKKyAgICAgICAgZm9yIChpbnQgc3RhcnQgPSAwOyBzdGFydCA8IGNvbnRlbnRzLmxlbmd0aCgpICYmIGxpbmVDb3VudCA8IE1BWF9MSU5FUzsKKyAgICAgICAgICAgICBzdGFydCA9IGVuZCkgeworICAgICAgICAgICAgZW5kID0gbmV4dExpbmUoZm0sIHN0YXJ0LCB3aWR0aCk7CisgICAgICAgICAgICBsaW5lU3RhcnRzW2xpbmVDb3VudCsrXSA9IGVuZDsKKyAgICAgICAgICAgIGlmIChlbmQgPT0gc3RhcnQpIHsgLy8gTElVOiBBc3NlcnRpb24KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigibmV4dExpbmUgYnJva2VuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLS1saW5lQ291bnQ7CisgICAgICAgIHJlZG9MaW5lcyA9IGZhbHNlOworICAgIH0KKworICAgIC8vIExJVTogRW5oYW5jZWQgdG8gd3JhcCBsb25nIGxpbmVzLiAgQnVnIHdpdGggcmV0dXJuIG9mIHN0YXJ0IGZpeGVkLgorICAgIHB1YmxpYyBpbnQgbmV4dExpbmUoRm9udE1ldHJpY3MgZm0sIGludCBzdGFydCwgaW50IHdpZHRoKSB7CisgICAgICAgIGludCBsZW4gPSBjb250ZW50cy5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIGZvciBsaW5lIHNlcGFyYXRvcgorICAgICAgICAgICAgY2hhciBjaCA9IChjb250ZW50cy5jaGFyQXQoaSkpOworICAgICAgICAgICAgaWYgKGNoID49IDB4MDAwQSAmJiBjaCA8PSAweDAwMEQgfHwgY2ggPT0gMHgyMDI4IHx8IGNoID09IDB4MjAyOSkgeworICAgICAgICAgICAgICAgIGxlbiA9IGkgKyAxOworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMEQgJiYgaSsxIDwgbGVuICYmIGNvbnRlbnRzLmNoYXJBdChpKzEpID09IDB4MDAwQSkgLy8gY3JsZgorICAgICAgICAgICAgICAgICAgICArK2xlbjsgLy8gZ3JhYiBleHRyYSBjaGFyCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHN1YmplY3QgPSBjb250ZW50cy5zdWJzdHJpbmcoc3RhcnQsbGVuKTsKKyAgICAgICAgaWYgKHZpc2libGVXaWR0aChmbSwgc3ViamVjdCkgPD0gd2lkdGgpCisgICAgICAgICAgcmV0dXJuIGxlbjsKKworICAgICAgICAvLyBMSVU6IFJlbWFpbmRlciBvZiB0aGlzIG1ldGhvZCByZXdyaXR0ZW4gdG8gYWNjb21vZGF0ZSBsaW5lcworICAgICAgICAvLyBsb25nZXIgdGhhbiB0aGUgY29tcG9uZW50IHdpZHRoIGJ5IGZpcnN0IHRyeWluZyB0byBicmVhaworICAgICAgICAvLyBpbnRvIGxpbmVzOyB0aGVuIHdvcmRzOyBmaW5hbGx5IGNoYXJzLgorICAgICAgICBpbnQgbiA9IGZpbmRGaXR0aW5nQnJlYWsoZm0sIHN1YmplY3QsIHdpZHRoLCBsaW5lQnJlYWtlcik7CisgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgIG4gPSBmaW5kRml0dGluZ0JyZWFrKGZtLCBzdWJqZWN0LCB3aWR0aCwgd29yZEJyZWFrZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgIG4gPSBmaW5kRml0dGluZ0JyZWFrKGZtLCBzdWJqZWN0LCB3aWR0aCwgY2hhckJyZWFrZXIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuID4gMCA/IHN0YXJ0ICsgbiA6IGxlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMSVU6IEZpbmRzIHRoZSBsb25nZXN0IHN1YnN0cmluZyB0aGF0IGZpdHMgYSBnaXZlbiB3aWR0aAorICAgICAqIGNvbXBvc2VkIG9mIHN1YnVuaXRzIHJldHVybmVkIGJ5IGEgQnJlYWtJdGVyYXRvci4gIElmIHRoZSBzbWFsbGVzdAorICAgICAqIHN1YnVuaXQgaXMgdG9vIGxvbmcsIHJldHVybnMgMC4KKyAgICAgKiBAcGFyYW0gZm0gbWV0cmljcyB0byB1c2UKKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgc3RyaW5nIHRvIGJlIGZpeCBpbnRvIHdpZHRoCisgICAgICogQHBhcmFtIHdpZHRoIGxpbmUuc3Vic3RyaW5nKDAsIHJlc3VsdCkgbXVzdCBiZSA8PSB3aWR0aAorICAgICAqIEBwYXJhbSBicmVha2VyIHRoZSBCcmVha0l0ZXJhdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGZpbmQgc3VidW5pdHMKKyAgICAgKiBAcmV0dXJuIG1heGltdW0gY2hhcmFjdGVycywgYXQgYm91bmRhcmllcyByZXR1cm5lZCBieSBicmVha2VyLAorICAgICAqIHRoYXQgZml0IGludG8gd2lkdGgsIG9yIHplcm8gb24gZmFpbHVyZQorICAgICAqLworICAgIHByaXZhdGUgaW50IGZpbmRGaXR0aW5nQnJlYWsoRm9udE1ldHJpY3MgZm0sIFN0cmluZyBsaW5lLCBpbnQgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIpIHsKKyAgICAgICAgYnJlYWtlci5zZXRUZXh0KGxpbmUpOworICAgICAgICBpbnQgbGFzdCA9IGJyZWFrZXIuZmlyc3QoKTsKKyAgICAgICAgaW50IGVuZCA9IGJyZWFrZXIubmV4dCgpOworICAgICAgICB3aGlsZSAoZW5kICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJgorICAgICAgICAgICAgICAgdmlzaWJsZVdpZHRoKGZtLCBsaW5lLnN1YnN0cmluZygwLCBlbmQpKSA8PSB3aWR0aCkgeworICAgICAgICAgICAgbGFzdCA9IGVuZDsKKyAgICAgICAgICAgIGVuZCA9IGJyZWFrZXIubmV4dCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsYXN0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgdmlzaWJsZVdpZHRoKEZvbnRNZXRyaWNzIGZtLCBTdHJpbmcgcykgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gcy5sZW5ndGgoKS0xOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKCEoY2ggPT0gJyAnIHx8IGNoID49IDB4MDAwQSAmJiBjaCA8PSAweDAwMEQgfHwgY2ggPT0gMHgyMDI4IHx8IGNoID09IDB4MjAyOSkpCisgICAgICAgICAgICAJcmV0dXJuIGZtLnN0cmluZ1dpZHRoKHMuc3Vic3RyaW5nKDAsaSsxKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisvLyA9PT09PT09PT09PT09PT0gVXRpbGl0eSA9PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSB2b2lkIGZpeEhleCgpIHsKKyAgICAgICAgaWYgKHNlbGVjdGlvbi5nZXRFbmQoKSA9PSAwKSByZXR1cm47CisgICAgICAgIGludCBzdG9yZSA9IDA7CisgICAgICAgIGludCBwbGFjZXMgPSAxOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgbWluID0gTWF0aC5taW4oOCxzZWxlY3Rpb24uZ2V0RW5kKCkpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pbjsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gY29udGVudHMuY2hhckF0KHNlbGVjdGlvbi5nZXRFbmQoKS0xLWkpOworICAgICAgICAgICAgaW50IHZhbHVlID0gQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShjaCk7CisgICAgICAgICAgICBpZiAodmFsdWUgPCAwIHx8IHZhbHVlID4gMTUpIGJyZWFrOworICAgICAgICAgICAgc3RvcmUgKz0gcGxhY2VzICogdmFsdWU7CisgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgcGxhY2VzICo9IDE2OworICAgICAgICB9CisgICAgICAgIFN0cmluZyBhZGQgPSAiIjsKKyAgICAgICAgaW50IGJvdHRvbSA9IHN0b3JlICYgMHhGRkZGOworICAgICAgICBpZiAoc3RvcmUgPj0gMHhEODAwMDAwMCAmJiBzdG9yZSA8IDB4REMwMDAwMDAKKyAgICAgICAgICAmJiBib3R0b20gPj0gMHhEQzAwICYmIGJvdHRvbSA8IDB4RTAwMCkgeyAvLyBzdXJyb2dhdGVzCisgICAgICAgICAgICBhZGQgPSAiIiArIChjaGFyKShzdG9yZSA+PiAxNikgKyAoY2hhcilib3R0b207CisgICAgICAgIH0gZWxzZSBpZiAoc3RvcmUgPiAweEZGRkYgJiYgc3RvcmUgPD0gMHgxMEZGRkYpIHsKKyAgICAgICAgICAgIHN0b3JlIC09IDB4MTAwMDA7CisgICAgICAgICAgICBhZGQgPSAiIiArIChjaGFyKSgoKHN0b3JlID4+IDEwKSAmIDB4M0ZGKSArIDB4RDgwMCkKKyAgICAgICAgICAgICAgKyAoY2hhcikoKHN0b3JlICYgMHgzRkYpICsgMHhEQzAwKTsKKyAgICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZSBpZiAoY291bnQgPj0gNCkgeworICAgICAgICAgICAgY291bnQgPSA0OworICAgICAgICAgICAgYWRkID0gIiIrKGNoYXIpKHN0b3JlICYgMHhGRkZGKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjb250ZW50cy5jaGFyQXQoc2VsZWN0aW9uLmdldEVuZCgpLTEpOworICAgICAgICAgICAgYWRkID0gaGV4KGNoKTsKKyAgICAgICAgICAgIGlmIChjaCA+PSAweERDMDAgJiYgY2ggPD0gMHhERkZGICYmIHNlbGVjdGlvbi5nZXRFbmQoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBjaCA9IGNvbnRlbnRzLmNoYXJBdChzZWxlY3Rpb24uZ2V0RW5kKCktMik7CisgICAgICAgICAgICAgICAgaWYgKGNoID49IDB4RDgwMCAmJiBjaCA8PSAweERCRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSAyOworICAgICAgICAgICAgICAgICAgICBhZGQgPSBoZXgoY2gpICsgYWRkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXBsYWNlUmFuZ2UoYWRkLCBzZWxlY3Rpb24uZ2V0RW5kKCktY291bnQsIHNlbGVjdGlvbi5nZXRFbmQoKSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGNoYXIgY2gpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IEludGVnZXIudG9TdHJpbmcoY2gsMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIHJlc3VsdCA9ICIwMDAwIi5zdWJzdHJpbmcocmVzdWx0Lmxlbmd0aCgpLDQpICsgcmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL1NlbGVjdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvU2VsZWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2Y4MGE0ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL1NlbGVjdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworaW1wb3J0IGphdmEudGV4dC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgU2VsZWN0aW9uIHsKKworICAgIHB1YmxpYyBpbnQgYW5jaG9yOworICAgIHB1YmxpYyBpbnQgY2FyZXQ7CisgICAgcHVibGljIGJvb2xlYW4gY2xpY2tBZnRlcjsKKworICAgIHB1YmxpYyBpbnQgZ2V0U3RhcnQoKSB7CisgICAgICAgIHJldHVybiBhbmNob3IgPCBjYXJldCA/IGFuY2hvciA6IGNhcmV0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0RW5kKCkgeworICAgICAgICByZXR1cm4gYW5jaG9yID4gY2FyZXQgPyBhbmNob3IgOiBjYXJldDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0NhcmV0KCkgeworICAgICAgICByZXR1cm4gYW5jaG9yID09IGNhcmV0OworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gc2V0KFNlbGVjdGlvbiBvdGhlcikgeworICAgICAgICBhbmNob3IgPSBvdGhlci5hbmNob3I7CisgICAgICAgIGNhcmV0ID0gb3RoZXIuY2FyZXQ7CisgICAgICAgIGNsaWNrQWZ0ZXIgPSBvdGhlci5jbGlja0FmdGVyOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHNldChpbnQgYW5jaG9yLCBpbnQgY2FyZXQsIGJvb2xlYW4gY2xpY2tBZnRlcikgeworICAgICAgICB0aGlzLmFuY2hvciA9IGFuY2hvcjsKKyAgICAgICAgdGhpcy5jYXJldCA9IGNhcmV0OworICAgICAgICB0aGlzLmNsaWNrQWZ0ZXIgPSBjbGlja0FmdGVyOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisgICAgICAgIFNlbGVjdGlvbiBvdGhlcjIgPSAoU2VsZWN0aW9uKW90aGVyOworICAgICAgICByZXR1cm4gYW5jaG9yID09IG90aGVyMi5hbmNob3IKKyAgICAgICAgICAmJiBjYXJldCA9PSBvdGhlcjIuY2FyZXQKKyAgICAgICAgICAmJiBjbGlja0FmdGVyID09IG90aGVyMi5jbGlja0FmdGVyOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTGVzc1RoYW4oU2VsZWN0aW9uIG90aGVyKSB7CisgICAgICAgIHJldHVybiBnZXRTdGFydCgpIDwgb3RoZXIuZ2V0RW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFNlbGVjdGlvbiBwaW4oU3RyaW5nIHRleHQpIHsKKyAgICAgICAgaWYgKGFuY2hvciA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGFuY2hvciA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIH0gZWxzZSBpZiAoYW5jaG9yIDwgMCkgeworICAgICAgICAgICAgYW5jaG9yID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2FyZXQgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBjYXJldCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBjbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIGlmIChjYXJldCA8IDApIHsKKyAgICAgICAgICAgIGNhcmV0ID0gMDsKKyAgICAgICAgICAgIGNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHN3YXAoU2VsZWN0aW9uIGFmdGVyKSB7CisgICAgICAgIGludCB0ZW1wID0gYW5jaG9yOworICAgICAgICBhbmNob3IgPSBhZnRlci5hbmNob3I7CisgICAgICAgIGFmdGVyLmFuY2hvciA9IHRlbXA7CisgICAgICAgIHRlbXAgPSBjYXJldDsKKyAgICAgICAgY2FyZXQgPSBhZnRlci5jYXJldDsKKyAgICAgICAgYWZ0ZXIuY2FyZXQgPSB0ZW1wOworICAgICAgICBib29sZWFuIGIgPSBjbGlja0FmdGVyOworICAgICAgICBjbGlja0FmdGVyID0gYWZ0ZXIuY2xpY2tBZnRlcjsKKyAgICAgICAgYWZ0ZXIuY2xpY2tBZnRlciA9IGI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gZml4QWZ0ZXJSZXBsYWNlKGludCBzdGFydCwgaW50IGVuZCwgaW50IGxlbikgeworICAgICAgICBpZiAoYW5jaG9yID49IHN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoYW5jaG9yIDwgZW5kKSBhbmNob3IgPSBlbmQ7CisgICAgICAgICAgICBhbmNob3IgPSBzdGFydCArIGxlbiArIGFuY2hvciAtIGVuZDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2FyZXQgPj0gc3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChjYXJldCA8IGVuZCkgY2FyZXQgPSBlbmQ7CisgICAgICAgICAgICBjYXJldCA9IHN0YXJ0ICsgbGVuICsgY2FyZXQgLSBlbmQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgICAgIC8vIE1hYyAmIFdpbmRvd3MgY29uc2lkZXJhYmx5IGRpZmZlcmVudAorICAgICAgICAvLyBNYWM6IGVuZCsrLiBJZiBzdGFydCE9ZW5kLCBzdGFydD1lbmQKKyAgICAgICAgLy8gIFNISUZUOiBtb3ZlIGVuZCByaWdodAorICAgICAgICAvLyAgQ1RMOiBubyBkaWZmZXJlbnQKKyAgICAgICAgLy8gV2luZG93czoKKyAgICAgICAgLy8gIFVOU0hJRlRFRDogaWYgc3RhcnQhPWVuZCwgc3RhcnQgPSBlbmQsIGVsc2Ugc3RhcnQ9ZW5kPWVuZCsxOworICAgICAgICAvLyAgICAgICBhbmNob3IgPSB0aXAgPSBzdGFydAorICAgICAgICAvLyAgU0hJRlQ6IHRpcCsrCisgICAgICAgIC8vICBDVEw6IGlmIHN0YXJ0IT1lbmQsIHN0YXJ0ID0gZW5kID0gbmV4dGJvdW5kKGVuZC0xKSwKKyAgICAgICAgLy8gICBlbHNlIHN0YXJ0PWVuZD1uZXh0Ym91bmQoZW5kKQorICAgICAgICAvLyAgICAgICBhbmNob3IgPSB0aXAgPSBzdGFydAorICAgICAgICAvLyAgQ1RML1NISUZUOiB0aXAgPSBuZXh0Ym91bmQodGlwKQorCisgICAgcHVibGljIFNlbGVjdGlvbiBuZXh0Qm91bmQoQnJlYWtJdGVyYXRvciBicmVha2VyLAorICAgICAgaW50IGRpcmVjdGlvbiwgYm9vbGVhbiBleHRlbmQpIHsKKyAgICAgICAgaWYgKCFleHRlbmQgJiYgYW5jaG9yICE9IGNhcmV0KSBjYXJldCAtPSBkaXJlY3Rpb247CisgICAgICAgIGNhcmV0ID0gbmV4dChjYXJldCwgYnJlYWtlciwgZGlyZWN0aW9uLCB0cnVlKTsKKyAgICAgICAgaWYgKCFleHRlbmQpIGFuY2hvciA9IGNhcmV0OworICAgICAgICBjbGlja0FmdGVyID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8vIGV4cGFuZCBzdGFydCBhbmQgZW5kIHRvIHdvcmQgYnJlYWtzLS1pZiB0aGV5IGFyZSBub3QgYWxyZWFkeSBvbiBvbmUKKyAgICBwdWJsaWMgdm9pZCBleHBhbmQoQnJlYWtJdGVyYXRvciBicmVha2VyKSB7CisgICAgICAgIGlmIChhbmNob3IgPD0gY2FyZXQpIHsKKyAgICAgICAgICAgIGFuY2hvciA9IG5leHQoYW5jaG9yLGJyZWFrZXIsLTEsZmFsc2UpOworICAgICAgICAgICAgY2FyZXQgPSBuZXh0KGNhcmV0LGJyZWFrZXIsMSxmYWxzZSk7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBicmVha2VyLmZvbGxvd2luZyhhbmNob3IpOworICAgICAgICAgICAgICAgIGFuY2hvciA9IGJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjYXJldCA9IGJyZWFrZXIuZm9sbG93aW5nKGNhcmV0LTEpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYW5jaG9yID0gbmV4dChhbmNob3IsYnJlYWtlciwxLGZhbHNlKTsKKyAgICAgICAgICAgIGNhcmV0ID0gbmV4dChjYXJldCxicmVha2VyLC0xLGZhbHNlKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuZm9sbG93aW5nKGNhcmV0KTsKKyAgICAgICAgICAgICAgICBjYXJldCA9IGJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhbmNob3IgPSBicmVha2VyLmZvbGxvd2luZyhhbmNob3ItMSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBkaWZmZXJlbnQgPSBmYWxzZSAtIG1vdmUgdG8gbmV4dCBib3VuZGFyeSwgdW5sZXNzIG9uIG9uZQorICAgIC8vIHRydWUgLSBtb3ZlIHRvIG5leHQgYm91bmRhcnksIGV2ZW4gaWYgb24gb25lCisgICAgcHVibGljIHN0YXRpYyBpbnQgbmV4dChpbnQgcG9zaXRpb24sIEJyZWFrSXRlcmF0b3IgYnJlYWtlciwKKyAgICAgIGludCBkaXJlY3Rpb24sIGJvb2xlYW4gZGlmZmVyZW50KSB7CisgICAgICAgIGlmICghZGlmZmVyZW50KSBwb3NpdGlvbiAtPSBkaXJlY3Rpb247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID4gMCkgeworICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gYnJlYWtlci5mb2xsb3dpbmcocG9zaXRpb24pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBicmVha2VyLmZvbGxvd2luZyhwb3NpdGlvbi0xKTsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hN2U4ZDM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1NoYXJlZCB1dGlsaXRpZXMgZm9yIGRlbW8gYXBwbGljYXRpb25zIGFuZCBBcHBsZXRzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9udW1iZXIvQ3VycmVuY3lEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vbnVtYmVyL0N1cnJlbmN5RGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MTJhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vbnVtYmVyL0N1cnJlbmN5RGVtby5qYXZhCkBAIC0wLDAgKzEsMTEzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogTWFyayBEYXZpcworKiBDcmVhdGVkOiBNYXkgMjIgMjAwMworKiBTaW5jZTogSUNVIDIuNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8ubnVtYmVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworLyoqCisgKiBEZW1vbnN0cmF0aW9uIGNvZGUgdG8gaWxsdXN0cmF0ZSBob3cgdG8gb2J0YWluIElDVSAyLjYtbGlrZSBjdXJyZW5jeQorICogYmVoYXZpb3IgdXNpbmcgcHJlLUlDVSAyLjYgSUNVNEouCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqLworcHVibGljIGNsYXNzIEN1cnJlbmN5RGVtbyB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIHRlc3RGb3JtYXRIYWNrKHRydWUpOworICAgIH0KKworICAgIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lGb3JtYXQoQ3VycmVuY3kgY3VycmVuY3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gSUNVMjYpIHsKKyAgICAgICAgLy8gY29kZSBmb3IgSUNVIDIuNgorICAgICAgICBpZiAoSUNVMjYpIHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCByZXN1bHQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRDdXJyZW5jeShjdXJyZW5jeSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gdWdseSB3b3JrLWFyb3VuZCBmb3IgMi40CisgICAgICAgIERlY2ltYWxGb3JtYXQgcmVzdWx0ID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoZGlzcGxheUxvY2FsZSk7CisgICAgICAgIEhhY2tDdXJyZW5jeUluZm8gaGFjayA9IChIYWNrQ3VycmVuY3lJbmZvKShoYWNrRGF0YS5nZXQoY3VycmVuY3kuZ2V0Q3VycmVuY3lDb2RlKCkpKTsKKyAgICAgICAgcmVzdWx0LnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhoYWNrLmRlY2ltYWxzKTsKKyAgICAgICAgcmVzdWx0LnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhoYWNrLmRlY2ltYWxzKTsKKyAgICAgICAgcmVzdWx0LnNldFJvdW5kaW5nSW5jcmVtZW50KGhhY2sucm91bmRpbmcpOworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gcmVzdWx0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIHN5bWJvbHMuc2V0Q3VycmVuY3lTeW1ib2woaGFjay5zeW1ib2wpOworICAgICAgICByZXN1bHQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltYm9scyk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICBzdGF0aWMgTWFwIGhhY2tEYXRhID0gbmV3IEhhc2hNYXAoKTsKKyAgICBzdGF0aWMgY2xhc3MgSGFja0N1cnJlbmN5SW5mbyB7CisgICAgICAgIGludCBkZWNpbWFsczsKKyAgICAgICAgZG91YmxlIHJvdW5kaW5nOworICAgICAgICBTdHJpbmcgc3ltYm9sOworICAgICAgICBIYWNrQ3VycmVuY3lJbmZvKGludCBkZWNpbWFscywgZG91YmxlIHJvdW5kaW5nLCBTdHJpbmcgc3ltYm9sKSB7CisgICAgICAgICAgICB0aGlzLmRlY2ltYWxzID0gZGVjaW1hbHM7CisgICAgICAgICAgICB0aGlzLnJvdW5kaW5nID0gcm91bmRpbmc7CisgICAgICAgICAgICB0aGlzLnN5bWJvbCA9IHN5bWJvbDsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgeworICAgICAgICBoYWNrRGF0YS5wdXQoIlVTRCIsIG5ldyBIYWNrQ3VycmVuY3lJbmZvKDIsIDAsICIkIikpOworICAgICAgICBoYWNrRGF0YS5wdXQoIkdCUCIsIG5ldyBIYWNrQ3VycmVuY3lJbmZvKDIsIDAsICJcdTAwQTMiKSk7CisgICAgICAgIGhhY2tEYXRhLnB1dCgiSlBZIiwgbmV3IEhhY2tDdXJyZW5jeUluZm8oMCwgMCwgIlx1MDBBNSIpKTsKKyAgICAgICAgaGFja0RhdGEucHV0KCJFVVIiLCBuZXcgSGFja0N1cnJlbmN5SW5mbygyLCAwLCAiXHUyMEFDIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdhbGsgdGhyb3VnaCBhbGwgbG9jYWxlcyBhbmQgY29tcGFyZSB0aGUgb3V0cHV0IG9mIHRoZSBJQ1UyNgorICAgICAqIGN1cnJlbmN5IGZvcm1hdCB3aXRoIHRoZSAiaGFja2VkIiBjdXJyZW5jeSBmb3JtYXQuCisgICAgICogQHBhcmFtIHF1aWV0IGlmIHRydWUsIG9ubHkgZGlzcGxheSBkaXNjcmVwYW5jaWVzLiAgT3RoZXJ3aXNlLAorICAgICAqIGRpc3BsYXkgYWxsIHJlc3VsdHMuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgdGVzdEZvcm1hdEhhY2soYm9vbGVhbiBxdWlldCkgeworICAgICAgICBTdHJpbmdbXSB0ZXN0Q3VycmVuY2llcyA9IHsiVVNEIiwiR0JQIiwiSlBZIiwiRVVSIn07CisgICAgICAgIExvY2FsZVtdIHRlc3RMb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0TG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgLy8gc2luY2Ugbm9uZSBvZiB0aGlzIHNob3VsZCB2YXJ5IGJ5IGNvdW50cnksIHdlJ2xsIGp1c3QgZG8gYnkgbGFuZ3VhZ2UKKyAgICAgICAgICAgIGlmICghdGVzdExvY2FsZXNbaV0uZ2V0Q291bnRyeSgpLmVxdWFscygiIikpIGNvbnRpbnVlOworICAgICAgICAgICAgYm9vbGVhbiBub091dHB1dCA9IHRydWU7CisgICAgICAgICAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRlc3RMb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgICAgIG5vT3V0cHV0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RDdXJyZW5jaWVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0IG5mMjYgPSBnZXRDdXJyZW5jeUZvcm1hdChDdXJyZW5jeS5nZXRJbnN0YW5jZSh0ZXN0Q3VycmVuY2llc1tqXSksIHRlc3RMb2NhbGVzW2ldLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyMjYgPSBuZjI2LmZvcm1hdCgxMjM0LjU2Nyk7CisgICAgICAgICAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcdCIgKyBVdGlsaXR5LmVzY2FwZShzdHIyNikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQgbmYyNCA9IGdldEN1cnJlbmN5Rm9ybWF0KEN1cnJlbmN5LmdldEluc3RhbmNlKHRlc3RDdXJyZW5jaWVzW2pdKSwgdGVzdExvY2FsZXNbaV0sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyMjQgPSBuZjI0LmZvcm1hdCgxMjM0LjU2Nyk7CisgICAgICAgICAgICAgICAgaWYgKCFzdHIyNC5lcXVhbHMoc3RyMjYpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub091dHB1dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRlc3RMb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbm9PdXRwdXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAocXVpZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlx0IiArIFV0aWxpdHkuZXNjYXBlKHN0cjI2KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICgiICsgVXRpbGl0eS5lc2NhcGUoc3RyMjQpICsgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW5vT3V0cHV0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX0RFTU8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYTc0ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX0RFTU8uamF2YQpAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJiaTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CisKKy8qKgorICogVGhpcyByZXNvdXJjZSBidW5kbGUgaXMgaW5jbHVkZWQgZm9yIHRlc3RpbmcgYW5kIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seS4KKyAqIEl0IGFwcGxpZXMgdGhlIGRpY3Rpb25hcnktYmFzZWQgYWxnb3JpdGhtIHRvIEVuZ2xpc2ggdGV4dCB0aGF0IGhhcyBoYWQgYWxsIHRoZQorICogc3BhY2VzIHJlbW92ZWQuICBPbmNlIHdlIGhhdmUgZ29vZCB0ZXN0IGNhc2VzIGZvciBUaGFpLCB3ZSB3aWxsIHJlcGxhY2UgdGhpcworICogd2l0aCBnb29kIHJlc291cmNlIGRhdGEgKGFuZCBhIGdvb2QgZGljdGlvbmFyeSBmaWxlKSBmb3IgVGhhaQorICovCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX0RFTU8gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX05BTUUgPSAiL2NvbS9pYm0vZGF0YS9taXNjL2VuZ2xpc2guZGljdCI7CisKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgZmluYWwgYm9vbGVhbiBleGlzdHMgPSBJQ1VEYXRhLmV4aXN0cyhEQVRBX05BTUUpOworCisgICAgICAgIGlmICghZXhpc3RzKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE9iamVjdFswXVswXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICAvLyBuYW1lcyBvZiBjbGFzc2VzIHRvIGluc3RhbnRpYXRlIGZvciB0aGUgZGlmZmVyZW50IGtpbmRzIG9mIGJyZWFrCisgICAgICAgICAgICAvLyBpdGVyYXRvci4gIE5vdGljZSB3ZSdyZSBub3cgdXNpbmcgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgICAgICAgLy8gZm9yIHdvcmQgYW5kIGxpbmUgYnJlYWtpbmcuCisgICAgICAgICAgICB7ICAgIkJyZWFrSXRlcmF0b3JDbGFzc2VzIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsCisgICAgICAgICAgICAgICAgICAgIC8vIHdvcmQtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgIkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAvLyBsaW5lLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiB9IC8vIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIHNhbWUgd29yZC1icmVha2luZyBydWxlcyBhcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBkZWZhdWx0CisgICAgICAgICAgICAvLyByZXNvdXJjZSwgZXhjZXB0IHRoYXQgdGhlIExhdGluIGxldHRlcnMsIGFwb3N0cm9waGUsIGFuZCBoeXBoZW4gYXJlCisgICAgICAgICAgICAvLyBzcGVjaWZpZWQgYXMgZGljdGlvbmFyeSBjaGFyYWN0ZXJzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIldvcmRCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzLAorICAgICAgICAgICAgICAgIC8vIGFsbCBvZiB3aGljaCBzaG91bGQgbm90IGluZmx1ZW5jZSB0aGUgYWxnb3JpdGhtCisgICAgICAgICAgICAgICAgIiRfaWdub3JlXz1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBsb3dlciBhbmQgdXBwZXIgY2FzZSBSb21hbiBsZXR0ZXJzLCBhcG9zdHJvcGh5IGFuZCBkYXNoIGFyZQorICAgICAgICAgICAgICAgIC8vIGluIHRoZSBFbmdsaXNoIGRpY3Rpb25hcnkKKyAgICAgICAgICAgICAgICArIiRfZGljdGlvbmFyeV89W2EtekEtWlxcJ1xcLV07IgorCisgICAgICAgICAgICAgICAgLy8gSGluZGkgcGhyYXNlIHNlcGFyYXRvciwga2FuamksIGthdGFrYW5hLCBoaXJhZ2FuYSwgQ0pLIGRpYWNyaXRpY2FscywKKyAgICAgICAgICAgICAgICAvLyBvdGhlciBsZXR0ZXJzLCBhbmQgZGlnaXRzCisgICAgICAgICAgICAgICAgKyIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorICAgICAgICAgICAgICAgICAgICArICIka2Fuamk9W1x1MzAwNVx1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRrYXRhPVtcdTMwOTktXHUzMDljXHUzMGExLVx1MzBmZV07IgorICAgICAgICAgICAgICAgICAgICArICIkaGlyYT1bXHUzMDQxLVx1MzA5ZVx1MzBmY107IgorICAgICAgICAgICAgICAgICAgICArICIkbGV0PVtbWzpMOl1bOk1jOl1dLVska2Fuamkka2F0YSRoaXJhXV07IgorICAgICAgICAgICAgICAgICAgICArICIkZGd0PVs6TjpdOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyBkYXNoZXMsIGFwb3N0cm9waGVzLCBhbmQgcXVvdGF0aW9uIG1hcmtzCisgICAgICAgICAgICAgICAgKyIkbWlkX3dvcmQ9W1s6UGQ6XVx1MDBhZFx1MjAyN1xcXCJcXFwnXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyBhcG9zdHJvcGhlcywgcW91dGF0aW9uIG1hcmtzLCBwZXJpb2RzLCBjb21tYXMsIGFuZCB0aGUgQXJhYmljCisgICAgICAgICAgICAgICAgLy8gZGVjaW1hbCBwb2ludAorICAgICAgICAgICAgICAgICsiJG1pZF9udW09W1xcXCJcXFwnXFwsXHUwNjZiXFwuXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGVyaW9kLCB0aGUgbnVtYmVyIHNpZ24sIGFuZCBhbGwgY3VycmVuY3kgc3ltYm9scyBleGNlcHQgdGhlIGNlbnRzIHNpZ24KKyAgICAgICAgICAgICAgICArIiRwcmVfbnVtPVtbWzpTYzpdLVtcdTAwYTJdXVxcI1xcLl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgYXQgdGhlIGVuZCBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gdGhlIHBlcmNlbnQsIHBlci10aG91c2FuZCwgcGVyLXRlbi10aG91c2FuZCwgYW5kIEFyYWJpYyBwZXJjZW50CisgICAgICAgICAgICAgICAgLy8gc2lnbnMsIHRoZSBjZW50cyBzaWduLCBhbmQgdGhlIGFtcGVyc2FuZAorICAgICAgICAgICAgICAgICsiJHBvc3RfbnVtPVtcXCVcXCZcdTAwYTJcdTA2NmFcdTIwMzBcdTIwMzFdOyIKKworICAgICAgICAgICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yczogY3VycmVudGx5IExGLCBGRiwgUFMsIGFuZCBMUworICAgICAgICAgICAgICAgICsiJGxzPVtcblx1MDAwY1x1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogYWxsIHNwYWNlIHNlcGFyYXRvcnMgYW5kIHRoZSB0YWIgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKyIkd3M9W1s6WnM6XVx0XTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgaXMgYSBzZXF1ZW5jZSBvZiBsZXR0ZXJzIHRoYXQgbWF5IGNvbnRhaW4gaW50ZXJuYWwKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGxldHRlciBhbmQKKyAgICAgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cKKyAgICAgICAgICAgICAgICArIiR3b3JkPSgkbGV0KygkbWlkX3dvcmQkbGV0KykqJGRhbmRhPyk7IgorCisgICAgICAgICAgICAgICAgLy8gYSBudW1iZXIgaXMgYSBzZXF1ZW5jZSBvZiBkaWdpdHMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgZGlnaXQgYW5kCisgICAgICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgorICAgICAgICAgICAgICAgICsiJG51bWJlcj0oJGRndCsoJG1pZF9udW0kZGd0KykqKTsiCisKKyAgICAgICAgICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zCisgICAgICAgICAgICAgICAgLy8gKHRoaXMgd2lsbCBjYXVzZSBwdW5jdHVhdGlvbiBtYXJrcyB0aGF0IGFyZW4ndCBjb25zaWRlcmVkCisgICAgICAgICAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQorICAgICAgICAgICAgICAgICsiLjsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIGFueSBzZXF1ZW5jZSBvZiBjb250aWd1b3VzIHdvcmRzIGFuZCBudW1iZXJzCisgICAgICAgICAgICAgICAgLy8gKGluY2x1ZGluZyBqdXN0IG9uZSBvZiBlaXRoZXIpLCBwbHVzIGFuIG9wdGlvbmFsIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArIiR3b3JkPygkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW5kIHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgICAgICAvLyB0aGF0IHN0YXJ0cyB3aXRoIGEgbnVtYmVyLXByZWZpeCBjaGFyYWN0ZXIgYW5kIGEgbnVtYmVyLAorICAgICAgICAgICAgICAgIC8vIGFuZCBtYXkgZW5kIHdpdGggYSBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICsiJHByZV9udW0oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2Ygd2hpdGVzcGFjZSAob3B0aW9uYWxseSB3aXRoIGEgc2luZ2xlIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbGluZSBzZXBhcmF0b3Igb3IgQ1JMRiBzZXF1ZW5jZSkKKyAgICAgICAgICAgICAgICArIiR3cypccj8kbHM/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYXRha2FuYQorICAgICAgICAgICAgICAgICsiJGthdGEqOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBIaXJhZ2FuYQorICAgICAgICAgICAgICAgICsiJGhpcmEqOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYW5qaQorICAgICAgICAgICAgICAgICsiJGthbmppKjsiIH0sCisKKyAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSBsaW5lLWJyZWFraW5nIHJ1bGVzIGFzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIC8vIHJlc291cmNlLCBleGNlcHQgdGhhdCB0aGUgTGF0aW4gbGV0dGVycywgYXBvc3Ryb3BoZSwgYW5kIGh5cGhlbiBhcmUKKyAgICAgICAgICAgIC8vIHNwZWNpZmllZCBhcyBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIHsgICAiTGluZUJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIKKworICAgICAgICAgICAgICAgIC8vIGxvd2VyIGFuZCB1cHBlciBjYXNlIFJvbWFuIGxldHRlcnMsIGFwb3N0cm9waHkgYW5kIGRhc2gKKyAgICAgICAgICAgICAgICAvLyBhcmUgaW4gdGhlIEVuZ2xpc2ggZGljdGlvbmFyeQorICAgICAgICAgICAgICAgICsiJF9kaWN0aW9uYXJ5Xz1bYS16QS1aXFwnXFwtXTsiCisKKyAgICAgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9ycworICAgICAgICAgICAgICAgICsiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgY2F1c2UgYSBicmVhazogRVRYLCB0YWIsIExGLCBGRiwgTFMsIGFuZCBQUworICAgICAgICAgICAgICAgICsiJGJyZWFrPVtcdTAwMDNcdFxuXGZcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgcHJldmVudCBhIGJyZWFrOiB0aGUgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgICAgICAgICAgLy8gYW5kIHNpbWlsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICsiJG5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgorCisgICAgICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogc3BhY2Ugc2VwYXJhdG9ycyBhbmQgY29udHJvbCBjaGFyYWN0ZXJzLCBleGNlcHQgZm9yCisgICAgICAgICAgICAgICAgLy8gQ1IgYW5kIHRoZSBvdGhlciBjaGFyYWN0ZXJzIG1lbnRpb25lZCBhYm92ZQorICAgICAgICAgICAgICAgICsiJHNwYWNlPVtbWzpaczpdWzpDYzpdXS1bJG5ic3AkYnJlYWtccl1dOyIKKworICAgICAgICAgICAgICAgIC8vIGRhc2hlczogZGFzaCBwdW5jdHVhdGlvbiBhbmQgdGhlIGRpc2NyZXRpb25hcnkgaHlwaGVuLCBleGNlcHQgZm9yCisgICAgICAgICAgICAgICAgLy8gbm9uLWJyZWFraW5nIGh5cGhlbnMKKyAgICAgICAgICAgICAgICArIiRkYXNoPVtbWzpQZDpdXHUwMGFkXS1bJG5ic3BdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgcHJlY2VkZSBpdDogY3VycmVuY3kgc3ltYm9scworICAgICAgICAgICAgICAgIC8vIChleGNlcHQgdGhlIGNlbnRzIHNpZ24pIGFuZCBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgICAgICsiJHByZV93b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgZm9sbG93IGl0OiBlbmRpbmcgcHVuY3R1YXRpb24sCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgcHVuY3R1YXRpb24gdGhhdCB1c3VhbGx5IG9jY3VycyBhdCB0aGUgZW5kIG9mIGEgc2VudGVuY2UsCisgICAgICAgICAgICAgICAgLy8gc21hbGwgS2FuYSBjaGFyYWN0ZXJzLCBzb21lIENKSyBkaWFjcml0aWNzLCBldGMuCisgICAgICAgICAgICAgICAgKyIkcG9zdF93b3JkPVtbOlBlOl1cXCFcXFwiXFxcJ1xcJVxcLlxcLFxcOlxcO1xcP1x1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzQiCisgICAgICAgICAgICAgICAgICAgICsgIlx1MjEwM1x1MjEwNVx1MjEwOVx1MzAwMVx1MzAwMlx1MzAwNVx1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2MyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhlXHUzMDk5LVx1MzA5ZVx1MzBhMVx1MzBhM1x1MzBhNVx1MzBhN1x1MzBhOSIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwYyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHVmZjBlXHVmZjFmXTsiCisKKyAgICAgICAgICAgICAgICAvLyBLYW5qaTogYWN0dWFsbHkgaW5jbHVkZXMgYm90aCBLYW5qaSBhbmQgS2FuYSwgZXhjZXB0IGZvciBzbWFsbCBLYW5hIGFuZAorICAgICAgICAgICAgICAgIC8vIENKSyBkaWFjcml0aWNzCisgICAgICAgICAgICAgICAgKyIka2Fuamk9W1tcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZFx1MzA0MS1cdTMwOTRcdTMwYTEtXHUzMGZhXS1bJHBvc3Rfd29yZCRfaWdub3JlX11dOyIKKworICAgICAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgICAgICsiJGRpZ2l0PVtbOk5kOl1bOk5vOl1dOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IHBlcmlvZHMgYW5kIGNvbW1hcworICAgICAgICAgICAgICAgICsiJG1pZF9udW09W1xcLlxcLF07IgorCisgICAgICAgICAgICAgICAgLy8gZXZlcnl0aGluZyBub3QgbWVudGlvbmVkIGFib3ZlLCBwbHVzIHRoZSBxdW90ZSBtYXJrcyAod2hpY2ggYXJlIGJvdGgKKyAgICAgICAgICAgICAgICAvLyA8cHJlLXdvcmQ+LCA8cG9zdC13b3JkPiwgYW5kIDxjaGFyPikKKyAgICAgICAgICAgICAgICArIiRjaGFyPVteJGJyZWFrJHNwYWNlJGRhc2gka2FuamkkbmJzcCRfaWdub3JlXyRwcmVfd29yZCRwb3N0X3dvcmQkbWlkX251bSRkYW5kYVxyXFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIGEgIm51bWJlciIgaXMgYSBydW4gb2YgcHJlZml4IGNoYXJhY3RlcnMgYW5kIGRhc2hlcywgZm9sbG93ZWQgYnkgb25lIG9yCisgICAgICAgICAgICAgICAgLy8gbW9yZSBkaWdpdHMgd2l0aCBpc29sYXRlZCBudW1iZXItcHVuY3R1YXRpb24gY2hhcmFjdGVycyBpbnRlcnNwZXJzZWQKKyAgICAgICAgICAgICAgICArIiRudW1iZXI9KFskcHJlX3dvcmQkZGFzaF0qJGRpZ2l0KygkbWlkX251bSRkaWdpdCspKik7IgorCisgICAgICAgICAgICAgICAgLy8gdGhlIGJhc2ljIGNvcmUgb2YgYSB3b3JkIGNhbiBiZSBlaXRoZXIgYSAibnVtYmVyIiBhcyBkZWZpbmVkIGFib3ZlLCBhIHNpbmdsZQorICAgICAgICAgICAgICAgIC8vICJLYW5qaSIgY2hhcmFjdGVyLCBvciBhIHJ1biBvZiBhbnkgbnVtYmVyIG9mIG5vdC1leHBsaWNpdGx5LW1lbnRpb25lZAorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgKHRoaXMgaW5jbHVkZXMgTGF0aW4gbGV0dGVycykKKyAgICAgICAgICAgICAgICArIiR3b3JkX2NvcmU9KFskcHJlX3dvcmQkY2hhcl0qfCRrYW5qaXwkbnVtYmVyKTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgbWF5IGVuZCB3aXRoIGFuIG9wdGlvbmFsIHN1ZmZpeCB0aGF0IGJlIGVpdGhlciBhIHJ1biBvZiBvbmUgb3IKKyAgICAgICAgICAgICAgICAvLyBtb3JlIGRhc2hlcyBvciBhIHJ1biBvZiB3b3JkLXN1ZmZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbAorICAgICAgICAgICAgICAgIC8vIHJ1biBvZiB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgKyIkd29yZF9zdWZmaXg9KCgkZGFzaCt8JHBvc3Rfd29yZCopJHNwYWNlKik7IgorCisgICAgICAgICAgICAgICAgLy8gYSB3b3JkLCB0aHVzLCBpcyBhbiBvcHRpb25hbCBydW4gb2Ygd29yZC1wcmVmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgY29yZSBhbmQgYSB3b3JkIHN1ZmZpeCAodGhlIHN5bnRheCBvZiA8d29yZC1jb3JlPiBhbmQgPHdvcmQtc3VmZml4PgorICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFsbG93cyBlaXRoZXIgb2YgdGhlbSB0byBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nLCBwdXR0aW5nIGEgYnJlYWsKKyAgICAgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaW5ncyBsaWtlICIpKCIgb3IgImFhYShhYWEiCisgICAgICAgICAgICAgICAgKyIkd29yZD0oJHByZV93b3JkKiR3b3JkX2NvcmUkd29yZF9zdWZmaXgpOyIKKworICAgICAgICAgICAgICAgIC8vIGZpbmFsbHksIHRoZSBydWxlIHRoYXQgZG9lcyB0aGUgd29yazogS2VlcCB0b2dldGhlciBhbnkgcnVuIG9mIHdvcmRzIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBhcmUgam9pbmVkIGJ5IHJ1bnMgb2Ygb25lIG9mIG1vcmUgbm9uLXNwYWNpbmcgbWFyay4gIEFsc28ga2VlcCBhIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbGluZS1icmVhayBjaGFyYWN0ZXIgb3IgQ1JMRiBjb21iaW5hdGlvbiB3aXRoIHRoZSB3b3JkLiAgKGxpbmUgc2VwYXJhdG9ycworICAgICAgICAgICAgICAgIC8vICJ3aW4iIG92ZXIgbmJzcCdzKQorICAgICAgICAgICAgICAgICsiJHdvcmQoJG5ic3ArJHdvcmQpKlxyPyRicmVhaz87IiB9LAorCisgICAgICAgICAgICAvLyB0aGVzZSB0d28gcmVzb3VyY2VzIHNwZWNpZnkgdGhlIHBhdGhuYW1lcyBvZiB0aGUgZGljdGlvbmFyeSBmaWxlcyB0bworICAgICAgICAgICAgLy8gdXNlIGZvciB3b3JkIGJyZWFraW5nIGFuZCBsaW5lIGJyZWFraW5nLiAgQm90aCBjdXJyZW50bHkgcmVmZXIgdG8gCisgICAgICAgICAgICAvLyBhIGZpbGUgY2FsbGVkIGVuZ2xpc2guZGljdCBwbGFjZWQgaW4gY29tLmlibS5pY3UuaW1wbC5kYXRhCisgICAgICAgICAgICAvLyBzb21ld2hlcmUgaW4gdGhlIGNsYXNzIHBhdGguICBJdCdzIGltcG9ydGFudCB0byBub3RlIHRoYXQKKyAgICAgICAgICAgIC8vIGVuZ2xpc2guZGljdCB3YXMgY3JlYXRlZCBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LCBhbmQgZG9lc24ndAorICAgICAgICAgICAgLy8gY29tZSBhbnl3aGVyZSBjbG9zZSB0byBiZWluZyBhbiBleGhhdXN0aXZlIGRpY3Rpb25hcnkgb2YgRW5nbGlzaAorICAgICAgICAgICAgLy8gd29yZHMgKGJhc2ljYWxseSwgaXQgY29udGFpbnMgYWxsIHRoZSB3b3JkcyBpbiB0aGUgRGVjbGFyYXRpb24gb2YKKyAgICAgICAgICAgIC8vIEluZGVwZW5kZW5jZSwgYW5kIHRoZSBSZXZpc2VkIFN0YW5kYXJkIFZlcnNpb24gb2YgdGhlIGJvb2sgb2YgR2VuZXNpcywKKyAgICAgICAgICAgIC8vIHBsdXMgYSBmZXcgb3RoZXIgd29yZHMgdGhyb3duIGluIHRvIHNob3cgbW9yZSBpbnRlcmVzdGluZyBjYXNlcykuCisgICAgICAgICAgICAvLyB7ICJXb3JkQnJlYWtEaWN0aW9uYXJ5IiwgImNvbVxcaWJtXFx0ZXh0XFxyZXNvdXJjZXNcXGVuZ2xpc2guZGljdCIgfSwKKyAgICAgICAgICAgIC8vIHsgIkxpbmVCcmVha0RpY3Rpb25hcnkiLCAiY29tXFxpYm1cXHRleHRcXHJlc291cmNlc1xcZW5nbGlzaC5kaWN0IiB9CisgICAgICAgICAgICB7ICAgIldvcmRCcmVha0RpY3Rpb25hcnkiLCBEQVRBX05BTUUgfSwgCisgICAgICAgICAgICB7ICAgIkxpbmVCcmVha0RpY3Rpb25hcnkiLCBEQVRBX05BTUUgfQorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0RCQklEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9EQkJJRGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAwNjc3N2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9EQkJJRGVtby5qYXZhCkBAIC0wLDAgKzEsNDkyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYmJpOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtRXZlbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRBcmVhOworaW1wb3J0IGphdmF4LnN3aW5nLkpTY3JvbGxQYW5lOworaW1wb3J0IGphdmF4LnN3aW5nLkJvcmRlckZhY3Rvcnk7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKKworcHVibGljIGNsYXNzIERCQklEZW1vIGV4dGVuZHMgRGVtb0FwcGxldAoreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmd2W10pIHsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQobmV3IExvY2FsZSgiZW4iLCAiVVMiLCAiREVNTyIpKTsKKyAgICAgICAgbmV3IERCQklEZW1vKCkuc2hvd0RlbW8oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRnJhbWUgY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KSB7CisgICAgICAgIHJldHVybiBuZXcgREJCSUZyYW1lKGFwcGxldCk7CisgICAgfQorfQorCisKKworY2xhc3MgREJCSUZyYW1lIGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBJdGVtTGlzdGVuZXIKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3JlZGl0U3RyaW5nID0KKyAgICAgICAgInYxLjFhOSwgRGVtbyI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklFTERfQ09MVU1OUyA9IDQ1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEZvbnQgY2hvaWNlRm9udCA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHByaXZhdGUgRGVtb0FwcGxldCBhcHBsZXQ7CisKKyAgICBmaW5hbCBTdHJpbmcgcmlnaHQgPSAiLS0+IjsKKyAgICBmaW5hbCBTdHJpbmcgbGVmdCA9ICI8LS0iOworCisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGl0ZXI7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc2N0cmxkb3duXyA9IGZhbHNlOworCitKVGV4dEFyZWEgdGV4dDsKKy8vICAgIFRleHRBcmVhIHRleHQ7CisgICAgQ2hvaWNlIGJvdW5kOworCisgICAgcHVibGljIERCQklGcmFtZShEZW1vQXBwbGV0IGFwcGxldCkKKyAgICB7CisgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICBpbml0KCk7CisgICAgICAgIHN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIHJ1bigpCisgICAgeworICAgICAgICAvKgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjaGVja0NoYW5nZSgpOworICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCgyNTApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBpbnQgcywgZTsKKyAgICBpbnQgdHMsIHRlOworCisgICAgcHVibGljIHZvaWQgY2hlY2tDaGFuZ2UoKQorICAgIHsKKy8vICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNoZWNrQ2hhbmdlLi4uIik7CisgICAgICAgIGlmICgodGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGKSAhPSB0cyB8fAorICAgICAgICAgICAgKHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkYpICE9IHRlKSB7CisKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wUyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wRSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPiIpOworLy8gICAgICAgICAgc2VsZWN0KDAsIDApOworLy8gICAgICAgICAgc2VsZWN0KHRlbXBTLCB0ZW1wRSk7CisgICAgICAgICAgICAvL3NlbGVjdCh0ZW1wUyAtICh0cyAtIHMpLCB0ZW1wRSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPCIpOworCisKKy8vICAgICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiICAgICBzKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisvLyAgICAgICAgICBzZWxlY3QocyAtICh0cyAtIHMpLCBlIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oInMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImxrZHNsa3NqIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNJbiwgaW50IGVJbikKKyAgICB7CisgICAgICAgIHMgPSBzSW47CisgICAgICAgIGUgPSBlSW47CisgICAgICAgIHRleHQuc2VsZWN0KHMsIGUpOworICAgICAgICB0cyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgdGUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworLy8gICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIHsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIisodHMtcykrIiwiKyh0ZS1lKSk7CisvLyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIHM7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgfQorCisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gZTsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHN5bmNocm9uaXplZCB2b2lkIHNlbGVjdFJhbmdlKGludCBzLCBpbnQgZSkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvL2lmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworICAgICAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICAgICAgc2VsZWN0KHMsZSk7CisgICAgICAgICAgICAvL30KKy8vICAgICAgICAgIGlmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQUdIISBzZWxlY3QoIitzKyIsIitlKyIpIC0+ICgiKworLy8gICAgICAgICAgICAgIGdldFNlbGVjdGlvblN0YXJ0KCkrIiwiK2dldFNlbGVjdGlvbkVuZCgpKyIpIik7CisvLyAgICAgICAgICAgICAgdGV4dC5zZWxlY3QocyAtIChnZXRTZWxlY3Rpb25TdGFydCgpIC0gcyksIGUgLSAoZ2V0U2VsZWN0aW9uRW5kKCkgLSBlKSk7CisvLyAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgeworICAgICAgICBidWlsZEdVSSgpOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICB9CisKKworICAgIHZvaWQgYWRkV2l0aEZvbnQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGZvbywgRm9udCBmb250KSB7CisgICAgICAgIGlmIChmb250ICE9IG51bGwpCisgICAgICAgICAgICBmb28uc2V0Rm9udChmb250KTsKKyAgICAgICAgY29udGFpbmVyLmFkZChmb28pOworICAgIH0KKworCisKKyAgIHB1YmxpYyB2b2lkIGJ1aWxkR1VJKCkKKyAgICB7CisgICAgICAgIHNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgUGFuZWwgdG9wUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgdGl0bGVMYWJlbCA9CisgICAgICAgICAgICAgICAgbmV3IExhYmVsKCJUZXh0IEJvdW5kYXJ5IERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQodGl0bGVMYWJlbCk7CisKKyAgICAgICAgICAgIC8vTGFiZWwgZGVtbz1uZXcgTGFiZWwoY3JlZGl0U3RyaW5nLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgLy9kZW1vLnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZChkZW1vKTsKKworICAgICAgICAgICAgUGFuZWwgY2hvaWNlUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgZGVtbzE9bmV3IExhYmVsKCJCb3VuZGFyaWVzIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBkZW1vMS5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoZGVtbzEpOworCisgICAgICAgICAgICBib3VuZCA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIlNlbnRlbmNlIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJMaW5lIEJyZWFrIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJXb3JkIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJDaGFyIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW1MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGlmIChjaG9pY2VGb250ICE9IG51bGwpCisgICAgICAgICAgICAgICAgYm91bmQuc2V0Rm9udChjaG9pY2VGb250KTsKKworICAgICAgICAgICAgY2hvaWNlUGFuZWwuYWRkKGJvdW5kKTsKKyAgICAgICAgICAgIHRvcFBhbmVsLmFkZChjaG9pY2VQYW5lbCk7CisKKyAgICAgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQodG9wUGFuZWwsMSk7CisKKworICAgICAgICBhZGQoIk5vcnRoIiwgdG9wUGFuZWwpOworCisKKyAgICAgICAgICAgIGludCBST1dTID0gMTU7CisgICAgICAgICAgICBpbnQgQ09MVU1OUyA9IDUwOworLy8gICAgICAgICAgICB0ZXh0ID0gbmV3IFRleHRBcmVhKGdldEluaXRpYWxUZXh0KCksIFJPV1MsIENPTFVNTlMpOwordGV4dCA9IG5ldyBKVGV4dEFyZWEoZ2V0SW5pdGlhbFRleHQoKSwgUk9XUywgQ09MVU1OUyk7Cit0ZXh0LnNldExpbmVXcmFwKHRydWUpOwordGV4dC5zZXRXcmFwU3R5bGVXb3JkKHRydWUpOworICAgICAgICAgICAgdGV4dC5zZXRFZGl0YWJsZSh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICB0ZXh0LnNldEZvbnQoRGVtb1V0aWxpdHkuZWRpdEZvbnQpOworICAgICAgICAgICAgdGV4dC5zZXRCb3JkZXIoQm9yZGVyRmFjdG9yeS5jcmVhdGVFbXB0eUJvcmRlcigyLCAyLCAyLCAyKSk7CisKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBuZXcgSlNjcm9sbFBhbmUodGV4dCwgSlNjcm9sbFBhbmUuVkVSVElDQUxfU0NST0xMQkFSX0FMV0FZUywKKyAgICAgICAgICAgICAgICAgICAgICAgIEpTY3JvbGxQYW5lLkhPUklaT05UQUxfU0NST0xMQkFSX05FVkVSKSk7CisKKyAgICAgICAgUGFuZWwgY29weXJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgYWRkV2l0aEZvbnQgKGNvcHlyaWdodFBhbmVsLAorICAgICAgICAgICAgbmV3IExhYmVsKERlbW9VdGlsaXR5LmNvcHlyaWdodDEsIExhYmVsLkxFRlQpLERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKGNvcHlyaWdodFBhbmVsLDEpOworICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0UGFuZWwpOworCisgICAgICAgIC8vbGF5b3V0KCk7CisgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgIAorICAgICAgICBlbmFibGVFdmVudHMoV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1BSRVNTRUQpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1JFTEVBU0VEKTsKKworICAgIHRleHQuYWRkS2V5TGlzdGVuZXIobmV3IEtleUFkYXB0ZXIoKSB7CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBpbnQga2MgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZS5nZXRLZXlDb2RlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTjoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19QOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19MRUZUOgorICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQga2V5UmVsZWFzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIChuZXcgVGhyZWFkKHRoaXMpKS5zdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluaXRpYWxUZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybgorIldoZW4saW50aGVjb3Vyc2VvZmh1bWFuZXZlbnRzLGl0YmVjb21lc25lY2Vzc2FyeWZvcm9uZXBlb3BsZXRvZGlzc29sdmV0aGVwb2xpdGljYWxib25kc3doaWNoaGF2ZSIKKysgImNvbm5lY3RlZHRoZW13aXRoYW5vdGhlcixhbmR0b2Fzc3VtZWFtb25ndGhlcG93ZXJzb2Z0aGVlYXJ0aCx0aGVzZXBhcmF0ZWFuZGVxdWFsc3RhdGlvbnRvd2hpY2h0aGVsYXdzIgorKyAib2ZuYXR1cmVhbmRvZm5hdHVyZSdzR29kZW50aXRsZXRoZW0sYWRlY2VudHJlc3BlY3R0b3RoZW9waW5pb25zb2ZtYW5raW5kcmVxdWlyZXN0aGF0dGhleXNob3VsZGRlY2xhcmV0aGUiCisrICJjYXVzZXN3aGljaGltcGVsdGhlbXRvdGhlc2VwYXJhdGlvbi5cbiIKKysgIldlaG9sZHRoZXNldHJ1dGhzdG9iZXNlbGYtZXZpZGVudCx0aGF0YWxsbWVuYXJlY3JlYXRlZGVxdWFsLHRoYXR0aGV5YXJlZW5kb3dlZGJ5dGhlaXJDcmVhdG9yd2l0aGNlcnRhaW4iCisrICJ1bmFsaWVuYWJsZXJpZ2h0cyx0aGF0YW1vbmd0aGVzZWFyZWxpZmUsbGliZXJ0eWFuZHRoZXB1cnN1aXRvZmhhcHBpbmVzcy5UaGF0dG9zZWN1cmV0aGVzZXJpZ2h0cyxnb3Zlcm5tZW50c2FyZSIKKysgImluc3RpdHV0ZWRhbW9uZ21lbixkZXJpdmluZ3RoZWlyanVzdHBvd2Vyc2Zyb210aGVjb25zZW50b2Z0aGVnb3Zlcm5lZC5UaGF0d2hlbmV2ZXJhbnlmb3Jtb2Znb3Zlcm5tZW50IgorKyAiYmVjb21lc2Rlc3RydWN0aXZldG90aGVzZWVuZHMsaXRpc3RoZXJpZ2h0b2Z0aGVwZW9wbGV0b2FsdGVyb3J0b2Fib2xpc2hpdCxhbmR0b2luc3RpdHV0ZW5ld2dvdmVybm1lbnQsbGF5aW5nIgorKyAiaXRzZm91bmRhdGlvbm9uc3VjaHByaW5jaXBsZXNhbmRvcmdhbml6aW5naXRzcG93ZXJzaW5zdWNoZm9ybSxhc3RvdGhlbXNoYWxsc2VlbW1vc3RsaWtlbHl0b2VmZmVjdHRoZWlyc2FmZXR5IgorKyAiYW5kaGFwcGluZXNzLlBydWRlbmNlLGluZGVlZCx3aWxsZGljdGF0ZXRoYXRnb3Zlcm5tZW50c2xvbmdlc3RhYmxpc2hlZHNob3VsZG5vdGJlY2hhbmdlZGZvcmxpZ2h0YW5kdHJhbnNpZW50IgorKyAiY2F1c2VzO2FuZGFjY29yZGluZ2x5YWxsZXhwZXJpZW5jZWhhdGhzaG93bnRoYXRtYW5raW5kYXJlbW9yZWRpc3Bvc2VkdG9zdWZmZXIsd2hpbGVldmlsc2FyZXN1ZmZlcmFibGUsdGhhbiIKKysgInRvcmlnaHR0aGVtc2VsdmVzYnlhYm9saXNoaW5ndGhlZm9ybXN0b3doaWNodGhleWFyZWFjY3VzdG9tZWQuQnV0d2hlbmFsb25ndHJhaW5vZmFidXNlc2FuZHVzdXJwYXRpb25zLCIKKysgInB1cnN1aW5naW52YXJpYWJseXRoZXNhbWVvYmplY3RldmluY2VzYWRlc2lnbnRvcmVkdWNldGhlbXVuZGVyYWJzb2x1dGVkZXNwb3Rpc20saXRpc3RoZWlycmlnaHQsaXRpc3RoZWlyZHV0eSwiCisrICJ0b3Rocm93b2Zmc3VjaGdvdmVybm1lbnQsYW5kdG9wcm92aWRlbmV3Z3VhcmRzZm9ydGhlaXJmdXR1cmVzZWN1cml0eS4tLVN1Y2hoYXNiZWVudGhlcGF0aWVudHN1ZmZlcmFuY2VvZiIKKysgInRoZXNlY29sb25pZXM7YW5kc3VjaGlzbm93dGhlbmVjZXNzaXR5d2hpY2hjb25zdHJhaW5zdGhlbXRvYWx0ZXJ0aGVpcmZvcm1lcnN5c3RlbXNvZmdvdmVybm1lbnQuVGhlaGlzdG9yeSIKKysgIm9mdGhlcHJlc2VudEtpbmdvZkdyZWF0QnJpdGFpbmlzYWhpc3RvcnlvZnJlcGVhdGVkaW5qdXJpZXNhbmR1c3VycGF0aW9ucyxhbGxoYXZpbmdpbmRpcmVjdG9iamVjdHRoZSIKKysgImVzdGFibGlzaG1lbnRvZmFuYWJzb2x1dGV0eXJhbm55b3ZlcnRoZXNlc3RhdGVzLlRvcHJvdmV0aGlzLGxldGZhY3RzYmVzdWJtaXR0ZWR0b2FjYW5kaWR3b3JsZC5cbiIKKysgIkhlaGFzcmVmdXNlZGhpc2Fzc2VudHRvbGF3cyx0aGVtb3N0d2hvbGVzb21lYW5kbmVjZXNzYXJ5Zm9ydGhlcHVibGljZ29vZC5cbiIKKysgIkhlaGFzZm9yYmlkZGVuaGlzZ292ZXJub3JzdG9wYXNzbGF3c29maW1tZWRpYXRlYW5kcHJlc3NpbmdpbXBvcnRhbmNlLHVubGVzc3N1c3BlbmRlZGludGhlaXJvcGVyYXRpb250aWxsIgorKyAiaGlzYXNzZW50c2hvdWxkYmVvYnRhaW5lZDthbmR3aGVuc29zdXNwZW5kZWQsaGVoYXN1dHRlcmx5bmVnbGVjdGVkdG9hdHRlbmR0b3RoZW0uXG4iCisrICJIZWhhc3JlZnVzZWR0b3Bhc3NvdGhlcmxhd3Nmb3J0aGVhY2NvbW1vZGF0aW9ub2ZsYXJnZWRpc3RyaWN0c29mcGVvcGxlLHVubGVzc3Rob3NlcGVvcGxld291bGRyZWxpbnF1aXNoIgorKyAidGhlcmlnaHRvZnJlcHJlc2VudGF0aW9uaW50aGVsZWdpc2xhdHVyZSxhcmlnaHRpbmVzdGltYWJsZXRvdGhlbWFuZGZvcm1pZGFibGV0b3R5cmFudHNvbmx5LlxuIgorKyAiSGVoYXNjYWxsZWR0b2dldGhlcmxlZ2lzbGF0aXZlYm9kaWVzYXRwbGFjZXN1bnVzdWFsLHVuY29tZm9ydGFibGUsYW5kZGlzdGFudGZyb210aGVkZXBvc2l0b3J5b2Z0aGVpcnB1YmxpYyIKKysgInJlY29yZHMsZm9ydGhlc29sZXB1cnBvc2VvZmZhdGlndWluZ3RoZW1pbnRvY29tcGxpYW5jZXdpdGhoaXNtZWFzdXJlcy5cbiIKKysgIkhlaGFzZGlzc29sdmVkcmVwcmVzZW50YXRpdmVob3VzZXNyZXBlYXRlZGx5LGZvcm9wcG9zaW5nd2l0aG1hbmx5ZmlybW5lc3NoaXNpbnZhc2lvbnNvbnRoZXJpZ2h0c29mdGhlcGVvcGxlLlxuIgorKyAiSGVoYXNyZWZ1c2VkZm9yYWxvbmd0aW1lLGFmdGVyc3VjaGRpc3NvbHV0aW9ucyx0b2NhdXNlb3RoZXJzdG9iZWVsZWN0ZWQ7d2hlcmVieXRoZWxlZ2lzbGF0aXZlcG93ZXJzLCIKKysgImluY2FwYWJsZW9mYW5uaWhpbGF0aW9uLGhhdmVyZXR1cm5lZHRvdGhlcGVvcGxlYXRsYXJnZWZvcnRoZWlyZXhlcmNpc2U7dGhlc3RhdGVyZW1haW5pbmdpbnRoZW1lYW50aW1lZXhwb3NlZCIKKysgInRvYWxsdGhlZGFuZ2Vyc29maW52YXNpb25mcm9td2l0aG91dCxhbmRjb252dWxzaW9uc3dpdGhpbi5cbiIKKysgIkhlaGFzZW5kZWF2b3JlZHRvcHJldmVudHRoZXBvcHVsYXRpb25vZnRoZXNlc3RhdGVzO2ZvcnRoYXRwdXJwb3Nlb2JzdHJ1Y3Rpbmd0aGVsYXdzZm9ybmF0dXJhbGl6YXRpb25vZiIKKysgImZvcmVpZ25lcnM7cmVmdXNpbmd0b3Bhc3NvdGhlcnN0b2VuY291cmFnZXRoZWlybWlncmF0aW9uaGl0aGVyLGFuZHJhaXNpbmd0aGVjb25kaXRpb25zb2ZuZXdhcHByb3ByaWF0aW9uc29mIgorKyAibGFuZHMuXG4iCisrICJIZWhhc29ic3RydWN0ZWR0aGVhZG1pbmlzdHJhdGlvbm9manVzdGljZSxieXJlZnVzaW5naGlzYXNzZW50dG9sYXdzZm9yZXN0YWJsaXNoaW5nanVkaWNpYXJ5cG93ZXJzLlxuIgorKyAiSGVoYXNtYWRlanVkZ2VzZGVwZW5kZW50b25oaXN3aWxsYWxvbmUsZm9ydGhldGVudXJlb2Z0aGVpcm9mZmljZXMsYW5kdGhlYW1vdW50YW5kcGF5bWVudG9mdGhlaXJzYWxhcmllcy5cbiIKKysgIkhlaGFzZXJlY3RlZGFtdWx0aXR1ZGVvZm5ld29mZmljZXMsYW5kc2VudGhpdGhlcnN3YXJtc29mb2ZmaWNlcnN0b2hhcmFzc291cnBlb3BsZSxhbmRlYXRvdXR0aGVpciIKKysgInN1YnN0YW5jZS5cbiIKKysgIkhlaGFza2VwdGFtb25ndXMsaW50aW1lc29mcGVhY2Usc3RhbmRpbmdhcm1pZXN3aXRob3V0dGhlY29uc2VudG9mb3VybGVnaXNsYXR1cmUuXG4iCisrICJIZWhhc2FmZmVjdGVkdG9yZW5kZXJ0aGVtaWxpdGFyeWluZGVwZW5kZW50b2ZhbmRzdXBlcmlvcnRvY2l2aWxwb3dlci5cbiIKKysgIkhlaGFzY29tYmluZWR3aXRob3RoZXJzdG9zdWJqZWN0dXN0b2FqdXJpc2RpY3Rpb25mb3JlaWdudG9vdXJjb25zdGl0dXRpb24sYW5kdW5hY2tub3dsZWRnZWRieW91cmxhd3M7IgorKyAiZ2l2aW5naGlzYXNzZW50dG90aGVpcmFjdHNvZnByZXRlbmRlZGxlZ2lzbGF0aW9uOlxuIgorKyAiRm9ycXVhcnRlcmluZ2xhcmdlYm9kaWVzb2Zhcm1lZHRyb29wc2Ftb25ndXM6XG4iCisrICJGb3Jwcm90ZWN0aW5ndGhlbSxieW1vY2t0cmlhbCxmcm9tcHVuaXNobWVudGZvcmFueW11cmRlcnN3aGljaHRoZXlzaG91bGRjb21taXRvbnRoZWluaGFiaXRhbnRzb2Z0aGVzZSIKKysgInN0YXRlczpcbiIKKysgIkZvcmN1dHRpbmdvZmZvdXJ0cmFkZXdpdGhhbGxwYXJ0c29mdGhld29ybGQ6XG4iCisrICJGb3JpbXBvc2luZ3RheGVzb251c3dpdGhvdXRvdXJjb25zZW50OlxuIgorKyAiRm9yZGVwcml2aW5ndXNpbm1hbnljYXNlcyxvZnRoZWJlbmVmaXRzb2Z0cmlhbGJ5anVyeTpcbiIKKysgIkZvcnRyYW5zcG9ydGluZ3VzYmV5b25kc2Vhc3RvYmV0cmllZGZvcnByZXRlbmRlZG9mZmVuc2VzOlxuIgorKyAiRm9yYWJvbGlzaGluZ3RoZWZyZWVzeXN0ZW1vZkVuZ2xpc2hsYXdzaW5hbmVpZ2hib3Jpbmdwcm92aW5jZSxlc3RhYmxpc2hpbmd0aGVyZWluYW5hcmJpdHJhcnlnb3Zlcm5tZW50LGFuZCIKKysgImVubGFyZ2luZ2l0c2JvdW5kYXJpZXNzb2FzdG9yZW5kZXJpdGF0b25jZWFuZXhhbXBsZWFuZGZpdGluc3RydW1lbnRmb3JpbnRyb2R1Y2luZ3RoZXNhbWVhYnNvbHV0ZXJ1bGVpbnRoZXNlIgorKyAiY29sb25pZXM6XG4iCisrICJGb3J0YWtpbmdhd2F5b3VyY2hhcnRlcnMsYWJvbGlzaGluZ291cm1vc3R2YWx1YWJsZWxhd3MsYW5kYWx0ZXJpbmdmdW5kYW1lbnRhbGx5dGhlZm9ybXNvZm91cmdvdmVybm1lbnRzOlxuIgorKyAiRm9yc3VzcGVuZGluZ291cm93bmxlZ2lzbGF0dXJlcyxhbmRkZWNsYXJpbmd0aGVtc2VsdmVzaW52ZXN0ZWR3aXRocG93ZXJ0b2xlZ2lzbGF0ZWZvcnVzaW5hbGxjYXNlc3doYXRzb2V2ZXIuXG4iCisrICJIZWhhc2FiZGljYXRlZGdvdmVybm1lbnRoZXJlLGJ5ZGVjbGFyaW5ndXNvdXRvZmhpc3Byb3RlY3Rpb25hbmR3YWdpbmd3YXJhZ2FpbnN0dXMuXG4iCisrICJIZWhhc3BsdW5kZXJlZG91cnNlYXMscmF2YWdlZG91cmNvYXN0cyxidXJuZWRvdXJ0b3ducyxhbmRkZXN0cm95ZWR0aGVsaXZlc29mb3VycGVvcGxlLlxuIgorKyAiSGVpc2F0dGhpc3RpbWV0cmFuc3BvcnRpbmdsYXJnZWFybWllc29mZm9yZWlnbm1lcmNlbmFyaWVzdG9jb21wbGV0ZXRoZXdvcmtzb2ZkZWF0aCxkZXNvbGF0aW9uYW5kdHlyYW5ueSwiCisrICJhbHJlYWR5YmVndW53aXRoY2lyY3Vtc3RhbmNlc29mY3J1ZWx0eWFuZHBlcmZpZHlzY2FyY2VseXBhcmFsbGVsZWRpbnRoZW1vc3RiYXJiYXJvdXNhZ2VzLGFuZHRvdGFsbHl1bndvcnRoeSIKKysgInRoZWhlYWRvZmFjaXZpbGl6ZWRuYXRpb24uXG4iCisrICJIZWhhc2NvbnN0cmFpbmVkb3VyZmVsbG93Y2l0aXplbnN0YWtlbmNhcHRpdmVvbnRoZWhpZ2hzZWFzdG9iZWFyYXJtc2FnYWluc3R0aGVpcmNvdW50cnksdG9iZWNvbWV0aGUiCisrICJleGVjdXRpb25lcnNvZnRoZWlyZnJpZW5kc2FuZGJyZXRocmVuLG9ydG9mYWxsdGhlbXNlbHZlc2J5dGhlaXJoYW5kcy5cbiIKKysgIkhlaGFzZXhjaXRlZGRvbWVzdGljaW5zdXJyZWN0aW9uc2Ftb25nc3R1cyxhbmRoYXNlbmRlYXZvcmVkdG9icmluZ29udGhlaW5oYWJpdGFudHNvZm91cmZyb250aWVycyx0aGUiCisrICJtZXJjaWxlc3NJbmRpYW5zYXZhZ2VzLHdob3Nla25vd25ydWxlb2Z3YXJmYXJlLGlzdW5kaXN0aW5ndWlzaGVkZGVzdHJ1Y3Rpb25vZmFsbGFnZXMsc2V4ZXNhbmRjb25kaXRpb25zLlxuIgorKyAiSW5ldmVyeXN0YWdlb2Z0aGVzZW9wcHJlc3Npb25zd2VoYXZlcGV0aXRpb25lZGZvcnJlZHJlc3NpbnRoZW1vc3RodW1ibGV0ZXJtczpvdXJyZXBlYXRlZHBldGl0aW9uc2hhdmUiCisrICJiZWVuYW5zd2VyZWRvbmx5YnlyZXBlYXRlZGluanVyeS5BcHJpbmNlLHdob3NlY2hhcmFjdGVyaXN0aHVzbWFya2VkYnlldmVyeWFjdHdoaWNobWF5ZGVmaW5lYXR5cmFudCxpcyIKKysgInVuZml0dG9iZXRoZXJ1bGVyb2ZhZnJlZXBlb3BsZS5cbiIKKysgIk5vcmhhdmV3ZWJlZW53YW50aW5naW5hdHRlbnRpb250b291ckJyaXRpc2hicmV0aHJlbi5XZWhhdmV3YXJuZWR0aGVtZnJvbXRpbWV0b3RpbWVvZmF0dGVtcHRzYnl0aGVpciIKKysgImxlZ2lzbGF0dXJldG9leHRlbmRhbnVud2FycmFudGFibGVqdXJpc2RpY3Rpb25vdmVydXMuV2VoYXZlcmVtaW5kZWR0aGVtb2Z0aGVjaXJjdW1zdGFuY2Vzb2ZvdXJlbWlncmF0aW9uIgorKyAiYW5kc2V0dGxlbWVudGhlcmUuV2VoYXZlYXBwZWFsZWR0b3RoZWlybmF0aXZlanVzdGljZWFuZG1hZ25hbmltaXR5LGFuZHdlaGF2ZWNvbmp1cmVkdGhlbWJ5dGhldGllc29mb3VyIgorKyAiY29tbW9ua2luZHJlZHRvZGlzYXZvd3RoZXNldXN1cnBhdGlvbnMsd2hpY2gsd291bGRpbmV2aXRhYmx5aW50ZXJydXB0b3VyY29ubmVjdGlvbnNhbmRjb3JyZXNwb25kZW5jZS5XZSIKKysgIm11c3QsdGhlcmVmb3JlLGFjcXVpZXNjZWludGhlbmVjZXNzaXR5LHdoaWNoZGVub3VuY2Vzb3Vyc2VwYXJhdGlvbixhbmRob2xkdGhlbSxhc3dlaG9sZHRoZXJlc3RvZm1hbmtpbmQsIgorKyAiZW5lbWllc2lud2FyLGlucGVhY2VmcmllbmRzLlxuIgorKyAiV2UsdGhlcmVmb3JlLHRoZXJlcHJlc2VudGF0aXZlc29mdGhlVW5pdGVkU3RhdGVzb2ZBbWVyaWNhLGluR2VuZXJhbENvbmdyZXNzLGFzc2VtYmxlZCxhcHBlYWxpbmd0b3RoZSIKKysgIlN1cHJlbWVKdWRnZW9mdGhld29ybGRmb3J0aGVyZWN0aXR1ZGVvZm91cmludGVudGlvbnMsZG8saW50aGVuYW1lLGFuZGJ5dGhlYXV0aG9yaXR5b2Z0aGVnb29kcGVvcGxlb2YiCisrICJ0aGVzZWNvbG9uaWVzLHNvbGVtbmx5cHVibGlzaGFuZGRlY2xhcmUsdGhhdHRoZXNldW5pdGVkY29sb25pZXNhcmUsYW5kb2ZyaWdodG91Z2h0dG9iZWZyZWVhbmRpbmRlcGVuZGVudCIKKysgInN0YXRlczt0aGF0dGhleWFyZWFic29sdmVkZnJvbWFsbGFsbGVnaWFuY2V0b3RoZUJyaXRpc2hDcm93bixhbmR0aGF0YWxscG9saXRpY2FsY29ubmVjdGlvbmJldHdlZW50aGVtYW5kdGhlIgorKyAic3RhdGVvZkdyZWF0QnJpdGFpbixpc2FuZG91Z2h0dG9iZXRvdGFsbHlkaXNzb2x2ZWQ7YW5kdGhhdGFzZnJlZWFuZGluZGVwZW5kZW50c3RhdGVzLHRoZXloYXZlZnVsbHBvd2VydG8iCisrICJsZXZleXdhcixjb25jbHVkZXBlYWNlLGNvbnRyYWN0YWxsaWFuY2VzLGVzdGFibGlzaGNvbW1lcmNlLGFuZHRvZG9hbGxvdGhlcmFjdHNhbmR0aGluZ3N3aGljaGluZGVwZW5kZW50IgorKyAic3RhdGVzbWF5b2ZyaWdodGRvLkFuZGZvcnRoZXN1cHBvcnRvZnRoaXNkZWNsYXJhdGlvbix3aXRoYWZpcm1yZWxpYW5jZW9udGhlcHJvdGVjdGlvbm9mRGl2aW5lUHJvdmlkZW5jZSx3ZSIKKysgIm11dHVhbGx5cGxlZGdldG9lYWNob3RoZXJvdXJsaXZlcyxvdXJmb3J0dW5lc2FuZG91cnNhY3JlZGhvbm9yLlxuIjsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUVudW1DaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gYm91bmQuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgIGlmIChzLmVxdWFscygiQ2hhciIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldENoYXJhY3Rlckluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJXb3JkIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0V29yZEluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzLmVxdWFscygiTGluZSBCcmVhayIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldExpbmVJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSAvKiBpZiAocy5lcXVhbHMoIlNlbnRlbmNlIikpICovIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0U2VudGVuY2VJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAvL3RleHQuc2VsZWN0KDAsMCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlRm9yd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbnRlcmluZyBoYW5kbGVGb3J3YXJkIik7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJoYW5kbGVGb3J3YXJkOiBvbGRTdGFydD0iICsgb2xkU3RhcnQgKyAiLCBvbGRFbmQ9IiArIG9sZEVuZCk7CisKKyAgICAgICAgICAgIGlmIChvbGRFbmQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgaXRlci5mb2xsb3dpbmcoMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLmZvbGxvd2luZyhvbGRFbmQtMSk7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlID0gczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKworICAgICAgICAgICAgICAgIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUJhY2t3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIGlmIChvbGRTdGFydCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBlID0gaXRlci5mb2xsb3dpbmcob2xkU3RhcnQtMSk7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKyBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldFNvdXJjZSgpIGluc3RhbmNlb2YgQ2hvaWNlKSB7CisgICAgICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRXaW5kb3coKSA9PSB0aGlzKSB7CisgICAgICAgICAgICBoaWRlKCk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2dC5nZXRJRCgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9QUkVTU0VEIDoKKyAgICAgICAgICAgICAgICBpZiAoZXZ0LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9SRUxFQVNFRCA6CisgICAgICAgICAgICAgICAgLy8ga2V5IGRldGVjdGlvbiBmb3IgbGVmdCBhbmQgcmlnaHQgYnV0dG9ucyBhcmUgcmVtb3ZlZAorICAgICAgICAgICAgICAgIC8vIHRvIGVtdWxhdGUgdGhlIG9sZCByZWxlYXNlIGJlaGF2aW91cgorICAgICAgICAgICAgICAgIGludCBrZXkgPSBldnQuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTiAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19QICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvUkJCSURlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1JCQklEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDAwZjFmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1JCQklEZW1vLmphdmEKQEAgLTAsMCArMSw0NzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmk7CisKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUFkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1FdmVudDsKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEFyZWE7CitpbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbFBhbmU7CitpbXBvcnQgamF2YXguc3dpbmcuQm9yZGVyRmFjdG9yeTsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworCitwdWJsaWMgY2xhc3MgUkJCSURlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgbmV3IFJCQklEZW1vKCkuc2hvd0RlbW8oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRnJhbWUgY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KSB7CisgICAgICAgIHJldHVybiBuZXcgUkJCSUZyYW1lKGFwcGxldCk7CisgICAgfQorfQorCisKKworY2xhc3MgUkJCSUZyYW1lIGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBJdGVtTGlzdGVuZXIKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3JlZGl0U3RyaW5nID0KKyAgICAgICAgInYxLjFhOSwgRGVtbyI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklFTERfQ09MVU1OUyA9IDQ1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEZvbnQgY2hvaWNlRm9udCA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHByaXZhdGUgRGVtb0FwcGxldCBhcHBsZXQ7CisKKyAgICBmaW5hbCBTdHJpbmcgcmlnaHQgPSAiLS0+IjsKKyAgICBmaW5hbCBTdHJpbmcgbGVmdCA9ICI8LS0iOworCisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGl0ZXI7CisgICAgcHJpdmF0ZSBib29sZWFuICAgICAgIGlzY3RybGRvd25fID0gZmFsc2U7CisKK0pUZXh0QXJlYSB0ZXh0OworLy8gICAgVGV4dEFyZWEgdGV4dDsKKyAgICBDaG9pY2UgYm91bmQ7CisKKyAgICBwdWJsaWMgUkJCSUZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIHsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgc3RhcnQoKTsKKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgcnVuKCkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDI1MCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIGludCBzLCBlOworICAgIGludCB0cywgdGU7CisKKyAgICBwdWJsaWMgdm9pZCBjaGVja0NoYW5nZSgpCisgICAgeworLy8gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hlY2tDaGFuZ2UuLi4iKTsKKyAgICAgICAgaWYgKCh0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkYpICE9IHRzIHx8CisgICAgICAgICAgICAodGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRikgIT0gdGUpIHsKKworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBTID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBFID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+Iik7CisvLyAgICAgICAgICBzZWxlY3QoMCwgMCk7CisvLyAgICAgICAgICBzZWxlY3QodGVtcFMsIHRlbXBFKTsKKyAgICAgICAgICAgIC8vc2VsZWN0KHRlbXBTIC0gKHRzIC0gcyksIHRlbXBFIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8Iik7CisKKworLy8gICAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCIgICAgIHMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKy8vICAgICAgICAgIHNlbGVjdChzIC0gKHRzIC0gcyksIGUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigicygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGtkc2xrc2oiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc0luLCBpbnQgZUluKQorICAgIHsKKyAgICAgICAgcyA9IHNJbjsKKyAgICAgICAgZSA9IGVJbjsKKyAgICAgICAgdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgIHRzID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICB0ZSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisvLyAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgeworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAiKyh0cy1zKSsiLCIrKHRlLWUpKTsKKy8vICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gczsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBlOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgc3luY2hyb25pemVkIHZvaWQgc2VsZWN0UmFuZ2UoaW50IHMsIGludCBlKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisgICAgICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgICAgICBzZWxlY3QocyxlKTsKKyAgICAgICAgICAgIC8vfQorLy8gICAgICAgICAgaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBR0ghIHNlbGVjdCgiK3MrIiwiK2UrIikgLT4gKCIrCisvLyAgICAgICAgICAgICAgZ2V0U2VsZWN0aW9uU3RhcnQoKSsiLCIrZ2V0U2VsZWN0aW9uRW5kKCkrIikiKTsKKy8vICAgICAgICAgICAgICB0ZXh0LnNlbGVjdChzIC0gKGdldFNlbGVjdGlvblN0YXJ0KCkgLSBzKSwgZSAtIChnZXRTZWxlY3Rpb25FbmQoKSAtIGUpKTsKKy8vICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGJ1aWxkR1VJKCk7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBzdGFydCgpCisgICAgeworICAgIH0KKworCisgICAgdm9pZCBhZGRXaXRoRm9udChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgZm9vLCBGb250IGZvbnQpIHsKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICBjb250YWluZXIuYWRkKGZvbyk7CisgICAgfQorCisKKworICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworCisgICAgICAgICAgICBMYWJlbCB0aXRsZUxhYmVsID0KKyAgICAgICAgICAgICAgICBuZXcgTGFiZWwoIkRldmEgVGV4dCBCb3VuZGFyeSBEZW1vIiwgTGFiZWwuQ0VOVEVSKTsKKyAgICAgICAgICAgIHRpdGxlTGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS50aXRsZUZvbnQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKHRpdGxlTGFiZWwpOworCisgICAgICAgICAgICAvL0xhYmVsIGRlbW89bmV3IExhYmVsKGNyZWRpdFN0cmluZywgTGFiZWwuQ0VOVEVSKTsKKyAgICAgICAgICAgIC8vZGVtby5zZXRGb250KERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICAgICAgLy90b3BQYW5lbC5hZGQoZGVtbyk7CisKKyAgICAgICAgICAgIFBhbmVsIGNob2ljZVBhbmVsID0gbmV3IFBhbmVsKCk7CisKKyAgICAgICAgICAgIExhYmVsIGRlbW8xPW5ldyBMYWJlbCgiQm91bmRhcmllcyIsIExhYmVsLkxFRlQpOworICAgICAgICAgICAgZGVtbzEuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgY2hvaWNlUGFuZWwuYWRkKGRlbW8xKTsKKworICAgICAgICAgICAgYm91bmQgPSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICAgICAgYm91bmQuc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5jaG9pY2VDb2xvcik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiTGluZSBCcmVhayIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiV29yZCIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiQ2hhciIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgaWYgKGNob2ljZUZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRGb250KGNob2ljZUZvbnQpOworCisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoYm91bmQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNob2ljZVBhbmVsKTsKKworICAgICAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwxKTsKKworCisgICAgICAgIGFkZCgiTm9ydGgiLCB0b3BQYW5lbCk7CisKKworICAgICAgICAgICAgaW50IFJPV1MgPSAxNTsKKyAgICAgICAgICAgIGludCBDT0xVTU5TID0gNTA7CisvLyAgICAgICAgICAgIHRleHQgPSBuZXcgVGV4dEFyZWEoZ2V0SW5pdGlhbFRleHQoKSwgUk9XUywgQ09MVU1OUyk7CisgICAgICAgICAgICB0ZXh0ID0gbmV3IEpUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKKyAgICAgICAgICAgIHRleHQuc2V0TGluZVdyYXAodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNldFdyYXBTdHlsZVdvcmQodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNldEVkaXRhYmxlKHRydWUpOworICAgICAgICAgICAgdGV4dC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIHRleHQuc2V0Rm9udChuZXcgRm9udCgiRGV2YW5hZ2FyaSBNVCBmb3IgSUJNIiwgRm9udC5QTEFJTiwgNDgpKTsKKyAgICAgICAgICAgIHRleHQuc2V0Qm9yZGVyKEJvcmRlckZhY3RvcnkuY3JlYXRlRW1wdHlCb3JkZXIoMiwgMiwgMiwgMikpOworCisgICAgICAgIGFkZCgiQ2VudGVyIiwgbmV3IEpTY3JvbGxQYW5lKHRleHQsIEpTY3JvbGxQYW5lLlZFUlRJQ0FMX1NDUk9MTEJBUl9BTFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAgICBKU2Nyb2xsUGFuZS5IT1JJWk9OVEFMX1NDUk9MTEJBUl9ORVZFUikpOworCisgICAgICAgIFBhbmVsIGNvcHlyaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGFkZFdpdGhGb250IChjb3B5cmlnaHRQYW5lbCwKKyAgICAgICAgICAgIG5ldyBMYWJlbChEZW1vVXRpbGl0eS5jb3B5cmlnaHQxLCBMYWJlbC5MRUZUKSxEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChjb3B5cmlnaHRQYW5lbCwxKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIGNvcHlyaWdodFBhbmVsKTsKKworICAgICAgICAvL2xheW91dCgpOworICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICAKKyAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9QUkVTU0VEKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9SRUxFQVNFRCk7CisKKyAgICB0ZXh0LmFkZEtleUxpc3RlbmVyKG5ldyBLZXlBZGFwdGVyKCkgeworICAgICAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgaW50IGtjID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgICAgICBzd2l0Y2ggKGUuZ2V0S2V5Q29kZSgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX046CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOgorICAgICAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVJlbGVhc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyAobmV3IFRocmVhZCh0aGlzKSkuc3RhcnQoKTsKKyAgICB9CisKKworCisgICAgcHVibGljIFN0cmluZyBnZXRJbml0aWFsVGV4dCgpCisgICAgeworICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICJcdTA5MzZcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MmVcdTA5MjZcdTA5NGQgIiArCisgICAgICAgICAgICAiXHUwOTJkXHUwOTE3XHUwOTM1XHUwOTI2XHUwOTRkXHUwOTE3XHUwOTQwXHUwOTI0XHUwOTNlICIgKworICAgICAgICAgICAgIlx1MDkwNVx1MDkyN1x1MDk0ZFx1MDkyZlx1MDkzZVx1MDkyZiAiICsKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDFcdTA5MjggIiArCisgICAgICAgICAgICAiXHUwOTM1XHUwOTNmXHUwOTM3XHUwOTNlXHUwOTI2ICIgKworICAgICAgICAgICAgIlx1MDkyZlx1MDk0Ylx1MDkxNyAiICsKKyAgICAgICAgICAgICJcdTA5MjdcdTA5NDNcdTA5MjRcdTA5MzBcdTA5M2VcdTA5MzdcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzAgIiArCisgICAgICAgICAgICAiXHUwOTA5XHUwOTM1XHUwOTNFXHUwOTFBXHUwOTY0ICIgKworICAgICAgICAgICAgIlx1MDkyN1x1MDkzMFx1MDk0ZFx1MDkyZVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyAiICsKKyAgICAgICAgICAgICJcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDcgIiArCisgICAgICAgICAgICAiXHUwOTM4XHUwOTJlXHUwOTM1XHUwOTQ3XHUwOTI0XHUwOTNlICIgKworICAgICAgICAgICAgIlx1MDkyZlx1MDk0MVx1MDkyZlx1MDk0MVx1MDkyNFx1MDk0ZFx1MDkzOFx1MDkzNVx1MDkwMyAiICsKKyAgICAgICAgICAgICJcdTA5MmVcdTA5M2VcdTA5MmVcdTA5MTVcdTA5M2VcdTA5MDMgIiArCisgICAgICAgICAgICAiXHUwOTJhXHUwOTNlXHUwOTIzXHUwOTRkXHUwOTIxXHUwOTM1XHUwOTNlXHUwOTM2XHUwOTRkXHUwOTFhXHUwOTQ4XHUwOTM1ICIgKworICAgICAgICAgICAgIlx1MDkxNVx1MDkzZlx1MDkyZVx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0ZFx1MDkzNVx1MDkyNCAiICsKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MWNcdTA5MkYiOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgaGFuZGxlRW51bUNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHMgPSBib3VuZC5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJDaGFyIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0Q2hhcmFjdGVySW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIldvcmQiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJ0V29yZEJyZWFrIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzLmVxdWFscygiTGluZSBCcmVhayIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldExpbmVJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSAvKiBpZiAocy5lcXVhbHMoIlNlbnRlbmNlIikpICovIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0U2VudGVuY2VJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAvL3RleHQuc2VsZWN0KDAsMCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlRm9yd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbnRlcmluZyBoYW5kbGVGb3J3YXJkIik7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJoYW5kbGVGb3J3YXJkOiBvbGRTdGFydD0iICsgb2xkU3RhcnQgKyAiLCBvbGRFbmQ9IiArIG9sZEVuZCk7CisKKyAgICAgICAgICAgIGlmIChvbGRFbmQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgaXRlci5mb2xsb3dpbmcoMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLmZvbGxvd2luZyhvbGRFbmQtMSk7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlID0gczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKworICAgICAgICAgICAgICAgIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUJhY2t3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIGlmIChvbGRTdGFydCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBlID0gaXRlci5mb2xsb3dpbmcob2xkU3RhcnQtMSk7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKyBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgIHB1YmxpYyBib29sZWFuIGFjdGlvbihFdmVudCBldnQsIE9iamVjdCBvYmopCisgICAgeworCisgICAgICAgIGlmKGV2dC50YXJnZXQgaW5zdGFuY2VvZiBCdXR0b24gJiYgbGVmdC5lcXVhbHMob2JqKSkKKyAgICAgICAgeworICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoZXZ0LnRhcmdldCBpbnN0YW5jZW9mIEJ1dHRvbiAmJiByaWdodC5lcXVhbHMob2JqKSkKKyAgICAgICAgeworICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZihldnQudGFyZ2V0IGluc3RhbmNlb2YgQ2hvaWNlKQorICAgICAgICB7CisgICAgICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhbmRsZUV2ZW50KEV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuaWQgPT0gRXZlbnQuS0VZX1BSRVNTIHx8IGV2dC5pZCA9PSBFdmVudC5LRVlfQUNUSU9OKSB7CisgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PSBFdmVudC5SSUdIVCB8fCAoZXZ0LmtleSA9PSAweDBFICYmIGV2dC5jb250cm9sRG93bigpKSkgeworICAgICAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXkgPT0gRXZlbnQuTEVGVCB8fCAoZXZ0LmtleSA9PSAweDEwICYmIGV2dC5jb250cm9sRG93bigpKSkgeworICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICBpZiAoZXZ0LmlkID09IEV2ZW50LldJTkRPV19ERVNUUk9ZICYmIGV2dC50YXJnZXQgPT0gdGhpcykgeworICAgICAgICAgICAgdGhpcy5oaWRlKCk7CisgICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICAgICB9IGVsc2UgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VwZXIuaGFuZGxlRXZlbnQoZXZ0KTsKKyAgICB9Ki8KKworICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBDaG9pY2UpIHsKKyAgICAgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBlcnJvclRleHQoU3RyaW5nIHMpCisgICAgeworICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzV2luZG93RXZlbnQoV2luZG93RXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HICYmIAorICAgICAgICAgICAgZXZ0LmdldFdpbmRvdygpID09IHRoaXMpIHsKKyAgICAgICAgICAgIGhpZGUoKTsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICB9IGVsc2UgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc0tleUV2ZW50KEtleUV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZXZ0LmdldElEKCkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZX1BSRVNTRUQgOgorICAgICAgICAgICAgICAgIGlmIChldnQuZ2V0S2V5Q29kZSgpID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZX1JFTEVBU0VEIDoKKyAgICAgICAgICAgICAgICAvLyBrZXkgZGV0ZWN0aW9uIGZvciBsZWZ0IGFuZCByaWdodCBidXR0b25zIGFyZSByZW1vdmVkCisgICAgICAgICAgICAgICAgLy8gdG8gZW11bGF0ZSB0aGUgb2xkIHJlbGVhc2UgYmVoYXZpb3VyCisgICAgICAgICAgICAgICAgaW50IGtleSA9IGV2dC5nZXRLZXlDb2RlKCk7CisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19OICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX1AgJiYgaXNjdHJsZG93bl8pIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9UZXh0Qm91bmREZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9UZXh0Qm91bmREZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTg4MzM4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1RleHRCb3VuZERlbW8uamF2YQpAQCAtMCwwICsxLDQ1NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJiaTsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmF4LnN3aW5nLkpUZXh0QXJlYTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3JkZXJGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK3B1YmxpYyBjbGFzcyBUZXh0Qm91bmREZW1vIGV4dGVuZHMgRGVtb0FwcGxldAoreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmd2W10pIHsKKyAgICAgICAgbmV3IFRleHRCb3VuZERlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUZXh0Qm91bmRGcmFtZShhcHBsZXQpOworICAgIH0KK30KKworCisKK2NsYXNzIFRleHRCb3VuZEZyYW1lIGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBJdGVtTGlzdGVuZXIKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3JlZGl0U3RyaW5nID0KKyAgICAgICAgInYxLjFhOSwgRGVtbyI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklFTERfQ09MVU1OUyA9IDQ1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEZvbnQgY2hvaWNlRm9udCA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHByaXZhdGUgRGVtb0FwcGxldCBhcHBsZXQ7CisKKyAgICBmaW5hbCBTdHJpbmcgcmlnaHQgPSAiLS0+IjsKKyAgICBmaW5hbCBTdHJpbmcgbGVmdCA9ICI8LS0iOworCisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGl0ZXI7CisgICAgcHJpdmF0ZSBib29sZWFuIGlzY3RybGRvd25fID0gZmFsc2U7CisKK0pUZXh0QXJlYSB0ZXh0OworLy8gICAgVGV4dEFyZWEgdGV4dDsKKyAgICBDaG9pY2UgYm91bmQ7CisKKyAgICBwdWJsaWMgVGV4dEJvdW5kRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpCisgICAgeworICAgICAgICB0aGlzLmFwcGxldCA9IGFwcGxldDsKKyAgICAgICAgaW5pdCgpOworICAgICAgICBzdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBydW4oKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMjUwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgaW50IHMsIGU7CisgICAgaW50IHRzLCB0ZTsKKworICAgIHB1YmxpYyB2b2lkIGNoZWNrQ2hhbmdlKCkKKyAgICB7CisvLyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGVja0NoYW5nZS4uLiIpOworICAgICAgICBpZiAoKHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRikgIT0gdHMgfHwKKyAgICAgICAgICAgICh0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGKSAhPSB0ZSkgeworCisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcFMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcEUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj4iKTsKKy8vICAgICAgICAgIHNlbGVjdCgwLCAwKTsKKy8vICAgICAgICAgIHNlbGVjdCh0ZW1wUywgdGVtcEUpOworICAgICAgICAgICAgLy9zZWxlY3QodGVtcFMgLSAodHMgLSBzKSwgdGVtcEUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjwiKTsKKworCisvLyAgICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgcygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworLy8gICAgICAgICAgc2VsZWN0KHMgLSAodHMgLSBzKSwgZSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCJzKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsa2RzbGtzaiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzSW4sIGludCBlSW4pCisgICAgeworICAgICAgICBzID0gc0luOworICAgICAgICBlID0gZUluOworICAgICAgICB0ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgdHMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgIHRlID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKy8vICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSB7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICIrKHRzLXMpKyIsIisodGUtZSkpOworLy8gICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBzOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgIH0KKworCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIGU7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBzeW5jaHJvbml6ZWQgdm9pZCBzZWxlY3RSYW5nZShpbnQgcywgaW50IGUpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy9pZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKyAgICAgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgICAgIHNlbGVjdChzLGUpOworICAgICAgICAgICAgLy99CisvLyAgICAgICAgICBpZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFHSCEgc2VsZWN0KCIrcysiLCIrZSsiKSAtPiAoIisKKy8vICAgICAgICAgICAgICBnZXRTZWxlY3Rpb25TdGFydCgpKyIsIitnZXRTZWxlY3Rpb25FbmQoKSsiKSIpOworLy8gICAgICAgICAgICAgIHRleHQuc2VsZWN0KHMgLSAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAtIHMpLCBlIC0gKGdldFNlbGVjdGlvbkVuZCgpIC0gZSkpOworLy8gICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgYnVpbGRHVUkoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgfQorCisKKyAgICB2b2lkIGFkZFdpdGhGb250KENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBmb28sIEZvbnQgZm9udCkgeworICAgICAgICBpZiAoZm9udCAhPSBudWxsKQorICAgICAgICAgICAgZm9vLnNldEZvbnQoZm9udCk7CisgICAgICAgIGNvbnRhaW5lci5hZGQoZm9vKTsKKyAgICB9CisKKworCisgICBwdWJsaWMgdm9pZCBidWlsZEdVSSgpCisgICAgeworICAgICAgICBzZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgIFBhbmVsIHRvcFBhbmVsID0gbmV3IFBhbmVsKCk7CisKKyAgICAgICAgICAgIExhYmVsIHRpdGxlTGFiZWwgPQorICAgICAgICAgICAgICAgIG5ldyBMYWJlbCgiVGV4dCBCb3VuZGFyeSBEZW1vIiwgTGFiZWwuQ0VOVEVSKTsKKyAgICAgICAgICAgIHRpdGxlTGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS50aXRsZUZvbnQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKHRpdGxlTGFiZWwpOworCisgICAgICAgICAgICAvL0xhYmVsIGRlbW89bmV3IExhYmVsKGNyZWRpdFN0cmluZywgTGFiZWwuQ0VOVEVSKTsKKyAgICAgICAgICAgIC8vZGVtby5zZXRGb250KERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICAgICAgLy90b3BQYW5lbC5hZGQoZGVtbyk7CisKKyAgICAgICAgICAgIFBhbmVsIGNob2ljZVBhbmVsID0gbmV3IFBhbmVsKCk7CisKKyAgICAgICAgICAgIExhYmVsIGRlbW8xPW5ldyBMYWJlbCgiQm91bmRhcmllcyIsIExhYmVsLkxFRlQpOworICAgICAgICAgICAgZGVtbzEuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgY2hvaWNlUGFuZWwuYWRkKGRlbW8xKTsKKworICAgICAgICAgICAgYm91bmQgPSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICAgICAgYm91bmQuc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5jaG9pY2VDb2xvcik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiTGluZSBCcmVhayIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiV29yZCIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiQ2hhciIpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgaWYgKGNob2ljZUZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRGb250KGNob2ljZUZvbnQpOworCisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoYm91bmQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNob2ljZVBhbmVsKTsKKworICAgICAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwxKTsKKworCisgICAgICAgIGFkZCgiTm9ydGgiLCB0b3BQYW5lbCk7CisKKworICAgICAgICAgICAgaW50IFJPV1MgPSAxNTsKKyAgICAgICAgICAgIGludCBDT0xVTU5TID0gNTA7CisvLyAgICAgICAgICAgIHRleHQgPSBuZXcgVGV4dEFyZWEoZ2V0SW5pdGlhbFRleHQoKSwgUk9XUywgQ09MVU1OUyk7Cit0ZXh0ID0gbmV3IEpUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKK3RleHQuc2V0TGluZVdyYXAodHJ1ZSk7Cit0ZXh0LnNldFdyYXBTdHlsZVdvcmQodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNldEVkaXRhYmxlKHRydWUpOworICAgICAgICAgICAgdGV4dC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIHRleHQuc2V0Rm9udChEZW1vVXRpbGl0eS5lZGl0Rm9udCk7CisgICAgICAgICAgICB0ZXh0LnNldEJvcmRlcihCb3JkZXJGYWN0b3J5LmNyZWF0ZUVtcHR5Qm9yZGVyKDIsIDIsIDIsIDIpKTsKKworICAgICAgICBhZGQoIkNlbnRlciIsIG5ldyBKU2Nyb2xsUGFuZSh0ZXh0LCBKU2Nyb2xsUGFuZS5WRVJUSUNBTF9TQ1JPTExCQVJfQUxXQVlTLAorICAgICAgICAgICAgICAgICAgICAgICAgSlNjcm9sbFBhbmUuSE9SSVpPTlRBTF9TQ1JPTExCQVJfTkVWRVIpKTsKKworICAgICAgICBQYW5lbCBjb3B5cmlnaHRQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBhZGRXaXRoRm9udCAoY29weXJpZ2h0UGFuZWwsCisgICAgICAgICAgICBuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCksRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQoY29weXJpZ2h0UGFuZWwsMSk7CisgICAgICAgIGFkZCgiU291dGgiLCBjb3B5cmlnaHRQYW5lbCk7CisKKyAgICAgICAgLy9sYXlvdXQoKTsKKyAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgCisgICAgICAgIGVuYWJsZUV2ZW50cyhXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUFJFU1NFRCk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUkVMRUFTRUQpOworCisgICAgdGV4dC5hZGRLZXlMaXN0ZW5lcihuZXcgS2V5QWRhcHRlcigpIHsKKyAgICAgICAgcHVibGljIHZvaWQga2V5UHJlc3NlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGludCBrYyA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgc3dpdGNoIChlLmdldEtleUNvZGUoKSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19OOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1A6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6CisgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gKG5ldyBUaHJlYWQodGhpcykpLnN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5pdGlhbFRleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuCisgICAgLyoKKyAgICAgICAgICAgICJcIlRoaXMgaXMgYSBzZW50ZW5jZS5cIiBUaGlzIGlzIG5vdC5cIiBcImJlY2F1c2UuIEFuZCBnby4gIiArCisgICAgICAgICAgICAiVGhpcyBpcyBhIHNpbXBsZSAwMTIuNTY2LDUgc2FtcGxlIHNlbnRlbmNlLiBcbiIrCisgICAgICAgICAgICAiSXQgZG9lcyBub3QgaGF2ZSB0byBtYWtlIGFueSBzZW5zZSBhcyB5b3UgY2FuIHNlZS4gXG4iKworICAgICAgICAgICAgIk5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiAiKworICAgICAgICAgICAgICAgICJ1bmEgc2VsdmEgb3NjdXJhLiBcbiIrCisgICAgICAgICAgICAiQ2hlIGxhIGRyaXR0YSB2aWEgYXZlbyBzbWFycml0YS4gXG4iKworICAgICAgICAgICAgIkhlIHNhaWQsIHRoYXQgSSBzYWlkLCB0aGF0IHlvdSBzYWlkISEgXG4iKworICAgICAgICAgICAgIkRvbid0IHJvY2sgdGhlIGJvYXQuXG5cbiIrCisgICAgICAgICAgICAiQmVjYXVzZSBJIGFtIHRoZSBkYWRkeSwgdGhhdCBpcyB3aHkuIFxuIisKKyAgICAgICAgICAgICJOb3Qgb24gbXkgdGltZSAoZWwgdGltby4pISBcbiIrCisgICAgICAgICAgICAiVGFiXHRUYWJcclRhYlx0V293LiIrCisgICAgICAgICAgICAiU28gd2hhdCEhXG5cbiIrCisgICAgICAgICAgICAiSXMgdGhpcyBhIHF1ZXN0aW9uPz8/ICAiICsKKyAgICAgICAgICAgICJJIHdvbmRlci4uLkhtbS5cbiIgKworICAgICAgICAgICAgIkhhcnJpcyB0aHVtYmVkIGRvd24gc2V2ZXJhbCwgaW5jbHVkaW5nIFwiQXdheSBXZSBHb1wiICIrCisgICAgICAgICAgICAgICAgIih3aGljaCBiZWNhbWUgdGhlIGh1Z2Ugc3VjY2VzcyBPa2xhaG9tYSEpLiBcbiIrCisgICAgICAgICAgICAiT25lIHNwZWNpZXMsIEIuIGFudGhyYWNpcywgaXMgaGlnaGx5IHZpcnVsZW50LlxuIisKKyAgICAgICAgICAgICJXb2xmIHNhaWQgYWJvdXQgU291bmRlcjogXCJCZWF1dGlmdWxseSB0aG91Z2h0LW91dCBhbmQgIisKKyAgICAgICAgICAgICAgICAiZGlyZWN0ZWQuXCJcbiIrCisgICAgICAgICAgICAiSGF2ZSB5b3UgZXZlciBzYWlkLCBcIlRoaXMgaXMgd2hlcmUgSSBzaGFsbCBsaXZlXCI/IFxuIisKKyAgICAgICAgICAgICJIZSAxMDAwLDIzMyw0NTYuMDAwIGFuc3dlcmVkLCBcIllvdSBtYXkgbm90IVwiIFxuIisKKyAgICAgICAgICAgICJBbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcIkhvdyBkbyB5b3UgZG8/XCIuIFxuIisKKyAgICAgICAgICAgICJXaGF0IGlzIHRoZSBwcm9wZXIgdXNlIG9mIHRoZSBhYmJyZXZpYXRpb24gcHAuPyBcbiIrCisgICAgICAgICAgICAiWWVzLCBJIGFtIDEsMjMuMzIyJSBkZWZpbmF0ZWxseSAxMlwiIHRhbGwhISI7CisgICAgKi8KKyAgICAgICAgICAgICIoXCJUaGlzIGlzIGEgY29tcGxldGUgc2VudGVuY2UuXCIpIFRoaXMgaXMgKFwibm90LlwiKSBhbHNvLiAgIgorICAgICAgICAgICAgKyJBbiBhYmJyZXZpYXRpb24gaW4gdGhlIG1pZGRsZSwgZXRjLiBhbmQgb25lIGF0IHRoZSBlbmQsIGV0Yy4gIisKKyAgICAgICAgICAgICAgICAiVGhpcyAiCisgICAgICAgICAgICArImlzIGEgc2ltcGxlIHNhbXBsZSAwMTIuNTY2LDUgc2VudGVuY2UuIEl0IGRvZXNuJ3QgIgorICAgICAgICAgICAgKyJoYXZlIHRvIG1ha2UgYW55IHNlbnNlLCBhcyB5b3UgY2FuIHNlZS4gTmVsIG1lenpvIGRlbCAgYyIKKyAgICAgICAgICAgICsiYW1taW4gZGkgbm9zdHJhIHZpdGEsIG1pIHJpdHJvdmFpIGluIHVuYSBzZWx2YSBvc2N1cmEuIENoZSAiCisgICAgICAgICAgICArImxhIGRyaXR0YSB2aWEgYXZlbyBzbWFycml0YS4gTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKSEgQW5kICIKKyAgICAgICAgICAgICsidGFidWxhdGVkIGNvbHVtbnM6IFx0Q29sMVx0Q29sMlx0Myw0NTYlLlx0ICIKKyAgICAgICAgICAgICsiSXMgdGhpcyBhIHF1ZXN0aW9uPz8/ICBJIHdvbmRlci4uLiBIbW0uIEhhcnJpcyB0aHVtYmVkICIKKyAgICAgICAgICAgICsiZG93biBzZXZlcmFsLCBpbmNsdWRpbmcgXCJBd2F5IFdlIEdvXCIgKHdoaWNoIGJlY2FtZSB0aGUgICIKKyAgICAgICAgICAgICsiaHVnZSBzdWNjZXNzIE9rbGFob21hISkuIE9uZSBzcGVjaWVzLCBCLiBhbnRocmFjaXMsIGlzICAiCisgICAgICAgICAgICArImhpZ2hseSB2aXJ1bGVudC4gV29sZiBzYWlkIGFib3V0IFNvdW5kZXI6IFwiQmVhdXRpZnVsbHkgICIKKyAgICAgICAgICAgICsidGhvdWdodC1vdXQgYW5kIGRpcmVjdGVkLlwiIEhhdmUgeW91IGV2ZXIgc2FpZCwgXCJUaGlzIGlzICIrCisgICAgICAgICAgICAgICAgIndoZXJlIEkgIgorICAgICAgICAgICAgKyJzaGFsbCBsaXZlXCI/IEhlIHNhaWQgMTAwMCwyMzMsNDU2LjAwMCBhbmQgYW5zd2VyZWQsIFwiWW91ICIrCisgICAgICAgICAgICAgICAgIm1heSBub3QhXCIgICIKKyAgICAgICAgICAgICsiQW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogXCJIb3cgZG8geW91IGRvP1wiLiBXaGF0IGlzIHRoZSAgIgorICAgICAgICAgICAgKyJwcm9wZXIgdXNlIG9mIHRoZSBhYmJyZXZpYXRpb24gcHAuPyBZZXMsIEkgYW0gMTJcJyAzXCIgdGFsbCEhIjsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUVudW1DaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gYm91bmQuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgIGlmIChzLmVxdWFscygiQ2hhciIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldENoYXJhY3Rlckluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJXb3JkIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgidFdvcmRCcmVhayIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIkxpbmUgQnJlYWsiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRMaW5lSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgLyogaWYgKHMuZXF1YWxzKCJTZW50ZW5jZSIpKSAqLyB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldFNlbnRlbmNlSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgLy90ZXh0LnNlbGVjdCgwLDApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUZvcndhcmQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZW50ZXJpbmcgaGFuZGxlRm9yd2FyZCIpOworICAgICAgICAgICAgaXRlci5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkRW5kID0gZ2V0U2VsZWN0aW9uRW5kKCk7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGFuZGxlRm9yd2FyZDogb2xkU3RhcnQ9IiArIG9sZFN0YXJ0ICsgIiwgb2xkRW5kPSIgKyBvbGRFbmQpOworCisgICAgICAgICAgICBpZiAob2xkRW5kIDwgMSkgeworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKDAsIGl0ZXIuZm9sbG93aW5nKDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBzID0gaXRlci5mb2xsb3dpbmcob2xkRW5kLTEpOworICAgICAgICAgICAgICAgIGludCBlID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGUgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgZSA9IHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKHMsIGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiPCIgKyBvbGRTdGFydCArICIsIiArIG9sZEVuZCArICI+IC0+IDwiICsKKyAgICAgICAgICAgICAgICBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVCYWNrd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaXRlci5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkRW5kID0gZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgICAgICBpZiAob2xkU3RhcnQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IGl0ZXIuZm9sbG93aW5nKG9sZFN0YXJ0LTEpOworICAgICAgICAgICAgICAgIGludCBzID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKHMsIGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiPCIgKyBvbGRTdGFydCArICIsIiArIG9sZEVuZCArICI+IC0+IDwiICsgcyArICIsIiArIGUgKyAiPiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIENob2ljZSkgeworICAgICAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICB7CisgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldElEKCkgPT0gV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcgJiYgCisgICAgICAgICAgICBldnQuZ2V0V2luZG93KCkgPT0gdGhpcykgeworICAgICAgICAgICAgaGlkZSgpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgaWYgKGFwcGxldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzS2V5RXZlbnQoS2V5RXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldnQuZ2V0SUQoKSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUFJFU1NFRCA6CisgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRLZXlDb2RlKCkgPT0gS2V5RXZlbnQuVktfQ09OVFJPTCkgeworICAgICAgICAgICAgICAgICAgICBpc2N0cmxkb3duXyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUkVMRUFTRUQgOgorICAgICAgICAgICAgICAgIC8vIGtleSBkZXRlY3Rpb24gZm9yIGxlZnQgYW5kIHJpZ2h0IGJ1dHRvbnMgYXJlIHJlbW92ZWQKKyAgICAgICAgICAgICAgICAvLyB0byBlbXVsYXRlIHRoZSBvbGQgcmVsZWFzZSBiZWhhdmlvdXIKKyAgICAgICAgICAgICAgICBpbnQga2V5ID0gZXZ0LmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX04gJiYgaXNjdHJsZG93bl8pIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfUCAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEzZjBjMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBhbmQgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciBkZW1vIGFwcGxpY2F0aW9ucy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mRGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvUmJuZkRlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Yzk2NDZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvUmJuZkRlbW8uamF2YQpAQCAtMCwwICsxLDUyNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJuZjsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKKworcHVibGljIGNsYXNzIFJibmZEZW1vIGV4dGVuZHMgRGVtb0FwcGxldCB7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKgorICAgICAqIGNvZGUgdG8gcnVuIHRoZSBkZW1vIGFzIGFuIGFwcGxpY2F0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJndikgeworICAgICAgICBuZXcgUmJuZkRlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHByb3RlY3RlZCBEaW1lbnNpb24gZ2V0RGVmYXVsdEZyYW1lU2l6ZShEZW1vQXBwbGV0IGFwcGxldCwgRnJhbWUgZikgeworICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbig0MzAsMjcwKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgRnJhbWUgY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KSB7CisgICAgICAgIGZpbmFsIEZyYW1lIHdpbmRvdyA9IG5ldyBGcmFtZSgiTnVtYmVyIFNwZWxsb3V0IERlbW8iKTsKKyAgICAgICAgd2luZG93LnNldFNpemUoODAwLCA2MDApOworICAgICAgICB3aW5kb3cuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICAgUGFuZWwgbWFpblBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIG1haW5QYW5lbC5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMSwyKSk7CisKKyAgICAgICAgY29tbWVudGFyeUZpZWxkID0gbmV3IFRleHRBcmVhKCIiLCAwLCAwLCBUZXh0QXJlYS5TQ1JPTExCQVJTX1ZFUlRJQ0FMX09OTFkpOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0U2l6ZSg4MDAsIDUwKTsKKyAgICAgICAgY29tbWVudGFyeUZpZWxkLnNldFRleHQoUmJuZlNhbXBsZVJ1bGVTZXRzLnNhbXBsZVJ1bGVTZXRDb21tZW50YXJ5WzBdKTsKKyAgICAgICAgY29tbWVudGFyeUZpZWxkLnNldEVkaXRhYmxlKGZhbHNlKTsKKyAgICAgICAgY29tbWVudGFyeUZpZWxkLnNldEZvbnQobmV3IEZvbnQoIkhlbHZldGljYSIsIEZvbnQuUExBSU4sIDE0KSk7CisKKyAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJibmZTYW1wbGVSdWxlU2V0cy51c0VuZ2xpc2gsIExvY2FsZS5VUyk7CisgICAgICAgIHNwZWxsb3V0Rm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUobGVuaWVudFBhcnNlKTsKKyAgICAgICAgcG9wdWxhdGVSdWxlU2V0TWVudSgpOworICAgICAgICBudW1iZXJGb3JtYXR0ZXIgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMjIyMjIyMjIyIpOworICAgICAgICBwYXJzZVBvc2l0aW9uID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIHRoZU51bWJlciA9IDA7CisKKyAgICAgICAgbnVtYmVyRmllbGQgPSBuZXcgVGV4dEZpZWxkKCk7CisgICAgICAgIG51bWJlckZpZWxkLnNldEZvbnQobmV3IEZvbnQoIlNlcmlmIiwgRm9udC5QTEFJTiwgMjQpKTsKKyAgICAgICAgdGV4dEZpZWxkID0gbmV3IERlbW9UZXh0RmllbGRIb2xkZXIoKTsKKyAgICAgICAgdGV4dEZpZWxkLnNldEZvbnQobmV3IEZvbnQoIlNlcmlmIiwgRm9udC5QTEFJTiwgMjQpKTsKKyAgICAgICAgcnVsZXNGaWVsZCA9IG5ldyBEZW1vVGV4dEZpZWxkSG9sZGVyKCk7CisgICAgICAgIHJ1bGVzRmllbGQuc2V0Rm9udChuZXcgRm9udCgiU2VyaWYiLCBGb250LlBMQUlOLCAxNCkpOworICAgICAgICBsZW5pZW50UGFyc2VCdXR0b24gPSBuZXcgQ2hlY2tib3goIkxlbmllbnQgcGFyc2UiLCBsZW5pZW50UGFyc2UpOworCisgICAgICAgIG51bWJlckZpZWxkLmFkZFRleHRMaXN0ZW5lcihuZXcgVGV4dExpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgdGV4dFZhbHVlQ2hhbmdlZChUZXh0RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmICghbnVtYmVyRmllbGRIYXNGb2N1cykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgU3RyaW5nIGZpZWxkVGV4dCA9ICgoVGV4dENvbXBvbmVudCkoZS5nZXRTb3VyY2UoKSkpLmdldFRleHQoKTsKKyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgIE51bWJlciB0ZW1wID0gbnVtYmVyRm9ybWF0dGVyLnBhcnNlKGZpZWxkVGV4dCwgcGFyc2VQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgaWYgKHRlbXAgPT0gbnVsbCB8fCBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0aGVOdW1iZXIgPSAwOworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCgiUEFSU0UgRVJST1IiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRoZU51bWJlciA9IHRlbXAuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoc3BlbGxvdXRGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlciwgcnVsZVNldE5hbWUpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBudW1iZXJGaWVsZC5hZGRGb2N1c0xpc3RlbmVyKG5ldyBGb2N1c0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyRmllbGRIYXNGb2N1cyA9IGZhbHNlOworICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNHYWluZWQoRm9jdXNFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyRmllbGRIYXNGb2N1cyA9IHRydWU7CisgICAgICAgICAgICAgICAgbnVtYmVyRmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICB0ZXh0RmllbGQuYWRkS2V5TGlzdGVuZXIobmV3IEtleUFkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0S2V5Q2hhcigpID09ICdcdCcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZpZWxkVGV4dCA9ICgoVGV4dENvbXBvbmVudCkoZS5nZXRTb3VyY2UoKSkpLmdldFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gc3BlbGxvdXRGb3JtYXR0ZXIucGFyc2UoZmllbGRUZXh0LCBwYXJzZVBvc2l0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZU51bWJlciA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJGaWVsZC5zZXRUZXh0KCJQQVJTRSBFUlJPUiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnNlbGVjdEFsbCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA8IGZpZWxkVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnNlbGVjdChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCksIGZpZWxkVGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJGaWVsZC5zZXRUZXh0KG51bWJlckZvcm1hdHRlci5mb3JtYXQodGhlTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJGaWVsZC5zZXRUZXh0KG51bWJlckZvcm1hdHRlci5mb3JtYXQodGhlTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisKKyAgICAgICAgdGV4dEZpZWxkLmFkZEZvY3VzTGlzdGVuZXIobmV3IEZvY3VzQWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gc3BlbGxvdXRGb3JtYXR0ZXIucGFyc2UoZmllbGRUZXh0LCBwYXJzZVBvc2l0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID09IDApCisgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQoIlBBUlNFIEVSUk9SIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBudW1iZXJGaWVsZC5zZXRUZXh0KG51bWJlckZvcm1hdHRlci5mb3JtYXQodGhlTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnNldFRleHQodGV4dEZpZWxkLmdldFRleHQoKSk7IC8vIHRleHRGaWVsZC5yZXBhaW50KCkgZGlkbid0IHdvcmsgcmlnaHQKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNHYWluZWQoRm9jdXNFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnNlbGVjdEFsbCgpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisKKyAgICAgICAgcnVsZXNGaWVsZC5hZGRLZXlMaXN0ZW5lcihuZXcgS2V5QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRLZXlDaGFyKCkgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEl0ZW0oKS5lcXVhbHMoIkN1c3RvbSIpIHx8ICFmaWVsZFRleHQuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmJuZlNhbXBsZVJ1bGVTZXRzLnNhbXBsZVJ1bGVTZXRzW2Zvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRlbXAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZpZWxkVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5zZXRMZW5pZW50UGFyc2VNb2RlKGxlbmllbnRQYXJzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wdWxhdGVSdWxlU2V0TWVudSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWxsb3V0Rm9ybWF0dGVyID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21SdWxlU2V0ID0gZmllbGRUZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlck1lbnUuc2VsZWN0KCJDdXN0b20iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0VGV4dChSYm5mU2FtcGxlUnVsZVNldHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZVJ1bGVTZXRDb21tZW50YXJ5W1JibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldENvbW1lbnRhcnkubGVuZ3RoIC0gMV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiB4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoeC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBydWxlc0ZpZWxkLmFkZEZvY3VzTGlzdGVuZXIobmV3IEZvY3VzQWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIGlmIChmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSXRlbSgpLmVxdWFscygiQ3VzdG9tIikgfHwgIWZpZWxkVGV4dC5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0c1tmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGVtcCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZmllbGRUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgcG9wdWxhdGVSdWxlU2V0TWVudSgpOworICAgICAgICAgICAgICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tUnVsZVNldCA9IGZpZWxkVGV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlck1lbnUuc2VsZWN0KCJDdXN0b20iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24geCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoeC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBydWxlc0ZpZWxkLnNldFRleHQocnVsZXNGaWVsZC5nZXRUZXh0KCkpOyAvLyBydWxlc0ZpZWxkLnJlcGFpbnQoKSBkaWRuJ3Qgd29yayByaWdodAorICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisKKyAgICAgICAgbGVuaWVudFBhcnNlQnV0dG9uLmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGxlbmllbnRQYXJzZSA9IGxlbmllbnRQYXJzZUJ1dHRvbi5nZXRTdGF0ZSgpOworICAgICAgICAgICAgICAgIHNwZWxsb3V0Rm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUobGVuaWVudFBhcnNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgbnVtYmVyRmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgIHRleHRGaWVsZC5zZXRUZXh0KHNwZWxsb3V0Rm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIsIHJ1bGVTZXROYW1lKSk7CisKKyAgICAgICAgUGFuZWwgbGVmdFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGxlZnRQYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgUGFuZWwgcGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIFBhbmVsIHBhbmVsMSA9IG5ldyBQYW5lbCgpOworICAgICAgICBwYW5lbDEuc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDMsIDEpKTsKKyAgICAgICAgcGFuZWwxLmFkZChuZXcgUGFuZWwoKSk7CisgICAgICAgIHBhbmVsMS5hZGQobnVtYmVyRmllbGQsICJDZW50ZXIiKTsKKyAgICAgICAgcGFuZWwxLmFkZChsZW5pZW50UGFyc2VCdXR0b24pOworICAgICAgICBwYW5lbC5hZGQocGFuZWwxLCAiQ2VudGVyIik7CisgICAgICAgIFBhbmVsIHBhbmVsMiA9IG5ldyBQYW5lbCgpOworICAgICAgICBwYW5lbDIuc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDMsIDMpKTsKKyAgICAgICAgQnV0dG9uIGJ1dHRvbiA9IG5ldyBCdXR0b24oIisxMDAiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJvbGwoMTAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIisxMCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcm9sbCgxMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICAgICAgcGFuZWwyLmFkZChidXR0b24pOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCIrMSIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcm9sbCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIjwiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHRoZU51bWJlciAqPSAxMDsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIHBhbmVsMi5hZGQobmV3IFBhbmVsKCkpOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCI+Iik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICB0aGVOdW1iZXIgLz0gMTA7CisgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICAgICAgcGFuZWwyLmFkZChidXR0b24pOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCItMTAwIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKC0xMDApOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiLTEwIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKC0xMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICAgICAgcGFuZWwyLmFkZChidXR0b24pOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCItMSIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcm9sbCgtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICAgICAgcGFuZWwyLmFkZChidXR0b24pOworICAgICAgICBwYW5lbC5hZGQocGFuZWwyLCAiRWFzdCIpOworICAgICAgICBsZWZ0UGFuZWwuYWRkKHBhbmVsLCAiTm9ydGgiKTsKKyAgICAgICAgbGVmdFBhbmVsLmFkZCh0ZXh0RmllbGQsICJDZW50ZXIiKTsKKworICAgICAgICBQYW5lbCByaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHJpZ2h0UGFuZWwuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIGZvcm1hdHRlck1lbnUgPSBuZXcgQ2hvaWNlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUmJuZlNhbXBsZVJ1bGVTZXRzLnNhbXBsZVJ1bGVTZXROYW1lcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGZvcm1hdHRlck1lbnUuYWRkSXRlbShSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldE5hbWVzW2ldKTsKKyAgICAgICAgZm9ybWF0dGVyTWVudS5hZGRJdGVtKCJDdXN0b20iKTsKKyAgICAgICAgZm9ybWF0dGVyTWVudS5hZGRJdGVtTGlzdGVuZXIobmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBDaG9pY2Ugc291cmNlID0gKENob2ljZSkoZS5nZXRTb3VyY2UoKSk7CisgICAgICAgICAgICAgICAgaW50IGl0ZW0gPSBzb3VyY2UuZ2V0U2VsZWN0ZWRJbmRleCgpOworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldExvY2FsZXNbaXRlbV07CisKKyAgICAgICAgICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0VGV4dChSYm5mU2FtcGxlUnVsZVNldHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZVJ1bGVTZXRDb21tZW50YXJ5W2l0ZW1dKTsKKworICAgICAgICAgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCAmJiAobG9jYWxlLmdldExhbmd1YWdlKCkuZXF1YWxzKCJpdyIpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoInJ1IikgfHwgbG9jYWxlLmdldExhbmd1YWdlKCkuZXF1YWxzKCJqYSIpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImVsIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscygiemgiKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkLnRvZ2dsZVBhbmVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXNGaWVsZC50b2dnbGVQYW5lcyhmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQudG9nZ2xlUGFuZXModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzRmllbGQudG9nZ2xlUGFuZXModHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbWFrZU5ld1NwZWxsb3V0Rm9ybWF0dGVyKCk7CisgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBydWxlU2V0TWVudSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgcG9wdWxhdGVSdWxlU2V0TWVudSgpOworCisgICAgICAgIHJ1bGVTZXRNZW51LmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJ1bGVTZXROYW1lID0gcnVsZVNldE1lbnUuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBQYW5lbCBtZW51UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgbWVudVBhbmVsLnNldExheW91dChuZXcgR3JpZExheW91dCgxLCAyKSk7CisgICAgICAgIG1lbnVQYW5lbC5hZGQoZm9ybWF0dGVyTWVudSk7CisgICAgICAgIG1lbnVQYW5lbC5hZGQocnVsZVNldE1lbnUpOworICAgICAgICByaWdodFBhbmVsLmFkZChtZW51UGFuZWwsICJOb3J0aCIpOworCisgICAgICAgIHJ1bGVzRmllbGQuc2V0VGV4dChSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldHNbZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEluZGV4KCldKTsKKyAgICAgICAgcmlnaHRQYW5lbC5hZGQocnVsZXNGaWVsZCwgIkNlbnRlciIpOworCisgICAgICAgIG1haW5QYW5lbC5hZGQobGVmdFBhbmVsKTsKKyAgICAgICAgbWFpblBhbmVsLmFkZChyaWdodFBhbmVsKTsKKworICAgICAgICB3aW5kb3cuYWRkKG1haW5QYW5lbCwgIkNlbnRlciIpOworICAgICAgICB3aW5kb3cuYWRkKGNvbW1lbnRhcnlGaWVsZCwgIlNvdXRoIik7CisKKyAgICAgICAgd2luZG93LmRvTGF5b3V0KCk7CisgICAgICAgIHdpbmRvdy5zaG93KCk7CisgICAgICAgIHJldHVybiB3aW5kb3c7CisgICAgfQorCisgICAgdm9pZCByb2xsKGludCBkZWx0YSkgeworICAgICAgICB0aGVOdW1iZXIgKz0gZGVsdGE7CisgICAgICAgIHJlZGlzcGxheSgpOworICAgIH0KKworICAgIHZvaWQgcmVkaXNwbGF5KCkgeworICAgICAgICBudW1iZXJGaWVsZC5zZXRUZXh0KG51bWJlckZvcm1hdHRlci5mb3JtYXQodGhlTnVtYmVyKSk7CisgICAgICAgIHRleHRGaWVsZC5zZXRUZXh0KHNwZWxsb3V0Rm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIsIHJ1bGVTZXROYW1lKSk7CisgICAgfQorCisgICAgdm9pZCBtYWtlTmV3U3BlbGxvdXRGb3JtYXR0ZXIoKSB7CisgICAgICAgIGludCBpdGVtID0gZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEluZGV4KCk7CisgICAgICAgIFN0cmluZyBmb3JtYXR0ZXJNZW51SXRlbSA9IGZvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJdGVtKCk7CisKKyAgICAgICAgaWYgKGZvcm1hdHRlck1lbnVJdGVtLmVxdWFscygiQ3VzdG9tIikpIHsKKyAgICAgICAgICAgIHJ1bGVzRmllbGQuc2V0VGV4dChjdXN0b21SdWxlU2V0KTsKKyAgICAgICAgICAgIHNwZWxsb3V0Rm9ybWF0dGVyID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChjdXN0b21SdWxlU2V0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJ1bGVzRmllbGQuc2V0VGV4dChSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldHNbaXRlbV0pOworCisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlID0gUmJuZlNhbXBsZVJ1bGVTZXRzLnNhbXBsZVJ1bGVTZXRMb2NhbGVzW2l0ZW1dOworICAgICAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKQorICAgICAgICAgICAgICAgIGxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisKKyAgICAgICAgICAgIHNwZWxsb3V0Rm9ybWF0dGVyID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChSYm5mU2FtcGxlUnVsZVNldHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldHNbaXRlbV0sIGxvY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgfQorCisgICAgdm9pZCBwb3B1bGF0ZVJ1bGVTZXRNZW51KCkgeworICAgICAgICBTdHJpbmdbXSBydWxlU2V0TmFtZXMgPSBzcGVsbG91dEZvcm1hdHRlci5nZXRSdWxlU2V0TmFtZXMoKTsKKworICAgICAgICBpZiAocnVsZVNldE1lbnUgIT0gbnVsbCkgeworICAgICAgICAgICAgcnVsZVNldE1lbnUucmVtb3ZlQWxsKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXROYW1lcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBydWxlU2V0TWVudS5hZGRJdGVtKHJ1bGVTZXROYW1lc1tpXSk7CisKKyAgICAgICAgICAgIHJ1bGVTZXROYW1lID0gcnVsZVNldE1lbnUuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVsZVNldE5hbWUgPSBydWxlU2V0TmFtZXNbMF07CisgICAgfQorCisgICAgcHJpdmF0ZSBGcmFtZSBkZW1vV2luZG93ID0gbnVsbDsKKworICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBudW1iZXJGaWVsZDsKKyAgICBwcml2YXRlIERlbW9UZXh0RmllbGRIb2xkZXIgdGV4dEZpZWxkOworICAgIHByaXZhdGUgRGVtb1RleHRGaWVsZEhvbGRlciBydWxlc0ZpZWxkOworICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBjb21tZW50YXJ5RmllbGQ7CisgICAgcHJpdmF0ZSBDaGVja2JveCBsZW5pZW50UGFyc2VCdXR0b247CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbnVtYmVyRmllbGRIYXNGb2N1cyA9IHRydWU7CisKKyAgICBwcml2YXRlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBzcGVsbG91dEZvcm1hdHRlcjsKKyAgICBwcml2YXRlIERlY2ltYWxGb3JtYXQgbnVtYmVyRm9ybWF0dGVyOworICAgIHByaXZhdGUgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uOworCisgICAgcHJpdmF0ZSBib29sZWFuIGxlbmllbnRQYXJzZSA9IHRydWU7CisKKyAgICBwcml2YXRlIGRvdWJsZSB0aGVOdW1iZXIgPSAwOworICAgIHByaXZhdGUgYm9vbGVhbiBjYW5FZGl0ID0gdHJ1ZTsKKworICAgIHByaXZhdGUgQ2hvaWNlIGZvcm1hdHRlck1lbnU7CisgICAgcHJpdmF0ZSBDaG9pY2UgcnVsZVNldE1lbnU7CisgICAgcHJpdmF0ZSBTdHJpbmcgcnVsZVNldE5hbWU7CisKKyAgICBwcml2YXRlIFN0cmluZyBjdXN0b21SdWxlU2V0ID0gIk5PIFJVTEVTISI7Cit9CisKK2NsYXNzIERlbW9UZXh0RmllbGQgZXh0ZW5kcyBDb21wb25lbnQgeworICAgIHB1YmxpYyBEZW1vVGV4dEZpZWxkKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgdGhpcy5yZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gdGV4dDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgIEZvbnQgZm9udCA9IGdldEZvbnQoKTsKKyAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgIGcuc2V0Rm9udChmb250KTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICBiaS5zZXRUZXh0KHRleHQpOworICAgICAgICBpbnQgbGluZUhlaWdodCA9IGZtLmdldEhlaWdodCgpOworICAgICAgICBpbnQgd2lkdGggPSBnZXRTaXplKCkud2lkdGg7CisgICAgICAgIGludCBwZW5ZID0gZm0uZ2V0QXNjZW50KCk7CisgICAgICAgIGludCBsaW5lU3RhcnQgPSAwOworICAgICAgICBpbnQgdGVtcExpbmVFbmQgPSBiaS5maXJzdCgpOworICAgICAgICBpbnQgbGluZUVuZCA9IDA7CisgICAgICAgIGludCBtYXhMaW5lRW5kID0gMDsKKyAgICAgICAgdG90YWxIZWlnaHQgPSAwOworCisgICAgICAgIHdoaWxlIChsaW5lU3RhcnQgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBtYXhMaW5lRW5kID0gdGV4dC5pbmRleE9mKCdcbicsIGxpbmVTdGFydCk7CisgICAgICAgICAgICBpZiAobWF4TGluZUVuZCA9PSAtMSkKKyAgICAgICAgICAgICAgICBtYXhMaW5lRW5kID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgICAgICB3aGlsZSAodGVtcExpbmVFbmQgIT0gQnJlYWtJdGVyYXRvci5ET05FICYmIGZtLnN0cmluZ1dpZHRoKHRleHQuc3Vic3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVTdGFydCwgdGVtcExpbmVFbmQpKSA8IHdpZHRoKSB7CisgICAgICAgICAgICAgICAgbGluZUVuZCA9IHRlbXBMaW5lRW5kOworICAgICAgICAgICAgICAgIHRlbXBMaW5lRW5kID0gYmkubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxpbmVTdGFydCA+PSBsaW5lRW5kKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBMaW5lRW5kID09IEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgICAgICAgICAgbGluZUVuZCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsaW5lRW5kID0gdGVtcExpbmVFbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZUVuZCA+IG1heExpbmVFbmQpCisgICAgICAgICAgICAgICAgbGluZUVuZCA9IG1heExpbmVFbmQ7CisgICAgICAgICAgICBnLmRyYXdTdHJpbmcodGV4dC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lRW5kKSwgMCwgcGVuWSk7CisgICAgICAgICAgICBwZW5ZICs9IGxpbmVIZWlnaHQ7CisgICAgICAgICAgICB0b3RhbEhlaWdodCArPSBsaW5lSGVpZ2h0OworICAgICAgICAgICAgbGluZVN0YXJ0ID0gbGluZUVuZDsKKyAgICAgICAgICAgIGlmIChsaW5lU3RhcnQgPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHQuY2hhckF0KGxpbmVTdGFydCkgPT0gJ1xuJykKKyAgICAgICAgICAgICAgICArK2xpbmVTdGFydDsKKyAgICAgICAgfQorICAgIH0KKworLyoKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CisgICAgICAgIERpbWVuc2lvbiBzaXplID0gZ2V0UGFyZW50KCkuZ2V0U2l6ZSgpOworICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbihzaXplLndpZHRoLCB0b3RhbEhlaWdodCk7CisgICAgfQorKi8KKworICAgIHByaXZhdGUgU3RyaW5nIHRleHQ7CisgICAgcHJpdmF0ZSBpbnQgdG90YWxIZWlnaHQ7Cit9CisKK2NsYXNzIERlbW9UZXh0RmllbGRIb2xkZXIgZXh0ZW5kcyBQYW5lbCB7CisgICAgcHVibGljIERlbW9UZXh0RmllbGRIb2xkZXIoKSB7CisgICAgICAgIHRmMSA9IG5ldyBUZXh0QXJlYSgiIiwgMCwgMCwgVGV4dEFyZWEuU0NST0xMQkFSU19WRVJUSUNBTF9PTkxZKTsKKyAgICAgICAgdGYyID0gbmV3IERlbW9UZXh0RmllbGQoKTsKKyAgICAgICAgc3AgPSBuZXcgU2Nyb2xsUGFuZSgpOworCisgICAgICAgIHNldExheW91dChuZXcgQ2FyZExheW91dCgpKTsKKworICAgICAgICBzcC5hZGQodGYyLCAiVGV4dEZpZWxkMSIpOworICAgICAgICBzcC5zZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgYWRkKHRmMSwgIlRlc3RGaWVsZDIiKTsKKyAgICAgICAgYWRkKHNwLCAiU2Nyb2xsUGFuZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEZvY3VzTGlzdGVuZXIoRm9jdXNMaXN0ZW5lciBsKSB7CisgICAgICAgIHRmMS5hZGRGb2N1c0xpc3RlbmVyKGwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEtleUxpc3RlbmVyKEtleUxpc3RlbmVyIGwpIHsKKyAgICAgICAgdGYxLmFkZEtleUxpc3RlbmVyKGwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgdGYxLnNldFRleHQodGV4dCk7CisgICAgICAgIHRmMi5zZXRUZXh0KHRleHQpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIHRmMS5nZXRUZXh0KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICB0ZjEuc2VsZWN0KHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdEFsbCgpIHsKKyAgICAgICAgdGYxLnNlbGVjdEFsbCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRvZ2dsZVBhbmVzKGJvb2xlYW4gY2FuU2hvd1JlYWxUZXh0RmllbGQpIHsKKyAgICAgICAgaWYgKGNhblNob3dSZWFsVGV4dEZpZWxkICE9IHNob3dpbmdSZWFsVGV4dEZpZWxkKSB7CisgICAgICAgICAgICBDYXJkTGF5b3V0IGxheW91dCA9IChDYXJkTGF5b3V0KShnZXRMYXlvdXQoKSk7CisgICAgICAgICAgICBsYXlvdXQubmV4dCh0aGlzKTsKKyAgICAgICAgICAgIHNob3dpbmdSZWFsVGV4dEZpZWxkID0gY2FuU2hvd1JlYWxUZXh0RmllbGQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFRleHRBcmVhIHRmMSA9IG51bGw7CisgICAgcHJpdmF0ZSBEZW1vVGV4dEZpZWxkIHRmMiA9IG51bGw7CisgICAgcHJpdmF0ZSBTY3JvbGxQYW5lIHNwID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd2luZ1JlYWxUZXh0RmllbGQgPSB0cnVlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvUmJuZlNhbXBsZVJ1bGVTZXRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mU2FtcGxlUnVsZVNldHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OGNmMTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvUmJuZlNhbXBsZVJ1bGVTZXRzLmphdmEKQEAgLTAsMCArMSwxOTQxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYm5mOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIGNvbGxlY3Rpb24gb2YgZXhhbXBsZSBydWxlIHNldHMgZm9yIHVzZSB3aXRoIFJ1bGVCYXNlZE51bWJlckZvcm1hdC4KKyAqIFRoZXNlIGV4YW1wbGVzIGFyZSBpbnRlbmRlZCB0byBzZXJ2ZSBib3RoIGFzIGRlbW9uc3RyYXRpb25zIG9mIHdoYXQgY2FuCisgKiBiZSBkb25lIHdpdGggdGhpcyBmcmFtZXdvcmssIGFuZCBhcyBzdGFydGluZyBwb2ludHMgZm9yIGRlc2lnbmluZyBuZXcKKyAqIHJ1bGUgc2V0cy4KKyAqCisgKiBGb3IgdGhvc2UgdGhhdCBjbGFpbSB0byByZXByZXNlbnQgbnVtYmVyLXNwZWxsb3V0IHJ1bGVzIGZvciBsYW5ndWFnZXMKKyAqIG90aGVyIHRoYW4gVS5TLiBFbmdsaXNoLCB3ZSBtYWtlIG5vIGNsYWltcyBvZiBlaXRoZXIgYWNjdXJhY3kgb3IKKyAqIGNvbXBsZXRlbmVzcy4gIEluIGZhY3QsIHdlIGtub3cgdGhlbSB0byBiZSBpbmNvbXBsZXRlLCBhbmQgc3VzcGVjdAorICogbW9zdCBoYXZlIG1pc3Rha2VzIGluIHRoZW0uICBJZiB5b3Ugc2VlIHNvbWV0aGluZyB0aGF0IHlvdSBrbm93IGlzIHdyb25nLAorICogcGxlYXNlIHRlbGwgdXMhCisgKgorICogQGF1dGhvciBSaWNoYXJkIEdpbGxhbQorICovCitwdWJsaWMgY2xhc3MgUmJuZlNhbXBsZVJ1bGVTZXRzIHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU3BlbGxvdXQgcnVsZXMgZm9yIHZhcmlvdXMgbGFuZ3VhZ2VzCisgICAgLy8KKyAgICAvLyBUaGUgZm9sbG93aW5nIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBkZXNjcmlwdGlvbnMgc2hvdyB0aGUgcnVsZXMgZm9yCisgICAgLy8gc3BlbGxpbmcgb3V0IG51bWVyaWMgdmFsdWVzIGluIHZhcmlvdXMgbGFuZ3VhZ2VzLiAgQXMgbWVudGlvbmVkCisgICAgLy8gYmVmb3JlLCB3ZSBjYW5ub3Qgdm91Y2ggZm9yIHRoZSBhY2N1cmFjeSBvciBjb21wbGV0ZW5lc3Mgb2YgdGhpcworICAgIC8vIGRhdGEsIGFsdGhvdWdoIHdlIGJlbGlldmUgaXQncyBwcmV0dHkgY2xvc2UuICBCYXNpY2FsbHksIHRoaXMKKyAgICAvLyByZXByZXNlbnRzIG9uZSBkYXkncyB3b3J0aCBvZiBXZWItc3VyZmluZy4gIElmIHlvdSBjYW4gc3VwcGx5IHRoZQorICAgIC8vIG1pc3NpbmcgaW5mb3JtYXRpb24gaW4gYW55IG9mIHRoZXNlIHJ1bGUgc2V0cywgb3IgaWYgeW91IGZpbmQgZXJyb3JzLAorICAgIC8vIG9yIGlmIHlvdSBjYW4gc3VwcGx5IHNwZWxsb3V0IHJ1bGVzIGZvciBsYW5ndWFnZXMgdGhhdCBhcmVuJ3Qgc2hvd24KKyAgICAvLyBoZXJlLCB3ZSB3YW50IHRvIGhlYXIgZnJvbSB5b3UhCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBVLlMuIEVuZ2xpc2guICBUaGlzIGRlbW9uc3RyYXRpb24gdmVyc2lvbiBvZiB0aGUKKyAgICAgKiBVLlMuIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMgaGFzIGZvdXIgdmFyaWFudHM6IDEpICVzaW1wbGlmaWVkIGlzIGEKKyAgICAgKiBzZXQgb2YgcnVsZXMgc2hvd2luZyB0aGUgc2ltcGxlIG1ldGhvZCBvZiBzcGVsbGluZyBvdXQgbnVtYmVycyBpbgorICAgICAqIEVuZ2xpc2g6IDI4OSBpcyBmb3JtYXR0ZWQgYXMgInR3byBodW5kcmVkIGVpZ2h0eS1uaW5lIi4gIDIpICVhbHQtdGVlbnMKKyAgICAgKiBpcyB0aGUgc2FtZSBhcyAlc2ltcGxpZmllZCwgZXhjZXB0IHRoYXQgdmFsdWVzIGJldHdlZW4gMSwwMDAgYW5kIDksOTk5CisgICAgICogd2hvc2UgaHVuZHJlZHMgcGxhY2UgaXNuJ3QgemVybyBhcmUgZm9ybWF0dGVkIGluIGh1bmRyZWRzLiAgRm9yIGV4YW1wbGUsCisgICAgICogMSw5ODMgaXMgZm9ybWF0dGVkIGFzICJuaW5ldGVlbiBodW5kcmVkIGVpZ2h0eS10aHJlZSwiIGFuZCAyLDE4MyBpcworICAgICAqIGZvcm1hdHRlZCBhcyAidHdlbnR5LW9uZSBodW5kcmVkIGVpZ2h0eS10aHJlZSwiIGJ1dCAyLDA4MyBpcyBzdGlsbAorICAgICAqIGZvcm1hdHRlZCBhcyAidHdvIHRob3VzYW5kIGVpZ2h0eS10aHJlZS4iICAzKSAlb3JkaW5hbCBmb3JtYXRzIHRoZQorICAgICAqIHZhbHVlcyBhcyBvcmRpbmFsIG51bWJlcnMgaW4gRW5nbGlzaCAoZS5nLiwgMjg5IGlzICJ0d28gaHVuZHJlZCBlaWdodHktCisgICAgICogbmludGgiKS4gIDQpICVkZWZhdWx0IHVzZXMgYSBtb3JlIGNvbXBsaWNhdGVkIGFsZ29yaXRobSB0byBmb3JtYXQKKyAgICAgKiBudW1iZXJzIGluIGEgbW9yZSBuYXR1cmFsIHdheTogMjg5IGlzIGZvcm1hdHRlZCBhcyAidHdvIGh1bmRyZWQgQU5ECisgICAgICogZWlnaHR5LW5pbmUiIGFuZCBjb21tYXMgYXJlIGluc2VydGVkIGJldHdlZW4gdGhlIHRob3VzYW5kcyBncm91cHMgZm9yCisgICAgICogdmFsdWVzIGFib3ZlIDEwMCwwMDAuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNFbmdsaXNoID0KKyAgICAgICAgLy8gVGhpcyBydWxlIHNldCBzaG93cyB0aGUgbm9ybWFsIHNpbXBsZSBmb3JtYXR0aW5nIHJ1bGVzIGZvciBFbmdsaXNoCisgICAgICAgICIlc2ltcGxpZmllZDpcbiIKKyAgICAgICAgICAgICAgIC8vIG5lZ2F0aXZlIG51bWJlciBydWxlLiAgVGhpcyBydWxlIGlzIHVzZWQgdG8gZm9ybWF0IG5lZ2F0aXZlCisgICAgICAgICAgICAgICAvLyBudW1iZXJzLiAgVGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBudW1iZXIncyBhYnNvbHV0ZQorICAgICAgICAgICAgICAgLy8gdmFsdWUgaXMgcGxhY2VkIHdoZXJlIHRoZSA+PiBpcy4KKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGZhY3Rpb24gcnVsZS4gIFRoaXMgcnVsZSBpcyB1c2VkIGZvciBmb3JtYXR0aW5nIG51bWJlcnMKKyAgICAgICAgICAgICAgIC8vIHdpdGggZnJhY3Rpb25hbCBwYXJ0cy4gIFRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUKKyAgICAgICAgICAgICAgIC8vIG51bWJlcidzIGludGVncmFsIHBhcnQgaXMgc3Vic3RpdHV0ZWQgZm9yIHRoZSA8PCwgYW5kCisgICAgICAgICAgICAgICAvLyB0aGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydAorICAgICAgICAgICAgICAgLy8gKG9uZSBkaWdpdCBhdCBhIHRpbWUsIGUuZy4sIDAuMTIzIGlzICJ6ZXJvIHBvaW50IG9uZSB0d28KKyAgICAgICAgICAgICAgIC8vIHRocmVlIikgcmVwbGFjZXMgdGhlID4+LgorICAgICAgICArICIgICAgeC54OiA8PCBwb2ludCA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSBydWxlcyBmb3IgdGhlIHZhbHVlcyBmcm9tIDAgdG8gMTkgYXJlIHNpbXBseSB0aGUKKyAgICAgICAgICAgICAgIC8vIHdvcmRzIGZvciB0aG9zZSBudW1iZXJzCisgICAgICAgICsgIiAgICB6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIgICAgdGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIgorICAgICAgICArICIgICAgICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIgorICAgICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGF0IDIwLCB3ZSB1c2UgdGhlID4+IHRvIG1hcmsgdGhlIHBvc2l0aW9uIHdoZXJlCisgICAgICAgICAgICAgICAvLyB0aGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlIG51bWJlcidzIG9uZXMgZGlnaXQuICBUaHVzLAorICAgICAgICAgICAgICAgLy8gd2Ugb25seSBuZWVkIGEgbmV3IHJ1bGUgYXQgZXZlcnkgbXVsdGlwbGUgb2YgMTAuICBUZXh0IGluCisgICAgICAgICAgICAgICAvLyBiYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBhbgorICAgICAgICAgICAgICAgLy8gZXZlbiBtdWx0aXBsZSBvZiAxMC4KKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBiZWdpbm5pbmcgYXQgMTAwLCB3ZSBjYW4gdXNlIDw8IHRvIG1hcmsgdGhlIHBvc2l0aW9uIHdoZXJlCisgICAgICAgICAgICAgICAvLyB0aGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlIG11bHRpcGxlIG9mIDEwMCBpcyB0byBiZQorICAgICAgICAgICAgICAgLy8gaW5zZXJ0ZWQuICBOb3RpY2UgYWxzbyB0aGF0IHRoZSBtZWFuaW5nIG9mID4+IGhhcyBzaGlmdGVkOgorICAgICAgICAgICAgICAgLy8gaGVyZSwgaXQgcmVmZXJzIHRvIGJvdGggdGhlIG9uZXMgcGxhY2UgYW5kIHRoZSB0ZW5zIHBsYWNlLgorICAgICAgICAgICAgICAgLy8gVGhlIG1lYW5pbmdzIG9mIHRoZSA8PCBhbmQgPj4gdG9rZW5zIGRlcGVuZCBvbiB0aGUgYmFzZSB2YWx1ZQorICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJ1bGUuICBBIHJ1bGUncyBkaXZpc29yIGlzICh1c3VhbGx5KSB0aGUgaGlnaGVzdAorICAgICAgICAgICAgICAgLy8gcG93ZXIgb2YgMTAgdGhhdCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJ1bGUncyBiYXNlCisgICAgICAgICAgICAgICAvLyB2YWx1ZS4gIFRoZSB2YWx1ZSBiZWluZyBmb3JtYXR0ZWQgaXMgZGl2aWRlZCBieSB0aGUgcnVsZSdzCisgICAgICAgICAgICAgICAvLyBkaXZpc29yLCBhbmQgdGhlIGludGVncmFsIHF1b3RpZW50IGlzIHVzZWQgdG8gZ2V0IHRoZSB0ZXh0CisgICAgICAgICAgICAgICAvLyBmb3IgPDwsIHdoaWxlIHRoZSByZW1haW5kZXIgaXMgdXNlZCB0byBwcm9kdWNlIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAvLyBmb3IgPj4uICBBZ2FpbiwgdGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIGlmIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICAgICAgICAgICAvLyAoaW4gdGhpcyBjYXNlLCBhbiBldmVuIG11bHRpcGxlIG9mIDEwMCkKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gVGhlIHJ1bGVzIGZvciB0aGUgaGlnaGVyIG51bWJlcnMgd29yayB0aGUgc2FtZSB3YXkgYXMgdGhlCisgICAgICAgICAgICAgICAvLyBydWxlIGZvciAxMDA6IEFnYWluLCB0aGUgPDwgYW5kID4+IHRva2VucyBkZXBlbmQgb24gdGhlCisgICAgICAgICAgICAgICAvLyBydWxlJ3MgZGl2aXNvciwgd2hpY2ggZm9yIGFsbCB0aGVzZSBydWxlcyBpcyBhbHNvIHRoZSBydWxlJ3MKKyAgICAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUuICBUbyBncm91cCBieSB0aG91c2FuZCwgd2Ugc2ltcGx5IGRvbid0IGhhdmUgYW55CisgICAgICAgICAgICAgICAvLyBydWxlcyBiZXR3ZWVuIDEsMDAwIGFuZCAxLDAwMCwwMDAuCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgdHJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIG92ZXJmbG93IHJ1bGUuICBUaGlzIHJ1bGUgc3BlY2lmaWVzIHRoYXQgdmFsdWVzIG9mIGEKKyAgICAgICAgICAgICAgIC8vIHF1YWRyaWxsaW9uIG9yIG1vcmUgYXJlIHNob3duIGluIG51bWVyYWxzIHJhdGhlciB0aGFuIHdvcmRzLgorICAgICAgICAgICAgICAgLy8gVGhlID09IHRva2VuIG1lYW5zIHRvIGZvcm1hdCAod2l0aCBuZXcgcnVsZXMpIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGJ5IHRoaXMgcnVsZSBhbmQgcGxhY2UgdGhlIHJlc3VsdCB3aGVyZQorICAgICAgICAgICAgICAgLy8gdGhlID09IGlzLiAgVGhlICMsIyMwIGluc2lkZSB0aGUgPT0gc2lnbnMgaXMgYQorICAgICAgICAgICAgICAgLy8gRGVjaW1hbEZvcm1hdCBwYXR0ZXJuLiAgSXQgc3BlY2lmaWVzIHRoYXQgdGhlIHZhbHVlIHNob3VsZAorICAgICAgICAgICAgICAgLy8gYmUgZm9ybWF0dGVkIHdpdGggYSBEZWNpbWFsRm9ybWF0IG9iamVjdCwgYW5kIHRoYXQgaXQKKyAgICAgICAgICAgICAgIC8vIHNob3VsZCBiZSBmb3JtYXR0ZWQgd2l0aCBubyBkZWNpbWFsIHBsYWNlcywgYXQgbGVhc3Qgb25lCisgICAgICAgICAgICAgICAvLyBkaWdpdCwgYW5kIGEgdGhvdXNhbmRzIHNlcGFyYXRvci4KKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKworICAgICAgICAvLyBUaGlzIHJ1bGUgc2V0IGZvcm1hdHMgbnVtYmVycyBiZXR3ZWVuIDEsMDAwIGFuZCA5LDk5OSBzb21ld2hhdAorICAgICAgICAvLyBkaWZmZXJlbnRseTogSWYgdGhlIGh1bmRyZWRzIGRpZ2l0IGlzIG5vdCB6ZXJvLCB0aGUgZmlyc3QgdHdvCisgICAgICAgIC8vIGRpZ2l0cyBhcmUgdHJlYXRlZCBhcyBhIG51bWJlciBvZiBodW5kcmVkcy4gIEZvciBleGFtcGxlLCAyLDE5NworICAgICAgICAvLyB3b3VsZCBjb21lIG91dCBhcyAidHdlbnR5LW9uZSBodW5kcmVkIG5pbmV0eS1zZXZlbi4iCisgICAgICAgICsgIiVhbHQtdGVlbnM6XG4iCisgICAgICAgICAgICAgICAvLyBqdXN0IHVzZSAlc2ltcGxpZmllZCB0byBmb3JtYXQgdmFsdWVzIGJlbG93IDEsMDAwCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICAgICAgICAgLy8gdmFsdWVzIGJldHdlZW4gMSwwMDAgYW5kIDksOTk5IGFyZSBkZWxlZ2F0ZWQgdG8gJSVhbHQtaHVuZHJlZHMKKyAgICAgICAgICAgICAgIC8vIGZvciBmb3JtYXR0aW5nLiAgVGhlID4gYWZ0ZXIgIjEwMDAiIGRlY3JlYXNlcyB0aGUgZXhwb25lbnQKKyAgICAgICAgICAgICAgIC8vIG9mIHRoZSBydWxlJ3MgcmFkaXggYnkgb25lLCBjYXVzaW5nIHRoZSBydWxlJ3MgZGl2aXNvcgorICAgICAgICAgICAgICAgLy8gdG8gYmUgMTAwIGluc3RlYWQgb2YgMSwwMDAuICBUaGlzIGNhdXNlcyB0aGUgZmlyc3QgVFdPCisgICAgICAgICAgICAgICAvLyBkaWdpdHMgb2YgdGhlIG51bWJlciwgaW5zdGVhZCBvZiBqdXN0IHRoZSBmaXJzdCBkaWdpdCwKKyAgICAgICAgICAgICAgIC8vIHRvIGJlIHNlbnQgdG8gJSVhbHQtaHVuZHJlZHMKKyAgICAgICAgKyAiICAgIDEwMDA+OiA8JSVhbHQtaHVuZHJlZHM8WyA+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIG9mIDEwLDAwMCBhbmQgbW9yZSwgd2UgYWdhaW4ganVzdCB1c2UgJXNpbXBsaWZpZWQKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgLy8gVGhpcyBydWxlIHNldCB1c2VzIHNvbWUgb2JzY3VyZSB2b29kb28gb2YgdGhlIGRlc2NyaXB0aW9uIGxhbmd1YWdlCisgICAgICAgIC8vIHRvIGZvcm1hdCB0aGUgZmlyc3QgdHdvIGRpZ2l0cyBvZiBhIHZhbHVlIGluIHRoZSB0aG91c2FuZHMuCisgICAgICAgIC8vIFRoZSBydWxlIGF0IDEwIGZvcm1hdHMgdGhlIGZpcnN0IHR3byBkaWdpdHMgYXMgYSBtdWx0aXBsZSBvZiAxLDAwMAorICAgICAgICAvLyBhbmQgdGhlIHJ1bGUgYXQgMTEgZm9ybWF0cyB0aGUgZmlyc3QgdHdvIGRpZ2l0cyBhcyBhIG11bHRpcGxlIG9mCisgICAgICAgIC8vIDEwMC4gIFRoaXMgd29ya3MgYmVjYXVzZSBvZiBzb21ldGhpbmcga25vd24gYXMgdGhlICJyb2xsYmFjayBydWxlIjoKKyAgICAgICAgLy8gaWYgdGhlIHJ1bGUgYXBwbGljYWJsZSB0byB0aGUgdmFsdWUgYmVpbmcgZm9ybWF0dGVkIGhhcyB0d28KKyAgICAgICAgLy8gc3Vic3RpdHV0aW9ucywgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mCisgICAgICAgIC8vIHRoZSBydWxlJ3MgZGl2aXNvciwgYW5kIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSBJU04nVCBhbiBldmVuIG11bHRpcGxlCisgICAgICAgIC8vIGlmIHRoZSBydWxlJ3MgZGl2aXNvciwgdGhlbiB0aGUgcnVsZSB0aGF0IHByZWNlZGVzIHRoaXMgb25lIGluIHRoZQorICAgICAgICAvLyBsaXN0IGlzIHVzZWQgaW5zdGVhZC4gIChUaGUgW10gbm90YXRpb24gaXMgaW1wbGVtZW50ZWQgaW50ZXJuYWxseQorICAgICAgICAvLyB1c2luZyB0aGlzIG5vdGF0aW9uOiBhIHJ1bGUgY29udGFpbmluZyBbXSBpcyBzcGxpdCBpbnRvIHR3byBydWxlcywKKyAgICAgICAgLy8gYW5kIHRoZSByaWdodCBvbmUgaXMgY2hvc2VuIHVzaW5nIHRoZSByb2xsYmFjayBydWxlLikgSW4gdGhpcyBjYXNlLAorICAgICAgICAvLyBpdCBtZWFucyB0aGF0IGlmIHRoZSBmaXJzdCB0d28gZGlnaXRzIGFyZSBhbiBldmVuIG11bHRpcGxlIG9mIDEwLAorICAgICAgICAvLyB0aGV5J3JlIGZvcm1hdHRlZCB3aXRoIHRoZSAxMCBydWxlIChjb250YWluaW5nICJ0aG91c2FuZCIpLCBhbmQgaWYKKyAgICAgICAgLy8gdGhleSdyZSBub3QsIHRoZXkncmUgZm9ybWF0dGVkIHdpdGggdGhlIDExIHJ1bGUgKGNvbnRhaW5pbmcKKyAgICAgICAgLy8gImh1bmRyZWQiKS4gICUlZW1wdHkgaXMgYSBoYWNrIHRvIGNhdXNlIHRoZSByb2xsYmFjayBydWxlIHRvIGJlCisgICAgICAgIC8vIGludm9rZWQ6IGl0IG1ha2VzIHRoZSAxMSBydWxlIGhhdmUgdHdvIHN1YnN0aXR1dGlvbnMsIGV2ZW4gdGhvdWdoCisgICAgICAgIC8vIHRoZSBzZWNvbmQgc3Vic3RpdHV0aW9uIChjYWxsaW5nICUlZW1wdHkpIGRvZXNuJ3QgYWN0dWFsbHkgZG8KKyAgICAgICAgLy8gYW55dGhpbmcuCisgICAgICAgICsgIiUlYWx0LWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgMDogU0hPVUxEIE5FVkVSIEdFVCBIRVJFITtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kO1xuIgorICAgICAgICArICIgICAgMTE6ID0lc2ltcGxpZmllZD0gaHVuZHJlZD4lJWVtcHR5PjtcbiIKKyAgICAgICAgKyAiJSVlbXB0eTpcbiIKKyAgICAgICAgKyAiICAgIDA6OyIKKworICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHRoZSBzYW1lIGFzICVzaW1wbGlmaWVkLCBleGNlcHQgdGhhdCBpdCBmb3JtYXRzCisgICAgICAgIC8vIHRoZSB2YWx1ZSBhcyBhbiBvcmRpbmFsIG51bWJlcjogMjM0IGlzIGZvcm1hdHRlZCBhcyAidHdvIGh1bmRyZWQKKyAgICAgICAgLy8gdGhpcnR5LWZvdXJ0aCIuICBOb3RpY2UgdGhlIGNhbGxzIHRvIF5zaW1wbGlmaWVkOiB3ZSBoYXZlIHRvCisgICAgICAgIC8vIGNhbGwgJXNpbXBsaWZpZWQgdG8gYXZvaWQgZ2V0dGluZyAic2Vjb25kIGh1bmRyZWQgdGhpcnR5LWZvdXJ0aC4iCisgICAgICAgICsgIiVvcmRpbmFsOlxuIgorICAgICAgICArICIgICAgemVyb3RoOyBmaXJzdDsgc2Vjb25kOyB0aGlyZDsgZm91cnRoOyBmaWZ0aDsgc2l4dGg7IHNldmVudGg7XG4iCisgICAgICAgICsgIiAgICAgICAgZWlnaHRoOyBuaW50aDtcbiIKKyAgICAgICAgKyAiICAgIHRlbnRoOyBlbGV2ZW50aDsgdHdlbGZ0aDsgdGhpcnRlZW50aDsgZm91cnRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBmaWZ0ZWVudGg7IHNpeHRlZW50aDsgc2V2ZW50ZWVudGg7IGVpZ2h0ZWVudGg7XG4iCisgICAgICAgICsgIiAgICAgICAgbmluZXRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgIHR3ZW50aWV0aDsgdHdlbnR5LT4+O1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0aWV0aDsgdGhpcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnRpZXRoOyBmb3J0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBmaWZ0aWV0aDsgZmlmdHktPj47XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dGlldGg7IHNpeHR5LT4+O1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudGlldGg7IHNldmVudHktPj47XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHRpZXRoOyBlaWdodHktPj47XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXRpZXRoOyBuaW5ldHktPj47XG4iCisgICAgICAgICsgIiAgICAxMDA6IDwlc2ltcGxpZmllZDwgaHVuZHJlZHRoOyA8JXNpbXBsaWZpZWQ8IGh1bmRyZWQgPj47XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kdGg7IDwlc2ltcGxpZmllZDwgdGhvdXNhbmQgPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDwlc2ltcGxpZmllZDwgbWlsbGlvbnRoOyA8JXNpbXBsaWZpZWQ8IG1pbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IGJpbGxpb250aDtcbiIKKyAgICAgICAgKyAiICAgICAgICA8JXNpbXBsaWZpZWQ8IGJpbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCB0cmlsbGlvbnRoO1xuIgorICAgICAgICArICIgICAgICAgIDwlc2ltcGxpZmllZDwgdHJpbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IgorCisgICAgICAgIC8vICVkZWZhdWx0IGlzIGEgbW9yZSBlbGFib3JhdGUgZm9ybSBvZiAlc2ltcGxpZmllZDsgIEl0IGlzIGJhc2ljYWxseQorICAgICAgICAvLyB0aGUgc2FtZSwgZXhjZXB0IHRoYXQgaXQgaW50cm9kdWNlcyAiYW5kIiBiZWZvcmUgdGhlIG9uZXMgZGlnaXQKKyAgICAgICAgLy8gd2hlbiBhcHByb3ByaWF0ZSAoYmFzaWNhbGx5LCBiZXR3ZWVuIHRoZSB0ZW5zIGFuZCBvbmVzIGRpZ2l0cykgYW5kCisgICAgICAgIC8vIHNlcGFyYXRlcyB0aGUgdGhvdXNhbmRzIGdyb3VwcyB3aXRoIGNvbW1hcyBpbiB2YWx1ZXMgb3ZlciAxMDAsMDAwLgorICAgICAgICArICIlZGVmYXVsdDpcbiIKKyAgICAgICAgICAgICAgIC8vIG5lZ2F0aXZlLW51bWJlciBhbmQgZnJhY3Rpb24gcnVsZXMuICBUaGVzZSBhcmUgdGhlIHNhbWUKKyAgICAgICAgICAgICAgIC8vIGFzIHRob3NlIGZvciAlc2ltcGxpZmllZCwgYnV0IGF2ZSB0byBiZSBzdGF0ZWQgaGVyZSB0b28KKyAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhpcyBpcyBhbiBlbnRyeSBwb2ludAorICAgICAgICArICIgICAgLXg6IG1pbnVzID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCBwb2ludCA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGp1c3QgdXNlICVzaW1wbGlmaWVkIGZvciB2YWx1ZXMgYmVsb3cgMTAwCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBmcm9tIDEwMCB0byA5LDk5OSB1c2UgJSVhbmQgdG8gZGVjaWRlIHdoZXRoZXIgb3IKKyAgICAgICAgICAgICAgIC8vIG5vdCB0byBpbnRlcnBvc2UgdGhlICJhbmQiCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4lJWFuZD5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4lJWFuZD5dO1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBvZiAxMDAsMDAwIGFuZCB1cCwgdXNlICUlY29tbWFzIHRvIGludGVycG9zZSB0aGUKKyAgICAgICAgICAgICAgIC8vIGNvbW1hcyBpbiB0aGUgcmlnaHQgcGxhY2VzIChhbmQgYWxzbyB0byBpbnRlcnBvc2UgdGhlICJhbmQiKQorICAgICAgICArICIgICAgMTAwLDAwMD4+OiA8PCB0aG91c2FuZFs+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgdHJpbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBwYXNzZWQgdG8gdGhpcyBydWxlIHNldCBpcyBncmVhdGVyIHRoYW4gMTAwLCBkb24ndAorICAgICAgICAvLyBhZGQgdGhlICJhbmQiOyBpZiBpdCdzIGxlc3MgdGhhbiAxMDAsIGFkZCAiYW5kIiBiZWZvcmUgdGhlIGxhc3QKKyAgICAgICAgLy8gZGlnaXRzCisgICAgICAgICsgIiUlYW5kOlxuIgorICAgICAgICArICIgICAgYW5kID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDA6ID0lZGVmYXVsdD07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdXNlZCB0byBwbGFjZSB0aGUgY29tbWFzCisgICAgICAgICsgIiUlY29tbWFzOlxuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBiZWxvdyAxMDAsIGFkZCAiYW5kIiAodGhlIGFwb3N0cm9waGUgYXQgdGhlCisgICAgICAgICAgICAgICAvLyBiZWdpbm5pbmcgaXMgaWdub3JlZCwgYnV0IGNhdXNlcyB0aGUgc3BhY2UgdGhhdCBmb2xsb3dzIGl0CisgICAgICAgICAgICAgICAvLyB0byBiZSBzaWduaWZpY2FudDogdGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgcnVsZXMKKyAgICAgICAgICAgICAgIC8vIGNhbGxpbmcgJSVjb21tYXMgZG9uJ3QgcHV0IGEgc3BhY2UgYmVmb3JlIGl0KQorICAgICAgICArICIgICAgJyBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgICAgICAgIC8vIHB1dCBhIGNvbW1hIGFmdGVyIHRoZSB0aG91c2FuZHMgKG9yIHdoYXRldmVyIHByZWNlZGVkIHRoZQorICAgICAgICAgICAgICAgLy8gaHVuZHJlZHMpCisgICAgICAgICsgIiAgICAxMDA6ICwgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgICAgICAgIC8vIHB1dCBhIGNvbW1hIGFmdGVyIHRoZSBtaWxsaW9ucyAob3Igd2hhdGV2ZXIgcHJlY2VkZXMgdGhlCisgICAgICAgICAgICAgICAvLyB0aG91c2FuZHMpCisgICAgICAgICsgIiAgICAxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iCisgICAgICAgICAgICAgICAvLyBhbmQgc28gb24uLi4KKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogLCA9JWRlZmF1bHQ9OyIKKyAgICAgICAgLy8gJSVsZW5pZW50LXBhcnNlIGlzbid0IHJlYWxseSBhIHNldCBvZiBudW1iZXIgZm9ybWF0dGluZyBydWxlczsKKyAgICAgICAgLy8gaXQncyBhIHNldCBvZiBjb2xsYXRpb24gcnVsZXMuICBMZW5pZW50LXBhcnNlIG1vZGUgdXNlcyBhIENvbGxhdG9yCisgICAgICAgIC8vIG9iamVjdCB0byBjb21wYXJlIGZyYWdtZW50cyBvZiB0aGUgdGV4dCBiZWluZyBwYXJzZWQgdG8gdGhlIHRleHQKKyAgICAgICAgLy8gaW4gdGhlIHJ1bGVzLCBhbGxvd2luZyBtb3JlIGxlZXdheSBpbiB0aGUgbWF0Y2hpbmcgdGV4dC4gIFRoaXMgc2V0CisgICAgICAgIC8vIG9mIHJ1bGVzIHRlbGxzIHRoZSBmb3JtYXR0ZXIgdG8gaWdub3JlIGNvbW1hcyB3aGVuIHBhcnNpbmcgKGl0CisgICAgICAgIC8vIGFscmVhZHkgaWdub3JlcyBzcGFjZXMsIHdoaWNoIGlzIHdoeSB3ZSByZWZlciB0byB0aGUgc3BhY2U7IGl0IGFsc28KKyAgICAgICAgLy8gaWdub3JlcyBoeXBoZW5zLCBtYWtpbmcgInR3ZW50eSBvbmUiIGFuZCAidHdlbnR5LW9uZSIgcGFyc2UKKyAgICAgICAgLy8gaWRlbnRpY2FsbHkpCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJyAnICwgJywnIDtcbiI7CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgVS5LLiBFbmdsaXNoLiAgVS5LLiBFbmdsaXNoIGhhcyBvbmUgc2lnbmlmaWNhbnQKKyAgICAgKiBkaWZmZXJlbmNlIGZyb20gVS5TLiBFbmdsaXNoOiB0aGUgbmFtZXMgZm9yIHZhbHVlcyBvZiAxLDAwMCwwMDAsMDAwCisgICAgICogYW5kIGhpZ2hlci4gIEluIEFtZXJpY2FuIEVuZ2xpc2gsIGVhY2ggc3VjY2Vzc2l2ZSAiLWlsbGlvbiIgaXMgMSwwMDAKKyAgICAgKiB0aW1lcyBncmVhdGVyIHRoYW4gdGhlIHByZWNlZGluZyBvbmU6IDEsMDAwLDAwMCwwMDAgaXMgIm9uZSBiaWxsaW9uIgorICAgICAqIGFuZCAxLDAwMCwwMDAsMDAwLDAwMCBpcyAib25lIHRyaWxsaW9uLiIgIEluIEJyaXRpc2ggRW5nbGlzaCwgZWFjaAorICAgICAqIHN1Y2Nlc3NpdmUgIi1pbGxpb24iIGlzIG9uZSBtaWxsaW9uIHRpbWVzIGdyZWF0ZXIgdGhhbiB0aGUgb25lIGJlZm9yZToKKyAgICAgKiAib25lIGJpbGxpb24iIGlzIDEsMDAwLDAwMCwwMDAsMDAwIChvciB3aGF0IEFtZXJpY2FucyB3b3VsZCBjYWxsIGEKKyAgICAgKiAidHJpbGxpb24iKSwgYW5kICJvbmUgdHJpbGxpb24iIGlzIDEsMDAwLDAwMCwwMDAsMDAwLDAwMCwwMDAuCisgICAgICogMSwwMDAsMDAwLDAwMCBpbiBCcml0aXNoIEVuZ2xpc2ggaXMgIm9uZSB0aG91c2FuZCBtaWxsaW9uLiIgIChUaGlzCisgICAgICogdmFsdWUgaXMgc29tZXRpbWVzIGNhbGxlZCBhICJtaWxsaWFyZCwiIGJ1dCB0aGlzIHdvcmQgc2VlbXMgdG8gaGF2ZQorICAgICAqIGZhbGxlbiBpbnRvIGRpc3VzZS4pCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgdWtFbmdsaXNoID0KKyAgICAgICAgIiVzaW1wbGlmaWVkOlxuIgorICAgICAgICArICIgICAgLXg6IG1pbnVzID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCBwb2ludCA+PjtcbiIKKyAgICAgICAgKyAiICAgIHplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4OyBzZXZlbjsgZWlnaHQ7IG5pbmU7XG4iCisgICAgICAgICsgIiAgICB0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47XG4iCisgICAgICAgICsgIiAgICAgICAgc2V2ZW50ZWVuOyBlaWdodGVlbjsgbmluZXRlZW47XG4iCisgICAgICAgICsgIiAgICAyMDogdHdlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBmaWZ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IHNpeHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgODA6IGVpZ2h0eVstPj5dO1xuIgorICAgICAgICArICIgICAgOTA6IG5pbmV0eVstPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICArICIlYWx0LXRlZW5zOlxuIgorICAgICAgICArICIgICAgPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA+OiA8JSVhbHQtaHVuZHJlZHM8WyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMCwwMDA6ID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4lc2ltcGxpZmllZD5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4lc2ltcGxpZmllZD5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICArICIlJWFsdC1odW5kcmVkczpcbiIKKyAgICAgICAgKyAiICAgIDA6IFNIT1VMRCBORVZFUiBHRVQgSEVSRSE7XG4iCisgICAgICAgICsgIiAgICAxMDogPCVzaW1wbGlmaWVkPCB0aG91c2FuZDtcbiIKKyAgICAgICAgKyAiICAgIDExOiA9JXNpbXBsaWZpZWQ9IGh1bmRyZWQ+JSVlbXB0eT47XG4iCisgICAgICAgICsgIiUlZW1wdHk6XG4iCisgICAgICAgICsgIiAgICAwOjsiCisgICAgICAgICsgIiVvcmRpbmFsOlxuIgorICAgICAgICArICIgICAgemVyb3RoOyBmaXJzdDsgc2Vjb25kOyB0aGlyZDsgZm91cnRoOyBmaWZ0aDsgc2l4dGg7IHNldmVudGg7XG4iCisgICAgICAgICsgIiAgICAgICAgZWlnaHRoOyBuaW50aDtcbiIKKyAgICAgICAgKyAiICAgIHRlbnRoOyBlbGV2ZW50aDsgdHdlbGZ0aDsgdGhpcnRlZW50aDsgZm91cnRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBmaWZ0ZWVudGg7IHNpeHRlZW50aDsgc2V2ZW50ZWVudGg7IGVpZ2h0ZWVudGg7XG4iCisgICAgICAgICsgIiAgICAgICAgbmluZXRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgIHR3ZW50aWV0aDsgdHdlbnR5LT4+O1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0aWV0aDsgdGhpcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnRpZXRoOyBmb3J0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBmaWZ0aWV0aDsgZmlmdHktPj47XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dGlldGg7IHNpeHR5LT4+O1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudGlldGg7IHNldmVudHktPj47XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHRpZXRoOyBlaWdodHktPj47XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXRpZXRoOyBuaW5ldHktPj47XG4iCisgICAgICAgICsgIiAgICAxMDA6IDwlc2ltcGxpZmllZDwgaHVuZHJlZHRoOyA8JXNpbXBsaWZpZWQ8IGh1bmRyZWQgPj47XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kdGg7IDwlc2ltcGxpZmllZDwgdGhvdXNhbmQgPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDwlc2ltcGxpZmllZDwgbWlsbGlvbnRoOyA8JXNpbXBsaWZpZWQ8IG1pbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBiaWxsaW9udGg7XG4iCisgICAgICAgICsgIiAgICAgICAgPCVzaW1wbGlmaWVkPCBiaWxsaW9uID4+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9OyIKKyAgICAgICAgKyAiJWRlZmF1bHQ6XG4iCisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICArICIgICAgPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPiUlYW5kPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZFsgPiUlYW5kPl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwPj46IDw8IHRob3VzYW5kWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiUlYW5kOlxuIgorICAgICAgICArICIgICAgYW5kID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDA6ID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiUlY29tbWFzOlxuIgorICAgICAgICArICIgICAgJyBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogLCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwMDogLCA8JWRlZmF1bHQ8IHRob3VzYW5kLCA+JWRlZmF1bHQ+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiAsID0lZGVmYXVsdD07IgorICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmICcgJyAsICcsJyA7XG4iOworICAgIC8vIENvdWxkIHNvbWVvbmUgcGxlYXNlIGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nIGFib3V0ICJtaWxsaWFyZCIgZmFsbGluZworICAgIC8vIGludG8gZGlzdXNlLCBvciBoYXZlIG1pc3NlZCBhbnkgb3RoZXIgZGV0YWlscyBvZiBob3cgbGFyZ2UgbnVtYmVycworICAgIC8vIGFyZSByZW5kZXJlZC4gIEFsc28sIGNvdWxkIHNvbWVvbmUgcGxlYXNlIHByb3ZpZGUgbWUgd2l0aCBpbmZvcm1hdGlvbgorICAgIC8vIG9uIHdoaWNoIG90aGVyIEVuZ2xpc2gtc3BlYWtpbmcgY291bnRyaWVzIHVzZSB3aGljaCBzeXN0ZW0/ICBSaWdodCBub3csCisgICAgLy8gSSdtIGFzc3VtaW5nIHRoYXQgdGhlIFUuUy4gc3lzdGVtIGlzIHVzZWQgaW4gQ2FuYWRhIGFuZCB0aGF0IGFsbCB0aGUKKyAgICAvLyBvdGhlciBFbmdsaXNoLXNwZWFraW5nIGNvdW50cmllcyBmb2xsb3cgdGhlIEJyaXRpc2ggc3lzdGVtLiAgQ2FuCisgICAgLy8gc29tZW9uZSBvdXQgdGhlcmUgY29uZmlybSB0aGlzPworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFNwYW5pc2guICBUaGUgU3BhbmlzaCBydWxlcyBhcmUgcXVpdGUgc2ltaWxhciB0bworICAgICAqIHRoZSBFbmdsaXNoIHJ1bGVzLCBidXQgdGhlcmUgYXJlIHNvbWUgaW1wb3J0YW50IGRpZmZlcmVuY2VzOgorICAgICAqIEZpcnN0LCB3ZSBoYXZlIHRvIHByb3ZpZGUgc2VwYXJhdGUgcnVsZXMgZm9yIG1vc3Qgb2YgdGhlIHR3ZW50aWVzCisgICAgICogYmVjYXVzZSB0aGUgb25lcyBkaWdpdCBmcmVxdWVudGx5IHBpY2tzIHVwIGFuIGFjY2VudCBtYXJrIHRoYXQgaXQKKyAgICAgKiBkb2Vzbid0IGhhdmUgd2hlbiBzdGFuZGluZyBhbG9uZS4gIFNlY29uZCwgZWFjaCBtdWx0aXBsZSBvZiAxMDAgaGFzCisgICAgICogdG8gYmUgc3BlY2lmaWVkIHNlcGFyYXRlbHkgYmVjYXVzZSB0aGUgbXVsdGlwbGllciBvbiAxMDAgdmVyeSBvZnRlbgorICAgICAqIGNoYW5nZXMgZm9ybSBpbiB0aGUgY29udHJhY3Rpb246IDUwMCBpcyAicXVpbmllbnRvcywiIG5vdAorICAgICAqICJjaW5jb2NpZW50b3MuIiAgSW4gYWRkaXRpb24sIHRoZSB3b3JkIGZvciAxMDAgaXMgImNpZW4iIHdoZW4KKyAgICAgKiBzdGFuZGluZyBhbG9uZSwgYnV0IGNoYW5nZXMgdG8gImNpZW50byIgd2hlbiBmb2xsb3dlZCBieSBtb3JlIGRpZ2l0cy4KKyAgICAgKiBUaGVyZSBhbHNvIHNvbWUgb3RoZXIgZGlmZmVyZW5jZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgc3BhbmlzaCA9CisgICAgICAgIC8vIG5lZ2F0aXZlLW51bWJlciBhbmQgZnJhY3Rpb24gcnVsZXMKKyAgICAgICAgIi14OiBtZW5vcyA+PjtcbiIKKyAgICAgICAgKyAieC54OiA8PCBwdW50byA+PjtcbiIKKyAgICAgICAgLy8gd29yZHMgZm9yIHZhbHVlcyBmcm9tIDAgdG8gMTkKKyAgICAgICAgKyAiY2VybzsgdW5vOyBkb3M7IHRyZXM7IGN1YXRybzsgY2luY287IHNlaXM7IHNpZXRlOyBvY2hvOyBudWV2ZTtcbiIKKyAgICAgICAgKyAiZGllejsgb25jZTsgZG9jZTsgdHJlY2U7IGNhdG9yY2U7IHF1aW5jZTsgZGllY2lzXHUwMGU5aXM7XG4iCisgICAgICAgICsgIiAgICBkaWVjaXNpZXRlOyBkaWVjaW9jaG87IGRpZWNpbnVldmU7XG4iCisgICAgICAgIC8vIHdvcmRzIGZvciB2YWx1ZXMgZnJvbSAyMCB0byAyOSAobmVjZXNzYXJ5IGJlY2F1c2UgdGhlIG9uZXMgZGlnaXQKKyAgICAgICAgLy8gb2Z0ZW4gcGlja3MgdXAgYW4gYWNjZW50IG1hcmsgaXQgZG9lc24ndCBoYXZlIHdoZW4gc3RhbmRpbmcgYWxvbmUpCisgICAgICAgICsgInZlaW50ZTsgdmVpbnRpdW5vOyB2ZWludGlkXHUwMGYzczsgdmVpbnRpdHJcdTAwZTlzOyB2ZWludGljdWF0cm87XG4iCisgICAgICAgICsgIiAgICB2ZWludGljaW5jbzsgdmVpbnRpc1x1MDBlOWlzOyB2ZWludGlzaWV0ZTsgdmVpbnRpb2NobztcbiIKKyAgICAgICAgKyAiICAgIHZlaW50aW51ZXZlO1xuIgorICAgICAgICAvLyB3b3JkcyBmb3IgbXVsdGlwbGVzIG9mIDEwIChub3RpY2UgdGhhdCB0aGUgdGVucyBkaWdpdCBpcyBzZXBhcmF0ZWQKKyAgICAgICAgLy8gZnJvbSB0aGUgb25lcyBkaWdpdCBieSB0aGUgd29yZCAieSIuKQorICAgICAgICArICIzMDogdHJlaW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjQwOiBjdWFyZW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjUwOiBjaW5jdWVudGFbIHkgPj5dO1xuIgorICAgICAgICArICI2MDogc2VzZW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjcwOiBzZXRlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiODA6IG9jaGVudGFbIHkgPj5dO1xuIgorICAgICAgICArICI5MDogbm92ZW50YVsgeSA+Pl07XG4iCisgICAgICAgIC8vIDEwMCBieSBpdHNlbGYgaXMgImNpZW4sIiBidXQgMTAwIGZvbGxvd2VkIGJ5IHNvbWV0aGluZyBpcyAiY2luZXRvIgorICAgICAgICArICIxMDA6IGNpZW47XG4iCisgICAgICAgICsgIjEwMTogY2llbnRvID4+O1xuIgorICAgICAgICAvLyB3b3JkcyBmb3IgbXVsdGlwbGVzIG9mIDEwMCAobXVzdCBiZSBzdGF0ZWQgYmVjYXVzZSB0aGV5J3JlCisgICAgICAgIC8vIHJhcmVseSBzaW1wbGUgY29uY2F0ZW5hdGlvbnMpCisgICAgICAgICsgIjIwMDogZG9zY2llbnRvc1sgPj5dO1xuIgorICAgICAgICArICIzMDA6IHRyZXNjaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjQwMDogY3VhdHJvY2llbnRvc1sgPj5dO1xuIgorICAgICAgICArICI1MDA6IHF1aW5pZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiNjAwOiBzZWlzY2llbnRvc1sgPj5dO1xuIgorICAgICAgICArICI3MDA6IHNldGVjaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjgwMDogb2Nob2NpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiOTAwOiBub3ZlY2llbnRvc1sgPj5dO1xuIgorICAgICAgICAvLyBmb3IgMSwwMDAsIHRoZSBtdWx0aXBsaWVyIG9uICJtaWwiIGlzIG9taXR0ZWQ6IDIsMDAwIGlzICJkb3MgbWlsLCIKKyAgICAgICAgLy8gYnV0IDEsMDAwIGlzIGp1c3QgIm1pbC4iCisgICAgICAgICsgIjEwMDA6IG1pbFsgPj5dO1xuIgorICAgICAgICArICIyMDAwOiA8PCBtaWxbID4+XTtcbiIKKyAgICAgICAgLy8gMSwwMDAsMDAwIGlzICJ1biBtaWxsb24sIiBub3QgInVubyBtaWxsb24iCisgICAgICAgICsgIjEsMDAwLDAwMDogdW4gbWlsbFx1MDBmM25bID4+XTtcbiIKKyAgICAgICAgKyAiMiwwMDAsMDAwOiA8PCBtaWxsXHUwMGYzblsgPj5dO1xuIgorICAgICAgICAvLyBvdmVyZmxvdyBydWxlCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6ID0jLCMjMD0gKGluY29tcGxldGUgZGF0YSk7IjsKKyAgICAvLyBUaGUgU3BhbmlzaCBydWxlcyBhcmUgaW5jb21wbGV0ZS4gIEknbSBtaXNzaW5nIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlCisgICAgLy8gbnVtYmVycyBhbmQgbnVtYmVycyB3aXRoIGZyYWN0aW9uYWwgcGFydHMuICBJIGFsc28gZG9uJ3QgaGF2ZQorICAgIC8vIGluZm9ybWF0aW9uIG9uIG51bWJlcnMgaGlnaGVyIHRoYW4gdGhlIG1pbGxpb25zCisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgRnJlbmNoLiAgRnJlbmNoIGFkZHMgc29tZSBpbnRlcmVzdGluZyBxdWlya3Mgb2YgaXRzCisgICAgICogb3duOiAxKSBUaGUgd29yZCAiZXQiIGlzIGludGVycG9zZWQgYmV0d2VlbiB0aGUgdGVucyBhbmQgb25lcyBkaWdpdHMsCisgICAgICogYnV0IG9ubHkgaWYgdGhlIG9uZXMgZGlnaXQgaWYgMTogMjAgaXMgInZpbmd0LCIgYW5kIDIgaXMgInZpbmd0LWRldXgsIgorICAgICAqIGJ1dCAyMSBpcyAidmluZ3QtZXQtdW4uIiAgMikgIFRoZXJlIGFyZSBubyB3b3JkcyBmb3IgNzAsIDgwLCBvciA5MC4KKyAgICAgKiAicXVhdHJlLXZpbmd0cyIgKCJmb3VyIHR3ZW50aWVzIikgaXMgdXNlZCBmb3IgODAsIGFuZCB2YWx1ZXMgcHJvY2VlZAorICAgICAqIGJ5IHNjb3JlIGZyb20gNjAgdG8gOTkgKGUuZy4sIDczIGlzICJzb2l4YW50ZS10cmVpemUiIFsic2l4dHktdGhpcnRlZW4iXSkuCisgICAgICogTnVtYmVycyBmcm9tIDEsMTAwIHRvIDEsMTk5IGFyZSByZW5kZXJlZCBhcyBodW5kcmVkcyByYXRoZXIgdGhhbgorICAgICAqIHRob3VzYW5kczogMSwxMDAgaXMgIm9uemUgY2VudHMiICgiZWxldmVuIGh1bmRyZWQiKSwgcmF0aGVyIHRoYW4KKyAgICAgKiAibWlsbGUgY2VudCIgKCJvbmUgdGhvdXNhbmQgb25lIGh1bmRyZWQiKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGZyZW5jaCA9CisgICAgICAgIC8vIHRoZSBtYWluIHJ1bGUgc2V0CisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIG5lZ2F0aXZlLW51bWJlciBhbmQgZnJhY3Rpb24gcnVsZXMKKyAgICAgICAgKyAiICAgIC14OiBtb2lucyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgdmlyZ3VsZSA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIHdvcmRzIGZvciBudW1iZXJzIGZyb20gMCB0byAxMAorICAgICAgICArICIgICAgelx1MDBlOXJvOyB1bjsgZGV1eDsgdHJvaXM7IHF1YXRyZTsgY2lucTsgc2l4OyBzZXB0OyBodWl0OyBuZXVmO1xuIgorICAgICAgICArICIgICAgZGl4OyBvbnplOyBkb3V6ZTsgdHJlaXplOyBxdWF0b3J6ZTsgcXVpbnplOyBzZWl6ZTtcbiIKKyAgICAgICAgKyAiICAgICAgICBkaXgtc2VwdDsgZGl4LWh1aXQ7IGRpeC1uZXVmO1xuIgorICAgICAgICAgICAgICAgLy8gb3JkcyBmb3IgdGhlIG11bHRpcGxlcyBvZiAxMDogJSVhbHQtb25lcyBpbnNlcnRzICJldCIKKyAgICAgICAgICAgICAgIC8vIHdoZW4gbmVlZGVkCisgICAgICAgICsgIiAgICAyMDogdmluZ3RbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAzMDogdHJlbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgNDA6IHF1YXJhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgNTA6IGNpbnF1YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHJ1bGUgZm9yIDYwLiAgVGhlIC8yMCBjYXVzZXMgdGhpcyBydWxlJ3MgbXVsdGlwbGllciB0byBiZQorICAgICAgICAgICAgICAgLy8gMjAgcmF0aGVyIHRoYW4gMTAsIGFsbG93aW5oZyB1cyB0byByZWN1cnNlIGZvciBhbGwgdmFsdWVzCisgICAgICAgICAgICAgICAvLyBmcm9tIDYwIHRvIDc5Li4uCisgICAgICAgICsgIiAgICA2MC8yMDogc29peGFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICAgICAgICAvLyAuLi5leGNlcHQgZm9yIDcxLCB3aGljaCBtdXN0IGJlIHNwZWNpYWwtY2FzZWQKKyAgICAgICAgKyAiICAgIDcxOiBzb2l4YW50ZSBldCBvbnplO1xuIgorICAgICAgICAgICAgICAgLy8gYXQgNzIsIHdlIGhhdmUgdG8gcmVwZWF0IHRoZSBydWxlIGZvciA2MCB0byBnZXQgdXMgdG8gNzkKKyAgICAgICAgKyAiICAgIDcyLzIwOiBzb2l4YW50ZS0+JSVhbHQtb25lcz47XG4iCisgICAgICAgICAgICAgICAvLyBhdCA4MCwgd2Ugc3RhdGUgYSBuZXcgcnVsZSB3aXRoIHRoZSBwaHJhc2UgZm9yIDgwLiAgU2luY2UKKyAgICAgICAgICAgICAgIC8vIGl0IGNoYW5nZXMgZm9ybSB3aGVuIHRoZXJlJ3MgYSBvbmVzIGRpZ2l0LCB3ZSBuZWVkIGEgc2Vjb25kCisgICAgICAgICAgICAgICAvLyBydWxlIGF0IDgxLiAgVGhpcyBydWxlIGFsc28gaW5jbHVkZXMgIi8yMCwiIGFsbG93aW5nIGl0IHRvCisgICAgICAgICAgICAgICAvLyBiZSB1c2VkIGNvcnJlY3RseSBmb3IgYWxsIHZhbHVlcyB1cCB0byA5OQorICAgICAgICArICIgICAgODA6IHF1YXRyZS12aW5ndHM7IDgxLzIwOiBxdWF0cmUtdmluZ3QtPj47XG4iCisgICAgICAgICAgICAgICAvLyAiY2VudCIgYmVjb21lcyBwbHVyYWwgd2hlbiBwcmVjZWRlZCBieSBhIG11bHRpcGxpZXIsIGFuZAorICAgICAgICAgICAgICAgLy8gdGhlIG11bHRpcGxpZXIgaXMgb21pdHRlZCBmcm9tIHRoZSBzaW5ndWxhciBmb3JtCisgICAgICAgICsgIiAgICAxMDA6IGNlbnRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPDwgY2VudHNbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IG1pbGxlWyA+Pl07XG4iCisgICAgICAgICAgICAgICAvLyB2YWx1ZXMgZnJvbSAxLDEwMCB0byAxLDE5OSBhcmUgcmVuZGVyZWQgYXMgIm9uemUgY2VudHMuLi4iCisgICAgICAgICAgICAgICAvLyBpbnN0ZWFkIG9mICJtaWxsZSBjZW50Li4uIiAgVGhlID4gYWZ0ZXIgIjEwMDAiIGRlY3JlYXNlcworICAgICAgICAgICAgICAgLy8gdGhlIHJ1bGUncyBleHBvbmVudCwgY2F1c2luZyBpdHMgbXVsdGlwbGllciB0byBiZSAxMDAgaW5zdGVhZAorICAgICAgICAgICAgICAgLy8gb2YgMSwwMDAuICBUaGlzIHByZXZlbnRzIHVzIGZyb20gZ2V0dGluZyAib256ZSBjZW50cyBjZW50CisgICAgICAgICAgICAgICAvLyB2aW5ndC1kZXV4IiAoImVsZXZlbiBodW5kcmVkIG9uZSBodW5kcmVkIHR3ZW50eS10d28iKS4KKyAgICAgICAgKyAiICAgIDExMDA+OiBvbnplIGNlbnRzWyA+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBhdCAxLDIwMCwgd2UgZ28gYmFjayB0byBmb3JtYXRpbmcgaW4gdGhvdXNhbmRzLCBzbyB3ZQorICAgICAgICAgICAgICAgLy8gcmVwZWF0IHRoZSBydWxlIGZvciAxLDAwMAorICAgICAgICArICIgICAgMTIwMDogbWlsbGUgPj47XG4iCisgICAgICAgICAgICAgICAvLyBhdCAyLDAwMCwgdGhlIG11bHRpcGxpZXIgaXMgYWRkZWQKKyAgICAgICAgKyAiICAgIDIwMDA6IDw8IG1pbGxlWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IG1pbGxpYXJkZVsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgLy8gJSVhbHQtb25lcyBpcyB1c2VkIHRvIGluc2VydCAiZXQiIHdoZW4gdGhlIG9uZXMgZGlnaXQgaXMgMQorICAgICAgICArICIlJWFsdC1vbmVzOlxuIgorICAgICAgICArICIgICAgOyBldC11bjsgPSVtYWluPTsiOworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFN3aXNzIEZyZW5jaC4gIFN3aXNzIEZyZW5jaCBkaWZmZXJzIGZyb20gRnJlbmNoIEZyZW5jaAorICAgICAqIGluIHRoYXQgaXQgZG9lcyBoYXZlIHdvcmRzIGZvciA3MCwgODAsIGFuZCA5MC4gIFRoaXMgcnVsZSBzZXQgc2hvd3MgdGhlbSwKKyAgICAgKiBhbmQgaXMgc2ltcGxlciBhcyBhIHJlc3VsdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBzd2lzc0ZyZW5jaCA9CisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtb2lucyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgdmlyZ3VsZSA+PjtcbiIKKyAgICAgICAgKyAiICAgIHpcdTAwZTlybzsgdW47IGRldXg7IHRyb2lzOyBxdWF0cmU7IGNpbnE7IHNpeDsgc2VwdDsgaHVpdDsgbmV1ZjtcbiIKKyAgICAgICAgKyAiICAgIGRpeDsgb256ZTsgZG91emU7IHRyZWl6ZTsgcXVhdG9yemU7IHF1aW56ZTsgc2VpemU7XG4iCisgICAgICAgICsgIiAgICAgICAgZGl4LXNlcHQ7IGRpeC1odWl0OyBkaXgtbmV1ZjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB2aW5ndFstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0cmVudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA0MDogcXVhcmFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA1MDogY2lucXVhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgNjA6IHNvaXhhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICAgICAgICAgLy8gbm90aWNlIG5ldyB3b3JkcyBmb3IgNzAsIDgwLCBhbmQgOTAKKyAgICAgICAgKyAiICAgIDcwOiBzZXB0YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBvY3RhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgOTA6IG5vbmFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IGNlbnRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPDwgY2VudHNbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IG1pbGxlWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMTAwPjogb256ZSBjZW50c1sgPj5dO1xuIgorICAgICAgICArICIgICAgMTIwMDogbWlsbGUgPj47XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8PCBtaWxsZVsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8PCBtaWxsaWFyZGVbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiUlYWx0LW9uZXM6XG4iCisgICAgICAgICsgIiAgICA7IGV0LXVuOyA9JW1haW49OyI7CisgICAgLy8gSSdtIG5vdCAxMDAlIHN1cmUgYWJvdXQgU3dpc3MgRnJlbmNoLiAgSXMKKyAgICAvLyB0aGlzIGNvcnJlY3Q/ICBJcyAib256ZSBjZW50cyIgY29tbW9ubHkgdXNlZCBmb3IgMSwxMDAgaW4gYm90aCBGcmFuY2UKKyAgICAvLyBhbmQgU3dpdHplcmxhbmQ/ICBDYW4gc29tZW9uZSBmaWxsIG1lIGluIG9uIHRoZSBydWxlcyBmb3IgdGhlIG90aGVyCisgICAgLy8gRnJlbmNoLXNwZWFraW5nIGNvdW50cmllcz8gIEkndmUgaGVhcmQgY29uZmxpY3Rpbmcgb3BpbmlvbnMgb24gd2hpY2gKKyAgICAvLyB2ZXJzaW9uIGlzIHVzZWQgaW4gQ2FuYWRhLCBhbmQgSSB1bmRlcnN0YW5kIHRoZXJlJ3MgYW4gYWx0ZXJuYXRlIHNldAorICAgIC8vIG9mIHdvcmRzIGZvciA3MCwgODAsIGFuZCA5MCB0aGF0IGlzIHVzZWQgc29tZXdoZXJlLCBidXQgSSBkb24ndCBrbm93CisgICAgLy8gd2hhdCB0aG9zZSB3b3JkcyBhcmUgb3Igd2hlcmUgdGhleSdyZSB1c2VkLgorCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEdlcm1hbi4gIEdlcm1hbiBhbHNvIGFkZHMgc29tZSBpbnRlcmVzdGluZworICAgICAqIGNoYXJhY3RlcmlzdGljcy4gIEZvciB2YWx1ZXMgYmVsb3cgMSwwMDAsMDAwLCBudW1iZXJzIGFyZSBjdXN0b21hcmlseQorICAgICAqIHdyaXR0ZW4gb3V0IGFzIGEgc2luZ2xlIHdvcmQuICBBbmQgdGhlIG9uZXMgZGlnaXQgUFJFQ0VERVMgdGhlIHRlbnMKKyAgICAgKiBkaWdpdCAoZS5nLiwgMjMgaXMgImRyZWl1bmR6d2FuemlnLCIgbm90ICJ6d2FuemlndW5kZHJlaSIpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGdlcm1hbiA9CisgICAgICAgIC8vIDEgaXMgImVpbnMiIHdoZW4gYnkgaXRzZWxmLCBidXQgdHVybnMgaW50byAiZWluIiBpbiBtb3N0CisgICAgICAgIC8vIGNvbWJpbmF0aW9ucworICAgICAgICAiJWFsdC1vbmVzOlxuIgorICAgICAgICArICIgICAgbnVsbDsgZWluczsgPSUlbWFpbj07XG4iCisgICAgICAgICsgIiUlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIHdvcmRzIGZvciBudW1iZXJzIGZyb20gMCB0byAxMi4gIE5vdGljZSB0aGF0IHRoZSB2YWx1ZXMKKyAgICAgICAgICAgICAgIC8vIGZyb20gMTMgdG8gMTkgY2FuIGRlcml2ZWQgYWxnb3JpdGhtaWNhbGx5LCB1bmxpa2UgaW4gbW9zdAorICAgICAgICAgICAgICAgLy8gb3RoZXIgbGFuZ3VhZ2VzCisgICAgICAgICsgIiAgICBudWxsOyBlaW47IHp3ZWk7IGRyZWk7IHZpZXI7IGZcdTAwZmNuZjsgc2VjaHM7IHNpZWJlbjsgYWNodDsgbmV1bjtcbiIKKyAgICAgICAgKyAiICAgIHplaG47IGVsZjsgendcdTAwZjZsZjsgPj56ZWhuO1xuIgorICAgICAgICAgICAgICAgLy8gcnVsZXMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTAuICBOb3RpY2UgdGhhdCB0aGUgb25lcyBkaWdpdAorICAgICAgICAgICAgICAgLy8gZ29lcyBvbiB0aGUgZnJvbnQKKyAgICAgICAgKyAiICAgIDIwOiBbPj51bmRdendhbnppZztcbiIKKyAgICAgICAgKyAiICAgIDMwOiBbPj51bmRdZHJlaVx1MDBkZmlnO1xuIgorICAgICAgICArICIgICAgNDA6IFs+PnVuZF12aWVyemlnO1xuIgorICAgICAgICArICIgICAgNTA6IFs+PnVuZF1mXHUwMGZjbmZ6aWc7XG4iCisgICAgICAgICsgIiAgICA2MDogWz4+dW5kXXNlY2h6aWc7XG4iCisgICAgICAgICsgIiAgICA3MDogWz4+dW5kXXNpZWJ6aWc7XG4iCisgICAgICAgICsgIiAgICA4MDogWz4+dW5kXWFjaHR6aWc7XG4iCisgICAgICAgICsgIiAgICA5MDogWz4+dW5kXW5ldW56aWc7XG4iCisgICAgICAgICsgIiAgICAxMDA6IGh1bmRlcnRbPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8PGh1bmRlcnRbPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogdGF1c2VuZFs+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8PHRhdXNlbmRbPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiBlaW5lIE1pbGxpb25bID4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDIsMDAwLDAwMDogPDwgTWlsbGlvbmVuWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiBlaW5lIE1pbGxpYXJkZVsgPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMiwwMDAsMDAwLDAwMDogPDwgTWlsbGlhcmRlblsgPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IGVpbmUgQmlsbGlvblsgPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMiwwMDAsMDAwLDAwMCwwMDA6IDw8IEJpbGxpb25lblsgPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9OyI7CisgICAgLy8gYWdhaW4sIEknbSBub3QgMTAwJSBzdXJlIG9mIHRoZXNlIHJ1bGVzLiAgSSB0aGluayBib3RoICJodW5kZXJ0IiBhbmQKKyAgICAvLyAiZWluaHVuZGVydCIgYXJlIGNvcnJlY3Qgb3IgMTAwLCBidXQgSSdtIG5vdCBzdXJlIHdoaWNoIGlzIHByZWZlcmFibGUKKyAgICAvLyBpbiBzaXR1YXRpb25zIHdoZXJlIHRoaXMgZnJhbWV3b3JrIGlzIGxpa2VseSB0byBiZSB1c2VkLiAgQWxzbywgaXMgaXQKKyAgICAvLyByZWFsbHkgdHJ1ZSB0aGF0IG51bWJlcnMgYXJlIHJ1biB0b2dldGhlciBpbnRvIGNvbXBvdW5kIHdvcmRzIGFsbCB0aGUKKyAgICAvLyB0aW1lPyAgQW5kIGFnYWluLCBJJ20gbWlzc2luZyBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZSBudW1iZXJzIGFuZAorICAgIC8vIGRlY2ltYWxzLgorCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEl0YWxpYW4uICBMaWtlIEdlcm1hbiwgbW9zdCBJdGFsaWFuIG51bWJlcnMgYXJlCisgICAgICogd3JpdHRlbiBhcyBzaW5nbGUgd29yZHMuICBXaGF0IG1ha2VzIHRoZXNlIHJ1bGVzIGNvbXBsaWNhdGVkIGlzIHRoZSBydWxlCisgICAgICogdGhhdCBzYXlzIHRoYXQgd2hlbiBhIHdvcmQgZW5kaW5nIGluIGEgdm93ZWwgYW5kIGEgd29yZCBiZWdpbm5pbmcgd2l0aAorICAgICAqIGEgdm93ZWwgYXJlIGNvbWJpbmVkIGludG8gYSBjb21wb3VuZCwgdGhlIHZvd2VsIGlzIGRyb3BwZWQgZnJvbSB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIGZpcnN0IHdvcmQ6IDE4MCBpcyAiY2VudG90dGFudGEsIiBub3QgImNlbnRvb3R0YW50YS4iCisgICAgICogVGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBydWxlIHNldCBpcyB0byBwcm9kdWNlIHRoaXMgYmVoYXZpb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgaXRhbGlhbiA9CisgICAgICAgIC8vIG1haW4gcnVsZSBzZXQuICBGb2xsb3dzIHRoZSBwYXR0ZXJucyBvZiB0aGUgcHJlY2VkaW5nIHJ1bGUgc2V0cywKKyAgICAgICAgLy8gZXhjZXB0IHRoYXQgdGhlIGZpbmFsIHZvd2VsIGlzIG9taXR0ZWQgZnJvbSB3b3JkcyBlbmRpbmcgaW4KKyAgICAgICAgLy8gdm93ZWxzIHdoZW4gdGhleSBhcmUgZm9sbG93ZWQgYnkgYW5vdGhlciB3b3JkOyBpbnN0ZWFkLCB3ZSBoYXZlCisgICAgICAgIC8vIHNlcGFyYXRlIHJ1bGUgc2V0cyB0aGF0IGFyZSBpZGVudGljYWwgdG8gdGhpcyBvbmUsIGV4Y2VwdCB0aGF0CisgICAgICAgIC8vIGFsbCB0aGUgd29yZHMgdGhhdCBkb24ndCBiZWdpbiB3aXRoIGEgdm93ZWwgaGF2ZSBhIHZvd2VsIHRhY2tlZAorICAgICAgICAvLyBvbnRvIHRoZW0gYXQgdGhlIGZyb250LiAgQSB3b3JkIGVuZGluZyBpbiBhIHZvd2VsIGNhbGxzIGEKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uIHRoYXQgd2lsbCBzdXBwbHkgdGhhdCB2b3dlbCwgdW5sZXNzIHRoYXQgdm93ZWwgaXMgdG8KKyAgICAgICAgLy8gYmUgZWxpZGVkLgorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICsgIiAgICAteDogbWVubyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgdmlyZ29sYSA+PjtcbiIKKyAgICAgICAgKyAiICAgIHplcm87IHVubzsgZHVlOyB0cmU7IHF1YXR0cm87IGNpbnF1ZTsgc2VpOyBzZXR0ZTsgb3R0bztcbiIKKyAgICAgICAgKyAiICAgICAgICBub3ZlO1xuIgorICAgICAgICArICIgICAgZGllY2k7IHVuZGljaTsgZG9kaWNpOyB0cmVkaWNpOyBxdWF0dG9yZGljaTsgcXVpbmRpY2k7IHNlZGljaTtcbiIKKyAgICAgICAgKyAiICAgICAgICBkaWNpYXNldHRlOyBkaWNpb3R0bzsgZGljaWFubm92ZTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB2ZW50aTsgdmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICAzMDogdHJlbnRhOyB0cmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICA0MDogcXVhcmFudGE7IHF1YXJhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNTA6IGNpbnF1YW50YTsgY2lucXVhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNjA6IHNlc3NhbnRhOyBzZXNzYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXR0YW50YTsgc2V0dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBub3ZhbnRhOyBub3ZhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgMTAwOiBjZW50bzsgY2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPDxjZW50bzsgPDxjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogbWlsbGU7IG1pbGxbPiUld2l0aC1pPl07XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8PG1pbGE7IDw8bWlsWz4lJXdpdGgtYT5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMD4+OiA8PG1pbGFbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPSMsIyMwPSAoaW5jb21wbGV0ZSBkYXRhKTtcbiIKKyAgICAgICAgKyAiJSV3aXRoLWE6XG4iCisgICAgICAgICsgIiAgICBhemVybzsgdW5vOyBhZHVlOyBhdHJlOyBhcXVhdHRybzsgYWNpbnF1ZTsgYXNlaTsgYXNldHRlOyBvdHRvO1xuIgorICAgICAgICArICIgICAgICAgIGFub3ZlO1xuIgorICAgICAgICArICIgICAgYWRpZWNpOyB1bmRpY2k7IGFkb2RpY2k7IGF0cmVkaWNpOyBhcXVhdHRvcmRpY2k7IGFxdWluZGljaTsgYXNlZGljaTtcbiIKKyAgICAgICAgKyAiICAgICAgICBhZGljaWFzZXR0ZTsgYWRpY2lvdHRvOyBhZGljaWFubm92ZTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiBhdmVudGk7IGF2ZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiBhdHJlbnRhOyBhdHJlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgNDA6IGFxdWFyYW50YTsgYXF1YXJhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNTA6IGFjaW5xdWFudGE7IGFjaW5xdWFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA2MDogYXNlc3NhbnRhOyBhc2Vzc2FudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA3MDogYXNldHRhbnRhOyBhc2V0dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBhbm92YW50YTsgYW5vdmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICAxMDA6IGFjZW50bzsgYWNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDwlJXdpdGgtYTxjZW50bzsgPCUld2l0aC1hPGNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBhbWlsbGU7IGFtaWxsWz4lJXdpdGgtaT5dO1xuIgorICAgICAgICArICIgICAgMjAwMDogPCUld2l0aC1hPG1pbGE7IDwlJXdpdGgtYTxtaWxbPiUld2l0aC1hPl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwOiA9JW1haW49O1xuIgorICAgICAgICArICIlJXdpdGgtaTpcbiIKKyAgICAgICAgKyAiICAgIGl6ZXJvOyB1bm87IGlkdWU7IGl0cmU7IGlxdWF0dHJvOyBpY2lucXVlOyBpc2VpOyBpc2V0dGU7IG90dG87XG4iCisgICAgICAgICsgIiAgICAgICAgaW5vdmU7XG4iCisgICAgICAgICsgIiAgICBpZGllY2k7IHVuZGljaTsgaWRvZGljaTsgaXRyZWRpY2k7IGlxdWF0dG9yZGljaTsgaXF1aW5kaWNpOyBpc2VkaWNpO1xuIgorICAgICAgICArICIgICAgICAgIGlkaWNpYXNldHRlOyBpZGljaW90dG87IGlkaWNpYW5ub3ZlO1xuIgorICAgICAgICArICIgICAgMjA6IGl2ZW50aTsgaXZlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgMzA6IGl0cmVudGE7IGl0cmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICA0MDogaXF1YXJhbnRhOyBpcXVhcmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA1MDogaWNpbnF1YW50YTsgaWNpbnF1YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBpc2Vzc2FudGE7IGlzZXNzYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBpc2V0dGFudGE7IGlzZXR0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgOTA6IGlub3ZhbnRhOyBpbm92YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogaWNlbnRvOyBpY2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPCUld2l0aC1pPGNlbnRvOyA8JSV3aXRoLWk8Y2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IGltaWxsZTsgaW1pbGxbPiUld2l0aC1pPl07XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8JSV3aXRoLWk8bWlsYTsgPCUld2l0aC1pPG1pbFs+JSV3aXRoLWE+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6ID0lbWFpbj07XG4iCisgICAgICAgICsgIiUld2l0aC1vOlxuIgorICAgICAgICArICIgICAgb3plcm87IHVubzsgb2R1ZTsgb3RyZTsgb3F1YXR0cm87IG9jaW5xdWU7IG9zZWk7IG9zZXR0ZTsgb3R0bztcbiIKKyAgICAgICAgKyAiICAgICAgICBvbm92ZTtcbiIKKyAgICAgICAgKyAiICAgIG9kaWVjaTsgdW5kaWNpOyBvZG9kaWNpOyBvdHJlZGljaTsgb3F1YXR0b3JkaWNpOyBvcXVpbmRpY2k7IG9zZWRpY2k7XG4iCisgICAgICAgICsgIiAgICAgICAgb2RpY2lhc2V0dGU7IG9kaWNpb3R0bzsgb2RpY2lhbm5vdmU7XG4iCisgICAgICAgICsgIiAgICAyMDogb3ZlbnRpOyBvdmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICAzMDogb3RyZW50YTsgb3RyZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBvcXVhcmFudGE7IG9xdWFyYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBvY2lucXVhbnRhOyBvY2lucXVhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNjA6IG9zZXNzYW50YTsgb3Nlc3NhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNzA6IG9zZXR0YW50YTsgb3NldHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA5MDogb25vdmFudGE7IG9ub3ZhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgMTAwOiBvY2VudG87IG9jZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8JSV3aXRoLW88Y2VudG87IDwlJXdpdGgtbzxjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogb21pbGxlOyBvbWlsbFs+JSV3aXRoLWk+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDwlJXdpdGgtbzxtaWxhOyA8JSV3aXRoLW88bWlsWz4lJXdpdGgtYT5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMDogPSVtYWluPTtcbiI7CisgICAgLy8gQ2FuIHNvbWVvbmUgY29uZmlybSB0aGF0IEkgZGlkIHRoZSB2b3dlbC1lbGlkaW5nIHRoaW5nIHJpZ2h0PyAgSSdtCisgICAgLy8gbm90IDEwMCUgc3VyZSBJJ20gZG9pbmcgaXQgaW4gYWxsIHRoZSByaWdodCBwbGFjZXMsIG9yIGNvbXBsZXRlbHkKKyAgICAvLyBjb3JyZWN0bHkuICBBbHNvLCBJIGRvbid0IGhhdmUgaW5mb3JtYXRpb24gZm9yIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHMsCisgICAgLy8gYW5kIEkgbGFjayB3b3JkcyBmcm9yIHZhbHVlcyBmcm9tIDEsMDAwLDAwMCBvbiB1cC4KKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBTd2VkaXNoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHN3ZWRpc2ggPQorICAgICAgICAibm9sbDsgZXR0OyB0dlx1MDBlNTsgdHJlOyBmeXJhOyBmZW07IHNleDsgc2pvOyBcdTAwZTV0dGE7IG5pbztcbiIKKyAgICAgICAgKyAidGlvOyBlbHZhOyB0b2x2OyB0cmV0dG9uOyBmam9ydG9uOyBmZW10b247IHNleHRvbjsgc2p1dHRvbjsgYXJ0b247IG5pdHRvbjtcbiIKKyAgICAgICAgKyAiMjA6IHRqdWdvWz4+XTtcbiIKKyAgICAgICAgKyAiMzA6IHRyZXR0aW9bPj5dO1xuIgorICAgICAgICArICI0MDogZnlydGlvWz4+XTtcbiIKKyAgICAgICAgKyAiNTA6IGZlbXRpb1s+Pl07XG4iCisgICAgICAgICsgIjYwOiBzZXh0aW9bPj5dO1xuIgorICAgICAgICArICI3MDogc2p1dHRpb1s+Pl07XG4iCisgICAgICAgICsgIjgwOiBcdTAwZTV0dGlvWz4+XTtcbiIKKyAgICAgICAgKyAiOTA6IG5pdHRpb1s+Pl07XG4iCisgICAgICAgICsgIjEwMDogaHVuZHJhWz4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiA8PGh1bmRyYVs+Pl07XG4iCisgICAgICAgICsgIjEwMDA6IHR1c2VuWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IHR1c2VuWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogZW4gbWlsam9uWyA+Pl07XG4iCisgICAgICAgICsgIjIsMDAwLDAwMDogPDwgbWlsam9uWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IGVuIG1pbGphcmRbID4+XTtcbiIKKyAgICAgICAgKyAiMiwwMDAsMDAwLDAwMDogPDwgbWlsamFyZFsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMDogZW4gYmlsam9uWyA+Pl07XG4iCisgICAgICAgICsgIjIsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9IjsKKyAgICAvLyBjYW4gc29tZW9uZSBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIER1dGNoLiAgTm90aWNlIHRoYXQgaW4gRHV0Y2gsIGFzIGluIEdlcm1hbiwKKyAgICAgKiB0aGUgb25lcyBkaWdpdCBwcmVjZWRlcyB0aGUgdGVucyBkaWdpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkdXRjaCA9CisgICAgICAgICIgLXg6IG1pbiA+PjtcbiIKKyAgICAgICAgKyAieC54OiA8PCBrb21tYSA+PjtcbiIKKyAgICAgICAgKyAiKHplcm8/KTsgZWVuOyB0d2VlOyBkcmllOyB2aWVyOyB2aWpmOyB6ZXM7IHpldmVuOyBhY2h0OyBuZWdlbjtcbiIKKyAgICAgICAgKyAidGllbjsgZWxmOyB0d2FhbGY7IGRlcnRpZW47IHZlZXJ0aWVuOyB2aWpmdGllbjsgemVzdGllbjtcbiIKKyAgICAgICAgKyAiemV2ZW50aWVuOyBhY2h0aWVuOyBuZWdlbnRpZW47XG4iCisgICAgICAgICsgIjIwOiBbPj4gZW4gXXR3aW50aWc7XG4iCisgICAgICAgICsgIjMwOiBbPj4gZW4gXWRlcnRpZztcbiIKKyAgICAgICAgKyAiNDA6IFs+PiBlbiBddmVlcnRpZztcbiIKKyAgICAgICAgKyAiNTA6IFs+PiBlbiBddmlqZnRpZztcbiIKKyAgICAgICAgKyAiNjA6IFs+PiBlbiBdemVzdGlnO1xuIgorICAgICAgICArICI3MDogWz4+IGVuIF16ZXZlbnRpZztcbiIKKyAgICAgICAgKyAiODA6IFs+PiBlbiBddGFjaHRpZztcbiIKKyAgICAgICAgKyAiOTA6IFs+PiBlbiBdbmVnZW50aWc7XG4iCisgICAgICAgICsgIjEwMDogPDwgaG9uZGVyZFsgPj5dO1xuIgorICAgICAgICArICIxMDAwOiA8PCBkdWl6ZW5kWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPDwgbWlsam9lblsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8PCBiaWxqb2VuWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9IjsKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBKYXBhbmVzZS4gIEluIEphcGFuZXNlLCB0aGVyZSByZWFsbHkgaXNuJ3QgYW55CisgICAgICogZGlzdGluY3Rpb24gYmV0d2VlbiBhIG51bWJlciB3cml0dGVuIG91dCBpbiBkaWdpdHMgYW5kIGEgbnVtYmVyCisgICAgICogd3JpdHRlbiBvdXQgaW4gd29yZHM6IHRoZSBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzIGFyZSBib3RoIGRpZ2l0cworICAgICAqIGFuZCB3b3Jkcy4gIFRoaXMgcnVsZSBzZXQgcHJvdmlkZXMgdHdvIHZhcmlhbnRzOiAgJXRyYWRpdGlvbmFsCisgICAgICogdXNlcyB0aGUgdHJhZGl0aW9uYWwgQ0pLIG51bWVyYWxzICh3aGljaCBhcmUgYWxzbyB1c2VkIGluIENoaW5hCisgICAgICogYW5kIEtvcmVhKS4gICVmaW5hbmNpYWwgdXNlcyBhbHRlcm5hdGUgaWRlb2dyYXBocyBmb3IgbWFueSBudW1iZXJzCisgICAgICogdGhhdCBhcmUgaGFyZGVyIHRvIGFsdGVyIHRoYW4gdGhlIHRyYWRpdGlvbmFsIG51bWVyYWxzIChvbmUgY291bGQKKyAgICAgKiBmYWlybHkgZWFzaWx5IGNoYW5nZSBhIG9uZSB0bworICAgICAqIGEgdGhyZWUganVzdCBieSBhZGRpbmcgdHdvIHN0cm9rZXMsIGZvciBleGFtcGxlKS4gIFRoaXMgaXMgYWxzbyBkb25lIGluCisgICAgICogdGhlIG90aGVyIGNvdW50cmllcyB1c2luZyBDaGluZXNlIGlkb2dyYXBocywgYnV0IGRpZmZlcmVudCBpZGVvZ3JhcGhzCisgICAgICogYXJlIHVzZWQgaW4gdGhvc2UgcGxhY2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGphcGFuZXNlID0KKyAgICAgICAgIiVmaW5hbmNpYWw6XG4iCisgICAgICAgICsgIiAgICBcdTk2ZjY7IFx1NThmMTsgXHU1ZjEwOyBcdTUzYzI7IFx1NTZkYjsgXHU0ZjBkOyBcdTUxNmQ7IFx1NGUwMzsgXHU1MTZiOyBcdTRlNWQ7XG4iCisgICAgICAgICsgIiAgICBcdTYyZmVbPj5dO1xuIgorICAgICAgICArICIgICAgMjA6IDw8XHU2MmZlWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDxcdTc2N2VbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDxcdTUzNDNbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiA8PFx1NGUwN1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwLDAwMDogPDxcdTUxMDRbPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8XHU1MTQ2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiV0cmFkaXRpb25hbDpcbiIKKyAgICAgICAgKyAiICAgIFx1OTZmNjsgXHU0ZTAwOyBcdTRlOGM7IFx1NGUwOTsgXHU1NmRiOyBcdTRlOTQ7IFx1NTE2ZDsgXHU0ZTAzOyBcdTUxNmI7IFx1NGU1ZDtcbiIKKyAgICAgICAgKyAiICAgIFx1NTM0MVs+Pl07XG4iCisgICAgICAgICsgIiAgICAyMDogPDxcdTUzNDFbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PFx1NzY3ZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PFx1NTM0M1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDAsMDAwOiA8PFx1NTEwNFs+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDxcdTUxNDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiOworICAgIC8vIENhbiBzb21lb25lIHN1cHBseSBtZSB3aXRoIHRoZSByaWdodCBmcmF1ZC1wcm9vZiBpZGVvZ3JhcGhzIGZvcgorICAgIC8vIFNpbXBsaWZpZWQgYW5kIFRyYWRpdGlvbmFsIENoaW5lc2UsIGFuZCBmb3IgS29yZWFuPyAgQ2FuIHNvbWVvbmUKKyAgICAvLyBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEdyZWVrLiAgQWdhaW4gaW4gR3JlZWsgd2UgaGF2ZSB0byBzdXBwbHkgdGhlIHdvcmRzCisgICAgICogZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTAwIGJlY2F1c2UgdGhleSBjYW4ndCBiZSBkZXJpdmVkIGFsZ29yaXRobWljYWxseS4KKyAgICAgKiBBbHNvLCB0aGUgdGVucyBkZ2l0IGNoYW5nZXMgZm9ybSB3aGVuIGZvbGxvd2VkIGJ5IGEgb25lcyBkaWdpdDogYW4KKyAgICAgKiBhY2NlbnQgbWFyayBkaXNhcHBlYXJzIGZyb20gdGhlIHRlbnMgZGlnaXQgYW5kIG1vdmVzIHRvIHRoZSBvbmVzIGRpZ2l0LgorICAgICAqIFRoZXJlZm9yZSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgW10gbm90YXRpb24sIHdlIGFjdHVhbGx5IGhhdmUgdG8gdXNlCisgICAgICogdHdvIHNlcGFyYXRlIHJ1bGVzIGZvciBlYWNoIG11bHRpcGxlIG9mIDEwIHRvIHNob3cgdGhlIHR3byBmb3JtcyBvZgorICAgICAqIHRoZSB3b3JkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGdyZWVrID0KKyAgICAgICAgInplcm8gKGluY29tcGxldGUgZGF0YSk7IFx1MDNhZFx1MDNiZFx1MDNiMTsgXHUwM2I0XHUwM2NkXHUwM2JmOyBcdTAzYjRcdTAzYzFcdTAzYWZcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2M0XHUwM2FkXHUwM2MzXHUwM2MzXHUwM2I1XHUwM2MxXHUwM2IxOyBcdTAzYzBcdTAzYWRcdTAzYmRcdTAzYzRcdTAzYjU7ICIKKyAgICAgICAgKyAiXHUwM2FkXHUwM2JlXHUwM2I5OyBcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYWM7IFx1MDNiZlx1MDNiYVx1MDNjNFx1MDNjZTsgIgorICAgICAgICArICJcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYWRcdTAzYjE7XG4iCisgICAgICAgICsgIjEwOiBcdTAzYjRcdTAzYWRcdTAzYmFcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2FkXHUwM2JkXHUwM2I0XHUwM2I1XHUwM2JhXHUwM2IxOyBcdTAzYjRcdTAzY2VcdTAzYjRcdTAzYjVcdTAzYmFcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2I0XHUwM2I1XHUwM2JhXHUwM2IxPj47XG4iCisgICAgICAgICsgIjIwOiBcdTAzYjVcdTAzYWZcdTAzYmFcdTAzYmZcdTAzYzNcdTAzYjk7IFx1MDNiNVx1MDNiOVx1MDNiYVx1MDNiZlx1MDNjM1x1MDNiOT4+O1xuIgorICAgICAgICArICIzMDogXHUwM2M0XHUwM2MxXHUwM2I5XHUwM2FjXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYzRcdTAzYzFcdTAzYjlcdTAzYjFcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiNDA6IFx1MDNjM1x1MDNiMVx1MDNjMVx1MDNhY1x1MDNiZFx1MDNjNFx1MDNiMTsgXHUwM2MzXHUwM2IxXHUwM2MxXHUwM2IxXHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjUwOiBcdTAzYzBcdTAzYjVcdTAzYmRcdTAzYWVcdTAzYmRcdTAzYzRcdTAzYjE7IFx1MDNjMFx1MDNiNVx1MDNiZFx1MDNiN1x1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI2MDogXHUwM2I1XHUwM2JlXHUwM2FlXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYjVcdTAzYmVcdTAzYjdcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiNzA6IFx1MDNiNVx1MDNiMlx1MDNiNFx1MDNiZlx1MDNiY1x1MDNhZVx1MDNiZFx1MDNjNFx1MDNiMTsgIgorICAgICAgICArICJcdTAzYjVcdTAzYjJcdTAzYjRcdTAzYmZcdTAzYmNcdTAzYjdcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiODA6IFx1MDNiZlx1MDNiM1x1MDNiNFx1MDNjY1x1MDNiZFx1MDNjNFx1MDNiMTsgXHUwM2JmXHUwM2IzXHUwM2I0XHUwM2JmXHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjkwOiBcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjVcdTAzYmRcdTAzYWVcdTAzYmRcdTAzYzRcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2I1XHUwM2JkXHUwM2JkXHUwM2I1XHUwM2JkXHUwM2I3XHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjEwMDogXHUwM2I1XHUwM2JhXHUwM2IxXHUwM2M0XHUwM2NjW1x1MDNiZCA+Pl07XG4iCisgICAgICAgICsgIjIwMDogXHUwM2I0XHUwM2I5XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjMwMDogXHUwM2M0XHUwM2MxXHUwM2I5XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjQwMDogXHUwM2M0XHUwM2I1XHUwM2M0XHUwM2MxXHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjUwMDogXHUwM2MwXHUwM2I1XHUwM2JkXHUwM2M0XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjYwMDogXHUwM2I1XHUwM2JlXHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjcwMDogXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjgwMDogXHUwM2JmXHUwM2JhXHUwM2M0XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjkwMDogXHUwM2I1XHUwM2JkXHUwM2JkXHUwM2I5XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjEwMDA6IFx1MDNjN1x1MDNhZlx1MDNiYlx1MDNiOVx1MDNiMVsgPj5dO1xuIgorICAgICAgICArICIyMDAwOiA8PCBcdTAzYzdcdTAzYWZcdTAzYmJcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8PCBcdTAzYjVcdTAzYmFcdTAzYjFcdTAzYzRcdTAzYmZcdTAzYmNcdTAzYmNcdTAzYjlcdTAzY2NcdTAzYzFcdTAzYjlcdTAzYmZbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPDwgXHUwM2I0XHUwM2I5XHUwM2MzXHUwM2I1XHUwM2JhXHUwM2IxXHUwM2M0XHUwM2JmXHUwM2JjXHUwM2JjXHUwM2I5XHUwM2NjXHUwM2MxXHUwM2I5XHUwM2JmWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9IjsKKyAgICAvLyBDYW4gc29tZW9uZSBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworICAgIC8vIEknbSBhbHNvIG1pc3NpbmcgdGhlIHdvcmQgZm9yIHplcm8uICBDYW4gc29tZW9uZSBjbHVlIG1lIGluPworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFJ1c3NpYW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgcnVzc2lhbiA9CisgICAgICAgICJcdTA0M2RcdTA0M2VcdTA0M2JcdTA0NGM7IFx1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZDsgXHUwNDM0XHUwNDMyXHUwNDMwOyBcdTA0NDJcdTA0NDBcdTA0Mzg7ICIKKyAgICAgICAgKyAiXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDRiXHUwNDQwXHUwNDM1OyBcdTA0M2ZcdTA0NGZcdTA0NDI7IFx1MDQ0OFx1MDQzNVx1MDQ0MVx1MDQ0MjsgIgorICAgICAgICArICJcdTA0NDFcdTA0MzVcdTA0M2NcdTA0NGM7IFx1MDQzMlx1MDQzZVx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQ0YzsgXHUwNDM0XHUwNDM1XHUwNDMyXHUwNDRmXHUwNDQyO1xuIgorICAgICAgICArICIxMDogXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyOyAiCisgICAgICAgICsgIlx1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YztcbiIKKyAgICAgICAgKyAiXHUwNDM0XHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0NGJcdTA0NDBcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7XG4iCisgICAgICAgICsgIjE1OiBcdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDQ4XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0MzJcdTA0M2VcdTA0NDFcdTA0MzVcdTA0M2NcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDM0XHUwNDM1XHUwNDMyXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjO1xuIgorICAgICAgICArICIyMDogXHUwNDM0XHUwNDMyXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjWyA+Pl07XG4iCisgICAgICAgICsgIjMwOiBcdTA0NDJcdTA0NDBcdTA0M2JcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGNbID4+XTtcbiIKKyAgICAgICAgKyAiNDA6IFx1MDQ0MVx1MDQzZVx1MDQ0MFx1MDQzZVx1MDQzYVsgPj5dO1xuIgorICAgICAgICArICI1MDogXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDRjXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyWyA+Pl07XG4iCisgICAgICAgICsgIjYwOiBcdTA0NDhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0NGNcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDJbID4+XTtcbiIKKyAgICAgICAgKyAiNzA6IFx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQ0Y1x1MDQzNFx1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0MlsgPj5dO1xuIgorICAgICAgICArICI4MDogXHUwNDMyXHUwNDNlXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDRjXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyWyA+Pl07XG4iCisgICAgICAgICsgIjkwOiBcdTA0MzRcdTA0MzVcdTA0MzJcdTA0NGZcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0M2VbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwOiBcdTA0NDFcdTA0NDJcdTA0M2VbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiA8PCBcdTA0NDFcdTA0NDJcdTA0M2VbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogXHUwNDQyXHUwNDRiXHUwNDQxXHUwNDRmXHUwNDQ3XHUwNDMwWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IFx1MDQ0Mlx1MDQ0Ylx1MDQ0MVx1MDQ0Zlx1MDQ0N1x1MDQzMFsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzYlx1MDQzOFx1MDQzZVx1MDQzZFsgPj5dO1xuIgorICAgICAgICArICIyLDAwMCwwMDA6IDw8IFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzYlx1MDQzOFx1MDQzZVx1MDQzZFsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA9IywjIzA9OyI7CisgICAgLy8gQ2FuIHNvbWVvbmUgc3VwcGx5IG1lIHdpdGggaW5mb3JtYXRpb24gb24gbmVnYXRpdmVzIGFuZCBkZWNpbWFscz8KKyAgICAvLyBIb3cgYWJvdXQgd29yZHMgZm9yIGJpbGxpb25zIGFuZCB0cmlsbGlvbnM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgSGVicmV3LiAgSGVicmV3IGFjdHVhbGx5IGhhcyBpbmZsZWN0ZWQgZm9ybXMgZm9yCisgICAgICogbW9zdCBvZiB0aGUgbG93ZXItb3JkZXIgbnVtYmVycy4gIFRoZSBtYXNjdWxpbmUgZm9ybXMgYXJlIHNob3duCisgICAgICogaGVyZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBoZWJyZXcgPQorICAgICAgICAiemVybyAoaW5jb21wbGV0ZSBkYXRhKTsgXHUwNWQwXHUwNWQ0XHUwNWQzOyBcdTA1ZTlcdTA1ZDJcdTA1ZDlcdTA1ZDlcdTA1ZGQ7IFx1MDVlOVx1MDVkY1x1MDVkNVx1MDVlOVx1MDVkNDtcbiIKKyAgICAgICAgKyAiNDogXHUwNWQwXHUwNWQzXHUwNWQxXHUwNWU2XHUwNWQ0OyBcdTA1ZDdcdTA1ZDJcdTA1ZDVcdTA1ZDlcdTA1ZTlcdTA1ZDQ7IFx1MDVlOVx1MDVlOVx1MDVkNDtcbiIKKyAgICAgICAgKyAiNzogXHUwNWU5XHUwNWQxXHUwNWU2XHUwNWQ0OyBcdTA1ZTlcdTA1ZGVcdTA1ZDVcdTA1ZDJcdTA1ZDQ7IFx1MDVlYVx1MDVlOVx1MDVlNlx1MDVkNDtcbiIKKyAgICAgICAgKyAiMTA6IFx1MDVlNlx1MDVlOVx1MDVkM1x1MDVkNFsgPj5dO1xuIgorICAgICAgICArICIyMDogXHUwNWU2XHUwNWU5XHUwNWQzXHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjMwOiBcdTA1ZTlcdTA1ZGNcdTA1ZDVcdTA1ZTlcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiNDA6IFx1MDVkMFx1MDVkM1x1MDVkMVx1MDVlNlx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI1MDogXHUwNWQ3XHUwNWRlXHUwNWQ5XHUwNWU5XHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjYwOiBcdTA1ZTlcdTA1ZTlcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiNzA6IFx1MDVlOVx1MDVkMVx1MDVlNlx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI4MDogXHUwNWU5XHUwNWRlXHUwNWQ1XHUwNWQyXHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjkwOiBcdTA1ZWFcdTA1ZTlcdTA1ZTZcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwOiBcdTA1ZGVcdTA1ZDBcdTA1ZDRbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiA8PCBcdTA1ZGVcdTA1ZDBcdTA1ZDRbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogXHUwNWQwXHUwNWRjXHUwNWUzWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IFx1MDVkMFx1MDVkY1x1MDVlM1sgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDA6ID0jLCMjMD0gKGluY29tcGxldGUgZGF0YSk7IjsKKyAgICAvLyBUaGlzIGRhdGEgaXMgd29lZnVsbHkgaW5jb21wbGV0ZS4gIENhbiBzb21lb25lIGZpbGwgbWUgaW4gb24gdGhlCisgICAgLy8gdmFyaW91cyBpbmZsZWN0ZWQgZm9ybXMgb2YgdGhlIG51bWJlcnMsIHdoaWNoIHNlZW0gdG8gYmUgbmVjZXNzYXJ5CisgICAgLy8gdG8gZG8gSGVicmV3IGNvcnJlY3RseT8gIENhbiBzb21vbmUgc3VwcGx5IG1lIHdpdGggZGF0YSBmb3IgdmFsdWVzCisgICAgLy8gZnJvbSAxLDAwMCwwMDAgb24gdXA/ICBXaGF0IGFib3V0IHRoZSB3b3JkIGZvciB6ZXJvPyAgV2hhdCBhYm91dAorICAgIC8vIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFNpbXBsZSBleGFtcGxlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHJ1bGUgc2V0IGFkZHMgYW4gRW5nbGlzaCBvcmRpbmFsIGFiYnJldmlhdGlvbiB0byB0aGUgZW5kIG9mIGEKKyAgICAgKiBudW1iZXIuICBGb3IgZXhhbXBsZSwgMiBpcyBmb3JtYXR0ZWQgYXMgIjJuZCIuICBQYXJzaW5nIGRvZXNuJ3Qgd29yayB3aXRoCisgICAgICogdGhpcyBydWxlIHNldC4gIFRvIHBhcnNlLCB1c2UgRGVjaW1hbEZvcm1hdCBvbiB0aGUgbnVtZXJhbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBvcmRpbmFsID0KKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIHRoZSBudW1lcmFsIGFuZCBjYWxscyAlJWFiYnJldiB0bworICAgICAgICAvLyBzdXBwbHkgdGhlIGFiYnJldmlhdGlvbgorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICsgIiAgICA9IywjIzA9PSUlYWJicmV2PTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBzdXBwbGllcyB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICsgIiUlYWJicmV2OlxuIgorICAgICAgICAgICAgICAgLy8gdGhlIGFiYnJldmlhdGlvbnMuICBFdmVyeXRoaW5nIGZyb20gNCB0byAxOSBlbmRzIGluICJ0aCIKKyAgICAgICAgKyAiICAgIHRoOyBzdDsgbmQ7IHJkOyB0aDtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDIwLCB3ZSBiZWdpbiByZXBlYXRpbmcgdGhlIGN5Y2xlIGV2ZXJ5IDEwICgxMyBpcyAiMTN0aCIsCisgICAgICAgICAgICAgICAvLyBidXQgMjMgYW5kIDMzIGFyZSAiMjNyZCIgYW5kICIzM3JkIikgIFdlIGRvIHRoaXMgYnkKKyAgICAgICAgICAgICAgIC8vIGlnbm9yaW5nIGFsbCBidWcgdGhlIG9uZXMgZGlnaXQgaW4gc2VsZWN0aW5nIHRoZSBhYmJyZXZpYXRpb24KKyAgICAgICAgKyAiICAgIDIwOiA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDEwMCwgd2UgcmVwZWF0IHRoZSB3aG9sZSBjeWNsZSBieSBjb25zaWRlcmluZyBvbmx5IHRoZQorICAgICAgICAgICAgICAgLy8gdGVucyBhbmQgb25lcyBkaWdpdHMgaW4gcGlja2luZyBhbiBhYmJyZXZpYXRpb24KKyAgICAgICAgKyAiICAgIDEwMDogPj47XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIHNpbXBsZSBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZS4gIE5vcm1hbGx5IG9uZSB3b3VsZAorICAgICAqIHVzZSBDaG9pY2VGb3JtYXQgYW5kIE1lc3NhZ2VGb3JtYXQgdG8gZG8gc29tZXRoaW5nIHRoaXMgc2ltcGxlLAorICAgICAqIGJ1dCB0aGlzIHNob3dzIGl0IGNvdWxkIGJlIGRvbmUgd2l0aCBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdG9vLgorICAgICAqIEEgbWVzc2FnZS1mb3JtYXR0aW5nIGV4YW1wbGUgdGhhdCBtaWdodCB3b3JrIGJldHRlciB3aXRoCisgICAgICogUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGFwcGVhcnMgbGF0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgbWVzc2FnZTEgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc3Vycm91bmRzIHdoYXRldmVyIHRoZSBvdGhlciBydWxlcyBwcm9kdWNlIHdpdGggdGhlCisgICAgICAgIC8vIHJlc3Qgb2YgdGhlIHNlbnRlbmNlCisgICAgICAgICJ4LjA6IFRoZSBzZWFyY2ggZm91bmQgPDwuO1xuIgorICAgICAgICAvLyB1c2Ugd29yZHMgZm9yIHZhbHVlcyBiZWxvdyAxMCAoYW5kIGNoYW5nZSB0byAiZmlsZSIgZm9yIDEpCisgICAgICAgICsgIm5vIGZpbGVzOyBvbmUgZmlsZTsgdHdvIGZpbGVzOyB0aHJlZSBmaWxlczsgZm91ciBmaWxlczsgZml2ZSBmaWxlcztcbiIKKyAgICAgICAgKyAiICAgIHNpeCBmaWxlczsgc2V2ZW4gZmlsZXM7IGVpZ2h0IGZpbGVzOyBuaW5lIGZpbGVzO1xuIgorICAgICAgICAvLyB1c2UgbnVtZXJhbHMgZm9yIHZhbHVlcyBoaWdoZXIgdGhhbiAxMAorICAgICAgICArICI9IywjIzA9IGZpbGVzOyI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEZyYWN0aW9uIGhhbmRsaW5nCisgICAgLy8KKyAgICAvLyBUaGUgbmV4dCBmZXcgZXhhbXBsZXMgc2hvdyBob3cgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGNhbiBiZSB1c2VkIGZvcgorICAgIC8vIG1vcmUgZmxleGlibGUgaGFuZGxpbmcgb2YgZnJhY3Rpb25zCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIGluIG9uZSBvZiB0aGUgdHdvIHN0eWxlcyBvZnRlbiB1c2VkCisgICAgICogb24gY2hlY2tzLiAgJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHMgZm9ybWF0cyBjZW50cyBhcyBodW5kcmVkdGhzIG9mCisgICAgICogYSBkb2xsYXIgKDIzLjQwIGNvbWVzIG91dCBhcyAidHdlbnR5LXRocmVlIGFuZCA0MC8xMDAgZG9sbGFycyIpLgorICAgICAqICVkb2xsYXJzLWFuZC1jZW50cyBmb3JtYXRzIGluIGRvbGxhcnMgYW5kIGNlbnRzICgyMy40MCBjb21lcyBvdXQgYXMKKyAgICAgKiAidHdlbnR5LXRocmVlIGRvbGxhcnMgYW5kIGZvcnR5IGNlbnRzIikKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkb2xsYXJzQW5kQ2VudHMgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgbnVtYmVycyBhcyBkb2xsYXJzIGFuZCBjZW50cworICAgICAgICAiJWRvbGxhcnMtYW5kLWNlbnRzOlxuIgorICAgICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlIGlzIDEgb3IgbW9yZSwgcHV0ICJ4eCBkb2xsYXJzIGFuZCB5eSBjZW50cyIuCisgICAgICAgICAgICAgICAvLyB0aGUgImFuZCB5IGNlbnRzIiBwYXJ0IGlzIHN1cHByZXNzZWQgaWYgdGhlIHZhbHVlIGlzIGFuCisgICAgICAgICAgICAgICAvLyBldmVuIG51bWJlciBvZiBkb2xsYXJzCisgICAgICAgICsgIiAgICB4LjA6IDw8IFthbmQgPiUlY2VudHM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBiZXR3ZWVuIDAgYW5kIDEsIHB1dCAieHggY2VudHMiCisgICAgICAgICsgIiAgICAwLng6ID4lJWNlbnRzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZXNlIHRocmVlIHJ1bGVzIHRha2UgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbAorICAgICAgICAgICAgICAgLy8gZm9ybXMgb2YgImRvbGxhciIgYW5kIHVzZSAlJW1haW4gdG8gZm9ybWF0IHRoZSBudW1iZXIKKyAgICAgICAgKyAiICAgIDA6IHplcm8gZG9sbGFyczsgb25lIGRvbGxhcjsgPSUlbWFpbj0gZG9sbGFycztcbiIKKyAgICAgICAgLy8gdGhlc2UgYXJlIHRoZSByZWd1bGFyIFUuUy4gRW5nbGlzaCBudW1iZXIgc3BlbGxvdXQgcnVsZXMKKyAgICAgICAgKyAiJSVtYWluOlxuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCB0cmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgdGFrZXMgY2FyZSBvZiB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSB2YWx1ZS4gIEl0CisgICAgICAgIC8vIG11bHRpcGxpZXMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBieQorICAgICAgICAvLyAxMDAsIGZvcm1hdHMgaXQgd2l0aCAlJW1haW4sIGFuZCB0aGVuIGFkZGVzIHRoZSB3b3JkICJjZW50IiBvcgorICAgICAgICAvLyAiY2VudHMiIHRvIHRoZSBlbmQuICAoVGhlIHRleHQgaW4gYnJhY2tldHMgaXMgb21pdHRlZCBpZiB0aGUKKyAgICAgICAgLy8gbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiBpcyAxLikKKyAgICAgICAgKyAiJSVjZW50czpcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCUlbWFpbjwgY2VudFtzXTtcbiIKKworICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgbnVtYmVycyBhcyBkb2xsYXJzIGFuZCBodW5kcmVkdGhzIG9mIGRvbGxhcnMKKyAgICAgICAgKyAiJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHM6XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgdGFrZXMgY2FyZSBvZiB0aGUgZ2VuZXJhbCBzaGVsbCBvZiB0aGUgb3V0cHV0CisgICAgICAgICAgICAgICAvLyBzdHJpbmcuICBXZSBhbHdheXMgc2hvdyB0aGUgY2VudHMsIGV2ZW4gd2hlbiB0aGVyZSBhcmVuJ3QKKyAgICAgICAgICAgICAgIC8vIGFueS4gIEJlY2F1c2Ugb2YgdGhpcywgdGhlIHdvcmQgaXMgYWx3YXlzICJkb2xsYXJzIi0tCisgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSBzaW5ndWxhciBmb3JtLiAgV2UgdXNlCisgICAgICAgICAgICAgICAvLyAlJW1haW4gdG8gZm9ybWF0IHRoZSBudW1iZXIgb2YgZG9sbGFycyBhbmQgJSVodW5kcmVkdGhzIHRvCisgICAgICAgICAgICAgICAvLyBmb3JtYXQgdGhlIG51bWJlciBvZiBjZW50cworICAgICAgICArICIgICAgeC4wOiA8JSVtYWluPCBhbmQgPiUlaHVuZHJlZHRocz4vMTAwIGRvbGxhcnM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyB0aGUgY2VudHMgZm9yICVkb2xsYXJzLWFuZC1odW5kcmVkdGhzLgorICAgICAgICAvLyBJdCBtdWx0aXBsaWVzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBieSAxMDAgYW5kIGZvcm1hdHMKKyAgICAgICAgLy8gdGhlIHJlc3VsdCB1c2luZyBhIERlY2ltYWxGb3JtYXQgKCIwMCIgdGVsbHMgdGhlIERlY2ltYWxGb3JtYXQgdG8KKyAgICAgICAgLy8gYWx3YXlzIHVzZSB0d28gZGlnaXRzLCBldmVuIGZvciBudW1iZXJzIHVuZGVyIDEwKQorICAgICAgICArICIlJWh1bmRyZWR0aHM6XG4iCisgICAgICAgICsgIiAgICAxMDA6IDwwMDw7XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBydWxlIHNldCBzaG93cyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYXMgYSBmcmFjdGlvbgorICAgICAqIHdpdGggYSBwb3dlciBvZiAxMCBhcyB0aGUgZGVub21pbmF0b3IuICBTb21lIGxhbmd1YWdlcyBkb24ndCBzcGVsbAorICAgICAqIG91dCB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIGEgbnVtYmVyIGFzICJwb2ludCBvbmUgdHdvIHRocmVlLCIgYnV0CisgICAgICogYWx3YXlzIHJlbmRlciBpdCBhcyBhIGZyYWN0aW9uLiAgSWYgd2Ugc3RpbGwgd2FudCB0byB0cmVhdCB0aGUgZnJhY3Rpb25hbAorICAgICAqIHBhcnQgb2YgdGhlIG51bWJlciBhcyBhIGRlY2ltYWwsIHRoZW4gdGhlIGZyYWN0aW9uJ3MgZGVub21pbmF0b3IKKyAgICAgKiBpcyBhbHdheXMgYSBwb3dlciBvZiAxMC4gIFRoaXMgZXhhbXBsZSBkb2VzIHRoYXQ6IDIzLjEyNSBpcyBmb3JtYXR0ZWQKKyAgICAgKiBhcyAidHdlbnR5LXRocmVlIGFuZCBvbmUgaHVuZHJlZCB0d2VudHktZml2ZSB0aG91c2FuZHRocyIgKGFzIG9wcG9zZWQKKyAgICAgKiB0byAidHdlbnR5LXRocmVlIHBvaW50IG9uZSB0d28gZml2ZSIgb3IgInR3ZW50eS10aHJlZSBhbmQgb25lIGVpZ2h0aCIpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGRlY2ltYWxBc0ZyYWN0aW9uID0KKyAgICAgICAgLy8gdGhlIHJlZ3VsYXIgVS5TLiBFbmdsaXNoIHNwZWxsb3V0IHJ1bGVzLCB3aXRoIG9uZSBkaWZmZXJlbmNlCisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSBkaWZmZXJlbmNlLiAgVGhpcyBydWxlIHVzZXMgJSVmcmFjIHRvIHNob3cgdGhlIGZyYWN0aW9uYWwKKyAgICAgICAgICAgICAgIC8vIHBhcnQgb2YgdGhlIG51bWJlci4gIFRleHQgaW4gYnJhY2tldHMgaXMgb21pdHRlZCB3aGVuIHRoZQorICAgICAgICAgICAgICAgLy8gdmFsdWUgaXMgYmV0d2VlbiAwIGFuZCAxIChjYXVzaW5nIDAuMyB0byBjb21lIG91dCBhcyAidGhyZWUKKyAgICAgICAgICAgICAgIC8vIHRlbnRocyIgaW5zdGVhZCBvZiAiemVybyBhbmQgdGhyZWUgdGVudGhzIikuCisgICAgICAgICsgIiAgICB4Lng6IFs8PCBhbmQgXT4lJWZyYWM+O1xuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIHR3ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgIC8vIHRoZSBydWxlIHNldCB0aGF0IGZvcm1hdHMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyLgorICAgICAgICAvLyBUaGUgcnVsZSB0aGF0IGlzIHVzZWQgaXMgdGhlIG9uZSB0aGF0LCB3aGVuIGl0cyBiYWFzZSB2YWx1ZSBpcworICAgICAgICAvLyBtdWx0aXBsaWVkIGJ5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQsCisgICAgICAgIC8vIHByb2R1Y2VzIHRoZSByZXN1bHQgY2xvc2VzdCB0byB6ZXJvLiAgVGh1cywgdGhlIGJhc2UgdmFsdWVzIGFyZQorICAgICAgICAvLyBwcm9zcGVjdGl2ZSBkZW5vbWluYXRvcnMgb2YgdGhlIGZyYWN0aW9uLiAgVGhlIDw8IG1hcmtzIHRoZSBwbGFjZQorICAgICAgICAvLyB3aGVyZSB0aGUgbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiAodGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyB0aGUKKyAgICAgICAgLy8gZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBiYXNlIHZhbHVlKSBpcworICAgICAgICAvLyBwbGFjZWQuICBUZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgd2hlbiB0aGUgbnVtZXJhdG9yIGlzIDEsIGdpdmluZworICAgICAgICAvLyB1cyB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiB0aGUgd29yZHMuCisgICAgICAgIC8vIFtJbiBsYW5ndWFnZXMgd2hlcmUgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgYXJlIGNvbXBsZXRlbHkgZGlmZmVyZW50CisgICAgICAgIC8vIHdvcmRzLCB0aGUgcnVsZSBjYW4ganVzdCBiZSBzdGF0ZWQgdHdpY2U6IHRoZSBzZWNvbmQgdGltZSB3aXRoCisgICAgICAgIC8vIHRoZSBwbHVyYWwgZm9ybS5dCisgICAgICAgICsgIiUlZnJhYzpcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8PCB0ZW50aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZHRoW3NdO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmR0aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPDwgdGVuLXRob3VzYW5kdGhbc107XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwOiA8PCBodW5kcmVkLXRob3VzYW5kdGhbc107XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb250aFtzXTsiOworCisgICAgLyoqCisgICAgICogTnVtYmVyIHdpdGggY2xvc2VzdCBmcmFjdGlvbi4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgdmFsdWUgdXNpbmcKKyAgICAgKiBudW1lcmFscywgYnV0IHNob3dzIHRoZSBmcmFjdGlvbmFsIHBhcnQgYXMgYSByYXRpbyAoZnJhY3Rpb24pIHJhdGhlcgorICAgICAqIHRoYW4gYSBkZWNpbWFsLiAgVGhlIGZyYWN0aW9uIGFsd2F5cyBoYXMgYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNsb3Nlc3RGcmFjdGlvbiA9CisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBmb3JtYXRzIHRoZSBudW1iZXIgaWYgaXQncyAxIG9yIG1vcmUuICBJdCBmb3JtYXRzCisgICAgICAgICAgICAgICAvLyB0aGUgaW50ZWdyYWwgcGFydCB1c2luZyBhIERlY2ltYWxGb3JtYXQgKCIjLCMjMCIgcHV0cworICAgICAgICAgICAgICAgLy8gdGhvdXNhbmRzIHNlcGFyYXRvcnMgaW4gdGhlIHJpZ2h0IHBsYWNlcykgYW5kIHRoZSBmcmFjdGlvbmFsCisgICAgICAgICAgICAgICAvLyBwYXJ0IHVzaW5nICUlZnJhYy4gIElmIHRoZXJlIGlzIG5vIGZyYWN0aW9uYWwgcGFydCwgaXQKKyAgICAgICAgICAgICAgIC8vIGp1c3Qgc2hvd3MgdGhlIGludGVncmFsIHBhcnQuCisgICAgICAgICsgIiAgICB4LjA6IDwjLCMjMDxbID4lJWZyYWM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBmb3JtYXRzIHRoZSBudW1iZXIgaWYgaXQncyBiZXR3ZWVuIDAgYW5kIDEuICBJdAorICAgICAgICAgICAgICAgLy8gc2hvd3Mgb25seSB0aGUgZnJhY3Rpb25hbCBwYXJ0ICgwLjUgc2hvd3MgdXAgYXMgIjEvMiwiIG5vdAorICAgICAgICAgICAgICAgLy8gIjAgMS8yIikKKyAgICAgICAgKyAiICAgIDAueDogPiUlZnJhYz47XG4iCisgICAgICAgIC8vIHRoZSBmcmFjdGlvbiBydWxlIHNldC4gIFRoaXMgd29ya3MgdGhlIHNhbWUgd2F5IGFzIHRoZSBvbmUgaW4gdGhlCisgICAgICAgIC8vIHByZWNlZGluZyBleGFtcGxlOiBXZSBtdWx0aXBseSB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIKKyAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGJ5IGVhY2ggcnVsZSdzIGJhc2UgdmFsdWUgYW5kIHVzZSB0aGUgcnVsZSB0aGF0CisgICAgICAgIC8vIHByb2R1Y2VzIHRoZSByZXN1bHQgY2xvc2VzdCB0byAwIChvciB0aGUgZmlyc3QgcnVsZSB0aGF0IHByb2R1Y2VzIDApLgorICAgICAgICAvLyBTaW5jZSB3ZSBvbmx5IHByb3ZpZGUgcnVsZXMgZm9yIHRoZSBudW1iZXJzIGZyb20gMiB0byAxMCwgd2Uga25vdworICAgICAgICAvLyB3ZSdsbCBnZXQgYSBmcmFjdGlvbiB3aXRoIGEgZGVub21pbmF0b3IgYmV0d2VlbiAyIGFuZCAxMC4KKyAgICAgICAgLy8gIjwwPCIgY2F1c2VzIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIHRvIGJlIGZvcm1hdHRlZAorICAgICAgICAvLyB1c2luZyBudW1lcmFscworICAgICAgICArICIlJWZyYWM6XG4iCisgICAgICAgICsgIiAgICAyOiAxLzI7XG4iCisgICAgICAgICsgIiAgICAzOiA8MDwvMztcbiIKKyAgICAgICAgKyAiICAgIDQ6IDwwPC80O1xuIgorICAgICAgICArICIgICAgNTogPDA8LzU7XG4iCisgICAgICAgICsgIiAgICA2OiA8MDwvNjtcbiIKKyAgICAgICAgKyAiICAgIDc6IDwwPC83O1xuIgorICAgICAgICArICIgICAgODogPDA8Lzg7XG4iCisgICAgICAgICsgIiAgICA5OiA8MDwvOTtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8MDwvMTA7XG4iOworCisgICAgLyoqCisgICAgICogQW1lcmljYW4gc3RvY2stcHJpY2UgZm9ybWF0dGluZy4gIE5vbi1pbnRlZ3JhbCBzdG9jayBwcmljZXMgYXJlIHN0aWxsCisgICAgICogZ2VuZXJhbGx5IHNob3duIGluIGVpZ2h0aHMgb3Igc2l4dGVlbnRocyBvZiBkb2xsYXJzIGluc3RlYWQgb2YgZG9sbGFycworICAgICAqIGFuZCBjZW50cy4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIHN0b2NrIHByaWNlcyBpbiB0aGlzIHdheSBpZiBwb3NzaWJsZSwKKyAgICAgKiBhbmQgaW4gZG9sbGFycyBhbmQgY2VudHMgaWYgbm90LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHN0b2NrID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIGZvcm1hdHMgdGhlIGludGVncmFsIHBhcnQgb2YgdGhlIG51bWJlciBpbiBudW1lcmFscworICAgICAgICAgICAgICAgLy8gYW5kIChpZiBuZWNlc3NhcnkpIHRoZSBmcmFjdGlvbmFsIHBhcnQgdXNpbmcgJSVmcmFjMQorICAgICAgICArICIgICAgeC4wOiA8IywjIzA8Wz4lJWZyYWMxPl07XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgaXMgdXNlZCBmb3IgdmFsdWVzIGJldHdlZW4gMCBhbmQgMSBhbmQgb21pdHMgdGhlCisgICAgICAgICAgICAgICAvLyBpbnRlZ3JhbCBwYXJ0CisgICAgICAgICsgIiAgICAwLng6ID4lJWZyYWMyPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgd2hlbgorICAgICAgICAvLyB0aGVyZSdzIGFuIGludGVncmFsIHBhcnQgYmVmb3JlIGl0IChhZ2Fpbiwgd2UgdHJ5IGFsbCBkZW5vbWluYXRvcnMKKyAgICAgICAgLy8gYW5kIHVzZSB0aGUgImJlc3QiIG9uZSkKKyAgICAgICAgKyAiJSVmcmFjMTpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciBldmVuIG11bHRpcGxlcyBvZiAxLzQsIGZvcm1hdCB0aGUgZnJhY3Rpb24gdXNpbmcgdGhlCisgICAgICAgICAgICAgICAvLyB0eXBvZ3JhcGhlcidzIGZyYWN0aW9ucworICAgICAgICArICIgICAgNDogPCUlcXVhcnRlcnM8O1xuIgorICAgICAgICAgICAgICAgLy8gZm9ybWF0IHRoZSB2YWx1ZSBhcyBhIG51bWJlciBvZiBlaWdodGhzLCBzaXh0ZWVudGhzLCBvcgorICAgICAgICAgICAgICAgLy8gdGhpcnR5LXNlY29uZHMsIHdoaWNoZXZlciBwcm9kdWNlcyB0aGUgbW9zdCBhY2N1cmF0ZSB2YWx1ZS4KKyAgICAgICAgICAgICAgIC8vIFRoZSBhcG9zdHJvcGhlIGF0IHRoZSBmcm9udCBvZiB0aGVzZSBydWxlcyBpcyBpZ25vcmVkLCBidXQKKyAgICAgICAgICAgICAgIC8vIGl0IG1ha2VzIHRoZSBzcGFjZSB0aGF0IGZvbGxvd3MgaXQgc2lnbmlmaWNhbnQuICBUaGlzIHB1dHMgYQorICAgICAgICAgICAgICAgLy8gc3BhY2UgYmV0d2VlbiB0aGUgdmFsdWUncyBpbnRlZ3JhbCBhbmQgZnJhY3Rpb25hbCBwYXJ0cyBzbworICAgICAgICAgICAgICAgLy8geW91IGNhbiByZWFkIGl0CisgICAgICAgICsgIiAgICA4OiAnIDwwPC84O1xuIgorICAgICAgICArICIgICAgMTY6ICcgPDA8LzE2O1xuIgorICAgICAgICArICIgICAgMzI6ICcgPDA8LzMyO1xuIgorICAgICAgICAgICAgICAgLy8gaWYgd2UgY2FuJ3QgcmVhc29uYWJseSBmb3JtYXQgdGhlIG51bWJlciBpbiBwb3dlcnMgb2YgMiwKKyAgICAgICAgICAgICAgIC8vIHRoZW4gc2hvdyBpdCBhcyBkb2xsYXJzIGFuZCBjZW50cworICAgICAgICArICIgICAgMTAwOiAuPDAwPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHdoZW4gdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgdmFsdWUgc3RhbmRzCisgICAgICAgIC8vIGFsb25lCisgICAgICAgICsgIiUlZnJhYzI6XG4iCisgICAgICAgICsgIiAgICA0OiA8JSVxdWFydGVyczw7XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgZnJhY3Rpb25zIHRoYXQgd2UgY2FuJ3Qgc2hvdyB1c2luZyB0eXBvZ3JhcGhlcidzIGZyYWN0aW9ucywKKyAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBmcmFjdGlvbgorICAgICAgICArICIgICAgODogPDA8Lzg7XG4iCisgICAgICAgICsgIiAgICAxNjogPDA8LzE2O1xuIgorICAgICAgICArICIgICAgMzI6IDwwPC8zMjtcbiIKKyAgICAgICAgICAgICAgIC8vIGJ1dCBkb2xsYXJzIGFuZCBjZW50cyBsb29rIGJldHRlciB3aXRoIGEgbGVhZGluZyAwCisgICAgICAgICsgIiAgICAxMDA6IDAuPDAwPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIDEvNCwgMS8yLCBhbmQgMy80IHVzaW5nIHR5cG9ncmFwaGVyJ3MgZnJhY3Rpb25zCisgICAgICAgICsgIiUlcXVhcnRlcnM6XG4iCisgICAgICAgICsgIiAgICA7IFx1MDBiYzsgXHUwMGJkOyBcdTAwYmU7XG4iCisgICAgICAgIC8vIHRoZXJlIGFyZSB0aGUgbGVuaWVudC1wYXJzZSBydWxlcy4gIFRoZXNlIGFsbG93IHRoZSB1c2VyIHRvIHR5cGUKKyAgICAgICAgLy8gIjEvNCwiICIxLzIsIiBhbmQgIjMvNCIgaW5zdGVhZCBvZiB0aGVpciB0eXBvZ3JhcGhpY2FsIGNvdW50ZXJwYXJ0cworICAgICAgICAvLyBhbmQgc3RpbGwgaGF2ZSB0aGVtIGJlIHVuZGVyc3Rvb2QgYnkgdGhlIGZvcm1hdHRlcgorICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmICcxLzQnICwgXHUwMGJjXG4iCisgICAgICAgICsgIiAgICAmICcxLzInICwgXHUwMGJkXG4iCisgICAgICAgICsgIiAgICAmICczLzQnICwgXHUwMGJlXG47IjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2hhbmdpbmcgZGltZW5zaW9ucworICAgIC8vCisgICAgLy8gVGhlIG5leHQgZmV3IGV4YW1wbGVzIGRlbW9uc3RyYXRlIHVzaW5nIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvCisgICAgLy8gY2hhbmdlIHRoZSB1bml0cyBhIHZhbHVlIGlzIGRlbm9taW5hdGVkIGluIGRlcGVuZGluZyBvbiBpdHMgbWFnbml0dWRlCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBleGFtcGxlIHNob3dzIGxhcmdlIG51bWJlcnMgdGhlIHdheSB0aGV5IG9mdGVuIGFwcGVhciBpcyBud2VzcGFwZXJzOgorICAgICAqIDEsMjAwLDAwMCBpcyBmb3JtYXR0ZWQgYXMgIjEuMiBtaWxsaW9uIi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBhYmJFbmdsaXNoID0KKyAgICAgICAgIj0jLCMjMD07XG4iCisgICAgICAgIC8vIHRoaXMgaXMgZmFpcmx5IHNlbGYtZXhwbGFuYXRvcnksIGJ1dCBub3RlIHRoYXQgdGhlIDw8IHN1YnN0aXR1dGlvbgorICAgICAgICAvLyBjYW4gc2hvdyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBzdWJzdGl0dXRpb24gdmFsdWUgaWYgdGhlIHVzZXIKKyAgICAgICAgLy8gd2FudHMgaXQKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8IyMwLiMjIzwgbWlsbGlvbjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPCMjMC4jIyM8IGJpbGxpb247XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgdHJpbGxpb247XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBleGFtcGxlIHRha2VzIGEgbnVtYmVyIG9mIG1ldGVycyBhbmQgZm9ybWF0cyBpdCBpbiB3aGF0ZXZlciB1bml0CisgICAgICogd2lsbCBwcm9kdWNlIGEgbnVtYmVyIHdpdGggZnJvbSBvbmUgdG8gdGhyZWUgZGlnaXRzIGJlZm9yZSB0aGUgZGVjaW1hbAorICAgICAqIHBvaW50LiAgRm9yIGV4YW1wbGUsIDIzMCwwMDAgaXMgZm9ybWF0dGVkIGFzICIyMzAga20iLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHVuaXRzID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEsIGRlbGVnYXRlIHRvICUlc21hbGwKKyAgICAgICAgKyAiICAgIDAueDogPiUlc21hbGw+O1xuIgorICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBzaG93IGJldHdlZW4gMyBhbmQgNiBzaWduaWZpY2FudCBkaWdpdHMgb2YgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBhbG9uZyB3aXRoIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHVuaXQKKyAgICAgICAgKyAiICAgIDA6ID0jIzAuIyMjPSBtO1xuIgorICAgICAgICArICIgICAgMSwwMDA6IDwjIzAuIyMjPCBrbTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCMjMC4jIyM8IE1tO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPCMjMC4jIyM8IEdtO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDwjLCMjMC4jIyM8IFRtO1xuIgorICAgICAgICAvLyAlJXNtYWxsIGZvcm1hdHMgdGhlIG51bWJlciB3aGVuIGl0J3MgbGVzcyB0aGVuIDEuICBJdCBtdWx0aXBsaWVzIHRoZQorICAgICAgICAvLyB2YWx1ZSBieSBvbmUgYmlsbGlvbiwgYW5kIHRoZW4gdXNlcyAlJXNtYWxsMiB0byBhY3R1YWxseSBkbyB0aGUKKyAgICAgICAgLy8gZm9ybWF0dGluZy4KKyAgICAgICAgKyAiJSVzbWFsbDpcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JSVzbWFsbDI8O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGFjdHVhbGx5IGZvcm1hdHMgc21hbGwgdmFsdWVzLiAgJSVzbWFsbCBwYXNzZXMgdGhpcworICAgICAgICAvLyBydWxlIHNldCBhIG51bWJlciBvZiBwaWNvbWV0ZXJzLCBhbmQgaXQgdGFrZXMgY2FyZSBvZiBzY2FsaW5nIHVwIGFzCisgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5ICVtYWluIGRvZXMgKHdlIGNhbid0IG5vcm1hbGx5CisgICAgICAgIC8vIGhhbmRsZSBmcmFjdGlvbmFsIHZhbHVlcyB0aGlzIHdheTogaGVyZSwgd2UncmUgY29uY2VybmVkIGFib3V0CisgICAgICAgIC8vIG1hZ25pdHVkZTsgbW9zdCBvZiB0aGUgdGltZSwgd2UncmUgY29uY2VybmVkIGFib3V0IHByZWNzaW9uKQorICAgICAgICArICIlJXNtYWxsMjpcbiIKKyAgICAgICAgKyAiICAgIDA6ID0jIzA9IHBtO1xuIgorICAgICAgICArICIgICAgMSwwMDA6IDwjIzAuIyMjPCBubTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCMjMC4jIyM8IFx1MDBiNW07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgbW07XG4iOworCisgICAgLyoqCisgICAgICogQSBtb3JlIGNvbXBsaWNhdGVkIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgSGVyZSwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiBoYW5kbGluZyB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCB2ZXJzaW9ucyBvZiB0aGUgd29yZCwgdGhlIHZhbHVlIGlzCisgICAgICogZGVub21pbmF0ZWQgaW4gYnl0ZXMsIGtpbG9ieXRlcywgb3IgbWVnYWJ5dGVzIGRlcGVuZGluZyBvbiBpdHMgbWFnbml0dWRlLgorICAgICAqIEFsc28gbm90aWNlIHRoYXQgaXQgY29ycmVjdGx5IHRyZWF0cyBhIGtpbG9ieXRlIGFzIDEsMDI0IGJ5dGVzIChub3QgMSwwMDApLAorICAgICAqIGFuZCBhIG1lZ2FieXRlIGFzIDEsMDI0IGtpbG9ieXRlcyAobm90IDEsMDAwKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBtZXNzYWdlMiA9CisgICAgICAgIC8vIHRoaXMgcnVsZSBzdXBwbGllcyB0aGUgc2hlbGwgb2YgdGhlIHNlbnRlbmNlCisgICAgICAgICJ4LjA6IFRoZXJlIDw8IGZyZWUgc3BhY2Ugb24gdGhlIGRpc2suO1xuIgorICAgICAgICAvLyBoYW5kbGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiAiYnl0ZSIgKGFuZCBmb3JtYXQgMCBhcworICAgICAgICAvLyAiVGhlcmUgaXMgbm8gZnJlZSBzcGFjZS4uLiIpCisgICAgICAgICsgIjA6IGlzIG5vO1xuIgorICAgICAgICArICJpcyBvbmUgYnl0ZSBvZjtcbiIKKyAgICAgICAgKyAiYXJlID0wPSBieXRlcyBvZjtcbiIKKyAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm92ZSAxLDAyNCwgZm9ybWF0IHRoZSBudW1iZXIgaW4gSyAoc2luY2UgIksiIGlzIHVzdWFsbHkKKyAgICAgICAgLy8gcHJvbW91bmNlZCAiSyIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3Mgc2luZ3VsYXIgb3IgcGx1cmFsLCB3ZQorICAgICAgICAvLyBkb24ndCB3b3JyeSBhYm91dCB0aGUgcGx1cmFsIGZvcm0pLiAgVGhlICIvMTAyNCIgaGVyZSBjYXVzZXMgdXMgdG8KKyAgICAgICAgLy8gdHJlYXQgYSBLIGFzIDEsMDI0IGJ5dGVzIHJhdGhlciB0aGFuIDEsMDAwIGJ5dGVzLgorICAgICAgICArICIxMDI0LzEwMjQ6IGlzIDwwPEsgb2Y7XG4iCisgICAgICAgIC8vIGZvciB2YWx1ZXMgYWJvdXQgMSwwNDgsNTc2LCBmb3JtYXQgdGhlIG51bWJlciBpbiBNYi4gIFNpbmNlICJNYiIgaXMKKyAgICAgICAgLy8gdXN1YWxseSBwcm9tb3VuY2VkICJtZWciIGluIHNpbmd1bGFyIGFuZCAibWVncyIgaW4gcGx1cmFsLCB3ZSBkbyBoYXZlCisgICAgICAgIC8vIGJvdGggc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3Jtcy4gIEFnYWluLCBub3RpY2Ugd2UgdHJlYXQgYSBtZWdhYnl0ZQorICAgICAgICAvLyBhcyAxLDAyNCBraWxvYnl0ZXMuCisgICAgICAgICsgIjEsMDQ4LDU3Ni8xMDI0OiBpcyAxIE1iIG9mO1xuIgorICAgICAgICArICIyLDA5NywxNTIvMTAyNDogYXJlIDwwPCBNYiBvZjsiOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBBbHRlcm5hdGUgcmFkaWNlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBpbiBkb3plbnMgYW5kIGdyb3NzLiAgVGhpcyBpcyBpbnRlbmRlZCB0bworICAgICAqIGRlbW9uc3RyYXRlIGhvdyB0aGlzIHJ1bGUgc2V0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBudW1iZXJzIGluIHN5c3RlbXMKKyAgICAgKiBvdGhlciB0aGFuIGJhc2UgMTAuICBUaGUgIi8xMiIgYWZ0ZXIgdGhlIHJ1bGVzJyBiYXNlIHZhbHVlcyBjb250cm9scyB0aGlzLgorICAgICAqIEFsc28gbm90aWNlIHRoYXQgdGhlIGJhc2UgZG9lc24ndCBoYXZlIHRvIGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCB0aGUKKyAgICAgKiB3aG9sZSBydWxlIHNldDogd2UgZ28gYmFjayB0byBiYXNlIDEwIGZvciB2YWx1ZXMgb3ZlciAxLDAwMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkb3plbnMgPQorICAgICAgICAvLyB3b3JkcyBmb3IgbnVtYmVycy4uLgorICAgICAgICAiemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7XG4iCisgICAgICAgICsgInNldmVuOyBlaWdodDsgbmluZTsgdGVuOyBlbGV2ZW47XG4iCisgICAgICAgIC8vIGZvcm1hdCB2YWx1ZXMgb3ZlciAxMiBpbiBkb3plbnMKKyAgICAgICAgKyAiMTIvMTI6IDw8IGRvemVuWyBhbmQgPj5dO1xuIgorICAgICAgICAvLyBmb3JtYXQgdmFsdWVzIG92ZXIgMTQ0IGluIGdyb3NzCisgICAgICAgICsgIjE0NC8xMjogPDwgZ3Jvc3NbLCA+Pl07XG4iCisgICAgICAgIC8vIGZvcm1hdCB2YWx1ZXMgb3ZlciAxLDAwMCBpbiB0aG91c2FuZHMKKyAgICAgICAgKyAiMTAwMDogPDwgdGhvdXNhbmRbLCA+Pl07XG4iCisgICAgICAgIC8vIG92ZXJmbG93IHJ1bGUuICBGb3JtYXQgdmFsdWVzIG92ZXIgMTAsMDAwIGluIG51bWVyYWxzCisgICAgICAgICsgIjEwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE1ham9yIGFuZCBtaW5vciB1bml0cworICAgIC8vCisgICAgLy8gVGhlc2UgZXhhbXBsZXMgc2hvdyBob3cgYSBzaW5nbGUgdmFsdWUgY2FuIGJlIGRpdmlkZWQgdXAgaW50byBtYWpvcgorICAgIC8vIGFuZCBtaW5vciB1bml0cyB0aGF0IGRvbid0IHJlbGF0ZSB0byBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEwLgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBvZiBzZWNvbmRzIGluIHNleGFnZXNpbWFsIG5vdGF0aW9uCisgICAgICogKGkuZS4sIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcykuICAld2l0aC13b3JkcyBmb3JtYXRzIGl0IHdpdGgKKyAgICAgKiB3b3JkcyAoMzc0MCBpcyAiMSBob3VyLCAyIG1pbnV0ZXMsIDIwIHNlY29uZHMiKSBhbmQgJWluLW51bWVyYWxzCisgICAgICogZm9ybWF0cyBpdCBlbnRpcmVseSBpbiBudW1lcmFscyAoMzc0MCBpcyAiMTowMjoyMCIpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGR1cmF0aW9uSW5TZWNvbmRzID0KKyAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyB3aXRoIHdvcmRzCisgICAgICAgICIld2l0aC13b3JkczpcbiIKKyAgICAgICAgICAgICAgIC8vIHRha2UgY2FyZSBvZiBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mICJzZWNvbmQiCisgICAgICAgICsgIiAgICAwIHNlY29uZHM7IDEgc2Vjb25kOyA9MD0gc2Vjb25kcztcbiIKKyAgICAgICAgICAgICAgIC8vIHVzZSAlJW1pbiB0byBmb3JtYXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiA2MCBzZWNvbmRzCisgICAgICAgICsgIiAgICA2MC82MDogPCUlbWluPFssID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHVzZSAlJWhyIHRvIGZvcm1hdCB2YWx1ZXMgZ3JlYXRlciB0aGFuIDMsNjAwIHNlY29uZHMKKyAgICAgICAgICAgICAgIC8vICh0aGUgIj4+PiIgYmVsb3cgY2F1c2VzIHVzIHRvIHNlZSB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMKKyAgICAgICAgICAgICAgIC8vIHdoZW4gd2hlbiB0aGVyZSBhcmUgemVybyBtaW51dGVzKQorICAgICAgICArICIgICAgMzYwMC82MDogPCUlaHI8WywgPj4+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgIC8vIG9mICJtaW51dGUiCisgICAgICAgICsgIiUlbWluOlxuIgorICAgICAgICArICIgICAgMCBtaW51dGVzOyAxIG1pbnV0ZTsgPTA9IG1pbnV0ZXM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcworICAgICAgICAvLyBvZiAiaG91ciIKKyAgICAgICAgKyAiJSVocjpcbiIKKyAgICAgICAgKyAiICAgIDAgaG91cnM7IDEgaG91cjsgPTA9IGhvdXJzO1xuIgorCisgICAgICAgIC8vIG1haW4gcnVsZSBzZXQgZm9yIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiJWluLW51bWVyYWxzOlxuIgorICAgICAgICAgICAgICAgLy8gdmFsdWVzIGJlbG93IDYwIHNlY29uZHMgYXJlIHNob3duIHdpdGggInNlYy4iCisgICAgICAgICsgIiAgICA9MD0gc2VjLjtcbiIKKyAgICAgICAgICAgICAgIC8vIGhpZ2hlciB2YWx1ZXMgYXJlIHNob3duIHdpdGggY29sb25zOiAlJW1pbi1zZWMgaXMgdXNlZCBmb3IKKyAgICAgICAgICAgICAgIC8vIHZhbHVlcyBiZWxvdyAzLDYwMCBzZWNvbmRzLi4uCisgICAgICAgICsgIiAgICA2MDogPSUlbWluLXNlYz07XG4iCisgICAgICAgICAgICAgICAvLyAuLi5hbmQgJSVoci1taW4tc2VjIGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBzZWNvbmRzCisgICAgICAgICAgICAgICAvLyBhbmQgYWJvdmUKKyAgICAgICAgKyAiICAgIDM2MDA6ID0lJWhyLW1pbi1zZWM9O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgY2F1c2VzIHZhbHVlcyBvZiBsZXNzIHRoYW4gMTAgbWludXRlcyB0byBzaG93IHdpdGhvdXQKKyAgICAgICAgLy8gYSBsZWFkaW5nIHplcm8KKyAgICAgICAgKyAiJSVtaW4tc2VjOlxuIgorICAgICAgICArICIgICAgMDogOj0wMD07XG4iCisgICAgICAgICsgIiAgICA2MC82MDogPDA8Pj47XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdXNlZCBmb3IgdmFsdWVzIG9mIDMsNjAwIG9yIG1vcmUuICBNaW51dGVzIGFyZSBhbHdheXMKKyAgICAgICAgLy8gc2hvd24sIGFuZCBhbHdheXMgc2hvd24gd2l0aCB0d28gZGlnaXRzCisgICAgICAgICsgIiUlaHItbWluLXNlYzpcbiIKKyAgICAgICAgKyAiICAgIDA6IDo9MDA9O1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDwwMDw+PjtcbiIKKyAgICAgICAgKyAiICAgIDM2MDAvNjA6IDwjLCMjMDw6Pj4+O1xuIgorICAgICAgICAvLyB0aGUgbGVuaWVudC1wYXJzZSBydWxlcyBhbGxvdyBzZXZlcmFsIGRpZmZlcmVudCBjaGFyYWN0ZXJzIHRvIGJlIHVzZWQKKyAgICAgICAgLy8gYXMgZGVsaW1pdGVycyBiZXR3ZWVuIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcworICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmIDogPSAuID0gJyAnID0gLTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBvZiBob3VycyBpbiBzZXhhZ2VzaW1hbCBub3RhdGlvbiAoaS5lLiwKKyAgICAgKiBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMpLiAgJXdpdGgtd29yZHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcKKyAgICAgKiB3b3JkcyBmb3IgdGhlIHVuaXRzLCBhbmQgJWluLW51bWVyYWxzIGZvcm1hdHMgdGhlIHZhbHVlIHVzaW5nIG9ubHkKKyAgICAgKiBudW1lcmFscy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkdXJhdGlvbkluSG91cnMgPQorICAgICAgICAvLyBtYWluIGVudHJ5IHBvaW50IGZvciBmb3JtYXR0aW5nIHdpdGggd29yZHMKKyAgICAgICAgIiV3aXRoLXdvcmRzOlxuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIG9taXRzIG1pbnV0ZXMgYW5kIHNlY29uZHMgd2hlbiB0aGUgdmFsdWUgaXMKKyAgICAgICAgICAgICAgIC8vIGFuIGV2ZW4gbnVtYmVyIG9mIGhvdXJzCisgICAgICAgICsgIiAgICB4LjA6IDw8WywgPiUlbWluLXNlYz5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhlc2UgcnVsZXMgdGFrZSBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgICAgICAgICAvLyBvZiBob3VycworICAgICAgICArICIgICAgMCBob3VyczsgMSBob3VyOyA9IywjIzA9IGhvdXJzO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHRha2VzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBhbmQgbXVsdGlwbGllcworICAgICAgICAvLyBpdCBieSAzLDYwMCAodHVybmluZyBpdCBpbnRvIGEgbnVtYmVyIG9mIHNlY29uZHMpLiAgVGhlbiBpdCBkZWxlZ2F0ZXMKKyAgICAgICAgLy8gdG8gJSVtaW4tc2VjLWltcGxlbWVudGF0aW9uIHRvIGZvcm1hdCB0aGUgcmVzdWx0aW5nIHZhbHVlCisgICAgICAgICsgIiUlbWluLXNlYzpcbiIKKyAgICAgICAgKyAiICAgIDM2MDA6ID0lJW1pbi1zZWMtaW1wbGVtZW50YXRpb249O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgdGhlIHNlY29uZHMgYXMgZWl0aGVyIHNlY29uZHMgb3IgbWludXRlcyBhbmQKKyAgICAgICAgLy8gc2Vjb25kcywgYW5kIHRha2VzIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMgb2YKKyAgICAgICAgLy8gIm1pbnV0ZSIgYW5kICJzZWNvbmQiCisgICAgICAgICsgIiUlbWluLXNlYy1pbXBsZW1lbnRhdGlvbjpcbiIKKyAgICAgICAgKyAiICAgIDAgc2Vjb25kczsgMSBzZWNvbmQ7ID0wPSBzZWNvbmRzO1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDEgbWludXRlWywgPj5dO1xuIgorICAgICAgICArICIgICAgMTIwLzYwOiA8MDwgbWludXRlc1ssID4+XTtcbiIKKworICAgICAgICAvLyBtYWluIGVudHJ5IHBvaW50IGZvciBmb3JtYXR0aW5nIGluIG51bWVyYWxzCisgICAgICAgICsgIiVpbi1udW1lcmFsczpcbiIKKyAgICAgICAgICAgICAgIC8vIHNob3cgbWludXRlcyBldmVuIGZvciBldmVuIG51bWJlcnMgb2YgaG91cnMKKyAgICAgICAgKyAiICAgIHguMDogPCMsIyMwPDowMDtcbiIKKyAgICAgICAgICAgICAgIC8vIGRlbGVnYXRlIHRvICUlbWluLXNlYzIgdG8gZm9ybWF0IG1pbnV0ZXMgYW5kIHNlY29uZHMKKyAgICAgICAgKyAiICAgIHgueDogPCMsIyMwPDo+JSVtaW4tc2VjMj47XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBtaW51dGVzIHdoZW4gdGhlcmUgaXMgYW4gZXZlbiBudW1iZXIgb2YKKyAgICAgICAgLy8gbWludXRlcywgYW5kIGRlbGVnYXRlcyB0byAlJW1pbi1zZWMyLWltcGxlbWVudGF0aW9uIHdoZW4gdGhlcmUKKyAgICAgICAgLy8gYXJlIHNlY29uZHMKKyAgICAgICAgKyAiJSVtaW4tc2VjMjpcbiIKKyAgICAgICAgKyAiICAgIDYwOiA8MDA8O1xuIgorICAgICAgICArICIgICAgMzYwMDogPCUlbWluLXNlYzItaW1wbGVtZW50YXRpb248O1xuIgorICAgICAgICAvLyB0aGVzZSB0d28gcnVsZSBzZXRzIGFyZSB1c2VkIHRvIGZvcm1hdCB0aGUgbWludXRlcyBhbmQgc2Vjb25kcworICAgICAgICArICIlJW1pbi1zZWMyLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gNjAgc2Vjb25kcywgc2hvdyB0aGUgbWludXRlcyBhbnl3YXkKKyAgICAgICAgKyAiICAgIDA6IDAwOj0wMD07XG4iCisgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbWludXRlcywgZm9ybWF0IHRoZW0gdG9vLCBhbmQgYWx3YXlzIHVzZSAyIGRpZ2l0cworICAgICAgICAgICAgICAgLy8gZm9yIGJvdGggbWludXRlcyBhbmQgc2Vjb25kcworICAgICAgICArICIgICAgNjA6ID0lJW1pbi1zZWMzPTtcbiIKKyAgICAgICAgKyAiJSVtaW4tc2VjMzpcbiIKKyAgICAgICAgKyAiICAgIDA6IDo9MDA9O1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDwwMDw+PjtcbiIKKyAgICAgICAgLy8gdGhlIGxlbmllbnQtcGFyc2UgcnVsZXMgYWxsb3cgdGhlIHVzZXIgdG8gdXNlIGFueSBvZiBzZXZlcmFsCisgICAgICAgIC8vIGNoYXJhY3RlcnMgYXMgZGVsaW1pdGVycyBiZXR3ZWVuIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcworICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmIDogPSAuID0gJyAnID0gLTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHJ1bGUgc2V0IGZvcm1hdHMgYSBudW1iZXIgb2YgcG91bmRzIGFzIHBvdW5kcywgc2hpbGxpbmdzLCBhbmQKKyAgICAgKiBwZW5jZSBpbiB0aGUgb2xkIEVuZ2xpc2ggc3lzdGVtIG9mIGN1cnJlbmN5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHBvdW5kc1NoaWxsaW5nc0FuZFBlbmNlID0KKyAgICAgICAgLy8gZm9yIHZhbHVlcyBvZiAxIG9yIG1vcmUsIGZvcm1hdCB0aGUgaW50ZWdyYWwgcGFydCB3aXRoIGEgcG91bmQKKyAgICAgICAgLy8gc2lnbiBpbiBmcm9udCwgYW5kIHNob3cgc2hpbGxpbmdzIGFuZCBwZW5jZSBpZiBuZWNlc3NhcnkKKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICArICIgICAgeC4wOiBcdTAwYTM8IywjIzA8WyA+JSVzaGlsbGluZ3MtYW5kLXBlbmNlPl07XG4iCisgICAgICAgIC8vIGZvciB2YWx1ZXMgYmV0d2VlbiAwIGFuZCAxLCBvbWl0IHRoZSBudW1iZXIgb2YgcG91bmRzCisgICAgICAgICsgIiAgICAwLng6ID4lJXBlbmNlLWFsb25lPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHNob3cgc2hpbGxpbmdzIGFuZCBwZW5jZS4gIEl0IG11bHRpcGxpZXMKKyAgICAgICAgLy8gdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJ5IDI0MCAodGhlIG51bWJlciBvZiBwZW5jZSBpbiBhCisgICAgICAgIC8vIHBvdW5kKSBhbmQgdXNlcyAlJXNoaWxsaW5ncy1hbmQtcGVuY2UtaW1wbGVtZW50YXRpb24gdG8gZm9ybWF0CisgICAgICAgIC8vIHRoZSByZXN1bHQKKyAgICAgICAgKyAiJSVzaGlsbGluZ3MtYW5kLXBlbmNlOlxuIgorICAgICAgICArICIgICAgMjQwOiA8JSVzaGlsbGluZ3MtYW5kLXBlbmNlLWltcGxlbWVudGF0aW9uPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHNob3cgc2hpbGxpbmdzIGFuZCBwZW5jZSB3aGVuIHRoZXJlIGFyZQorICAgICAgICAvLyBubyBwb3VuZHMuICBJdCBhbHNvIG11bHRpcGxpZXMgdGhlIHZhbHVlIGJ5IDI0MCwgYW5kIHRoZW4gaXQgdXNlcworICAgICAgICAvLyAlJXBlbmNlLWFsb25lLWltcGxlbWVudGF0aW9uIHRvIGZvcm1hdCB0aGUgcmVzdWx0LgorICAgICAgICArICIlJXBlbmNlLWFsb25lOlxuIgorICAgICAgICArICIgICAgMjQwOiA8JSVwZW5jZS1hbG9uZS1pbXBsZW1lbnRhdGlvbjw7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBhIG51bWJlciBvZiBwZW5jZSB3aGVuIHdlIGtub3cgd2UgYWxzbworICAgICAgICAvLyBoYXZlIHBvdW5kcy4gIFdlIGFsd2F5cyBzaG93IHNoaWxsaW5ncyAod2l0aCBhIDAgaWYgbmVjZXNzYXJ5KSwKKyAgICAgICAgLy8gYnV0IG9ubHkgc2hvdyBwZW5jZSBpZiB0aGUgdmFsdWUgaXNuJ3QgYW4gZXZlbiBudW1iZXIgb2Ygc2hpbGxpbmdzCisgICAgICAgICsgIiUlc2hpbGxpbmdzLWFuZC1wZW5jZS1pbXBsZW1lbnRhdGlvbjpcbiIKKyAgICAgICAgKyAiICAgIDAvOyAwLz0wPTtcbiIKKyAgICAgICAgKyAiICAgIDEyLzEyOiA8MDwvWz4wPl07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBhIG51bWJlciBvZiBwZW5jZSB3aGVuIHdlIGtub3cgdGhlcmUgYXJlCisgICAgICAgIC8vIG5vIHBvdW5kcy4gIFZhbHVlcyBsZXNzIHRoYW4gYSBzaGlsbGluZyBhcmUgc2hvd24gd2l0aCAiZC4iICh0aGUKKyAgICAgICAgLy8gYWJicmV2aWF0aW9uIGZvciBwZW5jZSksIGFuZCB2YWx1ZXMgZ3JlYXRlciB0aGFuIGEgc2hpbGxpbmcgYXJlCisgICAgICAgIC8vIHNob3duIHdpdGggYSBzaGlsbGluZyBiYXIgKGFuZCB3aXRob3V0IHBlbmNlIHdoZW4gdGhlIHZhbHVlIGlzCisgICAgICAgIC8vIGFuIGV2ZW4gbnVtYmVyIG9mIHNoaWxsaW5ncykKKyAgICAgICAgKyAiJSVwZW5jZS1hbG9uZS1pbXBsZW1lbnRhdGlvbjpcbiIKKyAgICAgICAgKyAiICAgID0wPSBkLjtcbiIKKyAgICAgICAgKyAiICAgIDEyLzEyOiA8MDwvWz4wPl07XG4iOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBBbHRlcm5hdGUgbnVtZXJhdGlvbiBzeXN0ZW1zCisgICAgLy8KKyAgICAvLyBUaGVzZSBleGFtcGxlcyBzaG93IGhvdyBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0CisgICAgLy8gbnVtYmVycyB1c2luZyBub24tcG9zaXRpb25hbCBudW1lcmF0aW9uIHN5c3RlbXMuCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIEFyYWJpYyBkaWdpdHMuICBUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIGluIEFyYWJpYyBudW1lcmFscy4KKyAgICAgKiBOb3JtYWxseSwgeW91J2QgZG8gdGhpcyB3aXRoIERlY2ltYWxGb3JtYXQsIGJ1dCB0aGlzIHNob3dzIHRoYXQKKyAgICAgKiBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGhhbmRsZSBpdCB0b28uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgYXJhYmljTnVtZXJhbHMgPQorICAgICAgICAiMDsgMTsgMjsgMzsgNDsgNTsgNjsgNzsgODsgOTtcbiIKKyAgICAgICAgKyAiMTA6IDw8Pj47XG4iCisgICAgICAgICsgIjEwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8PCw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICArICIteDogLT4+O1xuIgorICAgICAgICArICJ4Lng6IDw8Lj4+OyI7CisKKyAgICAvKioKKyAgICAgKiBXb3JkcyBmb3IgZGlnaXRzLiAgRm9sbG93cyB0aGUgc2FtZSBwYXR0ZXJuIGFzIHRoZSBBcmFiaWMtbnVtZXJhbHMKKyAgICAgKiBleGFtcGxlIGFib3ZlLCBidXQgdXNlcyB3b3JkcyBmb3IgdGhlIHZhcmlvdXMgZGlnaXRzIChlLmcuLCAxMjMgY29tZXMKKyAgICAgKiBvdXQgYXMgIm9uZSB0d28gdGhyZWUiKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB3b3Jkc0ZvckRpZ2l0cyA9CisgICAgICAgICIteDogbWludXMgPj47XG4iCisgICAgICAgICsgIngueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgInplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4O1xuIgorICAgICAgICArICIgICAgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIxMDogPDwgPj47XG4iCisgICAgICAgICsgIjEwMDogPDwgPj4+O1xuIgorICAgICAgICArICIxMDAwOiA8PCwgPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PCwgPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBleGFtcGxlIGZvcm1hdHMgbnVtYmVycyB1c2luZyBDaGluZXNlIGNoYXJhY3RlcnMgaW4gdGhlIEFyYWJpYworICAgICAqIHBsYWNlLXZhbHVlIG1ldGhvZC4gIFRoaXMgd2FzIHVzZWQgaGlzdG9yaWNhbGx5IGluIENoaW5hIGZvciBhIHdoaWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNoaW5lc2VQbGFjZVZhbHVlID0KKyAgICAgICAgIlx1MzAwNzsgXHU0ZTAwOyBcdTRlOGM7IFx1NGUwOTsgXHU1NmRiOyBcdTRlOTQ7IFx1NTE2ZDsgXHU0ZTAzOyBcdTUxNmI7IFx1NGU1ZDtcbiIKKyAgICAgICAgKyAiMTA6IDw8Pj47XG4iCisgICAgICAgICsgIjEwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8PD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iOworCisgICAgLyoqCisgICAgICogUm9tYW4gbnVtZXJhbHMuICBUaGlzIGV4YW1wbGUgaGFzIHR3byB2YXJpYW50czogJW1vZGVybiBzaG93cyBob3cgbGFyZ2UKKyAgICAgKiBudW1iZXJzIGFyZSB1c3VhbGx5IGhhbmRsZWQgdG9kYXk7ICVoaXN0b3JpY2FsIHNlcyB0aGUgb2xkZXIgc3ltYm9scyBmb3IKKyAgICAgKiB0aG91c2FuZHMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgcm9tYW5OdW1lcmFscyA9CisgICAgICAgICIlaGlzdG9yaWNhbDpcbiIKKyAgICAgICAgKyAiICAgID0lbW9kZXJuPTtcbiIKKyAgICAgICAgICAgICAgIC8vIGluIGVhcmx5IFJvbWFuIG51bWVyYWxzLCAxLDAwMCB3YXMgc2hvd24gd2l0aCBhIGNpcmNsZQorICAgICAgICAgICAgICAgLy8gYmlzZWN0ZWQgYnkgYSB2ZXJ0aWNhbCBsaW5lLiAgQWRkaXRpb25hbCB0aG91c2FuZHMgd2VyZQorICAgICAgICAgICAgICAgLy8gc2hvd24gYnkgYWRkaW5nIG1vcmUgY29uY2VudHJpYyBjaXJjbGVzLCBhbmQgZml2ZXMgd2VyZQorICAgICAgICAgICAgICAgLy8gc2hvd24gYnkgY3V0dGluZyB0aGUgc3ltYm9sIGZvciBuZXh0LWhpZ2hlciBwb3dlciBvZiAxMAorICAgICAgICAgICAgICAgLy8gaW4gaGFsZiAodGhlIGxldHRlciBEIGZvciA1MDAgZXZvbHZlZCBmcm9tIHRoaXMpLgorICAgICAgICAgICAgICAgLy8gV2UgY291bGQgZ28gYmV5b25kIDQwLDAwMCwgYnV0IFVuaWNvZGUgZG9lc24ndCBlbmNvZGUKKyAgICAgICAgICAgICAgIC8vIHRoZSBzeW1ib2xzIGZvciBoaWdoZXIgbnVtYmVycy8KKyAgICAgICAgKyAiICAgIDEwMDA6IFx1MjE4MFs+Pl07IDIwMDA6IFx1MjE4MFx1MjE4MFs+Pl07IDMwMDA6IFx1MjE4MFx1MjE4MFx1MjE4MFs+Pl07IDQwMDA6IFx1MjE4MFx1MjE4MVs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDAwOiBcdTIxODFbPj5dOyA2MDAwOiBcdTIxODFcdTIxODBbPj5dOyA3MDAwOiBcdTIxODFcdTIxODBcdTIxODBbPj5dO1xuIgorICAgICAgICArICIgICAgODAwMDogXHUyMTgxXHUyMTgwXHUyMTgwXHUyMTgwWz4+XTsgOTAwMDogXHUyMTgwXHUyMTgyWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogXHUyMTgyWz4+XTsgMjAsMDAwOiBcdTIxODJcdTIxODJbPj5dOyAzMCwwMDA6IFx1MjE4Mlx1MjE4Mlx1MjE4Mls+Pl07XG4iCisgICAgICAgICsgIiAgICA0MCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiVtb2Rlcm46XG4iCisgICAgICAgICsgIiAgICA7IEk7IElJOyBJSUk7IElWOyBWOyBWSTsgVklJOyBWSUlJOyBJWDtcbiIKKyAgICAgICAgKyAiICAgIDEwOiBYWz4+XTsgMjA6IFhYWz4+XTsgMzA6IFhYWFs+Pl07IDQwOiBYTFs+Pl07IDUwOiBMWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBMWFs+Pl07IDcwOiBMWFhbPj5dOyA4MDogTFhYWFs+Pl07IDkwOiBYQ1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IENbPj5dOyAyMDA6IENDWz4+XTsgMzAwOiBDQ0NbPj5dOyA0MDA6IENEWz4+XTsgNTAwOiBEWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwMDogRENbPj5dOyA3MDA6IERDQ1s+Pl07IDgwMDogRENDQ1s+Pl07IDkwMDogQ01bPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gaW4gbW9kZXJuIFJvbWFuIG51bWVyYWxzLCBoaWdoIG51bWJlcnMgYXJlIGdlbmVyYWxseSBzaG93bgorICAgICAgICAgICAgICAgLy8gYnkgcGxhY2luZyBhIGJhciBvdmVyIHRoZSBsZXR0ZXJzIGZvciB0aGUgbG93ZXIgbnVtYmVyczoKKyAgICAgICAgICAgICAgIC8vIHRoZSBiYXIgbXVsdGlwbGllZCBhIGxldHRlcidzIHZhbHVlIGJ5IDEsMDAwCisgICAgICAgICsgIiAgICAxMDAwOiBNWz4+XTsgMjAwMDogTU1bPj5dOyAzMDAwOiBNTU1bPj5dOyA0MDAwOiBNVlx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDAwOiBWXHUwMzA2Wz4+XTsgNjAwMDogVlx1MDMwNk1bPj5dOyA3MDAwOiBWXHUwMzA2TU1bPj5dO1xuIgorICAgICAgICArICIgICAgODAwMDogVlx1MDMwNk1NTVs+Pl07IDkwMDA6IE1YXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogWFx1MDMwNls+Pl07IDIwLDAwMDogWFx1MDMwNlhcdTAzMDZbPj5dOyAzMCwwMDA6IFhcdTAzMDZYXHUwMzA2WFx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA0MCwwMDA6IFhcdTAzMDZMXHUwMzA2Wz4+XTsgNTAsMDAwOiBMXHUwMzA2Wz4+XTsgNjAsMDAwOiBMXHUwMzA2WFx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA3MCwwMDA6IExcdTAzMDZYXHUwMzA2WFx1MDMwNls+Pl07IDgwLDAwMDogTFx1MDMwNlhcdTAzMDZYXHUwMzA2WFx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA5MCwwMDA6IFhcdTAzMDZDXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6IENcdTAzMDZbPj5dOyAyMDAsMDAwOiBDXHUwMzA2Q1x1MDMwNls+Pl07IDMwMCwwMDA6IENcdTAzMDZDXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwMCwwMDA6IENcdTAzMDZEXHUwMzA2Wz4+XTsgNTAwLDAwMDogRFx1MDMwNls+Pl07IDYwMCwwMDA6IERcdTAzMDZDXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwMCwwMDA6IERcdTAzMDZDXHUwMzA2Q1x1MDMwNls+Pl07IDgwMCwwMDA6IERcdTAzMDZDXHUwMzA2Q1x1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBIZWJyZXcgYWxwaGFiZXRpYyBudW1lcmFscy4gIEJlZm9yZSBhZG9wdGlvbiBvZiBBcmFiaWMgbnVtZXJhbHMsIEhlYnJldyBzcGVha2VycworICAgICAqIHVzZWQgdGhlIGxldHRlciBvZiB0aGVpciBhbHBoYWJldCBhcyBudW1lcmFscy4gIFRoZSBmaXJzdCBuaW5lIGxldHRlcnMgb2YKKyAgICAgKiB0aGUgYWxwaGFiZXQgcmVwZXNlbnRlZCB0aGUgdmFsdWVzIGZyb20gMSB0byA5LCB0aGUgc2Vjb25kIG5pbmUgbGV0dGVycyB0aGUKKyAgICAgKiBtdWx0aXBsZXMgb2YgMTAsIGFuZCB0aGUgcmVtYWluaW5nIGxldHRlcnMgdGhlIG11bHRpcGxlcyBvZiAxMDAuICBTaW5jZSB0aGV5CisgICAgICogcmFuIG91dCBvZiBsZXR0ZXJzIGF0IDQwMCwgdGhlIHJlbWFpbmluZyBtdWx0aXBsZXMgb2YgMTAwIHdlcmUgcmVwcmVzZW50ZWQKKyAgICAgKiB1c2luZyBjb21iaW5hdGlvbnMgb2YgdGhlIGV4aXN0aW5nIGxldHRlcnMgZm9yIHRoZSBodW5kcmVkcy4gIE51bWJlcnMgd2VyZQorICAgICAqIGRpc3Rpbmd1aXNoZWQgZnJvbSB3b3JkcyBpbiBhIG51bWJlciBvZiBkaWZmZXJlbnQgd2F5czogdGhlIHdheSBzaG93biBoZXJlCisgICAgICogdXNlcyBhIHNpbmdsZSBtYXJrIGFmdGVyIGEgbnVtYmVyIGNvbnNpc3Rpbmcgb2Ygb25lIGxldHRlciwgYW5kIGEgZG91YmxlCisgICAgICogbWFyayBiZXR3ZWVuIHRoZSBsYXN0IHR3byBsZXR0ZXJzIG9mIGEgbnVtYmVyIGNvbnNpc3Rpbmcgb2YgdHdvIG9yIG1vcmUKKyAgICAgKiBsZXR0ZXJzLiAgVHdvIGRvdHMgb3ZlciBhIGxldHRlciBtdWx0aXBsaWVkIGl0cyB2YWx1ZSBieSAxLDAwMC4gIEFsc28sIHNpbmNlCisgICAgICogdGhlIGxldHRlciBmb3IgMTAgaXMgdGhlIGZpcnN0IGxldHRlciBvZiBHb2QncyBuYW1lIGFuZCB0aGUgbGV0dGVycyBmb3IgNSBhbmQgNgorICAgICAqIGFyZSBsZXR0ZXJzIGluIEdvZCdzIG5hbWUsIHdoaWNoIHdhc24ndCBzdXBwb3NlZCB0byBiZSB3cml0dGVuIG9yIHNwb2tlbiwgMTUgYW5kCisgICAgICogMTYgd2VyZSB1c3VhbGx5IHdyaXR0ZW4gYXMgOSArIDYgYW5kIDkgKyA3IGluc3RlYWQgb2YgMTAgKyA1IGFuZCAxMCArIDYuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgaGVicmV3QWxwaGFiZXRpYyA9CisgICAgICAgIC8vIGxldHRlcnMgZm9yIHRoZSBvbmVzCisgICAgICAgICIlJW9uZXM6XG4iCisgICAgICAgICsgIiAgICAobm8gemVybyk7IFx1MDVkMDsgXHUwNWQxOyBcdTA1ZDI7IFx1MDVkMzsgXHUwNWQ0OyBcdTA1ZDU7IFx1MDVkNjsgXHUwNWQ3OyBcdTA1ZDg7XG4iCisgICAgICAgIC8vIGxldHRlcnMgZm9yIHRoZSB0ZW5zCisgICAgICAgICsgIiUldGVuczpcbiIKKyAgICAgICAgKyAiICAgIDsgXHUwNWQ5OyBcdTA1ZGI7IFx1MDVkYzsgXHUwNWRlOyBcdTA1ZTA7IFx1MDVlMTsgXHUwNWUyOyBcdTA1ZTQ7IFx1MDVlNjtcbiIKKyAgICAgICAgLy8gbGV0dGVycyBmb3IgdGhlIGZpcnN0IGZvdXIgaHVuZHJlZHMKKyAgICAgICAgKyAiJSVodW5kcmVkczpcbiIKKyAgICAgICAgKyAiICAgIDsgXHUwNWU3OyBcdTA1ZTg7IFx1MDVlOTsgXHUwNWVhO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gd3JpdGUgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0ZW5zIGFuZCBvbmVzIGRpZ2l0cworICAgICAgICAvLyB3aGVuIHdlIGtub3cgdGhhdCBubyBvdGhlciBkaWdpdHMgcHJlY2VkZSB0aGVtOiB0aGV5IHB1dCB0aGUgbnVtZXJhbCBtYXJrcworICAgICAgICAvLyBpbiB0aGUgcmlnaHQgcGxhY2UgYW5kIHByb3Blcmx5IGhhbmRsZSAxNSBhbmQgMTYgKEknbSB1c2luZyB0aGUgbWF0aGVtYXRpY2FsCisgICAgICAgIC8vIHByaW1lIGNoYXJhY3RlcnMgZm9yIHRoZSBudW1lcmFsIG1hcmtzIGJlY2F1c2UgbXkgVW5pY29kZSBmb250IGRvZXNuJ3QKKyAgICAgICAgLy8gaW5jbHVkZSB0aGUgcmVhbCBIZWJyZXcgY2hhcmFjdGVycywgd2hpY2ggbG9vayBqdXN0IGxpa2UgdGhlIHByaW1lIG1hcmtzKQorICAgICAgICArICIlJXRlbnMtYW5kLW9uZXM6XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGxlc3MgdGhhbiAxMCwganVzdCB1c2UgJSVvbmVzIGFuZCBwdXQgdGhlIG51bWVyYWwgbWFyaworICAgICAgICAgICAgICAgLy8gYWZ0ZXJ3YXJkCisgICAgICAgICsgIiAgICA9JSVvbmVzPVx1MjAzMjtcbiIKKyAgICAgICAgICAgICAgIC8vIHB1dCB0aGUgbnVtZXJhbCBtYXJrIGF0IHRoZSBlbmQgZm9yIDEwLCBidXQgaW4gdGhlIG1pZGRsZSBmb3IKKyAgICAgICAgICAgICAgIC8vIDExIHRocm91Z2ggMTQKKyAgICAgICAgKyAiICAgIDEwOiA8JSV0ZW5zPFx1MjAzMjsgPCUldGVuczxcdTIwMzM+JSVvbmVzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHNwZWNpYWwtY2FzZSAxNSBhbmQgMTYKKyAgICAgICAgKyAiICAgIDE1OiBcdTA1ZDhcdTIwMzNcdTA1ZDU7IDE2OiBcdTA1ZDhcdTIwMzNcdTA1ZDY7XG4iCisgICAgICAgICAgICAgICAvLyBnbyBiYWNrIHRvIHRoZSBub3JtYWwgbWV0aG9kIGF0IDE3CisgICAgICAgICsgIiAgICAxNzogPCUldGVuczxcdTIwMzM+JSVvbmVzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHJlcGVhdCB0aGUgcnVsZXMgZm9yIDEwIGFuZCAxMSB0byBjb3ZlciB0aGUgdmFsdWVzIGZyb20gMjAgdG8gOTkKKyAgICAgICAgKyAiICAgIDIwOiA8JSV0ZW5zPFx1MjAzMjsgPCUldGVuczxcdTIwMzM+JSVvbmVzPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIGZvcm1hdCBudW1iZXJzIGJlbG93IDEsMDAwLiAgSXQgcmVsaWVzIG9uCisgICAgICAgIC8vICUldGVucy1hbmQtb25lcyB0byBmb3JtYXQgdGhlIHRlbnMgYW5kIG9uZXMgcGxhY2VzLCBhbmQgYWRkcyBsb2dpYworICAgICAgICAvLyB0byBoYW5kbGUgdGhlIGhpZ2ggaHVuZHJlZHMgYW5kIHRoZSBudW1lcmFsIG1hcmtzIHdoZW4gdGhlcmUgaXMgbm8KKyAgICAgICAgLy8gdGVucyBkaWdpdC4gIE5vdGljZSBob3cgdGhlIHJ1bGVzIGFyZSBwYWlyZWQ6IGFsbCBvZiB0aGVzZSBwYWlycyBvZgorICAgICAgICAvLyBydWxlcyB0YWtlIGFkdmFudGFnZSBvZiB0aGUgcm9sbGJhY2sgcnVsZTogaWYgdGhlIHZhbHVlIChiZXR3ZWVuIDEwMAorICAgICAgICAvLyBhbmQgNDk5KSBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDEwMCwgdGhlIHJ1bGUgZm9yIDEwMCBpcyB1c2VkOyBvdGhlcndpc2UsCisgICAgICAgIC8vIHRoZSBydWxlIGZvciAxMDEgKHRoZSBmb2xsb3dpbmcgcnVsZSkgaXMgdXNlZC4gIFRoZSBmaXJzdCBydWxlIGluIGVhY2gKKyAgICAgICAgLy8gcGFpciAodGhlIG9uZSBmb3IgdGhlIGV2ZW4gbXVsdGlwbGUpIHBsYWNlcyB0aGUgbnVtZXJhbCBtYXJrIGluIGEgZGlmZmVyZW50CisgICAgICAgIC8vIHNwb3QgdGhhbiB0aGUgc2Vjb25kIHJ1bGUgaW4gZWFjaCBwYWlyICh3aGljaCBrbm93cyB0aGVyZSBhcmUgbW9yZSBkaWdpdHMKKyAgICAgICAgLy8gYW5kIHJlbGllcyBvbiB0aGUgcnVsZSBzdXBwbHlpbmcgdGhlbSB0byBhbHNvIHN1cHBseSB0aGUgbnVtZXJhbCBtYXJrKS4KKyAgICAgICAgLy8gVGhlIGNhbGwgdG8gJSVudWxsIGluIGxpbmUgMTAgaXMgdGhlcmUgc2ltcGx5IHRvIGludm9rZSB0aGUgcm9sbGJhY2sKKyAgICAgICAgLy8gcnVsZS4KKyAgICAgICAgKyAiJSVsb3ctb3JkZXI6XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgaXMgb25seSBjYWxsZWQgd2hlbiB0aGVyZSBhcmUgb3RoZXIgY2hhcmFjdGVycyBiZWZvcmUuCisgICAgICAgICAgICAgICAvLyBJdCBwbGFjZXMgdGhlIG51bWVyYWwgbWFyayBiZWZvcmUgdGhlIGxhc3QgZGlnaXQKKyAgICAgICAgKyAiICAgIFx1MjAzMz0lJW9uZXM9O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHJ1bGUgZm9yIDEwIHBsYWNlcyB0aGUgbnVtZXJhbCBtYXJrIGJlZm9yZSB0aGUgMTAgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAvLyAoYmVjYXVzZSB3ZSBrbm93IGl0J3MgdGhlIGxhc3QgY2hhcmFjdGVyKTsgdGhlIHJ1bGUgZm9yIDExIHJlbGllcworICAgICAgICAgICAgICAgLy8gb24gJSV0ZW5zLWFuZC1vbmVzIHRvIHBsYWNlIHRoZSBudW1lcmFsIG1hcmsKKyAgICAgICAgKyAiICAgIDEwOiBcdTIwMzM8JSV0ZW5zPDsgPSUldGVucy1hbmQtb25lcz0+JSVudWxsPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSBydWxlIGZvciAxMDAgcGxhY2VzIHRoZSBudW1lcmFsIG1hcmsgYmVmb3JlIHRoZSAxMDAgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAvLyAod2Uga25vdyBpdCdzIHRoZSBsYXN0IGNoYXJhY3Rlcik7IHRoZSBydWxlIGZvciAxMDEgcmVjdXJzZXMgdG8KKyAgICAgICAgICAgICAgIC8vIGZpbGwgaW4gdGhlIHJlbWFpbmluZyBkaWdpdHMgYW5kIHRoZSBudW1lcmFsIG1hcmsKKyAgICAgICAgKyAiICAgIDEwMDogPCUlaHVuZHJlZHM8XHUyMDMyOyA8JSVodW5kcmVkczw+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIHNwZWNpYWwtY2FzZSB0aGUgaHVuZHJlZHMgZnJvbSA1MDAgdG8gOTAwIGJlY2F1c2UgdGhleSBjb25zaXN0IG9mCisgICAgICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIGNoYXJhY3RlcgorICAgICAgICArICIgICAgNTAwOiBcdTA1ZWFcdTIwMzNcdTA1ZTc7IFx1MDVlYVx1MDVlNz4+O1xuIgorICAgICAgICArICIgICAgNjAwOiBcdTA1ZWFcdTIwMzNcdTA1ZTg7IFx1MDVlYVx1MDVlOD4+O1xuIgorICAgICAgICArICIgICAgNzAwOiBcdTA1ZWFcdTIwMzNcdTA1ZTk7IFx1MDVlYVx1MDVlOT4+O1xuIgorICAgICAgICArICIgICAgODAwOiBcdTA1ZWFcdTIwMzNcdTA1ZWE7IFx1MDVlYVx1MDVlYT4+O1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTA1ZWFcdTA1ZWFcdTIwMzNcdTA1ZTc7IFx1MDVlYVx1MDVlYVx1MDVlNz4+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gZm9ybWF0IHZhbHVlcyBvZiAxLDAwMCBvciBtb3JlLiAgSGVyZSwgd2UgZG9uJ3QKKyAgICAgICAgLy8gd29ycnkgYWJvdXQgdGhlIG51bWVyYWwgbWFyaywgYW5kIHdlIGFkZCB0d28gZG90cyAodGhlIFVuaWNvZGUgY29tYmluaW5nCisgICAgICAgIC8vIGRpYWVyZXNpcyBjaGFyYWN0ZXIpIHRvIGV2ZXIgbGV0dGVyCisgICAgICAgICsgIiUlaGlnaC1vcmRlcjpcbiIKKyAgICAgICAgICAgICAgIC8vIHB1dCB0aGUgb25lcyBkaWdpdCwgZm9sbG93ZWQgYnkgdGhlIGRpYWVyZXNpcworICAgICAgICArICIgICAgPSUlb25lcz1cdTAzMDg7XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgdGVucyBjYW4gYmUgaGFuZGxlZCB3aXRoIHJlY3Vyc2lvbgorICAgICAgICArICIgICAgMTA6IDwlJXRlbnM8XHUwMzA4Wz4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHN0aWxsIGhhdmUgdG8gc3BlY2lhbC1jYXNlIDE1IGFuZCAxNgorICAgICAgICArICIgICAgMTU6IFx1MDVkOFx1MDMwOFx1MDVkNVx1MDMwODsgMTY6IFx1MDVkOFx1MDAzMDc4XHUwNWQ2XHUwMzA4O1xuIgorICAgICAgICAgICAgICAgLy8gYmFjayB0byB0aGUgcmVndWxhciBydWxlcyBhdCAxNworICAgICAgICArICIgICAgMTc6IDwlJXRlbnM8XHUwMzA4Wz4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSBodW5kcmVkcyB3aXRoIHRoZSBkb3RzIGFkZGVkIChhbmQgd2l0aG91dCB3b3JyeWluZyBhYm91dAorICAgICAgICAgICAgICAgLy8gcGxhY2luZyB0aGUgbnVtZXJhbCBtYXJrKQorICAgICAgICArICIgICAgMTAwOiA8JSVodW5kcmVkczxcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgNTAwOiBcdTA1ZWFcdTAzMDhcdTA1ZTdcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgNjAwOiBcdTA1ZWFcdTAzMDhcdTA1ZThcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgNzAwOiBcdTA1ZWFcdTAzMDhcdTA1ZTlcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgODAwOiBcdTA1ZWFcdTAzMDhcdTA1ZWFcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTA1ZWFcdTAzMDhcdTA1ZWFcdTAzMDhcdTA1ZTdcdTAzMDhbPj5dO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGRvZXNuJ3QgZG8gYW55dGhpbmc7IGl0J3MgdXNlZCBieSBzb21lIG90aGVyIHJ1bGVzIHRvCisgICAgICAgIC8vIGludm9rZSB0aGUgcm9sbGJhY2sgcnVsZQorICAgICAgICArICIgJSVudWxsOlxuIgorICAgICAgICArICIgICAgO1xuIgorICAgICAgICAvLyB0aGUgbWFpbiBydWxlIHNldC4KKyAgICAgICAgKyAiJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGJlbG93IDEwLCBqdXN0IG91dHB1dCB0aGUgbGV0dGVyIGFuZCB0aGUgbnVtZXJhbCBtYXJrCisgICAgICAgICsgIiAgICA9JSVvbmVzPVx1MjAzMjtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgZnJvbSAxMCB0byA5OSwgdXNlICUldGVucy1hbmQtb25lcyB0byBkbyB0aGUgZm9ybWF0dGluZworICAgICAgICArICIgICAgMTA6ID0lJXRlbnMtYW5kLW9uZXM9O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBmcm9tIDEwMCB0byA5OTksIHVzZSAlJWxvdy1vcmRlciB0byBkbyB0aGUgZm9ybWF0dGluZworICAgICAgICArICIgICAgMTAwOiA9JSVsb3ctb3JkZXI9O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBvZiAxLDAwMCBhbmQgb3ZlciwgdXNlICUlaGlnaC1vcmRlciB0byBkbyB0aGUgZm9ybWF0dGluZworICAgICAgICArICIgICAgMTAwMDogPCUlaGlnaC1vcmRlcjxbPiUlbG93LW9yZGVyPl07XG4iOworCisgICAgLyoqCisgICAgICogR3JlZWsgYWxwaGFiZXRpYyBudW1lcmFscy4gIFRoZSBHcmVla3MsIGJlZm9yZSBhZG9wdGluZyB0aGUgQXJhYmljIG51bWVyYWxzLAorICAgICAqIGFsc28gdXNlZCB0aGUgbGV0dGVycyBvZiB0aGVpciBhbHBoYWJldCBhcyBudW1lcmFscy4gIFRoZXJlIGFyZSB0aHJlZSBub3ctCisgICAgICogb2Jzb2xldGUgR3JlZWsgbGV0dGVycyB0aGF0IGFyZSB1c2VkIGFzIG51bWVyYWxzOyBtYW55IGZvbnRzIGRvbid0IGhhdmUgdGhlbS4KKyAgICAgKiBMYXJnZSBudW1iZXJzIHdlcmUgaGFuZGxlZCBtYW55IGRpZmZlcmVudCB3YXlzOyB0aGUgd2F5IHNob3duIGhlcmUgZGl2aWRlcworICAgICAqIGxhcmdlIG51bWJlcnMgaW50byBncm91cHMgb2YgZm91ciBsZXR0ZXJzIChmYWN0b3JzIG9mIDEwLDAwMCksIGFuZCBzZXBhcmF0ZXMKKyAgICAgKiB0aGUgZ3JvdXBzIHdpdGggdGhlIGNhcGl0YWwgbGV0dGVyIG11IChmb3IgbXlyaWFkKS4gIENhcGl0YWwgbGV0dGVycyBhcmUgdXNlZAorICAgICAqIGZvciB2YWx1ZXMgYmVsb3cgMTAsMDAwOyBzbWFsbCBsZXR0ZXJzIGZvciBoaWdoZXIgbnVtYmVycyAodG8gbWFrZSB0aGUgY2FwaXRhbAorICAgICAqIG11IHN0YW5kIG91dCkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ3JlZWtBbHBoYWJldGljID0KKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIGZvciBmb3JtYXR0aW5nIG51bWJlcnMgYmVsb3cgMTAsMDAwLiAgSXQgdXNlcworICAgICAgICAvLyBjYXBpdGFsIGxldHRlcnMuCisgICAgICAgICIlJWxvdy1vcmRlcjpcbiIKKyAgICAgICAgKyAiICAgIChubyB6ZXJvKTsgXHUwMzkxOyBcdTAzOTI7IFx1MDM5MzsgXHUwMzk0OyBcdTAzOTU7IFx1MDNkYzsgXHUwMzk2OyBcdTAzOTc7IFx1MDM5ODtcbiIKKyAgICAgICAgKyAiICAgIDEwOiBcdTAzOTlbPj5dOyAyMDogXHUwMzlhWz4+XTsgMzA6IFx1MDM5Yls+Pl07IDQwOiBcdTAzOWNbPj5dOyA1MDogXHUwMzlkWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBcdTAzOWVbPj5dOyA3MDogXHUwMzlmWz4+XTsgODA6IFx1MDNhMFs+Pl07IDkwOiBcdTAzZGVbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiBcdTAzYTFbPj5dOyAyMDA6IFx1MDNhM1s+Pl07IDMwMDogXHUwM2E0Wz4+XTsgNDAwOiBcdTAzYTVbPj5dO1xuIgorICAgICAgICArICIgICAgNTAwOiBcdTAzYTZbPj5dOyA2MDA6IFx1MDNhN1s+Pl07IDcwMDogXHUwM2E4Wz4+XTsgODAwOiBcdTAzYTlbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTAzZTBbPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHRob3VzYW5kcyBhcmUgcmVwcmVzZW50ZWQgYnkgdGhlIHNhbWUgbnVtYmVycyBhcyB0aGUgb25lcywgYnV0CisgICAgICAgICAgICAgICAvLyB3aXRoIGEgY29tbWEtbGlrZSBtYXJrIGFkZGVkIHRvIHRoZWlyIGxlZnQgc2hvdWxkZXIKKyAgICAgICAgKyAiICAgIDEwMDA6IFx1MDM5MVx1MDMxM1s+Pl07IDIwMDA6IFx1MDM5Mlx1MDMxM1s+Pl07IDMwMDA6IFx1MDM5M1x1MDMxM1s+Pl07XG4iCisgICAgICAgICsgIiAgICA0MDAwOiBcdTAzOTRcdTAzMTNbPj5dOyA1MDAwOiBcdTAzOTVcdTAzMTNbPj5dOyA2MDAwOiBcdTAzZGNcdTAzMTNbPj5dO1xuIgorICAgICAgICArICIgICAgNzAwMDogXHUwMzk2XHUwMzEzWz4+XTsgODAwMDogXHUwMzk3XHUwMzEzWz4+XTsgOTAwMDogXHUwMzk4XHUwMzEzWz4+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB0aGUgc2FtZSBhcyBhYm92ZSwgYnV0IHVzZXMgbG93ZXJjYXNlIGxldHRlcnMuICBJdCBpcyB1c2VkCisgICAgICAgIC8vIGZvciBmb3JtYXR0aW5nIHRoZSBncm91cHMgaW4gbnVtYmVycyBhYm92ZSAxMCwwMDAuCisgICAgICAgICsgIiUlaGlnaC1vcmRlcjpcbiIKKyAgICAgICAgKyAiICAgIChubyB6ZXJvKTsgXHUwM2IxOyBcdTAzYjI7IFx1MDNiMzsgXHUwM2I0OyBcdTAzYjU7IFx1MDNkYzsgXHUwM2I2OyBcdTAzYjc7IFx1MDNiODtcbiIKKyAgICAgICAgKyAiICAgIDEwOiBcdTAzYjlbPj5dOyAyMDogXHUwM2JhWz4+XTsgMzA6IFx1MDNiYls+Pl07IDQwOiBcdTAzYmNbPj5dOyA1MDogXHUwM2JkWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBcdTAzYmVbPj5dOyA3MDogXHUwM2JmWz4+XTsgODA6IFx1MDNjMFs+Pl07IDkwOiBcdTAzZGVbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiBcdTAzYzFbPj5dOyAyMDA6IFx1MDNjM1s+Pl07IDMwMDogXHUwM2M0Wz4+XTsgNDAwOiBcdTAzYzVbPj5dO1xuIgorICAgICAgICArICIgICAgNTAwOiBcdTAzYzZbPj5dOyA2MDA6IFx1MDNjN1s+Pl07IDcwMDogXHUwM2M4Wz4+XTsgODAwOiBcdTAzYzlbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTAzYzBbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogXHUwM2IxXHUwMzEzWz4+XTsgMjAwMDogXHUwM2IyXHUwMzEzWz4+XTsgMzAwMDogXHUwM2IzXHUwMzEzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwMDA6IFx1MDNiNFx1MDMxM1s+Pl07IDUwMDA6IFx1MDNiNVx1MDMxM1s+Pl07IDYwMDA6IFx1MDNkY1x1MDMxM1s+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDAwOiBcdTAzYjZcdTAzMTNbPj5dOyA4MDAwOiBcdTAzYjdcdTAzMTNbPj5dOyA5MDAwOiBcdTAzYjhcdTAzMTNbPj5dO1xuIgorICAgICAgICAvLyB0aGUgbWFpbiBydWxlIHNldAorICAgICAgICArICIlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYmVsb3cgMTAsMDAwLCBqdXN0IHVzZSAlJWxvdy1vcmRlcgorICAgICAgICArICIgICAgPSUlbG93LW9yZGVyPTtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYWJvdmUgMTAsMDAwLCBzcGxpdCBpbnRvIHR3byBncm91cHMgb2YgZm91ciBkaWdpdHMKKyAgICAgICAgICAgICAgIC8vIGFuZCBmb3JtYXQgZWFjaCB3aXRoICUlaGlnaC1vcmRlciAocHV0dGluZyBhbiBNIGluIGJldHdlbikKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPCUlaGlnaC1vcmRlcjxcdTAzOWM+JSVoaWdoLW9yZGVyPjtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYWJvdmUgMTAwLDAwMCwwMDAsIGFkZCBhbm90aGVyIGdyb3VwIG9udG8gdGhlIGZyb250CisgICAgICAgICAgICAgICAvLyBhbmQgYW5vdGhlciBNCisgICAgICAgICsgIiAgICAxMDAsMDAwLDAwMDogPCUlaGlnaC1vcmRlcjxcdTAzOWM+PlxuIjsKKworICAgIC8qKgorICAgICAqIEEgbGlzdCBvZiBhbGwgdGhlIHNhbXBsZSBydWxlIHNldHMsIHVzZWQgYnkgdGhlIGRlbW8gcHJvZ3JhbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHNhbXBsZVJ1bGVTZXRzID0KKyAgICAgICAgeyB1c0VuZ2xpc2gsCisgICAgICAgICAgdWtFbmdsaXNoLAorICAgICAgICAgIHNwYW5pc2gsCisgICAgICAgICAgZnJlbmNoLAorICAgICAgICAgIHN3aXNzRnJlbmNoLAorICAgICAgICAgIGdlcm1hbiwKKyAgICAgICAgICBpdGFsaWFuLAorICAgICAgICAgIHN3ZWRpc2gsCisgICAgICAgICAgZHV0Y2gsCisgICAgICAgICAgamFwYW5lc2UsCisgICAgICAgICAgZ3JlZWssCisgICAgICAgICAgcnVzc2lhbiwKKyAgICAgICAgICBoZWJyZXcsCisgICAgICAgICAgb3JkaW5hbCwKKyAgICAgICAgICBtZXNzYWdlMSwKKyAgICAgICAgICBkb2xsYXJzQW5kQ2VudHMsCisgICAgICAgICAgZGVjaW1hbEFzRnJhY3Rpb24sCisgICAgICAgICAgY2xvc2VzdEZyYWN0aW9uLAorICAgICAgICAgIHN0b2NrLAorICAgICAgICAgIGFiYkVuZ2xpc2gsCisgICAgICAgICAgdW5pdHMsCisgICAgICAgICAgbWVzc2FnZTIsCisgICAgICAgICAgZG96ZW5zLAorICAgICAgICAgIGR1cmF0aW9uSW5TZWNvbmRzLAorICAgICAgICAgIGR1cmF0aW9uSW5Ib3VycywKKyAgICAgICAgICBwb3VuZHNTaGlsbGluZ3NBbmRQZW5jZSwKKyAgICAgICAgICBhcmFiaWNOdW1lcmFscywKKyAgICAgICAgICB3b3Jkc0ZvckRpZ2l0cywKKyAgICAgICAgICBjaGluZXNlUGxhY2VWYWx1ZSwKKyAgICAgICAgICByb21hbk51bWVyYWxzLAorICAgICAgICAgIGhlYnJld0FscGhhYmV0aWMsCisgICAgICAgICAgZ3JlZWtBbHBoYWJldGljIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGlzcGxheWFibGUgbmFtZXMgZm9yIGFsbCB0aGUgc2FtcGxlIHJ1bGUgc2V0cywgaW4gdGhlIHNhbWUgb3JkZXIgYXMKKyAgICAgKiB0aGUgcHJlY2VkaW5nIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gc2FtcGxlUnVsZVNldE5hbWVzID0KKyAgICAgICAgeyAiRW5nbGlzaCAoVVMpIiwKKyAgICAgICAgICAiRW5nbGlzaCAoVUspIiwKKyAgICAgICAgICAiU3BhbmlzaCIsCisgICAgICAgICAgIkZyZW5jaCAoRnJhbmNlKSIsCisgICAgICAgICAgIkZyZW5jaCAoU3dpdHplcmxhbmQpIiwKKyAgICAgICAgICAiR2VybWFuIiwKKyAgICAgICAgICAiSXRhbGlhbiIsCisgICAgICAgICAgIlN3ZWRpc2giLAorICAgICAgICAgICJEdXRjaCIsCisgICAgICAgICAgIkphcGFuZXNlIiwKKyAgICAgICAgICAiR3JlZWsiLAorICAgICAgICAgICJSdXNzaWFuIiwKKyAgICAgICAgICAiSGVicmV3IiwKKyAgICAgICAgICAiRW5nbGlzaCBvcmRpbmFsIGFiYnJldmlhdGlvbnMiLAorICAgICAgICAgICJTaW1wbGUgbWVzc2FnZSBmb3JtYXR0aW5nIiwKKyAgICAgICAgICAiRG9sbGFycyBhbmQgY2VudHMiLAorICAgICAgICAgICJEZWNpbWFscyBhcyBmcmFjdGlvbnMiLAorICAgICAgICAgICJDbG9zZXN0IGZyYWN0aW9uIiwKKyAgICAgICAgICAiU3RvY2sgcHJpY2VzIiwKKyAgICAgICAgICAiQWJicmV2aWF0ZWQgVVMgRW5nbGlzaCIsCisgICAgICAgICAgIkNoYW5naW5nIGRpbWVuc2lvbnMiLAorICAgICAgICAgICJDb21wbGV4IG1lc3NhZ2UgZm9ybWF0dGluZyIsCisgICAgICAgICAgIkRvemVucyIsCisgICAgICAgICAgIkR1cmF0aW9uICh2YWx1ZSBpbiBzZWNvbmRzKSIsCisgICAgICAgICAgIkR1cmF0aW9uICh2YWx1ZSBpbiBob3VycykiLAorICAgICAgICAgICJQb3VuZHMsIHNoaWxsaW5ncywgYW5kIHBlbmNlIiwKKyAgICAgICAgICAiQXJhYmljIG51bWVyYWxzIiwKKyAgICAgICAgICAiV29yZHMgZm9yIGRpZ2l0cyIsCisgICAgICAgICAgIkNoaW5lc2UgcGxhY2UtdmFsdWUgbm90YXRpb24iLAorICAgICAgICAgICJSb21hbiBudW1lcmFscyIsCisgICAgICAgICAgIkhlYnJldyBhaGxwaGFiZXRpYyBudW1lcmFscyIsCisgICAgICAgICAgIkdyZWVrIGFscGhhYmV0aWMgbnVtZXJhbHMiIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgYmFzZSBsb2NhbGUgZm9yIGVhY2ggb2YgdGhlIHNhbXBsZSBydWxlIHNldHMuICBUaGUgbG9jYWxlIGlzIHVzZWQgdG8KKyAgICAgKiBkZXRlcm1pbmUgRGVjaW1hbEZvcm1hdCBiZWhhdmlvciwgbGVuaWVudC1wYXJzZSBiZWhhdmlvciwgYW5kIHRleHQtZGlzcGxheQorICAgICAqIHNlbGVjdGlvbiAod2UgaGF2ZSBhIGhhY2sgaW4gaGVyZSB0byBhbGxvdyBkaXNwbGF5IG9mIG5vbi1MYXRpbiBzY3JpcHRzKS4KKyAgICAgKiBOdWxsIG1lYW5zIHRoZSBsb2NhbGUgc2V0dGluZyBpcyBpcnJlbGV2YW50IGFuZCB0aGUgZGVmYXVsdCBjYW4gYmUgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIExvY2FsZVtdIHNhbXBsZVJ1bGVTZXRMb2NhbGVzID0KKyAgICAgICAgeyBMb2NhbGUuVVMsCisgICAgICAgICAgTG9jYWxlLlVLLAorICAgICAgICAgIG5ldyBMb2NhbGUoImVzIiwgIiIsICIiKSwKKyAgICAgICAgICBMb2NhbGUuRlJBTkNFLAorICAgICAgICAgIG5ldyBMb2NhbGUoImZyIiwgIkNIIiwgIiIpLAorICAgICAgICAgIExvY2FsZS5HRVJNQU4sCisgICAgICAgICAgTG9jYWxlLklUQUxJQU4sCisgICAgICAgICAgbmV3IExvY2FsZSgic3YiLCAiIiwgIiIpLAorICAgICAgICAgIG5ldyBMb2NhbGUoIm5sIiwgIiIsICIiKSwKKyAgICAgICAgICBMb2NhbGUuSkFQQU5FU0UsCisgICAgICAgICAgbmV3IExvY2FsZSgiZWwiLCAiIiwgIiIpLAorICAgICAgICAgIG5ldyBMb2NhbGUoInJ1IiwgIiIsICIiKSwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJpdyIsICIiLCAiIiksCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgTG9jYWxlLlVTLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG51bGwsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG51bGwsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJ6aCIsICIiLCAiIiksCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJpdyIsICIiLCAiIiksCisgICAgICAgICAgbmV3IExvY2FsZSgiZWwiLCAiIiwgIiIpLAorICAgICAgICAgIG51bGwgfTsKKworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHNhbXBsZVJ1bGVTZXRDb21tZW50YXJ5ID0geworICAgICAgICAgICAgIlRoaXMgZGVtb25zdHJhdGlvbiB2ZXJzaW9uIG9mIHRoZSAiCisgICAgICAgICAgICArICJVLlMuIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMgaGFzIGZvdXIgdmFyaWFudHM6IDEpICVzaW1wbGlmaWVkIGlzIGEgIgorICAgICAgICAgICAgKyAic2V0IG9mIHJ1bGVzIHNob3dpbmcgdGhlIHNpbXBsZSBtZXRob2Qgb2Ygc3BlbGxpbmcgb3V0IG51bWJlcnMgaW4gIgorICAgICAgICAgICAgKyAiRW5nbGlzaDogMjg5IGlzIGZvcm1hdHRlZCBhcyBcInR3byBodW5kcmVkIGVpZ2h0eS1uaW5lXCIuICAyKSAlYWx0LXRlZW5zICIKKyAgICAgICAgICAgICsgImlzIHRoZSBzYW1lIGFzICVzaW1wbGlmaWVkLCBleGNlcHQgdGhhdCB2YWx1ZXMgYmV0d2VlbiAxLDAwMCBhbmQgOSw5OTkgIgorICAgICAgICAgICAgKyAid2hvc2UgaHVuZHJlZHMgcGxhY2UgaXNuJ3QgemVybyBhcmUgZm9ybWF0dGVkIGluIGh1bmRyZWRzLiAgRm9yIGV4YW1wbGUsICIKKyAgICAgICAgICAgICsgIjEsOTgzIGlzIGZvcm1hdHRlZCBhcyBcIm5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LXRocmVlLFwiIGFuZCAyLDE4MyBpcyAiCisgICAgICAgICAgICArICJmb3JtYXR0ZWQgYXMgXCJ0d2VudHktb25lIGh1bmRyZWQgZWlnaHR5LXRocmVlLFwiIGJ1dCAyLDA4MyBpcyBzdGlsbCAiCisgICAgICAgICAgICArICJmb3JtYXR0ZWQgYXMgXCJ0d28gdGhvdXNhbmQgZWlnaHR5LXRocmVlLlwiICAzKSAlb3JkaW5hbCBmb3JtYXRzIHRoZSAiCisgICAgICAgICAgICArICJ2YWx1ZXMgYXMgb3JkaW5hbCBudW1iZXJzIGluIEVuZ2xpc2ggKGUuZy4sIDI4OSBpcyBcInR3byBodW5kcmVkIGVpZ2h0eS0iCisgICAgICAgICAgICArICJuaW50aFwiKS4gIDQpICVkZWZhdWx0IHVzZXMgYSBtb3JlIGNvbXBsaWNhdGVkIGFsZ29yaXRobSB0byBmb3JtYXQgIgorICAgICAgICAgICAgKyAibnVtYmVycyBpbiBhIG1vcmUgbmF0dXJhbCB3YXk6IDI4OSBpcyBmb3JtYXR0ZWQgYXMgXCJ0d28gaHVuZHJlZCBBTkQgIgorICAgICAgICAgICAgKyAiZWlnaHR5LW5pbmVcIiBhbmQgY29tbWFzIGFyZSBpbnNlcnRlZCBiZXR3ZWVuIHRoZSB0aG91c2FuZHMgZ3JvdXBzIGZvciAiCisgICAgICAgICAgICArICJ2YWx1ZXMgYWJvdmUgMTAwLDAwMC4iLAorCisgICAgICAgICAgICAiVS5LLiBFbmdsaXNoIGhhcyBvbmUgc2lnbmlmaWNhbnQgIgorICAgICAgICAgICAgKyAiZGlmZmVyZW5jZSBmcm9tIFUuUy4gRW5nbGlzaDogdGhlIG5hbWVzIGZvciB2YWx1ZXMgb2YgMSwwMDAsMDAwLDAwMCAiCisgICAgICAgICAgICArICJhbmQgaGlnaGVyLiAgSW4gQW1lcmljYW4gRW5nbGlzaCwgZWFjaCBzdWNjZXNzaXZlIFwiLWlsbGlvblwiIGlzIDEsMDAwICIKKyAgICAgICAgICAgICsgInRpbWVzIGdyZWF0ZXIgdGhhbiB0aGUgcHJlY2VkaW5nIG9uZTogMSwwMDAsMDAwLDAwMCBpcyBcIm9uZSBiaWxsaW9uXCIgIgorICAgICAgICAgICAgKyAiYW5kIDEsMDAwLDAwMCwwMDAsMDAwIGlzIFwib25lIHRyaWxsaW9uLlwiICBJbiBCcml0aXNoIEVuZ2xpc2gsIGVhY2ggIgorICAgICAgICAgICAgKyAic3VjY2Vzc2l2ZSBcIi1pbGxpb25cIiBpcyBvbmUgbWlsbGlvbiB0aW1lcyBncmVhdGVyIHRoYW4gdGhlIG9uZSBiZWZvcmU6ICIKKyAgICAgICAgICAgICsgIlwib25lIGJpbGxpb25cIiBpcyAxLDAwMCwwMDAsMDAwLDAwMCAob3Igd2hhdCBBbWVyaWNhbnMgd291bGQgY2FsbCBhICIKKyAgICAgICAgICAgICsgIlwidHJpbGxpb25cIiksIGFuZCBcIm9uZSB0cmlsbGlvblwiIGlzIDEsMDAwLDAwMCwwMDAsMDAwLDAwMCwwMDAuICAiCisgICAgICAgICAgICArICIxLDAwMCwwMDAsMDAwIGluIEJyaXRpc2ggRW5nbGlzaCBpcyBcIm9uZSB0aG91c2FuZCBtaWxsaW9uLlwiICAoVGhpcyAiCisgICAgICAgICAgICArICJ2YWx1ZSBpcyBzb21ldGltZXMgY2FsbGVkIGEgXCJtaWxsaWFyZCxcIiBidXQgdGhpcyB3b3JkIHNlZW1zIHRvIGhhdmUgIgorICAgICAgICAgICAgKyAiZmFsbGVuIGludG8gZGlzdXNlLikiLAorCisgICAgICAgICAgICAiVGhlIFNwYW5pc2ggcnVsZXMgYXJlIHF1aXRlIHNpbWlsYXIgdG8gIgorICAgICAgICAgICAgKyAidGhlIEVuZ2xpc2ggcnVsZXMsIGJ1dCB0aGVyZSBhcmUgc29tZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXM6ICIKKyAgICAgICAgICAgICsgIkZpcnN0LCB3ZSBoYXZlIHRvIHByb3ZpZGUgc2VwYXJhdGUgcnVsZXMgZm9yIG1vc3Qgb2YgdGhlIHR3ZW50aWVzICIKKyAgICAgICAgICAgICsgImJlY2F1c2UgdGhlIG9uZXMgZGlnaXQgZnJlcXVlbnRseSBwaWNrcyB1cCBhbiBhY2NlbnQgbWFyayB0aGF0IGl0ICIKKyAgICAgICAgICAgICsgImRvZXNuJ3QgaGF2ZSB3aGVuIHN0YW5kaW5nIGFsb25lLiAgU2Vjb25kLCBlYWNoIG11bHRpcGxlIG9mIDEwMCBoYXMgIgorICAgICAgICAgICAgKyAidG8gYmUgc3BlY2lmaWVkIHNlcGFyYXRlbHkgYmVjYXVzZSB0aGUgbXVsdGlwbGllciBvbiAxMDAgdmVyeSBvZnRlbiAiCisgICAgICAgICAgICArICJjaGFuZ2VzIGZvcm0gaW4gdGhlIGNvbnRyYWN0aW9uOiA1MDAgaXMgXCJxdWluaWVudG9zLFwiIG5vdCAiCisgICAgICAgICAgICArICJcImNpbmNvY2llbnRvcy5cIiAgSW4gYWRkaXRpb24sIHRoZSB3b3JkIGZvciAxMDAgaXMgXCJjaWVuXCIgd2hlbiAiCisgICAgICAgICAgICArICJzdGFuZGluZyBhbG9uZSwgYnV0IGNoYW5nZXMgdG8gXCJjaWVudG9cIiB3aGVuIGZvbGxvd2VkIGJ5IG1vcmUgZGlnaXRzLiAgIgorICAgICAgICAgICAgKyAiVGhlcmUgYWxzbyBzb21lIG90aGVyIGRpZmZlcmVuY2VzLiIsCisKKyAgICAgICAgICAgICJGcmVuY2ggYWRkcyBzb21lIGludGVyZXN0aW5nIHF1aXJrcyBvZiBpdHMgIgorICAgICAgICAgICAgKyAib3duOiAxKSBUaGUgd29yZCBcImV0XCIgaXMgaW50ZXJwb3NlZCBiZXR3ZWVuIHRoZSB0ZW5zIGFuZCBvbmVzIGRpZ2l0cywgIgorICAgICAgICAgICAgKyAiYnV0IG9ubHkgaWYgdGhlIG9uZXMgZGlnaXQgaWYgMTogMjAgaXMgXCJ2aW5ndCxcIiBhbmQgMiBpcyBcInZpbmd0LWRldXgsXCIgIgorICAgICAgICAgICAgKyAiYnV0IDIxIGlzIFwidmluZ3QtZXQtdW4uXCIgIDIpICBUaGVyZSBhcmUgbm8gd29yZHMgZm9yIDcwLCA4MCwgb3IgOTAuICAiCisgICAgICAgICAgICArICJcInF1YXRyZS12aW5ndHNcIiAoXCJmb3VyIHR3ZW50aWVzXCIpIGlzIHVzZWQgZm9yIDgwLCBhbmQgdmFsdWVzIHByb2NlZWQgIgorICAgICAgICAgICAgKyAiYnkgc2NvcmUgZnJvbSA2MCB0byA5OSAoZS5nLiwgNzMgaXMgXCJzb2l4YW50ZS10cmVpemVcIiBbXCJzaXh0eS10aGlydGVlblwiXSkuICAiCisgICAgICAgICAgICArICJOdW1iZXJzIGZyb20gMSwxMDAgdG8gMSwxOTkgYXJlIHJlbmRlcmVkIGFzIGh1bmRyZWRzIHJhdGhlciB0aGFuICIKKyAgICAgICAgICAgICsgInRob3VzYW5kczogMSwxMDAgaXMgXCJvbnplIGNlbnRzXCIgKFwiZWxldmVuIGh1bmRyZWRcIiksIHJhdGhlciB0aGFuICIKKyAgICAgICAgICAgICsgIlwibWlsbGUgY2VudFwiIChcIm9uZSB0aG91c2FuZCBvbmUgaHVuZHJlZFwiKSIsCisKKyAgICAgICAgICAgICJTd2lzcyBGcmVuY2ggZGlmZmVycyBmcm9tIEZyZW5jaCBGcmVuY2ggIgorICAgICAgICAgICAgKyAiaW4gdGhhdCBpdCBkb2VzIGhhdmUgd29yZHMgZm9yIDcwLCA4MCwgYW5kIDkwLiAgVGhpcyBydWxlIHNldCBzaG93cyB0aGVtLCAiCisgICAgICAgICAgICArICJhbmQgaXMgc2ltcGxlciBhcyBhIHJlc3VsdC4iLAorCisgICAgICAgICAgICAiR2VybWFuIGFsc28gYWRkcyBzb21lIGludGVyZXN0aW5nICIKKyAgICAgICAgICAgICsgImNoYXJhY3RlcmlzdGljcy4gIEZvciB2YWx1ZXMgYmVsb3cgMSwwMDAsMDAwLCBudW1iZXJzIGFyZSBjdXN0b21hcmlseSAiCisgICAgICAgICAgICArICJ3cml0dGVuIG91dCBhcyBhIHNpbmdsZSB3b3JkLiAgQW5kIHRoZSBvbmVzIGRpZ2l0IFBSRUNFREVTIHRoZSB0ZW5zICIKKyAgICAgICAgICAgICsgImRpZ2l0IChlLmcuLCAyMyBpcyBcImRyZWl1bmR6d2FuemlnLFwiIG5vdCBcInp3YW56aWd1bmRkcmVpXCIpLiIsCisKKyAgICAgICAgICAgICJMaWtlIEdlcm1hbiwgbW9zdCBJdGFsaWFuIG51bWJlcnMgYXJlICIKKyAgICAgICAgICAgICsgIndyaXR0ZW4gYXMgc2luZ2xlIHdvcmRzLiAgV2hhdCBtYWtlcyB0aGVzZSBydWxlcyBjb21wbGljYXRlZCBpcyB0aGUgcnVsZSAiCisgICAgICAgICAgICArICJ0aGF0IHNheXMgdGhhdCB3aGVuIGEgd29yZCBlbmRpbmcgaW4gYSB2b3dlbCBhbmQgYSB3b3JkIGJlZ2lubmluZyB3aXRoICIKKyAgICAgICAgICAgICsgImEgdm93ZWwgYXJlIGNvbWJpbmVkIGludG8gYSBjb21wb3VuZCwgdGhlIHZvd2VsIGlzIGRyb3BwZWQgZnJvbSB0aGUgIgorICAgICAgICAgICAgKyAiZW5kIG9mIHRoZSBmaXJzdCB3b3JkOiAxODAgaXMgXCJjZW50b3R0YW50YSxcIiBub3QgXCJjZW50b290dGFudGEuXCIgICIKKyAgICAgICAgICAgICsgIlRoZSBjb21wbGV4aXR5IG9mIHRoaXMgcnVsZSBzZXQgaXMgdG8gcHJvZHVjZSB0aGlzIGJlaGF2aW9yLiIsCisKKyAgICAgICAgICAgICJTcGVsbG91dCBydWxlcyBmb3IgU3dlZGlzaC4iLAorCisgICAgICAgICAgICAiU3BlbGxvdXQgcnVsZXMgZm9yIER1dGNoLiAgTm90aWNlIHRoYXQgaW4gRHV0Y2gsIGFzIGluIEdlcm1hbiwiCisgICAgICAgICAgICArICJ0aGUgb25lcyBkaWdpdCBwcmVjZWRlcyB0aGUgdGVucyBkaWdpdC4iLAorCisgICAgICAgICAgICAiSW4gSmFwYW5lc2UsIHRoZXJlIHJlYWxseSBpc24ndCBhbnkgIgorICAgICAgICAgICAgKyAiZGlzdGluY3Rpb24gYmV0d2VlbiBhIG51bWJlciB3cml0dGVuIG91dCBpbiBkaWdpdHMgYW5kIGEgbnVtYmVyICIKKyAgICAgICAgICAgICsgIndyaXR0ZW4gb3V0IGluIHdvcmRzOiB0aGUgaWRlb2dyYXBoaWMgY2hhcmFjdGVycyBhcmUgYm90aCBkaWdpdHMgIgorICAgICAgICAgICAgKyAiYW5kIHdvcmRzLiAgVGhpcyBydWxlIHNldCBwcm92aWRlcyB0d28gdmFyaWFudHM6ICAldHJhZGl0aW9uYWwgIgorICAgICAgICAgICAgKyAidXNlcyB0aGUgdHJhZGl0aW9uYWwgQ0pLIG51bWVyYWxzICh3aGljaCBhcmUgYWxzbyB1c2VkIGluIENoaW5hICIKKyAgICAgICAgICAgICsgImFuZCBLb3JlYSkuICAlZmluYW5jaWFsIHVzZXMgYWx0ZXJuYXRlIGlkZW9ncmFwaHMgZm9yIG1hbnkgbnVtYmVycyAiCisgICAgICAgICAgICArICJ0aGF0IGFyZSBoYXJkZXIgdG8gYWx0ZXIgdGhhbiB0aGUgdHJhZGl0aW9uYWwgbnVtZXJhbHMgKG9uZSBjb3VsZCAiCisgICAgICAgICAgICArICJmYWlybHkgZWFzaWx5IGNoYW5nZSBhIG9uZSB0byAiCisgICAgICAgICAgICArICJhIHRocmVlIGp1c3QgYnkgYWRkaW5nIHR3byBzdHJva2VzLCBmb3IgZXhhbXBsZSkuICBUaGlzIGlzIGFsc28gZG9uZSBpbiAiCisgICAgICAgICAgICArICJ0aGUgb3RoZXIgY291bnRyaWVzIHVzaW5nIENoaW5lc2UgaWRvZ3JhcGhzLCBidXQgZGlmZmVyZW50IGlkZW9ncmFwaHMgIgorICAgICAgICAgICAgKyAiYXJlIHVzZWQgaW4gdGhvc2UgcGxhY2VzLiIsCisKKyAgICAgICAgICAgICJBZ2FpbiBpbiBHcmVlayB3ZSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMgIgorICAgICAgICAgICAgKyAiZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTAwIGJlY2F1c2UgdGhleSBjYW4ndCBiZSBkZXJpdmVkIGFsZ29yaXRobWljYWxseS4gICIKKyAgICAgICAgICAgICsgIkFsc28sIHRoZSB0ZW5zIGRnaXQgY2hhbmdlcyBmb3JtIHdoZW4gZm9sbG93ZWQgYnkgYSBvbmVzIGRpZ2l0OiBhbiAiCisgICAgICAgICAgICArICJhY2NlbnQgbWFyayBkaXNhcHBlYXJzIGZyb20gdGhlIHRlbnMgZGlnaXQgYW5kIG1vdmVzIHRvIHRoZSBvbmVzIGRpZ2l0LiAgIgorICAgICAgICAgICAgKyAiVGhlcmVmb3JlLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBbXSBub3RhdGlvbiwgd2UgYWN0dWFsbHkgaGF2ZSB0byB1c2UgIgorICAgICAgICAgICAgKyAidHdvIHNlcGFyYXRlIHJ1bGVzIGZvciBlYWNoIG11bHRpcGxlIG9mIDEwIHRvIHNob3cgdGhlIHR3byBmb3JtcyBvZiAiCisgICAgICAgICAgICArICJ0aGUgd29yZC4iLAorCisgICAgICAgICAgICAiU3BlbGxvdXQgcnVsZXMgZm9yIFJ1c3NpYW4uIiwKKworICAgICAgICAgICAgIlNwZWxsb3V0IHJ1bGVzIGZvciBIZWJyZXcuICBIZWJyZXcgYWN0dWFsbHkgaGFzIGluZmxlY3RlZCBmb3JtcyBmb3IgIgorICAgICAgICAgICAgKyAibW9zdCBvZiB0aGUgbG93ZXItb3JkZXIgbnVtYmVycy4gIFRoZSBtYXNjdWxpbmUgZm9ybXMgYXJlIHNob3duICIKKyAgICAgICAgICAgICsgImhlcmUuIiwKKworICAgICAgICAgICAgIlRoaXMgcnVsZSBzZXQgYWRkcyBhbiBFbmdsaXNoIG9yZGluYWwgYWJicmV2aWF0aW9uIHRvIHRoZSBlbmQgb2YgYSAiCisgICAgICAgICAgICArICJudW1iZXIuICBGb3IgZXhhbXBsZSwgMiBpcyBmb3JtYXR0ZWQgYXMgXCIybmRcIi4gIFBhcnNpbmcgZG9lc24ndCB3b3JrIHdpdGggIgorICAgICAgICAgICAgKyAidGhpcyBydWxlIHNldC4gIFRvIHBhcnNlLCB1c2UgRGVjaW1hbEZvcm1hdCBvbiB0aGUgbnVtZXJhbC4iLAorCisgICAgICAgICAgICAiVGhpcyBpcyBhIHNpbXBsZSBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZS4gIE5vcm1hbGx5IG9uZSB3b3VsZCAiCisgICAgICAgICAgICArICJ1c2UgQ2hvaWNlRm9ybWF0IGFuZCBNZXNzYWdlRm9ybWF0IHRvIGRvIHNvbWV0aGluZyB0aGlzIHNpbXBsZSwgIgorICAgICAgICAgICAgKyAiYnV0IHRoaXMgc2hvd3MgaXQgY291bGQgYmUgZG9uZSB3aXRoIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0b28uICAiCisgICAgICAgICAgICArICJBIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlIHRoYXQgbWlnaHQgd29yayBiZXR0ZXIgd2l0aCAiCisgICAgICAgICAgICArICJSdWxlQmFzZWROdW1iZXJGb3JtYXQgYXBwZWFycyBsYXRlci4iLAorCisgICAgICAgICAgICAiVGhlIG5leHQgZmV3IGV4YW1wbGVzIGRlbW9uc3RyYXRlIGZyYWN0aW9uIGhhbmRsaW5nLiAgIgorICAgICAgICAgICAgKyAiVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgaW4gb25lIG9mIHRoZSB0d28gc3R5bGVzIG9mdGVuIHVzZWQgIgorICAgICAgICAgICAgKyAib24gY2hlY2tzLiAgJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHMgZm9ybWF0cyBjZW50cyBhcyBodW5kcmVkdGhzIG9mICIKKyAgICAgICAgICAgICsgImEgZG9sbGFyICgyMy40MCBjb21lcyBvdXQgYXMgXCJ0d2VudHktdGhyZWUgYW5kIDQwLzEwMCBkb2xsYXJzXCIpLiAgIgorICAgICAgICAgICAgKyAiJWRvbGxhcnMtYW5kLWNlbnRzIGZvcm1hdHMgaW4gZG9sbGFycyBhbmQgY2VudHMgKDIzLjQwIGNvbWVzIG91dCBhcyAiCisgICAgICAgICAgICArICJcInR3ZW50eS10aHJlZSBkb2xsYXJzIGFuZCBmb3J0eSBjZW50c1wiKSIsCisKKyAgICAgICAgICAgICJUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBhcyBhIGZyYWN0aW9uICIKKyAgICAgICAgICAgICsgIndpdGggYSBwb3dlciBvZiAxMCBhcyB0aGUgZGVub21pbmF0b3IuICBTb21lIGxhbmd1YWdlcyBkb24ndCBzcGVsbCAiCisgICAgICAgICAgICArICJvdXQgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiBhIG51bWJlciBhcyBcInBvaW50IG9uZSB0d28gdGhyZWUsXCIgYnV0ICIKKyAgICAgICAgICAgICsgImFsd2F5cyByZW5kZXIgaXQgYXMgYSBmcmFjdGlvbi4gIElmIHdlIHN0aWxsIHdhbnQgdG8gdHJlYXQgdGhlIGZyYWN0aW9uYWwgIgorICAgICAgICAgICAgKyAicGFydCBvZiB0aGUgbnVtYmVyIGFzIGEgZGVjaW1hbCwgdGhlbiB0aGUgZnJhY3Rpb24ncyBkZW5vbWluYXRvciAiCisgICAgICAgICAgICArICJpcyBhbHdheXMgYSBwb3dlciBvZiAxMC4gIFRoaXMgZXhhbXBsZSBkb2VzIHRoYXQ6IDIzLjEyNSBpcyBmb3JtYXR0ZWQgIgorICAgICAgICAgICAgKyAiYXMgXCJ0d2VudHktdGhyZWUgYW5kIG9uZSBodW5kcmVkIHR3ZW50eS1maXZlIHRob3VzYW5kdGhzXCIgKGFzIG9wcG9zZWQgIgorICAgICAgICAgICAgKyAidG8gXCJ0d2VudHktdGhyZWUgcG9pbnQgb25lIHR3byBmaXZlXCIgb3IgXCJ0d2VudHktdGhyZWUgYW5kIG9uZSBlaWdodGhcIikuIiwKKworICAgICAgICAgICAgIk51bWJlciB3aXRoIGNsb3Nlc3QgZnJhY3Rpb24uICBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIHZhbHVlIHVzaW5nICIKKyAgICAgICAgICAgICsgIm51bWVyYWxzLCBidXQgc2hvd3MgdGhlIGZyYWN0aW9uYWwgcGFydCBhcyBhIHJhdGlvIChmcmFjdGlvbikgcmF0aGVyICIKKyAgICAgICAgICAgICsgInRoYW4gYSBkZWNpbWFsLiAgVGhlIGZyYWN0aW9uIGFsd2F5cyBoYXMgYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLiIsCisKKyAgICAgICAgICAgICJBbWVyaWNhbiBzdG9jay1wcmljZSBmb3JtYXR0aW5nLiAgTm9uLWludGVncmFsIHN0b2NrIHByaWNlcyBhcmUgc3RpbGwgIgorICAgICAgICAgICAgKyAiZ2VuZXJhbGx5IHNob3duIGluIGVpZ2h0aHMgb3Igc2l4dGVlbnRocyBvZiBkb2xsYXJzIGluc3RlYWQgb2YgZG9sbGFycyAiCisgICAgICAgICAgICArICJhbmQgY2VudHMuICBUaGlzIGV4YW1wbGUgZm9ybWF0cyBzdG9jayBwcmljZXMgaW4gdGhpcyB3YXkgaWYgcG9zc2libGUsICIKKyAgICAgICAgICAgICsgImFuZCBpbiBkb2xsYXJzIGFuZCBjZW50cyBpZiBub3QuIiwKKworICAgICAgICAgICAgIlRoZSBuZXh0IGZldyBleGFtcGxlcyBkZW1vbnN0cmF0ZSB1c2luZyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0byAiCisgICAgICAgICAgICArICJjaGFuZ2UgdGhlIHVuaXRzIGEgdmFsdWUgaXMgZGVub21pbmF0ZWQgaW4gZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUuICAiCisgICAgICAgICAgICArICJUaGUgZXhhbXBsZSBzaG93cyBsYXJnZSBudW1iZXJzIHRoZSB3YXkgdGhleSBvZnRlbiBhcHBlYXIgaXMgbndlc3BhcGVyczogIgorICAgICAgICAgICAgKyAiMSwyMDAsMDAwIGlzIGZvcm1hdHRlZCBhcyBcIjEuMiBtaWxsaW9uXCIuIiwKKworICAgICAgICAgICAgIlRoaXMgZXhhbXBsZSB0YWtlcyBhIG51bWJlciBvZiBtZXRlcnMgYW5kIGZvcm1hdHMgaXQgaW4gd2hhdGV2ZXIgdW5pdCAiCisgICAgICAgICAgICArICJ3aWxsIHByb2R1Y2UgYSBudW1iZXIgd2l0aCBmcm9tIG9uZSB0byB0aHJlZSBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsICIKKyAgICAgICAgICAgICsgInBvaW50LiAgRm9yIGV4YW1wbGUsIDIzMCwwMDAgaXMgZm9ybWF0dGVkIGFzIFwiMjMwIGttXCIuIiwKKworICAgICAgICAgICAgIkEgbW9yZSBjb21wbGljYXRlZCBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZS4gIEhlcmUsIGluIGFkZGl0aW9uIHRvICIKKyAgICAgICAgICAgICsgImhhbmRsaW5nIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIHZlcnNpb25zIG9mIHRoZSB3b3JkLCB0aGUgdmFsdWUgaXMgIgorICAgICAgICAgICAgKyAiZGVub21pbmF0ZWQgaW4gYnl0ZXMsIGtpbG9ieXRlcywgb3IgbWVnYWJ5dGVzIGRlcGVuZGluZyBvbiBpdHMgbWFnbml0dWRlLiAgIgorICAgICAgICAgICAgKyAiQWxzbyBub3RpY2UgdGhhdCBpdCBjb3JyZWN0bHkgdHJlYXRzIGEga2lsb2J5dGUgYXMgMSwwMjQgYnl0ZXMgKG5vdCAxLDAwMCksICIKKyAgICAgICAgICAgICsgImFuZCBhIG1lZ2FieXRlIGFzIDEsMDI0IGtpbG9ieXRlcyAobm90IDEsMDAwKS4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgaW4gZG96ZW5zIGFuZCBncm9zcy4gIFRoaXMgaXMgaW50ZW5kZWQgdG8gIgorICAgICAgICAgICAgKyAiZGVtb25zdHJhdGUgaG93IHRoaXMgcnVsZSBzZXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMgaW4gc3lzdGVtcyAiCisgICAgICAgICAgICArICJvdGhlciB0aGFuIGJhc2UgMTAuICBUaGUgXCIvMTJcIiBhZnRlciB0aGUgcnVsZXMnIGJhc2UgdmFsdWVzIGNvbnRyb2xzIHRoaXMuICAiCisgICAgICAgICAgICArICJBbHNvIG5vdGljZSB0aGF0IHRoZSBiYXNlIGRvZXNuJ3QgaGF2ZSB0byBiZSBjb25zaXN0ZW50IHRocm91Z2hvdXQgdGhlICIKKyAgICAgICAgICAgICsgIndob2xlIHJ1bGUgc2V0OiB3ZSBnbyBiYWNrIHRvIGJhc2UgMTAgZm9yIHZhbHVlcyBvdmVyIDEsMDAwLiIsCisKKyAgICAgICAgICAgICJUaGUgbmV4dCBmZXcgZXhhbXBsZXMgc2hvdyBob3cgYSBzaW5nbGUgdmFsdWUgY2FuIGJlIGRpdmlkZWQgdXAgaW50byBtYWpvciAiCisgICAgICAgICAgICArICJhbmQgbWlub3IgdW5pdHMgdGhhdCBkb24ndCByZWxhdGUgdG8gZWFjaCBvdGhlciBieSBhIGZhY3RvciBvZiAxMC4gICIKKyAgICAgICAgICAgICsgIlRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIHNlY29uZHMgaW4gc2V4YWdlc2ltYWwgbm90YXRpb24gIgorICAgICAgICAgICAgKyAiKGkuZS4sIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcykuICAld2l0aC13b3JkcyBmb3JtYXRzIGl0IHdpdGggIgorICAgICAgICAgICAgKyAid29yZHMgKDM3NDAgaXMgXCIxIGhvdXIsIDIgbWludXRlcywgMjAgc2Vjb25kc1wiKSBhbmQgJWluLW51bWVyYWxzICIKKyAgICAgICAgICAgICsgImZvcm1hdHMgaXQgZW50aXJlbHkgaW4gbnVtZXJhbHMgKDM3NDAgaXMgXCIxOjAyOjIwXCIpLiIsCisKKyAgICAgICAgICAgICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBvZiBob3VycyBpbiBzZXhhZ2VzaW1hbCBub3RhdGlvbiAoaS5lLiwgIgorICAgICAgICAgICAgKyAiaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzKS4gICV3aXRoLXdvcmRzIGZvcm1hdHMgdGhlIHZhbHVlIHVzaW5nICIKKyAgICAgICAgICAgICsgIndvcmRzIGZvciB0aGUgdW5pdHMsIGFuZCAlaW4tbnVtZXJhbHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcgb25seSAiCisgICAgICAgICAgICArICJudW1lcmFscy4iLAorCisgICAgICAgICAgICAiVGhpcyBydWxlIHNldCBmb3JtYXRzIGEgbnVtYmVyIG9mIHBvdW5kcyBhcyBwb3VuZHMsIHNoaWxsaW5ncywgYW5kICIKKyAgICAgICAgICAgICsgInBlbmNlIGluIHRoZSBvbGQgRW5nbGlzaCBzeXN0ZW0gb2YgY3VycmVuY3kuIiwKKworICAgICAgICAgICAgIlRoZXNlIGV4YW1wbGVzIHNob3cgaG93IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgIgorICAgICAgICAgICAgKyAibnVtYmVycyB1c2luZyBub24tcG9zaXRpb25hbCBudW1lcmF0aW9uIHN5c3RlbXMuICAiCisgICAgICAgICAgICArICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIGluIEFyYWJpYyBudW1lcmFscy4gICIKKyAgICAgICAgICAgICsgIk5vcm1hbGx5LCB5b3UnZCBkbyB0aGlzIHdpdGggRGVjaW1hbEZvcm1hdCwgYnV0IHRoaXMgc2hvd3MgdGhhdCAiCisgICAgICAgICAgICArICJSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGhhbmRsZSBpdCB0b28uIiwKKworICAgICAgICAgICAgIlRoaXMgZXhhbXBsZSBmb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgdGhlIEFyYWJpYy1udW1lcmFscyAiCisgICAgICAgICAgICArICJleGFtcGxlLCBidXQgdXNlcyB3b3JkcyBmb3IgdGhlIHZhcmlvdXMgZGlnaXRzIChlLmcuLCAxMjMgY29tZXMgIgorICAgICAgICAgICAgKyAib3V0IGFzIFwib25lIHR3byB0aHJlZVwiKS4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIGZvcm1hdHMgbnVtYmVycyB1c2luZyBDaGluZXNlIGNoYXJhY3RlcnMgaW4gdGhlIEFyYWJpYyAiCisgICAgICAgICAgICArICJwbGFjZS12YWx1ZSBtZXRob2QuICBUaGlzIHdhcyB1c2VkIGhpc3RvcmljYWxseSBpbiBDaGluYSBmb3IgYSB3aGlsZS4iLAorCisgICAgICAgICAgICAiUm9tYW4gbnVtZXJhbHMuICBUaGlzIGV4YW1wbGUgaGFzIHR3byB2YXJpYW50czogJW1vZGVybiBzaG93cyBob3cgbGFyZ2UgIgorICAgICAgICAgICAgKyAibnVtYmVycyBhcmUgdXN1YWxseSBoYW5kbGVkIHRvZGF5OyAlaGlzdG9yaWNhbCBzZXMgdGhlIG9sZGVyIHN5bWJvbHMgZm9yICIKKyAgICAgICAgICAgICsgInRob3VzYW5kcy4gIE5vdCBhbGwgb2YgdGhlIGNoYXJhY3RlcnMgYXJlIGRpc3BsYXlhYmxlIHdpdGggbW9zdCBmb250cy4iLAorCisgICAgICAgICAgICAiSGVicmV3IGFscGhhYmV0aWMgbnVtZXJhbHMuICBCZWZvcmUgYWRvcHRpb24gb2YgQXJhYmljIG51bWVyYWxzLCBIZWJyZXcgc3BlYWtlcnMgIgorICAgICAgICAgICAgKyAidXNlZCB0aGUgbGV0dGVyIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlIGZpcnN0IG5pbmUgbGV0dGVycyBvZiAiCisgICAgICAgICAgICArICJ0aGUgYWxwaGFiZXQgcmVwZXNlbnRlZCB0aGUgdmFsdWVzIGZyb20gMSB0byA5LCB0aGUgc2Vjb25kIG5pbmUgbGV0dGVycyB0aGUgIgorICAgICAgICAgICAgKyAibXVsdGlwbGVzIG9mIDEwLCBhbmQgdGhlIHJlbWFpbmluZyBsZXR0ZXJzIHRoZSBtdWx0aXBsZXMgb2YgMTAwLiAgU2luY2UgdGhleSAiCisgICAgICAgICAgICArICJyYW4gb3V0IG9mIGxldHRlcnMgYXQgNDAwLCB0aGUgcmVtYWluaW5nIG11bHRpcGxlcyBvZiAxMDAgd2VyZSByZXByZXNlbnRlZCAiCisgICAgICAgICAgICArICJ1c2luZyBjb21iaW5hdGlvbnMgb2YgdGhlIGV4aXN0aW5nIGxldHRlcnMgZm9yIHRoZSBodW5kcmVkcy4gIE51bWJlcnMgd2VyZSAiCisgICAgICAgICAgICArICJkaXN0aW5ndWlzaGVkIGZyb20gd29yZHMgaW4gYSBudW1iZXIgb2YgZGlmZmVyZW50IHdheXM6IHRoZSB3YXkgc2hvd24gaGVyZSAiCisgICAgICAgICAgICArICJ1c2VzIGEgc2luZ2xlIG1hcmsgYWZ0ZXIgYSBudW1iZXIgY29uc2lzdGluZyBvZiBvbmUgbGV0dGVyLCBhbmQgYSBkb3VibGUgIgorICAgICAgICAgICAgKyAibWFyayBiZXR3ZWVuIHRoZSBsYXN0IHR3byBsZXR0ZXJzIG9mIGEgbnVtYmVyIGNvbnNpc3Rpbmcgb2YgdHdvIG9yIG1vcmUgIgorICAgICAgICAgICAgKyAibGV0dGVycy4gIFR3byBkb3RzIG92ZXIgYSBsZXR0ZXIgbXVsdGlwbGllZCBpdHMgdmFsdWUgYnkgMSwwMDAuICBBbHNvLCBzaW5jZSAiCisgICAgICAgICAgICArICJ0aGUgbGV0dGVyIGZvciAxMCBpcyB0aGUgZmlyc3QgbGV0dGVyIG9mIEdvZCdzIG5hbWUgYW5kIHRoZSBsZXR0ZXJzIGZvciA1IGFuZCA2ICIKKyAgICAgICAgICAgICsgImFyZSBsZXR0ZXJzIGluIEdvZCdzIG5hbWUsIHdoaWNoIHdhc24ndCBzdXBwb3NlZCB0byBiZSB3cml0dGVuIG9yIHNwb2tlbiwgMTUgYW5kICIKKyAgICAgICAgICAgICsgIjE2IHdlcmUgdXN1YWxseSB3cml0dGVuIGFzIDkgKyA2IGFuZCA5ICsgNyBpbnN0ZWFkIG9mIDEwICsgNSBhbmQgMTAgKyA2LiIsCisKKyAgICAgICAgICAgICJHcmVlayBhbHBoYWJldGljIG51bWVyYWxzLiAgVGhlIEdyZWVrcywgYmVmb3JlIGFkb3B0aW5nIHRoZSBBcmFiaWMgbnVtZXJhbHMsICIKKyAgICAgICAgICAgICsgImFsc28gdXNlZCB0aGUgbGV0dGVycyBvZiB0aGVpciBhbHBoYWJldCBhcyBudW1lcmFscy4gIFRoZXJlIGFyZSB0aHJlZSBub3ctIgorICAgICAgICAgICAgKyAib2Jzb2xldGUgR3JlZWsgbGV0dGVycyB0aGF0IGFyZSB1c2VkIGFzIG51bWVyYWxzOyBtYW55IGZvbnRzIGRvbid0IGhhdmUgdGhlbS4gICIKKyAgICAgICAgICAgICsgIkxhcmdlIG51bWJlcnMgd2VyZSBoYW5kbGVkIG1hbnkgZGlmZmVyZW50IHdheXM7IHRoZSB3YXkgc2hvd24gaGVyZSBkaXZpZGVzICIKKyAgICAgICAgICAgICsgImxhcmdlIG51bWJlcnMgaW50byBncm91cHMgb2YgZm91ciBsZXR0ZXJzIChmYWN0b3JzIG9mIDEwLDAwMCksIGFuZCBzZXBhcmF0ZXMgIgorICAgICAgICAgICAgKyAidGhlIGdyb3VwcyB3aXRoIHRoZSBjYXBpdGFsIGxldHRlciBtdSAoZm9yIG15cmlhZCkuICBDYXBpdGFsIGxldHRlcnMgYXJlIHVzZWQgIgorICAgICAgICAgICAgKyAiZm9yIHZhbHVlcyBiZWxvdyAxMCwwMDA7IHNtYWxsIGxldHRlcnMgZm9yIGhpZ2hlciBudW1iZXJzICh0byBtYWtlIHRoZSBjYXBpdGFsICIKKyAgICAgICAgICAgICsgIm11IHN0YW5kIG91dCkuIiwKKworICAgICAgICAgICAgIlRoaXMgaXMgYSBjdXN0b20gKHVzZXItZGVmaW5lZCkgcnVsZSBzZXQuIgorICAgICAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhhMDUwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGRlbW8gYXBwbGlhdGlvbi4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdGltZXNjYWxlL1Bpdm90RGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RpbWVzY2FsZS9QaXZvdERlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjcxYzA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RpbWVzY2FsZS9QaXZvdERlbW8uamF2YQpAQCAtMCwwICsxLDg0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50aW1lc2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlOworCisvKioKKyAqIFRoaXMgY2xhc3MgZGVtb25zdHJhdGVzIGhvdyB0byB1c2UgPGNvZGU+VW5pdmVyc2FsVGltZVNjYWxlPC9jb2RlPiB0bworICogY29udmVydCBmcm9tIG9uZSBsb2NhbCB0aW1lIHNjYWxlIHRvIGFub3RoZXIuCisgKiAKKyAqIEBzZWUgVW5pdmVyc2FsVGltZVNjYWxlCisgKiAKKyAqIEBkcmFmdCBJQ1UgMy4yCisgKi8KK3B1YmxpYyBjbGFzcyBQaXZvdERlbW8geworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgUGl2b3REZW1vKCkKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIDxjb2RlPm1haW4oKTwvY29kZT4gbWV0aG9kIHVzZXMgPGNvZGU+VW5pdmVyc2FsVGltZVNjYWxlPC9jb2RlPiB0bworICAgICAqIGNvbnZlcnQgZnJvbSB0aGUgSmF2YSBhbmQgVW5peCB0aW1lIHNjYWxlcyB0byB0aGUgSUNVIHRpbWUgc2NhbGUuIEl0IHVzZXMKKyAgICAgKiBhIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgdG8gZGlzcGxheSB0aGUgSUNVIHRpbWUgdmFsdWVzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBhcmdzIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIFRpbWVab25lIHV0YyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHV0YywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MX0gPSB7MCwgZGF0ZSwgZnVsbH0gezAsIHRpbWUsIGZ1bGx9Iik7CisgICAgICAgIE9iamVjdCBhcmd1bWVudHNbXSA9IHtjYWwsIG51bGx9OworICAgICAgICAKKyAgICAgICAgYXJndW1lbnRzWzBdID0gY2FsOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkphdmEgdGVzdDoiKTsKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDAsIFVuaXZlcnNhbFRpbWVTY2FsZS5KQVZBX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiIDAwMDAwMDAwMDAwMDAwMCI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKC02MjE2NDY4NDgwMDAwMEwsIFVuaXZlcnNhbFRpbWVTY2FsZS5KQVZBX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiLTYyMTY0Njg0ODAwMDAwTCI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKC02MjEzNTc2OTYwMDAwMEwsIFVuaXZlcnNhbFRpbWVTY2FsZS5KQVZBX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiLTYyMTM1NzY5NjAwMDAwTCI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblVuaXggdGVzdDoiKTsKKyAgICAgICAgCisgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXMoVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSgweDgwMDAwMDAwLCBVbml2ZXJzYWxUaW1lU2NhbGUuVU5JWF9USU1FKSwgVW5pdmVyc2FsVGltZVNjYWxlLklDVTRDX1RJTUUpKTsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gIjB4ODAwMDAwMDAiOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm10LmZvcm1hdChhcmd1bWVudHMpKTsKKyAgICAgICAgCisgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXMoVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSgwLCBVbml2ZXJzYWxUaW1lU2NhbGUuVU5JWF9USU1FKSwgVW5pdmVyc2FsVGltZVNjYWxlLklDVTRDX1RJTUUpKTsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gIjB4MDAwMDAwMDAiOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm10LmZvcm1hdChhcmd1bWVudHMpKTsKKyAgICAgICAgCisgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXMoVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSgweDdGRkZGRkZGLCBVbml2ZXJzYWxUaW1lU2NhbGUuVU5JWF9USU1FKSwgVW5pdmVyc2FsVGltZVNjYWxlLklDVTRDX1RJTUUpKTsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gIjB4N0ZGRkZGRkYiOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm10LmZvcm1hdChhcmd1bWVudHMpKTsKKyAgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2YxYWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyOTkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgQW55VHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBwcml2YXRlIFN0cmluZyB0YXJnZXROYW1lOworICAgIHByaXZhdGUgUnVuSXRlcmF0b3IgaXQ7CisgICAgcHJpdmF0ZSBQb3NpdGlvbiBydW47CisgICAgCisgICAgCisgICAgcHVibGljIEFueVRyYW5zbGl0ZXJhdG9yKFN0cmluZyB0YXJnZXROYW1lLCBVbmljb2RlRmlsdGVyIGZpbHRlciwgUnVuSXRlcmF0b3IgaXQpeworICAgICAgICBzdXBlcigiQW55LSIgKyB0YXJnZXROYW1lLCBmaWx0ZXIpOworICAgICAgICB0aGlzLnRhcmdldE5hbWUgPSB0YXJnZXROYW1lOworICAgICAgICB0aGlzLml0ID0gaXQ7CisgICAgICAgIHJ1biA9IG5ldyBQb3NpdGlvbigpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQW55VHJhbnNsaXRlcmF0b3IoU3RyaW5nIHRhcmdldE5hbWUsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKXsKKyAgICAgICAgdGhpcyh0YXJnZXROYW1lLCBmaWx0ZXIsIG5ldyBTY3JpcHRSdW5JdGVyYXRvcigpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFx1MDAyMC1cXHUwMDdFXSBoZXgiKTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi0gaGFuZGxlVHJhbnNsaXRlcmF0ZSAiICsgaGV4LnRyYW5zbGl0ZXJhdGUodGV4dC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICsgIiwgIiArIHRvU3RyaW5nKG9mZnNldHMpKTsKKyAgICAgICAgfQorICAgICAgICBpdC5yZXNldCh0ZXh0LCBvZmZzZXRzKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChpdC5uZXh0KHJ1bikpIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXROYW1lLmVxdWFsc0lnbm9yZUNhc2UoaXQuZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTa2lwcGluZyBpZGVudGljYWw6ICIgKyB0YXJnZXROYW1lKTsKKyAgICAgICAgICAgICAgICBydW4uc3RhcnQgPSBydW4ubGltaXQ7IC8vIHNob3cgd2UgcHJvY2Vzc2VkCisgICAgICAgICAgICAgICAgY29udGludWU7IC8vIHNraXAgaWYgc2FtZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworICAgICAgICAgICAgU3RyaW5nIGlkID0gaXQuZ2V0TmFtZSgpICsgJy0nICsgdGFyZ2V0TmFtZTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBmaW5kOiAiICsgaWQgKyAiLCBUcnlpbmcgTGF0aW4gYXMgUGl2b3QiKTsKKyAgICAgICAgICAgICAgICBpZCA9IGl0LmdldE5hbWUoKSArICItTGF0aW47IExhdGluLSIgKyB0YXJnZXROYW1lOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4MikgeworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQ291bGRuJ3QgZmluZDogIiArIGlkKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gVE9ETyBjYXRjaCBlcnJvciBsYXRlciEhCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odC5nZXRJRCgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImlucHV0OiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUodGV4dC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICArICIsICIgKyB0b1N0cmluZyhydW4pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGlzSW5jcmVtZW50YWwgJiYgaXQuYXRFbmQoKSkgeworICAgICAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXh0LCBydW4pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbih0ZXh0LCBydW4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWRqdXN0IHRoZSBvZmZzZXRzIGluIGxpbmUgd2l0aCB0aGUgY2hhbmdlcworICAgICAgICAgICAgaXQuYWRqdXN0KHJ1bi5saW1pdCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUodGV4dC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICArICIsICIgKyB0b1N0cmluZyhydW4pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHNob3cgaG93IGZhciB3ZSBnb3QhCisgICAgICAgIGl0LmdldEV4cGFuc2Uob2Zmc2V0cyk7CisgICAgICAgIGlmIChydW4uc3RhcnQgPT0gcnVuLmxpbWl0KSBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICAgICAgZWxzZSBvZmZzZXRzLnN0YXJ0ID0gcnVuLnN0YXJ0OworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKyBoYW5kbGVUcmFuc2xpdGVyYXRlOiAiICsgIiwgIiArIHRvU3RyaW5nKG9mZnNldHMpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHNob3VsZCBiZSBtZXRob2Qgb24gUG9zaXRpb24KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhQb3NpdGlvbiBvZmZzZXRzKSB7CisgICAgICAgIHJldHVybiAiW2NzOiAiICsgb2Zmc2V0cy5jb250ZXh0U3RhcnQKKyAgICAgICAgICAgICAgICArICIsIHM6ICIgKyBvZmZzZXRzLnN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBsOiAiICsgb2Zmc2V0cy5saW1pdAorICAgICAgICAgICAgICAgICsgIiwgY2w6ICIgKyBvZmZzZXRzLmNvbnRleHRMaW1pdAorICAgICAgICAgICAgICAgICsgIl0iOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50ZXJmYWNlIFJ1bkl0ZXJhdG9yIHsKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gZXhwYW5zZSk7CisgICAgICAgIHB1YmxpYyB2b2lkIGdldEV4cGFuc2UoUG9zaXRpb24gcnVuKTsKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoKTsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gbmV4dChQb3NpdGlvbiBydW4pOworICAgICAgICBwdWJsaWMgdm9pZCBnZXRDdXJyZW50KFBvc2l0aW9uIHJ1bik7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpOworICAgICAgICBwdWJsaWMgdm9pZCBhZGp1c3QoaW50IG5ld0N1cnJlbnRMaW1pdCk7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGF0RW5kKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzZXJpZXMgb2YgcmFuZ2VzIGNvcnJlc3BvbmRpbmcgdG8gc2NyaXB0cy4gVGhleSB3aWxsIGJlIG9mIHRoZSBmb3JtOgorICAgICAqIGNjY2NTU2NTU2NjY2NUVGNUY2NjYyAgICAtIHdoZXJlIGMgaXMgY29tbW9uLCBTIGlzIHRoZSBmaXJzdCBzY3JpcHQgYW5kIFQgaXMgdGhlIHNlY29uZAorICAgICAqfCAgICAgICAgICAgIHwgICAgICAgICAgICAtIGZpcnN0IHJ1bgorICAgICAqICAgICAgICAgfCAgICAgICAgICAgIHwgICAgLSBzZWNvbmQgcnVuCisgICAgICogVGhhdCBpcywgdGhlIHJ1bnMgd2lsbCBvdmVybGFwLiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHNvIHRoYXQgYSB0cmFuc2xpdGVyYXRvciBjYW4KKyAgICAgKiBjb25zaWRlciBjb21tb24gY2hhcmFjdGVycyBib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHNjcmlwdHMuCisgICAgICogVGhlIG9ubHkgdGltZSB0aGF0IGNvbnRleHRTdGFydCAhPSBzdGFydCBpcyBmb3IgdGhlIGZpcnN0IHJ1biAKKyAgICAgKiAgICAodGhlIGNvbnRleHQgaXMgdGhlIHN0YXJ0IGNvbnRleHQgb2YgdGhlIGVudGlyZSBleHBhbnNlKQorICAgICAqIFRoZSBvbmx5IHRpbWUgdGhhdCBjb250ZXh0TGltaXQgIT0gbGltaXQgaXMgZm9yIHRoZSBsYXN0IHJ1biAKKyAgICAgKiAgICAodGhlIGNvbnRleHQgaXMgdGhlIGVuZCBjb250ZXh0IG9mIHRoZSBlbnRpcmUgZXhwYW5zZSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNjcmlwdFJ1bkl0ZXJhdG9yIGltcGxlbWVudHMgUnVuSXRlcmF0b3IgeworICAgICAgICBwcml2YXRlIFJlcGxhY2VhYmxlIHRleHQ7CisgICAgICAgIHByaXZhdGUgUG9zaXRpb24gZXhwYW5zZSA9IG5ldyBQb3NpdGlvbigpOworICAgICAgICBwcml2YXRlIFBvc2l0aW9uIGN1cnJlbnQgPSBuZXcgUG9zaXRpb24oKTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgc2NyaXB0OworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZG9uZSA9IHRydWU7CisgICAgICAgIAorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KFJlcGxhY2VhYmxlIHRleHQsIFBvc2l0aW9uIGV4cGFuc2UpIHsKKyAgICAgICAgICAgIHNldCh0aGlzLmV4cGFuc2UsIGV4cGFuc2UpOworICAgICAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgICAgIC8vdGhpcy5leHBhbnNlID0gZXhwYW5zZTsKKyAgICAgICAgICAgIHNjcmlwdCA9IFVTY3JpcHQuSU5WQUxJRF9DT0RFOworICAgICAgICAgICAgLy8gc2V0IHVwIGZpcnN0IHJhbmdlIHRvIGJlIGVtcHR5LCBhdCBiZWdpbm5pbmcKKyAgICAgICAgICAgIGN1cnJlbnQuY29udGV4dFN0YXJ0ID0gZXhwYW5zZS5jb250ZXh0U3RhcnQ7CisgICAgICAgICAgICBjdXJyZW50LnN0YXJ0ID0gY3VycmVudC5saW1pdCA9IGN1cnJlbnQuY29udGV4dExpbWl0ID0gZXhwYW5zZS5zdGFydDsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIG5leHQoUG9zaXRpb24gcnVuKSB7CisgICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIrY3M6ICIgKyBjdXJyZW50LmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICAgICArICIsIHM6ICIgKyBjdXJyZW50LnN0YXJ0CisgICAgICAgICAgICAgICAgICAgICsgIiwgbDogIiArIGN1cnJlbnQubGltaXQKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBjbDogIiArIGN1cnJlbnQuY29udGV4dExpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHJlc2V0IHN0YXJ0IGNvbnRleHQgcnVuIHRvIHRoZSBsYXN0IGVuZAorICAgICAgICAgICAgY3VycmVudC5zdGFydCA9IGN1cnJlbnQubGltaXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFBoYXNlIDEuIEJhY2t1cCB0aGUgU1RBUlQgdmFsdWUgdGhyb3VnaCBDT01NT04gdW50aWwgd2UgZ2V0IHRvIGV4cGFuc2Uuc3RhcnQgb3IgYSByZWFsIHNjcmlwdC4KKyAgICAgICAgICAgIGludCBpLCBjcDsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGV4cGFuc2Uuc3RhcnQ7CisgICAgICAgICAgICBmb3IgKGkgPSBjdXJyZW50LnN0YXJ0OyBpID4gbGltaXQ7IGkgLT0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gdGV4dC5jaGFyMzJBdChpKTsKKyAgICAgICAgICAgICAgICBpbnQgc2NyaXB0ID0gVVNjcmlwdC5nZXRTY3JpcHQoY3ApOworICAgICAgICAgICAgICAgIGlmIChzY3JpcHQgIT0gVVNjcmlwdC5DT01NT04gJiYgc2NyaXB0ICE9IFVTY3JpcHQuSU5IRVJJVEVEKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnQuc3RhcnQgPSBpOworICAgICAgICAgICAgY3VycmVudC5jb250ZXh0U3RhcnQgPSAoaSA9PSBsaW1pdCkgPyBleHBhbnNlLmNvbnRleHRTdGFydCA6IGk7IC8vIGV4dGVuZCBhdCBzdGFydAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBQSEFTRSAyLiBNb3ZlIHVwIHRoZSBMSU1JVCB2YWx1ZSB0aHJvdWdoIENPTU1PTiBvciBzaW5nbGUgc2NyaXB0IHVudGlsIHdlIGdldCB0byBleHBhbnNlLmxpbWl0CisgICAgICAgICAgICBpbnQgbGFzdFNjcmlwdCA9IFVTY3JpcHQuQ09NTU9OOworICAgICAgICAgICAgLy9pbnQgdmVyeUxhc3RTY3JpcHQgPSBVU2NyaXB0LkNPTU1PTjsKKyAgICAgICAgICAgIGxpbWl0ID0gZXhwYW5zZS5saW1pdDsgCisgICAgICAgICAgICBmb3IgKGkgPSBjdXJyZW50LmxpbWl0OyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gdGV4dC5jaGFyMzJBdChpKTsKKyAgICAgICAgICAgICAgICBpbnQgc2NyaXB0ID0gVVNjcmlwdC5nZXRTY3JpcHQoY3ApOworICAgICAgICAgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5JTkhFUklURUQpIHNjcmlwdCA9IFVTY3JpcHQuQ09NTU9OOworICAgICAgICAgICAgICAgIGlmIChzY3JpcHQgIT0gVVNjcmlwdC5DT01NT04pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgZmluZCBhIHJlYWwgc2NyaXB0OgorICAgICAgICAgICAgICAgICAgICAvLyAgIGlmIHdlIGFscmVhZHkgaGFkIGEgc2NyaXB0LCBiYWlsCisgICAgICAgICAgICAgICAgICAgIC8vICAgb3RoZXJ3aXNlIHNldCBvdXIgc2NyaXB0CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0U2NyaXB0ID09IFVTY3JpcHQuQ09NTU9OKSBsYXN0U2NyaXB0ID0gc2NyaXB0OworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXN0U2NyaXB0ICE9IHNjcmlwdCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudC5saW1pdCA9IGk7CisgICAgICAgICAgICBjdXJyZW50LmNvbnRleHRMaW1pdCA9IChpID09IGxpbWl0KSA/IGV4cGFuc2UuY29udGV4dExpbWl0IDogaTsgLy8gZXh0ZW5kIGF0IGVuZAorICAgICAgICAgICAgZG9uZSA9IChpID09IGxpbWl0KTsKKyAgICAgICAgICAgIHNjcmlwdCA9IGxhc3RTY3JpcHQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLWNzOiAiICsgY3VycmVudC5jb250ZXh0U3RhcnQKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBzOiAiICsgY3VycmVudC5zdGFydAorICAgICAgICAgICAgICAgICAgICArICIsIGw6ICIgKyBjdXJyZW50LmxpbWl0CisgICAgICAgICAgICAgICAgICAgICsgIiwgY2w6ICIgKyBjdXJyZW50LmNvbnRleHRMaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldChydW4sIGN1cnJlbnQpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNIT1VMRCBCRSBNRVRIT0QgT04gUE9TSVRJT04KKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldChQb3NpdGlvbiBydW4sIFBvc2l0aW9uIGN1cnJlbnQpIHsKKyAgICAgICAgICAgIHJ1bi5jb250ZXh0U3RhcnQgPSBjdXJyZW50LmNvbnRleHRTdGFydDsKKyAgICAgICAgICAgIHJ1bi5zdGFydCA9IGN1cnJlbnQuc3RhcnQ7CisgICAgICAgICAgICBydW4ubGltaXQgPSBjdXJyZW50LmxpbWl0OworICAgICAgICAgICAgcnVuLmNvbnRleHRMaW1pdCA9IGN1cnJlbnQuY29udGV4dExpbWl0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhdEVuZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50LmxpbWl0ID09IGV4cGFuc2UubGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGdldEN1cnJlbnQoUG9zaXRpb24gcnVuKSB7CisgICAgICAgICAgICBzZXQocnVuLCBjdXJyZW50KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgZ2V0RXhwYW5zZShQb3NpdGlvbiBydW4pIHsKKyAgICAgICAgICAgIHNldChydW4sIGV4cGFuc2UpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gVVNjcmlwdC5nZXROYW1lKHNjcmlwdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFkanVzdChpbnQgbmV3Q3VycmVudExpbWl0KSB7CisgICAgICAgICAgICBpZiAoZXhwYW5zZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTXVzdCByZXNldCgpIGJlZm9yZSBjYWxsaW5nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgZGVsdGEgPSBuZXdDdXJyZW50TGltaXQgLSBjdXJyZW50LmxpbWl0OworICAgICAgICAgICAgY3VycmVudC5saW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgIGN1cnJlbnQuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgZXhwYW5zZS5saW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgIGV4cGFuc2UuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyByZWdpc3RlciBBbnktU2NyaXB0IGZvciBldmVyeSBzY3JpcHQuCisgICAgICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyBTZXQgc2NyaXB0TGlzdCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJBbnlUb1NjcmlwdCgpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAoc2NyaXB0TGlzdCkgeworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIHNvdXJjZXMgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVTb3VyY2VzKCk7CisgICAgICAgICAgICAgICAgd2hpbGUoc291cmNlcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZykgc291cmNlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLmVxdWFscygiQW55IikpIGNvbnRpbnVlOyAvLyB0byBrZWVwIGZyb20gbG9vcGluZworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gdGFyZ2V0cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUodGFyZ2V0cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHRhcmdldHMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVU2NyaXB0LmdldENvZGUodGFyZ2V0KSA9PSBudWxsKSBjb250aW51ZTsgLy8gU0tJUCB1bmxlc3Mgd2UgaGF2ZSBhIHNjcmlwdCAob3IgbG9jYWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjcmlwdExpc3QuY29udGFpbnModGFyZ2V0KSkgY29udGludWU7IC8vIGFscmVhZHkgZW5jb3VudGVyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdExpc3QuYWRkKHRhcmdldCk7IC8vIG90aGVyd2lzZSBhZGQgZm9yIGxhdGVyIHRlc3RpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHZhcmlhbnRTZXQgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVmFyaWFudHMoc291cmNlLCB0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50U2V0LnNpemUoKSA8IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnlUcmFuc2xpdGVyYXRvciBhdCA9IG5ldyBBbnlUcmFuc2xpdGVyYXRvcih0YXJnZXQsIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciB2YXJpYW50cyA9IHZhcmlhbnRTZXQuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSh2YXJpYW50cy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAoU3RyaW5nKSB2YXJpYW50cy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhcmlhbnQubGVuZ3RoKCkgPiAwKSA/IHRhcmdldCArICIvIiArIHZhcmlhbnQgOiB0YXJnZXQsIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEdW1teUZhY3RvcnkuYWRkKGF0LmdldElEKCksIGF0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjbGFzcyBEdW1teUZhY3RvcnkgaW1wbGVtZW50cyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IHsKKyAgICAgICAgICAgIHN0YXRpYyBEdW1teUZhY3Rvcnkgc2luZ2xldG9uID0gbmV3IER1bW15RmFjdG9yeSgpOworICAgICAgICAgICAgc3RhdGljIEhhc2hNYXAgbSA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgICAgIC8vIFNpbmNlIFRyYW5zbGl0ZXJhdG9ycyBhcmUgaW1tdXRhYmxlLCB3ZSBkb24ndCBoYXZlIHRvIGNsb25lIG9uIHNldCAmIGdldAorICAgICAgICAgICAgc3RhdGljIHZvaWQgYWRkKFN0cmluZyBJRCwgVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAgICAgICAgIG0ucHV0KElELCB0KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyaW5nOiAiICsgSUQgKyAiLCAiICsgdC50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSUQsIHNpbmdsZXRvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgbS5nZXQoSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBOaWNlIGxpdHRsZSBVdGlsaXR5IGZvciBjb252ZXJ0aW5nIEVudW1lcmF0aW9uIHRvIGNvbGxlY3Rpb24KKyAgICAgICAgc3RhdGljIFNldCBhZGQoU2V0IHMsIEVudW1lcmF0aW9uIGVudW1lcmF0aW9uKSB7CisgICAgICAgICAgICB3aGlsZShlbnVtZXJhdGlvbi5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIHMuYWRkKGVudW1lcmF0aW9uLm5leHRFbGVtZW50KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9DYXNlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9DYXNlSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzJlMjFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0Nhc2VJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTU1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorICogSW5jcmVtZW50YWxseSByZXR1cm5zIHRoZSBzZXQgb2YgYWxsIHN0cmluZ3MgdGhhdCBjYXNlLWZvbGQgdG8gdGhlIHNhbWUgdmFsdWUuCisgKi8KK3B1YmxpYyBjbGFzcyBDYXNlSXRlcmF0b3IgeworICAgIAorICAgIC8vIHRlc3Rpbmcgc3R1ZmYKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gdHJ1ZTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9OYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIls6XmFzY2lpOl0gQW55LU5hbWUiKTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9IZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiWzpeYXNjaWk6XSBBbnktSGV4Iik7CisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHRvSGV4MiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbW15cdTAwMjEtXHUwMDdGXS1bLF1dIEFueS1IZXgiKTsKKyAgICAKKyAgICAvLyBnbG9iYWwgdGFibGVzIChjb3VsZCBiZSBwcmVjb21waWxlZCkKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgZnJvbUNhc2VGb2xkID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgdG9DYXNlRm9sZCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1heExlbmd0aCA9IDA7CisgICAgCisgICAgLy8gVGhpcyBleGNlcHRpb24gbGlzdCBpcyBnZW5lcmF0ZWQgb24gdGhlIGNvbnNvbGUgYnkgdHVybmluZyBvbiB0aGUgR0VORVJBVEVEIGZsYWcsIAorICAgIC8vIHdoaWNoIE1VU1QgYmUgZmFsc2UgZm9yIG5vcm1hbCBvcGVyYXRpb24uCisgICAgLy8gT25jZSB0aGUgbGlzdCBpcyBnZW5lcmF0ZWQsIGl0IGlzIHBhc3RlZCBpbiBoZXJlLgorICAgIC8vIEEgYml0IG9mIGEgY2x1ZGdlLCBidXQgdGhpcyBib290c3RyYXBwaW5nIGlzIHRoZSBlYXNpZXN0IHdheSAKKyAgICAvLyB0byBnZXQgYXJvdW5kIGNlcnRhaW4gY29tcGxpY2F0aW9ucyBpbiB0aGUgZGF0YS4KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIEdFTkVSQVRFID0gZmFsc2U7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERVTVAgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXVtdIGV4Y2VwdGlvbkxpc3QgPSB7CisgICAgICAgIC8vIGFcTntNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HfQorICAgICAgICB7ImFcdTAyQkUiLCJBXHUwMkJFIiwiYVx1MDJCRSIsfSwKKyAgICAgICAgLy8gZmYKKyAgICAgICAgeyJmZiIsIkZGIiwiRmYiLCJmRiIsImZmIix9LAorICAgICAgICAvLyBmZmkKKyAgICAgICAgeyJmZmkiLCJGRkkiLCJGRmkiLCJGZkkiLCJGZmkiLCJGXHVGQjAxIiwiZkZJIiwiZkZpIiwiZmZJIiwiZmZpIiwiZlx1RkIwMSIsIlx1RkIwMEkiLCJcdUZCMDBpIix9LAorICAgICAgICAvLyBmZmwKKyAgICAgICAgeyJmZmwiLCJGRkwiLCJGRmwiLCJGZkwiLCJGZmwiLCJGXHVGQjAyIiwiZkZMIiwiZkZsIiwiZmZMIiwiZmZsIiwiZlx1RkIwMiIsIlx1RkIwMEwiLCJcdUZCMDBsIix9LAorICAgICAgICAvLyBmaQorICAgICAgICB7ImZpIiwiRkkiLCJGaSIsImZJIiwiZmkiLH0sCisgICAgICAgIC8vIGZsCisgICAgICAgIHsiZmwiLCJGTCIsIkZsIiwiZkwiLCJmbCIsfSwKKyAgICAgICAgLy8gaFxOe0NPTUJJTklORyBNQUNST04gQkVMT1d9CisgICAgICAgIHsiaFx1MDMzMSIsIkhcdTAzMzEiLCJoXHUwMzMxIix9LAorICAgICAgICAvLyBpXE57Q09NQklOSU5HIERPVCBBQk9WRX0KKyAgICAgICAgeyJpXHUwMzA3IiwiSVx1MDMwNyIsImlcdTAzMDciLH0sCisgICAgICAgIC8vIGpcTntDT01CSU5JTkcgQ0FST059CisgICAgICAgIHsialx1MDMwQyIsIkpcdTAzMEMiLCJqXHUwMzBDIix9LAorICAgICAgICAvLyBzcworICAgICAgICB7InNzIiwiU1MiLCJTcyIsIlNcdTAxN0YiLCJzUyIsInNzIiwic1x1MDE3RiIsIlx1MDE3RlMiLCJcdTAxN0ZzIiwiXHUwMTdGXHUwMTdGIix9LAorICAgICAgICAvLyBzdAorICAgICAgICB7InN0IiwiU1QiLCJTdCIsInNUIiwic3QiLCJcdTAxN0ZUIiwiXHUwMTdGdCIsfSwKKyAgICAgICAgLy8gdFxOe0NPTUJJTklORyBESUFFUkVTSVN9CisgICAgICAgIHsidFx1MDMwOCIsIlRcdTAzMDgiLCJ0XHUwMzA4Iix9LAorICAgICAgICAvLyB3XE57Q09NQklOSU5HIFJJTkcgQUJPVkV9CisgICAgICAgIHsid1x1MDMwQSIsIldcdTAzMEEiLCJ3XHUwMzBBIix9LAorICAgICAgICAvLyB5XE57Q09NQklOSU5HIFJJTkcgQUJPVkV9CisgICAgICAgIHsieVx1MDMwQSIsIllcdTAzMEEiLCJ5XHUwMzBBIix9LAorICAgICAgICAvLyBcTntNT0RJRklFUiBMRVRURVIgQVBPU1RST1BIRX1uCisgICAgICAgIHsiXHUwMkJDbiIsIlx1MDJCQ04iLCJcdTAyQkNuIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBUT05PU31cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQUNcdTAzQjkiLCJcdTAzODZcdTAzNDUiLCJcdTAzODZcdTAzOTkiLCJcdTAzODZcdTAzQjkiLCJcdTAzODZcdTFGQkUiLCJcdTAzQUNcdTAzNDUiLCJcdTAzQUNcdTAzOTkiLCJcdTAzQUNcdTAzQjkiLCJcdTAzQUNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBUT05PU31cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQUVcdTAzQjkiLCJcdTAzODlcdTAzNDUiLCJcdTAzODlcdTAzOTkiLCJcdTAzODlcdTAzQjkiLCJcdTAzODlcdTFGQkUiLCJcdTAzQUVcdTAzNDUiLCJcdTAzQUVcdTAzOTkiLCJcdTAzQUVcdTAzQjkiLCJcdTAzQUVcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0IxXHUwMzQyIiwiXHUwMzkxXHUwMzQyIiwiXHUwM0IxXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCMVx1MDM0Mlx1MDNCOSIsIlx1MDM5MVx1MDM0Mlx1MDM0NSIsIlx1MDM5MVx1MDM0Mlx1MDM5OSIsIlx1MDM5MVx1MDM0Mlx1MDNCOSIsIlx1MDM5MVx1MDM0Mlx1MUZCRSIsCisgICAgICAgICAgICAiXHUwM0IxXHUwMzQyXHUwMzQ1IiwiXHUwM0IxXHUwMzQyXHUwMzk5IiwiXHUwM0IxXHUwMzQyXHUwM0I5IiwiXHUwM0IxXHUwMzQyXHUxRkJFIiwiXHUxRkI2XHUwMzQ1IiwKKyAgICAgICAgICAgICJcdTFGQjZcdTAzOTkiLCJcdTFGQjZcdTAzQjkiLCJcdTFGQjZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjFcdTAzQjkiLCJcdTAzOTFcdTAzNDUiLCJcdTAzOTFcdTAzOTkiLCJcdTAzOTFcdTAzQjkiLCJcdTAzOTFcdTFGQkUiLCJcdTAzQjFcdTAzNDUiLCJcdTAzQjFcdTAzOTkiLCJcdTAzQjFcdTAzQjkiLCJcdTAzQjFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCN1x1MDM0MiIsIlx1MDM5N1x1MDM0MiIsIlx1MDNCN1x1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0I3XHUwMzQyXHUwM0I5IiwiXHUwMzk3XHUwMzQyXHUwMzQ1IiwiXHUwMzk3XHUwMzQyXHUwMzk5IiwiXHUwMzk3XHUwMzQyXHUwM0I5IiwiXHUwMzk3XHUwMzQyXHUxRkJFIiwKKyAgICAgICAgICAgICJcdTAzQjdcdTAzNDJcdTAzNDUiLCJcdTAzQjdcdTAzNDJcdTAzOTkiLCJcdTAzQjdcdTAzNDJcdTAzQjkiLCJcdTAzQjdcdTAzNDJcdTFGQkUiLCJcdTFGQzZcdTAzNDUiLCJcdTFGQzZcdTAzOTkiLAorICAgICAgICAgICAgIlx1MUZDNlx1MDNCOSIsIlx1MUZDNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjdcdTAzQjkiLCJcdTAzOTdcdTAzNDUiLCJcdTAzOTdcdTAzOTkiLCJcdTAzOTdcdTAzQjkiLCJcdTAzOTdcdTFGQkUiLCJcdTAzQjdcdTAzNDUiLCJcdTAzQjdcdTAzOTkiLCJcdTAzQjdcdTAzQjkiLCJcdTAzQjdcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQjlcdTAzMDhcdTAzMDAiLCJcdTAzNDVcdTAzMDhcdTAzMDAiLCJcdTAzOTlcdTAzMDhcdTAzMDAiLCJcdTAzQjlcdTAzMDhcdTAzMDAiLCJcdTFGQkVcdTAzMDhcdTAzMDAiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQjlcdTAzMDhcdTAzMDEiLCJcdTAzNDVcdTAzMDhcdTAzMDEiLCJcdTAzOTlcdTAzMDhcdTAzMDEiLCJcdTAzQjlcdTAzMDhcdTAzMDEiLCJcdTFGQkVcdTAzMDhcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDM0MiIsIlx1MDM0NVx1MDMwOFx1MDM0MiIsIlx1MDM5OVx1MDMwOFx1MDM0MiIsIlx1MDNCOVx1MDMwOFx1MDM0MiIsIlx1MUZCRVx1MDMwOFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCOVx1MDM0MiIsIlx1MDM0NVx1MDM0MiIsIlx1MDM5OVx1MDM0MiIsIlx1MDNCOVx1MDM0MiIsIlx1MUZCRVx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFJIT31cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9CisgICAgICAgIHsiXHUwM0MxXHUwMzEzIiwiXHUwM0ExXHUwMzEzIiwiXHUwM0MxXHUwMzEzIiwiXHUwM0YxXHUwMzEzIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBHUkFWRSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzA4XHUwMzAwIiwiXHUwM0E1XHUwMzA4XHUwMzAwIiwiXHUwM0M1XHUwMzA4XHUwMzAwIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzA4XHUwMzAxIiwiXHUwM0E1XHUwMzA4XHUwMzAxIiwiXHUwM0M1XHUwMzA4XHUwMzAxIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzNDIiLCJcdTAzQTVcdTAzMDhcdTAzNDIiLCJcdTAzQzVcdTAzMDhcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX0KKyAgICAgICAgeyJcdTAzQzVcdTAzMTMiLCJcdTAzQTVcdTAzMTMiLCJcdTAzQzVcdTAzMTMiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX1cTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNDNVx1MDMxM1x1MDMwMCIsIlx1MDNBNVx1MDMxM1x1MDMwMCIsIlx1MDNDNVx1MDMxM1x1MDMwMCIsIlx1MUY1MFx1MDMwMCIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzAxIiwiXHUwM0E1XHUwMzEzXHUwMzAxIiwiXHUwM0M1XHUwMzEzXHUwMzAxIiwiXHUxRjUwXHUwMzAxIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDMxM1x1MDM0MiIsIlx1MDNBNVx1MDMxM1x1MDM0MiIsIlx1MDNDNVx1MDMxM1x1MDM0MiIsIlx1MUY1MFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDM0MiIsIlx1MDNBNVx1MDM0MiIsIlx1MDNDNVx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQzlcdTAzNDIiLCJcdTAzQTlcdTAzNDIiLCJcdTAzQzlcdTAzNDIiLCJcdTIxMjZcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0M5XHUwMzQyXHUwM0I5IiwiXHUwM0E5XHUwMzQyXHUwMzQ1IiwiXHUwM0E5XHUwMzQyXHUwMzk5IiwiXHUwM0E5XHUwMzQyXHUwM0I5IiwiXHUwM0E5XHUwMzQyXHUxRkJFIiwiXHUwM0M5XHUwMzQyXHUwMzQ1IiwiXHUwM0M5XHUwMzQyXHUwMzk5IiwiXHUwM0M5XHUwMzQyXHUwM0I5IiwiXHUwM0M5XHUwMzQyXHUxRkJFIiwiXHUxRkY2XHUwMzQ1IiwKKyAgICAgICAgICAgICJcdTFGRjZcdTAzOTkiLCJcdTFGRjZcdTAzQjkiLCJcdTFGRjZcdTFGQkUiLCJcdTIxMjZcdTAzNDJcdTAzNDUiLCJcdTIxMjZcdTAzNDJcdTAzOTkiLCJcdTIxMjZcdTAzNDJcdTAzQjkiLCJcdTIxMjZcdTAzNDJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQzlcdTAzQjkiLCJcdTAzQTlcdTAzNDUiLCJcdTAzQTlcdTAzOTkiLCJcdTAzQTlcdTAzQjkiLCJcdTAzQTlcdTFGQkUiLCJcdTAzQzlcdTAzNDUiLCJcdTAzQzlcdTAzOTkiLCJcdTAzQzlcdTAzQjkiLCJcdTAzQzlcdTFGQkUiLCJcdTIxMjZcdTAzNDUiLCJcdTIxMjZcdTAzOTkiLCJcdTIxMjZcdTAzQjkiLCJcdTIxMjZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNDRVx1MDNCOSIsIlx1MDM4Rlx1MDM0NSIsIlx1MDM4Rlx1MDM5OSIsIlx1MDM4Rlx1MDNCOSIsIlx1MDM4Rlx1MUZCRSIsIlx1MDNDRVx1MDM0NSIsIlx1MDNDRVx1MDM5OSIsIlx1MDNDRVx1MDNCOSIsIlx1MDNDRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSH1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgWUlXTn0KKyAgICAgICAgeyJcdTA1NjVcdTA1ODIiLCJcdTA1MzVcdTA1NTIiLCJcdTA1MzVcdTA1ODIiLCJcdTA1NjVcdTA1NTIiLCJcdTA1NjVcdTA1ODIiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSH0KKyAgICAgICAgeyJcdTA1NzRcdTA1NjUiLCJcdTA1NDRcdTA1MzUiLCJcdTA1NDRcdTA1NjUiLCJcdTA1NzRcdTA1MzUiLCJcdTA1NzRcdTA1NjUiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIElOSX0KKyAgICAgICAgeyJcdTA1NzRcdTA1NkIiLCJcdTA1NDRcdTA1M0IiLCJcdTA1NDRcdTA1NkIiLCJcdTA1NzRcdTA1M0IiLCJcdTA1NzRcdTA1NkIiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIFhFSH0KKyAgICAgICAgeyJcdTA1NzRcdTA1NkQiLCJcdTA1NDRcdTA1M0QiLCJcdTA1NDRcdTA1NkQiLCJcdTA1NzRcdTA1M0QiLCJcdTA1NzRcdTA1NkQiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PV30KKyAgICAgICAgeyJcdTA1NzRcdTA1NzYiLCJcdTA1NDRcdTA1NDYiLCJcdTA1NDRcdTA1NzYiLCJcdTA1NzRcdTA1NDYiLCJcdTA1NzRcdTA1NzYiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWRVd9XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PV30KKyAgICAgICAgeyJcdTA1N0VcdTA1NzYiLCJcdTA1NEVcdTA1NDYiLCJcdTA1NEVcdTA1NzYiLCJcdTA1N0VcdTA1NDYiLCJcdTA1N0VcdTA1NzYiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwMFx1MDNCOSIsIlx1MUYwMFx1MDM0NSIsIlx1MUYwMFx1MDM5OSIsIlx1MUYwMFx1MDNCOSIsIlx1MUYwMFx1MUZCRSIsIlx1MUYwOFx1MDM0NSIsIlx1MUYwOFx1MDM5OSIsIlx1MUYwOFx1MDNCOSIsIlx1MUYwOFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAxXHUwM0I5IiwiXHUxRjAxXHUwMzQ1IiwiXHUxRjAxXHUwMzk5IiwiXHUxRjAxXHUwM0I5IiwiXHUxRjAxXHUxRkJFIiwiXHUxRjA5XHUwMzQ1IiwiXHUxRjA5XHUwMzk5IiwiXHUxRjA5XHUwM0I5IiwiXHUxRjA5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAyXHUwM0I5IiwiXHUxRjAyXHUwMzQ1IiwiXHUxRjAyXHUwMzk5IiwiXHUxRjAyXHUwM0I5IiwiXHUxRjAyXHUxRkJFIiwiXHUxRjBBXHUwMzQ1IiwiXHUxRjBBXHUwMzk5IiwiXHUxRjBBXHUwM0I5IiwiXHUxRjBBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAzXHUwM0I5IiwiXHUxRjAzXHUwMzQ1IiwiXHUxRjAzXHUwMzk5IiwiXHUxRjAzXHUwM0I5IiwiXHUxRjAzXHUxRkJFIiwiXHUxRjBCXHUwMzQ1IiwiXHUxRjBCXHUwMzk5IiwiXHUxRjBCXHUwM0I5IiwiXHUxRjBCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDRcdTAzQjkiLCJcdTFGMDRcdTAzNDUiLCJcdTFGMDRcdTAzOTkiLCJcdTFGMDRcdTAzQjkiLCJcdTFGMDRcdTFGQkUiLCJcdTFGMENcdTAzNDUiLCJcdTFGMENcdTAzOTkiLCJcdTFGMENcdTAzQjkiLCJcdTFGMENcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNVx1MDNCOSIsIlx1MUYwNVx1MDM0NSIsIlx1MUYwNVx1MDM5OSIsIlx1MUYwNVx1MDNCOSIsIlx1MUYwNVx1MUZCRSIsIlx1MUYwRFx1MDM0NSIsIlx1MUYwRFx1MDM5OSIsIlx1MUYwRFx1MDNCOSIsIlx1MUYwRFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNlx1MDNCOSIsIlx1MUYwNlx1MDM0NSIsIlx1MUYwNlx1MDM5OSIsIlx1MUYwNlx1MDNCOSIsIlx1MUYwNlx1MUZCRSIsIlx1MUYwRVx1MDM0NSIsIlx1MUYwRVx1MDM5OSIsIlx1MUYwRVx1MDNCOSIsIlx1MUYwRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwN1x1MDNCOSIsIlx1MUYwN1x1MDM0NSIsIlx1MUYwN1x1MDM5OSIsIlx1MUYwN1x1MDNCOSIsIlx1MUYwN1x1MUZCRSIsIlx1MUYwRlx1MDM0NSIsIlx1MUYwRlx1MDM5OSIsIlx1MUYwRlx1MDNCOSIsIlx1MUYwRlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMFx1MDNCOSIsIlx1MUYyMFx1MDM0NSIsIlx1MUYyMFx1MDM5OSIsIlx1MUYyMFx1MDNCOSIsIlx1MUYyMFx1MUZCRSIsIlx1MUYyOFx1MDM0NSIsIlx1MUYyOFx1MDM5OSIsIlx1MUYyOFx1MDNCOSIsIlx1MUYyOFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMVx1MDNCOSIsIlx1MUYyMVx1MDM0NSIsIlx1MUYyMVx1MDM5OSIsIlx1MUYyMVx1MDNCOSIsIlx1MUYyMVx1MUZCRSIsIlx1MUYyOVx1MDM0NSIsIlx1MUYyOVx1MDM5OSIsIlx1MUYyOVx1MDNCOSIsIlx1MUYyOVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjJcdTAzQjkiLCJcdTFGMjJcdTAzNDUiLCJcdTFGMjJcdTAzOTkiLCJcdTFGMjJcdTAzQjkiLCJcdTFGMjJcdTFGQkUiLCJcdTFGMkFcdTAzNDUiLCJcdTFGMkFcdTAzOTkiLCJcdTFGMkFcdTAzQjkiLCJcdTFGMkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIzXHUwM0I5IiwiXHUxRjIzXHUwMzQ1IiwiXHUxRjIzXHUwMzk5IiwiXHUxRjIzXHUwM0I5IiwiXHUxRjIzXHUxRkJFIiwiXHUxRjJCXHUwMzQ1IiwiXHUxRjJCXHUwMzk5IiwiXHUxRjJCXHUwM0I5IiwiXHUxRjJCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI0XHUwM0I5IiwiXHUxRjI0XHUwMzQ1IiwiXHUxRjI0XHUwMzk5IiwiXHUxRjI0XHUwM0I5IiwiXHUxRjI0XHUxRkJFIiwiXHUxRjJDXHUwMzQ1IiwiXHUxRjJDXHUwMzk5IiwiXHUxRjJDXHUwM0I5IiwiXHUxRjJDXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI1XHUwM0I5IiwiXHUxRjI1XHUwMzQ1IiwiXHUxRjI1XHUwMzk5IiwiXHUxRjI1XHUwM0I5IiwiXHUxRjI1XHUxRkJFIiwiXHUxRjJEXHUwMzQ1IiwiXHUxRjJEXHUwMzk5IiwiXHUxRjJEXHUwM0I5IiwiXHUxRjJEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyNlx1MDNCOSIsIlx1MUYyNlx1MDM0NSIsIlx1MUYyNlx1MDM5OSIsIlx1MUYyNlx1MDNCOSIsIlx1MUYyNlx1MUZCRSIsIlx1MUYyRVx1MDM0NSIsIlx1MUYyRVx1MDM5OSIsIlx1MUYyRVx1MDNCOSIsIlx1MUYyRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjdcdTAzQjkiLCJcdTFGMjdcdTAzNDUiLCJcdTFGMjdcdTAzOTkiLCJcdTFGMjdcdTAzQjkiLCJcdTFGMjdcdTFGQkUiLCJcdTFGMkZcdTAzNDUiLCJcdTFGMkZcdTAzOTkiLCJcdTFGMkZcdTAzQjkiLCJcdTFGMkZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2MFx1MDNCOSIsIlx1MUY2MFx1MDM0NSIsIlx1MUY2MFx1MDM5OSIsIlx1MUY2MFx1MDNCOSIsIlx1MUY2MFx1MUZCRSIsIlx1MUY2OFx1MDM0NSIsIlx1MUY2OFx1MDM5OSIsIlx1MUY2OFx1MDNCOSIsIlx1MUY2OFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYxXHUwM0I5IiwiXHUxRjYxXHUwMzQ1IiwiXHUxRjYxXHUwMzk5IiwiXHUxRjYxXHUwM0I5IiwiXHUxRjYxXHUxRkJFIiwiXHUxRjY5XHUwMzQ1IiwiXHUxRjY5XHUwMzk5IiwiXHUxRjY5XHUwM0I5IiwiXHUxRjY5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYyXHUwM0I5IiwiXHUxRjYyXHUwMzQ1IiwiXHUxRjYyXHUwMzk5IiwiXHUxRjYyXHUwM0I5IiwiXHUxRjYyXHUxRkJFIiwiXHUxRjZBXHUwMzQ1IiwiXHUxRjZBXHUwMzk5IiwiXHUxRjZBXHUwM0I5IiwiXHUxRjZBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYzXHUwM0I5IiwiXHUxRjYzXHUwMzQ1IiwiXHUxRjYzXHUwMzk5IiwiXHUxRjYzXHUwM0I5IiwiXHUxRjYzXHUxRkJFIiwiXHUxRjZCXHUwMzQ1IiwiXHUxRjZCXHUwMzk5IiwiXHUxRjZCXHUwM0I5IiwiXHUxRjZCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjRcdTAzQjkiLCJcdTFGNjRcdTAzNDUiLCJcdTFGNjRcdTAzOTkiLCJcdTFGNjRcdTAzQjkiLCJcdTFGNjRcdTFGQkUiLCJcdTFGNkNcdTAzNDUiLCJcdTFGNkNcdTAzOTkiLCJcdTFGNkNcdTAzQjkiLCJcdTFGNkNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2NVx1MDNCOSIsIlx1MUY2NVx1MDM0NSIsIlx1MUY2NVx1MDM5OSIsIlx1MUY2NVx1MDNCOSIsIlx1MUY2NVx1MUZCRSIsIlx1MUY2RFx1MDM0NSIsIlx1MUY2RFx1MDM5OSIsIlx1MUY2RFx1MDNCOSIsIlx1MUY2RFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2Nlx1MDNCOSIsIlx1MUY2Nlx1MDM0NSIsIlx1MUY2Nlx1MDM5OSIsIlx1MUY2Nlx1MDNCOSIsIlx1MUY2Nlx1MUZCRSIsIlx1MUY2RVx1MDM0NSIsIlx1MUY2RVx1MDM5OSIsIlx1MUY2RVx1MDNCOSIsIlx1MUY2RVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2N1x1MDNCOSIsIlx1MUY2N1x1MDM0NSIsIlx1MUY2N1x1MDM5OSIsIlx1MUY2N1x1MDNCOSIsIlx1MUY2N1x1MUZCRSIsIlx1MUY2Rlx1MDM0NSIsIlx1MUY2Rlx1MDM5OSIsIlx1MUY2Rlx1MDNCOSIsIlx1MUY2Rlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjcwXHUwM0I5IiwiXHUxRjcwXHUwMzQ1IiwiXHUxRjcwXHUwMzk5IiwiXHUxRjcwXHUwM0I5IiwiXHUxRjcwXHUxRkJFIiwiXHUxRkJBXHUwMzQ1IiwiXHUxRkJBXHUwMzk5IiwiXHUxRkJBXHUwM0I5IiwiXHUxRkJBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjc0XHUwM0I5IiwiXHUxRjc0XHUwMzQ1IiwiXHUxRjc0XHUwMzk5IiwiXHUxRjc0XHUwM0I5IiwiXHUxRjc0XHUxRkJFIiwiXHUxRkNBXHUwMzQ1IiwiXHUxRkNBXHUwMzk5IiwiXHUxRkNBXHUwM0I5IiwiXHUxRkNBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGN0NcdTAzQjkiLCJcdTFGN0NcdTAzNDUiLCJcdTFGN0NcdTAzOTkiLCJcdTFGN0NcdTAzQjkiLCJcdTFGN0NcdTFGQkUiLCJcdTFGRkFcdTAzNDUiLCJcdTFGRkFcdTAzOTkiLCJcdTFGRkFcdTAzQjkiLCJcdTFGRkFcdTFGQkUiLH0sCisgICAgfTsKKyAgICAKKyAgICAvLyB0aGlzIGluaXRpYWxpemVzIHRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGVkIHRoZSBjYXNlLWVxdWl2YWxlbnRzCisKKyAgICBzdGF0aWMgeworICAgICAgICAKKyAgICAgICAgLy8gR2F0aGVyIHVwIHRoZSBleGNlcHRpb25zIGluIGEgZm9ybSB3ZSBjYW4gdXNlCisgICAgICAgIAorICAgICAgICBpZiAoIUdFTkVSQVRFKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4Y2VwdGlvbkxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBleGNlcHRpb24gPSBleGNlcHRpb25MaXN0W2ldOworICAgICAgICAgICAgICAgIFNldCBzID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgICAgICAvLyB0aGVyZSBoYXMgdG8gYmUgc29tZSBtZXRob2QgdG8gZG8gdGhlIGZvbGxvd2luZywgYnV0IEkgY2FuJ3QgZmluZCBpdCBpbiB0aGUgY29sbGVjdGlvbnMKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGV4Y2VwdGlvbi5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBzLmFkZChleGNlcHRpb25bal0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmcm9tQ2FzZUZvbGQucHV0KGV4Y2VwdGlvblswXSwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHdhbGsgdGhyb3VnaCBhbGwgdGhlIGNoYXJhY3RlcnMsIGFuZCBhdCBldmVyeSBjYXNlIGZvbGQgcmVzdWx0LAorICAgICAgICAvLyBwdXQgYSBzZXQgb2YgYWxsIHRoZSBjaGFyYWN0ZXJzIHRoYXQgbWFwIHRvIHRoYXQgcmVzdWx0CisKKyAgICAgICAgYm9vbGVhbiBkZWZhdWx0bWFwcGluZyA9IHRydWU7IC8vIGZhbHNlIGZvciB0dXJraXNoCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjYXQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoaSk7CisgICAgICAgICAgICBpZiAoY2F0ID09IENoYXJhY3Rlci5VTkFTU0lHTkVEIHx8IGNhdCA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UpIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgU3RyaW5nIG1hcHBlZCA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIGRlZmF1bHRtYXBwaW5nKTsKKyAgICAgICAgICAgIGlmIChtYXBwZWQuZXF1YWxzKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtYXhMZW5ndGggPCBtYXBwZWQubGVuZ3RoKCkpIG1heExlbmd0aCA9IG1hcHBlZC5sZW5ndGgoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgaGF2ZSBkaWZmZXJlbnQgY2FzZSBmb2xkaW5nCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChtYXBwZWQpOworICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIHMuYWRkKG1hcHBlZCk7IC8vIGFkZCB0aGUgY2FzZSBmb2xkIHJlc3VsdCBpdHNlbGYKKyAgICAgICAgICAgICAgICBmcm9tQ2FzZUZvbGQucHV0KG1hcHBlZCwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgICAgICB0b0Nhc2VGb2xkLnB1dChjcCwgbWFwcGVkKTsKKyAgICAgICAgICAgIHRvQ2FzZUZvbGQucHV0KG1hcHBlZCwgbWFwcGVkKTsgLy8gYWRkIG1hcHBpbmcgdG8gc2VsZgorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBFbWl0IHRoZSBmaW5hbCBkYXRhCisKKyAgICAgICAgaWYgKERVTVApIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibWF4TGVuZ3RoID0gIiArIG1heExlbmd0aCk7CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5mcm9tQ2FzZUZvbGQ6Iik7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGZyb21DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZSgoU3RyaW5nKWtleSkgKyAiOiAiKTsKKyAgICAgICAgICAgICAgICBTZXQgcyA9IChTZXQpIGZyb21DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHRvSGV4Mi50cmFuc2xpdGVyYXRlKChTdHJpbmcpaXQyLm5leHQoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxudG9DYXNlRm9sZDoiKTsKKyAgICAgICAgICAgIGl0ID0gdG9DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAiICsgdG9IZXgyLnRyYW5zbGl0ZXJhdGUoa2V5KSArICI6ICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZSh2YWx1ZSkpOworICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBOb3cgY29udmVydCBhbGwgdGhvc2Ugc2V0cyBpbnRvIGxpbmVhciBhcnJheXMKKyAgICAgICAgLy8gV2UgY2FuJ3QgZG8gdGhpcyBpbiBwbGFjZSBpbiBKYXZhLCBzbyBtYWtlIGEgdGVtcG9yYXJ5IHRhcmdldCBhcnJheQorICAgICAgICAKKyAgICAgICAgLy8gTm90ZTogVGhpcyBjb3VsZCBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgc2luZ2xlIGFycmF5LCB3aXRoIG9mZnNldHMgaW50byBpdC4KKyAgICAgICAgLy8gTWlnaHQgYmUgYmVzdCBjaG9pY2UgaW4gQy4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNYXAgZnJvbUNhc2VGb2xkMiA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gZnJvbUNhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBTZXQgcyA9IChTZXQpIGZyb21DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSBuZXcgU3RyaW5nW3Muc2l6ZSgpXTsKKyAgICAgICAgICAgIHMudG9BcnJheSh0ZW1wKTsKKyAgICAgICAgICAgIGZyb21DYXNlRm9sZDIucHV0KGtleSwgdGVtcCk7CisgICAgICAgIH0KKyAgICAgICAgZnJvbUNhc2VGb2xkID0gZnJvbUNhc2VGb2xkMjsKKworICAgICAgICAvLyBXZSBoYXZlIHByb2Nlc3NlZCBldmVyeXRoaW5nLCBzbyB0aGUgaXRlcmF0b3Igd2lsbCBub3cgd29yaworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIG5vcm1hbGx5IE9GRi4gCisgICAgICAgIC8vIEl0IGlzIGhlcmUgdG8gZ2VuZXJhdGUgKHVuZGVyIHRoZSBHRU5FUkFURSBmbGFnKSB0aGUgc3RhdGljIGV4Y2VwdGlvbiBsaXN0LgorICAgICAgICAvLyBJdCBtdXN0IGJlIGF0IHRoZSB2ZXJ5IGVuZCBvZiBpbml0aWFsaXphdGlvbiwgc28gdGhhdCB0aGUgaXRlcmF0b3IgaXMgZnVuY3Rpb25hbC4KKyAgICAgICAgLy8gKGVhc2llc3QgdG8gZG8gaXQgdGhhdCB3YXkpCisgICAgICAgICAgICAKKyAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisKKyAgICAgICAgICAgIC8vIGZpcnN0IGdldCBzbWFsbCBzZXQgb2YgaXRlbXMgdGhhdCBoYXZlIG11bHRpcGxlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2V0IG11bHRpY2hhcnMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgaXQgPSBmcm9tQ2FzZUZvbGQua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChrZXkpIDwgMikgY29udGludWU7CisgICAgICAgICAgICAgICAgbXVsdGljaGFycy5hZGQoa2V5KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbm93IHdlIHdpbGwgZ28gdGhyb3VnaCBlYWNoIG9mIHRoZW0uCisgICAgICAgICAgICAKKyAgICAgICAgICAgIENhc2VJdGVyYXRvciBjaSA9IG5ldyBDYXNlSXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGl0ID0gbXVsdGljaGFycy5pdGVyYXRvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBoZXJlIGlzIGEgbmFzdHkgY29tcGxpY2F0aW9uLiBUYWtlICdmZmknIGxpZ2F0dXJlLiBXZQorICAgICAgICAgICAgICAgIC8vIGNhbid0IGp1c3QgY2xvc2UgaXQsIHNpbmNlIHdlIHdvdWxkIG1pc3MgdGhlIGNvbWJpbmF0aW9uCisgICAgICAgICAgICAgICAgLy8gdGhhdCBpbmNsdWRlcyB0aGUgJ2ZpJyA9PiAiZmkiIGxpZ2F0dXJlCisgICAgICAgICAgICAgICAgLy8gc28gZmlyc3QgZG8gYSBwYXNzIHRocm91Z2gsIGFuZCBhZGQgc3Vic3RyaW5nIGNvbWJpbmF0aW9ucworICAgICAgICAgICAgICAgIC8vIHdlIGNhbGwgdGhpcyBhICdwYXJ0aWFsIGNsb3N1cmUnCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU2V0IHBhcnRpYWxDbG9zdXJlID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgICAgICAgICBwYXJ0aWFsQ2xvc3VyZS5hZGQoa2V5KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoa2V5KSA+IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgbXVsdGlJdDIgPSBtdWx0aWNoYXJzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtdWx0aUl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdGhlcktleSA9IChTdHJpbmcpIG11bHRpSXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlcktleS5sZW5ndGgoKSA+PSBrZXkubGVuZ3RoKCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIG5vdCBjb21wbGV0ZWx5IGdlbmVyYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgd29ya3MgZm9yIHRoZSBhY3R1YWwgY2FzZWQgc3R1ZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHNob3VsZCB3b3JrIGZvciBmdXR1cmUgY2hhcmFjdGVycywgc2luY2Ugd2Ugd29uJ3QgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vcmUgbGlnYXR1cmVzICYgb3RoZXIgb2RkaXRpZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0ga2V5LmluZGV4T2Yob3RoZXJLZXksIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZFBvcyA9IHBvcyArIG90aGVyS2V5Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGtub3cgd2UgaGF2ZSBhIHByb3BlciBzdWJzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28gZ2V0IHRoZSBjb21iaW5hdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBjaG9pY2VzID0gKFN0cmluZ1tdKSBmcm9tQ2FzZUZvbGQuZ2V0KG90aGVyS2V5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpaSA9IDA7IGlpIDwgY2hvaWNlcy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhdGNod29yayA9IGtleS5zdWJzdHJpbmcoMCwgcG9zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjaG9pY2VzW2lpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBrZXkuc3Vic3RyaW5nKGVuZFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxDbG9zdXJlLmFkZChwYXRjaHdvcmspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBub3csIGZvciBlYWNoIHRoaW5nIGluIHRoZSBwYXJ0aWFsIGNsb3N1cmUsIGdldCBpdHMKKyAgICAgICAgICAgICAgICAvLyBjYXNlIGNsb3N1cmUgYW5kIGFkZCBpdCB0byB0aGUgZmluYWwgcmVzdWx0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFNldCBjbG9zdXJlID0gbmV3IFRyZWVTZXQoKTsgLy8gdGhpcyB3aWxsIGJlIHRoZSByZWFsIGNsb3N1cmUKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBwYXJ0aWFsSXQgPSBwYXJ0aWFsQ2xvc3VyZS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChwYXJ0aWFsSXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkyID0gKFN0cmluZykgcGFydGlhbEl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2kucmVzZXQoa2V5Mik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2xvc3VyZS5hZGQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gZm9ybSBjbG9zdXJlCisgICAgICAgICAgICAgICAgICAgIC8qU3RyaW5nW10gY2hvaWNlcyA9IChTdHJpbmdbXSkgZnJvbUNhc2VGb2xkLmdldChrZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaS5yZXNldChjaG9pY2VzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKHRlbXAgPSBjaS5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc3VyZS5hZGQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgaXQgb3V0LCBzbyB0aGF0IGl0IGNhbiBiZSBjdXQgYW5kIHBhc3RlZCBiYWNrIGludG8gdGhpcyBkb2N1bWVudC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBjbG9zdXJlLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdC8vICIgKyB0b05hbWUudHJhbnNsaXRlcmF0ZShrZXkpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcdHtcIiIgKyB0b0hleC50cmFuc2xpdGVyYXRlKGtleSkgKyAiXCIsIik7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKWl0Mi5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlwiIiArIHRvSGV4LnRyYW5zbGl0ZXJhdGUoaXRlbSkgKyAiXCIsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifSwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyA9PT09PT09PT09PT0gUFJJVkFURSBDTEFTUyBEQVRBID09PT09PT09PT09PSAKKyAgICAKKyAgICAvLyBwaWVjZXMgdGhhdCB3ZSB3aWxsIHB1dCB0b2dldGhlcgorICAgIC8vIGlzIG5vdCBjaGFuZ2VkIGR1cmluZyBpdGVyYXRpb24KKyAgICBwcml2YXRlIGludCBjb3VudCA9IDA7CisgICAgcHJpdmF0ZSBTdHJpbmdbXVtdIHZhcmlhbnRzOworICAgIAorICAgIC8vIHN0YXRlIGluZm9ybWF0aW9uLCBjaGFuZ2VzIGR1cmluZyBpdGVyYXRpb24KKyAgICBwcml2YXRlIGJvb2xlYW4gZG9uZSA9IGZhbHNlOworICAgIHByaXZhdGUgaW50W10gY291bnRzOworICAgIAorICAgIC8vIGludGVybmFsIGJ1ZmZlciBmb3IgZWZmaWNpZW5jeQorICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG5leHRCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09ICAKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRvIGRpZmZlcmVudCBzb3VyY2UuIE9uY2UgcmVzZXQsIHRoZSBpdGVyYXRpb24gc3RhcnRzIGZyb20gdGhlIGJlZ2lubmluZy4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzdHJpbmcgdG8gZ2V0IGNhc2UgdmFyaWFudHMgZm9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICAKKyAgICAgICAgLy8gYWxsb2NhdGUgYXJyYXlzIHRvIHN0b3JlIHBpZWNlcworICAgICAgICAvLyB1c2luZyBsZW5ndGggbWlnaHQgYmUgc2xpZ2h0bHkgdG9vIGxvbmcsIGJ1dCB3ZSBkb24ndCBjYXJlIG11Y2gKKyAgICAgICAgCisgICAgICAgIGNvdW50cyA9IG5ldyBpbnRbc291cmNlLmxlbmd0aCgpXTsKKyAgICAgICAgdmFyaWFudHMgPSBuZXcgU3RyaW5nW3NvdXJjZS5sZW5ndGgoKV1bXTsKKyAgICAgICAgCisgICAgICAgIC8vIHdhbGsgdGhyb3VnaCB0aGUgc291cmNlLCBhbmQgYnJlYWsgdXAgaW50byBwaWVjZXMKKyAgICAgICAgLy8gZWFjaCBwaWVjZSBiZWNvbWVzIGFuIGFycmF5IG9mIGVxdWl2YWxlbnQgdmFsdWVzCisgICAgICAgIC8vIFRPRE86IGNvdWxkIG9wdGltaXplZCB0aGlzIGxhdGVyIHRvIGNvYWxlc2NlIGFsbCBzaW5nbGUgc3RyaW5nIHBpZWNlcworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHBpZWNlID0gbnVsbDsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBwaWVjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBmaW5kICpsb25nZXN0KiBtYXRjaGluZyBwaWVjZQorICAgICAgICAgICAgU3RyaW5nIGNhc2VGb2xkID0gbnVsbDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gZXhhY3RseSBvbmUgQ1AKKyAgICAgICAgICAgICAgICBwaWVjZSA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgICAgICBjYXNlRm9sZCA9IChTdHJpbmcpIHRvQ2FzZUZvbGQuZ2V0KHBpZWNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IG1heCA9IGkgKyBtYXhMZW5ndGg7CisgICAgICAgICAgICAgICAgaWYgKG1heCA+IHNvdXJjZS5sZW5ndGgoKSkgbWF4ID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBtYXg7IGogPiBpOyAtLWopIHsKKyAgICAgICAgICAgICAgICAgICAgcGllY2UgPSBzb3VyY2Uuc3Vic3RyaW5nKGksIGopOworICAgICAgICAgICAgICAgICAgICBjYXNlRm9sZCA9IChTdHJpbmcpIHRvQ2FzZUZvbGQuZ2V0KHBpZWNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhc2VGb2xkICE9IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgd2UgZmFpbCwgcGljayBvbmUgY29kZSBwb2ludAorICAgICAgICAgICAgaWYgKGNhc2VGb2xkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwaWVjZSA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgICAgICB2YXJpYW50c1tjb3VudCsrXSA9IG5ldyBTdHJpbmdbXSB7cGllY2V9OyAvLyBzaW5nbGUgaXRlbSBzdHJpbmcKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyaWFudHNbY291bnQrK10gPSAoU3RyaW5nW10pZnJvbUNhc2VGb2xkLmdldChjYXNlRm9sZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzdGFydCB0aGUgaXRlcmF0aW9uIGZyb20gdGhlIGJlZ2lubmluZywgYnV0IHdpdGggc2FtZSBzb3VyY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGNvdW50c1tpXSA9IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgY2FzZSB2YXJpYW50cy4KKyAgICAgKiBAcmV0dXJuIG5leHQgY2FzZSB2YXJpYW50LiBFYWNoIHZhcmlhbnQgd2lsbCBjYXNlLWZvbGQgdG8gdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHNvdXJjZSB3aWxsLgorICAgICAqIFdoZW4gdGhlIGl0ZXJhdGlvbiBpcyBkb25lLCBudWxsIGlzIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbmV4dCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChkb25lKSByZXR1cm4gbnVsbDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIAorICAgICAgICAvLyBUT0RPIE9wdGltaXplIHNvIHdlIGtlZXAgdGhlIHBpZWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICAgICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSBzbyBtdWNoIGNvbmNhdGVuYXRpb24KKyAgICAgICAgCisgICAgICAgIC8vIGdldCB0aGUgcmVzdWx0LCBhIGNvbmNhdGVuYXRpb24KKyAgICAgICAgCisgICAgICAgIG5leHRCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgbmV4dEJ1ZmZlci5hcHBlbmQodmFyaWFudHNbaV1bY291bnRzW2ldXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgcmlnaHQgc2V0IG9mIHBpZWNlcyB0byBjb25jYXRlbmF0ZQorICAgICAgICAKKyAgICAgICAgZm9yIChpID0gY291bnQtMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGNvdW50c1tpXSsrOworICAgICAgICAgICAgaWYgKGNvdW50c1tpXSA8IHZhcmlhbnRzW2ldLmxlbmd0aCkgYnJlYWs7CisgICAgICAgICAgICBjb3VudHNbaV0gPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpZiB3ZSBnbyB0b28gZmFyLCBiYWlsCisgICAgICAgIAorICAgICAgICBpZiAoaSA8IDApIHsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV4dEJ1ZmZlci50b1N0cmluZygpOyAgICAgICAgICAgIAorICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSB0ZXN0LCBqdXN0IHRvIHNlZSBob3cgdGhlIHN0dWZmIHdvcmtzLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdENhc2VzID0geyJmaXNzIiwgImhcdTAzYTMifTsKKyAgICAgICAgQ2FzZUl0ZXJhdG9yIGNpID0gbmV3IENhc2VJdGVyYXRvcigpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtID0gdGVzdENhc2VzW2ldOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3Rpbmc6ICIgKyB0b05hbWUudHJhbnNsaXRlcmF0ZShpdGVtKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIGNpLnJlc2V0KGl0ZW0pOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0b05hbWUudHJhbnNsaXRlcmF0ZSh0ZW1wKSk7CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWw6ICIgKyBjb3VudCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBnZW5lcmF0ZSBhIGxpc3Qgb2YgYWxsIGNhc2VsZXNzIGNoYXJhY3RlcnMgLS0gY2hhcmFjdGVycyB3aG9zZQorICAgICAgICAvLyBjYXNlIGNsb3N1cmUgaXMgdGhlbXNlbHZlcy4KKworICAgICAgICBVbmljb2RlU2V0IGNhc2VsZXNzID0gbmV3IFVuaWNvZGVTZXQoKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgY2kucmVzZXQoY3ApOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIFN0cmluZyBmb2xkID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGZvbGQgPSB0ZW1wOworICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ID4gMSkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY291bnQ9PTEgJiYgZm9sZC5lcXVhbHMoY3ApKSB7CisgICAgICAgICAgICAgICAgY2FzZWxlc3MuYWRkKGkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYXNlbGVzcyA9ICIgKyBjYXNlbGVzcy50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIFVuaWNvZGVTZXQgbm90X2xjID0gbmV3IFVuaWNvZGVTZXQoIls6XmxjOl0iKTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgYSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGEuc2V0KG5vdF9sYyk7CisgICAgICAgIGEucmVtb3ZlQWxsKGNhc2VsZXNzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJbOl5sYzpdIC0gY2FzZWxlc3MgPSAiICsgYS50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIGEuc2V0KGNhc2VsZXNzKTsKKyAgICAgICAgYS5yZW1vdmVBbGwobm90X2xjKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYXNlbGVzcyAtIFs6XmxjOl0gPSAiICsgYS50b1BhdHRlcm4odHJ1ZSkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyMDZjMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGVtby5qYXZhCkBAIC0wLDAgKzEsMTM3NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CisKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5EaWZmZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBIGZyYW1lIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGV4cGVyaW1lbnQgd2l0aCBrZXlib2FyZAorICogdHJhbnNsaXRlcmF0aW9uLiAgVGhpcyBjbGFzcyBoYXMgYSBtYWluKCkgbWV0aG9kIHNvIGl0IGNhbiBiZSBydW4KKyAqIGFzIGFuIGFwcGxpY2F0aW9uLiAgVGhlIGZyYW1lIGNvbnRhaW5zIGFuIGVkaXRhYmxlIHRleHQgY29tcG9uZW50CisgKiBhbmQgdXNlcyBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24gdG8gcHJvY2VzcyBrZXlib2FyZCBldmVudHMuCisgKgorICogPHA+Q29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgRGVtbyBleHRlbmRzIEZyYW1lIHsKKworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBTVEFSVF9URVhUID0gIihjdXQsXHUwM0JBXHUwM0M1XHUwM0M0LFx1MDVEMCxcdTMwQUZcdTMwQzgsXHU0RTgwLFx1MDkxQVx1MDk0MVx1MDkyNFx1MDk0RCkiOworCisgICAgVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQgPSBudWxsOworICAgIFN0cmluZyBmb250TmFtZSA9ICJBcmlhbCBVbmljb2RlIE1TIjsKKyAgICBpbnQgZm9udFNpemUgPSAxODsKKyAgICAKKyAgICAKKworICAgIC8qCisgICAgYm9vbGVhbiBjb21wb3VuZCA9IGZhbHNlOworICAgIFRyYW5zbGl0ZXJhdG9yW10gY29tcG91bmRUcmFuc2xpdCA9IG5ldyBUcmFuc2xpdGVyYXRvcltNQVhfQ09NUE9VTkRdOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0NPTVBPVU5EID0gMTI4OworICAgIGludCBjb21wb3VuZENvdW50ID0gMDsKKyAgICAqLworCisgICAgVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudCB0ZXh0ID0gbnVsbDsKKworICAgIE1lbnUgdHJhbnNsaXRNZW51OworICAgIENoZWNrYm94TWVudUl0ZW0gdHJhbnNsaXRJdGVtOworICAgIENoZWNrYm94TWVudUl0ZW0gbm9UcmFuc2xpdEl0ZW07CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIE5PX1RSQU5TTElURVJBVE9SID0gIk5vbmUiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgRnJhbWUgZiA9IG5ldyBEZW1vKDYwMCwgMjAwKTsKKyAgICAgICAgZi5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZi5zZXRWaXNpYmxlKHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyBEZW1vKGludCB3aWR0aCwgaW50IGhlaWdodCkgeworICAgICAgICBzdXBlcigiVHJhbnNsaXRlcmF0aW9uIERlbW8iKTsKKworICAgICAgICBpbml0TWVudXMoKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGhhbmRsZUNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdGV4dCA9IG5ldyBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50KCk7CisgICAgICAgIEZvbnQgZm9udCA9IG5ldyBGb250KGZvbnROYW1lLCBGb250LlBMQUlOLCBmb250U2l6ZSk7CisgICAgICAgIHRleHQuc2V0Rm9udChmb250KTsKKyAgICAgICAgdGV4dC5zZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICB0ZXh0LnNldFZpc2libGUodHJ1ZSk7CisgICAgICAgIHRleHQuc2V0VGV4dChTVEFSVF9URVhUKTsKKyAgICAgICAgYWRkKHRleHQpOworCisgICAgICAgIHNldFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKCJMYXRpbi1HcmVlayIsIG51bGwpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbml0TWVudXMoKSB7CisgICAgICAgIE1lbnVCYXIgbWJhcjsKKyAgICAgICAgTWVudSBtZW51OworICAgICAgICBNZW51SXRlbSBtaXRlbTsKKyAgICAgICAgLy9DaGVja2JveE1lbnVJdGVtIGNpdGVtOworICAgICAgICAKKyAgICAgICAgc2V0TWVudUJhcihtYmFyID0gbmV3IE1lbnVCYXIoKSk7CisgICAgICAgIG1iYXIuYWRkKG1lbnUgPSBuZXcgTWVudSgiRmlsZSIpKTsKKyAgICAgICAgbWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIlF1aXQiKSk7CisgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisvKgorICAgICAgICBmaW5hbCBJdGVtTGlzdGVuZXIgc2V0VHJhbnNsaXRlcmF0b3JMaXN0ZW5lciA9IG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgQ2hlY2tib3hNZW51SXRlbSBpdGVtID0gKENoZWNrYm94TWVudUl0ZW0pIGUuZ2V0U291cmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0U3RhdGVDaGFuZ2UoKSA9PSBJdGVtRXZlbnQuREVTRUxFQ1RFRCkgeworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBsZXQgdGhlIGN1cnJlbnQgdHJhbnNsaXRlcmF0b3IgYmUgZGVzZWxlY3RlZC4KKyAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCByZXNlbGVjdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgaXRlbS5zZXRTdGF0ZSh0cnVlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvdW5kKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZGluZyBhbiBpdGVtIHRvIGEgY29tcG91bmQgdHJhbnNsaXRlcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlQWRkVG9Db21wb3VuZChpdGVtLmdldExhYmVsKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbSAhPSB0cmFuc2xpdEl0ZW0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRGVzZWxlY3QgcHJldmlvdXMgY2hvaWNlLiAgRG9uJ3QgbmVlZCB0byBjYWxsCisgICAgICAgICAgICAgICAgICAgIC8vIHNldFN0YXRlKHRydWUpIG9uIG5ldyBjaG9pY2UuCisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNldFRyYW5zbGl0ZXJhdG9yKGl0ZW0uZ2V0TGFiZWwoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworKi8KKyAgICAgICAgLyoKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZCh0cmFuc2xpdEl0ZW0gPSBub1RyYW5zbGl0SXRlbSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENoZWNrYm94TWVudUl0ZW0oTk9fVFJBTlNMSVRFUkFUT1IsIHRydWUpKTsKKyAgICAgICAgbm9UcmFuc2xpdEl0ZW0uYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgLy8gQ2FuJ3QgdW5jaGVjayBOb25lIC0tIGFueSBhY3Rpb24gaGVyZSBzZXRzIE5vbmUgdG8gdHJ1ZQorICAgICAgICAgICAgICAgIHNldE5vVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZFNlcGFyYXRvcigpOworICAgICAgICAqLworCisvKgorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKGNpdGVtID0gbmV3IENoZWNrYm94TWVudUl0ZW0oIkNvbXBvdW5kIikpOworICAgICAgICBjaXRlbS5hZGRJdGVtTGlzdGVuZXIobmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGl0ZW0gPSAoQ2hlY2tib3hNZW51SXRlbSkgZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRTdGF0ZUNoYW5nZSgpID09IEl0ZW1FdmVudC5ERVNFTEVDVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIGNvbXBvdW5kIGdldHMgZGVzZWxlY3RlZCwgdGhlbiBzZWxlY3QgTk9ORQorICAgICAgICAgICAgICAgICAgICBzZXROb1RyYW5zbGl0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghY29tcG91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3dpdGNoaW5nIGZyb20gbm9uLWNvbXBvdW5kIHRvIGNvbXBvdW5kCisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgY29tcG91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPE1BWF9DT01QT1VORDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wb3VuZFRyYW5zbGl0W2ldID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZFNlcGFyYXRvcigpOworICAgICAgICovCisKKyAgICAgICAgLyoKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlPWdldFN5c3RlbVRyYW5zbGl0ZXJhdG9yTmFtZXMoKS5lbGVtZW50cygpOworICAgICAgICAgICAgIGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKGNpdGVtID0gbmV3IENoZWNrYm94TWVudUl0ZW0ocykpOworICAgICAgICAgICAgY2l0ZW0uYWRkSXRlbUxpc3RlbmVyKHNldFRyYW5zbGl0ZXJhdG9yTGlzdGVuZXIpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBNZW51IGZvbnRNZW51ID0gbmV3IE1lbnUoIkZvbnQiKTsKKyAgICAgICAgU3RyaW5nW10gZm9udHMgPSBHcmFwaGljc0Vudmlyb25tZW50LmdldExvY2FsR3JhcGhpY3NFbnZpcm9ubWVudCgpLmdldEF2YWlsYWJsZUZvbnRGYW1pbHlOYW1lcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBtSXRlbSA9IG5ldyBNZW51SXRlbShmb250c1tpXSk7CisgICAgICAgICAgICBtSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRm9udEFjdGlvbkxpc3RlbmVyKGZvbnRzW2ldKSk7CisgICAgICAgICAgICBmb250TWVudS5hZGQobUl0ZW0pOworICAgICAgICB9CisgICAgICAgIG1iYXIuYWRkKGZvbnRNZW51KTsKKyAgICAgICAgCisgICAgICAgIE1lbnUgc2l6ZU1lbnUgPSBuZXcgTWVudSgiU2l6ZSIpOworICAgICAgICBpbnRbXSBzaXplcyA9IHs5LCAxMCwgMTIsIDE0LCAxOCwgMjQsIDM2LCA0OCwgNzJ9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBtSXRlbSA9IG5ldyBNZW51SXRlbSgiIiArIHNpemVzW2ldKTsKKyAgICAgICAgICAgIG1JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBTaXplQWN0aW9uTGlzdGVuZXIoc2l6ZXNbaV0pKTsKKyAgICAgICAgICAgIHNpemVNZW51LmFkZChtSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgbWJhci5hZGQoc2l6ZU1lbnUpOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgbWJhci5hZGQodHJhbnNsaXRNZW51ID0gbmV3IE1lbnUoIlRyYW5zbGl0ZXJhdG9yIikpOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChjb252ZXJ0U2VsZWN0aW9uSXRlbSA9IG5ldyBNZW51SXRlbSgiVHJhbnNsaXRlcmF0ZSIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19LKSkpOworICAgICAgICBjb252ZXJ0U2VsZWN0aW9uSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGhhbmRsZUJhdGNoVHJhbnNsaXRlcmF0ZSh0cmFuc2xpdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChzd2FwU2VsZWN0aW9uSXRlbSA9IG5ldyBNZW51SXRlbSgiUmV2ZXJzZSIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19TKSkpOworICAgICAgICBzd2FwU2VsZWN0aW9uSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGludjsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpbnYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIHgpIHsKKyAgICAgICAgICAgICAgICAgICAgaW52ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIm51bGwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IoaW52LmdldElEKCksIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoY29udmVydFR5cGluZ0l0ZW0gPSBuZXcgTWVudUl0ZW0oIk5vIFR5cGluZyBDb252ZXJzaW9uIiwKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfVCkpKTsKKyAgICAgICAgY29udmVydFR5cGluZ0l0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRyYW5zbGl0ZXJhdGVUeXBpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5zZXRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRUeXBpbmdJdGVtLnNldExhYmVsKCJObyBUeXBpbmcgQ29udmVyc2lvbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRleHQuZmx1c2goKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5zZXRUcmFuc2xpdGVyYXRvcihudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgY29udmVydFR5cGluZ0l0ZW0uc2V0TGFiZWwoIkNvbnZlcnQgVHlwaW5nIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyYW5zbGl0ZXJhdGVUeXBpbmcgPSAhdHJhbnNsaXRlcmF0ZVR5cGluZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKGhpc3RvcnlNZW51ID0gbmV3IE1lbnUoIlJlY2VudCIpKTsKKyAgICAgICAgCisgICAgICAgIGhlbHBEaWFsb2cgPSBuZXcgSW5mb0RpYWxvZyh0aGlzLCAiU2ltcGxlIERlbW8iLCAiSW5zdHJ1Y3Rpb25zIiwKKyAgICAgICAgICAgIkNUTCBBLCBYLCBDLCBWIGhhdmUgY3VzdG9tYXJ5IG1lYW5pbmdzLlxuIgorICAgICAgICAgKyAiQXJyb3cga2V5cywgZGVsZXRlIGFuZCBiYWNrc3BhY2Ugd29yay5cbiIKKyAgICAgICAgICsgIlRvIGdldCBhIGNoYXJhY3RlciBmcm9tIGl0cyBjb250cm9sIHBvaW50LCB0eXBlIHRoZSBoZXgsIHRoZW4gaGl0IENUTCBRIgorICAgICAgICApOworICAgICAgICBoZWxwRGlhbG9nLmdldEFyZWEoKS5zZXRFZGl0YWJsZShmYWxzZSk7CisgICAgICAgIAorICAgICAgIAorICAgICAgICBNZW51IGhlbHBNZW51OworICAgICAgICBtYmFyLmFkZChoZWxwTWVudSA9IG5ldyBNZW51KCJFeHRyYXMiKSk7CisgICAgICAgIGhlbHBNZW51LmFkZChtaXRlbSA9IG5ldyBNZW51SXRlbSgiSGVscCIpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBoZWxwRGlhbG9nLnNob3coKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7ICAgCisgICAgICAgIAorICAgICAgICBoZXhEaWFsb2cgPSBuZXcgSW5mb0RpYWxvZyh0aGlzLCAiSGV4IEVudHJ5IiwgIlVzZSBVKy4uLiwgXFx1Li4uLCBcXHh7Li4ufSwgb3IgJiN4Li4uOyIsCisgICAgICAgICAgICJcXHUwMEUxIgorICAgICAgICApOworICAgICAgICBCdXR0b24gYnV0dG9uID0gbmV3IEJ1dHRvbigiSW5zZXJ0Iik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBoZXhWYWx1ZSA9IGhleERpYWxvZy5nZXRBcmVhKCkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIHRleHQuaW5zZXJ0VGV4dChmcm9tSGV4LnRyYW5zbGl0ZXJhdGUoaGV4VmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGhleERpYWxvZy5nZXRCb3R0b20oKS5hZGQoYnV0dG9uKTsKKyAgICAgICAgCisgICAgICAgIGhlbHBNZW51LmFkZChtaXRlbSA9IG5ldyBNZW51SXRlbSgiSGV4Li4uIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX0gpKSk7CisgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGV4RGlhbG9nLnNob3coKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBDb21wb3VuZCBUcmFuc2xpdGVyYXRvcgorICAgICAgICAKKyAgICAgICAgY29tcG91bmREaWFsb2cgPSBuZXcgSW5mb0RpYWxvZyh0aGlzLCAiQ29tcG91bmQgVHJhbnNsaXRlcmF0b3IiLCAiIiwKKyAgICAgICAgICAgIlteXFx1MDAwMC1cXHUwMEZGXSBoZXgiCisgICAgICAgICk7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIlNldCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tcG91bmQgPSAiIjsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZCA9IGNvbXBvdW5kRGlhbG9nLmdldEFyZWEoKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKGNvbXBvdW5kLCBudWxsKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRGlhbG9nLmdldEFyZWEoKS5zZXRUZXh0KGNvbXBvdW5kICsgIlxuIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgY29tcG91bmREaWFsb2cuZ2V0Qm90dG9tKCkuYWRkKGJ1dHRvbik7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJNdWx0aXBsZS4uLiIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19NKSkpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGNvbXBvdW5kRGlhbG9nLnNob3coKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBSdWxlQmFzZWQgVHJhbnNsaXRlcmF0b3IKKyAgICAgICAgCisgICAgICAgIHJ1bGVzRGlhbG9nID0gbmV3IEluZm9EaWFsb2codGhpcywgIlJ1bGUtQmFzZWQgVHJhbnNsaXRlcmF0b3IiLCAiIiwKKyAgICAgICAgICAgIihbQS1aXSkgPiAmSGV4KCQxKSAmTmFtZSgkMSk7XHJcbiIgCisgICAgICAgICAgICArICImSGV4LUFueSgkMSkgPCAoJ1xcJyBbdVVdIFthLWZBLUYwLTldKik7XHJcbiIgCisgICAgICAgICAgICArICImTmFtZS1BbnkoJDEpIDwgKCd7JyBbXlxcfV0qICd9Jyk7IgorICAgICAgICApOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCJTZXQiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNvbXBvdW5kID0gIiI7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgY29tcG91bmQgPSBydWxlc0RpYWxvZy5nZXRBcmVhKCkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSBydWxlSWQuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgICAgICBzZXRUcmFuc2xpdGVyYXRvcihjb21wb3VuZCwgaWQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXNEaWFsb2cuZ2V0QXJlYSgpLnNldFRleHQoY29tcG91bmQgKyAiXG4jIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgcnVsZXNEaWFsb2cuZ2V0Qm90dG9tKCkuYWRkKGJ1dHRvbik7CisgICAgICAgIHJ1bGVJZCA9IG5ldyBUZXh0RmllbGQoInRlc3QxIiwgMjApOworICAgICAgICBMYWJlbCB0ZW1wID0gbmV3IExhYmVsKCIgTmFtZToiKTsKKyAgICAgICAgcnVsZXNEaWFsb2cuZ2V0Qm90dG9tKCkuYWRkKHRlbXApOworICAgICAgICBydWxlc0RpYWxvZy5nZXRCb3R0b20oKS5hZGQocnVsZUlkKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJGcm9tIFJ1bGVzLi4uIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX1IpKSk7CisgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcnVsZXNEaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJGcm9tIEZpbGUuLi4iLCAKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfRikpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEZpbGVMaXN0ZW5lcih0aGlzLCBSVUxFX0ZJTEUpKTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIlRlc3QgRmlsZS4uLiIpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEZpbGVMaXN0ZW5lcih0aGlzLCBURVNUX0ZJTEUpKTsKKyAgICAgICAgCisgICAgICAgIC8vIEZsZXNoIG91dCB0aGUgbWVudSB3aXRoIHRoZSBpbnN0YWxsZWQgdHJhbnNsaXRlcmF0b3JzCisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkU2VwYXJhdG9yKCk7CisgICAgICAgIAorICAgICAgICBJdGVyYXRvciBzb3VyY2VzID0gYWRkKG5ldyBUcmVlU2V0KCksIFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKSkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUoc291cmNlcy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBzb3VyY2VzLm5leHQoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIHRhcmdldHMgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVGFyZ2V0cyhzb3VyY2UpKS5pdGVyYXRvcigpOworICAgICAgICAgICAgTWVudSB0YXJnZXRNZW51ID0gbmV3IE1lbnUoc291cmNlKTsKKyAgICAgICAgICAgIHdoaWxlKHRhcmdldHMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHRhcmdldHMubmV4dCgpOworICAgICAgICAgICAgICAgIFNldCB2YXJpYW50U2V0ID0gYWRkKG5ldyBUcmVlU2V0KCksIFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KSk7CisgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRTZXQuc2l6ZSgpIDwgMikgeworICAgICAgICAgICAgICAgICAgICBtaXRlbSA9IG5ldyBNZW51SXRlbSh0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIoc291cmNlICsgIi0iICsgdGFyZ2V0KSk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldE1lbnUuYWRkKG1pdGVtKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciB2YXJpYW50cyA9IHZhcmlhbnRTZXQuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgTWVudSB2YXJpYW50TWVudSA9IG5ldyBNZW51KHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKHZhcmlhbnRzLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAoU3RyaW5nKSB2YXJpYW50cy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWVudU5hbWUgPSB2YXJpYW50Lmxlbmd0aCgpID09IDAgPyAiPGRlZmF1bHQ+IiA6IHZhcmlhbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiPCIgKyBzb3VyY2UgKyAiLSIgKyB0YXJnZXQgKyAiLyIgKyB2YXJpYW50ICsgIj4sIDwiICsgbWVudU5hbWUgKyAiPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgbWl0ZW0gPSBuZXcgTWVudUl0ZW0obWVudU5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IFRyYW5zbGl0ZXJhdGlvbkxpc3RlbmVyKHNvdXJjZSArICItIiArIHRhcmdldCArICIvIiArIHZhcmlhbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRNZW51LmFkZChtaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TWVudS5hZGQodmFyaWFudE1lbnUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyYW5zbGl0TWVudS5hZGQodGFyZ2V0TWVudSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFJVTEVfRklMRSA9IDAsIFRFU1RfRklMRSA9IDE7CisgICAgLy8KKyAgICBzdGF0aWMgY2xhc3MgRmlsZUxpc3RlbmVyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworICAgICAgICBEZW1vIGZyYW1lOworICAgICAgICBpbnQgY2hvaWNlOworICAgICAgICAKKyAgICAgICAgRmlsZUxpc3RlbmVyKERlbW8gZnJhbWUsIGludCBjaG9pY2UpIHsKKyAgICAgICAgICAgIHRoaXMuZnJhbWUgPSBmcmFtZTsKKyAgICAgICAgICAgIHRoaXMuY2hvaWNlID0gY2hvaWNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gZnJhbWUudHJhbnNsaXQuZ2V0SUQoKTsKKyAgICAgICAgICAgIGludCBzbGFzaFBvcyA9IGlkLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgICAgICBpZiAoc2xhc2hQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgIHZhcmlhbnQgPSAiXyIgKyBpZC5zdWJzdHJpbmcoc2xhc2hQb3MrMSk7CisgICAgICAgICAgICAgICAgaWQgPSBpZC5zdWJzdHJpbmcoMCwgc2xhc2hQb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBGaWxlRGlhbG9nIGZpbGVEaWFsb2cgPSBuZXcgRmlsZURpYWxvZyhmcmFtZSwgIklucHV0IEZpbGUiKTsKKyAgICAgICAgICAgIGZpbGVEaWFsb2cuc2V0RmlsZSgiVGVzdF8iICsgaWQgKyAiLnR4dCIpOworICAgICAgICAgICAgZmlsZURpYWxvZy5zaG93KCk7CisgICAgICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBmaWxlRGlhbG9nLmdldEZpbGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBmaWxlRGlyZWN0b3J5ID0gZmlsZURpYWxvZy5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgICAgIGlmIChmaWxlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoZmlsZURpcmVjdG9yeSwgZmlsZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2hvaWNlID09IFJVTEVfRklMRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkIHN0dWZmIGludG8gYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMsICJVVEY4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IsIDMyKjEwMjQpOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGluZSA9IGJyLnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPiAwICYmIGxpbmUuY2hhckF0KDApID09ICdcdUZFRkYnKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7IC8vIHN0cmlwIEJPTQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zZm9ybSBmaWxlIG5hbWUgaW50byBpZAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVOYW1lLnN0YXJ0c1dpdGgoIlRyYW5zbGl0ZXJhdG9yXyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHJpbmcoIlRyYW5zbGl0ZXJhdG9yXyIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IGZpbGVOYW1lLmluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBmaWxlTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBmaWxlTmFtZS5zdWJzdHJpbmcoMCwgcG9zKSArICItIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zMiA9IGZpbGVOYW1lLmluZGV4T2YoJ18nLCBwb3MrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvczIgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkICs9IGZpbGVOYW1lLnN1YnN0cmluZyhwb3MrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgKz0gZmlsZU5hbWUuc3Vic3RyaW5nKHBvcysxLCBwb3MyKSArICIvIiArIGZpbGVOYW1lLnN1YnN0cmluZyhwb3MyICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaWQubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gMCkgaWQgPSBpZC5zdWJzdHJpbmcoMCwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93IHNldAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS5zZXRUcmFuc2xpdGVyYXRvcihidWZmZXIudG9TdHJpbmcoKSwgaWQpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNob2ljZSA9PSBURVNUX0ZJTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlblRlc3RGaWxlKGYsIGZyYW1lLnRyYW5zbGl0LCB2YXJpYW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICBlMi5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcm9ibGVtIG9wZW5pbmcvcmVhZGluZzogIiArIGZpbGVEaXJlY3RvcnkgKyAiLCAiICsgZmlsZU5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbGVEaWFsb2cuZGlzcG9zZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorCisgICAgYm9vbGVhbiB0cmFuc2xpdGVyYXRlVHlwaW5nID0gdHJ1ZTsKKyAgICBUcmFuc2xpdGVyYXRvciBmcm9tSGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1BbnkiKTsKKyAgICBJbmZvRGlhbG9nIGhlbHBEaWFsb2c7CisgICAgSW5mb0RpYWxvZyBoZXhEaWFsb2c7CisgICAgSW5mb0RpYWxvZyBjb21wb3VuZERpYWxvZzsKKyAgICBJbmZvRGlhbG9nIHJ1bGVzRGlhbG9nOworICAgIFRleHRGaWVsZCBydWxlSWQ7CisgICAgTWVudUl0ZW0gY29udmVydFNlbGVjdGlvbkl0ZW0gPSBudWxsOworICAgIE1lbnVJdGVtIHN3YXBTZWxlY3Rpb25JdGVtID0gbnVsbDsKKyAgICBNZW51SXRlbSBjb252ZXJ0VHlwaW5nSXRlbSA9IG51bGw7CisgICAgTWVudSBoaXN0b3J5TWVudTsKKyAgICBNYXAgaGlzdG9yeU1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgU2V0IGhpc3RvcnlTZXQgPSBuZXcgVHJlZVNldChuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgICAgICBNZW51SXRlbSBhYSA9IChNZW51SXRlbSlhOworICAgICAgICAgICAgICAgIE1lbnVJdGVtIGJiID0gKE1lbnVJdGVtKWI7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFhLmdldExhYmVsKCkuY29tcGFyZVRvKGJiLmdldExhYmVsKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgLy8gQUREIEZhY3Rvcnkgc2luY2Ugb3RoZXJ3aXNlIGdldEludmVyc2UgYmxvd3Mgb3V0CisgICAgc3RhdGljIGNsYXNzIER1bW15RmFjdG9yeSBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICBzdGF0aWMgRHVtbXlGYWN0b3J5IHNpbmdsZXRvbiA9IG5ldyBEdW1teUZhY3RvcnkoKTsKKyAgICAgICAgc3RhdGljIEhhc2hNYXAgbSA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgLy8gU2luY2UgVHJhbnNsaXRlcmF0b3JzIGFyZSBpbW11dGFibGUsIHdlIGRvbid0IGhhdmUgdG8gY2xvbmUgb24gc2V0ICYgZ2V0CisgICAgICAgIHN0YXRpYyB2b2lkIGFkZChTdHJpbmcgSUQsIFRyYW5zbGl0ZXJhdG9yIHQpIHsKKyAgICAgICAgICAgIG0ucHV0KElELCB0KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmc6ICIgKyBJRCArICIsICIgKyB0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KElELCBzaW5nbGV0b24pOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgIHJldHVybiAoVHJhbnNsaXRlcmF0b3IpIG0uZ2V0KElEKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBwcmludEJyZWFrcyhpbnQgbnVtLCBTdHJpbmcgdGVzdFNvdXJjZSwgQnJlYWtJdGVyYXRvciBiaSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgICAgIGludCBsYXN0UG9zID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBwb3MgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAocG9zID09IEJyZWFrSXRlcmF0b3IuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICByZXN1bHQgKz0gdGVzdFNvdXJjZS5zdWJzdHJpbmcobGFzdFBvcywgcG9zKSArICImIjsKKyAgICAgICAgICAgIGxhc3RQb3MgPSBwb3M7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocG9zKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3QiICsgbnVtICsgIjogIiArIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50SXRlcmF0aW9uKGludCBudW0sIFN0cmluZyB0ZXN0U291cmNlLCBDaGFyYWN0ZXJJdGVyYXRvciBjaSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gY2kubmV4dCgpOworICAgICAgICAgICAgaWYgKGNoID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIGJyZWFrOworICAgICAgICAgICAgcmVzdWx0ICs9IGNoICsgIigiICsgY2kuZ2V0SW5kZXgoKSArICIpIjsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3QiICsgbnVtICsgIjogIiArIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50U291cmNlcygpIHsKKyAgICAgICAgU3RyaW5nW10gbGlzdCA9IHsiTGF0aW4tVGhhaUxvZ2ljYWwiLCAiVGhhaUxvZ2ljYWwtTGF0aW4iLCAiVGhhaS1UaGFpTG9naWNhbCIsICJUaGFpTG9naWNhbC1UaGFpIn07CisgICAgICAgIFVuaWNvZGVTZXQgYWxsID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ciA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGxpc3RbaV0pOworICAgICAgICAgICAgVW5pY29kZVNldCBzcmMgPSB0ci5nZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaXN0W2ldICsgIjogIiArIHNyYy50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgYWxsLmFkZEFsbChzcmMpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQWxsOiAiICsgYWxsLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIFVuaWNvZGVTZXQgcmVtID0gbmV3IFVuaWNvZGVTZXQoIltbOmxhdGluOl1bOnRoYWk6XV0iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtaXNzaW5nIGZyb20gWzpsYXRpbjpdWzp0aGFpOl06ICIgKyBhbGwucmVtb3ZlQWxsKHJlbSkudG9QYXR0ZXJuKHRydWUpKTsKKyAgICB9CisgICAgCisgICAgLy8gMjAwRTtMRUZULVRPLVJJR0hUIE1BUks7Q2Y7MDtMOzs7OztOOzs7OzsKKworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0aXRsZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJ0aXRsZSIpOworICAgIHN0YXRpYyBTdHJpbmcgaGV4QW5kTmFtZVJ1bGVzID0gIiAgICAoWzpjOl0pID4gXFx1MjAwRSAmaGV4L3VuaWNvZGUoJDEpICcgKCApICcgJm5hbWUoJDEpIFxcdTIwMEUgJyAnOyIKKyAgICAgICAgKyAiKFs6bWFyazpdKSA+IFxcdTIwMEUgJmhleC91bmljb2RlKCQxKSAnICggJyBcXHUyMDBFIFx1MjVDQyAkMSBcXHUyMDBFICcgKSAnICZuYW1lKCQxKSBcXHUyMDBFICcgJzsiCisgICAgICAgICsgIiguKSA+IFxcdTIwMEUgJmhleC91bmljb2RlKCQxKSAnICggJyBcXHUyMDBFICQxIFxcdTIwMEUgJyApICcgJm5hbWUoJDEpICcgJyBcXHUyMDBFOyI7CisKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgaGV4QW5kTmFtZSA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiYW55LWhleEFuZE5hbWUiLCAKKyAgICAgICAgaGV4QW5kTmFtZVJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAKKworCisgICAgLy9zdGF0aWMgVHJhbnNsaXRlcmF0b3IgdXBwZXIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgidXBwZXIiKTsKKyAgICAgCisgICAgc3RhdGljIGZpbmFsIGJ5dGUgTk9ORSA9IDAsIFRJVExFV09SRCA9IDEsIFRJVExFTElORSA9IDI7CisgICAgCisgICAgc3RhdGljIHZvaWQgZ2VuVGVzdEZpbGUoRmlsZSBzb3VyY2VGaWxlLCBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCwgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZWFkaW5nOiAiICsgc291cmNlRmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBuZXcgQnVmZmVyZWRSZWFkZXIoCisgICAgICAgICAgICAgICAgbmV3IElucHV0U3RyZWFtUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZUlucHV0U3RyZWFtKHNvdXJjZUZpbGUpLCAiVVRGLTgiKSk7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0RmlsZSA9IHNvdXJjZUZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpOworICAgICAgICAgICAgaW50IGRvdFBvcyA9IHRhcmdldEZpbGUubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgICAgIGlmIChkb3RQb3MgPj0gMCkgdGFyZ2V0RmlsZSA9IHRhcmdldEZpbGUuc3Vic3RyaW5nKDAsZG90UG9zKTsKKyAgICAgICAgICAgIHRhcmdldEZpbGUgKz0gdmFyaWFudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRmlsZSBvdXRGaWxlID0gbmV3IEZpbGUodGFyZ2V0RmlsZSArICIuaHRtbCIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nOiAiICsgb3V0RmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSksICJVVEYtOCIpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBkaXJlY3Rpb24gPSAiIjsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IHRyYW5zbGl0LmdldElEKCk7CisgICAgICAgICAgICBpZiAoaWQuaW5kZXhPZigiQXJhYmljIikgPj0gMCB8fCBpZC5pbmRleE9mKCJIZWJyZXciKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gIiBkaXJlY3Rpb246IHJ0bDsiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbGVhbiB0ZXN0Um91bmRUcmlwID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2xlYW4gZ2VuZXJhdGVTZXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChpZC5zdGFydHNXaXRoKCJIYW4tIikgfHwgaWQuc3RhcnRzV2l0aCgiamEtIikpIHsKKyAgICAgICAgICAgICAgICB0ZXN0Um91bmRUcmlwID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZ2VuZXJhdGVTZXRzID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxzdHlsZT48IS0tIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigidGQsIHRoICAgICAgIHsgdmVydGljYWwtYWxpZ246IHRvcDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInRkLnMgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOyIgKyBkaXJlY3Rpb24gKyAiIH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZC5yICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogI0NDQ0NDQzsiICsgZGlyZWN0aW9uICsgIiB9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigidGQubiAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7IH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZC50aXRsZSAgICAgICB7IGJvcmRlcjogMHB4IHNvbGlkIGJsYWNrfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInNwYW4uZCAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICNGRjY2NjYgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInNwYW4uciAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICM2NkZGNjYgfSIpOworCisgICAgICAgICAgICBvdXQucHJpbnRsbigiYm9keSAgICAgICAgIHsgZm9udC1mYW1pbHk6ICdBcmlhbCBVbmljb2RlIE1TJywgJ0x1Y2lkYSBTYW5zIFVuaWNvZGUnLCBBcmlhbCwgc2Fucy1zZXJpZjsgbWFyZ2luOiA1IH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCItLT48L3N0eWxlPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0aXRsZT4iICsgaWQgKyAiIFRyYW5zbGl0ZXJhdGlvbiBDaGVjazwvdGl0bGU+PC9oZWFkPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxib2R5IGJnY29sb3I9JyNGRkZGRkYnPjxwPlNlZSA8YSBocmVmPSdUZXN0X0luc3RydWN0aW9ucy5odG1sJz5UZXN0X0luc3RydWN0aW9ucy5odG1sPC9hPiBmb3IgZGV0YWlscy48L3A+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRhYmxlPiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL291dC5wcmludGxuKCI8dHI+PHRoIHdpZHRoPSczMyUnPlRoYWk8L3RoPjx0aCB3aWR0aD0nMzMlJz5MYXRpbjwvdGg+PHRoIHdpZHRoPSczMyUnPlRoYWk8L3RoPjwvdHI+Iik7CisgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGwgPSB0cmFuc2xpdDsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGx0ID0gdGwuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBsdEZpbHRlciA9IHRsLmdldEludmVyc2UoKTsKKyAgICAgICAgICAgIGx0RmlsdGVyLnNldEZpbHRlcihuZXcgVW5pY29kZVNldCgiWzpeTHU6XSIpKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRsRmlsdGVyID0gbHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgdGxGaWx0ZXIuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbOl5MdTpdIikpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1RyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbOl5MdTpdIiArICBsdC5nZXRJRCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBzZW50ZW5jZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ5dGUgdGl0bGVTZXR0aW5nID0gVElUTEVMSU5FOworICAgICAgICAgICAgYm9vbGVhbiB1cHBlcmZpbHRlciA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09ICdcdUZFRkYnKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7IC8vIHJlbW92ZSBCT00KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT0gJyMnKSBjb250aW51ZTsgLy8gY29tbWVudHMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobGluZS5lcXVhbHMoIkBUSVRMRUNBU0VAIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGl0bGVTZXR0aW5nID0gVElUTEVXT1JEOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjb2xzcGFuPScyJyBjbGFzcz0ndGl0bGUnPjxiPk5hbWVzPC9iPjwvdGQ+PC90cj4iKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsaW5lLmVxdWFscygiQFVQUEVSRklMVEVSQCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHVwcGVyZmlsdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsaW5lLnN0YXJ0c1dpdGgoIkBTRVQiKSkgeworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHMgPSBuZXcgVW5pY29kZVNldChsaW5lLnN1YnN0cmluZyg0KS50cmltKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjb2xzcGFuPScyJyBjbGFzcz0ndGl0bGUnPjxiPkNoYXJhY3RlcnM8L2I+PC90ZD48L3RyPiIpOworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHMpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZW50ZW5jZVRvVGFibGUob3V0LCBpdC5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFVURjE2LnZhbHVlT2YoaXQuY29kZXBvaW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXQuc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PTkUsIHRydWUsIHRlc3RSb3VuZFRyaXAsIGZpcnN0LCB0bCwgbHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNlbnRlbmNlQnJlYWsuc2V0VGV4dChsaW5lKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBlbmQgPSBzZW50ZW5jZUJyZWFrLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVuZCA9PSBCcmVha0l0ZXJhdG9yLkRPTkUpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY29yZVNlbnRlbmNlID0gbGluZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJDb3JlOiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUoY29yZVNlbnRlbmNlKSk7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaW50IG9sZFBvcyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChvbGRQb3MgPCBjb3JlU2VudGVuY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhY2ssIGJlY2F1c2Ugc2VudGVuY2UgZG9lc24ndCBzZWVtIHRvIGJlIHdvcmtpbmcgcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBjb3JlU2VudGVuY2UuaW5kZXhPZigiLiAiLCBvbGRQb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApIHBvcyA9IGNvcmVTZW50ZW5jZS5sZW5ndGgoKTsgZWxzZSBwb3MgPSBwb3MrMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MyID0gY29yZVNlbnRlbmNlLmluZGV4T2YoJ1x1MzAwMicsIG9sZFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zMiA8IDApIHBvczIgPSBjb3JlU2VudGVuY2UubGVuZ3RoKCk7IGVsc2UgcG9zMiA9IHBvczIgKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA+IHBvczIpIHBvcyA9IHBvczI7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc2VudGVuY2UgPSBjb3JlU2VudGVuY2Uuc3Vic3RyaW5nKG9sZFBvcywgcG9zKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiU2VudGVuY2U6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShjb3JlU2VudGVuY2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBvcyA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2VudGVuY2VUb1RhYmxlKG91dCwgc2VudGVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVTZXR0aW5nLCBmYWxzZSwgdGVzdFJvdW5kVHJpcCwgZmlyc3QsIHRsLCBsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPC90YWJsZT48L2JvZHk+Iik7CisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IHdyaXRlIHRoZSBzb3VyY2UvdGFyZ2V0IHNldHMKKyAgICAgICAgICAgIGlmIChnZW5lcmF0ZVNldHMpIHsKKyAgICAgICAgICAgICAgICBvdXRGaWxlID0gbmV3IEZpbGUodGFyZ2V0RmlsZSArICJfU2V0cy5odG1sIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nOiAiICsgb3V0RmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKSwgIlVURi04IikpKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnPiIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8c3R5bGU+PCEtLSIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJib2R5ICAgICAgICAgeyBmb250LWZhbWlseTogJ0FyaWFsIFVuaWNvZGUgTVMnLCAnTHVjaWRhIFNhbnMgVW5pY29kZScsIEFyaWFsLCBzYW5zLXNlcmlmOyBtYXJnaW46IDUgfSIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCItLT48L3N0eWxlPiIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dGl0bGU+IiArIGlkICsgIiBUcmFuc2xpdGVyYXRpb24gU2V0czwvdGl0bGU+PC9oZWFkPiIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8Ym9keSBiZ2NvbG9yPScjRkZGRkZGJz4iKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgZGFzaFBvcyA9IGlkLmluZGV4T2YoJy0nKTsKKyAgICAgICAgICAgICAgICBpbnQgc2xhc2hQb3MgPSBpZC5pbmRleE9mKCcvJyk7CisgICAgICAgICAgICAgICAgaWYgKHNsYXNoUG9zIDwgMCkgc2xhc2hQb3MgPSBpZC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNvdXJjZVN1cGVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGlkLnN1YnN0cmluZygwLGRhc2hQb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAodGVtcC5lcXVhbHMoImphIikpIHNvdXJjZVN1cGVyID0gbmV3IFVuaWNvZGVTZXQoIltbOkhhbjpdWzpoaXJhZ2FuYTpdWzprYXRha2FuYTpdXSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHNvdXJjZVN1cGVyID0gbmV3IFVuaWNvZGVTZXQoIltbOiIgKyB0ZW1wICsgIjpdWzpNbjpdWzpNZTpdXSIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0U3VwZXIgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFN1cGVyID0gbmV3IFVuaWNvZGVTZXQoIltbOiIgKyBpZC5zdWJzdHJpbmcoZGFzaFBvcysxLCBzbGFzaFBvcykgKyAiOl1bOk1uOl1bOk1lOl1dIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IG5mZFN0eWxlID0gQ0xPU0VfQ0FTRSB8IENMT1NFX0ZMQVRURU4gfCBDTE9TRV9DQU5PTklDQUw7CisgICAgICAgICAgICAgICAgaW50IG5ma2RTdHlsZSA9IG5mZFN0eWxlIHwgQ0xPU0VfQ09NUEFUSUJJTElUWTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHVsPiIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8cD48Yj5Ob25lPC9iPjwvcD4iKTsKKyAgICAgICAgICAgICAgICBzaG93U2V0cyhvdXQsIHRyYW5zbGl0LCBsdCwgbnVsbCwgbnVsbCwgMCk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPjxiPk5GRDwvYj48L3A+Iik7CisgICAgICAgICAgICAgICAgc2hvd1NldHMob3V0LCB0cmFuc2xpdCwgbHQsIHNvdXJjZVN1cGVyLCB0YXJnZXRTdXBlciwgbmZkU3R5bGUpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8cD48Yj5ORktEPC9iPjwvcD4iKTsKKyAgICAgICAgICAgICAgICBzaG93U2V0cyhvdXQsIHRyYW5zbGl0LCBsdCwgc291cmNlU3VwZXIsIHRhcmdldFN1cGVyLCBuZmtkU3R5bGUpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3VsPjwvYm9keT4iKTsKKyAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSBXcml0aW5nIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIGFkZFNlbnRlbmNlVG9UYWJsZShQcmludFdyaXRlciBvdXQsIFN0cmluZyBzZW50ZW5jZSwgCisgICAgICAgICAgICBieXRlIHRpdGxlU2V0dGluZywgYm9vbGVhbiBhZGROYW1lLCBib29sZWFuIHRlc3RSb3VuZFRyaXAsIGJvb2xlYW4gZmlyc3QsCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0bCwgVHJhbnNsaXRlcmF0b3IgbHQpIHsKKyAgICAgICAgaWYgKHNlbnRlbmNlLmxlbmd0aCgpID09IDApIHJldHVybjsgLy8gc2tpcCBlbXB0eSBsaW5lcworICAgICAgICAKKyAgICAgICAgU3RyaW5nIG9yaWdpbmFsU2hvdyA9IHNlbnRlbmNlOworICAgICAgICBTdHJpbmcgbGF0aW47CisgICAgICAgIGxhdGluID0gdGwudHJhbnNsaXRlcmF0ZShzYXZlQXNjaWkudHJhbnNsaXRlcmF0ZShzZW50ZW5jZSkpOworCisgICAgICAgIFN0cmluZyBsYXRpblNob3cgPSBsYXRpbjsKKyAgICAgICAgaWYgKHRpdGxlU2V0dGluZyA9PSBUSVRMRVdPUkQpIHsKKyAgICAgICAgICAgIGxhdGluU2hvdyA9IHRpdGxlLnRyYW5zbGl0ZXJhdGUobGF0aW4pOworICAgICAgICB9IGVsc2UgaWYgKHRpdGxlU2V0dGluZyA9PSBUSVRMRUxJTkUpIHsKKyAgICAgICAgICAgIGxhdGluU2hvdyA9IHRpdGxlY2FzZUZpcnN0V29yZChsYXRpblNob3cpOworICAgICAgICB9CisgICAgICAgIGxhdGluU2hvdyA9IHJlc3RvcmVBc2NpaS50cmFuc2xpdGVyYXRlKGxhdGluU2hvdyk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIHJldmVyc2U7CisgICAgICAgIHJldmVyc2UgPSByZXN0b3JlQXNjaWkudHJhbnNsaXRlcmF0ZShsdC50cmFuc2xpdGVyYXRlKGxhdGluKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIE5GS0RTZW50ZW5jZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNlbnRlbmNlLCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICBTdHJpbmcgTkZLRExhdGluID0gTm9ybWFsaXplci5ub3JtYWxpemUobGF0aW4sIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIFN0cmluZyBORktEUmV2ZXJzZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHJldmVyc2UsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIAorICAgICAgICBpZiAobGF0aW5TaG93Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIGxhdGluU2hvdyA9ICI8aT5lbXB0eTwvaT4iOworICAgICAgICB9IGVsc2UgaWYgKE5GS0RTZW50ZW5jZS5lcXVhbHMoTkZLRExhdGluKSkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gIjxzcGFuIGNsYXNzPSdyJz4iICsgbGF0aW5TaG93ICsgIjwvc3Bhbj4iOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXZlcnNlU2hvdyA9IHJldmVyc2U7CisgICAgICAgIAorICAgICAgICBpZiAodGVzdFJvdW5kVHJpcCAmJiAhTkZLRFJldmVyc2UuZXF1YWxzKE5GS0RTZW50ZW5jZSkpIHsKKyAgICAgICAgICAgIGludCBtaW5MZW4gPSByZXZlcnNlLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKG1pbkxlbiA+IHNlbnRlbmNlLmxlbmd0aCgpKSBtaW5MZW4gPSBzZW50ZW5jZS5sZW5ndGgoKTsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1pbkxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJldmVyc2UuY2hhckF0KGkpICE9IHNlbnRlbmNlLmNoYXJBdChpKSkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL29yaWdpbmFsU2hvdyA9IHNlbnRlbmNlLnN1YnN0cmluZygwLGkpICsgIjxzcGFuIGNsYXNzPSdkJz4iICsgc2VudGVuY2Uuc3Vic3RyaW5nKGkpICsgIjwvc3Bhbj4iOworICAgICAgICAgICAgcmV2ZXJzZVNob3cgPSByZXZlcnNlU2hvdy5sZW5ndGgoKSA9PSAwIAorICAgICAgICAgICAgICAgID8gIjxpPmVtcHR5PC9pPiIgCisgICAgICAgICAgICAgICAgLy86IHJldmVyc2Uuc3Vic3RyaW5nKDAsaSkgKyAiPHNwYW4gY2xhc3M9J2QnPiIgKyByZXZlcnNlLnN1YnN0cmluZyhpKSArICI8L3NwYW4+IjsKKyAgICAgICAgICAgICAgICA6IHNob3dEaWZmZXJlbmNlKHNlbnRlbmNlLCByZXZlcnNlKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkIGNsYXNzPSdzJyIgKyAoZmlyc3QgPyAiIHdpZHRoPSc1MCUnPiIgOiAiPiIpICsgb3JpZ2luYWxTaG93IAorICAgICAgICAgICAgICAgICsgIjwvdGQ+PHRkIHJvd1NwYW49JzInPiIgKyBsYXRpblNob3cKKyAgICAgICAgICAgICAgICArICI8L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz0ncic+IiArIHJldmVyc2VTaG93CisgICAgICAgICAgICAgICAgKyAiPC90ZD48L3RyPiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J3MnIiArIChmaXJzdCA/ICIgd2lkdGg9JzUwJSc+IiA6ICI+IikgKyBvcmlnaW5hbFNob3cgCisgICAgICAgICAgICAgICAgKyAiPC90ZD48dGQ+IiArIGxhdGluU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PC90cj4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYWRkTmFtZSkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gaGV4QW5kTmFtZS50cmFuc2xpdGVyYXRlKGxhdGluKTsKKyAgICAgICAgICAgIGlmIChsYXRpblNob3cubGVuZ3RoKCkgPT0gMCkgbGF0aW5TaG93ID0gIjxpPmVtcHR5PC9pPiI7CisgICAgICAgICAgICBvcmlnaW5hbFNob3cgPSBoZXhBbmROYW1lLnRyYW5zbGl0ZXJhdGUoc2VudGVuY2UpOworICAgICAgICAgICAgaWYgKG9yaWdpbmFsU2hvdy5sZW5ndGgoKSA9PSAwKSBvcmlnaW5hbFNob3cgPSAiPGk+ZW1wdHk8L2k+IjsKKworICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J24nPiIgKyBvcmlnaW5hbFNob3cKKyAgICAgICAgICAgICAgICArICI8L3RkPjx0ZCBjbGFzcz0nbic+IiArIGxhdGluU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PC90cj4iKTsKKyAgICAgICAgfQorICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZD48L3RkPjwvdHI+Iik7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIHNob3dEaWZmZXJlbmNlKFN0cmluZyBhcywgU3RyaW5nIGJzKSB7CisgICAgICAgIERpZmZlciBkaWZmZXIgPSBuZXcgRGlmZmVyKDMwMCwgMyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBtYXggPSBhcy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG1heCA8IGJzLmxlbmd0aCgpKSBtYXggPSBicy5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPD0gbWF4OyArK2opIHsKKyAgICAgICAgICAgIGlmIChqIDwgYXMubGVuZ3RoKCkpIGRpZmZlci5hZGRBKGFzLnN1YnN0cmluZyhqLCBqKzEpKTsKKyAgICAgICAgICAgIGlmIChqIDwgYnMubGVuZ3RoKCkpIGRpZmZlci5hZGRCKGJzLnN1YnN0cmluZyhqLCBqKzEpKTsKKyAgICAgICAgICAgIGRpZmZlci5jaGVja01hdGNoKGogPT0gbWF4KTsKKworICAgICAgICAgICAgaWYgKGRpZmZlci5nZXRBQ291bnQoKSAhPSAwIHx8IGRpZmZlci5nZXRCQ291bnQoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiLi4uIik7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZlci5nZXRBQ291bnQoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIjxzcGFuIGNsYXNzPSdyJz4iKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkaWZmZXIuZ2V0QUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChkaWZmZXIuZ2V0QShpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiPC9zcGFuPiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZGlmZmVyLmdldEJDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiPHNwYW4gY2xhc3M9J2QnPiIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRpZmZlci5nZXRCQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGRpZmZlci5nZXRCKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8L3NwYW4+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIi4uLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgc2hvd1NldHMoUHJpbnRXcml0ZXIgb3V0LCBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCwgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSwKKyAgICAgIFVuaWNvZGVTZXQgc291cmNlU3VwZXIsIFVuaWNvZGVTZXQgdGFyZ2V0U3VwZXIsIGludCBvcHRpb25zKSB7CisgICAgICAgIG91dC5wcmludGxuKCI8bGk+U291cmNlIFNldDo8dWw+PGxpPiIgKyAgICAgICAgIHRvUGF0dGVybihjbG9zZVVuaWNvZGVTZXQodHJhbnNsaXQuZ2V0U291cmNlU2V0KCksIG9wdGlvbnMpLCBzb3VyY2VTdXBlcikgKyAiPC9saT48L3VsPjwvbGk+Iik7CisgICAgICAgIG91dC5wcmludGxuKCI8bGk+UmV2ZXJzZSBUYXJnZXQgU2V0Ojx1bD48bGk+IiArIHRvUGF0dGVybihjbG9zZVVuaWNvZGVTZXQoaW52ZXJzZS5nZXRUYXJnZXRTZXQoKSwgIG9wdGlvbnMpLCBzb3VyY2VTdXBlcikgKyAiPC9saT48L3VsPjwvbGk+Iik7CisgICAgICAgIG91dC5wcmludGxuKCI8bGk+VGFyZ2V0IFNldDo8dWw+PGxpPiIgKyAgICAgICAgIHRvUGF0dGVybihjbG9zZVVuaWNvZGVTZXQodHJhbnNsaXQuZ2V0VGFyZ2V0U2V0KCksIG9wdGlvbnMpLCB0YXJnZXRTdXBlcikgKyAiPC9saT48L3VsPjwvbGk+Iik7CisgICAgICAgIG91dC5wcmludGxuKCI8bGk+UmV2ZXJzZSBTb3VyY2UgU2V0Ojx1bD48bGk+IiArIHRvUGF0dGVybihjbG9zZVVuaWNvZGVTZXQoaW52ZXJzZS5nZXRTb3VyY2VTZXQoKSwgIG9wdGlvbnMpLCB0YXJnZXRTdXBlcikgKyAiPC9saT48L3VsPjwvbGk+Iik7CisgICAgfQorICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IENMT1NFX0NBU0UgPSAxLCBDTE9TRV9GTEFUVEVOID0gMiwgQ0xPU0VfQ0FOT05JQ0FMID0gNCwgQ0xPU0VfQ09NUEFUSUJJTElUWSA9IDg7CisgICAgCisgICAgc3RhdGljIFVuaWNvZGVTZXQgY2xvc2VVbmljb2RlU2V0KFVuaWNvZGVTZXQgc291cmNlLCBpbnQgb3B0aW9ucykgeworICAgICAgICBpZiAob3B0aW9ucyA9PSAwKSByZXR1cm4gc291cmNlOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBVbmljb2RlU2V0IGFkZGl0aW9ucyA9IG5ldyBVbmljb2RlU2V0KCk7IC8vIHRvIGF2b2lkIG1lc3NpbmcgdXAgaXRlcmF0b3IKKyAgICAgICAgVW5pY29kZVNldCByZW1vdmFscyA9IG5ldyBVbmljb2RlU2V0KCk7IC8vIHRvIGF2b2lkIG1lc3NpbmcgdXAgaXRlcmF0b3IKKyAgICAgICAgU3RyaW5nIGJhc2U7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgCisgICAgICAgIC8vIEFkZCBhbGwgY2FzZSBlcXVpdmFsZW50cworICAgICAgICBpZiAoKG9wdGlvbnMgJiBDTE9TRV9DQVNFKSAhPSAwKSB7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgY3AgPSBpdC5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgaWYgKGNwID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBDaGFyYWN0ZXIuVVBQRVJDQVNFX0xFVFRFUiB8fCB0eXBlID09IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSIHx8IHR5cGUgPT0gQ2hhcmFjdGVyLlRJVExFQ0FTRV9MRVRURVIpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25zLmFkZChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFVURjE2LnZhbHVlT2YoY3ApKSk7CisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9ucy5hZGQoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShVVEYxNi52YWx1ZU9mKGNwKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hZGRBbGwoYWRkaXRpb25zKTsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICAvLyBBZGQgdGhlIGNhbm9uaWNhbCBjbG9zdXJlIG9mIGFsbCBzdHJpbmdzIGFuZCBjaGFyYWN0ZXJzIGluIHNvdXJjZQorICAgICAgICBpZiAoKG9wdGlvbnMgJiBDTE9TRV9DQU5PTklDQUwpICE9IDApIHsKKyAgICAgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgICAgICBhZGRpdGlvbnMuY2xlYXIoKTsKKyAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGNpID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKCIuIik7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0LmNvZGVwb2ludCA9PSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSBiYXNlID0gaXQuc3RyaW5nOworICAgICAgICAgICAgICAgIGVsc2UgYmFzZSA9IFVURjE2LnZhbHVlT2YoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBjaS5zZXRTb3VyY2UoYmFzZSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gY2kubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodHJpYWwgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cmlhbC5lcXVhbHMoYmFzZSkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkKHRyaWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UuYWRkQWxsKGFkZGl0aW9ucyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBmbGF0dGVuIHN0cmluZ3MKKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0xPU0VfRkxBVFRFTikgIT0gMCkgeworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGFkZGl0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgY29udGludWU7CisgICAgICAgICAgICAgICAgYWRkaXRpb25zLmFkZEFsbChpdC5zdHJpbmcpOworICAgICAgICAgICAgICAgIHJlbW92YWxzLmFkZChpdC5zdHJpbmcpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJmbGF0dGVuaW5nICciICsgaGV4LnRyYW5zbGl0ZXJhdGUoaXQuc3RyaW5nKSArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UuYWRkQWxsKGFkZGl0aW9ucyk7CisgICAgICAgICAgICBzb3VyY2UucmVtb3ZlQWxsKHJlbW92YWxzKTsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICAvLyBOb3cgYWRkIGRlY29tcG9zaXRpb25zIG9mIGNoYXJhY3RlcnMgaW4gc291cmNlCisgICAgICAgIGlmICgob3B0aW9ucyAmIENMT1NFX0NPTVBBVElCSUxJVFkpICE9IDApIHsKKyAgICAgICAgICAgIGl0LnJlc2V0KHNvdXJjZSk7CisgICAgICAgICAgICBhZGRpdGlvbnMuY2xlYXIoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIGJhc2UgPSBpdC5zdHJpbmc7CisgICAgICAgICAgICAgICAgZWxzZSBiYXNlID0gVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLmlzTm9ybWFsaXplZChiYXNlLCBOb3JtYWxpemVyLk5GS0QsMCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShiYXNlLCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgICAgIGFkZGl0aW9ucy5hZGQoZGVjb21wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hZGRBbGwoYWRkaXRpb25zKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IGFkZCBhbnkgb3RoZXIgY2hhcmFjdGVyIHRoYXQgZGVjb21wb3NlcyB0byBhIGNoYXJhY3RlciBpbiBzb3VyY2UKKyAgICAgICAgICAgIGZvciAoY3AgPSAwOyBjcCA8IDB4MTBGRkZGOyArK2NwKSB7CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzRGVmaW5lZChjcCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLmlzTm9ybWFsaXplZChjcCwgTm9ybWFsaXplci5ORktELDApKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlLmNvbnRhaW5zKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNwLCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGFpbnNBbGwoZGVjb21wKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZGQoY3ApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZyB0b1BhdHRlcm4oVW5pY29kZVNldCBzb3VyY2UsIFVuaWNvZGVTZXQgc3VwZXJzZXQpIHsKKyAgICAgICAgaWYgKHN1cGVyc2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNvdXJjZS5yZW1vdmVBbGwoc3VwZXJzZXQpOworICAgICAgICAgICAgcmV0dXJuICJbIiArIHN1cGVyc2V0LnRvUGF0dGVybih0cnVlKSArICIgIiArIHNvdXJjZS50b1BhdHRlcm4odHJ1ZSkgKyAiXSI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNvdXJjZS50b1BhdHRlcm4odHJ1ZSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIHRpdGxlY2FzZUZpcnN0V29yZChTdHJpbmcgbGluZSkgeworICAgICAgICAvLyBzZWFyY2ggZm9yIGZpcnN0IHdvcmQgd2l0aCBsZXR0ZXJzLiBJZiB0aGUgZmlyc3QgbGV0dGVyIGlzIGxvd2VyLCB0aGVuIHRpdGxlY2FzZSBpdC4KKyAgICAgICAgYmkuc2V0VGV4dChsaW5lKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBlbmQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAoZW5kID09IEJyZWFrSXRlcmF0b3IuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICBpbnQgZmlyc3RMZXR0ZXJUeXBlID0gZ2V0Rmlyc3RMZXR0ZXJUeXBlKGxpbmUsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgaWYgKGZpcnN0TGV0dGVyVHlwZSAhPSBDaGFyYWN0ZXIuVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgIGlmIChmaXJzdExldHRlclR5cGUgIT0gQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIpIGJyZWFrOworICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBzdGFydCkgCisgICAgICAgICAgICAgICAgICAgICsgVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShsaW5lLnN1YnN0cmluZyhzdGFydCwgZW5kKSwgYmkpCisgICAgICAgICAgICAgICAgICAgICsgbGluZS5zdWJzdHJpbmcoZW5kKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVuZCA9IHN0YXJ0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW5lOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IExFVFRFUl9NQVNLID0gCisgICAgICAgICAgKDE8PENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTE9XRVJDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5NT0RJRklFUl9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5PVEhFUl9MRVRURVIpCisgICAgICAgIDsKKyAgICAKKyAgICBzdGF0aWMgaW50IGdldEZpcnN0TGV0dGVyVHlwZShTdHJpbmcgbGluZSwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KGxpbmUsIGkpOworICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgaWYgKCgoMTw8dHlwZSkgJiBMRVRURVJfTUFTSykgIT0gMCkgcmV0dXJuIHR5cGU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIENoYXJhY3Rlci5VTkFTU0lHTkVEOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBwcmludE5hbWVzKFVuaWNvZGVTZXQgcywgU3RyaW5nIHRhcmdldEZpbGUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZpbGUgb3V0RmlsZSA9IG5ldyBGaWxlKHRhcmdldEZpbGUpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nOiAiICsgb3V0RmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgUHJpbnRXcml0ZXIgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZFdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpLCAiVVRGLTgiKSkpOworICAgICAgICAgICAgVW5pY29kZVNldCBtYWluID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pY29kZVNldCBvdGhlcnMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNEZWZpbmVkKGl0LmNvZGVwb2ludCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmICghTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoaXQuY29kZXBvaW50LCBOb3JtYWxpemVyLk5GRCwwKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUoaXQuY29kZXBvaW50LCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIG90aGVycy5hZGRBbGwoZGVjb21wKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCIgIiArIFVURjE2LnZhbHVlT2YoaXQuY29kZXBvaW50KSArICIgPD4gWFhYICMgIiArIFVDaGFyYWN0ZXIuZ2V0TmFtZShpdC5jb2RlcG9pbnQpKTsKKyAgICAgICAgICAgICAgICBtYWluLmFkZChpdC5jb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAob3RoZXJzLnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIkRlY29tcG9zZWQgY2hhcmFjdGVycyBmb3VuZCBhYm92ZTogIik7CisgICAgICAgICAgICAgICAgb3RoZXJzLnJlbW92ZUFsbChtYWluKTsKKyAgICAgICAgICAgICAgICBpdC5yZXNldChvdGhlcnMpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIiAiICsgVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpICsgIiA8PiBYWFggIyAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGl0LmNvZGVwb2ludCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUgV3JpdGluZyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFx1MDAyMC1cXHUwMDdFXSBoZXgiKTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIHNhdmVSdWxlcyA9IAorICAgICAgICAgICJBIDw+IFx1RUE0MTsgQiA8PiBcdUVBNDI7IEMgPD4gXHVFQTQzOyBEIDw+IFx1RUE0NDsgRSA8PiBcdUVBNDU7IEYgPD4gXHVFQTQ2OyBHIDw+IFx1RUE0NzsgSCA8PiBcdUVBNDg7IEkgPD4gXHVFQTQ5OyAiCisgICAgICAgICsgIkogPD4gXHVFQTRBOyBLIDw+IFx1RUE0QjsgTCA8PiBcdUVBNEM7IE0gPD4gXHVFQTREOyBOIDw+IFx1RUE0RTsgTyA8PiBcdUVBNEY7IFAgPD4gXHVFQTUwOyBRIDw+IFx1RUE1MTsgUiA8PiBcdUVBNTI7ICIKKyAgICAgICAgKyAiUyA8PiBcdUVBNTM7IFQgPD4gXHVFQTU0OyBVIDw+IFx1RUE1NTsgViA8PiBcdUVBNTY7IFcgPD4gXHVFQTU3OyBYIDw+IFx1RUE1ODsgWSA8PiBcdUVBNTk7IFogPD4gXHVFQTVBOyAiCisgICAgICAgICsgImEgPD4gXHVFQTYxOyBiIDw+IFx1RUE2MjsgYyA8PiBcdUVBNjM7IGQgPD4gXHVFQTY0OyBlIDw+IFx1RUE2NTsgZiA8PiBcdUVBNjY7IGcgPD4gXHVFQTY3OyBoIDw+IFx1RUE2ODsgaSA8PiBcdUVBNjk7ICIKKyAgICAgICAgKyAiaiA8PiBcdUVBNkE7IGsgPD4gXHVFQTZCOyBsIDw+IFx1RUE2QzsgbSA8PiBcdUVBNkQ7IG4gPD4gXHVFQTZFOyBvIDw+IFx1RUE2RjsgcCA8PiBcdUVBNzA7IHEgPD4gXHVFQTcxOyByIDw+IFx1RUE3MjsgIgorICAgICAgICArICJzIDw+IFx1RUE3MzsgdCA8PiBcdUVBNzQ7IHUgPD4gXHVFQTc1OyB2IDw+IFx1RUE3NjsgdyA8PiBcdUVBNzc7IHggPD4gXHVFQTc4OyB5IDw+IFx1RUE3OTsgeiA8PiBcdUVBN0E7IjsKKyAgICAgICAgCisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHNhdmVBc2NpaSA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiYXNjaWktc2F2ZWQiLCBzYXZlUnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciByZXN0b3JlQXNjaWkgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImFzY2lpLXNhdmVkIiwgc2F2ZVJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAKKyAgICBzdGF0aWMgeworICAgICAgICAKKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgIAorICAgICAgICBmb3IgKGNoYXIgaSA9ICdBJzsgaSA8PSAneic7ICsraSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChpICsgIiA8PiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUoU3RyaW5nLnZhbHVlT2YoKGNoYXIpKDB4RUEwMCArIGkpKSkgKyAiOyAiKTsKKyAgICAgICAgfQorCisgICAgICAgIFVuaWNvZGVTZXQgeCA9IG5ldyBVbmljb2RlU2V0KCJbWzpeY2NjPTA6XSZbOl5jY2M9MjMwOl1dIik7CisgICAgICAgIHggPSB4LmNvbXBsZW1lbnQoKTsKKyAgICAgICAgeCA9IHguY29tcGxlbWVudCgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3Q6ICIgKyB4LnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciB5ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ4eHgiLCAiJG5vdEFib3ZlID0gW1s6XmNjYz0wOl0mWzpeY2NjPTIzMDpdXTsgdSAoJG5vdEFib3ZlKikgXHUwMzA4ID4gWFhYIHwgJDE7ICIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gdGVzdExpc3QgPSB7InVcdTAzMDgiLCAidVx1MDMxNlx1MDMwOCIsICJ1XHUwMzA4XHUwMzE2IiwgInVcdTAzMDFcdTAzMDgiLCAidVx1MDMwOFx1MDMwMSJ9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RMaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgeXkgPSB5LnRyYW5zbGl0ZXJhdGUodGVzdExpc3RbaV0pOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGhleC50cmFuc2xpdGVyYXRlKHRlc3RMaXN0W2ldKSArICIgPT4gIiArIGhleC50cmFuc2xpdGVyYXRlKHl5KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vcHJpbnROYW1lcyhuZXcgVW5pY29kZVNldCgiW1x1MDYwMC1cdTA2RkZdIiksICJBcmFiaWMtTGF0aW4udHh0Iik7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgLyogIAorICAgICAgICBCcmVha1RyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIAorICAgICAgICBCcmVha1RyYW5zbGl0ZXJhdG9yIHRlc3RUcmFucyA9IG5ldyBCcmVha1RyYW5zbGl0ZXJhdG9yKCJBbnktWFhYIiwgbnVsbCwgbnVsbCwgIiQiKTsKKyAgICAgICAgU3RyaW5nIHRlc3RTb3VyY2UgPSAiVGhlIFF1aWNrOiAgIEJyb3duIGZveC0tanVtcGVkLiI7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSB0ZXN0VHJhbnMuZ2V0QnJlYWtJdGVyYXRvcigpOworICAgICAgICBiaS5zZXRUZXh0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXN0U291cmNlKSk7CisgICAgICAgIHByaW50QnJlYWtzKDAsIHRlc3RTb3VyY2UsIGJpKTsKKyAgICAgICAgLy9iaS5zZXRUZXh0KFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0U291cmNlKSk7CisgICAgICAgIC8vcHJpbnRCcmVha3MoMSwgdGVzdFNvdXJjZSwgYmkpOworICAgICAgICAKKyAgICAgICAgcHJpbnRJdGVyYXRpb24oMiwgdGVzdFNvdXJjZSwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3RTb3VyY2UpKTsKKyAgICAgICAgLy9wcmludEl0ZXJhdGlvbigzLCB0ZXN0U291cmNlLCBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGVzdFNvdXJjZSkpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdCA9IHRlc3RUcmFucy50cmFuc2xpdGVyYXRlKHRlc3RTb3VyY2UpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3QzOiAiICsgdGVzdCk7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQodGVzdFRyYW5zLmdldElEKCksIHRlc3RUcmFucyk7CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICAvLyBBbnlUcmFuc2xpdGVyYXRvci5TY3JpcHRSdW5JdGVyYXRvci5yZWdpc3RlckFueVRvU2NyaXB0KCk7CisgICAgICAgIAorICAgICAgICBBbnlUcmFuc2xpdGVyYXRvciBhdCA9IG5ldyBBbnlUcmFuc2xpdGVyYXRvcigiR3JlZWsiLCBudWxsKTsKKyAgICAgICAgYXQudHJhbnNsaXRlcmF0ZSgiKGNhdCxcdTAzYjEsXHUwOTE1KSIpOworICAgICAgICBEdW1teUZhY3RvcnkuYWRkKGF0LmdldElEKCksIGF0KTsKKyAgICAgICAgCisgICAgICAgIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKCJEZXZhbmFnYXJpIiwgbnVsbCk7CisgICAgICAgIGF0LnRyYW5zbGl0ZXJhdGUoIihjYXQsXHUwM2IxLFx1MDkxNSkiKTsKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZChhdC5nZXRJRCgpLCBhdCk7CisgICAgICAgIAorICAgICAgICBhdCA9IG5ldyBBbnlUcmFuc2xpdGVyYXRvcigiTGF0aW4iLCBudWxsKTsKKyAgICAgICAgYXQudHJhbnNsaXRlcmF0ZSgiKGNhdCxcdTAzYjEsXHUwOTE1KSIpOworICAgICAgICBEdW1teUZhY3RvcnkuYWRkKGF0LmdldElEKCksIGF0KTsKKyAgICAgICAgCisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoIkFueS1naWYiLCBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImdpZiIsICInXFwndSguLikoLi4pID4gJzxpbWcgc3JjPVwiaHR0cDovL3d3dy51bmljb2RlLm9yZy9naWZzLzI0LycgJDEgJy9VJyAkMSQyICcuZ2lmXCI+JzsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSk7ICAgICAgICAKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiZ2lmLUFueSIsIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTnVsbCIpKTsgICAgICAgIAorCisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoIkFueS1SZW1vdmVDdXJseSIsIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiUmVtb3ZlQ3VybHkiLCAiW1xce1xcfV0gPiA7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCkpOyAgICAgICAgCisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoIlJlbW92ZUN1cmx5LUFueSIsIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTnVsbCIpKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHJ5aW5nICZoZXgiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiaGV4MiIsICIoLikgPiAmaGV4KCQxKTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZWdpc3RlcmluZyIpOworICAgICAgICBEdW1teUZhY3RvcnkuYWRkKCJBbnktaGV4MiIsIHQpOyAgICAgICAgCisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRyeWluZyAmZ2lmIik7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImdpZjIiLCAiKC4pID4gJmFueS1naWYoJDEpOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyaW5nIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoIkFueS1naWYyIiwgdCk7ICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIHZvaWQgc2V0VHJhbnNsaXRlcmF0b3IoU3RyaW5nIG5hbWUsIFN0cmluZyBpZCkgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiR290OiAiICsgbmFtZSk7CisgICAgICAgIGlmIChpZCA9PSBudWxsKSB7CisgICAgICAgICAgICB0cmFuc2xpdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIHJldmVyc2VJZCA9ICIiOworICAgICAgICAgICAgaW50IHBvcyA9IGlkLmluZGV4T2YoJy0nKTsKKyAgICAgICAgICAgIGlmIChwb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgcmV2ZXJzZUlkID0gaWQgKyAiLUFueSI7CisgICAgICAgICAgICAgICAgaWQgPSAiQW55LSIgKyBpZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHBvczIgPSBpZC5pbmRleE9mKCIvIiwgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zMiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZUlkID0gaWQuc3Vic3RyaW5nKHBvcysxKSArICItIiArIGlkLnN1YnN0cmluZygwLHBvcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZUlkID0gaWQuc3Vic3RyaW5nKHBvcysxLCBwb3MyKSArICItIiArIGlkLnN1YnN0cmluZygwLHBvcykgKyBpZC5zdWJzdHJpbmcocG9zMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyYW5zbGl0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKGlkLCBuYW1lLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqRm9yd2FyZCBSdWxlcyIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0cmFuc2xpdC50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKlNvdXJjZSBTZXQiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odHJhbnNsaXQuZ2V0U291cmNlU2V0KCkudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKlRhcmdldCBTZXQiKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRhcmdldCA9IHRyYW5zbGl0LmdldFRhcmdldFNldCgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0YXJnZXQudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHJlc3QgPSBuZXcgVW5pY29kZVNldCgiW2Etel0iKS5yZW1vdmVBbGwodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKkFTQ0lJIC0gVGFyZ2V0IFNldCIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZXN0LnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBEdW1teUZhY3RvcnkuYWRkKGlkLCB0cmFuc2xpdCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0MiA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcyhyZXZlcnNlSWQsIG5hbWUsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIqKipCYWNrd2FyZCBSdWxlcyIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0cmFuc2xpdDIudG9SdWxlcyh0cnVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBEdW1teUZhY3RvcnkuYWRkKHJldmVyc2VJZCwgdHJhbnNsaXQyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmV2ID0gdHJhbnNsaXQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIioqKkludmVyc2UgUnVsZXMiKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKHJldi50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHRleHQuZmx1c2goKTsKKyAgICAgICAgdGV4dC5zZXRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdCk7CisgICAgICAgIGNvbnZlcnRTZWxlY3Rpb25JdGVtLnNldExhYmVsKFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKHRyYW5zbGl0LmdldElEKCkpKTsKKyAgICAgICAgCisgICAgICAgIGFkZEhpc3RvcnkodHJhbnNsaXQpOworICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52OworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW52ID0gdHJhbnNsaXQuZ2V0SW52ZXJzZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGludiA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGludiAhPSBudWxsKSB7CisgICAgICAgICAgICBhZGRIaXN0b3J5KGludik7CisgICAgICAgICAgICBzd2FwU2VsZWN0aW9uSXRlbS5zZXRFbmFibGVkKHRydWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3dhcFNlbGVjdGlvbkl0ZW0uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTZXQgdHJhbnNsaXRlcmF0b3I6ICIgKyB0cmFuc2xpdC5nZXRJRCgpCisgICAgICAgICAgICArIChpbnYgPT0gbnVsbCA/ICIgYW5kICIgKyBpbnYuZ2V0SUQoKSA6ICIiKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgYWRkSGlzdG9yeShUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCkgeworICAgICAgICBTdHJpbmcgbmFtZSA9IHRyYW5zbGl0LmdldElEKCk7CisgICAgICAgIE1lbnVJdGVtIGNtaSA9IChNZW51SXRlbSkgaGlzdG9yeU1hcC5nZXQobmFtZSk7CisgICAgICAgIGlmIChjbWkgPT0gbnVsbCkgeworICAgICAgICAgICAgY21pID0gbmV3IE1lbnVJdGVtKFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKG5hbWUpKTsKKyAgICAgICAgICAgIGNtaS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIobmFtZSkpOworICAgICAgICAgICAgaGlzdG9yeU1hcC5wdXQobmFtZSwgY21pKTsKKyAgICAgICAgICAgIGhpc3RvcnlTZXQuYWRkKGNtaSk7CisgICAgICAgICAgICBoaXN0b3J5TWVudS5yZW1vdmVBbGwoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gaGlzdG9yeVNldC5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIGhpc3RvcnlNZW51LmFkZCgoTWVudUl0ZW0paXQubmV4dCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjbGFzcyBUcmFuc2xpdGVyYXRpb25MaXN0ZW5lciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyLCBJdGVtTGlzdGVuZXIgeworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvbkxpc3RlbmVyKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBzZXRUcmFuc2xpdGVyYXRvcihuYW1lLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5nZXRTdGF0ZUNoYW5nZSgpID09IEl0ZW1FdmVudC5TRUxFQ1RFRCkgeworICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKG5hbWUsIG51bGwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXRUcmFuc2xpdGVyYXRvcigiQW55LU51bGwiLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjbGFzcyBGb250QWN0aW9uTGlzdGVuZXIgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBwdWJsaWMgRm9udEFjdGlvbkxpc3RlbmVyKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiRm9udDogIiArIG5hbWUpOworICAgICAgICAgICAgZm9udE5hbWUgPSBuYW1lOworICAgICAgICAgICAgdGV4dC5zZXRGb250KG5ldyBGb250KGZvbnROYW1lLCBGb250LlBMQUlOLCBmb250U2l6ZSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIFNpemVBY3Rpb25MaXN0ZW5lciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKyAgICAgICAgaW50IHNpemU7CisgICAgICAgIHB1YmxpYyBTaXplQWN0aW9uTGlzdGVuZXIoaW50IHNpemUpIHsKKyAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTaXplOiAiICsgc2l6ZSk7CisgICAgICAgICAgICBmb250U2l6ZSA9IHNpemU7CisgICAgICAgICAgICB0ZXh0LnNldEZvbnQobmV3IEZvbnQoZm9udE5hbWUsIEZvbnQuUExBSU4sIGZvbnRTaXplKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU2V0IGFkZChTZXQgcywgRW51bWVyYXRpb24gZW51bWVyYXRpb24pIHsKKyAgICAgICAgd2hpbGUoZW51bWVyYXRpb24uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHMuYWRkKGVudW1lcmF0aW9uLm5leHRFbGVtZW50KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHNvcnRlZCBsaXN0IG9mIHRoZSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3JzLgorICAgICAqLworICAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXRTeXN0ZW1UcmFuc2xpdGVyYXRvck5hbWVzKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlPVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICAgICAgIGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgdi5hZGRFbGVtZW50KGUubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gSW5zZXJ0aW9uIHNvcnQsIE8obl4yKSBhY2NlcHRhYmxlIGZvciBzbWFsbCBuCisgICAgICAgIGZvciAoaW50IGk9MDsgaTwodi5zaXplKCktMSk7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGEgPSAoU3RyaW5nKSB2LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9aSsxOyBqPHYuc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IChTdHJpbmcpIHYuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgIGlmIChhLmNvbXBhcmVUbyhiKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdi5zZXRFbGVtZW50QXQoYiwgaSk7CisgICAgICAgICAgICAgICAgICAgIHYuc2V0RWxlbWVudEF0KGEsIGopOworICAgICAgICAgICAgICAgICAgICBhID0gYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorICAgICovCisKKy8qCisgICAgcHJpdmF0ZSB2b2lkIHNldE5vVHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHRyYW5zbGl0SXRlbSA9IG5vVHJhbnNsaXRJdGVtOworICAgICAgICBub1RyYW5zbGl0SXRlbS5zZXRTdGF0ZSh0cnVlKTsKKyAgICAgICAgaGFuZGxlU2V0VHJhbnNsaXRlcmF0b3Iobm9UcmFuc2xpdEl0ZW0uZ2V0TGFiZWwoKSk7CisgICAgICAgIGNvbXBvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFuc2xpdE1lbnUuZ2V0SXRlbUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgTWVudUl0ZW0gaXQgPSB0cmFuc2xpdE1lbnUuZ2V0SXRlbShpKTsKKyAgICAgICAgICAgIGlmIChpdCAhPSBub1RyYW5zbGl0SXRlbSAmJiBpdCBpbnN0YW5jZW9mIENoZWNrYm94TWVudUl0ZW0pIHsKKyAgICAgICAgICAgICAgICAoKENoZWNrYm94TWVudUl0ZW0pIGl0KS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisqLworLyoKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQWRkVG9Db21wb3VuZChTdHJpbmcgbmFtZSkgeworICAgICAgICBpZiAoY29tcG91bmRDb3VudCA8IE1BWF9DT01QT1VORCkgeworICAgICAgICAgICAgY29tcG91bmRUcmFuc2xpdFtjb21wb3VuZENvdW50XSA9IGRlY29kZVRyYW5zbGl0SXRlbShuYW1lKTsKKyAgICAgICAgICAgICsrY29tcG91bmRDb3VudDsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRbXSA9IG5ldyBUcmFuc2xpdGVyYXRvcltjb21wb3VuZENvdW50XTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY29tcG91bmRUcmFuc2xpdCwgMCwgdCwgMCwgY29tcG91bmRDb3VudCk7CisgICAgICAgICAgICB0cmFuc2xpdCA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKHQpOworICAgICAgICAgICAgdGV4dC5zZXRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdCk7CisgICAgICAgIH0KKyAgICB9CisqLworLyoKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlU2V0VHJhbnNsaXRlcmF0b3IoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdHJhbnNsaXQgPSBkZWNvZGVUcmFuc2xpdEl0ZW0obmFtZSk7CisgICAgICAgIHRleHQuc2V0VHJhbnNsaXRlcmF0b3IodHJhbnNsaXQpOworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogRGVjb2RlIGEgbWVudSBpdGVtIHRoYXQgbG9va3MgbGlrZSA8dHJhbnNsaXQgbmFtZT4uCisgICAgICovCisgICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgZGVjb2RlVHJhbnNsaXRJdGVtKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiAobmFtZS5lcXVhbHMoTk9fVFJBTlNMSVRFUkFUT1IpKQorICAgICAgICAgICAgPyBudWxsIDogVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmFtZSk7CisgICAgfQorICAgICovCisKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQmF0Y2hUcmFuc2xpdGVyYXRlKFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0KSB7CisgICAgICAgIGlmICh0cmFuc2xpdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgc3RhcnQgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGludCBlbmQgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzID0KKyAgICAgICAgICAgIG5ldyBSZXBsYWNlYWJsZVN0cmluZyh0ZXh0LmdldFRleHQoKS5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBsb2cgPSBudWxsOworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQoJyInICsgcy50b1N0cmluZygpICsgIlwiIChzdGFydCAiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICAgICAgICAiLCBlbmQgIiArIGVuZCArICIpIC0+IFwiIik7CisgICAgICAgIH0KKworICAgICAgICB0cmFuc2xpdC50cmFuc2xpdGVyYXRlKHMpOworICAgICAgICBTdHJpbmcgc3RyID0gcy50b1N0cmluZygpOworCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nLmFwcGVuZChzdHIgKyAiXCIiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQmF0Y2ggIiArIHRyYW5zbGl0LmdldElEKCkgKyAiOiAiICsgbG9nLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgdGV4dC5yZXBsYWNlUmFuZ2Uoc3RyLCBzdGFydCwgZW5kKTsKKyAgICAgICAgdGV4dC5zZWxlY3Qoc3RhcnQsIHN0YXJ0ICsgc3RyLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQ2xvc2UoKSB7CisgICAgICAgIGhlbHBEaWFsb2cuZGlzcG9zZSgpOworICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgY2xhc3MgSW5mb0RpYWxvZyBleHRlbmRzIERpYWxvZyB7CisgICAgICAgIHByb3RlY3RlZCBCdXR0b24gYnV0dG9uOworICAgICAgICBwcm90ZWN0ZWQgVGV4dEFyZWEgYXJlYTsKKyAgICAgICAgcHJvdGVjdGVkIERpYWxvZyBtZTsKKyAgICAgICAgcHJvdGVjdGVkIFBhbmVsIGJvdHRvbTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBUZXh0QXJlYSBnZXRBcmVhKCkgeworICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBQYW5lbCBnZXRCb3R0b20oKSB7CisgICAgICAgICAgICByZXR1cm4gYm90dG9tOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBJbmZvRGlhbG9nKEZyYW1lIHBhcmVudCwgU3RyaW5nIHRpdGxlLCBTdHJpbmcgbGFiZWwsIFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgICAgICBzdXBlcihwYXJlbnQsIHRpdGxlLCBmYWxzZSk7CisgICAgICAgICAgICBtZSA9IHRoaXM7CisgICAgICAgICAgICB0aGlzLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICAgICAgaWYgKGxhYmVsLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICB0aGlzLmFkZCgiTm9ydGgiLCBuZXcgTGFiZWwobGFiZWwpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXJlYSA9IG5ldyBUZXh0QXJlYShtZXNzYWdlLCA4LCA4MCwgVGV4dEFyZWEuU0NST0xMQkFSU19WRVJUSUNBTF9PTkxZKTsKKyAgICAgICAgICAgIHRoaXMuYWRkKCJDZW50ZXIiLCBhcmVhKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiSGlkZSIpOworICAgICAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBtZS5oaWRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBib3R0b20gPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIGJvdHRvbS5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDAsIDApKTsKKyAgICAgICAgICAgIGJvdHRvbS5hZGQoYnV0dG9uKTsKKyAgICAgICAgICAgIHRoaXMuYWRkKCJTb3V0aCIsIGJvdHRvbSk7CisgICAgICAgICAgICB0aGlzLnBhY2soKTsKKyAgICAgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBtZS5oaWRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vQXBwbGV0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGVtb0FwcGxldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhYjAyY2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGVtb0FwcGxldC5qYXZhCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLmFwcGxldC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuQXBwbGV0RnJhbWU7CisKKy8qKgorICogQSBzaW1wbGUgQXBwbGV0IHRoYXQgc2hvd3MgYSBidXR0b24uICBXaGVuIHByZXNzZWQsIHRoZSBidXR0b24KKyAqIHNob3dzIHRoZSBEZW1vQXBwbGV0RnJhbWUuICBUaGlzIEFwcGxldCBpcyBtZWFudCB0byBiZSBlbWJlZGRlZAorICogaW4gYSB3ZWIgcGFnZS4KKyAqCisgKiA8cD5Db3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBEZW1vQXBwbGV0IGV4dGVuZHMgQXBwbGV0IHsKKworICAgIERlbW8gZnJhbWUgPSBudWxsOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIGZpbmFsIERlbW9BcHBsZXQgYXBwbGV0ID0gbmV3IERlbW9BcHBsZXQoKTsKKyAgICAgICAgbmV3IEFwcGxldEZyYW1lKCJUcmFuc2xpdGVyYXRpb24gRGVtbyIsIGFwcGxldCwgNjQwLCA0ODApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGluaXQoKSB7CisKKyAgICAgICAgQnV0dG9uIGJ1dHRvbiA9IG5ldyBCdXR0b24oIlRyYW5zbGl0ZXJhdGlvbiBEZW1vIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChmcmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lID0gbmV3IERlbW8oNjAwLCAyMDApOworICAgICAgICAgICAgICAgICAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgd2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmcmFtZS5zZXRWaXNpYmxlKHRydWUpOworICAgICAgICAgICAgICAgIGZyYW1lLnRvRnJvbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgYWRkKGJ1dHRvbik7CisKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBidXR0b24uZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICBzaXplLndpZHRoICs9IDEwOworICAgICAgICBzaXplLmhlaWdodCArPSAxMDsKKworICAgICAgICByZXNpemUoc2l6ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHN0b3AoKSB7CisgICAgICAgIGlmIChmcmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBmcmFtZS5kaXNwb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgZnJhbWUgPSBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EaWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EaWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTI1YWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RpZmZlci5qYXZhCkBAIC0wLDAgKzEsMTcxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CisKKy8qKiBWRVJZIEJhc2ljIERpZmYgcHJvZ3JhbS4gQ29tcGFyZXMgdHdvIHNlcXVlbmNlcyBvZiBvYmplY3RzIGZlZCBpbnRvIGl0LCBhbmQKKyAqIGxldHMgeW91IGtub3cgd2hlcmUgdGhleSBhcmUgZGlmZmVyZW50LgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKiBAdmVyc2lvbiAxLjAKKyAqLworCitmaW5hbCBwdWJsaWMgY2xhc3MgRGlmZmVyIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPQorICAgICAgIkNvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RhY2tTaXplIFRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IGRpZmZlcmVuY2UgeW91IGV4cGVjdC4KKyAgICAgKiBAcGFyYW0gbWF0Y2hDb3VudCBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgaGF2ZSB0byBiZSB0aGUgc2FtZSB0byBjb3VudCBhcyBhIG1hdGNoCisgICAgICovCisgICAgcHVibGljIERpZmZlcihpbnQgc3RhY2tTaXplLCBpbnQgbWF0Y2hDb3VudCkgeworICAgICAgICB0aGlzLlNUQUNLU0laRSA9IHN0YWNrU2l6ZTsKKyAgICAgICAgdGhpcy5FUVVBTFNJWkUgPSBtYXRjaENvdW50OworICAgICAgICBhID0gbmV3IE9iamVjdFtzdGFja1NpemUrbWF0Y2hDb3VudF07CisgICAgICAgIGIgPSBuZXcgT2JqZWN0W3N0YWNrU2l6ZSttYXRjaENvdW50XTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGQgKE9iamVjdCBhU3RyLCBPYmplY3QgYlN0cikgeworICAgICAgICBhZGRBKGFTdHIpOworICAgICAgICBhZGRCKGJTdHIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEEgKE9iamVjdCBhU3RyKSB7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIGFbYUNvdW50KytdID0gYVN0cjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRCIChPYmplY3QgYlN0cikgeworICAgICAgICBmbHVzaCgpOworICAgICAgICBiW2JDb3VudCsrXSA9IGJTdHI7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRBTGluZShpbnQgb2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBhTGluZSArIG1heFNhbWUgKyBvZmZzZXQ7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRBKGludCBvZmZzZXQpIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybiBsYXN0OworICAgICAgICBpZiAob2Zmc2V0ID4gYVRvcC1tYXhTYW1lKSByZXR1cm4gbmV4dDsKKyAgICAgICAgcmV0dXJuIGFbb2Zmc2V0XTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEFDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGFUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGJUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJMaW5lKGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGJMaW5lICsgbWF4U2FtZSArIG9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldEIoaW50IG9mZnNldCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIGxhc3Q7CisgICAgICAgIGlmIChvZmZzZXQgPiBiVG9wLW1heFNhbWUpIHJldHVybiBuZXh0OworICAgICAgICByZXR1cm4gYltvZmZzZXRdOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNoZWNrTWF0Y2goYm9vbGVhbiBmaW5hbFBhc3MpIHsKKyAgICAgICAgLy8gZmluZCB0aGUgaW5pdGlhbCBzdHJpbmdzIHRoYXQgYXJlIHRoZSBzYW1lCisgICAgICAgIGludCBtYXggPSBhQ291bnQ7CisgICAgICAgIGlmIChtYXggPiBiQ291bnQpIG1heCA9IGJDb3VudDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtYXg7ICsraSkgeworICAgICAgICAgICAgaWYgKCFhW2ldLmVxdWFscyhiW2ldKSkgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgYWxsIGl0ZW1zIHVwIHRvIGkgYXJlIGVxdWFsCisgICAgICAgIG1heFNhbWUgPSBpOworICAgICAgICBhVG9wID0gYlRvcCA9IG1heFNhbWU7CisgICAgICAgIGlmIChtYXhTYW1lID4gMCkgbGFzdCA9IGFbbWF4U2FtZS0xXTsKKyAgICAgICAgbmV4dCA9ICIiOworCisgICAgICAgIGlmIChmaW5hbFBhc3MpIHsKKyAgICAgICAgICAgIGFUb3AgPSBhQ291bnQ7CisgICAgICAgICAgICBiVG9wID0gYkNvdW50OworICAgICAgICAgICAgbmV4dCA9ICIiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFDb3VudCAtIG1heFNhbWUgPCBFUVVBTFNJWkUgfHwgYkNvdW50IC0gbWF4U2FtZSA8IEVRVUFMU0laRSkgcmV0dXJuOworCisgICAgICAgIC8vIG5vdyBzZWUgaWYgdGhlIGxhc3QgZmV3IGEncyBvY2N1ciBhbnl3aGVyZSBpbiB0aGUgYidzLCBvciB2aWNlIHZlcnNhCisgICAgICAgIGludCBtYXRjaCA9IGZpbmQgKGEsIGFDb3VudC1FUVVBTFNJWkUsIGFDb3VudCwgYiwgbWF4U2FtZSwgYkNvdW50KTsKKyAgICAgICAgaWYgKG1hdGNoICE9IC0xKSB7CisgICAgICAgICAgICBhVG9wID0gYUNvdW50LUVRVUFMU0laRTsKKyAgICAgICAgICAgIGJUb3AgPSBtYXRjaDsKKyAgICAgICAgICAgIG5leHQgPSBhW2FUb3BdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1hdGNoID0gZmluZCAoYiwgYkNvdW50LUVRVUFMU0laRSwgYkNvdW50LCBhLCBtYXhTYW1lLCBhQ291bnQpOworICAgICAgICBpZiAobWF0Y2ggIT0gLTEpIHsKKyAgICAgICAgICAgIGJUb3AgPSBiQ291bnQtRVFVQUxTSVpFOworICAgICAgICAgICAgYVRvcCA9IG1hdGNoOworICAgICAgICAgICAgbmV4dCA9IGJbYlRvcF07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFDb3VudCA+PSBTVEFDS1NJWkUgfHwgYkNvdW50ID49IFNUQUNLU0laRSkgeworICAgICAgICAgICAgLy8gZmx1c2ggc29tZSBvZiB0aGVtCisgICAgICAgICAgICBhQ291bnQgPSAoYUNvdW50ICsgbWF4U2FtZSkgLyAyOworICAgICAgICAgICAgYkNvdW50ID0gKGJDb3VudCArIG1heFNhbWUpIC8gMjsKKyAgICAgICAgICAgIG5leHQgPSAiIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBDb252ZW5pZW50IHV0aWxpdHkKKyAgICAgKiBmaW5kcyBhIHNlZ21lbnQgb2YgdGhlIGZpcnN0IGFycmF5IGluIHRoZSBzZWNvbmQgYXJyYXkuCisgICAgICogQHJldHVybiAtMSBpZiBub3QgZm91bmQsIG90aGVyd2lzZSBzdGFydCBwb3NpdGlvbiBpbiBiCisgICAgICovCisKKyAgICBwdWJsaWMgaW50IGZpbmQgKE9iamVjdFtdIGEsIGludCBhU3RhcnQsIGludCBhRW5kLCBPYmplY3RbXSBiLCBpbnQgYlN0YXJ0LCBpbnQgYkVuZCkgeworICAgICAgICBpbnQgbGVuID0gYUVuZCAtIGFTdGFydDsKKyAgICAgICAgaW50IGJFbmRNaW51cyA9IGJFbmQgLSBsZW47CisgICAgICAgIHRyeUE6CisgICAgICAgIGZvciAoaW50IGkgPSBiU3RhcnQ7IGkgPD0gYkVuZE1pbnVzOyArK2kpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGVuOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJbaSArIGpdLmVxdWFscyhhW2FTdGFydCArIGpdKSkgY29udGludWUgdHJ5QTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpOyAvLyB3ZSBoYXZlIGEgbWF0Y2ghCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gUFJJVkFURVMgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSB2b2lkIGZsdXNoKCkgeworICAgICAgICBpZiAoYVRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBhQ291bnQtYVRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYSwgYVRvcCwgYSwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYUNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBhTGluZSArPSBhVG9wOworICAgICAgICAgICAgYVRvcCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYlRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBiQ291bnQtYlRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYiwgYlRvcCwgYiwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYkNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBiTGluZSArPSBiVG9wOworICAgICAgICAgICAgYlRvcCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBTVEFDS1NJWkU7CisgICAgcHJpdmF0ZSBpbnQgRVFVQUxTSVpFOworCisgICAgcHJpdmF0ZSBPYmplY3QgW10gYTsKKyAgICBwcml2YXRlIE9iamVjdCBbXSBiOworICAgIHByaXZhdGUgT2JqZWN0IGxhc3QgPSAiIjsKKyAgICBwcml2YXRlIE9iamVjdCBuZXh0ID0gIiI7CisgICAgcHJpdmF0ZSBpbnQgYUNvdW50ID0gMDsKKyAgICBwcml2YXRlIGludCBiQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGFMaW5lID0gMTsKKyAgICBwcml2YXRlIGludCBiTGluZSA9IDE7CisgICAgcHJpdmF0ZSBpbnQgbWF4U2FtZSA9IDAsIGFUb3AgPSAwLCBiVG9wID0gMDsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0luZm9EaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9JbmZvRGlhbG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M3M2IyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9JbmZvRGlhbG9nLmphdmEKQEAgLTAsMCArMSw1MiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBvcnQgamF2YS5hd3QuKjsKK3B1YmxpYyBjbGFzcyBJbmZvRGlhbG9nIGV4dGVuZHMgRGlhbG9nIHsKKyAgICBwcm90ZWN0ZWQgQnV0dG9uIGJ1dHRvbjsKKyAgICBwcm90ZWN0ZWQgVGV4dEFyZWEgYXJlYTsKKyAgICBwcm90ZWN0ZWQgRGlhbG9nIG1lOworICAgIHByb3RlY3RlZCBQYW5lbCBib3R0b207CisgICAgICAgIAorICAgIHB1YmxpYyBUZXh0QXJlYSBnZXRBcmVhKCkgeworICAgICAgICByZXR1cm4gYXJlYTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBQYW5lbCBnZXRCb3R0b20oKSB7CisgICAgICAgIHJldHVybiBib3R0b207CisgICAgfQorICAgICAgICAKKyAgICBJbmZvRGlhbG9nKEZyYW1lIHBhcmVudCwgU3RyaW5nIHRpdGxlLCBTdHJpbmcgbGFiZWwsIFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgbWUgPSB0aGlzOworICAgICAgICB0aGlzLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICBpZiAobGFiZWwubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgdGhpcy5hZGQoIk5vcnRoIiwgbmV3IExhYmVsKGxhYmVsKSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBhcmVhID0gbmV3IFRleHRBcmVhKG1lc3NhZ2UsIDgsIDgwLCBUZXh0QXJlYS5TQ1JPTExCQVJTX1ZFUlRJQ0FMX09OTFkpOworICAgICAgICB0aGlzLmFkZCgiQ2VudGVyIiwgYXJlYSk7CisgICAgICAgICAgICAKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiSGlkZSIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBtZS5oaWRlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBib3R0b20gPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgYm90dG9tLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgMCwgMCkpOworICAgICAgICBib3R0b20uYWRkKGJ1dHRvbik7CisgICAgICAgIHRoaXMuYWRkKCJTb3V0aCIsIGJvdHRvbSk7CisgICAgICAgIHRoaXMucGFjaygpOworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIG1lLmhpZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfQXJhYmljLUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0FyYWJpYy1MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ2YzY1OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0FyYWJpYy1MYXRpbi50eHQKQEAgLTAsMCArMSwyNCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0BVUFBFUkZJTFRFUkAKK9mF2Kcg2YfZiiDYp9mE2LTZgdix2Kkg2KfZhNmF2YjYrdiv2KkgItmK2YjZhtmQ2YPZiNivIiDYnworCivYo9iz2KfYs9mL2KfYjCDYqtiq2LnYp9mF2YQg2KfZhNit2YjYp9iz2YrYqCDZgdmC2Lcg2YXYuSDYp9mE2KPYsdmC2KfZhdiMINmI2KrZgtmI2YUg2KjYqtiu2LLZitmGINin2YTYo9it2LHZgSDZiNin2YTZhdit2KfYsdmBINin2YTYo9iu2LHZiSDYqNi52K8g2KPZhiDYqtmP2LnYt9mKINix2YLZhdinINmF2LnZitmG2Kcg2YTZg9mEINmI2KfYrdivINmF2YbZh9inLiDZiNmC2KjZhCDYp9iu2KrYsdin2LkgItmK2YjZhtmQ2YPZiNivItiMINmD2KfZhiDZh9mG2KfZgyDZhdim2KfYqiDYp9mE2KPZhti42YXYqSDZhNmE2KrYtNmB2YrYsSDZiNiq2K7YtdmK2LUg2YfYsNmHINin2YTYo9ix2YLYp9mFINmE2YTZhdit2KfYsdmB2Iwg2YjZhNmFINmK2YjYrNivINmG2LjYp9mFINiq2LTZgdmK2LEg2YjYp9it2K8g2YrYrdiq2YjZiiDYudmE2Ykg2KzZhdmK2Lkg2KfZhNmF2K3Yp9ix2YEg2KfZhNi22LHZiNix2YrYqS4g2YjYudmE2Ykg2LPYqNmK2YQg2KfZhNmF2KvYp9mE2Iwg2YHYpdmGINin2YTYp9iq2K3Yp9ivINin2YTYo9mI2LHZiNio2Yog2YTZiNit2K/Zh9iMINin2K3YqtmI2Ykg2KfZhNi52K/ZitivINmF2YYg2KfZhNi02YHYsdin2Kog2KfZhNmF2K7YqtmE2YHYqSDZhNmK2LrYt9mKINis2YXZiti5INin2YTZhNi62KfYqiDYp9mE2YXYs9iq2K7Yr9mF2Kkg2YHZiiDYp9mE2KfYqtit2KfYry4g2YjYrdiq2Ykg2YTZiCDYp9i52KrYqNix2YbYpyDZhNi62Kkg2YjYp9it2K/YqdiMINmD2KfZhNmE2LrYqSDYp9mE2KXZhtis2YTZitiy2YrYqdiMINmB2KXZhiDYrNiv2YjZhCDYtNmB2LHYqSDZiNin2K3YryDZhNmFINmK2YPZgSDZhNin2LPYqtmK2LnYp9ioINis2YXZiti5INin2YTYo9it2LHZgSDZiNi52YTYp9mF2KfYqiDYp9mE2KrYsdmC2YrZhSDZiNin2YTYsdmF2YjYsiDYp9mE2YHZhtmK2Kkg2YjYp9mE2LnZhNmF2YrYqSDYp9mE2LTYp9im2LnYqSDYp9mE2KfYs9iq2LnZhdin2YQuCisKKyAKKwor2YjYqtis2K/YsSDYp9mE2YXZhNin2K3YuNipINij2YYg2KPZhti42YXYqSDYp9mE2KrYtNmB2YrYsSDYp9mE2YXYrtiq2YTZgdipINiq2KrYudin2LHYtiDZhdi5INio2LnYttmH2Kcg2KfZhNio2LnYti4g2YjYqNi52KjYp9ix2Kkg2KPYrtix2YnYjCDZitmF2YPZhiDYo9mGINmK2LPYqtiu2K/ZkNmFINis2K/ZiNmE2Yog2LTZgdix2Kkg2YbZgdizINin2YTYsdmC2YUg2YTYqtmF2KvZitmEINmF2K3YsdmB2YrZhiDZhdiu2KrZhNmB2YrZhtiMINij2Ygg2LHZgtmF2YrZhiDZhdiu2KrZhNmB2YrZhiDZhNiq2YXYq9mK2YQg2YbZgdizINin2YTZhdit2LHZgS4g2YjZhNmIINij2K7YsNmG2Kcg2KPZiiDYrNmH2KfYsiDYrdin2LPZiNio2Iwg2YjYqNiu2KfYtdipINis2YfYp9iyINin2YTZhtin2K/ZhCAoc2VydmVyKdiMINmB2YrYrNioINij2YYg2KrZg9mI2YYg2YTYr9mK2Ycg2KfZhNmC2K/YsdipINi52YTZiSDYp9mE2KrYudin2YXZhCDZhdi5INi52K/YryDZg9io2YrYsSDZhdmGINin2YTYtNmB2LHYp9iqINin2YTZhdiu2KrZhNmB2KnYjCDZiNmK2KrZhSDYqti12YXZitmF2Ycg2LnZhNmJINmH2LDYpyDYp9mE2KPYs9in2LMuINmI2YXYuSDYsNmE2YPYjCDZgdi52YbYr9mF2Kcg2KrZhdixINin2YTYqNmK2KfZhtin2Kog2LnYqNixINij2YbYuNmF2Kkg2YXYrtiq2YTZgdip2Iwg2KrZiNis2K8g2YfZhtin2YMg2K7Yt9mI2LHYqSDZhNi22YrYp9i5INij2Ygg2KrYrdix2YrZgSDYqNi52LYg2YfYsNmHINin2YTYqNmK2KfZhtin2KouCisKKyAKKworItmK2YjZhtmQ2YPZiNivIiDYqti62YrYsSDZh9iw2Kcg2YPZhNmK2KcgIQorCivYqtiu2LXYtSDYp9mE2LTZgdix2Kkg2KfZhNmF2YjYrdiv2KkgItmK2YjZhtmQ2YPZiNivIiDYsdmC2YXYpyDZiNit2YrYr9inINmE2YPZhCDZhdit2LHZgSDZgdmKINis2YXZiti5INin2YTZhNi62KfYqiDYp9mE2LnYp9mE2YXZitip2Iwg2YjYsNmE2YMg2KjYuti2INin2YTZhti42LEg2LnZhiDZhtmI2Lkg2KfZhNit2KfYs9mI2Kgg2KPZiCDYp9mE2KjYsdin2YXYrCDYp9mE2YXYs9iq2K7Yr9mF2KkuINmI2YLYryDYqtmFINiq2KjZhtmKINmF2YjYp9i12YHYqSAi2YrZiNmG2ZDZg9mI2K8iINmF2YYg2YLYqNmEINmC2KfYr9ipINin2YTYtdin2YbYudmK2YYg2YTYo9mG2LjZhdipINin2YTYrdmI2KfYs9mK2Kgg2YHZiiDYp9mE2LnYp9mE2YXYjCDZhdir2YQg2LTYsdmD2KfYqiDYotmKLtio2You2KXZhS4gKElCTSnYjCDYo9io2YQgKEFQUExFKdiMINmH2ZDZitmS2YjZhNmQ2Kog2KjYp9mD2LHYryAoSGV3bGV0dC1QYWNrYXJkKSDYjCDZhdin2YrZg9ix2YjYs9mI2YHYqiAoTWljcm9zb2Z0KdiMINij2YjYsdin2YPZkNmEIChPcmFjbGUpINiMINi12YYgKFN1bikg2YjYutmK2LHZh9inLiDZg9mF2Kcg2KPZhiDYp9mE2YXZiNin2LXZgdin2Kog2YjYp9mE2YXZgtin2YrZitizINin2YTYrdiv2YrYq9ipICjZhdir2YQg2YTYutipINin2YTYqNix2YXYrNipICLYrNin2YHYpyIgIkpBVkEiINmI2YTYutipICLYpdmD2LMg2KXZhSDYpdmEIiAiWE1MIiDYp9mE2KrZiiDYqtiz2KrYrtiv2YUg2YTYqNix2YXYrNipINin2YTYp9mG2KrYsdmG2YrYqikg2KrYqti32YTYqCDYp9iz2KrYrtiv2KfZhSAi2YrZiNmG2ZDZg9mI2K8iLiDYudmE2KfZiNipINi52YTZiSDYsNmE2YMg2Iwg2YHYpdmGICLZitmI2YbZkNmD2YjYryIg2YfZiiDYp9mE2LfYsdmK2YLYqSDYp9mE2LHYs9mF2YrYqSDZhNiq2LfYqNmK2YIg2KfZhNmF2YLZitin2LMg2KfZhNi52KfZhNmF2Yog2KXZitiy2Ygg2aHZoNmm2aTZpiAgKElTTyAxMDY0NikgLgorCisgCisKK9il2YYg2KjYstmI2Log2YXZiNin2LXZgdipICLZitmI2YbZkNmD2YjYryIg2YjYqtmI2YHZkdmP2LEg2KfZhNij2YbYuNmF2Kkg2KfZhNiq2Yog2KrYs9iq2K7Yr9mF2Ycg2YjYqtiv2LnZhdmH2Iwg2YrYudiq2KjYsSDZhdmGINij2YfZhSDYp9mE2KfYrtiq2LHYp9i52KfYqiDYp9mE2K3Yr9mK2KvYqSDZgdmKINi52YjZhNmF2Kkg2KfZhNio2LHZhdis2YrYp9iqINmE2KzZhdmK2Lkg2KfZhNmE2LrYp9iqINmB2Yog2KfZhNi52KfZhNmFLiDZiNil2YYg2KfYs9iq2K7Yr9in2YUgItmK2YjZhtmQ2YPZiNivIiDZgdmKINi52KfZhNmFINin2YTYp9mG2KrYsdmG2YrYqiDYs9mK2KTYr9mKINil2YTZiSDYqtmI2YHZitixINmD2KjZitixINmF2YLYp9ix2YbYqSDZhdi5INin2LPYqtiu2K/Yp9mFINin2YTZhdis2YXZiNi52KfYqiDYp9mE2KrZgtmE2YrYr9mK2Kkg2YTZhNmF2K3Yp9ix2YEg2KfZhNmF2LTZgdix2KkuINmD2YXYpyDYo9mGINin2LPYqtiu2K/Yp9mFICLZitmI2YbZkNmD2YjYryIg2LPZitmP2YXZg9mR2ZDZhiDYp9mE2YXYqNix2YXYrCDZhdmGINmD2KrYp9io2Kkg2KfZhNio2LHZhtin2YXYrCDZhdix2Kkg2YjYp9it2K/YqdiMINmI2KfYs9iq2K7Yr9in2YXZhyDYudmE2Ykg2KPZiiDZhtmI2Lkg2YXZhiDYp9mE2KPYrNmH2LLYqSDYo9mIINin2YTYo9mG2LjZhdip2Iwg2YjZhNij2Yog2YTYutipINij2Ygg2K/ZiNmE2Kkg2YHZiiDYp9mE2LnYp9mE2YUg2KPZitmG2YXYpyDZg9in2YbYqtiMINiv2YjZhiDYp9mE2K3Yp9is2Kkg2YTYpdi52KfYr9ipINin2YTYqNix2YXYrNipINij2Ygg2KXYrNix2KfYoSDYo9mKINiq2LnYr9mK2YQuINmI2KPYrtmK2LHYp9iMINmB2KXZhiDYp9iz2KrYrtiv2KfZhSAi2YrZiNmG2ZDZg9mI2K8iINiz2YrZhdmD2YYg2KfZhNio2YrYp9mG2KfYqiDZhdmGINin2YTYp9mG2KrZgtin2YQg2LnYqNixINin2YTYo9mG2LjZhdipINmI2KfZhNij2KzZh9iy2Kkg2KfZhNmF2K7YqtmE2YHYqSDYr9mI2YYg2KPZiiDYrti32YjYsdipINmE2KrYrdix2YrZgdmH2KfYjCDZhdmH2YXYpyDYqti52K/Yr9iqINin2YTYtNix2YPYp9iqINin2YTYtdin2YbYudipINmE2YTYo9mG2LjZhdipINmI2KfZhNmE2LrYp9iq2Iwg2YjYp9mE2K/ZiNmEINin2YTYqtmKINiq2YXYsSDZhdmGINiu2YTYp9mE2YfYpyDZh9iw2Ycg2KfZhNio2YrYp9mG2KfYqi4gCisKK0BTRVQgW1tbOkFyYWJpYzpdICYgW1x1MDYwMC1cdTA2RkZdXSBb4oCOXHUwNjBDXHUwNjFCXHUwNjFGXHUwNjQwXHUwNjRCLVx1MDY1NVx1MDY2MC1cdTA2NkNcdTA2RjAtXHUwNkY5XV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9HcmVlay1MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9HcmVlay1MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM4MDA3NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0dyZWVrLUxhdGluLnR4dApAQCAtMCwwICsxLDczIEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCivOpM65IM61zq/Ovc6xzrkgz4TOvyBVbmljb2RlPyAKKworzpcgzrrPic60zrnOus6/z4POtc67zq/OtM6xIFVuaWNvZGUgz4DPgc6/z4TOtc6vzr3Otc65IM6tzr3Osc69IM66zrHOuSDOvM6/zr3Osc60zrnOus+MIM6xz4HOuc64zrzPjCDOs865zrEgzrrOrM64zrUgz4fOsc+BzrHOus+Ezq7Pgc6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu861zrnPhM6/z4XPgc6zzrnOus+MIM+Dz43Pg8+EzrfOvM6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu86/zrPOuc+DzrzOuc66z4wsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM63zr0gzrPOu8+Oz4PPg86xLgorCivOn865IM63zrvOtc66z4TPgc6/zr3Ouc66zr/OryDPhc+Azr/Ou86/zrPOuc+Dz4TOrc+CLCDPg861IM+EzrXOu865zrrOriDOsc69zqzOu8+Fz4POtywgz4fOtc65z4HOr862zr/Ovc+EzrHOuSDOsc+AzrvPjs+CIM6xz4HOuc64zrzOv8+Nz4IuIM6Rz4DOv864zrfOus61z43Ov8+Fzr0gzrPPgc6szrzOvM6xz4TOsSDOus6xzrkgzqzOu867zr/Phc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CIM6xzr3PhM65z4PPhM6/zrnPh8+Ozr3PhM6xz4Igz4PPhM6/IM66zrHOuM6tzr3OsSDPhM6/z4XPgiDOsc+Az4wgzq3Ovc6xzr0gzrHPgc65zrjOvM+MICjOv869zr/OvM6szrbOv8+FzrzOtSDOvM6vzrEgz4TOrc+Ezr/Ouc6xIM6xzr3PhM65z4PPhM6/zrnPh86vzrEgzrrPic60zrnOus6/z4POtc67zq/OtM6xKS4gzqDPgc65zr0gz4TOt869IM61z4bOtc+Nz4HOtc+Dzrcgz4TOv8+FIFVuaWNvZGUsIM+Fz4DOrs+Bz4fOsc69IM61zrrOsc+Ezr/Ovc+EzqzOtM61z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrOrc+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CLiDOm8+MzrPPiSDPgM61z4HOuc6/z4HOuc+DzrzPjs69IM68zrXOs86tzrjOv8+Fz4Igz4zOvM+Jz4IsIM+DzrUgzrrOsc68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69IM+Hz4nPgc6/z43Pg86xzr0gzrHPgc66zrXPhM6/zq8gz4fOsc+BzrHOus+Ezq7Pgc61z4I6IM67z4zOs86/z4Ugz4fOrM+BzrnOvSwgzrcgzpXPhc+Bz4nPgM6xz4rOus6uIM6Izr3Pic+Dzrcgz4fPgc61zrnOsc62z4zPhM6xzr0gz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvSDOs865zrEgzr3OsSDOus6xzrvPjc+IzrXOuSDPjM67zrXPgiDPhM65z4IgzrPOu8+Oz4PPg861z4Igz4TPic69IM+Hz4nPgc+Ozr0tzrzOtc67z47OvSDPhM63z4IuIM6RzrrPjM68zrEgzrrOsc65IM6zzrnOsSDOvM6vzrEgzrrOsc65IM68z4zOvc63IM6zzrvPjs+Dz4POsSwgz4zPgM+Jz4Igz4Auz4cuIM+EzrEgzpHOs86zzrvOuc66zqwsIM68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69IM61z4DOsc+BzrrOv8+Nz4POtSDOs865zrEgzr3OsSDOus6xzrvPjc+IzrXOuSDPjM67zrEgz4TOsSDOs8+BzqzOvM68zrHPhM6xLCDPg863zrzOtc6vzrEgz4PPhM6vzr7Ot8+CIM66zrHOuSDPhM61z4fOvc65zrrOrCDPg8+NzrzOss6/zrvOsSDOtc+Fz4HOtc6vzrHPgiDPh8+Bzq7Pg863z4IuCisKK86VzrrPhM+Mz4IgzrHPhc+Ezr/PjSwgzr/OuSDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgiDOsc+Fz4TOrc+CIM60zrnOsc+Gz4nOvc6/z43Pg86xzr0gzrzOtc+EzrHOvs+NIM+Ezr/Phc+CLiDOiM+Ez4POuSwgzrTPjc6/IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM68z4DOv8+Bzr/Pjc+DzrHOvSDOus6szrvOu865z4PPhM6xIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gz4TOv869IM6vzrTOuc6/IM6xz4HOuc64zrzPjCDOs865zrEgzrTPjc6/IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CLCDOriDOvc6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zr/Pjc69IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM6xz4HOuc64zrzOv8+Nz4IgzrPOuc6xIM+Ezr/OvSDOr860zrnOvyDPh86xz4HOsc66z4TOrs+BzrEuIM6azqzOuM61IM+Fz4DOv867zr/Os865z4PPhM6uz4IgKM66zrHOuSDOuc60zq/Pic+CIM61zqzOvSDOrs+EzrHOvSDOtM65zrHOus6/zrzOuc+Dz4TOrs+CKSDOrc+Az4HOtc+AzrUgzr3OsSDPhc+Azr/Pg8+EzrfPgc6vzrbOtc65IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr3OhyDPhM6xz4XPhM+Mz4fPgc6/zr3OsSDOus6szrjOtSDPhs6/z4HOrCDPgM6/z4UgzrTOtc60zr/OvM6tzr3OsSDOvM61z4TOsc+Gzq3Pgc6/zr3PhM6xzr0gzrzOtc+EzrHOvs+NIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvSDOriDOu861zrnPhM6/z4XPgc6zzrnOus+Ozr0gz4PPhc+Dz4TOt868zqzPhM+Jzr0sIM+EzrEgzrTOtc60zr/OvM6tzr3OsSDOsc+Fz4TOrCDOus65zr3OtM+Nzr3Otc+FzrHOvSDOvc6xIM6xzrvOu86/zrnPic64zr/Pjc69LgorCivOpM6/IFVuaWNvZGUgzrHOu867zqzOts61zrkgzrHPhc+Ezq4gz4TOt869IM66zrHPhM6sz4PPhM6xz4POtyEKK86kzr8gVW5pY29kZSDPgM+Bzr/PhM61zq/Ovc61zrkgzq3Ovc6xzr0gzrzOv869zrHOtM65zrrPjCDOsc+BzrnOuM68z4wgzrPOuc6xIM66zqzOuM61IM+HzrHPgc6xzrrPhM6uz4HOsSwgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+Ezr8gzrvOtc65z4TOv8+Fz4HOs865zrrPjCDPg8+Nz4PPhM63zrzOsSwgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+Ezr8gzrvOv86zzrnPg868zrnOus+MLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOt869IM6zzrvPjs+Dz4POsS4gzqTOt869IM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSBVbmljb2RlIM6tz4fOv8+Fzr0gzrHPg8+AzrHPg864zrXOryDOus6/z4HPhc+GzrHOr86/zrkgz4DOsc+BzqzOs86/zr3PhM61z4Igz4TOv8+FIM+Hz47Pgc6/z4Ugz4TPic69IM67zr/Os865z4POvM65zrrPjs69IM+Mz4DPic+CIM6/zrk6IEFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lzIM66zrHOuSDPgM6/zrvOu86/zq8gzqzOu867zr/OuS4gzqTOvyBVbmljb2RlIM6xz4DOsc65z4TOv8+Nzr0gz4DOv867zrvOrc+CIM+Dz43Os8+Hz4HOv869zrXPgiDPhM+Fz4DOv8+Azr/Ouc6uz4POtc65z4Igz4zPgM+Jz4Igzr/OuTogWE1MLCBKYXZhLCBFQ01BU2NyaXB0IChKYXZhU2NyaXB0KSwgTERBUCwgQ09SQkEgMy4wLCBXTUwsIM66Ls67z4AuLCDOus6xzrkgzrXOr869zrHOuSDOtyDOtc+Azq/Pg863zrzOtyDOvM6tzrjOv860zr/PgiDOtc+GzrHPgc68zr/Os86uz4Igz4TOt8+CIM+Ez4XPgM6/z4DOv86vzrfPg863z4IgSVNPL0lFQyAxMDY0Ni4gzqXPgM6/z4PPhM63z4HOr862zrXPhM6xzrkgzrHPgM+MIM+Azr/Ou867zqwgzrvOtc65z4TOv8+Fz4HOs865zrrOrCDPg8+Fz4PPhM6uzrzOsc+EzrEsIM+MzrvOv8+Fz4Igz4TOv8+Fz4Igz4PPjc+Hz4HOv869zr/Phc+CIM+AzrXPgc65zrfOs863z4TOrc+CIM6UzrnOsc60zrnOus+Ez43Ov8+FLCDOus6xzrkgz4DOv867zrvOrCDOrM67zrvOsSDPgM+Bzr/Pis+Mzr3PhM6xLiDOlyDOtc68z4bOrM69zrnPg863IM+EzrfPgiDOus+JzrTOuc66zr/Pg861zrvOr860zrHPgiBVbmljb2RlLCDOus6xzrkgzrcgzrTOuc6xzrjOtc+DzrnOvM+Mz4TOt8+EzrEgzrXPgc6zzrHOu861zq/Pic69IM+Azr/PhSDOvc6xIM+EzrfOvSDPhc+Azr/Pg8+EzrfPgc6vzrbOv8+Fzr0gzrXOr869zrHOuSDOsc+Az4wgz4TOuc+CIM+DzrfOvM6xzr3PhM65zrrPjM+EzrXPgc61z4IgzrXOvs61zrvOr86+zrXOuc+CIM+EzrfPgiDPgM+Bz4zPg8+GzrHPhM63z4Igz4TOtc+Hzr3Ov867zr/Os86vzrHPgiDOu86/zrPOuc+DzrzOuc66z47OvS4KKworzpcgzrXOvc+Dz4nOvM6sz4TPic+Dzrcgz4TOv8+FIFVuaWNvZGUgz4POtSDOtc+GzrHPgc68zr/Os86tz4Igz4DOtc67zqzPhM63Lc60zrnOsc66zr/OvM65z4PPhM6uIM6uICJtdWx0aS10aWVyZWQiIM+Az4HOv8+Dz4bOrc+BzrXOuSDPg863zrzOsc69z4TOuc66zq3PgiDOv865zrrOv869zr/OvM6vzrXPgiDPg861IM+Dz4fOrc+DzrcgzrzOtSDPhM65z4Igz4nPgiDPhM+Oz4HOsSDPhc+AzqzPgc+Hzr/Phc+DzrXPgiDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgi4gzqfOrM+BzrnPgiDPg8+Ezr8gVW5pY29kZSDOrc69zrEgzrrOsc65IM68z4zOvc6/IM+Az4HOv8+Kz4zOvSDOriDOvM6vzrEgzrrOsc65IM68z4zOvc63IM+Ezr/PgM6/zrjOtc+Dzq/OsSDOlM65zrHOtM65zrrPhM+Nzr/PhSDOvM+Azr/Pgc61zq8gzr3OsSDOtc+AzrnOus6/zrnOvc+Jzr3Otc6vIM68zrUgzrTOuc6sz4bOv8+BzrEgzrvOtc65z4TOv8+Fz4HOs865zrrOrCDPg8+Fz4PPhM6uzrzOsc+EzrEsIM+DzrUgzrTOuc6sz4bOv8+BzrXPgiDOs867z47Pg8+DzrXPgiDOus6xzrkgz4fPjs+BzrXPgiwgz4fPic+Bzq/PgiDPhM63zr0gzrHOvc6szrPOus63IM61z4DOsc69zrHPgM+Bzr/Os8+BzrHOvM68zrHPhM65z4POvM6/z40uIM6Tzq/Ovc61z4TOsc65IM6tz4TPg865IM60z4XOvc6xz4TOriDOtyDOvM61z4TOsc+Gzr/Pgc6sIM60zrXOtM6/zrzOrc69z4nOvSDOsc69zqzOvM61z4POsSDPg861IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gz4PPhc+Dz4TOt868zqzPhM+Jzr0gzrTOr8+Hz4nPgiDOus6vzr3OtM+Fzr3OvyDOsc67zrvOv86vz4nPg863z4IuCisKK86jz4fOtc+EzrnOus6sIM68zrUgz4TOvyDOms6/zr3Pg8+Mz4HPhM65zr/Phc68IFVuaWNvZGUKK1TOvyDOms6/zr3Pg8+Mz4HPhM65zr/Phc68IFVuaWNvZGUgzrXOr869zrHOuSDOrc69zrHPgiDOus6/zrnOvc+Jz4bOtc67zq7PgiDOv8+BzrPOsc69zrnPg868z4zPgs6HIM65zrTPgc+NzrjOt866zrUgzrPOuc6xIM69zrEgzrHOvc6xz4DPhM+Nzr7Otc65LCDOvc6xIM61z4DOtc66z4TOtc6vzr3Otc65IM66zrHOuSDOvc6xIM68zrXPhM6xzrTPjs+DzrXOuSDPhM63zr0gz4fPgc6uz4POtyDPhM63z4IgzrrPic60zrnOus6/z4POtc67zq/OtM6xz4IgVW5pY29kZSDPgM6/z4UgzrrOsc64zr/Pgc6vzrbOtc65IM+EzrfOvSDOsc69zrHPgM6xz4HOrM+Dz4TOsc+DzrcgzrrOtc65zrzOrc69zr/PhSDPg861IM+Dz43Os8+Hz4HOv869zrEgzrvOv86zzrnPg868zrnOus6sIM+Az4HOv8+Kz4zOvc+EzrEgzrrOsc65IM+Ez4XPgM6/z4DOv865zq7Pg861zrnPgi4gzpzOtc6zzqzOu86/z4IgzrHPgc65zrjOvM+Mz4IgzrXPhM6xzrnPgc61zrnPjs69IM66zrHOuSDOv8+BzrPOsc69zrnPg868z47OvSDPhM63z4IgzrTOuc61zrjOvc6/z43PgiDOss65zr/OvM63z4fOsc69zq/Osc+CIM+Fz4DOv867zr/Os865z4PPhM+Ozr0gzrrOsc65IM67zr/Os865z4POvM65zrrPjs69IM61zq/Ovc6xzrkgzrzOrc67zrcgz4TOv8+FIM6azr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZS4gzqTOvyDOms6/zr3Pg8+Mz4HPhM65zr/Phc68IM+Hz4HOt868zrHPhM6/zrTOv8+EzrXOr8+EzrHOuSDOvM+Mzr3OvyDOsc+Az4wgz4TOuc+CIM+Dz4XOvc60z4HOv868zq3PgiDPhM+Jzr0gzrzOtc67z47OvSDPhM6/z4UuIM6czq3Ou86/z4Igz4TOv8+FIM66zr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZSDOvM+Azr/Pgc61zq8gzr3OsSDOs86vzr3Otc65IM6/zrnOv8+DzrTOrs+Azr/PhM61ICjOv8+BzrPOsc69zrnPg868z4zPgiwgzrXPhM6xzrnPgc61zq/OsSDOriDOuc60zrnPjs+EzrfPgiwgzr/PgM6/z4XOtM6uz4DOv8+EzrUgz4PPhM6/zr0gzrrPjM+DzrzOvykgz4DOv8+FIM69zrEgz4XPgM6/z4PPhM63z4HOr862zrXOuSDPhM63zr0gzrrPic60zrnOus6/z4POtc67zq/OtM6xIFVuaWNvZGUgzrrOsc65IM69zrEgzrXPgM65zrjPhc68zrXOryDOvc6xIM+Dz4XOvc60z4HOrM68zrXOuSDPg8+EzrfOvSDOtc+Azq3Ous+EzrHPg863IM66zrHOuSDPg8+EzrfOvSDOtc+GzrHPgc68zr/Os86uIM+EzrfPgi4KKworzpPOuc6xIM+AzrXPgc6xzrnPhM6tz4HPiSDPgM67zrfPgc6/z4bOv8+Bzq/Otc+CLCDOss67zq3PgM61IM+EzrnPgiDOtc6+zq7PgiDOuc+Dz4TOv8+DzrXOu86vzrTOtc+COiDOk867z4nPg8+DzqzPgc65LCDOlM61zq/Os868zrHPhM6xIM+Az4HOv8+Kz4zOvc+Ez4nOvSDPg8+FzrzOss6xz4TPjs69IM68zrUgz4TOvyBVbmljb2RlLCDOpM61z4fOvc65zrrOriDOlc65z4POsc6zz4nOs86uIM66zrHOuSDOp8+Bzq7Pg865zrzOtc+CIM+AzrfOs86tz4Igz4DOu863z4HOv8+Gzr/Pgc65z47OvS4KKworKEFOQ0lFTlQpCisKK+G8hM69zrTPgc6xIM68zr/OuSDhvJTOvc69zrXPgM61LCDOvM6/4b+mz4POsSwgz4DOv867z43PhM+Bzr/PgM6/zr0sIOG9g8+CIM68zqzOu86xIM+Azr/Ou8674b2wCivPgM67zqzOs8+HzrjOtywg4byQz4DOteG9tiDOpM+Bzr/Or863z4Ig4byxzrXPgeG9uM69IM+Az4TOv867zq/Otc64z4HOv869IOG8lM+AzrXPgc+DzrXOvToKK8+Azr/Ou8674b+2zr0gzrTigJkg4byAzr3OuM+Bz47PgM+Jzr0g4by0zrTOtc69IOG8hM+Dz4TOtc6xIM66zrHhvbYgzr3PjM6/zr0g4byUzrPOvc+JLAorz4DOv867zrvhvbAgzrTigJkg4b2FIM6z4oCZIOG8kM69IM+Az4zOvc+E4b+zIM+AzqzOuM61zr0g4byEzrvOs861zrEg4b2Dzr0gzrrOsc+E4b2wIM64z4XOvM+Mzr0sCivhvIDPgc69z43OvM61zr3Ov8+CIOG8pc69IM+EzrUgz4jPhc+H4b20zr0gzrrOseG9tiDOvc+Mz4PPhM6/zr0g4byRz4TOsc6vz4HPic69Lgor4byAzrvOu+KAmSDOv+G9kM604oCZIOG9o8+CIOG8kc+EzqzPgc6/z4XPgiDhvJDPgc+Bz43Pg86xz4TOvywg4byxzq3OvM61zr3PjM+CIM+AzrXPgToKK86x4b2Qz4Thv7bOvSDOs+G9sM+BIM+Dz4bOtc+Ezq3PgeG/g8+DzrnOvSDhvIDPhM6xz4POuM6xzrvOr+G/g8+DzrnOvSDhvYTOu86/zr3PhM6/LAorzr3Ors+AzrnOv865LCDOv+G8syDOus6xz4ThvbAgzrLOv+G/ps+CIOG9mc+AzrXPgc6vzr/Ovc6/z4Ig4byozrXOu86vzr/Ouc6/CivhvKTPg864zrnOv869OiDOseG9kM+E4b2wz4Eg4b2BIM+Ezr/hv5bPg865zr0g4byAz4bOtc6vzrvOtc+Ezr8gzr3PjM+Dz4TOuc68zr/OvSDhvKbOvM6xz4EuCivPhOG/ts69IOG8gc68z4zOuM61zr0gzrPOtSwgzrjOtc6sLCDOuM+NzrPOsc+EzrXPgSDOlM65z4zPgiwgzrXhvLDPgOG9siDOus6x4b22IOG8oc684b+Wzr0uCisqCivhvJTOvc644oCZIOG8hM67zrvOv865IM684b2yzr0gz4DOrM69z4TOtc+CLCDhvYXPg86/zrkgz4bPjc6zzr/OvSDOseG8sM+A4b26zr0g4b2EzrvOtc64z4HOv869LAorzr/hvLTOus6/zrkg4byUz4POsc69LCDPgM+MzrvOtc68z4zOvSDPhM61IM+AzrXPhs61z4XOs8+Mz4TOtc+CIOG8oM604b2yIM64zqzOu86xz4PPg86xzr06CivPhOG9uM69IM604oCZIM6/4by2zr/OvSDOvc+Mz4PPhM6/z4UgzrrOtc+Hz4HOt868zq3Ovc6/zr0g4bygzrThvbIgzrPPhc69zrHOuc664b24z4IKK869z43OvM+Gzrcgz4DPjM+Ezr3OueKAmSDhvJTPgc+FzrrOtSDOms6xzrvPhc+I4b28IM604b+WzrEgzrjOtc6sz4nOvQor4byQzr0gz4PPgM6tz4PPg865IM6zzrvOsc+Gz4XPgc6/4b+Wz4POuSwgzrvOuc67zrHOuc6/zrzOrc69zrcgz4DPjM+DzrnOvSDOteG8ts69zrHOuS4KK+G8gM67zrvigJkg4b2Fz4TOtSDOtOG9tCDhvJTPhM6/z4Ig4bymzrvOuM61IM+AzrXPgc65z4DOu86/zrzOrc69z4nOvSDhvJDOvc65zrHPhc+E4b+2zr0sCivPhOG/tyDOv+G8sSDhvJDPgM61zrrOu8+Oz4POsc69z4TOvyDOuM61zr/hvbYgzr/hvLbOus+Mzr3OtM61IM69zq3Otc+DzrjOsc65CivOteG8sM+CIOG8uM64zqzOus63zr0sIM6/4b2QzrTigJkg4byUzr3OuM6xIM+AzrXPhs+FzrPOvM6tzr3Ov8+CIOG8ps61zr0g4byAzq3OuM67z4nOvQorzrrOseG9tiDOvM61z4ThvbAgzr/hvLfPg865IM+Gzq/Ou86/zrnPg865LiDOuM61zr/hvbYgzrTigJkg4byQzrvOrc6xzrnPgc6/zr0g4byFz4DOsc69z4TOtc+CCivOvc+Mz4PPhs65IM6gzr/Pg861zrnOtM6sz4nOvc6/z4I6IOG9gSDOtOKAmSDhvIDPg8+AzrXPgc+H4b2yz4IgzrzOtc69zq3Osc65zr3Otc69CivhvIDOvc+EzrnOuM6t4b+zIOG9iM60z4XPg+G/hs65IM+AzqzPgc6/z4Ig4byjzr0gzrPOseG/ls6xzr0g4byxzrrOrc+DzrjOsc65LgorKgor4byAzrvOu+KAmSDhvYEgzrzhvbLOvSDOkeG8sM64zq/Ov8+AzrHPgiDOvM61z4TOtc66zq/Osc64zrUgz4TOt867z4zOuOKAmSDhvJDPjM69z4TOsc+CLAorzpHhvLDOuM6vzr/PgM6xz4Igz4TOv+G9tiDOtM65z4fOuOG9sCDOtM61zrTOsc6vzrHPhM6xzrksIOG8lM+Dz4fOsc+Ezr/OuSDhvIDOvc60z4Hhv7bOvSwKK86/4byxIM684b2yzr0gzrTPhc+Dzr/OvM6tzr3Ov8+FIOG9mc+AzrXPgc6vzr/Ovc6/z4Igzr/hvLEgzrTigJkg4byAzr3Ouc+Mzr3PhM6/z4IsCivhvIDOvc+EzrnPjM+Jzr0gz4TOsc+Nz4HPic69IM+EzrUgzrrOseG9tiDhvIDPgc69zrXOueG/ts69IOG8kc66zrHPhM+MzrzOss63z4IuCivhvJTOvc644oCZIOG9hSDOs+KAmSDhvJDPhM6tz4HPgM61z4TOvyDOtM6xzrnPhOG9tiDPgM6xz4HOrs68zrXOvc6/z4I6IM6/4byxIM604b2yIM604b20IOG8hM67zrvOv865CivOls63zr3hvbjPgiDhvJDOveG9tiDOvM61zrPOrM+Bzr/Ouc+DzrnOvSDhvYjOu8+FzrzPgM6vzr/PhSDhvIHOuM+Bz4zOv865IOG8ps+DzrHOvS4KK8+Ezr/hv5bPg865IM604b2yIM68z43OuM+Jzr0g4bymz4HPh861IM+AzrHPhOG9tM+BIOG8gM69zrTPgeG/ts69IM+EzrUgzrjOteG/ts69IM+EzrU6CivOvM69zq7Pg86xz4TOvyDOs+G9sM+BIM66zrHPhOG9sCDOuM+FzrzhvbjOvSDhvIDOvM+NzrzOv869zr/PgiDOkeG8sM6zzq/Pg864zr/Ouc6/LAorz4TPjM69IOG/peKAmSDhvIjOs86xzrzOtc68zr3Ov869zq/OtM63z4Igz4TOt867zrXOus67z4XPhOG9uM+CIOG8lM66z4TOsc694oCZIOG9iM+Bzq3Pg8+EzrfPgjoKK8+Ezr/hv6Yg4b2FIM6z4oCZIOG8kM+AzrnOvM69zrfPg864zrXhvbbPgiDhvJTPgM614oCZIOG8gM64zrHOvc6sz4TOv865z4POuSDOvM61z4TOt8+NzrTOsToKKyoKK+KAnOG9oiDPgM+Mz4DOv865LCDOv+G8t86/zr0gzrTOriDOvc+FIM64zrXOv+G9us+CIM6yz4HOv8+Ezr/hvbYgzrHhvLDPhM65z4zPic69z4TOsc65Ogor4byQzr4g4byhzrzOrc+Jzr0gzrPOrM+BIM+GzrHPg865IM66zqzOuuKAmSDhvJTOvM68zrXOvc6xzrksIM6/4byxIM604b2yIM66zrHhvbYgzrHhvZDPhM6/4b22CivPg8+G4b+Hz4POuc69IOG8gM+EzrHPg864zrHOu86v4b+Dz4POuc69IOG9kc+A4b2yz4EgzrzPjM+Bzr/OvSDhvITOu86zzrXigJkg4byUz4fOv8+Fz4POuc69LAor4b2hz4IgzrrOseG9tiDOveG/ps69IM6R4by0zrPOuc+DzrjOv8+CIOG9kc+A4b2yz4EgzrzPjM+Bzr/OvSDhvIjPhM+BzrXOr8yIzrTOsc6/CivOs+G/hs684oCZIOG8hM67zr/Ph86/zr0gzrzOvc63z4PPhM6uzr0sIM+E4b24zr0gzrTigJkg4byUzrrPhM6xzr3OtSDOvc6/z4PPhM6uz4POsc69z4TOsSwKK8614bywzrThvbzPgiDOseG8sM+A4b26zr0g4b2EzrvOtc64z4HOv869LCDhvJDPgM614b22IM+Az4HPjCDOv+G8sSDOteG8tM+Azr/OvM61zr0g4byhzrzOteG/ls+CLAor4byZz4HOvM61zq/Osc69IM+Azq3OvM+IzrHOvc+EzrXPgiwg4byQz43Pg866zr/PgM6/zr0g4byAz4HOs861z4rPhs+Mzr3PhM63zr0sCivOvM6uz4TigJkgzrHhvZDPhOG9uM69IM66z4TOtc6vzr3Otc65zr0gzrzOrs+EzrUgzrzOvc6szrHPg864zrHOuSDhvITOus6/zrnPhM65zr06CivhvJDOuiDOs+G9sM+BIOG9iM+Bzq3Pg8+EzrHOvyDPhM6vz4POuc+CIOG8lM+Dz4POtc+EzrHOuSDhvIjPhM+BzrXOr8yIzrTOsc6/LAor4b2Bz4DPgM+Mz4TigJkg4byCzr0g4byhzrLOrs+D4b+DIM+EzrUgzrrOseG9tiDhvKfPgiDhvLHOvM61zq/Pgc61z4TOsc65IM6x4by0zrfPgi4KK+G9o8+CIOG8lM+GzrHOuOKAmSDhvJnPgc68zrXOr86xz4IsIOG8gM67zrvigJkgzr/hvZAgz4bPgc6tzr3Osc+CIM6R4bywzrPOr8+DzrjOv865zr8KK8+AzrXhv5bOuOKAmSDhvIDOs86xzrjhvbAgz4bPgc6/zr3Orc+Jzr06IM694b+mzr0gzrTigJkg4byBzrjPgc+MzrEgz4DOrM69z4TigJkg4byAz4DOrc+EzrnPg861zr0u4oCdCisKK0BTRVQgW1tbOkdyZWVrOl0mW1x1MDM3MC1cdTAzRTEgXHUwM0YwLVx1MDNGRl1dIFtcOi07P1x1MDBCN1x1MDM3RVx1MDM4N11dClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGFuLUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hhbi1MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYwMzY2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hhbi1MYXRpbi50eHQKQEAgLTAsMCArMSwyNiBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0BVUFBFUkZJTFRFUkAKK+S7gOS5iOaYr1VuaWNvZGUo57uf5LiA56CBKT8KK1VuaWNvZGXnu5nmr4/kuKrlrZfnrKbmj5DkvpvkuobkuIDkuKrllK/kuIDnmoTmlbDlrZfvvIwKK+S4jeiuuuaYr+S7gOS5iOW5s+WPsO+8jAor5LiN6K665piv5LuA5LmI56iL5bqP77yMCivkuI3orrrmmK/ku4DkuYjor63oqIDjgIIKKwor5Z+65pys5LiK77yM6K6h566X5py65Y+q5piv5aSE55CG5pWw5a2X44CC5a6D5Lus5oyH5a6a5LiA5Liq5pWw5a2X77yM5p2l5YKo5a2Y5a2X5q+N5oiW5YW25LuW5a2X56ym44CC5Zyo5Yib6YCgVW5pY29kZeS5i+WJje+8jOacieaVsOeZvuenjeaMh+Wumui/meS6m+aVsOWtl+eahOe8lueggeezu+e7n+OAguayoeacieS4gOS4que8lueggeWPr+S7peWMheWQq+i2s+Wkn+eahOWtl+espu+8muS+i+Wmgu+8jOWNleWNleasp+W3nuWFseWQjOS9k+WwsemcgOimgeWlveWHoOenjeS4jeWQjOeahOe8lueggeadpeWMheaLrOaJgOacieeahOivreiogOOAguWNs+S9v+aYr+WNleS4gOenjeivreiogO+8jOS+i+WmguiLseivre+8jOS5n+ayoeacieWTquS4gOS4que8lueggeWPr+S7pemAgueUqOS6juaJgOacieeahOWtl+avje+8jOagh+eCueespuWPt++8jOWSjOW4uOeUqOeahOaKgOacr+espuWPt+OAggorCivov5nkupvnvJbnoIHns7vnu5/kuZ/kvJrkupLnm7jlhrLnqoHjgILkuZ/lsLHmmK/or7TvvIzkuKTnp43nvJbnoIHlj6/og73kvb/nlKjnm7jlkIznmoTmlbDlrZfku6PooajkuKTkuKrkuI3lkIznmoTlrZfnrKbvvIzmiJbkvb/nlKjkuI3lkIznmoTmlbDlrZfku6Pooajnm7jlkIznmoTlrZfnrKbjgILku7vkvZXkuIDlj7DnibnlrprnmoTorqHnrpfmnLoo54m55Yir5piv5pyN5Yqh5ZmoKemDvemcgOimgeaUr+aMgeiuuOWkmuS4jeWQjOeahOe8luegge+8jOS9huaYr++8jOS4jeiuuuS7gOS5iOaXtuWAmeaVsOaNrumAmui/h+S4jeWQjOeahOe8lueggeaIluW5s+WPsOS5i+mXtO+8jOmCo+S6m+aVsOaNruaAu+S8muacieaNn+Wdj+eahOWNsemZqeOAggorCitVbmljb2Rl5q2j5Zyo5pS55Y+Y5omA5pyJ6L+Z5LiA5YiH77yBCitVbmljb2Rl57uZ5q+P5Liq5a2X56ym5o+Q5L6b5LqG5LiA5Liq5ZSv5LiA55qE5pWw5a2X77yM5LiN6K665piv5LuA5LmI5bmz5Y+w77yM5LiN6K665piv5LuA5LmI56iL5bqP77yM5LiN6K665LuA5LmI6K+t6KiA44CCVW5pY29kZeagh+WHhuW3sue7j+iiq+i/meS6m+W3peS4mueVjOeahOmihuWvvOS7rOaJgOmHh+eUqO+8jOS+i+Wmgu+8mkFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lz5ZKM5YW25a6D6K645aSa5YWs5Y+444CC5pyA5paw55qE5qCH5YeG6YO96ZyA6KaBVW5pY29kZe+8jOS+i+WmglhNTCwgSmF2YSwgRUNNQVNjcmlwdCAoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01M562J562J77yM5bm25LiU77yMVW5pY29kZeaYr+WunueOsElTTy9JRUMgMTA2NDbnmoTmraPop4TmlrnlvI/jgILorrjlpJrmk43kvZzns7vnu5/vvIzmiYDmnInmnIDmlrDnmoTmtY/op4jlmajlkozorrjlpJrlhbbku5bkuqflk4Hpg73mlK/mjIHlroPjgIJVbmljb2Rl5qCH5YeG55qE5Ye6546w5ZKM5pSv5oyB5a6D5bel5YW355qE5a2Y5Zyo77yM5piv6L+R5p2l5YWo55CD6L2v5Lu25oqA5pyv5pyA6YeN6KaB55qE5Y+R5bGV6LaL5Yq/44CCCisKK+WwhlVuaWNvZGXkuI7lrqLmiLfmnI3liqHlmajmiJblpJrlsYLlupTnlKjnqIvluo/lkoznvZHnq5nnu5PlkIjvvIzmr5Tkvb/nlKjkvKDnu5/lrZfnrKbpm4boioLnnIHotLnnlKjjgIJVbmljb2Rl5L2/5Y2V5LiA6L2v5Lu25Lqn5ZOB5oiW5Y2V5LiA572R56uZ6IO95aSf6LSv56m/5aSa5Liq5bmz5Y+w77yM6K+t6KiA5ZKM5Zu95a6277yM6ICM5LiN6ZyA6KaB6YeN5bu644CC5a6D5Y+v5bCG5pWw5o2u5Lyg6L6T5Yiw6K645aSa5LiN5ZCM55qE57O757uf77yM6ICM5peg5o2f5Z2P44CCCisKK+WFs+S6jlVuaWNvZGXlrabmnK/lrabkvJoKK1VuaWNvZGXlrabmnK/lrabkvJrmmK/kuIDkuKrpnZ7nm4jliKnnmoTnu4Tnu4fvvIzmmK/kuLrlj5HlsZXvvIzmianlsZXlkozmjqjlub/kvb/nlKhVbmljb2Rl5qCH5YeG6ICM5bu656uL55qE77yMVW5pY29kZeWtpuacr+WtpuS8muiuvueri+S6hueOsOS7o+i9r+S7tuS6p+WTgeWSjOagh+WHhuaWh+acrOeahOihqOekuuazleOAguWtpuacr+WtpuS8mueahOS8muWRmOS7o+ihqOS6huW5v+azm+mihuWfn+eahOiuoeeul+acuuWSjOi1hOiur+W3peS4mueahOWFrOWPuOWSjOe7hOe7h+OAguWtpuacr+WtpuS8muWPqueUseS8muWRmOaPkOS+m+i1hOmHkeOAglVuaWNvZGXlrabmnK/lrabkvJrnmoTkvJrlkZjotYTmoLzlvIDmlL7nu5nkuJbnlYzkuIrku7vkvZXmlK/mjIFVbmljb2Rl5qCH5YeG5ZKM5biM5pyb5Y2P5Yqp5YW25omp5bGV5ZKM5omn6KGM55qE57uE57uH5Y+K5Liq5Lq644CCCisKK+assuefpeabtOWkmuS/oeaBr++8jOivt+WPgumYheacr+ivreivjeaxh+ihqO+8jFVuaWNvZGXkuqflk4HmoLfmnKzvvIzmioDmnK/nroDku4vlkozlj4LogIPotYTmlpnjgIIKKworQ2hpbmVzZSB0cmFuc2xhdGlvbiBieSAg6buO5ZyL54+NLCBYZXJveApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hlYnJldy1MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9IZWJyZXctTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkMjY3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9IZWJyZXctTGF0aW4udHh0CkBAIC0wLDAgKzEsMjYgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitAVVBQRVJGSUxURVJACivXnteUINeW15Qg15nXldeg15nXp9eV15MgKFVuaWNvZGUpPwor15nXldeg15nXp9eV15Mg157Xp9em15Qg157Xodek16gg15nXmdeX15XXk9eZINec15vXnCDXqteVLCAKK9ec15Ag157Xqdeg15Qg16LXnCDXkNeZ15bXlSDXpNec15jXpNeV16jXnteULCAKK9ec15Ag157Xqdeg15Qg15HXkNeZ15bXlSDXqteV15vXoNeZ16osIAor15XXnNeQINee16nXoNeUINeR15DXmdeW15Ug16nXpNeULgorCivXkdeQ15XXpNefINeR16HXmdeh15ksINee15fXqdeR15nXnSDXoteV16HXp9eZ150g16jXpyDXkdee16HXpNeo15nXnS4g15TXnSDXnteQ15fXodeg15nXnSDXkNeV16rXmdeV16og15XXqteV15XXmdedINeQ15fXqNeZ150g16LXnC3XmdeT15kg15TXp9em15DXqiDXnteh16TXqCDXnNeb15wg15DXl9eTINee15TXnS4g15HXmNeo150g15TXldee16bXkCDXlNeZ15XXoNeZ16fXldeTLCDXlNeZ15Ug157XkNeV16og157Xoteo15vXldeqINen15nXk9eV15Mg16nXldeg15XXqiDXnNeU16fXpteQ16og15TXnteh16TXqNeZ150g15TXnNec15UuINeQ16Mg15zXkCDXkNeX16og157XlNefINeZ15vXnNeUINec15TXm9eZ15wg15vXnteV16og16rXldeV15nXnSDXnteh16TXp9eqLiDXnNeT15XXktee15A6INeo16cg15zXkNeZ15fXldeTINeU15DXmdeo15XXpNeQ15kg16DXk9eo16nXmdedINeb157XlCDXodeV15LXmSDXp9eZ15PXldeT15nXnSDXqdeV16DXmdedINei15wg157XoNeqINec15vXodeV16og15DXqiDXm9ecINeU16nXpNeV16og15TXnteT15XXkdeo15XXqiDXkdeVLiDXmdeq15nXqNeUINee15bXkNeqINeQ16Mg15zXqdek15Qg15HXldeT15PXqiwg15vXnteVINeQ16DXktec15nXqiDXnNee16nXnCwg15zXkCDXlNeZ15Qg15PXmSDXkdee16LXqNeb16og16fXmdeT15XXkyDXkNeX16og15HXoteR15XXqCDXm9ecINeU15DXldeq15nXldeqLCDXodeZ157XoNeZINeU16TXmdeh15XXpyDXldeU16HXntec15nXnSDXlNeY15vXoNeZ15nXnSDXqdeR16nXmdee15XXqSDXqdeV15jXoy4gCisKK9ee16LXqNeb15XXqiDXp9eZ15PXldeTINeQ15zXlSDXkNejINeh15XXqteo15XXqiDXlteVINeQ16og15bXlS4g15vXnNeV157XqCwg16nXoNeZINen15nXk9eV15PXmdedINeZ15vXldec15nXnSDXnNeU16nXqtee16kg15HXkNeV16rXlSDXnteh16TXqCDXnNep16DXmSDXqteV15nXnSDXoNeR15PXnNeZ150sINeQ15Ug15zXlNep16rXntepINeR157Xodek16jXmdedINep15XXoNeZ150g15zXkNeV16rXlSDXqteVLiDXotecINeb15wg157Xl9ep15EgKNeV15HXnteZ15XXl9eTINep16jXqteZ150pINec16rXnteV15og15HXnteh16TXqCDXqNeRINep15wg157Xoteo15vXldeqINen15nXk9eV15Mg16nXldeg15XXqjsg15DXldec150g15vXnCDXkNeZ157XqiDXqdeg16rXldeg15nXnSDXoteV15HXqNeZ150g15HXmdefINee16LXqNeb15XXqiDXp9eZ15PXldeTINeQ15Ug16TXnNeY16TXldeo157XldeqINep15XXoNeV16og16fXmdeZ150g15TXodeZ15vXldefINep15nXmdek15LXnteVLgorCivXmdeV16DXmden15XXkyDXntep16DXlCDXkNeqINeb15wg15bXlCEKK9eZ15XXoNeZ16fXldeTINee16fXpteUINee16HXpNeoINeZ15nXl9eV15PXmSDXnNeb15wg16rXlSwg15zXnNeQINeq15zXldeqINeR16TXnNeY16TXldeo157XlCwg15HXqteV15vXoNeZ16osINeQ15Ug15HXqdek15QuINeq16fXnyDXlNeZ15XXoNeZ16fXldeTINeQ15XXntelINei15wt15nXk9eZINeU157XldeR15nXnNeZ150g15HXqtei16nXmdeZ15Qg15vXnteVIEFwcGxl4oCPLCBIUOKAjywgSUJN4oCPLCBKdXN0U3lzdGVt4oCPLCBNaWNyb3NvZnTigI8sIE9yYWNsZeKAjywgU0FQ4oCPLCBTdW7igI8sIFN5YmFzZeKAjywgVW5pc3lz4oCPINeV16jXkdeZ150g15DXl9eo15nXnS4g15nXldeg15nXp9eV15Mg16DXk9eo16kg16LXnC3XmdeT15kg16rXp9eg15nXnSDXnteV15PXqNeg15nXmdedINeb157XlSBYTUzigI8sIEphdmHigI8sIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQp4oCO4oCPLCBMREFQ4oCPLCBDT1JCQSAzLjDigI7igI8sIFdNTOKAjyDXldeb15PXldee15QsINeV157XlNeV15XXlCDXnNee16LXqdeUINeQ16og15TXmdeZ16nXldedINeU16jXqdee15kg16nXnCDXqten158gSVNPL0lFQyAxMDY0Ni4g15TXldeQINeg16rXnteaINei15wg15nXk9eZINee16LXqNeb15XXqiDXlNek16LXnNeUINeo15HXldeqLCDXm9ecINeU15PXpNeT16TXoNeZ150g15TXl9eT15nXqdeZ150sINeV157Xldem16jXmdedINeo15HXmdedINeQ15fXqNeZ150uINeU15XXpNei16og16rXp9efINeU15nXldeg15nXp9eV15Mg15XXltee15nXoNeV16og15TXm9ec15nXnSDXlNeq15XXnteb15nXnSDXkdeVINeg157XoNeV16og16LXnSDXlNee15LXnteV16og15TXm9ec15wt16LXldec157XmdeV16og15TXl9ep15XXkdeV16og15HXmdeV16rXqCwg15DXqdeoINee16HXqtee16DXldeqINec15DXl9eo15XXoNeUINeR15jXm9eg15XXnNeV15LXmdeZ16og15TXqteV15vXoNeULgorCivXqdeZ15zXldeRINeZ15XXoNeZ16fXldeTINeR15nXmdep15XXnteZINep16jXqi3XnNen15XXlyDXkNeVINeR15nXmdep15XXnteZ150g16jXkdeZLdep15vXkdeV16og15XXkdeQ16rXqNeZINeQ15nXoNeY16jXoNeYINee15DXpNep16gg15fXmdeh15vXldefINeg15nXm9eoINeR16LXnNeV15nXldeqINec16LXldee16og15TXqdeZ157XldepINeR16HXk9eo15XXqiDXlNeq15XXldeZ150g15TXnteh15XXqNeq15nXldeqLiDXlNeV15PXldeqINec15nXldeg15nXp9eV15MsINee15XXpteoINeq15XXm9eg15Qg15DXl9eTINeQ15Ug15DXqteoINeZ15fXmdeTINeR16jXqdeqINeZ15vXldecINec15TXqNeX15nXkSDXkNeqINeZ16LXk9eZ15Ug15zXnteS15XXldefINek15zXmNek15XXqNee15XXqiwg15DXqNem15XXqiDXldep16TXldeqINec15zXkCDXpteV16jXmiDXkdep15nXoNeV15nXmdedINee16jXl9eZ16fXmdedLiDXmdeV16DXmden15XXkyDXnteQ16TXqdeoINee16LXkdeoINeg16rXldeg15nXnSDXk9eo15og157Xoteo15vXldeqINeo15HXldeqINeV16nXldeg15XXqiDXnteR15zXmSDXqdeZ15nXpNeS157XlS4KKwor16TXqNeY15nXnSDXkNeV15PXldeqINeU16fXldeg16HXldeo16bXmdeV150g16nXnCDXmdeV16DXmden15XXkyAoVW5pY29kZSBDb25zb3J0aXVtKSAKK9eU16fXldeg16HXldeo16bXmdeV150g16nXnCDXmdeV16DXmden15XXkyDXlNeV15Ag15DXqNeS15XXnyDXnNec15Ag157XmNeo16og16jXldeV15cg16nXoNeV16HXkyDXm9eT15kg15zXpNeq15csINec15TXqNeX15nXkSDXldec16fXk9edINeQ16og15TXqdeZ157XldepINeR16rXp9efINeZ15XXoNeZ16fXldeTLCDXkNep16gg157XkteT15nXqCDXkNeqINeZ15nXpteV15Ig15TXmNen16HXmCDXkdee15XXpteo15kg16rXldeb16DXlCDXldeq16fXoNeZ150g157XldeT16jXoNeZ15nXnS4g15fXkdeo15nXnSDXkden15XXoNeh15XXqNem15nXldedINee15LXldeV158g16jXl9eRINep15wg16rXkNeS15nXk9eZ150g15XXkNeo15LXldeg15nXnSDXkdeq16LXqdeZ15nXqiDXlNee15fXqdeR15nXnSDXldei15nXkdeV15Mg15TXnteZ15PXoi4g15TXp9eV16DXodeV16jXpteZ15XXnSDXntee15XXntefINei15wt15nXk9eZINeT157XmS3Xl9eR16gg15HXnNeR15MuINeU15fXkdeo15XXqiDXkden15XXoNeh15XXqNem15nXldedINeZ15XXoNeZ16fXldeTINek16rXldeX15Qg15zXkNeo15LXldeg15nXnSDXldec15DXoNep15nXnSDXpNeo15jXmdeZ150sINeR15vXnCDXqNeX15HXmSDXlNei15XXnNedLCDXkNep16gg16rXldee15vXmdedINeR16rXp9efINeZ15XXoNeZ16fXldeTINeV157XoteV16DXmdeZ16DXmdedINec16HXmdeZ16Ig15HXlNeq16TXqteX15XXqteVINeV15TXmNee16LXqteVLgorCivXnNee15nXk9eiINeg15XXodejLCDXqNeQ15Qg157Xmdec15XXnyDXnteV16DXl9eZ150sINeo16nXmdee15Qg15fXnNen15nXqiDXqdecINee15XXpteo15nXnSDXnteV16rXkNee15nXnSDXnNeZ15XXoNeZ16fXldeTLCDXnteR15XXkCDXmNeb16DXmSDXlS0g15fXldee16jXmSDXoteW16ggW9en15nXqdeV16jXmdedINeR15DXoNeS15zXmdeqXS4KKworQFNFVCBbWzpIZWJyZXc6XSBbXHUwNUIwLVx1MDVCOVx1MDVCQi1cdTA1QkNcdTA1QzEtXHUwNUMyXHUyMTM1LVx1MjEzOF1dClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSW5zdHJ1Y3Rpb25zLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9JbnN0cnVjdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWUxNGMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSW5zdHJ1Y3Rpb25zLmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhLS0gCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy0tPgorPGh0bWw+CisKKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1MYW5ndWFnZSIgY29udGVudD0iZW4tdXMiPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KKzxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iTWljcm9zb2Z0IEZyb250UGFnZSA0LjAiPgorPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4KKzx0aXRsZT5OZXcgVHJhbnNsaXRlcmF0aW9uIFRlc3QgRmlsZXM8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSIjRkZGRkZGIj4KKworPGgyPk5ldyBUcmFuc2xpdGVyYXRpb24gVGVzdCBGaWxlczwvaDI+Cis8cD5UaGUgVGVzdF8qLmh0bWwgZmlsZXMgc2hvdyB0aGUgdHJhbnNsaXRlcmF0aW9uIG9mIGNoYXJhY3RlcnMgZm9yIGdpdmVuCitsYW5ndWFnZXMuIFRoZSBzYW1wbGUgZm9yIGVhY2ggbGFuZ3VhZ2UgY29uc2lzdHMgb2YgJnF1b3Q7V2hhdCBJcyBVbmljb2RlJnF1b3Q7CitpbiBUaGFpLCBmb2xsb3dlZCBieSBvdGhlciBhdmFpbGFibGUgdGV4dC4gVGhlIHRleHQgaXMgYnJva2VuIGFwYXJ0IGludG8KK3NlbnRlbmNlcyBmb3IgZWFzZSBvZiB2aWV3aW5nIChub3RlOiB3ZSBrbm93IG9mIHNvbWUgcHJvYmxlbXMgd2l0aCB0aGUgc2VudGVuY2UKK3J1bGVzIGZvciBKYXBhbmVzZSBhbmQgQ2hpbmVzZSkuIFRoZSBsZWZ0IGNvbHVtbiBpcyB0aGUgb3JpZ2luYWwsIGFuZCB0aGUgcmlnaHQKK2lzIHRoZSByb21hbml6YXRpb24uIFRoZSBwcm9ncmFtIGFsc28gY29udmVydHMgYmFjayB0byB0aGUgb3JpZ2luYWwgc2NyaXB0LiBJZgordGhlcmUgaXMgYSBkaXNjcmVwYW5jeSBiZXR3ZWVuIHRoZSBzb3VyY2UgYW5kIHRoZSByZXZlcnNlIHRyYW5zZm9ybWF0aW9uLCB0aGF0CitpcyBpbmRpY2F0ZWQgYnkgbWFraW5nIHRoZSBiYWNrZ3JvdW5kIDxmb250IGNvbG9yPSIjRkYwMDAwIj48Yj5yZWQ8L2I+PC9mb250PgorZnJvbSB0aGF0IHBvaW50IG9uLjwvcD4KKzxibG9ja3F1b3RlPgorICA8cD48aT48Yj5Ob3RlOiA8L2I+SWYgeW91IGhhdmUgc29tZSBtb3JlIHRleHQgdGhhdCB5b3Ugd291bGQgbGlrZSBhZGRlZCB0byB0aGUKKyAgc2FtcGxlLCBqdXN0IGxldCBtZSBrbm93LiBJIGFtIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIG5hbWUgbGlzdHMsIHNpbmNlCisgIHRoZXkgYXJlIHRoZSB0eXBpY2FsIHNvdXJjZS48L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlN0YW5kYXJkczwvaDM+Cis8cD5UaGUgZ29hbCBpcyB0byBmb2xsb3cgYSBnaXZlbiBzdGFuZGFyZCwgc3VjaCBhcyBJU08qIG9yIFVOR0VHTiB3aGVyZXZlcgorcG9zc2libGUuIFdlIGFsc28gbmVlZCB0byByb3VuZC10cmlwLCBzbyBpbiBzb21lIGNhc2VzLCB0aGF0IG1lYW5zIGFkZGluZyBzb21lCithZGRpdGlvbmFsIGFjY2VudCBtYXJrcyB0byBkaXNhbWJpZ3VhdGUgY2hhcmFjdGVycy4gQW5kIG9mdGVuIHRoZSBzb3VyY2UKK3N0YW5kYXJkcyBhcmUgbWlzc2luZyBzb21lIGNoYXJhY3RlcnMsIHN1Y2ggYXMgY2hhcmFjdGVycyB3aXRoIGNvbWJpbmluZyBIYW16YXMKK2luIEFyYWJpYy4gUmVtZW1iZXIgdGhhdCB0aGUgZ29hbCBmb3IgdGhlc2UgaXMgdHJhbnNsaXRlcmF0aW9uICh1bmFtYmlndW91c2x5CityZXByZXNlbnRpbmcgYWxsIHRoZSBsZXR0ZXJzIGluIHRoZSBvcmlnaW5hbCksIG5vdCB0cmFuc2NyaXB0aW9uIChyZXByZXNlbnRpbmcKK3RoZSBiZXN0IHByb251bmNpYXRpb24pLjwvcD4KKzx1bD4KKyAgPGxpPjxiPjxhIGhyZWY9IlRlc3RfVGhhaS1MYXRpbi5odG1sIj5UaGFpPC9hPjo8L2I+IElTTyAxMTk0MCAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly9ob21lcGFnZS5tYWMuY29tL3NpcmJpbmtzL3BkZi9UaGFpLnIyLnBkZiI+aHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL1RoYWkucjIucGRmPC9hPgorICAgICZndDsgcGx1cyBhIGZldyBpdGVtczoKKyAgICA8dWw+CisgICAgICA8bGk+QWNjZW50cyBtYXkgYmUgYWRkZWQgdG8gdGhlIExhdGluIGZvciBkaXNhbWJpZ3VhdGlvbi48L2xpPgorICAgICAgPGxpPkluIHRoZSBuZXh0IHJlbGVhc2UsIHdlJ2QgbGlrZSB0byBkbyB0aGUgVU5HRUdOIHZlcnNpb24gJmx0OyA8YSBocmVmPSJodHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfdGgucGRmIj5odHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfdGgucGRmPC9hPgorICAgICAgICAmZ3Q7IHdoaWNoIGlzIHByb2JhYmx5IG1vcmUgdXNlZnVsIChhbmQgcmVhZGFibGUpLCBhbmQgZm9sbG93cyBtb3JlCisgICAgICAgIGNsb3NlbHkgdGhlIFRoYWkgc3RhbmRhcmQuPC9saT4KKyAgICAgIDxsaT5TcGFjZXMgYXJlIHByb3ZpZGVkIGF0IHdvcmQtYnJlYWtzLCB1c2luZyB0aGUgVGhhaSBCcmVha0l0ZXJhdG9yLjwvbGk+CisgICAgICA8bGk+QW4gaW5oZXJlbnQgdm93ZWwgKCYjNzg4NTspIGlzIGFkZGVkLCBhcyBpbiBVTkdFR04uIFRoZSBkb3QgaXMgZm9yCisgICAgICAgIGRpc2FtYmlndWF0aW9uLgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPjxpPk5vdGU6IGlmIHRoZSBpbmhlcmVudCB2b3dlbCBwb3NpdGlvbnMgY2Fubm90IGJlIGFsZ29yaXRobWljYWxseQorICAgICAgICAgICAgZGV0ZXJtaW5lZCwgbGV0IG1lIGtub3cgYW5kIEkgd2lsbCByZW1vdmUgdGhlbS48L2k+PC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxiPjxhIGhyZWY9IlRlc3RfQXJhYmljLUxhdGluLmh0bWwiPkFyYWJpYzwvYT46IDwvYj5HZW5lcmFsbHkgZm9sbG93cworICAgIFVOR0VHTiAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV9hci5wZGYiPmh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV9hci5wZGY8L2E+CisgICAgJmd0OworICAgIDx1bD4KKyAgICAgIDxsaT5BY2NlbnRzIG1heSBiZSBhZGRlZCB0byB0aGUgTGF0aW4gZm9yIGRpc2FtYmlndWF0aW9uLjwvbGk+CisgICAgICA8bGk+T2NjYXNpb25hbGx5IGRldmlhdGVzIGluIHRoZSBkaXJlY3Rpb24gb2YgSVNPIDIzMyAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly9ob21lcGFnZS5tYWMuY29tL3NpcmJpbmtzL3BkZi9BcmFiaWMucGRmIj5odHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvQXJhYmljLnBkZjwvYT4KKyAgICAgICAgJmd0OworICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPndpdGggdW5kZXJkb3QgaW5zdGVhZCBvZiBjZWRpbGxhIGZvciBsZXR0ZXIgbGlrZSBTQUQsIHNpbmNlIHRob3NlCisgICAgICAgICAgICBhcmUgZXhwbGljaXRseSBpbiBVbmljb2RlIGZvciB0cmFuc2xpdGVyYXRpb24gb2YgQXJhYmljPC9saT4KKyAgICAgICAgICA8bGk+YWRkaW5nIGV4dHJhIG5vbi1BcmFiaWMtbGFuZ3VhZ2UgbGV0dGVycywgbGlrZSBQRUguIE5vdGU6IG5vdCBhbGwKKyAgICAgICAgICAgIGV4dGVuZGVkIEFyYWJpYyBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkIHlldC48L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICAgIDxsaT5Eb2VzIDxpPm5vdDwvaT4gZG8gYXNzaW1pbGF0aW9uIG9mICZxdW90O2FsJnF1b3Q7LCBub3IgaHlwaGVuYXRpb24gb2YKKyAgICAgICAgaXQuCisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+V2hpbGUgaXQgY291bGQgYmUgZG9uZSwgd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hldGhlciBhIHByZWZpeAorICAgICAgICAgICAgJnF1b3Q7YWwmcXVvdDsgY291bGQgb2NjdXIgb3RoZXIgdGhhbiBhcyB0aGUgZGVmaW5pdGUgYXJ0aWNsZSAoc2luY2UKKyAgICAgICAgICAgIG5vIHNwYWNlIGlzIHVzZWQpLjwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgICAgPGxpPlRoaXMgaXMgdHJhbnNsaXRlcmF0aW9uLiBGb3IgPGk+dHJhbnNjcmlwdGlvbjwvaT4gb25lIHdvdWxkIHdhbnQgYW4KKyAgICAgICAgZW5naW5lIHRoYXQgYWRkZWQgcG9pbnRzIGFwcHJvcHJpYXRlbHkgdG8gdGhlIEhlYnJldy48L2xpPgorICAgIDwvdWw+CisgIDwvbGk+CisgIDxsaT48Yj48YSBocmVmPSJUZXN0X0hlYnJldy1MYXRpbi5odG1sIj5IZWJyZXc8L2E+PC9iPjxiPjogPC9iPkdlbmVyYWxseQorICAgIGZvbGxvd3MgVU5HRUdOICZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2hlLnBkZiI+aHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2hlLnBkZjwvYT4KKyAgICAmZ3Q7LCB3aXRoIHNvbWUgZXhjZXB0aW9uczoKKyAgICA8dWw+CisgICAgICA8bGk+QWNjZW50cyBtYXkgYmUgYWRkZWQgdG8gdGhlIExhdGluIGZvciBkaXNhbWJpZ3VhdGlvbi48L2xpPgorICAgICAgPGxpPkNvbWJpbmF0aW9ucyBvZiBkYWdlc2gsIHNoaW4vc2luIGRvdCB0aGF0IHdvdWxkIHByb2R1Y2UgZGlmZmVyZW50CisgICAgICAgIGxldHRlcnMgYXJlIG5vdCB5ZXQgY2FsbGVkIG91dC48L2xpPgorICAgICAgPGxpPk5vdGUgdGhhdCB0aGUgZmluYWwgZm9ybXMgYXJlIG5vdCBwcmVzZXJ2ZWQuIFRodXMsIHdoZW4gZ29pbmcgZnJvbQorICAgICAgICBMYXRpbiB0byBIZWJyZXcsIGEgY2hhcmFjdGVyIGlzIGdpdmVuIGZpbmFsIGZvcm0gZGVwZW5kaW5nIG9uIGl0cworICAgICAgICBwb3NpdGlvbi4KKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5FLmcuICYjMTUwMjsmIzE1MDE7JiMxNTAyOyYjMTUwMTsgPSZndDsgbW1tbSA9Jmd0OworICAgICAgICAgICAgJiMxNTAyOyYjMTUwMjsmIzE1MDI7JiMxNTAxOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgICAgPGxpPlRoaXMgaXMgdHJhbnNsaXRlcmF0aW9uLiBGb3IgPGk+dHJhbnNjcmlwdGlvbjwvaT4gb25lIHdvdWxkIHdhbnQgYW4KKyAgICAgICAgZW5naW5lIHRoYXQgYWRkZWQgcG9pbnRzIGFwcHJvcHJpYXRlbHkgdG8gdGhlIEhlYnJldy48L2xpPgorICAgICAgPGxpPlNlZSBhbHNvICZsdDsgPGEgaHJlZj0iaHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL0hlYnJldy5yMS5wZGYiPmh0dHA6Ly9ob21lcGFnZS5tYWMuY29tL3NpcmJpbmtzL3BkZi9IZWJyZXcucjEucGRmPC9hPgorICAgICAgICAmZ3Q7IGZvciB0aGUgSVNPIHZlcnNpb24uIFRoZSBDaGljYWdvIE1hbnVhbCBvZiBTdHlsZSBoYXMgYSBjbGVhciB0YWJsZQorICAgICAgICBvZiBtYXBwaW5ncyBmb3IgdGhlIHZvd2VsIG1hcmtzLjwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxiPjxhIGhyZWY9IlRlc3RfSGFuLUxhdGluLmh0bWwiPkhhbjwvYT46PC9iPiBVc2VzIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lm1hbmRhcmludG9vbHMuY29tL2NlZGljdC5odG1sIj5DRURJQ1Q8L2E+CisgICAgZGF0YSBwbHVzIFVuaWNvZGUgVW5paGFuIDxpPmtNYW5kYXJpbjwvaT4gdmFsdWVzIGZvciBwaW55aW4uIERvZXNuJ3QKKyAgICByb3VuZHRyaXAhCisgICAgPHVsPgorICAgICAgPGxpPjxpPk5vdGU6IDwvaT50aGUgQ2hpbmVzZSBwcm9udW5jaWF0aW9uIG9mIEhhbiBjaGFyYWN0ZXJzIHZhcmllcyBieQorICAgICAgICBjb250ZXh0IGFuZCBncmFtbWFyLCB0aG91Z2ggbm93aGVyZSBuZWFyIGFzIG11Y2ggYSBKYXBhbmVzZS4KKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5JZGVhbGx5IHdlJ2QgaGF2ZSBhbiB1bmRlcmx5aW5nIGVuZ2luZSBmb3IgdGhpcy4gSW4gMi40IHdlIHdpbGwKKyAgICAgICAgICAgIGhhdmUgYSBwbHVnLWluIGludGVyZmFjZSBzbyB0aGF0IHBlb3BsZSBjb3VsZCBhZGQgb25lLCBzdWNoIGFzIHRoZQorICAgICAgICAgICAgSUJNIGVuZ2luZS48L2xpPgorICAgICAgICAgIDxsaT5UaGUgZGF0YSBmcm9tIENFRElDVCBhbmQgVW5paGFuIGRvbid0IGxpc3QgdGhlIG1vc3QgZnJlcXVlbnQKKyAgICAgICAgICAgIGNob2ljZSBmaXJzdCwgc28gd2Ugd2lsbCBiZSB1cGRhdGluZyB0aGF0LjwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgIDwvbGk+CisgIDxsaT48YSBocmVmPSJUZXN0X0dyZWVrLUxhdGluX1VOR0VHTi5odG1sIj48Yj5HcmVlay9VTkdFR048L2I+PC9hPjogVXNlcyBhCisgICAgbW9kZXJuIEdyZWVrIHRyYW5zbGl0ZXJhdGlvbiwgYmFzZWQgb24gdGhlIFVOR0VHTiBydWxlcyBhdCAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV9lbC5wZGYiPmh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV9lbC5wZGY8L2E+CisgICAgJmd0Oy4gVGhpcyB2ZXJzaW9uIHdpbGwgbm90IHJvdW5kdHJpcCBhbmNpZW50IEdyZWVrLjwvbGk+CisgIDxsaT48YSBocmVmPSJUZXN0X0dyZWVrLUxhdGluLmh0bWwiPjxiPkdyZWVrPC9iPjwvYT46IFVzZXMgYSBjbGFzc2ljIEdyZWVrCisgICAgdHJhbnNsaXRlcmF0aW9uLiBUaGlzIHZlcnNpb24gd2lsbCBub3Qgcm91bmR0cmlwIG1vZGVybiBHcmVlay48L2xpPgorPC91bD4KKzxoMz48Yj5Ob3RlczwvYj48L2gzPgorPG9sPgorICA8bGk+Rm9yIHJlYWRhYmlsaXR5LCB0aGUgZmlsZXMgaGF2ZSBhIGZldyBvdGhlciB0aGluZ3MgYmVzaWRlcyBqdXN0IHRoZQorICAgIHRyYW5zbGl0ZXJhdGlvbjoKKyAgICA8dWw+CisgICAgICA8bGk+VGhlIGZpcnN0IHdvcmQgb2YgdGhlIHNlbnRlbmNlcyBhcmUgdGl0bGVjYXNlZCwgYXMgYXJlIG5hbWVzICh3aGVyZSB3ZQorICAgICAgICBoYXZlIGEgbmFtZS1saXN0LCBzdWNoIGFzIGluIFRoYWkpLjwvbGk+CisgICAgICA8bGk+VGhlIExhdGluIGluIHRoZSBvcmlnaW5hbCBpcyBtYXBwZWQgdG8gdGhlIHByaXZhdGUtdXNlIHpvbmUgYmVmb3JlCisgICAgICAgIGNvbnZlcnNpb24sIGFuZCB0aGVuIGFnYWluIGFmdGVyIGNvbnZlcnNpb24uIFRoaXMgZG9lcyBoYXZlIHRoZSBkb3duc2lkZQorICAgICAgICB0aGF0IGFueSBydWxlcyAoc3VjaCBhcyBpbiBIYW4pIHRoYXQgbmVlZCB0byBrbm93IHRoZSBjb250ZXh0IChlLmcuIGZvcgorICAgICAgICBpbnNlcnRpbmcgc3BhY2VzIG9yIGNhcGl0YWxpemF0aW9uKSB3aWxsIGd1bSB1cCBhIGxpdHRsZSBiaXQuIFRoaXMgaXMKKyAgICAgICAganVzdCBhbiBhcnRpZmFjdCBvZiB0aGUgdGVzdCBkaXNwbGF5LjwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPkkgZG9uJ3QgdGhpbmsgdGhhdCBJU08gMTE5NDAgaXMgYSBwYXJ0aWN1bGFybHkgZ29vZCB3YXkgdG8gcm9tYW5pemUsIGJ1dAorICAgIGl0IGlzIGF0IGxlYXN0IGNvbXBsZXRlIGFuZCBhIHN0YW5kYXJkLiBTbyB3aGF0IEkgYW0gaW50ZXJlc3RlZCBpbiBqdXN0IGZvcgorICAgIG5vdyBpcyB3aGV0aGVyIHRoZSBzYW1wbGVzIGluIHRoZSBmaWxlIGZvbGxvdyBpdCAod2l0aCB0aGUgYWJvdmUKKyAgICBleGNlcHRpb25zKS48L2xpPgorICA8bGk+U29tZSBvZiB0aGUgZmlsZXMgYWxzbyBoYXZlIGEgc2V0IG9mIGNoYXJhY3RlcnMgYXQgdGhlIGVuZCwgb25lIGNoYXJhY3RlcgorICAgIHBlciByb3csIHdpdGggYSBmb2xsb3dpbmcgcm93IGxpc3RpbmcgdGhlIGhleCBhbmQgbmFtZS48L2xpPgorICA8bGk+VGhlIHNvdXJjZSBydWxlcyBmb3IgYWxsIG9mIHRoZXNlIGlzIGluIHRoZSBmb2xsb3dpbmcgVVJMLiBTbyBpZiB5b3Ugd2FudAorICAgIHRvIGtub3cgdGhlIGRldGFpbHMgb2YgaG93IHRoZSBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkLCB0aGF0IGlzIHRoZSBwbGFjZSB0bworICAgIGxvb2suCisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vdmlld2N2cy5jZ2kvaWN1L3NvdXJjZS9kYXRhL3RyYW5zbGl0LyI+aHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3Uvc291cmNlL2RhdGEvdHJhbnNsaXQvPC9hPjwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKzwvb2w+CisKKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfVGhhaS1MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9UaGFpLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzFmMTkxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfVGhhaS1MYXRpbi50eHQKQEAgLTAsMCArMSw2OSBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0BVUFBFUkZJTFRFUkAKK1VuaWNvZGUg4LiE4Li34Lit4Lit4Liw4LmE4LijPworVW5pY29kZSDguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguInguJ7guLLguLDguKrguLPguKvguKPguLHguJrguJfguLjguIHguK3guLHguIHguILguKPguLAKK+C5guC4lOC4ouC5hOC4oeC5iOC4quC4meC5g+C4iOC4p+C5iOC4suC5gOC4m+C5h+C4meC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oeC5g+C4lAor4LmE4Lih4LmI4LiC4Li24LmJ4LiZ4LiB4Lix4Lia4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4LmC4Lib4Lij4LmB4LiB4Lij4Lih4LmD4LiUCivguYHguKXguLDguYTguKHguYjguKfguYjguLLguIjguLDguYDguJvguYfguJnguKDguLLguKnguLLguYPguJQKKwor4LmC4LiU4Lii4Lie4Li34LmJ4LiZ4LiQ4Liy4LiZ4LmB4Lil4LmJ4LinLCDguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYzguIjguLDguYDguIHguLXguYjguKLguKfguILguYnguK3guIfguIHguLHguJrguYDguKPguLfguYjguK3guIfguILguK3guIfguJXguLHguKfguYDguKXguIIuIOC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC4iOC4seC4lOC5gOC4geC5h+C4muC4leC4seC4p+C4reC4seC4geC4qeC4o+C5geC4peC4sOC4reC4seC4geC4guC4o+C4sOC4reC4t+C5iOC4meC5hiDguYLguJTguKLguIHguLLguKPguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYPguKvguYnguKrguLPguKvguKPguLHguJrguYHguJXguYjguKXguLDguJXguLHguKcuIOC4geC5iOC4reC4meC4q+C4meC5ieC4suC4l+C4teC5iOC5iiBVbmljb2RlIOC4iOC4sOC4luC4ueC4geC4quC4o+C5ieC4suC4h+C4guC4tuC5ieC4mSwg4LmE4LiU4LmJ4Lih4Li14Lij4Liw4Lia4LiaIGVuY29kaW5nIOC4reC4ouC4ueC5iOC4q+C4peC4suC4ouC4o+C5ieC4reC4ouC4o+C4sOC4muC4muC4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4q+C4peC5iOC4suC4meC4teC5iS4g4LmE4Lih4LmI4Lih4Li1IGVuY29kaW5nIOC5g+C4lOC4l+C4teC5iOC4oeC4teC4iOC4s+C4meC4p+C4meC4leC4seC4p+C4reC4seC4geC4guC4o+C4sOC4oeC4suC4geC5gOC4nuC4teC4ouC4h+C4nuC4rTog4Lii4LiB4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiH4LmA4LiK4LmI4LiZLCDguYDguInguJ7guLLguLDguYPguJnguIHguKXguLjguYjguKHguKrguKvguKDguLLguJ7guKLguLjguYLguKPguJvguYDguJ7guLXguKLguIfguYHguKvguYjguIfguYDguJTguLXguKLguKcg4LiB4LmH4LiV4LmJ4Lit4LiH4LiB4Liy4Lij4Lir4Lil4Liy4LiiIGVuY29kaW5nIOC5g+C4meC4geC4suC4o+C4hOC4o+C4reC4muC4hOC4peC4uOC4oeC4l+C4uOC4geC4oOC4suC4qeC4suC5g+C4meC4geC4peC4uOC5iOC4oS4g4Lir4Lij4Li34Lit4LmB4Lih4LmJ4LmB4LiV4LmI4LmD4LiZ4Lig4Liy4Lip4Liy4LmA4LiU4Li14LmI4Lii4LinIOC5gOC4iuC5iOC4mSDguKDguLLguKnguLLguK3guLHguIfguIHguKTguKkg4LiB4LmH4LmE4Lih4LmI4Lih4Li1IGVuY29kaW5nIOC5g+C4lOC4l+C4teC5iOC5gOC4nuC4teC4ouC4h+C4nuC4reC4quC4s+C4q+C4o+C4seC4muC4l+C4uOC4geC4leC4seC4p+C4reC4seC4geC4qeC4oywg4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lih4Liy4Lii4Lin4Lij4Lij4LiE4LiV4Lit4LiZIOC5geC4peC4sOC4quC4seC4jeC4peC4seC4geC4qeC4k+C5jOC4l+C4suC4h+C5gOC4l+C4hOC4meC4tOC4hOC4l+C4teC5iOC5g+C4iuC5ieC4geC4seC4meC4reC4ouC4ueC5iOC4l+C4seC5iOC4p+C5hOC4my4gCisKK+C4o+C4sOC4muC4miBlbmNvZGluZyDguYDguKvguKXguYjguLLguJnguLXguYnguKLguLHguIfguILguLHguJTguYHguKLguYnguIfguIvguLbguYjguIfguIHguLHguJnguYHguKXguLDguIHguLHguJkuIOC4meC4seC5iOC4meC4geC5h+C4hOC4t+C4rSwg4LmD4LiZ4Liq4Lit4LiHIGVuY29kaW5nIOC4quC4suC4oeC4suC4o+C4luC5g+C4iuC5ieC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4lOC4teC4ouC4p+C4geC4seC4meC4quC4s+C4q+C4o+C4seC4muC4leC4seC4p+C4reC4seC4geC4guC4o+C4sOC4quC4reC4h+C4leC4seC4p+C4l+C4teC5iOC5geC4leC4geC4leC5iOC4suC4h+C4geC4seC4mSzguKvguKPguLfguK3guYPguIrguYnguKvguKHguLLguKLguYDguKXguILguJXguYjguLLguIfguIHguLHguJnguKrguLPguKvguKPguLHguJrguK3guLHguIHguILguKPguLDguJXguLHguKfguYDguJTguLXguKLguKfguIHguLHguJkuIOC5g+C4meC4o+C4sOC4muC4muC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jCAo4LmC4LiU4Lii4LmA4LiJ4Lie4Liy4Liw4LmA4LiL4Li04Lij4LmM4Lif4LmA4Lin4Lit4Lij4LmMKSDguJXguYnguK3guIfguKHguLXguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguKvguKXguLLguKIgZW5jb2Rpbmc7IOC5geC4peC4sOC5gOC4oeC4t+C5iOC4reC4guC5ieC4reC4oeC4ueC4peC4l+C4teC5iOC4nOC5iOC4suC4meC5hOC4m+C4oeC4suC4o+C4sOC4q+C4p+C5iOC4suC4h+C4geC4suC4o+C5gOC4guC5ieC4suC4o+C4q+C4seC4quC4q+C4o+C4t+C4reC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oeC4l+C4teC5iOC4leC5iOC4suC4h+C4geC4seC4mSwg4LiC4LmJ4Lit4Lih4Li54Lil4LiZ4Lix4LmJ4LiZ4LiI4Liw4LmA4Liq4Li14LmI4Lii4LiH4LiV4LmI4Lit4LiB4Liy4Lij4Lic4Li04LiU4Lie4Lil4Liy4LiU4LmA4Liq4Li14Lii4Lir4Liy4LiiLgorCitVbmljb2RlIOC4iOC4sOC5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4quC4tOC5iOC4h+C5gOC4q+C4peC5iOC4suC4meC4seC5ieC4meC4l+C4seC5ieC4h+C4q+C4oeC4lCEKK1VuaWNvZGUg4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiJ4Lie4Liy4Liw4Liq4Liz4Lir4Lij4Lix4Lia4LmB4LiV4LmI4Lil4Liw4Lit4Lix4LiB4LiC4Lij4LiwLCDguYLguJTguKLguYTguKHguYjguKrguJnguYPguIjguKfguYjguLLguYDguJvguYfguJnguYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKHguYPguJQsIOC5hOC4oeC5iOC4guC4tuC5ieC4meC4geC4seC4muC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC5guC4m+C4o+C5geC4geC4o+C4oeC5g+C4lOC5geC4peC4sOC5hOC4oeC5iOC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC4oOC4suC4qeC4suC5g+C4lC4g4Lih4Liy4LiV4Lij4LiQ4Liy4LiZIFVuaWNvZGUg4LmE4LiU4LmJ4LiW4Li54LiB4LiZ4Liz4LmE4Lib4LmD4LiK4LmJ4LmC4LiU4Lii4Lic4Li54LmJ4LiZ4Liz4LmD4LiZ4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4LihIOC5gOC4iuC5iOC4mSBBcHBsZSwgSFAsIElCTSwgSnVzdFN5c3RlbSwgTWljcm9zb2Z0LCBPcmFjbGUsIFNBUCwgU3VuLCBTeWJhc2UsIFVuaXN5cyDguYHguKXguLDguK3guLfguYjguJnguYYg4Lit4Li14LiB4Lih4Liy4LiBLiBVbmljb2RlIOC5gOC4m+C5h+C4meC4quC4tOC5iOC4h+C4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC4quC4s+C4q+C4o+C4seC4muC4oeC4suC4leC4o+C4kOC4suC4meC5g+C4q+C4oeC5iOC5hiDguYDguIrguYjguJkgWE1MLCBKYXZhLCBFQ01BU2NyaXB0IChKYXZhU2NyaXB0KSwgTERBUCwgQ09SQkEgMy4wLCBXTUwg4Liv4Lil4LivLiwg4LmB4Lil4Liw4LmA4Lib4LmH4LiZ4LmB4LiZ4Lin4LiX4Liy4LiH4Lit4Lii4LmI4Liy4LiH4LmA4Lib4LmH4LiZ4LiX4Liy4LiH4LiB4Liy4Lij4LmD4LiZ4LiB4Liy4Lij4LiX4LizIElTTy9JRUMgMTA2NDYuIFVuaWNvZGUg4LmE4LiU4LmJ4Lij4Lix4Lia4LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4LmD4LiZ4Lij4Liw4Lia4Lia4Lib4LiP4Li04Lia4Lix4LiV4Li04LiB4Liy4Lij4LiI4Liz4LiZ4Lin4LiZ4Lih4Liy4LiBLCDguJrguKPguLLguKfguYDguIvguK3guKPguYzguYPguKvguKHguYjguYYg4LiX4LiB4LiV4Lix4LinLCDguYHguKXguLDguJzguKXguLTguJXguKDguLHguJPguJHguYzguK3guLfguYjguJnguYYg4Lit4Li14LiB4Lih4Liy4LiBLiDguIHguLLguKPguYDguIHguLTguJTguILguLbguYnguJnguILguK3guIcgVW5pY29kZSBTdGFuZGFyZCDguYHguKXguLDguJfguLnguKXguKrguYzguJXguYjguLLguIfguYYg4LiX4Li14LmI4Lih4Li14LmD4LiZ4LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZIFVuaWNvZGUsIOC5gOC4m+C5h+C4meC4q+C4meC4tuC5iOC4h+C5g+C4meC5geC4meC4p+C5guC4meC5ieC4oeC4l+C4suC4h+C5gOC4l+C4hOC5guC4meC5guC4peC4ouC4teC4i+C4reC4n+C4leC5jOC5geC4p+C4o+C5jOC4o+C4sOC4lOC4seC4muC5guC4peC4geC4l+C4teC5iOC4oeC4teC4hOC4p+C4suC4oeC4quC4s+C4hOC4seC4jeC4l+C4teC5iOC4quC4uOC4lC4KKwor4LiB4Liy4Lij4Lij4Lin4LihIFVuaWNvZGUg4LmA4LiC4LmJ4Liy4LmE4Lib4LmD4LiZ4Lij4Liw4Lia4Lia4LmE4LiE4Lil4LmA4Lit4LmH4LiZ4LiV4LmMLeC5gOC4i+C4tOC4o+C5jOC4n+C5gOC4p+C4reC4o+C5jCDguKvguKPguLfguK3guYHguK3guYfguJ7guJ7guKXguLTguYDguITguIrguLHguJnguYHguJrguJogbXVsdGktdGllcmVkIOC5geC4peC4sOC5gOC4p+C5h+C4muC5hOC4i+C4leC5jCDguIjguLDguJfguLPguYPguKvguYnguYDguIHguLTguJTguIHguLLguKPguJvguKPguLDguKvguKLguLHguJTguITguYjguLLguYPguIrguYnguIjguYjguLLguKLguKHguLLguIHguIHguKfguYjguLLguIHguLLguKPguYPguIrguYnguIrguLjguJTguK3guLHguIHguILguKPguLDguYHguJrguJrguYDguJTguLTguKEuIFVuaWNvZGUg4LiX4Liz4LmD4Lir4LmJ4Lic4Lil4Li04LiV4Lig4Lix4LiT4LiR4LmM4LiL4Lit4Lif4LiV4LmM4LmB4Lin4Lij4LmM4Lir4LiZ4Li24LmI4LiH4LmA4LiU4Li14Lii4LinIOC4q+C4o+C4t+C4reC5gOC4p+C5h+C4muC5hOC4i+C4leC5jOC5geC4q+C5iOC4h+C5gOC4lOC4teC4ouC4pyDguKPguK3guIfguKPguLHguJrguYTguJTguYnguKvguKXguLLguKLguYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKEsIOC4q+C4peC4suC4ouC4oOC4suC4qeC4suC5geC4peC4sOC4q+C4peC4suC4ouC4m+C4o+C4sOC5gOC4l+C4qOC5guC4lOC4ouC5hOC4oeC5iOC4leC5ieC4reC4h+C4l+C4s+C4geC4suC4o+C4o+C4t+C5ieC4reC4m+C4o+C4seC4muC4o+C4sOC4muC4mi4gVW5pY29kZSDguKLguLHguIfguJfguLPguYPguKvguYnguILguYnguK3guKHguLnguKXguKrguLLguKHguLLguKPguJbguYDguITguKXguLfguYjguK3guJnguKLguYnguLLguKLguYTguJvguKHguLLguYPguJnguKvguKXguLLguKLguYYg4Lij4Liw4Lia4Lia4LmC4LiU4Lii4LmE4Lih4LmI4LmA4LiB4Li04LiU4LiE4Lin4Liy4Lih4Lic4Li04LiU4Lie4Lil4Liy4LiU4LmA4Liq4Li14Lii4Lir4Liy4LiiLgorCivguYDguIHguLXguYjguKLguKfguIHguLHguJogVW5pY29kZSBDb25zb3J0aXVtCitVbmljb2RlIENvbnNvcnRpdW0g4LmA4Lib4LmH4LiZ4Lit4LiH4LiE4LmM4LiB4Lij4LmE4Lih4LmI4LmB4Liq4Lin4LiH4Lir4Liy4LiB4Liz4LmE4Lij4LiX4Li14LmI4LiB4LmI4Lit4LiV4Lix4LmJ4LiH4LiC4Li24LmJ4LiZ4LmA4Lie4Li34LmI4Lit4Lie4Lix4LiS4LiZ4LiyLCDguILguKLguLLguKLguYHguKXguLDguKrguYjguIfguYDguKrguKPguLTguKHguIHguLLguKPguYPguIrguYkgVW5pY29kZSBTdGFuZGFyZCwg4LiL4Li24LmI4LiH4LiB4Liz4Lir4LiZ4LiU4Lij4Li54Lib4LmB4Lia4Lia4LiB4Liy4Lij4LmB4LiX4LiZ4LiE4LmI4Liy4LiC4Lit4LiH4LiC4LmJ4Lit4LiE4Lin4Liy4Lih4LmD4LiZ4Lic4Lil4Li04LiV4Lig4Lix4LiT4LiR4LmM4LiL4Lit4Lif4LiV4LmM4LmB4Lin4Lij4LmM4LmB4Lil4Liw4Lih4Liy4LiV4Lij4LiQ4Liy4LiZ4LmD4Lir4Lih4LmI4LmGLiDguKrguKHguLLguIrguLTguIHguILguK3guIfguKrguKHguLLguITguKHguYDguJvguYfguJnguJXguLHguKfguYHguJfguJnguIjguLLguIHguJrguKPguLTguKnguLHguJfguYHguKXguLDguK3guIfguITguYzguIHguKPguYPguJnguK3guLjguJXguKrguLLguKvguIHguKPguKPguKHguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYzguYHguKXguLDguIHguLLguKPguJvguKPguLDguKHguKfguKXguJzguKXguKrguLLguKPguKrguJnguYDguJfguKguIOC4quC4oeC4suC4hOC4oeC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC4l+C4suC4h+C4geC4suC4o+C5gOC4h+C4tOC4meC4nOC5iOC4suC4meC4l+C4suC4h+C4hOC5iOC4suC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oeC4guC4reC4h+C4geC4suC4o+C5gOC4m+C5h+C4meC4quC4oeC4suC4iuC4tOC4geC5gOC4l+C5iOC4suC4meC4seC5ieC4mS4g4Liq4Lih4Liy4LiK4Li04LiB4Lig4Liy4Lie4LiC4Lit4LiHIFVuaWNvZGUgQ29uc29ydGl1bSDguYDguJvguLTguJTguIHguKfguYnguLLguIfguKrguLPguKvguKPguLHguJrguK3guIfguITguYzguIHguKPguKvguKPguLfguK3guJrguLjguITguITguKXguYPguJTguYYg4LmD4LiZ4LmC4Lil4LiB4LiX4Li14LmI4LiV4LmJ4Lit4LiH4LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZIFVuaWNvZGUgU3RhbmRhcmQg4LmB4Lil4Liw4LiK4LmI4Lin4Lii4LmA4Lir4Lil4Li34Lit4LiB4Liy4Lij4LiC4Lii4Liy4Lii4LiV4Lix4Lin4LmB4Lil4Liw4LiB4Liy4Lij4LiZ4LizIFVuaWNvZGUg4LmE4Lib4LmD4LiK4LmJ4LiH4Liy4LiZLiAKKwor4Liq4Liz4Lir4Lij4Lix4Lia4LiC4LmJ4Lit4Lih4Li54Lil4LmA4Lie4Li04LmI4Lih4LmA4LiV4Li04LihLCDguYPguKvguYnguJTguLnguJfguLXguYggR2xvc3NhcnksIFNhbXBsZSBVbmljb2RlLUVuYWJsZWQgUHJvZHVjdHMsIFRlY2huaWNhbCBJbnRyb2R1Y3Rpb24g4LmB4Lil4LiwIFVzZWZ1bCBSZXNvdXJjZXMuCisKK+C5gOC4m+C5h+C4meC4oeC4meC4uOC4qeC4ouC5jOC4quC4uOC4lOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC5gOC4peC4tOC4qOC4hOC4uOC4k+C4hOC5iOC4sgor4LiB4Lin4LmI4Liy4Lia4Lij4Lij4LiU4Liy4Lid4Li54LiH4Liq4Lix4LiV4Lin4LmM4LmA4LiU4Lij4Lix4LiI4LiJ4Liy4LiZCivguIjguIfguJ3guYjguLLguJ/guLHguJnguJ7guLHguJLguJnguLLguKfguLTguIrguLLguIHguLLguKMKK+C4reC4ouC5iOC4suC4peC5ieC4suC4h+C4nOC4peC4suC4jeC4pOC5heC5gOC4guC5iOC4meC4huC5iOC4suC4muC4teC4keC4suC5g+C4hOC4owor4LmE4Lih4LmI4LiW4Li34Lit4LmC4LiX4Lip4LmC4LiB4Lij4LiY4LmB4LiK4LmI4LiH4LiL4Lix4LiU4Liu4Li24LiU4Liu4Lix4LiU4LiU4LmI4LiyCivguKvguLHguJTguK3guKDguLHguKLguYDguKvguKHguLfguK3guJnguIHguLXguKzguLLguK3guLHguIrguIzguLLguKrguLHguKIKK+C4m+C4j+C4tOC4muC4seC4leC4tOC4m+C4o+C4sOC4nuC4pOC4leC4tOC4geC4juC4geC4s+C4q+C4meC4lOC5g+C4iAor4Lie4Li54LiU4LiI4Liy4LmD4Lir4LmJ4LiI4LmK4LiwIOC5hiDguIjguYvguLIg4LmGIOC4meC5iOC4suC4n+C4seC4h+C5gOC4reC4ouC4rworCivguYHguKvguKXguYjguIfguJfguLXguYjguKHguLIgOiDguKrguKHguLLguITguKHguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYzguYHguKvguYjguIfguJvguKPguLDguYDguJfguKjguYTguJfguKIKKwor4LiF4LiZ4LiD4Lin4LiUIGtobyBraHVhdCBhbmQga2hvIGtob24KK0BUSVRMRUNBU0VACivguIHguYrguIHguYDguK7guIcg4LmB4LiL4LmI4LmB4LiV4LmJCivguIHguIrguIHguKMg4Lio4Lij4Liy4LiX4LiY4LiX4Lix4LiVCivguIHguJXguLTguIHguLIg4Lit4Lix4LiH4LiE4Liq4Li44Lig4LiTCivguIHguJnguIEg4LiY4Lij4Lij4Lih4Lib4Lij4Liw4LiX4Li14LibCivguIHguJnguIEg4Lin4LiH4Lio4LmM4LiX4Lit4LiH4Lio4Lij4Li1CivguIHguJnguIHguIHguKMg4LiK4LmJ4Liy4LiH4LmA4Lii4LmH4LiZ4LiJ4LmI4LizCivguIHguJnguIHguInguLHguJXguKPguYwg4LiW4Liy4Lin4Lij4LiZ4Lix4LiZ4LiX4LmMCivguIHguJnguIHguJnguKfguKUg4LmC4Lib4Lip4Lii4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMCivguIHguJnguIHguJ7guKMg4LiE4Lih4LiE4Liy4LiiCivguIHguJnguIHguJ7guKMg4LiV4Li14Lij4LmA4Lil4Li04Lio4Lie4Liy4LiZ4Li04LiKCivguIHguJnguIHguJ7guKMg4Lie4Lix4LiZ4LiX4LijCivguIHguJnguIHguJ7guKMg4Lio4Lij4Li14Lia4Lix4LiT4LiR4Li04LiVCivguIHguJnguIHguJ7guKMg4Lit4LiV4Li04Lin4Lij4Lij4LiT4Liy4Lie4Lix4LiS4LiZ4LmMCivguIHguJnguIHguJ7guKPguKPguJMg4Lio4Lij4Li14Lin4LiZ4Liy4Lig4Li04Lij4Lih4Lii4LmMCivguIHguJnguIHguKPguLHguJXguJnguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4Li04LmI4LiH4Lit4Lix4LiH4Lio4Li44Lil4Li1CivguIHguJnguIHguKPguLHguJXguJnguYwg4Liq4Li44LiY4Lij4Lij4Lih4Lie4Li04LiX4Lix4LiB4Lip4LmMCivguIHguJnguIHguKfguKPguKPguJMg4LiE4LiH4LiE4Liy4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguIHguJnguIHguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinCivguIHguJnguIHguKfguKPguKPguJMg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguIHguJnguIHguKfguKPguKPguJMg4Lij4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguIHguJnguIHguKfguKPguKPguJMg4Liq4Lix4LiI4LiI4Lie4LiH4Lip4LmMCivguIHguJnguIHguKfguKPguKPguJMg4Lit4Li44LmJ4Lii4Lin4LiH4Lio4LmM4LmE4Lie4Lio4Liy4LilCivguIHguJnguIHguKjguLHguIHguJTguLTguYwg4Lii4Li04LmI4LiH4Lii4LiHCivguIHguJnguIHguYHguIHguYnguKcg4LiB4Lij4Liq4Lih4Li04LiVCivguIHguJnguLTguKnguJDguLIg4LiX4LiZ4Li44LiW4LiZ4Lit4Lih4Lij4Liy4Lip4LiO4Lij4LmMCivguIHguJnguLTguKnguJDguLIg4Lir4Lin4Lix4LiH4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiICivguIHguKHguKUg4LiB4Liy4LiN4LiI4LiZ4LmC4Lij4LiI4LiZ4LmMCivguIHguKHguKUg4LiE4Lix4Lih4Lig4Li14Lij4LmMCivguIHguKHguKUg4LmA4LiI4LiV4LiZ4LmM4Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmMCivguIHguKHguKUg4LiK4Li54LiV4Lij4Liw4LiB4Li54Lil4LiY4Lij4Lij4LihCitAU0VUIFtbOnRoYWk6XSBcdTBFMDEtXHUwRTNBXHUwRTQwLVx1MEU1Ql0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYmRjZDk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQuamF2YQpAQCAtMCwwICsxLDI1MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CisKKy8qKgorICogQSBzdWJjbGFzcyBvZiB7QGxpbmsgRHVtYlRleHRDb21wb25lbnR9IHRoYXQgcGFzc2VzIGtleSBldmVudHMgdGhyb3VnaAorICogYSB7QGxpbmsgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcn0uCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudCBleHRlbmRzIER1bWJUZXh0Q29tcG9uZW50IHsKKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQgPSBudWxsOworICAgIAorICAgIC8vIE5PVEU6IERJU0FCTEUgVEhFIFNUQVJUIEFORCBDVVJTT1IgVU5USUwgV0UgQ0FOIEdFVCBJVCBUTyBXT1JLIEFUIEFMTAorCisgICAgLy8gSW5kZXggaW50byBnZXRUZXh0KCkgd2hlcmUgdGhlIHN0YXJ0IG9mIHRyYW5zbGl0ZXJhdGlvbiBpcy4KKyAgICAvLyBBcyB3ZSBjb21taXQgdGV4dCBkdXJpbmcgdHJhbnNsaXRlcmF0aW9uLCB3ZSBhZHZhbmNlCisgICAgLy8gdGhpcy4KKyAgICAvL3ByaXZhdGUgaW50IHN0YXJ0ID0gMDsKKworICAgIC8vIEluZGV4IGludG8gZ2V0VGV4dCgpIHdoZXJlIHRoZSBjdXJzb3IgaXM7IGN1cnNvciA+PSBzdGFydAorICAgIC8vcHJpdmF0ZSBpbnQgY3Vyc29yID0gMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudCgpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgLyoKKyAgICAgICAgYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBnZXQgYW4gQWN0aW9uRXZlbnQgb25seSB3aGVuIHRoZSBzZWxlY3Rpb24gY2hhbmdlcworICAgICAgICAgICAgICAgIHJlc2V0VHJhbnNsaXRlcmF0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgICovCisgICAgfQorCisgICAgLyoqCisgICAgICoge0BsaW5rIER1bWJUZXh0Q29tcG9uZW50fSBBUEkuICBGcmFtZXdvcmsgbWV0aG9kIHRoYXQgaXMgY2FsbGVkCisgICAgICogd2hlbiBhIDxjb2RlPktleUV2ZW50PC9jb2RlPiBpcyByZWNlaXZlZC4gIFRoaXMgaW1wbGVtZW50YXRpb24KKyAgICAgKiBydW5zIHRoZSBuZXcgY2hhcmFjdGVyIHRocm91Z2ggdGhlIGN1cnJlbnQKKyAgICAgKiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4sIGlmIG9uZSBpcyBzZXQsIGFuZCBpbnNlcnRzIHRoZQorICAgICAqIHRyYW5zbGl0ZXJhdGVkIHRleHQgaW50byB0aGUgYnVmZmVyLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgY2hhciBjaCA9IGUuZ2V0S2V5Q2hhcigpOworICAgICAgICAKKyAgICAgICAgaWYgKHRyYW5zbGl0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHN1cGVyLmhhbmRsZUtleVR5cGVkKGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdHJhbnNsaXRlcmF0ZShjaCwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBmbHVzaCgpIHsKKyAgICAgICAgaWYgKHRyYW5zbGl0ICE9IG51bGwpIHRyYW5zbGl0ZXJhdGUoJ1x1RkZGRicsIHRydWUpOworICAgIH0KKyAgICAKKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB0cmFuc2xpdGVyYXRlKGNoYXIgY2gsIGJvb2xlYW4gZmx1c2gpIHsKKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjYXNlIG1vdGl2YXRlcyB0aGUgdHdvIGxpbmVzIHRoYXQgcmVjb21wdXRlCisgICAgICAgIC8vIHN0YXJ0IGFuZCBjdXJzb3IgYmVsb3cuCisKKyAgICAgICAgLy8gICAgICAiICAgICAiICAgCisgICAgICAgIC8vIGEgYiBjIHEgcnxzIHQgdSBtIG0KKyAgICAgICAgLy8gMCAxIDIgMyA0IDUgNiA3IDggOQorICAgICAgICAvLyAgICAgICAwIDEgMgorCisgICAgICAgIC8vIHN0YXJ0IDMsIGN1cnNvciA1LCBzZWwgNiAtPiB7IDAsIDMsIDIgfQorICAgICAgICAvLyA6IG5ldyBpbnRbXSB7IDAsIHNlbCAtIHN0YXJ0LCBjdXJzb3IgLSBzdGFydCB9OworICAgICAgICAKKyAgICAgICAgLy8gc3o+OTl8OQorCisgICAgICAgIC8vICAgICAgIiAgICAgeyAgICIKKyAgICAgICAgLy8gYSBiIGMgcSByIDkgOXw5IHQgdSBtIG0KKyAgICAgICAgLy8gMCAxIDIgMyA0IDUgNiA3IDggOSBhIGIKKyAgICAgICAgLy8gICAgICAgMCAxIDIgMyA0CisKKyAgICAgICAgLy8geyAzLCA1LCA0IH0gLT4gc3RhcnQgNiwgY3Vyc29yIDcsIHNlbCA4CisgICAgICAgIC8vIDogc3RhcnQgKz0gaW5kZXhbMF07CisgICAgICAgIC8vIDogY3Vyc29yID0gc3RhcnQgKyBpbmRleFsyXSAtIGluZGV4WzBdOworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvLyBOZWVkIHRvIHNhdmUgc3RhcnQgYmVjYXVzZSBjYWxscyB0byByZXBsYWNlUmFuZ2Ugd2lsbCB1cGRhdGUKKyAgICAgICAgLy8gc3RhcnQgYW5kIGN1cnNvci4KKyAgICAgICAgLy9pbnQgc2F2ZVN0YXJ0ID0gc3RhcnQ7CisKKyAgICAgICAgaW50IGVuZCA9IGZsdXNoID8gZ2V0U2VsZWN0aW9uRW5kKCkgOiBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBTdHJpbmcgc291cmNlVGV4dCA9IGdldFRleHQoKS5zdWJzdHJpbmcoMCxlbmQpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBidWYgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc291cmNlVGV4dCk7CisgICAgICAgIC8qYnVmLnJlcGxhY2UoMCwgMSwgZ2V0VGV4dCgpLnN1YnN0cmluZyhzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTZWxlY3Rpb25TdGFydCgpKSk7Ki8KKworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgPSBidWYubGVuZ3RoKCk7CisgICAgICAgIGluZGV4LmNvbnRleHRTdGFydCA9IDA7CisgICAgICAgIGluZGV4LnN0YXJ0ID0gZ2V0S2V5U3RhcnQoKTsKKyAgICAgICAgaWYgKGluZGV4LnN0YXJ0ID09IC0xKSBpbmRleC5zdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGluZGV4LmxpbWl0ID0gYnVmLmxlbmd0aCgpOworCisgICAgICAvLyAgU3RyaW5nQnVmZmVyIGxvZyA9IG51bGw7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvcjogIiArIHRyYW5zbGl0LmdldElEKCkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGcm9tOlx0IiArICciJyArIGJ1Zi50b1N0cmluZygpICsgJyInCisgICAgICAgICAgICAgICAgKyAiOyB7Y3M6ICIgKyBpbmRleC5jb250ZXh0U3RhcnQKKyAgICAgICAgICAgICAgICArICIsIHM6ICIgKyBpbmRleC5zdGFydAorICAgICAgICAgICAgICAgICsgIiwgbDogIiArIGluZGV4LmxpbWl0CisgICAgICAgICAgICAgICAgKyAiLCBjbDogIiArIGluZGV4LmNvbnRleHRMaW1pdCAKKyAgICAgICAgICAgICAgICArICJ9IiArICI7ICciICsgY2ggKyAiJyIKKyAgICAgICAgICAgICAgICArICIgIiArIGdldEtleVN0YXJ0KCkKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgICAgIHRyYW5zbGl0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihidWYsIGluZGV4KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUoYnVmLCBpbmRleCwgY2gpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG86XHQiICsgJyInICsgYnVmLnRvU3RyaW5nKCkgKyAnIicKKyAgICAgICAgICAgICAgICArICI7IHtjczogIiArIGluZGV4LmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgczogIiArIGluZGV4LnN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBsOiAiICsgaW5kZXgubGltaXQKKyAgICAgICAgICAgICAgICArICIsIGNsOiAiICsgaW5kZXguY29udGV4dExpbWl0IAorICAgICAgICAgICAgICAgICsgIn0iCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIGJ1Zi5yZXBsYWNlKGJ1Zi5sZW5ndGgoKSwgYnVmLmxlbmd0aCgpLCBTdHJpbmcudmFsdWVPZihjaCkpOworICAgICAgICB0cmFuc2xpdC50cmFuc2xpdGVyYXRlKGJ1Zik7CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIC8vaWYgKHJlc3VsdC5lcXVhbHMoc291cmNlVGV4dCArIGNoKSkgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgcmVwbGFjZVJhbmdlKHJlc3VsdCwgMCwgZ2V0U2VsZWN0aW9uRW5kKCkpOworICAgICAgICBzZXRLZXlTdGFydChpbmRleC5zdGFydCk7CisgICAgICAgIAorICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHN0YXJ0IGhhcyBiZWVuIGNoYW5nZWQgYnkgdGhlIGNhbGxiYWNrIHRvCisgICAgICAgIC8vIHJlc2V0VHJhbnNsaXRlcmF0b3JTdGFydCgpIHZpYSByZXBsYWNlUmFuZ2UoKSAtLSBzbyB1c2Ugb3VyCisgICAgICAgIC8vIGxvY2FsIGNvcHksIHNhdmVTdGFydC4KKworICAgICAgICAvLyBUaGUgU1RBUlQgaW5kZXggaXMgemVyby1iYXNlZC4gIE9uIGVudHJ5IHRvIHRyYW5zbGl0ZXJhdGUoKSwKKyAgICAgICAgLy8gaXQgd2FzIHplcm8uICBXZSBjYW4gdGhlcmVmb3JlIGp1c3QgYWRkIGl0IHRvIG91ciBvcmlnaW5hbAorICAgICAgICAvLyBnZXRUZXh0KCktYmFzZWQgaW5kZXggdmFsdWUgb2Ygc3RhcnQgKGluIHNhdmVTdGFydCkgdG8gZ2V0CisgICAgICAgIC8vIHRoZSBuZXcgZ2V0VGV4dCgpLWJhc2VkIHN0YXJ0LgorLy8gICAgICAgIHN0YXJ0ID0gc2F2ZVN0YXJ0ICsgaW5kZXguY29udGV4dFN0YXJ0OworCisgICAgICAgIC8vIE1ha2UgdGhlIGN1cnNvciBnZXRUZXh0KCktYmFzZWQuICBUaGUgQ1VSU09SIGluZGV4IGlzIHplcm8tYmFzZWQuCisvLyAgICAgICAgY3Vyc29yID0gc3RhcnQgKyBpbmRleC5zdGFydCAtIGluZGV4LmNvbnRleHRTdGFydDsKKworLyoKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTdHJpbmcgb3V0ID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsb2cuYXBwZW5kKG91dC5zdWJzdHJpbmcoMCwgaW5kZXguY29udGV4dFN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd7JykuCisgICAgICAgICAgICAgICAgYXBwZW5kKG91dC5zdWJzdHJpbmcoaW5kZXguY29udGV4dFN0YXJ0LCBpbmRleC5zdGFydCkpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgnfCcpLgorICAgICAgICAgICAgICAgIGFwcGVuZChvdXQuc3Vic3RyaW5nKGluZGV4LnN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCciJyk7CisgICAgICAgICAgICBsb2cuYXBwZW5kKCIsIHsiICsgaW5kZXguY29udGV4dFN0YXJ0ICsgIiwgIiArIGluZGV4LmNvbnRleHRMaW1pdCArICIsICIgKyBpbmRleC5zdGFydCArICJ9LCAiKTsKKy8vICAgICAgICAgICAgbG9nLmFwcGVuZCgic3RhcnQgIiArIHN0YXJ0ICsgIiwgY3Vyc29yICIgKyBjdXJzb3IpOworICAgICAgICAgICAgbG9nLmFwcGVuZCgiLCBzZWwgIiArIGdldFNlbGVjdGlvblN0YXJ0KCkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICB9CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3J9IGFuZCBkaXJlY3Rpb24gdG8KKyAgICAgKiB1c2UgdG8gcHJvY2VzcyBpbmNvbWluZyA8Y29kZT5LZXlFdmVudDwvY29kZT5zLgorICAgICAqIEBwYXJhbSB0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcn0gdG8gdXNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VHJhbnNsaXRlcmF0b3IoVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAvKgorICAgICAgICBpZiAodHJhbnNsaXQgIT0gdCkgeyAvLyBbc2ljXSBwb2ludGVyIGNvbXBhcmUgb2s7IHNpbmdsZXRvbnMKKyAgICAgICAgICAgIHJlc2V0VHJhbnNsaXRlcmF0aW9uU3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICB0cmFuc2xpdCA9IHQ7CisgICAgfQorCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldFRyYW5zbGl0ZXJhdG9yKCkgeworICAgICAgICByZXR1cm4gdHJhbnNsaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIHN0YXJ0IHBvaW50IGF0IHdoaWNoIHRyYW5zbGl0ZXJhdGlvbiBiZWdpbnMuICBUaGlzCisgICAgICogbmVlZHMgdG8gYmUgZG9uZSB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBjdXJzb3Igb3Igd2hlbiB0aGUKKyAgICAgKiBjdXJyZW50IHtAbGluayBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yfSBpcyBjaGFuZ2VkLiAKKyAgICAgKi8KKyAgICAgLyoKKyAgICBwcml2YXRlIHZvaWQgcmVzZXRUcmFuc2xpdGVyYXRpb25TdGFydCgpIHsKKyAgICAgICAgc3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBjdXJzb3IgPSBzdGFydDsKKyAgICB9CisgICAgKi8KKworICAgIC8qKgorICAgICAqIEVzY2FwZSBub24tQVNDSUkgY2hhcmFjdGVycyBhcyBVbmljb2RlLgorICAgICAqIEpVU1QgRk9SIERFQlVHR0lORyBPVVRQVVQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXNjYXBlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPD0gMHgwMDdGKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcXFxcIik7IC8vIFRoYXQgaXMsICJcXCIKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgaWYgKGMgPCAweDEwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA8IDB4MTAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA8IDB4MTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdGlvbkNoYXJ0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW9uQ2hhcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDg3ZWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdGlvbkNoYXJ0LmphdmEKQEAgLTAsMCArMSwyODUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdGlvbkNoYXJ0IHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0Iik7CisgICAgICAgIFVuaWNvZGVTZXQgbGVuZ3RoTWFya3MgPSBuZXcgVW5pY29kZVNldCgiW1x1MDlEN1x1MEI1Ni1cdTBCNTdcdTBCRDdcdTBDNTZcdTBDRDUtXHUwQ0Q2XHUwRDU3XHUwQzU1XHUwQ0Q1XSIpOworICAgICAgICBpbnRbXSBpbmRpY1NjcmlwdHMgPSB7CisgICAgICAgICAgICBVU2NyaXB0LkxBVElOLAorICAgICAgICAgICAgVVNjcmlwdC5ERVZBTkFHQVJJLAorICAgICAgICAgICAgVVNjcmlwdC5CRU5HQUxJLAorICAgICAgICAgICAgVVNjcmlwdC5HVVJNVUtISSwKKyAgICAgICAgICAgIFVTY3JpcHQuR1VKQVJBVEksCisgICAgICAgICAgICBVU2NyaXB0Lk9SSVlBLAorICAgICAgICAgICAgVVNjcmlwdC5UQU1JTCwKKyAgICAgICAgICAgIFVTY3JpcHQuVEVMVUdVLAorICAgICAgICAgICAgVVNjcmlwdC5LQU5OQURBLAorICAgICAgICAgICAgVVNjcmlwdC5NQUxBWUFMQU0sCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gbmV3IFN0cmluZ1tpbmRpY1NjcmlwdHMubGVuZ3RoXTsKKyAgICAgICAgVW5pY29kZVNldFtdIHNldHMgPSBuZXcgVW5pY29kZVNldFtpbmRpY1NjcmlwdHMubGVuZ3RoXTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JbXSBmYWxsYmFja3MgPSBuZXcgVHJhbnNsaXRlcmF0b3JbaW5kaWNTY3JpcHRzLmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kaWNTY3JpcHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBuYW1lc1tpXSA9IFVTY3JpcHQuZ2V0TmFtZShpbmRpY1NjcmlwdHNbaV0pOworICAgICAgICAgICAgc2V0c1tpXSA9IG5ldyBVbmljb2RlU2V0KCJbWzoiICsgbmFtZXNbaV0gKyAiOl0mW1s6TDpdWzpNOl1dJls6YWdlPTMuMTpdXSIpOworICAgICAgICAgICAgZmFsbGJhY2tzW2ldID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImFueS0iICsgbmFtZXNbaV0pOworICAgICAgICB9CisgICAgICAgIEVxdWl2Q2xhc3MgZXEgPSBuZXcgRXF1aXZDbGFzcyhuZXcgUmV2ZXJzZUNvbXBhcmF0b3IoKSk7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gb3BlblByaW50V3JpdGVyKCJ0cmFuc0NoYXJ0Lmh0bWwiKTsKKyAgICAgICAgcHcucHJpbnRsbigiPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnPiIpOworICAgICAgICBwdy5wcmludGxuKCI8dGl0bGU+SW5kaWMgVHJhbnNsaXRlcmF0aW9uIENoYXJ0PC90aXRsZT48c3R5bGU+Iik7CisgICAgICAgIHB3LnByaW50bG4oInRkIHsgdGV4dC1hbGlnbjogQ2VudGVyOyBmb250LXNpemU6IDIwMCUgfSIpOworICAgICAgICBwdy5wcmludGxuKCJ0dCB7IGZvbnQtc2l6ZTogNTAlIH0iKTsKKyAgICAgICAgcHcucHJpbnRsbigidGQubWlzcyB7IGJhY2tncm91bmQtY29sb3I6ICNDQ0NDRkYgfSIpOworICAgICAgICBwdy5wcmludGxuKCI8L3N0eWxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPScjRkZGRkZGJz4iKTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBhbnlUb0xhdGluID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImFueS1sYXRpbiIpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiXHUwOTQ2XHUwOTNFIjsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgZmFpbE5vcm0gPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBTZXQgbGF0aW5GYWlsID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kaWNTY3JpcHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaW5kaWNTY3JpcHRzW2ldID09IFVTY3JpcHQuTEFUSU4pIGNvbnRpbnVlOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHNvdXJjZUNoYXJzID0gc2V0c1tpXTsKKworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBqKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gbmFtZXNbal07CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgZm9yd2FyZCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHNvdXJjZSArICctJyArIHRhcmdldCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgYmFja3dhcmQgPSBmb3J3YXJkLmdldEludmVyc2UoKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNvdXJjZUNoYXJzKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGhNYXJrcy5jb250YWlucyhpdC5jb2RlcG9pbnQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpdC5jb2RlcG9pbnQsTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgICAgICAgICAgICAgIC8vaWYgKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChzLE5vcm1hbGl6ZXIuTkZDLDApKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhOb3JtYWxpemVyLm5vcm1hbGl6ZShzLE5vcm1hbGl6ZXIuTkZELDApKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbE5vcm0uYWRkKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ID0gZml4KGZvcndhcmQudHJhbnNsaXRlcmF0ZShzKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0LmVxdWFscyh0ZXN0U3RyaW5nKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkZWJ1ZyIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHIgPSBmaXgoYmFja3dhcmQudHJhbnNsaXRlcmF0ZSh0KSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLmNvbXBhcmUocyxyLDApID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRpY1NjcmlwdHNbal0gIT0gVVNjcmlwdC5MQVRJTikgZXEuYWRkKHMsdCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kaWNTY3JpcHRzW2pdID09IFVTY3JpcHQuTEFUSU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbkZhaWwuYWRkKHMgKyAiIC0gIiArIHQgKyAiIC0gIiArIHIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGNvbGxlY3QgZXF1aXZhbGVudHMKKyAgICAgICAgcHcucHJpbnRsbigiPHRhYmxlIGJvcmRlcj0nMScgY2VsbHNwYWNpbmc9JzAnPjx0cj4iKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHB3LnByaW50KCI8dGggd2lkdGg9JzEwJSc+IiArIG5hbWVzW2ldLnN1YnN0cmluZygwLDMpICsgIjwvdGg+Iik7CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigiPC90cj4iKTsKKworICAgICAgICBJdGVyYXRvciByaXQgPSBlcS5nZXRTZXRJdGVyYXRvcihuZXcgTXlDb21wYXJhdG9yKCkpOworICAgICAgICB3aGlsZShyaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTZXQgZXF1aXZzID0gKFNldClyaXQubmV4dCgpOworICAgICAgICAgICAgcHcucHJpbnQoIjx0cj4iKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIHNpdCA9IGVxdWl2cy5pdGVyYXRvcigpOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpc2l0Lm5leHQoKTsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtID0gYW55VG9MYXRpbi50cmFuc2xpdGVyYXRlKHNvdXJjZSk7CisgICAgICAgICAgICBpZiAoaXRlbS5lcXVhbHMoIiIpIHx8IHNvdXJjZS5lcXVhbHMoaXRlbSkpIGl0ZW0gPSAiJm5ic3A7IjsKKyAgICAgICAgICAgIHB3LnByaW50KCI8dGQ+IiArIGl0ZW0gKyAiPC90ZD4iKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgaW5kaWNTY3JpcHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgc2l0ID0gZXF1aXZzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgaXRlbSA9ICIiOworICAgICAgICAgICAgICAgIHdoaWxlIChzaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0cmlhbCA9IChTdHJpbmcpc2l0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzZXRzW2ldLmNvbnRhaW5zQWxsKHRyaWFsKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSB0cmlhbDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBjbGFzc1N0cmluZyA9ICIiOworICAgICAgICAgICAgICAgIGlmIChpdGVtLmVxdWFscygiIikpIHsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NTdHJpbmcgPSAiIGNsYXNzPSdtaXNzJyI7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gZmFsbGJhY2tzW2ldLnRyYW5zbGl0ZXJhdGUoc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZW1wLmVxdWFscygiIikgJiYgIXRlbXAuZXF1YWxzKHNvdXJjZSkpIGl0ZW0gPSB0ZW1wOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgU3RyaW5nIGJhY2t1cCA9IGl0ZW0uZXF1YWxzKCIiKSA/ICImbmJzcDsiIDogaXRlbTsKKyAgICAgICAgICAgICAgICBwdy5wcmludCgiPHRkIiArIGNsYXNzU3RyaW5nICsgIiB0aXRsZT0nIiArIGdldE5hbWUoaXRlbSwgIjsgIikgKyAiJz4iIAorICAgICAgICAgICAgICAgICAgICArIGJhY2t1cCArICI8YnI+PHR0PiIgKyBVdGlsaXR5LmhleChpdGVtKSArICI8L3R0PjwvdGQ+Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgSXRlcmF0b3Igc2l0ID0gZXF1aXZzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoc2l0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gKFN0cmluZylzaXQubmV4dCgpOworICAgICAgICAgICAgICAgIHB3LnByaW50KCI8dGQ+IiArIGl0ZW0gKyAiPC90ZD4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgICAgICBwdy5wcmludGxuKCI8L3RyPiIpOworICAgICAgICB9CisgICAgICAgIHB3LnByaW50bG4oIjwvdGFibGU+Iik7CisgICAgICAgIGlmICh0cnVlKSB7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDI+RmFpbGVkIE5vcm1hbGl6YXRpb248L2gyPiIpOworICAgIAorICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihmYWlsTm9ybSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHBpZWNlcyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBVVEYxNi52YWx1ZU9mKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzLE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIk5vcm06IiArIHMgKyAiLCAiICsgVXRpbGl0eS5oZXgocykgKyAiICIgKyBVQ2hhcmFjdGVyLmdldE5hbWUoaXQuY29kZXBvaW50KQorICAgICAgICAgICAgICAgICAgICAgKyAiOyAiICsgZCArICIsICIgKyBVdGlsaXR5LmhleChkKSArICIsICIpOworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oVUNoYXJhY3Rlci5nZXROYW1lKGQuY2hhckF0KDEpKSArICI8YnI+Iik7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0TmFtZShkLmNoYXJBdCgxKSkuaW5kZXhPZigiTEVOR1RIIikgPj0gMCkgcGllY2VzLmFkZChkLmNoYXJBdCgxKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdy5wcmludGxuKHBpZWNlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5GYWlsZWQgUm91bmQtVHJpcDwvaDI+Iik7CisgICAgICAgICAgICBJdGVyYXRvciBjaXQgPSBsYXRpbkZhaWwuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChjaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbihjaXQubmV4dCgpICsgIjxicj4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKworICAgICAgICBwdy5wcmludGxuKCI8L3RhYmxlPjwvYm9keT48L2h0bWw+Iik7CisgICAgICAgIHB3LmNsb3NlKCk7ICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZpeChTdHJpbmcgcykgeworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MDk0Nlx1MDkzRSIpKSByZXR1cm4gIlx1MDk0QSI7CisgICAgICAgIGlmIChzLmVxdWFscygiXHUwQzQ2XHUwQzNFIikpIHJldHVybiAiXHUwQzRBIjsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTBDQzZcdTBDQkUiKSkgcmV0dXJuICJcdTBDQ0EiOworCisgICAgICAgIGlmIChzLmVxdWFscygiXHUwOTQ3XHUwOTNFIikpIHJldHVybiAiXHUwOTRCIjsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTBBNDdcdTBBM0UiKSkgcmV0dXJuICJcdTBBNEIiOworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MEFDN1x1MEFCRSIpKSByZXR1cm4gIlx1MEFDQiI7CisgICAgICAgIGlmIChzLmVxdWFscygiXHUwQzQ3XHUwQzNFIikpIHJldHVybiAiXHUwQzRCIjsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTBDQzdcdTBDQkUiKSkgcmV0dXJuICJcdTBDQ0IiOworICAgICAgIAorICAgICAgICAvL3JldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShzLE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICByZXR1cm4gczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBQcmludFdyaXRlciBvcGVuUHJpbnRXcml0ZXIoU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlIGxmID0gbmV3IEZpbGUoZmlsZU5hbWUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNyZWF0aW5nIGZpbGU6ICIgKyBsZi5nZXRBYnNvbHV0ZUZpbGUoKSk7CisgICAgCisgICAgICAgIHJldHVybiBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZU5hbWUpLCAiVVRGOCIpLCA0KjEwMjQpKTsKKyAgICB9CisKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzLCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocyxpKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHNiLmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICAgICAgc2IuYXBwZW5kKFVDaGFyYWN0ZXIuZ2V0TmFtZShjcCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgTXlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBJdGVyYXRvciBpMSA9ICgoVHJlZVNldCkgbzEpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBJdGVyYXRvciBpMiA9ICgoVHJlZVNldCkgbzIpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaTEuaGFzTmV4dCgpICYmIGkyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBhID0gKFN0cmluZylpMS5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGIgPSAoU3RyaW5nKWkyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gYS5jb21wYXJlVG8oYik7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkxLmhhc05leHQoKSkgcmV0dXJuIDE7CisgICAgICAgICAgICBpZiAoaTIuaGFzTmV4dCgpKSByZXR1cm4gLTE7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgc3RhdGljIGNsYXNzIFJldmVyc2VDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgICAgICAgU3RyaW5nIGEgPSBvMS50b1N0cmluZygpOworICAgICAgICAgICAgY2hhciBhMSA9IGEuY2hhckF0KDApOworICAgICAgICAgICAgU3RyaW5nIGIgPSBvMi50b1N0cmluZygpOworICAgICAgICAgICAgY2hhciBiMSA9IGIuY2hhckF0KDApOworICAgICAgICAgICAgaWYgKGExIDwgMHg5MDAgJiYgYjEgPiAweDkwMCkgcmV0dXJuIC0xOworICAgICAgICAgICAgaWYgKGExID4gMHg5MDAgJiYgYjEgPCAweDkwMCkgcmV0dXJuICsxOworICAgICAgICAgICAgcmV0dXJuIGEuY29tcGFyZVRvKGIpOworICAgICAgICB9ICAgICAgIAorICAgIH0KKyAgICAgIAorICAgIHN0YXRpYyBjbGFzcyBFcXVpdkNsYXNzIHsKKyAgICAgICAgRXF1aXZDbGFzcyhDb21wYXJhdG9yIGMpIHsKKyAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBjOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgSGFzaE1hcCBpdGVtVG9TZXQgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3IgY29tcGFyYXRvcjsKKyAgICAgICAgCisgICAgICAgIHZvaWQgYWRkKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgU2V0IHNhID0gKFNldClpdGVtVG9TZXQuZ2V0KGEpOworICAgICAgICAgICAgU2V0IHNiID0gKFNldClpdGVtVG9TZXQuZ2V0KGIpOworICAgICAgICAgICAgaWYgKHNhID09IG51bGwgJiYgc2IgPT0gbnVsbCkgeyAvLyBuZXcgc2V0IQorICAgICAgICAgICAgICAgIFNldCBzID0gbmV3IFRyZWVTZXQoY29tcGFyYXRvcik7CisgICAgICAgICAgICAgICAgcy5hZGQoYSk7CisgICAgICAgICAgICAgICAgcy5hZGQoYik7CisgICAgICAgICAgICAgICAgaXRlbVRvU2V0LnB1dChhLCBzKTsKKyAgICAgICAgICAgICAgICBpdGVtVG9TZXQucHV0KGIsIHMpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzYSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2IuYWRkKGEpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzYiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2EuYWRkKGIpOworICAgICAgICAgICAgfSBlbHNlIHsgLy8gbWVyZ2Ugc2V0cywgZHVtcGluZyBzYgorICAgICAgICAgICAgICAgIHNhLmFkZEFsbChzYik7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlbVRvU2V0LnB1dChpdC5uZXh0KCksIHNhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgY2xhc3MgTXlJdGVyYXRvciBpbXBsZW1lbnRzIEl0ZXJhdG9yIHsKKyAgICAgICAgICAgIHByaXZhdGUgSXRlcmF0b3IgaXQ7CisgICAgICAgICAgICBNeUl0ZXJhdG9yIChDb21wYXJhdG9yIGNvbXApIHsKKyAgICAgICAgICAgICAgICBUcmVlU2V0IHZhbHVlcyA9IG5ldyBUcmVlU2V0KGNvbXApOworICAgICAgICAgICAgICAgIHZhbHVlcy5hZGRBbGwoaXRlbVRvU2V0LnZhbHVlcygpKTsKKyAgICAgICAgICAgICAgICBpdCA9IHZhbHVlcy5pdGVyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGl0Lmhhc05leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaXQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgcmVtb3ZlKCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbid0IHJlbW92ZSIpOworICAgICAgICAgICAgfSAgICAgICAgCisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0U2V0SXRlcmF0b3IgKENvbXBhcmF0b3IgY29tcCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBNeUl0ZXJhdG9yKGNvbXApOworICAgICAgICB9CisKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uYmF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRkOWMyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQKQEAgLTAsMCArMSwxMyBAQAorUkVNIC8qCitSRU0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorUkVNICAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCitSRU0gICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKK1JFTSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorUkVNICAqLworUkVNIEZvciBiZXN0IHJlc3VsdHMsIHJ1biB0aGUgZGVtbyBhcyBhbiBhcHBsZXQgaW5zaWRlIG9mIE5ldHNjYXBlCitSRU0gd2l0aCBCaXRzdHJlYW0gQ3liZXJiaXQgaW5zdGFsbGVkLgorCitSRU0gc2V0dXAgeW91ciBKREsgMS4xLnggcGF0aCBhbmQgY2xhc3NwYXRoIGhlcmU6CitjYWxsIEpESzExCitzZXQgQ0xBU1NQQVRIPS4uL3RyYW5zbGl0LmphcjslQ0xBU1NQQVRIJQoramF2YXcgRGVtbwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9kZW1vLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmE3ZWU1YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9kZW1vLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCEtLSAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLS0+Cis8SFRNTD4KKzxIRUFEPgorPFRJVExFPlRyYW5zbGl0ZXJhdGlvbiBEZW1vPC9USVRMRT4KKzwvSEVBRD4KKzxCT0RZPgorPEFQUExFVCBDT0RFPSJjb20uaWJtLmRlbW8udHJhbnNsaXQuRGVtb0FwcGxldC5jbGFzcyIgV0lEVEg9MTQwIEhFSUdIVD0zMz48L0FQUExFVD4KKworPEhSPgorCitJZiB5b3UgZG9uJ3Qgc2VlIGEgYnV0dG9uIGFib3ZlLCB0aGVuIHlvdXIgYnJvd3NlciBpcyBmYWlsaW5nIHRvCitsb2NhdGUgdGhlIG5lY2Vzc2FyeSBKYXZhIGNsYXNzIGZpbGVzLgorCis8UD4KKworT25lIHdheSB0byBtYWtlIHRoaXMgd29yayBpcyB0byBjb3B5IHRoaXMgSFRNTCBmaWxlIHRvCis8Y29kZT5pY3U0ai9zcmM8L2NvZGU+LCBhbmQgbWFrZSBzdXJlIHRoZSBKYXZhIGZpbGVzIGluIHRoZSBkaXJlY3RvcmllcwordW5kZXIgPGNvZGU+aWN1NGovc3JjL2NvbTwvY29kZT4gYXJlIGJ1aWx0LiAgVGhlbiBvcGVuIHRoaXMgSFRNTCBmaWxlCit1c2luZyBhIGJyb3dzZXIgb3IgYXBwbGV0dmlld2VyLgorCis8UD4KKworRm9yIGJlc3QgcmVzdWx0cywgcnVuIHRoaXMgZGVtbyBhcyBhbiBhcHBsZXQgd2l0aGluIE5ldHNjYXBlIHdpdGgKK0JpdHN0cmVhbSBDeWJlcmJpdCBpbnN0YWxsZWQuCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgzNTVkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1RyYW5zbGl0ZXJhdG9yIGRlbW8gYXBwbGlhdGlvbi4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0hhbl9QaW55aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9IYW5fUGlueWluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjdjMjFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9IYW5fUGlueWluLnR4dApAQCAtMCwwICsxLDIwMzY1IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgR2VuZXJhdGVkOiBGcmkgSmFuIDI2IDE1OjE0OjQ4IDIwMDEKKyMgVG9vbDogLi5cLi5cdG9vbHNcdHJhbnNsaXRcaGFucGlueWluLnBsCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBIYW4tUGlueWluCisKKyMgTWVjaGFuaWNhbGx5IGRlcml2ZWQgZnJvbSBcZGVza1xVbmloYW4udHh0IChmdHAudW5pY29kZS5vcmcpLCB2ZXJzaW9uOgorIworIwlOYW1lOiAgICAgICAgICAgICBVbmloYW4gZGF0YWJhc2UKKyMJVW5pY29kZSB2ZXJzaW9uOiAgMy4wYjEKKyMJVGFibGUgdmVyc2lvbjogICAgMS4xCisjCURhdGU6ICAgICAgICAgICAgIDIgSnVseSAxOTk5CisjCisjCUNvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFVuaWNvZGUsIEluYy4gIEFsbCBSaWdodHMgcmVzZXJ2ZWQuCisKK+S4gSA+IGTEq25nOyAjNEUwMQor5LiCID4ga8SDbzsgIzRFMDIKK+S4gyA+IHHEqzsgIzRFMDMKK+S4hCA+IHNow6BuZzsgIzRFMDQKK+S4hSA+IHhpw6A7ICM0RTA1CivkuIcgPiBtw7I7ICM0RTA3CivkuIggPiB6aMOgbmc7ICM0RTA4CivkuIkgPiBzxIFuOyAjNEUwOQor5LiKID4gc2jDoG5nOyAjNEUwQQor5LiLID4geGnDoDsgIzRFMEIKK+S4jCA+IGrEqzsgIzRFMEMKK+S4jSA+IGLDuTsgIzRFMEQKK+S4jiA+IHnFrTsgIzRFMEUKK+S4jyA+IG1pxINuOyAjNEUwRgor5LiQID4gZ8OgaTsgIzRFMTAKK+S4kSA+IGNoxY91OyAjNEUxMQor5LiSID4gY2jFj3U7ICM0RTEyCivkuJMgPiB6aHXEgW47ICM0RTEzCivkuJQgPiBxacSVOyAjNEUxNAor5LiVID4gcMSrOyAjNEUxNQor5LiWID4gc2jDrDsgIzRFMTYKK+S4lyA+IHNow6w7ICM0RTE3CivkuJggPiBxxKt1OyAjNEUxOAor5LiZID4gYsStbmc7ICM0RTE5CivkuJogPiB5w6g7ICM0RTFBCivkuJsgPiBjw7NuZzsgIzRFMUIKK+S4nCA+IGTFjW5nOyAjNEUxQwor5LidID4gc8SrOyAjNEUxRAor5LieID4gY2jDqW5nOyAjNEUxRQor5LifID4gZMSrdTsgIzRFMUYKK+S4oCA+IHHEq3U7ICM0RTIwCivkuKEgPiBsacSDbmc7ICM0RTIxCivkuKIgPiBkxKt1OyAjNEUyMgor5LijID4gecWPdTsgIzRFMjMKK+S4pCA+IGxpxINuZzsgIzRFMjQKK+S4pSA+IHnDoW47ICM0RTI1CivkuKYgPiBiw6xuZzsgIzRFMjYKK+S4pyA+IHPEgW5nOyAjNEUyNwor5LioID4gZ8WtbjsgIzRFMjgKK+S4qSA+IGrEq3U7ICM0RTI5CivkuKogPiBnw6g7ICM0RTJBCivkuKsgPiB5xIE7ICM0RTJCCivkuKwgPiBxacOhbmc7ICM0RTJDCivkuK0gPiB6aMWNbmc7ICM0RTJECivkuK4gPiBqxK07ICM0RTJFCivkuK8gPiBqacOoOyAjNEUyRgor5LiwID4gZsSTbmc7ICM0RTMwCivkuLEgPiBndcOgbjsgIzRFMzEKK+S4siA+IGNodcOgbjsgIzRFMzIKK+S4syA+IGNoxINuOyAjNEUzMwor5Li0ID4gbMOtbjsgIzRFMzQKK+S4tSA+IHpoxa1vOyAjNEUzNQor5Li2ID4gemjFrTsgIzRFMzYKK+S4uCA+IHfDoW47ICM0RTM4CivkuLkgPiBkxIFuOyAjNEUzOQor5Li6ID4gd8OoaTsgIzRFM0EKK+S4uyA+IHpoxa07ICM0RTNCCivkuLwgPiBqxK1uZzsgIzRFM0MKK+S4vSA+IGzDrDsgIzRFM0QKK+S4viA+IGrFrTsgIzRFM0UKK+S4vyA+IHBpxJU7ICM0RTNGCivkuYAgPiBmw7o7ICM0RTQwCivkuYEgPiB5w607ICM0RTQxCivkuYIgPiB5w6w7ICM0RTQyCivkuYMgPiBuxINpOyAjNEU0Mwor5LmFID4gasStdTsgIzRFNDUKK+S5hiA+IGrErXU7ICM0RTQ2CivkuYcgPiB6aMOpOyAjNEU0Nwor5LmIID4gecSBbzsgIzRFNDgKK+S5iSA+IHnDrDsgIzRFNDkKK+S5iyA+IHpoxKs7ICM0RTRCCivkuYwgPiB3xas7ICM0RTRDCivkuY0gPiB6aMOgOyAjNEU0RAor5LmOID4gaMWrOyAjNEU0RQor5LmPID4gZsOhOyAjNEU0Rgor5LmQID4gbMOoOyAjNEU1MAor5LmRID4gemjDsm5nOyAjNEU1MQor5LmSID4gcMSrbmc7ICM0RTUyCivkuZMgPiBwYW5nOyAjNEU1Mwor5LmUID4gcWnDoW87ICM0RTU0CivkuZUgPiBoxa07ICM0RTU1CivkuZYgPiBndcSBaTsgIzRFNTYKK+S5lyA+IGNow6luZzsgIzRFNTcKK+S5mCA+IGNow6luZzsgIzRFNTgKK+S5mSA+IHnErTsgIzRFNTkKK+S5miA+IHnErW47ICM0RTVBCivkuZwgPiBtacSTOyAjNEU1Qwor5LmdID4gasStdTsgIzRFNUQKK+S5niA+IHHErTsgIzRFNUUKK+S5nyA+IHnElTsgIzRFNUYKK+S5oCA+IHjDrTsgIzRFNjAKK+S5oSA+IHhpxIFuZzsgIzRFNjEKK+S5oiA+IGfDoGk7ICM0RTYyCivkuaMgPiBkxKt1OyAjNEU2Mwor5LmmID4gc2jFqzsgIzRFNjYKK+S5qCA+IHNoxK07ICM0RTY4CivkuakgPiBqxKs7ICM0RTY5CivkuaogPiBuxIFuZzsgIzRFNkEKK+S5qyA+IGppxIE7ICM0RTZCCivkua0gPiBzaMOtOyAjNEU2RAor5LmwID4gbcSDaTsgIzRFNzAKK+S5sSA+IGx1w6BuOyAjNEU3MQor5LmzID4gcsWtOyAjNEU3Mwor5Lm0ID4geHXDqTsgIzRFNzQKK+S5tSA+IHnEg247ICM0RTc1CivkubYgPiBmxa07ICM0RTc2CivkubcgPiBzaMSBOyAjNEU3Nwor5Lm4ID4gbsSDOyAjNEU3OAor5Lm5ID4gZ8SBbjsgIzRFNzkKK+S5viA+IGfEgW47ICM0RTdFCivkub8gPiBjaMOsOyAjNEU3Rgor5LqAID4gZ8WraTsgIzRFODAKK+S6gSA+IGfEgW47ICM0RTgxCivkuoIgPiBsdcOgbjsgIzRFODIKK+S6gyA+IGzDrW47ICM0RTgzCivkuoQgPiB5w6w7ICM0RTg0CivkuoUgPiBqdcOpOyAjNEU4NQor5LqGID4gbGnEg287ICM0RTg2CivkuoggPiB5w7o7ICM0RTg4CivkuokgPiB6aMSTbmc7ICM0RTg5CivkuoogPiBzaMOsOyAjNEU4QQor5LqLID4gc2jDrDsgIzRFOEIKK+S6jCA+IMOocjsgIzRFOEMKK+S6jSA+IGNow7k7ICM0RThECivkuo4gPiB5w7o7ICM0RThFCivkuo8gPiB5w7o7ICM0RThGCivkupAgPiB5w7o7ICM0RTkwCivkupEgPiB5w7puOyAjNEU5MQor5LqSID4gaMO5OyAjNEU5Mgor5LqTID4gccOtOyAjNEU5Mwor5LqUID4gd8WtOyAjNEU5NAor5LqVID4gasStbmc7ICM0RTk1CivkupYgPiBzw6w7ICM0RTk2CivkupcgPiBzw7lpOyAjNEU5Nwor5LqYID4gZ8OobjsgIzRFOTgKK+S6mSA+IGfDqG47ICM0RTk5CivkupogPiB5w6A7ICM0RTlBCivkupsgPiB4acSTOyAjNEU5Qgor5LqcID4gecOgOyAjNEU5Qwor5LqdID4gccOtOyAjNEU5RAor5LqeID4gecOgOyAjNEU5RQor5LqfID4gasOtOyAjNEU5Rgor5LqgID4gdMOzdTsgIzRFQTAKK+S6oSA+IHfDoW5nOyAjNEVBMQor5LqiID4ga8Ogbmc7ICM0RUEyCivkuqMgPiB0w6A7ICM0RUEzCivkuqQgPiBqacSBbzsgIzRFQTQKK+S6pSA+IGjDoGk7ICM0RUE1CivkuqYgPiB5w6w7ICM0RUE2CivkuqcgPiBjaMSDbjsgIzRFQTcKK+S6qCA+IGjEk25nOyAjNEVBOAor5LqpID4gbcWtOyAjNEVBOQor5LqrID4geGnEg25nOyAjNEVBQgor5LqsID4gasSrbmc7ICM0RUFDCivkuq0gPiB0w61uZzsgIzRFQUQKK+S6riA+IGxpw6BuZzsgIzRFQUUKK+S6ryA+IHhpxINuZzsgIzRFQUYKK+S6sCA+IGrEq25nOyAjNEVCMAor5LqxID4gecOoOyAjNEVCMQor5LqyID4gccSrbjsgIzRFQjIKK+S6syA+IGLDszsgIzRFQjMKK+S6tCA+IHnDsnU7ICM0RUI0CivkurUgPiB4acOoOyAjNEVCNQor5Lq2ID4gZMSDbjsgIzRFQjYKK+S6tyA+IGxpw6FuOyAjNEVCNwor5Lq4ID4gZMWtbzsgIzRFQjgKK+S6uSA+IHfElWk7ICM0RUI5CivkurogPiByw6luOyAjNEVCQQor5Lq7ID4gcsOpbjsgIzRFQkIKK+S6vCA+IGrDrTsgIzRFQkMKK+S6viA+IHfDoW5nOyAjNEVCRQor5Lq/ID4gecOsOyAjNEVCRgor5LuAID4gc2jDrTsgIzRFQzAKK+S7gSA+IHLDqW47ICM0RUMxCivku4IgPiBsw6g7ICM0RUMyCivku4MgPiBkxKtuZzsgIzRFQzMKK+S7hCA+IHrDqDsgIzRFQzQKK+S7hSA+IGrErW47ICM0RUM1Civku4YgPiBwxas7ICM0RUM2Civku4cgPiBjaMOzdTsgIzRFQzcKK+S7iCA+IGLEgTsgIzRFQzgKK+S7iSA+IHpoxINuZzsgIzRFQzkKK+S7iiA+IGrEq247ICM0RUNBCivku4sgPiBqacOoOyAjNEVDQgor5LuMID4gYsSrbmc7ICM0RUNDCivku40gPiByw6luZzsgIzRFQ0QKK+S7jiA+IGPDs25nOyAjNEVDRQor5LuPID4gZsOzOyAjNEVDRgor5LuQID4gc8SDbjsgIzRFRDAKK+S7kSA+IGzDum47ICM0RUQxCivku5MgPiBjxIFuZzsgIzRFRDMKK+S7lCA+IHrErTsgIzRFRDQKK+S7lSA+IHNow6w7ICM0RUQ1Civku5YgPiB0xIE7ICM0RUQ2Civku5cgPiB6aMOgbmc7ICM0RUQ3Civku5ggPiBmw7k7ICM0RUQ4Civku5kgPiB4acSBbjsgIzRFRDkKK+S7miA+IHhpxIFuOyAjNEVEQQor5LubID4gdMWrbzsgIzRFREIKK+S7nCA+IGjDs25nOyAjNEVEQwor5LudID4gdMOzbmc7ICM0RURECivku54gPiByw6huOyAjNEVERQor5LufID4gcWnEgW47ICM0RURGCivku6AgPiBnw6FuOyAjNEVFMAor5LuhID4gecOsOyAjNEVFMQor5LuiID4gZMOtOyAjNEVFMgor5LujID4gZMOgaTsgIzRFRTMKK+S7pCA+IGzDrG5nOyAjNEVFNAor5LulID4gecStOyAjNEVFNQor5LumID4gY2jDoG87ICM0RUU2Civku6cgPiBjaMOhbmc7ICM0RUU3Civku6ggPiBzxIE7ICM0RUU4Civku6ogPiB5w607ICM0RUVBCivku6sgPiBtw7k7ICM0RUVCCivku6wgPiBtZW47ICM0RUVDCivku60gPiByw6huOyAjNEVFRAor5LuuID4gamnEgzsgIzRFRUUKK+S7ryA+IGNow6BvOyAjNEVFRgor5LuwID4gecSDbmc7ICM0RUYwCivku7EgPiBxacOhbjsgIzRFRjEKK+S7siA+IHpow7JuZzsgIzRFRjIKK+S7syA+IHDErTsgIzRFRjMKK+S7tCA+IHfDoG47ICM0RUY0Civku7UgPiB3xa07ICM0RUY1Civku7YgPiBqacOgbjsgIzRFRjYKK+S7tyA+IGppw6g7ICM0RUY3Civku7ggPiB5xINvOyAjNEVGOAor5Lu5ID4gZsSTbmc7ICM0RUY5Civku7ogPiBjxIFuZzsgIzRFRkEKK+S7uyA+IHLDqG47ICM0RUZCCivku7wgPiB3w6FuZzsgIzRFRkMKK+S7vSA+IGbDqG47ICM0RUZECivku74gPiBkxKs7ICM0RUZFCivku78gPiBmxINuZzsgIzRFRkYKK+S8gCA+IHpoxY1uZzsgIzRGMDAKK+S8gSA+IHHErTsgIzRGMDEKK+S8giA+IHDDqGk7ICM0RjAyCivkvIMgPiB5w7o7ICM0RjAzCivkvIQgPiBkacOgbzsgIzRGMDQKK+S8hSA+IGTDuW47ICM0RjA1CivkvIYgPiB3w6huOyAjNEYwNgor5LyHID4gecOsOyAjNEYwNwor5LyIID4geMStbjsgIzRGMDgKK+S8iSA+IGvDoG5nOyAjNEYwOQor5LyKID4gecSrOyAjNEYwQQor5LyLID4gasOtOyAjNEYwQgor5LyMID4gw6BpOyAjNEYwQwor5LyNID4gd8WtOyAjNEYwRAor5LyOID4gasOsOyAjNEYwRQor5LyPID4gZsO6OyAjNEYwRgor5LyQID4gZsOhOyAjNEYxMAor5LyRID4geMSrdTsgIzRGMTEKK+S8kiA+IGrDrG47ICM0RjEyCivkvJMgPiBixJNpOyAjNEYxMwor5LyUID4gZMSDbjsgIzRGMTQKK+S8lSA+IGbFqzsgIzRGMTUKK+S8liA+IHTEg25nOyAjNEYxNgor5LyXID4gemjDsm5nOyAjNEYxNwor5LyYID4gecWNdTsgIzRGMTgKK+S8mSA+IGjFrW87ICM0RjE5CivkvJogPiBow7lpOyAjNEYxQQor5LybID4gecWtOyAjNEYxQgor5LycID4gY8O5aTsgIzRGMUMKK+S8nSA+IGNodcOhbjsgIzRGMUQKK+S8niA+IHPEg247ICM0RjFFCivkvJ8gPiB3xJVpOyAjNEYxRgor5LygID4gY2h1w6FuOyAjNEYyMAor5LyhID4gY2jEkzsgIzRGMjEKK+S8oiA+IHnDoTsgIzRGMjIKK+S8oyA+IHhpw6BuOyAjNEYyMwor5LykID4gc2jEgW5nOyAjNEYyNAor5LylID4gY2jEgW5nOyAjNEYyNQor5LymID4gbMO6bjsgIzRGMjYKK+S8pyA+IGPEgW5nOyAjNEYyNwor5LyoID4geMO5bjsgIzRGMjgKK+S8qSA+IHjDrG47ICM0RjI5CivkvKogPiB3xJVpOyAjNEYyQQor5LyrID4gemjDuTsgIzRGMkIKK+S8rSA+IHh1w6FuOyAjNEYyRAor5LyuID4gbsO6OyAjNEYyRQor5LyvID4gYsOzOyAjNEYyRgor5LywID4gZ8WrOyAjNEYzMAor5LyxID4gbsStOyAjNEYzMQor5LyyID4gbsStOyAjNEYzMgor5LyzID4geGnDqDsgIzRGMzMKK+S8tCA+IGLDoG47ICM0RjM0CivkvLUgPiB4w7k7ICM0RjM1CivkvLYgPiBsw61uZzsgIzRGMzYKK+S8tyA+IHpow7J1OyAjNEYzNwor5Ly4ID4gc2jEk247ICM0RjM4CivkvLkgPiBxxas7ICM0RjM5CivkvLogPiBzw6w7ICM0RjNBCivkvLsgPiBixJNuZzsgIzRGM0IKK+S8vCA+IHPDrDsgIzRGM0MKK+S8vSA+IGppxIE7ICM0RjNECivkvL4gPiBwxKs7ICM0RjNFCivkvL8gPiB5w6w7ICM0RjNGCivkvYAgPiBzw6w7ICM0RjQwCivkvYEgPiDEg2k7ICM0RjQxCivkvYIgPiB6aMSTbmc7ICM0RjQyCivkvYMgPiBkacOgbjsgIzRGNDMKK+S9hCA+IGjDoW47ICM0RjQ0CivkvYUgPiBtw6BpOyAjNEY0NQor5L2GID4gZMOgbjsgIzRGNDYKK+S9hyA+IHpow7k7ICM0RjQ3CivkvYggPiBiw7k7ICM0RjQ4CivkvYkgPiBxxas7ICM0RjQ5CivkvYogPiBixK07ICM0RjRBCivkvYsgPiBzaMOgbzsgIzRGNEIKK+S9jCA+IGPErTsgIzRGNEMKK+S9jSA+IHfDqGk7ICM0RjRECivkvY4gPiBkxKs7ICM0RjRFCivkvY8gPiB6aMO5OyAjNEY0Rgor5L2QID4gesWtbzsgIzRGNTAKK+S9kSA+IHnDsnU7ICM0RjUxCivkvZIgPiB5xIFuZzsgIzRGNTIKK+S9kyA+IHTErTsgIzRGNTMKK+S9lCA+IHpow6BuOyAjNEY1NAor5L2VID4gaMOpOyAjNEY1NQor5L2WID4gYsOsOyAjNEY1Ngor5L2XID4gdMWrbzsgIzRGNTcKK+S9mCA+IHNow6k7ICM0RjU4CivkvZkgPiB5w7o7ICM0RjU5CivkvZogPiB5w6w7ICM0RjVBCivkvZsgPiBmw7M7ICM0RjVCCivkvZwgPiB6w7lvOyAjNEY1Qwor5L2dID4ga8OydTsgIzRGNUQKK+S9niA+IG7DrG5nOyAjNEY1RQor5L2fID4gdMOzbmc7ICM0RjVGCivkvaAgPiBuxK07ICM0RjYwCivkvaEgPiB4dcSBbjsgIzRGNjEKK+S9oiA+IHHDujsgIzRGNjIKK+S9oyA+IHnDsm5nOyAjNEY2Mwor5L2kID4gd8SDOyAjNEY2NAor5L2lID4gcWnEgW47ICM0RjY1CivkvacgPiBrxIM7ICM0RjY3CivkvakgPiBww6hpOyAjNEY2OQor5L2qID4gaHXDoWk7ICM0RjZBCivkvasgPiBow6g7ICM0RjZCCivkvawgPiBsxINvOyAjNEY2Qwor5L2tID4geGnDoW5nOyAjNEY2RAor5L2uID4gZ8OpOyAjNEY2RQor5L2vID4gecOhbmc7ICM0RjZGCivkvbAgPiBixINpOyAjNEY3MAor5L2xID4gZsSDOyAjNEY3MQor5L2yID4gbcOtbmc7ICM0RjcyCivkvbMgPiBqaWE7ICM0RjczCivkvbQgPiDDqHI7ICM0Rjc0CivkvbUgPiBiw6xuZzsgIzRGNzUKK+S9tiA+IGrDrTsgIzRGNzYKK+S9tyA+IGjElW47ICM0Rjc3CivkvbggPiBow7pvOyAjNEY3OAor5L25ID4gZ8WtaTsgIzRGNzkKK+S9uiA+IHF1w6FuOyAjNEY3QQor5L27ID4gdGnEgW87ICM0RjdCCivkvbwgPiBqacSDbzsgIzRGN0MKK+S9vSA+IGPDrDsgIzRGN0QKK+S9viA+IHnDrDsgIzRGN0UKK+S9vyA+IHNoxK07ICM0RjdGCivkvoAgPiB4w61uZzsgIzRGODAKK+S+gSA+IHNoxJNuOyAjNEY4MQor5L6CID4gdMWrbzsgIzRGODIKK+S+gyA+IGvEg247ICM0RjgzCivkvoQgPiB6aMOtOyAjNEY4NAor5L6FID4gZ8SBaTsgIzRGODUKK+S+hiA+IGzDoWk7ICM0Rjg2CivkvocgPiB5w607ICM0Rjg3CivkvoggPiBjaMStOyAjNEY4OAor5L6JID4ga3XEgTsgIzRGODkKK+S+iiA+IGd1xIFuZzsgIzRGOEEKK+S+iyA+IGzDrDsgIzRGOEIKK+S+jCA+IHnEq247ICM0RjhDCivkvo0gPiBzaMOsOyAjNEY4RAor5L6OID4gbcStOyAjNEY4RQor5L6PID4gemjFqzsgIzRGOEYKK+S+kCA+IHjDuTsgIzRGOTAKK+S+kSA+IHnDsnU7ICM0RjkxCivkvpIgPiDEgW47ICM0RjkyCivkvpMgPiBsw7k7ICM0RjkzCivkvpQgPiBtw7N1OyAjNEY5NAor5L6VID4gw6lyOyAjNEY5NQor5L6WID4gbMO6bjsgIzRGOTYKK+S+lyA+IHTDs25nOyAjNEY5Nwor5L6YID4gY2jDoDsgIzRGOTgKK+S+mSA+IGNow6w7ICM0Rjk5CivkvpogPiB4w7luOyAjNEY5QQor5L6bID4gZ8WNbmc7ICM0RjlCCivkvpwgPiB6aMWNdTsgIzRGOUMKK+S+nSA+IHnEqzsgIzRGOUQKK+S+niA+IHLFrTsgIzRGOUUKK+S+nyA+IGppw6BuOyAjNEY5Rgor5L6gID4geGnDoTsgIzRGQTAKK+S+oSA+IGppw6A7ICM0RkExCivkvqIgPiB6w6BpOyAjNEZBMgor5L6jID4gbMeaOyAjNEZBMwor5L6lID4gamnEg287ICM0RkE1CivkvqYgPiB6aMSTbjsgIzRGQTYKK+S+pyA+IGPDqDsgIzRGQTcKK+S+qCA+IHFpw6FvOyAjNEZBOAor5L6pID4ga3XDoGk7ICM0RkE5CivkvqogPiBjaMOhaTsgIzRGQUEKK+S+qyA+IG7DrG5nOyAjNEZBQgor5L6sID4gbsOzbmc7ICM0RkFDCivkvq0gPiBqxK1uOyAjNEZBRAor5L6uID4gd8WtOyAjNEZBRQor5L6vID4gaMOzdTsgIzRGQUYKK+S+sCA+IGrErW9uZzsgIzRGQjAKK+S+sSA+IGNoxJVuZzsgIzRGQjEKK+S+siA+IHpow6huOyAjNEZCMgor5L6zID4gesO5bzsgIzRGQjMKK+S+tCA+IGNoxY91OyAjNEZCNAor5L61ID4gccSrbjsgIzRGQjUKK+S+tiA+IGzHmjsgIzRGQjYKK+S+tyA+IGrDujsgIzRGQjcKK+S+uCA+IHNow7k7ICM0RkI4CivkvrkgPiB0xK1uZzsgIzRGQjkKK+S+uiA+IHNow6huOyAjNEZCQQor5L67ID4gdMWrbzsgIzRGQkIKK+S+vCA+IGLDszsgIzRGQkMKK+S+vSA+IG7DoW47ICM0RkJECivkvr4gPiBoxIFvOyAjNEZCRQor5L6/ID4gYmnDoG47ICM0RkJGCivkv4AgPiB0xa1pOyAjNEZDMAor5L+BID4gecWtOyAjNEZDMQor5L+CID4geMOsOyAjNEZDMgor5L+DID4gY8O5OyAjNEZDMwor5L+EID4gw6k7ICM0RkM0Civkv4UgPiBxw611OyAjNEZDNQor5L+GID4geMO6OyAjNEZDNgor5L+HID4ga3XEg25nOyAjNEZDNwor5L+IID4ga8O5OyAjNEZDOAor5L+JID4gd8O5OyAjNEZDOQor5L+KID4gasO5bjsgIzRGQ0EKK+S/iyA+IHnDrDsgIzRGQ0IKK+S/jCA+IGbFrTsgIzRGQ0MKK+S/jSA+IGzDoW5nOyAjNEZDRAor5L+OID4gesWtOyAjNEZDRQor5L+PID4gcWnDoG87ICM0RkNGCivkv5AgPiBsw6w7ICM0RkQwCivkv5EgPiB5xY9uZzsgIzRGRDEKK+S/kiA+IGjDuW47ICM0RkQyCivkv5MgPiBqw6xuZzsgIzRGRDMKK+S/lCA+IHhpw6BuOyAjNEZENAor5L+VID4gc8OgbjsgIzRGRDUKK+S/liA+IHDEg2k7ICM0RkQ2Civkv5cgPiBzw7o7ICM0RkQ3Civkv5ggPiBmw7o7ICM0RkQ4Civkv5kgPiB4xKs7ICM0RkQ5Civkv5ogPiBsxK07ICM0RkRBCivkv5sgPiBmxa07ICM0RkRCCivkv5wgPiBwxKtuZzsgIzRGREMKK+S/nSA+IGLEg287ICM0RkRECivkv54gPiB5w7o7ICM0RkRFCivkv58gPiBzw6w7ICM0RkRGCivkv6AgPiB4acOhOyAjNEZFMAor5L+hID4geMOsbjsgIzRGRTEKK+S/oiA+IHjEq3U7ICM0RkUyCivkv6MgPiB5xa07ICM0RkUzCivkv6QgPiB0w6w7ICM0RkU0Civkv6UgPiBjaMSTOyAjNEZFNQor5L+mID4gY2jDs3U7ICM0RkU2Civkv6ggPiB5xINuOyAjNEZFOAor5L+pID4gbGnEgzsgIzRGRTkKK+S/qiA+IGzDrDsgIzRGRUEKK+S/qyA+IGzDoWk7ICM0RkVCCivkv60gPiBqacSDbjsgIzRGRUQKK+S/riA+IHjEq3U7ICM0RkVFCivkv68gPiBmxa07ICM0RkVGCivkv7AgPiBow6g7ICM0RkYwCivkv7EgPiBqw7k7ICM0RkYxCivkv7IgPiB4acOgbzsgIzRGRjIKK+S/syA+IHDDoWk7ICM0RkYzCivkv7QgPiBqacOgbjsgIzRGRjQKK+S/tSA+IGJpw6BvOyAjNEZGNQor5L+2ID4gY2jDuTsgIzRGRjYKK+S/tyA+IGbDqGk7ICM0RkY3Civkv7ggPiBmw6huZzsgIzRGRjgKK+S/uSA+IHnDoDsgIzRGRjkKK+S/uiA+IMSDbjsgIzRGRkEKK+S/uyA+IGLDqGk7ICM0RkZCCivkv7wgPiB5w7k7ICM0RkZDCivkv70gPiB4xKtuOyAjNEZGRAor5L++ID4gYsStOyAjNEZGRQor5L+/ID4gamnDoG47ICM0RkZGCivlgIAgPiBjaMSBbmc7ICM1MDAwCivlgIEgPiBjaMOtOyAjNTAwMQor5YCCID4gYsOsbmc7ICM1MDAyCivlgIMgPiB6w6FuOyAjNTAwMwor5YCEID4gecOhbzsgIzUwMDQKK+WAhSA+IGPDuWk7ICM1MDA1CivlgIYgPiBsacSDOyAjNTAwNgor5YCHID4gd8SDbjsgIzUwMDcKK+WAiCA+IGzDoWk7ICM1MDA4CivlgIkgPiBjxIFuZzsgIzUwMDkKK+WAiiA+IHrDsm5nOyAjNTAwQQor5YCLID4gZ8OoOyAjNTAwQgor5YCMID4gZ3XEgW47ICM1MDBDCivlgI0gPiBiw6hpOyAjNTAwRAor5YCOID4gdGnEgW47ICM1MDBFCivlgI8gPiBzaMWrOyAjNTAwRgor5YCQID4gc2jFqzsgIzUwMTAKK+WAkSA+IG1lbjsgIzUwMTEKK+WAkiA+IGTEg287ICM1MDEyCivlgJMgPiB0w6FuOyAjNTAxMwor5YCUID4ganXDqTsgIzUwMTQKK+WAlSA+IGNow7ppOyAjNTAxNQor5YCWID4geMOsbmc7ICM1MDE2CivlgJcgPiBww6luZzsgIzUwMTcKK+WAmCA+IHTEg25nOyAjNTAxOAor5YCZID4gaMOydTsgIzUwMTkKK+WAmiA+IHnErTsgIzUwMUEKK+WAmyA+IHHEqzsgIzUwMUIKK+WAnCA+IHTDrDsgIzUwMUMKK+WAnSA+IGfDoG47ICM1MDFECivlgJ4gPiBqw6xuZzsgIzUwMUUKK+WAnyA+IGppw6g7ICM1MDFGCivlgKAgPiBzxatpOyAjNTAyMAor5YChID4gY2jDoG5nOyAjNTAyMQor5YCiID4gamnDqTsgIzUwMjIKK+WAoyA+IGbEg25nOyAjNTAyMwor5YCkID4gemjDrTsgIzUwMjQKK+WApSA+IGvFjW5nOyAjNTAyNQor5YCmID4ganXDoG47ICM1MDI2CivlgKcgPiB6xY1uZzsgIzUwMjcKK+WAqCA+IGrDuTsgIzUwMjgKK+WAqSA+IHFpw6BuOyAjNTAyOQor5YCqID4gbsOtOyAjNTAyQQor5YCrID4gbMO6bjsgIzUwMkIKK+WArCA+IHpoxatvOyAjNTAyQwor5YCtID4gd8STaTsgIzUwMkQKK+WAriA+IGzFrW87ICM1MDJFCivlgK8gPiBzxY1uZzsgIzUwMkYKK+WAsCA+IGzDqW5nOyAjNTAzMAor5YCxID4gaMO5bjsgIzUwMzEKK+WAsiA+IGTFjW5nOyAjNTAzMgor5YCzID4gesOsOyAjNTAzMwor5YC0ID4gYsOobjsgIzUwMzQKK+WAtSA+IHfFrTsgIzUwMzUKK+WAtiA+IGrDuTsgIzUwMzYKK+WAtyA+IG7DoGk7ICM1MDM3CivlgLggPiBjxINpOyAjNTAzOAor5YC5ID4gamnEg247ICM1MDM5CivlgLogPiB6aMOgaTsgIzUwM0EKK+WAuyA+IHnEkzsgIzUwM0IKK+WAvCA+IHpow607ICM1MDNDCivlgL0gPiBzaMOgOyAjNTAzRAor5YC+ID4gccSrbmc7ICM1MDNFCivlgYAgPiB5xKtuZzsgIzUwNDAKK+WBgSA+IGNoxJNuZzsgIzUwNDEKK+WBgiA+IGppxIFuOyAjNTA0Mgor5YGDID4gecSDbjsgIzUwNDMKK+WBhCA+IG51w6BuOyAjNTA0NAor5YGFID4gemjDsm5nOyAjNTA0NQor5YGGID4gY2jFrW47ICM1MDQ2CivlgYcgPiBqacSDOyAjNTA0Nwor5YGIID4gamnDqTsgIzUwNDgKK+WBiSA+IHfElWk7ICM1MDQ5CivlgYogPiB5xa07ICM1MDRBCivlgYsgPiBixK1uZzsgIzUwNEIKK+WBjCA+IHLDuW87ICM1MDRDCivlgY0gPiB0w607ICM1MDRECivlgY4gPiB3xJNpOyAjNTA0RQor5YGPID4gcGnEgW47ICM1MDRGCivlgZAgPiB5w6BuOyAjNTA1MAor5YGRID4gZsSTbmc7ICM1MDUxCivlgZIgPiB0xINuZzsgIzUwNTIKK+WBkyA+IHfDsjsgIzUwNTMKK+WBlCA+IMOoOyAjNTA1NAor5YGVID4geGnDqTsgIzUwNTUKK+WBliA+IGNoxJU7ICM1MDU2CivlgZcgPiBzaMSVbmc7ICM1MDU3CivlgZggPiBrxINuOyAjNTA1OAor5YGZID4gZMOsOyAjNTA1OQor5YGaID4gesO5bzsgIzUwNUEKK+WBmyA+IGNoxIE7ICM1MDVCCivlgZwgPiB0w61uZzsgIzUwNUMKK+WBnSA+IGLDqGk7ICM1MDVECivlgZ4gPiB5w6g7ICM1MDVFCivlgZ8gPiBodcOhbmc7ICM1MDVGCivlgaAgPiB5xINvOyAjNTA2MAor5YGhID4gemjDoG47ICM1MDYxCivlgaIgPiBjaMWPdTsgIzUwNjIKK+WBoyA+IHnEgW47ICM1MDYzCivlgaQgPiB5xY91OyAjNTA2NAor5YGlID4gamnDoG47ICM1MDY1CivlgaYgPiB4xas7ICM1MDY2CivlgacgPiB6aMSBOyAjNTA2Nwor5YGoID4gY8SrOyAjNTA2OAor5YGpID4gZsO5OyAjNTA2OQor5YGqID4gYsSrOyAjNTA2QQor5YGrID4gemjDrDsgIzUwNkIKK+WBrCA+IHrFj25nOyAjNTA2Qwor5YGtID4gbWnEg247ICM1MDZECivlga4gPiBqw607ICM1MDZFCivlga8gPiB5xK07ICM1MDZGCivlgbAgPiB4acOoOyAjNTA3MAor5YGxID4geMO6bjsgIzUwNzEKK+WBsiA+IHPEqzsgIzUwNzIKK+WBsyA+IGR1xIFuOyAjNTA3Mwor5YG0ID4gY8OoOyAjNTA3NAor5YG1ID4gemjEk247ICM1MDc1CivlgbYgPiDFj3U7ICM1MDc2CivlgbcgPiB0xY11OyAjNTA3Nwor5YG4ID4gdMWNdTsgIzUwNzgKK+WBuSA+IGLDqGk7ICM1MDc5CivlgbogPiB6w6E7ICM1MDdBCivlgbsgPiBsx5o7ICM1MDdCCivlgbwgPiBqacOpOyAjNTA3Qwor5YG9ID4gd8SVaTsgIzUwN0QKK+WBviA+IGbDqG47ICM1MDdFCivlgb8gPiBjaMOhbmc7ICM1MDdGCivlgoAgPiBnxatpOyAjNTA4MAor5YKBID4gc8WPdTsgIzUwODEKK+WCgiA+IHpow6w7ICM1MDgyCivlgoMgPiBzw7k7ICM1MDgzCivlgoQgPiB4acSBOyAjNTA4NAor5YKFID4gZsO5OyAjNTA4NQor5YKGID4geXXDoG47ICM1MDg2CivlgocgPiByxY9uZzsgIzUwODcKK+WCiCA+IGzDrDsgIzUwODgKK+WCiSA+IHLDuTsgIzUwODkKK+WCiiA+IHnFrW47ICM1MDhBCivlgosgPiBnw7J1OyAjNTA4Qgor5YKMID4gbcOgOyAjNTA4Qwor5YKNID4gYsOgbmc7ICM1MDhECivlgo4gPiBkacSBbjsgIzUwOEUKK+WCjyA+IHTDoW5nOyAjNTA4Rgor5YKQID4gaMOgbzsgIzUwOTAKK+WCkSA+IGppw6k7ICM1MDkxCivlgpIgPiB4xKs7ICM1MDkyCivlgpMgPiBzaMOgbjsgIzUwOTMKK+WClCA+IHFpw6BuOyAjNTA5NAor5YKVID4ganXDqTsgIzUwOTUKK+WCliA+IGPEgW5nOyAjNTA5Ngor5YKXID4gY2jDuTsgIzUwOTcKK+WCmCA+IHPEg247ICM1MDk4CivlgpkgPiBiw6hpOyAjNTA5OQor5YKaID4geGnDoG87ICM1MDlBCivlgpsgPiB5xY9uZzsgIzUwOUIKK+WCnCA+IHnDoW87ICM1MDlDCivlgp0gPiB0w6BuOyAjNTA5RAor5YKeID4gc8WrbzsgIzUwOUUKK+WCnyA+IHnEg25nOyAjNTA5Rgor5YKgID4gZsSBOyAjNTBBMAor5YKhID4gYsOsbmc7ICM1MEExCivlgqIgPiBqacSBOyAjNTBBMgor5YKjID4gZMSDaTsgIzUwQTMKK+WCpCA+IHrDoGk7ICM1MEE0CivlgqUgPiB0xINuZzsgIzUwQTUKK+WCpyA+IGLDrG47ICM1MEE3CivlgqggPiBjaMWtOyAjNTBBOAor5YKpID4gbsO6bzsgIzUwQTkKK+WCqiA+IGPEgW47ICM1MEFBCivlgqsgPiBsxJVpOyAjNTBBQgor5YKsID4gY8WraTsgIzUwQUMKK+WCrSA+IHnFjW5nOyAjNTBBRAor5YKuID4gesSBbzsgIzUwQUUKK+WCryA+IHrFj25nOyAjNTBBRgor5YKwID4gcMOpbmc7ICM1MEIwCivlgrEgPiBzxY9uZzsgIzUwQjEKK+WCsiA+IMOgbzsgIzUwQjIKK+WCsyA+IGNodcOhbjsgIzUwQjMKK+WCtCA+IHnFrTsgIzUwQjQKK+WCtSA+IHpow6BpOyAjNTBCNQor5YK2ID4gY8OydTsgIzUwQjYKK+WCtyA+IHNoxIFuZzsgIzUwQjcKK+WCuCA+IHFpxINuZzsgIzUwQjgKK+WCuSA+IGrDrG5nOyAjNTBCOQor5YK6ID4gY2jDrDsgIzUwQkEKK+WCuyA+IHNoxIM7ICM1MEJCCivlgrwgPiBow6BuOyAjNTBCQwor5YK9ID4gemjEgW5nOyAjNTBCRAor5YK+ID4gccSrbmc7ICM1MEJFCivlgr8gPiB5w6BuOyAjNTBCRgor5YOAID4gZMOsOyAjNTBDMAor5YOBID4geMSrOyAjNTBDMQor5YOCID4gbMeaOyAjNTBDMgor5YODID4gYsOoaTsgIzUwQzMKK+WDhCA+IHBpw6BvOyAjNTBDNAor5YOFID4gasStbjsgIzUwQzUKK+WDhiA+IGxpw6FuOyAjNTBDNgor5YOHID4gbMO5OyAjNTBDNwor5YOIID4gbcOgbjsgIzUwQzgKK+WDiSA+IHFpxIFuOyAjNTBDOQor5YOKID4geGnEgW47ICM1MENBCivlg4sgPiB0w6BuOyAjNTBDQgor5YOMID4gecOtbmc7ICM1MENDCivlg40gPiBkw7JuZzsgIzUwQ0QKK+WDjiA+IHpodcOgbjsgIzUwQ0UKK+WDjyA+IHhpw6BuZzsgIzUwQ0YKK+WDkCA+IHNow6BuOyAjNTBEMAor5YORID4gcWnDoW87ICM1MEQxCivlg5IgPiBqxK1vbmc7ICM1MEQyCivlg5MgPiB0xa1pOyAjNTBEMwor5YOUID4gesWtbjsgIzUwRDQKK+WDlSA+IHDDujsgIzUwRDUKK+WDliA+IHjEqzsgIzUwRDYKK+WDlyA+IGzDoW87ICM1MEQ3Civlg5ggPiBjaMSDbmc7ICM1MEQ4Civlg5kgPiBndcSBbmc7ICM1MEQ5Civlg5ogPiBsacOhbzsgIzUwREEKK+WDmyA+IHHEqzsgIzUwREIKK+WDnCA+IGTDqG5nOyAjNTBEQwor5YOdID4gY2jDoW47ICM1MERECivlg54gPiB3xJVpOyAjNTBERQor5YOfID4gasSrOyAjNTBERgor5YOgID4gZsSBbjsgIzUwRTAKK+WDoSA+IGjDuWk7ICM1MEUxCivlg6IgPiBjaHXEg247ICM1MEUyCivlg6MgPiBqacOgbjsgIzUwRTMKK+WDpCA+IGTDoG47ICM1MEU0Civlg6UgPiBqacSDbzsgIzUwRTUKK+WDpiA+IGrDrHU7ICM1MEU2Civlg6cgPiBzxJNuZzsgIzUwRTcKK+WDqCA+IGbDqG47ICM1MEU4Civlg6kgPiB4acOgbjsgIzUwRTkKK+WDqiA+IGp1w6k7ICM1MEVBCivlg6sgPiDDqDsgIzUwRUIKK+WDrCA+IGppxIFvOyAjNTBFQwor5YOtID4gamnDoG47ICM1MEVECivlg64gPiB0w7NuZzsgIzUwRUUKK+WDryA+IGzErW47ICM1MEVGCivlg7AgPiBiw7M7ICM1MEYwCivlg7EgPiBnw7k7ICM1MEYxCivlg7MgPiBzw7k7ICM1MEYzCivlg7QgPiB4acOgbjsgIzUwRjQKK+WDtSA+IGppxIFuZzsgIzUwRjUKK+WDtiA+IG3ErW47ICM1MEY2Civlg7cgPiB5w6g7ICM1MEY3Civlg7ggPiBqw6xuOyAjNTBGOAor5YO5ID4gamnDoDsgIzUwRjkKK+WDuiA+IHFpw6BvOyAjNTBGQQor5YO7ID4gcMOsOyAjNTBGQgor5YO8ID4gZsSTbmc7ICM1MEZDCivlg70gPiB6aMOydTsgIzUwRkQKK+WDviA+IMOgaTsgIzUwRkUKK+WDvyA+IHPDoGk7ICM1MEZGCivlhIAgPiB5w607ICM1MTAwCivlhIEgPiBqw7luOyAjNTEwMQor5YSCID4gbsOzbmc7ICM1MTAyCivlhIMgPiBjaMOhbjsgIzUxMDMKK+WEhCA+IHnDrDsgIzUxMDQKK+WEhSA+IGTEgW5nOyAjNTEwNQor5YSGID4gasStbmc7ICM1MTA2CivlhIcgPiB4dcSBbjsgIzUxMDcKK+WEiCA+IGt1w6BpOyAjNTEwOAor5YSJID4gamnEg247ICM1MTA5CivlhIogPiBjaMO5OyAjNTEwQQor5YSLID4gZMSBbjsgIzUxMEIKK+WEjCA+IGppxINvOyAjNTEwQwor5YSNID4gc2jEgzsgIzUxMEQKK+WEjiA+IHrDoGk7ICM1MTBFCivlhJAgPiBiw6xuOyAjNTExMAor5YSRID4gw6BuOyAjNTExMQor5YSSID4gcsO6OyAjNTExMgor5YSTID4gdMOhaTsgIzUxMTMKK+WElCA+IGNow7N1OyAjNTExNAor5YSVID4gY2jDoWk7ICM1MTE1CivlhJYgPiBsw6FuOyAjNTExNgor5YSXID4gbsStOyAjNTExNwor5YSYID4gasStbjsgIzUxMTgKK+WEmSA+IHFpw6BuOyAjNTExOQor5YSaID4gbcOpbmc7ICM1MTFBCivlhJsgPiB3xa07ICM1MTFCCivlhJwgPiBuw61uZzsgIzUxMUMKK+WEnSA+IHHDrW9uZzsgIzUxMUQKK+WEniA+IG7ErTsgIzUxMUUKK+WEnyA+IGNow6FuZzsgIzUxMUYKK+WEoCA+IGxpw6g7ICM1MTIwCivlhKEgPiBsxJVpOyAjNTEyMQor5YSiID4gbMeaOyAjNTEyMgor5YSjID4ga3XDoG5nOyAjNTEyMwor5YSkID4gYsOgbzsgIzUxMjQKK+WEpSA+IGTDujsgIzUxMjUKK+WEpiA+IGJpxIFvOyAjNTEyNgor5YSnID4gesSDbjsgIzUxMjcKK+WEqCA+IHpow607ICM1MTI4CivlhKkgPiBzw6w7ICM1MTI5CivlhKogPiB5xY11OyAjNTEyQQor5YSrID4gaMOhbzsgIzUxMkIKK+WErCA+IGNow6huOyAjNTEyQwor5YStID4gY2jDqG47ICM1MTJECivlhK4gPiBsw6w7ICM1MTJFCivlhK8gPiB0w6luZzsgIzUxMkYKK+WEsCA+IHfElWk7ICM1MTMwCivlhLEgPiBsxY9uZzsgIzUxMzEKK+WEsiA+IGNoxa07ICM1MTMyCivlhLMgPiBjaMOgbjsgIzUxMzMKK+WEtCA+IHLDoW5nOyAjNTEzNAor5YS1ID4gc2jFqzsgIzUxMzUKK+WEtiA+IGjDuWk7ICM1MTM2CivlhLcgPiBsw6w7ICM1MTM3CivlhLggPiBsw7pvOyAjNTEzOAor5YS5ID4gesSDbjsgIzUxMzkKK+WEuiA+IG7Dum87ICM1MTNBCivlhLsgPiB0xINuZzsgIzUxM0IKK+WEvCA+IHnEg247ICM1MTNDCivlhL0gPiBsxJVpOyAjNTEzRAor5YS+ID4gbsOgbmc7ICM1MTNFCivlhL8gPiDDqXI7ICM1MTNGCivlhYAgPiB3w7k7ICM1MTQwCivlhYEgPiB5xa1uOyAjNTE0MQor5YWCID4gesSBbjsgIzUxNDIKK+WFgyA+IHl1w6FuOyAjNTE0Mwor5YWEID4geMSrb25nOyAjNTE0NAor5YWFID4gY2jFjW5nOyAjNTE0NQor5YWGID4gemjDoG87ICM1MTQ2CivlhYcgPiB4xKtvbmc7ICM1MTQ3CivlhYggPiB4acSBbjsgIzUxNDgKK+WFiSA+IGd1xIFuZzsgIzUxNDkKK+WFiiA+IGTDuWk7ICM1MTRBCivlhYsgPiBrw6g7ICM1MTRCCivlhYwgPiBkw7lpOyAjNTE0Qwor5YWNID4gbWnEg247ICM1MTRECivlhY4gPiB0w7k7ICM1MTRFCivlhY8gPiBjaMOhbmc7ICM1MTRGCivlhZAgPiDDqXI7ICM1MTUwCivlhZEgPiBkw7lpOyAjNTE1MQor5YWSID4gw6lyOyAjNTE1Mgor5YWTID4geMSrbjsgIzUxNTMKK+WFlCA+IHTDuTsgIzUxNTQKK+WFlSA+IHPDrDsgIzUxNTUKK+WFliA+IHnEg247ICM1MTU2CivlhZcgPiB5xINuOyAjNTE1Nwor5YWYID4gc2jErTsgIzUxNTgKK+WFmSA+IHNow60nICdrw6g7ICM1MTU5CivlhZogPiBkxINuZzsgIzUxNUEKK+WFmyA+IHFpxIFuOyAjNTE1Qgor5YWcID4gZMWNdTsgIzUxNUMKK+WFnSA+IGbEk247ICM1MTVECivlhZ4gPiBtw6FvOyAjNTE1RQor5YWfID4gc2jEk247ICM1MTVGCivlhaAgPiBkxY11OyAjNTE2MAor5YWhID4gYsSDaScgJ2vDqDsgIzUxNjEKK+WFoiA+IGrEq25nOyAjNTE2Mgor5YWjID4gbMStOyAjNTE2Mwor5YWkID4gaHXDoW5nOyAjNTE2NAor5YWlID4gcsO5OyAjNTE2NQor5YWmID4gd8Ohbmc7ICM1MTY2CivlhacgPiBuw6hpOyAjNTE2Nwor5YWoID4gcXXDoW47ICM1MTY4CivlhakgPiBsacSDbmc7ICM1MTY5CivlhaogPiB5w7o7ICM1MTZBCivlhasgPiBixIE7ICM1MTZCCivlhawgPiBnxY1uZzsgIzUxNkMKK+WFrSA+IGzDrHU7ICM1MTZECivlha4gPiB4xKs7ICM1MTZFCivlhbAgPiBsw6FuOyAjNTE3MAor5YWxID4gZ8Oybmc7ICM1MTcxCivlhbIgPiB0acSBbjsgIzUxNzIKK+WFsyA+IGd1xIFuOyAjNTE3Mwor5YW0ID4geMSrbmc7ICM1MTc0CivlhbUgPiBixKtuZzsgIzUxNzUKK+WFtiA+IHHDrTsgIzUxNzYKK+WFtyA+IGrDuTsgIzUxNzcKK+WFuCA+IGRpxINuOyAjNTE3OAor5YW5ID4gesSrOyAjNTE3OQor5YW7ID4gecSDbmc7ICM1MTdCCivlhbwgPiBqacSBbjsgIzUxN0MKK+WFvSA+IHNow7J1OyAjNTE3RAor5YW+ID4gasOsOyAjNTE3RQor5YW/ID4gecOsOyAjNTE3Rgor5YaAID4gasOsOyAjNTE4MAor5YaBID4gY2jEg247ICM1MTgxCivlhoIgPiBqxKtvbmc7ICM1MTgyCivlhoMgPiBtYW87ICM1MTgzCivlhoQgPiByxINuOyAjNTE4NAor5YaFID4gbsOoaTsgIzUxODUKK+WGhiA+IHl1YW47ICM1MTg2CivlhocgPiBtxINvOyAjNTE4Nwor5YaIID4gZ8SBbmc7ICM1MTg4CivlhokgPiByxINuOyAjNTE4OQor5YaKID4gY8OoOyAjNTE4QQor5YaLID4gasSrb25nOyAjNTE4Qgor5YaMID4gY8OoOyAjNTE4Qwor5YaNID4gesOgaTsgIzUxOEQKK+WGjiA+IGd1xIM7ICM1MThFCivlho8gPiBqxK1vbmc7ICM1MThGCivlhpAgPiBtw6BvOyAjNTE5MAor5YaRID4gemjDsnU7ICM1MTkxCivlhpIgPiBtw7J1OyAjNTE5Mgor5YaTID4gZ8OydTsgIzUxOTMKK+WGlCA+IHjFrTsgIzUxOTQKK+WGlSA+IG1pxINuOyAjNTE5NQor5YaWID4gbcOsOyAjNTE5Ngor5YaXID4gcsWPbmc7ICM1MTk3CivlhpggPiB5w61uOyAjNTE5OAor5YaZID4geGnElTsgIzUxOTkKK+WGmiA+IGvEg247ICM1MTlBCivlhpsgPiBqxatuOyAjNTE5Qgor5YacID4gbsOzbmc7ICM1MTlDCivlhp0gPiB5w607ICM1MTlECivlhp4gPiBtw607ICM1MTlFCivlhp8gPiBzaMOsOyAjNTE5Rgor5YagID4gZ3XEgW47ICM1MUEwCivlhqEgPiBtw6luZzsgIzUxQTEKK+WGoiA+IHpoxY9uZzsgIzUxQTIKK+WGoyA+IGrDuTsgIzUxQTMKK+WGpCA+IHl1xIFuOyAjNTFBNAor5YalID4gbcOtbmc7ICM1MUE1CivlhqYgPiBrw7J1OyAjNTFBNgor5YaoID4gZsO5OyAjNTFBOAor5YapID4geGnElTsgIzUxQTkKK+WGqiA+IG3DrDsgIzUxQUEKK+WGqyA+IGLEq25nOyAjNTFBQgor5YasID4gZMWNbmc7ICM1MUFDCivlhq0gPiB0w6FpOyAjNTFBRAor5YauID4gZ8SBbmc7ICM1MUFFCivlhq8gPiBmw6luZzsgIzUxQUYKK+WGsCA+IGLEq25nOyAjNTFCMAor5YaxID4gaMO5OyAjNTFCMQor5YayID4gY2jFjW5nOyAjNTFCMgor5YazID4ganXDqTsgIzUxQjMKK+WGtCA+IGjDuTsgIzUxQjQKK+WGtSA+IGt1w6BuZzsgIzUxQjUKK+WGtiA+IHnElTsgIzUxQjYKK+WGtyA+IGzElW5nOyAjNTFCNwor5Ya4ID4gcMOgbjsgIzUxQjgKK+WGuSA+IGbDujsgIzUxQjkKK+WGuiA+IG3ErW47ICM1MUJBCivlhrsgPiBkw7JuZzsgIzUxQkIKK+WGvCA+IHhpxINuOyAjNTFCQwor5Ya9ID4gbGnDqDsgIzUxQkQKK+WGviA+IHhpw6E7ICM1MUJFCivlhr8gPiBqacSBbjsgIzUxQkYKK+WHgCA+IGrDrG5nOyAjNTFDMAor5YeBID4gc2jDuTsgIzUxQzEKK+WHgiA+IG3ElWk7ICM1MUMyCivlh4MgPiB0w7o7ICM1MUMzCivlh4QgPiBxxKs7ICM1MUM0Civlh4UgPiBnw7k7ICM1MUM1Civlh4YgPiB6aMWtbjsgIzUxQzYKK+WHhyA+IHPDsm5nOyAjNTFDNwor5YeIID4gasOsbmc7ICM1MUM4Civlh4kgPiBsacOhbmc7ICM1MUM5Civlh4ogPiBxw6xuZzsgIzUxQ0EKK+WHiyA+IGRpxIFvOyAjNTFDQgor5YeMID4gbMOtbmc7ICM1MUNDCivlh40gPiBkw7JuZzsgIzUxQ0QKK+WHjiA+IGfDoG47ICM1MUNFCivlh48gPiBqacSDbjsgIzUxQ0YKK+WHkCA+IHnEq247ICM1MUQwCivlh5EgPiBjw7J1OyAjNTFEMQor5YeSID4gecOtOyAjNTFEMgor5YeTID4gbMOsOyAjNTFEMwor5YeUID4gY8SBbmc7ICM1MUQ0Civlh5UgPiBtxK1uZzsgIzUxRDUKK+WHliA+IHpodcSVbjsgIzUxRDYKK+WHlyA+IGPDumk7ICM1MUQ3Civlh5ggPiBzxKs7ICM1MUQ4Civlh5kgPiBkw7pvOyAjNTFEOQor5YeaID4gasOsbjsgIzUxREEKK+WHmyA+IGzErW47ICM1MURCCivlh5wgPiBsxK1uOyAjNTFEQwor5YedID4gbsOtbmc7ICM1MURECivlh54gPiB4xKs7ICM1MURFCivlh58gPiBkw7o7ICM1MURGCivlh6AgPiBqxKs7ICM1MUUwCivlh6EgPiBmw6FuOyAjNTFFMQor5YeiID4gZsOhbjsgIzUxRTIKK+WHoyA+IGbDoW47ICM1MUUzCivlh6QgPiBmw6huZzsgIzUxRTQKK+WHpSA+IGrFqzsgIzUxRTUKK+WHpiA+IGNoxa07ICM1MUU2Civlh6ggPiBmxJNuZzsgIzUxRTgKK+WHqyA+IGbDujsgIzUxRUIKK+WHrCA+IGbEk25nOyAjNTFFQwor5YetID4gcMOtbmc7ICM1MUVECivlh64gPiBmxJNuZzsgIzUxRUUKK+WHryA+IGvEg2k7ICM1MUVGCivlh7AgPiBodcOhbmc7ICM1MUYwCivlh7EgPiBrxINpOyAjNTFGMQor5YeyID4gZ8SBbjsgIzUxRjIKK+WHsyA+IGTDqG5nOyAjNTFGMwor5Ye0ID4gcMOtbmc7ICM1MUY0Civlh7UgPiBxxas7ICM1MUY1Civlh7YgPiB4xKtvbmc7ICM1MUY2Civlh7cgPiBrdcOgaTsgIzUxRjcKK+WHuCA+IHTFqzsgIzUxRjgKK+WHuSA+IMSBbzsgIzUxRjkKK+WHuiA+IGNoxas7ICM1MUZBCivlh7sgPiBqw607ICM1MUZCCivlh7wgPiBkw6BuZzsgIzUxRkMKK+WHvSA+IGjDoW47ICM1MUZECivlh74gPiBow6FuOyAjNTFGRQor5Ye/ID4gesOhbzsgIzUxRkYKK+WIgCA+IGTEgW87ICM1MjAwCivliIEgPiBkacSBbzsgIzUyMDEKK+WIgiA+IGTEgW87ICM1MjAyCivliIMgPiByw6huOyAjNTIwMwor5YiEID4gcsOobjsgIzUyMDQKK+WIhSA+IGNodcSBbmc7ICM1MjA1CivliIYgPiBmxJNuOyAjNTIwNgor5YiHID4gcWnEkzsgIzUyMDcKK+WIiCA+IHnDrDsgIzUyMDgKK+WIiSA+IGrEqzsgIzUyMDkKK+WIiiA+IGvEgW47ICM1MjBBCivliIsgPiBxacOgbjsgIzUyMEIKK+WIjCA+IGPFrW47ICM1MjBDCivliI0gPiBjaMO6OyAjNTIwRAor5YiOID4gd8SVbjsgIzUyMEUKK+WIjyA+IGrEqzsgIzUyMEYKK+WIkCA+IGTEg247ICM1MjEwCivliJEgPiB4w61uZzsgIzUyMTEKK+WIkiA+IGh1w6E7ICM1MjEyCivliJMgPiB3w6FuOyAjNTIxMwor5YiUID4ganXDqTsgIzUyMTQKK+WIlSA+IGzDrTsgIzUyMTUKK+WIliA+IHl1w6g7ICM1MjE2CivliJcgPiBsacOoOyAjNTIxNwor5YiYID4gbMOtdTsgIzUyMTgKK+WImSA+IHrDqTsgIzUyMTkKK+WImiA+IGfEgW5nOyAjNTIxQQor5YibID4gY2h1w6BuZzsgIzUyMUIKK+WInCA+IGbDujsgIzUyMUMKK+WInSA+IGNoxas7ICM1MjFECivliJ4gPiBxw7k7ICM1MjFFCivliJ8gPiBqxas7ICM1MjFGCivliKAgPiBzaMSBbjsgIzUyMjAKK+WIoSA+IG3ErW47ICM1MjIxCivliKIgPiBsw61uZzsgIzUyMjIKK+WIoyA+IHpoxY1uZzsgIzUyMjMKK+WIpCA+IHDDoG47ICM1MjI0CivliKUgPiBiacOpOyAjNTIyNQor5YimID4gamnDqTsgIzUyMjYKK+WIpyA+IGppw6k7ICM1MjI3CivliKggPiBiw6BvOyAjNTIyOAor5YipID4gbMOsOyAjNTIyOQor5YiqID4gc2jEgW47ICM1MjJBCivliKsgPiBiacOpOyAjNTIyQgor5YisID4gY2jEg247ICM1MjJDCivliK0gPiBqxK1uZzsgIzUyMkQKK+WIriA+IGd1xIE7ICM1MjJFCivliK8gPiBnxJNuOyAjNTIyRgor5YiwID4gZMOgbzsgIzUyMzAKK+WIsSA+IGNodcOgbmc7ICM1MjMxCivliLIgPiBrxatpOyAjNTIzMgor5YizID4ga8WrOyAjNTIzMwor5Yi0ID4gZMO5bzsgIzUyMzQKK+WItSA+IMOocjsgIzUyMzUKK+WItiA+IHpow6w7ICM1MjM2CivliLcgPiBzaHXEgTsgIzUyMzcKK+WIuCA+IHF1w6BuOyAjNTIzOAor5Yi5ID4gY2jDoDsgIzUyMzkKK+WIuiA+IGPDrDsgIzUyM0EKK+WIuyA+IGvDqDsgIzUyM0IKK+WIvCA+IGppw6k7ICM1MjNDCivliL0gPiBnw7lpOyAjNTIzRAor5Yi+ID4gY8OsOyAjNTIzRQor5Yi/ID4gZ8O5aTsgIzUyM0YKK+WJgCA+IGvEg2k7ICM1MjQwCivliYEgPiBkw7lvOyAjNTI0MQor5YmCID4gasOsOyAjNTI0Mgor5YmDID4gdMOsOyAjNTI0Mwor5YmEID4gasStbmc7ICM1MjQ0CivliYUgPiBsw7N1OyAjNTI0NQor5YmGID4gZ8STbjsgIzUyNDYKK+WJhyA+IHrDqTsgIzUyNDcKK+WJiCA+IHl1xIFuOyAjNTI0OAor5YmJID4gY8O5bzsgIzUyNDkKK+WJiiA+IHh1xJM7ICM1MjRBCivliYsgPiBrw6g7ICM1MjRCCivliYwgPiBsw6A7ICM1MjRDCivliY0gPiBxacOhbjsgIzUyNEQKK+WJjiA+IGNow6A7ICM1MjRFCivliY8gPiBjaHXDoG5nOyAjNTI0Rgor5YmQID4gZ3XEgzsgIzUyNTAKK+WJkSA+IGppw6BuOyAjNTI1MQor5YmSID4gY8O5bzsgIzUyNTIKK+WJkyA+IGzDrTsgIzUyNTMKK+WJlCA+IHTEqzsgIzUyNTQKK+WJlSA+IGbDqGk7ICM1MjU1CivliZYgPiBwxY11OyAjNTI1Ngor5YmXID4gY2jEg247ICM1MjU3CivliZggPiBxw607ICM1MjU4CivliZkgPiBjaHXDoG5nOyAjNTI1OQor5YmaID4gesOsOyAjNTI1QQor5YmbID4gZ8SBbmc7ICM1MjVCCivliZwgPiB3xIFuOyAjNTI1Qwor5YmdID4gYsWNOyAjNTI1RAor5YmeID4gasSrOyAjNTI1RQor5YmfID4gZMWrbzsgIzUyNUYKK+WJoCA+IHHDrW5nOyAjNTI2MAor5YmhID4gecSDbjsgIzUyNjEKK+WJoiA+IHpow7pvOyAjNTI2Mgor5YmjID4gamnDoG47ICM1MjYzCivliaQgPiBqw6w7ICM1MjY0CivliaUgPiBixY07ICM1MjY1CivliaYgPiB5xIFuOyAjNTI2Ngor5YmnID4gasO5OyAjNTI2Nwor5YmoID4gaMO5bzsgIzUyNjgKK+WJqSA+IHNow6huZzsgIzUyNjkKK+WJqiA+IGppxINuOyAjNTI2QQor5YmrID4gZMO6bzsgIzUyNkIKK+WJrCA+IGR1xIFuOyAjNTI2Qwor5YmtID4gd8WrOyAjNTI2RAor5YmuID4gZ3XEgzsgIzUyNkUKK+WJryA+IGbDuTsgIzUyNkYKK+WJsCA+IHNow6huZzsgIzUyNzAKK+WJsSA+IGppw6BuOyAjNTI3MQor5YmyID4gZ8STOyAjNTI3Mgor5YmzID4gemjEgTsgIzUyNzMKK+WJtCA+IGvEg2k7ICM1Mjc0CivlibUgPiBjaHXDoG5nOyAjNTI3NQor5Ym2ID4ganXEgW47ICM1Mjc2CivlibcgPiBjaMSDbjsgIzUyNzcKK+WJuCA+IHR1w6FuOyAjNTI3OAor5Ym5ID4gbMO5OyAjNTI3OQor5Ym6ID4gbMOtOyAjNTI3QQor5Ym7ID4gZsOzdTsgIzUyN0IKK+WJvCA+IHNoxIFuOyAjNTI3Qwor5Ym9ID4gcGnDoG87ICM1MjdECivlib4gPiBrxY11OyAjNTI3RQor5Ym/ID4gamnEg287ICM1MjdGCivlioAgPiBndcSBOyAjNTI4MAor5YqBID4gcWnEgW87ICM1MjgxCivlioIgPiBqdcOpOyAjNTI4Mgor5YqDID4gaHXDoDsgIzUyODMKK+WKhCA+IHpow6E7ICM1Mjg0CivlioUgPiB6aMO5bzsgIzUyODUKK+WKhiA+IGxpw6FuOyAjNTI4Ngor5YqHID4gasO5OyAjNTI4Nwor5YqIID4gcMSrOyAjNTI4OAor5YqJID4gbMOtdTsgIzUyODkKK+WKiiA+IGfDuWk7ICM1MjhBCivliosgPiBqacSDbzsgIzUyOEIKK+WKjCA+IGfDuWk7ICM1MjhDCivlio0gPiBqacOgbjsgIzUyOEQKK+WKjiA+IGppw6BuOyAjNTI4RQor5YqPID4gdMSBbmc7ICM1MjhGCivlipAgPiBoxatvOyAjNTI5MAor5YqRID4gasOsOyAjNTI5MQor5YqSID4gamnDoG47ICM1MjkyCivlipMgPiB5w6w7ICM1MjkzCivlipQgPiBqacOgbjsgIzUyOTQKK+WKlSA+IHpow607ICM1Mjk1CivlipYgPiBjaMOhbjsgIzUyOTYKK+WKlyA+IGN1w6FuOyAjNTI5Nwor5YqYID4gbcOzOyAjNTI5OAor5YqZID4gbMOtOyAjNTI5OQor5YqaID4gemjDujsgIzUyOUEKK+WKmyA+IGzDrDsgIzUyOUIKK+WKnCA+IHnEgTsgIzUyOUMKK+WKnSA+IHF1w6BuOyAjNTI5RAor5YqeID4gYsOgbjsgIzUyOUUKK+WKnyA+IGfFjW5nOyAjNTI5Rgor5YqgID4gamnEgTsgIzUyQTAKK+WKoSA+IHfDuTsgIzUyQTEKK+WKoiA+IG3DoGk7ICM1MkEyCivliqMgPiBsacOoOyAjNTJBMwor5YqkID4gasOsbjsgIzUyQTQKK+WKpSA+IGvEk25nOyAjNTJBNQor5YqmID4geGnDqTsgIzUyQTYKK+WKpyA+IHpoxK07ICM1MkE3CivliqggPiBkw7JuZzsgIzUyQTgKK+WKqSA+IHpow7k7ICM1MkE5CivliqogPiBuxa07ICM1MkFBCivliqsgPiBqacOpOyAjNTJBQgor5YqsID4gccO6OyAjNTJBQwor5YqtID4gc2jDoG87ICM1MkFECivliq4gPiB5w6w7ICM1MkFFCivliq8gPiB6aMWrOyAjNTJBRgor5YqwID4gbWnEg287ICM1MkIwCivlirEgPiBsw6w7ICM1MkIxCivlirIgPiBqw6xuZzsgIzUyQjIKK+WKsyA+IGzDoW87ICM1MkIzCivlirQgPiBsw6FvOyAjNTJCNAor5Yq1ID4ganXDoG47ICM1MkI1CivlirYgPiBrxY91OyAjNTJCNgor5Yq3ID4gecOhbmc7ICM1MkI3CivlirggPiB3xIE7ICM1MkI4CivlirkgPiB4acOgbzsgIzUyQjkKK+WKuiA+IG3Ds3U7ICM1MkJBCivlirsgPiBrdcSBbmc7ICM1MkJCCivlirwgPiBqacOpOyAjNTJCQwor5Yq9ID4gbGnDqDsgIzUyQkQKK+WKviA+IGjDqTsgIzUyQkUKK+WKvyA+IHNow6w7ICM1MkJGCivli4AgPiBrw6g7ICM1MkMwCivli4EgPiBqw6xuZzsgIzUyQzEKK+WLgiA+IGjDoW87ICM1MkMyCivli4MgPiBiw7M7ICM1MkMzCivli4QgPiBtxK1uOyAjNTJDNAor5YuFID4gY2jDrDsgIzUyQzUKK+WLhiA+IGzDoW5nOyAjNTJDNgor5YuHID4gecWPbmc7ICM1MkM3Civli4ggPiB5xY9uZzsgIzUyQzgKK+WLiSA+IG1pxINuOyAjNTJDOQor5YuKID4ga8OoOyAjNTJDQQor5YuLID4geMWrbjsgIzUyQ0IKK+WLjCA+IGp1w6BuOyAjNTJDQwor5YuNID4gccOtbmc7ICM1MkNECivli44gPiBsw7k7ICM1MkNFCivli48gPiBwxY91OyAjNTJDRgor5YuQID4gbcSVbmc7ICM1MkQwCivli5EgPiBsw6BpOyAjNTJEMQor5YuSID4gbMOoOyAjNTJEMgor5YuTID4ga8OgaTsgIzUyRDMKK+WLlCA+IG1pxINuOyAjNTJENAor5YuVID4gZMOybmc7ICM1MkQ1Civli5YgPiB4w7k7ICM1MkQ2Civli5cgPiB4w7k7ICM1MkQ3Civli5ggPiBrxIFuOyAjNTJEOAor5YuZID4gd8O5OyAjNTJEOQor5YuaID4gecOsOyAjNTJEQQor5YubID4geMWrbjsgIzUyREIKK+WLnCA+IHfElW5nOyAjNTJEQwor5YudID4gc2jDqG5nOyAjNTJERAor5YueID4gbMOhbzsgIzUyREUKK+WLnyA+IG3DuTsgIzUyREYKK+WLoCA+IGzDuTsgIzUyRTAKK+WLoSA+IHBpw6BvOyAjNTJFMQor5YuiID4gc2jDrDsgIzUyRTIKK+WLoyA+IGrEqzsgIzUyRTMKK+WLpCA+IHHDrW47ICM1MkU0Civli6UgPiBxacSDbmc7ICM1MkU1Civli6YgPiBqacSDbzsgIzUyRTYKK+WLpyA+IHF1w6BuOyAjNTJFNwor5YuoID4gecSDbmc7ICM1MkU4Civli6kgPiB5w6w7ICM1MkU5Civli6ogPiBqdcOpOyAjNTJFQQor5YurID4gZsOhbjsgIzUyRUIKK+WLrCA+IGp1w6BuOyAjNTJFQwor5YutID4gdMOzbmc7ICM1MkVECivli64gPiBqw7k7ICM1MkVFCivli68gPiBkxIFuOyAjNTJFRgor5YuwID4geGnDqTsgIzUyRjAKK+WLsSA+IG3DoGk7ICM1MkYxCivli7IgPiB4xatuOyAjNTJGMgor5YuzID4geMWrbjsgIzUyRjMKK+WLtCA+IGzHnDsgIzUyRjQKK+WLtSA+IGzDrDsgIzUyRjUKK+WLtiA+IGNow6g7ICM1MkY2Civli7cgPiByw6FuZzsgIzUyRjcKK+WLuCA+IHF1w6BuOyAjNTJGOAor5Yu5ID4gYsSBbzsgIzUyRjkKK+WLuiA+IHNow6FvOyAjNTJGQQor5Yu7ID4gecO6bjsgIzUyRkIKK+WLvCA+IGrEq3U7ICM1MkZDCivli70gPiBiw6BvOyAjNTJGRAor5Yu+ID4gZ8WNdTsgIzUyRkUKK+WLvyA+IHfDuTsgIzUyRkYKK+WMgCA+IHnDum47ICM1MzAwCivljIMgPiBnw6BpOyAjNTMwMwor5YyEID4gZ8OgaTsgIzUzMDQKK+WMhSA+IGLEgW87ICM1MzA1CivljIYgPiBjxY1uZzsgIzUzMDYKK+WMiCA+IHjEq29uZzsgIzUzMDgKK+WMiSA+IHDEk25nOyAjNTMwOQor5YyKID4gasO6OyAjNTMwQQor5YyLID4gdMOhbzsgIzUzMEIKK+WMjCA+IGfDqTsgIzUzMEMKK+WMjSA+IHDDujsgIzUzMEQKK+WMjiA+IMOgbjsgIzUzMEUKK+WMjyA+IHDDoW87ICM1MzBGCivljJAgPiBmw7o7ICM1MzEwCivljJEgPiBnxY1uZzsgIzUzMTEKK+WMkiA+IGTDoTsgIzUzMTIKK+WMkyA+IGrDrHU7ICM1MzEzCivljJQgPiBxxKtvbmc7ICM1MzE0CivljJUgPiBixK07ICM1MzE1CivljJYgPiBodcOgOyAjNTMxNgor5YyXID4gYsSVaTsgIzUzMTcKK+WMmCA+IG7Eg287ICM1MzE4CivljJkgPiBjaMOtOyAjNTMxOQor5YyaID4gZsSBbmc7ICM1MzFBCivljJsgPiBqw6x1OyAjNTMxQgor5YycID4gecOtOyAjNTMxQwor5YydID4gesSBOyAjNTMxRAor5YyeID4gamnDoG5nOyAjNTMxRQor5YyfID4ga8Ogbmc7ICM1MzFGCivljKAgPiBqacOgbmc7ICM1MzIwCivljKEgPiBrdcSBbmc7ICM1MzIxCivljKIgPiBoxas7ICM1MzIyCivljKMgPiB4acOhOyAjNTMyMwor5YykID4gccWrOyAjNTMyNAor5YylID4gYmnDoG47ICM1MzI1CivljKYgPiBnxa1pOyAjNTMyNgor5YynID4gcWnDqDsgIzUzMjcKK+WMqCA+IHrEgW5nOyAjNTMyOAor5YypID4ga3XEgW5nOyAjNTMyOQor5YyqID4gZsSVaTsgIzUzMkEKK+WMqyA+IGjFqzsgIzUzMkIKK+WMrCA+IHTDs3U7ICM1MzJDCivljK0gPiBnxa1pOyAjNTMyRAor5YyuID4gZ8O5aTsgIzUzMkUKK+WMryA+IGjDuWk7ICM1MzJGCivljLAgPiBkxIFuOyAjNTMzMAor5YyxID4gZ8O5aTsgIzUzMzEKK+WMsiA+IGxpw6FuOyAjNTMzMgor5YyzID4gbGnDoW47ICM1MzMzCivljLQgPiBzdcSDbjsgIzUzMzQKK+WMtSA+IGTDujsgIzUzMzUKK+WMtiA+IGrDrHU7ICM1MzM2CivljLcgPiBxw7o7ICM1MzM3CivljLggPiB4xK07ICM1MzM4CivljLkgPiBwxK07ICM1MzM5CivljLogPiBxxas7ICM1MzNBCivljLsgPiB5w6w7ICM1MzNCCivljLwgPiBxacOgOyAjNTMzQwor5Yy9ID4gecSDbjsgIzUzM0QKK+WMviA+IGJpxINuOyAjNTMzRQor5Yy/ID4gbsOsOyAjNTMzRgor5Y2AID4gccWrOyAjNTM0MAor5Y2BID4gc2jDrTsgIzUzNDEKK+WNgiA+IHjDrG47ICM1MzQyCivljYMgPiBxacSBbjsgIzUzNDMKK+WNhCA+IG5pw6BuOyAjNTM0NAor5Y2FID4gc8OgOyAjNTM0NQor5Y2GID4gesO6OyAjNTM0Ngor5Y2HID4gc2jEk25nOyAjNTM0Nwor5Y2IID4gd8WtOyAjNTM0OAor5Y2JID4gaMO5aTsgIzUzNDkKK+WNiiA+IGLDoG47ICM1MzRBCivljYsgPiBzaMOsOyAjNTM0Qgor5Y2MID4geMOsOyAjNTM0Qwor5Y2NID4gd8OgbjsgIzUzNEQKK+WNjiA+IGh1w6E7ICM1MzRFCivljY8gPiB4acOpOyAjNTM0Rgor5Y2QID4gd8OgbjsgIzUzNTAKK+WNkSA+IGLEk2k7ICM1MzUxCivljZIgPiB6w7o7ICM1MzUyCivljZMgPiB6aMWrbzsgIzUzNTMKK+WNlCA+IHhpw6k7ICM1MzU0CivljZUgPiBkxIFuOyAjNTM1NQor5Y2WID4gbcOgaTsgIzUzNTYKK+WNlyA+IG7DoW47ICM1MzU3CivljZggPiBkxIFuOyAjNTM1OAor5Y2ZID4gasOtOyAjNTM1OQor5Y2aID4gYsOzOyAjNTM1QQor5Y2bID4gc2h1w6BpOyAjNTM1Qgor5Y2cID4gYsWtOyAjNTM1Qwor5Y2dID4ga3XDoG5nOyAjNTM1RAor5Y2eID4gYmnDoG47ICM1MzVFCivljZ8gPiBixa07ICM1MzVGCivljaAgPiB6aMSBbjsgIzUzNjAKK+WNoSA+IHFpxIM7ICM1MzYxCivljaIgPiBsw7o7ICM1MzYyCivljaMgPiB5xY91OyAjNTM2Mwor5Y2kID4gbMWtOyAjNTM2NAor5Y2lID4geMSrOyAjNTM2NQor5Y2mID4gZ3XDoDsgIzUzNjYKK+WNpyA+IHfDsjsgIzUzNjcKK+WNqCA+IHhpw6g7ICM1MzY4CivljakgPiBqacOpOyAjNTM2OQor5Y2qID4gamnDqTsgIzUzNkEKK+WNqyA+IHfDqGk7ICM1MzZCCivljawgPiDDoW5nOyAjNTM2Qwor5Y2tID4gccOtb25nOyAjNTM2RAor5Y2uID4gemjEqzsgIzUzNkUKK+WNryA+IG3Eg287ICM1MzZGCivljbAgPiB5w6xuOyAjNTM3MAor5Y2xID4gd8STaTsgIzUzNzEKK+WNsiA+IHNow6BvOyAjNTM3Mgor5Y2zID4gasOtOyAjNTM3Mwor5Y20ID4gcXXDqDsgIzUzNzQKK+WNtSA+IGx1xINuOyAjNTM3NQor5Y22ID4gc2jDrDsgIzUzNzYKK+WNtyA+IGp1w6BuOyAjNTM3Nwor5Y24ID4geGnDqDsgIzUzNzgKK+WNuSA+IHjDuTsgIzUzNzkKK+WNuiA+IGrErW47ICM1MzdBCivljbsgPiBxdcOoOyAjNTM3Qgor5Y28ID4gd8O5OyAjNTM3Qwor5Y29ID4gasOtOyAjNTM3RAor5Y2+ID4gw6g7ICM1MzdFCivljb8gPiBxxKtuZzsgIzUzN0YKK+WOgCA+IHjEqzsgIzUzODAKK+WOgiA+IGjDoG47ICM1MzgyCivljoMgPiB6aMSBbjsgIzUzODMKK+WOhCA+IMOoOyAjNTM4NAor5Y6FID4gdMSrbmc7ICM1Mzg1CivljoYgPiBsw6w7ICM1Mzg2CivljocgPiB6aMOpOyAjNTM4Nwor5Y6IID4gaMSDbjsgIzUzODgKK+WOiSA+IGzDrDsgIzUzODkKK+WOiiA+IHnEgzsgIzUzOEEKK+WOiyA+IHnEgTsgIzUzOEIKK+WOjCA+IHnDoG47ICM1MzhDCivljo0gPiBzaMOoOyAjNTM4RAor5Y6OID4gemjErTsgIzUzOEUKK+WOjyA+IHpoxIM7ICM1MzhGCivljpAgPiBww6FuZzsgIzUzOTAKK+WOkiA+IGjDqTsgIzUzOTIKK+WOkyA+IHnDoTsgIzUzOTMKK+WOlCA+IHpow6w7ICM1Mzk0CivljpUgPiBjw6g7ICM1Mzk1CivljpYgPiBww6FuZzsgIzUzOTYKK+WOlyA+IHTDrTsgIzUzOTcKK+WOmCA+IGzDrTsgIzUzOTgKK+WOmSA+IHNow6g7ICM1Mzk5CivljpogPiBow7J1OyAjNTM5QQor5Y6bID4gdMSrbmc7ICM1MzlCCivljpwgPiB6xatpOyAjNTM5Qwor5Y6dID4gY8O5bzsgIzUzOUQKK+WOniA+IGbDqGk7ICM1MzlFCivljp8gPiB5dcOhbjsgIzUzOUYKK+WOoCA+IGPDqDsgIzUzQTAKK+WOoSA+IHl1w6FuOyAjNTNBMQor5Y6iID4geGnEgW5nOyAjNTNBMgor5Y6jID4gecSDbjsgIzUzQTMKK+WOpCA+IGzDrDsgIzUzQTQKK+WOpSA+IGp1w6k7ICM1M0E1CivljqYgPiBzaMOgOyAjNTNBNgor5Y6nID4gZGnEgW47ICM1M0E3CivljqggPiBjaMO6OyAjNTNBOAor5Y6pID4gasOsdTsgIzUzQTkKK+WOqiA+IHHDrW47ICM1M0FBCivljqsgPiDDoW87ICM1M0FCCivljqwgPiBnxa1pOyAjNTNBQwor5Y6tID4gecOgbjsgIzUzQUQKK+WOriA+IHPEqzsgIzUzQUUKK+WOryA+IGzDrDsgIzUzQUYKK+WOsCA+IGNoxINuZzsgIzUzQjAKK+WOsSA+IGzDoW47ICM1M0IxCivljrIgPiBsw6w7ICM1M0IyCivljrMgPiB5w6FuOyAjNTNCMwor5Y60ID4gecSDbjsgIzUzQjQKK+WOtSA+IHl1w6FuOyAjNTNCNQor5Y62ID4gc8SrOyAjNTNCNgor5Y63ID4gZ8WNbmc7ICM1M0I3CivljrggPiBsw61uOyAjNTNCOAor5Y65ID4gccOtdTsgIzUzQjkKK+WOuiA+IHHDuTsgIzUzQkEKK+WOuyA+IHHDuTsgIzUzQkIKK+WOvSA+IGzElWk7ICM1M0JECivljr4gPiBkxas7ICM1M0JFCivljr8gPiB4acOgbjsgIzUzQkYKK+WPgCA+IHpodcSBbjsgIzUzQzAKK+WPgSA+IHPEgW47ICM1M0MxCivlj4IgPiBjxIFuOyAjNTNDMgor5Y+DID4gY8SBbjsgIzUzQzMKK+WPhCA+IGPEgW47ICM1M0M0Civlj4UgPiBjxIFuOyAjNTNDNQor5Y+GID4gw6BpOyAjNTNDNgor5Y+HID4gZMOgaTsgIzUzQzcKK+WPiCA+IHnDsnU7ICM1M0M4Civlj4kgPiBjaGE7ICM1M0M5Civlj4ogPiBqw607ICM1M0NBCivlj4sgPiB5xY91OyAjNTNDQgor5Y+MID4gc2h1xIFuZzsgIzUzQ0MKK+WPjSA+IGbEg247ICM1M0NECivlj44gPiBzaMWNdTsgIzUzQ0UKK+WPjyA+IGd1w6BpOyAjNTNDRgor5Y+QID4gYsOhOyAjNTNEMAor5Y+RID4gZsSBOyAjNTNEMQor5Y+SID4gcsO5bzsgIzUzRDIKK+WPkyA+IHNow6w7ICM1M0QzCivlj5QgPiBzaMWrOyAjNTNENAor5Y+VID4gemjDum87ICM1M0Q1Civlj5YgPiBxxas7ICM1M0Q2Civlj5cgPiBzaMOydTsgIzUzRDcKK+WPmCA+IGJpw6BuOyAjNTNEOAor5Y+ZID4geMO5OyAjNTNEOQor5Y+aID4gamnEgzsgIzUzREEKK+WPmyA+IHDDoG47ICM1M0RCCivlj5wgPiBzxY91OyAjNTNEQwor5Y+dID4gZ8OgbzsgIzUzREQKK+WPniA+IHfDqGk7ICM1M0RFCivlj58gPiBzxY91OyAjNTNERgor5Y+gID4gZGnDqTsgIzUzRTAKK+WPoSA+IHLDuWk7ICM1M0UxCivlj6IgPiBjw7NuZzsgIzUzRTIKK+WPoyA+IGvFj3U7ICM1M0UzCivlj6QgPiBnxa07ICM1M0U0Civlj6UgPiBqw7k7ICM1M0U1Civlj6YgPiBsw6xuZzsgIzUzRTYKK+WPpyA+IGd1xIM7ICM1M0U3Civlj6ggPiB0xIFvOyAjNTNFOAor5Y+pID4ga8OydTsgIzUzRTkKK+WPqiA+IHpoxK07ICM1M0VBCivlj6sgPiBqacOgbzsgIzUzRUIKK+WPrCA+IHpow6BvOyAjNTNFQwor5Y+tID4gYsSBOyAjNTNFRAor5Y+uID4gZMSrbmc7ICM1M0VFCivlj68gPiBrxJU7ICM1M0VGCivlj7AgPiB0w6FpOyAjNTNGMAor5Y+xID4gY2jDrDsgIzUzRjEKK+WPsiA+IHNoxK07ICM1M0YyCivlj7MgPiB5w7J1OyAjNTNGMwor5Y+0ID4gccOtdTsgIzUzRjQKK+WPtSA+IHDFjzsgIzUzRjUKK+WPtiA+IHhpw6k7ICM1M0Y2Civlj7cgPiBow6BvOyAjNTNGNwor5Y+4ID4gc8SrOyAjNTNGOAor5Y+5ID4gdMOgbjsgIzUzRjkKK+WPuiA+IGNoxK07ICM1M0ZBCivlj7sgPiBsw6g7ICM1M0ZCCivlj7wgPiBkacSBbzsgIzUzRkMKK+WPvSA+IGrEqzsgIzUzRkQKK+WPvyA+IGjFjW5nOyAjNTNGRgor5ZCAID4gbWnEkzsgIzU0MDAKK+WQgSA+IHjFqzsgIzU0MDEKK+WQgiA+IG3DoW5nOyAjNTQwMgor5ZCDID4gY2jEqzsgIzU0MDMKK+WQhCA+IGfDqDsgIzU0MDQKK+WQhSA+IHh1xIFuOyAjNTQwNQor5ZCGID4gecSBbzsgIzU0MDYKK+WQhyA+IHrErTsgIzU0MDcKK+WQiCA+IGjDqTsgIzU0MDgKK+WQiSA+IGrDrTsgIzU0MDkKK+WQiiA+IGRpw6BvOyAjNTQwQQor5ZCLID4gY8O5bjsgIzU0MEIKK+WQjCA+IHTDs25nOyAjNTQwQwor5ZCNID4gbcOtbmc7ICM1NDBECivlkI4gPiBow7J1OyAjNTQwRQor5ZCPID4gbMOsOyAjNTQwRgor5ZCQID4gdMWtOyAjNTQxMAor5ZCRID4geGnDoG5nOyAjNTQxMQor5ZCSID4gemjDoDsgIzU0MTIKK+WQkyA+IHhpw6A7ICM1NDEzCivlkJQgPiB5xJU7ICM1NDE0CivlkJUgPiBsx5o7ICM1NDE1CivlkJYgPiDEgTsgIzU0MTYKK+WQlyA+IG1hOyAjNTQxNwor5ZCYID4gxY91OyAjNTQxOAor5ZCZID4geHXEkzsgIzU0MTkKK+WQmiA+IHnEqzsgIzU0MUEKK+WQmyA+IGrFq247ICM1NDFCCivlkJwgPiBjaMWPdTsgIzU0MUMKK+WQnSA+IGzDrG47ICM1NDFECivlkJ4gPiB0xatuOyAjNTQxRQor5ZCfID4gecOtbjsgIzU0MUYKK+WQoCA+IGbDqGk7ICM1NDIwCivlkKEgPiBixK07ICM1NDIxCivlkKIgPiBxw6xuOyAjNTQyMgor5ZCjID4gccOsbjsgIzU0MjMKK+WQpCA+IGppw6g7ICM1NDI0CivlkKUgPiBiw7k7ICM1NDI1CivlkKYgPiBmxY91OyAjNTQyNgor5ZCnID4gYmE7ICM1NDI3CivlkKggPiBkxatuOyAjNTQyOAor5ZCpID4gZsSTbjsgIzU0MjkKK+WQqiA+IMOpOyAjNTQyQQor5ZCrID4gaMOhbjsgIzU0MkIKK+WQrCA+IHTEq25nOyAjNTQyQwor5ZCtID4gaMOhbmc7ICM1NDJECivlkK4gPiBzaMWtbjsgIzU0MkUKK+WQryA+IHHErTsgIzU0MkYKK+WQsCA+IGjDs25nOyAjNTQzMAor5ZCxID4gemjEqzsgIzU0MzEKK+WQsiA+IHNoxJVuOyAjNTQzMgor5ZCzID4gd8O6OyAjNTQzMwor5ZC0ID4gd8O6OyAjNTQzNAor5ZC1ID4gY2jEg287ICM1NDM1CivlkLYgPiBuw6g7ICM1NDM2CivlkLcgPiB4dcOoOyAjNTQzNwor5ZC4ID4geMSrOyAjNTQzOAor5ZC5ID4gY2jFq2k7ICM1NDM5CivlkLogPiBkxY11OyAjNTQzQQor5ZC7ID4gd8SVbjsgIzU0M0IKK+WQvCA+IGjFj3U7ICM1NDNDCivlkL0gPiDDs3U7ICM1NDNECivlkL4gPiB3w7o7ICM1NDNFCivlkL8gPiBnw6BvOyAjNTQzRgor5ZGAID4gecSBOyAjNTQ0MAor5ZGBID4gasO5bjsgIzU0NDEKK+WRgiA+IGzHmjsgIzU0NDIKK+WRgyA+IMOoOyAjNTQ0Mwor5ZGEID4gZ8OpOyAjNTQ0NAor5ZGFID4gbcOpaTsgIzU0NDUKK+WRhiA+IMOhaTsgIzU0NDYKK+WRhyA+IHHErTsgIzU0NDcKK+WRiCA+IGNow6luZzsgIzU0NDgKK+WRiSA+IHfDujsgIzU0NDkKK+WRiiA+IGfDoG87ICM1NDRBCivlkYsgPiBmxas7ICM1NDRCCivlkYwgPiBqacOgbzsgIzU0NEMKK+WRjSA+IGjFjW5nOyAjNTQ0RAor5ZGOID4gY2jErTsgIzU0NEUKK+WRjyA+IHNoxJNuZzsgIzU0NEYKK+WRkCA+IG7DqDsgIzU0NTAKK+WRkSA+IHTFq247ICM1NDUxCivlkZIgPiBmxa07ICM1NDUyCivlkZMgPiB5w6w7ICM1NDUzCivlkZQgPiBkxIFpOyAjNTQ1NAor5ZGVID4gxY11OyAjNTQ1NQor5ZGWID4gbMOsOyAjNTQ1Ngor5ZGXID4gYsOgaTsgIzU0NTcKK+WRmCA+IHl1w6FuOyAjNTQ1OAor5ZGZID4ga3XEgWk7ICM1NDU5CivlkZsgPiBxacSBbmc7ICM1NDVCCivlkZwgPiB3xas7ICM1NDVDCivlkZ0gPiDDqDsgIzU0NUQKK+WRniA+IHNoxKs7ICM1NDVFCivlkZ8gPiBxdcSDbjsgIzU0NUYKK+WRoCA+IHDEk247ICM1NDYwCivlkaEgPiB3xJVuOyAjNTQ2MQor5ZGiID4gbsOtOyAjNTQ2Mgor5ZGjID4gbcyBOyAjNTQ2Mwor5ZGkID4gbMStbmc7ICM1NDY0CivlkaUgPiByxINuOyAjNTQ2NQor5ZGmID4gecWNdTsgIzU0NjYKK+WRpyA+IGTErTsgIzU0NjcKK+WRqCA+IHpoxY11OyAjNTQ2OAor5ZGpID4gc2jDrDsgIzU0NjkKK+WRqiA+IHpow7J1OyAjNTQ2QQor5ZGrID4gdGnEkzsgIzU0NkIKK+WRrCA+IHjDrDsgIzU0NkMKK+WRrSA+IHnDrDsgIzU0NkQKK+WRriA+IHHDrDsgIzU0NkUKK+WRryA+IHDDrW5nOyAjNTQ2Rgor5ZGwID4gesStOyAjNTQ3MAor5ZGxID4gZ8WrOyAjNTQ3MQor5ZGyID4gesSrOyAjNTQ3Mgor5ZGzID4gd8OoaTsgIzU0NzMKK+WRtCA+IHjFqzsgIzU0NzQKK+WRtSA+IGjEkzsgIzU0NzUKK+WRtiA+IG7DoW87ICM1NDc2CivlkbcgPiB4acSBOyAjNTQ3Nwor5ZG4ID4gcMSTaTsgIzU0NzgKK+WRuSA+IHnDrDsgIzU0NzkKK+WRuiA+IHhpxIFvOyAjNTQ3QQor5ZG7ID4gc2jEk247ICM1NDdCCivlkbwgPiBoxas7ICM1NDdDCivlkb0gPiBtw6xuZzsgIzU0N0QKK+WRviA+IGTDoTsgIzU0N0UKK+WRvyA+IHHFqzsgIzU0N0YKK+WSgCA+IGrFrTsgIzU0ODAKK+WSgSA+IGfDqG07ICM1NDgxCivlkoIgPiB6xIE7ICM1NDgyCivlkoMgPiB0xatvOyAjNTQ4Mwor5ZKEID4gZMWrbzsgIzU0ODQKK+WShSA+IHDDsnU7ICM1NDg1CivlkoYgPiBww6FvOyAjNTQ4Ngor5ZKHID4gYsOsOyAjNTQ4Nwor5ZKIID4gZsO6OyAjNTQ4OAor5ZKJID4gecSBbmc7ICM1NDg5CivlkoogPiBow6k7ICM1NDhBCivlkosgPiB6aMOgOyAjNTQ4Qgor5ZKMID4gaMOpOyAjNTQ4Qwor5ZKNID4gaMSBaTsgIzU0OEQKK+WSjiA+IGrDrHU7ICM1NDhFCivlko8gPiB5xY9uZzsgIzU0OEYKK+WSkCA+IGbDuTsgIzU0OTAKK+WSkSA+IHF1w6g7ICM1NDkxCivlkpIgPiB6aMOydTsgIzU0OTIKK+WSkyA+IHfEgzsgIzU0OTMKK+WSlCA+IGvEgzsgIzU0OTQKK+WSlSA+IGfFqzsgIzU0OTUKK+WSliA+IGvEgTsgIzU0OTYKK+WSlyA+IHrFrW87ICM1NDk3CivlkpggPiBiw7k7ICM1NDk4CivlkpkgPiBsw7NuZzsgIzU0OTkKK+WSmiA+IGTFjW5nOyAjNTQ5QQor5ZKbID4gbsOtbmc7ICM1NDlCCivlkp0gPiBzxKs7ICM1NDlECivlkp4gPiB4acOgbjsgIzU0OUUKK+WSnyA+IGjDuW87ICM1NDlGCivlkqAgPiBxw6w7ICM1NEEwCivlkqEgPiDDqHI7ICM1NEExCivlkqIgPiDDqDsgIzU0QTIKK+WSoyA+IGd1xIFuZzsgIzU0QTMKK+WSpCA+IHpow6A7ICM1NEE0CivlkqUgPiB4w6w7ICM1NEE1CivlkqYgPiB5w607ICM1NEE2CivlkqcgPiBsacSVOyAjNTRBNwor5ZKoID4gesSrOyAjNTRBOAor5ZKpID4gbWnEkzsgIzU0QTkKK+WSqiA+IG3EqzsgIzU0QUEKK+WSqyA+IHpoxK07ICM1NEFCCivlkqwgPiB5xINvOyAjNTRBQwor5ZKtID4gasSrOyAjNTRBRAor5ZKuID4gemjDsnU7ICM1NEFFCivlkq8gPiBnxJM7ICM1NEFGCivlkrAgPiBzaHXDoGk7ICM1NEIwCivlkrEgPiB6w6FuOyAjNTRCMQor5ZKyID4geGnDoG87ICM1NEIyCivlkrMgPiBrw6k7ICM1NEIzCivlkrQgPiBoxatpOyAjNTRCNAor5ZK1ID4ga3XEgTsgIzU0QjUKK+WStiA+IGh1w6BpOyAjNTRCNgor5ZK3ID4gdMOhbzsgIzU0QjcKK+WSuCA+IHhpw6FuOyAjNTRCOAor5ZK5ID4gw6g7ICM1NEI5CivlkrogPiB4dcSBbjsgIzU0QkEKK+WSuyA+IHjEq3U7ICM1NEJCCivlkrwgPiB3xIFpOyAjNTRCQwor5ZK9ID4gecSBbjsgIzU0QkQKK+WSviA+IGzEg287ICM1NEJFCivlkr8gPiB5xKs7ICM1NEJGCivlk4AgPiDEgWk7ICM1NEMwCivlk4EgPiBwxK1uOyAjNTRDMQor5ZOCID4gc2jElW47ICM1NEMyCivlk4MgPiB0w7NuZzsgIzU0QzMKK+WThCA+IGjFjW5nOyAjNTRDNAor5ZOFID4geMSrb25nOyAjNTRDNQor5ZOGID4gY2jErTsgIzU0QzYKK+WThyA+IHfEgTsgIzU0QzcKK+WTiCA+IGjEgTsgIzU0QzgKK+WTiSA+IHrEgWk7ICM1NEM5Civlk4ogPiB5w7k7ICM1NENBCivlk4sgPiBkw6w7ICM1NENCCivlk4wgPiBww6BpOyAjNTRDQwor5ZONID4geGnEg25nOyAjNTRDRAor5ZOOID4gxIFpOyAjNTRDRQor5ZOPID4gaMSVbjsgIzU0Q0YKK+WTkCA+IGt1xIFuZzsgIzU0RDAKK+WTkSA+IHnEgzsgIzU0RDEKK+WTkiA+IGTEgTsgIzU0RDIKK+WTkyA+IHhpxIFvOyAjNTREMwor5ZOUID4gYsOsOyAjNTRENAor5ZOVID4geXXElTsgIzU0RDUKK+WTlyA+IGh1xIE7ICM1NEQ3Civlk5kgPiBrdcOgaTsgIzU0RDkKK+WTmiA+IGTFrW87ICM1NERBCivlk5wgPiBqw6w7ICM1NERDCivlk50gPiBuw7NuZzsgIzU0REQKK+WTniA+IG3FjXU7ICM1NERFCivlk58gPiB5bzsgIzU0REYKK+WToCA+IGjDoG87ICM1NEUwCivlk6EgPiB5dcOhbjsgIzU0RTEKK+WToiA+IGzDsm5nOyAjNTRFMgor5ZOjID4gcMWPdTsgIzU0RTMKK+WTpCA+IG3DoW5nOyAjNTRFNAor5ZOlID4gZ8STOyAjNTRFNQor5ZOmID4gw6k7ICM1NEU2Civlk6cgPiBjaMSrOyAjNTRFNwor5ZOoID4gc2jDoG87ICM1NEU4Civlk6kgPiBsxKs7ICM1NEU5Civlk6ogPiBuxIM7ICM1NEVBCivlk6sgPiB6w7o7ICM1NEVCCivlk6wgPiBow6k7ICM1NEVDCivlk60gPiBrxas7ICM1NEVECivlk64gPiB4acSBbzsgIzU0RUUKK+WTryA+IHhpw6BuOyAjNTRFRgor5ZOwID4gbMOhbzsgIzU0RjAKK+WTsSA+IGLFjTsgIzU0RjEKK+WTsiA+IHpow6k7ICM1NEYyCivlk7MgPiB6aMSBOyAjNTRGMwor5ZO0ID4gbGnDoG5nOyAjNTRGNAor5ZO1ID4gYsSBOyAjNTRGNQor5ZO2ID4gbWnEkzsgIzU0RjYKK+WTtyA+IGzDqDsgIzU0RjcKK+WTuCA+IHPFq2k7ICM1NEY4Civlk7kgPiBmw7N1OyAjNTRGOQor5ZO6ID4gYsWtOyAjNTRGQQor5ZO7ID4gaMOgbjsgIzU0RkIKK+WTvCA+IGjEk25nOyAjNTRGQwor5ZO9ID4gZ8SVbmc7ICM1NEZECivlk74gPiBzaMWrbzsgIzU0RkUKK+WTvyA+IGfElTsgIzU0RkYKK+WUgCA+IHnFj3U7ICM1NTAwCivllIEgPiB5w6BuOyAjNTUwMQor5ZSCID4gZ8WtOyAjNTUwMgor5ZSDID4gZ8WtOyAjNTUwMwor5ZSEID4gYsOgaTsgIzU1MDQKK+WUhSA+IGjEgW47ICM1NTA1CivllIYgPiBzxatvOyAjNTUwNgor5ZSHID4gY2jDum47ICM1NTA3CivllIggPiB5w6w7ICM1NTA4CivllIkgPiDEgWk7ICM1NTA5CivllIogPiBqacOhOyAjNTUwQQor5ZSLID4gdMWtOyAjNTUwQgor5ZSMID4geGnDoW47ICM1NTBDCivllI0gPiBodcSDbjsgIzU1MEQKK+WUjiA+IGzEqzsgIzU1MEUKK+WUjyA+IHjEqzsgIzU1MEYKK+WUkCA+IHTDoW5nOyAjNTUxMAor5ZSRID4gesO5bzsgIzU1MTEKK+WUkiA+IHHDrXU7ICM1NTEyCivllJMgPiBjaMSTOyAjNTUxMwor5ZSUID4gd8O6OyAjNTUxNAor5ZSVID4gesOgbzsgIzU1MTUKK+WUliA+IHnEgzsgIzU1MTYKK+WUlyA+IGTFjXU7ICM1NTE3CivllJggPiBxxK07ICM1NTE4CivllJkgPiBkw607ICM1NTE5CivllJogPiBxw6xuOyAjNTUxQQor5ZSbID4gbcOgOyAjNTUxQgor5ZSdID4gaMWPbmc7ICM1NTFECivllJ4gPiBkxY91OyAjNTUxRQor5ZSgID4gbMOhbzsgIzU1MjAKK+WUoSA+IGxpxINuZzsgIzU1MjEKK+WUoiA+IHPFrW87ICM1NTIyCivllKMgPiB6w6BvOyAjNTUyMwor5ZSkID4gaHXDoG47ICM1NTI0CivllKYgPiBzaMSBOyAjNTUyNgor5ZSnID4gasSrOyAjNTUyNwor5ZSoID4gesWtbzsgIzU1MjgKK+WUqSA+IHfFjTsgIzU1MjkKK+WUqiA+IGbElW5nOyAjNTUyQQor5ZSrID4gecOtbjsgIzU1MkIKK+WUrCA+IGjFrTsgIzU1MkMKK+WUrSA+IHHEqzsgIzU1MkQKK+WUriA+IHNow7J1OyAjNTUyRQor5ZSvID4gd8OpaTsgIzU1MkYKK+WUsCA+IHNodcSBOyAjNTUzMAor5ZSxID4gY2jDoG5nOyAjNTUzMQor5ZSyID4gw6lyOyAjNTUzMgor5ZSzID4gbMOsOyAjNTUzMwor5ZS0ID4gcWnDoG5nOyAjNTUzNAor5ZS1ID4gxINuOyAjNTUzNQor5ZS2ID4gamnDqDsgIzU1MzYKK+WUtyA+IHnFjTsgIzU1MzcKK+WUuCA+IG5pw6BuOyAjNTUzOAor5ZS5ID4gecWrOyAjNTUzOQor5ZS6ID4gdGnEg247ICM1NTNBCivllLsgPiBsxINpOyAjNTUzQgor5ZS8ID4gc2jDoDsgIzU1M0MKK+WUvSA+IHjEqzsgIzU1M0QKK+WUviA+IHTDuW87ICM1NTNFCivllL8gPiBoxas7ICM1NTNGCivllYAgPiDDoWk7ICM1NTQwCivllYEgPiB6aMWNdTsgIzU1NDEKK+WVgiA+IG7DsnU7ICM1NTQyCivllYMgPiBrxJVuOyAjNTU0Mwor5ZWEID4gemjDum87ICM1NTQ0CivllYUgPiB6aMO6bzsgIzU1NDUKK+WVhiA+IHNoxIFuZzsgIzU1NDYKK+WVhyA+IGTDrTsgIzU1NDcKK+WViCA+IGjDqG5nOyAjNTU0OAor5ZWJID4gbMOhbjsgIzU1NDkKK+WViiA+IGE7ICM1NTRBCivllYsgPiB4acSBbzsgIzU1NEIKK+WVjCA+IHhpxIFuZzsgIzU1NEMKK+WVjSA+IHTFq247ICM1NTRECivllY4gPiB3xa07ICM1NTRFCivllY8gPiB3w6huOyAjNTU0Rgor5ZWQID4gY8O5aTsgIzU1NTAKK+WVkSA+IHNow6A7ICM1NTUxCivllZIgPiBoxas7ICM1NTUyCivllZMgPiBxxK07ICM1NTUzCivllZQgPiBxxK07ICM1NTU0CivllZUgPiB0w6FvOyAjNTU1NQor5ZWWID4gZMOgbjsgIzU1NTYKK+WVlyA+IGTDoG47ICM1NTU3CivllZggPiB5w6g7ICM1NTU4CivllZkgPiB6xK07ICM1NTU5CivllZogPiBixK07ICM1NTVBCivllZsgPiBjw7lpOyAjNTU1Qgor5ZWcID4gY2jDuW87ICM1NTVDCivllZ0gPiBow6k7ICM1NTVECivllZ4gPiB5xIM7ICM1NTVFCivllZ8gPiBxxK07ICM1NTVGCivllaAgPiB6aMOpOyAjNTU2MAor5ZWhID4gcMSTaTsgIzU1NjEKK+WVoiA+IGxpxINuZzsgIzU1NjIKK+WVoyA+IHhpw6FuOyAjNTU2Mwor5ZWkID4gcMOtOyAjNTU2NAor5ZWlID4gc2jDoDsgIzU1NjUKK+WVpiA+IGxhOyAjNTU2Ngor5ZWnID4gesOpOyAjNTU2Nwor5ZWoID4gccSrbmc7ICM1NTY4CivllakgPiBndcOgOyAjNTU2OQor5ZWqID4gcMSBOyAjNTU2QQor5ZWrID4gemjElTsgIzU1NkIKK+WVrCA+IHPDqDsgIzU1NkMKK+WVrSA+IHpodcOgbjsgIzU1NkQKK+WVriA+IG5pw6g7ICM1NTZFCivlla8gPiBndW87ICM1NTZGCivllbAgPiBsxatvOyAjNTU3MAor5ZWxID4gecSBbjsgIzU1NzEKK+WVsiA+IGTDrDsgIzU1NzIKK+WVsyA+IHF1w6FuOyAjNTU3Mwor5ZW0ID4gdMSBbjsgIzU1NzQKK+WVtSA+IGJvOyAjNTU3NQor5ZW2ID4gZMOsbmc7ICM1NTc2CivllbcgPiBsxIFuZzsgIzU1NzcKK+WVuCA+IHhpw6BvOyAjNTU3OAor5ZW6ID4gdMOhbmc7ICM1NTdBCivllbsgPiBjaMOsOyAjNTU3Qgor5ZW8ID4gdMOtOyAjNTU3Qwor5ZW9ID4gw6FuOyAjNTU3RAor5ZW+ID4gasSrdTsgIzU1N0UKK+WVvyA+IGTDoG47ICM1NTdGCivlloAgPiBrw6g7ICM1NTgwCivlloEgPiB5w7NuZzsgIzU1ODEKK+WWgiA+IHfDqGk7ICM1NTgyCivlloMgPiBuw6FuOyAjNTU4Mwor5ZaEID4gc2jDoG47ICM1NTg0CivlloUgPiB5w7k7ICM1NTg1CivlloYgPiB6aMOpOyAjNTU4Ngor5ZaHID4gbMSDOyAjNTU4Nwor5ZaIID4gamnEkzsgIzU1ODgKK+WWiSA+IGjDs3U7ICM1NTg5CivlloogPiBoxINuOyAjNTU4QQor5ZaLID4gZGnDqTsgIzU1OEIKK+WWjCA+IHpoxY11OyAjNTU4Qwor5ZaNID4gY2jDoWk7ICM1NThECivllo4gPiB3xIFpOyAjNTU4RQor5ZaPID4gcsSVOyAjNTU4Rgor5ZaQID4gecO5OyAjNTU5MAor5ZaRID4gecSrbjsgIzU1OTEKK+WWkiA+IHrDoW47ICM1NTkyCivllpMgPiB5xIFvOyAjNTU5Mwor5ZaUID4gd8WNOyAjNTU5NAor5ZaVID4gbWnEg247ICM1NTk1CivllpYgPiBow7o7ICM1NTk2CivllpcgPiB5xa1uOyAjNTU5Nwor5ZaYID4gY2h1xINuOyAjNTU5OAor5ZaZID4gaMO5aTsgIzU1OTkKK+WWmiA+IGh1w6BuOyAjNTU5QQor5ZabID4gaHXDoG47ICM1NTlCCivllpwgPiB4xK07ICM1NTlDCivllp0gPiBoxJM7ICM1NTlECivllp4gPiBqxKs7ICM1NTlFCivllp8gPiBrw7lpOyAjNTU5Rgor5ZagID4gemjFj25nOyAjNTVBMAor5ZahID4gd8SVaTsgIzU1QTEKK+WWoiA+IHNow6A7ICM1NUEyCivllqMgPiB4xa07ICM1NUEzCivllqQgPiBodcOhbmc7ICM1NUE0CivllqUgPiBkw7k7ICM1NUE1CivllqYgPiBuacOoOyAjNTVBNgor5ZanID4gMXh1xIFuOyAjNTVBNwor5ZaoID4gbGnDoG5nOyAjNTVBOAor5ZapID4gecO5OyAjNTVBOQor5ZaqID4gc8SBbmc7ICM1NUFBCivllqsgPiBjaMSrOyAjNTVBQgor5ZasID4gcWnDoW87ICM1NUFDCivllq0gPiB5w6BuOyAjNTVBRAor5ZauID4gZMSBbjsgIzU1QUUKK+WWryA+IHDEk247ICM1NUFGCivllrAgPiBjxIFuOyAjNTVCMAor5ZaxID4gbMOtOyAjNTVCMQor5ZayID4geW87ICM1NUIyCivllrMgPiB6aMSBOyAjNTVCMwor5Za0ID4gd8STaTsgIzU1QjQKK+WWtSA+IG1pxIFvOyAjNTVCNQor5Za2ID4gecOtbmc7ICM1NUI2CivllrcgPiBwxJNuOyAjNTVCNwor5Za5ID4ga8O6aTsgIzU1QjkKK+WWuiA+IHjDrDsgIzU1QkEKK+WWuyA+IHnDuTsgIzU1QkIKK+WWvCA+IGppw6k7ICM1NUJDCivllr0gPiBsb3U7ICM1NUJECivllr4gPiBrw7k7ICM1NUJFCivllr8gPiBzw6BvOyAjNTVCRgor5ZeAID4gaMO5bzsgIzU1QzAKK+WXgSA+IHTDrTsgIzU1QzEKK+WXgiA+IHnDoW87ICM1NUMyCivll4MgPiBow6g7ICM1NUMzCivll4QgPiDDoTsgIzU1QzQKK+WXhSA+IHjDrHU7ICM1NUM1Civll4YgPiBxacSBbmc7ICM1NUM2Civll4cgPiBzw6g7ICM1NUM3Civll4ggPiB5xY1uZzsgIzU1QzgKK+WXiSA+IHPDuTsgIzU1QzkKK+WXiiA+IGjFj25nOyAjNTVDQQor5ZeLID4geGnDqTsgIzU1Q0IKK+WXjCA+IHnDrDsgIzU1Q0MKK+WXjSA+IHPFq287ICM1NUNECivll44gPiBtYTsgIzU1Q0UKK+WXjyA+IGNoxIE7ICM1NUNGCivll5AgPiBow6BpOyAjNTVEMAor5ZeRID4ga8OoOyAjNTVEMQor5ZeSID4gdMOgOyAjNTVEMgor5ZeTID4gc8SDbmc7ICM1NUQzCivll5QgPiB0acOhbjsgIzU1RDQKK+WXlSA+IHLDuTsgIzU1RDUKK+WXliA+IHPFjXU7ICM1NUQ2Civll5cgPiB3xIE7ICM1NUQ3Civll5ggPiBqxKs7ICM1NUQ4Civll5kgPiBwxINuZzsgIzU1RDkKK+WXmiA+IHfFqzsgIzU1REEKK+WXmyA+IHhpw6FuOyAjNTVEQgor5ZecID4gc2jDrDsgIzU1REMKK+WXnSA+IGfDqTsgIzU1REQKK+WXniA+IHrEqzsgIzU1REUKK+WXnyA+IGppxJM7ICM1NURGCivll6AgPiBsw7lvOyAjNTVFMAor5ZehID4gd8STbmc7ICM1NUUxCivll6IgPiB3w6A7ICM1NUUyCivll6MgPiBzw6w7ICM1NUUzCivll6QgPiBjaMSrOyAjNTVFNAor5ZelID4gaMOhbzsgIzU1RTUKK+WXpiA+IHPFq287ICM1NUU2Civll6cgPiBqacSBJyAnbMO6bjsgIzU1RTcKK+WXqCA+IGjEg2k7ICM1NUU4Civll6kgPiBzxa1vOyAjNTVFOQor5ZeqID4gccOtbjsgIzU1RUEKK+WXqyA+IG5pw6g7ICM1NUVCCivll6wgPiBoxJM7ICM1NUVDCivll64gPiBzw6BpOyAjNTVFRQor5ZevID4gbsyAZzsgIzU1RUYKK+WXsCA+IGfDqDsgIzU1RjAKK+WXsSA+IG7DoTsgIzU1RjEKK+WXsiA+IGRpxIM7ICM1NUYyCivll7MgPiDDoGk7ICM1NUYzCivll7UgPiB0xY1uZzsgIzU1RjUKK+WXtiA+IGLDrDsgIzU1RjYKK+WXtyA+IMOhbzsgIzU1RjcKK+WXuCA+IMOhbzsgIzU1RjgKK+WXuSA+IGxpw6FuOyAjNTVGOQor5Ze6ID4gY8WraTsgIzU1RkEKK+WXuyA+IHpoxJM7ICM1NUZCCivll7wgPiBtw7I7ICM1NUZDCivll70gPiBzw7J1OyAjNTVGRAor5Ze+ID4gc8WPdTsgIzU1RkUKK+WXvyA+IHTEg247ICM1NUZGCivlmIAgPiBkw607ICM1NjAwCivlmIEgPiBxxKs7ICM1NjAxCivlmIIgPiBqacOgbzsgIzU2MDIKK+WYgyA+IGNoxY1uZzsgIzU2MDMKK+WYhCA+IGppxIFvOyAjNTYwNAor5ZiFID4ga8SDaTsgIzU2MDUKK+WYhiA+IHTDoG47ICM1NjA2CivlmIcgPiBzxIFuOyAjNTYwNwor5ZiIID4gY8OhbzsgIzU2MDgKK+WYiSA+IGppxIE7ICM1NjA5CivlmIogPiDDoWk7ICM1NjBBCivlmIsgPiB4acSBbzsgIzU2MEIKK+WYjCA+IHBpxIFvOyAjNTYwQwor5ZiNID4gbG91OyAjNTYwRAor5ZiOID4gZ8SBOyAjNTYwRQor5ZiPID4gZ8WtOyAjNTYwRgor5ZiQID4geGnEgW87ICM1NjEwCivlmJEgPiBoxas7ICM1NjExCivlmJIgPiBow7lpOyAjNTYxMgor5ZiTID4gZ3VvOyAjNTYxMwor5ZiUID4gxY11OyAjNTYxNAor5ZiVID4geGnEgW47ICM1NjE1CivlmJYgPiB6w6k7ICM1NjE2CivlmJcgPiBjaMOhbmc7ICM1NjE3CivlmJggPiB4xas7ICM1NjE4CivlmJkgPiBww7M7ICM1NjE5CivlmJogPiBkw6k7ICM1NjFBCivlmJsgPiBtYTsgIzU2MUIKK+WYnCA+IG3DoDsgIzU2MUMKK+WYnSA+IGjDujsgIzU2MUQKK+WYniA+IGxlaTsgIzU2MUUKK+WYnyA+IGTFqzsgIzU2MUYKK+WYoCA+IGfEgTsgIzU2MjAKK+WYoSA+IHTEgW5nOyAjNTYyMQor5ZiiID4gecSVOyAjNTYyMgor5ZijID4gYsSTbmc7ICM1NjIzCivlmKQgPiB5xKtuZzsgIzU2MjQKK+WYpiA+IGppw6BvOyAjNTYyNgor5ZinID4gbcSrOyAjNTYyNwor5ZioID4geGnDoG87ICM1NjI4CivlmKkgPiBodcSBOyAjNTYyOQor5ZiqID4gbcSDaTsgIzU2MkEKK+WYqyA+IHLDoW47ICM1NjJCCivlmKwgPiB6xatvOyAjNTYyQwor5ZitID4gcMSTbmc7ICM1NjJECivlmK4gPiBsw6FvOyAjNTYyRQor5ZivID4geGnDoG87ICM1NjJGCivlmLAgPiBqxKs7ICM1NjMwCivlmLEgPiB6aMWtOyAjNTYzMQor5ZiyID4gY2jDoW87ICM1NjMyCivlmLMgPiBrw7lpOyAjNTYzMwor5Zi0ID4gesWtaTsgIzU2MzQKK+WYtSA+IHhpxIFvOyAjNTYzNQor5Zi2ID4gc8SrOyAjNTYzNgor5Zi3ID4gaMOhbzsgIzU2MzcKK+WYuCA+IGbFrTsgIzU2MzgKK+WYuSA+IGxpw6FvOyAjNTYzOQor5Zi6ID4gcWnDoW87ICM1NjNBCivlmLsgPiB4xKs7ICM1NjNCCivlmLwgPiB4w6x1OyAjNTYzQwor5Zi9ID4gdMSBbjsgIzU2M0QKK+WYviA+IHTDoW47ICM1NjNFCivlmL8gPiBtw7I7ICM1NjNGCivlmYAgPiB4w7luOyAjNTY0MAor5ZmBID4gxJU7ICM1NjQxCivlmYIgPiB6xa1uOyAjNTY0Mgor5ZmDID4gZsSBbjsgIzU2NDMKK+WZhCA+IGNoxKs7ICM1NjQ0CivlmYUgPiBoxatpOyAjNTY0NQor5ZmGID4gesSDbjsgIzU2NDYKK+WZhyA+IGNodcOhbmc7ICM1NjQ3CivlmYggPiBjw7k7ICM1NjQ4CivlmYkgPiBkw6BuOyAjNTY0OQor5ZmKID4gecO5OyAjNTY0QQor5ZmLID4gdMWrbjsgIzU2NEIKK+WZjCA+IGNoxJNuZzsgIzU2NEMKK+WZjSA+IGppw6BvOyAjNTY0RAor5ZmOID4gecSTOyAjNTY0RQor5ZmPID4geMSrOyAjNTY0Rgor5ZmQID4gccOsOyAjNTY1MAor5ZmRID4gaMOhbzsgIzU2NTEKK+WZkiA+IGxpw6FuOyAjNTY1Mgor5ZmTID4geMWrOyAjNTY1Mwor5ZmUID4gZMSTbmc7ICM1NjU0CivlmZUgPiBoxatpOyAjNTY1NQor5ZmWID4gecOtbjsgIzU2NTYKK+WZlyA+IHDFqzsgIzU2NTcKK+WZmCA+IGp1xJM7ICM1NjU4CivlmZkgPiBxw61uOyAjNTY1OQor5ZmaID4geMO6bjsgIzU2NUEKK+WZmyA+IG5pw6g7ICM1NjVCCivlmZwgPiBsxas7ICM1NjVDCivlmZ0gPiBzxKs7ICM1NjVECivlmZ4gPiB5xINuOyAjNTY1RQor5ZmfID4gecOsbmc7ICM1NjVGCivlmaAgPiBkxIE7ICM1NjYwCivlmaEgPiBkxIFuOyAjNTY2MQor5ZmiID4gecWtOyAjNTY2Mgor5ZmjID4gemjDsnU7ICM1NjYzCivlmaQgPiBqw6xuOyAjNTY2NAor5ZmlID4gbsOzbmc7ICM1NjY1CivlmaYgPiB5dcSVOyAjNTY2Ngor5ZmnID4gaMO5aTsgIzU2NjcKK+WZqCA+IHHDrDsgIzU2NjgKK+WZqSA+IMOoOyAjNTY2OQor5ZmqID4gesOgbzsgIzU2NkEKK+WZqyA+IHnEqzsgIzU2NkIKK+WZrCA+IHNow6w7ICM1NjZDCivlma0gPiBqacOgbzsgIzU2NkQKK+WZriA+IHl1xIFuOyAjNTY2RQor5ZmvID4gw6BpOyAjNTY2Rgor5ZmwID4gecWNbmc7ICM1NjcwCivlmbEgPiBqdcOpOyAjNTY3MQor5ZmyID4ga3XDoGk7ICM1NjcyCivlmbMgPiB5xa07ICM1NjczCivlmbQgPiBwxJNuOyAjNTY3NAor5Zm1ID4gZMOgbzsgIzU2NzUKK+WZtiA+IGfDqTsgIzU2NzYKK+WZtyA+IHjEq247ICM1Njc3CivlmbggPiBkxatuOyAjNTY3OAor5Zm5ID4gZMSBbmc7ICM1Njc5CivlmbsgPiBzYWk7ICM1NjdCCivlmbwgPiBwxKs7ICM1NjdDCivlmb0gPiBwxK07ICM1NjdECivlmb4gPiB5xKtuOyAjNTY3RQor5Zm/ID4gesWtaTsgIzU2N0YKK+WagCA+IG7DrW5nOyAjNTY4MAor5ZqBID4gZMOtOyAjNTY4MQor5ZqCID4gbMOgbjsgIzU2ODIKK+WagyA+IHTEgTsgIzU2ODMKK+WahCA+IGjDuW87ICM1Njg0CivlmoUgPiByw7o7ICM1Njg1CivlmoYgPiBoxIFvOyAjNTY4Ngor5ZqHID4geGnDoDsgIzU2ODcKK+WaiCA+IHnDoDsgIzU2ODgKK+WaiSA+IGTFq287ICM1Njg5CivlmoogPiB4w6w7ICM1NjhBCivlmosgPiBjaMOzdTsgIzU2OEIKK+WajCA+IGrDrDsgIzU2OEMKK+WajSA+IGrDrG47ICM1NjhECivlmo4gPiBow6FvOyAjNTY4RQor5ZqPID4gdMOsOyAjNTY4Rgor5ZqQID4gY2jDoW5nOyAjNTY5MAor5ZqTID4gY8SBOyAjNTY5Mwor5ZqUID4gdMOsOyAjNTY5NAor5ZqVID4gbMWrOyAjNTY5NQor5ZqWID4gaMO5aTsgIzU2OTYKK+WalyA+IGLDszsgIzU2OTcKK+WamCA+IHnFjXU7ICM1Njk4CivlmpkgPiBuacOoOyAjNTY5OQor5ZqaID4gecOtbjsgIzU2OUEKK+WamyA+IGjDuTsgIzU2OUIKK+WanCA+IG3DsjsgIzU2OUMKK+WanSA+IGh1xIFuZzsgIzU2OUQKK+WaniA+IHpow6k7ICM1NjlFCivlmp8gPiBsw607ICM1NjlGCivlmqAgPiBsw611OyAjNTZBMAor5ZqiID4gbsOhbmc7ICM1NkEyCivlmqMgPiB4acSBbzsgIzU2QTMKK+WapCA+IG3DszsgIzU2QTQKK+WapSA+IHnDoG47ICM1NkE1CivlmqYgPiBsw6w7ICM1NkE2CivlmqcgPiBsw7o7ICM1NkE3CivlmqggPiBsw7NuZzsgIzU2QTgKK+WaqSA+IGbDujsgIzU2QTkKK+WaqiA+IGTDoG47ICM1NkFBCivlmqsgPiBjaMOobjsgIzU2QUIKK+WarCA+IHDDrW47ICM1NkFDCivlmq0gPiBwxK07ICM1NkFECivlmq4gPiB4acOgbmc7ICM1NkFFCivlmq8gPiBow7lvOyAjNTZBRgor5ZqwID4gbcOzOyAjNTZCMAor5ZqxID4geMOsOyAjNTZCMQor5ZqyID4gZMWtbzsgIzU2QjIKK+WasyA+IGvDuTsgIzU2QjMKK+WatCA+IHnDoW47ICM1NkI0CivlmrUgPiBjaMOhbjsgIzU2QjUKK+WatiA+IHnEq25nOyAjNTZCNgor5Zq3ID4gcsSDbmc7ICM1NkI3CivlmrggPiBkacSDbjsgIzU2QjgKK+WauSA+IGzEgTsgIzU2QjkKK+WauiA+IHTDoDsgIzU2QkEKK+WauyA+IHhpxIFvOyAjNTZCQgor5Zq8ID4gamnDoW87ICM1NkJDCivlmr0gPiBjaMO5bzsgIzU2QkQKK+WaviA+IGh1xIFuOyAjNTZCRQor5Zq/ID4gaMO5bzsgIzU2QkYKK+WbgCA+IHpodcOgbjsgIzU2QzAKK+WbgSA+IG5pw6g7ICM1NkMxCivlm4IgPiB4acSBbzsgIzU2QzIKK+WbgyA+IGPDoDsgIzU2QzMKK+WbhCA+IGzDrTsgIzU2QzQKK+WbhSA+IGNoxINuOyAjNTZDNQor5ZuGID4gY2jDoGk7ICM1NkM2Civlm4cgPiBsw6w7ICM1NkM3Civlm4ggPiB5w6w7ICM1NkM4Civlm4kgPiBsxatvOyAjNTZDOQor5ZuKID4gbsOhbmc7ICM1NkNBCivlm4sgPiB6w6BuOyAjNTZDQgor5ZuMID4gc8WrOyAjNTZDQwor5ZuNID4geMStOyAjNTZDRAor5ZuPID4gamnEgW47ICM1NkNGCivlm5AgPiB6w6E7ICM1NkQwCivlm5EgPiB6aMWtOyAjNTZEMQor5ZuSID4gbMOhbjsgIzU2RDIKK+WbkyA+IG5pw6g7ICM1NkQzCivlm5QgPiBuxIFuZzsgIzU2RDQKK+WblyA+IHfDqWk7ICM1NkQ3Civlm5ggPiBow7ppOyAjNTZEOAor5ZuZID4gecSrbjsgIzU2RDkKK+WbmiA+IHHDrXU7ICM1NkRBCivlm5sgPiBzw6w7ICM1NkRCCivlm5wgPiBuw61uOyAjNTZEQwor5ZudID4gamnEg247ICM1NkRECivlm54gPiBow7ppOyAjNTZERQor5ZufID4geMOsbjsgIzU2REYKK+WboCA+IHnEq247ICM1NkUwCivlm6EgPiBuxIFuOyAjNTZFMQor5ZuiID4gdHXDoW47ICM1NkUyCivlm6MgPiB0dcOhbjsgIzU2RTMKK+WbpCA+IGTDuW47ICM1NkU0Civlm6UgPiBrw6BuZzsgIzU2RTUKK+WbpiA+IHl1xIFuOyAjNTZFNgor5ZunID4gasStb25nOyAjNTZFNwor5ZuoID4gcGnEgW47ICM1NkU4Civlm6kgPiB5w7luOyAjNTZFOQor5ZuqID4gY8WNbmc7ICM1NkVBCivlm6sgPiBow7o7ICM1NkVCCivlm6wgPiBow7ppOyAjNTZFQwor5ZutID4geXXDoW47ICM1NkVECivlm64gPiB5w7N1OyAjNTZFRQor5ZuvID4gZ8O6bzsgIzU2RUYKK+WbsCA+IGvDuW47ICM1NkYwCivlm7EgPiBjxY1uZzsgIzU2RjEKK+WbsiA+IHfDqWk7ICM1NkYyCivlm7MgPiB0w7o7ICM1NkYzCivlm7QgPiB3w6lpOyAjNTZGNAor5Zu1ID4gbMO6bjsgIzU2RjUKK+WbtiA+IGfDum87ICM1NkY2Civlm7cgPiBxxatuOyAjNTZGNwor5Zu4ID4gcsOsOyAjNTZGOAor5Zu5ID4gbMOtbmc7ICM1NkY5Civlm7ogPiBnw7k7ICM1NkZBCivlm7sgPiBnw7pvOyAjNTZGQgor5Zu8ID4gdMSBaTsgIzU2RkMKK+WbvSA+IGfDum87ICM1NkZECivlm74gPiB0w7o7ICM1NkZFCivlm78gPiB5w7J1OyAjNTZGRgor5ZyAID4gZ8O6bzsgIzU3MDAKK+WcgSA+IHnDrW47ICM1NzAxCivlnIIgPiBow7luOyAjNTcwMgor5ZyDID4gcMWtOyAjNTcwMwor5ZyEID4gecWtOyAjNTcwNAor5ZyFID4gaMOhbjsgIzU3MDUKK+WchiA+IHl1w6FuOyAjNTcwNgor5ZyHID4gbMO6bjsgIzU3MDcKK+WciCA+IHF1xIFuOyAjNTcwOAor5ZyJID4gecWtOyAjNTcwOQor5ZyKID4gccSrbmc7ICM1NzBBCivlnIsgPiBnw7pvOyAjNTcwQgor5ZyMID4gY2h1w6FuOyAjNTcwQwor5ZyNID4gd8OpaTsgIzU3MEQKK+WcjiA+IHl1w6FuOyAjNTcwRQor5ZyPID4gcXXEgW47ICM1NzBGCivlnJAgPiBrxas7ICM1NzEwCivlnJEgPiBmw7k7ICM1NzExCivlnJIgPiB5dcOhbjsgIzU3MTIKK+WckyA+IHl1w6FuOyAjNTcxMwor5ZyUID4gw6g7ICM1NzE0CivlnJUgPiB0w7onICdzaMWrJyAnZ3XEg247ICM1NzE1CivlnJYgPiB0w7o7ICM1NzE2CivlnJcgPiB0w7o7ICM1NzE3CivlnJggPiB0dcOhbjsgIzU3MTgKK+WcmSA+IGzHnGU7ICM1NzE5CivlnJogPiBow7lpOyAjNTcxQQor5ZybID4gecOsOyAjNTcxQgor5ZycID4geXXDoW47ICM1NzFDCivlnJ0gPiBsdcOhbjsgIzU3MUQKK+WcniA+IGx1w6FuOyAjNTcxRQor5ZyfID4gdMWtOyAjNTcxRgor5ZygID4gecOgOyAjNTcyMAor5ZyhID4gdMWtOyAjNTcyMQor5ZyiID4gdMSrbmc7ICM1NzIyCivlnKMgPiBzaMOobmc7ICM1NzIzCivlnKQgPiBwxa07ICM1NzI0CivlnKUgPiBsw7k7ICM1NzI1CivlnKcgPiB5xIE7ICM1NzI3CivlnKggPiB6w6BpOyAjNTcyOAor5ZypID4gd8OpaTsgIzU3MjkKK+WcqiA+IGfEkzsgIzU3MkEKK+WcqyA+IHnDuTsgIzU3MkIKK+WcrCA+IHfFqzsgIzU3MkMKK+WcrSA+IGfFq2k7ICM1NzJECivlnK4gPiBwxK07ICM1NzJFCivlnK8gPiB5w607ICM1NzJGCivlnLAgPiBkw6w7ICM1NzMwCivlnLEgPiBxacSBbjsgIzU3MzEKK+WcsiA+IHFpxIFuOyAjNTczMgor5ZyzID4gemjDqG47ICM1NzMzCivlnLQgPiB6aMO6bzsgIzU3MzQKK+WctSA+IGTDoG5nOyAjNTczNQor5Zy2ID4gcWnDoDsgIzU3MzYKK+WcuSA+IGt1w6BuZzsgIzU3MzkKK+WcuiA+IGNow6FuZzsgIzU3M0EKK+WcuyA+IHHDrTsgIzU3M0IKK+WcvCA+IG5pw6g7ICM1NzNDCivlnL0gPiBtw7I7ICM1NzNECivlnL4gPiBqw607ICM1NzNFCivlnL8gPiBqacOhOyAjNTczRgor5Z2AID4gemjErTsgIzU3NDAKK+WdgSA+IHpoxK07ICM1NzQxCivlnYIgPiBixINuOyAjNTc0Mgor5Z2DID4geMWrbjsgIzU3NDMKK+WdhCA+IHTDs3U7ICM1NzQ0CivlnYUgPiBxxK1uOyAjNTc0NQor5Z2GID4gZsOpbjsgIzU3NDYKK+WdhyA+IGrFq247ICM1NzQ3CivlnYggPiBrxJNuZzsgIzU3NDgKK+WdiSA+IHTDum47ICM1NzQ5CivlnYogPiBmxIFuZzsgIzU3NEEKK+WdiyA+IGbDqG47ICM1NzRCCivlnYwgPiBiw6huOyAjNTc0Qwor5Z2NID4gdMSBbjsgIzU3NEQKK+WdjiA+IGvEg247ICM1NzRFCivlnY8gPiBwxKs7ICM1NzRGCivlnZAgPiB6w7lvOyAjNTc1MAor5Z2RID4ga8STbmc7ICM1NzUxCivlnZIgPiBiw6w7ICM1NzUyCivlnZMgPiB4w61uZzsgIzU3NTMKK+WdlCA+IGTDrDsgIzU3NTQKK+WdlSA+IGrEq25nOyAjNTc1NQor5Z2WID4gasOsOyAjNTc1Ngor5Z2XID4ga3XDoGk7ICM1NzU3CivlnZggPiBkxK07ICM1NzU4CivlnZkgPiBqxKtuZzsgIzU3NTkKK+WdmiA+IGppxIFuOyAjNTc1QQor5Z2bID4gdMOhbjsgIzU3NUIKK+WdnCA+IGzDrDsgIzU3NUMKK+WdnSA+IGLDoDsgIzU3NUQKK+WdniA+IHfDuTsgIzU3NUUKK+WdnyA+IGbDqW47ICM1NzVGCivlnaAgPiB6aMO5aTsgIzU3NjAKK+WdoSA+IHDFjTsgIzU3NjEKK+WdoiA+IHDEg247ICM1NzYyCivlnaMgPiB0xIFuZzsgIzU3NjMKK+WdpCA+IGvFq247ICM1NzY0CivlnaUgPiBxxas7ICM1NzY1CivlnaYgPiB0xINuOyAjNTc2Ngor5Z2nID4gemjEqzsgIzU3NjcKK+WdqCA+IHTDum87ICM1NzY4CivlnakgPiBnxIFuOyAjNTc2OQor5Z2qID4gcMOtbmc7ICM1NzZBCivlnasgPiBkacOgbjsgIzU3NkIKK+WdrCA+IGd1w6A7ICM1NzZDCivlna0gPiBuw607ICM1NzZECivlna4gPiB0w6FpOyAjNTc2RQor5Z2vID4gcMSrOyAjNTc2Rgor5Z2wID4gasSrb25nOyAjNTc3MAor5Z2xID4gecSDbmc7ICM1NzcxCivlnbIgPiBmw7M7ICM1NzcyCivlnbMgPiDDoG87ICM1NzczCivlnbQgPiBsw6x1OyAjNTc3NAor5Z21ID4gccSrdTsgIzU3NzUKK+WdtiA+IG3DuTsgIzU3NzYKK+WdtyA+IGvElTsgIzU3NzcKK+WduCA+IGfDsnU7ICM1Nzc4CivlnbkgPiB4dcOoOyAjNTc3OQor5Z26ID4gYsOhOyAjNTc3QQor5Z27ID4gY2jDrTsgIzU3N0IKK+WdvCA+IGNow6g7ICM1NzdDCivlnb0gPiBsw61uZzsgIzU3N0QKK+WdviA+IHpow7k7ICM1NzdFCivlnb8gPiBmw7k7ICM1NzdGCivlnoAgPiBoxas7ICM1NzgwCivlnoEgPiB6aMOsOyAjNTc4MQor5Z6CID4gY2jDumk7ICM1NzgyCivlnoMgPiBsxIE7ICM1NzgzCivlnoQgPiBsxY9uZzsgIzU3ODQKK+WehSA+IGzFj25nOyAjNTc4NQor5Z6GID4gbMO6OyAjNTc4Ngor5Z6HID4gw6BvOyAjNTc4Nwor5Z6JID4gcMOhbzsgIzU3ODkKK+WeiyA+IHjDrW5nOyAjNTc4Qgor5Z6MID4gZMOybmc7ICM1NzhDCivlno0gPiBqw6w7ICM1NzhECivlno4gPiBrw6g7ICM1NzhFCivlno8gPiBsw7k7ICM1NzhGCivlnpAgPiBjw607ICM1NzkwCivlnpEgPiBjaMStOyAjNTc5MQor5Z6SID4gbMSVaTsgIzU3OTIKK+WekyA+IGfEgWk7ICM1NzkzCivlnpQgPiB5xKtuOyAjNTc5NAor5Z6VID4gaMOydTsgIzU3OTUKK+WeliA+IGTFq2k7ICM1Nzk2CivlnpcgPiB6aMOgbzsgIzU3OTcKK+WemCA+IGbDujsgIzU3OTgKK+WemSA+IGd1xIFuZzsgIzU3OTkKK+WemiA+IHnDoW87ICM1NzlBCivlnpsgPiBkxa1vOyAjNTc5Qgor5Z6cID4gZMWtbzsgIzU3OUMKK+WenSA+IGfFrWk7ICM1NzlECivlnp4gPiBjaMOhOyAjNTc5RQor5Z6fID4gecOhbmc7ICM1NzlGCivlnqAgPiB5w61uOyAjNTdBMAor5Z6hID4gZsOhOyAjNTdBMQor5Z6iID4gZ8OydTsgIzU3QTIKK+WeoyA+IHl1w6FuOyAjNTdBMwor5Z6kID4gZGnDqTsgIzU3QTQKK+WepSA+IHhpw6k7ICM1N0E1CivlnqYgPiBrxJVuOyAjNTdBNgor5Z6nID4gasSrb25nOyAjNTdBNwor5Z6oID4gc2jFj3U7ICM1N0E4CivlnqkgPiDDqDsgIzU3QTkKK+WeqyA+IGRpw6BuOyAjNTdBQgor5Z6sID4gaMOzbmc7ICM1N0FDCivlnq0gPiB3w7k7ICM1N0FECivlnq4gPiBrdcSDOyAjNTdBRQor5Z6xID4gZMOgbmc7ICM1N0IxCivlnrIgPiBrxINpOyAjNTdCMgor5Z60ID4gbsSDbzsgIzU3QjQKK+WetSA+IMSDbjsgIzU3QjUKK+WetiA+IHjEq25nOyAjNTdCNgor5Z63ID4geGnDoG47ICM1N0I3CivlnrggPiBodcOgbjsgIzU3QjgKK+WeuSA+IGLEgW5nOyAjNTdCOQor5Z66ID4gcMSTaTsgIzU3QkEKK+WeuyA+IGLDoDsgIzU3QkIKK+WevCA+IHnDrDsgIzU3QkMKK+WevSA+IHnDrG47ICM1N0JECivlnr4gPiBow6BuOyAjNTdCRQor5Z6/ID4geMO5OyAjNTdCRgor5Z+AID4gY2jDumk7ICM1N0MwCivln4EgPiBjw6luOyAjNTdDMQor5Z+CID4gZ8SVbmc7ICM1N0MyCivln4MgPiDEgWk7ICM1N0MzCivln4QgPiBww6luZzsgIzU3QzQKK+WfhSA+IGbDoW5nOyAjNTdDNQor5Z+GID4gcXXDqDsgIzU3QzYKK+WfhyA+IHnFj25nOyAjNTdDNwor5Z+IID4geMO5bjsgIzU3QzgKK+WfiSA+IGppw6E7ICM1N0M5Civln4ogPiBkw6w7ICM1N0NBCivln4sgPiBtw6FpOyAjNTdDQgor5Z+MID4gbMOgbmc7ICM1N0NDCivln40gPiB4dcOgbjsgIzU3Q0QKK+WfjiA+IGNow6luZzsgIzU3Q0UKK+WfjyA+IHnDoW47ICM1N0NGCivln5AgPiBqxKtuOyAjNTdEMAor5Z+RID4gemjDqTsgIzU3RDEKK+WfkiA+IGzDqGk7ICM1N0QyCivln5MgPiBsacOoOyAjNTdEMwor5Z+UID4gYsO5OyAjNTdENAor5Z+VID4gY2jDqW5nOyAjNTdENQor5Z+XID4gYsO5OyAjNTdENwor5Z+YID4gc2jDrTsgIzU3RDgKK+WfmSA+IHjFq247ICM1N0Q5Civln5ogPiBnxatvOyAjNTdEQQor5Z+bID4gasSrb25nOyAjNTdEQgor5Z+cID4gecSVOyAjNTdEQwor5Z+dID4gbmnDoG47ICM1N0RECivln54gPiBkxK07ICM1N0RFCivln58gPiB5w7k7ICM1N0RGCivln6AgPiBiw7k7ICM1N0UwCivln6EgPiB5w6A7ICM1N0UxCivln6IgPiBqdcSDbjsgIzU3RTIKK+WfoyA+IHPDuWk7ICM1N0UzCivln6QgPiBww607ICM1N0U0Civln6UgPiBjaMSTbmc7ICM1N0U1Civln6YgPiB3xINuOyAjNTdFNgor5Z+nID4gasO5OyAjNTdFNwor5Z+oID4gbMWtbjsgIzU3RTgKK+WfqSA+IHpoxJNuZzsgIzU3RTkKK+WfqiA+IGvFjW5nOyAjNTdFQQor5Z+rID4gY2jFj25nOyAjNTdFQgor5Z+sID4gZMWNbmc7ICM1N0VDCivln60gPiBkw6BpOyAjNTdFRAor5Z+uID4gdMOgbjsgIzU3RUUKK+WfryA+IMSDbjsgIzU3RUYKK+WfsCA+IGPDoGk7ICM1N0YwCivln7EgPiBzaMO6OyAjNTdGMQor5Z+yID4gYsSVbmc7ICM1N0YyCivln7MgPiBrxINuOyAjNTdGMwor5Z+0ID4gemjDrTsgIzU3RjQKK+WftSA+IGTFrW87ICM1N0Y1Civln7YgPiB5w6w7ICM1N0Y2Civln7cgPiB6aMOtOyAjNTdGNwor5Z+4ID4gecOsOyAjNTdGOAor5Z+5ID4gcMOpaTsgIzU3RjkKK+WfuiA+IGrEqzsgIzU3RkEKK+WfuyA+IHpoxa1uOyAjNTdGQgor5Z+8ID4gccOtOyAjNTdGQwor5Z+9ID4gc8OgbzsgIzU3RkQKK+WfviA+IGrDuTsgIzU3RkUKK+WfvyA+IG7DrTsgIzU3RkYKK+WggCA+IGvFqzsgIzU4MDAKK+WggSA+IGvDqDsgIzU4MDEKK+WggiA+IHTDoW5nOyAjNTgwMgor5aCDID4ga8WrbjsgIzU4MDMKK+WghCA+IG7DrDsgIzU4MDQKK+WghSA+IGppxIFuOyAjNTgwNQor5aCGID4gZMWraTsgIzU4MDYKK+WghyA+IGrErW47ICM1ODA3CivloIggPiBnxIFuZzsgIzU4MDgKK+WgiSA+IHnDuTsgIzU4MDkKK+WgiiA+IMOoOyAjNTgwQQor5aCLID4gcMOpbmc7ICM1ODBCCivloIwgPiBnw7k7ICM1ODBDCivloI0gPiB0w7k7ICM1ODBECivloI4gPiBsw6huZzsgIzU4MEUKK+WgkCA+IHnDoTsgIzU4MTAKK+WgkSA+IHFpw6BuOyAjNTgxMQor5aCTID4gw6BuOyAjNTgxMwor5aCVID4gZMO5bzsgIzU4MTUKK+WgliA+IG7Eg287ICM1ODE2CivloJcgPiB0xas7ICM1ODE3CivloJggPiBjaMOpbmc7ICM1ODE4CivloJkgPiB5xKtuOyAjNTgxOQor5aCaID4gaMO6bjsgIzU4MUEKK+WgmyA+IGLDrDsgIzU4MUIKK+WgnCA+IGxpw6BuOyAjNTgxQwor5aCdID4gZ8WrbzsgIzU4MUQKK+WgniA+IGRpw6k7ICM1ODFFCivloJ8gPiB6aHXDoG47ICM1ODFGCivloKAgPiBow7J1OyAjNTgyMAor5aChID4gYsSDbzsgIzU4MjEKK+WgoiA+IGLEg287ICM1ODIyCivloKMgPiB5w7o7ICM1ODIzCivloKQgPiBkxKs7ICM1ODI0CivloKUgPiBtw6FvOyAjNTgyNQor5aCmID4gamnEkzsgIzU4MjYKK+WgpyA+IHJ1w6FuOyAjNTgyNwor5aCoID4gw6g7ICM1ODI4CivloKkgPiBnw6huZzsgIzU4MjkKK+WgqiA+IGvEgW47ICM1ODJBCivloKsgPiB6xY1uZzsgIzU4MkIKK+WgrCA+IHnDujsgIzU4MkMKK+WgrSA+IGh1w6FuZzsgIzU4MkQKK+WgriA+IMOoOyAjNTgyRQor5aCvID4gecOhbzsgIzU4MkYKK+WgsCA+IHnDoG47ICM1ODMwCivloLEgPiBiw6BvOyAjNTgzMQor5aCyID4gasOtOyAjNTgzMgor5aCzID4gbcOpaTsgIzU4MzMKK+WgtCA+IGNow6FuZzsgIzU4MzQKK+WgtSA+IGTFrTsgIzU4MzUKK+WgtiA+IHTDum87ICM1ODM2CivloLcgPiB5w6xuOyAjNTgzNwor5aC4ID4gZsOpbmc7ICM1ODM4CivloLkgPiB6aMOybmc7ICM1ODM5CivloLogPiBqacOoOyAjNTgzQQor5aC7ID4gemjEk247ICM1ODNCCivloLwgPiBmxJNuZzsgIzU4M0MKK+WgvSA+IGfEgW5nOyAjNTgzRAor5aC+ID4gY2h1xINuOyAjNTgzRQor5aC/ID4gamnEg247ICM1ODNGCivloYIgPiB4acOgbmc7ICM1ODQyCivloYMgPiBodcSBbmc7ICM1ODQzCivloYQgPiBsw6luZzsgIzU4NDQKK+WhhSA+IGR1w6BuOyAjNTg0NQor5aGHID4geHXEgW47ICM1ODQ3CivloYggPiBqw6w7ICM1ODQ4CivloYkgPiBqw607ICM1ODQ5CivloYogPiBrdcOgaTsgIzU4NEEKK+WhiyA+IHnDrW5nOyAjNTg0Qgor5aGMID4gdMSBOyAjNTg0Qwor5aGNID4gY2jDqW5nOyAjNTg0RAor5aGOID4gecWPbmc7ICM1ODRFCivloY8gPiBrxINpOyAjNTg0Rgor5aGQID4gc8O5OyAjNTg1MAor5aGRID4gc8O5OyAjNTg1MQor5aGSID4gc2jDrTsgIzU4NTIKK+WhkyA+IG3DrDsgIzU4NTMKK+WhlCA+IHTEgzsgIzU4NTQKK+WhlSA+IHfElW5nOyAjNTg1NQor5aGWID4gY2jDqW5nOyAjNTg1Ngor5aGXID4gdMO6OyAjNTg1Nwor5aGYID4gdMOhbmc7ICM1ODU4CivloZkgPiBxdcOoOyAjNTg1OQor5aGaID4gemjFj25nOyAjNTg1QQor5aGbID4gbMOsOyAjNTg1Qgor5aGcID4gcMOpbmc7ICM1ODVDCivloZ0gPiBiw6BuZzsgIzU4NUQKK+WhniA+IHPEgWk7ICM1ODVFCivloZ8gPiB6w6BuZzsgIzU4NUYKK+WhoCA+IGTFq2k7ICM1ODYwCivloaEgPiB0acOhbjsgIzU4NjEKK+WhoiA+IHfDuTsgIzU4NjIKK+WhoyA+IGNoxJVuZzsgIzU4NjMKK+WhpCA+IHjFq247ICM1ODY0CivloaUgPiBnw6k7ICM1ODY1CivloaYgPiB6aMOobjsgIzU4NjYKK+WhpyA+IMOgaTsgIzU4NjcKK+WhqCA+IGfFjW5nOyAjNTg2OAor5aGpID4gecOhbjsgIzU4NjkKK+WhqiA+IGvEg247ICM1ODZBCivloasgPiB0acOhbjsgIzU4NkIKK+WhrCA+IHl1w6FuOyAjNTg2Qwor5aGtID4gd8STbjsgIzU4NkQKK+WhriA+IHhpw6g7ICM1ODZFCivloa8gPiBsw6x1OyAjNTg2Rgor5aGxID4gbMSDbmc7ICM1ODcxCivlobIgPiBjaMOhbmc7ICM1ODcyCivlobMgPiBww6luZzsgIzU4NzMKK+WhtCA+IGLDqG5nOyAjNTg3NAor5aG1ID4gY2jDqW47ICM1ODc1CivlobYgPiBjw7k7ICM1ODc2CivlobcgPiBsxa07ICM1ODc3CivlobggPiDFj3U7ICM1ODc4CivlobkgPiBxacOgbjsgIzU4NzkKK+WhuiA+IG3DqWk7ICM1ODdBCivlobsgPiBtw7I7ICM1ODdCCivlobwgPiB6aHXEgW47ICM1ODdDCivlob0gPiBzaHXEg25nOyAjNTg3RAor5aG+ID4gc2jDujsgIzU4N0UKK+WhvyA+IGzFj3U7ICM1ODdGCivlooAgPiBjaMOtOyAjNTg4MAor5aKBID4gbcOgbjsgIzU4ODEKK+WigiA+IGJpxIFvOyAjNTg4Mgor5aKDID4gasOsbmc7ICM1ODgzCivlooQgPiBxxKs7ICM1ODg0CivlooUgPiBzaMO5OyAjNTg4NQor5aKGID4gZMOsOyAjNTg4Ngor5aKHID4gemjEgW5nOyAjNTg4Nwor5aKIID4ga8OgbjsgIzU4ODgKK+WiiSA+IHnFjW5nOyAjNTg4OQor5aKKID4gZGnDoG47ICM1ODhBCivloosgPiBjaMSVbjsgIzU4OEIKK+WijCA+IHpoxKs7ICM1ODhDCivloo0gPiB4w6w7ICM1ODhECivloo4gPiBnxatvOyAjNTg4RQor5aKPID4gcWnEg25nOyAjNTg4Rgor5aKQID4gasOsbjsgIzU4OTAKK+WikSA+IGTEqzsgIzU4OTEKK+WikiA+IHNoxIFuZzsgIzU4OTIKK+WikyA+IG3DuTsgIzU4OTMKK+WilCA+IGPFq2k7ICM1ODk0CivlopUgPiB5w6BuOyAjNTg5NQor5aKWID4gdMSDOyAjNTg5Ngor5aKXID4gesSTbmc7ICM1ODk3CivlopggPiBxw607ICM1ODk4CivlopkgPiBxacOhbmc7ICM1ODk5CivlopogPiBsacOhbmc7ICM1ODlBCivlopwgPiB6aMO5aTsgIzU4OUMKK+WinSA+IHFpxIFvOyAjNTg5RAor5aKeID4gesSTbmc7ICM1ODlFCivlop8gPiB4xas7ICM1ODlGCivloqAgPiBzaMOgbjsgIzU4QTAKK+WioSA+IHNow6BuOyAjNThBMQor5aKiID4gYsOhOyAjNThBMgor5aKjID4gcMWrOyAjNThBMwor5aKkID4ga3XDoGk7ICM1OEE0CivloqUgPiBkxY9uZzsgIzU4QTUKK+WipiA+IGbDoW47ICM1OEE2CivloqcgPiBxdcOoOyAjNThBNwor5aKoID4gbcOyOyAjNThBOAor5aKpID4gZMWrbjsgIzU4QTkKK+WiqiA+IGTFq247ICM1OEFBCivloqsgPiBkxatuOyAjNThBQgor5aKsID4gZMOsOyAjNThBQwor5aKtID4gc2jDqG5nOyAjNThBRAor5aKuID4gZMO5bzsgIzU4QUUKK+WiryA+IGTDuW87ICM1OEFGCivlorAgPiB0w6FuOyAjNThCMAor5aKxID4gZMOobmc7ICM1OEIxCivlorIgPiB3xa07ICM1OEIyCivlorMgPiBmw6luOyAjNThCMwor5aK0ID4gaHXDoW5nOyAjNThCNAor5aK1ID4gdMOhbjsgIzU4QjUKK+WitiA+IGTEgTsgIzU4QjYKK+WityA+IHnDqDsgIzU4QjcKK+WiuiA+IHnDuTsgIzU4QkEKK+WiuyA+IHFpw6FuZzsgIzU4QkIKK+WivCA+IGrEqzsgIzU4QkMKK+WivSA+IHFpxIFvOyAjNThCRAor5aK+ID4ga8SVbjsgIzU4QkUKK+WivyA+IHnDrDsgIzU4QkYKK+WjgCA+IHDDrTsgIzU4QzAKK+WjgSA+IGLDrDsgIzU4QzEKK+WjgiA+IGRpw6BuOyAjNThDMgor5aODID4gamnEgW5nOyAjNThDMwor5aOEID4gecSVOyAjNThDNAor5aOFID4gecWNbmc7ICM1OEM1Civlo4YgPiBiw7M7ICM1OEM2Civlo4cgPiB0w6FuOyAjNThDNwor5aOIID4gbMSDbjsgIzU4QzgKK+WjiSA+IGrDuTsgIzU4QzkKK+WjiiA+IGh1w6BpOyAjNThDQQor5aOLID4gZMOgbmc7ICM1OENCCivlo4wgPiByxINuZzsgIzU4Q0MKK+WjjSA+IHFpw6BuOyAjNThDRAor5aOOID4geMWrbjsgIzU4Q0UKK+WjjyA+IGzDoG47ICM1OENGCivlo5AgPiB4xK07ICM1OEQwCivlo5EgPiBow6g7ICM1OEQxCivlo5IgPiDDoGk7ICM1OEQyCivlo5MgPiB5xIE7ICM1OEQzCivlo5QgPiBkxINvOyAjNThENAor5aOVID4gaMOhbzsgIzU4RDUKK+WjliA+IHJ1w6FuOyAjNThENgor5aOYID4gbMSVaTsgIzU4RDgKK+WjmSA+IGt1w6BuZzsgIzU4RDkKK+WjmiA+IGzDujsgIzU4REEKK+WjmyA+IHnDoW47ICM1OERCCivlo5wgPiB0w6FuOyAjNThEQwor5aOdID4gd8OpaTsgIzU4REQKK+WjniA+IGh1w6BpOyAjNThERQor5aOfID4gbMWPbmc7ICM1OERGCivlo6AgPiBsxY9uZzsgIzU4RTAKK+WjoSA+IHLDuWk7ICM1OEUxCivlo6IgPiBsw6w7ICM1OEUyCivlo6MgPiBsw61uOyAjNThFMwor5aOkID4gcsSDbmc7ICM1OEU0Civlo6YgPiB4xatuOyAjNThFNgor5aOnID4gecOhbjsgIzU4RTcKK+WjqCA+IGzDqWk7ICM1OEU4Civlo6kgPiBiw6A7ICM1OEU5Civlo6sgPiBzaMOsOyAjNThFQgor5aOsID4gcsOpbjsgIzU4RUMKK+WjriA+IHpodcOgbmc7ICM1OEVFCivlo68gPiB6aHXDoG5nOyAjNThFRgor5aOwID4gc2jEk25nOyAjNThGMAor5aOxID4gecSrOyAjNThGMQor5aOyID4gbcOgaTsgIzU4RjIKK+WjsyA+IGvDqTsgIzU4RjMKK+WjtCA+IHpoxa07ICM1OEY0Civlo7UgPiB6aHXDoG5nOyAjNThGNQor5aO2ID4gaMO6OyAjNThGNgor5aO3ID4gaMO6OyAjNThGNwor5aO4ID4ga8WtbjsgIzU4RjgKK+WjuSA+IHnEqzsgIzU4RjkKK+WjuiA+IGjDujsgIzU4RkEKK+WjuyA+IHjDuTsgIzU4RkIKK+WjvCA+IGvFrW47ICM1OEZDCivlo70gPiBzaMOydTsgIzU4RkQKK+WjviA+IG3Eg25nOyAjNThGRQor5aO/ID4gesWtbjsgIzU4RkYKK+WkgCA+IHNow7J1OyAjNTkwMAor5aSBID4gecSrOyAjNTkwMQor5aSCID4gemjErTsgIzU5MDIKK+WkgyA+IGfFqzsgIzU5MDMKK+WkhCA+IGNow7k7ICM1OTA0CivlpIUgPiBqacOgbmc7ICM1OTA1CivlpIYgPiBmxJNuZzsgIzU5MDYKK+WkhyA+IGLDqGk7ICM1OTA3CivlpIkgPiBiacOgbjsgIzU5MDkKK+WkiiA+IHPFq2k7ICM1OTBBCivlpIsgPiBxxatuOyAjNTkwQgor5aSMID4gbMOtbmc7ICM1OTBDCivlpI0gPiBmw7k7ICM1OTBECivlpI4gPiB6w7lvOyAjNTkwRQor5aSPID4geGnDoDsgIzU5MEYKK+WkkCA+IHjDrG9uZzsgIzU5MTAKK+WkkiA+IG7DoW87ICM1OTEyCivlpJMgPiB4acOgOyAjNTkxMwor5aSUID4ga8O6aTsgIzU5MTQKK+WklSA+IHjEqzsgIzU5MTUKK+WkliA+IHfDoGk7ICM1OTE2CivlpJcgPiB5dcOgbjsgIzU5MTcKK+WkmCA+IG3Eg287ICM1OTE4CivlpJkgPiBzw7k7ICM1OTE5CivlpJogPiBkxatvOyAjNTkxQQor5aSbID4gZMWrbzsgIzU5MUIKK+WknCA+IHnDqDsgIzU5MUMKK+WknSA+IHHDrW5nOyAjNTkxRAor5aSfID4gZ8OydTsgIzU5MUYKK+WkoCA+IGfDsnU7ICM1OTIwCivlpKEgPiBxw6w7ICM1OTIxCivlpKIgPiBtw6huZzsgIzU5MjIKK+WkoyA+IG3DqG5nOyAjNTkyMwor5aSkID4gecOtbjsgIzU5MjQKK+WkpSA+IGjFrW87ICM1OTI1CivlpKYgPiBjaMOobjsgIzU5MjYKK+WkpyA+IGTDoDsgIzU5MjcKK+WkqCA+IHrDqDsgIzU5MjgKK+WkqSA+IHRpxIFuOyAjNTkyOQor5aSqID4gdMOgaTsgIzU5MkEKK+WkqyA+IGbFqzsgIzU5MkIKK+WkrCA+IGd1w6BpOyAjNTkyQwor5aStID4gecSDbzsgIzU5MkQKK+WkriA+IHnEgW5nOyAjNTkyRQor5aSvID4gaMSBbmc7ICM1OTJGCivlpLAgPiBnxINvOyAjNTkzMAor5aSxID4gc2jEqzsgIzU5MzEKK+WksiA+IGLElW47ICM1OTMyCivlpLMgPiB0w6BpOyAjNTkzMwor5aS0ID4gdMOzdTsgIzU5MzQKK+WktSA+IHnEg247ICM1OTM1CivlpLYgPiBixK07ICM1OTM2CivlpLcgPiB5w607ICM1OTM3CivlpLggPiBrdcSBOyAjNTkzOAor5aS5ID4gamnEgTsgIzU5MzkKK+WkuiA+IGTDum87ICM1OTNBCivlpLwgPiBrdcSDbmc7ICM1OTNDCivlpL0gPiB5w7luOyAjNTkzRAor5aS+ID4gamnEgTsgIzU5M0UKK+WkvyA+IHDEgTsgIzU5M0YKK+WlgCA+IMSTbjsgIzU5NDAKK+WlgSA+IGxpw6FuOyAjNTk0MQor5aWCID4gaHXDoG47ICM1OTQyCivlpYMgPiBkw6w7ICM1OTQzCivlpYQgPiB5xINuOyAjNTk0NAor5aWFID4gcMOgbzsgIzU5NDUKK+WlhiA+IHF1xINuOyAjNTk0Ngor5aWHID4gccOtOyAjNTk0Nwor5aWIID4gbsOgaTsgIzU5NDgKK+WliSA+IGbDqG5nOyAjNTk0OQor5aWKID4geGnDqTsgIzU5NEEKK+WliyA+IGbDqG47ICM1OTRCCivlpYwgPiBkacSDbjsgIzU5NEMKK+WljiA+IGvDumk7ICM1OTRFCivlpY8gPiB6w7J1OyAjNTk0Rgor5aWQID4gaHXDoG47ICM1OTUwCivlpZEgPiBxw6w7ICM1OTUxCivlpZIgPiBrxIFpOyAjNTk1Mgor5aWTID4gemjDoDsgIzU5NTMKK+WllCA+IGLEk247ICM1OTU0CivlpZUgPiB5w6w7ICM1OTU1CivlpZYgPiBqacSDbmc7ICM1OTU2CivlpZcgPiB0w6BvOyAjNTk1Nwor5aWYID4gesOgbmc7ICM1OTU4CivlpZkgPiBixJVuOyAjNTk1OQor5aWaID4geMSrOyAjNTk1QQor5aWbID4geGnEg25nOyAjNTk1Qgor5aWcID4gZsSVaTsgIzU5NUMKK+WlnSA+IGRpxIFvOyAjNTk1RAor5aWeID4geMO5bjsgIzU5NUUKK+WlnyA+IGvEk25nOyAjNTk1Rgor5aWgID4gZGnDoG47ICM1OTYwCivlpaEgPiDDoG87ICM1OTYxCivlpaIgPiBzaMSTOyAjNTk2Mgor5aWjID4gd8SVbmc7ICM1OTYzCivlpaQgPiBwxINuOyAjNTk2NAor5aWlID4gw6BvOyAjNTk2NQor5aWmID4gd8O5OyAjNTk2Ngor5aWnID4gw6BvOyAjNTk2Nwor5aWoID4gamnEg25nOyAjNTk2OAor5aWpID4gbGnDoW47ICM1OTY5CivlpaogPiBkw7pvOyAjNTk2QQor5aWrID4gecWrbjsgIzU5NkIKK+WlrCA+IGppxINuZzsgIzU5NkMKK+WlrSA+IHNow6w7ICM1OTZECivlpa4gPiBmw6huOyAjNTk2RQor5aWvID4gaMO5bzsgIzU5NkYKK+WlsCA+IGLDrDsgIzU5NzAKK+WlsSA+IGxpw6FuOyAjNTk3MQor5aWyID4gZMWtbzsgIzU5NzIKK+WlsyA+IG7HmjsgIzU5NzMKK+WltCA+IG7DujsgIzU5NzQKK+WltSA+IGTEq25nOyAjNTk3NQor5aW2ID4gbsSDaTsgIzU5NzYKK+WltyA+IHFpxIFuOyAjNTk3Nwor5aW4ID4gamnEgW47ICM1OTc4CivlpbkgPiB0xIE7ICM1OTc5CivlpbogPiBqxK11OyAjNTk3QQor5aW7ID4gbsOhbjsgIzU5N0IKK+WlvCA+IGNow6A7ICM1OTdDCivlpb0gPiBoxINvOyAjNTk3RAor5aW+ID4geGnEgW47ICM1OTdFCivlpb8gPiBmw6BuOyAjNTk3Rgor5aaAID4gasStOyAjNTk4MAor5aaBID4gc2jDuW87ICM1OTgxCivlpoIgPiByw7o7ICM1OTgyCivlpoMgPiBmxJNpOyAjNTk4Mwor5aaEID4gd8Ogbmc7ICM1OTg0CivlpoUgPiBow7NuZzsgIzU5ODUKK+WmhiA+IHpodcSBbmc7ICM1OTg2CivlpocgPiBmw7k7ICM1OTg3CivlpoggPiBtxIE7ICM1OTg4CivlpokgPiBkxIFuOyAjNTk4OQor5aaKID4gcsOobjsgIzU5OEEKK+WmiyA+IGbFqzsgIzU5OEIKK+WmjCA+IGrDrG5nOyAjNTk4Qwor5aaNID4gecOhbjsgIzU5OEQKK+WmjiA+IHhpw6g7ICM1OThFCivlpo8gPiB3w6huOyAjNTk4Rgor5aaQID4gemjFjW5nOyAjNTk5MAor5aaRID4gcMSBOyAjNTk5MQor5aaSID4gZMO5OyAjNTk5Mgor5aaTID4gasOsOyAjNTk5Mwor5aaUID4ga8STbmc7ICM1OTk0CivlppUgPiB6aMOybmc7ICM1OTk1CivlppYgPiB5xIFvOyAjNTk5Ngor5aaXID4gasOsbjsgIzU5OTcKK+WmmCA+IHnDum47ICM1OTk4CivlppkgPiBtacOgbzsgIzU5OTkKK+WmmiA+IHDEk2k7ICM1OTlBCivlppwgPiB5dcOoOyAjNTk5Qwor5aadID4gemh1xIFuZzsgIzU5OUQKK+WmniA+IG7Eq3U7ICM1OTlFCivlpp8gPiB5w6BuOyAjNTk5Rgor5aagID4gbsOgOyAjNTlBMAor5aahID4geMSrbjsgIzU5QTEKK+WmoiA+IGbDqW47ICM1OUEyCivlpqMgPiBixK07ICM1OUEzCivlpqQgPiB5w7o7ICM1OUE0CivlpqUgPiB0xa1vOyAjNTlBNQor5aamID4gZsSTbmc7ICM1OUE2CivlpqcgPiB5dcOhbjsgIzU5QTcKK+WmqCA+IGbDoW5nOyAjNTlBOAor5aapID4gd8WtOyAjNTlBOQor5aaqID4gecO5OyAjNTlBQQor5aarID4gZ8WraTsgIzU5QUIKK+WmrCA+IGTDuTsgIzU5QUMKK+WmrSA+IGLDoTsgIzU5QUQKK+WmriA+IG7EqzsgIzU5QUUKK+WmryA+IHpow7N1OyAjNTlBRgor5aawID4gemjDum87ICM1OUIwCivlprEgPiB6aMSBbzsgIzU5QjEKK+WmsiA+IGTDoTsgIzU5QjIKK+WmsyA+IG7Eg2k7ICM1OUIzCivlprQgPiB5dcSDbjsgIzU5QjQKK+WmtSA+IHTFj3U7ICM1OUI1CivlprYgPiB4dcOhbjsgIzU5QjYKK+WmtyA+IHpow607ICM1OUI3CivlprggPiDEkzsgIzU5QjgKK+WmuSA+IG3DqGk7ICM1OUI5CivlprogPiBtw7I7ICM1OUJBCivlprsgPiBxxKs7ICM1OUJCCivlprwgPiBiw6w7ICM1OUJDCivlpr0gPiBzaMSTbjsgIzU5QkQKK+WmviA+IHFpw6g7ICM1OUJFCivlpr8gPiDEkzsgIzU5QkYKK+WngCA+IGjDqTsgIzU5QzAKK+WngSA+IHjFrTsgIzU5QzEKK+WngiA+IGbDoTsgIzU5QzIKK+WngyA+IHpoxJNuZzsgIzU5QzMKK+WnhCA+IG3DrW47ICM1OUM0Civlp4UgPiBiw6BuOyAjNTlDNQor5aeGID4gbcWtOyAjNTlDNgor5aeHID4gZsWrOyAjNTlDNwor5aeIID4gbMOtbmc7ICM1OUM4Civlp4kgPiB6xK07ICM1OUM5Civlp4ogPiB6xK07ICM1OUNBCivlp4sgPiBzaMStOyAjNTlDQgor5aeMID4gcsSDbjsgIzU5Q0MKK+WnjSA+IHNoxIFuOyAjNTlDRAor5aeOID4gecSBbmc7ICM1OUNFCivlp48gPiBtw6FuOyAjNTlDRgor5aeQID4gamnElTsgIzU5RDAKK+WnkSA+IGfFqzsgIzU5RDEKK+WnkiA+IHPDrDsgIzU5RDIKK+WnkyA+IHjDrG5nOyAjNTlEMwor5aeUID4gd8SVaTsgIzU5RDQKK+WnlSA+IHrEqzsgIzU5RDUKK+WnliA+IGrDuTsgIzU5RDYKK+WnlyA+IHNoxIFuOyAjNTlENwor5aeYID4gcMSrbjsgIzU5RDgKK+WnmSA+IHLDqG47ICM1OUQ5Civlp5ogPiB5w6FvOyAjNTlEQQor5aebID4gdMWPbmc7ICM1OURCCivlp5wgPiBqacSBbmc7ICM1OURDCivlp50gPiBzaMWrOyAjNTlERAor5aeeID4gasOtOyAjNTlERQor5aefID4gZ8SBaTsgIzU5REYKK+WnoCA+IHNow6BuZzsgIzU5RTAKK+WnoSA+IGvDuW87ICM1OUUxCivlp6IgPiBqdcSBbjsgIzU5RTIKK+WnoyA+IGppxIFvOyAjNTlFMwor5aekID4gZ8OydTsgIzU5RTQKK+WnpSA+IG3FrTsgIzU5RTUKK+WnpiA+IGppxIFuOyAjNTlFNgor5aenID4gamnEgW47ICM1OUU3Civlp6ggPiB5w607ICM1OUU4Civlp6kgPiBuacOgbjsgIzU5RTkKK+WnqiA+IHpow607ICM1OUVBCivlp6sgPiBqxKs7ICM1OUVCCivlp6wgPiBqxKs7ICM1OUVDCivlp60gPiB4acOgbjsgIzU5RUQKK+WnriA+IGjDqW5nOyAjNTlFRQor5aevID4gZ3XEgW5nOyAjNTlFRgor5aewID4gasWrbjsgIzU5RjAKK+WnsSA+IGt1xIE7ICM1OUYxCivlp7IgPiB5w6BuOyAjNTlGMgor5aezID4gbcStbmc7ICM1OUYzCivlp7QgPiBsacOoOyAjNTlGNAor5ae1ID4gcMOoaTsgIzU5RjUKK+WntiA+IHnEg247ICM1OUY2Civlp7cgPiB5w7J1OyAjNTlGNwor5ae4ID4gecOhbjsgIzU5RjgKK+WnuSA+IGNow6A7ICM1OUY5Civlp7ogPiBzaMSTbjsgIzU5RkEKK+WnuyA+IHnEq247ICM1OUZCCivlp7wgPiBjaMStOyAjNTlGQwor5ae9ID4gZ8WtaTsgIzU5RkQKK+WnviA+IHF1xIFuOyAjNTlGRQor5ae/ID4gesSrOyAjNTlGRgor5aiAID4gc8WNbmc7ICM1QTAwCivlqIEgPiB3xJNpOyAjNUEwMQor5aiCID4gaMOzbmc7ICM1QTAyCivlqIMgPiB3w6E7ICM1QTAzCivlqIQgPiBsw7N1OyAjNUEwNAor5aiFID4gecOgOyAjNUEwNQor5aiGID4gcsSDbzsgIzVBMDYKK+WohyA+IGppxIFvOyAjNUEwNwor5aiIID4gbHXDoW47ICM1QTA4CivlqIkgPiBwxKtuZzsgIzVBMDkKK+WoiiA+IHhpw6BuOyAjNUEwQQor5aiLID4gc2jDoG87ICM1QTBCCivlqIwgPiBsxK07ICM1QTBDCivlqI0gPiBjaMOpbmc7ICM1QTBECivlqI4gPiB4acOgbzsgIzVBMEUKK+WojyA+IG3DoW5nOyAjNUEwRgor5aiQID4gZnU7ICM1QTEwCivlqJEgPiBzxatvOyAjNUExMQor5aiSID4gd8WtOyAjNUExMgor5aiTID4gd8SVaTsgIzVBMTMKK+WolCA+IGvDqDsgIzVBMTQKK+WolSA+IGzDoGk7ICM1QTE1CivlqJYgPiBjaMO5bzsgIzVBMTYKK+WolyA+IGTDrG5nOyAjNUExNwor5aiYID4gbmnDoW5nOyAjNUExOAor5aiZID4geMOtbmc7ICM1QTE5CivlqJogPiBuw6FuOyAjNUExQQor5aibID4gecO6OyAjNUExQgor5aicID4gbsO6bzsgIzVBMUMKK+WonSA+IHDEk2k7ICM1QTFECivlqJ4gPiBuxJVpOyAjNUExRQor5aifID4ganXEgW47ICM1QTFGCivlqKAgPiBzaMSTbjsgIzVBMjAKK+WooSA+IHpow6w7ICM1QTIxCivlqKIgPiBow6FuOyAjNUEyMgor5aijID4gZMOsOyAjNUEyMwor5aikID4gemh1xIFuZzsgIzVBMjQKK+WopSA+IMOpOyAjNUEyNQor5aimID4gcMOtbjsgIzVBMjYKK+WopyA+IHTDuWk7ICM1QTI3CivlqKggPiBow6BuOyAjNUEyOAor5aipID4gbWnEg247ICM1QTI5CivlqKogPiB3w7o7ICM1QTJBCivlqKsgPiB5w6FuOyAjNUEyQgor5aisID4gd8WtOyAjNUEyQwor5aitID4geMSrOyAjNUEyRAor5aiuID4gecOhbjsgIzVBMkUKK+WoryA+IHnDujsgIzVBMkYKK+WosCA+IHPDrDsgIzVBMzAKK+WosSA+IHnDujsgIzVBMzEKK+WosiA+IHfEgTsgIzVBMzIKK+WotCA+IHhpw6FuOyAjNUEzNAor5ai1ID4gasWrOyAjNUEzNQor5ai2ID4gccWtOyAjNUEzNgor5ai3ID4gc2jDuWk7ICM1QTM3CivlqLggPiBxxKs7ICM1QTM4CivlqLkgPiB4acOhbjsgIzVBMzkKK+WouiA+IHpoxatpOyAjNUEzQQor5ai7ID4gZMWNbmc7ICM1QTNCCivlqLwgPiBjaMSBbmc7ICM1QTNDCivlqL0gPiBsw7k7ICM1QTNECivlqL4gPiDEg2k7ICM1QTNFCivlqL8gPiDEkzsgIzVBM0YKK+WpgCA+IMSTOyAjNUE0MAor5amBID4gbMOzdTsgIzVBNDEKK+WpgiA+IG1pw6FuOyAjNUE0Mgor5amDID4gY8Ozbmc7ICM1QTQzCivlqYQgPiBwxY91OyAjNUE0NAor5amFID4gasO6OyAjNUE0NQor5amGID4gcMOzOyAjNUE0Ngor5amHID4gY8SDaTsgIzVBNDcKK+WpiCA+IGTDrW5nOyAjNUE0OAor5amJID4gd8SDbjsgIzVBNDkKK+WpiiA+IGJpxINvOyAjNUE0QQor5amLID4geGnEgW87ICM1QTRCCivlqYwgPiBzaMWtOyAjNUE0Qwor5amNID4gccStOyAjNUE0RAor5amOID4gaMWraTsgIzVBNEUKK+WpjyA+IGbDuTsgIzVBNEYKK+WpkCA+IMSTOyAjNUE1MAor5amRID4gd8WPOyAjNUE1MQor5amSID4gdMOhbjsgIzVBNTIKK+WpkyA+IGbEk2k7ICM1QTUzCivlqZQgPiB3ZWk7ICM1QTU0CivlqZUgPiBqacOpOyAjNUE1NQor5amWID4gdGnEgW47ICM1QTU2CivlqZcgPiBuw607ICM1QTU3CivlqZggPiBxdcOhbjsgIzVBNTgKK+WpmSA+IGrDrG5nOyAjNUE1OQor5amaID4gaMWrbjsgIzVBNUEKK+WpmyA+IGrEq25nOyAjNUE1Qgor5amcID4gcWnEgW47ICM1QTVDCivlqZ0gPiBkacOgbjsgIzVBNUQKK+WpniA+IHjDrG5nOyAjNUE1RQor5amfID4gaMO5OyAjNUE1Rgor5amgID4gd8OgOyAjNUE2MAor5amhID4gbMOhaTsgIzVBNjEKK+WpoiA+IGLDrDsgIzVBNjIKK+WpoyA+IHnEq247ICM1QTYzCivlqaQgPiBjaMWNdTsgIzVBNjQKK+WppSA+IGNow7lvOyAjNUE2NQor5ammID4gZsO5OyAjNUE2Ngor5amnID4gasOsbmc7ICM1QTY3CivlqaggPiBsw7puOyAjNUE2OAor5ampID4gecOgbjsgIzVBNjkKK+WpqiA+IGzDoW47ICM1QTZBCivlqasgPiBrxatuOyAjNUE2Qgor5amsID4gecOtbjsgIzVBNkMKK+WprSA+IHnDoDsgIzVBNkQKK+WpriA+IGp1OyAjNUE2RQor5amvID4gbMOsOyAjNUE2Rgor5amwID4gZGnEg247ICM1QTcwCivlqbEgPiB4acOhbjsgIzVBNzEKK+WpsyA+IGh1w6A7ICM1QTczCivlqbQgPiB5xKtuZzsgIzVBNzQKK+WptSA+IGNow6FuOyAjNUE3NQor5am2ID4gc2jElW47ICM1QTc2CivlqbcgPiB0w61uZzsgIzVBNzcKK+WpuCA+IGTDoG5nOyAjNUE3OAor5am5ID4gecSDbzsgIzVBNzkKK+WpuiA+IHfDuTsgIzVBN0EKK+WpuyA+IG7DoG47ICM1QTdCCivlqbwgPiByw7lvOyAjNUE3Qwor5am9ID4gamnEgzsgIzVBN0QKK+WpviA+IHTFjXU7ICM1QTdFCivlqb8gPiB4w7k7ICM1QTdGCivlqoAgPiB5w7o7ICM1QTgwCivlqoEgPiB3xJNpOyAjNUE4MQor5aqCID4gdMOtOyAjNUE4Mgor5aqDID4gcsOzdTsgIzVBODMKK+WqhCA+IG3ElWk7ICM1QTg0CivlqoUgPiBkxIFuOyAjNUE4NQor5aqGID4gcnXEg247ICM1QTg2CivlqocgPiBxxKtuOyAjNUE4Nwor5aqIID4gaHVpOyAjNUE4OAor5aqJID4gd8WrOyAjNUE4OQor5aqKID4gcWnDoW47ICM1QThBCivlqosgPiBjaMWrbjsgIzVBOEIKK+WqjCA+IG3DoW87ICM1QThDCivlqo0gPiBmw7k7ICM1QThECivlqo4gPiBqacSVOyAjNUE4RQor5aqPID4gZHXEgW47ICM1QThGCivlqpAgPiB4xKs7ICM1QTkwCivlqpEgPiB6aMOybmc7ICM1QTkxCivlqpIgPiBtw6lpOyAjNUE5Mgor5aqTID4gaHXDoW5nOyAjNUE5Mwor5aqUID4gbWnDoW47ICM1QTk0CivlqpUgPiDEgW47ICM1QTk1CivlqpYgPiB5xKtuZzsgIzVBOTYKK+WqlyA+IHh1xIFuOyAjNUE5Nwor5aqYID4gamllOyAjNUE5OAor5aqZID4gd8STaTsgIzVBOTkKK+WqmiA+IG3DqGk7ICM1QTlBCivlqpsgPiB5dcOgbjsgIzVBOUIKK+WqnCA+IHpoxJNuOyAjNUE5Qwor5aqdID4gccSrdTsgIzVBOUQKK+WqniA+IHTDrTsgIzVBOUUKK+WqnyA+IHhpw6g7ICM1QTlGCivlqqAgPiB0xa1vOyAjNUFBMAor5aqhID4gbGnDoG47ICM1QUExCivlqqIgPiBtw6BvOyAjNUFBMgor5aqjID4gcsSDbjsgIzVBQTMKK+WqpCA+IHPEqzsgIzVBQTQKK+WqpSA+IHBpxIFuOyAjNUFBNQor5aqmID4gd8OoaTsgIzVBQTYKK+WqpyA+IHfEgTsgIzVBQTcKK+WqqCA+IGrDrHU7ICM1QUE4CivlqqkgPiBow7o7ICM1QUE5CivlqqogPiDEg287ICM1QUFBCivlqq0gPiB4xas7ICM1QUFECivlqq4gPiB0xY11OyAjNUFBRQor5aqvID4gZ8WraTsgIzVBQUYKK+WqsCA+IHrFjXU7ICM1QUIwCivlqrEgPiB5w6FvOyAjNUFCMQor5aqyID4gcMOsOyAjNUFCMgor5aqzID4geMOtOyAjNUFCMwor5aq0ID4geXXDoW47ICM1QUI0CivlqrUgPiB5w6xuZzsgIzVBQjUKK+WqtiA+IHLDs25nOyAjNUFCNgor5aq3ID4gcsO5OyAjNUFCNwor5aq4ID4gY2jEqzsgIzVBQjgKK+WquSA+IGzDrXU7ICM1QUI5CivlqrogPiBtxJVpOyAjNUFCQQor5aq7ID4gcMOhbjsgIzVBQkIKK+WqvCA+IMSDbzsgIzVBQkMKK+WqvSA+IG3EgTsgIzVBQkQKK+WqviA+IGfDsnU7ICM1QUJFCivlqr8gPiBrw7lpOyAjNUFCRgor5auAID4gccOtbjsgIzVBQzAKK+WrgSA+IGppw6A7ICM1QUMxCivlq4IgPiBzxINvOyAjNUFDMgor5auDID4gemjEk247ICM1QUMzCivlq4QgPiB5dcOhbjsgIzVBQzQKK+WrhSA+IGNoxIE7ICM1QUM1Civlq4YgPiB5w7NuZzsgIzVBQzYKK+WrhyA+IG3DrW5nOyAjNUFDNwor5auIID4gecSrbmc7ICM1QUM4Civlq4kgPiBqw607ICM1QUM5Civlq4ogPiBzw7k7ICM1QUNBCivlq4sgPiBuacSDbzsgIzVBQ0IKK+WrjCA+IHhpw6FuOyAjNUFDQwor5auNID4gdMSBbzsgIzVBQ0QKK+WrjiA+IHDDoW5nOyAjNUFDRQor5auPID4gbMOhbmc7ICM1QUNGCivlq5AgPiBuxINvOyAjNUFEMAor5auRID4gYsOhbzsgIzVBRDEKK+WrkiA+IMOgaTsgIzVBRDIKK+WrkyA+IHDDrDsgIzVBRDMKK+WrlCA+IHDDrW47ICM1QUQ0Civlq5UgPiB5w6w7ICM1QUQ1Civlq5YgPiBwacOgbzsgIzVBRDYKK+WrlyA+IHnDuTsgIzVBRDcKK+WrmCA+IGzDqWk7ICM1QUQ4Civlq5kgPiB4dcOhbjsgIzVBRDkKK+WrmiA+IG3DoG47ICM1QURBCivlq5sgPiB5xKs7ICM1QURCCivlq5wgPiB6aMSBbmc7ICM1QURDCivlq50gPiBrxIFuZzsgIzVBREQKK+WrniA+IHnDs25nOyAjNUFERQor5aufID4gbsOsOyAjNUFERgor5augID4gbMOtOyAjNUFFMAor5auhID4gZMOtOyAjNUFFMQor5auiID4gZ8WraTsgIzVBRTIKK+WroyA+IHnEgW47ICM1QUUzCivlq6QgPiBqw6xuOyAjNUFFNAor5aulID4gemh1xIFuOyAjNUFFNQor5aumID4gY2jDoW5nOyAjNUFFNgor5aunID4gY8OoOyAjNUFFNwor5auoID4gaMSBbjsgIzVBRTgKK+WrqSA+IG7DqG47ICM1QUU5Civlq6ogPiBsw6BvOyAjNUFFQQor5aurID4gbcOzOyAjNUFFQgor5ausID4gemjEkzsgIzVBRUMKK+WrrSA+IGjDuTsgIzVBRUQKK+WrriA+IGjDuTsgIzVBRUUKK+WrryA+IMOgbzsgIzVBRUYKK+WrsCA+IG7DqG47ICM1QUYwCivlq7EgPiBxacOhbmc7ICM1QUYxCivlq7MgPiBwacOoOyAjNUFGMwor5au0ID4gZ8WrOyAjNUFGNAor5au1ID4gd8WtOyAjNUFGNQor5au2ID4gamnDoW87ICM1QUY2Civlq7cgPiB0xa1vOyAjNUFGNwor5au4ID4gemjEg247ICM1QUY4Civlq7kgPiBtw6FvOyAjNUFGOQor5au6ID4geGnDoW47ICM1QUZBCivlq7sgPiB4acOhbjsgIzVBRkIKK+WrvCA+IG3DsjsgIzVBRkMKK+WrvSA+IGxpw6FvOyAjNUFGRAor5au+ID4gbGnDoW47ICM1QUZFCivlq78gPiBodcOgOyAjNUFGRgor5ayAID4gZ8WraTsgIzVCMDAKK+WsgSA+IGTEk25nOyAjNUIwMQor5ayCID4gemjEqzsgIzVCMDIKK+WsgyA+IHjFqzsgIzVCMDMKK+WshCA+IHlpOyAjNUIwNAor5ayFID4gaHXDoTsgIzVCMDUKK+WshiA+IHjEqzsgIzVCMDYKK+WshyA+IGjDuWk7ICM1QjA3CivlrIggPiByxINvOyAjNUIwOAor5ayJID4geMSrOyAjNUIwOQor5ayKID4gecOgbjsgIzVCMEEKK+WsiyA+IGNow6FuOyAjNUIwQgor5ayMID4gamnEgW87ICM1QjBDCivlrI0gPiBtxJVpOyAjNUIwRAor5ayOID4gZsOgbjsgIzVCMEUKK+WsjyA+IGbEgW47ICM1QjBGCivlrJAgPiB4acSBbjsgIzVCMTAKK+WskSA+IHnDrDsgIzVCMTEKK+WskiA+IHfDqGk7ICM1QjEyCivlrJMgPiBqacOgbzsgIzVCMTMKK+WslCA+IGbDuTsgIzVCMTQKK+WslSA+IHNow6w7ICM1QjE1CivlrJYgPiBiw6w7ICM1QjE2CivlrJcgPiBzaMOgbjsgIzVCMTcKK+WsmCA+IHPDuWk7ICM1QjE4CivlrJkgPiBxacOhbmc7ICM1QjE5CivlrJogPiBsacSDbjsgIzVCMUEKK+WsmyA+IGh1w6FuOyAjNUIxQgor5aycID4geGluOyAjNUIxQwor5aydID4gbmnEg287ICM1QjFECivlrJ4gPiBkxY9uZzsgIzVCMUUKK+WsnyA+IHnDrDsgIzVCMUYKK+WsoCA+IGPDoW47ICM1QjIwCivlrKEgPiDDoGk7ICM1QjIxCivlrKIgPiBuacOhbmc7ICM1QjIyCivlrKMgPiBuw6luZzsgIzVCMjMKK+WspCA+IG3EgTsgIzVCMjQKK+WspSA+IHRpxINvOyAjNUIyNQor5aymID4gY2jDs3U7ICM1QjI2CivlrKcgPiBqw6xuOyAjNUIyNwor5ayoID4gY8OtOyAjNUIyOAor5aypID4gecO6OyAjNUIyOQor5ayqID4gcMOtbjsgIzVCMkEKK+WsqyA+IHlvbmc7ICM1QjJCCivlrKwgPiB4xas7ICM1QjJDCivlrK0gPiBuxINpOyAjNUIyRAor5ayuID4gecSBbjsgIzVCMkUKK+WsryA+IHTDoWk7ICM1QjJGCivlrLAgPiB5xKtuZzsgIzVCMzAKK+WssSA+IGPDoW47ICM1QjMxCivlrLIgPiBuacSDbzsgIzVCMzIKK+WssyA+IHdvOyAjNUIzMwor5ay0ID4gecOtbmc7ICM1QjM0CivlrLUgPiBtacOhbjsgIzVCMzUKK+WstyA+IG3EgTsgIzVCMzcKK+WsuCA+IHNoxJVuOyAjNUIzOAor5ay5ID4geMOsbmc7ICM1QjM5CivlrLogPiBuw6w7ICM1QjNBCivlrLsgPiBkw7o7ICM1QjNCCivlrLwgPiBsxK11OyAjNUIzQwor5ay9ID4geXXEgW47ICM1QjNECivlrL4gPiBsxINuOyAjNUIzRQor5ay/ID4gecOgbjsgIzVCM0YKK+WtgCA+IHNodcSBbmc7ICM1QjQwCivlrYEgPiBsw61uZzsgIzVCNDEKK+WtgiA+IGppxINvOyAjNUI0Mgor5a2DID4gbmnDoW5nOyAjNUI0Mwor5a2EID4gbMSDbjsgIzVCNDQKK+WthSA+IHhpxIFuOyAjNUI0NQor5a2GID4gecSrbmc7ICM1QjQ2CivlrYcgPiBzaHXEgW5nOyAjNUI0Nwor5a2IID4gc2h1xIFpOyAjNUI0OAor5a2JID4gcXXDoW47ICM1QjQ5CivlrYogPiBtxK07ICM1QjRBCivlrYsgPiBsw607ICM1QjRCCivlrYwgPiBsdcOhbjsgIzVCNEMKK+WtjSA+IHnDoW47ICM1QjRECivlrY4gPiB6aMWtOyAjNUI0RQor5a2PID4gbMSDbjsgIzVCNEYKK+WtkCA+IHrErTsgIzVCNTAKK+WtkSA+IGppw6k7ICM1QjUxCivlrZIgPiBqdcOpOyAjNUI1Mgor5a2TID4ganXDqTsgIzVCNTMKK+WtlCA+IGvFj25nOyAjNUI1NAor5a2VID4gecO5bjsgIzVCNTUKK+WtliA+IHrEqzsgIzVCNTYKK+WtlyA+IHrDrDsgIzVCNTcKK+WtmCA+IGPDum47ICM1QjU4CivlrZkgPiBzxatuOyAjNUI1OQor5a2aID4gZsO6OyAjNUI1QQor5a2bID4gYsOoaTsgIzVCNUIKK+WtnCA+IHrEqzsgIzVCNUMKK+WtnSA+IHhpw6BvOyAjNUI1RAor5a2eID4geMOsbjsgIzVCNUUKK+WtnyA+IG3DqG5nOyAjNUI1Rgor5a2gID4gc8OsOyAjNUI2MAor5a2hID4gdMSBaTsgIzVCNjEKK+WtoiA+IGLEgW87ICM1QjYyCivlraMgPiBqw6w7ICM1QjYzCivlraQgPiBnxas7ICM1QjY0CivlraUgPiBuw7o7ICM1QjY1CivlraYgPiB4dcOpOyAjNUI2Ngor5a2oID4gemh1xINuOyAjNUI2OAor5a2pID4gaMOhaTsgIzVCNjkKK+WtqiA+IGx1w6FuOyAjNUI2QQor5a2rID4gc8WrbjsgIzVCNkIKK+WtrCA+IGh1w6BpOyAjNUI2Qwor5a2tID4gbWnEkzsgIzVCNkQKK+WtriA+IGPDs25nOyAjNUI2RQor5a2vID4gcWnEgW47ICM1QjZGCivlrbAgPiBzaMO6OyAjNUI3MAor5a2xID4gY2jDoW47ICM1QjcxCivlrbIgPiB5xIE7ICM1QjcyCivlrbMgPiB6xKs7ICM1QjczCivlrbQgPiBuxK07ICM1Qjc0CivlrbUgPiBmxas7ICM1Qjc1CivlrbYgPiB6xKs7ICM1Qjc2CivlrbcgPiBsw607ICM1Qjc3CivlrbggPiB4dcOpOyAjNUI3OAor5a25ID4gYsOyOyAjNUI3OQor5a26ID4gcsO6OyAjNUI3QQor5a27ID4gbMOhaTsgIzVCN0IKK+WtvCA+IG5pw6g7ICM1QjdDCivlrb0gPiBuacOoOyAjNUI3RAor5a2+ID4gecSrbmc7ICM1QjdFCivlrb8gPiBsdcOhbjsgIzVCN0YKK+WugCA+IG1pw6FuOyAjNUI4MAor5a6BID4gemjDuTsgIzVCODEKK+WugiA+IHLFj25nOyAjNUI4Mgor5a6DID4gdMSBOyAjNUI4Mwor5a6EID4gZ8WtaTsgIzVCODQKK+WuhSA+IHpow6FpOyAjNUI4NQor5a6GID4gccOtb25nOyAjNUI4Ngor5a6HID4gecWtOyAjNUI4Nwor5a6IID4gc2jFj3U7ICM1Qjg4CivlrokgPiDEgW47ICM1Qjg5CivlroogPiB0w7o7ICM1QjhBCivlrosgPiBzw7JuZzsgIzVCOEIKK+WujCA+IHfDoW47ICM1QjhDCivlro0gPiByw7J1OyAjNUI4RAor5a6OID4gecSDbzsgIzVCOEUKK+WujyA+IGjDs25nOyAjNUI4Rgor5a6QID4gecOtOyAjNUI5MAor5a6RID4gasStbmc7ICM1QjkxCivlrpIgPiB6aMWrbjsgIzVCOTIKK+WukyA+IG3DrDsgIzVCOTMKK+WulCA+IHpoxa07ICM1Qjk0CivlrpUgPiBkw6BuZzsgIzVCOTUKK+WuliA+IGjDs25nOyAjNUI5Ngor5a6XID4gesWNbmc7ICM1Qjk3CivlrpggPiBndcSBbjsgIzVCOTgKK+WumSA+IHpow7J1OyAjNUI5OQor5a6aID4gZMOsbmc7ICM1QjlBCivlrpsgPiB3xINuOyAjNUI5Qgor5a6cID4gecOtOyAjNUI5Qwor5a6dID4gYsSDbzsgIzVCOUQKK+WuniA+IHNow607ICM1QjlFCivlrp8gPiBzaMOtOyAjNUI5Rgor5a6gID4gY2jFj25nOyAjNUJBMAor5a6hID4gc2jElW47ICM1QkExCivlrqIgPiBrw6g7ICM1QkEyCivlrqMgPiB4dcSBbjsgIzVCQTMKK+WupCA+IHNow6w7ICM1QkE0CivlrqUgPiB5w7J1OyAjNUJBNQor5a6mID4gaHXDoG47ICM1QkE2CivlrqcgPiB5w607ICM1QkE3CivlrqggPiB0acSDbzsgIzVCQTgKK+WuqSA+IHNoxK07ICM1QkE5CivlrqogPiB4acOgbjsgIzVCQUEKK+WuqyA+IGfFjW5nOyAjNUJBQgor5a6sID4gY2jDqW5nOyAjNUJBQwor5a6tID4gccO6bjsgIzVCQUQKK+WuriA+IGfFjW5nOyAjNUJBRQor5a6vID4geGnEgW87ICM1QkFGCivlrrAgPiB6xINpOyAjNUJCMAor5a6xID4gemjDoDsgIzVCQjEKK+WusiA+IGLEg287ICM1QkIyCivlrrMgPiBow6BpOyAjNUJCMwor5a60ID4gecOgbjsgIzVCQjQKK+WutSA+IHhpxIFvOyAjNUJCNQor5a62ID4gamnEgTsgIzVCQjYKK+WutyA+IHNoxJVuOyAjNUJCNwor5a64ID4gY2jDqW47ICM1QkI4CivlrrkgPiByw7NuZzsgIzVCQjkKK+WuuiA+IGh1xINuZzsgIzVCQkEKK+WuuyA+IG3DrDsgIzVCQkIKK+WuvCA+IGvDsnU7ICM1QkJDCivlrr0gPiBrdcSBbjsgIzVCQkQKK+WuviA+IGLEq247ICM1QkJFCivlrr8gPiBzw7k7ICM1QkJGCivlr4AgPiBjw6BpOyAjNUJDMAor5a+BID4gesSDbjsgIzVCQzEKK+WvgiA+IGrDrDsgIzVCQzIKK+WvgyA+IHl1xIFuOyAjNUJDMwor5a+EID4gasOsOyAjNUJDNAor5a+FID4gecOtbjsgIzVCQzUKK+WvhiA+IG3DrDsgIzVCQzYKK+WvhyA+IGvDsnU7ICM1QkM3Civlr4ggPiBxxKtuZzsgIzVCQzgKK+WviSA+IHF1w6g7ICM1QkM5Civlr4ogPiB6aMSTbjsgIzVCQ0EKK+WviyA+IGppxINuOyAjNUJDQgor5a+MID4gZsO5OyAjNUJDQwor5a+NID4gbsOtbmc7ICM1QkNECivlr44gPiBiw6xuZzsgIzVCQ0UKK+WvjyA+IGh1w6FuOyAjNUJDRgor5a+QID4gbcOoaTsgIzVCRDAKK+WvkSA+IHHErW47ICM1QkQxCivlr5IgPiBow6FuOyAjNUJEMgor5a+TID4gecO5OyAjNUJEMwor5a+UID4gc2jDrTsgIzVCRDQKK+WvlSA+IG7DrW5nOyAjNUJENQor5a+WID4gccOsbjsgIzVCRDYKK+WvlyA+IG7DrW5nOyAjNUJENwor5a+YID4gemjDrDsgIzVCRDgKK+WvmSA+IHnFrTsgIzVCRDkKK+WvmiA+IGLEg287ICM1QkRBCivlr5sgPiBrdcSBbjsgIzVCREIKK+WvnCA+IG7DrW5nOyAjNUJEQwor5a+dID4gccStbjsgIzVCREQKK+WvniA+IG3DsjsgIzVCREUKK+WvnyA+IGNow6E7ICM1QkRGCivlr6AgPiBqw7k7ICM1QkUwCivlr6EgPiBndcSDOyAjNUJFMQor5a+iID4gccStbjsgIzVCRTIKK+WvoyA+IGjFqzsgIzVCRTMKK+WvpCA+IHfDuTsgIzVCRTQKK+WvpSA+IGxpw6FvOyAjNUJFNQor5a+mID4gc2jDrTsgIzVCRTYKK+WvpyA+IHpow7k7ICM1QkU3Civlr6ggPiB6aMOgaTsgIzVCRTgKK+WvqSA+IHNoxJVuOyAjNUJFOQor5a+qID4gd8SVaTsgIzVCRUEKK+WvqyA+IHhpxJU7ICM1QkVCCivlr6wgPiBrdcSBbjsgIzVCRUMKK+WvrSA+IGjDuWk7ICM1QkVECivlr64gPiBsacOhbzsgIzVCRUUKK+WvryA+IGrDuW47ICM1QkVGCivlr7AgPiBodcOhbjsgIzVCRjAKK+WvsSA+IHnDrDsgIzVCRjEKK+WvsiA+IHnDrTsgIzVCRjIKK+WvsyA+IGLEg287ICM1QkYzCivlr7QgPiBxw6xuOyAjNUJGNAor5a+1ID4gY2jFj25nOyAjNUJGNQor5a+2ID4gYsSDbzsgIzVCRjYKK+WvtyA+IGbEk25nOyAjNUJGNwor5a+4ID4gY8O5bjsgIzVCRjgKK+WvuSA+IGTDuWk7ICM1QkY5Civlr7ogPiBzw6w7ICM1QkZBCivlr7sgPiB4w7puOyAjNUJGQgor5a+8ID4gZMSDbzsgIzVCRkMKK+WvvSA+IGzHnDsgIzVCRkQKK+WvviA+IGTDuWk7ICM1QkZFCivlr78gPiBzaMOydTsgIzVCRkYKK+WwgCA+IHDFjzsgIzVDMDAKK+WwgSA+IGbEk25nOyAjNUMwMQor5bCCID4gemh1xIFuOyAjNUMwMgor5bCDID4gZsWrOyAjNUMwMwor5bCEID4gc2jDqDsgIzVDMDQKK+WwhSA+IGvDqDsgIzVDMDUKK+WwhiA+IGppxIFuZzsgIzVDMDYKK+WwhyA+IGppxIFuZzsgIzVDMDcKK+WwiCA+IHpodcSBbjsgIzVDMDgKK+WwiSA+IHfDqGk7ICM1QzA5CivlsIogPiB6xatuOyAjNUMwQQor5bCLID4geMO6bjsgIzVDMEIKK+WwjCA+IHNow7k7ICM1QzBDCivlsI0gPiBkw7lpOyAjNUMwRAor5bCOID4gZMSDbzsgIzVDMEUKK+WwjyA+IHhpxINvOyAjNUMwRgor5bCQID4gasSrOyAjNUMxMAor5bCRID4gc2jEg287ICM1QzExCivlsJIgPiDElXI7ICM1QzEyCivlsJMgPiDElXI7ICM1QzEzCivlsJQgPiDElXI7ICM1QzE0CivlsJUgPiBnxIM7ICM1QzE1CivlsJYgPiBqacSBbjsgIzVDMTYKK+WwlyA+IHNow7o7ICM1QzE3CivlsJggPiBjaMOpbjsgIzVDMTgKK+WwmSA+IHNow6BuZzsgIzVDMTkKK+WwmiA+IHNow6BuZzsgIzVDMUEKK+WwmyA+IG1vOyAjNUMxQgor5bCcID4gZ8OhOyAjNUMxQwor5bCdID4gY2jDoW5nOyAjNUMxRAor5bCeID4gbGnDoG87ICM1QzFFCivlsJ8gPiB4acSDbjsgIzVDMUYKK+WwoCA+IHhpxINuOyAjNUMyMAor5bCiID4gd8SBbmc7ICM1QzIyCivlsKMgPiB3xIFuZzsgIzVDMjMKK+WwpCA+IHnDs3U7ICM1QzI0CivlsKUgPiBsacOgbzsgIzVDMjUKK+WwpiA+IGxpw6BvOyAjNUMyNgor5bCnID4gecOhbzsgIzVDMjcKK+WwqCA+IG3DoW5nOyAjNUMyOAor5bCpID4gd8SBbmc7ICM1QzI5CivlsKogPiB3xIFuZzsgIzVDMkEKK+WwqyA+IHfEgW5nOyAjNUMyQgor5bCsID4gZ8OgOyAjNUMyQwor5bCtID4gecOhbzsgIzVDMkQKK+WwriA+IGTDuW87ICM1QzJFCivlsK8gPiBrw7lpOyAjNUMyRgor5bCwID4gemjFj25nOyAjNUMzMAor5bCxID4gasOsdTsgIzVDMzEKK+WwsiA+IGfEgW47ICM1QzMyCivlsLMgPiBnxa07ICM1QzMzCivlsLQgPiBnxIFuOyAjNUMzNAor5bC1ID4gdMO6aTsgIzVDMzUKK+WwtiA+IGfEgW47ICM1QzM2CivlsLcgPiBnxIFuOyAjNUMzNwor5bC4ID4gc2jEqzsgIzVDMzgKK+WwuSA+IHnErW47ICM1QzM5CivlsLogPiBjaMStOyAjNUMzQQor5bC7ID4ga8SBbzsgIzVDM0IKK+WwvCA+IG7DrTsgIzVDM0MKK+WwvSA+IGrErW47ICM1QzNECivlsL4gPiB3xJVpOyAjNUMzRQor5bC/ID4gbmnDoG87ICM1QzNGCivlsYAgPiBqw7o7ICM1QzQwCivlsYEgPiBww6w7ICM1QzQxCivlsYIgPiBjw6luZzsgIzVDNDIKK+WxgyA+IHjDrDsgIzVDNDMKK+WxhCA+IGLEqzsgIzVDNDQKK+WxhSA+IGrFqzsgIzVDNDUKK+WxhiA+IGppw6g7ICM1QzQ2CivlsYcgPiB0acOhbjsgIzVDNDcKK+WxiCA+IHHFqzsgIzVDNDgKK+WxiSA+IHTDrDsgIzVDNDkKK+WxiiA+IGppw6g7ICM1QzRBCivlsYsgPiB3xas7ICM1QzRCCivlsYwgPiBkacSDbzsgIzVDNEMKK+WxjSA+IHNoxKs7ICM1QzRECivlsY4gPiBzaMStOyAjNUM0RQor5bGPID4gcMOtbmc7ICM1QzRGCivlsZAgPiBqxKs7ICM1QzUwCivlsZEgPiB4acOoOyAjNUM1MQor5bGSID4gY2jDqW47ICM1QzUyCivlsZMgPiB4w6w7ICM1QzUzCivlsZQgPiBuw607ICM1QzU0CivlsZUgPiB6aMSDbjsgIzVDNTUKK+WxliA+IHjEqzsgIzVDNTYKK+WxmCA+IG3Eg247ICM1QzU4CivlsZkgPiDEkzsgIzVDNTkKK+WxmiA+IGzDsnU7ICM1QzVBCivlsZsgPiBww61uZzsgIzVDNUIKK+WxnCA+IHTDrDsgIzVDNUMKK+WxnSA+IGbDqGk7ICM1QzVECivlsZ4gPiBzaMWtOyAjNUM1RQor5bGfID4geGnDqDsgIzVDNUYKK+WxoCA+IHTDujsgIzVDNjAKK+WxoSA+IGzHmjsgIzVDNjEKK+WxoiA+IGzHmjsgIzVDNjIKK+WxoyA+IHjErTsgIzVDNjMKK+WxpCA+IGPDqW5nOyAjNUM2NAor5bGlID4gbMeaOyAjNUM2NQor5bGmID4gasO5OyAjNUM2Ngor5bGnID4geGnDqDsgIzVDNjcKK+WxqCA+IGrDuTsgIzVDNjgKK+WxqSA+IGp1xJM7ICM1QzY5CivlsaogPiBsacOhbzsgIzVDNkEKK+WxqyA+IGp1w6k7ICM1QzZCCivlsawgPiBzaMWtOyAjNUM2Qwor5bGtID4geMOsOyAjNUM2RAor5bGuID4gY2jDqDsgIzVDNkUKK+WxryA+IHTDum47ICM1QzZGCivlsbAgPiBuw6w7ICM1QzcwCivlsbEgPiBzaMSBbjsgIzVDNzEKK+WxsyA+IHhpxIFuOyAjNUM3Mwor5bG0ID4gbMOsOyAjNUM3NAor5bG1ID4geHXEkzsgIzVDNzUKK+WxuCA+IGzDs25nOyAjNUM3OAor5bG5ID4gecOsOyAjNUM3OQor5bG6ID4gccStOyAjNUM3QQor5bG7ID4gcsOobjsgIzVDN0IKK+WxvCA+IHfDuTsgIzVDN0MKK+WxvSA+IGjDoG47ICM1QzdECivlsb4gPiBzaMSTbjsgIzVDN0UKK+WxvyA+IHnFrTsgIzVDN0YKK+WygCA+IGNoxas7ICM1QzgwCivlsoEgPiBzw7lpOyAjNUM4MQor5bKCID4gccStOyAjNUM4Mgor5bKEID4geXXDqDsgIzVDODQKK+WyhSA+IGLEg247ICM1Qzg1CivlsoYgPiB5xINvOyAjNUM4Ngor5bKHID4gw6FuZzsgIzVDODcKK+WyiCA+IHnDoTsgIzVDODgKK+WyiSA+IHfDuTsgIzVDODkKK+WyiiA+IGppw6k7ICM1QzhBCivlsosgPiDDqDsgIzVDOEIKK+WyjCA+IGrDrTsgIzVDOEMKK+WyjSA+IHFpxIFuOyAjNUM4RAor5bKOID4gZsSTbjsgIzVDOEUKK+WyjyA+IHl1w6FuOyAjNUM4Rgor5bKQID4gccOtOyAjNUM5MAor5bKRID4gY8OpbjsgIzVDOTEKK+WykiA+IHFpw6FuOyAjNUM5Mgor5bKTID4gccOtOyAjNUM5Mwor5bKUID4gY2jDoDsgIzVDOTQKK+WylSA+IGppw6g7ICM1Qzk1CivlspYgPiBxxas7ICM1Qzk2CivlspcgPiBnxINuZzsgIzVDOTcKK+WymCA+IHhpw6BuOyAjNUM5OAor5bKZID4gw6BvOyAjNUM5OQor5bKaID4gbMOhbjsgIzVDOUEKK+WymyA+IGTEg287ICM1QzlCCivlspwgPiBixIE7ICM1QzlDCivlsp0gPiB6w7lvOyAjNUM5RAor5bKeID4gesO5bzsgIzVDOUUKK+WynyA+IHnEg25nOyAjNUM5Rgor5bKgID4gasO5OyAjNUNBMAor5bKhID4gZ8SBbmc7ICM1Q0ExCivlsqIgPiBrxJU7ICM1Q0EyCivlsqMgPiBnxY91OyAjNUNBMwor5bKkID4geHXDqDsgIzVDQTQKK+WypSA+IGLEk2k7ICM1Q0E1CivlsqYgPiBsw6w7ICM1Q0E2CivlsqcgPiB0acOhbzsgIzVDQTcKK+WyqCA+IGrFqzsgIzVDQTgKK+WyqSA+IHnDoW47ICM1Q0E5CivlsqogPiBmw7o7ICM1Q0FBCivlsqsgPiB4w6x1OyAjNUNBQgor5bKsID4gamnEgzsgIzVDQUMKK+WyrSA+IGzDrW5nOyAjNUNBRAor5bKuID4gdMO6bzsgIzVDQUUKK+WyryA+IHDEk2k7ICM1Q0FGCivlsrAgPiB5xY91OyAjNUNCMAor5bKxID4gZMOgaTsgIzVDQjEKK+WysiA+IGt1w6BuZzsgIzVDQjIKK+WysyA+IHl1w6g7ICM1Q0IzCivlsrQgPiBxxas7ICM1Q0I0CivlsrUgPiBow7k7ICM1Q0I1CivlsrYgPiBww7I7ICM1Q0I2CivlsrcgPiBtw61uOyAjNUNCNwor5bK4ID4gw6BuOyAjNUNCOAor5bK5ID4gdGnDoW87ICM1Q0I5CivlsrogPiBsw61uZzsgIzVDQkEKK+WyuyA+IGNow607ICM1Q0JCCivlsr0gPiBkxY1uZzsgIzVDQkQKK+WyvyA+IGvFq2k7ICM1Q0JGCivls4AgPiB4w6x1OyAjNUNDMAor5bOBID4gbcSDbzsgIzVDQzEKK+WzgiA+IHTDs25nOyAjNUNDMgor5bODID4geHXDqTsgIzVDQzMKK+WzhCA+IHnDrDsgIzVDQzQKK+WzhiA+IGjEkzsgIzVDQzYKK+WzhyA+IGvEkzsgIzVDQzcKK+WziCA+IGzDuW87ICM1Q0M4Civls4kgPiDEkzsgIzVDQzkKK+WziiA+IGbDuTsgIzVDQ0EKK+WziyA+IHjDum47ICM1Q0NCCivls4wgPiBkacOpOyAjNUNDQwor5bONID4gbMO5OyAjNUNDRAor5bOOID4gxIFuOyAjNUNDRQor5bOPID4gxJVyOyAjNUNDRgor5bOQID4gZ8SBaTsgIzVDRDAKK+WzkSA+IHF1w6FuOyAjNUNEMQor5bOSID4gdMOzbmc7ICM1Q0QyCivls5MgPiB5w607ICM1Q0QzCivls5QgPiBtxa07ICM1Q0Q0Civls5UgPiBzaMOtOyAjNUNENQor5bOWID4gxIFuOyAjNUNENgor5bOXID4gd8OpaTsgIzVDRDcKK+WzmCA+IGjFqzsgIzVDRDgKK+WzmSA+IHpow6w7ICM1Q0Q5Civls5ogPiBtw6w7ICM1Q0RBCivls5sgPiBsxK07ICM1Q0RCCivls5wgPiBqxKs7ICM1Q0RDCivls50gPiB0w7NuZzsgIzVDREQKK+WzniA+IHfDqWk7ICM1Q0RFCivls58gPiB5w7J1OyAjNUNERgor5bOhID4geGnDoTsgIzVDRTEKK+WzoiA+IGzErTsgIzVDRTIKK+WzoyA+IHnDoW87ICM1Q0UzCivls6QgPiBqacOgbzsgIzVDRTQKK+WzpSA+IHpoxJNuZzsgIzVDRTUKK+WzpiA+IGx1w6FuOyAjNUNFNgor5bOnID4gamnEgW87ICM1Q0U3Civls6ggPiDDqTsgIzVDRTgKK+WzqSA+IMOpOyAjNUNFOQor5bOqID4gecO5OyAjNUNFQQor5bOrID4gecOpOyAjNUNFQgor5bOsID4gYsWrOyAjNUNFQwor5bOtID4gcWnDoG87ICM1Q0VECivls64gPiBxxatuOyAjNUNFRQor5bOvID4gZsSTbmc7ICM1Q0VGCivls7AgPiBmxJNuZzsgIzVDRjAKK+WzsSA+IG7DoW87ICM1Q0YxCivls7IgPiBsxK07ICM1Q0YyCivls7MgPiB5w7N1OyAjNUNGMwor5bO0ID4geGnDoG47ICM1Q0Y0Civls7UgPiBow7NuZzsgIzVDRjUKK+WztiA+IGTEg287ICM1Q0Y2Civls7cgPiBzaMSTbjsgIzVDRjcKK+WzuCA+IGNow6luZzsgIzVDRjgKK+WzuSA+IHTDujsgIzVDRjkKK+WzuiA+IGfElW5nOyAjNUNGQQor5bO7ID4gasO5bjsgIzVDRkIKK+WzvCA+IGjDoG87ICM1Q0ZDCivls70gPiB4acOhOyAjNUNGRAor5bO+ID4gecSrbjsgIzVDRkUKK+WzvyA+IHnFrTsgIzVDRkYKK+W0gCA+IGzDoG5nOyAjNUQwMAor5bSBID4ga8SDbjsgIzVEMDEKK+W0giA+IGzDoW87ICM1RDAyCivltIMgPiBsw6FpOyAjNUQwMwor5bSEID4geGnEg247ICM1RDA0CivltIUgPiBxdcOoOyAjNUQwNQor5bSGID4ga8WNbmc7ICM1RDA2CivltIcgPiBjaMOzbmc7ICM1RDA3CivltIggPiBjaMOzbmc7ICM1RDA4CivltIkgPiB0w6A7ICM1RDA5CivltIogPiBsaW47ICM1RDBBCivltIsgPiBodcOhOyAjNUQwQgor5bSMID4gasWrOyAjNUQwQwor5bSNID4gbMOhaTsgIzVEMEQKK+W0jiA+IHHDrTsgIzVEMEUKK+W0jyA+IG3DrW47ICM1RDBGCivltJAgPiBrxatuOyAjNUQxMAor5bSRID4ga8WrbjsgIzVEMTEKK+W0kiA+IHrDujsgIzVEMTIKK+W0kyA+IGfDuTsgIzVEMTMKK+W0lCA+IGPFq2k7ICM1RDE0CivltJUgPiB5w6E7ICM1RDE1CivltJYgPiB5w6E7ICM1RDE2CivltJcgPiBnxINuZzsgIzVEMTcKK+W0mCA+IGzDum47ICM1RDE4CivltJkgPiBsw7puOyAjNUQxOQor5bSaID4gbMOpbmc7ICM1RDFBCivltJsgPiBqdcOpOyAjNUQxQgor5bScID4gZMWrbzsgIzVEMUMKK+W0nSA+IHpoxJNuZzsgIzVEMUQKK+W0niA+IGfFq287ICM1RDFFCivltJ8gPiB5w61uOyAjNUQxRgor5bSgID4gZMWNbmc7ICM1RDIwCivltKEgPiBow6FuOyAjNUQyMQor5bSiID4gemjEk25nOyAjNUQyMgor5bSjID4gd8SVaTsgIzVEMjMKK+W0pCA+IHnDoW87ICM1RDI0CivltKUgPiBwxK07ICM1RDI1CivltKYgPiB5xIFuOyAjNUQyNgor5bSnID4gc8WNbmc7ICM1RDI3CivltKggPiBqacOpOyAjNUQyOAor5bSpID4gYsSTbmc7ICM1RDI5CivltKogPiB6w7o7ICM1RDJBCivltKsgPiBqdcOpOyAjNUQyQgor5bSsID4gZMWNbmc7ICM1RDJDCivltK0gPiB6aMSDbjsgIzVEMkQKK+W0riA+IGfDuTsgIzVEMkUKK+W0ryA+IHnDrW47ICM1RDJGCivltLEgPiB6w6k7ICM1RDMxCivltLIgPiBodcOhbmc7ICM1RDMyCivltLMgPiB5w7o7ICM1RDMzCivltLQgPiB3xJNpOyAjNUQzNAor5bS1ID4gecOhbmc7ICM1RDM1CivltLYgPiBmxJNuZzsgIzVEMzYKK+W0tyA+IHHDrXU7ICM1RDM3CivltLggPiBkw7luOyAjNUQzOAor5bS5ID4gdMOtOyAjNUQzOQor5bS6ID4gecStOyAjNUQzQQor5bS7ID4gemjDrDsgIzVEM0IKK+W0vCA+IHNow6w7ICM1RDNDCivltL0gPiB6xINpOyAjNUQzRAor5bS+ID4gecSDbzsgIzVEM0UKK+W0vyA+IMOoOyAjNUQzRgor5bWAID4gemjDuTsgIzVENDAKK+W1gSA+IGvEgW47ICM1RDQxCivltYIgPiBsx5w7ICM1RDQyCivltYMgPiB5xINuOyAjNUQ0Mwor5bWEID4gbcSVaTsgIzVENDQKK+W1hSA+IGfEgW47ICM1RDQ1CivltYYgPiBqxKs7ICM1RDQ2CivltYcgPiBqxKs7ICM1RDQ3CivltYggPiBodcSDbjsgIzVENDgKK+W1iSA+IHTDrW5nOyAjNUQ0OQor5bWKID4gc2jDqG5nOyAjNUQ0QQor5bWLID4gbcOpaTsgIzVENEIKK+W1jCA+IHFpw6BuOyAjNUQ0Qwor5bWNID4gd8O5OyAjNUQ0RAor5bWOID4gecO6OyAjNUQ0RQor5bWPID4gesWNbmc7ICM1RDRGCivltZAgPiBsw6FuOyAjNUQ1MAor5bWRID4ganXDqTsgIzVENTEKK+W1kiA+IHnDoW47ICM1RDUyCivltZMgPiB5w6FuOyAjNUQ1Mwor5bWUID4gd8SVaTsgIzVENTQKK+W1lSA+IHrFjW5nOyAjNUQ1NQor5bWWID4gY2jDoTsgIzVENTYKK+W1lyA+IHPDuWk7ICM1RDU3CivltZggPiByw7NuZzsgIzVENTgKK+W1miA+IHHEq247ICM1RDVBCivltZsgPiB5w7o7ICM1RDVCCivltZ0gPiBsxY91OyAjNUQ1RAor5bWeID4gdMO6OyAjNUQ1RQor5bWfID4gZMWraTsgIzVENUYKK+W1oCA+IHjEqzsgIzVENjAKK+W1oSA+IHfEk25nOyAjNUQ2MQor5bWiID4gY8SBbmc7ICM1RDYyCivltaMgPiBkxIFuZzsgIzVENjMKK+W1pCA+IGjDs25nOyAjNUQ2NAor5bWlID4gamnDqTsgIzVENjUKK+W1piA+IMOhaTsgIzVENjYKK+W1pyA+IGzDrXU7ICM1RDY3CivltaggPiB3xa07ICM1RDY4CivltakgPiBzxY1uZzsgIzVENjkKK+W1qiA+IHFpxIFvOyAjNUQ2QQor5bWrID4gesSrOyAjNUQ2Qgor5bWsID4gd8OpaTsgIzVENkMKK+W1rSA+IGLEk25nOyAjNUQ2RAor5bWuID4gZGnEgW47ICM1RDZFCivlta8gPiBjw7pvOyAjNUQ2Rgor5bWwID4gcWnEg247ICM1RDcwCivltbEgPiB5xY9uZzsgIzVENzEKK+W1siA+IG5pw6g7ICM1RDcyCivltbMgPiBjw7pvOyAjNUQ3Mwor5bW0ID4gasOtOyAjNUQ3NAor5bW3ID4gc8WPbmc7ICM1RDc3CivltbggPiB6xY1uZzsgIzVENzgKK+W1uSA+IGppw6BuZzsgIzVENzkKK+W1uiA+IGxpw6FvOyAjNUQ3QQor5bW7ID4ga2FuZzsgIzVEN0IKK+W1vCA+IGNoxINuOyAjNUQ3Qwor5bW9ID4gZGnDqTsgIzVEN0QKK+W1viA+IGPEk247ICM1RDdFCivltb8gPiBkxK1uZzsgIzVEN0YKK+W2gCA+IHTFqzsgIzVEODAKK+W2gSA+IGzFj3U7ICM1RDgxCivltoIgPiB6aMOgbmc7ICM1RDgyCivltoMgPiB6aMSDbjsgIzVEODMKK+W2hCA+IHpoxINuOyAjNUQ4NAor5baFID4gw6FvOyAjNUQ4NQor5baGID4gY8OhbzsgIzVEODYKK+W2hyA+IHHFqzsgIzVEODcKK+W2iCA+IHFpxIFuZzsgIzVEODgKK+W2iSA+IHrFq2k7ICM1RDg5CivltoogPiB6xa1pOyAjNUQ4QQor5baLID4gZMSDbzsgIzVEOEIKK+W2jCA+IGTEg287ICM1RDhDCivlto0gPiB4w607ICM1RDhECivlto4gPiB5w7k7ICM1RDhFCivlto8gPiBiw7M7ICM1RDhGCivltpAgPiBsw7NuZzsgIzVEOTAKK+W2kSA+IHhpxINuZzsgIzVEOTEKK+W2kiA+IGPDqW5nOyAjNUQ5Mgor5baTID4gYsWNOyAjNUQ5Mwor5baUID4gccSrbjsgIzVEOTQKK+W2lSA+IGppxIFvOyAjNUQ5NQor5baWID4gecSDbjsgIzVEOTYKK+W2lyA+IGzDoW87ICM1RDk3CivltpggPiB6aMOgbjsgIzVEOTgKK+W2mSA+IGzDrW47ICM1RDk5CivltpogPiBsacOhbzsgIzVEOUEKK+W2myA+IGxpw6FvOyAjNUQ5Qgor5bacID4gasSrbjsgIzVEOUMKK+W2nSA+IGTDqG5nOyAjNUQ5RAor5baeID4gZMO5bzsgIzVEOUUKK+W2nyA+IHrFq247ICM1RDlGCivltqAgPiBqacOgbzsgIzVEQTAKK+W2oSA+IGfDuWk7ICM1REExCivltqIgPiB5w6FvOyAjNURBMgor5bajID4gcWnDoW87ICM1REEzCivltqQgPiB5w6FvOyAjNURBNAor5balID4ganXDqTsgIzVEQTUKK+W2piA+IHpoxIFuOyAjNURBNgor5banID4gecOsOyAjNURBNwor5baoID4geHXDqTsgIzVEQTgKK+W2qSA+IG7DoW87ICM1REE5CivltqogPiB5w6g7ICM1REFBCivltqsgPiB5w6g7ICM1REFCCivltqwgPiB5w607ICM1REFDCivltq0gPiDDqDsgIzVEQUQKK+W2riA+IHhpxINuOyAjNURBRQor5bavID4gasOtOyAjNURBRgor5bawID4geGnDqDsgIzVEQjAKK+W2sSA+IGvElTsgIzVEQjEKK+W2siA+IHjEqzsgIzVEQjIKK+W2syA+IGTDrDsgIzVEQjMKK+W2tCA+IMOgbzsgIzVEQjQKK+W2tSA+IHrFrWk7ICM1REI1CivltrcgPiBuw6w7ICM1REI3CivltrggPiByw7NuZzsgIzVEQjgKK+W2uSA+IGTEg287ICM1REI5CivltrogPiBsxK1uZzsgIzVEQkEKK+W2uyA+IHrDoTsgIzVEQkIKK+W2vCA+IHnFrTsgIzVEQkMKK+W2vSA+IHl1w6g7ICM1REJECivltr4gPiB5xK1uOyAjNURCRQor5beAID4gamnEkzsgIzVEQzAKK+W3gSA+IGzDrDsgIzVEQzEKK+W3giA+IHPFrWk7ICM1REMyCivlt4MgPiBsw7NuZzsgIzVEQzMKK+W3hCA+IGzDs25nOyAjNURDNAor5beFID4gZGnEgW47ICM1REM1Civlt4YgPiB5w61uZzsgIzVEQzYKK+W3hyA+IHjEqzsgIzVEQzcKK+W3iCA+IGrDujsgIzVEQzgKK+W3iSA+IGNow6FuOyAjNURDOQor5beKID4gecStbmc7ICM1RENBCivlt4sgPiBrxatpOyAjNURDQgor5beMID4gecOhbjsgIzVEQ0MKK+W3jSA+IHfEk2k7ICM1RENECivlt44gPiBuw6FvOyAjNURDRQor5bePID4gcXXDoW47ICM1RENGCivlt5AgPiBjaMSDbzsgIzVERDAKK+W3kSA+IGN1w6FuOyAjNUREMQor5beSID4gbHXDoW47ICM1REQyCivlt5MgPiBkacSBbjsgIzVERDMKK+W3lCA+IGRpxIFuOyAjNURENAor5beWID4gecOhbjsgIzVERDYKK+W3lyA+IHnDoW47ICM1REQ3Civlt5ggPiB5xINuOyAjNUREOAor5beZID4gbsOhbzsgIzVERDkKK+W3miA+IHnEg247ICM1RERBCivlt5sgPiBjaHXEgW47ICM1RERCCivlt5wgPiBnw7lpOyAjNUREQwor5bedID4gY2h1xIFuOyAjNURERAor5beeID4gemjFjXU7ICM1RERFCivlt58gPiBodcSBbmc7ICM1RERGCivlt6AgPiBqxKtuZzsgIzVERTAKK+W3oSA+IHjDum47ICM1REUxCivlt6IgPiBjaMOhbzsgIzVERTIKK+W3oyA+IGNow6FvOyAjNURFMwor5bekID4gbGnEkzsgIzVERTQKK+W3pSA+IGfFjW5nOyAjNURFNQor5bemID4gesWtbzsgIzVERTYKK+W3pyA+IHFpxINvOyAjNURFNwor5beoID4gasO5OyAjNURFOAor5bepID4gZ8WPbmc7ICM1REU5Civlt6sgPiB3xas7ICM1REVCCivlt64gPiBjaMSBaTsgIzVERUUKK+W3ryA+IHHDrXU7ICM1REVGCivlt7AgPiBxw611OyAjNURGMAor5bexID4gasStOyAjNURGMQor5beyID4gecStOyAjNURGMgor5bezID4gc8OsOyAjNURGMwor5be0ID4gYsSBOyAjNURGNAor5be1ID4gemjEqzsgIzVERjUKK+W3tiA+IHpoxIFvOyAjNURGNgor5be3ID4geGnDoG5nOyAjNURGNwor5be4ID4gecOtOyAjNURGOAor5be5ID4gasStbjsgIzVERjkKK+W3uiA+IHjDuW47ICM1REZBCivlt7sgPiBqdcOgbjsgIzVERkIKK+W3vSA+IHjDuW47ICM1REZECivlt74gPiBqxKtuOyAjNURGRQor5be/ID4gZsO6OyAjNURGRgor5biAID4gesSBOyAjNUUwMAor5biBID4gYsOsOyAjNUUwMQor5biCID4gc2jDrDsgIzVFMDIKK+W4gyA+IGLDuTsgIzVFMDMKK+W4hCA+IGTEq25nOyAjNUUwNAor5biFID4gc2h1w6BpOyAjNUUwNQor5biGID4gZsSBbjsgIzVFMDYKK+W4hyA+IG5pw6g7ICM1RTA3CivluIggPiBzaMSrOyAjNUUwOAor5biJID4gZsSTbjsgIzVFMDkKK+W4iiA+IHDDoDsgIzVFMEEKK+W4iyA+IHpoxK07ICM1RTBCCivluIwgPiB4xKs7ICM1RTBDCivluI0gPiBow7k7ICM1RTBECivluI4gPiBkw6BuOyAjNUUwRQor5biPID4gd8OpaTsgIzVFMEYKK+W4kCA+IHpow6BuZzsgIzVFMTAKK+W4kSA+IHTEg25nOyAjNUUxMQor5biSID4gZMOgaTsgIzVFMTIKK+W4kyA+IG3DoDsgIzVFMTMKK+W4lCA+IHDDqGk7ICM1RTE0CivluJUgPiBww6A7ICM1RTE1CivluJYgPiB0acSTOyAjNUUxNgor5biXID4gZsO6OyAjNUUxNwor5biYID4gbGnDoW47ICM1RTE4CivluJkgPiB6aMOsOyAjNUUxOQor5biaID4gemjFj3U7ICM1RTFBCivluJsgPiBiw7M7ICM1RTFCCivluJwgPiB6aMOsOyAjNUUxQwor5bidID4gZMOsOyAjNUUxRAor5bieID4gbcOyOyAjNUUxRQor5bifID4gecOsOyAjNUUxRgor5bigID4gecOsOyAjNUUyMAor5bihID4gcMOtbmc7ICM1RTIxCivluKIgPiBxacOgOyAjNUUyMgor5bijID4ganXDoG47ICM1RTIzCivluKQgPiByw7o7ICM1RTI0CivluKUgPiBzaHXDoGk7ICM1RTI1CivluKYgPiBkw6BpOyAjNUUyNgor5binID4gemjDqG5nOyAjNUUyNwor5bioID4gc2jDuWk7ICM1RTI4CivluKkgPiBxacOgbzsgIzVFMjkKK+W4qiA+IHpoxJNuOyAjNUUyQQor5birID4gc2jEqzsgIzVFMkIKK+W4rCA+IHHDum47ICM1RTJDCivluK0gPiB4w607ICM1RTJECivluK4gPiBixIFuZzsgIzVFMkUKK+W4ryA+IGTDoGk7ICM1RTJGCivluLAgPiBnxatpOyAjNUUzMAor5bixID4gY2jDs3U7ICM1RTMxCivluLIgPiBww61uZzsgIzVFMzIKK+W4syA+IHpow6BuZzsgIzVFMzMKK+W4tCA+IHNoxIE7ICM1RTM0CivluLUgPiB3xIFuOyAjNUUzNQor5bi2ID4gZMOgaTsgIzVFMzYKK+W4tyA+IHfDqWk7ICM1RTM3CivluLggPiBjaMOhbmc7ICM1RTM4CivluLkgPiBzaMOgOyAjNUUzOQor5bi6ID4gccOtOyAjNUUzQQor5bi7ID4gesOpOyAjNUUzQgor5bi8ID4gZ8O6bzsgIzVFM0MKK+W4vSA+IG3DoG87ICM1RTNECivluL4gPiBkxa07ICM1RTNFCivluL8gPiBow7N1OyAjNUUzRgor5bmAID4gemjDqG5nOyAjNUU0MAor5bmBID4geMWrOyAjNUU0MQor5bmCID4gbcOsOyAjNUU0Mgor5bmDID4gd8OpaTsgIzVFNDMKK+W5hCA+IHfDsjsgIzVFNDQKK+W5hSA+IGbDujsgIzVFNDUKK+W5hiA+IHnDrDsgIzVFNDYKK+W5hyA+IGLEgW5nOyAjNUU0Nwor5bmIID4gcMOtbmc7ICM1RTQ4CivluYogPiBnxY1uZzsgIzVFNEEKK+W5iyA+IHDDoW47ICM1RTRCCivluYwgPiBodcSDbmc7ICM1RTRDCivluY0gPiBkxIFvOyAjNUU0RAor5bmOID4gbcOsOyAjNUU0RQor5bmPID4gamnEgTsgIzVFNEYKK+W5kCA+IHTDqW5nOyAjNUU1MAor5bmRID4gaMWraTsgIzVFNTEKK+W5kiA+IHpoxY1uZzsgIzVFNTIKK+W5kyA+IHNoxIFuOyAjNUU1Mwor5bmUID4gbcOgbjsgIzVFNTQKK+W5lSA+IG3DuTsgIzVFNTUKK+W5liA+IGJpxIFvOyAjNUU1Ngor5bmXID4gZ8O6bzsgIzVFNTcKK+W5mCA+IHrDqTsgIzVFNTgKK+W5mSA+IG3DuTsgIzVFNTkKK+W5miA+IGLEgW5nOyAjNUU1QQor5bmbID4gemjDoG5nOyAjNUU1Qgor5bmcID4gasStb25nOyAjNUU1Qwor5bmdID4gY2jEg247ICM1RTVECivluZ4gPiBmw7o7ICM1RTVFCivluZ8gPiB6aMOsOyAjNUU1Rgor5bmgID4gaMWrOyAjNUU2MAor5bmhID4gZsSBbjsgIzVFNjEKK+W5oiA+IGNodcOhbmc7ICM1RTYyCivluaMgPiBiw6w7ICM1RTYzCivluaYgPiBtw6w7ICM1RTY2CivluacgPiBxacSBbzsgIzVFNjcKK+W5qCA+IGNoxIFuOyAjNUU2OAor5bmpID4gZsOpbjsgIzVFNjkKK+W5qiA+IG3DqW5nOyAjNUU2QQor5bmrID4gYsSBbmc7ICM1RTZCCivluawgPiBjaMOzdTsgIzVFNkMKK+W5rSA+IG1pw6g7ICM1RTZECivlua4gPiBjaMO6OyAjNUU2RQor5bmvID4gamnDqTsgIzVFNkYKK+W5sCA+IHhpxINuOyAjNUU3MAor5bmxID4gbMOhbjsgIzVFNzEKK+W5siA+IGfEgW47ICM1RTcyCivlubMgPiBww61uZzsgIzVFNzMKK+W5tCA+IG5pw6FuOyAjNUU3NAor5bm1ID4gcWnEgW47ICM1RTc1CivlubYgPiBiw6xuZzsgIzVFNzYKK+W5tyA+IGLDrG5nOyAjNUU3Nwor5bm4ID4geMOsbmc7ICM1RTc4CivlubkgPiBnw6BuOyAjNUU3OQor5bm6ID4gecSBbzsgIzVFN0EKK+W5uyA+IGh1w6BuOyAjNUU3Qgor5bm8ID4gecOydTsgIzVFN0MKK+W5vSA+IHnFjXU7ICM1RTdECivlub4gPiBqxK07ICM1RTdFCivlub8gPiB5xINuOyAjNUU3Rgor5bqAID4gcMStOyAjNUU4MAor5bqBID4gdMSrbmc7ICM1RTgxCivluoIgPiB6w6g7ICM1RTgyCivluoMgPiBndcSDbmc7ICM1RTgzCivluoQgPiB6aHXEgW5nOyAjNUU4NAor5bqFID4gbW87ICM1RTg1CivluoYgPiBxw6xuZzsgIzVFODYKK+W6hyA+IGLDrDsgIzVFODcKK+W6iCA+IHHDrW47ICM1RTg4CivluokgPiBkw7luOyAjNUU4OQor5bqKID4gY2h1w6FuZzsgIzVFOEEKK+W6iyA+IGfFrWk7ICM1RThCCivluowgPiB5xIM7ICM1RThDCivluo0gPiBiw6BpOyAjNUU4RAor5bqOID4gamnDqDsgIzVFOEUKK+W6jyA+IHjDuTsgIzVFOEYKK+W6kCA+IGzDujsgIzVFOTAKK+W6kSA+IHfFrTsgIzVFOTEKK+W6kyA+IGvDuTsgIzVFOTMKK+W6lCA+IHnDrG5nOyAjNUU5NAor5bqVID4gZMStOyAjNUU5NQor5bqWID4gcMOhbzsgIzVFOTYKK+W6lyA+IGRpw6BuOyAjNUU5Nwor5bqYID4gecSBOyAjNUU5OAor5bqZID4gbWnDoG87ICM1RTk5CivlupogPiBnxJNuZzsgIzVFOUEKK+W6myA+IGPEqzsgIzVFOUIKK+W6nCA+IGbFrTsgIzVFOUMKK+W6nSA+IHTDs25nOyAjNUU5RAor5bqeID4gcMOhbmc7ICM1RTlFCivlup8gPiBmw6hpOyAjNUU5Rgor5bqgID4geGnDoW5nOyAjNUVBMAor5bqhID4gecStOyAjNUVBMQor5bqiID4gemjDrDsgIzVFQTIKK+W6oyA+IHRpxIFvOyAjNUVBMwor5bqkID4gemjDrDsgIzVFQTQKK+W6pSA+IHjEq3U7ICM1RUE1CivluqYgPiBkw7k7ICM1RUE2CivluqcgPiB6w7lvOyAjNUVBNwor5bqoID4geGnEgW87ICM1RUE4CivluqkgPiB0w7o7ICM1RUE5CivluqogPiBnxa1pOyAjNUVBQQor5bqrID4ga8O5OyAjNUVBQgor5bqsID4gcMOhbmc7ICM1RUFDCivluq0gPiB0w61uZzsgIzVFQUQKK+W6riA+IHnFj3U7ICM1RUFFCivluq8gPiBixas7ICM1RUFGCivlurAgPiBkxKtuZzsgIzVFQjAKK+W6sSA+IGNoxJVuZzsgIzVFQjEKK+W6siA+IGzDoWk7ICM1RUIyCivlurMgPiBixJNpOyAjNUVCMwor5bq0ID4gasOtOyAjNUVCNAor5bq1ID4gxIFuOyAjNUVCNQor5bq2ID4gc2jDuTsgIzVFQjYKK+W6tyA+IGvEgW5nOyAjNUVCNwor5bq4ID4gecWNbmc7ICM1RUI4CivlurkgPiB0xa1vOyAjNUVCOQor5bq6ID4gc8WNbmc7ICM1RUJBCivlursgPiBzaMO5OyAjNUVCQgor5bq8ID4gccStbmc7ICM1RUJDCivlur0gPiB5w7k7ICM1RUJECivlur4gPiB5xa07ICM1RUJFCivlur8gPiBtacOgbzsgIzVFQkYKK+W7gCA+IHPFjXU7ICM1RUMwCivlu4EgPiBjw6g7ICM1RUMxCivlu4IgPiB4acSBbmc7ICM1RUMyCivlu4MgPiBmw6hpOyAjNUVDMwor5buEID4gasOsdTsgIzVFQzQKK+W7hSA+IGjDqTsgIzVFQzUKK+W7hiA+IGjDuWk7ICM1RUM2Civlu4cgPiBsw6x1OyAjNUVDNwor5buIID4gc2jDoDsgIzVFQzgKK+W7iSA+IGxpw6FuOyAjNUVDOQor5buKID4gbMOhbmc7ICM1RUNBCivlu4sgPiBzxY11OyAjNUVDQgor5buMID4gamnDoG47ICM1RUNDCivlu40gPiBwxY91OyAjNUVDRAor5buOID4gccStbmc7ICM1RUNFCivlu48gPiBqw6x1OyAjNUVDRgor5buQID4gasOsdTsgIzVFRDAKK+W7kSA+IHHDrW47ICM1RUQxCivlu5IgPiDDoW87ICM1RUQyCivlu5MgPiBrw7lvOyAjNUVEMwor5buUID4gbMOzdTsgIzVFRDQKK+W7lSA+IHnEq247ICM1RUQ1Civlu5YgPiBsacOgbzsgIzVFRDYKK+W7lyA+IGTDoGk7ICM1RUQ3Civlu5ggPiBsw7k7ICM1RUQ4Civlu5kgPiB5w6w7ICM1RUQ5Civlu5ogPiBjaMO6OyAjNUVEQQor5bubID4gY2jDoW47ICM1RURCCivlu5wgPiB0xas7ICM1RURDCivlu50gPiBzxKs7ICM1RURECivlu54gPiB4xKtuOyAjNUVERQor5bufID4gbWnDoG87ICM1RURGCivlu6AgPiBjaMSDbmc7ICM1RUUwCivlu6EgPiB3xa07ICM1RUUxCivlu6IgPiBmw6hpOyAjNUVFMgor5bujID4gZ3XEg25nOyAjNUVFMwor5bulID4ga3XDoGk7ICM1RUU1Civlu6YgPiBiw6w7ICM1RUU2Civlu6cgPiBxacOhbmc7ICM1RUU3Civlu6ggPiB4acOoOyAjNUVFOAor5bupID4gbMStbjsgIzVFRTkKK+W7qiA+IGzErW47ICM1RUVBCivlu6sgPiBsacOhbzsgIzVFRUIKK+W7rCA+IGzDujsgIzVFRUMKK+W7riA+IHnDrW5nOyAjNUVFRQor5buvID4geGnEgW47ICM1RUVGCivlu7AgPiB0xKtuZzsgIzVFRjAKK+W7sSA+IHnFjW5nOyAjNUVGMQor5buyID4gbMOtOyAjNUVGMgor5buzID4gdMSrbmc7ICM1RUYzCivlu7QgPiB5xK1uOyAjNUVGNAor5bu1ID4geMO6bjsgIzVFRjUKK+W7tiA+IHnDoW47ICM1RUY2Civlu7cgPiB0w61uZzsgIzVFRjcKK+W7uCA+IGTDrTsgIzVFRjgKK+W7uSA+IHDDsjsgIzVFRjkKK+W7uiA+IGppw6BuOyAjNUVGQQor5bu7ID4gaMO6aTsgIzVFRkIKK+W7vCA+IG7Eg2k7ICM1RUZDCivlu70gPiBow7ppOyAjNUVGRAor5bu+ID4gZ8Oybmc7ICM1RUZFCivlu78gPiBuacOgbjsgIzVFRkYKK+W8gCA+IGvEgWk7ICM1RjAwCivlvIEgPiBiacOgbjsgIzVGMDEKK+W8giA+IHnDrDsgIzVGMDIKK+W8gyA+IHHDrDsgIzVGMDMKK+W8hCA+IG7Dsm5nOyAjNUYwNAor5byFID4gZsOpbjsgIzVGMDUKK+W8hiA+IGrFrTsgIzVGMDYKK+W8hyA+IHnEg247ICM1RjA3CivlvIggPiB5w6w7ICM1RjA4CivlvIkgPiB6w6BuZzsgIzVGMDkKK+W8iiA+IGLDrDsgIzVGMEEKK+W8iyA+IHnDrDsgIzVGMEIKK+W8jCA+IHnEqzsgIzVGMEMKK+W8jSA+IMOocjsgIzVGMEQKK+W8jiA+IHPEgW47ICM1RjBFCivlvI8gPiBzaMOsOyAjNUYwRgor5byQID4gw6hyOyAjNUYxMAor5byRID4gc2jDrDsgIzVGMTEKK+W8kiA+IHNow6w7ICM1RjEyCivlvJMgPiBnxY1uZzsgIzVGMTMKK+W8lCA+IGRpw6BvOyAjNUYxNAor5byVID4gecStbjsgIzVGMTUKK+W8liA+IGjDuTsgIzVGMTYKK+W8lyA+IGbDujsgIzVGMTcKK+W8mCA+IGjDs25nOyAjNUYxOAor5byZID4gd8WrOyAjNUYxOQor5byaID4gdMO6aTsgIzVGMUEKK+W8myA+IGNow607ICM1RjFCCivlvJwgPiBqacOgbmc7ICM1RjFDCivlvJ0gPiBiw6A7ICM1RjFECivlvJ4gPiBzaMSVbjsgIzVGMUUKK+W8nyA+IGTDrDsgIzVGMUYKK+W8oCA+IHpoxIFuZzsgIzVGMjAKK+W8oSA+IGp1w6k7ICM1RjIxCivlvKIgPiB0xIFvOyAjNUYyMgor5byjID4gZsWtOyAjNUYyMwor5bykID4gZMStOyAjNUYyNAor5bylID4gbcOtOyAjNUYyNQor5bymID4geGnDoW47ICM1RjI2CivlvKcgPiBow7o7ICM1RjI3CivlvKggPiBjaMSBbzsgIzVGMjgKK+W8qSA+IG7FrTsgIzVGMjkKK+W8qiA+IGrDrG5nOyAjNUYyQQor5byrID4gemjElW47ICM1RjJCCivlvKwgPiB5w607ICM1RjJDCivlvK0gPiBtxK07ICM1RjJECivlvK4gPiBxdcSBbjsgIzVGMkUKK+W8ryA+IHfEgW47ICM1RjJGCivlvLAgPiBzaMSBbzsgIzVGMzAKK+W8sSA+IHLDuW87ICM1RjMxCivlvLIgPiB4dcSBbjsgIzVGMzIKK+W8syA+IGrDrG5nOyAjNUYzMwor5by0ID4gZMWrbjsgIzVGMzQKK+W8tSA+IHpoxIFuZzsgIzVGMzUKK+W8tiA+IGppw6BuZzsgIzVGMzYKK+W8tyA+IHFpw6FuZzsgIzVGMzcKK+W8uCA+IHDDqW5nOyAjNUYzOAor5by5ID4gZMOgbjsgIzVGMzkKK+W8uiA+IHFpw6FuZzsgIzVGM0EKK+W8uyA+IGLDrDsgIzVGM0IKK+W8vCA+IGLDrDsgIzVGM0MKK+W8vSA+IHNow6g7ICM1RjNECivlvL4gPiBkw6BuOyAjNUYzRQor5by/ID4gamnEg247ICM1RjNGCivlvYAgPiBnw7J1OyAjNUY0MAor5b2CID4gZsSBOyAjNUY0Mgor5b2DID4gYsOsOyAjNUY0Mwor5b2EID4ga8WNdTsgIzVGNDQKK+W9hiA+IGJpw6g7ICM1RjQ2CivlvYcgPiB4acSBbzsgIzVGNDcKK+W9iCA+IGTDoG47ICM1RjQ4CivlvYkgPiBrw7lvOyAjNUY0OQor5b2KID4gcWnDoW5nOyAjNUY0QQor5b2LID4gaMOzbmc7ICM1RjRCCivlvYwgPiBtw607ICM1RjRDCivlvY0gPiBrw7lvOyAjNUY0RAor5b2OID4gd8SBbjsgIzVGNEUKK+W9jyA+IGp1w6k7ICM1RjRGCivlvZAgPiBqw6w7ICM1RjUwCivlvZEgPiBqw6w7ICM1RjUxCivlvZIgPiBnxatpOyAjNUY1Mgor5b2TID4gZMSBbmc7ICM1RjUzCivlvZQgPiBsw7k7ICM1RjU0CivlvZUgPiBsw7k7ICM1RjU1CivlvZYgPiB0dcOgbjsgIzVGNTYKK+W9lyA+IGjDuWk7ICM1RjU3CivlvZggPiB6aMOsOyAjNUY1OAor5b2ZID4gaMO5aTsgIzVGNTkKK+W9miA+IGjDuWk7ICM1RjVBCivlvZsgPiB5w607ICM1RjVCCivlvZwgPiB5w607ICM1RjVDCivlvZ0gPiB5w607ICM1RjVECivlvZ4gPiB5w607ICM1RjVFCivlvZ8gPiBow7lvOyAjNUY1Rgor5b2gID4gaMO5bzsgIzVGNjAKK+W9oSA+IHNoxIFuOyAjNUY2MQor5b2iID4geMOtbmc7ICM1RjYyCivlvaMgPiB3w6luOyAjNUY2Mwor5b2kID4gdMOzbmc7ICM1RjY0CivlvaUgPiB5w6BuOyAjNUY2NQor5b2mID4gecOgbjsgIzVGNjYKK+W9pyA+IHnDuTsgIzVGNjcKK+W9qCA+IGNoxKs7ICM1RjY4CivlvakgPiBjxINpOyAjNUY2OQor5b2qID4gYmnEgW87ICM1RjZBCivlvasgPiBkacSBbzsgIzVGNkIKK+W9rCA+IGLEq247ICM1RjZDCivlva0gPiBww6luZzsgIzVGNkQKK+W9riA+IHnFj25nOyAjNUY2RQor5b2vID4gcGnEgW87ICM1RjZGCivlvbAgPiB6aMSBbmc7ICM1RjcwCivlvbEgPiB5xK1uZzsgIzVGNzEKK+W9siA+IGNoxKs7ICM1RjcyCivlvbMgPiBjaMOsOyAjNUY3Mwor5b20ID4gemjDum87ICM1Rjc0CivlvbUgPiB0xa1vOyAjNUY3NQor5b22ID4gasOtOyAjNUY3Ngor5b23ID4gcMOhbmc7ICM1Rjc3CivlvbggPiB6aMWNbmc7ICM1Rjc4CivlvbkgPiB5w6w7ICM1Rjc5CivlvbogPiB3w6FuZzsgIzVGN0EKK+W9uyA+IGNow6g7ICM1RjdCCivlvbwgPiBixK07ICM1RjdDCivlvb0gPiBjaMOtOyAjNUY3RAor5b2+ID4gbMStbmc7ICM1RjdFCivlvb8gPiBmw7o7ICM1RjdGCivlvoAgPiB3xINuZzsgIzVGODAKK+W+gSA+IHpoxJNuZzsgIzVGODEKK+W+giA+IGPDujsgIzVGODIKK+W+gyA+IHfEg25nOyAjNUY4Mwor5b6EID4gasOsbmc7ICM1Rjg0CivlvoUgPiBkw6BpOyAjNUY4NQor5b6GID4geMSrOyAjNUY4Ngor5b6HID4geMO5bjsgIzVGODcKK+W+iCA+IGjElW47ICM1Rjg4CivlvokgPiB5w6FuZzsgIzVGODkKK+W+iiA+IGh1w6FpOyAjNUY4QQor5b6LID4gbMecOyAjNUY4Qgor5b6MID4gaMOydTsgIzVGOEMKK+W+jSA+IHfEgTsgIzVGOEQKK+W+jiA+IGNoxJVuZzsgIzVGOEUKK+W+jyA+IHpow6w7ICM1RjhGCivlvpAgPiB4w7o7ICM1RjkwCivlvpEgPiBqw6xuZzsgIzVGOTEKK+W+kiA+IHTDujsgIzVGOTIKK+W+kyA+IGPDs25nOyAjNUY5Mwor5b6VID4gbMOhaTsgIzVGOTUKK+W+liA+IGPDs25nOyAjNUY5Ngor5b6XID4gZMOpOyAjNUY5Nwor5b6YID4gcMOhaTsgIzVGOTgKK+W+mSA+IHjErTsgIzVGOTkKK+W+myA+IHHDrDsgIzVGOUIKK+W+nCA+IGNow6FuZzsgIzVGOUMKK+W+nSA+IHpow6w7ICM1RjlECivlvp4gPiBjw7NuZzsgIzVGOUUKK+W+nyA+IHpoxY11OyAjNUY5Rgor5b6gID4gbMOhaTsgIzVGQTAKK+W+oSA+IHnDuTsgIzVGQTEKK+W+oiA+IHhpw6g7ICM1RkEyCivlvqMgPiBqacOoOyAjNUZBMwor5b6kID4gamnDoG47ICM1RkE0CivlvqUgPiBjaMOtOyAjNUZBNQor5b6mID4gamnEgzsgIzVGQTYKK+W+pyA+IGJpw6BuOyAjNUZBNwor5b6oID4gaHXDoW5nOyAjNUZBOAor5b6pID4gZsO5OyAjNUZBOQor5b6qID4geMO6bjsgIzVGQUEKK+W+qyA+IHfElWk7ICM1RkFCCivlvqwgPiBww6FuZzsgIzVGQUMKK+W+rSA+IHnDoW87ICM1RkFECivlvq4gPiB3xJNpOyAjNUZBRQor5b6vID4geMSrOyAjNUZBRgor5b6wID4gemjEk25nOyAjNUZCMAor5b6xID4gcGnDoG87ICM1RkIxCivlvrIgPiBjaMOtOyAjNUZCMgor5b6zID4gZMOpOyAjNUZCMwor5b60ID4gemjEk25nOyAjNUZCNAor5b61ID4gemjEk25nOyAjNUZCNQor5b62ID4gYmnDqDsgIzVGQjYKK+W+tyA+IGTDqTsgIzVGQjcKK+W+uCA+IGNoxY1uZzsgIzVGQjgKK+W+uSA+IGNow6g7ICM1RkI5CivlvrogPiBqacSDbzsgIzVGQkEKK+W+uyA+IHfDqGk7ICM1RkJCCivlvrwgPiBqacOgbzsgIzVGQkMKK+W+vSA+IGjFq2k7ICM1RkJECivlvr4gPiBtw6lpOyAjNUZCRQor5b6/ID4gbMOybmc7ICM1RkJGCivlv4AgPiB4acSBbmc7ICM1RkMwCivlv4EgPiBiw6BvOyAjNUZDMQor5b+CID4gccO6OyAjNUZDMgor5b+DID4geMSrbjsgIzVGQzMKK+W/hCA+IHNow7knICd4xKtuJyAncMOhbmc7ICM1RkM0Civlv4UgPiBiw6w7ICM1RkM1Civlv4YgPiB5w6w7ICM1RkM2Civlv4cgPiBsw6g7ICM1RkM3Civlv4ggPiByw6luOyAjNUZDOAor5b+JID4gZMSBbzsgIzVGQzkKK+W/iiA+IGTDrG5nOyAjNUZDQQor5b+LID4gZ8SDaTsgIzVGQ0IKK+W/jCA+IGrDrDsgIzVGQ0MKK+W/jSA+IHLElW47ICM1RkNECivlv44gPiByw6luOyAjNUZDRQor5b+PID4gY2jDoG47ICM1RkNGCivlv5AgPiB0xINuOyAjNUZEMAor5b+RID4gdMOoOyAjNUZEMQor5b+SID4gdMOoOyAjNUZEMgor5b+TID4gZ8SBbjsgIzVGRDMKK+W/lCA+IHHDrDsgIzVGRDQKK+W/lSA+IHNow6w7ICM1RkQ1Civlv5YgPiBjxa1uOyAjNUZENgor5b+XID4gemjDrDsgIzVGRDcKK+W/mCA+IHfDoG5nOyAjNUZEOAor5b+ZID4gbcOhbmc7ICM1RkQ5Civlv5ogPiB4xKs7ICM1RkRBCivlv5sgPiBmw6FuOyAjNUZEQgor5b+cID4gecSrbmc7ICM1RkRDCivlv50gPiB0acSDbjsgIzVGREQKK+W/niA+IG3DrW47ICM1RkRFCivlv58gPiBtw61uOyAjNUZERgor5b+gID4gemjFjW5nOyAjNUZFMAor5b+hID4gY2jFjW5nOyAjNUZFMQor5b+iID4gd8O5OyAjNUZFMgor5b+jID4gasOtOyAjNUZFMwor5b+kID4gd8WtOyAjNUZFNAor5b+lID4geMOsOyAjNUZFNQor5b+mID4gecOoOyAjNUZFNgor5b+nID4gecWNdTsgIzVGRTcKK+W/qCA+IHfDoG47ICM1RkU4Civlv6kgPiBjxY1uZzsgIzVGRTkKK+W/qiA+IHpoxY1uZzsgIzVGRUEKK+W/qyA+IGt1w6BpOyAjNUZFQgor5b+sID4gecO5OyAjNUZFQwor5b+tID4gYmnDoG47ICM1RkVECivlv64gPiB6aMOsOyAjNUZFRQor5b+vID4gccOtOyAjNUZFRgor5b+wID4gY8O5aTsgIzVGRjAKK+W/sSA+IGNow6luOyAjNUZGMQor5b+yID4gdMOgaTsgIzVGRjIKK+W/syA+IHTDum47ICM1RkYzCivlv7QgPiBxacOhbjsgIzVGRjQKK+W/tSA+IG5pw6BuOyAjNUZGNQor5b+2ID4gaMO6bjsgIzVGRjYKK+W/tyA+IHjEq29uZzsgIzVGRjcKK+W/uCA+IG7ErXU7ICM1RkY4Civlv7kgPiB3xINuZzsgIzVGRjkKK+W/uiA+IHhpxIFuOyAjNUZGQQor5b+7ID4geMSrbjsgIzVGRkIKK+W/vCA+IGvEgW5nOyAjNUZGQwor5b+9ID4gaMWrOyAjNUZGRAor5b++ID4ga8OgaTsgIzVGRkUKK+W/vyA+IGbDqG47ICM1RkZGCivmgIAgPiBodcOhaTsgIzYwMDAKK+aAgSA+IHTDoGk7ICM2MDAxCivmgIIgPiBzxY9uZzsgIzYwMDIKK+aAgyA+IHfFrTsgIzYwMDMKK+aAhCA+IMOydTsgIzYwMDQKK+aAhSA+IGNow6BuZzsgIzYwMDUKK+aAhiA+IGNodcOgbmc7ICM2MDA2CivmgIcgPiBqw7k7ICM2MDA3CivmgIggPiB5w6w7ICM2MDA4CivmgIkgPiBixINvOyAjNjAwOQor5oCKID4gY2jEgW87ICM2MDBBCivmgIsgPiBtw61uOyAjNjAwQgor5oCMID4gcMSTaTsgIzYwMEMKK+aAjSA+IHrDuW87ICM2MDBECivmgI4gPiB6xJVuOyAjNjAwRQor5oCPID4gecOgbmc7ICM2MDBGCivmgJAgPiBrw7J1OyAjNjAxMAor5oCRID4gYsOgbjsgIzYwMTEKK+aAkiA+IG7DuTsgIzYwMTIKK+aAkyA+IG7DoW87ICM2MDEzCivmgJQgPiB6aMSTbmc7ICM2MDE0CivmgJUgPiBww6A7ICM2MDE1CivmgJYgPiBiw7k7ICM2MDE2CivmgJcgPiB0acSTOyAjNjAxNwor5oCYID4gZ8O5OyAjNjAxOAor5oCZID4gaMO5OyAjNjAxOQor5oCaID4gasO5OyAjNjAxQQor5oCbID4gZMOhOyAjNjAxQgor5oCcID4gbGnDoW47ICM2MDFDCivmgJ0gPiBzxKs7ICM2MDFECivmgJ4gPiBjaMWNdTsgIzYwMUUKK+aAnyA+IGTDrDsgIzYwMUYKK+aAoCA+IGTDoGk7ICM2MDIwCivmgKEgPiB5w607ICM2MDIxCivmgKIgPiB0w7o7ICM2MDIyCivmgKMgPiB5w7N1OyAjNjAyMwor5oCkID4gZsWrOyAjNjAyNAor5oClID4gasOtOyAjNjAyNQor5oCmID4gcMSTbmc7ICM2MDI2CivmgKcgPiB4w6xuZzsgIzYwMjcKK+aAqCA+IHl1w6BuOyAjNjAyOAor5oCpID4gbsOtOyAjNjAyOQor5oCqID4gZ3XDoGk7ICM2MDJBCivmgKsgPiBmw7o7ICM2MDJCCivmgKwgPiB4w6w7ICM2MDJDCivmgK0gPiBiw6w7ICM2MDJECivmgK4gPiB5xY11OyAjNjAyRQor5oCvID4gcWnDqDsgIzYwMkYKK+aAsCA+IHh1w6BuOyAjNjAzMAor5oCxID4gY8WNbmc7ICM2MDMxCivmgLIgPiBixK1uZzsgIzYwMzIKK+aAsyA+IGh1xINuZzsgIzYwMzMKK+aAtCA+IHjDuTsgIzYwMzQKK+aAtSA+IGNow7k7ICM2MDM1CivmgLYgPiBwxKs7ICM2MDM2CivmgLcgPiB4xKs7ICM2MDM3CivmgLggPiB4xKs7ICM2MDM4CivmgLkgPiB0xIFuOyAjNjAzOQor5oC7ID4gesWPbmc7ICM2MDNCCivmgLwgPiBkw7lpOyAjNjAzQwor5oC/ID4gecOsOyAjNjAzRgor5oGAID4gY2jErTsgIzYwNDAKK+aBgSA+IHLDqG47ICM2MDQxCivmgYIgPiB4w7puOyAjNjA0Mgor5oGDID4gc2jDrDsgIzYwNDMKK+aBhCA+IHjDrDsgIzYwNDQKK+aBhSA+IGzEg287ICM2MDQ1CivmgYYgPiBow6luZzsgIzYwNDYKK+aBhyA+IGt1xIFuZzsgIzYwNDcKK+aBiCA+IG3DujsgIzYwNDgKK+aBiSA+IHpoxK07ICM2MDQ5CivmgYogPiB4acOpOyAjNjA0QQor5oGLID4gbGnDoG47ICM2MDRCCivmgYwgPiB0acSBbzsgIzYwNEMKK+aBjSA+IGh1xINuZzsgIzYwNEQKK+aBjiA+IGRpw6k7ICM2MDRFCivmgY8gPiBoxINvOyAjNjA0Rgor5oGQID4ga8WPbmc7ICM2MDUwCivmgZEgPiBnxa1pOyAjNjA1MQor5oGSID4gaMOpbmc7ICM2MDUyCivmgZMgPiB4xKs7ICM2MDUzCivmgZQgPiB4acOgbzsgIzYwNTQKK+aBlSA+IHNow7k7ICM2MDU1CivmgZYgPiBzxKs7ICM2MDU2CivmgZcgPiBrdcSDOyAjNjA1Nwor5oGYID4gccSrdTsgIzYwNTgKK+aBmSA+IHnDoG5nOyAjNjA1OQor5oGaID4gaMO5aTsgIzYwNUEKK+aBmyA+IGjDumk7ICM2MDVCCivmgZwgPiBjaMOsOyAjNjA1Qwor5oGdID4gamnDoTsgIzYwNUQKK+aBniA+IHnDrTsgIzYwNUUKK+aBnyA+IHjEq29uZzsgIzYwNUYKK+aBoCA+IGd1w6BpOyAjNjA2MAor5oGhID4gbMOsbjsgIzYwNjEKK+aBoiA+IGjFq2k7ICM2MDYyCivmgaMgPiB6w6w7ICM2MDYzCivmgaQgPiB4w7k7ICM2MDY0CivmgaUgPiBjaMStOyAjNjA2NQor5oGmID4geGnDoG5nOyAjNjA2Ngor5oGnID4gbsecOyAjNjA2Nwor5oGoID4gaMOobjsgIzYwNjgKK+aBqSA+IMSTbjsgIzYwNjkKK+aBqiA+IGvDqDsgIzYwNkEKK+aBqyA+IHTFjW5nOyAjNjA2Qgor5oGsID4gdGnDoW47ICM2MDZDCivmga0gPiBnxY1uZzsgIzYwNkQKK+aBriA+IHF1w6FuOyAjNjA2RQor5oGvID4geMSrOyAjNjA2Rgor5oGwID4gcWnDoDsgIzYwNzAKK+aBsSA+IHl1w6g7ICM2MDcxCivmgbIgPiBwxJNuZzsgIzYwNzIKK+aBsyA+IGvElW47ICM2MDczCivmgbQgPiBkw6k7ICM2MDc0CivmgbUgPiBow7lpOyAjNjA3NQor5oG2ID4gw6g7ICM2MDc2CivmgbggPiB0w7JuZzsgIzYwNzgKK+aBuSA+IHnDoG47ICM2MDc5CivmgbogPiBrxINpOyAjNjA3QQor5oG7ID4gY8OoOyAjNjA3Qgor5oG8ID4gbsSDbzsgIzYwN0MKK+aBvSA+IHnDuW47ICM2MDdECivmgb4gPiBtw6FuZzsgIzYwN0UKK+aBvyA+IHnFj25nOyAjNjA3Rgor5oKAID4gecWPbmc7ICM2MDgwCivmgoEgPiB5dcSBbjsgIzYwODEKK+aCgiA+IHDEqzsgIzYwODIKK+aCgyA+IGvFrW47ICM2MDgzCivmgoQgPiBxacSDbzsgIzYwODQKK+aChSA+IHl1w6g7ICM2MDg1CivmgoYgPiB5w7k7ICM2MDg2CivmgocgPiB5w7k7ICM2MDg3CivmgoggPiBqacOoOyAjNjA4OAor5oKJID4geMSrOyAjNjA4OQor5oKKID4gemjDqTsgIzYwOEEKK+aCiyA+IGzDrG47ICM2MDhCCivmgowgPiB0w6w7ICM2MDhDCivmgo0gPiBow6BuOyAjNjA4RAor5oKOID4gaMOgbzsgIzYwOEUKK+aCjyA+IHFpw6g7ICM2MDhGCivmgpAgPiB0w6w7ICM2MDkwCivmgpEgPiBiw7k7ICM2MDkxCivmgpIgPiB5w6w7ICM2MDkyCivmgpMgPiBxacOgbjsgIzYwOTMKK+aClCA+IGjFrWk7ICM2MDk0CivmgpUgPiB4xKs7ICM2MDk1CivmgpYgPiBiw6hpOyAjNjA5Ngor5oKXID4gbcOhbjsgIzYwOTcKK+aCmCA+IHnEqzsgIzYwOTgKK+aCmSA+IGjEk25nOyAjNjA5OQor5oKaID4gc8WPbmc7ICM2MDlBCivmgpsgPiBxdcSBbjsgIzYwOUIKK+aCnCA+IGNoxJVuZzsgIzYwOUMKK+aCnSA+IGjFq2k7ICM2MDlECivmgp4gPiB3w7k7ICM2MDlFCivmgp8gPiB3w7k7ICM2MDlGCivmgqAgPiB5xY11OyAjNjBBMAor5oKhID4gbMOtOyAjNjBBMQor5oKiID4gbGnDoG5nOyAjNjBBMgor5oKjID4gaHXDoG47ICM2MEEzCivmgqQgPiBjxY1uZzsgIzYwQTQKK+aCpSA+IHnDrDsgIzYwQTUKK+aCpiA+IHl1w6g7ICM2MEE2CivmgqcgPiBsw6w7ICM2MEE3CivmgqggPiBuw61uOyAjNjBBOAor5oKpID4gbsSDbzsgIzYwQTkKK+aCqiA+IMOoOyAjNjBBQQor5oKrID4gcXXDqDsgIzYwQUIKK+aCrCA+IHh1w6FuOyAjNjBBQwor5oKtID4gcWnEgW47ICM2MEFECivmgq4gPiB3w7k7ICM2MEFFCivmgq8gPiBtxK1uOyAjNjBBRgor5oKwID4gY8Ozbmc7ICM2MEIwCivmgrEgPiBmxJVpOyAjNjBCMQor5oKyID4gYsSTaTsgIzYwQjIKK+aCsyA+IGTDum87ICM2MEIzCivmgrQgPiBjw7lpOyAjNjBCNAor5oK1ID4gY2jDoG5nOyAjNjBCNQor5oK2ID4gbcOobjsgIzYwQjYKK+aCtyA+IGzDrDsgIzYwQjcKK+aCuCA+IGrDrDsgIzYwQjgKK+aCuSA+IGd1w6BuOyAjNjBCOQor5oK6ID4gZ3XDoG47ICM2MEJBCivmgrsgPiB4w6xuZzsgIzYwQkIKK+aCvCA+IGTDoG87ICM2MEJDCivmgr0gPiBxxKs7ICM2MEJECivmgr4gPiBrxY1uZzsgIzYwQkUKK+aCvyA+IHRpxINuOyAjNjBCRgor5oOAID4gbMO6bjsgIzYwQzAKK+aDgSA+IHjEqzsgIzYwQzEKK+aDgiA+IGvEg247ICM2MEMyCivmg4MgPiBrxatuOyAjNjBDMwor5oOEID4gbsOsOyAjNjBDNAor5oOFID4gccOtbmc7ICM2MEM1Civmg4YgPiBjaMOzdTsgIzYwQzYKK+aDhyA+IGTFq247ICM2MEM3Civmg4ggPiBnxa1vOyAjNjBDOAor5oOJID4gY2jEgW47ICM2MEM5Civmg4ogPiBsacOhbmc7ICM2MENBCivmg4sgPiB3xINuOyAjNjBDQgor5oOMID4geXXEgW47ICM2MENDCivmg40gPiBqxKtuOyAjNjBDRAor5oOOID4gasOsOyAjNjBDRQor5oOPID4gbMOtbjsgIzYwQ0YKK+aDkCA+IHnDuTsgIzYwRDAKK+aDkSA+IGjDuW87ICM2MEQxCivmg5IgPiBow6k7ICM2MEQyCivmg5MgPiBxdcOhbjsgIzYwRDMKK+aDlCA+IHTDoW47ICM2MEQ0Civmg5UgPiB0w6w7ICM2MEQ1Civmg5YgPiB0w6w7ICM2MEQ2Civmg5cgPiBuacSTOyAjNjBENwor5oOYID4gd8SDbmc7ICM2MEQ4Civmg5kgPiBjaMO5bzsgIzYwRDkKK+aDmiA+IGLFqzsgIzYwREEKK+aDmyA+IGjFq247ICM2MERCCivmg5wgPiB4xKs7ICM2MERDCivmg50gPiB0xINuZzsgIzYwREQKK+aDniA+IHjEq247ICM2MERFCivmg58gPiB3w6lpOyAjNjBERgor5oOgID4gaMO5aTsgIzYwRTAKK+aDoSA+IMOoOyAjNjBFMQor5oOiID4gcsWtaTsgIzYwRTIKK+aDoyA+IHrFj25nOyAjNjBFMwor5oOkID4gamnEgW47ICM2MEU0Civmg6UgPiB5xY9uZzsgIzYwRTUKK+aDpiA+IGRpw6BuOyAjNjBFNgor5oOnID4gasO5OyAjNjBFNwor5oOoID4gY8SDbjsgIzYwRTgKK+aDqSA+IGNow6luZzsgIzYwRTkKK+aDqiA+IGTDqTsgIzYwRUEKK+aDqyA+IGLDqGk7ICM2MEVCCivmg6wgPiBxacOoOyAjNjBFQwor5oOtID4gY8OhbjsgIzYwRUQKK+aDriA+IGTDoG47ICM2MEVFCivmg68gPiBndcOgbjsgIzYwRUYKK+aDsCA+IGTDuW87ICM2MEYwCivmg7EgPiBuxINvOyAjNjBGMQor5oOyID4gecO5bjsgIzYwRjIKK+aDsyA+IHhpxINuZzsgIzYwRjMKK+aDtCA+IHpow7lpOyAjNjBGNAor5oO1ID4gZGnDqDsgIzYwRjUKK+aDtiA+IGh1w6FuZzsgIzYwRjYKK+aDtyA+IGNoxa1uOyAjNjBGNwor5oO4ID4gccOtb25nOyAjNjBGOAor5oO5ID4gcsSVOyAjNjBGOQor5oO6ID4geMSrbmc7ICM2MEZBCivmg7sgPiBjw6g7ICM2MEZCCivmg7wgPiBiacSDbjsgIzYwRkMKK+aDvSA+IGjFq247ICM2MEZECivmg74gPiB6xY1uZzsgIzYwRkUKK+aDvyA+IHTDrTsgIzYwRkYKK+aEgCA+IHFpxINvOyAjNjEwMAor5oSBID4gY2jDs3U7ICM2MTAxCivmhIIgPiBiw6hpOyAjNjEwMgor5oSDID4geHXEgW47ICM2MTAzCivmhIQgPiB3xJNpOyAjNjEwNAor5oSFID4gZ8OpOyAjNjEwNQor5oSGID4gcWnEgW47ICM2MTA2CivmhIcgPiB3xJVpOyAjNjEwNwor5oSIID4gecO5OyAjNjEwOAor5oSJID4gecO6OyAjNjEwOQor5oSKID4gYsOsOyAjNjEwQQor5oSLID4geHXEgW47ICM2MTBCCivmhIwgPiBodcOgbjsgIzYxMEMKK+aEjSA+IG3ErW47ICM2MTBECivmhI4gPiBiw6w7ICM2MTBFCivmhI8gPiB5w6w7ICM2MTBGCivmhJAgPiBtacSDbjsgIzYxMTAKK+aEkSA+IHnFj25nOyAjNjExMQor5oSSID4ga8OgaTsgIzYxMTIKK+aEkyA+IGTDoG5nOyAjNjExMwor5oSUID4gecSrbjsgIzYxMTQKK+aElSA+IMOoOyAjNjExNQor5oSWID4gY2jDqW47ICM2MTE2CivmhJcgPiBtw7J1OyAjNjExNwor5oSYID4ga8OoOyAjNjExOAor5oSZID4ga8OoOyAjNjExOQor5oSaID4gecO6OyAjNjExQQor5oSbID4gw6BpOyAjNjExQgor5oScID4gcWnDqDsgIzYxMUMKK+aEnSA+IHnEg247ICM2MTFECivmhJ4gPiBuw7lvOyAjNjExRQor5oSfID4gZ8SDbjsgIzYxMUYKK+aEoCA+IHnDuW47ICM2MTIwCivmhKEgPiB6xY9uZzsgIzYxMjEKK+aEoiA+IHPEgWk7ICM2MTIyCivmhKMgPiBsw6luZzsgIzYxMjMKK+aEpCA+IGbDqG47ICM2MTI0CivmhKYgPiBrw7lpOyAjNjEyNgor5oSnID4ga8O5aTsgIzYxMjcKK+aEqCA+IHF1w6g7ICM2MTI4CivmhKkgPiBnxY1uZzsgIzYxMjkKK+aEqiA+IHnDum47ICM2MTJBCivmhKsgPiBzw7k7ICM2MTJCCivmhKwgPiBzw7k7ICM2MTJDCivmhK0gPiBxw607ICM2MTJECivmhK4gPiB5w6FvOyAjNjEyRQor5oSvID4gc8WPbmc7ICM2MTJGCivmhLAgPiBodcSDbmc7ICM2MTMwCivmhLEgPiBqw607ICM2MTMxCivmhLIgPiBnxa07ICM2MTMyCivmhLMgPiBqw7k7ICM2MTMzCivmhLQgPiBjaHXDoG5nOyAjNjEzNAor5oS1ID4gbsOsOyAjNjEzNQor5oS2ID4geGnDqTsgIzYxMzYKK+aEtyA+IGvEg2k7ICM2MTM3CivmhLggPiB6aMSVbmc7ICM2MTM4CivmhLkgPiB5xY9uZzsgIzYxMzkKK+aEuiA+IGPEg287ICM2MTNBCivmhLsgPiBzw7luOyAjNjEzQgor5oS8ID4gc2jDqG47ICM2MTNDCivmhL0gPiBiw7M7ICM2MTNECivmhL4gPiBrw6BpOyAjNjEzRQor5oS/ID4geXXDoG47ICM2MTNGCivmhYAgPiB4acOpOyAjNjE0MAor5oWBID4gaMO5bjsgIzYxNDEKK+aFgiA+IHnFj25nOyAjNjE0Mgor5oWDID4gecSDbmc7ICM2MTQzCivmhYQgPiBsw6w7ICM2MTQ0CivmhYUgPiBzxIFvOyAjNjE0NQor5oWGID4gdMSBbzsgIzYxNDYKK+aFhyA+IHnEq247ICM2MTQ3CivmhYggPiBjw607ICM2MTQ4CivmhYkgPiB4w7k7ICM2MTQ5CivmhYogPiBxacOgbjsgIzYxNEEKK+aFiyA+IHTDoGk7ICM2MTRCCivmhYwgPiBodcSBbmc7ICM2MTRDCivmhY0gPiB5w7luOyAjNjE0RAor5oWOID4gc2jDqG47ICM2MTRFCivmhY8gPiBtxK1uZzsgIzYxNEYKK+aFkSA+IHNow6g7ICM2MTUxCivmhZIgPiBjw7NuZzsgIzYxNTIKK+aFkyA+IHBpw6BvOyAjNjE1Mwor5oWUID4gbcOyOyAjNjE1NAor5oWVID4gbcO5OyAjNjE1NQor5oWWID4gZ8O6bzsgIzYxNTYKK+aFlyA+IGNow6w7ICM2MTU3CivmhZggPiBjxINuOyAjNjE1OAor5oWZID4gY8OhbjsgIzYxNTkKK+aFmiA+IGPDoW47ICM2MTVBCivmhZsgPiBjw7ppOyAjNjE1Qgor5oWcID4gbcStbjsgIzYxNUMKK+aFnSA+IHTDqDsgIzYxNUQKK+aFniA+IHpoxIFuZzsgIzYxNUUKK+aFnyA+IHTDsm5nOyAjNjE1Rgor5oWgID4gw6BvOyAjNjE2MAor5oWhID4gc2h1xINuZzsgIzYxNjEKK+aFoiA+IG3DoG47ICM2MTYyCivmhaMgPiBndcOgbjsgIzYxNjMKK+aFpCA+IHF1w6g7ICM2MTY0CivmhaUgPiB6w6BvOyAjNjE2NQor5oWmID4gasOsdTsgIzYxNjYKK+aFpyA+IGjDuWk7ICM2MTY3CivmhaggPiBrxINpOyAjNjE2OAor5oWpID4gbGnDoW47ICM2MTY5CivmhaogPiDDsnU7ICM2MTZBCivmhasgPiBzxY9uZzsgIzYxNkIKK+aFrCA+IGrErW47ICM2MTZDCivmha0gPiB5w6xuOyAjNjE2RAor5oWuID4gbMecOyAjNjE2RQor5oWvID4gc2jEgW5nOyAjNjE2Rgor5oWwID4gd8OoaTsgIzYxNzAKK+aFsSA+IHR1w6FuOyAjNjE3MQor5oWyID4gbcOhbjsgIzYxNzIKK+aFsyA+IHFpxIFuOyAjNjE3Mwor5oW0ID4gc2jDqDsgIzYxNzQKK+aFtSA+IHnFjW5nOyAjNjE3NQor5oW2ID4gccOsbmc7ICM2MTc2CivmhbcgPiBrxIFuZzsgIzYxNzcKK+aFuCA+IGTDrDsgIzYxNzgKK+aFuSA+IHpow607ICM2MTc5CivmhbogPiBsw7N1OyAjNjE3QQor5oW7ID4ganXDoG47ICM2MTdCCivmhbwgPiBxxKs7ICM2MTdDCivmhb0gPiBxxKs7ICM2MTdECivmhb4gPiB5w7k7ICM2MTdFCivmhb8gPiBww61uZzsgIzYxN0YKK+aGgCA+IGxpw6FvOyAjNjE4MAor5oaBID4gY8WNbmc7ICM2MTgxCivmhoIgPiB5xY11OyAjNjE4Mgor5oaDID4gY2jFjW5nOyAjNjE4Mwor5oaEID4gemjDrDsgIzYxODQKK+aGhSA+IHTDsm5nOyAjNjE4NQor5oaGID4gY2jEk25nOyAjNjE4Ngor5oaHID4gccOsOyAjNjE4Nwor5oaIID4gccWrOyAjNjE4OAor5oaJID4gcMOpbmc7ICM2MTg5CivmhoogPiBiw6hpOyAjNjE4QQor5oaLID4gYmnEkzsgIzYxOEIKK+aGjCA+IGNow7puOyAjNjE4Qwor5oaNID4gamnEgW87ICM2MThECivmho4gPiB6xJNuZzsgIzYxOEUKK+aGjyA+IGNow6w7ICM2MThGCivmhpAgPiBsacOhbjsgIzYxOTAKK+aGkSA+IHDDrW5nOyAjNjE5MQor5oaSID4ga8O5aTsgIzYxOTIKK+aGkyA+IGjDuWk7ICM2MTkzCivmhpQgPiBxacOhbzsgIzYxOTQKK+aGlSA+IGNow6luZzsgIzYxOTUKK+aGliA+IHnDrG47ICM2MTk2CivmhpcgPiB5w6xuOyAjNjE5Nwor5oaYID4geMStOyAjNjE5OAor5oaZID4geMStOyAjNjE5OQor5oaaID4gZMOgbjsgIzYxOUEKK+aGmyA+IHTDoW47ICM2MTlCCivmhpwgPiBkxa1vOyAjNjE5Qwor5oadID4gZMO5aTsgIzYxOUQKK+aGniA+IGTDuWk7ICM2MTlFCivmhp8gPiBzw7k7ICM2MTlGCivmhqAgPiBqdcOpOyAjNjFBMAor5oahID4gY8OoOyAjNjFBMQor5oaiID4geGnEgW87ICM2MUEyCivmhqMgPiBmw6FuOyAjNjFBMwor5oakID4gZsOobjsgIzYxQTQKK+aGpSA+IGzDoW87ICM2MUE1CivmhqYgPiBsw6BvOyAjNjFBNgor5oanID4gY2jFjW5nOyAjNjFBNwor5oaoID4gaMSBbjsgIzYxQTgKK+aGqSA+IHHDrDsgIzYxQTkKK+aGqiA+IHhpw6FuOyAjNjFBQQor5oarID4gbcStbjsgIzYxQUIKK+aGrCA+IGrErW5nOyAjNjFBQwor5oatID4gbGnEg287ICM2MUFECivmhq4gPiB3xa07ICM2MUFFCivmhq8gPiBjxINuOyAjNjFBRgor5oawID4ganXDqTsgIzYxQjAKK+aGsSA+IGPDuTsgIzYxQjEKK+aGsiA+IHhpw6BuOyAjNjFCMgor5oazID4gdMSDbjsgIzYxQjMKK+aGtCA+IHNow6luZzsgIzYxQjQKK+aGtSA+IHDEqzsgIzYxQjUKK+aGtiA+IHnDrDsgIzYxQjYKK+aGtyA+IGNoxa07ICM2MUI3CivmhrggPiB4acSBbjsgIzYxQjgKK+aGuSA+IG7DoW87ICM2MUI5CivmhrogPiBkw6BuOyAjNjFCQQor5oa7ID4gdMSDbjsgIzYxQkIKK+aGvCA+IGrErW5nOyAjNjFCQwor5oa9ID4gc8WNbmc7ICM2MUJECivmhr4gPiBow6BuOyAjNjFCRQor5oa/ID4gamnEgW87ICM2MUJGCivmh4AgPiB3w6BpOyAjNjFDMAor5oeBID4gaHXDoW47ICM2MUMxCivmh4IgPiBkxY9uZzsgIzYxQzIKK+aHgyA+IHHDrW47ICM2MUMzCivmh4QgPiBxw61uOyAjNjFDNAor5oeFID4gccO6OyAjNjFDNQor5oeGID4gY8SDbzsgIzYxQzYKK+aHhyA+IGvElW47ICM2MUM3Civmh4ggPiB4acOoOyAjNjFDOAor5oeJID4gecOsbmc7ICM2MUM5Civmh4ogPiDDoG87ICM2MUNBCivmh4sgPiBtw6BvOyAjNjFDQgor5oeMID4gecOsOyAjNjFDQwor5oeNID4gbMStbjsgIzYxQ0QKK+aHjiA+IHPDqDsgIzYxQ0UKK+aHjyA+IGrDuW47ICM2MUNGCivmh5AgPiBodcOhaTsgIzYxRDAKK+aHkSA+IG3DqG47ICM2MUQxCivmh5IgPiBsxINuOyAjNjFEMgor5oeTID4gw6BpOyAjNjFEMwor5oeUID4gbMStbjsgIzYxRDQKK+aHlSA+IHnEgW47ICM2MUQ1Civmh5YgPiBndcSBOyAjNjFENgor5oeXID4geGnDoDsgIzYxRDcKK+aHmCA+IGNow6w7ICM2MUQ4Civmh5kgPiB5xa07ICM2MUQ5Civmh5ogPiB5w6xuOyAjNjFEQQor5oebID4gZMSBaTsgIzYxREIKK+aHnCA+IG3DqG5nOyAjNjFEQwor5oedID4gw6BpOyAjNjFERAor5oeeID4gbcOpbmc7ICM2MURFCivmh58gPiBkw7lpOyAjNjFERgor5oegID4gccOtOyAjNjFFMAor5oehID4gbcWPOyAjNjFFMQor5oeiID4gbMOhbjsgIzYxRTIKK+aHoyA+IG3DqG47ICM2MUUzCivmh6QgPiBjaMOzdTsgIzYxRTQKK+aHpSA+IHpow6w7ICM2MUU1Civmh6YgPiBuw7lvOyAjNjFFNgor5oenID4gbsO5bzsgIzYxRTcKK+aHqCA+IHnEgW47ICM2MUU4Civmh6kgPiB5xINuZzsgIzYxRTkKK+aHqiA+IGLDszsgIzYxRUEKK+aHqyA+IHpow607ICM2MUVCCivmh6wgPiBrdcOgbmc7ICM2MUVDCivmh60gPiBrdcOgbmc7ICM2MUVECivmh64gPiB5xY91OyAjNjFFRQor5oevID4gZsWrOyAjNjFFRgor5oewID4gbMOtdTsgIzYxRjAKK+aHsSA+IG1pw6g7ICM2MUYxCivmh7IgPiBjaMOpbmc7ICM2MUYyCivmh7QgPiBjaMOgbjsgIzYxRjQKK+aHtSA+IG3DqW5nOyAjNjFGNQor5oe2ID4gbMSDbjsgIzYxRjYKK+aHtyA+IGh1w6FpOyAjNjFGNwor5oe4ID4geHXDoW47ICM2MUY4Civmh7kgPiByw6BuZzsgIzYxRjkKK+aHuiA+IGNow6BuOyAjNjFGQQor5oe7ID4gasOsOyAjNjFGQgor5oe8ID4gasO5OyAjNjFGQwor5oe9ID4gaHXEgW47ICM2MUZECivmh74gPiBzaMOoOyAjNjFGRQor5oe/ID4gecOsOyAjNjFGRgor5oiAID4gbGnDoG47ICM2MjAwCivmiIEgPiBuxINuOyAjNjIwMQor5oiCID4gbcOtOyAjNjIwMgor5oiDID4gdMSDbmc7ICM2MjAzCivmiIQgPiBqdcOpOyAjNjIwNAor5oiFID4gZ8Ogbmc7ICM2MjA1CivmiIYgPiBnw6BuZzsgIzYyMDYKK+aIhyA+IGfDoG5nOyAjNjIwNwor5oiIID4gZ8STOyAjNjIwOAor5oiJID4geXXDqDsgIzYyMDkKK+aIiiA+IHfDuTsgIzYyMEEKK+aIiyA+IGppxIFuOyAjNjIwQgor5oiMID4geMWrOyAjNjIwQwor5oiNID4gc2jDuTsgIzYyMEQKK+aIjiA+IHLDs25nOyAjNjIwRQor5oiPID4geMOsOyAjNjIwRgor5oiQID4gY2jDqW5nOyAjNjIxMAor5oiRID4gd8WPOyAjNjIxMQor5oiSID4gamnDqDsgIzYyMTIKK+aIkyA+IGfEkzsgIzYyMTMKK+aIlCA+IGppxIFuOyAjNjIxNAor5oiVID4gcWnEgW5nOyAjNjIxNQor5oiWID4gaMO5bzsgIzYyMTYKK+aIlyA+IHFpxIFuZzsgIzYyMTcKK+aImCA+IHpow6BuOyAjNjIxOAor5oiZID4gZMOybmc7ICM2MjE5CivmiJogPiBxxKs7ICM2MjFBCivmiJsgPiBqacOhOyAjNjIxQgor5oicID4gZGnDqTsgIzYyMUMKK+aInSA+IHrDqWk7ICM2MjFECivmiJ4gPiBqacOhOyAjNjIxRQor5oifID4gasStOyAjNjIxRgor5oigID4gc2jDrDsgIzYyMjAKK+aIoSA+IGvEgW47ICM2MjIxCivmiKIgPiBqw607ICM2MjIyCivmiKMgPiBrw7ppOyAjNjIyMwor5oikID4gZ8OgaTsgIzYyMjQKK+aIpSA+IGTElW5nOyAjNjIyNQor5oimID4gemjDoG47ICM2MjI2CivmiKcgPiBjaHXEgW5nOyAjNjIyNwor5oioID4gZ8STOyAjNjIyOAor5oipID4gamnEg247ICM2MjI5CivmiKogPiBqacOpOyAjNjIyQQor5oirID4gecO5OyAjNjIyQgor5oisID4gamnEg247ICM2MjJDCivmiK0gPiB5xINuOyAjNjIyRAor5oiuID4gbMO5OyAjNjIyRQor5oivID4geMOsOyAjNjIyRgor5oiwID4gemjDoG47ICM2MjMwCivmiLEgPiB4w6w7ICM2MjMxCivmiLIgPiB4w6w7ICM2MjMyCivmiLMgPiBjaMWrbzsgIzYyMzMKK+aItCA+IGTDoGk7ICM2MjM0CivmiLUgPiBxw7o7ICM2MjM1CivmiLYgPiBow7k7ICM2MjM2CivmiLcgPiBow7k7ICM2MjM3CivmiLggPiBow7k7ICM2MjM4CivmiLkgPiDDqDsgIzYyMzkKK+aIuiA+IHNow6w7ICM2MjNBCivmiLsgPiBsw6w7ICM2MjNCCivmiLwgPiBtxINvOyAjNjIzQwor5oi9ID4gaMO5OyAjNjIzRAor5oi+ID4gbMOsOyAjNjIzRQor5oi/ID4gZsOhbmc7ICM2MjNGCivmiYAgPiBzxa1vOyAjNjI0MAor5omBID4gYmnEg247ICM2MjQxCivmiYIgPiBkacOgbjsgIzYyNDIKK+aJgyA+IGrEq29uZzsgIzYyNDMKK+aJhCA+IHNoxINuZzsgIzYyNDQKK+aJhSA+IHnDrTsgIzYyNDUKK+aJhiA+IHnErTsgIzYyNDYKK+aJhyA+IHNow6BuOyAjNjI0Nwor5omIID4gaMO5OyAjNjI0OAor5omJID4gZsSTaTsgIzYyNDkKK+aJiiA+IHnEg247ICM2MjRBCivmiYsgPiBzaMWPdTsgIzYyNEIKK+aJjCA+IHTMhCcgJ3NoxY91JyAncMOhbmc7ICM2MjRDCivmiY0gPiBjw6FpOyAjNjI0RAor5omOID4gemjEgTsgIzYyNEUKK+aJjyA+IHHDrXU7ICM2MjRGCivmiZAgPiBsw6g7ICM2MjUwCivmiZEgPiBixas7ICM2MjUxCivmiZIgPiBixIE7ICM2MjUyCivmiZMgPiBkxIM7ICM2MjUzCivmiZQgPiByxJNuZzsgIzYyNTQKK+aJlSA+IGbDujsgIzYyNTUKK+aJlyA+IHrDoGk7ICM2MjU3CivmiZggPiB0xatvOyAjNjI1OAor5omZID4gemjDoG5nOyAjNjI1OQor5omaID4gZGnEgW87ICM2MjVBCivmiZsgPiBrw6FuZzsgIzYyNUIKK+aJnCA+IHnFqzsgIzYyNUMKK+aJnSA+IGvFqzsgIzYyNUQKK+aJniA+IGjDoG47ICM2MjVFCivmiZ8gPiBzaMSTbjsgIzYyNUYKK+aJoCA+IGNoxIE7ICM2MjYwCivmiaEgPiB5xK07ICM2MjYxCivmiaIgPiBnxa07ICM2MjYyCivmiaMgPiBrw7J1OyAjNjI2Mwor5omkID4gd8O5OyAjNjI2NAor5omlID4gdMWrbzsgIzYyNjUKK+aJpiA+IHFpxIFuOyAjNjI2Ngor5omnID4gemjDrTsgIzYyNjcKK+aJqCA+IHLDqG47ICM2MjY4CivmiakgPiBrw7lvOyAjNjI2OQor5omqID4gbcOpbjsgIzYyNkEKK+aJqyA+IHPEg287ICM2MjZCCivmiawgPiB5w6FuZzsgIzYyNkMKK+aJrSA+IG7ErXU7ICM2MjZECivmia4gPiBiw6BuOyAjNjI2RQor5omvID4gY2jElTsgIzYyNkYKK+aJsCA+IHLEg287ICM2MjcwCivmibEgPiB4xKs7ICM2MjcxCivmibIgPiBxacOhbjsgIzYyNzIKK+aJsyA+IGLEgW47ICM2MjczCivmibQgPiBqacOhOyAjNjI3NAor5om1ID4gecO6OyAjNjI3NQor5om2ID4gZsO6OyAjNjI3Ngor5om3ID4gw6BvOyAjNjI3Nwor5om4ID4geMSrOyAjNjI3OAor5om5ID4gcMSrOyAjNjI3OQor5om6ID4gemjErTsgIzYyN0EKK+aJuyA+IHrDrDsgIzYyN0IKK+aJvCA+IMOoOyAjNjI3Qwor5om9ID4gZMO5bjsgIzYyN0QKK+aJviA+IHpoxINvOyAjNjI3RQor5om/ID4gY2jDqW5nOyAjNjI3Rgor5oqAID4gasOsOyAjNjI4MAor5oqBID4gecSDbjsgIzYyODEKK+aKgiA+IGt1w6FuZzsgIzYyODIKK+aKgyA+IGJpw6BuOyAjNjI4Mwor5oqEID4gY2jEgW87ICM2Mjg0CivmioUgPiBqxas7ICM2Mjg1CivmioYgPiB3w6huOyAjNjI4Ngor5oqHID4gaMO6OyAjNjI4Nwor5oqIID4geXXDqDsgIzYyODgKK+aKiSA+IGp1w6k7ICM2Mjg5CivmioogPiBixIM7ICM2MjhBCivmiosgPiBxw6xuOyAjNjI4Qgor5oqMID4gemjElW47ICM2MjhDCivmio0gPiB6aMSVbmc7ICM2MjhECivmio4gPiB5xa1uOyAjNjI4RQor5oqPID4gd8OhbjsgIzYyOEYKK+aKkCA+IG7DuTsgIzYyOTAKK+aKkSA+IHnDrDsgIzYyOTEKK+aKkiA+IHNoxas7ICM2MjkyCivmipMgPiB6aHXEgTsgIzYyOTMKK+aKlCA+IHDDs3U7ICM2Mjk0CivmipUgPiB0w7N1OyAjNjI5NQor5oqWID4gZMWPdTsgIzYyOTYKK+aKlyA+IGvDoG5nOyAjNjI5Nwor5oqYID4gemjDqTsgIzYyOTgKK+aKmSA+IHDDs3U7ICM2Mjk5CivmipogPiBmxa07ICM2MjlBCivmipsgPiBwxIFvOyAjNjI5Qgor5oqcID4gYsOhOyAjNjI5Qwor5oqdID4gxINvOyAjNjI5RAor5oqeID4gesOpOyAjNjI5RQor5oqfID4gdHXDoW47ICM2MjlGCivmiqAgPiBrxY11OyAjNjJBMAor5oqhID4gbMO6bjsgIzYyQTEKK+aKoiA+IHFpxINuZzsgIzYyQTIKK+aKpCA+IGjDuTsgIzYyQTQKK+aKpSA+IGLDoG87ICM2MkE1CivmiqYgPiBixK1uZzsgIzYyQTYKK+aKpyA+IHpoxK07ICM2MkE3CivmiqggPiBwxJNuZzsgIzYyQTgKK+aKqSA+IHTEgW47ICM2MkE5CivmiqogPiBwxas7ICM2MkFBCivmiqsgPiBwxKs7ICM2MkFCCivmiqwgPiB0w6FpOyAjNjJBQwor5oqtID4gecSDbzsgIzYyQUQKK+aKriA+IHpoxJVuOyAjNjJBRQor5oqvID4gemjEgTsgIzYyQUYKK+aKsCA+IHnEg25nOyAjNjJCMAor5oqxID4gYsOgbzsgIzYyQjEKK+aKsiA+IGjEkzsgIzYyQjIKK+aKsyA+IG7ErTsgIzYyQjMKK+aKtCA+IHnDrDsgIzYyQjQKK+aKtSA+IGTErTsgIzYyQjUKK+aKtiA+IGNow6w7ICM2MkI2CivmircgPiBwxKs7ICM2MkI3CivmirggPiB6xIE7ICM2MkI4CivmirkgPiBtxY87ICM2MkI5CivmirogPiBtxY87ICM2MkJBCivmirsgPiBzaMOobjsgIzYyQkIKK+aKvCA+IHnEgTsgIzYyQkMKK+aKvSA+IGNoxY11OyAjNjJCRAor5oq+ID4gccWrOyAjNjJCRQor5oq/ID4gbcStbjsgIzYyQkYKK+aLgCA+IGNow7k7ICM2MkMwCivmi4EgPiBqacSBOyAjNjJDMQor5ouCID4gZsO6OyAjNjJDMgor5ouDID4gemjEg247ICM2MkMzCivmi4QgPiB6aMWtOyAjNjJDNAor5ouFID4gZMOgbjsgIzYyQzUKK+aLhiA+IGNoxIFpOyAjNjJDNgor5ouHID4gbcWtOyAjNjJDNwor5ouIID4gbmnDoW47ICM2MkM4Civmi4kgPiBsxIE7ICM2MkM5Civmi4ogPiBmxa07ICM2MkNBCivmi4sgPiBwxIFvOyAjNjJDQgor5ouMID4gYsOgbjsgIzYyQ0MKK+aLjSA+IHDEgWk7ICM2MkNECivmi44gPiBsxKtuZzsgIzYyQ0UKK+aLjyA+IG7DoTsgIzYyQ0YKK+aLkCA+IGd1xINpOyAjNjJEMAor5ouRID4gcWnDoW47ICM2MkQxCivmi5IgPiBqw7k7ICM2MkQyCivmi5MgPiB0w7lvOyAjNjJEMwor5ouUID4gYsOhOyAjNjJENAor5ouVID4gdMWrbzsgIzYyRDUKK+aLliA+IHTFq287ICM2MkQ2Civmi5cgPiDEg287ICM2MkQ3Civmi5ggPiBqxas7ICM2MkQ4Civmi5kgPiB6aMO6bzsgIzYyRDkKK+aLmiA+IHDDoG47ICM2MkRBCivmi5sgPiB6aMSBbzsgIzYyREIKK+aLnCA+IGLDoGk7ICM2MkRDCivmi50gPiBiw6BpOyAjNjJERAor5oueID4gZMStOyAjNjJERQor5oufID4gbsStOyAjNjJERgor5ougID4gasO5OyAjNjJFMAor5ouhID4ga8O5bzsgIzYyRTEKK+aLoiA+IGzFj25nOyAjNjJFMgor5oujID4gamnEg247ICM2MkUzCivmi6UgPiB5xY9uZzsgIzYyRTUKK+aLpiA+IGzDoW47ICM2MkU2Civmi6cgPiBuw61uZzsgIzYyRTcKK+aLqCA+IGLFjTsgIzYyRTgKK+aLqSA+IHrDqTsgIzYyRTkKK+aLqiA+IHFpxIFuOyAjNjJFQQor5ourID4gaMOpbjsgIzYyRUIKK+aLrCA+IGd1xIE7ICM2MkVDCivmi60gPiBzaMOsOyAjNjJFRAor5ouuID4gamnDqTsgIzYyRUUKK+aLryA+IHpoxJVuZzsgIzYyRUYKK+aLsCA+IG7ErW47ICM2MkYwCivmi7EgPiBnxY9uZzsgIzYyRjEKK+aLsiA+IGfFj25nOyAjNjJGMgor5ouzID4gcXXDoW47ICM2MkYzCivmi7QgPiBzaHXEgW47ICM2MkY0Civmi7UgPiBjw7puOyAjNjJGNQor5ou2ID4gesSDbjsgIzYyRjYKK+aLtyA+IGvEg287ICM2MkY3Civmi7ggPiBjaMStOyAjNjJGOAor5ou5ID4geGnDqTsgIzYyRjkKK+aLuiA+IGPDqDsgIzYyRkEKK+aLuyA+IGjFq2k7ICM2MkZCCivmi7wgPiBwxKtuOyAjNjJGQwor5ou9ID4gemh1xIFpOyAjNjJGRAor5ou+ID4gc2jDrTsgIzYyRkUKK+aLvyA+IG7DoTsgIzYyRkYKK+aMgCA+IGLDsjsgIzYzMDAKK+aMgSA+IGNow607ICM2MzAxCivmjIIgPiBndcOgOyAjNjMwMgor5oyDID4gemjDrDsgIzYzMDMKK+aMhCA+IGvDuW87ICM2MzA0CivmjIUgPiBkxa1vOyAjNjMwNQor5oyGID4gZMWtbzsgIzYzMDYKK+aMhyA+IHpoxK07ICM2MzA3CivmjIggPiBxacOoOyAjNjMwOAor5oyJID4gw6BuOyAjNjMwOQor5oyKID4gbsOybmc7ICM2MzBBCivmjIsgPiB6aMOobjsgIzYzMEIKK+aMjCA+IGfDqTsgIzYzMEMKK+aMjSA+IGppw6BvOyAjNjMwRAor5oyOID4ga8WrOyAjNjMwRQor5oyPID4gZMOybmc7ICM2MzBGCivmjJAgPiByw7o7ICM2MzEwCivmjJEgPiB0acSBbzsgIzYzMTEKK+aMkiA+IGxpw6g7ICM2MzEyCivmjJMgPiB6aMSBOyAjNjMxMwor5oyUID4gbMeaOyAjNjMxNAor5oyVID4gZGnDqTsgIzYzMTUKK+aMliA+IHfEgTsgIzYzMTYKK+aMlyA+IGp1w6k7ICM2MzE3CivmjJkgPiBqxa07ICM2MzE5CivmjJogPiB6aMOsOyAjNjMxQQor5oybID4gbHXDoW47ICM2MzFCCivmjJwgPiB5w6A7ICM2MzFDCivmjJ0gPiB6aHXEgTsgIzYzMUQKK+aMniA+IHTDoDsgIzYzMUUKK+aMnyA+IHhpw6k7ICM2MzFGCivmjKAgPiBuw6FvOyAjNjMyMAor5oyhID4gZMSDbmc7ICM2MzIxCivmjKIgPiBqacSDbzsgIzYzMjIKK+aMoyA+IHpoxJNuZzsgIzYzMjMKK+aMpCA+IGrErTsgIzYzMjQKK+aMpSA+IGjFq2k7ICM2MzI1CivmjKYgPiB4w7puOyAjNjMyNgor5oyoID4gxIFpOyAjNjMyOAor5oypID4gdMWrbzsgIzYzMjkKK+aMqiA+IG7Dum87ICM2MzJBCivmjKsgPiBjw7lvOyAjNjMyQgor5oysID4gYsOzOyAjNjMyQwor5oytID4gZ8SVbmc7ICM2MzJECivmjK4gPiB0xK07ICM2MzJFCivmjK8gPiB6aMOobjsgIzYzMkYKK+aMsCA+IGNow6luZzsgIzYzMzAKK+aMsSA+IHPFq287ICM2MzMxCivmjLIgPiBzxatvOyAjNjMzMgor5oyzID4ga8STbmc7ICM2MzMzCivmjLQgPiBtxJVpOyAjNjMzNAor5oy1ID4gbMOybmc7ICM2MzM1CivmjLYgPiBqw7o7ICM2MzM2CivmjLcgPiBww6luZzsgIzYzMzcKK+aMuCA+IGppxINuOyAjNjMzOAor5oy5ID4gecOsOyAjNjMzOQor5oy6ID4gdMStbmc7ICM2MzNBCivmjLsgPiBzaMSBbjsgIzYzM0IKK+aMvCA+IG7DuW87ICM2MzNDCivmjL0gPiB3xINuOyAjNjMzRAor5oy+ID4geGnDqTsgIzYzM0UKK+aMvyA+IGNoxIE7ICM2MzNGCivmjYAgPiBmxJNuZzsgIzYzNDAKK+aNgSA+IGppxINvOyAjNjM0MQor5o2CID4gd8WtOyAjNjM0Mgor5o2DID4gasO5bjsgIzYzNDMKK+aNhCA+IGrDrHU7ICM2MzQ0CivmjYUgPiB0xY9uZzsgIzYzNDUKK+aNhiA+IGvFrW47ICM2MzQ2CivmjYcgPiBow7lvOyAjNjM0Nwor5o2IID4gdMO6OyAjNjM0OAor5o2JID4gemjFq287ICM2MzQ5CivmjYogPiBww7N1OyAjNjM0QQor5o2LID4gbMOoOyAjNjM0Qgor5o2MID4gYsSBOyAjNjM0Qwor5o2NID4gaMOgbjsgIzYzNEQKK+aNjiA+IHNoxIFvOyAjNjM0RQor5o2PID4gbmnEkzsgIzYzNEYKK+aNkCA+IGp1xIFuOyAjNjM1MAor5o2RID4gesOpOyAjNjM1MQor5o2SID4gc8WPbmc7ICM2MzUyCivmjZMgPiB5w6k7ICM2MzUzCivmjZQgPiBqdcOpOyAjNjM1NAor5o2VID4gYsWtOyAjNjM1NQor5o2WID4gaHXDoW47ICM2MzU2CivmjZcgPiBiw7k7ICM2MzU3CivmjZggPiB6w7luOyAjNjM1OAor5o2ZID4gecOsOyAjNjM1OQor5o2aID4gemjEgWk7ICM2MzVBCivmjZsgPiBsx5o7ICM2MzVCCivmjZwgPiBzxY11OyAjNjM1Qwor5o2dID4gdMWrbzsgIzYzNUQKK+aNniA+IGzEgW87ICM2MzVFCivmjZ8gPiBzxa1uOyAjNjM1Rgor5o2gID4gYsSBbmc7ICM2MzYwCivmjaEgPiBqacSDbjsgIzYzNjEKK+aNoiA+IGh1w6BuOyAjNjM2Mgor5o2jID4gZMSDbzsgIzYzNjMKK+aNpSA+IHfDoG47ICM2MzY1CivmjaYgPiBxw61uOyAjNjM2Ngor5o2nID4gcMSVbmc7ICM2MzY3CivmjaggPiBzaMSVOyAjNjM2OAor5o2pID4gbGnDqDsgIzYzNjkKK+aNqiA+IG3DrW47ICM2MzZBCivmjasgPiBtw6luOyAjNjM2Qgor5o2sID4gZsWtOyAjNjM2Qwor5o2tID4gYsSDaTsgIzYzNkQKK+aNriA+IGrDuTsgIzYzNkUKK+aNryA+IGTEg287ICM2MzZGCivmjbAgPiB3xY87ICM2MzcwCivmjbEgPiDDoWk7ICM2MzcxCivmjbIgPiBqdcSDbjsgIzYzNzIKK+aNsyA+IHl1w6g7ICM2MzczCivmjbQgPiB6xY9uZzsgIzYzNzQKK+aNtSA+IGNoxJVuOyAjNjM3NQor5o22ID4gY2jDumk7ICM2Mzc2CivmjbcgPiBqacOpOyAjNjM3Nwor5o24ID4gdMWrOyAjNjM3OAor5o25ID4gYsOobjsgIzYzNzkKK+aNuiA+IG7DoDsgIzYzN0EKK+aNuyA+IG5pxINuOyAjNjM3Qgor5o28ID4gbsO6bzsgIzYzN0MKK+aNvSA+IHrDujsgIzYzN0QKK+aNviA+IHfDsjsgIzYzN0UKK+aNvyA+IHjEqzsgIzYzN0YKK+aOgCA+IHhpxIFuOyAjNjM4MAor5o6BID4gY2jDqW5nOyAjNjM4MQor5o6CID4gZGnEgW47ICM2MzgyCivmjoMgPiBzxINvOyAjNjM4Mwor5o6EID4gbMO6bjsgIzYzODQKK+aOhSA+IHHDrG5nOyAjNjM4NQor5o6GID4gZ8SBbmc7ICM2Mzg2CivmjocgPiBkw7pvOyAjNjM4Nwor5o6IID4gc2jDsnU7ICM2Mzg4CivmjokgPiBkacOgbzsgIzYzODkKK+aOiiA+IHDDs3U7ICM2MzhBCivmjosgPiBkxK07ICM2MzhCCivmjowgPiB6aMSDbmc7ICM2MzhDCivmjo0gPiBnxa1uOyAjNjM4RAor5o6OID4gasStOyAjNjM4RQor5o6PID4gdMSBbzsgIzYzOEYKK+aOkCA+IHFpxIE7ICM2MzkwCivmjpEgPiBxw607ICM2MzkxCivmjpIgPiBww6FpOyAjNjM5Mgor5o6TID4gc2jDujsgIzYzOTMKK+aOlCA+IHFpxIFuOyAjNjM5NAor5o6VID4gbMOsbmc7ICM2Mzk1CivmjpYgPiB5w6w7ICM2Mzk2CivmjpcgPiB5w6A7ICM2Mzk3CivmjpggPiBqdcOpOyAjNjM5OAor5o6ZID4gemjEk25nOyAjNjM5OQor5o6aID4gbGnEg25nOyAjNjM5QQor5o6bID4gZ3XDoDsgIzYzOUIKK+aOnCA+IHnErTsgIzYzOUMKK+aOnSA+IGjDuW87ICM2MzlECivmjp4gPiBzaMOgbjsgIzYzOUUKK+aOnyA+IHpoxJVuZzsgIzYzOUYKK+aOoCA+IGzHnGU7ICM2M0EwCivmjqEgPiBjxINpOyAjNjNBMQor5o6iID4gdMOgbjsgIzYzQTIKK+aOoyA+IGNow6g7ICM2M0EzCivmjqQgPiBixKtuZzsgIzYzQTQKK+aOpSA+IGppxJM7ICM2M0E1CivmjqYgPiB0w6w7ICM2M0E2CivmjqcgPiBrw7JuZzsgIzYzQTcKK+aOqCA+IHTFq2k7ICM2M0E4CivmjqkgPiB5xINuOyAjNjNBOQor5o6qID4gY8O5bzsgIzYzQUEKK+aOqyA+IHrFjXU7ICM2M0FCCivmjqwgPiBqw7o7ICM2M0FDCivmjq0gPiB0acOgbjsgIzYzQUQKK+aOriA+IHFpw6FuOyAjNjNBRQor5o6vID4ga8OobjsgIzYzQUYKK+aOsCA+IGLEgWk7ICM2M0IwCivmjrEgPiBzaMWPdTsgIzYzQjEKK+aOsiA+IGppxJM7ICM2M0IyCivmjrMgPiBsxa07ICM2M0IzCivmjrQgPiBnw7pvOyAjNjNCNAor5o63ID4gemjDrTsgIzYzQjcKK+aOuCA+IGTEg247ICM2M0I4CivmjrogPiB4acSBbjsgIzYzQkEKK+aOuyA+IHPEgW87ICM2M0JCCivmjrwgPiBndcOgbjsgIzYzQkMKK+aOvSA+IHDDqG5nOyAjNjNCRAor5o6+ID4geXXDoG47ICM2M0JFCivmjr8gPiBuw7lvOyAjNjNCRgor5o+AID4gamnEg247ICM2M0MwCivmj4EgPiB6aMSTbjsgIzYzQzEKK+aPgiA+IGrEq3U7ICM2M0MyCivmj4MgPiBqacSBbjsgIzYzQzMKK+aPhCA+IHnDujsgIzYzQzQKK+aPhSA+IHnDoW47ICM2M0M1Civmj4YgPiBrw7ppOyAjNjNDNgor5o+HID4gbsSDbjsgIzYzQzcKK+aPiCA+IGjFjW5nOyAjNjNDOAor5o+JID4gcsOzdTsgIzYzQzkKK+aPiiA+IHDDrDsgIzYzQ0EKK+aPiyA+IHfEk2k7ICM2M0NCCivmj4wgPiBzxIFpOyAjNjNDQwor5o+NID4gesOydTsgIzYzQ0QKK+aPjiA+IHh1xIFuOyAjNjNDRQor5o+PID4gbWnDoW87ICM2M0NGCivmj5AgPiB0w607ICM2M0QwCivmj5EgPiBuacSTOyAjNjNEMQor5o+SID4gY2jEgTsgIzYzRDIKK+aPkyA+IHNow6w7ICM2M0QzCivmj5QgPiB6xY9uZzsgIzYzRDQKK+aPlSA+IHpow6huOyAjNjNENQor5o+WID4gecSrOyAjNjNENgor5o+XID4gc2jFrW47ICM2M0Q3Civmj5ggPiBow6luZzsgIzYzRDgKK+aPmSA+IGJpw6BuOyAjNjNEOQor5o+aID4gecOhbmc7ICM2M0RBCivmj5sgPiBodcOgbjsgIzYzREIKK+aPnCA+IHnEg247ICM2M0RDCivmj50gPiB6dcOgbjsgIzYzREQKK+aPniA+IMSDbjsgIzYzREUKK+aPnyA+IHjFqzsgIzYzREYKK+aPoCA+IHnDoDsgIzYzRTAKK+aPoSA+IHfDsjsgIzYzRTEKK+aPoiA+IGvDqDsgIzYzRTIKK+aPoyA+IGNodcSDaTsgIzYzRTMKK+aPpCA+IGrDrTsgIzYzRTQKK+aPpSA+IHTDrDsgIzYzRTUKK+aPpiA+IGzDoTsgIzYzRTYKK+aPpyA+IGzDoDsgIzYzRTcKK+aPqCA+IGNow6luZzsgIzYzRTgKK+aPqSA+IGvEgWk7ICM2M0U5Civmj6ogPiBqxKt1OyAjNjNFQQor5o+rID4gasSrdTsgIzYzRUIKK+aPrCA+IHTDujsgIzYzRUMKK+aPrSA+IGppxJM7ICM2M0VECivmj64gPiBoxatpOyAjNjNFRQor5o+vID4gZ8STbmc7ICM2M0VGCivmj7AgPiBjaMOybmc7ICM2M0YwCivmj7EgPiBzaMO5bzsgIzYzRjEKK+aPsiA+IHNow6k7ICM2M0YyCivmj7MgPiB4acOoOyAjNjNGMwor5o+0ID4geXXDoW47ICM2M0Y0Civmj7UgPiBxacOhbjsgIzYzRjUKK+aPtiA+IHnDqTsgIzYzRjYKK+aPtyA+IGNoxIE7ICM2M0Y3Civmj7ggPiB6aMSBOyAjNjNGOAor5o+5ID4gYsSTaTsgIzYzRjkKK+aPuiA+IHnDoW87ICM2M0ZBCivmj70gPiBsxINuOyAjNjNGRAor5o++ID4gd8OobjsgIzYzRkUKK+aPvyA+IHHDrG47ICM2M0ZGCivmkIAgPiBjaMSBbjsgIzY0MDAKK+aQgSA+IGfEkzsgIzY0MDEKK+aQgiA+IGzFj3U7ICM2NDAyCivmkIMgPiB6xY9uZzsgIzY0MDMKK+aQhCA+IGfEk25nOyAjNjQwNAor5pCFID4gamnEg287ICM2NDA1CivmkIYgPiBnw7J1OyAjNjQwNgor5pCHID4gccOsbjsgIzY0MDcKK+aQiCA+IHnFj25nOyAjNjQwOAor5pCJID4gcXXDqDsgIzY0MDkKK+aQiiA+IGNoxY11OyAjNjQwQQor5pCLID4gY2jErTsgIzY0MEIKK+aQjCA+IHpoxINuOyAjNjQwQwor5pCNID4gc8WtbjsgIzY0MEQKK+aQjiA+IHPFq247ICM2NDBFCivmkI8gPiBiw7M7ICM2NDBGCivmkJAgPiBjaMO5OyAjNjQxMAor5pCRID4gcsWPbmc7ICM2NDExCivmkJIgPiBiw6huZzsgIzY0MTIKK+aQkyA+IGPFq287ICM2NDEzCivmkJQgPiBzxIFvOyAjNjQxNAor5pCVID4ga8OoOyAjNjQxNQor5pCWID4gecOhbzsgIzY0MTYKK+aQlyA+IGTEg287ICM2NDE3CivmkJggPiB6aMSrOyAjNjQxOAor5pCZID4gbsO5OyAjNjQxOQor5pCaID4geGnDqTsgIzY0MUEKK+aQmyA+IGppxIFuOyAjNjQxQgor5pCcID4gc8WNdTsgIzY0MUMKK+aQnSA+IHHErXU7ICM2NDFECivmkJ4gPiBnxINvOyAjNjQxRQor5pCfID4geGnEg247ICM2NDFGCivmkKAgPiBzaMO5bzsgIzY0MjAKK+aQoSA+IHPEg25nOyAjNjQyMQor5pCiID4gasOsbjsgIzY0MjIKK+aQoyA+IG1pw6g7ICM2NDIzCivmkKQgPiDDqDsgIzY0MjQKK+aQpSA+IGNow7ppOyAjNjQyNQor5pCmID4gbsO5bzsgIzY0MjYKK+aQpyA+IHNoxIFuOyAjNjQyNwor5pCoID4gdMOgOyAjNjQyOAor5pCpID4gamnDqTsgIzY0MjkKK+aQqiA+IHTDoW5nOyAjNjQyQQor5pCrID4gcMOhbjsgIzY0MkIKK+aQrCA+IGLEgW47ICM2NDJDCivmkK0gPiBkxIE7ICM2NDJECivmkK4gPiBsw6w7ICM2NDJFCivmkK8gPiB0xIFvOyAjNjQyRgor5pCwID4gaMO6OyAjNjQzMAor5pCxID4gemjDrDsgIzY0MzEKK+aQsiA+IHfEgTsgIzY0MzIKK+aQsyA+IHhpw6E7ICM2NDMzCivmkLQgPiBxacSBbjsgIzY0MzQKK+aQtSA+IHfDqG47ICM2NDM1CivmkLYgPiBxacSDbmc7ICM2NDM2CivmkLcgPiB0acOhbjsgIzY0MzcKK+aQuCA+IHpoxJNuOyAjNjQzOAor5pC5ID4gw6g7ICM2NDM5CivmkLogPiB4xKs7ICM2NDNBCivmkLsgPiBuw7lvOyAjNjQzQgor5pC8ID4gcXXDoW47ICM2NDNDCivmkL0gPiBjaMOhOyAjNjQzRAor5pC+ID4gemjDoDsgIzY0M0UKK+aQvyA+IGfDqTsgIzY0M0YKK+aRgCA+IHfFrTsgIzY0NDAKK+aRgSA+IMOobjsgIzY0NDEKK+aRgiA+IHNow6g7ICM2NDQyCivmkYMgPiBrw6FuZzsgIzY0NDMKK+aRhCA+IHNow6g7ICM2NDQ0CivmkYUgPiBzaMWrOyAjNjQ0NQor5pGGID4gYsSDaTsgIzY0NDYKK+aRhyA+IHnDoW87ICM2NDQ3CivmkYggPiBiw6xuOyAjNjQ0OAor5pGJID4gc8WNdTsgIzY0NDkKK+aRiiA+IHTEgW47ICM2NDRBCivmkYsgPiBzw6A7ICM2NDRCCivmkYwgPiBjaMSDbjsgIzY0NEMKK+aRjSA+IHPFq287ICM2NDRECivmkY4gPiBsacOhbzsgIzY0NEUKK+aRjyA+IGNoxY1uZzsgIzY0NEYKK+aRkCA+IGNodcSBbmc7ICM2NDUwCivmkZEgPiBnw7pvOyAjNjQ1MQor5pGSID4gYsOsbmc7ICM2NDUyCivmkZMgPiBmw6luZzsgIzY0NTMKK+aRlCA+IHNodcSBaTsgIzY0NTQKK+aRlSA+IGTDrDsgIzY0NTUKK+aRliA+IHHDrDsgIzY0NTYKK+aRlyA+IHNvdTsgIzY0NTcKK+aRmCA+IHpoxIFpOyAjNjQ1OAor5pGZID4gbGnEg247ICM2NDU5CivmkZogPiB0w6FuZzsgIzY0NUEKK+aRmyA+IGNoxKs7ICM2NDVCCivmkZwgPiBndcOgbjsgIzY0NUMKK+aRnSA+IGzDuTsgIzY0NUQKK+aRniA+IGzDum87ICM2NDVFCivmkZ8gPiBsxY91OyAjNjQ1Rgor5pGgID4gesWPbmc7ICM2NDYwCivmkaEgPiBnw6BpOyAjNjQ2MQor5pGiID4gaMO5OyAjNjQ2Mgor5pGjID4gemjEgTsgIzY0NjMKK+aRpCA+IGNodcSDbmc7ICM2NDY0CivmkaUgPiB0w6BuZzsgIzY0NjUKK+aRpiA+IGh1w6A7ICM2NDY2CivmkacgPiBjxatpOyAjNjQ2Nwor5pGoID4gbsOhaTsgIzY0NjgKK+aRqSA+IG3DszsgIzY0NjkKK+aRqiA+IGppxIFuZzsgIzY0NkEKK+aRqyA+IGfFq2k7ICM2NDZCCivmkawgPiB5w6xuZzsgIzY0NkMKK+aRrSA+IHpow607ICM2NDZECivmka4gPiDDoW87ICM2NDZFCivmka8gPiB6aMOsOyAjNjQ2Rgor5pGwID4gbmnDqDsgIzY0NzAKK+aRsSA+IG3DoW47ICM2NDcxCivmkbIgPiBzaMOgbjsgIzY0NzIKK+aRsyA+IGvFjXU7ICM2NDczCivmkbQgPiBzaMWrOyAjNjQ3NAor5pG1ID4gc8WtbzsgIzY0NzUKK+aRtiA+IHR1w6FuOyAjNjQ3Ngor5pG3ID4gamnEg287ICM2NDc3CivmkbggPiBtxY07ICM2NDc4CivmkbkgPiBtw7M7ICM2NDc5CivmkbogPiB6aMOpOyAjNjQ3QQor5pG7ID4geGnEgW47ICM2NDdCCivmkbwgPiBrxJNuZzsgIzY0N0MKK+aRvSA+IHBpxINvOyAjNjQ3RAor5pG+ID4gamnDoG5nOyAjNjQ3RQor5pG/ID4gecSrbjsgIzY0N0YKK+aSgCA+IGfDsnU7ICM2NDgwCivmkoEgPiBxacSBbjsgIzY0ODEKK+aSgiA+IGzHnGU7ICM2NDgyCivmkoMgPiBqw607ICM2NDgzCivmkoQgPiB5xKtuZzsgIzY0ODQKK+aShSA+IGp1xJM7ICM2NDg1CivmkoYgPiBwacSTOyAjNjQ4Ngor5pKHID4gcGnElTsgIzY0ODcKK+aSiCA+IGzEgW87ICM2NDg4CivmkokgPiBkxatuOyAjNjQ4OQor5pKKID4geGnDoG47ICM2NDhBCivmkosgPiBydcOhbjsgIzY0OEIKK+aSjCA+IGvDuWk7ICM2NDhDCivmko0gPiB6xINuOyAjNjQ4RAor5pKOID4gecOsOyAjNjQ4RQor5pKPID4geMO6bjsgIzY0OEYKK+aSkCA+IGNoxJNuZzsgIzY0OTAKK+aSkSA+IGNoxJNuZzsgIzY0OTEKK+aSkiA+IHPEgzsgIzY0OTIKK+aSkyA+IG7DoW87ICM2NDkzCivmkpQgPiBow6huZzsgIzY0OTQKK+aSlSA+IHPEqzsgIzY0OTUKK+aSliA+IHFpxINuOyAjNjQ5Ngor5pKXID4gaHXDoW5nOyAjNjQ5Nwor5pKYID4gZMSBOyAjNjQ5OAor5pKZID4gesWtbjsgIzY0OTkKK+aSmiA+IG5pxINuOyAjNjQ5QQor5pKbID4gbMStbjsgIzY0OUIKK+aSnCA+IHpoxJVuZzsgIzY0OUMKK+aSnSA+IGjFq2k7ICM2NDlECivmkp4gPiB6aHXDoG5nOyAjNjQ5RQor5pKfID4gamnEg287ICM2NDlGCivmkqAgPiBqxK07ICM2NEEwCivmkqEgPiBjxIFvOyAjNjRBMQor5pKiID4gZMSDbjsgIzY0QTIKK+aSoyA+IGTEg247ICM2NEEzCivmkqQgPiBjaMOoOyAjNjRBNAor5pKlID4gYsWNOyAjNjRBNQor5pKmID4gY2jElTsgIzY0QTYKK+aSpyA+IGp1w6k7ICM2NEE3CivmkqggPiB4acSBbzsgIzY0QTgKK+aSqSA+IGxpw6FvOyAjNjRBOQor5pKqID4gYsOobjsgIzY0QUEKK+aSqyA+IGbFrTsgIzY0QUIKK+aSrCA+IHFpw6BvOyAjNjRBQwor5pKtID4gYsOyOyAjNjRBRAor5pKuID4gY8WrbzsgIzY0QUUKK+aSryA+IHpow7pvOyAjNjRBRgor5pKwID4gemh1w6BuOyAjNjRCMAor5pKxID4gdMWtbzsgIzY0QjEKK+aSsiA+IHDFqzsgIzY0QjIKK+aSsyA+IHHDrG47ICM2NEIzCivmkrQgPiBkxatuOyAjNjRCNAor5pK1ID4gbmnEg247ICM2NEI1CivmkrcgPiB4acOpOyAjNjRCNwor5pK4ID4gbMWtOyAjNjRCOAor5pK5ID4gamnEg287ICM2NEI5CivmkrogPiBjdcSBbjsgIzY0QkEKK+aSuyA+IHTDoDsgIzY0QkIKK+aSvCA+IGjDoG47ICM2NEJDCivmkr0gPiBxacOgbzsgIzY0QkQKK+aSviA+IHpodcSBOyAjNjRCRQor5pK/ID4gamnEg247ICM2NEJGCivmk4AgPiBnxINuOyAjNjRDMAor5pOBID4gecWPbmc7ICM2NEMxCivmk4IgPiBsw6lpOyAjNjRDMgor5pODID4ga8WtbzsgIzY0QzMKK+aThCA+IGzFrTsgIzY0QzQKK+aThSA+IHNow6BuOyAjNjRDNQor5pOGID4gemjDum87ICM2NEM2Civmk4cgPiB6w6k7ICM2NEM3Civmk4ggPiBwxas7ICM2NEM4Civmk4kgPiBjaMO5bzsgIzY0QzkKK+aTiiA+IGrDrTsgIzY0Q0EKK+aTiyA+IGTEg25nOyAjNjRDQgor5pOMID4gc8WtbzsgIzY0Q0MKK+aTjSA+IGPEgW87ICM2NENECivmk44gPiBxw61uZzsgIzY0Q0UKK+aTjyA+IGrDrG5nOyAjNjRDRgor5pOQID4gaHXDoG47ICM2NEQwCivmk5EgPiBqacSTOyAjNjREMQor5pOSID4gccOtbjsgIzY0RDIKK+aTkyA+IGt1xINpOyAjNjREMwor5pOUID4gZMSBbjsgIzY0RDQKK+aTlSA+IHjEqzsgIzY0RDUKK+aTliA+IGfElTsgIzY0RDYKK+aTlyA+IHDDrDsgIzY0RDcKK+aTmCA+IGLDsjsgIzY0RDgKK+aTmSA+IMOgbzsgIzY0RDkKK+aTmiA+IGrDuTsgIzY0REEKK+aTmyA+IHnDqDsgIzY0REIKK+aTniA+IHPFj3U7ICM2NERFCivmk58gPiBtw607ICM2NERGCivmk6AgPiBqxK07ICM2NEUwCivmk6EgPiB0w6FpOyAjNjRFMQor5pOiID4gemjDum87ICM2NEUyCivmk6MgPiBkxINvOyAjNjRFMwor5pOkID4geMStbmc7ICM2NEU0Civmk6UgPiBsxINuOyAjNjRFNQor5pOmID4gY8SBOyAjNjRFNgor5pOnID4gasWtOyAjNjRFNwor5pOoID4gecOpOyAjNjRFOAor5pOpID4gcsWtOyAjNjRFOQor5pOqID4gecOoOyAjNjRFQQor5pOrID4gecOoOyAjNjRFQgor5pOsID4gbsStOyAjNjRFQwor5pOtID4gaMO5OyAjNjRFRAor5pOuID4gasOtOyAjNjRFRQor5pOvID4gYsOsbjsgIzY0RUYKK+aTsCA+IG7DrW5nOyAjNjRGMAor5pOxID4gZ8STOyAjNjRGMQor5pOyID4gemjDrTsgIzY0RjIKK+aTsyA+IGppw6k7ICM2NEYzCivmk7QgPiBrw7lvOyAjNjRGNAor5pO1ID4gbcOzOyAjNjRGNQor5pO2ID4gamnDoG47ICM2NEY2Civmk7cgPiB4acOpOyAjNjRGNwor5pO4ID4gbGnDqDsgIzY0RjgKK+aTuSA+IHTEgW47ICM2NEY5Civmk7ogPiBixINpOyAjNjRGQQor5pO7ID4gc8WPdTsgIzY0RkIKK+aTvCA+IGzFrTsgIzY0RkMKK+aTvSA+IGzHnGU7ICM2NEZECivmk74gPiByxINvOyAjNjRGRQor5pO/ID4gemjDrTsgIzY0RkYKK+aUgCA+IHDEgW47ICM2NTAwCivmlIEgPiB5xINuZzsgIzY1MDEKK+aUgiA+IGzDqGk7ICM2NTAyCivmlIMgPiBzw6A7ICM2NTAzCivmlIQgPiBzaMWrOyAjNjUwNAor5pSFID4gesSDbjsgIzY1MDUKK+aUhiA+IG5pxINuOyAjNjUwNgor5pSHID4geGnEg247ICM2NTA3CivmlIggPiBqw7luOyAjNjUwOAor5pSJID4gaMO5bzsgIzY1MDkKK+aUiiA+IGzDrDsgIzY1MEEKK+aUiyA+IGzDoDsgIzY1MEIKK+aUjCA+IGjDoG47ICM2NTBDCivmlI0gPiB5w61uZzsgIzY1MEQKK+aUjiA+IGzDujsgIzY1MEUKK+aUjyA+IGzFj25nOyAjNjUwRgor5pSQID4gcWnEgW47ICM2NTEwCivmlJEgPiBxacSBbjsgIzY1MTEKK+aUkiA+IHrEg247ICM2NTEyCivmlJMgPiBxacSBbjsgIzY1MTMKK+aUlCA+IGzDoW47ICM2NTE0CivmlJUgPiBzxIFuOyAjNjUxNQor5pSWID4gecSrbmc7ICM2NTE2CivmlJcgPiBtw6lpOyAjNjUxNwor5pSYID4gcsOhbmc7ICM2NTE4CivmlJkgPiBjaMSBbjsgIzY1MTkKK+aUmyA+IGN1xIFuOyAjNjUxQgor5pScID4geMSrOyAjNjUxQwor5pSdID4gc2jDqDsgIzY1MUQKK+aUniA+IGzFrW87ICM2NTFFCivmlJ8gPiBqw7luOyAjNjUxRgor5pSgID4gbcOtOyAjNjUyMAor5pShID4gbMOtOyAjNjUyMQor5pSiID4gesSDbjsgIzY1MjIKK+aUoyA+IGzHmGFuOyAjNjUyMwor5pSkID4gdMSBbjsgIzY1MjQKK+aUpSA+IHp1w6BuOyAjNjUyNQor5pSmID4gbMOsOyAjNjUyNgor5pSnID4gZGnEgW47ICM2NTI3CivmlKggPiB3xIE7ICM2NTI4CivmlKkgPiBkxINuZzsgIzY1MjkKK+aUqiA+IGppxINvOyAjNjUyQQor5pSrID4ganXDqTsgIzY1MkIKK+aUrCA+IGzEg247ICM2NTJDCivmlK0gPiBsw6w7ICM2NTJECivmlK4gPiBuxINuZzsgIzY1MkUKK+aUryA+IHpoxKs7ICM2NTJGCivmlLAgPiBnw7lpOyAjNjUzMAor5pSxID4gZ8WtaTsgIzY1MzEKK+aUsiA+IHHEqzsgIzY1MzIKK+aUsyA+IHjDrW47ICM2NTMzCivmlLQgPiBwxas7ICM2NTM0CivmlLUgPiBzxatpOyAjNjUzNQor5pS2ID4gc2jFjXU7ICM2NTM2CivmlLcgPiBrw6FvOyAjNjUzNwor5pS4ID4gecWNdTsgIzY1MzgKK+aUuSA+IGfEg2k7ICM2NTM5CivmlLogPiB5xK07ICM2NTNBCivmlLsgPiBnxY1uZzsgIzY1M0IKK+aUvCA+IGfEgW47ICM2NTNDCivmlL0gPiBixIFuOyAjNjUzRAor5pS+ID4gZsOgbmc7ICM2NTNFCivmlL8gPiB6aMOobmc7ICM2NTNGCivmlYAgPiBiw7M7ICM2NTQwCivmlYEgPiBkacSBbjsgIzY1NDEKK+aVgiA+IGvDsnU7ICM2NTQyCivmlYMgPiBtxK1uOyAjNjU0Mwor5pWEID4gd8O5OyAjNjU0NAor5pWFID4gZ8O5OyAjNjU0NQor5pWGID4gaMOpOyAjNjU0Ngor5pWHID4gY8OoOyAjNjU0Nwor5pWIID4geGnDoG87ICM2NTQ4CivmlYkgPiBtxK07ICM2NTQ5CivmlYogPiBjaMO5OyAjNjU0QQor5pWLID4gZ8OpOyAjNjU0Qgor5pWMID4gZMOtOyAjNjU0Qwor5pWNID4geMO5OyAjNjU0RAor5pWOID4gamnDoG87ICM2NTRFCivmlY8gPiBtxK1uOyAjNjU0Rgor5pWQID4gY2jDqW47ICM2NTUwCivmlZEgPiBqw6x1OyAjNjU1MQor5pWSID4gemjDqG47ICM2NTUyCivmlZMgPiBkw7pvOyAjNjU1Mwor5pWUID4gecWtOyAjNjU1NAor5pWVID4gY2jDrDsgIzY1NTUKK+aVliA+IMOhbzsgIzY1NTYKK+aVlyA+IGLDoGk7ICM2NTU3CivmlZggPiB4w7k7ICM2NTU4CivmlZkgPiBqacOgbzsgIzY1NTkKK+aVmiA+IGTDum87ICM2NTVBCivmlZsgPiBsacOgbjsgIzY1NUIKK+aVnCA+IG5pw6g7ICM2NTVDCivmlZ0gPiBiw6w7ICM2NTVECivmlZ4gPiBjaMSDbmc7ICM2NTVFCivmlZ8gPiBkacSDbjsgIzY1NUYKK+aVoCA+IGTDum87ICM2NTYwCivmlaEgPiB5w6w7ICM2NTYxCivmlaIgPiBnxINuOyAjNjU2Mgor5pWjID4gc8OgbjsgIzY1NjMKK+aVpCA+IGvElTsgIzY1NjQKK+aVpSA+IHnDoG47ICM2NTY1CivmlaYgPiBkxatuOyAjNjU2Ngor5pWnID4gccStOyAjNjU2Nwor5pWoID4gZMWPdTsgIzY1NjgKK+aVqSA+IHhpw6BvOyAjNjU2OQor5pWqID4gZMO6bzsgIzY1NkEKK+aVqyA+IGppw6BvOyAjNjU2Qgor5pWsID4gasOsbmc7ICM2NTZDCivmla0gPiB5w6FuZzsgIzY1NkQKK+aVriA+IHhpw6E7ICM2NTZFCivmla8gPiBtw61uOyAjNjU2Rgor5pWwID4gc2jDuTsgIzY1NzAKK+aVsSA+IMOhaTsgIzY1NzEKK+aVsiA+IHFpxIFvOyAjNjU3Mgor5pWzID4gw6FpOyAjNjU3Mwor5pW0ID4gemjElW5nOyAjNjU3NAor5pW1ID4gZMOtOyAjNjU3NQor5pW2ID4gemjDqG47ICM2NTc2CivmlbcgPiBmxas7ICM2NTc3CivmlbggPiBzaMO5OyAjNjU3OAor5pW5ID4gbGnDoW87ICM2NTc5CivmlbogPiBxxas7ICM2NTdBCivmlbsgPiB4w6xvbmc7ICM2NTdCCivmlbwgPiB4xK07ICM2NTdDCivmlb0gPiBqacSDbzsgIzY1N0QKK+aVvyA+IGppxINvOyAjNjU3Rgor5paAID4gemjDum87ICM2NTgwCivmloEgPiB5w6w7ICM2NTgxCivmloIgPiBsacOgbjsgIzY1ODIKK+aWgyA+IGLDrDsgIzY1ODMKK+aWhCA+IGzDrDsgIzY1ODQKK+aWhSA+IHhpw6BvOyAjNjU4NQor5paGID4geGnDoG87ICM2NTg2CivmlocgPiB3w6luOyAjNjU4Nwor5paIID4geHXDqTsgIzY1ODgKK+aWiSA+IHHDrTsgIzY1ODkKK+aWiiA+IHHDrTsgIzY1OEEKK+aWiyA+IHpoxIFpOyAjNjU4Qgor5paMID4gYsSrbjsgIzY1OEMKK+aWjSA+IGp1w6k7ICM2NThECivmlo4gPiB6aMSBaTsgIzY1OEUKK+aWkCA+IGbElWk7ICM2NTkwCivmlpEgPiBixIFuOyAjNjU5MQor5paSID4gYsSBbjsgIzY1OTIKK+aWkyA+IGzDoW47ICM2NTkzCivmlpQgPiB5xa07ICM2NTk0CivmlpUgPiBsw6FuOyAjNjU5NQor5paWID4gd8SVaTsgIzY1OTYKK+aWlyA+IGTFj3U7ICM2NTk3CivmlpggPiBzaMSTbmc7ICM2NTk4CivmlpkgPiBsacOgbzsgIzY1OTkKK+aWmiA+IGppxIM7ICM2NTlBCivmlpsgPiBow7o7ICM2NTlCCivmlpwgPiB4acOpOyAjNjU5Qwor5padID4gamnEgzsgIzY1OUQKK+aWniA+IHnFrTsgIzY1OUUKK+aWnyA+IHpoxJNuOyAjNjU5Rgor5pagID4gamnDoG87ICM2NUEwCivmlqEgPiB3w7I7ICM2NUExCivmlqIgPiB0xY91OyAjNjVBMgor5pajID4gY2jDuTsgIzY1QTMKK+aWpCA+IGrEq247ICM2NUE0CivmlqUgPiBjaMOsOyAjNjVBNQor5pamID4gecOtbjsgIzY1QTYKK+aWpyA+IGbFrTsgIzY1QTcKK+aWqCA+IHFpxIFuZzsgIzY1QTgKK+aWqSA+IHpoxINuOyAjNjVBOQor5paqID4gccO6OyAjNjVBQQor5parID4gemjDum87ICM2NUFCCivmlqwgPiB6aMSDbjsgIzY1QUMKK+aWrSA+IGR1w6BuOyAjNjVBRAor5pauID4gemjDum87ICM2NUFFCivmlq8gPiBzxKs7ICM2NUFGCivmlrAgPiB4xKtuOyAjNjVCMAor5paxID4gemjDum87ICM2NUIxCivmlrIgPiB6aMO6bzsgIzY1QjIKK+aWsyA+IHHDrW47ICM2NUIzCivmlrQgPiBsw61uOyAjNjVCNAor5pa1ID4gemjDum87ICM2NUI1CivmlrYgPiBjaMO5OyAjNjVCNgor5pa3ID4gZHXDoG47ICM2NUI3CivmlrggPiB6aMWtOyAjNjVCOAor5pa5ID4gZsSBbmc7ICM2NUI5CivmlrogPiB4acOoOyAjNjVCQQor5pa7ID4gaMOhbmc7ICM2NUJCCivmlrwgPiB5w7o7ICM2NUJDCivmlr0gPiBzaMSrOyAjNjVCRAor5pa+ID4gcMOoaTsgIzY1QkUKK+aWvyA+IHnDs3U7ICM2NUJGCivml4EgPiBww6FuZzsgIzY1QzEKK+aXgiA+IHHDrTsgIzY1QzIKK+aXgyA+IHpoxIFuOyAjNjVDMwor5peEID4gbcOhbzsgIzY1QzQKK+aXhSA+IGzHmjsgIzY1QzUKK+aXhiA+IHDDqGk7ICM2NUM2Civml4cgPiBwxKs7ICM2NUM3Civml4ggPiBsw611OyAjNjVDOAor5peJID4gZsWrOyAjNjVDOQor5peKID4gZsSDbmc7ICM2NUNBCivml4sgPiB4dcOhbjsgIzY1Q0IKK+aXjCA+IGrEq25nOyAjNjVDQwor5peNID4gasSrbmc7ICM2NUNECivml44gPiBuxK07ICM2NUNFCivml48gPiB6w7o7ICM2NUNGCivml5AgPiB6aMOgbzsgIzY1RDAKK+aXkSA+IHnErTsgIzY1RDEKK+aXkiA+IGzDrXU7ICM2NUQyCivml5MgPiBzaMSBbzsgIzY1RDMKK+aXlCA+IGppw6BuOyAjNjVENAor5peWID4gecStOyAjNjVENgor5peXID4gccOtOyAjNjVENwor5peYID4gemjDrDsgIzY1RDgKK+aXmSA+IGbEgW47ICM2NUQ5Civml5ogPiBwacSBbzsgIzY1REEKK+aXmyA+IGbEgW47ICM2NURCCivml5wgPiB6aMSBbjsgIzY1REMKK+aXnSA+IGd1w6BpOyAjNjVERAor5peeID4gc8O5aTsgIzY1REUKK+aXnyA+IHnDujsgIzY1REYKK+aXoCA+IHfDujsgIzY1RTAKK+aXoSA+IGrDrDsgIzY1RTEKK+aXoiA+IGrDrDsgIzY1RTIKK+aXoyA+IGrDrDsgIzY1RTMKK+aXpCA+IGjDuW87ICM2NUU0Civml6UgPiByw6w7ICM2NUU1Civml6YgPiBkw6BuOyAjNjVFNgor5penID4gasOsdTsgIzY1RTcKK+aXqCA+IHpoxK07ICM2NUU4Civml6kgPiB6xINvOyAjNjVFOQor5peqID4geGnDqTsgIzY1RUEKK+aXqyA+IHRpxIFvOyAjNjVFQgor5pesID4geMO6bjsgIzY1RUMKK+aXrSA+IHjDuTsgIzY1RUQKK+aXriA+IHjDuTsgIzY1RUUKK+aXryA+IHjDuTsgIzY1RUYKK+aXsCA+IGfDoG47ICM2NUYwCivml7EgPiBow6BuOyAjNjVGMQor5peyID4gdMOhaTsgIzY1RjIKK+aXsyA+IGTDrDsgIzY1RjMKK+aXtCA+IHjFqzsgIzY1RjQKK+aXtSA+IGNoxINuOyAjNjVGNQor5pe2ID4gc2jDrTsgIzY1RjYKK+aXtyA+IGt1w6BuZzsgIzY1RjcKK+aXuCA+IHnDoW5nOyAjNjVGOAor5pe5ID4gc2jDrTsgIzY1RjkKK+aXuiA+IHfDoG5nOyAjNjVGQQor5pe7ID4gbcOtbjsgIzY1RkIKK+aXvCA+IG3DrW47ICM2NUZDCivml70gPiB0xatuOyAjNjVGRAor5pe+ID4gY2jFq247ICM2NUZFCivml78gPiB3xa07ICM2NUZGCivmmIAgPiB5w7puOyAjNjYwMAor5piBID4gYsOoaTsgIzY2MDEKK+aYgiA+IMOhbmc7ICM2NjAyCivmmIMgPiB6w6g7ICM2NjAzCivmmIQgPiBixINuOyAjNjYwNAor5piFID4gamnDqTsgIzY2MDUKK+aYhiA+IGvFq247ICM2NjA2CivmmIcgPiBzaMSTbmc7ICM2NjA3CivmmIggPiBow7k7ICM2NjA4CivmmIkgPiBmxINuZzsgIzY2MDkKK+aYiiA+IGjDoG87ICM2NjBBCivmmIsgPiBnw7lpOyAjNjYwQgor5piMID4gY2jEgW5nOyAjNjYwQwor5piNID4geHXEgW47ICM2NjBECivmmI4gPiBtw61uZzsgIzY2MEUKK+aYjyA+IGjFq247ICM2NjBGCivmmJAgPiBmxJNuOyAjNjYxMAor5piRID4gccStbjsgIzY2MTEKK+aYkiA+IGjFqzsgIzY2MTIKK+aYkyA+IHnDrDsgIzY2MTMKK+aYlCA+IHjDrTsgIzY2MTQKK+aYlSA+IHjEq247ICM2NjE1CivmmJYgPiB5w6FuOyAjNjYxNgor5piXID4gesOoOyAjNjYxNwor5piYID4gZsSDbmc7ICM2NjE4CivmmJkgPiB0w6FuOyAjNjYxOQor5piaID4gc2jDqG47ICM2NjFBCivmmJsgPiBqw7k7ICM2NjFCCivmmJwgPiB5w6FuZzsgIzY2MUMKK+aYnSA+IHrEg247ICM2NjFECivmmJ4gPiBixK1uZzsgIzY2MUUKK+aYnyA+IHjEq25nOyAjNjYxRgor5pigID4gecOsbmc7ICM2NjIwCivmmKEgPiB4dcOgbjsgIzY2MjEKK+aYoiA+IHDElWk7ICM2NjIyCivmmKMgPiB6aMSVbjsgIzY2MjMKK+aYpCA+IGzEq25nOyAjNjYyNAor5pilID4gY2jFq247ICM2NjI1CivmmKYgPiBow6BvOyAjNjYyNgor5pinID4gbcOoaTsgIzY2MjcKK+aYqCA+IHrDum87ICM2NjI4CivmmKkgPiBtw7I7ICM2NjI5CivmmKogPiBiacOgbjsgIzY2MkEKK+aYqyA+IHjFrTsgIzY2MkIKK+aYrCA+IGjFq247ICM2NjJDCivmmK0gPiB6aMSBbzsgIzY2MkQKK+aYriA+IHrDsm5nOyAjNjYyRQor5pivID4gc2jDrDsgIzY2MkYKK+aYsCA+IHNow6w7ICM2NjMwCivmmLEgPiB5w7k7ICM2NjMxCivmmLIgPiBmw6hpOyAjNjYzMgor5pizID4gZGnDqTsgIzY2MzMKK+aYtCA+IG3Eg287ICM2NjM0CivmmLUgPiBuw6w7ICM2NjM1CivmmLYgPiBjaMSDbmc7ICM2NjM2CivmmLcgPiB3xJNuOyAjNjYzNwor5pi4ID4gZMWNbmc7ICM2NjM4CivmmLkgPiDEg2k7ICM2NjM5CivmmLogPiBixK1uZzsgIzY2M0EKK+aYuyA+IMOhbmc7ICM2NjNCCivmmLwgPiB6aMOydTsgIzY2M0MKK+aYvSA+IGzDs25nOyAjNjYzRAor5pi+ID4geGnEg247ICM2NjNFCivmmL8gPiBrdcOgbmc7ICM2NjNGCivmmYAgPiB0acSDbzsgIzY2NDAKK+aZgSA+IGNow6FvOyAjNjY0MQor5pmCID4gc2jDrTsgIzY2NDIKK+aZgyA+IGh1xINuZzsgIzY2NDMKK+aZhCA+IGh1xINuZzsgIzY2NDQKK+aZhSA+IHh1xIFuOyAjNjY0NQor5pmGID4ga8O6aTsgIzY2NDYKK+aZhyA+IHjFqzsgIzY2NDcKK+aZiCA+IGppxINvOyAjNjY0OAor5pmJID4gasOsbjsgIzY2NDkKK+aZiiA+IHpoxK07ICM2NjRBCivmmYsgPiBqw6xuOyAjNjY0Qgor5pmMID4gc2jEg25nOyAjNjY0Qwor5pmNID4gdMOzbmc7ICM2NjRECivmmY4gPiBoxY9uZzsgIzY2NEUKK+aZjyA+IHnDoG47ICM2NjRGCivmmZAgPiBnxIFpOyAjNjY1MAor5pmRID4geGnEg25nOyAjNjY1MQor5pmSID4gc2jDoGk7ICM2NjUyCivmmZMgPiB4acSDbzsgIzY2NTMKK+aZlCA+IHnEkzsgIzY2NTQKK+aZlSA+IHnFq247ICM2NjU1CivmmZYgPiBoxatpOyAjNjY1Ngor5pmXID4gaMOhbjsgIzY2NTcKK+aZmCA+IGjDoG47ICM2NjU4CivmmZkgPiBqw7luOyAjNjY1OQor5pmaID4gd8SDbjsgIzY2NUEKK+aZmyA+IHhpw6BuOyAjNjY1Qgor5pmcID4ga8WrbjsgIzY2NUMKK+aZnSA+IHpow7J1OyAjNjY1RAor5pmeID4geMSrOyAjNjY1RQor5pmfID4gY2jDqW5nOyAjNjY1Rgor5pmgID4gc2jDqW5nOyAjNjY2MAor5pmhID4gYsWrOyAjNjY2MQor5pmiID4gemjEkzsgIzY2NjIKK+aZoyA+IHpoxJM7ICM2NjYzCivmmaQgPiB3w7k7ICM2NjY0CivmmaUgPiBow6BuOyAjNjY2NQor5pmmID4gaMO5aTsgIzY2NjYKK+aZpyA+IGjDoG87ICM2NjY3CivmmaggPiBjaMOpbjsgIzY2NjgKK+aZqSA+IHfEg247ICM2NjY5CivmmaogPiB0acSDbjsgIzY2NkEKK+aZqyA+IHpow7pvOyAjNjY2Qgor5pmsID4gesO5aTsgIzY2NkMKK+aZrSA+IHpoxY91OyAjNjY2RAor5pmuID4gcMWtOyAjNjY2RQor5pmvID4gasStbmc7ICM2NjZGCivmmbAgPiB4xKs7ICM2NjcwCivmmbEgPiBzaMSDbjsgIzY2NzEKK+aZsiA+IHnErTsgIzY2NzIKK+aZsyA+IHjDrDsgIzY2NzMKK+aZtCA+IHHDrW5nOyAjNjY3NAor5pm1ID4gccStOyAjNjY3NQor5pm2ID4gasSrbmc7ICM2Njc2CivmmbcgPiBnxa1pOyAjNjY3Nwor5pm4ID4gemjElW47ICM2Njc4CivmmbkgPiB5w6w7ICM2Njc5CivmmbogPiB6aMOsOyAjNjY3QQor5pm7ID4gxINuOyAjNjY3Qgor5pm8ID4gd8SDbjsgIzY2N0MKK+aZvSA+IGzDrW47ICM2NjdECivmmb4gPiBsacOgbmc7ICM2NjdFCivmmb8gPiBjaMSBbmc7ICM2NjdGCivmmoAgPiB3xINuZzsgIzY2ODAKK+aagSA+IHhpxINvOyAjNjY4MQor5pqCID4gesOgbjsgIzY2ODIKK+aahCA+IHh1xIFuOyAjNjY4NAor5pqFID4geHXEg247ICM2Njg1CivmmoYgPiB5w607ICM2Njg2CivmmocgPiB4acOhOyAjNjY4Nwor5pqIID4gecWrbjsgIzY2ODgKK+aaiSA+IGjFq2k7ICM2Njg5CivmmoogPiBmxa07ICM2NjhBCivmmosgPiBtxK1uOyAjNjY4Qgor5pqMID4ga8O6aTsgIzY2OEMKK+aajSA+IGjDqDsgIzY2OEQKK+aajiA+IHnDrG5nOyAjNjY4RQor5pqPID4gZMWtOyAjNjY4Rgor5pqQID4gd8SVaTsgIzY2OTAKK+aakSA+IHNoxa07ICM2NjkxCivmmpIgPiBxw61uZzsgIzY2OTIKK+aakyA+IG3DoG87ICM2NjkzCivmmpQgPiBuw6FuOyAjNjY5NAor5pqVID4gamnEg247ICM2Njk1CivmmpYgPiBudcSDbjsgIzY2OTYKK+aalyA+IMOgbjsgIzY2OTcKK+aamCA+IHnDoW5nOyAjNjY5OAor5pqZID4gY2jFq247ICM2Njk5CivmmpogPiB5w6FvOyAjNjY5QQor5pqbID4gc8WtbzsgIzY2OUIKK+aanCA+IGrDrG47ICM2NjlDCivmmp0gPiBtw61uZzsgIzY2OUQKK+aaniA+IGppxINvOyAjNjY5RQor5pqfID4ga8SDaTsgIzY2OUYKK+aaoCA+IGfEg287ICM2NkEwCivmmqEgPiB3xJVuZzsgIzY2QTEKK+aaoiA+IGNow6BuZzsgIzY2QTIKK+aaoyA+IHHDrDsgIzY2QTMKK+aapCA+IGjDoG87ICM2NkE0CivmmqUgPiB5w6BuOyAjNjZBNQor5pqmID4gbMOsOyAjNjZBNgor5pqnID4gw6BpOyAjNjZBNwor5pqoID4gasOsOyAjNjZBOAor5pqpID4gZ8O5aTsgIzY2QTkKK+aaqiA+IG3ElW47ICM2NkFBCivmmqsgPiB6w6BuOyAjNjZBQgor5pqsID4geGnDqDsgIzY2QUMKK+aarSA+IGjDoG87ICM2NkFECivmmq4gPiBtw7k7ICM2NkFFCivmmq8gPiBtw7I7ICM2NkFGCivmmrAgPiBjxY1uZzsgIzY2QjAKK+aasSA+IG7DrDsgIzY2QjEKK+aasiA+IHpoxIFuZzsgIzY2QjIKK+aasyA+IGjDuWk7ICM2NkIzCivmmrQgPiBiw6BvOyAjNjZCNAor5pq1ID4gaMOgbjsgIzY2QjUKK+aatiA+IHh1w6FuOyAjNjZCNgor5pq3ID4gY2h1w6FuOyAjNjZCNwor5pq4ID4gbGnDoW87ICM2NkI4CivmmrkgPiB4acSBbjsgIzY2QjkKK+aauiA+IGTDoG47ICM2NkJBCivmmrsgPiBqxK1uZzsgIzY2QkIKK+aavCA+IHBpxJM7ICM2NkJDCivmmr0gPiBsw61uOyAjNjZCRAor5pq+ID4gdMWrbjsgIzY2QkUKK+aavyA+IHjErTsgIzY2QkYKK+abgCA+IHnDrDsgIzY2QzAKK+abgSA+IGrDrDsgIzY2QzEKK+abgiA+IGh1w6BuZzsgIzY2QzIKK+abgyA+IHTDoGk7ICM2NkMzCivmm4QgPiB5w6g7ICM2NkM0Civmm4UgPiB5w6g7ICM2NkM1Civmm4YgPiBsw6w7ICM2NkM2Civmm4cgPiB0w6FuOyAjNjZDNwor5puIID4gdMOzbmc7ICM2NkM4Civmm4kgPiB4acSDbzsgIzY2QzkKK+abiiA+IGbDqGk7ICM2NkNBCivmm4sgPiBxxK1uOyAjNjZDQgor5puMID4gemjDoG87ICM2NkNDCivmm40gPiBow6BvOyAjNjZDRAor5puOID4gecOsOyAjNjZDRQor5puPID4geGnDoG5nOyAjNjZDRgor5puQID4geMSrbmc7ICM2NkQwCivmm5EgPiBzxJNuOyAjNjZEMQor5puSID4gamnEg287ICM2NkQyCivmm5MgPiBiw6BvOyAjNjZEMwor5puUID4gasOsbmc7ICM2NkQ0Civmm5UgPiB5acOgbjsgIzY2RDUKK+abliA+IMOgaTsgIzY2RDYKK+ablyA+IHnDqDsgIzY2RDcKK+abmCA+IHLDujsgIzY2RDgKK+abmSA+IHNow7k7ICM2NkQ5Civmm5ogPiBtw6luZzsgIzY2REEKK+abmyA+IHjFq247ICM2NkRCCivmm5wgPiB5w6BvOyAjNjZEQwor5pudID4gcMO5OyAjNjZERAor5pueID4gbMOsOyAjNjZERQor5pufID4gY2jDqW47ICM2NkRGCivmm6AgPiBrdcOgbmc7ICM2NkUwCivmm6EgPiBkacOpOyAjNjZFMQor5pujID4gecOgbjsgIzY2RTMKK+abpCA+IGjDuW87ICM2NkU0Civmm6UgPiBsw7o7ICM2NkU1Civmm6YgPiB4xKs7ICM2NkU2Civmm6cgPiByw7NuZzsgIzY2RTcKK+abqCA+IGzDs25nOyAjNjZFOAor5pupID4gbsSDbmc7ICM2NkU5Civmm6ogPiBsxa1vOyAjNjZFQQor5purID4gbHXDoW47ICM2NkVCCivmm6wgPiBzaMOgaTsgIzY2RUMKK+abrSA+IHTEg25nOyAjNjZFRAor5puuID4gecSDbjsgIzY2RUUKK+abryA+IGNow7o7ICM2NkVGCivmm7AgPiB5dcSTOyAjNjZGMAor5puxID4geXXEkzsgIzY2RjEKK+absiA+IHHFrTsgIzY2RjIKK+absyA+IHnDrDsgIzY2RjMKK+abtCA+IGfDqG5nOyAjNjZGNAor5pu1ID4gecOoOyAjNjZGNQor5pu2ID4gaMWrOyAjNjZGNgor5pu3ID4gaMOpOyAjNjZGNwor5pu4ID4gc2jFqzsgIzY2RjgKK+abuSA+IGPDoW87ICM2NkY5Civmm7ogPiBjw6FvOyAjNjZGQQor5pu8ID4gbcOgbjsgIzY2RkMKK+abvSA+IGPEk25nOyAjNjZGRAor5pu+ID4gY8Opbmc7ICM2NkZFCivmm78gPiB0w6w7ICM2NkZGCivmnIAgPiB6w7lpOyAjNjcwMAor5pyBID4gY8SDbjsgIzY3MDEKK+acgiA+IHjDuTsgIzY3MDIKK+acgyA+IGjDuWk7ICM2NzAzCivmnIQgPiB5w6xuOyAjNjcwNAor5pyFID4gcWnDqDsgIzY3MDUKK+achiA+IGbEk247ICM2NzA2CivmnIcgPiBww607ICM2NzA3CivmnIggPiB5dcOoOyAjNjcwOAor5pyJID4gecWPdTsgIzY3MDkKK+aciiA+IHJ1xINuOyAjNjcwQQor5pyLID4gcMOpbmc7ICM2NzBCCivmnIwgPiBixIFuOyAjNjcwQwor5pyNID4gZsO6OyAjNjcwRAor5pyOID4gbMOtbmc7ICM2NzBFCivmnI8gPiBmxJVpOyAjNjcwRgor5pyQID4gccO6OyAjNjcxMAor5pySID4gbsecOyAjNjcxMgor5pyTID4gdGnDoG87ICM2NzEzCivmnJQgPiBzaMO5bzsgIzY3MTQKK+aclSA+IHpow6huOyAjNjcxNQor5pyWID4gbMSDbmc7ICM2NzE2CivmnJcgPiBsxINuZzsgIzY3MTcKK+acmCA+IGp1xIFuOyAjNjcxOAor5pyZID4gbcOtbmc7ICM2NzE5CivmnJogPiBodcSBbmc7ICM2NzFBCivmnJsgPiB3w6BuZzsgIzY3MUIKK+acnCA+IHTFq247ICM2NzFDCivmnJ0gPiB6aMSBbzsgIzY3MUQKK+acniA+IGrEqzsgIzY3MUUKK+acnyA+IHHDrTsgIzY3MUYKK+acoCA+IHnEq25nOyAjNjcyMAor5pyhID4gesWNbmc7ICM2NzIxCivmnKIgPiB3w6BuZzsgIzY3MjIKK+acoyA+IHTDs25nOyAjNjcyMwor5pykID4gbMSDbmc7ICM2NzI0CivmnKYgPiBtw6luZzsgIzY3MjYKK+acpyA+IGzDs25nOyAjNjcyNwor5pyoID4gbcO5OyAjNjcyOAor5pypID4gZMSVbmc7ICM2NzI5CivmnKogPiB3w6hpOyAjNjcyQQor5pyrID4gbcOyOyAjNjcyQgor5pysID4gYsSVbjsgIzY3MkMKK+acrSA+IHpow6E7ICM2NzJECivmnK4gPiB6aMO6OyAjNjcyRQor5pyvID4gemjDujsgIzY3MkYKK+acsSA+IHpoxas7ICM2NzMxCivmnLIgPiByw6luOyAjNjczMgor5pyzID4gYsSBOyAjNjczMwor5py0ID4gcMOyOyAjNjczNAor5py1ID4gZMWtbzsgIzY3MzUKK+actiA+IGTFrW87ICM2NzM2CivmnLcgPiBkxIFvOyAjNjczNwor5py4ID4gbMOsOyAjNjczOAor5py5ID4gccOtdTsgIzY3MzkKK+acuiA+IGrEqzsgIzY3M0EKK+acuyA+IGrEq3U7ICM2NzNCCivmnLwgPiBixK07ICM2NzNDCivmnL0gPiB4xK11OyAjNjczRAor5py+ID4gdMOtbmc7ICM2NzNFCivmnL8gPiBjw6w7ICM2NzNGCivmnYAgPiBzaMSBOyAjNjc0MAor5p2CID4gesOhOyAjNjc0Mgor5p2DID4gcXXDoW47ICM2NzQzCivmnYQgPiBxacSBbjsgIzY3NDQKK+adhSA+IHnDujsgIzY3NDUKK+adhiA+IGfEgW47ICM2NzQ2CivmnYcgPiB3xas7ICM2NzQ3CivmnYggPiBjaMSBOyAjNjc0OAor5p2JID4gc2jEgW47ICM2NzQ5CivmnYogPiB4w7puOyAjNjc0QQor5p2LID4gZsSBbjsgIzY3NEIKK+adjCA+IHfDuTsgIzY3NEMKK+adjSA+IHrErTsgIzY3NEQKK+adjiA+IGzErTsgIzY3NEUKK+adjyA+IHjDrG5nOyAjNjc0Rgor5p2QID4gY8OhaTsgIzY3NTAKK+adkSA+IGPFq247ICM2NzUxCivmnZIgPiByw6huOyAjNjc1Mgor5p2TID4gc2jDoW87ICM2NzUzCivmnZQgPiB0xatvOyAjNjc1NAor5p2VID4gZMOsOyAjNjc1NQor5p2WID4gemjDoG5nOyAjNjc1Ngor5p2XID4gbcOhbmc7ICM2NzU3CivmnZggPiBjaMOsOyAjNjc1OAor5p2ZID4gecOsOyAjNjc1OQor5p2aID4gZ8WtOyAjNjc1QQor5p2bID4gZ8WNbmc7ICM2NzVCCivmnZwgPiBkw7k7ICM2NzVDCivmnZ0gPiB5w607ICM2NzVECivmnZ4gPiBxxK07ICM2NzVFCivmnZ8gPiBzaMO5OyAjNjc1Rgor5p2gID4gZ8SBbmc7ICM2NzYwCivmnaEgPiB0acOhbzsgIzY3NjEKK+adpSA+IGzDoWk7ICM2NzY1CivmnacgPiBtw6FuZzsgIzY3NjcKK+adqCA+IHnDoW5nOyAjNjc2OAor5p2pID4gbcOgOyAjNjc2OQor5p2qID4gbWnEg287ICM2NzZBCivmnasgPiBzw6w7ICM2NzZCCivmnawgPiB5dcOhbjsgIzY3NkMKK+adrSA+IGjDoW5nOyAjNjc2RAor5p2uID4gZsOoaTsgIzY3NkUKK+adryA+IGLEk2k7ICM2NzZGCivmnbAgPiBqacOpOyAjNjc3MAor5p2xID4gZMWNbmc7ICM2NzcxCivmnbIgPiBnxINvOyAjNjc3Mgor5p2zID4gecSDbzsgIzY3NzMKK+adtCA+IHhpxIFuOyAjNjc3NAor5p21ID4gY2jFrTsgIzY3NzUKK+adtiA+IHHFq247ICM2Nzc2CivmnbcgPiBww6E7ICM2Nzc3CivmnbggPiBzaMWrOyAjNjc3OAor5p25ID4gaHXDoDsgIzY3NzkKK+aduiA+IHjEq247ICM2NzdBCivmnbsgPiBjaMWPdTsgIzY3N0IKK+advCA+IHpow7k7ICM2NzdDCivmnb0gPiBjaMWPdTsgIzY3N0QKK+adviA+IHPFjW5nOyAjNjc3RQor5p2/ID4gYsSDbjsgIzY3N0YKK+aegCA+IHPFjW5nOyAjNjc4MAor5p6BID4gasOtOyAjNjc4MQor5p6CID4geXXDqDsgIzY3ODIKK+aegyA+IGrDrG47ICM2NzgzCivmnoQgPiBnxY11OyAjNjc4NAor5p6FID4gasSrOyAjNjc4NQor5p6GID4gbcOhbzsgIzY3ODYKK+aehyA+IHDDrTsgIzY3ODcKK+aeiCA+IGLDrDsgIzY3ODgKK+aeiSA+IHfEg25nOyAjNjc4OQor5p6KID4gw6BuZzsgIzY3OEEKK+aeiyA+IGbEgW5nOyAjNjc4Qgor5p6MID4gZsOpbjsgIzY3OEMKK+aejSA+IHnDrDsgIzY3OEQKK+aejiA+IGbDujsgIzY3OEUKK+aejyA+IG7DoW47ICM2NzhGCivmnpAgPiB4xKs7ICM2NzkwCivmnpEgPiBow7k7ICM2NzkxCivmnpIgPiB5w6E7ICM2NzkyCivmnpMgPiBkxY91OyAjNjc5Mwor5p6UID4geMO6bjsgIzY3OTQKK+aelSA+IHpoxJVuOyAjNjc5NQor5p6WID4gecSBbzsgIzY3OTYKK+aelyA+IGzDrW47ICM2Nzk3CivmnpggPiByw7lpOyAjNjc5OAor5p6ZID4gw6k7ICM2Nzk5CivmnpogPiBtw6lpOyAjNjc5QQor5p6bID4gemjDoG87ICM2NzlCCivmnpwgPiBnxa1vOyAjNjc5Qwor5p6dID4gemjEqzsgIzY3OUQKK+aeniA+IGPFjW5nOyAjNjc5RQor5p6fID4gecO5bjsgIzY3OUYKK+aeoSA+IGTFj3U7ICM2N0ExCivmnqIgPiBzaMWrOyAjNjdBMgor5p6jID4gesSDbzsgIzY3QTMKK+aepSA+IGzDrDsgIzY3QTUKK+aepyA+IGppw6BuOyAjNjdBNwor5p6oID4gY2jDqW5nOyAjNjdBOAor5p6qID4gcWnEgW5nOyAjNjdBQQor5p6rID4gZsSTbmc7ICM2N0FCCivmnqwgPiBuw6FuOyAjNjdBQwor5p6tID4geGnEgW87ICM2N0FECivmnq4gPiB4acSBbjsgIzY3QUUKK+aeryA+IGvFqzsgIzY3QUYKK+aesCA+IHDDrW5nOyAjNjdCMAor5p6xID4gecOtOyAjNjdCMQor5p6yID4geMStOyAjNjdCMgor5p6zID4gemjEqzsgIzY3QjMKK+aetCA+IGd1xINpOyAjNjdCNAor5p61ID4geGnEgW87ICM2N0I1CivmnrYgPiBqacOgOyAjNjdCNgor5p63ID4gamnEgTsgIzY3QjcKK+aeuCA+IGfFj3U7ICM2N0I4CivmnrkgPiBmxas7ICM2N0I5CivmnrogPiBtw7I7ICM2N0JBCivmnrsgPiB5w6w7ICM2N0JCCivmnrwgPiB5w6g7ICM2N0JDCivmnr0gPiB5w6g7ICM2N0JECivmnr4gPiBzaMOsOyAjNjdCRQor5p6/ID4gbmnDqDsgIzY3QkYKK+afgCA+IGLErTsgIzY3QzAKK+afgSA+IGTDuW87ICM2N0MxCivmn4IgPiB5w607ICM2N0MyCivmn4MgPiBsw61uZzsgIzY3QzMKK+afhCA+IGLErW5nOyAjNjdDNAor5p+FID4gbsStOyAjNjdDNQor5p+GID4gbMSBOyAjNjdDNgor5p+HID4gaMOpOyAjNjdDNwor5p+IID4gcMOhbjsgIzY3QzgKK+afiSA+IGbDoW47ICM2N0M5Civmn4ogPiB6aMWNbmc7ICM2N0NBCivmn4sgPiBkw6BpOyAjNjdDQgor5p+MID4gY8OtOyAjNjdDQwor5p+NID4gecSBbmc7ICM2N0NECivmn44gPiBmxas7ICM2N0NFCivmn48gPiBiw7M7ICM2N0NGCivmn5AgPiBtxY91OyAjNjdEMAor5p+RID4gZ8SBbjsgIzY3RDEKK+afkiA+IHHEqzsgIzY3RDIKK+afkyA+IHLEg247ICM2N0QzCivmn5QgPiByw7N1OyAjNjdENAor5p+VID4gbcOgbzsgIzY3RDUKK+afliA+IHpoxIFvOyAjNjdENgor5p+XID4gc8WNbmc7ICM2N0Q3Civmn5ggPiB6aMOoOyAjNjdEOAor5p+ZID4geGnDoTsgIzY3RDkKK+afmiA+IHnDsnU7ICM2N0RBCivmn5sgPiBzaMSTbjsgIzY3REIKK+afnCA+IGrFrTsgIzY3REMKK+afnSA+IHTDuW87ICM2N0RECivmn54gPiB6w7lvOyAjNjdERQor5p+fID4gbsOhbjsgIzY3REYKK+afoCA+IG7DrW5nOyAjNjdFMAor5p+hID4gecWPbmc7ICM2N0UxCivmn6IgPiBkxK07ICM2N0UyCivmn6MgPiB6aMOtOyAjNjdFMwor5p+kID4gemjEgTsgIzY3RTQKK+afpSA+IGNow6E7ICM2N0U1Civmn6YgPiBkw6BuOyAjNjdFNgor5p+nID4gZ8WrOyAjNjdFNwor5p+oID4gcHU7ICM2N0U4Civmn6kgPiBqw6x1OyAjNjdFOQor5p+qID4gxIFvOyAjNjdFQQor5p+rID4gZsO6OyAjNjdFQgor5p+sID4gamnEg247ICM2N0VDCivmn60gPiBixY07ICM2N0VECivmn64gPiBkw7lvOyAjNjdFRQor5p+vID4ga8STOyAjNjdFRgor5p+wID4gbsOgaTsgIzY3RjAKK+afsSA+IHpow7k7ICM2N0YxCivmn7IgPiBiw6w7ICM2N0YyCivmn7MgPiBsxK11OyAjNjdGMwor5p+0ID4gY2jDoWk7ICM2N0Y0Civmn7UgPiB6aMOgOyAjNjdGNQor5p+2ID4gc8OsOyAjNjdGNgor5p+3ID4gemjDuTsgIzY3RjcKK+afuCA+IHDEk2k7ICM2N0Y4Civmn7kgPiBzaMOsOyAjNjdGOQor5p+6ID4gZ3XEg2k7ICM2N0ZBCivmn7sgPiBjaMOhOyAjNjdGQgor5p+8ID4gecSDbzsgIzY3RkMKK+afvSA+IGp1w6k7ICM2N0ZECivmn74gPiBqw6x1OyAjNjdGRQor5p+/ID4gc2jDrDsgIzY3RkYKK+aggCA+IHpoxKs7ICM2ODAwCivmoIEgPiBsxK11OyAjNjgwMQor5qCCID4gbcOpaTsgIzY4MDIKK+aghCA+IHLDs25nOyAjNjgwNAor5qCFID4gemjDoDsgIzY4MDUKK+aghyA+IGJpxIFvOyAjNjgwNwor5qCIID4gemjDoG47ICM2ODA4CivmoIkgPiBqacOpOyAjNjgwOQor5qCKID4gbMOzbmc7ICM2ODBBCivmoIsgPiBkw7JuZzsgIzY4MEIKK+agjCA+IGzDujsgIzY4MEMKK+agjiA+IGzDrDsgIzY4MEUKK+agjyA+IGzDoW47ICM2ODBGCivmoJAgPiB5xY9uZzsgIzY4MTAKK+agkSA+IHNow7k7ICM2ODExCivmoJIgPiB4w7puOyAjNjgxMgor5qCTID4gc2h1xIFuOyAjNjgxMwor5qCUID4gccOsOyAjNjgxNAor5qCVID4gemjEk247ICM2ODE1CivmoJYgPiBxxKs7ICM2ODE2CivmoJcgPiBsw6w7ICM2ODE3CivmoJggPiB5xK07ICM2ODE4CivmoJkgPiB4acOhbmc7ICM2ODE5CivmoJogPiB6aMOobjsgIzY4MUEKK+agmyA+IGzDrDsgIzY4MUIKK+agnCA+IHPDuTsgIzY4MUMKK+agnSA+IGd1xIE7ICM2ODFECivmoJ4gPiBrxIFuOyAjNjgxRQor5qCfID4gYsSrbmc7ICM2ODFGCivmoKAgPiByxJVuOyAjNjgyMAor5qChID4geGnDoG87ICM2ODIxCivmoKIgPiBiw7M7ICM2ODIyCivmoKMgPiByxJVuOyAjNjgyMwor5qCkID4gYsOsbmc7ICM2ODI0CivmoKUgPiB6xKs7ICM2ODI1CivmoKYgPiBjaMOzdTsgIzY4MjYKK+agpyA+IHnDrDsgIzY4MjcKK+agqCA+IGppw6k7ICM2ODI4CivmoKkgPiB4xa07ICM2ODI5CivmoKogPiB6aMWrOyAjNjgyQQor5qCrID4gamnDoG47ICM2ODJCCivmoKwgPiB6w7lpOyAjNjgyQwor5qCtID4gw6lyOyAjNjgyRAor5qCuID4gxJVyOyAjNjgyRQor5qCvID4gecWPdTsgIzY4MkYKK+agsCA+IGbDoTsgIzY4MzAKK+agsSA+IGfFj25nOyAjNjgzMQor5qCyID4ga8SDbzsgIzY4MzIKK+agsyA+IGzEg287ICM2ODMzCivmoLQgPiB6aMSBbjsgIzY4MzQKK+agtSA+IGzDrDsgIzY4MzUKK+agtiA+IHlpbjsgIzY4MzYKK+agtyA+IHnDoW5nOyAjNjgzNwor5qC4ID4gaMOpOyAjNjgzOAor5qC5ID4gZ8STbjsgIzY4MzkKK+aguiA+IHpoxK07ICM2ODNBCivmoLsgPiBjaMOsOyAjNjgzQgor5qC8ID4gZ8OpOyAjNjgzQwor5qC9ID4gesSBaTsgIzY4M0QKK+agviA+IGx1w6FuOyAjNjgzRQor5qC/ID4gZsO6OyAjNjgzRgor5qGAID4gamnDqTsgIzY4NDAKK+ahgSA+IGjDoW5nOyAjNjg0MQor5qGCID4gZ8O5aTsgIzY4NDIKK+ahgyA+IHTDoW87ICM2ODQzCivmoYQgPiBndcOgbmc7ICM2ODQ0CivmoYUgPiB3w6lpOyAjNjg0NQor5qGGID4ga3XDoG5nOyAjNjg0Ngor5qGHID4gcsO6OyAjNjg0Nwor5qGIID4gw6BuOyAjNjg0OAor5qGJID4gw6BuOyAjNjg0OQor5qGKID4ganXDoG47ICM2ODRBCivmoYsgPiB5w607ICM2ODRCCivmoYwgPiB6aMWrbzsgIzY4NEMKK+ahjSA+IGvFqzsgIzY4NEQKK+ahjiA+IHpow607ICM2ODRFCivmoY8gPiBxw61vbmc7ICM2ODRGCivmoZAgPiB0w7NuZzsgIzY4NTAKK+ahkSA+IHPEgW5nOyAjNjg1MQor5qGSID4gc8SBbmc7ICM2ODUyCivmoZMgPiBodcOhbjsgIzY4NTMKK+ahlCA+IGppw6k7ICM2ODU0CivmoZUgPiBqw6x1OyAjNjg1NQor5qGWID4geHXDqDsgIzY4NTYKK+ahlyA+IGTDuW87ICM2ODU3CivmoZggPiB6aMO5aTsgIzY4NTgKK+ahmSA+IHnDujsgIzY4NTkKK+ahmiA+IHrEg247ICM2ODVBCivmoZwgPiB5xKtuZzsgIzY4NUMKK+ahnyA+IHpow6BuOyAjNjg1Rgor5qGgID4gecOhOyAjNjg2MAor5qGhID4gbsOhbzsgIzY4NjEKK+ahoiA+IHpoxJNuOyAjNjg2Mgor5qGjID4gZMSDbmc7ICM2ODYzCivmoaQgPiBxxKs7ICM2ODY0CivmoaUgPiBxacOhbzsgIzY4NjUKK+ahpiA+IGh1w6A7ICM2ODY2CivmoacgPiBrdcOgaTsgIzY4NjcKK+ahqCA+IGppxINuZzsgIzY4NjgKK+ahqSA+IHpodcSBbmc7ICM2ODY5CivmoaogPiB4w7puOyAjNjg2QQor5qGrID4gc8WrbzsgIzY4NkIKK+ahrCA+IHNoxIE7ICM2ODZDCivmoa0gPiB6aMSTbjsgIzY4NkQKK+ahriA+IGLEk2k7ICM2ODZFCivmoa8gPiB0xKtuZzsgIzY4NkYKK+ahsCA+IGd1xIE7ICM2ODcwCivmobEgPiBqw6xuZzsgIzY4NzEKK+ahsiA+IGLDszsgIzY4NzIKK+ahsyA+IGLDqG47ICM2ODczCivmobQgPiBmw7o7ICM2ODc0CivmobUgPiByxa1pOyAjNjg3NQor5qG2ID4gdMWPbmc7ICM2ODc2CivmobcgPiBqdcOpOyAjNjg3Nwor5qG4ID4geMSrOyAjNjg3OAor5qG5ID4gbMOhbmc7ICM2ODc5CivmobogPiBsxK11OyAjNjg3QQor5qG7ID4gZsSTbmc7ICM2ODdCCivmobwgPiBxxKs7ICM2ODdDCivmob0gPiB3xJVuOyAjNjg3RAor5qG+ID4gasWrbjsgIzY4N0UKK+ahvyA+IGfEg247ICM2ODdGCivmooAgPiBjw7k7ICM2ODgwCivmooEgPiBsacOhbmc7ICM2ODgxCivmooIgPiBxw611OyAjNjg4Mgor5qKDID4gdMStbmc7ICM2ODgzCivmooQgPiB5xY91OyAjNjg4NAor5qKFID4gbcOpaTsgIzY4ODUKK+aihiA+IGLEgW5nOyAjNjg4Ngor5qKHID4gbMOybmc7ICM2ODg3CivmooggPiBwxJNuZzsgIzY4ODgKK+aiiSA+IHpodcSBbmc7ICM2ODg5CivmooogPiBkw6w7ICM2ODhBCivmoosgPiB4dcSBbjsgIzY4OEIKK+aijCA+IHTDujsgIzY4OEMKK+aijSA+IHrDoG87ICM2ODhECivmoo4gPiDEgW87ICM2ODhFCivmoo8gPiBnw7k7ICM2ODhGCivmopAgPiBiw6w7ICM2ODkwCivmopEgPiBkw607ICM2ODkxCivmopIgPiBow6FuOyAjNjg5Mgor5qKTID4gesStOyAjNjg5Mwor5qKUID4gemjEqzsgIzY4OTQKK+ailSA+IHLDqG47ICM2ODk1CivmopYgPiBiw6hpOyAjNjg5Ngor5qKXID4gZ8SVbmc7ICM2ODk3CivmopggPiBqacOgbjsgIzY4OTgKK+aimSA+IGh1w6BuOyAjNjg5OQor5qKaID4gd8SDbjsgIzY4OUEKK+aimyA+IG7Dum87ICM2ODlCCivmopwgPiBqacOhOyAjNjg5Qwor5qKdID4gdGnDoW87ICM2ODlECivmop4gPiBqw6w7ICM2ODlFCivmop8gPiB4acSBbzsgIzY4OUYKK+aioCA+IGzHmjsgIzY4QTAKK+aioSA+IGh1w6FuOyAjNjhBMQor5qKiID4gc2jEgW87ICM2OEEyCivmoqMgPiBjw6luOyAjNjhBMwor5qKkID4gZsOpbjsgIzY4QTQKK+aipSA+IHPFjW5nOyAjNjhBNQor5qKmID4gbcOobmc7ICM2OEE2CivmoqcgPiB3w7o7ICM2OEE3CivmoqggPiBsw607ICM2OEE4CivmoqkgPiBsw607ICM2OEE5CivmoqogPiBkw7J1OyAjNjhBQQor5qKrID4gY8STbjsgIzY4QUIKK+airCA+IHnErW5nOyAjNjhBQwor5qKtID4gc8WrbzsgIzY4QUQKK+airiA+IGrDujsgIzY4QUUKK+airyA+IHTEqzsgIzY4QUYKK+aisCA+IGppw6g7ICM2OEIwCivmorEgPiBrxa1uOyAjNjhCMQor5qKyID4gemjDum87ICM2OEIyCivmorMgPiBzaMWrOyAjNjhCMwor5qK0ID4gY2jEgW47ICM2OEI0CivmorUgPiBmw6BuOyAjNjhCNQor5qK2ID4gd8SVaTsgIzY4QjYKK+aityA+IGrDrG5nOyAjNjhCNwor5qK4ID4gbMOtOyAjNjhCOAor5qK5ID4gYsSrbmc7ICM2OEI5CivmorwgPiB0w6FvOyAjNjhCQwor5qK9ID4gemjDrDsgIzY4QkQKK+aiviA+IGzDoWk7ICM2OEJFCivmor8gPiBsacOhbjsgIzY4QkYKK+ajgCA+IGppxINuOyAjNjhDMAor5qOBID4gemjDum87ICM2OEMxCivmo4IgPiBsw61uZzsgIzY4QzIKK+ajgyA+IGzDrTsgIzY4QzMKK+ajhCA+IHHDrDsgIzY4QzQKK+ajhSA+IGLDrG5nOyAjNjhDNQor5qOGID4gemjFq247ICM2OEM2Civmo4cgPiBjxY1uZzsgIzY4QzcKK+ajiCA+IHFpw6BuOyAjNjhDOAor5qOJID4gbWnDoW47ICM2OEM5Civmo4ogPiBxw607ICM2OENBCivmo4sgPiBxw607ICM2OENCCivmo4wgPiBjxINpOyAjNjhDQwor5qONID4gZ8O5bjsgIzY4Q0QKK+ajjiA+IGNow6FuOyAjNjhDRQor5qOPID4gdMOoOyAjNjhDRgor5qOQID4gZsSVaTsgIzY4RDAKK+ajkSA+IHDDoWk7ICM2OEQxCivmo5IgPiBiw6BuZzsgIzY4RDIKK+ajkyA+IHDFj3U7ICM2OEQzCivmo5QgPiBoxatuOyAjNjhENAor5qOVID4gesWNbmc7ICM2OEQ1Civmo5YgPiBjaMOpbmc7ICM2OEQ2Civmo5cgPiB6xINvOyAjNjhENwor5qOYID4gasOtOyAjNjhEOAor5qOZID4gbMOsOyAjNjhEOQor5qOaID4gcMOpbmc7ICM2OERBCivmo5sgPiB5w7k7ICM2OERCCivmo5wgPiB5w7k7ICM2OERDCivmo50gPiBnw7k7ICM2OERECivmo54gPiBow7puOyAjNjhERQor5qOfID4gZMOybmc7ICM2OERGCivmo6AgPiB0w6FuZzsgIzY4RTAKK+ajoSA+IGfEgW5nOyAjNjhFMQor5qOiID4gd8SDbmc7ICM2OEUyCivmo6MgPiBkw6w7ICM2OEUzCivmo6QgPiB4w607ICM2OEU0Civmo6UgPiBmw6FuOyAjNjhFNQor5qOmID4gY2jEk25nOyAjNjhFNgor5qOnID4gemjDoG47ICM2OEU3Civmo6ggPiBxxK07ICM2OEU4Civmo6kgPiB5dcSBbjsgIzY4RTkKK+ajqiA+IHnEg247ICM2OEVBCivmo6sgPiB5w7k7ICM2OEVCCivmo6wgPiBxdcSBbjsgIzY4RUMKK+ajrSA+IHnDrDsgIzY4RUQKK+ajriA+IHPEk247ICM2OEVFCivmo68gPiByxJVuOyAjNjhFRgor5qOwID4gY2jDumk7ICM2OEYwCivmo7EgPiBsw6luZzsgIzY4RjEKK+ajsiA+IHHEqzsgIzY4RjIKK+ajsyA+IHpow7pvOyAjNjhGMwor5qO0ID4gZsO6OyAjNjhGNAor5qO1ID4ga8STOyAjNjhGNQor5qO2ID4gbMOhaTsgIzY4RjYKK+ajtyA+IHrFjXU7ICM2OEY3Civmo7ggPiB6xY11OyAjNjhGOAor5qO5ID4gemjFq287ICM2OEY5Civmo7ogPiBndcSBbjsgIzY4RkEKK+ajuyA+IGbDqW47ICM2OEZCCivmo7wgPiBmw6luOyAjNjhGQwor5qO9ID4gY2jEk247ICM2OEZECivmo74gPiBxw61vbmc7ICM2OEZFCivmo78gPiBuacOoOyAjNjhGRgor5qSAID4gd8SDbjsgIzY5MDAKK+akgSA+IGfFrW87ICM2OTAxCivmpIIgPiBsw7k7ICM2OTAyCivmpIMgPiBow6FvOyAjNjkwMwor5qSEID4gamnEkzsgIzY5MDQKK+akhSA+IHnErTsgIzY5MDUKK+akhiA+IGNow7N1OyAjNjkwNgor5qSHID4gasWtOyAjNjkwNwor5qSIID4gasO6OyAjNjkwOAor5qSJID4gY2jDqW5nOyAjNjkwOQor5qSKID4gesO6bzsgIzY5MEEKK+akiyA+IGxpw6FuZzsgIzY5MEIKK+akjCA+IHFpxIFuZzsgIzY5MEMKK+akjSA+IHpow607ICM2OTBECivmpI4gPiB6aMWraTsgIzY5MEUKK+akjyA+IHnEgTsgIzY5MEYKK+akkCA+IGrFqzsgIzY5MTAKK+akkSA+IGLEk2k7ICM2OTExCivmpJIgPiBqacSBbzsgIzY5MTIKK+akkyA+IHpow7pvOyAjNjkxMwor5qSUID4gesSrOyAjNjkxNAor5qSVID4gYsSrbjsgIzY5MTUKK+akliA+IHDDqW5nOyAjNjkxNgor5qSXID4gZMOsbmc7ICM2OTE3CivmpJggPiBjaMWtOyAjNjkxOAor5qScID4gamnEg247ICM2OTFDCivmpJ0gPiBnxatpOyAjNjkxRAor5qSeID4geMOsOyAjNjkxRQor5qSfID4gZMO6OyAjNjkxRgor5qSgID4gcWnDoG47ICM2OTIwCivmpKQgPiBsw7pvOyAjNjkyNAor5qSlID4gemjEqzsgIzY5MjUKK+akqiA+IHDDqG5nOyAjNjkyQQor5qSrID4gemjEg247ICM2OTJCCivmpK0gPiB0xa1vOyAjNjkyRAor5qSuID4gc8STbjsgIzY5MkUKK+akryA+IGTDum87ICM2OTJGCivmpLAgPiB5w6k7ICM2OTMwCivmpLEgPiBmw7J1OyAjNjkzMQor5qSyID4gd8SVaTsgIzY5MzIKK+aksyA+IHfEk2k7ICM2OTMzCivmpLQgPiBkdcOgbjsgIzY5MzQKK+aktSA+IGppxIM7ICM2OTM1CivmpLYgPiB6xY1uZzsgIzY5MzYKK+aktyA+IGppxIFuOyAjNjkzNwor5qS4ID4gecOtOyAjNjkzOAor5qS5ID4gc2jDqG47ICM2OTM5CivmpLogPiB4w607ICM2OTNBCivmpLsgPiB5w6BuOyAjNjkzQgor5qS8ID4gecSDbjsgIzY5M0MKK+akvSA+IGNodcOhbjsgIzY5M0QKK+akviA+IHpow6BuOyAjNjkzRQor5qS/ID4gY2jFq247ICM2OTNGCivmpYAgPiB5xa07ICM2OTQwCivmpYEgPiBow6k7ICM2OTQxCivmpYIgPiB6aMSBOyAjNjk0Mgor5qWDID4gd8OyOyAjNjk0Mwor5qWEID4gcGnDoW47ICM2OTQ0CivmpYUgPiBiw6w7ICM2OTQ1CivmpYYgPiB5xIFvOyAjNjk0Ngor5qWHID4gaMO5bzsgIzY5NDcKK+aliCA+IHjFqzsgIzY5NDgKK+aliSA+IHLDuW87ICM2OTQ5CivmpYogPiB5w6FuZzsgIzY5NEEKK+aliyA+IGzDoDsgIzY5NEIKK+aljCA+IHnDoW47ICM2OTRDCivmpY0gPiBixJVuOyAjNjk0RAor5qWOID4gaMO6bjsgIzY5NEUKK+aljyA+IGvDumk7ICM2OTRGCivmpZAgPiBqacOoOyAjNjk1MAor5qWRID4ga8O6aTsgIzY5NTEKK+alkiA+IHPEqzsgIzY5NTIKK+alkyA+IGbEk25nOyAjNjk1Mwor5qWUID4geGnDqDsgIzY5NTQKK+allSA+IHTFrW87ICM2OTU1CivmpZYgPiB6aMOsOyAjNjk1Ngor5qWXID4gamnDoG47ICM2OTU3CivmpZggPiBtw7k7ICM2OTU4CivmpZkgPiBtw6BvOyAjNjk1OQor5qWaID4gY2jFrTsgIzY5NUEKK+almyA+IGjDuTsgIzY5NUIKK+alnCA+IGjDujsgIzY5NUMKK+alnSA+IGxpw6BuOyAjNjk1RAor5qWeID4gbMOpbmc7ICM2OTVFCivmpZ8gPiB0w61uZzsgIzY5NUYKK+aloCA+IG7DoW47ICM2OTYwCivmpaEgPiB5w7o7ICM2OTYxCivmpaIgPiB5w7N1OyAjNjk2Mgor5qWjID4gbcOpaTsgIzY5NjMKK+alpCA+IHPFj25nOyAjNjk2NAor5qWlID4geHXDoG47ICM2OTY1CivmpaYgPiB4dcOgbjsgIzY5NjYKK+alpyA+IHnEq25nOyAjNjk2Nwor5qWoID4gemjEk247ICM2OTY4CivmpakgPiBwacOhbjsgIzY5NjkKK+alqiA+IHnDqDsgIzY5NkEKK+alqyA+IGrDrTsgIzY5NkIKK+alrCA+IGppw6k7ICM2OTZDCivmpa0gPiB5w6g7ICM2OTZECivmpa4gPiBjaMWtOyAjNjk2RQor5qWvID4gc2jFrW47ICM2OTZGCivmpbAgPiB5w7o7ICM2OTcwCivmpbEgPiBjw7J1OyAjNjk3MQor5qWyID4gd8STaTsgIzY5NzIKK+alsyA+IG3DqWk7ICM2OTczCivmpbQgPiBkw6w7ICM2OTc0CivmpbUgPiBqw607ICM2OTc1CivmpbYgPiBqacOpOyAjNjk3Ngor5qW3ID4ga8SDaTsgIzY5NzcKK+aluCA+IHHEq3U7ICM2OTc4CivmpbkgPiB5w61uZzsgIzY5NzkKK+aluiA+IHLDs3U7ICM2OTdBCivmpbsgPiBow6luZzsgIzY5N0IKK+alvCA+IGzDs3U7ICM2OTdDCivmpb0gPiBsw6g7ICM2OTdECivmpoAgPiBwxK1uOyAjNjk4MAor5qaCID4gZ8OgaTsgIzY5ODIKK+amgyA+IHTDoW47ICM2OTgzCivmpoQgPiBsxINuOyAjNjk4NAor5qaFID4gecO6bjsgIzY5ODUKK+amhiA+IHnDujsgIzY5ODYKK+amhyA+IGNow6huOyAjNjk4Nwor5qaIID4gbMeYOyAjNjk4OAor5qaJID4gasWtOyAjNjk4OQor5qaNID4geGnDqDsgIzY5OEQKK+amjiA+IGppxIM7ICM2OThFCivmpo8gPiB5w6w7ICM2OThGCivmppAgPiB6aMSDbjsgIzY5OTAKK+amkSA+IGbDuTsgIzY5OTEKK+amkiA+IG7DoGk7ICM2OTkyCivmppMgPiBtw6w7ICM2OTkzCivmppQgPiBsw6FuZzsgIzY5OTQKK+amlSA+IHLDs25nOyAjNjk5NQor5qaWID4gZ8WtOyAjNjk5Ngor5qaXID4gamnDoG47ICM2OTk3CivmppggPiBqxa07ICM2OTk4CivmppkgPiB0xIM7ICM2OTk5CivmppogPiB5xINvOyAjNjk5QQor5qabID4gemjEk247ICM2OTlCCivmppwgPiBixINuZzsgIzY5OUMKK+amnSA+IHNoxIE7ICM2OTlECivmpp4gPiB5dcOhbjsgIzY5OUUKK+amnyA+IHrErTsgIzY5OUYKK+amoCA+IG3Eq25nOyAjNjlBMAor5qahID4gc8O5OyAjNjlBMQor5qaiID4gamnDoDsgIzY5QTIKK+amoyA+IHnDoW87ICM2OUEzCivmpqQgPiBqacOpOyAjNjlBNAor5qalID4gaHXEg25nOyAjNjlBNQor5qamID4gZ8OgbjsgIzY5QTYKK+ampyA+IGbElWk7ICM2OUE3CivmpqggPiB6aMOgOyAjNjlBOAor5qapID4gcWnDoW47ICM2OUE5CivmpqogPiBtw6A7ICM2OUFBCivmpqsgPiBzxa1uOyAjNjlBQgor5qasID4geXXDoW47ICM2OUFDCivmpq0gPiB4acOoOyAjNjlBRAor5qauID4gcsOzbmc7ICM2OUFFCivmpq8gPiBzaMOtOyAjNjlBRgor5qawID4gemjEqzsgIzY5QjAKK+amsSA+IGPFq2k7ICM2OUIxCivmprIgPiB5w7puOyAjNjlCMgor5qazID4gdMOtbmc7ICM2OUIzCivmprQgPiBsw611OyAjNjlCNAor5qa1ID4gcsOzbmc7ICM2OUI1CivmprYgPiB0w6FuZzsgIzY5QjYKK+amtyA+IHF1w6g7ICM2OUI3CivmprggPiB6aMSBaTsgIzY5QjgKK+amuSA+IHPEqzsgIzY5QjkKK+amuiA+IHNow6huZzsgIzY5QkEKK+amuyA+IHTDoDsgIzY5QkIKK+amvCA+IGvDqDsgIzY5QkMKK+amvSA+IHjEqzsgIzY5QkQKK+amviA+IGfDuTsgIzY5QkUKK+amvyA+IHHEqzsgIzY5QkYKK+angCA+IGvEg287ICM2OUMwCivmp4EgPiBnxINvOyAjNjlDMQor5qeCID4gc8WrbjsgIzY5QzIKK+angyA+IHDDoW47ICM2OUMzCivmp4QgPiB0xIFvOyAjNjlDNAor5qeFID4gZ8OpOyAjNjlDNQor5qeGID4geMO6bjsgIzY5QzYKK+anhyA+IGRpxIFuOyAjNjlDNwor5qeIID4gbsOydTsgIzY5QzgKK+aniSA+IGrDrTsgIzY5QzkKK+aniiA+IHNow7lvOyAjNjlDQQor5qeLID4gZ8OydTsgIzY5Q0IKK+anjCA+IGNow7ppOyAjNjlDQwor5qeNID4gcWnEgW5nOyAjNjlDRAor5qeOID4gY2jEgTsgIzY5Q0UKK+anjyA+IHFpxINuOyAjNjlDRgor5qeQID4gaHXDoWk7ICM2OUQwCivmp5EgPiBtw6lpOyAjNjlEMQor5qeSID4geMO5OyAjNjlEMgor5qeTID4gZ8Ogbmc7ICM2OUQzCivmp5QgPiBnxIFvOyAjNjlENAor5qeVID4gemjDum87ICM2OUQ1Civmp5YgPiB0w7lvOyAjNjlENgor5qeYID4gecOgbmc7ICM2OUQ4Civmp5kgPiBkacSBbjsgIzY5RDkKK+anmiA+IGppxIM7ICM2OURBCivmp5sgPiBqacOgbjsgIzY5REIKK+annCA+IHrDuWk7ICM2OURDCivmp58gPiBixKtuOyAjNjlERgor5qegID4gemjFqzsgIzY5RTAKK+anoiA+IHjDrTsgIzY5RTIKK+anoyA+IHHErTsgIzY5RTMKK+anpCA+IGxpw6FuOyAjNjlFNAor5qelID4gaMO5aTsgIzY5RTUKK+anpiA+IHnDs25nOyAjNjlFNgor5qenID4gcWnDoG47ICM2OUU3Civmp6ggPiBnxa1vOyAjNjlFOAor5qepID4gZ8OgaTsgIzY5RTkKK+anqiA+IGfDoGk7ICM2OUVBCivmp6sgPiB0dcOhbjsgIzY5RUIKK+anrCA+IGh1w6A7ICM2OUVDCivmp60gPiBjw7k7ICM2OUVECivmp64gPiBzxJNuOyAjNjlFRQor5qevID4gY8WraTsgIzY5RUYKK+ansCA+IGLDqG5nOyAjNjlGMAor5qexID4gecWPdTsgIzY5RjEKK+ansiA+IGjDujsgIzY5RjIKK+ansyA+IGppxINuZzsgIzY5RjMKK+antCA+IGjDuTsgIzY5RjQKK+antSA+IGh1w6BuOyAjNjlGNQor5qe2ID4ga8O5aTsgIzY5RjYKK+antyA+IHnDrDsgIzY5RjcKK+anuCA+IG5pw6g7ICM2OUY4Civmp7kgPiBnxIFvOyAjNjlGOQor5qe6ID4ga8SBbmc7ICM2OUZBCivmp7sgPiBnxatpOyAjNjlGQgor5qe8ID4gZ8WraTsgIzY5RkMKK+anvSA+IGPDoW87ICM2OUZECivmp74gPiBtw6FuOyAjNjlGRQor5qe/ID4gasStbjsgIzY5RkYKK+aogCA+IGTDrDsgIzZBMDAKK+aogSA+IHpodcSBbmc7ICM2QTAxCivmqIIgPiBsw6g7ICM2QTAyCivmqIMgPiBsw6FuZzsgIzZBMDMKK+aohCA+IGNow6luOyAjNkEwNAor5qiFID4gY8WNbmc7ICM2QTA1CivmqIYgPiBsw607ICM2QTA2CivmqIcgPiB4xKt1OyAjNkEwNwor5qiIID4gccOtbmc7ICM2QTA4CivmqIkgPiBzaHXEg25nOyAjNkEwOQor5qiKID4gZsOhbjsgIzZBMEEKK+aoiyA+IHTFjW5nOyAjNkEwQgor5qiMID4gZ3XDoG47ICM2QTBDCivmqI0gPiBqxKs7ICM2QTBECivmqI4gPiBzxatvOyAjNkEwRQor5qiPID4gbMSVaTsgIzZBMEYKK+aokCA+IGzFrTsgIzZBMTAKK+aokSA+IGxpw6FuZzsgIzZBMTEKK+aokiA+IG3DrDsgIzZBMTIKK+aokyA+IGzDs3U7ICM2QTEzCivmqJQgPiBjaMOhbzsgIzZBMTQKK+aolSA+IHPDuTsgIzZBMTUKK+aoliA+IGvEkzsgIzZBMTYKK+aolyA+IHNoxas7ICM2QTE3CivmqJggPiB0w6FuZzsgIzZBMTgKK+aomSA+IGJpxIFvOyAjNkExOQor5qiaID4gbMO5OyAjNkExQQor5qibID4gasSrdTsgIzZBMUIKK+aonCA+IHNow7k7ICM2QTFDCivmqJ0gPiB6aMSBOyAjNkExRAor5qieID4gc2jFqzsgIzZBMUUKK+aonyA+IHpoxIFuZzsgIzZBMUYKK+aooCA+IG3DqW47ICM2QTIwCivmqKEgPiBtw7M7ICM2QTIxCivmqKIgPiBuacSDbzsgIzZBMjIKK+aooyA+IHnDoG5nOyAjNkEyMwor5qikID4gdGnDoW87ICM2QTI0CivmqKUgPiBww6luZzsgIzZBMjUKK+aopiA+IHpow7k7ICM2QTI2CivmqKcgPiBzaMSBOyAjNkEyNwor5qioID4geMSrOyAjNkEyOAor5qipID4gcXXDoW47ICM2QTI5CivmqKogPiBow6luZzsgIzZBMkEKK+aoqyA+IGppxIFuOyAjNkEyQgor5qisID4gY8WNbmc7ICM2QTJDCivmqK8gPiBxacOhbmc7ICM2QTJGCivmqLEgPiB5xKtuZzsgIzZBMzEKK+aosiA+IMOocjsgIzZBMzIKK+aosyA+IHjDrW47ICM2QTMzCivmqLQgPiB6aMOtOyAjNkEzNAor5qi1ID4gcWnDoW87ICM2QTM1CivmqLYgPiB6xatpOyAjNkEzNgor5qi3ID4gY8WNbmc7ICM2QTM3CivmqLggPiBww7o7ICM2QTM4CivmqLkgPiBzaMO5OyAjNkEzOQor5qi6ID4gaHXDoDsgIzZBM0EKK+aouyA+IGvDuWk7ICM2QTNCCivmqLwgPiB6aMSTbjsgIzZBM0MKK+aovSA+IHrFq247ICM2QTNECivmqL4gPiB5dcOoOyAjNkEzRQor5qi/ID4gemjEg247ICM2QTNGCivmqYAgPiB4xKs7ICM2QTQwCivmqYEgPiB4w7puOyAjNkE0MQor5qmCID4gZGnDoG47ICM2QTQyCivmqYMgPiBmxIE7ICM2QTQzCivmqYQgPiBnxINuOyAjNkE0NAor5qmFID4gbcOzOyAjNkE0NQor5qmGID4gd8WtOyAjNkE0Ngor5qmHID4gcWnEgW87ICM2QTQ3CivmqYggPiBuw6FvOyAjNkE0OAor5qmJID4gbMOsbjsgIzZBNDkKK+apiiA+IGzDrXU7ICM2QTRBCivmqYsgPiBxacOhbzsgIzZBNEIKK+apjCA+IHhpw6BuOyAjNkE0Qwor5qmNID4gcsO5bjsgIzZBNEQKK+apjiA+IGbDoW47ICM2QTRFCivmqY8gPiB6aMSDbjsgIzZBNEYKK+apkCA+IHTDuW87ICM2QTUwCivmqZEgPiBsxINvOyAjNkE1MQor5qmSID4gecO6bjsgIzZBNTIKK+apkyA+IHNow7luOyAjNkE1Mwor5qmUID4gdMO6aTsgIzZBNTQKK+aplSA+IGNoxJNuZzsgIzZBNTUKK+apliA+IHTDoW5nOyAjNkE1Ngor5qmXID4gbcOpbmc7ICM2QTU3CivmqZggPiBqw7o7ICM2QTU4CivmqZkgPiBjaMOpbmc7ICM2QTU5CivmqZogPiBzw7k7ICM2QTVBCivmqZsgPiBqdcOpOyAjNkE1Qgor5qmcID4ganXDqTsgIzZBNUMKK+apnSA+IHTEgW47ICM2QTVECivmqZ4gPiBow7lpOyAjNkE1RQor5qmfID4gasSrOyAjNkE1Rgor5qmgID4gbsWtbzsgIzZBNjAKK+apoSA+IHhpw6BuZzsgIzZBNjEKK+apoiA+IHTFrW87ICM2QTYyCivmqaMgPiBuxK1uZzsgIzZBNjMKK+appCA+IHLFrWk7ICM2QTY0CivmqaUgPiB6aMWrOyAjNkE2NQor5qmmID4gY2h1w6FuZzsgIzZBNjYKK+appyA+IHrEk25nOyAjNkE2Nwor5qmoID4gZsOpbjsgIzZBNjgKK+apqSA+IHHDrW9uZzsgIzZBNjkKK+apqiA+IHLEg247ICM2QTZBCivmqasgPiBow6luZzsgIzZBNkIKK+aprCA+IGPDqW47ICM2QTZDCivmqa0gPiBnxas7ICM2QTZECivmqa4gPiBsxK11OyAjNkE2RQor5qmvID4gbMOgbzsgIzZBNkYKK+apsCA+IGfEgW87ICM2QTcwCivmqbEgPiBjaMO6OyAjNkE3MQor5qm2ID4gasOtOyAjNkE3Ngor5qm3ID4gZMWNdTsgIzZBNzcKK+apuSA+IGzFrTsgIzZBNzkKK+apvCA+IHl1w6FuOyAjNkE3Qwor5qm9ID4gdMOgOyAjNkE3RAor5qm+ID4gc2jFqzsgIzZBN0UKK+apvyA+IGppxIFuZzsgIzZBN0YKK+aqgCA+IHTDoW47ICM2QTgwCivmqoEgPiBsxK1uOyAjNkE4MQor5qqCID4gbsOzbmc7ICM2QTgyCivmqoMgPiB5xK1uOyAjNkE4Mwor5qqEID4geMOtOyAjNkE4NAor5qqFID4gc8O5aTsgIzZBODUKK+aqhiA+IHNoxIFuOyAjNkE4Ngor5qqHID4gesO5aTsgIzZBODcKK+aqiCA+IHh1w6FuOyAjNkE4OAor5qqJID4gY2jEk25nOyAjNkE4OQor5qqKID4gZ8OgbjsgIzZBOEEKK+aqiyA+IGrFqzsgIzZBOEIKK+aqjCA+IHrDuWk7ICM2QThDCivmqo0gPiB5w6w7ICM2QThECivmqo4gPiBxw61uOyAjNkE4RQor5qqPID4gcMWtOyAjNkE4Rgor5qqQID4gecOhbjsgIzZBOTAKK+aqkSA+IGzDqWk7ICM2QTkxCivmqpIgPiBmxJNuZzsgIzZBOTIKK+aqkyA+IGjFrWk7ICM2QTkzCivmqpQgPiBkxINuZzsgIzZBOTQKK+aqlSA+IGrDrDsgIzZBOTUKK+aqliA+IHPDuWk7ICM2QTk2CivmqpcgPiBiw7I7ICM2QTk3CivmqpggPiBiw6w7ICM2QTk4CivmqpkgPiBkxK1uZzsgIzZBOTkKK+aqmiA+IGNoxa07ICM2QTlBCivmqpsgPiB6aHXEgTsgIzZBOUIKK+aqnCA+IGt1w6BpOyAjNkE5Qwor5qqdID4gasOtOyAjNkE5RAor5qqeID4gamnElTsgIzZBOUUKK+aqnyA+IGppxIM7ICM2QTlGCivmqqAgPiBxw61uZzsgIzZBQTAKK+aqoSA+IHpow6g7ICM2QUExCivmqqIgPiBqacSDbjsgIzZBQTIKK+aqoyA+IHFpw6FuZzsgIzZBQTMKK+aqpCA+IGTDoG87ICM2QUE0CivmqqUgPiB5xK07ICM2QUE1CivmqqYgPiBiacSDbzsgIzZBQTYKK+aqpyA+IHPFjW5nOyAjNkFBNwor5qqoID4gc2jEkzsgIzZBQTgKK+aqqSA+IGzErW47ICM2QUE5CivmqqsgPiBjaMOhOyAjNkFBQgor5qqsID4gbcOpbmc7ICM2QUFDCivmqq0gPiB5w61uOyAjNkFBRAor5qquID4gdMOhbzsgIzZBQUUKK+aqryA+IHTDoWk7ICM2QUFGCivmqrAgPiBtacOhbjsgIzZBQjAKK+aqsSA+IHHDrTsgIzZBQjEKK+aqsiA+IHTDs2FuOyAjNkFCMgor5qqzID4gYsSrbjsgIzZBQjMKK+aqtCA+IGjDuW87ICM2QUI0CivmqrUgPiBqw6w7ICM2QUI1CivmqrYgPiBxacSBbjsgIzZBQjYKK+aqtyA+IG3DrTsgIzZBQjcKK+aquCA+IG7DrW5nOyAjNkFCOAor5qq5ID4gecSrOyAjNkFCOQor5qq6ID4gZ8SDbzsgIzZBQkEKK+aquyA+IGppw6BuOyAjNkFCQgor5qq8ID4gecOsbjsgIzZBQkMKK+aqvSA+IMOpcjsgIzZBQkQKK+aqviA+IHHErW5nOyAjNkFCRQor5qq/ID4gecSDbjsgIzZBQkYKK+argCA+IHHDrTsgIzZBQzAKK+argSA+IG3DrDsgIzZBQzEKK+argiA+IHpow6BvOyAjNkFDMgor5quDID4gZ8O5aTsgIzZBQzMKK+arhCA+IGNoxatuOyAjNkFDNAor5quFID4gasSrOyAjNkFDNQor5quGID4ga8O6aTsgIzZBQzYKK+arhyA+IHDDszsgIzZBQzcKK+ariCA+IGTDqG5nOyAjNkFDOAor5quJID4gY2jDujsgIzZBQzkKK+ariyA+IG1pw6FuOyAjNkFDQgor5quMID4gecWNdTsgIzZBQ0MKK+arjSA+IHpow6w7ICM2QUNECivmq44gPiBndcOgbmc7ICM2QUNFCivmq48gPiBxacSBbjsgIzZBQ0YKK+arkCA+IGzElWk7ICM2QUQwCivmq5EgPiBsxJVpOyAjNkFEMQor5quSID4gc8OgOyAjNkFEMgor5quTID4gbMWtOyAjNkFEMwor5quUID4gbMOsOyAjNkFENAor5quVID4gY3XDoW47ICM2QUQ1Civmq5YgPiBsx5g7ICM2QUQ2Civmq5cgPiBtacOoOyAjNkFENwor5quYID4gaMO5aTsgIzZBRDgKK+armSA+IMWNdTsgIzZBRDkKK+armiA+IGzHmDsgIzZBREEKK+armyA+IGppw6k7ICM2QURCCivmq5wgPiBnxIFvOyAjNkFEQwor5qudID4gZMO6OyAjNkFERAor5queID4geXXDoW47ICM2QURFCivmq58gPiBsw6w7ICM2QURGCivmq6AgPiBmw6hpOyAjNkFFMAor5quhID4gemjDum87ICM2QUUxCivmq6IgPiBzxY91OyAjNkFFMgor5qujID4gbGnDoW47ICM2QUUzCivmq6UgPiBjaMO6OyAjNkFFNQor5qunID4gemjFqzsgIzZBRTcKK+arqCA+IGzDujsgIzZBRTgKK+arqSA+IHnDoW47ICM2QUU5Civmq6ogPiBsw6w7ICM2QUVBCivmq6sgPiB6aMWrOyAjNkFFQgor5qusID4gY2jDqG47ICM2QUVDCivmq60gPiBqacOpOyAjNkFFRAor5quuID4gw6g7ICM2QUVFCivmq68gPiBzxas7ICM2QUVGCivmq7AgPiBodcOhaTsgIzZBRjAKK+arsSA+IG5pw6g7ICM2QUYxCivmq7IgPiB5w7k7ICM2QUYyCivmq7MgPiBsw7NuZzsgIzZBRjMKK+artCA+IGzDoGk7ICM2QUY0Civmq7YgPiB4acSDbjsgIzZBRjYKK+aruCA+IGrFrTsgIzZBRjgKK+aruSA+IHhpxIFvOyAjNkFGOQor5qu6ID4gbMOtbmc7ICM2QUZBCivmq7sgPiB5xKtuZzsgIzZBRkIKK+arvCA+IGppxIFuOyAjNkFGQwor5qu9ID4gecStbjsgIzZBRkQKK+arviA+IHnDs3U7ICM2QUZFCivmq78gPiB5w61uZzsgIzZBRkYKK+asgCA+IHhpxIFuZzsgIzZCMDAKK+asgSA+IG7Ds25nOyAjNkIwMQor5qyCID4gYsOzOyAjNkIwMgor5qyDID4gY2jDoW47ICM2QjAzCivmrIQgPiBsw6FuOyAjNkIwNAor5qyFID4gasWtOyAjNkIwNQor5qyGID4gc2h1xIFuZzsgIzZCMDYKK+ashyA+IHNow6g7ICM2QjA3CivmrIggPiB3w6lpOyAjNkIwOAor5qyJID4gY8Oybmc7ICM2QjA5CivmrIogPiBxdcOhbjsgIzZCMEEKK+asiyA+IHHDujsgIzZCMEIKK+asjiA+IHnDuTsgIzZCMEUKK+asjyA+IGzDum87ICM2QjBGCivmrJAgPiBsxK07ICM2QjEwCivmrJEgPiB6w6BuOyAjNkIxMQor5qySID4gbHXDoW47ICM2QjEyCivmrJMgPiBkxINuZzsgIzZCMTMKK+aslCA+IGp1w6k7ICM2QjE0CivmrJYgPiBsxINuOyAjNkIxNgor5qyXID4gbMOhbjsgIzZCMTcKK+asmCA+IHpoxa07ICM2QjE4CivmrJkgPiBsw6lpOyAjNkIxOQor5qyaID4gbMStOyAjNkIxQQor5qybID4gYsOgOyAjNkIxQgor5qycID4gbsOhbmc7ICM2QjFDCivmrJ0gPiB5w7k7ICM2QjFECivmrJ4gPiBsw61uZzsgIzZCMUUKK+asoCA+IHFpw6BuOyAjNkIyMAor5qyhID4gY8OsOyAjNkIyMQor5qyiID4gaHXEgW47ICM2QjIyCivmrKMgPiB4xKtuOyAjNkIyMwor5qykID4gecO6OyAjNkIyNAor5qylID4gecO5OyAjNkIyNQor5qymID4gcWnEgW47ICM2QjI2CivmrKcgPiDFjXU7ICM2QjI3CivmrKggPiB4xas7ICM2QjI4CivmrKkgPiBjaMSBbzsgIzZCMjkKK+asqiA+IGNow7k7ICM2QjJBCivmrKsgPiBjaMSrOyAjNkIyQgor5qysID4ga8OgaTsgIzZCMkMKK+asrSA+IHnDrDsgIzZCMkQKK+asriA+IGp1w6k7ICM2QjJFCivmrK8gPiB4w607ICM2QjJGCivmrLAgPiB4xas7ICM2QjMwCivmrLEgPiB4acOgOyAjNkIzMQor5qyyID4gecO5OyAjNkIzMgor5qyzID4ga3XDoGk7ICM2QjMzCivmrLQgPiBsw6FuZzsgIzZCMzQKK+astSA+IGt1xINuOyAjNkIzNQor5qy2ID4gc2jDuW87ICM2QjM2CivmrLcgPiB4xKs7ICM2QjM3CivmrLggPiDEg2k7ICM2QjM4CivmrLkgPiB5xKs7ICM2QjM5CivmrLogPiBxxKs7ICM2QjNBCivmrLsgPiBoxas7ICM2QjNCCivmrLwgPiBjaMStOyAjNkIzQwor5qy9ID4gccSrbjsgIzZCM0QKK+asviA+IGt1xINuOyAjNkIzRQor5qy/ID4ga8SDbjsgIzZCM0YKK+atgCA+IGt1xINuOyAjNkI0MAor5q2BID4ga8SDbjsgIzZCNDEKK+atgiA+IGNodcOhbjsgIzZCNDIKK+atgyA+IHNow6A7ICM2QjQzCivmrYQgPiBndWE7ICM2QjQ0CivmrYUgPiB5xKtuOyAjNkI0NQor5q2GID4geMSrbjsgIzZCNDYKK+athyA+IHhpxJM7ICM2QjQ3CivmrYggPiB5w7o7ICM2QjQ4CivmrYkgPiBxacOgbjsgIzZCNDkKK+atiiA+IHhpxIFvOyAjNkI0QQor5q2LID4gecOtOyAjNkI0Qgor5q2MID4gZ8STOyAjNkI0Qwor5q2NID4gd8WrOyAjNkI0RAor5q2OID4gdMOgbjsgIzZCNEUKK+atjyA+IGrDrG47ICM2QjRGCivmrZAgPiDFjXU7ICM2QjUwCivmrZEgPiBoxas7ICM2QjUxCivmrZIgPiB0w6w7ICM2QjUyCivmrZMgPiBodcSBbjsgIzZCNTMKK+atlCA+IHjFqzsgIzZCNTQKK+atlSA+IHDDqG47ICM2QjU1CivmrZYgPiB4xKs7ICM2QjU2CivmrZcgPiB4acOgbzsgIzZCNTcKK+atmCA+IHjFqzsgIzZCNTgKK+atmSA+IHjDrDsgIzZCNTkKK+atmyA+IGxpw6BuOyAjNkI1Qgor5q2cID4gY2jDuTsgIzZCNUMKK+atnSA+IHnDrDsgIzZCNUQKK+atniA+IGvEg247ICM2QjVFCivmrZ8gPiB5w7o7ICM2QjVGCivmraAgPiBjaMO5bzsgIzZCNjAKK+atoSA+IGh1xIFuOyAjNkI2MQor5q2iID4gemjErTsgIzZCNjIKK+atoyA+IHpow6huZzsgIzZCNjMKK+atpCA+IGPErTsgIzZCNjQKK+atpSA+IGLDuTsgIzZCNjUKK+atpiA+IHfFrTsgIzZCNjYKK+atpyA+IHHDrTsgIzZCNjcKK+atqCA+IGLDuTsgIzZCNjgKK+atqSA+IGLDuTsgIzZCNjkKK+atqiA+IHfEgWk7ICM2QjZBCivmrasgPiBqw7k7ICM2QjZCCivmrawgPiBxacOhbjsgIzZCNkMKK+atrSA+IGNow607ICM2QjZECivmra4gPiBzw6g7ICM2QjZFCivmra8gPiBjaMStOyAjNkI2Rgor5q2wID4gc8OoOyAjNkI3MAor5q2xID4gemjFj25nOyAjNkI3MQor5q2yID4gc8O5aTsgIzZCNzIKK+atsyA+IHPDuWk7ICM2QjczCivmrbQgPiBsw6w7ICM2Qjc0CivmrbUgPiBjw7lvOyAjNkI3NQor5q22ID4gecO6OyAjNkI3Ngor5q23ID4gbMOsOyAjNkI3Nwor5q24ID4gZ8WraTsgIzZCNzgKK+atuSA+IGTEg2k7ICM2Qjc5CivmrbogPiBkxINpOyAjNkI3QQor5q27ID4gc8StOyAjNkI3Qgor5q28ID4gamnEgW47ICM2QjdDCivmrb0gPiB6aMOpOyAjNkI3RAor5q2+ID4gbcOyOyAjNkI3RQor5q2/ID4gbcOyOyAjNkI3Rgor5q6AID4gecSDbzsgIzZCODAKK+augSA+IG3DsjsgIzZCODEKK+augiA+IGPDujsgIzZCODIKK+augyA+IHnEgW5nOyAjNkI4Mwor5q6EID4gdGnEg247ICM2Qjg0CivmroUgPiBzaMSTbmc7ICM2Qjg1CivmroYgPiBkw6BpOyAjNkI4Ngor5q6HID4gc2jEgW5nOyAjNkI4Nwor5q6IID4geMO5OyAjNkI4OAor5q6JID4geMO5bjsgIzZCODkKK+auiiA+IHNoxas7ICM2QjhBCivmrosgPiBjw6FuOyAjNkI4Qgor5q6MID4ganXDqTsgIzZCOEMKK+aujSA+IHBpxINvOyAjNkI4RAor5q6OID4gcWnDoDsgIzZCOEUKK+aujyA+IHHDrHU7ICM2QjhGCivmrpAgPiBzw7k7ICM2QjkwCivmrpEgPiBxw61uZzsgIzZCOTEKK+aukiA+IHnFrW47ICM2QjkyCivmrpMgPiBsacOgbjsgIzZCOTMKK+aulCA+IHnDrDsgIzZCOTQKK+aulSA+IGbFj3U7ICM2Qjk1CivmrpYgPiB6aMOtOyAjNkI5Ngor5q6XID4gecOoOyAjNkI5Nwor5q6YID4gY8OhbjsgIzZCOTgKK+aumSA+IGjFq247ICM2Qjk5CivmrpogPiBkxIFuOyAjNkI5QQor5q6bID4gasOtOyAjNkI5Qgor5q6cID4gecOoOyAjNkI5Qwor5q6dID4gemhlbjsgIzZCOUQKK+auniA+IHnFrW47ICM2QjlFCivmrp8gPiB3xJNuOyAjNkI5Rgor5q6gID4gY2jDsnU7ICM2QkEwCivmrqEgPiBiw6xuOyAjNkJBMQor5q6iID4gdMOsOyAjNkJBMgor5q6jID4gasStbjsgIzZCQTMKK+aupCA+IHNoxIFuZzsgIzZCQTQKK+aupSA+IHnDrW47ICM2QkE1CivmrqYgPiBkacSBbzsgIzZCQTYKK+aupyA+IGPDuTsgIzZCQTcKK+auqCA+IGjDuWk7ICM2QkE4CivmrqkgPiBjdcOgbjsgIzZCQTkKK+auqiA+IHnDrDsgIzZCQUEKK+auqyA+IGTEgW47ICM2QkFCCivmrqwgPiBkw7k7ICM2QkFDCivmrq0gPiBqacSBbmc7ICM2QkFECivmrq4gPiBsacOgbjsgIzZCQUUKK+auryA+IGLDrG47ICM2QkFGCivmrrAgPiBkw7o7ICM2QkIwCivmrrIgPiBqacSBbjsgIzZCQjIKK+ausyA+IHNoxas7ICM2QkIzCivmrrQgPiDFjXU7ICM2QkI0CivmrrUgPiBkdcOgbjsgIzZCQjUKK+autiA+IHpow7k7ICM2QkI2CivmrrcgPiB5xKtuOyAjNkJCNwor5q64ID4gccOsbmc7ICM2QkI4CivmrrkgPiB5w6w7ICM2QkI5CivmrrogPiBzaMSBOyAjNkJCQQor5q67ID4gcXXDqDsgIzZCQkIKK+auvCA+IGvDqTsgIzZCQkMKK+auvSA+IHnDoW87ICM2QkJECivmrr4gPiBqw7luOyAjNkJCRQor5q6/ID4gZGnDoG47ICM2QkJGCivmr4AgPiBoxa1pOyAjNkJDMAor5q+BID4gaMWtaTsgIzZCQzEKK+avgiA+IGfFrTsgIzZCQzIKK+avgyA+IHF1w6g7ICM2QkMzCivmr4QgPiBqxKs7ICM2QkM0Civmr4UgPiB5w6w7ICM2QkM1Civmr4YgPiDFjXU7ICM2QkM2Civmr4cgPiBoxa1pOyAjNkJDNwor5q+IID4gZHXDoG47ICM2QkM4Civmr4kgPiB5xKs7ICM2QkM5Civmr4ogPiB4acSBbzsgIzZCQ0EKK+aviyA+IHfDujsgIzZCQ0IKK+avjCA+IGd1w6BuOyAjNkJDQwor5q+NID4gbcWtOyAjNkJDRAor5q+OID4gbcSVaTsgIzZCQ0UKK+avjyA+IG3ElWk7ICM2QkNGCivmr5AgPiDEg2k7ICM2QkQwCivmr5EgPiB6xa1vOyAjNkJEMQor5q+SID4gZMO6OyAjNkJEMgor5q+TID4gecO5OyAjNkJEMwor5q+UID4gYsStOyAjNkJENAor5q+VID4gYsOsOyAjNkJENQor5q+WID4gYsOsOyAjNkJENgor5q+XID4gcMOtOyAjNkJENwor5q+YID4gcMOtOyAjNkJEOAor5q+ZID4gYsOsOyAjNkJEOQor5q+aID4gY2jDoW47ICM2QkRBCivmr5sgPiBtw6FvOyAjNkJEQgor5q+eID4gcMO6OyAjNkJERQor5q+gID4gamnEgTsgIzZCRTAKK+avoSA+IHpoxIFuOyAjNkJFMQor5q+iID4gc8SBaTsgIzZCRTIKK+avoyA+IG3DuTsgIzZCRTMKK+avpCA+IHTDuW87ICM2QkU0Civmr6UgPiB4w7puOyAjNkJFNQor5q+mID4gw6hyOyAjNkJFNgor5q+nID4gcsOzbmc7ICM2QkU3Civmr6ggPiB4acSDbjsgIzZCRTgKK+avqSA+IGrDujsgIzZCRTkKK+avqiA+IG3DujsgIzZCRUEKK+avqyA+IGjDoW87ICM2QkVCCivmr6wgPiBxw611OyAjNkJFQwor5q+tID4gZMOydTsgIzZCRUQKK+avryA+IHTEg247ICM2QkVGCivmr7AgPiBww6lpOyAjNkJGMAor5q+xID4gasO6OyAjNkJGMQor5q+yID4gZMO6bzsgIzZCRjIKK+avsyA+IGPDuWk7ICM2QkYzCivmr7QgPiBixKs7ICM2QkY0Civmr7UgPiBzxIFuOyAjNkJGNQor5q+3ID4gbcOgbzsgIzZCRjcKK+avuCA+IHPFq2k7ICM2QkY4Civmr7kgPiB5xas7ICM2QkY5Civmr7ogPiB5xas7ICM2QkZBCivmr7sgPiB0w7lvOyAjNkJGQgor5q+8ID4gaMOpOyAjNkJGQwor5q+9ID4gamnDoG47ICM2QkZECivmr74gPiB0w6A7ICM2QkZFCivmr78gPiBzxIFuOyAjNkJGRgor5rCAID4gbMeYOyAjNkMwMAor5rCBID4gbcO6OyAjNkMwMQor5rCCID4gbMOtOyAjNkMwMgor5rCDID4gdMOzbmc7ICM2QzAzCivmsIQgPiByxY9uZzsgIzZDMDQKK+awhSA+IGNoxINuZzsgIzZDMDUKK+awhiA+IHDFrTsgIzZDMDYKK+awhyA+IGzDum87ICM2QzA3CivmsIggPiB6aMSBbjsgIzZDMDgKK+awiSA+IHPDoG87ICM2QzA5CivmsIogPiB6aMSBbjsgIzZDMEEKK+awiyA+IG3DqW5nOyAjNkMwQgor5rCMID4gbMO6bzsgIzZDMEMKK+awjSA+IHHDujsgIzZDMEQKK+awjiA+IGRpw6k7ICM2QzBFCivmsI8gPiBzaMOsOyAjNkMwRgor5rCQID4gZMStOyAjNkMxMAor5rCRID4gbcOtbjsgIzZDMTEKK+awkiA+IGp1w6k7ICM2QzEyCivmsJMgPiBtw6FuZzsgIzZDMTMKK+awlCA+IHHDrDsgIzZDMTQKK+awlSA+IHBpxJM7ICM2QzE1CivmsJYgPiBuxINpOyAjNkMxNgor5rCXID4gccOsOyAjNkMxNwor5rCYID4gZMSBbzsgIzZDMTgKK+awmSA+IHhpxIFuOyAjNkMxOQor5rCaID4gY2h1xIFuOyAjNkMxQQor5rCbID4gZsSTbjsgIzZDMUIKK+awnCA+IHLDrDsgIzZDMUMKK+awnSA+IG7DqGk7ICM2QzFECivmsJ8gPiBmw7o7ICM2QzFGCivmsKAgPiBzaMSTbjsgIzZDMjAKK+awoSA+IGTFjW5nOyAjNkMyMQor5rCiID4gccSrbmc7ICM2QzIyCivmsKMgPiBxw6w7ICM2QzIzCivmsKQgPiB5xKtuOyAjNkMyNAor5rClID4geMSrOyAjNkMyNQor5rCmID4gaMOgaTsgIzZDMjYKK+awpyA+IHnEg25nOyAjNkMyNwor5rCoID4gxIFuOyAjNkMyOAor5rCpID4gecOgOyAjNkMyOQor5rCqID4ga8OoOyAjNkMyQQor5rCrID4gccSrbmc7ICM2QzJCCivmsKwgPiB5w6A7ICM2QzJDCivmsK0gPiBkxY1uZzsgIzZDMkQKK+awriA+IGTDoG47ICM2QzJFCivmsK8gPiBsx5w7ICM2QzJGCivmsLAgPiBxxKtuZzsgIzZDMzAKK+awsSA+IHnEg25nOyAjNkMzMQor5rCyID4gecWrbjsgIzZDMzIKK+awsyA+IHnFq247ICM2QzMzCivmsLQgPiBzaMWtaTsgIzZDMzQKK+awtSA+IHPEgW4nICdkacSDbicgJ3Noxa1pOyAjNkMzNQor5rC2ID4gemjElW5nOyAjNkMzNgor5rC3ID4gYsSrbmc7ICM2QzM3CivmsLggPiB5xY9uZzsgIzZDMzgKK+awuSA+IGTDoG5nOyAjNkMzOQor5rC7ID4gbMOoOyAjNkMzQgor5rC8ID4gbsOsOyAjNkMzQwor5rC9ID4gdMWtbjsgIzZDM0QKK+awviA+IGbDoG47ICM2QzNFCivmsL8gPiBnxa1pOyAjNkMzRgor5rGAID4gdMSrbmc7ICM2QzQwCivmsYEgPiB6aMSrOyAjNkM0MQor5rGCID4gccOtdTsgIzZDNDIKK+axgyA+IGLEq247ICM2QzQzCivmsYQgPiB6w6g7ICM2QzQ0CivmsYUgPiBtacSDbjsgIzZDNDUKK+axhiA+IGN1xIFuOyAjNkM0Ngor5rGHID4gaMO5aTsgIzZDNDcKK+axiCA+IGRpxIFvOyAjNkM0OAor5rGJID4gecOsOyAjNkM0OQor5rGKID4gY2jDoDsgIzZDNEEKK+axiyA+IHpow7pvOyAjNkM0Qgor5rGMID4gY2h1w6BuOyAjNkM0Qwor5rGNID4gd8OhbjsgIzZDNEQKK+axjiA+IGbDoG47ICM2QzRFCivmsY8gPiBkw6BpOyAjNkM0Rgor5rGQID4geMOsOyAjNkM1MAor5rGRID4gdMWrbzsgIzZDNTEKK+axkiA+IG3DoW5nOyAjNkM1Mgor5rGTID4gccOtdTsgIzZDNTMKK+axlCA+IHHDrDsgIzZDNTQKK+axlSA+IHNow6BuOyAjNkM1NQor5rGWID4gcMOgaTsgIzZDNTYKK+axlyA+IGjDoG47ICM2QzU3CivmsZggPiBxacSBbjsgIzZDNTgKK+axmSA+IHfFqzsgIzZDNTkKK+axmiA+IHfFqzsgIzZDNUEKK+axmyA+IHjDuW47ICM2QzVCCivmsZwgPiBzw6w7ICM2QzVDCivmsZ0gPiByxa07ICM2QzVECivmsZ4gPiBnxY9uZzsgIzZDNUUKK+axnyA+IGppxIFuZzsgIzZDNUYKK+axoCA+IGNow607ICM2QzYwCivmsaEgPiB3xas7ICM2QzYxCivmsaQgPiB0xIFuZzsgIzZDNjQKK+axpSA+IHpoxKs7ICM2QzY1CivmsaYgPiBjaMOtOyAjNkM2Ngor5rGnID4gcWnEgW47ICM2QzY3CivmsaggPiBtw6w7ICM2QzY4CivmsakgPiB5w7k7ICM2QzY5CivmsaogPiB3xIFuZzsgIzZDNkEKK+axqyA+IHHDrG5nOyAjNkM2Qgor5rGsID4gasStbmc7ICM2QzZDCivmsa0gPiByw7lpOyAjNkM2RAor5rGuID4gasWrbjsgIzZDNkUKK+axryA+IGjDs25nOyAjNkM2Rgor5rGwID4gdMOgaTsgIzZDNzAKK+axsSA+IHF1xINuOyAjNkM3MQor5rGyID4gasOtOyAjNkM3Mgor5rGzID4gYmnDoG47ICM2QzczCivmsbQgPiBiacOgbjsgIzZDNzQKK+axtSA+IGfDoG47ICM2Qzc1CivmsbYgPiB3w6huOyAjNkM3Ngor5rG3ID4gemjFjW5nOyAjNkM3Nwor5rG4ID4gZsSBbmc7ICM2Qzc4CivmsbkgPiB4xKtvbmc7ICM2Qzc5CivmsbogPiBqdcOpOyAjNkM3QQor5rG7ID4gaMSDbmc7ICM2QzdCCivmsbwgPiBuacWNdTsgIzZDN0MKK+axvSA+IHHDrDsgIzZDN0QKK+axviA+IGbDqW47ICM2QzdFCivmsb8gPiB4w7k7ICM2QzdGCivmsoAgPiB4w7k7ICM2QzgwCivmsoEgPiBxw6xuOyAjNkM4MQor5rKCID4gecOtOyAjNkM4Mgor5rKDID4gd8OyOyAjNkM4Mwor5rKEID4gecO6bjsgIzZDODQKK+ayhSA+IHl1w6FuOyAjNkM4NQor5rKGID4gaMOhbmc7ICM2Qzg2CivmsocgPiB5xINuOyAjNkM4Nwor5rKIID4gY2jDqW47ICM2Qzg4CivmsokgPiBjaMOpbjsgIzZDODkKK+ayiiA+IGTDoG47ICM2QzhBCivmsosgPiB5w7N1OyAjNkM4Qgor5rKMID4gZMO5bjsgIzZDOEMKK+ayjSA+IGjDuTsgIzZDOEQKK+ayjiA+IGjDuW87ICM2QzhFCivmso8gPiBxacSTOyAjNkM4Rgor5rKQID4gbcO5OyAjNkM5MAor5rKRID4gcsOzdTsgIzZDOTEKK+aykiA+IG3DqWk7ICM2QzkyCivmspMgPiB0w6A7ICM2QzkzCivmspQgPiBtacSDbjsgIzZDOTQKK+aylSA+IHfDuTsgIzZDOTUKK+ayliA+IGNoxY1uZzsgIzZDOTYKK+aylyA+IHRpxIFuOyAjNkM5Nwor5rKYID4gYsStOyAjNkM5OAor5rKZID4gc2jEgTsgIzZDOTkKK+aymiA+IHpoxK07ICM2QzlBCivmspsgPiBww6hpOyAjNkM5Qgor5rKcID4gcMOgbjsgIzZDOUMKK+aynSA+IHpoxa1pOyAjNkM5RAor5rKeID4gesSBOyAjNkM5RQor5rKfID4gZ8WNdTsgIzZDOUYKK+ayoCA+IGzDrXU7ICM2Q0EwCivmsqEgPiBtw6lpOyAjNkNBMQor5rKiID4gesOpOyAjNkNBMgor5rKjID4gZsSTbmc7ICM2Q0EzCivmsqQgPiDDsnU7ICM2Q0E0CivmsqUgPiBsw6w7ICM2Q0E1CivmsqYgPiBsw7puOyAjNkNBNgor5rKnID4gY8SBbmc7ICM2Q0E3CivmsqggPiBmw6luZzsgIzZDQTgKK+ayqSA+IHfDqWk7ICM2Q0E5CivmsqogPiBow7k7ICM2Q0FBCivmsqsgPiBtw7I7ICM2Q0FCCivmsqwgPiBtw6hpOyAjNkNBQwor5rKtID4gc2jDuTsgIzZDQUQKK+ayriA+IGrFqzsgIzZDQUUKK+ayryA+IHrEg247ICM2Q0FGCivmsrAgPiB0xatvOyAjNkNCMAor5rKxID4gdMO6bzsgIzZDQjEKK+aysiA+IHTDum87ICM2Q0IyCivmsrMgPiBow6k7ICM2Q0IzCivmsrQgPiBsw6w7ICM2Q0I0CivmsrUgPiBtxK07ICM2Q0I1CivmsrYgPiB5w607ICM2Q0I2CivmsrcgPiBmxIE7ICM2Q0I3CivmsrggPiBmw6hpOyAjNkNCOAor5rK5ID4gecOzdTsgIzZDQjkKK+ayuiA+IHRpw6FuOyAjNkNCQQor5rK7ID4gemjDrDsgIzZDQkIKK+ayvCA+IHpoxINvOyAjNkNCQwor5rK9ID4gZ8WrOyAjNkNCRAor5rK+ID4gemjEgW47ICM2Q0JFCivmsr8gPiB5w6FuOyAjNkNCRgor5rOAID4gc8SrOyAjNkNDMAor5rOBID4ga3XDoG5nOyAjNkNDMQor5rOCID4gasStb25nOyAjNkNDMgor5rODID4gasO5OyAjNkNDMwor5rOEID4geGnDqDsgIzZDQzQKK+azhSA+IHHDrXU7ICM2Q0M1Civms4YgPiB5xKs7ICM2Q0M2Civms4cgPiBqacSBOyAjNkNDNwor5rOIID4gemjFjW5nOyAjNkNDOAor5rOJID4gcXXDoW47ICM2Q0M5Civms4ogPiBiw7M7ICM2Q0NBCivms4sgPiBow7lpOyAjNkNDQgor5rOMID4gbcOsOyAjNkNDQwor5rONID4gYsSTbjsgIzZDQ0QKK+azjiA+IHpow7pvOyAjNkNDRQor5rOPID4gY2jDuTsgIzZDQ0YKK+azkCA+IGzDqDsgIzZDRDAKK+azkSA+IHnFj3U7ICM2Q0QxCivms5IgPiBnxas7ICM2Q0QyCivms5MgPiBow7NuZzsgIzZDRDMKK+azlCA+IGfEgW47ICM2Q0Q0Civms5UgPiBmxIM7ICM2Q0Q1Civms5YgPiBtxINvOyAjNkNENgor5rOXID4gc8OsOyAjNkNENwor5rOYID4gaMWrOyAjNkNEOAor5rOZID4gcMOtbmc7ICM2Q0Q5Civms5ogPiBjxK07ICM2Q0RBCivms5sgPiBmw6BuOyAjNkNEQgor5rOcID4gY2jDrTsgIzZDREMKK+aznSA+IHPDuTsgIzZDREQKK+azniA+IG7DrG5nOyAjNkNERQor5rOfID4gY2jEk25nOyAjNkNERgor5rOgID4gbMOtbmc7ICM2Q0UwCivms6EgPiBww6BvOyAjNkNFMQor5rOiID4gYsWNOyAjNkNFMgor5rOjID4gccOsOyAjNkNFMwor5rOkID4gc8OsOyAjNkNFNAor5rOlID4gbsOtOyAjNkNFNQor5rOmID4gasO6OyAjNkNFNgor5rOnID4geXXDqDsgIzZDRTcKK+azqCA+IHpow7k7ICM2Q0U4Civms6kgPiBzaMSTbmc7ICM2Q0U5Civms6ogPiBsw6hpOyAjNkNFQQor5rOrID4geHXDoG47ICM2Q0VCCivms6wgPiB4dcOoOyAjNkNFQwor5rOtID4gZsWrOyAjNkNFRAor5rOuID4gcMOgbjsgIzZDRUUKK+azryA+IG3ErW47ICM2Q0VGCivms7AgPiB0w6BpOyAjNkNGMAor5rOxID4gecSBbmc7ICM2Q0YxCivms7IgPiBqxK07ICM2Q0YyCivms7MgPiB5xY9uZzsgIzZDRjMKK+aztCA+IGd1w6BuOyAjNkNGNAor5rO1ID4gYsOobmc7ICM2Q0Y1Civms7YgPiB4dcOpOyAjNkNGNgor5rO3ID4gbMOzbmc7ICM2Q0Y3Civms7ggPiBsw7o7ICM2Q0Y4Civms7ogPiBiw7M7ICM2Q0ZBCivms7sgPiB4acOoOyAjNkNGQgor5rO8ID4gcMWNOyAjNkNGQwor5rO9ID4gesOpOyAjNkNGRAor5rO+ID4gasSrbmc7ICM2Q0ZFCivms78gPiB5w61uOyAjNkNGRgor5rSAID4gemjFjXU7ICM2RDAwCivmtIEgPiBqw607ICM2RDAxCivmtIIgPiB5w6w7ICM2RDAyCivmtIMgPiBoxatpOyAjNkQwMwor5rSEID4gaMO6aTsgIzZEMDQKK+a0hSA+IHrFrWk7ICM2RDA1CivmtIYgPiBjaMOpbmc7ICM2RDA2CivmtIcgPiB5xKtuOyAjNkQwNwor5rSIID4gd8OpaTsgIzZEMDgKK+a0iSA+IGjDsnU7ICM2RDA5CivmtIogPiBqacOgbjsgIzZEMEEKK+a0iyA+IHnDoW5nOyAjNkQwQgor5rSMID4gbGnDqDsgIzZEMEMKK+a0jSA+IHPDrDsgIzZEMEQKK+a0jiA+IGrDrDsgIzZEMEUKK+a0jyA+IMOpcjsgIzZEMEYKK+a0kCA+IHjDrW5nOyAjNkQxMAor5rSRID4gZsO6OyAjNkQxMQor5rSSID4gc8SDOyAjNkQxMgor5rSTID4gc8WtbzsgIzZEMTMKK+a0lCA+IHpoxK07ICM2RDE0CivmtJUgPiB5xKtuOyAjNkQxNQor5rSWID4gd8O6OyAjNkQxNgor5rSXID4geMStOyAjNkQxNwor5rSYID4ga8SDbzsgIzZEMTgKK+a0mSA+IHpoxas7ICM2RDE5CivmtJogPiBqacOgbmc7ICM2RDFBCivmtJsgPiBsw7lvOyAjNkQxQgor5rSdID4gw6BuOyAjNkQxRAor5rSeID4gZMOybmc7ICM2RDFFCivmtJ8gPiB5w607ICM2RDFGCivmtKAgPiBtw7N1OyAjNkQyMAor5rShID4gbMSVaTsgIzZEMjEKK+a0oiA+IHnEqzsgIzZEMjIKK+a0oyA+IG3ErTsgIzZEMjMKK+a0pCA+IHF1w6FuOyAjNkQyNAor5rSlID4gasSrbjsgIzZEMjUKK+a0piA+IG3DsjsgIzZEMjYKK+a0pyA+IHfElWk7ICM2RDI3CivmtKggPiB4acOhbzsgIzZEMjgKK+a0qSA+IHhpw6g7ICM2RDI5CivmtKogPiBow7NuZzsgIzZEMkEKK+a0qyA+IHjDuTsgIzZEMkIKK+a0rCA+IHNow7lvOyAjNkQyQwor5rStID4ga3XEgW5nOyAjNkQyRAor5rSuID4gdMSBbzsgIzZEMkUKK+a0ryA+IHFpw6g7ICM2RDJGCivmtLAgPiBqw7k7ICM2RDMwCivmtLEgPiDElXI7ICM2RDMxCivmtLIgPiB6aMWNdTsgIzZEMzIKK+a0syA+IHLDuTsgIzZEMzMKK+a0tCA+IHDDrW5nOyAjNkQzNAor5rS1ID4geMO6bjsgIzZEMzUKK+a0tiA+IHjEq29uZzsgIzZEMzYKK+a0tyA+IHpow6w7ICM2RDM3CivmtLggPiBndcSBbmc7ICM2RDM4CivmtLkgPiBodcOhbjsgIzZEMzkKK+a0uiA+IG3DrW5nOyAjNkQzQQor5rS7ID4gaMO6bzsgIzZEM0IKK+a0vCA+IHfEgTsgIzZEM0MKK+a0vSA+IHFpw6A7ICM2RDNECivmtL4gPiBww6BpOyAjNkQzRQor5rS/ID4gd8WrOyAjNkQzRgor5rWAID4gccWtOyAjNkQ0MAor5rWBID4gbMOtdTsgIzZENDEKK+a1giA+IHnDrDsgIzZENDIKK+a1gyA+IGppw6E7ICM2RDQzCivmtYQgPiBqw6xuZzsgIzZENDQKK+a1hSA+IHFpxINuOyAjNkQ0NQor5rWGID4gamnEgW5nOyAjNkQ0Ngor5rWHID4gamnEgW87ICM2RDQ3CivmtYggPiBjaMOpbmc7ICM2RDQ4CivmtYkgPiBzaMSrOyAjNkQ0OQor5rWKID4gemjDum87ICM2RDRBCivmtYsgPiBjw6g7ICM2RDRCCivmtY0gPiBrdcOgaTsgIzZENEQKK+a1jiA+IGrDrDsgIzZENEUKK+a1jyA+IGzDrXU7ICM2RDRGCivmtZAgPiBjaMSDbjsgIzZENTAKK+a1kSA+IGjDum47ICM2RDUxCivmtZIgPiBoxa07ICM2RDUyCivmtZMgPiBuw7NuZzsgIzZENTMKK+a1lCA+IHjDum47ICM2RDU0CivmtZUgPiBqw6xuOyAjNkQ1NQor5rWWID4gbGnDqDsgIzZENTYKK+a1lyA+IHHDrXU7ICM2RDU3CivmtZggPiB3xJVpOyAjNkQ1OAor5rWZID4gemjDqDsgIzZENTkKK+a1miA+IGrDuW47ICM2RDVBCivmtZsgPiBow6BuOyAjNkQ1Qgor5rWcID4gYsSBbmc7ICM2RDVDCivmtZ0gPiBtw6FuZzsgIzZENUQKK+a1niA+IHpow7pvOyAjNkQ1RQor5rWfID4gecOzdTsgIzZENUYKK+a1oCA+IHjEqzsgIzZENjAKK+a1oSA+IGLDszsgIzZENjEKK+a1oiA+IGTDsnU7ICM2RDYyCivmtaMgPiB3xINuOyAjNkQ2Mwor5rWkID4gaMOzbmc7ICM2RDY0CivmtaUgPiB5w6w7ICM2RDY1CivmtaYgPiBwxa07ICM2RDY2CivmtacgPiB5xK1uZzsgIzZENjcKK+a1qCA+IGzEg247ICM2RDY4CivmtakgPiBow6BvOyAjNkQ2OQor5rWqID4gbMOgbmc7ICM2RDZBCivmtasgPiBoxINuOyAjNkQ2Qgor5rWsID4gbMStOyAjNkQ2Qwor5rWtID4gZ8STbmc7ICM2RDZECivmta4gPiBmw7o7ICM2RDZFCivmta8gPiB3w7o7ICM2RDZGCivmtbAgPiBsacOgbjsgIzZENzAKK+a1sSA+IGNow7puOyAjNkQ3MQor5rWyID4gZsOpbmc7ICM2RDcyCivmtbMgPiB5w6w7ICM2RDczCivmtbQgPiB5w7k7ICM2RDc0CivmtbUgPiB0w7NuZzsgIzZENzUKK+a1tiA+IGzDoW87ICM2RDc2CivmtbcgPiBoxINpOyAjNkQ3Nwor5rW4ID4gasOsbjsgIzZENzgKK+a1uSA+IGppw6E7ICM2RDc5CivmtbogPiBjaMWNbmc7ICM2RDdBCivmtbsgPiB3xJVuZzsgIzZEN0IKK+a1vCA+IG3ElWk7ICM2RDdDCivmtb0gPiBzxatpOyAjNkQ3RAor5rW+ID4gY2jEk25nOyAjNkQ3RQor5rW/ID4gcMOoaTsgIzZEN0YKK+a2gCA+IHhpw6BuOyAjNkQ4MAor5raBID4gc2jDqG47ICM2RDgxCivmtoIgPiB0w7o7ICM2RDgyCivmtoMgPiBrw7luOyAjNkQ4Mwor5raEID4gcMSrbjsgIzZEODQKK+a2hSA+IG5pw6g7ICM2RDg1CivmtoYgPiBow6BuOyAjNkQ4Ngor5raHID4gasSrbmc7ICM2RDg3CivmtoggPiB4acSBbzsgIzZEODgKK+a2iSA+IHNow6g7ICM2RDg5CivmtoogPiBuacOgbjsgIzZEOEEKK+a2iyA+IHTFqzsgIzZEOEIKK+a2jCA+IHnFj25nOyAjNkQ4Qwor5raNID4geGnDoG87ICM2RDhECivmto4gPiB4acOhbjsgIzZEOEUKK+a2jyA+IHTErW5nOyAjNkQ4Rgor5raQID4gw6k7ICM2RDkwCivmtpEgPiBzw7k7ICM2RDkxCivmtpIgPiB0xatuOyAjNkQ5Mgor5raTID4ganXEgW47ICM2RDkzCivmtpQgPiBjw6luOyAjNkQ5NAor5raVID4gdMOsOyAjNkQ5NQor5raWID4gbMOsOyAjNkQ5Ngor5raXID4gc2jDuWk7ICM2RDk3CivmtpggPiBzw6w7ICM2RDk4CivmtpkgPiBsw6hpOyAjNkQ5OQor5raaID4gc2jDuWk7ICM2RDlBCivmtpsgPiB0xIFvOyAjNkQ5Qgor5racID4gZMO6OyAjNkQ5Qwor5radID4gbMOgbzsgIzZEOUQKK+a2niA+IGzDoWk7ICM2RDlFCivmtp8gPiBsacOhbjsgIzZEOUYKK+a2oCA+IHfDqWk7ICM2REEwCivmtqEgPiB3xY07ICM2REExCivmtqIgPiB5w7puOyAjNkRBMgor5rajID4gaHXDoG47ICM2REEzCivmtqQgPiBkw607ICM2REE0CivmtqYgPiByw7luOyAjNkRBNgor5ranID4gamnDoG47ICM2REE3CivmtqggPiB6aMSDbmc7ICM2REE4CivmtqkgPiBzw6g7ICM2REE5CivmtqogPiBmw7o7ICM2REFBCivmtqsgPiBndcOgbjsgIzZEQUIKK+a2rCA+IHjDrG5nOyAjNkRBQwor5ratID4gc2jDsnU7ICM2REFECivmtq4gPiBzaHXDoG47ICM2REFFCivmtq8gPiB5w6E7ICM2REFGCivmtrAgPiBjaMO5bzsgIzZEQjAKK+a2sSA+IHpow6BuZzsgIzZEQjEKK+a2siA+IHnDqDsgIzZEQjIKK+a2syA+IGvFjW5nOyAjNkRCMwor5ra0ID4gd8OyOyAjNkRCNAor5ra1ID4gaMOhbjsgIzZEQjUKK+a2tiA+IHTFq287ICM2REI2CivmtrcgPiBkxY1uZzsgIzZEQjcKK+a2uCA+IGjDqTsgIzZEQjgKK+a2uSA+IHfFjTsgIzZEQjkKK+a2uiA+IGrFqzsgIzZEQkEKK+a2uyA+IGfDoG47ICM2REJCCivmtrwgPiBsacOhbmc7ICM2REJDCivmtr0gPiBoxatuOyAjNkRCRAor5ra+ID4gdMOgOyAjNkRCRQor5ra/ID4gemjDum87ICM2REJGCivmt4AgPiBkacOgbjsgIzZEQzAKK+a3gSA+IHFpw6g7ICM2REMxCivmt4IgPiBkw6k7ICM2REMyCivmt4MgPiBqdcOgbjsgIzZEQzMKK+a3hCA+IHrEqzsgIzZEQzQKK+a3hSA+IHjEqzsgIzZEQzUKK+a3hiA+IHnDoW87ICM2REM2Civmt4cgPiBxw607ICM2REM3Civmt4ggPiBnxa07ICM2REM4Civmt4kgPiBnxa1vOyAjNkRDOQor5reKID4gaMOgbjsgIzZEQ0EKK+a3iyA+IGzDrW47ICM2RENCCivmt4wgPiB0xINuZzsgIzZEQ0MKK+a3jSA+IHpoxY11OyAjNkRDRAor5reOID4gcMSVbmc7ICM2RENFCivmt48gPiBow6BvOyAjNkRDRgor5reQID4gY2jEgW5nOyAjNkREMAor5reRID4gc2jDujsgIzZERDEKK+a3kiA+IHHEqzsgIzZERDIKK+a3kyA+IGbEgW5nOyAjNkREMwor5reUID4gY2jDrDsgIzZERDQKK+a3lSA+IGzDuTsgIzZERDUKK+a3liA+IG7DoG87ICM2REQ2Civmt5cgPiBqw7o7ICM2REQ3Civmt5ggPiB0w6FvOyAjNkREOAor5reZID4gY8Ozbmc7ICM2REQ5Civmt5ogPiBsw6hpOyAjNkREQQor5rebID4gemjDrDsgIzZEREIKK+a3nCA+IHDDqW5nOyAjNkREQwor5redID4gZsOpaTsgIzZEREQKK+a3niA+IHPFjW5nOyAjNkRERQor5refID4gdGnEg247ICM2RERGCivmt6AgPiBww6w7ICM2REUwCivmt6EgPiBkw6BuOyAjNkRFMQor5reiID4gecO5OyAjNkRFMgor5rejID4gbsOtOyAjNkRFMwor5rekID4gecWrOyAjNkRFNAor5relID4gbMO5OyAjNkRFNQor5remID4gZ8OgbjsgIzZERTYKK+a3pyA+IG3DrDsgIzZERTcKK+a3qCA+IGrDrG5nOyAjNkRFOAor5repID4gbMOtbmc7ICM2REU5Civmt6ogPiBsw7puOyAjNkRFQQor5rerID4gecOtbjsgIzZERUIKK+a3rCA+IGPDuWk7ICM2REVDCivmt60gPiBxw7o7ICM2REVECivmt64gPiBodcOhaTsgIzZERUUKK+a3ryA+IHnDuTsgIzZERUYKK+a3sCA+IG5pw6BuOyAjNkRGMAor5rexID4gc2jEk247ICM2REYxCivmt7IgPiBwacOhbzsgIzZERjIKK+a3syA+IGNow7puOyAjNkRGMwor5re0ID4gd8OgOyAjNkRGNAor5re1ID4geXXEgW47ICM2REY1Civmt7YgPiBsw6FpOyAjNkRGNgor5re3ID4gaMWtbjsgIzZERjcKK+a3uCA+IHHEq25nOyAjNkRGOAor5re5ID4gecSBbjsgIzZERjkKK+a3uiA+IHFpxINuOyAjNkRGQQor5re7ID4gdGnEgW47ICM2REZCCivmt7wgPiBtacSDbzsgIzZERkMKK+a3vSA+IHpoxK07ICM2REZECivmt74gPiB5xK1uOyAjNkRGRQor5re/ID4gbcOsOyAjNkRGRgor5riAID4gYsSTbjsgIzZFMDAKK+a4gSA+IHl1xIFuOyAjNkUwMQor5riCID4gd8OobjsgIzZFMDIKK+a4gyA+IHLDqDsgIzZFMDMKK+a4hCA+IGbEk2k7ICM2RTA0CivmuIUgPiBxxKtuZzsgIzZFMDUKK+a4hiA+IHl1xIFuOyAjNkUwNgor5riHID4ga8SVOyAjNkUwNwor5riIID4gasOsOyAjNkUwOAor5riJID4gc2jDqDsgIzZFMDkKK+a4iiA+IHl1xIFuOyAjNkUwQQor5riMID4gbMO5OyAjNkUwQwor5riNID4gesOsOyAjNkUwRAor5riOID4gZMO6OyAjNkUwRQor5riQID4gamnDoG47ICM2RTEwCivmuJEgPiBtxK1uOyAjNkUxMQor5riSID4gcMOsOyAjNkUxMgor5riUID4gecO6OyAjNkUxNAor5riVID4geXXEgW47ICM2RTE1CivmuJYgPiBzaMSVbjsgIzZFMTYKK+a4lyA+IHNow6huOyAjNkUxNwor5riYID4gcsOzdTsgIzZFMTgKK+a4mSA+IGh1w6BuOyAjNkUxOQor5riaID4gemjFrTsgIzZFMUEKK+a4myA+IGppxINuOyAjNkUxQgor5ricID4gbnXEg247ICM2RTFDCivmuJ0gPiB5w7o7ICM2RTFECivmuJ4gPiBxw611OyAjNkUxRQor5rifID4gdMOtbmc7ICM2RTFGCivmuKAgPiBxw7o7ICM2RTIwCivmuKEgPiBkw7k7ICM2RTIxCivmuKIgPiBmw6luZzsgIzZFMjIKK+a4oyA+IHpoxIE7ICM2RTIzCivmuKQgPiBiw7M7ICM2RTI0CivmuKUgPiB3w7I7ICM2RTI1CivmuKYgPiB3xY07ICM2RTI2CivmuKcgPiBkw6w7ICM2RTI3CivmuKggPiB3xJNpOyAjNkUyOAor5ripID4gd8STbjsgIzZFMjkKK+a4qiA+IHLDujsgIzZFMkEKK+a4qyA+IHhpw6g7ICM2RTJCCivmuKwgPiBjw6g7ICM2RTJDCivmuK0gPiB3w6hpOyAjNkUyRAor5riuID4gZ8STOyAjNkUyRQor5rivID4gZ8SDbmc7ICM2RTJGCivmuLAgPiB5xINuOyAjNkUzMAor5rixID4gaMOzbmc7ICM2RTMxCivmuLIgPiB4dcOgbjsgIzZFMzIKK+a4syA+IG3ErTsgIzZFMzMKK+a4tCA+IGvElTsgIzZFMzQKK+a4tSA+IG3DoW87ICM2RTM1CivmuLYgPiB5xKtuZzsgIzZFMzYKK+a4tyA+IHnEg247ICM2RTM3CivmuLggPiB5w7N1OyAjNkUzOAor5ri5ID4gaMWNbmc7ICM2RTM5CivmuLogPiBtacSDbzsgIzZFM0EKK+a4uyA+IHjErW5nOyAjNkUzQgor5ri8ID4gbcSVaTsgIzZFM0MKK+a4vSA+IHrEgWk7ICM2RTNECivmuL4gPiBow7puOyAjNkUzRQor5ri/ID4gbsOgaTsgIzZFM0YKK+a5gCA+IGvDumk7ICM2RTQwCivmuYEgPiBzaMOtOyAjNkU0MQor5rmCID4gw6g7ICM2RTQyCivmuYMgPiBww6BpOyAjNkU0Mwor5rmEID4gbcOpaTsgIzZFNDQKK+a5hSA+IGxpw6BuOyAjNkU0NQor5rmGID4gccOsOyAjNkU0Ngor5rmHID4gccOsOyAjNkU0Nwor5rmIID4gbcOpaTsgIzZFNDgKK+a5iSA+IHRpw6FuOyAjNkU0OQor5rmKID4gY8OydTsgIzZFNEEKK+a5iyA+IHfDqWk7ICM2RTRCCivmuYwgPiBjxIFuOyAjNkU0Qwor5rmNID4gdHXEgW47ICM2RTRECivmuY4gPiBtacSDbjsgIzZFNEUKK+a5jyA+IGjDuWk7ICM2RTRGCivmuZAgPiBtw7I7ICM2RTUwCivmuZEgPiB4xa07ICM2RTUxCivmuZIgPiBqw607ICM2RTUyCivmuZMgPiBww6luOyAjNkU1Mwor5rmUID4gamnEgW47ICM2RTU0CivmuZUgPiBqacSDbjsgIzZFNTUKK+a5liA+IGjDujsgIzZFNTYKK+a5lyA+IGbDqG5nOyAjNkU1Nwor5rmYID4geGnEgW5nOyAjNkU1OAor5rmZID4gecOsOyAjNkU1OQor5rmaID4gecOsbjsgIzZFNUEKK+a5myA+IHpow6BuOyAjNkU1Qgor5rmcID4gc2jDrTsgIzZFNUMKK+a5nSA+IGppxJM7ICM2RTVECivmuZ4gPiBjaMOpbmc7ICM2RTVFCivmuZ8gPiBodcOhbmc7ICM2RTVGCivmuaAgPiB0w6BuOyAjNkU2MAor5rmhID4gecO6OyAjNkU2MQor5rmiID4gYsOsOyAjNkU2Mgor5rmjID4gbcStbjsgIzZFNjMKK+a5pCA+IHNoxKs7ICM2RTY0CivmuaUgPiB0w7o7ICM2RTY1CivmuaYgPiBzaMSTbmc7ICM2RTY2CivmuacgPiB5xY9uZzsgIzZFNjcKK+a5qCA+IHHDuTsgIzZFNjgKK+a5qSA+IHpow7JuZzsgIzZFNjkKK+a5qiA+IHN1w6hpOyAjNkU2QQor5rmrID4gasSrdTsgIzZFNkIKK+a5rCA+IGppxINvOyAjNkU2Qwor5rmtID4gcWnDs3U7ICM2RTZECivmua4gPiB5xKtuOyAjNkU2RQor5rmvID4gdMSBbmc7ICM2RTZGCivmubAgPiBsw7NuZzsgIzZFNzAKK+a5sSA+IGjDuW87ICM2RTcxCivmubIgPiB5dcOhbjsgIzZFNzIKK+a5syA+IG7Eg247ICM2RTczCivmubQgPiBiw6BuOyAjNkU3NAor5rm1ID4gecWPdTsgIzZFNzUKK+a5tiA+IHF1w6FuOyAjNkU3Ngor5rm3ID4gY2jDumk7ICM2RTc3CivmubggPiBsacOgbmc7ICM2RTc4CivmubkgPiBjaMOhbjsgIzZFNzkKK+a5uiA+IHnDoW47ICM2RTdBCivmubsgPiBjaMO6bjsgIzZFN0IKK+a5vCA+IG5pw6g7ICM2RTdDCivmub0gPiB6xKs7ICM2RTdECivmub4gPiB3xIFuOyAjNkU3RQor5rm/ID4gc2jEqzsgIzZFN0YKK+a6gCA+IG3Eg247ICM2RTgwCivmuoEgPiB5w61uZzsgIzZFODEKK+a6gyA+IGvDuWk7ICM2RTgzCivmuoUgPiBqacOgbjsgIzZFODUKK+a6hiA+IHjDuTsgIzZFODYKK+a6hyA+IGzHmjsgIzZFODcKK+a6iCA+IGfFq2k7ICM2RTg4CivmuokgPiBnw6BpOyAjNkU4OQor5rqMID4gcMWNOyAjNkU4Qwor5rqNID4gasOsbjsgIzZFOEQKK+a6jiA+IGfDuWk7ICM2RThFCivmuo8gPiB0w6FuZzsgIzZFOEYKK+a6kCA+IHl1w6FuOyAjNkU5MAor5rqRID4gc8WtbzsgIzZFOTEKK+a6kiA+IHl1w6FuOyAjNkU5Mgor5rqTID4gbGnDoW47ICM2RTkzCivmupQgPiB5xINvOyAjNkU5NAor5rqVID4gbcOobmc7ICM2RTk1CivmupYgPiB6aMWtbjsgIzZFOTYKK+a6lyA+IHNow6luZzsgIzZFOTcKK+a6mCA+IGvDqDsgIzZFOTgKK+a6mSA+IHTDoGk7ICM2RTk5CivmupogPiBkw6E7ICM2RTlBCivmupsgPiB3xIE7ICM2RTlCCivmupwgPiBsxKt1OyAjNkU5Qwor5rqdID4gZ8WNdTsgIzZFOUQKK+a6niA+IHPEgW87ICM2RTlFCivmup8gPiBtw61uZzsgIzZFOUYKK+a6oCA+IHpow6A7ICM2RUEwCivmuqEgPiBzaMOtOyAjNkVBMQor5rqiID4gecOsOyAjNkVBMgor5rqjID4gbMO6bjsgIzZFQTMKK+a6pCA+IG3EgzsgIzZFQTQKK+a6pSA+IHDFrTsgIzZFQTUKK+a6piA+IHfDqWk7ICM2RUE2CivmuqcgPiBsw6w7ICM2RUE3CivmuqggPiBjw6FpOyAjNkVBOAor5rqpID4gd8O5OyAjNkVBOQor5rqqID4geMSrOyAjNkVBQQor5rqrID4gd8STbjsgIzZFQUIKK+a6rCA+IHFpxIFuZzsgIzZFQUMKK+a6rSA+IHrDqTsgIzZFQUQKK+a6riA+IHNoxKs7ICM2RUFFCivmuq8gPiBzw7k7ICM2RUFGCivmurAgPiB5xKs7ICM2RUIwCivmurEgPiB6aMSTbjsgIzZFQjEKK+a6siA+IHPFjXU7ICM2RUIyCivmurMgPiB5w7puOyAjNkVCMwor5rq0ID4geMOsdTsgIzZFQjQKK+a6tSA+IHnEq247ICM2RUI1CivmurYgPiByw7NuZzsgIzZFQjYKK+a6tyA+IGjDuW47ICM2RUI3CivmurggPiBzw7k7ICM2RUI4CivmurkgPiBzw7k7ICM2RUI5CivmurogPiBuw6w7ICM2RUJBCivmursgPiB0w6A7ICM2RUJCCivmurwgPiBzaMSrOyAjNkVCQwor5rq9ID4gcsO5OyAjNkVCRAor5rq+ID4gd8STaTsgIzZFQkUKK+a6vyA+IHDDoG47ICM2RUJGCivmu4AgPiBjaMO5OyAjNkVDMAor5ruBID4gY2jDujsgIzZFQzEKK+a7giA+IHDEgW5nOyAjNkVDMgor5ruDID4gd8SVbmc7ICM2RUMzCivmu4QgPiBjxIFuZzsgIzZFQzQKK+a7hSA+IG1pw6g7ICM2RUM1Civmu4YgPiBow6k7ICM2RUM2Civmu4cgPiBkacSBbjsgIzZFQzcKK+a7iCA+IGjDoG87ICM2RUM4Civmu4kgPiBodcSDbmc7ICM2RUM5Civmu4ogPiB4w6w7ICM2RUNBCivmu4sgPiB6xKs7ICM2RUNCCivmu4wgPiBkw607ICM2RUNDCivmu40gPiB6aMStOyAjNkVDRAor5ruOID4gecOtbmc7ICM2RUNFCivmu48gPiBmxa07ICM2RUNGCivmu5AgPiBqacOpOyAjNkVEMAor5ruRID4gaHXDoTsgIzZFRDEKK+a7kiA+IGfEkzsgIzZFRDIKK+a7kyA+IHrErTsgIzZFRDMKK+a7lCA+IHTEgW87ICM2RUQ0Civmu5UgPiB0w6luZzsgIzZFRDUKK+a7liA+IHPFq2k7ICM2RUQ2Civmu5cgPiBixK07ICM2RUQ3Civmu5ggPiBqacOgbzsgIzZFRDgKK+a7mSA+IGjDuWk7ICM2RUQ5Civmu5ogPiBnxa1uOyAjNkVEQQor5rubID4gecOtbjsgIzZFREIKK+a7nCA+IGfEgW87ICM2RURDCivmu50gPiBsw7NuZzsgIzZFREQKK+a7niA+IHpow6w7ICM2RURFCivmu58gPiB5w6BuOyAjNkVERgor5rugID4gc2jDqDsgIzZFRTAKK+a7oSA+IG3Eg247ICM2RUUxCivmu6IgPiB5w6xuZzsgIzZFRTIKK+a7oyA+IGNow7puOyAjNkVFMwor5rukID4gbMecOyAjNkVFNAor5rulID4gbMOgbjsgIzZFRTUKK+a7piA+IGx1w6FuOyAjNkVFNgor5ruoID4gYsSrbjsgIzZFRTgKK+a7qSA+IHTEgW47ICM2RUU5Civmu6ogPiB5w7k7ICM2RUVBCivmu6sgPiBzxY91OyAjNkVFQgor5rusID4gaMO5OyAjNkVFQwor5rutID4gYsOsOyAjNkVFRAor5ruuID4gYmnEgW87ICM2RUVFCivmu68gPiB6aMOsOyAjNkVFRgor5ruwID4gamnEg25nOyAjNkVGMAor5ruxID4ga8OydTsgIzZFRjEKK+a7siA+IHNow6huOyAjNkVGMgor5ruzID4gc2jEgW5nOyAjNkVGMwor5ru0ID4gZMSrOyAjNkVGNAor5ru1ID4gbcOsOyAjNkVGNQor5ru2ID4gw6FvOyAjNkVGNgor5ru3ID4gbMWtOyAjNkVGNwor5ru4ID4gaMWtOyAjNkVGOAor5ru5ID4gaMWrOyAjNkVGOQor5ru6ID4gecOzdTsgIzZFRkEKK+a7uyA+IGNoxINuOyAjNkVGQgor5ru8ID4gZsOgbjsgIzZFRkMKK+a7vSA+IHnDs25nOyAjNkVGRAor5ru+ID4gZ8WtbjsgIzZFRkUKK+a7vyA+IG3Eg247ICM2RUZGCivmvIAgPiBxw6xuZzsgIzZGMDAKK+a8gSA+IHnDujsgIzZGMDEKK+a8giA+IHBpxIFvOyAjNkYwMgor5ryDID4gasOtOyAjNkYwMwor5ryEID4gecOhOyAjNkYwNAor5ryFID4gamnEg287ICM2RjA1CivmvIYgPiBxxKs7ICM2RjA2CivmvIcgPiB4xK07ICM2RjA3CivmvIggPiBqw6w7ICM2RjA4CivmvIkgPiBsw7k7ICM2RjA5CivmvIogPiBsx5o7ICM2RjBBCivmvIsgPiBsw7NuZzsgIzZGMEIKK+a8jCA+IGrErW47ICM2RjBDCivmvI0gPiBnw7pvOyAjNkYwRAor5ryOID4gY8Ozbmc7ICM2RjBFCivmvI8gPiBsw7J1OyAjNkYwRgor5ryQID4gemjDrTsgIzZGMTAKK+a8kSA+IGfDoGk7ICM2RjExCivmvJIgPiBxacOhbmc7ICM2RjEyCivmvJMgPiBsw607ICM2RjEzCivmvJQgPiB5xINuOyAjNkYxNAor5ryVID4gY8OhbzsgIzZGMTUKK+a8liA+IGppw6BvOyAjNkYxNgor5ryXID4gY8WNbmc7ICM2RjE3CivmvJggPiBxw7puOyAjNkYxOAor5ryZID4gdHXDoW47ICM2RjE5CivmvJogPiDDsnU7ICM2RjFBCivmvJsgPiB0w6luZzsgIzZGMUIKK+a8nCA+IHnElTsgIzZGMUMKK+a8nSA+IHjDrTsgIzZGMUQKK+a8niA+IG3DrDsgIzZGMUUKK+a8nyA+IHTDoW5nOyAjNkYxRgor5rygID4gbcOyOyAjNkYyMAor5ryhID4gc2jEgW5nOyAjNkYyMQor5ryiID4gaMOgbjsgIzZGMjIKK+a8oyA+IGxpw6FuOyAjNkYyMwor5rykID4gbMSDbjsgIzZGMjQKK+a8pSA+IHfEgTsgIzZGMjUKK+a8piA+IGzDrTsgIzZGMjYKK+a8pyA+IHFpw6FuOyAjNkYyNwor5ryoID4gZsOpbmc7ICM2RjI4CivmvKkgPiB4dcOhbjsgIzZGMjkKK+a8qiA+IHnEqzsgIzZGMkEKK+a8qyA+IG3DoG47ICM2RjJCCivmvKwgPiB6w6w7ICM2RjJDCivmvK0gPiBtxINuZzsgIzZGMkQKK+a8riA+IGvEgW5nOyAjNkYyRQor5ryvID4gbMSVaTsgIzZGMkYKK+a8sCA+IHDEk25nOyAjNkYzMAor5ryxID4gc2jDuTsgIzZGMzEKK+a8siA+IHpoxINuZzsgIzZGMzIKK+a8syA+IHpoxIFuZzsgIzZGMzMKK+a8tCA+IGNow7NuZzsgIzZGMzQKK+a8tSA+IHjDuTsgIzZGMzUKK+a8tiA+IGh1w6BuOyAjNkYzNgor5ry3ID4ga8O5bzsgIzZGMzcKK+a8uCA+IGppw6BuOyAjNkYzOAor5ry5ID4gecSBbjsgIzZGMzkKK+a8uiA+IGNodcSDbmc7ICM2RjNBCivmvLsgPiBsacOhbzsgIzZGM0IKK+a8vCA+IGPFrWk7ICM2RjNDCivmvL0gPiB0w607ICM2RjNECivmvL4gPiB5w6BuZzsgIzZGM0UKK+a8vyA+IGppxIFuZzsgIzZGM0YKK+a9gCA+IGPDs25nOyAjNkY0MAor5r2BID4gecStbmc7ICM2RjQxCivmvYIgPiBow7NuZzsgIzZGNDIKK+a9gyA+IHjDum47ICM2RjQzCivmvYQgPiBzaMO5OyAjNkY0NAor5r2FID4gZ3XDoG47ICM2RjQ1CivmvYYgPiB5w61uZzsgIzZGNDYKK+a9hyA+IHhpxIFvOyAjNkY0Nwor5r2KID4geMO5OyAjNkY0QQor5r2LID4gbGnDoG47ICM2RjRCCivmvYwgPiB6aMOsOyAjNkY0Qwor5r2NID4gd8OpaTsgIzZGNEQKK+a9jiA+IHDDrDsgIzZGNEUKK+a9jyA+IGp1w6k7ICM2RjRGCivmvZAgPiBqacOgbzsgIzZGNTAKK+a9kSA+IHDFjTsgIzZGNTEKK+a9kiA+IGTDoG5nOyAjNkY1Mgor5r2TID4gaMO5aTsgIzZGNTMKK+a9lCA+IGppw6k7ICM2RjU0CivmvZUgPiB3xa07ICM2RjU1CivmvZYgPiBww6E7ICM2RjU2CivmvZcgPiBqw607ICM2RjU3CivmvZggPiBwxIFuOyAjNkY1OAor5r2ZID4gZ8O6aTsgIzZGNTkKK+a9miA+IHhpxIFvOyAjNkY1QQor5r2bID4gcWnDoW47ICM2RjVCCivmvZwgPiBxacOhbjsgIzZGNUMKK+a9nSA+IHjEqzsgIzZGNUQKK+a9niA+IGzDuTsgIzZGNUUKK+a9nyA+IHjDrDsgIzZGNUYKK+a9oCA+IHh1w6BuOyAjNkY2MAor5r2hID4gZMO5bjsgIzZGNjEKK+a9oiA+IGh1w6FuZzsgIzZGNjIKK+a9oyA+IG3ErW47ICM2RjYzCivmvaQgPiByw7luOyAjNkY2NAor5r2lID4gc8O5OyAjNkY2NQor5r2mID4gbGnDoW87ICM2RjY2CivmvacgPiB6aMSTbjsgIzZGNjcKK+a9qCA+IHpoxY1uZzsgIzZGNjgKK+a9qSA+IHnDrDsgIzZGNjkKK+a9qiA+IGTDrTsgIzZGNkEKK+a9qyA+IHfEgW47ICM2RjZCCivmvawgPiBkw6BuOyAjNkY2Qwor5r2tID4gdMOhbjsgIzZGNkQKK+a9riA+IGNow6FvOyAjNkY2RQor5r2vID4geMO6bjsgIzZGNkYKK+a9sCA+IGvDuWk7ICM2RjcwCivmvbEgPiB5aWU7ICM2RjcxCivmvbIgPiBzaMOgbzsgIzZGNzIKK+a9syA+IHTDujsgIzZGNzMKK+a9tCA+IHpoxas7ICM2Rjc0CivmvbUgPiBzw6BuOyAjNkY3NQor5r22ID4gaMSTaTsgIzZGNzYKK+a9tyA+IGLErTsgIzZGNzcKK+a9uCA+IHNoxIFuOyAjNkY3OAor5r25ID4gY2jDoW47ICM2Rjc5CivmvbogPiBjaMOhbjsgIzZGN0EKK+a9uyA+IHNoxa07ICM2RjdCCivmvbwgPiB0w7NuZzsgIzZGN0MKK+a9vSA+IHDFrTsgIzZGN0QKK+a9viA+IGzDrW47ICM2RjdFCivmvb8gPiB3w6lpOyAjNkY3Rgor5r6AID4gc8OoOyAjNkY4MAor5r6BID4gc8OoOyAjNkY4MQor5r6CID4gY2jDqW5nOyAjNkY4Mgor5r6DID4gasOsb25nOyAjNkY4Mwor5r6EID4gY2jDqW5nOyAjNkY4NAor5r6FID4gaHXDoDsgIzZGODUKK+a+hiA+IGppxIFvOyAjNkY4Ngor5r6HID4gbMOgbzsgIzZGODcKK+a+iCA+IGNow6g7ICM2Rjg4CivmvokgPiBnxINuOyAjNkY4OQor5r6KID4gY8WrbjsgIzZGOEEKK+a+iyA+IGjDqG5nOyAjNkY4Qgor5r6MID4gc8SrOyAjNkY4Qwor5r6NID4gc2jDuTsgIzZGOEQKK+a+jiA+IHDDqW5nOyAjNkY4RQor5r6PID4gaMOgbjsgIzZGOEYKK+a+kCA+IHnDum47ICM2RjkwCivmvpEgPiBsw6x1OyAjNkY5MQor5r6SID4gaMOybmc7ICM2RjkyCivmvpMgPiBmw7o7ICM2RjkzCivmvpQgPiBow6BvOyAjNkY5NAor5r6VID4gaMOpOyAjNkY5NQor5r6WID4geGnEgW47ICM2Rjk2CivmvpcgPiBqacOgbjsgIzZGOTcKK+a+mCA+IHNoxIFuOyAjNkY5OAor5r6ZID4geMOsOyAjNkY5OQor5r6cID4gbMOhbjsgIzZGOUMKK+a+niA+IHnDujsgIzZGOUUKK+a+nyA+IGzErW47ICM2RjlGCivmvqAgPiBtxK1uOyAjNkZBMAor5r6hID4gesSDbzsgIzZGQTEKK+a+oiA+IGTEgW5nOyAjNkZBMgor5r6jID4gd8SDbjsgIzZGQTMKK+a+pCA+IHrDqTsgIzZGQTQKK+a+pSA+IHhpw6g7ICM2RkE1CivmvqYgPiB5w7k7ICM2RkE2CivmvqcgPiBsxK07ICM2RkE3CivmvqggPiBzaMOsOyAjNkZBOAor5r6pID4geHXDqTsgIzZGQTkKK+a+qiA+IGzDrW5nOyAjNkZBQQor5r6rID4gbcOgbjsgIzZGQUIKK+a+rCA+IHrEqzsgIzZGQUMKK+a+rSA+IHnFjW5nOyAjNkZBRAor5r6uID4ga3XDoGk7ICM2RkFFCivmvq8gPiBjw6BuOyAjNkZBRgor5r6wID4gbGnDoG47ICM2RkIwCivmvrEgPiBkacOgbjsgIzZGQjEKK+a+siA+IHnDqDsgIzZGQjIKK+a+syA+IMOgbzsgIzZGQjMKK+a+tCA+IGh1w6FuOyAjNkZCNAor5r61ID4gemjEk247ICM2RkI1CivmvrYgPiBjaMOhbjsgIzZGQjYKK+a+tyA+IG3DoG47ICM2RkI3CivmvrggPiBkxINuOyAjNkZCOAor5r65ID4gZMOgbjsgIzZGQjkKK+a+uiA+IHnDrDsgIzZGQkEKK+a+uyA+IHPDuWk7ICM2RkJCCivmvrwgPiBww6w7ICM2RkJDCivmvr0gPiBqw7k7ICM2RkJECivmvr4gPiB0w6A7ICM2RkJFCivmvr8gPiBxw61uOyAjNkZCRgor5r+AID4gasSrOyAjNkZDMAor5r+BID4gemjDum87ICM2RkMxCivmv4IgPiBsacOhbjsgIzZGQzIKK+a/gyA+IG7Ds25nOyAjNkZDMwor5r+EID4gZ8WrbzsgIzZGQzQKK+a/hSA+IGrDrG47ICM2RkM1Civmv4YgPiBmw6luOyAjNkZDNgor5r+HID4gc8OoOyAjNkZDNwor5r+IID4gasOtOyAjNkZDOAor5r+JID4gc8WraTsgIzZGQzkKK+a/iiA+IGjDuWk7ICM2RkNBCivmv4sgPiBjaMWtOyAjNkZDQgor5r+MID4gdMOgOyAjNkZDQwor5r+NID4gc8WNbmc7ICM2RkNECivmv44gPiBkxK1uZzsgIzZGQ0UKK+a/kCA+IHpoxa07ICM2RkQwCivmv5EgPiBsw6BpOyAjNkZEMQor5r+SID4gYsSrbjsgIzZGRDIKK+a/kyA+IGxpw6FuOyAjNkZEMwor5r+UID4gbcStOyAjNkZENAor5r+VID4gc2jEqzsgIzZGRDUKK+a/liA+IHNow7k7ICM2RkQ2Civmv5cgPiBtw6w7ICM2RkQ3Civmv5ggPiBuw6xuZzsgIzZGRDgKK+a/mSA+IHnDrW5nOyAjNkZEOQor5r+aID4gecOtbmc7ICM2RkRBCivmv5sgPiBtw6luZzsgIzZGREIKK+a/nCA+IGrDrG47ICM2RkRDCivmv50gPiBxw607ICM2RkRECivmv54gPiBww6w7ICM2RkRFCivmv58gPiBqw6w7ICM2RkRGCivmv6AgPiBow6FvOyAjNkZFMAor5r+hID4gcsO6OyAjNkZFMQor5r+iID4gesWtaTsgIzZGRTIKK+a/oyA+IHfDsjsgIzZGRTMKK+a/pCA+IHTEgW87ICM2RkU0Civmv6UgPiB5w6xuOyAjNkZFNQor5r+mID4gecStbjsgIzZGRTYKK+a/pyA+IGTDuWk7ICM2RkU3Civmv6ggPiBjw607ICM2RkU4Civmv6kgPiBow7lvOyAjNkZFOQor5r+qID4gasOsbmc7ICM2RkVBCivmv6sgPiBsw6BuOyAjNkZFQgor5r+sID4gasO5bjsgIzZGRUMKK+a/rSA+IMOgaTsgIzZGRUQKK+a/riA+IHDFqzsgIzZGRUUKK+a/ryA+IHpow7pvOyAjNkZFRgor5r+wID4gd8OpaTsgIzZGRjAKK+a/sSA+IGLEq247ICM2RkYxCivmv7IgPiBnxa07ICM2RkYyCivmv7MgPiBxacOhbjsgIzZGRjMKK+a/tCA+IHjDrW5nOyAjNkZGNAor5r+2ID4ga8O5bzsgIzZGRjYKK+a/tyA+IGbDqGk7ICM2RkY3Civmv7ogPiBqacOgbjsgIzZGRkEKK+a/uyA+IHfElWk7ICM2RkZCCivmv7wgPiBsw7lvOyAjNkZGQwor5r+9ID4gesOgbjsgIzZGRkQKK+a/viA+IGzHnDsgIzZGRkUKK+a/vyA+IGzDrDsgIzZGRkYKK+eAgCA+IHnFjXU7ICM3MDAwCivngIEgPiB5w6BuZzsgIzcwMDEKK+eAgiA+IGzFrTsgIzcwMDIKK+eAgyA+IHPDrDsgIzcwMDMKK+eAhCA+IGppw6k7ICM3MDA0CivngIUgPiB5w6xuZzsgIzcwMDUKK+eAhiA+IGTDujsgIzcwMDYKK+eAhyA+IHfEg25nOyAjNzAwNwor54CIID4gaMWraTsgIzcwMDgKK+eAiSA+IHhpw6g7ICM3MDA5CivngIogPiBww6FuOyAjNzAwQQor54CLID4gc2jElW47ICM3MDBCCivngIwgPiBiacSBbzsgIzcwMEMKK+eAjSA+IGNow6FuOyAjNzAwRAor54COID4gbcOyOyAjNzAwRQor54CPID4gbMOtdTsgIzcwMEYKK+eAkCA+IGppxIFuOyAjNzAxMAor54CRID4gcMO5OyAjNzAxMQor54CSID4gc8OoOyAjNzAxMgor54CTID4gY2jDqW5nOyAjNzAxMwor54CUID4gZ8WtOyAjNzAxNAor54CVID4gYsSrbjsgIzcwMTUKK+eAliA+IGjDuW87ICM3MDE2CivngJcgPiB4acOgbjsgIzcwMTcKK+eAmCA+IGzDujsgIzcwMTgKK+eAmSA+IHHEq247ICM3MDE5CivngJogPiBow6BuOyAjNzAxQQor54CbID4gecOtbmc7ICM3MDFCCivngJwgPiB5xY1uZzsgIzcwMUMKK+eAnSA+IGzDrDsgIzcwMUQKK+eAniA+IGrDrG5nOyAjNzAxRQor54CfID4geGnEgW87ICM3MDFGCivngKAgPiB5w61uZzsgIzcwMjAKK+eAoSA+IHPFrWk7ICM3MDIxCivngKIgPiB3w6lpOyAjNzAyMgor54CjID4geGnDqDsgIzcwMjMKK+eApCA+IGh1w6FpOyAjNzAyNAor54ClID4gaMOgbzsgIzcwMjUKK+eApiA+IHpoxas7ICM3MDI2CivngKcgPiBsw7NuZzsgIzcwMjcKK+eAqCA+IGzDoGk7ICM3MDI4CivngKkgPiBkw7lpOyAjNzAyOQor54CqID4gZsOhbjsgIzcwMkEKK+eAqyA+IGjDujsgIzcwMkIKK+eArCA+IGzDoGk7ICM3MDJDCivngK8gPiB5w61uZzsgIzcwMkYKK+eAsCA+IG3DrTsgIzcwMzAKK+eAsSA+IGrDrDsgIzcwMzEKK+eAsiA+IGxpw6BuOyAjNzAzMgor54CzID4gamnDoG47ICM3MDMzCivngLQgPiB5xK1uZzsgIzcwMzQKK+eAtSA+IGbDqG47ICM3MDM1CivngLYgPiBsw61uOyAjNzAzNgor54C3ID4gecOsOyAjNzAzNwor54C4ID4gamnEgW47ICM3MDM4CivngLkgPiB5dcOoOyAjNzAzOQor54C6ID4gY2jDoW47ICM3MDNBCivngLsgPiBkw6BpOyAjNzAzQgor54C8ID4gcsOhbmc7ICM3MDNDCivngL0gPiBqacSDbjsgIzcwM0QKK+eAviA+IGzDoW47ICM3MDNFCivngL8gPiBmw6FuOyAjNzAzRgor54GAID4gc2h1w6BuZzsgIzcwNDAKK+eBgSA+IHl1xIFuOyAjNzA0MQor54GCID4gemjDum87ICM3MDQyCivngYMgPiBmxJNuZzsgIzcwNDMKK+eBhCA+IHNow6g7ICM3MDQ0CivngYUgPiBsxJVpOyAjNzA0NQor54GGID4gbMOhbjsgIzcwNDYKK+eBhyA+IGPDs25nOyAjNzA0Nwor54GIID4gccO6OyAjNzA0OAor54GJID4gecWNbmc7ICM3MDQ5CivngYogPiBxacOhbjsgIzcwNEEKK+eBiyA+IGbEgzsgIzcwNEIKK+eBjCA+IGd1w6BuOyAjNzA0Qwor54GNID4gcXXDqDsgIzcwNEQKK+eBjiA+IHnDoG47ICM3MDRFCivngY8gPiBow6BvOyAjNzA0Rgor54GRID4gc8SDOyAjNzA1MQor54GSID4gesOgbjsgIzcwNTIKK+eBkyA+IGx1w6FuOyAjNzA1Mwor54GUID4gecOgbjsgIzcwNTQKK+eBlSA+IGzDrTsgIzcwNTUKK+eBliA+IG3ErTsgIzcwNTYKK+eBlyA+IHNow6BuOyAjNzA1Nwor54GYID4gdMSBbjsgIzcwNTgKK+eBmSA+IGTEg25nOyAjNzA1OQor54GaID4gamnEg287ICM3MDVBCivngZsgPiBjaMSDbjsgIzcwNUIKK+eBnSA+IGjDoG87ICM3MDVECivngZ4gPiBiw6A7ICM3MDVFCivngZ8gPiB6aMO6OyAjNzA1Rgor54GgID4gbMSDbjsgIzcwNjAKK+eBoSA+IGzDoW47ICM3MDYxCivngaIgPiBuxINuZzsgIzcwNjIKK+eBoyA+IHfEgW47ICM3MDYzCivngaQgPiBsdcOhbjsgIzcwNjQKK+eBpSA+IHjDum47ICM3MDY1CivngaYgPiB4acSDbjsgIzcwNjYKK+eBpyA+IHnDoG47ICM3MDY3CivngaggPiBnxINuOyAjNzA2OAor54GpID4gecOgbjsgIzcwNjkKK+eBqiA+IHnDuTsgIzcwNkEKK+eBqyA+IGjFrW87ICM3MDZCCivngawgPiBzw6wnICdkacSDbicgJ2jFrW87ICM3MDZDCivnga0gPiBtacOoOyAjNzA2RAor54GuID4gZ3XEgW5nOyAjNzA2RQor54GvID4gZMSTbmc7ICM3MDZGCivngbAgPiBoxatpOyAjNzA3MAor54GxID4geGnEgW87ICM3MDcxCivngbIgPiB4acSBbzsgIzcwNzIKK+eBsyA+IGjFqzE7ICM3MDczCivngbQgPiBow7NuZzsgIzcwNzQKK+eBtSA+IGzDrW5nOyAjNzA3NQor54G2ID4gesOgbzsgIzcwNzYKK+eBtyA+IHpodcOgbjsgIzcwNzcKK+eBuCA+IGrErXU7ICM3MDc4CivngbkgPiB6aMOgOyAjNzA3OQor54G6ID4geGnDqDsgIzcwN0EKK+eBuyA+IGNow6w7ICM3MDdCCivngbwgPiB6aMO6bzsgIzcwN0MKK+eBvSA+IHrEgWk7ICM3MDdECivngb4gPiB6xIFpOyAjNzA3RQor54G/ID4gY8OgbjsgIzcwN0YKK+eCgCA+IHnDoW5nOyAjNzA4MAor54KBID4gccOsOyAjNzA4MQor54KCID4gemjFjW5nOyAjNzA4Mgor54KDID4gZsOpbjsgIzcwODMKK+eChCA+IG7ErXU7ICM3MDg0CivngoUgPiBqxK1vbmc7ICM3MDg1CivngoYgPiB3w6luOyAjNzA4Ngor54KHID4gcMOyOyAjNzA4Nwor54KIID4gecOsOyAjNzA4OAor54KJID4gbMO6OyAjNzA4OQor54KKID4gY2jFq2k7ICM3MDhBCivngosgPiBwxKs7ICM3MDhCCivngowgPiBrw6BpOyAjNzA4Qwor54KNID4gcMOgbjsgIzcwOEQKK+eCjiA+IHnDoW47ICM3MDhFCivngo8gPiBrw6BpOyAjNzA4Rgor54KQID4gcMOgbmc7ICM3MDkwCivngpEgPiBtw7k7ICM3MDkxCivngpIgPiBjaMSDbzsgIzcwOTIKK+eCkyA+IGxpw6BvOyAjNzA5Mwor54KUID4gZ8O5aTsgIzcwOTQKK+eClSA+IGvDoG5nOyAjNzA5NQor54KWID4gdMWrbjsgIzcwOTYKK+eClyA+IGd1xIFuZzsgIzcwOTcKK+eCmCA+IHjEq247ICM3MDk4CivngpkgPiB6aMOsOyAjNzA5OQor54KaID4gZ3Vhbmc7ICM3MDlBCivngpsgPiBndcSBbmc7ICM3MDlCCivngpwgPiB3xJVpOyAjNzA5Qwor54KdID4gcWnDoG5nOyAjNzA5RAor54KfID4gZMOhOyAjNzA5Rgor54KgID4geGnDoTsgIzcwQTAKK+eCoSA+IHpoxJNuZzsgIzcwQTEKK+eCoiA+IHpow7o7ICM3MEEyCivngqMgPiBrxJU7ICM3MEEzCivngqQgPiB6aMOgbzsgIzcwQTQKK+eCpSA+IGbDujsgIzcwQTUKK+eCpiA+IGLDoTsgIzcwQTYKK+eCpyA+IGTDuW87ICM3MEE3CivngqggPiBkw7lvOyAjNzBBOAor54KpID4gbMOsbmc7ICM3MEE5CivngqogPiB6aMO6bzsgIzcwQUEKK+eCqyA+IHh1w6BuOyAjNzBBQgor54KsID4gasO5OyAjNzBBQwor54KtID4gdMOgbjsgIzcwQUQKK+eCriA+IHDDoG87ICM3MEFFCivngq8gPiBqxK1vbmc7ICM3MEFGCivngrAgPiBww6FvOyAjNzBCMAor54KxID4gdMOhaTsgIzcwQjEKK+eCsiA+IHTDoWk7ICM3MEIyCivngrMgPiBixK1uZzsgIzcwQjMKK+eCtCA+IHnEg25nOyAjNzBCNAor54K1ID4gdMWNbmc7ICM3MEI1CivngrYgPiBoxIFuOyAjNzBCNgor54K3ID4gemjDuTsgIzcwQjcKK+eCuCA+IHpow6A7ICM3MEI4CivngrkgPiBkacSDbjsgIzcwQjkKK+eCuiA+IHfDqGk7ICM3MEJBCivngrsgPiBzaMOtOyAjNzBCQgor54K8ID4gbGnDoG47ICM3MEJDCivngr0gPiBjaMOsOyAjNzBCRAor54K+ID4gaHXEg25nOyAjNzBCRQor54OAID4gaMWrOyAjNzBDMAor54OBID4gc2jDuW87ICM3MEMxCivng4IgPiBsw6BuOyAjNzBDMgor54ODID4gasStbmc7ICM3MEMzCivng4QgPiBqacSDbzsgIzcwQzQKK+eDhSA+IHjDuTsgIzcwQzUKK+eDhiA+IHjDrW5nOyAjNzBDNgor54OHID4gcXXDoG47ICM3MEM3Civng4ggPiBsacOoOyAjNzBDOAor54OJID4gaHXDoG47ICM3MEM5Civng4ogPiB5w6FuZzsgIzcwQ0EKK+eDiyA+IHhpxIFvOyAjNzBDQgor54OMID4geMSrdTsgIzcwQ0MKK+eDjSA+IHhpxINuOyAjNzBDRAor54OOID4gecOtbjsgIzcwQ0UKK+eDjyA+IHfFqzsgIzcwQ0YKK+eDkCA+IHpoxY11OyAjNzBEMAor54ORID4gecOhbzsgIzcwRDEKK+eDkiA+IHNow6w7ICM3MEQyCivng5MgPiB3xJNpOyAjNzBEMwor54OUID4gdMOzbmc7ICM3MEQ0Civng5UgPiB4dcOoOyAjNzBENQor54OWID4gesSBaTsgIzcwRDYKK+eDlyA+IGvDoGk7ICM3MEQ3Civng5ggPiBoxY1uZzsgIzcwRDgKK+eDmSA+IGzDuW87ICM3MEQ5Civng5ogPiB4acOhOyAjNzBEQQor54ObID4gemjDujsgIzcwREIKK+eDnCA+IHh1xINuOyAjNzBEQwor54OdID4gemjEk25nOyAjNzBERAor54OeID4gcMOyOyAjNzBERQor54OfID4gecSBbjsgIzcwREYKK+eDoCA+IGjFrWk7ICM3MEUwCivng6EgPiBndcSBbmc7ICM3MEUxCivng6IgPiB6aMOoOyAjNzBFMgor54OjID4gaMWraTsgIzcwRTMKK+eDpCA+IGvEg287ICM3MEU0Civng6YgPiBmw6FuOyAjNzBFNgor54OnID4gc2jEgW87ICM3MEU3Civng6ggPiB5w6g7ICM3MEU4Civng6kgPiBow7lpOyAjNzBFOQor54OrID4gdMOgbmc7ICM3MEVCCivng6wgPiBqw6xuOyAjNzBFQwor54OtID4gcsOoOyAjNzBFRAor54OvID4geMSrOyAjNzBFRgor54OwID4gZsO6OyAjNzBGMAor54OxID4gasStb25nOyAjNzBGMQor54OyID4gY2jDqDsgIzcwRjIKK+eDsyA+IHDFrTsgIzcwRjMKK+eDtCA+IGrErW5nOyAjNzBGNAor54O1ID4gemjDum87ICM3MEY1Civng7YgPiB0xK1uZzsgIzcwRjYKK+eDtyA+IHfDoW47ICM3MEY3Civng7ggPiBoxINpOyAjNzBGOAor54O5ID4gcMSTbmc7ICM3MEY5Civng7ogPiBsxINuZzsgIzcwRkEKK+eDuyA+IHNoxIFuOyAjNzBGQgor54O8ID4gaMWrOyAjNzBGQwor54O9ID4gZsSTbmc7ICM3MEZECivng74gPiBjaMOsOyAjNzBGRQor54O/ID4gcsOzbmc7ICM3MEZGCivnhIAgPiBow7o7ICM3MTAwCivnhIEgPiB4aTsgIzcxMDEKK+eEgiA+IHNow7o7ICM3MTAyCivnhIMgPiBow6g7ICM3MTAzCivnhIQgPiB4xatuOyAjNzEwNAor54SFID4ga8O5OyAjNzEwNQor54SGID4ganXDqTsgIzcxMDYKK+eEhyA+IHhpxIFvOyAjNzEwNwor54SIID4geMSrOyAjNzEwOAor54SJID4gecSBbjsgIzcxMDkKK+eEiiA+IGjDoG47ICM3MTBBCivnhIsgPiB6aHXDoG5nOyAjNzEwQgor54SMID4gasO5bjsgIzcxMEMKK+eEjSA+IGTDrDsgIzcxMEQKK+eEjiA+IHhpw6g7ICM3MTBFCivnhI8gPiBqw607ICM3MTBGCivnhJAgPiB3w7k7ICM3MTEwCivnhJMgPiBow6FuOyAjNzExMwor54SUID4gecOgbjsgIzcxMTQKK+eElSA+IGh1w6BuOyAjNzExNQor54SWID4gbcOobjsgIzcxMTYKK+eElyA+IGrDujsgIzcxMTcKK+eEmCA+IGNow7N1OyAjNzExOAor54SZID4gYsOoaTsgIzcxMTkKK+eEmiA+IGbDqW47ICM3MTFBCivnhJsgPiBsw6xuOyAjNzExQgor54ScID4ga8WrbjsgIzcxMUMKK+eEnSA+IGjDuW47ICM3MTFECivnhJ4gPiB0xatuOyAjNzExRQor54SfID4geMOtOyAjNzExRgor54SgID4gY8O5aTsgIzcxMjAKK+eEoSA+IHfDujsgIzcxMjEKK+eEoiA+IGjFjW5nOyAjNzEyMgor54SjID4gasO5OyAjNzEyMwor54SkID4gZsWtOyAjNzEyNAor54SlID4gd8OyOyAjNzEyNQor54SmID4gamnEgW87ICM3MTI2CivnhKcgPiBjxY1uZzsgIzcxMjcKK+eEqCA+IGbDqG5nOyAjNzEyOAor54SpID4gcMSrbmc7ICM3MTI5CivnhKogPiBxxKtvbmc7ICM3MTJBCivnhKsgPiByw7lvOyAjNzEyQgor54SsID4geMOtOyAjNzEyQwor54StID4gccOtb25nOyAjNzEyRAor54SuID4geMOsbjsgIzcxMkUKK+eEryA+IHpow7pvOyAjNzEyRgor54SwID4gecOgbjsgIzcxMzAKK+eEsSA+IHnDoG47ICM3MTMxCivnhLIgPiB5w6w7ICM3MTMyCivnhLMgPiBqdcOpOyAjNzEzMwor54S0ID4gecO5OyAjNzEzNAor54S1ID4gZ8Ogbmc7ICM3MTM1CivnhLYgPiByw6FuOyAjNzEzNgor54S3ID4gcMOtOyAjNzEzNwor54S4ID4gZ8WtOyAjNzEzOAor54S6ID4gc2jEk25nOyAjNzEzQQor54S7ID4gY2jDoG5nOyAjNzEzQgor54S8ID4gc2jEgW87ICM3MTNDCivnhYEgPiBjaMOpbjsgIzcxNDEKK+eFgiA+IGjDqDsgIzcxNDIKK+eFgyA+IGvFrWk7ICM3MTQzCivnhYQgPiB6aMWNbmc7ICM3MTQ0CivnhYUgPiBkdcOgbjsgIzcxNDUKK+eFhiA+IHhpxIE7ICM3MTQ2CivnhYcgPiBoxatpOyAjNzE0Nwor54WIID4gZsOobmc7ICM3MTQ4CivnhYkgPiBsacOgbjsgIzcxNDkKK+eFiiA+IHh1xIFuOyAjNzE0QQor54WLID4geMSrbmc7ICM3MTRCCivnhYwgPiBodcOhbmc7ICM3MTRDCivnhY0gPiBqacSDbzsgIzcxNEQKK+eFjiA+IGppxIFuOyAjNzE0RQor54WPID4gYsOsOyAjNzE0Rgor54WQID4gecSrbmc7ICM3MTUwCivnhZEgPiB6aMWtOyAjNzE1MQor54WSID4gd8SVaTsgIzcxNTIKK+eFkyA+IHR1xIFuOyAjNzE1Mwor54WUID4gdGnDoG47ICM3MTU0CivnhZUgPiB4xKs7ICM3MTU1CivnhZYgPiBudcSDbjsgIzcxNTYKK+eFlyA+IG51xINuOyAjNzE1Nwor54WYID4gY2jDoW47ICM3MTU4CivnhZkgPiB5xIFuOyAjNzE1OQor54WaID4gasStb25nOyAjNzE1QQor54WbID4gasStb25nOyAjNzE1Qgor54WcID4gecO5OyAjNzE1Qwor54WdID4gbcOoaTsgIzcxNUQKK+eFniA+IHNow6A7ICM3MTVFCivnhZ8gPiB3w6hpOyAjNzE1Rgor54WgID4gecOoOyAjNzE2MAor54WhID4geMOsbjsgIzcxNjEKK+eFoiA+IHHDrW9uZzsgIzcxNjIKK+eFoyA+IHLFj3U7ICM3MTYzCivnhaQgPiBtw6lpOyAjNzE2NAor54WlID4gaHXDoG47ICM3MTY1CivnhaYgPiB4xa07ICM3MTY2CivnhacgPiB6aMOgbzsgIzcxNjcKK+eFqCA+IHfEk2k7ICM3MTY4CivnhakgPiBmw6FuOyAjNzE2OQor54WqID4gccOtdTsgIzcxNkEKK+eFqyA+IHPDuWk7ICM3MTZCCivnhawgPiB5w6FuZzsgIzcxNkMKK+eFrSA+IGxpw6g7ICM3MTZECivnha4gPiB6aMWtOyAjNzE2RQor54WvID4gamllOyAjNzE2Rgor54WwID4gZ8OgbzsgIzcxNzAKK+eFsSA+IGd1xIE7ICM3MTcxCivnhbIgPiBiw6BvOyAjNzE3Mgor54WzID4gaMO6OyAjNzE3Mwor54W0ID4gecWrbjsgIzcxNzQKK+eFtSA+IHhpxIE7ICM3MTc1CivnhbggPiBiacSBbjsgIzcxNzgKK+eFuSA+IGfDsnU7ICM3MTc5CivnhbogPiB0w7lpOyAjNzE3QQor54W7ID4gdMOhbmc7ICM3MTdCCivnhbwgPiBjaMSDbzsgIzcxN0MKK+eFvSA+IHNoxIFuOyAjNzE3RAor54W+ID4gbjsgIzcxN0UKK+eFvyA+IGLDszsgIzcxN0YKK+eGgCA+IGh1xINuZzsgIzcxODAKK+eGgSA+IHhpw6k7ICM3MTgxCivnhoIgPiB4w6w7ICM3MTgyCivnhoMgPiB3w7k7ICM3MTgzCivnhoQgPiB4w607ICM3MTg0CivnhoUgPiB5w7puOyAjNzE4NQor54aGID4gaMOpOyAjNzE4Ngor54aHID4gaMOoOyAjNzE4Nwor54aIID4geMSrOyAjNzE4OAor54aJID4gecO6bjsgIzcxODkKK+eGiiA+IHjDrW9uZzsgIzcxOEEKK+eGiyA+IG7DoWk7ICM3MThCCivnhowgPiBzaMOgbjsgIzcxOEMKK+eGjSA+IHFpb25nOyAjNzE4RAor54aOID4gecOgbzsgIzcxOEUKK+eGjyA+IHjFq247ICM3MThGCivnhpAgPiBtw6w7ICM3MTkwCivnhpEgPiBsacOhbjsgIzcxOTEKK+eGkiA+IHnDrW5nOyAjNzE5Mgor54aTID4gd8OobjsgIzcxOTMKK+eGlCA+IHLDs25nOyAjNzE5NAor54aXID4gcWnDoG5nOyAjNzE5Nwor54aYID4gbMSrdTsgIzcxOTgKK+eGmSA+IHjEqzsgIzcxOTkKK+eGmiA+IGLDrDsgIzcxOUEKK+eGmyA+IGJpxIFvOyAjNzE5Qgor54acID4gesWPbmc7ICM3MTlDCivnhp0gPiBsw7k7ICM3MTlECivnhp4gPiBqacSBbjsgIzcxOUUKK+eGnyA+IHNow7N1OyAjNzE5Rgor54agID4gecOsOyAjNzFBMAor54ahID4gbMOzdTsgIzcxQTEKK+eGoiA+IGbEk25nOyAjNzFBMgor54ajID4gc8WraTsgIzcxQTMKK+eGpCA+IHnDrDsgIzcxQTQKK+eGpSA+IHTFjW5nOyAjNzFBNQor54amID4ganXDqTsgIzcxQTYKK+eGpyA+IHrFjW5nOyAjNzFBNwor54aoID4gecO5bjsgIzcxQTgKK+eGqSA+IGjDuTsgIzcxQTkKK+eGqiA+IHnDrTsgIzcxQUEKK+eGqyA+IHpow6w7ICM3MUFCCivnhqwgPiDDoW87ICM3MUFDCivnhq0gPiB3w6hpOyAjNzFBRAor54auID4gbGnDoW87ICM3MUFFCivnhq8gPiBow6BuOyAjNzFBRgor54awID4gxY11OyAjNzFCMAor54axID4gcsOoOyAjNzFCMQor54ayID4gasStb25nOyAjNzFCMgor54azID4gbcOgbjsgIzcxQjMKK+eGtSA+IHNoxIFuZzsgIzcxQjUKK+eGtiA+IGN1w6BuOyAjNzFCNgor54a3ID4gesSTbmc7ICM3MUI3CivnhrggPiBqacSBbjsgIzcxQjgKK+eGuSA+IHjEqzsgIzcxQjkKK+eGuiA+IHjEqzsgIzcxQkEKK+eGuyA+IHjEqzsgIzcxQkIKK+eGvCA+IHnDrDsgIzcxQkMKK+eGvSA+IHhpw6BvOyAjNzFCRAor54a+ID4gY2jDrDsgIzcxQkUKK+eGvyA+IGh1w6FuZzsgIzcxQkYKK+eHgCA+IGNoxINuOyAjNzFDMAor54eBID4gecOoOyAjNzFDMQor54eCID4gcWnDoW47ICM3MUMyCivnh4MgPiByw6FuOyAjNzFDMwor54eEID4gecOgbjsgIzcxQzQKK+eHhSA+IHhpw6FuOyAjNzFDNQor54eGID4gcWnDoW87ICM3MUM2Civnh4cgPiB6w7luOyAjNzFDNwor54eIID4gZMSTbmc7ICM3MUM4Civnh4kgPiBkw7luOyAjNzFDOQor54eKID4gc2jEk247ICM3MUNBCivnh4sgPiBqacSBbzsgIzcxQ0IKK+eHjCA+IGbDqW47ICM3MUNDCivnh40gPiBzxKs7ICM3MUNECivnh44gPiBsacOgbzsgIzcxQ0UKK+eHjyA+IHnDuTsgIzcxQ0YKK+eHkCA+IGzDrW47ICM3MUQwCivnh5EgPiB0w7NuZzsgIzcxRDEKK+eHkiA+IHNoxIFvOyAjNzFEMgor54eTID4gZsSTbjsgIzcxRDMKK+eHlCA+IGbDoW47ICM3MUQ0Civnh5UgPiB5w6BuOyAjNzFENQor54eWID4geMO6bjsgIzcxRDYKK+eHlyA+IGzDoG47ICM3MUQ3Civnh5ggPiBtxJVpOyAjNzFEOAor54eZID4gdMOgbmc7ICM3MUQ5Civnh5ogPiB5xKs7ICM3MURBCivnh5sgPiBqxK1uZzsgIzcxREIKK+eHnCA+IG3DqG47ICM3MURDCivnh58gPiB5w61uZzsgIzcxREYKK+eHoCA+IHnDuTsgIzcxRTAKK+eHoSA+IHnDrDsgIzcxRTEKK+eHoiA+IHh1w6k7ICM3MUUyCivnh6MgPiBsw6FuOyAjNzFFMwor54ekID4gdMOgaTsgIzcxRTQKK+eHpSA+IHrDoG87ICM3MUU1Civnh6YgPiBjw6BuOyAjNzFFNgor54enID4gc8O5aTsgIzcxRTcKK+eHqCA+IHjEqzsgIzcxRTgKK+eHqSA+IHF1w6g7ICM3MUU5Civnh6ogPiBjxY1uZzsgIzcxRUEKK+eHqyA+IGxpw6FuOyAjNzFFQgor54esID4gaMWtaTsgIzcxRUMKK+eHrSA+IHpow7o7ICM3MUVECivnh64gPiB4acOoOyAjNzFFRQor54evID4gbMOtbmc7ICM3MUVGCivnh7AgPiB3xJNpOyAjNzFGMAor54exID4gecOsOyAjNzFGMQor54eyID4geGnDqTsgIzcxRjIKK+eHsyA+IHpow6BvOyAjNzFGMwor54e0ID4gaMO5aTsgIzcxRjQKK+eHtyA+IGzDoW47ICM3MUY3Civnh7ggPiByw7o7ICM3MUY4Civnh7kgPiB4acSDbjsgIzcxRjkKK+eHuiA+IGvEg287ICM3MUZBCivnh7sgPiB4xatuOyAjNzFGQgor54e8ID4gasOsbjsgIzcxRkMKK+eHvSA+IGNow7N1OyAjNzFGRAor54e+ID4gY2jDs3U7ICM3MUZFCivnh78gPiB5w6BvOyAjNzFGRgor54iAID4gaMOoOyAjNzIwMAor54iBID4gbMOgbjsgIzcyMDEKK+eIgiA+IGJpxIFvOyAjNzIwMgor54iDID4gcsOzbmc7ICM3MjAzCivniIQgPiBsw6w7ICM3MjA0CivniIUgPiBtw7I7ICM3MjA1CivniIYgPiBiw6BvOyAjNzIwNgor54iHID4gcsO5bzsgIzcyMDcKK+eIiCA+IGzHmDsgIzcyMDgKK+eIiSA+IGzDoDsgIzcyMDkKK+eIiiA+IMOhbzsgIzcyMEEKK+eIiyA+IHjDuW47ICM3MjBCCivniIwgPiBrdcOgbmc7ICM3MjBDCivniI0gPiBzaMO5bzsgIzcyMEQKK+eIjyA+IGzDrDsgIzcyMEYKK+eIkCA+IGzDujsgIzcyMTAKK+eIkSA+IGp1w6k7ICM3MjExCivniJIgPiBsacOgbzsgIzcyMTIKK+eIkyA+IHnDoG47ICM3MjEzCivniJQgPiB4xKs7ICM3MjE0CivniJUgPiB4acOoOyAjNzIxNQor54iWID4gbMOzbmc7ICM3MjE2CivniJcgPiB5w6g7ICM3MjE3CivniJkgPiByxINuZzsgIzcyMTkKK+eImiA+IHl1w6g7ICM3MjFBCivniJsgPiBsw6BuOyAjNzIxQgor54icID4gY8Ozbmc7ICM3MjFDCivniJ0gPiBqdcOpOyAjNzIxRAor54ieID4gdMOzbmc7ICM3MjFFCivniJ8gPiBndcOgbjsgIzcyMUYKK+eIoSA+IGNow6g7ICM3MjIxCivniKIgPiBtw607ICM3MjIyCivniKMgPiB0xINuZzsgIzcyMjMKK+eIpCA+IGzDoG47ICM3MjI0CivniKUgPiB6aMO6OyAjNzIyNQor54inID4gbMOtbmc7ICM3MjI3CivniKggPiBjdcOgbjsgIzcyMjgKK+eIqSA+IHnDuTsgIzcyMjkKK+eIqiA+IHpodcSDOyAjNzIyQQor54isID4gcMOhOyAjNzIyQwor54itID4gemjEk25nOyAjNzIyRAor54iuID4gcMOhbzsgIzcyMkUKK+eIryA+IGNoxJNuZzsgIzcyMkYKK+eIsCA+IHl1w6FuOyAjNzIzMAor54ixID4gw6BpOyAjNzIzMQor54iyID4gd8OoaTsgIzcyMzIKK+eItCA+IGp1w6k7ICM3MjM0CivniLUgPiBqdcOpOyAjNzIzNQor54i2ID4gZsO5OyAjNzIzNgor54i3ID4gecOpOyAjNzIzNwor54i4ID4gYsOgOyAjNzIzOAor54i5ID4gZGnEkzsgIzcyMzkKK+eIuiA+IHnDqTsgIzcyM0EKK+eIuyA+IHnDoW87ICM3MjNCCivniLwgPiB6xa07ICM3MjNDCivniL0gPiBzaHXEg25nOyAjNzIzRAor54i+ID4gxJVyOyAjNzIzRQor54i/ID4gcWnDoW5nOyAjNzIzRgor54mAID4gY2h1w6FuZzsgIzcyNDAKK+eJgSA+IGfEkzsgIzcyNDEKK+eJgiA+IHrEgW5nOyAjNzI0Mgor54mDID4gZGnDqTsgIzcyNDMKK+eJhCA+IHFpxIFuZzsgIzcyNDQKK+eJhSA+IHnDs25nOyAjNzI0NQor54mGID4gcWnDoW5nOyAjNzI0Ngor54mHID4gcGnDoG47ICM3MjQ3CivniYggPiBixINuOyAjNzI0OAor54mJID4gcMOgbjsgIzcyNDkKK+eJiiA+IHNow6FvOyAjNzI0QQor54mLID4gamnEgW47ICM3MjRCCivniYwgPiBww6FpOyAjNzI0Qwor54mNID4gZMO6OyAjNzI0RAor54mOID4gY2h1xIFuZzsgIzcyNEUKK+eJjyA+IHTDs3U7ICM3MjRGCivniZAgPiB6aMOhOyAjNzI1MAor54mRID4gYmnEgW47ICM3MjUxCivniZIgPiBkacOpOyAjNzI1Mgor54mTID4gYsSDbmc7ICM3MjUzCivniZQgPiBiw7M7ICM3MjU0CivniZUgPiBjaHXEgW5nOyAjNzI1NQor54mWID4gecWPdTsgIzcyNTYKK+eJmCA+IGTDujsgIzcyNTgKK+eJmSA+IHnDoTsgIzcyNTkKK+eJmiA+IGNow6huZzsgIzcyNUEKK+eJmyA+IG7DrXU7ICM3MjVCCivniZ0gPiBww6xuOyAjNzI1RAor54meID4gasSrdTsgIzcyNUUKK+eJnyA+IG3Ds3U7ICM3MjVGCivniaAgPiB0xatvOyAjNzI2MAor54mhID4gbcWtOyAjNzI2MQor54miID4gbMOhbzsgIzcyNjIKK+eJoyA+IHLDqG47ICM3MjYzCivniaQgPiBtw6FuZzsgIzcyNjQKK+eJpSA+IGbEgW5nOyAjNzI2NQor54mmID4gbcOhbzsgIzcyNjYKK+eJpyA+IG3DuTsgIzcyNjcKK+eJqCA+IGfEgW5nOyAjNzI2OAor54mpID4gd8O5OyAjNzI2OQor54mqID4gecOgbjsgIzcyNkEKK+eJqyA+IGfEkzsgIzcyNkIKK+eJrCA+IGLDqGk7ICM3MjZDCivnia0gPiBzw6w7ICM3MjZECivnia4gPiBqacOgbjsgIzcyNkUKK+eJryA+IGfFrTsgIzcyNkYKK+eJsCA+IHnDsnU7ICM3MjcwCivnibEgPiBnxJM7ICM3MjcxCivnibIgPiBzaMSTbmc7ICM3MjcyCivnibMgPiBtxa07ICM3MjczCivnibQgPiBkxK07ICM3Mjc0CivnibUgPiBxacSBbjsgIzcyNzUKK+eJtiA+IHF1w6BuOyAjNzI3Ngor54m3ID4gcXXDoW47ICM3Mjc3CivnibggPiB6w6w7ICM3Mjc4CivnibkgPiB0w6g7ICM3Mjc5CivnibogPiB4xKs7ICM3MjdBCivnibsgPiBtw6FuZzsgIzcyN0IKK+eJvCA+IGvEk25nOyAjNzI3Qwor54m9ID4gcWnEgW47ICM3MjdECivnib4gPiB3w7o7ICM3MjdFCivnib8gPiBnw7k7ICM3MjdGCivnioAgPiB4xKs7ICM3MjgwCivnioEgPiBsw607ICM3MjgxCivnioIgPiBsw607ICM3MjgyCivnioMgPiBwxY91OyAjNzI4Mwor54qEID4gasSrOyAjNzI4NAor54qFID4gZ8SBbmc7ICM3Mjg1CivnioYgPiB6aMOtOyAjNzI4Ngor54qHID4gYsSTbjsgIzcyODcKK+eKiCA+IHF1w6FuOyAjNzI4OAor54qJID4gcsO6bjsgIzcyODkKK+eKiiA+IGTDujsgIzcyOEEKK+eKiyA+IGrDuTsgIzcyOEIKK+eKjCA+IGppxIE7ICM3MjhDCivnio0gPiBqacSBbjsgIzcyOEQKK+eKjiA+IGbEk25nOyAjNzI4RQor54qPID4gcGnEgW47ICM3MjhGCivnipAgPiBrxJM7ICM3MjkwCivnipEgPiBqw7o7ICM3MjkxCivnipIgPiBrw6BvOyAjNzI5Mgor54qTID4gY2jDujsgIzcyOTMKK+eKlCA+IHjDrDsgIzcyOTQKK+eKlSA+IGLDqGk7ICM3Mjk1CivnipYgPiBsw7lvOyAjNzI5Ngor54qXID4gamnDqDsgIzcyOTcKK+eKmCA+IG3DoTsgIzcyOTgKK+eKmSA+IHPEgW47ICM3Mjk5CivnipogPiB3w6hpOyAjNzI5QQor54qbID4gbMOtOyAjNzI5Qgor54qcID4gZMWrbjsgIzcyOUMKK+eKnSA+IHTDs25nOyAjNzI5RAor54qfID4gamnDoG5nOyAjNzI5Rgor54qhID4gbMOsOyAjNzJBMQor54qiID4gZMO6OyAjNzJBMgor54qjID4gbGnDqDsgIzcyQTMKK+eKpCA+IHDDrTsgIzcyQTQKK+eKpSA+IHBpxINvOyAjNzJBNQor54qmID4gYsOgbzsgIzcyQTYKK+eKpyA+IHjEqzsgIzcyQTcKK+eKqCA+IGNoxY11OyAjNzJBOAor54qpID4gd8OoaTsgIzcyQTkKK+eKqiA+IGvDumk7ICM3MkFBCivniqsgPiBjaMWNdTsgIzcyQUIKK+eKrCA+IHF1xINuOyAjNzJBQwor54qtID4gZsSDbicgJ3F1xINuJyAncMOhbmc7ICM3MkFECivniq4gPiBiw6E7ICM3MkFFCivniq8gPiBmw6BuOyAjNzJBRgor54qwID4gccOtdTsgIzcyQjAKK+eKsSA+IGrErTsgIzcyQjEKK+eKsiA+IGPDoWk7ICM3MkIyCivnirMgPiBjaMO6bzsgIzcyQjMKK+eKtCA+IMOgbjsgIzcyQjQKK+eKtSA+IGppw6k7ICM3MkI1CivnirYgPiB6aHXDoG5nOyAjNzJCNgor54q3ID4gZ3XEg25nOyAjNzJCNwor54q4ID4gbcOgOyAjNzJCOAor54q5ID4gecOzdTsgIzcyQjkKK+eKuiA+IGvDoG5nOyAjNzJCQQor54q7ID4gYsOzOyAjNzJCQgor54q8ID4gaMWPdTsgIzcyQkMKK+eKvSA+IHnDoTsgIzcyQkQKK+eKviA+IHnDrW47ICM3MkJFCivnir8gPiBodcSBbjsgIzcyQkYKK+eLgCA+IHpodcOgbmc7ICM3MkMwCivni4EgPiB5xa1uOyAjNzJDMQor54uCID4ga3XDoW5nOyAjNzJDMgor54uDID4gbsStdTsgIzcyQzMKK+eLhCA+IGTDrTsgIzcyQzQKK+eLhSA+IHHEq25nOyAjNzJDNQor54uGID4gemjDsm5nOyAjNzJDNgor54uHID4gbcO5OyAjNzJDNwor54uIID4gYsOoaTsgIzcyQzgKK+eLiSA+IHDEqzsgIzcyQzkKK+eLiiA+IGrDujsgIzcyQ0EKK+eLiyA+IG7DrTsgIzcyQ0IKK+eLjCA+IHNoxJNuZzsgIzcyQ0MKK+eLjSA+IHDDoW87ICM3MkNECivni44gPiB4acOhOyAjNzJDRQor54uPID4gdMO6bzsgIzcyQ0YKK+eLkCA+IGjDujsgIzcyRDAKK+eLkSA+IGzDrW5nOyAjNzJEMQor54uSID4gZsOoaTsgIzcyRDIKK+eLkyA+IHDEqzsgIzcyRDMKK+eLlCA+IG7ErTsgIzcyRDQKK+eLlSA+IMSDbzsgIzcyRDUKK+eLliA+IHnDsnU7ICM3MkQ2Civni5cgPiBnxY91OyAjNzJENwor54uYID4geXXDqDsgIzcyRDgKK+eLmSA+IGrFqzsgIzcyRDkKK+eLmiA+IGTDoG47ICM3MkRBCivni5sgPiBww7I7ICM3MkRCCivni5wgPiBnxa07ICM3MkRDCivni50gPiB4acSDbjsgIzcyREQKK+eLniA+IG7DrW5nOyAjNzJERQor54ufID4gaHXDoW47ICM3MkRGCivni6AgPiBoxJVuOyAjNzJFMAor54uhID4gamnEg287ICM3MkUxCivni6IgPiBow6k7ICM3MkUyCivni6MgPiB6aMOgbzsgIzcyRTMKK+eLpCA+IGrDrTsgIzcyRTQKK+eLpSA+IHjDuW47ICM3MkU1Civni6YgPiBzaMSBbjsgIzcyRTYKK+eLpyA+IHTDoDsgIzcyRTcKK+eLqCA+IHLDs25nOyAjNzJFOAor54upID4gc2jDsnU7ICM3MkU5Civni6ogPiB0xY1uZzsgIzcyRUEKK+eLqyA+IGzEg287ICM3MkVCCivni6wgPiBkw7o7ICM3MkVDCivni60gPiB4acOhOyAjNzJFRAor54uuID4gc2jEqzsgIzcyRUUKK+eLryA+IGh1w6E7ICM3MkVGCivni7AgPiB6aMSTbmc7ICM3MkYwCivni7EgPiB5w7k7ICM3MkYxCivni7IgPiBzxatuOyAjNzJGMgor54uzID4gecO6OyAjNzJGMwor54u0ID4gYsOsOyAjNzJGNAor54u1ID4gbcOhbmc7ICM3MkY1Civni7YgPiB4xK07ICM3MkY2Civni7cgPiBqdcOgbjsgIzcyRjcKK+eLuCA+IGzDrTsgIzcyRjgKK+eLuSA+IHhpw6E7ICM3MkY5Civni7ogPiB5w61uOyAjNzJGQQor54u7ID4gc3XEgW47ICM3MkZCCivni7wgPiBsw6FuZzsgIzcyRkMKK+eLvSA+IGLDqGk7ICM3MkZECivni74gPiB6aMOsOyAjNzJGRQor54u/ID4gecOhbjsgIzcyRkYKK+eMgCA+IHNoxIE7ICM3MzAwCivnjIEgPiBsw6w7ICM3MzAxCivnjIIgPiBow6BuOyAjNzMwMgor54yDID4geGnEg247ICM3MzAzCivnjIQgPiBqxKtuZzsgIzczMDQKK+eMhSA+IHDDoWk7ICM3MzA1CivnjIYgPiBmxJNpOyAjNzMwNgor54yHID4gecOhbzsgIzczMDcKK+eMiCA+IGLDoDsgIzczMDgKK+eMiSA+IHHDrTsgIzczMDkKK+eMiiA+IG7DrTsgIzczMEEKK+eMiyA+IGJpxIFvOyAjNzMwQgor54yMID4gecOsbjsgIzczMEMKK+eMjSA+IGzDoWk7ICM3MzBECivnjI4gPiB4w607ICM3MzBFCivnjI8gPiBqacSBbjsgIzczMEYKK+eMkCA+IHFpxIFuZzsgIzczMTAKK+eMkSA+IGvFq247ICM3MzExCivnjJIgPiB5xIFuOyAjNzMxMgor54yTID4gZ8WtbzsgIzczMTMKK+eMlCA+IHrDsm5nOyAjNzMxNAor54yVID4gbcOtOyAjNzMxNQor54yWID4gY2jEgW5nOyAjNzMxNgor54yXID4gecSrOyAjNzMxNwor54yYID4gemjDrDsgIzczMTgKK+eMmSA+IHpoxJNuZzsgIzczMTkKK+eMmiA+IHnDoTsgIzczMUEKK+eMmyA+IG3ElW5nOyAjNzMxQgor54ycID4gY8SBaTsgIzczMUMKK+eMnSA+IGPDuTsgIzczMUQKK+eMniA+IHNow6g7ICM3MzFFCivnjKEgPiBsw7pvOyAjNzMyMQor54yiID4gaMO6OyAjNzMyMgor54yjID4gesWNbmc7ICM3MzIzCivnjKQgPiBqw6w7ICM3MzI0CivnjKUgPiB3xJVpOyAjNzMyNQor54ymID4gZsSTbmc7ICM3MzI2CivnjKcgPiB3xY07ICM3MzI3CivnjKggPiB5dcOhbjsgIzczMjgKK+eMqSA+IHjEq25nOyAjNzMyOQor54yqID4gemjFqzsgIzczMkEKK+eMqyA+IG3EgW87ICM3MzJCCivnjKwgPiB3w6hpOyAjNzMyQwor54ytID4geXXDoW47ICM3MzJECivnjK4gPiB4acOgbjsgIzczMkUKK+eMryA+IHR1xIFuOyAjNzMyRgor54ywID4gecOgOyAjNzMzMAor54yxID4gbsOhbzsgIzczMzEKK+eMsiA+IHhpxJM7ICM3MzMyCivnjLMgPiBqacSBOyAjNzMzMwor54y0ID4gaMOzdTsgIzczMzQKK+eMtSA+IGJpxIFuOyAjNzMzNQor54y2ID4gecOzdTsgIzczMzYKK+eMtyA+IHnDs3U7ICM3MzM3CivnjLggPiBtw6lpOyAjNzMzOAor54y5ID4gemjEgTsgIzczMzkKK+eMuiA+IHnDoW87ICM3MzNBCivnjLsgPiBzxatuOyAjNzMzQgor54y8ID4gYsOzOyAjNzMzQwor54y9ID4gbcOtbmc7ICM3MzNECivnjL4gPiBodcOhOyAjNzMzRQor54y/ID4geXXDoW47ICM3MzNGCivnjYAgPiBzxY11OyAjNzM0MAor542BID4gbcOgOyAjNzM0MQor542CID4geXXDoW47ICM3MzQyCivnjYMgPiBkxIFpOyAjNzM0Mwor542EID4gecO5OyAjNzM0NAor542FID4gc2jEqzsgIzczNDUKK+eNhiA+IGjDoW87ICM3MzQ2CivnjYggPiB5w6w7ICM3MzQ4CivnjYkgPiB6aMSTbjsgIzczNDkKK+eNiiA+IGNodcOgbmc7ICM3MzRBCivnjYsgPiBow6FvOyAjNzM0Qgor542MID4gbcOgbjsgIzczNEMKK+eNjSA+IGrDrG5nOyAjNzM0RAor542OID4gamnEg25nOyAjNzM0RQor542PID4gbcO6OyAjNzM0Rgor542QID4gemjEgW5nOyAjNzM1MAor542RID4gY2jDoW47ICM3MzUxCivnjZIgPiDDoW87ICM3MzUyCivnjZMgPiDDoW87ICM3MzUzCivnjZQgPiBow6FvOyAjNzM1NAor542VID4gY8WraTsgIzczNTUKK+eNliA+IGbDqW47ICM3MzU2CivnjZcgPiBqdcOpOyAjNzM1Nwor542YID4gYsOsOyAjNzM1OAor542ZID4gYsOsOyAjNzM1OQor542aID4gaHXDoW5nOyAjNzM1QQor542bID4gcMO6OyAjNzM1Qgor542cID4gbMOtbjsgIzczNUMKK+eNnSA+IHnDuTsgIzczNUQKK+eNniA+IHTDs25nOyAjNzM1RQor542fID4gecOgbzsgIzczNUYKK+eNoCA+IGxpw6FvOyAjNzM2MAor542hID4gc2jDuW87ICM3MzYxCivnjaIgPiB4acSBbzsgIzczNjIKK+eNpSA+IHjDrTsgIzczNjUKK+eNpiA+IGfDqTsgIzczNjYKK+eNpyA+IGp1w6BuOyAjNzM2Nwor542oID4gZMO6OyAjNzM2OAor542pID4gaMO5aTsgIzczNjkKK+eNqiA+IGt1w6BpOyAjNzM2QQor542rID4geGnEg247ICM3MzZCCivnjawgPiB4acOoOyAjNzM2Qwor542tID4gdMOgOyAjNzM2RAor542uID4geGnEg247ICM3MzZFCivnja8gPiB4xatuOyAjNzM2Rgor542wID4gbsOtbmc7ICM3MzcwCivnjbEgPiBww61uOyAjNzM3MQor542yID4gaMO5bzsgIzczNzIKK+eNsyA+IG7DsnU7ICM3MzczCivnjbQgPiBtw6luZzsgIzczNzQKK+eNtSA+IGxpw6g7ICM3Mzc1CivnjbYgPiBuw6FvOyAjNzM3Ngor5423ID4gZ3XEg25nOyAjNzM3Nwor5424ID4gc2jDsnU7ICM3Mzc4CivnjbkgPiBsw7o7ICM3Mzc5CivnjbogPiB0w6A7ICM3MzdBCivnjbsgPiB4acOgbjsgIzczN0IKK+eNvCA+IG3DrTsgIzczN0MKK+eNvSA+IHLDoW5nOyAjNzM3RAor542+ID4gaHXEgW47ICM3MzdFCivnjb8gPiBuw6FvOyAjNzM3Rgor546AID4gbMO6bzsgIzczODAKK+eOgSA+IHhpxINuOyAjNzM4MQor546CID4gccOtOyAjNzM4Mgor546DID4ganXDqTsgIzczODMKK+eOhCA+IHh1w6FuOyAjNzM4NAor546FID4gbWnDoG87ICM3Mzg1CivnjoYgPiB6xKs7ICM3Mzg2CivnjocgPiBsx5w7ICM3Mzg3CivnjoggPiBsw7o7ICM3Mzg4CivnjokgPiB5w7k7ICM3Mzg5CivnjoogPiBzw7k7ICM3MzhBCivnjosgPiB3w6FuZzsgIzczOEIKK+eOjCA+IHHDrXU7ICM3MzhDCivnjo0gPiBnxIM7ICM3MzhECivnjo4gPiBkxKtuZzsgIzczOEUKK+eOjyA+IGzDqDsgIzczOEYKK+eOkCA+IGLEgTsgIzczOTAKK+eOkSA+IGrEqzsgIzczOTEKK+eOkiA+IGjDs25nOyAjNzM5Mgor546TID4gZMOsOyAjNzM5Mwor546UID4gcXXDoG47ICM3Mzk0CivnjpUgPiBnxIFuOyAjNzM5NQor546WID4gasStdTsgIzczOTYKK+eOlyA+IHnDujsgIzczOTcKK+eOmCA+IGrErTsgIzczOTgKK+eOmSA+IHnDujsgIzczOTkKK+eOmiA+IHnDoW5nOyAjNzM5QQor546bID4gbcSDOyAjNzM5Qgor546cID4gZ8WNbmc7ICM3MzlDCivnjp0gPiB3xa07ICM3MzlECivnjp4gPiBmxas7ICM3MzlFCivnjp8gPiB3w6luOyAjNzM5Rgor546gID4gamnDqDsgIzczQTAKK+eOoSA+IHnDoDsgIzczQTEKK+eOoiA+IGbDqW47ICM3M0EyCivnjqMgPiBiacOgbjsgIzczQTMKK+eOpCA+IGLElW5nOyAjNzNBNAor546lID4geXXDqDsgIzczQTUKK+eOpiA+IGp1w6k7ICM3M0E2CivnjqcgPiB5xa1uOyAjNzNBNwor546oID4ganXDqTsgIzczQTgKK+eOqSA+IHfDoW47ICM3M0E5CivnjqogPiBqacSBbjsgIzczQUEKK+eOqyA+IG3DqWk7ICM3M0FCCivnjqwgPiBkxINuOyAjNzNBQwor546tID4gcMOtOyAjNzNBRAor546uID4gd8SVaTsgIzczQUUKK+eOryA+IGh1w6FuOyAjNzNBRgor546wID4geGnDoG47ICM3M0IwCivnjrEgPiBxacSBbmc7ICM3M0IxCivnjrIgPiBsw61uZzsgIzczQjIKK+eOsyA+IGTDoGk7ICM3M0IzCivnjrQgPiB5w6w7ICM3M0I0CivnjrUgPiDDoW47ICM3M0I1CivnjrYgPiBww61uZzsgIzczQjYKK+eOtyA+IGRpw6BuOyAjNzNCNwor5464ID4gZsO6OyAjNzNCOAor5465ID4geHXDoW47ICM3M0I5CivnjrogPiB4xK07ICM3M0JBCivnjrsgPiBixY07ICM3M0JCCivnjrwgPiBjxK07ICM3M0JDCivnjr0gPiBnxY91OyAjNzNCRAor546+ID4gamnEgzsgIzczQkUKK+eOvyA+IHNow6FvOyAjNzNCRgor54+AID4gcMOyOyAjNzNDMAor54+BID4gY8OtOyAjNzNDMQor54+CID4ga8STOyAjNzNDMgor54+DID4gcsSDbjsgIzczQzMKK+ePhCA+IHNoxJNuZzsgIzczQzQKK+ePhSA+IHNoxJNuOyAjNzNDNQor54+GID4gecOtOyAjNzNDNgor54+HID4gesWtOyAjNzNDNwor54+IID4gamnEgTsgIzczQzgKK+ePiSA+IG3DrW47ICM3M0M5Civnj4ogPiBzaMSBbjsgIzczQ0EKK+ePiyA+IGzErXU7ICM3M0NCCivnj4wgPiBiw6w7ICM3M0NDCivnj40gPiB6aMSTbjsgIzczQ0QKK+ePjiA+IHpoxJNuOyAjNzNDRQor54+PID4ganXDqTsgIzczQ0YKK+ePkCA+IGbDoDsgIzczRDAKK+ePkSA+IGzDs25nOyAjNzNEMQor54+SID4gasSrbjsgIzczRDIKK+ePkyA+IGppw6BvOyAjNzNEMwor54+UID4gamnDoG47ICM3M0Q0Civnj5UgPiBsw6w7ICM3M0Q1Civnj5YgPiBndcSBbmc7ICM3M0Q2Civnj5cgPiB4acSBbjsgIzczRDcKK+ePmCA+IHpoxY11OyAjNzNEOAor54+ZID4gZ8WPbmc7ICM3M0Q5Civnj5ogPiB5xIFuOyAjNzNEQQor54+bID4geMOsdTsgIzczREIKK+ePnCA+IHnDoW5nOyAjNzNEQwor54+dID4geMWtOyAjNzNERAor54+eID4gbMO5bzsgIzczREUKK+ePnyA+IHPDuTsgIzczREYKK+ePoCA+IHpoxas7ICM3M0UwCivnj6EgPiBxw61uOyAjNzNFMQor54+iID4ga8OobjsgIzczRTIKK+ePoyA+IHjDum47ICM3M0UzCivnj6QgPiBixINvOyAjNzNFNAor54+lID4gxJVyOyAjNzNFNQor54+mID4geGnDoG5nOyAjNzNFNgor54+nID4gecOhbzsgIzczRTcKK+ePqCA+IHhpw6E7ICM3M0U4Civnj6kgPiBow6luZzsgIzczRTkKK+ePqiA+IGfFq2k7ICM3M0VBCivnj6sgPiBjaMWNbmc7ICM3M0VCCivnj6wgPiB4w7k7ICM3M0VDCivnj60gPiBixIFuOyAjNzNFRAor54+uID4gcMOoaTsgIzczRUUKK+ePsCA+IGTEgW5nOyAjNzNGMAor54+yID4gaMO6bjsgIzczRjIKK+ePsyA+IHfDqW47ICM3M0YzCivnj7QgPiDDqTsgIzczRjQKK+ePtSA+IGNow6luZzsgIzczRjUKK+ePtiA+IHTDrTsgIzczRjYKK+ePtyA+IHfFrTsgIzczRjcKK+ePuCA+IHfDujsgIzczRjgKK+ePuSA+IGNow6luZzsgIzczRjkKK+ePuiA+IGrDuW47ICM3M0ZBCivnj7sgPiBtw6lpOyAjNzNGQgor54+8ID4gYsOoaTsgIzczRkMKK+ePvSA+IHTErW5nOyAjNzNGRAor54++ID4geGnDoG47ICM3M0ZFCivnj78gPiBjaMO5bzsgIzczRkYKK+eQgCA+IGjDoW47ICM3NDAwCivnkIEgPiB4dWFuOyAjNzQwMQor55CCID4gecOhbjsgIzc0MDIKK+eQgyA+IHHDrXU7ICM3NDAzCivnkIQgPiBxdcSDbjsgIzc0MDQKK+eQhSA+IGzDoW5nOyAjNzQwNQor55CGID4gbMStOyAjNzQwNgor55CHID4geMOsdTsgIzc0MDcKK+eQiCA+IGbDujsgIzc0MDgKK+eQiSA+IGzDrXU7ICM3NDA5CivnkIogPiB5w6k7ICM3NDBBCivnkIsgPiB4xKs7ICM3NDBCCivnkIwgPiBsw61uZzsgIzc0MEMKK+eQjSA+IGzDrDsgIzc0MEQKK+eQjiA+IGrDrG47ICM3NDBFCivnkI8gPiBsacOhbjsgIzc0MEYKK+eQkCA+IHPFrW87ICM3NDEwCivnkJMgPiB3w6FuOyAjNzQxMwor55CUID4gZGnDoG47ICM3NDE0CivnkJUgPiBww61uOyAjNzQxNQor55CWID4gemjEg247ICM3NDE2CivnkJcgPiBjw7lpOyAjNzQxNwor55CYID4gbcOtbjsgIzc0MTgKK+eQmSA+IHnDuTsgIzc0MTkKK+eQmiA+IGrFqzsgIzc0MUEKK+eQmyA+IGNoxJNuOyAjNzQxQgor55CcID4gbMOhaTsgIzc0MUMKK+eQnSA+IHfDqW47ICM3NDFECivnkJ4gPiBzaMOobmc7ICM3NDFFCivnkJ8gPiB3w6lpOyAjNzQxRgor55CgID4gZGnEg247ICM3NDIwCivnkKEgPiBjaMO5OyAjNzQyMQor55CiID4gemjDum87ICM3NDIyCivnkKMgPiBwxJVpOyAjNzQyMwor55CkID4gY2jEk25nOyAjNzQyNAor55ClID4gaMWtOyAjNzQyNQor55CmID4gccOtOyAjNzQyNgor55CnID4gw6g7ICM3NDI3CivnkKggPiBrxatuOyAjNzQyOAor55CpID4gY2jEgW5nOyAjNzQyOQor55CqID4gccOtOyAjNzQyQQor55CrID4gYsSVbmc7ICM3NDJCCivnkKwgPiB3xINuOyAjNzQyQwor55CtID4gbMO5OyAjNzQyRAor55CuID4gY8Ozbmc7ICM3NDJFCivnkK8gPiBndcSDbjsgIzc0MkYKK+eQsCA+IHnEg247ICM3NDMwCivnkLEgPiBkacSBbzsgIzc0MzEKK+eQsiA+IGLDqGk7ICM3NDMyCivnkLMgPiBsw61uOyAjNzQzMwor55C0ID4gccOtbjsgIzc0MzQKK+eQtSA+IHDDrTsgIzc0MzUKK+eQtiA+IHDDoTsgIzc0MzYKK+eQtyA+IHF1w6g7ICM3NDM3CivnkLggPiB6aMO6bzsgIzc0MzgKK+eQuSA+IHHDrW47ICM3NDM5CivnkLogPiBmw6A7ICM3NDNBCivnkLwgPiBxw61vbmc7ICM3NDNDCivnkL0gPiBkxa07ICM3NDNECivnkL4gPiBqacOoOyAjNzQzRQor55C/ID4gaMO6bjsgIzc0M0YKK+eRgCA+IHnFrTsgIzc0NDAKK+eRgSA+IG3DoG87ICM3NDQxCivnkYIgPiBtw6lpOyAjNzQ0Mgor55GDID4gY2h1bjsgIzc0NDMKK+eRhCA+IHh1xIFuOyAjNzQ0NAor55GFID4gdMOtOyAjNzQ0NQor55GGID4geMSrbmc7ICM3NDQ2CivnkYcgPiBkw6BpOyAjNzQ0Nwor55GIID4gcsOzdTsgIzc0NDgKK+eRiSA+IG3DrW47ICM3NDQ5CivnkYogPiB6aMSTbjsgIzc0NEEKK+eRiyA+IHfElWk7ICM3NDRCCivnkYwgPiBydcSDbjsgIzc0NEMKK+eRjSA+IGh1w6BuOyAjNzQ0RAor55GOID4gamnEkzsgIzc0NEUKK+eRjyA+IGNodcSBbjsgIzc0NEYKK+eRkCA+IGppxINuOyAjNzQ1MAor55GRID4gemh1w6BuOyAjNzQ1MQor55GSID4gecOhbmc7ICM3NDUyCivnkZMgPiBsacOgbjsgIzc0NTMKK+eRlCA+IHF1w6FuOyAjNzQ1NAor55GVID4geGnDoTsgIzc0NTUKK+eRliA+IGR1w6BuOyAjNzQ1Ngor55GXID4geXXDoG47ICM3NDU3CivnkZggPiB5w6k7ICM3NDU4CivnkZkgPiBuxINvOyAjNzQ1OQor55GaID4gaMO6OyAjNzQ1QQor55GbID4gecSrbmc7ICM3NDVCCivnkZwgPiB5w7o7ICM3NDVDCivnkZ0gPiBodcOhbmc7ICM3NDVECivnkZ4gPiByw7lpOyAjNzQ1RQor55GfID4gc8OoOyAjNzQ1Rgor55GgID4gbMOtdTsgIzc0NjAKK+eRoSA+IHNoaTsgIzc0NjEKK+eRoiA+IHLDs25nOyAjNzQ2Mgor55GjID4gc8WtbzsgIzc0NjMKK+eRpCA+IHnDoW87ICM3NDY0CivnkaUgPiB3xJNuOyAjNzQ2NQor55GmID4gd8WrOyAjNzQ2Ngor55GnID4gasSrbjsgIzc0NjcKK+eRqCA+IGrDrG47ICM3NDY4CivnkakgPiB5w61uZzsgIzc0NjkKK+eRqiA+IG3EgzsgIzc0NkEKK+eRqyA+IHTEgW87ICM3NDZCCivnkawgPiBsw611OyAjNzQ2Qwor55GtID4gdMOhbmc7ICM3NDZECivnka4gPiBsw6w7ICM3NDZFCivnka8gPiBsw6FuZzsgIzc0NkYKK+eRsCA+IGfFq2k7ICM3NDcwCivnkbEgPiB6aMOobjsgIzc0NzEKK+eRsiA+IHFpxIFuZzsgIzc0NzIKK+eRsyA+IGPFrW87ICM3NDczCivnkbQgPiBqdcOpOyAjNzQ3NAor55G1ID4gemjEg287ICM3NDc1CivnkbYgPiB5w6FvOyAjNzQ3Ngor55G3ID4gw6BpOyAjNzQ3Nwor55G4ID4gYsSrbjsgIzc0NzgKK+eRuSA+IHTDujsgIzc0NzkKK+eRuiA+IGNow6FuZzsgIzc0N0EKK+eRuyA+IGvFq247ICM3NDdCCivnkbwgPiB6aHXEgW47ICM3NDdDCivnkb0gPiBjxY1uZzsgIzc0N0QKK+eRviA+IGrErW47ICM3NDdFCivnkb8gPiB5xKs7ICM3NDdGCivnkoAgPiBjxa1pOyAjNzQ4MAor55KBID4gY8WNbmc7ICM3NDgxCivnkoIgPiBxw607ICM3NDgyCivnkoMgPiBsw607ICM3NDgzCivnkoQgPiB5xK1uZzsgIzc0ODQKK+eShSA+IHPFrW87ICM3NDg1CivnkoYgPiBxw611OyAjNzQ4Ngor55KHID4geHXDoW47ICM3NDg3CivnkoggPiDDoW87ICM3NDg4CivnkokgPiBsacOhbjsgIzc0ODkKK+eSiiA+IG3DoW47ICM3NDhBCivnkosgPiB6aMSBbmc7ICM3NDhCCivnkowgPiB5w61uOyAjNzQ4Qwor55KOID4gecSrbmc7ICM3NDhFCivnko8gPiB6aMOsOyAjNzQ4Rgor55KQID4gbMO5OyAjNzQ5MAor55KRID4gd8O6OyAjNzQ5MQor55KSID4gZMSTbmc7ICM3NDkyCivnkpMgPiB4acOydTsgIzc0OTMKK+eSlCA+IHrEk25nOyAjNzQ5NAor55KVID4geMO6bjsgIzc0OTUKK+eSliA+IHHDujsgIzc0OTYKK+eSlyA+IGTDoG5nOyAjNzQ5Nwor55KYID4gbMOtbjsgIzc0OTgKK+eSmSA+IGxpw6FvOyAjNzQ5OQor55KaID4gccOtb25nOyAjNzQ5QQor55KbID4gc8O5OyAjNzQ5Qgor55KcID4gaHXDoW5nOyAjNzQ5Qwor55KdID4gZ8WraTsgIzc0OUQKK+eSniA+IHDDujsgIzc0OUUKK+eSnyA+IGrErW5nOyAjNzQ5Rgor55KgID4gZsOhbjsgIzc0QTAKK+eSoSA+IGrDrG47ICM3NEExCivnkqIgPiBsw611OyAjNzRBMgor55KjID4gasSrOyAjNzRBMwor55KlID4gasStbmc7ICM3NEE1CivnkqYgPiDDoGk7ICM3NEE2CivnkqcgPiBiw6w7ICM3NEE3CivnkqggPiBjw6BuOyAjNzRBOAor55KpID4gccO6OyAjNzRBOQor55KqID4gesSDbzsgIzc0QUEKK+eSqyA+IGTEgW5nOyAjNzRBQgor55KsID4gamnEg287ICM3NEFDCivnkq0gPiBnw7luOyAjNzRBRAor55KuID4gdMSDbjsgIzc0QUUKK+eSryA+IGjDuWk7ICM3NEFGCivnkrAgPiBodcOhbjsgIzc0QjAKK+eSsSA+IHPDqDsgIzc0QjEKK+eSsiA+IHPDuWk7ICM3NEIyCivnkrMgPiB0acOhbjsgIzc0QjMKK+eStSA+IHnDujsgIzc0QjUKK+eStiA+IGrDrG47ICM3NEI2CivnkrcgPiBsw7o7ICM3NEI3CivnkrggPiBixKtuOyAjNzRCOAor55K5ID4gc2jDsnU7ICM3NEI5CivnkrogPiB3w6huOyAjNzRCQQor55K7ID4gesWtaTsgIzc0QkIKK+eSvCA+IGzDoW47ICM3NEJDCivnkr0gPiB4xK07ICM3NEJECivnkr4gPiBqw6w7ICM3NEJFCivnkr8gPiB4dcOhbjsgIzc0QkYKK+eTgCA+IHJ1xINuOyAjNzRDMAor55OBID4gaMO5bzsgIzc0QzEKK+eTgiA+IGfDoGk7ICM3NEMyCivnk4MgPiBsw6lpOyAjNzRDMwor55OEID4gZMO6OyAjNzRDNAor55OFID4gbMOsOyAjNzRDNQor55OGID4gemjDrTsgIzc0QzYKK+eThyA+IHLDs3U7ICM3NEM3Civnk4ggPiBsw607ICM3NEM4Civnk4kgPiB6w6BuOyAjNzRDOQor55OKID4gccOtb25nOyAjNzRDQQor55OLID4gemjDqTsgIzc0Q0IKK+eTjCA+IGfFq2k7ICM3NENDCivnk40gPiBzw7lpOyAjNzRDRAor55OOID4gbMOgOyAjNzRDRQor55OPID4gbMOzbmc7ICM3NENGCivnk5AgPiBsw7o7ICM3NEQwCivnk5EgPiBsw6w7ICM3NEQxCivnk5IgPiB6w6BuOyAjNzREMgor55OTID4gbMOgbjsgIzc0RDMKK+eTlCA+IHnEq25nOyAjNzRENAor55OVID4gbcOtOyAjNzRENQor55OWID4geGnEgW5nOyAjNzRENgor55OXID4geMSrOyAjNzRENwor55OYID4gZ3XDoG47ICM3NEQ4Civnk5kgPiBkw6BvOyAjNzREOQor55OaID4gesOgbjsgIzc0REEKK+eTmyA+IGh1w6FuOyAjNzREQgor55OcID4gZ3XEgTsgIzc0REMKK+eTnSA+IGLDszsgIzc0REQKK+eTniA+IGRpw6k7ICM3NERFCivnk58gPiBiw6FvOyAjNzRERgor55OgID4gaMO5OyAjNzRFMAor55OhID4gemjDrTsgIzc0RTEKK+eToiA+IHBpw6FvOyAjNzRFMgor55OjID4gYsOgbjsgIzc0RTMKK+eTpCA+IHLDoW5nOyAjNzRFNAor55OlID4gbMOsOyAjNzRFNQor55OmID4gd8SDOyAjNzRFNgor55OoID4gamnEgW5nOyAjNzRFOAor55OpID4gcWnDoW4nICd3xIM7ICM3NEU5Civnk6ogPiBmxINuOyAjNzRFQQor55OrID4gcMOpbjsgIzc0RUIKK+eTrCA+IGbEg25nOyAjNzRFQwor55OtID4gZMSDbjsgIzc0RUQKK+eTriA+IHfDqG5nOyAjNzRFRQor55OvID4gxY11OyAjNzRFRgor55OzID4gaMO6OyAjNzRGMwor55O0ID4gbMOtbmc7ICM3NEY0Civnk7UgPiB5w607ICM3NEY1Civnk7YgPiBww61uZzsgIzc0RjYKK+eTtyA+IGPDrTsgIzc0RjcKK+eTuSA+IGp1w6BuOyAjNzRGOQor55O6ID4gY2jDoW5nOyAjNzRGQQor55O7ID4gY2jEqzsgIzc0RkIKK+eTvSA+IGTDoG5nOyAjNzRGRAor55O+ID4gbcSVbmc7ICM3NEZFCivnk78gPiBwxY91OyAjNzRGRgor55SAID4gemjDuWk7ICM3NTAwCivnlIEgPiBww61uZzsgIzc1MDEKK+eUgiA+IGJpxIFuOyAjNzUwMgor55SDID4gemjDsnU7ICM3NTAzCivnlIQgPiB6aMSTbjsgIzc1MDQKK+eUhiA+IGPDrTsgIzc1MDYKK+eUhyA+IHnEq25nOyAjNzUwNwor55SIID4gccOsOyAjNzUwOAor55SJID4geGnDoW47ICM3NTA5CivnlIogPiBsxY91OyAjNzUwQQor55SLID4gZMOsOyAjNzUwQgor55SMID4gxY11OyAjNzUwQwor55SNID4gbcOpbmc7ICM3NTBECivnlI4gPiB6aHXEgW47ICM3NTBFCivnlI8gPiBww6huZzsgIzc1MEYKK+eUkCA+IGzDrW47ICM3NTEwCivnlJEgPiB6w6huZzsgIzc1MTEKK+eUkiA+IHfFrTsgIzc1MTIKK+eUkyA+IHDDrDsgIzc1MTMKK+eUlCA+IGTEgW47ICM3NTE0CivnlJUgPiB3w6huZzsgIzc1MTUKK+eUliA+IHnEq25nOyAjNzUxNgor55SXID4gecSDbjsgIzc1MTcKK+eUmCA+IGfEgW47ICM3NTE4CivnlJkgPiBkw6BpOyAjNzUxOQor55SaID4gc2jDqW47ICM3NTFBCivnlJsgPiB0acOhbjsgIzc1MUIKK+eUnCA+IHRpw6FuOyAjNzUxQwor55SdID4gaMSBbjsgIzc1MUQKK+eUniA+IGNow6FuZzsgIzc1MUUKK+eUnyA+IHNoxJNuZzsgIzc1MUYKK+eUoCA+IHHDrW5nOyAjNzUyMAor55ShID4gc2jEk25nOyAjNzUyMQor55SiID4gY2jEg247ICM3NTIyCivnlKMgPiBjaMSDbjsgIzc1MjMKK+eUpCA+IHLDumk7ICM3NTI0CivnlKUgPiBzaMSTbmc7ICM3NTI1CivnlKYgPiBzxas7ICM3NTI2CivnlKcgPiBzxJNuOyAjNzUyNwor55SoID4gecOybmc7ICM3NTI4CivnlKkgPiBzaHXEg2k7ICM3NTI5CivnlKogPiBsw7k7ICM3NTJBCivnlKsgPiBmxa07ICM3NTJCCivnlKwgPiB5xY9uZzsgIzc1MkMKK+eUrSA+IGLDqW5nOyAjNzUyRAor55SuID4gZsOobmc7ICM3NTJFCivnlK8gPiBuw61uZzsgIzc1MkYKK+eUsCA+IHRpw6FuOyAjNzUzMAor55SxID4gecOzdTsgIzc1MzEKK+eUsiA+IGppxIM7ICM3NTMyCivnlLMgPiBzaMSTbjsgIzc1MzMKK+eUtCA+IHpow6E7ICM3NTM0CivnlLUgPiBkacOgbjsgIzc1MzUKK+eUtiA+IGbDujsgIzc1MzYKK+eUtyA+IG7DoW47ICM3NTM3CivnlLggPiBkacOgbjsgIzc1MzgKK+eUuSA+IHDDrW5nOyAjNzUzOQor55S6ID4gdMStbmc7ICM3NTNBCivnlLsgPiBodcOgOyAjNzUzQgor55S8ID4gdMStbmc7ICM3NTNDCivnlL0gPiBxdcSDbjsgIzc1M0QKK+eUviA+IHrEqzsgIzc1M0UKK+eUvyA+IG3DqW5nOyAjNzUzRgor55WAID4gYsOsOyAjNzU0MAor55WBID4gccOtOyAjNzU0MQor55WCID4gbMOsdTsgIzc1NDIKK+eVgyA+IHjDum47ICM3NTQzCivnlYQgPiBsw611OyAjNzU0NAor55WFID4gY2jDoG5nOyAjNzU0NQor55WGID4gbcWtOyAjNzU0Ngor55WHID4gecO6bjsgIzc1NDcKK+eViCA+IGbDoG47ICM3NTQ4CivnlYkgPiBmw7o7ICM3NTQ5CivnlYogPiBnxJNuZzsgIzc1NEEKK+eViyA+IHRpw6FuOyAjNzU0Qgor55WMID4gamnDqDsgIzc1NEMKK+eVjSA+IGppw6g7ICM3NTRECivnlY4gPiBxdcSDbjsgIzc1NEUKK+eVjyA+IHfDqGk7ICM3NTRGCivnlZAgPiBmw7o7ICM3NTUwCivnlZEgPiB0acOhbjsgIzc1NTEKK+eVkiA+IG3FrTsgIzc1NTIKK+eVlCA+IHDDoG47ICM3NTU0CivnlZUgPiBqacSBbmc7ICM3NTU1CivnlZYgPiB3xIE7ICM3NTU2CivnlZcgPiBkw6E7ICM3NTU3CivnlZggPiBuw6FuOyAjNzU1OAor55WZID4gbMOtdTsgIzc1NTkKK+eVmiA+IGLElW47ICM3NTVBCivnlZsgPiB6aMSVbjsgIzc1NUIKK+eVnCA+IGNow7k7ICM3NTVDCivnlZ0gPiBtxa07ICM3NTVECivnlZ4gPiBtxa07ICM3NTVFCivnlZ8gPiBjw6g7ICM3NTVGCivnlaEgPiBnxIFpOyAjNzU2MQor55WiID4gYsOsOyAjNzU2Mgor55WjID4gZMOhOyAjNzU2Mwor55WkID4gemjDrDsgIzc1NjQKK+eVpSA+IGzHnGU7ICM3NTY1CivnlaYgPiBxw607ICM3NTY2CivnlacgPiBsx5xlOyAjNzU2Nwor55WoID4gcMSBbjsgIzc1NjgKK+eVqiA+IGbEgW47ICM3NTZBCivnlasgPiBodcOgOyAjNzU2Qgor55WsID4gecO6OyAjNzU2Qwor55WtID4gecO6OyAjNzU2RAor55WuID4gbcWtOyAjNzU2RQor55WvID4gasO5bjsgIzc1NkYKK+eVsCA+IHnDrDsgIzc1NzAKK+eVsSA+IGzDrXU7ICM3NTcxCivnlbIgPiB5w7o7ICM3NTcyCivnlbMgPiBkacOpOyAjNzU3Mwor55W0ID4gY2jDs3U7ICM3NTc0CivnlbUgPiBodcOgOyAjNzU3NQor55W2ID4gZMSBbmc7ICM3NTc2CivnlbcgPiBjaMO5bzsgIzc1NzcKK+eVuCA+IGrEqzsgIzc1NzgKK+eVuSA+IHfEg247ICM3NTc5CivnlbogPiBqacSBbmc7ICM3NTdBCivnlbsgPiBzaMOpbmc7ICM3NTdCCivnlbwgPiBjaMOgbmc7ICM3NTdDCivnlb0gPiB0dcSDbjsgIzc1N0QKK+eVviA+IGzDqWk7ICM3NTdFCivnlb8gPiBqxKs7ICM3NTdGCivnloAgPiBjaMSBOyAjNzU4MAor55aBID4gbMOtdTsgIzc1ODEKK+eWgyA+IHR1xINuOyAjNzU4Mwor55aEID4gbMOtbjsgIzc1ODQKK+eWhSA+IGppxIFuZzsgIzc1ODUKK+eWhiA+IGppxIFuZzsgIzc1ODYKK+eWhyA+IGNow7N1OyAjNzU4Nwor55aIID4gYsOyOyAjNzU4OAor55aJID4gZGnDqTsgIzc1ODkKK+eWiiA+IGRpw6k7ICM3NThBCivnlosgPiBwxK07ICM3NThCCivnlowgPiBuacOoOyAjNzU4Qwor55aNID4gZMOgbjsgIzc1OEQKK+eWjiA+IHNoxas7ICM3NThFCivnlo8gPiBzaMWrOyAjNzU4Rgor55aQID4gemjDrDsgIzc1OTAKK+eWkSA+IHnDrTsgIzc1OTEKK+eWkiA+IGNodcOhbmc7ICM3NTkyCivnlpMgPiBuxINpOyAjNzU5Mwor55aUID4gZMSrbmc7ICM3NTk0CivnlpUgPiBixK07ICM3NTk1CivnlpYgPiBqacOpOyAjNzU5Ngor55aXID4gbGnDoW87ICM3NTk3CivnlpggPiBnxY1uZzsgIzc1OTgKK+eWmSA+IGfEkzsgIzc1OTkKK+eWmiA+IGrDrHU7ICM3NTlBCivnlpsgPiB6aMWPdTsgIzc1OUIKK+eWnCA+IHhpw6A7ICM3NTlDCivnlp0gPiBzaMOgbjsgIzc1OUQKK+eWniA+IHjFqzsgIzc1OUUKK+eWnyA+IG7HnGU7ICM3NTlGCivnlqAgPiBsw6w7ICM3NUEwCivnlqEgPiB5w6FuZzsgIzc1QTEKK+eWoiA+IGNow6huOyAjNzVBMgor55ajID4gecOzdTsgIzc1QTMKK+eWpCA+IGLEgTsgIzc1QTQKK+eWpSA+IGppw6g7ICM3NUE1CivnlqYgPiBqdcOpOyAjNzVBNgor55anID4gemjEqzsgIzc1QTcKK+eWqCA+IHhpxIE7ICM3NUE4CivnlqkgPiBjw7lpOyAjNzVBOQor55aqID4gYsOsOyAjNzVBQQor55arID4gecOsOyAjNzVBQgor55asID4gbMOsOyAjNzVBQwor55atID4gesOybmc7ICM3NUFECivnlq4gPiBjaHXEgW5nOyAjNzVBRQor55avID4gZsSTbmc7ICM3NUFGCivnlrAgPiB6aMO5OyAjNzVCMAor55axID4gcMOgbzsgIzc1QjEKK+eWsiA+IHDDrTsgIzc1QjIKK+eWsyA+IGfEgW47ICM3NUIzCivnlrQgPiBrxJM7ICM3NUI0CivnlrUgPiBjxKs7ICM3NUI1CivnlrYgPiB4acOoOyAjNzVCNgor55a3ID4gccOtOyAjNzVCNwor55a4ID4gZMSDbjsgIzc1QjgKK+eWuSA+IHpoxJVuOyAjNzVCOQor55a6ID4gZsOhOyAjNzVCQQor55a7ID4gemjErTsgIzc1QkIKK+eWvCA+IHTDqW5nOyAjNzVCQwor55a9ID4gasWrOyAjNzVCRAor55a+ID4gasOtOyAjNzVCRQor55a/ID4gZsOoaTsgIzc1QkYKK+eXgCA+IHHDujsgIzc1QzAKK+eXgSA+IGRpw6BuOyAjNzVDMQor55eCID4gamnEgTsgIzc1QzIKK+eXgyA+IHhpw6FuOyAjNzVDMwor55eEID4gY2jDoTsgIzc1QzQKK+eXhSA+IGLDrG5nOyAjNzVDNQor55eGID4gbsOsOyAjNzVDNgor55eHID4gemjDqG5nOyAjNzVDNwor55eIID4gecWNbmc7ICM3NUM4Civnl4kgPiBqw6xuZzsgIzc1QzkKK+eXiiA+IHF1w6FuOyAjNzVDQQor55eLID4gY2jDs25nOyAjNzVDQgor55eMID4gdMWNbmc7ICM3NUNDCivnl40gPiB5w607ICM3NUNECivnl44gPiBrxIFpOyAjNzVDRQor55ePID4gd8SVaTsgIzc1Q0YKK+eXkCA+IGjDumk7ICM3NUQwCivnl5EgPiBkxa1vOyAjNzVEMQor55eSID4gecSDbmc7ICM3NUQyCivnl5MgPiBjaMOsOyAjNzVEMwor55eUID4gemjDrDsgIzc1RDQKK+eXlSA+IGjDqW47ICM3NUQ1Civnl5YgPiB5xIM7ICM3NUQ2Civnl5cgPiBtw6hpOyAjNzVENwor55eYID4gZMOydTsgIzc1RDgKK+eXmSA+IGrDrG5nOyAjNzVEOQor55eaID4geGnEgW87ICM3NURBCivnl5sgPiB0w7JuZzsgIzc1REIKK+eXnCA+IHTFqzsgIzc1REMKK+eXnSA+IG3DoW5nOyAjNzVERAor55eeID4gcMStOyAjNzVERQor55efID4geGnEgW87ICM3NURGCivnl6AgPiBzdcSBbjsgIzc1RTAKK+eXoSA+IHDFqzsgIzc1RTEKK+eXoiA+IGzDrDsgIzc1RTIKK+eXoyA+IHpow6w7ICM3NUUzCivnl6QgPiBjw7pvOyAjNzVFNAor55elID4gZMO6bzsgIzc1RTUKK+eXpiA+IHfDuTsgIzc1RTYKK+eXpyA+IHNoxIE7ICM3NUU3Civnl6ggPiBsw6FvOyAjNzVFOAor55epID4gc2jDsnU7ICM3NUU5Civnl6ogPiBodcOgbjsgIzc1RUEKK+eXqyA+IHhpw6FuOyAjNzVFQgor55esID4gecOsOyAjNzVFQwor55etID4gcMOpbmc7ICM3NUVECivnl64gPiB6aMOgbmc7ICM3NUVFCivnl68gPiBndcSDbjsgIzc1RUYKK+eXsCA+IHTDoW47ICM3NUYwCivnl7EgPiBmw6hpOyAjNzVGMQor55eyID4gbcOhOyAjNzVGMgor55ezID4gbMOtbjsgIzc1RjMKK+eXtCA+IGNoxKs7ICM3NUY0Civnl7UgPiBqw6w7ICM3NUY1Civnl7YgPiBkacSDbjsgIzc1RjYKK+eXtyA+IMSBbjsgIzc1RjcKK+eXuCA+IGNow6w7ICM3NUY4Civnl7kgPiBiw6w7ICM3NUY5Civnl7ogPiBixJNpOyAjNzVGQQor55e7ID4gbcOtbjsgIzc1RkIKK+eXvCA+IGfFqzsgIzc1RkMKK+eXvSA+IGTFq2k7ICM3NUZECivnl74gPiDEkzsgIzc1RkUKK+eXvyA+IHfElWk7ICM3NUZGCivnmIAgPiB5xas7ICM3NjAwCivnmIEgPiBjw7lpOyAjNzYwMQor55iCID4gecSDOyAjNzYwMgor55iDID4gemjFrTsgIzc2MDMKK+eYhCA+IGPDuTsgIzc2MDQKK+eYhSA+IGTDoG47ICM3NjA1CivnmIYgPiBzaMOobjsgIzc2MDYKK+eYhyA+IHpoxa1uZzsgIzc2MDcKK+eYiCA+IGrDrDsgIzc2MDgKK+eYiSA+IHnDuTsgIzc2MDkKK+eYiiA+IGjDs3U7ICM3NjBBCivnmIsgPiBmxJNuZzsgIzc2MEIKK+eYjCA+IGzDoDsgIzc2MEMKK+eYjSA+IHnDoW5nOyAjNzYwRAor55iOID4gc2jDqG47ICM3NjBFCivnmI8gPiB0w7o7ICM3NjBGCivnmJAgPiB5xa07ICM3NjEwCivnmJEgPiBndcSBOyAjNzYxMQor55iSID4gd8OpbjsgIzc2MTIKK+eYkyA+IGh1w6BuOyAjNzYxMwor55iUID4ga8O5OyAjNzYxNAor55iVID4gamnEgzsgIzc2MTUKK+eYliA+IHnEq247ICM3NjE2CivnmJcgPiB5w6w7ICM3NjE3CivnmJggPiBsx5g7ICM3NjE4CivnmJkgPiBzxIFvOyAjNzYxOQor55iaID4ganXDqTsgIzc2MUEKK+eYmyA+IGNow6w7ICM3NjFCCivnmJwgPiB4w607ICM3NjFDCivnmJ0gPiBndcSBbjsgIzc2MUQKK+eYniA+IHnDrDsgIzc2MUUKK+eYnyA+IHfEk247ICM3NjFGCivnmKAgPiBqw607ICM3NjIwCivnmKEgPiBjaHXEgW5nOyAjNzYyMQor55iiID4gYsSBbjsgIzc2MjIKK+eYoyA+IGzElWk7ICM3NjIzCivnmKQgPiBsw611OyAjNzYyNAor55ilID4gY2jDoGk7ICM3NjI1CivnmKYgPiBzaMOydTsgIzc2MjYKK+eYpyA+IG7HnGU7ICM3NjI3CivnmKggPiBkacSBbjsgIzc2MjgKK+eYqSA+IGTEgTsgIzc2MjkKK+eYqiA+IHBpxJM7ICM3NjJBCivnmKsgPiB0xIFuOyAjNzYyQgor55isID4gemjDoG5nOyAjNzYyQwor55itID4gYmnEgW87ICM3NjJECivnmK4gPiBzaGVuOyAjNzYyRQor55ivID4gY8O5OyAjNzYyRgor55iwID4gbMWtbzsgIzc2MzAKK+eYsSA+IHnDrDsgIzc2MzEKK+eYsiA+IHrDsm5nOyAjNzYzMgor55izID4gY2jFjXU7ICM3NjMzCivnmLQgPiB6aMOgbmc7ICM3NjM0CivnmLUgPiB6aMOgaTsgIzc2MzUKK+eYtiA+IHPDsnU7ICM3NjM2CivnmLcgPiBzxa1vOyAjNzYzNwor55i4ID4gcXXDqTsgIzc2MzgKK+eYuSA+IGRpw6BvOyAjNzYzOQor55i6ID4gbMOydTsgIzc2M0EKK+eYuyA+IGzHmDsgIzc2M0IKK+eYvCA+IG3DsjsgIzc2M0MKK+eYvSA+IGrDrG47ICM3NjNECivnmL4gPiB5xK1uOyAjNzYzRQor55i/ID4gecStbmc7ICM3NjNGCivnmYAgPiBodcOhbmc7ICM3NjQwCivnmYEgPiBmw7o7ICM3NjQxCivnmYIgPiBsacOhbzsgIzc2NDIKK+eZgyA+IGzDs25nOyAjNzY0Mwor55mEID4gcWnDoW87ICM3NjQ0CivnmYUgPiBsw611OyAjNzY0NQor55mGID4gbMOhbzsgIzc2NDYKK+eZhyA+IHhpw6FuOyAjNzY0Nwor55mIID4gZsOoaTsgIzc2NDgKK+eZiSA+IGTDoG47ICM3NjQ5CivnmYogPiB5w6xuOyAjNzY0QQor55mLID4gaMOoOyAjNzY0Qgor55mMID4gecOhbjsgIzc2NEMKK+eZjSA+IGLEgW47ICM3NjRECivnmY4gPiB4acOhbjsgIzc2NEUKK+eZjyA+IGd1xIFuOyAjNzY0Rgor55mQID4gZ3XDoGk7ICM3NjUwCivnmZEgPiBuw7NuZzsgIzc2NTEKK+eZkiA+IHnDuTsgIzc2NTIKK+eZkyA+IHfDqWk7ICM3NjUzCivnmZQgPiB5w6w7ICM3NjU0CivnmZUgPiB5xY1uZzsgIzc2NTUKK+eZliA+IHDErTsgIzc2NTYKK+eZlyA+IGzElWk7ICM3NjU3CivnmZggPiBsw6w7ICM3NjU4CivnmZkgPiBzaMWtOyAjNzY1OQor55maID4gZMOgbjsgIzc2NUEKK+eZmyA+IGzErW47ICM3NjVCCivnmZwgPiBkacOgbjsgIzc2NUMKK+eZnSA+IGzErW47ICM3NjVECivnmZ4gPiBsw6BpOyAjNzY1RQor55mfID4gcGnEkzsgIzc2NUYKK+eZoCA+IGrDrDsgIzc2NjAKK+eZoSA+IGNoxKs7ICM3NjYxCivnmaIgPiB5xINuZzsgIzc2NjIKK+eZoyA+IHhpxINuOyAjNzY2Mwor55mkID4gamnDqTsgIzc2NjQKK+eZpSA+IHpoxJNuZzsgIzc2NjUKK+eZpyA+IGzDrDsgIzc2NjcKK+eZqCA+IGjDuW87ICM3NjY4CivnmakgPiBsw6BpOyAjNzY2OQor55mrID4gZGnEgW47ICM3NjZCCivnmawgPiB4acSDbjsgIzc2NkMKK+eZrSA+IHnErW5nOyAjNzY2RAor55muID4gecStbjsgIzc2NkUKK+eZryA+IHHDujsgIzc2NkYKK+eZsCA+IHnFjW5nOyAjNzY3MAor55mxID4gdMSBbjsgIzc2NzEKK+eZsiA+IGRpxIFuOyAjNzY3Mgor55mzID4gbMWtbzsgIzc2NzMKK+eZtCA+IGzHmGFuOyAjNzY3NAor55m1ID4gbHXDoW47ICM3Njc1CivnmbYgPiBixY07ICM3Njc2CivnmbggPiBnxa1pOyAjNzY3OAor55m5ID4gcMWNOyAjNzY3OQor55m6ID4gZsSBOyAjNzY3QQor55m7ID4gZMSTbmc7ICM3NjdCCivnmbwgPiBmxIE7ICM3NjdDCivnmb0gPiBiw6FpOyAjNzY3RAor55m+ID4gYsSDaTsgIzc2N0UKK+eZvyA+IHFpw6k7ICM3NjdGCivnmoAgPiBixKs7ICM3NjgwCivnmoEgPiB6w6BvOyAjNzY4MQor55qCID4gesOgbzsgIzc2ODIKK+eagyA+IG3DoG87ICM3NjgzCivnmoQgPiBkZTsgIzc2ODQKK+eahSA+IHDEgTsgIzc2ODUKK+eahiA+IGppxJM7ICM3Njg2CivnmocgPiBodcOhbmc7ICM3Njg3CivnmoggPiBnxatpOyAjNzY4OAor55qJID4gY8StOyAjNzY4OQor55qKID4gbMOtbmc7ICM3NjhBCivnmosgPiBnxIFvOyAjNzY4Qgor55qMID4gbcOyOyAjNzY4Qwor55qNID4gasOtOyAjNzY4RAor55qOID4gamnEg287ICM3NjhFCivnmo8gPiBwxJVuZzsgIzc2OEYKK+eakCA+IGfEgW87ICM3NjkwCivnmpEgPiDDoWk7ICM3NjkxCivnmpIgPiDDqTsgIzc2OTIKK+eakyA+IGjDoG87ICM3NjkzCivnmpQgPiBow6BuOyAjNzY5NAor55qVID4gYsSrOyAjNzY5NQor55qWID4gd8SDbjsgIzc2OTYKK+ealyA+IGNow7N1OyAjNzY5Nwor55qYID4gcWnDoG47ICM3Njk4CivnmpkgPiB4xKs7ICM3Njk5CivnmpogPiDDoWk7ICM3NjlBCivnmpsgPiBqxK1vbmc7ICM3NjlCCivnmpwgPiBow6BvOyAjNzY5Qwor55qdID4gaHXEg25nOyAjNzY5RAor55qeID4gaMOgbzsgIzc2OUUKK+eanyA+IHrDqTsgIzc2OUYKK+eaoCA+IGPFrWk7ICM3NkEwCivnmqEgPiBow6BvOyAjNzZBMQor55qiID4geGnEg287ICM3NkEyCivnmqMgPiB5w6g7ICM3NkEzCivnmqQgPiBww7M7ICM3NkE0CivnmqUgPiBow6BvOyAjNzZBNQor55qmID4gamnEg287ICM3NkE2CivnmqcgPiDDoGk7ICM3NkE3CivnmqggPiB4xKtuZzsgIzc2QTgKK+eaqSA+IGh1w6BuZzsgIzc2QTkKK+eaqiA+IGzDrDsgIzc2QUEKK+eaqyA+IHBpxINvOyAjNzZBQgor55qsID4gaMOoOyAjNzZBQwor55qtID4gamnDoG87ICM3NkFECivnmq4gPiBww607ICM3NkFFCivnmq8gPiBnxINuOyAjNzZBRgor55qwID4gcMOgbzsgIzc2QjAKK+easSA+IHpow7J1OyAjNzZCMQor55qyID4gasWrbjsgIzc2QjIKK+easyA+IHHDrXU7ICM3NkIzCivnmrQgPiBjxatuOyAjNzZCNAor55q1ID4gcXXDqDsgIzc2QjUKK+eatiA+IHpoxIE7ICM3NkI2CivnmrcgPiBnxa07ICM3NkI3CivnmrggPiBqxatuOyAjNzZCOAor55q5ID4gasWrbjsgIzc2QjkKK+eauiA+IHpow7J1OyAjNzZCQQor55q7ID4gemjEgTsgIzc2QkIKK+eavCA+IGfFrTsgIzc2QkMKK+eavSA+IHpoxINuOyAjNzZCRAor55q+ID4gZMO6OyAjNzZCRQor55q/ID4gbcStbjsgIzc2QkYKK+ebgCA+IHHErTsgIzc2QzAKK+ebgSA+IHnDrW5nOyAjNzZDMQor55uCID4gecO6OyAjNzZDMgor55uDID4gYsSTaTsgIzc2QzMKK+ebhCA+IHpoxIFvOyAjNzZDNAor55uFID4gemjFjW5nOyAjNzZDNQor55uGID4gcMOpbjsgIzc2QzYKK+ebhyA+IGjDqTsgIzc2QzcKK+ebiCA+IHnDrW5nOyAjNzZDOAor55uJID4gaMOpOyAjNzZDOQor55uKID4gecOsOyAjNzZDQQor55uLID4gYsWNOyAjNzZDQgor55uMID4gd8SDbjsgIzc2Q0MKK+ebjSA+IGjDqTsgIzc2Q0QKK+ebjiA+IMOgbmc7ICM3NkNFCivnm48gPiB6aMSDbjsgIzc2Q0YKK+ebkCA+IHnDoW47ICM3NkQwCivnm5EgPiBqacSBbjsgIzc2RDEKK+ebkiA+IGjDqTsgIzc2RDIKK+ebkyA+IHnFqzsgIzc2RDMKK+eblCA+IGvFq2k7ICM3NkQ0Civnm5UgPiBmw6BuOyAjNzZENQor55uWID4gZ8OgaTsgIzc2RDYKK+eblyA+IGTDoG87ICM3NkQ3Civnm5ggPiBww6FuOyAjNzZEOAor55uZID4gZsWtOyAjNzZEOQor55uaID4gccOtdTsgIzc2REEKK+ebmyA+IHNow6huZzsgIzc2REIKK+ebnCA+IGTDoG87ICM3NkRDCivnm50gPiBsw7k7ICM3NkRECivnm54gPiB6aMSDbjsgIzc2REUKK+ebnyA+IG3DqW5nOyAjNzZERgor55ugID4gbMStOyAjNzZFMAor55uhID4gasOsbjsgIzc2RTEKK+eboiA+IHjDuTsgIzc2RTIKK+eboyA+IGppxIFuOyAjNzZFMwor55ukID4gcMOhbjsgIzc2RTQKK+ebpSA+IGd1w6BuOyAjNzZFNQor55umID4gxIFuOyAjNzZFNgor55unID4gbMO6OyAjNzZFNwor55uoID4gc2jFrTsgIzc2RTgKK+ebqSA+IHpoxY11OyAjNzZFOQor55uqID4gZMOgbmc7ICM3NkVBCivnm6sgPiDEgW47ICM3NkVCCivnm6wgPiBnxa07ICM3NkVDCivnm60gPiBsw6w7ICM3NkVECivnm64gPiBtw7k7ICM3NkVFCivnm68gPiBjaMOpbmc7ICM3NkVGCivnm7AgPiBnxINuOyAjNzZGMAor55uxID4geMWrOyAjNzZGMQor55uyID4gbcOhbmc7ICM3NkYyCivnm7MgPiBtw6FuZzsgIzc2RjMKK+ebtCA+IHpow607ICM3NkY0Civnm7UgPiBxw6w7ICM3NkY1Civnm7YgPiBydcSDbjsgIzc2RjYKK+ebtyA+IHRpw6FuOyAjNzZGNwor55u4ID4geGnEgW5nOyAjNzZGOAor55u5ID4gZMO5bjsgIzc2RjkKK+ebuiA+IHjEq247ICM3NkZBCivnm7sgPiB4w6w7ICM3NkZCCivnm7wgPiBww6BuOyAjNzZGQwor55u9ID4gZsSTbmc7ICM3NkZECivnm74gPiBkw7luOyAjNzZGRQor55u/ID4gbcOtbjsgIzc2RkYKK+ecgCA+IG3DrW5nOyAjNzcwMAor55yBID4gc2jElW5nOyAjNzcwMQor55yCID4gc2jDrDsgIzc3MDIKK+ecgyA+IHnDum47ICM3NzAzCivnnIQgPiBtacSDbjsgIzc3MDQKK+echSA+IHDEgW47ICM3NzA1CivnnIYgPiBmxINuZzsgIzc3MDYKK+echyA+IG1pxINvOyAjNzcwNwor55yIID4gZMSBbjsgIzc3MDgKK+eciSA+IG3DqWk7ICM3NzA5CivnnIogPiBtw6BvOyAjNzcwQQor55yLID4ga8OgbjsgIzc3MEIKK+ecjCA+IHhpw6BuOyAjNzcwQwor55yNID4gxY11OyAjNzcwRAor55yOID4gc2jDrDsgIzc3MEUKK+ecjyA+IHnEgW5nOyAjNzcwRgor55yQID4gemjEk25nOyAjNzcxMAor55yRID4gecSDbzsgIzc3MTEKK+eckiA+IHNow6huOyAjNzcxMgor55yTID4gaMO5bzsgIzc3MTMKK+eclCA+IGTDoDsgIzc3MTQKK+eclSA+IHpoxJVuOyAjNzcxNQor55yWID4ga3XDoG5nOyAjNzcxNgor55yXID4gasWrOyAjNzcxNwor55yYID4gc2jDqG47ICM3NzE4CivnnJkgPiBjaMOsOyAjNzcxOQor55yaID4gc2jElW5nOyAjNzcxQQor55ybID4gbcOoaTsgIzc3MUIKK+ecnCA+IG3DsjsgIzc3MUMKK+ecnSA+IHpow7k7ICM3NzFECivnnJ4gPiB6aMSTbjsgIzc3MUUKK+ecnyA+IHpoxJNuOyAjNzcxRgor55ygID4gbWnDoW47ICM3NzIwCivnnKEgPiBkxKs7ICM3NzIxCivnnKIgPiB5dcSBbjsgIzc3MjIKK+ecoyA+IGRpw6k7ICM3NzIzCivnnKQgPiB5w607ICM3NzI0CivnnKUgPiB6w6w7ICM3NzI1CivnnKYgPiB6w6w7ICM3NzI2CivnnKcgPiBjaMSDbzsgIzc3MjcKK+ecqCA+IHpoxIM7ICM3NzI4CivnnKkgPiB4dcOgbjsgIzc3MjkKK+ecqiA+IGLErW5nOyAjNzcyQQor55yrID4gbcStOyAjNzcyQgor55ysID4gbMOzbmc7ICM3NzJDCivnnK0gPiBzxatpOyAjNzcyRAor55yuID4gZMOybmc7ICM3NzJFCivnnK8gPiBtxK07ICM3NzJGCivnnLAgPiBkacOpOyAjNzczMAor55yxID4gecOtOyAjNzczMQor55yyID4gw6hyOyAjNzczMgor55yzID4gbcStbmc7ICM3NzMzCivnnLQgPiB4dcOgbjsgIzc3MzQKK+ectSA+IGNoxKs7ICM3NzM1CivnnLYgPiBrdcOgbmc7ICM3NzM2CivnnLcgPiBqdcOgbjsgIzc3MzcKK+ecuCA+IG3Ds3U7ICM3NzM4CivnnLkgPiB6aMOobjsgIzc3MzkKK+ecuiA+IHRpw6BvOyAjNzczQQor55y7ID4gecOhbmc7ICM3NzNCCivnnLwgPiB5xINuOyAjNzczQwor55y9ID4gbcOyOyAjNzczRAor55y+ID4gemjDsm5nOyAjNzczRQor55y/ID4gbcOgaTsgIzc3M0YKK+edgCA+IHpow6FvOyAjNzc0MAor552BID4gemjEk25nOyAjNzc0MQor552CID4gbcOpaTsgIzc3NDIKK+edgyA+IGrDuW47ICM3NzQzCivnnYQgPiBzaMOgbzsgIzc3NDQKK+edhSA+IGjDoG47ICM3NzQ1CivnnYYgPiBodcSDbjsgIzc3NDYKK+edhyA+IGTDrDsgIzc3NDcKK+ediCA+IGNoxJVuZzsgIzc3NDgKK+ediSA+IGPFq287ICM3NzQ5CivnnYogPiBqdcOgbjsgIzc3NEEKK+ediyA+IMOpOyAjNzc0Qgor552MID4gd8SDbjsgIzc3NEMKK+edjSA+IHhpw6BuOyAjNzc0RAor552OID4geMSrOyAjNzc0RQor552PID4ga8O5bjsgIzc3NEYKK+edkCA+IGzDoGk7ICM3NzUwCivnnZEgPiBqacSDbjsgIzc3NTEKK+edkiA+IHNoxINuOyAjNzc1Mgor552TID4gdGnEg247ICM3NzUzCivnnZQgPiBoxa1uOyAjNzc1NAor552VID4gd8SDbjsgIzc3NTUKK+edliA+IGzDrW5nOyAjNzc1Ngor552XID4gc2jDrDsgIzc3NTcKK+edmCA+IHHDrW9uZzsgIzc3NTgKK+edmSA+IGxpw6g7ICM3NzU5CivnnZogPiB5w6FpOyAjNzc1QQor552bID4gasSrbmc7ICM3NzVCCivnnZwgPiB6aMSTbmc7ICM3NzVDCivnnZ0gPiBsw607ICM3NzVECivnnZ4gPiBsw6BpOyAjNzc1RQor552fID4gc8O5aTsgIzc3NUYKK+edoCA+IGp1w6BuOyAjNzc2MAor552hID4gc2jDuWk7ICM3NzYxCivnnaIgPiBzxatpOyAjNzc2Mgor552jID4gZMWrOyAjNzc2Mwor552kID4gYsOsOyAjNzc2NAor552lID4gYsOsOyAjNzc2NQor552mID4gbcO5OyAjNzc2Ngor552nID4gaMWrbjsgIzc3NjcKK+edqCA+IG7DrDsgIzc3NjgKK+edqSA+IGzDuTsgIzc3NjkKK+edqiA+IHnDrDsgIzc3NkEKK+edqyA+IGppw6k7ICM3NzZCCivnnawgPiBjxINpOyAjNzc2Qwor552tID4gemjFj3U7ICM3NzZECivnna4gPiB5w7o7ICM3NzZFCivnna8gPiBoxatuOyAjNzc2Rgor552wID4gbcOgOyAjNzc3MAor552xID4geGnDoDsgIzc3NzEKK+edsiA+IHjErW5nOyAjNzc3Mgor552zID4geMSrOyAjNzc3Mwor5520ID4gZ8O5bjsgIzc3NzQKK+edtSA+IGNhaTsgIzc3NzUKK+edtiA+IGNoxa1uOyAjNzc3Ngor5523ID4gamnEgW47ICM3Nzc3CivnnbggPiBtw6hpOyAjNzc3OAor5525ID4gZMWtOyAjNzc3OQor5526ID4gaMOzdTsgIzc3N0EKK+eduyA+IHh1xIFuOyAjNzc3Qgor5528ID4gdMOsOyAjNzc3Qwor5529ID4ga8O6aTsgIzc3N0QKK+edviA+IGfEgW87ICM3NzdFCivnnb8gPiByw7lpOyAjNzc3Rgor556AID4gbcOydTsgIzc3ODAKK+eegSA+IHjDuTsgIzc3ODEKK+eegiA+IGbEgTsgIzc3ODIKK+eegyA+IHfEk247ICM3NzgzCivnnoQgPiBtacOhbzsgIzc3ODQKK+eehSA+IGNoxY91OyAjNzc4NQor556GID4ga8O5aTsgIzc3ODYKK+eehyA+IG3EqzsgIzc3ODcKK+eeiCA+IHfElW5nOyAjNzc4OAor556JID4ga8OydTsgIzc3ODkKK+eeiiA+IGTDoG5nOyAjNzc4QQor556LID4gY2jEk247ICM3NzhCCivnnowgPiBrxJM7ICM3NzhDCivnno0gPiBzxY91OyAjNzc4RAor556OID4geGnEgTsgIzc3OEUKK+eejyA+IHHDrW9uZzsgIzc3OEYKK+eekCA+IG3DoG87ICM3NzkwCivnnpEgPiBtw61uZzsgIzc3OTEKK+eekiA+IG3DoW47ICM3NzkyCivnnpMgPiBzaMO5aTsgIzc3OTMKK+eelCA+IHrDqTsgIzc3OTQKK+eelSA+IHpow6BuZzsgIzc3OTUKK+eeliA+IHnDrDsgIzc3OTYKK+eelyA+IGRpxIFvOyAjNzc5Nwor556YID4gxY11OyAjNzc5OAor556ZID4gbcOyOyAjNzc5OQor556aID4gc2jDuW47ICM3NzlBCivnnpsgPiBjxY1uZzsgIzc3OUIKK+eenCA+IGzFjXU7ICM3NzlDCivnnp0gPiBjaMSrOyAjNzc5RAor556eID4gbcOhbjsgIzc3OUUKK+eenyA+IHBpxINvOyAjNzc5Rgor556gID4gY2jEk25nOyAjNzdBMAor556hID4gasOsOyAjNzdBMQor556iID4gbcOpbmc7ICM3N0EyCivnnqQgPiByw7puOyAjNzdBNAor556lID4gcGnEkzsgIzc3QTUKK+eepiA+IHjEqzsgIzc3QTYKK+eepyA+IHFpw6FvOyAjNzdBNwor556oID4gcMO6OyAjNzdBOAor556pID4gemjFrTsgIzc3QTkKK+eeqiA+IGTDqG5nOyAjNzdBQQor556rID4gc2jElW47ICM3N0FCCivnnqwgPiBzaMO5bjsgIzc3QUMKK+eerSA+IGxpxINvOyAjNzdBRAor556uID4gY2jDqDsgIzc3QUUKK+eeryA+IHhpw6FuOyAjNzdBRgor556wID4ga8OgbjsgIzc3QjAKK+eesSA+IHnDqDsgIzc3QjEKK+eesiA+IHjDuTsgIzc3QjIKK+eesyA+IHTDs25nOyAjNzdCMwor5560ID4gbcOzdTsgIzc3QjQKK+eetSA+IGzDrW47ICM3N0I1CivnnrYgPiBrw7lpOyAjNzdCNgor5563ID4geGnDoW47ICM3N0I3CivnnrggPiB5w6g7ICM3N0I4CivnnrkgPiDDoGk7ICM3N0I5CivnnrogPiBow7lpOyAjNzdCQQor5567ID4gemjEgW47ICM3N0JCCivnnrwgPiBqacSDbjsgIzc3QkMKK+eevSA+IGfFrTsgIzc3QkQKK+eeviA+IHpow6BvOyAjNzdCRQor556/ID4gccWrOyAjNzdCRgor55+AID4gd8OpaTsgIzc3QzAKK+efgSA+IGNoxY91OyAjNzdDMQor55+CID4gc8OgbzsgIzc3QzIKK+efgyA+IG7ErW5nOyAjNzdDMwor55+EID4geMWrbjsgIzc3QzQKK+efhSA+IHnDoG87ICM3N0M1Civnn4YgPiBow7lvOyAjNzdDNgor55+HID4gbcOpbmc7ICM3N0M3Civnn4ggPiBtacOhbjsgIzc3QzgKK+efiSA+IGLEq247ICM3N0M5Civnn4ogPiBtacOhbjsgIzc3Q0EKK+efiyA+IGzDrDsgIzc3Q0IKK+efjCA+IGt1w6BuZzsgIzc3Q0MKK+efjSA+IGp1w6k7ICM3N0NECivnn44gPiB4dcSBbjsgIzc3Q0UKK+efjyA+IG1pw6FuOyAjNzdDRgor55+QID4gaMO5bzsgIzc3RDAKK+efkSA+IGzDujsgIzc3RDEKK+efkiA+IG3DqW5nOyAjNzdEMgor55+TID4gbMOzbmc7ICM3N0QzCivnn5QgPiBndcOgbjsgIzc3RDQKK+eflSA+IG3Eg247ICM3N0Q1Civnn5YgPiB4xK07ICM3N0Q2Civnn5cgPiBjaMO5OyAjNzdENwor55+YID4gdMSDbmc7ICM3N0Q4Civnn5kgPiBrw6BuOyAjNzdEOQor55+aID4gemjFrTsgIzc3REEKK+efmyA+IG3DoW87ICM3N0RCCivnn5wgPiBqxKtuOyAjNzdEQwor55+dID4gbMOtbjsgIzc3REQKK+efniA+IHnDuTsgIzc3REUKK+efnyA+IHNow7lvOyAjNzdERgor55+gID4gY8OoOyAjNzdFMAor55+hID4ganXDqTsgIzc3RTEKK+efoiA+IHNoxK07ICM3N0UyCivnn6MgPiB5xK07ICM3N0UzCivnn6QgPiBzaMSVbjsgIzc3RTQKK+efpSA+IHpoxKs7ICM3N0U1Civnn6YgPiBow7N1OyAjNzdFNgor55+nID4gc2jElW47ICM3N0U3Civnn6ggPiB5xK1uZzsgIzc3RTgKK+efqSA+IGrFrTsgIzc3RTkKK+efqiA+IHpoxY11OyAjNzdFQQor55+rID4gamnEg287ICM3N0VCCivnn6wgPiBjw7pvOyAjNzdFQwor55+tID4gZHXEg247ICM3N0VECivnn64gPiDEg2k7ICM3N0VFCivnn68gPiBqacSDbzsgIzc3RUYKK+efsCA+IHrEk25nOyAjNzdGMAor55+xID4gaMO5bzsgIzc3RjEKK+efsiA+IGLEg2k7ICM3N0YyCivnn7MgPiBzaMOtOyAjNzdGMwor55+0ID4gZMOsbmc7ICM3N0Y0Civnn7UgPiBxw6w7ICM3N0Y1Civnn7YgPiBqxKs7ICM3N0Y2Civnn7cgPiB6xK07ICM3N0Y3Civnn7ggPiBnxIFuOyAjNzdGOAor55+5ID4gd8O5OyAjNzdGOQor55+6ID4gdMWrbzsgIzc3RkEKK+efuyA+IGvDuTsgIzc3RkIKK+efvCA+IHFpxIFuZzsgIzc3RkMKK+efvSA+IHjDrDsgIzc3RkQKK+efviA+IGbDoW47ICM3N0ZFCivnn78gPiBrdcOgbmc7ICM3N0ZGCivnoIAgPiBkw6BuZzsgIzc4MDAKK+eggSA+IG3EgzsgIzc4MDEKK+eggiA+IHNoxIE7ICM3ODAyCivnoIMgPiBkxIFuOyAjNzgwMwor56CEID4ganXDqTsgIzc4MDQKK+eghSA+IGzDrDsgIzc4MDUKK+eghiA+IGbFqzsgIzc4MDYKK+eghyA+IG3DrW47ICM3ODA3CivnoIggPiBuxa1vOyAjNzgwOAor56CJID4gaMO5bzsgIzc4MDkKK+egiiA+IGvDoG5nOyAjNzgwQQor56CLID4gemjErTsgIzc4MEIKK+egjCA+IHHDrDsgIzc4MEMKK+egjSA+IGvEg247ICM3ODBECivnoI4gPiBqacOoOyAjNzgwRQor56CPID4gZsSTbjsgIzc4MEYKK+egkCA+IMOoOyAjNzgxMAor56CRID4gecOgOyAjNzgxMQor56CSID4gcMSrOyAjNzgxMgor56CTID4gemjDqTsgIzc4MTMKK+eglCA+IHnDoW47ICM3ODE0CivnoJUgPiBzw7lpOyAjNzgxNQor56CWID4gemh1xIFuOyAjNzgxNgor56CXID4gY2jEkzsgIzc4MTcKK+egmCA+IGTDuW47ICM3ODE4CivnoJkgPiBwxIFuOyAjNzgxOQor56CaID4gecOgbjsgIzc4MUEKK+egnCA+IGbEk25nOyAjNzgxQwor56CdID4gZsOhOyAjNzgxRAor56CeID4gbcOyOyAjNzgxRQor56CfID4gemjDoDsgIzc4MUYKK+egoCA+IHHFqzsgIzc4MjAKK+egoSA+IHnDuTsgIzc4MjEKK+egoiA+IGzFrW87ICM3ODIyCivnoKMgPiB0w7pvOyAjNzgyMwor56CkID4gdMO6bzsgIzc4MjQKK+egpSA+IGTErTsgIzc4MjUKK+egpiA+IHpow6BpOyAjNzgyNgor56CnID4gemjEk247ICM3ODI3CivnoKggPiDDoGk7ICM3ODI4CivnoKkgPiBmw6hpOyAjNzgyOQor56CqID4gbcWtOyAjNzgyQQor56CrID4gemjFrTsgIzc4MkIKK+egrCA+IGzDrDsgIzc4MkMKK+egrSA+IGJpxIFuOyAjNzgyRAor56CuID4gbsWtOyAjNzgyRQor56CvID4gcMSrbmc7ICM3ODJGCivnoLAgPiBwxJNuZzsgIzc4MzAKK+egsSA+IGzDrW5nOyAjNzgzMQor56CyID4gcMOgbzsgIzc4MzIKK+egsyA+IGzDqDsgIzc4MzMKK+egtCA+IHDDsjsgIzc4MzQKK+egtSA+IGLFjTsgIzc4MzUKK+egtiA+IHDDsjsgIzc4MzYKK+egtyA+IHNoxJNuOyAjNzgzNwor56C4ID4gesOhOyAjNzgzOAor56C5ID4gbsWtbzsgIzc4MzkKK+eguiA+IGzDrDsgIzc4M0EKK+eguyA+IGzDs25nOyAjNzgzQgor56C8ID4gdMOzbmc7ICM3ODNDCivnoL4gPiBsw6w7ICM3ODNFCivnoYAgPiBjaMWtOyAjNzg0MAor56GBID4ga8STbmc7ICM3ODQxCivnoYIgPiBxdcOhbjsgIzc4NDIKK+ehgyA+IHpoxas7ICM3ODQzCivnoYQgPiBrdcSBbmc7ICM3ODQ0CivnoYUgPiBow7lvOyAjNzg0NQor56GGID4gw6g7ICM3ODQ2CivnoYcgPiBuw6FvOyAjNzg0Nwor56GIID4gamnDoTsgIzc4NDgKK+ehiSA+IGzDuTsgIzc4NDkKK+ehiiA+IHfElWk7ICM3ODRBCivnoYsgPiDDoGk7ICM3ODRCCivnoYwgPiBsw7lvOyAjNzg0Qwor56GNID4ga8OobjsgIzc4NEQKK+ehjiA+IHjDrW5nOyAjNzg0RQor56GPID4gecOhbjsgIzc4NEYKK+ehkCA+IHTDs25nOyAjNzg1MAor56GRID4gcMSTbmc7ICM3ODUxCivnoZIgPiB4xKs7ICM3ODUyCivnoZQgPiBow7NuZzsgIzc4NTQKK+ehlSA+IHNow7lvOyAjNzg1NQor56GWID4geGnDoTsgIzc4NTYKK+ehlyA+IHFpxIFvOyAjNzg1Nwor56GZID4gd8OoaTsgIzc4NTkKK+ehmiA+IHFpw6FvOyAjNzg1QQor56GcID4ga8STbmc7ICM3ODVDCivnoZ0gPiB4acSBbzsgIzc4NUQKK+ehniA+IHF1w6g7ICM3ODVFCivnoZ8gPiBjaMOgbjsgIzc4NUYKK+ehoCA+IGzEg25nOyAjNzg2MAor56GhID4gaMOzbmc7ICM3ODYxCivnoaIgPiB5w7o7ICM3ODYyCivnoaMgPiB4acSBbzsgIzc4NjMKK+ehpCA+IHhpw6E7ICM3ODY0CivnoaUgPiBtxINuZzsgIzc4NjUKK+ehpiA+IGzDsm5nOyAjNzg2Ngor56GnID4gxK1vbmc7ICM3ODY3CivnoaggPiBjaMSTOyAjNzg2OAor56GpID4gY2jDqDsgIzc4NjkKK+ehqiA+IMOpOyAjNzg2QQor56GrID4gbMOtdTsgIzc4NkIKK+ehrCA+IHnDrG5nOyAjNzg2Qwor56GtID4gbcOhbmc7ICM3ODZECivnoa4gPiBxdcOoOyAjNzg2RQor56GvID4gecOgbjsgIzc4NkYKK+ehsCA+IHNoxIE7ICM3ODcwCivnobEgPiBrxa1uOyAjNzg3MQor56GyID4gecO5OyAjNzg3Mgor56G1ID4gbMWtOyAjNzg3NQor56G2ID4gY2jElW47ICM3ODc2CivnobcgPiBqacSDbjsgIzc4NzcKK+ehuCA+IG51w6g7ICM3ODc4CivnobkgPiBzxY1uZzsgIzc4NzkKK+ehuiA+IHpow7pvOyAjNzg3QQor56G7ID4ga8STbmc7ICM3ODdCCivnobwgPiBww6luZzsgIzc4N0MKK+ehvSA+IHnEg247ICM3ODdECivnob4gPiB6aMO5aTsgIzc4N0UKK+ehvyA+IGvFjW5nOyAjNzg3Rgor56KAID4gY8Opbmc7ICM3ODgwCivnooEgPiBxw607ICM3ODgxCivnooIgPiB6w7JuZzsgIzc4ODIKK+eigyA+IHHDrG5nOyAjNzg4Mwor56KEID4gbMOtbjsgIzc4ODQKK+eihSA+IGrFq247ICM3ODg1CivnooYgPiBixY07ICM3ODg2CivnoocgPiBkw6xuZzsgIzc4ODcKK+eiiCA+IG3DrW47ICM3ODg4CivnookgPiBkacSBbzsgIzc4ODkKK+eiiiA+IGppxIFuOyAjNzg4QQor56KLID4gaMOoOyAjNzg4Qgor56KMID4gbMO5OyAjNzg4Qwor56KNID4gw6BpOyAjNzg4RAor56KOID4gc8O5aTsgIzc4OEUKK+eijyA+IHF1w6g7ICM3ODhGCivnopAgPiBsw61uZzsgIzc4OTAKK+eikSA+IGLEk2k7ICM3ODkxCivnopIgPiB5w61uOyAjNzg5Mgor56KTID4gZMO5aTsgIzc4OTMKK+eilCA+IHfFrTsgIzc4OTQKK+eilSA+IHHDrTsgIzc4OTUKK+eiliA+IGzDuW47ICM3ODk2CivnopcgPiB3xINuOyAjNzg5Nwor56KYID4gZGnEg247ICM3ODk4CivnopkgPiBnxIFuZzsgIzc4OTkKK+eimiA+IHDDqWk7ICM3ODlBCivnopsgPiBxw6w7ICM3ODlCCivnopwgPiBjaMSVbjsgIzc4OUMKK+einSA+IHJ1xINuOyAjNzg5RAor56KeID4gecOhbjsgIzc4OUUKK+einyA+IGRpw6k7ICM3ODlGCivnoqAgPiBkw6xuZzsgIzc4QTAKK+eioSA+IGTDujsgIzc4QTEKK+eioiA+IHTDum87ICM3OEEyCivnoqMgPiBqacOpOyAjNzhBMwor56KkID4gecSrbmc7ICM3OEE0CivnoqUgPiBiacSDbjsgIzc4QTUKK+eipiA+IGvDqDsgIzc4QTYKK+eipyA+IGLDrDsgIzc4QTcKK+eiqCA+IHfEk2k7ICM3OEE4CivnoqkgPiBzaMO5bzsgIzc4QTkKK+eiqiA+IHpoxJNuOyAjNzhBQQor56KrID4gZHXDoG47ICM3OEFCCivnoqwgPiB4acOhOyAjNzhBQwor56KtID4gZMOgbmc7ICM3OEFECivnoq4gPiB0w607ICM3OEFFCivnoq8gPiBuxINvOyAjNzhBRgor56KwID4gcMOobmc7ICM3OEIwCivnorEgPiBqacSDbjsgIzc4QjEKK+eisiA+IGTDrDsgIzc4QjIKK+eisyA+IHTDoG47ICM3OEIzCivnorQgPiBjaMOhOyAjNzhCNAor56K2ID4gccOsOyAjNzhCNgor56K4ID4gZsSTbmc7ICM3OEI4CivnorkgPiB4dcOgbjsgIzc4QjkKK+eiuiA+IHF1w6g7ICM3OEJBCivnorsgPiBxdcOoOyAjNzhCQgor56K8ID4gbcSDOyAjNzhCQwor56K9ID4gZ8WNbmc7ICM3OEJECivnor4gPiBuacOgbjsgIzc4QkUKK+eivyA+IHPDuTsgIzc4QkYKK+ejgCA+IMOpOyAjNzhDMAor56OBID4gY8OtOyAjNzhDMQor56OCID4gbMOsdTsgIzc4QzIKK+ejgyA+IHPEqzsgIzc4QzMKK+ejhCA+IHTDoW5nOyAjNzhDNAor56OFID4gYsOgbmc7ICM3OEM1Civno4YgPiBodcOhOyAjNzhDNgor56OHID4gcMSrOyAjNzhDNwor56OIID4gd8SVaTsgIzc4QzgKK+ejiSA+IHPEg25nOyAjNzhDOQor56OKID4gbMSVaTsgIzc4Q0EKK+ejiyA+IGPFq287ICM3OENCCivno4wgPiB6aMSTbjsgIzc4Q0MKK+ejjSA+IHhpw6E7ICM3OENECivno44gPiBxxKs7ICM3OENFCivno48gPiBsacOhbjsgIzc4Q0YKK+ejkCA+IHDDoW47ICM3OEQwCivno5EgPiB3w6hpOyAjNzhEMQor56OSID4gecWtbjsgIzc4RDIKK+ejkyA+IGTFq2k7ICM3OEQzCivno5QgPiB6aMOpOyAjNzhENAor56OVID4ga8STOyAjNzhENQor56OWID4gbMSBOyAjNzhENgor56OYID4gccOsbmc7ICM3OEQ4Civno5kgPiBnxa1uOyAjNzhEOQor56OaID4gemh1xIFuOyAjNzhEQQor56ObID4gY2jDoW47ICM3OERCCivno5wgPiBxw6w7ICM3OERDCivno50gPiDDoW87ICM3OERECivno54gPiBwxJNuZzsgIzc4REUKK+ejnyA+IGzDuTsgIzc4REYKK+ejoCA+IGzFrTsgIzc4RTAKK+ejoSA+IGvDoG47ICM3OEUxCivno6IgPiBxacSDbmc7ICM3OEUyCivno6MgPiBjaMSVbjsgIzc4RTMKK+ejpCA+IHnErW47ICM3OEU0Civno6UgPiBsxJVpOyAjNzhFNQor56OmID4gYmnEgW87ICM3OEU2Civno6cgPiBxw6w7ICM3OEU3Civno6ggPiBtw7M7ICM3OEU4Civno6kgPiBxxKs7ICM3OEU5Civno6ogPiBjxatpOyAjNzhFQQor56OrID4gesWNbmc7ICM3OEVCCivno6wgPiBxw6xuZzsgIzc4RUMKK+ejrSA+IGNow7lvOyAjNzhFRAor56OvID4gasSrOyAjNzhFRgor56OwID4gc2jDoG47ICM3OEYwCivno7EgPiBsw6FvOyAjNzhGMQor56OyID4gccO6OyAjNzhGMgor56OzID4gesSTbmc7ICM3OEYzCivno7QgPiBkw6huZzsgIzc4RjQKK+ejtSA+IGppw6BuOyAjNzhGNQor56O2ID4geMOsOyAjNzhGNgor56O3ID4gbMOsbjsgIzc4RjcKK+ejuCA+IGTDrG5nOyAjNzhGOAor56O5ID4gZGnDoG47ICM3OEY5Civno7ogPiBodcOhbmc7ICM3OEZBCivno7sgPiBww6FuOyAjNzhGQgor56O8ID4gesOhOyAjNzhGQwor56O9ID4gcWnEgW87ICM3OEZECivno74gPiBkxKs7ICM3OEZFCivno78gPiBsw6w7ICM3OEZGCivnpIEgPiBqacSBbzsgIzc5MDEKK+ekgyA+IHpoxINuZzsgIzc5MDMKK+ekhCA+IHFpw6FvOyAjNzkwNAor56SFID4gZMWrbjsgIzc5MDUKK+ekhiA+IHhpxINuOyAjNzkwNgor56SHID4gecO5OyAjNzkwNwor56SIID4gemjDuWk7ICM3OTA4CivnpIkgPiBow6k7ICM3OTA5CivnpIogPiBow7lvOyAjNzkwQQor56SLID4gemjDoWk7ICM3OTBCCivnpIwgPiBsw6hpOyAjNzkwQwor56SNID4ga8SVOyAjNzkwRAor56SOID4gY2jFrTsgIzc5MEUKK+ekjyA+IGrDrTsgIzc5MEYKK+ekkCA+IHF1w6g7ICM3OTEwCivnpJEgPiBkw6BuZzsgIzc5MTEKK+ekkiA+IHnErTsgIzc5MTIKK+ekkyA+IGppxIFuZzsgIzc5MTMKK+eklCA+IHDDrDsgIzc5MTQKK+eklSA+IHDEqzsgIzc5MTUKK+ekliA+IHnDuTsgIzc5MTYKK+eklyA+IHDEq247ICM3OTE3CivnpJggPiBxw6w7ICM3OTE4CivnpJkgPiDDoGk7ICM3OTE5CivnpJogPiBrw6BpOyAjNzkxQQor56SbID4gamnEgW47ICM3OTFCCivnpJwgPiB5w7k7ICM3OTFDCivnpJ0gPiBydcSDbjsgIzc5MUQKK+ekniA+IG3DqW5nOyAjNzkxRQor56SfID4gcMOgbzsgIzc5MUYKK+ekoCA+IGPDrTsgIzc5MjAKK+ekoyA+IG1pw6g7ICM3OTIzCivnpKQgPiBjxIM7ICM3OTI0CivnpKUgPiB4acOhbjsgIzc5MjUKK+ekpiA+IGt1w6BuZzsgIzc5MjYKK+ekpyA+IGzDqGk7ICM3OTI3CivnpKggPiBsxJVpOyAjNzkyOAor56SpID4gemjDrDsgIzc5MjkKK+ekqiA+IGzDrDsgIzc5MkEKK+ekqyA+IGzDrDsgIzc5MkIKK+ekrCA+IGbDoW47ICM3OTJDCivnpK0gPiBxdcOoOyAjNzkyRAor56SuID4gcMOgbzsgIzc5MkUKK+ekryA+IHnEq25nOyAjNzkyRgor56SwID4gbMOsOyAjNzkzMAor56SxID4gbMOzbmc7ICM3OTMxCivnpLIgPiBsw7NuZzsgIzc5MzIKK+eksyA+IG3DsjsgIzc5MzMKK+ektCA+IGLDszsgIzc5MzQKK+ektSA+IHNodcSBbmc7ICM3OTM1CivnpLYgPiBndcOgbjsgIzc5MzYKK+ektyA+IGzDoW47ICM3OTM3CivnpLggPiB6xINuOyAjNzkzOAor56S5ID4gecOhbjsgIzc5MzkKK+ekuiA+IHNow6w7ICM3OTNBCivnpLsgPiBzaMOsJyAnesOsJyAncMOhbmc7ICM3OTNCCivnpLwgPiBsxK07ICM3OTNDCivnpL0gPiByw6luZzsgIzc5M0QKK+ekviA+IHNow6g7ICM3OTNFCivnpL8gPiB5dcOoOyAjNzkzRgor56WAID4gc8OsOyAjNzk0MAor56WBID4gccOtOyAjNzk0MQor56WCID4gdMSBOyAjNzk0Mgor56WDID4gbcOgOyAjNzk0Mwor56WEID4geGnDqDsgIzc5NDQKK+elhSA+IHhpxIFuOyAjNzk0NQor56WGID4geGnEgW47ICM3OTQ2CivnpYcgPiB6aMSrOyAjNzk0Nwor56WIID4gccOtOyAjNzk0OAor56WJID4gemjErTsgIzc5NDkKK+eliiA+IGLEk25nOyAjNzk0QQor56WLID4gZMO5aTsgIzc5NEIKK+eljCA+IHpow7JuZzsgIzc5NEMKK+eljiA+IHnEqzsgIzc5NEUKK+eljyA+IHNow607ICM3OTRGCivnpZAgPiB5w7J1OyAjNzk1MAor56WRID4gemjDrDsgIzc5NTEKK+elkiA+IHRpw6FvOyAjNzk1Mgor56WTID4gZsO6OyAjNzk1Mwor56WUID4gZsO5OyAjNzk1NAor56WVID4gbcOsOyAjNzk1NQor56WWID4gesWtOyAjNzk1Ngor56WXID4gemjEqzsgIzc5NTcKK+elmCA+IHN1w6BuOyAjNzk1OAor56WZID4gbcOoaTsgIzc5NTkKK+elmiA+IHrDuW87ICM3OTVBCivnpZsgPiBxxas7ICM3OTVCCivnpZwgPiBow7k7ICM3OTVDCivnpZ0gPiB6aMO5OyAjNzk1RAor56WeID4gc2jDqW47ICM3OTVFCivnpZ8gPiBzw7lpOyAjNzk1Rgor56WgID4gY8OtOyAjNzk2MAor56WhID4gY2jDoWk7ICM3OTYxCivnpaIgPiBtw607ICM3OTYyCivnpaMgPiBsx5o7ICM3OTYzCivnpaQgPiB5xa07ICM3OTY0CivnpaUgPiB4acOhbmc7ICM3OTY1CivnpaYgPiB3w7o7ICM3OTY2CivnpacgPiB0acSBbzsgIzc5NjcKK+elqCA+IHBpw6BvOyAjNzk2OAor56WpID4gemjFqzsgIzc5NjkKK+elqiA+IGfFrWk7ICM3OTZBCivnpasgPiB4acOhOyAjNzk2Qgor56WsID4gemjEqzsgIzc5NkMKK+elrSA+IGrDrDsgIzc5NkQKK+elriA+IGfDoG87ICM3OTZFCivnpa8gPiB6aMSTbjsgIzc5NkYKK+elsCA+IGfDoG87ICM3OTcwCivnpbEgPiBzaMO5aTsgIzc5NzEKK+elsiA+IGrEq247ICM3OTcyCivnpbMgPiBjaMSVbjsgIzc5NzMKK+eltCA+IGfEgWk7ICM3OTc0CivnpbUgPiBrxa1uOyAjNzk3NQor56W2ID4gZMOsOyAjNzk3Ngor56W3ID4gZMSDbzsgIzc5NzcKK+eluCA+IGjDuW87ICM3OTc4CivnpbkgPiB0w6FvOyAjNzk3OQor56W6ID4gccOtOyAjNzk3QQor56W7ID4gZ8O5OyAjNzk3Qgor56W8ID4gZ3XDoG47ICM3OTdDCivnpb0gPiB6w7lpOyAjNzk3RAor56W+ID4gbMOtbmc7ICM3OTdFCivnpb8gPiBsw7k7ICM3OTdGCivnpoAgPiBixK1uZzsgIzc5ODAKK+emgSA+IGrDrG47ICM3OTgxCivnpoIgPiBkxINvOyAjNzk4Mgor56aDID4gemjDrTsgIzc5ODMKK+emhCA+IGzDuTsgIzc5ODQKK+emhSA+IHNow6BuOyAjNzk4NQor56aGID4gYsSTaTsgIzc5ODYKK+emhyA+IHpoxJU7ICM3OTg3CivnpoggPiBoxatpOyAjNzk4OAor56aJID4gecWPdTsgIzc5ODkKK+emiiA+IHjDrDsgIzc5OEEKK+emiyA+IHnEq247ICM3OThCCivnpowgPiB6xKs7ICM3OThDCivnpo0gPiBow7lvOyAjNzk4RAor56aOID4gemjEk247ICM3OThFCivnpo8gPiBmw7o7ICM3OThGCivnppAgPiB5dcOgbjsgIzc5OTAKK+emkSA+IHfDujsgIzc5OTEKK+emkiA+IHhpxINuOyAjNzk5Mgor56aTID4gecOhbmc7ICM3OTkzCivnppQgPiB0w607ICM3OTk0CivnppUgPiB5xKs7ICM3OTk1CivnppYgPiBtw6lpOyAjNzk5Ngor56aXID4gc8SrOyAjNzk5Nwor56aYID4gZMOsOyAjNzk5OAor56aaID4gemjDum87ICM3OTlBCivnppsgPiB6aMSTbjsgIzc5OUIKK+emnCA+IHnFj25nOyAjNzk5Qwor56adID4gasOtOyAjNzk5RAor56aeID4gZ8OgbzsgIzc5OUUKK+emnyA+IHTDoW5nOyAjNzk5Rgor56agID4gc8SrOyAjNzlBMAor56ahID4gbcOgOyAjNzlBMQor56aiID4gdMSBOyAjNzlBMgor56akID4geHXEgW47ICM3OUE0CivnpqUgPiBxw607ICM3OUE1CivnpqYgPiB5w7k7ICM3OUE2CivnpqcgPiB4xKs7ICM3OUE3CivnpqggPiBqxKs7ICM3OUE4CivnpqkgPiBzw6w7ICM3OUE5CivnpqogPiBjaMOhbjsgIzc5QUEKK+emqyA+IHTEg247ICM3OUFCCivnpqwgPiBrdcOgaTsgIzc5QUMKK+emrSA+IHPDuWk7ICM3OUFECivnpq4gPiBsxK07ICM3OUFFCivnpq8gPiBuw7NuZzsgIzc5QUYKK+emsCA+IG7ErTsgIzc5QjAKK+emsSA+IGTEg287ICM3OUIxCivnprIgPiBsw6w7ICM3OUIyCivnprMgPiByw6FuZzsgIzc5QjMKK+emtCA+IHl1w6g7ICM3OUI0CivnprUgPiB0w607ICM3OUI1CivnprYgPiB6xINuOyAjNzlCNgor56a3ID4gbMOoaTsgIzc5QjcKK+emuCA+IHLDs3U7ICM3OUI4CivnprkgPiB5xa07ICM3OUI5CivnprogPiB5w7o7ICM3OUJBCivnprsgPiBjaMSrOyAjNzlCQgor56a8ID4geGnDqDsgIzc5QkMKK+emvSA+IHHDrW47ICM3OUJECivnpr4gPiBow6k7ICM3OUJFCivnpr8gPiB0xas7ICM3OUJGCivnp4AgPiB4w6x1OyAjNzlDMAor56eBID4gc8SrOyAjNzlDMQor56eCID4gcsOpbjsgIzc5QzIKK+engyA+IHTFqzsgIzc5QzMKK+enhCA+IHrErTsgIzc5QzQKK+enhSA+IGNow6E7ICM3OUM1Civnp4YgPiBnxINuOyAjNzlDNgor56eHID4gecOsOyAjNzlDNwor56eIID4geGnEgW47ICM3OUM4Civnp4kgPiBixK1uZzsgIzc5QzkKK+eniiA+IG5pw6FuOyAjNzlDQQor56eLID4gccSrdTsgIzc5Q0IKK+enjCA+IHHEq3U7ICM3OUNDCivnp40gPiBjaMOzbmc7ICM3OUNECivnp44gPiBmw6luOyAjNzlDRQor56ePID4gaMOgbzsgIzc5Q0YKK+enkCA+IHnDum47ICM3OUQwCivnp5EgPiBrxJM7ICM3OUQxCivnp5IgPiBtacSDbzsgIzc5RDIKK+enkyA+IHpoxKs7ICM3OUQzCivnp5QgPiBnxJNuZzsgIzc5RDQKK+enlSA+IGLErTsgIzc5RDUKK+enliA+IHpoxKs7ICM3OUQ2Civnp5cgPiB5w7k7ICM3OUQ3Civnp5ggPiBtw6w7ICM3OUQ4Civnp5kgPiBrw7k7ICM3OUQ5Civnp5ogPiBiw6BuOyAjNzlEQQor56ebID4gcMSrOyAjNzlEQgor56ecID4gbsOtOyAjNzlEQwor56edID4gbMOsOyAjNzlERAor56eeID4gecOzdTsgIzc5REUKK+ennyA+IHrFqzsgIzc5REYKK+enoCA+IHDEqzsgIzc5RTAKK+enoSA+IGLDoTsgIzc5RTEKK+enoiA+IGzDrW5nOyAjNzlFMgor56ejID4gbcOyOyAjNzlFMwor56ekID4gY2jDqG5nOyAjNzlFNAor56elID4gbmnDoW47ICM3OUU1Civnp6YgPiBxw61uOyAjNzlFNgor56enID4gecSBbmc7ICM3OUU3Civnp6ggPiB6w7pvOyAjNzlFOAor56epID4gemjDrDsgIzc5RTkKK+enqiA+IHpoxKs7ICM3OUVBCivnp6sgPiBzaMO6OyAjNzlFQgor56esID4gasO5OyAjNzlFQwor56etID4gesStOyAjNzlFRAor56euID4gaMO6bzsgIzc5RUUKK+enryA+IGrEqzsgIzc5RUYKK+ensCA+IGNoxJNuZzsgIzc5RjAKK+ensSA+IHTDs25nOyAjNzlGMQor56eyID4gemjDrDsgIzc5RjIKK+ensyA+IGjDum87ICM3OUYzCivnp7QgPiBow6k7ICM3OUY0Civnp7UgPiB5xKtuOyAjNzlGNQor56e2ID4gesSrOyAjNzlGNgor56e3ID4gemjDrTsgIzc5RjcKK+enuCA+IGppxJM7ICM3OUY4Civnp7kgPiByxJVuOyAjNzlGOQor56e6ID4gZMO5OyAjNzlGQQor56e7ID4gecOtOyAjNzlGQgor56e8ID4gemjFqzsgIzc5RkMKK+envSA+IGjDuWk7ICM3OUZECivnp74gPiBuw7NuZzsgIzc5RkUKK+envyA+IGbFrTsgIzc5RkYKK+eogCA+IHjEqzsgIzdBMDAKK+eogSA+IGvEg287ICM3QTAxCivnqIIgPiBsw6FuZzsgIzdBMDIKK+eogyA+IGbFqzsgIzdBMDMKK+eohCA+IHrDqDsgIzdBMDQKK+eohSA+IHNow7lpOyAjN0EwNQor56iGID4gbMeaOyAjN0EwNgor56iHID4ga8WtbjsgIzdBMDcKK+eoiCA+IGfEg247ICM3QTA4CivnqIkgPiBnxJNuZzsgIzdBMDkKK+eoiiA+IHTDrTsgIzdBMEEKK+eoiyA+IGNow6luZzsgIzdBMEIKK+eojCA+IHTDujsgIzdBMEMKK+eojSA+IHNoxIFvOyAjN0EwRAor56iOID4gc2jDuWk7ICM3QTBFCivnqI8gPiB5w6A7ICM3QTBGCivnqJAgPiBsxa1uOyAjN0ExMAor56iRID4gbMO5OyAjN0ExMQor56iSID4gZ8O5OyAjN0ExMgor56iTID4gesO6bzsgIzdBMTMKK+eolCA+IHLElW47ICM3QTE0CivnqJUgPiB6aMO5bjsgIzdBMTUKK+eoliA+IGLDoG5nOyAjN0ExNgor56iXID4gYsOgaTsgIzdBMTcKK+eomCA+IGrEqzsgIzdBMTgKK+eomSA+IHpow607ICM3QTE5CivnqJogPiB6aMOsOyAjN0ExQQor56ibID4ga8WtbjsgIzdBMUIKK+eonCA+IGzDqW5nOyAjN0ExQwor56idID4gcMOpbmc7ICM3QTFECivnqJ4gPiBrxJM7ICM3QTFFCivnqJ8gPiBixK1uZzsgIzdBMUYKK+eooCA+IGNow7N1OyAjN0EyMAor56ihID4gesO6OyAjN0EyMQor56iiID4gecO5OyAjN0EyMgor56ijID4gc8WrOyAjN0EyMwor56ikID4gbMecZTsgIzdBMjQKK+eopiA+IHnEqzsgIzdBMjYKK+eopyA+IHjDrDsgIzdBMjcKK+eoqCA+IGJpxIFuOyAjN0EyOAor56ipID4gasOsOyAjN0EyOQor56iqID4gZsO5OyAjN0EyQQor56irID4gYsSrOyAjN0EyQgor56isID4gbsO5bzsgIzdBMkMKK+eorSA+IGppxJM7ICM3QTJECivnqK4gPiB6aMWPbmc7ICM3QTJFCivnqK8gPiB6xY1uZzsgIzdBMkYKK+eosCA+IHjFqzsgIzdBMzAKK+eosSA+IGNoxJNuZzsgIzdBMzEKK+eosiA+IGTDoG87ICM3QTMyCivnqLMgPiB3xJVuOyAjN0EzMwor56i0ID4gbGnDoW47ICM3QTM0CivnqLUgPiB6xKs7ICM3QTM1CivnqLYgPiB5w7k7ICM3QTM2CivnqLcgPiBqw6w7ICM3QTM3CivnqLggPiB4w7k7ICM3QTM4CivnqLkgPiB6aMSVbjsgIzdBMzkKK+eouiA+IHpow6w7ICM3QTNBCivnqLsgPiBkw6BvOyAjN0EzQgor56i8ID4gamnDoDsgIzdBM0MKK+eovSA+IGrEqzsgIzdBM0QKK+eoviA+IGfEg287ICM3QTNFCivnqL8gPiBnxINvOyAjN0EzRgor56mAID4gZ8WtOyAjN0E0MAor56mBID4gcsOzbmc7ICM3QTQxCivnqYIgPiBzw7lpOyAjN0E0Mgor56mEID4gasOsOyAjN0E0NAor56mFID4ga8SBbmc7ICM3QTQ1CivnqYYgPiBtw7k7ICM3QTQ2CivnqYcgPiBzaMSBbjsgIzdBNDcKK+epiCA+IG3DqW47ICM3QTQ4CivnqYkgPiB6aMOsOyAjN0E0OQor56mKID4gasOsOyAjN0E0QQor56mLID4gbMO5OyAjN0E0Qgor56mMID4gc8WrOyAjN0E0Qwor56mNID4gasSrOyAjN0E0RAor56mOID4gecStbmc7ICM3QTRFCivnqY8gPiB3xJVuOyAjN0E0Rgor56mQID4gccSrdTsgIzdBNTAKK+epkSA+IHPDqDsgIzdBNTEKK+epkyA+IHnDrDsgIzdBNTMKK+eplCA+IGh1w6FuZzsgIzdBNTQKK+eplSA+IHFpw6g7ICM3QTU1CivnqZYgPiBqxK07ICM3QTU2CivnqZcgPiBzw7lpOyAjN0E1Nwor56mYID4geGnEgW87ICM3QTU4CivnqZkgPiBww7o7ICM3QTU5CivnqZogPiBqacSBbzsgIzdBNUEKK+epmyA+IHpoxatvOyAjN0E1Qgor56mcID4gdMOzbmc7ICM3QTVDCivnqZ4gPiBsx5o7ICM3QTVFCivnqZ8gPiBzw7lpOyAjN0E1Rgor56mgID4gbsOzbmc7ICM3QTYwCivnqaEgPiBzw6g7ICM3QTYxCivnqaIgPiBow7lpOyAjN0E2Mgor56mjID4gcsOhbmc7ICM3QTYzCivnqaQgPiBuw7lvOyAjN0E2NAor56mlID4gecO5OyAjN0E2NQor56mmID4gYmluOyAjN0E2Ngor56mnID4gasOsOyAjN0E2Nwor56moID4gdMO6aTsgIzdBNjgKK+epqSA+IHfElW47ICM3QTY5CivnqaogPiBjaMSTbmc7ICM3QTZBCivnqasgPiBow7lvOyAjN0E2Qgor56msID4gZ8WPbmc7ICM3QTZDCivnqa0gPiBsx5o7ICM3QTZECivnqa4gPiBiacSBbzsgIzdBNkUKK+epsCA+IHLDoW5nOyAjN0E3MAor56mxID4gemjFq287ICM3QTcxCivnqbIgPiBsw607ICM3QTcyCivnqbMgPiB6w6BuOyAjN0E3Mwor56m0ID4geHXDqDsgIzdBNzQKK+eptSA+IHfEgTsgIzdBNzUKK+eptiA+IGrDrHU7ICM3QTc2CivnqbcgPiBxw61vbmc7ICM3QTc3CivnqbggPiB4w6w7ICM3QTc4CivnqbkgPiBxxKtvbmc7ICM3QTc5CivnqbogPiBrxY1uZzsgIzdBN0EKK+epuyA+IHnFqzsgIzdBN0IKK+epvCA+IHPEk247ICM3QTdDCivnqb0gPiBqxK1uZzsgIzdBN0QKK+epviA+IHnDoG87ICM3QTdFCivnqb8gPiBjaHXEgW47ICM3QTdGCivnqoAgPiB6aMWrbjsgIzdBODAKK+eqgSA+IHTDujsgIzdBODEKK+eqgiA+IGzDoW87ICM3QTgyCivnqoMgPiBxacOoOyAjN0E4Mwor56qEID4gemjEg2k7ICM3QTg0CivnqoUgPiB5xINvOyAjN0E4NQor56qGID4gYmnEg247ICM3QTg2CivnqocgPiBiw6FvOyAjN0E4Nwor56qIID4gecSDbzsgIzdBODgKK+eqiSA+IGLErW5nOyAjN0E4OQor56qKID4gd8SBOyAjN0E4QQor56qLID4gemjDujsgIzdBOEIKK+eqjCA+IGppw6BvOyAjN0E4Qwor56qNID4gcWnDoG87ICM3QThECivnqo4gPiBkacOgbzsgIzdBOEUKK+eqjyA+IHfFqzsgIzdBOEYKK+eqkCA+IGfFq2k7ICM3QTkwCivnqpEgPiB5w6FvOyAjN0E5MQor56qSID4gemjDrDsgIzdBOTIKK+eqkyA+IGNodcSBbmc7ICM3QTkzCivnqpQgPiB5xINvOyAjN0E5NAor56qVID4gdGnEg287ICM3QTk1CivnqpYgPiBqacOgbzsgIzdBOTYKK+eqlyA+IGNodcSBbmc7ICM3QTk3CivnqpggPiBqxK1vbmc7ICM3QTk4CivnqpkgPiB4acSBbzsgIzdBOTkKK+eqmiA+IGNow6luZzsgIzdBOUEKK+eqmyA+IGvDsnU7ICM3QTlCCivnqpwgPiBjdcOgbjsgIzdBOUMKK+eqnSA+IHfFjTsgIzdBOUQKK+eqniA+IGTDoG47ICM3QTlFCivnqp8gPiBrxas7ICM3QTlGCivnqqAgPiBrxJM7ICM3QUEwCivnqqEgPiB6aMO5aTsgIzdBQTEKK+eqoiA+IHjDuTsgIzdBQTIKK+eqoyA+IHPDuTsgIzdBQTMKK+eqpCA+IGd1YW47ICM3QUE0CivnqqUgPiBrxatpOyAjN0FBNQor56qmID4gZMOydTsgIzdBQTYKK+eqqCA+IHnDrG47ICM3QUE4CivnqqkgPiB3xY07ICM3QUE5CivnqqogPiB3xIE7ICM3QUFBCivnqqsgPiB5w6A7ICM3QUFCCivnqqwgPiB5w7o7ICM3QUFDCivnqq0gPiBqw7k7ICM3QUFECivnqq4gPiBxw61vbmc7ICM3QUFFCivnqq8gPiB5w6FvOyAjN0FBRgor56qwID4gecOhbzsgIzdBQjAKK+eqsSA+IHRpw6BvOyAjN0FCMQor56qyID4gY2jDoW87ICM3QUIyCivnqrMgPiB5xa07ICM3QUIzCivnqrQgPiB0acOhbjsgIzdBQjQKK+eqtSA+IGRpw6BvOyAjN0FCNQor56q2ID4gasO5OyAjN0FCNgor56q3ID4gbGnDoW87ICM3QUI3CivnqrggPiB4xKs7ICM3QUI4CivnqrkgPiB3w7k7ICM3QUI5CivnqrogPiBrxatpOyAjN0FCQQor56q7ID4gY2h1xIFuZzsgIzdBQkIKK+eqvCA+IHpoxIFvOyAjN0FCQwor56q+ID4ga3XEg247ICM3QUJFCivnqr8gPiBsw7NuZzsgIzdBQkYKK+ergCA+IGNoxJNuZzsgIzdBQzAKK+ergSA+IGPDuWk7ICM3QUMxCivnq4IgPiBwacOhbzsgIzdBQzIKK+ergyA+IHrDoG87ICM3QUMzCivnq4QgPiBjdcOgbjsgIzdBQzQKK+erhSA+IHFpw6BvOyAjN0FDNQor56uGID4gccOtb25nOyAjN0FDNgor56uHID4gZMOydTsgIzdBQzcKK+eriCA+IHrDoG87ICM3QUM4Civnq4kgPiBsxY9uZzsgIzdBQzkKK+eriiA+IHFpw6g7ICM3QUNBCivnq4sgPiBsw6w7ICM3QUNCCivnq4wgPiBjaMO5OyAjN0FDQwor56uNID4gc2jDrScgJ2fFjW5nJyAnc2jEk25nOyAjN0FDRAor56uOID4gZsOydTsgIzdBQ0UKK+erjyA+IHFpxIFuJyAnZ8WNbmcnICdzaMSTbmc7ICM3QUNGCivnq5AgPiBjaMO5OyAjN0FEMAor56uRID4gaMOzbmc7ICM3QUQxCivnq5IgPiBxw607ICM3QUQyCivnq5MgPiBxacSBbicgJ2bEk24nICd6aMSrJyAnecSrJyAnZ8WNbmcnICdzaMSTbmc7ICM3QUQzCivnq5QgPiBnxY1uZycgJ3NoxJNuZzsgIzdBRDQKK+erlSA+IHNow60nICdmxJNuJyAnemjEqycgJ3nEqycgJ2fFjW5nJyAnc2jEk25nOyAjN0FENQor56uWID4gc2jDuTsgIzdBRDYKK+erlyA+IG1pw6BvOyAjN0FENwor56uYID4gasWtOyAjN0FEOAor56uZID4gemjDoG47ICM3QUQ5Civnq5ogPiB6aMO5OyAjN0FEQQor56ubID4gbMOtbmc7ICM3QURCCivnq5wgPiBsw7NuZzsgIzdBREMKK+ernSA+IGLDrG5nOyAjN0FERAor56ueID4gasOsbmc7ICM3QURFCivnq58gPiBqw6xuZzsgIzdBREYKK+eroCA+IHpoxIFuZzsgIzdBRTAKK+eroSA+IHnEqycgJ2fFjW5nJyAnc2jEk25nJyAnZGUnICd5xKsnICdixINpJyAnYsOoaTsgIzdBRTEKK+eroiA+IHPDrDsgIzdBRTIKK+eroyA+IGrDuW47ICM3QUUzCivnq6QgPiBow7NuZzsgIzdBRTQKK+erpSA+IHTDs25nOyAjN0FFNQor56umID4gc8WPbmc7ICM3QUU2Civnq6cgPiBqw6xuZzsgIzdBRTcKK+erqCA+IGRpw6BvOyAjN0FFOAor56upID4gecOsOyAjN0FFOQor56uqID4gc2jDuTsgIzdBRUEKK+erqyA+IGrDrG5nOyAjN0FFQgor56usID4gccWtOyAjN0FFQwor56utID4gamnDqTsgIzdBRUQKK+erriA+IHDDrW5nOyAjN0FFRQor56uvID4gZHXEgW47ICM3QUVGCivnq7AgPiBzaMOhbzsgIzdBRjAKK+ersSA+IHpodcSDbjsgIzdBRjEKK+ersiA+IGPDqW5nOyAjN0FGMgor56uzID4gZMSTbmc7ICM3QUYzCivnq7QgPiBjxatpOyAjN0FGNAor56u1ID4gaHXEgWk7ICM3QUY1Civnq7YgPiBqw6xuZzsgIzdBRjYKK+ertyA+IGvDoG47ICM3QUY3Civnq7ggPiBqw6xuZzsgIzdBRjgKK+eruSA+IHpow7o7ICM3QUY5Civnq7ogPiB6aMO6OyAjN0FGQQor56u7ID4gbMOoOyAjN0FGQgor56u8ID4gcMOpbmc7ICM3QUZDCivnq70gPiB5w7o7ICM3QUZECivnq74gPiBjaMOtOyAjN0FGRQor56u/ID4gZ8SBbjsgIzdBRkYKK+esgCA+IG3DoW5nOyAjN0IwMAor56yBID4gemjDujsgIzdCMDEKK+esgyA+IGTFrTsgIzdCMDMKK+eshCA+IGrEqzsgIzdCMDQKK+eshSA+IHhpw6FvOyAjN0IwNQor56yGID4gYsSBOyAjN0IwNgor56yHID4gc3XDoG47ICM3QjA3CivnrIggPiBqw607ICM3QjA4CivnrIkgPiB6aMSVbjsgIzdCMDkKK+esiiA+IHpow6BvOyAjN0IwQQor56yLID4gc8WtbjsgIzdCMEIKK+esjCA+IHnDoTsgIzdCMEMKK+esjSA+IHpow7lpOyAjN0IwRAor56yOID4geXXDoW47ICM3QjBFCivnrI8gPiBow7k7ICM3QjBGCivnrJAgPiBnxIFuZzsgIzdCMTAKK+eskSA+IHhpw6BvOyAjN0IxMQor56ySID4gY8OpbjsgIzdCMTIKK+eskyA+IHDDrTsgIzdCMTMKK+eslCA+IGLErTsgIzdCMTQKK+eslSA+IGppxINuOyAjN0IxNQor56yWID4gecStOyAjN0IxNgor56yXID4gZMWNbmc7ICM3QjE3CivnrJggPiBzaMSBbjsgIzdCMTgKK+esmSA+IHNoxJNuZzsgIzdCMTkKK+esmiA+IHhpw6E7ICM3QjFBCivnrJsgPiBkw607ICM3QjFCCivnrJwgPiB6aMO6OyAjN0IxQwor56ydID4gbsOgOyAjN0IxRAor56yeID4gY2jEqzsgIzdCMUUKK+esnyA+IGfFqzsgIzdCMUYKK+esoCA+IGzDrDsgIzdCMjAKK+esoSA+IHFpw6g7ICM3QjIxCivnrKIgPiBtxK1uOyAjN0IyMgor56yjID4gYsSBbzsgIzdCMjMKK+espCA+IHRpw6FvOyAjN0IyNAor56ylID4gc8OsOyAjN0IyNQor56ymID4gZsO6OyAjN0IyNgor56ynID4gY8OoOyAjN0IyNwor56yoID4gYsOobjsgIzdCMjgKK+esqSA+IHDDqGk7ICM3QjI5CivnrKogPiBkw6E7ICM3QjJBCivnrKsgPiB6xK07ICM3QjJCCivnrKwgPiBkw6w7ICM3QjJDCivnrK0gPiBsw61uZzsgIzdCMkQKK+esriA+IHrDqTsgIzdCMkUKK+esryA+IG7DujsgIzdCMkYKK+essCA+IGbDujsgIzdCMzAKK+essSA+IGfFj3U7ICM3QjMxCivnrLIgPiBmxIFuOyAjN0IzMgor56yzID4gamnEgTsgIzdCMzMKK+estCA+IGfElTsgIzdCMzQKK+estSA+IGbDoG47ICM3QjM1CivnrLYgPiBzaMStOyAjN0IzNgor56y3ID4gbcSDbzsgIzdCMzcKK+esuCA+IHDFjzsgIzdCMzgKK+esuiA+IGppxIFuOyAjN0IzQQor56y7ID4gccOtb25nOyAjN0IzQgor56y8ID4gbMOzbmc7ICM3QjNDCivnrL4gPiBiacSBbjsgIzdCM0UKK+esvyA+IGzDuW87ICM3QjNGCivnrYAgPiBnw7lpOyAjN0I0MAor562BID4gccWtOyAjN0I0MQor562CID4gY2jDrTsgIzdCNDIKK+etgyA+IHnEq247ICM3QjQzCivnrYQgPiB5w6BvOyAjN0I0NAor562FID4geGnEg247ICM3QjQ1CivnrYYgPiBixK07ICM3QjQ2CivnrYcgPiBxw61vbmc7ICM3QjQ3CivnrYggPiBndcSBOyAjN0I0OAor562JID4gZMSVbmc7ICM3QjQ5CivnrYogPiBqacSDbzsgIzdCNEEKK+etiyA+IGrEq247ICM3QjRCCivnrYwgPiBxdcOhbjsgIzdCNEMKK+etjSA+IHPFrW47ICM3QjRECivnrY4gPiByw7o7ICM3QjRFCivnrY8gPiBmw6E7ICM3QjRGCivnrZAgPiBrdcSBbmc7ICM3QjUwCivnrZEgPiB6aMO6OyAjN0I1MQor562SID4gdMWPbmc7ICM3QjUyCivnrZMgPiBqxKs7ICM3QjUzCivnrZQgPiBkw6E7ICM3QjU0CivnrZUgPiB4w61uZzsgIzdCNTUKK+etliA+IGPDqDsgIzdCNTYKK+etlyA+IHpow7JuZzsgIzdCNTcKK+etmCA+IGvDsnU7ICM3QjU4CivnrZkgPiBsw6FpOyAjN0I1OQor562aID4gYsOsOyAjN0I1QQor562bID4gc2jEgWk7ICM3QjVCCivnrZwgPiBkxIFuZzsgIzdCNUMKK+etnSA+IHpoxJNuZzsgIzdCNUQKK+etniA+IGPDqDsgIzdCNUUKK+etnyA+IGbFqzsgIzdCNUYKK+etoCA+IHnDum47ICM3QjYwCivnraEgPiB0w7o7ICM3QjYxCivnraIgPiBww6E7ICM3QjYyCivnraMgPiBsw6w7ICM3QjYzCivnraQgPiBsw6FuZzsgIzdCNjQKK+etpSA+IGrFrTsgIzdCNjUKK+etpiA+IGd1xINuOyAjN0I2Ngor562nID4gamnEg247ICM3QjY3CivnraggPiBow6FuOyAjN0I2OAor562pID4gdMOzbmc7ICM3QjY5CivnraogPiB4acOhOyAjN0I2QQor562rID4gemjDrDsgIzdCNkIKK+etrCA+IGNow6luZzsgIzdCNkMKK+etrSA+IHN1w6BuOyAjN0I2RAor562uID4gc2jDrDsgIzdCNkUKK+etryA+IHpow7k7ICM3QjZGCivnrbAgPiB6w7pvOyAjN0I3MAor562xID4geGnEg287ICM3QjcxCivnrbIgPiBzaMSBbzsgIzdCNzIKK+etsyA+IHTDrW5nOyAjN0I3Mwor5620ID4gY8OoOyAjN0I3NAor5621ID4gecOhbjsgIzdCNzUKK+ettiA+IGfEg287ICM3Qjc2CivnrbcgPiBrdcOgaTsgIzdCNzcKK+etuCA+IGfEgW47ICM3Qjc4CivnrbkgPiBjaMOzdTsgIzdCNzkKK+etuyA+IGfDoG5nOyAjN0I3Qgor5628ID4gecO6bjsgIzdCN0MKK+etviA+IHFpxIFuOyAjN0I3RQor562/ID4geGnEg287ICM3QjdGCivnroAgPiBqacSDbjsgIzdCODAKK+eugSA+IHDDujsgIzdCODEKK+eugiA+IGzDoWk7ICM3QjgyCivnroMgPiB6xY11OyAjN0I4Mwor566EID4gYsOsOyAjN0I4NAor566FID4gYsOsOyAjN0I4NQor566GID4gYsOsOyAjN0I4Ngor566HID4gZ8OoOyAjN0I4Nwor566IID4gY2jDrTsgIzdCODgKK+euiSA+IGd1xINpOyAjN0I4OQor566KID4gecWrOyAjN0I4QQor566LID4gamnEgW47ICM3QjhCCivnrowgPiB6aMOgbzsgIzdCOEMKK+eujSA+IGfFqzsgIzdCOEQKK+eujiA+IGNow607ICM3QjhFCivnro8gPiB6aMSTbmc7ICM3QjhGCivnrpAgPiBqxKtuZzsgIzdCOTAKK+eukSA+IHNow6A7ICM3QjkxCivnrpIgPiB6aMWPdTsgIzdCOTIKK+eukyA+IGzDuTsgIzdCOTMKK+eulCA+IGLDszsgIzdCOTQKK+eulSA+IGrEqzsgIzdCOTUKK+euliA+IGzDrW47ICM3Qjk2CivnrpcgPiBzdcOgbjsgIzdCOTcKK+eumCA+IGrDuW47ICM3Qjk4CivnrpkgPiBmw7o7ICM3Qjk5CivnrpogPiB6aMOhOyAjN0I5QQor566bID4gZ8WrOyAjN0I5Qgor566cID4ga8WNbmc7ICM3QjlDCivnrp0gPiBxacOhbjsgIzdCOUQKK+euniA+IHF1xIFuOyAjN0I5RQor566fID4gasO5bjsgIzdCOUYKK+euoCA+IGNow7ppOyAjN0JBMAor566hID4gZ3XEg247ICM3QkExCivnrqIgPiB5dcSBbjsgIzdCQTIKK+euoyA+IGPDqDsgIzdCQTMKK+eupCA+IGrDujsgIzdCQTQKK+eupSA+IGLFjzsgIzdCQTUKK+eupiA+IHrDqTsgIzdCQTYKK+eupyA+IHFpw6g7ICM3QkE3CivnrqggPiB0w7lvOyAjN0JBOAor566pID4gbMO6bzsgIzdCQTkKK+euqiA+IGTEgW47ICM3QkFBCivnrqsgPiB4acSBbzsgIzdCQUIKK+eurCA+IHLDuW87ICM3QkFDCivnrq0gPiBqacOgbjsgIzdCQUQKK+euriA+IHh1YW47ICM3QkFFCivnrq8gPiBiacSBbjsgIzdCQUYKK+eusCA+IHPFrW47ICM3QkIwCivnrrEgPiB4acSBbmc7ICM3QkIxCivnrrIgPiB4acSDbjsgIzdCQjIKK+eusyA+IHDDrW5nOyAjN0JCMwor5660ID4gemjEk247ICM3QkI0CivnrrUgPiBzaMSVbmc7ICM3QkI1CivnrrYgPiBow7o7ICM3QkI2CivnrrcgPiBzaMSrOyAjN0JCNwor5664ID4gemjDuTsgIzdCQjgKK+euuSA+IHl1xJM7ICM3QkI5CivnrrogPiBjaMWtbjsgIzdCQkEKK+euuyA+IGzHnDsgIzdCQkIKK+euvCA+IHfFqzsgIzdCQkMKK+euvSA+IGTFj25nOyAjN0JCRAor566+ID4geGnEgW87ICM3QkJFCivnrr8gPiBqw607ICM3QkJGCivnr4AgPiBqacOpOyAjN0JDMAor56+BID4gaHXDoW5nOyAjN0JDMQor56+CID4geMSrbmc7ICM3QkMyCivnr4MgPiBtw6lpOyAjN0JDMwor56+EID4gZsOgbjsgIzdCQzQKK+evhSA+IGNow7ppOyAjN0JDNQor56+GID4gemh1w6BuOyAjN0JDNgor56+HID4gcGnEgW47ICM3QkM3Civnr4ggPiBmxJNuZzsgIzdCQzgKK+eviSA+IHpow7o7ICM3QkM5Civnr4ogPiBow7NuZzsgIzdCQ0EKK+eviyA+IHFpw6g7ICM3QkNCCivnr4wgPiBow7N1OyAjN0JDQwor56+NID4gccSrdTsgIzdCQ0QKK+evjiA+IG1pxINvOyAjN0JDRQor56+PID4gcWnDoG47ICM3QkNGCivnr5EgPiBrw7lpOyAjN0JEMQor56+TID4gbMWPdTsgIzdCRDMKK+evlCA+IHnDum47ICM3QkQ0Civnr5UgPiBow6k7ICM3QkQ1Civnr5YgPiB0w6FuZzsgIzdCRDYKK+evlyA+IHl1w6g7ICM3QkQ3Civnr5ggPiBjaMWNdTsgIzdCRDgKK+evmSA+IGfEgW87ICM3QkQ5Civnr5ogPiBmxJVpOyAjN0JEQQor56+bID4gcsO5bzsgIzdCREIKK+evnCA+IHpoxJNuZzsgIzdCREMKK+evnSA+IGfFjXU7ICM3QkRECivnr54gPiBuacOoOyAjN0JERQor56+fID4gcWnDoG47ICM3QkRGCivnr6AgPiB4acSDbzsgIzdCRTAKK+evoSA+IGN1w6BuOyAjN0JFMQor56+iID4gZ8WNbmc7ICM3QkUyCivnr6MgPiBww6FuZzsgIzdCRTMKK+evpCA+IGTFrTsgIzdCRTQKK+evpSA+IGzDrDsgIzdCRTUKK+evpiA+IGLDrDsgIzdCRTYKK+evpyA+IHpow7pvOyAjN0JFNwor56+oID4gY2jDujsgIzdCRTgKK+evqSA+IHNoxIFpOyAjN0JFOQor56+qID4gY2jDrTsgIzdCRUEKK+evqyA+IHpow7o7ICM3QkVCCivnr6wgPiBxacSBbmc7ICM3QkVDCivnr60gPiBsw7NuZzsgIzdCRUQKK+evriA+IGzDoW47ICM3QkVFCivnr68gPiBqacSBbjsgIzdCRUYKK+evsCA+IGLDuTsgIzdCRjAKK+evsSA+IGzDrTsgIzdCRjEKK+evsiA+IGjDuWk7ICM3QkYyCivnr7MgPiBiw6w7ICM3QkYzCivnr7QgPiBkw607ICM3QkY0Civnr7UgPiBjxY1uZzsgIzdCRjUKK+evtiA+IHnEgW47ICM3QkY2Civnr7cgPiBww6luZzsgIzdCRjcKK+evuCA+IHPEk247ICM3QkY4Civnr7kgPiB6aHXDoG47ICM3QkY5Civnr7ogPiBww6FpOyAjN0JGQQor56+7ID4gcGnDoG87ICM3QkZCCivnr7wgPiBkxY11OyAjN0JGQwor56+9ID4gecWtOyAjN0JGRAor56++ID4gbWnDqDsgIzdCRkUKK+evvyA+IHpodcSBbjsgIzdCRkYKK+ewgCA+IHrDqTsgIzdDMDAKK+ewgSA+IHjErTsgIzdDMDEKK+ewgiA+IGfDum87ICM3QzAyCivnsIMgPiB5w607ICM3QzAzCivnsIQgPiBow7k7ICM3QzA0CivnsIUgPiBjaMSDbjsgIzdDMDUKK+ewhiA+IGvDsnU7ICM3QzA2CivnsIcgPiBjw7k7ICM3QzA3CivnsIggPiBww61uZzsgIzdDMDgKK+ewiSA+IGNow7J1OyAjN0MwOQor57CKID4gasSrOyAjN0MwQQor57CLID4gZ8WtaTsgIzdDMEIKK+ewjCA+IHPDuTsgIzdDMEMKK+ewjSA+IGzFj3U7ICM3QzBECivnsI4gPiB6aMOgOyAjN0MwRQor57CPID4gbMO5OyAjN0MwRgor57CQID4gbmnEg247ICM3QzEwCivnsJEgPiBzxatvOyAjN0MxMQor57CSID4gY3XDoG47ICM3QzEyCivnsJQgPiBzxatvOyAjN0MxNAor57CVID4gbMOoOyAjN0MxNQor57CWID4gZHXDoG47ICM3QzE2CivnsJggPiB4acSBbzsgIzdDMTgKK+ewmSA+IGLDszsgIzdDMTkKK+ewmiA+IG3DrDsgIzdDMUEKK+ewmyA+IHPEqzsgIzdDMUIKK+ewnCA+IGTDoG5nOyAjN0MxQwor57CdID4gbGnDoW87ICM3QzFECivnsJ4gPiBkxIFuOyAjN0MxRQor57CfID4gZGnDoG47ICM3QzFGCivnsKAgPiBmxa07ICM3QzIwCivnsKEgPiBqacSDbjsgIzdDMjEKK+ewoiA+IG3ErW47ICM3QzIyCivnsKMgPiBrw7lpOyAjN0MyMwor57CkID4gZMOgaTsgIzdDMjQKK+ewpSA+IHFpw6FvOyAjN0MyNQor57CmID4gZMSTbmc7ICM3QzI2CivnsKcgPiBodcOhbmc7ICM3QzI3CivnsKggPiBzxa1uOyAjN0MyOAor57CpID4gbMOhbzsgIzdDMjkKK+ewqiA+IHrEgW47ICM3QzJBCivnsKsgPiB4acSBbzsgIzdDMkIKK+ewrCA+IGTDuTsgIzdDMkMKK+ewrSA+IHNow6w7ICM3QzJECivnsK4gPiB6xIFuOyAjN0MyRQor57CwID4gcMOhaTsgIzdDMzAKK+ewsiA+IHDDoWk7ICM3QzMyCivnsLMgPiBnw6BuOyAjN0MzMwor57C0ID4gasO5OyAjN0MzNAor57C1ID4gZMO5OyAjN0MzNQor57C2ID4gbMO5OyAjN0MzNgor57C3ID4gecOhbjsgIzdDMzcKK+ewuCA+IGLDsjsgIzdDMzgKK+ewuSA+IGTEgW5nOyAjN0MzOQor57C6ID4gc8OgaTsgIzdDM0EKK+ewuyA+IGvEkzsgIzdDM0IKK+ewvCA+IGzDs25nOyAjN0MzQwor57C9ID4gcWnEgW47ICM3QzNECivnsL4gPiBsacOhbjsgIzdDM0UKK+ewvyA+IGLDszsgIzdDM0YKK+exgCA+IHpow7J1OyAjN0M0MAor57GBID4gbMOgaTsgIzdDNDEKK+exgyA+IGzDoW47ICM3QzQzCivnsYQgPiBrw7lpOyAjN0M0NAor57GFID4gecO6OyAjN0M0NQor57GGID4geXXDqDsgIzdDNDYKK+exhyA+IGjDoW87ICM3QzQ3CivnsYggPiB6aMSTbjsgIzdDNDgKK+exiSA+IHTDoWk7ICM3QzQ5CivnsYogPiB0w6w7ICM3QzRBCivnsYsgPiBtw607ICM3QzRCCivnsYwgPiBjaMOzdTsgIzdDNEMKK+exjSA+IGrDrTsgIzdDNEQKK+exkCA+IHTDqW5nOyAjN0M1MAor57GRID4gemh1w6BuOyAjN0M1MQor57GSID4gemjDsnU7ICM3QzUyCivnsZMgPiBmxIFuOyAjN0M1Mwor57GUID4gc8WPdTsgIzdDNTQKK+exlSA+IHpow7J1OyAjN0M1NQor57GXID4gemjDum87ICM3QzU3CivnsZggPiB0w6luZzsgIzdDNTgKK+exmSA+IGzDuTsgIzdDNTkKK+exmiA+IGzDujsgIzdDNUEKK+exmyA+IGppxIFuOyAjN0M1Qgor57GcID4gdMO5bzsgIzdDNUMKK+exnSA+IHnDrW5nOyAjN0M1RAor57GeID4gecO5OyAjN0M1RQor57GfID4gbMOgaTsgIzdDNUYKK+exoCA+IGzDs25nOyAjN0M2MAor57GiID4gbGnDoW47ICM3QzYyCivnsaMgPiBsw6FuOyAjN0M2Mwor57GkID4gcWnEgW47ICM3QzY0CivnsaUgPiB5dcOoOyAjN0M2NQor57GmID4gemjFjW5nOyAjN0M2Ngor57GnID4gccO6OyAjN0M2Nwor57GoID4gbGnDoW47ICM3QzY4CivnsakgPiBiacSBbjsgIzdDNjkKK+exqiA+IGR1w6BuOyAjN0M2QQor57GrID4genXEg247ICM3QzZCCivnsawgPiBsw607ICM3QzZDCivnsa0gPiBzxKs7ICM3QzZECivnsa4gPiBsw7pvOyAjN0M2RQor57GvID4gecOtbmc7ICM3QzZGCivnsbAgPiB5dcOoOyAjN0M3MAor57GxID4gemjDum87ICM3QzcxCivnsbIgPiB4xas7ICM3QzcyCivnsbMgPiBtxK07ICM3QzczCivnsbQgPiBkw607ICM3Qzc0CivnsbUgPiBmw6FuOyAjN0M3NQor57G2ID4gc2jEk247ICM3Qzc2CivnsbcgPiB6aMOpOyAjN0M3Nwor57G4ID4gc2jEk247ICM3Qzc4CivnsbkgPiBux5o7ICM3Qzc5CivnsbogPiB4acOpOyAjN0M3QQor57G7ID4gbMOoaTsgIzdDN0IKK+exvCA+IHhpxIFuOyAjN0M3Qwor57G9ID4gesStOyAjN0M3RAor57G+ID4gbsOtOyAjN0M3RQor57G/ID4gY8O5bjsgIzdDN0YKK+eygSA+IHFpxIFuOyAjN0M4MQor57KDID4gYsStOyAjN0M4Mwor57KEID4gYsSDbjsgIzdDODQKK+eyhSA+IHfDuTsgIzdDODUKK+eyhiA+IHNoxIE7ICM3Qzg2CivnsocgPiBrxIFuZzsgIzdDODcKK+eyiCA+IHLFj3U7ICM3Qzg4CivnsokgPiBmxJVuOyAjN0M4OQor57KKID4gYsOsOyAjN0M4QQor57KLID4gY8O5aTsgIzdDOEIKK+eyjSA+IGzDrTsgIzdDOEQKK+eyjiA+IGNoxK07ICM3QzhFCivnspEgPiBixIE7ICM3QzkxCivnspIgPiBsw6w7ICM3QzkyCivnspMgPiBnxIFuOyAjN0M5Mwor57KUID4gasO5OyAjN0M5NAor57KVID4gcMOyOyAjN0M5NQor57KWID4gbcOyOyAjN0M5Ngor57KXID4gY8WrOyAjN0M5Nwor57KYID4gbmnDoW47ICM3Qzk4CivnspkgPiB6aMOydTsgIzdDOTkKK+eymiA+IGzDrTsgIzdDOUEKK+eymyA+IHPDuTsgIzdDOUIKK+eynCA+IHRpw6BvOyAjN0M5Qwor57KdID4gbMOsOyAjN0M5RAor57KeID4gccSrOyAjN0M5RQor57KfID4gc8O5OyAjN0M5Rgor57KgID4gaMOzbmc7ICM3Q0EwCivnsqEgPiB0w7NuZzsgIzdDQTEKK+eyoiA+IHrEqzsgIzdDQTIKK+eyoyA+IGPDqDsgIzdDQTMKK+eypCA+IHl1w6g7ICM3Q0E0CivnsqUgPiB6aMWNdTsgIzdDQTUKK+eypiA+IGzDrG47ICM3Q0E2CivnsqcgPiB6aHXEgW5nOyAjN0NBNwor57KoID4gYsSDaTsgIzdDQTgKK+eyqiA+IGbDqG47ICM3Q0FBCivnsq4gPiBsacOhbmc7ICM3Q0FFCivnsq8gPiB4acOgbjsgIzdDQUYKK+eysCA+IGbDujsgIzdDQjAKK+eysSA+IGxpw6FuZzsgIzdDQjEKK+eysiA+IGPDoG47ICM3Q0IyCivnsrMgPiBnxJNuZzsgIzdDQjMKK+eytCA+IGzErTsgIzdDQjQKK+eytSA+IHl1w6g7ICM3Q0I1CivnsrYgPiBsw7k7ICM3Q0I2CivnsrcgPiBqw7o7ICM3Q0I3CivnsrggPiBxw607ICM3Q0I4CivnsrkgPiBjw7lpOyAjN0NCOQor57K6ID4gYsOgaTsgIzdDQkEKK+eyuyA+IHpoxIFuZzsgIzdDQkIKK+eyvCA+IGzDrW47ICM3Q0JDCivnsr0gPiB6w7JuZzsgIzdDQkQKK+eyviA+IGrEq25nOyAjN0NCRQor57K/ID4gZ8WtbzsgIzdDQkYKK+ezgSA+IHPEgW47ICM3Q0MxCivns4IgPiBzxINuOyAjN0NDMgor57ODID4gdMOhbmc7ICM3Q0MzCivns4QgPiBiacSBbjsgIzdDQzQKK+ezhSA+IHLFj3U7ICM3Q0M1Civns4YgPiBtacOgbjsgIzdDQzYKK+ezhyA+IGjDs3U7ICM3Q0M3Civns4ggPiB4xa07ICM3Q0M4Civns4kgPiB6w7JuZzsgIzdDQzkKK+eziiA+IGjDujsgIzdDQ0EKK+eziyA+IGppw6BuOyAjN0NDQgor57OMID4gesOhbjsgIzdDQ0MKK+ezjSA+IGPDrTsgIzdDQ0QKK+ezjiA+IGzDrTsgIzdDQ0UKK+ezjyA+IHhpw6g7ICM3Q0NGCivns5AgPiBmxas7ICM3Q0QwCivns5EgPiBuw6w7ICM3Q0QxCivns5IgPiBiw6hpOyAjN0NEMgor57OTID4gZ8WtOyAjN0NEMwor57OUID4geMStdTsgIzdDRDQKK+ezlSA+IGfEgW87ICM3Q0Q1Civns5YgPiB0w6FuZzsgIzdDRDYKK+ezlyA+IHHErXU7ICM3Q0Q3Civns5kgPiBjxIFvOyAjN0NEOQor57OaID4gemh1xIFuZzsgIzdDREEKK+ezmyA+IHTDoW5nOyAjN0NEQgor57OcID4gbcOtOyAjN0NEQwor57OdID4gc8SBbjsgIzdDREQKK+ezniA+IGbDqG47ICM3Q0RFCivns58gPiB6xIFvOyAjN0NERgor57OgID4ga8SBbmc7ICM3Q0UwCivns6EgPiBqacOgbmc7ICM3Q0UxCivns6IgPiBtw7M7ICM3Q0UyCivns6MgPiBzxINuOyAjN0NFMwor57OkID4gc8SDbjsgIzdDRTQKK+ezpSA+IG7DuW87ICM3Q0U1Civns6YgPiB4xKs7ICM3Q0U2Civns6cgPiBsacOhbmc7ICM3Q0U3Civns6ggPiBqacOgbmc7ICM3Q0U4Civns6kgPiBrdcOgaTsgIzdDRTkKK+ezqiA+IGLDszsgIzdDRUEKK+ezqyA+IGh1w6FuOyAjN0NFQgor57OtID4gesOybmc7ICM3Q0VECivns64gPiB4acOgbjsgIzdDRUUKK+ezryA+IG7DuW87ICM3Q0VGCivns7AgPiB0dcOhbjsgIzdDRjAKK+ezsSA+IG5pw6g7ICM3Q0YxCivns7IgPiBsw6w7ICM3Q0YyCivns7MgPiB6w7lvOyAjN0NGMwor57O0ID4gZMOtOyAjN0NGNAor57O1ID4gbmnDqDsgIzdDRjUKK+eztiA+IHRpw6BvOyAjN0NGNgor57O3ID4gbMOhbjsgIzdDRjcKK+ezuCA+IG3DrDsgIzdDRjgKK+ezuSA+IGppxINvJyAnc8SrJyAncMOhbmc7ICM3Q0Y5Civns7ogPiBqxKt1OyAjN0NGQQor57O7ID4geMOsOyAjN0NGQgor57O8ID4gZ8WNbmc7ICM3Q0ZDCivns70gPiB6aMSVbmc7ICM3Q0ZECivns74gPiBqxKt1OyAjN0NGRQor57O/ID4gecOydTsgIzdDRkYKK+e0gCA+IGrDrDsgIzdEMDAKK+e0gSA+IGNow6A7ICM3RDAxCivntIIgPiB6aMOydTsgIzdEMDIKK+e0gyA+IHjDum47ICM3RDAzCivntIQgPiB5dcSTOyAjN0QwNAor57SFID4gaMOzbmc7ICM3RDA1CivntIYgPiB5xas7ICM3RDA2CivntIcgPiBow6k7ICM3RDA3CivntIggPiB3w6FuOyAjN0QwOAor57SJID4gcsOobjsgIzdEMDkKK+e0iiA+IHfDqG47ICM3RDBBCivntIsgPiB3w6luOyAjN0QwQgor57SMID4gccOtdTsgIzdEMEMKK+e0jSA+IG7DoDsgIzdEMEQKK+e0jiA+IHrEqzsgIzdEMEUKK+e0jyA+IHTFj3U7ICM3RDBGCivntJAgPiBuxK11OyAjN0QxMAor57SRID4gZsOzdTsgIzdEMTEKK+e0kiA+IGppw6g7ICM3RDEyCivntJMgPiBzaMWrOyAjN0QxMwor57SUID4gY2jDum47ICM3RDE0CivntJUgPiBww607ICM3RDE1CivntJYgPiB5xK1uOyAjN0QxNgor57SXID4gc2jEgTsgIzdEMTcKK+e0mCA+IGjDs25nOyAjN0QxOAor57SZID4gemjErTsgIzdEMTkKK+e0miA+IGrDrTsgIzdEMUEKK+e0myA+IGbEk247ICM3RDFCCivntJwgPiB5w7puOyAjN0QxQwor57SdID4gcsOpbjsgIzdEMUQKK+e0niA+IGTEg247ICM3RDFFCivntJ8gPiBqxKtuOyAjN0QxRgor57SgID4gc8O5OyAjN0QyMAor57ShID4gZsSDbmc7ICM3RDIxCivntKIgPiBzxa1vOyAjN0QyMgor57SjID4gY8O5aTsgIzdEMjMKK+e0pCA+IGrErXU7ICM3RDI0CivntKUgPiB6aMOhOyAjN0QyNQor57SnID4gasStbjsgIzdEMjcKK+e0qCA+IGbDuTsgIzdEMjgKK+e0qSA+IHpow6w7ICM3RDI5CivntKogPiBjxK07ICM3RDJBCivntKsgPiB6xK07ICM3RDJCCivntKwgPiBjaMOzdTsgIzdEMkMKK+e0rSA+IGjDs25nOyAjN0QyRAor57SuID4gemjDoTsgIzdEMkUKK+e0ryA+IGzDqGk7ICM3RDJGCivntLAgPiB4w6w7ICM3RDMwCivntLEgPiBmw7o7ICM3RDMxCivntLIgPiB4acOoOyAjN0QzMgor57SzID4gc2jEk247ICM3RDMzCivntLQgPiBiw6hpOyAjN0QzNAor57S1ID4gemjDuTsgIzdEMzUKK+e0tiA+IHHFrTsgIzdEMzYKK+e0tyA+IGzDrW5nOyAjN0QzNwor57S4ID4gemjDuTsgIzdEMzgKK+e0uSA+IHNow6BvOyAjN0QzOQor57S6ID4gZ8OgbjsgIzdEM0EKK+e0uyA+IHnEgW5nOyAjN0QzQgor57S8ID4gZsO6OyAjN0QzQwor57S9ID4gdMO6bzsgIzdEM0QKK+e0viA+IHpoxJVuOyAjN0QzRQor57S/ID4gZMOgaTsgIzdEM0YKK+e1gCA+IHpow7pvOyAjN0Q0MAor57WBID4gc2jEqzsgIzdENDEKK+e1giA+IHpoxY1uZzsgIzdENDIKK+e1gyA+IHhpw6FuOyAjN0Q0Mwor57WEID4gesWtOyAjN0Q0NAor57WFID4gasStb25nOyAjN0Q0NQor57WGID4gYsOgbjsgIzdENDYKK+e1hyA+IGrDuTsgIzdENDcKK+e1iCA+IG3DsjsgIzdENDgKK+e1iSA+IHNow7k7ICM3RDQ5CivntYogPiB6w7lpOyAjN0Q0QQor57WMID4gasSrbmc7ICM3RDRDCivntY0gPiByw6luOyAjN0Q0RAor57WOID4gaMOobmc7ICM3RDRFCivntY8gPiB4acOoOyAjN0Q0Rgor57WQID4gamnDqTsgIzdENTAKK+e1kSA+IHpoxas7ICM3RDUxCivntZIgPiBjaMOzdTsgIzdENTIKK+e1kyA+IGd1w6A7ICM3RDUzCivntZQgPiBixINpOyAjN0Q1NAor57WVID4ganXDqTsgIzdENTUKK+e1liA+IGt1w6BuZzsgIzdENTYKK+e1lyA+IGjDujsgIzdENTcKK+e1mCA+IGPDrDsgIzdENTgKK+e1mSA+IGfEk25nOyAjN0Q1OQor57WaID4gZ8STbmc7ICM3RDVBCivntZsgPiB0xIFvOyAjN0Q1Qgor57WcID4geGnDqTsgIzdENUMKK+e1nSA+IGvDuTsgIzdENUQKK+e1niA+IGppxINvOyAjN0Q1RQor57WfID4gcXXEgW47ICM3RDVGCivntaAgPiBnxINpOyAjN0Q2MAor57WhID4gbMO5bzsgIzdENjEKK+e1oiA+IHh1w6BuOyAjN0Q2Mgor57WjID4gYsSrbmc7ICM3RDYzCivntaQgPiB4acOgbjsgIzdENjQKK+e1pSA+IGbDujsgIzdENjUKK+e1piA+IGfElWk7ICM3RDY2CivntacgPiB0w7NuZzsgIzdENjcKK+e1qCA+IHLDs25nOyAjN0Q2OAor57WpID4gdGnDoG87ICM3RDY5CivntaogPiB5xKtuOyAjN0Q2QQor57WrID4gbMSVaTsgIzdENkIKK+e1rCA+IHhpw6g7ICM3RDZDCivnta0gPiBxdcOgbjsgIzdENkQKK+e1riA+IHjDuTsgIzdENkUKK+e1ryA+IGzHnG47ICM3RDZGCivntbAgPiBkacOpOyAjN0Q3MAor57WxID4gdMWPbmc7ICM3RDcxCivntbIgPiBzxKs7ICM3RDcyCivntbMgPiBqacOgbmc7ICM3RDczCivntbQgPiB4acOhbmc7ICM3RDc0CivntbUgPiBow7lpOyAjN0Q3NQor57W2ID4ganXDqTsgIzdENzYKK+e1tyA+IHpow607ICM3RDc3CivntbggPiBqacSDbjsgIzdENzgKK+e1uSA+IGp1w6BuOyAjN0Q3OQor57W6ID4gY2jEqzsgIzdEN0EKK+e1uyA+IG1pxINuOyAjN0Q3Qgor57W8ID4gemjElW47ICM3RDdDCivntb0gPiBsx5o7ICM3RDdECivntb4gPiBjaMOpbmc7ICM3RDdFCivntb8gPiBxw611OyAjN0Q3Rgor57aAID4gc2jFqzsgIzdEODAKK+e2gSA+IGLEg25nOyAjN0Q4MQor57aCID4gdMWPbmc7ICM3RDgyCivntoMgPiB4acSBbzsgIzdEODMKK+e2hCA+IHfDoG47ICM3RDg0CivntoUgPiBxxKtuOyAjN0Q4NQor57aGID4gZ8SVbmc7ICM3RDg2CivntocgPiB4xK11OyAjN0Q4Nwor57aIID4gdMOtOyAjN0Q4OAor57aJID4geMOsdTsgIzdEODkKK+e2iiA+IHhpw6k7ICM3RDhBCivntosgPiBow7NuZzsgIzdEOEIKK+e2jCA+IHjDrDsgIzdEOEMKK+e2jSA+IGbDujsgIzdEOEQKK+e2jiA+IHTEq25nOyAjN0Q4RQor57aPID4gc8WraTsgIzdEOEYKK+e2kCA+IGTDuWk7ICM3RDkwCivntpEgPiBrxa1uOyAjN0Q5MQor57aSID4gZsWrOyAjN0Q5Mgor57aTID4gasSrbmc7ICM3RDkzCivntpQgPiBow7k7ICM3RDk0CivntpUgPiB6aMSrOyAjN0Q5NQor57aWID4gecOhbjsgIzdEOTYKK+e2lyA+IGrErW9uZzsgIzdEOTcKK+e2mCA+IGbDqW5nOyAjN0Q5OAor57aZID4gasOsOyAjN0Q5OQor57acID4gesOybmc7ICM3RDlDCivntp0gPiBsw61uOyAjN0Q5RAor57aeID4gZMWtbzsgIzdEOUUKK+e2nyA+IGzDrDsgIzdEOUYKK+e2oCA+IGzHnDsgIzdEQTAKK+e2oSA+IGxpw6FuZzsgIzdEQTEKK+e2oiA+IGNow7N1OyAjN0RBMgor57ajID4gcXXEg247ICM3REEzCivntqQgPiBzaMOgbzsgIzdEQTQKK+e2pSA+IHHDrDsgIzdEQTUKK+e2piA+IHHDrTsgIzdEQTYKK+e2pyA+IHpoxa1uOyAjN0RBNwor57aoID4gccOtOyAjN0RBOAor57apID4gd8SDbjsgIzdEQTkKK+e2qiA+IHFpw6BuOyAjN0RBQQor57arID4geGnDoG47ICM3REFCCivntqwgPiBzaMOydTsgIzdEQUMKK+e2rSA+IHfDqWk7ICM3REFECivntq4gPiBxxK07ICM3REFFCivntq8gPiB0w6FvOyAjN0RBRgor57awID4gd8SDbjsgIzdEQjAKK+e2sSA+IGfEgW5nOyAjN0RCMQor57ayID4gd8SDbmc7ICM3REIyCivntrMgPiBixJNuZzsgIzdEQjMKK+e2tCA+IHpow7lpOyAjN0RCNAor57a1ID4gY8SDaTsgIzdEQjUKK+e2tiA+IGfFrW87ICM3REI2CivntrcgPiBjw7lpOyAjN0RCNwor57a4ID4gbMO6bjsgIzdEQjgKK+e2uSA+IGzErXU7ICM3REI5CivntrogPiBxxK07ICM3REJBCivntrsgPiB6aMOgbjsgIzdEQkIKK+e2vCA+IGLEk2k7ICM3REJDCivntr0gPiBjaMO5bzsgIzdEQkQKK+e2viA+IGzDrW5nOyAjN0RCRQor57a/ID4gbWnDoW47ICM3REJGCivnt4AgPiBxxKs7ICM3REMwCivnt4EgPiBxacOoOyAjN0RDMQor57eCID4gdMSBbjsgIzdEQzIKK+e3gyA+IHrFjW5nOyAjN0RDMwor57eEID4gZ8WtbjsgIzdEQzQKK+e3hSA+IHrFjXU7ICM3REM1Civnt4YgPiB5w6w7ICM3REM2Civnt4cgPiB6xKs7ICM3REM3Civnt4ggPiB4w6xuZzsgIzdEQzgKK+e3iSA+IGxpxINuZzsgIzdEQzkKK+e3iiA+IGrErW47ICM3RENBCivnt4sgPiBmxJNpOyAjN0RDQgor57eMID4gcsO6aTsgIzdEQ0MKK+e3jSA+IG3DrW47ICM3RENECivnt44gPiB5w7k7ICM3RENFCivnt48gPiB6xY9uZzsgIzdEQ0YKK+e3kCA+IGbDoW47ICM3REQwCivnt5EgPiBsx5w7ICM3REQxCivnt5IgPiB4w7k7ICM3REQyCivnt5MgPiB5aW5nbDsgIzdERDMKK+e3lCA+IHpow6BuZzsgIzdERDQKK+e3liA+IHjDuTsgIzdERDYKK+e3lyA+IHhpxIFuZzsgIzdERDcKK+e3mCA+IGppxIFuOyAjN0REOAor57eZID4ga8OoOyAjN0REOQor57eaID4geGnDoG47ICM3RERBCivnt5sgPiBydcSDbjsgIzdEREIKK+e3nCA+IG1pw6FuOyAjN0REQwor57edID4gccOsOyAjN0RERAor57eeID4gZHXDoG47ICM3RERFCivnt58gPiB6aMOybmc7ICM3RERGCivnt6AgPiBkw6w7ICM3REUwCivnt6EgPiBtw61uOyAjN0RFMQor57eiID4gbWnDoW87ICM3REUyCivnt6MgPiB5dcOhbjsgIzdERTMKK+e3pCA+IHhpw6g7ICM3REU0Civnt6UgPiBixINvOyAjN0RFNQor57emID4gc8SrOyAjN0RFNgor57enID4gccSrdTsgIzdERTcKK+e3qCA+IGJpxIFuOyAjN0RFOAor57epID4gaHXEg247ICM3REU5Civnt6ogPiBnxJNuZzsgIzdERUEKK+e3qyA+IGPFjW5nOyAjN0RFQgor57esID4gbWnEg247ICM3REVDCivnt60gPiB3w6hpOyAjN0RFRAor57euID4gZsO5OyAjN0RFRQor57evID4gd8SVaTsgIzdERUYKK+e3sCA+IHnDujsgIzdERjAKK+e3sSA+IGfFjXU7ICM3REYxCivnt7IgPiBtacSDbzsgIzdERjIKK+e3syA+IHhpw6k7ICM3REYzCivnt7QgPiBsacOgbjsgIzdERjQKK+e3tSA+IHrFjW5nOyAjN0RGNQor57e2ID4gYmnDoG47ICM3REY2Civnt7cgPiB5w7luOyAjN0RGNwor57e4ID4gecSrbjsgIzdERjgKK+e3uSA+IHTDrTsgIzdERjkKK+e3uiA+IGd1xIE7ICM3REZBCivnt7sgPiB6aMOsOyAjN0RGQgor57e8ID4gecWrbjsgIzdERkMKK+e3vSA+IGNoxJNuZzsgIzdERkQKK+e3viA+IGNow6FuOyAjN0RGRQor57e/ID4gZMOgaTsgIzdERkYKK+e4gCA+IHhpw6E7ICM3RTAwCivnuIEgPiB5dcOhbjsgIzdFMDEKK+e4giA+IHrFj25nOyAjN0UwMgor57iDID4geMWrOyAjN0UwMwor57iGID4gZ8STbmc7ICM3RTA2CivnuIggPiB5w61uZzsgIzdFMDgKK+e4iSA+IGrDrG47ICM3RTA5CivnuIogPiB5w6w7ICM3RTBBCivnuIsgPiB6aMO5aTsgIzdFMEIKK+e4jCA+IG7DrDsgIzdFMEMKK+e4jSA+IGLEgW5nOyAjN0UwRAor57iOID4gZ8WtOyAjN0UwRQor57iPID4gcMOhbjsgIzdFMEYKK+e4kCA+IHpow7J1OyAjN0UxMAor57iRID4gamnEgW47ICM3RTExCivnuJIgPiBjxa1vOyAjN0UxMgor57iTID4gcXXEg247ICM3RTEzCivnuJQgPiBzaHXEg25nOyAjN0UxNAor57iVID4gecWrbjsgIzdFMTUKK+e4liA+IHhpw6E7ICM3RTE2CivnuJcgPiBzaHXEgWk7ICM3RTE3CivnuJggPiB4xKs7ICM3RTE4CivnuJkgPiByw7NuZzsgIzdFMTkKK+e4miA+IHTEgW87ICM3RTFBCivnuJsgPiBmw7o7ICM3RTFCCivnuJwgPiB5w7puOyAjN0UxQwor57idID4gemjEk247ICM3RTFECivnuJ4gPiBnxINvOyAjN0UxRQor57ifID4gcsO5OyAjN0UxRgor57igID4gaMO6OyAjN0UyMAor57ihID4gesSDaTsgIzdFMjEKK+e4oiA+IHTDqW5nOyAjN0UyMgor57ijID4geGnDoG47ICM3RTIzCivnuKQgPiBzw7k7ICM3RTI0CivnuKUgPiB6aMSVbjsgIzdFMjUKK+e4piA+IHrDsm5nOyAjN0UyNgor57inID4gdMSBbzsgIzdFMjcKK+e4qSA+IGPDoGk7ICM3RTI5CivnuKogPiBiw6w7ICM3RTJBCivnuKsgPiBmw6luZzsgIzdFMkIKK+e4rCA+IGPDuTsgIzdFMkMKK+e4rSA+IGzDrTsgIzdFMkQKK+e4riA+IHPFq287ICM3RTJFCivnuK8gPiB5xK1uOyAjN0UyRgor57iwID4geMStOyAjN0UzMAor57ixID4gesOybmc7ICM3RTMxCivnuLIgPiBsw6lpOyAjN0UzMgor57izID4gemh1w6BuOyAjN0UzMwor57i0ID4gcWnEgW47ICM3RTM0CivnuLUgPiBtw6BuOyAjN0UzNQor57i2ID4gemjDrTsgIzdFMzYKK+e4tyA+IGzHmjsgIzdFMzcKK+e4uCA+IG3DsjsgIzdFMzgKK+e4uSA+IHBpxINvOyAjN0UzOQor57i6ID4gbGnDoW47ICM3RTNBCivnuLsgPiBtw607ICM3RTNCCivnuLwgPiB4dcOgbjsgIzdFM0MKK+e4vSA+IHrFj25nOyAjN0UzRAor57i+ID4gasSrOyAjN0UzRQor57i/ID4gc2jEgW47ICM3RTNGCivnuYAgPiBzw7lpOyAjN0U0MAor57mBID4gZsOhbjsgIzdFNDEKK+e5giA+IHNodcOgaTsgIzdFNDIKK+e5gyA+IGLEk25nOyAjN0U0Mwor57mEID4gecSrOyAjN0U0NAor57mFID4gc8SBbzsgIzdFNDUKK+e5hiA+IG3Ds3U7ICM3RTQ2CivnuYcgPiB6aMOydTsgIzdFNDcKK+e5iCA+IHFpxINuZzsgIzdFNDgKK+e5iSA+IGjDum47ICM3RTQ5CivnuYsgPiB4w6w7ICM3RTRCCivnuY0gPiB4w6x1OyAjN0U0RAor57mOID4gcsOhbjsgIzdFNEUKK+e5jyA+IHh1w6BuOyAjN0U0Rgor57mQID4gaMO5aTsgIzdFNTAKK+e5kSA+IHFpxIFvOyAjN0U1MQor57mSID4gesSTbmc7ICM3RTUyCivnuZMgPiB6xa1vOyAjN0U1Mwor57mUID4gemjEqzsgIzdFNTQKK+e5lSA+IHNow6BuOyAjN0U1NQor57mWID4gc8SDbjsgIzdFNTYKK+e5lyA+IGzDrW47ICM3RTU3CivnuZggPiB5w7k7ICM3RTU4CivnuZkgPiBmxIFuOyAjN0U1OQor57maID4gbGnDoW87ICM3RTVBCivnuZsgPiBjaMO5bzsgIzdFNUIKK+e5nCA+IHrFq247ICM3RTVDCivnuZ0gPiBqacOgbjsgIzdFNUQKK+e5niA+IHLDoG87ICM3RTVFCivnuZ8gPiBjaMSDbjsgIzdFNUYKK+e5oCA+IHLFrWk7ICM3RTYwCivnuaEgPiB4w6x1OyAjN0U2MQor57miID4gaMO5aTsgIzdFNjIKK+e5oyA+IGh1w6A7ICM3RTYzCivnuaQgPiB6dcSDbjsgIzdFNjQKK+e5pSA+IHjEqzsgIzdFNjUKK+e5piA+IHFpxINuZzsgIzdFNjYKK+e5qCA+IGTDoTsgIzdFNjgKK+e5qSA+IHNow6luZzsgIzdFNjkKK+e5qiA+IGjDuWk7ICM3RTZBCivnuasgPiB4w6w7ICM3RTZCCivnuawgPiBzw6g7ICM3RTZDCivnua0gPiBqacSDbjsgIzdFNkQKK+e5riA+IGppxIFuZzsgIzdFNkUKK+e5ryA+IGh1w6FuOyAjN0U2Rgor57mwID4gesSDbzsgIzdFNzAKK+e5sSA+IGPFjW5nOyAjN0U3MQor57myID4gamnDqDsgIzdFNzIKK+e5syA+IGppxINvOyAjN0U3Mwor57m0ID4gYsOyOyAjN0U3NAor57m1ID4gY2jDoW47ICM3RTc1CivnubYgPiB5w6w7ICM3RTc2CivnubcgPiBuw6FvOyAjN0U3Nwor57m4ID4gc8O5aTsgIzdFNzgKK+e5uSA+IHnDrDsgIzdFNzkKK+e5uiA+IHNoxINpOyAjN0U3QQor57m7ID4geMWrOyAjN0U3Qgor57m8ID4gasOsOyAjN0U3Qwor57m9ID4gYsSrbjsgIzdFN0QKK+e5viA+IHFpxINuOyAjN0U3RQor57m/ID4gbMOhbjsgIzdFN0YKK+e6gCA+IHDDujsgIzdFODAKK+e6gSA+IHjFq247ICM3RTgxCivnuoIgPiB6dcSDbjsgIzdFODIKK+e6gyA+IHHDrTsgIzdFODMKK+e6hCA+IHDDqW5nOyAjN0U4NAor57qFID4gbMOsOyAjN0U4NQor57qGID4gbcOyOyAjN0U4Ngor57qHID4gbMOoaTsgIzdFODcKK+e6iCA+IHhpw6k7ICM3RTg4CivnuokgPiB6dcSDbjsgIzdFODkKK+e6iiA+IGt1w6BuZzsgIzdFOEEKK+e6iyA+IHnFjXU7ICM3RThCCivnuowgPiB4w7k7ICM3RThDCivnuo0gPiBsw6lpOyAjN0U4RAor57qOID4geGnEgW47ICM3RThFCivnuo8gPiBjaMOhbjsgIzdFOEYKK+e6kSA+IGzDujsgIzdFOTEKK+e6kiA+IGNow6FuOyAjN0U5Mgor57qTID4gecSrbmc7ICM3RTkzCivnupQgPiBjw6FpOyAjN0U5NAor57qVID4geGnEgW5nOyAjN0U5NQor57qWID4geGnEgW47ICM3RTk2CivnupcgPiB6xatpOyAjN0U5Nwor57qYID4genXEg247ICM3RTk4CivnupkgPiBsw7lvOyAjN0U5OQor57qaID4geMStOyAjN0U5QQor57qbID4gZMOgbzsgIzdFOUIKK+e6nCA+IGzDoG47ICM3RTlDCivnup0gPiBsw6lpOyAjN0U5RAor57qeID4gbGnDoG47ICM3RTlFCivnup8gPiBzxKs7ICM3RTlGCivnuqAgPiBqxKt1OyAjN0VBMAor57qhID4gecWrOyAjN0VBMQor57qiID4gaMOzbmc7ICM3RUEyCivnuqMgPiB6aMOydTsgIzdFQTMKK+e6pCA+IHhpxIFuOyAjN0VBNAor57qlID4gaMOpOyAjN0VBNQor57qmID4geXXEkzsgIzdFQTYKK+e6pyA+IGrDrTsgIzdFQTcKK+e6qCA+IHfDoW47ICM3RUE4CivnuqkgPiBrdcOgbmc7ICM3RUE5CivnuqogPiBqw6w7ICM3RUFBCivnuqsgPiByw6huOyAjN0VBQgor57qsID4gd8SVaTsgIzdFQUMKK+e6rSA+IHnDum47ICM3RUFECivnuq4gPiBow7NuZzsgIzdFQUUKK+e6ryA+IGNow7puOyAjN0VBRgor57qwID4gcMOtOyAjN0VCMAor57qxID4gc2jEgTsgIzdFQjEKK+e6siA+IGfEgW5nOyAjN0VCMgor57qzID4gbsOgOyAjN0VCMwor57q0ID4gcsOpbjsgIzdFQjQKK+e6tSA+IHrDsm5nOyAjN0VCNQor57q2ID4gbMO6bjsgIzdFQjYKK+e6tyA+IGbEk247ICM3RUI3CivnurggPiB6aMStOyAjN0VCOAor57q5ID4gd8OpbjsgIzdFQjkKK+e6uiA+IGbEg25nOyAjN0VCQQor57q7ID4gemjDuTsgIzdFQkIKK+e6vCA+IHnErW47ICM3RUJDCivnur0gPiBuxK11OyAjN0VCRAor57q+ID4gc2jFqzsgIzdFQkUKK+e6vyA+IHhpw6BuOyAjN0VCRgor57uAID4gZ8OgbjsgIzdFQzAKK+e7gSA+IHhpw6g7ICM3RUMxCivnu4IgPiBmw7o7ICM3RUMyCivnu4MgPiBsacOgbjsgIzdFQzMKK+e7hCA+IHrFrTsgIzdFQzQKK+e7hSA+IHNoxJNuOyAjN0VDNQor57uGID4geMOsOyAjN0VDNgor57uHID4gemjEqzsgIzdFQzcKK+e7iCA+IHpoxY1uZzsgIzdFQzgKK+e7iSA+IHpow7J1OyAjN0VDOQor57uKID4gYsOgbjsgIzdFQ0EKK+e7iyA+IGbDujsgIzdFQ0IKK+e7jCA+IHpow7pvOyAjN0VDQwor57uNID4gc2jDoG87ICM3RUNECivnu44gPiB5w6w7ICM3RUNFCivnu48gPiBqxKtuZzsgIzdFQ0YKK+e7kCA+IGTDoGk7ICM3RUQwCivnu5EgPiBixINuZzsgIzdFRDEKK+e7kiA+IHLDs25nOyAjN0VEMgor57uTID4gamnDqTsgIzdFRDMKK+e7lCA+IGvDuTsgIzdFRDQKK+e7lSA+IHLDoG87ICM3RUQ1Civnu5YgPiBkacOpOyAjN0VENgor57uXID4gaMOobmc7ICM3RUQ3Civnu5ggPiBow7lpOyAjN0VEOAor57uZID4gZ8SVaTsgIzdFRDkKK+e7miA+IHh1w6BuOyAjN0VEQQor57ubID4gamnDoG5nOyAjN0VEQgor57ucID4gbMO5bzsgIzdFREMKK+e7nSA+IGp1w6k7ICM3RURECivnu54gPiBqacSDbzsgIzdFREUKK+e7nyA+IHTFj25nOyAjN0VERgor57ugID4gZ8SVbmc7ICM3RUUwCivnu6EgPiB4acSBbzsgIzdFRTEKK+e7oiA+IGp1w6BuOyAjN0VFMgor57ujID4geMOsdTsgIzdFRTMKK+e7pCA+IHjDrDsgIzdFRTQKK+e7pSA+IHPFq2k7ICM3RUU1Civnu6YgPiB0xIFvOyAjN0VFNgor57unID4gasOsOyAjN0VFNwor57uoID4gdMOtOyAjN0VFOAor57upID4gasSrOyAjN0VFOQor57uqID4geMO5OyAjN0VFQQor57urID4gbMOtbmc7ICM3RUVCCivnu60gPiB4w7k7ICM3RUVECivnu64gPiBxxK07ICM3RUVFCivnu68gPiBmxJNpOyAjN0VFRgor57uwID4gY2jDuW87ICM3RUYwCivnu7EgPiB6aMSDbmc7ICM3RUYxCivnu7IgPiBnxa1uOyAjN0VGMgor57uzID4gc2jDqW5nOyAjN0VGMwor57u0ID4gd8OpaTsgIzdFRjQKK+e7tSA+IG1pw6FuOyAjN0VGNQor57u2ID4gc2jDsnU7ICM3RUY2Civnu7cgPiBixJNuZzsgIzdFRjcKK+e7uCA+IGNow7N1OyAjN0VGOAor57u5ID4gdMOhbzsgIzdFRjkKK+e7uiA+IGzErXU7ICM3RUZBCivnu7sgPiBxdcSDbjsgIzdFRkIKK+e7vCA+IHrDsm5nOyAjN0VGQwor57u9ID4gemjDoG47ICM3RUZECivnu74gPiB3xINuOyAjN0VGRQor57u/ID4gbMecOyAjN0VGRgor57yAID4gemjDuWk7ICM3RjAwCivnvIEgPiB6xKs7ICM3RjAxCivnvIIgPiBrw6g7ICM3RjAyCivnvIMgPiB4acSBbmc7ICM3RjAzCivnvIQgPiBqacSBbjsgIzdGMDQKK+e8hSA+IG1pxINuOyAjN0YwNQor57yGID4gbMOgbjsgIzdGMDYKK+e8hyA+IHTDrTsgIzdGMDcKK+e8iCA+IG1pxINvOyAjN0YwOAor57yJID4gccOsOyAjN0YwOQor57yKID4gecWrbjsgIzdGMEEKK+e8iyA+IGjDuWk7ICM3RjBCCivnvIwgPiBzxKs7ICM3RjBDCivnvI0gPiBkxa1vOyAjN0YwRAor57yOID4gZHXDoG47ICM3RjBFCivnvI8gPiBiacOgbjsgIzdGMEYKK+e8kCA+IHhpw6BuOyAjN0YxMAor57yRID4gZ8WNdTsgIzdGMTEKK+e8kiA+IHpow7lpOyAjN0YxMgor57yTID4gaHXEg247ICM3RjEzCivnvJQgPiBkw6w7ICM3RjE0CivnvJUgPiBsx5o7ICM3RjE1CivnvJYgPiBiacSBbjsgIzdGMTYKK+e8lyA+IG3DrW47ICM3RjE3CivnvJggPiB5dcOhbjsgIzdGMTgKK+e8mSA+IGrDrG47ICM3RjE5CivnvJogPiBmw7o7ICM3RjFBCivnvJsgPiByw7k7ICM3RjFCCivnvJwgPiB6aMSTbjsgIzdGMUMKK+e8nSA+IGbDqW5nOyAjN0YxRAor57yeID4gc2h1xIFpOyAjN0YxRQor57yfID4gZ8SDbzsgIzdGMUYKK+e8oCA+IGNow6FuOyAjN0YyMAor57yhID4gbMOtOyAjN0YyMQor57yiID4gecOsOyAjN0YyMgor57yjID4gamnEgW47ICM3RjIzCivnvKQgPiBixKtuOyAjN0YyNAor57ylID4gcGnEg287ICM3RjI1CivnvKYgPiBtw6BuOyAjN0YyNgor57ynID4gbMOpaTsgIzdGMjcKK+e8qCA+IHnEq25nOyAjN0YyOAor57ypID4gc8WrbzsgIzdGMjkKK+e8qiA+IG3Ds3U7ICM3RjJBCivnvKsgPiBzxIFvOyAjN0YyQgor57ysID4geGnDqTsgIzdGMkMKK+e8rSA+IGxpw6FvOyAjN0YyRAor57yuID4gc2jDoG47ICM3RjJFCivnvK8gPiB6xJNuZzsgIzdGMkYKK+e8sCA+IGppxIFuZzsgIzdGMzAKK+e8sSA+IHFpxINuOyAjN0YzMQor57yyID4gesSDbzsgIzdGMzIKK+e8syA+IGh1w6FuOyAjN0YzMwor57y0ID4gamnEg287ICM3RjM0CivnvLUgPiB6dcSDbjsgIzdGMzUKK+e8tiA+IGbFj3U7ICM3RjM2CivnvLcgPiB4acOoOyAjN0YzNwor57y4ID4gZ8SBbmc7ICM3RjM4CivnvLkgPiBmxY91OyAjN0YzOQor57y6ID4gcXXEkzsgIzdGM0EKK+e8uyA+IGbFj3U7ICM3RjNCCivnvL0gPiBixY07ICM3RjNECivnvL4gPiBww61uZzsgIzdGM0UKK+e8vyA+IGjDsnU7ICM3RjNGCivnvYEgPiBnxIFuZzsgIzdGNDEKK+e9giA+IHnEq25nOyAjN0Y0Mgor572DID4gecSrbmc7ICM3RjQzCivnvYQgPiBxw6xuZzsgIzdGNDQKK+e9hSA+IHhpw6A7ICM3RjQ1CivnvYYgPiBndcOgbjsgIzdGNDYKK+e9hyA+IHrFq247ICM3RjQ3CivnvYggPiB0w6FuOyAjN0Y0OAor572KID4gccOsOyAjN0Y0QQor572LID4gd8Oobmc7ICM3RjRCCivnvYwgPiB5xKtuZzsgIzdGNEMKK+e9jSA+IGzDqWk7ICM3RjRECivnvY4gPiB0w6FuOyAjN0Y0RQor572PID4gbMO6OyAjN0Y0Rgor572QID4gZ3XDoG47ICM3RjUwCivnvZEgPiB3xINuZzsgIzdGNTEKK+e9kiA+IHfEg25nOyAjN0Y1Mgor572TID4gZ8SBbmc7ICM3RjUzCivnvZQgPiB3xINuZzsgIzdGNTQKK+e9lSA+IGjEg247ICM3RjU1CivnvZcgPiBsxatvOyAjN0Y1Nwor572YID4gZsO6OyAjN0Y1OAor572ZID4gbcOtOyAjN0Y1OQor572aID4gZsOhOyAjN0Y1QQor572bID4gZ8WrOyAjN0Y1Qgor572cID4gemjFrTsgIzdGNUMKK+e9nSA+IGrFqzsgIzdGNUQKK+e9niA+IG3DoW87ICM3RjVFCivnvZ8gPiBnxa07ICM3RjVGCivnvaAgPiBtw61uOyAjN0Y2MAor572hID4gZ8SBbmc7ICM3RjYxCivnvaIgPiBiw6A7ICM3RjYyCivnvaMgPiBndcOgOyAjN0Y2Mwor572kID4gdMOtOyAjN0Y2NAor572lID4ganXDoG47ICM3RjY1CivnvaYgPiBmxas7ICM3RjY2CivnvacgPiBsw61uOyAjN0Y2Nwor572oID4gecSDbjsgIzdGNjgKK+e9qSA+IHpow6BvOyAjN0Y2OQor572qID4gesO5aTsgIzdGNkEKK+e9qyA+IGd1w6A7ICM3RjZCCivnvawgPiB6aMO6bzsgIzdGNkMKK+e9rSA+IHnDuTsgIzdGNkQKK+e9riA+IHpow6w7ICM3RjZFCivnva8gPiDEg247ICM3RjZGCivnvbAgPiBmw6E7ICM3RjcwCivnvbEgPiBuxINuOyAjN0Y3MQor572yID4gc2jFrTsgIzdGNzIKK+e9syA+IHPEqzsgIzdGNzMKK+e9tCA+IHDDrTsgIzdGNzQKK+e9tSA+IG3DoDsgIzdGNzUKK+e9tiA+IGzErXU7ICM3Rjc2CivnvbcgPiBiw6A7ICM3Rjc3CivnvbggPiBmw6E7ICM3Rjc4CivnvbkgPiBsw607ICM3Rjc5CivnvbogPiBjaMSBbzsgIzdGN0EKK+e9uyA+IHfDqGk7ICM3RjdCCivnvbwgPiBiw6w7ICM3RjdDCivnvb0gPiBqw6w7ICM3RjdECivnvb4gPiB6xJNuZzsgIzdGN0UKK+e9vyA+IHTDs25nOyAjN0Y3Rgor576AID4gbMStdTsgIzdGODAKK+e+gSA+IGrEqzsgIzdGODEKK+e+giA+IGp1w6BuOyAjN0Y4Mgor576DID4gbcOsOyAjN0Y4Mwor576EID4gemjDoG87ICM3Rjg0CivnvoUgPiBsw7pvOyAjN0Y4NQor576GID4gcMOtOyAjN0Y4Ngor576HID4gasSrOyAjN0Y4Nwor576IID4gasSrOyAjN0Y4OAor576JID4gbHXDoW47ICM3Rjg5CivnvoogPiB5w6FuZzsgIzdGOEEKK+e+iyA+IG1pxJM7ICM3RjhCCivnvowgPiBxacSBbmc7ICM3RjhDCivnvo0gPiB0w6A7ICM3RjhECivnvo4gPiBtxJVpOyAjN0Y4RQor576PID4gecOhbmc7ICM3RjhGCivnvpAgPiB5xY91OyAjN0Y5MAor576RID4gecWPdTsgIzdGOTEKK+e+kiA+IGbDqW47ICM3RjkyCivnvpMgPiBixIE7ICM3RjkzCivnvpQgPiBnxIFvOyAjN0Y5NAor576VID4gecOgbmc7ICM3Rjk1CivnvpYgPiBnxa07ICM3Rjk2CivnvpcgPiBxacSBbmc7ICM3Rjk3CivnvpggPiB6xIFuZzsgIzdGOTgKK+e+mSA+IGfEgW87ICM3Rjk5CivnvpogPiBsw61uZzsgIzdGOUEKK+e+myA+IHnDrDsgIzdGOUIKK+e+nCA+IHpow7k7ICM3RjlDCivnvp0gPiBkxKs7ICM3RjlECivnvp4gPiB4xKt1OyAjN0Y5RQor576fID4gcWnEgW47ICM3RjlGCivnvqAgPiB5w607ICM3RkEwCivnvqEgPiB4acOgbjsgIzdGQTEKK+e+oiA+IHLDs25nOyAjN0ZBMgor576jID4gccO6bjsgIzdGQTMKK+e+pCA+IHHDum47ICM3RkE0CivnvqUgPiBxacSBbjsgIzdGQTUKK+e+piA+IGh1w6FuOyAjN0ZBNgor576nID4gesWraTsgIzdGQTcKK+e+qCA+IHhpw6BuOyAjN0ZBOAor576pID4gecOsOyAjN0ZBOQor576rID4gcWnEgW5nOyAjN0ZBQgor576sID4geGnDoW47ICM3RkFDCivnvq0gPiB5w7o7ICM3RkFECivnvq4gPiBnxJNuZzsgIzdGQUUKK+e+ryA+IGppw6k7ICM3RkFGCivnvrAgPiB0xIFuZzsgIzdGQjAKK+e+sSA+IHl1w6FuOyAjN0ZCMQor576yID4geMSrOyAjN0ZCMgor576zID4gZsOhbjsgIzdGQjMKK+e+tCA+IHNoxIFuOyAjN0ZCNAor5761ID4gZsSVbjsgIzdGQjUKK+e+tiA+IHNoxIFuOyAjN0ZCNgor5763ID4gbGnEg247ICM3RkI3CivnvrggPiBsw6lpOyAjN0ZCOAor5765ID4gZ8STbmc7ICM3RkI5CivnvrogPiBuw7N1OyAjN0ZCQQor5767ID4gcWnDoG5nOyAjN0ZCQgor5768ID4gY2jDoG47ICM3RkJDCivnvr0gPiB5xa07ICM3RkJECivnvr4gPiBnw7JuZzsgIzdGQkUKK+e+vyA+IHnDrDsgIzdGQkYKK+e/gCA+IGNow7NuZzsgIzdGQzAKK+e/gSA+IHfEk25nOyAjN0ZDMQor57+CID4gZsSTbjsgIzdGQzIKK+e/gyA+IGjDs25nOyAjN0ZDMwor57+EID4gY2jDrDsgIzdGQzQKK+e/hSA+IGNow6w7ICM3RkM1Civnv4YgPiBjw7lpOyAjN0ZDNgor57+HID4gZsO6OyAjN0ZDNwor57+IID4geGnDoTsgIzdGQzgKK+e/iSA+IHDElW47ICM3RkM5Civnv4ogPiB5w6w7ICM3RkNBCivnv4sgPiBsxIE7ICM3RkNCCivnv4wgPiB5w6w7ICM3RkNDCivnv40gPiBwxKs7ICM3RkNECivnv44gPiBsw61uZzsgIzdGQ0UKK+e/jyA+IGzDrHU7ICM3RkNGCivnv5AgPiB6aMOsOyAjN0ZEMAor57+RID4gccO6OyAjN0ZEMQor57+SID4geMOtOyAjN0ZEMgor57+TID4geGnDqTsgIzdGRDMKK+e/lCA+IHhpw6FuZzsgIzdGRDQKK+e/lSA+IHjDrDsgIzdGRDUKK+e/liA+IHjDrDsgIzdGRDYKK+e/lyA+IHHDrTsgIzdGRDcKK+e/mCA+IHFpw6FvOyAjN0ZEOAor57+ZID4gaMO5aTsgIzdGRDkKK+e/miA+IGjFq2k7ICM3RkRBCivnv5sgPiB4acSBbzsgIzdGREIKK+e/nCA+IHPDqDsgIzdGREMKK+e/nSA+IGjDs25nOyAjN0ZERAor57+eID4gamnEgW5nOyAjN0ZERQor57+fID4gZMOtOyAjN0ZERgor57+gID4gY8O5aTsgIzdGRTAKK+e/oSA+IGbElWk7ICM3RkUxCivnv6IgPiB0xIFvOyAjN0ZFMgor57+jID4gc2jDoDsgIzdGRTMKK+e/pCA+IGNow6w7ICM3RkU0Civnv6UgPiB6aMO5OyAjN0ZFNQor57+mID4gamnEg247ICM3RkU2Civnv6cgPiB4dcSBbjsgIzdGRTcKK+e/qCA+IHNow6w7ICM3RkU4Civnv6kgPiBwacSBbjsgIzdGRTkKK+e/qiA+IHrFjW5nOyAjN0ZFQQor57+rID4gd8OgbjsgIzdGRUIKK+e/rCA+IGjFq2k7ICM3RkVDCivnv60gPiBow7N1OyAjN0ZFRAor57+uID4gaMOpOyAjN0ZFRQor57+vID4gaMOoOyAjN0ZFRgor57+wID4gaMOgbjsgIzdGRjAKK+e/sSA+IMOhbzsgIzdGRjEKK+e/siA+IHBpxIFvOyAjN0ZGMgor57+zID4gecOsOyAjN0ZGMwor57+0ID4gbGnDoW47ICM3RkY0Civnv7UgPiBxw7o7ICM3RkY1Civnv7cgPiBsw61uOyAjN0ZGNwor57+4ID4gcMSVbjsgIzdGRjgKK+e/uSA+IHFpw6FvOyAjN0ZGOQor57+6ID4gw6FvOyAjN0ZGQQor57+7ID4gZsSBbjsgIzdGRkIKK+e/vCA+IHnDrDsgIzdGRkMKK+e/vSA+IGjDuWk7ICM3RkZECivnv74gPiB4dcSBbjsgIzdGRkUKK+e/vyA+IGTDoG87ICM3RkZGCivogIAgPiB5w6BvOyAjODAwMAor6ICBID4gbMSDbzsgIzgwMDEKK+iAgyA+IGvEg287ICM4MDAzCivogIQgPiBtw6BvOyAjODAwNAor6ICFID4gemjElTsgIzgwMDUKK+iAhiA+IHHDrTsgIzgwMDYKK+iAhyA+IGfFj3U7ICM4MDA3CivogIggPiBnxY91OyAjODAwOAor6ICJID4gZ8WPdTsgIzgwMDkKK+iAiiA+IGRpw6g7ICM4MDBBCivogIsgPiBkacOoOyAjODAwQgor6ICMID4gw6lyOyAjODAwQwor6ICNID4gc2h1xIM7ICM4MDBECivogI4gPiBydcSDbjsgIzgwMEUKK+iAjyA+IMOpcjsgIzgwMEYKK+iAkCA+IG7DoGk7ICM4MDEwCivogJEgPiB6aHXEgW47ICM4MDExCivogJIgPiBsxJVpOyAjODAxMgor6ICTID4gdMSrbmc7ICM4MDEzCivogJQgPiB6xK07ICM4MDE0CivogJUgPiBnxJNuZzsgIzgwMTUKK+iAliA+IGNow6BvOyAjODAxNgor6ICXID4gaMOgbzsgIzgwMTcKK+iAmCA+IHnDum47ICM4MDE4CivogJkgPiBww6E7ICM4MDE5CivogJogPiBwxKs7ICM4MDFBCivogJsgPiBjaMOtOyAjODAxQgor6ICcID4gc8OsOyAjODAxQwor6ICdID4gY2jDujsgIzgwMUQKK+iAniA+IGppxIE7ICM4MDFFCivogJ8gPiBqw7k7ICM4MDFGCivogKAgPiBow6k7ICM4MDIwCivogKEgPiBjaMO6OyAjODAyMQor6ICiID4gbMOgbzsgIzgwMjIKK+iAoyA+IGzFrW47ICM4MDIzCivogKQgPiBqw607ICM4MDI0CivogKUgPiB0xINuZzsgIzgwMjUKK+iApiA+IMWPdTsgIzgwMjYKK+iApyA+IGzDs3U7ICM4MDI3CivogKggPiBuw7J1OyAjODAyOAor6ICpID4gZ8WNdTsgIzgwMjkKK+iAqiA+IHDEg25nOyAjODAyQQor6ICrID4gesOpOyAjODAyQgor6ICsID4gbMOzdTsgIzgwMkMKK+iArSA+IGrEqzsgIzgwMkQKK+iAriA+IGzDoG87ICM4MDJFCivogK8gPiBow7lvOyAjODAyRgor6ICwID4gecWNdTsgIzgwMzAKK+iAsSA+IG3DsjsgIzgwMzEKK+iAsiA+IGh1w6FpOyAjODAzMgor6ICzID4gxJVyOyAjODAzMwor6IC0ID4gemjDqTsgIzgwMzQKK+iAtSA+IHTEq25nOyAjODAzNQor6IC2ID4gecOpOyAjODAzNgor6IC3ID4gZMSBOyAjODAzNwor6IC4ID4gc8WPbmc7ICM4MDM4CivogLkgPiBxw61uOyAjODAzOQor6IC6ID4gecO6bjsgIzgwM0EKK+iAuyA+IGNoxK07ICM4MDNCCivogLwgPiBkxIFuOyAjODAzQwor6IC9ID4gZMSBbjsgIzgwM0QKK+iAviA+IGjDs25nOyAjODAzRQor6IC/ID4gZ8SVbmc7ICM4MDNGCivogYAgPiB6aMOtOyAjODA0MAor6IGCID4gbmnDqDsgIzgwNDIKK+iBgyA+IGTEgW47ICM4MDQzCivogYQgPiB6aMSVbjsgIzgwNDQKK+iBhSA+IGNow6g7ICM4MDQ1CivogYYgPiBsw61uZzsgIzgwNDYKK+iBhyA+IHpoxJNuZzsgIzgwNDcKK+iBiCA+IHnFj3U7ICM4MDQ4CivogYkgPiB3xIE7ICM4MDQ5CivogYogPiBsacOhbzsgIzgwNEEKK+iBiyA+IGzDs25nOyAjODA0Qgor6IGMID4gemjDrTsgIzgwNEMKK+iBjSA+IG7DrW5nOyAjODA0RAor6IGOID4gdGnEgW87ICM4MDRFCivogY8gPiDDqXI7ICM4MDRGCivogZAgPiB5w6A7ICM4MDUwCivogZEgPiBkacOpOyAjODA1MQor6IGSID4gZ3XEgTsgIzgwNTIKK+iBlCA+IGxpw6FuOyAjODA1NAor6IGVID4gaMOgbzsgIzgwNTUKK+iBliA+IHNow6huZzsgIzgwNTYKK+iBlyA+IGxpw6g7ICM4MDU3CivogZggPiBww6xuOyAjODA1OAor6IGZID4gasSrbmc7ICM4MDU5CivogZogPiBqw7k7ICM4MDVBCivogZsgPiBiw6w7ICM4MDVCCivogZwgPiBkxK07ICM4MDVDCivogZ0gPiBnw7pvOyAjODA1RAor6IGeID4gd8OpbjsgIzgwNUUKK+iBnyA+IHjDuTsgIzgwNUYKK+iBoCA+IHDDrW5nOyAjODA2MAor6IGhID4gY8WNbmc7ICM4MDYxCivogaQgPiB0w61uZzsgIzgwNjQKK+iBpSA+IHnFrTsgIzgwNjUKK+iBpiA+IGPFjW5nOyAjODA2Ngor6IGnID4ga8O6aTsgIzgwNjcKK+iBqSA+IGvDuWk7ICM4MDY5CivogaogPiBjxY1uZzsgIzgwNkEKK+iBqyA+IGxpw6FuOyAjODA2Qgor6IGsID4gd8SVbmc7ICM4MDZDCivoga0gPiBrw7lpOyAjODA2RAor6IGuID4gbGnDoW47ICM4MDZFCivoga8gPiBsacOhbjsgIzgwNkYKK+iBsCA+IGPFjW5nOyAjODA3MAor6IGxID4gw6FvOyAjODA3MQor6IGyID4gc2jEk25nOyAjODA3Mgor6IGzID4gc8WPbmc7ICM4MDczCivogbQgPiB0xKtuZzsgIzgwNzQKK+iBtSA+IGvDuWk7ICM4MDc1CivogbYgPiBuacOoOyAjODA3Ngor6IG3ID4gemjDrTsgIzgwNzcKK+iBuCA+IGTEgW47ICM4MDc4CivogbkgPiBuw61uZzsgIzgwNzkKK+iBuiA+IHFpZTsgIzgwN0EKK+iBuyA+IGrEqzsgIzgwN0IKK+iBvCA+IHTEq25nOyAjODA3Qwor6IG9ID4gdMSrbmc7ICM4MDdECivogb4gPiBsw7NuZzsgIzgwN0UKK+iBvyA+IHnDuTsgIzgwN0YKK+iCgCA+IHnDuTsgIzgwODAKK+iCgSA+IHpow6BvOyAjODA4MQor6IKCID4gc8OsOyAjODA4Mgor6IKDID4gc8O5OyAjODA4Mwor6IKEID4gecOsOyAjODA4NAor6IKFID4gc8O5OyAjODA4NQor6IKGID4gc8OsOyAjODA4Ngor6IKHID4gemjDoG87ICM4MDg3CivogoggPiB6aMOgbzsgIzgwODgKK+iCiSA+IHLDsnU7ICM4MDg5CivogoogPiB5w6w7ICM4MDhBCivogosgPiBsw6g7ICM4MDhCCivogowgPiBqxKs7ICM4MDhDCivogo0gPiBxw611OyAjODA4RAor6IKOID4ga8SVbjsgIzgwOEUKK+iCjyA+IGPDoG87ICM4MDhGCivogpAgPiBnxJM7ICM4MDkwCivogpEgPiBkw6w7ICM4MDkxCivogpIgPiBodcOhbjsgIzgwOTIKK+iCkyA+IGh1xIFuZzsgIzgwOTMKK+iClCA+IHnErTsgIzgwOTQKK+iClSA+IHLDqG47ICM4MDk1CivogpYgPiB4acOgbzsgIzgwOTYKK+iClyA+IHLFrTsgIzgwOTcKK+iCmCA+IHpoxY91OyAjODA5OAor6IKZID4geXXEgW47ICM4MDk5CivogpogPiBkw7k7ICM4MDlBCivogpsgPiBnxIFuZzsgIzgwOUIKK+iCnCA+IHLDs25nOyAjODA5Qwor6IKdID4gZ8SBbjsgIzgwOUQKK+iCniA+IGNoxIE7ICM4MDlFCivogp8gPiB3w7I7ICM4MDlGCivogqAgPiBjaMOhbmc7ICM4MEEwCivogqEgPiBnxa07ICM4MEExCivogqIgPiB6aMSrOyAjODBBMgor6IKjID4gaMOhbjsgIzgwQTMKK+iCpCA+IGbFqzsgIzgwQTQKK+iCpSA+IGbDqWk7ICM4MEE1CivogqYgPiBmw6luOyAjODBBNgor6IKnID4gcMSTaTsgIzgwQTcKK+iCqCA+IHDDoG5nOyAjODBBOAor6IKpID4gamnEgW47ICM4MEE5CivogqogPiBmw6FuZzsgIzgwQUEKK+iCqyA+IHpoxatuOyAjODBBQgor6IKsID4gecOzdTsgIzgwQUMKK+iCrSA+IG7DoDsgIzgwQUQKK+iCriA+IGjDoW5nOyAjODBBRQor6IKvID4ga8SVbjsgIzgwQUYKK+iCsCA+IHLDoW47ICM4MEIwCivogrEgPiBnxY1uZzsgIzgwQjEKK+iCsiA+IHnDuTsgIzgwQjIKK+iCsyA+IHfElW47ICM4MEIzCivogrQgPiB5w6FvOyAjODBCNAor6IK1ID4gasOsbjsgIzgwQjUKK+iCtiA+IHDDrTsgIzgwQjYKK+iCtyA+IHFpxIFuOyAjODBCNwor6IK4ID4geMOsOyAjODBCOAor6IK5ID4geMSrOyAjODBCOQor6IK6ID4gZsOoaTsgIzgwQkEKK+iCuyA+IGvElW47ICM4MEJCCivogrwgPiBqxK1uZzsgIzgwQkMKK+iCvSA+IHTDoGk7ICM4MEJECivogr4gPiBzaMOobjsgIzgwQkUKK+iCvyA+IHpoxY9uZzsgIzgwQkYKK+iDgCA+IHpow6BuZzsgIzgwQzAKK+iDgSA+IHhpw6k7ICM4MEMxCivog4IgPiBzaMSTbjsgIzgwQzIKK+iDgyA+IHfDqGk7ICM4MEMzCivog4QgPiB6aMOydTsgIzgwQzQKK+iDhSA+IGRpw6k7ICM4MEM1Civog4YgPiBkxINuOyAjODBDNgor6IOHID4gZsOoaTsgIzgwQzcKK+iDiCA+IGLDoTsgIzgwQzgKK+iDiSA+IGLDszsgIzgwQzkKK+iDiiA+IHHDujsgIzgwQ0EKK+iDiyA+IHRpw6FuOyAjODBDQgor6IOMID4gYsOoaTsgIzgwQ0MKK+iDjSA+IGd1xIE7ICM4MENECivog44gPiB0xIFpOyAjODBDRQor6IOPID4gesStOyAjODBDRgor6IOQID4ga8WrOyAjODBEMAor6IORID4gemjEqzsgIzgwRDEKK+iDkiA+IG7DrDsgIzgwRDIKK+iDkyA+IHDDrW5nOyAjODBEMwor6IOUID4gesOsOyAjODBENAor6IOVID4gZsO5OyAjODBENQor6IOWID4gcMOgbmc7ICM4MEQ2Civog5cgPiB6aMSTbjsgIzgwRDcKK+iDmCA+IHhpw6FuOyAjODBEOAor6IOZID4gesO5bzsgIzgwRDkKK+iDmiA+IHDEk2k7ICM4MERBCivog5sgPiBqacSDOyAjODBEQgor6IOcID4gc2jDqG5nOyAjODBEQwor6IOdID4gemjEqzsgIzgwREQKK+iDniA+IGLEgW87ICM4MERFCivog58gPiBtxa07ICM4MERGCivog6AgPiBxxas7ICM4MEUwCivog6EgPiBow7o7ICM4MEUxCivog6IgPiBrxJM7ICM4MEUyCivog6MgPiB5xK07ICM4MEUzCivog6QgPiB5w6xuOyAjODBFNAor6IOlID4geMWrOyAjODBFNQor6IOmID4gecSBbmc7ICM4MEU2Civog6cgPiBsw7NuZzsgIzgwRTcKK+iDqCA+IGTDsm5nOyAjODBFOAor6IOpID4ga8SDOyAjODBFOQor6IOqID4gbMO6OyAjODBFQQor6IOrID4gasOsbmc7ICM4MEVCCivog6wgPiBuxa07ICM4MEVDCivog60gPiB5xIFuOyAjODBFRAor6IOuID4gcMOhbmc7ICM4MEVFCivog68gPiBrdcOgOyAjODBFRgor6IOwID4gecOtOyAjODBGMAor6IOxID4gZ3XEgW5nOyAjODBGMQor6IOyID4gZ8SBaTsgIzgwRjIKK+iDsyA+IGfEkzsgIzgwRjMKK+iDtCA+IGTDsm5nOyAjODBGNAor6IO1ID4gemjDrDsgIzgwRjUKK+iDtiA+IHhpw6FvOyAjODBGNgor6IO3ID4geMSrb25nOyAjODBGNwor6IO4ID4geMSrb25nOyAjODBGOAor6IO5ID4gw6lyOyAjODBGOQor6IO6ID4gw6g7ICM4MEZBCivog7sgPiB4w61uZzsgIzgwRkIKK+iDvCA+IHBpw6FuOyAjODBGQwor6IO9ID4gbsOpbmc7ICM4MEZECivog74gPiB6w6w7ICM4MEZFCivog78gPiBndWk7ICM4MEZGCivohIAgPiBjaMOpbmc7ICM4MTAwCivohIEgPiB0acOgbzsgIzgxMDEKK+iEgiA+IHpoxKs7ICM4MTAyCivohIMgPiBjw7lpOyAjODEwMwor6ISEID4gbcOpaTsgIzgxMDQKK+iEhSA+IHhpw6k7ICM4MTA1CivohIYgPiBjw7lpOyAjODEwNgor6ISHID4geGnDqTsgIzgxMDcKK+iEiCA+IG3DsjsgIzgxMDgKK+iEiSA+IG3DoGk7ICM4MTA5CivohIogPiBqw607ICM4MTBBCivohI0gPiBrdcOgaTsgIzgxMEQKK+iEjiA+IHPDoDsgIzgxMEUKK+iEjyA+IHrEgW5nOyAjODEwRgor6ISQID4gccOtOyAjODExMAor6ISRID4gbsSDbzsgIzgxMTEKK+iEkiA+IG3ErTsgIzgxMTIKK+iEkyA+IG7Ds25nOyAjODExMwor6ISUID4gbHXDoW47ICM4MTE0CivohJUgPiB3xINuOyAjODExNQor6ISWID4gYsOzOyAjODExNgor6ISXID4gd8SVbjsgIzgxMTcKK+iEmCA+IGd1xINuOyAjODExOAor6ISZID4gccOtdTsgIzgxMTkKK+iEmiA+IGppxINvOyAjODExQQor6ISbID4gasOsbmc7ICM4MTFCCivohJwgPiByw7N1OyAjODExQwor6ISdID4gaMSTbmc7ICM4MTFECivohJ4gPiBjxa1vOyAjODExRQor6ISfID4gbGnDqDsgIzgxMUYKK+iEoCA+IHNoxIFuOyAjODEyMAor6IShID4gdMStbmc7ICM4MTIxCivohKIgPiBtw6lpOyAjODEyMgor6ISjID4gY2jDum47ICM4MTIzCivohKQgPiBzaMOobjsgIzgxMjQKK+iEpSA+IHhpw6k7ICM4MTI1CivohKYgPiBkZTsgIzgxMjYKK+iEpyA+IHrFq2k7ICM4MTI3CivohKggPiBjw7k7ICM4MTI4CivohKkgPiB4xKt1OyAjODEyOQor6ISqID4geMOsbjsgIzgxMkEKK+iEqyA+IHTFq287ICM4MTJCCivohKwgPiBwxIFvOyAjODEyQwor6IStID4gY2jDqW5nOyAjODEyRAor6ISuID4gbsSVaTsgIzgxMkUKK+iEryA+IGbFrTsgIzgxMkYKK+iEsCA+IGTDsnU7ICM4MTMwCivohLEgPiB0xatvOyAjODEzMQor6ISyID4gbmnDoG87ICM4MTMyCivohLQgPiBwxK07ICM4MTM0CivohLUgPiBnxa07ICM4MTM1CivohLYgPiBndcSBOyAjODEzNgor6IS3ID4gbMOsOyAjODEzNwor6IS4ID4gbGnEg247ICM4MTM4CivohLkgPiB6aMOgbmc7ICM4MTM5CivohLogPiBjw7lpOyAjODEzQQor6IS7ID4gamnDqTsgIzgxM0IKK+iEvCA+IGxpxINuZzsgIzgxM0MKK+iEvSA+IHpoxY11OyAjODEzRAor6IS+ID4gcMOtOyAjODEzRQor6IS/ID4gYmnEgW87ICM4MTNGCivohYAgPiBsw7puOyAjODE0MAor6IWBID4gcGnDoW47ICM4MTQxCivohYIgPiBnw7lvOyAjODE0Mgor6IWDID4ga8O5aTsgIzgxNDMKK+iFhCA+IGNow7ppOyAjODE0NAor6IWFID4gZMOgbjsgIzgxNDUKK+iFhiA+IHRpxINuOyAjODE0Ngor6IWHID4gbsSVaTsgIzgxNDcKK+iFiCA+IGrEq25nOyAjODE0OAor6IWJID4gamnEkzsgIzgxNDkKK+iFiiA+IGzDoDsgIzgxNEEKK+iFiyA+IHnDrDsgIzgxNEIKK+iFjCA+IMSBbjsgIzgxNEMKK+iFjSA+IHLElW47ICM4MTRECivohY4gPiBzaMOobjsgIzgxNEUKK+iFjyA+IGNow7lvOyAjODE0Rgor6IWQID4gZsWtOyAjODE1MAor6IWRID4gZsWtOyAjODE1MQor6IWSID4gasWrOyAjODE1Mgor6IWTID4gZsOpaTsgIzgxNTMKK+iFlCA+IHFpxIFuZzsgIzgxNTQKK+iFlSA+IHfDoG47ICM4MTU1CivohZYgPiBkw7JuZzsgIzgxNTYKK+iFlyA+IHDDrTsgIzgxNTcKK+iFmCA+IGfDum87ICM4MTU4CivohZkgPiB6xY1uZzsgIzgxNTkKK+iFmiA+IGTDrG5nOyAjODE1QQor6IWbID4gd8WrOyAjODE1Qgor6IWcID4gbcOpaTsgIzgxNUMKK+iFnSA+IHJ1xINuOyAjODE1RAor6IWeID4gemh1w6BuOyAjODE1RQor6IWfID4gemjDrDsgIzgxNUYKK+iFoCA+IGPDsnU7ICM4MTYwCivohaEgPiBndcSBOyAjODE2MQor6IWiID4gxY91OyAjODE2Mgor6IWjID4gZMOsOyAjODE2Mwor6IWkID4gxIFuOyAjODE2NAor6IWlID4geMSrbmc7ICM4MTY1CivohaYgPiBuxINvOyAjODE2Ngor6IWnID4gecO6OyAjODE2Nwor6IWoID4gY2h1xINuOyAjODE2OAor6IWpID4gbsSDbjsgIzgxNjkKK+iFqiA+IHnDuW47ICM4MTZBCivohasgPiB6aMWPbmc7ICM4MTZCCivohawgPiByw7N1OyAjODE2Qwor6IWtID4gw6g7ICM4MTZECivoha4gPiBzxIFpOyAjODE2RQor6IWvID4gdMO6OyAjODE2Rgor6IWwID4gecSBbzsgIzgxNzAKK+iFsSA+IGppw6BuOyAjODE3MQor6IWyID4gd8SVaTsgIzgxNzIKK+iFsyA+IGppxINvOyAjODE3Mwor6IW0ID4gecO6OyAjODE3NAor6IW1ID4gamnEgTsgIzgxNzUKK+iFtiA+IGR1w6BuOyAjODE3Ngor6IW3ID4gYsOsOyAjODE3Nwor6IW4ID4gY2jDoW5nOyAjODE3OAor6IW5ID4gZsO5OyAjODE3OQor6IW6ID4geGnDoG47ICM4MTdBCivohbsgPiBuw6w7ICM4MTdCCivohbwgPiBtacSDbjsgIzgxN0MKK+iFvSA+IHfDoDsgIzgxN0QKK+iFviA+IHTDqW5nOyAjODE3RQor6IW/ID4gdMWtaTsgIzgxN0YKK+iGgCA+IGLEg25nOyAjODE4MAor6IaBID4gcWnEgW47ICM4MTgxCivohoIgPiBsx5o7ICM4MTgyCivohoMgPiB3w6A7ICM4MTgzCivohoQgPiBzw7J1OyAjODE4NAor6IaFID4gdMOhbmc7ICM4MTg1CivohoYgPiBzw7k7ICM4MTg2CivohocgPiB6aMO5aTsgIzgxODcKK+iGiCA+IGfDqTsgIzgxODgKK+iGiSA+IHnDrDsgIzgxODkKK+iGiiA+IGLDszsgIzgxOEEKK+iGiyA+IGxpw6FvOyAjODE4Qgor6IaMID4gasOtOyAjODE4Qwor6IaNID4gcMOtOyAjODE4RAor6IaOID4geGnDqTsgIzgxOEUKK+iGjyA+IGfEgW87ICM4MThGCivohpAgPiBsx5o7ICM4MTkwCivohpEgPiBiw6xuOyAjODE5MQor6IaSID4gb3U7ICM4MTkyCivohpMgPiBjaMOhbmc7ICM4MTkzCivohpQgPiBsw7k7ICM4MTk0CivohpUgPiBnw7pvOyAjODE5NQor6IaWID4gcMSBbmc7ICM4MTk2CivohpcgPiBjaHXDoWk7ICM4MTk3CivohpggPiBwacSDbzsgIzgxOTgKK+iGmSA+IGppxINuZzsgIzgxOTkKK+iGmiA+IGbFqzsgIzgxOUEKK+iGmyA+IHTDoW5nOyAjODE5Qgor6IacID4gbcOyOyAjODE5Qwor6IadID4geMSrOyAjODE5RAor6IaeID4gemh1xIFuOyAjODE5RQor6IafID4gbMecOyAjODE5Rgor6IagID4gamnEgW87ICM4MUEwCivohqEgPiB5w6xuZzsgIzgxQTEKK+iGoiA+IGzHmDsgIzgxQTIKK+iGoyA+IHpow6w7ICM4MUEzCivohqUgPiBjaMWrbjsgIzgxQTUKK+iGpiA+IGxpxINuOyAjODFBNgor6IanID4gdMOzbmc7ICM4MUE3CivohqggPiBww6luZzsgIzgxQTgKK+iGqSA+IG7DrDsgIzgxQTkKK+iGqiA+IHpow6A7ICM4MUFBCivohqsgPiBsacOhbzsgIzgxQUIKK+iGrCA+IGPDuWk7ICM4MUFDCivohq0gPiBnxatpOyAjODFBRAor6IauID4geGnEgW87ICM4MUFFCivohq8gPiB0xJNuZzsgIzgxQUYKK+iGsCA+IGbDoW47ICM4MUIwCivohrEgPiB6aMOtOyAjODFCMQor6IayID4gamnEgW87ICM4MUIyCivohrMgPiBzaMOgbjsgIzgxQjMKK+iGtCA+IHfDujsgIzgxQjQKK+iGtSA+IGPDuWk7ICM4MUI1CivohrYgPiByw7luOyAjODFCNgor6Ia3ID4geGnEgW5nOyAjODFCNwor6Ia4ID4gc8WtaTsgIzgxQjgKK+iGuSA+IGbDqG47ICM4MUI5CivohrogPiB5xKtuZzsgIzgxQkEKK+iGuyA+IHTEg247ICM4MUJCCivohrwgPiB6aHXEgTsgIzgxQkMKK+iGvSA+IGTEg247ICM4MUJECivohr4gPiBrdcOgaTsgIzgxQkUKK+iGvyA+IG7Ds25nOyAjODFCRgor6IeAID4gdMO6bjsgIzgxQzAKK+iHgSA+IGxpw6FuOyAjODFDMQor6IeCID4gYsOsOyAjODFDMgor6IeDID4gecWPbmc7ICM4MUMzCivoh4QgPiBqdcOpOyAjODFDNAor6IeFID4gY2jDuTsgIzgxQzUKK+iHhiA+IHnDrDsgIzgxQzYKK+iHhyA+IGp1xINuOyAjODFDNwor6IeIID4gbMOgOyAjODFDOAor6IeJID4gbGnEg247ICM4MUM5Civoh4ogPiBzxIFvOyAjODFDQQor6IeLID4gdMO6bjsgIzgxQ0IKK+iHjCA+IGfFrTsgIzgxQ0MKK+iHjSA+IHHDrTsgIzgxQ0QKK+iHjiA+IGPDuWk7ICM4MUNFCivoh48gPiBiw6xuOyAjODFDRgor6IeQID4geMWrbjsgIzgxRDAKK+iHkSA+IHLDujsgIzgxRDEKK+iHkiA+IGjDuW87ICM4MUQyCivoh5MgPiB6w6BuZzsgIzgxRDMKK+iHlCA+IHhpw6BuOyAjODFENAor6IeVID4gYmnEgW87ICM4MUQ1Civoh5YgPiB4w6xuZzsgIzgxRDYKK+iHlyA+IGt1xIFuOyAjODFENwor6IeYID4gbMOgOyAjODFEOAor6IeZID4gecSBbjsgIzgxRDkKK+iHmiA+IGzDujsgIzgxREEKK+iHmyA+IGjDuW87ICM4MURCCivoh5wgPiB6xIFuZzsgIzgxREMKK+iHnSA+IGzFrW87ICM4MURECivoh54gPiBxw7o7ICM4MURFCivoh58gPiB6w6BuZzsgIzgxREYKK+iHoCA+IGx1w6FuOyAjODFFMAor6IehID4gbsOtOyAjODFFMQor6IeiID4gesSBbmc7ICM4MUUyCivoh6MgPiBjaMOpbjsgIzgxRTMKK+iHpCA+IHFpxIFuOyAjODFFNAor6IelID4gd8OyOyAjODFFNQor6IemID4gZ3XDoG5nOyAjODFFNgor6IenID4gesOhbmc7ICM4MUU3Civoh6ggPiBsw61uOyAjODFFOAor6IepID4gZ3XDoG5nOyAjODFFOQor6IeqID4gesOsOyAjODFFQQor6IerID4gamnEg287ICM4MUVCCivoh6wgPiBuacOoOyAjODFFQwor6IetID4gY2jDsnU7ICM4MUVECivoh64gPiBqw6w7ICM4MUVFCivoh68gPiBnxIFvOyAjODFFRgor6IewID4gY2jDsnU7ICM4MUYwCivoh7EgPiBtacOhbjsgIzgxRjEKK+iHsiA+IG5pw6g7ICM4MUYyCivoh7MgPiB6aMOsOyAjODFGMwor6Ie0ID4gemjDrDsgIzgxRjQKK+iHtSA+IGfDqTsgIzgxRjUKK+iHtiA+IGppw6BuOyAjODFGNgor6Ie3ID4gZGnDqTsgIzgxRjcKK+iHuCA+IHpow6w7ICM4MUY4Civoh7kgPiB4xKt1OyAjODFGOQor6Ie6ID4gdMOhaTsgIzgxRkEKK+iHuyA+IHpoxJNuOyAjODFGQgor6Ie8ID4gasOsdTsgIzgxRkMKK+iHvSA+IHhpw6BuOyAjODFGRAor6Ie+ID4gecO6OyAjODFGRQor6Ie/ID4gY2jEgTsgIzgxRkYKK+iIgCA+IHnEg287ICM4MjAwCivoiIEgPiB5w7o7ICM4MjAxCivoiIIgPiBjaMWNbmc7ICM4MjAyCivoiIMgPiB4w6w7ICM4MjAzCivoiIQgPiB4w6w7ICM4MjA0CivoiIUgPiBqw6x1OyAjODIwNQor6IiGID4gecO6OyAjODIwNgor6IiHID4gecWtOyAjODIwNwor6IiIID4geMSrbmc7ICM4MjA4CivoiIkgPiBqxa07ICM4MjA5CivoiIogPiBqw6x1OyAjODIwQQor6IiLID4geMOsbjsgIzgyMEIKK+iIjCA+IHNow6k7ICM4MjBDCivoiI0gPiBzaMOoOyAjODIwRAor6IiPID4gasStdTsgIzgyMEYKK+iIkCA+IHNow6w7ICM4MjEwCivoiJEgPiB0xIFuOyAjODIxMQor6IiSID4gc2jFqzsgIzgyMTIKK+iIkyA+IHNow6w7ICM4MjEzCivoiJQgPiB0acSDbjsgIzgyMTQKK+iIlSA+IGTDoG47ICM4MjE1CivoiJYgPiBww7k7ICM4MjE2CivoiJcgPiBww7k7ICM4MjE3CivoiJggPiBndcSDbjsgIzgyMTgKK+iImSA+IGh1w6A7ICM4MjE5CivoiJogPiB0xIFuOyAjODIxQQor6IibID4gY2h1xINuOyAjODIxQgor6IicID4gc2jDuW47ICM4MjFDCivoiJ0gPiB4acOhOyAjODIxRAor6IieID4gd8WtOyAjODIxRQor6IifID4gemjFjXU7ICM4MjFGCivoiKAgPiBkxIFvOyAjODIyMAor6IihID4gZ8SBbmc7ICM4MjIxCivoiKIgPiBzaMSBbjsgIzgyMjIKK+iIoyA+IHnErTsgIzgyMjMKK+iIpSA+IHDEgTsgIzgyMjUKK+iIpiA+IHTDoGk7ICM4MjI2CivoiKcgPiBmw6FuOyAjODIyNwor6IioID4gYsSDbjsgIzgyMjgKK+iIqSA+IGNodcOhbjsgIzgyMjkKK+iIqiA+IGjDoW5nOyAjODIyQQor6IirID4gZsSDbmc7ICM4MjJCCivoiKwgPiBixIFuOyAjODIyQwor6IitID4gcXXDqDsgIzgyMkQKK+iIryA+IHpoxY1uZzsgIzgyMkYKK+iIsCA+IGppw6BuOyAjODIzMAor6IixID4gY8SBbmc7ICM4MjMxCivoiLIgPiBsw61uZzsgIzgyMzIKK+iIsyA+IHpow7o7ICM4MjMzCivoiLQgPiB6w6k7ICM4MjM0CivoiLUgPiBkw7lvOyAjODIzNQor6Ii2ID4gYsOzOyAjODIzNgor6Ii3ID4geGnDoW47ICM4MjM3CivoiLggPiBnxJU7ICM4MjM4CivoiLkgPiBjaHXDoW47ICM4MjM5CivoiLogPiBqacOhOyAjODIzQQor6Ii7ID4gbMWtOyAjODIzQgor6Ii8ID4gaMOzbmc7ICM4MjNDCivoiL0gPiBww6FuZzsgIzgyM0QKK+iIviA+IHjEqzsgIzgyM0UKK+iJgCA+IGbDujsgIzgyNDAKK+iJgSA+IHrDoG87ICM4MjQxCivoiYIgPiBmw6luZzsgIzgyNDIKK+iJgyA+IGzDrTsgIzgyNDMKK+iJhCA+IHNoxIFvOyAjODI0NAor6ImFID4gecO6OyAjODI0NQor6ImGID4gbMOhbmc7ICM4MjQ2CivoiYcgPiB0xK1uZzsgIzgyNDcKK+iJiSA+IHfElWk7ICM4MjQ5CivoiYogPiBiw7M7ICM4MjRBCivoiYsgPiBtxJVuZzsgIzgyNEIKK+iJjCA+IG5pw6BuOyAjODI0Qwor6ImNID4gasWrOyAjODI0RAor6ImOID4gaHXDoW5nOyAjODI0RQor6ImPID4gc2jFj3U7ICM4MjRGCivoiZAgPiB6xY1uZzsgIzgyNTAKK+iJkSA+IGJpw6BuOyAjODI1MQor6ImSID4gbcOgbzsgIzgyNTIKK+iJkyA+IGRpw6k7ICM4MjUzCivoiZUgPiBiw6BuZzsgIzgyNTUKK+iJliA+IGNoxIE7ICM4MjU2CivoiZcgPiB5w6w7ICM4MjU3CivoiZggPiBzxIFvOyAjODI1OAor6ImZID4gY8SBbmc7ICM4MjU5CivoiZogPiBjw6FvOyAjODI1QQor6ImbID4gbMOzdTsgIzgyNUIKK+iJnCA+IGTDoGk7ICM4MjVDCivoiZ4gPiB5w6BvOyAjODI1RQor6ImfID4gdMOzbmc7ICM4MjVGCivoiaEgPiBkxIFuZzsgIzgyNjEKK+iJoiA+IHTDoW47ICM4MjYyCivoiaMgPiBsxa07ICM4MjYzCivoiaQgPiB5xK07ICM4MjY0CivoiaUgPiBqacOoOyAjODI2NQor6ImmID4gamnDoG47ICM4MjY2CivoiacgPiBow7lvOyAjODI2Nwor6ImoID4gbcOpbmc7ICM4MjY4CivoiakgPiBxw607ICM4MjY5CivoiaogPiBsxa07ICM4MjZBCivoiasgPiBsw7o7ICM4MjZCCivoiawgPiBjaMOhbjsgIzgyNkMKK+iJrSA+IHNodcSBbmc7ICM4MjZECivoia4gPiBnw6huOyAjODI2RQor6ImvID4gbGnDoW5nOyAjODI2Rgor6ImwID4gamnEgW47ICM4MjcwCivoibEgPiBqacSBbjsgIzgyNzEKK+iJsiA+IHPDqDsgIzgyNzIKK+iJsyA+IHnDoG47ICM4MjczCivoibQgPiBmw7o7ICM4Mjc0CivoibUgPiBww61uZzsgIzgyNzUKK+iJtiA+IHnDoG47ICM4Mjc2CivoibcgPiB5w6BuOyAjODI3Nwor6Im4ID4gY8SDbzsgIzgyNzgKK+iJuSA+IGPEg28nICd6w6wnICd0w7N1OyAjODI3OQor6Im6ID4gecOsOyAjODI3QQor6Im7ID4gbMOoOyAjODI3Qgor6Im8ID4gdMSrbmc7ICM4MjdDCivoib0gPiBxw611OyAjODI3RAor6Im+ID4gw6BpOyAjODI3RQor6Im/ID4gbsSDaTsgIzgyN0YKK+iKgCA+IHRpw6FvOyAjODI4MAor6IqBID4gamnEgW87ICM4MjgxCivoioIgPiBqacOpOyAjODI4Mgor6IqDID4gcMOpbmc7ICM4MjgzCivoioQgPiB3w6FuOyAjODI4NAor6IqFID4gecOsOyAjODI4NQor6IqGID4gY2jEgWk7ICM4Mjg2CivoiocgPiBtacOhbjsgIzgyODcKK+iKiCA+IG1pxJM7ICM4Mjg4CivoiokgPiBnxIFuOyAjODI4OQor6IqKID4gcWnEgW47ICM4MjhBCivoiosgPiB5w7k7ICM4MjhCCivoiowgPiB5w7k7ICM4MjhDCivoio0gPiBzaMO5bzsgIzgyOEQKK+iKjiA+IHHEq29uZzsgIzgyOEUKK+iKjyA+IHTFrTsgIzgyOEYKK+iKkCA+IHhpw6A7ICM4MjkwCivoipEgPiBxxK07ICM4MjkxCivoipIgPiBtw6FuZzsgIzgyOTIKK+iKkyA+IHrErTsgIzgyOTMKK+iKlCA+IGjFrWk7ICM4Mjk0CivoipUgPiBzxatpOyAjODI5NQor6IqWID4gemjDrDsgIzgyOTYKK+iKlyA+IHhpxIFuZzsgIzgyOTcKK+iKmCA+IGLEqzsgIzgyOTgKK+iKmSA+IGbDujsgIzgyOTkKK+iKmiA+IHTDum47ICM4MjlBCivoipsgPiB3xJVpOyAjODI5Qgor6IqcID4gd8O6OyAjODI5Qwor6IqdID4gemjEqzsgIzgyOUQKK+iKniA+IHHErTsgIzgyOUUKK+iKnyA+IHNoxIFuOyAjODI5Rgor6IqgID4gd8OpbjsgIzgyQTAKK+iKoSA+IHFpw6BuOyAjODJBMQor6IqiID4gcsOpbjsgIzgyQTIKK+iKoyA+IGbFj3U7ICM4MkEzCivoiqQgPiBrxY11OyAjODJBNAor6IqlID4gamnDqDsgIzgyQTUKK+iKpiA+IGzDujsgIzgyQTYKK+iKpyA+IHjDuTsgIzgyQTcKK+iKqCA+IGrDrTsgIzgyQTgKK+iKqSA+IHHDrW47ICM4MkE5CivoiqogPiBxw607ICM4MkFBCivoiqsgPiB5dcOhbjsgIzgyQUIKK+iKrCA+IGbEk247ICM4MkFDCivoiq0gPiBixIE7ICM4MkFECivoiq4gPiByw7lpOyAjODJBRQor6IqvID4geMSrbjsgIzgyQUYKK+iKsCA+IGrDrDsgIzgyQjAKK+iKsSA+IGh1xIE7ICM4MkIxCivoirIgPiBodcSBOyAjODJCMgor6IqzID4gZsSBbmc7ICM4MkIzCivoirQgPiB3w7k7ICM4MkI0CivoirUgPiBqdcOpOyAjODJCNQor6Iq2ID4gZ8WNdTsgIzgyQjYKK+iKtyA+IHpoxK07ICM4MkI3CivoirggPiB5w7puOyAjODJCOAor6Iq5ID4gccOtbjsgIzgyQjkKK+iKuiA+IMSDbzsgIzgyQkEKK+iKuyA+IGNow7o7ICM4MkJCCivoirwgPiBtw6BvOyAjODJCQwor6Iq9ID4gecOhOyAjODJCRAor6Iq+ID4gZsOoaTsgIzgyQkUKK+iKvyA+IHLDqG5nOyAjODJCRgor6IuAID4gaMOhbmc7ICM4MkMwCivoi4EgPiBjxY1uZzsgIzgyQzEKK+iLgiA+IHnDrW47ICM4MkMyCivoi4MgPiB5xY91OyAjODJDMwor6IuEID4gYmnDoG47ICM4MkM0Civoi4UgPiB5w6w7ICM4MkM1Civoi4cgPiB3xJVpOyAjODJDNwor6IuIID4gbMOsOyAjODJDOAor6IuJID4gcMStOyAjODJDOQor6IuKID4gw6g7ICM4MkNBCivoi4sgPiB4acOgbjsgIzgyQ0IKK+iLjCA+IGNow6FuZzsgIzgyQ0MKK+iLjSA+IGPEgW5nOyAjODJDRAor6IuOID4gbcOpbmc7ICM4MkNFCivoi48gPiBzxas7ICM4MkNGCivoi5AgPiB5w607ICM4MkQwCivoi5EgPiB5dcOgbjsgIzgyRDEKK+iLkiA+IHLEg247ICM4MkQyCivoi5MgPiBsw61uZzsgIzgyRDMKK+iLlCA+IHTDoWk7ICM4MkQ0Civoi5UgPiB0acOhbzsgIzgyRDUKK+iLliA+IGTErTsgIzgyRDYKK+iLlyA+IG1pw6FvOyAjODJENwor6IuYID4gccStb25nOyAjODJEOAor6IuZID4gbMOsOyAjODJEOQor6IuaID4gecOybmc7ICM4MkRBCivoi5sgPiBrxJM7ICM4MkRCCivoi5wgPiBtw7k7ICM4MkRDCivoi50gPiBww6hpOyAjODJERAor6IueID4gYsSBbzsgIzgyREUKK+iLnyA+IGfFj3U7ICM4MkRGCivoi6AgPiBtw61uOyAjODJFMAor6IuhID4gecStOyAjODJFMQor6IuiID4gecStOyAjODJFMgor6IujID4gasO5OyAjODJFMwor6IukID4gcMStOyAjODJFNAor6IulID4gcsO5bzsgIzgyRTUKK+iLpiA+IGvFrTsgIzgyRTYKK+iLpyA+IHpow7k7ICM4MkU3Civoi6ggPiBuxK07ICM4MkU4Civoi6kgPiBiw7M7ICM4MkU5Civoi6ogPiBixK1uZzsgIzgyRUEKK+iLqyA+IHNoxIFuOyAjODJFQgor6IusID4gccOtdTsgIzgyRUMKK+iLrSA+IHnEg287ICM4MkVECivoi64gPiB4acSBbjsgIzgyRUUKK+iLryA+IGLElW47ICM4MkVGCivoi7AgPiBow7NuZzsgIzgyRjAKK+iLsSA+IHnEq25nOyAjODJGMQor6IuyID4gemjEgzsgIzgyRjIKK+iLsyA+IGTFjW5nOyAjODJGMwor6Iu0ID4gasWrOyAjODJGNAor6Iu1ID4gZGnDqTsgIzgyRjUKK+iLtiA+IG5pw6k7ICM4MkY2Civoi7cgPiBnxIFuOyAjODJGNwor6Iu4ID4gaMWrOyAjODJGOAor6Iu5ID4gcMOtbmc7ICM4MkY5Civoi7ogPiBtw6lpOyAjODJGQQor6Iu7ID4gZsO6OyAjODJGQgor6Iu8ID4gc2jEk25nOyAjODJGQwor6Iu9ID4gZ8WrOyAjODJGRAor6Iu+ID4gYsOsOyAjODJGRQor6Iu/ID4gd8OoaTsgIzgyRkYKK+iMgCA+IGbDujsgIzgzMDAKK+iMgSA+IHpow7pvOyAjODMwMQor6IyCID4gbcOgbzsgIzgzMDIKK+iMgyA+IGbDoG47ICM4MzAzCivojIQgPiBxacOpOyAjODMwNAor6IyFID4gbcOhbzsgIzgzMDUKK+iMhiA+IG3Eg287ICM4MzA2CivojIcgPiBiw6E7ICM4MzA3CivojIggPiB6xK07ICM4MzA4CivojIkgPiBtw7I7ICM4MzA5CivojIogPiB6xKs7ICM4MzBBCivojIsgPiBkxK07ICM4MzBCCivojIwgPiBjaMOtOyAjODMwQwor6IyNID4gasOsOyAjODMwRAor6IyOID4gasSrbmc7ICM4MzBFCivojI8gPiBsw7NuZzsgIzgzMEYKK+iMkSA+IG5pxINvOyAjODMxMQor6IyTID4geHXDqTsgIzgzMTMKK+iMlCA+IHnDrW5nOyAjODMxNAor6IyVID4gccOtb25nOyAjODMxNQor6IyWID4gZ8OpOyAjODMxNgor6IyXID4gbcStbmc7ICM4MzE3CivojJggPiBsw6w7ICM4MzE4CivojJkgPiByw7NuZzsgIzgzMTkKK+iMmiA+IHnDrG47ICM4MzFBCivojJsgPiBnw6huOyAjODMxQgor6IycID4gcWnDoG47ICM4MzFDCivojJ0gPiBjaMSDaTsgIzgzMUQKK+iMniA+IGNow6luOyAjODMxRQor6IyfID4gecO5OyAjODMxRgor6IygID4geMSrdTsgIzgzMjAKK+iMoSA+IHrDrDsgIzgzMjEKK+iMoiA+IGxpw6g7ICM4MzIyCivojKMgPiB3w7o7ICM4MzIzCivojKQgPiBqw6w7ICM4MzI0CivojKUgPiBrxatpOyAjODMyNQor6IymID4gY8OoOyAjODMyNgor6IynID4gY2jDs25nOyAjODMyNwor6IyoID4gY8OtOyAjODMyOAor6IypID4gZ8WPdTsgIzgzMjkKK+iMqiA+IGd1xIFuZzsgIzgzMkEKK+iMqyA+IG3DoW5nOyAjODMyQgor6IysID4gY2jDrTsgIzgzMkMKK+iMrSA+IGppxIFvOyAjODMyRAor6IyuID4gamnEgW87ICM4MzJFCivojK8gPiBmw7o7ICM4MzJGCivojLAgPiB5w7o7ICM4MzMwCivojLEgPiB6aMWrOyAjODMzMQor6IyyID4gesSrOyAjODMzMgor6IyzID4gamnEgW5nOyAjODMzMwor6Iy0ID4gaMO6aTsgIzgzMzQKK+iMtSA+IHnEq247ICM4MzM1CivojLYgPiBjaMOhOyAjODMzNgor6Iy3ID4gZsOhOyAjODMzNwor6Iy4ID4gcsOzbmc7ICM4MzM4CivojLkgPiByw7o7ICM4MzM5CivojLogPiBjaMWNbmc7ICM4MzNBCivojLsgPiBtxINuZzsgIzgzM0IKK+iMvCA+IHTDs25nOyAjODMzQwor6Iy9ID4gemjDsm5nOyAjODMzRAor6Iy/ID4gemjDujsgIzgzM0YKK+iNgCA+IHjDum47ICM4MzQwCivojYEgPiBodcOhbjsgIzgzNDEKK+iNgiA+IGt1xIE7ICM4MzQyCivojYMgPiBxdcOhbjsgIzgzNDMKK+iNhCA+IGfEgWk7ICM4MzQ0CivojYUgPiBkxIE7ICM4MzQ1CivojYYgPiBqxKtuZzsgIzgzNDYKK+iNhyA+IHjDrG5nOyAjODM0Nwor6I2IID4gcXXDoG47ICM4MzQ4CivojYkgPiBjxINvOyAjODM0OQor6I2KID4gasSrbmc7ICM4MzRBCivojYsgPiDDqXI7ICM4MzRCCivojYwgPiDDoG47ICM4MzRDCivojY0gPiBzaMWNdTsgIzgzNEQKK+iNjiA+IGNow607ICM4MzRFCivojY8gPiByxJVuOyAjODM0Rgor6I2QID4gamnDoG47ICM4MzUwCivojZEgPiB0w607ICM4MzUxCivojZIgPiBodcSBbmc7ICM4MzUyCivojZMgPiBww61uZzsgIzgzNTMKK+iNlCA+IGzDrDsgIzgzNTQKK+iNlSA+IGrEq247ICM4MzU1CivojZYgPiBsxINvOyAjODM1Ngor6I2XID4gc2jDuTsgIzgzNTcKK+iNmCA+IHpodcSBbmc7ICM4MzU4CivojZkgPiBkw6E7ICM4MzU5CivojZogPiBqacOhOyAjODM1QQor6I2bID4gcsOhbzsgIzgzNUIKK+iNnCA+IGLDrDsgIzgzNUMKK+iNnSA+IHrDqTsgIzgzNUQKK+iNniA+IHFpw6FvOyAjODM1RQor6I2fID4gaMO5aTsgIzgzNUYKK+iNoCA+IHHDrTsgIzgzNjAKK+iNoSA+IGTDoG5nOyAjODM2MQor6I2jID4gcsOzbmc7ICM4MzYzCivojaQgPiBoxatuOyAjODM2NAor6I2lID4gecOtbmc7ICM4MzY1CivojaYgPiBsw7lvOyAjODM2Ngor6I2nID4gecOtbmc7ICM4MzY3CivojaggPiB4w7puOyAjODM2OAor6I2pID4gasOsbjsgIzgzNjkKK+iNqiA+IHPFq247ICM4MzZBCivojasgPiB5w6xuOyAjODM2Qgor6I2sID4gbcSDaTsgIzgzNkMKK+iNrSA+IGjDs25nOyAjODM2RAor6I2uID4gemjDsnU7ICM4MzZFCivoja8gPiB5w6BvOyAjODM2Rgor6I2wID4gZMO5OyAjODM3MAor6I2xID4gd8SVaTsgIzgzNzEKK+iNsiA+IGNow7k7ICM4MzcyCivojbMgPiBkw7J1OyAjODM3Mwor6I20ID4gZsWrOyAjODM3NAor6I21ID4gcsSVbjsgIzgzNzUKK+iNtiA+IHnDrW47ICM4Mzc2CivojbcgPiBow6k7ICM4Mzc3CivojbggPiBiw607ICM4Mzc4CivojbkgPiBiw7k7ICM4Mzc5CivojbogPiB5w7puOyAjODM3QQor6I27ID4gZMOtOyAjODM3Qgor6I28ID4gdMO6OyAjODM3Qwor6I29ID4gc8WraTsgIzgzN0QKK+iNviA+IHPFq2k7ICM4MzdFCivojb8gPiBjaMOpbmc7ICM4MzdGCivojoAgPiBjaMOpbjsgIzgzODAKK+iOgSA+IHfDujsgIzgzODEKK+iOgiA+IGJpw6k7ICM4MzgyCivojoMgPiB4xKs7ICM4MzgzCivojoQgPiBnxJVuZzsgIzgzODQKK+iOhSA+IGzDrDsgIzgzODUKK+iOhiA+IGbFrTsgIzgzODYKK+iOhyA+IHpow7k7ICM4Mzg3CivojoggPiBtw7I7ICM4Mzg4CivojokgPiBsw6w7ICM4Mzg5CivojoogPiB6aHXEgW5nOyAjODM4QQor6I6LID4gasOtOyAjODM4Qgor6I6MID4gZMO6bzsgIzgzOEMKK+iOjSA+IHHDrXU7ICM4MzhECivojo4gPiBzaMSBOyAjODM4RQor6I6PID4gc8WrbzsgIzgzOEYKK+iOkCA+IGNow6luOyAjODM5MAor6I6RID4gZsSTbmc7ICM4MzkxCivojpIgPiBqxa07ICM4MzkyCivojpMgPiBtw6lpOyAjODM5Mwor6I6UID4gbcOpbmc7ICM4Mzk0CivojpUgPiB4w6xuZzsgIzgzOTUKK+iOliA+IGrEq25nOyAjODM5Ngor6I6XID4gY2jEkzsgIzgzOTcKK+iOmCA+IHjEq247ICM4Mzk4CivojpkgPiBqxatuOyAjODM5OQor6I6aID4gecOhbjsgIzgzOUEKK+iOmyA+IHTDrW5nOyAjODM5Qgor6I6cID4gZGnDoG87ICM4MzlDCivojp0gPiBjw7lvOyAjODM5RAor6I6eID4gd8SDbjsgIzgzOUUKK+iOnyA+IGjDoG47ICM4MzlGCivojqAgPiB5xY91OyAjODNBMAor6I6hID4gY8O5bzsgIzgzQTEKK+iOoiA+IGppw6E7ICM4M0EyCivojqMgPiB3w6FuZzsgIzgzQTMKK+iOpCA+IHnDs3U7ICM4M0E0CivojqUgPiBuxK11OyAjODNBNQor6I6mID4gc2jEgW87ICM4M0E2CivojqcgPiB4acOgbjsgIzgzQTcKK+iOqCA+IGzDoW5nOyAjODNBOAor6I6pID4gZsO6OyAjODNBOQor6I6qID4gw6k7ICM4M0FBCivojqsgPiBtw7I7ICM4M0FCCivojqwgPiB3w6huOyAjODNBQwor6I6tID4gamnDqTsgIzgzQUQKK+iOriA+IG7DoW47ICM4M0FFCivojq8gPiBtw7k7ICM4M0FGCivojrAgPiBrxINuOyAjODNCMAor6I6xID4gbMOhaTsgIzgzQjEKK+iOsiA+IGxpw6FuOyAjODNCMgor6I6zID4gc2jDrTsgIzgzQjMKK+iOtCA+IHfFjTsgIzgzQjQKK+iOtiA+IGxpxINuOyAjODNCNgor6I63ID4gaMO5bzsgIzgzQjcKK+iOuCA+IHnDs3U7ICM4M0I4CivojrkgPiB5w61uZzsgIzgzQjkKK+iOuiA+IHnEq25nOyAjODNCQQor6I68ID4gY2jDum47ICM4M0JDCivojr0gPiBtxINuZzsgIzgzQkQKK+iOviA+IG3Eg25nOyAjODNCRQor6I6/ID4gY8OsOyAjODNCRgor6I+AID4gd8SDbjsgIzgzQzAKK+iPgSA+IGrEq25nOyAjODNDMQor6I+CID4gZMSrOyAjODNDMgor6I+DID4gccO6OyAjODNDMwor6I+EID4gZMWNbmc7ICM4M0M0Civoj4UgPiBqacSBbjsgIzgzQzUKK+iPhiA+IHrFjXU7ICM4M0M2Civoj4cgPiBnxas7ICM4M0M3Civoj4ggPiBsxIE7ICM4M0M4Civoj4kgPiBsw7k7ICM4M0M5Civoj4ogPiBqw7o7ICM4M0NBCivoj4sgPiB3w6hpOyAjODNDQgor6I+MID4gasO5bjsgIzgzQ0MKK+iPjSA+IG5pw6g7ICM4M0NECivoj44gPiBrxatuOyAjODNDRQor6I+PID4gaMOpOyAjODNDRgor6I+QID4gcMO6OyAjODNEMAor6I+RID4gesSrOyAjODNEMQor6I+SID4gZ8SDbzsgIzgzRDIKK+iPkyA+IGfFrW87ICM4M0QzCivoj5QgPiBmw7o7ICM4M0Q0Civoj5UgPiBsw7puOyAjODNENQor6I+WID4gY2jEgW5nOyAjODNENgor6I+XID4gY2jDs3U7ICM4M0Q3Civoj5ggPiBzxY1uZzsgIzgzRDgKK+iPmSA+IGNow7ppOyAjODNEOQor6I+aID4gemjDoG47ICM4M0RBCivoj5sgPiBtw6luOyAjODNEQgor6I+cID4gY8OgaTsgIzgzREMKK+iPnSA+IGLDoTsgIzgzREQKK+iPniA+IGzDrTsgIzgzREUKK+iPnyA+IHTDuTsgIzgzREYKK+iPoCA+IGLFjTsgIzgzRTAKK+iPoSA+IGjDoG47ICM4M0UxCivoj6IgPiBiw6BvOyAjODNFMgor6I+jID4gccOsbjsgIzgzRTMKK+iPpCA+IGp1xINuOyAjODNFNAor6I+lID4geMSrOyAjODNFNQor6I+mID4gccOtbjsgIzgzRTYKK+iPpyA+IGTErTsgIzgzRTcKK+iPqCA+IGppxJM7ICM4M0U4Civoj6kgPiBww7o7ICM4M0U5Civoj6ogPiBkw6BuZzsgIzgzRUEKK+iPqyA+IGrErW47ICM4M0VCCivoj6wgPiB6aMSDbzsgIzgzRUMKK+iPrSA+IHTDoWk7ICM4M0VECivoj64gPiBnxJNuZzsgIzgzRUUKK+iPryA+IGh1w6E7ICM4M0VGCivoj7AgPiBnxas7ICM4M0YwCivoj7EgPiBsw61uZzsgIzgzRjEKK+iPsiA+IGbEk2k7ICM4M0YyCivoj7MgPiBqxKtuOyAjODNGMwor6I+0ID4gxIFuOyAjODNGNAor6I+1ID4gd8SDbmc7ICM4M0Y1Civoj7YgPiBixJVuZzsgIzgzRjYKK+iPtyA+IHpoxY91OyAjODNGNwor6I+4ID4gecSBbjsgIzgzRjgKK+iPuSA+IGrFqzsgIzgzRjkKK+iPuiA+IGppxIFuOyAjODNGQQor6I+7ID4gbMStbjsgIzgzRkIKK+iPvCA+IHTEg247ICM4M0ZDCivoj70gPiBzaMO6OyAjODNGRAor6I++ID4gdGnDoW47ICM4M0ZFCivoj78gPiBkw6BvOyAjODNGRgor6JCAID4gaMWtOyAjODQwMAor6JCBID4gccOtOyAjODQwMQor6JCCID4gaMOpOyAjODQwMgor6JCDID4gY8O5aTsgIzg0MDMKK+iQhCA+IHTDoW87ICM4NDA0CivokIUgPiBjaMWrbjsgIzg0MDUKK+iQhiA+IGLEk2k7ICM4NDA2CivokIcgPiBjaMOhbmc7ICM4NDA3CivokIggPiBodcOhbjsgIzg0MDgKK+iQiSA+IGbDqWk7ICM4NDA5CivokIogPiBsw6FpOyAjODQwQQor6JCLID4gccSrOyAjODQwQgor6JCMID4gbcOpbmc7ICM4NDBDCivokI0gPiBww61uZzsgIzg0MEQKK+iQjiA+IHfEk2k7ICM4NDBFCivokI8gPiBkw6BuOyAjODQwRgor6JCQID4gc2jDoDsgIzg0MTAKK+iQkSA+IGh1w6FuOyAjODQxMQor6JCSID4gecSDbjsgIzg0MTIKK+iQkyA+IHnDrTsgIzg0MTMKK+iQlCA+IHRpw6FvOyAjODQxNAor6JCVID4gccOtOyAjODQxNQor6JCWID4gd8SDbjsgIzg0MTYKK+iQlyA+IGPDqDsgIzg0MTcKK+iQmCA+IG7DoGk7ICM4NDE4CivokJogPiB0w7lvOyAjODQxQQor6JCbID4gasSrdTsgIzg0MUIKK+iQnCA+IHRpxJM7ICM4NDFDCivokJ0gPiBsw7pvOyAjODQxRAor6JCgID4gbcOpbmc7ICM4NDIwCivokKQgPiB5w61uZzsgIzg0MjQKK+iQpSA+IHnDrW5nOyAjODQyNQor6JCmID4gecOtbmc7ICM4NDI2CivokKcgPiB4acSBbzsgIzg0MjcKK+iQqCA+IHPDoDsgIzg0MjgKK+iQqSA+IHHEq3U7ICM4NDI5CivokKogPiBrxJM7ICM4NDJBCivokKsgPiB4acOgbmc7ICM4NDJCCivokKwgPiB3w6BuOyAjODQyQwor6JCtID4gecWtOyAjODQyRAor6JCuID4gecO5OyAjODQyRQor6JCvID4gZsO5OyAjODQyRgor6JCwID4gbGnDoG47ICM4NDMwCivokLEgPiB4dcSBbjsgIzg0MzEKK+iQsiA+IHl1w6FuOyAjODQzMgor6JCzID4gbsOhbjsgIzg0MzMKK+iQtCA+IHrDqTsgIzg0MzQKK+iQtSA+IHfFjTsgIzg0MzUKK+iQtiA+IGNoxa1uOyAjODQzNgor6JC3ID4geGnEgW87ICM4NDM3CivokLggPiB5w7o7ICM4NDM4CivokLkgPiBwacSBbjsgIzg0MzkKK+iQuiA+IG3DoG87ICM4NDNBCivokLsgPiDEgW47ICM4NDNCCivokLwgPiDDqDsgIzg0M0MKK+iQvSA+IGzDuW87ICM4NDNECivokL4gPiB5w61uZzsgIzg0M0UKK+iQvyA+IGjDum87ICM4NDNGCivokYAgPiBndcSBOyAjODQ0MAor6JGBID4gamnEgW5nOyAjODQ0MQor6JGCID4gbWnEg247ICM4NDQyCivokYMgPiB6w7pvOyAjODQ0Mwor6JGEID4gesO5bzsgIzg0NDQKK+iRhSA+IGrFqzsgIzg0NDUKK+iRhiA+IGLEg287ICM4NDQ2CivokYcgPiByw7N1OyAjODQ0Nwor6JGIID4geMStOyAjODQ0OAor6JGJID4geGnDqTsgIzg0NDkKK+iRiiA+IMSBbjsgIzg0NEEKK+iRiyA+IHHDujsgIzg0NEIKK+iRjCA+IGppxIFuOyAjODQ0Qwor6JGNID4gZsO6OyAjODQ0RAor6JGOID4gbMecOyAjODQ0RQor6JGPID4gasSrbmc7ICM4NDRGCivokZAgPiBww6luOyAjODQ1MAor6JGRID4gZsSTbmc7ICM4NDUxCivokZIgPiBow7NuZzsgIzg0NTIKK+iRkyA+IGjDs25nOyAjODQ1Mwor6JGUID4gaMOzdTsgIzg0NTQKK+iRlSA+IHnDoW47ICM4NDU1CivokZYgPiB0w7o7ICM4NDU2CivokZcgPiB6aMO5OyAjODQ1Nwor6JGYID4gesSrOyAjODQ1OAor6JGZID4geGnEgW5nOyAjODQ1OQor6JGaID4gc2jDqG47ICM4NDVBCivokZsgPiBnxJU7ICM4NDVCCivokZwgPiBqacOpOyAjODQ1Qwor6JGdID4gasOsbmc7ICM4NDVECivokZ4gPiBtxK07ICM4NDVFCivokZ8gPiBodcOhbmc7ICM4NDVGCivokaAgPiBzaMSTbjsgIzg0NjAKK+iRoSA+IHDDujsgIzg0NjEKK+iRoiA+IGfDoGk7ICM4NDYyCivokaMgPiBkxY9uZzsgIzg0NjMKK+iRpCA+IHpow7J1OyAjODQ2NAor6JGlID4gcWnDoW47ICM4NDY1CivokaYgPiB3xJVpOyAjODQ2Ngor6JGnID4gYsOzOyAjODQ2Nwor6JGoID4gd8STaTsgIzg0NjgKK+iRqSA+IHDEgTsgIzg0NjkKK+iRqiA+IGrDrDsgIzg0NkEKK+iRqyA+IGjDujsgIzg0NkIKK+iRrCA+IHrDoG5nOyAjODQ2Qwor6JGtID4gamnEgTsgIzg0NkQKK+iRriA+IGR1w6BuOyAjODQ2RQor6JGvID4gecOgbzsgIzg0NkYKK+iRsCA+IGrDuW47ICM4NDcwCivokbEgPiBjxY1uZzsgIzg0NzEKK+iRsiA+IHF1w6FuOyAjODQ3Mgor6JGzID4gd8STaTsgIzg0NzMKK+iRtCA+IHhpw6FuOyAjODQ3NAor6JG1ID4ga8O6aTsgIzg0NzUKK+iRtiA+IHTDrW5nOyAjODQ3Ngor6JG3ID4gaMWrbjsgIzg0NzcKK+iRuCA+IHjErTsgIzg0NzgKK+iRuSA+IHNoxKs7ICM4NDc5CivokbogPiBxw6w7ICM4NDdBCivokbsgPiBsw6FuOyAjODQ3Qgor6JG8ID4gesWNbmc7ICM4NDdDCivokb0gPiB5xIFvOyAjODQ3RAor6JG+ID4geXXEgW47ICM4NDdFCivokb8gPiBtw6lpOyAjODQ3Rgor6JKAID4gecWrbjsgIzg0ODAKK+iSgSA+IHNow7k7ICM4NDgxCivokoIgPiBkw6w7ICM4NDgyCivokoMgPiB6aHXDoG47ICM4NDgzCivokoQgPiBndcSBbjsgIzg0ODQKK+iShiA+IHh1xJM7ICM4NDg2CivokocgPiBjaMSDbjsgIzg0ODcKK+iSiCA+IGvEg2k7ICM4NDg4CivokokgPiBrw7lpOyAjODQ4OQor6JKLID4gamnEg25nOyAjODQ4Qgor6JKMID4gbMOzdTsgIzg0OEMKK+iSjSA+IHfDqWk7ICM4NDhECivoko4gPiBww6BpOyAjODQ4RQor6JKQID4gc8WNdTsgIzg0OTAKK+iSkSA+IHnEq247ICM4NDkxCivokpIgPiBzaMSrOyAjODQ5Mgor6JKTID4gY2jDum47ICM4NDkzCivokpQgPiBzaMOtOyAjODQ5NAor6JKVID4gecWrbjsgIzg0OTUKK+iSliA+IHpoxJNuOyAjODQ5Ngor6JKXID4gbMOgbmc7ICM4NDk3CivokpggPiBuw7o7ICM4NDk4CivokpkgPiBtw6luZzsgIzg0OTkKK+iSmiA+IGjDqTsgIzg0OUEKK+iSmyA+IHF1xJM7ICM4NDlCCivokpwgPiBzdcOgbjsgIzg0OUMKK+iSnSA+IHl1w6FuOyAjODQ5RAor6JKeID4gbMOsOyAjODQ5RQor6JKfID4gasWtOyAjODQ5Rgor6JKgID4geMOtOyAjODRBMAor6JKhID4gcMOhbmc7ICM4NEExCivokqIgPiBjaMO6OyAjODRBMgor6JKjID4geMO6OyAjODRBMwor6JKkID4gdMO6OyAjODRBNAor6JKlID4gbMOtdTsgIzg0QTUKK+iSpiA+IHfDsjsgIzg0QTYKK+iSpyA+IHpoxJNuOyAjODRBNwor6JKoID4gcWnDoG47ICM4NEE4CivokqkgPiB6xas7ICM4NEE5CivokqogPiBww7I7ICM4NEFBCivokqsgPiBjxatvOyAjODRBQgor6JKsID4geXXEgW47ICM4NEFDCivokq0gPiBjaMO6OyAjODRBRAor6JKuID4gecO5OyAjODRBRQor6JKvID4ga3XEg2k7ICM4NEFGCivokrAgPiBww6FuOyAjODRCMAor6JKxID4gcMO6OyAjODRCMQor6JKyID4gcMO6OyAjODRCMgor6JKzID4gbsOgOyAjODRCMwor6JK0ID4gc2jDuW87ICM4NEI0CivokrUgPiB4xKs7ICM4NEI1CivokrYgPiBmw6luOyAjODRCNgor6JK3ID4gecO6bjsgIzg0QjcKK+iSuCA+IHpoxJNuZzsgIzg0QjgKK+iSuSA+IGppxIFuOyAjODRCOQor6JK6ID4gasOtOyAjODRCQQor6JK7ID4gcsO5bzsgIzg0QkIKK+iSvCA+IGPEgW5nOyAjODRCQwor6JK9ID4gxJNuOyAjODRCRAor6JK+ID4gbcOtOyAjODRCRQor6JK/ID4gaMSBbzsgIzg0QkYKK+iTgCA+IHPFq247ICM4NEMwCivok4EgPiB6aMSTbjsgIzg0QzEKK+iTgiA+IG3DrW5nOyAjODRDMgor6JODID4gc291OyAjODRDMwor6JOEID4geMO5OyAjODRDNAor6JOFID4gbMOtdTsgIzg0QzUKK+iThiA+IHjDrTsgIzg0QzYKK+iThyA+IGfFrTsgIzg0QzcKK+iTiCA+IGzDoW5nOyAjODRDOAor6JOJID4gcsOzbmc7ICM4NEM5Civok4ogPiB3xJVuZzsgIzg0Q0EKK+iTiyA+IGfDoGk7ICM4NENCCivok4wgPiBjw7lvOyAjODRDQwor6JONID4gc2jEqzsgIzg0Q0QKK+iTjiA+IHTDoW5nOyAjODRDRQor6JOPID4gbMWtbzsgIzg0Q0YKK+iTkCA+IHLDuTsgIzg0RDAKK+iTkSA+IHPFq287ICM4NEQxCivok5IgPiB4acSBbjsgIzg0RDIKK+iTkyA+IGLDqGk7ICM4NEQzCivok5QgPiB5xINvOyAjODRENAor6JOVID4gZ8O5aTsgIzg0RDUKK+iTliA+IGLEqzsgIzg0RDYKK+iTlyA+IHrFj25nOyAjODRENwor6JOYID4gZ8WtbjsgIzg0RDgKK+iTmiA+IHjEq3U7ICM4NERBCivok5sgPiBjw6g7ICM4NERCCivok50gPiBsw6FuOyAjODRERAor6JOfID4gasOsOyAjODRERgor6JOgID4gbMOtOyAjODRFMAor6JOhID4gY8SBbjsgIzg0RTEKK+iToiA+IGzDoW5nOyAjODRFMgor6JOjID4gecO5OyAjODRFMwor6JOlID4gecOsbmc7ICM4NEU1Civok6YgPiBtw7I7ICM4NEU2Civok6cgPiBkacOgbzsgIzg0RTcKK+iTqCA+IHRpxIFvOyAjODRFOAor6JOpID4gbcOgbzsgIzg0RTkKK+iTqiA+IHTFjW5nOyAjODRFQQor6JOrID4gemjDujsgIzg0RUIKK+iTrCA+IHDDqW5nOyAjODRFQwor6JOtID4gxIFuOyAjODRFRAor6JOuID4gbGnDoW47ICM4NEVFCivok68gPiBjxY1uZzsgIzg0RUYKK+iTsCA+IHjErTsgIzg0RjAKK+iTsSA+IHDDrW5nOyAjODRGMQor6JOyID4gccSrdTsgIzg0RjIKK+iTsyA+IGrDrG47ICM4NEYzCivok7QgPiBjaMO6bjsgIzg0RjQKK+iTtSA+IGppw6k7ICM4NEY1Civok7YgPiB3xJVpOyAjODRGNgor6JO3ID4gdMWraTsgIzg0RjcKK+iTuCA+IGPDoW87ICM4NEY4Civok7kgPiB5xa07ICM4NEY5Civok7ogPiB5w6w7ICM4NEZBCivok7sgPiBqw607ICM4NEZCCivok7wgPiBsacSDbzsgIzg0RkMKK+iTvSA+IGLDrDsgIzg0RkQKK+iTviA+IGzFrTsgIzg0RkUKK+iTvyA+IHPDuTsgIzg0RkYKK+iUgCA+IGLDuTsgIzg1MDAKK+iUgSA+IHpoxIFuZzsgIzg1MDEKK+iUgiA+IGzDum87ICM4NTAyCivolIMgPiBqacOgbmc7ICM4NTAzCivolIQgPiBtw6BuOyAjODUwNAor6JSFID4gecOhbjsgIzg1MDUKK+iUhiA+IGzDrW5nOyAjODUwNgor6JSHID4gasOsOyAjODUwNwor6JSIID4gcGnEg287ICM4NTA4CivolIkgPiBnxa1uOyAjODUwOQor6JSKID4gaMSDbjsgIzg1MEEKK+iUiyA+IGTDrTsgIzg1MEIKK+iUjCA+IHPDuTsgIzg1MEMKK+iUjSA+IGzDuTsgIzg1MEQKK+iUjiA+IHNow6g7ICM4NTBFCivolI8gPiBzaMSBbmc7ICM4NTBGCivolJAgPiBkw607ICM4NTEwCivolJEgPiBtacOoOyAjODUxMQor6JSSID4geMWrbjsgIzg1MTIKK+iUkyA+IG3DoG47ICM4NTEzCivolJQgPiBiw7M7ICM4NTE0CivolJUgPiBkw6w7ICM4NTE1CivolJYgPiBjw7pvOyAjODUxNgor6JSXID4gemjDqDsgIzg1MTcKK+iUmCA+IHPEk247ICM4NTE4CivolJkgPiB4dcOgbjsgIzg1MTkKK+iUmiA+IHfDqGk7ICM4NTFBCivolJsgPiBow7o7ICM4NTFCCivolJwgPiDDoW87ICM4NTFDCivolJ0gPiBtxK07ICM4NTFECivolJ4gPiBsw7N1OyAjODUxRQor6JSfID4gY8O5OyAjODUxRgor6JSgID4gemjFjW5nOyAjODUyMAor6JShID4gY8OgaTsgIzg1MjEKK+iUoiA+IHDDszsgIzg1MjIKK+iUoyA+IGppxINuZzsgIzg1MjMKK+iUpCA+IG3DrDsgIzg1MjQKK+iUpSA+IGPFjW5nOyAjODUyNQor6JSmID4gbmnEg287ICM4NTI2CivolKcgPiBow7lpOyAjODUyNwor6JSoID4gasO5bjsgIzg1MjgKK+iUqSA+IHnDrW47ICM4NTI5CivolKogPiBqacOgbjsgIzg1MkEKK+iUqyA+IHnEgW47ICM4NTJCCivolKwgPiBzaMWrOyAjODUyQwor6JStID4gecOsbjsgIzg1MkQKK+iUriA+IGvDuWk7ICM4NTJFCivolK8gPiBjaMOpbjsgIzg1MkYKK+iUsCA+IGjDuTsgIzg1MzAKK+iUsSA+IHNoxIE7ICM4NTMxCivolLIgPiBrw7J1OyAjODUzMgor6JSzID4gcWnDoG47ICM4NTMzCivolLQgPiBtw6E7ICM4NTM0CivolLUgPiB6xIFuZzsgIzg1MzUKK+iUtyA+IHFpw6FuZzsgIzg1MzcKK+iUuCA+IGTFjXU7ICM4NTM4CivolLkgPiBsacOgbjsgIzg1MzkKK+iUuiA+IGzDrG47ICM4NTNBCivolLsgPiBrw7J1OyAjODUzQgor6JS8ID4gxINpOyAjODUzQwor6JS9ID4gYsOsOyAjODUzRAor6JS+ID4gbMOtOyAjODUzRQor6JS/ID4gd8OpaTsgIzg1M0YKK+iVgCA+IGrDrTsgIzg1NDAKK+iVgSA+IHjDum47ICM4NTQxCivolYIgPiBzaMOobmc7ICM4NTQyCivolYMgPiBmw6FuOyAjODU0Mwor6JWEID4gbcOpbmc7ICM4NTQ0CivolYUgPiDFj3U7ICM4NTQ1CivolYYgPiBjaMSDbjsgIzg1NDYKK+iVhyA+IGRpxINuOyAjODU0Nwor6JWIID4geMO5bjsgIzg1NDgKK+iViSA+IGppxIFvOyAjODU0OQor6JWKID4gcsWtaTsgIzg1NEEKK+iViyA+IHLFrWk7ICM4NTRCCivolYwgPiBsxJVpOyAjODU0Qwor6JWNID4gecO6OyAjODU0RAor6JWOID4gcWnDoW87ICM4NTRFCivolY8gPiBjaMO6OyAjODU0Rgor6JWQID4gaHXDoTsgIzg1NTAKK+iVkSA+IGppxIFuOyAjODU1MQor6JWSID4gbcSDaTsgIzg1NTIKK+iVkyA+IHnDum47ICM4NTUzCivolZQgPiBixIFvOyAjODU1NAor6JWVID4gecOzdTsgIzg1NTUKK+iVliA+IHHDujsgIzg1NTYKK+iVlyA+IGzDuTsgIzg1NTcKK+iVmCA+IHLDoW87ICM4NTU4CivolZkgPiBow7lpOyAjODU1OQor6JWaID4gw6g7ICM4NTVBCivolZsgPiB0w6luZzsgIzg1NUIKK+iVnCA+IGbElWk7ICM4NTVDCivolZ0gPiBqdcOpOyAjODU1RAor6JWeID4gesO5aTsgIzg1NUUKK+iVnyA+IGbDoDsgIzg1NUYKK+iVoCA+IHLDujsgIzg1NjAKK+iVoSA+IGbDqW47ICM4NTYxCivolaIgPiBrw7lpOyAjODU2Mgor6JWjID4gc2jDuW47ICM4NTYzCivolaQgPiByw7ppOyAjODU2NAor6JWlID4gecSDOyAjODU2NQor6JWmID4geMWrOyAjODU2Ngor6JWnID4gZsO5OyAjODU2Nwor6JWoID4ganXDqTsgIzg1NjgKK+iVqSA+IGTDoG5nOyAjODU2OQor6JWqID4gd8O6OyAjODU2QQor6JWrID4gdMOzbmc7ICM4NTZCCivolawgPiBzxKs7ICM4NTZDCivola0gPiB4acSBbzsgIzg1NkQKK+iVriA+IHjDrDsgIzg1NkUKK+iVryA+IGzDs25nOyAjODU2Rgor6JWwID4gecO5bjsgIzg1NzAKK+iVsiA+IHHDrTsgIzg1NzIKK+iVsyA+IGppxIFuOyAjODU3Mwor6JW0ID4gecO5bjsgIzg1NzQKK+iVtSA+IHPFq247ICM4NTc1CivolbYgPiBsw61uZzsgIzg1NzYKK+iVtyA+IHnDuTsgIzg1NzcKK+iVuCA+IHhpw6E7ICM4NTc4CivolbkgPiB5xY1uZzsgIzg1NzkKK+iVuiA+IGrDrTsgIzg1N0EKK+iVuyA+IGjDsm5nOyAjODU3Qgor6JW8ID4gc8OsOyAjODU3Qwor6JW9ID4gbsOzbmc7ICM4NTdECivolb4gPiBsxJVpOyAjODU3RQor6JW/ID4geHXEgW47ICM4NTdGCivoloAgPiB5w7luOyAjODU4MAor6JaBID4gecO5OyAjODU4MQor6JaCID4geMOtOyAjODU4Mgor6JaDID4gaMOgbzsgIzg1ODMKK+iWhCA+IGLDszsgIzg1ODQKK+iWhSA+IGjEgW87ICM4NTg1CivoloYgPiDDoGk7ICM4NTg2CivolocgPiB3w6lpOyAjODU4Nwor6JaIID4gaMO5aTsgIzg1ODgKK+iWiSA+IHfDqGk7ICM4NTg5CivoloogPiBqw6w7ICM4NThBCivolosgPiBjxKs7ICM4NThCCivolowgPiB4acSBbmc7ICM4NThDCivolo0gPiBsdcOgbjsgIzg1OEQKK+iWjiA+IG1pw6g7ICM4NThFCivolo8gPiB5w6w7ICM4NThGCivolpAgPiBsw6luZzsgIzg1OTAKK+iWkSA+IGppxIFuZzsgIzg1OTEKK+iWkiA+IGPDoG47ICM4NTkyCivolpMgPiBzaMSTbjsgIzg1OTMKK+iWlCA+IHFpw6FuZzsgIzg1OTQKK+iWlSA+IGxpw6FuOyAjODU5NQor6JaWID4ga8STOyAjODU5Ngor6JaXID4geXXDoW47ICM4NTk3CivolpggPiBkw6E7ICM4NTk4CivolpkgPiB0w6w7ICM4NTk5CivolpogPiB0w6FuZzsgIzg1OUEKK+iWmyA+IHhpxJM7ICM4NTlCCivolpwgPiBiw6w7ICM4NTlDCivolp0gPiB6aMOhbjsgIzg1OUQKK+iWniA+IHPFq247ICM4NTlFCivolp8gPiBsacSDbjsgIzg1OUYKK+iWoCA+IGbDoW47ICM4NUEwCivolqEgPiBkxK1uZzsgIzg1QTEKK+iWoiA+IGppxJM7ICM4NUEyCivolqMgPiBnxa07ICM4NUEzCivolqQgPiB4acOoOyAjODVBNAor6JalID4gc2jFrTsgIzg1QTUKK+iWpiA+IGppw6BuOyAjODVBNgor6JanID4ga8SDbzsgIzg1QTcKK+iWqCA+IGjFjW5nOyAjODVBOAor6JapID4gc8OgOyAjODVBOQor6JaqID4geMSrbjsgIzg1QUEKK+iWqyA+IHjFq247ICM4NUFCCivolqwgPiB5w6BvOyAjODVBQwor6JauID4gc8WPdTsgIzg1QUUKK+iWryA+IHNoxa07ICM4NUFGCivolrAgPiB4xatuOyAjODVCMAor6JaxID4gZMO5aTsgIzg1QjEKK+iWsiA+IHDDrW47ICM4NUIyCivolrMgPiB3xJVpOyAjODVCMwor6Ja0ID4gbsOpbmc7ICM4NUI0CivolrUgPiBjaMOzdTsgIzg1QjUKK+iWtiA+IG3DoWk7ICM4NUI2CivolrcgPiByw7o7ICM4NUI3CivolrggPiBwacSBbzsgIzg1QjgKK+iWuSA+IHTDoWk7ICM4NUI5CivolrogPiBxw607ICM4NUJBCivolrsgPiB6xINvOyAjODVCQgor6Ja8ID4gY2jDqW47ICM4NUJDCivolr0gPiB6aMSTbjsgIzg1QkQKK+iWviA+IMSVcjsgIzg1QkUKK+iWvyA+IG7ErTsgIzg1QkYKK+iXgCA+IHnDrW5nOyAjODVDMAor6JeBID4gZ8SDbzsgIzg1QzEKK+iXgiA+IGPDsm5nOyAjODVDMgor6JeDID4geGnEgW87ICM4NUMzCivol4QgPiBxw607ICM4NUM0Civol4UgPiBmw6E7ICM4NUM1Civol4YgPiBqacSDbjsgIzg1QzYKK+iXhyA+IHjDuTsgIzg1QzcKK+iXiCA+IGvFq2k7ICM4NUM4Civol4kgPiBqacOoOyAjODVDOQor6JeKID4gYmnEg247ICM4NUNBCivol4sgPiBkacOgbzsgIzg1Q0IKK+iXjCA+IG3DrDsgIzg1Q0MKK+iXjSA+IGzDoW47ICM4NUNECivol44gPiBqw6xuOyAjODVDRQor6JePID4gY8Ohbmc7ICM4NUNGCivol5AgPiBtacSDbzsgIzg1RDAKK+iXkSA+IHHDrW9uZzsgIzg1RDEKK+iXkiA+IHFpw6g7ICM4NUQyCivol5MgPiB4acSDbjsgIzg1RDMKK+iXlSA+IMWPdTsgIzg1RDUKK+iXliA+IHhpw6FuOyAjODVENgor6JeXID4gc8O5OyAjODVENwor6JeYID4gbMeYOyAjODVEOAor6JeZID4gecOsOyAjODVEOQor6JeaID4geMO5OyAjODVEQQor6JebID4geGnElTsgIzg1REIKK+iXnCA+IGzDrTsgIzg1REMKK+iXnSA+IHnDrDsgIzg1REQKK+iXniA+IGzEgzsgIzg1REUKK+iXnyA+IGzElWk7ICM4NURGCivol6AgPiB4acOgbzsgIzg1RTAKK+iXoSA+IGTDrTsgIzg1RTEKK+iXoiA+IHpoxK07ICM4NUUyCivol6MgPiBixJNpOyAjODVFMwor6JekID4gdMOpbmc7ICM4NUU0Civol6UgPiB5w6BvOyAjODVFNQor6JemID4gbcOyOyAjODVFNgor6JenID4gaHXEg247ICM4NUU3Civol6ggPiBwacSDbzsgIzg1RTgKK+iXqSA+IGbDoW47ICM4NUU5Civol6ogPiBzxY91OyAjODVFQQor6JerID4gdMOhbjsgIzg1RUIKK+iXrCA+IHTFq2k7ICM4NUVDCivol60gPiBxw61vbmc7ICM4NUVECivol64gPiBxacOhbzsgIzg1RUUKK+iXryA+IHfDqGk7ICM4NUVGCivol7AgPiBsw611OyAjODVGMAor6JexID4gaMO5aTsgIzg1RjEKK+iXsyA+IGfEg287ICM4NUYzCivol7QgPiB5w7luOyAjODVGNAor6Je2ID4gbMOsOyAjODVGNgor6Je3ID4gc2jFrTsgIzg1RjcKK+iXuCA+IGNow7o7ICM4NUY4Civol7kgPiDEg2k7ICM4NUY5Civol7ogPiBsw6xuOyAjODVGQQor6Je7ID4gesSDbzsgIzg1RkIKK+iXvCA+IHh1xIFuOyAjODVGQwor6Je9ID4gY2jDqG47ICM4NUZECivol74gPiBsw6BpOyAjODVGRQor6Je/ID4gaMO5bzsgIzg1RkYKK+iYgCA+IHTDuW87ICM4NjAwCivomIEgPiB3w7k7ICM4NjAxCivomIIgPiByxa1pOyAjODYwMgor6JiDID4gcsWtaTsgIzg2MDMKK+iYhCA+IHHDrTsgIzg2MDQKK+iYhSA+IGjDqW5nOyAjODYwNQor6JiGID4gbMO6OyAjODYwNgor6JiHID4gc8WrOyAjODYwNwor6JiIID4gdMO6aTsgIzg2MDgKK+iYiSA+IG3DoW5nOyAjODYwOQor6JiKID4gecO5bjsgIzg2MEEKK+iYiyA+IHDDrW47ICM4NjBCCivomIwgPiB5xa07ICM4NjBDCivomI0gPiB4xatuOyAjODYwRAor6JiOID4gasOsOyAjODYwRQor6JiPID4gasSrb25nOyAjODYwRgor6JiQID4geGnEgW47ICM4NjEwCivomJEgPiBtw7M7ICM4NjExCivomJMgPiBzxas7ICM4NjEzCivomJQgPiBqxKtvbmc7ICM4NjE0CivomJYgPiBuacOoOyAjODYxNgor6JiXID4gYsOyOyAjODYxNwor6JiYID4gcsOhbmc7ICM4NjE4CivomJkgPiB5w6w7ICM4NjE5CivomJogPiB4acSDbjsgIzg2MUEKK+iYmyA+IHnDujsgIzg2MUIKK+iYnCA+IGrDujsgIzg2MUMKK+iYnSA+IGxpw6BuOyAjODYxRAor6JieID4gbGnDoG47ICM4NjFFCivomJ8gPiB5xK1uOyAjODYxRgor6JigID4gcWnDoW5nOyAjODYyMAor6JihID4gecSrbmc7ICM4NjIxCivomKIgPiBsw7NuZzsgIzg2MjIKK+iYoyA+IHTDsm5nOyAjODYyMwor6JikID4gd8SVaTsgIzg2MjQKK+iYpSA+IHl1w6g7ICM4NjI1CivomKYgPiBsw61uZzsgIzg2MjYKK+iYpyA+IHHDujsgIzg2MjcKK+iYqCA+IHnDoW87ICM4NjI4CivomKkgPiBmw6FuOyAjODYyOQor6JiqID4gbcOtOyAjODYyQQor6JirID4gbMOhbjsgIzg2MkIKK+iYrCA+IGvFq2k7ICM4NjJDCivomK0gPiBsw6FuOyAjODYyRAor6JiuID4gasOsOyAjODYyRQor6JivID4gZMOgbmc7ICM4NjJGCivomLEgPiBsw6hpOyAjODYzMQor6JiyID4gbMOpaTsgIzg2MzIKK+iYsyA+IGh1xIM7ICM4NjMzCivomLQgPiBmxJNuZzsgIzg2MzQKK+iYtSA+IHpow607ICM4NjM1CivomLYgPiB3w6hpOyAjODYzNgor6Ji3ID4ga8O6aTsgIzg2MzcKK+iYuCA+IHpow6BuOyAjODYzOAor6Ji5ID4gaHXDoGk7ICM4NjM5CivomLogPiBsw607ICM4NjNBCivomLsgPiBqw6w7ICM4NjNCCivomLwgPiBtw607ICM4NjNDCivomL0gPiBsxJVpOyAjODYzRAor6Ji+ID4gaHXDoGk7ICM4NjNFCivomL8gPiBsw7pvOyAjODYzRgor6JmAID4gasSrOyAjODY0MAor6JmBID4ga8O6aTsgIzg2NDEKK+iZgiA+IGzDuTsgIzg2NDIKK+iZgyA+IGppxIFuOyAjODY0Mwor6JmGID4gbMOpaTsgIzg2NDYKK+iZhyA+IHF1xINuOyAjODY0Nwor6JmIID4geGnEgW87ICM4NjQ4CivomYkgPiB5w6w7ICM4NjQ5CivomYogPiBsdcOhbjsgIzg2NEEKK+iZiyA+IG3DqW47ICM4NjRCCivomYwgPiBiacSTOyAjODY0Qwor6JmNID4gaMWrOyAjODY0RAor6JmOID4gaMWtOyAjODY0RQor6JmPID4gbMWtOyAjODY0Rgor6JmQID4gbsecZTsgIzg2NTAKK+iZkSA+IGzHnDsgIzg2NTEKK+iZkiA+IHPEqzsgIzg2NTIKK+iZkyA+IHhpxIFvOyAjODY1Mwor6JmUID4gcWnDoW47ICM4NjU0CivomZUgPiBjaMO5OyAjODY1NQor6JmWID4gaMWrOyAjODY1Ngor6JmXID4geMWrOyAjODY1Nwor6JmYID4gY8O6bzsgIzg2NTgKK+iZmSA+IGbDujsgIzg2NTkKK+iZmiA+IHjFqzsgIzg2NUEKK+iZmyA+IHjFqzsgIzg2NUIKK+iZnCA+IGzFrTsgIzg2NUMKK+iZnSA+IGjFrTsgIzg2NUQKK+iZniA+IHnDujsgIzg2NUUKK+iZnyA+IGjDoG87ICM4NjVGCivomaAgPiBqacSDbzsgIzg2NjAKK+iZoSA+IGrDuTsgIzg2NjEKK+iZoiA+IGfDum87ICM4NjYyCivomaMgPiBiw6BvOyAjODY2Mwor6JmkID4gecOhbjsgIzg2NjQKK+iZpSA+IHpow6BuOyAjODY2NQor6JmmID4gemjDoG47ICM4NjY2CivomacgPiBrxatpOyAjODY2Nwor6JmoID4gYsSBbjsgIzg2NjgKK+iZqSA+IHjDrDsgIzg2NjkKK+iZqiA+IHNow7o7ICM4NjZBCivomasgPiBjaMOzbmc7ICM4NjZCCivomawgPiBxw611OyAjODY2Qwor6JmtID4gZGnEgW87ICM4NjZECivoma4gPiBqxKs7ICM4NjZFCivoma8gPiBxw611OyAjODY2Rgor6JmwID4gY2jDqW5nOyAjODY3MAor6JmxID4gc2jEqzsgIzg2NzEKK+iZsyA+IGTDrDsgIzg2NzMKK+iZtCA+IHpow6k7ICM4Njc0CivombUgPiBzaMOpOyAjODY3NQor6Jm2ID4gecWrOyAjODY3Ngor6Jm3ID4gZ8SBbjsgIzg2NzcKK+iZuCA+IHrErTsgIzg2NzgKK+iZuSA+IGjDs25nOyAjODY3OQor6Jm6ID4gaMWtaTsgIzg2N0EKK+iZuyA+IG3DqW5nOyAjODY3Qgor6Jm8ID4gZ8OoOyAjODY3Qwor6Jm9ID4gc8WraTsgIzg2N0QKK+iZviA+IHhpxIE7ICM4NjdFCivomb8gPiBjaMOgaTsgIzg2N0YKK+iagCA+IHNow607ICM4NjgwCivomoEgPiB5xK07ICM4NjgxCivomoIgPiBtxIM7ICM4NjgyCivomoMgPiB4acOgbmc7ICM4NjgzCivomoQgPiBmxIFuZzsgIzg2ODQKK+iahSA+IMOoOyAjODY4NQor6JqGID4gcMSBOyAjODY4Ngor6JqHID4gY2jErTsgIzg2ODcKK+iaiCA+IHFpxIFuOyAjODY4OAor6JqJID4gd8OpbjsgIzg2ODkKK+iaiiA+IHfDqW47ICM4NjhBCivomosgPiByw7lpOyAjODY4Qgor6JqMID4gYsOgbmc7ICM4NjhDCivomo0gPiBixK07ICM4NjhECivomo4gPiB5dcOoOyAjODY4RQor6JqPID4geXXDqDsgIzg2OEYKK+iakCA+IGrFq247ICM4NjkwCivompEgPiBxw607ICM4NjkxCivompIgPiByw6FuOyAjODY5Mgor6JqTID4gecStbjsgIzg2OTMKK+ialCA+IHHDrTsgIzg2OTQKK+ialSA+IHRpxINuOyAjODY5NQor6JqWID4geXXDoW47ICM4Njk2CivompcgPiBqdcOpOyAjODY5Nwor6JqYID4gaMO6aTsgIzg2OTgKK+iamSA+IHHDrW47ICM4Njk5CivompogPiBxw607ICM4NjlBCivompsgPiB6aMOybmc7ICM4NjlCCivompwgPiB5w6E7ICM4NjlDCivomp0gPiBjw6w7ICM4NjlECivomp4gPiBtw7k7ICM4NjlFCivomp8gPiB3w6FuZzsgIzg2OUYKK+iaoCA+IGbDqW47ICM4NkEwCivomqEgPiBmw6luOyAjODZBMQor6JqiID4gaMOhbmc7ICM4NkEyCivomqMgPiBnxY1uZzsgIzg2QTMKK+iapCA+IHrEg287ICM4NkE0CivomqUgPiBmxa07ICM4NkE1CivomqYgPiByw6FuOyAjODZBNgor6JqnID4gamnDqDsgIzg2QTcKK+iaqCA+IGbDujsgIzg2QTgKK+iaqSA+IGNoxKs7ICM4NkE5CivomqogPiBkxY91OyAjODZBQQor6JqrID4gcGnDoW87ICM4NkFCCivomqwgPiB4acOgbjsgIzg2QUMKK+iarSA+IG7DrTsgIzg2QUQKK+iariA+IHTDqDsgIzg2QUUKK+iaryA+IHHEq3U7ICM4NkFGCivomrAgPiB5w7N1OyAjODZCMAor6JqxID4gemjDoDsgIzg2QjEKK+iasiA+IHDDrW5nOyAjODZCMgor6JqzID4gY2jDrTsgIzg2QjMKK+iatCA+IHnFj3U7ICM4NkI0CivomrUgPiBow6k7ICM4NkI1CivomrYgPiBoxIFuOyAjODZCNgor6Jq3ID4gasO5OyAjODZCNwor6Jq4ID4gbMOsOyAjODZCOAor6Jq5ID4gZsO5OyAjODZCOQor6Jq6ID4gcsOhbjsgIzg2QkEKK+iauyA+IHpow6E7ICM4NkJCCivomrwgPiBnxY91OyAjODZCQwor6Jq9ID4gcMOtOyAjODZCRAor6Jq+ID4gYsWPOyAjODZCRQor6Jq/ID4geGnDoW47ICM4NkJGCivom4AgPiB6aMO5OyAjODZDMAor6JuBID4gZGnEgW87ICM4NkMxCivom4IgPiBiacSVOyAjODZDMgor6JuDID4gYsStbmc7ICM4NkMzCivom4QgPiBnxas7ICM4NkM0Civom4UgPiByw6FuOyAjODZDNQor6JuGID4gccWrOyAjODZDNgor6JuHID4gc2jDqTsgIzg2QzcKK+ibiCA+IHRpw6g7ICM4NkM4Civom4kgPiBsw61uZzsgIzg2QzkKK+ibiiA+IGfFrTsgIzg2Q0EKK+ibiyA+IGTDoG47ICM4NkNCCivom4wgPiBnxa07ICM4NkNDCivom40gPiB5w61uZzsgIzg2Q0QKK+ibjiA+IGzDrDsgIzg2Q0UKK+ibjyA+IGNoxJNuZzsgIzg2Q0YKK+ibkCA+IHHFqzsgIzg2RDAKK+ibkSA+IG3Ds3U7ICM4NkQxCivom5IgPiBnw6k7ICM4NkQyCivom5MgPiBjw6w7ICM4NkQzCivom5QgPiBow7ppOyAjODZENAor6JuVID4gaMO6aTsgIzg2RDUKK+ibliA+IG3DoW5nOyAjODZENgor6JuXID4gZsO5OyAjODZENwor6JuYID4gecOhbmc7ICM4NkQ4Civom5kgPiB3xIE7ICM4NkQ5Civom5ogPiBsacOoOyAjODZEQQor6JubID4gemjFqzsgIzg2REIKK+ibnCA+IHnEqzsgIzg2REMKK+ibnSA+IHhpw6FuOyAjODZERAor6JueID4ga8O5bzsgIzg2REUKK+ibnyA+IGppxIFvOyAjODZERgor6JugID4gbMOsOyAjODZFMAor6JuhID4gecOsOyAjODZFMQor6JuiID4gcMOtbmc7ICM4NkUyCivom6MgPiBqxKs7ICM4NkUzCivom6QgPiBow6E7ICM4NkU0Civom6UgPiBzaMOpOyAjODZFNQor6JumID4gecOtOyAjODZFNgor6JunID4gd8SDbmc7ICM4NkU3Civom6ggPiBtw7I7ICM4NkU4Civom6kgPiBxw61vbmc7ICM4NkU5Civom6ogPiBxacOoOyAjODZFQQor6JurID4gZ8WtaTsgIzg2RUIKK+ibrCA+IGfFj25nOyAjODZFQwor6JutID4gemjDrDsgIzg2RUQKK+ibriA+IG3DoW47ICM4NkVFCivom7AgPiB6aMOtOyAjODZGMAor6JuxID4gamnDoTsgIzg2RjEKK+ibsiA+IHLDoW87ICM4NkYyCivom7MgPiBzxKs7ICM4NkYzCivom7QgPiBxw607ICM4NkY0Civom7UgPiB4xKtuZzsgIzg2RjUKK+ibtiA+IGxpw6g7ICM4NkY2Civom7cgPiBxw611OyAjODZGNwor6Ju4ID4gc2jEgW87ICM4NkY4Civom7kgPiB5xY9uZzsgIzg2RjkKK+ibuiA+IGppw6E7ICM4NkZBCivom7sgPiBzaMO5aTsgIzg2RkIKK+ibvCA+IGNoxJM7ICM4NkZDCivom70gPiBiw6BpOyAjODZGRAor6Ju+ID4gw6k7ICM4NkZFCivom78gPiBow6BuOyAjODZGRgor6JyAID4gc2jFrTsgIzg3MDAKK+icgSA+IHh1w6FuOyAjODcwMQor6JyCID4gZsSTbmc7ICM4NzAyCivonIMgPiBzaMOobjsgIzg3MDMKK+ichCA+IHpow6huOyAjODcwNAor6JyFID4gZsWtOyAjODcwNQor6JyGID4geGnDoG47ICM4NzA2CivonIcgPiB6aMOpOyAjODcwNwor6JyIID4gd8O6OyAjODcwOAor6JyJID4gZsO6OyAjODcwOQor6JyKID4gbMOtOyAjODcwQQor6JyLID4gbMOhbmc7ICM4NzBCCivonIwgPiBiw6w7ICM4NzBDCivonI0gPiBjaMO6OyAjODcwRAor6JyOID4geXXEgW47ICM4NzBFCivonI8gPiB5xY91OyAjODcwRgor6JyQID4gamnDqTsgIzg3MTAKK+ickSA+IGTDoG47ICM4NzExCivonJIgPiB5w6FuOyAjODcxMgor6JyTID4gdMOtbmc7ICM4NzEzCivonJQgPiBkacOgbjsgIzg3MTQKK+iclSA+IHNow7lpOyAjODcxNQor6JyWID4gaMO6aTsgIzg3MTYKK+iclyA+IGd1xIE7ICM4NzE3CivonJggPiB6aMSrOyAjODcxOAor6JyZID4gc8WNbmc7ICM4NzE5CivonJogPiBmxJNpOyAjODcxQQor6JybID4gasWrOyAjODcxQgor6JycID4gbcOsOyAjODcxQwor6JydID4gccOtOyAjODcxRAor6JyeID4gccOtOyAjODcxRQor6JyfID4gecO5OyAjODcxRgor6JygID4gasWtbjsgIzg3MjAKK+icoSA+IHpow6A7ICM4NzIxCivonKIgPiBtxJVuZzsgIzg3MjIKK+icoyA+IHFpxIFuZzsgIzg3MjMKK+icpCA+IHPEqzsgIzg3MjQKK+icpSA+IHjEqzsgIzg3MjUKK+icpiA+IGzDum47ICM4NzI2CivonKcgPiBsw6w7ICM4NzI3CivonKggPiBkacOpOyAjODcyOAor6JypID4gdGnDoW87ICM4NzI5CivonKogPiB0xIFvOyAjODcyQQor6JyrID4ga8WrbjsgIzg3MkIKK+icrCA+IGfEgW47ICM4NzJDCivonK0gPiBow6BuOyAjODcyRAor6JyuID4gecO5OyAjODcyRQor6JyvID4gYsOgbmc7ICM4NzJGCivonLAgPiBmw6lpOyAjODczMAor6JyxID4gcMOtOyAjODczMQor6JyyID4gd8SVaTsgIzg3MzIKK+icsyA+IGTFq247ICM4NzMzCivonLQgPiB5w6w7ICM4NzM0CivonLUgPiB5dcSBbjsgIzg3MzUKK+ictiA+IHPDuTsgIzg3MzYKK+ictyA+IHF1w6FuOyAjODczNwor6Jy4ID4gcWnEg247ICM4NzM4CivonLkgPiByw7lpOyAjODczOQor6Jy6ID4gbsOtOyAjODczQQor6Jy7ID4gccSrbmc7ICM4NzNCCivonLwgPiB3w6hpOyAjODczQwor6Jy9ID4gbGnEg25nOyAjODczRAor6Jy+ID4gZ8WtbzsgIzg3M0UKK+icvyA+IHfEgW47ICM4NzNGCivonYAgPiBkxY1uZzsgIzg3NDAKK+idgSA+IMOoOyAjODc0MQor6J2CID4gYsSDbjsgIzg3NDIKK+idgyA+IGTDrDsgIzg3NDMKK+idhCA+IHfEg25nOyAjODc0NAor6J2FID4gY8OhbjsgIzg3NDUKK+idhiA+IHnEg25nOyAjODc0Ngor6J2HID4gecOtbmc7ICM4NzQ3CivonYggPiBnxatvOyAjODc0OAor6J2JID4gY2jDoW47ICM4NzQ5CivonYsgPiBsw6A7ICM4NzRCCivonYwgPiBrxJM7ICM4NzRDCivonY0gPiBqw607ICM4NzRECivonY4gPiBow6k7ICM4NzRFCivonY8gPiB0w61uZzsgIzg3NEYKK+idkCA+IG3DoGk7ICM4NzUwCivonZEgPiB4xas7ICM4NzUxCivonZIgPiBtacOhbjsgIzg3NTIKK+idkyA+IHnDujsgIzg3NTMKK+idlCA+IGppxJM7ICM4NzU0CivonZUgPiBzaMOtOyAjODc1NQor6J2WID4geHXEgW47ICM4NzU2CivonZcgPiBodcOhbmc7ICM4NzU3CivonZggPiB5xINuOyAjODc1OAor6J2ZID4gYmnEgW47ICM4NzU5CivonZogPiByw7N1OyAjODc1QQor6J2bID4gd8STaTsgIzg3NUIKK+idnCA+IGbDuTsgIzg3NUMKK+idnSA+IHl1w6FuOyAjODc1RAor6J2eID4gbcOoaTsgIzg3NUUKK+idnyA+IHfDqGk7ICM4NzVGCivonaAgPiBmw7o7ICM4NzYwCivonaEgPiBydcSDbjsgIzg3NjEKK+idoiA+IHhpw6k7ICM4NzYyCivonaMgPiB5w7N1OyAjODc2Mwor6J2kID4gccOtdTsgIzg3NjQKK+idpSA+IG3DoW87ICM4NzY1CivonaYgPiB4acSBOyAjODc2Ngor6J2nID4gecSrbmc7ICM4NzY3CivonaggPiBzaMSrOyAjODc2OAor6J2pID4gY2jDs25nOyAjODc2OQor6J2qID4gdMSBbmc7ICM4NzZBCivonasgPiB6aMWrOyAjODc2Qgor6J2sID4gesWNbmc7ICM4NzZDCivona0gPiB0w607ICM4NzZECivona4gPiBmw7k7ICM4NzZFCivona8gPiB5dcOhbjsgIzg3NkYKK+idsCA+IGjFrWk7ICM4NzcwCivonbEgPiBtw6luZzsgIzg3NzEKK+idsiA+IGzDoDsgIzg3NzIKK+idsyA+IGTDujsgIzg3NzMKK+idtCA+IGjDujsgIzg3NzQKK+idtSA+IHHEq3U7ICM4Nzc1CivonbYgPiBkacOpOyAjODc3Ngor6J23ID4gbMOsOyAjODc3Nwor6J24ID4gZ3XEgTsgIzg3NzgKK+iduSA+IHnFq247ICM4Nzc5CivonbogPiBqxa07ICM4NzdBCivonbsgPiBuxINuOyAjODc3Qgor6J28ID4gbMOzdTsgIzg3N0MKK+idvSA+IHHFrW47ICM4NzdECivonb4gPiByw7NuZzsgIzg3N0UKK+idvyA+IHnDrW5nOyAjODc3Rgor6J6AID4gamnEgW5nOyAjODc4MAor6J6CID4gbMOhbmc7ICM4NzgyCivonoMgPiBww6FuZzsgIzg3ODMKK+iehCA+IHPEqzsgIzg3ODQKK+iehSA+IHjEqzsgIzg3ODUKK+iehiA+IGPDrDsgIzg3ODYKK+iehyA+IHjEqzsgIzg3ODcKK+ieiCA+IHl1w6FuOyAjODc4OAor6J6JID4gd8STbmc7ICM4Nzg5CivonoogPiBsacOhbjsgIzg3OEEKK+ieiyA+IHPFjXU7ICM4NzhCCivonowgPiBixIFuOyAjODc4Qwor6J6NID4gcsOzbmc7ICM4NzhECivono4gPiByw7NuZzsgIzg3OEUKK+iejyA+IGrDrTsgIzg3OEYKK+iekCA+IHfFqzsgIzg3OTAKK+iekSA+IHHDrHU7ICM4NzkxCivonpIgPiBow6BuOyAjODc5Mgor6J6TID4gccOtbjsgIzg3OTMKK+ielCA+IHnDrTsgIzg3OTQKK+ielSA+IGLEqzsgIzg3OTUKK+ieliA+IGh1w6E7ICM4Nzk2CivonpcgPiB0w6FuZzsgIzg3OTcKK+iemCA+IHnErTsgIzg3OTgKK+iemSA+IGTDuTsgIzg3OTkKK+iemiA+IG7DoGk7ICM4NzlBCivonpsgPiBow6k7ICM4NzlCCivonpwgPiBow7o7ICM4NzlDCivonp0gPiBow7lpOyAjODc5RAor6J6eID4gbcSDOyAjODc5RQor6J6fID4gbcOtbmc7ICM4NzlGCivonqAgPiB5w6w7ICM4N0EwCivonqEgPiB3w6luOyAjODdBMQor6J6iID4gecOtbmc7ICM4N0EyCivonqMgPiB0w6luZzsgIzg3QTMKK+iepCA+IHnFrTsgIzg3QTQKK+iepSA+IGPEgW5nOyAjODdBNQor6J6oID4gbcSDbjsgIzg3QTgKK+ieqiA+IHNoxIFuZzsgIzg3QUEKK+ieqyA+IHpoxJM7ICM4N0FCCivonqwgPiBjw6FvOyAjODdBQwor6J6tID4gY2jEqzsgIzg3QUQKK+ieriA+IGTDrDsgIzg3QUUKK+ieryA+IMOhbzsgIzg3QUYKK+iesCA+IGzDuTsgIzg3QjAKK+iesSA+IHfDqGk7ICM4N0IxCivonrIgPiB6aMOsOyAjODdCMgor6J6zID4gdMOhbmc7ICM4N0IzCivonrQgPiBjaMOpbjsgIzg3QjQKK+ietSA+IHBpxIFvOyAjODdCNQor6J62ID4gccO6OyAjODdCNgor6J63ID4gcMOtOyAjODdCNwor6J64ID4gecO6OyAjODdCOAor6J65ID4gamnDoG47ICM4N0I5CivonrogPiBsw7pvOyAjODdCQQor6J67ID4gbMOzdTsgIzg3QkIKK+ievCA+IHHErW47ICM4N0JDCivonr0gPiB6aMWNbmc7ICM4N0JECivonr4gPiB5xK1uOyAjODdCRQor6J6/ID4gamnEgW5nOyAjODdCRgor6J+AID4gc2h1w6BpOyAjODdDMAor6J+BID4gd8OpbjsgIzg3QzEKK+ifgiA+IGppxIFvOyAjODdDMgor6J+DID4gd8OgbjsgIzg3QzMKK+ifhCA+IHpow607ICM4N0M0Civon4UgPiB6aMOoOyAjODdDNQor6J+GID4gbcOhOyAjODdDNgor6J+HID4gbcOhOyAjODdDNwor6J+IID4gZ8WrbzsgIzg3QzgKK+ifiSA+IGzDrXU7ICM4N0M5Civon4ogPiBtw6FvOyAjODdDQQor6J+LID4geMSrOyAjODdDQgor6J+MID4gY8WNbmc7ICM4N0NDCivon40gPiBsw607ICM4N0NECivon44gPiBtxINuOyAjODdDRQor6J+PID4geGnEgW87ICM4N0NGCivon5EgPiB6aMSBbmc7ICM4N0QxCivon5IgPiBtxINuZzsgIzg3RDIKK+ifkyA+IHhpw6BuZzsgIzg3RDMKK+iflCA+IG3DsjsgIzg3RDQKK+iflSA+IHrFq2k7ICM4N0Q1Civon5YgPiBzxKs7ICM4N0Q2Civon5cgPiBxxKt1OyAjODdENwor6J+YID4gdMOoOyAjODdEOAor6J+ZID4gemjDrTsgIzg3RDkKK+ifmiA+IHDDqW5nOyAjODdEQQor6J+bID4gcMOpbmc7ICM4N0RCCivon5wgPiBqacSDbzsgIzg3REMKK+ifnSA+IHHDujsgIzg3REQKK+ifniA+IGJpw6k7ICM4N0RFCivon58gPiBsacOhbzsgIzg3REYKK+ifoCA+IHDDoW47ICM4N0UwCivon6EgPiBnxa1pOyAjODdFMQor6J+iID4geMStOyAjODdFMgor6J+jID4gasStOyAjODdFMwor6J+kID4gemh1xIFuOyAjODdFNAor6J+lID4gaHXDoW5nOyAjODdFNQor6J+mID4gZsOoaTsgIzg3RTYKK+ifpyA+IGzDoW87ICM4N0U3Civon6ggPiBqdcOpOyAjODdFOAor6J+pID4ganXDqTsgIzg3RTkKK+ifqiA+IGjDuWk7ICM4N0VBCivon6sgPiB5w61uOyAjODdFQgor6J+sID4gY2jDoW47ICM4N0VDCivon60gPiBqacSBbzsgIzg3RUQKK+ifriA+IHNow6BuOyAjODdFRQor6J+vID4gcsOhbzsgIzg3RUYKK+ifsCA+IHhpxIFvOyAjODdGMAor6J+xID4gbcOzdTsgIzg3RjEKK+ifsiA+IGNow7NuZzsgIzg3RjIKK+ifsyA+IHjDum47ICM4N0YzCivon7QgPiBzxKs7ICM4N0Y0Civon7YgPiBjaMSTbmc7ICM4N0Y2Civon7cgPiBkxIFuZzsgIzg3RjcKK+ifuCA+IGzErTsgIzg3RjgKK+ifuSA+IHhpw6g7ICM4N0Y5Civon7ogPiBzaMOgbjsgIzg3RkEKK+ifuyA+IHnErTsgIzg3RkIKK+ifvCA+IGrErW5nOyAjODdGQwor6J+9ID4gZMOhOyAjODdGRAor6J++ID4gY2jDoW47ICM4N0ZFCivon78gPiBxw6w7ICM4N0ZGCivooIAgPiBjxKs7ICM4ODAwCivooIEgPiB4acOgbmc7ICM4ODAxCivooIIgPiBzaMOoOyAjODgwMgor6KCDID4gbMWtbzsgIzg4MDMKK+ighCA+IHHDrW47ICM4ODA0CivooIUgPiB5w61uZzsgIzg4MDUKK+ighiA+IGNow6BpOyAjODgwNgor6KCHID4gbMOsOyAjODgwNwor6KCIID4gesOpOyAjODgwOAor6KCJID4geHXEgW47ICM4ODA5CivooIogPiBsacOhbjsgIzg4MEEKK+igiyA+IHpow7o7ICM4ODBCCivooIwgPiB6w6k7ICM4ODBDCivooI0gPiB4acSTOyAjODgwRAor6KCOID4gbcSDbmc7ICM4ODBFCivooI8gPiB4acOoOyAjODgwRgor6KCQID4gccOtOyAjODgxMAor6KCRID4gcsOzbmc7ICM4ODExCivooJIgPiBqacSDbjsgIzg4MTIKK+igkyA+IG3ElW5nOyAjODgxMwor6KCUID4gaMOhbzsgIzg4MTQKK+iglSA+IHJ1xINuOyAjODgxNQor6KCWID4gaMO5bzsgIzg4MTYKK+iglyA+IHpow7pvOyAjODgxNwor6KCYID4gamnDqTsgIzg4MTgKK+igmSA+IGLEq247ICM4ODE5CivooJogPiBow6g7ICM4ODFBCivooJsgPiBtacOoOyAjODgxQgor6KCcID4gZsOhbjsgIzg4MUMKK+ignSA+IGzDqWk7ICM4ODFECivooJ4gPiBqacOpOyAjODgxRQor6KCfID4gbMOgOyAjODgxRgor6KCgID4gbcOsOyAjODgyMAor6KChID4gbMStOyAjODgyMQor6KCiID4gY2jFrW47ICM4ODIyCivooKMgPiBsw6w7ICM4ODIzCivooKQgPiBxxKt1OyAjODgyNAor6KClID4gbmnDqDsgIzg4MjUKK+igpiA+IGzDujsgIzg4MjYKK+igpyA+IGTDuTsgIzg4MjcKK+igqCA+IHhpxIFvOyAjODgyOAor6KCpID4gemjFqzsgIzg4MjkKK+igqiA+IGzDs25nOyAjODgyQQor6KCrID4gbMOsOyAjODgyQgor6KCsID4gbMOzbmc7ICM4ODJDCivooK0gPiBmxJNuZzsgIzg4MkQKK+igriA+IHnEkzsgIzg4MkUKK+igryA+IGLDqG5nOyAjODgyRgor6KCwID4gc2jDoG5nOyAjODgzMAor6KCxID4gZ8WtOyAjODgzMQor6KCyID4ganXEgW47ICM4ODMyCivooLMgPiB5xKtuZzsgIzg4MzMKK+igtSA+IHjEqzsgIzg4MzUKK+igtiA+IGPDoW47ICM4ODM2CivooLcgPiBxw7o7ICM4ODM3CivooLggPiBxdcOhbjsgIzg4MzgKK+iguSA+IGTDuTsgIzg4MzkKK+iguiA+IGPDoW47ICM4ODNBCivooLsgPiBtw6FuOyAjODgzQgor6KC8ID4ganXDqTsgIzg4M0MKK+igvSA+IGppw6k7ICM4ODNECivooL4gPiB6aMO6OyAjODgzRQor6KC/ID4gemjDoTsgIzg4M0YKK+ihgCA+IHhpxJU7ICM4ODQwCivooYEgPiBodcSBbmc7ICM4ODQxCivooYIgPiBuw6x1OyAjODg0Mgor6KGDID4gcMSTaTsgIzg4NDMKK+ihhCA+IG7HnDsgIzg4NDQKK+ihhSA+IHjDrG47ICM4ODQ1CivooYYgPiB6aMOybmc7ICM4ODQ2CivooYcgPiBtw7I7ICM4ODQ3CivooYggPiDDqHI7ICM4ODQ4CivooYkgPiBrw6g7ICM4ODQ5CivooYogPiBtacOoOyAjODg0QQor6KGLID4geMOsOyAjODg0Qgor6KGMID4geMOtbmc7ICM4ODRDCivooY0gPiB5xINuOyAjODg0RAor6KGOID4ga8OgbjsgIzg4NEUKK+ihjyA+IHl1w6BuOyAjODg0Rgor6KGRID4gbMOtbmc7ICM4ODUxCivooZIgPiB4dcOgbjsgIzg4NTIKK+ihkyA+IHNow7k7ICM4ODUzCivooZQgPiB4acOhbjsgIzg4NTQKK+ihlSA+IHTDsm5nOyAjODg1NQor6KGWID4gbMOybmc7ICM4ODU2CivooZcgPiBqacSTOyAjODg1Nwor6KGYID4geGnDoW47ICM4ODU4CivooZkgPiB5w6E7ICM4ODU5CivooZogPiBow7o7ICM4ODVBCivooZsgPiB3w6hpOyAjODg1Qgor6KGcID4gZMOgbzsgIzg4NUMKK+ihnSA+IGNoxY1uZzsgIzg4NUQKK+ihniA+IHfDqGk7ICM4ODVFCivooZ8gPiBkw6BvOyAjODg1Rgor6KGgID4gemjFq247ICM4ODYwCivooaEgPiBow6luZzsgIzg4NjEKK+ihoiA+IHHDujsgIzg4NjIKK+ihoyA+IHnEqzsgIzg4NjMKK+ihpCA+IHnEqycgJ3rDrCcgJ3DDoW5nOyAjODg2NAor6KGlID4gYsWtOyAjODg2NQor6KGmID4gZ8SDbjsgIzg4NjYKK+ihpyA+IHnDujsgIzg4NjcKK+ihqCA+IGJpxINvOyAjODg2OAor6KGpID4gY2jDoDsgIzg4NjkKK+ihqiA+IHnErTsgIzg4NkEKK+ihqyA+IHNoxIFuOyAjODg2Qgor6KGsID4gY2jDqG47ICM4ODZDCivooa0gPiBmxas7ICM4ODZECivooa4gPiBnxa1uOyAjODg2RQor6KGvID4gZsSTbjsgIzg4NkYKK+ihsCA+IHNodcSBaTsgIzg4NzAKK+ihsSA+IGppw6k7ICM4ODcxCivoobIgPiBuw6A7ICM4ODcyCivoobMgPiB6aMWNbmc7ICM4ODczCivoobQgPiBkxINuOyAjODg3NAor6KG1ID4gcsOsOyAjODg3NQor6KG2ID4gemjDsm5nOyAjODg3Ngor6KG3ID4gemjFjW5nOyAjODg3Nwor6KG4ID4geGnDqDsgIzg4NzgKK+ihuSA+IHHDrTsgIzg4NzkKK+ihuiA+IHhpw6k7ICM4ODdBCivoobsgPiByw6FuOyAjODg3Qgor6KG8ID4gemjEqzsgIzg4N0MKK+ihvSA+IHLDqG47ICM4ODdECivoob4gPiBxxKtuOyAjODg3RQor6KG/ID4gasSrbjsgIzg4N0YKK+iigCA+IGrFq247ICM4ODgwCivoooEgPiB5dcOhbjsgIzg4ODEKK+iigiA+IG3DqGk7ICM4ODgyCivoooMgPiBjaMOgaTsgIzg4ODMKK+iihCA+IMSDbzsgIzg4ODQKK+iihSA+IG5pxINvOyAjODg4NQor6KKGID4gaMWraTsgIzg4ODYKK+iihyA+IHLDoW47ICM4ODg3CivoooggPiBqacSBOyAjODg4OAor6KKJID4gdMO6bzsgIzg4ODkKK+iiiiA+IGzErW5nOyAjODg4QQor6KKLID4gZMOgaTsgIzg4OEIKK+iijCA+IGLDoG87ICM4ODhDCivooo0gPiBww6FvOyAjODg4RAor6KKOID4gecOgbzsgIzg4OEUKK+iijyA+IHrDuW87ICM4ODhGCivoopAgPiBiw6w7ICM4ODkwCivoopEgPiBzaMOgbzsgIzg4OTEKK+iikiA+IHTEg247ICM4ODkyCivoopMgPiBqxa07ICM4ODkzCivoopQgPiBow6g7ICM4ODk0CivoopUgPiBzaMO5OyAjODg5NQor6KKWID4geMOsdTsgIzg4OTYKK+iilyA+IHpoxJVuOyAjODg5Nwor6KKYID4gecOtOyAjODg5OAor6KKZID4gcMOgOyAjODg5OQor6KKaID4gYsWNOyAjODg5QQor6KKbID4gZMSrOyAjODg5Qgor6KKcID4gd8OgOyAjODg5Qwor6KKdID4gZsO5OyAjODg5RAor6KKeID4gZ8WtbjsgIzg4OUUKK+iinyA+IHpow6w7ICM4ODlGCivooqAgPiB6aMOsOyAjODhBMAor6KKhID4gcsOhbjsgIzg4QTEKK+iioiA+IHDDoG47ICM4OEEyCivooqMgPiB5w6w7ICM4OEEzCivooqQgPiBtw6BvOyAjODhBNAor6KKlID4gdHVvOyAjODhBNQor6KKmID4gbsOgOyAjODhBNgor6KKnID4ga8WNdTsgIzg4QTcKK+iiqCA+IHhpw6BuOyAjODhBOAor6KKpID4gY2jEgW47ICM4OEE5CivooqogPiBxxas7ICM4OEFBCivooqsgPiBiw6hpOyAjODhBQgor6KKsID4gZ8WtbjsgIzg4QUMKK+iirSA+IHjDrTsgIzg4QUQKK+iiryA+IGLDszsgIzg4QUYKK+iisSA+IGbDujsgIzg4QjEKK+iisiA+IHnDrTsgIzg4QjIKK+iisyA+IGNoxK07ICM4OEIzCivoorQgPiBrw7k7ICM4OEI0CivoorUgPiByw6huOyAjODhCNQor6KK2ID4gamnDoG5nOyAjODhCNgor6KK3ID4gamnDoTsgIzg4QjcKK+iiuCA+IGPDum47ICM4OEI4CivoorkgPiBtw7I7ICM4OEI5CivoorogPiBqacOpOyAjODhCQQor6KK7ID4gw6lyOyAjODhCQgor6KK8ID4gbMO5bzsgIzg4QkMKK+iivSA+IHLDujsgIzg4QkQKK+iiviA+IHpoxas7ICM4OEJFCivoor8gPiBnxatpOyAjODhCRgor6KOAID4gecSrbjsgIzg4QzAKK+ijgSA+IGPDoWk7ICM4OEMxCivoo4IgPiBsacOoOyAjODhDMgor6KOFID4gemh1xIFuZzsgIzg4QzUKK+ijhiA+IGTEgW5nOyAjODhDNgor6KOIID4ga8WrbjsgIzg4QzgKK+ijiSA+IGvDqG47ICM4OEM5Civoo4ogPiBuacSDbzsgIzg4Q0EKK+ijiyA+IHNow7k7ICM4OENCCivoo4wgPiBqacOhOyAjODhDQwor6KONID4ga8WtbjsgIzg4Q0QKK+ijjiA+IGNow6luZzsgIzg4Q0UKK+ijjyA+IGzErTsgIzg4Q0YKK+ijkCA+IGp1xIFuOyAjODhEMAor6KORID4gc2jEk247ICM4OEQxCivoo5IgPiBww7N1OyAjODhEMgor6KOTID4gZ8OpOyAjODhEMwor6KOUID4gecOsOyAjODhENAor6KOVID4gecO5OyAjODhENQor6KOWID4gemjElW47ICM4OEQ2Civoo5cgPiBsw611OyAjODhENwor6KOYID4gccOtdTsgIzg4RDgKK+ijmSA+IHHDum47ICM4OEQ5Civoo5ogPiBqw6w7ICM4OERBCivoo5sgPiB5w6w7ICM4OERCCivoo5wgPiBixa07ICM4OERDCivoo50gPiB6aHXEgW5nOyAjODhERAor6KOeID4gc2jDuWk7ICM4OERFCivoo58gPiBzaMSBOyAjODhERgor6KOgID4gccO6bjsgIzg4RTAKK+ijoSA+IGzErTsgIzg4RTEKK+ijoiA+IGxpw6FuOyAjODhFMgor6KOjID4gbGnDoG47ICM4OEUzCivoo6QgPiBrw7k7ICM4OEU0Civoo6UgPiBqacSDbjsgIzg4RTUKK+ijpiA+IGbDs3U7ICM4OEU2Civoo6cgPiBjaMSBbjsgIzg4RTcKK+ijqCA+IGLDrDsgIzg4RTgKK+ijqSA+IGfFq247ICM4OEU5Civoo6ogPiB0w6FvOyAjODhFQQor6KOrID4geXXDoG47ICM4OEVCCivoo6wgPiBsw61uZzsgIzg4RUMKK+ijrSA+IGNoxK07ICM4OEVECivoo64gPiBjaMSBbmc7ICM4OEVFCivoo68gPiBjaMOzdTsgIzg4RUYKK+ijsCA+IGTDum87ICM4OEYwCivoo7EgPiBiacSDbzsgIzg4RjEKK+ijsiA+IGxpxINuZzsgIzg4RjIKK+ijsyA+IGNow6FuZzsgIzg4RjMKK+ijtCA+IHDDqWk7ICM4OEY0Civoo7UgPiBww6lpOyAjODhGNQor6KO2ID4gZsSTaTsgIzg4RjYKK+ijtyA+IHl1xIFuOyAjODhGNwor6KO4ID4gbMWtbzsgIzg4RjgKK+ijuSA+IGfFrW87ICM4OEY5Civoo7ogPiB5xINuOyAjODhGQQor6KO7ID4gZMWtOyAjODhGQgor6KO8ID4geMOtOyAjODhGQwor6KO9ID4gemjDrDsgIzg4RkQKK+ijviA+IGrFqzsgIzg4RkUKK+ijvyA+IHHErTsgIzg4RkYKK+ikgCA+IGrDrDsgIzg5MDAKK+ikgSA+IHpow607ICM4OTAxCivopIIgPiBndcOgOyAjODkwMgor6KSDID4ga8OobjsgIzg5MDMKK+ikhSA+IHTDrDsgIzg5MDUKK+ikhiA+IHTDrTsgIzg5MDYKK+ikhyA+IGbDuTsgIzg5MDcKK+ikiCA+IGNow7NuZzsgIzg5MDgKK+ikiSA+IHhpxJM7ICM4OTA5CivopIogPiBiacSDbjsgIzg5MEEKK+ikiyA+IGRpw6k7ICM4OTBCCivopIwgPiBrxatuOyAjODkwQwor6KSNID4gZHXEgW47ICM4OTBECivopI4gPiB4w6x1OyAjODkwRQor6KSPID4geMOsdTsgIzg5MEYKK+ikkCA+IGjDqTsgIzg5MTAKK+ikkSA+IHl1w6BuOyAjODkxMQor6KSSID4gYsSBbzsgIzg5MTIKK+ikkyA+IGLEg287ICM4OTEzCivopJQgPiBmw7k7ICM4OTE0CivopJUgPiB5w7o7ICM4OTE1CivopJYgPiB0dcOgbjsgIzg5MTYKK+iklyA+IHnEg247ICM4OTE3CivopJggPiBoxatpOyAjODkxOAor6KSZID4gYsOoaTsgIzg5MTkKK+ikmiA+IGNoxa07ICM4OTFBCivopJsgPiBsx5o7ICM4OTFCCivopJ4gPiB5xa1uOyAjODkxRQor6KSfID4gZMOhOyAjODkxRgor6KSgID4gZ8WNdTsgIzg5MjAKK+ikoSA+IGTEgTsgIzg5MjEKK+ikoiA+IGh1w6FpOyAjODkyMgor6KSjID4gcsOzbmc7ICM4OTIzCivopKQgPiB5dcOgbjsgIzg5MjQKK+ikpSA+IHLDuTsgIzg5MjUKK+ikpiA+IG7DoGk7ICM4OTI2CivopKcgPiBqxK1vbmc7ICM4OTI3CivopKggPiBzxa1vOyAjODkyOAor6KSpID4gYsSBbjsgIzg5MjkKK+ikqiA+IHTDuW47ICM4OTJBCivopKsgPiBjaMStOyAjODkyQgor6KSsID4gc8SDbmc7ICM4OTJDCivopK0gPiBuacSDbzsgIzg5MkQKK+ikriA+IHnEq25nOyAjODkyRQor6KSvID4gamnDqDsgIzg5MkYKK+iksCA+IHFpxIFuOyAjODkzMAor6KSxID4gaHXDoWk7ICM4OTMxCivopLIgPiBrw7k7ICM4OTMyCivopLMgPiBsacOhbjsgIzg5MzMKK+iktCA+IGLEg287ICM4OTM0CivopLUgPiBsw607ICM4OTM1CivopLYgPiB6aMOpOyAjODkzNgor6KS3ID4gc2jEqzsgIzg5MzcKK+ikuCA+IGzHmjsgIzg5MzgKK+ikuSA+IHnDrDsgIzg5MzkKK+ikuiA+IGRpw6k7ICM4OTNBCivopLsgPiB4acOoOyAjODkzQgor6KS8ID4geGnEgW47ICM4OTNDCivopL0gPiB3w6hpOyAjODkzRAor6KS+ID4gYmnEg287ICM4OTNFCivopL8gPiBjw6FvOyAjODkzRgor6KWAID4gasSrOyAjODk0MAor6KWBID4gamnEg25nOyAjODk0MQor6KWCID4gc8STbjsgIzg5NDIKK+ilgyA+IGLEgW87ICM4OTQzCivopYQgPiB4acSBbmc7ICM4OTQ0CivopYYgPiBww7o7ICM4OTQ2CivopYcgPiBqacSDbjsgIzg5NDcKK+iliCA+IHpodcOgbjsgIzg5NDgKK+iliSA+IGppw6BuOyAjODk0OQor6KWKID4gesO5aTsgIzg5NEEKK+iliyA+IGrDrTsgIzg5NEIKK+iljCA+IGTEgW47ICM4OTRDCivopY0gPiB6w6E7ICM4OTRECivopY4gPiBmw6FuOyAjODk0RQor6KWPID4gYsOzOyAjODk0Rgor6KWQID4geGnDoG5nOyAjODk1MAor6KWRID4geMOtbjsgIzg5NTEKK+ilkiA+IGJpw6k7ICM4OTUyCivopZMgPiByw6FvOyAjODk1Mwor6KWUID4gbcSDbjsgIzg5NTQKK+illSA+IGzDoW47ICM4OTU1CivopZYgPiDEg287ICM4OTU2CivopZcgPiBkw7pvOyAjODk1Nwor6KWYID4gZ8O5aTsgIzg5NTgKK+ilmSA+IGPDoG87ICM4OTU5CivopZogPiBzw7lpOyAjODk1QQor6KWbID4gbsOzbmc7ICM4OTVCCivopZwgPiBjaMSBbjsgIzg5NUMKK+ilnSA+IGxpw6BuOyAjODk1RAor6KWeID4gYsOsOyAjODk1RQor6KWfID4gasSrbjsgIzg5NUYKK+iloCA+IGTEgW5nOyAjODk2MAor6KWhID4gc2jDujsgIzg5NjEKK+iloiA+IHTEg247ICM4OTYyCivopaMgPiBiw6w7ICM4OTYzCivopaQgPiBsw6FuOyAjODk2NAor6KWlID4gcMO6OyAjODk2NQor6KWmID4gcsO6OyAjODk2Ngor6KWnID4gemjErTsgIzg5NjcKK+ilqSA+IHNoxa07ICM4OTY5CivopaogPiB3w6A7ICM4OTZBCivopasgPiBzaMOsOyAjODk2Qgor6KWsID4gYsSDaTsgIzg5NkMKK+ilrSA+IHhpw6k7ICM4OTZECivopa4gPiBiw7M7ICM4OTZFCivopa8gPiBjaMOobjsgIzg5NkYKK+ilsCA+IGzDoGk7ICM4OTcwCivopbEgPiBsw7NuZzsgIzg5NzEKK+ilsiA+IHjDrTsgIzg5NzIKK+ilsyA+IHhpxIFuOyAjODk3Mwor6KW0ID4gbMOhbjsgIzg5NzQKK+iltSA+IHpow6k7ICM4OTc1CivopbYgPiBkw6BpOyAjODk3Ngor6KW4ID4gesOgbjsgIzg5NzgKK+iluSA+IHNoxKs7ICM4OTc5CivopbogPiBqacSDbjsgIzg5N0EKK+iluyA+IHDDoG47ICM4OTdCCivopbwgPiB5w6w7ICM4OTdDCivopb4gPiB5w6A7ICM4OTdFCivopb8gPiB4xKs7ICM4OTdGCivopoAgPiB4xKs7ICM4OTgwCivopoEgPiB5w6BvOyAjODk4MQor6KaCID4gZsSVbmc7ICM4OTgyCivopoMgPiB0w6FuOyAjODk4Mwor6KaFID4gYmnDoG87ICM4OTg1CivopoYgPiBmw7k7ICM4OTg2CivopocgPiBiw6A7ICM4OTg3CivopoggPiBow6k7ICM4OTg4CivopokgPiBqxKs7ICM4OTg5CivopoogPiBqxKs7ICM4OThBCivoposgPiBqacOgbjsgIzg5OEIKK+imjCA+IGd1xIFuOyAjODk4Qwor6KaNID4gYmnDoG47ICM4OThECivopo4gPiB5w6BuOyAjODk4RQor6KaPID4gZ8WraTsgIzg5OEYKK+imkCA+IGp1w6k7ICM4OTkwCivoppEgPiBwacSDbjsgIzg5OTEKK+imkiA+IG3DoW87ICM4OTkyCivoppMgPiBtw6w7ICM4OTkzCivoppQgPiBtw6w7ICM4OTk0CivoppUgPiBtacOoOyAjODk5NQor6KaWID4gc2jDrDsgIzg5OTYKK+imlyA+IHPEqzsgIzg5OTcKK+immCA+IHpoxIFuOyAjODk5OAor6KaZID4gbMO6bzsgIzg5OTkKK+immiA+IGp1w6k7ICM4OTlBCivoppsgPiBtw6w7ICM4OTlCCivoppwgPiB0acOgbzsgIzg5OUMKK+imnSA+IGxpw6FuOyAjODk5RAor6KaeID4gecOgbzsgIzg5OUUKK+imnyA+IHpow6w7ICM4OTlGCivopqAgPiBqxatuOyAjODlBMAor6KahID4geMOtOyAjODlBMQor6KaiID4gc2jEg247ICM4OUEyCivopqMgPiB3xJNpOyAjODlBMwor6KakID4geMOsOyAjODlBNAor6KalID4gdGnEg247ICM4OUE1CivopqYgPiB5w7o7ICM4OUE2CivopqcgPiBsxINuOyAjODlBNwor6KaoID4gw6g7ICM4OUE4CivopqkgPiBkxa07ICM4OUE5CivopqogPiBxxKtuOyAjODlBQQor6KarID4gcMSDbmc7ICM4OUFCCivopqwgPiBqw6w7ICM4OUFDCivopq0gPiBtw61uZzsgIzg5QUQKK+imriA+IHnDrW5nOyAjODlBRQor6KavID4gZ8OydTsgIzg5QUYKK+imsCA+IHHDuTsgIzg5QjAKK+imsSA+IHpow6BuOyAjODlCMQor6KayID4gasStbjsgIzg5QjIKK+imsyA+IGd1xIFuOyAjODlCMwor6Ka0ID4gZMSTbmc7ICM4OUI0CivoprUgPiBqacOgbjsgIzg5QjUKK+imtiA+IGzDum87ICM4OUI2CivoprcgPiBxw7k7ICM4OUI3CivoprggPiBqacOgbjsgIzg5QjgKK+imuSA+IHfDqWk7ICM4OUI5CivoprogPiBqdcOpOyAjODlCQQor6Ka7ID4gccO5OyAjODlCQgor6Ka8ID4gbMO6bzsgIzg5QkMKK+imvSA+IGzEg247ICM4OUJECivopr4gPiBzaMSVbjsgIzg5QkUKK+imvyA+IGTDrTsgIzg5QkYKK+ingCA+IGd1xIFuOyAjODlDMAor6KeBID4gamnDoG47ICM4OUMxCivop4IgPiBndcSBbjsgIzg5QzIKK+ingyA+IHnDoG47ICM4OUMzCivop4QgPiBnxatpOyAjODlDNAor6KeFID4gbcOsOyAjODlDNQor6KeGID4gc2jDrDsgIzg5QzYKK+inhyA+IHpoxIFuOyAjODlDNwor6KeIID4gbMSDbjsgIzg5QzgKK+iniSA+IGp1w6k7ICM4OUM5Civop4ogPiBqw6w7ICM4OUNBCivop4sgPiB4w607ICM4OUNCCivop4wgPiBkw607ICM4OUNDCivop40gPiB0acSDbjsgIzg5Q0QKK+injiA+IHnDujsgIzg5Q0UKK+injyA+IGfDsnU7ICM4OUNGCivop5AgPiBqxK1uOyAjODlEMAor6KeRID4gccO5OyAjODlEMQor6KeSID4gamnEg287ICM4OUQyCivop5MgPiBqxKt1OyAjODlEMwor6KeUID4gasSrbjsgIzg5RDQKK+inlSA+IGPFqzsgIzg5RDUKK+inliA+IGp1w6k7ICM4OUQ2Civop5cgPiB6aMOsOyAjODlENwor6KeYID4gY2jDoG87ICM4OUQ4Civop5kgPiBqw607ICM4OUQ5Civop5ogPiBnxas7ICM4OURBCivop5sgPiBkw6BuOyAjODlEQgor6KecID4gesWtaTsgIzg5REMKK+innSA+IGTErTsgIzg5REQKK+inniA+IHNoxIFuZzsgIzg5REUKK+innyA+IGh1w6A7ICM4OURGCivop6AgPiBxdcOhbjsgIzg5RTAKK+inoSA+IGfDqTsgIzg5RTEKK+inoiA+IGNow6w7ICM4OUUyCivop6MgPiBqacSVOyAjODlFMwor6KekID4gZ8WtaTsgIzg5RTQKK+inpSA+IGfFjW5nOyAjODlFNQor6KemID4gaMOzbmc7ICM4OUU2Civop6cgPiBqacSVOyAjODlFNwor6KeoID4gaMO5bjsgIzg5RTgKK+inqSA+IHHDrXU7ICM4OUU5Civop6ogPiB4xKtuZzsgIzg5RUEKK+inqyA+IHPDuTsgIzg5RUIKK+inrCA+IG7DrTsgIzg5RUMKK+inrSA+IGrEqzsgIzg5RUQKK+inriA+IGzDuTsgIzg5RUUKK+inryA+IHpow6w7ICM4OUVGCivop7AgPiB6aMSBOyAjODlGMAor6KexID4gYsOsOyAjODlGMQor6KeyID4geMSrbmc7ICM4OUYyCivop7MgPiBow7o7ICM4OUYzCivop7QgPiBzaMSBbmc7ICM4OUY0Civop7UgPiBnxY1uZzsgIzg5RjUKK+intiA+IHpow6w7ICM4OUY2Civop7cgPiB4dcOpOyAjODlGNwor6Ke4ID4gY2jDuTsgIzg5RjgKK+inuSA+IHjEqzsgIzg5RjkKK+inuiA+IHnDrTsgIzg5RkEKK+inuyA+IGzDuTsgIzg5RkIKK+invCA+IGp1w6k7ICM4OUZDCivop70gPiB4xKs7ICM4OUZECivop74gPiB5w6BuOyAjODlGRQor6Ke/ID4geMSrOyAjODlGRgor6KiAID4gecOhbjsgIzhBMDAKK+iogSA+IHnDoW4nICd6w6wnICdww6FuZzsgIzhBMDEKK+iogiA+IGTDrG5nOyAjOEEwMgor6KiDID4gZsO5OyAjOEEwMwor6KiEID4gccOtdTsgIzhBMDQKK+iohSA+IHHDrXU7ICM4QTA1CivoqIYgPiBqacOgbzsgIzhBMDYKK+iohyA+IGjFjW5nOyAjOEEwNwor6KiIID4gasOsOyAjOEEwOAor6KiJID4gZsOgbjsgIzhBMDkKK+ioiiA+IHjDuW47ICM4QTBBCivoqIsgPiBkacOgbzsgIzhBMEIKK+iojCA+IGjDs25nOyAjOEEwQwor6KiNID4gY2jDoDsgIzhBMEQKK+iojiA+IHTEg287ICM4QTBFCivoqI8gPiB4xas7ICM4QTBGCivoqJAgPiBqacOpOyAjOEExMAor6KiRID4gecOtOyAjOEExMQor6KiSID4gcsOobjsgIzhBMTIKK+iokyA+IHjDuW47ICM4QTEzCivoqJQgPiB5w61uOyAjOEExNAor6KiVID4gc2jDoG47ICM4QTE1CivoqJYgPiBxw6w7ICM4QTE2CivoqJcgPiB0xatvOyAjOEExNwor6KiYID4gasOsOyAjOEExOAor6KiZID4geMO5bjsgIzhBMTkKK+iomiA+IHnDrW47ICM4QTFBCivoqJsgPiDDqTsgIzhBMUIKK+ionCA+IGbEk247ICM4QTFDCivoqJ0gPiB5w6A7ICM4QTFECivoqJ4gPiB5xIFvOyAjOEExRQor6KifID4gc8Oybmc7ICM4QTFGCivoqKAgPiBzaMSVbjsgIzhBMjAKK+iooSA+IHnDrW47ICM4QTIxCivoqKIgPiB4xKtuOyAjOEEyMgor6KijID4ganXDqTsgIzhBMjMKK+iopCA+IHhpw6FvOyAjOEEyNAor6KilID4gbsOoOyAjOEEyNQor6KimID4gY2jDqW47ICM4QTI2CivoqKcgPiB5w7N1OyAjOEEyNwor6KioID4gemjErTsgIzhBMjgKK+ioqSA+IHjEq29uZzsgIzhBMjkKK+ioqiA+IGbEg25nOyAjOEEyQQor6KirID4geMOsbjsgIzhBMkIKK+iorCA+IGNoxIFvOyAjOEEyQwor6KitID4gc2jDqDsgIzhBMkQKK+ioriA+IHhpxIFuOyAjOEEyRQor6KivID4gc2jEgzsgIzhBMkYKK+iosCA+IHTDum47ICM4QTMwCivoqLEgPiB4xa07ICM4QTMxCivoqLIgPiB5w6w7ICM4QTMyCivoqLMgPiB5w6w7ICM4QTMzCivoqLQgPiBzw7k7ICM4QTM0CivoqLUgPiBjaMSrOyAjOEEzNQor6Ki2ID4gaMSTOyAjOEEzNgor6Ki3ID4gc2jEk247ICM4QTM3CivoqLggPiBow6k7ICM4QTM4CivoqLkgPiB4w7k7ICM4QTM5CivoqLogPiB6aMSVbjsgIzhBM0EKK+iouyA+IHpow7k7ICM4QTNCCivoqLwgPiB6aMOobmc7ICM4QTNDCivoqL0gPiBnw7J1OyAjOEEzRAor6Ki+ID4gesStOyAjOEEzRQor6Ki/ID4gesStOyAjOEEzRgor6KmAID4gemjEgW47ICM4QTQwCivoqYEgPiBnxa07ICM4QTQxCivoqYIgPiBmw7k7ICM4QTQyCivoqYMgPiBxdcSDbjsgIzhBNDMKK+iphCA+IGRpw6k7ICM4QTQ0CivoqYUgPiBsw61uZzsgIzhBNDUKK+iphiA+IGTErTsgIzhBNDYKK+iphyA+IHnDoG5nOyAjOEE0Nwor6KmIID4gbMOsOyAjOEE0OAor6KmJID4gbsOhbzsgIzhBNDkKK+ipiiA+IHDDoG47ICM4QTRBCivoqYsgPiB6aMOydTsgIzhBNEIKK+ipjCA+IGfDoG47ICM4QTRDCivoqY0gPiB5w6w7ICM4QTRECivoqY4gPiBqw7k7ICM4QTRFCivoqY8gPiDDoG87ICM4QTRGCivoqZAgPiB6aMOgOyAjOEE1MAor6KmRID4gdMO6bzsgIzhBNTEKK+ipkiA+IHnDrTsgIzhBNTIKK+ipkyA+IHHFrTsgIzhBNTMKK+iplCA+IHpow6BvOyAjOEE1NAor6KmVID4gcMOtbmc7ICM4QTU1CivoqZYgPiBiw6w7ICM4QTU2CivoqZcgPiB4w6xvbmc7ICM4QTU3CivoqZggPiBxw7k7ICM4QTU4CivoqZkgPiBiw6E7ICM4QTU5CivoqZogPiBkw6E7ICM4QTVBCivoqZsgPiB6xa07ICM4QTVCCivoqZwgPiB0xIFvOyAjOEE1Qwor6KmdID4gemjFrTsgIzhBNUQKK+ipniA+IGPDrTsgIzhBNUUKK+ipnyA+IHpow6k7ICM4QTVGCivoqaAgPiB5xY9uZzsgIzhBNjAKK+ipoSA+IHjFrTsgIzhBNjEKK+ipoiA+IHjDum47ICM4QTYyCivoqaMgPiB5w6w7ICM4QTYzCivoqaQgPiBodcSDbmc7ICM4QTY0CivoqaUgPiBow6k7ICM4QTY1CivoqaYgPiBzaMOsOyAjOEE2Ngor6KmnID4gY2jDoTsgIzhBNjcKK+ipqCA+IGppxIFvOyAjOEE2OAor6KmpID4gc2jEqzsgIzhBNjkKK+ipqiA+IGjElW47ICM4QTZBCivoqasgPiBjaMOgOyAjOEE2Qgor6KmsID4gZ8OydTsgIzhBNkMKK+iprSA+IGfFrWk7ICM4QTZECivoqa4gPiBxdcOhbjsgIzhBNkUKK+ipryA+IGjDuWk7ICM4QTZGCivoqbAgPiBqacOpOyAjOEE3MAor6KmxID4gaHXDoDsgIzhBNzEKK+ipsiA+IGfEgWk7ICM4QTcyCivoqbMgPiB4acOhbmc7ICM4QTczCivoqbQgPiB3xJNpOyAjOEE3NAor6Km1ID4gc2jEk247ICM4QTc1CivoqbYgPiBjaMOzdTsgIzhBNzYKK+iptyA+IHTDs25nOyAjOEE3Nwor6Km4ID4gbcOtOyAjOEE3OAor6Km5ID4gemjEgW47ICM4QTc5CivoqbogPiBtw6xuZzsgIzhBN0EKK+ipuyA+IMOoOyAjOEE3Qgor6Km8ID4gaMWraTsgIzhBN0MKK+ipvSA+IHnDoW47ICM4QTdECivoqb4gPiB4xKtvbmc7ICM4QTdFCivoqb8gPiBndcOgOyAjOEE3Rgor6KqAID4gw6hyOyAjOEE4MAor6KqBID4gYsSVbmc7ICM4QTgxCivoqoIgPiB0acSDbzsgIzhBODIKK+iqgyA+IGNoxK07ICM4QTgzCivoqoQgPiBsxJVpOyAjOEE4NAor6KqFID4gemjFqzsgIzhBODUKK+iqhiA+IGt1xIFuZzsgIzhBODYKK+iqhyA+IGt1xIE7ICM4QTg3CivoqoggPiB3w7o7ICM4QTg4CivoqokgPiB5w7k7ICM4QTg5CivoqoogPiB0w6luZzsgIzhBOEEKK+iqiyA+IGrDrDsgIzhBOEIKK+iqjCA+IHpow6w7ICM4QThDCivoqo0gPiByw6huOyAjOEE4RAor6KqOID4gc8O5OyAjOEE4RQor6KqPID4gbMSDbmc7ICM4QThGCivoqpAgPiDDqTsgIzhBOTAKK+iqkSA+IGt1w6FuZzsgIzhBOTEKK+iqkiA+IMOoOyAjOEE5Mgor6KqTID4gc2jDrDsgIzhBOTMKK+iqlCA+IHTErW5nOyAjOEE5NAor6KqVID4gZMOgbjsgIzhBOTUKK+iqliA+IGLDszsgIzhBOTYKK+iqlyA+IGNow6FuOyAjOEE5Nwor6KqYID4gecOydTsgIzhBOTgKK+iqmSA+IGjDqW5nOyAjOEE5OQor6KqaID4gcWnDoG87ICM4QTlBCivoqpsgPiBxxKtuOyAjOEE5Qgor6KqcID4gc2h1w6A7ICM4QTlDCivoqp0gPiDEgW47ICM4QTlECivoqp4gPiB5xa07ICM4QTlFCivoqp8gPiB4acOgbzsgIzhBOUYKK+iqoCA+IGNow6luZzsgIzhBQTAKK+iqoSA+IGppw6g7ICM4QUExCivoqqIgPiB4acOgbjsgIzhBQTIKK+iqoyA+IHfDujsgIzhBQTMKK+iqpCA+IHfDuTsgIzhBQTQKK+iqpSA+IGfDoG87ICM4QUE1CivoqqYgPiBzw7JuZzsgIzhBQTYKK+iqpyA+IHDFrTsgIzhBQTcKK+iqqCA+IGjDuWk7ICM4QUE4CivoqqkgPiBqw6xuZzsgIzhBQTkKK+iqqiA+IHNoxatvOyAjOEFBQQor6KqrID4gemjDqG47ICM4QUFCCivoqqwgPiBzaMWrbzsgIzhBQUMKK+iqrSA+IGTDujsgIzhBQUQKK+iqryA+IGNow6BuZzsgIzhBQUYKK+iqsCA+IHNow7ppOyAjOEFCMAor6KqxID4gamnDqTsgIzhBQjEKK+iqsiA+IGvDqDsgIzhBQjIKK+iqsyA+IHHFqzsgIzhBQjMKK+iqtCA+IGPDs25nOyAjOEFCNAor6Kq1ID4geGnDoW87ICM4QUI1CivoqrYgPiBzw7lpOyAjOEFCNgor6Kq3ID4gd8SDbmc7ICM4QUI3CivoqrggPiB4dcOhbjsgIzhBQjgKK+iquSA+IGbElWk7ICM4QUI5CivoqrogPiBjaMSrOyAjOEFCQQor6Kq7ID4gdMOgOyAjOEFCQgor6Kq8ID4gecOtOyAjOEFCQwor6Kq9ID4gbsOhOyAjOEFCRAor6Kq+ID4gecOtbjsgIzhBQkUKK+iqvyA+IGRpw6BvOyAjOEFCRgor6KuAID4gcMStOyAjOEFDMAor6KuBID4gY2jDuW87ICM4QUMxCivoq4IgPiBjaMSDbjsgIzhBQzIKK+irgyA+IGNoxJNuOyAjOEFDMwor6KuEID4gemjFq247ICM4QUM0Civoq4UgPiBqxKs7ICM4QUM1Civoq4YgPiBxxKs7ICM4QUM2Civoq4cgPiB0w6FuOyAjOEFDNwor6KuIID4gemjDuWk7ICM4QUM4Civoq4kgPiB3xJVpOyAjOEFDOQor6KuKID4gasO6OyAjOEFDQQor6KuLID4gccStbmc7ICM4QUNCCivoq4wgPiBqacOgbjsgIzhBQ0MKK+irjSA+IHpoxJNuZzsgIzhBQ0QKK+irjiA+IHrDqTsgIzhBQ0UKK+irjyA+IHrFjXU7ICM4QUNGCivoq5AgPiBxacSBbjsgIzhBRDAKK+irkSA+IHpow7pvOyAjOEFEMQor6KuSID4gbGnDoG5nOyAjOEFEMgor6KuTID4gamnDoG47ICM4QUQzCivoq5QgPiB6aMO5OyAjOEFENAor6KuVID4gaMOhbzsgIzhBRDUKK+irliA+IGzDuW47ICM4QUQ2Civoq5cgPiBzaMSVbjsgIzhBRDcKK+irmCA+IGJpxINvOyAjOEFEOAor6KuZID4gaHXDoGk7ICM4QUQ5Civoq5ogPiBwacOhbjsgIzhBREEKK+irmyA+IHnDujsgIzhBREIKK+irnCA+IGRpw6k7ICM4QURDCivoq50gPiB4xa07ICM4QURECivoq54gPiBwacOhbjsgIzhBREUKK+irnyA+IHNow6w7ICM4QURGCivoq6AgPiB4dcSBbjsgIzhBRTAKK+iroSA+IHNow6w7ICM4QUUxCivoq6IgPiBow7luOyAjOEFFMgor6KujID4gaHXDoDsgIzhBRTMKK+irpCA+IMOoOyAjOEFFNAor6KulID4gemjDsm5nOyAjOEFFNQor6KumID4gZMOsOyAjOEFFNgor6KunID4geGnDqTsgIzhBRTcKK+irqCA+IGbDujsgIzhBRTgKK+irqSA+IHDFrTsgIzhBRTkKK+irqiA+IHTDrW5nOyAjOEFFQQor6KurID4gamnDoG47ICM4QUVCCivoq6wgPiBxxK07ICM4QUVDCivoq60gPiB5w7k7ICM4QUVECivoq64gPiB6xKs7ICM4QUVFCivoq68gPiBjaHXDoW47ICM4QUVGCivoq7AgPiB4xK07ICM4QUYwCivoq7EgPiBow7lpOyAjOEFGMQor6KuyID4gecSrbjsgIzhBRjIKK+irsyA+IMSBbjsgIzhBRjMKK+irtCA+IHhpw6FuOyAjOEFGNAor6Ku1ID4gbsOhbjsgIzhBRjUKK+irtiA+IGNow6luOyAjOEFGNgor6Ku3ID4gZsSTbmc7ICM4QUY3Civoq7ggPiB6aMWrOyAjOEFGOAor6Ku5ID4gecOhbmc7ICM4QUY5Civoq7ogPiB5w6BuOyAjOEFGQQor6Ku7ID4gaMSTbmc7ICM4QUZCCivoq7wgPiB4dcSBbjsgIzhBRkMKK+irvSA+IGfDqTsgIzhBRkQKK+irviA+IG7DuW87ICM4QUZFCivoq78gPiBxw6w7ICM4QUZGCivorIAgPiBtw7N1OyAjOEIwMAor6KyBID4gecOoOyAjOEIwMQor6KyCID4gd8OoaTsgIzhCMDIKK+ishCA+IHTDqW5nOyAjOEIwNAor6KyFID4gesWNdTsgIzhCMDUKK+ishiA+IHNow6BuOyAjOEIwNgor6KyHID4gamnEg247ICM4QjA3CivorIggPiBiw7M7ICM4QjA4CivorIkgPiBrw7kxOyAjOEIwOQor6KyKID4gaHXEg25nOyAjOEIwQQor6KyLID4gaMO5bzsgIzhCMEIKK+isjCA+IGfEkzsgIzhCMEMKK+isjSA+IHnDrW5nOyAjOEIwRAor6KyOID4gbcOtOyAjOEIwRQor6KyPID4geGnEg287ICM4QjBGCivorJAgPiBtw6w7ICM4QjEwCivorJEgPiB4w6w7ICM4QjExCivorJIgPiBxacSBbmc7ICM4QjEyCivorJMgPiBjaMSTbjsgIzhCMTMKK+islCA+IG7HnGU7ICM4QjE0CivorJUgPiB0w607ICM4QjE1CivorJYgPiBzw7k7ICM4QjE2CivorJcgPiBiw6BuZzsgIzhCMTcKK+ismCA+IGNow607ICM4QjE4CivorJkgPiBxacSBbjsgIzhCMTkKK+ismiA+IHNow6w7ICM4QjFBCivorJsgPiBqacSDbmc7ICM4QjFCCivorJwgPiB5dcOgbjsgIzhCMUMKK+isnSA+IHhpw6g7ICM4QjFECivorJ4gPiB4dcOoOyAjOEIxRQor6KyfID4gdMSBbzsgIzhCMUYKK+isoCA+IHnDoW87ICM4QjIwCivorKEgPiB5w6FvOyAjOEIyMQor6KyjID4gecO6OyAjOEIyMwor6KykID4gYmnEgW87ICM4QjI0CivorKUgPiBjw7JuZzsgIzhCMjUKK+ispiA+IHHDrG5nOyAjOEIyNgor6KynID4gbMOtOyAjOEIyNwor6KyoID4gbcOzOyAjOEIyOAor6KypID4gbcOyOyAjOEIyOQor6KyqID4gc2jEgW5nOyAjOEIyQQor6KyrID4gemjDqTsgIzhCMkIKK+isrCA+IG3DrHU7ICM4QjJDCivorK0gPiBqacSDbjsgIzhCMkQKK+isriA+IHrDqTsgIzhCMkUKK+isryA+IGppxJM7ICM4QjJGCivorLAgPiBsacOhbjsgIzhCMzAKK+issSA+IGzDs3U7ICM4QjMxCivorLIgPiBjxIFuOyAjOEIzMgor6KyzID4gxY11OyAjOEIzMwor6Ky0ID4gZ3XDoG47ICM4QjM0CivorLUgPiB4w607ICM4QjM1CivorLYgPiB6aMO6bzsgIzhCMzYKK+istyA+IMOhbzsgIzhCMzcKK+isuCA+IMOhbzsgIzhCMzgKK+isuSA+IGrErW47ICM4QjM5CivorLogPiB6aMOpOyAjOEIzQQor6Ky7ID4gecOtOyAjOEIzQgor6Ky8ID4gaMO5OyAjOEIzQwor6Ky9ID4gamnDoG5nOyAjOEIzRAor6Ky+ID4gbcOhbjsgIzhCM0UKK+isvyA+IGNow6FvOyAjOEIzRgor6K2AID4gaMOgbjsgIzhCNDAKK+itgSA+IGh1w6E7ICM4QjQxCivorYIgPiBjaMSDbjsgIzhCNDIKK+itgyA+IHjFqzsgIzhCNDMKK+ithCA+IHrEk25nOyAjOEI0NAor6K2FID4gc8OoOyAjOEI0NQor6K2GID4geMSrOyAjOEI0Ngor6K2HID4gc2jEkzsgIzhCNDcKK+itiCA+IGTDuWk7ICM4QjQ4CivorYkgPiB6aMOobmc7ICM4QjQ5CivorYogPiBuw6FvOyAjOEI0QQor6K2LID4gbMOhbjsgIzhCNEIKK+itjCA+IMOpOyAjOEI0Qwor6K2NID4gecOsbmc7ICM4QjRECivorY4gPiBqdcOpOyAjOEI0RQor6K2PID4gasSrOyAjOEI0Rgor6K2QID4gesWtbjsgIzhCNTAKK+itkSA+IGppxINvOyAjOEI1MQor6K2SID4gYsOyOyAjOEI1Mgor6K2TID4gaMO5aTsgIzhCNTMKK+itlCA+IHpodcOgbjsgIzhCNTQKK+itlSA+IG3DujsgIzhCNTUKK+itliA+IHrDqG47ICM4QjU2CivorZcgPiB6aMOhOyAjOEI1Nwor6K2YID4gc2jDrDsgIzhCNTgKK+itmSA+IHFpw6FvOyAjOEI1OQor6K2aID4gdMOhbjsgIzhCNUEKK+itmyA+IHrDqG47ICM4QjVCCivorZwgPiBwxa07ICM4QjVDCivorZ0gPiBzaMOpbmc7ICM4QjVECivorZ4gPiB4dcSBbjsgIzhCNUUKK+itnyA+IHrDoG87ICM4QjVGCivoraAgPiB0xIFuOyAjOEI2MAor6K2hID4gZMSDbmc7ICM4QjYxCivoraIgPiBzw7lpOyAjOEI2Mgor6K2jID4gcWnEgW47ICM4QjYzCivoraQgPiBqxKs7ICM4QjY0CivoraUgPiBqacOgbzsgIzhCNjUKK+itpiA+IGrErW5nOyAjOEI2Ngor6K2nID4gbGnDoW47ICM4QjY3CivoraggPiBuw7N1OyAjOEI2OAor6K2pID4gecSrOyAjOEI2OQor6K2qID4gw6BpOyAjOEI2QQor6K2rID4gemjEgW47ICM4QjZCCivorawgPiBww6w7ICM4QjZDCivora0gPiBoxa1pOyAjOEI2RAor6K2uID4gaHXDoDsgIzhCNkUKK+itryA+IHnDrDsgIzhCNkYKK+itsCA+IHnDrDsgIzhCNzAKK+itsSA+IHNow6BuOyAjOEI3MQor6K2yID4gcsOgbmc7ICM4QjcyCivorbMgPiBuw7J1OyAjOEI3Mwor6K20ID4gcWnEg247ICM4Qjc0CivorbUgPiB6aMO5aTsgIzhCNzUKK+ittiA+IHTDoDsgIzhCNzYKK+ittyA+IGjDuTsgIzhCNzcKK+ituCA+IHpoxY11OyAjOEI3OAor6K25ID4gaMOhbzsgIzhCNzkKK+ituiA+IHnDqDsgIzhCN0EKK+ituyA+IHnEq25nOyAjOEI3Qgor6K28ID4gamnDoG47ICM4QjdDCivorb0gPiB5w7k7ICM4QjdECivorb4gPiBqacSDbjsgIzhCN0UKK+itvyA+IGjDuWk7ICM4QjdGCivoroAgPiBkw7o7ICM4QjgwCivoroEgPiB6aMOpOyAjOEI4MQor6K6CID4geHXDoG47ICM4QjgyCivoroMgPiB6w6BuOyAjOEI4Mwor6K6EID4gbMSVaTsgIzhCODQKK+iuhSA+IHNoxJVuOyAjOEI4NQor6K6GID4gd8OoaTsgIzhCODYKK+iuhyA+IGNoxINuOyAjOEI4Nwor6K6IID4gbMOsOyAjOEI4OAor6K6JID4gecOtOyAjOEI4OQor6K6KID4gYmnDoG47ICM4QjhBCivorosgPiB6aMOpOyAjOEI4Qgor6K6MID4gecOgbjsgIzhCOEMKK+iujSA+IMOoOyAjOEI4RAor6K6OID4gY2jDs3U7ICM4QjhFCivoro8gPiB3w6hpOyAjOEI4Rgor6K6QID4gY2jDs3U7ICM4QjkwCivorpEgPiB5w6BvOyAjOEI5MQor6K6SID4gY2jDoW47ICM4QjkyCivorpMgPiByw6BuZzsgIzhCOTMKK+iulCA+IHnErW47ICM4Qjk0CivorpUgPiBsw6FuOyAjOEI5NQor6K6WID4gY2jDqG47ICM4Qjk2CivorpcgPiBow7lvOyAjOEI5Nwor6K6YID4gemjDqTsgIzhCOTgKK+iumSA+IGh1xIFuOyAjOEI5OQor6K6aID4gesOgbjsgIzhCOUEKK+iumyA+IHnDrDsgIzhCOUIKK+iunCA+IGTEg25nOyAjOEI5Qwor6K6dID4gemjEgW47ICM4QjlECivorp4gPiB5w6BuOyAjOEI5RQor6K6fID4gZMO6OyAjOEI5Rgor6K6gID4gecOhbjsgIzhCQTAKK+iuoSA+IGrDrDsgIzhCQTEKK+iuoiA+IGTDrG5nOyAjOEJBMgor6K6jID4gZsO5OyAjOEJBMwor6K6kID4gcsOobjsgIzhCQTQKK+iupSA+IGrEqzsgIzhCQTUKK+iupiA+IGppw6k7ICM4QkE2CivorqcgPiBow7NuZzsgIzhCQTcKK+iuqCA+IHTEg287ICM4QkE4CivorqkgPiByw6BuZzsgIzhCQTkKK+iuqiA+IHNow6BuOyAjOEJBQQor6K6rID4gccOsOyAjOEJBQgor6K6sID4gdMWrbzsgIzhCQUMKK+iurSA+IHjDuW47ICM4QkFECivorq4gPiB5w6w7ICM4QkFFCivorq8gPiB4w7luOyAjOEJBRgor6K6wID4gasOsOyAjOEJCMAor6K6xID4gcsOobjsgIzhCQjEKK+iusiA+IGppxINuZzsgIzhCQjIKK+iusyA+IGjDuWk7ICM4QkIzCivorrQgPiDFjXU7ICM4QkI0CivorrUgPiBqw7k7ICM4QkI1CivorrYgPiB5w6A7ICM4QkI2CivorrcgPiBuw6g7ICM4QkI3CivorrggPiB4xa07ICM4QkI4CivorrkgPiDDqTsgIzhCQjkKK+iuuiA+IGzDuW47ICM4QkJBCivorrsgPiB4xKtvbmc7ICM4QkJCCivorrwgPiBzw7JuZzsgIzhCQkMKK+iuvSA+IGbEk25nOyAjOEJCRAor6K6+ID4gc2jDqDsgIzhCQkUKK+iuvyA+IGbEg25nOyAjOEJCRgor6K+AID4ganXDqTsgIzhCQzAKK+ivgSA+IHpow6huZzsgIzhCQzEKK+ivgiA+IGfFrTsgIzhCQzIKK+ivgyA+IGjEkzsgIzhCQzMKK+ivhCA+IHDDrW5nOyAjOEJDNAor6K+FID4gesWtOyAjOEJDNQor6K+GID4gc2jDrDsgIzhCQzYKK+ivhyA+IHjDrG9uZzsgIzhCQzcKK+iviCA+IHpow6A7ICM4QkM4Civor4kgPiBzw7k7ICM4QkM5Civor4ogPiB6aMSVbjsgIzhCQ0EKK+iviyA+IGTErTsgIzhCQ0IKK+ivjCA+IHrFjXU7ICM4QkNDCivor40gPiBjw607ICM4QkNECivor44gPiBxw7k7ICM4QkNFCivor48gPiB6aMOgbzsgIzhCQ0YKK+ivkCA+IGLDrDsgIzhCRDAKK+ivkSA+IHnDrDsgIzhCRDEKK+ivkiA+IHnDrTsgIzhCRDIKK+ivkyA+IGt1xIFuZzsgIzhCRDMKK+ivlCA+IGzElWk7ICM4QkQ0Civor5UgPiBzaMOsOyAjOEJENQor6K+WID4gZ3XDoDsgIzhCRDYKK+ivlyA+IHNoxKs7ICM4QkQ3Civor5ggPiBqacOpOyAjOEJEOAor6K+ZID4gaMWraTsgIzhCRDkKK+ivmiA+IGNow6luZzsgIzhCREEKK+ivmyA+IHpoxas7ICM4QkRCCivor5wgPiBzaMSTbjsgIzhCREMKK+ivnSA+IGh1w6A7ICM4QkRECivor54gPiBkw6BuOyAjOEJERQor6K+fID4gZ8OydTsgIzhCREYKK+ivoCA+IHF1w6FuOyAjOEJFMAor6K+hID4gZ8WtaTsgIzhCRTEKK+ivoiA+IHjDum47ICM4QkUyCivor6MgPiB5w6w7ICM4QkUzCivor6QgPiB6aMSTbmc7ICM4QkU0Civor6UgPiBnxIFpOyAjOEJFNQor6K+mID4geGnDoW5nOyAjOEJFNgor6K+nID4gY2jDoDsgIzhCRTcKK+ivqCA+IGjDuW47ICM4QkU4Civor6kgPiB4xa07ICM4QkU5Civor6ogPiB6aMWNdTsgIzhCRUEKK+ivqyA+IGppw6g7ICM4QkVCCivor6wgPiB3w7o7ICM4QkVDCivor60gPiB5xa07ICM4QkVECivor64gPiBxacOgbzsgIzhCRUUKK+ivryA+IHfDuTsgIzhCRUYKK+ivsCA+IGfDoG87ICM4QkYwCivor7EgPiB5w7J1OyAjOEJGMQor6K+yID4gaMO5aTsgIzhCRjIKK+ivsyA+IGt1w6FuZzsgIzhCRjMKK+ivtCA+IHNoxatvOyAjOEJGNAor6K+1ID4gc8Oybmc7ICM4QkY1Civor7YgPiDEgWk7ICM4QkY2Civor7cgPiBxxK1uZzsgIzhCRjcKK+ivuCA+IHpoxas7ICM4QkY4Civor7kgPiB6xY11OyAjOEJGOQor6K+6ID4gbsO5bzsgIzhCRkEKK+ivuyA+IGTDujsgIzhCRkIKK+ivvCA+IHpow7pvOyAjOEJGQwor6K+9ID4gZsSVaTsgIzhCRkQKK+ivviA+IGvDqDsgIzhCRkUKK+ivvyA+IHfElWk7ICM4QkZGCivosIAgPiB5w7o7ICM4QzAwCivosIEgPiBzaMO6aTsgIzhDMDEKK+iwgiA+IHNoxJVuOyAjOEMwMgor6LCDID4gZGnDoG87ICM4QzAzCivosIQgPiBjaMSDbjsgIzhDMDQKK+iwhSA+IGxpw6BuZzsgIzhDMDUKK+iwhiA+IHpoxatuOyAjOEMwNgor6LCHID4gc8O5aTsgIzhDMDcKK+iwiCA+IHTDoW47ICM4QzA4CivosIkgPiBzaMSVbjsgIzhDMDkKK+iwiiA+IHnDrTsgIzhDMEEKK+iwiyA+IG3Ds3U7ICM4QzBCCivosIwgPiBjaMOpbjsgIzhDMEMKK+iwjSA+IGRpw6k7ICM4QzBECivosI4gPiBodcSDbmc7ICM4QzBFCivosI8gPiBqacOgbjsgIzhDMEYKK+iwkCA+IHhpw6k7ICM4QzEwCivosJEgPiBux5xlOyAjOEMxMQor6LCSID4gecOoOyAjOEMxMgor6LCTID4gd8OoaTsgIzhDMTMKK+iwlCA+IMOoOyAjOEMxNAor6LCVID4gecO5OyAjOEMxNQor6LCWID4geHXEgW47ICM4QzE2CivosJcgPiBjaMOhbjsgIzhDMTcKK+iwmCA+IHrEqzsgIzhDMTgKK+iwmSA+IMSBbjsgIzhDMTkKK+iwmiA+IHnDoG47ICM4QzFBCivosJsgPiBkw6w7ICM4QzFCCivosJwgPiBtw607ICM4QzFDCivosJ0gPiBwacOhbjsgIzhDMUQKK+iwniA+IHjFrTsgIzhDMUUKK+iwnyA+IG3DszsgIzhDMUYKK+iwoCA+IGTEg25nOyAjOEMyMAor6LChID4gc8O5OyAjOEMyMQor6LCiID4geGnDqDsgIzhDMjIKK+iwoyA+IHnDoW87ICM4QzIzCivosKQgPiBiw6BuZzsgIzhDMjQKK+iwpSA+IHNow6w7ICM4QzI1CivosKYgPiBxacSBbjsgIzhDMjYKK+iwpyA+IG3DrDsgIzhDMjcKK+iwqCA+IGrErW47ICM4QzI4CivosKkgPiBtw6FuOyAjOEMyOQor6LCqID4gemjDqTsgIzhDMkEKK+iwqyA+IGppxINuOyAjOEMyQgor6LCsID4gbcOsdTsgIzhDMkMKK+iwrSA+IHTDoW47ICM4QzJECivosK4gPiB6w6huOyAjOEMyRQor6LCvID4gcWnDoW87ICM4QzJGCivosLAgPiBsw6FuOyAjOEMzMAor6LCxID4gcMWtOyAjOEMzMQor6LCyID4ganXDqTsgIzhDMzIKK+iwsyA+IHnDoG47ICM4QzMzCivosLQgPiBxacSDbjsgIzhDMzQKK+iwtSA+IHpoxIFuOyAjOEMzNQor6LC2ID4gY2jDqG47ICM4QzM2CivosLcgPiBnxa07ICM4QzM3CivosLggPiBxacSBbjsgIzhDMzgKK+iwuSA+IGjDs25nOyAjOEMzOQor6LC6ID4geGnEgTsgIzhDM0EKK+iwuyA+IGp1w6k7ICM4QzNCCivosLwgPiBow7NuZzsgIzhDM0MKK+iwvSA+IGjEgW47ICM4QzNECivosL4gPiBoxY1uZzsgIzhDM0UKK+iwvyA+IHjEqzsgIzhDM0YKK+ixgCA+IHjEqzsgIzhDNDAKK+ixgSA+IGjDuW87ICM4QzQxCivosYIgPiBsacOhbzsgIzhDNDIKK+ixgyA+IGjEg247ICM4QzQzCivosYQgPiBkw7o7ICM4QzQ0CivosYUgPiBsw7NuZzsgIzhDNDUKK+ixhiA+IGTDsnU7ICM4QzQ2CivosYcgPiBqacSBbmc7ICM4QzQ3CivosYggPiBxxK07ICM4QzQ4CivosYkgPiBzaMOsOyAjOEM0OQor6LGKID4gbMStOyAjOEM0QQor6LGLID4gZMSTbmc7ICM4QzRCCivosYwgPiB3xIFuOyAjOEM0Qwor6LGNID4gYsSrOyAjOEM0RAor6LGOID4gc2jDuTsgIzhDNEUKK+ixjyA+IHhpw6BuOyAjOEM0Rgor6LGQID4gZsSTbmc7ICM4QzUwCivosZEgPiB6aMOsOyAjOEM1MQor6LGSID4gemjDrDsgIzhDNTIKK+ixkyA+IHnDoG47ICM4QzUzCivosZQgPiB5w6BuOyAjOEM1NAor6LGVID4gc2jErTsgIzhDNTUKK+ixliA+IGNow7k7ICM4QzU2CivosZcgPiBoxatpOyAjOEM1Nwor6LGYID4gdMO6bjsgIzhDNTgKK+ixmSA+IHnDrDsgIzhDNTkKK+ixmiA+IHTDum47ICM4QzVBCivosZsgPiB5w6w7ICM4QzVCCivosZwgPiBqacSBbjsgIzhDNUMKK+ixnSA+IGLEgTsgIzhDNUQKK+ixniA+IGjDsnU7ICM4QzVFCivosZ8gPiDDqDsgIzhDNUYKK+ixoCA+IGPDujsgIzhDNjAKK+ixoSA+IHhpw6BuZzsgIzhDNjEKK+ixoiA+IGh1w6BuOyAjOEM2Mgor6LGjID4gamnEgW47ICM4QzYzCivosaQgPiBrxJVuOyAjOEM2NAor6LGlID4gZ8SBaTsgIzhDNjUKK+ixpiA+IHHDujsgIzhDNjYKK+ixpyA+IGbFqzsgIzhDNjcKK+ixqCA+IHjEqzsgIzhDNjgKK+ixqSA+IGLEq247ICM4QzY5CivosaogPiBow6FvOyAjOEM2QQor6LGrID4gecO5OyAjOEM2Qgor6LGsID4gemjFqzsgIzhDNkMKK+ixrSA+IGppxIE7ICM4QzZECivosa8gPiB4xKs7ICM4QzZGCivosbAgPiBiw7M7ICM4QzcwCivosbEgPiB3xJNuOyAjOEM3MQor6LGyID4gaHXDoW47ICM4QzcyCivosbMgPiBixKtuOyAjOEM3Mwor6LG0ID4gZMOtOyAjOEM3NAor6LG1ID4gesWNbmc7ICM4Qzc1CivosbYgPiBmw6luOyAjOEM3Ngor6LG3ID4gecOsOyAjOEM3Nwor6LG4ID4gemjDrDsgIzhDNzgKK+ixuSA+IGLDoG87ICM4Qzc5CivosbogPiBjaMOhaTsgIzhDN0EKK+ixuyA+IGjDoG47ICM4QzdCCivosbwgPiBww607ICM4QzdDCivosb0gPiBuw6A7ICM4QzdECivosb4gPiBwxKs7ICM4QzdFCivosb8gPiBnxY91OyAjOEM3Rgor6LKAID4gbsOgOyAjOEM4MAor6LKBID4gecOydTsgIzhDODEKK+iygiA+IGRpxIFvOyAjOEM4Mgor6LKDID4gbcOyOyAjOEM4Mwor6LKEID4gc8OsOyAjOEM4NAor6LKFID4geMSrdTsgIzhDODUKK+iyhiA+IGh1w6FuOyAjOEM4Ngor6LKHID4ga8WrbjsgIzhDODcKK+iyiCA+IGjDqTsgIzhDODgKK+iyiSA+IGjDqTsgIzhDODkKK+iyiiA+IG3DsjsgIzhDOEEKK+iyiyA+IGjDoG47ICM4QzhCCivosowgPiBtw6BvOyAjOEM4Qwor6LKNID4gbMOtOyAjOEM4RAor6LKOID4gbsOtOyAjOEM4RQor6LKPID4gYsStOyAjOEM4Rgor6LKQID4gecWtOyAjOEM5MAor6LKRID4gamnEgTsgIzhDOTEKK+iykiA+IHR1xIFuOyAjOEM5Mgor6LKTID4gbcSBbzsgIzhDOTMKK+iylCA+IHDDrTsgIzhDOTQKK+iylSA+IHjEqzsgIzhDOTUKK+iyliA+IMOoOyAjOEM5Ngor6LKXID4gasO5OyAjOEM5Nwor6LKYID4gbcOyOyAjOEM5OAor6LKZID4gY2jFqzsgIzhDOTkKK+iymiA+IHTDoW47ICM4QzlBCivospsgPiBodcSBbjsgIzhDOUIKK+iynCA+IGp1w6k7ICM4QzlDCivosp0gPiBiw6hpOyAjOEM5RAor6LKeID4gemjEk247ICM4QzlFCivosp8gPiB5dcOhbjsgIzhDOUYKK+iyoCA+IGbDuTsgIzhDQTAKK+iyoSA+IGPDoWk7ICM4Q0ExCivosqIgPiBnw7JuZzsgIzhDQTIKK+iyoyA+IHTDqDsgIzhDQTMKK+iypCA+IHnDrTsgIzhDQTQKK+iypSA+IGjDoW5nOyAjOENBNQor6LKmID4gd8OgbjsgIzhDQTYKK+iypyA+IHDDrW47ICM4Q0E3CivosqggPiBow7lvOyAjOENBOAor6LKpID4gZsOgbjsgIzhDQTkKK+iyqiA+IHTEgW47ICM4Q0FBCivosqsgPiBndcOgbjsgIzhDQUIKK+iyrCA+IHrDqTsgIzhDQUMKK+iyrSA+IHpow607ICM4Q0FECivosq4gPiDDqHI7ICM4Q0FFCivosq8gPiB6aMWtOyAjOENBRgor6LKwID4gc2jDrDsgIzhDQjAKK+iysSA+IGLDrDsgIzhDQjEKK+iysiA+IHrEqzsgIzhDQjIKK+iysyA+IMOocjsgIzhDQjMKK+iytCA+IGfDuWk7ICM4Q0I0CivosrUgPiBwacSDbjsgIzhDQjUKK+iytiA+IGJpxINuOyAjOENCNgor6LK3ID4gbcSDaTsgIzhDQjcKK+iyuCA+IGTDoGk7ICM4Q0I4CivosrkgPiBzaMOobmc7ICM4Q0I5CivosrogPiBrdcOgbmc7ICM4Q0JBCivosrsgPiBmw6hpOyAjOENCQgor6LK8ID4gdGnEkzsgIzhDQkMKK+iyvSA+IHnDrTsgIzhDQkQKK+iyviA+IGNow607ICM4Q0JFCivosr8gPiBtw6BvOyAjOENCRgor6LOAID4gaMOoOyAjOENDMAor6LOBID4gYsOsOyAjOENDMQor6LOCID4gbMO5OyAjOENDMgor6LODID4gcsOobjsgIzhDQzMKK+izhCA+IGjDuWk7ICM4Q0M0Civos4UgPiBnxIFpOyAjOENDNQor6LOGID4gcGnDoW47ICM4Q0M2Civos4cgPiB6xKs7ICM4Q0M3Civos4ggPiBqacSDOyAjOENDOAor6LOJID4geMO5OyAjOENDOQor6LOKID4gesOpaTsgIzhDQ0EKK+iziyA+IGppxINvOyAjOENDQgor6LOMID4gZ8OgaTsgIzhDQ0MKK+izjSA+IHrEgW5nOyAjOENDRAor6LOOID4gamnDoG47ICM4Q0NFCivos48gPiB5w6xuZzsgIzhDQ0YKK+izkCA+IHjDuW47ICM4Q0QwCivos5EgPiB6aMOobjsgIzhDRDEKK+izkiA+IHNoxJM7ICM4Q0QyCivos5MgPiBixKtuOyAjOENEMwor6LOUID4gYsSrbjsgIzhDRDQKK+izlSA+IHHDrXU7ICM4Q0Q1Civos5YgPiBzaMSTOyAjOENENgor6LOXID4gY2h1w6BuOyAjOENENwor6LOYID4gesSBbmc7ICM4Q0Q4Civos5kgPiB6aMWNdTsgIzhDRDkKK+izmiA+IGzDoGk7ICM4Q0RBCivos5sgPiB6w6BuOyAjOENEQgor6LOcID4gc8OsOyAjOENEQwor6LOdID4gY2jEk247ICM4Q0RECivos54gPiBzaMSDbmc7ICM4Q0RFCivos58gPiB0acSDbjsgIzhDREYKK+izoCA+IHDDqWk7ICM4Q0UwCivos6EgPiBnxJNuZzsgIzhDRTEKK+izoiA+IHhpw6FuOyAjOENFMgor6LOjID4gbcOgaTsgIzhDRTMKK+izpCA+IGppw6BuOyAjOENFNAor6LOlID4gc8O5aTsgIzhDRTUKK+izpiA+IGbDuTsgIzhDRTYKK+izpyA+IHTDoG47ICM4Q0U3Civos6ggPiBjw7NuZzsgIzhDRTgKK+izqSA+IGPDs25nOyAjOENFOQor6LOqID4gemjDrTsgIzhDRUEKK+izqyA+IGrEqzsgIzhDRUIKK+izrCA+IHpow6BuZzsgIzhDRUMKK+izrSA+IGTFrTsgIzhDRUQKK+izriA+IGrDrG47ICM4Q0VFCivos68gPiB4xKtvbmc7ICM4Q0VGCivos7AgPiBzaMWtbjsgIzhDRjAKK+izsSA+IHnFrW47ICM4Q0YxCivos7IgPiBixINvOyAjOENGMgor6LOzID4gesSBaTsgIzhDRjMKK+iztCA+IGzDoGk7ICM4Q0Y0Civos7UgPiBmw6huZzsgIzhDRjUKK+iztiA+IGPDoG5nOyAjOENGNgor6LO3ID4gasSrOyAjOENGNwor6LO4ID4gc2jDqG5nOyAjOENGOAor6LO5ID4gw6BpOyAjOENGOQor6LO6ID4gemh1w6BuOyAjOENGQQor6LO7ID4gZsO5OyAjOENGQgor6LO8ID4gZ8OydTsgIzhDRkMKK+izvSA+IHPDoGk7ICM4Q0ZECivos74gPiB6w6k7ICM4Q0ZFCivos78gPiBsacOhbzsgIzhDRkYKK+i0gCA+IHfDqGk7ICM4RDAwCivotIEgPiBiw6BpOyAjOEQwMQor6LSCID4gY2jElW47ICM4RDAyCivotIMgPiB6aHXDoG47ICM4RDAzCivotIQgPiB6aMOsOyAjOEQwNAor6LSFID4gemjDuWk7ICM4RDA1CivotIYgPiBiacSBbzsgIzhEMDYKK+i0hyA+IHnFq247ICM4RDA3CivotIggPiB6w6huZzsgIzhEMDgKK+i0iSA+IHTEg247ICM4RDA5CivotIogPiB6w6BuOyAjOEQwQQor6LSLID4gecOgbjsgIzhEMEIKK+i0jSA+IHNow6BuOyAjOEQwRAor6LSOID4gd8OgbjsgIzhEMEUKK+i0jyA+IHnDrW5nOyAjOEQwRgor6LSQID4gasOsbjsgIzhEMTAKK+i0kSA+IGfEg247ICM4RDExCivotJIgPiB4acOhbjsgIzhEMTIKK+i0kyA+IHrEgW5nOyAjOEQxMwor6LSUID4gYsOsOyAjOEQxNAor6LSVID4gZMO6OyAjOEQxNQor6LSWID4gc2jDujsgIzhEMTYKK+i0lyA+IHnDoG47ICM4RDE3CivotJkgPiB4dcOgbjsgIzhEMTkKK+i0miA+IGzDsm5nOyAjOEQxQQor6LSbID4gZ8OgbjsgIzhEMUIKK+i0nCA+IHrEgW5nOyAjOEQxQwor6LSdID4gYsOoaTsgIzhEMUQKK+i0niA+IHpoxJNuOyAjOEQxRQor6LSfID4gZsO5OyAjOEQxRgor6LSgID4geXXDoW47ICM4RDIwCivotKEgPiBnw7JuZzsgIzhEMjEKK+i0oiA+IGPDoWk7ICM4RDIyCivotKMgPiB6w6k7ICM4RDIzCivotKQgPiB4acOhbjsgIzhEMjQKK+i0pSA+IGLDoGk7ICM4RDI1CivotKYgPiB6aMOgbmc7ICM4RDI2CivotKcgPiBow7lvOyAjOEQyNwor6LSoID4gemjDrTsgIzhEMjgKK+i0qSA+IGbDoG47ICM4RDI5CivotKogPiB0xIFuOyAjOEQyQQor6LSrID4gcMOtbjsgIzhEMkIKK+i0rCA+IGJpxINuOyAjOEQyQwor6LStID4gZ8OydTsgIzhEMkQKK+i0riA+IHpoxa07ICM4RDJFCivotK8gPiBndcOgbjsgIzhEMkYKK+i0sCA+IMOocjsgIzhEMzAKK+i0sSA+IGppw6BuOyAjOEQzMQor6LSyID4gYsOsOyAjOEQzMgor6LSzID4gc2jDrDsgIzhEMzMKK+i0tCA+IHRpxJM7ICM4RDM0CivotLUgPiBnw7lpOyAjOEQzNQor6LS2ID4ga3XDoG5nOyAjOEQzNgor6LS3ID4gZMOgaTsgIzhEMzcKK+i0uCA+IG3DoG87ICM4RDM4CivotLkgPiBmw6hpOyAjOEQzOQor6LS6ID4gaMOoOyAjOEQzQQor6LS7ID4gecOtOyAjOEQzQgor6LS8ID4gesOpaTsgIzhEM0MKK+i0vSA+IHpow6w7ICM4RDNECivotL4gPiBqacSDOyAjOEQzRQor6LS/ID4gaMO5aTsgIzhEM0YKK+i1gCA+IHrEqzsgIzhENDAKK+i1gSA+IHLDqG47ICM4RDQxCivotYIgPiBsw7k7ICM4RDQyCivotYMgPiB6xIFuZzsgIzhENDMKK+i1hCA+IHrEqzsgIzhENDQKK+i1hSA+IGfEgWk7ICM4RDQ1CivotYYgPiBqw6xuOyAjOEQ0Ngor6LWHID4gccOtdTsgIzhENDcKK+i1iCA+IHpow6huOyAjOEQ0OAor6LWJID4gbMOgaTsgIzhENDkKK+i1iiA+IHNoxJM7ICM4RDRBCivotYsgPiBmw7k7ICM4RDRCCivotYwgPiBkxa07ICM4RDRDCivotY0gPiBqxKs7ICM4RDRECivotY4gPiBzaMO6OyAjOEQ0RQor6LWPID4gc2jEg25nOyAjOEQ0Rgor6LWQID4gc8OsOyAjOEQ1MAor6LWRID4gYsOsOyAjOEQ1MQor6LWSID4gemjFjXU7ICM4RDUyCivotZMgPiBnxJNuZzsgIzhENTMKK+i1lCA+IHDDqWk7ICM4RDU0CivotZUgPiB0w6BuOyAjOEQ1NQor6LWWID4gbMOgaTsgIzhENTYKK+i1lyA+IGbDqG5nOyAjOEQ1Nwor6LWYID4gemjDuWk7ICM4RDU4CivotZkgPiBmw7k7ICM4RDU5CivotZogPiB6aHXDoG47ICM4RDVBCivotZsgPiBzw6BpOyAjOEQ1Qgor6LWcID4gesOpOyAjOEQ1Qwor6LWdID4gecOgbjsgIzhENUQKK+i1niA+IHrDoG47ICM4RDVFCivotZ8gPiB5xatuOyAjOEQ1Rgor6LWgID4gesOobmc7ICM4RDYwCivotaEgPiBzaMOgbjsgIzhENjEKK+i1oiA+IHnDrW5nOyAjOEQ2Mgor6LWjID4gZ8OgbjsgIzhENjMKK+i1pCA+IGNow6w7ICM4RDY0CivotaUgPiB4w6w7ICM4RDY1CivotaYgPiBzaMOoOyAjOEQ2Ngor6LWnID4gbsSDbjsgIzhENjcKK+i1qCA+IHjDrW9uZzsgIzhENjgKK+i1qSA+IHjDrDsgIzhENjkKK+i1qiA+IGNoxJNuZzsgIzhENkEKK+i1qyA+IGjDqDsgIzhENkIKK+i1rCA+IGNoxJNuZzsgIzhENkMKK+i1rSA+IHpoxJU7ICM4RDZECivota4gPiB4acOhOyAjOEQ2RQor6LWvID4gdMOhbmc7ICM4RDZGCivotbAgPiB6xY91OyAjOEQ3MAor6LWxID4gesWPdTsgIzhENzEKK+i1siA+IGzDrDsgIzhENzIKK+i1syA+IGrErXU7ICM4RDczCivotbQgPiBmw7k7ICM4RDc0CivotbUgPiB6aMOgbzsgIzhENzUKK+i1tiA+IGfEg247ICM4RDc2CivotbcgPiBxxK07ICM4RDc3CivotbggPiBzaMOgbjsgIzhENzgKK+i1uSA+IHHDrW9uZzsgIzhENzkKK+i1uiA+IHHDrW47ICM4RDdBCivotbsgPiB4acSDbjsgIzhEN0IKK+i1vCA+IGPEqzsgIzhEN0MKK+i1vSA+IGp1w6k7ICM4RDdECivotb4gPiBxxK1uOyAjOEQ3RQor6LW/ID4gY2jDrTsgIzhEN0YKK+i2gCA+IGPEqzsgIzhEODAKK+i2gSA+IGNow6huOyAjOEQ4MQor6LaCID4gY2jDqG47ICM4RDgyCivotoMgPiBkacOpOyAjOEQ4Mwor6LaEID4gasWrOyAjOEQ4NAor6LaFID4gY2jEgW87ICM4RDg1CivotoYgPiBkxKs7ICM4RDg2CivotocgPiBzw6g7ICM4RDg3CivotoggPiB6aMSBbjsgIzhEODgKK+i2iSA+IHpow7o7ICM4RDg5CivotoogPiB5dcOoOyAjOEQ4QQor6LaLID4gccWrOyAjOEQ4Qgor6LaMID4gamnDqTsgIzhEOEMKK+i2jSA+IGNow607ICM4RDhECivoto4gPiBjaMO6OyAjOEQ4RQor6LaPID4gZ3XEgTsgIzhEOEYKK+i2kCA+IHh1w6g7ICM4RDkwCivotpEgPiBjxKs7ICM4RDkxCivotpIgPiB0acOhbzsgIzhEOTIKK+i2kyA+IGTFrW87ICM4RDkzCivotpQgPiBsacOoOyAjOEQ5NAor6LaVID4gZ8SDbjsgIzhEOTUKK+i2liA+IHPFq287ICM4RDk2CivotpcgPiBjw7k7ICM4RDk3CivotpggPiB4w607ICM4RDk4CivotpkgPiB6aMOgbzsgIzhEOTkKK+i2miA+IHPDuTsgIzhEOUEKK+i2myA+IHnErW47ICM4RDlCCivotpwgPiBqw7o7ICM4RDlDCivotp0gPiBqacOgbjsgIzhEOUQKK+i2niA+IHF1w6g7ICM4RDlFCivotp8gPiB0w6BuZzsgIzhEOUYKK+i2oCA+IGNow7lvOyAjOERBMAor6LahID4gY8WtaTsgIzhEQTEKK+i2oiA+IGzDuTsgIzhEQTIKK+i2oyA+IHHDuTsgIzhEQTMKK+i2pCA+IGTDoG5nOyAjOERBNAor6LalID4gccSrdTsgIzhEQTUKK+i2piA+IHrEqzsgIzhEQTYKK+i2pyA+IHTDrTsgIzhEQTcKK+i2qCA+IHHFqzsgIzhEQTgKK+i2qSA+IGNow6w7ICM4REE5CivotqogPiBodcOhbmc7ICM4REFBCivotqsgPiBxacOhbzsgIzhEQUIKK+i2rCA+IHFpw6FvOyAjOERBQwor6LatID4gecOgbzsgIzhEQUQKK+i2riA+IHrDoG87ICM4REFFCivotq8gPiB0w6w7ICM4REFGCivotrEgPiB6xINuOyAjOERCMQor6LayID4gesSDbjsgIzhEQjIKK+i2syA+IHrDujsgIzhEQjMKK+i2tCA+IHDEgTsgIzhEQjQKK+i2tSA+IGLDoG87ICM4REI1CivotrYgPiBrw7k7ICM4REI2CivotrcgPiBrxJM7ICM4REI3CivotrggPiBkxa1uOyAjOERCOAor6La5ID4ganXDqTsgIzhEQjkKK+i2uiA+IGbFqzsgIzhEQkEKK+i2uyA+IGNoxJVuOyAjOERCQgor6La8ID4gamnEg247ICM4REJDCivotr0gPiBmw6BuZzsgIzhEQkQKK+i2viA+IHpoxK07ICM4REJFCivotr8gPiBzw6A7ICM4REJGCivot4AgPiB5dcOoOyAjOERDMAor6LeBID4gcMOhOyAjOERDMQor6LeCID4gccOtOyAjOERDMgor6LeDID4geXXDqDsgIzhEQzMKK+i3hCA+IHFpxIFuZzsgIzhEQzQKK+i3hSA+IHTDuW87ICM4REM1Civot4YgPiB0w6FpOyAjOERDNgor6LeHID4gecOsOyAjOERDNwor6LeIID4gbmnEg247ICM4REM4Civot4kgPiBsw61uZzsgIzhEQzkKK+i3iiA+IG3DqGk7ICM4RENBCivot4sgPiBiw6E7ICM4RENCCivot4wgPiBkacSTOyAjOERDQwor6LeNID4ga8WrOyAjOERDRAor6LeOID4gdMO6bzsgIzhEQ0UKK+i3jyA+IGppxIE7ICM4RENGCivot5AgPiBjxK07ICM4REQwCivot5EgPiBwxINvOyAjOEREMQor6LeSID4gcWnEgzsgIzhERDIKK+i3kyA+IHpow7k7ICM4REQzCivot5QgPiBqxas7ICM4REQ0Civot5UgPiBkacOpOyAjOERENQor6LeWID4gemjEqzsgIzhERDYKK+i3lyA+IGbFqzsgIzhERDcKK+i3mCA+IHDDoW47ICM4REQ4Civot5kgPiBqxa07ICM4REQ5Civot5ogPiBzaMSBbjsgIzhEREEKK+i3myA+IGLFjzsgIzhEREIKK+i3nCA+IG7DrTsgIzhEREMKK+i3nSA+IGrDuTsgIzhEREQKK+i3niA+IGzDrDsgIzhEREUKK+i3nyA+IGfEk247ICM4RERGCivot6AgPiB5w607ICM4REUwCivot6EgPiBqxKs7ICM4REUxCivot6IgPiBkw6BpOyAjOERFMgor6LejID4geGnEg247ICM4REUzCivot6QgPiBqacSBbzsgIzhERTQKK+i3pSA+IGTDuW87ICM4REU1Civot6YgPiB6aMWrOyAjOERFNgor6LenID4gemh1xIFuOyAjOERFNwor6LeoID4ga3XDoDsgIzhERTgKK+i3qSA+IHpodcSDaTsgIzhERTkKK+i3qiA+IGfDuWk7ICM4REVBCivot6sgPiBxw61vbmc7ICM4REVCCivot6wgPiBrxa1pOyAjOERFQwor6LetID4geGnDoW5nOyAjOERFRAor6LeuID4gY2jDrDsgIzhERUUKK+i3ryA+IGzDuTsgIzhERUYKK+i3sCA+IGLDqG5nOyAjOERGMAor6LexID4gemjDrDsgIzhERjEKK+i3siA+IGppw6E7ICM4REYyCivot7MgPiB0acOgbzsgIzhERjMKK+i3tCA+IGPEg2k7ICM4REY0Civot7UgPiBqacOgbjsgIzhERjUKK+i3tiA+IHTDoDsgIzhERjYKK+i3tyA+IHFpxIFvOyAjOERGNwor6Le4ID4gYsOsOyAjOERGOAor6Le5ID4geGnEgW47ICM4REY5Civot7ogPiBkw7lvOyAjOERGQQor6Le7ID4gasSrOyAjOERGQgor6Le8ID4gasO6OyAjOERGQwor6Le9ID4gasOsOyAjOERGRAor6Le+ID4gc2jDujsgIzhERkUKK+i3vyA+IHTDujsgIzhERkYKK+i4gCA+IGNow7k7ICM4RTAwCivouIEgPiBqw6xuZzsgIzhFMDEKK+i4giA+IG5pw6g7ICM4RTAyCivouIMgPiB4acSBbzsgIzhFMDMKK+i4hCA+IGLDszsgIzhFMDQKK+i4hSA+IGNow6w7ICM4RTA1CivouIYgPiBxxatuOyAjOEUwNgor6LiHID4gbcWPdTsgIzhFMDcKK+i4iCA+IHNoxas7ICM4RTA4CivouIkgPiBsw6FuZzsgIzhFMDkKK+i4iiA+IHnFj25nOyAjOEUwQQor6LiLID4gamnEg287ICM4RTBCCivouIwgPiBjaMOzdTsgIzhFMEMKK+i4jSA+IHFpxIFvOyAjOEUwRAor6LiPID4gdMOgOyAjOEUwRgor6LiQID4gamnDoG47ICM4RTEwCivouJEgPiBxw607ICM4RTExCivouJIgPiB3xY07ICM4RTEyCivouJMgPiB3xJVpOyAjOEUxMwor6LiUID4gemjDum87ICM4RTE0CivouJUgPiBqacOpOyAjOEUxNQor6LiWID4gasOtOyAjOEUxNgor6LiXID4gbmnEkzsgIzhFMTcKK+i4mCA+IGrDujsgIzhFMTgKK+i4mSA+IGrFqzsgIzhFMTkKK+i4miA+IGzDum47ICM4RTFBCivouJsgPiBsw7k7ICM4RTFCCivouJwgPiBsw6huZzsgIzhFMUMKK+i4nSA+IGh1w6FpOyAjOEUxRAor6LieID4gasO5OyAjOEUxRQor6LifID4gY2jDrTsgIzhFMUYKK+i4oCA+IHfEg247ICM4RTIwCivouKEgPiBxdcOhbjsgIzhFMjEKK+i4oiA+IHTEqzsgIzhFMjIKK+i4oyA+IGLDszsgIzhFMjMKK+i4pCA+IHrDujsgIzhFMjQKK+i4pSA+IHFpw6g7ICM4RTI1CivouKYgPiBqxK07ICM4RTI2CivouKcgPiBjw7k7ICM4RTI3CivouKggPiB6xY1uZzsgIzhFMjgKK+i4qSA+IGPEg2k7ICM4RTI5CivouKogPiB6xY1uZzsgIzhFMkEKK+i4qyA+IHDDqG5nOyAjOEUyQgor6LisID4gemjDrDsgIzhFMkMKK+i4rSA+IHpoxJNuZzsgIzhFMkQKK+i4riA+IGRpxINuOyAjOEUyRQor6LivID4gemjDrTsgIzhFMkYKK+i4sCA+IHnDujsgIzhFMzAKK+i4sSA+IGTDuW87ICM4RTMxCivouLIgPiBkw7luOyAjOEUzMgor6LizID4gY2jFrW47ICM4RTMzCivouLQgPiB5xY9uZzsgIzhFMzQKK+i4tSA+IHpoxY9uZzsgIzhFMzUKK+i4tiA+IGTDrDsgIzhFMzYKK+i4tyA+IHpoxJU7ICM4RTM3CivouLggPiBjaMSVbjsgIzhFMzgKK+i4uSA+IGNodcOgaTsgIzhFMzkKK+i4uiA+IGppw6BuOyAjOEUzQQor6Li7ID4gZ3XEgTsgIzhFM0IKK+i4vCA+IHTDoW5nOyAjOEUzQwor6Li9ID4gasWtOyAjOEUzRAor6Li+ID4gZsO6OyAjOEUzRQor6Li/ID4gesO6OyAjOEUzRgor6LmAID4gZGnDqTsgIzhFNDAKK+i5gSA+IHBpw6FuOyAjOEU0MQor6LmCID4gcsOzdTsgIzhFNDIKK+i5gyA+IG7DuW87ICM4RTQzCivouYQgPiB0w607ICM4RTQ0CivouYUgPiBjaMSDOyAjOEU0NQor6LmGID4gdMWtaTsgIzhFNDYKK+i5hyA+IGppxINuOyAjOEU0Nwor6LmIID4gZMOgbzsgIzhFNDgKK+i5iSA+IGPFq287ICM4RTQ5CivouYogPiB4xKs7ICM4RTRBCivouYsgPiB0w6A7ICM4RTRCCivouYwgPiBxacSBbmc7ICM4RTRDCivouY0gPiB6aMSDbjsgIzhFNEQKK+i5jiA+IGRpxIFuOyAjOEU0RQor6LmPID4gdMOtOyAjOEU0Rgor6LmQID4gasOtOyAjOEU1MAor6LmRID4gbmnDqDsgIzhFNTEKK+i5kiA+IG3DoW47ICM4RTUyCivouZMgPiBsxKt1OyAjOEU1Mwor6LmUID4gemjDoG47ICM4RTU0CivouZUgPiBiw6w7ICM4RTU1CivouZYgPiBjaMWNbmc7ICM4RTU2CivouZcgPiBsw7k7ICM4RTU3CivouZggPiBsacOhbzsgIzhFNTgKK+i5mSA+IGPDuTsgIzhFNTkKK+i5miA+IHTEgW5nOyAjOEU1QQor6LmbID4gZMOgaTsgIzhFNUIKK+i5nCA+IHPFq287ICM4RTVDCivouZ0gPiB4xK07ICM4RTVECivouZ4gPiBrxa1pOyAjOEU1RQor6LmfID4gasSrOyAjOEU1Rgor6LmgID4gemjDrTsgIzhFNjAKK+i5oSA+IHFpxIFuZzsgIzhFNjEKK+i5oiA+IGTDrTsgIzhFNjIKK+i5oyA+IG3DoW47ICM4RTYzCivouaQgPiB6xY1uZzsgIzhFNjQKK+i5pSA+IGxpw6FuOyAjOEU2NQor6LmmID4gYsOobmc7ICM4RTY2CivouacgPiB6xIFvOyAjOEU2Nwor6LmoID4gbmnEg247ICM4RTY4CivouakgPiBiacOpOyAjOEU2OQor6LmqID4gdMO6aTsgIzhFNkEKK+i5qyA+IGrDujsgIzhFNkIKK+i5rCA+IGTDqG5nOyAjOEU2Qwor6LmtID4gY8Oobmc7ICM4RTZECivoua4gPiB4acSBbjsgIzhFNkUKK+i5ryA+IGbDoW47ICM4RTZGCivoubAgPiBjaMO6OyAjOEU3MAor6LmxID4gemjFjW5nOyAjOEU3MQor6LmyID4gZMWrbjsgIzhFNzIKK+i5syA+IGLFjTsgIzhFNzMKK+i5tCA+IGPDuTsgIzhFNzQKK+i5tSA+IHrDujsgIzhFNzUKK+i5tiA+IGp1w6k7ICM4RTc2CivoubcgPiBqdcOpOyAjOEU3Nwor6Lm4ID4gbMOsbjsgIzhFNzgKK+i5uSA+IHTDoDsgIzhFNzkKK+i5uiA+IHFpxIFvOyAjOEU3QQor6Lm7ID4gcWnEgW87ICM4RTdCCivoubwgPiBww7o7ICM4RTdDCivoub0gPiBsacSBbzsgIzhFN0QKK+i5viA+IGTFq247ICM4RTdFCivoub8gPiBjdcSBbjsgIzhFN0YKK+i6gCA+IGt1w6BuZzsgIzhFODAKK+i6gSA+IHrDoG87ICM4RTgxCivouoIgPiB0w6A7ICM4RTgyCivouoMgPiBiw6w7ICM4RTgzCivouoQgPiBiw6w7ICM4RTg0CivouoUgPiB6aMO6OyAjOEU4NQor6LqGID4gasO5OyAjOEU4Ngor6LqHID4gY2jDujsgIzhFODcKK+i6iCA+IHFpw6BvOyAjOEU4OAor6LqJID4gZMWtbjsgIzhFODkKK+i6iiA+IGNow7N1OyAjOEU4QQor6LqLID4gasSrOyAjOEU4Qgor6LqMID4gd8WtOyAjOEU4Qwor6LqNID4geXXDqDsgIzhFOEQKK+i6jiA+IG5pxINuOyAjOEU4RQor6LqPID4gbMOsbjsgIzhFOEYKK+i6kCA+IGxpw6g7ICM4RTkwCivoupEgPiB6aMOtOyAjOEU5MQor6LqSID4gbMOsOyAjOEU5Mgor6LqTID4gemjDrDsgIzhFOTMKK+i6lCA+IGNow6FuOyAjOEU5NAor6LqVID4gY2jDujsgIzhFOTUKK+i6liA+IGR1w6BuOyAjOEU5Ngor6LqXID4gd8OoaTsgIzhFOTcKK+i6mCA+IGzDs25nOyAjOEU5OAor6LqZID4gbMOsbjsgIzhFOTkKK+i6miA+IHhpxIFuOyAjOEU5QQor6LqbID4gd8OoaTsgIzhFOUIKK+i6nCA+IHp1xIFuOyAjOEU5Qwor6LqdID4gbMOhbjsgIzhFOUQKK+i6niA+IHhpw6g7ICM4RTlFCivoup8gPiByw6FuZzsgIzhFOUYKK+i6oCA+IHhpxJU7ICM4RUEwCivouqEgPiBuacOoOyAjOEVBMQor6LqiID4gdMOgOyAjOEVBMgor6LqjID4gccO6OyAjOEVBMwor6LqkID4gamnDqDsgIzhFQTQKK+i6pSA+IGN1xIFuOyAjOEVBNQor6LqmID4genXEgW47ICM4RUE2CivouqcgPiB4xK07ICM4RUE3CivouqggPiBrw7ppOyAjOEVBOAor6LqpID4ganXDqTsgIzhFQTkKK+i6qiA+IGzDrG47ICM4RUFBCivouqsgPiBzaMSTbjsgIzhFQUIKK+i6rCA+IGfFjW5nOyAjOEVBQwor6LqtID4gZMSBbjsgIzhFQUQKK+i6ryA+IHHFqzsgIzhFQUYKK+i6sCA+IHTErTsgIzhFQjAKK+i6sSA+IGTFrW87ICM4RUIxCivourIgPiBkxa1vOyAjOEVCMgor6LqzID4gZ8WNbmc7ICM4RUIzCivourQgPiBsw6FuZzsgIzhFQjQKK+i6tiA+IGzFrW87ICM4RUI2CivourcgPiDEg2k7ICM4RUI3CivourggPiBqxKs7ICM4RUI4CivourkgPiBqw7o7ICM4RUI5CivourogPiB0xINuZzsgIzhFQkEKK+i6vSA+IHnEg247ICM4RUJECivour8gPiBrxIFuZzsgIzhFQkYKK+i7gCA+IHHFqzsgIzhFQzAKK+i7gSA+IGzDs3U7ICM4RUMxCivou4IgPiBsw6BvOyAjOEVDMgor6LuDID4gdMWtbzsgIzhFQzMKK+i7hCA+IHpow607ICM4RUM0Civou4YgPiB0xK07ICM4RUM2Civou4cgPiBkw6BvOyAjOEVDNwor6LuJID4gecO5OyAjOEVDOQor6LuKID4gY2jEkzsgIzhFQ0EKK+i7iyA+IHnDoDsgIzhFQ0IKK+i7jCA+IGfFrWk7ICM4RUNDCivou40gPiBqxatuOyAjOEVDRAor6LuOID4gd8OoaTsgIzhFQ0UKK+i7jyA+IHl1w6g7ICM4RUNGCivou5AgPiB4w6xuOyAjOEVEMAor6LuRID4gZMOsOyAjOEVEMQor6LuSID4geHXEgW47ICM4RUQyCivou5MgPiBmw6BuOyAjOEVEMwor6LuUID4gcsOobjsgIzhFRDQKK+i7lSA+IHNoxIFuOyAjOEVENQor6LuWID4gcWnDoW5nOyAjOEVENgor6LuXID4gc2jFqzsgIzhFRDcKK+i7mCA+IHTDum47ICM4RUQ4Civou5kgPiBjaMOpbjsgIzhFRDkKK+i7miA+IGTDoGk7ICM4RURBCivou5sgPiDDqDsgIzhFREIKK+i7nCA+IG7DoDsgIzhFREMKK+i7nSA+IHHDrTsgIzhFREQKK+i7niA+IG3DoW87ICM4RURFCivou58gPiBydcSDbjsgIzhFREYKK+i7oCA+IHLDqG47ICM4RUUwCivou6EgPiBmxINuOyAjOEVFMQor6LuiID4gemh1xINuOyAjOEVFMgor6LujID4gaMWNbmc7ICM4RUUzCivou6QgPiBoxas7ICM4RUU0Civou6UgPiBxw7o7ICM4RUU1Civou6YgPiBodcOgbmc7ICM4RUU2Civou6cgPiBkxK07ICM4RUU3Civou6ggPiBsw61uZzsgIzhFRTgKK+i7qSA+IGTDoGk7ICM4RUU5Civou6ogPiDEgW87ICM4RUVBCivou6sgPiB6aMSVbjsgIzhFRUIKK+i7rCA+IGbDoG47ICM4RUVDCivou60gPiBrdcSBbmc7ICM4RUVECivou64gPiDEg25nOyAjOEVFRQor6LuvID4gcMSTbmc7ICM4RUVGCivou7AgPiBiw6hpOyAjOEVGMAor6LuxID4gZ8WrOyAjOEVGMQor6LuyID4ga8WrOyAjOEVGMgor6LuzID4gcMOhbzsgIzhFRjMKK+i7tCA+IHpow7k7ICM4RUY0Civou7UgPiByxY9uZzsgIzhFRjUKK+i7tiA+IMOoOyAjOEVGNgor6Lu3ID4gYsOhOyAjOEVGNwor6Lu4ID4gemjDs3U7ICM4RUY4Civou7kgPiB6aMStOyAjOEVGOQor6Lu6ID4gecOhbzsgIzhFRkEKK+i7uyA+IGvEkzsgIzhFRkIKK+i7vCA+IHnDrDsgIzhFRkMKK+i7vSA+IHHEq25nOyAjOEVGRAor6Lu+ID4gc2jDrDsgIzhFRkUKK+i7vyA+IHDDrW5nOyAjOEVGRgor6LyAID4gw6lyOyAjOEYwMAor6LyBID4gccOtb25nOyAjOEYwMQor6LyCID4gasO6OyAjOEYwMgor6LyDID4gamnDoG87ICM4RjAzCivovIQgPiBndcSBbmc7ICM4RjA0CivovIUgPiBsw7k7ICM4RjA1CivovIYgPiBrxINpOyAjOEYwNgor6LyHID4gcXXDoW47ICM4RjA3CivovIggPiB6aMWNdTsgIzhGMDgKK+i8iSA+IHrDoGk7ICM4RjA5CivovIogPiB6aMOsOyAjOEYwQQor6LyLID4gc2jEkzsgIzhGMEIKK+i8jCA+IGxpw6BuZzsgIzhGMEMKK+i8jSA+IHnDuTsgIzhGMEQKK+i8jiA+IHNoxIFvOyAjOEYwRQor6LyPID4gecOzdTsgIzhGMEYKK+i8kCA+IGh1xINuOyAjOEYxMAor6LyRID4gecWtbjsgIzhGMTEKK+i8kiA+IHpow6k7ICM4RjEyCivovJMgPiB3xINuOyAjOEYxMwor6LyUID4gZsWtOyAjOEYxNAor6LyVID4gccSrbmc7ICM4RjE1CivovJYgPiB6aMWNdTsgIzhGMTYKK+i8lyA+IG7DrTsgIzhGMTcKK+i8mCA+IGzDrW5nOyAjOEYxOAor6LyZID4gemjDqTsgIzhGMTkKK+i8miA+IHpow6BuOyAjOEYxQQor6LybID4gbGnDoG5nOyAjOEYxQgor6LycID4gesSrOyAjOEYxQwor6LydID4gaMWraTsgIzhGMUQKK+i8niA+IHfEg25nOyAjOEYxRQor6LyfID4gY2jDuW87ICM4RjFGCivovKAgPiBnxa1vOyAjOEYyMAor6LyhID4ga8SDbjsgIzhGMjEKK+i8oiA+IHnErTsgIzhGMjIKK+i8oyA+IHDDqW5nOyAjOEYyMwor6LykID4gcWnDoG47ICM4RjI0CivovKUgPiBnxa1uOyAjOEYyNQor6LymID4gbmnEg247ICM4RjI2CivovKcgPiBwacOhbjsgIzhGMjcKK+i8qCA+IGd1xINuOyAjOEYyOAor6LypID4gYsOoaTsgIzhGMjkKK+i8qiA+IGzDum47ICM4RjJBCivovKsgPiBww6FpOyAjOEYyQgor6LysID4gbGnDoW5nOyAjOEYyQwor6LytID4gcnXEg247ICM4RjJECivovK4gPiByw7N1OyAjOEYyRQor6LyvID4gasOtOyAjOEYyRgor6LywID4gecOhbmc7ICM4RjMwCivovLEgPiB4acOhbjsgIzhGMzEKK+i8siA+IGNodcOhbjsgIzhGMzIKK+i8syA+IGPDsnU7ICM4RjMzCivovLQgPiBxxatuOyAjOEYzNAor6Ly1ID4gZ8OpOyAjOEYzNQor6Ly2ID4gecOzdTsgIzhGMzYKK+i8tyA+IGjFjW5nOyAjOEYzNwor6Ly4ID4gc2jFqzsgIzhGMzgKK+i8uSA+IGbDuTsgIzhGMzkKK+i8uiA+IHrEqzsgIzhGM0EKK+i8uyA+IGbDujsgIzhGM0IKK+i8vCA+IHfEk247ICM4RjNDCivovL0gPiBiw6huOyAjOEYzRAor6Ly+ID4gemjEg247ICM4RjNFCivovL8gPiB5w7o7ICM4RjNGCivovYAgPiB3xJNuOyAjOEY0MAor6L2BID4gdMSBbzsgIzhGNDEKK+i9giA+IGfFrTsgIzhGNDIKK+i9gyA+IHpoxJNuOyAjOEY0Mwor6L2EID4geGnDoTsgIzhGNDQKK+i9hSA+IHl1w6FuOyAjOEY0NQor6L2GID4gbMO5OyAjOEY0Ngor6L2HID4gasSrdTsgIzhGNDcKK+i9iCA+IGNow6FvOyAjOEY0OAor6L2JID4gemh1xINuOyAjOEY0OQor6L2KID4gd8OoaTsgIzhGNEEKK+i9iyA+IGjDum47ICM4RjRCCivovY0gPiBjaMOoOyAjOEY0RAor6L2OID4gamnDoG87ICM4RjRFCivovY8gPiB6aMOgbjsgIzhGNEYKK+i9kCA+IHDDujsgIzhGNTAKK+i9kSA+IGzEg287ICM4RjUxCivovZIgPiBmw6luOyAjOEY1Mgor6L2TID4gZsSBbjsgIzhGNTMKK+i9lCA+IGzDrW47ICM4RjU0CivovZUgPiBnw6k7ICM4RjU1CivovZYgPiBzw6g7ICM4RjU2CivovZcgPiBrxINuOyAjOEY1Nwor6L2YID4gaHXDoG47ICM4RjU4CivovZkgPiB5xK07ICM4RjU5CivovZogPiBqw607ICM4RjVBCivovZsgPiBkw7lpOyAjOEY1Qgor6L2cID4gw6lyOyAjOEY1Qwor6L2dID4gecO6OyAjOEY1RAor6L2eID4geGnDoG47ICM4RjVFCivovZ8gPiBoxY1uZzsgIzhGNUYKK+i9oCA+IGzElWk7ICM4RjYwCivovaEgPiBww6hpOyAjOEY2MQor6L2iID4gbMOsOyAjOEY2Mgor6L2jID4gbMOsOyAjOEY2Mwor6L2kID4gbMO6OyAjOEY2NAor6L2lID4gbMOsbjsgIzhGNjUKK+i9piA+IGNoxJM7ICM4RjY2CivovacgPiB5w6A7ICM4RjY3CivovaggPiBnxa1pOyAjOEY2OAor6L2pID4geHXEgW47ICM4RjY5CivovaogPiBkw6w7ICM4RjZBCivovasgPiByw6huOyAjOEY2Qgor6L2sID4gemh1xINuOyAjOEY2Qwor6L2tID4gw6g7ICM4RjZECivova4gPiBsw7puOyAjOEY2RQor6L2vID4gcnXEg247ICM4RjZGCivovbAgPiBoxY1uZzsgIzhGNzAKK+i9sSA+IGvFqzsgIzhGNzEKK+i9siA+IGvEkzsgIzhGNzIKK+i9syA+IGzDujsgIzhGNzMKK+i9tCA+IHpow7N1OyAjOEY3NAor6L21ID4gemjErTsgIzhGNzUKK+i9tiA+IHnDrDsgIzhGNzYKK+i9tyA+IGjFqzsgIzhGNzcKK+i9uCA+IHpoxJVuOyAjOEY3OAor6L25ID4gbMOsOyAjOEY3OQor6L26ID4gecOhbzsgIzhGN0EKK+i9uyA+IHHEq25nOyAjOEY3Qgor6L28ID4gc2jDrDsgIzhGN0MKK+i9vSA+IHrDoGk7ICM4RjdECivovb4gPiB6aMOsOyAjOEY3RQor6L2/ID4gamnDoG87ICM4RjdGCivovoAgPiB6aMWNdTsgIzhGODAKK+i+gSA+IHF1w6FuOyAjOEY4MQor6L6CID4gbMO5OyAjOEY4Mgor6L6DID4gamnDoG87ICM4RjgzCivovoQgPiB6aMOpOyAjOEY4NAor6L6FID4gZsWtOyAjOEY4NQor6L6GID4gbGnDoG5nOyAjOEY4Ngor6L6HID4gbmnEg247ICM4Rjg3CivovoggPiBiw6hpOyAjOEY4OAor6L6JID4gaMWraTsgIzhGODkKK+i+iiA+IGfFrW47ICM4RjhBCivovosgPiB3xINuZzsgIzhGOEIKK+i+jCA+IGxpw6FuZzsgIzhGOEMKK+i+jSA+IGNow7lvOyAjOEY4RAor6L6OID4gesSrOyAjOEY4RQor6L6PID4gY8OydTsgIzhGOEYKK+i+kCA+IGbDujsgIzhGOTAKK+i+kSA+IGrDrTsgIzhGOTEKK+i+kiA+IHfEk247ICM4RjkyCivovpMgPiBzaMWrOyAjOEY5Mwor6L6UID4gcMOoaTsgIzhGOTQKK+i+lSA+IHl1w6FuOyAjOEY5NQor6L6WID4geGnDoTsgIzhGOTYKK+i+lyA+IHpoxINuOyAjOEY5Nwor6L6YID4gbMO5OyAjOEY5OAor6L6ZID4gY2jDqDsgIzhGOTkKK+i+miA+IGzDrW47ICM4RjlBCivovpsgPiB4xKtuOyAjOEY5Qgor6L6cID4gZ8WrOyAjOEY5Qwor6L6dID4gY8OtOyAjOEY5RAor6L6eID4gY8OtOyAjOEY5RQor6L6fID4gcMOsOyAjOEY5Rgor6L6gID4gesO5aTsgIzhGQTAKK+i+oSA+IGJpw6BuOyAjOEZBMQor6L6iID4gbMOgOyAjOEZBMgor6L6jID4gbMOgOyAjOEZBMwor6L6kID4gY8OtOyAjOEZBNAor6L6lID4geHXEkzsgIzhGQTUKK+i+piA+IGLDoG47ICM4RkE2CivovqcgPiBiacOgbjsgIzhGQTcKK+i+qCA+IGJpw6BuOyAjOEZBOAor6L6pID4gYmnDoG47ICM4RkE5CivovqsgPiBiacOgbjsgIzhGQUIKK+i+rCA+IGLEgW47ICM4RkFDCivovq0gPiBjw607ICM4RkFECivovq4gPiBiacOgbjsgIzhGQUUKK+i+ryA+IGJpw6BuOyAjOEZBRgor6L6wID4gY2jDqW47ICM4RkIwCivovrEgPiByw7k7ICM4RkIxCivovrIgPiBuw7NuZzsgIzhGQjIKK+i+syA+IG7Ds25nOyAjOEZCMwor6L60ID4gemjElW47ICM4RkI0CivovrUgPiBjaMO5bzsgIzhGQjUKK+i+tiA+IGNow7lvOyAjOEZCNgor6L64ID4gcsOpbmc7ICM4RkI4CivovrkgPiBiacSBbjsgIzhGQjkKK+i+uiA+IGJpxIFuOyAjOEZCQQor6L69ID4gbGnDoW87ICM4RkJECivovr4gPiBkw6E7ICM4RkJFCivovr8gPiBjaMSBbjsgIzhGQkYKK+i/gCA+IGfEgW47ICM4RkMwCivov4EgPiBxacSBbjsgIzhGQzEKK+i/giA+IHnFqzsgIzhGQzIKK+i/gyA+IHnFqzsgIzhGQzMKK+i/hCA+IHHDrDsgIzhGQzQKK+i/hSA+IHjDuW47ICM4RkM1Civov4YgPiB5xK07ICM4RkM2Civov4cgPiBnw7lvOyAjOEZDNwor6L+IID4gbcOgaTsgIzhGQzgKK+i/iSA+IHHDrTsgIzhGQzkKK+i/iiA+IHrEgTsgIzhGQ0EKK+i/iyA+IHfDoG5nOyAjOEZDQgor6L+MID4gamlhOyAjOEZDQwor6L+NID4gemjFq247ICM4RkNECivov44gPiB5w61uZzsgIzhGQ0UKK+i/jyA+IHTDrDsgIzhGQ0YKK+i/kCA+IHnDuW47ICM4RkQwCivov5EgPiBqw6xuOyAjOEZEMQor6L+SID4gaMOhbmc7ICM4RkQyCivov5MgPiB5w6A7ICM4RkQzCivov5QgPiBmxINuOyAjOEZENAor6L+VID4gd8O5OyAjOEZENQor6L+WID4gZMOhOyAjOEZENgor6L+XID4gw6k7ICM4RkQ3Civov5ggPiBodcOhbjsgIzhGRDgKK+i/mSA+IHpow6g7ICM4RkQ5Civov5sgPiBqw6xuOyAjOEZEQgor6L+cID4geXXEg247ICM4RkRDCivov50gPiB3w6lpOyAjOEZERAor6L+eID4gbGnDoW47ICM4RkRFCivov58gPiBjaMOtOyAjOEZERgor6L+gID4gY2jDqDsgIzhGRTAKK+i/oSA+IG7DrDsgIzhGRTEKK+i/oiA+IHRpw6FvOyAjOEZFMgor6L+jID4gemjDrDsgIzhGRTMKK+i/pCA+IHnErTsgIzhGRTQKK+i/pSA+IGrErW9uZzsgIzhGRTUKK+i/piA+IGppxIE7ICM4RkU2Civov6cgPiBjaMOpbjsgIzhGRTcKK+i/qCA+IGTDoGk7ICM4RkU4Civov6kgPiDElXI7ICM4RkU5Civov6ogPiBkw607ICM4RkVBCivov6sgPiBww7I7ICM4RkVCCivov6wgPiB3xINuZzsgIzhGRUMKK+i/rSA+IGRpw6k7ICM4RkVECivov64gPiB6w6k7ICM4RkVFCivov68gPiB0w6FvOyAjOEZFRgor6L+wID4gc2jDuTsgIzhGRjAKK+i/sSA+IHTDum87ICM4RkYxCivov7MgPiBqw6xuZzsgIzhGRjMKK+i/tCA+IGjDumk7ICM4RkY0Civov7UgPiB0w7NuZzsgIzhGRjUKK+i/tiA+IHnDsnU7ICM4RkY2Civov7cgPiBtw607ICM4RkY3Civov7ggPiBiw6huZzsgIzhGRjgKK+i/uSA+IGrEqzsgIzhGRjkKK+i/uiA+IG7Eg2k7ICM4RkZBCivov7sgPiB5w607ICM4RkZCCivov7wgPiBqacOpOyAjOEZGQwor6L+9ID4gemjFq2k7ICM4RkZECivov74gPiBsacOoOyAjOEZGRQor6L+/ID4geMO5bjsgIzhGRkYKK+mAgCA+IHTDuWk7ICM5MDAwCivpgIEgPiBzw7JuZzsgIzkwMDEKK+mAgiA+IGd1xIE7ICM5MDAyCivpgIMgPiB0w6FvOyAjOTAwMwor6YCEID4gcMOhbmc7ICM5MDA0CivpgIUgPiBow7J1OyAjOTAwNQor6YCGID4gbsOsOyAjOTAwNgor6YCHID4gZMO5bjsgIzkwMDcKK+mAiCA+IGrErW9uZzsgIzkwMDgKK+mAiSA+IHh1xINuOyAjOTAwOQor6YCKID4geMO5bjsgIzkwMEEKK+mAiyA+IGLFqzsgIzkwMEIKK+mAjCA+IHnDs3U7ICM5MDBDCivpgI0gPiB4acSBbzsgIzkwMEQKK+mAjiA+IHHDrXU7ICM5MDBFCivpgI8gPiB0w7J1OyAjOTAwRgor6YCQID4gemjDujsgIzkwMTAKK+mAkSA+IHHDrXU7ICM5MDExCivpgJIgPiBkw6w7ICM5MDEyCivpgJMgPiBkw6w7ICM5MDEzCivpgJQgPiB0w7o7ICM5MDE0CivpgJUgPiBqw6xuZzsgIzkwMTUKK+mAliA+IHTDrDsgIzkwMTYKK+mAlyA+IGTDsnU7ICM5MDE3CivpgJggPiB5xK07ICM5MDE4CivpgJkgPiB6aMOoOyAjOTAxOQor6YCaID4gdMWNbmc7ICM5MDFBCivpgJsgPiBndcOgbmc7ICM5MDFCCivpgJwgPiB3w7k7ICM5MDFDCivpgJ0gPiBzaMOsOyAjOTAxRAor6YCeID4gY2jElW5nOyAjOTAxRQor6YCfID4gc8O5OyAjOTAxRgor6YCgID4gesOgbzsgIzkwMjAKK+mAoSA+IHHFq247ICM5MDIxCivpgKIgPiBmw6luZzsgIzkwMjIKK+mAoyA+IGxpw6FuOyAjOTAyMwor6YCkID4gc8O5bzsgIzkwMjQKK+mApSA+IGjDumk7ICM5MDI1CivpgKYgPiBsxK07ICM5MDI2CivpgKggPiBsw6FpOyAjOTAyOAor6YCpID4gYsOobjsgIzkwMjkKK+mAqiA+IGPDuW87ICM5MDJBCivpgKsgPiBqdcOpOyAjOTAyQgor6YCsID4gYsOobmc7ICM5MDJDCivpgK0gPiBodcOgbjsgIzkwMkQKK+mAriA+IGTDoGk7ICM5MDJFCivpgK8gPiBsw7k7ICM5MDJGCivpgLAgPiB5w7N1OyAjOTAzMAor6YCxID4gemjFjXU7ICM5MDMxCivpgLIgPiBqw6xuOyAjOTAzMgor6YCzID4gecO5OyAjOTAzMwor6YC0ID4gY2jDuW87ICM5MDM0CivpgLUgPiBrw7ppOyAjOTAzNQor6YC2ID4gd8STaTsgIzkwMzYKK+mAtyA+IHTDrDsgIzkwMzcKK+mAuCA+IHnDrDsgIzkwMzgKK+mAuSA+IGTDoTsgIzkwMzkKK+mAuiA+IHl1xINuOyAjOTAzQQor6YC7ID4gbMO6bzsgIzkwM0IKK+mAvCA+IGLEqzsgIzkwM0MKK+mAvSA+IG7DuW87ICM5MDNECivpgL4gPiB5w7o7ICM5MDNFCivpgL8gPiBkw6BuZzsgIzkwM0YKK+mBgCA+IHPDumk7ICM5MDQwCivpgYEgPiBkw7luOyAjOTA0MQor6YGCID4gc8O5aTsgIzkwNDIKK+mBgyA+IHnEg247ICM5MDQzCivpgYQgPiBjaHXDoW47ICM5MDQ0CivpgYUgPiBjaMOtOyAjOTA0NQor6YGGID4gdMOtOyAjOTA0Ngor6YGHID4gecO5OyAjOTA0Nwor6YGIID4gc2jDrTsgIzkwNDgKK+mBiSA+IHpoxJNuOyAjOTA0OQor6YGKID4gecOzdTsgIzkwNEEKK+mBiyA+IHnDuW47ICM5MDRCCivpgYwgPiDDqDsgIzkwNEMKK+mBjSA+IGJpw6BuOyAjOTA0RAor6YGOID4gZ8O5bzsgIzkwNEUKK+mBjyA+IMOoOyAjOTA0Rgor6YGQID4geGnDoTsgIzkwNTAKK+mBkSA+IGh1w6FuZzsgIzkwNTEKK+mBkiA+IHHDrXU7ICM5MDUyCivpgZMgPiBkw6BvOyAjOTA1Mwor6YGUID4gZMOhOyAjOTA1NAor6YGVID4gd8OpaTsgIzkwNTUKK+mBlyA+IHnDrTsgIzkwNTcKK+mBmCA+IGfDsnU7ICM5MDU4CivpgZkgPiB5w6FvOyAjOTA1OQor6YGaID4gY2jDuTsgIzkwNUEKK+mBmyA+IGzDrXU7ICM5MDVCCivpgZwgPiB4w7luOyAjOTA1Qwor6YGdID4gdMOgOyAjOTA1RAor6YGeID4gZMOsOyAjOTA1RQor6YGfID4gY2jDrTsgIzkwNUYKK+mBoCA+IHl1xINuOyAjOTA2MAor6YGhID4gc8O5OyAjOTA2MQor6YGiID4gdMOgOyAjOTA2Mgor6YGjID4gcWnEg247ICM5MDYzCivpgaUgPiB5w6FvOyAjOTA2NQor6YGmID4gZ3XDoG47ICM5MDY2CivpgacgPiB6aMSBbmc7ICM5MDY3CivpgaggPiDDoW87ICM5MDY4CivpgakgPiBzaMOsOyAjOTA2OQor6YGqID4gY8OoOyAjOTA2QQor6YGrID4gY2jDrDsgIzkwNkIKK+mBrCA+IHPDuTsgIzkwNkMKK+mBrSA+IHrEgW87ICM5MDZECivpga4gPiB6aMSTOyAjOTA2RQor6YGvID4gZMO5bjsgIzkwNkYKK+mBsCA+IGTDrDsgIzkwNzAKK+mBsSA+IGzDs3U7ICM5MDcxCivpgbIgPiBjaMOtOyAjOTA3Mgor6YGzID4gY8WrbzsgIzkwNzMKK+mBtCA+IGzDrW47ICM5MDc0CivpgbUgPiB6xatuOyAjOTA3NQor6YG2ID4gcsOgbzsgIzkwNzYKK+mBtyA+IHFpxIFuOyAjOTA3Nwor6YG4ID4geHXEg247ICM5MDc4CivpgbkgPiB5w7k7ICM5MDc5CivpgbogPiB5w607ICM5MDdBCivpgbsgPiB3w7k7ICM5MDdCCivpgbwgPiBsacOhbzsgIzkwN0MKK+mBvSA+IGrDuTsgIzkwN0QKK+mBviA+IHNow6w7ICM5MDdFCivpgb8gPiBiw6w7ICM5MDdGCivpgoAgPiB5xIFvOyAjOTA4MAor6YKBID4gbcOgaTsgIzkwODEKK+mCgiA+IHhpw6g7ICM5MDgyCivpgoMgPiBzw7lpOyAjOTA4Mwor6YKEID4gaHXDoW47ICM5MDg0CivpgoUgPiB6aMSBbjsgIzkwODUKK+mChiA+IHTDqW5nOyAjOTA4Ngor6YKHID4gxJVyOyAjOTA4Nwor6YKIID4gbWnEg287ICM5MDg4CivpgokgPiBiacSBbjsgIzkwODkKK+mCiiA+IGJpxIFuOyAjOTA4QQor6YKLID4gbMOhOyAjOTA4Qgor6YKMID4gbMOtOyAjOTA4Qwor6YKNID4geXXDoW47ICM5MDhECivpgo4gPiB5w6FvOyAjOTA4RQor6YKPID4gbMO6bzsgIzkwOEYKK+mCkCA+IGzErTsgIzkwOTAKK+mCkSA+IHnDrDsgIzkwOTEKK+mCkiA+IHTDrW5nOyAjOTA5Mgor6YKTID4gZMOobmc7ICM5MDkzCivpgpQgPiBxxK07ICM5MDk0CivpgpUgPiB5xY1uZzsgIzkwOTUKK+mCliA+IHNoxIFuOyAjOTA5Ngor6YKXID4gaMOhbjsgIzkwOTcKK+mCmCA+IHnDujsgIzkwOTgKK+mCmSA+IG3DoW5nOyAjOTA5OQor6YKaID4gcsO6OyAjOTA5QQor6YKbID4gccOtb25nOyAjOTA5Qgor6YKdID4ga3XDoG5nOyAjOTA5RAor6YKeID4gZsWrOyAjOTA5RQor6YKfID4ga8Ogbmc7ICM5MDlGCivpgqAgPiBixKtuOyAjOTBBMAor6YKhID4gZsSBbmc7ICM5MEExCivpgqIgPiB4w61uZzsgIzkwQTIKK+mCoyA+IG7DoDsgIzkwQTMKK+mCpCA+IHhpbjsgIzkwQTQKK+mCpSA+IHNoxJVuOyAjOTBBNQor6YKmID4gYsSBbmc7ICM5MEE2CivpgqcgPiB5dcOhbjsgIzkwQTcKK+mCqCA+IGPFq247ICM5MEE4CivpgqkgPiBoxa1vOyAjOTBBOQor6YKqID4geGnDqTsgIzkwQUEKK+mCqyA+IGLEgW5nOyAjOTBBQgor6YKsID4gd8WrOyAjOTBBQwor6YKtID4gasO5OyAjOTBBRAor6YKuID4gecOzdTsgIzkwQUUKK+mCryA+IGjDoW47ICM5MEFGCivpgrAgPiB0w6FpOyAjOTBCMAor6YKxID4gccSrdTsgIzkwQjEKK+mCsiA+IGLDrDsgIzkwQjIKK+mCsyA+IHDDqWk7ICM5MEIzCivpgrQgPiBixK1uZzsgIzkwQjQKK+mCtSA+IHNow6BvOyAjOTBCNQor6YK2ID4gYsOoaTsgIzkwQjYKK+mCtyA+IHfEgzsgIzkwQjcKK+mCuCA+IGTErTsgIzkwQjgKK+mCuSA+IHrFjXU7ICM5MEI5CivpgrogPiB5w6g7ICM5MEJBCivpgrsgPiBsw61uOyAjOTBCQgor6YK8ID4ga3XEgW5nOyAjOTBCQwor6YK9ID4gZ8WraTsgIzkwQkQKK+mCviA+IHpoxas7ICM5MEJFCivpgr8gPiBzaMSrOyAjOTBCRgor6YOAID4ga8WrOyAjOTBDMAor6YOBID4gecO5OyAjOTBDMQor6YOCID4gZ8SBaTsgIzkwQzIKK+mDgyA+IGfDqTsgIzkwQzMKK+mDhCA+IHjDrDsgIzkwQzQKK+mDhSA+IHpow6w7ICM5MEM1Civpg4YgPiBqw607ICM5MEM2Civpg4cgPiB4w7puOyAjOTBDNwor6YOIID4gaMOydTsgIzkwQzgKK+mDiSA+IHjDrW5nOyAjOTBDOQor6YOKID4gamnEgW87ICM5MENBCivpg4sgPiB4w607ICM5MENCCivpg4wgPiBnxatpOyAjOTBDQwor6YONID4gbsO6bzsgIzkwQ0QKK+mDjiA+IGzDoW5nOyAjOTBDRQor6YOPID4gamnDoTsgIzkwQ0YKK+mDkCA+IGt1w6BpOyAjOTBEMAor6YORID4gemjDqG5nOyAjOTBEMQor6YOTID4gecO5bjsgIzkwRDMKK+mDlCA+IHnDoW47ICM5MEQ0Civpg5UgPiBjaMOpbmc7ICM5MEQ1Civpg5YgPiBkxY11OyAjOTBENgor6YOXID4gY2jEqzsgIzkwRDcKK+mDmCA+IGzHmjsgIzkwRDgKK+mDmSA+IGbFrTsgIzkwRDkKK+mDmiA+IHfDujsgIzkwREEKK+mDmyA+IGbDujsgIzkwREIKK+mDnCA+IGfDoG87ICM5MERDCivpg50gPiBoxINvOyAjOTBERAor6YOeID4gbMOhbmc7ICM5MERFCivpg58gPiBqacOhOyAjOTBERgor6YOgID4gZ8SVbmc7ICM5MEUwCivpg6EgPiBqw7luOyAjOTBFMQor6YOiID4gecStbmc7ICM5MEUyCivpg6MgPiBiw7M7ICM5MEUzCivpg6QgPiB4w6w7ICM5MEU0Civpg6UgPiBiw6hpOyAjOTBFNQor6YOmID4gbMOsOyAjOTBFNgor6YOnID4gecO6bjsgIzkwRTcKK+mDqCA+IGLDuTsgIzkwRTgKK+mDqSA+IHhpw6FvOyAjOTBFOQor6YOqID4gccSrOyAjOTBFQQor6YOrID4gcMOtOyAjOTBFQgor6YOsID4gccSrbmc7ICM5MEVDCivpg60gPiBnxatvOyAjOTBFRAor6YOuID4gemhvdTsgIzkwRUUKK+mDryA+IHTDoW47ICM5MEVGCivpg7AgPiB6xY11OyAjOTBGMAor6YOxID4gcMOtbmc7ICM5MEYxCivpg7IgPiBsw6FpOyAjOTBGMgor6YOzID4gbsOtOyAjOTBGMwor6YO0ID4gY2jEk247ICM5MEY0Civpg7UgPiB5w7N1OyAjOTBGNQor6YO2ID4gYsO5OyAjOTBGNgor6YO3ID4geGnEgW5nOyAjOTBGNwor6YO4ID4gZMSBbjsgIzkwRjgKK+mDuSA+IGrDujsgIzkwRjkKK+mDuiA+IHnFjW5nOyAjOTBGQQor6YO7ID4gcWnEgW87ICM5MEZCCivpg7wgPiB5xKs7ICM5MEZDCivpg70gPiBkxas7ICM5MEZECivpg74gPiB5xINuOyAjOTBGRQor6YO/ID4gbcOpaTsgIzkwRkYKK+mEgCA+IHLDuW87ICM5MTAwCivphIEgPiBiw6hpOyAjOTEwMQor6YSCID4gw6g7ICM5MTAyCivphIMgPiB5w7o7ICM5MTAzCivphIQgPiBqdcOgbjsgIzkxMDQKK+mEhSA+IHnFrTsgIzkxMDUKK+mEhiA+IHnDuW47ICM5MTA2CivphIcgPiBow7J1OyAjOTEwNwor6YSIID4ga8O6aTsgIzkxMDgKK+mEiSA+IHhpxIFuZzsgIzkxMDkKK+mEiiA+IHhpxIFuZzsgIzkxMEEKK+mEiyA+IHPFjXU7ICM5MTBCCivphIwgPiB0w6FuZzsgIzkxMEMKK+mEjSA+IG3DrW5nOyAjOTEwRAor6YSOID4geMOsOyAjOTEwRQor6YSPID4gcsO5OyAjOTEwRgor6YSQID4gY2jDuTsgIzkxMTAKK+mEkSA+IHrEqzsgIzkxMTEKK+mEkiA+IHrFjXU7ICM5MTEyCivphJMgPiBqw7o7ICM5MTEzCivphJQgPiB3xas7ICM5MTE0CivphJUgPiB4acSBbmc7ICM5MTE1CivphJYgPiB5w7puOyAjOTExNgor6YSXID4gaMOgbzsgIzkxMTcKK+mEmCA+IHnFjW5nOyAjOTExOAor6YSZID4gYsStOyAjOTExOQor6YSaID4gbcOyOyAjOTExQQor6YSbID4gY2jDoW87ICM5MTFCCivphJwgPiBmxas7ICM5MTFDCivphJ0gPiBsacSDbzsgIzkxMUQKK+mEniA+IHnDrW47ICM5MTFFCivphJ8gPiB6aHXEgW47ICM5MTFGCivphKAgPiBow7k7ICM5MTIwCivphKEgPiBxacSBbzsgIzkxMjEKK+mEoiA+IHnEgW47ICM5MTIyCivphKMgPiB6aMSBbmc7ICM5MTIzCivphKQgPiBmw6BuOyAjOTEyNAor6YSlID4gcWnEgW87ICM5MTI1CivphKYgPiB4xa07ICM5MTI2CivphKcgPiBkw6huZzsgIzkxMjcKK+mEqCA+IGLDrDsgIzkxMjgKK+mEqSA+IHjDrW47ICM5MTI5CivphKogPiBiw6w7ICM5MTJBCivphKsgPiBjw6luZzsgIzkxMkIKK+mErCA+IHfDqWk7ICM5MTJDCivphK0gPiB6aMOobmc7ICM5MTJECivphK4gPiBtw6BvOyAjOTEyRQor6YSvID4gc2jDoG47ICM5MTJGCivphLAgPiBsw61uOyAjOTEzMAor6YSxID4gcMOzOyAjOTEzMQor6YSyID4gZMSBbjsgIzkxMzIKK+mEsyA+IG3DqW5nOyAjOTEzMwor6YS0ID4gecOoOyAjOTEzNAor6YS1ID4gY8SBbzsgIzkxMzUKK+mEtiA+IGt1w6BpOyAjOTEzNgor6YS3ID4gZsSTbmc7ICM5MTM3CivphLggPiBtw6luZzsgIzkxMzgKK+mEuSA+IHrFjXU7ICM5MTM5CivphLogPiBrdcOgbmc7ICM5MTNBCivphLsgPiBsacOhbjsgIzkxM0IKK+mEvCA+IHrDoG47ICM5MTNDCivphL0gPiBjaMOhbjsgIzkxM0QKK+mEviA+IHnFjXU7ICM5MTNFCivphL8gPiBxw607ICM5MTNGCivphYAgPiB5xIFuOyAjOTE0MAor6YWBID4gY2jDoW47ICM5MTQxCivphYIgPiB6w6BuOyAjOTE0Mgor6YWDID4gbMOtbmc7ICM5MTQzCivphYQgPiBodcSBbjsgIzkxNDQKK+mFhSA+IHjEqzsgIzkxNDUKK+mFhiA+IGbEk25nOyAjOTE0Ngor6YWHID4gesOgbjsgIzkxNDcKK+mFiCA+IGzDrDsgIzkxNDgKK+mFiSA+IHnFj3U7ICM5MTQ5CivphYogPiBkxK1uZzsgIzkxNEEKK+mFiyA+IHHDrXU7ICM5MTRCCivphYwgPiB6aMO6bzsgIzkxNEMKK+mFjSA+IHDDqGk7ICM5MTRECivphY4gPiB6aMOydTsgIzkxNEUKK+mFjyA+IHnDrTsgIzkxNEYKK+mFkCA+IGjEg25nOyAjOTE1MAor6YWRID4gecWtOyAjOTE1MQor6YWSID4gasStdTsgIzkxNTIKK+mFkyA+IHnEg247ICM5MTUzCivphZQgPiB6w7lpOyAjOTE1NAor6YWVID4gbcOhbzsgIzkxNTUKK+mFliA+IGTEgW47ICM5MTU2CivphZcgPiB4w7k7ICM5MTU3CivphZggPiB0w7N1OyAjOTE1OAor6YWZID4gemjEk247ICM5MTU5CivphZogPiBmxJNuOyAjOTE1QQor6YWdID4gecO5bjsgIzkxNUQKK+mFniA+IHTDoGk7ICM5MTVFCivphZ8gPiB0acSBbjsgIzkxNUYKK+mFoCA+IHFpxIM7ICM5MTYwCivphaEgPiB0w7pvOyAjOTE2MQor6YWiID4gesO5bzsgIzkxNjIKK+mFoyA+IGjEgW47ICM5MTYzCivphaQgPiBnxas7ICM5MTY0CivphaUgPiBzxas7ICM5MTY1CivphaYgPiBww7I7ICM5MTY2CivphacgPiBjaMOzdTsgIzkxNjcKK+mFqCA+IHrDoGk7ICM5MTY4CivphakgPiBtw61uZzsgIzkxNjkKK+mFqiA+IGzDuW87ICM5MTZBCivphasgPiBjaMO5bzsgIzkxNkIKK+mFrCA+IGNow7N1OyAjOTE2Qwor6YWtID4gecOydTsgIzkxNkQKK+mFriA+IHTDs25nOyAjOTE2RQor6YWvID4gemjErTsgIzkxNkYKK+mFsCA+IHhpxIFuOyAjOTE3MAor6YWxID4gamnDoG5nOyAjOTE3MQor6YWyID4gY2jDqW5nOyAjOTE3Mgor6YWzID4gecOsbjsgIzkxNzMKK+mFtCA+IHTDujsgIzkxNzQKK+mFtSA+IHhpw6BvOyAjOTE3NQor6YW2ID4gbcOpaTsgIzkxNzYKK+mFtyA+IGvDuTsgIzkxNzcKK+mFuCA+IHN1xIFuOyAjOTE3OAor6YW5ID4gbMOoaTsgIzkxNzkKK+mFuiA+IHDDujsgIzkxN0EKK+mFuyA+IHrDuWk7ICM5MTdCCivphbwgPiBoxINpOyAjOTE3Qwor6YW9ID4gecOgbjsgIzkxN0QKK+mFviA+IHjErTsgIzkxN0UKK+mFvyA+IG5pw6BuZzsgIzkxN0YKK+mGgCA+IHfDqWk7ICM5MTgwCivphoEgPiBsw7k7ICM5MTgxCivphoIgPiBsxINuOyAjOTE4Mgor6YaDID4gecSBbjsgIzkxODMKK+mGhCA+IHTDoW87ICM5MTg0CivphoUgPiBwxJNpOyAjOTE4NQor6YaGID4gemjEg247ICM5MTg2CivphocgPiBjaMO6bjsgIzkxODcKK+mGiCA+IHTDoW47ICM5MTg4CivphokgPiB6w7lpOyAjOTE4OQor6YaKID4gY2jDuW87ICM5MThBCivphosgPiBjw7k7ICM5MThCCivphowgPiBrxatuOyAjOTE4Qwor6YaNID4gdMOtOyAjOTE4RAor6YaOID4gbWnDoW47ICM5MThFCivpho8gPiBkxas7ICM5MThGCivphpAgPiBow7o7ICM5MTkwCivphpEgPiB4xa07ICM5MTkxCivphpIgPiB4xK1uZzsgIzkxOTIKK+mGkyA+IHTEg247ICM5MTkzCivphpQgPiBqxKt1OyAjOTE5NAor6YaVID4gY2jDum47ICM5MTk1CivphpYgPiB5w7luOyAjOTE5Ngor6YaXID4gcMOyOyAjOTE5Nwor6YaYID4ga8OoOyAjOTE5OAor6YaZID4gc8WNdTsgIzkxOTkKK+mGmiA+IG3DrTsgIzkxOUEKK+mGmyA+IHF1w6FuOyAjOTE5Qgor6YacID4gY2jFj3U7ICM5MTlDCivphp0gPiBjw7pvOyAjOTE5RAor6YaeID4gecO5bjsgIzkxOUUKK+mGnyA+IHnDsm5nOyAjOTE5Rgor6YagID4gw6BuZzsgIzkxQTAKK+mGoSA+IHpow6A7ICM5MUExCivphqIgPiBoxINpOyAjOTFBMgor6YajID4gdMOhbmc7ICM5MUEzCivphqQgPiBqacOgbmc7ICM5MUE0CivphqUgPiBwacSDbzsgIzkxQTUKK+mGpiA+IHNoxINuOyAjOTFBNgor6YanID4gecO5OyAjOTFBNwor6YaoID4gbMOtOyAjOTFBOAor6YapID4gesOhbzsgIzkxQTkKK+mGqiA+IGzDoW87ICM5MUFBCivphqsgPiB5xKs7ICM5MUFCCivphqwgPiBqacOgbmc7ICM5MUFDCivphq0gPiBwxas7ICM5MUFECivphq4gPiBqacOgbzsgIzkxQUUKK+mGryA+IHjEqzsgIzkxQUYKK+mGsCA+IHTDoW47ICM5MUIwCivphrEgPiBww7I7ICM5MUIxCivphrIgPiBuw7NuZzsgIzkxQjIKK+mGsyA+IHnDrDsgIzkxQjMKK+mGtCA+IGzErTsgIzkxQjQKK+mGtSA+IGrDuTsgIzkxQjUKK+mGtiA+IGppw6BvOyAjOTFCNgor6Ya3ID4gecOsOyAjOTFCNwor6Ya4ID4gbmnDoG5nOyAjOTFCOAor6Ya5ID4gcsO6OyAjOTFCOQor6Ya6ID4geMWrbjsgIzkxQkEKK+mGuyA+IGNow7N1OyAjOTFCQgor6Ya8ID4gecOgbjsgIzkxQkMKK+mGvSA+IGzDrW5nOyAjOTFCRAor6Ya+ID4gbcOtOyAjOTFCRQor6Ya/ID4gbcOtOyAjOTFCRgor6YeAID4gbmnDoG5nOyAjOTFDMAor6YeBID4geMOsbjsgIzkxQzEKK+mHgiA+IGppw6BvOyAjOTFDMgor6YeDID4geMStOyAjOTFDMwor6YeEID4gbcOtOyAjOTFDNAor6YeFID4gecOgbjsgIzkxQzUKK+mHhiA+IGJpw6BuOyAjOTFDNgor6YeHID4gY8SDaTsgIzkxQzcKK+mHiCA+IHNow6w7ICM5MUM4Civph4kgPiB5w7J1OyAjOTFDOQor6YeKID4gc2jDrDsgIzkxQ0EKK+mHiyA+IHNow6w7ICM5MUNCCivph4wgPiBsxK07ICM5MUNDCivph40gPiB6aMOybmc7ICM5MUNECivph44gPiB5xJU7ICM5MUNFCivph48gPiBsacOgbmc7ICM5MUNGCivph5AgPiBsw607ICM5MUQwCivph5EgPiBqxKtuOyAjOTFEMQor6YeSID4gasSrbicgJ3rDrCcgJ3DDoW5nOyAjOTFEMgor6YeTID4gccOtdTsgIzkxRDMKK+mHlCA+IHnErTsgIzkxRDQKK+mHlSA+IGRpxINvOyAjOTFENQor6YeWID4gZMSBbzsgIzkxRDYKK+mHlyA+IHpoxIFvOyAjOTFENwor6YeYID4gZMSrbmc7ICM5MUQ4Civph5kgPiBww7I7ICM5MUQ5Civph5ogPiBxw611OyAjOTFEQQor6YebID4gaMOpOyAjOTFEQgor6YecID4gZsWtOyAjOTFEQwor6YedID4gemjEk247ICM5MURECivph54gPiB6aMOtOyAjOTFERQor6YefID4gYsSBOyAjOTFERgor6YegID4gbHXDoG47ICM5MUUwCivph6EgPiBmxa07ICM5MUUxCivph6IgPiBuw6FpOyAjOTFFMgor6YejID4gZGnDoG87ICM5MUUzCivph6QgPiBzaMOgbjsgIzkxRTQKK+mHpSA+IHFpxINvOyAjOTFFNQor6YemID4ga8OydTsgIzkxRTYKK+mHpyA+IGNodcOgbjsgIzkxRTcKK+mHqCA+IHrErTsgIzkxRTgKK+mHqSA+IGbDoW47ICM5MUU5Civph6ogPiB5w7o7ICM5MUVBCivph6sgPiBodcOhOyAjOTFFQgor6YesID4gaMOgbjsgIzkxRUMKK+mHrSA+IGfFjW5nOyAjOTFFRAor6YeuID4gccOtOyAjOTFFRQor6YevID4gbcOhbmc7ICM5MUVGCivph7AgPiByw6w7ICM5MUYwCivph7EgPiBkw6w7ICM5MUYxCivph7IgPiBzw6w7ICM5MUYyCivph7MgPiB4w6w7ICM5MUYzCivph7QgPiB5w6w7ICM5MUY0Civph7UgPiBjaMSBaTsgIzkxRjUKK+mHtiA+IHNoxKs7ICM5MUY2Civph7cgPiB0xa07ICM5MUY3Civph7ggPiB4w6w7ICM5MUY4Civph7kgPiBux5o7ICM5MUY5Civph7ogPiBxacSBbjsgIzkxRkEKK+mHvCA+IGppw6BuOyAjOTFGQwor6Ye9ID4gcMSrOyAjOTFGRAor6Ye+ID4gecOpOyAjOTFGRQor6Ye/ID4gecOtbjsgIzkxRkYKK+mIgCA+IGLEgzsgIzkyMDAKK+mIgSA+IGbEgW5nOyAjOTIwMQor6YiCID4gY2jDqW47ICM5MjAyCivpiIMgPiB4w61uZzsgIzkyMDMKK+mIhCA+IHTFj3U7ICM5MjA0CivpiIUgPiB5dcOoOyAjOTIwNQor6YiGID4gecOhbjsgIzkyMDYKK+mIhyA+IGbFqzsgIzkyMDcKK+mIiCA+IHDEqzsgIzkyMDgKK+mIiSA+IG7DoDsgIzkyMDkKK+mIiiA+IHjEq247ICM5MjBBCivpiIsgPiDDqTsgIzkyMEIKK+mIjCA+IGp1w6k7ICM5MjBDCivpiI0gPiBkw7luOyAjOTIwRAor6YiOID4gZ8WNdTsgIzkyMEUKK+mIjyA+IHnErW47ICM5MjBGCivpiJAgPiBxacOhbjsgIzkyMTAKK+mIkSA+IGLEg247ICM5MjExCivpiJIgPiBqw607ICM5MjEyCivpiJMgPiByw6luOyAjOTIxMwor6YiUID4gY2jEgW87ICM5MjE0CivpiJUgPiBuxK11OyAjOTIxNQor6YiWID4gZsSTbjsgIzkyMTYKK+mIlyA+IHnFrW47ICM5MjE3CivpiJggPiBqxK07ICM5MjE4CivpiJkgPiBxw61uOyAjOTIxOQor6YiaID4gcMOtOyAjOTIxQQor6YibID4gZ8WrbzsgIzkyMUIKK+mInCA+IGjDs25nOyAjOTIxQwor6YidID4gecOtbjsgIzkyMUQKK+mIniA+IGrFq247ICM5MjFFCivpiJ8gPiBzaMSrOyAjOTIxRgor6YigID4gecOsOyAjOTIyMAor6YihID4gemjFjW5nOyAjOTIyMQor6YiiID4gbmnEkzsgIzkyMjIKK+mIoyA+IGfDoGk7ICM5MjIzCivpiKQgPiByw6w7ICM5MjI0CivpiKUgPiBow7pvOyAjOTIyNQor6YimID4gdMOgaTsgIzkyMjYKK+mIpyA+IGvDoG5nOyAjOTIyNwor6YisID4gZMO6bzsgIzkyMkMKK+mIrSA+IHrEqzsgIzkyMkQKK+mIriA+IG7ErTsgIzkyMkUKK+mIryA+IHTDujsgIzkyMkYKK+mIsCA+IHNow6w7ICM5MjMwCivpiLEgPiBtw61uOyAjOTIzMQor6YiyID4gZ8WrOyAjOTIzMgor6YizID4gxJM7ICM5MjMzCivpiLQgPiBsw61uZzsgIzkyMzQKK+mItSA+IGLDrG5nOyAjOTIzNQor6Yi2ID4gecOtOyAjOTIzNgor6Yi3ID4gZ8WrOyAjOTIzNwor6Yi4ID4gYsOhOyAjOTIzOAor6Yi5ID4gcMSrOyAjOTIzOQor6Yi6ID4gecO5OyAjOTIzQQor6Yi7ID4gc8OsOyAjOTIzQgor6Yi8ID4gesO6bzsgIzkyM0MKK+mIvSA+IGLDuTsgIzkyM0QKK+mIviA+IHnDs3U7ICM5MjNFCivpiL8gPiBkacOgbjsgIzkyM0YKK+mJgCA+IGppxIM7ICM5MjQwCivpiYEgPiB6aMSTbjsgIzkyNDEKK+mJgiA+IHNoxK07ICM5MjQyCivpiYMgPiBzaMOsOyAjOTI0Mwor6YmEID4gdGnElTsgIzkyNDQKK+mJhSA+IGrDuTsgIzkyNDUKK+mJhiA+IHpoxIFuOyAjOTI0Ngor6YmHID4gc2jEqzsgIzkyNDcKK+mJiCA+IHNow6k7ICM5MjQ4CivpiYkgPiB4dcOgbjsgIzkyNDkKK+mJiiA+IHpoxIFvOyAjOTI0QQor6YmLID4gYsOgbzsgIzkyNEIKK+mJjCA+IGjDqTsgIzkyNEMKK+mJjSA+IGLDrDsgIzkyNEQKK+mJjiA+IHNoxJNuZzsgIzkyNEUKK+mJjyA+IGNow7o7ICM5MjRGCivpiZAgPiBzaMOtOyAjOTI1MAor6YmRID4gYsOzOyAjOTI1MQor6YmSID4gemjDuTsgIzkyNTIKK+mJkyA+IGNow6w7ICM5MjUzCivpiZQgPiB6xIE7ICM5MjU0CivpiZUgPiBwxY07ICM5MjU1CivpiZYgPiB0w7NuZzsgIzkyNTYKK+mJlyA+IHFpw6FuOyAjOTI1Nwor6YmYID4gZsO6OyAjOTI1OAor6YmZID4gemjEg2k7ICM5MjU5CivpiZogPiBsxK11OyAjOTI1QQor6YmbID4gcWnEgW47ICM5MjVCCivpiZwgPiBmw7o7ICM5MjVDCivpiZ0gPiBsw6w7ICM5MjVECivpiZ4gPiB5dcOoOyAjOTI1RQor6YmfID4gcMSrOyAjOTI1Rgor6YmgID4gecSBbmc7ICM5MjYwCivpiaEgPiBiw6BuOyAjOTI2MQor6YmiID4gYsWNOyAjOTI2Mgor6YmjID4gamnDqTsgIzkyNjMKK+mJpCA+IGfFjXU7ICM5MjY0CivpiaUgPiBzaMO5OyAjOTI2NQor6YmmID4gemjEk25nOyAjOTI2Ngor6YmnID4gbcWtOyAjOTI2Nwor6YmoID4gbsStOyAjOTI2OAor6YmpID4gbmnEkzsgIzkyNjkKK+mJqiA+IGTDrDsgIzkyNkEKK+mJqyA+IGppxIE7ICM5MjZCCivpiawgPiBtw7k7ICM5MjZDCivpia0gPiBkw6BuOyAjOTI2RAor6YmuID4gc2jEk247ICM5MjZFCivpia8gPiB5xK07ICM5MjZGCivpibAgPiBzxKs7ICM5MjcwCivpibEgPiBrdcOgbmc7ICM5MjcxCivpibIgPiBrxIM7ICM5MjcyCivpibMgPiBixJVpOyAjOTI3Mwor6Ym0ID4gamnDoG47ICM5Mjc0CivpibUgPiB0w7NuZzsgIzkyNzUKK+mJtiA+IHjDrW5nOyAjOTI3Ngor6Ym3ID4gaMOzbmc7ICM5Mjc3CivpibggPiBqacSDbzsgIzkyNzgKK+mJuSA+IGNoxK07ICM5Mjc5CivpibogPiDDqHI7ICM5MjdBCivpibsgPiBnw6g7ICM5MjdCCivpibwgPiBixK1uZzsgIzkyN0MKK+mJvSA+IHNow6w7ICM5MjdECivpib4gPiBtw7N1OyAjOTI3RQor6Ym/ID4gamnDoTsgIzkyN0YKK+mKgCA+IHnDrW47ICM5MjgwCivpioEgPiBqxatuOyAjOTI4MQor6YqCID4gemjFjXU7ICM5MjgyCivpioMgPiBjaMOybmc7ICM5MjgzCivpioQgPiBzaMOgbmc7ICM5Mjg0CivpioUgPiB0w7NuZzsgIzkyODUKK+mKhiA+IG3DsjsgIzkyODYKK+mKhyA+IGzDqGk7ICM5Mjg3CivpioggPiBqxKs7ICM5Mjg4CivpiokgPiB5w7k7ICM5Mjg5CivpioogPiB4w7k7ICM5MjhBCivpiosgPiByw6luOyAjOTI4Qgor6YqMID4gesO5bjsgIzkyOEMKK+mKjSA+IHpow6w7ICM5MjhECivpio4gPiBxxKtvbmc7ICM5MjhFCivpio8gPiBzaMOgbjsgIzkyOEYKK+mKkCA+IGNow6w7ICM5MjkwCivpipEgPiB4acSDbjsgIzkyOTEKK+mKkiA+IHjDrW5nOyAjOTI5Mgor6YqTID4gcXXDoW47ICM5MjkzCivpipQgPiBwxKs7ICM5Mjk0CivpipUgPiB0acSVOyAjOTI5NQor6YqWID4gemjFqzsgIzkyOTYKK+mKlyA+IGjDs3U7ICM5Mjk3CivpipggPiBtw61uZzsgIzkyOTgKK+mKmSA+IGt1xIM7ICM5Mjk5CivpipogPiB5w6FvOyAjOTI5QQor6YqbID4geGnEgW47ICM5MjlCCivpipwgPiB4acOhbjsgIzkyOUMKK+mKnSA+IHjEq3U7ICM5MjlECivpip4gPiBqxatuOyAjOTI5RQor6YqfID4gY2jEgTsgIzkyOUYKK+mKoCA+IGzEg287ICM5MkEwCivpiqEgPiBqw607ICM5MkExCivpiqIgPiBwxK07ICM5MkEyCivpiqMgPiByxa07ICM5MkEzCivpiqQgPiBtxK07ICM5MkE0CivpiqUgPiB5xK07ICM5MkE1CivpiqYgPiB5xKtuOyAjOTJBNgor6YqnID4gZ3XEgW5nOyAjOTJBNwor6YqoID4gxIFuOyAjOTJBOAor6YqpID4gZGnFjXU7ICM5MkE5CivpiqogPiB5xY91OyAjOTJBQQor6YqrID4gc8OoOyAjOTJBQgor6YqsID4ga8OgbzsgIzkyQUMKK+mKrSA+IHFpw6FuOyAjOTJBRAor6YquID4gbHXDoW47ICM5MkFFCivpirAgPiDEgWk7ICM5MkIwCivpirEgPiBkacOgbzsgIzkyQjEKK+mKsiA+IGjDoG47ICM5MkIyCivpirMgPiByw7lpOyAjOTJCMwor6Yq0ID4gc2jDrDsgIzkyQjQKK+mKtSA+IGvEk25nOyAjOTJCNQor6Yq2ID4gccOtdTsgIzkyQjYKK+mKtyA+IHhpxIFvOyAjOTJCNwor6Yq4ID4gemjDqTsgIzkyQjgKK+mKuSA+IHjDrHU7ICM5MkI5CivpirogPiB6w6BuZzsgIzkyQkEKK+mKuyA+IHTDrDsgIzkyQkIKK+mKvCA+IGPDuW87ICM5MkJDCivpir0gPiBndcSBOyAjOTJCRAor6Yq+ID4gZ8WPbmc7ICM5MkJFCivpir8gPiB6aMWNbmc7ICM5MkJGCivpi4AgPiBkw7J1OyAjOTJDMAor6YuBID4gbMeaOyAjOTJDMQor6YuCID4gbcOpaTsgIzkyQzIKK+mLgyA+IGzDoW5nOyAjOTJDMwor6YuEID4gd8SDbjsgIzkyQzQKK+mLhSA+IHjEq247ICM5MkM1Civpi4YgPiB5w7puOyAjOTJDNgor6YuHID4gYsOoaTsgIzkyQzcKK+mLiCA+IHfDuTsgIzkyQzgKK+mLiSA+IHPDuTsgIzkyQzkKK+mLiiA+IHnDuTsgIzkyQ0EKK+mLiyA+IGNow6FuOyAjOTJDQgor6YuMID4gdMStbmc7ICM5MkNDCivpi40gPiBiw7M7ICM5MkNECivpi44gPiBow6BuOyAjOTJDRQor6YuPID4gamnDoTsgIzkyQ0YKK+mLkCA+IGjDs25nOyAjOTJEMAor6YuRID4gY3XEgW47ICM5MkQxCivpi5IgPiBmxJNuZzsgIzkyRDIKK+mLkyA+IGNoxIFuOyAjOTJEMwor6YuUID4gd8SDbjsgIzkyRDQKK+mLlSA+IHpow6w7ICM5MkQ1Civpi5YgPiBzxKs7ICM5MkQ2Civpi5cgPiB4dcSBbjsgIzkyRDcKK+mLmCA+IHfDujsgIzkyRDgKK+mLmSA+IHfDujsgIzkyRDkKK+mLmiA+IHRpw6FvOyAjOTJEQQor6YubID4gZ8WPbmc7ICM5MkRCCivpi5wgPiB6aMO6bzsgIzkyREMKK+mLnSA+IGzHnGU7ICM5MkRECivpi54gPiB4w61uZzsgIzkyREUKK+mLnyA+IHFpxIFuOyAjOTJERgor6YugID4gc2jDqG47ICM5MkUwCivpi6EgPiBow6FuOyAjOTJFMQor6YuiID4gbMecZTsgIzkyRTIKK+mLoyA+IHhpw6k7ICM5MkUzCivpi6QgPiBjaMO6OyAjOTJFNAor6YulID4gemjDqG5nOyAjOTJFNQor6YumID4gasO6OyAjOTJFNgor6YunID4geGnDoG47ICM5MkU3Civpi6ggPiB0acSVOyAjOTJFOAor6YupID4gbcOhbmc7ICM5MkU5Civpi6ogPiBwxas7ICM5MkVBCivpi6sgPiBsw607ICM5MkVCCivpi6wgPiBww6BuOyAjOTJFQwor6YutID4gcsO5aTsgIzkyRUQKK+mLriA+IGNow6luZzsgIzkyRUUKK+mLryA+IGfDoG87ICM5MkVGCivpi7AgPiBsxK07ICM5MkYwCivpi7EgPiB0w6g7ICM5MkYxCivpi7MgPiB6aMO5OyAjOTJGMwor6Yu1ID4gdMWrOyAjOTJGNQor6Yu2ID4gbMStdTsgIzkyRjYKK+mLtyA+IHrDuWk7ICM5MkY3Civpi7ggPiBqw7k7ICM5MkY4Civpi7kgPiBjaMSDbmc7ICM5MkY5Civpi7ogPiB5dcSBbjsgIzkyRkEKK+mLuyA+IGppw6BuOyAjOTJGQgor6Yu8ID4gZ8SBbmc7ICM5MkZDCivpi70gPiBkacOgbzsgIzkyRkQKK+mLviA+IHTDoW87ICM5MkZFCivpi78gPiBjaMOhbmc7ICM5MkZGCivpjIAgPiBsw7puOyAjOTMwMAor6YyBID4ga3XEgzsgIzkzMDEKK+mMgiA+IGzDrW5nOyAjOTMwMgor6YyDID4gYsSTaTsgIzkzMDMKK+mMhCA+IGzDuTsgIzkzMDQKK+mMhSA+IGzDrTsgIzkzMDUKK+mMhiA+IHFpxIFuZzsgIzkzMDYKK+mMhyA+IHDDs3U7ICM5MzA3CivpjIggPiBqdcOgbjsgIzkzMDgKK+mMiSA+IG3DrW47ICM5MzA5CivpjIogPiB6w7lpOyAjOTMwQQor6YyLID4gcMOpbmc7ICM5MzBCCivpjIwgPiDDoG47ICM5MzBDCivpjI0gPiBww607ICM5MzBECivpjI4gPiB4acOgbjsgIzkzMEUKK+mMjyA+IHnDoDsgIzkzMEYKK+mMkCA+IHpoxatpOyAjOTMxMAor6YyRID4gbMOoaTsgIzkzMTEKK+mMkiA+IMSBOyAjOTMxMgor6YyTID4ga8WNbmc7ICM5MzEzCivpjJQgPiB0w6A7ICM5MzE0CivpjJUgPiBrxatuOyAjOTMxNQor6YyWID4gZMWtOyAjOTMxNgor6YyXID4gd8OoaTsgIzkzMTcKK+mMmCA+IGNow7ppOyAjOTMxOAor6YyZID4gesSrOyAjOTMxOQor6YyaID4gemjEk25nOyAjOTMxQQor6YybID4gYsSTbjsgIzkzMUIKK+mMnCA+IG5pxJM7ICM5MzFDCivpjJ0gPiBjw7NuZzsgIzkzMUQKK+mMniA+IHHDum47ICM5MzFFCivpjJ8gPiB0w6FuOyAjOTMxRgor6YygID4gZMOsbmc7ICM5MzIwCivpjKEgPiBxw607ICM5MzIxCivpjKIgPiBxacOhbjsgIzkzMjIKK+mMoyA+IHpow7pvOyAjOTMyMwor6YykID4gccOtOyAjOTMyNAor6YylID4gecO5OyAjOTMyNQor6YymID4gasStbjsgIzkzMjYKK+mMpyA+IGd1xINuOyAjOTMyNwor6YyoID4gbcOhbzsgIzkzMjgKK+mMqSA+IGNoxIFuZzsgIzkzMjkKK+mMqiA+IHRpxINuOyAjOTMyQQor6YyrID4geMOtOyAjOTMyQgor6YysID4gbGnDoG47ICM5MzJDCivpjK0gPiB0w6FvOyAjOTMyRAor6YyuID4gZ8O5OyAjOTMyRQor6YyvID4gY8O5bzsgIzkzMkYKK+mMsCA+IHNow7k7ICM5MzMwCivpjLEgPiB6aMSTbjsgIzkzMzEKK+mMsiA+IGzDuTsgIzkzMzIKK+mMsyA+IG3ElW5nOyAjOTMzMwor6Yy0ID4gbMO5OyAjOTMzNAor6Yy1ID4gaHXEgTsgIzkzMzUKK+mMtiA+IGJpxINvOyAjOTMzNgor6Yy3ID4gZ8OhOyAjOTMzNwor6Yy4ID4gbMOhaTsgIzkzMzgKK+mMuSA+IGvElW47ICM5MzM5CivpjLwgPiBuw6BpOyAjOTMzQwor6Yy9ID4gd8SDbjsgIzkzM0QKK+mMviA+IHrDoG47ICM5MzNFCivpjYAgPiBkw6k7ICM5MzQwCivpjYEgPiB4acSBbjsgIzkzNDEKK+mNgyA+IGjFq287ICM5MzQzCivpjYQgPiBsacOgbmc7ICM5MzQ0CivpjYYgPiBtw6luOyAjOTM0Ngor6Y2HID4ga8SDaTsgIzkzNDcKK+mNiCA+IHnEq25nOyAjOTM0OAor6Y2JID4gZMSrOyAjOTM0OQor6Y2KID4gbGnDoG47ICM5MzRBCivpjYsgPiBnxatvOyAjOTM0Qgor6Y2MID4geGnEg247ICM5MzRDCivpjY0gPiBkw7k7ICM5MzRECivpjY4gPiB0w7o7ICM5MzRFCivpjY8gPiB3w6lpOyAjOTM0Rgor6Y2QID4gY8WNbmc7ICM5MzUwCivpjZEgPiBmw7k7ICM5MzUxCivpjZIgPiByw7N1OyAjOTM1Mgor6Y2TID4gasOtOyAjOTM1Mwor6Y2UID4gw6g7ICM5MzU0CivpjZUgPiByw7N1OyAjOTM1NQor6Y2WID4gY2jElW47ICM5MzU2CivpjZcgPiB0w607ICM5MzU3CivpjZggPiB6aMOhOyAjOTM1OAor6Y2ZID4gaMOybmc7ICM5MzU5CivpjZogPiB5w6FuZzsgIzkzNUEKK+mNmyA+IGR1w6BuOyAjOTM1Qgor6Y2cID4geGnEgTsgIzkzNUMKK+mNnSA+IHnDujsgIzkzNUQKK+mNniA+IGvEk25nOyAjOTM1RQor6Y2fID4geMSrbmc7ICM5MzVGCivpjaAgPiBodcOhbmc7ICM5MzYwCivpjaEgPiB3xJVpOyAjOTM2MQor6Y2iID4gZsO5OyAjOTM2Mgor6Y2jID4gemjEgW87ICM5MzYzCivpjaQgPiBjaMOhOyAjOTM2NAor6Y2lID4gcWnDqDsgIzkzNjUKK+mNpiA+IHNow6k7ICM5MzY2CivpjacgPiBoxY1uZzsgIzkzNjcKK+mNqCA+IGvDumk7ICM5MzY4CivpjakgPiB0acSDbjsgIzkzNjkKK+mNqiA+IG3Ds3U7ICM5MzZBCivpjasgPiBxacSBbzsgIzkzNkIKK+mNrCA+IHFpxIFvOyAjOTM2Qwor6Y2tID4gaMOzdTsgIzkzNkQKK+mNriA+IHTFjXU7ICM5MzZFCivpja8gPiBjxY1uZzsgIzkzNkYKK+mNsCA+IGh1w6FuOyAjOTM3MAor6Y2xID4gecOoOyAjOTM3MQor6Y2yID4gbcOtbjsgIzkzNzIKK+mNsyA+IGppw6BuOyAjOTM3Mwor6Y20ID4gZHXEgW47ICM5Mzc0CivpjbUgPiBqacOgbjsgIzkzNzUKK+mNtiA+IHPFjW5nOyAjOTM3Ngor6Y23ID4ga8WraTsgIzkzNzcKK+mNuCA+IGjDujsgIzkzNzgKK+mNuSA+IHh1xIFuOyAjOTM3OQor6Y26ID4gZMWtbzsgIzkzN0EKK+mNuyA+IGppw6k7ICM5MzdCCivpjbwgPiB6aMSTbjsgIzkzN0MKK+mNvSA+IGJpxIFuOyAjOTM3RAor6Y2+ID4gemjFjW5nOyAjOTM3RQor6Y2/ID4gesSrOyAjOTM3Rgor6Y6AID4geMSrdTsgIzkzODAKK+mOgSA+IHnDqTsgIzkzODEKK+mOgiA+IG3ElWk7ICM5MzgyCivpjoMgPiBww6BpOyAjOTM4Mwor6Y6EID4gxIFpOyAjOTM4NAor6Y6FID4gamnDqDsgIzkzODUKK+mOhyA+IG3DqWk7ICM5Mzg3CivpjoggPiBjaMWrbzsgIzkzODgKK+mOiSA+IHTDoDsgIzkzODkKK+mOiiA+IGLDoG5nOyAjOTM4QQor6Y6LID4geGnDoTsgIzkzOEIKK+mOjCA+IGxpw6FuOyAjOTM4Qwor6Y6NID4gc8WtbzsgIzkzOEQKK+mOjiA+IHjDrDsgIzkzOEUKK+mOjyA+IGzDrXU7ICM5MzhGCivpjpAgPiB6w7o7ICM5MzkwCivpjpEgPiB5w6g7ICM5MzkxCivpjpIgPiBuw7J1OyAjOTM5Mgor6Y6TID4gd8STbmc7ICM5MzkzCivpjpQgPiByw7NuZzsgIzkzOTQKK+mOlSA+IHTDoW5nOyAjOTM5NQor6Y6WID4gc8WtbzsgIzkzOTYKK+mOlyA+IHFpxIFuZzsgIzkzOTcKK+mOmCA+IGfDqTsgIzkzOTgKK+mOmSA+IHNow7lvOyAjOTM5OQor6Y6aID4gY2jDumk7ICM5MzlBCivpjpsgPiBiw7M7ICM5MzlCCivpjpwgPiBww6FuOyAjOTM5Qwor6Y6dID4gc8OgOyAjOTM5RAor6Y6eID4gYsOsOyAjOTM5RQor6Y6fID4gc8SDbmc7ICM5MzlGCivpjqAgPiBnxIFuZzsgIzkzQTAKK+mOoSA+IHrEqzsgIzkzQTEKK+mOoiA+IHfDuTsgIzkzQTIKK+mOoyA+IHnDrG5nOyAjOTNBMwor6Y6kID4gaHXEg25nOyAjOTNBNAor6Y6lID4gdGnDoW87ICM5M0E1CivpjqYgPiBsw611OyAjOTNBNgor6Y6nID4ga8SDaTsgIzkzQTcKK+mOqCA+IHPFrW47ICM5M0E4CivpjqkgPiBzaMSBOyAjOTNBOQor6Y6qID4gc8WNdTsgIzkzQUEKK+mOqyA+IHfDoG47ICM5M0FCCivpjqwgPiBow6BvOyAjOTNBQwor6Y6tID4gemjDqG47ICM5M0FECivpjq4gPiB6aMOobjsgIzkzQUUKK+mOryA+IGzFrW87ICM5M0FGCivpjrAgPiB5w6w7ICM5M0IwCivpjrEgPiB5dcOhbjsgIzkzQjEKK+mOsiA+IHTEg25nOyAjOTNCMgor6Y6zID4gbmnDqDsgIzkzQjMKK+mOtCA+IHjDrTsgIzkzQjQKK+mOtSA+IGppxIE7ICM5M0I1CivpjrYgPiBnxJM7ICM5M0I2CivpjrcgPiBtxIM7ICM5M0I3CivpjrggPiBqdcSBbjsgIzkzQjgKK+mOuyA+IHPFrW87ICM5M0JCCivpjr8gPiBuw6E7ICM5M0JGCivpj4AgPiBsxa07ICM5M0MwCivpj4EgPiBzxa1vOyAjOTNDMQor6Y+CID4gxY11OyAjOTNDMgor6Y+DID4gesO6OyAjOTNDMwor6Y+EID4gdHXDoW47ICM5M0M0Civpj4UgPiB4xKt1OyAjOTNDNQor6Y+GID4gZ3XDoG47ICM5M0M2Civpj4cgPiB4dcOgbjsgIzkzQzcKK+mPiCA+IGxpw6BuOyAjOTNDOAor6Y+JID4gc2jDsnU7ICM5M0M5Civpj4ogPiDDoW87ICM5M0NBCivpj4sgPiBtxINuOyAjOTNDQgor6Y+MID4gbcOyOyAjOTNDQwor6Y+NID4gbMO6bzsgIzkzQ0QKK+mPjiA+IGLDrDsgIzkzQ0UKK+mPjyA+IHfDqGk7ICM5M0NGCivpj5AgPiBsw611OyAjOTNEMAor6Y+RID4gZMOtOyAjOTNEMQor6Y+SID4gcWnEgW87ICM5M0QyCivpj5MgPiBjxY1uZzsgIzkzRDMKK+mPlCA+IHnDrTsgIzkzRDQKK+mPlSA+IGzDuTsgIzkzRDUKK+mPliA+IMOhbzsgIzkzRDYKK+mPlyA+IGvEk25nOyAjOTNENwor6Y+YID4gcWnEgW5nOyAjOTNEOAor6Y+ZID4gY8WraTsgIzkzRDkKK+mPmiA+IHHDrDsgIzkzREEKK+mPmyA+IGNow6FuZzsgIzkzREIKK+mPnCA+IHTEgW5nOyAjOTNEQwor6Y+dID4gbcOgbjsgIzkzREQKK+mPniA+IHnFjW5nOyAjOTNERQor6Y+fID4gY2jEg247ICM5M0RGCivpj6AgPiBmxJNuZzsgIzkzRTAKK+mPoSA+IGrDrG5nOyAjOTNFMQor6Y+iID4gYmnEgW87ICM5M0UyCivpj6MgPiBzaMO5OyAjOTNFMwor6Y+kID4gbMOydTsgIzkzRTQKK+mPpSA+IHjDrHU7ICM5M0U1Civpj6YgPiBjxY1uZzsgIzkzRTYKK+mPpyA+IGzDs25nOyAjOTNFNwor6Y+oID4gesOgbjsgIzkzRTgKK+mPqSA+IGppw6BuOyAjOTNFOQor6Y+qID4gY8OhbzsgIzkzRUEKK+mPqyA+IGzDrTsgIzkzRUIKK+mPrCA+IHhpw6A7ICM5M0VDCivpj60gPiB4xKs7ICM5M0VECivpj64gPiBrxIFuZzsgIzkzRUUKK+mPsCA+IGLDqG5nOyAjOTNGMAor6Y+zID4gemjEk25nOyAjOTNGMwor6Y+0ID4gbMO5OyAjOTNGNAor6Y+1ID4gaHXDoTsgIzkzRjUKK+mPtiA+IGrDrTsgIzkzRjYKK+mPtyA+IHDDujsgIzkzRjcKK+mPuCA+IGjDuWk7ICM5M0Y4Civpj7kgPiBxacSBbmc7ICM5M0Y5Civpj7ogPiBwxY07ICM5M0ZBCivpj7sgPiBsw61uOyAjOTNGQgor6Y+8ID4gc8WtbzsgIzkzRkMKK+mPvSA+IHjDrHU7ICM5M0ZECivpj74gPiBzxINuOyAjOTNGRQor6Y+/ID4gY2jEk25nOyAjOTNGRgor6ZCAID4ga8O5aTsgIzk0MDAKK+mQgSA+IHPEqzsgIzk0MDEKK+mQgiA+IGzDrHU7ICM5NDAyCivpkIMgPiBuw6FvOyAjOTQwMwor6ZCEID4gaMOpbmc7ICM5NDA0CivpkIUgPiBwacSVOyAjOTQwNQor6ZCGID4gc8O5aTsgIzk0MDYKK+mQhyA+IGbDoW47ICM5NDA3CivpkIggPiBxacOhbzsgIzk0MDgKK+mQiSA+IHF1xIFuOyAjOTQwOQor6ZCKID4gecOhbmc7ICM5NDBBCivpkIsgPiB0w6BuZzsgIzk0MEIKK+mQjCA+IHhpw6BuZzsgIzk0MEMKK+mQjSA+IGp1w6k7ICM5NDBECivpkI4gPiBqacSBbzsgIzk0MEUKK+mQjyA+IHrFq247ICM5NDBGCivpkJAgPiBsacOhbzsgIzk0MTAKK+mQkSA+IGppw6k7ICM5NDExCivpkJIgPiBsw6FvOyAjOTQxMgor6ZCTID4gZMO5aTsgIzk0MTMKK+mQlCA+IHTDoW47ICM5NDE0CivpkJUgPiB6xIFuOyAjOTQxNQor6ZCWID4gasSrOyAjOTQxNgor6ZCXID4gamnEg247ICM5NDE3CivpkJggPiB6aMWNbmc7ICM5NDE4CivpkJkgPiBkxJNuZzsgIzk0MTkKK+mQmiA+IHnDoDsgIzk0MUEKK+mQmyA+IHnDrG5nOyAjOTQxQgor6ZCcID4gZMO5aTsgIzk0MUMKK+mQnSA+IGp1w6k7ICM5NDFECivpkJ4gPiBuw7J1OyAjOTQxRQor6ZCfID4gdMOsOyAjOTQxRgor6ZCgID4gcMWtOyAjOTQyMAor6ZChID4gdGnElTsgIzk0MjEKK+mQpCA+IGTErW5nOyAjOTQyNAor6ZClID4gc2jDoG47ICM5NDI1CivpkKYgPiBrxIFpOyAjOTQyNgor6ZCnID4gamnEg247ICM5NDI3CivpkKggPiBmw6hpOyAjOTQyOAor6ZCpID4gc8O5aTsgIzk0MjkKK+mQqiA+IGzFrTsgIzk0MkEKK+mQqyA+IGp1xIFuOyAjOTQyQgor6ZCsID4gaMO5aTsgIzk0MkMKK+mQrSA+IHnDuTsgIzk0MkQKK+mQriA+IGxpw6FuOyAjOTQyRQor6ZCvID4gemjDum87ICM5NDJGCivpkLAgPiBxacSBbzsgIzk0MzAKK+mQsSA+IHFpxIFuOyAjOTQzMQor6ZCyID4gemjDum87ICM5NDMyCivpkLMgPiBsw6lpOyAjOTQzMwor6ZC0ID4gYsOsOyAjOTQzNAor6ZC1ID4gdGnElTsgIzk0MzUKK+mQtiA+IGh1w6FuOyAjOTQzNgor6ZC3ID4gecOoOyAjOTQzNwor6ZC4ID4gZMO6bzsgIzk0MzgKK+mQuSA+IGfFrW87ICM5NDM5CivpkLogPiBkxIFuZzsgIzk0M0EKK+mQuyA+IGrDuTsgIzk0M0IKK+mQvCA+IGbDqW47ICM5NDNDCivpkL0gPiBkw6E7ICM5NDNECivpkL4gPiBiw6hpOyAjOTQzRQor6ZC/ID4gecOsOyAjOTQzRgor6ZGAID4gw6BpOyAjOTQ0MAor6ZGBID4gesWNbmc7ICM5NDQxCivpkYIgPiB4w7luOyAjOTQ0Mgor6ZGDID4gZGnDoG87ICM5NDQzCivpkYQgPiB6aMO5OyAjOTQ0NAor6ZGFID4gaMOpbmc7ICM5NDQ1CivpkYYgPiB6aMO5aTsgIzk0NDYKK+mRhyA+IGrEqzsgIzk0NDcKK+mRiCA+IG5pxJM7ICM5NDQ4CivpkYkgPiB0w6A7ICM5NDQ5CivpkYogPiBow7lvOyAjOTQ0QQor6ZGLID4gccOsbmc7ICM5NDRCCivpkYwgPiBixKtuOyAjOTQ0Qwor6ZGNID4gecSrbmc7ICM5NDRECivpkY4gPiBrw7lpOyAjOTQ0RQor6ZGPID4gbsOtbmc7ICM5NDRGCivpkZAgPiB4xas7ICM5NDUwCivpkZEgPiBqacOgbjsgIzk0NTEKK+mRkiA+IGppw6BuOyAjOTQ1Mgor6ZGUID4gY2jEgzsgIzk0NTQKK+mRlSA+IHpow6w7ICM5NDU1CivpkZYgPiBtacOoOyAjOTQ1Ngor6ZGXID4gbMOtOyAjOTQ1Nwor6ZGYID4gbMOpaTsgIzk0NTgKK+mRmSA+IGrEqzsgIzk0NTkKK+mRmiA+IHp1w6BuOyAjOTQ1QQor6ZGbID4ga3XDoG5nOyAjOTQ1Qgor6ZGcID4gc2jDoG5nOyAjOTQ1Qwor6ZGdID4gcMOpbmc7ICM5NDVECivpkZ4gPiBsw6A7ICM5NDVFCivpkZ8gPiBkw7o7ICM5NDVGCivpkaAgPiBzaMO5bzsgIzk0NjAKK+mRoSA+IGNow7lvOyAjOTQ2MQor6ZGiID4gbMecOyAjOTQ2Mgor6ZGjID4gYmnEgW87ICM5NDYzCivpkaQgPiBiw6BvOyAjOTQ2NAor6ZGlID4gbMWtOyAjOTQ2NQor6ZGoID4gbMOzbmc7ICM5NDY4CivpkakgPiDDqDsgIzk0NjkKK+mRqiA+IGzDujsgIzk0NkEKK+mRqyA+IHjEq247ICM5NDZCCivpkawgPiBqacOgbjsgIzk0NkMKK+mRrSA+IGzDoG47ICM5NDZECivpka4gPiBiw7M7ICM5NDZFCivpka8gPiBqacSBbjsgIzk0NkYKK+mRsCA+IHnDoG87ICM5NDcwCivpkbEgPiBjaMOhbjsgIzk0NzEKK+mRsiA+IHhpxIFuZzsgIzk0NzIKK+mRsyA+IGppw6BuOyAjOTQ3Mwor6ZG0ID4geMSrOyAjOTQ3NAor6ZG1ID4gZ3XDoG47ICM5NDc1CivpkbYgPiBjw6FuZzsgIzk0NzYKK+mRtyA+IG5pw6g7ICM5NDc3CivpkbggPiBsxJVpOyAjOTQ3OAor6ZG5ID4gY3XDoG47ICM5NDc5CivpkbogPiBxw7o7ICM5NDdBCivpkbsgPiBww6BuOyAjOTQ3Qgor6ZG8ID4gbMO6bzsgIzk0N0MKK+mRvSA+IHp1w6BuOyAjOTQ3RAor6ZG+ID4gbHXDoW47ICM5NDdFCivpkb8gPiB6w6FvOyAjOTQ3Rgor6ZKAID4gbmnDqDsgIzk0ODAKK+mSgSA+IGp1w6k7ICM5NDgxCivpkoIgPiB0xINuZzsgIzk0ODIKK+mSgyA+IHNoxa07ICM5NDgzCivpkoQgPiBsw6FuOyAjOTQ4NAor6ZKFID4gasSrbjsgIzk0ODUKK+mShiA+IHHDrXU7ICM5NDg2CivpkocgPiB5xK07ICM5NDg3CivpkoggPiB6aMSTbjsgIzk0ODgKK+mSiSA+IGTEq25nOyAjOTQ4OQor6ZKKID4gemjEgW87ICM5NDhBCivpkosgPiBww7I7ICM5NDhCCivpkowgPiBkacSDbzsgIzk0OEMKK+mSjSA+IHTFrTsgIzk0OEQKK+mSjiA+IHFpxIFuOyAjOTQ4RQor6ZKPID4gY2h1w6BuOyAjOTQ4Rgor6ZKQID4gc2jDoG47ICM5NDkwCivpkpEgPiBqw607ICM5NDkxCivpkpIgPiBmw6FuOyAjOTQ5Mgor6ZKTID4gZGnDoG87ICM5NDkzCivpkpQgPiBtw6luOyAjOTQ5NAor6ZKVID4gbseaOyAjOTQ5NQor6ZKWID4geMOtOyAjOTQ5Ngor6ZKXID4gY2jEgWk7ICM5NDk3CivpkpggPiB4w61uZzsgIzk0OTgKK+mSmSA+IGfDoGk7ICM5NDk5CivpkpogPiBiw7k7ICM5NDlBCivpkpsgPiB0w6BpOyAjOTQ5Qgor6ZKcID4gasO5OyAjOTQ5Qwor6ZKdID4gZMO5bjsgIzk0OUQKK+mSniA+IGNoxIFvOyAjOTQ5RQor6ZKfID4gemjFjW5nOyAjOTQ5Rgor6ZKgID4gbsOgOyAjOTRBMAor6ZKhID4gYsOoaTsgIzk0QTEKK+mSoiA+IGfEgW5nOyAjOTRBMgor6ZKjID4gYsSDbjsgIzk0QTMKK+mSpCA+IHFpw6FuOyAjOTRBNAor6ZKlID4gecOgbzsgIzk0QTUKK+mSpiA+IHHEq247ICM5NEE2CivpkqcgPiBqxatuOyAjOTRBNwor6ZKoID4gd8O5OyAjOTRBOAor6ZKpID4gZ8WNdTsgIzk0QTkKK+mSqiA+IGvDoG5nOyAjOTRBQQor6ZKrID4gZsSBbmc7ICM5NEFCCivpkqwgPiBow7pvOyAjOTRBQwor6ZKtID4gdMWPdTsgIzk0QUQKK+mSriA+IG7ErXU7ICM5NEFFCivpkq8gPiBixIM7ICM5NEFGCivpkrAgPiB5w7k7ICM5NEIwCivpkrEgPiBxacOhbjsgIzk0QjEKK+mSsiA+IHpoxJNuZzsgIzk0QjIKK+mSsyA+IHFpw6FuOyAjOTRCMwor6ZK0ID4gZ8WrOyAjOTRCNAor6ZK1ID4gYsWNOyAjOTRCNQor6ZK2ID4gxJM7ICM5NEI2CivpkrcgPiBwxY07ICM5NEI3CivpkrggPiBiw7k7ICM5NEI4CivpkrkgPiBiw6E7ICM5NEI5CivpkrogPiB5dcOoOyAjOTRCQQor6ZK7ID4genXDoG47ICM5NEJCCivpkrwgPiBtw7k7ICM5NEJDCivpkr0gPiBkw6BuOyAjOTRCRAor6ZK+ID4gamnEgzsgIzk0QkUKK+mSvyA+IGRpw6BuOyAjOTRCRgor6ZOAID4gecOzdTsgIzk0QzAKK+mTgSA+IHRpxJU7ICM5NEMxCivpk4IgPiBiw7M7ICM5NEMyCivpk4MgPiBsw61uZzsgIzk0QzMKK+mThCA+IHNow7lvOyAjOTRDNAor6ZOFID4gcWnEgW47ICM5NEM1Civpk4YgPiBsxK11OyAjOTRDNgor6ZOHID4gYsOgbzsgIzk0QzcKK+mTiCA+IHNow6w7ICM5NEM4Civpk4kgPiB4dcOgbjsgIzk0QzkKK+mTiiA+IHNow6k7ICM5NENBCivpk4sgPiBiw6w7ICM5NENCCivpk4wgPiBuxK07ICM5NENDCivpk40gPiBwxKs7ICM5NENECivpk44gPiBkw7pvOyAjOTRDRQor6ZOPID4geMOtbmc7ICM5NENGCivpk5AgPiBrw6BvOyAjOTREMAor6ZORID4gbMSDbzsgIzk0RDEKK+mTkiA+IMOocjsgIzk0RDIKK+mTkyA+IG3DoW5nOyAjOTREMwor6ZOUID4gecOgOyAjOTRENAor6ZOVID4gecWPdTsgIzk0RDUKK+mTliA+IGNow6luZzsgIzk0RDYKK+mTlyA+IGppw6E7ICM5NEQ3Civpk5ggPiB5w6k7ICM5NEQ4Civpk5kgPiBuw6FvOyAjOTREOQor6ZOaID4gemjDrDsgIzk0REEKK+mTmyA+IGTEgW5nOyAjOTREQgor6ZOcID4gdMOzbmc7ICM5NERDCivpk50gPiBsx5o7ICM5NERECivpk54gPiBkacOgbzsgIzk0REUKK+mTnyA+IHnEq247ICM5NERGCivpk6AgPiBrxINpOyAjOTRFMAor6ZOhID4gemjDoTsgIzk0RTEKK+mToiA+IHpoxas7ICM5NEUyCivpk6MgPiB4acSDbjsgIzk0RTMKK+mTpCA+IHTErW5nOyAjOTRFNAor6ZOlID4gZMSrdTsgIzk0RTUKK+mTpiA+IHhpxIFuOyAjOTRFNgor6ZOnID4gaHXDoTsgIzk0RTcKK+mTqCA+IHF1w6FuOyAjOTRFOAor6ZOpID4gc2jEgTsgIzk0RTkKK+mTqiA+IGppw6E7ICM5NEVBCivpk6sgPiB5w6FvOyAjOTRFQgor6ZOsID4gZ8OoOyAjOTRFQwor6ZOtID4gbcOtbmc7ICM5NEVECivpk64gPiB6aMSTbmc7ICM5NEVFCivpk68gPiBzw6g7ICM5NEVGCivpk7AgPiBqacSDbzsgIzk0RjAKK+mTsSA+IHnErTsgIzk0RjEKK+mTsiA+IGNoxINuOyAjOTRGMgor6ZOzID4gY2jDsm5nOyAjOTRGMwor6ZO0ID4gdMOgbmc7ICM5NEY0Civpk7UgPiDEgW47ICM5NEY1Civpk7YgPiB5w61uOyAjOTRGNgor6ZO3ID4gcsWtOyAjOTRGNwor6ZO4ID4gemjDuTsgIzk0RjgKK+mTuSA+IGzDoW87ICM5NEY5Civpk7ogPiBwxas7ICM5NEZBCivpk7sgPiB3w7o7ICM5NEZCCivpk7wgPiBsw6FpOyAjOTRGQwor6ZO9ID4gdMOoOyAjOTRGRAor6ZO+ID4gbGnDoG47ICM5NEZFCivpk78gPiBrxJNuZzsgIzk0RkYKK+mUgCA+IHhpxIFvOyAjOTUwMAor6ZSBID4gc8WtbzsgIzk1MDEKK+mUgiA+IGzErTsgIzk1MDIKK+mUgyA+IHpow6huZzsgIzk1MDMKK+mUhCA+IGNow7o7ICM5NTA0CivplIUgPiBnxatvOyAjOTUwNQor6ZSGID4gZ8OgbzsgIzk1MDYKK+mUhyA+IHRpxJU7ICM5NTA3CivplIggPiB4w6x1OyAjOTUwOAor6ZSJID4gY8O5bzsgIzk1MDkKK+mUiiA+IGzHnGU7ICM5NTBBCivplIsgPiBmxJNuZzsgIzk1MEIKK+mUjCA+IHjEq247ICM5NTBDCivplI0gPiBsxK11OyAjOTUwRAor6ZSOID4ga8SBaTsgIzk1MEUKK+mUjyA+IGppxINuOyAjOTUwRgor6ZSQID4gcsO5aTsgIzk1MTAKK+mUkSA+IHTDrDsgIzk1MTEKK+mUkiA+IGzDoW5nOyAjOTUxMgor6ZSTID4gcWnEgW47ICM5NTEzCivplJQgPiBqw7o7ICM5NTE0CivplJUgPiDEgTsgIzk1MTUKK+mUliA+IHFpxIFuZzsgIzk1MTYKK+mUlyA+IGTFrW87ICM5NTE3CivplJggPiB0acSDbjsgIzk1MTgKK+mUmSA+IGPDuW87ICM5NTE5CivplJogPiBtw6FvOyAjOTUxQQor6ZSbID4gYsSTbjsgIzk1MUIKK+mUnCA+IHHDrTsgIzk1MUMKK+mUnSA+IGTDqTsgIzk1MUQKK+mUniA+IGt1xIM7ICM5NTFFCivplJ8gPiBrxatuOyAjOTUxRgor6ZSgID4gY2jEgW5nOyAjOTUyMAor6ZShID4geMOtOyAjOTUyMQor6ZSiID4gZ8O5OyAjOTUyMgor6ZSjID4gbMO6bzsgIzk1MjMKK+mUpCA+IGNow7ppOyAjOTUyNAor6ZSlID4gemjFq2k7ICM5NTI1CivplKYgPiBqxK1uOyAjOTUyNgor6ZSnID4gemjDrDsgIzk1MjcKK+mUqCA+IHhpxIFuOyAjOTUyOAor6ZSpID4ganXDoG47ICM5NTI5CivplKogPiBoxatvOyAjOTUyQQor6ZSrID4gcMOzdTsgIzk1MkIKK+mUrCA+IHTDoW47ICM5NTJDCivplK0gPiBkw6xuZzsgIzk1MkQKK+mUriA+IGppw6BuOyAjOTUyRQor6ZSvID4gasO5OyAjOTUyRgor6ZSwID4gbcSVbmc7ICM5NTMwCivplLEgPiB6xKs7ICM5NTMxCivplLIgPiBxacOoOyAjOTUzMgor6ZSzID4gecSrbmc7ICM5NTMzCivplLQgPiBrxINpOyAjOTUzNAor6ZS1ID4gcWnEgW5nOyAjOTUzNQor6ZS2ID4gc8WNbmc7ICM5NTM2CivplLcgPiDDqDsgIzk1MzcKK+mUuCA+IGNow6E7ICM5NTM4CivplLkgPiBxacSBbzsgIzk1MzkKK+mUuiA+IHpoxY1uZzsgIzk1M0EKK+mUuyA+IGR1w6BuOyAjOTUzQgor6ZS8ID4gc8WNdTsgIzk1M0MKK+mUvSA+IGh1w6FuZzsgIzk1M0QKK+mUviA+IGh1w6FuOyAjOTUzRQor6ZS/ID4gxIFpOyAjOTUzRgor6ZWAID4gZMO5OyAjOTU0MAor6ZWBID4gbcSVaTsgIzk1NDEKK+mVgiA+IGzDsnU7ICM5NTQyCivplYMgPiB6xKs7ICM5NTQzCivplYQgPiBmw6hpOyAjOTU0NAor6ZWFID4gbcOpaTsgIzk1NDUKK+mVhiA+IG3DsjsgIzk1NDYKK+mVhyA+IHpow6huOyAjOTU0Nwor6ZWIID4gYsOzOyAjOTU0OAor6ZWJID4gZ8OpOyAjOTU0OQor6ZWKID4gbmnDqDsgIzk1NEEKK+mViyA+IHTEg25nOyAjOTU0Qgor6ZWMID4ganXEgW47ICM5NTRDCivplY0gPiBuacOoOyAjOTU0RAor6ZWOID4gbsOhOyAjOTU0RQor6ZWPID4gbMOtdTsgIzk1NEYKK+mVkCA+IGjDoG87ICM5NTUwCivplZEgPiBiw6BuZzsgIzk1NTEKK+mVkiA+IHnDrDsgIzk1NTIKK+mVkyA+IGppxIE7ICM5NTUzCivplZQgPiBixKtuOyAjOTU1NAor6ZWVID4gcsOzbmc7ICM5NTU1CivplZYgPiBiacSBbzsgIzk1NTYKK+mVlyA+IHTEgW5nOyAjOTU1Nwor6ZWYID4gbcOgbjsgIzk1NTgKK+mVmSA+IGzDum87ICM5NTU5CivplZogPiBiw6huZzsgIzk1NUEKK+mVmyA+IHnFjW5nOyAjOTU1Qgor6ZWcID4gasOsbmc7ICM5NTVDCivplZ0gPiBkw607ICM5NTVECivplZ4gPiB6w7o7ICM5NTVFCivplZ8gPiB4dcOgbjsgIzk1NUYKK+mVoCA+IGzDrXU7ICM5NTYwCivplaEgPiB0w6FuOyAjOTU2MQor6ZWiID4ganXDqTsgIzk1NjIKK+mVoyA+IGxpw6FvOyAjOTU2Mwor6ZWkID4gcMO6OyAjOTU2NAor6ZWlID4gbMWtOyAjOTU2NQor6ZWmID4gZMO5aTsgIzk1NjYKK+mVpyA+IGzDoG47ICM5NTY3CivplaggPiBwxa07ICM5NTY4CivplakgPiBjdcOgbjsgIzk1NjkKK+mVqiA+IHFpxIFuZzsgIzk1NkEKK+mVqyA+IGTEk25nOyAjOTU2Qgor6ZWsID4gaMO5bzsgIzk1NkMKK+mVrSA+IGzDqWk7ICM5NTZECivpla4gPiBodcOhbjsgIzk1NkUKK+mVryA+IHpow7pvOyAjOTU2Rgor6ZWwID4gbGnDoW47ICM5NTcwCivplbEgPiB5w6w7ICM5NTcxCivplbIgPiBjaMSDOyAjOTU3Mgor6ZWzID4gYmnEgW87ICM5NTczCivplbQgPiBsw6A7ICM5NTc0CivplbUgPiBjaMOhbjsgIzk1NzUKK+mVtiA+IHhpxIFuZzsgIzk1NzYKK+mVtyA+IGNow6FuZzsgIzk1NzcKK+mVuCA+IGNow6FuZzsgIzk1NzgKK+mVuSA+IGrErXU7ICM5NTc5CivplbogPiDEg287ICM5NTdBCivplbsgPiBkacOpOyAjOTU3Qgor6ZW8ID4gccWrOyAjOTU3Qwor6ZW9ID4gbGnEg287ICM5NTdECivplb4gPiBtw607ICM5NTdFCivplb8gPiBjaMOhbmc7ICM5NTdGCivploAgPiBtw6luOyAjOTU4MAor6ZaBID4gbcOgOyAjOTU4MQor6ZaCID4gc2h1xIFuOyAjOTU4Mgor6ZaDID4gc2jEg247ICM5NTgzCivploQgPiBow7lvOyAjOTU4NAor6ZaFID4gbcOpbjsgIzk1ODUKK+mWhiA+IHnDoG47ICM5NTg2CivplocgPiBiw6w7ICM5NTg3CivploggPiBow6BuOyAjOTU4OAor6ZaJID4gYsOsOyAjOTU4OQor6ZaLID4ga8SBaTsgIzk1OEIKK+mWjCA+IGvDoG5nOyAjOTU4Qwor6ZaNID4gYsSTbmc7ICM5NThECivplo4gPiBow7NuZzsgIzk1OEUKK+mWjyA+IHLDuW47ICM5NThGCivplpAgPiBzw6BuOyAjOTU5MAor6ZaRID4geGnDoW47ICM5NTkxCivplpIgPiB4acOhbjsgIzk1OTIKK+mWkyA+IGppxIFuOyAjOTU5Mwor6ZaUID4gbcStbjsgIzk1OTQKK+mWlSA+IHhpxIE7ICM5NTk1CivplpcgPiBkw7J1OyAjOTU5Nwor6ZaYID4gemjDoTsgIzk1OTgKK+mWmSA+IG7DoG87ICM5NTk5CivplpogPiBqaWFuOyAjOTU5QQor6ZabID4gcMSTbmc7ICM5NTlCCivplpwgPiB4acSDOyAjOTU5Qwor6ZadID4gbMOtbmc7ICM5NTlECivplp4gPiBiacOgbjsgIzk1OUUKK+mWnyA+IGLDrDsgIzk1OUYKK+mWoCA+IHLDuW47ICM5NUEwCivplqEgPiBow6k7ICM5NUExCivplqIgPiBndcSBbjsgIzk1QTIKK+mWoyA+IGfDqTsgIzk1QTMKK+mWpCA+IGfDqTsgIzk1QTQKK+mWpSA+IGbDoTsgIzk1QTUKK+mWpiA+IGNow7k7ICM5NUE2CivplqcgPiBow7JuZzsgIzk1QTcKK+mWqCA+IGfFq2k7ICM5NUE4CivplqkgPiBtxK1uOyAjOTVBOQor6ZarID4ga8WtbjsgIzk1QUIKK+mWrCA+IGzEg25nOyAjOTVBQwor6ZatID4gbMeYOyAjOTVBRAor6ZauID4gdMOtbmc7ICM5NUFFCivplq8gPiBzaMOgOyAjOTVBRgor6ZawID4gasO6OyAjOTVCMAor6ZaxID4geXXDqDsgIzk1QjEKK+mWsiA+IHl1w6g7ICM5NUIyCivplrMgPiBjaMSDbjsgIzk1QjMKK+mWtCA+IHHDuTsgIzk1QjQKK+mWtSA+IGzDrG47ICM5NUI1CivplrYgPiBjaMSBbmc7ICM5NUI2CivplrcgPiBzaMOgaTsgIzk1QjcKK+mWuCA+IGvFrW47ICM5NUI4CivplrkgPiB5xIFuOyAjOTVCOQor6Za6ID4gbcOtbjsgIzk1QkEKK+mWuyA+IHnDoW47ICM5NUJCCivplrwgPiDDqDsgIzk1QkMKK+mWvSA+IGjFq247ICM5NUJECivplr4gPiB5w7k7ICM5NUJFCivplr8gPiB3w6luOyAjOTVCRgor6ZeAID4geGnDoG5nOyAjOTVDMAor6ZeBID4gYmFvOyAjOTVDMQor6ZeCID4geGnDoG5nOyAjOTVDMgor6ZeDID4gccO5OyAjOTVDMwor6ZeEID4gecSDbzsgIzk1QzQKK+mXhSA+IHfDqW47ICM5NUM1Civpl4YgPiBixINuOyAjOTVDNgor6ZeHID4gw6BuOyAjOTVDNwor6ZeIID4gd8OpaTsgIzk1QzgKK+mXiSA+IHnEq247ICM5NUM5Civpl4ogPiBrw7lvOyAjOTVDQQor6ZeLID4gcXXDqDsgIzk1Q0IKK+mXjCA+IGzDoW47ICM5NUNDCivpl40gPiBkxas7ICM5NUNECivpl5AgPiB0acOhbjsgIzk1RDAKK+mXkSA+IG5pw6g7ICM5NUQxCivpl5IgPiB0w6A7ICM5NUQyCivpl5MgPiBrxINpOyAjOTVEMwor6ZeUID4gaMOpOyAjOTVENAor6ZeVID4gcXXDqDsgIzk1RDUKK+mXliA+IGNodcSDbmc7ICM5NUQ2Civpl5cgPiBndcSBbjsgIzk1RDcKK+mXmCA+IGTDsnU7ICM5NUQ4Civpl5kgPiBxxK07ICM5NUQ5Civpl5ogPiBrxatpOyAjOTVEQQor6ZebID4gdMOhbmc7ICM5NURCCivpl5wgPiBndcSBbjsgIzk1REMKK+mXnSA+IHBpw6FvOyAjOTVERAor6ZeeID4ga8OgbjsgIzk1REUKK+mXnyA+IHjDrDsgIzk1REYKK+mXoCA+IGjDuWk7ICM5NUUwCivpl6EgPiBjaMSDbjsgIzk1RTEKK+mXoiA+IHDDrDsgIzk1RTIKK+mXoyA+IGTDoG5nOyAjOTVFMwor6ZekID4gaHXDoW47ICM5NUU0Civpl6UgPiB0w6A7ICM5NUU1Civpl6YgPiB3w6luOyAjOTVFNgor6ZeoID4gbcOpbjsgIzk1RTgKK+mXqSA+IHNodcSBbjsgIzk1RTkKK+mXqiA+IHNoxINuOyAjOTVFQQor6ZerID4gecOgbjsgIzk1RUIKK+mXrCA+IGjDoG47ICM5NUVDCivpl60gPiBiw6w7ICM5NUVECivpl64gPiB3w6huOyAjOTVFRQor6ZevID4gY2h1xINuZzsgIzk1RUYKK+mXsCA+IHLDuW47ICM5NUYwCivpl7EgPiB3w6lpOyAjOTVGMQor6ZeyID4geGnDoW47ICM5NUYyCivpl7MgPiBow7NuZzsgIzk1RjMKK+mXtCA+IGppxIFuOyAjOTVGNAor6Ze1ID4gbcStbjsgIzk1RjUKK+mXtiA+IGvDoG5nOyAjOTVGNgor6Ze3ID4gbcOobjsgIzk1RjcKK+mXuCA+IHpow6E7ICM5NUY4Civpl7kgPiBuw6BvOyAjOTVGOQor6Ze6ID4gZ8WraTsgIzk1RkEKK+mXuyA+IHfDqW47ICM5NUZCCivpl7wgPiB0w6A7ICM5NUZDCivpl70gPiBtxK1uOyAjOTVGRAor6Ze+ID4gbMeYOyAjOTVGRQor6Ze/ID4ga8SDaTsgIzk1RkYKK+mYgCA+IGbDoTsgIzk2MDAKK+mYgSA+IGfDqTsgIzk2MDEKK+mYgiA+IGjDqTsgIzk2MDIKK+mYgyA+IGvFrW47ICM5NjAzCivpmIQgPiBqxKt1OyAjOTYwNAor6ZiFID4geXXDqDsgIzk2MDUKK+mYhiA+IGzEg25nOyAjOTYwNgor6ZiHID4gZMWrOyAjOTYwNwor6ZiIID4gecO5OyAjOTYwOAor6ZiJID4gecSBbjsgIzk2MDkKK+mYiiA+IGNoxIFuZzsgIzk2MEEKK+mYiyA+IHjDrDsgIzk2MEIKK+mYjCA+IHfDqW47ICM5NjBDCivpmI0gPiBoxatuOyAjOTYwRAor6ZiOID4gecOhbjsgIzk2MEUKK+mYjyA+IMOoOyAjOTYwRgor6ZiQID4gY2jEg247ICM5NjEwCivpmJEgPiBsw6FuOyAjOTYxMQor6ZiSID4gccO5OyAjOTYxMgor6ZiTID4gaMO5aTsgIzk2MTMKK+mYlCA+IGvDuW87ICM5NjE0CivpmJUgPiBxdcOoOyAjOTYxNQor6ZiWID4gZ8OpOyAjOTYxNgor6ZiXID4gdGnDoW47ICM5NjE3CivpmJggPiB0w6A7ICM5NjE4CivpmJkgPiBxdcOoOyAjOTYxOQor6ZiaID4ga8OgbjsgIzk2MUEKK+mYmyA+IGh1w6FuOyAjOTYxQgor6ZicID4gZsO5OyAjOTYxQwor6ZidID4gZsO5OyAjOTYxRAor6ZieID4gbMOoOyAjOTYxRQor6ZifID4gZMO5aTsgIzk2MUYKK+mYoCA+IHjDrG47ICM5NjIwCivpmKEgPiBxacSBbjsgIzk2MjEKK+mYoiA+IHfDuTsgIzk2MjIKK+mYoyA+IHnDrDsgIzk2MjMKK+mYpCA+IHTDum87ICM5NjI0CivpmKUgPiB5xKtuOyAjOTYyNQor6ZimID4gecOhbmc7ICM5NjI2CivpmKcgPiBkxY91OyAjOTYyNwor6ZioID4gw6g7ICM5NjI4CivpmKkgPiBzaMSTbmc7ICM5NjI5CivpmKogPiBixINuOyAjOTYyQQor6ZirID4gcMOpaTsgIzk2MkIKK+mYrCA+IGvEk25nOyAjOTYyQwor6ZitID4gecWtbjsgIzk2MkQKK+mYriA+IHJ1xINuOyAjOTYyRQor6ZivID4gemjErTsgIzk2MkYKK+mYsCA+IHDDrTsgIzk2MzAKK+mYsSA+IGrErW5nOyAjOTYzMQor6ZiyID4gZsOhbmc7ICM5NjMyCivpmLMgPiB5w6FuZzsgIzk2MzMKK+mYtCA+IHnEq247ICM5NjM0CivpmLUgPiB6aMOobjsgIzk2MzUKK+mYtiA+IGppxJM7ICM5NjM2CivpmLcgPiBjaMSTbmc7ICM5NjM3CivpmLggPiDDqDsgIzk2MzgKK+mYuSA+IHHFqzsgIzk2MzkKK+mYuiA+IGTErTsgIzk2M0EKK+mYuyA+IHrFrTsgIzk2M0IKK+mYvCA+IHrDuW87ICM5NjNDCivpmL0gPiBkacOgbjsgIzk2M0QKK+mYviA+IGzErW5nOyAjOTYzRQor6Zi/ID4gxIE7ICM5NjNGCivpmYAgPiB0w7pvOyAjOTY0MAor6ZmBID4gdMO6bzsgIzk2NDEKK+mZgiA+IHDFjTsgIzk2NDIKK+mZgyA+IGLErW5nOyAjOTY0Mwor6ZmEID4gZsO5OyAjOTY0NAor6ZmFID4gasOsOyAjOTY0NQor6ZmGID4gbMO5OyAjOTY0Ngor6ZmHID4gbMWPbmc7ICM5NjQ3CivpmYggPiBjaMOpbjsgIzk2NDgKK+mZiSA+IHjDrW5nOyAjOTY0OQor6ZmKID4gZMO5bzsgIzk2NEEKK+mZiyA+IGzDsnU7ICM5NjRCCivpmYwgPiBtw7I7ICM5NjRDCivpmY0gPiBqacOgbmc7ICM5NjRECivpmY4gPiBzaMWrOyAjOTY0RQor6ZmPID4gZMO5bzsgIzk2NEYKK+mZkCA+IHhpw6BuOyAjOTY1MAor6ZmRID4gw6lyOyAjOTY1MQor6ZmSID4gZ8WtaTsgIzk2NTIKK+mZkyA+IHnFqzsgIzk2NTMKK+mZlCA+IGfEgWk7ICM5NjU0CivpmZUgPiBzaMSDbjsgIzk2NTUKK+mZliA+IHjDuW47ICM5NjU2CivpmZcgPiBxacOgbzsgIzk2NTcKK+mZmCA+IHjDrW5nOyAjOTY1OAor6ZmZID4gY2jDum47ICM5NjU5CivpmZogPiBmw7k7ICM5NjVBCivpmZsgPiBiw6w7ICM5NjVCCivpmZwgPiB4acOhOyAjOTY1Qwor6ZmdID4gc2jEg247ICM5NjVECivpmZ4gPiBzaMSTbmc7ICM5NjVFCivpmZ8gPiB6aMOsOyAjOTY1Rgor6ZmgID4gcMWrOyAjOTY2MAor6ZmhID4gZMWPdTsgIzk2NjEKK+mZoiA+IHl1w6BuOyAjOTY2Mgor6ZmjID4gemjDqG47ICM5NjYzCivpmaQgPiBjaMO6OyAjOTY2NAor6ZmlID4geGnDoG47ICM5NjY1CivpmacgPiBuacOoOyAjOTY2Nwor6ZmoID4gecWtbjsgIzk2NjgKK+mZqSA+IHhpxINuOyAjOTY2OQor6ZmqID4gcMOpaTsgIzk2NkEKK+mZqyA+IHDDqWk7ICM5NjZCCivpmawgPiB6xY11OyAjOTY2Qwor6ZmtID4gecSrOyAjOTY2RAor6ZmuID4gZMWtaTsgIzk2NkUKK+mZryA+IGzDum47ICM5NjZGCivpmbAgPiB5xKtuOyAjOTY3MAor6ZmxID4gasWrOyAjOTY3MQor6ZmyID4gY2jDumk7ICM5NjcyCivpmbMgPiBjaMOpbjsgIzk2NzMKK+mZtCA+IHDDrTsgIzk2NzQKK+mZtSA+IGzDrW5nOyAjOTY3NQor6Zm2ID4gdMOhbzsgIzk2NzYKK+mZtyA+IHhpw6BuOyAjOTY3Nwor6Zm4ID4gbMO5OyAjOTY3OAor6Zm5ID4gc2hlbmc7ICM5Njc5CivpmbogPiB4acSDbjsgIzk2N0EKK+mZuyA+IHnEq247ICM5NjdCCivpmbwgPiB6aMWtOyAjOTY3Qwor6Zm9ID4gecOhbmc7ICM5NjdECivpmb4gPiByw6luZzsgIzk2N0UKK+mZvyA+IHNoxINuOyAjOTY3Rgor6ZqAID4gY2jDs25nOyAjOTY4MAor6ZqBID4gecOgbjsgIzk2ODEKK+magiA+IHnEq247ICM5NjgyCivpmoMgPiB5w7o7ICM5NjgzCivpmoQgPiB0w607ICM5Njg0CivpmoUgPiB5w7o7ICM5Njg1CivpmoYgPiBsw7NuZzsgIzk2ODYKK+mahyA+IHfEk2k7ICM5Njg3CivpmoggPiB3xJNpOyAjOTY4OAor6ZqJID4gbmnDqDsgIzk2ODkKK+maiiA+IGTDuWk7ICM5NjhBCivpmosgPiBzw7ppOyAjOTY4Qgor6ZqMID4gxINuOyAjOTY4Qwor6ZqNID4gaHXDoW5nOyAjOTY4RAor6ZqOID4gamnEkzsgIzk2OEUKK+majyA+IHPDumk7ICM5NjhGCivpmpAgPiB5xK1uOyAjOTY5MAor6ZqRID4gZ8SBaTsgIzk2OTEKK+makiA+IHnEg247ICM5NjkyCivpmpMgPiBoxatpOyAjOTY5Mwor6ZqUID4gZ8OpOyAjOTY5NAor6ZqVID4gecWtbjsgIzk2OTUKK+maliA+IHfDuTsgIzk2OTYKK+malyA+IHfElWk7ICM5Njk3CivpmpggPiDDoGk7ICM5Njk4CivpmpkgPiB4w6w7ICM5Njk5CivpmpogPiB0w6FuZzsgIzk2OUEKK+mamyA+IGrDrDsgIzk2OUIKK+manCA+IHpow6BuZzsgIzk2OUMKK+manSA+IGTEg287ICM5NjlECivpmp4gPiDDoW87ICM5NjlFCivpmp8gPiB4w6w7ICM5NjlGCivpmqAgPiB5xK1uOyAjOTZBMAor6ZqiID4gcsOgbzsgIzk2QTIKK+maoyA+IGzDrW47ICM5NkEzCivpmqQgPiB0w7ppOyAjOTZBNAor6ZqlID4gZMOobmc7ICM5NkE1CivpmqYgPiBwxK07ICM5NkE2CivpmqcgPiBzw7lpOyAjOTZBNwor6ZqoID4gc8O6aTsgIzk2QTgKK+maqSA+IHnDuTsgIzk2QTkKK+maqiA+IHhpxINuOyAjOTZBQQor6ZqrID4gZsSTbjsgIzk2QUIKK+marCA+IG7ErTsgIzk2QUMKK+marSA+IMOpcjsgIzk2QUQKK+mariA+IGrEqzsgIzk2QUUKK+maryA+IGTEg287ICM5NkFGCivpmrAgPiB4w607ICM5NkIwCivpmrEgPiB5xK1uOyAjOTZCMQor6ZqyID4gw6k7ICM5NkIyCivpmrMgPiBoxatpOyAjOTZCMwor6Zq0ID4gbMWPbmc7ICM5NkI0CivpmrUgPiB4xKs7ICM5NkI1CivpmrYgPiBsw6w7ICM5NkI2CivpmrcgPiBsw6w7ICM5NkI3CivpmrggPiBsw6w7ICM5NkI4CivpmrkgPiB6aMWraTsgIzk2QjkKK+mauiA+IGjDqDsgIzk2QkEKK+mauyA+IHpoxKs7ICM5NkJCCivpmrwgPiB6aMWtbjsgIzk2QkMKK+mavSA+IGrDuW47ICM5NkJECivpmr4gPiBuw6FuOyAjOTZCRQor6Zq/ID4gecOsOyAjOTZCRgor6ZuAID4gcXXDqDsgIzk2QzAKK+mbgSA+IHnDoG47ICM5NkMxCivpm4IgPiBxacOhbjsgIzk2QzIKK+mbgyA+IHnEgzsgIzk2QzMKK+mbhCA+IHjDrW9uZzsgIzk2QzQKK+mbhSA+IHnEgzsgIzk2QzUKK+mbhiA+IGrDrTsgIzk2QzYKK+mbhyA+IGfDuTsgIzk2QzcKK+mbiCA+IGh1w6FuOyAjOTZDOAor6ZuJID4gemjDrDsgIzk2QzkKK+mbiiA+IGfDsnU7ICM5NkNBCivpm4sgPiBqw7luOyAjOTZDQgor6ZuMID4gY8OtOyAjOTZDQwor6ZuNID4gecWNbmc7ICM5NkNECivpm44gPiBqxas7ICM5NkNFCivpm48gPiBjaMO6OyAjOTZDRgor6ZuQID4gaMWrOyAjOTZEMAor6ZuRID4gesOhOyAjOTZEMQor6ZuSID4gbMO5bzsgIzk2RDIKK+mbkyA+IHnDujsgIzk2RDMKK+mblCA+IGNow7N1OyAjOTZENAor6ZuVID4gZGnEgW87ICM5NkQ1Civpm5YgPiBzxatpOyAjOTZENgor6ZuXID4gaMOgbjsgIzk2RDcKK+mbmCA+IGjDuW87ICM5NkQ4Civpm5kgPiBzaHXEgW5nOyAjOTZEOQor6ZuaID4gZ3XDoG47ICM5NkRBCivpm5sgPiBjaMO6OyAjOTZEQgor6ZucID4gesOhOyAjOTZEQwor6ZudID4gecWNbmc7ICM5NkRECivpm54gPiBqxKs7ICM5NkRFCivpm58gPiB4xKs7ICM5NkRGCivpm6AgPiBjaMOzdTsgIzk2RTAKK+mboSA+IGzDrHU7ICM5NkUxCivpm6IgPiBsw607ICM5NkUyCivpm6MgPiBuw6FuOyAjOTZFMwor6ZukID4geHXDqTsgIzk2RTQKK+mbpSA+IHrDoTsgIzk2RTUKK+mbpiA+IGrDrTsgIzk2RTYKK+mbpyA+IGrDrTsgIzk2RTcKK+mbqCA+IHnFrTsgIzk2RTgKK+mbqSA+IHnDujsgIzk2RTkKK+mbqiA+IHh1xJU7ICM5NkVBCivpm6sgPiBuxIM7ICM5NkVCCivpm6wgPiBmxY91OyAjOTZFQwor6ZutID4gc8OoOyAjOTZFRAor6ZuuID4gbcO5OyAjOTZFRQor6ZuvID4gd8OpbjsgIzk2RUYKK+mbsCA+IGbEk247ICM5NkYwCivpm7EgPiBww6FuZzsgIzk2RjEKK+mbsiA+IHnDum47ICM5NkYyCivpm7MgPiBsw6w7ICM5NkYzCivpm7QgPiBsw6w7ICM5NkY0Civpm7UgPiDEg25nOyAjOTZGNQor6Zu2ID4gbMOtbmc7ICM5NkY2Civpm7cgPiBsw6lpOyAjOTZGNwor6Zu4ID4gw6FuOyAjOTZGOAor6Zu5ID4gYsOhbzsgIzk2RjkKK+mbuiA+IG3DqW5nOyAjOTZGQQor6Zu7ID4gZGnDoG47ICM5NkZCCivpm7wgPiBkw6BuZzsgIzk2RkMKK+mbvSA+IHjDrW5nOyAjOTZGRAor6Zu+ID4gd8O5OyAjOTZGRQor6Zu/ID4gemjDoG87ICM5NkZGCivpnIAgPiB4xas7ICM5NzAwCivpnIEgPiBqw6w7ICM5NzAxCivpnIIgPiBtw7k7ICM5NzAyCivpnIMgPiBjaMOpbjsgIzk3MDMKK+mchCA+IHhpxIFvOyAjOTcwNAor6ZyFID4gemjDoTsgIzk3MDUKK+mchiA+IHTDrW5nOyAjOTcwNgor6ZyHID4gemjDqG47ICM5NzA3CivpnIggPiBww6hpOyAjOTcwOAor6ZyJID4gbcOpaTsgIzk3MDkKK+mciiA+IGzDrW5nOyAjOTcwQQor6ZyLID4gccSrOyAjOTcwQgor6ZyMID4gY2jFjXU7ICM5NzBDCivpnI0gPiBow7lvOyAjOTcwRAor6ZyOID4gc2jDoDsgIzk3MEUKK+mcjyA+IGbEk2k7ICM5NzBGCivpnJAgPiB3xJNuZzsgIzk3MTAKK+mckSA+IHpoxIFuOyAjOTcxMQor6ZySID4gecSrbjsgIzk3MTIKK+mckyA+IG7DrTsgIzk3MTMKK+mclCA+IGNow7J1OyAjOTcxNAor6ZyVID4gdMO6bjsgIzk3MTUKK+mcliA+IGzDrW47ICM5NzE2CivpnJggPiBkw7JuZzsgIzk3MTgKK+mcmSA+IHnEq25nOyAjOTcxOQor6ZyaID4gd8O5OyAjOTcxQQor6ZybID4gbMOtbmc7ICM5NzFCCivpnJwgPiBzaHXEgW5nOyAjOTcxQwor6ZydID4gbMOtbmc7ICM5NzFECivpnJ4gPiB4acOhOyAjOTcxRQor6ZyfID4gaMOzbmc7ICM5NzFGCivpnKAgPiB5xKtuOyAjOTcyMAor6ZyhID4gbcOyOyAjOTcyMQor6ZyiID4gbcOgaTsgIzk3MjIKK+mcoyA+IHnFrW47ICM5NzIzCivpnKQgPiBsw6x1OyAjOTcyNAor6ZylID4gbcOobmc7ICM5NzI1CivpnKYgPiBixKtuOyAjOTcyNgor6ZynID4gd8O5OyAjOTcyNwor6ZyoID4gd8OoaTsgIzk3MjgKK+mcqSA+IGjDuW87ICM5NzI5CivpnKogPiB5w61uOyAjOTcyQQor6ZyrID4geMOtOyAjOTcyQgor6ZysID4gecOsOyAjOTcyQwor6ZytID4gxINpOyAjOTcyRAor6ZyuID4gZMOgbjsgIzk3MkUKK+mcryA+IGTDqG5nOyAjOTcyRgor6ZywID4geGnDoG47ICM5NzMwCivpnLEgPiB5w7k7ICM5NzMxCivpnLIgPiBsw7k7ICM5NzMyCivpnLMgPiBsw7NuZzsgIzk3MzMKK+mctCA+IGTDoGk7ICM5NzM0CivpnLUgPiBqw607ICM5NzM1CivpnLYgPiBww6FuZzsgIzk3MzYKK+mctyA+IHnDoW5nOyAjOTczNwor6Zy4ID4gYsOgOyAjOTczOAor6Zy5ID4gcMSrOyAjOTczOQor6Zy6ID4gd8OpaTsgIzk3M0EKK+mcvCA+IHjErTsgIzk3M0MKK+mcvSA+IGrDrDsgIzk3M0QKK+mcviA+IG3DoWk7ICM5NzNFCivpnL8gPiBtw6huZzsgIzk3M0YKK+mdgCA+IG3DqW5nOyAjOTc0MAor6Z2BID4gbMOpaTsgIzk3NDEKK+mdgiA+IGzDrDsgIzk3NDIKK+mdgyA+IGjDuW87ICM5NzQzCivpnYQgPiDEg2k7ICM5NzQ0CivpnYUgPiBmw6hpOyAjOTc0NQor6Z2GID4gZMOgaTsgIzk3NDYKK+mdhyA+IGzDs25nOyAjOTc0Nwor6Z2IID4gbMOtbmc7ICM5NzQ4CivpnYkgPiDDoGk7ICM5NzQ5CivpnYogPiBmxJNuZzsgIzk3NEEKK+mdiyA+IGzDrDsgIzk3NEIKK+mdjCA+IGLEg287ICM5NzRDCivpnY4gPiBow6g7ICM5NzRFCivpnY8gPiBow6g7ICM5NzRGCivpnZAgPiBiw6xuZzsgIzk3NTAKK+mdkSA+IHHEq25nOyAjOTc1MQor6Z2SID4gccSrbmc7ICM5NzUyCivpnZMgPiBqw6xuZzsgIzk3NTMKK+mdlCA+IHRpxIFuOyAjOTc1NAor6Z2VID4gemjEk247ICM5NzU1CivpnZYgPiBqw6xuZzsgIzk3NTYKK+mdlyA+IGNow6huZzsgIzk3NTcKK+mdmCA+IHHDrG5nOyAjOTc1OAor6Z2ZID4gasOsbmc7ICM5NzU5CivpnZogPiBqw6xuZzsgIzk3NUEKK+mdmyA+IGRpw6BuOyAjOTc1Qgor6Z2cID4gasOsbmc7ICM5NzVDCivpnZ0gPiB0acSBbjsgIzk3NUQKK+mdniA+IGbEk2k7ICM5NzVFCivpnZ8gPiBmxJNpOyAjOTc1Rgor6Z2gID4ga8OgbzsgIzk3NjAKK+mdoSA+IG3ErTsgIzk3NjEKK+mdoiA+IG1pw6BuOyAjOTc2Mgor6Z2jID4gbWnDoG47ICM5NzYzCivpnaQgPiBww6BvOyAjOTc2NAor6Z2lID4gecOoOyAjOTc2NQor6Z2mID4gdGnEg247ICM5NzY2CivpnacgPiBow7lpOyAjOTc2Nwor6Z2oID4gecOoOyAjOTc2OAor6Z2pID4gZ8OpOyAjOTc2OQor6Z2qID4gZMSrbmc7ICM5NzZBCivpnasgPiBjaMSBOyAjOTc2Qgor6Z2sID4gamnEgW47ICM5NzZDCivpna0gPiByw6huOyAjOTc2RAor6Z2uID4gZMOtOyAjOTc2RQor6Z2vID4gZMO5OyAjOTc2Rgor6Z2wID4gd8O5OyAjOTc3MAor6Z2xID4gcsOobjsgIzk3NzEKK+mdsiA+IHHDrW47ICM5NzcyCivpnbMgPiBqw6xuOyAjOTc3Mwor6Z20ID4geHXEkzsgIzk3NzQKK+mdtSA+IG7ErXU7ICM5Nzc1CivpnbYgPiBixIM7ICM5Nzc2CivpnbcgPiB5xK1uOyAjOTc3Nwor6Z24ID4gc8SDOyAjOTc3OAor6Z25ID4gbsOgOyAjOTc3OQor6Z26ID4gbcOyOyAjOTc3QQor6Z27ID4gesWtOyAjOTc3Qgor6Z28ID4gZMOhOyAjOTc3Qwor6Z29ID4gYsOgbjsgIzk3N0QKK+mdviA+IHnDrDsgIzk3N0UKK+mdvyA+IHnDoG87ICM5NzdGCivpnoAgPiB0w6FvOyAjOTc4MAor6Z6BID4gdMO6bzsgIzk3ODEKK+megiA+IGppw6E7ICM5NzgyCivpnoMgPiBow7NuZzsgIzk3ODMKK+mehCA+IHDDoW87ICM5Nzg0CivpnoUgPiB5xINuZzsgIzk3ODUKK+mehyA+IHnEq247ICM5Nzg3CivpnoggPiBqacOhOyAjOTc4OAor6Z6JID4gdMOhbzsgIzk3ODkKK+meiiA+IGrDrTsgIzk3OEEKK+meiyA+IHhpw6k7ICM5NzhCCivpnowgPiDEgW47ICM5NzhDCivpno0gPiDEgW47ICM5NzhECivpno4gPiBow6luOyAjOTc4RQor6Z6PID4gZ8WPbmc7ICM5NzhGCivpnpEgPiBkw6E7ICM5NzkxCivpnpIgPiBxacSBbzsgIzk3OTIKK+mekyA+IHTEq25nOyAjOTc5Mwor6Z6UID4gd8SDbjsgIzk3OTQKK+melSA+IHnDrG5nOyAjOTc5NQor6Z6WID4gc8WraTsgIzk3OTYKK+melyA+IHRpw6FvOyAjOTc5Nwor6Z6YID4gcWnDoG87ICM5Nzk4CivpnpkgPiB4dcOgbjsgIzk3OTkKK+memiA+IGvDsm5nOyAjOTc5QQor6Z6bID4gYsSVbmc7ICM5NzlCCivpnpwgPiB0w6A7ICM5NzlDCivpnp0gPiB6aMSDbmc7ICM5NzlECivpnp4gPiBixK1uZzsgIzk3OUUKK+menyA+IGvDuW87ICM5NzlGCivpnqAgPiBqw7o7ICM5N0EwCivpnqEgPiBsYTsgIzk3QTEKK+meoiA+IHhpw6g7ICM5N0EyCivpnqMgPiByw7N1OyAjOTdBMwor6Z6kID4gYsSBbmc7ICM5N0E0CivpnqUgPiB5w6w7ICM5N0E1CivpnqYgPiBxxKt1OyAjOTdBNgor6Z6nID4gccSrdTsgIzk3QTcKK+meqCA+IGjDqTsgIzk3QTgKK+meqSA+IHhpw6BvOyAjOTdBOQor6Z6qID4gbcO5OyAjOTdBQQor6Z6rID4gasO6OyAjOTdBQgor6Z6sID4gamnEgW47ICM5N0FDCivpnq0gPiBiacSBbjsgIzk3QUQKK+meriA+IGTEqzsgIzk3QUUKK+meryA+IGppxIFuOyAjOTdBRgor6Z6xID4gdMSBbzsgIzk3QjEKK+mesiA+IGfFjXU7ICM5N0IyCivpnrMgPiB0w6A7ICM5N0IzCivpnrQgPiBiw6hpOyAjOTdCNAor6Z61ID4geGnDqTsgIzk3QjUKK+metiA+IHDDoW47ICM5N0I2CivpnrcgPiBnw6k7ICM5N0I3CivpnrggPiBiw6w7ICM5N0I4CivpnrkgPiBrw7lvOyAjOTdCOQor6Z66ID4gdGFuZzsgIzk3QkEKK+meuyA+IGzDs3U7ICM5N0JCCivpnrwgPiBnw7lpOyAjOTdCQwor6Z69ID4gcWnDoW87ICM5N0JECivpnr4gPiB4dcSTOyAjOTdCRQor6Z6/ID4gasSrOyAjOTdCRgor6Z+AID4gamnEgW47ICM5N0MwCivpn4EgPiBqacSBbmc7ICM5N0MxCivpn4IgPiBjaMOgbjsgIzk3QzIKK+mfgyA+IGTDoTsgIzk3QzMKK+mfhCA+IGjDuW87ICM5N0M0Civpn4UgPiB4acSDbjsgIzk3QzUKK+mfhiA+IHFpxIFuOyAjOTdDNgor6Z+HID4gZMO6OyAjOTdDNwor6Z+IID4gd8OgOyAjOTdDOAor6Z+JID4gamnEgW47ICM5N0M5Civpn4ogPiBsw6FuOyAjOTdDQQor6Z+LID4gd8OpaTsgIzk3Q0IKK+mfjCA+IHLDqG47ICM5N0NDCivpn40gPiBmw7o7ICM5N0NECivpn44gPiBtw6hpOyAjOTdDRQor6Z+PID4ganXDoG47ICM5N0NGCivpn5AgPiBnw6k7ICM5N0QwCivpn5EgPiB3xJVpOyAjOTdEMQor6Z+SID4gcWnDoG87ICM5N0QyCivpn5MgPiBow6FuOyAjOTdEMwor6Z+UID4gY2jDoG5nOyAjOTdENAor6Z+WID4gcsOzdTsgIzk3RDYKK+mflyA+IHjDuW47ICM5N0Q3Civpn5ggPiBzaMOoOyAjOTdEOAor6Z+ZID4gd8SVaTsgIzk3RDkKK+mfmiA+IGfDqTsgIzk3REEKK+mfmyA+IGLDqGk7ICM5N0RCCivpn5wgPiB0xIFvOyAjOTdEQwor6Z+dID4gZ8WNdTsgIzk3REQKK+mfniA+IHnDuW47ICM5N0RFCivpn6AgPiBiw6w7ICM5N0UwCivpn6EgPiB3xJVpOyAjOTdFMQor6Z+iID4gaMO5aTsgIzk3RTIKK+mfoyA+IGTDujsgIzk3RTMKK+mfpCA+IHfDoDsgIzk3RTQKK+mfpSA+IGTDujsgIzk3RTUKK+mfpiA+IHfDqWk7ICM5N0U2Civpn6cgPiByw6huOyAjOTdFNwor6Z+oID4gZsO6OyAjOTdFOAor6Z+pID4gaMOhbjsgIzk3RTkKK+mfqiA+IHfElWk7ICM5N0VBCivpn6sgPiB5w7luOyAjOTdFQgor6Z+sID4gdMSBbzsgIzk3RUMKK+mfrSA+IGrErXU7ICM5N0VECivpn64gPiBqxK11OyAjOTdFRQor6Z+vID4geGnEgW47ICM5N0VGCivpn7AgPiB4acOoOyAjOTdGMAor6Z+xID4geGnEgW47ICM5N0YxCivpn7IgPiBqxKs7ICM5N0YyCivpn7MgPiB5xKtuOyAjOTdGMwor6Z+0ID4gesOhOyAjOTdGNAor6Z+1ID4gecO5bjsgIzk3RjUKK+mftiA+IHNow6FvOyAjOTdGNgor6Z+3ID4gbMOoOyAjOTdGNwor6Z+4ID4gcMOpbmc7ICM5N0Y4Civpn7kgPiBow6luZzsgIzk3RjkKK+mfuiA+IHnEq25nOyAjOTdGQQor6Z+7ID4gecO5bjsgIzk3RkIKK+mfvCA+IHDDqW5nOyAjOTdGQwor6Z+9ID4gecSrbjsgIzk3RkQKK+mfviA+IHnEq247ICM5N0ZFCivpn78gPiB4acSDbmc7ICM5N0ZGCivpoIAgPiBow7k7ICM5ODAwCivpoIEgPiB5w6g7ICM5ODAxCivpoIIgPiBkxK1uZzsgIzk4MDIKK+mggyA+IHHErW5nOyAjOTgwMwor6aCEID4gcMOgbjsgIzk4MDQKK+mghSA+IHhpw6BuZzsgIzk4MDUKK+mghiA+IHNow7luOyAjOTgwNgor6aCHID4gaMSBbjsgIzk4MDcKK+mgiCA+IHjFqzsgIzk4MDgKK+mgiSA+IHnDrTsgIzk4MDkKK+mgiiA+IHjDuTsgIzk4MEEKK+mgiyA+IGfDuTsgIzk4MEIKK+mgjCA+IHPDsm5nOyAjOTgwQwor6aCNID4ga8WtaTsgIzk4MEQKK+mgjiA+IHHDrTsgIzk4MEUKK+mgjyA+IGjDoW5nOyAjOTgwRgor6aCQID4gecO5OyAjOTgxMAor6aCRID4gd8OhbjsgIzk4MTEKK+mgkiA+IGLEgW47ICM5ODEyCivpoJMgPiBkw7luOyAjOTgxMwor6aCUID4gZMOtOyAjOTgxNAor6aCVID4gZMSBbjsgIzk4MTUKK+mgliA+IHDDoG47ICM5ODE2CivpoJcgPiBwxY87ICM5ODE3CivpoJggPiBsxK1uZzsgIzk4MTgKK+mgmSA+IGPDqDsgIzk4MTkKK+mgmiA+IGrErW5nOyAjOTgxQQor6aCbID4gbMSVaTsgIzk4MUIKK+mgnCA+IGjDqTsgIzk4MUMKK+mgnSA+IHFpxIFvOyAjOTgxRAor6aCeID4gw6g7ICM5ODFFCivpoJ8gPiDDqTsgIzk4MUYKK+mgoCA+IHfElWk7ICM5ODIwCivpoKEgPiBqacOpOyAjOTgyMQor6aCiID4gZ3XEgTsgIzk4MjIKK+mgoyA+IHNoxJVuOyAjOTgyMwor6aCkID4gecOtOyAjOTgyNAor6aClID4gc2jElW47ICM5ODI1CivpoKYgPiBow6FpOyAjOTgyNgor6aCnID4gZMWraTsgIzk4MjcKK+mgqCA+IHBpxIFuOyAjOTgyOAor6aCpID4gcMSrbmc7ICM5ODI5CivpoKogPiBsw6hpOyAjOTgyQQor6aCrID4gZsWtOyAjOTgyQgor6aCsID4gamnDoTsgIzk4MkMKK+mgrSA+IHTDs3U7ICM5ODJECivpoK4gPiBow7lpOyAjOTgyRQor6aCvID4ga8O6aTsgIzk4MkYKK+mgsCA+IGppw6E7ICM5ODMwCivpoLEgPiBsw6g7ICM5ODMxCivpoLIgPiB0aWFuOyAjOTgzMgor6aCzID4gY2jEk25nOyAjOTgzMwor6aC0ID4gecStbmc7ICM5ODM0CivpoLUgPiBqxatuOyAjOTgzNQor6aC2ID4gaMO6OyAjOTgzNgor6aC3ID4gaMOgbjsgIzk4MzcKK+mguCA+IGrErW5nOyAjOTgzOAor6aC5ID4gdMO6aTsgIzk4MzkKK+mguiA+IHTDumk7ICM5ODNBCivpoLsgPiBww61uOyAjOTgzQgor6aC8ID4gbMOgaTsgIzk4M0MKK+mgvSA+IHTDumk7ICM5ODNECivpoL4gPiB6xKs7ICM5ODNFCivpoL8gPiB6xKs7ICM5ODNGCivpoYAgPiBjaMO6aTsgIzk4NDAKK+mhgSA+IGTDrG5nOyAjOTg0MQor6aGCID4gbMOgaTsgIzk4NDIKK+mhgyA+IHnDoW47ICM5ODQzCivpoYQgPiBow6BuOyAjOTg0NAor6aGFID4gamnEgW47ICM5ODQ1CivpoYYgPiBrxJM7ICM5ODQ2CivpoYcgPiBjw7lpOyAjOTg0Nwor6aGIID4gasStb25nOyAjOTg0OAor6aGJID4gccSrbjsgIzk4NDkKK+mhiiA+IHnDrTsgIzk4NEEKK+mhiyA+IHPEgWk7ICM5ODRCCivpoYwgPiB0w607ICM5ODRDCivpoY0gPiDDqTsgIzk4NEQKK+mhjiA+IMOoOyAjOTg0RQor6aGPID4gecOhbjsgIzk4NEYKK+mhkCA+IGjDum47ICM5ODUwCivpoZEgPiBrxINuOyAjOTg1MQor6aGSID4gecOzbmc7ICM5ODUyCivpoZMgPiB6aHXEgW47ICM5ODUzCivpoZQgPiB5w6FuOyAjOTg1NAor6aGVID4geGnEg247ICM5ODU1CivpoZYgPiB4w6xuOyAjOTg1Ngor6aGXID4gecStOyAjOTg1Nwor6aGYID4geXXDoG47ICM5ODU4CivpoZkgPiBzxINuZzsgIzk4NTkKK+mhmiA+IGRpxIFuOyAjOTg1QQor6aGbID4gZGnEgW47ICM5ODVCCivpoZwgPiBqacSDbmc7ICM5ODVDCivpoZ0gPiBrxas7ICM5ODVECivpoZ4gPiBsw6hpOyAjOTg1RQor6aGfID4gbGnDoW87ICM5ODVGCivpoaAgPiBwacOgbzsgIzk4NjAKK+mhoSA+IHnDrDsgIzk4NjEKK+mhoiA+IG3DoW47ICM5ODYyCivpoaMgPiBxxKs7ICM5ODYzCivpoaQgPiByw6BvOyAjOTg2NAor6aGlID4gaMOgbzsgIzk4NjUKK+mhpiA+IHFpw6FvOyAjOTg2Ngor6aGnID4gZ8O5OyAjOTg2Nwor6aGoID4geMO5bjsgIzk4NjgKK+mhqSA+IHFpxIFuOyAjOTg2OQor6aGqID4gaMWraTsgIzk4NkEKK+mhqyA+IHpow6BuOyAjOTg2Qgor6aGsID4gcsO6OyAjOTg2Qwor6aGtID4gaMWNbmc7ICM5ODZECivpoa4gPiBixKtuOyAjOTg2RQor6aGvID4geGnEg247ICM5ODZGCivpobAgPiBww61uOyAjOTg3MAor6aGxID4gbMO6OyAjOTg3MQor6aGyID4gbMSDbjsgIzk4NzIKK+mhsyA+IG5pw6g7ICM5ODczCivpobQgPiBxdcOhbjsgIzk4NzQKK+mhtSA+IHnDqDsgIzk4NzUKK+mhtiA+IGTErW5nOyAjOTg3Ngor6aG3ID4gccStbmc7ICM5ODc3CivpobggPiBoxIFuOyAjOTg3OAor6aG5ID4geGnDoG5nOyAjOTg3OQor6aG6ID4gc2jDuW47ICM5ODdBCivpobsgPiB4xas7ICM5ODdCCivpobwgPiB4w7k7ICM5ODdDCivpob0gPiB3w6FuOyAjOTg3RAor6aG+ID4gZ8O5OyAjOTg3RQor6aG/ID4gZMO5bjsgIzk4N0YKK+migCA+IHHDrTsgIzk4ODAKK+migSA+IGLEgW47ICM5ODgxCivpooIgPiBzw7JuZzsgIzk4ODIKK+migyA+IGjDoW5nOyAjOTg4Mwor6aKEID4gecO5OyAjOTg4NAor6aKFID4gbMO6OyAjOTg4NQor6aKGID4gbMStbmc7ICM5ODg2CivpoocgPiBwxY87ICM5ODg3CivpooggPiBqxK1uZzsgIzk4ODgKK+miiSA+IGppw6k7ICM5ODg5CivpooogPiBqacOhOyAjOTg4QQor6aKLID4gdGlhbjsgIzk4OEIKK+mijCA+IGjDoG47ICM5ODhDCivpoo0gPiB5xK1uZzsgIzk4OEQKK+mijiA+IGrErW9uZzsgIzk4OEUKK+mijyA+IGjDoWk7ICM5ODhGCivpopAgPiB5w607ICM5ODkwCivpopEgPiBww61uOyAjOTg5MQor6aKSID4gaMO5aTsgIzk4OTIKK+mikyA+IHTDumk7ICM5ODkzCivpopQgPiBow6BuOyAjOTg5NAor6aKVID4gecStbmc7ICM5ODk1CivpopYgPiB5xK1uZzsgIzk4OTYKK+milyA+IGvEkzsgIzk4OTcKK+mimCA+IHTDrTsgIzk4OTgKK+mimSA+IHnDs25nOyAjOTg5OQor6aKaID4gw6g7ICM5ODlBCivpopsgPiB6aHXEgW47ICM5ODlCCivpopwgPiB5w6FuOyAjOTg5Qwor6aKdID4gw6k7ICM5ODlECivpop4gPiBuacOoOyAjOTg5RQor6aKfID4gbcOhbjsgIzk4OUYKK+mioCA+IGRpxIFuOyAjOThBMAor6aKhID4gc8SDbmc7ICM5OEExCivpoqIgPiBow6BvOyAjOThBMgor6aKjID4gbMOoaTsgIzk4QTMKK+mipCA+IHpow6BuOyAjOThBNAor6aKlID4gcsO6OyAjOThBNQor6aKmID4gcMOtbjsgIzk4QTYKK+mipyA+IHF1w6FuOyAjOThBNwor6aKoID4gZsSTbmc7ICM5OEE4CivpoqkgPiBiacSBbzsgIzk4QTkKK+miqyA+IGbDujsgIzk4QUIKK+mirCA+IHhpxIE7ICM5OEFDCivpoq0gPiB6aMSDbjsgIzk4QUQKK+miriA+IGJpxIFvOyAjOThBRQor6aKvID4gc8OgOyAjOThBRgor6aKwID4gYsOhOyAjOThCMAor6aKxID4gdMOhaTsgIzk4QjEKK+misiA+IGxpw6g7ICM5OEIyCivporMgPiBndcSBOyAjOThCMwor6aK0ID4geHXDoG47ICM5OEI0CivporUgPiBzaMOgbzsgIzk4QjUKK+mitiA+IGrDuTsgIzk4QjYKK+mityA+IGLEqzsgIzk4QjcKK+miuCA+IHPEqzsgIzk4QjgKK+miuSA+IHfElWk7ICM5OEI5CivporogPiB5w6FuZzsgIzk4QkEKK+miuyA+IHnDoW87ICM5OEJCCivporwgPiBzxY11OyAjOThCQwor6aK9ID4ga8SDaTsgIzk4QkQKK+miviA+IHPEgW87ICM5OEJFCivpor8gPiBmw6FuOyAjOThCRgor6aOAID4gbMOtdTsgIzk4QzAKK+mjgSA+IHjDrTsgIzk4QzEKK+mjgiA+IGxpw6FvOyAjOThDMgor6aODID4gcGnEgW87ICM5OEMzCivpo4QgPiBwacSBbzsgIzk4QzQKK+mjhSA+IGzDrXU7ICM5OEM1Civpo4YgPiBiacSBbzsgIzk4QzYKK+mjhyA+IGJpxIFvOyAjOThDNwor6aOIID4gYmnEg287ICM5OEM4Civpo4kgPiBsacOhbzsgIzk4QzkKK+mjiyA+IHPDqDsgIzk4Q0IKK+mjjCA+IGbEk25nOyAjOThDQwor6aONID4gYmnEgW87ICM5OENECivpo44gPiBmxJNuZzsgIzk4Q0UKK+mjjyA+IHnDoW5nOyAjOThDRgor6aOQID4gemjEg247ICM5OEQwCivpo5EgPiBiacSBbzsgIzk4RDEKK+mjkiA+IHPDoDsgIzk4RDIKK+mjkyA+IGrDuTsgIzk4RDMKK+mjlCA+IHPEqzsgIzk4RDQKK+mjlSA+IHPFjXU7ICM5OEQ1Civpo5YgPiB5w6FvOyAjOThENgor6aOXID4gbMOtdTsgIzk4RDcKK+mjmCA+IHBpxIFvOyAjOThEOAor6aOZID4gYmnEgW87ICM5OEQ5Civpo5ogPiBiacSBbzsgIzk4REEKK+mjmyA+IGbEk2k7ICM5OERCCivpo5wgPiBmxIFuOyAjOThEQwor6aOdID4gZsSTaTsgIzk4REQKK+mjniA+IGbEk2k7ICM5OERFCivpo58gPiBzaMOtOyAjOThERgor6aOgID4gc2jDrTsgIzk4RTAKK+mjoSA+IGPEgW47ICM5OEUxCivpo6IgPiBqxKs7ICM5OEUyCivpo6MgPiBkw6xuZzsgIzk4RTMKK+mjpCA+IHPDrDsgIzk4RTQKK+mjpSA+IHTFq287ICM5OEU1Civpo6YgPiB6aMSBbjsgIzk4RTYKK+mjpyA+IHPFq247ICM5OEU3Civpo6ggPiB4acSDbmc7ICM5OEU4Civpo6kgPiB0w7puOyAjOThFOQor6aOqID4gcsOobjsgIzk4RUEKK+mjqyA+IHnDuTsgIzk4RUIKK+mjrCA+IGp1w6BuOyAjOThFQwor6aOtID4gY2jDrDsgIzk4RUQKK+mjriA+IHnErW47ICM5OEVFCivpo68gPiBmw6BuOyAjOThFRgor6aOwID4gZsOgbjsgIzk4RjAKK+mjsSA+IHPFq247ICM5OEYxCivpo7IgPiB5xK1uOyAjOThGMgor6aOzID4gemjDuTsgIzk4RjMKK+mjtCA+IHnDrTsgIzk4RjQKK+mjtSA+IHpoxINpOyAjOThGNQor6aO2ID4gYsOsOyAjOThGNgor6aO3ID4gamnElTsgIzk4RjcKK+mjuCA+IHTEgW87ICM5OEY4Civpo7kgPiBsxK11OyAjOThGOQor6aO6ID4gY8OtOyAjOThGQQor6aO7ID4gdGnDqDsgIzk4RkIKK+mjvCA+IHPDrDsgIzk4RkMKK+mjvSA+IGLEg287ICM5OEZECivpo74gPiBzaMOsOyAjOThGRQor6aO/ID4gZMO5bzsgIzk4RkYKK+mkgCA+IGjDoGk7ICM5OTAwCivppIEgPiByw6huOyAjOTkwMQor6aSCID4gdGnEg247ICM5OTAyCivppIMgPiBqacSDbzsgIzk5MDMKK+mkhCA+IGppw6E7ICM5OTA0CivppIUgPiBixK1uZzsgIzk5MDUKK+mkhiA+IHnDoW87ICM5OTA2CivppIcgPiB0w7NuZzsgIzk5MDcKK+mkiCA+IGPDrTsgIzk5MDgKK+mkiSA+IHhpxINuZzsgIzk5MDkKK+mkiiA+IHnEg25nOyAjOTkwQQor6aSLID4gecSDbmc7ICM5OTBCCivppIwgPiDElXI7ICM5OTBDCivppI0gPiB5w6BuOyAjOTkwRAor6aSOID4gbGU7ICM5OTBFCivppI8gPiB5xKs7ICM5OTBGCivppJAgPiBjxIFuOyAjOTkxMAor6aSRID4gYsOzOyAjOTkxMQor6aSSID4gbsSVaTsgIzk5MTIKK+mkkyA+IMOoOyAjOTkxMwor6aSUID4gYsWrOyAjOTkxNAor6aSVID4gasO5bjsgIzk5MTUKK+mkliA+IGTDsnU7ICM5OTE2CivppJcgPiBzw7k7ICM5OTE3CivppJggPiB5w7o7ICM5OTE4CivppJkgPiBzaMOsOyAjOTkxOQor6aSaID4gecOhbzsgIzk5MUEKK+mkmyA+IGjDum47ICM5OTFCCivppJwgPiBnxa1vOyAjOTkxQwor6aSdID4gc2jDrDsgIzk5MUQKK+mkniA+IGppw6BuOyAjOTkxRQor6aSfID4gemjDuWk7ICM5OTFGCivppKAgPiBixK1uZzsgIzk5MjAKK+mkoSA+IHhpw6BuOyAjOTkyMQor6aSiID4gYsO5OyAjOTkyMgor6aSjID4gecOoOyAjOTkyMwor6aSkID4gdMOhbjsgIzk5MjQKK+mkpSA+IGbElWk7ICM5OTI1CivppKYgPiB6aMSBbmc7ICM5OTI2CivppKcgPiB3w6hpOyAjOTkyNwor6aSoID4gZ3XEg247ICM5OTI4CivppKkgPiDDqDsgIzk5MjkKK+mkqiA+IG51xINuOyAjOTkyQQor6aSrID4gaMO6bjsgIzk5MkIKK+mkrCA+IGjDujsgIzk5MkMKK+mkrSA+IGh1w6FuZzsgIzk5MkQKK+mkriA+IHRpw6g7ICM5OTJFCivppK8gPiBow7lpOyAjOTkyRgor6aSwID4gamnEgW47ICM5OTMwCivppLEgPiBow7N1OyAjOTkzMQor6aSyID4gaMOpOyAjOTkzMgor6aSzID4geMOtbmc7ICM5OTMzCivppLQgPiBmxJNuOyAjOTkzNAor6aS1ID4gd8OoaTsgIzk5MzUKK+mktiA+IGfFrTsgIzk5MzYKK+mktyA+IGNoxIE7ICM5OTM3CivppLggPiBzw7JuZzsgIzk5MzgKK+mkuSA+IHTDoW5nOyAjOTkzOQor6aS6ID4gYsOzOyAjOTkzQQor6aS7ID4gZ8SBbzsgIzk5M0IKK+mkvCA+IHjDrDsgIzk5M0MKK+mkvSA+IGvDuWk7ICM5OTNECivppL4gPiBsw6x1OyAjOTkzRQor6aS/ID4gc8WNdTsgIzk5M0YKK+mlgCA+IHTDoW87ICM5OTQwCivppYEgPiB5w6g7ICM5OTQxCivppYIgPiB5w7puOyAjOTk0Mgor6aWDID4gbcOzOyAjOTk0Mwor6aWEID4gdMOhbmc7ICM5OTQ0CivppYUgPiBtw6FuOyAjOTk0NQor6aWGID4gYsOsOyAjOTk0Ngor6aWHID4gecO5OyAjOTk0Nwor6aWIID4geMSrdTsgIzk5NDgKK+mliSA+IGrErW47ICM5OTQ5CivppYogPiBzxINuOyAjOTk0QQor6aWLID4ga8O5aTsgIzk5NEIKK+mljCA+IHpodcOgbjsgIzk5NEMKK+mljSA+IHNow6BuOyAjOTk0RAor6aWOID4gY2jDrDsgIzk5NEUKK+mljyA+IGTDoG47ICM5OTRGCivppZAgPiB5w6w7ICM5OTUwCivppZEgPiBqxKs7ICM5OTUxCivppZIgPiByw6FvOyAjOTk1Mgor6aWTID4gY2jEk25nOyAjOTk1Mwor6aWUID4gecWNbmc7ICM5OTU0CivppZUgPiB0xIFvOyAjOTk1NQor6aWWID4gaMO5aTsgIzk5NTYKK+mllyA+IHhpxINuZzsgIzk5NTcKK+mlmCA+IHpoxIFuOyAjOTk1OAor6aWZID4gZsSTbjsgIzk5NTkKK+mlmiA+IGjDoGk7ICM5OTVBCivppZsgPiBtw6luZzsgIzk5NUIKK+mlnCA+IHnDoG47ICM5OTVDCivppZ0gPiBtw7M7ICM5OTVECivppZ4gPiBjaMOhbjsgIzk5NUUKK+mlnyA+IHhpxINuZzsgIzk5NUYKK+mloCA+IGzDum87ICM5OTYwCivppaEgPiB6dcOgbjsgIzk5NjEKK+mloiA+IG7Eg25nOyAjOTk2Mgor6aWjID4gc2jDrTsgIzk5NjMKK+mlpCA+IGTDrG5nOyAjOTk2NAor6aWlID4gasSrOyAjOTk2NQor6aWmID4gdMWrbzsgIzk5NjYKK+mlpyA+IHjDrW5nOyAjOTk2Nwor6aWoID4gdMO6bjsgIzk5NjgKK+mlqSA+IHjDrDsgIzk5NjkKK+mlqiA+IHLDqG47ICM5OTZBCivppasgPiB5w7k7ICM5OTZCCivppawgPiBjaMOsOyAjOTk2Qwor6aWtID4gZsOgbjsgIzk5NkQKK+mlriA+IHnErW47ICM5OTZFCivppa8gPiBqacOgbjsgIzk5NkYKK+mlsCA+IHNow6w7ICM5OTcwCivppbEgPiBixINvOyAjOTk3MQor6aWyID4gc8OsOyAjOTk3Mgor6aWzID4gZMO5bzsgIzk5NzMKK+mltCA+IHnDrTsgIzk5NzQKK+mltSA+IMSVcjsgIzk5NzUKK+mltiA+IHLDoW87ICM5OTc2CivppbcgPiB4acSDbmc7ICM5OTc3CivppbggPiBqacOhOyAjOTk3OAor6aW5ID4gbGU7ICM5OTc5CivppbogPiBqacSDbzsgIzk5N0EKK+mluyA+IHnEqzsgIzk5N0IKK+mlvCA+IGLErW5nOyAjOTk3Qwor6aW9ID4gYsOzOyAjOTk3RAor6aW+ID4gZMOydTsgIzk5N0UKK+mlvyA+IMOoOyAjOTk3Rgor6aaAID4gecO6OyAjOTk4MAor6aaBID4gbsSVaTsgIzk5ODEKK+mmgiA+IGrDuW47ICM5OTgyCivppoMgPiBnxa1vOyAjOTk4Mwor6aaEID4gaMO6bjsgIzk5ODQKK+mmhSA+IHhpw6BuOyAjOTk4NQor6aaGID4gZ3XEg247ICM5OTg2CivppocgPiBjaMSBOyAjOTk4Nwor6aaIID4ga8O5aTsgIzk5ODgKK+mmiSA+IGfFrTsgIzk5ODkKK+mmiiA+IHPFjXU7ICM5OThBCivpposgPiBjaMOhbjsgIzk5OEIKK+mmjCA+IHnDqDsgIzk5OEMKK+mmjSA+IG3DszsgIzk5OEQKK+mmjiA+IGLDszsgIzk5OEUKK+mmjyA+IGzDrHU7ICM5OThGCivpppAgPiB4xKt1OyAjOTk5MAor6aaRID4gasStbjsgIzk5OTEKK+mmkiA+IG3DoW47ICM5OTkyCivpppMgPiBzxINuOyAjOTk5Mwor6aaUID4gemh1w6BuOyAjOTk5NAor6aaVID4gbsSDbmc7ICM5OTk1CivpppYgPiBzaMWPdTsgIzk5OTYKK+mmlyA+IGvDumk7ICM5OTk3CivpppggPiBnw7pvOyAjOTk5OAor6aaZID4geGnEgW5nOyAjOTk5OQor6aaaID4gZsOpbjsgIzk5OUEKK+mmmyA+IGLDoTsgIzk5OUIKK+mmnCA+IG7ErTsgIzk5OUMKK+mmnSA+IGLDrDsgIzk5OUQKK+mmniA+IGLDszsgIzk5OUUKK+mmnyA+IHTDujsgIzk5OUYKK+mmoCA+IGjEgW47ICM5OUEwCivppqEgPiBmxJNpOyAjOTlBMQor6aaiID4gamnEgW47ICM5OUEyCivppqMgPiDEgW47ICM5OUEzCivppqQgPiDEg2k7ICM5OUE0CivppqUgPiBmw7k7ICM5OUE1CivppqYgPiB4acSBbjsgIzk5QTYKK+mmpyA+IHfEk247ICM5OUE3CivppqggPiB4xKtuOyAjOTlBOAor6aapID4gZsOpbjsgIzk5QTkKK+mmqiA+IGLEq247ICM5OUFBCivppqsgPiB4xKtuZzsgIzk5QUIKK+mmrCA+IG3EgzsgIzk5QUMKK+mmrSA+IHnDuTsgIzk5QUQKK+mmriA+IGbDqW5nOyAjOTlBRQor6aavID4gaMOgbjsgIzk5QUYKK+mmsCA+IGTDrDsgIzk5QjAKK+mmsSA+IHTDum87ICM5OUIxCivpprIgPiB0xatvOyAjOTlCMgor6aazID4gY2jDrTsgIzk5QjMKK+mmtCA+IHjDum47ICM5OUI0CivpprUgPiB6aMO5OyAjOTlCNQor6aa2ID4gemjEqzsgIzk5QjYKK+mmtyA+IHDDqGk7ICM5OUI3CivpprggPiB4w6xuOyAjOTlCOAor6aa5ID4gcsOsOyAjOTlCOQor6aa6ID4gc8OgOyAjOTlCQQor6aa7ID4gecStbjsgIzk5QkIKK+mmvCA+IHfDqW47ICM5OUJDCivppr0gPiB6aMOtOyAjOTlCRAor6aa+ID4gZMOgbjsgIzk5QkUKK+mmvyA+IGzHmDsgIzk5QkYKK+mngCA+IHnDs3U7ICM5OUMwCivpp4EgPiBiw7M7ICM5OUMxCivpp4IgPiBixINvOyAjOTlDMgor6aeDID4ga3XDoGk7ICM5OUMzCivpp4QgPiB0w7pvOyAjOTlDNAor6aeFID4gecOsOyAjOTlDNQor6aeGID4gccWrOyAjOTlDNgor6aeIID4gccWrOyAjOTlDOAor6aeJID4gasSrb25nOyAjOTlDOQor6aeKID4gYsWPOyAjOTlDQQor6aeLID4gemjEgW87ICM5OUNCCivpp4wgPiB5dcSBbjsgIzk5Q0MKK+mnjSA+IHDEk25nOyAjOTlDRAor6aeOID4gemjDsnU7ICM5OUNFCivpp48gPiBqw7k7ICM5OUNGCivpp5AgPiB6aMO5OyAjOTlEMAor6aeRID4gbsO6OyAjOTlEMQor6aeSID4gasWrOyAjOTlEMgor6aeTID4gcMOtOyAjOTlEMwor6aeUID4gesSDbmc7ICM5OUQ0Civpp5UgPiBqacOgOyAjOTlENQor6aeWID4gbMOtbmc7ICM5OUQ2Civpp5cgPiB6aMSTbjsgIzk5RDcKK+mnmCA+IHTDoWk7ICM5OUQ4Civpp5kgPiBmw7k7ICM5OUQ5Civpp5ogPiB5xINuZzsgIzk5REEKK+mnmyA+IHNoxK07ICM5OURCCivpp5wgPiBiw6w7ICM5OURDCivpp50gPiB0w7pvOyAjOTlERAor6aeeID4gdMO6bzsgIzk5REUKK+mnnyA+IHPDrDsgIzk5REYKK+mnoCA+IGzDrXU7ICM5OUUwCivpp6EgPiBtw6A7ICM5OUUxCivpp6IgPiBwacOhbjsgIzk5RTIKK+mnoyA+IHTDoW87ICM5OUUzCivpp6QgPiB6aMOsOyAjOTlFNAor6aelID4gcsOzbmc7ICM5OUU1Civpp6YgPiB0w6luZzsgIzk5RTYKK+mnpyA+IGTDsm5nOyAjOTlFNwor6aeoID4geMO6bjsgIzk5RTgKK+mnqSA+IHF1w6FuOyAjOTlFOQor6aeqID4gc2jEk247ICM5OUVBCivpp6sgPiBqxKtvbmc7ICM5OUVCCivpp6wgPiDElXI7ICM5OUVDCivpp60gPiBow6BpOyAjOTlFRAor6aeuID4gYsOzOyAjOTlFRQor6aevID4gemh1OyAjOTlFRgor6aewID4gecSrbjsgIzk5RjAKK+mnsSA+IGzDuW87ICM5OUYxCivpp7MgPiBkw6BuOyAjOTlGMwor6ae0ID4geGnDqDsgIzk5RjQKK+mntSA+IGzDrXU7ICM5OUY1Civpp7YgPiBqw7o7ICM5OUY2Civpp7cgPiBzxY9uZzsgIzk5RjcKK+mnuCA+IHHEq247ICM5OUY4Civpp7kgPiBtw6FuZzsgIzk5RjkKK+mnuiA+IGxpw6FuZzsgIzk5RkEKK+mnuyA+IGjDoG47ICM5OUZCCivpp7wgPiB0w7o7ICM5OUZDCivpp70gPiB4dcOgbjsgIzk5RkQKK+mnviA+IHTDuWk7ICM5OUZFCivpp78gPiBqw7luOyAjOTlGRgor6aiAID4gw6k7ICM5QTAwCivpqIEgPiBjaMSVbmc7ICM5QTAxCivpqIIgPiB4xKtuOyAjOUEwMgor6aiDID4gw6FpOyAjOUEwMwor6aiEID4gbMO5OyAjOUEwNAor6aiFID4gemjFq2k7ICM5QTA1CivpqIYgPiB6aMWNdTsgIzlBMDYKK+mohyA+IHNoxJU7ICM5QTA3CivpqIggPiBwacOhbjsgIzlBMDgKK+moiSA+IGvFq247ICM5QTA5CivpqIogPiB0w6FvOyAjOUEwQQor6aiLID4gbMOhaTsgIzlBMEIKK+mojCA+IHrFjW5nOyAjOUEwQwor6aiNID4ga8OoOyAjOUEwRAor6aiOID4gccOtOyAjOUEwRQor6aiPID4gccOtOyAjOUEwRgor6aiQID4gecOgbjsgIzlBMTAKK+mokSA+IGbEk2k7ICM5QTExCivpqJIgPiBzxIFvOyAjOUExMgor6aiTID4gecSDbjsgIzlBMTMKK+molCA+IGppw6k7ICM5QTE0CivpqJUgPiB5xINvOyAjOUExNQor6aiWID4gd8O5OyAjOUExNgor6aiXID4gcGnDoG47ICM5QTE3CivpqJggPiBjxY1uZzsgIzlBMTgKK+momSA+IHBpw6BuOyAjOUExOQor6aiaID4gcWnDoW47ICM5QTFBCivpqJsgPiBmxJNpOyAjOUExQgor6aicID4gaHXDoW5nOyAjOUExQwor6aidID4gamnEgW47ICM5QTFECivpqJ4gPiBow7lvOyAjOUExRQor6aifID4gecO5OyAjOUExRgor6aigID4gdMOtOyAjOUEyMAor6aihID4gcXXDoW47ICM5QTIxCivpqKIgPiB4acOhOyAjOUEyMgor6aijID4gesWNbmc7ICM5QTIzCivpqKQgPiBrw7ppOyAjOUEyNAor6ailID4gcsOzdTsgIzlBMjUKK+mopiA+IHPEqzsgIzlBMjYKK+mopyA+IGd1xIE7ICM5QTI3CivpqKggPiB0w7pvOyAjOUEyOAor6aipID4ga8O5aTsgIzlBMjkKK+moqiA+IHPFjXU7ICM5QTJBCivpqKsgPiBxacSBbjsgIzlBMkIKK+morCA+IGNow6luZzsgIzlBMkMKK+morSA+IHpow6w7ICM5QTJECivpqK4gPiBsw611OyAjOUEyRQor6aivID4gcMOhbmc7ICM5QTJGCivpqLAgPiB0w6luZzsgIzlBMzAKK+mosSA+IHjEqzsgIzlBMzEKK+mosiA+IGPEg287ICM5QTMyCivpqLMgPiBkw7o7ICM5QTMzCivpqLQgPiB5w6BuOyAjOUEzNAor6ai1ID4geXXDoW47ICM5QTM1CivpqLYgPiB6xY11OyAjOUEzNgor6ai3ID4gc8SBbzsgIzlBMzcKK+mouCA+IHNow6BuOyAjOUEzOAor6ai5ID4gbMOtOyAjOUEzOQor6ai6ID4gemjDrDsgIzlBM0EKK+mouyA+IHNodcSDbmc7ICM5QTNCCivpqLwgPiBsw7k7ICM5QTNDCivpqL0gPiB4w607ICM5QTNECivpqL4gPiBsw7pvOyAjOUEzRQor6ai/ID4gemjEgW5nOyAjOUEzRgor6amAID4gbcOyOyAjOUE0MAor6amBID4gw6FvOyAjOUE0MQor6amCID4gY8SBbjsgIzlBNDIKK+mpgyA+IHBpw6BvOyAjOUE0Mwor6amEID4gY8WNbmc7ICM5QTQ0CivpqYUgPiBxxas7ICM5QTQ1CivpqYYgPiBiw6w7ICM5QTQ2CivpqYcgPiB6aMOsOyAjOUE0Nwor6amIID4gecO5OyAjOUE0OAor6amJID4geMWrOyAjOUE0OQor6amKID4gaHXDoTsgIzlBNEEKK+mpiyA+IGLFjTsgIzlBNEIKK+mpjCA+IHPDuTsgIzlBNEMKK+mpjSA+IHhpxIFvOyAjOUE0RAor6amOID4gbMOtbjsgIzlBNEUKK+mpjyA+IGNoxINuOyAjOUE0Rgor6amQID4gZMWrbjsgIzlBNTAKK+mpkSA+IGzDrXU7ICM5QTUxCivpqZIgPiB0w7pvOyAjOUE1Mgor6amTID4gesSTbmc7ICM5QTUzCivpqZQgPiB0w6FuOyAjOUE1NAor6amVID4gamnEgW87ICM5QTU1CivpqZYgPiB0acSVOyAjOUE1Ngor6amXID4gecOgbjsgIzlBNTcKK+mpmCA+IGzDum87ICM5QTU4CivpqZkgPiB6aMSBbjsgIzlBNTkKK+mpmiA+IGrEq25nOyAjOUE1QQor6ambID4gecOsOyAjOUE1Qgor6amcID4gecOoOyAjOUE1Qwor6amdID4gdMWrbzsgIzlBNUQKK+mpniA+IGLEq247ICM5QTVFCivpqZ8gPiB6w7J1OyAjOUE1Rgor6amgID4gecOgbjsgIzlBNjAKK+mpoSA+IHDDqW5nOyAjOUE2MQor6amiID4gbMeYOyAjOUE2Mgor6amjID4gdMOpbmc7ICM5QTYzCivpqaQgPiB4acSBbmc7ICM5QTY0CivpqaUgPiBqw6w7ICM5QTY1CivpqaYgPiBzaHXEgW5nOyAjOUE2Ngor6amnID4gasO6OyAjOUE2Nwor6amoID4geMSrOyAjOUE2OAor6ampID4gaHXEgW47ICM5QTY5CivpqaogPiBsw607ICM5QTZBCivpqasgPiBiacSBbzsgIzlBNkIKK+mprCA+IG3EgzsgIzlBNkMKK+mprSA+IHnDuTsgIzlBNkQKK+mpriA+IHTDum87ICM5QTZFCivpqa8gPiB4w7puOyAjOUE2Rgor6amwID4gY2jDrTsgIzlBNzAKK+mpsSA+IHHFqzsgIzlBNzEKK+mpsiA+IHLDrDsgIzlBNzIKK+mpsyA+IGLDszsgIzlBNzMKK+mptCA+IGzHmDsgIzlBNzQKK+mptSA+IHrEg25nOyAjOUE3NQor6am2ID4gc2jErTsgIzlBNzYKK+mptyA+IHPDrDsgIzlBNzcKK+mpuCA+IGbDuTsgIzlBNzgKK+mpuSA+IGrFqzsgIzlBNzkKK+mpuiA+IHrFjXU7ICM5QTdBCivpqbsgPiB6aMO5OyAjOUE3Qgor6am8ID4gdMO6bzsgIzlBN0MKK+mpvSA+IG7DujsgIzlBN0QKK+mpviA+IGppw6A7ICM5QTdFCivpqb8gPiB5w6w7ICM5QTdGCivpqoAgPiB0w6FpOyAjOUE4MAor6aqBID4geGnEgW87ICM5QTgxCivpqoIgPiBtw6A7ICM5QTgyCivpqoMgPiB5xKtuOyAjOUE4Mwor6aqEID4gamnEgW87ICM5QTg0CivpqoUgPiBodcOhOyAjOUE4NQor6aqGID4gbMO5bzsgIzlBODYKK+mqhyA+IGjDoGk7ICM5QTg3CivpqoggPiBwacOhbjsgIzlBODgKK+mqiSA+IGJpxIFvOyAjOUE4OQor6aqKID4gbMOtOyAjOUE4QQor6aqLID4gY2jElW5nOyAjOUE4Qgor6aqMID4gecOgbjsgIzlBOEMKK+mqjSA+IHjEq247ICM5QThECivpqo4gPiBxxKtuOyAjOUE4RQor6aqPID4gasO5bjsgIzlBOEYKK+mqkCA+IHHDrTsgIzlBOTAKK+mqkSA+IHHDrTsgIzlBOTEKK+mqkiA+IGvDqDsgIzlBOTIKK+mqkyA+IHpoxatpOyAjOUE5Mwor6aqUID4gesWNbmc7ICM5QTk0CivpqpUgPiBzw7k7ICM5QTk1CivpqpYgPiBjxIFuOyAjOUE5Ngor6aqXID4gcGnDoG47ICM5QTk3CivpqpggPiB6aMOsOyAjOUE5OAor6aqZID4ga8O6aTsgIzlBOTkKK+mqmiA+IHPEgW87ICM5QTlBCivpqpsgPiB3w7k7ICM5QTlCCivpqpwgPiDDoW87ICM5QTlDCivpqp0gPiBsw611OyAjOUE5RAor6aqeID4gcWnEgW47ICM5QTlFCivpqp8gPiBzaMOgbjsgIzlBOUYKK+mqoCA+IHBpw6BvOyAjOUFBMAor6aqhID4gbMO6bzsgIzlBQTEKK+mqoiA+IGPFjW5nOyAjOUFBMgor6aqjID4gY2jEg247ICM5QUEzCivpqqQgPiB6w7J1OyAjOUFBNAor6aqlID4gasOsOyAjOUFBNQor6aqmID4gc2h1xIFuZzsgIzlBQTYKK+mqpyA+IHhpxIFuZzsgIzlBQTcKK+mqqCA+IGfFrTsgIzlBQTgKK+mqqSA+IHfElWk7ICM5QUE5CivpqqogPiB3xJVpOyAjOUFBQQor6aqrID4gd8SVaTsgIzlBQUIKK+mqrCA+IHnDujsgIzlBQUMKK+mqrSA+IGfDoG47ICM5QUFECivpqq4gPiB5w6w7ICM5QUFFCivpqq8gPiDEgW5nOyAjOUFBRgor6aqwID4gdMOzdTsgIzlBQjAKK+mqsSA+IHhpw6g7ICM5QUIxCivpqrIgPiBixIFvOyAjOUFCMgor6aqzID4gYsOsOyAjOUFCMwor6aq0ID4gY2jEqzsgIzlBQjQKK+mqtSA+IHTErTsgIzlBQjUKK+mqtiA+IGTErTsgIzlBQjYKK+mqtyA+IGvFqzsgIzlBQjcKK+mquCA+IGjDoWk7ICM5QUI4CivpqrkgPiBxacSBbzsgIzlBQjkKK+mquiA+IGfDsnU7ICM5QUJBCivpqrsgPiBrdcOgOyAjOUFCQgor6aq8ID4gZ8OpOyAjOUFCQwor6aq9ID4gdMWtaTsgIzlBQkQKK+mqviA+IGfElW5nOyAjOUFCRQor6aq/ID4gcGnDoW47ICM5QUJGCivpq4AgPiBiw6w7ICM5QUMwCivpq4EgPiBrxJM7ICM5QUMxCivpq4IgPiBrw6A7ICM5QUMyCivpq4MgPiB5w7o7ICM5QUMzCivpq4QgPiBzxa1pOyAjOUFDNAor6auFID4gbMOzdTsgIzlBQzUKK+mrhiA+IGLDszsgIzlBQzYKK+mrhyA+IHhpxIFvOyAjOUFDNwor6auIID4gcMOhbmc7ICM5QUM4Civpq4kgPiBixY07ICM5QUM5Civpq4ogPiBjxKs7ICM5QUNBCivpq4sgPiBrdcSBbjsgIzlBQ0IKK+mrjCA+IGLDrG47ICM5QUNDCivpq40gPiBtw7M7ICM5QUNECivpq44gPiBsacOhbzsgIzlBQ0UKK+mrjyA+IGzDs3U7ICM5QUNGCivpq5AgPiBuw6FvOyAjOUFEMAor6auRID4gZMO6OyAjOUFEMQor6auSID4gesSBbmc7ICM5QUQyCivpq5MgPiBzxa1pOyAjOUFEMwor6auUID4gdMStOyAjOUFENAor6auVID4gYsOsbjsgIzlBRDUKK+mrliA+IGt1xIFuOyAjOUFENgor6auXID4gbMO6OyAjOUFENwor6auYID4gZ8SBbzsgIzlBRDgKK+mrmSA+IGfEgW87ICM5QUQ5Civpq5ogPiBxacOgbzsgIzlBREEKK+mrmyA+IGvEgW87ICM5QURCCivpq5wgPiBxacSBbzsgIzlBREMKK+mrnSA+IGzDoG87ICM5QURECivpq54gPiB6w6BvOyAjOUFERQor6aufID4gYmnEgW87ICM5QURGCivpq6AgPiBrxatuOyAjOUFFMAor6auhID4ga8WrbjsgIzlBRTEKK+mroiA+IHTDrDsgIzlBRTIKK+mroyA+IGbEg25nOyAjOUFFMwor6aukID4geMSrdTsgIzlBRTQKK+mrpSA+IHLDoW47ICM5QUU1Civpq6YgPiBtw6FvOyAjOUFFNgor6aunID4gZMOgbjsgIzlBRTcKK+mrqCA+IGvFq247ICM5QUU4Civpq6kgPiBiw6xuOyAjOUFFOQor6auqID4gZsOgOyAjOUFFQQor6aurID4gdGnDoW87ICM5QUVCCivpq6wgPiBwZW5nOyAjOUFFQwor6autID4gesSrOyAjOUFFRAor6auuID4gZsSDOyAjOUFFRQor6auvID4gcsOhbjsgIzlBRUYKK+mrsCA+IHTDrDsgIzlBRjAKK+mrsSA+IHDDoG87ICM5QUYxCivpq7IgPiBwxKs7ICM5QUYyCivpq7MgPiBtw6FvOyAjOUFGMwor6au0ID4gZsO6OyAjOUFGNAor6au1ID4gw6lyOyAjOUFGNQor6au2ID4gcsOzbmc7ICM5QUY2Civpq7cgPiBxxas7ICM5QUY3Civpq7ggPiBnb25nOyAjOUFGOAor6au5ID4geMSrdTsgIzlBRjkKK+mruiA+IGd1w6A7ICM5QUZBCivpq7sgPiBqw6w7ICM5QUZCCivpq7wgPiBww6luZzsgIzlBRkMKK+mrvSA+IHpodcSBOyAjOUFGRAor6au+ID4gc2jEgW87ICM5QUZFCivpq78gPiBzaMSBOyAjOUFGRgor6ayAID4gdMOsOyAjOUIwMAor6ayBID4gbMOsOyAjOUIwMQor6ayCID4gYsOsbjsgIzlCMDIKK+msgyA+IHrFjW5nOyAjOUIwMwor6ayEID4gdMOsOyAjOUIwNAor6ayFID4gcMOpbmc7ICM5QjA1CivprIYgPiBzxY1uZzsgIzlCMDYKK+mshyA+IHpoxJNuZzsgIzlCMDcKK+msiCA+IHF1w6FuOyAjOUIwOAor6ayJID4gesWNbmc7ICM5QjA5CivprIogPiBzaMO5bjsgIzlCMEEKK+msiyA+IGppxIFuOyAjOUIwQgor6ayMID4gZMWtbzsgIzlCMEMKK+msjSA+IGjDujsgIzlCMEQKK+msjiA+IGzDoDsgIzlCMEUKK+msjyA+IGrEq3U7ICM5QjBGCivprJAgPiBxw607ICM5QjEwCivprJEgPiBsacOhbjsgIzlCMTEKK+mskiA+IHpoxJVuOyAjOUIxMgor6ayTID4gYsOsbjsgIzlCMTMKK+mslCA+IHDDqW5nOyAjOUIxNAor6ayVID4gbcOyOyAjOUIxNQor6ayWID4gc8SBbjsgIzlCMTYKK+mslyA+IG3DoG47ICM5QjE3CivprJggPiBtw6FuOyAjOUIxOAor6ayZID4gc8STbmc7ICM5QjE5CivprJogPiB4xas7ICM5QjFBCivprJsgPiBsacOoOyAjOUIxQgor6aycID4gcWnEgW47ICM5QjFDCivprJ0gPiBxacSBbjsgIzlCMUQKK+msniA+IG7Ds25nOyAjOUIxRQor6ayfID4gaHXDoW47ICM5QjFGCivprKAgPiBrdcOgaTsgIzlCMjAKK+msoSA+IG7DrW5nOyAjOUIyMQor6ayiID4gYsOsbjsgIzlCMjIKK+msoyA+IGxpw6g7ICM5QjIzCivprKQgPiByw6FuZzsgIzlCMjQKK+mspSA+IGTDsnU7ICM5QjI1CivprKYgPiBkw7J1OyAjOUIyNgor6aynID4gbsOgbzsgIzlCMjcKK+msqCA+IGjFjW5nOyAjOUIyOAor6aypID4geMOsOyAjOUIyOQor6ayqID4gZMOydTsgIzlCMkEKK+msqyA+IGjEg247ICM5QjJCCivprKwgPiBkw7J1OyAjOUIyQwor6aytID4gZMOydTsgIzlCMkQKK+msriA+IGrEq3U7ICM5QjJFCivprK8gPiBjaMOgbmc7ICM5QjJGCivprLAgPiB5w7k7ICM5QjMwCivprLEgPiB5w7k7ICM5QjMxCivprLIgPiBsw6w7ICM5QjMyCivprLMgPiBqdcOgbjsgIzlCMzMKK+mstCA+IGbFrTsgIzlCMzQKK+mstSA+IHFpw6FuOyAjOUIzNQor6ay2ID4gZ8WraTsgIzlCMzYKK+mstyA+IHrFjW5nOyAjOUIzNwor6ay4ID4gbMOsdTsgIzlCMzgKK+msuSA+IGfFq2k7ICM5QjM5CivprLogPiBzaMSBbmc7ICM5QjNBCivprLsgPiB5w7k7ICM5QjNCCivprLwgPiBnxa1pOyAjOUIzQwor6ay9ID4gbcOoaTsgIzlCM0QKK+msviA+IGrDrDsgIzlCM0UKK+msvyA+IHHDrTsgIzlCM0YKK+mtgCA+IGppw6g7ICM5QjQwCivprYEgPiBrw7ppOyAjOUI0MQor6a2CID4gaMO6bjsgIzlCNDIKK+mtgyA+IGLDoTsgIzlCNDMKK+mthCA+IHDDsjsgIzlCNDQKK+mthSA+IG3DqGk7ICM5QjQ1CivprYYgPiB4w7k7ICM5QjQ2CivprYcgPiB5xINuOyAjOUI0Nwor6a2IID4geGnEgW87ICM5QjQ4CivprYkgPiBsacSDbmc7ICM5QjQ5CivprYogPiB5w7k7ICM5QjRBCivprYsgPiB0w7ppOyAjOUI0Qgor6a2MID4gccSrOyAjOUI0Qwor6a2NID4gd8SDbmc7ICM5QjRECivprY4gPiBsacSDbmc7ICM5QjRFCivprY8gPiB3w6hpOyAjOUI0Rgor6a2QID4gamnEgW47ICM5QjUwCivprZEgPiBjaMSrOyAjOUI1MQor6a2SID4gcGnEgW87ICM5QjUyCivprZMgPiBiw6w7ICM5QjUzCivprZQgPiBtw7M7ICM5QjU0CivprZUgPiBqxK07ICM5QjU1CivprZYgPiB4xas7ICM5QjU2CivprZcgPiBjaMWPdTsgIzlCNTcKK+mtmCA+IHnEg247ICM5QjU4CivprZkgPiB6aMSDbjsgIzlCNTkKK+mtmiA+IHnDujsgIzlCNUEKK+mtmyA+IGTEgW87ICM5QjVCCivprZwgPiByw6luOyAjOUI1Qwor6a2dID4gasOsOyAjOUI1RAor6a2fID4gZ8WNbmc7ICM5QjVGCivpraAgPiB0w7pvOyAjOUI2MAor6a2hID4gZGnDoG87ICM5QjYxCivpraIgPiBqxK07ICM5QjYyCivpraMgPiB4w7k7ICM5QjYzCivpraQgPiDDqTsgIzlCNjQKK+mtpSA+IMOoOyAjOUI2NQor6a2mID4gc2jEgTsgIzlCNjYKK+mtpyA+IGjDoW5nOyAjOUI2Nwor6a2oID4gdMO6bjsgIzlCNjgKK+mtqSA+IG3DsjsgIzlCNjkKK+mtqiA+IGppw6g7ICM5QjZBCivprasgPiBzaMSVbjsgIzlCNkIKK+mtrCA+IGbEg247ICM5QjZDCivpra0gPiB5dcOhbjsgIzlCNkQKK+mtriA+IGLDrTsgIzlCNkUKK+mtryA+IGzFrTsgIzlCNkYKK+mtsCA+IHfDqW47ICM5QjcwCivprbEgPiBow7o7ICM5QjcxCivprbIgPiBsw7o7ICM5QjcyCivprbMgPiB6w6E7ICM5QjczCivprbQgPiBmw6FuZzsgIzlCNzQKK+mttSA+IGbDqW47ICM5Qjc1CivprbYgPiBuw6A7ICM5Qjc2CivprbcgPiB5w7N1OyAjOUI3Nwor6a26ID4gaMOpOyAjOUI3QQor6a27ID4geGnDoTsgIzlCN0IKK+mtvCA+IHHFqzsgIzlCN0MKK+mtvSA+IGjEgW47ICM5QjdECivprb4gPiBww607ICM5QjdFCivprb8gPiBsw61uZzsgIzlCN0YKK+mugCA+IHTDum87ICM5QjgwCivproEgPiBixY07ICM5QjgxCivproIgPiBxw611OyAjOUI4Mgor6a6DID4gcMOtbmc7ICM5QjgzCivproQgPiBmw7o7ICM5Qjg0CivproUgPiBiw6w7ICM5Qjg1CivproYgPiBqw6w7ICM5Qjg2CivprocgPiB3w6hpOyAjOUI4Nwor6a6IID4gasWrOyAjOUI4OAor6a6JID4gZGnEgW87ICM5Qjg5CivproogPiBiw7M7ICM5QjhBCivprosgPiB5w7N1OyAjOUI4Qgor6a6MID4gZ8WtbjsgIzlCOEMKK+mujSA+IHDEqzsgIzlCOEQKK+mujiA+IG5pw6FuOyAjOUI4RQor6a6PID4geMSrbmc7ICM5QjhGCivprpAgPiB0w6FpOyAjOUI5MAor6a6RID4gYsOgbzsgIzlCOTEKK+mukiA+IGbDuTsgIzlCOTIKK+mukyA+IHpoxIM7ICM5QjkzCivprpQgPiBqw7k7ICM5Qjk0CivprpUgPiBnxas7ICM5Qjk1CivprpkgPiB0w6A7ICM5Qjk5CivprpogPiBqacOpOyAjOUI5QQor6a6bID4gc2jDuTsgIzlCOUIKK+munCA+IGjDsnU7ICM5QjlDCivprp0gPiB4acSDbmc7ICM5QjlECivprp4gPiDDqXI7ICM5QjlFCivprp8gPiDDoG47ICM5QjlGCivprqAgPiB3w6lpOyAjOUJBMAor6a6hID4gdGnEgW87ICM5QkExCivprqIgPiB6aMWrOyAjOUJBMgor6a6jID4gecOsbjsgIzlCQTMKK+mupCA+IGxpw6g7ICM5QkE0CivprqUgPiBsw7lvOyAjOUJBNQor6a6mID4gdMOzbmc7ICM5QkE2CivprqcgPiB5w607ICM5QkE3CivprqggPiBxw607ICM5QkE4CivprqkgPiBiw6xuZzsgIzlCQTkKK+muqiA+IHfElWk7ICM5QkFBCivprqsgPiBqacSDbzsgIzlCQUIKK+murCA+IGLDuTsgIzlCQUMKK+murSA+IGfFq2k7ICM5QkFECivprq4gPiB4acSBbjsgIzlCQUUKK+muryA+IGfDqTsgIzlCQUYKK+musCA+IGjDumk7ICM5QkIwCivprrMgPiBrxINvOyAjOUJCMwor6a61ID4gZMO6bzsgIzlCQjUKK+mutiA+IGrFq247ICM5QkI2CivprrcgPiB0w607ICM5QkI3CivprrggPiBtxINuOyAjOUJCOAor6a65ID4geGnEgW87ICM5QkI5CivprrogPiB6xIM7ICM5QkJBCivprrsgPiBzaMSBOyAjOUJCQgor6a68ID4gccSrbjsgIzlCQkMKK+muvSA+IHnDujsgIzlCQkQKK+muviA+IG7ElWk7ICM5QkJFCivprr8gPiB6aMOpOyAjOUJCRgor6a+AID4gZ8WtbjsgIzlCQzAKK+mvgSA+IGfElW5nOyAjOUJDMQor6a+CID4gc3U7ICM5QkMyCivpr4MgPiB3w7o7ICM5QkMzCivpr4QgPiBxw611OyAjOUJDNAor6a+FID4gdMOtbmc7ICM5QkM1Civpr4YgPiBmxa07ICM5QkM2Civpr4cgPiB3xINuOyAjOUJDNwor6a+IID4gecOzdTsgIzlCQzgKK+mviSA+IGzErTsgIzlCQzkKK+mviiA+IHNoxIE7ICM5QkNBCivpr4sgPiBzaMSBOyAjOUJDQgor6a+MID4gZ8OgbzsgIzlCQ0MKK+mvjSA+IG3DqW5nOyAjOUJDRAor6a+SID4gecWPbmc7ICM5QkQyCivpr5MgPiBuw607ICM5QkQzCivpr5QgPiB6xKs7ICM5QkQ0Civpr5UgPiBxw607ICM5QkQ1Civpr5YgPiBxxKtuZzsgIzlCRDYKK+mvlyA+IHhpxINuZzsgIzlCRDcKK+mvmCA+IG7ElWk7ICM5QkQ4Civpr5kgPiBjaMO6bjsgIzlCRDkKK+mvmiA+IGrDrDsgIzlCREEKK+mvmyA+IGRpxIFvOyAjOUJEQgor6a+cID4gcWnDqDsgIzlCREMKK+mvnSA+IGfDuTsgIzlCREQKK+mvniA+IHpoxY91OyAjOUJERQor6a+fID4gZMWNbmc7ICM5QkRGCivpr6AgPiBsw6FpOyAjOUJFMAor6a+hID4gZsSTaTsgIzlCRTEKK+mvoiA+IG7DrTsgIzlCRTIKK+mvoyA+IHnDrDsgIzlCRTMKK+mvpCA+IGvFq247ICM5QkU0Civpr6UgPiBsw7k7ICM5QkU1Civpr6YgPiBqw6x1OyAjOUJFNgor6a+nID4gY2jEgW5nOyAjOUJFNwor6a+oID4gasSrbmc7ICM5QkU4Civpr6kgPiBsw7puOyAjOUJFOQor6a+qID4gbMOtbmc7ICM5QkVBCivpr6sgPiB6xY11OyAjOUJFQgor6a+sID4gbMOtOyAjOUJFQwor6a+tID4gbcSVbmc7ICM5QkVECivpr64gPiB6xY1uZzsgIzlCRUUKK+mvryA+IHpow6w7ICM5QkVGCivpr7AgPiBuacOhbjsgIzlCRjAKK+mvtCA+IHNoxKs7ICM5QkY0Civpr7UgPiBzaMSTbjsgIzlCRjUKK+mvtiA+IGjFrW47ICM5QkY2Civpr7cgPiBzaMOsOyAjOUJGNwor6a+4ID4gaMOzdTsgIzlCRjgKK+mvuSA+IHjEq25nOyAjOUJGOQor6a+6ID4gemjFqzsgIzlCRkEKK+mvuyA+IGzDoDsgIzlCRkIKK+mvvCA+IHrFjW5nOyAjOUJGQwor6a+9ID4gasOsOyAjOUJGRAor6a++ID4gYmnEgW47ICM5QkZFCivpr78gPiBiacSBbjsgIzlCRkYKK+mwgCA+IGh1w6BuOyAjOUMwMAor6bCBID4gcXXDoW47ICM5QzAxCivpsIIgPiB6w6k7ICM5QzAyCivpsIMgPiB3xJNpOyAjOUMwMwor6bCEID4gd8STaTsgIzlDMDQKK+mwhSA+IHnDujsgIzlDMDUKK+mwhiA+IHHFq247ICM5QzA2CivpsIcgPiByw7N1OyAjOUMwNwor6bCIID4gZGnDqTsgIzlDMDgKK+mwiSA+IGh1w6FuZzsgIzlDMDkKK+mwiiA+IGxpw6BuOyAjOUMwQQor6bCLID4gecSDbjsgIzlDMEIKK+mwjCA+IHHDrXU7ICM5QzBDCivpsI0gPiBxxKt1OyAjOUMwRAor6bCOID4gamnDoG47ICM5QzBFCivpsI8gPiBiw6w7ICM5QzBGCivpsJAgPiDDqDsgIzlDMTAKK+mwkSA+IHnDoW5nOyAjOUMxMQor6bCSID4gZsO5OyAjOUMxMgor6bCTID4gc8SBaTsgIzlDMTMKK+mwlCA+IGppxINuOyAjOUMxNAor6bCVID4geGnDoTsgIzlDMTUKK+mwliA+IHTFrW87ICM5QzE2CivpsJcgPiBow7o7ICM5QzE3CivpsJkgPiByw7lvOyAjOUMxOQor6bCbID4gd8STbjsgIzlDMUIKK+mwnCA+IGppxIFuOyAjOUMxQwor6bCdID4gaMOgbzsgIzlDMUQKK+mwniA+IHfFqzsgIzlDMUUKK+mwnyA+IGbDoW5nOyAjOUMxRgor6bCgID4gc8SBbzsgIzlDMjAKK+mwoSA+IGzDrXU7ICM5QzIxCivpsKIgPiBtxIM7ICM5QzIyCivpsKMgPiBzaMOtOyAjOUMyMwor6bCkID4gc2jEqzsgIzlDMjQKK+mwpSA+IHnDrW47ICM5QzI1CivpsKYgPiB6zIQ7ICM5QzI2CivpsKcgPiB0w6luZzsgIzlDMjcKK+mwqCA+IHTDoDsgIzlDMjgKK+mwqSA+IHnDoW87ICM5QzI5CivpsKogPiBnw6k7ICM5QzJBCivpsKsgPiByw7NuZzsgIzlDMkIKK+mwrCA+IHFpw6FuOyAjOUMyQwor6bCtID4gccOtOyAjOUMyRAor6bCuID4gd8STbjsgIzlDMkUKK+mwryA+IHLDuW87ICM5QzJGCivpsLEgPiBsacOhbjsgIzlDMzEKK+mwsiA+IMOhbzsgIzlDMzIKK+mwsyA+IGzDqDsgIzlDMzMKK+mwtCA+IGjFq2k7ICM5QzM0CivpsLUgPiBtxK1uOyAjOUMzNQor6bC2ID4gasOsOyAjOUMzNgor6bC3ID4gdGnDoW87ICM5QzM3CivpsLggPiBxxas7ICM5QzM4CivpsLkgPiBqacSBbjsgIzlDMzkKK+mwuiA+IHPEgW87ICM5QzNBCivpsLsgPiBtw6FuOyAjOUMzQgor6bC8ID4geMOtOyAjOUMzQwor6bC9ID4gccOtdTsgIzlDM0QKK+mwviA+IGJpw6BvOyAjOUMzRQor6bC/ID4gasSrOyAjOUMzRgor6bGAID4gasOsOyAjOUM0MAor6bGBID4gemjDujsgIzlDNDEKK+mxgiA+IGppxIFuZzsgIzlDNDIKK+mxgyA+IHHEq3U7ICM5QzQzCivpsYQgPiB6aHXEgW47ICM5QzQ0CivpsYUgPiB5w7NuZzsgIzlDNDUKK+mxhiA+IHpoxIFuZzsgIzlDNDYKK+mxhyA+IGvEgW5nOyAjOUM0Nwor6bGIID4geHXElTsgIzlDNDgKK+mxiSA+IGJpxJM7ICM5QzQ5CivpsYogPiBqdcOpOyAjOUM0QQor6bGLID4gccWrOyAjOUM0Qgor6bGMID4geGnDoG5nOyAjOUM0Qwor6bGNID4gYsWNOyAjOUM0RAor6bGOID4gamnEgW87ICM5QzRFCivpsY8gPiB4w7puOyAjOUM0Rgor6bGQID4gc8O5OyAjOUM1MAor6bGRID4gaHXDoW5nOyAjOUM1MQor6bGSID4gesO5bjsgIzlDNTIKK+mxkyA+IHNow6BuOyAjOUM1Mwor6bGUID4gc2jDoG47ICM5QzU0CivpsZUgPiBmxIFuOyAjOUM1NQor6bGWID4ganXDqTsgIzlDNTYKK+mxlyA+IGzDrW47ICM5QzU3CivpsZggPiB4w7puOyAjOUM1OAor6bGZID4gbWnDoW87ICM5QzU5CivpsZogPiB4xK07ICM5QzVBCivpsZ0gPiBmw6huOyAjOUM1RAor6bGeID4gZ3XEgW47ICM5QzVFCivpsZ8gPiBow7J1OyAjOUM1Rgor6bGgID4ga3XDoGk7ICM5QzYwCivpsaEgPiB6w6lpOyAjOUM2MQor6bGiID4gc8SBbzsgIzlDNjIKK+mxoyA+IHpoxIFuOyAjOUM2Mwor6bGkID4gZ8SDbjsgIzlDNjQKK+mxpSA+IGfDuWk7ICM5QzY1CivpsaYgPiBzaMOpbmc7ICM5QzY2CivpsacgPiBsxK07ICM5QzY3CivpsaggPiBjaMOhbmc7ICM5QzY4CivpsawgPiByw7o7ICM5QzZDCivpsa0gPiBqw6w7ICM5QzZECivpsa4gPiB4w7k7ICM5QzZFCivpsa8gPiBow7lvOyAjOUM2Rgor6bGxID4gbMOsOyAjOUM3MQor6bGyID4gbGnDqDsgIzlDNzIKK+mxsyA+IGzDrDsgIzlDNzMKK+mxtCA+IG1pw6g7ICM5Qzc0CivpsbUgPiB6aMSTbjsgIzlDNzUKK+mxtiA+IHhpxINuZzsgIzlDNzYKK+mxtyA+IMOoOyAjOUM3Nwor6bG4ID4gbMO6OyAjOUM3OAor6bG5ID4gZ3XDoG47ICM5Qzc5CivpsbogPiBsw607ICM5QzdBCivpsbsgPiB4acSBbjsgIzlDN0IKK+mxvCA+IHnDujsgIzlDN0MKK+mxvSA+IGTEgW87ICM5QzdECivpsb4gPiBqxK07ICM5QzdFCivpsb8gPiB5w7N1OyAjOUM3Rgor6bKAID4gdMO6bjsgIzlDODAKK+mygSA+IGzFrTsgIzlDODEKK+mygiA+IGbDoW5nOyAjOUM4Mgor6bKDID4gYsSBOyAjOUM4Mwor6bKEID4gaMOpOyAjOUM4NAor6bKFID4gYsWNOyAjOUM4NQor6bKGID4gcMOtbmc7ICM5Qzg2CivpsocgPiBuacOhbjsgIzlDODcKK+myiCA+IGzDujsgIzlDODgKK+myiSA+IHnDs3U7ICM5Qzg5CivpsoogPiB6aMSDOyAjOUM4QQor6bKLID4gZsO5OyAjOUM4Qgor6bKMID4gYsOzOyAjOUM4Qwor6bKNID4gYsOgbzsgIzlDOEQKK+myjiA+IGjDsnU7ICM5QzhFCivpso8gPiBwxKs7ICM5QzhGCivpspAgPiB0w6FpOyAjOUM5MAor6bKRID4gZ8WraTsgIzlDOTEKK+mykiA+IGppw6k7ICM5QzkyCivpspMgPiBrxINvOyAjOUM5Mwor6bKUID4gd8SVaTsgIzlDOTQKK+mylSA+IMOpcjsgIzlDOTUKK+myliA+IHTDs25nOyAjOUM5Ngor6bKXID4gesOpOyAjOUM5Nwor6bKYID4gaMOydTsgIzlDOTgKK+mymSA+IGt1w6BpOyAjOUM5OQor6bKaID4gasOsOyAjOUM5QQor6bKbID4gamnEg287ICM5QzlCCivpspwgPiB4acSBbjsgIzlDOUMKK+mynSA+IHrEgzsgIzlDOUQKK+myniA+IHhpxINuZzsgIzlDOUUKK+mynyA+IHjDum47ICM5QzlGCivpsqAgPiBnxJVuZzsgIzlDQTAKK+myoSA+IGzDrTsgIzlDQTEKK+myoiA+IGxpw6FuOyAjOUNBMgor6bKjID4gamnEgW47ICM5Q0EzCivpsqQgPiBsxK07ICM5Q0E0CivpsqUgPiBzaMOtOyAjOUNBNQor6bKmID4gdGnDoW87ICM5Q0E2CivpsqcgPiBnxa1uOyAjOUNBNwor6bKoID4gc2jEgTsgIzlDQTgKK+myqSA+IHfEg247ICM5Q0E5CivpsqogPiBqxatuOyAjOUNBQQor6bKrID4gasOsOyAjOUNBQgor6bKsID4gecWPbmc7ICM5Q0FDCivpsq0gPiBxxKtuZzsgIzlDQUQKK+myriA+IGzDrW5nOyAjOUNBRQor6bKvID4gccOtOyAjOUNBRgor6bKwID4gesWNdTsgIzlDQjAKK+mysSA+IGbEk2k7ICM5Q0IxCivpsrIgPiBrxatuOyAjOUNCMgor6bKzID4gY2jEgW5nOyAjOUNCMwor6bK0ID4gZ8O5OyAjOUNCNAor6bK1ID4gbsOtOyAjOUNCNQor6bK2ID4gbmnDoW47ICM5Q0I2CivpsrcgPiBkacSBbzsgIzlDQjcKK+myuCA+IGrEq25nOyAjOUNCOAor6bK5ID4gc2jEk247ICM5Q0I5CivpsrogPiBzaMSrOyAjOUNCQQor6bK7ID4gesSrOyAjOUNCQgor6bK8ID4gZsOobjsgIzlDQkMKK+myvSA+IGRpw6k7ICM5Q0JECivpsr4gPiBiw6w7ICM5Q0JFCivpsr8gPiBjaMOhbmc7ICM5Q0JGCivps4AgPiBzaMOsOyAjOUNDMAor6bOBID4gd8STbjsgIzlDQzEKK+mzgiA+IHfEk2k7ICM5Q0MyCivps4MgPiBzxIFpOyAjOUNDMwor6bOEID4gw6g7ICM5Q0M0Civps4UgPiBxxKt1OyAjOUNDNQor6bOGID4gZsO5OyAjOUNDNgor6bOHID4gaHXDoW5nOyAjOUNDNwor6bOIID4gcXXDoW47ICM5Q0M4Civps4kgPiBqacSBbmc7ICM5Q0M5Civps4ogPiBiacSBbjsgIzlDQ0EKK+mziyA+IHPEgW87ICM5Q0NCCivps4wgPiDDoW87ICM5Q0NDCivps40gPiBxw607ICM5Q0NECivps44gPiB0w6A7ICM5Q0NFCivps48gPiB5w61uOyAjOUNDRgor6bOQID4gecOhbzsgIzlDRDAKK+mzkSA+IGbDoW5nOyAjOUNEMQor6bOSID4gamnEgW47ICM5Q0QyCivps5MgPiBsw6g7ICM5Q0QzCivps5QgPiBiacOgbzsgIzlDRDQKK+mzlSA+IHh1xJU7ICM5Q0Q1Civps5YgPiBiacSTOyAjOUNENgor6bOXID4gbcOhbjsgIzlDRDcKK+mzmCA+IG3ErW47ICM5Q0Q4Civps5kgPiB5w7NuZzsgIzlDRDkKK+mzmiA+IHfDqGk7ICM5Q0RBCivps5sgPiB4w607ICM5Q0RCCivps5wgPiBqdcOpOyAjOUNEQwor6bOdID4gc2jDoG47ICM5Q0RECivps54gPiBsw61uOyAjOUNERQor6bOfID4gesO5bjsgIzlDREYKK+mzoCA+IGjDuW87ICM5Q0UwCivps6EgPiBnxINuOyAjOUNFMQor6bOiID4gbMStOyAjOUNFMgor6bOjID4gemjEgW47ICM5Q0UzCivps6QgPiBndcSDbjsgIzlDRTQKK+mzpSA+IG5pxINvOyAjOUNFNQor6bOmID4gecStOyAjOUNFNgor6bOnID4gZsO6OyAjOUNFNwor6bOoID4gbMOsOyAjOUNFOAor6bOpID4gasSrdTsgIzlDRTkKK+mzqiA+IGLFrTsgIzlDRUEKK+mzqyA+IHnDoG47ICM5Q0VCCivps6wgPiBmw7o7ICM5Q0VDCivps60gPiBkacSBbzsgIzlDRUQKK+mzriA+IGrEqzsgIzlDRUUKK+mzryA+IGbDqG5nOyAjOUNFRgor6bOxID4gZ8SBbjsgIzlDRjEKK+mzsiA+IHNoxKs7ICM5Q0YyCivps7MgPiBmw6huZzsgIzlDRjMKK+mztCA+IG3DrW5nOyAjOUNGNAor6bO1ID4gYsSDbzsgIzlDRjUKK+mztiA+IHl1xIFuOyAjOUNGNgor6bO3ID4gemjEqzsgIzlDRjcKK+mzuCA+IGjDuTsgIzlDRjgKK+mzuSA+IHHDrW47ICM5Q0Y5Civps7ogPiBmxas7ICM5Q0ZBCivps7sgPiBmxJNuOyAjOUNGQgor6bO8ID4gd8OpbjsgIzlDRkMKK+mzvSA+IGppxIFuOyAjOUNGRAor6bO+ID4gc2jEqzsgIzlDRkUKK+mzvyA+IHnDuTsgIzlDRkYKK+m0gCA+IGbFj3U7ICM5RDAwCivptIEgPiB5acSBbzsgIzlEMDEKK+m0giA+IGp1w6g7ICM5RDAyCivptIMgPiBqdcOpOyAjOUQwMwor6bSEID4gcMSrOyAjOUQwNAor6bSFID4gaHXEgW47ICM5RDA1CivptIYgPiB6aMOobjsgIzlEMDYKK+m0hyA+IGLEg287ICM5RDA3CivptIggPiB5w6BuOyAjOUQwOAor6bSJID4gecSBOyAjOUQwOQor6bSKID4gemjDqG5nOyAjOUQwQQor6bSLID4gZsSBbmc7ICM5RDBCCivptIwgPiBmw6huZzsgIzlEMEMKK+m0jSA+IHfDqW47ICM5RDBECivptI4gPiDFjXU7ICM5RDBFCivptI8gPiB0w6g7ICM5RDBGCivptJAgPiBqacSBOyAjOUQxMAor6bSRID4gbsO6OyAjOUQxMQor6bSSID4gbMOtbmc7ICM5RDEyCivptJMgPiBtacOoOyAjOUQxMwor6bSUID4gZsO6OyAjOUQxNAor6bSVID4gdMO6bzsgIzlEMTUKK+m0liA+IHfDqW47ICM5RDE2CivptJcgPiBsw6w7ICM5RDE3CivptJggPiBiacOgbjsgIzlEMTgKK+m0mSA+IHpow6w7ICM5RDE5CivptJogPiBnxJM7ICM5RDFBCivptJsgPiB5dcSBbjsgIzlEMUIKK+m0nCA+IHrEqzsgIzlEMUMKK+m0nSA+IHHDujsgIzlEMUQKK+m0niA+IHhpxIFvOyAjOUQxRQor6bSfID4gemjEqzsgIzlEMUYKK+m0oCA+IGTDoG47ICM5RDIwCivptKEgPiBqxas7ICM5RDIxCivptKIgPiB5w7J1OyAjOUQyMgor6bSjID4gZ8WrOyAjOUQyMwor6bSkID4gemjFjW5nOyAjOUQyNAor6bSlID4gecO5OyAjOUQyNQor6bSmID4gecSBbmc7ICM5RDI2CivptKcgPiByw7JuZzsgIzlEMjcKK+m0qCA+IHnEgTsgIzlEMjgKK+m0qSA+IHRpxJU7ICM5RDI5CivptKogPiB5w7k7ICM5RDJBCivptKwgPiB5xKtuZzsgIzlEMkMKK+m0rSA+IHpoxatpOyAjOUQyRAor6bSuID4gd8WrOyAjOUQyRQor6bSvID4gw6lyOyAjOUQyRgor6bSwID4gZ3XEgTsgIzlEMzAKK+m0sSA+IMOgaTsgIzlEMzEKK+m0siA+IHpoxKs7ICM5RDMyCivptLMgPiB5w6BuOyAjOUQzMwor6bS0ID4gaMOpbmc7ICM5RDM0CivptLUgPiBqacSBbzsgIzlEMzUKK+m0tiA+IGrDrTsgIzlEMzYKK+m0tyA+IGxpw6g7ICM5RDM3CivptLggPiB6aMWrOyAjOUQzOAor6bS5ID4gcsOpbjsgIzlEMzkKK+m0uiA+IHnDrTsgIzlEM0EKK+m0uyA+IGjDs25nOyAjOUQzQgor6bS8ID4gbMO5bzsgIzlEM0MKK+m0vSA+IHLDujsgIzlEM0QKK+m0viA+IG3Ds3U7ICM5RDNFCivptL8gPiBnxJM7ICM5RDNGCivptYAgPiByw6huOyAjOUQ0MAor6bWBID4gamnEgW87ICM5RDQxCivptYIgPiB4xKt1OyAjOUQ0Mgor6bWDID4gemjFjXU7ICM5RDQzCivptYQgPiB6aMSrOyAjOUQ0NAor6bWFID4gbMO5bzsgIzlENDUKK+m1iSA+IGx1w6FuOyAjOUQ0OQor6bWKID4gamnDoTsgIzlENEEKK+m1iyA+IGrDrDsgIzlENEIKK+m1jCA+IHnDujsgIzlENEMKK+m1jSA+IGh1xIFuOyAjOUQ0RAor6bWOID4gdMWtbzsgIzlENEUKK+m1jyA+IGLFqzsgIzlENEYKK+m1kCA+IHfDujsgIzlENTAKK+m1kSA+IGp1xIFuOyAjOUQ1MQor6bWSID4gecO5OyAjOUQ1Mgor6bWTID4gYsOzOyAjOUQ1Mwor6bWUID4geMO5bjsgIzlENTQKK+m1lSA+IHjDuW47ICM5RDU1CivptZYgPiBiw6w7ICM5RDU2CivptZcgPiB4xKs7ICM5RDU3CivptZggPiBqw7luOyAjOUQ1OAor6bWZID4gasO6OyAjOUQ1OQor6bWaID4gdMO6OyAjOUQ1QQor6bWbID4gasSrbmc7ICM5RDVCCivptZwgPiB0w607ICM5RDVDCivptZ0gPiDDqTsgIzlENUQKK+m1niA+IMOpOyAjOUQ1RQor6bWfID4ga3XDoW5nOyAjOUQ1Rgor6bWgID4gaMO6OyAjOUQ2MAor6bWhID4gd8WtOyAjOUQ2MQor6bWiID4gc2jEk247ICM5RDYyCivptaMgPiBsw6BpOyAjOUQ2Mwor6bWmID4gbMO5OyAjOUQ2Ngor6bWnID4gcMOtbmc7ICM5RDY3CivptaggPiBzaMWrOyAjOUQ2OAor6bWpID4gZsO6OyAjOUQ2OQor6bWqID4gxIFuOyAjOUQ2QQor6bWrID4gemjDoG87ICM5RDZCCivptawgPiBww6luZzsgIzlENkMKK+m1rSA+IHHDrW47ICM5RDZECivpta4gPiBxacSBbjsgIzlENkUKK+m1ryA+IGLEk2k7ICM5RDZGCivptbAgPiBkacSBbzsgIzlENzAKK+m1sSA+IGzDuTsgIzlENzEKK+m1siA+IHF1w6g7ICM5RDcyCivptbMgPiBqacSBbjsgIzlENzMKK+m1tCA+IGrDujsgIzlENzQKK+m1tSA+IHTDuTsgIzlENzUKK+m1tiA+IHnEgTsgIzlENzYKK+m1tyA+IHl1xIFuOyAjOUQ3Nwor6bW4ID4gccOtOyAjOUQ3OAor6bW5ID4gbMOtOyAjOUQ3OQor6bW6ID4gecOoOyAjOUQ3QQor6bW7ID4gemjFq2k7ICM5RDdCCivptbwgPiBrxY1uZzsgIzlEN0MKK+m1vSA+IHpow7lpOyAjOUQ3RAor6bW+ID4ga8WrbjsgIzlEN0UKK+m1vyA+IHNoxJNuZzsgIzlEN0YKK+m2gCA+IHHDrTsgIzlEODAKK+m2gSA+IGrEq25nOyAjOUQ4MQor6baCID4gecOsOyAjOUQ4Mgor6baDID4gecOsOyAjOUQ4Mwor6baEID4gasSrbmc7ICM5RDg0CivptoUgPiB6xKs7ICM5RDg1CivptoYgPiBsw6FpOyAjOUQ4Ngor6baHID4gZMWNbmc7ICM5RDg3CivptoggPiBxxKs7ICM5RDg4CivptokgPiBjaMO6bjsgIzlEODkKK+m2iiA+IGfEk25nOyAjOUQ4QQor6baLID4gasWrOyAjOUQ4Qgor6baMID4gccWrOyAjOUQ4Qwor6baPID4gasSrOyAjOUQ4Rgor6baQID4gc2jDuTsgIzlEOTAKK+m2kiA+IGNow6w7ICM5RDkyCivptpMgPiBtacOhbzsgIzlEOTMKK+m2lCA+IHLDs3U7ICM5RDk0CivptpUgPiDEgW47ICM5RDk1CivptpYgPiBxxKt1OyAjOUQ5Ngor6baXID4gdMOtOyAjOUQ5Nwor6baYID4gaMO6OyAjOUQ5OAor6baZID4gdMOtOyAjOUQ5OQor6baaID4gw6g7ICM5RDlBCivptpsgPiBqacSTOyAjOUQ5Qgor6bacID4gbcOhbzsgIzlEOUMKK+m2nSA+IGbDujsgIzlEOUQKK+m2niA+IGNoxatuOyAjOUQ5RQor6bafID4gdMO6OyAjOUQ5Rgor6bagID4gecSDbjsgIzlEQTAKK+m2oSA+IGjDqTsgIzlEQTEKK+m2oiA+IHl1w6FuOyAjOURBMgor6bajID4gcGnEgW47ICM5REEzCivptqQgPiB5w7luOyAjOURBNAor6balID4gbcOpaTsgIzlEQTUKK+m2piA+IGjDujsgIzlEQTYKK+m2pyA+IHnEq25nOyAjOURBNwor6baoID4gZMO5bjsgIzlEQTgKK+m2qSA+IG3DuTsgIzlEQTkKK+m2qiA+IGrDujsgIzlEQUEKK+m2rCA+IGPEgW5nOyAjOURBQwor6batID4gZsSDbmc7ICM5REFECivptq4gPiBnw7k7ICM5REFFCivptq8gPiB5xKtuZzsgIzlEQUYKK+m2sCA+IHl1w6FuOyAjOURCMAor6baxID4geHXEgW47ICM5REIxCivptrIgPiB3xJNuZzsgIzlEQjIKK+m2syA+IHNoxKs7ICM5REIzCivptrQgPiBow6g7ICM5REI0CivptrUgPiBjaMO6OyAjOURCNQor6ba2ID4gdMOhbmc7ICM5REI2CivptrcgPiB4acOgOyAjOURCNwor6ba4ID4gcsO5bzsgIzlEQjgKK+m2uSA+IGzDrXU7ICM5REI5CivptrogPiBqw607ICM5REJBCivptrsgPiBnw7o7ICM5REJCCivptrwgPiBqacSBbjsgIzlEQkMKK+m2vSA+IHpoxa1uOyAjOURCRAor6ba+ID4gaMOgbjsgIzlEQkUKK+m2vyA+IHrEqzsgIzlEQkYKK+m3gCA+IHrEqzsgIzlEQzAKK+m3gSA+IG7DrDsgIzlEQzEKK+m3giA+IHnDoG87ICM5REMyCivpt4MgPiB5w6BuOyAjOURDMwor6beEID4gasSrOyAjOURDNAor6beFID4gbMOsOyAjOURDNQor6beGID4gdGnDoW47ICM5REM2Civpt4cgPiBrw7J1OyAjOURDNwor6beIID4gdMSrOyAjOURDOAor6beJID4gdMSrOyAjOURDOQor6beKID4gbsOsOyAjOURDQQor6beLID4gdMO6OyAjOURDQgor6beMID4gbcSDOyAjOURDQwor6beNID4gamnEgW87ICM5RENECivpt44gPiBnxIFvOyAjOURDRQor6bePID4gdGnDoW47ICM5RENGCivpt5AgPiBjaMOpbjsgIzlERDAKK+m3kSA+IGzDrDsgIzlERDEKK+m3kiA+IHpodcSBbjsgIzlERDIKK+m3kyA+IHpow6g7ICM5REQzCivpt5QgPiDDoW87ICM5REQ0Civpt5UgPiB5xINvOyAjOURENQor6beWID4gecSrOyAjOURENgor6beXID4gxY11OyAjOURENwor6beYID4gY2jDrDsgIzlERDgKK+m3mSA+IHpow6w7ICM5REQ5Civpt5ogPiBsacOhbzsgIzlEREEKK+m3myA+IHLDs25nOyAjOUREQgor6becID4gbMOzdTsgIzlEREMKK+m3nSA+IGLDrDsgIzlEREQKK+m3niA+IHNodcSBbmc7ICM5RERFCivpt58gPiB6aMO6bzsgIzlEREYKK+m3oCA+IHnDujsgIzlERTAKK+m3oSA+IHfDujsgIzlERTEKK+m3oiA+IGp1w6k7ICM5REUyCivpt6MgPiB5w61uOyAjOURFMwor6bekID4gcXXDoW47ICM5REU0Civpt6UgPiBzxKs7ICM5REU1Civpt6YgPiBqacSBbzsgIzlERTYKK+m3pyA+IHnDrDsgIzlERTcKK+m3qCA+IGh1xIE7ICM5REU4Civpt6kgPiBiw6w7ICM5REU5Civpt6ogPiB5xKtuZzsgIzlERUEKK+m3qyA+IHPDuTsgIzlERUIKK+m3rCA+IGh1w6FuZzsgIzlERUMKK+m3rSA+IGbDoW47ICM5REVECivpt64gPiBqacSBbzsgIzlERUUKK+m3ryA+IGxpw6FvOyAjOURFRgor6bewID4gecOgbjsgIzlERjAKK+m3sSA+IGvEgW87ICM5REYxCivpt7IgPiBqw6x1OyAjOURGMgor6bezID4geGnDoW47ICM5REYzCivpt7QgPiB4acOhbjsgIzlERjQKK+m3tSA+IHTDujsgIzlERjUKK+m3tiA+IG3Eg2k7ICM5REY2Civpt7cgPiB6xatuOyAjOURGNwor6be4ID4gecO5OyAjOURGOAor6be5ID4gecSrbmc7ICM5REY5Civpt7ogPiBsw7k7ICM5REZBCivpt7sgPiB0dcOhbjsgIzlERkIKK+m3vCA+IHhpw6FuOyAjOURGQwor6be9ID4geHXDqTsgIzlERkQKK+m3viA+IHnDrDsgIzlERkUKK+m3vyA+IHDDrDsgIzlERkYKK+m4gCA+IHNow7o7ICM5RTAwCivpuIEgPiBsw7pvOyAjOUUwMQor6biCID4gccSrOyAjOUUwMgor6biDID4gecOtOyAjOUUwMwor6biEID4gasOtOyAjOUUwNAor6biFID4gemjDqTsgIzlFMDUKK+m4hiA+IHnDujsgIzlFMDYKK+m4hyA+IHpoxIFuOyAjOUUwNwor6biIID4gecOoOyAjOUUwOAor6biJID4gecOhbmc7ICM5RTA5CivpuIogPiBww6w7ICM5RTBBCivpuIsgPiBuw61uZzsgIzlFMEIKK+m4jCA+IGjDuW87ICM5RTBDCivpuI0gPiBtw607ICM5RTBECivpuI4gPiB5xKtuZzsgIzlFMEUKK+m4jyA+IG3DqW5nOyAjOUUwRgor6biQID4gZMOtOyAjOUUxMAor6biRID4geXXDqDsgIzlFMTEKK+m4kiA+IHnDujsgIzlFMTIKK+m4kyA+IGzElWk7ICM5RTEzCivpuJQgPiBiw6BvOyAjOUUxNAor6biVID4gbMO6OyAjOUUxNQor6biWID4gaMOoOyAjOUUxNgor6biXID4gbMOzbmc7ICM5RTE3CivpuJggPiBzaHXEgW5nOyAjOUUxOAor6biZID4geXXDqDsgIzlFMTkKK+m4miA+IHnEq25nOyAjOUUxQQor6bibID4gZ3XDoG47ICM5RTFCCivpuJwgPiBxw7o7ICM5RTFDCivpuJ0gPiBsw607ICM5RTFECivpuJ4gPiBsdcOhbjsgIzlFMUUKK+m4nyA+IG5pxINvOyAjOUUxRgor6bigID4gasSrdTsgIzlFMjAKK+m4oSA+IGrEqzsgIzlFMjEKK+m4oiA+IHl1xIFuOyAjOUUyMgor6bijID4gbcOtbmc7ICM5RTIzCivpuKQgPiBzaMSrOyAjOUUyNAor6bilID4gxY11OyAjOUUyNQor6bimID4gecSBOyAjOUUyNgor6binID4gY8SBbmc7ICM5RTI3CivpuKggPiBixINvOyAjOUUyOAor6bipID4gemjDqG47ICM5RTI5CivpuKogPiBnxas7ICM5RTJBCivpuKsgPiBkxY1uZzsgIzlFMkIKK+m4rCA+IGzDujsgIzlFMkMKK+m4rSA+IHnEgTsgIzlFMkQKK+m4riA+IHhpxIFvOyAjOUUyRQor6bivID4gecSBbmc7ICM5RTJGCivpuLAgPiBsw61uZzsgIzlFMzAKK+m4sSA+IHpoxKs7ICM5RTMxCivpuLIgPiBxw7o7ICM5RTMyCivpuLMgPiB5dcSBbjsgIzlFMzMKK+m4tCA+IHh1w6k7ICM5RTM0CivpuLUgPiB0w7pvOyAjOUUzNQor6bi2ID4gc8SrOyAjOUUzNgor6bi3ID4gemjDrDsgIzlFMzcKK+m4uCA+IMOpcjsgIzlFMzgKK+m4uSA+IGd1xIE7ICM5RTM5CivpuLogPiB4xKt1OyAjOUUzQQor6bi7ID4gaMOpbmc7ICM5RTNCCivpuLwgPiB6aMWNdTsgIzlFM0MKK+m4vSA+IGfEkzsgIzlFM0QKK+m4viA+IGx1w6FuOyAjOUUzRQor6bi/ID4gaMOzbmc7ICM5RTNGCivpuYAgPiB3w7o7ICM5RTQwCivpuYEgPiBiw7M7ICM5RTQxCivpuYIgPiBsw607ICM5RTQyCivpuYMgPiBqdcSBbjsgIzlFNDMKK+m5hCA+IGjDujsgIzlFNDQKK+m5hSA+IMOpOyAjOUU0NQor6bmGID4gecO5OyAjOUU0Ngor6bmHID4geGnDoW47ICM5RTQ3CivpuYggPiB0w607ICM5RTQ4CivpuYkgPiB3xa07ICM5RTQ5CivpuYogPiBxdcOoOyAjOUU0QQor6bmLID4gbWnDoW87ICM5RTRCCivpuYwgPiDEgW47ICM5RTRDCivpuY0gPiBrxatuOyAjOUU0RAor6bmOID4gYsSTaTsgIzlFNEUKK+m5jyA+IHDDqW5nOyAjOUU0Rgor6bmQID4gcWnEgW47ICM5RTUwCivpuZEgPiBjaMO6bjsgIzlFNTEKK+m5kiA+IGfEk25nOyAjOUU1Mgor6bmTID4geXXEgW47ICM5RTUzCivpuZQgPiBzw7k7ICM5RTU0CivpuZUgPiBow7o7ICM5RTU1CivpuZYgPiBow6k7ICM5RTU2CivpuZcgPiDDqDsgIzlFNTcKK+m5mCA+IGfDujsgIzlFNTgKK+m5mSA+IHHEq3U7ICM5RTU5CivpuZogPiB6xKs7ICM5RTVBCivpuZsgPiBtw6lpOyAjOUU1Qgor6bmcID4gbcO5OyAjOUU1Qwor6bmdID4gbsOsOyAjOUU1RAor6bmeID4gecOgbzsgIzlFNUUKK+m5nyA+IHfEk25nOyAjOUU1Rgor6bmgID4gbMOtdTsgIzlFNjAKK+m5oSA+IGrDrTsgIzlFNjEKK+m5oiA+IG7DrDsgIzlFNjIKK+m5oyA+IGppxIFuOyAjOUU2Mwor6bmkID4gaMOoOyAjOUU2NAor6bmlID4gecSrOyAjOUU2NQor6bmmID4gecSrbmc7ICM5RTY2CivpuacgPiB6aMOoOyAjOUU2Nwor6bmoID4gbGnDoW87ICM5RTY4CivpuakgPiBsacOhbzsgIzlFNjkKK+m5qiA+IGppxIFvOyAjOUU2QQor6bmrID4gasOsdTsgIzlFNkIKK+m5rCA+IHnDuTsgIzlFNkMKK+m5rSA+IGzDuTsgIzlFNkQKK+m5riA+IHh1w6FuOyAjOUU2RQor6bmvID4gemjEgW47ICM5RTZGCivpubAgPiB5xKtuZzsgIzlFNzAKK+m5sSA+IGjDuW87ICM5RTcxCivpubIgPiBtw6luZzsgIzlFNzIKK+m5syA+IGd1w6BuOyAjOUU3Mwor6bm0ID4gc2h1xIFuZzsgIzlFNzQKK+m5tSA+IGzFrTsgIzlFNzUKK+m5tiA+IGrEq247ICM5RTc2CivpubcgPiBsw61uZzsgIzlFNzcKK+m5uCA+IGppxINuOyAjOUU3OAor6bm5ID4geGnDoW47ICM5RTc5CivpubogPiBjw7pvOyAjOUU3QQor6bm7ID4gamnEg247ICM5RTdCCivpubwgPiBqacSDbjsgIzlFN0MKK+m5vSA+IHnDoW47ICM5RTdECivpub4gPiBjw7pvOyAjOUU3RQor6bm/ID4gbMO5OyAjOUU3Rgor6bqAID4gecWNdTsgIzlFODAKK+m6gSA+IGPFqzsgIzlFODEKK+m6giA+IGrErTsgIzlFODIKK+m6gyA+IGJpxIFvOyAjOUU4Mwor6bqEID4gY8WrOyAjOUU4NAor6bqFID4gYmnEgW87ICM5RTg1CivpuoYgPiB6aMO5OyAjOUU4Ngor6bqHID4gasWrbjsgIzlFODcKK+m6iCA+IHpoxa07ICM5RTg4CivpuokgPiBqacSBbjsgIzlFODkKK+m6iiA+IG3DrTsgIzlFOEEKK+m6iyA+IG3DrTsgIzlFOEIKK+m6jCA+IHfDujsgIzlFOEMKK+m6jSA+IGzDrXU7ICM5RThECivpuo4gPiBjaMOpbjsgIzlFOEUKK+m6jyA+IGrFq247ICM5RThGCivpupAgPiBsw61uOyAjOUU5MAor6bqRID4gbsOtOyAjOUU5MQor6bqSID4gccOtOyAjOUU5Mgor6bqTID4gbMO5OyAjOUU5Mwor6bqUID4gasOsdTsgIzlFOTQKK+m6lSA+IGrFq247ICM5RTk1CivpupYgPiBqxKtuZzsgIzlFOTYKK+m6lyA+IGzDrDsgIzlFOTcKK+m6mCA+IHhpxIFuZzsgIzlFOTgKK+m6mSA+IHnDoW47ICM5RTk5CivpupogPiBqacSBOyAjOUU5QQor6bqbID4gbcOtOyAjOUU5Qgor6bqcID4gbMOsOyAjOUU5Qwor6bqdID4gc2jDqDsgIzlFOUQKK+m6niA+IHpoxIFuZzsgIzlFOUUKK+m6nyA+IGzDrW47ICM5RTlGCivpuqAgPiBqxKtuZzsgIzlFQTAKK+m6oSA+IGrEqzsgIzlFQTEKK+m6oiA+IGzDrW5nOyAjOUVBMgor6bqjID4gecOhbjsgIzlFQTMKK+m6pCA+IGPFqzsgIzlFQTQKK+m6pSA+IG3DoGk7ICM5RUE1CivpuqYgPiBtw6BpOyAjOUVBNgor6bqnID4gZ8STOyAjOUVBNwor6bqoID4gY2jEg287ICM5RUE4CivpuqkgPiBmxas7ICM5RUE5CivpuqogPiBtacSDbjsgIzlFQUEKK+m6qyA+IG1pxINuOyAjOUVBQgor6bqsID4gZsWrOyAjOUVBQwor6bqtID4gcMOgbzsgIzlFQUQKK+m6riA+IHHDuTsgIzlFQUUKK+m6ryA+IHHDujsgIzlFQUYKK+m6sCA+IG3Ds3U7ICM5RUIwCivpurEgPiBmxas7ICM5RUIxCivpurIgPiB4acOgbjsgIzlFQjIKK+m6syA+IGzDoWk7ICM5RUIzCivpurQgPiBxw7o7ICM5RUI0CivpurUgPiBtacOgbjsgIzlFQjUKK+m6tyA+IGbEk25nOyAjOUVCNwor6bq4ID4gZsWrOyAjOUVCOAor6bq5ID4gccO6OyAjOUVCOQor6bq6ID4gbWnDoG47ICM5RUJBCivpursgPiBtw6E7ICM5RUJCCivpurwgPiBtbzsgIzlFQkMKK+m6vSA+IG1vOyAjOUVCRAor6bq+ID4gaMWraTsgIzlFQkUKK+m7gCA+IHrFjXU7ICM5RUMwCivpu4EgPiBuxJNuOyAjOUVDMQor6buCID4gZsOpbjsgIzlFQzIKK+m7gyA+IGh1w6FuZzsgIzlFQzMKK+m7hCA+IGh1w6FuZzsgIzlFQzQKK+m7hSA+IGrEq247ICM5RUM1Civpu4YgPiBndcSBbmc7ICM5RUM2Civpu4cgPiB0acSBbjsgIzlFQzcKK+m7iCA+IHTFj3U7ICM5RUM4Civpu4kgPiBow6luZzsgIzlFQzkKK+m7iiA+IHjEqzsgIzlFQ0EKK+m7iyA+IGt1xINuZzsgIzlFQ0IKK+m7jCA+IGjDqW5nOyAjOUVDQwor6buNID4gc2jFrTsgIzlFQ0QKK+m7jiA+IGzDrTsgIzlFQ0UKK+m7jyA+IG5pw6FuOyAjOUVDRgor6buQID4gY2jEqzsgIzlFRDAKK+m7kSA+IGjEk2k7ICM5RUQxCivpu5IgPiBoxJNpOyAjOUVEMgor6buTID4gecOsOyAjOUVEMwor6buUID4gcWnDoW47ICM5RUQ0Civpu5UgPiBkxIFuOyAjOUVENQor6buWID4geMOsOyAjOUVENgor6buXID4gdHXEg247ICM5RUQ3Civpu5ggPiBtw7I7ICM5RUQ4Civpu5kgPiBtw7I7ICM5RUQ5Civpu5ogPiBxacOhbjsgIzlFREEKK+m7myA+IGTDoGk7ICM5RURCCivpu5wgPiBjaMO5OyAjOUVEQwor6budID4gecWPdTsgIzlFREQKK+m7niA+IGRpxINuOyAjOUVERQor6bufID4gecSrOyAjOUVERgor6bugID4geGnDoTsgIzlFRTAKK+m7oSA+IHnEg247ICM5RUUxCivpu6IgPiBxxas7ICM5RUUyCivpu6MgPiBtxJVpOyAjOUVFMwor6bukID4gecSDbjsgIzlFRTQKK+m7pSA+IGrEq25nOyAjOUVFNQor6bumID4gecO5OyAjOUVFNgor6bunID4gbMOtOyAjOUVFNwor6buoID4gZMSDbmc7ICM5RUU4Civpu6kgPiBkw7o7ICM5RUU5Civpu6ogPiBjxINuOyAjOUVFQQor6burID4gecSrbjsgIzlFRUIKK+m7rCA+IMOgbjsgIzlFRUMKK+m7rSA+IHnEgW47ICM5RUVECivpu64gPiB0xINuOyAjOUVFRQor6buvID4gw6BuOyAjOUVFRgor6buwID4gemjElW47ICM5RUYwCivpu7EgPiBkw6BpOyAjOUVGMQor6buyID4gY8SDbjsgIzlFRjIKK+m7syA+IHnEqzsgIzlFRjMKK+m7tCA+IG3DqWk7ICM5RUY0Civpu7UgPiBkxINuOyAjOUVGNQor6bu2ID4gecSDbjsgIzlFRjYKK+m7tyA+IGTDujsgIzlFRjcKK+m7uCA+IGzDujsgIzlFRjgKK+m7uSA+IHpoxK07ICM5RUY5Civpu7ogPiBmxJVuOyAjOUVGQQor6bu7ID4gZsO5OyAjOUVGQgor6bu8ID4gZsWtOyAjOUVGQwor6bu9ID4gbcStbjsgIzlFRkQKK+m7viA+IG3ErW47ICM5RUZFCivpu78gPiB5dcOhbjsgIzlFRkYKK+m8gCA+IGPDuTsgIzlGMDAKK+m8gSA+IHHDuTsgIzlGMDEKK+m8giA+IGNow6FvOyAjOUYwMgor6byDID4gd8SBOyAjOUYwMwor6byEID4gemjFqzsgIzlGMDQKK+m8hSA+IHpoxKs7ICM5RjA1CivpvIYgPiBtw6FuZzsgIzlGMDYKK+m8hyA+IMOhbzsgIzlGMDcKK+m8iCA+IGJpxJM7ICM5RjA4CivpvIkgPiB0w7pvOyAjOUYwOQor6byKID4gYsOsOyAjOUYwQQor6byLID4geXXDoW47ICM5RjBCCivpvIwgPiBjaMOhbzsgIzlGMEMKK+m8jSA+IHTDum87ICM5RjBECivpvI4gPiBkxK1uZzsgIzlGMEUKK+m8jyA+IG3DrDsgIzlGMEYKK+m8kCA+IG7DoGk7ICM5RjEwCivpvJEgPiBkxK1uZzsgIzlGMTEKK+m8kiA+IHrEqzsgIzlGMTIKK+m8kyA+IGfFrTsgIzlGMTMKK+m8lCA+IGfFrTsgIzlGMTQKK+m8lSA+IGTFjW5nOyAjOUYxNQor6byWID4gZsOpbjsgIzlGMTYKK+m8lyA+IHTDoW87ICM5RjE3CivpvJggPiB5dcSBbjsgIzlGMTgKK+m8mSA+IHDDrTsgIzlGMTkKK+m8miA+IGNoxIFuZzsgIzlGMUEKK+m8myA+IGfEgW87ICM5RjFCCivpvJwgPiBxw6w7ICM5RjFDCivpvJ0gPiB5dcSBbjsgIzlGMUQKK+m8niA+IHTEgW5nOyAjOUYxRQor6byfID4gdMSTbmc7ICM5RjFGCivpvKAgPiBzaMWtOyAjOUYyMAor6byhID4gc2jFrTsgIzlGMjEKK+m8oiA+IGbDqW47ICM5RjIyCivpvKMgPiBmw6hpOyAjOUYyMwor6bykID4gd8OpbjsgIzlGMjQKK+m8pSA+IGLDoTsgIzlGMjUKK+m8piA+IGRpxIFvOyAjOUYyNgor6bynID4gdMO6bzsgIzlGMjcKK+m8qCA+IHTDs25nOyAjOUYyOAor6bypID4gccO6OyAjOUYyOQor6byqID4gc2jEk25nOyAjOUYyQQor6byrID4gc2jDrTsgIzlGMkIKK+m8rCA+IHnDsnU7ICM5RjJDCivpvK0gPiBzaMOtOyAjOUYyRAor6byuID4gdMOtbmc7ICM5RjJFCivpvK8gPiB3w7o7ICM5RjJGCivpvLAgPiBuacOgbjsgIzlGMzAKK+m8sSA+IGrEq25nOyAjOUYzMQor6byyID4gaMO6bjsgIzlGMzIKK+m8syA+IGrDujsgIzlGMzMKK+m8tCA+IHnEg247ICM5RjM0CivpvLUgPiB0w7o7ICM5RjM1CivpvLYgPiB0w607ICM5RjM2CivpvLcgPiB4xKs7ICM5RjM3CivpvLggPiB4acSDbjsgIzlGMzgKK+m8uSA+IHnEg247ICM5RjM5CivpvLogPiBsw6lpOyAjOUYzQQor6by7ID4gYsOtOyAjOUYzQgor6by8ID4gecSDbzsgIzlGM0MKK+m8vSA+IHHDrXU7ICM5RjNECivpvL4gPiBoxIFuOyAjOUYzRQor6by/ID4gd8WrOyAjOUYzRgor6b2AID4gd8O5OyAjOUY0MAor6b2BID4gaMOzdTsgIzlGNDEKK+m9giA+IHjDrDsgIzlGNDIKK+m9gyA+IGfDqTsgIzlGNDMKK+m9hCA+IHpoxIE7ICM5RjQ0CivpvYUgPiB4w6x1OyAjOUY0NQor6b2GID4gd8Oobmc7ICM5RjQ2CivpvYcgPiB6aMSBOyAjOUY0Nwor6b2IID4gbsOzbmc7ICM5RjQ4CivpvYkgPiBuw6BuZzsgIzlGNDkKK+m9iiA+IHHDrTsgIzlGNEEKK+m9iyA+IHpoxIFpOyAjOUY0Qgor6b2MID4gasOsOyAjOUY0Qwor6b2NID4gesSrOyAjOUY0RAor6b2OID4gasSrOyAjOUY0RQor6b2PID4gasSrOyAjOUY0Rgor6b2QID4gccOtOyAjOUY1MAor6b2RID4gasSrOyAjOUY1MQor6b2SID4gY2jErTsgIzlGNTIKK+m9kyA+IGNow6huOyAjOUY1Mwor6b2UID4gY2jDqG47ICM5RjU0CivpvZUgPiBow6k7ICM5RjU1CivpvZYgPiB5w6E7ICM5RjU2CivpvZcgPiBrxJVuOyAjOUY1Nwor6b2YID4geGnDqDsgIzlGNTgKK+m9mSA+IHDDoW87ICM5RjU5CivpvZogPiBjw7lvOyAjOUY1QQor6b2bID4gc2jDrDsgIzlGNUIKK+m9nCA+IHrEqzsgIzlGNUMKK+m9nSA+IGNoxKs7ICM5RjVECivpvZ4gPiBuacOgbjsgIzlGNUUKK+m9nyA+IGrFrTsgIzlGNUYKK+m9oCA+IHRpw6FvOyAjOUY2MAor6b2hID4gbMOtbmc7ICM5RjYxCivpvaIgPiBsw61uZzsgIzlGNjIKK+m9oyA+IGNoxas7ICM5RjYzCivpvaQgPiBxdcOhbjsgIzlGNjQKK+m9pSA+IHhpw6g7ICM5RjY1CivpvaYgPiBrxJVuOyAjOUY2Ngor6b2nID4gbmnDqDsgIzlGNjcKK+m9qCA+IGrDrHU7ICM5RjY4CivpvakgPiB5xINvOyAjOUY2OQor6b2qID4gY2jDuW87ICM5RjZBCivpvasgPiBrxa1uOyAjOUY2Qgor6b2sID4gecWtOyAjOUY2Qwor6b2tID4gY2jFrTsgIzlGNkQKK+m9riA+IHnErTsgIzlGNkUKK+m9ryA+IG7DrTsgIzlGNkYKK+m9sCA+IGPDuW87ICM5RjcwCivpvbEgPiB6xY11OyAjOUY3MQor6b2yID4gccWtOyAjOUY3Mgor6b2zID4gbsSVbjsgIzlGNzMKK+m9tCA+IHhpxINuOyAjOUY3NAor6b21ID4gw7N1OyAjOUY3NQor6b22ID4gw6g7ICM5Rjc2CivpvbcgPiB3w7I7ICM5Rjc3CivpvbggPiB5w6w7ICM5Rjc4CivpvbkgPiBjaMWrbzsgIzlGNzkKK+m9uiA+IHrFjXU7ICM5RjdBCivpvbsgPiBkacSBbjsgIzlGN0IKK+m9vCA+IGNoxa07ICM5RjdDCivpvb0gPiBqw6xuOyAjOUY3RAor6b2+ID4gecOgOyAjOUY3RQor6b2/ID4gY2jErTsgIzlGN0YKK+m+gCA+IGNow6huOyAjOUY4MAor6b6BID4gaMOpOyAjOUY4MQor6b6CID4ga8SVbjsgIzlGODIKK+m+gyA+IGrFrTsgIzlGODMKK+m+hCA+IGzDrW5nOyAjOUY4NAor6b6FID4gcMOhbzsgIzlGODUKK+m+hiA+IHRpw6FvOyAjOUY4Ngor6b6HID4gesSrOyAjOUY4Nwor6b6IID4ga8SVbjsgIzlGODgKK+m+iSA+IHnFrTsgIzlGODkKK+m+iiA+IGNow7lvOyAjOUY4QQor6b6LID4gccWtOyAjOUY4Qgor6b6MID4gd8OyOyAjOUY4Qwor6b6NID4gbMOzbmc7ICM5RjhECivpvo4gPiBww6FuZzsgIzlGOEUKK+m+jyA+IGfFjW5nOyAjOUY4Rgor6b6QID4gcMOhbmc7ICM5RjkwCivpvpEgPiB5xINuOyAjOUY5MQor6b6SID4gbMOzbmc7ICM5RjkyCivpvpMgPiBsw7NuZzsgIzlGOTMKK+m+lCA+IGfFjW5nOyAjOUY5NAor6b6VID4ga8SBbjsgIzlGOTUKK+m+liA+IHTDoDsgIzlGOTYKK+m+lyA+IGzDrW5nOyAjOUY5Nwor6b6YID4gdMOgOyAjOUY5OAor6b6ZID4gbMOzbmc7ICM5Rjk5CivpvpogPiBnxY1uZzsgIzlGOUEKK+m+myA+IGvEgW47ICM5RjlCCivpvpwgPiBnxatpOyAjOUY5Qwor6b6dID4gccSrdTsgIzlGOUQKK+m+niA+IGJpxJM7ICM5RjlFCivpvp8gPiBnxatpOyAjOUY5Rgor6b6gID4geXXDqDsgIzlGQTAKK+m+oSA+IGNow7lpOyAjOUZBMQor6b6iID4gaMOpOyAjOUZBMgor6b6jID4ganXDqTsgIzlGQTMKK+m+pCA+IHhpw6k7ICM5RkE0CivpvqUgPiB5w7k7ICM5RkE1CivvpI4gPiBsw6A7ICNGOTBFCivvqIwgPiB3w7k7ICNGQTBDCivvqI0gPiBow7lvOyAjRkEwRAor76iQID4gemjFj25nOyAjRkExMAor76iSID4gccOtbmc7ICNGQTEyCivvqJUgPiB4xKs7ICNGQTE1CivvqJYgPiB6aMWrOyAjRkExNgor76iXID4gecOsOyAjRkExNwor76iYID4gbMStOyAjRkExOAor76iZID4gc2jDqW47ICNGQTE5CivvqJogPiB4acOhbmc7ICNGQTFBCivvqJsgPiBmw7o7ICNGQTFCCivvqJwgPiBqw6xuZzsgI0ZBMUMKK++onSA+IGrEq25nOyAjRkExRAor76ieID4gecWtOyAjRkExRQor76iiID4gemjFqzsgI0ZBMjIKK++opSA+IHnDrDsgI0ZBMjUKK++opiA+IGTFqzsgI0ZBMjYKK++oqiA+IGbDoG47ICNGQTJBCivvqKsgPiBzw6w7ICNGQTJCCivvqKwgPiBndcSDbjsgI0ZBMkMKK++orSA+IGjDqDsgI0ZBMkQKKworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfRW5nbGlzaC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX0VuZ2xpc2gudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZlMzUzZjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX0VuZ2xpc2gudHh0CkBAIC0wLDAgKzEsNjM2NiBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERhdGU6IFR1ZSBKYW4gMjMgMTI6NDI6MDIgMjAwMQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgS2FuamktRW5nbGlzaAorCivkuIE+J1ttYWxlIGFkdWx0XSc7CivkuIM+J1tzZXZlbl0nOwor5LiHPidbdGVuIHRob3VzYW5kXSc7CivkuIg+J1t1bml0IG9mIGxlbmd0aCBlcXVhbCAzLjMgbWV0ZXJzXSc7CivkuIk+J1t0aHJlZV0nOwor5LiKPidbdG9wXSc7CivkuIs+J1t1bmRlcl0nOwor5LiNPidbbm9dJzsKK+S4jj4nW2FuZF0nOwor5LiQPidbYmVnZ2FyXSc7CivkuJE+J1tjbG93bl0nOwor5LiUPidbbW9yZW92ZXJdJzsKK+S4lT4nW2dyZWF0XSc7CivkuJY+J1tnZW5lcmF0aW9uXSc7CivkuJc+J1t0aGlydHldJzsKK+S4mD4nW2hpbGxdJzsKK+S4mT4nW3RoaXJkIG9mIGhlYXZlbmx5IHN0ZW1zXSc7CivkuJ4+J1thc3Npc3RdJzsKK+S4oT4nW3R3b10nOwor5LimPidbZXF1YWwgdG9dJzsKK+S4qj4nW251bWVyYXJ5IGFkanVuY3RdJzsKK+S4rT4nW2NlbnRyYWxdJzsKK+S4sT4nW2NoaWxkJydzIGhhaXJzdHlsZSBib3VuZCBpbiB0d28gdHVmdHNdJzsKK+S4sj4nW3N0cmluZ10nOwor5Li2PidbZG90XSc7CivkuLg+J1tzbWFsbCByb3VuZCBvYmplY3RdJzsKK+S4uT4nW2Npbm5hYmFyIChuYXRpdmUgSGdTKV0nOwor5Li7PidbbWFzdGVyXSc7CivkuLw+J1tib3dsIG9mIGZvb2RdJzsKK+S4vz4nW2xpbmVdJzsKK+S5gj4nW2dvdmVybl0nOwor5LmDPidbdGhlbl0nOwor5LmFPidbbG9uZyB0aW1lIChhZ28pXSc7CivkuYs+J1snJ3MgKG1hcmtzIHByZWNlZGluZyBwaHJhc2UgYXMgbW9kaWZpZXIgb2YgZm9sbG93aW5nIHBocmFzZSldJzsKK+S5jT4nW3N1ZGRlbmx5XSc7CivkuY4+J1tpbnRlcnJvZ2F0aXZlIG9yIGV4Y2xhbWF0b3J5IGZpbmFsIHBhcnRpY2xlXSc7CivkuY8+J1tsYWNrXSc7CivkuZU+J1t0aWdlcl0nOwor5LmWPidbcmViZWxdJzsKK+S5lz4nW3JpZGVdJzsKK+S5mD4nW3JpZGVdJzsKK+S5mT4nW3NlY29uZCBoZWF2ZW4nJ3Mgc3RlbV0nOwor5LmdPidbbmluZV0nOwor5LmePidbYmVnXSc7CivkuZ8+J1thbHNvXSc7CivkuaI+J1tsaWRdJzsKK+S5sT4nW2NvbmZ1c2lvbl0nOwor5LmzPidbYnJlYXN0XSc7Civkub4+J1tkcnldJzsKK+S6gD4nW3R1cnRsZSBvciB0b3J0b2lzZV0nOwor5LqCPidbY29uZnVzaW9uXSc7CivkuoU+J1tob29rXSc7CivkuoY+J1t0byBmaW5pc2hdJzsKK+S6iD4nW0ldJzsKK+S6iT4nW2Rpc3B1dGVdJzsKK+S6ij4nW2FmZmFpcl0nOwor5LqLPidbYWZmYWlyXSc7Civkuow+J1t0d29dJzsKK+S6jj4nW2luXSc7CivkupE+J1tzYXldJzsKK+S6kj4nW211dHVhbGx5XSc7CivkupQ+J1tmaXZlXSc7CivkupU+J1t3ZWxsXSc7Civkupg+J1tleHRlbmQgYWNyb3NzXSc7Civkupk+J1tleHRlbmQgYWNyb3NzXSc7Civkups+J1tsaXR0bGVdJzsKK+S6nD4nW2FzaWFdJzsKK+S6nj4nW2FzaWFdJzsKK+S6nz4nW3VyZ2VudGx5XSc7CivkuqA+J1toZWFkXSc7CivkuqE+J1tkZWF0aF0nOwor5LqiPidbaGlnaF0nOwor5LqkPidbbWl4XSc7CivkuqU+J1tsYXN0IG9mIDEyIGVhcnRoIGJyYW5jaGVzXSc7CivkuqY+J1thbHNvXSc7Civkuqg+J1tzbW9vdGhseV0nOwor5LqrPidbZW5qb3ldJzsKK+S6rD4nW2NhcGl0YWwgY2l0eV0nOwor5LqtPidbcGF2aWxpb25dJzsKK+S6rj4nW2JyaWdodF0nOwor5LqwPidbY2FwaXRhbCBjaXR5XSc7CivkurM+J1tuYW1lIG9mIGRpc3RyaWN0IGluIEFuaHVpXSc7CivkurY+J1tzaW5jZXJlXSc7Civkuro+J1ttYW5dJzsKK+S7gD4nW2ZpbGUgb2YgdGVuIHNvbGRpZXJzXSc7Civku4E+J1todW1hbmVuZXNzXSc7Civku4I+J1tzdXJwbHVzIG9yIGV4Y2Vzc10nOwor5LuEPidbc2xhbnRpbmddJzsKK+S7hj4nW2ZhbGwgZm9yd2FyZF0nOwor5LuHPidbZW5lbXldJzsKK+S7ij4nW25vd10nOwor5LuLPidbZm9yZXJ1bm5lcl0nOwor5LuNPidbeWV0XSc7Civku44+J1tmcm9tXSc7Civku48+J1tidWRkaGFdJzsKK+S7lD4nW3NtYWxsIHRoaW5nXSc7Civku5U+J1tvZmZpY2lhbF0nOwor5LuWPidbb3RoZXJdJzsKK+S7lz4nW3JlbHkgdXBvbl0nOwor5LuYPidbZ2l2ZV0nOwor5LuZPidbVGFvaXN0IHN1cGVyLWJlaW5nXSc7Civku50+J1t0b2dldGhlcl0nOwor5LuePidbYW5jaWVudCB1bml0IG9mIG1lYXN1cmUgKDggZmVldCldJzsKK+S7nz4nW29uZSB0aG91c2FuZF0nOwor5LujPidbcmVwbGFjZV0nOwor5LukPidbY29tbWFuZF0nOwor5LulPidbYnkgbWVhbnMgb2ZdJzsKK+S7rT4nW2FuY2llbnQgdW5pdCBvZiBtZWFzdXJlICg4IGZlZXQpXSc7Civku64+J1tmYWxzZWhvb2RdJzsKK+S7sD4nW3JhaXNlIHRoZSBoZWFkIHRvIGxvb2tdJzsKK+S7sj4nW21pZGRsZSBicm90aGVyXSc7Civku7Y+J1tudW1lcmFyeSBhZGp1bmN0IGZvciBhcnRpY2xlXSc7Civku7c+J1twcmljZV0nOwor5Lu7PidbdHJ1c3QgdG9dJzsKK+S8gT4nW3BsYW4gYSBwcm9qZWN0XSc7CivkvIk+J1tjb21wYXJlXSc7CivkvIo+J1t0aGlyZCBwZXJzb24gcHJvbm91bl0nOwor5LyNPidbZml2ZV0nOwor5LyOPidbdGFsZW50XSc7CivkvI8+J1tjcm91Y2hdJzsKK+S8kD4nW2N1dCBkb3duXSc7CivkvJE+J1tyZXN0XSc7CivkvJo+J1thc3NlbWJsZV0nOwor5LycPidbZGVwdXR5XSc7CivkvJ0+J1tzdW1tb25dJzsKK+S8rz4nW29sZGVyIGJyb3RoZXJdJzsKK+S8sD4nW21lcmNoYW50XSc7CivkvLQ+J1tjb21wYW5pb25dJzsKK+S8tj4nW2xvbmVseV0nOwor5Ly4PidbZXh0ZW5kXSc7CivkvLo+J1tzZXJ2ZV0nOwor5Ly8PidbcmVzZW1ibGVdJzsKK+S8vT4nW3RyYW5zY3JpcHRpb24gb2Ygc2Fuc2tyaXQgZ2hhIGluIGJ1ZGRoaXN0IHRleHRzICgnw6ttw6LDpicgXCJzYW1naGFcIildJzsKK+S9gz4nW3RlbmFudCBmYXJtZXJdJzsKK+S9hj4nW29ubHldJzsKK+S9hz4nW3dhaXRdJzsKK+S9jT4nW3Rocm9uZV0nOwor5L2OPidbbG93XSc7CivkvY8+J1tyZXNpZGVdJzsKK+S9kD4nW2Fzc2lzdF0nOwor5L2RPidbaGVscF0nOwor5L2TPidbYm9keV0nOwor5L2VPidbd2hhdF0nOwor5L2XPidbb3RoZXJdJzsKK+S9mT4nW0ldJzsKK+S9mj4nW2luZHVsZ2UgaW4gcGxlYXN1cmVzXSc7CivkvZs+J1tidWRkaGEgKGNvbnRyYWN0aW9uIG9mIE1DICdiaGnDqnRkaGEnKV0nOwor5L2cPidbbWFrZV0nOwor5L2dPidbcmlja2V0c10nOwor5L2ePidbZmxhdHRlcnldJzsKK+S9qT4nW2JlbHQgb3JuYW1lbnRdJzsKK+S9rz4nW3ByZXRlbmRdJzsKK+S9sD4nW2h1bmRyZWRdJzsKK+S9sz4nW2dvb2RdJzsKK+S9tT4nW2NvbWJpbmVdJzsKK+S9tj4nW3N0cm9uZ10nOwor5L27PidbZnJpdm9sb3VzXSc7Civkvbw+J1tiZWF1dGlmdWxdJzsKK+S9vz4nW2NhdXNlXSc7CivkvoM+J1t1cHJpZ2h0IGFuZCBzdHJvbmddJzsKK+S+hj4nW2NvbWVdJzsKK+S+iD4nW2x1eHVyaW91c10nOwor5L6LPidbcHJlY2VkZW50XSc7Civkvo0+J1tzZXJ2ZV0nOwor5L6PPidbc21hbGxdJzsKK+S+kT4nW2hlbHBdJzsKK+S+lj4nW2xvZ2ljYWwgcmVhc29uc10nOwor5L6YPidbZGlzYXBwb2ludGVkXSc7Civkvps+J1tzdXBwbHldJzsKK+S+nT4nW3JlbHkgb25dJzsKK+S+oD4nW2NoaXZhbHJvdXMgcGVyc29uXSc7CivkvqE+J1twcmljZV0nOwor5L6rPidbZmxhdHRlcnldJzsKK+S+rT4nW2NvbXBsZXRlXSc7Civkvq4+J1tpbnN1bHRdJzsKK+S+rz4nW21hcnF1aXNdJzsKK+S+tT4nW2ludmFkZV0nOwor5L62PidbY29tcGFuaW9uXSc7Civkvr8+J1tjb252ZW5pZW5jZV0nOwor5L+CPidbYmluZF0nOwor5L+DPidbdXJnZV0nOwor5L+EPidbc3VkZGVuKGx5KV0nOwor5L+KPidbdGFsZW50ZWRdJzsKK+S/jj4nW2Nob3BwaW5nIGJvYXJkIG9yIGJsb2NrXSc7Civkv5A+J1tzbW9vdGhdJzsKK+S/kT4nW3dvb2RlbiBmaWd1cmUgYnVyaWVkIHdpdGggZGVhZF0nOwor5L+UPidbbGlrZV0nOwor5L+XPidbc29jaWFsIGN1c3RvbXNdJzsKK+S/mD4nW3ByaXNvbmVyIG9mIHdhcl0nOwor5L+aPidbcnVzdGljXSc7Civkv5s+J1ttYWtlIGVmZm9ydF0nOwor5L+dPidbcHJvdGVjdF0nOwor5L+fPidbd2FpdCBmb3JdJzsKK+S/oT4nW3RydXN0XSc7Civkv6M+J1tiaWddJzsKKyMi5L+jPidbYmlnXSciLAor5L+lPidbcmlja3NoYXddJzsKK+S/rj4nW3N0dWR5XSc7Civkv68+J1tib3cgZG93bl0nOwor5L+zPidbYWN0b3JdJzsKK+S/tT4nW2RpdmlkZV0nOwor5L+2Pidbc3RhcnRdJzsKK+S/uD4nW3dhZ2VzXSc7Civkv7o+J1twZXJzb25hbCBwcm9ub3VuXSc7Civkv74+J1tzbyB0aGF0XSc7CivlgIU+J1tkZXB1dHldJzsKK+WAhj4nW2NsZXZlcl0nOwor5YCJPidbZ3JhbmFyeV0nOwor5YCLPidbbnVtZXJhcnkgYWRqdW5jdF0nOwor5YCNPidbdGltZXNdJzsKK+WAjz4nW2hhc3RpbHldJzsKK+WAkT4nW2FkanVuY3QgcHJvbm91biBpbmRpY2F0ZSBwbHVyYWxdJzsKK+WAkj4nW2ZhbGwgb3Zlcl0nOwor5YCUPidbc3R1YmJvcm5dJzsKK+WAlj4nW2x1Y2t5XSc7CivlgJk+J1t3YWl0XSc7CivlgJo+J1tyZWx5IG9uXSc7CivlgJ8+J1tib3Jyb3ddJzsKK+WAoT4nW2d1aWRlXSc7CivlgKM+J1tpbWl0YXRlXSc7CivlgKQ+J1twcmljZV0nOwor5YClPidbYm9vcmlzaF0nOwor5YCmPidbYmUgdGlyZWQgb2ZdJzsKK+WAqD4nW2Fycm9nYW50XSc7CivlgKk+J1tiZWF1dGlmdWxdJzsKK+WAqj4nW2ZlZWJsZV0nOwor5YCrPidbbm9ybWFsIGh1bWFuIHJlbGF0aW9uc2hpcHNdJzsKK+WArD4nW25vdGljZWFibGVdJzsKK+WArT4nW2R3YXJmXSc7CivlgLY+J1thbGxdJzsKK+WAuT4nW3RlbXBlcmF0ZV0nOwor5YGDPidbY2Vhc2VdJzsKK+WBhz4nW2ZhbHNlaG9vZF0nOwor5YGIPidbYnJhdmVdJzsKK+WBiT4nW2dyZWF0XSc7CivlgY8+J1tpbmNsaW5lZCBvbmUgc2lkZV0nOwor5YGQPidbZmFsc2VdJzsKK+WBlT4nW3RvZ2V0aGVyXSc7CivlgZY+J1tyaXAgdXBdJzsKK+WBmj4nW3dvcmtdJzsKK+WBnD4nW3N0b3BdJzsKK+WBpT4nW3N0cm9uZ10nOwor5YGsPidbdXJnZW50XSc7CivlgbI+J1t0YWxlbnRlZF0nOwor5YG0Pidbc2lkZV0nOwor5YG1Pidbc3B5XSc7CivlgbY+J1thY2NpZGVudGFsbHldJzsKK+WBuD4nW3RvIHN0ZWFsXSc7Civlgb0+J1tmYWxzZV0nOwor5YKAPidbZ3JlYXRdJzsKK+WChT4nW3R1dG9yXSc7Civlgo0+J1tieSBzaWRlIG9mXSc7CivlgpE+J1toZXJvXSc7Civlgpg+J1t1bWJyZWxsYV0nOwor5YKZPidbcHJlcGFyZV0nOwor5YKaPidbaW1pdGF0ZV0nOwor5YKsPidbcHJlc3NdJzsKK+WCrT4nW2hpcmVdJzsKK+WCsj4nW3Byb3VkXSc7CivlgrM+J1tzdW1tb25dJzsKK+WCtD4nW2h1bXBiYWNrXSc7CivlgrU+J1tkZWJ0XSc7Civlgrc+J1t3b3VuZF0nOwor5YK+PidbdXBzZXRdJzsKK+WDgj4nW2h1bXBiYWNrXSc7Civlg4U+J1tvbmx5XSc7Civlg4k+J1thbGxdJzsKK+WDij4nW1Rhb2lzdCBzdXBlci1iZWluZ10nOwor5YONPidbbGFib3JdJzsKK+WDjz4nW3BpY3R1cmVdJzsKK+WDkT4nW3Nvam91cm5dJzsKK+WDlT4nW3NsYXZlXSc7Civlg5Y+J1tqb3ldJzsKK+WDmj4nW2NvbXBhbmlvbl0nOwor5YOePidbZmFsc2VdJzsKK+WDoz4nW2Fzc3VtZV0nOwor5YOlPidbYmUgbHVja3ldJzsKK+WDpz4nW2J1ZGRoaXN0IHByaWVzdF0nOwor5YOtPidbYXNzdW1lXSc7Civlg64+J1twYWdlXSc7Civlg7U+J1tzdGlmZiBhbmQgbW90aW9ubGVzc10nOwor5YO5PidbcHJpY2VdJzsKK+WDuz4nW291dC1vZi10aGUtd2F5XSc7CivlhIA+J1tjZXJlbW9ueV0nOwor5YSBPidbb3V0c3RhbmRpbmddJzsKK+WEgj4nW0ldJzsKK+WEhD4nW2h1bmRyZWQgbWlsbGlvbl0nOwor5YSJPidbdGVtcGVyYXRlXSc7CivlhJI+J1tjb25mdWNpYW4gc2Nob2xhcl0nOwor5YSUPidbY29tcGFuaW9uXSc7CivlhJU+J1thIGNvbXBhbnldJzsKKyMi5YSVPidbYSBjb21wYW55XSciLAor5YSYPidbdXRtb3N0XSc7CisjIuWEmD4nW3V0bW9zdF0nIiwKK+WEnz4nW3JlcGF5XSc7CivlhKE+J1twdXBwZXRdJzsKK+WEqj4nW3N1cGVyaW9yXSc7CivlhLI+J1tzYXZlIG1vbmV5XSc7CivlhLc+J1tzcG91c2VdJzsKK+WEuj4nW3JpY2hdJzsKK+WEuz4nW2lmXSc7CivlhLw+J1tncmF2ZV0nOwor5YS/Pidbc29uXSc7CivlhYA+J1t0byBjdXQgb2ZmIHRoZSBmZWV0XSc7CivlhYE+J1t0byBncmFudF0nOwor5YWDPidbZmlyc3RdJzsKK+WFhD4nW2VsZGVyIGJyb3RoZXJdJzsKK+WFhT4nW2ZpbGxdJzsKK+WFhj4nW29tZW5dJzsKK+WFhz4nW2F0cm9jaW91c10nOwor5YWIPidbZmlyc3RdJzsKK+WFiT4nW2xpZ2h0XSc7CivlhYs+J1tncmFtXSc7CivlhYw+J1tjYXNoXSc7CivlhY0+J1tzcGFyZV0nOwor5YWOPidbcmFiYml0XSc7CivlhZA+J1tzb25dJzsKK+WFkj4nW3Nvbl0nOwor5YWUPidbcmFiYml0XSc7CivlhZo+J1twb2xpdGljYWwgcGFydHldJzsKK+WFnD4nW3BvdWNoXSc7CivlhaI+J1tmZWFyZnVsXSc7CivlhaU+J1tlbnRlcl0nOwor5YWoPidbbWFpbnRhaW5dJzsKK+WFqT4nW3R3b10nOwor5YWqPidbc3VybmFtZV0nOwor5YWrPidbZWlnaHRdJzsKK+WFrD4nW2ZhaXJdJzsKK+WFrT4nW251bWJlciBzaXhdJzsKK+WFrj4nW2V4Y2xhbWF0b3J5IHBhcnRpY2xlXSc7CivlhbE+J1t0b2dldGhlciB3aXRoXSc7CivlhbU+J1tzb2xkaWVyXSc7CivlhbY+J1toaXNdJzsKK+WFtz4nW3Rvb2xdJzsKK+WFuD4nW2xhd10nOwor5YW8PidbdW5pdGVdJzsKK+WGgD4nW2hvcGUgZm9yXSc7CivlhoI+J1t3aWRlXSc7CivlhoU+J1tpbnNpZGVdJzsKK+WGhj4nW3llbl0nOwor5YaJPidbdGVuZGVyXSc7Civlhoo+J1tib29rXSc7Civlhow+J1tib29rXSc7Civlho0+J1thZ2Fpbl0nOwor5YaPPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor5YaQPidbcmlza10nOwor5YaRPidbaGVsbWV0XSc7CivlhpI+J1tyaXNrXSc7CivlhpM+J1thIHNlY2x1ZGVkIHBsYWNlXSc7CivlhpU+J1tjcm93bl0nOwor5YaWPidbY292ZXJdJzsKK+WGlz4nW2V4Y2Vzc2l2ZV0nOwor5YaZPidbd3JpdGVdJzsKK+WGoD4nW2NhcF0nOwor5YaiPidbYnVyaWFsIG1vdW5kXSc7CivlhqQ+J1tncmlldmFuY2VdJzsKK+WGpT4nW2RhcmtdJzsKK+WGpj4nW2JhbmRpdHNdJzsKK+WGqD4nW2FidW5kYW50XSc7Civlhqk+J1t3cml0ZV0nOwor5YaqPidbY292ZXItY2xvdGhdJzsKK+WGqz4nW2ljZV0nOwor5YasPidbd2ludGVyXSc7CivlhrA+J1tpY2VdJzsKK+WGsT4nW2ZyZWV6aW5nXSc7CivlhrI+J1tzb2FyXSc7CivlhrM+J1tkZWNpZGVdJzsKK+WGtD4nW2ZyZWV6aW5nXSc7CivlhrU+J1tjb25kaXRpb25dJzsKK+WGtj4nW3NtZWx0XSc7Civlhrc+J1tjb2xkXSc7Civlhr0+J1tjb2xkIGFuZCByYXddJzsKK+WHhD4nW2JpdHRlciBjb2xkXSc7Civlh4U+J1tkcmllZCB1cF0nOwor5YeGPidbYXBwcm92ZV0nOwor5YeJPidbY29vbF0nOwor5YeLPidbYmUgd2l0aGVyZWRdJzsKK+WHjD4nW3B1cmVdJzsKK+WHjT4nW2ZyZWV6ZV0nOwor5YeWPidbcnVsZV0nOwor5YebPidbdG8gc2hpdmVyIHdpdGggY29sZCBvciBmZWFyXSc7Civlh5w+J1tzaGl2ZXIgd2l0aCBjb2xkIG9yIGZlYXJdJzsKK+WHnT4nW2NvYWd1bGF0ZV0nOwor5YegPidbc21hbGwgdGFibGVdJzsKK+WHoT4nW2FsbF0nOwor5YemPidbcGxhY2VdJzsKK+WHpz4nW2tpdGVdJzsKK+WHqT4nW3dpbnRyeSB3aW5kXSc7Civlh6o+J1tjYWxtXSc7Civlh60+J1tsZWFuIG9uXSc7Civlh7A+J1tmZW1hbGUgcGhvZW5peF0nOwor5YexPidbdHJpdW1waGFudF0nOwor5Ye1PidbcmVjZXB0YWNsZV0nOwor5Ye2PidbY3VscHJpdF0nOwor5Ye4PidbcHJvdHJ1ZGVdJzsKK+WHuT4nW2NvbmNhdmVdJzsKK+WHuj4nW2dvIG91dF0nOwor5Ye9PidbY29ycmVzcG9uZGVuY2VdJzsKK+WHvj4nW2NvcnJlc3BvbmRlbmNlXSc7CivliIA+J1trbmlmZV0nOwor5YiDPidbZWRnZWQgdG9vbF0nOwor5YiEPidbZWRnZWQgdG9vbF0nOwor5YiGPidbZGl2aWRlXSc7CivliIc+J1tjdXRdJzsKK+WIiD4nW2N1dCBvZmZdJzsKK+WIij4nW3B1YmxpY2F0aW9uXSc7CivliIs+J1twdWJsaWNhdGlvbl0nOwor5YiOPidbYmVoZWFkXSc7CivliJE+J1twdW5pc2htZW50XSc7CivliJQ+J1tzY29vcCBvdXRdJzsKK+WIlz4nW2xpbmVdJzsKK+WInT4nW2JlZ2lubmluZ10nOwor5YikPidbanVkZ2VdJzsKK+WIpT4nW3NlcGFyYXRlXSc7CivliKc+J1tkaXNhc3Rlcl0nOwor5YipPidbZ2FpbnNdJzsKK+WIqj4nW3RvIGN1dF0nOwor5YiuPidbc2hhdmVdJzsKK+WIsD4nW2dvIHRvXSc7CivliLM+J1tjdXQgb3V0XSc7CivliLY+J1tzeXN0ZW1dJzsKK+WItz4nW2JydXNoXSc7CivliLg+J1tjZXJ0aWZpY2F0ZV0nOwor5Yi5PidbdGVtcGxlXSc7CivliLo+J1tzdGFiXSc7CivliLs+J1tjYXJ2ZV0nOwor5YmDPidbc2hhdmVdJzsKK+WJhD4nW2N1dCB0aHJvYXRdJzsKK+WJhz4nW3J1bGVdJzsKK+WJij4nW3NjcmFwZSBvZmZdJzsKK+WJiz4nW3N1YmR1ZV0nOwor5YmMPidbc2xhc2hdJzsKK+WJjT4nW2luIGZyb250XSc7CivliY8+J1tlc3RhYmxpc2hdJzsKK+WJlD4nW3BpY2sgb3V0XSc7CivliZY+J1tzcGxpdCBpbiB0d29dJzsKK+WJmz4nW2hhcmRdJzsKK+WJnj4nW2NhcnZpbmcgb3IgZW5ncmF2aW5nIGtuaWZlXSc7CivliaM+J1tzd29yZF0nOwor5YmkPidbbWVkaWNpbmFsIHByZXBhcmF0aW9uXSc7CivliaU+J1twZWVsXSc7Civliak+J1tsZWZ0b3ZlcnNdJzsKK+WJqj4nW3NjaXNzb3JzXSc7Civlia8+J1thc3Npc3RdJzsKK+WJsD4nW2xlZnRvdmVyc10nOwor5YmxPidbc3dvcmRdJzsKK+WJsj4nW2N1dF0nOwor5YmzPidbYnJpZWYgbm90ZV0nOwor5Ym0Pidbc2hhcnBlbl0nOwor5Ym1PidbZXN0YWJsaXNoXSc7Civlib0+J1tyb2JdJzsKK+WJvz4nW2Rlc3Ryb3ldJzsKK+WKgz4nW2RpdmlkZV0nOwor5YqHPidbdGhlYXRyaWNhbCBwbGF5c10nOwor5YqIPidbY3V0IGFwYXJ0XSc7Civliok+J1tzdXJuYW1lXSc7Civlio0+J1tzd29yZF0nOwor5YqRPidbbWVkaWNpbmFsIHByZXBhcmF0aW9uXSc7CivlipI+J1tzd29yZF0nOwor5YqUPidbc3dvcmRdJzsKK+WKmz4nW3Bvd2VyXSc7Civlip8+J1thY2hpZXZlbWVudF0nOwor5YqgPidbYWRkIHRvXSc7CivliqM+J1tiYWRdJzsKK+WKqT4nW2hlbHBdJzsKK+WKqj4nW2V4ZXJ0XSc7Civliqs+J1t0YWtlIGJ5IGZvcmNlXSc7Civliqw+J1tiZSBkaWxpZ2VudF0nOwor5YqtPidbZW5jb3VyYWdlXSc7CivlirE+J1tzdHJpdmVdJzsKK+WKtD4nW2xhYm9yXSc7CivlirU+J1tjZXJ0aWZpY2F0ZV0nOwor5Yq5PidbZWZmaWNhY2lvdXNdJzsKK+WKvD4nW2JlIGRpc2NyZWV0XSc7Civlir4+J1tleGFtaW5lIGludG9dJzsKK+WLgT4nW3N0cm9uZ10nOwor5YuDPidbc3VkZGVubHldJzsKK+WLhT4nW2ltcGVyaWFsIGRlZ3JlZV0nOwor5YuHPidbYnJhdmVdJzsKK+WLiT4nW2VuZGVhdm9yXSc7Civli40+J1tzdHJvbmddJzsKK+WLkj4nW3N0cmFuZ2xlXSc7Civli5U+J1ttb3ZlXSc7Civli5c+J1tlbmpvaW5dJzsKK+WLmD4nW2ludmVzdGlnYXRlXSc7Civli5k+J1thZmZhaXJzXSc7Civli50+J1t2aWN0b3J5XSc7Civli54+J1tsYWJvcl0nOwor5YufPidbbGV2eV0nOwor5YugPidbam9pbiBmb3JjZXNdJzsKK+WLoj4nW3Bvd2VyXSc7Civli6M+J1thY2hpZXZlbWVudHNdJzsKK+WLpD4nW2luZHVzdHJpb3VzXSc7Civli6Y+J1tkZXN0cm95XSc7Civli6c+J1tyZWNvbW1lbmRdJzsKK+WLsj4nW21lcml0b3Jpb3VzIGRlZWRdJzsKK+WLsz4nW21lcml0b3Jpb3VzIGRlZWRdJzsKK+WLtT4nW3N0cml2ZV0nOwor5Yu4PidbcmVjb21tZW5kXSc7Civli7k+J1t3cmFwXSc7Civli7o+J1tzcG9vbl0nOwor5Yu+PidbaG9va10nOwor5Yu/PidbbXVzdCBub3RdJzsKK+WMgT4nW0phcGFuZXNlIHVuaXQgb2Ygd2VpZ2h0ICgxLzEwMDAgb2YgYSBrYW4pXSc7CivljII+J1tmcmFncmFuY2VdJzsKK+WMhT4nW3dyYXBdJzsKK+WMhj4nW2hhc3RpbHldJzsKK+WMiD4nW2JyZWFzdF0nOwor5YyNPidbY3Jhd2xdJzsKK+WMjz4nW2dvdXJkXSc7CivljJA+J1tmYWxsIHByb3N0cmF0ZV0nOwor5YyVPidbc3Bvb25dJzsKK+WMlj4nW2NoYW5nZV0nOwor5YyXPidbbm9ydGhdJzsKK+WMmT4nW3Nwb29uXSc7CivljJo+J1tib3hdJzsKK+WMnT4nW2Z1bGwgY2lyY2xlXSc7CivljKA+J1tjcmFmdHNtYW5dJzsKK+WMoT4nW2NvcnJlY3RdJzsKK+WMoz4nW3NtYWxsIGJveF0nOwor5YyqPidbYmFuZGl0c10nOwor5YyvPidbY29uY291cnNlXSc7CivljLE+J1t0byBsYWNrXSc7CivljLM+J1tsYWRpZXMgdG9pbGV0IGNhc2Ugd2l0aCBtaXJyb3JdJzsKK+WMuD4nW2JveF0nOwor5Yy5PidbYm9sdCBvZiBjbG90aF0nOwor5Yy6PidbYXJlYV0nOwor5Yy7PidbY3VyZV0nOwor5Yy/PidbaGlkZV0nOwor5Y2APidbYXJlYV0nOwor5Y2BPidbdGVuXSc7CivljYM+J1t0aG91c2FuZF0nOwor5Y2FPidbdGhpcnR5XSc7CivljYY+J1tzb2xkaWVyXSc7CivljYc+J1thcmlzZV0nOwor5Y2IPidbbm9vbl0nOwor5Y2JPidbZ2VuZXJhbCB0ZXJtIGZvciBwbGFudHNdJzsKK+WNij4nW2hhbGZdJzsKK+WNjT4nW3N3YXN0aWthIC0gZm91cnRoIG9mIGF1c3BpY2lvdXNdJzsKK+WNkT4nW2h1bWJsZV0nOwor5Y2SPidbc29sZGllcl0nOwor5Y2TPidbcHJvZm91bmRdJzsKK+WNlD4nW2JlIHVuaXRlZF0nOwor5Y2XPidbc291dGhdJzsKKyMi5Y2XPidbc291dGhdJyIsCivljZo+J1tnYW1ibGVdJzsKK+WNnD4nW2ZvcnR1bmUgdGVsbGluZ10nOwor5Y2ePidbYmUgaW1wYXRpZW50XSc7CivljaA+J1tkaXZpbmVdJzsKK+WNpj4nW2ZvcnR1bmUgdGVsbGluZ10nOwor5Y2pPidbc2VhbF0nOwor5Y2uPidbbWVhc3VyaW5nIGN1cF0nOwor5Y2vPidbNHRoIG9mIEVhcnRoIEJyYW5jaGVzXSc7CivljbA+J1twcmludF0nOwor5Y2xPidbZGFuZ2Vyb3VzXSc7CivljbM+J1twcm9tcHRseV0nOwor5Y20Pidbc3RpbGxdJzsKK+WNtT4nW2VnZ10nOwor5Y23Pidbc2Nyb2xsXSc7Civljbg+J1tsYXkgZG93bl0nOwor5Y27Pidbc3RpbGxdJzsKK+WNvz4nW25vYmxlXSc7CivljoI+J1tmYWN0b3J5XSc7CivljoQ+J1thZHZlcnNpdHldJzsKK+WOlj4nW2J1bGt5XSc7Civljpg+J1t0aG91c2FuZHRoIHBhcnQgb2YgdGFlbF0nOwor5Y6aPidbdGhpY2tdJzsKK+WOnz4nW3NvdXJjZV0nOwor5Y6gPidbbWluZ2xlIHdpdGhdJzsKK+WOpT4nW3BlcnNvbmFsIHByb25vdW4gLSBoZV0nOwor5Y6mPidbYmlnIGJ1aWxkaW5nXSc7Civljqg+J1traXRjaGVuXSc7Civljqk+J1tzdGFibGVdJzsKK+WOrT4nW2Rpc2xpa2VdJzsKK+WOrj4nW3NlcnZhbnRdJzsKK+WOsD4nW2ZhY3RvcnldJzsKK+WOsz4nW3N0cmljdF0nOwor5Y62PidbcHJpdmF0ZV0nOwor5Y67PidbZ28gYXdheV0nOwor5Y+CPidbdGFrZSBwYXJ0IGluXSc7Civlj4M+J1t0YWtlIHBhcnQgaW5dJzsKK+WPiD4nW2FuZF0nOwor5Y+JPidbY3JvdGNoXSc7Civlj4o+J1tleHRlbmRdJzsKK+WPiz4nW2ZyaWVuZF0nOwor5Y+MPidbc2V0IG9mIHR3b10nOwor5Y+NPidbcmV2ZXJzZV0nOwor5Y+OPidbZ2F0aGVyIHRvZ2V0aGVyXSc7Civlj5Q+J1tmYXRoZXInJ3MgeW91bmdlciBicm90aGVyXSc7Civlj5Y+J1t0YWtlXSc7Civlj5c+J1tyZWNlaXZlXSc7Civlj5k+J1tleHByZXNzXSc7Civlj5s+J1tyZWJlbF0nOwor5Y+fPidbb2xkIG1hbl0nOwor5Y+hPidbYXN0dXRlXSc7Civlj6I+J1tidXNoXSc7Civlj6M+J1ttb3V0aF0nOwor5Y+kPidbb2xkXSc7Civlj6U+J1tzZW50ZW5jZV0nOwor5Y+oPidbdGFsa2F0aXZlXSc7Civlj6k+J1trbm9ja10nOwor5Y+qPidbb25seV0nOwor5Y+rPidbY3J5XSc7Civlj6w+J1tpbXBlcmlhbCBkZWNyZWVdJzsKK+WPrT4nW3RydW1wZXRdJzsKK+WPrj4nW2V4aG9ydCBvciBlbmpvaW4gcmVwZWF0ZWRseV0nOwor5Y+vPidbbWF5XSc7Civlj7A+J1twbGF0Zm9ybV0nOwor5Y+xPidbc2NvbGRdJzsKK+WPsj4nW2hpc3RvcnldJzsKK+WPsz4nW3JpZ2h0XSc7Civlj7Y+J1t0byBoYXJtb25pemVdJzsKK+WPtz4nW21hcmtdJzsKK+WPuD4nW3Rha2UgY2hhcmdlIG9mXSc7CisjIuWPuT4nW3NpZ2hdJyIsCivlkIE+J1tpbnRlcmplY3Rpb24gXCJBbGFzIVwiXSc7CivlkIM+J1tlYXRdJzsKK+WQhD4nW2VhY2hdJzsKK+WQiD4nW2NvbWJpbmVdJzsKK+WQiT4nW2x1Y2t5XSc7CivlkIo+J1tjb25kb2xlXSc7CivlkIs+J1tpbmNoXSc7CivlkIw+J1tzYW1lXSc7CivlkI0+J1tuYW1lXSc7CivlkI4+J1txdWVlbl0nOwor5ZCPPidbZ292ZXJubWVudCBvZmZpY2lhbF0nOwor5ZCQPidbdm9taXRdJzsKK+WQkT4nW3Rvd2FyZF0nOwor5ZCbPidbc292ZXJlaWduXSc7CivlkJ0+J1tzdGluZ3ldJzsKK+WQnz4nW3NpbmddJzsKK+WQoD4nW2JhcmtdJzsKK+WQpj4nW25vdF0nOwor5ZCpPidbb3JkZXJdJzsKK+WQqz4nW2hvbGQgaW4gbW91dGhdJzsKK+WQrD4nW2hlYXJdJzsKK+WQrT4nW3Rocm9hdF0nOwor5ZCuPidbc3VjayB3aXRoIG1vdXRoXSc7CivlkLY+J1tyYWlzZSB2b2ljZV0nOwor5ZC4PidbaW5oYWxlXSc7CivlkLk+J1tibG93XSc7CivlkLs+J1traXNzXSc7CivlkLw+J1tyb2FyXSc7CivlkL0+J1tcIk9NXCJdJzsKK+WQvj4nW2ldJzsKK+WRgD4nW3BhcnRpY2xlIHVzZWQgZXhwcmVzcyBzdXJwcmlzZV0nOwor5ZGCPidbc3VybmFtZV0nOwor5ZGGPidbZHVsbF0nOwor5ZGIPidbc3VibWl0XSc7CivlkYk+J1tvbmUgb2Ygd2FycmluZyBzdGF0ZXNdJzsKK+WRij4nW3RlbGxdJzsKK+WRjj4nW2Zvb3RdJzsKK+WRkT4nW3N3YWxsb3ddJzsKKyMi5ZGcPidbc291bmQgb2YgY3J5aW5nXSciLAor5ZGoPidbemhvdSBkeW5hc3R5XSc7Civlkao+J1tjdXJzZV0nOworIyLlkbA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+WRsT4nW3dhaWxdJzsKK+WRsz4nW3Rhc3RlXSc7CivlkbU+J1tzY29sZF0nOwor5ZG2PidbdGFsa2F0aXZlXSc7Civlkbc+J1tzdWNrXSc7Civlkbs+J1tncm9hbl0nOwor5ZG8PidbYnJlYXRoZSBzaWdoXSc7Civlkb0+J1tsaWZlXSc7CivlkoA+J1tzdWNrXSc7CivlkoQ+J1tub2lzZSBvZiByYWdlXSc7CivlkoY+J1tyb2FyXSc7Civlkos+J1t3aHk/IGhvdz8gd2hhdD9dJzsKK+WSjD4nW2hhcm1vbnldJzsKK+WSjj4nW2ZhdWx0XSc7Civlko8+J1tzaW5nIHNvbmcgb3IgcG9lbV0nOwor5ZKQPidbaW5zdHJ1Y3RdJzsKK+WSkj4nW2N1cnNlXSc7CivlkqI+J1tzb3VuZF0nOwor5ZKkPidbc2NvbGRdJzsKK+WSpT4nW3NvdW5kIG9mIGNhdF0nOwor5ZKoPidbaW5xdWlyZV0nOwor5ZKrPidbZm9vdCBtZWFzdXJlIG9mIFpob3UgZHluYXN0eV0nOwor5ZKsPidbYml0ZV0nOwor5ZKvPidbZmluYWwgcGFydGljbGVdJzsKK+WSsj4nW3NtaWxlXSc7CivlkrM+J1tjb3VnaF0nOwor5ZK4PidbdG9nZXRoZXJdJzsKK+WSvD4nW2NoYXRdJzsKK+WSvT4nW3Rocm9hdF0nOwor5ZK+PidbYSBub2lzZV0nOwor5ZOAPidbc2FkXSc7Civlk4E+J1thcnRpY2xlXSc7Civlk4I+J1tzbWlsZV0nOwor5ZOEPidbY29heF0nOwor5ZOHPidbdm9taXRdJzsKK+WTiD4nW3NvdW5kIG9mIGxhdWdodGVyXSc7Civlk4k+J1tmaW5hbCBleGNsYW1hdG9yeSBwYXJ0aWNsZV0nOworIyLlk5c+J1tydXNoaW5nIHNvdW5kXSciLAor5ZOhPidbbWVtYmVyXSc7Civlk6I+J1tzeWxsYWJsZV0nOwor5ZOlPidbZWxkZXIgYnJvdGhlcl0nOwor5ZOmPidbb2g/IHJlYWxseT8gaXMgdGhhdCBzbz9dJzsKK+WTqD4nW3doaXN0bGVdJzsKK+WTqT4nW21pbGVdJzsKK+WTrT4nW3dlZXBdJzsKK+WTrj4nW2NvdWdoXSc7Civlk7I+J1t3aXNlXSc7Civlk7o+J1tjaGV3IGZvb2RdJzsKK+WTvT4nW2Nob2tlXSc7CivllIQ+J1tmaW5hbCBwYXJ0aWNsZSBvZiBhc3NlcnRpb24gcGF0aGFrYV0nOwor5ZSGPidbbWFrZSBtaXNjaGllZl0nOwor5ZSHPidbbGlwc10nOwor5ZSPPidbd2VlcCBvciBzb2JdJzsKK+WUkD4nW3RhbmcgZHluYXN0eV0nOwor5ZSUPidbaG9sZCBpbiBtb3V0aF0nOwor5ZSWPidbZHVtYl0nOwor5ZSuPidbc2VsbF0nOwor5ZSvPidbb25seV0nOwor5ZSxPidbc2luZ10nOwor5ZSzPidbY3J5IG9mIGJpcmRdJzsKK+WUuD4nW3JlY2l0ZV0nOwor5ZS5PidbdG8gc21pbGUgYXRdJzsKK+WUvj4nW3NwaXRdJzsKK+WVgD4nW2duYXddJzsKK+WVhD4nW3RvIHBlY2tdJzsKKyMi5ZWEPidbdG8gcGVja10nIiwKK+WVhj4nW2NvbW1lcmNlXSc7CivllYw+J1thbmltYWwgZGlzZWFzZV0nOwor5ZWPPidbYXNrIChhYm91dCldJzsKK+WVkz4nW29wZW5dJzsKK+WVlj4nW2VhdF0nOwor5ZWXPidbZWF0XSc7CivllZw+J1tzaXBdJzsKKyMi5ZWcPidbc2lwXSciLAor5ZWjPidbaG9sZCBpbiBtb3V0aF0nOwor5ZW7Pidbb25seV0nOwor5ZW8Pidbd2VlcF0nOwor5ZW+Pidbd2FpbGluZyBvZiBjaGlsZF0nOwor5ZaAPidbdm9taXRdJzsKK+WWgz4nW2tlZXAgdGFsa2luZ10nOwor5ZaEPidbZ29vZF0nOwor5ZaHPidbaG9ybl0nOwor5ZaJPidbdGhyb2F0XSc7Civlloo+J1tzaG91dF0nOwor5ZaLPidbbmFnXSc7Civllpg+J1twYW50XSc7Civllpk+J1tiZWFrXSc7Civllpo+J1tjYWxsXSc7Civllpw+J1tsaWtlXSc7Civllp0+J1tkcmlua10nOwor5ZaePidbY2hpcnBpbmcgb2YgaW5zZWN0c10nOwor5ZafPidbaGVhdmUgc2lnaF0nOwor5ZanPidbbGl2ZWx5XSc7Civllqg+J1t3YWlsXSc7Civllqk+J1ttZXRhcGhvcl0nOwor5ZaqPidbbW91cm5pbmddJzsKK+WWqz4nW2VhdF0nOwor5ZasPidbdGFsbF0nOwor5ZauPidbc2luZ2xlXSc7CivllrA+J1t0byBlYXRdJzsKK+WWtj4nW2VuY2FtcG1lbnRdJzsKK+WXhD4nW2hvYXJzZSBvZiB2b2ljZV0nOwor5ZeFPidbc21lbGxdJzsKK+WXhz4nW21pc2VybHldJzsKK+WXlD4nW2JlIGFuZ3J5IGF0XSc7Civll5o+J1tzb3VuZCBvZiBjcnlpbmddJzsKK+WXnD4nW2JlIGZvbmQgb2ZdJzsKK+WXnz4nW3NpZ2hdJzsKK+WXoz4nW3RvIGNvbm5lY3RdJzsKK+WXpD4nW2xhdWdoIGF0XSc7Civll7c+J1tsb3VkIGNsYW1vcl0nOwor5Ze5PidbY2hhdHRlcl0nOwor5Ze9PidbY291Z2hdJzsKK+WXvj4nW3RvIHNldCBhIGRvZyBvbl0nOwor5ZiGPidbc2lnaF0nOwor5ZiJPidbZXhjZWxsZW50XSc7CivlmJQ+J1t2b21pdF0nOwor5ZiWPidbaW50ZXJqZWN0aW9uIG9mIGFwcHJvdmFsIG9yIGFkbWldJzsKK+WYlz4nW3Rhc3RlXSc7CivlmJg+J1tleGhhbGVdJzsKK+WYmz4nW2ZpbmFsIGV4Y2xhbWF0b3J5IHBhcnRpY2xlXSc7CivlmKk+J1tydXNoaW5nIHNvdW5kXSc7CivlmK8+J1tyb2FyXSc7CivlmLE+J1tvcmRlcl0nOwor5ZiyPidbcmlkaWN1bGVdJzsKK+WYtD4nW21vdXRoXSc7CivlmLY+J1tuZWlnaGluZyBvZiBhIGhvcnNlXSc7CivlmLg+J1t1bmNsZWFyXSc7CivlmYI+J1ttZWV0XSc7CivlmYw+J1tzY29sZF0nOwor5ZmOPidbY2hva2VdJzsKK+WZkD4nW3JlY2VwdGFjbGVdJzsKK+WZmz4nW2JpdGVdJzsKK+WZpD4nW2Nsb3NlXSc7Civlmag+J1tyZWNlcHRhY2xlXSc7Civlmao+J1tiZSBub2lzeV0nOwor5ZmrPidbYmVsY2hdJzsKK+WZrD4nW2JpdGVdJzsKK+WZtD4nW3NwdXJ0XSc7Civlmbg+J1ttZXRyaWMgdG9uXSc7Civlmbo+J1tzdG9yeV0nOwor5ZqAPidbZW5qb2luXSc7CivlmoY+J1tnaXZlIGZvcnRoIHNvdW5kXSc7Civlmoc+J1tzY2FyZV0nOwor5ZqKPidbdG8gcGFudF0nOwor5ZqPPidbc25lZXplXSc7CivlmpQ+J1tzbmVlemVdJzsKKyMi5ZqcPidbYmUgc2lsZW50XSciLAor5ZqiPidbYmFnXSc7CivlmqU+J1tzd2FsbG93XSc7Civlmq4+J1tndWlkZV0nOwor5Zq0Pidbc3RyaWN0XSc7CivlmrY+J1tzZWVrIGZyaWVuZHNdJzsKK+WavD4nW3ByYXR0bGVdJzsKK+WbgD4nW3NpbmddJzsKK+WbgT4nW21vdmUgbGlwIHdoZW4gc3BlYWtpbmddJzsKK+Wbgj4nW2JlIG5vaXN5XSc7CisjIuWbgj4nW2JlIG5vaXN5XSciLAor5ZuIPidbdGFsayBpbiBvbmUnJ3Mgc2xlZXBdJzsKKyMi5ZuNPidbZG91YmxlIGhhcHBpbmVzc10nIiwKK+WbkT4nW29yZGVyXSc7Civlm5M+J1tnbmF3XSc7Civlm5c+J1tlcmVjdF0nOwor5ZuYPidbcmV0dXJuXSc7Civlm5o+J1twcmlzb25lcl0nOwor5ZubPidbZm91cl0nOwor5ZuePidbcmV0dXJuXSc7Civlm6A+J1tjYXVzZV0nOwor5ZujPidbc3BoZXJlXSc7Civlm64+J1tpbnZlaWdsZV0nOwor5ZuwPidbc3Vycm91bmRdJzsKK+Wbsj4nW3N1cnJvdW5kXSc7Civlm7M+J1tkaWFncmFtXSc7Civlm7k+J1twcmlzb25dJzsKK+Wbuj4nW2JlY29tZSBzb2xpZF0nOwor5Zu9PidbbmF0aW9uXSc7Civlm78+J1twZW4gdXBdJzsKK+WcgD4nW25hdGlvbl0nOwor5ZyDPidbZ2FyZGVuXSc7CivlnIQ+J1twcmlzb25dJzsKK+WciD4nW3RvIGNpcmNsZV0nOwor5ZyJPidbc3RhYmxlXSc7CivlnIs+J1tuYXRpb25dJzsKK+WcjT4nW3N1cnJvdW5kXSc7CivlnI8+J1t0byBjaXJjbGVdJzsKK+Wckj4nW2dhcmRlbl0nOwor5ZyTPidbY2lyY2xlXSc7CivlnJY+J1tkaWFncmFtXSc7CivlnJg+J1tzcGhlcmVdJzsKK+WcnD4nW2NpcmNsZV0nOwor5ZyfPidbc29pbF0nOwor5ZymPidbKGtva3VqaSkgd2F0ZXIgZ2F0ZV0nOworIyLlnKY+J1soa29rdWppKSB3YXRlciBnYXRlXSciLAor5ZyoPidbYmUgYXRdJzsKK+WcrT4nW2phZGUgcG9pbnRlZCBhdCB0b3BdJzsKK+WcsD4nW2VhcnRoXSc7CisjIuWcsz4nW2Z1cnJvdyBpbiBmaWVsZF0nIiwKKyMi5ZyzPidbZnVycm93IGluIGZpZWxkXSciLAor5Zy7PidbYm9yZGVyXSc7CivlnYA+J1tzaXRlXSc7CivlnYI+J1toaWxsc2lkZV0nOwor5Z2HPidbZXF1YWxdJzsKK+Wdij4nW25laWdoYm9yaG9vZF0nOwor5Z2OPidbcGl0XSc7CivlnY8+J1tyb3R0ZW5dJzsKK+WdkD4nW3NpdF0nOwor5Z2RPidbcGl0XSc7CivlnaE+J1tzbG9wZV0nOwor5Z2kPidbZWFydGhdJzsKK+Wdpj4nW2ZsYXRdJzsKK+WdqT4nW2VhcnRoZW53YXJlXSc7Civlnao+J1tsZXZlbCBncm91bmRdJzsKK+Wdvz4nW21vdW5kXSc7CivlnoI+J1tsZXQgZG93bl0nOworIyLlnoY+J1tibGFjayBjbG9kcyBvZiBlYXJ0aF0nIiwKKyMi5Z6JPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlnos+J1twYXR0ZXJuXSc7CivlnpM+J1tib3JkZXJdJzsKK+WeoD4nW2JvdW5kYXJ5XSc7CivlnqI+J1tkaXJ0XSc7CivlnqM+J1tsb3cgd2FsbF0nOwor5Z6kPidbYW50LWhpbGxdJzsKKyMi5Z6pPidbaG9seV0nIiwKKyMi5Z6uPidbYmUgZGVmZWF0ZWRdJyIsCisjIuWesj4nW2hpZ2ggYW5kIGRyeSBwbGFjZV0nIiwKK+WfgD4nW2xldCBkb3duXSc7Civln4M+J1tmaW5lIGR1c3RdJzsKK+Wfhj4nW3N0b255XSc7Civln4s+J1tidXJ5XSc7Civln44+J1tjYXN0bGVdJzsKK+Wfkj4nW2VuY2xvc3VyZV0nOwor5Z+TPidbZW5jbG9zdXJlXSc7Civln5Q+J1twbGFpbl0nOworIyLln5Q+J1twbGFpbl0nIiwKK+WfnD4nW29wZW4gY291bnRyeV0nOwor5Z+fPidbZGlzdHJpY3RdJzsKK+WfoD4nW3BvcnQgY2l0eV0nOworIyLln6M+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+WftD4nW3NvaWwgd2l0aCBsYXJnZSBjbGF5IGNvbnRlbnRdJzsKK+Wftz4nW2hvbGQgaW4gaGFuZF0nOwor5Z+5PidbYmFuayB1cCB3aXRoIGRpcnRdJzsKK+Wfuj4nW2ZvdW5kYXRpb25dJzsKK+WfvD4nW2hlYWRsYW5kXSc7CivloIA+J1tjYXZlXSc7CivloII+J1toYWxsXSc7CivloIU+J1toYXJkXSc7CivloIY+J1toZWFwXSc7CivloIo+J1t3aGl0ZSBlYXJ0aF0nOwor5aCLPidbYnVyeV0nOwor5aCVPidbZmFsbF0nOwor5aCZPidbYnVyeV0nOwor5aCdPidbY3J1Y2libGVdJzsKK+WgoT4nW2ZvcnRdJzsKK+WgpD4nW2Rpa2VdJzsKK+Wgqj4nW2FkZXF1YXRlbHkgY2FwYWJsZSBvZl0nOwor5aCvPidbYSBsZWdlbmRhcnkgYW5jaWVudCBlbXBlcm9yLXNhZ2VdJzsKK+WgsD4nW2RhbV0nOwor5aCxPidbcmVwb3J0XSc7CivloLQ+J1tvcGVuIHNwYWNlXSc7CivloLU+J1t3YWxsXSc7CivloLo+J1twZXJzb24nJ3MgbmFtZV0nOwor5aC9PidbbW91bmRdJzsKK+WhgD4nW3dhbGxdJzsKK+WhgT4nW3JhbXBhcnRdJzsKK+Whij4nW3BpZWNlXSc7CivloYs+J1tncmF2ZV0nOwor5aGRPidbbW9kZWwgaW4gY2xheV0nOwor5aGSPidbcm9vc3RdJzsKK+WhlD4nW3Rvd2VyXSc7CivloZc+J1tzbWVhcl0nOwor5aGYPidbcG9uZF0nOwor5aGZPidbdHJ1bHldJzsKK+Whmj4nW2NlbWV0ZXJ5XSc7CivloZ4+J1tzdG9wIHVwXSc7CivloaI+J1tlbnRyZW5jaG1lbnRdJzsKK+WhqT4nW3NhbHRdJzsKK+Whqz4nW2ZpbGwgaW5dJzsKKyMi5aGtPidbW25vdCBmb3VuZCBpbiBhbnkgZGljdGlvbmFyeV1dJyIsCivlobI+J1tvcGVuIHNwYWNlXSc7CivlobU+J1tkdXN0XSc7Civlobk+J1ttb2F0XSc7Civlob4+J1t2aWxsYWdlIHNjaG9vbF0nOwor5aKDPidbYm91bmRlcnldJzsKK+WihT4nW3ZpbGxhXSc7CivlopM+J1tncmF2ZV0nOwor5aKXPidbaW5jcmVhc2VdJzsKK+WinD4nW2ZhbGwgZG93bl0nOwor5aKfPidbaGlnaCBtb3VuZF0nOwor5aKoPidbaW5rXSc7Civloqs+J1tjdXBdJzsKK+Wirj4nW2ZhbGxdJzsKK+Wisz4nW2dyYXZlXSc7CisjIuWisz4nW2dyYXZlXSciLAorIyLlorM+J1tncmF2ZV0nIiwKK+Wiuj4nWzQgd2FsbHNdJzsKK+Wiuz4nW3dhbGxdJzsKK+Wivj4nW2N1bHRpdmF0ZV0nOwor5aOBPidbcGFydGl0aW9uIHdhbGxdJzsKK+WjhT4nW3RvIG9ic3RydWN0XSc7Civlo4c+J1thbHRhcl0nOwor5aOKPidbYmFkXSc7Civlo4w+J1tzb2lsXSc7Civlo5E+J1tiZWQgb2YgdG9ycmVudF0nOwor5aOTPidbcHJlc3NdJzsKK+WjlT4nW3RyZW5jaF0nOworIyLlo5Y+J1tvcGVuIHNwYWNlIGFsb25nIHdhdGVyXSciLAor5aOYPidbcmFtcGFydF0nOwor5aOZPidbdG9tYl0nOwor5aOcPidbZWFydGhlbiBqYXIgb3IganVnXSc7Civlo54+J1tiYWRdJzsKK+Wjnz4nW2dyYXZlXSc7Civlo6Q+J1tzb2lsXSc7CisjIuWjpT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5aOrPidbc2Nob2xhcl0nOwor5aOsPidbbmludGggb2YgdGVuIGNlbGVzdGlhbCBzdGVtc10nOwor5aOuPidbYmlnXSc7Civlo68+J1tiaWddJzsKK+WjsD4nW3NvdW5kXSc7Civlo7E+J1tudW1iZXIgb25lXSc7Civlo7I+J1tzZWxsXSc7Civlo7c+J1tqYXJdJzsKK+WjuT4nW251bWJlciBvbmVdJzsKK+Wjuj4nW2phcl0nOwor5aO7Pidbc29uLWluLWxhd10nOwor5aO8PidbcGFsYWNlIGNvcnJpZG9yIG9yIHBhc3NhZ2V3YXldJzsKK+WjvT4nW29sZCBhZ2VdJzsKK+Wkgj4nW2dvXSc7CivlpIk+J1tjaGFuZ2VdJzsKK+Wkij4nW1JhZGljYWwgTm8uIDM1XSc7CivlpI8+J1tzdW1tZXJdJzsKK+WkkD4nW2xvbmddJzsKK+WklT4nW2V2ZW5pbmddJzsKK+Wklj4nW291dF0nOwor5aSYPidbNHRoIG9mIEVhcnRoIEJyYW5jaGVzXSc7CivlpJk+J1tlYXJseSBpbiBtb3JuaW5nXSc7CivlpJo+J1ttdWNoXSc7CivlpJs+J1ttdWNoXSc7CivlpJw+J1tuaWdodF0nOwor5aSiPidbZHJlYW1dJzsKK+WkpT4nW2NvbXBhbmlvbl0nOwor5aSnPidbYmlnXSc7CivlpKk+J1tza3ldJzsKK+Wkqj4nW3ZlcnldJzsKK+Wkqz4nW21hbl0nOwor5aSsPidbcGFydGVkXSc7CivlpK0+J1t5b3VuZ10nOwor5aSuPidbY2VudGVyXSc7CivlpLE+J1tsb3NlXSc7CivlpLI+J1thZHZhbmNlIHF1aWNrbHldJzsKK+Wktz4nW2FuY2llbnQgYmFyYmFyaWFuIHRyaWJlc10nOwor5aS4PidbZXh0cmF2YWdhbnRdJzsKK+Wkvj4nW2JlIHdlZGdlZCBvciBpbnNlcnRlZCBiZXR3ZWVuXSc7CivlpYQ+J1tlcmUgbG9uZ10nOwor5aWHPidbc3RyYW5nZV0nOwor5aWIPidbYnV0XSc7CivlpYk+J1tvZmZlcl0nOwor5aWOPidbc3RyaWRlIG9mIG1hbl0nOwor5aWPPidbbWVtb3JpYWxpemUgZW1wZXJvcl0nOwor5aWQPidbYmUgbnVtZXJvdXNdJzsKK+WlkT4nW2RlZWRdJzsKK+WllD4nW3J1biBmYXN0XSc7CivlpZU+J1tpbiBzZXF1ZW5jZV0nOwor5aWXPidbY2FzZV0nOwor5aWYPidbbGFyZ2VdJzsKK+Wlmj4nW3doZXJlPyB3aGF0PyBob3c/IHdoeT9dJzsKK+WloD4nW3BheSByZXNwZWN0XSc7CivlpaI+J1tleHRyYXZhZ2FudF0nOwor5aWlPidbbXlzdGVyaW91c10nOwor5aWnPidbbXlzdGVyaW91c10nOwor5aWoPidbcHJpemVdJzsKK+WlqT4nW2xhZHknJ3MgdmFuaXR5IGNhc2VdJzsKK+Wlqj4nW3Rha2UgYnkgZm9yY2VdJzsKK+WlrD4nW3ByaXplXSc7Civlpa4+J1tzdHJpdmVdJzsKK+Wlsz4nW3dvbWFuXSc7CivlpbQ+J1tzbGF2ZV0nOwor5aW4PidbY3JhZnR5XSc7Civlpb0+J1tnb29kXSc7CivlpoE+J1thY3QgYXMgZ28tYmV0d2Vlbl0nOwor5aaCPidbaWZdJzsKK+Wmgz4nW3dpZmVdJzsKK+WmhD4nW2Fic3VyZF0nOwor5aaKPidbY29uY2VpdmVdJzsKK+WmjT4nW2JlYXV0aWZ1bF0nOwor5aaTPidbcHJvc3RpdHV0ZV0nOwor5aaWPidbc3RyYW5nZV0nOwor5aaZPidbbXlzdGVyaW91c10nOworIyLlppk+J1tteXN0ZXJpb3VzXSciLAor5aadPidbYWRvcm4gb25lc2VsZl0nOwor5aajPidbb25lJydzIGRlY2Vhc2VkIG1vdGhlcl0nOwor5aalPidbc2F0aXNmYWN0b3J5XSc7Civlpqg+J1tpbnRlcmZlcmUgd2l0aF0nOwor5aasPidbamVhbG91c10nOwor5aayPidbY29uY3ViaW5lIG9mIGxhc3QgcnVsZXIgb2Ygc2hhbmddJzsKK+WmuT4nW3lvdW5nZXIgc2lzdGVyXSc7Civlprs+J1t3aWZlXSc7Civlpr4+J1tjb25jdWJpbmVdJzsKK+Wnhj4nW2NoaWxkJydzIGdvdmVybmVzc10nOwor5aeJPidbZWxkZXIgc2lzdGVyXSc7Civlp4s+J1tiZWdpbl0nOwor5aeQPidbZWxkZXIgc2lzdGVyXSc7Civlp5E+J1tmYXRoZXInJ3Mgc2lzdGVyXSc7Civlp5M+J1tvbmUnJ3MgZmFtaWx5IG5hbWVdJzsKK+WnlD4nW2FwcG9pbnRdJzsKK+WnmT4nW2NvbmNlaXZlXSc7Civlp5o+J1toYW5kc29tZV0nOwor5aecPidbc3VybmFtZV0nOwor5aelPidbbWF0ZXJuYWwgZ3JhbmRtb3RoZXJdJzsKK+Wnpj4nW2FkdWx0ZXJ5XSc7Civlp6g+J1ttb3RoZXIvd2lmZScncyBzaXN0ZXJdJzsKK+Wnqj4nW25pZWNlXSc7Civlp6s+J1tiZWF1dHldJzsKKyMi5aexPidbYmVhdXRpZnVsXSciLAor5ae7PidbcmVsYXRpdmVzIGJ5IG1hcnJpYWdlXSc7Civlp78+J1tvbmUnJ3MgbWFubmVyXSc7CivlqIE+J1twb21wXSc7CivlqIM+J1tiYWJ5XSc7CivlqIk+J1tiZWF1dGlmdWxdJzsKK+WokT4nW2RhbmNlXSc7CivlqJg+J1ttb3RoZXJdJzsKKyMi5aiaPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlqJw+J1tlbGVnYW50XSc7CivlqJ8+J1tiZWF1dGlmdWxdJzsKK+WooD4nW3ByZWduYW50XSc7CivlqKU+J1tiZSBiZWF1dGlmdWxdJzsKK+WoqT4nW2dpdmUgYmlydGggY2hpbGRdJzsKK+Worz4nW3BsZWFzdXJlXSc7CivlqLU+J1tzdGFyXSc7CivlqLY+J1ttYXJyeV0nOwor5ai8PidbcHJvc3RpdHV0ZV0nOwor5amAPidbYmUgYmVhdXRpZnVsXSc7CivlqYE+J1tzdXJuYW1lXSc7CivlqYY+J1tvbGQgd29tYW5dJzsKK+WpiT4nW2FtaWFibGVdJzsKK+Wpmj4nW2dldCBtYXJyaWVkXSc7CivlqaI+J1tzZXJ2YW50IGdpcmxdJzsKK+Wppj4nW21hcnJpZWQgd29tZW5dJzsKK+Wpqj4nW2NvdmV0XSc7Civlqaw+J1tvYnNjZW5lXSc7Civlqb8+J1tzb24taW4tbGF3XSc7CivlqpI+J1tnby1iZXR3ZWVuXSc7Civlqpo+J1tjaGFybWluZ10nOwor5aqbPidbYmVhdXR5XSc7Civlqrw+J1tvbGQgd29tYW5dJzsKK+WqvT4nW21vdGhlcl0nOwor5aq+PidbbWFycnldJzsKK+WrgT4nW21hcnJ5XSc7Civlq4I+J1tzaXN0ZXItaW4tbGF3XSc7Civlq4k+J1tqZWFsb3VzeV0nOwor5auLPidbc2xlbmRlciBhbmQgZGVsaWNhdGVdJzsKK+WrjD4nW2hhdGVdJzsKK+WrkD4nW2Zyb2xpY10nOwor5auWPidbcGF0cm9uaXplIHByb3N0aXR1dGVzXSc7Civlq5c+J1tvbGQgd29tYW5dJzsKK+WroT4nW2xlZ2FsIHdpZmVdJzsKK+Wroz4nW2NoYXJtaW5nXSc7Civlq6Y+J1tuYW1lIG9mIGEgbW9vbiBnb2RkZXNzXSc7Civlq6k+J1tzb2Z0XSc7Civlq7o+J1tyZWZpbmVkXSc7Civlq7s+J1tlbGVnYW50XSc7CivlrIk+J1tlbmpveV0nOwor5ayLPidbYmVhdXRpZnVsXSc7CivlrIw+J1tzZWR1Y3RpdmUgYW5kIGxvdmVhYmxlXSc7CivlrJY+J1tmYXZvcml0ZV0nOwor5ayiPidbdHJvdWJsZWRdJzsKK+Wsqj4nW2NvdXJ0IGxhZHldJzsKK+WsrD4nW21pc3RyZXNzXSc7CivlrLA+J1tiYWJ5XSc7CivlrLI+J1tmcm9saWNdJzsKKyMi5ay0PidbdG8gd2luXSciLAor5ay+PidbbGF6eV0nOwor5a2APidbd2lkb3ddJzsKK+Wtgz4nW3Ryb3VibGVkXSc7CivlrYU+J1tzbGVuZGVyXSc7CivlrZA+J1tvZmZzcHJpbmddJzsKK+WtkT4nW3JlbWFpbmluZ10nOwor5a2UPidbb3BlbmluZ10nOwor5a2VPidbYmUgcHJlZ25hbnRdJzsKK+Wtlz4nW2xldHRlcl0nOwor5a2YPidbZXhpc3RdJzsKK+Wtmj4nW2Jyb29kIG92ZXIgZWdnc10nOwor5a2bPidbY29tZXRdJzsKK+WtnD4nW2JlIGFzIGRpbGlnZW50IGFzIHBvc3NpYmxlXSc7CivlrZ0+J1tmaWxpYWwgcGlldHldJzsKK+Wtnz4nW2ZpcnN0IGluIHNlcmllc10nOwor5a2jPidbcXVhcnRlciBvZiB5ZWFyXSc7CivlraQ+J1tvcnBoYW5dJzsKK+WtpT4nW29uZScncyBjaGlsZHJlbl0nOwor5a2mPidbbGVhcm5pbmddJzsKK+WtqT4nW2JhYnldJzsKK+Wtqz4nW2dyYW5kY2hpbGRdJzsKK+WtsD4nW3dobz8gd2hpY2g/IHdoYXQ/IHdoaWNoIG9uZT9dJzsKK+WtsT4nW3dlYWtdJzsKK+Wtsz4nW2JyZWVkIGluIGxhcmdlIG51bWJlcnNdJzsKK+WttT4nW3NpdCBvbiBlZ2dzXSc7Civlrbg+J1tsZWFybmluZ10nOwor5a26PidbY2hpbGRdJzsKK+WugD4nW3Jvb2ZdJzsKK+Wugz4nW2l0XSc7CivlroU+J1tyZXNpZGVuY2VdJzsKK+Wuhz4nW2hvdXNlXSc7Civlrog+J1tkZWZlbmRdJzsKK+WuiT4nW3BlYWNlZnVsXSc7Civlros+J1tTb25nIGR5bmFzdHldJzsKK+WujD4nW2NvbXBsZXRlXSc7Civlro0+J1tmbGVzaF0nOwor5a6PPidbd2lkZV0nOwor5a6VPidbc3RvbmUgcXVhcnJ5XSc7Civlrpc+J1tsaW5lYWdlXSc7Civlrpg+J1tvZmZpY2lhbF0nOwor5a6ZPidbdGltZSBhcyBjb25jZXB0XSc7Civlrpo+J1tkZWNpZGVdJzsKK+Wumz4nW3NlZW1dJzsKK+WunD4nW3N1aXRhYmxlXSc7Civlrp0+J1t0cmVhc3VyZV0nOwor5a6fPidbcmVhbF0nOwor5a6iPidbZ3Vlc3RdJzsKK+Wuoz4nW2RlY2xhcmVdJzsKK+WupD4nW3Jvb21dJzsKK+WupT4nW2ZvcmdpdmVdJzsKK+Wupj4nW29mZmljaWFsZG9tXSc7Civlrq4+J1twYWxhY2VdJzsKK+WusD4nW3RvIHNsYXVnaHRlcl0nOwor5a6zPidbaW5qdXJlXSc7CivlrrQ+J1tlbnRlcnRhaW5dJzsKK+WutT4nW25pZ2h0XSc7CivlrrY+J1tob3VzZV0nOwor5a64PidbaW1wZXJpYWxdJzsKK+WuuT4nW2xvb2tzXSc7Civlrr8+J1tzdG9wXSc7Civlr4I+J1tzdGlsbF0nOwor5a+DPidbZ3JpZXZhbmNlXSc7Civlr4Q+J1tzZW5kXSc7Civlr4U+J1tyZXNwZWN0XSc7Civlr4Y+J1tkZW5zZV0nOwor5a+HPidbYmFuZGl0c10nOworIyLlr4k+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+WvjD4nW2FidW5kYW50XSc7Civlr5A+J1tzbGVlcF0nOwor5a+SPidbY29sZF0nOwor5a+TPidbcmVzaWRlbmNlXSc7Civlr5Q+J1tyZWFsXSc7Civlr5s+J1ticm9hZF0nOwor5a+dPidbc2xlZXBdJzsKK+Wvnj4nW3NpbGVudF0nOwor5a+fPidbZXhhbWluZV0nOwor5a+hPidbd2lkb3dlZF0nOwor5a+iPidbc2xlZXBdJzsKK+WvpD4nW2Zld10nOwor5a+lPidbZmV3XSc7Civlr6Y+J1tyZWFsXSc7Civlr6c+J1tyZXBvc2VdJzsKK+WvqD4nW3N0b2NrYWRlXSc7Civlr6k+J1tleGFtaW5lXSc7Civlr6s+J1t3cml0ZV0nOwor5a+uPidbc2hhbnR5XSc7Civlr7A+J1tncmVhdCBkb21haW5dJzsKK+Wvsz4nW3RyZWFzdXJlXSc7Civlr7U+J1tmYXZvcml0ZV0nOwor5a+2PidbdHJlYXN1cmVdJzsKK+WvuD4nW2luY2hdJzsKK+Wvuj4nW2NvdXJ0XSc7Civlr74+J1tjb3JyZWN0XSc7Civlr78+J1tvbGQgYWdlXSc7CivlsIE+J1tsZXR0ZXJdJzsKK+Wwgj4nW21vbm9wb2xpemVdJzsKK+WwhD4nW3Nob290XSc7CivlsIU+J1tzdWJkdWVdJzsKK+Wwhj4nW3dpbGxdJzsKK+Wwhz4nW3dpbGxdJzsKK+WwiD4nW21vbm9wb2xpemVdJzsKK+WwiT4nW29mZmljZXJdJzsKK+Wwij4nW3Jlc3BlY3RdJzsKK+Wwiz4nW3NlZWtdJzsKK+WwjT4nW2NvcnJlY3RdJzsKK+Wwjj4nW2RpcmVjdF0nOwor5bCPPidbc21hbGxdJzsKK+WwkT4nW2Zld10nOwor5bCTPidbeW91XSc7CivlsJY+J1tzaGFycF0nOwor5bCaPidbc3RpbGxdJzsKK+WwoD4nW3ZlcnkgZmV3XSc7CivlsKI+J1t3ZWFrXSc7CivlsKQ+J1tlc3BlY2lhbGx5XSc7CivlsKg+J1tzaGFnZ3kgaGFpcmVkIGRvZ10nOwor5bCtPidbYSBsZWdlbmRhcnkgYW5jaWVudCBlbXBlcm9yLXNhZ2VdJzsKK+WwsT4nW2p1c3RdJzsKK+WwuD4nW2NvcnBzZV0nOwor5bC5PidbZ292ZXJuXSc7CivlsLo+J1tjaGluZXNlIG1lYXN1cmUgYXBwcm94LiBcImZvb3RcIl0nOwor5bC7PidbZW5kIG9mIHNwaW5lXSc7CivlsLw+J1tidWRkaGlzdCBudW5dJzsKK+WwvT4nW2V4aGF1c3RdJzsKK+Wwvj4nW3RhaWxdJzsKK+Wwvz4nW3VyaW5lXSc7CivlsYA+J1tidXJlYXVdJzsKK+WxgT4nW2JyZWFrIHdpbmRdJzsKK+WxhT4nW2xpdmVdJzsKK+Wxhj4nW251bWVyYXJ5IGFkanVuY3QgZm9yIHRpbWVdJzsKK+WxiD4nW2JlbmRdJzsKK+Wxij4nW251bWVyYXJ5IGFkanVuY3QgZm9yIHRpbWVdJzsKK+Wxiz4nW2hvdXNlXSc7CivlsY0+J1tjb3Jwc2VdJzsKK+Wxjj4nW2V4Y3JlbWVudF0nOwor5bGPPidbZm9sZGluZyBzY3JlZW5dJzsKK+WxkD4nW3dvb2RlbiBzaG9lc10nOwor5bGRPidbYml0c10nOwor5bGTPidbZ2lnYW50aWMgc3RyZW5ndGhdJzsKK+WxlT4nW29wZW5dJzsKK+Wxnj4nW2NsYXNzXSc7CivlsaA+J1tidXRjaGVyXSc7CivlsaE+J1tmcmVxdWVudGx5XSc7CivlsaQ+J1tzdG9yZXldJzsKK+WxpT4nW2Zvb3R3ZWFyXSc7Civlsaw+J1tjbGFzc10nOwor5bGuPidbc3Byb3V0XSc7Civlsa8+J1t2aWxsYWdlXSc7CivlsbE+J1ttb3VudGFpbl0nOwor5bG2PidbbG9mdHldJzsKK+WxuT4nW3RvIHJpc2UgaGlnaF0nOwor5bKMPidbcGVyaWxvdXNdJzsKK+WykD4nW2hpZ2hdJzsKK+WykT4nW3N0ZWVwXSc7CivlspQ+J1tkaXZlcmdlXSc7CivlsqE+J1tyaWRnZSBvciBjcmVzdCBvZiBoaWxsXSc7Civlsqg+J1t1bmV2ZW5dJzsKK+WyqT4nW2NsaWZmXSc7Civlsqs+J1ttb3VudGFpbiBwZWFrXSc7Civlsqw+J1tjYXBlXSc7CivlsrE+J1tkYWlzaGFuIG9uZSBvZiBmaXZlIHNhY3JlZCBtb3VudF0nOwor5bKzPidbbW91bnRhaW4gcGVha10nOworIyLlsrY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+Wytz4nW21pbiBtb3VudGFpbl0nOwor5bK4PidbYmFua10nOworIyLlsro+J1ttb3VudGFpbiByaWRnZV0nIiwKKyMi5bK6PidbbW91bnRhaW4gcmlkZ2VdJyIsCivlsr4+J1ttb3VudGFpbiBwYXNzIChrb3JlYW4pXSc7CisjIuWzhD4nW3JhbmdlIG9mIHBlYWtzXSciLAor5bOHPidbY2F2ZV0nOwor5bOZPidbc3RhbmQgZXJlY3RdJzsKK+WzoD4nW21vdW50YWluIHBhc3NdJzsKK+WzoT4nW2dvcmdlXSc7Civls6g+J1tsb2Z0eV0nOwor5bOpPidbbG9mdHldJzsKK+Wzqj4nW3ZhbGxleV0nOwor5bOtPidbc3RlZXBdJzsKK+Wzrz4nW3BlYWtdJzsKK+WzsD4nW3BlYWtdJzsKK+Wztj4nW2lzbGFuZF0nOworIyLls7o+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+Wzuz4nW2hpZ2hdJzsKK+WzvT4nW2dvcmdlXSc7CivltIc+J1tlc3RlZW1dJzsKK+W0iz4nW2Zsb3dlcnldJzsKK+W0jj4nW3JvdWdoXSc7CivltJE+J1tLdW5sdW4gbW91bnRhaW5zIGluIEppYW5nIFN1IHByb3ZpbmNlLl0nOwor5bSUPidbaGlnaF0nOwor5bSVPidbY2xpZmZdJzsKK+W0lj4nW2NsaWZmXSc7CivltJc+J1twb3N0XSc7CivltJg+J1trdW5sdW4gbW91bnRhaW5zIGluIGppYW5nc3VdJzsKK+W0mT4nW2t1bmx1biBtb3VudGFpbnMgaW4gamlhbmdzdV0nOwor5bSaPidbaGlsbHldJzsKK+W0mz4nW3Rvd2VyaW5nXSc7CivltJ8+J1tjbGlmZnNdJzsKK+W0oj4nW2hpZ2hdJzsKK+W0qT4nW3J1cHR1cmVdJzsKK+W1iz4nW29tZWkgbW91bnRhaW4gaW4gc2ljaHVhbl0nOwor5bWMPidbaW5sYXldJzsKK+W1jj4nW21vdW50YWluIHJlY2Vzc10nOwor5bWQPidbbW91bnRhaW4gbWlzdF0nOwor5bWSPidbY2xpZmZdJzsKK+W1nD4nW3JvdWdoXSc7Civltak+J1toaWdoXSc7Civltaw+J1toaWdoXSc7Civlta8+J1toaWdoXSc7CivltbM+J1toaWdoXSc7CivltbY+J1tsb3cgcGFydCBvZiBhIG1vdW50YWluXSc7CivltoI+J1tjbGlmZl0nOwor5baEPidbaGlnaF0nOwor5baHPidbc3RlZXBdJzsKK+W2iz4nW2lzbGFuZF0nOwor5baMPidbaXNsYW5kXSc7CisjIuW2kD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5badPidbcGF0aCBsZWFkaW5nIHVwIGEgbW91bnRhaW5dJzsKK+W2oj4nW2hpZ2ggb3IgdGFsbF0nOworIyLltqw+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+W2rj4nW2hpZ2hdJzsKK+W2tz4nW3JhbmdlIG9mIG1vdW50YWlucyBpbiBodW5hbiBwcm92XSc7Civltro+J1ttb3VudGFpbiByaWRnZV0nOwor5ba8PidbaXNsYW5kXSc7Civltr0+J1ttb3VudGFpbiBwZWFrXSc7Civlt4k+J1tzdGVlcF0nOwor5beMPidbY2xpZmZdJzsKK+W3jT4nW2hpZ2hdJzsKK+W3kj4nW21vdW50YWluIHJhbmdlXSc7Civlt5M+J1tzdW1taXQgb2YgbW91bnRhaW5dJzsKK+W3lj4nW2NsaWZmXSc7Civlt5s+J1tyaXZlcl0nOwor5bedPidbc3RyZWFtXSc7Civlt54+J1thZG1pbmlzdHJhdGl2ZSBkaXZpc2lvbl0nOwor5behPidbcGF0cm9sXSc7Civlt6M+J1tuZXN0XSc7Civlt6U+J1tsYWJvcl0nOwor5bemPidbbGVmdF0nOwor5benPidbc2tpbGxmdWxdJzsKK+W3qD4nW2xhcmdlXSc7Civlt6s+J1t3aXphcmRdJzsKK+W3rj4nW2RpZmZlcl0nOwor5bexPidbc2VsZl0nOwor5beyPidbYWxyZWFkeV0nOwor5bezPidbc2l4dGggb2YgdHdlbHZlIGJyYW5jaGVzXSc7Civlt7Q+J1tncmVhdGx5IGRlc2lyZV0nOwor5be1PidbbWVhc3VyaW5nIGN1cF0nOwor5be3PidbYWxsZXldJzsKK+W3uz4nW3Njcm9sbF0nOwor5be9PidbNXRoIG9mIHRoZSA4IHRyaWdyYW1zXSc7Civlt74+J1trZXJjaGllZl0nOwor5biCPidbbWFya2V0XSc7CivluIM+J1tjb3R0b24gY2xvdGhdJzsKK+W4hj4nW3NhaWxdJzsKK+W4iz4nW3BhcGVyXSc7CivluIw+J1tyYXJlXSc7CivluJE+J1thIHRyZWFzdXJ5XSc7CivluJY+J1tpbnZpdGF0aW9uIGNhcmRdJzsKK+W4mT4nW2Jvb2sgY292ZXJdJzsKK+W4mj4nW2Jyb29tXSc7CivluJs+J1tzaWxrc10nOwor5bidPidbc3VwcmVtZSBydWxlcl0nOwor5bilPidbY29tbWFuZGVyXSc7CivluKs+J1t0ZWFjaGVyXSc7CivluK0+J1tzZWF0XSc7CivluK8+J1tiZWx0XSc7CivluLA+J1tyZXR1cm5dJzsKK+W4sz4nW3RlbnRdJzsKK+W4tj4nW2JlbHRdJzsKK+W4tz4nW3RlbnRdJzsKK+W4uD4nW2NvbW1vbl0nOwor5bi9PidbaGF0XSc7CivluYA+J1twaWN0dXJlXSc7CivluYM+J1tjdXJ0YWluIHRoYXQgZm9ybXMgd2FsbF0nOwor5bmEPidbdGVudF0nOwor5bmFPidbcGllY2VdJzsKK+W5hz4nW2hlbHBdJzsKK+W5jD4nW2N1cnRhaW5dJzsKK+W5jj4nW2NvdmVyLWNsb3RoXSc7CivluZQ+J1tjdXJ0YWluXSc7CivluZU+J1tjdXJ0YWluXSc7CivluZc+J1t3b21lbicncyBoZWFkZ2Vhcl0nOwor5bmfPidbZmxhZ10nOwor5bmhPidbcGVubmFudF0nOwor5bmiPidbY2FycmlhZ2UgY3VydGFpbl0nOwor5bmjPidbY3VycmVuY3ldJzsKK+W5pD4nW2V2aWxdJzsKK+W5sj4nW29wcG9zZV0nOwor5bmzPidbZmxhdF0nOwor5bm0PidbeWVhcl0nOwor5bm1PidbZXZlbiBsZXZlbC4gdG8gcmFpc2UgaW4gYm90aCBoYW5kc10nOwor5bm2PidbY29tYmluZV0nOwor5bm4PidbbHVjayhpbHkpXSc7Civlubk+J1t0cnVuayBvZiB0cmVlIG9yIG9mIGh1bWFuIGJvZHldJzsKK+W5uj4nW29uZV0nOwor5bm7PidbaWxsdXNpb25dJzsKK+W5vD4nW2luZmFudF0nOwor5bm9PidbcXVpZXRdJzsKK+W5vj4nW2hvdyBtYW55PyBob3cgbXVjaD8gKGEpZmV3XSc7Civlub8+J1t3aWRlXSc7CivluoE+J1toYWxsXSc7CivluoM+J1ticm9hZF0nOwor5bqEPidbdmlsbGFnZV0nOwor5bqHPidbY292ZXJdJzsKK+W6ij4nW2JlZF0nOwor5bqPPidbc2VyaWVzXSc7CivlupU+J1tib3R0b21dJzsKK+W6lj4nW2tpdGNoZW5dJzsKK+W6lz4nW3Nob3BdJzsKK+W6mj4nW3NldmVudGggb2YgdGVuIGN5Y2xpY2FsIHN0ZW1zXSc7Civlupw+J1twcmVmZWN0dXJlXSc7CivluqA+J1t2aWxsYWdlIHNjaG9vbF0nOwor5bqmPidbZGVncmVlXSc7Civluqc+J1tzZWF0XSc7Civluqs+J1thcm1vcnldJzsKK+W6rT4nW2NvdXJ0eWFyZF0nOwor5bq1PidbYnVkZGhpc3QgbW9uYXN0ZXJ5IG9yIG51bm5lcnldJzsKK+W6tj4nW251bWVyb3VzXSc7Civlurc+J1twZWFjZWZ1bF0nOwor5bq4PidbdXN1YWxdJzsKK+W7gT4nW3RvaWxldF0nOwor5buCPidbc2lkZS1yb29tXSc7Civlu4M+J1thYnJvZ2F0ZV0nOwor5buIPidbYmlnIGJ1aWxkaW5nXSc7Civlu4k+J1t1cHJpZ2h0XSc7Civlu4o+J1tjb3JyaWRvcl0nOwor5buPPidbc3RhYmxlXSc7Civlu5A+J1tzdGFibGVdJzsKK+W7kz4nW2Jyb2FkXSc7Civlu5Y+J1tzdXJuYW1lXSc7Civlu5o+J1traXRjaGVuXSc7Civlu5s+J1tzdG9yZV0nOwor5budPidbc2VydmFudF0nOwor5bufPidbdGVtcGxlXSc7Civlu6A+J1tmYWN0b3J5XSc7Civlu6E+J1tjb3JyaWRvcl0nOwor5buiPidbYWJyb2dhdGVdJzsKK+W7oz4nW2Jyb2FkXSc7Civlu6g+J1tnb3Zlcm5tZW50IG9mZmljZV0nOwor5bupPidbZ3JhbmFyeV0nOwor5busPidbaHV0XSc7Civlu7A+J1toYWxsXSc7Civlu7E+J1toYXJtb25pb3VzXSc7Civlu7M+J1toYWxsXSc7Civlu7Q+J1tnb10nOwor5bu2PidbZGVsYXldJzsKK+W7tz4nW2NvdXJ0XSc7Civlu7g+J1tlbmxpZ2h0ZW5dJzsKK+W7uj4nW2J1aWxkXSc7Civlu7s+J1tjaXJjbGUgYXJvdW5kXSc7Civlu7w+J1t0aGVuXSc7Civlu74+J1t0d28gaGFuZHNdJzsKK+W7vz4nW3R3ZW50eV0nOwor5byBPidbY29uaWNhbCBjYXAgd29ybiB1bmRlciB6aG91IGR5bmFdJzsKK+W8gz4nW3JlamVjdF0nOwor5byEPidbZG9dJzsKK+W8iT4nW2xhcmdlXSc7CivlvIo+J1tldmlsXSc7CivlvIs+J1tjYXRjaF0nOwor5byMPidbbnVtYmVyIG9uZV0nOwor5byNPidbbnVtYmVyIHR3b10nOwor5byPPidbc3R5bGVdJzsKK+W8kD4nW251bWJlciB0d29dJzsKK+W8kT4nW3RvIGtpbGwgb25lJydzIHN1cGVyaW9yXSc7CivlvJM+J1tib3ddJzsKK+W8lD4nW2NvbmRvbGVdJzsKK+W8lT4nW3B1bGxdJzsKK+W8lj4nW3Bob25ldGljIGZvciBcInRlXCIgKEphcGFuZXNlKV0nOwor5byXPidbbm90XSc7CivlvJg+J1tlbmxhcmdlXSc7CivlvJs+J1tsb29zZW5dJzsKK+W8nz4nW3lvdW5nIGJyb3RoZXJdJzsKK+W8pT4nW2V4dGVuc2l2ZV0nOwor5bymPidbc3RyaW5nXSc7CivlvKc+J1t3b29kZW4gYm93XSc7CivlvKk+J1tjcm9zcy1ib3ddJzsKK+W8rT4nW3N0b3BdJzsKK+W8rz4nW2JlbmRdJzsKK+W8sT4nW3dlYWtdJzsKK+W8tT4nW3N0cmV0Y2hdJzsKK+W8tz4nW3N0cm9uZ10nOwor5by4PidbYm93IHN0cmV0Y2hlZCBmdWxsXSc7CivlvLw+J1thaWRdJzsKKyMi5by8PidbYWlkXSciLAorIyLlvYE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+W9iD4nW3BlbGxldF0nOwor5b2KPidbc3R1YmJvcm5dJzsKK+W9jD4nW2V4dGVuc2l2ZV0nOwor5b2OPidbYmVuZF0nOwor5b2RPidbc25vdXRdJzsKK+W9kz4nW2JlYXJdJzsKK+W9lj4nW2EgaG9nXSc7CivlvZc+J1ticm9vbXN0aWNrXSc7CivlvZk+J1tjb2xsZWN0XSc7CivlvZw+J1t5aV0nOwor5b2dPidbeWldJzsKK+W9oT4nW2hhaXJdJzsKK+W9oj4nW2Zvcm1dJzsKK+W9pj4nW2VsZWdhbnRdJzsKK+W9qT4nW2h1ZV0nOwor5b2qPidbdGlnZXJdJzsKK+W9qz4nW2NhcnZlXSc7Civlvaw+J1tjdWx0aXZhdGVkXSc7Civlva0+J1tuYW1lIG9mIGFuY2llbnQgY291bnRyeV0nOwor5b2wPidbY2xlYXJdJzsKK+W9sT4nW3NoYWRvd10nOwor5b2zPidbc3RlcCB3aXRoIGxlZnQgZm9vdF0nOwor5b23PidbbGlrZV0nOwor5b25Pidbc2VydmljZV0nOwor5b28PidbdGhhdF0nOwor5b2/PidbcmVzZW1ibGluZ10nOwor5b6APidbZ29dJzsKK+W+gT4nW2ludmFkZV0nOwor5b6CPidbZ29dJzsKK+W+gz4nW2dvXSc7CivlvoQ+J1tuYXJyb3cgcGF0aF0nOwor5b6FPidbdHJlYXRdJzsKK+W+hz4nW2NvbXBseSB3aXRoXSc7Civlvog+J1t2ZXJ5XSc7Civlvoo+J1tsaW5nZXJdJzsKK+W+iz4nW3N0YXR1dGVdJzsKK+W+jD4nW2JlaGluZF0nOwor5b6QPidbc2xvd2x5XSc7CivlvpE+J1tuYXJyb3cgcGF0aF0nOwor5b6SPidbZGlzY2lwbGVdJzsKK+W+kz4nW2Zyb21dJzsKK+W+lz4nW29idGFpbl0nOwor5b6YPidbd2FsayBiYWNrIGFuZCBmb3J0aF0nOwor5b6ZPidbbW92ZSBvbmUnJ3MgYWJvZGVdJzsKK+W+nj4nW2Zyb21dJzsKK+W+oD4nW2luZHVjZV0nOwor5b6hPidbZHJpdmVdJzsKK+W+qD4nW2RvdWJ0ZnVsXSc7Civlvqk+J1tyZXR1cm5dJzsKK+W+qj4nW29iZXldJzsKK+W+rT4nW2NvbnNjcmlwdCBsYWJvcl0nOwor5b6uPidbc21hbGxdJzsKK+W+sz4nW3ZpcnR1ZV0nOwor5b60Pidbc3VtbW9uXSc7Civlvrk+J1twZW5ldHJhdGVdJzsKK+W+vD4nW2Zyb250aWVyXSc7Civlvr0+J1thIGJhZGdlXSc7Civlv4M+J1toZWFydF0nOwor5b+FPidbc3VyZWx5XSc7Civlv4w+J1tqZWFsb3VzXSc7Civlv40+J1tlbmR1cmVdJzsKK+W/lj4nW2d1ZXNzXSc7Civlv5c+J1twdXJwb3NlXSc7Civlv5g+J1tmb3JnZXRdJzsKK+W/mT4nW2J1c3ldJzsKK+W/nD4nW3Nob3VsZF0nOwor5b+dPidbZGlzZ3JhY2VdJzsKK+W/oD4nW2xveWFsdHldJzsKK+W/pD4nW2luc3Vib3JkaW5hdGVdJzsKK+W/qz4nW3JhcGlkXSc7Civlv7A+J1tzdWZmZXJdJzsKK+W/sT4nW3RydXRoXSc7Civlv7U+J1t0aGluayBvZl0nOwor5b+4PidbYmx1c2hdJzsKK+W/uz4nW2RlbGlnaHRmdWxdJzsKK+W/vT4nW3N1ZGRlbmx5XSc7Civlv78+J1tnZXQgYW5ncnldJzsKK+aAjj4nW3doYXQ/IHdoeT8gaG93P10nOwor5oCPPidbZGlzY29udGVudGVkXSc7CisjIuaAkD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5oCSPidbYW5nZXJdJzsKK+aAlT4nW2ZlYXJdJzsKK+aAlj4nW3RlcnJvcl0nOwor5oCZPidbcmVseSBvbl0nOwor5oCbPidbZ3JpZXZlZF0nOwor5oCcPidbcGl0eV0nOwor5oCdPidbdGhpbmtdJzsKK+aAoD4nW2lkbGVdJzsKK+aAoT4nW2hhcm1vbnldJzsKK+aApT4nW3F1aWNrXSc7CivmgKY+J1tlYWdlcl0nOwor5oCnPidbbmF0dXJlXSc7CivmgKg+J1toYXRyZWRdJzsKK+aAqT4nW3NoeV0nOwor5oCqPidbc3RyYW5nZV0nOwor5oCrPidbc29ycnldJzsKK+aArz4nW2xhY2tpbmcgaW4gY291cmFnZV0nOwor5oCxPidbaGFzdGlseV0nOwor5oC6PidbdG8gZW5kdXJlXSc7CivmgYE+J1t0aGF0XSc7CivmgYI+J1tjYXJlZnVsXSc7CivmgYM+J1tyZWx5IG9uXSc7CivmgYY+J1tjb25zdGFudF0nOwor5oGKPidbYmUgdW5pdGVkXSc7CivmgYs+J1tsb3ZlXSc7CivmgY0+J1tzZWVtaW5nbHldJzsKK+aBkD4nW2ZlYXJdJzsKK+aBkj4nW2NvbnN0YW50XSc7CivmgZU+J1tmb3JnaXZlXSc7CivmgZk+J1tpbGxuZXNzXSc7CivmgZo+J1thbmdlcl0nOwor5oGfPidbc2NhcmVkXSc7CivmgaA+J1tzdHJhbmdlXSc7CivmgaI+J1tyZXN0b3JlXSc7CivmgaM+J1tpbmR1bGdlIG9uZXNlbGZdJzsKK+aBpD4nW3Nob3cgcGl0eV0nOwor5oGlPidbc2hhbWVdJzsKK+aBqD4nW2hhdHJlZF0nOwor5oGpPidba2luZG5lc3NdJzsKK+aBqj4nW3Jlc3BlY3RmdWxdJzsKK+aBqz4nW2luIHBhaW5dJzsKK+aBrD4nW3F1aWV0XSc7Civmga0+J1tyZXNwZWN0ZnVsXSc7Civmga8+J1tyZXN0XSc7CivmgbA+J1tqdXN0XSc7CivmgbU+J1tmYXZvcl0nOworIyLmgbY+J1tldmlsXSciLAor5oKBPidbaXJyaXRhYmxlXSc7CivmgoM+J1tzaW5jZXJlXSc7CivmgoQ+J1tzaWxlbnRdJzsKK+aCiT4nW2tub3ddJzsKK+aCiz4nW3N0aW5neV0nOwor5oKMPidbYnJvdGhlcmx5XSc7Civmgo0+J1tjb3VyYWdlb3VzXSc7CivmgpI+J1tzb3Jyb3dmdWxdJzsKK+aClD4nW3JlcGVudF0nOwor5oKWPidbYmUgY29udHJhZGljdG9yeSB0b10nOworIyLmgpY+J1tiZSBjb250cmFkaWN0b3J5IHRvXSciLAor5oKaPidbYmUgYWZyYWlkXSc7Civmgps+J1tyZXBlbnRdJzsKK+aCnz4nW2FwcHJlaGVuZF0nOwor5oKgPidbbG9uZ10nOwor5oKjPidbc3VmZmVyXSc7CivmgqY+J1twbGVhc2VkXSc7Civmgqc+J1tzbW9vdGhdJzsKK+aCqT4nW2FuZ2VyZWRdJzsKK+aCqj4nW2V2aWxdJzsKK+aCsj4nW3NvcnJvd10nOwor5oKzPidbZXRoaWNzXSc7CivmgrQ+J1tzdWZmZXJdJzsKK+aCtT4nW2Rpc2FwcG9pbnRlZF0nOwor5oK2PidbZ2xvb215XSc7Civmgrg+J1tmZWFyZnVsXSc7Civmgrw+J1tncmlldmVdJzsKK+aCvT4nW3NvcnJvd2Z1bF0nOwor5oOFPidbZmVlbGluZ10nOwor5oOGPidbZGlzdHJlc3NlZF0nOwor5oOHPidbYmUga2luZF0nOwor5oORPidbY29uZnVzZV0nOwor5oOTPidbY2FyZWZ1bF0nOwor5oOYPidbZGlzY29uY2VydGVkXSc7Civmg5o+J1thYnNlbnQtbWluZGVkXSc7Civmg5w+J1twaXR5XSc7Civmg58+J1tidXRdJzsKK+aDoD4nW2Zhdm9yXSc7Civmg6E+J1tldmlsXSc7Civmg6M+J1tvdmVyYWxsIFtxdWVzdGlvbmFibGUgdmFyaWFudF1dJzsKK+aDpz4nW2ZlYXJdJzsKK+aDqD4nW3NhZF0nOwor5oOwPidbaW5kb2xlbnRdJzsKK+aDsT4nW2FuZ2VyZWRdJzsKK+aDsz4nW3RoaW5rXSc7Civmg7Q+J1thZnJhaWRdJzsKK+aDtj4nW2ZlYXJmdWxdJzsKK+aDtz4nW3dyaWdnbGVdJzsKK+aDuT4nW2lycml0YXRlXSc7Civmg7o+J1tpbnRlbGxpZ2VudF0nOwor5oO7PidbZmVlbCBhbmd1aXNoXSc7CivmhIA+J1tjaGFuZ2Ugb25lJydzIGNvdW50ZW5hbmNlXSc7CivmhIE+J1thbnhpZXR5XSc7CivmhIM+J1tyZWxheF0nOwor5oSGPidbZmF1bHRdJzsKK+aEiD4nW21vcmUgYW5kIG1vcmVdJzsKK+aEiT4nW3BsZWFzYW50XSc7CivmhI0+J1twaXR5XSc7CivmhI4+J1tvYnN0aW5hdGVdJzsKK+aEjz4nW3Rob3VnaHRdJzsKK+aElT4nW3N0YXJ0bGVkXSc7CivmhJo+J1tzdHVwaWRdJzsKK+aEmz4nW2xvdmVdJzsKK+aEnz4nW2ZlZWxdJzsKK+aEoT4nW2Fic2VudC1taW5kZWRdJzsKK+aEpz4nW2FzaGFtZWRdJzsKK+aEqD4nW3NpbmNlcml0eV0nOwor5oSsPidbYWNjdXNlXSc7CivmhLQ+J1tzYWRdJzsKK+aEvD4nW2FjdCB3aXRoIGNhcmVdJzsKK+aEvT4nW2dhbWJsZV0nOwor5oS+PidbYW5nZXJdJzsKK+aEvz4nW3NpbmNlcmVdJzsKK+aFgj4nW3VyZ2VdJzsKK+aFhD4nW3NoaXZlcl0nOwor5oWHPidbY2FyZWZ1bF0nOwor5oWIPidba2luZF0nOwor5oWKPidbdG8gcmVzZW50XSc7CivmhYs+J1ttYW5uZXJdJzsKK+aFjD4nW25lcnZvdXNdJzsKK+aFjT4nW2FuZ3J5XSc7CivmhY4+J1thY3Qgd2l0aCBjYXJlXSc7CisjIuaFkz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5oWVPidbbG9uZyBmb3JdJzsKK+aFmD4nW3NhZF0nOwor5oWZPidbYXNoYW1lZF0nOwor5oWaPidbYXNoYW1lZF0nOwor5oWdPidbZG8gZXZpbCBpbiBzZWNyZXRdJzsKK+aFnz4nW3NhZG5lc3NdJzsKK+aFoj4nW3Nsb3cobHkpXSc7CivmhaM+J1toYWJpdF0nOwor5oWlPidbc2luY2VyZV0nOwor5oWnPidbYnJpZ2h0XSc7Civmhag+J1tzaWdoXSc7Civmhas+J1t0byBhbGFybV0nOwor5oWuPidbYmUgY29uY2VybmVkXSc7CisjIuaFrz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5oWwPidbY29tZm9ydF0nOwor5oWxPidbc2FkXSc7CivmhbM+J1ttaXNlcmx5XSc7CivmhbQ+J1tmZWFyXSc7CivmhbU+J1tpbmRvbGVudF0nOwor5oW2PidbY29uZ3JhdHVsYXRlXSc7Civmhbc+J1thcmRlbnRdJzsKK+aFvj4nW2x1c3RdJzsKK+aGgj4nW3NhZF0nOwor5oaHPidbcmVzdF0nOwor5oaKPidbdGlyZWRdJzsKK+aGjj4nW2hhdGVdJzsKK+aGkD4nW3BpdHldJzsKK+aGkT4nW2xlYW4gb25dJzsKK+aGlD4nW2JlIHdvcm4tb3V0XSc7CivmhpY+J1tjYXV0aW91c10nOwor5oaZPidbbGlrZV0nOwor5oaaPidbZHJlYWRdJzsKK+aGpD4nW3Jlc2VudF0nOwor5oanPidbaXJyZXNvbHV0ZV0nOwor5oapPidbcmVzdF0nOwor5oarPidbcGl0eV0nOwor5oasPidbcm91c2VdJzsKK+aGrj4nW3JlZ3JldGZ1bF0nOwor5oayPidbY29uc3RpdHV0aW9uXSc7CivmhrY+J1tyZW1lbWJlcl0nOwor5oa6PidbcGVhY2VdJzsKK+aGvj4nW3JlZ3JldF0nOwor5oeDPidbY291cnRlb3VzXSc7Civmh4Y+J1thbnhpb3VzXSc7Civmh4c+J1tzaW5jZXJlXSc7Civmh4g+J1tpZGxlXSc7Civmh4k+J1tzaG91bGRdJzsKK+aHij4nW3ZleGVkXSc7Civmh4s+J1tzcGxlbmRpZF0nOwor5oeMPidbZW5qb3ldJzsKK+aHjT4nW2JlIGFmcmFpZCBvZl0nOwor5oeQPidbYm9zb21dJzsKK+aHoz4nW2JlIHNpY2sgYXQgaGVhcnRdJzsKK+aHpj4nW3dlYWtdJzsKK+aHsj4nW3B1bmlzaF0nOwor5oe0PidbcmVncmV0XSc7Civmh7Y+J1tsYXp5XSc7Civmh7c+J1tib3NvbV0nOwor5oe4PidbaGFuZ10nOwor5oe6PidbcmVncmV0XSc7Civmh7w+J1tmZWFyXSc7Civmh70+J1toYXBweV0nOwor5oe+PidbYWZyYWlkXSc7Civmh78+J1t2aXJ0dW91c10nOwor5oiAPidbbG92ZV0nOwor5oiIPidbaGFsYmVyZF0nOwor5oiJPidbYSBiYXR0bGUtYXhlXSc7CivmiIo+J1tmaWZ0aCBvZiB0ZW4gY2VsZXN0aWFsIHN0ZW1zXSc7CivmiIw+J1tlbGV2ZW50aCBvZiB0ZXJyZXN0cmlhbCBicmFuY2hlc10nOwor5oiNPidbZGVmZW5kIGJvcmRlcnNdJzsKK+aIjj4nW2FybXNdJzsKK+aIkD4nW2NvbXBsZXRlZF0nOwor5oiRPidbb3VyXSc7CivmiJI+J1t3YXJuXSc7CivmiJQ+J1tzbWFsbF0nOwor5oiWPidbb3JdJzsKK+aImj4nW3JlbGF0aXZlXSc7CivmiJs+J1tsYW5jZV0nOwor5oidPidbcGlyYXRlXSc7CivmiJ4+J1tsYW5jZV0nOwor5oifPidbaGFsYmVyZCB3aXRoIGNyZXNjZW50IGJsYWRlXSc7CivmiKE+J1tzdWJqdWdhdGVdJzsKK+aIpj4nW3dhcl0nOwor5oiqPidbY3V0IG9mZl0nOwor5oiuPidba2lsbF0nOwor5oivPidbdGhlYXRyaWNhbCBwbGF5XSc7CivmiLA+J1t3YXJdJzsKK+aIsj4nW3RoZWF0cmljYWwgcGxheV0nOwor5oizPidbcHJpY2tdJzsKK+aItD4nW3dlYXIgb24gdG9wXSc7CivmiLg+J1tkb29yXSc7CivmiLs+J1twZXJ2ZXJzZV0nOwor5oi/PidbaG91c2VdJzsKK+aJgD4nW3BsYWNlXSc7CivmiYE+J1tmbGF0XSc7CivmiYc+J1tmYW5dJzsKK+aJiD4nW2VzY29ydF0nOwor5omJPidbZG9vciBwYW5lbF0nOwor5omLPidbaGFuZF0nOwor5omNPidbdGFsZW50XSc7CivmiY4+J1twdWxsIHVwXSc7CivmiZM+J1tzdHJpa2VdJzsKK+aJlT4nW3NoYWtlIG9mZl0nOwor5omYPidbaG9sZCB1cCB3aXRoIHBhbG1dJzsKK+aJmz4nW2NhcnJ5IG9uIHNob3VsZGVyc10nOwor5omePidbd2FyZCBvZmZdJzsKK+aJoD4nW3BpY2sgdXAgd2l0aCBmb3JrIG9yIHBpbmNlcnNdJzsKK+aJoz4nW2tub2NrXSc7Civmiag+J1twaWNrIHVwIHdpdGggZm9yayBvciBwaW5jZXJzXSc7Civmia4+J1tkcmVzcyB1cF0nOwor5omxPidbY29sbGVjdF0nOwor5om2Pidbc3VwcG9ydF0nOwor5om5PidbY29tbWVudF0nOwor5om8PidbZ3Jhc3BdJzsKK+aJvj4nW3NlYXJjaF0nOwor5om/PidbaW5oZXJpdF0nOwor5oqAPidbc2tpbGxdJzsKKyMi5oqCPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmioM+J1t0byBjbGFwIGhhbmRzXSc7CivmioQ+J1tjb3B5XSc7Civmiok+J1tjaG9vc2VdJzsKK+aKij4nW2hvbGRdJzsKK+aKkT4nW3ByZXNzIGRvd25dJzsKK+aKkj4nW2V4cHJlc3NdJzsKK+aKkz4nW3NjcmF0Y2hdJzsKK+aKlD4nW3Rha2Ugb3IgaG9sZCB1cCBpbiBib3RoIGhhbmRzXSc7CivmipU+J1t0aHJvd10nOwor5oqWPidbdHJlbWJsZV0nOwor5oqXPidbcmVzaXN0XSc7Civmipg+J1ticmVhayBvZmZdJzsKK+aKmz4nW3Rocm93IChhd2F5KV0nOwor5oqcPidbdXByb290XSc7Civmip4+J1tzZWxlY3RdJzsKK+aKqz4nW3dlYXJdJzsKK+aKrD4nW2xpZnRdJzsKK+aKsT4nW2VtYnJhY2VdJzsKK+aKtT4nW3Jlc2lzdF0nOwor5oq5Pidbc21lYXJdJzsKK+aKuz4nW3B1bGxdJzsKK+aKvD4nW21vcnRnYWdlXSc7Civmir0+J1tkcmF3IG91dF0nOwor5ouCPidbc2hha2Ugb2ZmXSc7Civmi4U+J1tjYXJyeV0nOwor5ouGPidbYnJlYWsgdXBdJzsKK+aLhz4nW3RodW1iXSc7Civmi4g+J1twaWNrIHVwIHdpdGggZmluZ2Vyc10nOwor5ouJPidbcHVsbF0nOwor5ouKPidbc2xhcF0nOwor5ouMPidbbWl4XSc7Civmi40+J1tjbGFwXSc7Civmi48+J1t0YWtlXSc7Civmi5A+J1traWRuYXBdJzsKK+aLkT4nW3RvIGNsYW1wXSc7Civmi5I+J1t3YXJkIG9mZiB3aXRoIGhhbmRdJzsKK+aLkz4nW2V4cGFuZF0nOwor5ouUPidbdXByb290XSc7Civmi5c+J1tvYnN0aW5hdGVdJzsKK+aLmD4nW3Jlc3RyYWluXSc7Civmi5k+J1tzdHVwaWRdJzsKK+aLmz4nW2JlY2tvbl0nOwor5oucPidbZG8gb2JlaXNhbmNlXSc7Civmi50+J1tkbyBvYmVpc2FuY2VdJzsKK+aLoD4nW29jY3VweV0nOwor5ouhPidbZXhwYW5kXSc7Civmi6w+J1tpbmNsdWRlXSc7Civmi60+J1t3aXBlIGF3YXkgc3RhaW5zIHdpdGggY2xvdGhdJzsKK+aLrj4nW2xhYm9yaW5nIGhhcmRdJzsKK+aLrz4nW2hlbHBdJzsKK+aLsT4nW2ZvbGQgaGFuZHMgb24gYnJlYXN0XSc7Civmi7M+J1tmaXN0XSc7CisjIuaLtD4nW2JpbmQgd2l0aCByb3BlXSciLAor5ou2PidbcHJlc3NdJzsKK+aLtz4nW3RvcnR1cmUgYW5kIGludGVycm9nYXRlXSc7Civmi74+J1twaWNrIHVwXSc7Civmi78+J1t0YWtlXSc7CivmjIE+J1tzdXN0YWluXSc7CivmjII+J1toYW5nXSc7CivmjIc+J1tmaW5nZXJdJzsKK+aMiD4nW2Fzc2lzdF0nOwor5oyJPidbcHV0IGhhbmQgb25dJzsKK+aMjD4nW2ZpZ2h0XSc7CivmjJE+J1tsb2FkIGNhcnJpZWQgb24gc2hvdWxkZXJzXSc7CivmjJk+J1tyYWlzZV0nOwor5oyfPidbY2xhc3AgdW5kZXIgYXJtXSc7CisjIuaMpT4nW2RpcmVjdF0nIiwKK+aMqD4nW25lYXJdJzsKK+aMqz4nW3B1c2ggZG93bl0nOwor5oyvPidbcmFpc2VdJzsKK+aMuj4nW3N0YW5kIHVwcmlnaHRdJzsKK+aMvT4nW3B1bGxdJzsKK+aMvj4nW2NsYXNwIHVuZGVyIGFybV0nOwor5oy/PidbaW5zZXJ0XSc7CivmjYk+J1tncmFzcF0nOwor5o2MPidbYnJlYWsgb3Blbl0nOwor5o2NPidbd2FyZCBvZmZdJzsKK+aNjz4nW3BpY2sgd2l0aCBmaW5nZXJzXSc7CivmjZA+J1tjb250cmlidXRlXSc7CivmjZU+J1thcnJlc3RdJzsKK+aNlz4nW21ha2UgcHJvZ3Jlc3NdJzsKK+aNnD4nW3NlYXJjaF0nOwor5o2nPidbaG9sZCB1cCBpbiB0d28gaGFuZHNdJzsKK+aNqD4nW2Rpc2NhcmRdJzsKK+aNqT4nW3R3aXN0IHdpdGggaGFuZHNdJzsKK+aNqz4nW3N0b2tlXSc7Civmja4+J1tvY2N1cHldJzsKK+aNsj4nW2N1cmxdJzsKK+aNtj4nW3N0cmlrZSB3aXRoIHN0aWNrXSc7Civmjbc+J1t3aW5dJzsKK+aNuj4nW3ByZXNzIGRvd24gaGVhdmlseSB3aXRoIGZyaW5nZXJzXSc7Civmjbs+J1t0d2lzdCB3aXRoIGZpbmdlcnNdJzsKK+aOgD4nW2xpZnRdJzsKK+aOgz4nW3N3ZWVwXSc7Civmjog+J1tnaXZlIHRvXSc7Civmjok+J1t0dXJuXSc7Civmjow+J1twYWxtIG9mIGhhbmRdJzsKK+aOjj4nW2RyYWcgYXNpZGVdJzsKK+aOjz4nW3Rha2Ugb3V0XSc7CivmjpI+J1tyb3ddJzsKK+aOlj4nW3N0aWNrIGluXSc7Civmjpg+J1tkaWddJzsKK+aOmz4nW2hhbmddJzsKKyMi5o6fPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmjqA+J1tyb2JdJzsKK+aOoT4nW2dhdGhlcl0nOwor5o6iPidbZmluZF0nOwor5o6jPidbZHJhZ10nOwor5o6lPidbcmVjZWl2ZV0nOwor5o6nPidbYWNjdXNlXSc7Civmjqg+J1twdXNoXSc7Civmjqk+J1tjb3Zlcl0nOwor5o6qPidbcGxhY2VdJzsKK+aOqz4nW2JlIG9uIG5pZ2h0IHdhdGNoXSc7Civmjqw+J1tncmFzcCB3aXRoIGJvdGggaGFuZHNdJzsKKyMi5o6xPidbcGlja3BvY2tldF0nIiwKK+aOtD4nW2JveCBvbmUnJ3MgZWFyc10nOworIyLmjrQ+J1tib3ggb25lJydzIGVhcnNdJyIsCivmjrs+J1tzY3JhdGNoIGxpZ2h0bHldJzsKK+aOvj4nW2EgZ2VuZXJhbCBkZXNpZ25hdGlvbiBvZiBvZmZpY2lhbHNdJzsKK+aPgD4nW2Nob29zZV0nOwor5o+DPidbc2hlYXJdJzsKK+aPhD4nW2xpZnRdJzsKK+aPhj4nW3ByaW1lIG1pbmlzdGVyXSc7Civmj4k+J1tydWJdJzsKK+aPjz4nW2NvcHldJzsKK+aPkD4nW2hvbGQgaW4gaGFuZF0nOwor5o+SPidbaW5zZXJ0XSc7Civmj5Y+J1tzYWx1dGVdJzsKK+aPmj4nW3NjYXR0ZXJdJzsKK+aPmz4nW2NoYW5nZV0nOwor5o+hPidbZ3Jhc3BdJzsKK+aPoz4nW3B1dCB0aGluZ3MgdW5kZXIgY2xvdGhlc10nOwor5o+pPidbcnViIGFuZCB3aXBlXSc7Civmj64+J1tkaXJlY3RdJzsKK+aPtD4nW2FpZF0nOwor5o+2PidbbWFrZSBmdW4gb2ZdJzsKK+aPuj4nW3dhZ10nOwor5pCGPidbcHVsbF0nOwor5pCNPidbZGltaW5pc2hdJzsKK+aQjz4nW3NlaXplXSc7CivmkJM+J1t0cmFtcGxlXSc7CivmkJY+J1t3YWddJzsKK+aQlz4nW2h1bGxdJzsKK+aQnD4nW3NlYXJjaF0nOwor5pCmPidbZ3Jhc3BdJzsKK+aQqD4nW3J1Yl0nOwor5pCsPidbdHJhbnNmZXJdJzsKK+aQrT4nW2pvaW4gdG9nZXRoZXJdJzsKK+aQtD4nW2V4dHJhY3RdJzsKK+aQtj4nW3BsdW5kZXJdJzsKK+aQuj4nW2xlYWQgYnkgaGFuZF0nOwor5pC+PidbcHJlc3NdJzsKK+aRgj4nW3Rha2UgaW5dJzsKK+aRjj4nW3RvIHN0cmFuZ2xlXSc7CivmkZg+J1twbHVja10nOwor5pGnPidbZGVzdHJveV0nOwor5pGpPidbcnViXSc7Civmka8+J1tzaW5jZXJlXSc7CivmkbY+J1tyb2xsIGFyb3VuZCB3aXRoIGhhbmRdJzsKK+aRuD4nW2dlbnRseSB0b3VjaCB3aXRoIGhhbmRdJzsKK+aRuj4nW2ZvbGRdJzsKK+aSgz4nW3N0cmlrZV0nOwor5pKIPidbc2Nvb3Agb3V0IG9mIHdhdGVyXSc7CivmkpI+J1tyZWxlYXNlXSc7CivmkpM+J1tzY3JhdGNoXSc7CivmkpU+J1tyaXBdJzsKK+aSmj4nW3R3aXJsIGluIGZpbmdlcnNdJzsKK+aSnj4nW2tub2NrIGFnYWluc3RdJzsKK+aSpD4nW29taXRdJzsKK+aSpT4nW21vdmVdJzsKK+aSqT4nW2xpZnQgdXBdJzsKK+aSqz4nW3BhdF0nOwor5pKtPidbc293XSc7Civmkq4+J1tsaXR0bGUgYml0XSc7CivmkrA+J1tjb21wb3NlXSc7CivmkrI+J1twb3VuZF0nOwor5pK5PidbZGlzdHVyYl0nOwor5pK7PidbZmxvZ10nOwor5pK8PidbbW92ZV0nOwor5pOBPidbZW1icmFjZV0nOwor5pOCPidbcnViXSc7Civmk4U+J1ttb25vcG9saXplXSc7Civmk4c+J1tzZWxlY3RdJzsKK+aTjT4nW2NvbmR1Y3RdJzsKK+aTkj4nW2NhdGNoXSc7Civmk5Q+J1tjYXJyeV0nOwor5pOYPidbdGh1bWJdJzsKK+aTmj4nW29jY3VweV0nOwor5pOgPidbY3Jvd2RdJzsKK+aToT4nW2NhcnJ5XSc7Civmk6I+J1twdWxsIHVwXSc7Civmk6M+J1todWxsXSc7Civmk6Y+J1t3aXBlXSc7Civmk6c+J1tyYWlzZV0nOwor5pOsPidbZHJhZnRdJzsKK+aTrz4nW2V4Y2x1ZGVdJzsKK+aTsT4nW3BsYWNlXSc7Civmk7I+J1t0aHJvd10nOwor5pO0PidbZXhwYW5kXSc7CisjIuaTtj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5pO6PidbcHV0XSc7Civmk70+J1t0aWNrbGVdJzsKK+aTvj4nW2Rpc3R1cmJdJzsKK+aUgD4nW2NsaW1iXSc7CivmlIU+J1tzYXZlXSc7CivmlJg+J1tzZWl6ZV0nOwor5pScPidbbGVhZCBieSBoYW5kXSc7CivmlJ0+J1t0YWtlIGluXSc7CivmlKM+J1t0YW5nbGVkXSc7CivmlKQ+J1tzcHJlYWQgb3V0XSc7CivmlKo+J1tkaXN0dXJiXSc7CivmlKs+J1tzbmF0Y2ggYXdheV0nOwor5pSsPidbZ3Jhc3BdJzsKK+aUrz4nW2Rpc3BlcnNlXSc7CivmlLQ+J1tyYXBdJzsKK+aUtT4nW3JhcF0nOwor5pS2PidbZ2F0aGVyIHRvZ2V0aGVyXSc7CivmlLc+J1tleGFtaW5lXSc7CivmlLg+J1tkaXN0YW50XSc7CivmlLk+J1tjaGFuZ2VdJzsKK+aUuz4nW2F0dGFja10nOwor5pS+PidbcHV0XSc7CivmlL8+J1tnb3Zlcm5tZW50XSc7CivmlYU+J1thbmNpZW50XSc7CivmlYg+J1tyZXN1bHRdJzsKK+aVjT4nW2V4cHJlc3NdJzsKK+aVjz4nW2Zhc3RdJzsKK+aVkT4nW3NhdmVdJzsKK+aVlT4nW2FuIGltcGVyaWFsIG9yZGVyIG9yIGRlY3JlZV0nOwor5pWWPidbcmFtYmxlXSc7CivmlZc+J1tiZSBkZWZlYXRlZF0nOwor5pWYPidbZXhwcmVzc10nOwor5pWZPidbdGVhY2hdJzsKK+aVnT4nW2JyZWFrXSc7CivmlZ4+J1tyb29teV0nOwor5pWiPidbZGFyZV0nOwor5pWjPidbc2NhdHRlcl0nOwor5pWmPidbZXN0ZWVtXSc7Civmlaw+J1tyZXNwZWN0XSc7CivmlbA+J1tudW1iZXJdJzsKK+aVsj4nW3N0cmlrZV0nOwor5pW0Pidbb3JkZXJseV0nOwor5pW1PidbZW5lbXldJzsKK+aVtz4nW3NwcmVhZF0nOwor5pW4PidbbnVtYmVyXSc7CivmloI+J1tkcmF3IGJhY2tdJzsKK+aWgz4nW2tpbGxdJzsKK+aWhz4nW2xpdGVyYXR1cmVdJzsKK+aWiD4nW2xlYXJuaW5nXSc7Civmlok+J1tldmVuXSc7Civmlow+J1tyZWZpbmVkXSc7Civmlo4+J1t2ZWdldGFyaWFuIGRpZXRdJzsKK+aWkD4nW2dyYWNlZnVsXSc7CivmlpE+J1ttb3R0bGVkXSc7Civmlpc+J1tjaGluZXNlIHBlY2tdJzsKK+aWmT4nW2NvbnNpZGVyXSc7Civmlps+J1tkcnkgbWVhc3VyZSAxMCBvciA1IHRpbWVzIG9mIGRvdV0nOwor5pacPidbc2xhbnRpbmddJzsKK+aWnz4nW3BvdXIgd2luZSBvciB0ZWEgaW50byBjdXBdJzsKK+aWoT4nW3Jldm9sdmVdJzsKK+aWpD4nW2NhdHR5XSc7CivmlqU+J1tzY29sZF0nOwor5panPidbYXhlXSc7Civmlqs+J1tjdXRdJzsKK+aWrD4nW2N1dF0nOwor5patPidbc2V2ZXJdJzsKK+aWrz4nW3RoaXNdJzsKK+aWsD4nW25ld10nOwor5pa3Pidbc2V2ZXJdJzsKK+aWuT4nW3NxdWFyZV0nOwor5pa8PidbaW5dJzsKK+aWvT4nW2dyYW50XSc7Civml4E+J1tzaWRlXSc7Civml4M+J1tzaWxrIGJhbm5lciB3aXRoIGJlbnQgcG9sZV0nOwor5peEPidbYSBraW5kIG9mIGFuY2llbnQgZmxhZ10nOwor5peFPidbdHJpcF0nOwor5peGPidbZmxhZyBvcm5hbWVudF0nOwor5peLPidbcmV2b2x2ZV0nOwor5peMPidbYmFubmVyIG9yIGZsYWcgYWRvcm5lZCB3aXRoIGZlYXRdJzsKK+aXjz4nW2ZhbWlseSBjbGFuXSc7Civml5I+J1tmcmluZ2VzIG9mIHBlYXJscyBvbiBjcm93bnNdJzsKK+aXlz4nW2Jhbm5lcl0nOwor5peZPidbYSBwZW5uYW50XSc7Civml5s+J1thIHBlbm5hbnRdJzsKK+aXoD4nW25lZ2F0aXZlXSc7Civml6E+J1tjaG9rZSBvbiBzb21ldGhpbmcgZWF0ZW5dJzsKK+aXoj4nW2FscmVhZHldJzsKK+aXpT4nW3N1bl0nOwor5pemPidbZGF3bl0nOwor5penPidbb2xkXSc7Civml6g+J1twdXJwb3NlXSc7Civml6k+J1tlYXJseV0nOwor5pesPidbdGVuLWRheSBwZXJpb2RdJzsKK+aXrT4nW3Jpc2luZyBzdW5dJzsKK+aXsT4nW2Ryb3VnaHRdJzsKK+aXuj4nW3Byb3NwZXJdJzsKK+aXuz4nW2hlYXZlbl0nOwor5piCPidbcmlzZV0nOwor5piDPidbYWZ0ZXJub29uXSc7CivmmIY+J1tlbGRlciBicm90aGVyXSc7CivmmIc+J1tyaXNlXSc7CivmmIo+J1tzdW1tZXIgdGltZV0nOwor5piMPidbbGlnaHQgb2Ygc3VuXSc7CivmmI4+J1ticmlnaHRdJzsKK+aYjz4nW2R1c2tdJzsKK+aYkz4nW2NoYW5nZV0nOwor5piUPidbZm9ybWVybHldJzsKK+aYnD4nW3RvIG9wZW4gb3V0XSc7CivmmJ8+J1tzdGFyXSc7CivmmKA+J1twcm9qZWN0XSc7CivmmKU+J1tzcHJpbmddJzsKK+aYpz4nW29ic2N1cmVdJzsKK+aYqD4nW3llc3RlcmRheV0nOwor5pitPidbYnJpZ2h0XSc7CivmmK8+J1tpbmRlZWRdJzsKK+aYtD4nW29uZSBvZiB0aGUgMjggY29uc3RlbGxhdGlvbnNdJzsKK+aYtT4nW2ludGltYXRlXSc7CivmmLY+J1thIGxvbmcgZGF5LiBicmlnaHQuIGV4dGVuZGVkLiBjbGVhcl0nOwor5pi8PidbZGF5dGltZV0nOwor5pi/PidbZXh0ZW5zaXZlXSc7CivmmYE+J1ttb3JuaW5nXSc7CivmmYI+J1t0aW1lXSc7CivmmYM+J1ticmlnaHRdJzsKK+aZhD4nW2JyaWdodF0nOwor5pmJPidbYWR2YW5jZV0nOwor5pmLPidbYWR2YW5jZV0nOwor5pmPPidbcGVhY2VmdWxdJzsKK+aZkj4nW2RyeSBpbiBzdW5dJzsKK+aZnT4nW2RheXRpbWVdJzsKK+aZnj4nW2RyeV0nOwor5pmfPidbY2xlYXJdJzsKK+aZoj4nW2xpZ2h0IG9mIHN0YXJzXSc7CivmmaQ+J1toYXZlIGludGVydmlldyB3aXRoXSc7CivmmaY+J1tkYXJrXSc7Civmmac+J1tkYXlicmVha10nOwor5pmoPidbZWFybHkgbW9ybmluZ10nOwor5pmpPidbbmlnaHRdJzsKK+aZrj4nW3VuaXZlcnNhbF0nOwor5pmvPidbc2NlbmVyeV0nOwor5pmwPidbY2xlYXJdJzsKK+aZtD4nW2NsZWFyIHdlYXRoZXJdJzsKK+aZtj4nW2NyeXN0YWxdJzsKK+aZuj4nW3dpc2RvbV0nOwor5pqBPidbZGF3bl0nOworIyLmmoI+J1t0ZW1wb3JhcnldJyIsCivmmoQ+J1t3YXJtXSc7Civmmoc+J1tsZWlzdXJlXSc7Civmmog+J1toYWxvIGluIHNreV0nOwor5pqJPidbc3Vuc2hpbmVdJzsKK+aajj4nW3N1biBiZWdpbm5pbmcgZGVjbGluZV0nOwor5pqRPidbaG90XSc7CivmmpY+J1t3YXJtXSc7Civmmpc+J1tkYXJrXSc7Civmmpg+J1tyaXNpbmcgc3VuXSc7Civmmp0+J1tkYXJrXSc7CivmmqI+J1tzbW9vdGhseV0nOwor5pqmPidbY2FsZW5kYXJdJzsKK+aaqz4nW3RlbXBvcmFyeV0nOwor5pquPidbZXZlbmluZ10nOwor5pq0PidbdmlvbGVudF0nOwor5pq4PidbYnJpZ2h0XSc7Civmmrk+J1tyaXNlXSc7Civmmrw+J1t0YWtlIGZsZWV0aW5nIGdsYW5jZSBhdF0nOwor5pq+PidbbW9ybmluZyBzdW5dJzsKK+abgT4nW2FuZF0nOwor5puEPidbYnJpZ2h0XSc7Civmm4c+J1tiZWNvbWUgY2xvdWR5XSc7Civmm4k+J1tkYXduXSc7Civmm5Y+J1tvYnNjdXJlXSc7Civmm5k+J1ticmlnaHRdJzsKK+abmj4nW3R3aWxpZ2h0IGp1c3QgYmVmb3JlIHN1biByaXNlc10nOwor5pucPidbZ2xvcmlvdXNdJzsKK+abnT4nW3N1bl0nOwor5pugPidbZXh0ZW5zaXZlXSc7Civmm6Y+J1tzdW5saWdodF0nOwor5pupPidbaW4gYW5jaWVudCB0aW1lc10nOwor5puwPidbc2F5XSc7Civmm7I+J1tjcm9va2VkXSc7Civmm7M+J1t0cmFpbF0nOwor5pu0PidbbW9yZV0nOwor5pu1PidbdHJhaWxdJzsKK+abtz4nW3doeT8gd2hhdD8gd2hlcmU/XSc7Civmm7g+J1tib29rXSc7Civmm7k+J1ttaW5pc3RyeSBvZmZpY2lhbHNdJzsKK+abvD4nW2xvbmddJzsKK+abvT4nW2FscmVhZHldJzsKK+abvj4nW2FscmVhZHldJzsKK+abvz4nW2NoYW5nZV0nOwor5pyAPidbbW9zdF0nOwor5pyDPidbYXNzZW1ibGVdJzsKK+aciD4nW21vb25dJzsKK+aciT4nW2hhdmVdJzsKK+aciz4nW2ZyaWVuZF0nOwor5pyNPidbY2xvdGhlc10nOwor5pyPPidbbGlnaHQgb2YgY3Jlc2NlbnQgbW9vbl0nOwor5pyUPidbZmlyc3QgZGF5IG9mIGx1bmFyIG1vbnRoXSc7CivmnJU+J1twcm9ub3VuIFwiaVwiXSc7CivmnJY+J1tjbGVhcl0nOwor5pyXPidbY2xlYXJdJzsKK+acmz4nW2xvb2sgYXQgb3IgZm9yd2FyZF0nOwor5pydPidbZHluYXN0eV0nOwor5pyePidbZnVsbCB5ZWFyXSc7CivmnJ8+J1twZXJpb2Qgb2YgdGltZV0nOwor5pymPidbY29uZGl0aW9uIG9yIGFwcGVhcmFuY2Ugb2YgbW9vbl0nOwor5pynPidbY29uZGl0aW9uIG9yIGFwcGVhcmFuY2Ugb2YgbW9vbl0nOwor5pyoPidbdHJlZV0nOwor5pyqPidbbm90IHlldF0nOwor5pyrPidbZmluYWxdJzsKK+acrD4nW3Jvb3RdJzsKK+acrT4nW2xldHRlcl0nOwor5pyuPidbc2tpbGxdJzsKK+acsT4nW2Npbm5hYmFyXSc7CivmnLQ+J1tzaW1wbGVdJzsKK+actj4nW2NsdXN0ZXIgb2YgZmxvd2Vyc10nOworIyLmnLY+J1tjbHVzdGVyIG9mIGZsb3dlcnNdJyIsCisjIuactj4nW2NsdXN0ZXIgb2YgZmxvd2Vyc10nIiwKK+acuj4nW2Rlc2tdJzsKK+acvT4nW2RlY2F5ZWRdJzsKK+acvz4nW3N0YWJdJzsKKyMi5p2APidba2lsbF0nIiwKK+adhj4nW3BvbGVdJzsKK+adiT4nW3ZhcmlvdXMgc3BlY2llcyBvZiBwaW5lIGFuZCBmaXJdJzsKK+adjj4nW3BsdW1dJzsKK+adjz4nW2Fwcmljb3RdJzsKK+adkD4nW21hdGVyaWFsXSc7CivmnZE+J1t2aWxsYWdlXSc7CivmnZM+J1toYW5kbGUgb2YgY3VwXSc7CivmnZY+J1tjYW5lXSc7CivmnZk+J1thIHRpbnkgd29vZGVuIHBvc3RdJzsKK+adnD4nW3N0b3BdJzsKK+adnj4nW3dpbGxvd10nOwor5p2fPidbYmluZF0nOwor5p2gPidbbGV2ZXJdJzsKK+adoT4nW2NsYXVzZV0nOwor5p2iPidbd29vZHdvcmtlcl0nOworIyLmnaI+J1t3b29kd29ya2VyXSciLAor5p2kPidbdHlwZSBvZiBvYWtdJzsKK+adpT4nW2NvbWVdJzsKK+adqj4nW3RpcCBvZiB0d2lnXSc7Civmna0+J1tjcm9zcyBzdHJlYW1dJzsKK+adrz4nW2N1cF0nOwor5p2wPidbaGVyb10nOwor5p2xPidbZWFzdF0nOwor5p2yPidbYnJpZ2h0IHN1bl0nOwor5p2zPidbb2JzY3VyZV0nOwor5p21PidbcGVzdGxlXSc7Civmnbc+J1tsb3F1YXRdJzsKK+advD4nW3NodXR0bGUgb2YgbG9vbV0nOwor5p2+PidbcGluZSB0cmVlXSc7Civmnb8+J1twbGFua10nOworIyLmnoU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aehz4nW2xvcXVhdF0nOwor5p6JPidbdXNlbGVzc10nOwor5p6LPidbc2FuZGFsd29vZF0nOwor5p6MPidbdmFyaWV0eSBvZiBlbG0gd2l0aCBzbWFsbCBzZWVkc10nOwor5p6QPidbc3BsaXQgd29vZF0nOwor5p6VPidbcGlsbG93XSc7Civmnpc+J1tmb3Jlc3RdJzsKK+aemj4nW3N0YWxrIG9mIHNocnViXSc7Civmnpw+J1tmcnVpdF0nOwor5p6dPidbYnJhbmNoZXNdJzsKKyMi5p6fPidbd29vZCBzdHJlYWtzXSciLAorIyLmnp8+J1t3b29kIHN0cmVha3NdJyIsCivmnqI+J1tkb29yIGhpbmdlXSc7CisjIuaepj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5p6pPidbcGluZSB0cmVlXSc7Civmnq8+J1tkcmllZCBvdXRdJzsKK+aesz4nW3RyaWZvbGlhdGUgb3JhbmdlXSc7CivmnrQ+J1tjYW5lXSc7CivmnrY+J1tyYWNrXSc7Civmnrc+J1tjYW5ndWUgc2NhZmZvbGRdJzsKK+aeuD4nW2tpbmQgb2YgYXNwZW4gZm91bmQgaW4gc2ljaHVhbl0nOwor5p65PidbZHJ1bXN0aWNrXSc7Civmn4E+J1tsYXJnZSB0aWUtYmVhbXNdJzsKK+afhD4nW2hhbmRsZV0nOworIyLmn4Y+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5p+IPidbY29udGFpbmVyXSciLAor5p+OPidbY2FseXggb2YgZmxvd2VyXSc7Civmn48+J1tjeXByZXNzXSc7Civmn5A+J1tjZXJ0YWluIHRoaW5nIG9yIHBlcnNvbl0nOwor5p+RPidbdGFuZ2VyaW5lXSc7Civmn5M+J1tkeWVdJzsKK+aflD4nW3NvZnRdJzsKK+afmD4nW2EgdGhvcm55IHRyZWVdJzsKK+afmj4nW3B1bWVsb10nOwor5p+dPidbd2F0Y2htYW4nJ3MgcmF0dGxlXSc7Civmn54+J1tvYWtdJzsKK+afoj4nW3Jvb3RdJzsKK+afpD4nW2hhd3Rob3JuXSc7CisjIuafpz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5p+pPidbY29mZmluIHdoaWNoIGNvbnRhaW5zIGNvcnBzZV0nOwor5p+sPidbbGV0dGVyXSc7Civmn64+J1tmbGF0IHBpZWNlcyBvZiB3b29kXSc7Civmn68+J1theGUtaGFuZGxlXSc7Civmn7E+J1twaWxsYXJdJzsKK+afsz4nW3dpbGxvdyB0cmVlXSc7Civmn7Q+J1tmaXJld29vZF0nOwor5p+1PidbZmVuY2VdJzsKK+afuz4nW2ludmVzdGlnYXRlXSc7Civmn74+J1tzdHJhaWdodCBncmFpbl0nOwor5p+/PidbcGVyc2ltbW9uXSc7CivmoII+J1thIGtpbmQgb2YgZXZlcmdyZWVuIHRyZWVdJzsKK+aggz4nW3R5cGUgb2Ygb2FrXSc7CivmoIQ+J1tnbG9yeV0nOwor5qCTPidbd29vZGVuIHBlZ10nOwor5qCWPidbcGVyY2hdJzsKK+aglz4nW2NoZXN0bnV0IHRyZWVdJzsKK+agnj4nW3B1YmxpY2F0aW9uXSc7CivmoKE+J1tzY2hvb2xdJzsKK+agoj4nW2N5cHJlc3NdJzsKK+agqT4nW3NwZWNpZXMgb2Ygb2FrXSc7CivmoKo+J1tudW1lcmFyeSBhZGp1bmN0IGZvciB0cmVlc10nOwor5qCrPidbZmVuY2VdJzsKK+agsj4nW21hbmdyb3ZlXSc7CivmoLQ+J1tzYW5kYWx3b29kXSc7CivmoLg+J1tzZWVkXSc7CivmoLk+J1tyb290XSc7CivmoLw+J1twYXR0ZXJuXSc7CivmoL0+J1tjdWx0aXZhdGVdJzsKK+ahgD4nW2NoaWNrZW4gcm9vc3RdJzsKK+ahgT4nW2Nyb3NzLWJlYW1zIG9mIHJvb2ZdJzsKK+ahgj4nW2Nhc3NpYSBvciBjaW5uYW1vbl0nOwor5qGDPidbcGVhY2hdJzsKK+ahhj4nW2ZyYW1lXSc7CivmoYg+J1t0YWJsZV0nOworIyLmoY0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ahjj4nW2ZldHRlcnNdJzsKK+ahkD4nW25hbWUgYXBwbGllZCB2YXJpb3VzIHRyZWVzXSc7CivmoZE+J1ttdWxiZXJyeSB0cmVlXSc7CivmoZM+J1t2YXJpZXR5IG9mIHRyZWVdJzsKK+ahlD4nW2NoaW5lc2UgYmVsbGZsb3dlcl0nOworIyLmoZk+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ahnD4nW2NoZXJyeV0nOwor5qGdPidbLi4uLi4uLi4uLi4uLi4uLl0nOworIyLmoZ0+J1suLi4uLi4uLi4uLi4uLi4uXSciLAor5qGjPidbc2hlbGZdJzsKK+ahpz4nW2NoaW5lc2UgY3lwcmVzc10nOwor5qG0PidbcmFmdF0nOwor5qG2PidbcGFpbF0nOwor5qG3PidbcmFmdGVyXSc7CisjIuahvj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qG/PidbcG9sZV0nOwor5qKBPidbYnJpZGdlXSc7CivmooM+J1thIGNsdWJdJzsKK+aihT4nW3BsdW1zXSc7Civmoo0+J1t0cmVlIG5hbWVdJzsKK+aijz4nW2hhbmRjdWZmc10nOwor5qKTPidbY2F0YWxwYSBvdmF0YV0nOwor5qKUPidbZ2FyZGVuaWFdJzsKK+ailz4nW3N0ZW0gb2YgZmxvd2VyXSc7CisjIuaimD4nW2JhbWJvbyB0dWJlXSciLAor5qKdPidbY2xhdXNlXSc7Civmop8+J1tvd2wgdGh1c10nOwor5qKgPidbc21hbGwgYmVhbSBzdXBwb3J0aW5nIHJhZnRlcnMgYXRdJzsKK+aioj4nW3BvaW50ZWQgdGlwIG9mIHNvbWV0aGluZyBsb25nIGxpa2UgYSBicmFuY2hdJzsKK+aipj4nW2RyZWFtXSc7Civmoqc+J1tzdGVyY3VsaWEgcGxhdGFuaWZvbGlhXSc7Civmoqg+J1twZWFyXSc7Civmoq0+J1t3ZWF2ZXInJ3Mgc2h1dHRsZV0nOwor5qKvPidbbGFkZGVyXSc7CivmorA+J1t3ZWFwb25zXSc7CivmorE+J1tkb29yc2lsbF0nOwor5qKzPidbY29tYl0nOwor5qK1PidbYnVkZGhpc3RdJzsKK+aitj4nW29hcl0nOwor5qK5PidbdGhlIGFyZWNhLW51dF0nOworIyLmork+J1t0aGUgYXJlY2EtbnV0XSciLAor5qK8PidbYmxvY2sgb2Ygd29vZF0nOwor5qOEPidbcmVqZWN0XSc7CisjIuajhj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qOJPidbY290dG9uXSc7Civmo4o+J1tjaGVzc10nOwor5qOLPidbY2hlc3NdJzsKK+ajjT4nW3N0aWNrXSc7Civmo5I+J1tzdGlja10nOworIyLmo5Q+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ajlT4nW2hlbXAgcGFsbV0nOwor5qOXPidbZGF0ZSB0cmVlXSc7Civmo5g+J1tqdWp1YmUgdHJlZV0nOwor5qOaPidbdGVudF0nOwor5qOfPidbbWFpbiBiZWFtcyBzdXBwb3J0aW5nIGhvdXNlXSc7Civmo6A+J1tjcmFiIGFwcGxlIHRyZWVdJzsKKyMi5qOhPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmo6M+J1trZXJyaWEgamFwb25pY2EgcGxhbnRdJzsKK+ajpz4nW3dhcmVob3VzZV0nOwor5qOuPidbZm9yZXN0XSc7Civmo68+J1tqdWp1YmUgdHJlZV0nOwor5qOyPidbcGVyY2hdJzsKK+ajuT4nW29hcl0nOwor5qO6PidbY29mZmluXSc7CivmpIA+J1tib3dsXSc7CivmpIE+J1tvdXRlci1jb2ZmaW5dJzsKK+akhD4nW3RvIGdyYWZ0XSc7CivmpIU+J1tjaGFpcl0nOwor5qSIPidbY2VkYXJdJzsKK+akiz4nW2ZydWl0XSc7CivmpIw+J1tpbnN0cnVtZW50XSc7CivmpI0+J1twbGFudF0nOwor5qSOPidbaGFtbWVyXSc7CivmpI8+J1t0aGUgZm9ya2luZyBicmFuY2ggb2YgYSB0cmVlXSc7CivmpJI+J1twZXBwZXJdJzsKKyMi5qSTPidbc3RyaWtlXSciLAorIyLmpJo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+akmz4nW3R5cGUgb2YgYmlyY2hdJzsKK+aknD4nW2NoZWNrXSc7CisjIuakoT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmpKI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5qSjPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuakpT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmpKY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5qSoPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmpKo+J1ttYWNoaWx1cyBuYW5tdV0nOwor5qSwPidbcGFsbSB0cmVlXSc7CivmpLQ+J1twb3BsYXJdJzsKK+aktj4nW3BhbG0gdHJlZV0nOwor5qS5PidbYSBjaG9wcGluZyBib2FyZF0nOwor5qS9PidbYmVhbXNdJzsKK+akvz4nW2ZhdGhlcl0nOwor5qWKPidbd2lsbG93XSc7CivmpZM+J1ttYXBsZSB0cmVlXSc7CivmpZQ+J1t3ZWRnZV0nOwor5qWVPidbb3ZhbC1zaGFwZWRdJzsKK+almT4nW25hbWUgb2YgcGxhbnRdJzsKK+almj4nW25hbWUgb2YgZmV1ZGFsIHN0YXRlXSc7CisjIualnD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qWdPidbbWVsaWEgamFwb25pY2FdJzsKK+alnj4nW3VzZWQgZm9yIGNleWxvbiBpbiBidWRkaGlzdCB0ZXh0XSc7CivmpaA+J1tuYW1lIG9mIHRyZWVdJzsKK+aloT4nW2VsbSB0cmVlXSc7CivmpaI+J1t0aW5kZXJdJzsKK+alqj4nW3NtYWxsIGRpc2hdJzsKK+alqz4nW29hcl0nOwor5qWtPidbcHJvZmVzc2lvbl0nOwor5qWuPidbbXVsYmVycnldJzsKK+alrz4nW3NoaWVsZF0nOwor5qWzPidbcGx1bXNdJzsKKyMi5qW0PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmpbU+J1tleHRyZW1lXSc7Civmpbc+J1ttb2RlbCBzdHlsZSBvZiBjaGluZXNlIHdyaXRpbmddJzsKK+aluD4nW21hbGxvdHVzIGphcG9uaWN1c10nOwor5qW5PidbY29sdW1uXSc7Civmpbw+J1tidWlsZGluZyBvZiB0d28gb3IgbW9yZSBzdG9yaWVzXSc7Civmpb0+J1toYXBweV0nOworIyLmpb0+J1toYXBweV0nIiwKKyMi5qaAPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nIiwKK+amgj4nW2dlbmVyYWxseV0nOworIyLmpok+J1t0eXBlIG9mIGVsbV0nIiwKK+amjj4nW3NtYWxsIGV2ZXJncmVlbiBzaHJ1Yl0nOworIyLmppE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+amlD4nW2JldGVsLW51dCB0cmVlXSc7CivmppU+J1tiYW55YW4gdHJlZV0nOwor5qabPidbaGF6ZWxudXRdJzsKK+amnD4nW3BsYWNhcmRdJzsKKyMi5qagPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmpqc+J1t0eXBlIG9mIHlld10nOwor5qauPidbZ2xvcnldJzsKK+amsT4nW3JhZnRlcl0nOwor5qayPidbcGlsbGFyXSc7CivmprQ+J1twb21lZ3JhbmF0ZV0nOwor5qa7PidbY290XSc7Civmpr4+J1twaWVjZXMgb2Ygd29vZF0nOwor5qa/PidbYWxkZXJdJzsKK+angT4nW3dpdGhlcl0nOwor5qeDPidbdHJheV0nOwor5qeHPidbdGlwIG9mIGEgdHJlZV0nOwor5qeKPidbc3BlYXJdJzsKK+aniz4nW2ZyYW1lXSc7Civmp4w+J1toYW1tZXJdJzsKK+anjT4nW3NwZWFyXSc7Civmp44+J1tyYWZ0XSc7Civmp5A+J1tsb2N1c3QgdHJlZV0nOwor5qeTPidbbGV2ZXJdJzsKK+anmD4nW3NoYXBlXSc7CisjIuanmD4nW3NoYXBlXSciLAorIyLmp5s+J1t0aHJlc2hvbGRdJyIsCisjIuanmz4nW3RocmVzaG9sZF0nIiwKK+anpz4nW3dvb2RlbiB0YWJsZXRdJzsKK+anqD4nW291dGVyLWNvZmZpbl0nOworIyLmp6s+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+anrT4nW21hcGxlXSc7Civmp7I+J1t0eXBlIG9mIG9ha10nOwor5qe5Pidbc3Bhcl0nOwor5qe7PidbemVsa292YSB0cmVlXSc7Civmp70+J1t0cm91Z2hdJzsKK+anvz4nW2hpYmlzY3VzXSc7CivmqII+J1toYXBweV0nOwor5qiFPidbZmlyIHRyZWVdJzsKK+aoij4nW2EgcmFpbGluZ10nOwor5qiLPidbdHJlZSBuYW1lXSc7CisjIuaojD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmqJI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aokz4nW2J1aWxkaW5nIG9mIHR3byBvciBtb3JlIHN0b3JpZXNdJzsKKyMi5qiTPidbYnVpbGRpbmcgb2YgdHdvIG9yIG1vcmUgc3Rvcmllc10nIiwKK+aolz4nW2tpbmQgb2YgdHJlZSB3aXRoIHVzZWxlc3MgdGltYmVyXSc7CivmqJk+J1ttYXJrXSc7CivmqJs+J1tiZW5kaW5nIGJyYW5jaGVzXSc7CivmqJ4+J1tkb29yIGhpbmdlXSc7CivmqJ8+J1tjYW1waG9yIHRyZWVdJzsKK+aooT4nW21vZGVsXSc7CisjIuaooj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qijPidbc2hhcGVdJzsKK+aoqT4nW3Bvd2VyXSc7CivmqKo+J1thY3Jvc3NdJzsKKyMi5qiqPidbYWNyb3NzXSciLAorIyLmqKo+J1thY3Jvc3NdJyIsCivmqLU+J1t3b29kY3V0dGVyXSc7CivmqLY+J1tjXSc7CivmqLg+J1tzaW1wbGVdJzsKK+aouT4nW3RyZWVdJzsKK+aouj4nW3R5cGUgb2YgYmlyY2hdJzsKK+aovT4nW2dvYmxldF0nOwor5qmEPidbb2xpdmVdJzsKK+aphz4nW2Egc2xlZGdlIGZvciB0cmFuc3BvcnRhdGlvbl0nOwor5qmIPidbYmVudCBvciB0d2lzdGVkIHBpZWNlIG9mIHdvb2RdJzsKK+apiz4nW2JyaWRnZV0nOwor5qmYPidbb3JhbmdlXSc7CivmqZk+J1tvcmFuZ2VdJzsKK+apnz4nW21hY2hpbmVdJzsKK+apoT4nW2NoZXN0bnV0IG9ha10nOwor5qmiPidbb3ZhbC1zaGFwZWRdJzsKK+appj4nW3RyZWVdJzsKKyMi5qmxPidbY2FiaW5ldF0nIiwKKyMi5qm1Pidbd29vZCBwbGFjZWQgdW5kZXIgcm9vZiB0aWxlc10nIiwKKyMi5qm/PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmqoA+J1tzYW5kYWx3b29kXSc7CivmqoQ+J1tjYWxsIGFybXNdJzsKK+aqjT4nW2lsZXhdJzsKK+aqjj4nW3NtYWxsIHJlZCBhcHBsZV0nOwor5qqQPidbZWF2ZXMgb2YgaG91c2VdJzsKK+aqlz4nW3RyZWVdJzsKK+aqnD4nW2NoaW5lc2UgY3lwcmVzc10nOwor5qqgPidbc3RhbmQgZm9yIGxhbXBdJzsKK+aqoj4nW2NoZWNrXSc7CivmqqM+J1ttYXN0XSc7Civmqqo+J1tjaGVzdG51dC1sZWF2ZWQgb2FrXSc7Civmqqw+J1t0eXBlIG9mIGxvY3VzdCBvcmFjYWNpYV0nOwor5qquPidbYmxvY2sgb2Ygd29vZF0nOwor5qqzPidbYmV0ZWxudXRdJzsKK+aquD4nW2xlbW9uXSc7Civmqrs+J1t0aHJlc2hvbGRdJzsKKyMi5quBPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmq4I+J1tvYXJdJzsKK+argz4nW2N1cGJvYXJkXSc7CisjIuarkT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5quTPidbb2FyXSc7Civmq5o+J1twYWxtXSc7Civmq5s+J1tjb21iIG91dF0nOwor5quePidbY2l0cnVzXSc7Civmq58+J1tjaGVzdG51dC1sZWF2ZWQgb2FrXSc7Civmq6g+J1tzdXBwb3J0aW5nIGJsb2NrXSc7Civmq6o+J1t0eXBlIG9mIG9ha10nOwor5qu6PidbY2FydmVkIG9yIHBhdHRlcm5lZCB3aW5kb3cgc2lsbHNdJzsKK+aruz4nW2NoZXJyeV0nOwor5qyEPidbcmFpbGluZ10nOwor5qyFPidbemVsa292YV0nOwor5qyKPidbcG93ZXJdJzsKK+askj4nW25hbWUgb2YgdHJlZV0nOwor5qyWPidbb2xpdmVdJzsKK+asnT4nW2x1eHVyaWFudF0nOworIyLmrJ4+J1t0aGUgbGF0dGljZSBvZiBhIHdpbmRvdyBhIHNpbGxdJyIsCivmrKA+J1tvd2VdJzsKK+asoT4nW29yZGVyXSc7CivmrKM+J1toYXBweV0nOwor5qynPidbdHJhbnNsaXQuOiBldXJvcGVdJzsKK+assj4nW2Rlc2lyZV0nOwor5qy3Pidbc29iXSc7CivmrLg+J1tzaWdoc10nOwor5qy5PidbZmllcmNlIGRvZ10nOwor5qy6PidbY2hlYXRdJzsKK+asvT4nW3Jlc3BlY3RdJzsKK+asvj4nW2l0ZW1dJzsKK+atgz4nW3NtZWFyIG9uZScncyBtb3V0aCB3aXRoIGJsb29kIG9mIGEgdmljdGltIHdoZW4gdGFraW5nIGFuIG9hdGhdJzsKK+athz4nW3Jlc3RdJzsKK+atiT4nW2RlZmljaWVudF0nOwor5q2MPidbc29uZ10nOwor5q2OPidbc2lnaF0nOwor5q2QPidbdHJhbnNsaXQuOiBldXJvcGVdJzsKK+atkz4nW2hhcHB5XSc7CivmrZQ+J1tibG93IHRocm91Z2ggbm9zZV0nOwor5q2ZPidbdG8gc3Vja10nOwor5q2bPidbZHJhdyBiYWNrXSc7CivmrZ8+J1tmaW5hbCBwYXJ0aWNsZSB1c2VkIGV4cHJlc3MgcXVlc10nOwor5q2hPidbaGFwcHldJzsKK+atoj4nW3N0b3BdJzsKK+atoz4nW3JpZ2h0XSc7CivmraQ+J1t0aGlzXSc7CivmraY+J1ttaWxpdGFyeV0nOwor5q2pPidbc3RlcF0nOwor5q2qPidbc2xhbnRdJzsKK+atrz4nW3RlZXRoXSc7CivmrbM+J1t5ZWFyXSc7CivmrbQ+J1t0YWtlIHBsYWNlXSc7Civmrbg+J1tyZXR1cm5dJzsKK+atuT4nW2JhZF0nOwor5q27PidbZGllXSc7Civmrb8+J1tkaWVdJzsKK+augD4nW2RpZSB5b3VuZ10nOwor5q6DPidbbWlzZm9ydHVuZV0nOwor5q6EPidbdG8gZW5kXSc7CivmroY+J1tkYW5nZXJvdXNdJzsKK+auiT4nW2RpZSBmb3IgY2F1c2VdJzsKK+auij4nW2RpZmZlcmVudF0nOwor5q6LPidbaW5qdXJlXSc7Civmro0+J1t0byBzdGFydmUgdG8gZGVhdGhdJzsKK+aulT4nW1tub3QgZm91bmQgaW4gZGljdGlvbmFyeV1dJzsKK+aulj4nW2JyZWVkXSc7Civmrpg+J1tpbmp1cmVdJzsKK+aunj4nW2RpZV0nOwor5q6kPidbZGllIHlvdW5nXSc7Civmrqo+J1tkaWVdJzsKK+auqz4nW3V0bW9zdF0nOwor5q6vPidbZW5jb2ZmaW5dJzsKK+ausT4nW2FubmloaWxhdGVdJzsKK+ausj4nW2FubmloaWxhdGVdJzsKK+ausz4nW25hbWUgb2Ygb2xkIHdlYXBvbl0nOwor5q60PidbYmVhdF0nOwor5q61Pidbc2VjdGlvbl0nOwor5q63PidbbWFueV0nOwor5q66Pidba2lsbF0nOwor5q67PidbY2FzaW5nXSc7Civmrrw+J1tjYXNpbmddJzsKK+auvz4nW2hhbGxdJzsKK+avgD4nW2Rlc3Ryb3ldJzsKK+avhT4nW3Jlc29sdXRlXSc7Civmr4Y+J1tiZWF0XSc7Civmr4s+J1tkbyBub3RdJzsKK+avjT4nW21vdGhlcl0nOwor5q+OPidbZXZlcnldJzsKK+avkj4nW3BvaXNvbl0nOwor5q+TPidbZ2l2ZSBiaXJ0aCB0b10nOwor5q+UPidbY29tcGFyZV0nOwor5q+YPidbaGVscF0nOwor5q+bPidbaGFpcl0nOworIyLmr58+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+avqz4nW2ZpbmUgaGFpcl0nOwor5q+sPidbYmFsbF0nOwor5q+vPidbcnVnXSc7Civmr7M+J1tmaW5lIGhhaXIgb3IgZnVyIG9uIGFuaW1hbHNdJzsKK+awiD4nW2ZlbHRdJzsKK+awjz4nW2NsYW5dJzsKK+awkT4nW3Blb3BsZV0nOwor5rCTPidbcGVvcGxlXSc7CivmsJQ+J1tzdGVhbV0nOwor5rCXPidbYWlyXSc7CivmsJs+J1tnYXNdJzsKK+awoz4nW2Fpcl0nOwor5rCkPidbaGFuZ2luZyBmb2ddJzsKK+awtD4nW3dhdGVyXSc7CivmsLc+J1tpY2VdJzsKK+awuD4nW2xvbmddJzsKK+awvj4nW292ZXJmbG93XSc7CivmsYA+J1tzYW5kYmFyXSc7CivmsYE+J1tqdWljZV0nOwor5rGCPidbc2Vla10nOwor5rGOPidbZmxvYXRdJzsKK+axkD4nW25pZ2h0IHRpZGVzXSc7CivmsZU+J1tiYXNrZXQgZm9yIGNhdGNoaW5nIGZpc2hdJzsKK+axlz4nW3BlcnNwaXJhdGlvbl0nOwor5rGaPidbZmlsdGh5XSc7CivmsZ0+J1t5b3VdJzsKK+axnj4nW2VsZW1lbnQgbWVyY3VyeV0nOwor5rGfPidbbGFyZ2Ugcml2ZXJdJzsKK+axoD4nW3Bvb2xdJzsKKyMi5rGiPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmsag+J1tNaShsdW8pIHJpdmVyIGluIGh1bmFuIHByb3ZpbmNlIHdoZXJlIFF1IFl1YW4gZHJvd25lZCBoaW1zZWxmXSc7Civmsao+J1t2YXN0XSc7CivmsbA+J1tleGNlc3NpdmVdJzsKK+axsj4nW2RyYXcgd2F0ZXIgZnJvbSB3ZWxsXSc7CisjIuaxsj4nW2RyYXcgd2F0ZXIgZnJvbSB3ZWxsXSciLAor5rG6PidbZGVjaWRlXSc7Civmsb0+J1tzdGVhbV0nOwor5rG+Pidbcml2ZXIgaW4gc2hhbnhpIHByb3ZpbmNlXSc7CivmsoE+J1tzb2FrIGludG9dJzsKK+aygj4nW3JpdmVyIGluIHNvdXRoZWFzdCBzaGFuZG9uZyBmbG93XSc7CivmsoM+J1t3YXRlcl0nOwor5rKIPidbc2lua10nOwor5rKMPidbY2hhb3RpY10nOwor5rKNPidbZnJlZXppbmddJzsKK+aykD4nW2JhdGhlXSc7CivmspI+J1tub3RdJzsKK+aykz4nW2Nvbm5lY3RlZF0nOwor5rKWPidbcG91cl0nOwor5rKZPidbc2FuZF0nOwor5rKaPidbaXNsZXQgaW4gc3RyZWFtXSc7Civmsps+J1thYnVuZGFudF0nOwor5rKhPidbbm90XSc7CivmsqI+J1ttYXJzaF0nOwor5rKrPidbZnJvdGhdJzsKK+ayrj4nW3N0b3BdJzsKK+aysT4nW3JpdmVyc10nOwor5rKzPidbcml2ZXJdJzsKK+ayuD4nW2JvaWxdJzsKK+ayuT4nW29pbF0nOwor5rK6PidbdHVyYnVsZW50XSc7Civmsrs+J1tnb3Zlcm5dJzsKK+ayvD4nW2xha2VdJzsKK+ayvT4nW2J1eSBhbmQgc2VsbF0nOwor5rK+PidbbW9pc3Rlbl0nOwor5rK/PidbZm9sbG93IGNvdXJzZV0nOwor5rOBPidbY29uZGl0aW9uXSc7Civms4Q+J1tsZWFrXSc7Civms4U+J1tzd2ltXSc7Civms4k+J1tzcHJpbmddJzsKK+azij4nW2FuY2hvciB2ZXNzZWxdJzsKK+azjD4nW3RvIHNlZXAgb3V0XSc7Civms5M+J1tjbGVhcl0nOwor5rOVPidbbGF3XSc7Civms5c+J1ttdWNvdXNdJzsKK+azmT4nW3JvYXJdJzsKK+azmz4nW2RyaWZ0XSc7Civms50+J1tnbyB1cHN0cmVhbV0nOwor5rOhPidbYnViYmxlc10nOwor5rOiPidbd2F2ZXNdJzsKK+azoz4nW2NyeV0nOwor5rOlPidbbXVkXSc7Civms6g+J1tjb25jZW50cmF0ZV0nOwor5rOqPidbdGVhcnNdJzsKK+azrz4nW2Rlc3Ryb3ldJzsKK+azsD4nW2dyZWF0XSc7Civms7E+J1tncmVhdF0nOwor5rOzPidbZGl2ZV0nOwor5rSLPidbb2NlYW5dJzsKK+a0jD4nW2NsZWFyXSc7CivmtJI+J1tzcHJpbmtsZV0nOwor5rSXPidbd2FzaF0nOwor5rSZPidbbmFtZSBvZiBhIHJpdmVyIGluIHNoYW5kb25nXSc7CivmtJs+J1tyaXZlciBpbiBzaGFhbnhpIHByb3ZpbmNlXSc7CivmtJ4+J1tjYXZlXSc7CivmtJ8+J1tzbml2ZWxdJzsKK+a0pT4nW2ZlcnJ5XSc7CivmtKk+J1tsZWFrXSc7CivmtKo+J1t2YXN0XSc7CivmtKs+J1t0byBkaXRjaF0nOwor5rSyPidbY29udGluZW50XSc7CivmtLM+J1tkYW1wXSc7CivmtLU+J1t0cnVlXSc7CivmtLY+J1t0aGUgcnVzaCBvZiB3YXRlcl0nOwor5rS4Pidbc3BhcmtsZV0nOwor5rS7PidbbGl2ZV0nOwor5rS9Pidbc3ByZWFkXSc7CivmtL4+J1tzY2hvb2wgb2YgdGhvdWdodF0nOwor5rWBPidbZmxvd10nOwor5rWEPidbcHVyZV0nOwor5rWFPidbc2hhbGxvd10nOwor5rWZPidbemhlamlhbmcgcHJvdmluY2VdJzsKK+a1mj4nW2RyZWRnZV0nOwor5rWcPidbY3JlZWtdJzsKK+a1oz4nW3RvIHdhc2hdJzsKK+a1pD4nW2JlYXRpbmcgb2Ygb2NlYW5dJzsKK+a1pj4nW2Jhbmsgb2Ygcml2ZXJdJzsKK+a1qT4nW2dyZWF0XSc7Civmtao+J1t3YXZlXSc7Civmtaw+J1tuYXV0aWNhbCBtaWxlXSc7Civmta4+J1tmbG9hdF0nOwor5rW0PidbYmF0aGVdJzsKK+a1tz4nW3NlYV0nOwor5rW4Pidbc29ha10nOwor5rW5Pidbc2F0dXJhdGVdJzsKK+a2hT4nW2JsYWNrZW5dJzsKK+a2iD4nW3ZhbmlzaF0nOwor5raMPidbc3VyZ2UgdXBdJzsKK+a2jj4nW3NhbGl2YV0nOwor5raTPidbYnJvb2tdJzsKK+a2lT4nW3RlYXJdJzsKK+a2mT4nW3RlYXJzXSc7Civmtps+J1tsYXJnZSB3YXZlc10nOwor5racPidbZGl0Y2hdJzsKK+a2rz4nW3Nob3JlXSc7CivmtrI+J1tzYXBdJzsKK+a2tT4nW3NvYWtdJzsKK+a2uD4nW2RyaWVkIHVwXSc7Civmtrw+J1tjb29sXSc7Civmt4A+J1tzaGFsbG93IHdhdGVyXSc7Civmt4U+J1t3YXRlciB1c2VkIHdhc2ggcmljZV0nOwor5reGPidbY29uZnVzZWRdJzsKK+a3hz4nW3JpdmVyIGluIGhlbmFuIHByb3ZpbmNlXSc7Civmt4s+J1tkcmlwXSc7Civmt4w+J1t0cmlja2xlXSc7Civmt5E+J1tnb29kXSc7Civmt5I+J1tiaXR0ZXIgY29sZF0nOworIyLmt5U+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+a3mD4nW3dhc2ggaW4gc2lldmVdJzsKK+a3mT4nW2d1cmdsaW5nIHNvdW5kIG9mIHdhdGVyXSc7Civmt54+J1tuYW1lIG9mIGEgcml2ZXIgaW4gSmlhbmdzdV0nOwor5rehPidbd2Vha10nOwor5rekPidbbXVkXSc7Civmt6Y+J1tyaXZlciBpbiBqaWFuZ3hpIHByb3ZpbmNlOiB3YXRlcl0nOwor5reoPidbcHVyZV0nOwor5reqPidbYmUgbG9zdF0nOwor5rerPidbb2JzY2VuZV0nOwor5resPidbdGVtcGVyXSc7Civmt64+J1tyaXZlciBpbiBhbmh1aSBwcm92aW5jZV0nOwor5rexPidbZGVlcF0nOwor5rezPidbY3lhbm9nZW5dJzsKK+a3tT4nW2d1bGZdJzsKK+a3tz4nW21peF0nOwor5re5PidbZHJvd25dJzsKK+a3uj4nW3NoYWxsb3ddJzsKK+a3uz4nW2FwcGVuZF0nOwor5riFPidbY2xlYXJdJzsKK+a4hz4nW3RoaXJzdHldJzsKK+a4iD4nW2hlbHBdJzsKK+a4iT4nW2ZvcmQgc3RyZWFtXSc7CivmuIo+J1tzdXJnZSB1cF0nOwor5riLPidbYXN0cmluZ2VudF0nOwor5riTPidbbW91bnRhaW4gc3RyZWFtXSc7CivmuJU+J1tzdXJnZSB1cF0nOwor5riZPidbc2NhdHRlcl0nOwor5riaPidbc21hbGwgc2FuZCBiYW5rXSc7CivmuJs+J1tkZWNyZWFzZV0nOwor5ridPidbY2hhbmdlXSc7CivmuJ8+J1sob2Ygd2F0ZXIpIG5vdCBmbG93aW5nXSc7CivmuKA+J1tkaXRjaF0nOwor5rihPidbY3Jvc3NdJzsKK+a4oz4nW3JlZnVzZV0nOwor5rikPidbc3dlbGxpbmddJzsKK+a4pT4nW21vaXN0ZW5dJzsKK+a4pj4nW3N3aXJsXSc7CivmuKk+J1tsdWtld2FybV0nOwor5rirPidbYmVhdGluZyBvZiBvY2Vhbl0nOwor5risPidbbWVhc3VyZV0nOwor5ritPidbbmFtZSBvZiBhIHJpdmVyIGluIHNoYWFueGldJzsKK+a4rj4nW3JpdmVyIGluIHNoYW5kb25nIHByb3ZpbmNlXSc7CivmuK8+J1twb3J0XSc7CivmuLg+J1tzd2ltXSc7CivmuLo+J1tlbmRsZXNzbHkgbG9uZ10nOwor5ri+PidbbXVkZHldJzsKK+a5gz4nW3NvdW5kIG9mIHdhdmVzXSc7CivmuYo+J1twaWVjZSB0b2dldGhlcl0nOwor5rmNPidbcmFwaWQgd2F0ZXIgY3VycmVudF0nOwor5rmOPidbZmx1c2hlZCB3aXRoIGRyaW5rXSc7CivmuZY+J1tsYWtlXSc7CivmuZg+J1todW5hbiBwcm92aW5jZV0nOwor5rmbPidbZGVlcF0nOwor5rmfPidbcml2ZXIgaW4gcWluZ2hhaSBwcm92aW5jZV0nOwor5rmnPidbd2VsbCB1cF0nOwor5rmrPidbYSBzbWFsbCBwb25kXSc7Civmua4+J1tidXJ5XSc7Civmua8+J1tob3Qgd2F0ZXJdJzsKK+a5sj4nW2Zsb3ddJzsKKyMi5rmzPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nIiwKK+a5vj4nW2JheV0nOwor5rm/Pidbd2V0XSc7CisjIua5vz4nW3dldF0nIiwKKyMi5rm/Pidbd2V0XSciLAor5rqMPidbcG91cl0nOwor5rqPPidbcG9vbF0nOwor5rqQPidbc3ByaW5nXSc7CivmupY+J1tydWxlXSc7Civmupg+J1thYnJ1cHRseV0nOwor5rqcPidbc2xpZGVdJzsKK+a6nT4nW2RpdGNoXSc7Civmup8+J1tkcml6emxpbmcgcmFpbl0nOwor5rqiPidbb3ZlcmZsb3ddJzsKK+a6pT4nW2JpZ10nOwor5rqqPidbbW91bnRhaW4gc3RyZWFtXSc7Civmuq8+J1tnbyB1cHN0cmVhbV0nOwor5rqyPidbdXJpbmF0ZV0nOwor5rq2PidbbWVsdF0nOwor5rq3PidbcHJpdnldJzsKK+a6uj4nW2Ryb3duXSc7Civmur0+J1ttb2lzdF0nOwor5ruCPidbdG9ycmVudGlhbF0nOwor5ruEPidbYmx1ZV0nOwor5ruFPidbZXh0aW5ndWlzaF0nOwor5ruJPidbZGVlcF0nOwor5ruLPidbZ3Jvd10nOwor5ruMPidbd2FzaF0nOwor5ruRPidbc2xpcF0nOwor5ruTPidbc2VkaW1lbnRdJzsKK+a7lD4nW292ZXJmbG93XSc7Civmu5U+J1s8YXJjaD4gY291bnR5IGluIHNoYW5kb25nIHByb3ZpbmNlXSc7Civmu50+J1tyYWluaW5nXSc7Civmu54+J1tibG9jayB1cF0nOwor5rusPidbc2hhbmdoYWldJzsKK+a7rz4nW2Jsb2NrIHVwXSc7Civmu7I+J1tzb2FrIHRocm91Z2hdJzsKK+a7tD4nW2RyaXBdJzsKK+a7tz4nW3RoaWNrIGdyYXZ5XSc7Civmu7g+J1tyaXZlcmJhbmtdJzsKK+a7vj4nW3R1cm5dJzsKK+a7vz4nW2ZpbGxdJzsKK+a8gT4nW3RvIGZpc2hdJzsKK+a8gj4nW2Zsb2F0XSc7CivmvIY+J1t2YXJuaXNoXSc7CivmvIk+J1tmaWx0ZXJdJzsKK+a8jz4nW2xlYWtdJzsKK+a8kT4nW3dhdGVyXSc7CivmvJM+J1tyaXZlciBpbiBndWFuZ3hpIHByb3ZpbmNlXSc7CivmvJQ+J1twZXJmb3JtXSc7CivmvJU+J1t0cmFuc3BvcnQgYnkgd2F0ZXJdJzsKK+a8oD4nW2Rlc2VydF0nOwor5ryiPidbY2hpbmVzZSBwZW9wbGVdJzsKK+a8oz4nW2Zsb3dpbmcgd2F0ZXJdJzsKK+a8qz4nW292ZXJmbG93IG9mIHdhdGVyXSc7CivmvKw+J1tzb2FrXSc7CivmvLE+J1tnYXJnbGVdJzsKK+a8sj4nW3Jpc2UgaW4gcHJpY2VdJzsKK+a8uD4nW2dyYWR1YWxseV0nOwor5ry+Pidbb3ZlcmZsb3ddJzsKK+a8vz4nW2FueSB0aGljayBmbHVpZF0nOwor5r2BPidbcml2ZXIgaW4gYW5odWldJzsKK+a9hT4nW3BvdXJdJzsKK+a9lD4nW2NsZWFuXSc7CivmvZg+J1tzdXJuYW1lXSc7CivmvZs+J1toaWRlXSc7CivmvZw+J1toaWRlXSc7CivmvZ8+J1tsYW5kIGludW5kYXRlZCB3aXRoIHNhbHQgZnJvbSB0aV0nOwor5r2kPidbc29mdF0nOwor5r2mPidbdG8gZmxvb2RdJzsKK+a9rT4nW2RlZXAgcG9vbF0nOwor5r2uPidbdGlkZV0nOwor5r2vPidbc3RlZXAgYmFuayBieSBzdHJlYW1dJzsKK+a9sD4nW2Zsb29kaW5nIHJpdmVyXSc7CivmvbQ+J1twb25kXSc7Civmvbg+J1t3ZWVwXSc7Civmvbo+J1tzb3VuZCBvZiBmbG93aW5nIHdhdGVyXSc7Civmvbw+J1toaWdoXSc7CivmvoA+J1thc3RyaW5nZW50XSc7CivmvoE+J1thc3RyaW5nZW50XSc7CivmvoI+J1tjbGVhciBhbmQgc3RpbGwgd2F0ZXJdJzsKK+a+hD4nW3B1cmlmeSB3YXRlciBieSBhbGxvd2luZyBzZWRpbWVuXSc7CivmvoY+J1tzcHJheV0nOwor5r6OPidbc3BsYXR0ZXJdJzsKK+a+kT4nW3NsaWRlXSc7Civmvpc+J1ticm9va10nOwor5r6hPidbd2FzaF0nOwor5r6jPidbY2xlYW5zZV0nOwor5r6kPidbbWFyc2hdJzsKKyMi5r6qPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmvrE+J1tzZWRpbWVudF0nOwor5r6zPidbaW5sZXRdJzsKK+a+uT4nW2NhbG1dJzsKK+a/gD4nW2Fyb3VzZV0nOwor5r+BPidbbXVkZHldJzsKK+a/gj4nW3dhdGVyZmFsbF0nOwor5r+DPidbdGhpY2tdJzsKK+a/hj4nW3JpdmVyIGJhbmtdJzsKK+a/lD4nW21hbnldJzsKK+a/lT4nW3dldF0nOwor5r+YPidbbXVkXSc7Civmv5s+J1tkcml6emxpbmddJzsKK+a/nz4nW2hlbHBdJzsKK+a/oD4nW21vYXRdJzsKK+a/oT4nW2ltbWVyc2VdJzsKK+a/pD4nW2xhcmdlIHdhdmVzXSc7Civmv6s+J1tmbG9vZF0nOwor5r+sPidbZHJlZGdlXSc7Civmv64+J1tjb3VudHkgaW4gSGVuYW4gcHJvdmluY2VdJzsKK+a/rz4nW3dhc2ggb3V0XSc7Civmv7E+J1tiZWFjaF0nOwor5r+zPidbaGlkZV0nOwor5r+2PidbYnJvYWRdJzsKK+a/uj4nW3Nwcmlua2xlXSc7Civmv74+J1tzdHJhaW4gb3V0XSc7CivngIE+J1t3YXZlc10nOwor54CJPidbZHJhaW4gb2ZmXSc7CivngIs+J1tqdWljZV0nOwor54CPPidbY2xlYXJdJzsKK+eAkT4nW3dhdGVyZmFsbF0nOwor54CVPidbYXBwcm9hY2hdJzsKK+eAmD4nW3JpdmVyIGluIGppYW5neGkgcHJvdmluY2VdJzsKK+eAmj4nW3Zhc3RdJzsKK+eAmz4nW3NlYV0nOwor54CdPidbdHJpY2tsZV0nOwor54CePidbcG9vbCBpbiBhIHJpdmVyXSc7CivngJ8+J1tzb3VuZCBvZiBiZWF0aW5nIHdpbmQgYW5kIHJhaW5dJzsKK+eApj4nW3BvbmRdJzsKK+eApz4nW3JhaW5pbmddJzsKK+eArD4nW3N3aWZ0IGN1cnJlbnRdJzsKK+eAsD4nW292ZXJmbG93XSc7CivngLI+J1t3YXZlc10nOwor54C+Pidbb3ZlcmZsb3dpbmddJzsKK+eBjD4nW3BvdXJdJzsKK+eBkT4nW3Nwcmlua2xlXSc7CivngZg+J1tiYW5rXSc7CivngaM+J1tiYXldJzsKK+eBqz4nW2ZpcmVdJzsKK+eBrz4nW2xhbnRlcm5dJzsKK+eBsD4nW2FzaGVzXSc7Civngbg+J1tjYXV0ZXJpemUgd2l0aCBtb3hhXSc7Civngbw+J1tidXJuXSc7Civngb0+J1tjYWxhbWl0eV0nOwor54KJPidbZmlyZXBsYWNlXSc7Civngoo+J1tjb29rXSc7Civngo4+J1tmbGFtZV0nOwor54KSPidbZnJ5XSc7Civngpk+J1tyb2FzdF0nOwor54KsPidbdG9yY2hdJzsKK+eCrT4nW2NoYXJjb2FsXSc7Civngq4+J1tsYXJnZSBndW5dJzsKK+eCrz4nW2JyaWdodF0nOwor54KzPidbYnJpZ2h0XSc7Civngrg+J1tmcnkgaW4gb2lsXSc7Civngrk+J1tkb3RdJzsKK+eCuj4nW2RvXSc7Civng4g+J1tmaWVyeV0nOwor54OLPidbYm9hc3RdJzsKK+eDjz4nW2Nyb3ddJzsKK+eDmT4nW2JyYW5kXSc7Civng50+J1tyaXNlXSc7Civng58+J1tzbW9rZV0nOwor54OxPidbYnJpZ2h0XSc7Civng7k+J1tib2lsXSc7Civng70+J1tzaWduYWwgZmlyZV0nOwor54SJPidbdGhlcmV1cG9uXSc7CivnhJQ+J1tmbGFtZV0nOwor54SZPidbZHJ5IG92ZXIgc2xvdyBmaXJlXSc7CivnhJo+J1tidXJuXSc7CivnhJw+J1tmaXJlXSc7CivnhKE+J1tuZWdhdGl2ZV0nOwor54SmPidbYnVybmVkXSc7CivnhLY+J1t5ZXNdJzsKK+eEvD4nW2J1cm5dJzsKK+eFiT4nW3NtZWx0XSc7CivnhYw+J1ticmlnaHRdJzsKK+eFjj4nW2ZyeSBpbiBmYXQgb3Igb2lsXSc7CivnhZU+J1ticmlnaHRdJzsKK+eFlj4nW3dhcm1dJzsKK+eFmT4nW3Ntb2tlXSc7CivnhaI+J1thbG9uZV0nOwor54WkPidbY29hbF0nOwor54WlPidbc2hpbmluZ10nOwor54WmPidba2luZF0nOwor54WnPidbc2hpbmVdJzsKK+eFqT4nW2JvdGhlcl0nOwor54WsPidbcm9hc3RdJzsKK+eFrj4nW2Nvb2tdJzsKK+eFvT4nW3N0aXIgdXBdJzsKK+eGhD4nW3B1dCBvdXRdJzsKK+eGiD4nW2JyaWdodF0nOwor54aKPidbYmVhcl0nOwor54aPPidbc21va2VdJzsKK+eGlD4nW21lbHRdJzsKKyMi54aVPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnhpk+J1ticmlnaHRdJzsKK+eGnz4nW3dlbGwgY29va2VkXSc7Civnhqg+J1tpcm9uXSc7Civnhqw+J1tjb29rIGRvd25dJzsKK+eGsT4nW2hvdF0nOwor54a5PidbZGltIGxpZ2h0XSc7Civnhr4+J1tidXJuaW5nIGhvdF0nOwor54eDPidbYnVybl0nOwor54eIPidbbGFudGVybl0nOwor54eJPidbaGVhdCB3aXRoIGZpcmVdJzsKK+eHjj4nW2J1cm5dJzsKK+eHkD4nW3Bob3NwaG9ydXNdJzsKK+eHkj4nW2J1cm5dJzsKK+eHlD4nW3RvIHJvYXN0XSc7Civnh5U+J1tzd2FsbG93IChiaXJkKV0nOworIyLnh5c+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eHnz4nW2VuY2FtcG1lbnRdJzsKK+eHoD4nW3dhcm1dJzsKK+eHpT4nW2RyeV0nOwor54emPidbdml2aWRdJzsKK+eHpz4nW2ZsaW50c3RvbmVdJzsKK+eHrD4nW2J1cm4gZG93bl0nOwor54etPidbY2FuZGxlXSc7Civnh64+J1toYXJtb25pemVdJzsKKyMi54e1PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnh7k+J1tmaXJlXSc7Civnh7s+J1tzbW9rZV0nOwor54e8PidbY2luZGVyc10nOwor54e/Pidbc2hpbmVdJzsKK+eIhj4nW2NyYWNrbGVdJzsKK+eIjT4nW3NoaW5lXSc7CivniJA+J1tmaXJlcGxhY2VdJzsKK+eImz4nW3JvdHRlbl0nOwor54ioPidbb3Zlbl0nOwor54iqPidbY2xhd10nOwor54isPidbY3Jhd2xdJzsKK+eIrT4nW2Rpc3B1dGVdJzsKK+eIsD4nW2xlYWQgb24gdG9dJzsKK+eIsj4nW2RvXSc7CivniLU+J1tmZXVkYWwgdGl0bGUgb3IgcmFua10nOwor54i2PidbZmF0aGVyXSc7CivniLo+J1tmYXRoZXJdJzsKK+eIuz4nW2RpYWdyYW1zIGZvciBkaXZpbmF0aW9uXSc7CivniLw+J1tjaG9wcGluZyBib2FyZCBvciBibG9ja10nOwor54i9PidbaGFwcHldJzsKK+eIvj4nW3lvdV0nOwor54i/PidbaGFsZiBvZiB0cmVlIHRydW5rXSc7CivniYA+J1tiZWRdJzsKK+eJhj4nW3dhbGxdJzsKK+eJhz4nW3NsaWNlXSc7CivniYg+J1twcmludGluZyBibG9ja3NdJzsKK+eJiz4nW21lbW9yYW5kdW1dJzsKK+eJjD4nW3NpZ25ib2FyZF0nOwor54mSPidbZG9jdW1lbnRzXSc7CivniZg+J1t3cml0aW5nIHRhYmxldF0nOwor54mZPidbdG9vdGhdJzsKK+eJmz4nW2Nvd10nOwor54mdPidbZmVtYWxlIG9mIHNwZWNpZXNdJzsKK+eJnz4nW21ha2VdJzsKK+eJoT4nW21hbGUgb2YgYW5pbWFsc10nOwor54miPidbcHJpc29uXSc7Civniac+J1t0ZW5kIGNhdHRsZV0nOwor54mpPidbdGhpbmddJzsKK+eJsj4nW3NhY3JpZmljaWFsIGFuaW1hbF0nOwor54m0PidbZ29yZV0nOwor54m5Pidbc3BlY2lhbF0nOwor54m9PidbZHJhZ10nOwor54m+PidbdG8gb3Bwb3NlXSc7CivnioA+J1tyaGlub2Nlcm9zXSc7CivnioE+J1twbG93XSc7CivnioI+J1twbG93XSc7Civnioc+J1tydW4gZmFzdF0nOwor54qSPidbZW50ZXJ0YWluIHZpY3RvcmlvdXMgc29sZGllcnNdJzsKK+eKlj4nW2JyaW5kbGVkIG94XSc7CivniqA+J1tzYWNyaWZpY2VdJzsKK+eKoj4nW2NhbGZdJzsKK+eKpz4nW3NhY3JpZmljZV0nOwor54qsPidbZG9nXSc7Civniq8+J1tjb21taXQgY3JpbWVdJzsKK+eKsj4nW3dvbGZdJzsKK+eKtj4nW2Zvcm1dJzsKK+eKuT4nW2xpa2VdJzsKK+eLgj4nW2luc2FuZV0nOwor54uDPidbdG8gY292ZXRdJzsKK+eLhD4nW3RyaWJlIGZyb20gbm9ydGhlcm4gY2hpbmFdJzsKK+eLhj4nW3Bla2luZXNlIGRvZ10nOwor54uOPidbYmUgZmFtaWxpYXIgd2l0aF0nOwor54uQPidbc3BlY2llcyBvZiBmb3hdJzsKK+eLkj4nW2JhYm9vbl0nOwor54uXPidbZG9nXSc7Civni5k+J1thcGVdJzsKKyMi54ubPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivni6A+J1t2aWNpb3VzXSc7Civni6E+J1tjdW5uaW5nXSc7Civni6I+J1thbmltYWwgbmFtZV0nOwor54upPidbd2ludGVyIGh1bnRpbmddJzsKK+eLrD4nW2Fsb25lXSc7Civni60+J1tuYXJyb3ddJzsKK+eLtz4nW3Jhc2hdJzsKK+eLuD4nW2ZveF0nOwor54u5PidbbmFycm93XSc7Civni7w+J1t3b2xmXSc7Civni70+J1tsZWdlbmRhcnkgYW5pbWFsIHdpdGggc2hvcnQgZm9yZV0nOwor54yKPidbbGlvbl0nOwor54yWPidbbWFkXSc7CivnjJc+J1tleGNsYW1hdGlvbiBvZiBhZG1pcmF0aW9uXSc7CivnjJs+J1t2aW9sZW50XSc7CivnjJw+J1tndWVzc10nOwor54ydPidbYWJydXB0bHldJzsKK+eMnz4nW2h1bnRdJzsKK+eMpT4nW3Z1bGdhcl0nOwor54ypPidbc3BlY2llcyBvZiBvcmFuZ3V0YW5dJzsKK+eMqj4nW3BpZ10nOwor54yrPidbY2F0XSc7CivnjK4+J1tvZmZlcl0nOworIyLnjK8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eMtD4nW21vbmtleV0nOwor54y2PidbbGlrZV0nOwor54y3PidbcGxhbl0nOwor54y+PidbY3JhZnR5XSc7CivnjL8+J1thcGVdJzsKK+eNhD4nW3ByaXNvbl0nOwor542FPidbbGlvbl0nOwor542OPidbcHJpemVdJzsKK+eNjz4nW3RoZSBwYW50aGVyXSc7CivnjZc+J1t1bnJ1bHldJzsKK+eNoz4nW2JlYXN0XSc7Civnjag+J1thbG9uZV0nOwor542qPidbc2x5XSc7CivnjbA+J1tmZXJvY2lvdXMgYXBwZWFyYW5jZV0nOwor542yPidbb2J0YWluXSc7CivnjbU+J1todW50XSc7Civnjbg+J1tiZWFzdF0nOwor5426Pidbb3R0ZXJdJzsKK+eNuz4nW29mZmVyXSc7CivnjoQ+J1tkZWVwXSc7Civnjoc+J1t0byBsZWFkXSc7Civnjok+J1tqYWRlXSc7Civnjos+J1traW5nXSc7CivnjpY+J1tibGFjay1jb2xvcmVkIGphZGVdJzsKK+eOqT4nW3BsYXkgd2l0aF0nOwor546yPidbdGlua2xpbmcgb2YgamFkZV0nOwor546zPidbdG9ydG9pc2Ugc2hlbGxdJzsKK+eOuz4nW2dsYXNzXSc7Civnj4A+J1thbWJlcl0nOwor54+CPidbaW5mZXJpb3Iga2luZCBvZiBqYWRlXSc7Civnj4g+J1tvcm5hbWVudCBhdHRhY2hlZCB3b21hbicncyBoYWlycGldJzsKK+ePij4nW2NvcmFsXSc7Civnj40+J1twcmVjaW91c10nOwor54+OPidbcHJlY2lvdXNdJzsKK+ePnj4nW2tpbmQgb2YgbmVja2xhY2VdJzsKK+ePoD4nW3ByZWNpb3VzIHN0b25lXSc7Civnj6U+J1tlYXIgb3JuYW1lbnRdJzsKK+ePqj4nW2phZGUgdGFibGUgY29uZmVycmVkIHVwb24gZmV1ZGFsXSc7Civnj60+J1tjbGFzc10nOwor54+uPidbamFkZSBvcm5hbWVudF0nOwor54+xPidbbmVja2xhY2UgbWFkZSBvZiBwcmVjaW91cyBzdG9uZXNdJzsKKyMi54+4PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnj74+J1thcHBlYXJdJzsKK+eQgz4nW2JhbGxdJzsKK+eQhT4nW3ZhcmlldHkgb2Ygd2hpdGUgY2FybmVsaWFuXSc7CivnkIY+J1tyZWFzb25dJzsKK+eQiT4nW3NwYXJrbGluZyBzdG9uZV0nOwor55CiPidbcG9saXNoIGphZGVdJzsKK+eQpT4nW2pld2VsIGluIHNoYXBlIG9mIHRpZ2VyXSc7CivnkLI+J1tuZWNrbGFjZV0nOwor55CzPidbYmVhdXRpZnVsIGphZGVdJzsKK+eQtD4nW2NoaW5lc2UgbHV0ZSBvciBndWl0YXJdJzsKK+eQtT4nW2d1aXRhci1saWtlIGluc3RydW1lbnRdJzsKK+eQtj4nW2d1aXRhci1saWtlIGluc3RydW1lbnRdJzsKK+eQuj4nW2VuYW1lbF0nOwor55C/PidbYnJpZ2h0XSc7CivnkYE+J1tmaW5lIHBpZWNlIG9mIGphZGVdJzsKK+eRlT4nW2ZsYXcgaW4gZ2VtXSc7CivnkZk+J1thZ2F0ZV0nOwor55GaPidbY29yYWxdJzsKK+eRmz4nW2x1c3RlciBvZiBnZW1dJzsKK+eRnD4nW2ZsYXdsZXNzIGdlbSBvciBqZXdlbF0nOwor55GePidbZmVsaWNpdG91cyBvbWVuXSc7CivnkZ8+J1tsYXJnZSBzdHJpbmdlZCBtdXNpY2FsIGluc3RydW1lbnRdJzsKK+eRoD4nW3ByZWNpb3VzIHN0b25lXSc7CivnkaM+J1tmcmFnbWVudHNdJzsKK+eRpD4nW3ByZWNpb3VzIGphZGVdJzsKK+eRqT4nW2x1c3RyZSBvZiBnZW1zXSc7Civnkao+J1thZ2F0ZV0nOwor55GvPidba2luZCBvZiB3aGl0ZSBjb3JuZWxpYW5dJzsKK+eRsD4nW2V4dHJhb3JkaW5hcnldJzsKK+eRsz4nW2x1c3RlciBvZiBnZW1dJzsKK+eRtj4nW3ByZWNpb3VzIGphZGVdJzsKK+eRvj4nW2JyaWxsaWFuY2Ugb2YgZ2Vtc10nOwor55KDPidbZ2xhc3NdJzsKK+eSiz4nW2phZGUgcGxheXRoaW5nXSc7Civnkp4+J1t1bnBvbGlzaGVkIGdlbV0nOwor55KiPidbcHJlY2lvdXMgc3RvbmVdJzsKK+eSpz4nW3BpZWNlIG9mIGphZGUgd2l0aCBob2xlIGluIGl0XSc7CivnkrA+J1tqYWRlIHJpbmcgb3IgYnJhY2VsZXRdJzsKK+eSvT4nW2ltcGVyaWFsIHNpZ25ldF0nOwor55OKPidbamFkZV0nOwor55OPPidbZ2VtIGN1dCBsaWtlIGRyYWdvbl0nOwor55OUPidbbmVja2xhY2UgbWFkZSBvZiBwcmVjaW91cyBzdG9uZXNdJzsKK+eTnD4nW21lbG9uXSc7Civnk6A+J1tib3R0bGUgZ291cmRdJzsKK+eToj4nW2xhZGxlIG1hZGUgZnJvbSBkcmllZCBnb3VyZF0nOwor55OjPidbcGV0YWxdJzsKK+eTpj4nW3RpbGVdJzsKK+eTpz4nW2RlY2FncmFtXSc7Civnk6k+J1traWxvd2F0dF0nOwor55OuPidbZWFydGhlbiBqYXJdJzsKK+eTsD4nW1tub3QgZm91bmQgaW4gZGljdGlvbmFyeV1dJzsKK+eTsT4nW21pbGxpZ3JhbV0nOworIyLnk7I+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eTtj4nW2p1Z10nOwor55O3PidbY3JvY2tlcnldJzsKK+eTuD4nW2hlY3RvZ3JhbV0nOwor55SDPidbYnJpY2sgd2FsbCBvZiBhIHdlbGxdJzsKK+eUhD4nW2V4YW1pbmVdJzsKK+eUhT4nW2NlbnRpZ3JhbV0nOwor55SMPidbYm93bF0nOwor55SNPidbcmFmdGVycyBzdXBwb3J0aW5nIHJvb2YgdGlsZXNdJzsKK+eUjj4nW2JyaWNrXSc7CivnlJE+J1tib2lsZXIgZm9yIHN0ZWFtaW5nIHJpY2VdJzsKK+eUkz4nW2dsYXplZCB0aWxlc10nOwor55SVPidbZWFydGhlbiBqYXJdJzsKK+eUmD4nW3N3ZWV0bmVzc10nOwor55SaPidbZ3JlYXQgZXh0ZW50XSc7CivnlJw+J1tzd2VldF0nOwor55SePidbdGFzdGVdJzsKK+eUnz4nW2xpZmVdJzsKK+eUoz4nW2dpdmUgYmlydGhdJzsKK+eUpT4nW3Npc3RlcicncyBjaGlsZF0nOwor55SmPidbYmUgcmVib3JuXSc7CivnlKg+J1t1c2VdJzsKK+eUqz4nW2JlZ2luXSc7CivnlKw+J1twYXRoXSc7CivnlLA+J1tmaWVsZF0nOwor55SxPidbY2F1c2VdJzsKK+eUsj4nW2FybW9yXSc7CivnlLM+J1t0byBzdGF0ZSB0byBhIHN1cGVyaW9yXSc7CivnlLc+J1ttYWxlXSc7CivnlLg+J1tzdWJ1cmJzIG9mIGNhcGl0YWxdJzsKK+eUuj4nW3JhaXNlZCBwYXRoIGJldHdlZW4gZmllbGRzXSc7CivnlLs+J1twYWludGluZ10nOwor55S8PidbcmFpc2VkIHBhdGggYmV0d2VlbiBmaWVsZHNdJzsKK+eVhD4nW3N0b3BdJzsKK+eVhj4nW2NoaW5lc2UgbGFuZCBtZWFzdXJlXSc7CisjIueViT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55WKPidbcGxvd10nOwor55WLPidbdGlsbCBsYW5kXSc7CivnlYw+J1tib3VuZGFyeV0nOworIyLnlY0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eVjz4nW2ZlYXJdJzsKK+eVkT4nW2RyeSAoYXMgb3Bwb3NlZCB0byByaWNlKSBmaWVsZF0nOwor55WUPidbYm91bmRhcnkgcGF0aCBkaXZpZGluZyBmaWVsZHNdJzsKK+eVmT4nW3N0b3BdJzsKK+eVmj4nW3N0cmF3IGJhc2tldF0nOwor55WbPidbYm9yZGVyXSc7CivnlZw+J1tsaXZlc3RvY2tdJzsKK+eVnT4nW2NoaW5lc2UgbGFuZCBtZWFzdXJlXSc7CivnlaA+J1tnYXJkZW5dJzsKK+eVoj4nW2VuZF0nOwor55WkPidbcGxhY2UgZm9yIHdvcnNoaXBwaW5nIHRoZSBoYXZlbl0nOwor55WlPidbYXBwcm94aW1hdGVseV0nOwor55WmPidbc2VjdGlvbnMgaW4gdmVnZXRhYmxlIGZhcm1dJzsKK+eVpz4nW2FwcHJveGltYXRlbHldJzsKKyMi55WpPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnlao+J1t0YWtlIHR1cm5zXSc7Civnlas+J1tkZWxpbmVhdGVdJzsKKyMi55WtPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnlbA+J1tkaWZmZXJlbnRdJzsKK+eVsz4nW3JlcGVhdF0nOwor55W0PidbZmFybWxhbmRdJzsKK+eVtj4nW2JlYXJdJzsKK+eVtz4nW3JhaXNlZCBwYXRoIGJldHdlZW4gZmllbGRzXSc7Civnlbg+J1tvZGRdJzsKK+eVvz4nW2ltcGVyaWFsIGRvbWFpbl0nOwor55aCPidbcmVwZWF0XSc7CivnloY+J1tib3VuZGFyeV0nOwor55aHPidbZmFybWxhbmRdJzsKK+eWiT4nW3JlcGVhdF0nOwor55aKPidbcmVwZWF0XSc7Civnlos+J1tyb2xsXSc7Civnlo4+J1tuZWdsZWN0XSc7Civnlo8+J1tuZWdsZWN0XSc7CivnlpE+J1tkb3VidF0nOwor55aUPidbY2FyYnVuY2xlXSc7Civnlpo+J1tjaHJvbmljIGRpc2Vhc2VdJzsKK+eWnT4nW2hlcm5pYV0nOwor55ajPidbd2FydF0nOwor55alPidbc2NhYmllc10nOwor55arPidbZXBpZGVtaWNdJzsKK+eWsT4nW2FjbmVdJzsKK+eWsj4nW2ZlZWwgdGlyZWRdJzsKK+eWsz4nW2NoaWxkaG9vZCBkaXNlYXNlc10nOwor55a1PidbZmxhd10nOwor55a4PidbamF1bmRpY2VdJzsKK+eWuT4nW21lYXNsZXNdJzsKK+eWvD4nW2FjaGVzXSc7Civnlr0+J1t1bGNlcl0nOwor55a+PidbaWxsbmVzc10nOwor55eCPidbc2NhYl0nOwor55eDPidbaW5kaWdlc3Rpb25dJzsKK+eXhT4nW2lsbG5lc3NdJzsKK+eXhz4nW2Rpc2Vhc2VdJzsKK+eXij4nW2JlIGhlYWxlZF0nOwor55eNPidbd291bmRdJzsKK+eXkj4nW2l0Y2hdJzsKK+eXlD4nW2hlbW9ycmhvaWRzXSc7Civnl5U+J1tzY2FyXSc7Civnl5g+J1tzbWFsbHBveF0nOwor55eZPidbY29udnVsc2lvbnNdJzsKK+eXmz4nW3BhaW5dJzsKK+eXnj4nW2R5c3BlcHNpYV0nOwor55eiPidbZHlzZW50cnldJzsKK+eXoz4nW3Nwb3RzXSc7Civnl6k+J1t0aGluXSc7Civnl7A+J1twaGxlZ21dJzsKK+eXsj4nW3BvY2stbWFya2VkXSc7Civnl7M+J1twb2NrLW1hcmtlZF0nOwor55e0PidbZm9vbGlzaF0nOwor55e6PidbcGFyYWx5c2lzXSc7Civnl7w+J1tjaHJvbmljIGRpc2Vhc2VdJzsKK+eXvj4nW2Nocm9uaWMgaWxsbmVzc10nOwor55e/PidbcGFyYWx5c2lzXSc7CivnmIE+J1tmZWVsIHRpcmVkXSc7CivnmIk+J1tnZXQgd2VsbF0nOwor55iLPidbY3JhenldJzsKK+eYjT4nW3VsY2Vyc10nOwor55ifPidbZXBpZGVtaWNdJzsKK+eYoD4nW3RoaW5dJzsKK+eYoT4nW3R1bW9yXSc7CivnmKI+J1tzY2FyXSc7CivnmKQ+J1t0dW1vcl0nOwor55inPidbaW50ZXJtaXR0ZW50IGZldmVyXSc7CivnmLA+J1tzY3JvZnVsYV0nOwor55i0PidbbWFsYXJpYSBwZXN0aWxlbnRpYWwgdmFwb3JzXSc7CivnmLs+J1tmaXN0dWxhXSc7CivnmYI+J1tiZSBoZWFsZWRdJzsKK+eZhj4nW2NvbnN1bXB0aW9uXSc7CivnmYc+J1tlcGlsZXBzeV0nOwor55mIPidbYWJyb2dhdGVdJzsKK+eZjD4nW2NhbmNlcl0nOwor55mSPidbZ2V0IHdlbGxdJzsKK+eZlj4nW2NyYXZpbmddJzsKK+eZmD4nW3NvcmVdJzsKK+eZnD4nW2VyeXRoZW1hXSc7CivnmaE+J1tzaWxseV0nOwor55miPidbaXRjaF0nOwor55mnPidbc2Nyb2Z1bG91cyBsdW1wcyBvciBzd2VsbGluZ3NdJzsKK+eZqD4nW3F1aWNrbHldJzsKK+eZqT4nW2xlcHJvc3ldJzsKK+eZqj4nW3NwYXNtc10nOwor55msPidbcmluZ3dvcm1zXSc7CivnmbA+J1tjYXJidW5jbGVdJzsKK+eZsj4nW2NyYXp5XSc7CivnmbY+J1tsZWdzXSc7Civnmbg+J1tsYXN0IG9mIHRlbiBjZWxlc3RpYWwgc3RlbXNdJzsKK+eZuj4nW2lzc3VlXSc7Civnmbs+J1tyaXNlXSc7Civnmbw+J1tpc3N1ZV0nOwor55m9Pidbd2hpdGVdJzsKK+eZvj4nW29uZSBodW5kcmVkXSc7CivnmoA+J1trZXJuZWxdJzsKK+eagz4nW2NvdW50ZW5hbmNlXSc7CivnmoQ+J1twb3NzZXNzaXZlXSc7CivnmoY+J1thbGxdJzsKK+eahz4nW3JveWFsXSc7Civnmog+J1tmb2xsb3ddJzsKK+eaiz4nW3RoZSBoaWdoIGxhbmQgYWxvbmcgYSByaXZlcl0nOwor55qOPidbd2hpdGVdJzsKK+eakD4nW3RoZSBoaWdoIGxhbmQgYWxvbmcgYSByaXZlcl0nOwor55qTPidbYnJpZ2h0XSc7CivnmpY+J1thbmh1aSBwcm92aW5jZV0nOwor55qZPidbd2hpdGVdJzsKK+eamj4nW2JyaWxsaWFudCB3aGl0ZV0nOwor55quPidbc2tpbl0nOwor55qwPidbcGltcGxlc10nOwor55q0PidbY2hhcHBlZF0nOwor55q3PidbZHJ1bV0nOwor55q4PidbY3JhY2tdJzsKK+eauT4nW2NyYWNrXSc7Civnmro+J1t3cmlua2xlc10nOwor55q/Pidbc2hhbGxvdyBjb250YWluZXJdJzsKK+ebgj4nW2Jhc2luXSc7Civnm4M+J1tnbGFzc10nOwor55uGPidbYmFzaW5dJzsKK+ebiD4nW2ZpbGxdJzsKK+ebij4nW3Byb2ZpdF0nOwor55uNPidbd2hhdD8gd2h5IG5vdD8gY29ycmVzcG9uZF0nOwor55uSPidbc21hbGwgYm94IG9yIGNhc2VdJzsKK+eblj4nW2NvdmVyXSc7Civnm5c+J1tyb2JdJzsKK+ebmz4nW2FidW5kYW50XSc7Civnm5w+J1tyb2JdJzsKK+ebnj4nW3NtYWxsIGN1cCBvciBjb250YWluZXJdJzsKK+ebnz4nW3N3ZWFyXSc7Civnm6E+J1tleGhhdXN0XSc7Civnm6M+J1tzdXBlcnZpc2VdJzsKK+ebpD4nW3RyYXldJzsKK+ebpT4nW3dhc2hdJzsKK+ebpz4nW2NvdHRhZ2VdJzsKK+ebqj4nW3RvIHRvc3MgYWJvdXRdJzsKK+ebrj4nW2V5ZV0nOwor55uyPidbYmxpbmRdJzsKK+ebtD4nW3N0cmFpZ2h0XSc7Civnm7g+J1ttdXR1YWxdJzsKK+ebuz4nW2dsYXJlXSc7Civnm74+J1tzaGllbGRdJzsKK+ecgT4nW3Byb3ZpbmNlXSc7CivnnIQ+J1t0byBsb29rIGFza2FuY2VdJzsKK+echz4nW2JsaW5kIGluIG9uZSBleWVdJzsKK+eciD4nW2dsb2F0XSc7CivnnIk+J1tleWVicm93c10nOwor55yLPidbbG9va10nOwor55yMPidbY291bnR5XSc7CivnnJs+J1tkaW1dJzsKKyMi55yePidbcmVhbF0nIiwKK+ecnz4nW3JlYWxdJzsKK+ecoD4nW2Nsb3NlIGV5ZXNdJzsKKyMi55ykPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnnKU+J1tleWUgc29ja2V0c10nOwor55ymPidbY29ybmVyIG9mIHRoZSBleWVzXSc7CivnnKk+J1tjb25mdXNlXSc7CivnnLc+J1t0YWtlIGludGVyZXN0IGluXSc7CivnnLg+J1twdXBpbCBvZiBleWVdJzsKK+ecuj4nW2xvb2sgYXRdJzsKK+ecvD4nW2V5ZV0nOwor552APidbbWFrZSBtb3ZlXSc7CivnnYc+J1tsb29rIGF0XSc7CivnnZo+J1tjb3JuZXIgb2YgZXllXSc7CivnnZs+J1tleWViYWxsXSc7CivnnaE+J1tzbGVlcF0nOwor552jPidbc3VwZXJ2aXNlXSc7CivnnaU+J1tsb29rIGFza2FuY2UgYXRdJzsKK+edpj4nW2ZyaWVuZGx5XSc7Civnnag+J1tsb29rIGFza2FuY2UgYXRdJzsKK+edqz4nW2V5ZWxhc2hlc10nOwor5525PidbbG9vayBhdF0nOwor552+PidbdGVzdGljbGVdJzsKK+edvz4nW3NocmV3ZF0nOwor556LPidbZ2xhcmUgd2l0aCBhbmdlcl0nOwor556OPidbYmxpbmRdJzsKK+eekT4nW2Nsb3NlIGV5ZXNdJzsKK+eenj4nW2RlY2VpdmVdJzsKK+eeoD4nW2xvb2sgYXRdJzsKK+eepT4nW3Rha2UgZmxlZXRpbmcgZ2xhbmNlIGF0XSc7Civnnqw+J1t3aW5rXSc7Civnnq0+J1ticmlnaHRdJzsKK+eesD4nW3dhdGNoXSc7CivnnrM+J1twdXBpbCBvZiBleWVdJzsKK+eetj4nW2RpbV0nOworIyLnnrY+J1tkaW1dJyIsCivnnrs+J1tsb29rXSc7Civnnrw+J1tleWVsaWRdJzsKK+eevT4nW2JsaW5kXSc7Civnnr8+J1tzdXJuYW1lXSc7Civnn4c+J1tzdHVwaWRdJzsKK+efjT4nW2xvb2sgYWJvdXQgaW4gZmlyZ2h0IG9yIGFsYXJtXSc7Civnn5c+J1tzdHJhaWdodF0nOwor55+aPidbd2F0Y2ggY2FyZWZ1bGx5XSc7Civnn5s+J1tzcGVhcl0nOwor55+cPidbcGl0eV0nOwor55+iPidbYXJyb3ddJzsKK+efoz4nW3BhcnRpY2xlIG9mIGNvbXBsZXRlZCBhY3Rpb25dJzsKK+efpT4nW2tub3ddJzsKK+efpz4nW211Y2ggbW9yZV0nOwor55+pPidbY2FycGVudGVyJydzIHNxdWFyZV0nOwor55+tPidbc2hvcnRdJzsKK+efrj4nW3Nob3J0XSc7Civnn68+J1tjb3JyZWN0XSc7Civnn7M+J1tzdG9uZV0nOwor55+8Pidbc3RvbmUgYnJpZGdlXSc7CivnoII+J1tzYW5kXSc7CivnoIw+J1tzdG9uZSBzdGVwc10nOwor56CSPidbYXJzZW5pY10nOwor56CUPidbZ3JpbmRdJzsKK+eglT4nW2JyZWFrXSc7CivnoKA+J1tyb2NreV0nOwor56ClPidbd2hldHN0b25lXSc7CivnoKY+J1tzdG9ja2FkZV0nOwor56CnPidbYW52aWxdJzsKK+egsj4nW2d1bl0nOwor56C0PidbYnJlYWtdJzsKK+eguj4nW3doZXRzdG9uZV0nOwor56C/PidbbWluZV0nOwor56GFPidbc2lsaWNvbl0nOwor56GdPidbc2FsdHBldGVyXSc7Civnoas+J1tzdWxmdXJdJzsKK+ehrD4nW2hhcmRdJzsKK+ehrz4nW2lua3N0b25lXSc7CisjIuehsj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLnobQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ehvD4nW2JvcmF4XSc7CivnooE+J1tjaGVzc10nOwor56KGPidbYXJyb3ctdGlwXSc7Civnooc+J1thbmNob3JdJzsKK+eijD4nW3JvdWdoXSc7Civnoo0+J1tvYnN0cnVjdF0nOwor56KOPidbYnJlYWtdJzsKK+eikT4nW3N0b25lIHRhYmxldF0nOwor56KTPidbcGVzdGxlXSc7CisjIueilT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56KXPidbYm93bF0nOwor56KaPidbc3VidXJiXSc7CivnoqM+J1tzdG9uZSB0YWJsZXRdJzsKK+eipz4nW2phZGVdJzsKK+eiqT4nW2dyZWF0XSc7Civnoqo+J1tzdG9uZSBzbGFiIHVzZWQgZm9yIHdhc2hpbmcgY2xvdF0nOwor56KvPidbYWdhdGVdJzsKKyMi56K1PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnoro+J1tzdXJlXSc7Civnorw+J1tudW1iZXJdJzsKK+eivj4nW3JvbGxlcl0nOwor56OBPidbbWFnbmV0aWNdJzsKK+ejhT4nW3BvdW5kXSc7CisjIuejhj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56OKPidbcGlsZSBvZiByb2NrcyBvciBzdG9uZXNdJzsKK+ejiz4nW3BvbGlzaF0nOwor56OQPidbbGFyZ2Ugcm9ja10nOwor56ORPidbc3RvbmUgbWlsbF0nOwor56OUPidbZG93bndhcmQgc3Ryb2tlIHNsYW50aW5nIHJpZ2hdJzsKK+ejmj4nW3RpbGVdJzsKK+ejpz4nW3NhbmQgYW5kIGdyYXZlbF0nOwor56OoPidbZ3JpbmRdJzsKK+ejrD4nW211c2ljYWwgaW5zdHJ1bWVudF0nOwor56OvPidbamV0dHldJzsKK+ejtD4nW3N0ZXBzIG9uIGxlZGdlXSc7Civno70+J1tiYXJyZW4gbGFuZF0nOwor56SBPidbcmVlZl0nOworIyLnpIc+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ekjj4nW2ZvdW5kYXRpb24gc3RvbmVdJzsKKyMi56SOPidbZm91bmRhdGlvbiBzdG9uZV0nIiwKKyMi56SSPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnpJk+J1tvYnN0cnVjdF0nOwor56SmPidbbWluZV0nOwor56SqPidbd2hldHN0b25lXSc7CivnpKs+J1tncmF2ZWxdJzsKK+ekrD4nW2FsdW1dJzsKK+ekuj4nW3Nob3ddJzsKK+ekvD4nW3NvY2lhbCBjdXN0b21dJzsKK+ekvj4nW2dvZCBvZiB0aGUgc29pbCBhbmQgYWx0YXJzIHRvIGhpbV0nOwor56WAPidbdG8gc2FjcmlmaWNlXSc7CivnpYE+J1twcmF5XSc7CivnpYc+J1tvbmx5XSc7CivnpYg+J1twcmF5XSc7CivnpYk+J1toYXBwaW5lc3NdJzsKK+elkD4nW2RpdmluZSBpbnRlcnZlbnRpb25dJzsKK+elkz4nW2V4b3JjaXNlXSc7CivnpZU+J1tteXN0ZXJpb3VzXSc7CivnpZY+J1thbmNlc3Rvcl0nOwor56WXPidbcmVzcGVjdF0nOwor56WaPidbdGhyb25lXSc7CivnpZ0+J1twcmF5IGZvciBoYXBwaW5lc3Mgb3IgYmxlc3NpbmdzXSc7CivnpZ4+J1tzcGlyaXRdJzsKK+elnz4nW2V2aWwgc3Bpcml0XSc7CivnpaA+J1thbmNlc3RyYWwgdGVtcGxlXSc7CivnpaI+J1tvbmUnJ3MgZGVjZWFzZWQgZmF0aGVyXSc7CivnpaU+J1tnb29kIGx1Y2tdJzsKK+elqD4nW3NsaXAgb2YgcGFwZXIgb3IgYmFtYm9vXSc7Civnpa0+J1tzYWNyaWZpY2UgdG9dJzsKK+eltz4nW3ByYXldJzsKK+eluj4nW2dvb2QgbHVja10nOwor56W/PidbYmxlc3NpbmddJzsKK+emgD4nW3JlcG9ydCB0b10nOwor56aBPidbcmVzdHJpY3RdJzsKK+emhD4nW2JsZXNzaW5nXSc7CivnpoU+J1ttZWRpdGF0aW9uXSc7Civnpoo+J1tzZW1pLWFubnVhbCBjZXJlbW9ueSBvZiBwdXJpZmljYV0nOwor56aNPidbbWlzZm9ydHVuZV0nOwor56aOPidbbHVja3ldJzsKK+emjz4nW2hhcHBpbmVzc10nOwor56adPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor56amPidbZGVmZW5kXSc7Civnpqc+J1toYXBwaW5lc3NdJzsKK+emqj4nW21lZGl0YXRpb25dJzsKK+emrj4nW3NvY2lhbCBjdXN0b21dJzsKK+emsD4nW29uZScncyBkZWNlYXNlZCBmYXRoZXJdJzsKK+emsz4nW3ByYXkgb3Igc2FjcmlmaWNlXSc7Civnprk+J1tsZWdlbmRhcnkgaHNpYSBkeW5hc3R5IGZvdW5kZXJdJzsKK+emuj4nW2Rpc3RyaWN0XSc7Civnpr0+J1tiaXJkc10nOwor56a+PidbZ3JhaW4gc3RpbGwgb24gc3RhbGtdJzsKK+emvz4nW2JhbGRdJzsKK+engD4nW2VhciBvZiBncmFpbl0nOwor56eBPidbcHJpdmF0ZV0nOwor56eJPidbZ3Jhc3BdJzsKK+eniz4nW2F1dHVtbl0nOwor56eRPidbc2VjdGlvbl0nOwor56eSPidbYmVhcmQgb2YgZ3JhaW4gb3IgY29ybl0nOwor56eVPidbZW1wdHkgZ3JhaW4gb3IgcmljZSBodXNrXSc7Civnp5g+J1tzZWNyZXRdJzsKK+ennz4nW3JlbnRdJzsKKyMi56ehPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnp6M+J1tmb2RkZXJdJzsKK+enpD4nW2JhbGFuY2VdJzsKK+enpj4nW2ZldWRhbCBzdGF0ZSBvZiBxaW5dJzsKK+enpz4nW3JpY2Ugc2VlZGxpbmdzXSc7Civnp6k+J1tvcmRlcl0nOwor56esPidbYmxhY2sgbWlsbGV0XSc7Civnp7A+J1tjYWxsXSc7Civnp7s+J1tjaGFuZ2UgcGxhY2VdJzsKK+eogD4nW3JhcmVdJzsKK+eoiD4nW3N0YWxrIG9mIGdyYWluXSc7CivnqIs+J1tqb3VybmV5XSc7CivnqI0+J1tsaXR0bGVdJzsKK+eojj4nW3RheGVzXSc7CivnqJQ+J1tyaXBlIGdyYWluXSc7CivnqJc+J1tkYXJuZWxzXSc7CisjIueomD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56iZPidbZ3JhaW4gcmVhZHkgZm9yIGdyaW5kaW5nXSc7CivnqJo+J1t5b3VuZ10nOwor56icPidbY29ybmVyXSc7CivnqJ8+J1tyZXBvcnQgdG9dJzsKK+eooD4nW2RlbnNlXSc7CivnqK4+J1tzZWVkXSc7CivnqLE+J1tjYWxsXSc7CivnqLI+J1tyaWNlIGdyb3dpbmcgaW4gZmllbGRdJzsKK+eotz4nW2dvZCBvZiBjZXJlYWxzXSc7CivnqLs+J1tyaWNlIGdyb3dpbmcgaW4gZmllbGRdJzsKK+eovD4nW3NvdyBncmFpbl0nOwor56i9PidbZXhhbWluZV0nOwor56i+PidbZHJhZnRdJzsKK+eovz4nW2RyYWZ0XSc7CivnqYA+J1tjb3JuXSc7CivnqYI+J1tlYXIgb2YgZ3JhaW5dJzsKKyMi56mDPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnqYY+J1ttYWplc3RpY10nOwor56mJPidbeW91bmcgZ3JhaW5dJzsKK+epjT4nW2FjY3VtdWxhdGVdJzsKK+epjj4nW3JpY2UgdGFzc2VsXSc7CisjIuepjj4nW3JpY2UgdGFzc2VsXSciLAor56mQPidbZmFsbF0nOwor56mXPidbZWFyIG9mIGdyYWluXSc7CivnqaE+J1tmYXJtXSc7CivnqaI+J1tkaXJ0eV0nOwor56mjPidbc3RhbGtzIG9mIGdyYWluXSc7Civnqak+J1tzdGFibGVdJzsKK+epqz4nW2hhcnZlc3RdJzsKK+epsD4nW3N0YWxrcyBvZiBncmFpbl0nOwor56m0PidbY2F2ZV0nOwor56m2PidbZXhhbWluZV0nOwor56m5PidbaGlnaCBhbmQgdmFzdF0nOwor56m6PidbZW1wdHldJzsKK+epvT4nW2hvbGVdJzsKK+epvz4nW3BlbmV0cmF0ZV0nOwor56qBPidbc3VkZGVubHldJzsKK+eqgz4nW3NlY3JldGx5XSc7CivnqoQ+J1tuYXJyb3ddJzsKK+eqiD4nW29ic2N1cmVdJzsKK+eqkj4nW3N0b3AgdXBdJzsKK+eqkz4nW3dpbmRvd10nOwor56qVPidbc2xlbmRlcl0nOwor56qWPidbcGl0XSc7Civnqpc+J1t3aW5kb3ddJzsKK+eqmD4nW2VtYnJhc3Nhc3NlZF0nOwor56qfPidbaG9sZV0nOwor56qpPidbbmVzdF0nOwor56qqPidbaG9sbG93XSc7Civnqq4+J1twb29yXSc7Civnqq8+J1traWxuXSc7CivnqrA+J1traWxuXSc7CivnqrY+J1twb29yXSc7Civnqro+J1twZWVwXSc7Civnqr8+J1ttaW5lIHNoYWZ0XSc7Civnq4M+J1tmdXJuYWNlXSc7Civnq4Q+J1tydW4gYXdheV0nOwor56uFPidbaG9sZV0nOwor56uHPidbc3VybmFtZV0nOwor56uIPidbZnVybmFjZV0nOwor56uKPidbc2VjcmV0bHldJzsKK+eriz4nW3N0YW5kXSc7Civnq40+J1tkZWNhbGl0ZXJdJzsKK+erjz4nW2tpbG9saXRlcl0nOwor56uSPidbc3RyYW5nZV0nOwor56uTPidbbWlsbGlsaXRlcl0nOwor56uVPidbZGVjaWxpdGVyXSc7Civnq5k+J1tzdGFuZCB1cF0nOwor56uaPidbc3RhbmQgYW5kIHdhaXQgZm9yIGxvbmcgdGltZV0nOwor56ucPidbZHJhZ29uXSc7Civnq50+J1tjb21iaW5lXSc7Civnq58+J1tmaW5hbGx5XSc7Civnq6A+J1tjb21wb3NpdGlvbl0nOwor56uhPidbaGVjdG9saXRlcl0nOwor56uiPidbd2FpdCBmb3JdJzsKK+eroz4nW3Rlcm1pbmF0ZV0nOwor56ulPidbY2hpbGRdJzsKK+erpj4nW3JldmVyZV0nOwor56uqPidbcGVycGVuZGljdWxhcl0nOwor56utPidbcHV0IGZvcnRoIGdyZWF0IGVmZm9ydF0nOwor56uvPidbZW5kXSc7Civnq7A+J1tjZW50aWxpdGVyXSc7Civnq7Y+J1tjb250ZW5kXSc7Civnq7g+J1tjb250ZW5kXSc7Civnq7k+J1tiYW1ib29dJzsKK+eruj4nW2luZGlhXSc7Civnq78+J1tiYW1ib28gcG9sZV0nOworIyLnrII+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eshD4nW2hhaXJwaW5dJzsKK+eshj4nW2JhbWJvbyBmZW5jZV0nOwor56yIPidbYmFtYm9vIGJveCB1c2VkIGNhcnJ5IGJvb2tzXSc7CivnrIo+J1tsYWRsZV0nOwor56yLPidbYmFtYm9vIHNob290c10nOwor56yPPidbdGFibGV0IGhlbGQgYnkgc29tZW9uZSBoYXZpbmcgYXVdJzsKK+eskT4nW3NtaWxlXSc7CisjIuesmD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56yZPidbc21hbGwgZ291cmQtc2hhcGVkIG11c2ljYWwgaW5zdHJ1bWVudF0nOwor56ybPidbYmFtYm9vIGZsdXRlXSc7CivnrJ4+J1tiYW1ib28gcm9kIHVzZWQgZm9yIGJlYXRpbmdzXSc7CivnrKA+J1tiYW1ib28gaGF0XSc7CivnrKU+J1thIGhhbXBlcl0nOwor56ymPidbaS5kLiB0YWddJzsKK+esqD4nW2Zvb2xpc2hdJzsKK+esrD4nW3NlcXVlbmNlXSc7CivnrLM+J1thIHJlZWQgbGVhZiB3aGlzdGxlXSc7CivnrLU+J1thIGJhbWJvbyBmb3JtXSc7CisjIuestj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56y5Pidbc21hbGwgYmFtYm9vXSc7CivnrYU+J1tiYW1ib28gYnJ1c2hdJzsKK+ethj4nW3dyaXRpbmcgYnJ1c2hdJzsKK+etiD4nW2Fycm93IGVuZF0nOwor562JPidbcmFua10nOwor562LPidbbXVzY2xlc10nOwor562MPidbYmFtYm9vIGZpc2ggdHJhcF0nOwor562NPidbYmFtYm9vIHNob290XSc7CivnrY8+J1tyYWZ0XSc7CivnrZA+J1tiYW1ib28gYmFza2V0IG9yIGNoZXN0XSc7CivnrZE+J1thbmNpZW50IGx1dGVdJzsKK+etkj4nW3RoaWNrIHBpZWNlIG9mIGJhbWJvb10nOwor562UPidbYW5zd2VyXSc7CivnrZY+J1tzY2hlbWVdJzsKK+etnT4nW3N0cmluZ2VkIG11c2ljYWwgaW5zdHJ1bWVudF0nOwor562lPidbcm91bmQtc2hhcGVkIGJhbWJvbyBiYXNrZXQgZm9yXSc7Civnrac+J1tiYW1ib28gd2F0ZXIgcGlwZV0nOwor562sPidbcmVlZCBvZiBhIGxvb21dJzsKK+etrj4nW2RpdmluYXRpb24gd2l0aCBzdGFsa3Mgb2YgcGxhbnRzXSc7CivnrbA+J1tjYWJsZV0nOwor562xPidbZHdhcmYgYmFtYm9vXSc7CivnrbQ+J1t0eXBlIG9mIGdyYXNzIHVzZWQgaW4gZGl2aW5hdGlvbl0nOwor5621PidbYmFtYm9vIG1hdF0nOwor5626PidbYmFtYm9vIGJhc2tldCBvciBjaGVzdF0nOwor566GPidbZmluZS10b290aGVkIGNvbWJdJzsKK+euhz4nW251bWVyYXJ5IGFkanVuY3RdJzsKK+euiz4nW25vdGVdJzsKK+eujT4nW2hvb3BdJzsKK+eujz4nW3N0cmluZ2VkIG11c2ljYWwgaW5zdHJ1bWVudF0nOwor566SPidbYnJvb21dJzsKK+eulD4nW3JlZWQgc2NyZWVuXSc7CivnrpU+J1tzaWV2ZV0nOwor566XPidbY291bnRdJzsKK+eumD4nW2ZpbmUgYmFtYm9vXSc7Civnrpk+J1txdWl2ZXJdJzsKK+eumj4nW2JyaWVmIG5vdGVdJzsKK+eunD4nW2FuY2llbnQgc3RyaW5nIG11c2ljIGluc3RydW1lbnRdJzsKK+eunT4nW3R3ZWV6ZXJzXSc7CisjIueunz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor566hPidbcGlwZV0nOwor566qPidbc21hbGwgYmFtYm9vIGJhc2tldCBmb3IgaG9sZGluZ10nOwor566tPidbYXJyb3ddJzsKK+eusT4nW2Nhc2VdJzsKK+eutD4nW25lZWRsZV0nOwor5664PidbY2hvcHN0aWNrc10nOwor56+APidba25vdF0nOwor56+BPidbYmFtYm9vIGdyb3ZlXSc7Civnr4Q+J1twYXR0ZXJuXSc7Civnr4Y+J1tzZWFsIHNjcmlwdF0nOwor56+HPidbY2hhcHRlcl0nOwor56+JPidbYnVpbGRdJzsKK+eviz4nW3JhdHRvbiBib3hdJzsKK+evjD4nW2FuY2llbnQgbXVzaWMgaW5zdHJ1bWVudF0nOwor56+PPidbaW5sYXldJzsKK+evnT4nW2JhbWJvbyBiYXNrZXRdJzsKK+evoD4nW2R3YXJmIGJhbWJvb10nOwor56+kPidbZGVlcF0nOwor56+lPidbYnVsZ2xlXSc7Civnr6Y+J1tmaW5lLXRvb3RoZWQgY29tYl0nOwor56+pPidbc2lldmVdJzsKK+evrT4nW2NhZ2VdJzsKK+evsz4nW3dpY2tlcl0nOworIyLnr7Y+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+evtz4nW2F3bmluZ10nOwor57CAPidbYmVkIG1hdF0nOwor57CHPidbc3dhcm1dJzsKK+ewjT4nW2JhbWJvbyBiYXNrZXRdJzsKK+ewkT4nW2EgY29pciByYWluY29hdF0nOwor57CSPidbdXN1cnBdJzsKKyMi57CTPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnsJQ+J1thIGNvaXIgcmFpbmNvYXRdJzsKKyMi57CXPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnsJ8+J1tiYW1ib28gbWF0XSc7CivnsKE+J1tzaW1wbGVdJzsKK+ewoz4nW2JhbWJvbyBiYXNrZXQgZm9yIGNhcnJ5aW5nIGVhcnRoXSc7CivnsKc+J1tyZWVkIG9mIHdvb2R3aW5kIGluc3RydW1lbnRdJzsKK+ewqj4nW2hhaXJwaW5dJzsKK+ewqz4nW211c2ljYWwgaW5zdHJ1bWVudCBsaWtlIHBhbi1waXBlc10nOwor57C3PidbZWF2ZXMgb2YgaG91c2VdJzsKK+ewuD4nW3dpbm5vd2VyXSc7CivnsL0+J1tzaWduXSc7CivnsL4+J1thIGJsaW5kXSc7CivnsL8+J1tyZWdpc3Rlcl0nOwor57GAPidbcmVjaXRlXSc7CivnsYM+J1tiYXNrZXRdJzsKK+exjD4nW2NoaXBdJzsKK+exjT4nW3JlY29yZF0nOwor57GPPidbZmxhZ10nOwor57GQPidbY2xpbWJpbmcgcGxhbnRzXSc7CivnsZQ+J1tiYW1ib28gYmFza2V0XSc7CivnsZY+J1t0YWxseV0nOwor57GYPidbY2xpbWJpbmcgcGxhbnRzXSc7CivnsZ8+J1tiYW1ib28gZmx1dGVdJzsKK+exoD4nW2NhZ2VdJzsKK+expD4nW3RhbGx5XSc7CivnsaU+J1trZXldJzsKK+exrD4nW2JhbWJvbyBvciB3b29kZW4gZmVuY2VdJzsKK+exsz4nW2h1bGxlZCBvciBodXNrZWQgdW5jb29rZWQgcmljZV0nOwor57G1PidbZG1dJzsKK+exvj4nW3VuaHVsbGVkIHJpY2VdJzsKK+eygT4nW2ttXSc7CivnsoI+J1tzdXJuYW1lXSc7CivnsoM+J1tlbXB0eSBodXNrcyBvZiBncmFpbl0nOwor57KJPidbcG93ZGVyXSc7Civnsos+J1twdXJlXSc7Civnso0+J1ttbV0nOworIyLnspA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eykj4nW2dyYWluXSc7CivnspU+J1tsZWVzXSc7Civnspc+J1tyb3VnaF0nOwor57KYPidbdmlzY291c10nOwor57KbPidbcGF5IHJlc3BlY3RzXSc7Civnsp8+J1t1bmh1c2tlZCBtaWxsZXRdJzsKKyMi57KhPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnsqI+J1tncmFpbiBvZmZlcmVkIGluIHJpdHVhbCBzYWNyaWZpY10nOwor57KkPidbR3Vhbmdkb25nIGFuZCBHdWFuZ3hpIHByb3ZpbmNlc10nOwor57KlPidbcmljZSBncnVlbF0nOwor57KnPidbdG9pbGV0XSc7Civnsqg+J1tobV0nOworIyLnsqs+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi57KtPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnsq4+J1tmb29kXSc7CivnsrE+J1tiZXR0ZXIgdmFyaWV0aWVzIG9mIG1pbGxldF0nOwor57KyPidbcG9saXNoXSc7CivnsrM+J1tub24tZ2x1dGlub3VzIHJpY2VdJzsKK+eyuT4nW3B1cmVdJzsKK+eyvT4nW2R1bXBsaW5nIG1hZGUgb2YgZ2x1dGlub3VzIHJpY2VdJzsKK+eyvj4nW2Vzc2VuY2VdJzsKKyMi57OAPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuezgj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57OFPidbYmxlbmRdJzsKK+ezij4nW3Bhc3RlXSc7Civns44+J1ttbV0nOwor57OSPidbZm9vZCBmb3IgYSBqb3VybmV5XSc7Civns5Y+J1tzdWdhcl0nOworIyLns5g+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eznD4nW3JpY2UgZ3J1ZWxdJzsKK+eznj4nW21hbnVyZV0nOwor57OfPidbc2VkaW1lbnRdJzsKK+ezoD4nW2NoYWZmXSc7Civns6I+J1tyaWNlIHNuYWNrc10nOwor57OnPidbZm9vZF0nOwor57OvPidbZ2x1dGlub3VzIHJpY2VdJzsKK+ezsj4nW3VucG9saXNoZWQgcmljZV0nOwor57O0PidbcHVyY2hhc2UgZ3JhaW5zXSc7Civns7Y+J1tzZWxsIGdyYWluc10nOwor57O4Pidbc2lsa10nOwor57O6PidbdG8gY29sbGFib3JhdGVdJzsKK+ezuz4nW3N5c3RlbV0nOwor57O+PidbaW52ZXN0aWdhdGVdJzsKK+e0gD4nW3JlY29yZF0nOwor57SCPidbbmFtZSBvZiBhbiBlbXBlcm9yXSc7CivntIQ+J1t0cmVhdHldJzsKK+e0hT4nW3JlZF0nOwor57SGPidbYmVuZF0nOwor57SKPidbY29uZnVzZWRdJzsKK+e0iz4nW2xpbmVdJzsKK+e0jT4nW2FkbWl0XSc7CivntJA+J1trbm90XSc7CivntJQ+J1twdXJlXSc7CivntJU+J1tzcG9pbGVkIHNpbGtdJzsKK+e0lz4nW2dhdXplXSc7CivntJg+J1tzdHJpbmddJzsKK+e0mT4nW3BhcGVyXSc7CivntJo+J1tsZXZlbF0nOwor57SbPidbaW4gZGlzb3JkZXJdJzsKK+e0nD4nW2NvbmZ1c2VkXSc7CivntKA+J1t3aGl0ZSAoc2lsayldJzsKK+e0oT4nW3NwaW5dJzsKK+e0oj4nW2xhcmdlIHJvcGVdJzsKK+e0qz4nW3B1cnBsZV0nOwor57SsPidba2luZCBvZiB0aGluIHNpbGtdJzsKK+e0rj4nW3RpZV0nOwor57SvPidbdGlyZWRdJzsKK+e0sD4nW2ZpbmVdJzsKK+e0sj4nW2JyaWRsZV0nOwor57SzPidbZ2lyZGxlXSc7CivntLU+J1tyYW1pZV0nOwor57S5PidbY29udGludWVdJzsKK+e0uj4nW2RhcmsgYmx1ZSBjb2xvcl0nOwor57S/PidbY2hlYXRdJzsKK+e1gj4nW2VuZF0nOwor57WDPidbc3RyaW5nIG9uIG11c2ljYWwgaW5zdHJ1bWVudF0nOwor57WEPidbY2xhc3NdJzsKK+e1hT4nW3VubGluZWQgZ2FybWVudF0nOwor57WGPidbbG9vcF0nOworIyLntYs+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e1jD4nW2NsYXNzaWMgd29ya3NdJzsKK+e1jj4nW2Jhc3RlXSc7CivntY8+J1tyb3BlXSc7CivntZA+J1trbm90XSc7CivntZY+J1tmaW5lIHNpbGtzXSc7CivntZs+J1tzaWxrIGJyYWlkXSc7CivntZ4+J1t0d2lzdF0nOwor57WhPidbZW5tZXNoXSc7CivntaI+J1t2YXJpZWdhdGVkXSc7CivntaM+J1t0byBiYXN0ZSBmb3Igc2V3aW5nXSc7CivntaY+J1tnaXZlXSc7Civntag+J1tzaWxrXSc7Civnta4+J1t3YXN0ZSBjb3R0b25dJzsKK+e1sT4nW2dvdmVybl0nOwor57WyPidbc2lsa10nOwor57WzPidbZGVlcCByZWRdJzsKK+e1tT4nW2RyYXddJzsKK+e1tj4nW2N1dF0nOwor57W5Pidba2luZCBvZiB0aGljayBzdGlmZiBzaWxrXSc7CisjIue1vT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57aJPidbZW1icm9pZGVyXSc7Civnto8+J1tzb290aGVdJzsKK+e2kz4nW2NsYXNzaWMgd29ya3NdJzsKK+e2mT4nW2NvbnRpbnVlXSc7Civntpo+J1tjb250aW51ZV0nOworIyLntps+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e2nD4nW2FycmFuZ2UgdGhyZWFkcyBmb3Igd2VhdmluZ10nOworIyLntp8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e2oj4nW3NpbGsgY2xvdGhdJzsKK+e2oz4nW2FmZmVjdGlvbmF0ZV0nOwor57arPidbbGluZV0nOwor57asPidbc2lsayByaWJib24gYXR0YWNoZWQgYXMgYSBzZWFsXSc7Civntq0+J1ttYWludGFpbl0nOwor57auPidbZW1icm9pZGVyZWQgYmFubmVyXSc7Civntq8+J1ticmFpZF0nOwor57awPidbdG8gc3RyaW5nIHRvZ2V0aGVyXSc7CivntrE+J1toZWF2eSByb3BlXSc7CivntrI+J1tuZXRdJzsKK+e2tD4nW3BhdGNoIHRvZ2V0aGVyXSc7CivntrU+J1t2YXJpY29sb3JlZCBzaWxrXSc7Civntrg+J1tncmVlbiBzaWxrIHRocmVhZCBvciB0YXNzZWxdJzsKK+e2uj4nW2ZpbmUgdGhpbiBzaWxrXSc7Civntrs+J1tyaXBwZWQgc2VhbV0nOwor57a9PidbZ3JhY2VmdWxdJzsKK+e2vj4nW3RoaW4gc2lsa10nOwor57a/PidbY290dG9uIHdhZF0nOwor57eHPidbYmxhY2sgc2lsa10nOwor57eKPidbdGVuc2VdJzsKK+e3iz4nW3NjYXJsZXRdJzsKK+e3jz4nW2NvbGxlY3RdJzsKK+e3kT4nW2dyZWVuXSc7Civnt5I+J1tlbmQgb2YgdGhyZWFkXSc7CisjIue3lT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57eYPidbc2VhbF0nOwor57eaPidbdGhyZWFkXSc7Civnt5w+J1tjb3R0b24gd2FkXSc7Civnt50+J1t0byBzZXcgaW4gY2xvc2Ugc3RpdGNoZXNdJzsKK+e3nj4nW3NhdGluXSc7Civnt6A+J1t0aWVdJzsKK+e3oT4nW2Zpc2hpbmctbGluZV0nOwor57ekPidbY29yZF0nOwor57eoPidba25pdF0nOwor57epPidbc2xvd10nOwor57esPidbZGlzdGFudF0nOwor57evPidbd29vZl0nOwor57eyPidbaW5kaXN0aW5jdF0nOwor57e0PidbcHJhY3RpY2VdJzsKK+e3uz4nW2RlbGljYXRlXSc7CivnuIE+J1toZW1dJzsKK+e4hD4nW3JvcGVdJzsKKyMi57iEPidbcm9wZV0nIiwKK+e4iT4nW3JlZCBzaWxrXSc7CivnuIo+J1toYW5nXSc7CivnuIs+J1tjbGltZCBkb3duIHJvcGVdJzsKKyMi57iRPidbZmluZSBzaWxrXSciLAor57ibPidbdG8gdGllXSc7CivnuJ4+J1t3aGl0ZSByYXcgc2lsa10nOwor57ifPidbZGVjb3JhdGl2ZV0nOwor57ihPidbbWF0dGVyXSc7CivnuKI+J1tiaW5kXSc7CivnuKM+J1tjb3VudHldJzsKK+e4pj4nW2luZHVsZ2UgaW5dJzsKK+e4qz4nW3Nld10nOwor57iuPidbY29udHJhY3RdJzsKK+e4sT4nW2luZHVsZ2UgaW5dJzsKK+e4sj4nW2NoYWluIG9yIHJvcGUgdXNlZCBiaW5kIGNyaW1pbmFsXSc7CivnuLU+J1twbGFpbiBzaWxrXSc7CivnuLc+J1t0aHJlYWRdJzsKK+e4uT4nW2xpZ2h0IGJsdWUgc2lsa10nOworIyLnuLo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e4uz4nW2hhbHRlciBmb3Igb3hdJzsKK+e4vT4nW2NvbGxlY3RdJzsKK+e4vj4nW3NwaW5dJzsKK+e5gT4nW2NvbXBsaWNhdGVkXSc7CivnuYM+J1tiaW5kXSc7CivnuYY+J1t3aW5kIGFyb3VuZF0nOwor57mKPidbZmluZV0nOwor57mLPidbYXR0YWNoXSc7CivnuY0+J1tlbWJyb2lkZXJdJzsKK+e5lD4nW3dlYXZlXSc7CivnuZU+J1tyZXBhaXJdJzsKK+e5lj4nW3VtYnJlbGxhXSc7CivnuZk+J1tpbnRlcnByZXRdJzsKK+e5mj4nW3dpbmQgcm91bmRdJzsKKyMi57mdPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnuZ4+J1tlbnR3aW5lXSc7CivnuaY+J1tzdHJpbmcgb2YgY29wcGVyIGNvaW5zXSc7CisjIue5pz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57mpPidbcm9wZV0nOwor57mqPidbZHJhd10nOwor57mtPidbY29jb29uXSc7CivnubA+J1t0byByZWVsIHNpbGsgZnJvbSBjb2Nvb25zXSc7Civnubk+J1t1bnJhdmVsIG9yIHVucmVlbCBzaWxrXSc7Civnubs+J1tmaW5lIHNpbGsgZ3VhemVdJzsKK+e5vD4nW2NvbnRpbnVlXSc7Civnub0+J1tmbG91cmlzaGluZ10nOworIyLnub8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e6gj4nW2VkaXRdJzsKKyMi57qDPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnuog+J1twYXR0ZXJuZWQgc2lsa10nOworIyLnuok+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e6jD4nW2NvbnRpbnVlXSc7Civnuo4+J1tmaW5lXSc7Civnuo8+J1t3cmFwXSc7CisjIue6kD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57qSPidbd3JhcF0nOwor57qTPidbY2hpbiBzdHJhcF0nOwor57qUPidbdGFsZW50XSc7CivnupY+J1tmaW5lXSc7Civnups+J1thIGJhbm5lcl0nOwor57qcPidbaGF3c2VyXSc7CivnvLY+J1tlYXJ0aGVuIGNyb2NrIG9yIGphcl0nOwor57y4PidbZWFydGhlbiBqdWddJzsKK+e8uj4nW2JlIHNob3J0IG9mXSc7CivnvYU+J1tjcmFja10nOwor572MPidbbG9uZyBuZWNrZWQgamFyIG9yIGJvdHRsZV0nOwor572NPidbbGFyZ2UgZWFydGhlbndhcmUgd2luZSBqYXJdJzsKK+e9jj4nW2FuIGVhcnRoZW53YXJlIGphcl0nOwor572QPidbamFyXSc7CivnvZE+J1tuZXRdJzsKK+e9lD4nW25ldF0nOwor572VPidbcmFyZV0nOwor572YPidbc2NyZWVuIHVzZWQgaW4gYW5jaWVudCB0aW1lc10nOwor572fPidbbmV0XSc7CivnvaA+J1thbmltYWwgdHJhcF0nOworIyLnvac+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e9qD4nW21lZGljYWwgY29tcHJlc3NdJzsKK+e9qT4nW2Jhc2tldCBmb3IgY2F0Y2hpbmcgZmlzaF0nOwor572qPidbY3JpbWVdJzsKK+e9qz4nW2hpbmRlcl0nOwor572uPidbcGxhY2VdJzsKK+e9sD4nW3BlbmFsdHldJzsKK+e9sj4nW3B1YmxpYyBvZmZpY2VdJzsKK+e9tT4nW2FjY3VzZV0nOwor5723PidbY2Vhc2VdJzsKK+e9uD4nW3BlbmFsdHldJzsKK+e9uT4nW3NvcnJvd10nOworIyLnvoI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e+gz4nW2NvdmVyLWNsb3RoXSc7CivnvoU+J1tuZXQgZm9yIGNhdGNoaW5nIGJpcmRzXSc7CivnvoY+J1ticm93biBiZWFyXSc7Civnvoc+J1tpbm5dJzsKK+e+iD4nW2hhbHRlcl0nOwor576KPidbc2hlZXBdJzsKK+e+jD4nW3FpYW5nIG5hdGlvbmFsaXR5XSc7Civnvo4+J1tiZWF1dGlmdWxdJzsKK+e+lD4nW2xhbWJdJzsKK+e+mj4nW3NwZWNpZXMgb2YgYW50ZWxvcGVdJzsKK+e+nT4nW3JhbV0nOwor576ePidbZGlzZ3JhY2VdJzsKK+e+oz4nW2dyb3VwXSc7CivnvqQ+J1tncm91cF0nOwor576oPidbZW52eV0nOwor576pPidbcmlnaHQgY29uZHVjdF0nOwor576uPidbc291cF0nOwor576vPidbd2V0aGVyXSc7CivnvrI+J1thbmNpZW50IGVtcGVyb3JdJzsKK+e+tj4nW3Jhbmsgb2Rvcl0nOwor5764Pidbd2Vha10nOwor5765Pidbc291cF0nOwor5769PidbZmVhdGhlcl0nOwor57+BPidbb2xkIG1hbl0nOwor57+FPidbd2luZ3NdJzsKK+e/hj4nW2NvbG9yIGdyZWVuXSc7Civnv4o+J1tmbHlpbmddJzsKK+e/jD4nW2JyaWdodF0nOwor57+SPidbcHJhY3RpY2VdJzsKK+e/lD4nW3NvYXJdJzsKK+e/lT4nW2FncmVlXSc7Civnv6A+J1tjb2xvciBncmVlbl0nOwor57+hPidba2luZ2Zpc2hlcl0nOwor57+mPidbc2Npc3NvcnNdJzsKK+e/qT4nW2ZseV0nOwor57+rPidbY2FyZWxlc3NdJzsKK+e/sD4nW3dyaXRpbmcgYnJ1c2hdJzsKK+e/sz4nW3NoYWRlXSc7Civnv7k+J1t0dXJuIHVwXSc7Civnv7s+J1tmbGlwIG92ZXJdJzsKK+e/vD4nW3dpbmdzXSc7CivogIA+J1tzaGluZV0nOwor6ICBPidbb2xkXSc7CivogIM+J1tleGFtaW5lXSc7CivogIQ+J1tlbGRlcmx5IHBlcnNvbl0nOwor6ICFPidbdGhhdCB3aGljaF0nOwor6ICGPidbbWFuIG9mIHNpeHR5XSc7CivogIs+J1thZ2VkXSc7CivogIw+J1thbmRdJzsKK+iAkD4nW2VuZHVyZV0nOwor6ICSPidbaGFuZGxlIG9mIHBsb3ddJzsKK+iAlT4nW3Bsb3ddJzsKK+iAlz4nW2NvbnN1bWVdJzsKK+iAmD4nW3dlZWRdJzsKK+iAmT4nW3Jha2VdJzsKK+iAnD4nW3NwYWRlLXNoYXBlZCB0b29sXSc7CivogKE+J1tob2VdJzsKK+iAqD4nW2hvZV0nOwor6ICzPidbZWFyXSc7CivogLY+J1t1c2VkIGluIHRyYW5zbGl0ZXJhdGlvbl0nOwor6IC7Pidbc2hhbWVdJzsKK+iAvT4nW2luZHVsZ2UgaW5dJzsKK+iAvz4nW2JyaWdodF0nOwor6IGGPidbbGlzdGVuXSc7CivogYo+J1tzb21ld2hhdF0nOwor6IGSPidbY2xhbW9yXSc7CivogZY+J1tob2x5XSc7CivogZg+J1tlbmdhZ2VdJzsKK+iBmj4nW2Fzc2VtYmxlXSc7CivogZ4+J1toZWFyXSc7CivogZ8+J1tzb24taW4tbGF3XSc7CivogaE+J1tpbnRlbGxpZ2VudF0nOworIyLogaI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iBqD4nW2Nvbm5lY3RdJzsKK+iBrz4nW2Nvbm5lY3RdJzsKK+iBsD4nW2ludGVsbGlnZW50XSc7CivogbI+J1tzb3VuZF0nOwor6IGzPidbdXJnZSBvbl0nOwor6IG0PidbaGVhcl0nOwor6IG2Pidbd2hpc3Blcl0nOwor6IG3PidbZHV0eV0nOwor6IG5PidbZWFyd2F4XSc7Civogb0+J1toZWFyXSc7Civogb4+J1tkZWFmXSc7Civogb8+J1t3cml0aW5nIGJydXNoXSc7CivogoQ+J1tsZWFybl0nOwor6IKFPidbcGF5IHJlc3BlY3RzXSc7CivogoY+J1tpbmR1bGdlXSc7Civogoc+J1tiZWdpbl0nOwor6IKJPidbZmxlc2hdJzsKK+iCiz4nW3JpYnNdJzsKK+iCjD4nW211c2NsZSB0aXNzdWVdJzsKK+iCkz4nW3JlZ2lvbiBiZXR3ZWVuIGhlYXJ0IGFuZCBkaWFwaHJhZ21dJzsKK+iClj4nW2xvb2sgbGlrZV0nOwor6IKYPidbZWxib3ddJzsKK+iCmj4nW2JlbGx5XSc7Civogps+J1thbnVzXSc7Civogp0+J1tsaXZlcl0nOwor6IKhPidbdGhpZ2hzXSc7CivogqI+J1todW1hbiBsaW1ic10nOwor6IKlPidbZmF0XSc7Civogqk+J1tzaG91bGRlcnNdJzsKK+iCqj4nW2FuaW1hbCBmYXRdJzsKK+iCrD4nW3dhcnRdJzsKK+iCrT4nW2ZhdF0nOwor6IKvPidbd2lsbGluZ10nOwor6IKxPidbZm9yZWFybV0nOwor6IKyPidbcHJvZHVjZV0nOwor6IK0PidbY29va2VkIG9yIHByZXBhcmVkIG1lYXRdJzsKK+iCuj4nW2x1bmdzXSc7Civog4M+J1tzdG9tYWNoXSc7Civog4Q+J1toZWxtZXRdJzsKK+iDhj4nW2dhbGwgYmxhZGRlcl0nOwor6IOMPidbYmFja10nOwor6IOOPidbdW5ib3JuIGNoaWxkXSc7Civog5Y+J1tmYXRdJzsKK+iDmT4nW2Zvb2Qgb2ZmZXJlZCBpbiBzYWNyaWZpY2lhbCBzZXJ2XSc7Civog5o+J1tlbWJyeW9dJzsKK+iDmz4nW3RoZSBzaG91bGRlcl0nOwor6IOdPidbY2FsbG91c10nOwor6IOePidbd29tYl0nOwor6IOhPidbcmVja2xlc3NseV0nOwor6IOkPidbaGVpcl0nOwor6IOlPidbYWxsXSc7Civog68+J1twZWx2aXNdJzsKK+iDsT4nW2JsYWRkZXJdJzsKK+iDtD4nW3RoZSBsYXJnZSBpbnRlc3RpbmVdJzsKK+iDuD4nW2JyZWFzdF0nOwor6IO8PidbY2FsbHVzXSc7Civog70+J1tiZSBhYmxlXSc7CivohII+J1tmYXRdJzsKK+iEhT4nW3JpYnNdJzsKK+iEhj4nW2NyaXNwXSc7CivohIc+J1tyaWJzXSc7CivohIg+J1tibG9vZCB2ZXNzZWxzXSc7CivohIk+J1tibG9vZCB2ZXNzZWxzXSc7CivohIo+J1tzcGluZV0nOwor6ISaPidbbGVnXSc7CivohJs+J1tzaGluYm9uZV0nOwor6ISjPidbbGlwc10nOwor6ISpPidbZHJpZWQgbWVhdCAodXNlZCBhcyB0ZWFjaGVycyBwYXltZW50IGluIGFuY2llbnQgdGltZXMpXSc7CivohK8+J1tkcmllZCBtZWF0XSc7CivohLE+J1t0YWtlIG9mZl0nOwor6ISzPidbYnJhaW5dJzsKK+iEuT4nW3N3ZWxsXSc7CivohL4+J1tzcGxlZW5dJzsKK+iFhj4nW3Byb3NwZXJvdXNdJzsKK+iFiz4nW2FybXBpdF0nOwor6IWOPidba2lkbmV5c10nOwor6IWQPidbcm90XSc7CivohZE+J1tib3dlbHNdJzsKK+iFkz4nW2NhbGZdJzsKK+iFlD4nW2NoZXN0IGNhdml0eV0nOwor6IWVPidbd3Jpc3RdJzsKK+iFnz4nW3ZhZ2luYV0nOwor6IWlPidbcmF3IG1lYXRdJzsKK+iFpj4nW2JyYWluXSc7Civohas+J1tzd2VsbF0nOwor6IWuPidbbG93ZXIgcGFydCBvZiBmYWNlXSc7CivohbA+J1t3YWlzdF0nOwor6IWxPidbdGVuZG9uc10nOwor6IW0PidbZmF0XSc7Civohbg+J1tpbnRlc3RpbmVzXSc7Civohbk+J1tzdG9tYWNoXSc7Civohbo+J1tnbGFuZF0nOwor6IW/PidbbGVnc10nOwor6IaAPidbdXBwZXIgYXJtXSc7CivohoI+J1tiYWNrYm9uZV0nOwor6IaDPidbZmF0XSc7Civohog+J1tkaWFwaHJhZ21dJzsKK+iGij4nW3Nob3VsZGVyc10nOwor6IaPPidbZ3JlYXNlXSc7CivohpM+J1tpbnRlc3RpbmVzXSc7CivohpU+J1tob2xsb3ddJzsKK+iGmj4nW3NraW5dJzsKK+iGnD4nW21lbWJyYW5lXSc7Civohp0+J1trbmVlXSc7CivohqA+J1tnbHVlXSc7CivohqM+J1t2YWdpbmFdJzsKKyMi6IakPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivohqg+J1tzd2VsbF0nOwor6IapPidbZ3JlYXN5XSc7CivohrA+J1tjb29rIG1lYXQgZm9yIHNhY3JpZmljZSBvciBvZmZlcl0nOwor6IazPidbbWVhbHNdJzsKK+iGtT4nW3BhbmNyZWFzXSc7CisjIuiGuD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Ia6PidbYnJlYXN0XSc7Civohr0+J1tnYWxsIGJsYWRkZXJdJzsKK+iGvj4nW21pbmNlZCBtZWF0IG9yIGZpc2hdJzsKK+iGvz4nW3B1c10nOwor6IeAPidbYnV0dG9ja3NdJzsKK+iHgj4nW2FybV0nOwor6IeGPidbY2hlc3RdJzsKK+iHiD4nW3llYXIgZW5kIHNhY3JpZmljZV0nOwor6IeJPidbZmFjZV0nOwor6IeNPidbYWJkb21pbmFsIGFyZWEgb2YgY3JhYl0nOwor6IeRPidbc29mdF0nOwor6IeTPidbaW50ZXJuYWwgb3JnYW5zXSc7Civoh5g+J1t5ZWFyIGVuZCBzYWNyaWZpY2VdJzsKK+iHmT4nW3JvdWdlXSc7Civoh5o+J1thcnJhbmdlIGluIG9yZGVyXSc7Civoh58+J1tpbnRlcm5hbCBvcmdhbnNdJzsKK+iHoD4nW3NtYWxsIGx1bXAgb2YgbWVhdF0nOwor6IejPidbbWluaXN0ZXJdJzsKK+iHpT4nW2xpZSBkb3duXSc7Civoh6c+J1tnb29kXSc7Civoh6g+J1tkcmF3IG5lYXJdJzsKK+iHqj4nW3NlbGZdJzsKK+iHrT4nW3NtZWxsXSc7Civoh7M+J1tyZWFjaF0nOwor6Ie0Pidbc2VuZF0nOwor6Ie6PidbdG93ZXJdJzsKK+iHuz4nW3JlYWNoXSc7Civoh7w+J1ttb3J0YXJdJzsKK+iHvj4nW21vbWVudF0nOwor6IiBPidbY2Fycnkgb24gb25lJydzIHNob3VsZGVyXSc7CivoiII+J1tncmluZCBpbiBtb3J0YXJdJzsKK+iIhT4nW21vdGhlcicncyBicm90aGVyXSc7CivoiIc+J1thbmRdJzsKK+iIiD4nW3Rocml2ZV0nOwor6IiJPidbcmFpc2VdJzsKK+iIij4nW29sZF0nOwor6IiMPidbdG9uZ3VlXSc7CivoiI0+J1tob3VzZV0nOwor6IiOPidbaG91c2VdJzsKK+iIkD4nW2xpY2sgd2l0aCB0b25ndWVdJzsKK+iIkj4nW29wZW4gdXBdJzsKK+iIlj4nW3N0b3JlXSc7CivoiJc+J1tzdG9yZV0nOwor6IiYPidbYSBtYW5zaW9uXSc7CivoiJs+J1tvcHBvc2VdJzsKK+iInD4nW2xlZ2VuZGFyeSBydWxlcl0nOwor6IiePidbZGFuY2VdJzsKK+iInz4nW2JvYXRdJzsKK+iIqT4nW2JvYXRdJzsKK+iIqj4nW3NhaWxdJzsKK+iIqz4nW2ZhbmN5IGJvYXRdJzsKK+iIrD4nW3NvcnRdJzsKK+iIrj4nW2JvdyBvciBwcm93IG9mIGJvYXRdJzsKK+iIsz4nW3N0ZXJuIG9mIHNoaXBdJzsKK+iItT4nW3J1ZGRlcl0nOwor6Ii2PidbbGFyZ2VdJzsKK+iItz4nW3NpZGVzIG9mIGJvYXRdJzsKK+iIuD4nW2xhcmdlIGJvYXRdJzsKK+iIuT4nW3NoaXBdJzsKK+iJgD4nW1tub3QgZm91bmQgaW4gZGljdGlvbmFyeV1dJzsKK+iJhz4nW3NtYWxsIGJvYXRdJzsKK+iJmD4nW2NvdW50ZXIgZm9yIHNoaXBzXSc7CivoiZk+J1tob2xkIG9mIHNoaXBdJzsKK+iJmj4nW3NoaXBdJzsKKyMi6ImdPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivoiZ8+J1thbmNpZW50IHdhcnNoaXBdJzsKK+iJoj4nW2EgbWFzdF0nOwor6ImkPidbdG8gbW9vciBhIGJvYXQgdG8gdGhlIGJhbmtdJzsKK+iJpj4nW3dhcnNoaXBdJzsKK+iJqD4nW2xvbmcgYW5kIG5hcnJvdyB3YXItYm9hdF0nOwor6ImqPidbb2FyXSc7Civoias+J1tib3cgb3IgcHJvdyBvZiBib2F0XSc7Civoia4+J1tzZXZlbnRoIG9mIGVpZ2h0IGRpYWdyYW1zXSc7Civoia8+J1tnb29kXSc7CivoibE+J1tkaWZmaWN1bHRdJzsKK+iJsj4nW2NvbG9yXSc7CivoibY+J1tiZWF1dGlmdWxdJzsKK+iJtz4nW2JlYXV0aWZ1bF0nOwor6Im4PidbZ3Jhc3NdJzsKK+iJvj4nW2FydGVtaXNpYV0nOwor6IqLPidbdGFyb10nOwor6IqNPidbcGVvbnldJzsKK+iKkj4nW21pc2NhbnRodXMgc2luZW5zaXNdJzsKK+iKmT4nW2hpYmlzY3VzXSc7Civoip0+J1twdXJwbGlzaCBtdXNocm9vbSB0aG91Z2h0IHByb21vdF0nOwor6IqfPidbbW93XSc7CivoiqU+J1ttdXN0YXJkIHBsYW50XSc7CivoiqY+J1tydXNoZXNdJzsKK+iKqz4nW2RhcGhuZSBnZW5rd2FdJzsKK+iKrD4nW2ZyYWdyYW5jZV0nOwor6IqtPidbcGxhbnRhaW4gb3IgYmFuYW5hIHBhbG1dJzsKK+iKrz4nW3BpdGggZnJvbSBydXNoIChqdW5jdXMgZWZmdXN1cyldJzsKK+iKsT4nW2Zsb3dlcl0nOwor6IqzPidbZnJhZ3JhbnRdJzsKK+iKuD4nW3J1ZV0nOwor6Iq5PidbY2VsZXJ5XSc7Civoirs+J1ttb3ddJzsKK+iKvT4nW2J1ZF0nOwor6IuFPidbY3V0IG9mZl0nOwor6IuRPidbcGFzdHVyZV0nOwor6IuSPidbbHVzaF0nOwor6IuTPidbZnVuZ3VzXSc7Civoi5Q+J1ttb3NzXSc7Civoi5c+J1tzcHJvdXRzXSc7Civoi5k+J1twaWdzdHldJzsKK+iLmz4nW3NtYWxsXSc7Civoi5w+J1tjbG92ZXJdJzsKK+iLnj4nW3ZhcmlldHkgb2YgcnVzaF0nOwor6IufPidbY2FyZWxlc3NdJzsKK+iLoT4nW2JhcmxleV0nOwor6IujPidba2luZCBvZiBsZXR0dWNlXSc7Civoi6U+J1tpZl0nOwor6IumPidbYml0dGVyXSc7Civoi6c+J1tjaGluYSBncmFzc10nOwor6IurPidbcnVzaCBvciBzdHJhdyBtYXR0aW5nXSc7Civoi7E+J1twZXRhbF0nOworIyLoi7M+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iLtD4nW3NhY2tjbG90aF0nOwor6Iu5PidbYXJ0ZW1pc2lhXSc7Civoi7o+J1tiZXJyaWVzXSc7Civoi7s+J1traW5kIG9mIGhlcmJdJzsKK+iMgj4nW3RoaWNrXSc7CivojIM+J1tzdXJuYW1lXSc7CivojIQ+J1tlZ2dwbGFudF0nOwor6IyFPidbcmVlZHNdJzsKK+iMhj4nW3NwZWNpZXMgb2YgZ3Jhc3NdJzsKK+iMiT4nW3doaXRlIGphc21pbmVdJzsKK+iMjj4nW3N0ZW1dJzsKK+iMlj4nW2FsbGl1bSB2aWN0b3JpYWxpc10nOwor6IyXPidbdGVhXSc7CisjIuiMlz4nW3RlYV0nIiwKK+iMnD4nW21hZGRlcl0nOworIyLojKM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iMqD4nW2NhbHRyb3BdJzsKK+iMqz4nW3Zhc3RdJzsKK+iMrz4nW2NoaW5hIHJvb3RdJzsKK+iMsT4nW2RvZ3dvb2RdJzsKK+iMsj4nW25vd10nOwor6Iy0PidbZmVubmVsXSc7CivojLU+J1tjdXNoaW9uXSc7CivojLY+J1t0ZWFdJzsKK+iMuD4nW3NvZnRdJzsKK+iMuT4nW3Jvb3RzXSc7CivojYA+J1tzdXJuYW1lXSc7CivojYU+J1thbnN3ZXI6IHNtYWxsIGJlYW5dJzsKK+iNiT4nW2dyYXNzXSc7CivojYo+J1t0aG9ybnNdJzsKK+iNjz4nW2JlYW5zXSc7CivojZA+J1tyZXBlYXRdJzsKK+iNkj4nW3dhc3RlbGFuZF0nOwor6I2YPidbdmlsbGFnZV0nOwor6I2zPidbYmVhbnNdJzsKKyMi6I21PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivojbc+J1tsb3R1c10nOwor6I27PidbcmVlZF0nOwor6I28PidbYml0dGVyIHZlZ2V0YWJsZV0nOwor6I6FPidbYXR0ZW5kXSc7CisjIuiOhz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6I6JPidbd2hpdGUgamFzbWluZV0nOwor6I6KPidbdmlsbGFnZV0nOwor6I6OPidba2luZCBvZiBzZWRnZSBncmFzc10nOwor6I6TPidbbW9zc10nOwor6I6WPidbc3RlbV0nOwor6I6aPidbYmFtYm9vIG1hdF0nOwor6I6ePidbc21pbGluZ10nOworIyLojp8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iOoD4nW3dlZWRzXSc7CivojqI+J1twb2RzIG9mIGxlZ3VtaW5vdXMgcGxhbnRzXSc7Civojqg+J1toZXJiXSc7Civojqo+J1thcnRlbWlzaWFdJzsKK+iOqz4nW2RvIG5vdF0nOwor6I6xPidbZ29vc2Vmb290XSc7CivojrU+J1tkb2RkZXJdJzsKK+iOvT4nW3RoaWNrZXRdJzsKK+iPgT4nW2Zsb3dlciBvZiBsZWVrIGZhbWlseV0nOwor6I+FPidbY29hcnNlIGdyYXNzXSc7Civoj4o+J1tjaHJ5c2FudGhlbXVtXSc7Civoj4w+J1ttdXNocm9vbV0nOwor6I+OPidbYmVhdXRpZnVsIGphZGVdJzsKK+iPkz4nW2ZydWl0c10nOwor6I+WPidbaXJpc10nOwor6I+YPidbY2VsZXJ5XSc7Civoj5w+J1t2ZWdldGFibGVzXSc7Civoj58+J1tkb2RkZXJdJzsKK+iPoD4nW3NwaW5hY2ggYW5kIHNpbWlsYXIgZ3JlZW5zXSc7Civoj6k+J1toZXJiXSc7Civoj6s+J1tjZWxlcnldJzsKK+iPrz4nW2Zsb3dlcnldJzsKK+iPsD4nW3dpbGQgcmljZV0nOwor6I+xPidbd2F0ZXItY2hlc3RudXRdJzsKK+iPsj4nW2ZyYWdyYW50XSc7Civoj7Q+J1tzbWFsbCBidWRkaGlzdCBtb25hc3RlcnldJzsKKyMi6I+3PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivoj7s+J1thcnRlbWlzaWFdJzsKK+iPvT4nW2JlYW5zIGFuZCBwZWFzXSc7CivokIM+J1tkZW5zZV0nOwor6JCEPidbZ3JhcGVzXSc7CivokIc+J1thdmVycmhvcmEgY2FyYW1ib2xhXSc7CivokIs+J1tsdXh1cmlhbnQgZm9saWFnZV0nOwor6JCMPidbYnVkXSc7CivokI0+J1tkdWNrd2VlZF0nOwor6JCOPidbd2l0aGVyXSc7CisjIuiQkz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JCgPidbYnVkXSc7CisjIuiQoj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JCpPidbc2NhbmRlbnQgaG9wXSc7CisjIuiQqj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JCsPidbdGVuIHRob3VzYW5kXSc7CivokLE+J1tkYXktbGlseV0nOwor6JC1PidbbGV0dHVjZV0nOwor6JC4PidbZG9nd29vZF0nOwor6JC8PidbY2FseXggb2YgZmxvd2VyXSc7CivokL0+J1tmYWxsXSc7CivokYY+J1tyZXNlcnZlXSc7CivokYk+J1tsZWFmXSc7CisjIuiRjj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JGXPidbbWFuaWZlc3RdJzsKK+iRmz4nW2VkaWJsZSBiZWFuXSc7CivokaE+J1tncmFwZXNdJzsKK+iRoj4nW2NvdmVyXSc7CivokaM+J1tkaXJlY3RdJzsKK+iRpj4nW3JlZWRdJzsKK+iRqT4nW2Zsb3dlcnNdJzsKK+iRqz4nW2JvdHRsZS1nb3VyZF0nOwor6JGsPidbYnVyeV0nOwor6JGtPidbYnVscnVzaF0nOworIyLoka0+J1tidWxydXNoXSciLAor6JGvPidbbGVhZiBvZiBhbmdlbGljYSBwbGFudF0nOwor6JGxPidbc2NhbGxpb25zXSc7CivokbU+J1tzdW5mbG93ZXJdJzsKK+iRtz4nW21lYXQgZGlldF0nOwor6JG5Pidba2luZCBvZiBjaHJ5c2FudGhlbXVtXSc7Civokbo+J1t0aGF0Y2hdJzsKK+iSgj4nW3BlZHVuY2xlIG9yIHN0ZW0gb2YgcGxhbnRzXSc7CisjIuiShD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JKLPidbc3VybmFtZV0nOwor6JKQPidbY29sbGVjdF0nOwor6JKUPidbdHJhbnNwbGFudF0nOwor6JKZPidbY292ZXJdJzsKK+iSnD4nW2dhcmxpY10nOwor6JKfPidbYmV0ZWwgcGVwcGVyXSc7CivokqE+J1tidXJkb2NrXSc7Civokq0+J1t0byBjdXRncmFzc10nOwor6JKyPidbdHlwZSBvZiBydXNoXSc7Civokrg+J1tzdGVhbV0nOwor6JK5PidbcmVlZF0nOwor6JK7PidbcnVzaGVzXSc7Civokrw+J1tibHVlXSc7Civokr8+J1ttdWd3b3J0XSc7Civok4E+J1thYnVuZGFudF0nOwor6JOEPidbc3RvcmVdJzsKK+iThj4nW3N0cmF3IG1hdF0nOwor6JOJPidbaGliaXNjdXNdJzsKK+iTij4nW2x1eHVyaWFudCB2ZWdldGF0aW9uXSc7Civok4s+J1tjb3Zlcl0nOwor6JONPidbbWlsZm9pbF0nOwor6JOQPidbc3RyYXcgYmVkIG1hdF0nOwor6JORPidbcmFpbiBjb2F0IG1hZGUgb2Ygc3RyYXddJzsKK+iTlj4nW2Nhc3Rvci1vaWwgcGxhbnRdJzsKKyMi6JOZPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivok5o+J1tveGFsaWMgKHVzZWQgaW4gY29tcG91bmRzKV0nOwor6JOsPidbdHlwZSBvZiByYXNwYmVycnldJzsKK+iTrj4nW2xvdHVzXSc7Civok7Q+J1tlZGlibGUgd2F0ZXIgcGxhbnRdJzsKK+iTvD4nW3NtYXJ0d2VlZF0nOwor6JO/PidbY2xvdmVyXSc7CivolIA+J1tzY3JlZW5dJzsKK+iUhj4nW3dhdGVyLWNoZXN0bnV0XSc7CivolJE+J1tkaXNkYWluXSc7CivolJM+J1tjcmVlcGluZyBwbGFudHNdJzsKK+iUlD4nW3JhZGlzaF0nOwor6JSVPidbcGVkdW5jbGUgb3Igc3RlbSBvZiBwbGFudHNdJzsKK+iUlz4nW3N1Z2FyIGNhbmVdJzsKK+iUmD4nW2dpbnNlbl0nOwor6JSaPidbbHV4dXJpYW50XSc7CivolJ8+J1tmcmFtZSBvbiB3aGljaCBzaWxrd29ybXMgc3Bpbl0nOwor6JShPidbc3VybmFtZV0nOwor6JSmPidbcGFyYXNpdGljIHBsYW50c10nOwor6JSsPidbdmVnZXRhYmxlc10nOwor6JStPidbc2hhZGVdJzsKK+iUtT4nW2hpZGVdJzsKK+iUvT4nW2NvdmVyXSc7CisjIuiVgD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JWBPidbbmV0dGxlXSc7CivolYM+J1tmb3JlaWduIHRoaW5nc10nOwor6JWIPidbbXVzaHJvb21zXSc7CivolYk+J1tiYW5hbmFdJzsKK+iVij4nW3Vub3BlbmVkIGZsb3dlcnNdJzsKK+iViz4nW3Vub3BlbmVkIGZsb3dlcnNdJzsKK+iVjj4nW2J1Y2t3aGVhdF0nOwor6JWVPidbY2FyeW9wdGVyaXMgZGl2YXJpY2F0YV0nOworIyLolZc+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iVmD4nW2Z1ZWxdJzsKK+iVmj4nW2NhbHl4IG9mIGZsb3dlcl0nOwor6JWjPidbaGliaXNjdXNdJzsKK+iVqD4nW3B0ZXJpcyBhcXVpbGluYV0nOwor6JWpPidbcG9uZF0nOwor6JWqPidbbHV4dXJpb3VzIGdyb3d0aCBvZiB3ZWVkc10nOwor6JWtPidbY29tbW9uIGFydGVtaXNpYV0nOwor6JW3PidbeWFtXSc7Civolb4+J1tidWRzXSc7CivoloA+J1t0aGUgaGlwcHVyaXMgb3IgbWFyZScncyB0YWlsIHBsYW50XSc7CivoloQ+J1t0aGluXSc7Civoloc+J1tvc211bmRhIHJlZ2FsaXNdJzsKK+iWiD4nW2x1eHVyaWFudF0nOwor6JaKPidbY2lyY2l1bV0nOwor6JaQPidbc3BpbmFjaF0nOwor6JaRPidbZ2luZ2VyXSc7CivolpQ+J1tyb3NlXSc7Civolpc+J1tnYXJkZW5dJzsKK+iWmT4nW3dlZWRdJzsKK+iWmz4nW2tpbmQgb2YgbWFyc2ggZ3Jhc3NdJzsKK+iWnD4nW2V2ZXJncmVlbiBzaHJ1YnNdJzsKK+iWpD4nW2FsbGl1bSBiYWtlcmldJzsKK+iWpj4nW29mZmVyXSc7Civolqg+J1tkZWF0aCBvZiBwcmluY2VdJzsKK+iWqT4nW3RyYW5zbGl0ZXJhdGlvbiBvZiBcInNhdFwiIG9mIGJvZGRoaXNhdHR2YSBldGMuXSc7Civolqo+J1tmdWVsXSc7Civolqs+J1thIG1lZGljaW5hbCBoZXJiXSc7Civolqw+J1tkcnVnc10nOwor6JauPidbbWFyc2hdJzsKK+iWrz4nW3lhbV0nOwor6Ja5PidbY3lwZXJ1cyByb3R1bmR1c10nOwor6Ja6Pidbd2F0ZXItY2hlc3RudXRzXSc7Civol4E+J1tzdHJhd10nOwor6JeJPidbbWF0XSc7Civol40+J1tibHVlXSc7Civol48+J1toaWRlXSc7Civol5A+J1tkaXNyZWdhcmRdJzsKK+iXlT4nW2xvdHVzIHJvb3RdJzsKK+iXnD4nW2NoZW5vcG9kaXVtIGFsYnVtXSc7Civol50+J1thcnRdJzsKK+iXpD4nW3JhdHRhbl0nOwor6JelPidbZHJ1Z3NdJzsKK+iXqT4nW2ZlbmNlXSc7Civol6o+J1ttYXJzaF0nOwor6Je3PidbeWFtXSc7Civol7k+J1tsdXNoXSc7Civol7o+J1tydXNoIHVzZWQgaW4gbWFraW5nIG1hdHNdJzsKK+iXuz4nW3NwbGVuZGlkXSc7Civol74+J1tzaGFkZV0nOwor6JiCPidbc3RhbWVuIG9yIHBpc3RpbF0nOwor6JiGPidbcnVzaGVzXSc7CivomIc+J1t0aHltZV0nOwor6JiKPidbY29sbGVjdF0nOwor6JiLPidbYXBwbGVdJzsKK+iYkz4nW3RoeW1lXSc7CivomJY+J1tzdHVtcF0nOwor6JiXPidbc3R1bXBdJzsKK+iYmj4nW21vc3NdJzsKK+iYoj4nW3RhbGwgZ3Jhc3NdJzsKK+iYrT4nW29yY2hpZF0nOwor6JivPidbdG8gdG9zcyBhYm91dF0nOworIyLomK8+J1t0byB0b3NzIGFib3V0XSciLAor6Ji/PidbdHlwZSBvZiBjcmVlcGluZyBwbGFudF0nOwor6JmNPidbdGlnZXJdJzsKK+iZjj4nW3RpZ2VyXSc7CivomZA+J1tjcnVlbF0nOwor6JmUPidbYWN0IHdpdGggcmV2ZXJlbmNlXSc7CivomZU+J1twbGFjZV0nOwor6JmaPidbZmFsc2VdJzsKK+iZnD4nW2NhcHR1cmVdJzsKK+iZnj4nW2NvbmNlcm5lZCBhYm91dF0nOwor6JmfPidbbWFya10nOwor6JmnPidbbG9zZV0nOwor6JmrPidbaW5zZWN0c10nOwor6JmxPidbbG91c2VdJzsKK+iZuT4nW3JhaW5ib3ddJzsKK+iZuz4nW2hvcnNlZmx5XSc7Civomoo+J1ttb3NxdWl0b10nOwor6JqLPidbZ25hdF0nOwor6JqMPidbb3lzdGVyc10nOwor6JqTPidbZWFydGh3b3JtXSc7CivompU+J1tzaWxrd29ybXNdJzsKK+iaoz4nW2NlbnRpcGVkZV0nOwor6JqkPidbZmxlYV0nOwor6JqpPidbd29ybV0nOwor6JqqPidbdGFkcG9sZV0nOwor6JqrPidbYWJhbG9uZV0nOwor6JqvPidbZWFydGh3b3JtXSc7CivomrA+J1ttaWxsaXBlZGVdJzsKK+iatj4nW2tpbmQgb2YgY2xhbV0nOwor6JuEPidbbW9sZSBjcmlja2V0XSc7Civom4Y+J1ttYWdnb3RzXSc7Civom4c+J1tzbmFrZV0nOwor6JuJPidbZHJhZ29uZmx5XSc7Civom4s+J1tlZ2dzXSc7Civom40+J1tnbG93LXdvcm1dJzsKK+ibjj4nW295c3Rlcl0nOwor6JuUPidbdGFwZXdvcm1dJzsKK+ibmT4nW2Zyb2ddJzsKK+ibmz4nW3NwaWRlcl0nOwor6JuePidbc25haWxdJzsKK+ibnz4nW3NjYWx5IGRyYWdvbiB3aXRoIGZvdXIgbGVnc10nOwor6JukPidbY2xhbV0nOwor6JupPidbY3JpY2tldF0nOworIyLom6k+J1tjcmlja2V0XSciLAor6JutPidbbGVlY2hdJzsKK+ibrj4nW2JhcmJhcmlhbnNdJzsKK+ibrz4nW3NocmltcF0nOwor6Ju4PidbbG9uZyBsZWdnZWQgc3BpZGVyXSc7Civom7k+J1tjaHJ5c2FsaXNdJzsKK+ibuz4nW21vbHRdJzsKK+ibvj4nW21vdGhdJzsKK+icgD4nW25hbWUgb2YgYW4gYW5jaWVudCBzdGF0ZV0nOwor6JyCPidbYmVlXSc7CivonIM+J1ttYXJpbmUgbW9uc3RlciB3aGljaCBjYW4gY2hhbmdlIGl0cyBzaGFwZV0nOwor6JyGPidbYSB2YXJpZXR5IG9mIGJpdmFsdmVzXSc7CivonIg+J1tjZW50aXBlZGVdJzsKK+iciT4nW21heWZseV0nOwor6JyKPidbY2xhbV0nOwor6JyNPidbdG9hZF0nOwor6JyRPidbZWdnXSc7CivonJI+J1ttaWxsaXBlZGVdJzsKK+icmD4nW3NwaWRlcl0nOwor6JyaPidbY29ja3JvYWNoXSc7CivonJw+J1tob25leV0nOwor6JylPidbbGl6YXJkXSc7CivonKk+J1tjaWNhZGFdJzsKK+ictD4nW2xpemFyZF0nOwor6Jy3PidbY3JlZXAgbGlrZSB3b3JtXSc7CivonLs+J1tkcmFnb25mbHldJzsKK+icvz4nW2NyZWVwXSc7CivonYk+J1tjaWNhZGFdJzsKK+idiz4nW3dheF0nOwor6J2MPidbdGFkcG9sZV0nOwor6J2OPidbc2NvcnBpb25dJzsKK+idkz4nW3NuYWlsXSc7CivonZU+J1tuaWJibGUgYXdheV0nOwor6J2XPidba2luZCBvZiBsb2N1c3RdJzsKK+idmT4nW2JhdF0nOwor6J2fPidbaGVkZ2Vob2ddJzsKK+idoD4nW2tpbmQgb2YgYmF0XSc7CivonaM+J1ttYXlmbHldJzsKK+idpj4nW3NocmltcF0nOwor6J2oPidbbG91c2VdJzsKKyMi6J2oPidbbG91c2VdJyIsCivona4+J1t2ZW5vbW91cyBzbmFrZV0nOwor6J20PidbYnV0dGVyZmx5XSc7CivonbY+J1tidXR0ZXJmbHldJzsKK+iduD4nW3NuYWlsXSc7Civonb8+J1tmbGllc10nOwor6J6CPidbbWFudGlzXSc7Civono0+J1ttZWx0XSc7Civonp8+J1traW5kIG9mIGNhdGVycGlsbGFyXSc7CivonqI+J1tnbG93LXdvcm1dJzsKK+ieqz4nW3BvaXNvbl0nOwor6J6vPidbbmlwcGVyc10nOwor6J6zPidbbWFudGlzXSc7Civonro+J1tzcGlyYWwgc2hlbGxdJzsKK+ieuz4nW2dyeWxsb3RhbHBhIGFmcmljYW5hXSc7Civonr0+J1trYXR5ZGlkXSc7Civon4A+J1tjcmlja2V0XSc7Civon4Q+J1t0byBoaWJlcm5hdGVdJzsKK+ifhj4nW2Zyb2ddJzsKK+ifhz4nW2Zyb2ddJzsKK+ifiz4nW2NyaWNrZXRdJzsKKyMi6J+LPidbY3JpY2tldF0nIiwKK+ifkj4nW3B5dGhvbl0nOwor6J+gPidbY29pbF0nOwor6J+vPidbd29ybXNdJzsKK+ifsj4nW3dvcm1zXSc7Civon7Y+J1tyYXpvciBjbGFtXSc7Civon7c+J1ttYW50aXNdJzsKK+ifuT4nW2NyYWJdJzsKK+ifuz4nW2FudHNdJzsKK+ifvj4nW3RvYWRdJzsKK+ighT4nW2ZsaWVzXSc7CivooI0+J1tzY29ycGlvbl0nOwor6KCOPidbcHl0aG9uXSc7CivooI8+J1tjcmFiXSc7CivooJE+J1tsaXphcmRdJzsKK+iglT4nW2V1bWVuZXMgcG9saWZvbWlzXSc7CivooJY+J1ttZWFzdXJpbmcgd29ybV0nOwor6KChPidbd29vZC1ib3JpbmcgaW5zZWN0XSc7CivooKI+J1t3cmlnZ2xlXSc7CivooKM+J1tveXN0ZXJdJzsKK+igpz4nW21vdGhdJzsKK+igsT4nW3Bvc2lvbl0nOwor6KC2Pidbc2lsa3dvcm1zXSc7CivooLk+J1ttb3RoXSc7CivooLs+J1tiYXJiYXJpYW5zXSc7CivooYA+J1tibG9vZF0nOwor6KGCPidbdG8gYmUgZGVmZWF0ZWRdJzsKK+ihhD4nW2VwaXN0YXhpc10nOwor6KGGPidbbXVsdGl0dWRlXSc7CivooYw+J1tnb10nOwor6KGNPidbb3ZlcmZsb3ddJzsKK+ihkj4nW2JyYWddJzsKK+ihkz4nW2FydF0nOwor6KGXPidbc3RyZWV0XSc7CivooZk+J1twdWJsaWMgb2ZmaWNlXSc7CivooZs+J1tndWFyZF0nOwor6KGdPidbcnVzaCBhZ2FpbnN0XSc7CivooZ4+J1tndWFyZF0nOwor6KGhPidbbWVhc3VyZV0nOwor6KGiPidbaGlnaHdheV0nOwor6KGjPidbY2xvdGhlc10nOwor6KGoPidbc2hvd10nOwor6KGrPidbc2hpcnRdJzsKK+ihsD4nW2RlY2xpbmVdJzsKK+ihsj4nW21lbmRdJzsKK+ihtT4nW2NoZW1pc2VdJzsKK+ihtz4nW2hlYXJ0XSc7Civoob0+J1tsYXBlbF0nOwor6KG+PidbY292ZXJsZXRdJzsKK+ihvz4nW2NvbGxhciBvciBsYXBlbCBvZiBnYXJtZW50XSc7CivoooE+J1tyb2JlXSc7CivoooI+J1tzbGVldmVzXSc7Civooog+J1tidWRkaGlzdCBjYXNzb2NrXSc7Civooos+J1twb2NrZXRdJzsKK+iijT4nW2xvbmcgZ293bl0nOwor6KKSPidbc3RyaXBdJzsKK+iilj4nW3NsZWV2ZV0nOwor6KKXPidbdW5saW5lZCBnYXJtZW50c10nOworIyLoopk+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iinj4nW2NlcmVtb25pYWwgZHJlc3Mgd29ybiBieSBlbXBlcm9yXSc7CivooqI+J1tyb2JlXSc7CivooqQ+J1tsb25naXR1ZGVdJzsKK+iiqz4nW3Bhc3NpdmUgaW5kaWNhdG9yIFwiYnlcIl0nOworIyLooq4+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6KKwPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivoorE+J1twaWVjZSBvZiBjbG90aCB1c2VkIHdyYXAgYnVuZGxlc10nOwor6KK0PidbcGFudHNdJzsKK+iitT4nW2xhcGVsXSc7Civoorc+J1tsaW5lZCBnYXJtZW50XSc7Civoor8+J1tnb3duXSc7Civoo4E+J1tjdXQgb3V0XSc7Civoo4I+J1tzcGxpdF0nOworIyLoo4I+J1tzcGxpdF0nIiwKKyMi6KOCPidbc3BsaXRdJyIsCivoo4U+J1tkcmVzc10nOwor6KOPPidbaW5zaWRlXSc7Civoo5Q+J1twcm9nZW55XSc7Civoo5U+J1thYnVuZGFudF0nOwor6KOYPidbZnVyIGdhcm1lbnRzXSc7Civoo5k+J1tza2lydF0nOwor6KOcPidbbWVuZF0nOwor6KOdPidbZHJlc3NdJzsKK+ijnz4nW2EgY2Fzc29jayBvciByb2JlIG9mIGEgbW9ua10nOwor6KOhPidbaW5zaWRlXSc7Civoo6g+J1thaWRdJzsKK+ijsj4nW3dhaXN0Y29hdF0nOwor6KOzPidbY2xvdGhlc10nOwor6KO0Pidbc3VybmFtZV0nOwor6KO4PidbYmFyZV0nOwor6KO5Pidbd3JhcF0nOwor6KO8PidbdG8gdGFrZSBvZmYgb25lJydzIHRvcF0nOwor6KO9PidbbWFrZV0nOwor6KO+PidbbGFwZWxdJzsKK+ikgj4nW2phY2tldF0nOworIyLopIM+J1thIHNlYW0gaW4gYSBnYXJtZW50XSciLAor6KSHPidbcmVwZWF0XSc7CivopIo+J1tjcmFtcGVkXSc7CivopIw+J1t0cm91c2Vyc10nOwor6KSQPidbY29hcnNlIHdvb2xlbiBjbG90aF0nOwor6KSSPidbcHJhaXNlXSc7CivopJM+J1tzd2FkZGxpbmcgY2xvdGhdJzsKK+iknT4nW3VubGluZWQgZ2FybWVudF0nOworIyLopJ4+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ikpT4nW21hdHRyZXNzXSc7CivopKo+J1tzdHJpcF0nOwor6KSrPidbc3RyaXBdJzsKK+iktj4nW3BsZWF0XSc7CivopLg+J1tsYXBlbF0nOwor6KS7PidbZGlydHldJzsKK+ilgT4nW3N3YWRkbGluZyBjbG90aGVzXSc7CivopYM+J1tjb21tZW5kXSc7CivopYQ+J1thaWRdJzsKK+iljD4nW3VubGluZWQgZ2FybWVudF0nOwor6KWNPidbbWl4ZWRdJzsKK+illj4nW291dGVyIGdhcm1lbnRzXSc7CivopZ4+J1tmb2xkXSc7CivopZ8+J1tsYXBlbF0nOwor6KWgPidbY3JvdGNoIG9yIHNlYXQgb2YgcGFudHNdJzsKK+ilpD4nW3JhZ2dlZF0nOwor6KWmPidbc2hvcnQgY29hdF0nOwor6KWqPidbc29ja3NdJzsKK+ilrT4nW3R1Y2sgdXAgaGVtIG9mIGdhcm1lbnQgYW5kIHdyYXBdJzsKK+ilrz4nW3VuZGVyd2Vhcl0nOwor6KWyPidbcmFpZF0nOwor6KW0PidbYSBvbmUgcGllY2UgZ2FybWVudF0nOworIyLopbY+J1tpZ25vcmFudF0nIiwKK+ilvj4nW2NvdmVyXSc7Civopb8+J1t3ZXN0KGVybildJzsKK+imgT4nW25lY2Vzc2FyeV0nOwor6KaDPidbcmVhY2ggdG9dJzsKK+imhj4nW2NvdmVyXSc7Civopoc+J1tydWxlIGJ5IG1pZ2h0IHJhdGhlciB0aGFuIHJpZ2h0XSc7Civopog+J1tpbnZlc3RpZ2F0ZV0nOwor6KaKPidbaGFsdGVyXSc7Civopos+J1tzZWVdJzsKK+imjz4nW3J1bGVzXSc7CivoppM+J1tzZWVrXSc7CivoppY+J1tsb29rIGF0XSc7Civoppc+J1twZWVrXSc7Civoppg+J1twZWVrXSc7Civoppo+J1t3YWtlIHVwIGZyb20gc2xlZXBdJzsKK+imoT4nW3dpemFyZF0nOwor6KamPidbZGVzaXJlIHN0cm9uZ2x5XSc7Civopqc+J1tsb29rIGF0XSc7Civopqk+J1tzZWVdJzsKK+imqj4nW3JlbGF0aXZlc10nOwor6KasPidbY292ZXRdJzsKK+imrz4nW21lZXQgb3Igc2VlIHVuZXhwZWN0ZWRseV0nOwor6KayPidbaGF2ZSBpbXBlcmlhbCBhdWRpZW5jZV0nOwor6KazPidbc2VlXSc7Civopro+J1t3YWtlIHVwIGZyb20gc2xlZXBdJzsKK+imvT4nW2xvb2sgYXRdJzsKK+imvz4nW3NlZV0nOwor6KeAPidbc2VlXSc7Civop5I+J1tob3JuXSc7Civop5o+J1tqdWddJzsKK+innD4nW2JlYWtdJzsKK+innT4nW2dvcmVdJzsKK+inoz4nW2xvb3Nlbl0nOwor6KemPidbYnV0dF0nOwor6KenPidbbG9vc2VuXSc7Civop7Q+J1t3aW5lIHZlc3NlbF0nOwor6Ke4PidbdG91Y2hdJzsKK+iogD4nW3dvcmRzXSc7CivoqII+J1tkcmF3IHVwIGFncmVlbWVudF0nOwor6KiDPidbb2JpdHVhcnldJzsKK+ioiD4nW3BsYW5dJzsKK+ioij4nW2lucXVpcmVdJzsKK+iojD4nW2NvbmZ1c2lvbl0nOwor6KiOPidbYXNrIGZvcl0nOwor6KiQPidbZXhwb3NlIG90aGVyJydzIHNlY3JldHNdJzsKK+iokz4nW3RlYWNoXSc7CivoqJY+J1tmaW5pc2hdJzsKK+iolz4nW2VudHJ1c3RdJzsKK+iomD4nW3JlY29yZF0nOwor6KibPidbc3dpbmRsZV0nOwor6KidPidbZXhwcmVzcyBzdXJwcmlzZV0nOwor6KifPidbYWNjdXNlXSc7CivoqKM+J1t0YWtlIGxlYXZlIG9mXSc7CivoqKU+J1tzbG93IG9mIHNwZWVjaF0nOwor6KiqPidbdmlzaXRdJzsKK+iorT4nW2J1aWxkXSc7CivoqLE+J1thbGxvd10nOwor6KizPidbdHJhbnNsYXRlXSc7CivoqLQ+J1thY2N1c2VdJzsKK+iotj4nW3Njb2xkIGxvdWRseV0nOwor6Ki6PidbZXhhbWluZSBwYXRpZW50XSc7CivoqLs+J1tleHBsYWluXSc7CivoqLw+J1twcm92ZV0nOwor6KmBPidbZXhlZ2VzaXNdJzsKK+iphj4nW3NsYW5kZXJdJzsKK+ipiD4nW3Njb2xkXSc7CivoqZA+J1tjaGVhdF0nOwor6KmRPidbY2hlYXRdJzsKK+ipkj4nW2JlcXVlYXRoXSc7CivoqZQ+J1tkZWNyZWVdJzsKK+iplT4nW2FwcHJhaXNlXSc7CivoqZs+J1tjdXJzZV0nOwor6KmePidbd29yZHNdJzsKK+ipoD4nW3NpbmddJzsKK+ipoj4nW2lucXVpcmUgaW50b10nOwor6KmjPidbcmVhY2hdJzsKK+ippj4nW3Rlc3RdJzsKK+ipqT4nW3BvZXRyeV0nOwor6KmrPidbYmUgc3VycHJpc2VkXSc7Civoqaw+J1thYnVzZV0nOwor6KmtPidbZGVjZWl2ZV0nOwor6KmuPidbZXhwbGFpbl0nOwor6KmwPidbcXVlc3Rpb25dJzsKK+ipsT4nW3NwZWVjaF0nOwor6KmyPidbc2hvdWxkXSc7CivoqbM+J1tkZXRhaWxlZF0nOwor6Km8PidbdGVhc2VdJzsKK+iqgj4nW3RlbXB0XSc7CivoqoQ+J1tldWxvZ2l6ZV0nOwor6KqFPidbZXhlY3V0ZV0nOwor6KqHPidbZXhhZ2dlcmF0ZV0nOwor6KqJPidbZmFtZV0nOwor6KqMPidbd3JpdGUgZG93bl0nOwor6KqNPidbcmVjb2duaXplXSc7CivoqpE+J1tkZWNlaXZlXSc7CivoqpM+J1tzd2Vhcl0nOwor6KqVPidbYmVhciBjaGlsZHJlbl0nOwor6KqYPidbcGVyc3VhZGVdJzsKK+iqmj4nW2NyaXRpY2l6ZV0nOwor6KqePidbbGFuZ3VhZ2VdJzsKK+iqoD4nW3NpbmNlcmVdJzsKK+iqoT4nW3dhcm5dJzsKK+iqoz4nW21ha2UgZmFsc2UgYWNjdXNhdGlvbl0nOwor6KqkPidbZXJyXSc7CivoqqU+J1tpbmZvcm1dJzsKK+iqpj4nW3JlY2l0ZV0nOwor6KqoPidbdGVhY2hdJzsKK+iqrD4nW3NwZWFrXSc7Civoqq0+J1tyZWFkXSc7CivoqrA+J1t3aG8/IHdob20/IHdob3NlPyBhbnlvbmU/XSc7CivoqrI+J1tsZXNzb25dJzsKK+iquT4nW3NsYW5kZXJdJzsKK+iqvD4nW2ZyaWVuZHNoaXBdJzsKK+iqvz4nW3RyYW5zZmVyXSc7Civoq4I+J1tmbGF0dGVyXSc7Civoq4Q+J1twYXRpZW50XSc7Civoq4c+J1t0YWxrXSc7Civoq4s+J1thc2tdJzsKK+irjD4nW3JlbW9uc3RyYXRlXSc7Civoq40+J1t0byBleHBvc3R1bGF0ZV0nOwor6KuPPidbY29uc3VsdF0nOwor6KuSPidbZXhjdXNlXSc7Civoq5Y+J1tkZWJhdGVdJzsKK+irmj4nWyhrb2t1amkpIGNvbW1hbmRdJzsKK+irmz4nW2ZsYXR0ZXJdJzsKK+irnD4nW2ludGVsbGlnZW5jZSByZXBvcnRdJzsKK+irnj4nW2JyYWddJzsKK+iroD4nW25vaXN5XSc7Civoq6E+J1twb3N0aHVtb3VzIG5hbWVdJzsKK+iroj4nW2pva2VzXSc7Civoq6Q+J1tob25lc3Qgc3BlZWNoXSc7Civoq6Y+J1tjYXJlZnVsXSc7Civoq6c+J1toYXJtb25pemVdJzsKK+irqz4nW3JlbW9uc3RyYXRlXSc7Civoq60+J1twcm9jbGFpbV0nOwor6KuuPidbY29uc3VsdF0nOwor6KuxPidbY29uY2VhbF0nOwor6KuzPidbdmVyc2VkIGluXSc7Civoq7c+J1tyZWNpdGVdJzsKK+iruD4nW3NldmVyYWxdJzsKK+iruj4nW3Byb3ZlcmJdJzsKK+irvj4nW3Byb21pc2VdJzsKK+isgD4nW3BsYW5dJzsKK+isgT4nW3Zpc2l0XSc7CivorII+J1tzYXldJzsKK+ishD4nW2NvcHldJzsKK+ishz4nW3N0dXR0ZXJdJzsKK+isjD4nW3NsYW5kZXJdJzsKK+isjj4nW3JpZGRsZV0nOwor6KyQPidbY2FsbV0nOwor6KyUPidbamVlcl0nOwor6KyWPidbcmlzZSB1cF0nOwor6KyXPidbc2xhbmRlcl0nOwor6KyZPidbaHVtYmxlXSc7CivorJo+J1t0byBjb25mZXIgcG9zdGh1bW91cyB0aXRsZXNdJzsKK+ismz4nW2V4cGxhaW5dJzsKK+isnT4nW3RoYW5rXSc7CivorKA+J1tzaW5nXSc7CivorKE+J1tzaW5nXSc7CivorKY+J1t0IHNwZWFrIHNvZnRseV0nOwor6KyoPidbc2NoZW1lXSc7CivorKs+J1tjaGFyZ2VdJzsKK+isrD4nW2Vycm9yXSc7CivorLM+J1tzaW5nXSc7CivorLk+J1twcnVkZW50XSc7CivorL4+J1tkZWNlaXZlXSc7CivorYE+J1tub2lzZV0nOwor6K2JPidbcHJvb2ZdJzsKK+itjD4nW2ZhbHNlXSc7CivorY4+J1tjdW5uaW5nXSc7CivorY8+J1tyaWRpY3VsZV0nOwor6K2WPidbdG8gc2xhbmRlcl0nOwor6K2YPidbcmVjb2duaXplXSc7CivorZo+J1tzdXJuYW1lXSc7CivorZs+J1t0byBzbGFuZGVyXSc7CivorZw+J1tyZWdpc3Rlcl0nOwor6K2fPidbY2xhbW9yXSc7CivoraY+J1tndWFyZF0nOwor6K2rPidbdGFsa2F0aXZlXSc7Civoraw+J1ttZXRhcGhvcl0nOwor6K2vPidbdHJhbnNsYXRlXSc7CivorbA+J1tjb25zdWx0XSc7CisjIuitsT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6K2yPidbYWxsb3ddJzsKK+ittD4nW3JlcHJpbWFuZF0nOwor6K23PidbcHJvdGVjdF0nOwor6K29PidbZmFtZV0nOwor6K6APidbcmVhZF0nOwor6K6DPidbcHJhaXNlXSc7Civoroo+J1tjaGFuZ2VdJzsKK+iujD4nW2ZlYXN0XSc7Civoro4+J1tlbmVteV0nOwor6K6QPidbZW5lbXldJzsKK+iukj4nW3NsYW5kZXJdJzsKK+iukz4nW2FsbG93XSc7CivorpY+J1twcm9waGVjeV0nOwor6K6ZPidbY2hlZXJdJzsKK+iumj4nW3ByYWlzZV0nOwor6LC3PidbdmFsbGV5XSc7CivosLo+J1t0aGUgbW91dGggb2YgYSB2YWxsZXldJzsKK+iwvz4nW3ZhbGxleV0nOwor6LGBPidbb3BlbiB1cF0nOwor6LGGPidbYmVhbnNdJzsKK+ixiD4nW2hvdz8gd2hhdD9dJzsKK+ixij4nW2FidW5kYW50XSc7CivosYw+J1twZWFzXSc7CivosY4+J1t2ZXJ0aWNhbF0nOwor6LGQPidbYWJ1bmRhbnRdJzsKK+ixlT4nW3BpZ3NdJzsKK+ixmj4nW3NtYWxsIHBpZ10nOwor6LGhPidbZWxlcGhhbnRdJzsKK+ixoj4nW2RvbWVzdGljIGFuaW1hbHNdJzsKK+ixqj4nW2JyYXZlXSc7Civosas+J1tyZWxheGVkXSc7Civosaw+J1twaWddJzsKK+ixuD4nW3JhZGljYWwgMTUzXSc7Civosbk+J1tsZW9wYXJkXSc7Civosbo+J1t3b2xmXSc7Civosbw+J1tmb3hdJzsKK+iygj4nW21hcnRlbl0nOwor6LKFPidbYnJhdmVdJzsKK+iyiT4nW2JhZGdlcl0nOwor6LKKPidbbGVvcGFyZF0nOwor6LKMPidbY291bnRlbmFuY2VdJzsKK+iyjT4nW2EgZm94LWxpa2UgYW5pbWFsXSc7Civoso4+J1tsaW9uXSc7CivospQ+J1tmb3hdJzsKK+iymD4nW3RoZSBwYW50aGVyXSc7Civosp0+J1tzZWEgc2hlbGxdJzsKK+iynj4nW3ZpcnR1b3VzXSc7CivosqA+J1tsb2FkXSc7CivosqE+J1t3ZWFsdGhdJzsKK+iyoj4nW29mZmVyIHRyaWJ1dGVdJzsKK+iypz4nW3Bvb3JdJzsKK+iyqD4nW2dvb2RzXSc7Civosqk+J1twZWRkbGVyXSc7Civosqo+J1tncmVlZHldJzsKK+iyqz4nW3N0cmluZyBvZiAxMDAwIGNvaW5zXSc7Civosqw+J1tvbmUnJ3MgcmVzcG9uc2liaWxpdHldJzsKK+iyrT4nW21hdHRlcl0nOwor6LKuPidbbnVtYmVyIHR3b10nOwor6LKvPidbc3RvcmVdJzsKK+iysD4nW2JvcnJvd10nOwor6LKyPidbcHJvcGVydHldJzsKK+iysz4nW251bWJlciB0d29dJzsKK+iytD4nW2V4cGVuc2l2ZV0nOwor6LK2PidbZGVjcmVhc2VdJzsKK+iytz4nW2J1eV0nOwor6LK4PidbbGVuZF0nOwor6LK7PidbZXhwZW5zZXNdJzsKK+iyvD4nW3Bhc3RlIHRvXSc7Civosr0+J1tnaXZlIHRvXSc7Civosr8+J1t0cmFkZV0nOwor6LOAPidbY29uZ3JhdHVsYXRlXSc7Civos4E+J1tmb3JnZSBhaGVhZF0nOwor6LOCPidbYnJpYmVdJzsKK+izgz4nW3JlbnRdJzsKK+izhD4nW2JyaWJlXSc7Civos4c+J1twcm9wZXJ0eV0nOwor6LOIPidbc3VybmFtZV0nOwor6LOKPidbdGhpZWZdJzsKK+izjT4nW2Jvb3R5XSc7Civos44+J1ttZWFuXSc7Civos5E+J1tyZWxpZXZlXSc7Civos5M+J1tndWVzdF0nOwor6LOaPidbZ2l2ZV0nOwor6LObPidbaGVscF0nOwor6LOcPidbZ2l2ZV0nOwor6LOePidbcmV3YXJkXSc7Civos6A+J1tpbmRlbW5pZnldJzsKK+izoj4nW3ZpcnR1b3VzXSc7Civos6M+J1tzZWxsXSc7Civos6Q+J1ttZWFuXSc7Civos6Y+J1t0YXhdJzsKK+izqj4nW21hdHRlcl0nOwor6LOtPidbYmV0XSc7Civos7o+J1ttYWtlIG1vbmV5XSc7Civos7s+J1tnaWZ0IG9mIG1vbmV5IGhlbHAgcGF5IGZ1bmVyYWxdJzsKK+izvD4nW2J1eV0nOwor6LO9PidbY29tcGV0ZV0nOwor6LSEPidbZ2lmdCBzdXBlcmlvcl0nOwor6LSFPidbdW5uZWNlc3NhcnldJzsKK+i0hz4nW2FmZmFibGVdJzsKK+i0iD4nW2dpdmUgcHJlc2VudF0nOwor6LSKPidbaGVscF0nOwor6LSLPidbZmFsc2VdJzsKK+i0jT4nW3N1cHBvcnRdJzsKK+i0jz4nW3dpbl0nOwor6LSQPidbZmFyZXdlbGwgcHJlc2VudF0nOwor6LSTPidbYm9vdHldJzsKK+i0lD4nW3N0cm9uZ10nOwor6LSWPidbYnV5XSc7CivotaQ+J1tyZWRdJzsKK+i1pj4nW2ZvcmdpdmVdJzsKK+i1pz4nW2JsdXNoXSc7Civotas+J1ticmlnaHRdJzsKK+i1rT4nW3JlZGRpc2ggYnJvd25dJzsKK+i1sD4nW3dhbGtdJzsKK+i1sT4nW3dhbGtdJzsKK+i1sz4nW2dyYW5kXSc7CivotbQ+J1tnbyB0b10nOwor6LW3PidbcmlzZV0nOwor6LaBPidbdGFrZSBhZHZhbnRhZ2Ugb2ZdJzsKK+i2hT4nW2p1bXAgb3Zlcl0nOwor6LaKPidbZXhjZWVkXSc7Civotpk+J1tzdXJuYW1lXSc7CivotqM+J1t3aGF0IGF0dHJhY3RzIG9uZScncyBhdHRlbnRpb25dJzsKK+i2qD4nW2hhc3Rlbl0nOwor6LazPidbZm9vdF0nOwor6La6Pidbc2l0IGNyb3NzLWxlZ2dlZF0nOwor6La+PidbdG9lXSc7Civot4I+J1tjcmVlcGluZ10nOwor6LeLPidbZ28gYnkgZm9vdF0nOwor6LeMPidbc3R1bWJsZV0nOwor6LePPidbc2l0IGNyb3NzLWxlZ2dlZF0nOwor6LeWPidbc29sZSAob2YgdGhlIGZvb3QpXSc7Civot5o+J1tzdGFnZ2VyXSc7Civot5s+J1tsYW1lXSc7Civot50+J1tkaXN0YW5jZV0nOwor6LefPidbaGVlbF0nOwor6LehPidbc2VhcmNoXSc7Civot6M+J1tiYXJlIGZvb3RlZF0nOwor6LeoPidbc3RyYWRkbGVdJzsKK+i3qj4nW2tuZWVsXSc7Civot6s+J1tzb3VuZCBvZiBmb290c3RlcHNdJzsKK+i3rz4nW3JvYWRdJzsKK+i3sz4nW2p1bXBdJzsKK+i3tT4nW3RyYW1wbGVdJzsKK+i3vD4nW2JlbnRdJzsKKyMi6Le/PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivouIg+J1tuZWdsZWN0XSc7CivouIk+J1tob3BdJzsKK+i4ij4nW2xlYXBdJzsKK+i4jz4nW3N0ZXAgb25dJzsKK+i4kD4nW3RyYW1wbGVdJzsKK+i4nT4nW2Fua2xlXSc7CivouJ4+J1tjcm91Y2hdJzsKK+i4nz4nW2hlc2l0YXRlXSc7CivouKo+J1tmb290cHJpbnRzXSc7CivouLA+J1tleGNlZWRdJzsKK+i4tD4nW2xlYXBdJzsKK+i4tT4nW2hlZWxdJzsKK+i5gj4nW3RyYW1wbGUgdW5kZXIgZm9vdF0nOwor6LmEPidbaG9vZl0nOwor6LmHPidbbGFtZV0nOwor6LmIPidbc3RhbXAgZmVldF0nOwor6LmJPidbZXJyb3JdJzsKK+i5ij4nW2Zvb3RwYXRoXSc7CivouYw+J1t3YWxrIHJhcGlkbHldJzsKK+i5kD4nW3Rha2Ugc2hvcnQgc3RlcHNdJzsKK+i5lT4nW2NsZWFyIHdheV0nOwor6LmZPidbdXJnZW50XSc7CivouZ8+J1t0cmFjZV0nOwor6LmgPidbc3RlcCBvbl0nOwor6LmjPidbdG8ganVtcCBvdmVyXSc7CivouaQ+J1tmb290cHJpbnRzXSc7CivoubI+J1tzcXVhdF0nOwor6Lm0Pidba2lja10nOwor6Lm2Pidbc3R1bWJsZV0nOwor6Lm8Pidbd2ViYmVkIGZlZXQgb2Ygd2F0ZXJmb3dsXSc7CivouoE+J1t0ZW5zZV0nOwor6LqEPidbY3JpcHBsZV0nOwor6LqFPidbd2FsayBjYXJlZnVsbHldJzsKK+i6hz4nW2hlc2l0YXRlXSc7Civouoo+J1toZXNpdGF0ZV0nOwor6LqLPidbYXNjZW5kXSc7Civouo0+J1tza2lwXSc7CivoupE+J1t3YXZlcl0nOwor6LqTPidbc3R1bWJsZV0nOwor6LqUPidbZm9sbG93IGluXSc7Civoupk+J1t0cmFtcGxlIGRvd25dJzsKK+i6oT4nW3RyZWFkXSc7Civouqo+J1t0cmFtcGxlIGRvd25dJzsKK+i6qz4nW2JvZHldJzsKK+i6rD4nW2JvZHldJzsKK+i6rz4nW2JvZHldJzsKK+i6sD4nW2JvZHldJzsKK+i6sT4nW2hpZGVdJzsKKyMi6Lq6PidbbGllIGRvd25dJyIsCisjIui7hD4nW3RvIGdvdmVybl0nIiwKK+i7hj4nW2JvZHldJzsKKyMi6LuGPidbYm9keV0nIiwKK+i7ij4nW2NhcnRdJzsKK+i7iz4nW2NydXNoIGJ5IHdlaWdodF0nOwor6LuMPidbdHJhY2tdJzsKK+i7jT4nW2FybXldJzsKK+i7kj4nW2NhcnJpYWdlXSc7Civou5s+J1t5b2tlXSc7Civou58+J1tzb2Z0XSc7Civou6I+J1tzaGlmdF0nOwor6LujPidbcnVtYmxlXSc7Civou6s+J1tjcm9zcyBib2FyZCBhdCByZWFyIG9mIGNhcnJpYWdlXSc7Civou7g+J1theGxlXSc7Civou7s+J1theGxlXSc7Civou7w+J1tydXNoIGZvcnRoXSc7Civou70+J1tsaWdodF0nOwor6Lu+PidbaG9yaXpvbnRhbCB3b29kZW4gYmFyIGluIGZyb250IG9mIGEgc2VkYW4gY2hhaXJdJzsKK+i8gz4nW2NvbXBhcmVdJzsKK+i8hT4nW2NoYXJpb3RdJzsKK+i8iT4nW2xvYWRdJzsKK+i8ij4nW2xvdyByZWFyIHBvcnRpb24gb2YgY2FydF0nOwor6LyMPidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgdmVoaWNsZXNdJzsKK+i8kj4nW3NpZGVzIG9mIGNoYXJpb3Qgd2hlcmUgd2VhcG9uc10nOwor6LyTPidbbW91cm5dJzsKK+i8lD4nW2NoZWVrIGJvbmVdJzsKK+i8lT4nW2xpZ2h0XSc7CivovJk+J1tzaWRlcyBvZiBjaGFyaW90IHdlcmUgd2VhcG9uc10nOwor6LybPidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgdmVoaWNsZXNdJzsKK+i8nD4nW3N1cHBseSBjYXJ0XSc7CivovJ0+J1ticmlnaHRuZXNzXSc7CivovJ8+J1tzdG9wXSc7CivovKY+J1toYW5kLWNhcnRdJzsKK+i8qT4nW2dlbmVyYXRpb25dJzsKK+i8qj4nW3doZWVsXSc7CivovK8+J1tnYXRoZXIgdXBdJzsKK+i8sz4nW2h1YnMgb2Ygd2hlZWxdJzsKK+i8uD4nW3RyYW5zcG9ydF0nOwor6Ly5PidbdHdvIHBpZWNlcyBvZiB3b29kIHVuZGVybmVhdGggY2FdJzsKK+i8uz4nW3Nwb2tlcyBvZiB3aGVlbF0nOwor6Ly+PidbdHVybiBvdmVyXSc7CivovL8+J1tjYXJ0XSc7CivovYI+J1todWIgb2Ygd2hlZWxdJzsKK+i9hD4nW2xpbmNocGluIG9mIHdoZWVsXSc7CivovYU+J1theGxlXSc7CivovYY+J1t3aW5kbGFzc10nOwor6L2JPidbc2hpZnRdJzsKK+i9jD4nW3NsZWRdJzsKK+i9jT4nW3dhZ29uIHJ1dHNdJzsKK+i9jj4nW3NlZGFuLWNoYWlyXSc7CivovZc+J1tmYWlsXSc7CivovZw+J1toZWFyc2VdJzsKK+i9nz4nW3J1bWJsZV0nOwor6L2hPidbYnJpZGxlIG9mIGhvcnNlXSc7CivovaI+J1tydW4gb3ZlciBzb21ldGhpbmcgd2l0aCB2ZWhpY2xlXSc7CisjIui9oz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6L2kPidbcHVsbGV5XSc7Civovps+J1tiaXR0ZXJdJzsKK+i+nD4nW2NyaW1lXSc7Civovp4+J1t3b3Jkc10nOwor6L6fPidbbGF3XSc7CivovqM+J1twZXBwZXJ5XSc7Civovqc+J1ttYW5hZ2VdJzsKK+i+qD4nW2Rpc3Rpbmd1aXNoXSc7Civovq0+J1t3b3Jkc10nOwor6L6uPidbYnJhaWRdJzsKK+i+rz4nW2Rpc3B1dGVdJzsKK+i+sD4nW2Vhcmx5IG1vcm5pbmddJzsKK+i+sT4nW2h1bWlsaWF0ZV0nOwor6L6yPidbYWdyaWN1bHR1cmVdJzsKK+i+tz4nW3Ntb290aF0nOwor6L66PidbZWRnZV0nOwor6L67PidbY3Jvc3Nyb2Fkc10nOwor6L68PidbY3Jvd2QgaW50b10nOwor6L6/PidbZm9sbG93XSc7Civov4I+J1tkb2N0cmluYWlyZV0nOwor6L+EPidbZXh0ZW5kXSc7Civov4U+J1txdWlja10nOwor6L+OPidbcmVjZWl2ZV0nOwor6L+RPidbbmVhcl0nOwor6L+UPidbcmV0dXJuXSc7Civov5o+J1t2ZXJ5XSc7Civov6I+J1tmYXJdJzsKK+i/pT4nW2Rpc3RhbnRdJzsKK+i/pj4nW2NoYXJhY3RlciBmb3IgdHJhbnNsaXRlcmF0aW9uXSc7Civov6k+J1tiZSBuZWFyXSc7Civov6o+J1tlbmxpZ2h0ZW5dJzsKK+i/qz4nW2NvZXJjZV0nOwor6L+tPidbcmVwZWF0ZWRseV0nOwor6L+vPidbZXNjYXBlXSc7Civov7A+J1tuYXJyYXRlXSc7Civov7Q+J1tyZXZvbHZlXSc7Civov7c+J1tiZXdpdGNoXSc7Civov7g+J1tndXNoIG91dF0nOwor6L+5PidbdHJhY2VzXSc7Civov7o+J1t0aGVuXSc7Civov70+J1twdXJzdWVdJzsKK+mAgD4nW3N0ZXAgYmFja10nOwor6YCBPidbc2VlIG9mZl0nOwor6YCDPidbZXNjYXBlXSc7CivpgIU+J1ttZWV0IHVuZXhwZWN0ZWRseV0nOwor6YCGPidbZGlzb2JleV0nOwor6YCLPidbZmxlZV0nOwor6YCNPidbcmFtYmxlXSc7CivpgI4+J1tzdHJvbmddJzsKK+mAjz4nW3BlbmV0cmF0ZV0nOwor6YCQPidbY2hhc2VdJzsKK+mAkT4nW2NvbGxlY3RdJzsKK+mAkz4nW2hhbmQgb3Zlcl0nOwor6YCUPidbd2F5XSc7CivpgJU+J1twYXNzIGJ5XSc7CivpgJY+J1tmYXJdJzsKK+mAlz4nW3RlbXB0XSc7CivpgJk+J1t0aGlzXSc7CivpgJo+J1twYXNzIHRocm91Z2hdJzsKK+mAnT4nW3Bhc3MgYXdheV0nOwor6YCePidbaW5kdWxnZSBvbmVzZWxmXSc7CivpgJ8+J1txdWlja10nOwor6YCgPidbY29uc3RydWN0XSc7CivpgKE+J1tyZXRyZWF0XSc7CivpgKI+J1tjb21lIHVwb25dJzsKK+mAoz4nW2pvaW5dJzsKKyMi6YCmPidbbWVhbmRlcmluZ10nIiwKK+mArj4nW3NlaXplXSc7CivpgLE+J1t3ZWVrXSc7CivpgLI+J1thZHZhbmNlXSc7CivpgLU+J1t0aG9yb3VnaGZhcmVdJzsKK+mAtj4nW3dpbmRpbmddJzsKK+mAuD4nW2ZsZWVdJzsKK+mAuT4nW2Fycml2ZSBhdF0nOwor6YC8PidbY29tcGVsXSc7CivpgL4+J1tnbyBvdmVyXSc7CivpgYE+J1toaWRlXSc7CivpgYI+J1tjb21wbHkgd2l0aF0nOwor6YGFPidbbGF0ZV0nOwor6YGHPidbbWVldF0nOwor6YGJPidbc3B5XSc7CivpgYo+J1t3YW5kZXJdJzsKK+mBiz4nW2x1Y2tdJzsKK+mBjT4nW2V2ZXJ5d2hlcmVdJzsKK+mBjj4nW3Bhc3NdJzsKK+mBjz4nW3N0b3BdJzsKK+mBkD4nW2FmYXJdJzsKK+mBkT4nW2xlaXN1cmVdJzsKK+mBkj4nW3N0cm9uZ10nOwor6YGTPidbcGF0aF0nOwor6YGUPidbYXJyaXZlIGF0XSc7CivpgZU+J1tkaXNvYmV5XSc7CisjIumBlT4nW2Rpc29iZXldJyIsCivpgZg+J1t0byBtZWV0XSc7CivpgZk+J1tmYXIgYXdheV0nOwor6YGcPidbaHVtYmxlXSc7CivpgZ4+J1toYW5kIG92ZXJdJzsKK+mBoD4nW2Rpc3RhbnRdJzsKK+mBoT4nW2dvIHVwc3RyZWFtXSc7CivpgaM+J1tzZW5kXSc7CivpgaU+J1tmYXIgYXdheV0nOwor6YGoPidbcmFtYmxlXSc7Civpgak+J1ttYXRjaF0nOwor6YGtPidbY29tZSBhY3Jvc3NdJzsKK+mBrj4nW2NvdmVyXSc7Civpga8+J1tkZWNlaXZlXSc7CivpgbI+J1tsYXRlXSc7CivpgbU+J1tvYmV5XSc7CivpgbY+J1tlbnR3aW5lXSc7Civpgbc+J1ttb3ZlXSc7Civpgbg+J1tjaG9vc2VdJzsKK+mBuj4nW2xvc2VdJzsKK+mBvD4nW2Rpc3RhbnRdJzsKK+mBvT4nW3N1ZGRlbmx5XSc7Civpgb8+J1thdm9pZF0nOwor6YKAPidbaW52aXRlXSc7CivpgoE+J1t0YWtlIGEgYmlnIHN0cmlkZV0nOwor6YKCPidbdW5leHBlY3RlZCBtZWV0aW5nXSc7CivpgoM+J1twcm9mb3VuZF0nOwor6YKEPidbc3RpbGxdJzsKK+mChz4nW2JlIG5lYXJdJzsKK+mCiT4nW2VkZ2VdJzsKK+mCij4nW2VkZ2VdJzsKK+mCjz4nW3BhdHJvbF0nOwor6YKRPidbYXJlYV0nOwor6YKjPidbdGhhdF0nOwor6YKmPidbbmF0aW9uXSc7Civpgqg+J1t2aWxsYWdlXSc7Civpgqo+J1t3cm9uZ10nOwor6YKvPidbY2l0eSBpbiBoZWJlaSBwcm92aW5jZV0nOwor6YKxPidbc3VybmFtZV0nOwor6YK1Pidbc3VybmFtZV0nOwor6YK4Pidbb2ZmaWNpYWwgcmVzaWRlbmNlXSc7Civpg4E+J1tzd2VldCBzbWVsbGluZ10nOwor6YOKPidbc3VidXJic10nOwor6YOOPidbZ2VudGxlbWFuXSc7Civpg5s+J1tvdXRlciB3YWxscyBvZiBjaXR5XSc7Civpg6E+J1thZG1pbmlzdHJhdGl2ZSBkaXZpc2lvbl0nOwor6YOiPidbc3RhdGUgaW4gdG9kYXknJ3MgaHViZWkgcHJvdmluY2VdJzsKK+mDpD4nW2NyYWNrXSc7Civpg6g+J1twYXJ0XSc7Civpg60+J1tvdXRlciBwYXJ0IChvZiBhIGNpdHkpXSc7Civpg7U+J1twb3N0YWxdJzsKK+mDtz4nW2NvdW50cnldJzsKK+mDvT4nW21ldHJvcG9saXNdJzsKK+mEgj4nW2h1YmVpIHByb3ZpbmNlXSc7CivphJI+J1tuYW1lIG9mIGFuIGFuY2llbnQgc3RhdGVdJzsKK+mEmT4nW21lYW5dJzsKK+mErT4nW3N0YXRlIGluIHRvZGF5JydzIGhlbmFuXSc7CivphLA+J1tuZWlnaGJvcl0nOwor6YSyPidbY291bnR5IGluIGhlYmVpIHByb2luY2V2XSc7CivphYk+J1t0ZW50aCBpbiBzZXJpZXMgb2YgdHdlbHZlIGN5Y2xpY10nOwor6YWKPidbZHJ1bmtdJzsKK+mFiz4nW2NoaWVmIG9mIHRyaWJlXSc7CivphYw+J1tzZXJ2ZSB3aW5lXSc7CivphY0+J1ttYXRjaF0nOwor6YWOPidbZG91YmxlLWZlcm1lbnRlZCB3aW5lXSc7CivphZI+J1t3aW5lXSc7CivphZQ+J1tpbnRveGljYXRlZF0nOwor6YWWPidbd2luZSB3aXRoIGJpcmQgcG9pc29uIGFkZGVkXSc7CisjIumFmD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YWiPidbdG9hc3Qgb25lJydzIGhvc3Qgd2l0aCB3aW5lXSc7CivphaM+J1tlbmpveSBpbnRveGljYW50c10nOwor6YWlPidbYnV0dGVyXSc7Civphak+J1tkcnVua10nOwor6YWqPidbY3JlYW1dJzsKK+mFrD4nW3RvYXN0XSc7CivphbI+J1toYW5nb3Zlcl0nOworIyLphbI+J1toYW5nb3Zlcl0nIiwKK+mFtT4nW3llYXN0XSc7Civphbc+J1tzdHJvbmddJzsKK+mFuD4nW3RhcnRdJzsKKyMi6YaBPidbYSBraW5kIG9mIGdyZWVuLWNvbG9yZWQgd2luZV0nIiwKK+mGhz4nW3JpY2hdJzsKK+mGiT4nW2ludG94aWNhdGVkXSc7Civphos+J1t2aW5lZ2FyXSc7Civpho0+J1tlc3NlbnRpYWwgb2lsIG9mIGJ1dHRlcl0nOwor6YaQPidbcHVyZXN0IGNyZWFtXSc7CivphpI+J1t3YWtlIHVwXSc7Civphpc+J1t0byBicmV3IGZvciB0aGUgc2Vjb25kIHRpbWVdJzsKK+mGnD4nW3VnbHkgbG9va2luZ10nOwor6YaiPidbbWluY2VkIHBpY2tsZWQgbWVhdF0nOwor6YakPidbYW55IGphbS1saWtlIG9yIHBhc3RlLWxpa2UgZm9vZF0nOwor6YaqPidbdW5jbGVhciB3aW5lXSc7Civphqs+J1tjdXJlXSc7Civphq8+J1t2aW5lZ2FyXSc7CivphrQ+J1tzd2VldCB3aW5lXSc7CivphrU+J1tjb250cmlidXRlIGZvciBkcmlua3NdJzsKK+mGuD4nW2JyZXddJzsKK+mGuj4nW2dldCBkcnVua10nOwor6YeAPidbYnJld10nOwor6YeBPidbc21lYXIgd2l0aCBibG9vZCBpbiBzYWNyaWZpY2VdJzsKK+mHhj4nW2Rpc3Rpbmd1aXNoXSc7Civph4c+J1tjb2xsZWN0XSc7Civph4g+J1tpbnRlcnByZXRlXSc7Civph4k+J1tnbGF6ZV0nOwor6YeLPidbaW50ZXJwcmV0ZV0nOwor6YeMPidbdW5pdCBvZiBkaXN0YW5jZV0nOwor6YeNPidbaGVhdnldJzsKK+mHjj4nW29wZW4gY291bnRyeV0nOwor6YePPidbbWVhc3VyZV0nOwor6YeQPidbbWFuYWdlXSc7Civph5E+J1tnb2xkXSc7Civph5Y+J1trbmlmZV0nOwor6YeYPidbbmFpbF0nOworIyLph5s+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mHnD4nW2NhdWxkcm9uXSc7Civph50+J1tuZWVkbGVdJzsKKyMi6YefPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivph6E+J1tjYXVsZHJvbl0nOwor6YejPidbZmlzaF0nOwor6YemPidbYnV0dG9uXSc7Civph6c+J1ticmFjZWxldF0nOwor6Ye1Pidbb3JuYW1lbnRhbCBoYWlycGluXSc7CisjIumHtj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Ye8Pidbc3dvcmRdJzsKKyMi6Ye/PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpiI0+J1tibHVudF0nOwor6YiOPidbaG9va10nOwor6YiRPidbcGxhdGVdJzsKK+mIlD4nW3BhcGVyIG1vbmV5XSc7CivpiJU+J1tidXR0b25dJzsKK+mInj4nW3VuaXQgb2YgbWVhc3VyZSBlcXVpdmFsZW50IHRoaXJ0XSc7CivpiKk+J1tmaXJlcGxhY2VdJzsKK+mIrD4nW2JlbGxdJzsKK+mItD4nW2JlbGxdJzsKK+mItz4nW2NvYmFsdF0nOwor6Yi/PidbaGFpcnBpbl0nOwor6YmEPidbaXJvbl0nOwor6YmFPidbc3RlZWxdJzsKK+mJiD4nW3RoYWxsaXVtXSc7CivpiYk+J1tkZXZpY2UgZm9yIGNhcnJ5aW5nIGEgdHJpcG9kXSc7CivpiYs+J1tjYXJwZW50ZXInJ3MgcGxhbmVdJzsKKyMi6YmQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpiZc+J1twaW5jZXJzXSc7CivpiZo+J1tyaXZldF0nOwor6YmbPidbbGVhZCBwbHVtYnVtXSc7CivpiZ4+J1ticm9hZC1heGVdJzsKK+mJoj4nW2VhcnRoZW53YXJlIGJhc2luXSc7CivpiaQ+J1tob29rXSc7CivpiaY+J1traW5kIG9mIGdvbmcgdXNlZCBpbiBhbmNpZW50IHRpbV0nOwor6YmxPidbbWluZV0nOwor6Ym+Pidbc3BlYXJdJzsKK+mKgD4nW3NpbHZlcl0nOwor6YqDPidbYW5jaWVudCB3ZWFwb25dJzsKK+mKhT4nW2NvcHBlcl0nOwor6YqRPidbbWlsbF0nOwor6YqTPidbd2VpZ2hdJzsKK+mKlT4nW2lyb25dJzsKK+mKlj4nW3VuaXQgb2Ygd2VpZ2h0XSc7Civpipg+J1tpbnNjcmliZV0nOwor6YqaPidbbGFyZ2UgaG9lXSc7Civpips+J1tzaGFycF0nOwor6YqcPidbYml0XSc7Civpiq0+J1ttb25leV0nOwor6Yq3PidbbWVsdF0nOwor6Yq5PidbcnVzdF0nOwor6YuPPidbdG9uZ3NdJzsKK+mLkj4nW3BvaW50IG9mIHNwZWFyXSc7Civpi6Q+J1tob2VdJzsKK+mLqT4nW3BvaW50IG9mIHN3b3JkXSc7Civpi6o+J1tzcHJlYWQgb3V0XSc7Civpi60+J1tzaGFycF0nOwor6YuyPidbcml2ZXRdJzsKK+mLsz4nW21lbHRdJzsKK+mLuD4nW2Egc2F3XSc7CisjIumLuj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Yu8Pidbc3RlZWxdJzsKK+mMhj4nW3RoZSBjb2xvciBvZiBhIG1pbmVyYWxdJzsKK+mMjz4nW3NvZnQgc3RlZWxdJzsKK+mMkD4nW2dpbWxldF0nOwor6YyYPidbYmFsYW5jZSB3ZWlnaHQgb24gc2NhbGVdJzsKK+mMmT4nWzggb3pdJzsKK+mMmj4nW2NsYW5naW5nIHNvdW5kXSc7CivpjKA+J1tzcGluZGxlXSc7CivpjKI+J1ttb25leV0nOworIyLpjKM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mMpj4nW2Jyb2NhZGVdJzsKK+mMqD4nW2FuY2hvcl0nOwor6YyrPidbdGluXSc7CivpjKw+J1tzbWVsdCBtZXRhbHNdJzsKK+mMrj4nW3J1biBtZXRhbCBpbnRvIGNyYWNrc10nOwor6YyvPidbZXJyb3JdJzsKK+mMsj4nW2NvcHldJzsKKyMi6Yy1PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumMuj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpjLs+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6Y2EPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpjYs+J1tjb29raW5nLXBvdF0nOwor6Y2NPidbcGxhdGVdJzsKK+mNlD4nW2hpZ2hdJzsKKyMi6Y2WPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpjZs+J1tmb3JnZSBtZXRhbF0nOworIyLpjZw+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mNoD4nW3dlYXBvbl0nOwor6Y2sPidbc2hvdmVsXSc7Civpja4+J1ticmFzc10nOwor6Y21PidbZG9vciBib2x0XSc7Civpjbw+J1tuZWVkbGVdJzsKK+mNvj4nW2N1cF0nOwor6Y6MPidbc2lja2xlXSc7CivpjpQ+J1tmdXNlXSc7CivpjpY+J1tsb2NrXSc7Civpjpc+J1tyaWZsZV0nOwor6Y6aPidbaGFtbWVyXSc7Civpjqc+J1thcm1vcl0nOwor6Y6sPidbc3RvdmVdJzsKK+mOrT4nW3Rvd25dJzsKK+mOrj4nW3Rvd25dJzsKK+mOsD4nW21lYXN1cmUgb2Ygd2VpZ2h0IGZvciBnb2xkXSc7CisjIumOuT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Y+DPidbYXJyb3doZWFkXSc7Civpj4g+J1tjaGFpbl0nOwor6Y+QPidbcHVyZSBnb2xkXSc7Civpj5E+J1tkeXNwcm9zaXVtIHRoZSBiYXJiIG9mIGFuIGFycm93XSc7Civpj5Y+J1tmaWdodCBlbmRdJzsKK+mPlz4nW3N0cmlrZV0nOwor6Y+YPidbdGlua2xlXSc7Civpj50+J1t0cm93ZWxdJzsKK+mPoT4nW21pcnJvcl0nOwor6Y+kPidbY2FydmVdJzsKK+mPpT4nW3J1c3RdJzsKK+mPqD4nW2VuZ3JhdmluZyB0b29sXSc7CivpkIM+J1tjeW1iYWxzXSc7CivpkIc+J1t2YW5hZGl1bV0nOwor6ZCQPidbZmV0dGVyc10nOwor6ZCTPidbZmVycnVsZV0nOwor6ZCUPidbZGFnZ2VyXSc7CivpkJg+J1tjbG9ja10nOwor6ZCZPidbbGFtcF0nOwor6ZCaPidbc29mdCBzdGVlbF0nOwor6ZChPidbaXJvbl0nOwor6ZCrPidbZW5ncmF2aW5nIHRvb2xdJzsKK+mQtT4nW2lyb25dJzsKK+mQtj4nW21ldGFsIHJpbmddJzsKK+mQuD4nW2JlbGxdJzsKK+mQuj4nW2ZyeWluZyBwYW5dJzsKKyMi6ZGBPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpkYQ+J1ttZWx0XSc7CivpkZE+J1ttaXJyb3JdJzsKK+mRkj4nW21pcnJvcl0nOwor6ZGTPidbc3BlYXJdJzsKK+mRmj4nW2RyaWxsXSc7CivpkZs+J1ttaW5lXSc7CivpkZ4+J1tzb2xkZXJdJzsKK+mRoD4nW21lbHRdJzsKK+mRoj4nW2ZpbGVdJzsKK+mRqj4nW2ZpcmVwbGFjZV0nOwor6ZGwPidba2V5XSc7CivpkbU+J1tqYXJdJzsKK+mRtz4nW3R3ZWV6ZXJzXSc7Civpkbw+J1tnb25nXSc7Civpkb0+J1tkcmlsbF0nOwor6ZG+PidbYmVsbHMgaHVuZyBvbiBob3JzZV0nOwor6ZG/PidbY2hpc2VsXSc7CivpkoE+J1thIG1hdHRvY2tdJzsKK+mVtz4nW2xvbmddJzsKK+mWgD4nW2dhdGVdJzsKK+mWgj4nW2JvbHRdJzsKK+mWgz4nW2ZsYXNoXSc7Civploc+J1tzaHV0XSc7Civplok+J1tzaHV0XSc7CisjIumWiT4nW3NodXRdJyIsCivplos+J1tvcGVuXSc7Civplo8+J1tpbnRlcmNhbGFyeV0nOwor6ZaRPidbZmVuY2VdJzsKK+mWkz4nW2ludGVydmFsXSc7CivplpQ+J1ttb3Vybl0nOworIyLplpQ+J1ttb3Vybl0nIiwKK+mWmD4nW3NsdWljZV0nOwor6ZaZPidbcXVhcnJlbF0nOwor6ZagPidbaW50ZXJjYWxhcnldJzsKK+mWoj4nW2Zyb250aWVyIHBhc3NdJzsKK+mWoz4nW2NoYW1iZXJdJzsKK+mWpD4nW3NtYWxsIHNpZGUgZG9vcl0nOwor6ZalPidbcG93ZXJmdWwgYW5kIGluZmx1ZW50aWFsIGdyb3VwXSc7Civplqc+J1tib2lzdGVyb3VzXSc7Civplqg+J1tzbWFsbCBlbnRyYW5jZV0nOwor6ZatPidbdmlsbGFnZSBvZiB0d2VudHktZml2ZSBmYW1pbGllc10nOwor6ZayPidbZXhhbWluZV0nOwor6Za5PidbY2FzdHJhdGVdJzsKK+mWuz4nW3ZpbGxhZ2UgZ2F0ZV0nOwor6Za8PidbYmxvY2tdJzsKK+mWvj4nW3RocmVzaG9sZF0nOwor6ZeDPidbYWxvbmVdJzsKK+mXhz4nW2Nsb3NlXSc7Civpl4o+J1ticm9hZF0nOwor6ZeMPidbZG9vciBzY3JlZW5dJzsKK+mXjT4nW3Rvd2VyIG92ZXIgY2l0eSBnYXRlXSc7Civpl5Q+J1tjbG9zZV0nOwor6ZeVPidbd2F0Y2ggdG93ZXJdJzsKK+mXlj4nW3J1c2ggaW5dJzsKK+mXmD4nW3N0cnVnZ2xlXSc7Civpl5w+J1tmcm9udGllciBwYXNzXSc7Civpl6E+J1tleHBsYWluXSc7Civpl6I+J1tvcGVuXSc7Civpl6U+J1tkb29yXSc7CivpmJw+J1ttb3VuZF0nOwor6ZihPidbZm9vdHBhdGhzIGJldHdlZW4gZmllbGRzXSc7CivpmKg+J1tpbiBkaXN0cmVzc10nOwor6ZiqPidbaGlsbHNpZGUgZmFybWxhbmRdJzsKK+mYrj4nW2FuY2llbnQgbXVzaWNhbCBpbnN0cnVtZW50OiBzdXJuYW1lXSc7CivpmK8+J1tmb3VuZGF0aW9uXSc7CivpmLI+J1tkZWZlbmRdJzsKK+mYuz4nW2ltcGVkZV0nOwor6Zi/PidbcHJlZml4IHRvIG5hbWVdJzsKK+mZgD4nW3N0ZWVwIGJhbmtdJzsKK+mZgj4nW2RhbV0nOwor6ZmEPidbYWRoZXJlIHRvXSc7CivpmYs+J1tuYXJyb3ddJzsKK+mZjD4nW2Zvb3QgcGF0aCBiZXR3ZWVuIHJpY2UgZmllbGRzXSc7CivpmY0+J1tkZXNjZW5kXSc7CisjIumZjT4nW2Rlc2NlbmRdJyIsCivpmZA+J1tib3VuZGFyeV0nOwor6ZmbPidbc3RlcHMgbGVhZGluZyB0aHJvbmVdJzsKK+mZnD4nW25hcnJvd10nOwor6ZmdPidbbW91bnRhaW4gcGFzc10nOwor6ZmePidbcHJvbW90ZV0nOwor6ZmfPidbY2xpbWJdJzsKK+mZoj4nW2NvdXJ0eWFyZF0nOwor6ZmjPidbY29sdW1uXSc7CivpmaQ+J1tlbGltaW5hdGVdJzsKK+mZpT4nW3N1Ym1lcmdlXSc7CisjIumZpT4nW3N1Ym1lcmdlXSciLAor6ZmqPidbYWNjb21wYW55XSc7Civpmaw+J1tjb3JuZXJdJzsKK+mZsD4nW1wiZmVtYWxlXCIgcHJpbmNpcGxlXSc7CivpmbI+J1tmcm9udGllcl0nOwor6ZmzPidbZXhoaWJpdF0nOwor6Zm1PidbaGlsbF0nOwor6Zm2PidbcG90dGVyeV0nOwor6Zm3Pidbc3VibWVyZ2VdJzsKK+mZuD4nW2xhbmRdJzsKK+mZuj4nW25hcnJvdyBwYXNzXSc7Civpmb0+J1tcIm1hbGVcIiBwcmluY2lwbGVdJzsKK+mahT4nW2Nvcm5lcl0nOwor6ZqGPidbcHJvc3Blcm91c10nOwor6ZqIPidbY292ZV0nOwor6ZqKPidbdGVhbV0nOwor6ZqLPidbU3VpIGR5bmFzdHldJzsKK+majT4nW2RyeSBkaXRjaF0nOwor6ZqOPidbc3RhaXJzXSc7Civpmo8+J1tmb2xsb3ddJzsKK+malD4nW3NlcGFyYXRlXSc7CivpmpU+J1tmYWxsXSc7Civpmpc+J1toaWdoXSc7Civpmpg+J1tuYXJyb3ddJzsKK+mamT4nW2NyYWNrXSc7Civpmps+J1tib3JkZXJdJzsKK+manD4nW3NlcGFyYXRlXSc7CisjIumanD4nW3NlcGFyYXRlXSciLAor6ZqjPidbbmVpZ2hib3JdJzsKK+mapz4nW3R1bm5lbF0nOwor6ZqoPidbZm9sbG93XSc7Civpmqo+J1tuYXJyb3cgcGFzc10nOwor6ZqwPidbbG93XSc7CivpmrE+J1toaWRlXSc7CivpmrI+J1tzdGFsbGlvbl0nOwor6Zq0PidbbW91bnRhaW4gbG9jYXRlZCBiZXR3ZWVuIHNoYWFueGldJzsKK+matj4nW3N1YnNlcnZpZW50XSc7Civpmrc+J1tiZSBzdWJzZXJ2aWVudCB0b10nOwor6Zq4PidbYmUgc3Vic2VydmllbnQgdG9dJzsKK+mauT4nW2JpcmRdJzsKK+mauz4nW3NpbmdsZV0nOwor6Zq8PidbYXF1aWxpbmUgKG5vc2UpXSc7Civpm4A+J1tzcGFycm93XSc7Civpm4E+J1t3aWxkIGdvb3NlXSc7Civpm4Q+J1ttYWxlIG9mIHNwZWNpZXNdJzsKK+mbhT4nW2VsZWdhbnRdJzsKK+mbhj4nW2Fzc2VtYmxlXSc7Civpm4c+J1tlbXBsb3ldJzsKK+mbiT4nW3BoZWFzYW50XSc7Civpm4s+J1tzdXBlcmlvcl0nOwor6ZuMPidbZmVtYWxlXSc7Civpm40+J1toYXJtb255XSc7Civpm44+J1tvc3ByZXldJzsKK+mbkT4nW21peGVkXSc7Civpm5U+J1tlbmdyYXZlXSc7Civpm5Y+J1thbHRob3VnaF0nOwor6ZuZPidbc2V0IG9mIHR3b10nOwor6ZubPidbY2hpY2tdJzsKK+mbnD4nW21peGVkXSc7Civpm6I+J1tsZWF2ZV0nOwor6ZujPidbZGlmZmljdWx0XSc7Civpm6g+J1tyYWluXSc7Civpm6o+J1tzbm93XSc7CisjIumbqz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6ZuwPidbYXRtb3NwaGVyZV0nOwor6ZuyPidbY2xvdWRzXSc7Civpm7Y+J1t6ZXJvXSc7Civpm7c+J1t0aHVuZGVyXSc7Civpm7k+J1toYWlsXSc7Civpm7s+J1tlbGVjdHJpY2l0eV0nOwor6ZyAPidbbmVlZF0nOwor6ZyEPidbc2t5XSc7CivpnIY+J1thIHN1ZGRlbiBwZWFsIG9mIHRodW5kZXJdJzsKK+mchz4nW3NoYWtlXSc7CivpnIg+J1t0b3JyZW50aWFsIHJhaW5zXSc7CivpnIo+J1tzcGlyaXRdJzsKK+mcjT4nW3F1aWNrbHldJzsKK+mcjj4nW2xpZ2h0IHJhaW5dJzsKK+mcjz4nW2ZhbGxpbmcgb2Ygc25vdyBhbmQgcmFpbl0nOwor6ZyRPidbYmUgbW9pc3RlbmVkXSc7CivpnJM+J1tyYWluYm93XSc7CivpnJY+J1tsb25nIHNwZWxsIG9mIHJhaW5dJzsKK+mcmT4nW3NsZWV0XSc7CivpnJw+J1tmcm9zdF0nOwor6ZyePidbcm9zeSBjbG91ZHNdJzsKK+mcpD4nW2RyaXBdJzsKK+mcpz4nW2ZvZ10nOwor6ZyqPidbbG9uZyBhbmQgaGVhdnkgcmFpbl0nOwor6ZywPidbaGFpbF0nOwor6ZyyPidbZGV3XSc7CivpnLg+J1tydWxlIGJ5IG1pZ2h0IHJhdGhlciB0aGFuIHJpZ2h0XSc7CivpnLk+J1t0aHVuZGVyXSc7CivpnL0+J1tjbGVhciB1cCBhZnRlciByYWluIGNlYXNlIGJlIGFuZ10nOwor6Zy+PidbbWlzdHldJzsKK+mdgj4nW3RodW5kZXJjbGFwXSc7CivpnYQ+J1tjbG91ZHkgc2t5XSc7CivpnYY+J1tjbG91ZHkgc2t5XSc7CivpnYg+J1tzcGlyaXRdJzsKK+mdiT4nW2Nsb3VkeSBza3ldJzsKK+mdkj4nW2JsdWVdJzsKK+mdlj4nW3BhY2lmeV0nOwor6Z2ZPidbcXVpZXRdJzsKK+mdnD4nW3F1aWV0XSc7CivpnZ4+J1tub3RdJzsKK+mdoD4nW2xlYW4gb25dJzsKK+mdoT4nW2RpdmlkZV0nOwor6Z2iPidbZmFjZV0nOworIyLpnaQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mdpj4nW3RpbWlkXSc7Civpnag+J1tkaW1wbGVzXSc7Civpnak+J1tsZWF0aGVyXSc7Civpnas+J1tzdHJvbmcgYW5kIHBsaWFibGVdJzsKK+mdrT4nW3N0cm9uZyBhbmQgcGxpYWJsZV0nOwor6Z2xPidbc3Ryb25nIGFuZCBwbGlhYmxlXSc7CivpnbQ+J1tib290c10nOworIyLpnbk+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mduj4nW3N0b2NraW5nXSc7Civpnbw+J1t0YXJ0YXJzXSc7CisjIumegT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z6EPidbdG8gd29yayBoaWRlc10nOwor6Z6FPidbbGVhdGhlciBzdHJhcCBvdmVyIGhvcnNlJydzIG5lY2tdJzsKKyMi6Z6FPidbbGVhdGhlciBzdHJhcCBvdmVyIGhvcnNlJydzIG5lY2tdJyIsCivpnos+J1tzaG9lc10nOwor6Z6NPidbc2FkZGxlXSc7Civpno8+J1tiaW5kXSc7CisjIumejz4nW2JpbmRdJyIsCivpnpg+J1tzY2FiYmFyZF0nOworIyLpnpw+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+meoD4nW2Jvd10nOwor6Z6jPidbdGFuXSc7CivpnqY+J1tsZWF0aGVyIHN0YXBdJzsKK+meqD4nW3RyaWJlXSc7Civpnqs+J1tpbnRlcnJvZ2F0ZV0nOwor6Z6tPidbd2hpcF0nOworIyLpnrM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+metD4nW3NhZGRsZSB1cCBob3JzZV0nOwor6Z+DPidbdGF0YXJzXSc7Civpn4Y+J1tzd2luZ10nOwor6Z+IPidbc29ja3NdJzsKK+mfiz4nW3Rhbm5lZCBsZWF0aGVyXSc7Civpn5M+J1tmZW5jZV0nOwor6Z+cPidbc2hlYXRoXSc7Civpn60+J1tzY2FsbGlvbl0nOwor6Z+uPidbc2NhbGxpb25dJzsKK+mfsj4nW2JyZWFrIG9yIHNtYXNoIGludG8gcGllY2VzXSc7Civpn7M+J1tzb3VuZF0nOwor6Z+1Pidbcmh5bWVdJzsKK+mftj4nW211c2ljIG9mIGVtcGVyb3IgU2h1bl0nOwor6Z+7Pidbcmh5bWVdJzsKK+mfvz4nW21ha2Ugc291bmRdJzsKK+mggT4nW3BhZ2VdJzsKK+mggj4nW3RvcF0nOwor6aCDPidbbW9tZW50XSc7CivpoIU+J1tuZWNrXSc7CivpoIY+J1tvYmV5XSc7CivpoIg+J1ttdXN0XSc7CivpoIw+J1tsYXVkXSc7CivpoI8+J1tmbHkgZG93biBvciBkb3dud2FyZF0nOwor6aCQPidbcHJlcGFyZV0nOwor6aCRPidbb2JzdGluYXRlXSc7CivpoJI+J1tjb25mZXJdJzsKK+mgkz4nW3BhdXNlXSc7CivpoJc+J1tsZWFuIG9uZSBzaWRlXSc7CivpoJg+J1tuZWNrXSc7CivpoJo+J1tuZWNrXSc7CivpoKE+J1tmbHkgdXB3YXJkXSc7CivpoKQ+J1tjaGVla3NdJzsKK+mgrD4nW2NoZWVrc10nOwor6aCtPidbaGVhZF0nOwor6aC0PidbcmljZSB0YXNzZWxdJzsKK+mgtz4nW2NoaW5dJzsKK+mguD4nW25lY2tdJzsKK+mguz4nW2ZyZXF1ZW50bHldJzsKK+mgvD4nW3JlbHldJzsKK+mgvT4nW3J1aW5lZF0nOwor6aGGPidbZ3JhaW5dJzsKK+mhiz4nW2xvd2VyIHBhcnQgb2YgZmFjZV0nOwor6aGMPidbZm9yZWhlYWRdJzsKK+mhjT4nW2ZvcmVoZWFkXSc7CivpoY4+J1tqYXddJzsKK+mhjz4nW2ZhY2VdJzsKK+mhlD4nW2ZhY2VdJzsKK+mhlT4nW21hbmlmZXN0XSc7CivpoZg+J1tkZXNpcmVdJzsKK+mhmz4nW3RvcF0nOwor6aGePidbY2xhc3NdJzsKK+mhpz4nW2xvb2sgYmFja10nOwor6aGrPidbc2hpdmVyXSc7Civpoa8+J1ttYW5pZmVzdF0nOwor6aGwPidbZnJvd25dJzsKK+mhsT4nW3NrdWxsXSc7CivpobM+J1t0aGUgdGVtcG9yYWwgYm9uZV0nOwor6aG0PidbY2hlZWsgYm9uZXNdJzsKK+miqD4nW3dpbmRdJzsKKyMi6aKoPidbd2luZF0nIiwKK+mirz4nW3NvdW5kIG9mIHdpbmRdJzsKK+misT4nW3RhaXBob29uXSc7CivporY+J1tjeWNsb25lXSc7Civpo4M+J1t3aGlybHdpbmRdJzsKK+mjhD4nW3doaXJsd2luZF0nOwor6aOGPidbd2hpcmx3aW5kXSc7Civpo5s+J1tmbHldJzsKK+mjnD4nW2ZsaXAgb3Zlcl0nOwor6aOfPidbZWF0XSc7Civpo6I+J1todW5nZXJdJzsKK+mjqT4nW3N0dWZmZWQgZHVtcGxpbmdzXSc7Civpo6s+J1tzdXJmZWl0ZWRdJzsKK+mjrT4nW29yZGVyXSc7Civpo64+J1tkcmlua10nOwor6aOvPidbY29va2VkIHJpY2VdJzsKK+mjsj4nW2RyaW5rXSc7Civpo7Q+J1tzd2VldC1tZWF0c10nOwor6aO8PidbcmFpc2UgYW5pbWFsc10nOwor6aO9PidbZWF0IGhlYXJ0aWx5XSc7Civpo74+J1tkZWNvcmF0ZV0nOwor6aSDPidbc3R1ZmZlZCBkdW1wbGluZ3NdJzsKK+mkhT4nW3JpY2UtY2FrZXNdJzsKK+mkiT4nW3JhdGlvbnMgYW5kIHBheSBmb3Igc29sZGllcnNdJzsKK+mkij4nW3JhaXNlXSc7CivppIw+J1tiYWl0XSc7CivppJA+J1tlYXRdJzsKK+mkkj4nW2h1bmdyeV0nOwor6aSTPidbYmUgaHVuZ3J5XSc7CivppJQ+J1tlYXRdJzsKK+mkmD4nW3N1cnBsdXNdJzsKKyMi6aSdPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivppJ4+J1tmYXJld2VsbCBwYXJ0eV0nOwor6aSgPidbcmljZS1jYWtlc10nOwor6aShPidbcGFzdHJ5IGZpbGxpbmddJzsKK+mkpD4nW2luY2l0ZV0nOwor6aSoPidbcHVibGljIGJ1aWxkaW5nXSc7CivppKw+J1twb3JyaWRnZV0nOwor6aSuPidbYSBsZWdlbmRhcnkgYW5pbWFsXSc7CivppL0+J1ttYWtlIHByZXNlbnQgb2YgZm9vZF0nOwor6aS+PidbZGlzdGlsbF0nOworIyLppYE+J1tjYXJyeSBtZWFsIHRvIHdvcmtlcnMgaW4gZmllbGRdJyIsCivppYU+J1tzdGVhbWVkIGJyZWFkXSc7CivppYk+J1t0aW1lIG9mIGZhbWluZSBvciBjcm9wIGZhaWx1cmVdJzsKK+mliz4nW29mZmVyIGZvb2Qgc3VwZXJpb3JdJzsKK+mljD4nW2ZlZWRdJzsKK+mlkD4nW3Nwb2lsZWRdJzsKK+mlkT4nW3N0YXJ2ZV0nOwor6aWSPidbYm91bnRpZnVsXSc7CivppZU+J1tnbHV0dG9ub3VzXSc7CivppZc+J1tob3N0IGJhbnF1ZXRdJzsKK+mmlj4nW2hlYWRdJzsKK+mmlz4nW2NoZWVrYm9uZV0nOwor6aaYPidbY3V0IG9mZiBsZWZ0IGVhcl0nOwor6aaZPidbZnJhZ3JhbnRdJzsKK+mmpT4nW2ZyYWdyYW5jZV0nOwor6aaoPidbZnJhZ3JhbnRdJzsKK+mmrD4nW2hvcnNlXSc7Civppq0+J1tkcml2ZV0nOwor6aauPidbc3VybmFtZV0nOwor6aazPidbZ28gcXVpY2tseSBvciBzd2lmdGx5XSc7CivpprQ+J1t0YW1lXSc7CisjIummvD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6aeBPidbdmFyaWNvbG9yZWRdJzsKKyMi6aeDPidbZ2FsbG9wXSciLAor6aeFPidbcmVsYXkgc3RhdGlvbl0nOwor6aeGPidbc3B1ciBob3JzZSBvbl0nOwor6aeIPidbc3B1ciBob3JzZSBvbl0nOwor6aeQPidbdG8gYmUgc3RhdGlvbmVkIGF0XSc7Civpp5E+J1t0aXJlZF0nOwor6aeSPidbY29sdF0nOwor6aeVPidbZHJpdmVdJzsKK+mnmD4nW3RpcmVkXSc7Civpp5s+J1tzYWlsXSc7Civpp50+J1tjYW1lbF0nOwor6aefPidbdGVhbSBvZiBmb3VyIGhvcnNlc10nOwor6aeiPidbdGVhbSBvZiBob3JzZXNdJzsKK+mnrT4nW3RlcnJpZnldJzsKK+mnrj4nW2Ega2luZCBvZiBmaWVyY2UgYW5pbWFsXSc7Civpp7E+J1t3aGl0ZSBob3JzZSB3LiBibGFjayBtYW5lXSc7CisjIumnsT4nW3doaXRlIGhvcnNlIHcuIGJsYWNrIG1hbmVdJyIsCivpp7g+J1tnYWxsb3BpbmddJzsKKyMi6ae7PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpp78+J1tleGNlbGxlbnQgaG9yc2VdJzsKK+mogT4nW2dhbGxvcCBob3JzZV0nOwor6aiFPidbcGllYmFsZCBob3JzZV0nOwor6aiOPidbcmlkZSBob3JzZWJhY2tdJzsKK+mojz4nW3BpZWJhbGQgaG9yc2VdJzsKK+mokj4nW2hhcmFzc10nOwor6aiTPidbdGVzdF0nOwor6aiZPidbc3dpbmRsZV0nOwor6aioPidbZGFwcGxlZF0nOwor6airPidbcmFpc2VdJzsKK+mosD4nW2ZseV0nOwor6ai3PidbaGFyYXNzXSc7CivpqL4+J1ttdWxlXSc7CivpqYA+J1tzdWRkZW5seV0nOwor6amCPidbdHdvIG91dHNpZGUgb25lcyBpbiB0aHJlZSBob3JzZV0nOwor6amDPidbY2hhcmdlcl0nOwor6amFPidbc3B1ciBob3JzZSBvbl0nOwor6amNPidbZXhjZWxsZW50IGhvcnNlXSc7CivpqZU+J1tzcGlyaXRlZCBob3JzZV0nOwor6amXPidbdGVzdF0nOwor6amaPidbZnJpZ2h0ZW5dJzsKK+mpmz4nW3JlbGF5IHN0YXRpb25dJzsKK+mpnz4nW3Byb2NlZHVyZV0nOwor6amiPidbZG9ua2V5XSc7CivpqaQ+J1tnYWxsb3AgYWJvdXQgd2l0aCBoZWFkIHVwbGlmdGVkXSc7CivpqaU+J1t0aG9yb3VnaGJyZWQgaG9yc2VdJzsKK+mpqT4nW2hhcHB5XSc7Civpqao+J1twdXJlIGJsYWNrIGhvcnNlXSc7Civpqas+J1tob3JzZXNdJzsKK+mqqD4nW2JvbmVdJzsKK+mqrT4nW3NoaW4gYm9uZV0nOwor6aqwPidbZGllXSc7Civpqrg+J1tza2VsdG9uXSc7Civpqrw+J1tib25lXSc7Civpq4A+J1tidXR0b2Nrc10nOwor6auEPidbYm9uZSBtYXJyb3ddJzsKK+mrjz4nW3NrdWxsXSc7Civpq5E+J1tza3VsbF0nOwor6auTPidbYm9uZSBtYXJyb3ddJzsKK+mrlD4nW2JvZHldJzsKK+mrmD4nW2hpZ2hdJzsKK+mrnj4nW2hpZ2hdJzsKK+mrnz4nW2hhaXJdJzsKK+mroj4nW3dpZ10nOwor6aujPidbc2ltaWxhciB0b10nOwor6aumPidbZmxvd2luZyBoYWlyIG9mIHlvdW5nIGNoaWxkXSc7Civpq6o+J1toYWlyXSc7Civpq6s+J1tjaGlsZHJlbicncyBoYWlyIHN0eWxlXSc7Civpq60+J1ttdXN0YWNoZV0nOwor6auuPidbaGFpcl0nOwor6auvPidbYmVhcmRdJzsKKyMi6auxPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpq7Q+J1tkaXNoZXZlbGVkIGhhaXJdJzsKKyMi6au3PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpq7s+J1toYWlyIHJvbGxlZCB1cCBpbiBhIGJ1bl0nOwor6ayGPidbbGF4XSc7CivprJg+J1tiZWF1dGlmdWwgaGFpcl0nOwor6ayaPidbYmVhcmRdJzsKK+msnz4nW2RyZXNzIGhhaXIgaW4gY29pbGVkIGtub3RdJzsKK+msoj4nW2hhaXIgb24gdGVtcGxlc10nOwor6ayjPidbaG9yc2UnJ3MgbWFuZV0nOwor6aylPidbc3RydWdnbGVdJzsKK+mspz4nW3F1YXJyZWxdJzsKK+msqD4nW2JvaXN0ZXJvdXNdJzsKK+msqT4nW2ZldWRdJzsKK+msqj4nW3N0cnVnZ2xlXSc7CivprK4+J1tsb3RzICh0byBiZSBkcmF3bildJzsKK+msrz4nW3NhY3JpZmljaWFsIHdpbmVdJzsKK+mssT4nW2x1eHVyaWFudF0nOwor6ayyPidbdHlwZSBvZiBjYWxkcm9uXSc7CivprLs+J1tzZWxsXSc7CivprLw+J1tnaG9zdF0nOwor6a2BPidbY2hpZWZdJzsKK+mtgj4nW3NvdWxdJzsKK+mtgz4nW2Ryb3VnaHQgZGVtb25dJzsKK+mthD4nW3ZpZ29yXSc7CivprYU+J1traW5kIG9mIGZvcmVzdCBkZW1vbl0nOwor6a2NPidbZGVtb25zXSc7CivprY4+J1thIGtpbmQgb2YgbW9uc3Rlcl0nOwor6a2PPidba2luZ2RvbSBvZiB3ZWldJzsKK+mtkT4nW2EgbW9udGFpbiBkZW1vbiByZXNlbWJsaW5nIHRpZ2VyXSc7CivprZQ+J1tkZW1vbl0nOwor6a2YPidbbmlnaHRtYXJlXSc7CivprZo+J1tmaXNoXSc7Civpra8+J1tmb29saXNoXSc7CivprbQ+J1ticmVhbV0nOworIyLproE+J1t0aGUgYm9uaXRvXSciLAor6a6OPidbc2hlYXRmaXNoXSc7CivprpE+J1thYmFsb25lXSc7CivprpI+J1tjYXJwXSc7CivprpM+J1ttaW5jZWQgYW5kIHNhbHRlZCBmaXNoXSc7CisjIumukz4nW21pbmNlZCBhbmQgc2FsdGVkIGZpc2hdJyIsCisjIumukz4nW21pbmNlZCBhbmQgc2FsdGVkIGZpc2hdJyIsCivprp8+J1thbmdsZXJmaXNoXSc7CivprqA+J1thIGtpbmQgb2Ygc2hhZCB3aXRoIGEgaGVhZCBsaWtlIGEgc3R1cmdlb25dJzsKKyMi6a6oPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivprqo+J1traW5kIG9mIHN0dXJnZW9uXSc7Civprqs+J1tzaGFya10nOwor6a6tPidbc2FsbW9uXSc7Civprq4+J1tmcmVzaF0nOworIyLprrQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6a65PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpr4A+J1tnaWFudCBmaXNoXSc7Civpr4Y+J1t0aGUgc2thdGUgb3IgcmF5XSc7Civpr4k+J1tjYXJwXSc7Civpr4o+J1tzaGFya10nOwor6a+PPidbYSBkaWFsZWN0Li4uLi4uLi4gbmFtZSBvZiBmaXNoXSc7CisjIumvkT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpr5I+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mvlD4nW211bGxldF0nOwor6a+WPidbbWFja2VyZWxdJzsKK+mvmz4nW3BhZ3Jvc29tdXMgbWFqb3JdJzsKK+mvoT4nW2hlcnJpbmddJzsKK+mvoj4nW2NyeXB0b2JyYW5jaHVzIGphcG9uaWN1c10nOworIyLpr6M+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mvpD4nW3NwYXduXSc7Civpr6g+J1t3aGFsZV0nOwor6a+wPidbc2hlYXRdJzsKKyMi6a+xPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumvsT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpr7E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6bCEPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumwhj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bCIPidbZmxhdGZpc2hdJzsKK+mwiT4nW3N0dXJnZW9uXSc7CisjIumwij4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bCMPidbbG9hY2hdJzsKK+mwjT4nW2xvYWNoXSc7CivpsJA+J1thbGxpZ2F0b3JdJzsKK+mwkj4nW2FiYWxvbmVdJzsKK+mwkz4nW2Zpc2ggZ2lsbHNdJzsKKyMi6bCUPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsJU+J1tzaHJpbXBdJzsKK+mwmz4nW3NhcmRpbmVdJzsKKyMi6bChPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumwpD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bClPidbaHVnZSBmaXNoXSc7CivpsK0+J1tmaW5dJzsKK+mwrj4nW3NhcmRpbmVdJzsKKyMi6bCvPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumwrz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bCyPidbaHVnZSBzZWEgdHVydGxlXSc7CivpsLk+J1tza2lwamFja10nOworIyLpsLo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mwuz4nW2VlbF0nOwor6bC+Pidbc3dpbW1pbmcgYmxhZGRlciBvZiBmaXNoXSc7CisjIumxhj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bGHPidbYW5nbGVyZmlzaF0nOwor6bGIPidbY29kZmlzaF0nOwor6bGSPidbYmFyYmVsXSc7CivpsZc+J1tmaXNoIHNjYWxlc10nOworIyLpsZg+J1tzdHVyZ2Vvbl0nIiwKK+mxoD4nW21pbmNlZCBmaXNoXSc7Civpsac+J1tzbmFrZWhlYWRdJzsKKyMi6bG2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsbg+J1tzZWEgcGVyY2hdJzsKK+mzpT4nW2JpcmRdJzsKK+mzpz4nW3dpbGQgZHVja10nOwor6bOpPidbcGlnZW9uXSc7Civps6s+J1t3aWxkIGdvb3NlXSc7Civps6w+J1t3aWxkIGR1Y2tdJzsKKyMi6bOwPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivps7M+J1ttYWxlIHBob2VuaXhdJzsKK+mztD4nW2NyeSBvZiBiaXJkIG9yIGFuaW1hbF0nOwor6bO2Pidba2l0ZV0nOwor6bSDPidbc2hyaWtlXSc7CivptIY+J1tiaXJkIHJlc2VtYmxpbmcgc2VjcmV0YXJ5IGZhbGNvbl0nOwor6bSHPidbYnVzdGFyZF0nOwor6bSIPidbd2lsZCBnb29zZV0nOwor6bSJPidbY3Jvd10nOwor6bSOPidbc2VhZ3VsbF0nOwor6bSSPidbc3BlY2llcyBvZiBsYXJrXSc7CivptJU+J1tvc3RyaWNoXSc7CivptJs+J1ttYWxlIG1hbmRhcmluIGR1Y2tdJzsKK+m0nz4nW2tpdGVdJzsKK+m0oz4nW3NwZWNpZXMgb2YgdGFpd2FuIHBpZ2Vvbl0nOwor6bSmPidbZmVtYWxlIG1hbmRhcmluIGR1Y2tdJzsKK+m0qD4nW2R1Y2tdJzsKK+m0qj4nW3N3b29wXSc7CivptKs+J1thIHNuaXBlXSc7CivptKw+J1tvcmlvbGVdJzsKK+m0uz4nW3NwZWNpZXMgb2Ygd2lsZCBzd2FuXSc7CisjIum0vj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bS/PidbcGlnZW9uXSc7CisjIum1gT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bWEPidba2l0ZV0nOworIyLptYQ+J1traXRlXSciLAorIyLptYQ+J1traXRlXSciLAorIyLptZA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+m1kT4nW2N1Y2tvb10nOwor6bWZPidbYSBzaHJpa2VdJzsKK+m1nD4nW3BlbGljYW5dJzsKK+m1nT4nW2dvb3NlXSc7CivptZ4+J1tnb29zZV0nOwor6bWgPidbdGFyZ2V0XSc7CivptaE+J1tzcGVjaWVzIG9mIHBhcnJvdF0nOworIyLptaE+J1tzcGVjaWVzIG9mIHBhcnJvdF0nIiwKK+m1rD4nW2ZhYnVsb3VzIGJpcmQgb2YgZW5vcm1vdXMgc2l6ZV0nOwor6bWvPidbYmlyZF0nOwor6bWyPidbbWFncGllXSc7CisjIum1uj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6baHPidbdGhydXNoXSc7Civptok+J1txdWFpbF0nOwor6baPPidbY2hpY2tlbl0nOwor6baaPidbb3NwcmV5XSc7CisjIum2pD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bapPidbZHVja10nOwor6barPidbdGhydXNoXSc7Civptq8+J1tvcmlvbGVdJzsKKyMi6baxPidbc29hcl0nIiwKK+m2tD4nW2NyYW5lXSc7Civptrg+J1tbbm90IGZvdW5kIGluIGFueSBkaWN0aW9uYXJ5XV0nOwor6ba6Pidbd2FndGFpbF0nOwor6ba7PidbYSBraW5kIG9mIHBpZ2Vvbl0nOwor6beBPidbZmlzaGhhd2sgYm93IG9yIHByb3ddJzsKK+m3gj4nW3NwYXJyb3cgaGF3a10nOwor6beEPidbY2hpY2tlbl0nOwor6beGPidbYmlyZCBuYW1lXSc7Civpt48+J1tiaXJkIG5hbWVdJzsKK+m3kz4nW3BhcnRyaWRnZV0nOwor6beZPidbaGF3a10nOwor6bemPidbd3Jlbl0nOworIyLpt6s+J1t0dXJxdW9pc2Uga2luZ2Zpc2hlcl0nIiwKK+m3rz4nW3dyZW5dJzsKK+m3sj4nW2NvbmRvcl0nOwor6be4Pidbc25pcGVdJzsKK+m3uT4nW2VhZ2xlXSc7Civpt7o+J1toZXJvbl0nOwor6be9Pidbb3JpZW50YWwgYnVsbGZpbmNoXSc7CivpuJo+J1tzcGVjaWVzIG9mIHBhcnJvdF0nOwor6bibPidbY3JhbmVdJzsKK+m4nj4nW2ZhYnVsb3VzIGJpcmRdJzsKK+m5tT4nW3NhbGluZSBzb2lsXSc7Civpubg+J1thbGthbGluZV0nOwor6bm5Pidbc2FsdHldJzsKK+m5vT4nW3NhbHRdJzsKK+m5vz4nW2RlZXJdJzsKK+m6gT4nW3JvdWdoXSc7Civpuog+J1tzcGVjaWVzIG9mIGRlZXJdJzsKK+m6iz4nW2Vsa10nOwor6bqMPidbc3RhZ10nOwor6bqRPidbZmF3bl0nOwor6bqSPidbbGVnZW5kYXJ5IGF1c3BpY2lvdXMgYW5pbWFsXSc7CivpupM+J1tmb290IG9mIGhpbGxdJzsKK+m6lT4nW211bnRqYWMgZGVlcl0nOwor6bqXPidbYmVhdXRpZnVsXSc7Civpup0+J1ttdXNrIGRlZXJdJzsKK+m6nz4nW2ZlbWFsZSBvZiBjaGluZXNlIHVuaWNvcm5dJzsKK+m6pT4nW3doZWF0XSc7CivpuqY+J1t3aGVhdF0nOwor6bqpPidbYnJhbl0nOwor6bqqPidbZmxvdXJdJzsKKyMi6bqrPidbZmxvdXJdJyIsCivpurg+J1ticmFuXSc7Civpurk+J1t5ZWFzdF0nOwor6bq6PidbZmxvdXJdJzsKK+m6uz4nW2hlbXBdJzsKK+m6vD4nW2ludGVycm9nYXRpdmUgZmluYWwgcGFydGljbGVdJzsKK+m6vj4nW3Blbm5hbnRdJzsKK+m6vz4nW0ldJzsKK+m7hD4nW3llbGxvd10nOwor6buMPidbc2Nob29sXSc7Civpu40+J1tnbHV0aW5vdXMgbWlsbGV0XSc7Civpu44+J1tzdXJuYW1lXSc7Civpu48+J1tzdGljayB0b10nOwor6buQPidbc3RpY2tdJzsKK+m7kj4nW2JsYWNrXSc7Civpu5Q+J1tibGFja10nOwor6buYPidbc2lsZW50XSc7Civpu5k+J1tzaWxlbnRdJzsKK+m7mz4nW2JsYWNrZW4gZXllYnJvd3NdJzsKK+m7nD4nW2Rpc21pc3NdJzsKK+m7nT4nW2JsYWNrXSc7Civpu54+J1tkb3RdJzsKK+m7oD4nW3NseV0nOwor6bulPidbdGF0dG9vaW5nIGZhY2VdJzsKK+m7qD4nW3BvbGl0aWNhbCBwYXJ0eV0nOwor6buvPidbZGFya10nOwor6bu0PidbbW9sZF0nOwor6bu2PidbbW9sZV0nOwor6bu3PidbZGlzaG9ub3JdJzsKK+m7uT4nW2VtYnJvaWRlcnldJzsKK+m7uz4nW3NwZWNpYWwgcGF0dGVybiBvZiBlbWJyb2lkZXJ5XSc7Civpu7w+J1tlbWJyb2lkZXJlZCBvZmZpY2lhbCBvciBzYWNyaWZpY10nOwor6bu9PidbdG8gc3RyaXZlXSc7CivpvIc+J1todWdlIHNlYSB0dXJ0bGVdJzsKK+m8iD4nW2ZyZXNoIHdhdGVyIHR1cnRsZV0nOwor6byOPidbbGFyZ2VdJzsKK+m8kz4nW2RydW1dJzsKK+m8lT4nW3JhdHRsZSBvZiBkcnVtc10nOwor6bygPidbcmF0XSc7CivpvKE+J1tyYXRdJzsKK+m8rD4nW3dlYXNlbF0nOwor6by7Pidbbm9zZV0nOwor6by+Pidbc25vcmUgbG91ZGx5XSc7CivpvYo+J1tldmVuXSc7CivpvYs+J1t2ZWdldGFyaWFuIGRpZXRdJzsKK+m9jj4nW3Rha2UgaW4gYm90aCBoYW5kcyBhbmQgb2ZmZXIgdG9dJzsKK+m9jz4nW2JyZWFrIG9yIHNtYXNoIGludG8gcGllY2VzXSc7CivpvZI+J1t0ZWV0aF0nOwor6b2UPidbbG9zZSBiYWJ5IHRlZXRoIGFuZCBnZXQgYWR1bHQgdGVdJzsKK+m9nz4nW2lycmVndWxhciB0ZWV0aF0nOwor6b2gPidbbG9zZSBiYWJ5IHRlZXRoIGFuZCBnZXQgYWR1bHQgdGVldGhdJzsKK+m9oT4nW2FnZV0nOwor6b2iPidbYWdlXSc7CivpvaM+J1thY3RdJzsKK+m9pj4nW2d1bXNdJzsKK+m9pz4nW2JpdGVdJzsKK+m9qj4nW25hcnJvd10nOwor6b2sPidbdW5ldmVuIHRlZXRoXSc7CivpvbI+J1t0b290aCBkZWNheV0nOwor6b22PidbcGFsYXRlXSc7Civpvbc+J1tuYXJyb3ddJzsKK+m+jT4nW2RyYWdvbl0nOwor6b6VPidbbmljaGVdJzsKK+m+nD4nW3R1cnRsZSBvciB0b3J0b2lzZV0nOwor6b6dPidbYXV0dW1uXSc7CivpvqA+J1tmbHV0ZV0nOworCisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9LYW5qaV9PblJvbWFqaS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX09uUm9tYWppLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NDM1OTEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9LYW5qaV9PblJvbWFqaS50eHQKQEAgLTAsMCArMSw2MjE2IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGF0ZTogVHVlIEphbiAyMyAxMjo0MjowMyAyMDAxCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBLYW5qaS1PblJvbWFqaQorCivkuIE+VGVpOwor5LiDPlNoaWNoaTsKK+S4hz5NYW47CivkuIg+Sm91Owor5LiJPlNhbjsKK+S4ij5Kb3U7CivkuIs+S2E7CivkuI0+RnU7CivkuI4+WW87CivkuJA+S2FpOwor5LiRPkNodXU7CivkuJQ+U2hhOwor5LiVPkhpOwor5LiWPlNlOwor5LiXPlNlaTsKK+S4mD5LeXV1Owor5LiZPkhlaTsKK+S4nj5TaG91Owor5LihPlJ5b3U7CivkuKY+SGVpOwor5LiqPkthOwor5LitPkNodXU7CivkuLE+S2FuOwor5LiyPlNlbjsKK+S4tj5DaHU7CivkuLg+R2FuOwor5Li5PlRhbjsKK+S4uz5TaHU7CivkuLw+U2VpOwor5Li/PkhldHN1Owor5LmCPkdhaTsKK+S5gz5EYWk7CivkuYU+S3l1dTsKK+S5iz5TaGk7CivkuY0+U2FrdTsKK+S5jj5LbzsKK+S5jz5Cb3U7CivkuZU+S287CivkuZY+S2FpOwor5LmXPkpvdTsKK+S5mD5Kb3U7CivkuZk+T3RzdTsKK+S5nT5LeXV1Owor5LmePktvdHN1Owor5LmfPllhOwor5LmiPkdhaTsKK+S5sT5SYW47CivkubM+Tnl1dTsKK+S5vj5LYW47CivkuoA+S2k7CivkuoI+UmFuOwor5LqFPktldHN1Owor5LqGPlJ5b3U7Civkuog+WW87Civkuok+U291Owor5LqKPkppOwor5LqLPkppOwor5LqMPk5pOwor5LqOPlU7CivkupE+VW47CivkupI+R287CivkupQ+R287CivkupU+U2VpOwor5LqYPlNlbjsKK+S6mT5Lb3U7Civkups+U2E7Civkupw+QTsKK+S6nj5BOwor5LqfPkt5b2t1Owor5LqgPlRvdTsKK+S6oT5Cb3U7CivkuqI+S291Owor5LqkPktvdTsKK+S6pT5HYWk7CivkuqY+RWtpOwor5LqoPkt5b3U7Civkuqs+S3lvdTsKK+S6rD5LeW91Owor5LqtPlRlaTsKK+S6rj5SeW91Owor5LqwPktlaTsKK+S6sz5IYWt1Owor5Lq2PlRhbjsKK+S6uj5KaW47Civku4A+U2h1dTsKK+S7gT5KaW47Civku4I+Um9rdTsKK+S7hD5Tb2t1Owor5LuGPkZ1Owor5LuHPkt5dXU7Civku4o+S29uOwor5LuLPkthaTsKK+S7jT5Kb3U7Civku44+SnV1Owor5LuPPkJ1dHN1Owor5LuUPlNoaTsKK+S7lT5TaGk7Civku5Y+VGE7Civku5c+Sm91Owor5LuYPkZ1Owor5LuZPlNlbjsKK+S7nT5Eb3U7Civku54+SmluOwor5LufPlNlbjsKK+S7oz5EYWk7Civku6Q+UmVpOwor5LulPkk7Civku60+SmluOwor5LuuPkthOwor5LuwPkd5b3U7Civku7I+Q2h1dTsKK+S7tj5LZW47Civku7c+S2FpOwor5Lu7Pk5pbjsKK+S8gT5LaTsKK+S8iT5Lb3U7CivkvIo+STsKK+S8jT5HbzsKK+S8jj5LaTsKK+S8jz5GdWt1Owor5LyQPkJhdHN1Owor5LyRPkt5dXU7CivkvJo+S2FpOwor5LycPlNhaTsKK+S8nT5EZW47CivkvK8+SGFrdTsKK+S8sD5LbzsKK+S8tD5IYW47CivkvLY+UmVpOwor5Ly4PlNoaW47CivkvLo+U2hpOwor5Ly8PkppOwor5Ly9Pkt5YTsKK+S9gz5UZW47CivkvYY+VGFuOwor5L2HPkNobzsKK+S9jT5JOwor5L2OPlRlaTsKK+S9jz5KdXU7CivkvZA+U2E7CivkvZE+WXV1Owor5L2TPlRlaTsKK+S9lT5LYTsKK+S9lz5UYTsKK+S9mT5ZbzsKK+S9mj5JdHN1Owor5L2bPkJ1dHN1Owor5L2cPlNha3U7CivkvZ0+S291Owor5L2ePk5laTsKK+S9qT5IYWk7Civkva8+WW91Owor5L2wPkhha3U7CivkvbM+S2E7CivkvbU+SGVpOwor5L22PktpdHN1Owor5L27PkNob3U7Civkvbw+S291Owor5L2/PlNoaTsKK+S+gz5LYW47CivkvoY+UmFpOwor5L6IPlNoaTsKK+S+iz5SZWk7Civkvo0+Smk7Civkvo8+U2h1Owor5L6RPll1dTsKK+S+lj5Sb247Civkvpg+VGE7Civkvps+S3lvdTsKK+S+nT5JOwor5L6gPkt5b3U7CivkvqE+S2E7Civkvqs+TmVpOwor5L6tPkppbjsKK+S+rj5CdTsKK+S+rz5Lb3U7CivkvrU+U2hpbjsKK+S+tj5SeW87Civkvr8+QmVuOwor5L+CPktlaTsKK+S/gz5Tb2t1Owor5L+EPkdhOwor5L+KPlNodW47Civkv44+U2hvOwor5L+QPlJpOwor5L+RPllvdTsKK+S/lD5LZW47Civkv5c+Wm9rdTsKK+S/mD5GdTsKK+S/mj5SaTsKK+S/mz5CZW47Civkv50+SG87Civkv58+U2hpOwor5L+hPlNoaW47Civkv64+U2h1dTsKK+S/rz5GdTsKK+S/sz5IYWk7Civkv7U+SHlvdTsKK+S/tj5TaHVrdTsKK+S/uD5Ib3U7Civkv7o+RW47Civkv74+SGk7CivlgIU+U2FpOwor5YCGPlJ5b3U7CivlgIk+U291Owor5YCLPktvOwor5YCNPkJhaTsKK+WAjz5TaHVrdTsKK+WAkT5Nb247CivlgJI+VG91Owor5YCUPkt1dHN1Owor5YCWPktvdTsKK+WAmT5Lb3U7CivlgJo+STsKK+WAnz5TaGFrdTsKK+WAoT5TaG91Owor5YCjPkhvdTsKK+WApD5DaGk7CivlgKU+S291Owor5YCmPktlbjsKK+WAqD5LeW87CivlgKk+U2VuOwor5YCqPkdlaTsKK+WAqz5SaW47CivlgKw+VGFrdTsKK+WArT5JOwor5YC2Pkt1Owor5YC5PktlbjsKK+WBgz5FbjsKK+WBhz5LYTsKK+WBiD5LZXRzdTsKK+WBiT5JOwor5YGPPkhlbjsKK+WBkD5HYW47CivlgZU+S2FpOwor5YGWPlNoYTsKK+WBmj5TYWt1Owor5YGcPlRlaTsKK+WBpT5LZW47Civlgaw+U291Owor5YGyPlNoaTsKK+WBtD5Tb2t1Owor5YG1PlRlaTsKK+WBtj5HdXU7Civlgbg+Q2h1dTsKK+WBvT5HaTsKK+WCgD5LYWk7CivlgoU+RnU7Civlgo0+Qm91Owor5YKRPktldHN1Owor5YKYPlNhbjsKK+WCmT5CaTsKK+WCmj5Lb3U7Civlgqw+U2FpOwor5YKtPllvdTsKK+WCsj5Hb3U7CivlgrM+RGVuOwor5YK0PlU7CivlgrU+U2FpOwor5YK3PlNob3U7Civlgr4+S2VpOwor5YOCPlJvdTsKK+WDhT5LaW47Civlg4k+U2VuOwor5YOKPlNlbjsKK+WDjT5Eb3U7Civlg48+Wm91Owor5YORPkt5b3U7Civlg5U+Qm9rdTsKK+WDlj5LaTsKK+WDmj5SeW91Owor5YOePkdpOwor5YOjPlNlbjsKK+WDpT5LeW91Owor5YOnPlNvdTsKK+WDrT5TZW47Civlg64+RG91Owor5YO1Pkt5b3U7Civlg7k+S2E7Civlg7s+SGVraTsKK+WEgD5HaTsKK+WEgT5TaHVuOwor5YSCPkRvdTsKK+WEhD5Pa3U7CivlhIk+S2VuOwor5YSSPkp1Owor5YSUPkNodXU7CivlhJU+U2VpOwor5YSWPlJhbjsKK+WEmD5KaW47CivlhJo+Qm91Owor5YSfPlNob3U7CivlhKE+UmFpOwor5YSqPll1dTsKK+WEsj5DaG87CivlhLc+UmVpOwor5YS6PkRhOwor5YS7PlRvdTsKK+WEvD5HZW47CivlhL8+SmluOwor5YWAPktvdHN1Owor5YWBPkluOwor5YWDPkdlbjsKK+WFhD5LZWk7CivlhYU+SnV1Owor5YWGPkNob3U7CivlhYc+S3lvdTsKK+WFiD5TZW47CivlhYk+S291Owor5YWLPktva3U7CivlhYw+RGE7CivlhY0+TWVuOwor5YWOPlRvOwor5YWQPkppOwor5YWSPkppOwor5YWUPlRvOwor5YWaPlRvdTsKK+WFnD5Ub3U7CivlhaI+S3lvdTsKK+WFpT5OeXV1Owor5YWoPlplbjsKK+WFqT5SeW91Owor5YWqPll1Owor5YWrPkhhY2hpOwor5YWsPktvdTsKK+WFrT5Sb2t1Owor5YWuPktlaTsKK+WFsT5LeW91Owor5YW1PkhlaTsKK+WFtj5LaTsKK+WFtz5HdTsKK+WFuD5UZW47Civlhbw+S2VuOwor5YaAPktpOwor5YaCPktlaTsKK+WGhT5EYWk7CivlhoY+RW47Civlhok+TmVuOwor5YaKPlNhdHN1Owor5YaMPlNhdHN1Owor5YaNPlNhaTsKK+WGjz5LZWk7CivlhpA+Qm91Owor5YaRPkNodXU7CivlhpI+Qm91Owor5YaTPktvdTsKK+WGlT5CZW47CivlhpY+QmVraTsKK+WGlz5Kb3U7Civlhpk+U2hhOwor5YagPkthbjsKK+WGoj5DaG91Owor5YakPkVuOwor5YalPk1laTsKK+WGpj5Lb3U7Civlhqg+RnU7Civlhqk+U2hhOwor5YaqPkJla2k7Civlhqs+SHlvdTsKK+WGrD5Ub3U7CivlhrA+SHlvdTsKK+WGsT5HbzsKK+WGsj5DaHV1Owor5YazPktldHN1Owor5Ya0PkdvOwor5Ya1Pkt5b3U7CivlhrY+WWE7Civlhrc+UmVpOwor5Ya9PlJldHN1Owor5YeEPlNlaTsKK+WHhT5LbzsKK+WHhj5KdW47Civlh4k+UnlvdTsKK+WHiz5DaG91Owor5YeMPlJ5b3U7Civlh40+VG91Owor5YeWPkp1bjsKK+WHmz5SaW47Civlh5w+UmluOwor5YedPkd5b3U7Civlh6A+S2k7Civlh6E+Qm9uOwor5YemPlNobzsKK+WHrT5IeW91Owor5YewPktvdTsKK+WHsT5HYWk7Civlh7U+S2FuOwor5Ye2Pkt5b3U7Civlh7g+VG90c3U7Civlh7k+T3U7Civlh7o+U2h1dHN1Owor5Ye9PkthbjsKK+WHvj5LYW47CivliIA+VG91Owor5YiDPkppbjsKK+WIhD5KaW47CivliIY+QnVuOwor5YiHPlNldHN1Owor5YiIPkdhaTsKK+WIij5LYW47CivliIs+U2VuOwor5YiOPkZ1bjsKK+WIkT5LZWk7CivliJQ+S2V0c3U7CivliJc+UmV0c3U7CivliJ0+U2hvOwor5YikPkhhbjsKK+WIpT5CZXRzdTsKK+WIpz5Hb3U7CivliKk+Umk7CivliKo+U2FuOwor5YiuPkthdHN1Owor5YiwPlRvdTsKK+WIsz5LbzsKK+WItj5TZWk7CivliLc+U2F0c3U7CivliLg+S2VuOwor5Yi5PlNhdHN1Owor5Yi6PlNoaTsKK+WIuz5Lb2t1Owor5YmDPlRlaTsKK+WJhD5LZWk7CivliYc+U29rdTsKK+WJij5TYWt1Owor5YmLPktva3U7CivliYw+UmF0c3U7CivliY0+WmVuOwor5YmPPlNvdTsKK+WJlD5UZWtpOwor5YmWPkJvdTsKK+WJmz5Hb3U7CivliZ4+S2k7CivliaM+S2VuOwor5YmkPlphaTsKK+WJpT5IYWt1Owor5YmpPkpvdTsKK+WJqj5TZW47Civlia8+RnVrdTsKK+WJsD5Kb3U7CivlibE+S2VuOwor5YmyPkthdHN1Owor5YmzPlRvdTsKK+WJtD5HYWk7CivlibU+U291Owor5Ym9Pkh5b3U7Civlib8+U2hvdTsKK+WKgz5LYWt1Owor5YqHPkdla2k7Civliog+SGVraTsKK+WKiT5SdTsKK+WKjT5LZW47CivlipE+WmFpOwor5YqSPktlbjsKK+WKlD5LZW47Civlips+Unlva3U7Civlip8+S291Owor5YqgPkthOwor5YqjPlJldHN1Owor5YqpPkpvOwor5YqqPkRvOwor5YqrPkdvdTsKK+WKrD5LdTsKK+WKrT5TaG91Owor5YqxPlJlaTsKK+WKtD5Sb3U7CivlirU+S2VuOwor5Yq5PktvdTsKK+WKvD5LYXRzdTsKK+WKvj5HYWk7Civli4E+S2VpOwor5YuDPkJvdHN1Owor5YuFPkNob2t1Owor5YuHPll1dTsKK+WLiT5CZW47Civli40+S2VpOwor5YuSPlJva3U7Civli5U+RG91Owor5YuXPkJvdTsKK+WLmD5LYW47Civli5k+TXU7Civli50+U2hvdTsKK+WLnj5Sb3U7Civli58+Qm87Civli6A+UmlrdTsKK+WLoj5TZWk7Civli6M+U2VraTsKK+WLpD5LaW47Civli6Y+U291Owor5YunPkthbjsKK+WLsj5LdW47Civli7M+S3VuOwor5Yu1PlJlaTsKK+WLuD5LYW47Civli7k+SG91Owor5Yu6PlNoYWt1Owor5Yu+PktvdTsKK+WLvz5CdXRzdTsKK+WMhT5Ib3U7CivljIY+U291Owor5YyIPkt5b3U7CivljI0+SG87CivljI8+SG91Owor5YyQPkhva3U7CivljJU+SGk7CivljJY+S2E7CivljJc+SG9rdTsKK+WMmT5TaGk7CivljJo+SG91Owor5YydPlNvdTsKK+WMoD5TaG91Owor5YyhPkt5b3U7CivljKM+S291Owor5YyqPkhpOwor5YyvPldhaTsKK+WMsT5LaTsKK+WMsz5SZW47CivljLg+S2VpOwor5Yy5PkhpdHN1Owor5Yy6Pkt1Owor5Yy7Pkk7CivljL8+VG9rdTsKK+WNgD5LdTsKK+WNgT5KdXU7CivljYM+U2VuOwor5Y2FPlNvdTsKK+WNhj5Tb3RzdTsKK+WNhz5TaG91Owor5Y2IPkdvOwor5Y2JPktpOwor5Y2KPkhhbjsKK+WNjT5CYW47CivljZE+SGk7CivljZI+U290c3U7CivljZM+VGFrdTsKK+WNlD5LeW91Owor5Y2XPk5hbjsKK+WNmD5UYW47CivljZo+SGFrdTsKK+WNnD5Cb2t1Owor5Y2ePkhlbjsKK+WNoD5TZW47CivljaY+S2E7Civljak+U2V0c3U7Civlja4+U2hpOwor5Y2vPkJvdTsKK+WNsD5JbjsKK+WNsT5LaTsKK+WNsz5Tb2t1Owor5Y20Pkt5YWt1Owor5Y21PlJhbjsKK+WNtz5LYW47Civljbg+U2hhOwor5Y27Pkt5YWt1Owor5Y2/Pkt5b3U7CivljoI+S2FuOwor5Y6EPllha3U7CivljpY+Qm91Owor5Y6YPlJpbjsKK+WOmj5Lb3U7Civljp8+R2VuOwor5Y6gPlNoaTsKK+WOpT5LZXRzdTsKK+WOpj5LYTsKK+WOqD5adTsKK+WOqT5LeXV1Owor5Y6tPkVuOwor5Y6uPlNoaTsKK+WOsD5TaG91Owor5Y6zPkdlbjsKK+WOtj5TaGk7Civljrs+S3lvOwor5Y+CPlNhbjsKK+WPgz5TYW47Civlj4g+WXV1Owor5Y+JPlNoYTsKK+WPij5LeXV1Owor5Y+LPll1dTsKK+WPjD5Tb3U7Civlj40+SGFuOwor5Y+OPlNodXU7Civlj5Q+U2h1a3U7Civlj5Y+U2h1Owor5Y+XPkp1Owor5Y+ZPkpvOwor5Y+bPkhhbjsKK+WPnz5Tb3U7Civlj6E+RWk7Civlj6I+U291Owor5Y+jPktvdTsKK+WPpD5LbzsKK+WPpT5LdTsKK+WPqD5Ub3U7Civlj6k+S291Owor5Y+qPlNoaTsKK+WPqz5LeW91Owor5Y+sPlNob3U7Civlj60+SGF0c3U7Civlj64+VGVpOwor5Y+vPkthOwor5Y+wPkRhaTsKK+WPsT5TaGl0c3U7Civlj7I+U2hpOwor5Y+zPlU7Civlj7Y+S3lvdTsKK+WPtz5Hb3U7Civlj7g+U2hpOwor5ZCBPkt1Owor5ZCDPktpdHN1Owor5ZCEPktha3U7CivlkIg+R291Owor5ZCJPktpY2hpOwor5ZCKPkNob3U7CivlkIs+U3VuOwor5ZCMPkRvdTsKK+WQjT5NZWk7CivlkI4+S291Owor5ZCPPlJpOwor5ZCQPlRvOwor5ZCRPktvdTsKK+WQmz5LdW47CivlkJ0+UmluOwor5ZCfPkdpbjsKK+WQoD5IYWk7CivlkKY+SGk7CivlkKk+RnVuOwor5ZCrPkdhbjsKK+WQrD5LaW47CivlkK0+S291Owor5ZCuPlNlbjsKK+WQtj5Ub3RzdTsKK+WQuD5LeXV1Owor5ZC5PlN1aTsKK+WQuz5GdW47CivlkLw+S291Owor5ZC9PkluOwor5ZC+PkdvOwor5ZGAPkdhOwor5ZGCPlJ5bzsKK+WRhj5Cb3U7CivlkYg+VGVpOwor5ZGJPkdvOwor5ZGKPktva3U7CivlkY4+U2VraTsKK+WRkT5Eb247CivlkZ8+R2VuOwor5ZGoPlNodXU7Civlkao+SnU7CivlkbA+U2hpOwor5ZGxPktvOwor5ZGzPk1pOwor5ZG1PkthOwor5ZG2PkRvOwor5ZG3PktvdTsKK+WRuz5TaGluOwor5ZG8PktvOwor5ZG9Pk1laTsKK+WSgD5TbzsKK+WShD5Ub3RzdTsKK+WShj5Ib3U7Civlkos+U2FrdTsKK+WSjD5XYTsKK+WSjj5LeXV1Owor5ZKPPkVpOwor5ZKQPkhvOwor5ZKSPlNodTsKK+WSoj5HYWt1Owor5ZKkPlRhOwor5ZKlPktpOwor5ZKoPlNoaTsKK+WSqz5TaGk7Civlkqw+S291Owor5ZKvPktha3U7CivlkrI+U2hvdTsKK+WSsz5HYWk7Civlkrg+S2FuOwor5ZK8PkthOwor5ZK9PkluOwor5ZK+PlJvdTsKK+WTgD5BaTsKK+WTgT5IaW47Civlk4I+U2hpbjsKK+WThD5Lb3U7Civlk4c+QWk7Civlk4g+R291Owor5ZOJPlNhaTsKK+WToT5JbjsKK+WToj5Sb3U7Civlk6U+S2E7Civlk6Y+R2E7Civlk6g+U2hvdTsKK+WTqT5SaTsKK+WTrT5Lb2t1Owor5ZOuPktvdTsKK+WTsj5UZXRzdTsKK+WTuj5IbzsKK+WTvT5Lb3U7CivllIQ+QmFpOwor5ZSGPlNhOwor5ZSHPlNoaW47CivllI8+S2k7CivllJA+VG91Owor5ZSUPkdvOwor5ZSWPkE7CivllK4+U2h1dTsKK+WUrz5ZdWk7CivllLE+U2hvdTsKK+WUsz5SZWk7CivllLg+VGVuOwor5ZS5PllvOwor5ZS+PkRhOwor5ZWAPkdhaTsKK+WVhD5UYWt1Owor5ZWFPlRha3U7CivllYY+U2hvdTsKK+WVjD5Lb3U7CivllY8+TW9uOwor5ZWTPktlaTsKK+WVlj5UYW47CivllZc+VGFuOwor5ZWcPlNldHN1Owor5ZWdPkthOwor5ZWjPkthbjsKK+WVuz5TaGk7Civllbw+VGVpOwor5ZW+PlNodXU7CivlloA+S2FrdTsKK+WWgz5OYW47CivlloQ+WmVuOwor5ZaHPlJhdHN1Owor5ZaJPktvdTsKK+WWij5LYW47Civllos+Q2hvdTsKK+WWmD5aZW47Civllpk+S2FpOwor5ZaaPkthbjsKK+WWnD5LaTsKK+WWnT5LYXRzdTsKK+WWnj5Tb2t1Owor5ZafPktpOwor5ZanPktlbjsKK+WWqD5SeW91Owor5ZapPll1Owor5ZaqPlNvdTsKK+WWqz5LaXRzdTsKK+WWrD5LeW91Owor5ZauPlRhbjsKK+WWtj5FaTsKK+WXhD5TYTsKK+WXhT5LeXV1Owor5ZeHPlNob2t1Owor5ZeUPlNoaW47Civll5o+TzsKK+WXnD5TaGk7Civll58+U2E7Civll6M+U2hpOwor5ZekPlNoaTsKK+WXtz5Hb3U7Civll7k+UmVuOwor5Ze9PlNva3U7Civll74+U291Owor5ZiGPlRhbjsKK+WYiT5LYTsKK+WYlD5PdTsKK+WYlj5TYWt1Owor5ZiXPlNob3U7CivlmJg+S3lvOwor5ZibPk1hOwor5ZipPkthOwor5ZivPlNob3U7CivlmLE+U2hva3U7CivlmLI+VG91Owor5Zi0PlNoaTsKK+WYtj5TZWk7CivlmLg+QnU7CivlmYI+U29uOwor5ZmMPlNvdTsKK+WZjj5JdHN1Owor5ZmQPktpOwor5ZmbPkdvdTsKK+WZpD5LaW47Civlmag+S2k7Civlmao+U291Owor5ZmrPkk7Civlmaw+WmVpOwor5Zm0PkZ1bjsKK+WZuD5Ub247CivlmoA+RGVpOwor5ZqGPktvdTsKK+Wahz5LYWt1Owor5ZqKPkhpOwor5ZqPPlRlaTsKK+WalD5UZWk7CivlmqA+Unl1dTsKK+Waoj5Ob3U7CivlmqU+RW47Civlmq4+S291Owor5Zq0PkdlbjsKK+Watj5PdTsKK+WavD5TaGFrdTsKK+WbgD5UZW47Civlm4E+U2hvdTsKK+Wbgj5Hb3U7Civlm4M+U291Owor5ZuIPkdlaTsKK+Wbjj5TbzsKK+WbkT5TaG9rdTsKK+Wbkz5LZXRzdTsKK+Wblz5JOwor5ZuYPkthaTsKK+Wbmj5TaHV1Owor5ZubPlNoaTsKK+Wbnj5LYWk7Civlm6A+SW47Civlm6M+RGFuOwor5ZuuPkthOwor5ZuwPktvbjsKK+Wbsj5JOwor5ZuzPlRvOwor5Zu5PlJlaTsKK+Wbuj5LbzsKK+WbvT5Lb2t1Owor5Zu/Pll1dTsKK+WcgD5Lb2t1Owor5ZyDPkhvOwor5ZyEPkd5bzsKK+WciD5LZW47CivlnIk+R3lvOwor5ZyLPktva3U7CivlnI0+STsKK+Wcjz5LZW47CivlnJI+RW47CivlnJM+RW47CivlnJY+VG87CivlnJg+RGFuOwor5ZycPkthbjsKK+Wcnz5EbzsKK+Wcpz5BdHN1Owor5ZyoPlphaTsKK+WcrT5LZWk7CivlnLA+Q2hpOwor5Zy7PktpOwor5Z2APlNoaTsKK+Wdgj5IYW47CivlnYc+S2luOwor5Z2KPkJvdTsKK+Wdjj5LYW47CivlnY8+SGFpOwor5Z2QPlphOwor5Z2RPktvdTsKK+WdoT5IYTsKK+WdpD5Lb247CivlnaY+VGFuOwor5Z2pPkthbjsKK+Wdqj5IZWk7Civlnb8+RnU7CivlnoI+U3VpOwor5Z6IPlRhaTsKK+WeiT5Ib3U7Civlnos+S2VpOwor5Z6TPkdhaTsKK+WeoD5HaW47CivlnqI+S291Owor5Z6jPkVuOwor5Z6kPlRldHN1Owor5Z+APlN1aTsKK+Wfgz5BaTsKK+Wfhj5LYWt1Owor5Z+LPk1haTsKK+Wfjj5Kb3U7Civln5I+UmFjaGk7Civln5M+UmFjaGk7Civln5Q+SG87Civln5w+U2hvOwor5Z+fPklraTsKK+WfoD5GdTsKK+Wfoz5TYWk7Civln7Q+U2hva3U7Civln7c+U2hpdHN1Owor5Z+5PkJhaTsKK+Wfuj5LaTsKK+WfvD5LaTsKK+WggD5LdXRzdTsKK+Wggj5Eb3U7CivloIU+S2VuOwor5aCGPlRhaTsKK+Wgij5BOwor5aCLPkhvdTsKK+WglT5EYTsKK+WgmT5JbjsKK+WgnT5LYTsKK+WgoT5Ib3U7CivloKQ+VGVpOwor5aCqPkthbjsKK+Wgrz5HeW91Owor5aCwPkVuOwor5aCxPkhvdTsKK+WgtD5Kb3U7CivloLU+VG87CivloLo+S2FpOwor5aC9PktvdTsKK+WhgT5SdWk7CivloYo+S2FpOwor5aGLPkVpOwor5aGRPlNvOwor5aGSPlNoaTsKK+WhlD5Ub3U7CivloZc+VG87CivloZg+VG91Owor5aGZPktha3U7CivloZo+Q2hvdTsKK+Whnj5Tb2t1Owor5aGiPk87Civloak+RW47Civloas+VGVuOwor5aGyPkpvdTsKK+WhtT5KaW47Civlobk+WmFuOwor5aG+Pkp1a3U7CivlooM+S3lvdTsKK+WihT5TaG87CivlopM+Qm87Civlopc+Wm91Owor5aKcPlRzdWk7Civlop8+S3lvOwor5aKoPkJva3U7Civloqs+U2h1bjsKK+Wirj5EYTsKK+Wisz5GdW47Civlorg+U2hvOwor5aK6Pk91Owor5aK7PlNob3U7Civlor4+S29uOwor5aOBPkhla2k7Civlo4U+WW91Owor5aOHPkRhbjsKK+Wjij5LYWk7Civlo4w+Sm91Owor5aORPkdha3U7Civlo5M+QXRzdTsKK+WjlT5Hb3U7Civlo5g+UnVpOwor5aOZPktvdTsKK+WjnD5UYW47Civlo54+S2FpOwor5aOfPlJ5b3U7Civlo6Q+Sm91Owor5aOlPlRlbjsKK+Wjqz5TaGk7Civlo6w+SmluOwor5aOuPlNvdTsKK+Wjrz5Tb3U7Civlo7A+U2VpOwor5aOxPkljaGk7Civlo7I+QmFpOwor5aO3PktvOwor5aO5PkljaGk7Civlo7o+S287Civlo7s+U2VpOwor5aO8PktvbjsKK+WjvT5KdTsKK+Wkgj5DaGk7CivlpIk+SGVuOwor5aSKPlN1aTsKK+Wkjz5LYTsKK+WkkD5LZWk7CivlpJU+U2VraTsKK+Wklj5HYWk7CivlpJg+Qm91Owor5aSZPlNodWt1Owor5aSaPlRhOwor5aSbPlRhOwor5aScPllhOwor5aSiPk11Owor5aSlPkthOwor5aSnPlRhaTsKK+WkqT5UZW47CivlpKo+VGE7CivlpKs+RnU7CivlpKw+S2V0c3U7CivlpK0+WW91Owor5aSuPk91Owor5aSxPlNoaXRzdTsKK+Wksj5Ub3U7CivlpLc+STsKK+WkuD5LbzsKK+Wkvj5Lb3U7CivlpYQ+RW47CivlpYc+S2k7CivlpYg+TmE7CivlpYk+SG91Owor5aWOPktlaTsKK+Wljz5Tb3U7CivlpZA+S2FuOwor5aWRPlNldHN1Owor5aWUPkhvbjsKK+WllT5Fa2k7CivlpZc+VG91Owor5aWYPkpvdTsKK+Wlmj5LZWk7CivlpaA+VGVuOwor5aWiPlNoYTsKK+WlpT5PdTsKK+Wlpz5PdTsKK+WlqD5TaG91Owor5aWpPlJlbjsKK+Wlqj5EYXRzdTsKK+WlrD5TaG91Owor5aWuPkZ1bjsKK+Wlsz5KbzsKK+WltD5EbzsKK+WluD5LYW47Civlpb0+S291Owor5aaBPlNoYWt1Owor5aaCPkpvOwor5aaDPkhpOwor5aaEPkJvdTsKK+Wmij5OaW47Civlpo0+S2VuOwor5aaTPktpOwor5aaWPllvdTsKK+WmmT5NeW91Owor5aabPlNoaTsKK+WmnT5Tb3U7CivlpqM+SGk7CivlpqU+RGE7Civlpqg+Qm91Owor5aasPlRvOwor5aayPkRhdHN1Owor5aa5Pk1haTsKK+Wmuz5TYWk7Civlpr4+U2hvdTsKK+Wnhj5CbzsKK+WniT5TaGk7Civlp4s+U2hpOwor5aeQPlNvOwor5aeRPktvOwor5aeTPlNlaTsKK+WnlD5JOwor5aeZPk5pbjsKK+Wnmj5Zb3U7Civlp5w+S3lvdTsKK+WnpT5CbzsKK+Wnpj5LYW47Civlp6g+STsKK+Wnqj5UZXRzdTsKK+Wnqz5LaTsKK+Wntj5PdTsKK+Wnuz5JbjsKK+Wnvz5TaGk7CivlqIE+STsKK+Wogz5BOwor5aiJPkhlaTsKK+WokT5TaGE7CivlqJg+Sm91Owor5aiaPk5hbjsKK+WonD5EYTsKK+Wonz5LZW47CivlqKA+U2hpbjsKK+WopT5HYTsKK+WoqT5CZW47CivlqK8+R287CivlqLU+U2h1Owor5ai2PlNodTsKK+WovD5TaG91Owor5amAPkE7CivlqYE+Um91Owor5amGPkJhOwor5amJPkVuOwor5amaPktvbjsKK+Wpoj5IaTsKK+Wppj5GdTsKK+Wpqj5SYW47Civlqaw+SW47Civlqb8+U2VpOwor5aqSPkJhaTsKK+Wqmj5CaTsKK+Wqmz5FbjsKK+WqvD5PdTsKK+WqvT5CbzsKK+Wqvj5Lb3U7Civlq4E+S2E7Civlq4I+U291Owor5auJPlNoaXRzdTsKK+Wriz5Kb3U7Civlq4w+S2VuOwor5auQPkpvdTsKK+Wrlj5IeW91Owor5auXPk91Owor5auhPkNoYWt1Owor5aujPkVuOwor5aumPktvdTsKK+WrqT5Eb247Civlq7o+S2FuOwor5au7PkthbjsKK+WsiT5LaTsKK+Wsiz5TZW47CivlrIw+S3lvdTsKK+Wslj5IZWk7CivlrKI+Sm91Owor5ayqPkhpbjsKK+WsrD5TaHU7CivlrLA+RWk7CivlrLI+Sm91Owor5ay+PlJhbjsKK+WtgD5Tb3U7CivlrYM+Sm91Owor5a2FPlNlbjsKK+WtkD5TaGk7CivlrZE+R2V0c3U7CivlrZQ+S291Owor5a2VPllvdTsKK+Wtlz5KaTsKK+WtmD5Tb247CivlrZo+RnU7CivlrZs+Qm90c3U7CivlrZw+U2hpOwor5a2dPktvdTsKK+Wtnz5Nb3U7CivlraM+S2k7CivlraQ+S287CivlraU+RG87CivlraY+R2FrdTsKK+WtqT5LYWk7Civlras+U29uOwor5a2wPkp1a3U7CivlrbE+U2VuOwor5a2zPlNoaTsKK+WttT5GdTsKK+WtuD5HYWt1Owor5a26Pkp1Owor5a6APkJlbjsKK+Wugz5UYTsKK+WuhT5UYWt1Owor5a6HPlU7Civlrog+U2h1Owor5a6JPkFuOwor5a6LPlNvdTsKK+WujD5LYW47Civlro0+TmlrdTsKK+Wujz5Lb3U7CivlrpU+VG91Owor5a6XPlNodXU7Civlrpg+S2FuOwor5a6ZPkNodXU7Civlrpo+VGVpOwor5a6bPkVuOwor5a6cPkdpOwor5a6dPkhvdTsKK+Wunz5KaXRzdTsKK+Wuoj5LeWFrdTsKK+Wuoz5TZW47CivlrqQ+U2hpdHN1Owor5a6lPll1dTsKK+Wupj5LYW47Civlrq4+S3l1dTsKK+WusD5TYWk7CivlrrM+R2FpOwor5a60PkVuOwor5a61PlNob3U7CivlrrY+S2E7Civlrrg+U2hpbjsKK+WuuT5Zb3U7Civlrr8+U2h1a3U7Civlr4I+SmFrdTsKK+Wvgz5FbjsKK+WvhD5LaTsKK+WvhT5JbjsKK+Wvhj5NaXRzdTsKK+Wvhz5Lb3U7Civlr4k+S2FrdTsKK+WvjD5GdTsKK+WvkD5CaTsKK+Wvkj5LYW47Civlr5M+R3V1Owor5a+UPlNob2t1Owor5a+bPkthbjsKK+WvnT5TaGluOwor5a+ePkJha3U7Civlr58+U2F0c3U7Civlr6E+S2E7Civlr6I+U2hpbjsKK+WvpD5HbzsKK+WvpT5SeW91Owor5a+mPkppdHN1Owor5a+nPk5laTsKK+WvqD5TYWk7Civlr6k+U2hpbjsKK+Wvqz5TaGE7Civlr64+UnlvdTsKK+WvsD5LYW47Civlr7M+SG91Owor5a+1PkNob3U7Civlr7Y+SG91Owor5a+4PlN1bjsKK+Wvuj5KaTsKK+Wvvj5UYWk7Civlr78+SnU7CivlsIE+RnV1Owor5bCCPlNlbjsKK+WwhD5TaGE7CivlsIU+S29rdTsKK+Wwhj5TaG91Owor5bCHPlNob3U7CivlsIg+U2VuOwor5bCJPkk7CivlsIo+U29uOwor5bCLPkppbjsKK+WwjT5UYWk7CivlsI4+RG91Owor5bCPPlNob3U7CivlsJE+U2hvdTsKK+Wwkz5KaTsKK+Wwlj5TZW47CivlsJo+U2hvdTsKK+WwoD5TZW47CivlsKI+T3U7CivlsKQ+WXV1Owor5bCoPkJvdTsKK+WwrT5HeW91Owor5bCxPlNodXU7CivlsLg+U2hpOwor5bC5PkluOwor5bC6PlNoYWt1Owor5bC7PktvdTsKK+WwvD5OaTsKK+WwvT5KaW47CivlsL4+Qmk7CivlsL8+TnlvdTsKK+WxgD5LeW9rdTsKK+WxgT5IaTsKK+WxhT5LeW87CivlsYY+S2FpOwor5bGIPkt1dHN1Owor5bGKPkthaTsKK+Wxiz5Pa3U7CivlsY0+U2hpOwor5bGOPlNoaTsKK+Wxjz5IZWk7CivlsZA+R2VraTsKK+WxkT5TZXRzdTsKK+Wxkz5LaTsKK+WxlT5UZW47CivlsZ4+Wm9rdTsKK+WxoD5UbzsKK+WxoT5SdTsKK+WxpD5Tb3U7CivlsaU+Umk7Civlsaw+Wm9rdTsKK+Wxrj5TYTsKK+Wxrz5Ub247CivlsbE+U2FuOwor5bG5PktpdHN1Owor5bKMPkt5dXU7CivlspA+S2k7CivlspE+U2hpbjsKK+WylD5TYTsKK+WyoT5Lb3U7Civlsqg+U287Civlsqk+R2FuOwor5bKrPlNodXU7Civlsqw+S291Owor5bKxPlRhaTsKK+Wysz5HYWt1Owor5bK2Pkhha3U7Civlsrc+QmluOwor5bK4PkdhbjsKK+Wyuz5KaTsKK+Wyvj5TZW47Civls4c+S291Owor5bOZPkppOwor5bOhPkt5b3U7Civls6g+R2E7Civls6k+R2E7Civls6o+WW9rdTsKK+WzrT5TaG91Owor5bOvPkhvdTsKK+WzsD5Ib3U7Civls7Y+VG91Owor5bO6PktvdTsKK+Wzuz5TaHVuOwor5bO9Pkt5b3U7CivltIc+U3V1Owor5bSLPkthOwor5bSOPktpOwor5bSRPktvbjsKK+W0lD5TYWk7CivltJU+R2FpOwor5bSWPkdhaTsKK+W0lz5Lb3U7CivltJg+Um9uOwor5bSZPlJvbjsKK+W0mj5SeW91Owor5bSbPkt1dHN1Owor5bSfPkdpbjsKK+W0oj5Tb3U7CivltKk+SG91Owor5bWLPkJpOwor5bWMPkthbjsKK+W1jj5HdXU7CivltZA+UmFuOwor5bWSPkdhbjsKK+W1nD5LaTsKK+W1qT5TdXU7Civltaw+S2FpOwor5bWvPlNhOwor5bWzPlNhOwor5baCPlNob3U7CivltoQ+U2FuOwor5baHPkt1Owor5baLPlRvdTsKK+W2jD5Ub3U7CivltpA+Unl1dTsKK+W2nT5Ub3U7CivltqI+R3lvdTsKK+W2rD5HaTsKK+W2rj5LZW47Civltrc+R2k7Civltro+UmVpOwor5ba8PlNobzsKK+W2vT5HYWt1Owor5beJPlNhbjsKK+W3jD5HYW47Civlt40+R2k7Civlt5I+UmFuOwor5beTPlRlbjsKK+W3lj5HYW47Civlt5s+U2VuOwor5bedPlNlbjsKK+W3nj5TaHV1Owor5behPkp1bjsKK+W3oz5Tb3U7Civlt6U+S291Owor5bemPlNhOwor5benPktvdTsKK+W3qD5LeW87Civlt6s+RnU7Civlt64+U2hpOwor5bexPktpOwor5beyPkk7Civlt7M+U2hpOwor5be0PkhhOwor5be1PlNoaTsKK+W3tz5Lb3U7Civlt7s+S2FuOwor5be9PlNvbjsKK+W3vj5LaW47CivluII+U2hpOwor5biDPkZ1Owor5biGPkhhbjsKK+W4iz5TaGk7CivluIw+S2k7CivluJE+RG87CivluJY+Sm91Owor5biZPkNoaXRzdTsKK+W4mj5Tb3U7CivluJs+SGFrdTsKK+W4nT5UZWk7CivluKU+U290c3U7CivluKs+U2hpOwor5bitPlNla2k7CivluK8+VGFpOwor5biwPktpOwor5bizPkNob3U7CivluLY+VGFpOwor5bi3Pkk7CivluLg+Sm91Owor5bi9PkJvdTsKK+W5gD5UZWk7CivluYM+STsKK+W5hD5Ba3U7CivluYU+RnVrdTsKK+W5hz5Ib3U7CivluYw+S291Owor5bmOPkJla2k7CivluZQ+QmFuOwor5bmVPk1ha3U7CivluZc+S2FrdTsKK+W5nz5TaGk7CivluaE+SGFuOwor5bmiPlRvdTsKK+W5oz5IZWk7CivluaQ+SGVpOwor5bmyPkthbjsKK+W5sz5IZWk7CivlubQ+TmVuOwor5bm1PktlbjsKK+W5tj5IZWk7Civlubg+S291Owor5bm5PkthbjsKK+W5uj5Zb3U7Civlubs+R2VuOwor5bm8PllvdTsKK+W5vT5ZdXU7Civlub4+S2k7Civlub8+R2VuOwor5bqBPkNob3U7CivluoM+S291Owor5bqEPlNvdTsKK+W6hz5IaTsKK+W6ij5TaG91Owor5bqPPkpvOwor5bqVPlRlaTsKK+W6lj5Ib3U7Civlupc+VGVuOwor5bqaPktvdTsKK+W6nD5GdTsKK+W6oD5TaG91Owor5bqmPlRha3U7Civluqc+WmE7Civluqs+S287Civluq0+VGVpOwor5bq1PkFuOwor5bq2PlNobzsKK+W6tz5Lb3U7Civlurg+WW91Owor5buBPlNoaTsKK+W7gj5TaG91Owor5buDPkhhaTsKK+W7iD5LYTsKK+W7iT5SZW47Civlu4o+Um91Owor5buQPkt5dXU7Civlu5M+S2FrdTsKK+W7lj5SeW91Owor5buaPlp1Owor5bubPlRlbjsKK+W7nT5TaGk7Civlu58+QnlvdTsKK+W7oD5TaG91Owor5buhPkJ1Owor5buiPkhhaTsKK+W7oz5Lb3U7Civlu6g+S2FpOwor5bupPlJpbjsKK+W7rD5SeW87Civlu7A+Q2hvdTsKK+W7sT5Zb3U7Civlu7M+Q2hvdTsKK+W7tD5JbjsKK+W7tj5FbjsKK+W7tz5UZWk7Civlu7g+VGVraTsKK+W7uj5LZW47Civlu7s+S2FpOwor5bu8PkRhaTsKK+W7vj5LeW91Owor5bu/Pkp1dTsKK+W8gT5CZW47CivlvIM+S2k7CivlvIQ+Um91Owor5byJPkpvdTsKK+W8ij5IZWk7CivlvIs+WW9rdTsKK+W8jD5JdHN1Owor5byNPk5pOwor5byPPlNoaWtpOwor5byQPk5pOwor5byRPlNoaTsKK+W8kz5LeXV1Owor5byUPkNob3U7CivlvJU+SW47CivlvJc+RnV0c3U7CivlvJg+S291Owor5bybPlNoaTsKK+W8nz5UZWk7CivlvKU+TWk7CivlvKY+R2VuOwor5bynPktvOwor5bypPkRvOwor5bytPkJpOwor5byvPldhbjsKK+W8sT5KYWt1Owor5by1PkNob3U7CivlvLc+S3lvdTsKK+W8uD5Ib3U7CivlvLw+SGl0c3U7CivlvL4+RGFuOwor5b2BPlNlaTsKK+W9iD5EYW47CivlvYo+S3lvdTsKK+W9jD5CaTsKK+W9jj5XYW47CivlvZE+S2VpOwor5b2TPlRvdTsKK+W9lj5UYW47CivlvZc+U3VpOwor5b2ZPkk7CivlvZw+STsKK+W9nT5JOwor5b2hPlNhbjsKK+W9oj5LZWk7CivlvaY+R2VuOwor5b2pPlNhaTsKK+W9qj5IeW91Owor5b2rPkNob3U7Civlvaw+SGluOwor5b2tPkhvdTsKK+W9sD5TaG91Owor5b2xPkVpOwor5b2zPlRla2k7Civlvbc+SG91Owor5b25Pllha3U7Civlvbw+SGk7Civlvb8+RnV0c3U7CivlvoA+T3U7CivlvoE+U2VpOwor5b6CPlNvOwor5b6DPk91Owor5b6EPktlaTsKK+W+hT5UYWk7Civlvoc+U2h1bjsKK+W+iD5Lb247Civlvoo+S2FpOwor5b6LPlJpdHN1Owor5b6MPkdvOwor5b6QPkpvOwor5b6RPktlaTsKK+W+kj5UbzsKK+W+kz5KdXU7Civlvpc+VG9rdTsKK+W+mD5IYWk7Civlvpk+U2hpOwor5b6ePkp1dTsKK+W+oD5SYWk7CivlvqE+R3lvOwor5b6oPktvdTsKK+W+qT5GdWt1Owor5b6qPkp1bjsKK+W+rT5Zb3U7Civlvq4+Qmk7CivlvrM+VG9rdTsKK+W+tD5DaG91Owor5b65PlRldHN1Owor5b68Pkt5b3U7Civlvr0+S2k7Civlv4M+U2hpbjsKK+W/hT5IaXRzdTsKK+W/jD5LaTsKK+W/jT5OaW47Civlv5Y+U29uOwor5b+XPlNoaTsKK+W/mD5Cb3U7Civlv5k+Qm91Owor5b+cPk91Owor5b+dPlRlbjsKK+W/oD5DaHV1Owor5b+kPkdvOwor5b+rPkthaTsKK+W/sD5TdWk7Civlv7E+U2hpbjsKK+W/tT5OZW47Civlv7g+SmlrdTsKK+W/uz5LaW47Civlv70+S290c3U7Civlv78+RnVuOwor5oCOPlNoaW47CivmgI8+WW91Owor5oCQPktvdTsKK+aAkj5EbzsKK+aAlT5IYTsKK+aAlj5GdTsKK+aAmT5LbzsKK+aAmz5EYXRzdTsKK+aAnD5SZWk7CivmgJ0+U2hpOwor5oCgPlRhaTsKK+aAoT5JOwor5oClPkt5dXU7CivmgKY+SG91Owor5oCnPlNlaTsKK+aAqD5FbjsKK+aAqT5KaTsKK+aAqj5LYWk7CivmgKs+RnV0c3U7CivmgK8+S3lvdTsKK+aAsT5Tb3U7CivmgYE+SW47CivmgYI+SnVuOwor5oGDPkppOwor5oGGPktvdTsKK+aBij5LeW91Owor5oGLPlJlbjsKK+aBjT5Lb3U7CivmgZA+S3lvdTsKK+aBkj5Lb3U7CivmgZU+Sm87CivmgZk+WW91Owor5oGaPkk7CivmgZ8+S3lvdTsKK+aBoD5LYWk7CivmgaI+S2FpOwor5oGjPlNoaTsKK+aBpD5KdXRzdTsKK+aBpT5DaGk7Civmgag+S29uOwor5oGpPk9uOwor5oGqPktha3U7Civmgas+RG91Owor5oGsPlRlbjsKK+aBrT5LeW91Owor5oGvPlNva3U7CivmgbA+S291Owor5oG1PktlaTsKK+aBtz5LeXV1Owor5oKBPkVuOwor5oKDPktvbjsKK+aChD5TaG91Owor5oKJPlNoaXRzdTsKK+aCiz5SaW47Civmgow+VGVpOwor5oKNPkthbjsKK+aCkj5ZdXU7CivmgpQ+S2FpOwor5oKWPkhhaTsKK+aClz5CYW47Civmgpo+U2hvdTsKK+aCmz5TZW47Civmgp8+R287CivmgqA+WXV1Owor5oKjPkthbjsKK+aCpj5FdHN1Owor5oKnPlJpOwor5oKpPk5vdTsKK+aCqj5Ba3U7CivmgrI+SGk7CivmgrM+VG9rdTsKK+aCtD5TdWk7CivmgrU+Q2hvdTsKK+aCtj5Nb247Civmgrg+S2k7Civmgrw+VG91Owor5oK9PlNlaTsKK+aDhT5Kb3U7Civmg4Y+Q2h1dTsKK+aDhz5Ub247Civmg5E+V2FrdTsKK+aDkz5LZW47Civmg5g+Qm91Owor5oOaPktvdHN1Owor5oOcPlNla2k7Civmg58+STsKK+aDoD5LZWk7Civmg6E+TzsKK+aDoz5Tb3U7Civmg6c+S3U7Civmg6g+U2FuOwor5oOwPkRhOwor5oOxPk5vdTsKK+aDsz5Tb3U7Civmg7Q+WnVpOwor5oO2PktvdTsKK+aDtz5TaHVuOwor5oO5PkphOwor5oO6PlNlaTsKK+aDuz5Tb2t1Owor5oSAPlNob3U7CivmhIE+U2h1dTsKK+aEgz5LZW47CivmhIY+S2VuOwor5oSIPll1Owor5oSJPll1Owor5oSNPkJpbjsKK+aEjj5IeW9rdTsKK+aEjz5JOwor5oSVPkdha3U7CivmhJo+R3U7CivmhJs+QWk7CivmhJ8+S2FuOwor5oShPlNvdTsKK+aEpz5LaTsKK+aEqD5LYWt1Owor5oSsPlNvOwor5oS0PlNvdTsKK+aEvD5TaGluOwor5oS9Pkhha3U7CivmhL4+S2k7CivmhL8+R2VuOwor5oWCPllvdTsKK+aFhD5SaXRzdTsKK+aFhz5JbjsKK+aFiD5KaTsKK+aFij5LZW47CivmhYs+VGFpOwor5oWMPktvdTsKK+aFjT5VbjsKK+aFjj5TaGluOwor5oWTPkh5b3U7CivmhZU+Qm87CivmhZg+U2FuOwor5oWZPlphbjsKK+aFmj5aYW47CivmhZ0+VG9rdTsKK+aFnz5Eb3U7CivmhaI+TWFuOwor5oWjPkthbjsKK+aFpT5ab3U7Civmhac+S2VpOwor5oWoPkdhaTsKK+aFqz5TaG91Owor5oWuPlJ5bzsKK+aFrz5TaG91Owor5oWwPkk7CivmhbE+VGFuOwor5oWzPkthbjsKK+aFtD5TaG91Owor5oW1PllvdTsKK+aFtj5LZWk7Civmhbc+S291Owor5oW+Pllva3U7CivmhoI+WXV1Owor5oaHPktlaTsKK+aGij5IYWk7Civmho4+Wm91Owor5oaQPlJlbjsKK+aGkT5IeW91Owor5oaUPlNob3U7CivmhpY+R2luOwor5oaZPktpOwor5oaaPlRhbjsKK+aGpD5GdW47Civmhqc+RG91Owor5oapPktlaTsKK+aGqz5CaW47Civmhqw+S2VpOwor5oauPkJ1Owor5oayPktlbjsKK+aGtj5Pa3U7Civmhro+VGFuOwor5oa+PkthbjsKK+aHgz5LaW47Civmh4Y+U291Owor5oeHPktvbjsKK+aHiD5LYWk7Civmh4k+WW91Owor5oeKPk91Owor5oeLPkJvdTsKK+aHjD5Fa2k7Civmh40+UmluOwor5oeQPkthaTsKK+aHoz5Nb247Civmh6Y+RGE7Civmh7I+Q2hvdTsKK+aHtD5aYW47Civmh7Y+UmFuOwor5oe3PkthaTsKK+aHuD5LZW47Civmh7o+WmFuOwor5oe8Pkt1Owor5oe9PkthbjsKK+aHvj5TaG91Owor5oe/Pkk7CivmiIA+UmVuOwor5oiIPkthOwor5oiJPkV0c3U7CivmiIo+Qm87CivmiIw+SnV0c3U7CivmiI0+SnU7CivmiI4+SnV1Owor5oiQPlNlaTsKK+aIkT5HYTsKK+aIkj5LYWk7CivmiJQ+U2FuOwor5oiWPldha3U7CivmiJo+U2VraTsKK+aImz5LYXRzdTsKK+aInT5ab2t1Owor5oiePkthdHN1Owor5oifPkdla2k7CivmiKE+S2FuOwor5oimPlNlbjsKK+aIqj5TZXRzdTsKK+aIrj5SaWt1Owor5oivPkdpOwor5oiwPlNlbjsKK+aIsj5HaTsKK+aIsz5UYWt1Owor5oi0PlRhaTsKK+aIuD5LbzsKK+aIuz5SZWk7CivmiL8+Qm91Owor5omAPlNobzsKK+aJgT5IZW47CivmiYc+U2VuOwor5omIPktvOwor5omJPkhpOwor5omLPlNodTsKK+aJjT5TYWk7CivmiY4+U2F0c3U7CivmiZM+RGE7CivmiZU+RnV0c3U7CivmiZg+VGFrdTsKK+aJmz5Lb3U7CivmiZ4+S2FuOwor5omgPlNhOwor5omjPktvdTsKK+aJrj5GdW47CivmibE+U291Owor5om2PkZ1Owor5om5PkhpOwor5om8PkFrdTsKK+aJvj5LYTsKK+aJvz5TaG91Owor5oqAPkdpOwor5oqCPkt5b3U7CivmioM+QmVuOwor5oqEPlNob3U7Civmiok+S2V0c3U7Civmioo+SGE7CivmipE+WW9rdTsKK+aKkj5KbzsKK+aKkz5Tb3U7CivmipQ+SG91Owor5oqVPlRvdTsKK+aKlj5Ub3U7Civmipc+S291Owor5oqYPlNldHN1Owor5oqbPkhvdTsKK+aKnD5CYXRzdTsKK+aKnj5UYWt1Owor5oqrPkhpOwor5oqsPlRhaTsKK+aKsT5Ib3U7CivmirU+VGVpOwor5oq5Pk1hdHN1Owor5oq7PlNoaW47Civmirw+T3U7Civmir0+Q2h1dTsKK+aLgj5GdXRzdTsKK+aLhT5UYW47Civmi4Y+VGFrdTsKK+aLhz5CbzsKK+aLiD5EZW47Civmi4k+UmF0c3U7Civmi4o+RnU7Civmi4w+SGFuOwor5ouNPkhha3U7Civmi48+RGE7Civmi5A+S2FpOwor5ouRPkthbjsKK+aLkj5LeW87Civmi5M+VGFrdTsKK+aLlD5CYXRzdTsKK+aLlz5PdTsKK+aLmD5Lb3U7Civmi5k+U2V0c3U7Civmi5s+U2hvdTsKK+aLnD5IYWk7Civmi50+SGFpOwor5ougPkt5bzsKK+aLoT5LYWt1Owor5ousPkthdHN1Owor5outPlNoaWtpOwor5ouuPktpdHN1Owor5ouvPkpvdTsKK+aLsT5LeW91Owor5ouzPktlbjsKK+aLtT5Tb247Civmi7Y+U2F0c3U7Civmi7c+R291Owor5ou+PlNodXU7Civmi78+RGE7CivmjIE+Smk7CivmjII+S2VpOwor5oyHPlNoaTsKK+aMiD5LZXRzdTsKK+aMiT5BbjsKK+aMjD5LYWt1Owor5oyRPkNob3U7CivmjJk+S3lvOwor5oyfPkt5b3U7CivmjKc+S3U7CivmjKg+QWk7CivmjKs+WmE7CivmjK8+U2hpbjsKK+aMuj5UZWk7CivmjL0+QmFuOwor5oy+Pkt5b3U7CivmjL8+U291Owor5o2JPlNva3U7CivmjYw+SGF0c3U7CivmjY0+S2FuOwor5o2PPkRldHN1Owor5o2QPkVuOwor5o2VPkhvOwor5o2XPkhvOwor5o2cPlNvdTsKK+aNpz5Ib3U7Civmjag+U2hhOwor5o2pPlJldHN1Owor5o2rPk1vbjsKK+aNrj5LeW87CivmjbI+S2VuOwor5o22PlN1aTsKK+aNtz5TaG91Owor5o26Pk5hdHN1Owor5o27Pk5lbjsKK+aOgD5LaW47CivmjoM+U291Owor5o6IPkp1Owor5o6JPlRvdTsKK+aOjD5TaG91Owor5o6OPktpOwor5o6PPlRvdTsKK+aOkj5IYWk7CivmjpY+RWtpOwor5o6YPkt1dHN1Owor5o6bPkthOwor5o6fPlRvdTsKK+aOoD5SeWFrdTsKK+aOoT5TYWk7CivmjqI+VGFuOwor5o6jPlNlaTsKK+aOpT5TZXRzdTsKK+aOpz5Lb3U7Civmjqg+U3VpOwor5o6pPkVuOwor5o6qPlNvOwor5o6rPlNvdTsKK+aOrD5LaWt1Owor5o6yPktlaTsKK+aOtD5LYWt1Owor5o67PlNvdTsKK+aOvj5FbjsKK+aPgD5LYW47Civmj4M+U2VuOwor5o+EPll1Owor5o+GPktpOwor5o+JPkp1dTsKK+aPjz5CeW91Owor5o+QPlRlaTsKK+aPkj5Tb3U7Civmj5Y+WXV1Owor5o+aPllvdTsKK+aPmz5LYW47Civmj6E+QWt1Owor5o+jPlNoaTsKK+aPqT5LYWk7Civmj64+S2k7Civmj7Q+RW47Civmj7Y+WWE7Civmj7o+WW91Owor5pCGPktvdTsKK+aQjT5Tb247CivmkI8+SGFrdTsKK+aQkz5TYTsKK+aQlj5Zb3U7CivmkJc+VG91Owor5pCcPlNvdTsKK+aQpj5KYWt1Owor5pCoPlRvdTsKK+aQrD5IYW47CivmkK0+VG91Owor5pC0PktlbjsKK+aQtj5TaG91Owor5pC6PktlaTsKK+aQvj5TYWt1Owor5pGCPlNldHN1Owor5pGOPkt5dXU7CivmkZg+VGVraTsKK+aRpz5TYWk7Civmkak+TWE7Civmka8+U2hpOwor5pG2PlRhbjsKK+aRuD5NbzsKK+aRuj5TaG91Owor5pKDPkdla2k7Civmkog+Um91Owor5pKSPlNhbjsKK+aSkz5Eb3U7CivmkpU+U2VpOwor5pKaPk5lbjsKK+aSnj5TaHU7CivmkqQ+VGV0c3U7CivmkqU+SGF0c3U7Civmkqk+UnlvdTsKK+aSqz5CdTsKK+aSrT5IYTsKK+aSrj5TYXRzdTsKK+aSsD5TYW47CivmkrI+Qm9rdTsKK+aSuT5LYWt1Owor5pK7PlRhY2hpOwor5pK8PkthbjsKK+aTgT5Zb3U7Civmk4I+UmFpOwor5pOFPlNlbjsKK+aThz5UYWt1Owor5pONPlNvdTsKK+aTkj5LaW47Civmk5Q+VGFuOwor5pOYPkhha3U7Civmk5o+S3lvOwor5pOgPlNlaTsKK+aToT5UYWk7Civmk6I+VGVraTsKK+aToz5Ub3U7Civmk6Y+U2F0c3U7Civmk6c+S3lvOwor5pOsPkdpOwor5pOvPkhpbjsKK+aTsT5LYWt1Owor5pOyPlRla2k7Civmk7Q+S2FrdTsKK+aTtj5TZW47Civmk7o+SGFpOwor5pO9PlJ5YWt1Owor5pO+PkpvdTsKK+aUgD5IYW47CivmlIU+U2FuOwor5pSYPkpvdTsKK+aUnD5LZWk7CivmlJ0+U2V0c3U7CivmlKM+UmVuOwor5pSkPlRhbjsKK+aUqj5LYWt1Owor5pSrPktha3U7CivmlKw+UmFuOwor5pSvPlNoaTsKK+aUtD5Ib2t1Owor5pS1PkJva3U7CivmlLY+U2h1dTsKK+aUtz5Lb3U7CivmlLg+WXV1Owor5pS5PkthaTsKK+aUuz5Lb3U7CivmlL4+SG91Owor5pS/PlNlaTsKK+aVhT5LbzsKK+aViD5Lb3U7CivmlY0+Sm87CivmlY8+QmluOwor5pWRPkt5dXU7CivmlZU+Q2hva3U7CivmlZY+R291Owor5pWXPkhhaTsKK+aVmD5KbzsKK+aVmT5LeW91Owor5pWdPkhlaTsKK+aVnj5TaG91Owor5pWiPkthbjsKK+aVoz5TYW47CivmlaY+VG9uOwor5pWsPktlaTsKK+aVsD5TdXU7CivmlbI+S291Owor5pW0PlNlaTsKK+aVtT5UZWtpOwor5pW3PkZ1Owor5pW4PlN1dTsKK+aWgj5SZW47CivmloM+SGVpOwor5paHPkJ1bjsKK+aWiD5HYWt1Owor5paJPlNlaTsKK+aWjD5IaW47Civmlo4+U2FpOwor5paQPkhpOwor5paRPkhhbjsKK+aWlz5UbzsKK+aWmT5SeW91Owor5pabPktva3U7Civmlpw+U2hhOwor5pafPlNoaW47CivmlqE+QXRzdTsKK+aWpD5LaW47CivmlqU+U2VraTsKK+aWpz5GdTsKK+aWqz5TaGFrdTsKK+aWrD5aYW47Civmlq0+RGFuOwor5pavPlNoaTsKK+aWsD5TaGluOwor5pa3PkRhbjsKK+aWuT5Ib3U7Civmlrw+TzsKK+aWvT5TaGk7Civml4E+SG91Owor5peDPlNlbjsKK+aXhD5Cb3U7Civml4U+UnlvOwor5peGPkhhaTsKK+aXiz5TZW47Civml4w+U2VpOwor5pePPlpva3U7Civml5I+Unl1dTsKK+aXlz5LaTsKK+aXmT5IYW47Civml5s+SGFuOwor5pegPkJ1Owor5pehPktpOwor5peiPktpOwor5pelPk5pY2hpOwor5pemPlRhbjsKK+aXpz5LeXV1Owor5peoPlNoaTsKK+aXqT5Tb3U7Civml6w+SnVuOwor5petPkt5b2t1Owor5pexPkthbjsKK+aXuj5PdTsKK+aXuz5CaW47CivmmII+S291Owor5piDPlNva3U7CivmmIY+S29uOwor5piHPlNob3U7CivmmIo+S291Owor5piMPlNob3U7CivmmI4+TWVpOwor5piPPktvbjsKK+aYkz5Fa2k7CivmmJQ+U2VraTsKK+aYnD5Zb3U7CivmmJ8+U2VpOwor5pigPkVpOwor5pilPlNodW47CivmmKc+TWFpOwor5pioPlNha3U7CivmmK0+U2hvdTsKK+aYrz5aZTsKK+aYtD5Cb3U7CivmmLU+Sml0c3U7CivmmLY+Q2hvdTsKK+aYvD5DaHV1Owor5pi/PktvdTsKK+aZgT5DaG91Owor5pmCPkppOwor5pmDPktvdTsKK+aZhD5Lb3U7CivmmYk+U2hpbjsKK+aZiz5TaGluOwor5pmPPkFuOwor5pmSPlNhaTsKK+aZnT5DaHV1Owor5pmePktpOwor5pmfPlNlaTsKK+aZoj5TZXRzdTsKK+aZpD5HbzsKK+aZpj5LYWk7Civmmac+S291Owor5pmoPlNoaW47Civmmak+QmFuOwor5pmuPkZ1Owor5pmvPktlaTsKK+aZsD5TZWtpOwor5pm0PlNlaTsKK+aZtj5TaG91Owor5pm6PkNoaTsKK+aagT5HeW91Owor5pqDPkhpOwor5pqEPktlbjsKK+aahz5LYTsKK+aaiD5VbjsKK+aaiT5LaTsKK+aajj5FaTsKK+aakT5TaG87CivmmpY+RGFuOwor5pqXPkFuOwor5pqYPllvdTsKK+aanT5NZWk7CivmmqI+Q2hvdTsKK+aapj5SZWtpOwor5pqrPlphbjsKK+aarj5CbzsKK+aatD5Cb3U7Civmmrg+UnlvdTsKK+aauT5TZW47Civmmrw+SGV0c3U7Civmmr4+VG9uOwor5puBPktpOwor5puEPllvdTsKK+abhz5Eb247Civmm4k+R3lvdTsKK+ablj5BaTsKK+abmT5TaG87Civmm5o+Qm91Owor5pucPllvdTsKK+abnT5CYWt1Owor5pugPktvdTsKK+abpj5HaTsKK+abqT5Eb3U7Civmm7A+RXRzdTsKK+absj5LeW9rdTsKK+absz5FaTsKK+abtD5Lb3U7Civmm7U+RWk7Civmm7c+S2F0c3U7Civmm7g+U2hvOwor5pu5PlNvdTsKK+abvD5CYW47Civmm70+Wm87Civmm74+U287Civmm78+VGFpOwor5pyAPlNhaTsKK+acgz5LYWk7CivmnIg+R2V0c3U7CivmnIk+WXV1Owor5pyLPkhvdTsKK+acjT5GdWt1Owor5pyPPkhpOwor5pyUPlNha3U7CivmnJU+Q2hpbjsKK+aclj5Sb3U7CivmnJc+Um91Owor5pybPkJvdTsKK+acnT5DaG91Owor5pyePktpOwor5pyfPktpOwor5pymPkJvdTsKK+acpz5Sb3U7CivmnKg+Qm9rdTsKK+acqj5NaTsKK+acqz5NYXRzdTsKK+acrD5Ib247CivmnK0+U2F0c3U7CivmnK4+SnV0c3U7CivmnLE+U2h1Owor5py0PkJva3U7CivmnLY+RGE7CivmnLc+VG91Owor5py4PlJ5b2t1Owor5py6PktpOwor5py9Pkt5dXU7CivmnL8+U2hpOwor5p2GPkthbjsKK+adiT5TYW47CivmnY4+Umk7CivmnY8+S3lvdTsKK+adkD5aYWk7CivmnZE+U29uOwor5p2TPkh5b3U7CivmnZY+Sm91Owor5p2ZPllva3U7CivmnZw+RG87CivmnZ4+S287CivmnZ8+U29rdTsKK+adoD5Lb3U7CivmnaE+Sm91Owor5p2lPlJhaTsKK+adqj5CeW91Owor5p2tPktvdTsKK+adrz5IYWk7CivmnbA+S2V0c3U7CivmnbE+VG91Owor5p2yPktvdTsKK+adsz5Zb3U7CivmnbU+U2hvOwor5p23PkhhOwor5p28PkNobzsKK+advj5TaG91Owor5p2/PkhhbjsKK+aehT5LZWk7Civmnoc+SGk7Civmnok+T3U7Civmnos+SG91Owor5p6MPkZ1bjsKK+aekD5TZWtpOwor5p6VPkNoaW47Civmnpc+UmluOwor5p6aPk1haTsKK+aenD5LYTsKK+aenT5TaGk7CivmnqI+U3V1Owor5p6mPlJvOwor5p6pPlNob3U7Civmnq8+S287CivmnrM+S2k7CivmnrQ+S2FpOwor5p62PkthOwor5p63PkthOwor5p64Pkt1Owor5p65PkhvdTsKK+afgT5UYTsKK+afhD5IZWk7Civmn4Y+Um91Owor5p+KPlNodXU7Civmn44+RnU7Civmn48+SGFrdTsKK+afkD5Cb3U7Civmn5E+S2FuOwor5p+TPlNlbjsKK+aflD5OeXV1Owor5p+YPlNoYTsKK+afmj5ZdXU7Civmn50+VGFrdTsKK+afnj5TYWt1Owor5p+iPlRlaTsKK+afpD5TYTsKK+afpz5LbzsKK+afqT5LeXV1Owor5p+sPkthbjsKK+afrj5Ub3RzdTsKK+afrz5LYTsKK+afsT5DaHV1Owor5p+zPlJ5dXU7Civmn7Q+U2FpOwor5p+1PlNha3U7Civmn7s+U2E7Civmn74+S3l1dTsKK+afvz5TaGk7CivmoIQ+RWk7CivmoJM+U2VuOwor5qCWPlNlaTsKK+aglz5SaXRzdTsKK+agnj5LYW47CivmoKE+S291Owor5qCiPkhha3U7CivmoKk+S3U7CivmoKo+Q2h1Owor5qCrPlNvbjsKK+agsj5Hb3U7CivmoLQ+U2VuOwor5qC4Pktha3U7CivmoLk+S29uOwor5qC8PktvdTsKK+agvT5TYWk7CivmoYA+S2V0c3U7CivmoYE+S291Owor5qGCPktlaTsKK+ahgz5Ub3U7CivmoYY+S3lvdTsKK+ahiD5BbjsKK+ahjT5LbzsKK+ahjj5TaGl0c3U7CivmoZA+RG91Owor5qGRPlNvdTsKK+ahkz5LYW47CivmoZQ+S2l0c3U7CivmoZk+VTsKK+ahnD5PdTsKK+ahnz5TYW47CivmoaM+VG91Owor5qGnPkthaTsKK+ahtD5GdTsKK+ahtj5Ub3U7Civmobc+S2FrdTsKK+ahvj5LdW47Civmob8+S2FuOwor5qKBPlJ5b3U7CivmooM+VGVpOwor5qKFPkJhaTsKK+aijT5Tb3U7Civmoo8+S29rdTsKK+aikz5TaGk7CivmopQ+U2hpOwor5qKXPktvdTsKK+aimz5EYTsKK+ainT5Kb3U7Civmop8+S3lvdTsKK+aioD5SeW87CivmoqI+U2hvdTsKK+aipj5NdTsKK+aipz5HbzsKK+aiqD5SaTsKK+airT5TYTsKK+airz5UZWk7CivmorA+S2FpOwor5qKxPktvbjsKK+aisz5TbzsKK+aitT5GdXU7CivmorY+Qmk7Civmork+QmluOwor5qK8PlRvdTsKK+ajhD5LaTsKK+ajhj5SaW47Civmo4k+TWVuOwor5qOKPktpOwor5qOLPktpOwor5qONPktvbjsKK+ajkj5Cb3U7Civmo5Q+S29uOwor5qOVPlNodTsKK+ajlz5Tb3U7Civmo5g+S3lva3U7Civmo5o+SG91Owor5qOfPlRvdTsKK+ajoD5Ub3U7Civmo6E+S291Owor5qOjPlRlaTsKK+ajpz5TYW47Civmo64+U2hpbjsKK+ajrz5KaW47Civmo7I+U2VpOwor5qO5PlRvdTsKK+ajuj5LYW47CivmpIA+V2FuOwor5qSBPktha3U7CivmpIQ+U2V0c3U7CivmpIU+STsKK+akiD5LaWt1Owor5qSLPlJ5b3U7CivmpIw+S291Owor5qSNPlNob2t1Owor5qSOPlRzdWk7CivmpI8+QTsKK+akkj5TaG91Owor5qScPktlbjsKK+akoj5LYWk7CivmpKY+S2VuOwor5qSwPllhOwor5qS0PlRhbjsKK+aktj5TaHU7CivmpLk+Q2hpbjsKK+akvT5UZW47CivmpL8+Q2hpbjsKK+alij5Zb3U7CivmpZM+RnV1Owor5qWUPlNldHN1Owor5qWVPkRhOwor5qWZPkJvdTsKK+almj5TbzsKK+alnD5LbzsKK+alnT5SZW47CivmpZ4+Um91Owor5qWgPk5hbjsKK+aloT5ZdTsKK+aloj5TaHV1Owor5qWqPllvdTsKK+alqz5TaHV1Owor5qWtPkd5b3U7Civmpa4+Q2hvOwor5qWvPkp1bjsKK+alsz5CYWk7CivmpbQ+VGVpOwor5qW1Pkdva3U7Civmpbc+S2FpOwor5qW4PlNodXU7Civmpbk+RWk7Civmpbw+Um91Owor5qW9Pkdha3U7CivmpoI+R2FpOwor5qaOPkthOwor5qaRPkZ1Owor5qaUPlJvdTsKK+amlT5Zb3U7Civmpps+U2hpbjsKK+amnD5Cb3U7CivmpqA+QmVpOwor5qanPkhpOwor5qauPkVpOwor5qaxPlN1aTsKK+amsj5PdHN1Owor5qa0PlJ5dXU7Civmprs+VG91Owor5qa+PktvdHN1Owor5qa/PktpOwor5qeBPktvdTsKK+angz5IYW47Civmp4c+VGVuOwor5qeKPlNha3U7Civmp4s+S291Owor5qeMPlRzdWk7Civmp40+U291Owor5qeOPlNhOwor5qeQPkthaTsKK+ankz5Lb3U7Civmp5g+WW91Owor5qeZPlRlbjsKK+annT5Ub3U7Civmp54+Um91Owor5qenPlNhbjsKK+anqD5LYWt1Owor5qerPlRhbjsKK+anrT5TaHVrdTsKK+ansj5Lb2t1Owor5qe5PktvdTsKK+anuz5LaTsKK+anvT5Tb3U7Civmp78+S2luOwor5qiCPkdha3U7CivmqIU+U2hvdTsKK+aoij5IYW47CivmqIs+VG91Owor5qiMPkthbjsKK+aokj5NaXRzdTsKK+aokz5Sb3U7CivmqJQ+U291Owor5qiXPkNobzsKK+aomT5IeW91Owor5qibPkt5dXU7CivmqJ4+U3V1Owor5qifPlNob3U7CivmqKE+TW87CivmqKI+Qm9rdTsKK+aooz5Zb3U7CivmqKk+S2VuOwor5qiqPk91Owor5qi1PlNob3U7CivmqLY+U2FpOwor5qi4PkJva3U7CivmqLk+SnU7CivmqLo+S2E7CivmqL0+U29uOwor5qmEPkthbjsKK+aphz5aZWk7CivmqYg+RG91Owor5qmLPkt5b3U7CivmqZg+S2l0c3U7CivmqZk+VG91Owor5qmfPktpOwor5qmhPlNob3U7CivmqaI+RGE7CivmqaY+VG91Owor5qm4PlNob3U7Civmqb8+S3lvdTsKK+aqgD5UYW47CivmqoQ+R2VraTsKK+aqjT5Zb2t1Owor5qqOPkdvOwor5qqQPkVuOwor5qqXPkhha3U7Civmqpw+S2FpOwor5qqgPktlaTsKK+aqoj5LZW47CivmqqM+U2hvdTsKK+aqqj5SZWtpOwor5qqsPkJvdTsKK+aqrj5Ub3U7CivmqrM+QmluOwor5qq4Pk5laTsKK+aquz5LYW47Civmq4E+TWl0c3U7Civmq4I+VG91Owor5quDPktpOwor5quRPlJhaTsKK+arkz5SbzsKK+armj5SeW87Civmq5s+U2hpdHN1Owor5quePkVuOwor5qufPlJla2k7Civmq6g+Um87Civmq6o+UmVraTsKK+aruj5SZWk7Civmq7s+T3U7CivmrIQ+UmFuOwor5qyFPkt5bzsKK+asij5LZW47CivmrJI+UmFuOwor5qyWPlJhbjsKK+asnT5VdHN1Owor5qygPktldHN1Owor5qyhPkppOwor5qyjPkdvbjsKK+aspz5PdTsKK+assj5Zb2t1Owor5qy3PktpOwor5qy4PkFpOwor5qy5Pkk7CivmrLo+R2k7CivmrL0+S2luOwor5qy+PkthbjsKK+atgz5Tb3U7CivmrYc+S2V0c3U7CivmrYk+S2VuOwor5q2MPkthOwor5q2OPlRhbjsKK+atkD5PdTsKK+atkz5LYW47CivmrZQ+S3lvOwor5q2ZPkt5dXU7CivmrZs+S2FuOwor5q2fPllvOwor5q2hPkthbjsKK+atoj5TaGk7CivmraM+U2VpOwor5q2kPlNoaTsKK+atpj5CdTsKK+atqT5IbzsKK+atqj5XYWk7Civmra8+U2hpOwor5q2zPlNlaTsKK+attD5SZWtpOwor5q24PktpOwor5q25PkdhdHN1Owor5q27PlNoaTsKK+atvz5Cb3RzdTsKK+augD5Zb3U7CivmroM+WW91Owor5q6EPlRlbjsKK+auhj5UYWk7Civmrok+SnVuOwor5q6KPlNodTsKK+auiz5aYW47Civmro0+SHlvdTsKK+aulT5GdXU7CivmrpY+U2hva3U7Civmrpg+WmFuOwor5q6ePkluOwor5q6kPlNob3U7Civmrqo+RWk7Civmrqs+VGFuOwor5q6vPkhpbjsKK+ausT5TZW47CivmrrI+U2VuOwor5q6zPlNodTsKK+autD5PdTsKK+autT5EYW47Civmrrc+SW47Civmrro+U2F0c3U7Civmrrs+S2FrdTsKK+auvD5LYWt1Owor5q6/PlRlbjsKK+avgD5LaTsKK+avhT5LaTsKK+avhj5PdTsKK+aviz5CdTsKK+avjT5CbzsKK+avjj5NYWk7Civmr5I+RG9rdTsKK+avkz5Ja3U7Civmr5Q+SGk7Civmr5g+SGk7Civmr5s+TW91Owor5q+rPktvdTsKK+avrD5LeXV1Owor5q+vPlRhbjsKK+avsz5aZWk7CivmsIg+U2VuOwor5rCPPlNoaTsKK+awkT5NaW47CivmsJM+Qm91Owor5rCUPktpOwor5rCXPktpOwor5rCbPkZ1bjsKK+awoz5LaTsKK+awpD5JbjsKK+awtD5TdWk7CivmsLc+SHlvdTsKK+awuD5FaTsKK+awvj5IYW47CivmsYA+VGVpOwor5rGBPkp1dTsKK+axgj5LeXV1Owor5rGOPkhhbjsKK+axkD5TZWtpOwor5rGVPlNhbjsKK+axlz5LYW47CivmsZo+TzsKK+axnT5KbzsKK+axnj5Lb3U7CivmsZ8+S291Owor5rGgPkNoaTsKK+axqD5CZWtpOwor5rGqPk91Owor5rGwPlRhOwor5rGyPkt5dXU7CivmsbM+SGVuOwor5rG6PktldHN1Owor5rG9PktpOwor5rG+PkZ1bjsKK+aygT5TaGluOwor5rKCPktpOwor5rKDPllva3U7Civmsog+Q2hpbjsKK+ayjD5Ub247Civmso0+R287CivmspA+Qm9rdTsKK+aykj5Cb3RzdTsKK+aykz5Ub3U7CivmspY+Q2h1dTsKK+aymT5TYTsKK+aymj5TaGk7Civmsps+SGFpOwor5rKhPkJvdHN1Owor5rKiPlRha3U7Civmsqs+TWF0c3U7Civmsq4+U2hvOwor5rKxPlRhOwor5rKzPkthOwor5rK4PkZ1dHN1Owor5rK5Pll1Owor5rK6PlRlbjsKK+ayuz5KaTsKK+ayvD5TaG91Owor5rK9PktvOwor5rK+PlRlbjsKK+ayvz5FbjsKK+azgT5LeW91Owor5rOEPkVpOwor5rOFPlNodXU7Civms4k+U2VuOwor5rOKPkhha3U7Civms4w+SGl0c3U7Civms5M+T3U7Civms5U+SG91Owor5rOXPlNoaTsKK+azmT5Ib3U7Civms5s+SGFuOwor5rOdPlNvOwor5rOhPkhvdTsKK+azoj5IYTsKK+azoz5LeXV1Owor5rOlPkRlaTsKK+azqD5DaHV1Owor5rOqPlJ1aTsKK+azrz5CaW47Civms7A+VGFpOwor5rOxPk91Owor5rOzPkVpOwor5rSLPllvdTsKK+a0jD5SZXRzdTsKK+a0kj5TZWk7CivmtJc+U2VuOwor5rSZPlNodTsKK+a0mz5SYWt1Owor5rSePkRvdTsKK+a0nz5JOwor5rSlPlNoaW47CivmtKk+RWk7CivmtKo+S291Owor5rSrPkt5b2t1Owor5rSyPlNodXU7CivmtLM+Sm87CivmtLU+U2h1bjsKK+a0tj5LeW91Owor5rS4PktvdTsKK+a0uz5LYXRzdTsKK+a0vT5Lb3U7CivmtL4+SGE7CivmtYE+Unl1dTsKK+a1hD5Kb3U7CivmtYU+U2VuOwor5rWZPlNldHN1Owor5rWaPlNodW47CivmtZw+SGluOwor5rWjPkthbjsKK+a1pD5Lb3U7CivmtaY+SG87Civmtak+S291Owor5rWqPlJvdTsKK+a1rD5SaTsKK+a1rj5GdTsKK+a1tD5Zb2t1Owor5rW3PkthaTsKK+a1uD5TaGluOwor5rW5PlNob3U7CivmtoU+TmV0c3U7Civmtog+U2hvdTsKK+a2jD5ZdXU7Civmto4+U2VuOwor5raTPktlbjsKK+a2lT5UZWk7Civmtpk+UnVpOwor5rabPlRvdTsKK+a2nD5Ub2t1Owor5ravPkdhaTsKK+a2sj5Fa2k7CivmtrU+S2FuOwor5ra4PktvOwor5ra8PlJ5b3U7Civmt4A+VGVuOwor5reFPlNla2k7Civmt4Y+S291Owor5reHPktpOwor5reLPlJpbjsKK+a3jD5TaG91Owor5reRPlNodWt1Owor5reSPlNlaTsKK+a3lT5SaWt1Owor5reYPlRvdTsKK+a3mT5Tb3U7Civmt54+U2hvdTsKK+a3oT5UYW47Civmt6Q+WW87Civmt6Y+S2FuOwor5reoPkpvdTsKK+a3qj5SaW47Civmt6s+SW47Civmt6w+U2FpOwor5reuPldhaTsKK+a3sT5TaGluOwor5rezPlNodW47Civmt7U+RW47Civmt7c+S29uOwor5re5PkVuOwor5re6PlNlbjsKK+a3uz5UZW47CivmuIU+U2VpOwor5riHPkthdHN1Owor5riIPlNhaTsKK+a4iT5TaG91Owor5riKPkVuOwor5riLPkp1dTsKK+a4kz5LZWk7CivmuJU+RW47CivmuJk+S2FuOwor5riaPlNobzsKK+a4mz5HZW47CivmuJ0+WXU7CivmuJ8+VGVpOwor5rigPkt5bzsKK+a4oT5UbzsKK+a4oz5TYTsKK+a4pD5Cb3RzdTsKK+a4pT5Ba3U7CivmuKY+S2E7CivmuKk+T247CivmuKs+U2V0c3U7CivmuKw+U29rdTsKK+a4rT5JOwor5riuPkthOwor5rivPktvdTsKK+a4uD5ZdXU7CivmuLo+QnlvdTsKK+a4vj5Lb247CivmuYM+SGFpOwor5rmKPlNvdTsKK+a5jT5UYW47CivmuY4+QmVuOwor5rmWPktvOwor5rmYPlNob3U7CivmuZs+VGFuOwor5rmfPktvdTsKK+a5pz5ZdXU7Civmuas+U2hvdTsKK+a5rj5JbjsKK+a5rz5Ub3U7CivmubI+S2FuOwor5rm2PlNlbjsKK+a5vj5XYW47Civmub8+U2hpdHN1Owor5rqAPk1hbjsKK+a6gj5SYXRzdTsKK+a6jD5IYXRzdTsKK+a6jz5Ub3U7CivmupA+R2VuOwor5rqWPkp1bjsKK+a6mD5Lb3U7Civmupw+Unl1dTsKK+a6nT5Lb3U7Civmup8+TWVpOwor5rqiPkl0c3U7CivmuqU+SG87Civmuqo+S2VpOwor5rqvPlNvOwor5rqyPlNvdTsKK+a6tj5Zb3U7Civmurc+S29uOwor5rq6PkRla2k7Civmur0+Sm9rdTsKK+a7gj5Cb3U7Civmu4Q+U291Owor5ruFPk1ldHN1Owor5ruJPktvdTsKK+a7iz5KaTsKK+a7jD5EZWtpOwor5ruRPkthdHN1Owor5ruTPlNhaTsKK+a7lD5Ub3U7Civmu5U+VG91Owor5rudPlNvdTsKK+a7nj5UYWk7Civmu6w+S287Civmu68+VGFpOwor5ruyPlNoaW47Civmu7Q+VGVraTsKK+a7tz5SbzsKK+a7uD5LbzsKK+a7vj5Lb247Civmu78+TWFuOwor5ryBPlJ5b3U7CivmvII+SHlvdTsKK+a8hj5TaGl0c3U7CivmvIk+Um9rdTsKK+a8jz5Sb3U7CivmvJE+R2FpOwor5ryTPlJpOwor5ryUPkVuOwor5ryVPlNvdTsKK+a8oD5CYWt1Owor5ryiPkthbjsKK+a8oz5SYW47CivmvKs+TWFuOwor5rysPlNoaTsKK+a8sT5Tb3U7CivmvLI+Q2hvdTsKK+a8uD5aZW47CivmvL4+WW91Owor5ry/PlNob3U7CivmvYE+RWk7CivmvYU+S2FuOwor5r2UPktldHN1Owor5r2YPkhhbjsKK+a9mz5TZW47CivmvZw+U2VuOwor5r2fPlNla2k7CivmvaQ+SnVuOwor5r2mPlJvdTsKK+a9rT5UYW47Civmva4+Q2hvdTsKK+a9rz5KaW47CivmvbA+S2FpOwor5r20PkNobzsKK+a9uD5TYW47Civmvbo+U2FuOwor5r28PkRvdTsKK+a+gD5KdXU7CivmvoE+SnV1Owor5r6CPkNob3U7CivmvoQ+Q2hvdTsKK+a+hj5HeW91Owor5r6OPkhvdTsKK+a+kT5SeXV1Owor5r6XPkthbjsKK+a+oT5Tb3U7CivmvqM+S2FuOwor5r6kPlRha3U7Civmvqo+UmVpOwor5r6xPlRlbjsKK+a+sz5Ja3U7Civmvrk+VGFuOwor5r+APkdla2k7Civmv4E+RGFrdTsKK+a/gj5SZW47Civmv4M+Tm91Owor5r+GPkZ1bjsKK+a/lD5EZWk7Civmv5U+U2hpdHN1Owor5r+YPk5laTsKK+a/nz5TYWk7Civmv6A+R291Owor5r+hPkp1Owor5r+kPlRvdTsKK+a/qz5SYW47Civmv6w+U2h1bjsKK+a/rj5Ib2t1Owor5r+vPlRha3U7Civmv7E+SGluOwor5r+zPlNlbjsKK+a/tj5LYXRzdTsKK+a/uj5TZW47Civmv74+UnlvOwor54CBPllvdTsKK+eAiT5TaGE7CivngIs+U2hpbjsKK+eAjz5SeXV1Owor54CRPkJha3U7CivngJU+SGluOwor54CYPlJvOwor54CaPkthbjsKK+eAmz5FaTsKK+eAnT5SZWtpOwor54CePkpvdTsKK+eAnz5TaG91Owor54CmPkNobzsKK+eApz5Tb3U7CivngKw+UmFpOwor54CwPkJpOwor54CyPlJlbjsKK+eAvj5SYW47CivngYw+S2FuOwor54GRPlNhaTsKK+eBmD5EYW47CivngaM+V2FuOwor54GrPkthOwor54GvPlRvdTsKK+eBsD5LYWk7Civngbg+S3l1dTsKK+eBvD5TaGFrdTsKK+eBvT5TYWk7Civngok+Um87Civngoo+U3VpOwor54KOPkVuOwor54KSPlNvdTsKK+eCmT5TaGE7Civngqw+S287Civngq0+VGFuOwor54KuPkhvdTsKK+eCrz5LZWk7CivngrM+SGVpOwor54K4PlNha3U7Civngrk+VGVuOwor54K6Pkk7Civng4g+UmV0c3U7Civng4s+S291Owor54OPPlU7Civng5k+UmFrdTsKK+eDnT5Kb3U7Civng58+RW47Civng7E+S2VpOwor54O5PkhvdTsKK+eDvT5Ib3U7CivnhIk+RW47CivnhJQ+RW47CivnhJk+SG91Owor54SaPkZ1bjsKK+eEnD5Lb247CivnhKE+TXU7CivnhKY+U2hvdTsKK+eEtj5aZW47CivnhLw+U2hvdTsKK+eFiT5SZW47CivnhYw+S291Owor54WOPlNlbjsKK+eFlT5LaTsKK+eFlj5EYW47CivnhZk+RW47CivnhaI+S2VpOwor54WkPkJhaTsKK+eFpT5LYW47CivnhaY+S3U7Civnhac+U2hvdTsKK+eFqT5IYW47Civnhaw+WW91Owor54WuPlNoYTsKK+eFvT5TZW47CivnhoQ+U29rdTsKK+eGiD5LaTsKK+eGij5ZdXU7Civnho8+S3VuOwor54aUPllvdTsKK+eGlT5Lb3U7Civnhpk+S2k7Civnhp8+SnVrdTsKK+eGqD5JOwor54asPkdvdTsKK+eGsT5OZXRzdTsKK+eGuT5LaTsKK+eGvj5TaGk7Civnh4M+TmVuOwor54eIPlRvdTsKK+eHiT5Ub247Civnh44+UnlvdTsKK+eHkD5SaW47Civnh5I+U2hvdTsKK+eHlD5IYW47Civnh5U+RW47Civnh5c+UmFuOwor54efPkVpOwor54egPklrdTsKK+eHpT5Tb3U7Civnh6Y+U2FuOwor54enPlN1aTsKK+eHrD5LaTsKK+eHrT5TaG9rdTsKK+eHrj5TaG91Owor54e1PlRhdHN1Owor54e5PlNlbjsKK+eHuz5LdW47Civnh7w+SmluOwor54e/PllvdTsKK+eIhj5CYWt1Owor54iNPlNoYWt1Owor54iQPlJvOwor54ibPlJhbjsKK+eIqD5TYW47CivniKo+U291Owor54isPkhhOwor54itPlNvdTsKK+eIsD5FbjsKK+eIsj5JOwor54i1PlNoYWt1Owor54i2PkZ1Owor54i6PllhOwor54i7PktvdTsKK+eIvD5TaG87CivniL0+U291Owor54i+PkppOwor54i/PlNob3U7CivniYA+U291Owor54mGPlNob3U7CivniYc+SGVuOwor54mIPkhhbjsKK+eJiz5TZW47CivniYw+SGFpOwor54mSPkNob3U7CivniZg+VG9rdTsKK+eJmT5HYTsKK+eJmz5HeXV1Owor54mdPkhpbjsKK+eJnz5Cb3U7CivniaE+Qm87CivniaI+Um91Owor54mnPkJva3U7Civniak+TW90c3U7CivnibI+U2VpOwor54m0PlRlaTsKK+eJuT5Ub2t1Owor54m9PktlbjsKK+eJvj5HbzsKK+eKgD5TZWk7CivnioE+Umk7CivnioI+Umk7Civnioc+SG9uOwor54qSPktvdTsKK+eKlj5SYWt1Owor54qgPkdpOwor54qiPlRva3U7Civniqc+R2k7Civniqw+S2VuOwor54qvPkhhbjsKK+eKsj5TYWk7CivnirY+Sm91Owor54q5Pll1dTsKK+eLgj5LeW91Owor54uDPkp1dTsKK+eLhD5UZWtpOwor54uGPkNodXU7Civni44+S291Owor54uQPktvOwor54uSPkhpOwor54uXPktvdTsKK+eLmT5TaG87Civni5s+SGFrdTsKK+eLoD5HYW47Civni6E+S291Owor54uiPktha3U7Civni6k+U2h1Owor54usPkRva3U7Civni60+S3lvdTsKK+eLtz5LZW47Civni7g+Umk7Civni7k+S3lvdTsKK+eLvD5Sb3U7Civni70+SGFpOwor54yKPkdlaTsKK+eMlj5TaG91Owor54yXPkk7CivnjJs+TW91Owor54ycPlNhaTsKK+eMnT5Tb3RzdTsKK+eMnz5SeW91Owor54ylPldhaTsKK+eMqT5TZWk7CivnjKo+Q2hvOwor54yrPkJ5b3U7CivnjK4+S2VuOwor54yvPlRhbjsKK+eMtD5Lb3U7CivnjLY+WXV1Owor54y3Pll1dTsKK+eMvj5LYXRzdTsKK+eMvz5FbjsKK+eNhD5Hb2t1Owor542FPlNoaTsKK+eNjj5TaG91Owor542PPkJha3U7CivnjZc+S2V0c3U7CivnjaM+SnV1Owor542oPkRva3U7Civnjao+S2FpOwor542wPkRvdTsKK+eNsj5LYWt1Owor5421PlJ5b3U7Civnjbg+SnV1Owor5426PkRhdHN1Owor5427PktlbjsKK+eOhD5HZW47Civnjoc+Uml0c3U7Civnjok+R3lva3U7Civnjos+T3U7CivnjpY+S3l1dTsKK+eOqT5HYW47CivnjrI+UmVpOwor546zPlRhaTsKK+eOuz5IYTsKK+ePgD5IYWt1Owor54+CPkthOwor54+IPkthOwor54+KPlNhbjsKK+ePjT5DaGluOwor54+OPkNoaW47Civnj54+UmFrdTsKK+ePoD5TaHU7Civnj6U+Smk7Civnj6o+S2VpOwor54+tPkhhbjsKK+ePrj5IYWk7Civnj7E+RWk7Civnj7g+R287Civnj74+R2VuOwor55CDPkt5dXU7CivnkIU+Um91Owor55CGPlJpOwor55CJPlJ5dXU7CivnkKI+VGFrdTsKK+eQpT5LbzsKK+eQsj5IYWk7CivnkLM+UmluOwor55C0PktpbjsKK+eQtT5CaTsKK+eQtj5IYTsKK+eQuj5Ib3U7CivnkL8+S29uOwor55GBPkJvdTsKK+eRlT5LYTsKK+eRmT5Eb3U7CivnkZo+S287CivnkZs+RWk7CivnkZw+WXU7CivnkZ4+WnVpOwor55GfPlNoaXRzdTsKK+eRoD5SeXV1Owor55GjPlNhOwor55GkPllvdTsKK+eRqT5FaTsKK+eRqj5CYTsKK+eRrz5Sb3U7CivnkbA+S2FpOwor55GzPlNhOwor55G2PllvdTsKK+eRvj5LaW47CivnkoM+Umk7Civnkos+U2hvdTsKK+eSnj5IYWt1Owor55KiPlJ5dXU7Civnkqc+SGVraTsKK+eSsD5LYW47Civnkr0+Smk7Civnk4o+S2VpOwor55OPPlJvdTsKK+eTlD5FaTsKK+eTnD5LYTsKK+eToD5LbzsKK+eToj5IeW91Owor55OjPkJlbjsKK+eTpj5HYTsKK+eTrj5PdTsKK+eTtj5IZWk7Civnk7c+U2hpOwor55SDPlNodXU7CivnlIQ+S2VuOwor55SMPk91Owor55SNPkJvdTsKK+eUjj5TZW47CivnlJE+U291Owor55STPkhla2k7CivnlJU+T3U7CivnlJg+S2FuOwor55SaPlNoaW47CivnlJw+VGVuOwor55SePlNob3U7CivnlJ8+U2VpOwor55SjPlNhbjsKK+eUpT5TZWk7CivnlKY+U287CivnlKg+WW91Owor55SrPkhvOwor55SsPllvdTsKK+eUsD5EZW47CivnlLE+WXV1Owor55SyPktvdTsKK+eUsz5TaGluOwor55S3PkRhbjsKK+eUuD5UZW47CivnlLo+Q2hvdTsKK+eUuz5HYTsKK+eUvD5DaG91Owor55WEPlJ5dXU7CivnlYY+SG87CivnlYk+RnU7CivnlYo+S291Owor55WLPlRlbjsKK+eVjD5LYWk7CivnlY0+S2FpOwor55WPPkk7CivnlZQ+SGFuOwor55WZPlJ5dXU7CivnlZo+SG9uOwor55WbPlNoaW47CivnlZw+Q2hpa3U7CivnlZ0+SG87CivnlaI+SGl0c3U7CivnlaQ+U2hpOwor55WlPlJ5YWt1Owor55WmPktlaTsKK+eVpz5SeWFrdTsKK+eVqj5CYW47Civnlas+S2FrdTsKK+eVrT5ZbzsKK+eVsD5JOwor55WzPkpvdTsKK+eVtD5DaHV1Owor55W2PlRvdTsKK+eVtz5UZXRzdTsKK+eVuD5LaTsKK+eVvz5LaTsKK+eWgj5Kb3U7CivnloY+S3lvdTsKK+eWhz5DaHV1Owor55aJPkpvdTsKK+eWij5Kb3U7Civnlos+U287Civnlo4+U287Civnlo8+U287CivnlpE+R2k7CivnlpQ+Q2hvdTsKK+eWmj5LeXV1Owor55adPlNhbjsKK+eWoz5ZdXU7CivnlqU+S2FpOwor55arPkVraTsKK+eWsT5Ib3U7CivnlrI+SGk7CivnlrM+S2FuOwor55a1PlNoaTsKK+eWuD5UYW47Civnlrk+U2hpbjsKK+eWvD5Ub3U7Civnlr0+U2hvOwor55a+PlNoaXRzdTsKK+eXgj5LYTsKK+eXgz5LZW47Civnl4U+QnlvdTsKK+eXhz5TaG91Owor55eKPlNlbjsKK+eXjT5JOwor55eSPllvdTsKK+eXlD5KaTsKK+eXlT5Lb247Civnl5g+VG91Owor55eZPktlaTsKK+eXmz5UczsKK+eXnj5IaTsKK+eXoj5SaTsKK+eXoz5TaGk7Civnl6k+U291Owor55ewPlRhbjsKK+eXsj5NYTsKK+eXsz5SaW47Civnl7Q+Q2hpOwor55e6PkhpOwor55e8PktvOwor55e+PkE7Civnl78+STsKK+eYgT5TdWk7CivnmIk+WXU7CivnmIs+RnV1Owor55iNPllvdTsKK+eYnz5PbjsKK+eYoD5TZWtpOwor55ihPlNvdTsKK+eYoj5IYW47CivnmKQ+Unl1dTsKK+eYpz5HeWFrdTsKK+eYsD5SdWk7CivnmLQ+U2hvdTsKK+eYuz5Sb3U7CivnmYI+UnlvdTsKK+eZhj5Sb3U7CivnmYc+S2FuOwor55mIPkhhaTsKK+eZjD5HYW47CivnmZI+WXU7CivnmZY+SGVraTsKK+eZmD5SZWk7CivnmZw+RGVuOwor55mhPkNoaTsKK+eZoj5Zb3U7Civnmac+UmVraTsKK+eZqD5LYWt1Owor55mpPlJhaTsKK+eZqj5TaGFrdTsKK+eZrD5TZW47CivnmbA+WW91Owor55myPlRlbjsKK+eZtj5IYXRzdTsKK+eZuD5LaTsKK+eZuj5Ib3RzdTsKK+eZuz5Ub3U7Civnmbw+SG90c3U7Civnmb0+SGFrdTsKK+eZvj5IeWFrdTsKK+eagD5IeXV1Owor55qDPkJvdTsKK+eahD5UZWtpOwor55qGPkthaTsKK+eahz5Lb3U7Civnmog+S2k7Civnmos+S291Owor55qOPktvdTsKK+eakD5Lb3U7CivnmpM+S291Owor55qWPkthbjsKK+eamT5TZWtpOwor55qaPkdhaTsKK+earj5IaTsKK+easD5Ib3U7CivnmrQ+U2h1bjsKK+eatz5LbzsKK+eauD5LdW47Civnmrk+S3VuOwor55q6PlN1dTsKK+eavz5CYWk7Civnm4I+VTsKK+ebgz5IYWk7Civnm4Y+Qm9uOwor55uIPkVpOwor55uKPkVraTsKK+ebjT5Lb3U7Civnm5I+S291Owor55uWPkdhaTsKK+eblz5Ub3U7Civnm5s+U2VpOwor55ucPlRvdTsKK+ebnj5TYW47Civnm58+TWVpOwor55uhPkppbjsKK+eboz5LYW47Civnm6Q+QmFuOwor55ulPkthbjsKK+ebpz5SbzsKK+ebqj5Ub3U7Civnm64+TW9rdTsKK+ebsj5Nb3U7Civnm7Q+Q2hva3U7Civnm7g+U2hvdTsKK+ebuz5LZWk7Civnm74+SnVuOwor55yBPlNlaTsKK+echD5CZW47CivnnIc+QnlvdTsKK+eciD5UYW47CivnnIk+Qmk7CivnnIs+S2FuOwor55yMPktlbjsKK+ecmz5NYWk7CivnnJ4+U2hpbjsKK+ecnz5TaGluOwor55ygPk1pbjsKK+ecpD5UZWk7CivnnKU+U2VpOwor55ymPlNlaTsKK+ecqT5HZW47CivnnLc+S2VuOwor55y4PkJvdTsKK+ecuj5DaG91Owor55y8PkdhbjsKK+edgD5DaGFrdTsKK+edhz5UZWk7CivnnZo+R2FpOwor552bPlNlaTsKK+edoT5TdWk7CivnnaM+VG9rdTsKK+edpT5IZWk7CivnnaY+Qm9rdTsKK+edqD5HZWk7Civnnas+U2hvdTsKK+eduT5UbzsKK+edvj5Lb3U7Civnnb8+RWk7Civnnos+U2hpbjsKK+eejj5LYXRzdTsKK+eekT5NZWk7Civnnp4+QmFuOwor556gPkRvdTsKK+eepT5CZXRzdTsKK+eerD5TaHVuOwor556tPlJ5b3U7CivnnrA+S2FuOwor556zPkRvdTsKK+eetj5LaTsKK+eeuT5BaTsKK+eeuz5TZW47Civnnrw+S2VuOwor5569PktvOwor556/Pkt1Owor55+HPk1vdTsKK+efjT5LYWt1Owor55+XPkNoaWt1Owor55+aPlNob2t1Owor55+bPk11Owor55+cPktpbjsKK+efoj5TaGk7Civnn6M+STsKK+efpT5DaGk7Civnn6c+U2hpbjsKK+efqT5LdTsKK+efrT5UYW47Civnn64+V2FpOwor55+vPkt5b3U7Civnn7M+U2hha3U7Civnn7w+S291Owor56CCPlNhOwor56CMPlNlaTsKK+egkj5IaTsKK+eglD5LZW47CivnoJU+U2FpOwor56CgPlNobzsKK+egpT5TaGk7CivnoKY+U2FpOwor56CnPkNoaW47CivnoLI+SG91Owor56C0PkhhOwor56C6PlJlaTsKK+egvz5Lb3U7CivnoYU+S2VpOwor56GdPlNob3U7Civnoas+Unl1dTsKK+ehrD5Lb3U7Civnoa8+S2VuOwor56G8PkhvdTsKK+eigT5HbzsKK+eihj5IYTsKK+eihz5UZWk7Civnoow+Um9rdTsKK+eijT5HYWk7Civnoo4+U2FpOwor56KRPkhpOwor56KTPlRhaTsKK+eilT5LaTsKK+eilz5XYW47Civnopo+SGFpOwor56KjPktldHN1Owor56KnPkhla2k7Civnoqk+U2VraTsKK+eiqj5DaGluOwor56KvPkRvdTsKK+eitT5TZWtpOwor56K6Pktha3U7Civnorw+QmE7Civnor4+VGVuOwor56OBPkppOwor56OFPkhvdTsKK+ejhj5LYXRzdTsKK+ejij5SYWk7Civno4s+U2E7Civno5A+SGFuOwor56ORPkdhaTsKK+ejlD5UYWt1Owor56OaPlNlbjsKK+ejpz5TZWtpOwor56OoPk1hOwor56OsPktlaTsKK+ejrz5LaTsKK+ejtD5Ub3U7Civno70+S291Owor56SBPlNob3U7CivnpIc+SWt1Owor56SOPlNvOwor56SRPlRvdTsKK+ekkj5HaTsKK+ekmT5HYWk7CivnpKY+S291Owor56SqPlJlaTsKK+ekqz5SZWtpOwor56SsPkJhbjsKK+ekuj5TaGk7CivnpLw+UmVpOwor56S+PlNoYTsKK+elgD5TaGk7CivnpYE+S2k7CivnpYc+S2k7CivnpYg+S2k7CivnpYk+U2hpOwor56WQPll1dTsKK+elkz5GdXRzdTsKK+ellT5IaTsKK+ellj5TbzsKK+ellz5TaGk7CivnpZo+U287CivnpZ0+U2h1a3U7CivnpZ4+U2hpbjsKK+elnz5TdWk7CivnpaA+U2hpOwor56WiPkRlaTsKK+elpT5TaG91Owor56WoPkh5b3U7Civnpa0+U2FpOwor56W3PlRvdTsKK+eluj5LaTsKK+elvz5Sb2t1Owor56aAPlJpbjsKK+emgT5LaW47CivnpoQ+Um9rdTsKK+emhT5aZW47Civnpoo+S2VpOwor56aNPkthOwor56aOPlRlaTsKK+emjz5GdWt1Owor56adPlNob2t1Owor56amPkd5bzsKK+empz5LaTsKK+emqj5aZW47Civnpq4+UmVpOwor56awPkRlaTsKK+emsz5Kb3U7Civnprk+VTsKK+emuj5HdXU7Civnpr0+S2luOwor56a+PkthOwor56a/PlRva3U7Civnp4A+U2h1dTsKK+engT5TaGk7Civnp4k+SGVpOwor56eLPlNodXU7Civnp5E+S2E7Civnp5I+QnlvdTsKK+enlT5IaTsKK+enmD5IaTsKK+ennz5TbzsKK+enoT5IYXRzdTsKK+enoz5NYXRzdTsKK+enpD5TaG91Owor56emPlNoaW47Civnp6c+T3U7Civnp6k+Q2hpdHN1Owor56esPkt5bzsKK+ensD5TaG91Owor56e7Pkk7CivnqIA+S2k7CivnqIg+S2FuOwor56iLPlRlaTsKK+eojT5Tb3U7CivnqI4+WmVpOwor56iUPkppbjsKK+eolz5IYWk7CivnqJg+S2k7CivnqJk+Q2hva3U7CivnqJo+Q2hpOwor56icPlJ5b3U7CivnqJ8+UmluOwor56igPkNodXU7CivnqK4+U2h1Owor56ixPlNob3U7CivnqLI+VG91Owor56i3PlNob2t1Owor56i7PlRvdTsKK+eovD5LYTsKK+eovT5LZWk7CivnqL4+S291Owor56i/PktvdTsKK+epgD5Lb2t1Owor56mCPlN1aTsKK+epgz5Zb3U7CivnqYY+Qm9rdTsKK+epiT5DaGk7CivnqY0+U2VraTsKK+epjj5FaTsKK+epjz5PbjsKK+epkD5TaHV1Owor56mXPlN1aTsKK+epoT5TaG9rdTsKK+epoj5BaTsKK+epoz5Kb3U7Civnqak+T247Civnqas+S2FrdTsKK+epsD5Kb3U7CivnqbQ+S2V0c3U7CivnqbY+S3l1dTsKK+epuT5LeXV1Owor56m6Pkt1dTsKK+epvT5TZWk7Civnqb8+U2VuOwor56qBPlRvdHN1Owor56qDPlNldHN1Owor56qEPlNha3U7Civnqog+WW91Owor56qSPkNoaXRzdTsKK+eqkz5Tb3U7CivnqpU+Q2hvdTsKK+eqlj5Lb3U7Civnqpc+U291Owor56qYPktpbjsKK+eqnz5LdXRzdTsKK+eqqT5LYTsKK+eqqj5XYTsKK+eqrj5LeXV1Owor56qvPllvdTsKK+eqsD5Zb3U7CivnqrY+S3U7Civnqro+S2k7Civnqr8+Unl1dTsKK+ergz5Tb3U7Civnq4Q+WmFuOwor56uFPkt5b3U7Civnq4c+VG91Owor56uIPlNvdTsKK+erij5TZXRzdTsKK+eriz5SaXRzdTsKK+erkj5LaTsKK+ermT5UYW47Civnq5o+Q2hvOwor56ucPlJ5dXU7Civnq50+SGVpOwor56ufPktlaTsKK+eroD5TaG91Owor56uiPlNoaTsKK+eroz5TaHVuOwor56ulPkRvdTsKK+erpj5TaG91Owor56uqPkp1Owor56utPktldHN1Owor56uvPlRhbjsKK+ertj5LeW91Owor56u4PktlaTsKK+eruT5DaGlrdTsKK+eruj5Ub2t1Owor56u/PkthbjsKK+eshD5LZWk7CivnrIY+SGE7CivnrIg+S3l1dTsKK+esij5Tb3U7CivnrIs+SnVuOwor56yPPktvdHN1Owor56yRPlNob3U7CivnrJg+U2VuOwor56yZPlNvdTsKK+esmz5UZWtpOwor56yePkNoaTsKK+esoD5SeXV1Owor56ylPlNoaTsKK+espj5GdTsKK+esqD5Ib247CivnrKw+RGFpOwor56yzPkthOwor56y1PkhhbjsKK+estj5TaGk7CivnrYU+U2VuOwor562GPkhpdHN1Owor562IPkthdHN1Owor562JPlRvdTsKK+etiz5LaW47CivnrYw+U2VuOwor562NPkp1bjsKK+etjz5CYXRzdTsKK+etkD5LeW91Owor562RPkNoaWt1Owor562SPlRvdTsKK+etlD5Ub3U7CivnrZY+U2FrdTsKK+etnT5Tb3U7CivnraU+S3lvOwor562nPktlbjsKK+etrD5TZWk7Civnra4+U2VpOwor562wPlNha3U7CivnrbE+U2hvdTsKK+ettD5LeW91Owor5621PkVuOwor5626Pkt5b3U7CivnroY+SGVpOwor566HPkthOwor566LPlNlbjsKK+eujT5LbzsKK+eujz5Tb3U7CivnrpI+U291Owor566UPkhha3U7CivnrpU+S2k7Civnrpc+U2FuOwor566YPktpbjsKK+eumT5GdWt1Owor566aPlNhdHN1Owor566cPktvdTsKK+eunT5LYW47Civnrp8+S2luOwor566hPkthbjsKK+euqj5UYW47Civnrq0+U2VuOwor566xPlNob3U7CivnrrQ+U2hpbjsKK+euuD5DaG87Civnr4A+U2V0c3U7Civnr4E+S291Owor56+EPkhhbjsKK+evhj5UZW47Civnr4c+SGVuOwor56+JPkNoaWt1Owor56+LPkt5b3U7Civnr4w+S291Owor56+PPkthbjsKK+evnT5Lb3U7Civnr6A+U2hvdTsKK+evpD5Ub2t1Owor56+lPlJpdHN1Owor56+mPkhlaTsKK+evqT5TaGk7Civnr60+Um91Owor56+zPkhpdHN1Owor56+2PkVuOwor56+3PkhvdTsKK+ewgD5TYWt1Owor57CHPlNvdTsKK+ewjT5Sb3U7CivnsJE+U2E7CivnsJI+U2FuOwor57CTPlNlbjsKK+ewlD5TYTsKK+ewnz5UZW47CivnsKE+S2FuOwor57CjPktpOwor57CnPktvdTsKK+ewqj5TaGluOwor57CrPlNob3U7CivnsLc+RW47CivnsLg+SGE7CivnsL0+U2VuOwor57C+PlJlbjsKK+ewvz5CbzsKK+exgD5DaHV1Owor57GDPlJhbjsKK+exjD5DaHV1Owor57GNPlNla2k7CivnsZA+VG91Owor57GUPlN1Owor57GWPlNlbjsKK+exmD5Ub3U7CivnsZ8+UmFpOwor57GgPlJvdTsKK+expD5TZW47CivnsaU+WWFrdTsKK+exrD5SaTsKK+exsz5CZWk7CivnsoM+SGk7Civnsok+RnVuOwor57KLPlN1aTsKK+eykD5SbzsKK+eykj5SeXV1Owor57KVPkhha3U7Civnspc+U287Civnspg+TmVuOwor57KbPlNodWt1Owor57KfPlpva3U7CivnsqE+VG91Owor57KiPlNoaTsKK+eypD5FdHN1Owor57KlPlNodWt1Owor57KnPlNob3U7Civnsqs+Smk7Civnsq4+UnlvdTsKK+eysT5SeW91Owor57KyPlNhbjsKK+eysz5Lb3U7Civnsrk+U3VpOwor57K9PlNvdTsKK+eyvj5TZWk7Civns4I+U2FuOwor57OFPkp1dTsKK+ezij5LbzsKK+ezkj5IaTsKK+ezlj5Ub3U7Civns5w+Qmk7Civns54+RnVuOwor57OfPlNvdTsKK+ezoD5Lb3U7Civns6I+Qm87Civns6c+UnlvdTsKK+ezrz5EYTsKK+ezsj5SZWk7Civns7Q+VGVraTsKK+eztj5DaG91Owor57O4PlNoaTsKK+ezuj5LeXV1Owor57O7PktlaTsKK+ezvj5LeXV1Owor57SAPktpOwor57SCPkNodXU7CivntIQ+WWFrdTsKK+e0hT5LdTsKK+e0hj5VOwor57SKPkJpbjsKK+e0iz5Nb247CivntI0+VG91Owor57SQPkNodXU7CivntJQ+U2h1bjsKK+e0lT5IaTsKK+e0lz5TYTsKK+e0mD5Lb3U7CivntJk+U2hpOwor57SaPkt5dXU7CivntJs+RnVuOwor57ScPlVuOwor57SgPlNvOwor57ShPkJvdTsKK+e0oj5TYWt1Owor57SrPlNoaTsKK+e0rD5DaHV1Owor57SuPlNhdHN1Owor57SvPlJ1aTsKK+e0sD5TZWk7CivntLI+U2V0c3U7CivntLM+U2hpbjsKK+e0tT5DaG87CivntLk+U2hvdTsKK+e0uj5Lb247CivntL8+VGFpOwor57WCPlNodXU7CivntYM+R2VuOwor57WEPlNvOwor57WFPktlaTsKK+e1hj5CYW47CivntYs+S291Owor57WMPktlaTsKK+e1jj5Lb3U7CivntY8+U2V0c3U7CivntZA+S2V0c3U7CivntZY+S291Owor57WbPkpvdTsKK+e1nj5Lb3U7CivntaE+UmFrdTsKK+e1oj5LZW47CivntaM+SG91Owor57WmPkt5dXU7Civntag+SnV1Owor57WuPkpvOwor57WxPlRvdTsKK+e1sj5TaGk7CivntbM+S291Owor57W1PkthaTsKK+e1tj5aZXRzdTsKK+e1uT5LZW47Civntb0+UnlvOwor57aJPlRvdTsKK+e2jz5TdWk7CivntpM+S2VpOwor57aZPktlaTsKK+e2mj5ab2t1Owor57acPlNvdTsKK+e2nz5SZWk7CivntqI+Q2h1dTsKK+e2oz5LZW47Civntqs+U2VuOwor57asPkp1Owor57atPkk7Civntq4+S2VpOwor57avPlRvdTsKK+e2sD5XYW47CivntrE+S291Owor57ayPk1vdTsKK+e2tD5UZWk7CivntrU+U2FpOwor57a4PlJpbjsKK+e2uj5LaTsKK+e2uz5UYW47Civntr0+U2hha3U7Civntr4+UnlvdTsKK+e2vz5NZW47Civnt4c+U2hpOwor57eKPktpbjsKK+e3iz5IaTsKK+e3jz5Tb3U7Civnt5E+Unlva3U7Civnt5I+U2hvOwor57eYPkthbjsKK+e3mj5TZW47Civnt5w+QmVuOwor57edPlNodXU7Civnt54+VGFuOwor57egPlRlaTsKK+e3oT5CaW47Civnt6Q+U2V0c3U7Civnt6g+SGVuOwor57epPkthbjsKK+e3rD5NZW47Civnt68+STsKK+e3sj5CeW91Owor57e0PlJlbjsKK+e3uz5DaGk7CivnuIE+RW47CivnuIQ+Sm91Owor57iJPlNoaW47CivnuIo+RWk7CivnuIs+VHN1aTsKK+e4kj5TaGk7CivnuJs+QmFrdTsKK+e4nj5Lb3U7CivnuJ8+Sm9rdTsKK+e4oT5TYWk7CivnuKI+VG91Owor57ijPktlbjsKK+e4pj5KdXU7CivnuKs+SG91Owor57iuPlNodWt1Owor57ixPkp1dTsKK+e4sj5SdWk7CivnuLU+QmFuOwor57i3PlJ1Owor57i5Pkh5b3U7CivnuLo+UmVuOwor57i7PkJpOwor57i9PlNvdTsKK+e4vj5TZWtpOwor57mBPkhhbjsKK+e5gz5Ib3U7CivnuYY+S3l1dTsKK+e5ij5TZW47CivnuYs+S2VpOwor57mNPlNodXU7CivnuZQ+U2hva3U7CivnuZU+WmVuOwor57mWPlNhbjsKK+e5mT5IYW47CivnuZo+UnlvdTsKK+e5nT5LYW47CivnuZ4+Sm91Owor57mmPkt5b3U7Civnuac+VW47Civnuak+Sm91Owor57mqPkthaTsKK+e5rT5LZW47CivnubA+U291Owor57m5PkVraTsKK+e5uz5KdTsKK+e5vD5LZWk7Civnub0+SGluOwor57m/PlJhbjsKK+e6gj5TYW47Civnuog+S2V0c3U7Civnuok+U2FuOwor57qMPlpva3U7Civnuo4+U2VuOwor57qPPlRlbjsKK+e6kj5UZW47CivnupM+RWk7CivnupQ+U2FuOwor57qWPlNlbjsKK+e6mz5Ub3U7Civnupw+UmFuOwor57y2PkthbjsKK+e8uD5Lb3U7CivnvLo+S2V0c3U7CivnvYU+S2E7CivnvYw+T3U7CivnvY0+UmFpOwor572OPlRhbjsKK+e9kD5LYW47CivnvZE+Qm91Owor572UPkJvdTsKK+e9lT5LYW47CivnvZg+RnU7CivnvZ8+S287CivnvaA+QmluOwor572nPlNoaW47Civnvag+QW47Civnvak+VG91Owor572qPlphaTsKK+e9qz5LZWk7Civnva4+Q2hpOwor572wPkJhdHN1Owor572yPlNobzsKK+e9tT5CYTsKK+e9tz5IaTsKK+e9uD5CYXRzdTsKK+e9uT5SaTsKK+e+gj5LZW47CivnvoM+QmVraTsKK+e+hT5SYTsKK+e+hj5IaTsKK+e+hz5LaTsKK+e+iD5LaTsKK+e+ij5Zb3U7Civnvow+S3lvdTsKK+e+jj5CaTsKK+e+lD5Lb3U7Civnvpo+UmVpOwor576dPlRlaTsKK+e+nj5TaHV1Owor576jPkd1bjsKK+e+pD5HdW47Civnvqg+U2VuOwor576pPkdpOwor576uPktvdTsKK+e+rz5LYXRzdTsKK+e+sj5HaTsKK+e+tj5TZW47Civnvrg+UnVpOwor5765PktvdTsKK+e+vT5VOwor57+BPk91Owor57+FPlNoaTsKK+e/hj5TdWk7Civnv4o+WW9rdTsKK+e/jD5Zb2t1Owor57+SPlNodXU7Civnv5Q+U2hvdTsKK+e/lT5LeXV1Owor57+gPlN1aTsKK+e/oT5IaTsKK+e/pj5TZW47Civnv6k+SGVuOwor57+rPkdhbjsKK+e/sD5LYW47Civnv7M+RWk7Civnv7k+R3lvdTsKK+e/uz5Ib247Civnv7w+WW9rdTsKK+iAgD5Zb3U7CivogIE+Um91Owor6ICDPktvdTsKK+iAhD5Nb3U7CivogIU+U2hhOwor6ICGPktpOwor6ICLPlRldHN1Owor6ICMPkppOwor6ICQPlRhaTsKK+iAkj5SYWk7CivogJU+S291Owor6ICXPk1vdTsKK+iAmD5VbjsKK+iAmT5IYTsKK+iAnD5TaGk7CivogKE+Sm87CivogKg+RG91Owor6ICzPkppOwor6IC2PllhOwor6IC7PkNoaTsKK+iAvT5UYW47CivogL8+S291Owor6IGGPlJlaTsKK+iBij5SeW91Owor6IGSPkthdHN1Owor6IGWPlNlaTsKK+iBmD5IZWk7CivogZo+U2h1dTsKK+iBnj5CdW47CivogZ8+U2VpOwor6IGhPlNvdTsKK+iBqD5SZW47Civoga8+UmVuOwor6IGwPlNvdTsKK+iBsj5TZWk7CivogbM+U2hvdTsKK+iBtD5DaG91Owor6IG2PkpvdTsKK+iBtz5TaG9rdTsKK+iBuT5EZWk7Civogb0+Q2hvdTsKK+iBvj5Sb3U7Civogb8+SXRzdTsKK+iChD5JOwor6IKFPlNodWt1Owor6IKGPlNoaTsKK+iChz5DaG91Owor6IKJPk5pa3U7Civogos+Um9rdTsKK+iCjD5LaTsKK+iCkz5Lb3U7CivogpY+U2hvdTsKK+iCmD5DaHV1Owor6IKaPlRvOwor6IKbPktvdTsKK+iCnT5LYW47CivogqE+S287CivogqI+U2hpOwor6IKlPkhpOwor6IKpPktlbjsKK+iCqj5Cb3U7Civogqw+WXV1Owor6IKtPkRvdHN1Owor6IKvPktvdTsKK+iCsT5Lb3U7CivogrI+SWt1Owor6IK0PktvdTsKK+iCuj5IYWk7Civog4M+STsKK+iDhD5DaHV1Owor6IOGPlRhbjsKK+iDjD5IYWk7Civog44+VGFpOwor6IOWPkhhbjsKK+iDmT5TbzsKK+iDmj5IYWk7Civog5s+S291Owor6IOdPkNoaTsKK+iDnj5Ib3U7Civog6E+S287Civog6Q+SW47Civog6U+U2hvOwor6IOvPktvOwor6IOxPktvdTsKK+iDtD5Eb3U7Civog7g+S3lvdTsKK+iDvD5IZW47Civog70+Tm91Owor6ISCPlNoaTsKK+iEhT5LeW91Owor6ISGPlplaTsKK+iEhz5LeW91Owor6ISIPk15YWt1Owor6ISJPk15YWt1Owor6ISKPlNla2k7CivohJo+S3lha3U7CivohJs+S2VpOwor6ISjPlNoaW47CivohKk+U2h1dTsKK+iErz5IbzsKK+iEsT5EYXRzdTsKK+iEsz5Ob3U7CivohLk+Q2hvdTsKK+iEvj5IaTsKK+iFhj5UZW47CivohYs+RWtpOwor6IWOPkppbjsKK+iFkD5GdTsKK+iFkT5GdTsKK+iFkz5IaTsKK+iFlD5Lb3U7CivohZU+V2FuOwor6IWfPkNoaXRzdTsKK+iFpT5TZWk7CivohaY+Tm91Owor6IWrPlNob3U7Civoha4+U2FpOwor6IWwPllvdTsKK+iFsT5LZW47CivohbQ+WXU7Civohbg+Q2hvdTsKK+iFuT5GdWt1Owor6IW6PlNlbjsKK+iFvz5UYWk7CivohoA+SG91Owor6IaCPlJ5bzsKK+iGgz5PdHN1Owor6IaIPktha3U7Civohoo+SGFrdTsKK+iGjz5Lb3U7CivohpM+Q2hvdTsKK+iGlT5LYWt1Owor6IaaPkZ1Owor6IacPk1ha3U7Civohp0+U2hpdHN1Owor6IagPktvdTsKK+iGoz5DaGl0c3U7Civohqg+Qm91Owor6IapPkppOwor6IawPkhhbjsKK+iGsz5TZW47CivohrU+U3VpOwor6Ia4Plp1aTsKK+iGuj5Zb3U7Civohr0+VGFuOwor6Ia+PkthaTsKK+iGvz5Eb3U7Civoh4A+RGVuOwor6IeCPkhpOwor6IeGPk9rdTsKK+iHiD5Sb3U7Civoh4k+UmVuOwor6IeNPlNlaTsKK+iHkT5EYXU7Civoh5M+Wm91Owor6IeYPlJvdTsKK+iHmT5FbjsKK+iHmj5SeW87Civoh58+Wm91Owor6IegPlJlbjsKK+iHoz5TaGluOwor6IelPkdhOwor6IenPlpvdTsKK+iHqD5SaW47Civoh6o+U2hpOwor6IetPlNodXU7Civoh7M+U2hpOwor6Ie0PkNoaTsKK+iHuj5UYWk7Civoh7s+U2hpbjsKK+iHvD5LeXV1Owor6Ie+Pll1Owor6IiBPllvOwor6IiCPlNob3U7CivoiIU+S3l1dTsKK+iIhz5ZbzsKK+iIiD5LeW91Owor6IiJPkt5bzsKK+iIij5LeXV1Owor6IiMPlpldHN1Owor6IiNPlNoYTsKK+iIjj5TaGE7CivoiJA+U2hpOwor6IiSPkpvOwor6IiWPkhvOwor6IiXPkhvOwor6IiYPkthbjsKK+iImz5TZW47CivoiJw+U2h1bjsKK+iInj5CdTsKK+iInz5TaHV1Owor6IipPlNlbjsKK+iIqj5Lb3U7CivoiKs+SG91Owor6IisPkhhbjsKK+iIrj5SbzsKK+iIsz5DaGlrdTsKK+iItT5UYTsKK+iItj5IYWt1Owor6Ii3PktlbjsKK+iIuD5LYTsKK+iIuT5TZW47CivoiYA+RnU7CivoiYc+VGVpOwor6ImYPlNvdTsKK+iJmT5Tb3U7CivoiZo+U291Owor6ImfPkRvdTsKK+iJoj5TaG91Owor6ImkPkdpOwor6ImmPkthbjsKK+iJqD5Nb3U7Civoiao+Um87Civoias+Um87Civoia4+S29uOwor6ImvPlJ5b3U7CivoibE+S2FuOwor6ImyPlNob2t1Owor6Im2PkVuOwor6Im3PkVuOwor6Im4PlNvdTsKK+iJvj5HYWk7Civoios+VTsKK+iKjT5TaGFrdTsKK+iKkj5Cb3U7Civoipk+RnU7Civoip0+U2hpOwor6IqfPlNhbjsKK+iKpT5LYWk7CivoiqY+Um87Civoiqs+R2VuOwor6IqsPkZ1bjsKK+iKrT5CYTsKK+iKrz5TaGluOwor6IqxPkthOwor6IqzPkhvdTsKK+iKuD5HZWk7Civoirk+S2luOwor6Iq7PlN1dTsKK+iKvT5HYTsKK+iLhT5HYWk7Civoi5E+RW47Civoi5I+WmVuOwor6IuTPlJlaTsKK+iLlD5UYWk7Civoi5c+QnlvdTsKK+iLmT5SeXV1Owor6IubPkthOwor6IucPkJva3U7Civoi54+SG91Owor6IufPktvdTsKK+iLoT5JOwor6IujPkt5bzsKK+iLpT5KYWt1Owor6IumPkt1Owor6IunPkNobzsKK+iLqz5TZW47Civoi7E+RWk7Civoi7M+VG91Owor6Iu0PlNvOwor6Iu5PkhlaTsKK+iLuj5NYWk7Civoi7s+RnU7CivojII+TW87CivojIM+SGFuOwor6IyEPkthOwor6IyFPkJvdTsKK+iMhj5Cb3U7CivojIk+TWF0c3U7CivojI4+S2VpOwor6IyWPktha3U7CivojJc+TWVpOwor6IyYPlJpOwor6IycPlNlbjsKK+iMoz5HbzsKK+iMqD5TaGk7CivojKs+Qm91Owor6IyvPkZ1a3U7CivojLE+U2h1Owor6IyyPkppOwor6Iy0PkthaTsKK+iMtT5JbjsKK+iMtj5DaGE7CivojLg+Sm91Owor6Iy5PkpvOwor6I2APkp1bjsKK+iNhT5Ub3U7CivojYk+U291Owor6I2KPktlaTsKK+iNjz5KaW47CivojZA+U2VuOwor6I2SPktvdTsKK+iNmD5Tb3U7CivojbM+VG91Owor6I21PkppbjsKK+iNtz5LYTsKK+iNuz5UZWtpOwor6I28PlRvOwor6I6FPlJpOwor6I6HPkNobzsKK+iOiT5DaGk7Civojoo+U291Owor6I6OPlNhOwor6I6TPk1haTsKK+iOlj5LZWk7Civojpo+RW47Civojp4+S2FuOwor6I6fPkthbjsKK+iOoD5ZdXU7CivojqI+S3lvdTsKK+iOqD5Sb3U7Civojqo+R2E7Civojqs+Qm87CivojrE+UmFpOwor6I61PlRvOwor6I69PkJvdTsKK+iPgT5TZWk7Civoj4U+S2FuOwor6I+KPktpa3U7Civoj4w+S2luOwor6I+OPktvbjsKK+iPkz5LYTsKK+iPlj5TaG91Owor6I+YPlN1dTsKK+iPnD5TYWk7Civoj58+VG87Civoj6A+SGE7Civoj6k+SGFpOwor6I+rPktpbjsKK+iPrz5LYTsKK+iPsD5LbzsKK+iPsT5SeW91Owor6I+yPkhpOwor6I+0PkFuOwor6I+3PlNvdTsKK+iPuz5SaW47Civoj70+U2h1a3U7CivokIM+U3VpOwor6JCEPlRvdTsKK+iQhz5DaG91Owor6JCLPlNlaTsKK+iQjD5Ib3U7CivokI0+SGVpOwor6JCOPkk7CivokJM+R2k7CivokKA+SG91Owor6JCpPlNodXU7CivokKo+S3V3YTsKK+iQrD5NYW47CivokLE+S2VuOwor6JC1PldhOwor6JC4Pll1Owor6JC8Pkdha3U7CivokL0+UmFrdTsKK+iRhj5IbzsKK+iRiT5Zb3U7CivokY4+Uml0c3U7CivokZc+Q2hvOwor6JGbPkthdHN1Owor6JGhPkhvOwor6JGiPkdhaTsKK+iRoz5Ub3U7CivokaY+STsKK+iRqT5IYTsKK+iRqz5LbzsKK+iRrD5Tb3U7Civoka0+S2E7Civoka4+VGFuOwor6JGvPllha3U7CivokbE+U291Owor6JG1PktpOwor6JG3Pkd1bjsKK+iRuT5TaGk7Civokbo+U2h1dTsKK+iSgj5UZWk7CivokoQ+S2FuOwor6JKLPlNob3U7CivokpA+U2h1dTsKK+iSlD5TaGk7Civokpk+Qm91Owor6JKcPlNhbjsKK+iSnz5Lb247CivokqE+SG91Owor6JKtPlN1dTsKK+iSsj5IbzsKK+iSuD5Kb3U7Civokrk+S2VuOwor6JK7Pkpha3U7Civokrw+U291Owor6JK/PktvdTsKK+iTgT5TaGluOwor6JOEPkNoaWt1Owor6JOGPlNla2k7Civok4k+WW91Owor6JOKPk91Owor6JOLPkdhaTsKK+iTjT5TaGk7Civok5A+Sm9rdTsKK+iTkT5TYTsKK+iTlj5IaTsKK+iTmj5DaG91Owor6JOsPkhvdTsKK+iTrj5SZW47Civok7Q+U2h1bjsKK+iTvD5SeW91Owor6JO/PlNodWt1Owor6JSAPkhvdTsKK+iUhj5SeW91Owor6JSRPkJldHN1Owor6JSTPkJhbjsKK+iUlD5GdWt1Owor6JSVPlRlaTsKK+iUlz5TaG87CivolJg+U2hpbjsKK+iUmj5VdHN1Owor6JSfPlpva3U7CivolKE+U2FpOwor6JSmPkNob3U7CivolKw+U287CivolK0+SW47CivolLU+Wm91Owor6JS9PkhlaTsKK+iVgD5LeW9rdTsKK+iVgT5KaW47CivolYM+QmFuOwor6JWIPlNoaW47CivolYk+U2hvdTsKK+iVij5adWk7CivolYs+WnVpOwor6JWOPkt5b3U7CivolZU+WXV1Owor6JWXPlJvOwor6JWYPkpvdTsKK+iVmj5HYWt1Owor6JWjPlNodW47Civolag+S2V0c3U7Civolak+VG91Owor6JWqPkJ1Owor6JWtPlNob3U7Civolbc+WW87Civolb4+UmFpOwor6JaAPlVuOwor6JaEPkhha3U7Civoloc+Qmk7Civolog+S2FpOwor6JaKPktlaTsKK+iWkD5Sb3U7CivolpE+S3lvdTsKK+iWlD5TaG9rdTsKK+iWlz5FbjsKK+iWmT5UZWk7Civolps+U2V0c3U7Civolpw+SGVraTsKK+iWpD5LYWk7CivolqY+U2VuOwor6JaoPktvdTsKK+iWqT5TYXRzdTsKK+iWqj5TaGluOwor6JarPkt1bjsKK+iWrD5ZYWt1Owor6JauPlNvdTsKK+iWrz5TaG87Civolrk+VGFpOwor6Ja6PlNlaTsKK+iXgT5Lb3U7Civol4k+U2hhOwor6JeNPlJhbjsKK+iXjz5ab3U7Civol5A+QmFrdTsKK+iXlT5HdXU7Civol5w+UmVpOwor6JedPkdlaTsKK+iXpD5Ub3U7Civol6U+WWFrdTsKK+iXqT5IYW47Civol6o+U291Owor6Je3PlNobzsKK+iXuT5BaTsKK+iXuj5SaW47Civol7s+U291Owor6Je+PlJhaTsKK+iYgj5adWk7CivomIY+Um87CivomIc+U287CivomIo+VW47CivomIs+SGluOwor6JiTPlNvOwor6JiWPkdldHN1Owor6JiXPkhha3U7CivomJo+U2VuOwor6JiiPlJvdTsKK+iYrT5SYW47CivomK8+VG91Owor6Ji/PlJhOwor6JmNPktvOwor6JmOPktvOwor6JmQPkd5YWt1Owor6JmUPktlbjsKK+iZlT5TaG87CivomZo+S3lvOwor6JmcPlJ5bzsKK+iZnj5HdTsKK+iZnz5Hb3U7Civomac+S2k7Civomas+Q2h1dTsKK+iZsT5TaGl0c3U7Civombk+S291Owor6Jm7PkJvdTsKK+iaij5CdW47Civomos+WmVpOwor6JqMPkhvdTsKK+iakz5JbjsKK+ialT5TYW47CivomqM+S291Owor6JqkPlNvdTsKK+iaqT5TaGk7Civomqo+VG91Owor6JqrPkhvdTsKK+iarz5LeXV1Owor6JqwPll1dTsKK+iatj5LYW47Civom4Q+S287Civom4Y+U2hvOwor6JuHPkphOwor6JuJPlJlaTsKK+ibiz5UYW47Civom40+S2VpOwor6JuOPlJlaTsKK+iblD5LYWk7Civom5k+QTsKK+ibmz5TaHU7Civom54+S2F0c3U7Civom58+S291Owor6JukPktvdTsKK+ibqT5LeW91Owor6JusPkt5b3U7Civom60+U2hpdHN1Owor6JuuPkJhbjsKK+ibuD5Tb3U7Civom7k+WW91Owor6Ju7PlplaTsKK+ibvj5HYTsKK+icgD5TaG9rdTsKK+icgj5Ib3U7CivonIM+U2hpbjsKK+ichj5LZW47CivonIg+R287CivonIk+RnU7CivonIo+Umk7CivonI0+U2hvOwor6JyRPlRhbjsKK+ickj5FbjsKK+icmD5DaGk7CivonJo+SGk7CivonJw+TWl0c3U7CivonKU+U2VraTsKK+icqT5DaG91Owor6Jy0PkVraTsKK+ictz5LZW47CivonLs+U2VpOwor6Jy/PkVuOwor6J2JPlNlbjsKK+idiz5Sb3U7CivonYw+S2E7CivonY4+S2F0c3U7CivonZM+WXU7CivonZU+U2hva3U7CivonZc+S291Owor6J2ZPkhlbjsKK+idnz5JOwor6J2gPkZ1a3U7CivonaM+WXV1Owor6J2mPkthOwor6J2oPlNoaXRzdTsKK+idqj5Ub3U7Civona4+RnVrdTsKK+idtD5LbzsKK+idtj5DaG91Owor6J24PkthOwor6J2/PllvdTsKK+iegj5Sb3U7Civono0+WXV1Owor6J6fPk1laTsKK+ieoj5LZWk7Civonqs+U2VraTsKK+ierz5Hb3U7CivonrM+VG91Owor6J66PlJhOwor6J67PlJvdTsKK+ievT5TaHV1Owor6J+APlNodXRzdTsKK+ifhD5DaGl0c3U7Civon4Y+QmE7Civon4c+QmE7Civon4s+U2hpdHN1Owor6J+QPlRvdTsKK+ifkj5Cb3U7Civon6A+SGFuOwor6J+vPkd5b3U7Civon7I+S2k7Civon7Y+VGVpOwor6J+3PlRvdTsKK+ifuT5LYWk7Civon7s+R2k7Civon74+U2VuOwor6KCFPllvdTsKK+igjT5LYXRzdTsKK+igjj5Cb3U7CivooI8+S2FpOwor6KCRPkVpOwor6KCVPkRhOwor6KCWPktha3U7CivooKE+UmVpOwor6KCiPlNodW47CivooKM+UmVpOwor6KCnPlRvOwor6KCxPktvOwor6KC2PlNhbjsKK+iguT5UbzsKK+iguz5CYW47CivooYA+S2V0c3U7CivooYI+SmlrdTsKK+ihhD5KaWt1Owor6KGGPlNodXU7CivooYw+S291Owor6KGNPkVuOwor6KGSPktlbjsKK+ihkz5KdXRzdTsKK+ihlz5HYWk7CivooZk+R3lvOwor6KGbPkVpOwor6KGdPlNob3U7CivooZ4+RWk7CivooaE+S291Owor6KGiPkt1Owor6KGjPkk7Civooag+SHlvdTsKK+ihqz5TYW47CivoobA+U2E7CivoobI+RG91Owor6KG1PkppdHN1Owor6KG3PkNodXU7Civoob0+SmluOwor6KG+PktpbjsKK+ihvz5LaW47CivoooE+RW47CivoooI+QmVpOwor6KKIPkthOwor6KKLPlRhaTsKK+iijT5Ib3U7CivoopI+VGFuOwor6KKWPlNodXU7Civoopc+U2hpbjsKK+iimT5IYTsKK+iinj5Lb247CivooqI+SGFuOwor6KKkPkJvdTsKK+iiqz5IaTsKK+iirj5OZTsKK+iisT5GdWt1Owor6KK0PktvOwor6KK1PkppbjsKK+iitz5Lb3U7Civoor8+S2VpOwor6KOBPlNhaTsKK+ijgj5SZXRzdTsKK+ijhT5Tb3U7Civoo48+Umk7Civoo5Q+RWk7Civoo5U+WXV1Owor6KOYPkt5dXU7Civoo5k+S3VuOwor6KOcPkhvOwor6KOdPlNvdTsKK+ijnz5TYTsKK+ijoT5SaTsKK+ijqD5IaTsKK+ijsj5SeW91Owor6KOzPlNob3U7Civoo7Q+SGFpOwor6KO4PlJhOwor6KO5PkthOwor6KO8PlNla2k7Civoo70+U2VpOwor6KO+Pkt5bzsKK+ikgj5LYWk7CivopIc+RnVrdTsKK+ikij5IZW47CivopIw+S29uOwor6KSQPkthdHN1Owor6KSSPkhvdTsKK+ikkz5IbzsKK+iknT5UYW47CivopJ4+T247CivopKU+Sm9rdTsKK+ikqj5UYWk7CivopKs+Q2hpOwor6KS2PkNob3U7CivopLg+Um91Owor6KS7PlNldHN1Owor6KWBPkt5b3U7CivopYM+SG91Owor6KWEPkpvdTsKK+iljD5UYW47CivopY0+WmF0c3U7CivopZY+T3U7CivopZ4+SGVraTsKK+ilnz5LaW47CivopaA+VG91Owor6KWkPlJhbjsKK+ilpj5KdTsKK+ilqj5CZXRzdTsKK+ilrT5LZXRzdTsKK+ilrz5TaGluOwor6KWyPlNodXU7CivopbQ+UmFuOwor6KW+PkFrYTsKK+ilvz5TZWk7CivopoE+WW91Owor6KaDPlRhbjsKK+imhj5GdWt1Owor6KaHPkhhOwor6KaIPktha3U7Civopoo+S2k7Civopos+S2VuOwor6KaPPktpOwor6KaTPkJla2k7CivoppY+U2hpOwor6KaXPlNoaTsKK+immD5UZW47Civoppo+S2FrdTsKK+imoT5HZWtpOwor6KamPll1Owor6KanPlJhbjsKK+imqT5UbzsKK+imqj5TaGluOwor6KasPktpOwor6KavPktvdTsKK+imsj5LaW47CivoprM+S2FuOwor6Ka6Pktha3U7Civopr0+UmFuOwor6Ka/PlRla2k7Civop4A+S2FuOwor6KeSPktha3U7Civop5o+S287Civop5w+U2hpOwor6KedPlRlaTsKK+inoz5LYWk7Civop6Y+U2hva3U7Civop6c+S2FpOwor6Ke0PlNob3U7Civop7g+U2hva3U7CivoqIA+R2VuOwor6KiCPlRlaTsKK+iogz5GdTsKK+ioiD5LZWk7CivoqIo+SmluOwor6KiMPktvdTsKK+iojj5Ub3U7CivoqJA+S2V0c3U7CivoqJM+S3VuOwor6KiWPktpdHN1Owor6KiXPlRha3U7CivoqJg+S2k7CivoqJs+S2E7CivoqJ0+R2E7CivoqJ8+U2hvdTsKK+iooz5LZXRzdTsKK+iopT5Ub3RzdTsKK+ioqj5Ib3U7CivoqK0+U2V0c3U7CivoqLE+S3lvOwor6KizPllha3U7CivoqLQ+U287CivoqLY+S2E7CivoqLo+U2hpbjsKK+iouz5DaHV1Owor6Ki8PlNob3U7CivoqYE+S287CivoqYY+VGVpOwor6KmIPlJpOwor6KmQPlNhOwor6KmRPlRhOwor6KmSPlRhaTsKK+iplD5TaG91Owor6KmVPkh5b3U7CivoqZs+U287CivoqZ4+U2hpOwor6KmgPkVpOwor6KmiPkp1bjsKK+ipoz5LZWk7CivoqaY+U2hpOwor6KmpPlNoaTsKK+ipqz5UYTsKK+iprD5Lb3U7Civoqa0+S2k7Civoqa4+U2VuOwor6KmwPktpdHN1Owor6KmxPldhOwor6KmyPkdhaTsKK+ipsz5TaG91Owor6Km8PkthaTsKK+iqgj5DaG91Owor6KqEPlJ1aTsKK+iqhT5DaHV1Owor6KqHPktvOwor6KqJPllvOwor6KqMPlNoaTsKK+iqjT5OaW47CivoqpE+S3lvdTsKK+iqkz5TZWk7CivoqpU+VGFuOwor6KqYPll1dTsKK+iqmj5TaG91Owor6KqePkdvOwor6KqgPlNlaTsKK+iqoT5LYWk7CivoqqM+RnU7CivoqqQ+R287CivoqqU+S291Owor6KqmPlNob3U7Civoqqg+S2FpOwor6KqsPlNldHN1Owor6KqtPlRva3U7CivoqrA+U3VpOwor6KqyPkthOwor6Kq5PkhpOwor6Kq8PkdpOwor6Kq/PkNob3U7Civoq4I+VGVuOwor6KuEPkp1bjsKK+irhz5EYW47Civoq4s+U2VpOwor6KuMPkthbjsKK+irjT5Tb3U7Civoq48+U2h1Owor6KuSPlJ5b3U7Civoq5Y+Um9uOwor6KuaPkpvdTsKK+irmz5ZdTsKK+irnD5DaG91Owor6KuePkhlbjsKK+iroD5LZW47Civoq6E+U2hpOwor6KuiPktvbjsKK+irpD5HYWt1Owor6KumPlRlaTsKK+irpz5LYWk7Civoq6s+S2FuOwor6KutPll1Owor6KuuPlNoaTsKK+irsT5LaTsKK+irsz5BbjsKK+irtz5GdXU7Civoq7g+U2hvOwor6Ku6PkdlbjsKK+irvj5EYWt1Owor6KyAPkJvdTsKK+isgT5FdHN1Owor6KyCPkk7CivorIQ+VG91Owor6KyHPktlbjsKK+isjD5LYTsKK+isjj5NZWk7CivorJA+SGl0c3U7CivorJQ+R3lha3U7CivorJY+U2hva3U7CivorJc+Qm91Owor6KyZPktlbjsKK+ismj5TaGk7CivorJs+S291Owor6KydPlNoYTsKK+isoD5Zb3U7CivorKE+WW91Owor6KymPktlaTsKK+isqD5CbzsKK+isqz5UYWt1Owor6KysPkJ5b3U7CivorLM+T3U7CivorLk+S2luOwor6Ky+PkJhbjsKK+itgT5LYTsKK+itiT5TaG91Owor6K2MPkthOwor6K2OPktpdHN1Owor6K2PPktpOwor6K2WPlNoaW47CivorZg+U2hpa2k7CivorZo+VGFuOwor6K2bPlNoaW47CivorZw+RnU7CivorZ8+U291Owor6K2mPktlaTsKK+itqz5TZW47Civoraw+SGk7Civora8+WWFrdTsKK+itsD5HaTsKK+itsT5aZW47CivorbI+Sm91Owor6K20PktlbjsKK+ittz5HbzsKK+itvT5ZbzsKK+iugD5Ub2t1Owor6K6DPlNhbjsKK+iuij5IZW47Civorow+RW47Civoro4+U2h1dTsKK+iukD5TaHV1Owor6K6SPlNhbjsKK+iukz5Kb3U7CivorpY+U2hpbjsKK+iumT5LYW47Civorpo+U2FuOwor6LC3Pktva3U7CivosLo+S2E7CivosL8+S2VpOwor6LGBPkthdHN1Owor6LGGPlRvdTsKK+ixiD5LaTsKK+ixij5Ib3U7CivosYw+RW47CivosY4+SnU7CivosZA+SG91Owor6LGVPlNoaTsKK+ixmj5Ub247CivosaE+U2hvdTsKK+ixoj5LZW47Civosao+R291Owor6LGrPllvOwor6LGsPkNobzsKK+ixuD5DaGk7Civosbk+SG91Owor6LG6PlNhaTsKK+ixvD5IaTsKK+iygj5DaG91Owor6LKFPkt5dXU7Civosok+S2FrdTsKK+iyij5IYWt1Owor6LKMPkJvdTsKK+iyjT5SaTsKK+iyjj5HZWk7CivospQ+SGk7Civospg+QmFrdTsKK+iynT5CYWk7Civosp4+VGVpOwor6LKgPkZ1Owor6LKhPlphaTsKK+iyoj5Lb3U7Civosqc+SGluOwor6LKoPkthOwor6LKpPkhhbjsKK+iyqj5Eb247Civosqs+S2FuOwor6LKsPlNla2k7Civosq0+U2hpdHN1Owor6LKuPk5pOwor6LKvPkNobzsKK+iysD5TZWk7CivosrI+U2hpOwor6LKzPk5pOwor6LK0PktpOwor6LK2PkhlbjsKK+iytz5CYWk7Civosrg+VGFpOwor6LK7PkhpOwor6LK8PlRlbjsKK+iyvT5JOwor6LK/PkJvdTsKK+izgD5HYTsKK+izgT5IaTsKK+izgj5SbzsKK+izgz5DaGluOwor6LOEPldhaTsKK+izhz5TaGk7Civos4g+S287Civos4o+Wm9rdTsKK+izjT5Tb3U7Civos44+U2VuOwor6LORPlNoaW47Civos5M+SGluOwor6LOaPlJhaTsKK+izmz5TYW47Civos5w+U2hpOwor6LOePlNob3U7Civos6A+QmFpOwor6LOiPktlbjsKK+izoz5CYWk7Civos6Q+U2VuOwor6LOmPkZ1Owor6LOqPlNoaXRzdTsKK+izrT5UbzsKK+izuj5UYW47Civos7s+RnU7Civos7w+S291Owor6LO9PlNhaTsKK+i0hD5TaGk7CivotIU+WmVpOwor6LSHPkluOwor6LSIPlpvdTsKK+i0ij5TYW47CivotIs+R2FuOwor6LSNPlNlbjsKK+i0jz5FaTsKK+i0kD5TaGluOwor6LSTPlpvdTsKK+i0lD5IaTsKK+i0lj5TaG9rdTsKK+i1pD5TZWtpOwor6LWmPlNoYTsKK+i1pz5UYW47Civotas+S2FrdTsKK+i1rT5TaGE7CivotbA+U291Owor6LWxPlNvdTsKK+i1sz5LeXV1Owor6LW0PkZ1Owor6LW3PktpOwor6LaBPkNoaW47CivotoU+Q2hvdTsKK+i2ij5FdHN1Owor6LaZPkNob3U7CivotqM+U2h1Owor6LaoPlN1dTsKK+i2sz5Tb2t1Owor6La6PkZ1Owor6La+PlNoaTsKK+i3gj5LaTsKK+i3iz5CYXRzdTsKK+i3jD5UZXRzdTsKK+i3jz5LYTsKK+i3lj5TZWtpOwor6LeaPlNhbjsKK+i3mz5IYTsKK+i3nT5LeW87Civot58+S29uOwor6LehPlNla2k7Civot6M+U2VuOwor6LeoPktvOwor6LeqPktpOwor6LerPkt5b3U7Civot68+Um87Civot7M+Q2hvdTsKK+i3tT5TZW47Civot7w+S3lva3U7Civot78+VG87CivouIg+U2hvOwor6LiJPlJ5b3U7CivouIo+WW91Owor6LiPPlRvdTsKK+i4kD5TZW47CivouJ0+S2E7CivouJ4+S3lvOwor6LifPkNoaTsKK+i4qj5TaG91Owor6LiwPll1Owor6Li0PllvdTsKK+i4tT5TaG91Owor6LmCPkp1dTsKK+i5hD5UZWk7CivouYc+S2VuOwor6LmIPlRvdTsKK+i5iT5TYTsKK+i5ij5LZWk7CivouYw+U2hvdTsKK+i5kD5TZWtpOwor6LmVPkhpdHN1Owor6LmZPlNodWt1Owor6LmfPlNla2k7CivouaA+U2VraTsKK+i5oz5NYW47CivouaQ+U2hvdTsKK+i5sj5Tb247CivoubQ+U2h1dTsKK+i5tj5LZXRzdTsKK+i5vD5Cb2t1Owor6LqBPlNvdTsKK+i6hD5IZWtpOwor6LqFPkNob2t1Owor6LqHPkNobzsKK+i6ij5DaHV1Owor6LqLPlNlaTsKK+i6jT5ZYWt1Owor6LqRPlRla2k7CivoupM+Q2hpOwor6LqUPlRlbjsKK+i6mT5SaW47CivouqE+Sm91Owor6LqqPlJpbjsKK+i6qz5TaGluOwor6LqsPkt5dXU7Civouq8+S3U7CivourA+VGVpOwor6LqxPlRhOwor6LuGPlRlaTsKK+i7ij5TaGE7Civou4s+QXRzdTsKK+i7jD5LaTsKK+i7jT5HdW47Civou5I+S2VuOwor6LubPkFrdTsKK+i7nz5OYW47Civou6I+VGVuOwor6LujPkdvdTsKK+i7qz5TaGluOwor6Lu4Pkppa3U7Civou7s+S2E7Civou7w+SXRzdTsKK+i7vT5LZWk7Civou74+U2hva3U7CivovIM+S2FrdTsKK+i8hT5SbzsKK+i8iT5TYWk7CivovIo+Q2hpOwor6LyMPlJ5b3U7CivovJI+Q2hvdTsKK+i8kz5CYW47CivovJQ+RnU7CivovJU+S2VpOwor6LyZPkNob3U7CivovJs+UnlvdTsKK+i8nD5TaGk7CivovJ0+S2k7CivovJ8+VGV0c3U7CivovKY+UmVuOwor6LypPkhhaTsKK+i8qj5SaW47CivovK8+U2h1dTsKK+i8sz5Tb3U7CivovLg+WXU7CivovLk+RnVrdTsKK+i8uz5GdWt1Owor6Ly+PlRlbjsKK+i8vz5ZbzsKK+i9gj5Lb2t1Owor6L2EPkthdHN1Owor6L2FPkVuOwor6L2GPlJva3U7CivovYk+VGVuOwor6L2NPlRldHN1Owor6L2OPkt5b3U7CivovZc+S2FuOwor6L2cPkppOwor6L2fPkdvdTsKK+i9oT5IaTsKK+i9oj5SZWtpOwor6L2jPlJla2k7CivovaQ+Um87Civovps+U2hpbjsKK+i+nD5LbzsKK+i+nj5KaTsKK+i+nz5IZWtpOwor6L6jPlJhdHN1Owor6L6nPkJlbjsKK+i+qD5CZW47Civovq0+Smk7Civovq4+SGVuOwor6L6vPkJlbjsKK+i+sD5TaGluOwor6L6xPkpva3U7CivovrI+Tm91Owor6L66PkhlbjsKK+i+vz5UZW47Civov4I+VTsKK+i/hD5LaXRzdTsKK+i/hT5KaW47Civov44+R2VpOwor6L+RPktpbjsKK+i/lD5IZW47Civov6I+Q2hvdTsKK+i/pT5LZWk7Civov6Y+S2E7Civov6k+Smk7Civov6o+VGVraTsKK+i/qz5IYWt1Owor6L+tPlRldHN1Owor6L+vPlRvdTsKK+i/sD5KdXRzdTsKK+i/tD5LYWk7Civov7c+TWVpOwor6L+4PkhvdTsKK+i/uT5TZWtpOwor6L+6PkRhaTsKK+i/vT5Uc3VpOwor6YCAPlRhaTsKK+mAgT5Tb3U7CivpgIM+VG91Owor6YCFPktvdTsKK+mAhj5HeWFrdTsKK+mAiz5IbzsKK+mAjT5TaG91Owor6YCOPlNodXU7CivpgI8+VG91Owor6YCQPkNoaWt1Owor6YCRPkt5dXU7CivpgJM+VGVpOwor6YCUPlRvOwor6YCVPktlaTsKK+mAlj5UZWtpOwor6YCXPlRvdTsKK+mAmT5HZW47CivpgJo+VHM7CivpgJ0+U2VpOwor6YCePlRlaTsKK+mAnz5Tb2t1Owor6YCgPlpvdTsKK+mAoT5TaHVuOwor6YCiPkhvdTsKK+mAoz5SZW47CivpgK4+VGFpOwor6YCxPlNodXU7CivpgLI+U2hpbjsKK+mAtT5LaTsKK+mAtj5JOwor6YC4Pkl0c3U7CivpgLk+VGF0c3U7CivpgLw+SGl0c3U7CivpgL4+WXU7CivpgYE+VG9uOwor6YGCPlN1aTsKK+mBhT5DaGk7CivpgYc+R3V1Owor6YGJPlRlaTsKK+mBij5ZdXU7CivpgYs+VW47CivpgY0+SGVuOwor6YGOPkthOwor6YGPPkF0c3U7CivpgZA+S2E7CivpgZE+S291Owor6YGSPlNodXU7CivpgZM+RG91Owor6YGUPlRhdHN1Owor6YGVPkk7CivpgZg+S291Owor6YGZPllvdTsKK+mBnD5Tb247CivpgZ4+VGVpOwor6YGgPkVuOwor6YGhPlNvOwor6YGjPktlbjsKK+mBpT5Zb3U7Civpgag+R291Owor6YGpPlRla2k7Civpga0+U291Owor6YGuPlNoYTsKK+mBrz5Ub247CivpgbI+Q2hpOwor6YG1Pkp1bjsKK+mBtj5Kb3U7Civpgbc+U2VuOwor6YG4PlNlbjsKK+mBuj5JOwor6YG8PlJ5b3U7Civpgb0+S3lvOwor6YG/PkhpOwor6YKAPllvdTsKK+mCgT5CYWk7CivpgoI+S2FpOwor6YKDPlN1aTsKK+mChD5LYW47Civpgoc+Smk7Civpgok+SGVuOwor6YKKPkhlbjsKK+mCjz5SYTsKK+mCkT5ZdXU7CivpgqM+RGE7CivpgqY+SG91Owor6YKoPlNvbjsKK+mCqj5ZYTsKK+mCrz5LYW47CivpgrE+S3l1dTsKK+mCtT5TaG91Owor6YK4PlRlaTsKK+mDgT5Ja3U7Civpg4o+S291Owor6YOOPlJvdTsKK+mDmz5GdTsKK+mDoT5HdW47Civpg6I+RWk7Civpg6Q+R2VraTsKK+mDqD5CdTsKK+mDrT5LYWt1Owor6YO1Pll1dTsKK+mDtz5LeW91Owor6YO9PlRvOwor6YSCPkdha3U7CivphJI+U3V1Owor6YSZPkhpOwor6YStPlRlaTsKK+mEsD5SaW47CivphLI+VGFuOwor6YWJPll1dTsKK+mFij5UZWk7CivphYs+U2h1dTsKK+mFjD5TaGFrdTsKK+mFjT5IYWk7CivphY4+Q2h1dTsKK+mFkj5TaHU7CivphZQ+U3VpOwor6YWWPlRhbjsKK+mFmD5Ub3U7CivphaI+U2FrdTsKK+mFoz5LYW47CivphaU+U287Civphak+TWVpOwor6YWqPlJha3U7Civphaw+U2h1dTsKK+mFsj5UZWk7CivphbM+SW47CivphbU+S291Owor6YW3Pktva3U7Civphbg+U2FuOwor6YaCPlJpbjsKK+mGhz5TaHVuOwor6YaJPlN1aTsKK+mGiz5TYWt1Owor6YaNPlRlaTsKK+mGkD5LbzsKK+mGkj5TZWk7Civphpc+SGF0c3U7Civphpw+U2h1dTsKK+mGoj5LYWk7CivphqQ+U2hvdTsKK+mGqj5Sb3U7Civphqs+STsKK+mGrz5LZWk7CivphrQ+UmVpOwor6Ya1Pkt5bzsKK+mGuD5Kb3U7Civphro+S3VuOwor6YeAPkpvdTsKK+mHgT5LaW47Civph4Y+SGFuOwor6YeHPlNhaTsKK+mHiD5TaGFrdTsKK+mHiT5ZdXU7Civph4s+U2hha3U7Civph4w+Umk7Civph40+Q2hvdTsKK+mHjj5ZYTsKK+mHjz5SeW91Owor6YeQPlJpOwor6YeRPktpbjsKK+mHlj5Ub3U7Civph5g+VGVpOwor6YebPktva3U7Civph5w+RnU7Civph50+U2hpbjsKK+mHnz5IYXRzdTsKK+mHoT5GdTsKK+mHoz5DaG91Owor6YemPktvdTsKK+mHpz5TZW47Civph7U+U2E7Civph7Y+U2hpOwor6Ye8PktlbjsKK+mHvz5LaW47CivpiI0+RG9uOwor6YiOPktvdTsKK+mIkT5IYW47CivpiJQ+U2hvdTsKK+mIlT5DaHV1Owor6YiePktpbjsKK+mIqT5SbzsKK+mIrD5UYWt1Owor6Yi0PlJlaTsKK+mItz5LbzsKK+mIvz5UZW47CivpiYQ+VGV0c3U7CivpiYU+S3lvOwor6YmIPlNoYTsKK+mJiT5LZW47CivpiYs+SG91Owor6YmQPlNla2k7CivpiZc+S2FuOwor6YmaPlJ5dXU7CivpiZs+RW47CivpiZ4+RXRzdTsKK+mJoj5IYWNoaTsKK+mJpD5Lb3U7CivpiaY+U2VpOwor6YmxPktvdTsKK+mJvj5Cb3U7CivpioA+R2luOwor6YqDPkp1dTsKK+mKhT5Eb3U7CivpipE+U2VuOwor6YqTPlNlbjsKK+mKlT5UZXRzdTsKK+mKlj5TaHU7Civpipg+TWVpOwor6YqaPllvdTsKK+mKmz5TZW47Civpipw+S2FuOwor6YqtPlNlbjsKK+mKtz5TaG91Owor6Yq5PlNodXU7Civpi48+S3lvdTsKK+mLkj5Ib3U7Civpi6Q+Sm87Civpi6k+Qm91Owor6YuqPkhvOwor6YutPkVpOwor6YuzPkNodXU7Civpi7g+S3lvOwor6Yu6PkVuOwor6Yu8PktvdTsKK+mMhj5TZWk7CivpjI8+QTsKK+mMkD5TdWk7CivpjJg+VHN1aTsKK+mMmT5TaGk7CivpjJo+U291Owor6YygPkpvdTsKK+mMoj5TZW47CivpjKM+VGVpOwor6YymPktpbjsKK+mMqD5CeW91Owor6YyrPlNla2k7CivpjKw+UmVuOwor6YyuPktvOwor6YyvPlNha3U7CivpjLI+Um9rdTsKK+mMuz5CdTsKK+mNhD5LZWk7CivpjYs+S2E7CivpjY0+VG87CivpjZQ+R2FrdTsKK+mNlj5DaGluOwor6Y2bPlRhbjsKK+mNnD5LYTsKK+mNoD5Lb3U7Civpjaw+U2h1dTsKK+mNrj5DaHV1Owor6Y21PktlbjsKK+mNvD5TaGluOwor6Y2+PlNob3U7Civpjow+UmVuOwor6Y6UPllvdTsKK+mOlj5TYTsKK+mOlz5Tb3U7Civpjpo+VHN1aTsKK+mOpz5HYWk7Civpjqw+S291Owor6Y6tPkNoaW47Civpjq4+Q2hpbjsKK+mOsD5JdHN1Owor6Y+DPlpva3U7Civpj4g+UmVuOwor6Y+QPlJ5dXU7Civpj5E+VGVraTsKK+mPlj5PdTsKK+mPlz5Lb3U7Civpj5g+U2hvdTsKK+mPnT5NYW47Civpj6E+S3lvdTsKK+mPpD5Sb3U7Civpj6U+U2h1dTsKK+mPqD5TYW47CivpkIM+RG91Owor6ZCHPkhhbjsKK+mQkD5SeW91Owor6ZCTPlRhaTsKK+mQlD5TaGluOwor6ZCYPlNob3U7CivpkJk+VG91Owor6ZCaPkE7CivpkKE+VGV0c3U7CivpkKs+U2VuOwor6ZC1PlRldHN1Owor6ZC2PkthbjsKK+mQuD5UYWt1Owor6ZC6PlRvdTsKK+mRgT5CYW47CivpkYQ+Q2h1dTsKK+mRkT5LYW47CivpkZI+S2FuOwor6ZGaPlNhbjsKK+mRmz5Lb3U7CivpkZ4+Um91Owor6ZGgPlNoYWt1Owor6ZGiPlJ5bzsKK+mRqj5SbzsKK+mRsD5ZYWt1Owor6ZG1PkthbjsKK+mRtz5Kb3U7Civpkbw+UmE7Civpkb0+U2FuOwor6ZG+PlJhbjsKK+mRvz5TYWt1Owor6ZKBPktha3U7Civplbc+Q2hvdTsKK+mWgD5Nb247CivploI+U2FuOwor6ZaDPlNlbjsKK+mWhz5IZWk7Civplok+SGVpOwor6ZaLPkthaTsKK+mWjz5KdW47CivplpE+S2FuOwor6ZaTPkthbjsKK+mWlD5CaW47Civplpg+S291Owor6ZaZPlRvdTsKK+mWoj5LYW47CivplqM+S2FrdTsKK+mWpD5Lb3U7CivplqU+QmF0c3U7Civplqc+S291Owor6ZaoPktlaTsKK+mWrT5SbzsKK+mWsj5FdHN1Owor6Za5PkVuOwor6Za7PkVuOwor6Za8PkE7Civplr4+WW9rdTsKK+mXgz5HZWtpOwor6ZeHPkFuOwor6ZeKPkthdHN1Owor6ZeMPlJhbjsKK+mXjT5UbzsKK+mXlD5Lb3U7Civpl5U+S2V0c3U7Civpl5Y+Q2hpbjsKK+mXmD5Ub3U7Civpl5w+S2FuOwor6ZehPlNlbjsKK+mXoj5IZWtpOwor6ZelPlRhdHN1Owor6ZicPkZ1Owor6ZihPlNlbjsKK+mYqD5Ba3U7CivpmKo+SGFuOwor6ZiuPkdlbjsKK+mYrz5TaGk7CivpmLI+Qm91Owor6Zi7PlNvOwor6Zi/PkE7CivpmYA+RGE7CivpmYI+SGE7CivpmYQ+RnU7CivpmYs+Um91Owor6ZmMPkhha3U7CivpmY0+S291Owor6ZmPPlRhOwor6ZmQPkdlbjsKK+mZmz5IZWk7CivpmZw+S291Owor6ZmdPlNlbjsKK+mZnj5TaG91Owor6ZmfPkNob2t1Owor6ZmiPkluOwor6ZmjPkppbjsKK+mZpD5KbzsKK+mZpT5LYW47CivpmaY+VG91Owor6ZmqPkJhaTsKK+mZrD5TdXU7CivpmbA+SW47CivpmbI+U3VpOwor6ZmzPkNoaW47CivpmbU+UnlvdTsKK+mZtj5Ub3U7Civpmbc+S2FuOwor6Zm4PlJpa3U7Civpmbo+S2VuOwor6Zm9PllvdTsKK+mahT5HdXU7CivpmoY+Unl1dTsKK+maiD5XYWk7Civpmoo+VGFpOwor6ZqLPlRhOwor6ZqNPktvdTsKK+majj5LYWk7Civpmo8+WnVpOwor6ZqUPktha3U7CivpmpU+SW47Civpmpc+S2FpOwor6ZqYPkFpOwor6ZqZPkdla2k7Civpmps+U2FpOwor6ZqcPlNob3U7CivpmqA+SW47CivpmqM+UmluOwor6ZqnPlN1aTsKK+maqD5adWk7Civpmqo+S2VuOwor6ZqwPlNoaXRzdTsKK+masT5JbjsKK+masj5TaGl0c3U7CivpmrQ+Um91Owor6Zq2PlRhaTsKK+matz5SZWk7Civpmrg+UmVpOwor6Zq5PlN1aTsKK+mauz5TZWtpOwor6Zq8Pkp1bjsKK+mbgD5KYWt1Owor6ZuBPkdhbjsKK+mbhD5ZdXU7Civpm4U+R2E7Civpm4Y+U2h1dTsKK+mbhz5LbzsKK+mbiT5DaGk7Civpm4s+U2VuOwor6ZuMPlNoaTsKK+mbjT5Zb3U7Civpm44+U2hvOwor6ZuRPlphdHN1Owor6ZuVPkNob3U7Civpm5Y+U3VpOwor6ZuZPlNvdTsKK+mbmz5TdXU7Civpm5w+WmF0c3U7Civpm6I+Umk7Civpm6M+TmFuOwor6ZuoPlU7Civpm6o+U2V0c3U7Civpm6s+RGE7Civpm7A+RnVuOwor6ZuyPlVuOwor6Zu2PlJlaTsKK+mbtz5SYWk7Civpm7k+SGFrdTsKK+mbuz5EZW47CivpnIA+SnU7CivpnIQ+U2hvdTsKK+mchj5UZWk7CivpnIc+U2hpbjsKK+mciD5IYWk7CivpnIo+UmVpOwor6ZyNPktha3U7CivpnI4+U291Owor6ZyPPkhpOwor6ZyRPlRlbjsKK+mckz5HZWk7CivpnJY+UmluOwor6ZyZPkVpOwor6ZycPlNvdTsKK+mcnj5LYTsKK+mcpD5SeXV1Owor6ZynPk11Owor6ZyqPkluOwor6ZywPlNhbjsKK+mcsj5SbzsKK+mcuD5IYWt1Owor6Zy5Pkhla2k7CivpnL0+U2VpOwor6Zy+PkJhaTsKK+mdgj5SZWtpOwor6Z2EPkFpOwor6Z2GPlRhaTsKK+mdiD5SZWk7CivpnYk+QWk7CivpnZI+U2VpOwor6Z2WPlNlaTsKK+mdmT5TZWk7CivpnZw+U2VpOwor6Z2ePkhpOwor6Z2gPktvdTsKK+mdoT5IaTsKK+mdoj5NZW47CivpnaQ+SG91Owor6Z2mPlRlbjsKK+mdqD5Zb3U7Civpnak+S2FrdTsKK+mdqz5TYWk7Civpna0+SmluOwor6Z2xPkppbjsKK+mdtD5LYTsKK+mduT5LZXRzdTsKK+mduj5NYXRzdTsKK+mdvD5UYW47CivpnoE+SGk7CivpnoQ+SG91Owor6Z6FPk91Owor6Z6LPkFpOwor6Z6NPkFuOwor6Z6PPkt5b3U7Civpnpg+U291Owor6Z6cPlRvdTsKK+meoD5LaWt1Owor6Z6jPkp1dTsKK+mepj5TaHV1Owor6Z6oPkthdHN1Owor6Z6rPktpa3U7Civpnq0+SGVuOwor6Z6zPlRvdTsKK+metD5GdWt1Owor6Z+DPkRhdHN1Owor6Z+GPlNlbjsKK+mfiD5CZXRzdTsKK+mfiz5JOwor6Z+TPkthbjsKK+mfnD5Ub3U7Civpn60+S3l1dTsKK+mfrj5LeW91Owor6Z+yPlNlaTsKK+mfsz5PbjsKK+mftT5JbjsKK+mftj5TaG91Owor6Z+7PkluOwor6Z+/Pkt5b3U7CivpoIE+S2V0c3U7CivpoII+Q2hvdTsKK+mggz5LZWk7CivpoIU+S291Owor6aCGPkp1bjsKK+mgiD5TaHU7CivpoIw+U2hvdTsKK+mgjz5Lb3U7CivpoJA+WW87CivpoJE+R2FuOwor6aCSPkhhbjsKK+mgkz5Ub247CivpoJc+SGE7CivpoJg+UnlvdTsKK+mgmj5LZWk7CivpoKE+S2l0c3U7CivpoKQ+STsKK+mgrD5LeW91Owor6aCtPlRvdTsKK+mgtD5FaTsKK+mgtz5LYW47CivpoLg+S2VpOwor6aC7PkhpbjsKK+mgvD5SYWk7CivpoL0+VGFpOwor6aGGPkthOwor6aGLPlNhaTsKK+mhjD5EYWk7CivpoY0+R2FrdTsKK+mhjj5HYWt1Owor6aGPPkdhbjsKK+mhlD5HYW47CivpoZU+S2VuOwor6aGYPkdhbjsKK+mhmz5UZW47CivpoZ4+UnVpOwor6aGnPktvOwor6aGrPlNlbjsKK+mhrz5LZW47CivpobA+SGluOwor6aGxPlJvOwor6aGzPlNob3U7CivpobQ+S2FuOwor6aKoPkZ1dTsKK+mirz5TYXRzdTsKK+misT5UYWk7CivporY+S3U7Civpo4M+SHlvdTsKK+mjhD5IeW91Owor6aOGPkh5b3U7Civpo5s+SGk7Civpo5w+SG9uOwor6aOfPlNob2t1Owor6aOiPktpOwor6aOpPlRvbjsKK+mjqz5ZbzsKK+mjrT5DaG9rdTsKK+mjrj5JbjsKK+mjrz5IYW47Civpo7I+SW47Civpo7Q+STsKK+mjvD5TaGk7Civpo70+SG91Owor6aO+PlNob2t1Owor6aSDPktvdTsKK+mkhT5IZWk7CivppIk+U2hvdTsKK+mkij5Zb3U7CivppIw+Smk7CivppJA+U2FuOwor6aSSPkRhaTsKK+mkkz5HYTsKK+mklD5IbzsKK+mkmD5ZbzsKK+mknT5TaG9rdTsKK+mknj5TZW47CivppKA+SGVpOwor6aShPkthbjsKK+mkpD5UYW47CivppKg+S2FuOwor6aSsPktvOwor6aSuPlRldHN1Owor6aS9PktpOwor6aS+PlJ5dXU7CivppYI+VW47CivppYU+TWFuOwor6aWJPktpbjsKK+mliz5LaTsKK+mljD5TZW47CivppZA+STsKK+mlkT5LaTsKK+mlkj5Kb3U7CivppZU+VG91Owor6aWXPkt5b3U7CivpppY+U2h1Owor6aaXPktpOwor6aaYPktha3U7Civpppk+S291Owor6aalPkZ1a3U7Civppqg+S2VpOwor6aasPkJhOwor6aatPkd5bzsKK+mmrj5IeW91Owor6aazPkNoaTsKK+mmtD5TaHVuOwor6aa8PkJ1bjsKK+mngT5CYWt1Owor6aeEPlRhOwor6aeFPkVraTsKK+mnhj5LdTsKK+mniD5LdTsKK+mnkD5DaHV1Owor6aeRPkRvOwor6aeSPkt1Owor6aeVPkdhOwor6aeYPlRhaTsKK+mnmz5TaGk7Civpp50+VGE7Civpp58+U2hpOwor6aeiPkhlbjsKK+mnrT5LYWk7Civpp64+SGFrdTsKK+mnsT5SYWt1Owor6ae4PlNoaW47Civpp7s+S2FuOwor6ae/PlNodW47CivpqIE+VGVpOwor6aiFPlN1aTsKK+mojj5LaTsKK+mojz5LaTsKK+mokj5Tb3U7CivpqJM+S2VuOwor6aiZPkhlbjsKK+moqD5UYW47CivpqKs+S2VuOwor6aiwPlRvdTsKK+motz5Tb3U7CivpqL4+UmE7CivpqYA+QmFrdTsKK+mpgj5TYW47CivpqYM+SHlvdTsKK+mphT5LdTsKK+mpjT5HeW91Owor6amVPkt5b3U7CivpqZc+S2VuOwor6amaPkt5b3U7CivpqZs+RWtpOwor6amfPlNodXU7CivpqaI+UnlvOwor6amkPkpvdTsKK+mppT5LaTsKK+mpqT5LYW47Civpqao+Umk7Civpqas+SHl1dTsKK+mqqD5Lb3RzdTsKK+mqrT5LYW47CivpqrA+VG91Owor6aq4PkthaTsKK+mqvD5LYWt1Owor6auAPkhpOwor6auEPlp1aTsKK+mrjz5Sb3U7Civpq5E+VG9rdTsKK+mrkz5adWk7Civpq5Q+VGVpOwor6auYPktvdTsKK+mrnj5Tb3U7Civpq58+SHlvdTsKK+mroj5UZWk7Civpq6M+SG91Owor6aumPkJvdTsKK+mrqj5IYXRzdTsKK+mrqz5DaG91Owor6autPlNoaTsKK+mrrj5IYXRzdTsKK+mrrz5aZW47Civpq7E+SG91Owor6au0PkZ1dHN1Owor6au3Pkt5b2t1Owor6au7PktlaTsKK+mshj5TaG91Owor6ayYPkJhbjsKK+msmj5TaHU7CivprJ8+S2FuOwor6ayiPkhpbjsKK+msoz5SeW91Owor6aylPlRvdTsKK+mspz5Ub3U7CivprKg+S291Owor6aypPkdla2k7CivprKo+VG91Owor6ayuPkt5dXU7CivprK8+Q2hvdTsKK+mssT5VdHN1Owor6ayyPlJla2k7CivprLs+U2h1a3U7CivprLw+S2k7CivprYE+S2FpOwor6a2CPktvbjsKK+mtgz5CYXRzdTsKK+mthD5IYWt1Owor6a2FPk1pOwor6a2NPkJvdTsKK+mtjj5SeW91Owor6a2PPkdpOwor6a2RPkNoaTsKK+mtlD5NYTsKK+mtmD5FbjsKK+mtmj5HeW87Civpra8+Um87CivprbQ+SG91Owor6a6DPkh5b3U7Civpro4+TmVuOwor6a6RPkhvdTsKK+mukj5GdTsKK+mukz5TYTsKK+munz5BbjsKK+muoD5HYWk7Civprqg+U2hpOwor6a6qPkk7Civprqs+S291Owor6a6tPktlaTsKK+murj5TZW47Civprrk+U291Owor6a+APktvbjsKK+mvhj5IbzsKK+mviT5SaTsKK+mvij5TYTsKK+mvlD5TaGk7Civpr5Y+U2VpOwor6a+bPkNob3U7Civpr6E+SGk7Civpr6I+R2VpOwor6a+jPkVraTsKK+mvpD5Lb247Civpr6g+R2VpOwor6a+wPk5lbjsKK+mvtT5Tb3U7CivpsIQ+STsKK+mwhj5TaHVuOwor6bCIPkNob3U7CivpsIk+S291Owor6bCKPlJlbjsKK+mwjD5TaHV1Owor6bCNPlNodXU7CivpsJA+R2FrdTsKK+mwkj5GdWt1Owor6bCTPlNhaTsKK+mwlD5LYW47CivpsJU+S2E7CivpsJs+T247CivpsKE+Unl1dTsKK+mwpD5TaGk7CivpsKU+S2FuOwor6bCtPktpOwor6bCuPk9uOwor6bCyPkdvdTsKK+mwuT5LZW47CivpsLo+U291Owor6bC7PkJhbjsKK+mwvj5IeW91Owor6bGGPlNob3U7CivpsYc+S291Owor6bGIPlNldHN1Owor6bGSPlNvbjsKK+mxlz5SaW47CivpsaA+S2FpOwor6bGnPlJlaTsKK+mxtj5TaG91Owor6bG4PlJvOwor6bOlPkNob3U7Civps6c+RnU7Civps6k+S3l1dTsKK+mzqz5HYW47Civps6w+RnU7Civps7M+SG91Owor6bO0Pk1laTsKK+mztj5FbjsKK+m0gz5LZXRzdTsKK+m0hj5DaGluOwor6bSHPkhvdTsKK+m0iD5HYW47CivptIk+QTsKK+m0jj5PdTsKK+m0kj5SZWk7CivptJU+VGE7CivptJs+RW47CivptJ8+U2hpOwor6bSjPktvOwor6bSmPllvdTsKK+m0qD5PdTsKK+m0qj5JdHN1Owor6bSsPk91Owor6bS7PktvdTsKK+m0vj5Cb3U7CivptL8+S291Owor6bWBPktvdTsKK+m1hD5TaGk7CivptZA+QnU7CivptZE+S2VuOwor6bWZPkdla2k7CivptZw+VGVpOwor6bWdPkdhOwor6bWePkdhOwor6bWgPktva3U7CivptaE+QnU7Civptaw+SG91Owor6bWvPkhpOwor6bWyPkpha3U7Civptbo+WWE7Civptoc+VG91Owor6baJPlNodW47Civpto8+S2VpOwor6baaPkdha3U7CivptqQ+S29uOwor6bapPkJva3U7Civptq8+T3U7CivptrI+T3U7CivptrQ+S2FrdTsKK+m2uD5KYWt1Owor6ba6PlNla2k7Civptrs+S290c3U7Civpt4E+R2VraTsKK+m3gj5Zb3U7Civpt4Q+S2VpOwor6beGPlRlbjsKK+m3jz5UZW47Civpt5M+U2hhOwor6beZPlNoaTsKK+m3pj5TaG91Owor6betPkJhbjsKK+m3rz5SeW91Owor6beyPlNodXU7Civpt7g+SXRzdTsKK+m3uT5Zb3U7Civpt7o+Um87Civpt70+S2FrdTsKK+m4mj5PdTsKK+m4mz5LYW47CivpuJ4+UmFuOwor6bm1PlJvOwor6bm4PktlbjsKK+m5uT5LYW47Civpub0+RW47Civpub8+Um9rdTsKK+m6gT5TbzsKK+m6iD5TaHU7Civpuos+Qmk7Civpuow+R3U7CivpupE+R2VpOwor6bqSPktpOwor6bqTPlJva3U7CivpupU+S2luOwor6bqXPlJlaTsKK+m6nT5TaGE7Civpup8+UmluOwor6bqlPkJha3U7CivpuqY+QmFrdTsKK+m6qT5GdTsKK+m6qj5NZW47Civpuq0+SG91Owor6bq4PkZ1Owor6bq5Pktpa3U7Civpuro+TWVuOwor6bq7Pk1hOwor6bq8Pk1hOwor6bq+PktpOwor6bq/PlJvOwor6buEPktvdTsKK+m7jD5Lb3U7Civpu40+U2hvOwor6buOPlJlaTsKK+m7jz5OZW47Civpu5A+Q2hpOwor6buSPktva3U7Civpu5Q+S2VuOwor6buYPk1va3U7Civpu5k+TW9rdTsKK+m7mz5UYWk7Civpu5w+Q2h1dHN1Owor6budPll1dTsKK+m7nj5UZW47Civpu6A+S2F0c3U7Civpu6U+R2VpOwor6buoPlRvdTsKK+m7rz5BbjsKK+m7tD5CYWk7Civpu7Y+RW47Civpu7c+VG9rdTsKK+m7uT5DaGk7Civpu7s+RnV0c3U7Civpu7w+SG87Civpu70+Qm91Owor6byHPkdvdTsKK+m8iD5CZXRzdTsKK+m8jj5UZWk7CivpvJM+S287CivpvJU+VG91Owor6bygPlNvOwor6byhPlNobzsKK+m8rD5ZdXU7CivpvLs+Qmk7CivpvL4+S2FuOwor6b2KPlNlaTsKK+m9iz5TYWk7CivpvY4+U2VpOwor6b2PPlNlaTsKK+m9kj5TaGk7CivpvZQ+U2hpbjsKK+m9nz5TbzsKK+m9oD5DaG91Owor6b2hPlJlaTsKK+m9oj5SZWk7CivpvaM+U2h1dHN1Owor6b2mPkdpbjsKK+m9pz5LZXRzdTsKK+m9qj5Tb2t1Owor6b2sPkd5bzsKK+m9sj5LdTsKK+m9tj5HYWt1Owor6b23PkFrdTsKK+m+jT5SeXV1Owor6b6VPkdhbjsKK+m+nD5LaTsKK+m+nT5TaHV1Owor6b6gPllha3U7CisKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvdGhhaV90ZXN0LnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC90aGFpX3Rlc3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmNWY5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvdGhhaV90ZXN0LnR4dApAQCAtMCwwICsxLDU1IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQFVQUEVSRklMVEVSQAorVW5pY29kZSDguITguLfguK3guK3guLDguYTguKM/CitVbmljb2RlIOC4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4ieC4nuC4suC4sOC4quC4s+C4q+C4o+C4seC4muC4l+C4uOC4geC4reC4seC4geC4guC4o+C4sAor4LmC4LiU4Lii4LmE4Lih4LmI4Liq4LiZ4LmD4LiI4Lin4LmI4Liy4LmA4Lib4LmH4LiZ4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LmD4LiUCivguYTguKHguYjguILguLbguYnguJnguIHguLHguJrguKfguYjguLLguIjguLDguYDguJvguYfguJnguYLguJvguKPguYHguIHguKPguKHguYPguJQKK+C5geC4peC4sOC5hOC4oeC5iOC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC4oOC4suC4qeC4suC5g+C4lAorCivguYLguJTguKLguJ7guLfguYnguJnguJDguLLguJnguYHguKXguYnguKcsIOC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC4iOC4sOC5gOC4geC4teC5iOC4ouC4p+C4guC5ieC4reC4h+C4geC4seC4muC5gOC4o+C4t+C5iOC4reC4h+C4guC4reC4h+C4leC4seC4p+C5gOC4peC4gi4g4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LiI4Lix4LiU4LmA4LiB4LmH4Lia4LiV4Lix4Lin4Lit4Lix4LiB4Lip4Lij4LmB4Lil4Liw4Lit4Lix4LiB4LiC4Lij4Liw4Lit4Li34LmI4LiZ4LmGIOC5guC4lOC4ouC4geC4suC4o+C4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5g+C4q+C5ieC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4leC4seC4py4g4LiB4LmI4Lit4LiZ4Lir4LiZ4LmJ4Liy4LiX4Li14LmI4LmKIFVuaWNvZGUg4LiI4Liw4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZLCDguYTguJTguYnguKHguLXguKPguLDguJrguJogZW5jb2Rpbmcg4Lit4Lii4Li54LmI4Lir4Lil4Liy4Lii4Lij4LmJ4Lit4Lii4Lij4Liw4Lia4Lia4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJLiDguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4Lih4Li14LiI4Liz4LiZ4Lin4LiZ4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Lih4Liy4LiB4LmA4Lie4Li14Lii4LiH4Lie4LitOiDguKLguIHguJXguLHguKfguK3guKLguYjguLLguIfguYDguIrguYjguJksIOC5gOC4ieC4nuC4suC4sOC5g+C4meC4geC4peC4uOC5iOC4oeC4quC4q+C4oOC4suC4nuC4ouC4uOC5guC4o+C4m+C5gOC4nuC4teC4ouC4h+C5geC4q+C5iOC4h+C5gOC4lOC4teC4ouC4pyDguIHguYfguJXguYnguK3guIfguIHguLLguKPguKvguKXguLLguKIgZW5jb2Rpbmcg4LmD4LiZ4LiB4Liy4Lij4LiE4Lij4Lit4Lia4LiE4Lil4Li44Lih4LiX4Li44LiB4Lig4Liy4Lip4Liy4LmD4LiZ4LiB4Lil4Li44LmI4LihLiDguKvguKPguLfguK3guYHguKHguYnguYHguJXguYjguYPguJnguKDguLLguKnguLLguYDguJTguLXguYjguKLguKcg4LmA4LiK4LmI4LiZIOC4oOC4suC4qeC4suC4reC4seC4h+C4geC4pOC4qSDguIHguYfguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4LmA4Lie4Li14Lii4LiH4Lie4Lit4Liq4Liz4Lir4Lij4Lix4Lia4LiX4Li44LiB4LiV4Lix4Lin4Lit4Lix4LiB4Lip4LijLCDguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKLguKfguKPguKPguITguJXguK3guJkg4LmB4Lil4Liw4Liq4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmM4LiX4Liy4LiH4LmA4LiX4LiE4LiZ4Li04LiE4LiX4Li14LmI4LmD4LiK4LmJ4LiB4Lix4LiZ4Lit4Lii4Li54LmI4LiX4Lix4LmI4Lin4LmE4LibLiAKKwor4Lij4Liw4Lia4LiaIGVuY29kaW5nIOC5gOC4q+C4peC5iOC4suC4meC4teC5ieC4ouC4seC4h+C4guC4seC4lOC5geC4ouC5ieC4h+C4i+C4tuC5iOC4h+C4geC4seC4meC5geC4peC4sOC4geC4seC4mS4g4LiZ4Lix4LmI4LiZ4LiB4LmH4LiE4Li34LitLCDguYPguJnguKrguK3guIcgZW5jb2Rpbmcg4Liq4Liy4Lih4Liy4Lij4LiW4LmD4LiK4LmJ4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Liq4Lit4LiH4LiV4Lix4Lin4LiX4Li14LmI4LmB4LiV4LiB4LiV4LmI4Liy4LiH4LiB4Lix4LiZLOC4q+C4o+C4t+C4reC5g+C4iuC5ieC4q+C4oeC4suC4ouC5gOC4peC4guC4leC5iOC4suC4h+C4geC4seC4meC4quC4s+C4q+C4o+C4seC4muC4reC4seC4geC4guC4o+C4sOC4leC4seC4p+C5gOC4lOC4teC4ouC4p+C4geC4seC4mS4g4LmD4LiZ4Lij4Liw4Lia4Lia4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmMICjguYLguJTguKLguYDguInguJ7guLLguLDguYDguIvguLTguKPguYzguJ/guYDguKfguK3guKPguYwpIOC4leC5ieC4reC4h+C4oeC4teC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC4q+C4peC4suC4oiBlbmNvZGluZzsg4LmB4Lil4Liw4LmA4Lih4Li34LmI4Lit4LiC4LmJ4Lit4Lih4Li54Lil4LiX4Li14LmI4Lic4LmI4Liy4LiZ4LmE4Lib4Lih4Liy4Lij4Liw4Lir4Lin4LmI4Liy4LiH4LiB4Liy4Lij4LmA4LiC4LmJ4Liy4Lij4Lir4Lix4Liq4Lir4Lij4Li34Lit4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LiX4Li14LmI4LiV4LmI4Liy4LiH4LiB4Lix4LiZLCDguILguYnguK3guKHguLnguKXguJnguLHguYnguJnguIjguLDguYDguKrguLXguYjguKLguIfguJXguYjguK3guIHguLLguKPguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK1VuaWNvZGUg4LiI4Liw4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Liq4Li04LmI4LiH4LmA4Lir4Lil4LmI4Liy4LiZ4Lix4LmJ4LiZ4LiX4Lix4LmJ4LiH4Lir4Lih4LiUIQorVW5pY29kZSDguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguInguJ7guLLguLDguKrguLPguKvguKPguLHguJrguYHguJXguYjguKXguLDguK3guLHguIHguILguKPguLAsIOC5guC4lOC4ouC5hOC4oeC5iOC4quC4meC5g+C4iOC4p+C5iOC4suC5gOC4m+C5h+C4meC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oeC5g+C4lCwg4LmE4Lih4LmI4LiC4Li24LmJ4LiZ4LiB4Lix4Lia4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4LmC4Lib4Lij4LmB4LiB4Lij4Lih4LmD4LiU4LmB4Lil4Liw4LmE4Lih4LmI4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4Lig4Liy4Lip4Liy4LmD4LiULiDguKHguLLguJXguKPguJDguLLguJkgVW5pY29kZSDguYTguJTguYnguJbguLnguIHguJnguLPguYTguJvguYPguIrguYnguYLguJTguKLguJzguLnguYnguJnguLPguYPguJnguK3guLjguJXguKrguLLguKvguIHguKPguKPguKEg4LmA4LiK4LmI4LiZIEFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lzIOC5geC4peC4sOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIFVuaWNvZGUg4LmA4Lib4LmH4LiZ4Liq4Li04LmI4LiH4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4Lih4Liy4LiV4Lij4LiQ4Liy4LiZ4LmD4Lir4Lih4LmI4LmGIOC5gOC4iuC5iOC4mSBYTUwsIEphdmEsIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQpLCBMREFQLCBDT1JCQSAzLjAsIFdNTCDguK/guKXguK8uLCDguYHguKXguLDguYDguJvguYfguJnguYHguJnguKfguJfguLLguIfguK3guKLguYjguLLguIfguYDguJvguYfguJnguJfguLLguIfguIHguLLguKPguYPguJnguIHguLLguKPguJfguLMgSVNPL0lFQyAxMDY0Ni4gVW5pY29kZSDguYTguJTguYnguKPguLHguJrguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguYPguJnguKPguLDguJrguJrguJvguI/guLTguJrguLHguJXguLTguIHguLLguKPguIjguLPguJnguKfguJnguKHguLLguIEsIOC4muC4o+C4suC4p+C5gOC4i+C4reC4o+C5jOC5g+C4q+C4oeC5iOC5hiDguJfguIHguJXguLHguKcsIOC5geC4peC4sOC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIOC4geC4suC4o+C5gOC4geC4tOC4lOC4guC4tuC5ieC4meC4guC4reC4hyBVbmljb2RlIFN0YW5kYXJkIOC5geC4peC4sOC4l+C4ueC4peC4quC5jOC4leC5iOC4suC4h+C5hiDguJfguLXguYjguKHguLXguYPguJnguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSwg4LmA4Lib4LmH4LiZ4Lir4LiZ4Li24LmI4LiH4LmD4LiZ4LmB4LiZ4Lin4LmC4LiZ4LmJ4Lih4LiX4Liy4LiH4LmA4LiX4LiE4LmC4LiZ4LmC4Lil4Lii4Li14LiL4Lit4Lif4LiV4LmM4LmB4Lin4Lij4LmM4Lij4Liw4LiU4Lix4Lia4LmC4Lil4LiB4LiX4Li14LmI4Lih4Li14LiE4Lin4Liy4Lih4Liq4Liz4LiE4Lix4LiN4LiX4Li14LmI4Liq4Li44LiULgorCivguIHguLLguKPguKPguKfguKEgVW5pY29kZSDguYDguILguYnguLLguYTguJvguYPguJnguKPguLDguJrguJrguYTguITguKXguYDguK3guYfguJnguJXguYwt4LmA4LiL4Li04Lij4LmM4Lif4LmA4Lin4Lit4Lij4LmMIOC4q+C4o+C4t+C4reC5geC4reC5h+C4nuC4nuC4peC4tOC5gOC4hOC4iuC4seC4meC5geC4muC4miBtdWx0aS10aWVyZWQg4LmB4Lil4Liw4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmMIOC4iOC4sOC4l+C4s+C5g+C4q+C5ieC5gOC4geC4tOC4lOC4geC4suC4o+C4m+C4o+C4sOC4q+C4ouC4seC4lOC4hOC5iOC4suC5g+C4iuC5ieC4iOC5iOC4suC4ouC4oeC4suC4geC4geC4p+C5iOC4suC4geC4suC4o+C5g+C4iuC5ieC4iuC4uOC4lOC4reC4seC4geC4guC4o+C4sOC5geC4muC4muC5gOC4lOC4tOC4oS4gVW5pY29kZSDguJfguLPguYPguKvguYnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguKvguJnguLbguYjguIfguYDguJTguLXguKLguKcg4Lir4Lij4Li34Lit4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmM4LmB4Lir4LmI4LiH4LmA4LiU4Li14Lii4LinIOC4o+C4reC4h+C4o+C4seC4muC5hOC4lOC5ieC4q+C4peC4suC4ouC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oSwg4Lir4Lil4Liy4Lii4Lig4Liy4Lip4Liy4LmB4Lil4Liw4Lir4Lil4Liy4Lii4Lib4Lij4Liw4LmA4LiX4Lio4LmC4LiU4Lii4LmE4Lih4LmI4LiV4LmJ4Lit4LiH4LiX4Liz4LiB4Liy4Lij4Lij4Li34LmJ4Lit4Lib4Lij4Lix4Lia4Lij4Liw4Lia4LiaLiBVbmljb2RlIOC4ouC4seC4h+C4l+C4s+C5g+C4q+C5ieC4guC5ieC4reC4oeC4ueC4peC4quC4suC4oeC4suC4o+C4luC5gOC4hOC4peC4t+C5iOC4reC4meC4ouC5ieC4suC4ouC5hOC4m+C4oeC4suC5g+C4meC4q+C4peC4suC4ouC5hiDguKPguLDguJrguJrguYLguJTguKLguYTguKHguYjguYDguIHguLTguJTguITguKfguLLguKHguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK+C5gOC4geC4teC5iOC4ouC4p+C4geC4seC4miBVbmljb2RlIENvbnNvcnRpdW0KK1VuaWNvZGUgQ29uc29ydGl1bSDguYDguJvguYfguJnguK3guIfguITguYzguIHguKPguYTguKHguYjguYHguKrguKfguIfguKvguLLguIHguLPguYTguKPguJfguLXguYjguIHguYjguK3guJXguLHguYnguIfguILguLbguYnguJnguYDguJ7guLfguYjguK3guJ7guLHguJLguJnguLIsIOC4guC4ouC4suC4ouC5geC4peC4sOC4quC5iOC4h+C5gOC4quC4o+C4tOC4oeC4geC4suC4o+C5g+C4iuC5iSBVbmljb2RlIFN0YW5kYXJkLCDguIvguLbguYjguIfguIHguLPguKvguJnguJTguKPguLnguJvguYHguJrguJrguIHguLLguKPguYHguJfguJnguITguYjguLLguILguK3guIfguILguYnguK3guITguKfguLLguKHguYPguJnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguYHguKXguLDguKHguLLguJXguKPguJDguLLguJnguYPguKvguKHguYjguYYuIOC4quC4oeC4suC4iuC4tOC4geC4guC4reC4h+C4quC4oeC4suC4hOC4oeC5gOC4m+C5h+C4meC4leC4seC4p+C5geC4l+C4meC4iOC4suC4geC4muC4o+C4tOC4qeC4seC4l+C5geC4peC4sOC4reC4h+C4hOC5jOC4geC4o+C5g+C4meC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oeC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC5geC4peC4sOC4geC4suC4o+C4m+C4o+C4sOC4oeC4p+C4peC4nOC4peC4quC4suC4o+C4quC4meC5gOC4l+C4qC4g4Liq4Lih4Liy4LiE4Lih4LmE4LiU4LmJ4Lij4Lix4Lia4LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4LiX4Liy4LiH4LiB4Liy4Lij4LmA4LiH4Li04LiZ4Lic4LmI4Liy4LiZ4LiX4Liy4LiH4LiE4LmI4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4LmH4LiZ4Liq4Lih4Liy4LiK4Li04LiB4LmA4LiX4LmI4Liy4LiZ4Lix4LmJ4LiZLiDguKrguKHguLLguIrguLTguIHguKDguLLguJ7guILguK3guIcgVW5pY29kZSBDb25zb3J0aXVtIOC5gOC4m+C4tOC4lOC4geC4p+C5ieC4suC4h+C4quC4s+C4q+C4o+C4seC4muC4reC4h+C4hOC5jOC4geC4o+C4q+C4o+C4t+C4reC4muC4uOC4hOC4hOC4peC5g+C4lOC5hiDguYPguJnguYLguKXguIHguJfguLXguYjguJXguYnguK3guIfguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSBTdGFuZGFyZCDguYHguKXguLDguIrguYjguKfguKLguYDguKvguKXguLfguK3guIHguLLguKPguILguKLguLLguKLguJXguLHguKfguYHguKXguLDguIHguLLguKPguJnguLMgVW5pY29kZSDguYTguJvguYPguIrguYnguIfguLLguJkuIAorCivguKrguLPguKvguKPguLHguJrguILguYnguK3guKHguLnguKXguYDguJ7guLTguYjguKHguYDguJXguLTguKEsIOC5g+C4q+C5ieC4lOC4ueC4l+C4teC5iCBHbG9zc2FyeSwgU2FtcGxlIFVuaWNvZGUtRW5hYmxlZCBQcm9kdWN0cywgVGVjaG5pY2FsIEludHJvZHVjdGlvbiDguYHguKXguLAgVXNlZnVsIFJlc291cmNlcy4KK0BUSVRMRUNBU0VACivguIHguYrguIHguYDguK7guIcg4LmB4LiL4LmI4LmB4LiV4LmJCivguIHguIrguIHguKMg4Lio4Lij4Liy4LiX4LiY4LiX4Lix4LiVCivguIHguJXguLTguIHguLIg4Lit4Lix4LiH4LiE4Liq4Li44Lig4LiTCivguIHguJnguIEg4LiY4Lij4Lij4Lih4Lib4Lij4Liw4LiX4Li14LibCivguIHguJnguIEg4Lin4LiH4Lio4LmM4LiX4Lit4LiH4Lio4Lij4Li1CivguIHguJnguIHguIHguKMg4LiK4LmJ4Liy4LiH4LmA4Lii4LmH4LiZ4LiJ4LmI4LizCivguIHguJnguIHguInguLHguJXguKPguYwg4LiW4Liy4Lin4Lij4LiZ4Lix4LiZ4LiX4LmMCivguIHguJnguIHguJnguKfguKUg4LmC4Lib4Lip4Lii4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMCivguIHguJnguIHguJ7guKMg4LiE4Lih4LiE4Liy4LiiCivguIHguJnguIHguJ7guKMg4LiV4Li14Lij4LmA4Lil4Li04Lio4Lie4Liy4LiZ4Li04LiKCivguIHguJnguIHguJ7guKMg4Lie4Lix4LiZ4LiX4LijCivguIHguJnguIHguJ7guKMg4Lio4Lij4Li14Lia4Lix4LiT4LiR4Li04LiVCivguIHguJnguIHguJ7guKMg4Lit4LiV4Li04Lin4Lij4Lij4LiT4Liy4Lie4Lix4LiS4LiZ4LmMCivguIHguJnguIHguJ7guKPguKPguJMg4Lio4Lij4Li14Lin4LiZ4Liy4Lig4Li04Lij4Lih4Lii4LmMCivguIHguJnguIHguKPguLHguJXguJnguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4Li04LmI4LiH4Lit4Lix4LiH4Lio4Li44Lil4Li1CivguIHguJnguIHguKPguLHguJXguJnguYwg4Liq4Li44LiY4Lij4Lij4Lih4Lie4Li04LiX4Lix4LiB4Lip4LmMCivguIHguJnguIHguKfguKPguKPguJMg4LiE4LiH4LiE4Liy4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguIHguJnguIHguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinCivguIHguJnguIHguKfguKPguKPguJMg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguIHguJnguIHguKfguKPguKPguJMg4Lij4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguIHguJnguIHguKfguKPguKPguJMg4Liq4Lix4LiI4LiI4Lie4LiH4Lip4LmMCivguIHguJnguIHguKfguKPguKPguJMg4Lit4Li44LmJ4Lii4Lin4LiH4Lio4LmM4LmE4Lie4Lio4Liy4LilCivguIHguJnguIHguKjguLHguIHguJTguLTguYwg4Lii4Li04LmI4LiH4Lii4LiHCivguIHguJnguIHguYHguIHguYnguKcg4LiB4Lij4Liq4Lih4Li04LiVCivguIHguJnguLTguKnguJDguLIg4LiX4LiZ4Li44LiW4LiZ4Lit4Lih4Lij4Liy4Lip4LiO4Lij4LmMCivguIHguJnguLTguKnguJDguLIg4Lir4Lin4Lix4LiH4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiICivguIHguKHguKUg4LiB4Liy4LiN4LiI4LiZ4LmC4Lij4LiI4LiZ4LmMCivguIHguKHguKUg4LiE4Lix4Lih4Lig4Li14Lij4LmMCivguIHguKHguKUg4LmA4LiI4LiV4LiZ4LmM4Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmMCivguIHguKHguKUg4LiK4Li54LiV4Lij4Liw4LiB4Li54Lil4LiY4Lij4Lij4LihClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvLnByb2plY3QgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDA3ZmEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvLnByb2plY3QKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0RGVzY3JpcHRpb24+CisJPG5hbWU+Y29tLmlibS5pY3UtZmVhdHVyZTwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVOYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2ZmI2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMjAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitiaW4uaW5jbHVkZXMgPVwKK2VwbC12MTAuaHRtbCxcCitlY2xpcHNlX3VwZGF0ZV8xMjAuanBnLFwKK2ZlYXR1cmUueG1sLFwKK2ZlYXR1cmUucHJvcGVydGllcyxcCitsaWNlbnNlLmh0bWwKK291dHB1dFVwZGF0ZUphcnMgPSB0cnVlCisKK2dlbmVyYXRlLnBsdWdpbkBjb20uaWJtLmljdS5zb3VyY2U9Y29tLmlibS5pY3UKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvZmVhdHVyZS54bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9mZWF0dXJlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjhjYTlhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTAsMCArMSwzMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxmZWF0dXJlCisgICAgICBpZD0iY29tLmlibS5pY3UiCisgICAgICBsYWJlbD0iY29tLmlibS5pY3UiCisgICAgICB2ZXJzaW9uPSIzLjYiPgorCisgICA8ZGVzY3JpcHRpb24gdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Rlc2NyaXB0aW9uIj4KKyAgICAgIFtFbnRlciBGZWF0dXJlIERlc2NyaXB0aW9uIGhlcmUuXQorICAgPC9kZXNjcmlwdGlvbj4KKworICAgPGNvcHlyaWdodCB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vY29weXJpZ2h0Ij4KKyAgICAgIFtFbnRlciBDb3B5cmlnaHQgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2NvcHlyaWdodD4KKworICAgPGxpY2Vuc2UgdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2xpY2Vuc2UiPgorICAgICAgW0VudGVyIExpY2Vuc2UgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2xpY2Vuc2U+CisKKyAgIDxwbHVnaW4KKyAgICAgICAgIGlkPSJjb20uaWJtLmljdSIKKyAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCisgICAgICAgICBpbnN0YWxsLXNpemU9IjAiCisgICAgICAgICB2ZXJzaW9uPSIzLjYiCisgICAgICAgICB1bnBhY2s9ImZhbHNlIi8+CisKKyAgIDxwbHVnaW4KKyAgICAgICAgIGlkPSJjb20uaWJtLmljdS5zb3VyY2UiCisgICAgICAgICBkb3dubG9hZC1zaXplPSIwIgorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgorICAgICAgICAgdmVyc2lvbj0iMy42Ii8+CisKKzwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9idWlsZC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1YjYyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitiaW4uaW5jbHVkZXMgPSBhYm91dC5odG1sLCBwbHVnaW4ucHJvcGVydGllcywgcGx1Z2luLnhtbCwgc3JjLyoqLE1FVEEtSU5GLworc291cmNlUGx1Z2luID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vcGx1Z2luLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWQxNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vcGx1Z2luLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3BsdWdpbk5hbWUgPSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEgKElDVTRKKSBzb3VyY2UgcGx1Zy1pbgorcHJvdmlkZXJOYW1lID0gSUJNIENvcnBvcmF0aW9uCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlLy5wcm9qZWN0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjEyMDhiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS8ucHJvamVjdApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5jb20uaWJtLmljdS5iYXNlLWZlYXR1cmU8L25hbWU+CisJPGNvbW1lbnQ+PC9jb21tZW50PgorCTxwcm9qZWN0cz4KKwk8L3Byb2plY3RzPgorCTxidWlsZFNwZWM+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZUJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCTwvYnVpbGRTcGVjPgorCTxuYXR1cmVzPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlTmF0dXJlPC9uYXR1cmU+CisJPC9uYXR1cmVzPgorPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQwZWY3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDkgQEAKK2Jpbi5pbmNsdWRlcyA9XAorZXBsLXYxMC5odG1sLFwKK2VjbGlwc2VfdXBkYXRlXzEyMC5qcGcsXAorZmVhdHVyZS54bWwsXAorZmVhdHVyZS5wcm9wZXJ0aWVzLFwKK2xpY2Vuc2UuaHRtbAorb3V0cHV0VXBkYXRlSmFycyA9IHRydWUKKworZ2VuZXJhdGUucGx1Z2luQGNvbS5pYm0uaWN1LmJhc2Uuc291cmNlPWNvbS5pYm0uaWN1LmJhc2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL2ZlYXR1cmUueG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9mZWF0dXJlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWJhMjU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGZlYXR1cmUKKyAgICAgIGlkPSJjb20uaWJtLmljdS5iYXNlIgorICAgICAgbGFiZWw9ImNvbS5pYm0uaWN1LmJhc2UiCisgICAgICB2ZXJzaW9uPSIzLjYiCisgICAgICBwcm92aWRlci1uYW1lPSJJQk0iPgorCisgICA8ZGVzY3JpcHRpb24gdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Rlc2NyaXB0aW9uIj4KKyAgICAgIFtFbnRlciBGZWF0dXJlIERlc2NyaXB0aW9uIGhlcmUuXQorICAgPC9kZXNjcmlwdGlvbj4KKworICAgPGNvcHlyaWdodCB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vY29weXJpZ2h0Ij4KKyAgICAgIFtFbnRlciBDb3B5cmlnaHQgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2NvcHlyaWdodD4KKworICAgPGxpY2Vuc2UgdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2xpY2Vuc2UiPgorICAgICAgW0VudGVyIExpY2Vuc2UgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2xpY2Vuc2U+CisKKyAgIDxwbHVnaW4KKyAgICAgICAgIGlkPSJjb20uaWJtLmljdS5iYXNlIgorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKKyAgICAgICAgIHZlcnNpb249IjMuNiIKKyAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9ImNvbS5pYm0uaWN1LmJhc2Uuc291cmNlIgorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKKyAgICAgICAgIHZlcnNpb249IjMuNiIvPgorCis8L2ZlYXR1cmU+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzViNjIwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDEyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAwMCwgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgCisjIENvbnRyaWJ1dG9yczoKKyMgICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworYmluLmluY2x1ZGVzID0gYWJvdXQuaHRtbCwgcGx1Z2luLnByb3BlcnRpZXMsIHBsdWdpbi54bWwsIHNyYy8qKixNRVRBLUlORi8KK3NvdXJjZVBsdWdpbiA9IHRydWUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vcGx1Z2luLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3BsdWdpbi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNTQwM2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitwbHVnaW5OYW1lID0gSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIGZvciBKYXZhIChJQ1U0SikgUmVwbGFjZW1lbnQgc291cmNlIHBsdWctaW4KK3Byb3ZpZGVyTmFtZSA9IElCTSBDb3Jwb3JhdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvLmNsYXNzcGF0aCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzLy5jbGFzc3BhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUxYzhmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzLy5jbGFzc3BhdGgKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGNsYXNzcGF0aD4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KKzwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvLnByb2plY3QgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDg1NjdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvLnByb2plY3QKQEAgLTAsMCArMSwyOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0RGVzY3JpcHRpb24+CisJPG5hbWU+Y29tLmlibS5pY3UuYmFzZS50ZXN0czwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCTwvYnVpbGRTcGVjPgorCTxuYXR1cmVzPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+CisJPC9uYXR1cmVzPgorPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwN2FkMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMCwwICsxLDE0IEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0J1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKK0J1bmRsZS1OYW1lOiBJQ1U0SiBCYXNlIHRlc3QgZnJhZ21lbnQKK0J1bmRsZS1TeW1ib2xpY05hbWU6IGNvbS5pYm0uaWN1LmJhc2UudGVzdHMKK0J1bmRsZS1WZXJzaW9uOiAxLjAuMAorQnVuZGxlLVZlbmRvcjogSUJNCitCdW5kbGUtQ29weXJpZ2h0OiBMaWNlbnNlZCBNYXRlcmlhbHMgLSBQcm9wZXJ0eSBvZiBJQk0gCisgKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwNi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gCisgSUJNIGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgSUJNIENvcnAuCitGcmFnbWVudC1Ib3N0OiBjb20uaWJtLmljdS5iYXNlO2J1bmRsZS12ZXJzaW9uPSJbMy40LjMsMy43LjApIgorQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCitCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjMsCisgQ0RDLTEuMC9Gb3VuZGF0aW9uLTEuMAorUmVxdWlyZS1CdW5kbGU6IG9yZy5qdW5pdApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRkMmU0ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSw0IEBACitzb3VyY2UuLiA9IHNyYy8KK291dHB1dC4uID0gYmluLworYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKKyAgICAgICAgICAgICAgIC4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9CcmVha0l0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJiYzhiMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9CcmVha0l0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzU5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworICAgIC8vIElDVSBiZWhhdmVzIGEgYml0IGRpZmZlcmVudGx5IHdpdGggdGhpcyB0ZXh0LCBidXQgdGhlIHRlc3RlZCB2YWx1ZXMgYXJlbid0CisgICAgLy8gYWZmZWN0ZWQuICBJZiBKYXZhIGNoYW5nZXMgYmVoYXZpb3IgdGhleSBtaWdodCBuZWVkIHRvIGNoYW5nZS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGV4dCA9ICJNci4gYW5kIE1ycy4gTXVtYmxldHktUGVnIHBhaWQgJDM1Ljk3IGZvciBhIG5ldyAxMlwiIGNvY2thdG9vLiAiICsKKyAgICAgICAgIldoZW4gdGhleSBnb3QgaG9tZSB0aGV5IGJvdGggY29vZWQgXCJJc24ndCBpdCBsb3ZlbHk/XCIgYW5kIHNpZ2hlZCBzb2Z0bHkuICIgKworICAgICAgICAiXCJMZXQncyBuYW1lIGl0IHVcdTAzMDhcdTUwOTghXCIgdGhleSBzYWlkIHdpdGggZ2xlZS4iOworICAgIHByaXZhdGUgc3RhdGljIGludCBwb3MgPSB0ZXh0LmluZGV4T2YoInNuJ3QiKTsKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGNicjsKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yIHdicjsKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGxicjsKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yIHNicjsKKyAgICAgICAgCisgICAgc3RhdGljIHsKKyAgICAgICAgY2JyID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICBjYnIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgd2JyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgd2JyLnNldFRleHQodGV4dCk7CisgICAgICAgIGxiciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIGxici5zZXRUZXh0KHRleHQpOworICAgICAgICBzYnIgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgc2JyLnNldFRleHQodGV4dCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGRpYWdub3N0aWMKKyAgICAgICAgLy8gICAgICAgICAgICAgIGR1bXAoY2JyKTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIGR1bXAod2JyKTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIGR1bXAobGJyKTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIGR1bXAoc2JyKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBkdW1wKEJyZWFrSXRlcmF0b3IgYmkpIHsKKyAgICAvLyAgICAgICAgICAgICAgZm9yIChpbnQgaXggPSBiaS5maXJzdCgpLCBsaW0gPSB0ZXh0Lmxlbmd0aCgpOyBpeCAhPSBsaW07KSB7CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW50IG54ID0gYmkubmV4dCgpOworICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGlmIChueCA8IDApIG54ID0gbGltOworICAgIC8vICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihJbnRlZ2VyLnRvU3RyaW5nKGl4KSArICI6ICIgKyB0ZXh0LnN1YnN0cmluZyhpeCwgbngpKTsKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpeCA9IG54OworICAgIC8vICAgICAgICAgICAgICB9CisgICAgLy8gICAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuaGFzaENvZGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICBici5zZXRUZXh0KHRleHQpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJybmUgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICBicm5lLnNldFRleHQodGV4dCArICJYIik7CisgICAgICAgIHdici5maXJzdCgpOworICAgICAgICB0ZXN0RUhDUyhiciwgd2JyLCBicm5lKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLkJyZWFrSXRlcmF0b3IoQnJlYWtJdGVyYXRvciknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEJyZWFrSXRlcmF0b3IoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmZpcnN0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZpcnN0KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoMCwgY2JyLmZpcnN0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMCwgd2JyLmZpcnN0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMCwgbGJyLmZpcnN0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMCwgc2JyLmZpcnN0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IubGFzdCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RMYXN0KCkgeworICAgICAgICBhc3NlcnRFcXVhbHModGV4dC5sZW5ndGgoKSwgY2JyLmxhc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyh0ZXh0Lmxlbmd0aCgpLCB3YnIubGFzdCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHRleHQubGVuZ3RoKCksIGxici5sYXN0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHModGV4dC5sZW5ndGgoKSwgc2JyLmxhc3QoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5uZXh0KGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdE5leHRJbnQoKSB7CisgICAgICAgIGNici5maXJzdCgpOworICAgICAgICB3YnIuZmlyc3QoKTsKKyAgICAgICAgbGJyLmZpcnN0KCk7CisgICAgICAgIHNici5maXJzdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgY2JyLm5leHQoMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoMywgd2JyLm5leHQoMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoOCwgbGJyLm5leHQoMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoNjIsIHNici5uZXh0KDIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgY2JyLmxhc3QoKTsKKyAgICAgICAgd2JyLmxhc3QoKTsKKyAgICAgICAgbGJyLmxhc3QoKTsKKyAgICAgICAgc2JyLmxhc3QoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE3NCwgY2JyLm5leHQoLTIpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE3MSwgd2JyLm5leHQoLTIpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE2NiwgbGJyLm5leHQoLTIpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEzNSwgc2JyLm5leHQoLTIpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLm5leHQoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TmV4dCgpIHsKKyAgICAgICAgY2JyLmZpcnN0KCk7CisgICAgICAgIHdici5maXJzdCgpOworICAgICAgICBsYnIuZmlyc3QoKTsKKyAgICAgICAgc2JyLmZpcnN0KCk7CisgICAgICAgIGFzc2VydEVxdWFscygxLCBjYnIubmV4dCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDIsIHdici5uZXh0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoNCwgbGJyLm5leHQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxMywgc2JyLm5leHQoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5wcmV2aW91cygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RQcmV2aW91cygpIHsKKyAgICAgICAgY2JyLmxhc3QoKTsKKyAgICAgICAgd2JyLmxhc3QoKTsKKyAgICAgICAgbGJyLmxhc3QoKTsKKyAgICAgICAgc2JyLmxhc3QoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE3NSwgY2JyLnByZXZpb3VzKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTc1LCB3YnIucHJldmlvdXMoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxNzEsIGxici5wcmV2aW91cygpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE1Niwgc2JyLnByZXZpb3VzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZm9sbG93aW5nKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvbGxvd2luZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwMCwgY2JyLmZvbGxvd2luZyhwb3MpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwMywgd2JyLmZvbGxvd2luZyhwb3MpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwNCwgbGJyLmZvbGxvd2luZyhwb3MpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDExNiwgc2JyLmZvbGxvd2luZyhwb3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLnByZWNlZGluZyhpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RQcmVjZWRpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyg5OCwgY2JyLnByZWNlZGluZyhwb3MpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDk4LCB3YnIucHJlY2VkaW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoOTcsIGxici5wcmVjZWRpbmcocG9zKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg2Miwgc2JyLnByZWNlZGluZyhwb3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmlzQm91bmRhcnkoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXNCb3VuZGFyeSgpIHsKKyAgICAgICAgYXNzZXJ0VHJ1ZShjYnIuaXNCb3VuZGFyeShwb3MpKTsKKyAgICAgICAgYXNzZXJ0RmFsc2Uod2JyLmlzQm91bmRhcnkocG9zKSk7CisgICAgICAgIGFzc2VydEZhbHNlKGxici5pc0JvdW5kYXJ5KHBvcykpOworICAgICAgICBhc3NlcnRGYWxzZShzYnIuaXNCb3VuZGFyeShwb3MpKTsKKworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuY3VycmVudCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDdXJyZW50KCkgeworICAgICAgICBjYnIuZm9sbG93aW5nKHBvcyk7CisgICAgICAgIHdici5mb2xsb3dpbmcocG9zKTsKKyAgICAgICAgbGJyLmZvbGxvd2luZyhwb3MpOworICAgICAgICBzYnIuZm9sbG93aW5nKHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygxMDAsIGNici5jdXJyZW50KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTAzLCB3YnIuY3VycmVudCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwNCwgbGJyLmN1cnJlbnQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxMTYsIHNici5jdXJyZW50KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0VGV4dCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRUZXh0KCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaSA9IGNici5nZXRUZXh0KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKGNpLmdldEVuZEluZGV4KCkgLSBjaS5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICBmb3IgKGNoYXIgYyA9IGNpLmZpcnN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIGFzc2VydEVxdWFscyh0ZXh0LCByZXN1bHQpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3Iuc2V0VGV4dChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRUZXh0U3RyaW5nKCkgeworICAgICAgICAvLyBpbXBsaWNpdGx5IHRlc3RlZAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3Iuc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldFRleHRDaGFyYWN0ZXJJdGVyYXRvcigpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2kgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCwgcG9zKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIGJpLnNldFRleHQoY2kpOworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgYmkubmV4dCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRXb3JkSW5zdGFuY2UoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0V29yZEluc3RhbmNlTG9jYWxlKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRXb3JkSW5zdGFuY2VVTG9jYWxlKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKFVMb2NhbGUuSkFQQU4pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRMaW5lSW5zdGFuY2UoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TGluZUluc3RhbmNlTG9jYWxlKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKExvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRMaW5lSW5zdGFuY2VVTG9jYWxlKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKFVMb2NhbGUuSkFQQU4pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldENoYXJhY3Rlckluc3RhbmNlKCkgeworICAgICAgICAvLyBpbXBsaWNpdGx5IHRlc3RlZAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Q2hhcmFjdGVySW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuSkFQQU4pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDaGFyYWN0ZXJJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShVTG9jYWxlLkpBUEFOKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNlbnRlbmNlSW5zdGFuY2UoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNlbnRlbmNlSW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0U2VudGVuY2VJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKFVMb2NhbGUuSkFQQU4pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0VGl0bGVJbnN0YW5jZSgpIHsKKyAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFRpdGxlSW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIC8vIG5vdCBpbXBsZW1lbnRlZAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0VGl0bGVJbnN0YW5jZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0VGl0bGVJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIC8vIG5vdCBpbXBsZW1lbnRlZAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci50b1N0cmluZygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChjYnIudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5jbG9uZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RIYXNoQ29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZXF1YWxzKE9iamVjdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RIYXNoQ29kZQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9DYWxlbmRhclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9DYWxlbmRhclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzJkMjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NhbGVuZGFyVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTU5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuaGFzaENvZGUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisJCUNhbGVuZGFyIGNhbDEgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlDYWxlbmRhciBjYWwyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJQ2FsZW5kYXIgY2FsMyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbDMuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhjYWwzLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSsxKTsKKwkJdGVzdEVIQ1MoY2FsMSwgY2FsMiwgY2FsMyk7CQkKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5DYWxlbmRhcihDYWxlbmRhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdENhbGVuZGFyKCkgeworCQkvLyB0ZXN0ZWQgaW1wbGljaXRseSBldmVyeXdoZXJlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2UoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0RUhDUworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2VUaW1lWm9uZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0eik7CisJCWFzc2VydE5vdE51bGwoY2FsKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZSgpKTsKKwkJYXNzZXJ0RXF1YWxzKHR6LCBjYWwuZ2V0VGltZVpvbmUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2VMb2NhbGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoY2FsKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShVTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2VVTG9jYWxlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwpOworCQlhc3NlcnROb3ROdWxsKGNhbC5nZXRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLCBMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVRpbWVab25lTG9jYWxlKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL05ld19Zb3JrIik7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6LCBMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGNhbCk7CisJCWFzc2VydE5vdE51bGwoY2FsLmdldFRpbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUsIFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVRpbWVab25lVUxvY2FsZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9OZXdfWW9yayIpOworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0eiwgVUxvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoY2FsKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisJCWFzc2VydE5vdE51bGwoQ2FsZW5kYXIuZ2V0QXZhaWxhYmxlTG9jYWxlcygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRBdmFpbGFibGVVTG9jYWxlcygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKwkJYXNzZXJ0Tm90TnVsbChDYWxlbmRhci5nZXRBdmFpbGFibGVVTG9jYWxlcygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRUaW1lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFRpbWUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydE5vdE51bGwoY2FsLmdldFRpbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0VGltZShEYXRlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0VGltZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLmNsZWFyKCk7CisJCWNhbC5zZXQoMjAwNiwgMCwgMjAsIDksIDMwLCAwKTsKKwkJRGF0ZSBkYXRlID0gY2FsLmdldFRpbWUoKTsKKwkJY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldFRpbWUoZGF0ZSk7CisJCWFzc2VydEVxdWFscyhkYXRlLCBjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRUaW1lSW5NaWxsaXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0VGltZUluTWlsbGlzKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRUcnVlKDAgIT0gY2FsLmdldFRpbWVJbk1pbGxpcygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRUaW1lSW5NaWxsaXMobG9uZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFRpbWVJbk1pbGxpcygpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLmNsZWFyKCk7CisJCWNhbC5zZXQoMjAwNiwgMCwgMjAsIDksIDMwLCAwKTsKKwkJbG9uZyBtaWxsaXMgPSBjYWwuZ2V0VGltZUluTWlsbGlzKCk7CisJCURhdGUgZGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisJCQorCQljYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0VGltZUluTWlsbGlzKG1pbGxpcyk7CisJCQorCQlhc3NlcnRFcXVhbHMoZGF0ZSwgY2FsLmdldFRpbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0KGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLmNsZWFyKCk7CisJCWNhbC5zZXQoMjAwNiwgMCwgMjAsIDksIDMwLCAwKTsKKwkJYXNzZXJ0RXF1YWxzKDAsIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKwkJYXNzZXJ0RXF1YWxzKDIwLCBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworCQlhc3NlcnRFcXVhbHMoMzAsIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0KGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW50SW50KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5NzcpOworCQlhc3NlcnRFcXVhbHMoMTk3NywgY2FsLmdldChDYWxlbmRhci5ZRUFSKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0KGludCwgaW50LCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRJbnRJbnRJbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5NywgOSwgMTUpOworCQlhc3NlcnRFcXVhbHMoMTUsIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldChpbnQsIGludCwgaW50LCBpbnQsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEludEludEludEludEludCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTk3LCA5LCAxNSwgMTQsIDI1KTsKKwkJYXNzZXJ0RXF1YWxzKDI1LCBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldChpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW50SW50SW50SW50SW50SW50KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KDE5OTcsIDksIDE1LCAxNCwgMjUsIDUxKTsKKwkJYXNzZXJ0RXF1YWxzKDUxLCBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmNsZWFyKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENsZWFyKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KDE5OTcsIDksIDE1LCAxNCwgMjUsIDUxKTsKKwkJY2FsLmNsZWFyKCk7CisJCWFzc2VydEVxdWFscygwLCBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuY2xlYXIoaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2xlYXJJbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5NywgOSwgMTUsIDE0LCAyNSwgNTEpOworCQlhc3NlcnRUcnVlKGNhbC5pc1NldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKwkJY2FsLmNsZWFyKENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisJCWFzc2VydEZhbHNlKGNhbC5pc1NldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5pc1NldChpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RJc1NldCgpIHsKKwkJLy8gc2VlIHRlc3RDbGVhckludAorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmVxdWFscyhPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0SGFzaENvZGUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5pc0VxdWl2YWxlbnRUbyhDYWxlbmRhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdElzRXF1aXZhbGVudFRvKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlDYWxlbmRhciBjYWwyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsMi5zZXQoMTk5NCwgNiwgMjEsIDgsIDcpOworCQlhc3NlcnRUcnVlKGNhbC5pc0VxdWl2YWxlbnRUbyhjYWwyKSk7CisJCWNhbC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQ1NUIikpOworCQljYWwyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJQRFQiKSk7CisJCWFzc2VydEZhbHNlKGNhbC5pc0VxdWl2YWxlbnRUbyhjYWwyKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuYmVmb3JlKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEJlZm9yZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTkwKTsKKwkJYXNzZXJ0VHJ1ZShjYWwuYmVmb3JlKG5ldyBEYXRlKCkpKTsKKwkJYXNzZXJ0VHJ1ZShjYWwuYmVmb3JlKENhbGVuZGFyLmdldEluc3RhbmNlKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5hZnRlcihPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RBZnRlcigpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldChDYWxlbmRhci5ZRUFSLCAzMDU4KTsKKwkJYXNzZXJ0VHJ1ZShjYWwuYWZ0ZXIobmV3IERhdGUoKSkpOworCQlhc3NlcnRUcnVlKGNhbC5hZnRlcihDYWxlbmRhci5nZXRJbnN0YW5jZSgpKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0QWN0dWFsTWF4aW11bShpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBY3R1YWxNYXhpbXVtKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoMTEsIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLk1PTlRIKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0QWN0dWFsTWluaW11bShpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBY3R1YWxNaW5pbXVtKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoMCwgY2FsLmdldEFjdHVhbE1pbmltdW0oQ2FsZW5kYXIuTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5yb2xsKGludCwgYm9vbGVhbiknCisJICovCisJcHVibGljIHZvaWQgdGVzdFJvbGxJbnRCb29sZWFuKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQljYWwuc2V0KDE5OTcsIDEsIDI3KTsKKwkJY2FsLnJvbGwoQ2FsZW5kYXIuREFURSwgdHJ1ZSk7CisJCWFzc2VydEVxdWFscygyOCwgY2FsLmdldChDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIucm9sbChpbnQsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFJvbGxJbnRJbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWNhbC5zZXQoMTk5NywgMSwgMjcpOworCQljYWwucm9sbChDYWxlbmRhci5EQVRFLCAzKTsKKwkJYXNzZXJ0RXF1YWxzKDIsIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmFkZChpbnQsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEFkZCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJY2FsLnNldCgxOTk3LCAxLCAyNyk7CisJCWNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMyk7CisJCWFzc2VydEVxdWFscygyLCBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKwkJYXNzZXJ0RXF1YWxzKDIsIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXREaXNwbGF5TmFtZShMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUxvY2FsZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0RXF1YWxzKCJDYWxlbmRhciIsIGNhbC5nZXREaXNwbGF5TmFtZShMb2NhbGUuVVMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXREaXNwbGF5TmFtZShVTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVVTG9jYWxlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRFcXVhbHMoIkNhbGVuZGFyIiwgY2FsLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuVVMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5jb21wYXJlVG8oQ2FsZW5kYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDb21wYXJlVG9DYWxlbmRhcigpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTkwKTsKKwkJYXNzZXJ0VHJ1ZSgwID4gY2FsLmNvbXBhcmVUbyhDYWxlbmRhci5nZXRJbnN0YW5jZSgpKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuY29tcGFyZVRvKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVUb09iamVjdCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTkwKTsKKwkJYXNzZXJ0VHJ1ZSgwID4gY2FsLmNvbXBhcmVUbygoT2JqZWN0KUNhbGVuZGFyLmdldEluc3RhbmNlKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXREYXRlVGltZUZvcm1hdChpbnQsIGludCwgTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVGb3JtYXRJbnRJbnRMb2NhbGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5MCwgOCwgMTYsIDIwLCAzKTsKKwkJRGF0ZUZvcm1hdCBkZiA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuU0hPUlQsIExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiU2VwdGVtYmVyIDE2LCAxOTkwIDg6MDMgUE0iLCBkZi5mb3JtYXQoY2FsKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0RGF0ZVRpbWVGb3JtYXQoaW50LCBpbnQsIFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREYXRlVGltZUZvcm1hdEludEludFVMb2NhbGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5MCwgOCwgMTYsIDIwLCAzKTsKKwkJRGF0ZUZvcm1hdCBkZiA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuU0hPUlQsIFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoIlNlcHRlbWJlciAxNiwgMTk5MCA4OjAzIFBNIiwgZGYuZm9ybWF0KGNhbCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmZpZWxkRGlmZmVyZW5jZShEYXRlLCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RGaWVsZERpZmZlcmVuY2UoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAwKTsKKwkJRGF0ZSBkYXRlID0gY2FsLmdldFRpbWUoKTsKKwkJY2FsLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDUpOworCQlhc3NlcnRFcXVhbHMoLTUsIGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZSwgQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0VGltZVpvbmUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0VGltZVpvbmUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydE5vdE51bGwoY2FsLmdldFRpbWVab25lKCkpOworCX0KKwkKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRUaW1lWm9uZShUaW1lWm9uZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFRpbWVab25lKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlUaW1lWm9uZSB2YWx1ZTEgPSBjYWwuZ2V0VGltZVpvbmUoKTsKKwkJU3RyaW5nIHR6biA9ICJQRFQiLmVxdWFscyh2YWx1ZTEuZ2V0SUQoKSkgPyAiQ1NUIiA6ICJQRFQiOworCQlUaW1lWm9uZSB2YWx1ZTIgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSh0em4pOworCQljYWwuc2V0VGltZVpvbmUodmFsdWUyKTsKKwkJVGltZVpvbmUgcmVzdWx0ID0gY2FsLmdldFRpbWVab25lKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlMSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMiwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRMZW5pZW50KGJvb2xlYW4pJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRMZW5pZW50KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlib29sZWFuIGxlbmllbnQgPSBjYWwuaXNMZW5pZW50KCk7CisJCWNhbC5zZXRMZW5pZW50KCFsZW5pZW50KTsKKwkJYXNzZXJ0RmFsc2UobGVuaWVudCA9PSBjYWwuaXNMZW5pZW50KCkpOworCQkKKwkJLy8gbm90IHRlc3RpbmcgaWYgaXQgaGFzIHRoZSBleHBlY3RlZCBlZmZlY3QKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5pc0xlbmllbnQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SXNMZW5pZW50KCkgeworCQkvLyB0ZXN0ZWQgYnkgdGVzdFNldExlbmllbnQKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRGaXJzdERheU9mV2VlayhpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRGaXJzdERheU9mV2VlaygpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJaW50IGZpcnN0RGF5ID0gY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCk7CisJCWNhbC5zZXRGaXJzdERheU9mV2VlayhmaXJzdERheSsxKTsKKwkJYXNzZXJ0RXF1YWxzKGZpcnN0RGF5KzEsIGNhbC5nZXRGaXJzdERheU9mV2VlaygpKTsKKwkJCisJCS8vIGRvbid0IHRlc3QgZnVuY3Rpb25hbGl0eQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEZpcnN0RGF5T2ZXZWVrKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEZpcnN0RGF5T2ZXZWVrKCkgeworCQkvLyB0ZXN0ZWQgYnkgdGVzdFNldEZpcnN0RGF5T2ZXZWVrCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlpbnQgZmlyc3REYXkgPSBjYWwuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpOworCQljYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhmaXJzdERheSsxKTsKKwkJYXNzZXJ0RXF1YWxzKGZpcnN0RGF5KzEsIGNhbC5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpOworCQkKKwkJLy8gZG9uJ3QgdGVzdCBmdW5jdGlvbmFsaXR5CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgeworCQkvLyB0ZXN0ZWQgYnkgdGVzdFNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRNaW5pbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE1pbmltdW0oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydEVxdWFscygxLCBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldE1heGltdW0oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0TWF4aW11bSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0RXF1YWxzKDcsIGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0R3JlYXRlc3RNaW5pbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEdyZWF0ZXN0TWluaW11bSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0RXF1YWxzKDEsIGNhbC5nZXRHcmVhdGVzdE1pbmltdW0oQ2FsZW5kYXIuREFURSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldExlYXN0TWF4aW11bShpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRMZWFzdE1heGltdW0oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydEVxdWFscygyOCwgY2FsLmdldExlYXN0TWF4aW11bShDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0RGF5T2ZXZWVrVHlwZShpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREYXlPZldlZWtUeXBlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoQ2FsZW5kYXIuV0VFS0RBWSwgY2FsLmdldERheU9mV2Vla1R5cGUoQ2FsZW5kYXIuRlJJREFZKSk7CisJCWFzc2VydEVxdWFscyhDYWxlbmRhci5XRUVLRU5ELCBjYWwuZ2V0RGF5T2ZXZWVrVHlwZShDYWxlbmRhci5TQVRVUkRBWSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldFdlZWtlbmRUcmFuc2l0aW9uKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFdlZWtlbmRUcmFuc2l0aW9uKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQl0cnkgeworCQkJY2FsLmdldFdlZWtlbmRUcmFuc2l0aW9uKENhbGVuZGFyLldFRUtFTkRfT05TRVQpOworCQkJZmFpbCgiZXhwZWN0ZWQgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZyb20gZ2V0V2Vla2VuZFRyYW5zaXRpb24iKTsKKwkJfQorCQljYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKwkJCS8vIG9rCisJCX0KKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5pc1dlZWtlbmQoRGF0ZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdElzV2Vla2VuZERhdGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlNBVFVSREFZKTsKKwkJYXNzZXJ0VHJ1ZShjYWwuaXNXZWVrZW5kKGNhbC5nZXRUaW1lKCkpKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZKTsKKwkJYXNzZXJ0RmFsc2UoY2FsLmlzV2Vla2VuZChjYWwuZ2V0VGltZSgpKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuaXNXZWVrZW5kKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdElzV2Vla2VuZCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuU0FUVVJEQVkpOworCQlhc3NlcnRUcnVlKGNhbC5pc1dlZWtlbmQoKSk7CisJCWNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLldFRE5FU0RBWSk7CisJCWFzc2VydEZhbHNlKGNhbC5pc1dlZWtlbmQoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuY2xvbmUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0SGFzaENvZGUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci50b1N0cmluZygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwudG9TdHJpbmcoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0VHlwZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRUeXBlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoImdyZWdvcmlhbiIsIGNhbC5nZXRUeXBlKCkpOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Db2xsYXRpb25LZXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQ29sbGF0aW9uS2V5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YWU5MmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQ29sbGF0aW9uS2V5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvbktleVRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkuaGFzaENvZGUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlDb2xsYXRpb25LZXkgazEgPSBjLmdldENvbGxhdGlvbktleSgiVGhpcyIpOworCQlDb2xsYXRpb25LZXkgazIgPSBjLmdldENvbGxhdGlvbktleSgidGhpcyIpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGtuID0gYy5nZXRDb2xsYXRpb25LZXkoInRoaXMiKTsKKwkJdGVzdEVIQ1MoazEsIGsyLCBrbik7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5LkNvbGxhdGlvbktleShDb2xsYXRpb25LZXkpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDb2xsYXRpb25LZXkoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVUb0NvbGxhdGlvbktleSgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCQlDb2xsYXRpb25LZXkgazMgPSBjLmdldENvbGxhdGlvbktleSgidGhpcyIpOworCQlhc3NlcnRUcnVlKDAgPT0gazEuY29tcGFyZVRvKGsyKSk7CisJCWFzc2VydEZhbHNlKDAgPT0gazEuY29tcGFyZVRvKGszKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5LmNvbXBhcmVUbyhPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDb21wYXJlVG9PYmplY3QoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlDb2xsYXRpb25LZXkgazEgPSBjLmdldENvbGxhdGlvbktleSgiVGhpcyIpOworCQlDb2xsYXRpb25LZXkgazIgPSBjLmdldENvbGxhdGlvbktleSgidGhpcyIpOworCQlhc3NlcnRUcnVlKDAgPT0gazEuY29tcGFyZVRvKChPYmplY3QpazIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWFzc2VydFRydWUoazEuZXF1YWxzKChPYmplY3QpazIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkudG9TdHJpbmcoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlDb2xsYXRpb25LZXkgazEgPSBjLmdldENvbGxhdGlvbktleSgiVGhpcyIpOworCQlhc3NlcnROb3ROdWxsKGsxLnRvU3RyaW5nKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS5nZXRTb3VyY2VTdHJpbmcoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0U291cmNlU3RyaW5nKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoIlRoaXMiKTsKKwkJYXNzZXJ0RXF1YWxzKCJUaGlzIiwgazEuZ2V0U291cmNlU3RyaW5nKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS50b0J5dGVBcnJheSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RUb0J5dGVBcnJheSgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCWJ5dGVbXSBrZXkgPSBrMS50b0J5dGVBcnJheSgpOworCQlhc3NlcnROb3ROdWxsKGtleSk7CisJCWFzc2VydFRydWUoMCA8IGtleS5sZW5ndGgpOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Db2xsYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Db2xsYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWM3MTc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NvbGxhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgQ29sbGF0b3JUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzMSA9ICJGdVx1MDMwOG5mIjsgLy8gY2FwaXRhbCBGICsgdSArIGRpYXJlc2lzCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHMyID0gImZ1XHUwMzA4bmYiOyAvLyB1ICsgZGlhcmVzaXMKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgczMgPSAiZlx1MDBmY25mIjsgLy8gdS11bWxhdXQKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgczQgPSAiZnVcdTAzMDhcdTAzMTZuZiI7IC8vIHUgKyBkaWFyZXNpcyBhYm92ZSArIGdyYXZlIGJlbG93CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHM1ID0gImZ1XHUwMzE2XHUwMzA4bmYiOyAvLyB1ICsgZ3JhdmUgYmVsb3cgKyBkaWFyZXNpcyBhYm92ZQorCQorCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmhhc2hDb2RlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworCQlDb2xsYXRvciBjMiA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMyLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisJCUNvbGxhdG9yIGNuID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJY24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCQl0ZXN0RUhDUyhjLCBjMiwgY24pOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLkNvbGxhdG9yKENvbGxhdG9yKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q29sbGF0b3IoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5zZXRTdHJlbmd0aChpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRTdHJlbmd0aCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCWFzc2VydFRydWUoMCA9PSBjLmNvbXBhcmUoczEsIHMyKSk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKwkJYXNzZXJ0VHJ1ZSgwID09IGMuY29tcGFyZShzMSwgczIpKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCWFzc2VydFRydWUoMCA8IGMuY29tcGFyZShzMSwgczIpKTsKKwkJYXNzZXJ0VHJ1ZSgwID09IGMuY29tcGFyZShzMiwgczMpKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5RVUFURVJOQVJZKTsKKwkJYXNzZXJ0VHJ1ZSgwID4gYy5jb21wYXJlKHMyLCBzMykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0RGVjb21wb3NpdGlvbigpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCQlhc3NlcnRUcnVlKDAgIT0gYy5jb21wYXJlKHM0LCBzNSkpOworCQljLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuSURFTlRJQ0FMKTsKKwkJYXNzZXJ0VHJ1ZSgwID09IGMuY29tcGFyZShzNCwgczUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5nZXRJbnN0YW5jZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZSgpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVVMb2NhbGUoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworCQlhc3NlcnROb3ROdWxsKGMpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlTG9jYWxlKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworCQlhc3NlcnROb3ROdWxsKGMpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKwkJYXNzZXJ0Tm90TnVsbChDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworCQlhc3NlcnROb3ROdWxsKENvbGxhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEtleXdvcmRzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEtleXdvcmRzKCkgeworCQlhc3NlcnRFcXVhbHMoMCwgQ29sbGF0b3IuZ2V0S2V5d29yZHMoKS5sZW5ndGgpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0S2V5d29yZFZhbHVlcygpIHsKKwkJYXNzZXJ0RXF1YWxzKDAsIENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoIiIpLmxlbmd0aCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0U3RyZW5ndGgoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0U3RyZW5ndGgoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlhc3NlcnRFcXVhbHMoQ29sbGF0b3IuUFJJTUFSWSwgYy5nZXRTdHJlbmd0aCgpKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworCQlhc3NlcnRFcXVhbHMoQ29sbGF0b3IuU0VDT05EQVJZLCBjLmdldFN0cmVuZ3RoKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RGVjb21wb3NpdGlvbigpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisJCWFzc2VydEVxdWFscyhDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTiwgYy5nZXREZWNvbXBvc2l0aW9uKCkpOworCQljLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisJCWFzc2VydEVxdWFscyhDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OLCBjLmdldERlY29tcG9zaXRpb24oKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuY29tcGFyZShPYmplY3QsIE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVPYmplY3RPYmplY3QoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKChPYmplY3QpczEsIChPYmplY3QpczIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5lcXVhbHMoU3RyaW5nLCBTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RFcXVhbHNTdHJpbmdTdHJpbmcoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlhc3NlcnRUcnVlKGMuZXF1YWxzKHMxLCBzMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmNvbXBhcmUoU3RyaW5nLCBTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDb21wYXJlU3RyaW5nU3RyaW5nKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJYXNzZXJ0VHJ1ZSgwID09IGMuY29tcGFyZShzMSwgczIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5nZXRDb2xsYXRpb25LZXkoU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0Q29sbGF0aW9uS2V5KCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoczEpOworCQlDb2xsYXRpb25LZXkgazIgPSBjLmdldENvbGxhdGlvbktleShzMik7CisJCWFzc2VydFRydWUoazEuZXF1YWxzKGsyKSk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCQlrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KHMxKTsKKwkJazIgPSBjLmdldENvbGxhdGlvbktleShzMik7CisJCWFzc2VydEZhbHNlKGsxLmVxdWFscyhrMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLnRvU3RyaW5nKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworCQlhc3NlcnROb3ROdWxsKENvbGxhdG9yLmdldEluc3RhbmNlKCkudG9TdHJpbmcoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuY2xvbmUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisJCS8vIHRlc3RlZCBhYm92ZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmVxdWFscyhPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisJCS8vIHRlc3RlZCBhYm92ZQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EYXRlRm9ybWF0U3ltYm9sc1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EYXRlRm9ybWF0U3ltYm9sc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODIzNDg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RhdGVGb3JtYXRTeW1ib2xzVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHNUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuaGFzaENvZGUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMyID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnNuID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWRmc24uc2V0QW1QbVN0cmluZ3MobmV3IFN0cmluZ1tdIHsgInN3IiwgInh3IiB9KTsKKwkJdGVzdEVIQ1MoZGZzLCBkZnMyLCBkZnNuKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5EYXRlRm9ybWF0U3ltYm9scyhEYXRlRm9ybWF0U3ltYm9scyknCisJICovCisJcHVibGljIHZvaWQgdGVzdERhdGVGb3JtYXRTeW1ib2xzRGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5EYXRlRm9ybWF0U3ltYm9scygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3REYXRlRm9ybWF0U3ltYm9scygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFdlZWtkYXlzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLkRhdGVGb3JtYXRTeW1ib2xzKExvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdERhdGVGb3JtYXRTeW1ib2xzTG9jYWxlKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0V2Vla2RheXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdERhdGVGb3JtYXRTeW1ib2xzVUxvY2FsZSgpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRXZWVrZGF5cygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRFcmFzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEVyYXMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRFcmFzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldEVyYXMoU3RyaW5nW10pJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRFcmFzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nW10gb2xkdmFsdWUgPSBkZnMuZ2V0RXJhcygpOworCQlTdHJpbmdbXSBuZXd2YWx1ZSA9IChTdHJpbmdbXSlvbGR2YWx1ZS5jbG9uZSgpOworCQluZXd2YWx1ZVswXSA9IG5ld3ZhbHVlWzBdICsgIiEiOworCQlkZnMuc2V0RXJhcyhuZXd2YWx1ZSk7CisJCVN0cmluZ1tdIHJlc3VsdCA9IGRmcy5nZXRFcmFzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRNb250aHMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0TW9udGhzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0TW9udGhzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldE1vbnRocyhTdHJpbmdbXSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldE1vbnRocygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdIG9sZHZhbHVlID0gZGZzLmdldE1vbnRocygpOworCQlTdHJpbmdbXSBuZXd2YWx1ZSA9IChTdHJpbmdbXSlvbGR2YWx1ZS5jbG9uZSgpOworCQluZXd2YWx1ZVswXSA9IG5ld3ZhbHVlWzBdICsgIiEiOworCQlkZnMuc2V0TW9udGhzKG5ld3ZhbHVlKTsKKwkJU3RyaW5nW10gcmVzdWx0ID0gZGZzLmdldE1vbnRocygpOworCQlhc3NlcnRBcnJheXNOb3RFcXVhbChvbGR2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0QXJyYXlzRXF1YWwobmV3dmFsdWUsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0U2hvcnRNb250aHMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0U2hvcnRNb250aHMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRTaG9ydE1vbnRocygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5zZXRTaG9ydE1vbnRocyhTdHJpbmdbXSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFNob3J0TW9udGhzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nW10gb2xkdmFsdWUgPSBkZnMuZ2V0U2hvcnRNb250aHMoKTsKKwkJU3RyaW5nW10gbmV3dmFsdWUgPSAoU3RyaW5nW10pb2xkdmFsdWUuY2xvbmUoKTsKKwkJbmV3dmFsdWVbMF0gPSBuZXd2YWx1ZVswXSArICIhIjsKKwkJZGZzLnNldFNob3J0TW9udGhzKG5ld3ZhbHVlKTsKKwkJU3RyaW5nW10gcmVzdWx0ID0gZGZzLmdldFNob3J0TW9udGhzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRXZWVrZGF5cygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRXZWVrZGF5cygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFNob3J0TW9udGhzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldFdlZWtkYXlzKFN0cmluZ1tdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0V2Vla2RheXMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlTdHJpbmdbXSBvbGR2YWx1ZSA9IGRmcy5nZXRXZWVrZGF5cygpOworCQlTdHJpbmdbXSBuZXd2YWx1ZSA9IChTdHJpbmdbXSlvbGR2YWx1ZS5jbG9uZSgpOworCQluZXd2YWx1ZVswXSA9IG5ld3ZhbHVlWzBdICsgIiEiOworCQlkZnMuc2V0V2Vla2RheXMobmV3dmFsdWUpOworCQlTdHJpbmdbXSByZXN1bHQgPSBkZnMuZ2V0V2Vla2RheXMoKTsKKwkJYXNzZXJ0QXJyYXlzTm90RXF1YWwob2xkdmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEFycmF5c0VxdWFsKG5ld3ZhbHVlLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldFNob3J0V2Vla2RheXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0U2hvcnRXZWVrZGF5cygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFNob3J0V2Vla2RheXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0U2hvcnRXZWVrZGF5cyhTdHJpbmdbXSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFNob3J0V2Vla2RheXMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlTdHJpbmdbXSBvbGR2YWx1ZSA9IGRmcy5nZXRTaG9ydFdlZWtkYXlzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRTaG9ydFdlZWtkYXlzKG5ld3ZhbHVlKTsKKwkJU3RyaW5nW10gcmVzdWx0ID0gZGZzLmdldFNob3J0V2Vla2RheXMoKTsKKwkJYXNzZXJ0QXJyYXlzTm90RXF1YWwob2xkdmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEFycmF5c0VxdWFsKG5ld3ZhbHVlLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldEFtUG1TdHJpbmdzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEFtUG1TdHJpbmdzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0QW1QbVN0cmluZ3MoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0QW1QbVN0cmluZ3MoU3RyaW5nW10pJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRBbVBtU3RyaW5ncygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdIG9sZHZhbHVlID0gZGZzLmdldEFtUG1TdHJpbmdzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRBbVBtU3RyaW5ncyhuZXd2YWx1ZSk7CisJCVN0cmluZ1tdIHJlc3VsdCA9IGRmcy5nZXRBbVBtU3RyaW5ncygpOworCQlhc3NlcnRBcnJheXNOb3RFcXVhbChvbGR2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0QXJyYXlzRXF1YWwobmV3dmFsdWUsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0Wm9uZVN0cmluZ3MoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0Wm9uZVN0cmluZ3MoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRab25lU3RyaW5ncygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5zZXRab25lU3RyaW5ncyhTdHJpbmdbXVtdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0Wm9uZVN0cmluZ3MoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlTdHJpbmdbXVtdIG9sZHZhbHVlID0gZGZzLmdldFpvbmVTdHJpbmdzKCk7CisJCVN0cmluZ1tdW10gbmV3dmFsdWUgPSAoU3RyaW5nW11bXSljbG9uZUNvbXBsZXgob2xkdmFsdWUpOworCQluZXd2YWx1ZVswXVswXSA9IG5ld3ZhbHVlWzBdWzBdICsgIiEiOworCQlkZnMuc2V0Wm9uZVN0cmluZ3MobmV3dmFsdWUpOworCQlTdHJpbmdbXVtdIHJlc3VsdCA9IGRmcy5nZXRab25lU3RyaW5ncygpOworCQlhc3NlcnRBcnJheXNOb3RFcXVhbChvbGR2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0QXJyYXlzRXF1YWwobmV3dmFsdWUsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRMb2NhbFBhdHRlcm5DaGFycygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5zZXRMb2NhbFBhdHRlcm5DaGFycyhTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZyBwYXQgPSBkZnMuZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKTsKKwkJU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocGF0KTsKKwkJYnVmLnNldENoYXJBdCgwLCAoY2hhcikocGF0LmNoYXJBdCgwKSArIDEpKTsKKwkJU3RyaW5nIHBhdDIgPSBidWYudG9TdHJpbmcoKTsKKwkJZGZzLnNldExvY2FsUGF0dGVybkNoYXJzKHBhdDIpOworCQlTdHJpbmcgcGF0MyA9IGRmcy5nZXRMb2NhbFBhdHRlcm5DaGFycygpOworCQlhc3NlcnROb3RFcXVhbChwYXQsIHBhdDIpOworCQlhc3NlcnRFcXVhbHMocGF0MiwgcGF0Myk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMudG9TdHJpbmcoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy50b1N0cmluZygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmVxdWFscyhPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0SGFzaENvZGUKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGF0ZUZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EYXRlRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNGMwNDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGF0ZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDQ0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0VGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKyAgICBwcml2YXRlIENhbGVuZGFyIGFDYWw7CisgICAgcHJpdmF0ZSBDYWxlbmRhciBhbkVTVENhbDsKKyAgICBwcml2YXRlIERhdGUgYURhdGU7CisgICAgcHJpdmF0ZSBTdHJpbmcgYURhdGVTdHJpbmc7CisgICAgcHJpdmF0ZSBTdHJpbmcgYVRpbWVTdHJpbmc7CisgICAgcHJpdmF0ZSBTdHJpbmcgYW5FU1RUaW1lU3RyaW5nOworICAgIHByaXZhdGUgU3RyaW5nIGFEYXRlVGltZVN0cmluZzsKKyAgICBwcml2YXRlIFN0cmluZyBhU2hvcnREYXRlVGltZVN0cmluZzsKKyAgICBwcml2YXRlIFN0cmluZyBhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdCBhREY7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgYUJ1ZjsKKyAgICBwcml2YXRlIEZpZWxkUG9zaXRpb24gYW5GUDsKKyAgICAgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyIGdjYWwgPSBuZXcgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGdjYWwuY2xlYXIoKTsKKyAgICAgICAgZ2NhbC5zZXQoamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLllFQVIsIDE5OTApOworICAgICAgICBnY2FsLnNldChqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuTU9OVEgsIGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhci5ERUNFTUJFUik7CisgICAgICAgIGdjYWwuc2V0KGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhci5EQVRFLCAxNyk7CisgICAgICAgIGdjYWwuc2V0KGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhci5IT1VSLCA1KTsKKyAgICAgICAgZ2NhbC5zZXQoamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLk1JTlVURSwgMTcpOworICAgICAgICBhQ2FsID0gbmV3IENhbGVuZGFyKGdjYWwpOworICAgICAgICBhbkVTVENhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGFuRVNUQ2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJFU1QiKSk7CisgICAgICAgIGFEYXRlID0gZ2NhbC5nZXRUaW1lKCk7CisgICAgICAgIGFEYXRlU3RyaW5nID0gIkRlYyAxNywgMTk5MCI7IC8vIG1lZGl1bSAtLSB0aGUgZGVmYXVsdAorICAgICAgICBhVGltZVN0cmluZyA9ICI1OjE3OjAwIEFNIjsgLy8gbWVkaXVtCisgICAgICAgIGFuRVNUVGltZVN0cmluZyA9ICI4OjE3OjAwIEFNIjsKKyAgICAgICAgYURhdGVUaW1lU3RyaW5nID0gIkRlYyAxNywgMTk5MCA1OjE3OjAwIEFNIjsgLy8gbWVkaXVtLCBtZWRpdW0KKyAgICAgICAgYURlZmF1bHRFU1REYXRlVGltZVN0cmluZyA9ICJEZWMgMTcsIDE5OTAgODoxNyBBTSI7IC8vIG1lZGl1bSwgc2hvcnQgLS0gdGhlIGRlZmF1bHQKKyAgICAgICAgYVNob3J0RGF0ZVRpbWVTdHJpbmcgPSAiMTIvMTcvOTAgNToxNyBBTSI7IC8vIHNob3J0LCBzaG9ydAorICAgICAgICBhREYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuVVMpOworICAgICAgICBhQnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBhbkZQID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5oYXNoQ29kZSgpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBlcSA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgdGVzdEVIQ1MoZGYsIGVxLCBhREYpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuRGF0ZUZvcm1hdChEYXRlRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0RGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpLCBkZik7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydEVxdWFsRGF0ZVN0cmluZyhTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgdm9pZCBhc3NlcnRFcXVhbERhdGVTdHJpbmcoU3RyaW5nIHN0cikgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVUaW1lU3RyaW5nLCBzdHIpOworICAgIH0KKyAgICAgICAgCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5mb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RGb3JtYXRPYmplY3RTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBhc3NlcnRFcXVhbERhdGVTdHJpbmcoYURGLmZvcm1hdChhRGF0ZSwgYUJ1ZiwgYW5GUCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZm9ybWF0KENhbGVuZGFyLCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RGb3JtYXRDYWxlbmRhclN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIGFzc2VydEVxdWFsRGF0ZVN0cmluZyhhREYuZm9ybWF0KGFDYWwsIGFCdWYsIGFuRlApKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmZvcm1hdChEYXRlLCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RGb3JtYXREYXRlU3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxEYXRlU3RyaW5nKGFERi5mb3JtYXQoYURhdGUsIGFCdWYsIGFuRlApKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmZvcm1hdChEYXRlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0Rm9ybWF0RGF0ZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxEYXRlU3RyaW5nKGFERi5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnBhcnNlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFBhcnNlU3RyaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZSwgYURGLnBhcnNlKGFEYXRlVGltZVN0cmluZykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQucGFyc2UoU3RyaW5nLCBDYWxlbmRhciwgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFBhcnNlU3RyaW5nQ2FsZW5kYXJQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBhREYucGFyc2UoYURhdGVUaW1lU3RyaW5nLCBhQ2FsLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZSwgYUNhbC5nZXRUaW1lKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQucGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0UGFyc2VTdHJpbmdQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGUsIGFERi5wYXJzZShhRGF0ZVRpbWVTdHJpbmcsIG5ldyBQYXJzZVBvc2l0aW9uKDApKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5wYXJzZU9iamVjdChTdHJpbmcsIFBhcnNlUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RQYXJzZU9iamVjdFN0cmluZ1BhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZSwgYURGLnBhcnNlT2JqZWN0KGFEYXRlVGltZVN0cmluZywgbmV3IFBhcnNlUG9zaXRpb24oMCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2UoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShpbnQpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2VJbnQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0pLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGludCwgTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZUluc3RhbmNlSW50TG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGludCwgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldFRpbWVJbnN0YW5jZUludFVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIFVMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVJbnN0YW5jZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVJbnN0YW5jZUludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlSW5zdGFuY2VJbnRMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVN0cmluZywgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlSW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgVUxvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2UoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQsIGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2VJbnRJbnQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIAorICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0Lk1FRElVTSkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGludCwgaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlVGltZUluc3RhbmNlSW50SW50TG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVUaW1lU3RyaW5nLCAKKyAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGludCwgaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZUludEludFVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIAorICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0Lk1FRElVTSwgVUxvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFTaG9ydERhdGVUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBJQ1VUZXN0Q2FzZS5hc3NlcnRBcnJheXNFcXVhbChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCksIGxvY2FsZXMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0Tm90TnVsbChsb2NhbGVzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuc2V0Q2FsZW5kYXIoQ2FsZW5kYXIpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RTZXRDYWxlbmRhcigpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJFU1QiKSk7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCI4OjE3IEFNIiwgZGYuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRDYWxlbmRhcigpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRDYWxlbmRhcigpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJFU1QiKSk7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGNhbCwgZGYuZ2V0Q2FsZW5kYXIoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5zZXROdW1iZXJGb3JtYXQoTnVtYmVyRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0U2V0TnVtYmVyRm9ybWF0KCkgeworICAgICAgICAvLyBubyBlYXN5IHdheSB0byB0ZXN0IGVmZmVjdCBvZiBzZXR0aW5nIHRoZSBudW1iZXIgZm9ybWF0CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCk7CisgICAgICAgIGRmLnNldE51bWJlckZvcm1hdChuZik7CisgICAgICAgIC8vIG5vdGUsIGNhbid0IGFjdHVhbGx5IFVTRSB0aGUgZGF0ZWZvcm1hdCBzaW5jZSBpdCBjaGFuZ2VzIHRoZSBjYWxlbmRhcgorICAgICAgICBhc3NlcnRFcXVhbHMobmYsIGRmLmdldE51bWJlckZvcm1hdCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldE51bWJlckZvcm1hdCgpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXROdW1iZXJGb3JtYXQoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0U2V0TnVtYmVyRm9ybWF0CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5zZXRUaW1lWm9uZShUaW1lWm9uZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFNldFRpbWVab25lKCkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCk7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpOworICAgICAgICBkZi5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgIGFzc2VydEVxdWFscygiODoxNyBBTSIsIGRmLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZVpvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZVpvbmUoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIik7CisgICAgICAgIGRmLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHR6LCBkZi5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnNldExlbmllbnQoYm9vbGVhbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFNldExlbmllbnQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBkZi5wYXJzZSgiMi8zMS85MCIpOyAvLyBzdWNjZWVkcywgZGVmYXVsdCBpcyBsZW5pZW50CisgICAgICAgIGRmLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGYucGFyc2UoIjIvMzEvOTAiKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oInN0cmljdCBwYXJzZSBzaG91bGQgaGF2ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gb2ssIHRoaXMgaXMgd2hhdCB3ZSBleHBlY3QKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuaXNMZW5pZW50KCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdElzTGVuaWVudCgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShkZi5pc0xlbmllbnQoKSk7CisgICAgICAgIGRmLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBhc3NlcnRGYWxzZShkZi5pc0xlbmllbnQoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIsIGludCwgTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlQ2FsZW5kYXJJbnRMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVN0cmluZywgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoYUNhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIsIGludCwgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVJbnN0YW5jZUNhbGVuZGFySW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShhQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgVUxvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoQ2FsZW5kYXIsIGludCwgTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZUluc3RhbmNlQ2FsZW5kYXJJbnRMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhbkVTVFRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGFuRVNUQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZUluc3RhbmNlQ2FsZW5kYXJJbnRVTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYW5FU1RUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShhbkVTVENhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIFVMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBpbnQsIExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2VDYWxlbmRhckludEludExvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShhbkVTVENhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuU0hPUlQsIExvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyLCBpbnQsIGludCwgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2VDYWxlbmRhckludEludFVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoYW5FU1RDYWwsIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0LlNIT1JULCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKENhbGVuZGFyLCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRJbnN0YW5jZUNhbGVuZGFyTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURlZmF1bHRFU1REYXRlVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShhbkVTVENhbCwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKENhbGVuZGFyLCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0SW5zdGFuY2VDYWxlbmRhclVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldEluc3RhbmNlKGFuRVNUQ2FsLCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKENhbGVuZGFyKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0SW5zdGFuY2VDYWxlbmRhcigpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoYW5FU1RDYWwpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKENhbGVuZGFyLCBpbnQpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlSW5zdGFuY2VDYWxlbmRhckludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShhQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoQ2FsZW5kYXIsIGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldFRpbWVJbnN0YW5jZUNhbGVuZGFySW50KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYW5FU1RUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShhbkVTVENhbCwgRGF0ZUZvcm1hdC5NRURJVU0pLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBpbnQpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlVGltZUluc3RhbmNlQ2FsZW5kYXJJbnRJbnQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoYW5FU1RDYWwsIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0LlNIT1JUKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnRvU3RyaW5nKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKGFERi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmNsb25lKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdENsb25lKCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hDb2RlCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5lcXVhbHMoT2JqZWN0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0RXF1YWxzT2JqZWN0KCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hDb2RlCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RlY2ltYWxGb3JtYXRTeW1ib2xzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RlY2ltYWxGb3JtYXRTeW1ib2xzVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZWU0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFN5bWJvbHNUZXN0LmphdmEKQEAgLTAsMCArMSwzNDQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0U3ltYm9sc1Rlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5oYXNoQ29kZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmczIgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmc24gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSQU5DRSk7CisJCXRlc3RFSENTKGRmcywgZGZzMiwgZGZzbik7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuRGVjaW1hbEZvcm1hdFN5bWJvbHMoRGVjaW1hbEZvcm1hdFN5bWJvbHMpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc0RlY2ltYWxGb3JtYXRTeW1ib2xzKCkgeworCQkvLyBpbXBsaWNpdGx5IHRlc3RlZCBldmVyeXdoZXJlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuRGVjaW1hbEZvcm1hdFN5bWJvbHMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOworCQlhc3NlcnRUcnVlKC0xICE9IGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLkRlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzTG9jYWxlKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0VHJ1ZSgtMSAhPSBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5EZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNVTG9jYWxlKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydFRydWUoLTEgIT0gZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0WmVyb0RpZ2l0KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFplcm9EaWdpdCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoJzAnLCBkZnMuZ2V0WmVyb0RpZ2l0KCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldFplcm9EaWdpdChjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0WmVyb0RpZ2l0KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0WmVyb0RpZ2l0KCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXRaZXJvRGlnaXQodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0WmVyb0RpZ2l0KCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEdyb3VwaW5nU2VwYXJhdG9yKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnLCcsIGRmcy5nZXRHcm91cGluZ1NlcGFyYXRvcigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRHcm91cGluZ1NlcGFyYXRvcihjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0R3JvdXBpbmdTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0R3JvdXBpbmdTZXBhcmF0b3IodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREZWNpbWFsU2VwYXJhdG9yKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnLicsIGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldERlY2ltYWxTZXBhcmF0b3IoY2hhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldERlY2ltYWxTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXREZWNpbWFsU2VwYXJhdG9yKHZhbHVlMSk7CisJCWNoYXIgcmVzdWx0ID0gZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0UGVyTWlsbCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRQZXJNaWxsKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnXHUyMDMwJywgZGZzLmdldFBlck1pbGwoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0UGVyTWlsbChjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0UGVyTWlsbCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldFBlck1pbGwoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldFBlck1pbGwodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0UGVyTWlsbCgpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRQZXJjZW50KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFBlcmNlbnQoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCclJywgZGZzLmdldFBlcmNlbnQoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0UGVyY2VudChjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0UGVyY2VudCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldFBlcmNlbnQoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldFBlcmNlbnQodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0UGVyY2VudCgpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXREaWdpdCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaWdpdCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoJyMnLCBkZnMuZ2V0RGlnaXQoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0RGlnaXQoY2hhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldERpZ2l0KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0RGlnaXQoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldERpZ2l0KHZhbHVlMSk7CisJCWNoYXIgcmVzdWx0ID0gZGZzLmdldERpZ2l0KCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldFBhdHRlcm5TZXBhcmF0b3IoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0UGF0dGVyblNlcGFyYXRvcigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoJzsnLCBkZnMuZ2V0UGF0dGVyblNlcGFyYXRvcigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRQYXR0ZXJuU2VwYXJhdG9yKGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRQYXR0ZXJuU2VwYXJhdG9yKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0UGF0dGVyblNlcGFyYXRvcigpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0UGF0dGVyblNlcGFyYXRvcih2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldEluZmluaXR5KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluZmluaXR5KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiXHUyMjFlIiwgZGZzLmdldEluZmluaXR5KCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldEluZmluaXR5KFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEluZmluaXR5KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCVN0cmluZyB2YWx1ZSA9IGRmcy5nZXRJbmZpbml0eSgpOworCQlTdHJpbmcgdmFsdWUxID0gdmFsdWUgKyAiISI7CisJCWRmcy5zZXRJbmZpbml0eSh2YWx1ZTEpOworCQlTdHJpbmcgcmVzdWx0ID0gZGZzLmdldEluZmluaXR5KCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldE5hTigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXROYU4oKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0TmFOKCkpOyAvLyBqYXZhIHJldHVybnMgbWlzc2luZyBjaGFyYWN0ZXI/Pz8KKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXROYU4oU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0TmFOKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCVN0cmluZyB2YWx1ZSA9IGRmcy5nZXROYU4oKTsKKwkJU3RyaW5nIHZhbHVlMSA9IHZhbHVlICsgIiEiOworCQlkZnMuc2V0TmFOKHZhbHVlMSk7CisJCVN0cmluZyByZXN1bHQgPSBkZnMuZ2V0TmFOKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldE1pbnVzU2lnbigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNaW51c1NpZ24oKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCctJywgZGZzLmdldE1pbnVzU2lnbigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRNaW51c1NpZ24oY2hhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldE1pbnVzU2lnbigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldE1pbnVzU2lnbigpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0TWludXNTaWduKHZhbHVlMSk7CisJCWNoYXIgcmVzdWx0ID0gZGZzLmdldE1pbnVzU2lnbigpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRDdXJyZW5jeVN5bWJvbCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRDdXJyZW5jeVN5bWJvbCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoIiQiLCBkZnMuZ2V0Q3VycmVuY3lTeW1ib2woKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0Q3VycmVuY3lTeW1ib2woU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0Q3VycmVuY3lTeW1ib2woKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJU3RyaW5nIHZhbHVlID0gZGZzLmdldEN1cnJlbmN5U3ltYm9sKCk7CisJCVN0cmluZyB2YWx1ZTEgPSB2YWx1ZSArICIhIjsKKwkJZGZzLnNldEN1cnJlbmN5U3ltYm9sKHZhbHVlMSk7CisJCVN0cmluZyByZXN1bHQgPSBkZnMuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoIlVTRCIsIGRmcy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlTdHJpbmcgdmFsdWUgPSBkZnMuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCk7CisJCVN0cmluZyB2YWx1ZTEgPSB2YWx1ZSArICIhIjsKKwkJZGZzLnNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCh2YWx1ZTEpOworCQlTdHJpbmcgcmVzdWx0ID0gZGZzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnLicsIGRmcy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcih2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuY2xvbmUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisJCS8vIHRlc3RlZCBpbiB0ZXN0SGFzaGNvZGUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5lcXVhbHMoT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RXF1YWxzT2JqZWN0KCkgeworCQkvLyB0ZXN0ZWQgaW4gdGVzdEhhc2hjb2RlCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RlY2ltYWxGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWE5ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RlY2ltYWxGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSwyNDIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHM7CisKK3B1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0VGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGxtYXggPSBMb25nLk1BWF9WQUxVRTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgZHNtYWxsID0gMjMuMzM7CisgICAgICAgIAorICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMC4wMCIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmMiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwLjAwIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGZuID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIzAuMDAiKTsKKyAgICAgICAgZGZuLnNldE5lZ2F0aXZlUHJlZml4KGRmbi5nZXROZWdhdGl2ZVByZWZpeCgpICsgJyEnKTsKKyAgICAgICAgdGVzdEVIQ1MoZGYsIGRmMiwgZGZuKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LkRlY2ltYWxGb3JtYXQoRGVjaW1hbEZvcm1hdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXREZWNpbWFsRm9ybWF0KCkgeworICAgICAgICAvLyB0ZXN0ZWQgaW1wbGljaXRseQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuRGVjaW1hbEZvcm1hdCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCI5LDIyMywzNzIsMDM2LDg1NCw3NzUsODA3IiwgZGYuZm9ybWF0KGxtYXgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LkRlY2ltYWxGb3JtYXQoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGVjaW1hbEZvcm1hdFN0cmluZygpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wMDAiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIyMy4zMzAiLCBkZi5mb3JtYXQoZHNtYWxsKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5EZWNpbWFsRm9ybWF0KFN0cmluZywgRGVjaW1hbEZvcm1hdFN5bWJvbHMpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3RyaW5nRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wMDAiLCBzeW0pOworICAgICAgICBhc3NlcnRFcXVhbHMoIjIzLDMzMCIsIGRmLmZvcm1hdChkc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuMDAwIiwgc3ltKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bSwgZGYuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgZGYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMobmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkFOQ0UpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIyMywzMyIsIGRmLmZvcm1hdChkc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldFBvc2l0aXZlUHJlZml4KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFBvc2l0aXZlUHJlZml4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIisjLCMjMC4jOy0jLCMjMC4jIik7CisgICAgICAgIGFzc2VydEVxdWFscygiKyIsIGRmLmdldFBvc2l0aXZlUHJlZml4KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuc2V0UG9zaXRpdmVQcmVmaXgoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0UG9zaXRpdmVQcmVmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiM7LSMsIyMwLiMiKTsKKyAgICAgICAgZGYuc2V0UG9zaXRpdmVQcmVmaXgoIj8iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCI/MjMuMyIsIGRmLmZvcm1hdChkc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldE5lZ2F0aXZlUHJlZml4KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE5lZ2F0aXZlUHJlZml4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIisjLCMjMC4jOy0jLCMjMC4jIik7CisgICAgICAgIGFzc2VydEVxdWFscygiLSIsIGRmLmdldE5lZ2F0aXZlUHJlZml4KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuc2V0TmVnYXRpdmVQcmVmaXgoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0TmVnYXRpdmVQcmVmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiM7LSMsIyMwLiMiKTsKKyAgICAgICAgZGYuc2V0TmVnYXRpdmVQcmVmaXgoIn4iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ+MjMuMyIsIGRmLmZvcm1hdCgtZHNtYWxsKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRQb3NpdGl2ZVN1ZmZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIyoqOy0jLCMjMC4jfn4iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIqKiIsIGRmLmdldFBvc2l0aXZlU3VmZml4KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuc2V0UG9zaXRpdmVTdWZmaXgoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0UG9zaXRpdmVTdWZmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiM7LSMsIyMwLiMiKTsKKyAgICAgICAgZGYuc2V0UG9zaXRpdmVTdWZmaXgoIioqIik7CisgICAgICAgIGFzc2VydEVxdWFscygiKzIzLjMqKiIsIGRmLmZvcm1hdChkc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldE5lZ2F0aXZlU3VmZml4KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE5lZ2F0aXZlU3VmZml4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIisjLCMjMC4jKio7LSMsIyMwLiN+fiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIn5+IiwgZGYuZ2V0TmVnYXRpdmVTdWZmaXgoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXROZWdhdGl2ZVN1ZmZpeChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXROZWdhdGl2ZVN1ZmZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIzstIywjIzAuIyIpOworICAgICAgICBkZi5zZXROZWdhdGl2ZVN1ZmZpeCgifn4iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCItMjMuM35+IiwgZGYuZm9ybWF0KC1kc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldE11bHRpcGxpZXIoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TXVsdGlwbGllcigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIlMDAwIik7CisgICAgICAgIGRmLnNldE11bHRpcGxpZXIoMTAwMCk7CisgICAgICAgIGFzc2VydEVxdWFscygxMDAwLCBkZi5nZXRNdWx0aXBsaWVyKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuc2V0TXVsdGlwbGllcihpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRNdWx0aXBsaWVyKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiUwMDAiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIlMDEyIiwgZGYuZm9ybWF0KC4xMjMpKTsKKyAgICAgICAgZGYuc2V0TXVsdGlwbGllcigxMDAwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIlMTIzIiwgZGYuZm9ybWF0KC4xMjMpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldEdyb3VwaW5nU2l6ZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRHcm91cGluZ1NpemUoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMC4jIik7CisgICAgICAgIGFzc2VydEVxdWFscygyLCBkZi5nZXRHcm91cGluZ1NpemUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXRHcm91cGluZ1NpemUoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0R3JvdXBpbmdTaXplKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIik7CisgICAgICAgIGFzc2VydEVxdWFscygiMSwyMzQsNTY3Ljg5IiwgZGYuZm9ybWF0KDEyMzQ1NjcuODkpKTsKKyAgICAgICAgZGYuc2V0R3JvdXBpbmdTaXplKDIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEsMjMsNDUsNjcuODkiLCBkZi5mb3JtYXQoMTIzNDU2Ny44OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIik7CisgICAgICAgIGRmLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihmYWxzZSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMSIsIGRmLmZvcm1hdCgxKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMS4yIiwgZGYuZm9ybWF0KDEuMikpOworICAgICAgICBkZi5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMS4iLCBkZi5mb3JtYXQoMSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGJvb2xlYW4pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIik7CisgICAgICAgIGRmLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihmYWxzZSk7CisgICAgICAgIGFzc2VydEZhbHNlKGRmLmlzRGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKCkpOworICAgICAgICBkZi5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGFzc2VydFRydWUoZGYuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC50b1BhdHRlcm4oKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9QYXR0ZXJuKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIik7CisgICAgICAgIGFzc2VydEVxdWFscygiIywjIzAuIyMiLCBkZi50b1BhdHRlcm4oKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC50b0xvY2FsaXplZFBhdHRlcm4oKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkFOQ0UpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIjLCMjMC4jIyIsIGRmLnRvUGF0dGVybigpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIjXHUwMGEwIyMwLCMjIiwgZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuYXBwbHlQYXR0ZXJuKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEFwcGx5UGF0dGVybigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4jIyIpOworICAgICAgICBkZi5hcHBseVBhdHRlcm4oIiMsMC4jIik7CisgICAgICAgIGFzc2VydEVxdWFscygiMSwyLDMuNCIsIGRmLmZvcm1hdCgxMjMuNCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEFwcGx5TG9jYWxpemVkUGF0dGVybigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4jIyIsIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJBTkNFKSk7CisgICAgICAgIGRmLmFwcGx5TG9jYWxpemVkUGF0dGVybigiI1x1MDBhMDAsIyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjFcdTAwYTAyXHUwMGEwMyw0IiwgZGYuZm9ybWF0KDEyMy40KSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0lDVVRlc3RDYXNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvSUNVVGVzdENhc2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2YyMDAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0lDVVRlc3RDYXNlLmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkFycmF5OworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKKworLyoqCisgKiBJbXBsZW1lbnQgYm9pbGVycGxhdGUgdGVzdHMuCisgKiBDdXJyZW50bHkgdGhlcmUgaXMgb25seSBvbmUgbWV0aG9kLCB0ZXN0RUhDUywgd2hpY2ggdGVzdHMgZXF1YWxzLCBoYXNoQ29kZSwgCisgKiBjbG9uZSwgYW5kIHNlcmlhbGl6YXRpb24uCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBJQ1VUZXN0Q2FzZSBleHRlbmRzIFRlc3RDYXNlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3RbXSBFTVBUWV9BUkdTID0ge307CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ2xhc3NbXSBFTVBUWV9DTEFTU0VTID0ge307CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBvbGRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVMb2NhbGUgb2xkVUxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEudXRpbC5UaW1lWm9uZSBvbGRKVGltZVpvbmUgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRpbWVab25lIG9sZElUaW1lWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAvLyBUT0RPOiB3aGF0J3MgdGhlIGJlc3Qgd2F5IHRvIGNoZWNrIHRoaXM/CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIHRlc3RpbmdXcmFwcGVyID0gdHJ1ZTsKKworICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlLlVTKTsKKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lLnNldERlZmF1bHQoamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKSk7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpKTsKKyAgICB9CisgICAgICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHRlYXJEb3duKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChvbGRVTG9jYWxlKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQob2xkTG9jYWxlKTsKKyAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChvbGRJVGltZVpvbmUpOworICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChvbGRKVGltZVpvbmUpOworICAgICAgICBzdXBlci50ZWFyRG93bigpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCB0ZXN0ID0gbmV3IE9iamVjdCgpOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBc3NlcnQgdGhhdCB0d28gb2JqZWN0cyBhcmUgX25vdF8gZXF1YWwuICBDdXJpb3VzbHkgbWlzc2luZyBmcm9tIEFzc2VydC4KKyAgICAgKiBAcGFyYW0gbGhzIGFuIG9iamVjdCB0byB0ZXN0LCBtYXkgYmUgbnVsbAorICAgICAqIEBwYXJhbSByaHMgYW4gb2JqZWN0IHRvIHRlc3QsIG1heSBiZSBudWxsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFzc2VydE5vdEVxdWFsKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgaWYgKGxocyA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAocmhzID09IG51bGwpIGZhaWwoIm51bGwgZXF1YWxzIG51bGwiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsaHMuZXF1YWxzKHJocykpIHsKKyAgICAgICAgICAgICAgICBmYWlsKGxocy50b1N0cmluZygpICsgIiBlcXVhbHMgIiArIHJocyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NlcnROb3RFcXVhbChsb25nIGxocywgbG9uZyByaHMpIHsKKyAgICAgICAgaWYgKGxocyA9PSByaHMpIHsKKyAgICAgICAgICAgIGZhaWwoInZhbHVlcyBhcmUgZXF1YWw6ICIgKyBsaHMpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHdoZXRoZXIgZXF1YWxpdHksIGhhc2hDb2RlLCBjbG9uZSwgYW5kIHNlcmlhbGl6YXRpb24gd29yayBhcyBleHBlY3RlZC4gIAorICAgICAqIEVxdWFscyhPYmplY3QpIGlzIGFzc3VtZWQgdG8gcmV0dXJuIGZhbHNlIChub3QgdGhyb3cgYW4gZXhjZXB0aW9uKSBpZiBwYXNzZWQgCisgICAgICogbnVsbCBvciBhbiBvYmplY3Qgb2YgYW4gaW5jb21wYXRpYmxlIGNsYXNzLgorICAgICAqIEhhc2hjb2RlcyBtdXN0IGJlIGVxdWFsIGlmZiB0aGUgdHdvIG9iamVjdHMgY29tcGFyZSBlcXVhbC4gIE5vIGF0dGVtcHQgaXMgbWFkZSB0bworICAgICAqIGV2YWx1YXRlIHRoZSBxdWFsaXR5IG9mIHRoZSBoYXNoY29kZSBkaXN0cmlidXRpb24sIHNvIChpbiBwYXJ0aWN1bGFyKSBkZWdlbmVyYXRlIAorICAgICAqIGhhc2hjb2RlIGltcGxlbWVudGF0aW9ucyB3aWxsIHBhc3MgdGhpcyB0ZXN0LgorICAgICAqIENsb25lIHdpbGwgYmUgdGVzdGVkIGlmIHRoZSBtZXRob2QgImNsb25lIiBpcyBwdWJsaWMgb24gdGhlIGNsYXNzIG9mIG9iai4gIAorICAgICAqIEl0IGlzIGFzc3VtZWQgdG8gcmV0dXJuIGFuIG9iamVjdCB0aGF0IGNvbXBhcmVzIGVxdWFsIHRvIG9iai4KKyAgICAgKiBTZXJpYWxpemF0aW9uIHdpbGwgYmUgdGVzdGVkIGlmIG9iamVjdCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSBvciBFeHRlcm5hbGl6YWJsZS4KKyAgICAgKiBJdCBpcyBhc3N1bWVkIHRoZSBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZCBvYmplY3QgY29tcGFyZXMgZXF1YWwgdG8gb2JqLgorICAgICAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byB0ZXN0CisgICAgICogQHBhcmFtIGVxIGFuIG9iamVjdCB0aGF0IHNob3VsZCBjb21wYXJlIGVxdWFsIHRvLCBidXQgaXMgbm90IHRoZSBzYW1lIGFzLCBvYmouICAKKyAgICAgKiAgICAgaXQgc2hvdWxkIGJlIGFzc2lnbmFibGUgdG8gdGhlIGNsYXNzIG9mIG9iai4KKyAgICAgKiBAcGFyYW0gbmVxIGEgbm9uLW51bGwgb2JqZWN0IHRoYXQgc2hvdWxkIG5vdCBjb21wYXJlIGVxdWFsIHRvIG9iai4gIAorICAgICAqICAgICBpdCBzaG91bGQgYmUgYXNzaWduYWJsZSB0byB0aGUgY2xhc3Mgb2Ygb2JqLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0RUhDUyhPYmplY3Qgb2JqLCBPYmplY3QgZXEsIE9iamVjdCBuZXEpIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGVxID09IG51bGwgfHwgbmVxID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIENsYXNzIGNscyA9IG9iai5nZXRDbGFzcygpOworICAgICAgICBpZiAoIShjbHMuaXNBc3NpZ25hYmxlRnJvbShlcS5nZXRDbGFzcygpKSAmJiBjbHMuaXNBc3NpZ25hYmxlRnJvbShuZXEuZ2V0Q2xhc3MoKSkpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bmFzc2lnbmFibGUgY2xhc3NlcyIpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIHJlZmxleGl2ZQorICAgICAgICBhc3NlcnRFcXVhbHMob2JqLCBvYmopOworICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBzaG91bGQgcmV0dXJuIGZhbHNlLCBub3QgdGhyb3cgZXhjZXB0aW9uCisgICAgICAgIGFzc2VydE5vdEVxdWFsKG9iaiwgdGVzdCk7CisgICAgICAgIGFzc2VydE5vdEVxdWFsKG9iaiwgbnVsbCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGNvbW11dGF0aXZlCisgICAgICAgIGFzc2VydEVxdWFscyhvYmosIGVxKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVxLCBvYmopOworICAgICAgICAgICAgICAgIAorICAgICAgICBhc3NlcnROb3RFcXVhbChvYmosIG5lcSk7CisgICAgICAgIGFzc2VydE5vdEVxdWFsKG5lcSwgb2JqKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gZXF1YWwgb2JqZWN0cyBNVVNUIGhhdmUgZXF1YWwgaGFzaGVzLCB1bmVxdWFsIG9iamVjdHMgTUFZIGhhdmUgZXF1YWwgaGFzaGVzCisgICAgICAgIGFzc2VydEVxdWFscyhvYmouaGFzaENvZGUoKSwgZXEuaGFzaENvZGUoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIE9iamVjdCBjbG9uZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBsb29rIGZvciBwdWJsaWMgY2xvbmUgbWV0aG9kIGFuZCBjYWxsIGl0IGlmIGF2YWlsYWJsZQorICAgICAgICAgICAgTWV0aG9kIG1ldGhvZF9jbG9uZSA9IGNscy5nZXRNZXRob2QoImNsb25lIiwgRU1QVFlfQ0xBU1NFUyk7CisgICAgICAgICAgICBjbG9uZSA9IG1ldGhvZF9jbG9uZS5pbnZva2Uob2JqLCBFTVBUWV9BUkdTKTsKKyAgICAgICAgICAgIGFzc2VydE5vdE51bGwoY2xvbmUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBvaworICAgICAgICB9CisgICAgICAgIGNhdGNoKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gb2sKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIG9rCisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKGNsb25lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscyhvYmosIGNsb25lKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscyhjbG9uZSwgb2JqKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgU2VyaWFsaXphYmxlIHx8IG9iaiBpbnN0YW5jZW9mIEV4dGVybmFsaXphYmxlKSB7CisgICAgICAgICAgICBPYmplY3Qgc2VyID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb29zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShib3MpOworICAgICAgICAgICAgICAgIG9vcy53cml0ZU9iamVjdChjbG9uZSk7CisgICAgICAgICAgICAgICAgb29zLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGJpcyA9IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShib3MudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGJpcyk7CisgICAgICAgICAgICAgICAgc2VyID0gb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBvaXMuY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKG9iaiwgc2VyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoc2VyLCBvYmopOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyhvYmouaGFzaENvZGUoKSwgc2VyLmhhc2hDb2RlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRmFpbCBpZiB0aGUgYXJyYXlzIGFyZSBub3QgZXF1YWwuICBUbyBiZSBlcXVhbCwgdGhlIGFycmF5cyBtdXN0CisgICAgICogYmUgdGhlIHNhbWUgbGVuZ3RoLCBhbmQgZWFjaCBlbGVtZW50IGluIHRoZSBsZWZ0IGFycmF5IG11c3QgY29tcGFyZQorICAgICAqIGVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgdGhlIHJpZ2h0IGFycmF5LgorICAgICAqIEFsc28gZmFpbHMgaWYgb25lIG9mIHRoZSBvYmplY3RzIGlzIG5vdCBhbiBhcnJheS4KKyAgICAgKiBAcGFyYW0gbGhzIHRoZSBsZWZ0IGFycmF5CisgICAgICogQHBhcmFtIHJocyB0aGUgcmlnaHQgYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXNzZXJ0QXJyYXlzRXF1YWwoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICBDbGFzcyBsY2xzID0gbGhzLmdldENsYXNzKCk7CisgICAgICAgIENsYXNzIHJjbHMgPSByaHMuZ2V0Q2xhc3MoKTsKKyAgICAgICAgaWYgKCEobGNscy5pc0FycmF5KCkgJiYgcmNscy5pc0FycmF5KCkpKSB7CisgICAgICAgICAgICBmYWlsKCJvYmplY3RzIGFyZSBub3QgYXJyYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGFycmF5c0FyZUVxdWFsKGxocywgcmhzKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICBmYWlsKHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGYWlsIGlmIHRoZSBhcnJheXMgYXJlIGVxdWFsLiAgQWxzbyBmYWlscyBpZiBvbmUgb3IgdGhlIG90aGVyIAorICAgICAqIGFyZ3VtZW50IGlzIG5vdCBhbiBhcnJheS4KKyAgICAgKiBAcGFyYW0gbGhzIHRoZSBsZWZ0IGFycmF5CisgICAgICogQHBhcmFtIHJocyB0aGUgcmlnaHQgYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXNzZXJ0QXJyYXlzTm90RXF1YWwoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICBDbGFzcyBsY2xzID0gbGhzLmdldENsYXNzKCk7CisgICAgICAgIENsYXNzIHJjbHMgPSByaHMuZ2V0Q2xhc3MoKTsKKyAgICAgICAgaWYgKCEobGNscy5pc0FycmF5KCkgJiYgcmNscy5pc0FycmF5KCkpKSB7CisgICAgICAgICAgICBmYWlsKCJvYmplY3RzIGFyZSBub3QgYXJyYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGFycmF5c0FyZUVxdWFsKGxocywgcmhzKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICBmYWlsKCJhcnJheXMgYXJlIGVxdWFsIik7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8vIHNsb3cgYnV0IGdlbmVyYWwKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgYXJyYXlzQXJlRXF1YWwoT2JqZWN0IGxoc2EsIE9iamVjdCByaHNhKSB7CisgICAgICAgIGludCBsaHNsID0gQXJyYXkuZ2V0TGVuZ3RoKGxoc2EpOworICAgICAgICBpbnQgcmhzbCA9IEFycmF5LmdldExlbmd0aChyaHNhKTsKKyAgICAgICAgaWYgKGxoc2wgIT0gcmhzbCkgeworICAgICAgICAgICAgcmV0dXJuICJsZW5ndGggIiArIGxoc2wgKyAiICE9ICIgKyByaHNsOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gbGhzYUEgPSBsaHNhLmdldENsYXNzKCkuZ2V0Q29tcG9uZW50VHlwZSgpLmlzQXJyYXkoKTsKKyAgICAgICAgYm9vbGVhbiByaHNhQSA9IHJoc2EuZ2V0Q2xhc3MoKS5nZXRDb21wb25lbnRUeXBlKCkuaXNBcnJheSgpOworICAgICAgICBpZiAobGhzYUEgIT0gcmhzYUEpIHsKKyAgICAgICAgICAgIHJldHVybiAobGhzYUEgPyAiIiA6ICJub24tIikgKyAiYXJyYXkgIT0gIiArIChyaHNhQSA/ICIiIDogIm5vbi0iKSArICJhcnJheSI7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaHNsOyArK2kpIHsKKyAgICAgICAgICAgIE9iamVjdCBsaHNlID0gQXJyYXkuZ2V0KGxoc2EsIGkpOworICAgICAgICAgICAgT2JqZWN0IHJoc2UgPSBBcnJheS5nZXQocmhzYSwgaSk7CisgICAgICAgICAgICBpZiAobGhzZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKHJoc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIm51bGwgIT0gIiArIHJoc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobGhzYUEpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGFycmF5c0FyZUVxdWFsKGxoc2UsIHJoc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuY2hhckF0KDApICE9ICdbJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICIgIiArIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiWyIgKyBpICsgIl0iICsgcmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFsaHNlLmVxdWFscyhyaHNlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxoc2UudG9TdHJpbmcoKSArICIgIT0gIiArIHJoc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgICAgICAKKyAgICAvLyBtdWNoIG1vcmUgcGFpbmZ1bCBhbmQgc2xvdyB0aGFuIGl0IHNob3VsZCBiZS4uLiBwYXJ0bHkgYmVjYXVzZSBvZiB0aGUKKyAgICAvLyBvZGRuZXNzIG9mIGNsb25lLCBwYXJ0bHkgYmVjYXVzZSBhcnJheXMgZG9uJ3QgcHJvdmlkZSBhIE1ldGhvZCBmb3IgCisgICAgLy8gJ2Nsb25lJyBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgdGhleSBpbXBsZW1lbnQgaXQgYW5kIG1ha2UgaXQgcHVibGljLgorICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IGNsb25lQ29tcGxleChPYmplY3Qgb2JqKSB7CisgICAgICAgIE9iamVjdCByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAob2JqICE9IG51bGwpIHsKKyAgICAgICAgICAgIENsYXNzIGNscyA9IG9iai5nZXRDbGFzcygpOworICAgICAgICAgICAgaWYgKGNscy5pc0FycmF5KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGVuID0gQXJyYXkuZ2V0TGVuZ3RoKG9iaik7CisgICAgICAgICAgICAgICAgQ2xhc3MgdHlwID0gY2xzLmdldENvbXBvbmVudFR5cGUoKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBBcnJheS5uZXdJbnN0YW5jZSh0eXAsIGxlbik7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBwcmltID0gdHlwLmlzUHJpbWl0aXZlKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgICAgICAgICBPYmplY3QgZWxlbSA9IEFycmF5LmdldChvYmosIGkpOworICAgICAgICAgICAgICAgICAgICBBcnJheS5zZXQocmVzdWx0LCBpLCBwcmltID8gZWxlbSA6IGNsb25lQ29tcGxleChlbGVtKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBvYmo7IC8vIGRlZmF1bHQKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBNZXRob2QgY2xvbmVNID0gY2xzLmdldE1ldGhvZCgiY2xvbmUiLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2xvbmVNLmludm9rZShvYmosIG51bGwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL01lc3NhZ2VGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvTWVzc2FnZUZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODM5MDUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL01lc3NhZ2VGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSwzMDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgTWVzc2FnZUZvcm1hdFRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgcGF0dGVybiA9ICJEZWxldGVkIHswLG51bWJlcn0gZmlsZXMgYXQgezEsdGltZSxzaG9ydH0gb24gezEsZGF0ZX0uIjsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBhbHRQYXR0ZXJuID0gIkRlbGV0ZWQgezAsICBudW1iZXIgfSBmaWxlcyBhdCB7MSwgdGltZSwgc2hvcnR9IG9uIHsxLCBkYXRlfS4iOworICAgIHByaXZhdGUgZmluYWwgRGF0ZSBkYXRlID0gbmV3IERhdGUoNzE2Njk4ODkwODM1TCk7CisgICAgcHJpdmF0ZSBmaW5hbCBOdW1iZXIgbnVtID0gbmV3IExvbmcoMzQ1Nik7CisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXSBhcmdzID0geyBudW0sIGRhdGUgfTsKKyAgICBwcml2YXRlIGZpbmFsIERhdGUgZGF0ZU9ubHkgPSBuZXcgRGF0ZSg3MTY2MjY4MDAwMDBMKTsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBlbmdsaXNoVGFyZ2V0ID0gIkRlbGV0ZWQgMyw0NTYgZmlsZXMgYXQgODowMSBQTSBvbiBTZXAgMTYsIDE5OTIuIjsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBnZXJtYW5UYXJnZXQgPSAiRGVsZXRlZCAzLjQ1NiBmaWxlcyBhdCAyMDowMSBvbiAxNi4wOS4xOTkyLiI7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbW9kaWZpZWRUYXJnZXQgPSAiRGVsZXRlZCAzLDQ1NiBmaWxlcyBhdCA4OjAxOjMwIFBNIFBEVCBvbiBTZXAgMTYsIDE5OTIuIjsKKyAgICAKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0Lmhhc2hDb2RlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZXEgPSBuZXcgTWVzc2FnZUZvcm1hdChhbHRQYXR0ZXJuKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBuZSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJEZWxldGVkICgwLCBudW1iZXIsIGN1cnJlbmN5fSBmaWxlcyBhdCB7MSwgdGltZX0gb24gezEsIGRhdGV9LiIpOworICAgICAgICB0ZXN0RUhDUyhtZiwgZXEsIG5lKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0Lk1lc3NhZ2VGb3JtYXQoTWVzc2FnZUZvcm1hdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdE1lc3NhZ2VGb3JtYXRNZXNzYWdlRm9ybWF0KCkgeworICAgICAgICAvLyBpbXBsaWNpdGx5IHRlc3RlZCBldmVyeXdoZXJlCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5NZXNzYWdlRm9ybWF0KFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdE1lc3NhZ2VGb3JtYXRTdHJpbmcoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVuZ2xpc2hUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5NZXNzYWdlRm9ybWF0KFN0cmluZywgTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TWVzc2FnZUZvcm1hdFN0cmluZ0xvY2FsZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBtZi5mb3JtYXQoYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuTWVzc2FnZUZvcm1hdChTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RNZXNzYWdlRm9ybWF0U3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIFVMb2NhbGUuVVMpOworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnNldExvY2FsZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRMb2NhbGVMb2NhbGUoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBtZi5zZXRMb2NhbGUoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBtZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGFzc2VydEVxdWFscyhnZXJtYW5UYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5zZXRMb2NhbGUoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldExvY2FsZVVMb2NhbGUoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBtZi5zZXRMb2NhbGUoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgbWYuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBhc3NlcnRFcXVhbHMoZ2VybWFuVGFyZ2V0LCBtZi5mb3JtYXQoYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZ2V0TG9jYWxlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExvY2FsZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIG1mLnNldExvY2FsZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhMb2NhbGUuR0VSTUFOWSwgbWYuZ2V0TG9jYWxlKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZ2V0VUxvY2FsZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRVTG9jYWxlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuc2V0TG9jYWxlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhVTG9jYWxlLkdFUk1BTlksIG1mLmdldFVMb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5hcHBseVBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlQYXR0ZXJuKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoImZvbyIpOworICAgICAgICBtZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBtZi5mb3JtYXQoYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQudG9QYXR0ZXJuKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFRvUGF0dGVybigpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KGFsdFBhdHRlcm4pOworICAgICAgICBhc3NlcnRFcXVhbHMocGF0dGVybiwgbWYudG9QYXR0ZXJuKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleChGb3JtYXRbXSknCisgICAgcHVibGljIHZvaWQgdGVzdFNldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKSB7CisgICAgICAgIC8vIHRoaXMgYXBpIGlzIGJyb2tlbi4gIGlmIHRoZSBzYW1lIGFyZ3VtZW50IGlzIHVzZWQgdHdpY2Ugd2l0aCB0d28gZGlmZmVyZW50CisgICAgICAgIC8vIGZvcm1hdHMsIHRoaXMgY2FuJ3QgYmUgdXNlZCwgc2luY2UgaXQgc2V0cyBvbmx5IG9uZSBmb3JtYXQgcGVyIGFyZ3VtZW50LgorICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgRm9ybWF0W10gZm9ybWF0cyA9IHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoKSwKKyAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpLAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKSwKKyAgICAgICAgfTsKKyAgICAgICAgbWYuc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleChmb3JtYXRzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGJyb2tlbkJ1dENvbmZvcm1hbnRUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorICAgICAqLworCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5zZXRGb3JtYXRzKEZvcm1hdFtdKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0Rm9ybWF0cygpIHsKKyAgICAgICAgLy8gdGhpcyBhcGksIHdoaWxlIGl0IGhhcyB0aGUgcHJvYmxlbSB0aGF0IHRoZSBvcmRlciBvZiBmb3JtYXRzIGRlcGVuZHMKKyAgICAgICAgLy8gb24gdGhlIG9yZGVyIGluIHRoZSBzdHJpbmcsIGF0IGxlYXN0IGxldHMgeW91IHNldCBhbGwgdGhlIGZvcm1hdHMuCisgICAgICAgIAorICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgRm9ybWF0W10gZm9ybWF0cyA9IHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoKSwKKyAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpLAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKSwKKyAgICAgICAgfTsKKyAgICAgICAgbWYuc2V0Rm9ybWF0cyhmb3JtYXRzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVuZ2xpc2hUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleChpbnQsIEZvcm1hdCknCisgICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXgoKSB7CisgICAgICAgIC8vIHNhbWUgcHJvYmxlbSwgb25jZSB5b3Ugc2V0IGEgZm9ybWF0IGZvciBhbiBhcmd1bWVudCwgeW91J3ZlIHNldCBhbGwgb2YgdGhlbQorICAgICAgICAKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIG1mLnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgxLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKSk7CisgICAgICAgIGFzc2VydEVxdWFscyhicm9rZW5CdXRDb25mb3JtYW50VGFyZ2V0LCBtZi5mb3JtYXQoYXJncykpOworCisgICAgfQorICAgICovCisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdChpbnQsIEZvcm1hdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldEZvcm1hdCgpIHsKKyAgICAgICAgLy8gYW5kIG9rIGFnYWluICAgICAgICAKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIG1mLnNldEZvcm1hdCgxLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG1vZGlmaWVkVGFyZ2V0LCBtZi5mb3JtYXQoYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCgpJworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgRm9ybWF0W10gZm9ybWF0cyA9IG1mLmdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGFzc2VydEVxdWFscyhmb3JtYXRzWzBdLCBuZik7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIExvY2FsZS5VUyk7CisgICAgICAgIGFzc2VydEVxdWFscyhmb3JtYXRzWzFdLCBkZik7CisgICAgfQorICAgICAqLworCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5nZXRGb3JtYXRzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEZvcm1hdHMoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0gbWYuZ2V0Rm9ybWF0cygpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMF0sIG5mKTsKKyAgICAgICAgRGF0ZUZvcm1hdCB0ZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIExvY2FsZS5VUyk7CisgICAgICAgIGFzc2VydEVxdWFscyhmb3JtYXRzWzFdLCB0Zik7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIExvY2FsZS5VUyk7CisgICAgICAgIGFzc2VydEVxdWFscyhmb3JtYXRzWzJdLCBkZik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5mb3JtYXQoT2JqZWN0W10sIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdE9iamVjdEFycmF5U3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbWYuZm9ybWF0KGFyZ3MsIGJ1ZiwgZnApOworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZm9ybWF0KFN0cmluZywgT2JqZWN0W10pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXRTdHJpbmdPYmplY3RBcnJheSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVuZ2xpc2hUYXJnZXQsIE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm4sIGFyZ3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmZvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdE9iamVjdFN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIG1mLmZvcm1hdCgoT2JqZWN0KWFyZ3MsIGJ1ZiwgZnApOworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQucGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0UGFyc2VTdHJpbmdQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDEpOworICAgICAgICBPYmplY3RbXSByZXN1bHQgPSBtZi5wYXJzZSgiISIgKyBlbmdsaXNoVGFyZ2V0LCBwcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhudW0sIHJlc3VsdFswXSk7CisgICAgICAgIGFzc2VydEVxdWFscyhkYXRlT25seSwgcmVzdWx0WzFdKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnBhcnNlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlU3RyaW5nKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE9iamVjdFtdIHJlc3VsdCA9IG1mLnBhcnNlKGVuZ2xpc2hUYXJnZXQpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKG51bSwgcmVzdWx0WzBdKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscyhkYXRlT25seSwgcmVzdWx0WzFdKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZmFpbChlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnBhcnNlT2JqZWN0KFN0cmluZywgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlT2JqZWN0U3RyaW5nUGFyc2VQb3NpdGlvbigpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgT2JqZWN0IHJlc3VsdCA9IG1mLnBhcnNlT2JqZWN0KGVuZ2xpc2hUYXJnZXQsIHBwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG51bSwgKChPYmplY3RbXSlyZXN1bHQpWzBdKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRhdGVPbmx5LCAoKE9iamVjdFtdKXJlc3VsdClbMV0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuYXV0b1F1b3RlQXBvc3Ryb3BoZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBdXRvUXVvdGVBcG9zdHJvcGhlKCkgeworICAgICAgICBTdHJpbmcgc3RyID0gIkxldCdzIG1lZXQgYXQgezEsdGltZSxoICdvJycgY2xvY2snfSBhdCBsJ09yYW5nZSBCbGV1ZSI7CisgICAgICAgIFN0cmluZyBwYXQgPSBNZXNzYWdlRm9ybWF0LmF1dG9RdW90ZUFwb3N0cm9waGUoc3RyKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdCwgTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG1mLmZvcm1hdChhcmdzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJMZXQncyBtZWV0IGF0IDggbycgY2xvY2sgYXQgbCdPcmFuZ2UgQmxldWUiLCByZXN1bHQpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkxldCcncyBtZWV0IGF0IHsxLHRpbWUsaCAnbycnIGNsb2NrJ30gYXQgbCcnT3JhbmdlIEJsZXVlIiwgcGF0KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmNsb25lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworICAgICAgICAvLyB0ZXN0ZWQgYWxyZWFkeSBpbiB0ZXN0SGFzaGNvZGUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmVxdWFscyhPYmplY3QpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisgICAgICAgIC8vIHRlc3RlZCBhbHJlYWR5IGluIHRlc3RIYXNoY29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQudG9TdHJpbmcoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIC8vIG5vIG5lZWQgdG8gdGVzdAorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9OdW1iZXJGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvTnVtYmVyRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NmFiMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvTnVtYmVyRm9ybWF0VGVzdC5qYXZhCkBAIC0wLDAgKzEsNDQxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuTnVtYmVyRm9ybWF0KE51bWJlckZvcm1hdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdE51bWJlckZvcm1hdCgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gbmV3IE51bWJlckZvcm1hdChqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMobmYsIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXRPYmplY3RTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBOdW1iZXIgbnVtID0gbmV3IExvbmcoMTIzNEwpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdChudW0sIGJ1ZiwgZnApOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEsMjM0IiwgYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnBhcnNlT2JqZWN0KFN0cmluZywgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlT2JqZWN0U3RyaW5nUGFyc2VQb3NpdGlvbigpIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBPYmplY3QgcmVzdWx0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UoIjEsMjM0IiwgcHApOworICAgICAgICBhc3NlcnRFcXVhbHMocmVzdWx0LCBuZXcgTG9uZygxMjM0KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZm9ybWF0KGRvdWJsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdERvdWJsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLDIzNC41NjciLCBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoMTIzNC41NjcpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQobG9uZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdExvbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygiMSwyMzQiLCBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoMTIzNEwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoQmlnSW50ZWdlciknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdEJpZ0ludGVnZXIoKSB7CisgICAgICAgIC8vIG5vdGUsIGphdmEgZG9lc24ndCBoYW5kbGUgYmlnaW50ZWdlciB3aXRoIGZ1bGwgcHJlY2lzaW9uLgorICAgICAgICBCaWdJbnRlZ2VyIGJpID0gbmV3IEJpZ0ludGVnZXIoIjEyMzQ1NiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYiLCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkuZm9ybWF0KGJpKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZm9ybWF0KGRvdWJsZSwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0RG91YmxlU3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYuNzg5IiwgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkuZm9ybWF0KDEyMzQ1Ni43ODksIGJ1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmZvcm1hdChsb25nLCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXRMb25nU3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYiLCBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoMTIzNDU2TCwgYnVmLCBmcCkudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZm9ybWF0KEJpZ0ludGVnZXIsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdEJpZ0ludGVnZXJTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICAvLyBub3RlLCBqYXZhIGRvZXNuJ3QgaGFuZGxlIGJpZ2ludGVnZXIgd2l0aCBmdWxsIHByZWNpc2lvbi4KKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBCaWdJbnRlZ2VyIGJpID0gbmV3IEJpZ0ludGVnZXIoIjEyMzQ1NiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYiLCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkuZm9ybWF0KGJpLCBidWYsIGZwKS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5wYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RQYXJzZVN0cmluZ1BhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBMb25nKDEyMzQ1NiksIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKCJ4eHgxMjMsNDU2eXl5IiwgcHApKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwLCBwcC5nZXRJbmRleCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5wYXJzZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RQYXJzZVN0cmluZygpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5wYXJzZSgiMTIzLDQ1Nix5eXkiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBMb25nKDEyMzQ1NiksIHJlc3VsdCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuaXNQYXJzZUludGVnZXJPbmx5KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdElzUGFyc2VJbnRlZ2VyT25seSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgICAgIGFzc2VydFRydWUobmYuaXNQYXJzZUludGVnZXJPbmx5KCkpOworICAgICAgICBuZi5zZXRQYXJzZUludGVnZXJPbmx5KGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UobmYuaXNQYXJzZUludGVnZXJPbmx5KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldFBhcnNlSW50ZWdlck9ubHkoYm9vbGVhbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldFBhcnNlSW50ZWdlck9ubHkoKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgc3RyID0gIjEyMy40NTYseXl5IjsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIGFzc2VydEVxdWFscyhuZXcgRG91YmxlKDEyMy40NTYpLCBuZi5wYXJzZShzdHIpKTsKKyAgICAgICAgbmYuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBMb25nKDEyMyksIG5mLnBhcnNlKHN0cikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlKCkgeworICAgICAgICAvLyB1c2VkIGV2ZXJ5d2hlcmUsIG5vIG5lZWQgdG8gdGVzdAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYiLCBuZi5mb3JtYXQoMTIzLjQ1NikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYiLCBuZi5mb3JtYXQoMTIzLjQ1NikpOyAgICAgICAgICAgIAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE51bWJlckluc3RhbmNlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMsNDU2Ljc4OSIsIG5mLmZvcm1hdCgxMjM0NTYuNzg5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TnVtYmVySW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1Niw3ODkiLCBuZi5mb3JtYXQoMTIzNDU2Ljc4OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXROdW1iZXJJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTYsNzg5IiwgbmYuZm9ybWF0KDEyMzQ1Ni43ODkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SW50ZWdlckluc3RhbmNlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NyIsIG5mLmZvcm1hdCgxMjM0NTYuNzg5KSk7IC8vIHJvdW5kcworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRJbnRlZ2VySW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTciLCBuZi5mb3JtYXQoMTIzNDU2Ljc4OSkpOyAvLyByb3VuZHMKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEludGVnZXJJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMuNDU3IiwgbmYuZm9ybWF0KDEyMzQ1Ni43ODkpKTsgLy8gcm91bmRzCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDdXJyZW5jeUluc3RhbmNlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiQxMjMsNDU2Ljk5IiwgbmYuZm9ybWF0KDEyMzQ1Ni45OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Q3VycmVuY3lJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTYsOTkggCIsIG5mLmZvcm1hdCgxMjM0NTYuOTkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDdXJyZW5jeUluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMuNDU2LDk5IIAiLCBuZi5mb3JtYXQoMTIzNDU2Ljk5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFBlcmNlbnRJbnN0YW5jZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYlIiwgbmYuZm9ybWF0KDEyMzQuNTYpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0UGVyY2VudEluc3RhbmNlTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMuNDU2JSIsIG5mLmZvcm1hdCgxMjM0LjU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRQZXJjZW50SW5zdGFuY2VVTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1NiUiLCBuZi5mb3JtYXQoMTIzNC41NikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRTY2llbnRpZmljSW5zdGFuY2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIuMTIzNDU2RTQiLCBuZi5mb3JtYXQoMTIzNC41NikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRTY2llbnRpZmljSW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiwxMjM0NTZFNCIsIG5mLmZvcm1hdCgxMjM0LjU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRTY2llbnRpZmljSW5zdGFuY2VVTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiLDEyMzQ1NkU0IiwgbmYuZm9ybWF0KDEyMzQuNTYpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIExvY2FsZVtdIGlsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBMb2NhbGVbXSBqbG9jYWxlcyA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyhqbG9jYWxlc1tpXSwgaWxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIFVMb2NhbGVbXSB1bG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIExvY2FsZVtdIGpsb2NhbGVzID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHVsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGpsb2NhbGVzW2ldLCB1bG9jYWxlc1tpXS50b0xvY2FsZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmlzR3JvdXBpbmdVc2VkKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdElzR3JvdXBpbmdVc2VkKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0R3JvdXBpbmdVc2VkKHRydWUpOworICAgICAgICBhc3NlcnRUcnVlKG5mLmlzR3JvdXBpbmdVc2VkKCkpOworICAgICAgICBuZi5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgICAgICBhc3NlcnRGYWxzZShuZi5pc0dyb3VwaW5nVXNlZCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5zZXRHcm91cGluZ1VzZWQoYm9vbGVhbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldEdyb3VwaW5nVXNlZCgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1Niw3ODkiLCBuZi5mb3JtYXQoMTIzNDU2Nzg5KSk7CisgICAgICAgIG5mLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzNDU2Nzg5IiwgbmYuZm9ybWF0KDEyMzQ1Njc4OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscyg0LCBuZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoNik7CisgICAgICAgIGFzc2VydEVxdWFscyg2LCBuZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDQpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjMsNDU2IiwgbmYuZm9ybWF0KDEyMzQ1NikpOyAvLyBoaWdoIGRpZ2l0cyB0cnVuY2F0ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDQpOworICAgICAgICBhc3NlcnRFcXVhbHMoNCwgbmYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSk7CisgICAgICAgIG5mLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDYpOworICAgICAgICBhc3NlcnRFcXVhbHMoNiwgbmYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuc2V0TWluaW11bUludGVnZXJEaWdpdHMoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0TWluaW11bUludGVnZXJEaWdpdHMoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIwLDAxMiIsIG5mLmZvcm1hdCgxMikpOyAvLyBwYWQgb3V0IHdpdGggemVybywgZ3JvdXBpbmcgc3RpbGwgdXNlZAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscyg0LCBuZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSk7CisgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyg2KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDYsIG5mLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDQpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEuMjM0NiIsIG5mLmZvcm1hdCgxLjIzNDU2NzgpKTsgLy8gbG93IGRpZ2l0cyByb3VuZGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDQsIG5mLmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDYpOworICAgICAgICBhc3NlcnRFcXVhbHMoNiwgbmYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMS4yMDAwIiwgbmYuZm9ybWF0KDEuMikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnRvU3RyaW5nKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0Lmhhc2hDb2RlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGVxID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZXEgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICAgICAgICAgIAorICAgICAgICBJQ1VUZXN0Q2FzZS50ZXN0RUhDUyhuZiwgZXEsIG5lcSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaENvZGUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5lcXVhbHMoT2JqZWN0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RXF1YWxzT2JqZWN0KCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hDb2RlCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1NpbXBsZURhdGVGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvU2ltcGxlRGF0ZUZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTA5MDI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1NpbXBsZURhdGVGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSwyMDIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBTaW1wbGVEYXRlRm9ybWF0VGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbWR5ID0gIk1NTSBkZCB5eXl5IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbWQyID0gIk1NTSBkZCB5eSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhteiA9ICInVGhlIHRpbWUgaXMnIEhIOm1tOnNzIHp6eiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhtem1keSA9IGhteiArICIgJ29uJyAiICsgbWR5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBobXptZHlTdHIgPSAiVGhlIHRpbWUgaXMgMTU6MDU6MjAgQ1NUIG9uIEphbiAxMCAyMDA2IjsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGltZVpvbmUgdHpjID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkNTVCIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRpbWVab25lIHR6cCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0emMpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIERhdGUgZGF0ZTsKKyAgICBzdGF0aWMgeworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgyMDA2LCAwLCAxMCwgMTUsIDUsIDIwKTsgLy8gYXJyZ2gsIGRvZXNuJ3QgY2xlYXIgbWlsbGlzCisgICAgICAgIGRhdGUgPSBjYWwuZ2V0VGltZSgpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuZm9ybWF0KENhbGVuZGFyLCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXRDYWxlbmRhclN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChobXptZHkpOworICAgICAgICBzZGYuZm9ybWF0KGNhbCwgYnVmLCBmcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhobXptZHlTdHIsIGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LnBhcnNlKFN0cmluZywgQ2FsZW5kYXIsIFBhcnNlUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RQYXJzZVN0cmluZ0NhbGVuZGFyUGFyc2VQb3NpdGlvbigpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodHpwKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChobXptZHkpOworICAgICAgICBzZGYucGFyc2UoaG16bWR5U3RyLCBjYWwsIHBwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRhdGUsIGNhbC5nZXRUaW1lKCkpOworICAgICAgICAvLyBub3RlOiBqYXZhIGRvZXNuJ3QgcmV0dXJuIHRoZSBwYXJzZWQgdGltZSB6b25lCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5jbG9uZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuU2ltcGxlRGF0ZUZvcm1hdCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGVEYXRlRm9ybWF0KCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGpzZGYgPSBuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGpzZGYuZm9ybWF0KGRhdGUpLCBzZGYuZm9ybWF0KGRhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LlNpbXBsZURhdGVGb3JtYXQoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2ltcGxlRGF0ZUZvcm1hdFN0cmluZygpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZHkpOworICAgICAgICBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBqc2RmID0gbmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KG1keSk7CisgICAgICAgIGFzc2VydEVxdWFscyhqc2RmLmZvcm1hdChkYXRlKSwgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5TaW1wbGVEYXRlRm9ybWF0KFN0cmluZywgTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2ltcGxlRGF0ZUZvcm1hdFN0cmluZ0xvY2FsZSgpIHsKKyAgICAgICAgTG9jYWxlIGwgPSBMb2NhbGUuSkFQQU47CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWR5LCBsKTsKKyAgICAgICAgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQganNkZiA9IG5ldyBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdChtZHksIGwpOworICAgICAgICBhc3NlcnRFcXVhbHMoanNkZi5mb3JtYXQoZGF0ZSksIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGVEYXRlRm9ybWF0U3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgVUxvY2FsZSBsID0gVUxvY2FsZS5KQVBBTjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZHksIGwpOworICAgICAgICBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBqc2RmID0gbmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KG1keSwgbC50b0xvY2FsZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGpzZGYuZm9ybWF0KGRhdGUpLCBzZGYuZm9ybWF0KGRhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LlNpbXBsZURhdGVGb3JtYXQoU3RyaW5nLCBEYXRlRm9ybWF0U3ltYm9scyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNpbXBsZURhdGVGb3JtYXRTdHJpbmdEYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgTG9jYWxlIGwgPSBMb2NhbGUuVVM7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhsKTsKKyAgICAgICAgamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzIGpkZnMgPSBuZXcgamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzKGwpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSwgZGZzKTsKKyAgICAgICAgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQganNkZiA9IG5ldyBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdChtZHksIGpkZnMpOworICAgICAgICBhc3NlcnRFcXVhbHMoanNkZi5mb3JtYXQoZGF0ZSksIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuc2V0MkRpZ2l0WWVhclN0YXJ0KERhdGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXQyRGlnaXRZZWFyU3RhcnQoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWQyKTsKKyAgICAgICAgc2RmLnNldDJEaWdpdFllYXJTdGFydChkYXRlKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZCA9IHNkZi5wYXJzZSgiSmFuIDE1IDA0Iik7CisgICAgICAgICAgICBhc3NlcnROb3RFcXVhbCgtMSwgZC50b1N0cmluZygpLmluZGV4T2YoIjIxMDQiKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICBmYWlsKHBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmdldDJEaWdpdFllYXJTdGFydCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXQyRGlnaXRZZWFyU3RhcnQoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWQyKTsKKyAgICAgICAgc2RmLnNldDJEaWdpdFllYXJTdGFydChkYXRlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRhdGUsIHNkZi5nZXQyRGlnaXRZZWFyU3RhcnQoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC50b1BhdHRlcm4oKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9QYXR0ZXJuKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSk7CisgICAgICAgIGFzc2VydEVxdWFscyhtZHksIHNkZi50b1BhdHRlcm4oKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC50b0xvY2FsaXplZFBhdHRlcm4oKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICBMb2NhbGUgbCA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWR5KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG1keSwgc2RmLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQobCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5hcHBseVBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlQYXR0ZXJuKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIHNkZi5zZXRUaW1lWm9uZSh0emMpOworICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKGhtem1keSk7CisgICAgICAgIGFzc2VydEVxdWFscyhobXptZHlTdHIsIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEFwcGx5TG9jYWxpemVkUGF0dGVybigpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICBzZGYuc2V0VGltZVpvbmUodHpjKTsKKyAgICAgICAgc2RmLmFwcGx5TG9jYWxpemVkUGF0dGVybihobXptZHkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaG16bWR5U3RyLCBzZGYuZm9ybWF0KGRhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmdldERhdGVGb3JtYXRTeW1ib2xzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERhdGVGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZHksIGRmcyk7CisgICAgICAgIGFzc2VydEVxdWFscyhkZnMsIHNkZi5nZXREYXRlRm9ybWF0U3ltYm9scygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LnNldERhdGVGb3JtYXRTeW1ib2xzKERhdGVGb3JtYXRTeW1ib2xzKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0RGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuSkFQQU4pOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGhtem1keSk7CisgICAgICAgIHNkZi5zZXREYXRlRm9ybWF0U3ltYm9scyhkZnMpOworICAgICAgICAvLyBhc3N1bWVzIEphcGFuZXNlIHN5bWJvbHMgZG8gbm90IGhhdmUgZ3JlZ29yaWFuIG1vbnRoIG5hbWVzCisgICAgICAgIGFzc2VydEVxdWFscygtMSwgc2RmLmZvcm1hdChkYXRlKS5pbmRleE9mKCJKYW4iKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1RpbWVab25lVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1RpbWVab25lVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZGFkNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVGltZVpvbmVUZXN0LmphdmEKQEAgLTAsMCArMSwyMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIFRpbWVab25lVGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmhhc2hDb2RlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworCQlUaW1lWm9uZSB0ejEgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCVRpbWVab25lIHR6MiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJVGltZVpvbmUgdHpuID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkNTVCIpOworCQl0ZXN0RUhDUyh0ejEsIHR6MiwgdHpuKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5UaW1lWm9uZShUaW1lWm9uZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFRpbWVab25lKCkgeworCQkvLyBpbXBsaWNpdGx5IHRlc3RlZCBldmVyeXdoZXJlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0T2Zmc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRPZmZzZXQoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlpbnQgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KDEsIDIwMDQsIDAsIDAxLCAxLCAwKTsKKwkJYXNzZXJ0RXF1YWxzKC0yODgwMDAwMCwgb2Zmc2V0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5zZXRSYXdPZmZzZXQoaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0UmF3T2Zmc2V0KCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJaW50IHZhbHVlID0gdHouZ2V0UmF3T2Zmc2V0KCk7CisJCWludCB2YWx1ZTEgPSB2YWx1ZSArIDEwMDAwMDsKKwkJdHouc2V0UmF3T2Zmc2V0KHZhbHVlMSk7CisJCWludCByZXN1bHQgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0UmF3T2Zmc2V0KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFJhd09mZnNldCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWludCBvZmZzZXQgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKwkJYXNzZXJ0RXF1YWxzKC0yODgwMDAwMCwgb2Zmc2V0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRJRCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJRCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUFNUIiwgdHouZ2V0SUQoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuc2V0SUQoU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SUQoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlTdHJpbmcgdmFsdWUxID0gdHouZ2V0SUQoKTsKKwkJU3RyaW5nIHZhbHVlMiA9IHZhbHVlMSArICIhIjsKKwkJdHouc2V0SUQodmFsdWUyKTsKKwkJU3RyaW5nIHJlc3VsdCA9IHR6LmdldElEKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlMSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMiwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREaXNwbGF5TmFtZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwgdHouZ2V0RGlzcGxheU5hbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVMb2NhbGUoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlhc3NlcnRFcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsIHR6LmdldERpc3BsYXlOYW1lKExvY2FsZS5VUykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldERpc3BsYXlOYW1lKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZVVMb2NhbGUoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlhc3NlcnRFcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsIHR6LmdldERpc3BsYXlOYW1lKFVMb2NhbGUuVVMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREaXNwbGF5TmFtZShib29sZWFuLCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUJvb2xlYW5JbnQoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlhc3NlcnRFcXVhbHMoIlBEVCIsIHR6LmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLlNIT1JUKSk7CisJCWFzc2VydEVxdWFscygiUGFjaWZpYyBEYXlsaWdodCBUaW1lIiwgdHouZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuTE9ORykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldERpc3BsYXlOYW1lKGJvb2xlYW4sIGludCwgTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVCb29sZWFuSW50TG9jYWxlKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKCJQRFQiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5TSE9SVCwgTG9jYWxlLlVTKSk7CisJCWFzc2VydEVxdWFscygiUGFjaWZpYyBEYXlsaWdodCBUaW1lIiwgdHouZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuTE9ORywgTG9jYWxlLlVTKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiwgaW50LCBVTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVCb29sZWFuSW50VUxvY2FsZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUERUIiwgdHouZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuU0hPUlQsIFVMb2NhbGUuVVMpKTsKKwkJYXNzZXJ0RXF1YWxzKCJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5MT05HLCBVTG9jYWxlLlVTKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RFNUU2F2aW5ncygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREU1RTYXZpbmdzKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKDM2MDAwMDAsIHR6LmdldERTVFNhdmluZ3MoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUudXNlRGF5bGlnaHRUaW1lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFVzZURheWxpZ2h0VGltZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydFRydWUodHoudXNlRGF5bGlnaHRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmluRGF5bGlnaHRUaW1lKERhdGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RJbkRheWxpZ2h0VGltZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMjAwNSwgMCwgMTcpOworCQlEYXRlIGRhdGUgPSBjYWwuZ2V0VGltZSgpOworCQlhc3NlcnRGYWxzZSh0ei5pbkRheWxpZ2h0VGltZShkYXRlKSk7CisJCWNhbC5zZXQoMjAwNSwgNiwgMTcpOworCQlkYXRlID0gY2FsLmdldFRpbWUoKTsKKwkJYXNzZXJ0VHJ1ZSh0ei5pbkRheWxpZ2h0VGltZShkYXRlKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0VGltZVpvbmUoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlSURzSW50KCkgeworCQlTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoLTI4ODAwMDAwKTsKKwkJYXNzZXJ0Tm90TnVsbChpZHMpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVJRHMoKSB7CisJCVN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworCQlhc3NlcnROb3ROdWxsKGlkcyk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREZWZhdWx0KCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKwkJYXNzZXJ0Tm90TnVsbCh0eik7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldERlZmF1bHQoKSB7CisJCVRpbWVab25lIHR6MSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKwkJU3RyaW5nIG5ld0NvZGUgPSAiUERUIi5lcXVhbHModHoxLmdldElEKCkpID8gIkNTVCIgOiAiUERUIjsKKwkJVGltZVpvbmUgdHoyID0gVGltZVpvbmUuZ2V0VGltZVpvbmUobmV3Q29kZSk7CisJCVRpbWVab25lLnNldERlZmF1bHQodHoyKTsKKwkJVGltZVpvbmUgcmVzdWx0ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCQlhc3NlcnROb3RFcXVhbCh0ejEsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh0ejIsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuaGFzU2FtZVJ1bGVzKFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzU2FtZVJ1bGVzKCkgeworCQlUaW1lWm9uZSB0ejEgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCVRpbWVab25lIHR6MiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisJCWFzc2VydFRydWUodHoxLmhhc1NhbWVSdWxlcyh0ejIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmVxdWFscyhPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0SGFzaENvZGUKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVUxvY2FsZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9VTG9jYWxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MzBkNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVUxvY2FsZVRlc3QuamF2YQpAQCAtMCwwICsxLDc0OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgVUxvY2FsZVRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisgICAgcHJpdmF0ZSBTdHJpbmcgc2FtcGxlTmFtZTsKKyAgICBwcml2YXRlIFN0cmluZyBsb25nVUxvY2FsZU5hbWU7CisgICAgcHJpdmF0ZSBTdHJpbmcgbG9uZ1VMb2NhbGVCYXNlbmFtZTsKKyAgICBwcml2YXRlIFN0cmluZyBub25Ob3JtYWxpemVkTmFtZTsKKyAgICBwcml2YXRlIFVMb2NhbGUgbG9uZ1VMb2NhbGU7CisgICAgcHJpdmF0ZSBMb2NhbGUgc2FtcGxlTG9jYWxlOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAT3ZlcnJpZGUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICBzYW1wbGVOYW1lID0gImxsX0NDX1ZWVlYiOworICAgICAgICBsb25nVUxvY2FsZU5hbWUgPSAibGxfU3Nzc19DQ19WVlZWQGNvbGxhdGlvbj1waG9uZWJvb2s7a2V5PXZhbHVlIjsKKyAgICAgICAgbG9uZ1VMb2NhbGVCYXNlbmFtZSA9IGxvbmdVTG9jYWxlTmFtZS5zdWJzdHJpbmcoMCwgbG9uZ1VMb2NhbGVOYW1lLmluZGV4T2YoJ0AnKSk7CisgICAgICAgIG5vbk5vcm1hbGl6ZWROYW1lID0gIkxMX3Nzc3NfY2NfVlZWVkAgS2V5ID0gdmFsdWUgOyBDb2xsYXRpb24gPSBwaG9uZWJvb2sgOyAiOworICAgICAgICBsb25nVUxvY2FsZSA9IG5ldyBVTG9jYWxlKGxvbmdVTG9jYWxlTmFtZSk7CisgICAgICAgIHNhbXBsZUxvY2FsZSA9IG5ldyBVTG9jYWxlKHNhbXBsZU5hbWUpLnRvTG9jYWxlKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuaGFzaENvZGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisgICAgICAgIFVMb2NhbGUgb2JqID0gVUxvY2FsZS5HRVJNQU5ZOworICAgICAgICBVTG9jYWxlIGVxID0gbmV3IFVMb2NhbGUoImRlX0RFIik7CisgICAgICAgIFVMb2NhbGUgbmVxID0gbmV3IFVMb2NhbGUoImRlX0RFX0ZSRU5DSCIpOworICAgICAgICAgICAgICAgIAorICAgICAgICBJQ1VUZXN0Q2FzZS50ZXN0RUhDUyhvYmosIGVxLCBuZXEpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5mb3JMb2NhbGUoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9yTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoVUxvY2FsZS5HRVJNQU5ZLCBVTG9jYWxlLmZvckxvY2FsZShMb2NhbGUuR0VSTUFOWSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5VTG9jYWxlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFVMb2NhbGVTdHJpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhVTG9jYWxlLkdFUk1BTiwgbmV3IFVMb2NhbGUoImRlIikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5VTG9jYWxlKFN0cmluZywgU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VUxvY2FsZVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOWSwgbmV3IFVMb2NhbGUoImRlIiwgIkRFIikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5VTG9jYWxlKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RVTG9jYWxlU3RyaW5nU3RyaW5nU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoc2FtcGxlTG9jYWxlLCBuZXcgVUxvY2FsZSgibGwiLCAiY2MiLCAiVlZWViIpLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5jcmVhdGVDYW5vbmljYWwoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlQ2Fub25pY2FsKCkgeworICAgICAgICBVTG9jYWxlIHJlc3VsdCA9IFVMb2NhbGUuY3JlYXRlQ2Fub25pY2FsKCJkZV9fUEhPTkVCT09LIik7CisgICAgICAgIGFzc2VydEVxdWFscyhuZXcgVUxvY2FsZSgiZGVAY29sbGF0aW9uPXBob25lYm9vayIpLCByZXN1bHQpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS50b0xvY2FsZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb0xvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNhbXBsZUxvY2FsZSwgbmV3IFVMb2NhbGUoImxsIiwgImNjIiwgIlZWVlYiKS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGVmYXVsdCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREZWZhdWx0KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoTG9jYWxlLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldERlZmF1bHQoKSB7CisgICAgICAgIExvY2FsZSBvbGRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlIG9sZFVMb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChsb25nVUxvY2FsZSk7CisgICAgICAgICAgICBJQ1VUZXN0Q2FzZS5hc3NlcnROb3RFcXVhbChMb2NhbGUuZ2V0RGVmYXVsdCgpLCBvbGRMb2NhbGUpOworICAgICAgICAgICAgSUNVVGVzdENhc2UuYXNzZXJ0Tm90RXF1YWwoVUxvY2FsZS5nZXREZWZhdWx0KCksIG9sZFVMb2NhbGUpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGxvbmdVTG9jYWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoc2FtcGxlTG9jYWxlLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChvbGRVTG9jYWxlKTsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG9sZExvY2FsZSk7IC8vIGluIGNhc2Ugb2Ygc29tZSBlcnJvcgorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmNsb25lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hjb2RlCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmVxdWFscyhPYmplY3QpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaGNvZGUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdWxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHModWxvY2FsZXNbaV0udG9Mb2NhbGUoKSwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gZWxzZSBub3RoaW5nIHRvIHRlc3QgZXhjZXB0IHRoYXQgdGhlIGZ1bmN0aW9uIHJldHVybmVkLgorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRJU09Db3VudHJpZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPQ291bnRyaWVzKCkgeworICAgICAgICBTdHJpbmdbXSB1Y291bnRyaWVzID0gVUxvY2FsZS5nZXRJU09Db3VudHJpZXMoKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCh1Y291bnRyaWVzKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICAvLyBrZWVwIG91ciBvd24gZGF0YSBmb3Igbm93CisgICAgICAgICAgICAvLyBvdXIgZGF0YSBkb2Vzbid0IG1hdGNoIGphdmEncyBzbyB0aGlzIHRlc3Qgd291bGQgZmFpbAorICAgICAgICAgICAgLy8gVE9ETzogZW5hYmxlIGlmIHdlIGRlY2lkZSB0byB1c2UgamF2YSdzIGRhdGEKKyAgICAgICAgICAgIC8vIFN0cmluZ1tdIGNvdW50cmllcyA9IExvY2FsZS5nZXRJU09Db3VudHJpZXMoKTsKKyAgICAgICAgICAgIC8vIFRlc3RCb2lsZXJwbGF0ZS5hc3NlcnRBcnJheXNFcXVhbCh1Y291bnRyaWVzLCBjb3VudHJpZXMpOworICAgICAgICB9CisgICAgICAgIC8vIGVsc2Ugbm90aGluZyB0byB0ZXN0IGV4Y2VwdCB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZC4KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPTGFuZ3VhZ2VzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldElTT0xhbmd1YWdlcygpIHsKKyAgICAgICAgU3RyaW5nW10gdWxhbmd1YWdlcyA9IFVMb2NhbGUuZ2V0SVNPTGFuZ3VhZ2VzKCk7CisgICAgICAgIGFzc2VydE5vdE51bGwodWxhbmd1YWdlcyk7CisgICAgICAgIGlmIChJQ1VUZXN0Q2FzZS50ZXN0aW5nV3JhcHBlcikgeworICAgICAgICAgICAgLy8ga2VlcCBvdXIgb3duIGRhdGEgZm9yIG5vdworICAgICAgICAgICAgLy8gb3VyIGRhdGEgZG9lc24ndCBtYXRjaCBqYXZhJ3Mgc28gdGhpcyB0ZXN0IHdvdWxkIGZhaWwKKyAgICAgICAgICAgIC8vIFRPRE86IGVuYWJsZSBpZiB3ZSBkZWNpZGUgdG8gdXNlIGphdmEncyBkYXRhCisgICAgICAgICAgICAvLyBTdHJpbmdbXSBsYW5ndWFnZXMgPSBMb2NhbGUuZ2V0SVNPTGFuZ3VhZ2VzKCk7CisgICAgICAgICAgICAvLyBUZXN0Qm9pbGVycGxhdGUuYXNzZXJ0QXJyYXlzRXF1YWwodWxhbmd1YWdlcywgbGFuZ3VhZ2VzKTsKKyAgICAgICAgfQorICAgICAgICAvLyBlbHNlIG5vdGhpbmcgdG8gdGVzdCBleGNlcHQgdGhhdCB0aGUgZnVuY3Rpb24gcmV0dXJuZWQuCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldExhbmd1YWdlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExhbmd1YWdlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoImxsIiwgbG9uZ1VMb2NhbGUuZ2V0TGFuZ3VhZ2UoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygibGwiLCBsb25nVUxvY2FsZS50b0xvY2FsZSgpLmdldExhbmd1YWdlKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRMYW5ndWFnZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRMYW5ndWFnZVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJsbCIsIFVMb2NhbGUuZ2V0TGFuZ3VhZ2UobG9uZ1VMb2NhbGUuZ2V0TmFtZSgpKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldFNjcmlwdCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRTY3JpcHQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygiU3NzcyIsIGxvbmdVTG9jYWxlLmdldFNjcmlwdCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0U2NyaXB0KFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjcmlwdFN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJTc3NzIiwgVUxvY2FsZS5nZXRTY3JpcHQobG9uZ1VMb2NhbGUuZ2V0TmFtZSgpKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldENvdW50cnkoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Q291bnRyeSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDQyIsIGxvbmdVTG9jYWxlLmdldENvdW50cnkoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiQ0MiLCBsb25nVUxvY2FsZS50b0xvY2FsZSgpLmdldENvdW50cnkoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldENvdW50cnkoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Q291bnRyeVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDQyIsIFVMb2NhbGUuZ2V0Q291bnRyeShsb25nVUxvY2FsZS5nZXROYW1lKCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0VmFyaWFudCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRWYXJpYW50KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIlZWVlYiLCBsb25nVUxvY2FsZS5nZXRWYXJpYW50KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIlZWVlYiLCBsb25nVUxvY2FsZS50b0xvY2FsZSgpLmdldFZhcmlhbnQoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldFZhcmlhbnQoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0VmFyaWFudFN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJWVlZWIiwgVUxvY2FsZS5nZXRWYXJpYW50KGxvbmdVTG9jYWxlLmdldE5hbWUoKSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRGYWxsYmFjayhTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRGYWxsYmFja1N0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOLCBVTG9jYWxlLmdldEZhbGxiYWNrKFVMb2NhbGUuR0VSTUFOWS5nZXROYW1lKCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RmFsbGJhY2soKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RmFsbGJhY2soKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhVTG9jYWxlLkdFUk1BTiwgVUxvY2FsZS5HRVJNQU5ZLmdldEZhbGxiYWNrKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRCYXNlTmFtZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGxvbmdVTG9jYWxlQmFzZW5hbWUsIGxvbmdVTG9jYWxlLmdldEJhc2VOYW1lKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRCYXNlTmFtZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRCYXNlTmFtZVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGxvbmdVTG9jYWxlQmFzZW5hbWUsIGxvbmdVTG9jYWxlLmdldEJhc2VOYW1lKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXROYW1lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE5hbWUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhsb25nVUxvY2FsZU5hbWUsIGxvbmdVTG9jYWxlLmdldE5hbWUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldE5hbWUoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmFtZVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGxvbmdVTG9jYWxlTmFtZSwgVUxvY2FsZS5nZXROYW1lKG5vbk5vcm1hbGl6ZWROYW1lKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLnRvU3RyaW5nKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGVOYW1lLCBsb25nVUxvY2FsZS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0S2V5d29yZHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0S2V5d29yZHMoKSB7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBsb25nVUxvY2FsZS5nZXRLZXl3b3JkcygpOworICAgICAgICBhc3NlcnRFcXVhbHMoaXRlci5uZXh0KCksICJjb2xsYXRpb24iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGl0ZXIubmV4dCgpLCAia2V5Iik7CisgICAgICAgIGFzc2VydEZhbHNlKGl0ZXIuaGFzTmV4dCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0S2V5d29yZHMoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0S2V5d29yZHNTdHJpbmcoKSB7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBVTG9jYWxlLmdldEtleXdvcmRzKG5vbk5vcm1hbGl6ZWROYW1lKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGl0ZXIubmV4dCgpLCAiY29sbGF0aW9uIik7CisgICAgICAgIGFzc2VydEVxdWFscyhpdGVyLm5leHQoKSwgImtleSIpOworICAgICAgICBhc3NlcnRGYWxzZShpdGVyLmhhc05leHQoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEtleXdvcmRWYWx1ZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3JkVmFsdWVTdHJpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygidmFsdWUiLCBsb25nVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUoImtleSIpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBsb25nVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUoImNvbGxhdGlvbiIpKTsKKyAgICAgICAgYXNzZXJ0TnVsbChsb25nVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUoInp6eXp4IikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3JkVmFsdWVTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygidmFsdWUiLCBVTG9jYWxlLmdldEtleXdvcmRWYWx1ZShsb25nVUxvY2FsZU5hbWUsICJrZXkiKSk7CisgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUobG9uZ1VMb2NhbGVOYW1lLCAiY29sbGF0aW9uIikpOworICAgICAgICBhc3NlcnROdWxsKFVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKGxvbmdVTG9jYWxlTmFtZSwgInp6eXp4IikpOworCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmNhbm9uaWNhbGl6ZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDYW5vbmljYWxpemUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygiZGVAY29sbGF0aW9uPXBob25lYm9vayIsIFVMb2NhbGUuY2Fub25pY2FsaXplKCJkZV9fUEhPTkVCT09LIikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5zZXRLZXl3b3JkVmFsdWUoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRLZXl3b3JkVmFsdWVTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFVMb2NhbGUgbXVuZ2VkID0gbG9uZ1VMb2NhbGUuc2V0S2V5d29yZFZhbHVlKCJrZXkiLCAiQyMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDIyIsIG11bmdlZC5nZXRLZXl3b3JkVmFsdWUoImtleSIpKTsKKyAgICAgICAgbXVuZ2VkID0gbXVuZ2VkLnNldEtleXdvcmRWYWx1ZSgienp5engiLCAiZ3J1ZSIpOworICAgICAgICBhc3NlcnRFcXVhbHMoImdydWUiLCBtdW5nZWQuZ2V0S2V5d29yZFZhbHVlKCJ6enl6eCIpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuc2V0S2V5d29yZFZhbHVlKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRLZXl3b3JkVmFsdWVTdHJpbmdTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBtdW5nZWQgPSBVTG9jYWxlLnNldEtleXdvcmRWYWx1ZShsb25nVUxvY2FsZU5hbWUsICJrZXkiLCAiQyMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDIyIsIFVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKG11bmdlZCwgImtleSIpKTsKKyAgICAgICAgbXVuZ2VkID0gVUxvY2FsZS5zZXRLZXl3b3JkVmFsdWUobXVuZ2VkLCAienp5engiLCAiZ3J1ZSIpOworICAgICAgICBhc3NlcnRFcXVhbHMoImdydWUiLCBVTG9jYWxlLmdldEtleXdvcmRWYWx1ZShtdW5nZWQsICJ6enl6eCIpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldElTTzNMYW5ndWFnZSgpIHsKKyAgICAgICAgU3RyaW5nIGlsID0gVUxvY2FsZS5HRVJNQU5ZLmdldElTTzNMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgamwgPSBMb2NhbGUuR0VSTUFOWS5nZXRJU08zTGFuZ3VhZ2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlsLCBqbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldElTTzNMYW5ndWFnZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRJU08zTGFuZ3VhZ2VTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpbCA9IFVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKFVMb2NhbGUuR0VSTUFOWS5nZXROYW1lKCkpOworICAgICAgICBTdHJpbmcgamwgPSBMb2NhbGUuR0VSTUFOWS5nZXRJU08zTGFuZ3VhZ2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlsLCBqbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldElTTzNDb3VudHJ5KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldElTTzNDb3VudHJ5KCkgeworICAgICAgICBTdHJpbmcgaWMgPSBVTG9jYWxlLkdFUk1BTlkuZ2V0SVNPM0NvdW50cnkoKTsKKyAgICAgICAgU3RyaW5nIGpjID0gTG9jYWxlLkdFUk1BTlkuZ2V0SVNPM0NvdW50cnkoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGljLCBqYyk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldElTTzNDb3VudHJ5KFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldElTTzNDb3VudHJ5U3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWMgPSBVTG9jYWxlLmdldElTTzNDb3VudHJ5KFVMb2NhbGUuR0VSTUFOWS5nZXROYW1lKCkpOworICAgICAgICBTdHJpbmcgamMgPSBMb2NhbGUuR0VSTUFOWS5nZXRJU08zQ291bnRyeSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWMsIGpjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlMYW5ndWFnZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkbCA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TGFuZ3VhZ2UoKTsKKyAgICAgICAgU3RyaW5nIGpkbCA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlMYW5ndWFnZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRsLCBqZGwpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlMYW5ndWFnZVVMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZGwgPSBVTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUxhbmd1YWdlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIFN0cmluZyBqZGwgPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TGFuZ3VhZ2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRsLCBqZGwpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TGFuZ3VhZ2VTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpZGwgPSBVTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShVTG9jYWxlLkdFUk1BTlkuZ2V0TmFtZSgpLCAiZGVfREUiKTsKKyAgICAgICAgU3RyaW5nIGpkbCA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlMYW5ndWFnZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGwsIGpkbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TGFuZ3VhZ2VTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaWRsID0gVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoVUxvY2FsZS5HRVJNQU5ZLmdldE5hbWUoKSwgVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgU3RyaW5nIGpkbCA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlMYW5ndWFnZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGwsIGpkbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheVNjcmlwdCgpIHsKKyAgICAgICAgU3RyaW5nIGlzID0gVUxvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLmdldERpc3BsYXlTY3JpcHQoKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlRyYWRpdGlvbmFsIENoaW5lc2UiLCBpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheVNjcmlwdFVMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpcyA9IFVMb2NhbGUuVFJBRElUSU9OQUxfQ0hJTkVTRS5nZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGlmIChJQ1VUZXN0Q2FzZS50ZXN0aW5nV3JhcHBlcikgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJIYW50IiwgaXMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVE9ETzogbG9vayB1cCBleHBlY3RlZCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJIYW50IiwgaXMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5U2NyaXB0U3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaXMgPSBVTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoInpoX0hhbnQiLCAiZGVfREUiKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBsb29rIHVwIGV4cGVjdGVkIHZhbHVlCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5U2NyaXB0U3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlzID0gVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KCJ6aF9IYW50IiwgVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBsb29rIHVwIGV4cGVjdGVkIHZhbHVlCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUNvdW50cnkoKSB7CisgICAgICAgIFN0cmluZyBpZGMgPSBVTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoKTsKKyAgICAgICAgU3RyaW5nIGpkYyA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlDb3VudHJ5KCk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGMsIGpkYyk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5Q291bnRyeVVMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZGMgPSBVTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgU3RyaW5nIGpkYyA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlDb3VudHJ5KExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkYywgamRjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5Q291bnRyeVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkYyA9IFVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoImRlX0RFIiwgImRlX0RFIik7CisgICAgICAgIFN0cmluZyBqZGMgPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5Q291bnRyeShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGMsIGpkYyk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlDb3VudHJ5U3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkYyA9IFVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoImRlX0RFIiwgVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgU3RyaW5nIGpkYyA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlDb3VudHJ5KExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkYywgamRjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheVZhcmlhbnQoKSB7CisgICAgICAgIFN0cmluZyBpZHYgPSBuZXcgVUxvY2FsZSgiZGVfREVfUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoKTsKKyAgICAgICAgU3RyaW5nIGpkdiA9IG5ldyBMb2NhbGUoImRlIiwgIkRFIiwgIlBIT05FQk9PSyIpLmdldERpc3BsYXlWYXJpYW50KCk7CisgICAgICAgIGFzc2VydEVxdWFscyhqZHYsIGlkdik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5VmFyaWFudFVMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZHYgPSBuZXcgVUxvY2FsZSgiZGVfREVfUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgU3RyaW5nIGpkdiA9IG5ldyBMb2NhbGUoImRlIiwgIkRFIiwgIlBIT05FQk9PSyIpLmdldERpc3BsYXlWYXJpYW50KExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGpkdiwgaWR2KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5VmFyaWFudFN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkdiA9IFVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoImRlX0RFX1BIT05FQk9PSyIsICJkZV9ERSIpOworICAgICAgICBTdHJpbmcgamR2ID0gbmV3IExvY2FsZSgiZGUiLCAiREUiLCAiUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoamR2LCBpZHYpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudChTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5VmFyaWFudFN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZHYgPSBVTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KCJkZV9ERV9QSE9ORUJPT0siLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamR2ID0gbmV3IExvY2FsZSgiZGUiLCAiREUiLCAiUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoamR2LCBpZHYpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFN0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoImNvbGxhdGlvbiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoImNvbGxhdGlvbiIsIGlkayk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKFN0cmluZywgU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUtleXdvcmRTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpZGsgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKCJjb2xsYXRpb24iLCAiZGVfREUiKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImNvbGxhdGlvbiIsIGlkayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHJlYWwgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiY29sbGF0aW9uIiwgaWRrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZChTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZGsgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKCJjb2xsYXRpb24iLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiY29sbGF0aW9uIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJjb2xsYXRpb24iLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUtleXdvcmRWYWx1ZVN0cmluZygpIHsKKyAgICAgICAgVUxvY2FsZSB1bCA9IG5ldyBVTG9jYWxlKCJkZV9ERUBjb2xsYXRpb249cGhvbmVib29rIik7CisgICAgICAgIFN0cmluZyBpZGsgPSB1bC5nZXREaXNwbGF5S2V5d29yZFZhbHVlKCJjb2xsYXRpb24iKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGlkayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHJlYWwgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlLZXl3b3JkVmFsdWVTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBVTG9jYWxlIHVsID0gbmV3IFVMb2NhbGUoImRlX0RFQGNvbGxhdGlvbj1waG9uZWJvb2siKTsKKyAgICAgICAgU3RyaW5nIGlkayA9IHVsLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoImNvbGxhdGlvbiIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGlmIChJQ1VUZXN0Q2FzZS50ZXN0aW5nV3JhcHBlcikgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBpZGspOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVE9ETzogZmluZCByZWFsIHZhbHVlCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGlkayk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcsIFN0cmluZywgU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSgiZGVfREVAY29sbGF0aW9uPXBob25lYm9vayIsICJjb2xsYXRpb24iLCAiZGVfREUiKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGlkayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHJlYWwgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZywgU3RyaW5nLCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZGsgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoImRlX0RFQGNvbGxhdGlvbj1waG9uZWJvb2siLCAiY29sbGF0aW9uIiwgVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGlkayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHJlYWwgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TmFtZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkbiA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICBTdHJpbmcgamRuID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkbiwgamRuKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkbiA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRuID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRuLCBqZG4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TmFtZShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lU3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWRuID0gVUxvY2FsZS5nZXREaXNwbGF5TmFtZSgiZGVfREUiLCAiZGVfREUiKTsKKyAgICAgICAgU3RyaW5nIGpkbiA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlOYW1lKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkbiwgamRuKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheU5hbWUoU3RyaW5nLCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaWRuID0gVUxvY2FsZS5nZXREaXNwbGF5TmFtZSgiZGVfREUiLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRuID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRuLCBqZG4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShTdHJpbmcsIFVMb2NhbGVbXSwgYm9vbGVhbltdKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QWNjZXB0TGFuZ3VhZ2VTdHJpbmdVTG9jYWxlQXJyYXlCb29sZWFuQXJyYXkoKSB7CisgICAgICAgIGJvb2xlYW5bXSBmYWxsYmFjayA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IHsgCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fQ0EiKSwgCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZXNfVVMiKSwgCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZSgiZW4tVVMsIGVuLUdCLCBlbi1DQSwgZXMtVVMiLCBsb2NhbGVzLCBmYWxsYmFjayk7CisgICAgICAgIGFzc2VydEVxdWFscyhuZXcgVUxvY2FsZSgiZW5fQ0EiKSwgcmVzdWx0KTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoZmFsbGJhY2tbMF0pOworICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKCJlbi1VUywgZW4tR0IsIGVzLVVTLU5FV01FWElDTyIsIGxvY2FsZXMsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJlc19VUyIpLCByZXN1bHQpOworICAgICAgICBhc3NlcnRUcnVlKGZhbGxiYWNrWzBdKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoVUxvY2FsZVtdLCBVTG9jYWxlW10sIGJvb2xlYW5bXSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEFjY2VwdExhbmd1YWdlVUxvY2FsZUFycmF5VUxvY2FsZUFycmF5Qm9vbGVhbkFycmF5KCkgeworICAgICAgICBib29sZWFuW10gZmFsbGJhY2sgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSB7IAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX0NBIiksIAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVzX1VTIiksIAorICAgICAgICB9OworICAgICAgICBVTG9jYWxlW10gYWNjZXB0X2xvY2FsZXMgPSB7CisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fVVMiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9HQiIpLAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX0NBIiksCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZXNfVVMiKSwKKyAgICAgICAgfTsKKyAgICAgICAgVUxvY2FsZVtdIGFjY2VwdF9sb2NhbGVzMiA9IHsKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9VUyIpLAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX0dCIiksCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZXNfVVNfTkVXTUVYSUNPIiksCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShhY2NlcHRfbG9jYWxlcywgbG9jYWxlcywgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVuX0NBIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydEZhbHNlKGZhbGxiYWNrWzBdKTsKKyAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShhY2NlcHRfbG9jYWxlczIsIGxvY2FsZXMsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJlc19VUyIpLCByZXN1bHQpOworICAgICAgICBhc3NlcnRUcnVlKGZhbGxiYWNrWzBdKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoU3RyaW5nLCBib29sZWFuW10pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBY2NlcHRMYW5ndWFnZVN0cmluZ0Jvb2xlYW5BcnJheSgpIHsKKyAgICAgICAgYm9vbGVhbltdIGZhbGxiYWNrID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZSgiZW4tQ0EsIGVuLUdCLCBlcy1VUyIsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJlbl9DQSIpLCByZXN1bHQpOworICAgICAgICBhc3NlcnRGYWxzZShmYWxsYmFja1swXSk7CisgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoImVzLVVTLU5FV01FWElDTyIsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChyZXN1bHQpOyAvLyBhY3R1YWwgcmVzdWx0IGRlcGVuZHMgb24gamRrCisgICAgICAgIGFzc2VydFRydWUoZmFsbGJhY2tbMF0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShVTG9jYWxlW10sIGJvb2xlYW5bXSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEFjY2VwdExhbmd1YWdlVUxvY2FsZUFycmF5Qm9vbGVhbkFycmF5KCkgeworICAgICAgICBib29sZWFuW10gZmFsbGJhY2sgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgVUxvY2FsZVtdIGFjY2VwdF9sb2NhbGVzID0geworICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX0NBIiksCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fR0IiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlc19VUyIpLAorICAgICAgICB9OworICAgICAgICBVTG9jYWxlW10gYWNjZXB0X2xvY2FsZXMyID0geworICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVzX1VTX05FV01FWElDTyIpLAorICAgICAgICB9OworICAgICAgICBVTG9jYWxlIHJlc3VsdCA9IFVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0X2xvY2FsZXMsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJlbl9DQSIpLCByZXN1bHQpOworICAgICAgICBhc3NlcnRGYWxzZShmYWxsYmFja1swXSk7CisgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0X2xvY2FsZXMyLCBmYWxsYmFjayk7CisgICAgICAgIGFzc2VydE5vdE51bGwocmVzdWx0KTsgLy8gYWN0dWFsIHJlc3VsdCBkZXBlbmRzIG9uIGpkaworICAgICAgICBhc3NlcnRUcnVlKGZhbGxiYWNrWzBdKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS8uY2xhc3NwYXRoIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTFjOGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvLmNsYXNzcGF0aApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Y2xhc3NwYXRoPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUiIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgorPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZDczYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS8ucHJvamVjdApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5jb20uaWJtLmljdS5iYXNlPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL01FVEEtSU5GL01BTklGRVNULk1GIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvTUVUQS1JTkYvTUFOSUZFU1QuTUYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY5ZWU0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0wLDAgKzEsMTUgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgorQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lCitCdW5kbGUtU3ltYm9saWNOYW1lOiBjb20uaWJtLmljdS5iYXNlCitCdW5kbGUtVmVyc2lvbjogMy42CitCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lCitCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KK0J1bmRsZS1Db3B5cmlnaHQ6IExpY2Vuc2VkIE1hdGVyaWFscyAtIFByb3BlcnR5IG9mIElCTSAKKyAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA2LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAKKyBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJQk0gQ29ycC4KK0V4cG9ydC1QYWNrYWdlOiBjb20uaWJtLmljdS50ZXh0LAorIGNvbS5pYm0uaWN1LnV0aWwKK0VjbGlwc2UtTGF6eVN0YXJ0OiB0cnVlCitCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogQ0RDLTEuMC9Gb3VuZGF0aW9uLTEuMCwKKyBKMlNFLTEuMwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEyNDBlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSw5IEBACitzb3VyY2UuLiA9IHNyYy8KK291dHB1dC4uID0gYmluLworc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCisgICAgICAgICAgICAgICBhYm91dF9maWxlcy8KK2Jpbi5pbmNsdWRlcyA9IGFib3V0X2ZpbGVzLyxcCisgICAgICAgICAgICAgICAuLFwKKyAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAorICAgICAgICAgICAgICAgcGx1Z2luLnByb3BlcnRpZXMsXAorICAgICAgICAgICAgICAgTUVUQS1JTkYvCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9wbHVnaW4ucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3BsdWdpbi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNGE3ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9wbHVnaW4ucHJvcGVydGllcwpAQCAtMCwwICsxLDEyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAwMCwgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3BsdWdpbk5hbWUgPSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEgKElDVTRKKSBSZXBsYWNlbWVudCBwbHVnLWluCitwcm92aWRlck5hbWUgPSBJQk0gQ29ycG9yYXRpb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQyZTMxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDY2MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEEgY2xhc3MgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgaW4gdGV4dC4gIFRoaXMgY2xhc3MgZGVmaW5lcyBhIHByb3RvY29sIGZvcgorICogb2JqZWN0cyB0aGF0IGJyZWFrIHVwIGEgcGllY2Ugb2YgbmF0dXJhbC1sYW5ndWFnZSB0ZXh0IGFjY29yZGluZyB0byBhIHNldAorICogb2YgY3JpdGVyaWEuICBJbnN0YW5jZXMgb3Igc3ViY2xhc3NlcyBvZiBCcmVha0l0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCwgZm9yCisgKiBleGFtcGxlLCB0byBicmVhayBhIHBpZWNlIG9mIHRleHQgaW50byB3b3Jkcywgc2VudGVuY2VzLCBvciBsb2dpY2FsIGNoYXJhY3RlcnMKKyAqIGFjY29yZGluZyB0byB0aGUgY29udmVudGlvbnMgb2Ygc29tZSBsYW5ndWFnZSBvciBncm91cCBvZiBsYW5ndWFnZXMuCisgKgorICogV2UgcHJvdmlkZSBmaXZlIGJ1aWx0LWluIHR5cGVzIG9mIEJyZWFrSXRlcmF0b3I6CisgKiA8dWw+PGxpPmdldFRpdGxlSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcworICogYmV0d2VlbiB0aXRsZSBicmVha3MuCisgKiA8bGk+Z2V0U2VudGVuY2VJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzCisgKiBiZXR3ZWVuIHNlbnRlbmNlcy4gIFRoaXMgaXMgdXNlZnVsIGZvciB0cmlwbGUtY2xpY2sgc2VsZWN0aW9uLCBmb3IgZXhhbXBsZS4KKyAqIDxsaT5nZXRXb3JkSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBiZXR3ZWVuCisgKiB3b3Jkcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBkb3VibGUtY2xpY2sgc2VsZWN0aW9uIG9yICJmaW5kIHdob2xlIHdvcmRzIiBzZWFyY2hlcy4KKyAqIFRoaXMgdHlwZSBvZiBCcmVha0l0ZXJhdG9yIG1ha2VzIHN1cmUgdGhlcmUgaXMgYSBib3VuZGFyeSBwb3NpdGlvbiBhdCB0aGUKKyAqIGJlZ2lubmluZyBhbmQgZW5kIG9mIGVhY2ggbGVnYWwgd29yZC4gIChOdW1iZXJzIGNvdW50IGFzIHdvcmRzLCB0b28uKSAgV2hpdGVzcGFjZQorICogYW5kIHB1bmN0dWF0aW9uIGFyZSBrZXB0IHNlcGFyYXRlIGZyb20gcmVhbCB3b3Jkcy4KKyAqIDxsaT5nZXRMaW5lSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgcG9zaXRpb25zIHdoZXJlIGl0IGlzCisgKiBsZWdhbCBmb3IgYSB0ZXh0IGVkaXRvciB0byB3cmFwIGxpbmVzLiAgVGhpcyBpcyBzaW1pbGFyIHRvIHdvcmQgYnJlYWtpbmcsIGJ1dAorICogbm90IHRoZSBzYW1lOiBwdW5jdHVhdGlvbiBhbmQgd2hpdGVzcGFjZSBhcmUgZ2VuZXJhbGx5IGtlcHQgd2l0aCB3b3JkcyAoeW91IGRvbid0CisgKiB3YW50IGEgbGluZSB0byBzdGFydCB3aXRoIHdoaXRlc3BhY2UsIGZvciBleGFtcGxlKSwgYW5kIHNvbWUgc3BlY2lhbCBjaGFyYWN0ZXJzCisgKiBjYW4gZm9yY2UgYSBwb3NpdGlvbiB0byBiZSBjb25zaWRlcmVkIGEgbGluZS1icmVhayBwb3NpdGlvbiBvciBwcmV2ZW50IGEgcG9zaXRpb24KKyAqIGZyb20gYmVpbmcgYSBsaW5lLWJyZWFrIHBvc2l0aW9uLgorICogPGxpPmdldENoYXJhY3Rlckluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgYmV0d2VlbgorICogbG9naWNhbCBjaGFyYWN0ZXJzLiAgQmVjYXVzZSBvZiB0aGUgc3RydWN0dXJlIG9mIHRoZSBVbmljb2RlIGVuY29kaW5nLCBhIGxvZ2ljYWwKKyAqIGNoYXJhY3RlciBtYXkgYmUgc3RvcmVkIGludGVybmFsbHkgYXMgbW9yZSB0aGFuIG9uZSBVbmljb2RlIGNvZGUgcG9pbnQuICAoQSB3aXRoIGFuCisgKiB1bWxhdXQgbWF5IGJlIHN0b3JlZCBhcyBhbiBhIGZvbGxvd2VkIGJ5IGEgc2VwYXJhdGUgY29tYmluaW5nIHVtbGF1dCBjaGFyYWN0ZXIsCisgKiBmb3IgZXhhbXBsZSwgYnV0IHRoZSB1c2VyIHN0aWxsIHRoaW5rcyBvZiBpdCBhcyBvbmUgY2hhcmFjdGVyLikgIFRoaXMgaXRlcmF0b3IgYWxsb3dzCisgKiB2YXJpb3VzIHByb2Nlc3NlcyAoZXNwZWNpYWxseSB0ZXh0IGVkaXRvcnMpIHRvIHRyZWF0IGFzIGNoYXJhY3RlcnMgdGhlIHVuaXRzIG9mIHRleHQKKyAqIHRoYXQgYSB1c2VyIHdvdWxkIHRoaW5rIG9mIGFzIGNoYXJhY3RlcnMsIHJhdGhlciB0aGFuIHRoZSB1bml0cyBvZiB0ZXh0IHRoYXQgdGhlCisgKiBjb21wdXRlciBzZWVzIGFzICJjaGFyYWN0ZXJzIi48L3VsPgorICoKKyAqIEJyZWFrSXRlcmF0b3IncyBpbnRlcmZhY2UgZm9sbG93cyBhbiAiaXRlcmF0b3IiIG1vZGVsIChoZW5jZSB0aGUgbmFtZSksIG1lYW5pbmcgaXQKKyAqIGhhcyBhIGNvbmNlcHQgb2YgYSAiY3VycmVudCBwb3NpdGlvbiIgYW5kIG1ldGhvZHMgbGlrZSBmaXJzdCgpLCBsYXN0KCksIG5leHQoKSwKKyAqIGFuZCBwcmV2aW91cygpIHRoYXQgdXBkYXRlIHRoZSBjdXJyZW50IHBvc2l0aW9uLiAgQWxsIEJyZWFrSXRlcmF0b3JzIHVwaG9sZCB0aGUKKyAqIGZvbGxvd2luZyBpbnZhcmlhbnRzOgorICogPHVsPjxsaT5UaGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHRleHQgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIGJvdW5kYXJ5IHBvc2l0aW9ucy4KKyAqIDxsaT5UaGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0b3IgaXMgYWx3YXlzIGEgYm91bmRhcnkgcG9zaXRpb24gKHJhbmRvbS0KKyAqIGFjY2VzcyBtZXRob2RzIG1vdmUgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZWFyZXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSBvcgorICogYWZ0ZXIgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiwgbm90IF90b18gdGhlIHNwZWNpZmllZCBwb3NpdGlvbikuCisgKiA8bGk+RE9ORSBpcyB1c2VkIGFzIGEgZmxhZyB0byBpbmRpY2F0ZSB3aGVuIGl0ZXJhdGlvbiBoYXMgc3RvcHBlZC4gIERPTkUgaXMgb25seQorICogcmV0dXJuZWQgd2hlbiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGUgZW5kIG9mIHRoZSB0ZXh0IGFuZCB0aGUgdXNlciBjYWxscyBuZXh0KCksCisgKiBvciB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQgYW5kIHRoZSB1c2VyIGNhbGxzCisgKiBwcmV2aW91cygpLgorICogPGxpPkJyZWFrIHBvc2l0aW9ucyBhcmUgbnVtYmVyZWQgYnkgdGhlIHBvc2l0aW9ucyBvZiB0aGUgY2hhcmFjdGVycyB0aGF0IGZvbGxvdworICogdGhlbS4gIFRodXMsIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAqIGlzIDAsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIDEsIGFuZCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlCisgKiBsYXN0IGNoYXJhY3RlciBpcyAxIHBsdXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgorICogPGxpPlRoZSBjbGllbnQgY2FuIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgYW4gaXRlcmF0b3IsIG9yIHRoZSB0ZXh0IGl0IGFuYWx5emVzLAorICogYXQgd2lsbCwgYnV0IGNhbm5vdCBjaGFuZ2UgdGhlIGJlaGF2aW9yLiAgSWYgdGhlIHVzZXIgd2FudHMgZGlmZmVyZW50IGJlaGF2aW9yLCBoZQorICogbXVzdCBpbnN0YW50aWF0ZSBhIG5ldyBpdGVyYXRvci48L3VsPgorICoKKyAqIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQgaXQgYW5hbHl6ZXMgdGhyb3VnaCBhIENoYXJhY3Rlckl0ZXJhdG9yLCB3aGljaCBtYWtlcworICogaXQgcG9zc2libGUgdG8gdXNlIEJyZWFrSXRlcmF0b3IgdG8gYW5hbHl6ZSB0ZXh0IGluIGFueSB0ZXh0LXN0b3JhZ2UgdmVoaWNsZSB0aGF0CisgKiBwcm92aWRlcyBhIENoYXJhY3Rlckl0ZXJhdG9yIGludGVyZmFjZS4KKyAqCisgKiA8Yj5OT1RFOjwvYj4gIFNvbWUgdHlwZXMgb2YgQnJlYWtJdGVyYXRvciBjYW4gdGFrZSBhIGxvbmcgdGltZSB0byBjcmVhdGUsIGFuZAorICogaW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgYXJlIG5vdCBjdXJyZW50bHkgY2FjaGVkIGJ5IHRoZSBzeXN0ZW0uICBGb3IKKyAqIG9wdGltYWwgcGVyZm9ybWFuY2UsIGtlZXAgaW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgYXJvdW5kIGFzIGxvbmcgYXMgbWFrZXMKKyAqIHNlbnNlLiAgRm9yIGV4YW1wbGUsIHdoZW4gd29yZC13cmFwcGluZyBhIGRvY3VtZW50LCBkb24ndCBjcmVhdGUgYW5kIGRlc3Ryb3kgYQorICogbmV3IEJyZWFrSXRlcmF0b3IgZm9yIGVhY2ggbGluZS4gIENyZWF0ZSBvbmUgYnJlYWsgaXRlcmF0b3IgZm9yIHRoZSB3aG9sZSBkb2N1bWVudAorICogKG9yIHdoYXRldmVyIHN0cmV0Y2ggb2YgdGV4dCB5b3UncmUgd3JhcHBpbmcpIGFuZCB1c2UgaXQgdG8gZG8gdGhlIHdob2xlIGpvYiBvZgorICogd3JhcHBpbmcgdGhlIHRleHQuCisgKgorICogPFA+CisgKiA8c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+OjxQPgorICogQ3JlYXRpbmcgYW5kIHVzaW5nIHRleHQgYm91bmRhcmllcworICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICogICAgICBpZiAoYXJncy5sZW5ndGggPT0gMSkgeworICogICAgICAgICAgU3RyaW5nIHN0cmluZ1RvRXhhbWluZSA9IGFyZ3NbMF07CisgKiAgICAgICAgICAvL3ByaW50IGVhY2ggd29yZCBpbiBvcmRlcgorICogICAgICAgICAgQnJlYWtJdGVyYXRvciBib3VuZGFyeSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgKiAgICAgICAgICBib3VuZGFyeS5zZXRUZXh0KHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludEVhY2hGb3J3YXJkKGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgLy9wcmludCBlYWNoIHNlbnRlbmNlIGluIHJldmVyc2Ugb3JkZXIKKyAqICAgICAgICAgIGJvdW5kYXJ5ID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisgKiAgICAgICAgICBib3VuZGFyeS5zZXRUZXh0KHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludEVhY2hCYWNrd2FyZChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50Rmlyc3QoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludExhc3QoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGVhY2ggZWxlbWVudCBpbiBvcmRlcgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50RWFjaEZvcndhcmQoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LmZpcnN0KCk7CisgKiAgICAgZm9yIChpbnQgZW5kID0gYm91bmRhcnkubmV4dCgpOworICogICAgICAgICAgZW5kICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAqICAgICAgICAgIHN0YXJ0ID0gZW5kLCBlbmQgPSBib3VuZGFyeS5uZXh0KCkpIHsKKyAqICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGVhY2ggZWxlbWVudCBpbiByZXZlcnNlIG9yZGVyCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRFYWNoQmFja3dhcmQoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5sYXN0KCk7CisgKiAgICAgZm9yIChpbnQgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpOworICogICAgICAgICAgc3RhcnQgIT0gQnJlYWtJdGVyYXRvci5ET05FOworICogICAgICAgICAgZW5kID0gc3RhcnQsIHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKSkgeworICogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqICAgICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBmaXJzdCBlbGVtZW50CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRGaXJzdChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkuZmlyc3QoKTsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkubmV4dCgpOworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgbGFzdCBlbGVtZW50CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRMYXN0KEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkubGFzdCgpOworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCB0aGUgZWxlbWVudCBhdCBhIHNwZWNpZmllZCBwb3NpdGlvbgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50QXQoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgaW50IHBvcywgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5mb2xsb3dpbmcocG9zKTsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpOworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogRmluZCB0aGUgbmV4dCB3b3JkCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIGludCBuZXh0V29yZFN0YXJ0QWZ0ZXIoaW50IHBvcywgU3RyaW5nIHRleHQpIHsKKyAqICAgICBCcmVha0l0ZXJhdG9yIHdiID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAqICAgICB3Yi5zZXRUZXh0KHRleHQpOworICogICAgIGludCBsYXN0ID0gd2IuZm9sbG93aW5nKHBvcyk7CisgKiAgICAgaW50IGN1cnJlbnQgPSB3Yi5uZXh0KCk7CisgKiAgICAgd2hpbGUgKGN1cnJlbnQgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgKiAgICAgICAgIGZvciAoaW50IHAgPSBsYXN0OyBwIDwgY3VycmVudDsgcCsrKSB7CisgKiAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmlzTGV0dGVyKHRleHQuY2hhckF0KHApKQorICogICAgICAgICAgICAgICAgIHJldHVybiBsYXN0OworICogICAgICAgICB9CisgKiAgICAgICAgIGxhc3QgPSBjdXJyZW50OworICogICAgICAgICBjdXJyZW50ID0gd2IubmV4dCgpOworICogICAgIH0KKyAqICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICogfQorICogPC9wcmU+CisgKiAoVGhlIGl0ZXJhdG9yIHJldHVybmVkIGJ5IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCkgaXMgdW5pcXVlIGluIHRoYXQKKyAqIHRoZSBicmVhayBwb3NpdGlvbnMgaXQgcmV0dXJucyBkb24ndCByZXByZXNlbnQgYm90aCB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUKKyAqIHRoaW5nIGJlaW5nIGl0ZXJhdGVkIG92ZXIuICBUaGF0IGlzLCBhIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIHJldHVybnMgYnJlYWtzCisgKiB0aGF0IGVhY2ggcmVwcmVzZW50IHRoZSBlbmQgb2Ygb25lIHNlbnRlbmNlIGFuZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0LgorICogV2l0aCB0aGUgd29yZC1icmVhayBpdGVyYXRvciwgdGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0d28gYm91bmRhcmllcyBtaWdodCBiZSBhCisgKiB3b3JkLCBvciB0aGV5IG1pZ2h0IGJlIHRoZSBwdW5jdHVhdGlvbiBvciB3aGl0ZXNwYWNlIGJldHdlZW4gdHdvIHdvcmRzLiAgVGhlCisgKiBhYm92ZSBjb2RlIHVzZXMgYSBzaW1wbGUgaGV1cmlzdGljIHRvIGRldGVybWluZSB3aGljaCBib3VuZGFyeSBpcyB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIHdvcmQ6IElmIHRoZSBjaGFyYWN0ZXJzIGJldHdlZW4gdGhpcyBib3VuZGFyeSBhbmQgdGhlIG5leHQgYm91bmRhcnkKKyAqIGluY2x1ZGUgYXQgbGVhc3Qgb25lIGxldHRlciAodGhpcyBjYW4gYmUgYW4gYWxwaGFiZXRpY2FsIGxldHRlciwgYSBDSksgaWRlb2dyYXBoLAorICogYSBIYW5ndWwgc3lsbGFibGUsIGEgS2FuYSBjaGFyYWN0ZXIsIGV0Yy4pLCB0aGVuIHRoZSB0ZXh0IGJldHdlZW4gdGhpcyBib3VuZGFyeQorICogYW5kIHRoZSBuZXh0IGlzIGEgd29yZDsgb3RoZXJ3aXNlLCBpdCdzIHRoZSBtYXRlcmlhbCBiZXR3ZWVuIHdvcmRzLikKKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBCcmVha0l0ZXJhdG9yIGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKwkKKyAgICBwcm90ZWN0ZWQgQnJlYWtJdGVyYXRvcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgY29weSBvZiB0aGlzCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAJLy8gdGhpcyBpcyBoZXJlIGZvciBzdWJjbGFzcyB1c2UuICB3ZSBtdXN0IG92ZXJyaWRlIGl0IG91cnNlbHZlcywgdGhvdWdoLgorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRlciBhbGwgdmFsaWQKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisgICAgICAgIAorCS8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24uICBUaGlzIGlzIGFsd2F5cyB0aGUgYmVnaW5uaW5nCisgICAgICogaW5kZXggb2YgdGhlIHRleHQgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyLiAgRm9yIGV4YW1wbGUsIGlmCisgICAgICogdGhlIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSB3aG9sZSBzdHJpbmcsIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAqIGFsd2F5cyByZXR1cm4gMC4gIFRoaXMgZnVuY3Rpb24gYWxzbyB1cGRhdGVzIHRoZSBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKiB0byBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyZXRjaCBvZiB0ZXh0CisgICAgICogYmVpbmcgYnJva2VuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZmlyc3QoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uLiAgVGhpcyBpcyBhbHdheXMgdGhlICJwYXN0LXRoZS1lbmQiCisgICAgICogaW5kZXggb2YgdGhlIHRleHQgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyLiAgRm9yIGV4YW1wbGUsIGlmIHRoZQorICAgICAqIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSB3aG9sZSBzdHJpbmcgKGNhbGwgaXQgInRleHQiKSwgdGhpcyBmdW5jdGlvbgorICAgICAqIHdpbGwgYWx3YXlzIHJldHVybiB0ZXh0Lmxlbmd0aCgpLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZWQgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsYXN0KCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzIGZvcndhcmQgaW4gdGhlIHRleHQgKGEgbmVnYXRpdmUKKyAgICAgKiBudW1iZXIsIHRoZXJlZm9yZSwgYWR2YW5jZXMgYmFja3dhcmRzKS4gIElmIHRoaXMgY2F1c2VzIHRoZSBpdGVyYXRvcgorICAgICAqIHRvIGFkdmFuY2Ugb2ZmIGVpdGhlciBlbmQgb2YgdGhlIHRleHQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FOworICAgICAqIG90aGVyd2lzZSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgKiBib3VuZGFyeS4gIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgbmV4dCgpIG9yCisgICAgICogcHJldmlvdXMoKSBuIHRpbWVzLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIgb2YgYm91bmRhcmllcyB0byBhZHZhbmNlIG92ZXIgKGlmIHBvc2l0aXZlLCBtb3ZlcworICAgICAqIGZvcndhcmQ7IGlmIG5lZ2F0aXZlLCBtb3ZlcyBiYWNrd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBib3VuZGFyeSBuIGJvdW5kYXJpZXMgZnJvbSB0aGUgY3VycmVudAorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbiwgb3IgRE9ORSBpZiBtb3ZpbmcgbiBib3VuZGFyaWVzIGNhdXNlcyB0aGUgaXRlcmF0b3IKKyAgICAgKiB0byBhZHZhbmNlIG9mZiBlaXRoZXIgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbmV4dChpbnQgbik7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBmb3J3YXJkIG9uZSBib3VuZGFyeS4gIFRoZSBjdXJyZW50IGl0ZXJhdGlvbgorICAgICAqIHBvc2l0aW9uIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24gYWZ0ZXIgdGhlCisgICAgICogY3VycmVudCBwb3NpdGlvbiwgYW5kIHRoaXMgaXMgYWxzbyB0aGUgdmFsdWUgdGhhdCBpcyByZXR1cm5lZC4gIElmCisgICAgICogdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgZXF1YWwgdG8gdGhlIHZhbHVlIHJldHVybmVkIGJ5IGxhc3QoKSwgb3IgdG8KKyAgICAgKiBET05FLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORSBhbmQgc2V0cyB0aGUgY3VycmVudCBwb3NpdGlvbiB0bworICAgICAqIERPTkUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZyB0aGUKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBuZXh0KCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBiYWNrd2FyZCBvbmUgYm91bmRhcnkuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZQorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgZmlyc3QoKSwgb3IgdG8KKyAgICAgKiBET05FLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORSBhbmQgc2V0cyB0aGUgY3VycmVudCBwb3NpdGlvbiB0bworICAgICAqIERPTkUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHByZXZpb3VzKCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gYmUgdGhlIGZpcnN0CisgICAgICogYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICAoV2hldGhlciB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24gaXMgaXRzZWxmIGEgYm91bmRhcnkgcG9zaXRpb24gb3Igbm90IGRvZXNuJ3QKKyAgICAgKiBtYXR0ZXItLSB0aGlzIGZ1bmN0aW9uIGFsd2F5cyBtb3ZlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAqIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uKSAgSWYgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGlzIHRoZSBwYXN0LXRoZS1lbmQgcG9zaXRpb24sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZworICAgICAqICJvZmZzZXQiICh3aGV0aGVyIG9yIG5vdCAib2Zmc2V0IiBpdHNlbGYgaXMgYSBib3VuZGFyeSBwb3NpdGlvbiksCisgICAgICogb3IgRE9ORSBpZiAib2Zmc2V0IiBpcyB0aGUgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGZvbGxvd2luZyhpbnQgb2Zmc2V0KTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IncyBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byBiZSB0aGUgbGFzdAorICAgICAqIGJvdW5kYXJ5IHBvc2l0aW9uIHByZWNlZGluZyB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiAgKFdoZXRoZXIgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGl0c2VsZiBhIGJvdW5kYXJ5IHBvc2l0aW9uIG9yIG5vdCBkb2Vzbid0CisgICAgICogbWF0dGVyLS0gdGhpcyBmdW5jdGlvbiBhbHdheXMgbW92ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUKKyAgICAgKiBsYXN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLikgIElmIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBwb3NpdGlvbiBpcyB0aGUgc3RhcnRpbmcgcG9zaXRpb24sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nCisgICAgICogIm9mZnNldCIgKHdoZXRoZXIgb2Ygbm90ICJvZmZzZXQiIGl0c2VsZiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uKSwKKyAgICAgKiBvciBET05FIGlmICJvZmZzZXQiIGlzIHRoZSBzdGFydGluZyBvZmZzZXQgb2YgdGhlIGl0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJlY2VkaW5nKGludCBvZmZzZXQpIHsKKyAgICAgICAgaW50IHBvcyA9IGZvbGxvd2luZyhvZmZzZXQpOworICAgICAgICB3aGlsZSAocG9zID49IG9mZnNldCAmJiBwb3MgIT0gRE9ORSkgeworICAgICAgICAgICAgcG9zID0gcHJldmlvdXMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBJZiB0aGUKKyAgICAgKiBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uOyBpZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBmYWxzZSwgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IGFzIHRob3VnaCBmb2xsb3dpbmcoKSBoYWQgYmVlbiBjYWxsZWQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworICAgIAlyZXR1cm4gb2Zmc2V0ID09IDAgfHwgZm9sbG93aW5nKG9mZnNldCAtIDEpID09IG9mZnNldDsgICAgCQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgaXRlcmF0b3IncyBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY3VycmVudCgpOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBGb3IgYXQgbGVhc3Qgc29tZSBzdWJjbGFzc2VzIG9mIEJyZWFrSXRlcmF0b3IsIHRoaXMgaXMgYSByZWZlcmVuY2UKKyAgICAgKiB0byB0aGUgPGI+YWN0dWFsIGl0ZXJhdG9yIGJlaW5nIHVzZWQ8L2I+IGJ5IHRoZSBCcmVha0l0ZXJhdG9yLAorICAgICAqIGFuZCB0aGVyZWZvcmUsIHRoaXMgZnVuY3Rpb24ncyByZXR1cm4gdmFsdWUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMKKyAgICAgKiA8dHQ+Y29uc3Q8L3R0Pi4gIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgYWJvdXQgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICAgKiBvZiB0aGlzIGl0ZXJhdG9yIHdoZW4gaXQgaXMgcmV0dXJuZWQuICBJZiB5b3UgbmVlZCB0byBtb3ZlIHRoYXQKKyAgICAgKiBwb3NpdGlvbiB0byBleGFtaW5lIHRoZSB0ZXh0LCBjbG9uZSB0aGlzIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIGZpcnN0LgorICAgICAqIEByZXR1cm4gQSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBDaGFyYWN0ZXJJdGVyYXRvciBnZXRUZXh0KCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoZSBuZXcKKyAgICAgKiBwaWVjZSBvZiB0ZXh0IGlzIHBhc3NlZCBpbiBhcyBhIFN0cmluZywgYW5kIHRoZSBjdXJyZW50CisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKiAoVGhlIG9sZCB0ZXh0IGlzIGRyb3BwZWQuKQorICAgICAqIEBwYXJhbSBuZXdUZXh0IEEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRleHQgdG8gYW5hbHl6ZSB3aXRoCisgICAgICogdGhpcyBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIG5ld1RleHQpIHsKKyAgICAgICAgc2V0VGV4dChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3VGV4dCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhlCisgICAgICogQnJlYWtJdGVyYXRvciBpcyBwYXNzZWQgYSBDaGFyYWN0ZXJJdGVyYXRvciB0aHJvdWdoIHdoaWNoCisgICAgICogaXQgd2lsbCBhY2Nlc3MgdGhlIHRleHQgaXRzZWxmLiAgVGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICogcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3Mgc3RhcnQgaW5kZXguCisgICAgICogKFRoZSBvbGQgaXRlcmF0b3IgaXMgZHJvcHBlZC4pCisgICAgICogQHBhcmFtIG5ld1RleHQgQSBDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcgdG8gdGhlIHRleHQKKyAgICAgKiB0byBhbmFseXplIHdpdGggdGhpcyBCcmVha0l0ZXJhdG9yICh0aGUgaXRlcmF0b3IncyBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgaWdub3JlZCwgYnV0IGl0cyBvdGhlciBzdGF0ZSBpcyBzaWduaWZpY2FudCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBuZXdUZXh0KTsKKyAgICAgICAgCisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJTkRfQ0hBUkFDVEVSID0gMDsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9XT1JEID0gMTsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9MSU5FID0gMjsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9TRU5URU5DRSA9IDM7CisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJTkRfVElUTEUgPSA0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcyBpbiB0aGUgZGVmYXVsdAorICAgICAqIGxvY2FsZSdzIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRXb3JkSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgdG8gYmUKKyAgICAgKiBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0V29yZEluc3RhbmNlKExvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwgS0lORF9XT1JEKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIGxvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZQorICAgICAqIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFdvcmRJbnN0YW5jZShVTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLnRvTG9jYWxlKCksIEtJTkRfV09SRCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsIGxpbmUtCisgICAgICogd3JhcHBpbmcgcG9zaXRpb25zLiAgVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoZSB0ZXh0IGJlaW5nIGJyb2tlbgorICAgICAqIGlzIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0TGluZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbCBsaW5lLQorICAgICAqIHdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYnJva2VuLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKExvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwgS0lORF9MSU5FKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwgbGluZS0KKyAgICAgKiB3cmFwcGluZyBwb3NpdGlvbnMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGJyb2tlbi4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsCisgICAgICogbGluZS13cmFwcGluZyBwb3NpdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKFVMb2NhbGUgd2hlcmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUudG9Mb2NhbGUoKSwgS0lORF9MSU5FKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLiAgVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX0NIQVJBQ1RFUik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZS50b0xvY2FsZSgpLCBLSU5EX0NIQVJBQ1RFUik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGlzIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRTZW50ZW5jZUluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwgS0lORF9TRU5URU5DRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRTZW50ZW5jZUluc3RhbmNlKFVMb2NhbGUgd2hlcmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUudG9Mb2NhbGUoKSwgS0lORF9TRU5URU5DRSk7CisgICAgfQorICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldEJyZWFrSW5zdGFuY2UoTG9jYWxlIHdoZXJlLCBpbnQga2luZCkgeworICAgICAgICBqYXZhLnRleHQuQnJlYWtJdGVyYXRvciBiciA9IG51bGw7CisgICAgICAgIHN3aXRjaChraW5kKSB7CisgICAgICAgIGNhc2UgS0lORF9DSEFSQUNURVI6IGJyID0gamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2Uod2hlcmUpOyBicmVhazsKKyAgICAgICAgY2FzZSBLSU5EX1dPUkQ6IGJyID0gamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHdoZXJlKTsgYnJlYWs7CisgICAgICAgIGNhc2UgS0lORF9MSU5FOiBiciA9IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSh3aGVyZSk7IGJyZWFrOworICAgICAgICBjYXNlIEtJTkRfU0VOVEVOQ0U6IGJyID0gamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSh3aGVyZSk7IGJyZWFrOyAgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBLSU5EX1RJVExFOiB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEJyZWFrSXRlcmF0b3JIYW5kbGUoYnIpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQnJlYWtJdGVyYXRvcnMgY2FuIGJlIHVzZWQuCisgICAgICogQHJldHVybiBBbiBhcnJheSBvZiBMb2NhbGVzLiAgQWxsIG9mIHRoZSBsb2NhbGVzIGluIHRoZSBhcnJheSBjYW4KKyAgICAgKiBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYSBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGphdmEudGV4dC5CcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIEJyZWFrSXRlcmF0b3JzIGNhbiBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gQW4gYXJyYXkgb2YgVUxvY2FsZXMuICBBbGwgb2YgdGhlIGxvY2FsZXMgaW4gdGhlIGFycmF5IGNhbgorICAgICAqIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBqYXZhLnRleHQuQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIFVMb2NhbGVbXSB1bG9jYWxlcyA9IG5ldyBVTG9jYWxlW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB1bG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiB1bG9jYWxlczsKKyAgICB9CisgICAgCisgICAgLy8gZm9yd2FyZGluZyBpbXBsZW1lbnRhdGlvbiBjbGFzcworCXN0YXRpYyBmaW5hbCBjbGFzcyBCcmVha0l0ZXJhdG9ySGFuZGxlIGV4dGVuZHMgQnJlYWtJdGVyYXRvciB7CisJICAgIC8qKgorCSAgICAgKiBAaW50ZXJuYWwKKwkgICAgICovCisJICAgIHB1YmxpYyBmaW5hbCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9yOworCSAgICAgICAgCisJICAgIC8qKgorCSAgICAgKiBAaW50ZXJuYWwKKwkgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBCcmVha0l0ZXJhdG9yIHRvIHdoaWNoIHRvIGRlbGVnYXRlCisJICAgICAqLworCSAgICBwdWJsaWMgQnJlYWtJdGVyYXRvckhhbmRsZShqYXZhLnRleHQuQnJlYWtJdGVyYXRvciBkZWxlZ2F0ZSkgeworCSAgICAgICAgdGhpcy5icmVha0l0ZXJhdG9yID0gZGVsZWdhdGU7CisJICAgIH0KKwkgICAgICAgIAorCSAgICBwdWJsaWMgaW50IGZpcnN0KCkgeworCSAgICAgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3IuZmlyc3QoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5sYXN0KCk7CisJICAgIH0KKwkgICAgcHVibGljIGludCBuZXh0KGludCBuKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5uZXh0KG4pOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLm5leHQoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworCSAgICAgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3IucHJldmlvdXMoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgaW50IGZvbGxvd2luZyhpbnQgb2Zmc2V0KSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5mb2xsb3dpbmcob2Zmc2V0KTsKKwkgICAgfQorCSAgICBwdWJsaWMgaW50IHByZWNlZGluZyhpbnQgb2Zmc2V0KSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5wcmVjZWRpbmcob2Zmc2V0KTsKKwkgICAgfQorCSAgICBwdWJsaWMgYm9vbGVhbiBpc0JvdW5kYXJ5KGludCBvZmZzZXQpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmlzQm91bmRhcnkob2Zmc2V0KTsKKwkgICAgfQorCSAgICBwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5jdXJyZW50KCk7CisJICAgIH0KKwkgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGdldFRleHQoKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5nZXRUZXh0KCk7CisJICAgIH0KKwkgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBuZXdUZXh0KSB7CisJICAgICAgICBicmVha0l0ZXJhdG9yLnNldFRleHQobmV3VGV4dCk7CisJICAgIH0KKwkKKwkgICAgLyoqCisJICAgICAqIFJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nLgorCSAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKwkgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKwkgICAgICovCisJICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisJICAgIAlyZXR1cm4gYnJlYWtJdGVyYXRvci50b1N0cmluZygpOworCSAgICB9CisKKwkgICAgLyoqCisJICAgICAqIFJldHVybiBhIGNsb25lIG9mIHRoaXMgQnJlYWtJdGVyYXRvci4KKwkgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgQnJlYWtJdGVyYXRvcgorCSAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworCSAgICAgKi8KKwkgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKwkgICAgCXJldHVybiBuZXcgQnJlYWtJdGVyYXRvckhhbmRsZSgoamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IpYnJlYWtJdGVyYXRvci5jbG9uZSgpKTsKKwkgICAgfQorCisJICAgIC8qKgorCSAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBCcmVha0l0ZXJhdG9yIHdpdGggdGhlIHNhbWUgYnJlYWsgYmVoYXZpb3IgYXMgdGhpcy4KKwkgICAgICogQHJldHVybiB0cnVlIGlmIHJocyBlcXVhbHMgdGhpcworCSAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworCSAgICAgKi8KKwkgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKwkgICAgCXRyeSB7CisJICAgIAkJcmV0dXJuIGJyZWFrSXRlcmF0b3IuZXF1YWxzKCgoQnJlYWtJdGVyYXRvckhhbmRsZSlyaHMpLmJyZWFrSXRlcmF0b3IpOworCSAgICAJfQorCSAgICAJY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJICAgIAkJcmV0dXJuIGZhbHNlOworCSAgICAJfQorCSAgICB9CisKKwkgICAgLyoqCisJICAgICAqIFJldHVybiBhIGhhc2hDb2RlLgorCSAgICAgKiBAcmV0dXJuIGEgaGFzaENvZGUKKwkgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKwkgICAgICovCisJICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisJICAgIAlyZXR1cm4gYnJlYWtJdGVyYXRvci5oYXNoQ29kZSgpOworCSAgICB9CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTc0YjRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8cD5BIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4gcmVwcmVzZW50cyBhIDxjb2RlPlN0cmluZzwvY29kZT4KKyAqIHVuZGVyIHRoZSBydWxlcyBvZiBhIHNwZWNpZmljIDxjb2RlPkNvbGxhdG9yPC9jb2RlPgorICogb2JqZWN0LiBDb21wYXJpbmcgdHdvIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIHJldHVybnMgdGhlCisgKiByZWxhdGl2ZSBvcmRlciBvZiB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPnMgdGhleSByZXByZXNlbnQuPC9wPgorICoKKyAqIDxwPlNpbmNlIHRoZSBydWxlIHNldCBvZiA8Y29kZT5Db2xsYXRvcjwvY29kZT5zIGNhbiBkaWZmZXIsIHRoZQorICogc29ydCBvcmRlcnMgb2YgdGhlIHNhbWUgc3RyaW5nIHVuZGVyIHR3byBkaWZmZXJlbnQKKyAqIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgbWlnaHQgZGlmZmVyLiAgSGVuY2UgY29tcGFyaW5nCisgKiA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyBnZW5lcmF0ZWQgZnJvbSBkaWZmZXJlbnQKKyAqIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgY2FuIGdpdmUgaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorIAorICogPHA+Qm90aCB0aGUgbWV0aG9kCisgKiA8Y29kZT5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSk8L2NvZGU+IGFuZCB0aGUgbWV0aG9kCisgKiA8Y29kZT5Db2xsYXRvci5jb21wYXJlKFN0cmluZywgU3RyaW5nKTwvY29kZT4gY29tcGFyZSB0d28gc3RyaW5ncworICogYW5kIHJldHVybnMgdGhlaXIgcmVsYXRpdmUgb3JkZXIuICBUaGUgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaWN0aWNzCisgKiBvZiB0aGVzZSB0d28gYXBwcm9hY2hlcyBjYW4gZGlmZmVyLjwvcD4KKyAqCisgKiA8cD5EdXJpbmcgdGhlIGNvbnN0cnVjdGlvbiBvZiBhIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4sIHRoZQorICogZW50aXJlIHNvdXJjZSBzdHJpbmcgaXMgZXhhbWluZWQgYW5kIHByb2Nlc3NlZCBpbnRvIGEgc2VyaWVzIG9mCisgKiBiaXRzIHRlcm1pbmF0ZWQgYnkgYSBudWxsLCB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4uIAorICogV2hlbiA8Y29kZT5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSk8L2NvZGU+IGV4ZWN1dGVzLCBpdAorICogcGVyZm9ybXMgYml0d2lzZSBjb21wYXJpc29uIG9uIHRoZSBiaXQgc2VxdWVuY2VzLiAgVGhpcyBjYW4gaW5jdXJzCisgKiBzdGFydHVwIGNvc3Qgd2hlbiBjcmVhdGluZyB0aGUgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiwgYnV0IG9uY2UKKyAqIHRoZSBrZXkgaXMgY3JlYXRlZCwgYmluYXJ5IGNvbXBhcmlzb25zIGFyZSBmYXN0LiAgVGhpcyBhcHByb2FjaCBpcworICogcmVjb21tZW5kZWQgd2hlbiB0aGUgc2FtZSBzdHJpbmdzIGFyZSB0byBiZSBjb21wYXJlZCBvdmVyIGFuZCBvdmVyCisgKiBhZ2Fpbi48L3A+CisgKgorICogPHA+T24gdGhlIG90aGVyIGhhbmQsIGltcGxlbWVudGF0aW9ucyBvZgorICogPGNvZGU+Q29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZyk8L2NvZGU+IGNhbiBleGFtaW5lIGFuZAorICogcHJvY2VzcyB0aGUgc3RyaW5ncyBvbmx5IHVudGlsIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIGRpZmZlcmluZyBpbgorICogb3JkZXIuICBUaGlzIGFwcHJvYWNoIGlzIHJlY29tbWVuZGVkIGlmIHRoZSBzdHJpbmdzIGFyZSB0byBiZQorICogY29tcGFyZWQgb25seSBvbmNlLjwvcD4KKyAqIAorICogPHA+TW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcG9zaXRpb24gb2YgdGhlIGJpdCBzZXF1ZW5jZSBjYW4KKyAqIGJlIGZvdW5kIGluIHRoZSAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX1NlcnZpY2VBcmNoaXRlY3R1cmUuaHRtbCI+CisgKiB1c2VyIGd1aWRlPC9hPi48L3A+CisgKgorICogPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyBjYW4gYmUgdXNlZAorICogdG8gc29ydCBhIGxpc3Qgb2YgPGNvZGU+U3RyaW5nPC9jb2RlPnMuPC9wPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gQ3JlYXRlIGFuIGFycmF5IG9mIENvbGxhdGlvbktleXMgZm9yIHRoZSBTdHJpbmdzIHRvIGJlIHNvcnRlZC4KKyAqIENvbGxhdG9yIG15Q29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICogQ29sbGF0aW9uS2V5W10ga2V5cyA9IG5ldyBDb2xsYXRpb25LZXlbM107CisgKiBrZXlzWzBdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIlRvbSIpOworICoga2V5c1sxXSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJEaWNrIik7CisgKiBrZXlzWzJdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIkhhcnJ5Iik7CisgKiBzb3J0KCBrZXlzICk7CisgKiA8YnI+CisgKiAvLy4uLgorICogPGJyPgorICogLy8gSW5zaWRlIGJvZHkgb2Ygc29ydCByb3V0aW5lLCBjb21wYXJlIGtleXMgdGhpcyB3YXkKKyAqIGlmKCBrZXlzW2ldLmNvbXBhcmVUbygga2V5c1tqXSApID4gMCApCisgKiAgICAvLyBzd2FwIGtleXNbaV0gYW5kIGtleXNbal0KKyAqIDxicj4KKyAqIC8vLi4uCisgKiA8YnI+CisgKiAvLyBGaW5hbGx5LCB3aGVuIHdlJ3ZlIHJldHVybmVkIGZyb20gc29ydC4KKyAqIFN5c3RlbS5vdXQucHJpbnRsbigga2V5c1swXS5nZXRTb3VyY2VTdHJpbmcoKSApOworICogU3lzdGVtLm91dC5wcmludGxuKCBrZXlzWzFdLmdldFNvdXJjZVN0cmluZygpICk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIGtleXNbMl0uZ2V0U291cmNlU3RyaW5nKCkgKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBzZWUgQ29sbGF0b3IKKyAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIEBzdGFibGUgSUNVIDIuOCAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbGxhdGlvbktleSBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworCS8qKgorCSAqIEBpbnRlcm5hbAorCSAqLworCWZpbmFsIGphdmEudGV4dC5Db2xsYXRpb25LZXkga2V5OworCQorCS8qKgorCSAqIEBpbnRlcm5hbAorCSAqLworCUNvbGxhdGlvbktleShqYXZhLnRleHQuQ29sbGF0aW9uS2V5IGRlbGVnYXRlKSB7CisJCXRoaXMua2V5ID0gZGVsZWdhdGU7CisJfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzb3VyY2Ugc3RyaW5nIHRoYXQgdGhpcyBDb2xsYXRpb25LZXkgcmVwcmVzZW50cy4KKyAgICAgKiBAcmV0dXJuIHNvdXJjZSBzdHJpbmcgdGhhdCB0aGlzIENvbGxhdGlvbktleSByZXByZXNlbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTb3VyY2VTdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBrZXkuZ2V0U291cmNlU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkR1cGxpY2F0ZXMgYW5kIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoaXMgQ29sbGF0aW9uS2V5IGFzIGEgc2VxdWVuY2UgCisgICAgICogb2YgYmlnLWVuZGlhbiBieXRlcyB0ZXJtaW5hdGVkIGJ5IGEgbnVsbC48L3A+IAorICAgICAqCisgICAgICogPHA+SWYgdHdvIENvbGxhdGlvbktleXMgY2FuIGJlIGxlZ2l0aW1hdGVseSBjb21wYXJlZCwgdGhlbiBvbmUgY2FuCisgICAgICogY29tcGFyZSB0aGUgYnl0ZSBhcnJheXMgb2YgZWFjaCB0byBvYnRhaW4gdGhlIHNhbWUgcmVzdWx0LCBlLmcuCisgICAgICogPHByZT4KKyAgICAgKiBieXRlIGtleTFbXSA9IGNvbGxhdGlvbmtleTEudG9CeXRlQXJyYXkoKTsKKyAgICAgKiBieXRlIGtleTJbXSA9IGNvbGxhdGlvbmtleTIudG9CeXRlQXJyYXkoKTsKKyAgICAgKiBpbnQga2V5LCB0YXJnZXRrZXk7CisgICAgICogaW50IGkgPSAwOworICAgICAqIGRvIHsKKyAgICAgKiAgICAgICBrZXkgPSBrZXkxW2ldICYgMHhGRjsKKyAgICAgKiAgICAgdGFyZ2V0a2V5ID0ga2V5MltpXSAmIDB4RkY7CisgICAgICogICAgIGlmIChrZXkgJmx0OyB0YXJnZXRrZXkpIHsKKyAgICAgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIDEgaXMgbGVzcyB0aGFuIHN0cmluZyAyIik7CisgICAgICogICAgICAgICByZXR1cm47CisgICAgICogICAgIH0KKyAgICAgKiAgICAgaWYgKHRhcmdldGtleSAmbHQ7IGtleSkgeworICAgICAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmcgMSBpcyBtb3JlIHRoYW4gc3RyaW5nIDIiKTsKKyAgICAgKiAgICAgfQorICAgICAqICAgICBpICsrOworICAgICAqIH0gd2hpbGUgKGtleSAhPSAwICYmIHRhcmdldEtleSAhPSAwKTsKKyAgICAgKgorICAgICAqIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5ncyBhcmUgZXF1YWwuIik7CisgICAgICogPC9wcmU+CisgICAgICogPC9wPiAgCisgICAgICogQHJldHVybiBDb2xsYXRpb25LZXkgdmFsdWUgaW4gYSBzZXF1ZW5jZSBvZiBiaWctZW5kaWFuIGJ5dGUgYnl0ZXMgCisgICAgICogICAgICAgICB0ZXJtaW5hdGVkIGJ5IGEgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZVtdIHRvQnl0ZUFycmF5KCkgeworICAgICAgICByZXR1cm4ga2V5LnRvQnl0ZUFycmF5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29tcGFyZSB0aGlzIENvbGxhdGlvbktleSB0byBhbm90aGVyIENvbGxhdGlvbktleS4gIFRoZQorICAgICAqIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkIHRoaXMga2V5IGFyZQorICAgICAqIGFwcGxpZWQuPC9wPgorICAgICAqCisgICAgICogPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDb21wYXJpc29uIGJldHdlZW4gQ29sbGF0aW9uS2V5cworICAgICAqIGNyZWF0ZWQgYnkgZGlmZmVyZW50IENvbGxhdG9ycyBtaWdodCByZXR1cm4gaW5jb3JyZWN0CisgICAgICogcmVzdWx0cy4gIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IENvbGxhdGlvbktleQorICAgICAqIEByZXR1cm4gYW4gaW50ZWdlciB2YWx1ZS4gIElmIHRoZSB2YWx1ZSBpcyBsZXNzIHRoYW4gemVybyB0aGlzIENvbGxhdGlvbktleQorICAgICAqICAgICAgICAgaXMgbGVzcyB0aGFuIHRoYW4gdGFyZ2V0LCBpZiB0aGUgdmFsdWUgaXMgemVybyB0aGV5IGFyZSBlcXVhbCwgYW5kCisgICAgICogICAgICAgICBpZiB0aGUgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gdGhpcyBDb2xsYXRpb25LZXkgaXMgZ3JlYXRlciAKKyAgICAgKiAgICAgICAgIHRoYW4gdGFyZ2V0LgorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFyZ3VtZW50IGlzIG51bGwuCisgICAgICogQHNlZSBDb2xsYXRvciNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKwkgKi8KKwlwdWJsaWMgaW50IGNvbXBhcmVUbyhDb2xsYXRpb25LZXkgdGFyZ2V0KSB7CisJCXJldHVybiBrZXkuY29tcGFyZVRvKHRhcmdldC5rZXkpOworCX0KKwkKKwkvKioKKyAgICAgKiA8cD5Db21wYXJlIHRoaXMgQ29sbGF0aW9uS2V5IHdpdGggdGhlIHNwZWNpZmllZCBPYmplY3QuICBUaGUKKyAgICAgKiBjb2xsYXRpb24gcnVsZXMgb2YgdGhlIENvbGxhdG9yIHRoYXQgY3JlYXRlZCB0aGlzIGtleSBhcmUKKyAgICAgKiBhcHBsaWVkLjwvcD4KKyAgICAgKiAKKyAgICAgKiA8cD5TZWUgbm90ZSBpbiBjb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3Igd2FybmluZ3MgYWJvdXQgcG9zc2libGUKKyAgICAgKiBpbmNvcnJlY3QgcmVzdWx0cy48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBPYmplY3QgdG8gYmUgY29tcGFyZWQgdG8uCisgICAgICogQHJldHVybiBSZXR1cm5zIGEgbmVnYXRpdmUgaW50ZWdlciwgemVybywgb3IgYSBwb3NpdGl2ZSBpbnRlZ2VyIAorICAgICAqICAgICAgICAgcmVzcGVjdGl2ZWx5IGlmIHRoaXMgQ29sbGF0aW9uS2V5IGlzIGxlc3MgdGhhbiwgZXF1YWwgdG8sIG9yIAorICAgICAqICAgICAgICAgZ3JlYXRlciB0aGFuIHRoZSBnaXZlbiBPYmplY3QuCisgICAgICogQGV4Y2VwdGlvbiBDbGFzc0Nhc3RFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IGlzIG5vdCAKKyAgICAgKiAgICAgICAgICAgIGEgQ29sbGF0aW9uS2V5LiAgTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IAorICAgICAqICAgICAgICAgICAgaXMgbnVsbC4KKyAgICAgKiBAc2VlICNjb21wYXJlVG8oQ29sbGF0aW9uS2V5KQorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKwkgKi8KKwlwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgbykgeworCQlyZXR1cm4gY29tcGFyZVRvKChDb2xsYXRpb25LZXkpbyk7CisJfQorCQorCS8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgYW5kIHRoZSBzcGVjaWZpZWQgT2JqZWN0IGZvcgorICAgICAqIGVxdWFsaXR5LiAgVGhlIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkCisgICAgICogdGhpcyBrZXkgYXJlIGFwcGxpZWQuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIG5vdGUgaW4gY29tcGFyZVRvKENvbGxhdGlvbktleSkgZm9yIHdhcm5pbmdzIGFib3V0CisgICAgICogcG9zc2libGUgaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28ga2V5cyBjb21wYXJlIGFzIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHNlZSAjY29tcGFyZVRvKENvbGxhdGlvbktleSkKKyAgICAgKiBAZXhjZXB0aW9uIENsYXNzQ2FzdEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSBDb2xsYXRpb25LZXkuICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgCisgICAgICogICAgICAgICAgICBpcyBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRhcmdldCkgeworCQl0cnkgeworCQkJcmV0dXJuIGtleS5lcXVhbHMoKChDb2xsYXRpb25LZXkpdGFyZ2V0KS5rZXkpOworCQl9CisJCWNhdGNoIChFeGNlcHRpb24gZSkgeworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQorCQorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgYW5kIHRoZSBhcmd1bWVudCB0YXJnZXQgQ29sbGF0aW9uS2V5IGZvciAKKyAgICAgKiBlcXVhbGl0eS4KKyAgICAgKiBUaGUgY29sbGF0aW9uIAorICAgICAqIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciBvYmplY3Qgd2hpY2ggY3JlYXRlZCB0aGVzZSBvYmplY3RzIGFyZSBhcHBsaWVkLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgbm90ZSBpbiBjb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3Igd2FybmluZ3Mgb2YgaW5jb3JyZWN0IHJlc3VsdHMKKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgQ29sbGF0aW9uS2V5IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHR3byBvYmplY3RzIGFyZSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKENvbGxhdGlvbktleSB0YXJnZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXkuZXF1YWxzKHRhcmdldC5rZXkpOworICAgIH0KKyAgICAKKwkvKioKKyAgICAgKiA8cD5SZXR1cm5zIGEgaGFzaCBjb2RlIGZvciB0aGlzIENvbGxhdGlvbktleS4gVGhlIGhhc2ggdmFsdWUgaXMgY2FsY3VsYXRlZCAKKyAgICAgKiBvbiB0aGUga2V5IGl0c2VsZiwgbm90IHRoZSBTdHJpbmcgZnJvbSB3aGljaCB0aGUga2V5IHdhcyBjcmVhdGVkLiBUaHVzIAorICAgICAqIGlmIHggYW5kIHkgYXJlIENvbGxhdGlvbktleXMsIHRoZW4geC5oYXNoQ29kZSh4KSA9PSB5Lmhhc2hDb2RlKCkgCisgICAgICogaWYgeC5lcXVhbHMoeSkgaXMgdHJ1ZS4gVGhpcyBhbGxvd3MgbGFuZ3VhZ2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gYSAKKyAgICAgKiBoYXNoIHRhYmxlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIHZhbHVlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorCSAqLworCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisJCXJldHVybiBrZXkuaGFzaENvZGUoKTsKKwl9CisJCisJLyoqCisJICogUmV0dXJuIGEgZGVzY3JpcHRpb24gb2YgdGhlIENvbGxhdGlvbktleS4KKyAgICAgKiBAcmV0dXJuIGEgZGVzY3JpcHRpb24gb2YgdGhlIENvbGxhdGlvbktleSwgdXNlZCBmb3IgZGVidWdnaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjIKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworCQlyZXR1cm4ga2V5LnRvU3RyaW5nKCk7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI2MDMyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yLmphdmEKQEAgLTAsMCArMSw1NjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorKiA8cD5Db2xsYXRvciBwZXJmb3JtcyBsb2NhbGUtc2Vuc2l0aXZlIHN0cmluZyBjb21wYXJpc29uLjwvcD4KKyoKKyogPHA+Rm9sbG93aW5nIHRoZSA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmc+VW5pY29kZQorKiBDb25zb3J0aXVtPC9hPidzIHNwZWNpZmljYXRpb25zIGZvciB0aGUKKyogPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8iPiBVbmljb2RlIENvbGxhdGlvbgorKiBBbGdvcml0aG0gKFVDQSk8L2E+LCB0aGVyZSBhcmUgNSBkaWZmZXJlbnQgbGV2ZWxzIG9mIHN0cmVuZ3RoIHVzZWQKKyogaW4gY29tcGFyaXNvbnM6CisqCisqIDx1bD4KKyogPGxpPlBSSU1BUlkgc3RyZW5ndGg6IFR5cGljYWxseSwgdGhpcyBpcyB1c2VkIHRvIGRlbm90ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCisqICAgICBiYXNlIGNoYXJhY3RlcnMgKGZvciBleGFtcGxlLCAiYSIgJmx0OyAiYiIpLgorKiAgICAgSXQgaXMgdGhlIHN0cm9uZ2VzdCBkaWZmZXJlbmNlLiBGb3IgZXhhbXBsZSwgZGljdGlvbmFyaWVzIGFyZSBkaXZpZGVkCisqICAgICBpbnRvIGRpZmZlcmVudCBzZWN0aW9ucyBieSBiYXNlIGNoYXJhY3Rlci4KKyogPGxpPlNFQ09OREFSWSBzdHJlbmd0aDogQWNjZW50cyBpbiB0aGUgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCBzZWNvbmRhcnkKKyogICAgIGRpZmZlcmVuY2VzIChmb3IgZXhhbXBsZSwgImFzIiAmbHQ7ICImYWdyYXZlO3MiICZsdDsgImF0IikuIE90aGVyCisqICAgICBkaWZmZXJlbmNlcworKiAgICAgYmV0d2VlbiBsZXR0ZXJzIGNhbiBhbHNvIGJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5IGRpZmZlcmVuY2VzLCBkZXBlbmRpbmcKKyogICAgIG9uIHRoZSBsYW5ndWFnZS4gQSBzZWNvbmRhcnkgZGlmZmVyZW5jZSBpcyBpZ25vcmVkIHdoZW4gdGhlcmUgaXMgYQorKiAgICAgcHJpbWFyeSBkaWZmZXJlbmNlIGFueXdoZXJlIGluIHRoZSBzdHJpbmdzLgorKiA8bGk+VEVSVElBUlkgc3RyZW5ndGg6IFVwcGVyIGFuZCBsb3dlciBjYXNlIGRpZmZlcmVuY2VzIGluIGNoYXJhY3RlcnMgYXJlCisqICAgICBkaXN0aW5ndWlzaGVkIGF0IHRlcnRpYXJ5IHN0cmVuZ3RoIChmb3IgZXhhbXBsZSwgImFvIiAmbHQ7ICJBbyIgJmx0OworKiAgICAgImEmb2dyYXZlOyIpLiBJbiBhZGRpdGlvbiwgYSB2YXJpYW50IG9mIGEgbGV0dGVyIGRpZmZlcnMgZnJvbSB0aGUgYmFzZQorKiAgICAgZm9ybSBvbiB0aGUgdGVydGlhcnkgc3RyZW5ndGggKHN1Y2ggYXMgIkEiIGFuZCAiJiM5Mzk4OyIpLiBBbm90aGVyCisqICAgICBleGFtcGxlIGlzIHRoZQorKiAgICAgZGlmZmVyZW5jZSBiZXR3ZWVuIGxhcmdlIGFuZCBzbWFsbCBLYW5hLiBBIHRlcnRpYXJ5IGRpZmZlcmVuY2UgaXMgaWdub3JlZAorKiAgICAgd2hlbiB0aGVyZSBpcyBhIHByaW1hcnkgb3Igc2Vjb25kYXJ5IGRpZmZlcmVuY2UgYW55d2hlcmUgaW4gdGhlIHN0cmluZ3MuCisqIDxsaT5RVUFURVJOQVJZIHN0cmVuZ3RoOiBXaGVuIHB1bmN0dWF0aW9uIGlzIGlnbm9yZWQKKyogICAgIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0NvbmNlcHRzLmh0bWwjSWdub3JpbmdfUHVuY3R1YXRpb24iPgorKiAgICAgKHNlZSBJZ25vcmluZyBQdW5jdHVhdGlvbnMgaW4gdGhlIHVzZXIgZ3VpZGUpPC9hPiBhdCBQUklNQVJZIHRvIFRFUlRJQVJZCisqICAgICBzdHJlbmd0aCwgYW4gYWRkaXRpb25hbCBzdHJlbmd0aCBsZXZlbCBjYW4KKyogICAgIGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggd29yZHMgd2l0aCBhbmQgd2l0aG91dCBwdW5jdHVhdGlvbiAoZm9yIGV4YW1wbGUsCisqICAgICAiYWIiICZsdDsgImEtYiIgJmx0OyAiYUIiKS4KKyogICAgIFRoaXMgZGlmZmVyZW5jZSBpcyBpZ25vcmVkIHdoZW4gdGhlcmUgaXMgYSBQUklNQVJZLCBTRUNPTkRBUlkgb3IgVEVSVElBUlkKKyogICAgIGRpZmZlcmVuY2UuIFRoZSBRVUFURVJOQVJZIHN0cmVuZ3RoIHNob3VsZCBvbmx5IGJlIHVzZWQgaWYgaWdub3JpbmcKKyogICAgIHB1bmN0dWF0aW9uIGlzIHJlcXVpcmVkLgorKiA8bGk+SURFTlRJQ0FMIHN0cmVuZ3RoOgorKiAgICAgV2hlbiBhbGwgb3RoZXIgc3RyZW5ndGhzIGFyZSBlcXVhbCwgdGhlIElERU5USUNBTCBzdHJlbmd0aCBpcyB1c2VkIGFzIGEKKyogICAgIHRpZWJyZWFrZXIuIFRoZSBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWVzIG9mIHRoZSBORkQgZm9ybSBvZiBlYWNoIHN0cmluZworKiAgICAgYXJlIGNvbXBhcmVkLCBqdXN0IGluIGNhc2UgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZS4KKyogICAgIEZvciBleGFtcGxlLCBIZWJyZXcgY2FudGVsbGF0aW9uIG1hcmtzIGFyZSBvbmx5IGRpc3Rpbmd1aXNoZWQgYXQgdGhpcworKiAgICAgc3RyZW5ndGguIFRoaXMgc3RyZW5ndGggc2hvdWxkIGJlIHVzZWQgc3BhcmluZ2x5LCBhcyBvbmx5IGNvZGUgcG9pbnQKKyogICAgIHZhbHVlIGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvIHN0cmluZ3MgaXMgYW4gZXh0cmVtZWx5IHJhcmUgb2NjdXJyZW5jZS4KKyogICAgIFVzaW5nIHRoaXMgc3RyZW5ndGggc3Vic3RhbnRpYWxseSBkZWNyZWFzZXMgdGhlIHBlcmZvcm1hbmNlIGZvciBib3RoCisqICAgICBjb21wYXJpc29uIGFuZCBjb2xsYXRpb24ga2V5IGdlbmVyYXRpb24gQVBJcy4gVGhpcyBzdHJlbmd0aCBhbHNvCisqICAgICBpbmNyZWFzZXMgdGhlIHNpemUgb2YgdGhlIGNvbGxhdGlvbiBrZXkuCisqIDwvdWw+CisqCisqIFVubGlrZSB0aGUgSkRLLCBJQ1U0SidzIENvbGxhdG9yIGRlYWxzIG9ubHkgd2l0aCAyIGRlY29tcG9zaXRpb24gbW9kZXMsCisqIHRoZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBtb2RlIGFuZCBvbmUgdGhhdCBkb2VzIG5vdCB1c2UgYW55IGRlY29tcG9zaXRpb24uCisqIFRoZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gbW9kZSwgamF2YS50ZXh0LkNvbGxhdG9yLkZVTExfREVDT01QT1NJVElPTgorKiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIElmIHRoZSBjYW5vbmljYWwKKyogZGVjb21wb3NpdGlvbiBtb2RlIGlzIHNldCwgdGhlIENvbGxhdG9yIGhhbmRsZXMgdW4tbm9ybWFsaXplZCB0ZXh0IHByb3Blcmx5LAorKiBwcm9kdWNpbmcgdGhlIHNhbWUgcmVzdWx0cyBhcyBpZiB0aGUgdGV4dCB3ZXJlIG5vcm1hbGl6ZWQgaW4gTkZELiBJZgorKiBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBpcyB0dXJuZWQgb2ZmLCBpdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvCisqIGVuc3VyZSB0aGF0IGFsbCB0ZXh0IGlzIGFscmVhZHkgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm0gYmVmb3JlIHBlcmZvcm1pbmcKKyogYSBjb21wYXJpc29uIG9yIGJlZm9yZSBnZXR0aW5nIGEgQ29sbGF0aW9uS2V5LjwvcD4KKyoKKyogPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbGxhdGlvbiBzZXJ2aWNlIHNlZSB0aGUKKyogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfSW50cm8uaHRtbCI+dXNlcnMKKyogZ3VpZGU8L2E+LjwvcD4KKyoKKyogPHA+RXhhbXBsZXMgb2YgdXNlCisqIDxwcmU+CisqIC8vIEdldCB0aGUgQ29sbGF0b3IgZm9yIFVTIEVuZ2xpc2ggYW5kIHNldCBpdHMgc3RyZW5ndGggdG8gUFJJTUFSWQorKiBDb2xsYXRvciB1c0NvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyogdXNDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyogaWYgKHVzQ29sbGF0b3IuY29tcGFyZSgiYWJjIiwgIkFCQyIpID09IDApIHsKKyogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5ncyBhcmUgZXF1aXZhbGVudCIpOworKiB9CisqCisqIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgdG8gY29tcGFyZSB0d28gc3RyaW5ncyB1c2luZyB0aGUKKyogQ29sbGF0b3IgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyoKKyogLy8gQ29tcGFyZSB0d28gc3RyaW5ncyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUKKyogQ29sbGF0b3IgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisqIG15Q29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihOT19ERUNPTVBPU0lUSU9OKTsKKyogaWYgKG15Q29sbGF0b3IuY29tcGFyZSgiJmFncmF2ZTsmIzkyO3UwMzI1IiwgImEmIzkyO3UwMzI1JiM3Njg7IikgIT0gMCkgeworKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCImYWdyYXZlOyYjOTI7dTAzMjUgaXMgbm90IGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRob3V0IGRlY29tcG9zaXRpb24iKTsKKyogICAgIG15Q29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDQU5PTklDQUxfREVDT01QT1NJVElPTik7CisqICAgICBpZiAobXlDb2xsYXRvci5jb21wYXJlKCImYWdyYXZlOyYjOTI7dTAzMjUiLCAiYSYjOTI7dTAzMjUmIzc2ODsiKSAhPSAwKSB7CisqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvcjogJmFncmF2ZTsmIzkyO3UwMzI1IHNob3VsZCBiZSBlcXVhbHMgdG8gYSYjOTI7dTAzMjUmIzc2ODsgd2l0aCBkZWNvbXBvc2l0aW9uIik7CisqICAgICB9CisqICAgICBlbHNlIHsKKyogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiZhZ3JhdmU7JiM5Mjt1MDMyNSBpcyBlcXVhbHMgdG8gYSYjOTI7dTAzMjUmIzc2ODsgd2l0aCBkZWNvbXBvc2l0aW9uIik7CisqICAgICB9CisqIH0KKyogZWxzZSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yOiAmYWdyYXZlOyYjOTI7dTAzMjUgc2hvdWxkIGJlIG5vdCBlcXVhbHMgdG8gYSYjOTI7dTAzMjUmIzc2ODsgd2l0aG91dCBkZWNvbXBvc2l0aW9uIik7CisqIH0KKyogPC9wcmU+CisqIDwvcD4KKyogQHNlZSBDb2xsYXRpb25LZXkKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHN0YWJsZSBJQ1UgMi44CisqLworcHVibGljIGNsYXNzIENvbGxhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciwgQ2xvbmVhYmxlCit7CisJLyoqCisJICogQGludGVybmFsCisJICovCisJcHJpdmF0ZSBmaW5hbCBqYXZhLnRleHQuQ29sbGF0b3IgY29sbGF0b3I7CisJCisJLyoqCisJICogQGludGVybmFsCisJICovCisJcHJpdmF0ZSBDb2xsYXRvcihqYXZhLnRleHQuQ29sbGF0b3IgZGVsZWdhdGUpIHsKKwkJdGhpcy5jb2xsYXRvciA9IGRlbGVnYXRlOworCX0KKwkKKwkvKioKKwkgKiBDcmVhdGUgYSBjb2xsYXRvciB3aXRoIGEgbnVsbCBkZWxlZ2F0ZS4KKwkgKiBGb3IgdXNlIGJ5IHBvc3NpYmxlIHN1YmNsYXNzZXJzLiAgVGhpcyBpcyBwcmVzZW50IHNpbmNlCisJICogdGhlIG9yaWdpbmFsIENvbGxhdG9yIGlzIGFic3RyYWN0LCBhbmQgc28sIGluIHRoZW9yeQorCSAqIHN1YmNsYXNzYWJsZS4gIEFsbCBtZW1iZXIgQVBJcyBtdXN0IGJlIG92ZXJyaWRkZW4uCisJICovCisJcHJvdGVjdGVkIENvbGxhdG9yKCkgeworCQl0aGlzLmNvbGxhdG9yID0gbnVsbDsKKwl9CisJCisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFN0cm9uZ2VzdCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4gVHlwaWNhbGx5IHVzZWQgdG8gZGVub3RlIGRpZmZlcmVuY2VzCisgICAgICogYmV0d2VlbiBiYXNlIGNoYXJhY3RlcnMuIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBQUklNQVJZID0gamF2YS50ZXh0LkNvbGxhdG9yLlBSSU1BUlk7CisKKyAgICAvKioKKyAgICAgKiBTZWNvbmQgbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuCisgICAgICogQWNjZW50cyBpbiB0aGUgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCBzZWNvbmRhcnkgZGlmZmVyZW5jZXMuCisgICAgICogT3RoZXIgZGlmZmVyZW5jZXMgYmV0d2VlbiBsZXR0ZXJzIGNhbiBhbHNvIGJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5CisgICAgICogZGlmZmVyZW5jZXMsIGRlcGVuZGluZyBvbiB0aGUgbGFuZ3VhZ2UuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09OREFSWSA9IGphdmEudGV4dC5Db2xsYXRvci5TRUNPTkRBUlk7CisKKyAgICAvKioKKyAgICAgKiBUaGlyZCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBVcHBlciBhbmQgbG93ZXIgY2FzZSBkaWZmZXJlbmNlcyBpbiBjaGFyYWN0ZXJzIGFyZSBkaXN0aW5ndWlzaGVkIGF0IHRoaXMKKyAgICAgKiBzdHJlbmd0aCBsZXZlbC4gSW4gYWRkaXRpb24sIGEgdmFyaWFudCBvZiBhIGxldHRlciBkaWZmZXJzIGZyb20gdGhlIGJhc2UKKyAgICAgKiBmb3JtIG9uIHRoZSB0ZXJ0aWFyeSBsZXZlbC4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEVSVElBUlkgPSBqYXZhLnRleHQuQ29sbGF0b3IuVEVSVElBUlk7CisKKyAgICAvKioKKyAgICAgKiBGb3VydGggbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuCisgICAgICogV2hlbiBwdW5jdHVhdGlvbiBpcyBpZ25vcmVkCisgICAgICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfQ29uY2VwdHMuaHRtbCNJZ25vcmluZ19QdW5jdHVhdGlvbiI+CisgICAgICogKHNlZSBJZ25vcmluZyBQdW5jdHVhdGlvbnMgaW4gdGhlIHVzZXIgZ3VpZGUpPC9hPiBhdCBQUklNQVJZIHRvIFRFUlRJQVJZCisgICAgICogc3RyZW5ndGgsIGFuIGFkZGl0aW9uYWwgc3RyZW5ndGggbGV2ZWwgY2FuCisgICAgICogYmUgdXNlZCB0byBkaXN0aW5ndWlzaCB3b3JkcyB3aXRoIGFuZCB3aXRob3V0IHB1bmN0dWF0aW9uLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBRVUFURVJOQVJZID0gamF2YS50ZXh0LkNvbGxhdG9yLklERU5USUNBTDsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNtYWxsZXN0IENvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLiBXaGVuIGFsbCBvdGhlciBzdHJlbmd0aHMgYXJlIGVxdWFsLAorICAgICAqIHRoZSBJREVOVElDQUwgc3RyZW5ndGggaXMgdXNlZCBhcyBhIHRpZWJyZWFrZXIuIFRoZSBVbmljb2RlIGNvZGUgcG9pbnQKKyAgICAgKiB2YWx1ZXMgb2YgdGhlIE5GRCBmb3JtIG9mIGVhY2ggc3RyaW5nIGFyZSBjb21wYXJlZCwganVzdCBpbiBjYXNlIHRoZXJlCisgICAgICogaXMgbm8gZGlmZmVyZW5jZS4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogTm90ZSB0aGlzIHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIEpESydzCisgICAgICogPC9wPgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IElERU5USUNBTCA9IGphdmEudGV4dC5Db2xsYXRvci5GVUxMX0RFQ09NUE9TSVRJT047CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIEphdmEgQVBJcyBvbmx5LiAgSXQKKyAgICAgKiBzaG91bGQgbm90IGJlIHVzZWQsIElERU5USUNBTCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLiAgSUNVJ3MKKyAgICAgKiBjb2xsYXRpb24gZG9lcyBub3Qgc3VwcG9ydCBKYXZhJ3MgRlVMTF9ERUNPTVBPU0lUSU9OIG1vZGUuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAZGVwcmVjYXRlZCBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIEphdmEgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBGVUxMX0RFQ09NUE9TSVRJT04gPSBqYXZhLnRleHQuQ29sbGF0b3IuRlVMTF9ERUNPTVBPU0lUSU9OOworCisgICAgLyoqCisgICAgICogPHA+RGVjb21wb3NpdGlvbiBtb2RlIHZhbHVlLiBXaXRoIE5PX0RFQ09NUE9TSVRJT04gc2V0LCBTdHJpbmdzCisgICAgICogd2lsbCBub3QgYmUgZGVjb21wb3NlZCBmb3IgY29sbGF0aW9uLiBUaGlzIGlzIHRoZSBkZWZhdWx0CisgICAgICogZGVjb21wb3NpdGlvbiBzZXR0aW5nIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkIGJ5IHRoZSBsb2NhbGUKKyAgICAgKiB1c2VkIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+IHRoaXMgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIEpESydzLjwvcD4KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTk9fREVDT01QT1NJVElPTiA9IGphdmEudGV4dC5Db2xsYXRvci5OT19ERUNPTVBPU0lUSU9OOworCisgICAgLyoqCisgICAgICogPHA+RGVjb21wb3NpdGlvbiBtb2RlIHZhbHVlLiBXaXRoIENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIHNldCwKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNhbm9uaWNhbCB2YXJpYW50cyBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQKKyAgICAgKiB3aWxsIGJlIGRlY29tcG9zZWQgZm9yIGNvbGxhdGlvbi48L3A+CisgICAgICoKKyAgICAgKiA8cD5DQU5PTklDQUxfREVDT01QT1NJVElPTiBjb3JyZXNwb25kcyB0byBOb3JtYWxpemF0aW9uIEZvcm0gRCBhcworICAgICAqIGRlc2NyaWJlZCBpbiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyI+CisgICAgICogVW5pY29kZSBUZWNobmljYWwgUmVwb3J0ICMxNTwvYT4uCisgICAgICogPC9wPgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OID0gamF2YS50ZXh0LkNvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OOworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5TZXRzIHRoaXMgQ29sbGF0b3IncyBzdHJlbmd0aCBwcm9wZXJ0eS4gVGhlIHN0cmVuZ3RoIHByb3BlcnR5CisgICAgICogZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBsZXZlbCBvZiBkaWZmZXJlbmNlIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQKKyAgICAgKiBkdXJpbmcgY29tcGFyaXNvbi48L3A+CisgICAgICoKKyAgICAgKiA8cD5UaGUgZGVmYXVsdCBzdHJlbmd0aCBmb3IgdGhlIENvbGxhdG9yIGlzIFRFUlRJQVJZLCB1bmxlc3Mgc3BlY2lmaWVkCisgICAgICogb3RoZXJ3aXNlIGJ5IHRoZSBsb2NhbGUgdXNlZCB0byBjcmVhdGUgdGhlIENvbGxhdG9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLjwvcD4KKyAgICAgKiBAcGFyYW0gbmV3U3RyZW5ndGggdGhlIG5ldyBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI1BSSU1BUlkKKyAgICAgKiBAc2VlICNTRUNPTkRBUlkKKyAgICAgKiBAc2VlICNURVJUSUFSWQorICAgICAqIEBzZWUgI1FVQVRFUk5BUlkKKyAgICAgKiBAc2VlICNJREVOVElDQUwKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlIGlzIG5vdCBvbmUKKyAgICAgKiAgICAgICAgICAgICAgICBvZiBQUklNQVJZLCBTRUNPTkRBUlksIFRFUlRJQVJZLCBRVUFURVJOQVJZIG9yIElERU5USUNBTC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdHJlbmd0aChpbnQgbmV3U3RyZW5ndGgpIHsKKyAgICAJY29sbGF0b3Iuc2V0U3RyZW5ndGgobmV3U3RyZW5ndGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgZGVjb21wb3NpdGlvbiBtb2RlIG9mIHRoaXMgQ29sbGF0b3IuICBTZXR0aW5nIHRoaXMKKyAgICAgKiBkZWNvbXBvc2l0aW9uIHByb3BlcnR5IHdpdGggQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gYWxsb3dzIHRoZQorICAgICAqIENvbGxhdG9yIHRvIGhhbmRsZSB1bi1ub3JtYWxpemVkIHRleHQgcHJvcGVybHksIHByb2R1Y2luZyB0aGUKKyAgICAgKiBzYW1lIHJlc3VsdHMgYXMgaWYgdGhlIHRleHQgd2VyZSBub3JtYWxpemVkLiBJZgorICAgICAqIE5PX0RFQ09NUE9TSVRJT04gaXMgc2V0LCBpdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvCisgICAgICogaW5zdXJlIHRoYXQgYWxsIHRleHQgaXMgYWxyZWFkeSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybSBiZWZvcmUKKyAgICAgKiBhIGNvbXBhcmlzb24gb3IgYmVmb3JlIGdldHRpbmcgYSBDb2xsYXRpb25LZXkuIEFkanVzdGluZworICAgICAqIGRlY29tcG9zaXRpb24gbW9kZSBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGJldHdlZW4gZmFzdGVyIGFuZAorICAgICAqIG1vcmUgY29tcGxldGUgY29sbGF0aW9uIGJlaGF2aW9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNpbmNlIGEgZ3JlYXQgbWFueSBvZiB0aGUgd29ybGQncyBsYW5ndWFnZXMgZG8gbm90IHJlcXVpcmUKKyAgICAgKiB0ZXh0IG5vcm1hbGl6YXRpb24sIG1vc3QgbG9jYWxlcyBzZXQgTk9fREVDT01QT1NJVElPTiBhcyB0aGUKKyAgICAgKiBkZWZhdWx0IGRlY29tcG9zaXRpb24gbW9kZS48L3A+CisgICAgICoKKyAgICAgKiBUaGUgZGVmYXVsdCBkZWNvbXBvc2l0b24gbW9kZSBmb3IgdGhlIENvbGxhdG9yIGlzCisgICAgICogTk9fREVDT01QT1NJVE9OLCB1bmxlc3Mgc3BlY2lmaWVkIG90aGVyd2lzZSBieSB0aGUgbG9jYWxlIHVzZWQKKyAgICAgKiB0byBjcmVhdGUgdGhlIENvbGxhdG9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSBnZXREZWNvbXBvc2l0aW9uIGZvciBhIGRlc2NyaXB0aW9uIG9mIGRlY29tcG9zaXRpb24KKyAgICAgKiBtb2RlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZWNvbXBvc2l0aW9uIHRoZSBuZXcgZGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBub3QgYSB2YWxpZAorICAgICAqICAgICAgICAgICAgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY29tcG9zaXRpb24oaW50IGRlY29tcG9zaXRpb24pIHsKKyAgICAJY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihkZWNvbXBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ29sbGF0b3IgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGxvY2FsZSBpcyBkZXRlcm1pbmVkIGJ5IGphdmEudXRpbC5Mb2NhbGUuZ2V0RGVmYXVsdCgpLgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdG9yIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgKGZvciBleGFtcGxlLCBlbl9VUykgaWYgaXQKKyAgICAgKiAgICAgICAgIGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBPdGhlcndpc2UgaWYgdGhlcmUgaXMgbm8gQ29sbGF0b3IKKyAgICAgKiAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBsb2NhbGUsIHRoZSBkZWZhdWx0IFVDQSBjb2xsYXRvcgorICAgICAqICAgICAgICAgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUjZ2V0RGVmYXVsdCgpCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoTG9jYWxlKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0b3IoamF2YS50ZXh0LkNvbGxhdG9yLmdldEluc3RhbmNlKCkpOworICAgIH0KKworICAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZSBpZiBpdCBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgYSBkZWZhdWx0IFVDQSBjb2xsYXRvciB3aWxsCisgICAgICogICAgICAgICBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAgICAgKiBAc2VlIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKExvY2FsZSkKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZSgpCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdG9yIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgCXJldHVybiBnZXRJbnN0YW5jZShsb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIENvbGxhdG9yIGZvciB0aGUgZGVzaXJlZCBsb2NhbGUgaWYgaXQgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICBPdGhlcndpc2UgaWYgdGhlcmUgaXMgbm8gQ29sbGF0b3IKKyAgICAgKiAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBsb2NhbGUsIGEgZGVmYXVsdCBVQ0EgY29sbGF0b3Igd2lsbAorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgICAgICogQHNlZSBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZShVTG9jYWxlKQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdG9yIGdldEluc3RhbmNlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRvcihqYXZhLnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKSk7CisgICAgfQorCisgICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIGxvY2FsZXMsIGFzIExvY2FsZSBvYmplY3RzLCBmb3Igd2hpY2ggY29sbGF0b3JzCisgICAgICogYXJlIGluc3RhbGxlZC4gIE5vdGUgdGhhdCBMb2NhbGUgb2JqZWN0cyBkbyBub3Qgc3VwcG9ydCBSRkMgMzA2Ni4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGxvY2FsZXMgaW4gd2hpY2ggY29sbGF0b3JzIGFyZSBpbnN0YWxsZWQuCisgICAgICogVGhpcyBsaXN0IGluY2x1ZGVzIGFueSB0aGF0IGhhdmUgYmVlbiByZWdpc3RlcmVkLCBpbiBhZGRpdGlvbiB0bworICAgICAqIHRob3NlIHRoYXQgYXJlIGluc3RhbGxlZCB3aXRoIElDVTRKLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAJcmV0dXJuIGphdmEudGV4dC5Db2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgbG9jYWxlcywgYXMgVUxvY2FsZSBvYmplY3RzLCBmb3Igd2hpY2ggY29sbGF0b3JzCisgICAgICogYXJlIGluc3RhbGxlZC4gIFVMb2NhbGUgb2JqZWN0cyBzdXBwb3J0IFJGQyAzMDY2LgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBpbiB3aGljaCBjb2xsYXRvcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBUaGlzIGxpc3QgaW5jbHVkZXMgYW55IHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQsIGluIGFkZGl0aW9uIHRvCisgICAgICogdGhvc2UgdGhhdCBhcmUgaW5zdGFsbGVkIHdpdGggSUNVNEouCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAJTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudGV4dC5Db2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgCVVMb2NhbGVbXSB1bG9jYWxlcyA9IG5ldyBVTG9jYWxlW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgCQl1bG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgIAl9CisgICAgCXJldHVybiB1bG9jYWxlczsKKyAgICB9CisgCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBwb3NzaWJsZSBrZXl3b3JkcyB0aGF0IGFyZSByZWxldmFudCB0bworICAgICAqIGNvbGxhdGlvbi4gQXQgdGhpcyBwb2ludCwgdGhlIG9ubHkgcmVjb2duaXplZCBrZXl3b3JkIGZvciB0aGlzCisgICAgICogc2VydmljZSBpcyAiY29sbGF0aW9uIi4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHZhbGlkIGNvbGxhdGlvbiBrZXl3b3Jkcy4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkVmFsdWVzCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEtleXdvcmRzKCkgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBrZXl3b3JkLCByZXR1cm4gYW4gYXJyYXkgb2YgYWxsIHZhbHVlcyBmb3IKKyAgICAgKiB0aGF0IGtleXdvcmQgdGhhdCBhcmUgY3VycmVudGx5IGluIHVzZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCBvbmUgb2YgdGhlIGtleXdvcmRzIHJldHVybmVkIGJ5IGdldEtleXdvcmRzLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEtleXdvcmRWYWx1ZXMoU3RyaW5nIGtleXdvcmQpIHsKKyAgICAJcmV0dXJuIG5ldyBTdHJpbmdbMF07CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmV0dXJucyB0aGlzIENvbGxhdG9yJ3Mgc3RyZW5ndGggcHJvcGVydHkuIFRoZSBzdHJlbmd0aCBwcm9wZXJ0eQorICAgICAqIGRldGVybWluZXMgdGhlIG1pbmltdW0gbGV2ZWwgb2YgZGlmZmVyZW5jZSBjb25zaWRlcmVkIHNpZ25pZmljYW50LgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIENvbGxhdG9yIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gdGhpcyBDb2xsYXRvcidzIGN1cnJlbnQgc3RyZW5ndGggcHJvcGVydHkuCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNQUklNQVJZCisgICAgICogQHNlZSAjU0VDT05EQVJZCisgICAgICogQHNlZSAjVEVSVElBUlkKKyAgICAgKiBAc2VlICNRVUFURVJOQVJZCisgICAgICogQHNlZSAjSURFTlRJQ0FMCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRTdHJlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmdldFN0cmVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogR2V0IHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgb2YgdGhpcyBDb2xsYXRvci4gRGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogZGV0ZXJtaW5lcyBob3cgVW5pY29kZSBjb21wb3NlZCBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIENvbGxhdG9yIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gdGhlIGRlY29tcG9zaXRpb24gbW9kZQorICAgICAqIEBzZWUgI3NldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNOT19ERUNPTVBPU0lUSU9OCisgICAgICogQHNlZSAjQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERlY29tcG9zaXRpb24oKSB7CisgICAgICAgIHJldHVybiBjb2xsYXRvci5nZXREZWNvbXBvc2l0aW9uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZXMgdGhlIHNvdXJjZSB0ZXh0IFN0cmluZyB0byB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nIGFjY29yZGluZyB0bworICAgICAqIHRoaXMgQ29sbGF0b3IncyBydWxlcywgc3RyZW5ndGggYW5kIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuLAorICAgICAqIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB6ZXJvIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzb3VyY2UgU3RyaW5nIGlzCisgICAgICogbGVzcyB0aGFuLCBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gdGhlIHRhcmdldCBTdHJpbmcuIFNlZSB0aGUgQ29sbGF0b3IKKyAgICAgKiBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBTdHJpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IFN0cmluZy4KKyAgICAgKiBAcmV0dXJuIFJldHVybnMgYW4gaW50ZWdlciB2YWx1ZS4gVmFsdWUgaXMgbGVzcyB0aGFuIHplcm8gaWYgc291cmNlIGlzCisgICAgICogICAgICAgICBsZXNzIHRoYW4gdGFyZ2V0LCB2YWx1ZSBpcyB6ZXJvIGlmIHNvdXJjZSBhbmQgdGFyZ2V0IGFyZSBlcXVhbCwKKyAgICAgKiAgICAgICAgIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LgorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5CisgICAgICogQHNlZSAjZ2V0Q29sbGF0aW9uS2V5CisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB0aHJvd24gaWYgZWl0aGVyIGFyZ3VtZW50cyBpcyBudWxsLgorICAgICAqICAgICAgICAgICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgc291cmNlIG9yIHRhcmdldCBpcworICAgICAqICAgICAgICAgICAgbm90IG9mIHRoZSBjbGFzcyBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAJcmV0dXJuIGNvbGxhdG9yLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY29tcGFyaW5nIHRoZSBlcXVhbGl0eSBvZiB0d28gdGV4dCBTdHJpbmdzIHVzaW5nCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBzdHJpbmcgdG8gYmUgY29tcGFyZWQuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IHN0cmluZyB0byBiZSBjb21wYXJlZC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZ3MgYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGUgY29sbGF0aW9uCisgICAgICogICAgICAgICBydWxlcywgb3RoZXJ3aXNlIGZhbHNlLgorICAgICAqIEBzZWUgI2NvbXBhcmUKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIChjb21wYXJlKHNvdXJjZSwgdGFyZ2V0KSA9PSAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb21wYXJlcyB0aGUgc291cmNlIHRleHQgU3RyaW5nIHRvIHRoZSB0YXJnZXQgdGV4dCBTdHJpbmcgYWNjb3JkaW5nIHRvCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBsZXNzIHRoYW4sCisgICAgICogZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHplcm8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNvdXJjZSBTdHJpbmcgaXMKKyAgICAgKiBsZXNzIHRoYW4sIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGFyZ2V0IFN0cmluZy4gU2VlIHRoZSBDb2xsYXRvcgorICAgICAqIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAJcmV0dXJuIGNvbGxhdG9yLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFRyYW5zZm9ybXMgdGhlIFN0cmluZyBpbnRvIGEgQ29sbGF0aW9uS2V5IHN1aXRhYmxlIGZvciBlZmZpY2llbnQKKyAgICAgKiByZXBlYXRlZCBjb21wYXJpc29uLiAgVGhlIHJlc3VsdGluZyBrZXkgZGVwZW5kcyBvbiB0aGUgY29sbGF0b3IncworICAgICAqIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5TZWUgdGhlIENvbGxhdGlvbktleSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzdHJpbmcgdG8gYmUgdHJhbnNmb3JtZWQgaW50byBhIENvbGxhdGlvbktleS4KKyAgICAgKiBAcmV0dXJuIHRoZSBDb2xsYXRpb25LZXkgZm9yIHRoZSBnaXZlbiBTdHJpbmcgYmFzZWQgb24gdGhpcyBDb2xsYXRvcidzCisgICAgICogICAgICAgICBjb2xsYXRpb24gcnVsZXMuIElmIHRoZSBzb3VyY2UgU3RyaW5nIGlzIG51bGwsIGEgbnVsbAorICAgICAqICAgICAgICAgQ29sbGF0aW9uS2V5IGlzIHJldHVybmVkLgorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5CisgICAgICogQHNlZSAjY29tcGFyZShTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uS2V5IGdldENvbGxhdGlvbktleShTdHJpbmcgc291cmNlKSB7CisgICAgCXJldHVybiBuZXcgQ29sbGF0aW9uS2V5KGNvbGxhdG9yLmdldENvbGxhdGlvbktleShzb3VyY2UpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisgICAgICogQHJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gY29sbGF0b3IudG9TdHJpbmcoKTsKKyAgICB9CisJCisgICAvKioKKyAgICAgKiBDbG9uZSB0aGUgY29sbGF0b3IuCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgY29sbGF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHRocm93cyBDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0b3IoKGphdmEudGV4dC5Db2xsYXRvciljb2xsYXRvci5jbG9uZSgpKTsKKyAgICB9CisJCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgcmhzIGlzIGEgQ29sbGF0b3IgYW5kIGNvbXBhcmVzIHRoZSBzYW1lIGFzIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHJocyBlcXVhbHMgdGhpcworICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBjb2xsYXRvci5lcXVhbHMoKChDb2xsYXRvcilyaHMpLmNvbGxhdG9yKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBoYXNoQ29kZS4KKyAgICAgKiBAcmV0dXJuIGEgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBjb2xsYXRvci5oYXNoQ29kZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2M3OGU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsOTg4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBEYXRlRm9ybWF0IGlzIGFuIGFic3RyYWN0IGNsYXNzIGZvciBkYXRlL3RpbWUgZm9ybWF0dGluZyBzdWJjbGFzc2VzIHdoaWNoCisgKiBmb3JtYXRzIGFuZCBwYXJzZXMgZGF0ZXMgb3IgdGltZSBpbiBhIGxhbmd1YWdlLWluZGVwZW5kZW50IG1hbm5lci4KKyAqIFRoZSBkYXRlL3RpbWUgZm9ybWF0dGluZyBzdWJjbGFzcywgc3VjaCBhcyBTaW1wbGVEYXRlRm9ybWF0LCBhbGxvd3MgZm9yCisgKiBmb3JtYXR0aW5nIChpLmUuLCBkYXRlIC0+IHRleHQpLCBwYXJzaW5nICh0ZXh0IC0+IGRhdGUpLCBhbmQKKyAqIG5vcm1hbGl6YXRpb24uICBUaGUgZGF0ZSBpcyByZXByZXNlbnRlZCBhcyBhIDxjb2RlPkRhdGU8L2NvZGU+IG9iamVjdCBvcgorICogYXMgdGhlIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAsIDAwOjAwOjAwIEdNVC4KKyAqCisgKiA8cD5EYXRlRm9ybWF0IHByb3ZpZGVzIG1hbnkgY2xhc3MgbWV0aG9kcyBmb3Igb2J0YWluaW5nIGRlZmF1bHQgZGF0ZS90aW1lCisgKiBmb3JtYXR0ZXJzIGJhc2VkIG9uIHRoZSBkZWZhdWx0IG9yIGEgZ2l2ZW4gbG9hY2xlIGFuZCBhIG51bWJlciBvZiBmb3JtYXR0aW5nCisgKiBzdHlsZXMuIFRoZSBmb3JtYXR0aW5nIHN0eWxlcyBpbmNsdWRlIEZVTEwsIExPTkcsIE1FRElVTSwgYW5kIFNIT1JULiBNb3JlCisgKiBkZXRhaWwgYW5kIGV4YW1wbGVzIG9mIHVzaW5nIHRoZXNlIHN0eWxlcyBhcmUgcHJvdmlkZWQgaW4gdGhlIG1ldGhvZAorICogZGVzY3JpcHRpb25zLgorICoKKyAqIDxwPkRhdGVGb3JtYXQgaGVscHMgeW91IHRvIGZvcm1hdCBhbmQgcGFyc2UgZGF0ZXMgZm9yIGFueSBsb2NhbGUuCisgKiBZb3VyIGNvZGUgY2FuIGJlIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIGxvY2FsZSBjb252ZW50aW9ucyBmb3IKKyAqIG1vbnRocywgZGF5cyBvZiB0aGUgd2Vlaywgb3IgZXZlbiB0aGUgY2FsZW5kYXIgZm9ybWF0OiBsdW5hciB2cy4gc29sYXIuCisgKgorICogPHA+VG8gZm9ybWF0IGEgZGF0ZSBmb3IgdGhlIGN1cnJlbnQgTG9jYWxlLCB1c2Ugb25lIG9mIHRoZQorICogc3RhdGljIGZhY3RvcnkgbWV0aG9kczoKKyAqIDxwcmU+CisgKiAgbXlTdHJpbmcgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLmZvcm1hdChteURhdGUpOworICogPC9wcmU+CisgKiA8cD5JZiB5b3UgYXJlIGZvcm1hdHRpbmcgbXVsdGlwbGUgbnVtYmVycywgaXQgaXMKKyAqIG1vcmUgZWZmaWNpZW50IHRvIGdldCB0aGUgZm9ybWF0IGFuZCB1c2UgaXQgbXVsdGlwbGUgdGltZXMgc28gdGhhdAorICogdGhlIHN5c3RlbSBkb2Vzbid0IGhhdmUgdG8gZmV0Y2ggdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbAorICogbGFuZ3VhZ2UgYW5kIGNvdW50cnkgY29udmVudGlvbnMgbXVsdGlwbGUgdGltZXMuCisgKiA8cHJlPgorICogIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpOworICogIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICogICAgb3V0cHV0LnByaW50bG4oZGYuZm9ybWF0KG15RGF0ZVtpXSkgKyAiOyAiKTsKKyAqICB9CisgKiA8L3ByZT4KKyAqIDxwPlRvIGZvcm1hdCBhIG51bWJlciBmb3IgYSBkaWZmZXJlbnQgTG9jYWxlLCBzcGVjaWZ5IGl0IGluIHRoZQorICogY2FsbCB0byBnZXREYXRlSW5zdGFuY2UoKS4KKyAqIDxwcmU+CisgKiAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgTG9jYWxlLkZSQU5DRSk7CisgKiA8L3ByZT4KKyAqIDxwPllvdSBjYW4gdXNlIGEgRGF0ZUZvcm1hdCB0byBwYXJzZSBhbHNvLgorICogPHByZT4KKyAqICBteURhdGUgPSBkZi5wYXJzZShteVN0cmluZyk7CisgKiA8L3ByZT4KKyAqIDxwPlVzZSBnZXREYXRlSW5zdGFuY2UgdG8gZ2V0IHRoZSBub3JtYWwgZGF0ZSBmb3JtYXQgZm9yIHRoYXQgY291bnRyeS4KKyAqIFRoZXJlIGFyZSBvdGhlciBzdGF0aWMgZmFjdG9yeSBtZXRob2RzIGF2YWlsYWJsZS4KKyAqIFVzZSBnZXRUaW1lSW5zdGFuY2UgdG8gZ2V0IHRoZSB0aW1lIGZvcm1hdCBmb3IgdGhhdCBjb3VudHJ5LgorICogVXNlIGdldERhdGVUaW1lSW5zdGFuY2UgdG8gZ2V0IGEgZGF0ZSBhbmQgdGltZSBmb3JtYXQuIFlvdSBjYW4gcGFzcyBpbiAKKyAqIGRpZmZlcmVudCBvcHRpb25zIHRvIHRoZXNlIGZhY3RvcnkgbWV0aG9kcyB0byBjb250cm9sIHRoZSBsZW5ndGggb2YgdGhlCisgKiByZXN1bHQ7IGZyb20gU0hPUlQgdG8gTUVESVVNIHRvIExPTkcgdG8gRlVMTC4gVGhlIGV4YWN0IHJlc3VsdCBkZXBlbmRzCisgKiBvbiB0aGUgbG9jYWxlLCBidXQgZ2VuZXJhbGx5OgorICogPHVsPjxsaT5TSE9SVCBpcyBjb21wbGV0ZWx5IG51bWVyaWMsIHN1Y2ggYXMgMTIuMTMuNTIgb3IgMzozMHBtCisgKiA8bGk+TUVESVVNIGlzIGxvbmdlciwgc3VjaCBhcyBKYW4gMTIsIDE5NTIKKyAqIDxsaT5MT05HIGlzIGxvbmdlciwgc3VjaCBhcyBKYW51YXJ5IDEyLCAxOTUyIG9yIDM6MzA6MzJwbQorICogPGxpPkZVTEwgaXMgcHJldHR5IGNvbXBsZXRlbHkgc3BlY2lmaWVkLCBzdWNoIGFzCisgKiBUdWVzZGF5LCBBcHJpbCAxMiwgMTk1MiBBRCBvciAzOjMwOjQycG0gUFNULgorICogPC91bD4KKyAqCisgKiA8cD5Zb3UgY2FuIGFsc28gc2V0IHRoZSB0aW1lIHpvbmUgb24gdGhlIGZvcm1hdCBpZiB5b3Ugd2lzaC4KKyAqIElmIHlvdSB3YW50IGV2ZW4gbW9yZSBjb250cm9sIG92ZXIgdGhlIGZvcm1hdCBvciBwYXJzaW5nLAorICogKG9yIHdhbnQgdG8gZ2l2ZSB5b3VyIHVzZXJzIG1vcmUgY29udHJvbCksCisgKiB5b3UgY2FuIHRyeSBjYXN0aW5nIHRoZSBEYXRlRm9ybWF0IHlvdSBnZXQgZnJvbSB0aGUgZmFjdG9yeSBtZXRob2RzCisgKiB0byBhIFNpbXBsZURhdGVGb3JtYXQuIFRoaXMgd2lsbCB3b3JrIGZvciB0aGUgbWFqb3JpdHkKKyAqIG9mIGNvdW50cmllczsganVzdCByZW1lbWJlciB0byBwdXQgaXQgaW4gYSB0cnkgYmxvY2sgaW4gY2FzZSB5b3UKKyAqIGVuY291bnRlciBhbiB1bnVzdWFsIG9uZS4KKyAqCisgKiA8cD5Zb3UgY2FuIGFsc28gdXNlIGZvcm1zIG9mIHRoZSBwYXJzZSBhbmQgZm9ybWF0IG1ldGhvZHMgd2l0aAorICogUGFyc2VQb3NpdGlvbiBhbmQgRmllbGRQb3NpdGlvbiB0bworICogYWxsb3cgeW91IHRvCisgKiA8dWw+PGxpPnByb2dyZXNzaXZlbHkgcGFyc2UgdGhyb3VnaCBwaWVjZXMgb2YgYSBzdHJpbmcuCisgKiA8bGk+YWxpZ24gYW55IHBhcnRpY3VsYXIgZmllbGQsIG9yIGZpbmQgb3V0IHdoZXJlIGl0IGlzIGZvciBzZWxlY3Rpb24KKyAqIG9uIHRoZSBzY3JlZW4uCisgKiA8L3VsPgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICoKKyAqIERhdGUgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gY3JlYXRlIHNlcGFyYXRlIAorICogZm9ybWF0IGluc3RhbmNlcyBmb3IgZWFjaCB0aHJlYWQuIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0IAorICogY29uY3VycmVudGx5LCBpdCBtdXN0IGJlIHN5bmNocm9uaXplZCBleHRlcm5hbGx5LiAKKyAqCisgKiBAc2VlICAgICAgICAgIFVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0IGV4dGVuZHMgRm9ybWF0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudGV4dC5EYXRlRm9ybWF0IGRhdGVGb3JtYXQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwYXJhbSBkZWxlZ2F0ZSB0aGUgRGF0ZUZvcm1hdCB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0IGRlbGVnYXRlKSB7CisgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IGRlbGVnYXRlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGb3Igc3ViY2xhc3MgdXNlLiAgU3ViY2xhc3NlcyB3aWxsIGdlbmVyYWxseSBub3QKKyAgICAgKiB3b3JrIGNvcnJlY3RseSB1bmxlc3MgdGhleSBtYW5pcHVsYXRlIHRoZSBkZWxlZ2F0ZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0ZUZvcm1hdCgpIHsKKyAgICAJdGhpcy5kYXRlRm9ybWF0ID0gamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNFUkF9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQV9GSUVMRCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAneScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNZRUFSfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSX0ZJRUxEID0gMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdNJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01PTlRIfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05USF9GSUVMRCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnZCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVRFfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVRFX0ZJRUxEID0gMzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdrJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJfT0ZfREFZfSBmaWVsZC4KKyAgICAgKiBIT1VSX09GX0RBWTFfRklFTEQgaXMgdXNlZCBmb3IgdGhlIG9uZS1iYXNlZCAyNC1ob3VyIGNsb2NrLgorICAgICAqIEZvciBleGFtcGxlLCAyMzo1OSArIDAxOjAwIHJlc3VsdHMgaW4gMjQ6NTkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkxX0ZJRUxEID0gNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdIJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJfT0ZfREFZfSBmaWVsZC4KKyAgICAgKiBIT1VSX09GX0RBWTBfRklFTEQgaXMgdXNlZCBmb3IgdGhlIHplcm8tYmFzZWQgMjQtaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMjM6NTkgKyAwMTowMCByZXN1bHRzIGluIDAwOjU5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVJfT0ZfREFZMF9GSUVMRCA9IDU7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnbScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNSU5VVEV9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURV9GSUVMRCA9IDY7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAncycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNTRUNPTkR9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09ORF9GSUVMRCA9IDc7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnUycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNSUxMSVNFQ09ORH0gZmllbGQuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRCA9IDg7CisKKyAgICAvKioKKyAgICAgKiBBbGlhcyBmb3IgRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSUxMSVNFQ09ORF9GSUVMRCA9IEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxEOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0UnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUt9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0ZJRUxEID0gOTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdEJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0RBWV9PRl9ZRUFSfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfWUVBUl9GSUVMRCA9IDEwOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0YnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUtfSU5fTU9OVEh9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxEID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAndycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNXRUVLX09GX1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRUtfT0ZfWUVBUl9GSUVMRCA9IDEyOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ1cnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjV0VFS19PRl9NT05USH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9NT05USF9GSUVMRCA9IDEzOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2EnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjQU1fUE19IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFNX1BNX0ZJRUxEID0gMTQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnaCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNIT1VSfSBmaWVsZC4KKyAgICAgKiBIT1VSMV9GSUVMRCBpcyB1c2VkIGZvciB0aGUgb25lLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMTI6MzAgQU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjFfRklFTEQgPSAxNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdLJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJ9IGZpZWxkLgorICAgICAqIEhPVVIwX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSB6ZXJvLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMDA6MzAgQU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjBfRklFTEQgPSAxNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd6JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1pPTkVfT0ZGU0VUfSBhbmQKKyAgICAgKiB7QGxpbmsgQ2FsZW5kYXIjRFNUX09GRlNFVH0gZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRJTUVaT05FX0ZJRUxEID0gMTc7CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgRm9ybWF0LgorICAgICAqIEZvcm1hdHMgYSB0aW1lIG9iamVjdCBpbnRvIGEgdGltZSBzdHJpbmcuIEV4YW1wbGVzIG9mIHRpbWUgb2JqZWN0cworICAgICAqIGFyZSBhIHRpbWUgdmFsdWUgZXhwcmVzc2VkIGluIG1pbGxpc2Vjb25kcyBhbmQgYSBEYXRlIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gb2JqIG11c3QgYmUgYSBOdW1iZXIgb3IgYSBEYXRlIG9yIGEgQ2FsZW5kYXIuCisgICAgICogQHBhcmFtIHRvQXBwZW5kVG8gdGhlIHN0cmluZyBidWZmZXIgZm9yIHRoZSByZXR1cm5pbmcgdGltZSBzdHJpbmcuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIHRpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZFBvc2l0aW9uIGtlZXBzIHRyYWNrIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQKKyAgICAgKiB3aXRoaW4gdGhlIHJldHVybmVkIHN0cmluZy4KKyAgICAgKiBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLAorICAgICAqIGlmIGRlc2lyZWQuIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4gRm9yCisgICAgICogZXhhbXBsZSwgZ2l2ZW4gYSB0aW1lIHRleHQgIjE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUERUIiwKKyAgICAgKiBpZiB0aGUgZ2l2ZW4gZmllbGRQb3NpdGlvbiBpcyBEYXRlRm9ybWF0LllFQVJfRklFTEQsIHRoZQorICAgICAqIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDAgYW5kIDQsIHJlc3BlY3RpdmVseS4KKyAgICAgKiBOb3RpY2UgdGhhdCBpZiB0aGUgc2FtZSB0aW1lIGZpZWxkIGFwcGVhcnMKKyAgICAgKiBtb3JlIHRoYW4gb25jZSBpbiBhIHBhdHRlcm4sIHRoZSBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IGZvciB0aGUgZmlyc3QKKyAgICAgKiBvY2N1cmVuY2Ugb2YgdGhhdCB0aW1lIGZpZWxkLiBGb3IgaW5zdGFuY2UsIGZvcm1hdHRpbmcgYSBEYXRlIHRvCisgICAgICogdGhlIHRpbWUgc3RyaW5nICIxIFBNIFBEVCAoUGFjaWZpYyBEYXlsaWdodCBUaW1lKSIgdXNpbmcgdGhlIHBhdHRlcm4KKyAgICAgKiAiaCBhIHogKHp6enopIiBhbmQgdGhlIGFsaWdubWVudCBmaWVsZCBEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxELAorICAgICAqIHRoZSBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiA1IGFuZCA4LCByZXNwZWN0aXZlbHksIGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSB0aW1lem9uZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVyICd6Jy4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3Qgb2JqLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBDYWxlbmRhcikgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoQ2FsZW5kYXIpb2JqLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uKTsKKyAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChEYXRlKW9iaiwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbik7CisgICAgICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgTnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KG5ldyBEYXRlKCgoTnVtYmVyKW9iaikubG9uZ1ZhbHVlKCkpLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uICk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW5ub3QgZm9ybWF0IGdpdmVuIE9iamVjdCBhcyBhIERhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBkYXRlIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBjYWwgYSBDYWxlbmRhciBzZXQgdG8gdGhlIGRhdGUgYW5kIHRpbWUgdG8gYmUgZm9ybWF0dGVkCisgICAgICogaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRvQXBwZW5kVG8gdGhlIHN0cmluZyBidWZmZXIgZm9yIHRoZSByZXR1cm5pbmcgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZmllbGRQb3NpdGlvbiBrZWVwcyB0cmFjayBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkCisgICAgICogd2l0aGluIHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgICogT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuIEZvcgorICAgICAqIGV4YW1wbGUsIGdpdmVuIGEgdGltZSB0ZXh0ICIxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVCIsCisgICAgICogaWYgdGhlIGdpdmVuIGZpZWxkUG9zaXRpb24gaXMgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCB0aGUKKyAgICAgKiBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiAwIGFuZCA0LCByZXNwZWN0aXZlbHkuCisgICAgICogTm90aWNlIHRoYXQgaWYgdGhlIHNhbWUgdGltZSBmaWVsZCBhcHBlYXJzCisgICAgICogbW9yZSB0aGFuIG9uY2UgaW4gYSBwYXR0ZXJuLCB0aGUgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCBmb3IgdGhlIGZpcnN0CisgICAgICogb2NjdXJlbmNlIG9mIHRoYXQgdGltZSBmaWVsZC4gRm9yIGluc3RhbmNlLCBmb3JtYXR0aW5nIGEgRGF0ZSB0bworICAgICAqIHRoZSB0aW1lIHN0cmluZyAiMSBQTSBQRFQgKFBhY2lmaWMgRGF5bGlnaHQgVGltZSkiIHVzaW5nIHRoZSBwYXR0ZXJuCisgICAgICogImggYSB6ICh6enp6KSIgYW5kIHRoZSBhbGlnbm1lbnQgZmllbGQgRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCwKKyAgICAgKiB0aGUgYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogNSBhbmQgOCwgcmVzcGVjdGl2ZWx5LCBmb3IgdGhlIGZpcnN0IG9jY3VyZW5jZSBvZiB0aGUgdGltZXpvbmUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlciAneicuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQ2FsZW5kYXIgY2FsLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQoY2FsLmdldFRpbWUoKSwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbik7CisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIERhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGRhdGUgYSBEYXRlIHRvIGJlIGZvcm1hdHRlZCBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZFBvc2l0aW9uIGtlZXBzIHRyYWNrIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQKKyAgICAgKiB3aXRoaW4gdGhlIHJldHVybmVkIHN0cmluZy4KKyAgICAgKiBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLAorICAgICAqIGlmIGRlc2lyZWQuIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4gRm9yCisgICAgICogZXhhbXBsZSwgZ2l2ZW4gYSB0aW1lIHRleHQgIjE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUERUIiwKKyAgICAgKiBpZiB0aGUgZ2l2ZW4gZmllbGRQb3NpdGlvbiBpcyBEYXRlRm9ybWF0LllFQVJfRklFTEQsIHRoZQorICAgICAqIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDAgYW5kIDQsIHJlc3BlY3RpdmVseS4KKyAgICAgKiBOb3RpY2UgdGhhdCBpZiB0aGUgc2FtZSB0aW1lIGZpZWxkIGFwcGVhcnMKKyAgICAgKiBtb3JlIHRoYW4gb25jZSBpbiBhIHBhdHRlcm4sIHRoZSBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IGZvciB0aGUgZmlyc3QKKyAgICAgKiBvY2N1cmVuY2Ugb2YgdGhhdCB0aW1lIGZpZWxkLiBGb3IgaW5zdGFuY2UsIGZvcm1hdHRpbmcgYSBEYXRlIHRvCisgICAgICogdGhlIHRpbWUgc3RyaW5nICIxIFBNIFBEVCAoUGFjaWZpYyBEYXlsaWdodCBUaW1lKSIgdXNpbmcgdGhlIHBhdHRlcm4KKyAgICAgKiAiaCBhIHogKHp6enopIiBhbmQgdGhlIGFsaWdubWVudCBmaWVsZCBEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxELAorICAgICAqIHRoZSBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiA1IGFuZCA4LCByZXNwZWN0aXZlbHksIGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSB0aW1lem9uZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVyICd6Jy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChEYXRlIGRhdGUsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQuZm9ybWF0KGRhdGUsIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBEYXRlIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB0aW1lIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCBpbnRvIGEgdGltZSBzdHJpbmcuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIHRpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KERhdGUgZGF0ZSkgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC5mb3JtYXQoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHJldHVybiAgICAgIEEgRGF0ZSwgb3IgbnVsbCBpZiB0aGUgaW5wdXQgY291bGQgbm90IGJlIHBhcnNlZAorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgUGFyc2VFeGNlcHRpb24gIElmIHRoZSBnaXZlbiBzdHJpbmcgY2Fubm90IGJlIHBhcnNlZCBhcyBhIGRhdGUuCisgICAgICoKKyAgICAgKiBAc2VlICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGUgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRlRm9ybWF0LnBhcnNlKHRleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLgorICAgICAqIEZvciBleGFtcGxlLCBhIHRpbWUgdGV4dCAiMDcvMTAvOTYgNDo1IFBNLCBQRFQiIHdpbGwgYmUgcGFyc2VkCisgICAgICogaW50byBhIENhbGVuZGFyIHRoYXQgaXMgZXF1aXZhbGVudCB0byBEYXRlKDgzNzAzOTkyODA0NikuICBUaGUKKyAgICAgKiBjYWxsZXIgc2hvdWxkIGNsZWFyIHRoZSBjYWxlbmRhciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZCwKKyAgICAgKiB1bmxlc3MgZXhpc3RpbmcgZmllbGQgaW5mb3JtYXRpb24gaXMgdG8gYmUga2VwdC4KKyAgICAgKgorICAgICAqIDxwPiBCeSBkZWZhdWx0LCBwYXJzaW5nIGlzIGxlbmllbnQ6IElmIHRoZSBpbnB1dCBpcyBub3QgaW4gdGhlIGZvcm0gdXNlZAorICAgICAqIGJ5IHRoaXMgb2JqZWN0J3MgZm9ybWF0IG1ldGhvZCBidXQgY2FuIHN0aWxsIGJlIHBhcnNlZCBhcyBhIGRhdGUsIHRoZW4KKyAgICAgKiB0aGUgcGFyc2Ugc3VjY2VlZHMuICBDbGllbnRzIG1heSBpbnNpc3Qgb24gc3RyaWN0IGFkaGVyZW5jZSB0byB0aGUKKyAgICAgKiBmb3JtYXQgYnkgY2FsbGluZyBzZXRMZW5pZW50KGZhbHNlKS4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldExlbmllbnQoYm9vbGVhbikKKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICBUaGUgZGF0ZS90aW1lIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgaW50byB3aGljaCBwYXJzZWQgZGF0YSB3aWxsIGJlIHN0b3JlZC4KKyAgICAgKiAgICAgICAgICAgICAgSW4gZ2VuZXJhbCwgdGhpcyBzaG91bGQgYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzCisgICAgICogICAgICAgICAgICAgIG1ldGhvZC4gIElmIHRoaXMgcGFyc2UgZmFpbHMsIHRoZSBjYWxlbmRhciBtYXkgc3RpbGwKKyAgICAgKiAgICAgICAgICAgICAgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXJzZShTdHJpbmcgdGV4dCwgQ2FsZW5kYXIgY2FsLCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICBEYXRlIHJlc3VsdCA9IGRhdGVGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgY2FsLnNldFRpbWUocmVzdWx0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwYXJzZSBwb3NpdGlvbi4gIEZvcgorICAgICAqIGV4YW1wbGUsIGEgdGltZSB0ZXh0ICIwNy8xMC85NiA0OjUgUE0sIFBEVCIgd2lsbCBiZSBwYXJzZWQgaW50byBhIERhdGUKKyAgICAgKiB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gRGF0ZSg4MzcwMzk5MjgwNDYpLgorICAgICAqCisgICAgICogPHA+IEJ5IGRlZmF1bHQsIHBhcnNpbmcgaXMgbGVuaWVudDogSWYgdGhlIGlucHV0IGlzIG5vdCBpbiB0aGUgZm9ybSB1c2VkCisgICAgICogYnkgdGhpcyBvYmplY3QncyBmb3JtYXQgbWV0aG9kIGJ1dCBjYW4gc3RpbGwgYmUgcGFyc2VkIGFzIGEgZGF0ZSwgdGhlbgorICAgICAqIHRoZSBwYXJzZSBzdWNjZWVkcy4gIENsaWVudHMgbWF5IGluc2lzdCBvbiBzdHJpY3QgYWRoZXJlbmNlIHRvIHRoZQorICAgICAqIGZvcm1hdCBieSBjYWxsaW5nIHNldExlbmllbnQoZmFsc2UpLgorICAgICAqCisgICAgICogQHNlZSAjc2V0TGVuaWVudChib29sZWFuKQorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBBIERhdGUsIG9yIG51bGwgaWYgdGhlIGlucHV0IGNvdWxkIG5vdCBiZSBwYXJzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgaW50byBhbiBPYmplY3QuICBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBzaW1wbHkKKyAgICAgKiBjYWxscyBwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pLgorICAgICAqCisgICAgICogQHNlZSAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcGFyc2VPYmplY3QoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlKHNvdXJjZSwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgZnVsbCBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZVTEwgPSAwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGxvbmcgc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT05HID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBtZWRpdW0gc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRURJVU0gPSAyOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIHNob3J0IHN0eWxlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlQgPSAzOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGRlZmF1bHQgc3R5bGUgcGF0dGVybi4gIEl0cyB2YWx1ZSBpcyBNRURJVU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVCA9IE1FRElVTTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShpbnQgc3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShzdHlsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiaDptbSBhIiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHN0eWxlLCBhTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKGludCBzdHlsZSwgVUxvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2Uoc3R5bGUsIGFMb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShpbnQgc3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShzdHlsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiTS9kL3l5IiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoaW50IHN0eWxlLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHN0eWxlLCBhTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKGludCBzdHlsZSwgVUxvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2Uoc3R5bGUsIGFMb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lCisgICAgICogZm9ybWF0dGluZyBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIHRoZSBnaXZlbiBkYXRlIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiTS9kL3l5IiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgdGhlIGdpdmVuIHRpbWUgZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZXMKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIHRoZSBnaXZlbiBkYXRlIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGVzCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSB0aGUgZ2l2ZW4gZGF0ZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgdGhlIGdpdmVuIHRpbWUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlLCBhTG9jYWxlLnRvTG9jYWxlKCkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBkZWZhdWx0IGRhdGUvdGltZSBmb3JtYXR0ZXIgdGhhdCB1c2VzIHRoZSBTSE9SVCBzdHlsZSBmb3IgYm90aCB0aGUKKyAgICAgKiBkYXRlIGFuZCB0aGUgdGltZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2V0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIERhdGVGb3JtYXRzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgc2V0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIERhdGVGb3JtYXRzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHVsb2NhbGVzW2ldID0gVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVsb2NhbGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FsZW5kYXIgdG8gYmUgdXNlZCBieSB0aGlzIGRhdGUgZm9ybWF0LiAgSW5pdGlhbGx5LCB0aGUgZGVmYXVsdAorICAgICAqIGNhbGVuZGFyIGZvciB0aGUgc3BlY2lmaWVkIG9yIGRlZmF1bHQgbG9jYWxlIGlzIHVzZWQuCisgICAgICogQHBhcmFtIG5ld0NhbGVuZGFyIHRoZSBuZXcgQ2FsZW5kYXIgdG8gYmUgdXNlZCBieSB0aGUgZGF0ZSBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhcihDYWxlbmRhciBuZXdDYWxlbmRhcikgeworICAgICAgICBkYXRlRm9ybWF0LnNldENhbGVuZGFyKG5ld0NhbGVuZGFyLmNhbGVuZGFyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjYWxlbmRhciBhc3NvY2lhdGVkIHdpdGggdGhpcyBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gdGhlIGNhbGVuZGFyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyIGdldENhbGVuZGFyKCkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyKGRhdGVGb3JtYXQuZ2V0Q2FsZW5kYXIoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIG51bWJlciBmb3JtYXR0ZXIuCisgICAgICogQHBhcmFtIG5ld051bWJlckZvcm1hdCB0aGUgZ2l2ZW4gbmV3IE51bWJlckZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROdW1iZXJGb3JtYXQoTnVtYmVyRm9ybWF0IG5ld051bWJlckZvcm1hdCkgeworICAgICAgICBkYXRlRm9ybWF0LnNldE51bWJlckZvcm1hdChuZXdOdW1iZXJGb3JtYXQubnVtYmVyRm9ybWF0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBudW1iZXIgZm9ybWF0dGVyIHdoaWNoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlciB1c2VzIHRvCisgICAgICogZm9ybWF0IGFuZCBwYXJzZSBhIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIGZvcm1hdHRlciB3aGljaCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIgdXNlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckZvcm1hdCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJGb3JtYXQoZGF0ZUZvcm1hdC5nZXROdW1iZXJGb3JtYXQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIGZvciB0aGUgY2FsZW5kYXIgb2YgdGhpcyBEYXRlRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gbmV3IHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUaW1lWm9uZShUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIGRhdGVGb3JtYXQuc2V0VGltZVpvbmUoem9uZS50aW1lWm9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lLgorICAgICAqIEByZXR1cm4gdGhlIHRpbWUgem9uZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNhbGVuZGFyIG9mIERhdGVGb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFRpbWVab25lIGdldFRpbWVab25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lKGRhdGVGb3JtYXQuZ2V0VGltZVpvbmUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BlY2lmeSB3aGV0aGVyIG9yIG5vdCBkYXRlL3RpbWUgcGFyc2luZyBpcyB0byBiZSBsZW5pZW50LiAgV2l0aAorICAgICAqIGxlbmllbnQgcGFyc2luZywgdGhlIHBhcnNlciBtYXkgdXNlIGhldXJpc3RpY3MgdG8gaW50ZXJwcmV0IGlucHV0cyB0aGF0CisgICAgICogZG8gbm90IHByZWNpc2VseSBtYXRjaCB0aGlzIG9iamVjdCdzIGZvcm1hdC4gIFdpdGggc3RyaWN0IHBhcnNpbmcsCisgICAgICogaW5wdXRzIG11c3QgbWF0Y2ggdGhpcyBvYmplY3QncyBmb3JtYXQuCisgICAgICogQHBhcmFtIGxlbmllbnQgd2hlbiB0cnVlLCBwYXJzaW5nIGlzIGxlbmllbnQKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjc2V0TGVuaWVudAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExlbmllbnQoYm9vbGVhbiBsZW5pZW50KSB7CisgICAgICAgIGRhdGVGb3JtYXQuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZWxsIHdoZXRoZXIgZGF0ZS90aW1lIHBhcnNpbmcgaXMgdG8gYmUgbGVuaWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0xlbmllbnQoKSB7CisgICAgICAgIHJldHVybiBkYXRlRm9ybWF0LmlzTGVuaWVudCgpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldERhdGVJbnN0YW5jZShkYXRlU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0RGF0ZUluc3RhbmNlKGRhdGVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIGRmOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldFRpbWVJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBnZXRUaW1lSW5zdGFuY2UodGltZVN0eWxlLCBsb2NhbGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldFRpbWVJbnN0YW5jZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBnZXRUaW1lSW5zdGFuY2UodGltZVN0eWxlLCBsb2NhbGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgYW5kIHRpbWVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gV2hlbiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbW92ZWQgaW50byB0aGUgY29yZSBKREssIHRoaXMgbWV0aG9kCisgICAgICogd2lsbCBwcm9iYWJseSBiZSByZXBsYWNlZCBieSBhIG5ldyBvdmVybG9hZCBvZiB7QGxpbmsgRGF0ZUZvcm1hdCNnZXRJbnN0YW5jZX0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNnZXREYXRlVGltZUluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lU3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGFuZCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0RGF0ZVRpbWVJbnN0YW5jZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBnZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlLCBsb2NhbGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgTUVESVVNLCBTSE9SVCwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRlRm9ybWF0IGdldEluc3RhbmNlKENhbGVuZGFyIGNhbCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBNRURJVU0sIFNIT1JULCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRlRm9ybWF0IGdldEluc3RhbmNlKENhbGVuZGFyIGNhbCkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIE1FRElVTSwgU0hPUlQsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBnZXREYXRlSW5zdGFuY2UoZGF0ZVN0eWxlKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIGRmOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldFRpbWVJbnN0YW5jZSh0aW1lU3R5bGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisgICAgICogQHJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC50b1N0cmluZygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBEYXRlRm9ybWF0LgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIERhdGVGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdCgoamF2YS50ZXh0LkRhdGVGb3JtYXQpZGF0ZUZvcm1hdC5jbG9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBEYXRlRm9ybWF0U3ltYm9scyBhbmQgaGFzIHRoZSBzYW1lIHN5bWJvbHMgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IGFyZzApIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0LmVxdWFscygoKERhdGVGb3JtYXQpYXJnMCkuZGF0ZUZvcm1hdCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGhhc2hDb2RlLgorICAgICAqIEByZXR1cm4gYSBoYXNoQ29kZQorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQuaGFzaENvZGUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjMxMDdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpAQCAtMCwwICsxLDMwMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gaXMgYSBwdWJsaWMgY2xhc3MgZm9yIGVuY2Fwc3VsYXRpbmcKKyAqIGxvY2FsaXphYmxlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEsIHN1Y2ggYXMgdGhlIG5hbWVzIG9mIHRoZQorICogbW9udGhzLCB0aGUgbmFtZXMgb2YgdGhlIGRheXMgb2YgdGhlIHdlZWssIGFuZCB0aGUgdGltZSB6b25lIGRhdGEuCisgKiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhbmQgPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gYm90aCB1c2UKKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiB0byBlbmNhcHN1bGF0ZSB0aGlzIGluZm9ybWF0aW9uLgorICoKKyAqIDxwPgorICogVHlwaWNhbGx5IHlvdSBzaG91bGRuJ3QgdXNlIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBkaXJlY3RseS4KKyAqIFJhdGhlciwgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGNyZWF0ZSBhIGRhdGUtdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUKKyAqIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGNsYXNzJ3MgZmFjdG9yeSBtZXRob2RzOiA8Y29kZT5nZXRUaW1lSW5zdGFuY2U8L2NvZGU+LAorICogPGNvZGU+Z2V0RGF0ZUluc3RhbmNlPC9jb2RlPiwgb3IgPGNvZGU+Z2V0RGF0ZVRpbWVJbnN0YW5jZTwvY29kZT4uCisgKiBUaGVzZSBtZXRob2RzIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvcgorICogdGhlIGZvcm1hdHRlciBzbyB0aGF0IHlvdSBkb24ndCBoYXZlIHRvLiBBZnRlciB0aGUKKyAqIGZvcm1hdHRlciBpcyBjcmVhdGVkLCB5b3UgbWF5IG1vZGlmeSBpdHMgZm9ybWF0IHBhdHRlcm4gdXNpbmcgdGhlCisgKiA8Y29kZT5zZXRQYXR0ZXJuPC9jb2RlPiBtZXRob2QuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0CisgKiBjcmVhdGluZyBmb3JtYXR0ZXJzIHVzaW5nIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+J3MgZmFjdG9yeSBtZXRob2RzLAorICogc2VlIHtAbGluayBEYXRlRm9ybWF0fS4KKyAqCisgKiA8cD4KKyAqIElmIHlvdSBkZWNpZGUgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIGEgc3BlY2lmaWMKKyAqIGZvcm1hdCBwYXR0ZXJuIGZvciBhIHNwZWNpZmljIGxvY2FsZSwgeW91IGNhbiBkbyBzbyB3aXRoOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogbmV3IFNpbXBsZURhdGVGb3JtYXQoYVBhdHRlcm4sIG5ldyBEYXRlRm9ybWF0U3ltYm9scyhhTG9jYWxlKSkuCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3RzIGFyZSBjbG9uYWJsZS4gV2hlbiB5b3Ugb2J0YWluCisgKiBhIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3QsIGZlZWwgZnJlZSB0byBtb2RpZnkgdGhlCisgKiBkYXRlLXRpbWUgZm9ybWF0dGluZyBkYXRhLiBGb3IgaW5zdGFuY2UsIHlvdSBjYW4gcmVwbGFjZSB0aGUgbG9jYWxpemVkCisgKiBkYXRlLXRpbWUgZm9ybWF0IHBhdHRlcm4gY2hhcmFjdGVycyB3aXRoIHRoZSBvbmVzIHRoYXQgeW91IGZlZWwgZWFzeQorICogdG8gcmVtZW1iZXIuIE9yIHlvdSBjYW4gY2hhbmdlIHRoZSByZXByZXNlbnRhdGl2ZSBjaXRpZXMKKyAqIHRvIHlvdXIgZmF2b3JpdGUgb25lcy4KKyAqCisgKiA8cD4KKyAqIE5ldyA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gc3ViY2xhc3NlcyBtYXkgYmUgYWRkZWQgdG8gc3VwcG9ydAorICogPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gZm9yIGRhdGUtdGltZSBmb3JtYXR0aW5nIGZvciBhZGRpdGlvbmFsIGxvY2FsZXMuCisKKyAqIEBzZWUgICAgICAgICAgRGF0ZUZvcm1hdAorICogQHNlZSAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUKKyAqIEBhdXRob3IgICAgICAgQ2hlbi1MaWVoIEh1YW5nCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIERhdGVGb3JtYXRTeW1ib2xzIGltcGxlbWVudHMgU2VyaWFsaXphYmxlLCBDbG9uZWFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDE7CisgICAgICAgIAorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBwdWJsaWMgamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzIGRmczsKKyAgICAgICAgCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5kZnMgPSBkZWxlZ2F0ZTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9scygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QgYnkgbG9hZGluZyBmb3JtYXQgZGF0YSBmcm9tCisgICAgICogcmVzb3VyY2VzIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHRocm93cyAgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqICAgICAgICAgIGlmIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGNhbm5vdCBiZQorICAgICAqICAgICAgICAgIGZvdW5kIG9yIGNhbm5vdCBiZSBsb2FkZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzKGxvY2FsZSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0IGJ5IGxvYWRpbmcgZm9ybWF0IGRhdGEgZnJvbQorICAgICAqIHJlc291cmNlcyBmb3IgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzICBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgaWYgdGhlIHJlc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMobG9jYWxlLnRvTG9jYWxlKCkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcmV0dXJuIHRoZSBlcmEgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RXJhcygpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRFcmFzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBlcmEgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBRCIgYW5kICJCQyIuCisgICAgICogQHBhcmFtIG5ld0VyYXMgdGhlIG5ldyBlcmEgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFcmFzKFN0cmluZ1tdIG5ld0VyYXMpIHsKKyAgICAgICAgZGZzLnNldEVyYXMobmV3RXJhcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbnVhcnkiLCAiRmVicnVhcnkiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0TW9udGhzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldE1vbnRocygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdNb250aHMgdGhlIG5ldyBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vbnRocyhTdHJpbmdbXSBuZXdNb250aHMpIHsKKyAgICAgICAgZGZzLnNldE1vbnRocyhuZXdNb250aHMpOworICAgIH0KKyAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgc2hvcnQgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW4iLCAiRmViIiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHNob3J0IG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFNob3J0TW9udGhzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFNob3J0TW9udGhzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuCisgICAgICogQHBhcmFtIG5ld1Nob3J0TW9udGhzIHRoZSBuZXcgc2hvcnQgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaG9ydE1vbnRocyhTdHJpbmdbXSBuZXdTaG9ydE1vbnRocykgeworICAgICAgICBkZnMuc2V0U2hvcnRNb250aHMobmV3U2hvcnRNb250aHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1bmRheSIsICJNb25kYXkiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgd2Vla2RheSBzdHJpbmdzLiBVc2UgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuIHRvIGluZGV4IHRoZSByZXN1bHQgYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFdlZWtkYXlzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFdlZWtkYXlzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3V2Vla2RheXMgdGhlIG5ldyB3ZWVrZGF5IHN0cmluZ3MuIFRoZSBhcnJheSBzaG91bGQKKyAgICAgKiBiZSBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFdlZWtkYXlzKFN0cmluZ1tdIG5ld1dlZWtkYXlzKSB7CisgICAgICAgIGRmcy5zZXRXZWVrZGF5cyhuZXdXZWVrZGF5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuIiwgIk1vbiIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIFVzZSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4gdG8gaW5kZXggdGhlIHJlc3VsdCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U2hvcnRXZWVrZGF5cygpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRTaG9ydFdlZWtkYXlzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuIiwgIk1vbiIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3U2hvcnRXZWVrZGF5cyB0aGUgbmV3IHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gVGhlIGFycmF5IHNob3VsZAorICAgICAqIGJlIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2hvcnRXZWVrZGF5cyhTdHJpbmdbXSBuZXdTaG9ydFdlZWtkYXlzKSB7CisgICAgICAgIGRmcy5zZXRTaG9ydFdlZWtkYXlzKG5ld1Nob3J0V2Vla2RheXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYW1wbSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFNIiBhbmQgIlBNIi4KKyAgICAgKiBAcmV0dXJuIHRoZSB3ZWVrZGF5IHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldEFtUG1TdHJpbmdzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEFtUG1TdHJpbmdzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBhbXBtIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLgorICAgICAqIEBwYXJhbSBuZXdBbXBtcyB0aGUgbmV3IGFtcG0gc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBbVBtU3RyaW5ncyhTdHJpbmdbXSBuZXdBbXBtcykgeworICAgICAgICBkZnMuc2V0QW1QbVN0cmluZ3MobmV3QW1wbXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXVtdIGdldFpvbmVTdHJpbmdzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFpvbmVTdHJpbmdzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBwYXJhbSBuZXdab25lU3RyaW5ncyB0aGUgbmV3IHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Wm9uZVN0cmluZ3MoU3RyaW5nW11bXSBuZXdab25lU3RyaW5ncykgeworICAgICAgICBkZnMuc2V0Wm9uZVN0cmluZ3MobmV3Wm9uZVN0cmluZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAndScsICd0JywgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXJzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGxvY2FsaXplZCBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXJzLiBGb3IgZXhhbXBsZTogJ3UnLCAndCcsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3TG9jYWxQYXR0ZXJuQ2hhcnMgdGhlIG5ldyBsb2NhbGl6ZWQgZGF0ZS10aW1lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXJzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExvY2FsUGF0dGVybkNoYXJzKFN0cmluZyBuZXdMb2NhbFBhdHRlcm5DaGFycykgeworICAgICAgICBkZnMuc2V0TG9jYWxQYXR0ZXJuQ2hhcnMobmV3TG9jYWxQYXR0ZXJuQ2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nLgorICAgICAqIEByZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZworICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZGZzLnRvU3RyaW5nKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBjbG9uZSBvZiB0aGlzIERhdGVGb3JtYXRTeW1ib2xzLgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIERhdGVGb3JtYXRTeW1ib2xzCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9scylkZnMuY2xvbmUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgcmhzIGlzIGEgRGF0ZUZvcm1hdFN5bWJvbHMgYW5kIGhhcyB0aGUgc2FtZSBzeW1ib2xzIGFzIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHJocyBlcXVhbHMgdGhpcworICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGRmcy5lcXVhbHMoKChEYXRlRm9ybWF0U3ltYm9scylyaHMpLmRmcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGhhc2hDb2RlLgorICAgICAqIEByZXR1cm4gYSBoYXNoQ29kZQorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gZGZzLmhhc2hDb2RlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhNDQ5NGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEKQEAgLTAsMCArMSw5MDMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBpcyBhIGNvbmNyZXRlIHN1YmNsYXNzIG9mCisgKiB7QGxpbmsgTnVtYmVyRm9ybWF0fSB0aGF0IGZvcm1hdHMgZGVjaW1hbCBudW1iZXJzLgorICoKKyAqIDxwPlRvIG9idGFpbiBhIHtAbGluayBOdW1iZXJGb3JtYXR9IGZvciBhIHNwZWNpZmljIGxvY2FsZSAoaW5jbHVkaW5nIHRoZQorICogZGVmYXVsdCBsb2NhbGUpIGNhbGwgb25lIG9mIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMgc3VjaAorICogYXMge0BsaW5rIE51bWJlckZvcm1hdCNnZXRJbnN0YW5jZX0uIERvIG5vdCBjYWxsIHRoZSA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPgorICogY29uc3RydWN0b3JzIGRpcmVjdGx5LCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLCBzaW5jZSB0aGUKKyAqIHtAbGluayBOdW1iZXJGb3JtYXR9IGZhY3RvcnkgbWV0aG9kcyBtYXkgcmV0dXJuIHN1YmNsYXNzZXMgb3RoZXIgdGhhbgorICogPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4uIElmIHlvdSBuZWVkIHRvIGN1c3RvbWl6ZSB0aGUgZm9ybWF0IG9iamVjdCwgZG8KKyAqIHNvbWV0aGluZyBsaWtlIHRoaXM6CisgKgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIE51bWJlckZvcm1hdCBmID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvYyk7CisgKiBpZiAoZiBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAqICAgICAoKERlY2ltYWxGb3JtYXQpIGYpLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAqIH08L3ByZT48L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PHN0cm9uZz5FeGFtcGxlIFVzYWdlPC9zdHJvbmc+CisgKgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIDxzdHJvbmc+Ly8gUHJpbnQgb3V0IGEgbnVtYmVyIHVzaW5nIHRoZSBsb2NhbGl6ZWQgbnVtYmVyLCBjdXJyZW5jeSwKKyAqIC8vIGFuZCBwZXJjZW50IGZvcm1hdCBmb3IgZWFjaCBsb2NhbGU8L3N0cm9uZz4KKyAqIExvY2FsZVtdIGxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICogZG91YmxlIG15TnVtYmVyID0gLTEyMzQuNTY7CisgKiBOdW1iZXJGb3JtYXQgZm9ybWF0OworICogZm9yIChpbnQgaj0wOyBqPDM7ICsraikgeworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRk9STUFUIik7CisgKiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgKiAgICAgICAgIGlmIChsb2NhbGVzW2ldLmdldENvdW50cnkoKS5sZW5ndGgoKSA9PSAwKSB7CisgKiAgICAgICAgICAgIC8vIFNraXAgbGFuZ3VhZ2Utb25seSBsb2NhbGVzCisgKiAgICAgICAgICAgIGNvbnRpbnVlOworICogICAgICAgICB9CisgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQobG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAqICAgICAgICAgc3dpdGNoIChqKSB7CisgKiAgICAgICAgIGNhc2UgMDoKKyAqICAgICAgICAgICAgIGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIGNhc2UgMToKKyAqICAgICAgICAgICAgIGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZXNbaV0pOyBicmVhazsKKyAqICAgICAgICAgZGVmYXVsdDoKKyAqICAgICAgICAgICAgIGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobG9jYWxlc1tpXSk7IGJyZWFrOworICogICAgICAgICB9CisgKiAgICAgICAgIHRyeSB7CisgKiAgICAgICAgICAgICAvLyBBc3N1bWUgZm9ybWF0IGlzIGEgRGVjaW1hbEZvcm1hdAorICogICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiAiICsgKChEZWNpbWFsRm9ybWF0KSBmb3JtYXQpLnRvUGF0dGVybigpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAtPiAiICsgZm9ybS5mb3JtYXQobXlOdW1iZXIpKTsKKyAqICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgKiAgICAgICAgIHRyeSB7CisgKiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAtPiAiICsgZm9ybWF0LnBhcnNlKGZvcm0uZm9ybWF0KG15TnVtYmVyKSkpOworICogICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7fQorICogICAgIH0KKyAqIH08L3ByZT48L2Jsb2NrcXVvdGU+CisgKgorICogPGg0PlBhdHRlcm5zPC9oND4KKyAqCisgKiA8cD5BIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNvbnNpc3RzIG9mIGEgPGVtPnBhdHRlcm48L2VtPiBhbmQgYSBzZXQgb2YKKyAqIDxlbT5zeW1ib2xzPC9lbT4uICBUaGUgcGF0dGVybiBtYXkgYmUgc2V0IGRpcmVjdGx5IHVzaW5nCisgKiB7QGxpbmsgI2FwcGx5UGF0dGVybn0sIG9yIGluZGlyZWN0bHkgdXNpbmcgb3RoZXIgQVBJIG1ldGhvZHMgd2hpY2gKKyAqIG1hbmlwdWxhdGUgYXNwZWN0cyBvZiB0aGUgcGF0dGVybiwgc3VjaCBhcyB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlcgorICogZGlnaXRzLiAgVGhlIHN5bWJvbHMgYXJlIHN0b3JlZCBpbiBhIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30KKyAqIG9iamVjdC4gIFdoZW4gdXNpbmcgdGhlIHtAbGluayBOdW1iZXJGb3JtYXR9IGZhY3RvcnkgbWV0aG9kcywgdGhlCisgKiBwYXR0ZXJuIGFuZCBzeW1ib2xzIGFyZSByZWFkIGZyb20gSUNVJ3MgbG9jYWxlIGRhdGEuCisgKiAKKyAqIDxoND5TcGVjaWFsIFBhdHRlcm4gQ2hhcmFjdGVyczwvaDQ+CisgKgorICogPHA+TWFueSBjaGFyYWN0ZXJzIGluIGEgcGF0dGVybiBhcmUgdGFrZW4gbGl0ZXJhbGx5OyB0aGV5IGFyZSBtYXRjaGVkIGR1cmluZworICogcGFyc2luZyBhbmQgb3V0cHV0IHVuY2hhbmdlZCBkdXJpbmcgZm9ybWF0dGluZy4gIFNwZWNpYWwgY2hhcmFjdGVycywgb24gdGhlCisgKiBvdGhlciBoYW5kLCBzdGFuZCBmb3Igb3RoZXIgY2hhcmFjdGVycywgc3RyaW5ncywgb3IgY2xhc3NlcyBvZiBjaGFyYWN0ZXJzLgorICogRm9yIGV4YW1wbGUsIHRoZSAnIycgY2hhcmFjdGVyIGlzIHJlcGxhY2VkIGJ5IGEgbG9jYWxpemVkIGRpZ2l0LiAgT2Z0ZW4gdGhlCisgKiByZXBsYWNlbWVudCBjaGFyYWN0ZXIgaXMgdGhlIHNhbWUgYXMgdGhlIHBhdHRlcm4gY2hhcmFjdGVyOyBpbiB0aGUgVS5TLiBsb2NhbGUsCisgKiB0aGUgJywnIGdyb3VwaW5nIGNoYXJhY3RlciBpcyByZXBsYWNlZCBieSAnLCcuICBIb3dldmVyLCB0aGUgcmVwbGFjZW1lbnQgaXMKKyAqIHN0aWxsIGhhcHBlbmluZywgYW5kIGlmIHRoZSBzeW1ib2xzIGFyZSBtb2RpZmllZCwgdGhlIGdyb3VwaW5nIGNoYXJhY3RlcgorICogY2hhbmdlcy4gIFNvbWUgc3BlY2lhbCBjaGFyYWN0ZXJzIGFmZmVjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIGZvcm1hdHRlciBieQorICogdGhlaXIgcHJlc2VuY2U7IGZvciBleGFtcGxlLCBpZiB0aGUgcGVyY2VudCBjaGFyYWN0ZXIgaXMgc2VlbiwgdGhlbiB0aGUKKyAqIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgMTAwIGJlZm9yZSBiZWluZyBkaXNwbGF5ZWQuCisgKgorICogPHA+VG8gaW5zZXJ0IGEgc3BlY2lhbCBjaGFyYWN0ZXIgaW4gYSBwYXR0ZXJuIGFzIGEgbGl0ZXJhbCwgdGhhdCBpcywgd2l0aG91dAorICogYW55IHNwZWNpYWwgbWVhbmluZywgdGhlIGNoYXJhY3RlciBtdXN0IGJlIHF1b3RlZC4gIFRoZXJlIGFyZSBzb21lIGV4Y2VwdGlvbnMgdG8KKyAqIHRoaXMgd2hpY2ggYXJlIG5vdGVkIGJlbG93LgorICoKKyAqIDxwPlRoZSBjaGFyYWN0ZXJzIGxpc3RlZCBoZXJlIGFyZSB1c2VkIGluIG5vbi1sb2NhbGl6ZWQgcGF0dGVybnMuICBMb2NhbGl6ZWQKKyAqIHBhdHRlcm5zIHVzZSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIHRha2VuIGZyb20gdGhpcyBmb3JtYXR0ZXIncworICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfSBvYmplY3QgaW5zdGVhZCwgYW5kIHRoZXNlIGNoYXJhY3RlcnMgbG9zZQorICogdGhlaXIgc3BlY2lhbCBzdGF0dXMuICBUd28gZXhjZXB0aW9ucyBhcmUgdGhlIGN1cnJlbmN5IHNpZ24gYW5kIHF1b3RlLCB3aGljaAorICogYXJlIG5vdCBsb2NhbGl6ZWQuCisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MyBjZWxscGFkZGluZz0wIHN1bW1hcnk9IkNoYXJ0IHNob3dpbmcgc3ltYm9sLAorICogIGxvY2F0aW9uLCBsb2NhbGl6ZWQsIGFuZCBtZWFuaW5nLiI+CisgKiAgIDx0ciBiZ2NvbG9yPSIjY2NjY2ZmIj4KKyAqICAgICA8dGggYWxpZ249bGVmdD5TeW1ib2wKKyAqICAgICA8dGggYWxpZ249bGVmdD5Mb2NhdGlvbgorICogICAgIDx0aCBhbGlnbj1sZWZ0PkxvY2FsaXplZD8KKyAqICAgICA8dGggYWxpZ249bGVmdD5NZWFuaW5nCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4wPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkRpZ2l0CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4xLTk8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICAnMScgdGhyb3VnaCAnOScgaW5kaWNhdGUgcm91bmRpbmcuCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5APC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+Tm8KKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICBTaWduaWZpY2FudCBkaWdpdAorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+IzwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5EaWdpdCwgemVybyBzaG93cyBhcyBhYnNlbnQKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPi48L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+RGVjaW1hbCBzZXBhcmF0b3Igb3IgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPi08L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+TWludXMgc2lnbgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+LDwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5Hcm91cGluZyBzZXBhcmF0b3IKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkU8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+U2VwYXJhdGVzIG1hbnRpc3NhIGFuZCBleHBvbmVudCBpbiBzY2llbnRpZmljIG5vdGF0aW9uLgorICogICAgICAgICA8ZW0+TmVlZCBub3QgYmUgcXVvdGVkIGluIHByZWZpeCBvciBzdWZmaXguPC9lbT4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPis8L2NvZGU+CisgKiAgICAgPHRkPkV4cG9uZW50CisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgIFByZWZpeCBwb3NpdGl2ZSBleHBvbmVudHMgd2l0aCBsb2NhbGl6ZWQgcGx1cyBzaWduLgorICogICAgICAgICA8ZW0+TmVlZCBub3QgYmUgcXVvdGVkIGluIHByZWZpeCBvciBzdWZmaXguPC9lbT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPjs8L2NvZGU+CisgKiAgICAgPHRkPlN1YnBhdHRlcm4gYm91bmRhcnkKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPlNlcGFyYXRlcyBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPiU8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPk11bHRpcGx5IGJ5IDEwMCBhbmQgc2hvdyBhcyBwZXJjZW50YWdlCisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4mIzkyO3UyMDMwPC9jb2RlPgorICogICAgIDx0ZD5QcmVmaXggb3Igc3VmZml4CisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5NdWx0aXBseSBieSAxMDAwIGFuZCBzaG93IGFzIHBlciBtaWxsZQorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+JiMxNjQ7PC9jb2RlPiAoPGNvZGU+JiM5Mjt1MDBBNDwvY29kZT4pCisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+Tm8KKyAqICAgICA8dGQ+Q3VycmVuY3kgc2lnbiwgcmVwbGFjZWQgYnkgY3VycmVuY3kgc3ltYm9sLiAgSWYKKyAqICAgICAgICAgZG91YmxlZCwgcmVwbGFjZWQgYnkgaW50ZXJuYXRpb25hbCBjdXJyZW5jeSBzeW1ib2wuCisgKiAgICAgICAgIElmIHByZXNlbnQgaW4gYSBwYXR0ZXJuLCB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IKKyAqICAgICAgICAgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvci4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPic8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+Tm8KKyAqICAgICA8dGQ+VXNlZCB0byBxdW90ZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYSBwcmVmaXggb3Igc3VmZml4LAorICogICAgICAgICBmb3IgZXhhbXBsZSwgPGNvZGU+IicjJyMiPC9jb2RlPiBmb3JtYXRzIDEyMyB0bworICogICAgICAgICA8Y29kZT4iIzEyMyI8L2NvZGU+LiAgVG8gY3JlYXRlIGEgc2luZ2xlIHF1b3RlCisgKiAgICAgICAgIGl0c2VsZiwgdXNlIHR3byBpbiBhIHJvdzogPGNvZGU+IiMgbycnY2xvY2siPC9jb2RlPi4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPio8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXggYm91bmRhcnkKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPjxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqICAgICAgICAgUGFkIGVzY2FwZSwgcHJlY2VkZXMgcGFkIGNoYXJhY3RlcgorICogPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5BIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHBhdHRlcm4gY29udGFpbnMgYSBwb3N0aXZlIGFuZCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgZm9yIGV4YW1wbGUsICIjLCMjMC4wMDsoIywjIzAuMDApIi4gIEVhY2ggc3VicGF0dGVybiBoYXMgYQorICogcHJlZml4LCBhIG51bWVyaWMgcGFydCwgYW5kIGEgc3VmZml4LiAgSWYgdGhlcmUgaXMgbm8gZXhwbGljaXQgbmVnYXRpdmUKKyAqIHN1YnBhdHRlcm4sIHRoZSBuZWdhdGl2ZSBzdWJwYXR0ZXJuIGlzIHRoZSBsb2NhbGl6ZWQgbWludXMgc2lnbiBwcmVmaXhlZCB0byB0aGUKKyAqIHBvc2l0aXZlIHN1YnBhdHRlcm4uIFRoYXQgaXMsICIwLjAwIiBhbG9uZSBpcyBlcXVpdmFsZW50IHRvICIwLjAwOy0wLjAwIi4gIElmIHRoZXJlCisgKiBpcyBhbiBleHBsaWNpdCBuZWdhdGl2ZSBzdWJwYXR0ZXJuLCBpdCBzZXJ2ZXMgb25seSB0byBzcGVjaWZ5IHRoZSBuZWdhdGl2ZQorICogcHJlZml4IGFuZCBzdWZmaXg7IHRoZSBudW1iZXIgb2YgZGlnaXRzLCBtaW5pbWFsIGRpZ2l0cywgYW5kIG90aGVyCisgKiBjaGFyYWN0ZXJpc3RpY3MgYXJlIGlnbm9yZWQgaW4gdGhlIG5lZ2F0aXZlIHN1YnBhdHRlcm4uIFRoYXQgbWVhbnMgdGhhdAorICogIiMsIyMwLjAjOygjKSIgaGFzIHByZWNpc2VseSB0aGUgc2FtZSByZXN1bHQgYXMgIiMsIyMwLjAjOygjLCMjMC4wIykiLgorICoKKyAqIDxwPlRoZSBwcmVmaXhlcywgc3VmZml4ZXMsIGFuZCB2YXJpb3VzIHN5bWJvbHMgdXNlZCBmb3IgaW5maW5pdHksIGRpZ2l0cywKKyAqIHRob3VzYW5kcyBzZXBhcmF0b3JzLCBkZWNpbWFsIHNlcGFyYXRvcnMsIGV0Yy4gbWF5IGJlIHNldCB0byBhcmJpdHJhcnkKKyAqIHZhbHVlcywgYW5kIHRoZXkgd2lsbCBhcHBlYXIgcHJvcGVybHkgZHVyaW5nIGZvcm1hdHRpbmcuICBIb3dldmVyLCBjYXJlIG11c3QKKyAqIGJlIHRha2VuIHRoYXQgdGhlIHN5bWJvbHMgYW5kIHN0cmluZ3MgZG8gbm90IGNvbmZsaWN0LCBvciBwYXJzaW5nIHdpbGwgYmUKKyAqIHVucmVsaWFibGUuICBGb3IgZXhhbXBsZSwgZWl0aGVyIHRoZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcHJlZml4ZXMgb3IgdGhlCisgKiBzdWZmaXhlcyBtdXN0IGJlIGRpc3RpbmN0IGZvciB7QGxpbmsgI3BhcnNlfSB0byBiZSBhYmxlCisgKiB0byBkaXN0aW5ndWlzaCBwb3NpdGl2ZSBmcm9tIG5lZ2F0aXZlIHZhbHVlcy4gIEFub3RoZXIgZXhhbXBsZSBpcyB0aGF0IHRoZQorICogZGVjaW1hbCBzZXBhcmF0b3IgYW5kIHRob3VzYW5kcyBzZXBhcmF0b3Igc2hvdWxkIGJlIGRpc3RpbmN0IGNoYXJhY3RlcnMsIG9yCisgKiBwYXJzaW5nIHdpbGwgYmUgaW1wb3NzaWJsZS4KKyAqCisgKiA8cD5UaGUgPGVtPmdyb3VwaW5nIHNlcGFyYXRvcjwvZW0+IGlzIGEgY2hhcmFjdGVyIHRoYXQgc2VwYXJhdGVzIGNsdXN0ZXJzIG9mCisgKiBpbnRlZ2VyIGRpZ2l0cyB0byBtYWtlIGxhcmdlIG51bWJlcnMgbW9yZSBsZWdpYmxlLiAgSXQgY29tbW9ubHkgdXNlZCBmb3IKKyAqIHRob3VzYW5kcywgYnV0IGluIHNvbWUgbG9jYWxlcyBpdCBzZXBhcmF0ZXMgdGVuLXRob3VzYW5kcy4gIFRoZSA8ZW0+Z3JvdXBpbmcKKyAqIHNpemU8L2VtPiBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBiZXR3ZWVuIHRoZSBncm91cGluZyBzZXBhcmF0b3JzLCBzdWNoIGFzIDMKKyAqIGZvciAiMTAwLDAwMCwwMDAiIG9yIDQgZm9yICIxIDAwMDAgMDAwMCIuIFRoZXJlIGFyZSBhY3R1YWxseSB0d28gZGlmZmVyZW50CisgKiBncm91cGluZyBzaXplczogT25lIHVzZWQgZm9yIHRoZSBsZWFzdCBzaWduaWZpY2FudCBpbnRlZ2VyIGRpZ2l0cywgdGhlCisgKiA8ZW0+cHJpbWFyeSBncm91cGluZyBzaXplPC9lbT4sIGFuZCBvbmUgdXNlZCBmb3IgYWxsIG90aGVycywgdGhlCisgKiA8ZW0+c2Vjb25kYXJ5IGdyb3VwaW5nIHNpemU8L2VtPi4gIEluIG1vc3QgbG9jYWxlcyB0aGVzZSBhcmUgdGhlIHNhbWUsIGJ1dAorICogc29tZXRpbWVzIHRoZXkgYXJlIGRpZmZlcmVudC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBwcmltYXJ5IGdyb3VwaW5nIGludGVydmFsCisgKiBpcyAzLCBhbmQgdGhlIHNlY29uZGFyeSBpcyAyLCB0aGVuIHRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHBhdHRlcm4KKyAqICIjLCMjLCMjMCIsIGFuZCB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBpcyBmb3JtYXR0ZWQgYXMgIjEyLDM0LDU2LDc4OSIuICBJZiBhCisgKiBwYXR0ZXJuIGNvbnRhaW5zIG11bHRpcGxlIGdyb3VwaW5nIHNlcGFyYXRvcnMsIHRoZSBpbnRlcnZhbCBiZXR3ZWVuIHRoZSBsYXN0CisgKiBvbmUgYW5kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgZGVmaW5lcyB0aGUgcHJpbWFyeSBncm91cGluZyBzaXplLCBhbmQgdGhlCisgKiBpbnRlcnZhbCBiZXR3ZWVuIHRoZSBsYXN0IHR3byBkZWZpbmVzIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZS4gQWxsIG90aGVycworICogYXJlIGlnbm9yZWQsIHNvICIjLCMjLCMjIywjIyMjIiA9PSAiIyMjLCMjIywjIyMjIiA9PSAiIyMsIywjIyMsIyMjIyIuCisgKgorICogPHA+SWxsZWdhbCBwYXR0ZXJucywgc3VjaCBhcyAiIy4jLiMiIG9yICIjLiMjIywjIyMiLCB3aWxsIGNhdXNlCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiB0byB0aHJvdyBhbiB7QGxpbmsgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9ufQorICogd2l0aCBhIG1lc3NhZ2UgdGhhdCBkZXNjcmliZXMgdGhlIHByb2JsZW0uCisgKgorICogPGg0PlBhdHRlcm4gQk5GPC9oND4KKyAqCisgKiA8cHJlPgorICogcGF0dGVybiAgICA6PSBzdWJwYXR0ZXJuICgnOycgc3VicGF0dGVybik/CisgKiBzdWJwYXR0ZXJuIDo9IHByZWZpeD8gbnVtYmVyIGV4cG9uZW50PyBzdWZmaXg/CisgKiBudW1iZXIgICAgIDo9IChpbnRlZ2VyICgnLicgZnJhY3Rpb24pPykgfCBzaWdEaWdpdHMKKyAqIHByZWZpeCAgICAgOj0gJyYjOTI7dTAwMDAnLi4nJiM5Mjt1RkZGRCcgLSBzcGVjaWFsQ2hhcmFjdGVycworICogc3VmZml4ICAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHNwZWNpYWxDaGFyYWN0ZXJzCisgKiBpbnRlZ2VyICAgIDo9ICcjJyogJzAnKiAnMCcKKyAqIGZyYWN0aW9uICAgOj0gJzAnKiAnIycqCisgKiBzaWdEaWdpdHMgIDo9ICcjJyogJ0AnICdAJyogJyMnKgorICogZXhwb25lbnQgICA6PSAnRScgJysnPyAnMCcqICcwJworICogcGFkU3BlYyAgICA6PSAnKicgcGFkQ2hhcgorICogcGFkQ2hhciAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHF1b3RlCisgKiAmIzMyOworICogTm90YXRpb246CisgKiAgIFgqICAgICAgIDAgb3IgbW9yZSBpbnN0YW5jZXMgb2YgWAorICogICBYPyAgICAgICAwIG9yIDEgaW5zdGFuY2VzIG9mIFgKKyAqICAgWHxZICAgICAgZWl0aGVyIFggb3IgWQorICogICBDLi5EICAgICBhbnkgY2hhcmFjdGVyIGZyb20gQyB1cCB0byBELCBpbmNsdXNpdmUKKyAqICAgUy1UICAgICAgY2hhcmFjdGVycyBpbiBTLCBleGNlcHQgdGhvc2UgaW4gVAorICogPC9wcmU+CisgKiBUaGUgZmlyc3Qgc3VicGF0dGVybiBpcyBmb3IgcG9zaXRpdmUgbnVtYmVycy4gVGhlIHNlY29uZCAob3B0aW9uYWwpCisgKiBzdWJwYXR0ZXJuIGlzIGZvciBuZWdhdGl2ZSBudW1iZXJzLgorICogCisgKiA8cD5Ob3QgaW5kaWNhdGVkIGluIHRoZSBCTkYgc3ludGF4IGFib3ZlOgorICoKKyAqIDx1bD48bGk+VGhlIGdyb3VwaW5nIHNlcGFyYXRvciAnLCcgY2FuIG9jY3VyIGluc2lkZSB0aGUgaW50ZWdlciBhbmQKKyAqIHNpZ0RpZ2l0cyBlbGVtZW50cywgYmV0d2VlbiBhbnkgdHdvIHBhdHRlcm4gY2hhcmFjdGVycyBvZiB0aGF0CisgKiBlbGVtZW50LCBhcyBsb25nIGFzIHRoZSBpbnRlZ2VyIG9yIHNpZ0RpZ2l0cyBlbGVtZW50IGlzIG5vdAorICogZm9sbG93ZWQgYnkgdGhlIGV4cG9uZW50IGVsZW1lbnQuCisgKgorICogPGxpPjxmb250IGNvbG9yPXJlZCBmYWNlPWhlbHZldGljYT48c3Ryb25nPk5FVzwvc3Ryb25nPjwvZm9udD4KKyAqICAgICBUd28gZ3JvdXBpbmcgaW50ZXJ2YWxzIGFyZSByZWNvZ25pemVkOiBUaGF0IGJldHdlZW4gdGhlCisgKiAgICAgZGVjaW1hbCBwb2ludCBhbmQgdGhlIGZpcnN0IGdyb3VwaW5nIHN5bWJvbCwgYW5kIHRoYXQKKyAqICAgICBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgc2Vjb25kIGdyb3VwaW5nIHN5bWJvbHMuIFRoZXNlCisgKiAgICAgaW50ZXJ2YWxzIGFyZSBpZGVudGljYWwgaW4gbW9zdCBsb2NhbGVzLCBidXQgaW4gc29tZQorICogICAgIGxvY2FsZXMgdGhleSBkaWZmZXIuIEZvciBleGFtcGxlLCB0aGUgcGF0dGVybgorICogICAgICZxdW90OyMsIyMsIyMjJnF1b3Q7IGZvcm1hdHMgdGhlIG51bWJlciAxMjM0NTY3ODkgYXMKKyAqICAgICAmcXVvdDsxMiwzNCw1Niw3ODkmcXVvdDsuPC9saT4KKyAqIAorICogPGxpPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogVGhlIHBhZCBzcGVjaWZpZXIgPGNvZGU+cGFkU3BlYzwvY29kZT4gbWF5IGFwcGVhciBiZWZvcmUgdGhlIHByZWZpeCwKKyAqIGFmdGVyIHRoZSBwcmVmaXgsIGJlZm9yZSB0aGUgc3VmZml4LCBhZnRlciB0aGUgc3VmZml4LCBvciBub3QgYXQgYWxsLgorICoKKyAqIDxsaT4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIEluIHBsYWNlIG9mICcwJywgdGhlIGRpZ2l0cyAnMScgdGhyb3VnaCAnOScgbWF5IGJlIHVzZWQgdG8KKyAqIGluZGljYXRlIGEgcm91bmRpbmcgaW5jcmVtZW50LgorICogPC91bD4KKyAqCisgKiA8aDQ+UGFyc2luZzwvaDQ+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gcGFyc2VzIGFsbCBVbmljb2RlIGNoYXJhY3RlcnMgdGhhdCByZXByZXNlbnQKKyAqIGRlY2ltYWwgZGlnaXRzLCBhcyBkZWZpbmVkIGJ5IHtAbGluayBVQ2hhcmFjdGVyI2RpZ2l0fS4gIEluIGFkZGl0aW9uLAorICogPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gYWxzbyByZWNvZ25pemVzIGFzIGRpZ2l0cyB0aGUgdGVuIGNvbnNlY3V0aXZlCisgKiBjaGFyYWN0ZXJzIHN0YXJ0aW5nIHdpdGggdGhlIGxvY2FsaXplZCB6ZXJvIGRpZ2l0IGRlZmluZWQgaW4gdGhlCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdC4gIER1cmluZyBmb3JtYXR0aW5nLCB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30tYmFzZWQgZGlnaXRzIGFyZSBvdXRwdXQuCisgKgorICogPHA+RHVyaW5nIHBhcnNpbmcsIGdyb3VwaW5nIHNlcGFyYXRvcnMgYXJlIGlnbm9yZWQuCisgKgorICogPHA+SWYge0BsaW5rICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pfSBmYWlscyB0byBwYXJzZQorICogYSBzdHJpbmcsIGl0IHJldHVybnMgPGNvZGU+bnVsbDwvY29kZT4gYW5kIGxlYXZlcyB0aGUgcGFyc2UgcG9zaXRpb24KKyAqIHVuY2hhbmdlZC4gIFRoZSBjb252ZW5pZW5jZSBtZXRob2Qge0BsaW5rICNwYXJzZShTdHJpbmcpfQorICogaW5kaWNhdGVzIHBhcnNlIGZhaWx1cmUgYnkgdGhyb3dpbmcgYSB7QGxpbmsgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9ufS4KKyAqCisgKiA8aDQ+Rm9ybWF0dGluZzwvaDQ+CisgKgorICogPHA+Rm9ybWF0dGluZyBpcyBndWlkZWQgYnkgc2V2ZXJhbCBwYXJhbWV0ZXJzLCBhbGwgb2Ygd2hpY2ggY2FuIGJlCisgKiBzcGVjaWZpZWQgZWl0aGVyIHVzaW5nIGEgcGF0dGVybiBvciB1c2luZyB0aGUgQVBJLiAgVGhlIGZvbGxvd2luZworICogZGVzY3JpcHRpb24gYXBwbGllcyB0byBmb3JtYXRzIHRoYXQgZG8gbm90IHVzZSA8YSBocmVmPSIjc2NpIj5zY2llbnRpZmljCisgKiBub3RhdGlvbjwvYT4gb3IgPGEgaHJlZj0iI3NpZ2RpZyI+c2lnbmlmaWNhbnQgZGlnaXRzPC9hPi4KKyAqCisgKiA8dWw+PGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGludGVnZXIgZGlnaXRzIGV4Y2VlZHMgdGhlCisgKiA8ZW0+bWF4aW11bSBpbnRlZ2VyIGRpZ2l0czwvZW0+LCB0aGVuIG9ubHkgdGhlIGxlYXN0IHNpZ25pZmljYW50CisgKiBkaWdpdHMgYXJlIHNob3duLiAgRm9yIGV4YW1wbGUsIDE5OTcgaXMgZm9ybWF0dGVkIGFzICI5NyIgaWYgdGhlCisgKiBtYXhpbXVtIGludGVnZXIgZGlnaXRzIGlzIHNldCB0byAyLgorICoKKyAqIDxsaT5JZiB0aGUgbnVtYmVyIG9mIGFjdHVhbCBpbnRlZ2VyIGRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlCisgKiA8ZW0+bWluaW11bSBpbnRlZ2VyIGRpZ2l0czwvZW0+LCB0aGVuIGxlYWRpbmcgemVyb3MgYXJlIGFkZGVkLiAgRm9yCisgKiBleGFtcGxlLCAxOTk3IGlzIGZvcm1hdHRlZCBhcyAiMDE5OTciIGlmIHRoZSBtaW5pbXVtIGludGVnZXIgZGlnaXRzCisgKiBpcyBzZXQgdG8gNS4KKyAqCisgKiA8bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgZnJhY3Rpb24gZGlnaXRzIGV4Y2VlZHMgdGhlIDxlbT5tYXhpbXVtCisgKiBmcmFjdGlvbiBkaWdpdHM8L2VtPiwgdGhlbiBoYWxmLWV2ZW4gcm91bmRpbmcgaXQgcGVyZm9ybWVkIHRvIHRoZQorICogbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMuICBGb3IgZXhhbXBsZSwgMC4xMjUgaXMgZm9ybWF0dGVkIGFzICIwLjEyIgorICogaWYgdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzIGlzIDIuICBUaGlzIGJlaGF2aW9yIGNhbiBiZSBjaGFuZ2VkCisgKiBieSBzcGVjaWZ5aW5nIGEgcm91bmRpbmcgaW5jcmVtZW50IGFuZCBhIHJvdW5kaW5nIG1vZGUuCisgKgorICogPGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGZyYWN0aW9uIGRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlCisgKiA8ZW0+bWluaW11bSBmcmFjdGlvbiBkaWdpdHM8L2VtPiwgdGhlbiB0cmFpbGluZyB6ZXJvcyBhcmUgYWRkZWQuCisgKiBGb3IgZXhhbXBsZSwgMC4xMjUgaXMgZm9ybWF0dGVkIGFzICIwLjEyNTAiIGlmIHRoZSBtaW1pbXVtIGZyYWN0aW9uCisgKiBkaWdpdHMgaXMgc2V0IHRvIDQuCisgKgorICogPGxpPlRyYWlsaW5nIGZyYWN0aW9uYWwgemVyb3MgYXJlIG5vdCBkaXNwbGF5ZWQgaWYgdGhleSBvY2N1cgorICogPGVtPmo8L2VtPiBwb3NpdGlvbnMgYWZ0ZXIgdGhlIGRlY2ltYWwsIHdoZXJlIDxlbT5qPC9lbT4gaXMgbGVzcworICogdGhhbiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMuIEZvciBleGFtcGxlLCAwLjEwMDA0IGlzCisgKiBmb3JtYXR0ZWQgYXMgIjAuMSIgaWYgdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzIGlzIGZvdXIgb3IgbGVzcy4KKyAqIDwvdWw+CisgKiAKKyAqIDxwPjxzdHJvbmc+U3BlY2lhbCBWYWx1ZXM8L3N0cm9uZz4KKyAqCisgKiA8cD48Y29kZT5OYU48L2NvZGU+IGlzIHJlcHJlc2VudGVkIGFzIGEgc2luZ2xlIGNoYXJhY3RlciwgdHlwaWNhbGx5CisgKiA8Y29kZT4mIzkyO3VGRkZEPC9jb2RlPi4gIFRoaXMgY2hhcmFjdGVyIGlzIGRldGVybWluZWQgYnkgdGhlCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdC4gIFRoaXMgaXMgdGhlIG9ubHkgdmFsdWUgZm9yIHdoaWNoCisgKiB0aGUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzIGFyZSBub3QgdXNlZC4KKyAqCisgKiA8cD5JbmZpbml0eSBpcyByZXByZXNlbnRlZCBhcyBhIHNpbmdsZSBjaGFyYWN0ZXIsIHR5cGljYWxseQorICogPGNvZGU+JiM5Mjt1MjIxRTwvY29kZT4sIHdpdGggdGhlIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIHByZWZpeGVzIGFuZCBzdWZmaXhlcworICogYXBwbGllZC4gIFRoZSBpbmZpbml0eSBjaGFyYWN0ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LgorICoKKyAqIDxhIG5hbWU9InNjaSI+PGg0PlNjaWVudGlmaWMgTm90YXRpb248L2g0PjwvYT4KKyAqCisgKiA8cD5OdW1iZXJzIGluIHNjaWVudGlmaWMgbm90YXRpb24gYXJlIGV4cHJlc3NlZCBhcyB0aGUgcHJvZHVjdCBvZiBhIG1hbnRpc3NhCisgKiBhbmQgYSBwb3dlciBvZiB0ZW4sIGZvciBleGFtcGxlLCAxMjM0IGNhbiBiZSBleHByZXNzZWQgYXMgMS4yMzQgeCAxMDxzdXA+Mzwvc3VwPi4gVGhlCisgKiBtYW50aXNzYSBpcyB0eXBpY2FsbHkgaW4gdGhlIGhhbGYtb3BlbiBpbnRlcnZhbCBbMS4wLCAxMC4wKSBvciBzb21ldGltZXMgWzAuMCwgMS4wKSwKKyAqIGJ1dCBpdCBuZWVkIG5vdCBiZS4gIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIGFyYml0cmFyeSBtYW50aXNzYXMuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBjYW4gYmUgaW5zdHJ1Y3RlZCB0byB1c2Ugc2NpZW50aWZpYworICogbm90YXRpb24gdGhyb3VnaCB0aGUgQVBJIG9yIHRocm91Z2ggdGhlIHBhdHRlcm4uICBJbiBhIHBhdHRlcm4sIHRoZSBleHBvbmVudAorICogY2hhcmFjdGVyIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGRpZ2l0IGNoYXJhY3RlcnMgaW5kaWNhdGVzCisgKiBzY2llbnRpZmljIG5vdGF0aW9uLiAgRXhhbXBsZTogIjAuIyMjRTAiIGZvcm1hdHMgdGhlIG51bWJlciAxMjM0IGFzCisgKiAiMS4yMzRFMyIuCisgKgorICogPHVsPgorICogPGxpPlRoZSBudW1iZXIgb2YgZGlnaXQgY2hhcmFjdGVycyBhZnRlciB0aGUgZXhwb25lbnQgY2hhcmFjdGVyIGdpdmVzIHRoZQorICogbWluaW11bSBleHBvbmVudCBkaWdpdCBjb3VudC4gIFRoZXJlIGlzIG5vIG1heGltdW0uICBOZWdhdGl2ZSBleHBvbmVudHMgYXJlCisgKiBmb3JtYXR0ZWQgdXNpbmcgdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLCA8ZW0+bm90PC9lbT4gdGhlIHByZWZpeCBhbmQgc3VmZml4CisgKiBmcm9tIHRoZSBwYXR0ZXJuLiAgVGhpcyBhbGxvd3MgcGF0dGVybnMgc3VjaCBhcyAiMC4jIyNFMCBtL3MiLiAgVG8gcHJlZml4CisgKiBwb3NpdGl2ZSBleHBvbmVudHMgd2l0aCBhIGxvY2FsaXplZCBwbHVzIHNpZ24sIHNwZWNpZnkgJysnIGJldHdlZW4gdGhlCisgKiBleHBvbmVudCBhbmQgdGhlIGRpZ2l0czogIjAuIyMjRSswIiB3aWxsIHByb2R1Y2UgZm9ybWF0cyAiMUUrMSIsICIxRSswIiwKKyAqICIxRS0xIiwgZXRjLiAgKEluIGxvY2FsaXplZCBwYXR0ZXJucywgdXNlIHRoZSBsb2NhbGl6ZWQgcGx1cyBzaWduIHJhdGhlciB0aGFuCisgKiAnKycuKQorICoKKyAqIDxsaT5UaGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgYWNoaWV2ZWQgYnkgYWRqdXN0aW5nIHRoZQorICogZXhwb25lbnQuICBFeGFtcGxlOiAwLjAwMTIzIGZvcm1hdHRlZCB3aXRoICIwMC4jIyNFMCIgeWllbGRzICIxMi4zRS00Ii4gIFRoaXMKKyAqIG9ubHkgaGFwcGVucyBpZiB0aGVyZSBpcyBubyBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cy4gIElmIHRoZXJlIGlzIGEKKyAqIG1heGltdW0sIHRoZW4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIGlzIGZpeGVkIGF0IG9uZS4KKyAqCisgKiA8bGk+VGhlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLCBpZiBwcmVzZW50LCBzcGVjaWZpZXMgdGhlIGV4cG9uZW50CisgKiBncm91cGluZy4gIFRoZSBtb3N0IGNvbW1vbiB1c2Ugb2YgdGhpcyBpcyB0byBnZW5lcmF0ZSA8ZW0+ZW5naW5lZXJpbmcKKyAqIG5vdGF0aW9uPC9lbT4sIGluIHdoaWNoIHRoZSBleHBvbmVudCBpcyBhIG11bHRpcGxlIG9mIHRocmVlLCBlLmcuLAorICogIiMjMC4jIyNFMCIuICBUaGUgbnVtYmVyIDEyMzQ1IGlzIGZvcm1hdHRlZCB1c2luZyAiIyMwLiMjIyNFMCIgYXMgIjEyLjM0NUUzIi4KKyAqCisgKiA8bGk+V2hlbiB1c2luZyBzY2llbnRpZmljIG5vdGF0aW9uLCB0aGUgZm9ybWF0dGVyIGNvbnRyb2xzIHRoZQorICogZGlnaXQgY291bnRzIHVzaW5nIHNpZ25pZmljYW50IGRpZ2l0cyBsb2dpYy4gIFRoZSBtYXhpbXVtIG51bWJlciBvZgorICogc2lnbmlmaWNhbnQgZGlnaXRzIGxpbWl0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGludGVnZXIgYW5kIGZyYWN0aW9uCisgKiBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duIGluIHRoZSBtYW50aXNzYTsgaXQgZG9lcyBub3QgYWZmZWN0CisgKiBwYXJzaW5nLiAgRm9yIGV4YW1wbGUsIDEyMzQ1IGZvcm1hdHRlZCB3aXRoICIjIzAuIyNFMCIgaXMgIjEyLjNFMyIuCisgKiBTZWUgdGhlIHNlY3Rpb24gb24gc2lnbmlmaWNhbnQgZGlnaXRzIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogPGxpPlRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHNob3duIGlzIGRldGVybWluZWQgYXMKKyAqIGZvbGxvd3M6IElmIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpIHJldHVybnMgZmFsc2UsIHRoZW4gdGhlCisgKiBtaW5pbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgb25lLCBhbmQgdGhlIG1heGltdW0KKyAqIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgdGhlIHN1bSBvZiB0aGUgPGVtPm1pbmltdW0KKyAqIGludGVnZXI8L2VtPiBhbmQgPGVtPm1heGltdW0gZnJhY3Rpb248L2VtPiBkaWdpdHMsIGFuZCBpcworICogdW5hZmZlY3RlZCBieSB0aGUgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cy4gIElmIHRoaXMgc3VtIGlzIHplcm8sCisgKiB0aGVuIGFsbCBzaWduaWZpY2FudCBkaWdpdHMgYXJlIHNob3duLiAgSWYKKyAqIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpIHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgc2lnbmlmaWNhbnQgZGlnaXQKKyAqIGNvdW50cyBhcmUgc3BlY2lmaWVkIGJ5IGdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIGFuZAorICogZ2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKCkuICBJbiB0aGlzIGNhc2UsIHRoZSBudW1iZXIgb2YKKyAqIGludGVnZXIgZGlnaXRzIGlzIGZpeGVkIGF0IG9uZSwgYW5kIHRoZXJlIGlzIG5vIGV4cG9uZW50IGdyb3VwaW5nLgorICoKKyAqIDxsaT5FeHBvbmVudGlhbCBwYXR0ZXJucyBtYXkgbm90IGNvbnRhaW4gZ3JvdXBpbmcgc2VwYXJhdG9ycy4KKyAqIDwvdWw+CisgKgorICogPGEgbmFtZT0ic2lnZGlnIj48aDQ+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBTaWduaWZpY2FudCBEaWdpdHM8L2g0PjwvYT4KKyAqCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBoYXMgdHdvIHdheXMgb2YgY29udHJvbGxpbmcgaG93IG1hbnkKKyAqIGRpZ2l0cyBhcmUgc2hvd3M6IChhKSBzaWduaWZpY2FudCBkaWdpdHMgY291bnRzLCBvciAoYikgaW50ZWdlciBhbmQKKyAqIGZyYWN0aW9uIGRpZ2l0IGNvdW50cy4gIEludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0IGNvdW50cyBhcmUKKyAqIGRlc2NyaWJlZCBhYm92ZS4gIFdoZW4gYSBmb3JtYXR0ZXIgaXMgdXNpbmcgc2lnbmlmaWNhbnQgZGlnaXRzCisgKiBjb3VudHMsIHRoZSBudW1iZXIgb2YgaW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXRzIGlzIG5vdCBzcGVjaWZpZWQKKyAqIGRpcmVjdGx5LCBhbmQgdGhlIGZvcm1hdHRlciBzZXR0aW5ncyBmb3IgdGhlc2UgY291bnRzIGFyZSBpZ25vcmVkLgorICogSW5zdGVhZCwgdGhlIGZvcm1hdHRlciB1c2VzIGhvd2V2ZXIgbWFueSBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICogZGlnaXRzIGFyZSByZXF1aXJlZCB0byBkaXNwbGF5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNpZ25pZmljYW50CisgKiBkaWdpdHMuICBFeGFtcGxlczoKKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0zIGNlbGxwYWRkaW5nPTA+CisgKiAgIDx0ciBiZ2NvbG9yPSIjY2NjY2ZmIj4KKyAqICAgICA8dGggYWxpZ249bGVmdD5QYXR0ZXJuCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TWluaW11bSBzaWduaWZpY2FudCBkaWdpdHMKKyAqICAgICA8dGggYWxpZ249bGVmdD5NYXhpbXVtIHNpZ25pZmljYW50IGRpZ2l0cworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk51bWJlcgorICogICAgIDx0aCBhbGlnbj1sZWZ0Pk91dHB1dCBvZiBmb3JtYXQoKQorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+QEBAPC9jb2RlPgorICogICAgIDx0ZD4zCisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MTIzNDUKKyAqICAgICA8dGQ+PGNvZGU+MTIzMDA8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT5AQEA8L2NvZGU+CisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4wLjEyMzQ1CisgKiAgICAgPHRkPjxjb2RlPjAuMTIzPC9jb2RlPgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+QEAjIzwvY29kZT4KKyAqICAgICA8dGQ+MgorICogICAgIDx0ZD40CisgKiAgICAgPHRkPjMuMTQxNTkKKyAqICAgICA8dGQ+PGNvZGU+My4xNDI8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT5AQCMjPC9jb2RlPgorICogICAgIDx0ZD4yCisgKiAgICAgPHRkPjQKKyAqICAgICA8dGQ+MS4yMzAwNAorICogICAgIDx0ZD48Y29kZT4xLjIzPC9jb2RlPgorICogPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8dWw+CisgKiA8bGk+U2lnbmlmaWNhbnQgZGlnaXQgY291bnRzIG1heSBiZSBleHByZXNzZWQgdXNpbmcgcGF0dGVybnMgdGhhdAorICogc3BlY2lmeSBhIG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cy4gIFRoZXNlCisgKiBhcmUgaW5kaWNhdGVkIGJ5IHRoZSA8Y29kZT4nQCc8L2NvZGU+IGFuZCA8Y29kZT4nIyc8L2NvZGU+CisgKiBjaGFyYWN0ZXJzLiAgVGhlIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBpcyB0aGUgbnVtYmVyCisgKiBvZiA8Y29kZT4nQCc8L2NvZGU+IGNoYXJhY3RlcnMuICBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBpcyB0aGUgbnVtYmVyIG9mIDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVycyBwbHVzIHRoZSBudW1iZXIKKyAqIG9mIDxjb2RlPicjJzwvY29kZT4gY2hhcmFjdGVycyBmb2xsb3dpbmcgb24gdGhlIHJpZ2h0LiAgRm9yCisgKiBleGFtcGxlLCB0aGUgcGF0dGVybiA8Y29kZT4iQEBAIjwvY29kZT4gaW5kaWNhdGVzIGV4YWN0bHkgMworICogc2lnbmlmaWNhbnQgZGlnaXRzLiAgVGhlIHBhdHRlcm4gPGNvZGU+IkAjIyI8L2NvZGU+IGluZGljYXRlcyBmcm9tCisgKiAxIHRvIDMgc2lnbmlmaWNhbnQgZGlnaXRzLiAgVHJhaWxpbmcgemVybyBkaWdpdHMgdG8gdGhlIHJpZ2h0IG9mCisgKiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgYXJlIHN1cHByZXNzZWQgYWZ0ZXIgdGhlIG1pbmltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMgaGF2ZSBiZWVuIHNob3duLiAgRm9yIGV4YW1wbGUsIHRoZSBwYXR0ZXJuCisgKiA8Y29kZT4iQCMjIjwvY29kZT4gZm9ybWF0cyB0aGUgbnVtYmVyIDAuMTIwMyBhcworICogPGNvZGU+IjAuMTIiPC9jb2RlPi4KKyAqCisgKiA8bGk+SWYgYSBwYXR0ZXJuIHVzZXMgc2lnbmlmaWNhbnQgZGlnaXRzLCBpdCBtYXkgbm90IGNvbnRhaW4gYQorICogZGVjaW1hbCBzZXBhcmF0b3IsIG5vciB0aGUgPGNvZGU+JzAnPC9jb2RlPiBwYXR0ZXJuIGNoYXJhY3Rlci4KKyAqIFBhdHRlcm5zIHN1Y2ggYXMgPGNvZGU+IkAwMCI8L2NvZGU+IG9yIDxjb2RlPiJALiMjIyI8L2NvZGU+IGFyZQorICogZGlzYWxsb3dlZC4KKyAqCisgKiA8bGk+QW55IG51bWJlciBvZiA8Y29kZT4nIyc8L2NvZGU+IGNoYXJhY3RlcnMgbWF5IGJlIHByZXBlbmRlZCB0bworICogdGhlIGxlZnQgb2YgdGhlIGxlZnRtb3N0IDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVyLiAgVGhlc2UgaGF2ZSBubworICogZWZmZWN0IG9uIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudHMsIGJ1dAorICogbWF5IGJlIHVzZWQgdG8gcG9zaXRpb24gZ3JvdXBpbmcgc2VwYXJhdG9ycy4gIEZvciBleGFtcGxlLAorICogPGNvZGU+IiMsI0AjIjwvY29kZT4gaW5kaWNhdGVzIGEgbWluaW11bSBvZiBvbmUgc2lnbmlmaWNhbnQgZGlnaXRzLAorICogYSBtYXhpbXVtIG9mIHR3byBzaWduaWZpY2FudCBkaWdpdHMsIGFuZCBhIGdyb3VwaW5nIHNpemUgb2YgdGhyZWUuCisgKgorICogPGxpPkluIG9yZGVyIHRvIGVuYWJsZSBzaWduaWZpY2FudCBkaWdpdHMgZm9ybWF0dGluZywgdXNlIGEgcGF0dGVybgorICogY29udGFpbmluZyB0aGUgPGNvZGU+J0AnPC9jb2RlPiBwYXR0ZXJuIGNoYXJhY3Rlci4gIEFsdGVybmF0aXZlbHksCisgKiBjYWxsIHtAbGluayAjc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkIHNldFNpZ25pZmljYW50RGlnaXRzVXNlZCh0cnVlKX0uCisgKgorICogPGxpPkluIG9yZGVyIHRvIGRpc2FibGUgc2lnbmlmaWNhbnQgZGlnaXRzIGZvcm1hdHRpbmcsIHVzZSBhCisgKiBwYXR0ZXJuIHRoYXQgZG9lcyBub3QgY29udGFpbiB0aGUgPGNvZGU+J0AnPC9jb2RlPiBwYXR0ZXJuCisgKiBjaGFyYWN0ZXIuIEFsdGVybmF0aXZlbHksIGNhbGwge0BsaW5rICNzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQKKyAqIHNldFNpZ25pZmljYW50RGlnaXRzVXNlZChmYWxzZSl9LgorICoKKyAqIDxsaT5UaGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBoYXMgbm8gZWZmZWN0IG9uIHBhcnNpbmcuCisgKgorICogPGxpPlNpZ25pZmljYW50IGRpZ2l0cyBtYXkgYmUgdXNlZCB0b2dldGhlciB3aXRoIGV4cG9uZW50aWFsIG5vdGF0aW9uLiBTdWNoCisgKiBwYXR0ZXJucyBhcmUgZXF1aXZhbGVudCB0byBhIG5vcm1hbCBleHBvbmVudGlhbCBwYXR0ZXJuIHdpdGggYSBtaW5pbXVtIGFuZAorICogbWF4aW11bSBpbnRlZ2VyIGRpZ2l0IGNvdW50IG9mIG9uZSwgYSBtaW5pbXVtIGZyYWN0aW9uIGRpZ2l0IGNvdW50IG9mCisgKiA8Y29kZT5nZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKSAtIDE8L2NvZGU+LCBhbmQgYSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0CisgKiBjb3VudCBvZiA8Y29kZT5nZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKSAtIDE8L2NvZGU+LiBGb3IgZXhhbXBsZSwgdGhlCisgKiBwYXR0ZXJuIDxjb2RlPiJAQCMjI0UwIjwvY29kZT4gaXMgZXF1aXZhbGVudCB0byA8Y29kZT4iMC4wIyMjRTAiPC9jb2RlPi4KKyAqCisgKiA8bGk+SWYgc2lnbmZpY2FudCBkaWdpdHMgYXJlIGluIHVzZSwgdGhlbiB0aGUgaW50ZWdlciBhbmQgZnJhY3Rpb24KKyAqIGRpZ2l0IGNvdW50cywgYXMgc2V0IHZpYSB0aGUgQVBJLCBhcmUgaWdub3JlZC4gIElmIHNpZ25pZmljYW50CisgKiBkaWdpdHMgYXJlIG5vdCBpbiB1c2UsIHRoZW4gdGhlIHNpZ25maWNhbnQgZGlnaXQgY291bnRzLCBhcyBzZXQgdmlhCisgKiB0aGUgQVBJLCBhcmUgaWdub3JlZC4KKyAqCisgKiA8L3VsPgorICogCisgKiA8aDQ+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBQYWRkaW5nPC9oND4KKyAqCisgKiA8cD48Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBzdXBwb3J0cyBwYWRkaW5nIHRoZSByZXN1bHQgb2YKKyAqIHtAbGluayAjZm9ybWF0fSB0byBhIHNwZWNpZmljIHdpZHRoLiAgUGFkZGluZyBtYXkgYmUgc3BlY2lmaWVkIGVpdGhlcgorICogdGhyb3VnaCB0aGUgQVBJIG9yIHRocm91Z2ggdGhlIHBhdHRlcm4gc3ludGF4LiAgSW4gYSBwYXR0ZXJuIHRoZSBwYWQgZXNjYXBlCisgKiBjaGFyYWN0ZXIsIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIHBhZCBjaGFyYWN0ZXIsIGNhdXNlcyBwYWRkaW5nIHRvIGJlIHBhcnNlZAorICogYW5kIGZvcm1hdHRlZC4gIFRoZSBwYWQgZXNjYXBlIGNoYXJhY3RlciBpcyAnKicgaW4gdW5sb2NhbGl6ZWQgcGF0dGVybnMsIGFuZAorICogY2FuIGJlIGxvY2FsaXplZCB1c2luZyB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHMjc2V0UGFkRXNjYXBlfS4gIEZvcgorICogZXhhbXBsZSwgPGNvZGU+IiQqeCMsIyMwLjAwIjwvY29kZT4gZm9ybWF0cyAxMjMgdG8gPGNvZGU+IiR4eDEyMy4wMCI8L2NvZGU+LAorICogYW5kIDEyMzQgdG8gPGNvZGU+IiQxLDIzNC4wMCI8L2NvZGU+LgorICoKKyAqIDx1bD4KKyAqIDxsaT5XaGVuIHBhZGRpbmcgaXMgaW4gZWZmZWN0LCB0aGUgd2lkdGggb2YgdGhlIHBvc2l0aXZlIHN1YnBhdHRlcm4sCisgKiBpbmNsdWRpbmcgcHJlZml4IGFuZCBzdWZmaXgsIGRldGVybWluZXMgdGhlIGZvcm1hdCB3aWR0aC4gIEZvciBleGFtcGxlLCBpbgorICogdGhlIHBhdHRlcm4gPGNvZGU+IiogIzAgbycnY2xvY2siPC9jb2RlPiwgdGhlIGZvcm1hdCB3aWR0aCBpcyAxMC4KKyAqCisgKiA8bGk+VGhlIHdpZHRoIGlzIGNvdW50ZWQgaW4gMTYtYml0IGNvZGUgdW5pdHMgKEphdmEgPGNvZGU+Y2hhcjwvY29kZT5zKS4KKyAqCisgKiA8bGk+U29tZSBwYXJhbWV0ZXJzIHdoaWNoIHVzdWFsbHkgZG8gbm90IG1hdHRlciBoYXZlIG1lYW5pbmcgd2hlbiBwYWRkaW5nIGlzCisgKiB1c2VkLCBiZWNhdXNlIHRoZSBwYXR0ZXJuIHdpZHRoIGlzIHNpZ25pZmljYW50IHdpdGggcGFkZGluZy4gIEluIHRoZSBwYXR0ZXJuCisgKiAiKiAjIywjIywjLCMjMC4jIyIsIHRoZSBmb3JtYXQgd2lkdGggaXMgMTQuICBUaGUgaW5pdGlhbCBjaGFyYWN0ZXJzICIjIywjIywiCisgKiBkbyBub3QgYWZmZWN0IHRoZSBncm91cGluZyBzaXplIG9yIG1heGltdW0gaW50ZWdlciBkaWdpdHMsIGJ1dCB0aGV5IGRvIGFmZmVjdAorICogdGhlIGZvcm1hdCB3aWR0aC4KKyAqCisgKiA8bGk+UGFkZGluZyBtYXkgYmUgaW5zZXJ0ZWQgYXQgb25lIG9mIGZvdXIgbG9jYXRpb25zOiBiZWZvcmUgdGhlIHByZWZpeCwKKyAqIGFmdGVyIHRoZSBwcmVmaXgsIGJlZm9yZSB0aGUgc3VmZml4LCBvciBhZnRlciB0aGUgc3VmZml4LiAgSWYgcGFkZGluZyBpcworICogc3BlY2lmaWVkIGluIGFueSBvdGhlciBsb2NhdGlvbiwge0BsaW5rICNhcHBseVBhdHRlcm59IHRocm93cyBhbiB7QGxpbmsKKyAqIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbn0uICBJZiB0aGVyZSBpcyBubyBwcmVmaXgsIGJlZm9yZSB0aGUKKyAqIHByZWZpeCBhbmQgYWZ0ZXIgdGhlIHByZWZpeCBhcmUgZXF1aXZhbGVudCwgbGlrZXdpc2UgZm9yIHRoZSBzdWZmaXguCisgKgorICogPGxpPldoZW4gc3BlY2lmaWVkIGluIGEgcGF0dGVybiwgdGhlIDE2LWJpdCA8Y29kZT5jaGFyPC9jb2RlPiBpbW1lZGlhdGVseQorICogZm9sbG93aW5nIHRoZSBwYWQgZXNjYXBlIGlzIHRoZSBwYWQgY2hhcmFjdGVyLiBUaGlzIG1heSBiZSBhbnkgY2hhcmFjdGVyLAorICogaW5jbHVkaW5nIGEgc3BlY2lhbCBwYXR0ZXJuIGNoYXJhY3Rlci4gVGhhdCBpcywgdGhlIHBhZCBlc2NhcGUKKyAqIDxlbT5lc2NhcGVzPC9lbT4gdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIuIElmIHRoZXJlIGlzIG5vIGNoYXJhY3RlciBhZnRlcgorICogdGhlIHBhZCBlc2NhcGUsIHRoZW4gdGhlIHBhdHRlcm4gaXMgaWxsZWdhbC4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogPHN0cm9uZz5Sb3VuZGluZzwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIHJvdW5kaW5nIHRvIGEgc3BlY2lmaWMgaW5jcmVtZW50LiAgRm9yCisgKiBleGFtcGxlLCAxMjMwIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgNTAgaXMgMTI1MC4gIDEuMjM0IHJvdW5kZWQgdG8gdGhlCisgKiBuZWFyZXN0IDAuNjUgaXMgMS4zLiAgVGhlIHJvdW5kaW5nIGluY3JlbWVudCBtYXkgYmUgc3BlY2lmaWVkIHRocm91Z2ggdGhlIEFQSQorICogb3IgaW4gYSBwYXR0ZXJuLiAgVG8gc3BlY2lmeSBhIHJvdW5kaW5nIGluY3JlbWVudCBpbiBhIHBhdHRlcm4sIGluY2x1ZGUgdGhlCisgKiBpbmNyZW1lbnQgaW4gdGhlIHBhdHRlcm4gaXRzZWxmLiAgIiMsIzUwIiBzcGVjaWZpZXMgYSByb3VuZGluZyBpbmNyZW1lbnQgb2YKKyAqIDUwLiAgIiMsIyMwLjA1IiBzcGVjaWZpZXMgYSByb3VuZGluZyBpbmNyZW1lbnQgb2YgMC4wNS4KKyAqCisgKiA8dWw+CisgKiA8bGk+Um91bmRpbmcgb25seSBhZmZlY3RzIHRoZSBzdHJpbmcgcHJvZHVjZWQgYnkgZm9ybWF0dGluZy4gIEl0IGRvZXMKKyAqIG5vdCBhZmZlY3QgcGFyc2luZyBvciBjaGFuZ2UgYW55IG51bWVyaWNhbCB2YWx1ZXMuCisgKgorICogPGxpPkEgPGVtPnJvdW5kaW5nIG1vZGU8L2VtPiBkZXRlcm1pbmVzIGhvdyB2YWx1ZXMgYXJlIHJvdW5kZWQ7IHNlZSB0aGUKKyAqIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWx9IGRvY3VtZW50YXRpb24gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlCisgKiBtb2Rlcy4gIFJvdW5kaW5nIGluY3JlbWVudHMgc3BlY2lmaWVkIGluIHBhdHRlcm5zIHVzZSB0aGUgZGVmYXVsdCBtb2RlLAorICoge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU59LgorICoKKyAqIDxsaT5Tb21lIGxvY2FsZXMgdXNlIHJvdW5kaW5nIGluIHRoZWlyIGN1cnJlbmN5IGZvcm1hdHMgdG8gcmVmbGVjdCB0aGUKKyAqIHNtYWxsZXN0IGN1cnJlbmN5IGRlbm9taW5hdGlvbi4KKyAqCisgKiA8bGk+SW4gYSBwYXR0ZXJuLCBkaWdpdHMgJzEnIHRocm91Z2ggJzknIHNwZWNpZnkgcm91bmRpbmcsIGJ1dCBvdGhlcndpc2UKKyAqIGJlaGF2ZSBpZGVudGljYWxseSB0byBkaWdpdCAnMCcuCisgKiA8L3VsPgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IG9iamVjdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuICBNdWx0aXBsZQorICogdGhyZWFkcyBzaG91bGQgbm90IGFjY2VzcyBvbmUgZm9ybWF0dGVyIGNvbmN1cnJlbnRseS4KKyAqCisgKiBAc2VlICAgICAgICAgIGphdmEudGV4dC5Gb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBhdXRob3IgICAgICAgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGVjaW1hbEZvcm1hdCBleHRlbmRzIE51bWJlckZvcm1hdCB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxTDsKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAcGFyYW0gZGVsZWdhdGUgdGhlIE51bWJlckZvcm1hdCB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KGphdmEudGV4dC5EZWNpbWFsRm9ybWF0IGRlbGVnYXRlKSB7CisgICAgICAgIHN1cGVyKGRlbGVnYXRlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBhbmQgc3ltYm9scworICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuIFRoaXMgaXMgYSBjb252ZW5pZW50IHdheSB0byBvYnRhaW4gYQorICAgICAqIERlY2ltYWxGb3JtYXQgd2hlbiBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBub3QgdGhlIG1haW4gY29uY2Vybi4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBvYnRhaW4gc3RhbmRhcmQgZm9ybWF0cyBmb3IgYSBnaXZlbiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzCisgICAgICogb24gTnVtYmVyRm9ybWF0IHN1Y2ggYXMgZ2V0TnVtYmVySW5zdGFuY2UuIFRoZXNlIGZhY3RvcmllcyB3aWxsCisgICAgICogcmV0dXJuIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHN1Yi1jbGFzcyBvZiBOdW1iZXJGb3JtYXQgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdCgpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4gYW5kIHRoZSBzeW1ib2xzCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4gVGhpcyBpcyBhIGNvbnZlbmllbnQgd2F5IHRvIG9idGFpbiBhCisgICAgICogRGVjaW1hbEZvcm1hdCB3aGVuIGludGVybmF0aW9uYWxpemF0aW9uIGlzIG5vdCB0aGUgbWFpbiBjb25jZXJuLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBzdGFuZGFyZCBmb3JtYXRzIGZvciBhIGdpdmVuIGxvY2FsZSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBOdW1iZXJGb3JtYXQgc3VjaCBhcyBnZXROdW1iZXJJbnN0YW5jZS4gVGhlc2UgZmFjdG9yaWVzIHdpbGwKKyAgICAgKiByZXR1cm4gdGhlIG1vc3QgYXBwcm9wcmlhdGUgc3ViLWNsYXNzIG9mIE51bWJlckZvcm1hdCBmb3IgYSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBBIG5vbi1sb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIHBhdHRlcm4gaXMgaW52YWxpZC4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldE51bWJlckluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0Q3VycmVuY3lJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldFBlcmNlbnRJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KHBhdHRlcm4pKTsKKyAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4gYW5kIHN5bWJvbHMuCisgICAgICogVXNlIHRoaXMgY29uc3RydWN0b3Igd2hlbiB5b3UgbmVlZCB0byBjb21wbGV0ZWx5IGN1c3RvbWl6ZSB0aGUKKyAgICAgKiBiZWhhdmlvciBvZiB0aGUgZm9ybWF0LgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBzdGFuZGFyZCBmb3JtYXRzIGZvciBhIGdpdmVuCisgICAgICogbG9jYWxlLCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBvbiBOdW1iZXJGb3JtYXQgc3VjaCBhcworICAgICAqIGdldEluc3RhbmNlIG9yIGdldEN1cnJlbmN5SW5zdGFuY2UuIElmIHlvdSBuZWVkIG9ubHkgbWlub3IgYWRqdXN0bWVudHMKKyAgICAgKiB0byBhIHN0YW5kYXJkIGZvcm1hdCwgeW91IGNhbiBtb2RpZnkgdGhlIGZvcm1hdCByZXR1cm5lZCBieQorICAgICAqIGEgTnVtYmVyRm9ybWF0IGZhY3RvcnkgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgbm9uLWxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSBzeW1ib2xzIHRoZSBzZXQgb2Ygc3ltYm9scyB0byBiZSB1c2VkCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0TnVtYmVySW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRDdXJyZW5jeUluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0UGVyY2VudEluc3RhbmNlCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMuZGZzKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgZGVjaW1hbCBmb3JtYXQgc3ltYm9scyB1c2VkIGJ5IHRoaXMgZm9ybWF0LgorICAgICAqIEByZXR1cm4gZGVzaXJlZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGVjaW1hbCBmb3JtYXQgc3ltYm9scyB1c2VkIGJ5IHRoaXMgZm9ybWF0LiAgVGhlCisgICAgICogZm9ybWF0IHVzZXMgYSBjb3B5IG9mIHRoZSBwcm92aWRlZCBzeW1ib2xzLgorICAgICAqIEBwYXJhbSBuZXdTeW1ib2xzIGRlc2lyZWQgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoRGVjaW1hbEZvcm1hdFN5bWJvbHMgbmV3U3ltYm9scykgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMobmV3U3ltYm9scy5kZnMpOworICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgcG9zaXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiArMTIzLCAkMTIzLCBzRnIxMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBvc2l0aXZlUHJlZml4KCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldFBvc2l0aXZlUHJlZml4KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogKzEyMywgJDEyMywgc0ZyMTIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpdmVQcmVmaXgoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXRQb3NpdGl2ZVByZWZpeChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5lZ2F0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMywgKCQxMjMpICh3aXRoIG5lZ2F0aXZlIHN1ZmZpeCksIHNGci0xMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5lZ2F0aXZlUHJlZml4ICgpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5nZXROZWdhdGl2ZVByZWZpeCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBuZWdhdGl2ZSBwcmVmaXguCisgICAgICogPFA+RXhhbXBsZXM6IC0xMjMsICgkMTIzKSAod2l0aCBuZWdhdGl2ZSBzdWZmaXgpLCBzRnItMTIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmVnYXRpdmVQcmVmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0TmVnYXRpdmVQcmVmaXgobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBwb3NpdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZTogMTIzJQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UG9zaXRpdmVTdWZmaXggKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldFBvc2l0aXZlU3VmZml4KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpdmVTdWZmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0UG9zaXRpdmVTdWZmaXgobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuZWdhdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZXM6IC0xMjMlLCAoJDEyMykgKHdpdGggcG9zaXRpdmUgc3VmZml4ZXMpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROZWdhdGl2ZVN1ZmZpeCAoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0TmVnYXRpdmVTdWZmaXgoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgc3VmZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmVnYXRpdmVTdWZmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0TmVnYXRpdmVTdWZmaXgobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtdWx0aXBsaWVyIGZvciB1c2UgaW4gcGVyY2VudCwgcGVybWlsbCwgZXRjLgorICAgICAqIEZvciBhIHBlcmNlbnRhZ2UsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiJSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMC4KKyAgICAgKiAoRm9yIEFyYWJpYywgdXNlIGFyYWJpYyBwZXJjZW50IHN5bWJvbCkuCisgICAgICogRm9yIGEgcGVybWlsbCwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICJcdTIwMzEiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAwLgorICAgICAqIDxQPkV4YW1wbGVzOiB3aXRoIDEwMCwgMS4yMyAtPiAiMTIzIiwgYW5kICIxMjMiIC0+IDEuMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE11bHRpcGxpZXIgKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldE11bHRpcGxpZXIoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgbXVsdGlwbGllciBmb3IgdXNlIGluIHBlcmNlbnQsIHBlcm1pbGwsIGV0Yy4KKyAgICAgKiBGb3IgYSBwZXJjZW50YWdlLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIiUiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAuCisgICAgICogKEZvciBBcmFiaWMsIHVzZSBhcmFiaWMgcGVyY2VudCBzeW1ib2wpLgorICAgICAqIEZvciBhIHBlcm1pbGwsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiXHUyMDMxIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwMC4KKyAgICAgKiA8UD5FeGFtcGxlczogd2l0aCAxMDAsIDEuMjMgLT4gIjEyMyIsIGFuZCAiMTIzIiAtPiAxLjIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TXVsdGlwbGllciAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXRNdWx0aXBsaWVyKG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZ3JvdXBpbmcgc2l6ZS4gR3JvdXBpbmcgc2l6ZSBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBiZXR3ZWVuCisgICAgICogZ3JvdXBpbmcgc2VwYXJhdG9ycyBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEgbnVtYmVyLiAgRm9yIGV4YW1wbGUsCisgICAgICogaW4gdGhlIG51bWJlciAiMTIzLDQ1Ni43OCIsIHRoZSBncm91cGluZyBzaXplIGlzIDMuCisgICAgICogQHNlZSAjc2V0R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjaXNHcm91cGluZ1VzZWQKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzI2dldEdyb3VwaW5nU2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRHcm91cGluZ1NpemUgKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldEdyb3VwaW5nU2l6ZSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRHcm91cGluZ1VzZWQKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzI3NldEdyb3VwaW5nU2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JvdXBpbmdTaXplIChpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldEdyb3VwaW5nU2l6ZShuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIGdldCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpdGggaW50ZWdlcnMuCisgICAgICogKFRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aWxsIGFsd2F5cyBhcHBlYXIgd2l0aCBkZWNpbWFscy4pCisgICAgICogPFA+RXhhbXBsZTogRGVjaW1hbCBPTjogMTIzNDUgLT4gMTIzNDUuOyBPRkY6IDEyMzQ1IC0+IDEyMzQ1CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBiZWhhdmlvciBvZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3Igd2l0aCBpbnRlZ2Vycy4KKyAgICAgKiAoVGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpbGwgYWx3YXlzIGFwcGVhciB3aXRoIGRlY2ltYWxzLikKKyAgICAgKgorICAgICAqIDxwPlRoaXMgb25seSBhZmZlY3RzIGZvcm1hdHRpbmcsIGFuZCBvbmx5IHdoZXJlCisgICAgICogdGhlcmUgbWlnaHQgYmUgbm8gZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LCBlLmcuLAorICAgICAqIGlmIHRydWUsICAzNDU2LjAwIC0+ICIzLDQ1Ni4iCisgICAgICogaWYgZmFsc2UsIDM0NTYuMDAgLT4gIjM0NTYiCisgICAgICogVGhpcyBpcyBpbmRlcGVuZGVudCBvZiBwYXJzaW5nLiAgSWYgeW91IHdhbnQgcGFyc2luZyB0byBzdG9wIGF0IHRoZSBkZWNpbWFsCisgICAgICogcG9pbnQsIHVzZSBzZXRQYXJzZUludGVnZXJPbmx5LgorICAgICAqCisgICAgICogPFA+RXhhbXBsZTogRGVjaW1hbCBPTjogMTIzNDUgLT4gMTIzNDUuOyBPRkY6IDEyMzQ1IC0+IDEyMzQ1CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGJvb2xlYW4gbmV3VmFsdWUpIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBvdmVycmlkZTsgbm8gY2hhbmdlIGluIHNlbWFudGljcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMpbnVtYmVyRm9ybWF0LmNsb25lKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3ludGhlc2l6ZXMgYSBwYXR0ZXJuIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKiBvZiB0aGlzIEZvcm1hdCBvYmplY3QuCisgICAgICogQHNlZSAjYXBwbHlQYXR0ZXJuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkudG9QYXR0ZXJuKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTeW50aGVzaXplcyBhIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQKKyAgICAgKiBzdGF0ZSBvZiB0aGlzIEZvcm1hdCBvYmplY3QuCisgICAgICogQHNlZSAjYXBwbHlQYXR0ZXJuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHBhdHRlcm4gdG8gdGhpcyBGb3JtYXQgb2JqZWN0LiAgQSBwYXR0ZXJuIGlzIGEKKyAgICAgKiBzaG9ydC1oYW5kIHNwZWNpZmljYXRpb24gZm9yIHRoZSB2YXJpb3VzIGZvcm1hdHRpbmcgcHJvcGVydGllcy4KKyAgICAgKiBUaGVzZSBwcm9wZXJ0aWVzIGNhbiBhbHNvIGJlIGNoYW5nZWQgaW5kaXZpZHVhbGx5IHRocm91Z2ggdGhlCisgICAgICogdmFyaW91cyBzZXR0ZXIgbWV0aG9kcy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBpcyBubyBsaW1pdCB0byBpbnRlZ2VyIGRpZ2l0cyBhcmUgc2V0CisgICAgICogYnkgdGhpcyByb3V0aW5lLCBzaW5jZSB0aGF0IGlzIHRoZSB0eXBpY2FsIGVuZC11c2VyIGRlc2lyZTsKKyAgICAgKiB1c2Ugc2V0TWF4aW11bUludGVnZXIgaWYgeW91IHdhbnQgdG8gc2V0IGEgcmVhbCB2YWx1ZS4KKyAgICAgKiBGb3IgbmVnYXRpdmUgbnVtYmVycywgdXNlIGEgc2Vjb25kIHBhdHRlcm4sIHNlcGFyYXRlZCBieSBhIHNlbWljb2xvbgorICAgICAqIDxQPkV4YW1wbGUgIiMsIzAwLjAjIiAtPiAxLDIzNC41NgorICAgICAqIDxQPlRoaXMgbWVhbnMgYSBtaW5pbXVtIG9mIDIgaW50ZWdlciBkaWdpdHMsIDEgZnJhY3Rpb24gZGlnaXQsIGFuZAorICAgICAqIGEgbWF4aW11bSBvZiAyIGZyYWN0aW9uIGRpZ2l0cy4KKyAgICAgKiA8cD5FeGFtcGxlOiAiIywjMDAuMCM7KCMsIzAwLjAjKSIgZm9yIG5lZ2F0aXZlcyBpbiBwYXJlbnRoZXNlcy4KKyAgICAgKiA8cD5JbiBuZWdhdGl2ZSBwYXR0ZXJucywgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gY291bnRzIGFyZSBpZ25vcmVkOworICAgICAqIHRoZXNlIGFyZSBwcmVzdW1lZCB0byBiZSBzZXQgaW4gdGhlIHBvc2l0aXZlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gcGF0dGVybiB0byB0aGlzIEZvcm1hdCBvYmplY3QuICBUaGUgcGF0dGVybgorICAgICAqIGlzIGFzc3VtZWQgdG8gYmUgaW4gYSBsb2NhbGl6ZWQgbm90YXRpb24uIEEgcGF0dGVybiBpcyBhCisgICAgICogc2hvcnQtaGFuZCBzcGVjaWZpY2F0aW9uIGZvciB0aGUgdmFyaW91cyBmb3JtYXR0aW5nIHByb3BlcnRpZXMuCisgICAgICogVGhlc2UgcHJvcGVydGllcyBjYW4gYWxzbyBiZSBjaGFuZ2VkIGluZGl2aWR1YWxseSB0aHJvdWdoIHRoZQorICAgICAqIHZhcmlvdXMgc2V0dGVyIG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogVGhlcmUgaXMgbm8gbGltaXQgdG8gaW50ZWdlciBkaWdpdHMgYXJlIHNldAorICAgICAqIGJ5IHRoaXMgcm91dGluZSwgc2luY2UgdGhhdCBpcyB0aGUgdHlwaWNhbCBlbmQtdXNlciBkZXNpcmU7CisgICAgICogdXNlIHNldE1heGltdW1JbnRlZ2VyIGlmIHlvdSB3YW50IHRvIHNldCBhIHJlYWwgdmFsdWUuCisgICAgICogRm9yIG5lZ2F0aXZlIG51bWJlcnMsIHVzZSBhIHNlY29uZCBwYXR0ZXJuLCBzZXBhcmF0ZWQgYnkgYSBzZW1pY29sb24KKyAgICAgKiA8UD5FeGFtcGxlICIjLCMwMC4wIyIgLT4gMSwyMzQuNTYKKyAgICAgKiA8UD5UaGlzIG1lYW5zIGEgbWluaW11bSBvZiAyIGludGVnZXIgZGlnaXRzLCAxIGZyYWN0aW9uIGRpZ2l0LCBhbmQKKyAgICAgKiBhIG1heGltdW0gb2YgMiBmcmFjdGlvbiBkaWdpdHMuCisgICAgICogPHA+RXhhbXBsZTogIiMsIzAwLjAjOygjLCMwMC4wIykiIGZvciBuZWdhdGl2ZXMgaW4gcGFyZW50aGVzZXMuCisgICAgICogPHA+SW4gbmVnYXRpdmUgcGF0dGVybnMsIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvdW50cyBhcmUgaWdub3JlZDsKKyAgICAgKiB0aGVzZSBhcmUgcHJlc3VtZWQgdG8gYmUgc2V0IGluIHRoZSBwb3NpdGl2ZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5TG9jYWxpemVkUGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKHBhdHRlcm4pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3NGI0YTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMzQ5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBzZXQgb2Ygc3ltYm9scyAoc3VjaCBhcyB0aGUgZGVjaW1hbCBzZXBhcmF0b3IsIHRoZQorICogZ3JvdXBpbmcgc2VwYXJhdG9yLCBhbmQgc28gb24pIG5lZWRlZCBieSA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiB0byBmb3JtYXQKKyAqIG51bWJlcnMuIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNyZWF0ZXMgZm9yIGl0c2VsZiBhbiBpbnN0YW5jZSBvZgorICogPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IGZyb20gaXRzIGxvY2FsZSBkYXRhLiAgSWYgeW91IG5lZWQgdG8KKyAqIGNoYW5nZSBhbnkgb2YgdGhlc2Ugc3ltYm9scywgeW91IGNhbiBnZXQgdGhlCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gb2JqZWN0IGZyb20geW91ciA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPgorICogYW5kIG1vZGlmeSBpdC4KKyAqCisgKiA8cD48c3Ryb25nPlRoaXMgaXMgYW4gZW5oYW5jZWQgdmVyc2lvbiBvZiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gdGhhdAorICogaXMgYmFzZWQgb24gdGhlIHN0YW5kYXJkIHZlcnNpb24gaW4gdGhlIEpESy4gIE5ldyBvciBjaGFuZ2VkIGZ1bmN0aW9uYWxpdHkKKyAqIGlzIGxhYmVsZWQKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4uPC9zdHJvbmc+CisgKgorICogQHNlZSAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlCisgKiBAc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2ZpbmFsIHB1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0U3ltYm9scyBpbXBsZW1lbnRzIENsb25lYWJsZSwgU2VyaWFsaXphYmxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPTFMOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzIGRmczsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXRTeW1ib2xzKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyBkZWxlZ2F0ZSkgeworICAgICAgICB0aGlzLmRmcyA9IGRlbGVnYXRlOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyhsb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgemVyby4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRaZXJvRGlnaXQoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0WmVyb0RpZ2l0KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciB6ZXJvLgorICAgICAqIEBwYXJhbSB6ZXJvRGlnaXQgdGhlIHplcm8gY2hhcmFjdGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFplcm9EaWdpdChjaGFyIHplcm9EaWdpdCkgeworICAgICAgICBkZnMuc2V0WmVyb0RpZ2l0KHplcm9EaWdpdCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciB0aG91c2FuZHMgc2VwYXJhdG9yLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHRob3VzYW5kcyBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRHcm91cGluZ1NlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgdGhvdXNhbmRzIHNlcGFyYXRvci4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcGFyYW0gZ3JvdXBpbmdTZXBhcmF0b3IgdGhlIHRob3VzYW5kcyBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcm91cGluZ1NlcGFyYXRvcihjaGFyIGdyb3VwaW5nU2VwYXJhdG9yKSB7CisgICAgICAgIGRmcy5zZXRHcm91cGluZ1NlcGFyYXRvcihncm91cGluZ1NlcGFyYXRvcik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBkZWNpbWFsIHNpZ24uIERpZmZlcmVudCBmb3IgRnJlbmNoLCBldGMuCisgICAgICogQHJldHVybiB0aGUgZGVjaW1hbCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXREZWNpbWFsU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcGFyYW0gZGVjaW1hbFNlcGFyYXRvciB0aGUgZGVjaW1hbCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsU2VwYXJhdG9yKGNoYXIgZGVjaW1hbFNlcGFyYXRvcikgeworICAgICAgICBkZnMuc2V0RGVjaW1hbFNlcGFyYXRvcihkZWNpbWFsU2VwYXJhdG9yKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaWxsZSBwZXJjZW50IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBlck1pbGwoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0UGVyTWlsbCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgbWlsbGUgcGVyY2VudCBzaWduLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqIEBwYXJhbSBwZXJNaWxsIHRoZSBtaWxsZSBwZXJjZW50IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBlck1pbGwoY2hhciBwZXJNaWxsKSB7CisgICAgICAgIGRmcy5zZXRQZXJNaWxsKHBlck1pbGwpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgcGVyY2VudCBzaWduLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGVyY2VudCgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRQZXJjZW50KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHBhcmFtIHBlcmNlbnQgdGhlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGVyY2VudChjaGFyIHBlcmNlbnQpIHsKKyAgICAgICAgZGZzLnNldFBlcmNlbnQocGVyY2VudCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBhIGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcmV0dXJuIHRoZSBkaWdpdCBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldERpZ2l0KCkgeworICAgICAgICByZXR1cm4gZGZzLmdldERpZ2l0KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBhIGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gZGlnaXQgdGhlIGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGlnaXQoY2hhciBkaWdpdCkgeworICAgICAgICBkZnMuc2V0RGlnaXQoZGlnaXQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybiBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGF0dGVyblNlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICAgICAqIGluIGEgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gcGF0dGVyblNlcGFyYXRvciB0aGUgcGF0dGVybiBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0dGVyblNlcGFyYXRvcihjaGFyIHBhdHRlcm5TZXBhcmF0b3IpIHsKKyAgICAgICAgZGZzLnNldFBhdHRlcm5TZXBhcmF0b3IocGF0dGVyblNlcGFyYXRvcik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIFN0cmluZyB1c2VkIHRvIHJlcHJlc2VudCBpbmZpbml0eS4gQWxtb3N0IGFsd2F5cyBsZWZ0CisgICAgICogdW5jaGFuZ2VkLgorICAgICAqIEByZXR1cm4gdGhlIEluZmluaXR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5maW5pdHkoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0SW5maW5pdHkoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5LiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIGluZmluaXR5IHRoZSBJbmZpbml0eSBTdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmZpbml0eShTdHJpbmcgaW5maW5pdHkpIHsKKyAgICAgICAgZGZzLnNldEluZmluaXR5KGluZmluaXR5KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IE5hTi4gQWxtb3N0IGFsd2F5cyBsZWZ0CisgICAgICogdW5jaGFuZ2VkLgorICAgICAqIEByZXR1cm4gdGhlIE5hTiBTdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hTigpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXROYU4oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IE5hTi4gQWxtb3N0IGFsd2F5cyBsZWZ0CisgICAgICogdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBOYU4gdGhlIE5hTiBTdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROYU4oU3RyaW5nIE5hTikgeworICAgICAgICBkZnMuc2V0TmFOKE5hTik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBtaW51cyBzaWduLiBJZiBubyBleHBsaWNpdAorICAgICAqIG5lZ2F0aXZlIGZvcm1hdCBpcyBzcGVjaWZpZWQsIG9uZSBpcyBmb3JtZWQgYnkgcHJlZml4aW5nCisgICAgICogbWludXNTaWduIHRvIHRoZSBwb3NpdGl2ZSBmb3JtYXQuCisgICAgICogQHJldHVybiB0aGUgbWludXMgc2lnbiBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRNaW51c1NpZ24oKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0TWludXNTaWduKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBtaW51cyBzaWduLiBJZiBubyBleHBsaWNpdAorICAgICAqIG5lZ2F0aXZlIGZvcm1hdCBpcyBzcGVjaWZpZWQsIG9uZSBpcyBmb3JtZWQgYnkgcHJlZml4aW5nCisgICAgICogbWludXNTaWduIHRvIHRoZSBwb3NpdGl2ZSBmb3JtYXQuCisgICAgICogQHBhcmFtIG1pbnVzU2lnbiB0aGUgbWludXMgc2lnbiBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW51c1NpZ24oY2hhciBtaW51c1NpZ24pIHsKKyAgICAgICAgZGZzLnNldE1pbnVzU2lnbihtaW51c1NpZ24pOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsIGN1cnJlbmN5IFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEN1cnJlbmN5U3ltYm9sKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBsb2NhbCBjdXJyZW5jeSBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q3VycmVuY3lTeW1ib2woU3RyaW5nIGN1cnJlbmN5KSB7CisgICAgICAgIGRmcy5zZXRDdXJyZW5jeVN5bWJvbChjdXJyZW5jeSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGludGVybmF0aW9uYWwgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEBwYXJhbSBjdXJyZW5jeSB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbChTdHJpbmcgY3VycmVuY3kpIHsKKyAgICAgICAgZGZzLnNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbChjdXJyZW5jeSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yLgorICAgICAqIEByZXR1cm4gdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IuCisgICAgICogQHBhcmFtIHNlcCB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKGNoYXIgc2VwKSB7CisgICAgICAgIGRmcy5zZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3Ioc2VwKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFN0YW5kYXJkIG92ZXJyaWRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scylkZnMuY2xvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBlcXVhbHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBkZnMuZXF1YWxzKCgoRGVjaW1hbEZvcm1hdFN5bWJvbHMpb2JqKS5kZnMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBkZnMuaGFzaENvZGUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9NZXNzYWdlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9NZXNzYWdlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA5YTEwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDEwNDMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IHByb3ZpZGVzIGEgbWVhbnMgdG8gcHJvZHVjZSBjb25jYXRlbmF0ZWQKKyAqIG1lc3NhZ2VzIGluIGxhbmd1YWdlLW5ldXRyYWwgd2F5LiBVc2UgdGhpcyB0byBjb25zdHJ1Y3QgbWVzc2FnZXMKKyAqIGRpc3BsYXllZCBmb3IgZW5kIHVzZXJzLgorICoKKyAqIDxwPgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gdGFrZXMgYSBzZXQgb2Ygb2JqZWN0cywgZm9ybWF0cyB0aGVtLCB0aGVuCisgKiBpbnNlcnRzIHRoZSBmb3JtYXR0ZWQgc3RyaW5ncyBpbnRvIHRoZSBwYXR0ZXJuIGF0IHRoZSBhcHByb3ByaWF0ZSBwbGFjZXMuCisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+CisgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBkaWZmZXJzIGZyb20gdGhlIG90aGVyIDxjb2RlPkZvcm1hdDwvY29kZT4KKyAqIGNsYXNzZXMgaW4gdGhhdCB5b3UgY3JlYXRlIGEgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gb2JqZWN0IHdpdGggb25lCisgKiBvZiBpdHMgY29uc3RydWN0b3JzIChub3Qgd2l0aCBhIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiBzdHlsZSBmYWN0b3J5CisgKiBtZXRob2QpLiBUaGUgZmFjdG9yeSBtZXRob2RzIGFyZW4ndCBuZWNlc3NhcnkgYmVjYXVzZSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPgorICogaXRzZWxmIGRvZXNuJ3QgaW1wbGVtZW50IGxvY2FsZSBzcGVjaWZpYyBiZWhhdmlvci4gQW55IGxvY2FsZSBzcGVjaWZpYworICogYmVoYXZpb3IgaXMgZGVmaW5lZCBieSB0aGUgcGF0dGVybiB0aGF0IHlvdSBwcm92aWRlIGFzIHdlbGwgYXMgdGhlCisgKiBzdWJmb3JtYXRzIHVzZWQgZm9yIGluc2VydGVkIGFyZ3VtZW50cy4KKyAqCisgKiA8aDQ+PGEgbmFtZT0icGF0dGVybnMiPlBhdHRlcm5zIGFuZCBUaGVpciBJbnRlcnByZXRhdGlvbjwvYT48L2g0PgorICoKKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IHVzZXMgcGF0dGVybnMgb2YgdGhlIGZvbGxvd2luZyBmb3JtOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIDxpPk1lc3NhZ2VGb3JtYXRQYXR0ZXJuOjwvaT4KKyAqICAgICAgICAgPGk+U3RyaW5nPC9pPgorICogICAgICAgICA8aT5NZXNzYWdlRm9ybWF0UGF0dGVybjwvaT4gPGk+Rm9ybWF0RWxlbWVudDwvaT4gPGk+U3RyaW5nPC9pPgorICoKKyAqIDxpPkZvcm1hdEVsZW1lbnQ6PC9pPgorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+IH0KKyAqICAgICAgICAgeyA8aT5Bcmd1bWVudEluZGV4PC9pPiAsIDxpPkZvcm1hdFR5cGU8L2k+IH0KKyAqICAgICAgICAgeyA8aT5Bcmd1bWVudEluZGV4PC9pPiAsIDxpPkZvcm1hdFR5cGU8L2k+ICwgPGk+Rm9ybWF0U3R5bGU8L2k+IH0KKyAqCisgKiA8aT5Gb3JtYXRUeXBlOiBvbmUgb2YgPC9pPgorICogICAgICAgICBudW1iZXIgZGF0ZSB0aW1lIGNob2ljZQorICoKKyAqIDxpPkZvcm1hdFN0eWxlOjwvaT4KKyAqICAgICAgICAgc2hvcnQKKyAqICAgICAgICAgbWVkaXVtCisgKiAgICAgICAgIGxvbmcKKyAqICAgICAgICAgZnVsbAorICogICAgICAgICBpbnRlZ2VyCisgKiAgICAgICAgIGN1cnJlbmN5CisgKiAgICAgICAgIHBlcmNlbnQKKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4KKyAqCisgKiA8aT5TdHJpbmc6PC9pPgorICogICAgICAgICA8aT5TdHJpbmdQYXJ0PHN1Yj5vcHQ8L3N1Yj48L2k+CisgKiAgICAgICAgIDxpPlN0cmluZzwvaT4gPGk+U3RyaW5nUGFydDwvaT4KKyAqCisgKiA8aT5TdHJpbmdQYXJ0OjwvaT4KKyAqICAgICAgICAgJycKKyAqICAgICAgICAgJyA8aT5RdW90ZWRTdHJpbmc8L2k+ICcKKyAqICAgICAgICAgPGk+VW5xdW90ZWRTdHJpbmc8L2k+CisgKgorICogPGk+U3ViZm9ybWF0UGF0dGVybjo8L2k+CisgKiAgICAgICAgIDxpPlN1YmZvcm1hdFBhdHRlcm5QYXJ0PHN1Yj5vcHQ8L3N1Yj48L2k+CisgKiAgICAgICAgIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+IDxpPlN1YmZvcm1hdFBhdHRlcm5QYXJ0PC9pPgorICoKKyAqIDxpPlN1YkZvcm1hdFBhdHRlcm5QYXJ0OjwvaT4KKyAqICAgICAgICAgJyA8aT5RdW90ZWRQYXR0ZXJuPC9pPiAnCisgKiAgICAgICAgIDxpPlVucXVvdGVkUGF0dGVybjwvaT4KKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIFdpdGhpbiBhIDxpPlN0cmluZzwvaT4sIDxjb2RlPiInJyI8L2NvZGU+IHJlcHJlc2VudHMgYSBzaW5nbGUKKyAqIHF1b3RlLiBBIDxpPlF1b3RlZFN0cmluZzwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzOyB0aGUgc3Vycm91bmRpbmcgc2luZ2xlIHF1b3RlcyBhcmUgcmVtb3ZlZC4KKyAqIEFuIDxpPlVucXVvdGVkU3RyaW5nPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXMgYW5kIGxlZnQgY3VybHkgYnJhY2tldHMuIFRodXMsIGEgc3RyaW5nIHRoYXQKKyAqIHNob3VsZCByZXN1bHQgaW4gdGhlIGZvcm1hdHRlZCBtZXNzYWdlICInezB9JyIgY2FuIGJlIHdyaXR0ZW4gYXMKKyAqIDxjb2RlPiInJyd7JzB9JyciPC9jb2RlPiBvciA8Y29kZT4iJycnezB9JycnIjwvY29kZT4uCisgKiA8cD4KKyAqIFdpdGhpbiBhIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+LCBkaWZmZXJlbnQgcnVsZXMgYXBwbHkuCisgKiBBIDxpPlF1b3RlZFBhdHRlcm48L2k+IGNhbiBjb250YWluIGFyYml0cmFyeSBjaGFyYWN0ZXJzCisgKiBleGNlcHQgc2luZ2xlIHF1b3RlczsgYnV0IHRoZSBzdXJyb3VuZGluZyBzaW5nbGUgcXVvdGVzIGFyZQorICogPHN0cm9uZz5ub3Q8L3N0cm9uZz4gcmVtb3ZlZCwgc28gdGhleSBtYXkgYmUgaW50ZXJwcmV0ZWQgYnkgdGhlCisgKiBzdWJmb3JtYXQuIEZvciBleGFtcGxlLCA8Y29kZT4iezEsbnVtYmVyLCQnIycsIyN9IjwvY29kZT4gd2lsbAorICogcHJvZHVjZSBhIG51bWJlciBmb3JtYXQgd2l0aCB0aGUgcG91bmQtc2lnbiBxdW90ZWQsIHdpdGggYSByZXN1bHQKKyAqIHN1Y2ggYXM6ICIkIzMxLDQ1Ii4KKyAqIEFuIDxpPlVucXVvdGVkUGF0dGVybjwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzLCBidXQgY3VybHkgYnJhY2VzIHdpdGhpbiBpdCBtdXN0IGJlIGJhbGFuY2VkLgorICogRm9yIGV4YW1wbGUsIDxjb2RlPiJhYiB7MH0gZGUiPC9jb2RlPiBhbmQgPGNvZGU+ImFiICd9JyBkZSI8L2NvZGU+CisgKiBhcmUgdmFsaWQgc3ViZm9ybWF0IHBhdHRlcm5zLCBidXQgPGNvZGU+ImFiIHswJ30nIGRlIjwvY29kZT4gYW5kCisgKiA8Y29kZT4iYWIgfSBkZSI8L2NvZGU+IGFyZSBub3QuCisgKiA8cD4KKyAqIDxkbD48ZHQ+PGI+V2FybmluZzo8L2I+PGRkPlRoZSBydWxlcyBmb3IgdXNpbmcgcXVvdGVzIHdpdGhpbiBtZXNzYWdlCisgKiBmb3JtYXQgcGF0dGVybnMgdW5mb3J0dW5hdGVseSBoYXZlIHNob3duIHRvIGJlIHNvbWV3aGF0IGNvbmZ1c2luZy4KKyAqIEluIHBhcnRpY3VsYXIsIGl0IGlzbid0IGFsd2F5cyBvYnZpb3VzIHRvIGxvY2FsaXplcnMgd2hldGhlciBzaW5nbGUKKyAqIHF1b3RlcyBuZWVkIHRvIGJlIGRvdWJsZWQgb3Igbm90LiBNYWtlIHN1cmUgdG8gaW5mb3JtIGxvY2FsaXplcnMgYWJvdXQKKyAqIHRoZSBydWxlcywgYW5kIHRlbGwgdGhlbSAoZm9yIGV4YW1wbGUsIGJ5IHVzaW5nIGNvbW1lbnRzIGluIHJlc291cmNlCisgKiBidW5kbGUgc291cmNlIGZpbGVzKSB3aGljaCBzdHJpbmdzIHdpbGwgYmUgcHJvY2Vzc2VkIGJ5IE1lc3NhZ2VGb3JtYXQuCisgKiBOb3RlIHRoYXQgbG9jYWxpemVycyBtYXkgbmVlZCB0byB1c2Ugc2luZ2xlIHF1b3RlcyBpbiB0cmFuc2xhdGVkCisgKiBzdHJpbmdzIHdoZXJlIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIGRvZXNuJ3QgaGF2ZSB0aGVtLgorICogPGJyPk5vdGUgYWxzbyB0aGF0IHRoZSBzaW1wbGVzdCB3YXkgdG8gYXZvaWQgdGhlIHByb2JsZW0gaXMgdG8KKyAqIHVzZSB0aGUgcmVhbCBhcG9zdHJvcGhlIChzaW5nbGUgcXVvdGUpIGNoYXJhY3RlciBcdTIwMTkgKCcpIGZvcgorICogaHVtYW4tcmVhZGFibGUgdGV4dCwgYW5kIHRvIHVzZSB0aGUgQVNDSUkgYXBvc3Ryb3BoZSAoXHUwMDI3ICcgKQorICogb25seSBpbiBwcm9ncmFtIHN5bnRheCwgbGlrZSBxdW90aW5nIGluIE1lc3NhZ2VGb3JtYXQuCisgKiBTZWUgdGhlIGFubm90YXRpb25zIGZvciBVKzAwMjcgQXBvc3Ryb3BoZSBpbiBUaGUgVW5pY29kZSBTdGFuZGFyZC48L3A+CisgKiA8L2RsPgorICogPHA+CisgKiBUaGUgPGk+QXJndW1lbnRJbmRleDwvaT4gdmFsdWUgaXMgYSBub24tbmVnYXRpdmUgaW50ZWdlciB3cml0dGVuCisgKiB1c2luZyB0aGUgZGlnaXRzICcwJyB0aHJvdWdoICc5JywgYW5kIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byB0aGUKKyAqIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMKKyAqIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQgYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICogPHA+CisgKiBUaGUgPGk+Rm9ybWF0VHlwZTwvaT4gYW5kIDxpPkZvcm1hdFN0eWxlPC9pPiB2YWx1ZXMgYXJlIHVzZWQgdG8gY3JlYXRlCisgKiBhIDxjb2RlPkZvcm1hdDwvY29kZT4gaW5zdGFuY2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudC4gVGhlIGZvbGxvd2luZworICogdGFibGUgc2hvd3MgaG93IHRoZSB2YWx1ZXMgbWFwIHRvIEZvcm1hdCBpbnN0YW5jZXMuIENvbWJpbmF0aW9ucyBub3QKKyAqIHNob3duIGluIHRoZSB0YWJsZSBhcmUgaWxsZWdhbC4gQSA8aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPiBtdXN0CisgKiBiZSBhIHZhbGlkIHBhdHRlcm4gc3RyaW5nIGZvciB0aGUgRm9ybWF0IHN1YmNsYXNzIHVzZWQuCisgKiA8cD4KKyAqIDx0YWJsZSBib3JkZXI9MT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0aD5Gb3JtYXQgVHlwZQorICogICAgICAgPHRoPkZvcm1hdCBTdHlsZQorICogICAgICAgPHRoPlN1YmZvcm1hdCBDcmVhdGVkCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgY29sc3Bhbj0yPjxpPihub25lKTwvaT4KKyAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkIHJvd3NwYW49NT48Y29kZT5udW1iZXI8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+aW50ZWdlcjwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5jdXJyZW5jeTwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+cGVyY2VudDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBEZWNpbWFsRm9ybWF0KHN1YmZvcm1hdFBhdHRlcm4sIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhnZXRMb2NhbGUoKSkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkIHJvd3NwYW49Nj48Y29kZT5kYXRlPC9jb2RlPgorICogICAgICAgPHRkPjxpPihub25lKTwvaT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5zaG9ydDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bWVkaXVtPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmxvbmc8L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+ZnVsbDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBTaW1wbGVEYXRlRm9ybWF0KHN1YmZvcm1hdFBhdHRlcm4sIGdldExvY2FsZSgpKQorICogICAgPHRyPgorICogICAgICAgPHRkIHJvd3NwYW49Nj48Y29kZT50aW1lPC9jb2RlPgorICogICAgICAgPHRkPjxpPihub25lKTwvaT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5zaG9ydDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bWVkaXVtPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmxvbmc8L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+ZnVsbDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBTaW1wbGVEYXRlRm9ybWF0KHN1YmZvcm1hdFBhdHRlcm4sIGdldExvY2FsZSgpKQorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmNob2ljZTwvY29kZT4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBDaG9pY2VGb3JtYXQoc3ViZm9ybWF0UGF0dGVybik8L2NvZGU+CisgKiA8L3RhYmxlPgorICogPHA+CisgKgorICogPGg0PlVzYWdlIEluZm9ybWF0aW9uPC9oND4KKyAqCisgKiA8cD4KKyAqIEhlcmUgYXJlIHNvbWUgZXhhbXBsZXMgb2YgdXNhZ2U6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBPYmplY3RbXSBhcmd1bWVudHMgPSB7CisgKiAgICAgbmV3IEludGVnZXIoNyksCisgKiAgICAgbmV3IERhdGUoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpLAorICogICAgICJhIGRpc3R1cmJhbmNlIGluIHRoZSBGb3JjZSIKKyAqIH07CisgKgorICogU3RyaW5nIHJlc3VsdCA9IE1lc3NhZ2VGb3JtYXQuZm9ybWF0KAorICogICAgICJBdCB7MSx0aW1lfSBvbiB7MSxkYXRlfSwgdGhlcmUgd2FzIHsyfSBvbiBwbGFuZXQgezAsbnVtYmVyLGludGVnZXJ9LiIsCisgKiAgICAgYXJndW1lbnRzKTsKKyAqCisgKiA8ZW0+b3V0cHV0PC9lbT46IEF0IDEyOjMwIFBNIG9uIEp1bCAzLCAyMDUzLCB0aGVyZSB3YXMgYSBkaXN0dXJiYW5jZQorICogICAgICAgICAgIGluIHRoZSBGb3JjZSBvbiBwbGFuZXQgNy4KKyAqCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFR5cGljYWxseSwgdGhlIG1lc3NhZ2UgZm9ybWF0IHdpbGwgY29tZSBmcm9tIHJlc291cmNlcywgYW5kIHRoZQorICogYXJndW1lbnRzIHdpbGwgYmUgZHluYW1pY2FsbHkgc2V0IGF0IHJ1bnRpbWUuCisgKgorICogPHA+CisgKiBFeGFtcGxlIDI6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBPYmplY3RbXSB0ZXN0QXJncyA9IHtuZXcgTG9uZygzKSwgIk15RGlzayJ9OworICoKKyAqIE1lc3NhZ2VGb3JtYXQgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KAorICogICAgICJUaGUgZGlzayBcInsxfVwiIGNvbnRhaW5zIHswfSBmaWxlKHMpLiIpOworICoKKyAqIFN5c3RlbS5vdXQucHJpbnRsbihmb3JtLmZvcm1hdCh0ZXN0QXJncykpOworICoKKyAqIC8vIG91dHB1dCwgd2l0aCBkaWZmZXJlbnQgdGVzdEFyZ3MKKyAqIDxlbT5vdXRwdXQ8L2VtPjogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgMCBmaWxlKHMpLgorICogPGVtPm91dHB1dDwvZW0+OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAxIGZpbGUocykuCisgKiA8ZW0+b3V0cHV0PC9lbT46IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEsMjczIGZpbGUocykuCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIEZvciBtb3JlIHNvcGhpc3RpY2F0ZWQgcGF0dGVybnMsIHlvdSBjYW4gdXNlIGEgPGNvZGU+Q2hvaWNlRm9ybWF0PC9jb2RlPiB0byBnZXQKKyAqIG91dHB1dCBzdWNoIGFzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9LiIpOworICogZG91YmxlW10gZmlsZWxpbWl0cyA9IHswLDEsMn07CisgKiBTdHJpbmdbXSBmaWxlcGFydCA9IHsibm8gZmlsZXMiLCJvbmUgZmlsZSIsInswLG51bWJlcn0gZmlsZXMifTsKKyAqIENob2ljZUZvcm1hdCBmaWxlZm9ybSA9IG5ldyBDaG9pY2VGb3JtYXQoZmlsZWxpbWl0cywgZmlsZXBhcnQpOworICogZm9ybS5zZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXgoMCwgZmlsZWZvcm0pOworICoKKyAqIE9iamVjdFtdIHRlc3RBcmdzID0ge25ldyBMb25nKDEyMzczKSwgIk15RGlzayJ9OworICoKKyAqIFN5c3RlbS5vdXQucHJpbnRsbihmb3JtLmZvcm1hdCh0ZXN0QXJncykpOworICoKKyAqIC8vIG91dHB1dCwgd2l0aCBkaWZmZXJlbnQgdGVzdEFyZ3MKKyAqIG91dHB1dDogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgbm8gZmlsZXMuCisgKiBvdXRwdXQ6IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIG9uZSBmaWxlLgorICogb3V0cHV0OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAxLDI3MyBmaWxlcy4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiBlaXRoZXIgZG8gdGhpcyBwcm9ncmFtbWF0aWNhbGx5LCBhcyBpbiB0aGUgYWJvdmUgZXhhbXBsZSwKKyAqIG9yIGJ5IHVzaW5nIGEgcGF0dGVybiAoc2VlCisgKiB7QGxpbmsgQ2hvaWNlRm9ybWF0fQorICogZm9yIG1vcmUgaW5mb3JtYXRpb24pIGFzIGluOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogZm9ybS5hcHBseVBhdHRlcm4oCisgKiAgICAiVGhlcmUgezAsY2hvaWNlLDAjYXJlIG5vIGZpbGVzfDEjaXMgb25lIGZpbGV8MSZsdDthcmUgezAsbnVtYmVyLGludGVnZXJ9IGZpbGVzfS4iKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEFzIHdlIHNlZSBhYm92ZSwgdGhlIHN0cmluZyBwcm9kdWNlZAorICogYnkgYSA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+IGluIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGlzIHRyZWF0ZWQgc3BlY2lhbGx5OworICogb2NjdXJhbmNlcyBvZiAneycgYXJlIHVzZWQgdG8gaW5kaWNhdGVkIHN1YmZvcm1hdHMsIGFuZCBjYXVzZSByZWN1cnNpb24uCisgKiBJZiB5b3UgY3JlYXRlIGJvdGggYSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBhbmQgPGNvZGU+Q2hvaWNlRm9ybWF0PC9jb2RlPgorICogcHJvZ3JhbW1hdGljYWxseSAoaW5zdGVhZCBvZiB1c2luZyB0aGUgc3RyaW5nIHBhdHRlcm5zKSwgdGhlbiBiZSBjYXJlZnVsIG5vdCB0bworICogcHJvZHVjZSBhIGZvcm1hdCB0aGF0IHJlY3Vyc2VzIG9uIGl0c2VsZiwgd2hpY2ggd2lsbCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wLgorICogPHA+CisgKiBXaGVuIGEgc2luZ2xlIGFyZ3VtZW50IGlzIHBhcnNlZCBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc3RyaW5nLCB0aGUgbGFzdCBtYXRjaAorICogd2lsbCBiZSB0aGUgZmluYWwgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLiAgRm9yIGV4YW1wbGUsCisgKiA8cHJlPgorICogTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MCxudW1iZXIsIy4jI30sIHswLG51bWJlciwjLiN9Iik7CisgKiBPYmplY3RbXSBvYmpzID0ge25ldyBEb3VibGUoMy4xNDE1KX07CisgKiBTdHJpbmcgcmVzdWx0ID0gbWYuZm9ybWF0KCBvYmpzICk7CisgKiAvLyByZXN1bHQgbm93IGVxdWFscyAiMy4xNCwgMy4xIgorICogb2JqcyA9IG51bGw7CisgKiBvYmpzID0gbWYucGFyc2UocmVzdWx0LCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgKiAvLyBvYmpzIG5vdyBlcXVhbHMge25ldyBEb3VibGUoMy4xKX0KKyAqIDwvcHJlPgorICogPHA+CisgKiBMaWtld2lzZSwgcGFyc2luZyB3aXRoIGEgTWVzc2FnZUZvcm1hdCBvYmplY3QgdXNpbmcgcGF0dGVybnMgY29udGFpbmluZworICogbXVsdGlwbGUgb2NjdXJhbmNlcyBvZiB0aGUgc2FtZSBhcmd1bWVudCB3b3VsZCByZXR1cm4gdGhlIGxhc3QgbWF0Y2guICBGb3IKKyAqIGV4YW1wbGUsCisgKiA8cHJlPgorICogTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MH0sIHswfSwgezB9Iik7CisgKiBTdHJpbmcgZm9yUGFyc2luZyA9ICJ4LCB5LCB6IjsKKyAqIE9iamVjdFtdIG9ianMgPSBtZi5wYXJzZShmb3JQYXJzaW5nLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgKiAvLyByZXN1bHQgbm93IGVxdWFscyB7bmV3IFN0cmluZygieiIpfQorICogPC9wcmU+CisgKgorICogPGg0PjxhIG5hbWU9InN5bmNocm9uaXphdGlvbiI+U3luY2hyb25pemF0aW9uPC9hPjwvaDQ+CisgKgorICogPHA+CisgKiBNZXNzYWdlIGZvcm1hdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuCisgKiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgc2VwYXJhdGUgZm9ybWF0IGluc3RhbmNlcyBmb3IgZWFjaCB0aHJlYWQuCisgKiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdCBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkCisgKiBleHRlcm5hbGx5LgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS51dGlsLkxvY2FsZQorICogQHNlZSAgICAgICAgICBGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgQ2hvaWNlRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBzdGFibGUgSUNVIDMuMAorICovCitwdWJsaWMgY2xhc3MgTWVzc2FnZUZvcm1hdCBleHRlbmRzIEZvcm1hdCB7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudGV4dC5NZXNzYWdlRm9ybWF0IG1lc3NhZ2VGb3JtYXQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwYXJhbSBkZWxlZ2F0ZSB0aGUgRGF0ZUZvcm1hdCB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBNZXNzYWdlRm9ybWF0KGphdmEudGV4dC5NZXNzYWdlRm9ybWF0IGRlbGVnYXRlKSB7CisgICAgICAgIHRoaXMubWVzc2FnZUZvcm1hdCA9IGRlbGVnYXRlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNZXNzYWdlRm9ybWF0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIHRoZQorICAgICAqIHNwZWNpZmllZCBwYXR0ZXJuLgorICAgICAqIFRoZSBjb25zdHJ1Y3RvciBmaXJzdCBzZXRzIHRoZSBsb2NhbGUsIHRoZW4gcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZAorICAgICAqIGNyZWF0ZXMgYSBsaXN0IG9mIHN1YmZvcm1hdHMgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQocGF0dGVybikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNZXNzYWdlRm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQKKyAgICAgKiBwYXR0ZXJuLgorICAgICAqIFRoZSBjb25zdHJ1Y3RvciBmaXJzdCBzZXRzIHRoZSBsb2NhbGUsIHRoZW4gcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZAorICAgICAqIGNyZWF0ZXMgYSBsaXN0IG9mIHN1YmZvcm1hdHMgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLy8gbG9jYWxlIGlzIGlnbm9yZWQKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQocGF0dGVybikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNZXNzYWdlRm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQKKyAgICAgKiBwYXR0ZXJuLgorICAgICAqIFRoZSBjb25zdHJ1Y3RvciBmaXJzdCBzZXRzIHRoZSBsb2NhbGUsIHRoZW4gcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZAorICAgICAqIGNyZWF0ZXMgYSBsaXN0IG9mIHN1YmZvcm1hdHMgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIC8vIGxvY2FsZSBpcyBpZ25vcmVkCisgICAgICAgIHRoaXMocGF0dGVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cy4KKyAgICAgKiBUaGlzIGFmZmVjdHMgc3Vic2VxdWVudCBjYWxscyB0byB0aGUge0BsaW5rICNhcHBseVBhdHRlcm4gYXBwbHlQYXR0ZXJufQorICAgICAqIGFuZCB7QGxpbmsgI3RvUGF0dGVybiB0b1BhdHRlcm59IG1ldGhvZHMgYXMgd2VsbCBhcyB0byB0aGUKKyAgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IGFuZAorICAgICAqIHtAbGluayAjZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvciBmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yfSBtZXRob2RzLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIG1lc3NhZ2VGb3JtYXQuc2V0TG9jYWxlKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cy4KKyAgICAgKiBUaGlzIGFmZmVjdHMgc3Vic2VxdWVudCBjYWxscyB0byB0aGUge0BsaW5rICNhcHBseVBhdHRlcm4gYXBwbHlQYXR0ZXJufQorICAgICAqIGFuZCB7QGxpbmsgI3RvUGF0dGVybiB0b1BhdHRlcm59IG1ldGhvZHMgYXMgd2VsbCBhcyB0byB0aGUKKyAgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IGFuZAorICAgICAqIHtAbGluayAjZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvciBmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yfSBtZXRob2RzLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExvY2FsZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBtZXNzYWdlRm9ybWF0LnNldExvY2FsZShsb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG9jYWxlIHRoYXQncyB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0LmdldExvY2FsZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvY2FsZSB0aGF0J3MgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBVTG9jYWxlLmZvckxvY2FsZShtZXNzYWdlRm9ybWF0LmdldExvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwYXR0ZXJuIHVzZWQgYnkgdGhpcyBtZXNzYWdlIGZvcm1hdC4KKyAgICAgKiBUaGUgbWV0aG9kIHBhcnNlcyB0aGUgcGF0dGVybiBhbmQgY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cworICAgICAqIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBpdC4KKyAgICAgKiBQYXR0ZXJucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb24gYXJlIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgKiA8YSBocmVmPSIjcGF0dGVybnMiPmNsYXNzIGRlc2NyaXB0aW9uPC9hPi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgIG1lc3NhZ2VGb3JtYXQuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgfQorCisgICAvKioKKyAgICAqIFJldHVybnMgYSBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbWVzc2FnZSBmb3JtYXQuCisgICAgKiBUaGUgc3RyaW5nIGlzIGNvbnN0cnVjdGVkIGZyb20gaW50ZXJuYWwgaW5mb3JtYXRpb24gYW5kIHRoZXJlZm9yZQorICAgICogZG9lcyBub3QgbmVjZXNzYXJpbHkgZXF1YWwgdGhlIHByZXZpb3VzbHkgYXBwbGllZCBwYXR0ZXJuLiAKKyAgICAqCisgICAgKiBAcmV0dXJuIGEgcGF0dGVybiByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIG1lc3NhZ2UgZm9ybWF0CisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQudG9QYXR0ZXJuKCk7CisgICB9CisgCisgICAvKioKKyAgICAqIFNldHMgdGhlIGZvcm1hdHMgdG8gdXNlIGZvciB0aGUgdmFsdWVzIHBhc3NlZCBpbnRvCisgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgcmV0dXJuZWQgZnJvbSA8Y29kZT5wYXJzZTwvY29kZT4KKyAgICAqIG1ldGhvZHMuIFRoZSBpbmRpY2VzIG9mIGVsZW1lbnRzIGluIDxjb2RlPm5ld0Zvcm1hdHM8L2NvZGU+CisgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBhcmd1bWVudCBpbmRpY2VzIHVzZWQgaW4gdGhlIHByZXZpb3VzbHkgc2V0CisgICAgKiBwYXR0ZXJuIHN0cmluZy4KKyAgICAqIFRoZSBvcmRlciBvZiBmb3JtYXRzIGluIDxjb2RlPm5ld0Zvcm1hdHM8L2NvZGU+IHRodXMgY29ycmVzcG9uZHMgdG8KKyAgICAqIHRoZSBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQKKyAgICAqIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZAorICAgICogYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICogPHA+CisgICAgKiBJZiBhbiBhcmd1bWVudCBpbmRleCBpcyB1c2VkIGZvciBtb3JlIHRoYW4gb25lIGZvcm1hdCBlbGVtZW50CisgICAgKiBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbmV3IGZvcm1hdCBpcyB1c2VkCisgICAgKiBmb3IgYWxsIHN1Y2ggZm9ybWF0IGVsZW1lbnRzLiBJZiBhbiBhcmd1bWVudCBpbmRleCBpcyBub3QgdXNlZAorICAgICogZm9yIGFueSBmb3JtYXQgZWxlbWVudCBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlCisgICAgKiBjb3JyZXNwb25kaW5nIG5ldyBmb3JtYXQgaXMgaWdub3JlZC4gSWYgZmV3ZXIgZm9ybWF0cyBhcmUgcHJvdmlkZWQKKyAgICAqIHRoYW4gbmVlZGVkLCB0aGVuIG9ubHkgdGhlIGZvcm1hdHMgZm9yIGFyZ3VtZW50IGluZGljZXMgbGVzcworICAgICogdGhhbiA8Y29kZT5uZXdGb3JtYXRzLmxlbmd0aDwvY29kZT4gYXJlIHJlcGxhY2VkLgorICAgICoKKyAgICAqIEBwYXJhbSBuZXdGb3JtYXRzIHRoZSBuZXcgZm9ybWF0cyB0byB1c2UKKyAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gaXMgbnVsbAorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGlmIHRoZSB1bmRlcmx5aW5nIEpWTSBkb2VzIG5vdAorICAgICogc3VwcG9ydCB0aGlzIG1ldGhvZC4KKyAgICAqLworICAgcHVibGljIHZvaWQgc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleChGb3JtYXRbXSBuZXdGb3JtYXRzKSB7CisJICAgaWYgKHNmc2JhaSA9PSBudWxsKSB7CisJCSAgIHN5bmNocm9uaXplZCAobWlzc2luZykgeworCQkJICAgdHJ5IHsKKwkJCQkgICBDbGFzc1tdIHBhcmFtcyA9IHsgRm9ybWF0W10uY2xhc3MgfTsKKwkJCQkgICBzZnNiYWkgPSBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdC5jbGFzcy5nZXRNZXRob2QoInNldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgiLCBwYXJhbXMpOworCQkJICAgfQorCQkJICAgY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7CisJCQkJICAgc2ZzYmFpID0gbWlzc2luZzsKKwkJCSAgIH0KKwkJICAgfQorCSAgIH0KKwkgICBpZiAoc2ZzYmFpICE9IG1pc3NpbmcpIHsKKwkJICAgdHJ5IHsKKwkJCSAgIEZvcm1hdFtdIHVud3JhcHBlZCA9IG5ldyBGb3JtYXRbbmV3Rm9ybWF0cy5sZW5ndGhdOworCQkJICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuZXdGb3JtYXRzLmxlbmd0aDsgKytpKSB7CisJCQkJICAgdW53cmFwcGVkW2ldID0gdW53cmFwKG5ld0Zvcm1hdHNbaV0pOworCQkJICAgfQorCQkJICAgT2JqZWN0W10gYXJncyA9IHsgdW53cmFwcGVkIH07CisJCQkgICAoKE1ldGhvZClzZnNiYWkpLmludm9rZShtZXNzYWdlRm9ybWF0LCBhcmdzKTsKKwkJCSAgIHJldHVybjsKKwkJICAgfQorCQkgICBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCQkgICBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCSAgIH0KKwkgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgICB9CisgICBwcml2YXRlIHN0YXRpYyBPYmplY3Qgc2ZzYmFpOworICAgCisgICAvKioKKyAgICAqIFNldHMgdGhlIGZvcm1hdHMgdG8gdXNlIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGluIHRoZQorICAgICogcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPiBjb3JyZXNwb25kcyB0bworICAgICogdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUgcGF0dGVybiBzdHJpbmcuCisgICAgKiA8cD4KKyAgICAqIElmIG1vcmUgZm9ybWF0cyBhcmUgcHJvdmlkZWQgdGhhbiBuZWVkZWQgYnkgdGhlIHBhdHRlcm4gc3RyaW5nLAorICAgICogdGhlIHJlbWFpbmluZyBvbmVzIGFyZSBpZ25vcmVkLiBJZiBmZXdlciBmb3JtYXRzIGFyZSBwcm92aWRlZAorICAgICogdGhhbiBuZWVkZWQsIHRoZW4gb25seSB0aGUgZmlyc3QgPGNvZGU+bmV3Rm9ybWF0cy5sZW5ndGg8L2NvZGU+CisgICAgKiBmb3JtYXRzIGFyZSByZXBsYWNlZC4KKyAgICAqIDxwPgorICAgICogU2luY2UgdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiBhIHBhdHRlcm4gc3RyaW5nIG9mdGVuCisgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIHRoZQorICAgICoge0BsaW5rICNzZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4IHNldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXh9CisgICAgKiBtZXRob2QsIHdoaWNoIGFzc3VtZXMgYW4gb3JkZXIgb2YgZm9ybWF0cyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICAgICogb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkIHRvCisgICAgKiB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQgYnkKKyAgICAqIHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gbWV0aG9kcy4KKyAgICAqCisgICAgKiBAcGFyYW0gbmV3Rm9ybWF0cyB0aGUgbmV3IGZvcm1hdHMgdG8gdXNlCisgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPm5ld0Zvcm1hdHM8L2NvZGU+IGlzIG51bGwKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXRzKEZvcm1hdFtdIG5ld0Zvcm1hdHMpIHsKKyAgICAgICBtZXNzYWdlRm9ybWF0LnNldEZvcm1hdHMobmV3Rm9ybWF0cyk7CisgICB9CisKKyAgIC8qKgorICAgICogU2V0cyB0aGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyB3aXRoaW4gdGhlCisgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZyB0aGF0IHVzZSB0aGUgZ2l2ZW4gYXJndW1lbnQKKyAgICAqIGluZGV4LgorICAgICogVGhlIGFyZ3VtZW50IGluZGV4IGlzIHBhcnQgb2YgdGhlIGZvcm1hdCBlbGVtZW50IGRlZmluaXRpb24gYW5kCisgICAgKiByZXByZXNlbnRzIGFuIGluZGV4IGludG8gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkCisgICAgKiB0byB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQKKyAgICAqIGJ5IHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gbWV0aG9kcy4KKyAgICAqIDxwPgorICAgICogSWYgdGhlIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAqIGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUgbmV3IGZvcm1hdCBpcyB1c2VkIGZvciBhbGwgc3VjaAorICAgICogZm9ybWF0IGVsZW1lbnRzLiBJZiB0aGUgYXJndW1lbnQgaW5kZXggaXMgbm90IHVzZWQgZm9yIGFueSBmb3JtYXQKKyAgICAqIGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBuZXcgZm9ybWF0IGlzIGlnbm9yZWQuCisgICAgKgorICAgICogQHBhcmFtIGFyZ3VtZW50SW5kZXggdGhlIGFyZ3VtZW50IGluZGV4IGZvciB3aGljaCB0byB1c2UgdGhlIG5ldyBmb3JtYXQKKyAgICAqIEBwYXJhbSBuZXdGb3JtYXQgdGhlIG5ldyBmb3JtYXQgdG8gdXNlCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gaWYgdGhlIHVuZGVybHlpbmcgSlZNIGRvZXMgbm90CisgICAgKiBzdXBwb3J0IHRoaXMgbWV0aG9kLgorICAgICovCisgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXgoaW50IGFyZ3VtZW50SW5kZXgsIEZvcm1hdCBuZXdGb3JtYXQpIHsKKwkgICBpZiAoc2ZiYWkgPT0gbnVsbCkgeworCQkgICBzeW5jaHJvbml6ZWQgKG1pc3NpbmcpIHsKKwkJCSAgIHRyeSB7CisJCQkJICAgQ2xhc3NbXSBwYXJhbXMgPSB7IEludGVnZXIuVFlQRSwgRm9ybWF0LmNsYXNzIH07CisJCQkJICAgc2ZiYWkgPSBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdC5jbGFzcy5nZXRNZXRob2QoInNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCIsIHBhcmFtcyk7CisJCQkgICB9CisJCQkgICBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKwkJCQkgICBzZmJhaSA9IG1pc3Npbmc7CisJCQkgICB9CisJCSAgIH0KKwkgICB9CisJICAgaWYgKHNmYmFpICE9IG1pc3NpbmcpIHsKKwkJICAgdHJ5IHsKKwkJCSAgIE9iamVjdFtdIGFyZ3MgPSB7IG5ldyBJbnRlZ2VyKGFyZ3VtZW50SW5kZXgpLCBuZXdGb3JtYXQgfTsKKwkJCSAgICgoTWV0aG9kKXNmYmFpKS5pbnZva2UobWVzc2FnZUZvcm1hdCwgYXJncyk7CisJCQkgICByZXR1cm47CisJCSAgIH0KKwkJICAgY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworCQkJICAgLy8gY2FuJ3QgaGFwcGVuCisJCSAgIH0KKwkJICAgY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworCQkJICAgLy8gY2FuJ3QgaGFwcGVuCisJCSAgIH0KKwkgICB9CisJICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7CisgICB9CisgICBwcml2YXRlIHN0YXRpYyBPYmplY3Qgc2ZiYWk7CisKKyAgIC8qKgorICAgICogU2V0cyB0aGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50IHdpdGggdGhlIGdpdmVuCisgICAgKiBmb3JtYXQgZWxlbWVudCBpbmRleCB3aXRoaW4gdGhlIHByZXZpb3VzbHkgc2V0IHBhdHRlcm4gc3RyaW5nLgorICAgICogVGhlIGZvcm1hdCBlbGVtZW50IGluZGV4IGlzIHRoZSB6ZXJvLWJhc2VkIG51bWJlciBvZiB0aGUgZm9ybWF0CisgICAgKiBlbGVtZW50IGNvdW50aW5nIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAqIDxwPgorICAgICogU2luY2UgdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiBhIHBhdHRlcm4gc3RyaW5nIG9mdGVuCisgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIHRoZQorICAgICoge0BsaW5rICNzZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXggc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4fQorICAgICogbWV0aG9kLCB3aGljaCBhY2Nlc3NlcyBmb3JtYXQgZWxlbWVudHMgYmFzZWQgb24gdGhlIGFyZ3VtZW50CisgICAgKiBpbmRleCB0aGV5IHNwZWNpZnkuCisgICAgKgorICAgICogQHBhcmFtIGZvcm1hdEVsZW1lbnRJbmRleCB0aGUgaW5kZXggb2YgYSBmb3JtYXQgZWxlbWVudCB3aXRoaW4gdGhlIHBhdHRlcm4KKyAgICAqIEBwYXJhbSBuZXdGb3JtYXQgdGhlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybWF0IGVsZW1lbnQKKyAgICAqIEBleGNlcHRpb24gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIGZvcm1hdEVsZW1lbnRJbmRleCBpcyBlcXVhbCB0byBvcgorICAgICogICAgICAgICAgICBsYXJnZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUgcGF0dGVybiBzdHJpbmcKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXQoaW50IGZvcm1hdEVsZW1lbnRJbmRleCwgRm9ybWF0IG5ld0Zvcm1hdCkgeworICAgICAgIG1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0KGZvcm1hdEVsZW1lbnRJbmRleCwgdW53cmFwKG5ld0Zvcm1hdCkpOworICAgfQorCisgICAvKioKKyAgICAqIEdldHMgdGhlIGZvcm1hdHMgdXNlZCBmb3IgdGhlIHZhbHVlcyBwYXNzZWQgaW50bworICAgICogPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHJldHVybmVkIGZyb20gPGNvZGU+cGFyc2U8L2NvZGU+CisgICAgKiBtZXRob2RzLiBUaGUgaW5kaWNlcyBvZiBlbGVtZW50cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkKKyAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGFyZ3VtZW50IGluZGljZXMgdXNlZCBpbiB0aGUgcHJldmlvdXNseSBzZXQKKyAgICAqIHBhdHRlcm4gc3RyaW5nLgorICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gdGhlIHJldHVybmVkIGFycmF5IHRodXMgY29ycmVzcG9uZHMgdG8KKyAgICAqIHRoZSBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQKKyAgICAqIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZAorICAgICogYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICogPHA+CisgICAgKiBJZiBhbiBhcmd1bWVudCBpbmRleCBpcyB1c2VkIGZvciBtb3JlIHRoYW4gb25lIGZvcm1hdCBlbGVtZW50CisgICAgKiBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIGZvcm1hdCB1c2VkIGZvciB0aGUgbGFzdCBzdWNoCisgICAgKiBmb3JtYXQgZWxlbWVudCBpcyByZXR1cm5lZCBpbiB0aGUgYXJyYXkuIElmIGFuIGFyZ3VtZW50IGluZGV4CisgICAgKiBpcyBub3QgdXNlZCBmb3IgYW55IGZvcm1hdCBlbGVtZW50IGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbgorICAgICogbnVsbCBpcyByZXR1cm5lZCBpbiB0aGUgYXJyYXkuCisgICAgKgorICAgICogQHJldHVybiB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgYXJndW1lbnRzIHdpdGhpbiB0aGUgcGF0dGVybgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGlmIHRoZSB1bmRlcmx5aW5nIEpWTSBkb2VzIG5vdCAKKyAgICAqIHN1cHBvcnQgdGhpcyBtZXRob2QuCisgICAgKi8KKyAgIHB1YmxpYyBGb3JtYXRbXSBnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KCkgeworCSAgIGlmIChnZmJhaSA9PSBudWxsKSB7CisJCSAgIHN5bmNocm9uaXplZCAobWlzc2luZykgeworCQkJICAgdHJ5IHsKKwkJCQkgICBnZmJhaSA9IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0LmNsYXNzLmdldE1ldGhvZCgiZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCIsIG51bGwpOworCQkJICAgfQorCQkJICAgY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7CisJCQkJICAgZ2ZiYWkgPSBtaXNzaW5nOworCQkJICAgfQorCQkgICB9CisJICAgfQorCSAgIGlmIChnZmJhaSAhPSBtaXNzaW5nKSB7CisJCSAgIHRyeSB7CisJCQkgICBGb3JtYXRbXSByZXN1bHQgPSAoRm9ybWF0W10pKChNZXRob2QpZ2ZiYWkpLmludm9rZShtZXNzYWdlRm9ybWF0LCBudWxsKTsKKwkJCSAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKSB7CisJCQkJICAgcmVzdWx0W2ldID0gd3JhcChyZXN1bHRbaV0pOworCQkJICAgfQorCQkJICAgcmV0dXJuIHJlc3VsdDsKKwkJICAgfQorCQkgICBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCQkgICBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCSAgIH0KKwkgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgIH0KKyAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBnZmJhaTsKKyAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCBtaXNzaW5nID0gbmV3IE9iamVjdCgpOworCisgICAvKioKKyAgICAqIEdldHMgdGhlIGZvcm1hdHMgdXNlZCBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUKKyAgICAqIHByZXZpb3VzbHkgc2V0IHBhdHRlcm4gc3RyaW5nLgorICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gdGhlIHJldHVybmVkIGFycmF5IGNvcnJlc3BvbmRzIHRvCisgICAgKiB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAqIDxwPgorICAgICogU2luY2UgdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiBhIHBhdHRlcm4gc3RyaW5nIG9mdGVuCisgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0J3MgZ2VuZXJhbGx5IGJldHRlciB0byB1c2UgdGhlCisgICAgKiB7QGxpbmsgI2dldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXggZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleH0KKyAgICAqIG1ldGhvZCwgd2hpY2ggYXNzdW1lcyBhbiBvcmRlciBvZiBmb3JtYXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgKiBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8KKyAgICAqIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieQorICAgICogdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICoKKyAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHMgdXNlZCBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUgcGF0dGVybgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBGb3JtYXRbXSBnZXRGb3JtYXRzKCkgeworICAgICAgIEZvcm1hdFtdIHJlc3VsdCA9IG1lc3NhZ2VGb3JtYXQuZ2V0Rm9ybWF0cygpOworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgIHJlc3VsdFtpXSA9IHdyYXAocmVzdWx0W2ldKTsKKyAgICAgICB9CisgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgIH0KKworICAgLyoqCisgICAgKiBGb3JtYXRzIGFuIGFycmF5IG9mIG9iamVjdHMgYW5kIGFwcGVuZHMgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+J3MKKyAgICAqIHBhdHRlcm4sIHdpdGggZm9ybWF0IGVsZW1lbnRzIHJlcGxhY2VkIGJ5IHRoZSBmb3JtYXR0ZWQgb2JqZWN0cywgdG8gdGhlCisgICAgKiBwcm92aWRlZCA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+LgorICAgICogPHA+CisgICAgKiBUaGUgdGV4dCBzdWJzdGl0dXRlZCBmb3IgdGhlIGluZGl2aWR1YWwgZm9ybWF0IGVsZW1lbnRzIGlzIGRlcml2ZWQgZnJvbQorICAgICogdGhlIGN1cnJlbnQgc3ViZm9ybWF0IG9mIHRoZSBmb3JtYXQgZWxlbWVudCBhbmQgdGhlCisgICAgKiA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGVsZW1lbnQgYXQgdGhlIGZvcm1hdCBlbGVtZW50J3MgYXJndW1lbnQgaW5kZXgKKyAgICAqIGFzIGluZGljYXRlZCBieSB0aGUgZmlyc3QgbWF0Y2hpbmcgbGluZSBvZiB0aGUgZm9sbG93aW5nIHRhYmxlLiBBbgorICAgICogYXJndW1lbnQgaXMgPGk+dW5hdmFpbGFibGU8L2k+IGlmIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gaXMKKyAgICAqIDxjb2RlPm51bGw8L2NvZGU+IG9yIGhhcyBmZXdlciB0aGFuIGFyZ3VtZW50SW5kZXgrMSBlbGVtZW50cy4KKyAgICAqIDxwPgorICAgICogPHRhYmxlIGJvcmRlcj0xPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRoPlN1YmZvcm1hdAorICAgICogICAgICAgPHRoPkFyZ3VtZW50CisgICAgKiAgICAgICA8dGg+Rm9ybWF0dGVkIFRleHQKKyAgICAqICAgIDx0cj4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGk+dW5hdmFpbGFibGU8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+InsiICsgYXJndW1lbnRJbmRleCArICJ9IjwvY29kZT4KKyAgICAqICAgIDx0cj4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT4ibnVsbCI8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBDaG9pY2VGb3JtYXQ8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGk+YW55PC9pPgorICAgICogICAgICAgPHRkPjxjb2RlPnN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpLmluZGV4T2YoJ3snKSA+PSAwID88YnI+CisgICAgKiAgICAgICAgICAgKG5ldyBNZXNzYWdlRm9ybWF0KHN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpLCBnZXRMb2NhbGUoKSkpLmZvcm1hdChhcmd1bWVudCkgOgorICAgICogICAgICAgICAgIHN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxjb2RlPiE9IG51bGw8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGk+YW55PC9pPgorICAgICogICAgICAgPHRkPjxjb2RlPnN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBOdW1iZXI8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+TnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldExvY2FsZSgpKS5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBEYXRlPC9jb2RlPgorICAgICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBEYXRlRm9ybWF0LlNIT1JULCBnZXRMb2NhbGUoKSkuZm9ybWF0KGFyZ3VtZW50KTwvY29kZT4KKyAgICAqICAgIDx0cj4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICogICAgICAgPHRkPjxjb2RlPmluc3RhbmNlb2YgU3RyaW5nPC9jb2RlPgorICAgICogICAgICAgPHRkPjxjb2RlPmFyZ3VtZW50PC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGk+YW55PC9pPgorICAgICogICAgICAgPHRkPjxjb2RlPmFyZ3VtZW50LnRvU3RyaW5nKCk8L2NvZGU+CisgICAgKiA8L3RhYmxlPgorICAgICogPHA+CisgICAgKiBJZiA8Y29kZT5wb3M8L2NvZGU+IGlzIG5vbi1udWxsLCBhbmQgcmVmZXJzIHRvCisgICAgKiA8Y29kZT5GaWVsZC5BUkdVTUVOVDwvY29kZT4sIHRoZSBsb2NhdGlvbiBvZiB0aGUgZmlyc3QgZm9ybWF0dGVkCisgICAgKiBzdHJpbmcgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqCisgICAgKiBAcGFyYW0gYXJndW1lbnRzIGFuIGFycmF5IG9mIG9iamVjdHMgdG8gYmUgZm9ybWF0dGVkIGFuZCBzdWJzdGl0dXRlZC4KKyAgICAqIEBwYXJhbSByZXN1bHQgd2hlcmUgdGV4dCBpcyBhcHBlbmRlZC4KKyAgICAqIEBwYXJhbSBwb3MgT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwgaWYgZGVzaXJlZC4KKyAgICAqICAgICAgICAgICAgT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLgorICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisgICAgKiAgICAgICAgICAgIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgaXMgbm90IG9mIHRoZSB0eXBlCisgICAgKiAgICAgICAgICAgIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKSB0aGF0IHVzZSBpdC4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgZmluYWwgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3RbXSBhcmd1bWVudHMsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICB7CisgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQuZm9ybWF0KGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpOworICAgfQorCisgICAvKioKKyAgICAqIENyZWF0ZXMgYSBNZXNzYWdlRm9ybWF0IHdpdGggdGhlIGdpdmVuIHBhdHRlcm4gYW5kIHVzZXMgaXQKKyAgICAqIHRvIGZvcm1hdCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAqIDxibG9ja3F1b3RlPgorICAgICogICAgIDxjb2RlPihuZXcge0BsaW5rICNNZXNzYWdlRm9ybWF0KFN0cmluZykgTWVzc2FnZUZvcm1hdH0ocGF0dGVybikpLntAbGluayAjZm9ybWF0KGphdmEubGFuZy5PYmplY3RbXSwgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24pIGZvcm1hdH0oYXJndW1lbnRzLCBuZXcgU3RyaW5nQnVmZmVyKCksIG51bGwpLnRvU3RyaW5nKCk8L2NvZGU+CisgICAgKiA8L2Jsb2NrcXVvdGU+CisgICAgKgorICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZCwKKyAgICAqICAgICAgICAgICAgb3IgaWYgYW4gYXJndW1lbnQgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkKKyAgICAqICAgICAgICAgICAgaXMgbm90IG9mIHRoZSB0eXBlIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKQorICAgICogICAgICAgICAgICB0aGF0IHVzZSBpdC4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgc3RhdGljIFN0cmluZyBmb3JtYXQoU3RyaW5nIHBhdHRlcm4sIE9iamVjdFtdIGFyZ3VtZW50cykgeworICAgICAgIHJldHVybiBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdC5mb3JtYXQocGF0dGVybiwgYXJndW1lbnRzKTsKKyAgIH0KKworICAgLy8gT3ZlcnJpZGVzCisgICAvKioKKyAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgYXBwZW5kcyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncworICAgICogcGF0dGVybiwgd2l0aCBmb3JtYXQgZWxlbWVudHMgcmVwbGFjZWQgYnkgdGhlIGZvcm1hdHRlZCBvYmplY3RzLCB0byB0aGUKKyAgICAqIHByb3ZpZGVkIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAqIDxibG9ja3F1b3RlPgorICAgICogICAgIDxjb2RlPntAbGluayAjZm9ybWF0KGphdmEubGFuZy5PYmplY3RbXSwgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24pIGZvcm1hdH0oKE9iamVjdFtdKSBhcmd1bWVudHMsIHJlc3VsdCwgcG9zKTwvY29kZT4KKyAgICAqIDwvYmxvY2txdW90ZT4KKyAgICAqCisgICAgKiBAcGFyYW0gYXJndW1lbnRzIGFuIGFycmF5IG9mIG9iamVjdHMgdG8gYmUgZm9ybWF0dGVkIGFuZCBzdWJzdGl0dXRlZC4KKyAgICAqIEBwYXJhbSByZXN1bHQgd2hlcmUgdGV4dCBpcyBhcHBlbmRlZC4KKyAgICAqIEBwYXJhbSBwb3MgT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwgaWYgZGVzaXJlZC4KKyAgICAqICAgICAgICAgICAgT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLgorICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisgICAgKiAgICAgICAgICAgIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgaXMgbm90IG9mIHRoZSB0eXBlCisgICAgKiAgICAgICAgICAgIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKSB0aGF0IHVzZSBpdC4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgZmluYWwgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3QgYXJndW1lbnRzLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKQorICAgeworICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0LmZvcm1hdChhcmd1bWVudHMsIHJlc3VsdCwgcG9zKTsKKyAgIH0KKworCisgICAvKioKKyAgICAqIFBhcnNlcyB0aGUgc3RyaW5nLgorICAgICoKKyAgICAqIDxwPkNhdmVhdHM6IFRoZSBwYXJzZSBtYXkgZmFpbCBpbiBhIG51bWJlciBvZiBjaXJjdW1zdGFuY2VzLgorICAgICogRm9yIGV4YW1wbGU6CisgICAgKiA8dWw+CisgICAgKiA8bGk+SWYgb25lIG9mIHRoZSBhcmd1bWVudHMgZG9lcyBub3Qgb2NjdXIgaW4gdGhlIHBhdHRlcm4uCisgICAgKiA8bGk+SWYgdGhlIGZvcm1hdCBvZiBhbiBhcmd1bWVudCBsb3NlcyBpbmZvcm1hdGlvbiwgc3VjaCBhcworICAgICogICAgIHdpdGggYSBjaG9pY2UgZm9ybWF0IHdoZXJlIGEgbGFyZ2UgbnVtYmVyIGZvcm1hdHMgdG8gIm1hbnkiLgorICAgICogPGxpPkRvZXMgbm90IHlldCBoYW5kbGUgcmVjdXJzaW9uICh3aGVyZQorICAgICogICAgIHRoZSBzdWJzdGl0dXRlZCBzdHJpbmdzIGNvbnRhaW4ge259IHJlZmVyZW5jZXMuKQorICAgICogPGxpPldpbGwgbm90IGFsd2F5cyBmaW5kIGEgbWF0Y2ggKG9yIHRoZSBjb3JyZWN0IG1hdGNoKQorICAgICogICAgIGlmIHNvbWUgcGFydCBvZiB0aGUgcGFyc2UgaXMgYW1iaWd1b3VzLgorICAgICogICAgIEZvciBleGFtcGxlLCBpZiB0aGUgcGF0dGVybiAiezF9LHsyfSIgaXMgdXNlZCB3aXRoIHRoZQorICAgICogICAgIHN0cmluZyBhcmd1bWVudHMgeyJhLGIiLCAiYyJ9LCBpdCB3aWxsIGZvcm1hdCBhcyAiYSxiLGMiLgorICAgICogICAgIFdoZW4gdGhlIHJlc3VsdCBpcyBwYXJzZWQsIGl0IHdpbGwgcmV0dXJuIHsiYSIsICJiLGMifS4KKyAgICAqIDxsaT5JZiBhIHNpbmdsZSBhcmd1bWVudCBpcyBwYXJzZWQgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHN0cmluZywKKyAgICAqICAgICB0aGVuIHRoZSBsYXRlciBwYXJzZSB3aW5zLgorICAgICogPC91bD4KKyAgICAqIFdoZW4gdGhlIHBhcnNlIGZhaWxzLCB1c2UgUGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkgdG8gZmluZCBvdXQKKyAgICAqIHdoZXJlIGluIHRoZSBzdHJpbmcgZGlkIHRoZSBwYXJzaW5nIGZhaWxlZC4gIFRoZSByZXR1cm5lZCBlcnJvcgorICAgICogaW5kZXggaXMgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgc3ViLXBhdHRlcm5zIHRoYXQgdGhlIHN0cmluZworICAgICogaXMgY29tcGFyaW5nIHdpdGguICBGb3IgZXhhbXBsZSwgaWYgdGhlIHBhcnNpbmcgc3RyaW5nICJBQUEgezB9IEJCQiIKKyAgICAqIGlzIGNvbXBhcmluZyBhZ2FpbnN0IHRoZSBwYXR0ZXJuICJBQUQgezB9IEJCQiIsIHRoZSBlcnJvciBpbmRleCBpcworICAgICogMC4gV2hlbiBhbiBlcnJvciBvY2N1cnMsIHRoZSBjYWxsIHRvIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIG51bGwuCisgICAgKiBJZiB0aGUgc291cmNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBhcnJheS4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgT2JqZWN0W10gcGFyc2UoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5wYXJzZShzb3VyY2UsIHBvcyk7CisgICB9CisKKyAgIC8qKgorICAgICogUGFyc2VzIHRleHQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBnaXZlbiBzdHJpbmcgdG8gcHJvZHVjZSBhbiBvYmplY3QKKyAgICAqIGFycmF5LgorICAgICogVGhlIG1ldGhvZCBtYXkgbm90IHVzZSB0aGUgZW50aXJlIHRleHQgb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAqIDxwPgorICAgICogU2VlIHRoZSB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IG1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorICAgICogb24gbWVzc2FnZSBwYXJzaW5nLgorICAgICoKKyAgICAqIEBwYXJhbSBzb3VyY2UgQSA8Y29kZT5TdHJpbmc8L2NvZGU+IHdob3NlIGJlZ2lubmluZyBzaG91bGQgYmUgcGFyc2VkLgorICAgICogQHJldHVybiBBbiA8Y29kZT5PYmplY3Q8L2NvZGU+IGFycmF5IHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuCisgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIGlmIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmcKKyAgICAqICAgICAgICAgICAgY2Fubm90IGJlIHBhcnNlZC4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgT2JqZWN0W10gcGFyc2UoU3RyaW5nIHNvdXJjZSkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5wYXJzZShzb3VyY2UpOworICAgfQorCisgICAvKioKKyAgICAqIFBhcnNlcyB0ZXh0IGZyb20gYSBzdHJpbmcgdG8gcHJvZHVjZSBhbiBvYmplY3QgYXJyYXkuCisgICAgKiA8cD4KKyAgICAqIFRoZSBtZXRob2QgYXR0ZW1wdHMgdG8gcGFyc2UgdGV4dCBzdGFydGluZyBhdCB0aGUgaW5kZXggZ2l2ZW4gYnkKKyAgICAqIDxjb2RlPnBvczwvY29kZT4uCisgICAgKiBJZiBwYXJzaW5nIHN1Y2NlZWRzLCB0aGVuIHRoZSBpbmRleCBvZiA8Y29kZT5wb3M8L2NvZGU+IGlzIHVwZGF0ZWQKKyAgICAqIHRvIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdXNlZCAocGFyc2luZyBkb2VzIG5vdCBuZWNlc3NhcmlseQorICAgICogdXNlIGFsbCBjaGFyYWN0ZXJzIHVwIHRvIHRoZSBlbmQgb2YgdGhlIHN0cmluZyksIGFuZCB0aGUgcGFyc2VkCisgICAgKiBvYmplY3QgYXJyYXkgaXMgcmV0dXJuZWQuIFRoZSB1cGRhdGVkIDxjb2RlPnBvczwvY29kZT4gY2FuIGJlIHVzZWQgdG8KKyAgICAqIGluZGljYXRlIHRoZSBzdGFydGluZyBwb2ludCBmb3IgdGhlIG5leHQgY2FsbCB0byB0aGlzIG1ldGhvZC4KKyAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgaW5kZXggb2YgPGNvZGU+cG9zPC9jb2RlPiBpcyBub3QKKyAgICAqIGNoYW5nZWQsIHRoZSBlcnJvciBpbmRleCBvZiA8Y29kZT5wb3M8L2NvZGU+IGlzIHNldCB0byB0aGUgaW5kZXggb2YKKyAgICAqIHRoZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkLCBhbmQgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAqIDxwPgorICAgICogU2VlIHRoZSB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IG1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorICAgICogb24gbWVzc2FnZSBwYXJzaW5nLgorICAgICoKKyAgICAqIEBwYXJhbSBzb3VyY2UgQSA8Y29kZT5TdHJpbmc8L2NvZGU+LCBwYXJ0IG9mIHdoaWNoIHNob3VsZCBiZSBwYXJzZWQuCisgICAgKiBAcGFyYW0gcG9zIEEgPGNvZGU+UGFyc2VQb3NpdGlvbjwvY29kZT4gb2JqZWN0IHdpdGggaW5kZXggYW5kIGVycm9yCisgICAgKiAgICAgICAgICAgIGluZGV4IGluZm9ybWF0aW9uIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAqIEByZXR1cm4gQW4gPGNvZGU+T2JqZWN0PC9jb2RlPiBhcnJheSBwYXJzZWQgZnJvbSB0aGUgc3RyaW5nLiBJbiBjYXNlIG9mCisgICAgKiAgICAgICAgIGVycm9yLCByZXR1cm5zIG51bGwuCisgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPnBvczwvY29kZT4gaXMgbnVsbC4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQucGFyc2Uoc291cmNlLCBwb3MpOworICAgfQorCisgICAvKioKKyAgICAqIENvbnZlcnQgYW4gJ2Fwb3N0cm9waGUtZnJpZW5kbHknIHBhdHRlcm4gaW50byBhIHN0YW5kYXJkCisgICAgKiBwYXR0ZXJuLiAgU3RhbmRhcmQgcGF0dGVybnMgdHJlYXQgYWxsIGFwb3N0cm9waGVzIGFzCisgICAgKiBxdW90ZXMsIHdoaWNoIGlzIHByb2JsZW1hdGljIGluIHNvbWUgbGFuZ3VhZ2VzLCBlLmcuIAorICAgICogRnJlbmNoLCB3aGVyZSBhcG9zdHJvcGhlIGlzIGNvbW1vbmx5IHVzZWQuICBUaGlzIHV0aWxpdHkKKyAgICAqIGFzc3VtZXMgdGhhdCBvbmx5IGFuIHVucGFpcmVkIGFwb3N0cm9waGUgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgKiBhIGJyYWNlIGlzIGEgdHJ1ZSBxdW90ZS4gIE90aGVyIHVucGFpcmVkIGFwb3N0cm9waGVzIGFyZSBwYWlyZWQsCisgICAgKiBhbmQgdGhlIHJlc3VsdGluZyBzdGFuZGFyZCBwYXR0ZXJuIHN0cmluZyBpcyByZXR1cm5lZC4KKyAgICAqCisgICAgKiA8cD48Yj5Ob3RlPC9iPiBpdCBpcyBub3QgZ3VhcmFudGVlZCB0aGF0IHRoZSByZXR1cm5lZCBwYXR0ZXJuCisgICAgKiBpcyBpbmRlZWQgYSB2YWxpZCBwYXR0ZXJuLiAgVGhlIG9ubHkgZWZmZWN0IGlzIHRvIGNvbnZlcnQKKyAgICAqIGJldHdlZW4gcGF0dGVybnMgaGF2aW5nIGRpZmZlcmVudCBxdW90aW5nIHNlbWFudGljcy4KKyAgICAqCisgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgJ2Fwb3N0cm9waGUtZnJpZW5kbHknIHBhdHR0ZXJuIHRvIGNvbnZlcnQKKyAgICAqIEByZXR1cm4gdGhlIHN0YW5kYXJkIGVxdWl2YWxlbnQgb2YgdGhlIG9yaWdpbmFsIHBhdHRlcm4KKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAqLworICAgcHVibGljIHN0YXRpYyBTdHJpbmcgYXV0b1F1b3RlQXBvc3Ryb3BoZShTdHJpbmcgcGF0dGVybikgeworICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHBhdHRlcm4ubGVuZ3RoKCkqMik7CisgICAgICAgaW50IHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICBpbnQgYnJhY2VDb3VudCA9IDA7CisgICAgICAgZm9yIChpbnQgaSA9IDAsIGogPSBwYXR0ZXJuLmxlbmd0aCgpOyBpIDwgajsgKytpKSB7CisgICAgICAgICAgIGNoYXIgYyA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgICAgIGNhc2UgU1RBVEVfSU5JVElBTDoKKyAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgY2FzZSBTSU5HTEVfUVVPVEU6CisgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9TSU5HTEVfUVVPVEU7CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX0xFRlQ6CisgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9NU0dfRUxFTUVOVDsKKyAgICAgICAgICAgICAgICAgICArK2JyYWNlQ291bnQ7CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFURV9TSU5HTEVfUVVPVEU6CisgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOgorICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfUklHSFQ6CisgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTl9RVU9URTsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFURV9JTl9RVU9URToKKyAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgY2FzZSBTSU5HTEVfUVVPVEU6CisgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGNhc2UgU1RBVEVfTVNHX0VMRU1FTlQ6CisgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICAgICArK2JyYWNlQ291bnQ7CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX1JJR0hUOgorICAgICAgICAgICAgICAgICAgIGlmICgtLWJyYWNlQ291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGRlZmF1bHQ6IC8vIE5ldmVyIGhhcHBlbnMuCisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgfQorICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgIH0KKyAgICAgICAvLyBFbmQgb2Ygc2NhbgorICAgICAgIGlmIChzdGF0ZSA9PSBTVEFURV9TSU5HTEVfUVVPVEUgfHwgc3RhdGUgPT0gU1RBVEVfSU5fUVVPVEUpIHsKKyAgICAgICAgICAgYnVmLmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgIH0KKyAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYpOworICAgfQorICAgCisgICAvKioKKyAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBjb3B5IG9mIHRoaXMgb2JqZWN0LgorICAgICoKKyAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIGluc3RhbmNlLgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgcmV0dXJuIG5ldyBNZXNzYWdlRm9ybWF0KChqYXZhLnRleHQuTWVzc2FnZUZvcm1hdCltZXNzYWdlRm9ybWF0LmNsb25lKCkpOworICAgfQorCisgICAvKioKKyAgICAqIEVxdWFsaXR5IGNvbXBhcmlzb24gYmV0d2VlbiB0d28gbWVzc2FnZSBmb3JtYXQgb2JqZWN0cworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgdHJ5IHsKKyAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQuZXF1YWxzKCgoTWVzc2FnZUZvcm1hdClvYmopLm1lc3NhZ2VGb3JtYXQpOworICAgICAgIH0KKyAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyAgIH0KKworICAgLyoqCisgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBtZXNzYWdlIGZvcm1hdCBvYmplY3QuCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5oYXNoQ29kZSgpOworICAgfQorCisgICAvKioKKyAgICAqIFJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nLgorICAgICogQHJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nCisgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgKi8KKyAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQudG9QYXR0ZXJuKCk7CisgICB9CisKKyAgIHByaXZhdGUgc3RhdGljIEZvcm1hdCB1bndyYXAoRm9ybWF0IGYpIHsKKyAgICAgICBpZiAoZiBpbnN0YW5jZW9mIERhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgcmV0dXJuICgoRGF0ZUZvcm1hdClmKS5kYXRlRm9ybWF0OworICAgICAgIH0gZWxzZSBpZiAoZiBpbnN0YW5jZW9mIE51bWJlckZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gKChOdW1iZXJGb3JtYXQpZikubnVtYmVyRm9ybWF0OworICAgICAgIH0gZWxzZSBpZiAoZiBpbnN0YW5jZW9mIE1lc3NhZ2VGb3JtYXQpIHsKKyAgICAgICAgICAgcmV0dXJuICgoTWVzc2FnZUZvcm1hdClmKS5tZXNzYWdlRm9ybWF0OworICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgIHJldHVybiBmOworICAgICAgIH0KKyAgIH0KKworICAgcHJpdmF0ZSBzdGF0aWMgRm9ybWF0IHdyYXAoRm9ybWF0IGYpIHsKKyAgICAgICBpZiAoZiBpbnN0YW5jZW9mIGphdmEudGV4dC5EYXRlRm9ybWF0KSB7CisgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdCgoamF2YS50ZXh0LkRhdGVGb3JtYXQpZik7CisgICAgICAgfSBlbHNlIGlmIChmIGluc3RhbmNlb2YgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpIHsKKyAgICAgICAgICAgcmV0dXJuIG5ldyBEZWNpbWFsRm9ybWF0KChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdClmKTsKKyAgICAgICB9IGVsc2UgaWYgKGYgaW5zdGFuY2VvZiBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gbmV3IE1lc3NhZ2VGb3JtYXQoKGphdmEudGV4dC5NZXNzYWdlRm9ybWF0KWYpOworICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgIHJldHVybiBmOworICAgICAgIH0KKyAgIH0KKworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTSU5HTEVfUVVPVEUgPSAnXCcnOworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDVVJMWV9CUkFDRV9MRUZUID0gJ3snOworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDVVJMWV9CUkFDRV9SSUdIVCA9ICd9JzsKKworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX0lOSVRJQUwgPSAwOworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX1NJTkdMRV9RVU9URSA9IDE7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfSU5fUVVPVEUgPSAyOworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX01TR19FTEVNRU5UID0gMzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk0NzJlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsNzc4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gaXMgdGhlIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGFsbCBudW1iZXIKKyAqIGZvcm1hdHMuIFRoaXMgY2xhc3MgcHJvdmlkZXMgdGhlIGludGVyZmFjZSBmb3IgZm9ybWF0dGluZyBhbmQgcGFyc2luZworICogbnVtYmVycy4gPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBhbHNvIHByb3ZpZGVzIG1ldGhvZHMgZm9yIGRldGVybWluaW5nCisgKiB3aGljaCBsb2NhbGVzIGhhdmUgbnVtYmVyIGZvcm1hdHMsIGFuZCB3aGF0IHRoZWlyIG5hbWVzIGFyZS4KKyAqCisgKiA8cD48c3Ryb25nPlRoaXMgaXMgYW4gZW5oYW5jZWQgdmVyc2lvbiBvZiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IHRoYXQKKyAqIGlzIGJhc2VkIG9uIHRoZSBzdGFuZGFyZCB2ZXJzaW9uIGluIHRoZSBKREsuICBOZXcgb3IgY2hhbmdlZCBmdW5jdGlvbmFsaXR5CisgKiBpcyBsYWJlbGVkCisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+IG9yCisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPi48L3N0cm9uZz4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gaGVscHMgeW91IHRvIGZvcm1hdCBhbmQgcGFyc2UgbnVtYmVycyBmb3IgYW55IGxvY2FsZS4KKyAqIFlvdXIgY29kZSBjYW4gYmUgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiB0aGUgbG9jYWxlIGNvbnZlbnRpb25zIGZvcgorICogZGVjaW1hbCBwb2ludHMsIHRob3VzYW5kcy1zZXBhcmF0b3JzLCBvciBldmVuIHRoZSBwYXJ0aWN1bGFyIGRlY2ltYWwKKyAqIGRpZ2l0cyB1c2VkLCBvciB3aGV0aGVyIHRoZSBudW1iZXIgZm9ybWF0IGlzIGV2ZW4gZGVjaW1hbC4KKyAqCisgKiA8cD4KKyAqIFRvIGZvcm1hdCBhIG51bWJlciBmb3IgdGhlIGN1cnJlbnQgTG9jYWxlLCB1c2Ugb25lIG9mIHRoZSBmYWN0b3J5CisgKiBjbGFzcyBtZXRob2RzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogIG15U3RyaW5nID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkuZm9ybWF0KG15TnVtYmVyKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogSWYgeW91IGFyZSBmb3JtYXR0aW5nIG11bHRpcGxlIG51bWJlcnMsIGl0IGlzCisgKiBtb3JlIGVmZmljaWVudCB0byBnZXQgdGhlIGZvcm1hdCBhbmQgdXNlIGl0IG11bHRpcGxlIHRpbWVzIHNvIHRoYXQKKyAqIHRoZSBzeXN0ZW0gZG9lc24ndCBoYXZlIHRvIGZldGNoIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWwKKyAqIGxhbmd1YWdlIGFuZCBjb3VudHJ5IGNvbnZlbnRpb25zIG11bHRpcGxlIHRpbWVzLgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgKiBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAqICAgICBvdXRwdXQucHJpbnRsbihuZi5mb3JtYXQobXlOdW1iZXJbaV0pICsgIjsgIik7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFRvIGZvcm1hdCBhIG51bWJlciBmb3IgYSBkaWZmZXJlbnQgTG9jYWxlLCBzcGVjaWZ5IGl0IGluIHRoZQorICogY2FsbCB0byA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4uCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFlvdSBjYW4gYWxzbyB1c2UgYSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IHRvIHBhcnNlIG51bWJlcnM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBteU51bWJlciA9IG5mLnBhcnNlKG15U3RyaW5nKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVXNlIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiBvciA8Y29kZT5nZXROdW1iZXJJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IHRoZQorICogbm9ybWFsIG51bWJlciBmb3JtYXQuIFVzZSA8Y29kZT5nZXRJbnRlZ2VySW5zdGFuY2U8L2NvZGU+IHRvIGdldCBhbgorICogaW50ZWdlciBudW1iZXIgZm9ybWF0LiBVc2UgPGNvZGU+Z2V0Q3VycmVuY3lJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IHRoZQorICogY3VycmVuY3kgbnVtYmVyIGZvcm1hdC4gQW5kIHVzZSA8Y29kZT5nZXRQZXJjZW50SW5zdGFuY2U8L2NvZGU+IHRvIGdldCBhCisgKiBmb3JtYXQgZm9yIGRpc3BsYXlpbmcgcGVyY2VudGFnZXMuIFdpdGggdGhpcyBmb3JtYXQsIGEgZnJhY3Rpb24gbGlrZQorICogMC41MyBpcyBkaXNwbGF5ZWQgYXMgNTMlLgorICoKKyAqIDxwPgorICogWW91IGNhbiBhbHNvIGNvbnRyb2wgdGhlIGRpc3BsYXkgb2YgbnVtYmVycyB3aXRoIHN1Y2ggbWV0aG9kcyBhcworICogPGNvZGU+c2V0TWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAqIElmIHlvdSB3YW50IGV2ZW4gbW9yZSBjb250cm9sIG92ZXIgdGhlIGZvcm1hdCBvciBwYXJzaW5nLAorICogb3Igd2FudCB0byBnaXZlIHlvdXIgdXNlcnMgbW9yZSBjb250cm9sLAorICogeW91IGNhbiB0cnkgY2FzdGluZyB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB5b3UgZ2V0IGZyb20gdGhlIGZhY3RvcnkgbWV0aG9kcworICogdG8gYSA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPi4gVGhpcyB3aWxsIHdvcmsgZm9yIHRoZSB2YXN0IG1ham9yaXR5CisgKiBvZiBsb2NhbGVzOyBqdXN0IHJlbWVtYmVyIHRvIHB1dCBpdCBpbiBhIDxjb2RlPnRyeTwvY29kZT4gYmxvY2sgaW4gY2FzZSB5b3UKKyAqIGVuY291bnRlciBhbiB1bnVzdWFsIG9uZS4KKyAqCisgKiA8cD4KKyAqIE51bWJlckZvcm1hdCBpcyBkZXNpZ25lZCBzdWNoIHRoYXQgc29tZSBjb250cm9scworICogd29yayBmb3IgZm9ybWF0dGluZyBhbmQgb3RoZXJzIHdvcmsgZm9yIHBhcnNpbmcuICBUaGUgZm9sbG93aW5nIGlzCisgKiB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIGVhY2ggdGhlc2UgY29udHJvbCBtZXRob2RzLAorICogPHA+CisgKiBzZXRQYXJzZUludGVnZXJPbmx5IDogb25seSBhZmZlY3RzIHBhcnNpbmcsIGUuZy4KKyAqIGlmIHRydWUsICAiMzQ1Ni43OCIgLT4gMzQ1NiAoYW5kIGxlYXZlcyB0aGUgcGFyc2UgcG9zaXRpb24ganVzdCBhZnRlciAnNicpCisgKiBpZiBmYWxzZSwgIjM0NTYuNzgiIC0+IDM0NTYuNzggKGFuZCBsZWF2ZXMgdGhlIHBhcnNlIHBvc2l0aW9uIGp1c3QgYWZ0ZXIgJzgnKQorICogVGhpcyBpcyBpbmRlcGVuZGVudCBvZiBmb3JtYXR0aW5nLiAgSWYgeW91IHdhbnQgdG8gbm90IHNob3cgYSBkZWNpbWFsIHBvaW50CisgKiB3aGVyZSB0aGVyZSBtaWdodCBiZSBubyBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIHVzZQorICogc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duIG9uIERlY2ltYWxGb3JtYXQuCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyB1c2UgZm9ybXMgb2YgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBhbmQgPGNvZGU+Zm9ybWF0PC9jb2RlPgorICogbWV0aG9kcyB3aXRoIDxjb2RlPlBhcnNlUG9zaXRpb248L2NvZGU+IGFuZCA8Y29kZT5GaWVsZFBvc2l0aW9uPC9jb2RlPiB0bworICogYWxsb3cgeW91IHRvOgorICogPHVsPgorICogPGxpPiBwcm9ncmVzc2l2ZWx5IHBhcnNlIHRocm91Z2ggcGllY2VzIG9mIGEgc3RyaW5nCisgKiA8bGk+IGFsaWduIHRoZSBkZWNpbWFsIHBvaW50IGFuZCBvdGhlciBhcmVhcworICogPC91bD4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGFsaWduIG51bWJlcnMgaW4gdHdvIHdheXM6CisgKiA8b2w+CisgKiA8bGk+IElmIHlvdSBhcmUgdXNpbmcgYSBtb25vc3BhY2VkIGZvbnQgd2l0aCBzcGFjaW5nIGZvciBhbGlnbm1lbnQsCisgKiAgICAgIHlvdSBjYW4gcGFzcyB0aGUgPGNvZGU+RmllbGRQb3NpdGlvbjwvY29kZT4gaW4geW91ciBmb3JtYXQgY2FsbCwgd2l0aAorICogICAgICA8Y29kZT5maWVsZDwvY29kZT4gPSA8Y29kZT5JTlRFR0VSX0ZJRUxEPC9jb2RlPi4gT24gb3V0cHV0LAorICogICAgICA8Y29kZT5nZXRFbmRJbmRleDwvY29kZT4gd2lsbCBiZSBzZXQgdG8gdGhlIG9mZnNldCBiZXR3ZWVuIHRoZQorICogICAgICBsYXN0IGNoYXJhY3RlciBvZiB0aGUgaW50ZWdlciBhbmQgdGhlIGRlY2ltYWwuIEFkZAorICogICAgICAoZGVzaXJlZFNwYWNlQ291bnQgLSBnZXRFbmRJbmRleCkgc3BhY2VzIGF0IHRoZSBmcm9udCBvZiB0aGUgc3RyaW5nLgorICoKKyAqIDxsaT4gSWYgeW91IGFyZSB1c2luZyBwcm9wb3J0aW9uYWwgZm9udHMsCisgKiAgICAgIGluc3RlYWQgb2YgcGFkZGluZyB3aXRoIHNwYWNlcywgbWVhc3VyZSB0aGUgd2lkdGgKKyAqICAgICAgb2YgdGhlIHN0cmluZyBpbiBwaXhlbHMgZnJvbSB0aGUgc3RhcnQgdG8gPGNvZGU+Z2V0RW5kSW5kZXg8L2NvZGU+LgorICogICAgICBUaGVuIG1vdmUgdGhlIHBlbiBieQorICogICAgICAoZGVzaXJlZFBpeGVsV2lkdGggLSB3aWR0aFRvQWxpZ25tZW50UG9pbnQpIGJlZm9yZSBkcmF3aW5nIHRoZSB0ZXh0LgorICogICAgICBJdCBhbHNvIHdvcmtzIHdoZXJlIHRoZXJlIGlzIG5vIGRlY2ltYWwsIGJ1dCBwb3NzaWJseSBhZGRpdGlvbmFsCisgKiAgICAgIGNoYXJhY3RlcnMgYXQgdGhlIGVuZCwgZS5nLiwgd2l0aCBwYXJlbnRoZXNlcyBpbiBuZWdhdGl2ZQorICogICAgICBudW1iZXJzOiAiKDEyKSIgZm9yIC0xMi4KKyAqIDwvb2w+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKiA8cD4KKyAqIE51bWJlciBmb3JtYXRzIGFyZSBnZW5lcmFsbHkgbm90IHN5bmNocm9uaXplZC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gY3JlYXRlIAorICogc2VwYXJhdGUgZm9ybWF0IGluc3RhbmNlcyBmb3IgZWFjaCB0aHJlYWQuIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0CisgKiBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkIGV4dGVybmFsbHkuIAorICogPHA+CisgKgorICogPGg0PkRlY2ltYWxGb3JtYXQ8L2g0PgorICogPHA+RGVjaW1hbEZvcm1hdCBpcyB0aGUgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgTnVtYmVyRm9ybWF0LCBhbmQgdGhlCisgKiBOdW1iZXJGb3JtYXQgQVBJIGlzIGVzc2VudGlhbGx5IGFuIGFic3RyYWN0aW9uIGZyb20gRGVjaW1hbEZvcm1hdCdzIEFQSS4KKyAqIFJlZmVyIHRvIERlY2ltYWxGb3JtYXQgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBBUEkuPC9wPgorICoKKyAqIHNlZSAgICAgICAgICBEZWNpbWFsRm9ybWF0CisgKiBzZWUgICAgICAgICAgamF2YS50ZXh0LkNob2ljZUZvcm1hdAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzCisgKiBAYXV0aG9yICAgICAgIEhlbGVuYSBTaGloCisgKiBAYXV0aG9yICAgICAgIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdCBleHRlbmRzIEZvcm1hdCB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0IG51bWJlckZvcm1hdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBOdW1iZXJGb3JtYXQgdG8gd2hpY2ggdG8gZGVsZWdhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0KGphdmEudGV4dC5OdW1iZXJGb3JtYXQgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQgPSBkZWxlZ2F0ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvciB0byBtaXJyb3IgSmF2YSdzIGRlZmF1bHQgcHVibGljCisgICAgICogY29uc3RydWN0b3IuICBKYXZhJ3MgaXMgbm90IGNhbGxhYmxlIGFzIGEgcHVibGljIEFQSSwgc2luY2UKKyAgICAgKiB0aGVpciBOdW1iZXJGb3JtYXQgaXMgYWJzdHJhY3QsIHNvIHRoaXMgaXMgb25seSB1c2VmdWwgdG8KKyAgICAgKiBzdWJjbGFzc2VzLiAgSW4gZ2VuZXJhbCwgc3ViY2xhc3NlcyB3aWxsIG5vdCB3b3JrIHVubGVzcworICAgICAqIHRoZXkgbWFuaXB1bGF0ZSB0aGUgZGVsZWdhdGUuCisgICAgICovCisgICAgcHVibGljIE51bWJlckZvcm1hdCgpIHsKKyAgICAJdGhpcy5udW1iZXJGb3JtYXQgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmllbGQgY29uc3RhbnQgdXNlZCB0byBjb25zdHJ1Y3QgYSBGaWVsZFBvc2l0aW9uIG9iamVjdC4gU2lnbmlmaWVzIHRoYXQKKyAgICAgKiB0aGUgcG9zaXRpb24gb2YgdGhlIGludGVnZXIgcGFydCBvZiBhIGZvcm1hdHRlZCBudW1iZXIgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSX0ZJRUxEID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgY29uc3RhbnQgdXNlZCB0byBjb25zdHJ1Y3QgYSBGaWVsZFBvc2l0aW9uIG9iamVjdC4gU2lnbmlmaWVzIHRoYXQKKyAgICAgKiB0aGUgcG9zaXRpb24gb2YgdGhlIGZyYWN0aW9uIHBhcnQgb2YgYSBmb3JtYXR0ZWQgbnVtYmVyIHNob3VsZCBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05fRklFTEQgPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhbiBvYmplY3QuICBDaGFuZ2U6IHJlY29nbml6ZXMgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4KKyAgICAgKiBhbmQgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3QgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIE9iamVjdCBwYXJzZU9iamVjdChTdHJpbmcgc291cmNlLCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5wYXJzZShzb3VyY2UsIHBhcnNlUG9zaXRpb24pOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBmb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlcik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQobG9uZyBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQmlnSW50ZWdlci4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgTG9uZyBpZiBwb3NzaWJsZSAoZS5nLiwgd2l0aGluIHRoZSByYW5nZSBbTG9uZy5NSU5fVkFMVUUsCisgICAgICogTG9uZy5NQVhfVkFMVUVdIGFuZCB3aXRoIG5vIGRlY2ltYWxzKSwgb3RoZXJ3aXNlIGEgRG91YmxlLgorICAgICAqIElmIEludGVnZXJPbmx5IGlzIHNldCwgd2lsbCBzdG9wIGF0IGEgZGVjaW1hbAorICAgICAqIHBvaW50IChvciBlcXVpdmFsZW50OyBlLmcuLCBmb3IgcmF0aW9uYWwgbnVtYmVycyAiMSAyLzMiLCB3aWxsIHN0b3AKKyAgICAgKiBhZnRlciB0aGUgMSkuCisgICAgICogRG9lcyBub3QgdGhyb3cgYW4gZXhjZXB0aW9uOyBpZiBubyBvYmplY3QgY2FuIGJlIHBhcnNlZCwgaW5kZXggaXMKKyAgICAgKiB1bmNoYW5nZWQhCisgICAgICogQHNlZSAjaXNQYXJzZUludGVnZXJPbmx5CisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I3BhcnNlT2JqZWN0KFN0cmluZywgUGFyc2VQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHByb2R1Y2UgYSBudW1iZXIuCisgICAgICogVGhlIG1ldGhvZCBtaWdodCBub3QgdXNlIHRoZSBlbnRpcmUgdGV4dCBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgQSBTdHJpbmcgd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiBBIE51bWJlciBwYXJzZWQgZnJvbSB0aGUgc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gaWYgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZyAKKyAgICAgKiBjYW5ub3QgYmUgcGFyc2VkLgorICAgICAqIEBzZWUgI2Zvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQucGFyc2UodGV4dCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGZvcm1hdCB3aWxsIHBhcnNlIG51bWJlcnMgYXMgaW50ZWdlcnMgb25seS4KKyAgICAgKiBGb3IgZXhhbXBsZSBpbiB0aGUgRW5nbGlzaCBsb2NhbGUsIHdpdGggUGFyc2VJbnRlZ2VyT25seSB0cnVlLCB0aGUKKyAgICAgKiBzdHJpbmcgIjEyMzQuIiB3b3VsZCBiZSBwYXJzZWQgYXMgdGhlIGludGVnZXIgdmFsdWUgMTIzNCBhbmQgcGFyc2luZworICAgICAqIHdvdWxkIHN0b3AgYXQgdGhlICIuIiBjaGFyYWN0ZXIuICBUaGUgZGVjaW1hbCBzZXBhcmF0b3IgYWNjZXB0ZWQKKyAgICAgKiBieSB0aGUgcGFyc2Ugb3BlcmF0aW9uIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGRldGVybWluZWQgYnkgdGhlCisgICAgICogc3ViY2xhc3MuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgd2lsbCBwYXJzZSBpbnRlZ2VycyBvbmx5CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNQYXJzZUludGVnZXJPbmx5KCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmlzUGFyc2VJbnRlZ2VyT25seSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIG9yIG5vdCBudW1iZXJzIHNob3VsZCBiZSBwYXJzZWQgYXMgaW50ZWdlcnMgb25seS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdHJ1ZSBpZiB0aGlzIHNob3VsZCBwYXJzZSBpbnRlZ2VycyBvbmx5CisgICAgICogQHNlZSAjaXNQYXJzZUludGVnZXJPbmx5CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFyc2VJbnRlZ2VyT25seShib29sZWFuIHZhbHVlKSB7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vPT09PT09PT09PT09PT0gTG9jYWxlIFN0dWZmID09PT09PT09PT09PT09PT09PT09PQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRJbnRlZ2VySW5zdGFuY2UsCisgICAgICogZ2V0Q3VycmVuY3lJbnN0YW5jZSBvciBnZXRQZXJjZW50SW5zdGFuY2UuCisgICAgICogRXhhY3RseSB3aGljaCBvbmUgaXMgbG9jYWxlLWRlcGVuZGVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIE5VTUJFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBnZW5lcmFsLXB1cnBvc2UgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVySW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgTlVNQkVSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgTlVNQkVSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBOVU1CRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuIFRoZQorICAgICAqIHJldHVybmVkIG51bWJlciBmb3JtYXQgaXMgY29uZmlndXJlZCB0byByb3VuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgICAgICogdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyBJRUVFIGhhbGYtZXZlbiByb3VuZGluZyAoc2VlIHtAbGluayAKKyAgICAgKiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjUk9VTkRfSEFMRl9FVkVOIFJPVU5EX0hBTEZfRVZFTn0pIGZvciBmb3JtYXR0aW5nLAorICAgICAqIGFuZCB0byBwYXJzZSBvbmx5IHRoZSBpbnRlZ2VyIHBhcnQgb2YgYW4gaW5wdXQgc3RyaW5nIChzZWUge0BsaW5rCisgICAgICogI2lzUGFyc2VJbnRlZ2VyT25seSBpc1BhcnNlSW50ZWdlck9ubHl9KS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBpbnRlZ2VyIHZhbHVlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEludGVnZXJJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBJTlRFR0VSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLiBUaGUKKyAgICAgKiByZXR1cm5lZCBudW1iZXIgZm9ybWF0IGlzIGNvbmZpZ3VyZWQgdG8gcm91bmQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycworICAgICAqIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgdXNpbmcgSUVFRSBoYWxmLWV2ZW4gcm91bmRpbmcgKHNlZSB7QGxpbmsgCisgICAgICogY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTiBST1VORF9IQUxGX0VWRU59KSBmb3IgZm9ybWF0dGluZywKKyAgICAgKiBhbmQgdG8gcGFyc2Ugb25seSB0aGUgaW50ZWdlciBwYXJ0IG9mIGFuIGlucHV0IHN0cmluZyAoc2VlIHtAbGluaworICAgICAqICNpc1BhcnNlSW50ZWdlck9ubHkgaXNQYXJzZUludGVnZXJPbmx5fSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5Mb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggYSBudW1iZXIgZm9ybWF0IGlzIG5lZWRlZAorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBpbnRlZ2VyIHZhbHVlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEludGVnZXJJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4gVGhlCisgICAgICogcmV0dXJuZWQgbnVtYmVyIGZvcm1hdCBpcyBjb25maWd1cmVkIHRvIHJvdW5kIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKyAgICAgKiB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nIChzZWUge0BsaW5rIAorICAgICAqIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU4gUk9VTkRfSEFMRl9FVkVOfSkgZm9yIGZvcm1hdHRpbmcsCisgICAgICogYW5kIHRvIHBhcnNlIG9ubHkgdGhlIGludGVnZXIgcGFydCBvZiBhbiBpbnB1dCBzdHJpbmcgKHNlZSB7QGxpbmsKKyAgICAgKiAjaXNQYXJzZUludGVnZXJPbmx5IGlzUGFyc2VJbnRlZ2VyT25seX0pLgorICAgICAqCisgICAgICogQHBhcmFtIGluTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgbnVtYmVyIGZvcm1hdCBpcyBuZWVkZWQKKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgaW50ZWdlciB2YWx1ZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEludGVnZXJJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEN1cnJlbmN5SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgQ1VSUkVOQ1lTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBDVVJSRU5DWVNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgQ1VSUkVOQ1lTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFBlcmNlbnRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBQRVJDRU5UU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBlcmNlbnRhZ2UgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgcGVyY2VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIFBFUkNFTlRTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0UGVyY2VudEluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBQRVJDRU5UU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybnMgYSBzY2llbnRpZmljIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHNjaWVudGlmaWMgbnVtYmVyIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFNjaWVudGlmaWNJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBTQ0lFTlRJRklDU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybnMgYSBzY2llbnRpZmljIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHNjaWVudGlmaWMgbnVtYmVyIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm5zIGEgc2NpZW50aWZpYyBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBzY2llbnRpZmljIG51bWJlciBmb3JtYXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbGlzdCBvZiBMb2NhbGVzIGZvciB3aGljaCBOdW1iZXJGb3JtYXRzIGFyZSBhdmFpbGFibGUuCisgICAgICogQHJldHVybiB0aGUgYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbGlzdCBvZiBMb2NhbGVzIGZvciB3aGljaCBOdW1iZXJGb3JtYXRzIGFyZSBhdmFpbGFibGUuCisgICAgICogQHJldHVybiB0aGUgYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoYXZhaWxhYmxlVUxvY2FsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdWxvY2FsZXNbaV0gPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF2YWlsYWJsZVVMb2NhbGVzID0gdWxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVTG9jYWxlW10pYXZhaWxhYmxlVUxvY2FsZXMuY2xvbmUoKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgVUxvY2FsZVtdIGF2YWlsYWJsZVVMb2NhbGVzOworICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIGdyb3VwaW5nIGlzIHVzZWQgaW4gdGhpcyBmb3JtYXQuIEZvciBleGFtcGxlLCBpbiB0aGUKKyAgICAgKiBlbl9VUyBsb2NhbGUsIHdpdGggZ3JvdXBpbmcgb24sIHRoZSBudW1iZXIgMTIzNDU2NyB3aWxsIGJlIGZvcm1hdHRlZAorICAgICAqIGFzICIxLDIzNCw1NjciLiBUaGUgZ3JvdXBpbmcgc2VwYXJhdG9yIGFzIHdlbGwgYXMgdGhlIHNpemUgb2YgZWFjaCBncm91cAorICAgICAqIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGlzIGRldGVybWluZWQgYnkgc3ViY2xhc3NlcyBvZiBOdW1iZXJGb3JtYXQuCisgICAgICogR3JvdXBpbmcgYWZmZWN0cyBib3RoIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcuCisgICAgICogQHJldHVybiB0cnVlIGlmIGdyb3VwaW5nIGlzIHVzZWQKKyAgICAgKiBAc2VlICNzZXRHcm91cGluZ1VzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0dyb3VwaW5nVXNlZCgpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5pc0dyb3VwaW5nVXNlZCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIG9yIG5vdCBncm91cGluZyB3aWxsIGJlIHVzZWQgaW4gdGhpcyBmb3JtYXQuICBHcm91cGluZworICAgICAqIGFmZmVjdHMgYm90aCBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nLgorICAgICAqIEBzZWUgI2lzR3JvdXBpbmdVc2VkCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRydWUgdG8gdXNlIGdyb3VwaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEdyb3VwaW5nVXNlZChib29sZWFuIG5ld1ZhbHVlKSB7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRHcm91cGluZ1VzZWQobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgNDAsIHdoaWNoIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLgorICAgICAqIFdoZW4gZm9ybWF0dGluZywgdGhlIGV4YWN0IGJlaGF2aW9yIHdoZW4gdGhpcyB2YWx1ZSBpcyBleGNlZWRlZCBpcworICAgICAqIHN1YmNsYXNzLXNwZWNpZmljLiAgV2hlbiBwYXJzaW5nLCB0aGlzIGhhcyBubyBlZmZlY3QuCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMKKyAgICAgKiBAc2VlICNzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBtdXN0IGJlID49IG1pbmltdW1JbnRlZ2VyRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtYXhpbXVtSW50ZWdlckRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtaW5pbXVtSW50ZWdlckRpZ2l0cywgdGhlbiBtaW5pbXVtSW50ZWdlckRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gIFN1YmNsYXNzZXMgbWlnaHQgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEsIHdoaWNoIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLgorICAgICAqIFdoZW4gZm9ybWF0dGluZywgaWYgdGhpcyB2YWx1ZSBpcyBub3QgcmVhY2hlZCwgbnVtYmVycyBhcmUgcGFkZGVkIG9uIHRoZQorICAgICAqIGxlZnQgd2l0aCB0aGUgbG9jYWxlLXNwZWNpZmljICcwJyBjaGFyYWN0ZXIgdG8gZW5zdXJlIGF0IGxlYXN0IHRoaXMKKyAgICAgKiBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhpcyBtdXN0IGJlIDw9IG1heGltdW1JbnRlZ2VyRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtaW5pbXVtSW50ZWdlckRpZ2l0cyBpcyBtb3JlIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtYXhpbXVtSW50ZWdlckRpZ2l0cywgdGhlbiBtYXhpbXVtSW50ZWdlckRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gU3ViY2xhc3NlcyBtaWdodCBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUludGVnZXJEaWdpdHMobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uCisgICAgICogcG9ydGlvbiBvZiBhIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDMsIHdoaWNoIHN1YmNsYXNzZXMKKyAgICAgKiBjYW4gb3ZlcnJpZGUuICBXaGVuIGZvcm1hdHRpbmcsIHRoZSBleGFjdCBiZWhhdmlvciB3aGVuIHRoaXMKKyAgICAgKiB2YWx1ZSBpcyBleGNlZWRlZCBpcyBzdWJjbGFzcy1zcGVjaWZpYy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgCisgICAgICogbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbiBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuIFRoaXMgbXVzdCBiZSA+PSBtaW5pbXVtRnJhY3Rpb25EaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1heGltdW1GcmFjdGlvbkRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtaW5pbXVtRnJhY3Rpb25EaWdpdHMsIHRoZW4gbWluaW11bUZyYWN0aW9uRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gVGhlIGNvbmNyZXRlIHN1YmNsYXNzIG1heSBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIHdoaWNoIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLgorICAgICAqIFdoZW4gZm9ybWF0dGluZywgaWYgdGhpcyB2YWx1ZSBpcyBub3QgcmVhY2hlZCwgbnVtYmVycyBhcmUgcGFkZGVkIG9uCisgICAgICogdGhlIHJpZ2h0IHdpdGggdGhlIGxvY2FsZS1zcGVjaWZpYyAnMCcgY2hhcmFjdGVyIHRvIGVuc3VyZSBhdCBsZWFzdAorICAgICAqIHRoaXMgbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoaXMgbXVzdCBiZSA8PSBtYXhpbXVtRnJhY3Rpb25EaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyBleGNlZWRzIHRoZSBjdXJyZW50IHZhbHVlCisgICAgICogb2YgbWF4aW11bUZyYWN0aW9uRGlnaXRzLCB0aGVuIG1heGltdW1GcmFjdGlvbkRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byBiZSBzaG93bjsgaWYKKyAgICAgKiBsZXNzIHRoYW4gemVybywgdGhlbiB6ZXJvIGlzIHVzZWQuICBTdWJjbGFzc2VzIG1pZ2h0IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1pbmltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhuZXdWYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisgICAgICogQHJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJGb3JtYXQoKGphdmEudGV4dC5OdW1iZXJGb3JtYXQpbnVtYmVyRm9ybWF0LmNsb25lKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscy4gIFR3byBOdW1iZXJGb3JtYXRzIGFyZSBlcXVhbCBpZiB0aGV5IGFyZSBvZiB0aGUgc2FtZSBjbGFzcworICAgICAqIGFuZCB0aGUgc2V0dGluZ3MgKGdyb3VwaW5nVXNlZCwgcGFyc2VJbnRlZ2VyT25seSwgbWF4aW11bUludGVnZXJEaWdpdHMsIGV0Yy4KKyAgICAgKiBhcmUgZXF1YWwuCisgICAgICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgYWdhaW5zdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGVxdWFsIHRvIHRoaXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZXF1YWxzKCgoTnVtYmVyRm9ybWF0KW9iaikubnVtYmVyRm9ybWF0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5oYXNoQ29kZSgpOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09cHJpdmF0ZXM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnN0YW5jZShVTG9jYWxlIGRlc2lyZWRMb2NhbGUsIGludCBjaG9pY2UpIHsKKyAgICAgICAgTG9jYWxlIGxvY2FsZSA9IGRlc2lyZWRMb2NhbGUudG9Mb2NhbGUoKTsKKyAgICAgICAgamF2YS50ZXh0Lk51bWJlckZvcm1hdCBuZiA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoY2hvaWNlKSB7CisgICAgICAgIGNhc2UgTlVNQkVSU1RZTEU6IG5mID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgY2FzZSBDVVJSRU5DWVNUWUxFOiBuZiA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgY2FzZSBQRVJDRU5UU1RZTEU6IG5mID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobG9jYWxlKTsgYnJlYWs7CisgICAgICAgIGNhc2UgU0NJRU5USUZJQ1NUWUxFOiBuZiA9IG5ldyBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCgiI0UwIiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZSkpOyAKKyAgICAgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJTlRFR0VSU1RZTEU6IAorICAgICAgICAgICAgaWYgKHVuY2hlY2tlZCkgeworICAgICAgICAgICAgICAgIHVuY2hlY2tlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIENsYXNzW10gYXJncyA9IHsgamF2YS51dGlsLkxvY2FsZS5jbGFzcyB9OworICAgICAgICAgICAgICAgICAgICBpbnRlZ2VyMTRBUEkgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmNsYXNzLmdldE1ldGhvZCgiZ2V0SW50ZWdlckluc3RhbmNlIiwgYXJncyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbnRlZ2VyMTRBUEkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIGFyZ3MgPSB7IGxvY2FsZSB9OworICAgICAgICAgICAgICAgICAgICBuZiA9IChqYXZhLnRleHQuTnVtYmVyRm9ybWF0KWludGVnZXIxNEFQSS5pbnZva2UobnVsbCwgYXJncyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50ZWdlcjE0QVBJID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpbnRlZ2VyMTRBUEkgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkbid0IGhhcHBlbiwgYnV0IGxvY2FsZSBtaWdodCBiZSBudWxsLCBmb3IgZXhhbXBsZQorICAgICAgICAgICAgICAgICAgICAvLyBhbmQgd2UgZG9uJ3Qgd2FudCB0byB0aHJvdyBhd2F5IG91ciBtZXRob2QgYmVjYXVzZSBzb21lb25lCisgICAgICAgICAgICAgICAgICAgIC8vIGNhbGxlZCB1cyB3aXRoIGEgYmFkIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuZiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbmYgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygwKTsKKyAgICAgICAgICAgICAgICBuZi5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJGb3JtYXQobmYpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHVuY2hlY2tlZCA9IHRydWU7CisgICAgcHJpdmF0ZSBzdGF0aWMgTWV0aG9kIGludGVnZXIxNEFQSTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNQkVSU1RZTEUgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5DWVNUWUxFID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUEVSQ0VOVFNUWUxFID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0NJRU5USUZJQ1NUWUxFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5URUdFUlNUWUxFID0gNDsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGJhZDBkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMzgyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gaXMgYSBjb25jcmV0ZSBjbGFzcyBmb3IgZm9ybWF0dGluZyBhbmQKKyAqIHBhcnNpbmcgZGF0ZXMgaW4gYSBsb2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gSXQgYWxsb3dzIGZvciBmb3JtYXR0aW5nCisgKiAoZGF0ZSAtPiB0ZXh0KSwgcGFyc2luZyAodGV4dCAtPiBkYXRlKSwgYW5kIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBhbGxvd3MgeW91IHRvIHN0YXJ0IGJ5IGNob29zaW5nCisgKiBhbnkgdXNlci1kZWZpbmVkIHBhdHRlcm5zIGZvciBkYXRlLXRpbWUgZm9ybWF0dGluZy4gSG93ZXZlciwgeW91CisgKiBhcmUgZW5jb3VyYWdlZCB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggZWl0aGVyCisgKiA8Y29kZT5nZXRUaW1lSW5zdGFuY2U8L2NvZGU+LCA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvcgorICogPGNvZGU+Z2V0RGF0ZVRpbWVJbnN0YW5jZTwvY29kZT4gaW4gPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4uIEVhY2gKKyAqIG9mIHRoZXNlIGNsYXNzIG1ldGhvZHMgY2FuIHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIgaW5pdGlhbGl6ZWQKKyAqIHdpdGggYSBkZWZhdWx0IGZvcm1hdCBwYXR0ZXJuLiBZb3UgbWF5IG1vZGlmeSB0aGUgZm9ybWF0IHBhdHRlcm4KKyAqIHVzaW5nIHRoZSA8Y29kZT5hcHBseVBhdHRlcm48L2NvZGU+IG1ldGhvZHMgYXMgZGVzaXJlZC4KKyAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoZXNlIG1ldGhvZHMsIHNlZQorICoge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogPHN0cm9uZz5UaW1lIEZvcm1hdCBTeW50YXg6PC9zdHJvbmc+CisgKiA8cD4KKyAqIFRvIHNwZWNpZnkgdGhlIHRpbWUgZm9ybWF0IHVzZSBhIDxlbT50aW1lIHBhdHRlcm48L2VtPiBzdHJpbmcuCisgKiBJbiB0aGlzIHBhdHRlcm4sIGFsbCBBU0NJSSBsZXR0ZXJzIGFyZSByZXNlcnZlZCBhcyBwYXR0ZXJuIGxldHRlcnMsCisgKiB3aGljaCBhcmUgZGVmaW5lZCBhcyB0aGUgZm9sbG93aW5nOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogU3ltYm9sICAgTWVhbmluZyAgICAgICAgICAgICAgICAgUHJlc2VudGF0aW9uICAgICAgICBFeGFtcGxlCisgKiAtLS0tLS0gICAtLS0tLS0tICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0gICAgICAgIC0tLS0tLS0KKyAqIEcgICAgICAgIGVyYSBkZXNpZ25hdG9yICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgQUQKKyAqIHkmI3gyMDIwOyAgICAgICB5ZWFyICAgICAgICAgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDE5OTYKKyAqIFkqICAgICAgIHllYXIgKHdlZWsgb2YgeWVhcikgICAgIChOdW1iZXIpICAgICAgICAgICAgMTk5NworICogdSogICAgICAgZXh0ZW5kZWQgeWVhciAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICA0NjAxCisgKiBNICAgICAgICBtb250aCBpbiB5ZWFyICAgICAgICAgICAoVGV4dCAmIE51bWJlcikgICAgIEp1bHkgJiAwNworICogZCAgICAgICAgZGF5IGluIG1vbnRoICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAxMAorICogaCAgICAgICAgaG91ciBpbiBhbS9wbSAoMX4xMikgICAgKE51bWJlcikgICAgICAgICAgICAxMgorICogSCAgICAgICAgaG91ciBpbiBkYXkgKDB+MjMpICAgICAgKE51bWJlcikgICAgICAgICAgICAwCisgKiBtICAgICAgICBtaW51dGUgaW4gaG91ciAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDMwCisgKiBzICAgICAgICBzZWNvbmQgaW4gbWludXRlICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDU1CisgKiBTICAgICAgICBmcmFjdGlvbmFsIHNlY29uZCAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDk3OAorICogRSAgICAgICAgZGF5IG9mIHdlZWsgICAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBUdWVzZGF5CisgKiBlKiAgICAgICBkYXkgb2Ygd2VlayAobG9jYWwgMX43KSAoTnVtYmVyKSAgICAgICAgICAgIDIKKyAqIEQgICAgICAgIGRheSBpbiB5ZWFyICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMTg5CisgKiBGICAgICAgICBkYXkgb2Ygd2VlayBpbiBtb250aCAgICAoTnVtYmVyKSAgICAgICAgICAgIDIgKDJuZCBXZWQgaW4gSnVseSkKKyAqIHcgICAgICAgIHdlZWsgaW4geWVhciAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMjcKKyAqIFcgICAgICAgIHdlZWsgaW4gbW9udGggICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMgorICogYSAgICAgICAgYW0vcG0gbWFya2VyICAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBQTQorICogayAgICAgICAgaG91ciBpbiBkYXkgKDF+MjQpICAgICAgKE51bWJlcikgICAgICAgICAgICAyNAorICogSyAgICAgICAgaG91ciBpbiBhbS9wbSAoMH4xMSkgICAgKE51bWJlcikgICAgICAgICAgICAwCisgKiB6ICAgICAgICB0aW1lIHpvbmUgICAgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFBhY2lmaWMgU3RhbmRhcmQgVGltZQorICogWiAgICAgICAgdGltZSB6b25lIChSRkMgODIyKSAgICAgKE51bWJlcikgICAgICAgICAgICAtMDgwMAorICogdiAgICAgICAgdGltZSB6b25lIChnZW5lcmljKSAgICAgKFRleHQpICAgICAgICAgICAgICBQYWNpZmljIFRpbWUKKyAqIGcqICAgICAgIEp1bGlhbiBkYXkgICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMjQ1MTMzNAorICogQSogICAgICAgbWlsbGlzZWNvbmRzIGluIGRheSAgICAgKE51bWJlcikgICAgICAgICAgICA2OTU0MDAwMAorICogJyAgICAgICAgZXNjYXBlIGZvciB0ZXh0ICAgICAgICAgKERlbGltaXRlcikgICAgICAgICAnRGF0ZT0nCisgKiAnJyAgICAgICBzaW5nbGUgcXVvdGUgICAgICAgICAgICAoTGl0ZXJhbCkgICAgICAgICAgICdvJydjbG9jaycKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHR0PjxiPio8L2I+PC90dD4gVGhlc2UgaXRlbXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgSmF2YSdzIFNpbXBsZURhdGVGb3JtYXQuPGJyPgorICogPHR0PjxiPiYjeDIwMjA7PC9iPjwvdHQ+IElDVSBpbnRlcnByZXRzIGEgc2luZ2xlICd5JyBkaWZmZXJlbnRseSB0aGFuIEphdmEuPC9wPgorICogPHA+CisgKiBUaGUgY291bnQgb2YgcGF0dGVybiBsZXR0ZXJzIGRldGVybWluZSB0aGUgZm9ybWF0LgorICogPHA+CisgKiA8c3Ryb25nPihUZXh0KTwvc3Ryb25nPjogNCBvciBtb3JlIHBhdHRlcm4gbGV0dGVycy0tdXNlIGZ1bGwgZm9ybSwKKyAqICZsdDsgNC0tdXNlIHNob3J0IG9yIGFiYnJldmlhdGVkIGZvcm0gaWYgb25lIGV4aXN0cy4KKyAqIDxwPgorICogPHN0cm9uZz4oTnVtYmVyKTwvc3Ryb25nPjogdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cy4gU2hvcnRlcgorICogbnVtYmVycyBhcmUgemVyby1wYWRkZWQgdG8gdGhpcyBhbW91bnQuIFllYXIgaXMgaGFuZGxlZCBzcGVjaWFsbHk7CisgKiB0aGF0IGlzLCBpZiB0aGUgY291bnQgb2YgJ3knIGlzIDIsIHRoZSBZZWFyIHdpbGwgYmUgdHJ1bmNhdGVkIHRvIDIgZGlnaXRzLgorICogKGUuZy4sIGlmICJ5eXl5IiBwcm9kdWNlcyAiMTk5NyIsICJ5eSIgcHJvZHVjZXMgIjk3Ii4pCisgKiBVbmxpa2Ugb3RoZXIgZmllbGRzLCBmcmFjdGlvbmFsIHNlY29uZHMgYXJlIHBhZGRlZCBvbiB0aGUgcmlnaHQgd2l0aCB6ZXJvLgorICogPHA+CisgKiA8c3Ryb25nPihUZXh0ICYgTnVtYmVyKTwvc3Ryb25nPjogMyBvciBvdmVyLCB1c2UgdGV4dCwgb3RoZXJ3aXNlIHVzZSBudW1iZXIuCisgKiA8cD4KKyAqIEFueSBjaGFyYWN0ZXJzIGluIHRoZSBwYXR0ZXJuIHRoYXQgYXJlIG5vdCBpbiB0aGUgcmFuZ2VzIG9mIFsnYScuLid6J10KKyAqIGFuZCBbJ0EnLi4nWiddIHdpbGwgYmUgdHJlYXRlZCBhcyBxdW90ZWQgdGV4dC4gRm9yIGluc3RhbmNlLCBjaGFyYWN0ZXJzCisgKiBsaWtlICc6JywgJy4nLCAnICcsICcjJyBhbmQgJ0AnIHdpbGwgYXBwZWFyIGluIHRoZSByZXN1bHRpbmcgdGltZSB0ZXh0CisgKiBldmVuIHRoZXkgYXJlIG5vdCBlbWJyYWNlZCB3aXRoaW4gc2luZ2xlIHF1b3Rlcy4KKyAqIDxwPgorICogQSBwYXR0ZXJuIGNvbnRhaW5pbmcgYW55IGludmFsaWQgcGF0dGVybiBsZXR0ZXIgd2lsbCByZXN1bHQgaW4gYSB0aHJvd24KKyAqIGV4Y2VwdGlvbiBkdXJpbmcgZm9ybWF0dGluZyBvciBwYXJzaW5nLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5FeGFtcGxlcyBVc2luZyB0aGUgVVMgTG9jYWxlOjwvc3Ryb25nPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogRm9ybWF0IFBhdHRlcm4gICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0CisgKiAtLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tCisgKiAieXl5eS5NTS5kZCBHICdhdCcgSEg6bW06c3MgdnZ2diIgLT4+ICAxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBhY2lmaWMgVGltZQorICogIkVFRSwgTU1NIGQsICcneXkiICAgICAgICAgICAgICAgIC0+PiAgV2VkLCBKdWx5IDEwLCAnOTYKKyAqICJoOm1tIGEiICAgICAgICAgICAgICAgICAgICAgICAgICAtPj4gIDEyOjA4IFBNCisgKiAiaGggJ28nJ2Nsb2NrJyBhLCB6enp6IiAgICAgICAgICAgLT4+ICAxMiBvJ2Nsb2NrIFBNLCBQYWNpZmljIERheWxpZ2h0IFRpbWUKKyAqICJLOm1tIGEsIHZ2diIgICAgICAgICAgICAgICAgICAgICAtPj4gIDA6MDAgUE0sIFBUCisgKiAieXl5eXkuTU1NTU0uZGQgR0dHIGhoOm1tIGFhYSIgICAgLT4+ICAwMTk5Ni5KdWx5LjEwIEFEIDEyOjA4IFBNCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIDxzdHJvbmc+Q29kZSBTYW1wbGU6PC9zdHJvbmc+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTaW1wbGVUaW1lWm9uZSBwZHQgPSBuZXcgU2ltcGxlVGltZVpvbmUoLTggKiA2MCAqIDYwICogMTAwMCwgIlBTVCIpOworICogcGR0LnNldFN0YXJ0UnVsZShDYWxlbmRhci5BUFJJTCwgMSwgQ2FsZW5kYXIuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICogcGR0LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgLTEsIENhbGVuZGFyLlNVTkRBWSwgMio2MCo2MCoxMDAwKTsKKyAqIDxicj4KKyAqIC8vIEZvcm1hdCB0aGUgY3VycmVudCB0aW1lLgorICogU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIKKyAqICAgICA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0ICgieXl5eS5NTS5kZCBHICdhdCcgaGg6bW06c3MgYSB6enoiKTsKKyAqIERhdGUgY3VycmVudFRpbWVfMSA9IG5ldyBEYXRlKCk7CisgKiBTdHJpbmcgZGF0ZVN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoY3VycmVudFRpbWVfMSk7CisgKiA8YnI+CisgKiAvLyBQYXJzZSB0aGUgcHJldmlvdXMgc3RyaW5nIGJhY2sgaW50byBhIERhdGUuCisgKiBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICogRGF0ZSBjdXJyZW50VGltZV8yID0gZm9ybWF0dGVyLnBhcnNlKGRhdGVTdHJpbmcsIHBvcyk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIEluIHRoZSBleGFtcGxlLCB0aGUgdGltZSB2YWx1ZSA8Y29kZT5jdXJyZW50VGltZV8yPC9jb2RlPiBvYnRhaW5lZCBmcm9tCisgKiBwYXJzaW5nIHdpbGwgYmUgZXF1YWwgdG8gPGNvZGU+Y3VycmVudFRpbWVfMTwvY29kZT4uIEhvd2V2ZXIsIHRoZXkgbWF5IG5vdCBiZQorICogZXF1YWwgaWYgdGhlIGFtL3BtIG1hcmtlciAnYScgaXMgbGVmdCBvdXQgZnJvbSB0aGUgZm9ybWF0IHBhdHRlcm4gd2hpbGUKKyAqIHRoZSAiaG91ciBpbiBhbS9wbSIgcGF0dGVybiBzeW1ib2wgaXMgdXNlZC4gVGhpcyBpbmZvcm1hdGlvbiBsb3NzIGNhbgorICogaGFwcGVuIHdoZW4gZm9ybWF0dGluZyB0aGUgdGltZSBpbiBQTS4KKyAqCisgKiA8cD4KKyAqIFdoZW4gcGFyc2luZyBhIGRhdGUgc3RyaW5nIHVzaW5nIHRoZSBhYmJyZXZpYXRlZCB5ZWFyIHBhdHRlcm4gKCJ5eSIpLAorICogU2ltcGxlRGF0ZUZvcm1hdCBtdXN0IGludGVycHJldCB0aGUgYWJicmV2aWF0ZWQgeWVhcgorICogcmVsYXRpdmUgdG8gc29tZSBjZW50dXJ5LiAgSXQgZG9lcyB0aGlzIGJ5IGFkanVzdGluZyBkYXRlcyB0byBiZQorICogd2l0aGluIDgwIHllYXJzIGJlZm9yZSBhbmQgMjAgeWVhcnMgYWZ0ZXIgdGhlIHRpbWUgdGhlIFNpbXBsZURhdGVGb3JtYXQKKyAqIGluc3RhbmNlIGlzIGNyZWF0ZWQuIEZvciBleGFtcGxlLCB1c2luZyBhIHBhdHRlcm4gb2YgIk1NL2RkL3l5IiBhbmQgYQorICogU2ltcGxlRGF0ZUZvcm1hdCBpbnN0YW5jZSBjcmVhdGVkIG9uIEphbiAxLCAxOTk3LCAgdGhlIHN0cmluZworICogIjAxLzExLzEyIiB3b3VsZCBiZSBpbnRlcnByZXRlZCBhcyBKYW4gMTEsIDIwMTIgd2hpbGUgdGhlIHN0cmluZyAiMDUvMDQvNjQiCisgKiB3b3VsZCBiZSBpbnRlcnByZXRlZCBhcyBNYXkgNCwgMTk2NC4KKyAqIER1cmluZyBwYXJzaW5nLCBvbmx5IHN0cmluZ3MgY29uc2lzdGluZyBvZiBleGFjdGx5IHR3byBkaWdpdHMsIGFzIGRlZmluZWQgYnkKKyAqIHtAbGluayBqYXZhLmxhbmcuQ2hhcmFjdGVyI2lzRGlnaXQoY2hhcil9LCB3aWxsIGJlIHBhcnNlZCBpbnRvIHRoZSBkZWZhdWx0CisgKiBjZW50dXJ5LgorICogQW55IG90aGVyIG51bWVyaWMgc3RyaW5nLCBzdWNoIGFzIGEgb25lIGRpZ2l0IHN0cmluZywgYSB0aHJlZSBvciBtb3JlIGRpZ2l0CisgKiBzdHJpbmcsIG9yIGEgdHdvIGRpZ2l0IHN0cmluZyB0aGF0IGlzbid0IGFsbCBkaWdpdHMgKGZvciBleGFtcGxlLCAiLTEiKSwgaXMKKyAqIGludGVycHJldGVkIGxpdGVyYWxseS4gIFNvICIwMS8wMi8zIiBvciAiMDEvMDIvMDAzIiBhcmUgcGFyc2VkLCB1c2luZyB0aGUKKyAqIHNhbWUgcGF0dGVybiwgYXMgSmFuIDIsIDMgQUQuICBMaWtld2lzZSwgIjAxLzAyLy0zIiBpcyBwYXJzZWQgYXMgSmFuIDIsIDQgQkMuCisgKgorICogPHA+CisgKiBJZiB0aGUgeWVhciBwYXR0ZXJuIGRvZXMgbm90IGhhdmUgZXhhY3RseSB0d28gJ3knIGNoYXJhY3RlcnMsIHRoZSB5ZWFyIGlzCisgKiBpbnRlcnByZXRlZCBsaXRlcmFsbHksIHJlZ2FyZGxlc3Mgb2YgdGhlIG51bWJlciBvZiBkaWdpdHMuICBTbyB1c2luZyB0aGUKKyAqIHBhdHRlcm4gIk1NL2RkL3l5eXkiLCAiMDEvMTEvMTIiIHBhcnNlcyB0byBKYW4gMTEsIDEyIEEuRC4KKyAqCisgKiA8cD4KKyAqIFdoZW4gbnVtZXJpYyBmaWVsZHMgYWJ1dCBvbmUgYW5vdGhlciBkaXJlY3RseSwgd2l0aCBubyBpbnRlcnZlbmluZyBkZWxpbWl0ZXIKKyAqIGNoYXJhY3RlcnMsIHRoZXkgY29uc3RpdHV0ZSBhIHJ1biBvZiBhYnV0dGluZyBudW1lcmljIGZpZWxkcy4gIFN1Y2ggcnVucyBhcmUKKyAqIHBhcnNlZCBzcGVjaWFsbHkuICBGb3IgZXhhbXBsZSwgdGhlIGZvcm1hdCAiSEhtbXNzIiBwYXJzZXMgdGhlIGlucHV0IHRleHQKKyAqICIxMjM0NTYiIHRvIDEyOjM0OjU2LCBwYXJzZXMgdGhlIGlucHV0IHRleHQgIjEyMzQ1IiB0byAxOjIzOjQ1LCBhbmQgZmFpbHMgdG8KKyAqIHBhcnNlICIxMjM0Ii4gIEluIG90aGVyIHdvcmRzLCB0aGUgbGVmdG1vc3QgZmllbGQgb2YgdGhlIHJ1biBpcyBmbGV4aWJsZSwKKyAqIHdoaWxlIHRoZSBvdGhlcnMga2VlcCBhIGZpeGVkIHdpZHRoLiAgSWYgdGhlIHBhcnNlIGZhaWxzIGFueXdoZXJlIGluIHRoZSBydW4sCisgKiB0aGVuIHRoZSBsZWZ0bW9zdCBmaWVsZCBpcyBzaG9ydGVuZWQgYnkgb25lIGNoYXJhY3RlciwgYW5kIHRoZSBlbnRpcmUgcnVuIGlzCisgKiBwYXJzZWQgYWdhaW4uIFRoaXMgaXMgcmVwZWF0ZWQgdW50aWwgZWl0aGVyIHRoZSBwYXJzZSBzdWNjZWVkcyBvciB0aGUKKyAqIGxlZnRtb3N0IGZpZWxkIGlzIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoLiAgSWYgdGhlIHBhcnNlIHN0aWxsIGZhaWxzIGF0IHRoYXQKKyAqIHBvaW50LCB0aGUgcGFyc2Ugb2YgdGhlIHJ1biBmYWlscy4KKyAqCisgKiA8cD4KKyAqIEZvciB0aW1lIHpvbmVzIHRoYXQgaGF2ZSBubyBuYW1lcywgdXNlIHN0cmluZ3MgR01UK2hvdXJzOm1pbnV0ZXMgb3IKKyAqIEdNVC1ob3VyczptaW51dGVzLgorICoKKyAqIDxwPgorICogVGhlIGNhbGVuZGFyIGRlZmluZXMgd2hhdCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLCB0aGUgZmlyc3Qgd2VlaworICogb2YgdGhlIHllYXIsIHdoZXRoZXIgaG91cnMgYXJlIHplcm8gYmFzZWQgb3Igbm90ICgwIHZzIDEyIG9yIDI0KSwgYW5kIHRoZQorICogdGltZSB6b25lLiBUaGVyZSBpcyBvbmUgY29tbW9uIGRlY2ltYWwgZm9ybWF0IHRvIGhhbmRsZSBhbGwgdGhlIG51bWJlcnM7CisgKiB0aGUgZGlnaXQgY291bnQgaXMgaGFuZGxlZCBwcm9ncmFtbWF0aWNhbGx5IGFjY29yZGluZyB0byB0aGUgcGF0dGVybi4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqCisgKiBEYXRlIGZvcm1hdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZQorICogZm9ybWF0IGluc3RhbmNlcyBmb3IgZWFjaCB0aHJlYWQuIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0CisgKiBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkIGV4dGVybmFsbHkuCisgKgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzCisgKiBAc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBTaW1wbGVEYXRlRm9ybWF0IGV4dGVuZHMgRGF0ZUZvcm1hdCB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBkZWZhdWx0IHBhdHRlcm4gZm9yIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlLiAgPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgc3VwZXIobmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBpbiB0aGUgZGVmYXVsdAorICAgICAqIGxvY2FsZS4gIDxiPk5vdGU6PC9iPiBOb3QgYWxsIGxvY2FsZXMgc3VwcG9ydCBTaW1wbGVEYXRlRm9ybWF0OyBmb3IgZnVsbAorICAgICAqIGdlbmVyYWxpdHksIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIGluIHRoZSBEYXRlRm9ybWF0IGNsYXNzLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIHRvIHVzZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHN1cGVyKG5ldyBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCBsb2NhbGUuCisgICAgICogPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHBhcmFtIGxvYyB0aGUgbG9jYWxlIHRvIHVzZSBmb3IgbG9jYWxpemF0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2MpIHsKKyAgICAgICAgc3VwZXIobmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIGxvYykpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgbG9jYWxlLgorICAgICAqIDxiPk5vdGU6PC9iPiBOb3QgYWxsIGxvY2FsZXMgc3VwcG9ydCBTaW1wbGVEYXRlRm9ybWF0OyBmb3IgZnVsbAorICAgICAqIGdlbmVyYWxpdHksIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIGluIHRoZSBEYXRlRm9ybWF0IGNsYXNzLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIHRvIHVzZQorICAgICAqIEBwYXJhbSBsb2MgdGhlIHVsb2NhbGUgdG8gdXNlIGZvciBsb2NhbGl6YXRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBVTG9jYWxlIGxvYykgeworICAgICAgICB0aGlzKHBhdHRlcm4sIGxvYy50b0xvY2FsZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gYW5kCisgICAgICogbG9jYWxlLXNwZWNpZmljIHN5bWJvbCBkYXRhLgorICAgICAqIFdhcm5pbmc6IHVzZXMgZGVmYXVsdCBsb2NhbGUgZm9yIGRpZ2l0cyEKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiB0byB1c2UKKyAgICAgKiBAcGFyYW0gZm9ybWF0RGF0YSB0aGUgc3ltYm9scyB0byB1c2UgZm9yIGxvY2FsaXphdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhKSB7CisgICAgICAgIHN1cGVyKG5ldyBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBmb3JtYXREYXRhLmRmcykpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgMTAwLXllYXIgcGVyaW9kIDItZGlnaXQgeWVhcnMgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBiZWluZyBpbgorICAgICAqIHRvIGJlZ2luIG9uIHRoZSBkYXRlIHRoZSB1c2VyIHNwZWNpZmllcy4KKyAgICAgKiBAcGFyYW0gc3RhcnREYXRlIER1cmluZyBwYXJzaW5nLCB0d28gZGlnaXQgeWVhcnMgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIHJhbmdlCisgICAgICogPGNvZGU+c3RhcnREYXRlPC9jb2RlPiB0byA8Y29kZT5zdGFydERhdGUgKyAxMDAgeWVhcnM8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldDJEaWdpdFllYXJTdGFydChEYXRlIHN0YXJ0RGF0ZSkgeworICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLnNldDJEaWdpdFllYXJTdGFydChzdGFydERhdGUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYmVnaW5uaW5nIGRhdGUgb2YgdGhlIDEwMC15ZWFyIHBlcmlvZCAyLWRpZ2l0IHllYXJzIGFyZSBpbnRlcnByZXRlZAorICAgICAqIGFzIGJlaW5nIHdpdGhpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgMTAwLXllYXIgcGVyaW9kIGludG8gd2hpY2ggdHdvIGRpZ2l0IHllYXJzIGFyZQorICAgICAqIHBhcnNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGdldDJEaWdpdFllYXJTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZGF0ZUZvcm1hdCkuZ2V0MkRpZ2l0WWVhclN0YXJ0KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgRGF0ZUZvcm1hdC4KKyAgICAgKiA8cD5Gb3JtYXRzIGEgZGF0ZSBvciB0aW1lLCB3aGljaCBpcyB0aGUgc3RhbmRhcmQgbWlsbGlzCisgICAgICogc2luY2UgSmFudWFyeSAxLCAxOTcwLCAwMDowMDowMCBHTVQuCisgICAgICogPHA+RXhhbXBsZTogdXNpbmcgdGhlIFVTIGxvY2FsZToKKyAgICAgKiAieXl5eS5NTS5kZCBHICdhdCcgSEg6bW06c3Mgenp6IiAtPj4gMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQKKyAgICAgKiBAcGFyYW0gY2FsIHRoZSBjYWxlbmRhciB3aG9zZSBkYXRlLXRpbWUgdmFsdWUgaXMgdG8gYmUgZm9ybWF0dGVkIGludG8gYSBkYXRlLXRpbWUgc3RyaW5nCisgICAgICogQHBhcmFtIHRvQXBwZW5kVG8gd2hlcmUgdGhlIG5ldyBkYXRlLXRpbWUgdGV4dCBpcyB0byBiZSBhcHBlbmRlZAorICAgICAqIEBwYXJhbSBwb3MgdGhlIGZvcm1hdHRpbmcgcG9zaXRpb24uIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlLXRpbWUgc3RyaW5nLgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KENhbGVuZGFyIGNhbCwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQ7CisgICAgICAgIHN5bmNocm9uaXplZChkYXRlRm9ybWF0KSB7CisgICAgICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgb2xkQ2FsID0gZGF0ZUZvcm1hdC5nZXRDYWxlbmRhcigpOworICAgICAgICAgICAgZGF0ZUZvcm1hdC5zZXRDYWxlbmRhcihjYWwuY2FsZW5kYXIpOworICAgICAgICAgICAgcmVzdWx0ID0gZGF0ZUZvcm1hdC5mb3JtYXQoY2FsLmdldFRpbWUoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgICAgIGRhdGVGb3JtYXQuc2V0Q2FsZW5kYXIob2xkQ2FsKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIERhdGVGb3JtYXQKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXJzZShTdHJpbmcgdGV4dCwgQ2FsZW5kYXIgY2FsLCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zKSB7CisgICAgICAgIC8vIFRPRE86IGNhbm5vdCBzZXQgdGhlIHBhcnNlZCB0aW1lem9uZSwgZG9jdW1lbnQ/CisgICAgICAgIGNhbC5zZXRUaW1lKGRhdGVGb3JtYXQucGFyc2UodGV4dCwgcGFyc2VQb3MpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHBhdHRlcm4gc3RyaW5nIGRlc2NyaWJpbmcgdGhpcyBkYXRlIGZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZGF0ZUZvcm1hdCkudG9QYXR0ZXJuKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgZGVzY3JpYmluZyB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiB1bmxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyB0byB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiBsb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgdG8gdGhpcyBkYXRlIGZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseUxvY2FsaXplZFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS5hcHBseUxvY2FsaXplZFBhdHRlcm4ocGF0dGVybik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGluZyBkYXRhLgorICAgICAqIEByZXR1cm4gYSBjb3B5IG9mIHRoZSBkYXRlLXRpbWUgZm9ybWF0dGluZyBkYXRhIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoaXMgZGF0ZS10aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMgZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS5nZXREYXRlRm9ybWF0U3ltYm9scygpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBkYXRlL3RpbWUgZm9ybWF0dGluZyBkYXRhLgorICAgICAqIEBwYXJhbSBuZXdGb3JtYXRTeW1ib2xzIHRoZSBuZXcgc3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGVGb3JtYXRTeW1ib2xzKERhdGVGb3JtYXRTeW1ib2xzIG5ld0Zvcm1hdFN5bWJvbHMpIHsKKyAgICAgICAgKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS5zZXREYXRlRm9ybWF0U3ltYm9scyhuZXdGb3JtYXRTeW1ib2xzLmRmcyk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVEYXRlRm9ybWF0KChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0LmNsb25lKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRm9yIGNsb25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBzZGYKKyAgICAgKi8KKyAgICBwcml2YXRlIFNpbXBsZURhdGVGb3JtYXQoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQgc2RmKSB7CisgICAgICAgIHN1cGVyKHNkZik7CisgICAgfQorICAgICAgICAKKyAgICAvLyBoYXNoQ29kZSwgZXF1YWxzLCBjbG9uZSB1c2UgRGF0ZUZvcm1hdCBpbXBsZW1lbnRhdGlvbi4KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ODA5NmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsMjExOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworCisvKioKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb252ZXJ0aW5nIGJldHdlZW4KKyAqIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IGFuZCBhIHNldCBvZiBpbnRlZ2VyIGZpZWxkcyBzdWNoIGFzCisgKiA8Y29kZT5ZRUFSPC9jb2RlPiwgPGNvZGU+TU9OVEg8L2NvZGU+LCA8Y29kZT5EQVk8L2NvZGU+LCA8Y29kZT5IT1VSPC9jb2RlPiwKKyAqIGFuZCBzbyBvbi4gKEEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBpbnN0YW50IGluCisgKiB0aW1lIHdpdGggbWlsbGlzZWNvbmQgcHJlY2lzaW9uLiBTZWUKKyAqIHtAbGluayBEYXRlfQorICogZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSA8Y29kZT5EYXRlPC9jb2RlPiBjbGFzcy4pCisgKgorICogPHA+PGI+Tm90ZTo8L2I+ICBUaGlzIGNsYXNzIGlzIHNpbWlsYXIsIGJ1dCBub3QgaWRlbnRpY2FsLCB0byB0aGUgY2xhc3MKKyAqIDxjb2RlPmphdmEudXRpbC5DYWxlbmRhcjwvY29kZT4uICBDaGFuZ2VzIGFyZSBkZXRhaWxlZCBiZWxvdy4KKyAqCisgKiA8cD4KKyAqIFN1YmNsYXNzZXMgb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGludGVycHJldCBhIDxjb2RlPkRhdGU8L2NvZGU+CisgKiBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIGEgc3BlY2lmaWMgY2FsZW5kYXIgc3lzdGVtLiAgSUNVNEogY29udGFpbnMKKyAqIHNldmVyYWwgc3ViY2xhc3NlcyBpbXBsZW1lbnRpbmcgZGlmZmVyZW50IGludGVybmF0aW9uYWwgY2FsZW5kYXIgc3lzdGVtcy4KKyAqCisgKiA8cD4KKyAqIExpa2Ugb3RoZXIgbG9jYWxlLXNlbnNpdGl2ZSBjbGFzc2VzLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gcHJvdmlkZXMgYQorICogY2xhc3MgbWV0aG9kLCA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4sIGZvciBnZXR0aW5nIGEgZ2VuZXJhbGx5IHVzZWZ1bAorICogb2JqZWN0IG9mIHRoaXMgdHlwZS4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+J3MgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IG1ldGhvZAorICogcmV0dXJucyBhIGNhbGVuZGFyIG9mIGEgdHlwZSBhcHByb3ByaWF0ZSB0byB0aGUgbG9jYWxlLCB3aG9zZQorICogdGltZSBmaWVsZHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGggdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT5DYWxlbmRhciByaWdodE5vdyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5XaGVuIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4gaXMgdXNlZCBieSA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4sIGl0cworICogJzxjb2RlPmNhbGVuZGFyPC9jb2RlPicgdGFnIGFuZCB2YWx1ZSBhcmUgcmV0cmlldmVkIGlmIHByZXNlbnQuICBJZiBhIHJlY29nbml6ZWQKKyAqIHZhbHVlIGlzIHN1cHBsaWVkLCBhIGNhbGVuZGFyIGlzIHByb3ZpZGVkIGFuZCBjb25maWd1cmVkIGFzIGFwcHJvcHJpYXRlLgorICogQ3VycmVudGx5IHJlY29nbml6ZWQgdGFncyBhcmUgImJ1ZGRoaXN0IiwgImNoaW5lc2UiLCAiY29wdGljIiwgImV0aGlvcGljIiwgCisgKiAiZ3JlZ29yaWFuIiwgImhlYnJldyIsICJpc2xhbWljIiwgImlzbGFtaWMtY2l2aWwiLCBhbmQgImphcGFuZXNlIi4gIEZvcgorICogZXhhbXBsZTogPGJsb2NrcXVvdGU+CisgKiA8cHJlPkNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKG5ldyBVTG9jYWxlKCJlbl9VU0BjYWxlbmRhcj1qYXBhbmVzZSIpKTs8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4gd2lsbCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgSmFwYW5lc2VDYWxlbmRhciAodXNpbmcgZW5fVVMgY29udmVudGlvbnMgZm9yCisgKiBtaW5pbXVtIGRheXMgaW4gZmlyc3Qgd2Vlaywgc3RhcnQgZGF5IG9mIHdlZWssIGV0IGNldGVyYSkuCisgKgorICogPHA+QSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gb2JqZWN0IGNhbiBwcm9kdWNlIGFsbCB0aGUgdGltZSBmaWVsZCB2YWx1ZXMKKyAqIG5lZWRlZCB0byBpbXBsZW1lbnQgdGhlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGZvciBhIHBhcnRpY3VsYXIgbGFuZ3VhZ2UgYW5kCisgKiBjYWxlbmRhciBzdHlsZSAoZm9yIGV4YW1wbGUsIEphcGFuZXNlLUdyZWdvcmlhbiwgSmFwYW5lc2UtVHJhZGl0aW9uYWwpLgorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRlZmluZXMgdGhlIHJhbmdlIG9mIHZhbHVlcyByZXR1cm5lZCBieSBjZXJ0YWluIGZpZWxkcywKKyAqIGFzIHdlbGwgYXMgdGhlaXIgbWVhbmluZy4gIEZvciBleGFtcGxlLCB0aGUgZmlyc3QgbW9udGggb2YgdGhlIHllYXIgaGFzIHZhbHVlCisgKiA8Y29kZT5NT05USDwvY29kZT4gPT0gPGNvZGU+SkFOVUFSWTwvY29kZT4gZm9yIGFsbCBjYWxlbmRhcnMuICBPdGhlciB2YWx1ZXMKKyAqIGFyZSBkZWZpbmVkIGJ5IHRoZSBjb25jcmV0ZSBzdWJjbGFzcywgc3VjaCBhcyA8Y29kZT5FUkE8L2NvZGU+IGFuZAorICogPGNvZGU+WUVBUjwvY29kZT4uICBTZWUgaW5kaXZpZHVhbCBmaWVsZCBkb2N1bWVudGF0aW9uIGFuZCBzdWJjbGFzcworICogZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4KKyAqCisgKiA8cD5XaGVuIGEgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIDxlbT5sZW5pZW50PC9lbT4sIGl0IGFjY2VwdHMgYSB3aWRlciByYW5nZQorICogb2YgZmllbGQgdmFsdWVzIHRoYW4gaXQgcHJvZHVjZXMuICBGb3IgZXhhbXBsZSwgYSBsZW5pZW50CisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gaW50ZXJwcmV0cyA8Y29kZT5NT05USDwvY29kZT4gPT0KKyAqIDxjb2RlPkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+ID09IDMyIGFzIEZlYnJ1YXJ5IDEuICBBCisgKiBub24tbGVuaWVudCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGdpdmVuCisgKiBvdXQtb2YtcmFuZ2UgZmllbGQgc2V0dGluZ3MuICBXaGVuIGNhbGVuZGFycyByZWNvbXB1dGUgZmllbGQgdmFsdWVzIGZvcgorICogcmV0dXJuIGJ5IDxjb2RlPmdldCgpPC9jb2RlPiwgdGhleSBub3JtYWxpemUgdGhlbS4gIEZvciBleGFtcGxlLCBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gYWx3YXlzIHByb2R1Y2VzIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4KKyAqIHZhbHVlcyBiZXR3ZWVuIDEgYW5kIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoLgorICoKKyAqIDxwPjxjb2RlPkNhbGVuZGFyPC9jb2RlPiBkZWZpbmVzIGEgbG9jYWxlLXNwZWNpZmljIHNldmVuIGRheSB3ZWVrIHVzaW5nIHR3bworICogcGFyYW1ldGVyczogdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBhbmQgdGhlIG1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrCisgKiAoZnJvbSAxIHRvIDcpLiAgVGhlc2UgbnVtYmVycyBhcmUgdGFrZW4gZnJvbSB0aGUgbG9jYWxlIHJlc291cmNlIGRhdGEgd2hlbiBhCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgY29uc3RydWN0ZWQuICBUaGV5IG1heSBhbHNvIGJlIHNwZWNpZmllZCBleHBsaWNpdGx5CisgKiB0aHJvdWdoIHRoZSBBUEkuCisgKgorICogPHA+V2hlbiBzZXR0aW5nIG9yIGdldHRpbmcgdGhlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IG9yCisgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+IGZpZWxkcywgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG11c3QgZGV0ZXJtaW5lIHRoZQorICogZmlyc3Qgd2VlayBvZiB0aGUgbW9udGggb3IgeWVhciBhcyBhIHJlZmVyZW5jZSBwb2ludC4gIFRoZSBmaXJzdCB3ZWVrIG9mIGEKKyAqIG1vbnRoIG9yIHllYXIgaXMgZGVmaW5lZCBhcyB0aGUgZWFybGllc3Qgc2V2ZW4gZGF5IHBlcmlvZCBiZWdpbm5pbmcgb24KKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGFuZCBjb250YWluaW5nIGF0IGxlYXN0CisgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+IGRheXMgb2YgdGhhdCBtb250aCBvciB5ZWFyLiAgV2Vla3MKKyAqIG51bWJlcmVkIC4uLiwgLTEsIDAgcHJlY2VkZSB0aGUgZmlyc3Qgd2Vlazsgd2Vla3MgbnVtYmVyZWQgMiwgMywuLi4gZm9sbG93CisgKiBpdC4gIE5vdGUgdGhhdCB0aGUgbm9ybWFsaXplZCBudW1iZXJpbmcgcmV0dXJuZWQgYnkgPGNvZGU+Z2V0KCk8L2NvZGU+IG1heSBiZQorICogZGlmZmVyZW50LiAgRm9yIGV4YW1wbGUsIGEgc3BlY2lmaWMgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHN1YmNsYXNzIG1heQorICogZGVzaWduYXRlIHRoZSB3ZWVrIGJlZm9yZSB3ZWVrIDEgb2YgYSB5ZWFyIGFzIHdlZWsgPGVtPm48L2VtPiBvZiB0aGUgcHJldmlvdXMKKyAqIHllYXIuCisgKgorICogPHA+IFdoZW4gY29tcHV0aW5nIGEgPGNvZGU+RGF0ZTwvY29kZT4gZnJvbSB0aW1lIGZpZWxkcywgdHdvIHNwZWNpYWwKKyAqIGNpcmN1bXN0YW5jZXMgbWF5IGFyaXNlOiB0aGVyZSBtYXkgYmUgaW5zdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgdGhlCisgKiA8Y29kZT5EYXRlPC9jb2RlPiAoc3VjaCBhcyBvbmx5IHllYXIgYW5kIG1vbnRoIGJ1dCBubyBkYXkgaW4gdGhlIG1vbnRoKSwgb3IKKyAqIHRoZXJlIG1heSBiZSBpbmNvbnNpc3RlbnQgaW5mb3JtYXRpb24gKHN1Y2ggYXMgIlR1ZXNkYXksIEp1bHkgMTUsIDE5OTYiIC0tCisgKiBKdWx5IDE1LCAxOTk2IGlzIGFjdHVhbGx5IGEgTW9uZGF5KS4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+SW5zdWZmaWNpZW50IGluZm9ybWF0aW9uLjwvc3Ryb25nPiBUaGUgY2FsZW5kYXIgd2lsbCB1c2UgZGVmYXVsdAorICogaW5mb3JtYXRpb24gdG8gc3BlY2lmeSB0aGUgbWlzc2luZyBmaWVsZHMuIFRoaXMgbWF5IHZhcnkgYnkgY2FsZW5kYXI7IGZvcgorICogdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgdGhlIGRlZmF1bHQgZm9yIGEgZmllbGQgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBlcG9jaDogaS5lLiwgWUVBUiA9IDE5NzAsIE1PTlRIID0gSkFOVUFSWSwgREFURSA9IDEsIGV0Yy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+SW5jb25zaXN0ZW50IGluZm9ybWF0aW9uLjwvc3Ryb25nPiBJZiBmaWVsZHMgY29uZmxpY3QsIHRoZSBjYWxlbmRhcgorICogd2lsbCBnaXZlIHByZWZlcmVuY2UgdG8gZmllbGRzIHNldCBtb3JlIHJlY2VudGx5LiBGb3IgZXhhbXBsZSwgd2hlbgorICogZGV0ZXJtaW5pbmcgdGhlIGRheSwgdGhlIGNhbGVuZGFyIHdpbGwgbG9vayBmb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAqIGNvbWJpbmF0aW9ucyBvZiBmaWVsZHMuICBUaGUgbW9zdCByZWNlbnQgY29tYmluYXRpb24sIGFzIGRldGVybWluZWQgYnkgdGhlCisgKiBtb3N0IHJlY2VudGx5IHNldCBzaW5nbGUgZmllbGQsIHdpbGwgYmUgdXNlZC4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBNT05USCArIERBWV9PRl9NT05USAorICogTU9OVEggKyBXRUVLX09GX01PTlRIICsgREFZX09GX1dFRUsKKyAqIE1PTlRIICsgREFZX09GX1dFRUtfSU5fTU9OVEggKyBEQVlfT0ZfV0VFSworICogREFZX09GX1lFQVIKKyAqIERBWV9PRl9XRUVLICsgV0VFS19PRl9ZRUFSPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogRm9yIHRoZSB0aW1lIG9mIGRheToKKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBIT1VSX09GX0RBWQorICogQU1fUE0gKyBIT1VSPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IGZvciBzb21lIG5vbi1HcmVnb3JpYW4gY2FsZW5kYXJzLCBkaWZmZXJlbnQKKyAqIGZpZWxkcyBtYXkgYmUgbmVjZXNzYXJ5IGZvciBjb21wbGV0ZSBkaXNhbWJpZ3VhdGlvbi4gRm9yIGV4YW1wbGUsIGEgZnVsbAorICogc3BlY2lmaWNhdGlvbiBvZiB0aGUgaGlzdG9yaWFsIEFyYWJpYyBhc3Ryb25vbWljYWwgY2FsZW5kYXIgcmVxdWlyZXMgeWVhciwKKyAqIG1vbnRoLCBkYXktb2YtbW9udGggPGVtPmFuZDwvZW0+IGRheS1vZi13ZWVrIGluIHNvbWUgY2FzZXMuCisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZXJlIGFyZSBjZXJ0YWluIHBvc3NpYmxlIGFtYmlndWl0aWVzIGluCisgKiBpbnRlcnByZXRhdGlvbiBvZiBjZXJ0YWluIHNpbmd1bGFyIHRpbWVzLCB3aGljaCBhcmUgcmVzb2x2ZWQgaW4gdGhlCisgKiBmb2xsb3dpbmcgd2F5czoKKyAqIDxvbD4KKyAqICAgICA8bGk+IDI0OjAwOjAwICJiZWxvbmdzIiB0byB0aGUgZm9sbG93aW5nIGRheS4gVGhhdCBpcywKKyAqICAgICAgICAgIDIzOjU5IG9uIERlYyAzMSwgMTk2OSAmbHQ7IDI0OjAwIG9uIEphbiAxLCAxOTcwICZsdDsgMjQ6MDE6MDAgb24gSmFuIDEsIDE5NzAKKyAqCisgKiAgICAgPGxpPiBBbHRob3VnaCBoaXN0b3JpY2FsbHkgbm90IHByZWNpc2UsIG1pZG5pZ2h0IGFsc28gYmVsb25ncyB0byAiYW0iLAorICogICAgICAgICAgYW5kIG5vb24gYmVsb25ncyB0byAicG0iLCBzbyBvbiB0aGUgc2FtZSBkYXksCisgKiAgICAgICAgICAxMjowMCBhbSAobWlkbmlnaHQpICZsdDsgMTI6MDEgYW0sIGFuZCAxMjowMCBwbSAobm9vbikgJmx0OyAxMjowMSBwbQorICogPC9vbD4KKyAqCisgKiA8cD4KKyAqIFRoZSBkYXRlIG9yIHRpbWUgZm9ybWF0IHN0cmluZ3MgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkZWZpbml0aW9uIG9mIGEKKyAqIGNhbGVuZGFyLCBhcyB0aG9zZSBtdXN0IGJlIG1vZGlmaWFibGUgb3Igb3ZlcnJpZGFibGUgYnkgdGhlIHVzZXIgYXQKKyAqIHJ1bnRpbWUuIFVzZSB7QGxpbmsgRGF0ZUZvcm1hdH0KKyAqIHRvIGZvcm1hdCBkYXRlcy4KKyAqCisgKiA8cD48c3Ryb25nPkZpZWxkIG1hbmlwdWxhdGlvbiBtZXRob2RzPC9zdHJvbmc+PC9wPgorICoKKyAqIDxwPjxjb2RlPkNhbGVuZGFyPC9jb2RlPiBmaWVsZHMgY2FuIGJlIGNoYW5nZWQgdXNpbmcgdGhyZWUgbWV0aG9kczoKKyAqIDxjb2RlPnNldCgpPC9jb2RlPiwgPGNvZGU+YWRkKCk8L2NvZGU+LCBhbmQgPGNvZGU+cm9sbCgpPC9jb2RlPi48L3A+CisgKgorICogPHA+PHN0cm9uZz48Y29kZT5zZXQoZiwgdmFsdWUpPC9jb2RlPjwvc3Ryb25nPiBjaGFuZ2VzIGZpZWxkCisgKiA8Y29kZT5mPC9jb2RlPiB0byA8Y29kZT52YWx1ZTwvY29kZT4uICBJbiBhZGRpdGlvbiwgaXQgc2V0cyBhbgorICogaW50ZXJuYWwgbWVtYmVyIHZhcmlhYmxlIHRvIGluZGljYXRlIHRoYXQgZmllbGQgPGNvZGU+ZjwvY29kZT4gaGFzCisgKiBiZWVuIGNoYW5nZWQuIEFsdGhvdWdoIGZpZWxkIDxjb2RlPmY8L2NvZGU+IGlzIGNoYW5nZWQgaW1tZWRpYXRlbHksCisgKiB0aGUgY2FsZW5kYXIncyBtaWxsaXNlY29uZHMgaXMgbm90IHJlY29tcHV0ZWQgdW50aWwgdGhlIG5leHQgY2FsbCB0bworICogPGNvZGU+Z2V0KCk8L2NvZGU+LCA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+LCBvcgorICogPGNvZGU+Z2V0VGltZUluTWlsbGlzKCk8L2NvZGU+IGlzIG1hZGUuIFRodXMsIG11bHRpcGxlIGNhbGxzIHRvCisgKiA8Y29kZT5zZXQoKTwvY29kZT4gZG8gbm90IHRyaWdnZXIgbXVsdGlwbGUsIHVubmVjZXNzYXJ5CisgKiBjb21wdXRhdGlvbnMuIEFzIGEgcmVzdWx0IG9mIGNoYW5naW5nIGEgZmllbGQgdXNpbmcKKyAqIDxjb2RlPnNldCgpPC9jb2RlPiwgb3RoZXIgZmllbGRzIG1heSBhbHNvIGNoYW5nZSwgZGVwZW5kaW5nIG9uIHRoZQorICogZmllbGQsIHRoZSBmaWVsZCB2YWx1ZSwgYW5kIHRoZSBjYWxlbmRhciBzeXN0ZW0uIEluIGFkZGl0aW9uLAorICogPGNvZGU+Z2V0KGYpPC9jb2RlPiB3aWxsIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gPGNvZGU+dmFsdWU8L2NvZGU+CisgKiBhZnRlciB0aGUgZmllbGRzIGhhdmUgYmVlbiByZWNvbXB1dGVkLiBUaGUgc3BlY2lmaWNzIGFyZSBkZXRlcm1pbmVkIGJ5CisgKiB0aGUgY29uY3JldGUgY2FsZW5kYXIgY2xhc3MuPC9wPgorICoKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBBdWd1c3QgMzEsIDE5OTkuIENhbGxpbmcgPGNvZGU+c2V0KENhbGVuZGFyLk1PTlRILAorICogQ2FsZW5kYXIuU0VQVEVNQkVSKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMxLAorICogMTk5OS4gVGhpcyBpcyBhIHRlbXBvcmFyeSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiB0aGF0IHJlc29sdmVzIHRvCisgKiBPY3RvYmVyIDEsIDE5OTkgaWYgPGNvZGU+Z2V0VGltZSgpPC9jb2RlPmlzIHRoZW4gY2FsbGVkLiBIb3dldmVyLCBhCisgKiBjYWxsIHRvIDxjb2RlPnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDMwKTwvY29kZT4gYmVmb3JlIHRoZSBjYWxsIHRvCisgKiA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIFNlcHRlbWJlciAzMCwgMTk5OSwgc2luY2UKKyAqIG5vIHJlY29tcHV0YXRpb24gb2NjdXJzIGFmdGVyIDxjb2RlPnNldCgpPC9jb2RlPiBpdHNlbGYuPC9wPgorICoKKyAqIDxwPjxzdHJvbmc+PGNvZGU+YWRkKGYsIGRlbHRhKTwvY29kZT48L3N0cm9uZz4gYWRkcyA8Y29kZT5kZWx0YTwvY29kZT4KKyAqIHRvIGZpZWxkIDxjb2RlPmY8L2NvZGU+LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPGNvZGU+c2V0KGYsCisgKiBnZXQoZikgKyBkZWx0YSk8L2NvZGU+IHdpdGggdHdvIGFkanVzdG1lbnRzOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHA+PHN0cm9uZz5BZGQgcnVsZSAxPC9zdHJvbmc+LiBUaGUgdmFsdWUgb2YgZmllbGQgPGNvZGU+ZjwvY29kZT4KKyAqICAgYWZ0ZXIgdGhlIGNhbGwgbWludXMgdGhlIHZhbHVlIG9mIGZpZWxkIDxjb2RlPmY8L2NvZGU+IGJlZm9yZSB0aGUKKyAqICAgY2FsbCBpcyA8Y29kZT5kZWx0YTwvY29kZT4sIG1vZHVsbyBhbnkgb3ZlcmZsb3cgdGhhdCBoYXMgb2NjdXJyZWQgaW4KKyAqICAgZmllbGQgPGNvZGU+ZjwvY29kZT4uIE92ZXJmbG93IG9jY3VycyB3aGVuIGEgZmllbGQgdmFsdWUgZXhjZWVkcyBpdHMKKyAqICAgcmFuZ2UgYW5kLCBhcyBhIHJlc3VsdCwgdGhlIG5leHQgbGFyZ2VyIGZpZWxkIGlzIGluY3JlbWVudGVkIG9yCisgKiAgIGRlY3JlbWVudGVkIGFuZCB0aGUgZmllbGQgdmFsdWUgaXMgYWRqdXN0ZWQgYmFjayBpbnRvIGl0cyByYW5nZS48L3A+CisgKgorICogICA8cD48c3Ryb25nPkFkZCBydWxlIDI8L3N0cm9uZz4uIElmIGEgc21hbGxlciBmaWVsZCBpcyBleHBlY3RlZCB0byBiZQorICogICBpbnZhcmlhbnQsIGJ1dCAmbmJzcDsgaXQgaXMgaW1wb3NzaWJsZSBmb3IgaXQgdG8gYmUgZXF1YWwgdG8gaXRzCisgKiAgIHByaW9yIHZhbHVlIGJlY2F1c2Ugb2YgY2hhbmdlcyBpbiBpdHMgbWluaW11bSBvciBtYXhpbXVtIGFmdGVyIGZpZWxkCisgKiAgIDxjb2RlPmY8L2NvZGU+IGlzIGNoYW5nZWQsIHRoZW4gaXRzIHZhbHVlIGlzIGFkanVzdGVkIHRvIGJlIGFzIGNsb3NlCisgKiAgIGFzIHBvc3NpYmxlIHRvIGl0cyBleHBlY3RlZCB2YWx1ZS4gQSBzbWFsbGVyIGZpZWxkIHJlcHJlc2VudHMgYQorICogICBzbWFsbGVyIHVuaXQgb2YgdGltZS4gPGNvZGU+SE9VUjwvY29kZT4gaXMgYSBzbWFsbGVyIGZpZWxkIHRoYW4KKyAqICAgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPi4gTm8gYWRqdXN0bWVudCBpcyBtYWRlIHRvIHNtYWxsZXIgZmllbGRzCisgKiAgIHRoYXQgYXJlIG5vdCBleHBlY3RlZCB0byBiZSBpbnZhcmlhbnQuIFRoZSBjYWxlbmRhciBzeXN0ZW0KKyAqICAgZGV0ZXJtaW5lcyB3aGF0IGZpZWxkcyBhcmUgZXhwZWN0ZWQgdG8gYmUgaW52YXJpYW50LjwvcD4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5JbiBhZGRpdGlvbiwgdW5saWtlIDxjb2RlPnNldCgpPC9jb2RlPiwgPGNvZGU+YWRkKCk8L2NvZGU+IGZvcmNlcworICogYW4gaW1tZWRpYXRlIHJlY29tcHV0YXRpb24gb2YgdGhlIGNhbGVuZGFyJ3MgbWlsbGlzZWNvbmRzIGFuZCBhbGwKKyAqIGZpZWxkcy48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5hZGQoQ2FsZW5kYXIuTU9OVEgsCisgKiAxMyk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIFNlcHRlbWJlciAzMCwgMjAwMC4gPHN0cm9uZz5BZGQgcnVsZQorICogMTwvc3Ryb25nPiBzZXRzIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgdG8gU2VwdGVtYmVyLCBzaW5jZQorICogYWRkaW5nIDEzIG1vbnRocyB0byBBdWd1c3QgZ2l2ZXMgU2VwdGVtYmVyIG9mIHRoZSBuZXh0IHllYXIuIFNpbmNlCisgKiA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IGNhbm5vdCBiZSAzMSBpbiBTZXB0ZW1iZXIgaW4gYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LCA8c3Ryb25nPmFkZCBydWxlIDI8L3N0cm9uZz4gc2V0cyB0aGUKKyAqIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gdG8gMzAsIHRoZSBjbG9zZXN0IHBvc3NpYmxlIHZhbHVlLiBBbHRob3VnaAorICogaXQgaXMgYSBzbWFsbGVyIGZpZWxkLCA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gaXMgbm90IGFkanVzdGVkIGJ5CisgKiBydWxlIDIsIHNpbmNlIGl0IGlzIGV4cGVjdGVkIHRvIGNoYW5nZSB3aGVuIHRoZSBtb250aCBjaGFuZ2VzIGluIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPi48L3A+CisgKgorICogPHA+PHN0cm9uZz48Y29kZT5yb2xsKGYsIGRlbHRhKTwvY29kZT48L3N0cm9uZz4gYWRkcworICogPGNvZGU+ZGVsdGE8L2NvZGU+IHRvIGZpZWxkIDxjb2RlPmY8L2NvZGU+IHdpdGhvdXQgY2hhbmdpbmcgbGFyZ2VyCisgKiBmaWVsZHMuIFRoaXMgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPmFkZChmLCBkZWx0YSk8L2NvZGU+IHdpdGgKKyAqIHRoZSBmb2xsb3dpbmcgYWRqdXN0bWVudDo8L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDxwPjxzdHJvbmc+Um9sbCBydWxlPC9zdHJvbmc+LiBMYXJnZXIgZmllbGRzIGFyZSB1bmNoYW5nZWQgYWZ0ZXIgdGhlCisgKiAgIGNhbGwuIEEgbGFyZ2VyIGZpZWxkIHJlcHJlc2VudHMgYSBsYXJnZXIgdW5pdCBvZgorICogICB0aW1lLiA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IGlzIGEgbGFyZ2VyIGZpZWxkIHRoYW4KKyAqICAgPGNvZGU+SE9VUjwvY29kZT4uPC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBBdWd1c3QgMzEsIDE5OTkuIENhbGxpbmcgPGNvZGU+cm9sbChDYWxlbmRhci5NT05USCwKKyAqIDgpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0byBBcHJpbCAzMCwgPHN0cm9uZz4xOTk5PC9zdHJvbmc+LiAgQWRkCisgKiBydWxlIDEgc2V0cyB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIHRvIEFwcmlsLiBVc2luZyBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4sIHRoZSA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IGNhbm5vdAorICogYmUgMzEgaW4gdGhlIG1vbnRoIEFwcmlsLiBBZGQgcnVsZSAyIHNldHMgaXQgdG8gdGhlIGNsb3Nlc3QgcG9zc2libGUKKyAqIHZhbHVlLCAzMC4gRmluYWxseSwgdGhlIDxzdHJvbmc+cm9sbCBydWxlPC9zdHJvbmc+IG1haW50YWlucyB0aGUKKyAqIDxjb2RlPllFQVI8L2NvZGU+IGZpZWxkIHZhbHVlIG9mIDE5OTkuPC9wPgorICoKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBTdW5kYXkgSnVuZSA2LCAxOTk5LiBDYWxsaW5nCisgKiA8Y29kZT5yb2xsKENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIC0xKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8KKyAqIFR1ZXNkYXkgSnVuZSAxLCAxOTk5LCB3aGVyZWFzIGNhbGxpbmcKKyAqIDxjb2RlPmFkZChDYWxlbmRhci5XRUVLX09GX01PTlRILCAtMSk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvCisgKiBTdW5kYXkgTWF5IDMwLCAxOTk5LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJvbGwgcnVsZSBpbXBvc2VzIGFuCisgKiBhZGRpdGlvbmFsIGNvbnN0cmFpbnQ6IFRoZSA8Y29kZT5NT05USDwvY29kZT4gbXVzdCBub3QgY2hhbmdlIHdoZW4gdGhlCisgKiA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBpcyByb2xsZWQuIFRha2VuIHRvZ2V0aGVyIHdpdGggYWRkIHJ1bGUgMSwKKyAqIHRoZSByZXN1bHRhbnQgZGF0ZSBtdXN0IGJlIGJldHdlZW4gVHVlc2RheSBKdW5lIDEgYW5kIFNhdHVyZGF5IEp1bmUKKyAqIDUuIEFjY29yZGluZyB0byBhZGQgcnVsZSAyLCB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+LCBhbiBpbnZhcmlhbnQKKyAqIHdoZW4gY2hhbmdpbmcgdGhlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+LCBpcyBzZXQgdG8gVHVlc2RheSwgdGhlCisgKiBjbG9zZXN0IHBvc3NpYmxlIHZhbHVlIHRvIFN1bmRheSAod2hlcmUgU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlCisgKiB3ZWVrKS48L3A+CisgKgorICogPHA+PHN0cm9uZz5Vc2FnZSBtb2RlbDwvc3Ryb25nPi4gVG8gbW90aXZhdGUgdGhlIGJlaGF2aW9yIG9mCisgKiA8Y29kZT5hZGQoKTwvY29kZT4gYW5kIDxjb2RlPnJvbGwoKTwvY29kZT4sIGNvbnNpZGVyIGEgdXNlciBpbnRlcmZhY2UKKyAqIGNvbXBvbmVudCB3aXRoIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgZm9yIHRoZSBtb250aCwgZGF5LCBhbmQKKyAqIHllYXIsIGFuZCBhbiB1bmRlcmx5aW5nIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPi4gSWYgdGhlCisgKiBpbnRlcmZhY2UgcmVhZHMgSmFudWFyeSAzMSwgMTk5OSBhbmQgdGhlIHVzZXIgcHJlc3NlcyB0aGUgbW9udGgKKyAqIGluY3JlbWVudCBidXR0b24sIHdoYXQgc2hvdWxkIGl0IHJlYWQ/IElmIHRoZSB1bmRlcmx5aW5nCisgKiBpbXBsZW1lbnRhdGlvbiB1c2VzIDxjb2RlPnNldCgpPC9jb2RlPiwgaXQgbWlnaHQgcmVhZCBNYXJjaCAzLCAxOTk5LiBBCisgKiBiZXR0ZXIgcmVzdWx0IHdvdWxkIGJlIEZlYnJ1YXJ5IDI4LCAxOTk5LiBGdXJ0aGVybW9yZSwgaWYgdGhlIHVzZXIKKyAqIHByZXNzZXMgdGhlIG1vbnRoIGluY3JlbWVudCBidXR0b24gYWdhaW4sIGl0IHNob3VsZCByZWFkIE1hcmNoIDMxLAorICogMTk5OSwgbm90IE1hcmNoIDI4LCAxOTk5LiBCeSBzYXZpbmcgdGhlIG9yaWdpbmFsIGRhdGUgYW5kIHVzaW5nIGVpdGhlcgorICogPGNvZGU+YWRkKCk8L2NvZGU+IG9yIDxjb2RlPnJvbGwoKTwvY29kZT4sIGRlcGVuZGluZyBvbiB3aGV0aGVyIGxhcmdlcgorICogZmllbGRzIHNob3VsZCBiZSBhZmZlY3RlZCwgdGhlIHVzZXIgaW50ZXJmYWNlIGNhbiBiZWhhdmUgYXMgbW9zdCB1c2VycworICogd2lsbCBpbnR1aXRpdmVseSBleHBlY3QuPC9wPgorICoKKyAqIDxwPjxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2Uge0BsaW5rICNyb2xsIHJvbGx9IGFuZCB7QGxpbmsgI2FkZCBhZGR9IHJhdGhlcgorICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICoKKyAqIDxwPjxiaWc+PGJpZz48Yj5DYWxlbmRhciBBcmNoaXRlY3R1cmUgaW4gSUNVNEo8L2I+PC9iaWc+PC9iaWc+PC9wPgorICoKKyAqIDxwPlJlY2VudGx5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaGFzIGNoYW5nZWQKKyAqIHNpZ25pZmljYW50bHkgaW4gb3JkZXIgdG8gYmV0dGVyIHN1cHBvcnQgc3ViY2xhc3NpbmcuIFRoZSBvcmlnaW5hbAorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGNsYXNzIHdhcyBkZXNpZ25lZCB0byBzdXBwb3J0IHN1YmNsYXNzaW5nLCBidXQKKyAqIGl0IGhhZCBvbmx5IG9uZSBpbXBsZW1lbnRlZCBzdWJjbGFzcywgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LgorICogV2l0aCB0aGUgaW1wbGVtZW50YXRpb24gb2Ygc2V2ZXJhbCBuZXcgY2FsZW5kYXIgc3ViY2xhc3NlcywgaW5jbHVkaW5nCisgKiB0aGUgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4sIDxjb2RlPkNoaW5lc2VDYWxlbmRhcjwvY29kZT4sCisgKiA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4sIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4sIGFuZAorICogPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4sIHRoZSBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4gcmV3b3JrZWQKKyAqIHRob3JvdWdobHkuIFRoaXMgc2VjdGlvbiBkZXRhaWxzIHRoZSBuZXcgc3ViY2xhc3NpbmcgQVBJIGFuZCBvdGhlcgorICogd2F5cyBpbiB3aGljaCA8Y29kZT5jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyPC9jb2RlPiBkaWZmZXJzIGZyb20KKyAqIDxjb2RlPmphdmEudXRpbC5DYWxlbmRhcjwvY29kZT4uCisgKiA8L3A+CisgKgorICogPHA+PGJpZz48Yj5DaGFuZ2VzPC9iPjwvYmlnPjwvcD4KKyAqCisgKiA8cD5PdmVydmlldyBvZiBjaGFuZ2VzIGJldHdlZW4gdGhlIGNsYXNzaWMgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiBhcmNoaXRlY3R1cmUgYW5kIHRoZSBuZXcgYXJjaGl0ZWN0dXJlLgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+ZmllbGRzW108L2NvZGU+IGFycmF5IGlzIDxjb2RlPnByaXZhdGU8L2NvZGU+IG5vdworICogICAgIGluc3RlYWQgb2YgPGNvZGU+cHJvdGVjdGVkPC9jb2RlPi4gIFN1YmNsYXNzZXMgbXVzdCBhY2Nlc3MgaXQKKyAqICAgICB1c2luZyB0aGUgbWV0aG9kcyB7QGxpbmsgI2ludGVybmFsU2V0fSBhbmQKKyAqICAgICB7QGxpbmsgI2ludGVybmFsR2V0fS4gIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzIHNob3VsZAorICogICAgIG5vdCBkaXJlY3RseSBhY2Nlc3MgZGF0YSBtZW1iZXJzLjwvbGk+CisgKgorICogICA8bGk+VGhlIDxjb2RlPnRpbWU8L2NvZGU+IGxvbmcgd29yZCBpcyA8Y29kZT5wcml2YXRlPC9jb2RlPiBub3cKKyAqICAgICBpbnN0ZWFkIG9mIDxjb2RlPnByb3RlY3RlZDwvY29kZT4uICBTdWJjbGFzc2VzIG1heSBhY2Nlc3MgaXQgdXNpbmcKKyAqICAgICB0aGUgbWV0aG9kIHtAbGluayAjaW50ZXJuYWxHZXRUaW1lSW5NaWxsaXN9LCB3aGljaCBkb2VzIG5vdAorICogICAgIHByb3Zva2UgYW4gdXBkYXRlLiA8Yj5Nb3RpdmF0aW9uOjwvYj4gU3ViY2xhc3NlcyBzaG91bGQgbm90CisgKiAgICAgZGlyZWN0bHkgYWNjZXNzIGRhdGEgbWVtYmVycy48L2xpPgorICoKKyAqICAgPGxpPlRoZSBzY29wZSBvZiByZXNwb25zaWJpbGl0eSBvZiBzdWJjbGFzc2VzIGhhcyBiZWVuIGRyYXN0aWNhbGx5CisgKiAgICAgcmVkdWNlZC4gQXMgbXVjaCBmdW5jdGlvbmFsaXR5IGFzIHBvc3NpYmxlIGlzIGltcGxlbWVudGVkIGluIHRoZQorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBiYXNlIGNsYXNzLiBBcyBhIHJlc3VsdCwgaXQgaXMgbXVjaCBlYXNpZXIKKyAqICAgICB0byBzdWJjbGFzcyA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzCisgKiAgICAgc2hvdWxkIG5vdCBoYXZlIHRvIHJlaW1wbGVtZW50IGNvbW1vbiBjb2RlLiBDZXJ0YWluIGJlaGF2aW9ycyBhcmUKKyAqICAgICBjb21tb24gYWNyb3NzIGNhbGVuZGFyIHN5c3RlbXM6IFRoZSBkZWZpbml0aW9uIGFuZCBiZWhhdmlvciBvZgorICogICAgIHdlZWstcmVsYXRlZCBmaWVsZHMgYW5kIHRpbWUgZmllbGRzLCB0aGUgYXJpdGhtZXRpYworICogICAgICh7QGxpbmsgI2FkZChpbnQsIGludCkgYWRkfSBhbmQge0BsaW5rICNyb2xsKGludCwgaW50KSByb2xsfSkgYmVoYXZpb3Igb2YgbWFueQorICogICAgIGZpZWxkcywgYW5kIHRoZSBmaWVsZCB2YWxpZGF0aW9uIHN5c3RlbS48L2xpPgorICoKKyAqICAgPGxpPlRoZSBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4gY29tcGxldGVseSByZWRlc2lnbmVkLjwvbGk+CisgKgorICogICA8bGk+VGhlIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBiYXNlIGNsYXNzIGNvbnRhaW5zIHNvbWUgR3JlZ29yaWFuCisgKiAgICAgY2FsZW5kYXIgYWxnb3JpdGhtaWMgc3VwcG9ydCB0aGF0IHN1YmNsYXNzZXMgY2FuIHVzZSAoc3BlY2lmaWNhbGx5CisgKiAgICAgaW4ge0BsaW5rICNoYW5kbGVDb21wdXRlRmllbGRzfSkuICBTdWJjbGFzc2VzIGNhbiB1c2UgdGhlCisgKiAgICAgbWV0aG9kcyA8Y29kZT5nZXRHcmVnb3JpYW5YeHgoKTwvY29kZT4gdG8gb2J0YWluIHByZWNvbXB1dGVkCisgKiAgICAgdmFsdWVzLiA8Yj5Nb3RpdmF0aW9uOjwvYj4gVGhpcyBpcyByZXF1aXJlZCBieSBhbGwKKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc3ViY2xhc3NlcyBpbiBvcmRlciB0byBpbXBsZW1lbnQgY29uc2lzdGVudAorICogICAgIHRpbWUgem9uZSBiZWhhdmlvciwgYW5kIEdyZWdvcmlhbi1kZXJpdmVkIHN5c3RlbXMgY2FuIHVzZSB0aGUKKyAqICAgICBhbHJlYWR5IGNvbXB1dGVkIGRhdGEuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+RklFTERfQ09VTlQ8L2NvZGU+IGNvbnN0YW50IGhhcyBiZWVuIHJlbW92ZWQuIFVzZQorICogICAgIHtAbGluayAjZ2V0RmllbGRDb3VudH0uICBJbiBhZGRpdGlvbiwgZnJhbWV3b3JrIEFQSSBoYXMgYmVlbgorICogICAgIGFkZGVkIHRvIGFsbG93IHN1YmNsYXNzZXMgdG8gZGVmaW5lIGFkZGl0aW9uYWwgZmllbGRzLgorICogICAgIDxiPk1vdGl2YXRpb246IDwvYj5UaGUgbnVtYmVyIG9mIGZpZWxkcyBpcyBub3QgY29uc3RhbnQgYWNyb3NzCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtcy48L2xpPgorICoKKyAqICAgPGxpPlRoZSByYW5nZSBvZiBoYW5kbGVkIGRhdGVzIGhhcyBiZWVuIG5hcnJvd2VkIGZyb20gKy8tCisgKiAgICAgfjMwMCwwMDAsMDAwIHllYXJzIHRvICsvLSB+NSwwMDAsMDAwIHllYXJzLiBJbiBwcmFjdGljYWwgdGVybXMKKyAqICAgICB0aGlzIHNob3VsZCBub3QgYWZmZWN0IGNsaWVudHMuIEhvd2V2ZXIsIGl0IGRvZXMgbWVhbiB0aGF0IGNsaWVudAorICogICAgIGNvZGUgY2Fubm90IGJlIGd1YXJhbnRlZWQgd2VsbC1iZWhhdmVkIHJlc3VsdHMgd2l0aCBkYXRlcyBzdWNoIGFzCisgKiAgICAgPGNvZGU+RGF0ZShMb25nLk1JTl9WQUxVRSk8L2NvZGU+IG9yCisgKiAgICAgPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+LiBJbnN0ZWFkLCB0aGUKKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY29uc3RhbnRzIHtAbGluayAjTUlOX0RBVEV9LAorICogICAgIHtAbGluayAjTUFYX0RBVEV9LCB7QGxpbmsgI01JTl9NSUxMSVN9LAorICogICAgIHtAbGluayAjTUFYX01JTExJU30sIHtAbGluayAjTUlOX0pVTElBTn0sIGFuZAorICogICAgIHtAbGluayAjTUFYX0pVTElBTn0gc2hvdWxkIGJlIHVzZWQuIDxiPk1vdGl2YXRpb246PC9iPiBXaXRoCisgKiAgICAgdGhlIGFkZGl0aW9uIG9mIHRoZSB7QGxpbmsgI0pVTElBTl9EQVl9IGZpZWxkLCBKdWxpYW4gZGF5CisgKiAgICAgbnVtYmVycyBtdXN0IGJlIHJlc3RyaWN0ZWQgdG8gYSAzMi1iaXQgPGNvZGU+aW50PC9jb2RlPi4gIFRoaXMKKyAqICAgICByZXN0cmljdHMgdGhlIG92ZXJhbGwgc3VwcG9ydGVkIHJhbmdlLiBGdXJ0aGVybW9yZSwgcmVzdHJpY3RpbmcKKyAqICAgICB0aGUgc3VwcG9ydGVkIHJhbmdlIHNpbXBsaWZpZXMgdGhlIGNvbXB1dGF0aW9ucyBieSByZW1vdmluZworICogICAgIHNwZWNpYWwgY2FzZSBjb2RlIHRoYXQgd2FzIHVzZWQgdG8gYWNjb21vZGF0ZSBhcml0aG1ldGljIG92ZXJmbG93CisgKiAgICAgYXQgbWlsbGlzIG5lYXIgPGNvZGU+TG9uZy5NSU5fVkFMVUU8L2NvZGU+IGFuZAorICogICAgIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPk5ldyBmaWVsZHMgYXJlIGltcGxlbWVudGVkOiB7QGxpbmsgI0pVTElBTl9EQVl9IGRlZmluZXMKKyAqICAgICBzaW5nbGUtZmllbGQgc3BlY2lmaWNhdGlvbiBvZiB0aGUKKyAqICAgICBkYXRlLiB7QGxpbmsgI01JTExJU0VDT05EU19JTl9EQVl9IGRlZmluZXMgYSBzaW5nbGUtZmllbGQKKyAqICAgICBzcGVjaWZpY2F0aW9uIG9mIHRoZSB3YWxsIHRpbWUuIHtAbGluayAjRE9XX0xPQ0FMfSBhbmQKKyAqICAgICB7QGxpbmsgI1lFQVJfV09ZfSBpbXBsZW1lbnQgbG9jYWxpemVkIGRheS1vZi13ZWVrIGFuZAorICogICAgIHdlZWstb2YteWVhciBiZWhhdmlvci48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgY2FuIGFjY2VzcyBtaWxsaXNlY29uZCBjb25zdGFudHMKKyAqICAgICB7QGxpbmsgI09ORV9TRUNPTkR9LCB7QGxpbmsgI09ORV9NSU5VVEV9LAorICogICAgIHtAbGluayAjT05FX0hPVVJ9LCB7QGxpbmsgI09ORV9EQVl9LCBhbmQKKyAqICAgICB7QGxpbmsgI09ORV9XRUVLfSBkZWZpbmVkIGluIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPk5ldyBBUEkgaGFzIGJlZW4gYWRkZWQgdG8gc3Vwb3J0IGNhbGVuZGFyLXNwZWNpZmljIHN1YmNsYXNzZXMKKyAqICAgICBvZiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPlNldmVyYWwgc3ViY2xhc3NlcyBoYXZlIGJlZW4gaW1wbGVtZW50ZWQsIHJlcHJlc2VudGluZworICogICAgIHZhcmlvdXMgaW50ZXJuYXRpb25hbCBjYWxlbmRhciBzeXN0ZW1zLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48YmlnPjxiPlN1YmNsYXNzIEFQSTwvYj48L2JpZz48L3A+CisgKgorICogPHA+VGhlIG9yaWdpbmFsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBBUEkgd2FzIGJhc2VkIG9uIHRoZSBleHBlcmllbmNlCisgKiBvZiBpbXBsZW1lbnRpbmcgYSBvbmx5IGEgc2luZ2xlIHN1YmNsYXNzLAorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LiBBcyBhIHJlc3VsdCwgYWxsIG9mIHRoZSBzdWJjbGFzc2luZworICoga2lua3MgaGFkIG5vdCBiZWVuIHdvcmtlZCBvdXQuIFRoZSBuZXcgc3ViY2xhc3NpbmcgQVBJIGhhcyBiZWVuCisgKiByZWZpbmVkIGJhc2VkIG9uIHNldmVyYWwgaW1wbGVtZW50ZWQgc3ViY2xhc3Nlcy4gVGhpcyBpbmNsdWRlcyBtZXRob2RzCisgKiB0aGF0IG11c3QgYmUgb3ZlcnJpZGRlbiBhbmQgbWV0aG9kcyBmb3Igc3ViY2xhc3NlcyB0byBjYWxsLiBTdWJjbGFzc2VzCisgKiBubyBsb25nZXIgaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIDxjb2RlPmZpZWxkczwvY29kZT4gYW5kCisgKiA8Y29kZT5zdGFtcDwvY29kZT4uIEluc3RlYWQsIHRoZXkgaGF2ZSBuZXcgQVBJIHRvIGFjY2VzcworICogdGhlc2UuIFN1YmNsYXNzZXMgYXJlIGFibGUgdG8gYWxsb2NhdGUgdGhlIDxjb2RlPmZpZWxkczwvY29kZT4gYXJyYXkKKyAqIHRocm91Z2ggYSBwcm90ZWN0ZWQgZnJhbWV3b3JrIG1ldGhvZDsgdGhpcyBhbGxvd3Mgc3ViY2xhc3NlcyB0bworICogc3BlY2lmeSBhZGRpdGlvbmFsIGZpZWxkcy4gPC9wPgorICoKKyAqIDxwPk1vcmUgZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBtb3ZlZCBpbnRvIHRoZSBiYXNlIGNsYXNzLiBUaGUgYmFzZQorICogY2xhc3Mgbm93IGNvbnRhaW5zIG11Y2ggb2YgdGhlIGNvbXB1dGF0aW9uYWwgbWFjaGluZXJ5IHRvIHN1cHBvcnQgdGhlCisgKiBHcmVnb3JpYW4gY2FsZW5kYXIuIFRoaXMgaXMgYmFzZWQgb24gdHdvIHRoaW5nczogKDEpIE1hbnkgY2FsZW5kYXJzCisgKiBhcmUgYmFzZWQgb24gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciAoc3VjaCBhcyB0aGUgQnVkZGhpc3QgYW5kIEphcGFuZXNlCisgKiBpbXBlcmlhbCBjYWxlbmRhcnMpLiAoMikgPGVtPkFsbDwvZW0+IGNhbGVuZGFycyByZXF1aXJlIGJhc2ljCisgKiBHcmVnb3JpYW4gc3VwcG9ydCBpbiBvcmRlciB0byBoYW5kbGUgdGltZXpvbmUgY29tcHV0YXRpb25zLiA8L3A+CisgKgorICogPHA+Q29tbW9uIGNvbXB1dGF0aW9ucyBoYXZlIGJlZW4gbW92ZWQgaW50bworICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiBTdWJjbGFzc2VzIG5vIGxvbmdlciBjb21wdXRlIHRoZSB3ZWVrIHJlbGF0ZWQKKyAqIGZpZWxkcyBhbmQgdGhlIHRpbWUgcmVsYXRlZCBmaWVsZHMuIFRoZXNlIGFyZSBjb21tb25seSBoYW5kbGVkIGZvciBhbGwKKyAqIGNhbGVuZGFycyBieSB0aGUgYmFzZSBjbGFzcy4gPC9wPgorICoKKyAqIDxwPjxiPlN1YmNsYXNzIGNvbXB1dGF0aW9uIG9mIHRpbWUgPHR0Pj0mZ3Q7PC90dD4gZmllbGRzPC9iPgorICoKKyAqIDxwPlRoZSB7QGxpbmsgI0VSQX0sIHtAbGluayAjWUVBUn0sCisgKiB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwKKyAqIHtAbGluayAjREFZX09GX01PTlRIfSwgYW5kIHtAbGluayAjREFZX09GX1lFQVJ9IGZpZWxkcyBhcmUKKyAqIGNvbXB1dGVkIGJ5IHRoZSBzdWJjbGFzcywgYmFzZWQgb24gdGhlIEp1bGlhbiBkYXkuIEFsbCBvdGhlciBmaWVsZHMKKyAqIGFyZSBjb21wdXRlZCBieSA8Y29kZT5DYWxlbmRhcjwvY29kZT4uCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUNvbXB1dGVGaWVsZHN9CisgKiAgICAgdG8gY29tcHV0ZSB0aGUge0BsaW5rICNFUkF9LCB7QGxpbmsgI1lFQVJ9LAorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICogICAgIHtAbGluayAjREFZX09GX01PTlRIfSwgYW5kIHtAbGluayAjREFZX09GX1lFQVJ9IGZpZWxkcywKKyAqICAgICBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgdGhlIHtAbGluayAjSlVMSUFOX0RBWX0gZmllbGQuIElmIHRoZXJlCisgKiAgICAgYXJlIGNhbGVuZGFyLXNwZWNpZmljIGZpZWxkcyBub3QgZGVmaW5lZCBieSA8Y29kZT5DYWxlbmRhcjwvY29kZT4sCisgKiAgICAgdGhleSBtdXN0IGFsc28gYmUgY29tcHV0ZWQuIFRoZXNlIGFyZSB0aGUgb25seSBmaWVsZHMgdGhhdCB0aGUKKyAqICAgICBzdWJjbGFzcyBzaG91bGQgY29tcHV0ZS4gQWxsIG90aGVyIGZpZWxkcyBhcmUgY29tcHV0ZWQgYnkgdGhlIGJhc2UKKyAqICAgICBjbGFzcywgc28gdGltZSBhbmQgd2VlayBmaWVsZHMgYmVoYXZlIGluIGEgY29uc2lzdGVudCB3YXkgYWNyb3NzCisgKiAgICAgYWxsIGNhbGVuZGFycy4gVGhlIGRlZmF1bHQgdmVyc2lvbiBvZiB0aGlzIG1ldGhvZCBpbgorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRzIGEgcHJvbGVwdGljIEdyZWdvcmlhbgorICogICAgIGNhbGVuZGFyLiBXaXRoaW4gdGhpcyBtZXRob2QsIHN1YmNsYXNzZXMgbWF5IGNhbGwKKyAqICAgICA8Y29kZT5nZXRHcmVnb3JpYW5YeHgoKTwvY29kZT4gdG8gb2J0YWluIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIKKyAqICAgICBtb250aCwgZGF5IG9mIG1vbnRoLCBhbmQgZXh0ZW5kZWQgeWVhciBmb3IgdGhlIGdpdmVuIGRhdGUuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiPlN1YmNsYXNzIGNvbXB1dGF0aW9uIG9mIGZpZWxkcyA8dHQ+PSZndDs8L3R0PiB0aW1lPC9iPgorICoKKyAqIDxwPlRoZSBpbnRlcnByZXRhdGlvbiBvZiBtb3N0IGZpZWxkIHZhbHVlcyBpcyBoYW5kbGVkIGVudGlyZWx5IGJ5CisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBkZXRlcm1pbmVzIHdoaWNoIGZpZWxkcworICogYXJlIHNldCwgd2hpY2ggYXJlIG5vdCwgd2hpY2ggYXJlIHNldCBtb3JlIHJlY2VudGx5LCBhbmQgc28gb24uIEluCisgKiBhZGRpdGlvbiwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGhhbmRsZXMgdGhlIGNvbXB1dGF0aW9uIG9mIHRoZSB0aW1lCisgKiBmcm9tIHRoZSB0aW1lIGZpZWxkcyBhbmQgaGFuZGxlcyB0aGUgd2Vlay1yZWxhdGVkIGZpZWxkcy4gVGhlIG9ubHkKKyAqIHRoaW5nIHRoZSBzdWJjbGFzcyBtdXN0IGRvIGlzIGRldGVybWluZSB0aGUgZXh0ZW5kZWQgeWVhciwgYmFzZWQgb24KKyAqIHRoZSB5ZWFyIGZpZWxkcywgYW5kIHRoZW4sIGdpdmVuIGFuIGV4dGVuZGVkIHllYXIgYW5kIGEgbW9udGgsIGl0IG11c3QKKyAqIHJldHVybiBhIEp1bGlhbiBkYXkgbnVtYmVyLgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRFeHRlbmRlZFllYXJ9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBleHRlbmRlZCB5ZWFyIGZvciB0aGlzIGNhbGVuZGFyIHN5c3RlbSwgYmFzZWQgb24gdGhlCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwgYW5kIGFueSBmaWVsZHMgdGhhdAorICogICAgIHRoZSBjYWxlbmRhciBzeXN0ZW0gdXNlcyB0aGF0IGFyZSBsYXJnZXIgdGhhbiBhIHllYXIsIHN1Y2ggYXMKKyAqICAgICB7QGxpbmsgI0VSQX0uPC9saT4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVDb21wdXRlTW9udGhTdGFydH0KKyAqICAgICB0byByZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyCisgKiAgICAgYXNzb2NpYXRlZCB3aXRoIGEgbW9udGggYW5kIGV4dGVuZGVkIHllYXIuIFRoaXMgaXMgdGhlIEp1bGlhbiBkYXkKKyAqICAgICBudW1iZXIgb2YgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGguIFRoZSBtb250aAorICogICAgIG51bWJlciBpcyB6ZXJvLWJhc2VkLiBUaGlzIGNvbXB1dGF0aW9uIHNob3VsZCBub3QgZGVwZW5kIG9uIGFueQorICogICAgIGZpZWxkIHZhbHVlcy48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGI+T3RoZXIgbWV0aG9kczwvYj4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0TW9udGhMZW5ndGh9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhCisgKiAgICAgZ2l2ZW4gbW9udGggb2YgYSBnaXZlbiBleHRlbmRlZCB5ZWFyLiBUaGUgbW9udGggbnVtYmVyLCBhcyBhbHdheXMsCisgKiAgICAgaXMgemVyby1iYXNlZC48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldFllYXJMZW5ndGh9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4KKyAqICAgICBleHRlbmRlZCB5ZWFyLiBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5CisgKiAgICAgPHR0PmNvbXB1dGVXZWVrRmllbGRzPC90dD4gdG8gY29tcHV0ZSB0aGUKKyAqICAgICB7QGxpbmsgI1dFRUtfT0ZfWUVBUn0gYW5kIHtAbGluayAjWUVBUl9XT1l9IGZpZWxkcy48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldExpbWl0fQorICogICAgIHRvIHJldHVybiB0aGUge0BsaW5rICNNSU5JTVVNfSwKKyAqICAgICB7QGxpbmsgI0dSRUFURVNUX01JTklNVU19LCB7QGxpbmsgI0xFQVNUX01BWElNVU19LCBvcgorICogICAgIHtAbGluayAjTUFYSU1VTX0gb2YgYSBmaWVsZCwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZgorICogICAgIDxjb2RlPmxpbWl0VHlwZTwvY29kZT4uIFRoaXMgbWV0aG9kIG9ubHkgbmVlZHMgdG8gaGFuZGxlIHRoZQorICogICAgIGZpZWxkcyB7QGxpbmsgI0VSQX0sIHtAbGluayAjWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICogICAgIHtAbGluayAjV0VFS19PRl9ZRUFSfSwge0BsaW5rICNXRUVLX09GX01PTlRIfSwKKyAqICAgICB7QGxpbmsgI0RBWV9PRl9NT05USH0sIHtAbGluayAjREFZX09GX1lFQVJ9LAorICogICAgIHtAbGluayAjREFZX09GX1dFRUtfSU5fTU9OVEh9LCB7QGxpbmsgI1lFQVJfV09ZfSwgYW5kCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfS4gIE90aGVyIGZpZWxkcyBhcmUgaW52YXJpYW50ICh3aXRoCisgKiAgICAgcmVzcGVjdCB0byBjYWxlbmRhciBzeXN0ZW0pIGFuZCBhcmUgaGFuZGxlZCBieSB0aGUgYmFzZQorICogICAgIGNsYXNzLjwvbGk+CisgKgorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUge0BsaW5rICN2YWxpZGF0ZUZpZWxkfQorICogICAgIHRvIGNoZWNrIGFueSBzdWJjbGFzcy1zcGVjaWZpYyBmaWVsZHMuIElmIHRoZQorICogICAgIGZpZWxkJ3MgdmFsdWUgaXMgb3V0IG9mIHJhbmdlLCB0aGUgbWV0aG9kIHNob3VsZCB0aHJvdyBhbgorICogICAgIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4uIFRoZSBtZXRob2QgbWF5IGNhbGwKKyAqICAgICA8Y29kZT5zdXBlci52YWxpZGF0ZUZpZWxkKGZpZWxkKTwvY29kZT4gdG8gaGFuZGxlIGZpZWxkcyBpbiBhCisgKiAgICAgZ2VuZXJpYyB3YXksIHRoYXQgaXMsIHRvIGNvbXBhcmUgdGhlbSB0byB0aGUgcmFuZ2UKKyAqICAgICA8Y29kZT5nZXRNaW5pbXVtKGZpZWxkKTwvY29kZT4uLjxjb2RlPmdldE1heGltdW0oZmllbGQpPC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlCisgKiAgICAge0BsaW5rICNoYW5kbGVDcmVhdGVGaWVsZHN9IHRvIGNyZWF0ZSBhbiA8Y29kZT5pbnRbXTwvY29kZT4KKyAqICAgICBhcnJheSBsYXJnZSBlbm91Z2ggdG8gaG9sZCB0aGUgY2FsZW5kYXIncyBmaWVsZHMuIFRoaXMgaXMgb25seQorICogICAgIG5lY2Vzc2FyeSBpZiB0aGUgY2FsZW5kYXIgZGVmaW5lcyBhZGRpdGlvbmFsIGZpZWxkcyBiZXlvbmQgdGhvc2UKKyAqICAgICBkZWZpbmVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IG11c3QgYmUKKyAqICAgICBhdCBsZWFzdCB7QGxpbmsgI0JBU0VfRklFTERfQ09VTlR9IGFuZCBubyBtb3JlIHRoYW4KKyAqICAgICB7QGxpbmsgI01BWF9GSUVMRF9DT1VOVH0uPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZQorICogICAgIHtAbGluayAjaGFuZGxlR2V0RGF0ZUZvcm1hdH0gdG8gY3JlYXRlIGEKKyAqICAgICA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyLiBUaGlzIGlzIG9ubHkKKyAqICAgICByZXF1aXJlZCBpZiBhIGNhbGVuZGFyIHN1YmNsYXNzIHJlZGVmaW5lcyB0aGUgdXNlIG9mIGEgZmllbGQgKGZvcgorICogICAgIGV4YW1wbGUsIGNoYW5nZXMgdGhlIHtAbGluayAjRVJBfSBmaWVsZCBmcm9tIGEgc3ltYm9saWMgZmllbGQKKyAqICAgICB0byBhIG51bWVyaWMgb25lKSBvciBkZWZpbmVzIGFuIGFkZGl0aW9uYWwgZmllbGQuPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsgI3JvbGwgcm9sbH0gYW5kCisgKiAgICAge0BsaW5rICNhZGQgYWRkfSB0byBoYW5kbGUgZmllbGRzIHRoYXQgYXJlIGRpc2NvbnRpbnVvdXMuIEZvcgorICogICAgIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICZxdW90O0FkYXIgSSZxdW90OyBvbmx5CisgKiAgICAgb2NjdXJzIGluIGxlYXAgeWVhcnM7IGluIG90aGVyIHllYXJzIHRoZSBjYWxlbmRhciBqdW1wcyBmcm9tCisgKiAgICAgU2hldmF0IChtb250aCAjNCkgdG8gQWRhciAobW9udGggIzYpLiBUaGUge0BsaW5rCisgKiAgICAgSGVicmV3Q2FsZW5kYXIjYWRkIEhlYnJld0NhbGVuZGFyLmFkZH0gYW5kIHtAbGluaworICogICAgIEhlYnJld0NhbGVuZGFyI3JvbGwgSGVicmV3Q2FsZW5kYXIucm9sbH0gbWV0aG9kcyB0YWtlIHRoaXMgaW50bworICogICAgIGFjY291bnQsIHNvIHRoYXQgYWRkaW5nIDEgbW9udGggdG8gU2hldmF0IGdpdmVzIHRoZSBwcm9wZXIgcmVzdWx0CisgKiAgICAgKEFkYXIpIGluIGEgbm9uLWxlYXAgeWVhci4gVGhlIHByb3RlY3RlZCB1dGlsaXR5IG1ldGhvZCB7QGxpbmsKKyAqICAgICAjcGluRmllbGQgcGluRmllbGR9IGlzIG9mdGVuIHVzZWZ1bCB3aGVuIGltcGxlbWVudGluZyB0aGVzZSB0d28KKyAqICAgICBtZXRob2RzLiA8L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGJpZz48Yj5Ob3JtYWxpemVkIGJlaGF2aW9yPC9iPjwvYmlnPgorICoKKyAqIDxwPlRoZSBiZWhhdmlvciBvZiBjZXJ0YWluIGZpZWxkcyBoYXMgYmVlbiBtYWRlIGNvbnNpc3RlbnQgYWNyb3NzIGFsbAorICogY2FsZW5kYXIgc3lzdGVtcyBhbmQgaW1wbGVtZW50ZWQgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5UaW1lIGlzIG5vcm1hbGl6ZWQuIEV2ZW4gdGhvdWdoIHNvbWUgY2FsZW5kYXIgc3lzdGVtcyB0cmFuc2l0aW9uCisgKiAgICAgYmV0d2VlbiBkYXlzIGF0IHN1bnNldCBvciBhdCBvdGhlciB0aW1lcywgYWxsIElDVTRKIGNhbGVuZGFycworICogICAgIHRyYW5zaXRpb24gYmV0d2VlbiBkYXlzIGF0IDxlbT5sb2NhbCB6b25lIG1pZG5pZ2h0PC9lbT4uICBUaGlzCisgKiAgICAgYWxsb3dzIElDVTRKIHRvIGNlbnRyYWxpemUgdGhlIHRpbWUgY29tcHV0YXRpb25zIGluCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGFuZCB0byBtYWludGFpbiBiYXNpYyBjb3JyZXBzb25kZW5jZXMKKyAqICAgICBiZXR3ZWVuIGNhbGVuZGFyIHN5c3RlbXMuIEFmZmVjdGVkIGZpZWxkczoge0BsaW5rICNBTV9QTX0sCisgKiAgICAge0BsaW5rICNIT1VSfSwge0BsaW5rICNIT1VSX09GX0RBWX0sIHtAbGluayAjTUlOVVRFfSwKKyAqICAgICB7QGxpbmsgI1NFQ09ORH0sIHtAbGluayAjTUlMTElTRUNPTkR9LAorICogICAgIHtAbGluayAjWk9ORV9PRkZTRVR9LCBhbmQge0BsaW5rICNEU1RfT0ZGU0VUfS48L2xpPgorICoKKyAqICAgPGxpPkRTVCBiZWhhdmlvciBpcyBub3JtYWxpemVkLiBEYXlsaWdodCBzYXZpbmdzIHRpbWUgYmVoYXZpb3IgaXMKKyAqICAgICBjb21wdXRlZCB0aGUgc2FtZSBmb3IgYWxsIGNhbGVuZGFyIHN5c3RlbXMsIGFuZCBkZXBlbmRzIG9uIHRoZQorICogICAgIHZhbHVlIG9mIHNldmVyYWwgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGZpZWxkczogdGhlCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNNT05USH0sIGFuZAorICogICAgIHtAbGluayAjREFZX09GX01PTlRIfS4gQXMgYSByZXN1bHQsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogICAgIGFsd2F5cyBjb21wdXRlcyB0aGVzZSBmaWVsZHMsIGV2ZW4gZm9yIG5vbi1HcmVnb3JpYW4gY2FsZW5kYXIKKyAqICAgICBzeXN0ZW1zLiBUaGVzZSBmaWVsZHMgYXJlIGF2YWlsYWJsZSB0byBzdWJjbGFzc2VzLjwvbGk+CisgKgorICogICA8bGk+V2Vla3MgYXJlIG5vcm1hbGl6ZWQuIEFsdGhvdWdoIGxvY2FsZXMgZGVmaW5lIHRoZSB3ZWVrCisgKiAgICAgZGlmZmVyZW50bHksIGluIHRlcm1zIG9mIHRoZSBkYXkgb24gd2hpY2ggaXQgc3RhcnRzLCBhbmQgdGhlCisgKiAgICAgZGVzaWduYXRpb24gb2Ygd2VlayBudW1iZXIgb25lIG9mIGEgbW9udGggb3IgeWVhciwgdGhleSBhbGwgdXNlIGEKKyAqICAgICBjb21tb24gbWVjaGFuaXNtLiBGdXJ0aGVybW9yZSwgdGhlIGRheSBvZiB0aGUgd2VlayBoYXMgYSBzaW1wbGUKKyAqICAgICBhbmQgY29uc2lzdGVudCBkZWZpbml0aW9uIHRocm91Z2hvdXQgaGlzdG9yeS4gRm9yIGV4YW1wbGUsCisgKiAgICAgYWx0aG91Z2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBpbnRyb2R1Y2VkIGEgZGlzY29udGludWl0eSB3aGVuCisgKiAgICAgZmlyc3QgaW5zdGl0dXRlZCwgdGhlIGRheSBvZiB3ZWVrIHdhcyBub3QgZGlzcnVwdGVkLiBGb3IgdGhpcworICogICAgIHJlYXNvbiwgdGhlIGZpZWxkcyB7QGxpbmsgI0RBWV9PRl9XRUVLfSwgPGNvZGU+V0VFS19PRl9ZRUFSLAorICogICAgIFdFRUtfT0ZfTU9OVEg8L2NvZGU+LCB7QGxpbmsgI0RBWV9PRl9XRUVLX0lOX01PTlRIfSwKKyAqICAgICB7QGxpbmsgI0RPV19MT0NBTH0sIHtAbGluayAjWUVBUl9XT1l9IGFyZSBhbGwgY29tcHV0ZWQgaW4KKyAqICAgICBhIGNvbnNpc3RlbnQgd2F5IGluIHRoZSBiYXNlIGNsYXNzLCBiYXNlZCBvbiB0aGUKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSwKKyAqICAgICB7QGxpbmsgI01PTlRIfSwgYW5kIHtAbGluayAjREFZX09GX01PTlRIfSwgd2hpY2ggYXJlCisgKiAgICAgY29tcHV0ZWQgYnkgdGhlIHN1YmNsYXNzLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48YmlnPjxiPlN1cHBvcnRlZCByYW5nZTwvYj48L2JpZz4KKyAqCisgKiA8cD5UaGUgYWxsb3dhYmxlIHJhbmdlIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYXMgYmVlbgorICogbmFycm93ZWQuIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiB1c2VkIHRvIGF0dGVtcHQgdG8gc3VwcG9ydAorICogdGhlIHJhbmdlIG9mIGRhdGVzIHdpdGggbWlsbGlzZWNvbmQgdmFsdWVzIGZyb20KKyAqIDxjb2RlPkxvbmcuTUlOX1ZBTFVFPC9jb2RlPiB0byA8Y29kZT5Mb25nLk1BWF9WQUxVRTwvY29kZT4uIFRoaXMKKyAqIGludHJvZHVjZWQgYXdrd2FyZCBjb25zdHJ1Y3Rpb25zIChoYWNrcykgd2hpY2ggc2xvd2VkIGRvd24KKyAqIHBlcmZvcm1hbmNlLiBJdCBhbHNvIGludHJvZHVjZWQgbm9uLXVuaWZvcm0gYmVoYXZpb3IgYXQgdGhlCisgKiBib3VuZGFyaWVzLiBUaGUgbmV3IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBwcm90b2NvbCBzcGVjaWZpZXMgdGhlCisgKiBtYXhpbXVtIHJhbmdlIG9mIHN1cHBvcnRhYmxlIGRhdGVzIGFzIHRob3NlIGhhdmluZyBKdWxpYW4gZGF5IG51bWJlcnMKKyAqIG9mIDxjb2RlPi0weDdGMDAwMDAwPC9jb2RlPiB0byA8Y29kZT4rMHg3RjAwMDAwMDwvY29kZT4uIFRoaXMKKyAqIGNvcnJlc3BvbmRzIHRvIHllYXJzIGZyb20gfjUsMDAwLDAwMCBCQ0UgdG8gfjUsMDAwLDAwMCBDRS4gUHJvZ3JhbW1lcnMKKyAqIHNob3VsZCB1c2UgdGhlIGNvbnN0YW50cyB7QGxpbmsgI01JTl9EQVRFfSAob3IKKyAqIHtAbGluayAjTUlOX01JTExJU30gb3Ige0BsaW5rICNNSU5fSlVMSUFOfSkgYW5kCisgKiB7QGxpbmsgI01BWF9EQVRFfSAob3Ige0BsaW5rICNNQVhfTUlMTElTfSBvcgorICoge0BsaW5rICNNQVhfSlVMSUFOfSkgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRvIHNwZWNpZnkgYW4KKyAqIGV4dHJlbWVseSBlYXJseSBvciBleHRyZW1lbHkgbGF0ZSBkYXRlLjwvcD4KKyAqCisgKiA8cD48YmlnPjxiPkdlbmVyYWwgbm90ZXM8L2I+PC9iaWc+CisgKgorICogPHVsPgorICoKKyAqICAgPGxpPkNhbGVuZGFycyBpbXBsZW1lbnRhdGlvbnMgYXJlIDxlbT5wcm9sZXB0aWM8L2VtPi4gRm9yIGV4YW1wbGUsCisgKiAgICAgZXZlbiB0aG91Z2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB3YXMgbm90IGluc3RpdHV0ZWQgdW50aWwgdGhlCisgKiAgICAgMTZ0aCBjZW50dXJ5LCB0aGUgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGNsYXNzIHN1cHBvcnRzCisgKiAgICAgZGF0ZXMgYmVmb3JlIHRoZSBoaXN0b3JpY2FsIG9uc2V0IG9mIHRoZSBjYWxlbmRhciBieSBleHRlbmRpbmcgdGhlCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtIGJhY2t3YXJkIGluIHRpbWUuIFNpbWlsYXJseSwgdGhlCisgKiAgICAgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGV4dGVuZHMgYmFja3dhcmQgYmVmb3JlIHRoZSBzdGFydCBvZgorICogICAgIGl0cyBlcG9jaCBpbnRvIHplcm8gYW5kIG5lZ2F0aXZlIHllYXJzLiBTdWJjbGFzc2VzIGRvIG5vdCB0aHJvdworICogICAgIGV4Y2VwdGlvbnMgYmVjYXVzZSBhIGRhdGUgcHJlY2VkZXMgdGhlIGhpc3RvcmljYWwgc3RhcnQgb2YgYQorICogICAgIGNhbGVuZGFyIHN5c3RlbS4gSW5zdGVhZCwgdGhleSBpbXBsZW1lbnQKKyAqICAgICB7QGxpbmsgI2hhbmRsZUdldExpbWl0fSB0byByZXR1cm4gYXBwcm9wcmlhdGUgbGltaXRzIG9uCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNFUkF9LCBldGMuIGZpZWxkcy4gVGhlbiwgaWYgdGhlCisgKiAgICAgY2FsZW5kYXIgaXMgc2V0IHRvIG5vdCBiZSBsZW5pZW50LCBvdXQtb2YtcmFuZ2UgZmllbGQgdmFsdWVzIHdpbGwKKyAqICAgICB0cmlnZ2VyIGFuIGV4Y2VwdGlvbi48L2xpPgorICoKKyAqICAgPGxpPkNhbGVuZGFyIHN5c3RlbSBzdWJjbGFzc2VzIGNvbXB1dGUgYSA8ZW0+ZXh0ZW5kZWQKKyAqICAgICB5ZWFyPC9lbT4uIFRoaXMgZGlmZmVycyBmcm9tIHRoZSB7QGxpbmsgI1lFQVJ9IGZpZWxkIGluIHRoYXQKKyAqICAgICBpdCByYW5nZXMgb3ZlciBhbGwgaW50ZWdlciB2YWx1ZXMsIGluY2x1ZGluZyB6ZXJvIGFuZCBuZWdhdGl2ZQorICogICAgIHZhbHVlcywgYW5kIGl0IGVuY2Fwc3VsYXRlcyB0aGUgaW5mb3JtYXRpb24gb2YgdGhlCisgKiAgICAge0BsaW5rICNZRUFSfSBmaWVsZCBhbmQgYWxsIGxhcmdlciBmaWVsZHMuICBUaHVzLCBmb3IgdGhlCisgKiAgICAgR3JlZ29yaWFuIGNhbGVuZGFyLCB0aGUge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSBpcyBjb21wdXRlZCBhcworICogICAgIDxjb2RlPkVSQT09QUQgPyBZRUFSIDogMS1ZRUFSPC9jb2RlPi4gQW5vdGhlciBleGFtcGxlIGlzIHRoZSBNYXlhbgorICogICAgIGxvbmcgY291bnQsIHdoaWNoIGhhcyB5ZWFycyAoPGNvZGU+S1VOPC9jb2RlPikgYW5kIG5lc3RlZCBjeWNsZXMKKyAqICAgICBvZiB5ZWFycyAoPGNvZGU+S0FUVU48L2NvZGU+IGFuZCA8Y29kZT5CQUtUVU48L2NvZGU+KS4gVGhlIE1heWFuCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSBpcyBjb21wdXRlZCBhcyA8Y29kZT5UVU4gKyAyMCAqIChLQVRVTgorICogICAgICsgMjAgKiBCQUtUVU4pPC9jb2RlPi4gVGhlIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBiYXNlIGNsYXNzIHVzZXMKKyAqICAgICB0aGUge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSBmaWVsZCB0byBjb21wdXRlIHRoZSB3ZWVrLXJlbGF0ZWQKKyAqICAgICBmaWVsZHMuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIEBzZWUgICAgICAgICAgRGF0ZQorICogQHNlZSAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBUaW1lWm9uZQorICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAYXV0aG9yIE1hcmsgRGF2aXMsIERhdmlkIEdvbGRzbWl0aCwgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdSwgTGF1cmEgV2VybmVyCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlLCBDbG9uZWFibGUsIENvbXBhcmFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBqYXZhLnV0aWwuQ2FsZW5kYXIgY2FsZW5kYXI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwYXJhbSBkZWxlZ2F0ZSB0aGUgQ2FsZW5kYXIgdG8gd2hpY2ggdG8gZGVsZWdhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyIGRlbGVnYXRlKSB7CisgICAgICAgIHRoaXMuY2FsZW5kYXIgPSBkZWxlZ2F0ZTsKKyAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlcmEsIGUuZy4sIEFEIG9yIEJDIGluIHRoZSBKdWxpYW4gY2FsZW5kYXIuIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYworICAgICAqIHZhbHVlOyBzZWUgc3ViY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAc2VlIEdyZWdvcmlhbkNhbGVuZGFyI0FECisgICAgICogQHNlZSBHcmVnb3JpYW5DYWxlbmRhciNCQworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHllYXIuIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYyB2YWx1ZTsgc2VlIHN1YmNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWUVBUiA9IDE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIG1vbnRoLiBUaGlzIGlzIGEgY2FsZW5kYXItc3BlY2lmaWMgdmFsdWUuIFRoZSBmaXJzdCBtb250aCBvZiB0aGUgeWVhciBpcworICAgICAqIDxjb2RlPkpBTlVBUlk8L2NvZGU+OyB0aGUgbGFzdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbW9udGhzIGluIGEgeWVhci4KKyAgICAgKiBAc2VlICNKQU5VQVJZCisgICAgICogQHNlZSAjRkVCUlVBUlkKKyAgICAgKiBAc2VlICNNQVJDSAorICAgICAqIEBzZWUgI0FQUklMCisgICAgICogQHNlZSAjTUFZCisgICAgICogQHNlZSAjSlVORQorICAgICAqIEBzZWUgI0pVTFkKKyAgICAgKiBAc2VlICNBVUdVU1QKKyAgICAgKiBAc2VlICNTRVBURU1CRVIKKyAgICAgKiBAc2VlICNPQ1RPQkVSCisgICAgICogQHNlZSAjTk9WRU1CRVIKKyAgICAgKiBAc2VlICNERUNFTUJFUgorICAgICAqIEBzZWUgI1VOREVDSU1CRVIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05USCA9IDI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHdlZWsgbnVtYmVyIHdpdGhpbiB0aGUgY3VycmVudCB5ZWFyLiAgVGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIsIGFzCisgICAgICogZGVmaW5lZCBieSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LCBoYXMgdmFsdWUgMS4gIFN1YmNsYXNzZXMgZGVmaW5lCisgICAgICogdGhlIHZhbHVlIG9mIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZm9yIGRheXMgYmVmb3JlIHRoZSBmaXJzdCB3ZWVrIG9mCisgICAgICogdGhlIHllYXIuCisgICAgICogQHNlZSAjZ2V0Rmlyc3REYXlPZldlZWsKKyAgICAgKiBAc2VlICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9ZRUFSID0gMzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogd2VlayBudW1iZXIgd2l0aGluIHRoZSBjdXJyZW50IG1vbnRoLiAgVGhlIGZpcnN0IHdlZWsgb2YgdGhlIG1vbnRoLCBhcworICAgICAqIGRlZmluZWQgYnkgPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiwgaGFzIHZhbHVlIDEuICBTdWJjbGFzc2VzIGRlZmluZQorICAgICAqIHRoZSB2YWx1ZSBvZiA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBmb3IgZGF5cyBiZWZvcmUgdGhlIGZpcnN0IHdlZWsgb2YKKyAgICAgKiB0aGUgbW9udGguCisgICAgICogQHNlZSAjZ2V0Rmlyc3REYXlPZldlZWsKKyAgICAgKiBAc2VlICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9NT05USCA9IDQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGRheSBvZiB0aGUgbW9udGguIFRoaXMgaXMgYSBzeW5vbnltIGZvciA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+LgorICAgICAqIFRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGhhcyB2YWx1ZSAxLgorICAgICAqIEBzZWUgI0RBWV9PRl9NT05USAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEUgPSA1OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIG1vbnRoLiBUaGlzIGlzIGEgc3lub255bSBmb3IgPGNvZGU+REFURTwvY29kZT4uCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggaGFzIHZhbHVlIDEuCisgICAgICogQHNlZSAjREFURQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9NT05USCA9IDU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZSBkYXkKKyAgICAgKiBudW1iZXIgd2l0aGluIHRoZSBjdXJyZW50IHllYXIuICBUaGUgZmlyc3QgZGF5IG9mIHRoZSB5ZWFyIGhhcyB2YWx1ZSAxLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9ZRUFSID0gNjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlIGRheQorICAgICAqIG9mIHRoZSB3ZWVrLiAgVGhpcyBmaWVsZCB0YWtlcyB2YWx1ZXMgPGNvZGU+U1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5NT05EQVk8L2NvZGU+LCA8Y29kZT5UVUVTREFZPC9jb2RlPiwgPGNvZGU+V0VETkVTREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5USFVSU0RBWTwvY29kZT4sIDxjb2RlPkZSSURBWTwvY29kZT4sIGFuZCA8Y29kZT5TQVRVUkRBWTwvY29kZT4uCisgICAgICogQHNlZSAjU1VOREFZCisgICAgICogQHNlZSAjTU9OREFZCisgICAgICogQHNlZSAjVFVFU0RBWQorICAgICAqIEBzZWUgI1dFRE5FU0RBWQorICAgICAqIEBzZWUgI1RIVVJTREFZCisgICAgICogQHNlZSAjRlJJREFZCisgICAgICogQHNlZSAjU0FUVVJEQVkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfV0VFSyA9IDc7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIG9yZGluYWwgbnVtYmVyIG9mIHRoZSBkYXkgb2YgdGhlIHdlZWsgd2l0aGluIHRoZSBjdXJyZW50IG1vbnRoLiBUb2dldGhlcgorICAgICAqIHdpdGggdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCwgdGhpcyB1bmlxdWVseSBzcGVjaWZpZXMgYSBkYXkKKyAgICAgKiB3aXRoaW4gYSBtb250aC4gIFVubGlrZSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+LCB0aGlzIGZpZWxkJ3MgdmFsdWUgZG9lcyA8ZW0+bm90PC9lbT4gZGVwZW5kIG9uCisgICAgICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gb3IKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LiAgPGNvZGU+REFZX09GX01PTlRIIDE8L2NvZGU+CisgICAgICogdGhyb3VnaCA8Y29kZT43PC9jb2RlPiBhbHdheXMgY29ycmVzcG9uZCB0byA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAqIDE8L2NvZGU+OyA8Y29kZT44PC9jb2RlPiB0aHJvdWdoIDxjb2RlPjE1PC9jb2RlPiBjb3JyZXNwb25kIHRvCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggMjwvY29kZT4sIGFuZCBzbyBvbi4KKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAwPC9jb2RlPiBpbmRpY2F0ZXMgdGhlIHdlZWsgYmVmb3JlCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggMTwvY29kZT4uICBOZWdhdGl2ZSB2YWx1ZXMgY291bnQgYmFjayBmcm9tIHRoZQorICAgICAqIGVuZCBvZiB0aGUgbW9udGgsIHNvIHRoZSBsYXN0IFN1bmRheSBvZiBhIG1vbnRoIGlzIHNwZWNpZmllZCBhcworICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLID0gU1VOREFZLCBEQVlfT0ZfV0VFS19JTl9NT05USCA9IC0xPC9jb2RlPi4gIEJlY2F1c2UKKyAgICAgKiBuZWdhdGl2ZSB2YWx1ZXMgY291bnQgYmFja3dhcmQgdGhleSB3aWxsIHVzdWFsbHkgYmUgYWxpZ25lZCBkaWZmZXJlbnRseQorICAgICAqIHdpdGhpbiB0aGUgbW9udGggdGhhbiBwb3NpdGl2ZSB2YWx1ZXMuICBGb3IgZXhhbXBsZSwgaWYgYSBtb250aCBoYXMgMzEKKyAgICAgKiBkYXlzLCA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAtMTwvY29kZT4gd2lsbCBvdmVybGFwCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggNTwvY29kZT4gYW5kIHRoZSBlbmQgb2YgPGNvZGU+NDwvY29kZT4uCisgICAgICogQHNlZSAjREFZX09GX1dFRUsKKyAgICAgKiBAc2VlICNXRUVLX09GX01PTlRICisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfSU5fTU9OVEggPSA4OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZworICAgICAqIHdoZXRoZXIgdGhlIDxjb2RlPkhPVVI8L2NvZGU+IGlzIGJlZm9yZSBvciBhZnRlciBub29uLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+QU1fUE08L2NvZGU+IGlzIDxjb2RlPlBNPC9jb2RlPi4KKyAgICAgKiBAc2VlICNBTQorICAgICAqIEBzZWUgI1BNCisgICAgICogQHNlZSAjSE9VUgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFNX1BNID0gOTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogaG91ciBvZiB0aGUgbW9ybmluZyBvciBhZnRlcm5vb24uIDxjb2RlPkhPVVI8L2NvZGU+IGlzIHVzZWQgZm9yIHRoZSAxMi1ob3VyCisgICAgICogY2xvY2suCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5IT1VSPC9jb2RlPiBpcyAxMC4KKyAgICAgKiBAc2VlICNBTV9QTQorICAgICAqIEBzZWUgI0hPVVJfT0ZfREFZCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUiA9IDEwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBob3VyIG9mIHRoZSBkYXkuIDxjb2RlPkhPVVJfT0ZfREFZPC9jb2RlPiBpcyB1c2VkIGZvciB0aGUgMjQtaG91ciBjbG9jay4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPkhPVVJfT0ZfREFZPC9jb2RlPiBpcyAyMi4KKyAgICAgKiBAc2VlICNIT1VSCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkgPSAxMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbWludXRlIHdpdGhpbiB0aGUgaG91ci4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPk1JTlVURTwvY29kZT4gaXMgNC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSU5VVEUgPSAxMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogc2Vjb25kIHdpdGhpbiB0aGUgbWludXRlLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+U0VDT05EPC9jb2RlPiBpcyAxNS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRUNPTkQgPSAxMzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbWlsbGlzZWNvbmQgd2l0aGluIHRoZSBzZWNvbmQuCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5NSUxMSVNFQ09ORDwvY29kZT4gaXMgMjUwLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EID0gMTQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHJhdyBvZmZzZXQgZnJvbSBHTVQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFpPTkVfT0ZGU0VUID0gMTU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGRheWxpZ2h0IHNhdmluZ3Mgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEU1RfT0ZGU0VUID0gMTY7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBleHRlbmRlZCB5ZWFyIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmaWVsZC4gIFRoaXMgbWF5IGJlIG9uZSBncmVhdGVyIG9yIGxlc3MKKyAgICAgKiB0aGFuIHRoZSB2YWx1ZSBvZiA8Y29kZT5FWFRFTkRFRF9ZRUFSPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUFSX1dPWSA9IDE3OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbG9jYWxpemVkIGRheSBvZiB3ZWVrLiAgVGhpcyB3aWxsIGJlIGEgdmFsdWUgZnJvbSAxCisgICAgICogdG8gNyBpbmNsdXNpdmUsIHdpdGggMSBiZWluZyB0aGUgbG9jYWxpemVkIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1dfTE9DQUwgPSAxODsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGV4dGVuZGVkIHllYXIuICBUaGlzIGlzIGEgc2luZ2xlIG51bWJlciBkZXNpZ25hdGluZworICAgICAqIHRoZSB5ZWFyIG9mIHRoaXMgY2FsZW5kYXIgc3lzdGVtLCBlbmNvbXBhc3NpbmcgYWxsIHN1cHJhLXllYXIKKyAgICAgKiBmaWVsZHMuICBGb3IgZXhhbXBsZSwgZm9yIHRoZSBKdWxpYW4gY2FsZW5kYXIgc3lzdGVtLCB5ZWFyIG51bWJlcnMKKyAgICAgKiBhcmUgcG9zaXRpdmUsIHdpdGggYW4gZXJhIG9mIEJDRSBvciBDRS4gIEFuIGV4dGVuZGVkIHllYXIgdmFsdWUgZm9yCisgICAgICogdGhlIEp1bGlhbiBjYWxlbmRhciBzeXN0ZW0gYXNzaWducyBwb3NpdGl2ZSB2YWx1ZXMgdG8gQ0UgeWVhcnMgYW5kCisgICAgICogbmVnYXRpdmUgdmFsdWVzIHRvIEJDRSB5ZWFycywgd2l0aCAxIEJDRSBiZWluZyB5ZWFyIDAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ERURfWUVBUiA9IDE5OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbW9kaWZpZWQgSnVsaWFuIGRheSBudW1iZXIuICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tCisgICAgICogdGhlIGNvbnZlbnRpb25hbCBKdWxpYW4gZGF5IG51bWJlciBpbiB0d28gcmVnYXJkcy4gIEZpcnN0LCBpdAorICAgICAqIGRlbWFyY2F0ZXMgZGF5cyBhdCBsb2NhbCB6b25lIG1pZG5pZ2h0LCByYXRoZXIgdGhhbiBub29uIEdNVC4KKyAgICAgKiBTZWNvbmQsIGl0IGlzIGEgbG9jYWwgbnVtYmVyOyB0aGF0IGlzLCBpdCBkZXBlbmRzIG9uIHRoZSBsb2NhbCB0aW1lCisgICAgICogem9uZS4gIEl0IGNhbiBiZSB0aG91Z2h0IG9mIGFzIGEgc2luZ2xlIG51bWJlciB0aGF0IGVuY29tcGFzc2VzIGFsbAorICAgICAqIHRoZSBkYXRlLXJlbGF0ZWQgZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTElBTl9EQVkgPSAyMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIG1pbGxpc2Vjb25kcyBpbiB0aGUgZGF5LiAgVGhpcyByYW5nZXMgZnJvbSAwIHRvCisgICAgICogMjM6NTk6NTkuOTk5IChyZWdhcmRsZXNzIG9mIERTVCkuICBUaGlzIGZpZWxkIGJlaGF2ZXMKKyAgICAgKiA8ZW0+ZXhhY3RseTwvZW0+IGxpa2UgYSBjb21wb3NpdGUgb2YgYWxsIHRpbWUtcmVsYXRlZCBmaWVsZHMsIG5vdAorICAgICAqIGluY2x1ZGluZyB0aGUgem9uZSBmaWVsZHMuICBBcyBzdWNoLCBpdCBhbHNvIHJlZmxlY3RzCisgICAgICogZGlzY29udGludWl0aWVzIG9mIHRob3NlIGZpZWxkcyBvbiBEU1QgdHJhbnNpdGlvbiBkYXlzLiAgT24gYSBkYXkgb2YKKyAgICAgKiBEU1Qgb25zZXQsIGl0IHdpbGwganVtcCBmb3J3YXJkLiAgT24gYSBkYXkgb2YgRFNUIGNlc3NhdGlvbiwgaXQgd2lsbAorICAgICAqIGp1bXAgYmFja3dhcmQuICBUaGlzIHJlZmxlY3RzIHRoZSBmYWN0IHRoYXQgaXMgbXVzdCBiZSBjb21iaW5lZCB3aXRoCisgICAgICogdGhlIERTVF9PRkZTRVQgZmllbGQgdG8gb2J0YWluIGEgdW5pcXVlIGxvY2FsIHRpbWUgdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlMTElTRUNPTkRTX0lOX0RBWSA9IDIxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGZpZWxkcyBkZWZpbmVkIGJ5IHRoaXMgY2xhc3MuICBTdWJjbGFzc2VzIG1heSBkZWZpbmUKKyAgICAgKiBhZGRpdGlvbiBmaWVsZHMgc3RhcnRpbmcgd2l0aCB0aGlzIG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCQVNFX0ZJRUxEX0NPVU5UID0gMjI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWVsZHMgcG9zc2libGUuICBTdWJjbGFzc2VzIG11c3Qgbm90IGRlZmluZQorICAgICAqIG1vcmUgdG90YWwgZmllbGRzIHRoYW4gdGhpcyBudW1iZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0ZJRUxEX0NPVU5UID0gMzI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFN1bmRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVU5EQVkgPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBNb25kYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OREFZID0gMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogVHVlc2RheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBUVUVTREFZID0gMzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogV2VkbmVzZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRE5FU0RBWSA9IDQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFRodXJzZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRIVVJTREFZID0gNTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogRnJpZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSSURBWSA9IDY7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFNhdHVyZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNBVFVSREFZID0gNzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGZpcnN0IG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpBTlVBUlkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogc2Vjb25kIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZFQlJVQVJZID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHRoaXJkIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BUkNIID0gMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGZvdXJ0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBUFJJTCA9IDM7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBmaWZ0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNQVkgPSA0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogc2l4dGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVORSA9IDU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZXZlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpVTFkgPSA2OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZWlnaHRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFVR1VTVCA9IDc7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBuaW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRVBURU1CRVIgPSA4OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdGVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgT0NUT0JFUiA9IDk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlbGV2ZW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBOT1ZFTUJFUiA9IDEwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdHdlbGZ0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUNFTUJFUiA9IDExOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdGhpcnRlZW50aCBtb250aCBvZiB0aGUgeWVhci4gQWx0aG91Z2ggPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgICAgICogZG9lcyBub3QgdXNlIHRoaXMgdmFsdWUsIGx1bmFyIGNhbGVuZGFycyBkby4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBVTkRFQ0lNQkVSID0gMTI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBwZXJpb2Qgb2YgdGhlIGRheSBmcm9tIG1pZG5pZ2h0IHRvIGp1c3QgYmVmb3JlIG5vb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU0gPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+QU1fUE08L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogcGVyaW9kIG9mIHRoZSBkYXkgZnJvbSBub29uIHRvIGp1c3QgYmVmb3JlIG1pZG5pZ2h0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFBNID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogd2Vla2RheS4KKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0RBWSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgdG8gaW5kaWNhdGUgYQorICAgICAqIHdlZWtlbmQgZGF5LgorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLRU5EID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogZGF5IHRoYXQgc3RhcnRzIGFzIGEgd2Vla2RheSBhbmQgdHJhbnNpdGlvbnMgdG8gdGhlIHdlZWtlbmQuCisgICAgICogQ2FsbCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHRvIGdldCB0aGUgcG9pbnQgb2YgdHJhbnNpdGlvbi4KKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0VORF9PTlNFVCA9IDI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgdG8gaW5kaWNhdGUgYQorICAgICAqIGRheSB0aGF0IHN0YXJ0cyBhcyB0aGUgd2Vla2VuZCBhbmQgdHJhbnNpdGlvbnMgdG8gYSB3ZWVrZGF5LgorICAgICAqIENhbGwgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSB0byBnZXQgdGhlIHBvaW50IG9mIHRyYW5zaXRpb24uCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtFTkRfQ0VBU0UgPSAzOworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lIGFuZCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKHpvbmUudGltZVpvbmUpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyKGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShhTG9jYWxlKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgdXNpbmcgdGhlIGRlZmF1bHQgdGltZSB6b25lIGFuZCBzcGVjaWZpZWQgbG9jYWxlLiAgCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSAgICAgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyKGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShsb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhcihqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2Uoem9uZS50aW1lWm9uZSwgYUxvY2FsZSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyKGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSh6b25lLnRpbWVab25lLCBsb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGphdmEudXRpbC5DYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKGF2YWlsYWJsZVVMb2NhbGVzID09IG51bGwpIHsKKyAgICAgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdWxvY2FsZXNbaV0gPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF2YWlsYWJsZVVMb2NhbGVzID0gdWxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVTG9jYWxlW10pYXZhaWxhYmxlVUxvY2FsZXMuY2xvbmUoKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgVUxvY2FsZVtdIGF2YWlsYWJsZVVMb2NhbGVzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBEYXRlIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgd2l0aCB0aGUgZ2l2ZW4gRGF0ZS4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiBDYWxsaW5nIDxjb2RlPnNldFRpbWUoKTwvY29kZT4gd2l0aAorICAgICAqIDxjb2RlPkRhdGUoTG9uZy5NQVhfVkFMVUUpPC9jb2RlPiBvciA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4KKyAgICAgKiBtYXkgeWllbGQgaW5jb3JyZWN0IGZpZWxkIHZhbHVlcyBmcm9tIDxjb2RlPmdldCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZ2l2ZW4gRGF0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRUaW1lKERhdGUgZGF0ZSkgeworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKGRhdGUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCB0aW1lIGFzIGEgbG9uZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHRpbWUgYXMgVVRDIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBlcG9jaC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRUaW1lSW5NaWxsaXMoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCB0aW1lIGZyb20gdGhlIGdpdmVuIGxvbmcgdmFsdWUuCisgICAgICogQHBhcmFtIG1pbGxpcyB0aGUgbmV3IHRpbWUgaW4gVVRDIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBlcG9jaC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUaW1lSW5NaWxsaXMobG9uZyBtaWxsaXMpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciBhIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldChpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldChmaWVsZCk7CisgICAgfQorICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgZmllbGQgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUgc2V0IGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IGZpZWxkLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0KGZpZWxkLCB2YWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGFuZCBkYXRlLgorICAgICAqIFByZXZpb3VzIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgYXJlIHJldGFpbmVkLiAgSWYgdGhpcyBpcyBub3QgZGVzaXJlZCwKKyAgICAgKiBjYWxsIDxjb2RlPmNsZWFyPC9jb2RlPiBmaXJzdC4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIGNhbGVuZGFyLnNldCh5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIGFuZCBtaW51dGUuCisgICAgICogUHJldmlvdXMgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBhcmUgcmV0YWluZWQuICBJZiB0aGlzIGlzIG5vdCBkZXNpcmVkLAorICAgICAqIGNhbGwgPGNvZGU+Y2xlYXI8L2NvZGU+IGZpcnN0LgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gaG91ciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIEhPVVJfT0ZfREFZIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1pbnV0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1JTlVURSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0KHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdmFsdWVzIGZvciB0aGUgZmllbGRzIHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIGFuZCBzZWNvbmQuCisgICAgICogUHJldmlvdXMgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBhcmUgcmV0YWluZWQuICBJZiB0aGlzIGlzIG5vdCBkZXNpcmVkLAorICAgICAqIGNhbGwgPGNvZGU+Y2xlYXI8L2NvZGU+IGZpcnN0LgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gaG91ciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIEhPVVJfT0ZfREFZIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1pbnV0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1JTlVURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBzZWNvbmQgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBTRUNPTkQgdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKSB7CisgICAgICAgIGNhbGVuZGFyLnNldCh5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ2xlYXJzIHRoZSB2YWx1ZXMgb2YgYWxsIHRoZSB0aW1lIGZpZWxkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgY2FsZW5kYXIuY2xlYXIoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgdmFsdWUgaW4gdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSB0aW1lIGZpZWxkIHRvIGJlIGNsZWFyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgY2xlYXIoaW50IGZpZWxkKSB7CisgICAgICAgIGNhbGVuZGFyLmNsZWFyKGZpZWxkKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHRpbWUgZmllbGQgaGFzIGEgdmFsdWUgc2V0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBoYXMgYSB2YWx1ZSBzZXQ7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc1NldChpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmlzU2V0KGZpZWxkKTsKKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhpcyBjYWxlbmRhciB0byB0aGUgc3BlY2lmaWVkIG9iamVjdC4KKyAgICAgKiBUaGUgcmVzdWx0IGlzIDxjb2RlPnRydWU8L2NvZGU+IGlmIGFuZCBvbmx5IGlmIHRoZSBhcmd1bWVudCBpcworICAgICAqIG5vdCA8Y29kZT5udWxsPC9jb2RlPiBhbmQgaXMgYSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gb2JqZWN0IHRoYXQKKyAgICAgKiByZXByZXNlbnRzIHRoZSBzYW1lIGNhbGVuZGFyIGFzIHRoaXMgb2JqZWN0LgorICAgICAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBjb21wYXJlIHdpdGguCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgb2JqZWN0cyBhcmUgdGhlIHNhbWU7CisgICAgICogPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmVxdWFscygoKENhbGVuZGFyKW9iaikuY2FsZW5kYXIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIENhbGVuZGFyIG9iamVjdCBpcyBlcXVpdmFsZW50IHRvIHRoaXMKKyAgICAgKiBvbmUuICBBbiBlcXVpdmFsZW50IENhbGVuZGFyIHdpbGwgYmVoYXZlIGV4YWN0bHkgYXMgdGhpcyBvbmUKKyAgICAgKiBkb2VzLCBidXQgaXQgbWF5IGJlIHNldCB0byBhIGRpZmZlcmVudCB0aW1lLiAgQnkgY29udHJhc3QsIGZvcgorICAgICAqIHRoZSBlcXVhbHMoKSBtZXRob2QgdG8gcmV0dXJuIHRydWUsIHRoZSBvdGhlciBDYWxlbmRhciBtdXN0CisgICAgICogYmUgc2V0IHRvIHRoZSBzYW1lIHRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhcgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRXF1aXZhbGVudFRvKENhbGVuZGFyIG90aGVyKSB7CisgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzKCkgPT0gb3RoZXIuZ2V0Q2xhc3MoKSAmJgorICAgICAgICAgICAgaXNMZW5pZW50KCkgPT0gb3RoZXIuaXNMZW5pZW50KCkgJiYKKyAgICAgICAgICAgIGdldEZpcnN0RGF5T2ZXZWVrKCkgPT0gb3RoZXIuZ2V0Rmlyc3REYXlPZldlZWsoKSAmJgorICAgICAgICAgICAgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpID09IG90aGVyLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSAmJgorICAgICAgICAgICAgZ2V0VGltZVpvbmUoKS5lcXVhbHMob3RoZXIuZ2V0VGltZVpvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgaGFzaCBjb2RlIGZvciB0aGlzIGNhbGVuZGFyLgorICAgICAqIEByZXR1cm4gYSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5oYXNoQ29kZSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHRoZSBtb21lbnQgdGhpcworICAgICAqIGNhbGVuZGFyIGlzIHNldCB0byBhbmQgdGhlIG1vbWVudCB0aGUgZ2l2ZW4gY2FsZW5kYXIgb3IgRGF0ZSBvYmplY3QKKyAgICAgKiBpcyBzZXQgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGNvbXBhcmUoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgbG9uZyB0aGF0TXM7CisgICAgICAgIGlmICh0aGF0IGluc3RhbmNlb2YgQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgIHRoYXRNcyA9ICgoQ2FsZW5kYXIpdGhhdCkuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIH0gZWxzZSBpZiAodGhhdCBpbnN0YW5jZW9mIERhdGUpIHsKKyAgICAgICAgICAgIHRoYXRNcyA9ICgoRGF0ZSl0aGF0KS5nZXRUaW1lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHRoYXQgKyAiaXMgbm90IGEgQ2FsZW5kYXIgb3IgRGF0ZSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRUaW1lSW5NaWxsaXMoKSAtIHRoYXRNczsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSB0aW1lIGZpZWxkIHJlY29yZHMuCisgICAgICogRXF1aXZhbGVudCB0byBjb21wYXJpbmcgcmVzdWx0IG9mIGNvbnZlcnNpb24gdG8gVVRDLgorICAgICAqIEBwYXJhbSB3aGVuIHRoZSBDYWxlbmRhciB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMgQ2FsZW5kYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IHRpbWUgb2YgdGhpcyBDYWxlbmRhciBpcyBiZWZvcmUKKyAgICAgKiB0aGUgdGltZSBvZiBDYWxlbmRhciB3aGVuOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gYmVmb3JlKE9iamVjdCB3aGVuKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKHdoZW4pIDwgMDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSB0aW1lIGZpZWxkIHJlY29yZHMuCisgICAgICogRXF1aXZhbGVudCB0byBjb21wYXJpbmcgcmVzdWx0IG9mIGNvbnZlcnNpb24gdG8gVVRDLgorICAgICAqIEBwYXJhbSB3aGVuIHRoZSBDYWxlbmRhciB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMgQ2FsZW5kYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IHRpbWUgb2YgdGhpcyBDYWxlbmRhciBpcyBhZnRlcgorICAgICAqIHRoZSB0aW1lIG9mIENhbGVuZGFyIHdoZW47IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBhZnRlcihPYmplY3Qgd2hlbikgeworICAgICAgICByZXR1cm4gY29tcGFyZSh3aGVuKSA+IDA7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1heGltdW0gdmFsdWUgdGhhdCB0aGlzIGZpZWxkIGNvdWxkIGhhdmUsIGdpdmVuIHRoZQorICAgICAqIGN1cnJlbnQgZGF0ZS4gIEZvciBleGFtcGxlLCB3aXRoIHRoZSBHcmVnb3JpYW4gZGF0ZSBGZWJydWFyeSAzLCAxOTk3CisgICAgICogYW5kIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkLCB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBpcyAyODsgZm9yIEZlYnJ1YXJ5IDMsIDE5OTYgaXQgaXMgMjkuCisgICAgICoKKyAgICAgKiA8cD5UaGUgYWN0dWFsIG1heGltdW0gY29tcHV0YXRpb24gaWdub3JlcyBzbWFsbGVyIGZpZWxkcyBhbmQgdGhlCisgICAgICogY3VycmVudCB2YWx1ZSBvZiBsaWtlLXNpemVkIGZpZWxkcy4gIEZvciBleGFtcGxlLCB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBvZiB0aGUgREFZX09GX1lFQVIgb3IgTU9OVEggZGVwZW5kcyBvbmx5IG9uIHRoZSB5ZWFyIGFuZCBzdXByYS15ZWFyCisgICAgICogZmllbGRzLiAgVGhlIGFjdHVhbCBtYXhpbXVtIG9mIHRoZSBEQVlfT0ZfTU9OVEggZGVwZW5kcywgaW4KKyAgICAgKiBhZGRpdGlvbiwgb24gdGhlIE1PTlRIIGZpZWxkIGFuZCBhbnkgb3RoZXIgZmllbGRzIGF0IHRoYXQKKyAgICAgKiBncmFudWxhcml0eSAoc3VjaCBhcyBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkuICBUaGUKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USCBmaWVsZCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIGN1cnJlbnQKKyAgICAgKiBEQVlfT0ZfV0VFSzsgaXQgcmV0dXJucyB0aGUgbWF4aW11bSBmb3IgYW55IGRheSBvZiB3ZWVrIGluIHRoZQorICAgICAqIGN1cnJlbnQgbW9udGguICBMaWtld2lzZSBmb3IgdGhlIFdFRUtfT0ZfTU9OVEggYW5kIFdFRUtfT0ZfWUVBUgorICAgICAqIGZpZWxkcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgd2hvc2UgbWF4aW11bSBpcyBkZXNpcmVkCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSBvZiB0aGUgZ2l2ZW4gZmllbGQgZm9yIHRoZSBjdXJyZW50IGRhdGUgb2YgdGhpcyBjYWxlbmRhcgorICAgICAqIEBzZWUgI2dldE1heGltdW0KKyAgICAgKiBAc2VlICNnZXRMZWFzdE1heGltdW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFjdHVhbE1heGltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWluaW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZS4KKyAgICAgKiBGb3IgbW9zdCBmaWVsZHMsIHRoaXMgaXMgdGhlIHNhbWUgYXMge0BsaW5rICNnZXRNaW5pbXVtIGdldE1pbmltdW19CisgICAgICogYW5kIHtAbGluayAjZ2V0R3JlYXRlc3RNaW5pbXVtIGdldEdyZWF0ZXN0TWluaW11bX0uICBIb3dldmVyLCBzb21lIGZpZWxkcywKKyAgICAgKiBlc3BlY2lhbGx5IHRob3NlIHJlbGF0ZWQgdG8gd2VlayBudW1iZXIsIGFyZSBtb3JlIGNvbXBsaWNhdGVkLgorICAgICAqIDxwPgorICAgICAqIEZvciBleGFtcGxlLCBhc3N1bWUge0BsaW5rICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWt9CisgICAgICogcmV0dXJucyA0IGFuZCB7QGxpbmsgI2dldEZpcnN0RGF5T2ZXZWVrIGdldEZpcnN0RGF5T2ZXZWVrfSByZXR1cm5zIFNVTkRBWS4KKyAgICAgKiBJZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBpcyBTdW5kYXksIE1vbmRheSwgVHVlc2RheSwgb3IgV2VkbmVzZGF5CisgICAgICogdGhlcmUgd2lsbCBiZSBmb3VyIG9yIG1vcmUgZGF5cyBpbiB0aGUgZmlyc3Qgd2Vlaywgc28gaXQgd2lsbCBiZSB3ZWVrIG51bWJlciAxLAorICAgICAqIGFuZCA8Y29kZT5nZXRBY3R1YWxNaW5pbXVtKFdFRUtfT0ZfTU9OVEgpPC9jb2RlPiB3aWxsIHJldHVybiAxLiAgSG93ZXZlciwKKyAgICAgKiBpZiB0aGUgZmlyc3Qgb2YgdGhlIG1vbnRoIGlzIGEgVGh1cnNkYXksIEZyaWRheSwgb3IgU2F0dXJkYXksIHRoZXJlIGFyZQorICAgICAqIDxlbT5ub3Q8L2VtPiBmb3VyIGRheXMgaW4gdGhhdCB3ZWVrLCBzbyBpdCBpcyB3ZWVrIG51bWJlciAwLCBhbmQKKyAgICAgKiA8Y29kZT5nZXRBY3R1YWxNaW5pbXVtKFdFRUtfT0ZfTU9OVEgpPC9jb2RlPiB3aWxsIHJldHVybiAwLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgd2hvc2UgYWN0dWFsIG1pbmltdW0gdmFsdWUgaXMgZGVzaXJlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIG9mIHRoZSBnaXZlbiBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBvZiB0aGlzIGNhbGVuZGFyCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtCisgICAgICogQHNlZSAjZ2V0R3JlYXRlc3RNaW5pbXVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBY3R1YWxNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0QWN0dWFsTWluaW11bShmaWVsZCk7CisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUm9sbHMgKHVwL2Rvd24pIGEgc2luZ2xlIHVuaXQgb2YgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4gRm9yCisgICAgICogZXhhbXBsZSwgdG8gcm9sbCB0aGUgY3VycmVudCBkYXRlIHVwIGJ5IG9uZSBkYXksIHlvdSBjYW4gY2FsbDoKKyAgICAgKiA8cD4KKyAgICAgKiA8Y29kZT5yb2xsKHtAbGluayAjREFURX0sIHRydWUpPC9jb2RlPgorICAgICAqIDxwPgorICAgICAqIFdoZW4gcm9sbGluZyBvbiB0aGUge0BsaW5rICNZRUFSfSBmaWVsZCwgaXQgd2lsbCByb2xsIHRoZSB5ZWFyCisgICAgICogdmFsdWUgaW4gdGhlIHJhbmdlIGJldHdlZW4gMSBhbmQgdGhlIHZhbHVlIHJldHVybmVkIGJ5IGNhbGxpbmcKKyAgICAgKiB7QGxpbmsgI2dldE1heGltdW0gZ2V0TWF4aW11bX0oe0BsaW5rICNZRUFSfSkuCisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gcm9sbGluZyB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkCisgICAgICogZm9yIHRoZSBHcmVnb3JpYW4gZGF0ZSAxLzMxLzk2IHVwd2FyZCwgdGhlIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gQ2FsbGluZyA8dHQ+cm9sbChmaWVsZCwgdHJ1ZSk8L3R0PiBOIHRpbWVzIGlzIDxlbT5ub3Q8L2VtPgorICAgICAqIG5lY2Vzc2FyaWx5IGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8dHQ+cm9sbChmaWVsZCwgTik8L3R0Pi4gIEZvciBleGFtcGxlLAorICAgICAqIGltYWdpbmUgdGhhdCB5b3Ugc3RhcnQgd2l0aCB0aGUgZGF0ZSBHcmVnb3JpYW4gZGF0ZSBKYW51YXJ5IDMxLCAxOTk1LiAgSWYgeW91IGNhbGwKKyAgICAgKiA8dHQ+cm9sbChDYWxlbmRhci5NT05USCwgMik8L3R0PiwgdGhlIHJlc3VsdCB3aWxsIGJlIE1hcmNoIDMxLCAxOTk1LgorICAgICAqIEJ1dCBpZiB5b3UgY2FsbCA8dHQ+cm9sbChDYWxlbmRhci5NT05USCwgdHJ1ZSk8L3R0PiwgdGhlIHJlc3VsdCB3aWxsIGJlCisgICAgICogRmVicnVhcnkgMjgsIDE5OTUuICBDYWxsaW5nIGl0IG9uZSBtb3JlIHRpbWUgd2lsbCBnaXZlIE1hcmNoIDI4LCAxOTk1LCB3aGljaAorICAgICAqIGlzIHVzdWFsbHkgbm90IHRoZSBkZXNpcmVkIHJlc3VsdC4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIDx0dD5yb2xsPC90dD4gYW5kIDx0dD5hZGQ8L3R0PiByYXRoZXIKKyAgICAgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICAgICAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICAgICAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAgICAgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAgICAgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICAgICAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGNhbGVuZGFyIGZpZWxkIHRvIHJvbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXAgICAgaW5kaWNhdGVzIGlmIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHRpbWUgZmllbGQgaXMgdG8gYmUKKyAgICAgKiAgICAgICAgICAgICAgcm9sbGVkIHVwIG9yIHJvbGxlZCBkb3duLiBVc2UgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgcm9sbGluZyB1cCwKKyAgICAgKiAgICAgICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZS4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyb2xsKGludCwgaW50KQorICAgICAqIEBzZWUgI2FkZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJvbGwoaW50IGZpZWxkLCBib29sZWFuIHVwKSB7CisgICAgICAgIGNhbGVuZGFyLnJvbGwoZmllbGQsIHVwKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJvbGxzICh1cC9kb3duKSBhIHNwZWNpZmllZCBhbW91bnQgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgdGhyZWUgZGF5cywgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+cm9sbChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgY2FsbGluZyA8Y29kZT5yb2xsKENhbGVuZGFyLkRBVEUsIDEwKTwvY29kZT4KKyAgICAgKiBvbiBhIEdyZWdvcmlhbiBjYWxlbmRhciBzZXQgdG8gNC8yNS85NiB3aWxsIHJlc3VsdCBpbiB0aGUgZGF0ZSA0LzUvOTYuCisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gcm9sbGluZyB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYgYnkgKzEsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgMi8yOS85NiByYXRoZXIgdGhhbiB0aGUgaW52YWxpZAorICAgICAqIDIvMzEvOTYuCisgICAgICogPHA+CisgICAgICogVGhlIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIGlzIGFibGUgdG8gcm9sbAorICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LiAgU3ViY2xhc3NlcyBtYXksIG9mIGNvdXJzZSwgYWRkIHN1cHBvcnQgZm9yCisgICAgICogYWRkaXRpb25hbCBmaWVsZHMgaW4gdGhlaXIgb3ZlcnJpZGVzIG9mIDxjb2RlPnJvbGw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj48YnI+CisgICAgICogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5yb2xsPC9jb2RlPiBhc3N1bWVzIHRoYXQgdGhlIGJlaGF2aW9yIG9mIHRoZQorICAgICAqIGZpZWxkIGlzIGNvbnRpbnVvdXMgYmV0d2VlbiBpdHMgbWluaW11bSBhbmQgbWF4aW11bSwgd2hpY2ggYXJlIGZvdW5kIGJ5CisgICAgICogY2FsbGluZyB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kIHtAbGluayAjZ2V0QWN0dWFsTWF4aW11bSBnZXRBY3R1YWxNYXhpbXVtfS4KKyAgICAgKiBGb3IgbW9zdCBzdWNoIGZpZWxkcywgc2ltcGxlIGFkZGl0aW9uLCBzdWJ0cmFjdGlvbiwgYW5kIG1vZHVsdXMgb3BlcmF0aW9ucworICAgICAqIGFyZSBzdWZmaWNpZW50IHRvIHBlcmZvcm0gdGhlIHJvbGwuICBGb3Igd2Vlay1yZWxhdGVkIGZpZWxkcywKKyAgICAgKiB0aGUgcmVzdWx0cyBvZiB7QGxpbmsgI2dldEZpcnN0RGF5T2ZXZWVrIGdldEZpcnN0RGF5T2ZXZWVrfSBhbmQKKyAgICAgKiB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30gYXJlIGFsc28gbmVjZXNzYXJ5LgorICAgICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoZXNlIHR3byBtZXRob2RzIGlmIHRoZWlyIHZhbHVlcyBkaWZmZXIgZnJvbSB0aGUgZGVmYXVsdHMuCisgICAgICogPHA+CisgICAgICogU3ViY2xhc3NlcyB0aGF0IGhhdmUgZmllbGRzIGZvciB3aGljaCB0aGUgYXNzdW1wdGlvbiBvZiBjb250aW51aXR5IGJyZWFrcworICAgICAqIGRvd24gbXVzdCBvdmVyaWRlIDxjb2RlPnJvbGw8L2NvZGU+IHRvIGhhbmRsZSB0aG9zZSBmaWVsZHMgc3BlY2lhbGx5LgorICAgICAqIEZvciBleGFtcGxlLCBpbiB0aGUgSGVicmV3IGNhbGVuZGFyIHRoZSBtb250aCAiQWRhciBJIgorICAgICAqIG9ubHkgb2NjdXJzIGluIGxlYXAgeWVhcnM7IGluIG90aGVyIHllYXJzIHRoZSBjYWxlbmRhciBqdW1wcyBmcm9tCisgICAgICogU2hldmF0IChtb250aCAjNCkgdG8gQWRhciAobW9udGggIzYpLiAgVGhlCisgICAgICoge0BsaW5rIEhlYnJld0NhbGVuZGFyI3JvbGwgSGVicmV3Q2FsZW5kYXIucm9sbH0gbWV0aG9kIHRha2VzIHRoaXMgaW50byBhY2NvdW50LAorICAgICAqIHNvIHRoYXQgcm9sbGluZyB0aGUgbW9udGggb2YgU2hldmF0IGJ5IG9uZSBnaXZlcyB0aGUgcHJvcGVyIHJlc3VsdCAoQWRhcikgaW4gYQorICAgICAqIG5vbi1sZWFwIHllYXIuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgY2FsZW5kYXIgZmllbGQgdG8gcm9sbC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIGZpZWxkIHNob3VsZCBiZSByb2xsZWQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICogQHNlZSAjcm9sbChpbnQsIGJvb2xlYW4pCisgICAgICogQHNlZSAjYWRkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgY2FsZW5kYXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkZCBhIHNpZ25lZCBhbW91bnQgdG8gYSBzcGVjaWZpZWQgZmllbGQsIHVzaW5nIHRoaXMgY2FsZW5kYXIncyBydWxlcy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdG8gYWRkIHRocmVlIGRheXMgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+YWRkKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGFkZGluZyB0byBjZXJ0YWluIGZpZWxkcywgdGhlIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgbWF5IGNvbmZsaWN0IGFuZAorICAgICAqIG5lZWQgdG8gYmUgY2hhbmdlZC4gIEZvciBleGFtcGxlLCB3aGVuIGFkZGluZyBvbmUgdG8gdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkCisgICAgICogZm9yIHRoZSBHcmVnb3JpYW4gZGF0ZSAxLzMxLzk2LCB0aGUge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzIDIvMjkvOTYgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAyLzMxLzk2LgorICAgICAqIDxwPgorICAgICAqIFRoZSA8Y29kZT5jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZCBpcyBhYmxlIHRvIGFkZCB0bworICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LiAgU3ViY2xhc3NlcyBtYXksIG9mIGNvdXJzZSwgYWRkIHN1cHBvcnQgZm9yCisgICAgICogYWRkaXRpb25hbCBmaWVsZHMgaW4gdGhlaXIgb3ZlcnJpZGVzIG9mIDxjb2RlPmFkZDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSA8dHQ+cm9sbDwvdHQ+IGFuZCA8dHQ+YWRkPC90dD4gcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAgICAgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgICAgICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgICAgICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAgICAgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPmFkZDwvY29kZT4gYXNzdW1lcyB0aGF0IHRoZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgKiBmaWVsZCBpcyBjb250aW51b3VzIGJldHdlZW4gaXRzIG1pbmltdW0gYW5kIG1heGltdW0sIHdoaWNoIGFyZSBmb3VuZCBieQorICAgICAqIGNhbGxpbmcge0BsaW5rICNnZXRBY3R1YWxNaW5pbXVtIGdldEFjdHVhbE1pbmltdW19IGFuZAorICAgICAqIHtAbGluayAjZ2V0QWN0dWFsTWF4aW11bSBnZXRBY3R1YWxNYXhpbXVtfS4KKyAgICAgKiBGb3Igc3VjaCBmaWVsZHMsIHNpbXBsZSBhcml0aG1ldGljIG9wZXJhdGlvbnMgYXJlIHN1ZmZpY2llbnQgdG8KKyAgICAgKiBwZXJmb3JtIHRoZSBhZGQuCisgICAgICogPHA+CisgICAgICogU3ViY2xhc3NlcyB0aGF0IGhhdmUgZmllbGRzIGZvciB3aGljaCB0aGlzIGFzc3VtcHRpb24gb2YgY29udGludWl0eSBicmVha3MKKyAgICAgKiBkb3duIG11c3Qgb3ZlcmlkZSA8Y29kZT5hZGQ8L2NvZGU+IHRvIGhhbmRsZSB0aG9zZSBmaWVsZHMgc3BlY2lhbGx5LgorICAgICAqIEZvciBleGFtcGxlLCBpbiB0aGUgSGVicmV3IGNhbGVuZGFyIHRoZSBtb250aCAiQWRhciBJIgorICAgICAqIG9ubHkgb2NjdXJzIGluIGxlYXAgeWVhcnM7IGluIG90aGVyIHllYXJzIHRoZSBjYWxlbmRhciBqdW1wcyBmcm9tCisgICAgICogU2hldmF0IChtb250aCAjNCkgdG8gQWRhciAobW9udGggIzYpLiAgVGhlCisgICAgICoge0BsaW5rIEhlYnJld0NhbGVuZGFyI2FkZCBIZWJyZXdDYWxlbmRhci5hZGR9IG1ldGhvZCB0YWtlcyB0aGlzIGludG8gYWNjb3VudCwKKyAgICAgKiBzbyB0aGF0IGFkZGluZyBvbmUgbW9udGgKKyAgICAgKiB0byBhIGRhdGUgaW4gU2hldmF0IGdpdmVzIHRoZSBwcm9wZXIgcmVzdWx0IChBZGFyKSBpbiBhIG5vbi1sZWFwIHllYXIuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgdG8gYWRkIHRvIHRoZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyb2xsKGludCwgaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgY2FsZW5kYXIuYWRkKGZpZWxkLCBhbW91bnQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgY2FsZW5kYXIgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiAiQ2FsZW5kYXIiOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgY2FsZW5kYXIgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiAiQ2FsZW5kYXIiOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWVzIChpbiBtaWxsaXMpIHJlcHJlc2VudGVkIGJ5IHR3bworICAgICAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3RzLgorICAgICAqCisgICAgICogQHBhcmFtIHRoYXQgdGhlIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiB0byBjb21wYXJlIHRvIHRoaXMuCisgICAgICogQHJldHVybiA8Y29kZT4wPC9jb2RlPiBpZiB0aGUgdGltZSByZXByZXNlbnRlZCBieSAKKyAgICAgKiB0aGlzIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBlcXVhbCB0byB0aGUgdGltZSByZXByZXNlbnRlZCAKKyAgICAgKiBieSB0aGF0IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiwgYSB2YWx1ZSBsZXNzIHRoYW4gCisgICAgICogPGNvZGU+MDwvY29kZT4gaWYgdGhlIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhpcyBpcyBiZWZvcmUKKyAgICAgKiB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGF0LCBhbmQgYSB2YWx1ZSBncmVhdGVyIHRoYW4KKyAgICAgKiA8Y29kZT4wPC9jb2RlPiBpZiB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGlzCisgICAgICogaXMgYWZ0ZXIgdGhlIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhhdC4KKyAgICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHRoYXQgCisgICAgICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIG51bGwuCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHRpbWUgb2YgdGhhdCAKKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY2FuJ3QgYmUgb2J0YWluZWQgYmVjYXVzZSBvZiBpbnZhbGlkCisgICAgICogY2FsZW5kYXIgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oQ2FsZW5kYXIgdGhhdCkgeworICAgICAgICBsb25nIHYgPSBnZXRUaW1lSW5NaWxsaXMoKSAtIHRoYXQuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIHJldHVybiB2IDwgMCA/IC0xIDogKHYgPiAwID8gMSA6IDApOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IGNvbXBhcmFibGUgQVBJIGFzIGEgY29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YKKyAgICAgKiB7QGxpbmsgI2NvbXBhcmVUbyhDYWxlbmRhcil9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVUbygoQ2FsZW5kYXIpdGhhdCk7CisgICAgfQorICAgICAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcmZhY2UgZm9yIGNyZWF0aW5nIGN1c3RvbiBEYXRlRm9ybWF0cyBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIENhbGVuZGFycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdEhlbHBlcih0aGlzLCBsb2MsIGRhdGVTdHlsZSwgdGltZVN0eWxlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUZvcm1hdChpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gZm9ybWF0SGVscGVyKHRoaXMsIGxvYy50b0xvY2FsZSgpLCBkYXRlU3R5bGUsIHRpbWVTdHlsZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKgorICAgICAqIFV0aWxpdHkgZm9yIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgRGF0ZUZvcm1hdCBmb3JtYXRIZWxwZXIoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jLCBpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIC8vIEFzc3VtZSB0aGVyZSBpcyBvbmx5IG9uZSBraW5kIG9mIGNhbGVuZGFyLiAgSW4gSmF2YSA2IHRoZXJlIHdpbGwgYWxzbyBiZSBKYXBhbmVzZQorICAgICAgICAvLyBjYWxlbmRhcnMsIGJ1dCB3ZSdsbCB3b3JyeSBhYm91dCB0aGF0IHdoZW4gaXQgaGFwcGVucy4KKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIGRmOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBbTkVXXQorICAgICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBnaXZlbiB0aW1lIGFuZCB0aGUgdGltZSB0aGlzCisgICAgICogY2FsZW5kYXIgb2JqZWN0IGlzIHNldCB0by4gIElmIHRoaXMgY2FsZW5kYXIgaXMgc2V0CisgICAgICogPGVtPmJlZm9yZTwvZW0+IHRoZSBnaXZlbiB0aW1lLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZQorICAgICAqIHBvc2l0aXZlLiAgSWYgdGhpcyBjYWxlbmRhciBpcyBzZXQgPGVtPmFmdGVyPC9lbT4gdGhlIGdpdmVuCisgICAgICogdGltZSwgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgbmVnYXRpdmUuICBUaGUKKyAgICAgKiA8Y29kZT5maWVsZDwvY29kZT4gcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdW5pdHMgb2YgdGhlIHJldHVybgorICAgICAqIHZhbHVlLiAgRm9yIGV4YW1wbGUsIGlmIDxjb2RlPmZpZWxkRGlmZmVyZW5jZSh3aGVuLAorICAgICAqIENhbGVuZGFyLk1PTlRIKTwvY29kZT4gcmV0dXJucyAzLCB0aGVuIHRoaXMgY2FsZW5kYXIgaXMgc2V0IHRvCisgICAgICogMyBtb250aHMgYmVmb3JlIDxjb2RlPndoZW48L2NvZGU+LCBhbmQgcG9zc2libHkgc29tZSBhZGRpdGlvbmFsCisgICAgICogdGltZSBsZXNzIHRoYW4gb25lIG1vbnRoLgorICAgICAqCisgICAgICogPHA+QXMgYSBzaWRlIGVmZmVjdCBvZiB0aGlzIGNhbGwsIHRoaXMgY2FsZW5kYXIgaXMgYWR2YW5jZWQKKyAgICAgKiB0b3dhcmQgPGNvZGU+d2hlbjwvY29kZT4gYnkgdGhlIGdpdmVuIGFtb3VudC4gIFRoYXQgaXMsIGNhbGxpbmcKKyAgICAgKiB0aGlzIG1ldGhvZCBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGNhbGxpbmcgPGNvZGU+YWRkKGZpZWxkLAorICAgICAqIG4pPC9jb2RlPiwgd2hlcmUgPGNvZGU+bjwvY29kZT4gaXMgdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgKgorICAgICAqIDxwPlVzYWdlOiBUbyB1c2UgdGhpcyBtZXRob2QsIGNhbGwgaXQgZmlyc3Qgd2l0aCB0aGUgbGFyZ2VzdAorICAgICAqIGZpZWxkIG9mIGludGVyZXN0LCB0aGVuIHdpdGggcHJvZ3Jlc3NpdmVseSBzbWFsbGVyIGZpZWxkcy4gIEZvcgorICAgICAqIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiA8cHJlPgorICAgICAqIGludCB5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5ZRUFSKTsKKyAgICAgKiBpbnQgbSA9IGNhbC5maWVsZERpZmZlcmVuY2Uod2hlbiwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5EQVRFKTs8L3ByZT4KKyAgICAgKgorICAgICAqIGNvbXB1dGVzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gPGNvZGU+Y2FsPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT53aGVuPC9jb2RlPiBpbiB5ZWFycywgbW9udGhzLCBhbmQgZGF5cy4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IDxjb2RlPmZpZWxkRGlmZmVyZW5jZSgpPC9jb2RlPiBpcworICAgICAqIDxlbT5hc3ltbWV0cmljYWw8L2VtPi4gIFRoYXQgaXMsIGluIHRoZSBmb2xsb3dpbmcgY29kZToKKyAgICAgKgorICAgICAqIDxwcmU+CisgICAgICogY2FsLnNldFRpbWUoZGF0ZTEpOworICAgICAqIGludCBtMSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLk1PTlRIKTsKKyAgICAgKiBpbnQgZDEgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5EQVRFKTsKKyAgICAgKiBjYWwuc2V0VGltZShkYXRlMik7CisgICAgICogaW50IG0yID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMSwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkMiA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTEsIENhbGVuZGFyLkRBVEUpOzwvcHJlPgorICAgICAqCisgICAgICogb25lIG1pZ2h0IGV4cGVjdCB0aGF0IDxjb2RlPm0xID09IC1tMiAmJiBkMSA9PSAtZDI8L2NvZGU+LgorICAgICAqIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGdlbmVyYWxseSB0aGUgY2FzZSwgYmVjYXVzZSBvZgorICAgICAqIGlycmVndWxhcml0aWVzIGluIHRoZSB1bmRlcmx5aW5nIGNhbGVuZGFyIHN5c3RlbSAoZS5nLiwgdGhlCisgICAgICogR3JlZ29yaWFuIGNhbGVuZGFyIGhhcyBhIHZhcnlpbmcgbnVtYmVyIG9mIGRheXMgcGVyIG1vbnRoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB3aGVuIHRoZSBkYXRlIHRvIGNvbXBhcmUgdGhpcyBjYWxlbmRhcidzIHRpbWUgdG8KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGZpZWxkIGluIHdoaWNoIHRvIGNvbXB1dGUgdGhlIHJlc3VsdAorICAgICAqIEByZXR1cm4gdGhlIGRpZmZlcmVuY2UsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgYmV0d2VlbgorICAgICAqIHRoaXMgY2FsZW5kYXIncyB0aW1lIGFuZCA8Y29kZT53aGVuPC9jb2RlPiwgaW4gdGVybXMgb2YKKyAgICAgKiA8Y29kZT5maWVsZDwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmaWVsZERpZmZlcmVuY2UoRGF0ZSB3aGVuLCBpbnQgZmllbGQpIHsKKyAgICAgICAgaW50IG1pbiA9IDA7CisgICAgICAgIGxvbmcgc3RhcnRNcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICBsb25nIHRhcmdldE1zID0gd2hlbi5nZXRUaW1lKCk7CisgICAgICAgIC8vIEFsd2F5cyBhZGQgZnJvbSB0aGUgc3RhcnQgbWlsbGlzLiAgVGhpcyBhY2NvbW9kYXRlcworICAgICAgICAvLyBvcGVyYXRpb25zIGxpa2UgYWRkaW5nIHllYXJzIGZyb20gRmVicnVhcnkgMjksIDIwMDAgdXAgdG8KKyAgICAgICAgLy8gRmVicnVhcnkgMjksIDIwMDQuICBJZiAxLCAxLCAxLCAxIGlzIGFkZGVkIHRvIHRoZSB5ZWFyCisgICAgICAgIC8vIGZpZWxkLCB0aGUgRE9NIGdldHMgcGlubmVkIHRvIDI4IGFuZCBzdGF5cyB0aGVyZSwgZ2l2aW5nIGFuCisgICAgICAgIC8vIGluY29ycmVjdCBET00gZGlmZmVyZW5jZSBvZiAxLiAgV2UgaGF2ZSB0byBhZGQgMSwgcmVzZXQsIDIsCisgICAgICAgIC8vIHJlc2V0LCAzLCByZXNldCwgNC4KKyAgICAgICAgaWYgKHN0YXJ0TXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgaW50IG1heCA9IDE7CisgICAgICAgICAgICAvLyBGaW5kIGEgdmFsdWUgdGhhdCBpcyB0b28gbGFyZ2UKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCBtYXgpOworICAgICAgICAgICAgICAgIGxvbmcgbXMgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobXMgPT0gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1heDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4IDw8PSAxOworICAgICAgICAgICAgICAgICAgICBpZiAobWF4IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmllbGQgZGlmZmVyZW5jZSB0b28gbGFyZ2UgdG8gZml0IGludG8gaW50CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoCisgICAgICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAxKSB7CisgICAgICAgICAgICAgICAgaW50IHQgPSAobWluICsgbWF4KSAvIDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgdCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtaW4gPSB0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGFydE1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgd29ya3MsIGFuZCBtYWtlcyB0aGUgY29kZSBzbWFsbGVyLCBidXQgY29zdHMKKyAgICAgICAgICAgICAgICAvLyBhbiBleHRyYSBvYmplY3QgY3JlYXRpb24gYW5kIGFuIGV4dHJhIGNvdXBsZSBjeWNsZXMKKyAgICAgICAgICAgICAgICAvLyBvZiBjYWxlbmRhciBjb21wdXRhdGlvbi4KKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGFyZ2V0TXMpOworICAgICAgICAgICAgICAgIG1pbiA9IC1maWVsZERpZmZlcmVuY2UobmV3IERhdGUoc3RhcnRNcyksIGZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBtYXggPSAtMTsKKyAgICAgICAgICAgIC8vIEZpbmQgYSB2YWx1ZSB0aGF0IGlzIHRvbyBzbWFsbAorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIG1heCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF4OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXggPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmllbGQgZGlmZmVyZW5jZSB0b28gbGFyZ2UgdG8gZml0IGludG8gaW50CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoCisgICAgICAgICAgICB3aGlsZSAoKG1pbiAtIG1heCkgPiAxKSB7CisgICAgICAgICAgICAgICAgaW50IHQgPSAobWluICsgbWF4KSAvIDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgdCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zIDwgdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtaW4gPSB0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBTZXQgY2FsZW5kYXIgdG8gZW5kIHBvaW50CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgYWRkKGZpZWxkLCBtaW4pOworICAgICAgICByZXR1cm4gbWluOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIHRpbWUgem9uZSB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUaW1lWm9uZShUaW1lWm9uZSB2YWx1ZSkgeworICAgICAgICBjYWxlbmRhci5zZXRUaW1lWm9uZSh2YWx1ZS50aW1lWm9uZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgdGltZSB6b25lIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgVGltZVpvbmUoY2FsZW5kYXIuZ2V0VGltZVpvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IGRhdGUvdGltZSBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBsZW5pZW50LiAgV2l0aAorICAgICAqIGxlbmllbnQgaW50ZXJwcmV0YXRpb24sIGEgZGF0ZSBzdWNoIGFzICJGZWJydWFyeSA5NDIsIDE5OTYiIHdpbGwgYmUKKyAgICAgKiB0cmVhdGVkIGFzIGJlaW5nIGVxdWl2YWxlbnQgdG8gdGhlIDk0MXN0IGRheSBhZnRlciBGZWJydWFyeSAxLCAxOTk2LgorICAgICAqIFdpdGggc3RyaWN0IGludGVycHJldGF0aW9uLCBzdWNoIGRhdGVzIHdpbGwgY2F1c2UgYW4gZXhjZXB0aW9uIHRvIGJlCisgICAgICogdGhyb3duLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I3NldExlbmllbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMZW5pZW50KGJvb2xlYW4gbGVuaWVudCkgICAgIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRlbGwgd2hldGhlciBkYXRlL3RpbWUgaW50ZXJwcmV0YXRpb24gaXMgdG8gYmUgbGVuaWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0xlbmllbnQoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5pc0xlbmllbnQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgd2hhdCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGlzOyBlLmcuLCBTdW5kYXkgaW4gVVMsCisgICAgICogTW9uZGF5IGluIEZyYW5jZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIGdpdmVuIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGaXJzdERheU9mV2VlayhpbnQgdmFsdWUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0Rmlyc3REYXlPZldlZWsodmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB3aGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaXM7IGUuZy4sIFN1bmRheSBpbiBVUywKKyAgICAgKiBNb25kYXkgaW4gRnJhbmNlLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZpcnN0RGF5T2ZXZWVrKCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgd2hhdCB0aGUgbWluaW1hbCBkYXlzIHJlcXVpcmVkIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyIGFyZS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZpcnN0IHdlZWsgaXMgZGVmaW5lZCBhcyBvbmUgdGhhdCBjb250YWlucyB0aGUgZmlyc3QKKyAgICAgKiBkYXkgb2YgdGhlIGZpcnN0IG1vbnRoIG9mIGEgeWVhciwgY2FsbCB0aGUgbWV0aG9kIHdpdGggdmFsdWUgMS4gSWYgaXQKKyAgICAgKiBtdXN0IGJlIGEgZnVsbCB3ZWVrLCB1c2UgdmFsdWUgNy4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIGdpdmVuIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlaworICAgICAqIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoaW50IHZhbHVlKSB7CisgICAgICAgIGNhbGVuZGFyLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsodmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB3aGF0IHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIgYXJlOworICAgICAqIGUuZy4sIGlmIHRoZSBmaXJzdCB3ZWVrIGlzIGRlZmluZWQgYXMgb25lIHRoYXQgY29udGFpbnMgdGhlIGZpcnN0IGRheQorICAgICAqIG9mIHRoZSBmaXJzdCBtb250aCBvZiBhIHllYXIsIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgcmV0dXJucyAxLiBJZgorICAgICAqIHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgbXVzdCBiZSBhIGZ1bGwgd2VlaywgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaworICAgICAqIHJldHVybnMgNy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogZS5nLiwgZm9yIEdyZWdvcmlhbiBEQVlfT0ZfTU9OVEgsIDEuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldE1pbmltdW0oZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogZS5nLiBmb3IgR3JlZ29yaWFuIERBWV9PRl9NT05USCwgMzEuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldE1heGltdW0oZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaGlnaGVzdCBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gZmllbGQgaWYgdmFyaWVzLgorICAgICAqIE90aGVyd2lzZSBzYW1lIGFzIGdldE1pbmltdW0oKS4gRm9yIEdyZWdvcmlhbiwgbm8gZGlmZmVyZW5jZS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgaGlnaGVzdCBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEdyZWF0ZXN0TWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldEdyZWF0ZXN0TWluaW11bShmaWVsZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsb3dlc3QgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkIGlmIHZhcmllcy4KKyAgICAgKiBPdGhlcndpc2Ugc2FtZSBhcyBnZXRNYXhpbXVtKCkuIGUuZy4sIGZvciBHcmVnb3JpYW4gREFZX09GX01PTlRILCAyOC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbG93ZXN0IG1heGltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TGVhc3RNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0TGVhc3RNYXhpbXVtKGZpZWxkKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFdlZWtlbmQgc3VwcG9ydCAtLSBkZXRlcm1pbmluZyB3aGljaCBkYXlzIG9mIHRoZSB3ZWVrIGFyZSB0aGUgd2Vla2VuZAorICAgIC8vIGluIGEgZ2l2ZW4gbG9jYWxlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBkYXkgb2YgdGhlIHdlZWsgaXMgYSB3ZWVrZGF5LCBhCisgICAgICogd2Vla2VuZCBkYXksIG9yIGEgZGF5IHRoYXQgdHJhbnNpdGlvbnMgZnJvbSBvbmUgdG8gdGhlIG90aGVyLAorICAgICAqIGluIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgSWYgYSB0cmFuc2l0aW9uIG9jY3VycyBhdCBtaWRuaWdodCwKKyAgICAgKiB0aGVuIHRoZSBkYXlzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRyYW5zaXRpb24gd2lsbCBoYXZlIHRoZQorICAgICAqIHR5cGUgV0VFS0RBWSBvciBXRUVLRU5ELiAgSWYgYSB0cmFuc2l0aW9uIG9jY3VycyBhdCBhIHRpbWUKKyAgICAgKiBvdGhlciB0aGFuIG1pZG5pZ2h0LCB0aGVuIHRoZSBkYXkgb2YgdGhlIHRyYW5zaXRpb24gd2lsbCBoYXZlCisgICAgICogdGhlIHR5cGUgV0VFS0VORF9PTlNFVCBvciBXRUVLRU5EX0NFQVNFLiAgSW4gdGhpcyBjYXNlLCB0aGUKKyAgICAgKiBtZXRob2QgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSB3aWxsIHJldHVybiB0aGUgcG9pbnQgb2YKKyAgICAgKiB0cmFuc2l0aW9uLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgZWl0aGVyIFNVTkRBWSwgTU9OREFZLCBUVUVTREFZLCBXRURORVNEQVksCisgICAgICogVEhVUlNEQVksIEZSSURBWSwgb3IgU0FUVVJEQVkKKyAgICAgKiBAcmV0dXJuIGVpdGhlciBXRUVLREFZLCBXRUVLRU5ELCBXRUVLRU5EX09OU0VULCBvcgorICAgICAqIFdFRUtFTkRfQ0VBU0UKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBkYXlPZldlZWsgaXMgbm90CisgICAgICogYmV0d2VlbiBTVU5EQVkgYW5kIFNBVFVSREFZLCBpbmNsdXNpdmUKKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB7CisgICAgICAgIC8vIHdlZWtlbmQgYWx3YXlzIGZ1bGwgc2F0dXJkYXkgYW5kIHN1bmRheQorICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgMSB8fCBkYXlPZldlZWsgPiA3KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJpbGxlZ2FsIGRheSBvZiB3ZWVrOiAiICsgZGF5T2ZXZWVrKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGF5T2ZXZWVrID49IFNBVFVSREFZID8gV0VFS0VORCA6IFdFRUtEQVk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRpbWUgZHVyaW5nIHRoZSBkYXkgYXQgd2hpY2ggdGhlIHdlZWtlbmQgYmVnaW5zIG9yIGVuZCBpbgorICAgICAqIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgSWYgZ2V0RGF5T2ZXZWVrVHlwZShkYXlPZldlZWspID09CisgICAgICogV0VFS0VORF9PTlNFVCByZXR1cm4gdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHdlZWtlbmQgYmVnaW5zLiAgSWYKKyAgICAgKiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgPT0gV0VFS0VORF9DRUFTRSByZXR1cm4gdGhlIHRpbWUgYXQKKyAgICAgKiB3aGljaCB0aGUgd2Vla2VuZCBlbmRzLiAgSWYgZ2V0RGF5T2ZXZWVrVHlwZShkYXlPZldlZWspIGhhcyBzb21lCisgICAgICogb3RoZXIgdmFsdWUsIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgZWl0aGVyIFNVTkRBWSwgTU9OREFZLCBUVUVTREFZLCBXRURORVNEQVksCisgICAgICogVEhVUlNEQVksIEZSSURBWSwgb3IgU0FUVVJEQVkKKyAgICAgKiBAcmV0dXJuIHRoZSBtaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgYXQgd2hpY2ggdGhlCisgICAgICogd2Vla2VuZCBiZWdpbnMgb3IgZW5kcworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGRheU9mV2VlayBpcyBub3QKKyAgICAgKiBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjaXNXZWVrZW5kKERhdGUpCisgICAgICogQHNlZSAjaXNXZWVrZW5kKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFdlZWtlbmRUcmFuc2l0aW9uKGludCBkYXlPZldlZWspIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTm90IHdlZWtlbmQgdHJhbnNpdGlvbiBkYXkiKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lIGlzIGluIHRoZSB3ZWVrZW5kIGluCisgICAgICogdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBFcXVpdmFsZW50IHRvIGNhbGxpbmcgc2V0VGltZSgpIGZvbGxvd2VkCisgICAgICogYnkgaXNXZWVrZW5kKCkuICBOb3RlOiBUaGlzIG1ldGhvZCBjaGFuZ2VzIHRoZSB0aW1lIHRoaXMKKyAgICAgKiBjYWxlbmRhciBpcyBzZXQgdG8uCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgYW5kIHRpbWUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgcGFydCBvZiB0aGUKKyAgICAgKiB3ZWVrZW5kCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzZWUgI2dldFdlZWtlbmRUcmFuc2l0aW9uCisgICAgICogQHNlZSAjaXNXZWVrZW5kKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1dlZWtlbmQoRGF0ZSBkYXRlKSB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgICAgIHJldHVybiBpc1dlZWtlbmQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaXMgaW4gdGhlCisgICAgICogd2Vla2VuZCBpbiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgcGFydCBvZiB0aGUKKyAgICAgKiB3ZWVrZW5kCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzZWUgI2dldFdlZWtlbmRUcmFuc2l0aW9uCisgICAgICogQHNlZSAjaXNXZWVrZW5kKERhdGUpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNXZWVrZW5kKCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSA+PSBTQVRVUkRBWTsKKyAgICB9CisgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEVuZCBvZiB3ZWVrZW5kIHN1cHBvcnQKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoKGphdmEudXRpbC5DYWxlbmRhciljYWxlbmRhci5jbG9uZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGNhbGVuZGFyLiBUaGlzIG1ldGhvZAorICAgICAqIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgb25seSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLCBhbmQgdGhlCisgICAgICogZm9ybWF0IG9mIHRoZSByZXR1cm5lZCBzdHJpbmcgbWF5IHZhcnkgYmV0d2VlbiBpbXBsZW1lbnRhdGlvbnMuCisgICAgICogVGhlIHJldHVybmVkIHN0cmluZyBtYXkgYmUgZW1wdHkgYnV0IG1heSBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBDYWxlbmRhciB0eXBlLgorICAgICAqIE5vdGUsIGluIDMuMCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuICdncmVnb3JpYW4nIGluIENhbGVuZGFyIHRvIGVtdWxhdGUgbGVnYWN5IGJlaGF2aW9yCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0YykKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJncmVnb3JpYW4iOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU1Y2UyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKQEAgLTAsMCArMSw0MzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogPGNvZGU+VGltZVpvbmU8L2NvZGU+IHJlcHJlc2VudHMgYSB0aW1lIHpvbmUgb2Zmc2V0LCBhbmQgYWxzbyBmaWd1cmVzIG91dCBkYXlsaWdodAorICogc2F2aW5ncy4KKyAqCisgKiA8cD4KKyAqIFR5cGljYWxseSwgeW91IGdldCBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2luZyA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogd2hpY2ggY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBiYXNlZCBvbiB0aGUgdGltZSB6b25lIHdoZXJlIHRoZSBwcm9ncmFtCisgKiBpcyBydW5uaW5nLiBGb3IgZXhhbXBsZSwgZm9yIGEgcHJvZ3JhbSBydW5uaW5nIGluIEphcGFuLCA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3QgYmFzZWQgb24gSmFwYW5lc2UgU3RhbmRhcmQgVGltZS4KKyAqCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyBnZXQgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdXNpbmcgPGNvZGU+Z2V0VGltZVpvbmU8L2NvZGU+CisgKiBhbG9uZyB3aXRoIGEgdGltZSB6b25lIElELiBGb3IgaW5zdGFuY2UsIHRoZSB0aW1lIHpvbmUgSUQgZm9yIHRoZQorICogVS5TLiBQYWNpZmljIFRpbWUgem9uZSBpcyAiQW1lcmljYS9Mb3NfQW5nZWxlcyIuIFNvLCB5b3UgY2FuIGdldCBhCisgKiBVLlMuIFBhY2lmaWMgVGltZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gb2JqZWN0IHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFlvdSBjYW4gdXNlIDxjb2RlPmdldEF2YWlsYWJsZUlEczwvY29kZT4gbWV0aG9kIHRvIGl0ZXJhdGUgdGhyb3VnaAorICogYWxsIHRoZSBzdXBwb3J0ZWQgdGltZSB6b25lIElEcy4gWW91IGNhbiB0aGVuIGNob29zZSBhCisgKiBzdXBwb3J0ZWQgSUQgdG8gZ2V0IGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICogSWYgdGhlIHRpbWUgem9uZSB5b3Ugd2FudCBpcyBub3QgcmVwcmVzZW50ZWQgYnkgb25lIG9mIHRoZQorICogc3VwcG9ydGVkIElEcywgdGhlbiB5b3UgY2FuIGNyZWF0ZSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgd2l0aAorICogdGhlIGZvbGxvd2luZyBzeW50YXg6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogR01UWyt8LV1oaFtbOl1tbV0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgc3BlY2lmeSBHTVQrMTQ6MDAgYXMgYSBjdXN0b20KKyAqIHRpbWUgem9uZSBJRC4gIFRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdGhhdCBpcyByZXR1cm5lZAorICogd2hlbiB5b3Ugc3BlY2lmeSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgZG9lcyBub3QgaW5jbHVkZQorICogZGF5bGlnaHQgc2F2aW5ncyB0aW1lLgorICogPHA+CisgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEueCwgc29tZSBvdGhlciB0aHJlZS1sZXR0ZXIgdGltZSB6b25lIElEcworICogKHN1Y2ggYXMgIlBTVCIsICJDVFQiLCAiQVNUIikgYXJlIGFsc28gc3VwcG9ydGVkLiBIb3dldmVyLCA8c3Ryb25nPnRoZWlyCisgKiB1c2UgaXMgZGVwcmVjYXRlZDwvc3Ryb25nPiBiZWNhdXNlIHRoZSBzYW1lIGFiYnJldmlhdGlvbiBpcyBvZnRlbiB1c2VkCisgKiBmb3IgbXVsdGlwbGUgdGltZSB6b25lcyAoZm9yIGV4YW1wbGUsICJDU1QiIGNvdWxkIGJlIFUuUy4gIkNlbnRyYWwgU3RhbmRhcmQKKyAqIFRpbWUiIGFuZCAiQ2hpbmEgU3RhbmRhcmQgVGltZSIpLCBhbmQgdGhlIEphdmEgcGxhdGZvcm0gY2FuIHRoZW4gb25seQorICogcmVjb2duaXplIG9uZSBvZiB0aGVtLgorICoKKyAqIEBzZWUgICAgICAgICAgQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgU2ltcGxlVGltZVpvbmUKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgRGF2aWQgR29sZHNtaXRoLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFRpbWVab25lIGltcGxlbWVudHMgU2VyaWFsaXphYmxlLCBDbG9uZWFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBqYXZhLnV0aWwuVGltZVpvbmUgdGltZVpvbmU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwYXJhbSBkZWxlZ2F0ZSB0aGUgVGltZVpvbmUgdG8gd2hpY2ggdG8gZGVsZWdhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUoamF2YS51dGlsLlRpbWVab25lIGRlbGVnYXRlKSB7CisgICAgICAgIHRoaXMudGltZVpvbmUgPSBkZWxlZ2F0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIG1pcnJvciBKYXZhJ3MgcHVibGljCisgICAgICogY29uc3RydWN0b3IuICBKYXZhJ3MgaXMgbm90IGNhbGxhYmxlIGFzIGEgcHVibGljIEFQSSwgc2luY2UKKyAgICAgKiB0aGVpciBUaW1lWm9uZSBpcyBhYnN0cmFjdCwgc28gdGhpcyBpcyBvbmx5IHVzZWZ1bCB0bworICAgICAqIHN1YmNsYXNzZXMuICBJbiBnZW5lcmFsLCBzdWJjbGFzc2VzIHdpbGwgbm90IHdvcmsgdW5sZXNzCisgICAgICogdGhleSBtYW5pcHVsYXRlIHRoZSBkZWxlZ2F0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUoKSB7CisgICAgCXRoaXMudGltZVpvbmUgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBIHN0eWxlIHNwZWNpZmllciBmb3IgPGNvZGU+Z2V0RGlzcGxheU5hbWUoKTwvY29kZT4gaW5kaWNhdGluZworICAgICAqIGEgc2hvcnQgbmFtZSwgc3VjaCBhcyAiUFNULiIKKyAgICAgKiBAc2VlICNMT05HCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlQgPSAwOworCisgICAgLyoqCisgICAgICogQSBzdHlsZSBzcGVjaWZpZXIgZm9yIDxjb2RlPmdldERpc3BsYXlOYW1lKCk8L2NvZGU+IGluZGljYXRpbmcKKyAgICAgKiBhIGxvbmcgbmFtZSwgc3VjaCBhcyAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lLiIKKyAgICAgKiBAc2VlICNTSE9SVAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPTkcgID0gMTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgem9uZSBvZmZzZXQsIGZvciBjdXJyZW50IGRhdGUsIG1vZGlmaWVkIGluIGNhc2Ugb2YKKyAgICAgKiBkYXlsaWdodCBzYXZpbmdzLiBUaGlzIGlzIHRoZSBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBwYXJhbSBlcmEgdGhlIGVyYSBvZiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgeWVhciBpbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIG1vbnRoIGluIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIE1vbnRoIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheSB0aGUgZGF5LWluLW1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgdGhlIGRheS1vZi13ZWVrIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtaWxsaXNlY29uZHMgdGhlIG1pbGxpcyBpbiBkYXkgaW4gPGVtPnN0YW5kYXJkPC9lbT4gbG9jYWwgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBvZmZzZXQgdG8gYWRkICp0byogR01UIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRheU9mV2VlaywgaW50IG1pbGxpc2Vjb25kcykgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXNlY29uZHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG9mZnNldCBvZiB0aGlzIHRpbWUgem9uZSBmcm9tIFVUQyBhdCB0aGUgc3BlY2lmaWVkCisgICAgICogZGF0ZS4gSWYgRGF5bGlnaHQgU2F2aW5nIFRpbWUgaXMgaW4gZWZmZWN0IGF0IHRoZSBzcGVjaWZpZWQKKyAgICAgKiBkYXRlLCB0aGUgb2Zmc2V0IHZhbHVlIGlzIGFkanVzdGVkIHdpdGggdGhlIGFtb3VudCBvZiBkYXlsaWdodAorICAgICAqIHNhdmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBkYXRlIHJlcHJlc2VudGVkIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgMDA6MDA6MDAgR01UCisgICAgICogQHJldHVybiB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFkZCB0byBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICoKKyAgICAgKiBAc2VlIENhbGVuZGFyI1pPTkVfT0ZGU0VUCisgICAgICogQHNlZSBDYWxlbmRhciNEU1RfT0ZGU0VUCisgICAgICogQHNlZSAjZ2V0T2Zmc2V0KGxvbmcsIGJvb2xlYW4sIGludFtdKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGxvbmcgZGF0ZSkgeworICAgIAlpZiAoaW5EYXlsaWdodFRpbWUobmV3IERhdGUoZGF0ZSkpKSB7CisgICAgCSAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KCkgKyBnZXREU1RTYXZpbmdzKCk7CisgICAgCX0KKyAgICAJcmV0dXJuIGdldFJhd09mZnNldCgpOworICAgIH0KKworICAgLyoqCisgICAgICogU2V0cyB0aGUgYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBUaGlzIGlzIHRoZSBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBwYXJhbSBvZmZzZXRNaWxsaXMgdGhlIGdpdmVuIGJhc2UgdGltZSB6b25lIG9mZnNldCB0byBHTVQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmF3T2Zmc2V0KGludCBvZmZzZXRNaWxsaXMpIHsKKyAgICAgICAgdGltZVpvbmUuc2V0UmF3T2Zmc2V0KG9mZnNldE1pbGxpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB1bm1vZGlmaWVkIG9mZnNldCwgTk9UIG1vZGlmaWVkIGluIGNhc2Ugb2YgZGF5bGlnaHQgc2F2aW5ncy4KKyAgICAgKiBUaGlzIGlzIHRoZSBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIHVubW9kaWZpZWQgb2Zmc2V0IHRvIGFkZCAqdG8qIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhd09mZnNldCgpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldFJhd09mZnNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIElEIG9mIHRoaXMgdGltZSB6b25lLgorICAgICAqIEByZXR1cm4gdGhlIElEIG9mIHRoaXMgdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SUQoKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXRJRCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgem9uZSBJRC4gVGhpcyBkb2VzIG5vdCBjaGFuZ2UgYW55IG90aGVyIGRhdGEgaW4KKyAgICAgKiB0aGUgdGltZSB6b25lIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gSUQgdGhlIG5ldyB0aW1lIHpvbmUgSUQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SUQoU3RyaW5nIElEKSB7CisgICAgICAgIHRpbWVab25lLnNldElEKElEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgZ2VuZXJpYyBuYW1lLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXREaXNwbGF5TmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsb25nIGdlbmVyaWMgbmFtZS4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogYSBmYWxsYmFjayBiYXNlZCBvbiB0aGUgY291bnRyeSwgY2l0eSwgb3IgdGltZSB6b25lIGlkIHdpbGwgYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgbm90IHJlY29nbml6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXREaXNwbGF5TmFtZShsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsb25nIG5hbWUsIG5vdCBpbmNsdWRpbmcgZGF5bGlnaHQgc2F2aW5ncy4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogYSBmYWxsYmFjayBiYXNlZCBvbiB0aGUgY291bnRyeSwgY2l0eSwgb3IgdGltZSB6b25lIGlkIHdpbGwgYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSB1bG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IHVsb2NhbGUgaWYgdGhlIGdpdmVuIHVsb2NhbGUgaXMgbm90IHJlY29nbml6ZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXREaXNwbGF5TmFtZShsb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIGluIHRoZSBmb3JtYXQKKyAgICAgKiA8Y29kZT5HTVRbKy1daGg6bW08L2NvZGU+LgorICAgICAqIEBwYXJhbSBkYXlsaWdodCBpZiB0cnVlLCByZXR1cm4gdGhlIGRheWxpZ2h0IHNhdmluZ3MgbmFtZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgZWl0aGVyIDxjb2RlPkxPTkc8L2NvZGU+IG9yIDxjb2RlPlNIT1JUPC9jb2RlPgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiBkYXlsaWdodCwgaW50IHN0eWxlKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXREaXNwbGF5TmFtZShkYXlsaWdodCwgc3R5bGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIGluIHRoZSBmb3JtYXQKKyAgICAgKiA8Y29kZT5HTVRbKy1daGg6bW08L2NvZGU+LgorICAgICAqIEBwYXJhbSBkYXlsaWdodCBpZiB0cnVlLCByZXR1cm4gdGhlIGRheWxpZ2h0IHNhdmluZ3MgbmFtZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgZWl0aGVyIDxjb2RlPkxPTkc8L2NvZGU+IG9yIDxjb2RlPlNIT1JUPC9jb2RlPgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBzdXBwbHkgdGhlIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBnaXZlbiBsb2NhbGUKKyAgICAgKiBvciBpbiB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBzdHlsZSBpcyBpbnZhbGlkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiBkYXlsaWdodCwgaW50IHN0eWxlLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXREaXNwbGF5TmFtZShkYXlsaWdodCwgc3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSwgbG9jYWxlLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB0aW1lIHRvIGJlIGFkZGVkIHRvIGxvY2FsIHN0YW5kYXJkIHRpbWUKKyAgICAgKiB0byBnZXQgbG9jYWwgd2FsbCBjbG9jayB0aW1lLgorICAgICAqIDxwPgorICAgICAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGFsd2F5cyByZXR1cm5zIDM2MDAwMDAgbWlsbGlzZWNvbmRzCisgICAgICogKGkuZS4sIG9uZSBob3VyKSBpZiB0aGlzIHRpbWUgem9uZSBvYnNlcnZlcyBEYXlsaWdodCBTYXZpbmcKKyAgICAgKiBUaW1lLiBPdGhlcndpc2UsIDAgKHplcm8pIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIElmIGFuIHVuZGVybHlpbmcgVGltZVpvbmUgaW1wbGVtZW50YXRpb24gc3ViY2xhc3Mgc3VwcG9ydHMKKyAgICAgKiBoaXN0b3JpY2FsIERheWxpZ2h0IFNhdmluZyBUaW1lIGNoYW5nZXMsIHRoaXMgbWV0aG9kIHJldHVybnMKKyAgICAgKiB0aGUga25vd24gbGF0ZXN0IGRheWxpZ2h0IHNhdmluZyB2YWx1ZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGFtb3VudCBvZiBzYXZpbmcgdGltZSBpbiBtaWxsaXNlY29uZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERTVFNhdmluZ3MoKSB7CisgICAgICAgIGlmICh1c2VEYXlsaWdodFRpbWUoKSkgeworICAgICAgICAgICAgcmV0dXJuIDM2MDAwMDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUXVlcmllcyBpZiB0aGlzIHRpbWUgem9uZSB1c2VzIGRheWxpZ2h0IHNhdmluZ3MgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB0aW1lIHpvbmUgdXNlcyBkYXlsaWdodCBzYXZpbmdzIHRpbWUsCisgICAgICogZmFsc2UsIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiB1c2VEYXlsaWdodFRpbWUoKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGluIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpbgorICAgICAqIHRoaXMgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBpbiBkYXlsaWdodCBzYXZpbmdzIHRpbWUsCisgICAgICogZmFsc2UsIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmluRGF5bGlnaHRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiBmb3IgdGhlIGdpdmVuIElELgorICAgICAqCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBmb3IgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4sIGVpdGhlciBhbiBhYmJyZXZpYXRpb24KKyAgICAgKiBzdWNoIGFzICJQU1QiLCBhIGZ1bGwgbmFtZSBzdWNoIGFzICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgb3IgYSBjdXN0b20KKyAgICAgKiBJRCBzdWNoIGFzICJHTVQtODowMCIuIE5vdGUgdGhhdCB0aGUgc3VwcG9ydCBvZiBhYmJyZXZpYXRpb25zIGlzCisgICAgICogZm9yIEpESyAxLjEueCBjb21wYXRpYmlsaXR5IG9ubHkgYW5kIGZ1bGwgbmFtZXMgc2hvdWxkIGJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBzcGVjaWZpZWQgPGNvZGU+VGltZVpvbmU8L2NvZGU+LCBvciB0aGUgR01UIHpvbmUgaWYgdGhlIGdpdmVuIElECisgICAgICogY2Fubm90IGJlIHVuZGVyc3Rvb2QuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUaW1lWm9uZSBnZXRUaW1lWm9uZShTdHJpbmcgSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUaW1lWm9uZShqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBuZXcgU3RyaW5nIGFycmF5IGNvbnRhaW5pbmcgYWxsIHN5c3RlbSBUaW1lWm9uZSBJRHMKKyAgICAgKiB3aXRoIHRoZSBnaXZlbiByYXcgb2Zmc2V0IGZyb20gR01ULiAgVGhlc2UgSURzIG1heSBiZSBwYXNzZWQgdG8KKyAgICAgKiA8Y29kZT5nZXQoKTwvY29kZT4gdG8gY29uc3RydWN0IHRoZSBjb3JyZXNwb25kaW5nIFRpbWVab25lCisgICAgICogb2JqZWN0LgorICAgICAqIEBwYXJhbSByYXdPZmZzZXQgdGhlIG9mZnNldCBpbiBtaWxsaXNlY29uZHMgZnJvbSBHTVQKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyB3aXRoIHRoZSBnaXZlbgorICAgICAqIHJhdyBvZmZzZXQuICBJZiB0aGVyZSBhcmUgbm9uZSwgcmV0dXJuIGEgemVyby1sZW5ndGggYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoaW50IHJhd09mZnNldCkgeworICAgICAgICByZXR1cm4gamF2YS51dGlsLlRpbWVab25lLmdldEF2YWlsYWJsZUlEcyhyYXdPZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcy4KKyAgICAgKiBUaGVzZSBJRHMgKGFuZCBvbmx5IHRoZXNlIElEcykgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICByZXR1cm4gamF2YS51dGlsLlRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworICAgIH0KKyAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGVmYXVsdCA8Y29kZT5UaW1lWm9uZTwvY29kZT4gZm9yIHRoaXMgaG9zdC4KKyAgICAgKiBUaGUgc291cmNlIG9mIHRoZSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPiAKKyAgICAgKiBtYXkgdmFyeSB3aXRoIGltcGxlbWVudGF0aW9uLgorICAgICAqIEByZXR1cm4gYSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRpbWVab25lIGdldERlZmF1bHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgVGltZVpvbmUoamF2YS51dGlsLlRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHRoYXQgaXMKKyAgICAgKiByZXR1cm5lZCBieSB0aGUgPGNvZGU+Z2V0RGVmYXVsdDwvY29kZT4gbWV0aG9kLiAgSWYgPGNvZGU+em9uZTwvY29kZT4KKyAgICAgKiBpcyBudWxsLCByZXNldCB0aGUgZGVmYXVsdCB0byB0aGUgdmFsdWUgaXQgaGFkIG9yaWdpbmFsbHkgd2hlbiB0aGUKKyAgICAgKiBWTSBmaXJzdCBzdGFydGVkLgorICAgICAqIEBwYXJhbSB0eiB0aGUgbmV3IGRlZmF1bHQgdGltZSB6b25lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldERlZmF1bHQoVGltZVpvbmUgdHopIHsKKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lLnNldERlZmF1bHQodHoudGltZVpvbmUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgem9uZSBoYXMgdGhlIHNhbWUgcnVsZSBhbmQgb2Zmc2V0IGFzIGFub3RoZXIgem9uZS4KKyAgICAgKiBUaGF0IGlzLCBpZiB0aGlzIHpvbmUgZGlmZmVycyBvbmx5IGluIElELCBpZiBhdCBhbGwuICBSZXR1cm5zIGZhbHNlCisgICAgICogaWYgdGhlIG90aGVyIHpvbmUgaXMgbnVsbC4KKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb3RoZXIgem9uZSBpcyBub3QgbnVsbCBhbmQgaXMgdGhlIHNhbWUgYXMgdGhpcyBvbmUsCisgICAgICogd2l0aCB0aGUgcG9zc2libGUgZXhjZXB0aW9uIG9mIHRoZSBJRAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVSdWxlcyhUaW1lWm9uZSBvdGhlcikgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuaGFzU2FtZVJ1bGVzKG90aGVyLnRpbWVab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUaW1lWm9uZSgoamF2YS51dGlsLlRpbWVab25lKXRpbWVab25lLmNsb25lKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBUaW1lWm9uZSBhbmQgaGFzIHRoZSBzYW1lIHRpbWUgcnVsZXMgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiB0aW1lWm9uZS5lcXVhbHMoKChUaW1lWm9uZSlyaHMpLnRpbWVab25lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGhhc2hDb2RlLgorICAgICAqIEByZXR1cm4gYSBoYXNoQ29kZQorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCl7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5oYXNoQ29kZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL1VMb2NhbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL1VMb2NhbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmQzYjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhCkBAIC0wLDAgKzEsMjYyOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisKKworLyoqCisgKiBBIGNsYXNzIGFuYWxvZ291cyB0byB7QGxpbmsgamF2YS51dGlsLkxvY2FsZX0gdGhhdCBwcm92aWRlcyBhZGRpdGlvbmFsCisgKiBzdXBwb3J0IGZvciBJQ1UgcHJvdG9jb2wuICBJbiBJQ1UgMy4wIHRoaXMgY2xhc3MgaXMgZW5oYW5jZWQgdG8gc3VwcG9ydAorICogUkZDIDMwNjYgbGFuZ3VhZ2UgaWRlbnRpZmllcnMuCisgKgorICogPHA+TWFueSBjbGFzc2VzIGFuZCBzZXJ2aWNlcyBpbiBJQ1UgZm9sbG93IGEgZmFjdG9yeSBpZGlvbSwgaW4KKyAqIHdoaWNoIGEgZmFjdG9yeSBtZXRob2Qgb3Igb2JqZWN0IHJlc3BvbmRzIHRvIGEgY2xpZW50IHJlcXVlc3Qgd2l0aAorICogYW4gb2JqZWN0LiAgVGhlIHJlcXVlc3QgaW5jbHVkZXMgYSBsb2NhbGUgKHRoZSA8aT5yZXF1ZXN0ZWQ8L2k+CisgKiBsb2NhbGUpLCBhbmQgdGhlIHJldHVybmVkIG9iamVjdCBpcyBjb25zdHJ1Y3RlZCB1c2luZyBkYXRhIGZvciB0aGF0CisgKiBsb2NhbGUuICBUaGUgc3lzdGVtIG1heSBsYWNrIGRhdGEgZm9yIHRoZSByZXF1ZXN0ZWQgbG9jYWxlLCBpbgorICogd2hpY2ggY2FzZSB0aGUgbG9jYWxlIGZhbGxiYWNrIG1lY2hhbmlzbSB3aWxsIGJlIGludm9rZWQgdW50aWwgYQorICogcG9wdWxhdGVkIGxvY2FsZSBpcyBmb3VuZCAodGhlIDxpPnZhbGlkPC9pPiBsb2NhbGUpLiAgRnVydGhlcm1vcmUsCisgKiBldmVuIHdoZW4gYSBwb3B1bGF0ZWQgbG9jYWxlIGlzIGZvdW5kICh0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSksCisgKiBmdXJ0aGVyIGZhbGxiYWNrIG1heSBiZSByZXF1aXJlZCB0byByZWFjaCBhIGxvY2FsZSBjb250YWluaW5nIHRoZQorICogc3BlY2lmaWMgZGF0YSByZXF1aXJlZCBieSB0aGUgc2VydmljZSAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKS4KKyAqCisgKiA8cD5VTG9jYWxlIHBlcmZvcm1zIDxiPidub3JtYWxpemF0aW9uJzwvYj4gYW5kIDxiPidjYW5vbmljYWxpemF0aW9uJzwvYj4gb2YgbG9jYWxlIGlkcy4KKyAqIE5vcm1hbGl6YXRpb24gJ2NsZWFucyB1cCcgSUNVIGxvY2FsZSBpZHMgYXMgZm9sbG93czoKKyAqIDx1bD4KKyAqIDxsaT5sYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50LCBhbmQga2V5d29yZHMgYXJlIHByb3Blcmx5IGNhc2VkPGJyPgorICogKGxvd2VyLCB0aXRsZSwgdXBwZXIsIHVwcGVyLCBhbmQgbG93ZXIgY2FzZSByZXNwZWN0aXZlbHkpPC9saT4KKyAqIDxsaT5oeXBoZW5zIHVzZWQgYXMgc2VwYXJhdG9ycyBhcmUgY29udmVydGVkIHRvIHVuZGVyc2NvcmVzPC9saT4KKyAqIDxsaT50aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgYW5kIGNvdW50cnkgaWRzIGFyZSBjb252ZXJ0ZWQgdG8gdHdvLWxldHRlcgorICogZXF1aXZhbGVudHMgd2hlcmUgYXZhaWxhYmxlPC9saT4KKyAqIDxsaT5zdXJyb3VuZGluZyBzcGFjZXMgYXJlIHJlbW92ZWQgZnJvbSBrZXl3b3JkcyBhbmQgdmFsdWVzPC9saT4KKyAqIDxsaT5pZiB0aGVyZSBhcmUgbXVsdGlwbGUga2V5d29yZHMsIHRoZXkgYXJlIHB1dCBpbiBzb3J0ZWQgb3JkZXI8L2xpPgorICogPC91bD4KKyAqIENhbm9uaWNhbGl6YXRpb24gYWRkaXRpb25hbGx5IHBlcmZvcm1zIHRoZSBmb2xsb3dpbmc6CisgKiA8dWw+CisgKiA8bGk+UE9TSVggaWRzIGFyZSBjb252ZXJ0ZWQgdG8gSUNVIGZvcm1hdCBJRHM8L2xpPgorICogPGxpPidncmFuZGZhdGhlcmVkJyAzMDY2IGlkcyBhcmUgY29udmVydGVkIHRvIElDVSBzdGFuZGFyZCBmb3JtPC9saT4KKyAqIDxsaT4nUFJFRVVSTycgYW5kICdFVVJPJyB2YXJpYW50cyBhcmUgY29udmVydGVkIHRvIGN1cnJlbmN5IGtleXdvcmQgZm9ybSwgd2l0aCB0aGUgY3VycmVuY3kKKyAqIGlkIGFwcHJvcHJpYXRlIHRvIHRoZSBjb3VudHJ5IG9mIHRoZSBsb2NhbGUgKGZvciBQUkVFVVJPKSBvciBFVVIgKGZvciBFVVJPKS4KKyAqIDwvdWw+CisgKiBBbGwgVUxvY2FsZSBjb25zdHJ1Y3RvcnMgYXV0b21hdGljYWxseSBub3JtYWxpemUgdGhlIGxvY2FsZSBpZC4gIFRvIGhhbmRsZQorICogUE9TSVggaWRzLCA8Y29kZT5jYW5vbmljYWxpemU8L2NvZGU+IGNhbiBiZSBjYWxsZWQgdG8gY29udmVydCB0aGUgaWQKKyAqIHRvIGNhbm9uaWNhbCBmb3JtLCBvciB0aGUgPGNvZGU+Y2Fub25pY2FsSW5zdGFuY2U8L2NvZGU+IGZhY3RvcnkgbWV0aG9kCisgKiBjYW4gYmUgY2FsbGVkLjwvcD4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIHByb3ZpZGVzIHNlbGVjdG9ycyB7QGxpbmsgI1ZBTElEX0xPQ0FMRX0gYW5kIHtAbGluaworICogI0FDVFVBTF9MT0NBTEV9IGludGVuZGVkIGZvciB1c2UgaW4gbWV0aG9kcyBuYW1lZAorICogPHR0PmdldExvY2FsZSgpPC90dD4uICBUaGVzZSBtZXRob2RzIGV4aXN0IGluIHNldmVyYWwgSUNVIGNsYXNzZXMsCisgKiBpbmNsdWRpbmcge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXJ9LCB7QGxpbmsKKyAqIGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3l9LCB7QGxpbmsgY29tLmlibS5pY3UudGV4dC5VRm9ybWF0fSwKKyAqIHtAbGluayBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3J9LCB7QGxpbmsKKyAqIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3J9LCB7QGxpbmsKKyAqIGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHN9LCBhbmQge0BsaW5rCisgKiBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzfSBhbmQgdGhlaXIgc3ViY2xhc3NlcywgaWYKKyAqIGFueS4gIE9uY2UgYW4gb2JqZWN0IG9mIG9uZSBvZiB0aGVzZSBjbGFzc2VzIGhhcyBiZWVuIGNyZWF0ZWQsCisgKiA8dHQ+Z2V0TG9jYWxlKCk8L3R0PiBtYXkgYmUgY2FsbGVkIG9uIGl0IHRvIGRldGVybWluZSB0aGUgdmFsaWQgYW5kCisgKiBhY3R1YWwgbG9jYWxlIGFycml2ZWQgYXQgZHVyaW5nIHRoZSBvYmplY3QncyBjb25zdHJ1Y3Rpb24uCisgKgorICogPHA+Tm90ZTogVGhlIDx0dD5nZXRMb2NhbGUoKTwvdHQ+IG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVQorICogMy4wOyBJQ1UgMi44IGNvbnRhaW5zIGEgcGFydGlhbCBwcmV2aWV3IGltcGxlbWVudGF0aW9uLiAgVGhlCisgKiA8aT5hY3R1YWw8L2k+IGxvY2FsZSBpcyByZXR1cm5lZCBjb3JyZWN0bHksIGJ1dCB0aGUgPGk+dmFsaWQ8L2k+CisgKiBsb2NhbGUgaXMgbm90LCBpbiBtb3N0IGNhc2VzLgorICoKKyAqIEBzZWUgamF2YS51dGlsLkxvY2FsZQorICogQGF1dGhvciB3ZWl2CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAYXV0aG9yIFJhbSBWaXN3YW5hZGhhCisgKiBAc3RhYmxlIElDVSAyLjggCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVTG9jYWxlIGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxTDsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBFTkdMSVNIID0gbmV3IFVMb2NhbGUoImVuIiwgTG9jYWxlLkVOR0xJU0gpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEZSRU5DSCA9IG5ldyBVTG9jYWxlKCJmciIsIExvY2FsZS5GUkVOQ0gpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEdFUk1BTiA9IG5ldyBVTG9jYWxlKCJkZSIsIExvY2FsZS5HRVJNQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIElUQUxJQU4gPSBuZXcgVUxvY2FsZSgiaXQiLCBMb2NhbGUuSVRBTElBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSkFQQU5FU0UgPSBuZXcgVUxvY2FsZSgiamEiLCBMb2NhbGUuSkFQQU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEtPUkVBTiA9IG5ldyBVTG9jYWxlKCJrbyIsIExvY2FsZS5LT1JFQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENISU5FU0UgPSBuZXcgVUxvY2FsZSgiemgiLCBMb2NhbGUuQ0hJTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgU0lNUExJRklFRF9DSElORVNFID0gbmV3IFVMb2NhbGUoInpoX0hhbnMiLCBMb2NhbGUuQ0hJTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVFJBRElUSU9OQUxfQ0hJTkVTRSA9IG5ldyBVTG9jYWxlKCJ6aF9IYW50IiwgTG9jYWxlLkNISU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEZSQU5DRSA9IG5ldyBVTG9jYWxlKCJmcl9GUiIsIExvY2FsZS5GUkFOQ0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEdFUk1BTlkgPSBuZXcgVUxvY2FsZSgiZGVfREUiLCBMb2NhbGUuR0VSTUFOWSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSVRBTFkgPSBuZXcgVUxvY2FsZSgiaXRfSVQiLCBMb2NhbGUuSVRBTFkpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEpBUEFOID0gbmV3IFVMb2NhbGUoImphX0pQIiwgTG9jYWxlLkpBUEFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBLT1JFQSA9IG5ldyBVTG9jYWxlKCJrb19LUiIsIExvY2FsZS5LT1JFQSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0hJTkEgPSBuZXcgVUxvY2FsZSgiemhfSGFuc19DTiIsIExvY2FsZS5DSElOQSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgUFJDID0gQ0hJTkE7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVEFJV0FOID0gbmV3IFVMb2NhbGUoInpoX0hhbnRfVFciLCBMb2NhbGUuVEFJV0FOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBVSyA9IG5ldyBVTG9jYWxlKCJlbl9HQiIsIExvY2FsZS5VSyk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVVMgPSBuZXcgVUxvY2FsZSgiZW5fVVMiLCBMb2NhbGUuVVMpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENBTkFEQSA9IG5ldyBVTG9jYWxlKCJlbl9DQSIsIExvY2FsZS5DQU5BREEpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENBTkFEQV9GUkVOQ0ggPSBuZXcgVUxvY2FsZSgiZnJfQ0EiLCBMb2NhbGUuQ0FOQURBX0ZSRU5DSCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNoTWFwIENBQ0hFID0gbmV3IEhhc2hNYXAoMjApOworICAgIHN0YXRpYyB7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuRU5HTElTSCwgRU5HTElTSCk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuRlJFTkNILCBGUkVOQ0gpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkdFUk1BTiwgR0VSTUFOKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5JVEFMSUFOLCBJVEFMSUFOKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5KQVBBTkVTRSwgSkFQQU5FU0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLktPUkVBTiwgS09SRUFOKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5DSElORVNFLCBDSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5TSU1QTElGSUVEX0NISU5FU0UsIFNJTVBMSUZJRURfQ0hJTkVTRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuVFJBRElUSU9OQUxfQ0hJTkVTRSwgVFJBRElUSU9OQUxfQ0hJTkVTRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuRlJBTkNFLCBGUkFOQ0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkdFUk1BTlksIEdFUk1BTlkpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLklUQUxZLCBJVEFMWSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuSkFQQU4sIEpBUEFOKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5LT1JFQSwgS09SRUEpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNISU5BLCBDSElOQSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuVEFJV0FOLCBUQUlXQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlVLLCBVSyk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuVVMsIFVTKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5DQU5BREEsIENBTkFEQSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuQ0FOQURBX0ZSRU5DSCwgQ0FOQURBX0ZSRU5DSCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFuZHkgY29uc3RhbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVNUFRZX1NUUklORyA9ICIiOworCisgICAgLy8gVXNlZCBpbiBib3RoIFVMb2NhbGUgYW5kIElEUGFyc2VyLCBzbyBtb3ZlZCB1cCBoZXJlLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgVU5ERVJTQ09SRSA9ICdfJzsKKworICAgIC8qKgorICAgICAqIFRoZSByb290IFVMb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBST09UID0gbmV3IFVMb2NhbGUoRU1QVFlfU1RSSU5HLCAoTG9jYWxlKW51bGwpOworICAgIAorICAgIC8qKgorICAgICAqIENhY2hlIHRoZSBsb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgTG9jYWxlIGxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSByYXcgbG9jYWxlSUQgdGhhdCB3ZSB3ZXJlIHBhc3NlZCBpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBsb2NhbGVJRDsKKworICAgIC8qKgorICAgICAqIFRhYmxlcyB1c2VkIGluIG5vcm1hbGl6aW5nIHBvcnRpb25zIG9mIHRoZSBpZC4KKyAgICAgKi8KKyAgICAvKiB0YWJsZXMgdXBkYXRlZCBwZXIgaHR0cDovL2xjd2ViLmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyAKKyAgICAgICB0byBpbmNsdWRlIHRoZSByZXZpc2lvbnMgdXAgdG8gMjAwMS83LzI3ICpDV0IqLworICAgIC8qIFRoZSAzIGNoYXJhY3RlciBjb2RlcyBhcmUgdGhlIHRlcm1pbm9sb2d5IGNvZGVzIGxpa2UgUkZDIDMwNjYuICAKKyAgICAgICBUaGlzIGlzIGNvbXBhdGlibGUgd2l0aCBwcmlvciBJQ1UgY29kZXMgKi8KKyAgICAvKiAiaW4iICJpdyIgImppIiAianciICYgInNoIiBoYXZlIGJlZW4gd2l0aGRyYXduIGJ1dCBhcmUgc3RpbGwgaW4gCisgICAgICAgdGhlIHRhYmxlIGJ1dCBub3cgYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUgYmVjYXVzZSAKKyAgICAgICAzIGNoYXJhY3RlciBjb2RlcyBhcmUgZHVwbGljYXRlcy4gIFRoaXMgYXZvaWRzIGJhZCBzZWFyY2hlcworICAgICAgIGdvaW5nIGZyb20gMyB0byAyIGNoYXJhY3RlciBjb2Rlcy4qLworICAgIC8qIFRoZSByYW5nZSBxYWEtcXR6IGlzIHJlc2VydmVkIGZvciBsb2NhbCB1c2UuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfbGFuZ3VhZ2VzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9yZXBsYWNlbWVudExhbmd1YWdlczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVMYW5ndWFnZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2xhbmd1YWdlczM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlTGFuZ3VhZ2VzMzsKKworICAgIC8vIEF2b2lkIGluaXRpYWxpemluZyBsYW5ndWFnZXMgdGFibGVzIHVubGVzcyB3ZSBoYXZlIHRvLgorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdExhbmd1YWdlVGFibGVzKCkgeworICAgICAgICBpZiAoX2xhbmd1YWdlcyA9PSBudWxsKSB7CisKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGJlIGluIHNvcnRlZCBvcmRlciwgYW5kIE1VU1QgY29udGFpbiB0aGUgdHdvLWxldHRlciBjb2RlcworICAgICAgICAgICAgICAgaWYgb25lIGV4aXN0cyBvdGhlcndpc2UgdXNlIHRoZSB0aHJlZSBsZXR0ZXIgY29kZSAqLworICAgICAgICAgICAgU3RyaW5nW10gdGVtcExhbmd1YWdlcyA9IHsKKyAgICAgICAgICAgICAgICAiYWEiLCAgImFiIiwgICJhY2UiLCAiYWNoIiwgImFkYSIsICJhZHkiLCAiYWUiLCAgImFmIiwgICJhZmEiLAorICAgICAgICAgICAgICAgICJhZmgiLCAiYWsiLCAgImFrayIsICJhbGUiLCAiYWxnIiwgImFtIiwgICJhbiIsICAiYW5nIiwgImFwYSIsCisgICAgICAgICAgICAgICAgImFyIiwgICJhcmMiLCAiYXJuIiwgImFycCIsICJhcnQiLCAiYXJ3IiwgImFzIiwgICJhc3QiLAorICAgICAgICAgICAgICAgICJhdGgiLCAiYXVzIiwgImF2IiwgICJhd2EiLCAiYXkiLCAgImF6IiwgICJiYSIsICAiYmFkIiwKKyAgICAgICAgICAgICAgICAiYmFpIiwgImJhbCIsICJiYW4iLCAiYmFzIiwgImJhdCIsICJiZSIsICAiYmVqIiwKKyAgICAgICAgICAgICAgICAiYmVtIiwgImJlciIsICJiZyIsICAiYmgiLCAgImJobyIsICJiaSIsICAiYmlrIiwgImJpbiIsCisgICAgICAgICAgICAgICAgImJsYSIsICJibSIsICAiYm4iLCAgImJudCIsICJibyIsICAiYnIiLCAgImJyYSIsICJicyIsCisgICAgICAgICAgICAgICAgImJ0ayIsICJidWEiLCAiYnVnIiwgImJ5biIsICJjYSIsICAiY2FkIiwgImNhaSIsICJjYXIiLCAiY2F1IiwKKyAgICAgICAgICAgICAgICAiY2UiLCAgImNlYiIsICJjZWwiLCAiY2giLCAgImNoYiIsICJjaGciLCAiY2hrIiwgImNobSIsCisgICAgICAgICAgICAgICAgImNobiIsICJjaG8iLCAiY2hwIiwgImNociIsICJjaHkiLCAiY21jIiwgImNvIiwgICJjb3AiLAorICAgICAgICAgICAgICAgICJjcGUiLCAiY3BmIiwgImNwcCIsICJjciIsICAiY3JoIiwgImNycCIsICJjcyIsICAiY3NiIiwgImN1IiwgICJjdXMiLAorICAgICAgICAgICAgICAgICJjdiIsICAiY3kiLCAgImRhIiwgICJkYWsiLCAiZGFyIiwgImRheSIsICJkZSIsICAiZGVsIiwgImRlbiIsCisgICAgICAgICAgICAgICAgImRnciIsICJkaW4iLCAiZG9pIiwgImRyYSIsICJkc2IiLCAiZHVhIiwgImR1bSIsICJkdiIsICAiZHl1IiwKKyAgICAgICAgICAgICAgICAiZHoiLCAgImVlIiwgICJlZmkiLCAiZWd5IiwgImVrYSIsICJlbCIsICAiZWx4IiwgImVuIiwKKyAgICAgICAgICAgICAgICAiZW5tIiwgImVvIiwgICJlcyIsICAiZXQiLCAgImV1IiwgICJld28iLCAiZmEiLAorICAgICAgICAgICAgICAgICJmYW4iLCAiZmF0IiwgImZmIiwgICJmaSIsICAiZml1IiwgImZqIiwgICJmbyIsICAiZm9uIiwKKyAgICAgICAgICAgICAgICAiZnIiLCAgImZybSIsICJmcm8iLCAiZnVyIiwgImZ5IiwgICJnYSIsICAiZ2FhIiwgImdheSIsCisgICAgICAgICAgICAgICAgImdiYSIsICJnZCIsICAiZ2VtIiwgImdleiIsICJnaWwiLCAiZ2wiLCAgImdtaCIsICJnbiIsCisgICAgICAgICAgICAgICAgImdvaCIsICJnb24iLCAiZ29yIiwgImdvdCIsICJncmIiLCAiZ3JjIiwgImd1IiwgICJndiIsCisgICAgICAgICAgICAgICAgImd3aSIsICJoYSIsICAiaGFpIiwgImhhdyIsICJoZSIsICAiaGkiLCAgImhpbCIsICJoaW0iLAorICAgICAgICAgICAgICAgICJoaXQiLCAiaG1uIiwgImhvIiwgICJociIsICAiaHNiIiwgImh0IiwgICJodSIsICAiaHVwIiwgImh5IiwgICJoeiIsCisgICAgICAgICAgICAgICAgImlhIiwgICJpYmEiLCAiaWQiLCAgImllIiwgICJpZyIsICAiaWkiLCAgImlqbyIsICJpayIsCisgICAgICAgICAgICAgICAgImlsbyIsICJpbmMiLCAiaW5lIiwgImluaCIsICJpbyIsICAiaXJhIiwgImlybyIsICJpcyIsICAiaXQiLAorICAgICAgICAgICAgICAgICJpdSIsICAiamEiLCAgImpibyIsICJqcHIiLCAianJiIiwgImp2IiwgICJrYSIsICAia2FhIiwgImthYiIsCisgICAgICAgICAgICAgICAgImthYyIsICJrYW0iLCAia2FyIiwgImthdyIsICJrYmQiLCAia2ciLCAgImtoYSIsICJraGkiLAorICAgICAgICAgICAgICAgICJraG8iLCAia2kiLCAgImtqIiwgICJrayIsICAia2wiLCAgImttIiwgICJrbWIiLCAia24iLAorICAgICAgICAgICAgICAgICJrbyIsICAia29rIiwgImtvcyIsICJrcGUiLCAia3IiLCAgImtyYyIsICJrcm8iLCAia3J1IiwgImtzIiwKKyAgICAgICAgICAgICAgICAia3UiLCAgImt1bSIsICJrdXQiLCAia3YiLCAgImt3IiwgICJreSIsICAibGEiLCAgImxhZCIsCisgICAgICAgICAgICAgICAgImxhaCIsICJsYW0iLCAibGIiLCAgImxleiIsICJsZyIsICAibGkiLCAgImxuIiwgICJsbyIsICAibG9sIiwKKyAgICAgICAgICAgICAgICAibG96IiwgImx0IiwgICJsdSIsICAibHVhIiwgImx1aSIsICJsdW4iLCAibHVvIiwgImx1cyIsCisgICAgICAgICAgICAgICAgImx2IiwgICJtYWQiLCAibWFnIiwgIm1haSIsICJtYWsiLCAibWFuIiwgIm1hcCIsICJtYXMiLAorICAgICAgICAgICAgICAgICJtZGYiLCAibWRyIiwgIm1lbiIsICJtZyIsICAibWdhIiwgIm1oIiwgICJtaSIsICAibWljIiwgIm1pbiIsCisgICAgICAgICAgICAgICAgIm1pcyIsICJtayIsICAibWtoIiwgIm1sIiwgICJtbiIsICAibW5jIiwgIm1uaSIsICJtbm8iLAorICAgICAgICAgICAgICAgICJtbyIsICAibW9oIiwgIm1vcyIsICJtciIsICAibXMiLCAgIm10IiwgICJtdWwiLCAibXVuIiwKKyAgICAgICAgICAgICAgICAibXVzIiwgIm13ciIsICJteSIsICAibXluIiwgIm15diIsICJuYSIsICAibmFoIiwgIm5haSIsICJuYXAiLAorICAgICAgICAgICAgICAgICJuYiIsICAibmQiLCAgIm5kcyIsICJuZSIsICAibmV3IiwgIm5nIiwgICJuaWEiLCAibmljIiwKKyAgICAgICAgICAgICAgICAibml1IiwgIm5sIiwgICJubiIsICAibm8iLCAgIm5vZyIsICJub24iLCAibnIiLCAgIm5zbyIsICJudWIiLAorICAgICAgICAgICAgICAgICJudiIsICAibndjIiwgIm55IiwgICJueW0iLCAibnluIiwgIm55byIsICJuemkiLCAib2MiLCAgIm9qIiwKKyAgICAgICAgICAgICAgICAib20iLCAgIm9yIiwgICJvcyIsICAib3NhIiwgIm90YSIsICJvdG8iLCAicGEiLCAgInBhYSIsCisgICAgICAgICAgICAgICAgInBhZyIsICJwYWwiLCAicGFtIiwgInBhcCIsICJwYXUiLCAicGVvIiwgInBoaSIsICJwaG4iLAorICAgICAgICAgICAgICAgICJwaSIsICAicGwiLCAgInBvbiIsICJwcmEiLCAicHJvIiwgInBzIiwgICJwdCIsICAicXUiLAorICAgICAgICAgICAgICAgICJyYWoiLCAicmFwIiwgInJhciIsICJybSIsICAicm4iLCAgInJvIiwgICJyb2EiLCAicm9tIiwKKyAgICAgICAgICAgICAgICAicnUiLCAgInJ1cCIsICJydyIsICAic2EiLCAgInNhZCIsICJzYWgiLCAic2FpIiwgInNhbCIsICJzYW0iLAorICAgICAgICAgICAgICAgICJzYXMiLCAic2F0IiwgInNjIiwgICJzY28iLCAic2QiLCAgInNlIiwgICJzZWwiLCAic2VtIiwKKyAgICAgICAgICAgICAgICAic2ciLCAgInNnYSIsICJzZ24iLCAic2huIiwgInNpIiwgICJzaWQiLCAic2lvIiwgInNpdCIsCisgICAgICAgICAgICAgICAgInNrIiwgICJzbCIsICAic2xhIiwgInNtIiwgICJzbWEiLCAic21pIiwgInNtaiIsICJzbW4iLAorICAgICAgICAgICAgICAgICJzbXMiLCAic24iLCAgInNuayIsICJzbyIsICAic29nIiwgInNvbiIsICJzcSIsICAic3IiLAorICAgICAgICAgICAgICAgICJzcnIiLCAic3MiLCAgInNzYSIsICJzdCIsICAic3UiLCAgInN1ayIsICJzdXMiLCAic3V4IiwKKyAgICAgICAgICAgICAgICAic3YiLCAgInN3IiwgICJzeXIiLCAidGEiLCAgInRhaSIsICJ0ZSIsICAidGVtIiwgInRlciIsCisgICAgICAgICAgICAgICAgInRldCIsICJ0ZyIsICAidGgiLCAgInRpIiwgICJ0aWciLCAidGl2IiwgInRrIiwgICJ0a2wiLAorICAgICAgICAgICAgICAgICJ0bCIsICAidGxoIiwgInRsaSIsICJ0bWgiLCAidG4iLCAgInRvIiwgICJ0b2ciLCAidHBpIiwgInRyIiwKKyAgICAgICAgICAgICAgICAidHMiLCAgInRzaSIsICJ0dCIsICAidHVtIiwgInR1cCIsICJ0dXQiLCAidHZsIiwgInR3IiwKKyAgICAgICAgICAgICAgICAidHkiLCAgInR5diIsICJ1ZG0iLCAidWciLCAgInVnYSIsICJ1ayIsICAidW1iIiwgInVuZCIsICJ1ciIsCisgICAgICAgICAgICAgICAgInV6IiwgICJ2YWkiLCAidmUiLCAgInZpIiwgICJ2byIsICAidm90IiwgIndhIiwgICJ3YWsiLAorICAgICAgICAgICAgICAgICJ3YWwiLCAid2FyIiwgIndhcyIsICJ3ZW4iLCAid28iLCAgInhhbCIsICJ4aCIsICAieWFvIiwgInlhcCIsCisgICAgICAgICAgICAgICAgInlpIiwgICJ5byIsICAieXBrIiwgInphIiwgICJ6YXAiLCAiemVuIiwgInpoIiwgICJ6bmQiLAorICAgICAgICAgICAgICAgICJ6dSIsICAienVuIiwgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wUmVwbGFjZW1lbnRMYW5ndWFnZXMgPSB7CisgICAgICAgICAgICAgICAgImlkIiwgImhlIiwgInlpIiwgImp2IiwgInNyIiwgIm5iIiwvKiByZXBsYWNlbWVudCBsYW5ndWFnZSBjb2RlcyAqLworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nW10gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzID0geworICAgICAgICAgICAgICAgICJpbiIsICJpdyIsICJqaSIsICJqdyIsICJzaCIsICJubyIsICAgIC8qIG9ic29sZXRlIGxhbmd1YWdlIGNvZGVzICovICAgICAgICAgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICAvKiBUaGlzIGxpc3QgTVVTVCBjb250YWluIGEgdGhyZWUtbGV0dGVyIGNvZGUgZm9yIGV2ZXJ5IHR3by1sZXR0ZXIgY29kZSBpbiB0aGUKKyAgICAgICAgICAgICAgIGxpc3QgYWJvdmUsIGFuZCB0aGV5IE1VU1QgbmUgaW4gdGhlIHNhbWUgb3JkZXIgKGkuZS4sIHRoZSBzYW1lIGxhbmd1YWdlIG11c3QKKyAgICAgICAgICAgICAgIGJlIGluIHRoZSBzYW1lIHBsYWNlIGluIGJvdGggbGlzdHMpISAqLworICAgICAgICAgICAgU3RyaW5nW10gdGVtcExhbmd1YWdlczMgPSB7CisgICAgICAgICAgICAgICAgLyoiYWEiLCAgImFiIiwgICJhY2UiLCAiYWNoIiwgImFkYSIsICJhZHkiLCAiYWUiLCAgImFmIiwgICJhZmEiLCAgICAqLworICAgICAgICAgICAgICAgICJhYXIiLCAiYWJrIiwgImFjZSIsICJhY2giLCAiYWRhIiwgImFkeSIsICJhdmUiLCAiYWZyIiwgImFmYSIsCisgICAgICAgICAgICAgICAgLyoiYWZoIiwgImFrIiwgICJha2siLCAiYWxlIiwgImFsZyIsICJhbSIsICAiYW4iLCAgImFuZyIsICJhcGEiLCAgICAqLworICAgICAgICAgICAgICAgICJhZmgiLCAiYWthIiwgImFrayIsICJhbGUiLCAiYWxnIiwgImFtaCIsICJhcmciLCAiYW5nIiwgImFwYSIsCisgICAgICAgICAgICAgICAgLyoiYXIiLCAgImFyYyIsICJhcm4iLCAiYXJwIiwgImFydCIsICJhcnciLCAiYXMiLCAgImFzdCIsICAgICovCisgICAgICAgICAgICAgICAgImFyYSIsICJhcmMiLCAiYXJuIiwgImFycCIsICJhcnQiLCAiYXJ3IiwgImFzbSIsICJhc3QiLAorICAgICAgICAgICAgICAgIC8qImF0aCIsICJhdXMiLCAiYXYiLCAgImF3YSIsICJheSIsICAiYXoiLCAgImJhIiwgICJiYWQiLCAgICAqLworICAgICAgICAgICAgICAgICJhdGgiLCAiYXVzIiwgImF2YSIsICJhd2EiLCAiYXltIiwgImF6ZSIsICJiYWsiLCAiYmFkIiwKKyAgICAgICAgICAgICAgICAvKiJiYWkiLCAiYmFsIiwgImJhbiIsICJiYXMiLCAiYmF0IiwgImJlIiwgICJiZWoiLCAgICAqLworICAgICAgICAgICAgICAgICJiYWkiLCAiYmFsIiwgImJhbiIsICJiYXMiLCAiYmF0IiwgImJlbCIsICJiZWoiLAorICAgICAgICAgICAgICAgIC8qImJlbSIsICJiZXIiLCAiYmciLCAgImJoIiwgICJiaG8iLCAiYmkiLCAgImJpayIsICJiaW4iLCAgICAqLworICAgICAgICAgICAgICAgICJiZW0iLCAiYmVyIiwgImJ1bCIsICJiaWgiLCAiYmhvIiwgImJpcyIsICJiaWsiLCAiYmluIiwKKyAgICAgICAgICAgICAgICAvKiJibGEiLCAiYm0iLCAgImJuIiwgICJibnQiLCAiYm8iLCAgImJyIiwgICJicmEiLCAiYnMiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiYmxhIiwgImJhbSIsICAiYmVuIiwgImJudCIsICJib2QiLCAiYnJlIiwgImJyYSIsICJib3MiLAorICAgICAgICAgICAgICAgIC8qImJ0ayIsICJidWEiLCAiYnVnIiwgImJ5biIsICJjYSIsICAiY2FkIiwgImNhaSIsICJjYXIiLCAiY2F1IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYnRrIiwgImJ1YSIsICJidWciLCAiYnluIiwgImNhdCIsICJjYWQiLCAiY2FpIiwgImNhciIsICJjYXUiLAorICAgICAgICAgICAgICAgIC8qImNlIiwgICJjZWIiLCAiY2VsIiwgImNoIiwgICJjaGIiLCAiY2hnIiwgImNoayIsICJjaG0iLCAgICAqLworICAgICAgICAgICAgICAgICJjaGUiLCAiY2ViIiwgImNlbCIsICJjaGEiLCAiY2hiIiwgImNoZyIsICJjaGsiLCAiY2htIiwKKyAgICAgICAgICAgICAgICAvKiJjaG4iLCAiY2hvIiwgImNocCIsICJjaHIiLCAiY2h5IiwgImNtYyIsICJjbyIsICAiY29wIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY2huIiwgImNobyIsICJjaHAiLCAiY2hyIiwgImNoeSIsICJjbWMiLCAiY29zIiwgImNvcCIsCisgICAgICAgICAgICAgICAgLyoiY3BlIiwgImNwZiIsICJjcHAiLCAiY3IiLCAgImNyaCIsICJjcnAiLCAiY3MiLCAgImNzYiIsICJjdSIsICAiY3VzIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY3BlIiwgImNwZiIsICJjcHAiLCAiY3JlIiwgImNyaCIsICJjcnAiLCAiY2VzIiwgImNzYiIsICJjaHUiLCAiY3VzIiwKKyAgICAgICAgICAgICAgICAvKiJjdiIsICAiY3kiLCAgImRhIiwgICJkYWsiLCAiZGFyIiwgImRheSIsICJkZSIsICAiZGVsIiwgImRlbiIsICAgICovCisgICAgICAgICAgICAgICAgImNodiIsICJjeW0iLCAiZGFuIiwgImRhayIsICJkYXIiLCAiZGF5IiwgImRldSIsICJkZWwiLCAiZGVuIiwKKyAgICAgICAgICAgICAgICAvKiJkZ3IiLCAiZGluIiwgImRvaSIsICJkcmEiLCAiZHNiIiwgImR1YSIsICJkdW0iLCAiZHYiLCAgImR5dSIsICAgICovCisgICAgICAgICAgICAgICAgImRnciIsICJkaW4iLCAiZG9pIiwgImRyYSIsICJkc2IiLCAiZHVhIiwgImR1bSIsICJkaXYiLCAiZHl1IiwKKyAgICAgICAgICAgICAgICAvKiJkeiIsICAiZWUiLCAgImVmaSIsICJlZ3kiLCAiZWthIiwgImVsIiwgICJlbHgiLCAiZW4iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZHpvIiwgImV3ZSIsICJlZmkiLCAiZWd5IiwgImVrYSIsICJlbGwiLCAiZWx4IiwgImVuZyIsCisgICAgICAgICAgICAgICAgLyoiZW5tIiwgImVvIiwgICJlcyIsICAiZXQiLCAgImV1IiwgICJld28iLCAiZmEiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZW5tIiwgImVwbyIsICJzcGEiLCAiZXN0IiwgImV1cyIsICJld28iLCAiZmFzIiwKKyAgICAgICAgICAgICAgICAvKiJmYW4iLCAiZmF0IiwgImZmIiwgICJmaSIsICAiZml1IiwgImZqIiwgICJmbyIsICAiZm9uIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZmFuIiwgImZhdCIsICJmdWwiLCAiZmluIiwgImZpdSIsICJmaWoiLCAiZmFvIiwgImZvbiIsCisgICAgICAgICAgICAgICAgLyoiZnIiLCAgImZybSIsICJmcm8iLCAiZnVyIiwgImZ5IiwgICJnYSIsICAiZ2FhIiwgImdheSIsICAgICovCisgICAgICAgICAgICAgICAgImZyYSIsICJmcm0iLCAiZnJvIiwgImZ1ciIsICJmcnkiLCAiZ2xlIiwgImdhYSIsICJnYXkiLAorICAgICAgICAgICAgICAgIC8qImdiYSIsICJnZCIsICAiZ2VtIiwgImdleiIsICJnaWwiLCAiZ2wiLCAgImdtaCIsICJnbiIsICAgICAqLworICAgICAgICAgICAgICAgICJnYmEiLCAiZ2xhIiwgImdlbSIsICJnZXoiLCAiZ2lsIiwgImdsZyIsICJnbWgiLCAiZ3JuIiwKKyAgICAgICAgICAgICAgICAvKiJnb2giLCAiZ29uIiwgImdvciIsICJnb3QiLCAiZ3JiIiwgImdyYyIsICJndSIsICAiZ3YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZ29oIiwgImdvbiIsICJnb3IiLCAiZ290IiwgImdyYiIsICJncmMiLCAiZ3VqIiwgImdsdiIsCisgICAgICAgICAgICAgICAgLyoiZ3dpIiwgImhhIiwgICJoYWkiLCAiaGF3IiwgImhlIiwgICJoaSIsICAiaGlsIiwgImhpbSIsICAgICovCisgICAgICAgICAgICAgICAgImd3aSIsICJoYXUiLCAiaGFpIiwgImhhdyIsICJoZWIiLCAiaGluIiwgImhpbCIsICJoaW0iLAorICAgICAgICAgICAgICAgIC8qImhpdCIsICJobW4iLCAiaG8iLCAgImhyIiwgICJoc2IiLCAiaHQiLCAgImh1IiwgICJodXAiLCAiaHkiLCAgImh6IiwgICAgICovCisgICAgICAgICAgICAgICAgImhpdCIsICJobW4iLCAiaG1vIiwgImhydiIsICJoc2IiLCAiaGF0IiwgImh1biIsICJodXAiLCAiaHllIiwgImhlciIsCisgICAgICAgICAgICAgICAgLyoiaWEiLCAgImliYSIsICJpZCIsICAiaWUiLCAgImlnIiwgICJpaSIsICAiaWpvIiwgImlrIiwgICAgICovCisgICAgICAgICAgICAgICAgImluYSIsICJpYmEiLCAiaW5kIiwgImlsZSIsICJpYm8iLCAiaWlpIiwgImlqbyIsICJpcGsiLAorICAgICAgICAgICAgICAgIC8qImlsbyIsICJpbmMiLCAiaW5lIiwgImluaCIsICJpbyIsICAiaXJhIiwgImlybyIsICJpcyIsICAiaXQiLCAgICAgICovCisgICAgICAgICAgICAgICAgImlsbyIsICJpbmMiLCAiaW5lIiwgImluaCIsICJpZG8iLCAiaXJhIiwgImlybyIsICJpc2wiLCAiaXRhIiwKKyAgICAgICAgICAgICAgICAvKiJpdSIsICAiamEiLCAgImpibyIsICJqcHIiLCAianJiIiwgImp2IiwgICJrYSIsICAia2FhIiwgImthYiIsICAgKi8KKyAgICAgICAgICAgICAgICAiaWt1IiwgImpwbiIsICJqYm8iLCAianByIiwgImpyYiIsICJqYXciLCAia2F0IiwgImthYSIsICJrYWIiLAorICAgICAgICAgICAgICAgIC8qImthYyIsICJrYW0iLCAia2FyIiwgImthdyIsICJrYmQiLCAia2ciLCAgImtoYSIsICJraGkiLCAgICAqLworICAgICAgICAgICAgICAgICJrYWMiLCAia2FtIiwgImthciIsICJrYXciLCAia2JkIiwgImtvbiIsICJraGEiLCAia2hpIiwKKyAgICAgICAgICAgICAgICAvKiJraG8iLCAia2kiLCAgImtqIiwgICJrayIsICAia2wiLCAgImttIiwgICJrbWIiLCAia24iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAia2hvIiwgImtpayIsICJrdWEiLCAia2F6IiwgImthbCIsICJraG0iLCAia21iIiwgImthbiIsCisgICAgICAgICAgICAgICAgLyoia28iLCAgImtvayIsICJrb3MiLCAia3BlIiwgImtyIiwgICJrcmMiLCAia3JvIiwgImtydSIsICJrcyIsICAgICAqLworICAgICAgICAgICAgICAgICJrb3IiLCAia29rIiwgImtvcyIsICJrcGUiLCAia2F1IiwgImtyYyIsICJrcm8iLCAia3J1IiwgImthcyIsCisgICAgICAgICAgICAgICAgLyoia3UiLCAgImt1bSIsICJrdXQiLCAia3YiLCAgImt3IiwgICJreSIsICAibGEiLCAgImxhZCIsICAgICovCisgICAgICAgICAgICAgICAgImt1ciIsICJrdW0iLCAia3V0IiwgImtvbSIsICJjb3IiLCAia2lyIiwgImxhdCIsICJsYWQiLAorICAgICAgICAgICAgICAgIC8qImxhaCIsICJsYW0iLCAibGIiLCAgImxleiIsICJsZyIsICAibGkiLCAgImxuIiwgICJsbyIsICAibG9sIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibGFoIiwgImxhbSIsICJsdHoiLCAibGV6IiwgImx1ZyIsICJsaW0iLCAibGluIiwgImxhbyIsICJsb2wiLAorICAgICAgICAgICAgICAgIC8qImxveiIsICJsdCIsICAibHUiLCAgImx1YSIsICJsdWkiLCAibHVuIiwgImx1byIsICJsdXMiLCAgICAqLworICAgICAgICAgICAgICAgICJsb3oiLCAibGl0IiwgImx1YiIsICJsdWEiLCAibHVpIiwgImx1biIsICJsdW8iLCAibHVzIiwKKyAgICAgICAgICAgICAgICAvKiJsdiIsICAibWFkIiwgIm1hZyIsICJtYWkiLCAibWFrIiwgIm1hbiIsICJtYXAiLCAibWFzIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibGF2IiwgIm1hZCIsICJtYWciLCAibWFpIiwgIm1hayIsICJtYW4iLCAibWFwIiwgIm1hcyIsCisgICAgICAgICAgICAgICAgLyoibWRmIiwgIm1kciIsICJtZW4iLCAibWciLCAgIm1nYSIsICJtaCIsICAibWkiLCAgIm1pYyIsICJtaW4iLCAgICAqLworICAgICAgICAgICAgICAgICJtZGYiLCAibWRyIiwgIm1lbiIsICJtbGciLCAibWdhIiwgIm1haCIsICJtcmkiLCAibWljIiwgIm1pbiIsCisgICAgICAgICAgICAgICAgLyoibWlzIiwgIm1rIiwgICJta2giLCAibWwiLCAgIm1uIiwgICJtbmMiLCAibW5pIiwgIm1ubyIsICAgICovCisgICAgICAgICAgICAgICAgIm1pcyIsICJta2QiLCAibWtoIiwgIm1hbCIsICJtb24iLCAibW5jIiwgIm1uaSIsICJtbm8iLAorICAgICAgICAgICAgICAgIC8qIm1vIiwgICJtb2giLCAibW9zIiwgIm1yIiwgICJtcyIsICAibXQiLCAgIm11bCIsICJtdW4iLCAgICAqLworICAgICAgICAgICAgICAgICJtb2wiLCAibW9oIiwgIm1vcyIsICJtYXIiLCAibXNhIiwgIm1sdCIsICJtdWwiLCAibXVuIiwKKyAgICAgICAgICAgICAgICAvKiJtdXMiLCAibXdyIiwgIm15IiwgICJteW4iLCAibXl2IiwgIm5hIiwgICJuYWgiLCAibmFpIiwgIm5hcCIsICAgICovCisgICAgICAgICAgICAgICAgIm11cyIsICJtd3IiLCAibXlhIiwgIm15biIsICJteXYiLCAibmF1IiwgIm5haCIsICJuYWkiLCAibmFwIiwKKyAgICAgICAgICAgICAgICAvKiJuYiIsICAibmQiLCAgIm5kcyIsICJuZSIsICAibmV3IiwgIm5nIiwgICJuaWEiLCAibmljIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibm9iIiwgIm5kZSIsICJuZHMiLCAibmVwIiwgIm5ldyIsICJuZG8iLCAibmlhIiwgIm5pYyIsCisgICAgICAgICAgICAgICAgLyoibml1IiwgIm5sIiwgICJubiIsICAibm8iLCAgIm5vZyIsICJub24iLCAibnIiLCAgIm5zbyIsICJudWIiLCAgICAqLworICAgICAgICAgICAgICAgICJuaXUiLCAibmxkIiwgIm5ubyIsICJub3IiLCAibm9nIiwgIm5vbiIsICJuYmwiLCAibnNvIiwgIm51YiIsCisgICAgICAgICAgICAgICAgLyoibnYiLCAgIm53YyIsICJueSIsICAibnltIiwgIm55biIsICJueW8iLCAibnppIiwgIm9jIiwgICJvaiIsICAgICAqLworICAgICAgICAgICAgICAgICJuYXYiLCAibndjIiwgIm55YSIsICJueW0iLCAibnluIiwgIm55byIsICJuemkiLCAib2NpIiwgIm9qaSIsCisgICAgICAgICAgICAgICAgLyoib20iLCAgIm9yIiwgICJvcyIsICAib3NhIiwgIm90YSIsICJvdG8iLCAicGEiLCAgInBhYSIsICAgICovCisgICAgICAgICAgICAgICAgIm9ybSIsICJvcmkiLCAib3NzIiwgIm9zYSIsICJvdGEiLCAib3RvIiwgInBhbiIsICJwYWEiLAorICAgICAgICAgICAgICAgIC8qInBhZyIsICJwYWwiLCAicGFtIiwgInBhcCIsICJwYXUiLCAicGVvIiwgInBoaSIsICJwaG4iLCAgICAqLworICAgICAgICAgICAgICAgICJwYWciLCAicGFsIiwgInBhbSIsICJwYXAiLCAicGF1IiwgInBlbyIsICJwaGkiLCAicGhuIiwKKyAgICAgICAgICAgICAgICAvKiJwaSIsICAicGwiLCAgInBvbiIsICJwcmEiLCAicHJvIiwgInBzIiwgICJwdCIsICAicXUiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAicGxpIiwgInBvbCIsICJwb24iLCAicHJhIiwgInBybyIsICJwdXMiLCAicG9yIiwgInF1ZSIsCisgICAgICAgICAgICAgICAgLyoicmFqIiwgInJhcCIsICJyYXIiLCAicm0iLCAgInJuIiwgICJybyIsICAicm9hIiwgInJvbSIsICAgICovCisgICAgICAgICAgICAgICAgInJhaiIsICJyYXAiLCAicmFyIiwgInJvaCIsICJydW4iLCAicm9uIiwgInJvYSIsICJyb20iLAorICAgICAgICAgICAgICAgIC8qInJ1IiwgICJydXAiLCAicnciLCAgInNhIiwgICJzYWQiLCAic2FoIiwgInNhaSIsICJzYWwiLCAic2FtIiwgICAgKi8KKyAgICAgICAgICAgICAgICAicnVzIiwgInJ1cCIsICJraW4iLCAic2FuIiwgInNhZCIsICJzYWgiLCAic2FpIiwgInNhbCIsICJzYW0iLAorICAgICAgICAgICAgICAgIC8qInNhcyIsICJzYXQiLCAic2MiLCAgInNjbyIsICJzZCIsICAic2UiLCAgInNlbCIsICJzZW0iLCAgICAqLworICAgICAgICAgICAgICAgICJzYXMiLCAic2F0IiwgInNyZCIsICJzY28iLCAic25kIiwgInNtZSIsICJzZWwiLCAic2VtIiwKKyAgICAgICAgICAgICAgICAvKiJzZyIsICAic2dhIiwgInNnbiIsICJzaG4iLCAic2kiLCAgInNpZCIsICJzaW8iLCAic2l0IiwgICAgKi8KKyAgICAgICAgICAgICAgICAic2FnIiwgInNnYSIsICJzZ24iLCAic2huIiwgInNpbiIsICJzaWQiLCAic2lvIiwgInNpdCIsCisgICAgICAgICAgICAgICAgLyoic2siLCAgInNsIiwgICJzbGEiLCAic20iLCAgInNtYSIsICJzbWkiLCAic21qIiwgInNtbiIsICAgICovCisgICAgICAgICAgICAgICAgInNsayIsICJzbHYiLCAic2xhIiwgInNtbyIsICJzbWEiLCAic21pIiwgInNtaiIsICJzbW4iLAorICAgICAgICAgICAgICAgIC8qInNtcyIsICJzbiIsICAic25rIiwgInNvIiwgICJzb2ciLCAic29uIiwgInNxIiwgICJzciIsICAgICAqLworICAgICAgICAgICAgICAgICJzbXMiLCAic25hIiwgInNuayIsICJzb20iLCAic29nIiwgInNvbiIsICJzcWkiLCAic3JwIiwKKyAgICAgICAgICAgICAgICAvKiJzcnIiLCAic3MiLCAgInNzYSIsICJzdCIsICAic3UiLCAgInN1ayIsICJzdXMiLCAic3V4IiwgICAgKi8KKyAgICAgICAgICAgICAgICAic3JyIiwgInNzdyIsICJzc2EiLCAic290IiwgInN1biIsICJzdWsiLCAic3VzIiwgInN1eCIsCisgICAgICAgICAgICAgICAgLyoic3YiLCAgInN3IiwgICJzeXIiLCAidGEiLCAgInRhaSIsICJ0ZSIsICAidGVtIiwgInRlciIsICAgICovCisgICAgICAgICAgICAgICAgInN3ZSIsICJzd2EiLCAic3lyIiwgInRhbSIsICJ0YWkiLCAidGVsIiwgInRlbSIsICJ0ZXIiLAorICAgICAgICAgICAgICAgIC8qInRldCIsICJ0ZyIsICAidGgiLCAgInRpIiwgICJ0aWciLCAidGl2IiwgInRrIiwgICJ0a2wiLCAgICAqLworICAgICAgICAgICAgICAgICJ0ZXQiLCAidGdrIiwgInRoYSIsICJ0aXIiLCAidGlnIiwgInRpdiIsICJ0dWsiLCAidGtsIiwKKyAgICAgICAgICAgICAgICAvKiJ0bCIsICAidGxoIiwgInRsaSIsICJ0bWgiLCAidG4iLCAgInRvIiwgICJ0b2ciLCAidHBpIiwgInRyIiwgICAgICovCisgICAgICAgICAgICAgICAgInRnbCIsICJ0bGgiLCAidGxpIiwgInRtaCIsICJ0c24iLCAidG9uIiwgInRvZyIsICJ0cGkiLCAidHVyIiwKKyAgICAgICAgICAgICAgICAvKiJ0cyIsICAidHNpIiwgInR0IiwgICJ0dW0iLCAidHVwIiwgInR1dCIsICJ0dmwiLCAidHciLCAgICAgKi8KKyAgICAgICAgICAgICAgICAidHNvIiwgInRzaSIsICJ0YXQiLCAidHVtIiwgInR1cCIsICJ0dXQiLCAidHZsIiwgInR3aSIsCisgICAgICAgICAgICAgICAgLyoidHkiLCAgInR5diIsICJ1ZG0iLCAidWciLCAgInVnYSIsICJ1ayIsICAidW1iIiwgInVuZCIsICJ1ciIsICAgICAqLworICAgICAgICAgICAgICAgICJ0YWgiLCAidHl2IiwgInVkbSIsICJ1aWciLCAidWdhIiwgInVrciIsICJ1bWIiLCAidW5kIiwgInVyZCIsCisgICAgICAgICAgICAgICAgLyoidXoiLCAgInZhaSIsICJ2ZSIsICAidmkiLCAgInZvIiwgICJ2b3QiLCAid2EiLCAgIndhayIsICAgICovCisgICAgICAgICAgICAgICAgInV6YiIsICJ2YWkiLCAidmVuIiwgInZpZSIsICJ2b2wiLCAidm90IiwgIndsbiIsICJ3YWsiLAorICAgICAgICAgICAgICAgIC8qIndhbCIsICJ3YXIiLCAid2FzIiwgIndlbiIsICJ3byIsICAieGFsIiwgInhoIiwgICJ5YW8iLCAieWFwIiwgICAgKi8KKyAgICAgICAgICAgICAgICAid2FsIiwgIndhciIsICJ3YXMiLCAid2VuIiwgIndvbCIsICJ4YWwiLCAieGhvIiwgInlhbyIsICJ5YXAiLAorICAgICAgICAgICAgICAgIC8qInlpIiwgICJ5byIsICAieXBrIiwgInphIiwgICJ6YXAiLCAiemVuIiwgInpoIiwgICJ6bmQiLCAgICAqLworICAgICAgICAgICAgICAgICJ5aWQiLCAieW9yIiwgInlwayIsICJ6aGEiLCAiemFwIiwgInplbiIsICJ6aG8iLCAiem5kIiwKKyAgICAgICAgICAgICAgICAvKiJ6dSIsICAienVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAienVsIiwgInp1biIsICAKKyAgICAgICAgICAgIH07CisgICAgCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXMzID0geworICAgICAgICAgICAgICAgIC8qICJpbiIsICAiaXciLCAgImppIiwgICJqdyIsICAic2giLCAqLworICAgICAgICAgICAgICAgICJpbmQiLCAiaGViIiwgInlpZCIsICJqYXciLCAic3JwIiwgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoX2xhbmd1YWdlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIF9sYW5ndWFnZXMgPSB0ZW1wTGFuZ3VhZ2VzOworICAgICAgICAgICAgICAgICAgICBfcmVwbGFjZW1lbnRMYW5ndWFnZXMgPSB0ZW1wUmVwbGFjZW1lbnRMYW5ndWFnZXM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUxhbmd1YWdlcyA9IHRlbXBPYnNvbGV0ZUxhbmd1YWdlczsKKyAgICAgICAgICAgICAgICAgICAgX2xhbmd1YWdlczMgPSB0ZW1wTGFuZ3VhZ2VzMzsKKyAgICAgICAgICAgICAgICAgICAgX29ic29sZXRlTGFuZ3VhZ2VzMyA9IHRlbXBPYnNvbGV0ZUxhbmd1YWdlczM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2NvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfZGVwcmVjYXRlZENvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfcmVwbGFjZW1lbnRDb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlQ291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9jb3VudHJpZXMzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUNvdW50cmllczM7ICAKKworICAgIC8vIEF2b2lkIGluaXRpYWxpemluZyBjb3VudHJ5IHRhYmxlcyB1bmxlc3Mgd2UgaGF2ZSB0by4KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGluaXRDb3VudHJ5VGFibGVzKCkgeyAgICAKKyAgICAgICAgaWYgKF9jb3VudHJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgLyogWlIoWkFSKSBpcyBub3cgQ0QoQ09EKSBhbmQgRlgoRlhYKSBpcyBQUyhQU0UpIGFzIHBlcgorICAgICAgICAgICAgICAgaHR0cDovL3d3dy5ldmVydHlwZS5jb20vc3RhbmRhcmRzL2lzbzMxNjYvaXNvMzE2Ni0xLWVuLmh0bWwgCisgICAgICAgICAgICAgICBhZGRlZCBuZXcgY29kZXMga2VlcGluZyB0aGUgb2xkIG9uZXMgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgICAgICAgICAgIHVwZGF0ZWQgdG8gaW5jbHVkZSAxOTk5LzEyLzAzIHJldmlzaW9ucyAqQ1dCKi8KKyAgICAKKyAgICAgICAgICAgIC8qIFJPKFJPTSkgaXMgbm93IFJPKFJPVSkgYWNjb3JkaW5nIHRvIAorICAgICAgICAgICAgICAgaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvMDN1cGRhdGVzLW9uLWlzby0zMTY2L25sdjNlLXJvdS5odG1sCisgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgYmUgaW4gc29ydGVkIG9yZGVyLCBhbmQgTVVTVCBjb250YWluIG9ubHkgdHdvLWxldHRlciBjb2RlcyEgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAgIkFEIiwgICJBRSIsICAiQUYiLCAgIkFHIiwgICJBSSIsICAiQUwiLCAgIkFNIiwgICJBTiIsCisgICAgICAgICAgICAgICAgIkFPIiwgICJBUSIsICAiQVIiLCAgIkFTIiwgICJBVCIsICAiQVUiLCAgIkFXIiwgICJBWiIsCisgICAgICAgICAgICAgICAgIkJBIiwgICJCQiIsICAiQkQiLCAgIkJFIiwgICJCRiIsICAiQkciLCAgIkJIIiwgICJCSSIsCisgICAgICAgICAgICAgICAgIkJKIiwgICJCTSIsICAiQk4iLCAgIkJPIiwgICJCUiIsICAiQlMiLCAgIkJUIiwgICJCViIsCisgICAgICAgICAgICAgICAgIkJXIiwgICJCWSIsICAiQloiLCAgIkNBIiwgICJDQyIsICAiQ0QiLCAgIkNGIiwgICJDRyIsCisgICAgICAgICAgICAgICAgIkNIIiwgICJDSSIsICAiQ0siLCAgIkNMIiwgICJDTSIsICAiQ04iLCAgIkNPIiwgICJDUiIsCisgICAgICAgICAgICAgICAgIkNVIiwgICJDViIsICAiQ1giLCAgIkNZIiwgICJDWiIsICAiREUiLCAgIkRKIiwgICJESyIsCisgICAgICAgICAgICAgICAgIkRNIiwgICJETyIsICAiRFoiLCAgIkVDIiwgICJFRSIsICAiRUciLCAgIkVIIiwgICJFUiIsCisgICAgICAgICAgICAgICAgIkVTIiwgICJFVCIsICAiRkkiLCAgIkZKIiwgICJGSyIsICAiRk0iLCAgIkZPIiwgICJGUiIsCisgICAgICAgICAgICAgICAgIkdBIiwgICJHQiIsICAiR0QiLCAgIkdFIiwgICJHRiIsICAiR0giLCAgIkdJIiwgICJHTCIsCisgICAgICAgICAgICAgICAgIkdNIiwgICJHTiIsICAiR1AiLCAgIkdRIiwgICJHUiIsICAiR1MiLCAgIkdUIiwgICJHVSIsCisgICAgICAgICAgICAgICAgIkdXIiwgICJHWSIsICAiSEsiLCAgIkhNIiwgICJITiIsICAiSFIiLCAgIkhUIiwgICJIVSIsCisgICAgICAgICAgICAgICAgIklEIiwgICJJRSIsICAiSUwiLCAgIklOIiwgICJJTyIsICAiSVEiLCAgIklSIiwgICJJUyIsCisgICAgICAgICAgICAgICAgIklUIiwgICJKTSIsICAiSk8iLCAgIkpQIiwgICJLRSIsICAiS0ciLCAgIktIIiwgICJLSSIsCisgICAgICAgICAgICAgICAgIktNIiwgICJLTiIsICAiS1AiLCAgIktSIiwgICJLVyIsICAiS1kiLCAgIktaIiwgICJMQSIsCisgICAgICAgICAgICAgICAgIkxCIiwgICJMQyIsICAiTEkiLCAgIkxLIiwgICJMUiIsICAiTFMiLCAgIkxUIiwgICJMVSIsCisgICAgICAgICAgICAgICAgIkxWIiwgICJMWSIsICAiTUEiLCAgIk1DIiwgICJNRCIsICAiTUciLCAgIk1IIiwgICJNSyIsCisgICAgICAgICAgICAgICAgIk1MIiwgICJNTSIsICAiTU4iLCAgIk1PIiwgICJNUCIsICAiTVEiLCAgIk1SIiwgICJNUyIsCisgICAgICAgICAgICAgICAgIk1UIiwgICJNVSIsICAiTVYiLCAgIk1XIiwgICJNWCIsICAiTVkiLCAgIk1aIiwgICJOQSIsCisgICAgICAgICAgICAgICAgIk5DIiwgICJORSIsICAiTkYiLCAgIk5HIiwgICJOSSIsICAiTkwiLCAgIk5PIiwgICJOUCIsCisgICAgICAgICAgICAgICAgIk5SIiwgICJOVSIsICAiTloiLCAgIk9NIiwgICJQQSIsICAiUEUiLCAgIlBGIiwgICJQRyIsCisgICAgICAgICAgICAgICAgIlBIIiwgICJQSyIsICAiUEwiLCAgIlBNIiwgICJQTiIsICAiUFIiLCAgIlBTIiwgICJQVCIsCisgICAgICAgICAgICAgICAgIlBXIiwgICJQWSIsICAiUUEiLCAgIlJFIiwgICJSTyIsICAiUlUiLCAgIlJXIiwgICJTQSIsCisgICAgICAgICAgICAgICAgIlNCIiwgICJTQyIsICAiU0QiLCAgIlNFIiwgICJTRyIsICAiU0giLCAgIlNJIiwgICJTSiIsCisgICAgICAgICAgICAgICAgIlNLIiwgICJTTCIsICAiU00iLCAgIlNOIiwgICJTTyIsICAiU1IiLCAgIlNUIiwgICJTViIsCisgICAgICAgICAgICAgICAgIlNZIiwgICJTWiIsICAiVEMiLCAgIlREIiwgICJURiIsICAiVEciLCAgIlRIIiwgICJUSiIsCisgICAgICAgICAgICAgICAgIlRLIiwgICJUTCIsICAiVE0iLCAgIlROIiwgICJUTyIsICAiVFIiLCAgIlRUIiwgICJUViIsCisgICAgICAgICAgICAgICAgIlRXIiwgICJUWiIsICAiVUEiLCAgIlVHIiwgICJVTSIsICAiVVMiLCAgIlVZIiwgICJVWiIsCisgICAgICAgICAgICAgICAgIlZBIiwgICJWQyIsICAiVkUiLCAgIlZHIiwgICJWSSIsICAiVk4iLCAgIlZVIiwgICJXRiIsCisgICAgICAgICAgICAgICAgIldTIiwgICJZRSIsICAiWVQiLCAgIllVIiwgICJaQSIsICAiWk0iLCAgIlpXIiwgIAorICAgICAgICAgICAgfTsgIAorCisgICAgICAgICAgICAvKiB0aGlzIHRhYmxlIGlzIHVzZWQgZm9yIDMgbGV0dGVyIGNvZGVzICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wT2Jzb2xldGVDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAgIkZYIiwgICJSTyIsICAiVFAiLCAgIlpSIiwgIC8qIG9ic29sZXRlIGNvdW50cnkgY29kZXMgKi8gICAgICAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBEZXByZWNhdGVkQ291bnRyaWVzID0geworICAgICAgICAgICAgICAgIkJVIiwgIkRZIiwgIkZYIiwgIkhWIiwgIk5IIiwgIlJIIiwgIlRQIiwgIllVIiwgIlpSIiAvKiBkZXByZWNhdGVkIGNvdW50cnkgbGlzdCAqLworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBSZXBsYWNlbWVudENvdW50cmllcyA9IHsKKyAgICAgICAgICAgLyogICJCVSIsICJEWSIsICJGWCIsICJIViIsICJOSCIsICJSSCIsICJUUCIsICJZVSIsICJaUiIgKi8KKyAgICAgICAgICAgICAgICJNTSIsICJCSiIsICJGUiIsICJCRiIsICJWVSIsICJaVyIsICJUTCIsICJDUyIsICJDRCIsICAgLyogcmVwbGFjZW1lbnQgY291bnRyeSBjb2RlcyAqLyAgICAgIAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGNvbnRhaW4gYSB0aHJlZS1sZXR0ZXIgY29kZSBmb3IgZXZlcnkgdHdvLWxldHRlciBjb2RlIGluCisgICAgICAgICAgICAgICB0aGUgYWJvdmUgbGlzdCwgYW5kIHRoZXkgTVVTVCBiZSBsaXN0ZWQgaW4gdGhlIHNhbWUgb3JkZXIhICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wQ291bnRyaWVzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJBRCIsICAiQUUiLCAgIkFGIiwgICJBRyIsICAiQUkiLCAgIkFMIiwgICJBTSIsICAiQU4iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQU5EIiwgIkFSRSIsICJBRkciLCAiQVRHIiwgIkFJQSIsICJBTEIiLCAiQVJNIiwgIkFOVCIsCisgICAgICAgICAgICAgICAgLyoiQU8iLCAgIkFRIiwgICJBUiIsICAiQVMiLCAgIkFUIiwgICJBVSIsICAiQVciLCAgIkFaIiwgICAgICovCisgICAgICAgICAgICAgICAgIkFHTyIsICJBVEEiLCAiQVJHIiwgIkFTTSIsICJBVVQiLCAiQVVTIiwgIkFCVyIsICJBWkUiLAorICAgICAgICAgICAgICAgIC8qIkJBIiwgICJCQiIsICAiQkQiLCAgIkJFIiwgICJCRiIsICAiQkciLCAgIkJIIiwgICJCSSIsICAgICAqLworICAgICAgICAgICAgICAgICJCSUgiLCAiQlJCIiwgIkJHRCIsICJCRUwiLCAiQkZBIiwgIkJHUiIsICJCSFIiLCAiQkRJIiwKKyAgICAgICAgICAgICAgICAvKiJCSiIsICAiQk0iLCAgIkJOIiwgICJCTyIsICAiQlIiLCAgIkJTIiwgICJCVCIsICAiQlYiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQkVOIiwgIkJNVSIsICJCUk4iLCAiQk9MIiwgIkJSQSIsICJCSFMiLCAiQlROIiwgIkJWVCIsCisgICAgICAgICAgICAgICAgLyoiQlciLCAgIkJZIiwgICJCWiIsICAiQ0EiLCAgIkNDIiwgICJDRCIsICAiQ0YiLCAgIkNHIiwgICAgICovCisgICAgICAgICAgICAgICAgIkJXQSIsICJCTFIiLCAiQkxaIiwgIkNBTiIsICJDQ0siLCAiQ09EIiwgIkNBRiIsICJDT0ciLAorICAgICAgICAgICAgICAgIC8qIkNIIiwgICJDSSIsICAiQ0siLCAgIkNMIiwgICJDTSIsICAiQ04iLCAgIkNPIiwgICJDUiIsICAgICAqLworICAgICAgICAgICAgICAgICJDSEUiLCAiQ0lWIiwgIkNPSyIsICJDSEwiLCAiQ01SIiwgIkNITiIsICJDT0wiLCAiQ1JJIiwKKyAgICAgICAgICAgICAgICAvKiJDVSIsICAiQ1YiLCAgIkNYIiwgICJDWSIsICAiQ1oiLCAgIkRFIiwgICJESiIsICAiREsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQ1VCIiwgIkNQViIsICJDWFIiLCAiQ1lQIiwgIkNaRSIsICJERVUiLCAiREpJIiwgIkROSyIsCisgICAgICAgICAgICAgICAgLyoiRE0iLCAgIkRPIiwgICJEWiIsICAiRUMiLCAgIkVFIiwgICJFRyIsICAiRUgiLCAgIkVSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkRNQSIsICJET00iLCAiRFpBIiwgIkVDVSIsICJFU1QiLCAiRUdZIiwgIkVTSCIsICJFUkkiLAorICAgICAgICAgICAgICAgIC8qIkVTIiwgICJFVCIsICAiRkkiLCAgIkZKIiwgICJGSyIsICAiRk0iLCAgIkZPIiwgICJGUiIsICAgICAqLworICAgICAgICAgICAgICAgICJFU1AiLCAiRVRIIiwgIkZJTiIsICJGSkkiLCAiRkxLIiwgIkZTTSIsICJGUk8iLCAiRlJBIiwKKyAgICAgICAgICAgICAgICAvKiJHQSIsICAiR0IiLCAgIkdEIiwgICJHRSIsICAiR0YiLCAgIkdIIiwgICJHSSIsICAiR0wiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiR0FCIiwgIkdCUiIsICJHUkQiLCAiR0VPIiwgIkdVRiIsICJHSEEiLCAiR0lCIiwgIkdSTCIsCisgICAgICAgICAgICAgICAgLyoiR00iLCAgIkdOIiwgICJHUCIsICAiR1EiLCAgIkdSIiwgICJHUyIsICAiR1QiLCAgIkdVIiwgICAgICovCisgICAgICAgICAgICAgICAgIkdNQiIsICJHSU4iLCAiR0xQIiwgIkdOUSIsICJHUkMiLCAiU0dTIiwgIkdUTSIsICJHVU0iLAorICAgICAgICAgICAgICAgIC8qIkdXIiwgICJHWSIsICAiSEsiLCAgIkhNIiwgICJITiIsICAiSFIiLCAgIkhUIiwgICJIVSIsICAgICAqLworICAgICAgICAgICAgICAgICJHTkIiLCAiR1VZIiwgIkhLRyIsICJITUQiLCAiSE5EIiwgIkhSViIsICJIVEkiLCAiSFVOIiwKKyAgICAgICAgICAgICAgICAvKiJJRCIsICAiSUUiLCAgIklMIiwgICJJTiIsICAiSU8iLCAgIklRIiwgICJJUiIsICAiSVMiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiSUROIiwgIklSTCIsICJJU1IiLCAiSU5EIiwgIklPVCIsICJJUlEiLCAiSVJOIiwgIklTTCIsCisgICAgICAgICAgICAgICAgLyoiSVQiLCAgIkpNIiwgICJKTyIsICAiSlAiLCAgIktFIiwgICJLRyIsICAiS0giLCAgIktJIiwgICAgICovCisgICAgICAgICAgICAgICAgIklUQSIsICJKQU0iLCAiSk9SIiwgIkpQTiIsICJLRU4iLCAiS0daIiwgIktITSIsICJLSVIiLAorICAgICAgICAgICAgICAgIC8qIktNIiwgICJLTiIsICAiS1AiLCAgIktSIiwgICJLVyIsICAiS1kiLCAgIktaIiwgICJMQSIsICAgICAqLworICAgICAgICAgICAgICAgICJDT00iLCAiS05BIiwgIlBSSyIsICJLT1IiLCAiS1dUIiwgIkNZTSIsICJLQVoiLCAiTEFPIiwKKyAgICAgICAgICAgICAgICAvKiJMQiIsICAiTEMiLCAgIkxJIiwgICJMSyIsICAiTFIiLCAgIkxTIiwgICJMVCIsICAiTFUiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTEJOIiwgIkxDQSIsICJMSUUiLCAiTEtBIiwgIkxCUiIsICJMU08iLCAiTFRVIiwgIkxVWCIsCisgICAgICAgICAgICAgICAgLyoiTFYiLCAgIkxZIiwgICJNQSIsICAiTUMiLCAgIk1EIiwgICJNRyIsICAiTUgiLCAgIk1LIiwgICAgICovCisgICAgICAgICAgICAgICAgIkxWQSIsICJMQlkiLCAiTUFSIiwgIk1DTyIsICJNREEiLCAiTURHIiwgIk1ITCIsICJNS0QiLAorICAgICAgICAgICAgICAgIC8qIk1MIiwgICJNTSIsICAiTU4iLCAgIk1PIiwgICJNUCIsICAiTVEiLCAgIk1SIiwgICJNUyIsICAgICAqLworICAgICAgICAgICAgICAgICJNTEkiLCAiTU1SIiwgIk1ORyIsICJNQUMiLCAiTU5QIiwgIk1UUSIsICJNUlQiLCAiTVNSIiwKKyAgICAgICAgICAgICAgICAvKiJNVCIsICAiTVUiLCAgIk1WIiwgICJNVyIsICAiTVgiLCAgIk1ZIiwgICJNWiIsICAiTkEiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTUxUIiwgIk1VUyIsICJNRFYiLCAiTVdJIiwgIk1FWCIsICJNWVMiLCAiTU9aIiwgIk5BTSIsCisgICAgICAgICAgICAgICAgLyoiTkMiLCAgIk5FIiwgICJORiIsICAiTkciLCAgIk5JIiwgICJOTCIsICAiTk8iLCAgIk5QIiwgICAgICovCisgICAgICAgICAgICAgICAgIk5DTCIsICJORVIiLCAiTkZLIiwgIk5HQSIsICJOSUMiLCAiTkxEIiwgIk5PUiIsICJOUEwiLAorICAgICAgICAgICAgICAgIC8qIk5SIiwgICJOVSIsICAiTloiLCAgIk9NIiwgICJQQSIsICAiUEUiLCAgIlBGIiwgICJQRyIsICAgICAqLworICAgICAgICAgICAgICAgICJOUlUiLCAiTklVIiwgIk5aTCIsICJPTU4iLCAiUEFOIiwgIlBFUiIsICJQWUYiLCAiUE5HIiwKKyAgICAgICAgICAgICAgICAvKiJQSCIsICAiUEsiLCAgIlBMIiwgICJQTSIsICAiUE4iLCAgIlBSIiwgICJQUyIsICAiUFQiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiUEhMIiwgIlBBSyIsICJQT0wiLCAiU1BNIiwgIlBDTiIsICJQUkkiLCAiUFNFIiwgIlBSVCIsCisgICAgICAgICAgICAgICAgLyoiUFciLCAgIlBZIiwgICJRQSIsICAiUkUiLCAgIlJPIiwgICJSVSIsICAiUlciLCAgIlNBIiwgICAgICovCisgICAgICAgICAgICAgICAgIlBMVyIsICJQUlkiLCAiUUFUIiwgIlJFVSIsICJST1UiLCAiUlVTIiwgIlJXQSIsICJTQVUiLAorICAgICAgICAgICAgICAgIC8qIlNCIiwgICJTQyIsICAiU0QiLCAgIlNFIiwgICJTRyIsICAiU0giLCAgIlNJIiwgICJTSiIsICAgICAqLworICAgICAgICAgICAgICAgICJTTEIiLCAiU1lDIiwgIlNETiIsICJTV0UiLCAiU0dQIiwgIlNITiIsICJTVk4iLCAiU0pNIiwKKyAgICAgICAgICAgICAgICAvKiJTSyIsICAiU0wiLCAgIlNNIiwgICJTTiIsICAiU08iLCAgIlNSIiwgICJTVCIsICAiU1YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiU1ZLIiwgIlNMRSIsICJTTVIiLCAiU0VOIiwgIlNPTSIsICJTVVIiLCAiU1RQIiwgIlNMViIsCisgICAgICAgICAgICAgICAgLyoiU1kiLCAgIlNaIiwgICJUQyIsICAiVEQiLCAgIlRGIiwgICJURyIsICAiVEgiLCAgIlRKIiwgICAgICovCisgICAgICAgICAgICAgICAgIlNZUiIsICJTV1oiLCAiVENBIiwgIlRDRCIsICJBVEYiLCAiVEdPIiwgIlRIQSIsICJUSksiLAorICAgICAgICAgICAgICAgIC8qIlRLIiwgICJUTCIsICAiVE0iLCAgIlROIiwgICJUTyIsICAiVFIiLCAgIlRUIiwgICJUViIsICAgICAqLworICAgICAgICAgICAgICAgICJUS0wiLCAiVExTIiwgIlRLTSIsICJUVU4iLCAiVE9OIiwgIlRVUiIsICJUVE8iLCAiVFVWIiwKKyAgICAgICAgICAgICAgICAvKiJUVyIsICAiVFoiLCAgIlVBIiwgICJVRyIsICAiVU0iLCAgIlVTIiwgICJVWSIsICAiVVoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiVFdOIiwgIlRaQSIsICJVS1IiLCAiVUdBIiwgIlVNSSIsICJVU0EiLCAiVVJZIiwgIlVaQiIsCisgICAgICAgICAgICAgICAgLyoiVkEiLCAgIlZDIiwgICJWRSIsICAiVkciLCAgIlZJIiwgICJWTiIsICAiVlUiLCAgIldGIiwgICAgICovCisgICAgICAgICAgICAgICAgIlZBVCIsICJWQ1QiLCAiVkVOIiwgIlZHQiIsICJWSVIiLCAiVk5NIiwgIlZVVCIsICJXTEYiLAorICAgICAgICAgICAgICAgIC8qIldTIiwgICJZRSIsICAiWVQiLCAgIllVIiwgICJaQSIsICAiWk0iLCAgIlpXIiwgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICJXU00iLCAiWUVNIiwgIk1ZVCIsICJZVUciLCAiWkFGIiwgIlpNQiIsICJaV0UiLAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUNvdW50cmllczMgPSB7CisgICAgICAgICAgICAgICAgLyoiRlgiLCAgIlJPIiwgICJUUCIsICAiWlIiLCAgICovCisgICAgICAgICAgICAgICAgIkZYWCIsICJST00iLCAiVE1QIiwgIlpBUiIsICAgIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgaWYgKF9jb3VudHJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBfY291bnRyaWVzID0gdGVtcENvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX2RlcHJlY2F0ZWRDb3VudHJpZXMgPSB0ZW1wRGVwcmVjYXRlZENvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX3JlcGxhY2VtZW50Q291bnRyaWVzID0gdGVtcFJlcGxhY2VtZW50Q291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfb2Jzb2xldGVDb3VudHJpZXMgPSB0ZW1wT2Jzb2xldGVDb3VudHJpZXM7CisgICAgICAgICAgICAgICAgICAgIF9jb3VudHJpZXMzID0gdGVtcENvdW50cmllczM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUNvdW50cmllczMgPSB0ZW1wT2Jzb2xldGVDb3VudHJpZXMzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gX3ZhcmlhbnRzVG9LZXl3b3JkczsKKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdFZhcmlhbnRzVGFibGUoKSB7CisgICAgICAgIGlmIChfdmFyaWFudHNUb0tleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogVGhpcyB0YWJsZSBsaXN0cyBwYWlycyBvZiBsb2NhbGUgaWRzIGZvciBjYW5vbmljYWxpemF0aW9uLiAgVGhlCisgICAgICAgICAgICAgKiBUaGUgZmlyc3QgaXRlbSBpcyB0aGUgbm9ybWFsaXplZCBpZCwgdGhlIHNlY29uZCBpdGVtIGlzIHRoZQorICAgICAgICAgICAgICogY2Fub25pY2FsaXplZCBpZC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgU3RyaW5nW11bXSB0ZW1wVmFyaWFudHNUb0tleXdvcmRzID0geworLy8gICAgICAgICAgICAgIHsgRU1QVFlfU1RSSU5HLCAgICAgImVuX1VTX1BPU0lYIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJDIiwgICAgICAgICAgICAgICJlbl9VU19QT1NJWCIsIG51bGwsIG51bGwgfSwgLyogUE9TSVggbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImFydF9MT0pCQU4iLCAgICAgImpibyIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXpfQVpfQ1lSTCIsICAgICAiYXpfQ3lybF9BWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXpfQVpfTEFUTiIsICAgICAiYXpfTGF0bl9BWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiY2FfRVNfUFJFRVVSTyIsICAiY2FfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImNlbF9HQVVMSVNIIiwgICAgImNlbF9fR0FVTElTSCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZGVfMTkwMSIsICAgICAgICAiZGVfXzE5MDEiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImRlXzE5MDYiLCAgICAgICAgImRlX18xOTA2IiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJkZV9fUEhPTkVCT09LIiwgICJkZSIsICJjb2xsYXRpb24iLCAicGhvbmVib29rIiB9LAorICAgICAgICAgICAgICAgIHsgImRlX0FUX1BSRUVVUk8iLCAgImRlX0FUIiwgImN1cnJlbmN5IiwgIkFUUyIgfSwKKyAgICAgICAgICAgICAgICB7ICJkZV9ERV9QUkVFVVJPIiwgICJkZV9ERSIsICJjdXJyZW5jeSIsICJERU0iIH0sCisgICAgICAgICAgICAgICAgeyAiZGVfTFVfUFJFRVVSTyIsICAiZGVfTFUiLCAiY3VycmVuY3kiLCAiRVVSIiB9LAorICAgICAgICAgICAgICAgIHsgImVsX0dSX1BSRUVVUk8iLCAgImVsX0dSIiwgImN1cnJlbmN5IiwgIkdSRCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlbl9CT09OVCIsICAgICAgICJlbl9fQk9PTlQiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImVuX1NDT1VTRSIsICAgICAgImVuX19TQ09VU0UiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImVuX0JFX1BSRUVVUk8iLCAgImVuX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJlbl9JRV9QUkVFVVJPIiwgICJlbl9JRSIsICJjdXJyZW5jeSIsICJJRVAiIH0sCisgICAgICAgICAgICAgICAgeyAiZXNfX1RSQURJVElPTkFMIiwgImVzIiwgImNvbGxhdGlvbiIsICJ0cmFkaXRpb25hbCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlc19FU19QUkVFVVJPIiwgICJlc19FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiZXVfRVNfUFJFRVVSTyIsICAiZXVfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImZpX0ZJX1BSRUVVUk8iLCAgImZpX0ZJIiwgImN1cnJlbmN5IiwgIkZJTSIgfSwKKyAgICAgICAgICAgICAgICB7ICJmcl9CRV9QUkVFVVJPIiwgICJmcl9CRSIsICJjdXJyZW5jeSIsICJCRUYiIH0sCisgICAgICAgICAgICAgICAgeyAiZnJfRlJfUFJFRVVSTyIsICAiZnJfRlIiLCAiY3VycmVuY3kiLCAiRlJGIiB9LAorICAgICAgICAgICAgICAgIHsgImZyX0xVX1BSRUVVUk8iLCAgImZyX0xVIiwgImN1cnJlbmN5IiwgIkxVRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJnYV9JRV9QUkVFVVJPIiwgICJnYV9JRSIsICJjdXJyZW5jeSIsICJJRVAiIH0sCisgICAgICAgICAgICAgICAgeyAiZ2xfRVNfUFJFRVVSTyIsICAiZ2xfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImhpX19ESVJFQ1QiLCAgICAgImhpIiwgImNvbGxhdGlvbiIsICJkaXJlY3QiIH0sCisgICAgICAgICAgICAgICAgeyAiaXRfSVRfUFJFRVVSTyIsICAiaXRfSVQiLCAiY3VycmVuY3kiLCAiSVRMIiB9LAorICAgICAgICAgICAgICAgIHsgImphX0pQX1RSQURJVElPTkFMIiwgImphX0pQIiwgImNhbGVuZGFyIiwgImphcGFuZXNlIiB9LAorLy8gICAgICAgICAgICAgIHsgIm5iX05PX05ZIiwgICAgICAgIm5uX05PIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICAgICAgICAgIHsgIm5sX0JFX1BSRUVVUk8iLCAgIm5sX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJubF9OTF9QUkVFVVJPIiwgICJubF9OTCIsICJjdXJyZW5jeSIsICJOTEciIH0sCisgICAgICAgICAgICAgICAgeyAicHRfUFRfUFJFRVVSTyIsICAicHRfUFQiLCAiY3VycmVuY3kiLCAiUFRFIiB9LAorICAgICAgICAgICAgICAgIHsgInNsX1JPWkFKIiwgICAgICAgInNsX19ST1pBSiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfU1BfQ1lSTCIsICAgICAic3JfQ3lybF9DUyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfU1BfTEFUTiIsICAgICAic3JfTGF0bl9DUyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfWVVfQ1lSSUxMSUMiLCAic3JfQ3lybF9DUyIsIG51bGwsIG51bGwgfSwgLyogTGludXggbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInV6X1VaX0NZUkwiLCAgICAgInV6X0N5cmxfVVoiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInV6X1VaX0xBVE4iLCAgICAgInV6X0xhdG5fVVoiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0NIUyIsICAgICAgICAgInpoX0hhbnMiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0NIVCIsICAgICAgICAgInpoX0hhbnQiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0dBTiIsICAgICAgICAgInpoX19HQU4iLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0dVT1lVIiwgICAgICAgInpoIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9IQUtLQSIsICAgICAgICJ6aF9fSEFLS0EiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX01JTiIsICAgICAgICAgInpoX19NSU4iLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX01JTl9OQU4iLCAgICAgInpoX19NSU5OQU4iLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX1dVVSIsICAgICAgICAgInpoX19XVVUiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX1hJQU5HIiwgICAgICAgInpoX19YSUFORyIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfWVVFIiwgICAgICAgICAiemhfX1lVRSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAidGhfVEhfVFJBRElUSU9OQUwiLCAidGhfVEgiLCAiY2FsZW5kYXIiLCAiYnVkZGhpc3QiIH0sCisgICAgICAgICAgICAgICAgeyAiemhfVFdfU1RST0tFIiwgICAiemhfVFciLCAiY29sbGF0aW9uIiwgInN0cm9rZSIgfSwKKyAgICAgICAgICAgICAgICB7ICJ6aF9fUElOWUlOIiwgICAgICJ6aCIsICJjb2xsYXRpb24iLCAicGlueWluIiB9CisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBfdmFyaWFudHNUb0tleXdvcmRzID0gdGVtcFZhcmlhbnRzVG9LZXl3b3JkczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHVzZWQgYnkgc3RhdGljIGluaXRpYWxpemVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUoU3RyaW5nIGxvY2FsZUlELCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlSUQgPSBsb2NhbGVJRDsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgVUxvY2FsZSBvYmplY3QgZnJvbSBhIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfS4KKyAgICAgKiBAcGFyYW0gbG9jIGEgSkRLIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZShMb2NhbGUgbG9jKSB7CisgICAgICAgIHRoaXMubG9jYWxlSUQgPSBnZXROYW1lKGxvYy50b1N0cmluZygpKTsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgVUxvY2FsZSBvYmplY3QgZm9yIGEge0BsaW5rIGphdmEudXRpbC5Mb2NhbGV9LgorICAgICAqIFRoZSBVTG9jYWxlIGlzIGNhbm9uaWNhbGl6ZWQuCisgICAgICogQHBhcmFtIGxvYyBhIEpESyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgZm9yTG9jYWxlKExvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKGxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBVTG9jYWxlIHJlc3VsdCA9IChVTG9jYWxlKUNBQ0hFLmdldChsb2MpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZGVmYXVsdFVMb2NhbGUgIT0gbnVsbCAmJiBsb2MgPT0gZGVmYXVsdFVMb2NhbGUubG9jYWxlKSB7CisgICAgICAgICAgICByZXN1bHQgPSBkZWZhdWx0VUxvY2FsZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBVTG9jYWxlKGxvYy50b1N0cmluZygpLCBsb2MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgVUxvY2FsZSBmcm9tIGEgUkZDIDMwNjYgbG9jYWxlIElELiBUaGUgbG9jYWxlIElEIGNvbnNpc3RzCisgICAgICogb2Ygb3B0aW9uYWwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgYW5kIHZhcmlhbnQgZmllbGRzIGluIHRoYXQgb3JkZXIsIAorICAgICAqIHNlcGFyYXRlZCBieSB1bmRlcnNjb3JlcywgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwga2V5d29yZCBsaXN0LiAgVGhlCisgICAgICogc2NyaXB0LCBpZiBwcmVzZW50LCBpcyBmb3VyIGNoYXJhY3RlcnMgbG9uZy0tIHRoaXMgZGlzdGluZ3Vpc2hlcyBpdAorICAgICAqIGZyb20gYSBjb3VudHJ5IGNvZGUsIHdoaWNoIGlzIHR3byBjaGFyYWN0ZXJzIGxvbmcuICBPdGhlciBmaWVsZHMKKyAgICAgKiBhcmUgZGlzdGluZ3Vpc2hlZCBieSBwb3NpdGlvbiBhcyBpbmRpY2F0ZWQgYnkgdGhlIHVuZGVyc2NvcmVzLiAgVGhlCisgICAgICogc3RhcnQgb2YgdGhlIGtleXdvcmQgbGlzdCBpcyBpbmRpY2F0ZWQgYnkgJ0AnLCBhbmQgY29uc2lzdHMgb2Ygb25lCisgICAgICogb3IgbW9yZSBrZXl3b3JkL3ZhbHVlIHBhaXJzIHNlcGFyYXRlZCBieSBjb21tYXMuCisgICAgICogPHA+CisgICAgICogVGhpcyBjb25zdHJ1Y3RvciBkb2VzIG5vdCBjYW5vbmljYWxpemUgdGhlIGxvY2FsZUlELgorICAgICAqIAorICAgICAqIEBwYXJhbSBsb2NhbGVJRCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGxvY2FsZSwgZS5nOgorICAgICAqICJlbl9VUyIsICJzeV9DeXJsX1lVIiwgInpoX19waW55aW4iLCAiZXNfRVNAY3VycmVuY3k9RVVSLGNvbGxhdGlvbj10cmFkaXRpb25hbCIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gCisgICAgcHVibGljIFVMb2NhbGUoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHRoaXMubG9jYWxlSUQgPSBnZXROYW1lKGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZCBvZiBVTG9jYWxlKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpIGZvciAKKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggamF2YS51dGlsLkxvY2FsZS4KKyAgICAgKiBAc2VlICNVTG9jYWxlKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUoU3RyaW5nIGEsIFN0cmluZyBiKSB7CisgICAgICAgIHRoaXMoYSwgYiwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgVUxvY2FsZSBmcm9tIGEgbG9jYWxlSUQgY29uc3RydWN0ZWQgZnJvbSB0aGUgdGhyZWUgJ2ZpZWxkcycgYSwgYiwgYW5kIGMuICBUaGVzZQorICAgICAqIGZpZWxkcyBhcmUgY29uY2F0ZW5hdGVkIHVzaW5nIHVuZGVyc2NvcmVzIHRvIGZvcm0gYSBsb2NhbGVJRCBvZgorICAgICAqIHRoZSBmb3JtIGFfYl9jLCB3aGljaCBpcyB0aGVuIGhhbmRsZWQgbGlrZSB0aGUgbG9jYWxlSUQgcGFzc2VkCisgICAgICogdG8gPGNvZGU+VUxvY2FsZShTdHJpbmcgbG9jYWxlSUQpPC9jb2RlPi4gIAorICAgICAqCisgICAgICogPHA+SmF2YSBsb2NhbGUgc3RyaW5ncyBjb25zaXN0aW5nIG9mIGxhbmd1YWdlLCBjb3VudHJ5LCBhbmQKKyAgICAgKiB2YXJpYW50IHdpbGwgYmUgaGFuZGxlZCBieSB0aGlzIGZvcm0sIHNpbmNlIHRoZSBjb3VudHJ5IGNvZGUKKyAgICAgKiAoYmVpbmcgc2hvcnRlciB0aGFuIGZvdXIgbGV0dGVycyBsb25nKSB3aWxsIG5vdCBiZSBpbnRlcnByZXRlZAorICAgICAqIGFzIGEgc2NyaXB0IGNvZGUuICBJZiBhIHNjcmlwdCBjb2RlIGlzIHByZXNlbnQsIHRoZSBmaW5hbAorICAgICAqIGFyZ3VtZW50ICgnYycpIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgdGhlIGNvdW50cnkgY29kZS4gIEl0IGlzCisgICAgICogcmVjb21tZW5kZWQgdGhhdCB0aGlzIGNvbnN0cnVjdG9yIG9ubHkgYmUgdXNlZCB0byBlYXNlIHBvcnRpbmcsCisgICAgICogYW5kIHRoYXQgY2xpZW50cyBpbnN0ZWFkIHVzZSB0aGUgc2luZ2xlLWFyZ3VtZW50IGNvbnN0cnVjdG9yCisgICAgICogd2hlbiBjb25zdHJ1Y3RpbmcgYSBVTG9jYWxlIGZyb20gYSBsb2NhbGVJRC4KKyAgICAgKiBAcGFyYW0gYSBmaXJzdCBjb21wb25lbnQgb2YgdGhlIGxvY2FsZSBpZAorICAgICAqIEBwYXJhbSBiIHNlY29uZCBjb21wb25lbnQgb2YgdGhlIGxvY2FsZSBpZAorICAgICAqIEBwYXJhbSBjIHRoaXJkIGNvbXBvbmVudCBvZiB0aGUgbG9jYWxlIGlkCisgICAgICogQHNlZSAjVUxvY2FsZShTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMy4wIAorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlKFN0cmluZyBhLCBTdHJpbmcgYiwgU3RyaW5nIGMpIHsKKyAgICAgICAgbG9jYWxlSUQgPSBnZXROYW1lKGxzY3ZUb0lEKGEsIGIsIGMsIEVNUFRZX1NUUklORykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFVMb2NhbGUgZnJvbSB0aGUgaWQgYnkgZmlyc3QgY2Fub25pY2FsaXppbmcgdGhlIGlkLgorICAgICAqIEBwYXJhbSBub25DYW5vbmljYWxJRCB0aGUgbG9jYWxlIGlkIHRvIGNhbm9uaWNhbGl6ZQorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBjcmVhdGVkIGZyb20gdGhlIGNhbm9uaWNhbCB2ZXJzaW9uIG9mIHRoZSBJRC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgY3JlYXRlQ2Fub25pY2FsKFN0cmluZyBub25DYW5vbmljYWxJRCkgeworICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoY2Fub25pY2FsaXplKG5vbkNhbm9uaWNhbElEKSwgKExvY2FsZSludWxsKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgbHNjdlRvSUQoU3RyaW5nIGxhbmcsIFN0cmluZyBzY3JpcHQsIFN0cmluZyBjb3VudHJ5LCBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAKKyAgICAgICAgaWYgKGxhbmcgIT0gbnVsbCAmJiBsYW5nLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChsYW5nKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2NyaXB0ICE9IG51bGwgJiYgc2NyaXB0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2NyaXB0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnRyeSAhPSBudWxsICYmIGNvdW50cnkubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgYnVmLmFwcGVuZChjb3VudHJ5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFyaWFudCAhPSBudWxsICYmIHZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBpZiAoY291bnRyeSA9PSBudWxsIHx8IGNvdW50cnkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgYnVmLmFwcGVuZCh2YXJpYW50KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB0aGlzIFVMb2NhbGUgb2JqZWN0IHRvIGEge0BsaW5rIGphdmEudXRpbC5Mb2NhbGV9LgorICAgICAqIEByZXR1cm4gYSBKREsgbG9jYWxlIHRoYXQgZWl0aGVyIGV4YWN0bHkgcmVwcmVzZW50cyB0aGlzIG9iamVjdAorICAgICAqIG9yIGlzIHRoZSBjbG9zZXN0IGFwcHJveGltYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIExvY2FsZSB0b0xvY2FsZSgpIHsKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9jYWxlID0gdG9Mb2NhbGUobG9jYWxlSUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsb2NhbGU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIExvY2FsZSB0b0xvY2FsZShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldExhbmd1YWdlU2NyaXB0Q291bnRyeVZhcmlhbnQoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobmFtZXNbMF0sIG5hbWVzWzJdLCBuYW1lc1szXSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEtlZXAgb3VyIG93biBkZWZhdWx0IFVMb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVUxvY2FsZSBkZWZhdWx0VUxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgZGVmYXVsdCBVTG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgZ2V0RGVmYXVsdCgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICBMb2NhbGUgZGVmYXVsdExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBpZiAoZGVmYXVsdFVMb2NhbGUgPT0gbnVsbCB8fCBkZWZhdWx0VUxvY2FsZS50b0xvY2FsZSgpICE9IGRlZmF1bHRMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICBkZWZhdWx0VUxvY2FsZSA9IG5ldyBVTG9jYWxlKGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRVTG9jYWxlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGVmYXVsdCBVTG9jYWxlLiAgVGhpcyBhbHNvIHNldHMgdGhlIGRlZmF1bHQgTG9jYWxlLgorICAgICAqIElmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZSB3cml0ZSBwZXJtaXNzaW9uIHRvIHRoZQorICAgICAqIHVzZXIubGFuZ3VhZ2UgcHJvcGVydHksIGEgc2VjdXJpdHkgZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLAorICAgICAqIGFuZCB0aGUgZGVmYXVsdCBVTG9jYWxlIHdpbGwgcmVtYWluIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gbmV3TG9jYWxlIHRoZSBuZXcgZGVmYXVsdCBsb2NhbGUKKyAgICAgKiBAdGhyb3dzIFNlY3VyaXR5RXhjZXB0aW9uCisgICAgICogICAgICAgIGlmIGEgc2VjdXJpdHkgbWFuYWdlciBleGlzdHMgYW5kIGl0cworICAgICAqICAgICAgICA8Y29kZT5jaGVja1Blcm1pc3Npb248L2NvZGU+IG1ldGhvZCBkb2Vzbid0IGFsbG93IHRoZSBvcGVyYXRpb24uCisgICAgICogQHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdMb2NhbGU8L2NvZGU+IGlzIG51bGwKKyAgICAgKiBAc2VlIFNlY3VyaXR5TWFuYWdlciNjaGVja1Blcm1pc3Npb24KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Qcm9wZXJ0eVBlcm1pc3Npb24KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXREZWZhdWx0KFVMb2NhbGUgbmV3TG9jYWxlKXsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQobmV3TG9jYWxlLnRvTG9jYWxlKCkpOworICAgICAgICBkZWZhdWx0VUxvY2FsZSA9IG5ld0xvY2FsZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBpcyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIExvY2FsZS0tIGluIGFjdHVhbGl0eSwgc2luY2UgVUxvY2FsZSBpcworICAgICAqIGltbXV0YWJsZSwgdGhlcmUgaXMgbm8gcmVhc29uIHRvIGNsb25lIGl0LCBzbyB0aGlzIEFQSSByZXR1cm5zICd0aGlzJy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoYXNoQ29kZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlSUQuaGFzaENvZGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBvdGhlciBvYmplY3QgaXMgYW5vdGhlciBVTG9jYWxlIHdpdGggdGhlCisgICAgICogc2FtZSBmdWxsIG5hbWUsIG9yIGlzIGEgU3RyaW5nIGxvY2FsZUlEIHRoYXQgbWF0Y2hlcyB0aGUgZnVsbCBuYW1lLgorICAgICAqIE5vdGUgdGhhdCBzaW5jZSBuYW1lcyBhcmUgbm90IGNhbm9uaWNhbGl6ZWQsIHR3byBVTG9jYWxlcyB0aGF0CisgICAgICogZnVuY3Rpb24gaWRlbnRpY2FsbHkgbWlnaHQgbm90IGNvbXBhcmUgZXF1YWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBMb2NhbGUgaXMgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wIAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlELmVxdWFscygoU3RyaW5nKW9iaik7ICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIFVMb2NhbGUpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRC5lcXVhbHMoKChVTG9jYWxlKW9iaikubG9jYWxlSUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGlmICh1bG9jYWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IExvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICAgICAgVUxvY2FsZVtdIHVsID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdWxbaV0gPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdWxvY2FsZXMgPSB1bDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFVMb2NhbGVbXSl1bG9jYWxlcy5jbG9uZSgpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlW10gdWxvY2FsZXM7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LgorICAgICAqIENhbiBiZSB1c2VkIHRvIGNyZWF0ZSBMb2NhbGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0SVNPQ291bnRyaWVzKCkgeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKV9jb3VudHJpZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBpbiBJU08gNjM5LgorICAgICAqIENhbiBiZSB1c2VkIHRvIGNyZWF0ZSBMb2NhbGVzLgorICAgICAqIFtOT1RFOiAgSVNPIDYzOSBpcyBub3QgYSBzdGFibGUgc3RhbmRhcmQtLSBzb21lIGxhbmd1YWdlcycgY29kZXMgaGF2ZSBjaGFuZ2VkLgorICAgICAqIFRoZSBsaXN0IHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbmNsdWRlcyBib3RoIHRoZSBuZXcgYW5kIHRoZSBvbGQgY29kZXMgZm9yIHRoZQorICAgICAqIGxhbmd1YWdlcyB3aG9zZSBjb2RlcyBoYXZlIGNoYW5nZWQuXQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0SVNPTGFuZ3VhZ2VzKCkgeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSlfbGFuZ3VhZ2VzLmNsb25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UgY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhIGxvd2VyY2FzZSBJU08gNjM5IGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUxhbmd1YWdlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldExhbmd1YWdlKGxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UgY29kZSBmb3IgdGhlIGxvY2FsZSBJRCwKKyAgICAgKiB3aGljaCB3aWxsIGVpdGhlciBiZSB0aGUgZW1wdHkgc3RyaW5nCisgICAgICogb3IgYSBsb3dlcmNhc2UgSVNPIDYzOSBjb2RlLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlMYW5ndWFnZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldExhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRMYW5ndWFnZSgpOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlTY3JpcHQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNjcmlwdCgpIHsKKyAgICAgICAgcmV0dXJuIGdldFNjcmlwdChsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlTY3JpcHQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTY3JpcHQoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFNjcmlwdCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb3VudHJ5L3JlZ2lvbiBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAyLWxldHRlciBjb2RlLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlDb3VudHJ5CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRDb3VudHJ5KCkgeworICAgICAgICByZXR1cm4gZ2V0Q291bnRyeShsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY291bnRyeS9yZWdpb24gY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMi1sZXR0ZXIgY29kZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5Q291bnRyeQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldENvdW50cnkoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldENvdW50cnkoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFyaWFudCBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5VmFyaWFudAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFyaWFudCgpIHsKKyAgICAgICAgcmV0dXJuIGdldFZhcmlhbnQobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhcmlhbnQgY29kZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVZhcmlhbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRWYXJpYW50KFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRWYXJpYW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZmFsbGJhY2sgbG9jYWxlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRGYWxsYmFjayhTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldEZhbGxiYWNrU3RyaW5nKGdldE5hbWUobG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBmYWxsYmFjayBsb2NhbGUgZm9yIHRoaXMgbG9jYWxlLiAgSWYgdGhpcyBsb2NhbGUgaXMgcm9vdCwgcmV0dXJucyBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldEZhbGxiYWNrKCkgeworICAgICAgICBpZiAobG9jYWxlSUQubGVuZ3RoKCkgPT0gMCB8fCBsb2NhbGVJRC5jaGFyQXQoMCkgPT0gJ0AnKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoZ2V0RmFsbGJhY2tTdHJpbmcobG9jYWxlSUQpLCAoTG9jYWxlKW51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZ2l2ZW4gKGNhbm9uaWNhbCkgbG9jYWxlIGlkIG1pbnVzIHRoZSBsYXN0IHBhcnQgYmVmb3JlIHRoZSB0YWdzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRGYWxsYmFja1N0cmluZyhTdHJpbmcgZmFsbGJhY2spIHsKKyAgICAgICAgaW50IGxpbWl0ID0gZmFsbGJhY2suaW5kZXhPZignQCcpOworICAgICAgICBpZiAobGltaXQgPT0gLTEpIHsKKyAgICAgICAgICAgIGxpbWl0ID0gZmFsbGJhY2subGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHN0YXJ0ID0gZmFsbGJhY2subGFzdEluZGV4T2YoJ18nLCBsaW1pdCk7CisgICAgICAgIGlmIChzdGFydCA9PSAtMSkgeworICAgICAgICAgICAgc3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxsYmFjay5zdWJzdHJpbmcoMCwgc3RhcnQpICsgZmFsbGJhY2suc3Vic3RyaW5nKGxpbWl0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgYmFzZSBuYW1lIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBiYXNlIG5hbWUgYXMgYSBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEJhc2VOYW1lKGxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgKG5vcm1hbGl6ZWQpIGJhc2UgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgSUQgYXMgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSBiYXNlIG5hbWUgYXMgYSBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0QmFzZU5hbWUoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0QmFzZU5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgZnVsbCBuYW1lIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RyaW5nIHRoZSBmdWxsIG5hbWUgb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlEOyAvLyBhbHdheXMgbm9ybWFsaXplZAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGVJRCBhcyBhIHN0cmluZworICAgICAqIEByZXR1cm4gU3RyaW5nIHRoZSBmdWxsIG5hbWUgb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXROYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIGtleXdvcmRzIGZvciB0aGlzIGxvY2FsZS4gIElmIHRoZXJlIAorICAgICAqIGFyZSBubyBrZXl3b3JkcywgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gaXRlcmF0b3Igb3ZlciBrZXl3b3Jkcywgb3IgbnVsbCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIEl0ZXJhdG9yIGdldEtleXdvcmRzKCkgeworICAgICAgICByZXR1cm4gZ2V0S2V5d29yZHMobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciBrZXl3b3JkcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuICBJZiB0aGVyZSAKKyAgICAgKiBhcmUgbm8ga2V5d29yZHMsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXdvcmRzIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCBvciBudWxsCisgICAgICogaWYgdGhlcmUgYXJlIG5vIGtleXdvcmRzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkIGluIHRoaXMgbG9jYWxlLiBJZiB0aGUga2V5d29yZCBpcyBub3QgZGVmaW5lZCwgcmV0dXJucyBudWxsLgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIGRlc2lyZWQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGtleXdvcmQsIG9yIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lKXsKKyAgICAgICAgcmV0dXJuIGdldEtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5d29yZE5hbWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLiBJZiB0aGUga2V5d29yZCBpcyBub3QgZGVmaW5lZCwgcmV0dXJucyBudWxsLiAKKyAgICAgKiBUaGUgbG9jYWxlIG5hbWUgZG9lcyBub3QgbmVlZCB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIGRlc2lyZWQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIGFzIGEgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmROYW1lKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldEtleXdvcmRWYWx1ZShrZXl3b3JkTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSBjbGFzcyB0byBwYXJzZSBhbmQgbm9ybWFsaXplIGxvY2FsZSBpZHMgKGluY2x1ZGluZyBQT1NJWCBzdHlsZSkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJRFBhcnNlciB7CisgICAgICAgIHByaXZhdGUgY2hhcltdIGlkOworICAgICAgICBwcml2YXRlIGludCBpbmRleDsKKyAgICAgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyOworICAgICAgICBwcml2YXRlIGludCBibGVuOworICAgICAgICAvLyB1bSwgZG9uJ3QgaGFuZGxlIFBPU0lYIGlkcyB1bmxlc3Mgd2UgcmVxdWVzdCBpdC4gIHdoeSBub3Q/ICB3ZWxsLi4uIGJlY2F1c2UuCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBjYW5vbmljYWxpemU7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBoYWRDb3VudHJ5OworCisgICAgICAgIC8vIHVzZWQgd2hlbiBjYW5vbmljYWxpemluZworICAgICAgICBNYXAga2V5d29yZHM7CisgICAgICAgIFN0cmluZyBiYXNlTmFtZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2luZyBjb25zdGFudHMuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtFWVdPUkRfU0VQQVJBVE9SICAgICA9ICdAJzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIWVBIRU4gICAgICAgICAgICAgICAgPSAnLSc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgS0VZV09SRF9BU1NJR04gICAgICAgID0gJz0nOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENPTU1BICAgICAgICAgICAgICAgICA9ICcsJzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBJVEVNX1NFUEFSQVRPUiAgICAgICAgPSAnOyc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRE9UICAgICAgICAgICAgICAgICAgID0gJy4nOworCisgICAgICAgIHByaXZhdGUgSURQYXJzZXIoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgICAgICB0aGlzKGxvY2FsZUlELCBmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIElEUGFyc2VyKFN0cmluZyBsb2NhbGVJRCwgYm9vbGVhbiBjYW5vbmljYWxpemUpIHsKKyAgICAgICAgICAgIGlkID0gbG9jYWxlSUQudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgICAgIGJ1ZmZlciA9IG5ldyBjaGFyW2lkLmxlbmd0aCArIDVdOworICAgICAgICAgICAgYmxlbiA9IDA7CisgICAgICAgICAgICB0aGlzLmNhbm9uaWNhbGl6ZSA9IGNhbm9uaWNhbGl6ZTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGluZGV4ID0gYmxlbiA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyB1dGlsaXRpZXMgZm9yIHdvcmtpbmcgb24gdGV4dCBpbiB0aGUgYnVmZmVyCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFwcGVuZCBjIHRvIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYXBwZW5kKGNoYXIgYykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBidWZmZXJbYmxlbl0gPSBjOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoID4gNTEyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHNvbWV0aGluZyBpcyBzZXJpb3VzbHkgd3JvbmcsIGxldCB0aGlzIGdvCisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoYXJbXSBuYnVmZmVyID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCAqIDJdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCAwLCBuYnVmZmVyLCAwLCBidWZmZXIubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBuYnVmZmVyW2JsZW5dID0gYzsKKyAgICAgICAgICAgICAgICBidWZmZXIgPSBuYnVmZmVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytibGVuOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFkZFNlcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSB0ZXh0IGluIHRoZSBidWZmZXIgZnJvbSBzdGFydCB0byBibGVuIGFzIGEgU3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0U3RyaW5nKGludCBzdGFydCkgeworICAgICAgICAgICAgaWYgKHN0YXJ0ID09IGJsZW4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFlfU1RSSU5HOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmZmVyLCBzdGFydCwgYmxlbi1zdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlciB0byBwb3MsIHRoZW4gYXBwZW5kIHRoZSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2V0KGludCBwb3MsIFN0cmluZyBzKSB7CisgICAgICAgICAgICB0aGlzLmJsZW4gPSBwb3M7IC8vIG5vIHNhZmV0eQorICAgICAgICAgICAgYXBwZW5kKHMpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFwcGVuZCB0aGUgc3RyaW5nIHRvIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYXBwZW5kKFN0cmluZyBzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChzLmNoYXJBdChpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyB1dGlsaXRpZXMgZm9yIHBhcnNpbmcgdGV4dCBvdXQgb2YgdGhlIGlkCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0byBpbmRpY2F0ZSBubyBtb3JlIHRleHQgaXMgYXZhaWxhYmxlIGluIHRoZSBpZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRE9ORSA9ICdcdWZmZmYnOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgYXQgaW5kZXggaW4gdGhlIGlkLCBhbmQgYWR2YW5jZSBpbmRleC4gIFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIKKyAgICAgICAgICogaXMgRE9ORSBpZiBpbmRleCB3YXMgYXQgdGhlIGxpbWl0IG9mIHRoZSBidWZmZXIuICBUaGUgaW5kZXggaXMgYWR2YW5jZWQgcmVnYXJkbGVzcworICAgICAgICAgKiBzbyB0aGF0IGRlY3JlbWVudGluZyB0aGUgaW5kZXggd2lsbCBhbHdheXMgJ3VuZ2V0JyB0aGUgbGFzdCBjaGFyYWN0ZXIgcmV0dXJuZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGNoYXIgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA9PSBpZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBpbmRleCsrOworICAgICAgICAgICAgICAgIHJldHVybiBET05FOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGlkW2luZGV4KytdOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggdW50aWwgdGhlIG5leHQgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IsIGFuZCBsZWF2ZSBpdCB0aGVyZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpIHsKKyAgICAgICAgICAgIHdoaWxlICghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihuZXh0KCkpKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGF0IGluZGV4IGluIHRoZSBpZCBpcyBhIHRlcm1pbmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gYXRUZXJtaW5hdG9yKCkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4ID49IGlkLmxlbmd0aCB8fCBpc1Rlcm1pbmF0b3IoaWRbaW5kZXhdKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBhIHRlcm1pbmF0b3IgKGtleXdvcmQgc2VwYXJhdG9yLCBkb3QsIG9yIERPTkUpLgorICAgICAgICAgKiBEb3QgaXMgYSB0ZXJtaW5hdG9yIGJlY2F1c2Ugb2YgdGhlIFBPU0lYIGZvcm0sIHdoZXJlIGRvdCBwcmVjZWRlcyB0aGUgY29kZXBhZ2UuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNUZXJtaW5hdG9yKGNoYXIgYykgeworICAgICAgICAgICAgLy8gYWx3YXlzIHRlcm1pbmF0ZSBhdCBET1QsIGV2ZW4gaWYgbm90IGhhbmRsaW5nIFBPU0lYLiAgSXQncyBhbiBlcnJvci4uLgorICAgICAgICAgICAgcmV0dXJuIGMgPT0gS0VZV09SRF9TRVBBUkFUT1IgfHwgYyA9PSBET05FIHx8IGMgPT0gRE9UOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IEtFWVdPUkRfU0VQQVJBVE9SIHx8IGMgPT0gVU5ERVJTQ09SRSB8fCBjID09IEhZUEhFTiB8fCAKKyAgICAgICAgICAgICAgICBjID09IERPTkUgfHwgYyA9PSBET1Q7ICAgCisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyIGhhcyBhbiBleHBlcmltZW50YWwgb3IgcHJpdmF0ZSBsYW5ndWFnZSAKKyAgICAgICAgICogcHJlZml4LCB0aGUgcGF0dGVybiAnW2l4SVhdWy1fXS4nIHNob3dzIHRoZSBzeW50YXggY2hlY2tlZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBoYXZlRXhwZXJpbWVudGFsTGFuZ3VhZ2VQcmVmaXgoKSB7CisgICAgICAgICAgICBpZiAoaWQubGVuZ3RoID4gMikgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGlkWzFdOworICAgICAgICAgICAgICAgIGlmIChjID09IEhZUEhFTiB8fCBjID09IFVOREVSU0NPUkUpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IGlkWzBdOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYyA9PSAneCcgfHwgYyA9PSAnWCcgfHwgYyA9PSAnaScgfHwgYyA9PSAnSSc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiBhIHZhbHVlIHNlcGFyYXRvciBvY2N1cnMgYXQgb3IgYWZ0ZXIgaW5kZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaGF2ZUtleXdvcmRBc3NpZ24oKSB7CisgICAgICAgICAgICAvLyBhc3N1bWUgaXQgaXMgc2FmZSB0byBzdGFydCBmcm9tIGluZGV4CisgICAgICAgICAgICBmb3IgKGludCBpID0gaW5kZXg7IGkgPCBpZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpZFtpXSA9PSBLRVlXT1JEX0FTU0lHTikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGxhbmd1YWdlLCBhbmQgYWNjdW11bGF0ZSBub3JtYWxpemVkIGxhbmd1YWdlIGNvZGUgaW4gYnVmZmVyLgorICAgICAgICAgKiBJbmRleCBtdXN0IGJlIGF0IDAgd2hlbiB0aGlzIGlzIGNhbGxlZC4gIEluZGV4IGlzIGxlZnQgYXQgYSB0ZXJtaW5hdG9yIG9yIGlkIAorICAgICAgICAgKiBzZXBhcmF0b3IuICBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgbGFuZ3VhZ2UgY29kZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VMYW5ndWFnZSgpIHsKKyAgICAgICAgICAgIGlmIChoYXZlRXhwZXJpbWVudGFsTGFuZ3VhZ2VQcmVmaXgoKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaWRbMF0pKTsKKyAgICAgICAgICAgICAgICBhcHBlbmQoSFlQSEVOKTsKKyAgICAgICAgICAgICAgICBpbmRleCA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgd2hpbGUoIWlzVGVybWluYXRvck9ySURTZXBhcmF0b3IoYyA9IG5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7IC8vIHVuZ2V0CisKKyAgICAgICAgICAgIGlmIChibGVuID09IDMpIHsKKyAgICAgICAgICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKworICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgMyBjaGFyYWN0ZXIgY29kZSB0byAyIGNoYXJhY3RlciBjb2RlIGlmIHBvc3NpYmxlICpDV0IqLworICAgICAgICAgICAgICAgIFN0cmluZyBsYW5nID0gZ2V0U3RyaW5nKDApOworICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2xhbmd1YWdlczMsIGxhbmcpOworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBzZXQoMCwgX2xhbmd1YWdlc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlTGFuZ3VhZ2VzMywgbGFuZyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0KDAsIF9vYnNvbGV0ZUxhbmd1YWdlc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGxhbmd1YWdlLiAgSW5kZXggbXVzdCBiZSBhdCAwIHdoZW4gdGhpcyBpcyBjYWxsZWQuICBJbmRleAorICAgICAgICAgKiBpcyBsZWZ0IGF0IGEgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcExhbmd1YWdlKCkgeworICAgICAgICAgICAgaWYgKGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpKSB7CisgICAgICAgICAgICAgICAgaW5kZXggPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2tpcFVudGlsVGVybWluYXRvck9ySURTZXBhcmF0b3IoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3Qgc2NyaXB0LCBhbmQgYWNjdW11bGF0ZSBub3JtYWxpemVkIHNjcmlwdCBpbiBidWZmZXIuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhbmd1YWdlLgorICAgICAgICAgKiBJZiB0aGUgaXRlbSBhdCB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIHNjcmlwdCAoaXMgbm90IGZvdXIgY2hhcmFjdGVycworICAgICAgICAgKiBsb25nKSBsZWF2ZSBpbmRleCBhbmQgYnVmZmVyIHVuY2hhbmdlZC4gIE90aGVyd2lzZSBpbmRleCBpcyBsZWZ0IGF0CisgICAgICAgICAqIGEgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IuICBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgc2NyaXB0IGNvZGUKKyAgICAgICAgICogaW4gdGhlIGJ1ZmZlciAodGhpcyBtYXkgYmUgZXF1YWwgdG8gdGhlIGJ1ZmZlciBsZW5ndGgsIGlmIHRoZXJlIGlzIG5vCisgICAgICAgICAqIHNjcmlwdCkuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZVNjcmlwdCgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgb2xkSW5kZXggPSBpbmRleDsgLy8gc2F2ZSBvcmlnaW5hbCBpbmRleAorICAgICAgICAgICAgICAgICsraW5kZXg7CisKKyAgICAgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47IC8vIGdldCBiZWZvcmUgYXBwZW5kIGh5cGhlbiwgaWYgd2UgdHJ1bmNhdGUgZXZlcnl0aGluZyBpcyB1bmRvbmUKKyAgICAgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICAgICAgd2hpbGUoIWlzVGVybWluYXRvck9ySURTZXBhcmF0b3IoYyA9IG5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJsZW4gPT0gb2xkQmxlbikgeyAvLyBmaXJzdCBwYXNzCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9VcHBlckNhc2UoYykpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b0xvd2VyQ2FzZShjKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKworICAgICAgICAgICAgICAgIC8qIElmIGl0J3Mgbm90IGV4YWN0bHkgNCBjaGFyYWN0ZXJzIGxvbmcsIHRoZW4gaXQncyBub3QgYSBzY3JpcHQuICovCisgICAgICAgICAgICAgICAgaWYgKGluZGV4IC0gb2xkSW5kZXggIT0gNSkgeyAvLyArMSB0byBhY2NvdW50IGZvciBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBvbGRJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgYmxlbiA9IG9sZEJsZW47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb2xkQmxlbisrOyAvLyBpbmRleCBwYXN0IGh5cGhlbiwgZm9yIGNsaWVudHMgd2hvIHdhbnQgdG8gZXh0cmFjdCBqdXN0IHRoZSBzY3JpcHQKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBibGVuOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBzY3JpcHQuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhbmd1YWdlIGFuZCBJRFNlcGFyYXRvci4KKyAgICAgICAgICogSWYgdGhlIGl0ZW0gYXQgdGhpcyBwb3NpdGlvbiBpcyBub3QgYSBzY3JpcHQgKGlzIG5vdCBmb3VyIGNoYXJhY3RlcnMKKyAgICAgICAgICogbG9uZykgbGVhdmUgaW5kZXguICBPdGhlcndpc2UgaW5kZXggaXMgbGVmdCBhdCBhIHRlcm1pbmF0b3Igb3IKKyAgICAgICAgICogaWQgc2VwYXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNraXBTY3JpcHQoKSB7CisgICAgICAgICAgICBpZiAoIWF0VGVybWluYXRvcigpKSB7CisgICAgICAgICAgICAgICAgaW50IG9sZEluZGV4ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgKytpbmRleDsKKworICAgICAgICAgICAgICAgIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IC0gb2xkSW5kZXggIT0gNSkgeyAvLyArMSB0byBhY2NvdW50IGZvciBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBvbGRJbmRleDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGNvdW50cnksIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgY291bnRyeSBpbiBidWZmZXIuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNjcmlwdCAoaWYgdGhlcmUgaXMgb25lLCBlbHNlIGxhbmd1YWdlKQorICAgICAgICAgKiBhbmQgSURTZXBhcmF0b3IuICBSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBjb3VudHJ5IGNvZGUgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlQ291bnRyeSgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICArK2luZGV4OworCisgICAgICAgICAgICAgICAgaW50IG9sZEJsZW4gPSBibGVuOworICAgICAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgICAgICB3aGlsZSAoIWlzVGVybWluYXRvck9ySURTZXBhcmF0b3IoYyA9IG5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9sZEJsZW4gPT0gYmxlbikgeyAvLyBmaXJzdCwgYWRkIGh5cGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgaGFkQ291bnRyeSA9IHRydWU7IC8vIHdlIGhhdmUgYSBjb3VudHJ5LCBsZXQgdmFyaWFudCBwYXJzaW5nIGtub3cKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgKytvbGRCbGVuOyAvLyBpbmNyZW1lbnQgcGFzdCBoeXBoZW4KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKworICAgICAgICAgICAgICAgIGlmIChibGVuIC0gb2xkQmxlbiA9PSAzKSB7CisgICAgICAgICAgICAgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisKKyAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCAzIGNoYXJhY3RlciBjb2RlIHRvIDIgY2hhcmFjdGVyIGNvZGUgaWYgcG9zc2libGUgKkNXQiovCisgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2NvdW50cmllczMsIGdldFN0cmluZyhvbGRCbGVuKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0KG9sZEJsZW4sIF9jb3VudHJpZXNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlQ291bnRyaWVzMywgZ2V0U3RyaW5nKG9sZEJsZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldChvbGRCbGVuLCBfb2Jzb2xldGVDb3VudHJpZXNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGJsZW47CisgICAgICAgIH0gICAgICAgICAKKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGNvdW50cnkuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNjcmlwdCAoaWYgdGhlcmUgaXMgb25lLCBlbHNlIGxhbmd1YWdlKQorICAgICAgICAgKiBhbmQgSURTZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcENvdW50cnkoKSB7CisgICAgICAgICAgICBpZiAoIWF0VGVybWluYXRvcigpKSB7CisgICAgICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgICAgICAgICBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCB2YXJpYW50LCBhbmQgYWNjdW11bGF0ZSBub3JtYWxpemVkIHZhcmlhbnQgaW4gYnVmZmVyLiAgVGhpcyBpZ25vcmVzCisgICAgICAgICAqIHRoZSBjb2RlcGFnZSBpbmZvcm1hdGlvbiBmcm9tIFBPU0lYIGlkcy4gIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGNvdW50cnkKKyAgICAgICAgICogb3Igc2NyaXB0LiAgSW5kZXggaXMgbGVmdCBhdCB0aGUga2V5d29yZCBzZXBhcmF0b3Igb3IgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC4gIFJldHVybgorICAgICAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIHZhcmlhbnQgY29kZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKgorICAgICAgICAgKiBJbiBzdGFuZGFyZCBmb3JtLCB3ZSBjYW4gaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1zOgorICAgICAgICAgKiBsbF9fVlZWVgorICAgICAgICAgKiBsbF9DQ19WVlZWCisgICAgICAgICAqIGxsX1Nzc3NfVlZWVgorICAgICAgICAgKiBsbF9Tc3NzX0NDX1ZWVlYKKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBhbHNvIGhhbmRsZXMgUE9TSVggaWRzLCB3aGljaCBjYW4gaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1zIChwcHBwIGlzIGNvZGUgcGFnZSBpZCk6CisgICAgICAgICAqIGxsX0NDLnBwcHAgICAgICAgICAgLS0+IGxsX0NDCisgICAgICAgICAqIGxsX0NDLnBwcHBAVlZWViAgICAgLS0+IGxsX0NDX1ZWVlYKKyAgICAgICAgICogbGxfQ0NAVlZWViAgICAgICAgICAtLT4gbGxfQ0NfVlZWVgorICAgICAgICAgKgorICAgICAgICAgKiBXZSBpZGVudGlmeSB0aGlzIHVzZSBvZiAnQCcgaW4gUE9TSVggaWRzIGJ5IGxvb2tpbmcgZm9yIGFuICc9JyBmb2xsb3dpbmcKKyAgICAgICAgICogdGhlICdAJy4gIElmIHRoZXJlIGlzIG9uZSwgd2UgY29uc2lkZXIgJ0AnIHRvIHN0YXJ0IGEga2V5d29yZCBsaXN0LCBpbnN0ZWFkIG9mCisgICAgICAgICAqIGJlaW5nIHBhcnQgb2YgYSBQT1NJWCBpZC4KKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogIHNpbmNlIGl0IHdhcyBkZWNpZGVkIHRoYXQgd2Ugd2FudCBhbiBvcHRpb24gdG8gbm90IGhhbmRsZSBQT1NJWCBpZHMsIHRoaXMKKyAgICAgICAgICogYmVjb21lcyBhIGJpdCBtb3JlIGNvbXBsZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZVZhcmlhbnQoKSB7CisgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47CisKKyAgICAgICAgICAgIGJvb2xlYW4gc3RhcnQgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiBuZWVkU2VwYXJhdG9yID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2xlYW4gc2tpcHBpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgIHdoaWxlICgoYyA9IG5leHQoKSkgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgIGlmIChjID09IERPVCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBza2lwcGluZyA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09IEtFWVdPUkRfU0VQQVJBVE9SKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlS2V5d29yZEFzc2lnbigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBza2lwcGluZyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBuZWVkU2VwYXJhdG9yID0gdHJ1ZTsgLy8gYWRkIGFub3RoZXIgdW5kZXJzY29yZSBpZiB3ZSBoYXZlIG1vcmUgdGV4dAorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFza2lwcGluZykgeworICAgICAgICAgICAgICAgICAgICBpZiAobmVlZFNlcGFyYXRvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNPbGRCbGVuID0gYmxlbiA9PSBvbGRCbGVuOyAvLyBuZWVkIHRvIHNraXAgc2VwYXJhdG9ycworICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFNlcGFyYXRvciA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY09sZEJsZW4gJiYgIWhhZENvdW50cnkpIHsgLy8gbm8gY291bnRyeSwgd2UnbGwgbmVlZCB0d28KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47IC8vIGZvciBzdXJlCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNPbGRCbGVuKSB7IC8vIG9ubHkgZm9yIHRoZSBmaXJzdCBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYyA9IENoYXJhY3Rlci50b1VwcGVyQ2FzZShjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gSFlQSEVOIHx8IGMgPT0gQ09NTUEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBVTkRFUlNDT1JFOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vIG5lZWQgZm9yIHNraXB2YXJpYW50LCB0byBnZXQgdGhlIGtleXdvcmRzIHdlJ2xsIGp1c3Qgc2NhbiBkaXJlY3RseSBmb3IgCisgICAgICAgIC8vIHRoZSBrZXl3b3JkIHNlcGFyYXRvcgorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIGxhbmd1YWdlIGlkLCBvciB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKHBhcnNlTGFuZ3VhZ2UoKSk7CisgICAgICAgIH0KKyAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCBzY3JpcHQgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFNjcmlwdCgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICBza2lwTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VTY3JpcHQoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIHJldHVybiB0aGUgbm9ybWFsaXplZCBjb3VudHJ5IGlkLCBvciB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRDb3VudHJ5KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHNraXBMYW5ndWFnZSgpOworICAgICAgICAgICAgc2tpcFNjcmlwdCgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZUNvdW50cnkoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCB2YXJpYW50IGlkLCBvciB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRWYXJpYW50KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHNraXBMYW5ndWFnZSgpOworICAgICAgICAgICAgc2tpcFNjcmlwdCgpOworICAgICAgICAgICAgc2tpcENvdW50cnkoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VWYXJpYW50KCkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIGxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIGFuZCB2YXJpYW50IGFzIHNlcGFyYXRlIHN0cmluZ3MuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0TGFuZ3VhZ2VTY3JpcHRDb3VudHJ5VmFyaWFudCgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VMYW5ndWFnZSgpKSwKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VTY3JpcHQoKSksCisgICAgICAgICAgICAgICAgZ2V0U3RyaW5nKHBhcnNlQ291bnRyeSgpKSwKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VWYXJpYW50KCkpCisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0QmFzZU5hbWUoU3RyaW5nIGJhc2VOYW1lKSB7CisgICAgICAgICAgICB0aGlzLmJhc2VOYW1lID0gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwYXJzZUJhc2VOYW1lKCkgeworICAgICAgICAgICAgaWYgKGJhc2VOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzZXQoMCwgYmFzZU5hbWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgICAgIHBhcnNlTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgICAgICBwYXJzZVNjcmlwdCgpOworICAgICAgICAgICAgICAgIHBhcnNlQ291bnRyeSgpOworICAgICAgICAgICAgICAgIHBhcnNlVmFyaWFudCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gY2F0Y2ggdW53YW50ZWQgdHJhaWxpbmcgdW5kZXJzY29yZSBhZnRlciBjb3VudHJ5IGlmIHRoZXJlIHdhcyBubyB2YXJpYW50CisgICAgICAgICAgICAgICAgaWYgKGJsZW4gPiAxICYmIGJ1ZmZlcltibGVuLTFdID09IFVOREVSU0NPUkUpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1ibGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIGJhc2UgZm9ybSBvZiB0aGUgbG9jYWxlIGlkLiAgVGhlIGJhc2UKKyAgICAgICAgICogZm9ybSBkb2VzIG5vdCBpbmNsdWRlIGtleXdvcmRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIGlmIChiYXNlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFyc2VCYXNlTmFtZSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZygwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIGZ1bGwgZm9ybSBvZiB0aGUgbG9jYWxlIGlkLiAgVGhlIGZ1bGwKKyAgICAgICAgICogZm9ybSBpbmNsdWRlcyBrZXl3b3JkcyBpZiB0aGV5IGFyZSBwcmVzZW50LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcGFyc2VCYXNlTmFtZSgpOworICAgICAgICAgICAgcGFyc2VLZXl3b3JkcygpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZygwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGtleXdvcmQgdXRpbGl0aWVzCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIHdlIGhhdmUga2V5d29yZHMsIGFkdmFuY2UgaW5kZXggdG8gdGhlIHN0YXJ0IG9mIHRoZSBrZXl3b3JkcyBhbmQgcmV0dXJuIHRydWUsIAorICAgICAgICAgKiBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIHNldFRvS2V5d29yZFN0YXJ0KCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGluZGV4OyBpIDwgaWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWRbaV0gPT0gS0VZV09SRF9TRVBBUkFUT1IpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbm9uaWNhbGl6ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9ICsraTsgaiA8IGlkLmxlbmd0aDsgKytqKSB7IC8vIGluY3JlbWVudCBpIHBhc3Qgc2VwYXJhdG9yIGZvciByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWRbal0gPT0gS0VZV09SRF9BU1NJR04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytpIDwgaWQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0RvbmVPcktleXdvcmRBc3NpZ24oY2hhciBjKSB7CisgICAgICAgICAgICByZXR1cm4gYyA9PSBET05FIHx8IGMgPT0gS0VZV09SRF9BU1NJR047CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRG9uZU9ySXRlbVNlcGFyYXRvcihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IERPTkUgfHwgYyA9PSBJVEVNX1NFUEFSQVRPUjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldEtleXdvcmQoKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpbmRleDsKKyAgICAgICAgICAgIHdoaWxlICghaXNEb25lT3JLZXl3b3JkQXNzaWduKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhpZCwgc3RhcnQsIGluZGV4LXN0YXJ0KS50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldFZhbHVlKCkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gaW5kZXg7CisgICAgICAgICAgICB3aGlsZSAoIWlzRG9uZU9ySXRlbVNlcGFyYXRvcihuZXh0KCkpKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OworICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoaWQsIHN0YXJ0LCBpbmRleC1zdGFydCkudHJpbSgpOyAvLyBsZWF2ZSBjYXNlIGFsb25lCisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3IgZ2V0S2V5Q29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbXBhcmF0b3IgY29tcCA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoU3RyaW5nKWxocykuY29tcGFyZVRvKChTdHJpbmcpcmhzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gY29tcDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIGEgbWFwIG9mIHRoZSBrZXl3b3JkcyBhbmQgdmFsdWVzLCBvciBudWxsIGlmIHRoZXJlIGFyZSBub25lLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBNYXAgZ2V0S2V5d29yZE1hcCgpIHsKKyAgICAgICAgICAgIGlmIChrZXl3b3JkcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgVHJlZU1hcCBtID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoc2V0VG9LZXl3b3JkU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyB0cmltIHNwYWNlcyBhbmQgY29udmVydCB0byBsb3dlciBjYXNlLCBib3RoIGtleXdvcmRzIGFuZCB2YWx1ZXMuCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBnZXRLZXl3b3JkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IG5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IEtFWVdPUkRfQVNTSUdOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigia2V5ICciICsga2V5ICsgIicgbWlzc2luZyBhIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09IERPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigia2V5ICciICsga2V5ICsgIicgbWlzc2luZyBhIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBuZXcgVHJlZU1hcChnZXRLZXlDb21wYXJhdG9yKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtLmNvbnRhaW5zS2V5KGtleSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBhbHJlYWR5IGhhcyBhIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbS5wdXQoa2V5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5leHQoKSA9PSBJVEVNX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGtleXdvcmRzID0gbSAhPSBudWxsID8gbSA6IENvbGxlY3Rpb25zLkVNUFRZX01BUDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGtleXdvcmRzOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBhcnNlIHRoZSBrZXl3b3JkcyBhbmQgcmV0dXJuIHN0YXJ0IG9mIHRoZSBzdHJpbmcgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlS2V5d29yZHMoKSB7CisgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIGlmICghbS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChmaXJzdCA/IEtFWVdPUkRfU0VQQVJBVE9SIDogSVRFTV9TRVBBUkFUT1IpOworICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBNYXAuRW50cnkgZSA9IChNYXAuRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgoU3RyaW5nKWUuZ2V0S2V5KCkpOworICAgICAgICAgICAgICAgICAgICBhcHBlbmQoS0VZV09SRF9BU1NJR04pOworICAgICAgICAgICAgICAgICAgICBhcHBlbmQoKFN0cmluZyllLmdldFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYmxlbiAhPSBvbGRCbGVuKSB7CisgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXdvcmRzLCBvciBudWxsIGlmIHdlIGhhdmUgYW4gZW1wdHkgbWFwLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEl0ZXJhdG9yIGdldEtleXdvcmRzKCkgeworICAgICAgICAgICAgTWFwIG0gPSBnZXRLZXl3b3JkTWFwKCk7CisgICAgICAgICAgICByZXR1cm4gbS5pc0VtcHR5KCkgPyBudWxsIDogbS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciB0aGUgbmFtZWQga2V5d29yZCwgb3IgbnVsbCBpZiB0aGUga2V5d29yZCBpcyBub3QKKyAgICAgICAgICogcHJlc2VudC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSkgeworICAgICAgICAgICAgTWFwIG0gPSBnZXRLZXl3b3JkTWFwKCk7CisgICAgICAgICAgICByZXR1cm4gbS5pc0VtcHR5KCkgPyBudWxsIDogKFN0cmluZyltLmdldChrZXl3b3JkTmFtZS50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSBrZXl3b3JkIHZhbHVlIG9ubHkgaWYgaXQgaXMgbm90IGFscmVhZHkgc2V0IHRvIHNvbWV0aGluZyBlbHNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgZGVmYXVsdEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICAgICAgc2V0S2V5d29yZFZhbHVlKGtleXdvcmROYW1lLCB2YWx1ZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciB1bnNldCBpdCBpZiB2YWx1ZSBpcyBudWxsLiAgSWYKKyAgICAgICAgICoga2V5d29yZE5hbWUgaXRzZWxmIGlzIG51bGwsIHVuc2V0IGFsbCBrZXl3b3Jkcy4gIElmIGtleXdvcmROYW1lIGlzIG5vdCBudWxsLAorICAgICAgICAgKiB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBzZXRLZXl3b3JkVmFsdWUoa2V5d29yZE5hbWUsIHZhbHVlLCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIHZhbHVlIGZvciB0aGUgbmFtZWQga2V5d29yZCwgb3IgdW5zZXQgaXQgaWYgdmFsdWUgaXMgbnVsbC4gIElmCisgICAgICAgICAqIGtleXdvcmROYW1lIGl0c2VsZiBpcyBudWxsLCB1bnNldCBhbGwga2V5d29yZHMuICBJZiBrZXl3b3JkTmFtZSBpcyBub3QgbnVsbCwKKyAgICAgICAgICogdmFsdWUgbXVzdCBub3QgYmUgbnVsbC4gIElmIHJlc2V0IGlzIHRydWUsIGlnbm9yZSBhbnkgcHJldmlvdXMgdmFsdWUgZm9yIAorICAgICAgICAgKiB0aGUga2V5d29yZCwgb3RoZXJ3aXNlIGRvIG5vdCBjaGFuZ2UgdGhlIGtleXdvcmQgKGluY2x1ZGluZyByZW1vdmFsIG9mCisgICAgICAgICAqIG9uZSBvciBhbGwga2V5d29yZHMpLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUsIFN0cmluZyB2YWx1ZSwgYm9vbGVhbiByZXNldCkgeworICAgICAgICAgICAgaWYgKGtleXdvcmROYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2UgbmV3IG1hcCwgaWdub3JlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAga2V5d29yZE5hbWUgPSBrZXl3b3JkTmFtZS50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5d29yZE5hbWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXl3b3JkIG11c3Qgbm90IGJlIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidmFsdWUgbXVzdCBub3QgYmUgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgICAgICBpZiAobS5pc0VtcHR5KCkpIHsgLy8gaXQgaXMgRU1QVFlfTUFQCisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwCisgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IG5ldyBUcmVlTWFwKGdldEtleUNvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcy5wdXQoa2V5d29yZE5hbWUsIHZhbHVlLnRyaW0oKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVzZXQgfHwgIW0uY29udGFpbnNLZXkoa2V5d29yZE5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucHV0KGtleXdvcmROYW1lLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucmVtb3ZlKGtleXdvcmROYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2UgbmV3IG1hcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IENvbGxlY3Rpb25zLkVNUFRZX01BUDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBsaW5lYXIgc2VhcmNoIG9mIHRoZSBzdHJpbmcgYXJyYXkuIHRoZSBhcnJheXMgYXJlIHVuZm9ydHVuYXRlbHkgb3JkZXJlZCBieSB0aGUKKyAgICAgKiB0d28tbGV0dGVyIHRhcmdldCBjb2RlLCBub3QgdGhlIHRocmVlLWxldHRlciBzZWFyY2ggY29kZSwgd2hpY2ggc2VlbXMgYmFja3dhcmRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kSW5kZXgoU3RyaW5nW10gYXJyYXksIFN0cmluZyB0YXJnZXQpeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhhcnJheVtpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfSAgICAKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNhbm9uaWNhbCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBJRC4gIFRoaXMgaXMgdXNlZCB0byBjb252ZXJ0IFBPU0lYCisgICAgICogYW5kIG90aGVyIGdyYW5kZmF0aGVyZWQgSURzIHRvIHN0YW5kYXJkIElDVSBmb3JtLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIGlkCisgICAgICogQHJldHVybiB0aGUgY2Fub25pY2FsaXplZCBpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbGl6ZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQsIHRydWUpOworICAgICAgICBTdHJpbmcgYmFzZU5hbWUgPSBwYXJzZXIuZ2V0QmFzZU5hbWUoKTsKKyAgICAgICAgYm9vbGVhbiBmb3VuZFZhcmlhbnQgPSBmYWxzZTsKKyAgICAgIAorICAgICAgICAvLyBmb3JtZXJseSwgd2UgYWx3YXlzIHNldCB0byBlbl9VU19QT1NJWCBpZiB0aGUgYmFzZW5hbWUgd2FzIGVtcHR5LCBidXQKKyAgICAgICAgLy8gbm93IHdlIHJlcXVpcmUgdGhhdCB0aGUgZW50aXJlIGlkIGJlIGVtcHR5LCBzbyB0aGF0ICJAZm9vPWJhciIKKyAgICAgICAgLy8gd2lsbCBwYXNzIHRocm91Z2ggdW5jaGFuZ2VkLgorICAgICAgICAvLyB7ZGxmfSBJJ2QgcmF0aGVyIGtlZXAgIiIgdW5jaGFuZ2VkLgorICAgICAgICBpZiAobG9jYWxlSUQuZXF1YWxzKCIiKSkgeworICAgICAgICAgICAgcmV0dXJuICIiOworLy8gICAgICAgICAgICAgIHJldHVybiAiZW5fVVNfUE9TSVgiOworICAgICAgICB9CisKKyAgICAgICAgLy8gd2UgaGF2ZSBhbiBJRCBpbiB0aGUgZm9ybSB4eF9ZeXl5X1paX0tLS0tLCisKKyAgICAgICAgaW5pdFZhcmlhbnRzVGFibGUoKTsKKworICAgICAgICAvKiBTZWUgaWYgdGhpcyBpcyBhbiBhbHJlYWR5IGtub3duIGxvY2FsZSAqLworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IF92YXJpYW50c1RvS2V5d29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChfdmFyaWFudHNUb0tleXdvcmRzW2ldWzBdLmVxdWFscyhiYXNlTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBmb3VuZFZhcmlhbnQgPSB0cnVlOworCisgICAgICAgICAgICAgICAgU3RyaW5nW10gdmFscyA9IF92YXJpYW50c1RvS2V5d29yZHNbaV07CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKHZhbHNbMV0pOworICAgICAgICAgICAgICAgIGlmICh2YWxzWzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmRlZmF1bHRLZXl3b3JkVmFsdWUodmFsc1syXSwgdmFsc1szXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogY29udmVydCB0aGUgRXVybyB2YXJpYW50IHRvIGFwcHJvcHJpYXRlIElEICovCisgICAgICAgIGlmICghZm91bmRWYXJpYW50KSB7CisgICAgICAgICAgICBpbnQgaWR4ID0gYmFzZU5hbWUuaW5kZXhPZigiX0VVUk8iKTsKKyAgICAgICAgICAgIGlmIChpZHggPiAtMSkgeworICAgICAgICAgICAgICAgIHBhcnNlci5zZXRCYXNlTmFtZShiYXNlTmFtZS5zdWJzdHJpbmcoMCwgaWR4KSk7CisgICAgICAgICAgICAgICAgcGFyc2VyLmRlZmF1bHRLZXl3b3JkVmFsdWUoImN1cnJlbmN5IiwgIkVVUiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogdG90YWwgbW9uZG8gaGFjayBmb3IgTm9yd2VnaWFuLCBmb3J0dW5hdGVseSB0aGUgbWFpbiBOWSBjYXNlIGlzIGhhbmRsZWQgZWFybGllciAqLworICAgICAgICBpZiAoIWZvdW5kVmFyaWFudCkgeworICAgICAgICAgICAgaWYgKHBhcnNlci5nZXRMYW5ndWFnZSgpLmVxdWFscygibmIiKSAmJiBwYXJzZXIuZ2V0VmFyaWFudCgpLmVxdWFscygiTlkiKSkgeworICAgICAgICAgICAgICAgIHBhcnNlci5zZXRCYXNlTmFtZShsc2N2VG9JRCgibm4iLCBwYXJzZXIuZ2V0U2NyaXB0KCksIHBhcnNlci5nZXRDb3VudHJ5KCksIG51bGwpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXJzZXIuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGtleXdvcmQgYW5kIGEgdmFsdWUsIHJldHVybiBhIG5ldyBsb2NhbGUgd2l0aCBhbiB1cGRhdGVkCisgICAgICoga2V5d29yZCBhbmQgdmFsdWUuICBJZiBrZXl3b3JkIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyBhbGwga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIGlkLgorICAgICAqIE90aGVyd2lzZSwgaWYgdGhlIHZhbHVlIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBmcm9tIHRoZQorICAgICAqIGxvY2FsZSBpZC4gIE90aGVyd2lzZSwgdGhpcyBhZGRzL3JlcGxhY2VzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGluIHRoZSBsb2NhbGUgaWQuCisgICAgICogVGhlIGtleXdvcmQgYW5kIHZhbHVlIG11c3Qgbm90IGJlIGVtcHR5LgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGFkZC9yZW1vdmUsIG9yIG51bGwgdG8gcmVtb3ZlIGFsbCBrZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGFkZC9zZXQsIG9yIG51bGwgdG8gcmVtb3ZlIHRoaXMgcGFydGljdWxhciBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIHVwZGF0ZWQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKHNldEtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5d29yZCwgdmFsdWUpLCAoTG9jYWxlKW51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgbG9jYWxlIGlkLCBhIGtleXdvcmQsIGFuZCBhIHZhbHVlLCByZXR1cm4gYSBuZXcgbG9jYWxlIGlkIHdpdGggYW4gdXBkYXRlZAorICAgICAqIGtleXdvcmQgYW5kIHZhbHVlLiAgSWYga2V5d29yZCBpcyBudWxsLCB0aGlzIHJlbW92ZXMgYWxsIGtleXdvcmRzIGZyb20gdGhlIGxvY2FsZSBpZC4KKyAgICAgKiBPdGhlcndpc2UsIGlmIHRoZSB2YWx1ZSBpcyBudWxsLCB0aGlzIHJlbW92ZXMgdGhlIHZhbHVlIGZvciB0aGlzIGtleXdvcmQgZnJvbSB0aGUKKyAgICAgKiBsb2NhbGUgaWQuICBPdGhlcndpc2UsIHRoaXMgYWRkcy9yZXBsYWNlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBpbiB0aGUgbG9jYWxlIGlkLgorICAgICAqIFRoZSBrZXl3b3JkIGFuZCB2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSBpZCB0byBtb2RpZnkKKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB0byBhZGQvcmVtb3ZlLCBvciBudWxsIHRvIHJlbW92ZSBhbGwga2V5d29yZHMuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBhZGQvc2V0LCBvciBudWxsIHRvIHJlbW92ZSB0aGlzIHBhcnRpY3VsYXIga2V5d29yZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIGxvY2FsZSBpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNldEtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgSURQYXJzZXIgcGFyc2VyID0gbmV3IElEUGFyc2VyKGxvY2FsZUlEKTsKKyAgICAgICAgcGFyc2VyLnNldEtleXdvcmRWYWx1ZShrZXl3b3JkLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBwYXJzZXIuZ2V0TmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlLiAgSWYgdGhlIGxvY2FsZQorICAgICAqIGRvZXNuJ3Qgc3BlY2lmeSBhIGxhbmd1YWdlLCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhIGxvd2VyY2FzZSBJU08gNjM5LTIvVCBsYW5ndWFnZSBjb2RlLgorICAgICAqIFRoZSBJU08gNjM5LTIgbGFuZ3VhZ2UgY29kZXMgY2FuIGJlIGZvdW5kIG9uLWxpbmUgYXQKKyAgICAgKiAgIDxhIGhyZWY9ImZ0cDovL2RrdXVnLmRrL2kxOG4vaXNvLTYzOS0yLnR4dCI+PGNvZGU+ZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0PC9jb2RlPjwvYT4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBUaHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGlmIHRoZQorICAgICAqIHRocmVlLWxldHRlciBsYW5ndWFnZSBhYmJyZXZpYXRpb24gaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJU08zTGFuZ3VhZ2UoKXsKKyAgICAgICAgcmV0dXJuIGdldElTTzNMYW5ndWFnZShsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UuICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgbGFuZ3VhZ2UsIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGEgbG93ZXJjYXNlIElTTyA2MzktMi9UIGxhbmd1YWdlIGNvZGUuCisgICAgICogVGhlIElTTyA2MzktMiBsYW5ndWFnZSBjb2RlcyBjYW4gYmUgZm91bmQgb24tbGluZSBhdAorICAgICAqICAgPGEgaHJlZj0iZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0Ij48Y29kZT5mdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQ8L2NvZGU+PC9hPgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRJU08zTGFuZ3VhZ2UoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgaW5pdExhbmd1YWdlVGFibGVzKCk7CisKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UobG9jYWxlSUQpOworICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9sYW5ndWFnZXMsIGxhbmd1YWdlKTsKKyAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgIHJldHVybiBfbGFuZ3VhZ2VzM1tvZmZzZXRdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb2Zmc2V0ID0gZmluZEluZGV4KF9vYnNvbGV0ZUxhbmd1YWdlcywgbGFuZ3VhZ2UpOworICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIF9vYnNvbGV0ZUxhbmd1YWdlczNbb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRU1QVFlfU1RSSU5HOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBjb3VudHJ5L3JlZ2lvbi4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBjb3VudHJ5LCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMy1sZXR0ZXIgY291bnRyeSBjb2RlLgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGNvdW50cnkgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SVNPM0NvdW50cnkoKXsKKyAgICAgICAgcmV0dXJuIGdldElTTzNDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgY291bnRyeS9yZWdpb24uICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgY291bnRyeSwgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLiAgT3RoZXJ3aXNlLCByZXR1cm5zCisgICAgICogYW4gdXBwZXJjYXNlIElTTyAzMTY2IDMtbGV0dGVyIGNvdW50cnkgY29kZS4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBUaHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGlmIHRoZQorICAgICAqIHRocmVlLWxldHRlciBjb3VudHJ5IGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRJU08zQ291bnRyeShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworCisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gZ2V0Q291bnRyeShsb2NhbGVJRCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2NvdW50cmllcywgY291bnRyeSk7CisgICAgICAgIGlmKG9mZnNldD49MCl7CisgICAgICAgICAgICByZXR1cm4gX2NvdW50cmllczNbb2Zmc2V0XTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlQ291bnRyaWVzLCBjb3VudHJ5KTsKKyAgICAgICAgICAgIGlmKG9mZnNldD49MCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIF9vYnNvbGV0ZUNvdW50cmllczNbb2Zmc2V0XTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRU1QVFlfU1RSSU5HOworICAgIH0KKyAgICAKKyAgICAvLyBkaXNwbGF5IG5hbWVzCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbGFuZ3VhZ2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZSgpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKCkuZ2V0RGlzcGxheUxhbmd1YWdlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbGFuZ3VhZ2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZShVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKCkuZ2V0RGlzcGxheUxhbmd1YWdlKGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBsYW5ndWFnZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGxhbmd1YWdlIHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKGxvY2FsZUlEKS5nZXREaXNwbGF5TGFuZ3VhZ2UodG9Mb2NhbGUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgbGFuZ3VhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlMYW5ndWFnZShkaXNwbGF5TG9jYWxlLnRvTG9jYWxlKCkpOworICAgIH0gICAgCisKKyAgICBzdGF0aWMgU3RyaW5nIGdldEN1cnJlbnRDb3VudHJ5SUQoU3RyaW5nIG9sZElEKXsKKyAgICAgICAgaW5pdENvdW50cnlUYWJsZXMoKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfZGVwcmVjYXRlZENvdW50cmllcywgb2xkSUQpOworICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBfcmVwbGFjZW1lbnRDb3VudHJpZXNbb2Zmc2V0XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2xkSUQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgZ2V0Q3VycmVudExhbmd1YWdlSUQoU3RyaW5nIG9sZElEKXsKKyAgICAgICAgaW5pdExhbmd1YWdlVGFibGVzKCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlTGFuZ3VhZ2VzLCBvbGRJRCk7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIF9yZXBsYWNlbWVudExhbmd1YWdlc1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvbGRJRDsgICAgICAgIAorICAgIH0KKyAgICAgICAgCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBzY3JpcHQgd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlTY3JpcHQoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFNjcmlwdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHNjcmlwdCB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlTY3JpcHQoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnkoKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUNvdW50cnkoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeShVTG9jYWxlIGRpc3BsYXlMb2NhbGUpeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlDb3VudHJ5KGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBjb3VudHJ5IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgY291bnRyeSB3aWxsIGJlIGRpc3BsYXllZAorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlDb3VudHJ5KHRvTG9jYWxlKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBjb3VudHJ5IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgY291bnRyeSB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGNvdW50cnkgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeShTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlDb3VudHJ5KGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFyaWFudCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZSgpLmdldERpc3BsYXlWYXJpYW50KCk7ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudChVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKCkuZ2V0RGlzcGxheVZhcmlhbnQoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSB2YXJpYW50IHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKXsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKGxvY2FsZUlEKS5nZXREaXNwbGF5VmFyaWFudCh0b0xvY2FsZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSB2YXJpYW50IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFyaWFudCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50KFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheVZhcmlhbnQoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQga2V5d29yZCBuYW1lLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nIGtleXdvcmQpIHsKKyAgICAgICAgcmV0dXJuIGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCk7ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBrZXl3b3JkIG5hbWUuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZChTdHJpbmcga2V5d29yZCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4ga2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUga2V5d29yZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQga2V5d29yZCBuYW1lLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4ga2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhbHVlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCkpOworICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgdmFsdWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2Uga2V5d29yZCB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhbHVlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldEtleXdvcmRWYWx1ZShrZXl3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBrZXl3b3JkIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhbHVlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUgbmFtZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChsb2NhbGVJRCwgZ2V0RGVmYXVsdCgpLnRvTG9jYWxlKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlIG5hbWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBJRCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgd2hvc2UgbmFtZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCB0b0xvY2FsZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgSUQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIHdob3NlIG5hbWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbG9jYWxlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxvY2FsZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChTdHJpbmcgbG9jYWxlSUQsIExvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIC8vIGxhbmcKKyAgICAgICAgLy8gbGFuZyAoc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50LCBrZXl3b3JkPXZhbHVlLCAuLi4pCisgICAgICAgIC8vIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCwga2V5d29yZD12YWx1ZSwgLi4uCisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpOworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IHBhcnNlci5nZXRMYW5ndWFnZVNjcmlwdENvdW50cnlWYXJpYW50KCk7CisgICAgICAgIAorICAgICAgICBMb2NhbGUgbG9jYWxlID0gdG9Mb2NhbGUobG9jYWxlSUQpOworCisgICAgICAgIGJvb2xlYW4gaGF2ZUxhbmd1YWdlID0gbmFtZXNbMF0ubGVuZ3RoKCkgPiAwOworICAgICAgICBib29sZWFuIG9wZW5QYXJlbiA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChpKSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOiBuYW1lID0gbG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShkaXNwbGF5TG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOiBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDI6IG5hbWUgPSBsb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoZGlzcGxheUxvY2FsZSk7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMzogbmFtZSA9IGxvY2FsZS5nZXREaXNwbGF5VmFyaWFudChkaXNwbGF5TG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlTGFuZ3VhZ2UgJiAhb3BlblBhcmVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgKCIpOworICAgICAgICAgICAgICAgICAgICAgICAgb3BlblBhcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIE1hcCBtID0gcGFyc2VyLmdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgaWYgKCFtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgSXRlcmF0b3Iga2V5cyA9IG0uZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGtleXMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMYW5ndWFnZSAmICFvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuUGFyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBNYXAuRW50cnkgZSA9IChNYXAuRW50cnkpa2V5cy5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gKFN0cmluZyllLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChrZXkpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIj0iKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3BlblBhcmVuKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIpIik7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAvKioKKyAgICAqIEJhc2VkIG9uIGEgSFRUUCBmb3JtYXR0ZWQgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBAcGFyYW0gYWNjZXB0TGFuZ3VhZ2VMaXN0IGxpc3QgaW4gSFRUUCAiQWNjZXB0LUxhbmd1YWdlOiIgZm9ybWF0IG9mIGFjY2VwdGFibGUgbG9jYWxlcworICAgICogQHBhcmFtIGF2YWlsYWJsZUxvY2FsZXMgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcy4gT25lIG9mIHRoZXNlIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIGF2YWlsYWJsZUxvY2FsZXMgbGlzdCwgb3IgbnVsbCBpZiBub25lIG1hdGNoCisgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICogQHByb3Zpc2lvbmFsCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgYWNjZXB0TGFuZ3VhZ2UoU3RyaW5nIGFjY2VwdExhbmd1YWdlTGlzdCwgCisgICAgICAgICAgICAgICAgVUxvY2FsZVtdIGF2YWlsYWJsZUxvY2FsZXMsIGJvb2xlYW5bXSBmYWxsYmFjaykgeworICAgICAgICAvKioKKyAgICAgICAgICogQGludGVybmFsIElDVSAzLjQKKyAgICAgICAgICovCisgICAgICAgIGNsYXNzIFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKyAgICAgICAgICAgIHByaXZhdGUgZG91YmxlIHE7CisgICAgICAgICAgICBwcml2YXRlIGRvdWJsZSBzZXJpYWw7CisgICAgICAgICAgICBwdWJsaWMgVUxvY2FsZUFjY2VwdExhbmd1YWdlUShkb3VibGUgdGhlcSwgaW50IHRoZXNlcmlhbCkgeworICAgICAgICAgICAgICAgIHEgPSB0aGVxOworICAgICAgICAgICAgICAgIHNlcmlhbCA9IHRoZXNlcmlhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBvdGhlciA9IChVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKSBvOworICAgICAgICAgICAgICAgIGlmKHEgPiBvdGhlci5xKSB7IC8vIHJldmVyc2UgLSB0byBzb3J0IGluIGRlc2NlbmRpbmcgb3JkZXIKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihxIDwgb3RoZXIucSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoc2VyaWFsIDwgb3RoZXIuc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoc2VyaWFsID4gb3RoZXIuc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAvLyBzYW1lIG9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIDFzdDogcGFyc2Ugb3V0IHRoZSBhY2NlcHRMYW5ndWFnZUxpc3QgaW50byBhbiBhcnJheQorICAgICAgICAKKyAgICAgICAgVHJlZU1hcCBtYXAgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICAKKyAgICAgICAgZmluYWwgaW50IGwgPSBhY2NlcHRMYW5ndWFnZUxpc3QubGVuZ3RoKCk7CisgICAgICAgIGludCBuOworICAgICAgICBmb3Iobj0wO248bDtuKyspIHsKKyAgICAgICAgICAgIGludCBpdGVtRW5kID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LmluZGV4T2YoJywnLG4pOworICAgICAgICAgICAgaWYoaXRlbUVuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgIGl0ZW1FbmQgPSBsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHBhcmFtRW5kID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LmluZGV4T2YoJzsnLG4pOworICAgICAgICAgICAgZG91YmxlIHEgPSAxLjA7CisgCisgICAgICAgICAgICBpZigocGFyYW1FbmQgIT0gLTEpICYmIChwYXJhbUVuZCA8IGl0ZW1FbmQpKSB7CisgICAgICAgICAgICAgICAgLyogc2VtaWNvbG9uICg7KSBpcyBjbG9zZXIgdGhhbiBlbmQgKCwpICovCisgICAgICAgICAgICAgICAgaW50IHQgPSBwYXJhbUVuZCArIDE7CisgICAgICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSdxJykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc1doaXRlc3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpPT0nPScpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcodCxpdGVtRW5kKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIHEgPSBEb3VibGUucGFyc2VEb3VibGUodmFsKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gbmZlKSB7CisgICAgICAgICAgICAgICAgICAgIHEgPSAxLjA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBxID0gMS4wOyAvL2RlZmF1bHQKKyAgICAgICAgICAgICAgICBwYXJhbUVuZCA9IGl0ZW1FbmQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBsb2MgPSBhY2NlcHRMYW5ndWFnZUxpc3Quc3Vic3RyaW5nKG4scGFyYW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgIGludCBzZXJpYWwgPSBtYXAuc2l6ZSgpOworICAgICAgICAgICAgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBlbnRyeSA9IG5ldyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKHEsc2VyaWFsKTsKKyAgICAgICAgICAgIG1hcC5wdXQoZW50cnksIG5ldyBVTG9jYWxlKGNhbm9uaWNhbGl6ZShsb2MpKSk7IC8vIHNvcnQgaW4gcmV2ZXJzZSBvcmRlci4uICAgMS4wLCAwLjksIDAuOCAuLiBldGMKKyAgICAgICAgICAgIG4gPSBpdGVtRW5kOyAvLyBnZXQgbmV4dCBpdGVtLiAobisrIHdpbGwgc2tpcCBvdmVyIGRlbGltaXRlcikKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gMi4gcHVsbCBvdXQgdGhlIG1hcCAKKyAgICAgICAgVUxvY2FsZSBhY2NlcHRMaXN0W10gPSAoVUxvY2FsZVtdKW1hcC52YWx1ZXMoKS50b0FycmF5KG5ldyBVTG9jYWxlW21hcC5zaXplKCldKTsKKyAgICAgICAgCisgICAgICAgIC8vIDMuIGNhbGwgdGhlIHJlYWwgZnVuY3Rpb24KKyAgICAgICAgcmV0dXJuIGFjY2VwdExhbmd1YWdlKGFjY2VwdExpc3QsIGF2YWlsYWJsZUxvY2FsZXMsIGZhbGxiYWNrKTsKKyAgICB9CisgICAgCisgICAvKioKKyAgICAqIEJhc2VkIG9uIGEgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBAcGFyYW0gYWNjZXB0TGFuZ3VhZ2VMaXN0IGxpc3Qgb2YgYWNjZXB0YWJsZSBsb2NhbGVzCisgICAgKiBAcGFyYW0gYXZhaWxhYmxlTG9jYWxlcyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLiBPbmUgb2YgdGhlc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBmYWxsYmFjayBpZiBub24tbnVsbCwgYSAxLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyBhIGJvb2xlYW4gdG8gYmUgc2V0IHdpdGggdGhlIGZhbGxiYWNrIHN0YXR1cworICAgICogQHJldHVybiBvbmUgb2YgdGhlIGxvY2FsZXMgZnJvbSB0aGUgYXZhaWxhYmxlTG9jYWxlcyBsaXN0LCBvciBudWxsIGlmIG5vbmUgbWF0Y2gKKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShVTG9jYWxlW10gYWNjZXB0TGFuZ3VhZ2VMaXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGVbXSBhdmFpbGFibGVMb2NhbGVzLCBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgLy8gZmFsbGJhY2tsaXN0CisgICAgICAgIGludCBpLGo7CisgICAgICAgIGlmKGZhbGxiYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZhbGxiYWNrWzBdPXRydWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGk9MDtpPGFjY2VwdExhbmd1YWdlTGlzdC5sZW5ndGg7aSsrKSB7CisgICAgICAgICAgICBVTG9jYWxlIGFMb2NhbGUgPSBhY2NlcHRMYW5ndWFnZUxpc3RbaV07CisgICAgICAgICAgICBib29sZWFuW10gc2V0RmFsbGJhY2sgPSBmYWxsYmFjazsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBmb3Ioaj0wO2o8YXZhaWxhYmxlTG9jYWxlcy5sZW5ndGg7aisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGF2YWlsYWJsZUxvY2FsZXNbal0uZXF1YWxzKGFMb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihzZXRGYWxsYmFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RmFsbGJhY2tbMF09ZmFsc2U7IC8vIGZpcnN0IHRpbWUgd2l0aCB0aGlzIGxvY2FsZSAtIG5vdCBhIGZhbGxiYWNrLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF2YWlsYWJsZUxvY2FsZXNbal07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYUxvY2FsZSA9IGFMb2NhbGUuZ2V0RmFsbGJhY2soKTsKKyAgICAgICAgICAgICAgICBzZXRGYWxsYmFjayA9IG51bGw7IC8vIERvIG5vdCBzZXQgZmFsbGJhY2sgaW4gbGF0ZXIgaXRlcmF0aW9ucworICAgICAgICAgICAgfSB3aGlsZSAoYUxvY2FsZSAhPSBudWxsKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgIC8qKgorICAgICogQmFzZWQgb24gYSBIVFRQIGZvcm1hdHRlZCBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBjaG9vc2UgYSBsb2NhbGUgZnJvbSB0aGUgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCkgbGlzdCBhcyBhdmFpbGFibGUuCisgICAgKiBAcGFyYW0gYWNjZXB0TGFuZ3VhZ2VMaXN0IGxpc3QgaW4gSFRUUCAiQWNjZXB0LUxhbmd1YWdlOiIgZm9ybWF0IG9mIGFjY2VwdGFibGUgbG9jYWxlcworICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSBsaXN0LCBvciBudWxsIGlmIG5vbmUgbWF0Y2gKKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlvbmFsCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgYWNjZXB0TGFuZ3VhZ2UoU3RyaW5nIGFjY2VwdExhbmd1YWdlTGlzdCwgYm9vbGVhbltdIGZhbGxiYWNrKSB7CisgICAgICAgIHJldHVybiBhY2NlcHRMYW5ndWFnZShhY2NlcHRMYW5ndWFnZUxpc3QsIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpLCBmYWxsYmFjayk7CisgICAgfQorCisgICAvKioKKyAgICAqIEJhc2VkIG9uIGFuIG9yZGVyZWQgYXJyYXkgb2YgYWNjZXB0YWJsZSBsb2NhbGVzLCBkZXRlcm1pbmUgYW4gYXZhaWxhYmxlIGxvY2FsZSBmb3IgdGhlIHVzZXIuCisgICAgKiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYWNjZXB0TGFuZ3VhZ2VMaXN0IG9yIGF2YWlsYWJsZUxvY2FsZXMgaXMKKyAgICAqIG51bGwuICBJZiBmYWxsYmFjayBpcyBub24tbnVsbCwgaXQgd2lsbCBjb250YWluIHRydWUgaWYgYSBmYWxsYmFjayBsb2NhbGUgKG9uZQorICAgICogbm90IGluIHRoZSBhY2NlcHRMYW5ndWFnZUxpc3QpIHdhcyByZXR1cm5lZC4gIFRoZSB2YWx1ZSBvbiBlbnRyeSBpcyBpZ25vcmVkLiAKKyAgICAqIFVMb2NhbGUgd2lsbCBiZSBvbmUgb2YgdGhlIGxvY2FsZXMgaW4gYXZhaWxhYmxlTG9jYWxlcywgb3IgdGhlIFJPT1QgVUxvY2FsZSBpZgorICAgICogaWYgYSBST09UIGxvY2FsZSB3YXMgdXNlZCBhcyBhIGZhbGxiYWNrIChiZWNhdXNlIG5vdGhpbmcgZWxzZSBpbgorICAgICogYXZhaWxhYmxlTG9jYWxlcyBtYXRjaGVkKS4gIE5vIFVMb2NhbGUgYXJyYXkgZWxlbWVudCBzaG91bGQgYmUgbnVsbDsgYmVoYXZpb3IKKyAgICAqIGlzIHVuZGVmaW5lZCBpZiB0aGlzIGlzIHRoZSBjYXNlLgorICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGNob29zZSBhIGxvY2FsZSBmcm9tIHRoZSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSBsaXN0IGFzIGF2YWlsYWJsZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3Qgb3JkZXJlZCBhcnJheSBvZiBhY2NlcHRhYmxlIGxvY2FsZXMgKHByZWZlcnJlZCBhcmUgbGlzdGVkIGZpcnN0KQorICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSBsaXN0LCBvciBudWxsIGlmIG5vbmUgbWF0Y2gKKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShVTG9jYWxlW10gYWNjZXB0TGFuZ3VhZ2VMaXN0LCBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgcmV0dXJuIGFjY2VwdExhbmd1YWdlKGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCksIGZhbGxiYWNrKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvLmNsYXNzcGF0aCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8uY2xhc3NwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiNjlkODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvLmNsYXNzcGF0aApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Y2xhc3NwYXRoPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIgc291cmNlcGF0aD0iaWN1NGp0c3JjLnppcCIga2luZD0ibGliIiBwYXRoPSJpY3U0anRlc3RzLmphciIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUiIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgorPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvLnByb2plY3QgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQwNmYyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8ucHJvamVjdApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5jb20uaWJtLmljdS50ZXN0czwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCTwvYnVpbGRTcGVjPgorCTxuYXR1cmVzPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+CisJPC9uYXR1cmVzPgorPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGEyNjYwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMCwwICsxLDEzIEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0J1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKK0J1bmRsZS1OYW1lOiBJQ1UgVGVzdCBGcmFnbWVudAorQnVuZGxlLVN5bWJvbGljTmFtZTogY29tLmlibS5pY3UudGVzdHMKK0J1bmRsZS1WZXJzaW9uOiAxLjAuMAorQnVuZGxlLVZlbmRvcjogSUJNCitGcmFnbWVudC1Ib3N0OiBjb20uaWJtLmljdTtidW5kbGUtdmVyc2lvbj0iWzMuNC4yLDMuNy4wKSIKK0J1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgorQnVuZGxlLUNvcHlyaWdodDogTGljZW5zZWQgTWF0ZXJpYWxzIC0gUHJvcGVydHkgb2YgSUJNIAorIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDAtMjAwNi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gCisgSUJNIGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgSUJNIENvcnAuCitSZXF1aXJlLUJ1bmRsZTogb3JnLmp1bml0CitCdW5kbGUtQ2xhc3NQYXRoOiBpY3U0anRlc3RzLmphcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzL2J1aWxkLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDBkNDAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNCBAQAorc291cmNlLi4gPSBzcmMvCitvdXRwdXQuLiA9IGJpbi8KK2Jpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCisgICAgICAgICAgICAgICAuLFwKKyAgICAgICAgICAgICAgIC4vaWN1NGp0ZXN0cy5qYXIsXAorICAgICAgICAgICAgICAgLmNsYXNzcGF0aCxcCisgICAgICAgICAgICAgICBiaW4vLFwKKyAgICAgICAgICAgICAgIGJ1aWxkLnByb3BlcnRpZXMsXAorICAgICAgICAgICAgICAgLnByb2plY3QKK3NyYy5pbmNsdWRlcyA9IHNyYy8sXAorICAgICAgICAgICAgICAgYnVpbGQucHJvcGVydGllcyxcCisgICAgICAgICAgICAgICAuY2xhc3NwYXRoLFwKKyAgICAgICAgICAgICAgIC5wcm9qZWN0LFwKKyAgICAgICAgICAgICAgIE1FVEEtSU5GLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Vbml0VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Vbml0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYjZlMDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1VuaXRUZXN0LmphdmEKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0UGFyYW1zOworCisvL2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CisvL2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworLy9pbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisvL2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBVbml0VGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2FsZW5kYXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiQ2FsZW5kYXIiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q29sbGF0b3IoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiQ29sbGF0b3IiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q29tcHJlc3Npb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiQ29tcHJlc3Npb24iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGlhZ0JpZ0RlY2ltYWwoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiRGlhZ0JpZ0RlY2ltYWwiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIkZvcm1hdCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RJbXBsKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIkltcGwiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Tm9ybWFsaXplcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJOb3JtYWxpemVyIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFByb3BlcnR5KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlByb3BlcnR5Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFJCQkkoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiUkJCSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RTZWFyY2hUZXN0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlNlYXJjaFRlc3QiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RyaW5nUHJlcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJTdHJpbmdQcmVwIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRlc3RDaGFyc2V0RGV0ZWN0b3IoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiVGVzdENoYXJzZXREZXRlY3RvciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RUZXN0VUNoYXJhY3Rlckl0ZXJhdG9yKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlRlc3RVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0VGltZVNjYWxlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlRpbWVTY2FsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RUaW1lWm9uZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJUaW1lWm9uZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RUcmFuc2xpdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJUcmFuc2xpdCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RVdGlsKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlV0aWwiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBydW5VdGlsaXR5KFN0cmluZyB0ZXN0bmFtZSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFRlc3RQYXJhbXMgcGFyYW1zID0gVGVzdFBhcmFtcy5jcmVhdGUoIi1uIiwgbnVsbCk7CisgICAgICAgIFRlc3RGbXdrIHRlc3QgPSBuZXcgVGVzdEFsbCgpOworICAgICAgICB0ZXN0LnJlc29sdmVUYXJnZXQocGFyYW1zLCB0ZXN0bmFtZSkucnVuKCk7CisgICAgICAgIGlmIChwYXJhbXMuZXJyb3JDb3VudCA+IDApIHsKKyAgICAgICAgICAgIGZhaWwocGFyYW1zLmVycm9yU3VtbWFyeS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKwkKKyAgICAvLyBzYW1wbGUgdGVzdHMgZnJvbSBJQ1U0SiB0ZXN0IHN1aXRlCisKKyAgICAvLyBDYWxlbmRhcgorLy8gICAgcHVibGljIHZvaWQgdGVzdENhbGVuZGFyU2ltcGxlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisvLyAgICAJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworLy8gICAgCUdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHR6KTsKKy8vICAgIAlnYy5zZXQoMjAwNSw5LDE3LDE0LDE1LDMzKTsKKy8vICAgIAlEYXRlIHRpbWUgPSBnYy5nZXRUaW1lKCk7CisvLyAgICAJCisvLyAgICAJZmluYWwgU3RyaW5nW10gY2FsZW5kYXJzID0geworLy8gICAgCQkiYnVkZGhpc3QiLCAiY2hpbmVzZSIsICJjb3B0aWMiLCAiZXRoaW9waWMiLCAiZ3JlZ29yaWFuIiwgCisvLyAgICAJCSJoZWJyZXciLCAiaXNsYW1pYyIsICJpc2xhbWljLWNpdmlsIiwgImphcGFuZXNlIgorLy8gICAgCX07CisvLyAgICAJZmluYWwgU3RyaW5nW10gdXN0aW1lcyA9IHsKKy8vICAgIAkJIk1vbmRheSwgT2N0b2JlciAxNywgMjU0OCBCRSAyOjE1OjMzIFBNIFBEVCIsCisvLyAgICAJCSJNb25kYXkgMjJ4NzgtOS0xNSAyOjE1OjMzIFBNIFBEVCIsCisvLyAgICAJCSJNb25kYXksIEJhYmEgNywgMTcyMiAyOjE1OjMzIFBNIFBEVCIsCisvLyAgICAJCSJNb25kYXksIFRla2VtdCA3LCAxOTk4IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgT2N0b2JlciAxNywgMjAwNSAyOjE1OjMzIFBNIFBEVCIsCisvLyAgICAJCSJNb25kYXksIFRpc2hyaSAxNCwgNTc2NiAyOjE1OjMzIFBNIFBEVCIsCisvLyAgICAJCSJNb25kYXksIFJhbWFkYW4gMTQsIDE0MjYgMjoxNTozMyBQTSBQRFQiLAorLy8gICAgCQkiTW9uZGF5LCBSYW1hZGFuIDE0LCAxNDI2IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgT2N0b2JlciAxNywgMTcgSGVpc2VpIDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAl9OworLy8gICAgCWZpbmFsIFN0cmluZ1tdIGRldGltZXMgPSB7CisvLyAgICAJCSJNb250YWcsIE9rdG9iZXIgMTcsIDI1NDggQkUgMjoxNTozMyBuYWNobS4gR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZyAyMng3OC05LTE1IDI6MTU6MzMgbmFjaG0uIEdNVC0wNzowMCIsCisvLyAgICAJCSJNb250YWcsIDcuIEJhYmEgMTcyMiAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgNy4gVGVrZW10IDE5OTggMTQ6MTUgVWhyIEdNVC0wNzowMCIsCisvLyAgICAJCSJNb250YWcsIDE3LiBPa3RvYmVyIDIwMDUgMTQ6MTUgVWhyIEdNVC0wNzowMCIsCisvLyAgICAJCSJNb250YWcsIDE0LiBUaXNocmkgNTc2NiAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgMTQuIFJhbWFkYW4gMTQyNiAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgMTQuIFJhbWFkYW4gMTQyNiAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgT2t0b2JlciAxNywgMTcgSGVpc2VpIDI6MTU6MzMgbmFjaG0uIEdNVC0wNzowMCIsCisvLyAgICAJfTsKKy8vICAgIAkKKy8vICAgIAlVTG9jYWxlW10gbG9jYWxlcyA9IHtVTG9jYWxlLlVTLCBVTG9jYWxlLkdFUk1BTlkgfTsKKy8vICAgIAlTdHJpbmdbXVtdIHRpbWVzID0geyB1c3RpbWVzLCBkZXRpbWVzIH07CisvLyAgICAJZm9yIChpbnQgaiA9IDA7IGogPCBsb2NhbGVzLmxlbmd0aDsgKytqKSB7CisvLyAgICAJCVVMb2NhbGUgdWwgPSBuZXcgVUxvY2FsZSgiZW5fVVMiKTsKKy8vICAgIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyArK2kpIHsKKy8vICAgIAkJCXVsID0gdWwuc2V0S2V5d29yZFZhbHVlKCJjYWxlbmRhciIsIGNhbGVuZGFyc1tpXSk7CisvLyAgICAJCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh1bCk7CisvLyAgICAJCQlEYXRlRm9ybWF0IGZtdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgbG9jYWxlc1tqXSk7CisvLyAgICAJCQlTdHJpbmcgcmVzdWx0ID0gZm10LmZvcm1hdCh0aW1lKTsKKy8vICAJCQkgICAgU3lzdGVtLm91dC5wcmludGxuKGNhbGVuZGFyc1tpXSArICI6ICIgKyByZXN1bHQpOworLy8gICAgCQkJaWYgKCFyZXN1bHQuZXF1YWxzKHRpbWVzW2pdW2ldKSkgeworLy8gICAgCQkJCWZhaWwoImNhbGVuZGFyOiAiICsgY2FsZW5kYXJzW2ldKTsKKy8vICAgIAkJCX0KKy8vICAgIAkJfQorLy8gICAgCX0KKy8vICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS8uY2xhc3NwYXRoIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5jbGFzc3BhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUxYzhmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxjbGFzc3BhdGg+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzM3MTRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5wcm9qZWN0CkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNvbS5pYm0uaWN1PC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS9NRVRBLUlORi9NQU5JRkVTVC5NRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDUwNmE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0wLDAgKzEsMTggQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgorQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lCitCdW5kbGUtU3ltYm9saWNOYW1lOiBjb20uaWJtLmljdTsgc2luZ2xldG9uOj10cnVlCitCdW5kbGUtVmVyc2lvbjogMy42CitCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lCitCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KK0J1bmRsZS1Db3B5cmlnaHQ6IExpY2Vuc2VkIE1hdGVyaWFscyAtIFByb3BlcnR5IG9mIElCTSAKKyAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDAwLCAyMDA2LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAKKyBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJQk0gQ29ycC4KK0V4cG9ydC1QYWNrYWdlOiBjb20uaWJtLmljdS5sYW5nLAorIGNvbS5pYm0uaWN1Lm1hdGgsCisgY29tLmlibS5pY3UudGV4dCwKKyBjb20uaWJtLmljdS51dGlsCitFY2xpcHNlLUxhenlTdGFydDogdHJ1ZQorQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IENEQy0xLjAvRm91bmRhdGlvbi0xLjAsCisgSjJTRS0xLjMKKyAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS9idWlsZC5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEyNDBlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOSBAQAorc291cmNlLi4gPSBzcmMvCitvdXRwdXQuLiA9IGJpbi8KK3NyYy5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsXAorICAgICAgICAgICAgICAgYWJvdXRfZmlsZXMvCitiaW4uaW5jbHVkZXMgPSBhYm91dF9maWxlcy8sXAorICAgICAgICAgICAgICAgLixcCisgICAgICAgICAgICAgICBhYm91dC5odG1sLFwKKyAgICAgICAgICAgICAgIHBsdWdpbi5wcm9wZXJ0aWVzLFwKKyAgICAgICAgICAgICAgIE1FVEEtSU5GLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L3BsdWdpbi5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L3BsdWdpbi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhZDBhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvcGx1Z2luLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitwbHVnaW5OYW1lID0gSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIGZvciBKYXZhIChJQ1U0SikKK3Byb3ZpZGVyTmFtZSA9IElCTSBDb3Jwb3JhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9taXNjL2Fib3V0Lmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMDdkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIi8+Cis8dGl0bGU+QWJvdXQ8L3RpdGxlPgorPC9oZWFkPgorPGJvZHkgbGFuZz0iRU4tVVMiPgorPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CisgCis8cD5NYXkgMTAsIDIwMDY8L3A+CQorPGgzPkxpY2Vuc2U8L2gzPgorCis8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKK2luZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KKworPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKK2JlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKK2FwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gIENoZWNrIHRoZSBSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyAKK3Byb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuICBJZiBubyBzdWNoIGxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiAgVW5sZXNzIG90aGVyd2lzZQoraW5kaWNhdGVkIGJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQKK2FuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi48L3A+CisKKzxoMz5Tb3VyY2UgQ29kZTwvaDM+Cis8cD5UaGlzIHBsdWctaW4gY29udGFpbnMgc291cmNlIGNvZGUgemlwIGZpbGVzICgmcXVvdDtTb3VyY2UgWmlwcyZxdW90OykgdGhhdCBjb3JyZXNwb25kIHRvIGJpbmFyeSBjb250ZW50IGluIG90aGVyIHBsdWctaW5zLiBUaGVzZSBTb3VyY2UgWmlwcyBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgZGlmZmVyZW50IGxpY2Vuc2UKK2FncmVlbWVudHMgYW5kL29yIG5vdGljZXMuIERldGFpbHMgYWJvdXQgdGhlc2UgbGljZW5zZSBhZ3JlZW1lbnRzIGFuZCBub3RpY2VzIGFyZSBjb250YWluZWQgaW4gJnF1b3Q7YWJvdXQuaHRtbCZxdW90OyBmaWxlcyAoJnF1b3Q7QWJvdXRzJnF1b3Q7KSBsb2NhdGVkIGluIHN1Yi1kaXJlY3RvcmllcyBpbiB0aGUKK3NyYy8gZGlyZWN0b3J5IG9mIHRoaXMgcGx1Zy1pbi4gU3VjaCBBYm91dHMgZ292ZXJuIHlvdXIgdXNlIG9mIHRoZSBTb3VyY2UgWmlwcyBpbiB0aGF0IGRpcmVjdG9yeSwgbm90IHRoZSBFUEwuPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL21pc2MvYWJvdXRfaWN1Lmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dF9pY3UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDAzZmIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL21pc2MvYWJvdXRfaWN1Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiLz4KKzx0aXRsZT5BYm91dDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBsYW5nPSJFTi1VUyI+Cis8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KKyAKKzxwPk9jdG9iZXIgMSwgMjAwNjwvcD4JCis8aDM+TGljZW5zZTwvaDM+CisKKzxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAoraW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgorCis8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIAorYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQorYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiAgQ2hlY2sgdGhlIFJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIAorcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gIElmIG5vIHN1Y2ggbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuICBVbmxlc3Mgb3RoZXJ3aXNlCitpbmRpY2F0ZWQgYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UgY29kZSBpbiB0aGUgQ29udGVudAorYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi48L3A+CisKKwkJCisJCTxoMz5UaGlyZCBQYXJ0eSBDb250ZW50PC9oMz4KKwkJPHA+VGhlIENvbnRlbnQgaW5jbHVkZXMgaXRlbXMgdGhhdCBoYXZlIGJlZW4gc291cmNlZCBmcm9tIHRoaXJkIHBhcnRpZXMgYXMgc2V0IG91dCBiZWxvdy4gSWYgeW91IAorCQlkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIGZvbGxvd2luZyBpcyBwcm92aWRlZCAKKwkJZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSwgYW5kIHlvdSBzaG91bGQgbG9vayB0byB0aGUgUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgZm9yIAorCQl0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UuPC9wPgorCisJCTxwPjxzdHJvbmc+SUNVNEogMy42PC9zdHJvbmc+IDxici8+PGJyLz4KKwkJVGhlIHBsdWctaW4gaW5jbHVkZXMgc29mdHdhcmUgKCZxdW90O0lDVTRKJnF1b3Q7KSBkZXZlbG9wZWQgYnkgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworCQlDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorCQk8YnIvPjxici8+CisJCUlDVTRKIGlzOgorCQk8YmxvY2txdW90ZT4KKwkJQ29weXJpZ2h0IChjKSAxOTk1LTIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzPGJyLz4KKwkJQWxsIHJpZ2h0cyByZXNlcnZlZC4gCisJCTwvYmxvY2txdW90ZT4KKwkJWW91ciB1c2Ugb2YgSUNVNEogaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIElDVTRKIGxpY2Vuc2UuICBBIGNvcHkgb2YgdGhlCisJCWxpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIDxhIGhyZWY9ImFib3V0X2ZpbGVzL2xpY2Vuc2UuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPmFib3V0X2ZpbGVzL2xpY2Vuc2UuaHRtbDwvYT4uCisJCTwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L0Fic3RyYWN0VGVzdExvZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L0Fic3RyYWN0VGVzdExvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkYjQwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvQWJzdHJhY3RUZXN0TG9nLmphdmEKQEAgLTAsMCArMSwxMDcgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0OworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFRlc3RMb2cgaW1wbGVtZW50cyBUZXN0TG9nIHsKKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBkb250U2tpcEZvclZlcnNpb24gPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBza2lwSWZCZWZvcmVJQ1UoaW50IG1ham9yLCBpbnQgbWlub3IpIHsKKyAgICAgICAgaWYgKGRvbnRTa2lwRm9yVmVyc2lvbiB8fCBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi5jb21wYXJlVG8oVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UobWFqb3IsIG1pbm9yKSkgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0gCisgICAgICAgIGxvZ2xuKCJUZXN0IHNraXBwZWQgYmVmb3JlIElDVSByZWxlYXNlICIgKyBtYWpvciArICIuIiArIG1pbm9yKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzSUNVVmVyc2lvbkF0TGVhc3QoaW50IG1ham9yLCBpbnQgbWlub3IpeworICAgICAgIHJldHVybiAoVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uY29tcGFyZVRvKFZlcnNpb25JbmZvLmdldEluc3RhbmNlKG1ham9yLCBtaW5vcikpID49IDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBtZXNzYWdlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGxvZyhTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgTE9HLCB0cnVlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgbWVzc2FnZSBhbmQgbmV3bGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBsb2dsbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgTE9HLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgZXJyKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIG1zZyhtZXNzYWdlLCBFUlIsIHRydWUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IgYW5kIG5ld2xpbmUuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgZXJybG4oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgbXNnKG1lc3NhZ2UsIEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwb3J0IGEgd2FybmluZyAoZ2VuZXJhbGx5IG1pc3NpbmcgdGVzdHMgb3IgZGF0YSkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgd2FybihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgV0FSTiwgdHJ1ZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcG9ydCBhIHdhcm5pbmcgKGdlbmVyYWxseSBtaXNzaW5nIHRlc3RzIG9yIGRhdGEpIGFuZCBuZXdsaW5lLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHdhcm5sbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgV0FSTiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVjdG9yIGZvciBsb2dnaW5nLiAgQ2FsbGVycyBjYW4gZm9yY2UgdGhlIGxvZ2dpbmcgc3lzdGVtIHRvCisgICAgICogbm90IGluY3JlbWVudCB0aGUgZXJyb3Igb3Igd2FybmluZyBsZXZlbCBieSBwYXNzaW5nIGZhbHNlIGZvciBpbmNDb3VudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlIHRvIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbGV2ZWwgdGhlIG1lc3NhZ2UgbGV2ZWwsIGVpdGhlciBMT0csIFdBUk4sIG9yIEVSUi4KKyAgICAgKiBAcGFyYW0gaW5jQ291bnQgaWYgdHJ1ZSwgaW5jcmVtZW50cyB0aGUgd2FybmluZyBvciBlcnJvciBjb3VudAorICAgICAqIEBwYXJhbSBuZXdsbiBpZiB0cnVlLCBmb3JjZXMgYSBuZXdsaW5lIGFmdGVyIHRoZSBtZXNzYWdlCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsIGJvb2xlYW4gbmV3bG4pOworCisgICAgLyoqCisgICAgICogTm90IHN1cmUgaWYgdGhpcyBjbGFzcyBpcyB1c2VmdWwuICBUaGlzIGxldHMgeW91IGxvZyB3aXRob3V0IGZpcnN0IHRlc3RpbmcKKyAgICAgKiBpZiBsb2dnaW5nIGlzIGVuYWJsZWQuICBUaGUgRGVsZWdhdGluZyBsb2cgd2lsbCBlaXRoZXIgc2lsZW50bHkgaWdub3JlIHRoZQorICAgICAqIG1lc3NhZ2UsIGlmIHRoZSBkZWxlZ2F0ZSBpcyBudWxsLCBvciBmb3J3YXJkIGl0IHRvIHRoZSBkZWxlZ2F0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIERlbGVnYXRpbmdMb2cgZXh0ZW5kcyBBYnN0cmFjdFRlc3RMb2cgeworICAgICAgICBwcml2YXRlIFRlc3RMb2cgZGVsZWdhdGU7CisKKyAgICAgICAgcHVibGljIERlbGVnYXRpbmdMb2coVGVzdExvZyBkZWxlZ2F0ZSkgeworICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsIGJvb2xlYW4gbmV3bG4pIHsKKyAgICAgICAgICAgIGlmIChkZWxlZ2F0ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZGVsZWdhdGUubXNnKG1lc3NhZ2UsIGxldmVsLCBpbmNDb3VudCwgbmV3bG4pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0ZUF0TGVhc3QoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSl7CisgICAgICAgIENhbGVuZGFyIGMgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlIGR0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSk7CisgICAgICAgIGlmKGMuZ2V0VGltZSgpLmNvbXBhcmVUbyhkdCk+PTApeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9Nb2R1bGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvTW9kdWxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYzQ2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvTW9kdWxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTY5IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZS5EYXRhTWFwOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3REYXRhTW9kdWxlLkRhdGFNb2R1bGVGb3JtYXRFcnJvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3REYXRhTW9kdWxlLlRlc3REYXRhOworCisvKioKKyAqIFJheTogQW4gYWRhcHRlciBjbGFzcyBmb3IgVGVzdERhdGFNb3VsZSB0byBtYWtlIGl0IGxpa2UgVGVzdEZtd2sKKyAqIAorICogQSBjb252ZW5pZW5jZSBleHRlbnNpb24gb2YgVGVzdEZtd2sgZm9yIHVzZSBieSBkYXRhIG1vZHVsZS1kcml2ZW4gdGVzdHMuCisgKiAKKyAqIFRlc3RzIGNhbiBpbXBsZW1lbnQgdGhpcyBpZiB0aGV5IG1ha2UgZXh0ZW5zaXZlIHVzZSBvZiBpbmZvcm1hdGlvbiBpbiBhCisgKiBUZXN0RGF0YU1vZHVsZS4KKyAqIAorICogU3ViY2xhc3NlcyBjYW4gYWxsb3cgZm9yIHRlc3QgbWV0aG9kcyB0aGF0IGRvbid0IHVzZSBkYXRhIGZyb20gdGhlIG1vZGV1bCBieQorICogb3ZlcnJpZGluZyB2YWxpZGF0ZU1ldGhvZCB0byByZXR1cm4gdHJ1ZSBmb3IgdGhlc2UgbWV0aG9kcy4gVGVzdHMgYXJlIGFsc28KKyAqIGZyZWUgdG8gaW5zdGFudGlhdGUgdGhlaXIgb3duIG1vZHVsZXMgYW5kIHJ1biBmcm9tIHRoZW0sIHRob3VnaCBjYXJlIHNob3VsZAorICogYmUgdGFrZW4gbm90IHRvIGludGVyZmVyZSB3aXRoIHRoZSBtZXRob2RzIGluIHRoaXMgY2xhc3MuCisgKiAKKyAqIFNlZSBDb2xsYXRpb25UZXN0IGZvciBhbiBleGFtcGxlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9kdWxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwcml2YXRlIFRlc3REYXRhTW9kdWxlIG07CisKKyAgICBwcm90ZWN0ZWQgVGVzdERhdGEgdCA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0cmluZyBsb2NhbGVOYW1lID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIGJhc2VOYW1lID0gbnVsbDsKKworICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIHByb2Nlc3NNb2R1bGVzKCk7CisKKyAgICBwcm90ZWN0ZWQgTW9kdWxlVGVzdChTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NOYW1lKSB7CisgICAgICAgIGxvY2FsZU5hbWUgPSBsb2NOYW1lOworICAgICAgICB0aGlzLmJhc2VOYW1lID0gYmFzZU5hbWU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFRhcmdldCBnZXRUYXJnZXRzKFN0cmluZyB0YXJnZXROYW1lKSB7CisgICAgICAgIGlmIChwYXJhbXMuZG9NZXRob2RzKCkpIHsKKyAgICAgICAgICAgIFRhcmdldCB0YXJnZXQgPSBudWxsOworICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJdGVyYXRvciB0ZXN0RGF0YSA9IG0uZ2V0VGVzdERhdGFJdGVyYXRvcigpOworICAgICAgICAgICAgaWYgKHRlc3REYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBNZXRob2QgbWV0aG9kID0gZ2V0Q2xhc3MoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRNZXRob2QoInByb2Nlc3NNb2R1bGVzIiwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0ZXN0RGF0YS5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IG5ldyBNZXRob2RUYXJnZXQoKChUZXN0RGF0YSkgdGVzdERhdGEubmV4dCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0TmFtZSgpLCBtZXRob2QpLnNldE5leHQodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIAorICAgICAqIFRlc3RGbXdrIGNhbGxzIHRoaXMgYmVmb3JlIHRyeWluZyB0byBydW4gYSBzdWl0ZSBvZiB0ZXN0cy4gVGhlIHRlc3Qgc3VpdGUKKyAgICAgKiBpZiB2YWxpZCBpZiBhIG1vZHVsZSB3aG9zZSBuYW1lIGlzIHRoZSBuYW1lIG9mIHRoaXMgY2xhc3MgKyAiRGF0YSIgY2FuIGJlCisgICAgICogb3BlbmVkLiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIGlmIHRoZXJlIGFyZSBkaWZmZXJlbnQgb3IgYWRkaXRpb25hbAorICAgICAqIGRhdGEgcmVxdWlyZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtID0gRmFjdG9yeS5nZXQoYmFzZU5hbWUsIGxvY2FsZU5hbWUpOworICAgICAgICB9IGNhdGNoIChEYXRhTW9kdWxlRm9ybWF0RXJyb3IgZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIG0gPSBudWxsOworICAgICAgICB9IGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgZGF0YTogIitlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG0gIT0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0Rm13ayBjYWxscyB0aGlzIGJlZm9yZSB0cnlpbmcgdG8gaW52b2tlIGEgdGVzdCBtZXRob2QuIFRoZSBtZXRob2QgaXMKKyAgICAgKiB2YWxpZCBpZiB0aGVyZSBpcyB0ZXN0IGRhdGEgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIG1ldGhvZCBpbiB0aGUgbW9kdWxlLgorICAgICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgdG8gYWxsb3cgZm9yIHRlc3RzIHRoYXQgZG8gbm90IHJlcXVpcmUgdGVzdAorICAgICAqIGRhdGEgZnJvbSB0aGUgbW9kdWxlLCBvciBpZiB0aGVyZSBhcmUgZGlmZmVyZW50IG9yIGFkZGl0aW9uYWwgZGF0YQorICAgICAqIHJlcXVpcmVkLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlTWV0aG9kKFN0cmluZyBtZXRob2ROYW1lKSB7CisgICAgICAgIHJldHVybiBvcGVuVGVzdERhdGEobWV0aG9kTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgb2YgVGVzdEZtd2sgbWV0aG9kIHRvIGdldCB0aGUgdGVzdCBzdWl0ZSBkZXNjcmlwdGlvbiBmcm9tIHRoZQorICAgICAqIERFU0NSSVBUSU9OIGZpZWxkIG9mIHRoZSBtb2R1bGUgaW5mby4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICBEYXRhTWFwIGluZm8gPSBtb2R1bGVJbmZvKCk7CisgICAgICAgIGlmIChpbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHJldHVybiBpbmZvLmdldFN0cmluZyhUZXN0RGF0YU1vZHVsZS5ERVNDUklQVElPTik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgb2YgVGVzdEZtd2sgbWV0aG9kIHRvIGdldCB0aGUgdGVzdCBtZXRob2QgZGVzY3JpcHRpb24gZnJvbSB0aGUKKyAgICAgKiBERVNDUklQVElPTiBmaWVsZCBvZiB0aGUgdGVzdCBpbmZvLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TWV0aG9kRGVzY3JpcHRpb24oU3RyaW5nIG1ldGhvZE5hbWUpIHsKKyAgICAgICAgaWYgKG9wZW5UZXN0RGF0YShtZXRob2ROYW1lKSkgeworICAgICAgICAgICAgRGF0YU1hcCBpbmZvID0gdGVzdEluZm8oKTsKKyAgICAgICAgICAgIGlmIChpbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyByZXR1cm4gaW5mby5nZXRTdHJpbmcoVGVzdERhdGFNb2R1bGUuREVTQ1JJUFRJT04pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9wZW4gdGhlIHRlc3QgZGF0YSBpbiB0aGUgbW9kdWxlIHdpdGggdGhlIGdpdmVuIG5hbWUsIGFuZCByZXR1cm4gdHJ1ZSBpZgorICAgICAqIHN1Y2Nlc3MuIFRoZSBjdXJyZW50IHRlc3QgaXMgcmVzZXQuCisgICAgICogCisgICAgICogQHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBvcGVuVGVzdERhdGEoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQgPSBtID09IG51bGwgPyBudWxsIDogbS5nZXRUZXN0RGF0YShuYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoRGF0YU1vZHVsZUZvcm1hdEVycm9yIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdCAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBpbmZvcm1hdGlvbiBvbiB0aGlzIG1vZHVsZS4gUmV0dXJucyBudWxsIGlmIG5vIG1vZHVsZSBvcGVuIG9yIG5vIGluZm8KKyAgICAgKiBmb3IgdGhlIG1vZHVsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIERhdGFNYXAgbW9kdWxlSW5mbygpIHsKKyAgICAgICAgcmV0dXJuIG0gPT0gbnVsbCA/IG51bGwgOiBtLmdldEluZm8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgaW5mb3JtYXRpb24gb24gdGhpcyB0ZXN0LiBSZXR1cm5zIG51bGwgaWYgbm8gbW9kdWxlIG9wZW4gb3Igbm8gdGVzdAorICAgICAqIG9wZW4gb3Igbm90IGluZm8gZm9yIHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIERhdGFNYXAgdGVzdEluZm8oKSB7CisgICAgICAgIHJldHVybiB0ID09IG51bGwgPyBudWxsIDogdC5nZXRJbmZvKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsIGJvb2xlYW4gbmV3bG4pIHsKKyAgICAgICAgaWYgKGxldmVsID09IEVSUiAmJiB0ICE9IG51bGwpIHsKKyAgICAgICAgICAgLy90LnN0b3BJdGVyYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5tc2cobWVzc2FnZSwgbGV2ZWwsIGluY0NvdW50LCBuZXdsbik7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvUmVzb3VyY2VNb2R1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9SZXNvdXJjZU1vZHVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YWNlMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvUmVzb3VyY2VNb2R1bGUuamF2YQpAQCAtMCwwICsxLDQxNSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENyZWF0ZWQgb24gMjAwNi00LTIxCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb247CisKKy8qKgorICogUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdGVzdCBkYXRhIGRlc2NyaWJlZCBpbiBhIFVSZXNvdXJjZUJvdW5kbGUgZmlsZS4gCisgKiAKKyAqIFRoZSByb290IG9mIHRoZSBVUmVzb3VyY2VCb3VuZGxlIGZpbGUgaXMgYSB0YWJsZSByZXNvdXJjZSwgYW5kIGl0IGhhcyBvbmUgCisgKiBJbmZvIGFuZCBvbmUgVGVzdERhdGEgc3ViLXJlc291cmNlcy4gVGhlIEluZm8gZGVzY3JpYmVzIHRoZSBkYXRhIG1vZHVsZQorICogaXRzZWxmLiBUaGUgVGVzdERhdGEsIHdoaWNoIGlzIGEgdGFibGUgcmVzb3VyY2UsIGhhcyBhIGNvbGxlY3Rpb24gb2YgdGVzdCAKKyAqIGRhdGEuCisgKiAKKyAqIFRoZSB0ZXN0IGRhdGEgaXMgYSBuYW1lZCB0YWJsZSByZXNvdXJjZSB3aGljaCBoYXMgSW5mbywgU2V0dGluZ3MsIEhlYWRlcnMsCisgKiBhbmQgQ2FzZXMgc3ViLXJlc291cmNlcy4gCisgKiAKKyAqIDxwcmU+CisgKiBEYXRhTW9kdWxlOnRhYmxlKG5vZmFsbGJhY2speyAKKyAqICAgSW5mbzp0YWJsZSB7fSAKKyAqICAgVGVzdERhdGE6dGFibGUgeworICogICAgIGVudHJ5X25hbWU6dGFibGV7CisgKiAgICAgICBJbmZvOnRhYmxle30KKyAqICAgICAgIFNldHRpbmdzOmFycmF5e30KKyAqICAgICAgIEhlYWRlcnM6YXJyYXl7fQorICogICAgICAgQ2FzZXM6YXJyYXl7fQorICogICAgIH0KKyAqICAgfSAKKyAqIH0KKyAqIDwvcHJlPgorICogCisgKiBUaGUgdGVzdCBkYXRhIGlzIGV4cGVjdGVkIHRvIGJlIGZlZCB0byB0ZXN0IGNvZGUgYnkgZm9sbG93aW5nIHNlcXVlbmNlIAorICoKKyAqICAgZm9yIGVhY2ggc2V0dGluZyBpbiBTZXR0aW5neworICogICAgICAgcHJlcGFyZSB0aGUgc2V0dGluZworICogICAgIGZvciBlYWNoIHRlc3QgZGF0YSBpbiBDYXNlc3sKKyAqICAgICAgIHBlcmZvcm0gdGhlIHRlc3QKKyAqICAgICB9CisgKiAgIH0KKyAqIAorICogRm9yIGRldGFpbCBvZiB0aGUgc3BlY2lmaWNhdGlvbiwgcGxlYXNlIHJlZmVyIHRvIHRoZSBjb2RlLiBUaGUgY29kZSBpcyAKKyAqIGluaXRpYWxseSBwb3J0ZWQgZnJvbSAiaWN1NGMvc291cmNlL3Rvb2xzL2N0ZXN0ZncvdW5pY29kZS90c3RkdG1vZC5oIgorICogYW5kIHNob3VsZCBiZSBtYWludGFpbmVkIHBhcmFsbGVsbHkuCisgKiAKKyAqIEBhdXRob3IgUmF5bW9uZCBZYW5nCisgKi8KK2NsYXNzIFJlc291cmNlTW9kdWxlIGltcGxlbWVudHMgVGVzdERhdGFNb2R1bGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTkZPID0gIkluZm8iOworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFU0NSSVBUSU9OID0gIkRlc2NyaXB0aW9uIjsKKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBMT05HX0RFU0NSSVBUSU9OID0gIkxvbmdEZXNjcmlwdGlvbiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRFU1RfREFUQSA9ICJUZXN0RGF0YSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVFRJTkdTID0gIlNldHRpbmdzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSID0gIkhlYWRlcnMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBID0gIkNhc2VzIjsKKworICAgIAorICAgIElDVVJlc291cmNlQnVuZGxlIHJlczsKKyAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpbmZvOworICAgIElDVVJlc291cmNlQnVuZGxlIGRlZmF1bHRIZWFkZXI7CisgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGVzdERhdGE7CisgICAgCisgICAgUmVzb3VyY2VNb2R1bGUoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSkgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcnsKKworICAgICAgICByZXMgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgICAgIGluZm8gPSBnZXRGcm9tVGFibGUocmVzLCBJTkZPLCBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSk7CisgICAgICAgIHRlc3REYXRhID0gZ2V0RnJvbVRhYmxlKHJlcywgVEVTVF9EQVRBLCBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIHVuZm9ydHVuYXRlbHksIGFjdHVhbGx5LCBkYXRhIGNhbiBiZSBlaXRoZXIgQVJSQVkgb3IgU1RSSU5HCisgICAgICAgICAgICBkZWZhdWx0SGVhZGVyID0gZ2V0RnJvbVRhYmxlKGluZm8sIEhFQURFUiwgbmV3IGludFtde0lDVVJlc291cmNlQnVuZGxlLkFSUkFZLCBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkd9KTsKKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZGVmYXVsdEhlYWRlciA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiByZXMuZ2V0S2V5KCk7CisgICAgfQorCisgICAgcHVibGljIERhdGFNYXAgZ2V0SW5mbygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVVGFibGVSZXNvdXJjZShpbmZvKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdERhdGEgZ2V0VGVzdERhdGEoU3RyaW5nIHRlc3ROYW1lKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVUmVzb3VyY2VUZXN0RGF0YShkZWZhdWx0SGVhZGVyLCB0ZXN0RGF0YS5nZXQodGVzdE5hbWUpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0VGVzdERhdGFJdGVyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvckFkYXB0ZXIodGVzdERhdGEpeworICAgICAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBwcmVwYXJlTmV4dChJQ1VSZXNvdXJjZUJ1bmRsZSBuZXh0UmVzKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVSZXNvdXJjZVRlc3REYXRhKGRlZmF1bHRIZWFkZXIsIG5leHRSZXMpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRvIG1ha2UgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciB3b3JrcyBsaWtlIEl0ZXJhdG9yCisgICAgICogYW5kIHJldHVybiB2YXJpb3VzIGRhdGEtZHJpdmVuIHRlc3Qgb2JqZWN0IGZvciBuZXh0KCkgY2FsbAorICAgICAqIAorICAgICAqIEBhdXRob3IgUmF5bW9uZCBZYW5nCisgICAgICovCisgICAgcHJpdmF0ZSBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgSXRlcmF0b3JBZGFwdGVyIGltcGxlbWVudHMgSXRlcmF0b3J7CisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgcmVzOworICAgICAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IgaXRyOworICAgICAgICBwcml2YXRlIE9iamVjdCBwcmVwYXJlZE5leHRFbGVtZW50ID0gbnVsbDsKKyAgICAgICAgLy8gZml4IGEgc3RyYW5nZSBiZWhhdmlvciBmb3IgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBmb3IgCisgICAgICAgIC8vIElDVVJlc291cmNlQnVuZGxlLlNUUklORy4gSXQgc3VwcG9ydCBoYXNOZXh0KCksIGJ1dCBkb2VzIAorICAgICAgICAvLyBub3Qgc3VwcG9ydCBuZXh0KCkgbm93LiAKKyAgICAgICAgLy8gCisgICAgICAgIC8vIFVzZSB0aGUgaXRlcmF0ZWQgcmVzb3VyY2UgaXRzZWxmIGFzIHRoZSByZXN1bHQgZnJvbSBuZXh0KCkgY2FsbAorICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNTdHJSZXMgPSBmYWxzZTsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGlzU3RyUmVzUHJlcGFyZWQgPSBmYWxzZTsgLy8gZm9yIFNUUklORyByZXNvdWNlLCB3ZSBvbmx5IHByZXBhcmUgb25jZQorCisgICAgICAgIEl0ZXJhdG9yQWRhcHRlcihJQ1VSZXNvdXJjZUJ1bmRsZSB0aGVSZXMpIHsKKyAgICAgICAgICAgIGFzc2VydF9ub3QgKHRoZVJlcyA9PSBudWxsKTsKKyAgICAgICAgICAgIHJlcyA9IHRoZVJlczsKKyAgICAgICAgICAgIGl0ciA9IHJlcy5nZXRJdGVyYXRvcigpOworICAgICAgICAgICAgaXNTdHJSZXMgPSByZXMuZ2V0VHlwZSgpID09IElDVVJlc291cmNlQnVuZGxlLlNUUklORzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgcmVtb3ZlKCkgeworICAgICAgICAgICAgLy8gZG8gbm90aGluZworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhc05leHRGb3JTdHJSZXMoKXsKKyAgICAgICAgICAgIGFzc2VydF9pcyAoaXNTdHJSZXMpOworICAgICAgICAgICAgYXNzZXJ0X25vdCAoIWlzU3RyUmVzUHJlcGFyZWQgJiYgcHJlcGFyZWROZXh0RWxlbWVudCAhPSBudWxsKTsKKyAgICAgICAgICAgIGlmIChpc1N0clJlc1ByZXBhcmVkICYmIHByZXBhcmVkTmV4dEVsZW1lbnQgIT0gbnVsbCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAoaXNTdHJSZXNQcmVwYXJlZCAmJiBwcmVwYXJlZE5leHRFbGVtZW50ID09IG51bGwpIHJldHVybiBmYWxzZTsgLy8gb25seSBwcmVwYXJlIG9uY2UKKyAgICAgICAgICAgIGFzc2VydF9pcyAoIWlzU3RyUmVzUHJlcGFyZWQgJiYgcHJlcGFyZWROZXh0RWxlbWVudCA9PSBudWxsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBwcmVwYXJlZE5leHRFbGVtZW50ID0gcHJlcGFyZU5leHQocmVzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfbm90IChwcmVwYXJlZE5leHRFbGVtZW50ID09IG51bGwsICJwcmVwYXJlTmV4dCgpIHNob3VsZCBub3QgcmV0dXJuIG51bGwiKTsKKyAgICAgICAgICAgICAgICBpc1N0clJlc1ByZXBhcmVkID0gdHJ1ZTsgLy8gdG9nZ2xlIHRoZSB0YWcKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKERhdGFNb2R1bGVGb3JtYXRFcnJvciBlKSB7CisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKy8vI2Vsc2UKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSxlKTsKKy8vI2VuZGlmCisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChpc1N0clJlcykgcmV0dXJuIGhhc05leHRGb3JTdHJSZXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHByZXBhcmVkTmV4dEVsZW1lbnQgIT0gbnVsbCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChpdHIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgLy8gTm90aWNlLCBvdGhlciBSdW50aW1lRXhjZXB0aW9uIG1heSBiZSB0aHJvd2VkCisgICAgICAgICAgICAgICAgdCA9IGl0ci5uZXh0KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBwcmVwYXJlZE5leHRFbGVtZW50ID0gcHJlcGFyZU5leHQodCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X25vdCAocHJlcGFyZWROZXh0RWxlbWVudCA9PSBudWxsLCAicHJlcGFyZU5leHQoKSBzaG91bGQgbm90IHJldHVybiBudWxsIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGNhdGNoIChEYXRhTW9kdWxlRm9ybWF0RXJyb3IgZSkgeworICAgICAgICAgICAgICAgIC8vIFNhZGx5LCB3ZSB0aHJvdyBSdW50aW1lRXhjZXB0aW9uIGFsc28KKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworLy8jZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLGUpOworLy8jZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dCgpeworICAgICAgICAgICAgaWYgKGhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCB0ID0gcHJlcGFyZWROZXh0RWxlbWVudDsKKyAgICAgICAgICAgICAgICBwcmVwYXJlZE5leHRFbGVtZW50ID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogVG8gcHJlcGFyZSBkYXRhLWRyaXZlbiB0ZXN0IG9iamVjdCBmb3IgbmV4dCgpIGNhbGwsIHNob3VsZCBub3QgcmV0dXJuIG51bGwKKyAgICAgICAgICovCisgICAgICAgIGFic3RyYWN0IHByb3RlY3RlZCBPYmplY3QgcHJlcGFyZU5leHQoSUNVUmVzb3VyY2VCdW5kbGUgbmV4dFJlcykgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcjsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogQXZvaWQgdXNlIEphdmEgMS40IGxhbmd1YWdlIG5ldyBhc3NlcnQga2V5d29yZCAKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBhc3NlcnRfaXMoYm9vbGVhbiBlcSwgU3RyaW5nIG1zZyl7CisgICAgICAgIGlmICghZXEpIHRocm93IG5ldyBFcnJvcigidGVzdCBjb2RlIGl0c2VsZiBoYXMgZXJyb3I6ICIgKyBtc2cpOworICAgIH0KKyAgICBzdGF0aWMgdm9pZCBhc3NlcnRfaXMoYm9vbGVhbiBlcSl7CisgICAgICAgIGlmICghZXEpIHRocm93IG5ldyBFcnJvcigidGVzdCBjb2RlIGl0c2VsZiBoYXMgZXJyb3IuIik7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGFzc2VydF9ub3QoYm9vbGVhbiBlcSwgU3RyaW5nIG1zZyl7CisgICAgICAgIGFzc2VydF9pcyghZXEsIG1zZyk7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGFzc2VydF9ub3QoYm9vbGVhbiBlcSl7CisgICAgICAgIGFzc2VydF9pcyghZXEpOworICAgIH0KKyAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIGhlbHBlciBmdW5jdGlvbiB0byBnZXQgcmVzb3VyY2Ugd2l0aCBmb2xsb3dpbmcgYWRkLW9uIAorICAgICAqIAorICAgICAqIDEuIEFzc2VydCB0aGUgcmV0dXJuZWQgcmVzb3VyY2UgaXMgbmV2ZXIgbnVsbC4KKyAgICAgKiAyLiBDaGVjayB0aGUgdHlwZSBvZiByZXNvdXJjZS4gCisgICAgICogCisgICAgICogVGhlIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBmb3IgdmFyaW91cyBnZXQoKSBtZXRob2QgaXMgYSAKKyAgICAgKiBSdW50aW1lRXhjZXB0aW9uIHdoaWNoIGNhbiBiZSBzaWxlbnRseSBieXBhc3NlZC4gVGhpcyBiZWhhdmlvciBpcyBhIAorICAgICAqIHRyb3VibGUuIE9uZSBwdXJwb3NlIG9mIHRoZSBjbGFzcyBpcyB0byBlbmZvcmNlIGZvcm1hdCBjaGVja2luZyBmb3IgCisgICAgICogcmVzb3VyY2UgZmlsZS4gV2UgZG9uJ3Qgd2FudCB0byB0aGUgZXhjZXB0aW9ucyBhcmUgc2lsZW50bHkgYnlwYXNzZWQgCisgICAgICogYW5kIHNwcmVhZGVkIHRvIG91ciBjdXN0b21lcidzIGNvZGUuIAorICAgICAqIAorICAgICAqIE5vdGljZSwgdGhlIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBmb3IgZ2V0KCkgbWV0aG9kIGlzIGFsc28gYQorICAgICAqIFJ1bnRpbWVFeGNlcHRpb24uIFRoZSBjYWxsZXIgZnVuY3Rpb25zIHNob3VsZCBhdm9pZCBzZXByZWFkIHRoZSBleGVjcHRpb24KKyAgICAgKiBzaWxlbnRseSBhbHNvLiBUaGUgYmVoYXZpb3IgaXMgbW9kaWZpZWQgYmVjYXVzZSBzb21lIHJlc291cmNlIGFyZSAKKyAgICAgKiBvcHRpb25hbCBhbmQgY2FuIGJlIG1pc3NlZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgZ2V0RnJvbVRhYmxlKElDVVJlc291cmNlQnVuZGxlIHJlcywgU3RyaW5nIGtleSwgaW50IGV4cFJlc1R5cGUpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3J7CisgICAgICAgIHJldHVybiBnZXRGcm9tVGFibGUocmVzLCBrZXksIG5ldyBpbnRbXXtleHBSZXNUeXBlfSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXRGcm9tVGFibGUoSUNVUmVzb3VyY2VCdW5kbGUgcmVzLCBTdHJpbmcga2V5LCBpbnRbXSBleHBSZXNUeXBlcykgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcnsKKyAgICAgICAgYXNzZXJ0X2lzIChyZXMgIT0gbnVsbCAmJiBrZXkgIT0gbnVsbCAmJiByZXMuZ2V0VHlwZSgpID09IElDVVJlc291cmNlQnVuZGxlLlRBQkxFKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdCA9IHJlcy5nZXQoa2V5KTsgCisgICAgICAKKyAgICAgICAgYXNzZXJ0X25vdCAodCA9PW51bGwpOworICAgICAgICBpbnQgdHlwZSA9IHQuZ2V0VHlwZSgpOworICAgICAgICBBcnJheXMuc29ydChleHBSZXNUeXBlcyk7CisgICAgICAgIGlmIChBcnJheXMuYmluYXJ5U2VhcmNoKGV4cFJlc1R5cGVzLCB0eXBlKSA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgfSBlbHNlIHsKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgICAgICAgICAgICB0aHJvdyBuZXcgRGF0YU1vZHVsZUZvcm1hdEVycm9yKCJBY3R1YWwgdHlwZSAiICsgdC5nZXRUeXBlKCkgKyAiICE9IGV4cGVjdGVkIHR5cGVzICIgKyBleHBSZXNUeXBlcyArICIuIik7CisvLyNlbHNlCisgICAgICAgICAgICB0aHJvdyBuZXcgRGF0YU1vZHVsZUZvcm1hdEVycm9yKG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIkFjdHVhbCB0eXBlICIgKyB0LmdldFR5cGUoKSArICIgIT0gZXhwZWN0ZWQgdHlwZXMgIiArIGV4cFJlc1R5cGVzICsgIi4iKSk7CisvLyNlbmRpZgorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVuZm9ydHVuYXRlbHksIElDVVJlc291cmNlQnVuZGxlIGlzIHVuYWJsZSB0byB0cmVhdCBvbmUgc3RyaW5nIGFzIHN0cmluZyBhcnJheS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybiBhIFN0cmluZ1tdIGZyb20gSUNVUmVzb3VyY2VCdW5kbGUsIHJlZ2FyZGxlc3MgaXQgaXMgYW4gYXJyYXkgb3IgYSBzdHJpbmcgCisgICAgICovCisgICAgc3RhdGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5SGVscGVyKElDVVJlc291cmNlQnVuZGxlIHJlcywgU3RyaW5nIGtleSkgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcnsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdCA9IGdldEZyb21UYWJsZShyZXMsIGtleSwgbmV3IGludFtde0lDVVJlc291cmNlQnVuZGxlLkFSUkFZLCBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkd9KTsKKyAgICAgICAgcmV0dXJuIGdldFN0cmluZ0FycmF5SGVscGVyKHQpOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheUhlbHBlcihJQ1VSZXNvdXJjZUJ1bmRsZSByZXMpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3J7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGludCB0eXBlID0gcmVzLmdldFR5cGUoKTsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBJQ1VSZXNvdXJjZUJ1bmRsZS5BUlJBWToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzLmdldFN0cmluZ0FycmF5KCk7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLlNUUklORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1tde3Jlcy5nZXRTdHJpbmcoKX07CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIk9ubHkgYWNjZXB0IEFSUkFZIGFuZCBTVFJJTkcgdHlwZXMuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBlKXsKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgICAgICAgICAgICB0aHJvdyBuZXcgRGF0YU1vZHVsZUZvcm1hdEVycm9yKGUuZ2V0TWVzc2FnZSgpKTsKKy8vI2Vsc2UKKyAgICAgICAgICAgIHRocm93IG5ldyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoZSk7CisvLyNlbmRpZgorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGVzdERhdGFNb2R1bGUgbSA9IG5ldyBSZXNvdXJjZU1vZHVsZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvIiwiRGF0YURyaXZlbkNvbGxhdGlvblRlc3QiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJoZWxsbzogIiArIG0uZ2V0TmFtZSgpKTsKKyAgICAgICAgbS5nZXRJbmZvKCk7CisgICAgICAgIG0uZ2V0VGVzdERhdGFJdGVyYXRvcigpOworICAgICAgICB9IGNhdGNoIChEYXRhTW9kdWxlRm9ybWF0RXJyb3IgZSkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI/Pz8iKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBVUmVzb3VyY2VUZXN0RGF0YSBpbXBsZW1lbnRzIFRlc3REYXRheworICAgICAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIHJlczsKKyAgICAgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBpbmZvOworICAgICAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIHNldHRpbmdzOyAKKyAgICAgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBoZWFkZXI7CisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgZGF0YTsKKworICAgICAgICBVUmVzb3VyY2VUZXN0RGF0YShJQ1VSZXNvdXJjZUJ1bmRsZSBkZWZhdWx0SGVhZGVyLCBJQ1VSZXNvdXJjZUJ1bmRsZSB0aGVSZXMpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3J7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGFzc2VydF9pcyAodGhlUmVzICE9IG51bGwgJiYgdGhlUmVzLmdldFR5cGUoKSA9PSBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSk7CisgICAgICAgICAgICByZXMgPSB0aGVSZXM7CisgICAgICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5LCBhY3R1YWxseSwgZGF0YSBjYW4gYmUgZWl0aGVyIEFSUkFZIG9yIFNUUklORworICAgICAgICAgICAgZGF0YSA9IGdldEZyb21UYWJsZShyZXMsIERBVEEsIG5ldyBpbnRbXXtJQ1VSZXNvdXJjZUJ1bmRsZS5BUlJBWSwgSUNVUmVzb3VyY2VCdW5kbGUuU1RSSU5HfSk7CisgICAgICAgCisKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5LCBhY3R1YWxseSwgZGF0YSBjYW4gYmUgZWl0aGVyIEFSUkFZIG9yIFNUUklORworICAgICAgICAgICAgICAgIGhlYWRlciA9IGdldEZyb21UYWJsZShyZXMsIEhFQURFUiwgbmV3IGludFtde0lDVVJlc291cmNlQnVuZGxlLkFSUkFZLCBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkd9KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdEhlYWRlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoIlVuYWJsZSB0byBmaW5kIGEgaGVhZGVyIGZvciB0ZXN0IGRhdGEgJyIgKyByZXMuZ2V0S2V5KCkgKyAiJyBhbmQgbm8gZGVmYXVsdCBoZWFkZXIgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gZGVmYXVsdEhlYWRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgc2V0dGluZ3MgPSBnZXRGcm9tVGFibGUocmVzLCBTRVRUSU5HUywgSUNVUmVzb3VyY2VCdW5kbGUuQVJSQVkpOworICAgICAgICAgICAgICAgIGluZm8gPSBnZXRGcm9tVGFibGUocmVzLCBJTkZPLCBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgLy8gZG8gbm90aGluZywgbGVmdCB0aGVtIG51bGw7CisgICAgICAgICAgICAgICAgc2V0dGluZ3MgPSBkYXRhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzLmdldEtleSgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIERhdGFNYXAgZ2V0SW5mbygpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmZvID09IG51bGwgPyBudWxsIDogbmV3IFVUYWJsZVJlc291cmNlKGluZm8pOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEl0ZXJhdG9yIGdldFNldHRpbmdzSXRlcmF0b3IoKSB7CisgICAgICAgICAgICBhc3NlcnRfaXMgKHNldHRpbmdzLmdldFR5cGUoKSA9PSBJQ1VSZXNvdXJjZUJ1bmRsZS5BUlJBWSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yQWRhcHRlcihzZXR0aW5ncyl7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBwcmVwYXJlTmV4dChJQ1VSZXNvdXJjZUJ1bmRsZSBuZXh0UmVzKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVVGFibGVSZXNvdXJjZShuZXh0UmVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEl0ZXJhdG9yIGdldERhdGFJdGVyYXRvcigpIHsKKyAgICAgICAgICAgIC8vIHVuZm9ydHVuYXRlbHksCisgICAgICAgICAgICBhc3NlcnRfaXMgKGRhdGEuZ2V0VHlwZSgpID09IElDVVJlc291cmNlQnVuZGxlLkFSUkFZIAorICAgICAgICAgICAgICAgICB8fCBkYXRhLmdldFR5cGUoKSA9PSBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkcpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvckFkYXB0ZXIoZGF0YSl7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBwcmVwYXJlTmV4dChJQ1VSZXNvdXJjZUJ1bmRsZSBuZXh0UmVzKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVQXJyYXlSZXNvdXJjZShoZWFkZXIsIG5leHRSZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFVUYWJsZVJlc291cmNlIGltcGxlbWVudHMgRGF0YU1hcHsKKyAgICAgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSByZXM7CisKKyAgICAgICAgVVRhYmxlUmVzb3VyY2UoSUNVUmVzb3VyY2VCdW5kbGUgdGhlUmVzKXsKKyAgICAgICAgICAgIHJlcyA9IHRoZVJlczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZyhTdHJpbmcga2V5KSB7CisgICAgICAgICAgICBTdHJpbmcgdDsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB0ID0gcmVzLmdldFN0cmluZyhrZXkpOworICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHQgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0T2JqZWN0KFN0cmluZyBrZXkpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHJlcy5nZXQoa2V5KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBVQXJyYXlSZXNvdXJjZSBpbXBsZW1lbnRzIERhdGFNYXB7CisgICAgICAgIHByaXZhdGUgTWFwIHRoZU1hcDsgCisgICAgICAgIFVBcnJheVJlc291cmNlKElDVVJlc291cmNlQnVuZGxlIHRoZUhlYWRlciwgSUNVUmVzb3VyY2VCdW5kbGUgdGhlRGF0YSkgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcnsKKyAgICAgICAgICAgIGFzc2VydF9pcyAodGhlSGVhZGVyICE9IG51bGwgJiYgdGhlRGF0YSAhPSBudWxsKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGhlYWRlcjsKKyAgICAgICAgIAorICAgICAgICAgICAgaGVhZGVyID0gZ2V0U3RyaW5nQXJyYXlIZWxwZXIodGhlSGVhZGVyKTsKKyAgICAgICAgICAgIGlmICh0aGVEYXRhLmdldFNpemUoKSAhPSBoZWFkZXIubGVuZ3RoKSAKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGF0YU1vZHVsZUZvcm1hdEVycm9yKCJUaGUgY291bnQgb2YgSGVhZGVyIGFuZCBEYXRhIGlzIG1pc21hdGNoLiIpOworICAgICAgICAgICAgdGhlTWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGVhZGVyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYodGhlRGF0YS5nZXRUeXBlKCk9PUlDVVJlc291cmNlQnVuZGxlLkFSUkFZKXsKKyAgICAgICAgICAgICAgICAgICAgdGhlTWFwLnB1dChoZWFkZXJbaV0sIHRoZURhdGEuZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZih0aGVEYXRhLmdldFR5cGUoKT09SUNVUmVzb3VyY2VCdW5kbGUuU1RSSU5HKXsKKyAgICAgICAgICAgICAgICAgICAgdGhlTWFwLnB1dChoZWFkZXJbaV0sIHRoZURhdGEuZ2V0U3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGF0YU1vZHVsZUZvcm1hdEVycm9yKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZGF0YSEiKTsgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKFN0cmluZyBrZXkpIHsKKyAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKXRoZU1hcC5nZXQoa2V5KTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGdldE9iamVjdChTdHJpbmcga2V5KSB7CisgICAgICAgICAgICByZXR1cm4gdGhlTWFwLmdldChrZXkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmE4ZTQzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSw1MSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5jb21wcmVzc2lvbi5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0LlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnNlYXJjaC5TZWFyY2hUZXN0IiwgLy8gbm90IGEgZ3JvdXAKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zaGFwaW5nLkFyYWJpY1NoYXBpbmdSZWdUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhci5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZS5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXIuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5pdGVyYXRvci5UZXN0VUNoYXJhY3Rlckl0ZXJhdG9yIiwgLy8gbm90IGEgZ3JvdXAKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5iaWdkZWMuRGlhZ0JpZ0RlY2ltYWwiLCAvLyBub3QgYSBncm91cAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmltcGwuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcC5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC50aW1lc2NhbGUuVGVzdEFsbCIsCisJCQkJICAiY29tLmlibS5pY3UuZGV2LnRlc3QuY2hhcnNldGRldC5UZXN0Q2hhcnNldERldGVjdG9yIiwKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QuY2hhcnNldC5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuU2VyaWFsaXphYmxlVGVzdCIgLy8gKmlzKiBhIGdyb3VwCisvLyNlbmRpZgorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAiQWxsIHRlc3RzIGluIElDVSIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FICA9ICJJQ1UiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RCb2lsZXJwbGF0ZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RCb2lsZXJwbGF0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTcxNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEJvaWxlcnBsYXRlLmphdmEKQEAgLTAsMCArMSwxOTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5Db25zdHJ1Y3RvcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBUbyB1c2UsIG92ZXJyaWRlIHRoZSBhYnN0cmFjdCBhbmQgdGhlIHByb3RlY3RlZCBtZXRob2RzIGFzIG5lY2Vzc2FyeS4KKyAqIFRlc3RzIGJvaWxlcnBsYXRlIGludmFyaWFudHM6CisgKiA8YnI+YS5lcXVhbHMoYSkKKyAqIDxicj4hYS5lcXVhbHMobnVsbCkKKyAqIDxicj5pZiBhLmVxdWFscyhiKSB0aGVuIAorICogPGJyPigxKSBhLmhhc2hDb2RlKCkgPT0gYi5oYXNoQ29kZSAgLy8gbm90ZTogdGhlIHJldmVyc2UgaXMgbm90IG5lY2Vzc2FyaWx5IHRydWUuCisgKiA8YnI+KDIpIGEgZnVuY3Rpb25zIGluIGFsbCBhc3BlY3RzIGFzIGVxdWl2YWxlbnQgdG8gYgorICogPGJyPigzKSBiLmVxdWFscyhhKQorICogPGJyPmlmIGIgPSBjbG9uZShhKQorICogPGJyPigxKSBiLmVxdWFscyhhKSwgYW5kIHRoZSBhYm92ZSBjaGVja3MKKyAqIDxicj4oMikgaWYgbXV0YWJsZShhKSwgdGhlbiBhLmNsb25lKCkgIT0gYSAvLyBub3RlOiB0aGUgcmV2ZXJzZSBpcyBub3QgbmVjZXNzYXJpbHkgdHJ1ZS4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFRlc3RCb2lsZXJwbGF0ZSBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIFRlc3RNYWluKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIExpc3QgbGlzdCA9IG5ldyBMaW5rZWRMaXN0KCk7CisgICAgICAgIHdoaWxlIChfYWRkVGVzdE9iamVjdChsaXN0KSkgeworICAgICAgICB9CisgICAgICAgIE9iamVjdFtdIHRlc3RBcnJheSA9IGxpc3QudG9BcnJheSgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RBcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgLy9sb2dsbigiVGVzdGluZyAiICsgaSk7CisgICAgICAgICAgICBPYmplY3QgYSA9IHRlc3RBcnJheVtpXTsKKyAgICAgICAgICAgIGludCBhSGFzaCA9IGEuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcXVhbGl0eS9OdWxsIGludmFyaWFudCBmYWlsczogIiArIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTZWxmLUVxdWFsaXR5IGludmFyaWFudCBmYWlsczogIiArIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgT2JqZWN0IGI7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKF9jYW5DbG9uZShhKSkgeworICAgICAgICAgICAgICAgIGIgPSBfY2xvbmUoYSk7CisgICAgICAgICAgICAgICAgaWYgKGIgPT0gYSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoX2lzTXV0YWJsZShhKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNsb25lL011dGFiaWxpdHkgaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2xvbmUvRXF1YWxpdHkgaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgX2NoZWNrRXF1YWxzKGksIC0xLCBhLCBhSGFzaCwgYik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBqID0gaTsgaiA8IHRlc3RBcnJheS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGIgPSB0ZXN0QXJyYXlbal07CisgICAgICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGIpKSBfY2hlY2tFcXVhbHMoaSwgaiwgYSwgYUhhc2gsIGIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF9jaGVja0VxdWFscyhpbnQgaSwgaW50IGosIE9iamVjdCBhLCBpbnQgYUhhc2gsIE9iamVjdCBiKSB7CisgICAgICAgIGludCBiSGFzaCA9IGIuaGFzaENvZGUoKTsKKyAgICAgICAgaWYgKCFiLmVxdWFscyhhKSkgZXJybG4oIkVxdWFsaXR5L1N5bW1ldHJ5IixpLCBqKTsKKyAgICAgICAgaWYgKGFIYXNoICE9IGJIYXNoKSBlcnJsbigiRXF1YWxpdHkvSGFzaCIsaSwgaik7CisgICAgICAgIGlmIChhICE9IGIgJiYgIV9oYXNTYW1lQmVoYXZpb3IoYSxiKSkgeworICAgICAgICAgICAgZXJybG4oIkVxdWFsaXR5L0VxdWl2YWxlbmNlIixpLCBqKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlcnJsbihTdHJpbmcgdGl0bGUsIGludCBpLCBpbnQgaikgeworICAgICAgICBpZiAoaiA8IDApIGVycmxuKCJDbG9uZS8iICsgdGl0bGUgKyAiaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgIGVsc2UgZXJybG4odGl0bGUgKyAiaW52YXJpYW50IGZhaWxzOiAiICsgaSArICIsIiArIGopOworICAgIH0KKworICAgIC8qKgorICAgICAqIE11c3QgYmUgb3ZlcnJpZGRlbiB0byBjaGVjayB3aGV0aGVyIGEgYW5kIGJlIGJlaGF2ZSB0aGUgc2FtZQorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIF9oYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHVudGlsIGZhbHNlIGlzIHJldHVybmVkLgorICAgICAqIFRoZSByZXN1bHRzIHNob3VsZCBiZSBhIG1peHR1cmUgb2YgZGlmZmVyZW50IG9iamVjdHMgb2YgdGhlIHNhbWUKKyAgICAgKiB0eXBlOiBzb21lIGVxdWFsIGFuZCBtb3N0IG5vdCBlcXVhbC4KKyAgICAgKiBUaGUgc3ViY2xhc3NlciBjb250cm9scyBob3cgbWFueSBhcmUgcHJvZHVjZWQgKHJlY29tbWVuZCBhYm91dCAKKyAgICAgKiAxMDAsIGJhc2VkIG9uIHRoZSBzaXplIG9mIHRoZSBvYmplY3RzIGFuZCBob3cgY29zdGx5IHRoZXkgYXJlCisgICAgICogdG8gcnVuIHRoaXMgdGVzdCBvbi4gVGhlIHJ1bm5pbmcgdGltZSBncm93cyB3aXRoIHRoZSBzcXVhcmUgb2YgdGhlCisgICAgICogY291bnQuCisgICAgICogTk9URTogdGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGNhbGxlZCBpZiB0aGUgb2JqZWN0cyB0ZXN0IGFzIGVxdWFsLgorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIF9hZGRUZXN0T2JqZWN0KExpc3QgYyk7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgaWYgdGhlIHRlc3RlZCBvYmplY3RzIGFyZSBtdXRhYmxlLgorICAgICAqIDxicj5TaW5jZSBKYXZhIGRvZXNuJ3QgdGVsbCB1cywgd2UgbmVlZCBhIGZ1bmN0aW9uIHRvIHRlbGwgaWYgc28uCisgICAgICogVGhlIGRlZmF1bHQgaXMgdHJ1ZSwgc28gbXVzdCBiZSBvdmVycmlkZGVuIGlmIG5vdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfaXNNdXRhYmxlKE9iamVjdCBhKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBpZiB0aGUgdGVzdGVkIG9iamVjdHMgY2FuIGJlIGNsb25lZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfY2FuQ2xvbmUoT2JqZWN0IGEpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIC8qKgorICAgICAqIFByb2R1Y2UgYSBjbG9uZSBvZiB0aGUgb2JqZWN0LiBUcmllcyB0d28gbWV0aG9kcworICAgICAqIChhKSBjbG9uZQorICAgICAqIChiKSBjb25zdHJ1Y3RvcgorICAgICAqIE11c3QgYmUgb3ZlcnJpZGRlbiBpZiBfY2FuQ2xvbmUgcmV0dXJucyB0cnVlIGFuZAorICAgICAqIHRoZSBhYm92ZSBtZXRob2RzIGRvbid0IHdvcmsuCisgICAgICogQHBhcmFtIGEKKyAgICAgKiBAcmV0dXJuIGNsb25lCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdCBfY2xvbmUoT2JqZWN0IGEpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBDbGFzcyBhQ2xhc3MgPSBhLmdldENsYXNzKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBNZXRob2QgY2xvbmVyID0gYUNsYXNzLmdldE1ldGhvZCgiY2xvbmUiLCBudWxsKTsKKyAgICAgICAgICAgIHJldHVybiBjbG9uZXIuaW52b2tlKGEsbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBDb25zdHJ1Y3RvciBjb25zdHJ1Y3RvciA9IGFDbGFzcy5nZXRDb25zdHJ1Y3RvcihuZXcgQ2xhc3NbXSB7YUNsYXNzfSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3IubmV3SW5zdGFuY2UobmV3IE9iamVjdFtde2F9KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiBVdGlsaXRpZXMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdmVyaWZ5U2V0c0lkZW50aWNhbChBYnN0cmFjdFRlc3RMb2cgaGVyZSwgVW5pY29kZVNldCBzZXQxLCBVbmljb2RlU2V0IHNldDIpIHsKKyAgICAgICAgaWYgKHNldDEuZXF1YWxzKHNldDIpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaGVyZS5lcnJsbigiU2V0cyBkaWZmZXI6Iik7CisgICAgICAgIGhlcmUuZXJybG4oIlVuaWNvZGVNYXAgLSBIYXNoTWFwIik7CisgICAgICAgIGhlcmUuZXJybG4obmV3IFVuaWNvZGVTZXQoc2V0MSkucmVtb3ZlQWxsKHNldDIpLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIGhlcmUuZXJybG4oIkhhc2hNYXAgLSBVbmljb2RlTWFwIik7CisgICAgICAgIGhlcmUuZXJybG4obmV3IFVuaWNvZGVTZXQoc2V0MikucmVtb3ZlQWxsKHNldDEpLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdmVyaWZ5U2V0c0lkZW50aWNhbChBYnN0cmFjdFRlc3RMb2cgaGVyZSwgU2V0IHZhbHVlczEsIFNldCB2YWx1ZXMyKSB7CisgICAgICAgIGlmICh2YWx1ZXMxLmVxdWFscyh2YWx1ZXMyKSkgcmV0dXJuIHRydWU7CisgICAgICAgIFNldCB0ZW1wOworICAgICAgICBoZXJlLmVycmxuKCJWYWx1ZXMgZGlmZmVyOiIpOworICAgICAgICBoZXJlLmVycmxuKCJVbmljb2RlTWFwIC0gSGFzaE1hcCIpOworICAgICAgICB0ZW1wID0gbmV3IFRyZWVTZXQodmFsdWVzMSk7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKHZhbHVlczIpOworICAgICAgICBoZXJlLmVycmxuKHNob3codGVtcCkpOworICAgICAgICBoZXJlLmVycmxuKCJIYXNoTWFwIC0gVW5pY29kZU1hcCIpOworICAgICAgICB0ZW1wID0gbmV3IFRyZWVTZXQodmFsdWVzMik7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKHZhbHVlczEpOworICAgICAgICBoZXJlLmVycmxuKHNob3codGVtcCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNob3coTWFwIG0pIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoa2V5ICsgIj0+IiArIG0uZ2V0KGtleSkgKyAiXHJcbiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGdldFNldChNYXAgbSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWwgPSBtLmdldChrZXkpOworICAgICAgICAgICAgaWYgKCF2YWwuZXF1YWxzKHZhbHVlKSkgY29udGludWU7CisgICAgICAgICAgICByZXN1bHQuYWRkKCgoSW50ZWdlcilrZXkpLmludFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNob3coQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoaXQubmV4dCgpICsgIlxyXG4iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdERhdGFNb2R1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0RGF0YU1vZHVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMjg2NjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdERhdGFNb2R1bGUuamF2YQpAQCAtMCwwICsxLDEwNiBAQAorLy8jI2hlYWRlcgorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0OworCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworCisvKioKKyAqIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIHRlc3QgZGF0YSBkZXNjcmliZWQgaW4gYSBmaWxlLgorICogCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgVGVzdERhdGFNb2R1bGUgeworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIHRlc3QgZGF0YSBtb2R1bGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgYWRkaXRpb25hbCBkYXRhIHJlbGF0ZWQgdG8gdGhlIG1vZHVsZSwgZS5nLiBERVNDUklQVElPTiwKKyAgICAgKiBnbG9iYWwgc2V0dGluZ3MuICBNaWdodCBiZSBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBEYXRhTWFwIGdldEluZm8oKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFRlc3REYXRhIGNvcnJlc3BvbmRpbmcgdG8gbmFtZSwgb3IgbnVsbCBpZiBuYW1lIG5vdAorICAgICAqIGZvdW5kIGluIHRoaXMgbW9kdWxlLiAgVGhyb3cgZXJyb3IgaWYgbmFtZSBpcyBub3QgZm91bmQuICAKKyAgICAgKiBAdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcgorICAgICAqLworICAgIHB1YmxpYyBUZXN0RGF0YSBnZXRUZXN0RGF0YShTdHJpbmcgbmFtZSkgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcjsKKworICAgIC8qKgorICAgICAqIEByZXR1cm4gSXRlcmF0b3I8VGVzdERhdGE+CisgICAgICovCisgICAgcHVibGljIEl0ZXJhdG9yIGdldFRlc3REYXRhSXRlcmF0b3IoKTsKKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRmFjdG9yeXsKKworICAgICAgICBzdGF0aWMgZmluYWwgVGVzdERhdGFNb2R1bGUgZ2V0KFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZU1vZHVsZShiYXNlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIERhdGFNb2R1bGVGb3JtYXRFcnJvciBleHRlbmRzIEV4Y2VwdGlvbnsKKyAgICAgICAgcHVibGljIERhdGFNb2R1bGVGb3JtYXRFcnJvcihTdHJpbmcgbXNnKXsKKyAgICAgICAgICAgIHN1cGVyKG1zZyk7CisgICAgICAgIH0KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIHB1YmxpYyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoU3RyaW5nIG1zZywgVGhyb3dhYmxlIGNhdXNlKXsKKyAgICAgICAgICAgIHN1cGVyKG1zZywgY2F1c2UpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoVGhyb3dhYmxlIGNhdXNlKSB7CisgICAgICAgICAgICBzdXBlcihjYXVzZSk7CisgICAgICAgIH0KKy8vI2VuZGlmCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYSBzaW5nbGUgdGVzdCBpbiB0aGUgbW9kdWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIFRlc3REYXRhIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXQgYWRkaXRpb25hbCBkYXRhIHJlbGF0ZWQgdG8gdGhlIHRlc3QgZGF0YSwgZS5nLiBERVNDUklQVElPTiwKKyAgICAgICAgICogZ2xvYmFsIHNldHRpbmdzLiAgTWlnaHQgYmUgbnVsbC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBEYXRhTWFwIGdldEluZm8oKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEByZXR1cm4gSXRlcmF0b3I8RGF0YU1hcD4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBJdGVyYXRvciBnZXRTZXR0aW5nc0l0ZXJhdG9yKCk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcmV0dXJuIEl0ZXJhdG9yPERhdGFNYXA+CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0RGF0YUl0ZXJhdG9yKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFwLWxpa2UgaW50ZXJmYWNlIGZvciBhY2Nlc3Npbmcga2V5LXZhbHVlIHBhaXJzIGJ5IGtleS4KKyAgICAgKiBJZiB0aGUgdmF1bGUgaXMgbm90IGZvdW5kIGJ5IGdpdmVuIGtleSwgcmV0dXJuIG51bGwuIAorICAgICAqIFRoZSBiZWhhdmlvciBpcyBhbmFsb2dvdXMgdGhlIGdldCgpIG1ldGhvZCBvZiB0aGUgTWFwIGludGVyZmFjZS4KKyAgICAgKiAKKyAgICAgKiBAYXV0aG9yIFJheW1vbmQgWWFuZworICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgRGF0YU1hcCB7CisvLyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiAgICBpc0RlZmluZWQoU3RyaW5nIGtleSk7CisvLworICAgIHB1YmxpYyBhYnN0cmFjdCBPYmplY3QgICAgIGdldE9iamVjdChTdHJpbmcga2V5KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nICAgICBnZXRTdHJpbmcoU3RyaW5nIGtleSk7CisvLyAgICBwdWJsaWMgYWJzdHJhY3QgY2hhciAgICAgICBnZXRDaGFyKFN0cmluZyBrZXkpOworLy8gICAgcHVibGljIGFic3RyYWN0IGludCAgICAgICAgZ2V0SW50KFN0cmluZyBrZXkpOworLy8gICAgcHVibGljIGFic3RyYWN0IGJ5dGUgICAgICAgZ2V0Qnl0ZShTdHJpbmcga2V5KTsKKy8vICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuICAgIGdldEJvb2xlYW4oU3RyaW5nIGtleSk7CisvLworLy8gICAgcHVibGljIGFic3RyYWN0IE9iamVjdFtdICAgZ2V0T2JqZWN0QXJyYXkoU3RyaW5nIGtleSk7CisvLyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nW10gICBnZXRTdHJpbmdBcnJheShTdHJpbmcga2V5KTsKKy8vICAgIHB1YmxpYyBhYnN0cmFjdCBjaGFyW10gICAgIGdldENoYXJBcnJheShTdHJpbmcga2V5KTsKKy8vICAgIHB1YmxpYyBhYnN0cmFjdCBpbnRbXSAgICAgIGdldEludEFycmF5KFN0cmluZyBrZXkpOworLy8gICAgcHVibGljIGFic3RyYWN0IGJ5dGVbXSAgICAgZ2V0Qnl0ZUFycmF5KFN0cmluZyBrZXkpOworLy8gICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW5bXSAgZ2V0Qm9vbGVhbkFycmF5KFN0cmluZyBrZXkpOworICAgIH0KK30KKyAgICAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDJjOWM2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhCkBAIC0wLDAgKzEsMTc4MiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLldyaXRlcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5GaWVsZDsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjIGltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisvLyNlbmRpZgorLyoqCisgKiBUZXN0Rm13ayBpcyBhIGJhc2UgY2xhc3MgZm9yIHRlc3RzIHRoYXQgY2FuIGJlIHJ1biBjb252ZW5pZW50bHkgZnJvbSB0aGUKKyAqIGNvbW1hbmQgbGluZSBhcyB3ZWxsIGFzIHVuZGVyIHRoZSBKYXZhIHRlc3QgaGFybmVzcy4KKyAqIDxwPgorICogU3ViLWNsYXNzZXMgaW1wbGVtZW50IGEgc2V0IG9mIG1ldGhvZHMgbmFtZWQgVGVzdCA8c29tZXRoaW5nPi4gRWFjaCBvZiB0aGVzZQorICogbWV0aG9kcyBwZXJmb3JtcyBzb21lIHRlc3QuIFRlc3QgbWV0aG9kcyBzaG91bGQgaW5kaWNhdGUgZXJyb3JzIGJ5IGNhbGxpbmcKKyAqIGVpdGhlciBlcnIgb3IgZXJybG4uIFRoaXMgd2lsbCBpbmNyZW1lbnQgdGhlIGVycm9yQ291bnQgZmllbGQgYW5kIG1heQorICogb3B0aW9uYWxseSBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGxvZy4gRGVidWdnaW5nIGluZm9ybWF0aW9uIG1heSBhbHNvIGJlCisgKiBhZGRlZCB0byB0aGUgbG9nIHZpYSB0aGUgbG9nIGFuZCBsb2dsbiBtZXRob2RzLiBUaGVzZSBtZXRob2RzIHdpbGwgYWRkIHRoZWlyCisgKiBhcmd1bWVudHMgdG8gdGhlIGxvZyBvbmx5IGlmIHRoZSB0ZXN0IGlzIGJlaW5nIHJ1biBpbiB2ZXJib3NlIG1vZGUuCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0Rm13ayBleHRlbmRzIEFic3RyYWN0VGVzdExvZyB7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTIwMDMgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCB0aW1lIHpvbmUgZm9yIGFsbCBvZiBvdXIgdGVzdHMuIFVzZWQgaW4gVGFyZ2V0LnJ1bigpOworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFRpbWVab25lIGRlZmF1bHRUaW1lWm9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKworICAgIC8qKgorICAgICAqIFRoZSBkZWZhdWx0IGxvY2FsZSB1c2VkIGZvciBhbGwgb2Ygb3VyIHRlc3RzLiBVc2VkIGluIFRhcmdldC5ydW4oKTsKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBMb2NhbGUgZGVmYXVsdExvY2FsZSA9IExvY2FsZS5VUzsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdEZtd2tFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24geworICAgICAgICBUZXN0Rm13a0V4Y2VwdGlvbihTdHJpbmcgbXNnKSB7CisgICAgICAgICAgICBzdXBlcihtc2cpOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUV4Y2VwdGlvbihUaHJvd2FibGUgZSl7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBUaHJvd2FibGUgZXggPSBlLmdldENhdXNlKCk7CisvLyNlbHNlCisvLyMjICAgIFRocm93YWJsZSBleCA9IG51bGw7CisvLyNlbmRpZgorICAgICAgICBpZihleD09bnVsbCl7CisgICAgICAgICAgICBleCA9IGU7CisgICAgICAgIH0KKyAgICAgICAgaWYoZXggaW5zdGFuY2VvZiBFeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IpeworICAgICAgICAgICAgZXggPSAoKEV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvcilleCkuZ2V0RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIG1zZyA9IGV4LmdldE1lc3NhZ2UoKTsKKyAgICAgICAgaWYobXNnPT1udWxsKXsKKyAgICAgICAgICAgIG1zZyA9ICIiOworICAgICAgICB9CisgICAgICAgIC8vU3lzdGVtLmVyci5wcmludGxuKCJURiBoYW5kbGVFeGNlcHRpb24gbXNnOiAiICsgbXNnKTsKKyAgICAgICAgaWYgKGV4IGluc3RhbmNlb2YgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHx8IGV4IGluc3RhbmNlb2YgTm9DbGFzc0RlZkZvdW5kRXJyb3IgfHwgbXNnLmluZGV4T2YoImphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24iKT49MCkgeworICAgICAgICAgICAgaWYgKHBhcmFtcy53YXJuaW5ncyB8fCBwYXJhbXMubm9kYXRhKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKG1zZyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5ub3Rocm93KSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChwYXJhbXMubm90aHJvdykgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLyB1c2UgdGhpcyBpbnN0ZWFkIG9mIG5ldyByYW5kb20gc28gd2UgZ2V0IGEgY29uc2lzdGVudCBzZWVkCisgICAgLy8gZm9yIG91ciB0ZXN0cworICAgIHByb3RlY3RlZCBSYW5kb20gY3JlYXRlUmFuZG9tKCkgeworICAgICAgICByZXR1cm4gbmV3IFJhbmRvbShwYXJhbXMuc2VlZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSB0ZXN0IHRoYXQgaGFzIG5vIHRlc3QgbWV0aG9kcyBpdHNlbGYsIGJ1dCBpbnN0ZWFkIHJ1bnMgb3RoZXIgdGVzdHMuCisgICAgICogCisgICAgICogVGhpcyBvdmVycmlkZXMgbWV0aG9kcyBhcmUgZ2V0VGFyZ2V0cyBhbmQgZ2V0U3VidGVzdCBmcm9tIFRlc3RGbXdrLgorICAgICAqIAorICAgICAqIElmIHlvdSB3YW50IHRoZSBkZWZhdWx0IGJlaGF2aW9yLCBwYXNzIGFuIGFycmF5IG9mIGNsYXNzIG5hbWVzIGFuZCBhbgorICAgICAqIG9wdGlvbmFsIGRlc2NyaXB0aW9uIHRvIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIG5hbWVkIGNsYXNzZXMgbXVzdCBleHRlbmQKKyAgICAgKiBUZXN0Rm13ay4gSWYgYSBwcm92aWRlZCBuYW1lIGRvZXNuJ3QgaW5jbHVkZSBhICIuIiwgcGFja2FnZSBuYW1lIGlzCisgICAgICogcHJlZml4ZWQgdG8gaXQgKHRoZSBwYWNrYWdlIG9mIHRoZSBjdXJyZW50IHRlc3QgaXMgdXNlZCBpZiBub25lIHdhcworICAgICAqIHByb3ZpZGVkIGluIHRoZSBjb25zdHJ1Y3RvcikuIFRoZSByZXN1bHRpbmcgZnVsbCBuYW1lIGlzIHVzZWQgdG8KKyAgICAgKiBpbnN0YW50aWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQ2xhc3MgbmFtZXMgYXJlIHJlc29sdmVkIHRvIGNsYXNzZXMgd2hlbiBnZXRUYXJnZXRzIG9yIGdldFN1YnRlc3QgaXMKKyAgICAgKiBjYWxsZWQuIFRoaXMgYWxsb3dzIGluc3RhbmNlcyBvZiBUZXN0R3JvdXAgdG8gYmUgY29tcGlsZWQgYW5kIHJ1biB3aXRob3V0CisgICAgICogYWxsIHRoZSB0YXJnZXRzIHRoZXkgd291bGQgbm9ybWFsbHkgaW52b2tlIGJlaW5nIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZGVmYXVsdFBhY2thZ2U7CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZXM7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGRlc2NyaXB0aW9uOworCisgICAgICAgIHByaXZhdGUgQ2xhc3NbXSB0ZXN0czsgLy8gZGVmZXJyZWQgaW5pdAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgZGVmYXVsdCBwYWNrYWdlIG5hbWUgYW5kIGEgbGlzdCBvZiBjbGFzcworICAgICAgICAgKiBuYW1lcy4gQWRvcHRzIGFuZCBtb2RpZmllcyB0aGUgY2xhc3NuYW1lIGxpc3QKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBUZXN0R3JvdXAoU3RyaW5nIGRlZmF1bHRQYWNrYWdlLCBTdHJpbmdbXSBjbGFzc25hbWVzLAorICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgaWYgKGNsYXNzbmFtZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImNsYXNzbmFtZXMgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGVmYXVsdFBhY2thZ2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRQYWNrYWdlID0gZ2V0Q2xhc3MoKS5nZXRQYWNrYWdlKCkuZ2V0TmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdFBhY2thZ2UgPSBkZWZhdWx0UGFja2FnZSArICIuIjsKKworICAgICAgICAgICAgdGhpcy5kZWZhdWx0UGFja2FnZSA9IGRlZmF1bHRQYWNrYWdlOworICAgICAgICAgICAgdGhpcy5uYW1lcyA9IGNsYXNzbmFtZXM7CisgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIGxpc3Qgb2YgY2xhc3MgbmFtZXMgYW5kIGEgZGVzY3JpcHRpb24sIGFuZAorICAgICAgICAgKiB1c2VzIHRoZSBwYWNrYWdlIGZvciB0aGlzIGNsYXNzIGFzIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVGVzdEdyb3VwKFN0cmluZ1tdIGNsYXNzbmFtZXMsIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgdGhpcyhudWxsLCBjbGFzc25hbWVzLCBkZXNjcmlwdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIGxpc3Qgb2YgY2xhc3MgbmFtZXMsIGFuZCB1c2VzIHRoZSBwYWNrYWdlCisgICAgICAgICAqIGZvciB0aGlzIGNsYXNzIGFzIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVGVzdEdyb3VwKFN0cmluZ1tdIGNsYXNzbmFtZXMpIHsKKyAgICAgICAgICAgIHRoaXMobnVsbCwgY2xhc3NuYW1lcywgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFRhcmdldCBnZXRUYXJnZXRzKFN0cmluZyB0YXJnZXROYW1lKSB7CisgICAgICAgICAgICBUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmICh0YXJnZXROYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hJbml0KCk7IC8vIGhtbW0sIHdhbnQgdG8gZ2V0IHN1YnRlc3Qgd2l0aG91dCBpbml0aWFsaXppbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCB0ZXN0cworCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVGVzdEZtd2sgdGVzdCA9IGdldFN1YnRlc3QodGFyZ2V0TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRlc3QubmV3IENsYXNzVGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSB0aGlzLm5ldyBUYXJnZXQodGFyZ2V0TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChUZXN0Rm13a0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRoaXMubmV3IFRhcmdldCh0YXJnZXROYW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5kb1JlY3Vyc2UoKSkgeworICAgICAgICAgICAgICAgIGZpbmlzaEluaXQoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGdyb3VwT25seSA9IHBhcmFtcy5kb1JlY3Vyc2VHcm91cHNPbmx5KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG5hbWVzLmxlbmd0aDsgLS1pID49IDA7KSB7CisgICAgICAgICAgICAgICAgICAgIFRhcmdldCBuZXdUYXJnZXQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNscyA9PSBudWxsKSB7IC8vIGhhY2sgbm8gd2FybmluZyBmb3IgbWlzc2luZyB0ZXN0cworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy53YXJuaW5ncykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGFyZ2V0ID0gdGhpcy5uZXcgVGFyZ2V0KG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RGbXdrIHRlc3QgPSBnZXRTdWJ0ZXN0KGksIGdyb3VwT25seSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGFyZ2V0ID0gdGVzdC5uZXcgQ2xhc3NUYXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwT25seSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYXJnZXQgPSB0aGlzLm5ldyBFbXB0eVRhcmdldChuYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGFyZ2V0ID0gdGhpcy5uZXcgVGFyZ2V0KG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1RhcmdldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYXJnZXQuc2V0TmV4dCh0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3VGFyZ2V0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBUZXN0Rm13ayBnZXRTdWJ0ZXN0KFN0cmluZyB0ZXN0TmFtZSkgdGhyb3dzIFRlc3RGbXdrRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGZpbmlzaEluaXQoKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChuYW1lc1tpXS5lcXVhbHNJZ25vcmVDYXNlKHRlc3ROYW1lKSkgeyAvLyBhbGxvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlLWluc2Vuc2l0aXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoaW5nCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRTdWJ0ZXN0KGksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdEZtd2tFeGNlcHRpb24odGVzdE5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBUZXN0Rm13ayBnZXRTdWJ0ZXN0KGludCBpLCBib29sZWFuIGdyb3VwT25seSkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gdGVzdHNbaV07CisgICAgICAgICAgICBpZiAoY2xzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXBPbmx5ICYmICFUZXN0R3JvdXAuY2xhc3MuaXNBc3NpZ25hYmxlRnJvbShjbHMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFRlc3RGbXdrIHN1YnRlc3QgPSAoVGVzdEZtd2spIGNscy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0LnBhcmFtcyA9IHBhcmFtczsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnRlc3Q7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBmaW5pc2hJbml0KCkgeworICAgICAgICAgICAgaWYgKHRlc3RzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0ZXN0cyA9IG5ldyBDbGFzc1tuYW1lcy5sZW5ndGhdOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5pbmRleE9mKCcuJykgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBkZWZhdWx0UGFja2FnZSArIG5hbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVRlc3RGbXdrLmNsYXNzLmlzQXNzaWduYWJsZUZyb20oY2xzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImNsYXNzICIgKyBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZG9lcyBub3QgZXh0ZW5kIFRlc3RGbXdrIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzW2ldID0gY2xzOworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNbaV0gPSBnZXRDbGFzc1RhcmdldE5hbWUoY2xzKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWF2ZSB0ZXN0c1tpXSBudWxsIGFuZCBuYW1lIGFzIGNsYXNzbmFtZQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgdGFyZ2V0IGlzIGludmFsaWQuCisgICAgICovCisgICAgcHVibGljIGNsYXNzIFRhcmdldCB7CisgICAgICAgIHByaXZhdGUgVGFyZ2V0IG5leHQ7CisgICAgICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgbmFtZTsKKworICAgICAgICBwdWJsaWMgVGFyZ2V0KFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFRhcmdldCBzZXROZXh0KFRhcmdldCBuZXh0KSB7CisgICAgICAgICAgICB0aGlzLm5leHQgPSBuZXh0OworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVGFyZ2V0IGdldE5leHQoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV4dDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAgICAgaW50IGYgPSBmaWx0ZXIoKTsKKyAgICAgICAgICAgIGlmIChmID09IC0xKSB7CisgICAgICAgICAgICAgICAgKytwYXJhbXMuaW52YWxpZENvdW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KGRlZmF1bHRUaW1lWm9uZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLndyaXRlVGVzdEludmFsaWQobmFtZSwgcGFyYW1zLm5vZGF0YSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnB1c2gobmFtZSwgZ2V0RGVzY3JpcHRpb24oKSwgZiA9PSAxKTsKKyAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZSgpOworICAgICAgICAgICAgICAgICAgICBwYXJhbXMucG9wKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGludCBmaWx0ZXIoKSB7CisgICAgICAgICAgICByZXR1cm4gcGFyYW1zLmZpbHRlcihuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgY2xhc3MgRW1wdHlUYXJnZXQgZXh0ZW5kcyBUYXJnZXQgeworICAgICAgICBwdWJsaWMgRW1wdHlUYXJnZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBNZXRob2RUYXJnZXQgZXh0ZW5kcyBUYXJnZXQgeworICAgICAgICBwcml2YXRlIE1ldGhvZCB0ZXN0TWV0aG9kOworCisgICAgICAgIHB1YmxpYyBNZXRob2RUYXJnZXQoU3RyaW5nIG5hbWUsIE1ldGhvZCBtZXRob2QpIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICAgICAgdGVzdE1ldGhvZCA9IG1ldGhvZDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIHRlc3RNZXRob2QgIT0gbnVsbCAmJiB2YWxpZGF0ZU1ldGhvZChuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0TWV0aG9kRGVzY3JpcHRpb24obmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgICAgIGlmIChwYXJhbXMuaW5Eb2NNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBub3RoaW5nIHRvIGV4ZWN1dGUKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIXBhcmFtcy5zdGFjay5pbmNsdWRlZCkgeworICAgICAgICAgICAgICAgICsrcGFyYW1zLmludmFsaWRDb3VudDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0W10gTk9fQVJHUyA9IG5ldyBPYmplY3RbMF07CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgKytwYXJhbXMudGVzdENvdW50OworICAgICAgICAgICAgICAgICAgICBpbml0KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RNZXRob2QuaW52b2tlKFRlc3RGbXdrLnRoaXMsIE5PX0FSR1MpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2FuJ3QgYWNjZXNzIHRlc3QgbWV0aG9kICIgKyB0ZXN0TWV0aG9kLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZSl7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUV4Y2VwdGlvbihlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgICAgIH1jYXRjaCAoTm9DbGFzc0RlZkZvdW5kRXJyb3IgZSkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVFeGNlcHRpb24oZSk7CisgICAgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIC8qZXJybG4oIkVuY291bnRlcmVkOiAiKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZShTeXN0ZW0uZXJyKTsKKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RhY2tUcmFjZShJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBicyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIFByaW50U3RyZWFtIHBzID0gbmV3IFByaW50U3RyZWFtKGJzKTsKKyAgICAgICAgICAgIGUuZ2V0VGFyZ2V0RXhjZXB0aW9uKCkucHJpbnRTdGFja1RyYWNlKHBzKTsKKyAgICAgICAgICAgIHJldHVybiBicy50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGNsYXNzIENsYXNzVGFyZ2V0IGV4dGVuZHMgVGFyZ2V0IHsKKyAgICAgICAgU3RyaW5nIHRhcmdldE5hbWU7CisKKyAgICAgICAgcHVibGljIENsYXNzVGFyZ2V0KCkgeworICAgICAgICAgICAgdGhpcyhudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBDbGFzc1RhcmdldChTdHJpbmcgdGFyZ2V0TmFtZSkgeworICAgICAgICAgICAgc3VwZXIoZ2V0Q2xhc3NUYXJnZXROYW1lKFRlc3RGbXdrLnRoaXMuZ2V0Q2xhc3MoKSkpOworICAgICAgICAgICAgdGhpcy50YXJnZXROYW1lID0gdGFyZ2V0TmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RGbXdrLnRoaXMudmFsaWRhdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdEZtd2sudGhpcy5nZXREZXNjcmlwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAgICAgcGFyYW1zLmluZGVudExldmVsKys7CisgICAgICAgICAgICBUYXJnZXQgdGFyZ2V0ID0gcmFuZG9taXplKGdldFRhcmdldHModGFyZ2V0TmFtZSkpOworICAgICAgICAgICAgd2hpbGUgKHRhcmdldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnJ1bigpOworICAgICAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldC5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFyYW1zLmluZGVudExldmVsLS07CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFRhcmdldCByYW5kb21pemUoVGFyZ2V0IHQpIHsKKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwgJiYgdC5nZXROZXh0KCkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgIHdoaWxlICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQodCk7CisgICAgICAgICAgICAgICAgICAgIHQgPSB0LmdldE5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBUYXJnZXRbXSBhcnIgPSAoVGFyZ2V0W10pIGxpc3QudG9BcnJheShuZXcgVGFyZ2V0W2xpc3Quc2l6ZSgpXSk7CisKKyAgICAgICAgICAgICAgICBpZiAodHJ1ZSkgeyAvLyB0b2RvIC0gYWRkIHRvIHBhcmFtcz8KKyAgICAgICAgICAgICAgICAgICAgLy8gZGlmZmVyZW50IGp2bXMgcmV0dXJuIGNsYXNzIG1ldGhvZHMgaW4gZGlmZmVyZW50IG9yZGVycywKKyAgICAgICAgICAgICAgICAgICAgLy8gc28gd2Ugc29ydCB0aGVtIChhbHdheXMsIGFuZCB0aGVuIHJhbmRvbWl6ZSB0aGVtLCBzbyB0aGF0CisgICAgICAgICAgICAgICAgICAgIC8vIGZvcmNpbmcgYSBzZWVkIHdpbGwgYWxzbyB3b3JrIGFjcm9zcyBqdm1zKS4KKyAgICAgICAgICAgICAgICAgICAgQXJyYXlzLnNvcnQoYXJyLCBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc29ydCBpbiByZXZlcnNlIG9yZGVyLCBsYXRlciB3ZSBsaW5rIHVwIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yd2FyZCBvcmRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKFRhcmdldCkgcmhzKS5uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29tcGFyZVRvKCgoVGFyZ2V0KSBsaHMpLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICAgICAvLyB0IGlzIG51bGwgdG8gc3RhcnQsIGVuZHMgdXAgYXMgZmlyc3QgZWxlbWVudAorICAgICAgICAgICAgICAgICAgICAvLyAoYXJyW2Fyci5sZW5ndGgtMV0pCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ID0gYXJyW2ldLnNldE5leHQodCk7IC8vIHJlbGluayBpbiBmb3J3YXJkIG9yZGVyCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAocGFyYW1zLnJhbmRvbSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHQgPSBudWxsOyAvLyByZXNldCB0IHRvIG51bGwKKyAgICAgICAgICAgICAgICAgICAgUmFuZG9tIHIgPSBwYXJhbXMucmFuZG9tOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gYXJyLmxlbmd0aDsgLS1pID49IDE7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCA9IHIubmV4dEludChpICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ID0gYXJyW3hdLnNldE5leHQodCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcnJbeF0gPSBhcnJbaV07CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICB0ID0gYXJyWzBdLnNldE5leHQodCk7IC8vIG5ldyBmaXJzdCBlbGVtZW50CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIGJvaWxlcnBsYXRlIGNvZGUgdGhhdCBtYWtlcyBpdCBwb3NzaWJsZQorICAgIC8vIHRvIGFkZCBhIG5ldyB0ZXN0IGJ5IHNpbXBseSBhZGRpbmcgYSBmdW5jdGlvbiB0byBhbiBleGlzdGluZyBjbGFzcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcm90ZWN0ZWQgVGVzdEZtd2soKSB7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhcmd1bWVudHMgaW50byBhIFRlc3RQYXJhbXMgb2JqZWN0IGFuZCBhIGNvbGxlY3Rpb24gb2YgdGFyZ2V0CisgICAgICogcGF0aHMuIElmIHRoZXJlIHdhcyBhbiBlcnJvciBwYXJzaW5nIHRoZSBUZXN0UGFyYW1zLCBwcmludCB1c2FnZSBhbmQgZXhpdAorICAgICAqIHdpdGggLTEuIE90aGVyd2lzZSwgY2FsbCByZXNvbHZlVGFyZ2V0KFRlc3RQYXJhbXMsIFN0cmluZykgZm9yIGVhY2ggcGF0aCwKKyAgICAgKiBhbmQgcnVuIHRoZSByZXR1cm5lZCB0YXJnZXQuIEFmdGVyIHRoZSBsYXN0IHRlc3QgcmV0dXJucywgaWYgcHJvbXB0IGlzCisgICAgICogc2V0LCBwcm9tcHQgYW5kIHdhaXQgZm9yIGlucHV0IGZyb20gc3RkaW4uIEZpbmFsbHksIGV4aXQgd2l0aCBudW1iZXIgb2YKKyAgICAgKiBlcnJvcnMuCisgICAgICogCisgICAgICogVGhpcyBtZXRob2QgbmV2ZXIgcmV0dXJucywgc2luY2UgaXQgYWx3YXlzIGV4aXRzIHdpdGggU3lzdGVtLmV4aXQoKTsKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBydW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTeXN0ZW0uZXhpdChydW4oYXJncywgbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpKSk7CisgICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMaWtlIHJ1bihTdHJpbmdbXSkgZXhjZXB0IHRoaXMgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHRoZSBlcnJvciBsb2cuCisgICAgICogVW5saWtlIHJ1bihTdHJpbmdbXSkgdGhpcyByZXR1cm5zIHRoZSBlcnJvciBjb2RlIGFzIGEgcmVzdWx0IGluc3RlYWQgb2YKKyAgICAgKiBjYWxsaW5nIFN5c3RlbS5leGl0KCkuCisgICAgICovCisgICAgcHVibGljIGludCBydW4oU3RyaW5nW10gYXJncywgUHJpbnRXcml0ZXIgbG9nKSB7CisgICAgICAgIGJvb2xlYW4gcHJvbXB0ID0gZmFsc2U7CisgICAgICAgIGludCB3eCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGFyZyA9IGFyZ3NbaV07CisgICAgICAgICAgICBpZiAoYXJnLmVxdWFscygiLXAiKSB8fCBhcmcuZXF1YWxzKCItcHJvbXB0IikpIHsKKyAgICAgICAgICAgICAgICBwcm9tcHQgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAod3ggPCBpKSB7CisgICAgICAgICAgICAgICAgICAgIGFyZ3Nbd3hdID0gYXJnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3eCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlICh3eCA8IGFyZ3MubGVuZ3RoKSB7CisgICAgICAgICAgICBhcmdzW3d4KytdID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGVzdFBhcmFtcyBwYXJhbXMgPSBUZXN0UGFyYW1zLmNyZWF0ZShhcmdzLCBsb2cpOworICAgICAgICBpZiAocGFyYW1zID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGVycm9yQ291bnQgPSBydW5UZXN0cyhwYXJhbXMsIGFyZ3MpOworICAgICAgICAKKyAgICAgICAgaWYgKHBhcmFtcy5zZWVkICE9IDApIHsKKyAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbigiLXJhbmRvbToiICsgcGFyYW1zLnNlZWQpOworICAgICAgICAgICAgcGFyYW1zLmxvZy5mbHVzaCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBhcmFtcy5lcnJvclN1bW1hcnkgIT0gbnVsbCAmJiBwYXJhbXMuZXJyb3JTdW1tYXJ5Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludGxuKCJcbkVycm9yIHN1bW1hcnk6Iik7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4ocGFyYW1zLmVycm9yU3VtbWFyeS50b1N0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwcm9tcHQpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSGl0IFJFVFVSTiB0byBleGl0Li4uIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LmZsdXNoKCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5pbi5yZWFkKCk7CisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludGxuKCJFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZXJyb3JDb3VudDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJ1blRlc3RzKFRlc3RQYXJhbXMgcGFyYW1zLCBTdHJpbmdbXSB0ZXN0cykgeworICAgICAgICBpbnQgZWMgPSAwOworICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN1bW1hcnkgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKHRlc3RzLmxlbmd0aCA9PSAwIHx8IHRlc3RzWzBdID09IG51bGwpIHsgLy8gbm8gYXJncworICAgICAgICAgICAgICAgIHBhcmFtcy5pbml0KCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZVRhcmdldChwYXJhbXMpLnJ1bigpOworICAgICAgICAgICAgICAgIGVjID0gcGFyYW1zLmVycm9yQ291bnQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoIDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0c1tpXSA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwYXJhbXMuaW5pdCgpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlVGFyZ2V0KHBhcmFtcywgdGVzdHNbaV0pLnJ1bigpOworICAgICAgICAgICAgICAgICAgICBlYyArPSBwYXJhbXMuZXJyb3JDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXMuZXJyb3JTdW1tYXJ5ICE9IG51bGwgJiYgcGFyYW1zLmVycm9yU3VtbWFyeS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdW1tYXJ5ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeS5hcHBlbmQoIlxuVGVzdCBSb290OiAiICsgdGVzdHNbaV0gKyAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnkuYXBwZW5kKHBhcmFtcy5lcnJvclN1bW1hcnkoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGFyYW1zLmVycm9yU3VtbWFyeSA9IHN1bW1hcnk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZShwYXJhbXMubG9nKTsKKyAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oImVuY291bnRlcmVkIGV4Y2VwdGlvbiwgZXhpdGluZyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZWM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIENsYXNzVGFyZ2V0IGZvciB0aGlzIHRlc3QuIFBhcmFtcyBpcyBzZXQgb24gdGhpcyB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyBUYXJnZXQgcmVzb2x2ZVRhcmdldChUZXN0UGFyYW1zIHBhcmFtcykgeworICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtczsKKyAgICAgICAgcmV0dXJuIG5ldyBDbGFzc1RhcmdldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc29sdmUgYSBwYXRoIGZyb20gdGhpcyB0ZXN0IHRvIGEgdGFyZ2V0LiBJZiB0aGlzIHRlc3QgaGFzIHN1YnRlc3RzLCBhbmQKKyAgICAgKiB0aGUgcGF0aCBjb250YWlucyAnLycsIHRoZSBwb3J0aW9uIGJlZm9yZSB0aGUgJy8nIGlzIHJlc29sdmVkIHRvIGEKKyAgICAgKiBzdWJ0ZXN0LCB1bnRpbCB0aGUgcGF0aCBpcyBjb25zdW1lZCBvciB0aGUgdGVzdCBoYXMgbm8gc3VidGVzdHMuIFJldHVybnMKKyAgICAgKiBhIENsYXNzVGFyZ2V0IGNyZWF0ZWQgdXNpbmcgdGhlIHJlc29sdmVkIHRlc3QgYW5kIHJlbWFpbmluZyBwYXRoICh3aGljaAorICAgICAqIG91Z2h0IHRvIGJlIG51bGwgb3IgYSBtZXRob2QgbmFtZSkuIFBhcmFtcyBpcyBzZXQgb24gdGhlIHRhcmdldCdzIHRlc3QuCisgICAgICovCisgICAgcHVibGljIFRhcmdldCByZXNvbHZlVGFyZ2V0KFRlc3RQYXJhbXMgcGFyYW1zLCBTdHJpbmcgdGFyZ2V0UGF0aCkgeworICAgICAgICBUZXN0Rm13ayB0ZXN0ID0gdGhpczsKKyAgICAgICAgdGVzdC5wYXJhbXMgPSBwYXJhbXM7CisKKyAgICAgICAgaWYgKHRhcmdldFBhdGggIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHRhcmdldFBhdGgubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHRhcmdldFBhdGggPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGUgPSB0YXJnZXRQYXRoLmxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgLy8gdHJpbSBhbGwgbGVhZGluZyBhbmQgdHJhaWxpbmcgJy8nCisgICAgICAgICAgICAgICAgd2hpbGUgKHRhcmdldFBhdGguY2hhckF0KHApID09ICcvJykgeworICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlIChlID4gcCAmJiB0YXJnZXRQYXRoLmNoYXJBdChlIC0gMSkgPT0gJy8nKSB7CisgICAgICAgICAgICAgICAgICAgIC0tZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHAgPiAwIHx8IGUgPCB0YXJnZXRQYXRoLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFBhdGggPSB0YXJnZXRQYXRoLnN1YnN0cmluZyhwLCBlIC0gcCk7CisgICAgICAgICAgICAgICAgICAgIHAgPSAwOworICAgICAgICAgICAgICAgICAgICBlID0gdGFyZ2V0UGF0aC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IHRhcmdldFBhdGguaW5kZXhPZignLycpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IG4gPT0gLTEgPyB0YXJnZXRQYXRoIDogdGFyZ2V0UGF0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic3RyaW5nKDAsIG4pOworICAgICAgICAgICAgICAgICAgICAgICAgVGVzdEZtd2sgc3VidGVzdCA9IHRlc3QuZ2V0U3VidGVzdChwcmVmaXgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VidGVzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSBzdWJ0ZXN0OworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFBhdGggPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRQYXRoID0gdGFyZ2V0UGF0aC5zdWJzdHJpbmcobiArIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoVGVzdEZtd2tFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3QubmV3IFRhcmdldCh0YXJnZXRQYXRoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGVzdC5uZXcgQ2xhc3NUYXJnZXQodGFyZ2V0UGF0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgd2UgY2FuIHJ1biB0aGlzIHRlc3QgKGFsbG93cyB0ZXN0IHRvIGluc3BlY3QganZtLAorICAgICAqIGVudmlyb25tZW50LCBwYXJhbXMgYmVmb3JlIHJ1bm5pbmcpCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGFyZ2V0cyBmb3IgdGhpcyB0ZXN0LiBJZiB0YXJnZXROYW1lIGlzIG51bGwsIHJldHVybiBhbGwKKyAgICAgKiB0YXJnZXRzLCBvdGhlcndpc2UgcmV0dXJuIGEgdGFyZ2V0IGZvciBqdXN0IHRoYXQgbmFtZS4gVGhlIHJldHVybmVkCisgICAgICogdGFyZ2V0IGNhbiBiZSBudWxsLgorICAgICAqIAorICAgICAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgYSBNZXRob2RUYXJnZXQgZm9yIGVhY2ggcHVibGljIG1ldGhvZAorICAgICAqIG9mIHRoZSBvYmplY3QncyBjbGFzcyB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoICJUZXN0IiBvciAidGVzdCIuCisgICAgICovCisgICAgcHJvdGVjdGVkIFRhcmdldCBnZXRUYXJnZXRzKFN0cmluZyB0YXJnZXROYW1lKSB7CisgICAgICAgIENsYXNzIGNscyA9IGdldENsYXNzKCk7CisgICAgICAgIGlmICh0YXJnZXROYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTWV0aG9kIG1ldGhvZCA9IGNscy5nZXRNZXRob2QodGFyZ2V0TmFtZSwgbnVsbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNZXRob2RUYXJnZXQodGFyZ2V0TmFtZSwgbWV0aG9kKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUYXJnZXQodGFyZ2V0TmFtZSk7IC8vIGludmFsaWQgdGFyZ2V0CisgICAgICAgICAgICB9IGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChwYXJhbXMuZG9NZXRob2RzKCkpIHsKKyAgICAgICAgICAgICAgICBNZXRob2RbXSBtZXRob2RzID0gY2xzLmdldERlY2xhcmVkTWV0aG9kcygpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtZXRob2RzLmxlbmd0aDsgLS1pID49IDA7KSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbWV0aG9kc1tpXS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoIlRlc3QiKSB8fCBuYW1lLnN0YXJ0c1dpdGgoInRlc3QiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3IE1ldGhvZFRhcmdldChuYW1lLCBtZXRob2RzW2ldKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0TmV4dCh0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlTWV0aG9kKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TWV0aG9kRGVzY3JpcHRpb24oU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gbWV0aG9kIHRlc3RzIGhhdmUgbm8gc3VidGVzdHMsIGdyb3VwIHRlc3RzIG92ZXJyaWRlCisgICAgcHJvdGVjdGVkIFRlc3RGbXdrIGdldFN1YnRlc3QoU3RyaW5nIHByZWZpeCkgdGhyb3dzIFRlc3RGbXdrRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNWZXJib3NlKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLnZlcmJvc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbm9EYXRhKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLm5vZGF0YTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc1RpbWluZygpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy50aW1pbmcgPCBMb25nLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc01lbVRyYWNraW5nKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLm1lbXVzYWdlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDAgPSBmZXdlc3QgdGVzdHMsIDUgaXMgbm9ybWFsIGJ1aWxkLCAxMCBpcyBtb3N0IHRlc3RzCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmNsdXNpb24oKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMuaW5jbHVzaW9uOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kdWxhckJ1aWxkKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLndhcm5pbmdzOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzUXVpY2soKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMuaW5jbHVzaW9uID09IDA7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsIGJvb2xlYW4gbmV3bG4pIHsKKyAgICAgICAgcGFyYW1zLm1zZyhtZXNzYWdlLCBsZXZlbCwgaW5jQ291bnQsIG5ld2xuKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgaW50IGdldEVycm9yQ291bnQoKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMuZXJyb3JDb3VudDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgVGltZVpvbmUgc2FmZUdldFRpbWVab25lKFN0cmluZyBpZCkgeworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKGlkKTsKKyAgICAgICAgaWYgKHR6ID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiICsgaWQgKyAiKSA9PiBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ei5nZXRJRCgpLmVxdWFscyhpZCkpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRkFJTDogVGltZVpvbmUuZ2V0VGltZVpvbmUoIiArIGlkICsgIikgPT4gIiArIHR6LmdldElEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ejsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCBhIHVzYWdlIG1lc3NhZ2UgZm9yIHRoaXMgdGVzdCBjbGFzcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB1c2FnZSgpIHsKKyAgICAgICAgdXNhZ2UobmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpLCBnZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB1c2FnZShQcmludFdyaXRlciBwdywgU3RyaW5nIGNsYXNzTmFtZSkgeworICAgICAgICBwdy5wcmludGxuKCJVc2FnZTogIiArIGNsYXNzTmFtZSArICIgb3B0aW9uKiB0YXJnZXQqIik7CisgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgcHcucHJpbnRsbigiT3B0aW9uczoiKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1kZXNjcmliZSBQcmludCBhIHNob3J0IGRlc2NyaXB0aXZlIHN0cmluZyBmb3IgdGhpcyB0ZXN0IGFuZCBhbGwiKTsKKyAgICAgICAgcHcucHJpbnRsbigiICAgICAgIGxpc3RlZCB0YXJnZXRzLiIpOworICAgICAgICBwdy5wcmludGxuKCIgLWU8bj4gU2V0IGV4aGF1c3RpdmVuZXNzIGZyb20gMC4uMTAuICBEZWZhdWx0IGlzIDAsIGZld2VzdCB0ZXN0cy5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIFRvIHJ1biBhbGwgdGVzdHMsIHNwZWNpZnkgLWUxMC4gIEdpdmluZyAtZSB3aXRoIG5vIDxuPiBpc1xuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgdGhlIHNhbWUgYXMgLWU1LiIpOworICAgICAgICBwdy5wcmludGxuKCIgLWZpbHRlcjo8c3RyPiBPbmx5IHRlc3RzIG1hdGNoaW5nIGZpbHRlciB3aWxsIGJlIHJ1biBvciBsaXN0ZWQuXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICA8c3RyPiBpcyBvZiB0aGUgZm9ybSBbJ14nXXRleHRbJywnWydeJ110ZXh0XS5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIEVhY2ggc3RyaW5nIGRlbGltaXRlZCBieSAnLCcgaXMgYSBzZXBhcmF0ZSBmaWx0ZXIgYXJndW1lbnQuXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBJZiAnXicgaXMgcHJlcGVuZGVkIHRvIGFuIGFyZ3VtZW50LCBpdHMgbWF0Y2hlcyBhcmUgZXhjbHVkZWQuXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBGaWx0ZXJpbmcgb3BlcmF0ZXMgb24gdGVzdCBncm91cHMgYXMgd2VsbCBhcyB0ZXN0cywgaWYgYSB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBncm91cCBpcyBpbmNsdWRlZCwgYWxsIGl0cyBzdWJ0ZXN0cyB0aGF0IGFyZSBub3QgZXhjbHVkZWQgd2lsbFxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgYmUgcnVuLiAgRXhhbXBsZXM6XG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAtZmlsdGVyOkEgLS0gb25seSB0ZXN0cyBtYXRjaGluZyBBIGFyZSBydW4uICBJZiBBIG1hdGNoZXMgYSBncm91cCxcbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIGFsbCBzdWJ0ZXN0cyBvZiB0aGlzIGdyb3VwIGFyZSBydW4uXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAtZmlsdGVyOl5BIC0tIGFsbCB0ZXN0cyBleGNlcHQgdGhvc2UgbWF0Y2hpbmcgQSBhcmUgcnVuLiAgSWYgQSBtYXRjaGVzXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICAgYSBncm91cCwgbm8gc3VidGVzdCBvZiB0aGF0IGdyb3VwIHdpbGwgYmUgcnVuLlxuIgorICAgICAgICAgICAgICAgICArICIgICAgLWZpbHRlcjpBLEIsXkMsXkQgLS0gdGVzdHMgbWF0Y2hpbmcgQSBvciBCIGFuZCBub3QgQyBhbmQgbm90IEQgYXJlIHJ1blxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgTm90ZTogRmlsdGVycyBhcmUgY2FzZSBpbnNlbnNpdGl2ZS4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1oW2VscF0gUHJpbnQgdGhpcyBoZWxwIHRleHQgYW5kIGV4aXQuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtbFtpc3RdIExpc3QgaW1tZWRpYXRlIHRhcmdldHMgb2YgdGhpcyB0ZXN0Iik7CisgICAgICAgIHB3LnByaW50bG4oIiAgIC1sYSwgLWxpc3RBbGwgTGlzdCBpbW1lZGlhdGUgdGFyZ2V0cyBvZiB0aGlzIHRlc3QsIGFuZCBhbGwgc3VidGVzdHMiKTsKKyAgICAgICAgcHcucHJpbnRsbigiICAgLWxlLCAtbGlzdEV4YXVzdGl2ZSBMaXN0IGFsbCBzdWJ0ZXN0cyBhbmQgdGFyZ2V0cyIpOworICAgICAgICAvLyBkb24ndCBrbm93IGhvdyB0byBnZXQgdXNlZnVsIG51bWJlcnMgZm9yIG1lbW9yeSB1c2FnZSB1c2luZyBqYXZhIEFQSQorICAgICAgICAvLyBjYWxscworICAgICAgICAvLyAgICAgIHB3LnByaW50bG4oIiAtbVtlbW9yeV0gcHJpbnQgbWVtb3J5IHVzYWdlIGFuZCBmb3JjZSBnYyBmb3IKKyAgICAgICAgLy8gZWFjaCB0ZXN0Iik7CisgICAgICAgIHB3LnByaW50bG4oIiAtbltvdGhyb3ddIE1lc3NhZ2Ugb24gdGVzdCBmYWlsdXJlIHJhdGhlciB0aGFuIGV4Y2VwdGlvbiIpOworICAgICAgICBwdy5wcmludGxuKCIgLXByb21wdCBQcm9tcHQgYmVmb3JlIGV4aXRpbmciKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1xW3VpZXRdIERvIG5vdCBzaG93IHdhcm5pbmdzIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtclthbmRvbV1bOjxuPl0gSWYgcHJlc2VudCwgcmFuZG9taXplIHRhcmdldHMuICBJZiBuIGlzIHByZXNlbnQsXG4iCisgICAgICAgICAgICAgICAgICAgICAgICArICIgICAgICAgdXNlIGl0IGFzIHRoZSBzZWVkLiAgSWYgcmFuZG9tIGlzIG5vdCBzZXQsIHRhcmdldHMgd2lsbFxuIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiICAgICAgIGJlIGluIGFscGhhYmV0aWNhbCBvcmRlciB0byBlbnN1cmUgY3Jvc3MtcGxhdGZvcm0gY29uc2lzdGVuY3kuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtc1tpbGVudF0gTm8gb3V0cHV0IGV4Y2VwdCBlcnJvciBzdW1tYXJ5IG9yIGV4Y2VwdGlvbnMuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtdGZpbHRlcjo8c3RyPiBUcmFuc2xpdGVyYXRvciBUZXN0IGZpbHRlciBvZiBpZHMuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtdFtpbWVdWzo8bj5dIFByaW50IGVsYXBzZWQgdGltZSBmb3IgZWFjaCB0ZXN0LiAgaWYgbiBpcyBwcmVzZW50XG4iCisgICAgICAgICAgICAgICAgICAgICAgICArICIgICAgICAgb25seSBwcmludCB0aW1lcyA+PSBuIG1pbGxpc2Vjb25kcy4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC12W2VyYm9zZV0gU2hvdyBsb2cgbWVzc2FnZXMiKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC13W2FybmluZ10gQ29udGludWUgaW4gcHJlc2VuY2Ugb2Ygd2FybmluZ3MsIGFuZCBkaXNhYmxlIG1pc3NpbmcgdGVzdCB3YXJuaW5ncy4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1ub2RhdGEgfCAtbmQgRG8gbm90IHdhcm4gaWYgcmVzb3VyY2UgZGF0YSBpcyBub3QgcHJlc2VudC4iKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKCIgSWYgYSBsaXN0IG9yIGRlc2NyaWJlIG9wdGlvbiBpcyBwcm92aWRlZCwgbm8gdGVzdHMgYXJlIHJ1bi4iKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKCJUYXJnZXRzOiIpOworICAgICAgICBwdy5wcmludGxuKCIgSWYgbm8gdGFyZ2V0IGlzIHNwZWNpZmllZCwgYWxsIHRhcmdldHMgZm9yIHRoaXMgdGVzdCBhcmUgcnVuLiIpOworICAgICAgICBwdy5wcmludGxuKCIgSWYgYSB0YXJnZXQgY29udGFpbnMgbm8gJy8nIGNoYXJhY3RlcnMsIGFuZCBtYXRjaGVzIGEgdGFyZ2V0Iik7CisgICAgICAgIHB3LnByaW50bG4oIiBvZiB0aGlzIHRlc3QsIHRoZSB0YXJnZXQgaXMgcnVuLiAgT3RoZXJ3aXNlLCB0aGUgcGFydCBiZWZvcmUgdGhlIik7CisgICAgICAgIHB3LnByaW50bG4oIiAnLycgaXMgdXNlZCB0byBtYXRjaCBhIHN1YnRlc3QsIHdoaWNoIHRoZW4gZXZhbHVhdGVzIHRoZSIpOworICAgICAgICBwdy5wcmludGxuKCIgcmVtYWluZGVyIG9mIHRoZSB0YXJnZXQgYXMgYWJvdmUuICBUYXJnZXQgbWF0Y2hpbmcgaXMgY2FzZS1pbnNlbnNpdGl2ZS4iKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKCIgSWYgbXVsdGlwbGUgdGFyZ2V0cyBhcmUgcHJvdmlkZWQsIGVhY2ggaXMgZXhlY3V0ZWQgaW4gb3JkZXIuIik7CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChjaGFyW10gcyl7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0LmFwcGVuZCgnLCcpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChoZXgoc1tpXSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGJ5dGVbXSBzKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHQuYXBwZW5kKCcsJyk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGhleChzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhciBjaCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgZm9vID0gSW50ZWdlci50b1N0cmluZyhjaCwgMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSBmb28ubGVuZ3RoKCk7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJzAnKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0ICsgZm9vOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChpbnQgY2gpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIGZvbyA9IEludGVnZXIudG9TdHJpbmcoY2gsIDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICBmb3IgKGludCBpID0gZm9vLmxlbmd0aCgpOyBpIDwgNDsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcwJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZvbzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLCcpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChoZXgocy5jaGFyQXQoaSkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZ0J1ZmZlciBzKSB7CisgICAgICAgIHJldHVybiBoZXgocy50b1N0cmluZygpKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJldHRpZnkoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGNoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICAgICAgICAgICAgY2ggPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoY2ggPiAweGZmZmZmKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiXFxVMDAiKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGhleChjaCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+IDB4ZmZmZikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcVTAwMCIpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID4gMHg3ZikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpIGNoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJldHRpZnkoU3RyaW5nQnVmZmVyIHMpIHsKKyAgICAgICAgcmV0dXJuIHByZXR0aWZ5KHMudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyIGNhbDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIERhdGUgZ2l2ZW4gYSB5ZWFyLCBtb250aCwgYW5kIGRheSBvZiBtb250aC4gVGhpcyBpcyBzaW1pbGFyIHRvCisgICAgICogbmV3IERhdGUoeS0xOTAwLCBtLCBkKS4gSXQgdXNlcyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYXQgdGhlIHRpbWUgdGhpcworICAgICAqIG1ldGhvZCBpcyBmaXJzdCBjYWxsZWQuCisgICAgICogCisgICAgICogQHBhcmFtIHllYXIKKyAgICAgKiAgICAgICAgICAgIHVzZSAyMDAwIGZvciAyMDAwLCB1bmxpa2UgbmV3IERhdGUoKQorICAgICAqIEBwYXJhbSBtb250aAorICAgICAqICAgICAgICAgICAgdXNlIENhbGVuZGFyLkpBTlVBUlkgZXRjLgorICAgICAqIEBwYXJhbSBkb20KKyAgICAgKiAgICAgICAgICAgIGRheSBvZiBtb250aCwgMS1iYXNlZAorICAgICAqIEByZXR1cm4gYSBEYXRlIG9iamVjdCBmb3IgdGhlIGdpdmVuIHkvbS9kCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgamF2YS51dGlsLkRhdGUgZ2V0RGF0ZShpbnQgeWVhciwgaW50IG1vbnRoLAorICAgICAgICAgICAgaW50IGRvbSkgeworICAgICAgICBpZiAoY2FsID09IG51bGwpIHsKKyAgICAgICAgICAgIGNhbCA9IG5ldyBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgfQorICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZG9tKTsKKyAgICAgICAgcmV0dXJuIGNhbC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOdWxsV3JpdGVyIGV4dGVuZHMgUHJpbnRXcml0ZXIgeworICAgICAgICBwdWJsaWMgTnVsbFdyaXRlcigpIHsKKyAgICAgICAgICAgIHN1cGVyKFN5c3RlbS5vdXQsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShpbnQgYykgeworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKGNoYXJbXSBidWYsIGludCBvZmYsIGludCBsZW4pIHsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgcywgaW50IG9mZiwgaW50IGxlbikgeworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHByaW50bG4oKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEFTQ0lJV3JpdGVyIGV4dGVuZHMgUHJpbnRXcml0ZXIgeworICAgICAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gQ2hhcmFjdGVycyB0aGF0IHdlIHRoaW5rIGFyZSBwcmludGFibGUgYnV0IHRoYXQgZXNjYXBlVW5wcmludGFibGUKKyAgICAgICAgLy8gZG9lc24ndAorICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJJTlRBQkxFUyA9ICJcdFxuXHIiOworCisgICAgICAgIHB1YmxpYyBBU0NJSVdyaXRlcihXcml0ZXIgdywgYm9vbGVhbiBhdXRvRmx1c2gpIHsKKyAgICAgICAgICAgIHN1cGVyKHcsIGF1dG9GbHVzaCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQVNDSUlXcml0ZXIoT3V0cHV0U3RyZWFtIG9zLCBib29sZWFuIGF1dG9GbHVzaCkgeworICAgICAgICAgICAgc3VwZXIob3MsIGF1dG9GbHVzaCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShpbnQgYykgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpZiAoUFJJTlRBQkxFUy5pbmRleE9mKGMpIDwgMAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgVGVzdFV0aWwuZXNjYXBlVW5wcmludGFibGUoYnVmZmVyLCBjKSkgeworICAgICAgICAgICAgICAgICAgICBzdXBlci53cml0ZShidWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3VwZXIud3JpdGUoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoY2hhcltdIGJ1ZiwgaW50IG9mZiwgaW50IGxlbikgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBvZmYgKyBsZW47CisgICAgICAgICAgICAgICAgd2hpbGUgKG9mZiA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTZVdGlsLmNoYXJBdChidWYsIDAsIGJ1Zi5sZW5ndGgsIG9mZik7CisgICAgICAgICAgICAgICAgICAgIG9mZiArPSBVVEYxNlV0aWwuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRBQkxFUy5pbmRleE9mKGMpIDwgMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIFRlc3RVdGlsLmVzY2FwZVVucHJpbnRhYmxlKGJ1ZmZlciwgYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLndyaXRlKGJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdXBlci53cml0ZShjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBzLCBpbnQgb2ZmLCBpbnQgbGVuKSB7CisgICAgICAgICAgICB3cml0ZShzLnN1YnN0cmluZyhvZmYsIG9mZiArIGxlbikudG9DaGFyQXJyYXkoKSwgMCwgbGVuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGZpbHRlcnMKKyAgICAvLyBtYXRjaCBhZ2FpbnN0IHRoZSBlbnRpcmUgaGllcmFyY2h5CisgICAgLy8gQTtCOyFDOyFEIC0tPiAoQSB8fEIpICYmICghQyAmJiAhRCkKKyAgICAvLyBwb3NpdGl2ZSwgbmVnYXRpdmUsIHVua25vd24gbWF0Y2hlcworICAgIC8vIHBvc2l0aXZlIC0tIGtub3duIHRvIGJlIGluY2x1ZGVkLCBuZWdhdGl2ZS0ga25vd24gdG8gYmUgZXhjbHVkZWQKKyAgICAvLyBwb3NpdGl2ZSBvbmx5IGlmIG5vIGV4Y2x1ZGVzLCBhbmQgbWF0Y2hlcyBhdCBsZWFzdCBvbmUgaW5jbHVkZSwgaWYgYW55CisgICAgLy8gbmVnYXRpdmUgb25seSBpZiBtYXRjaGVzIGF0IGxlYXN0IG9uZSBleGNsdWRlCisgICAgLy8gb3RoZXJ3aXNlLCB3ZSB3YWl0CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFRlc3RQYXJhbXMgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiBwcm9tcHQ7CisgICAgICAgIHB1YmxpYyBib29sZWFuIG5vdGhyb3c7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHZlcmJvc2U7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHF1aWV0OworICAgICAgICBwdWJsaWMgaW50IGxpc3RsZXZlbDsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZGVzY3JpYmU7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHdhcm5pbmdzOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBub2RhdGE7CisgICAgICAgIHB1YmxpYyBsb25nIHRpbWluZyA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBtZW11c2FnZTsKKyAgICAgICAgcHVibGljIGludCBpbmNsdXNpb247CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZmlsdGVyOworICAgICAgICBwdWJsaWMgbG9uZyBzZWVkOworICAgICAgICBwdWJsaWMgU3RyaW5nIHRmaWx0ZXI7IC8vIGZvciB0cmFuc2xpdGVyYXRvciB0ZXN0cworCisgICAgICAgIHB1YmxpYyBTdGF0ZSBzdGFjazsKKworICAgICAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGVycm9yU3VtbWFyeTsKKworICAgICAgICBwdWJsaWMgUHJpbnRXcml0ZXIgbG9nOworICAgICAgICBwdWJsaWMgaW50IGluZGVudExldmVsOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbmVlZExpbmVGZWVkOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gc3VwcHJlc3NJbmRlbnQ7CisgICAgICAgIHB1YmxpYyBpbnQgZXJyb3JDb3VudDsKKyAgICAgICAgcHVibGljIGludCB3YXJuQ291bnQ7CisgICAgICAgIHB1YmxpYyBpbnQgaW52YWxpZENvdW50OworICAgICAgICBwdWJsaWMgaW50IHRlc3RDb3VudDsKKyAgICAgICAgcHJpdmF0ZSBOdW1iZXJGb3JtYXQgdGZvcm1hdDsKKyAgICAgICAgcHVibGljIFJhbmRvbSByYW5kb207CisKKyAgICAgICAgcHJpdmF0ZSBUZXN0UGFyYW1zKCkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIFRlc3RQYXJhbXMgY3JlYXRlKFN0cmluZyBhcmdsaXN0LCBQcmludFdyaXRlciBsb2cpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGFyZ3MgPSBudWxsOworICAgICAgICAgICAgaWYgKGFyZ2xpc3QgIT0gbnVsbCAmJiBhcmdsaXN0Lmxlbmd0aCgpID4gMCkgeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICBhcmdzID0gYXJnbGlzdC5zcGxpdCgiXFxzIik7CisvLyNlbHNlCisvLyMjICAgICAgICAgICAgYXJncyA9IFV0aWxpdHkuc3BsaXQoYXJnbGlzdCwgJ1x1MDAyMCcpOworLy8jZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjcmVhdGUoYXJncywgbG9nKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBhIFRlc3RQYXJhbXMgZnJvbSBhIGxpc3Qgb2YgYXJndW1lbnRzLiAgSWYgc3VjY2Vzc2Z1bCwgcmV0dXJuIHRoZSBwYXJhbXMgb2JqZWN0LAorICAgICAgICAgKiBlbHNlIHJldHVybiBudWxsLiAgRXJyb3IgbWVzc2FnZXMgd2lsbCBiZSByZXBvcnRlZCBvbiBlcnJsb2cgaWYgaXQgaXMgbm90IG51bGwuCisgICAgICAgICAqIEFyZ3VtZW50cyBhbmQgdmFsdWVzIHVuZGVyc3Rvb2QgYnkgdGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIGFyZ3MgYXJyYXkKKyAgICAgICAgICogYW5kIGV4aXN0aW5nIGFyZ3Mgd2lsbCBiZSBzaGlmdGVkIGRvd24sIHRvIGJlIGZpbGxlZCBieSBudWxscyBhdCB0aGUgZW5kLgorICAgICAgICAgKiBAcGFyYW0gYXJncyB0aGUgbGlzdCBvZiBhcmd1bWVudHMKKyAgICAgICAgICogQHBhcmFtIGxvZyB0aGUgZXJyb3IgbG9nLCBvciBudWxsIGlmIG5vIGVycm9yIGxvZyBpcyBkZXNpcmVkCisgICAgICAgICAqIEByZXR1cm4gdGhlIG5ldyBUZXN0UGFyYW1zIG9iamVjdCwgb3IgbnVsbCBpZiBlcnJvcgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBUZXN0UGFyYW1zIGNyZWF0ZShTdHJpbmdbXSBhcmdzLCBQcmludFdyaXRlciBsb2cpIHsKKyAgICAgICAgICAgIFRlc3RQYXJhbXMgcGFyYW1zID0gbmV3IFRlc3RQYXJhbXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYobG9nID09IG51bGwpeworICAgICAgICAgICAgICAgIHBhcmFtcy5sb2cgPSBuZXcgTnVsbFdyaXRlcigpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcGFyYW1zLmxvZyA9ICBuZXcgQVNDSUlXcml0ZXIobG9nLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiB1c2FnZUVycm9yID0gZmFsc2U7CisgICAgICAgICAgICBTdHJpbmcgZmlsdGVyID0gbnVsbDsKKyAgICAgICAgICAgIGludCB3eCA9IDA7IC8vIHdyaXRlIGFyZ2V0cy4KKyAgICAgICAgICAgIGlmIChhcmdzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFyZyA9IGFyZ3NbaV07CisgICAgICAgICAgICAgICAgICAgIGlmIChhcmcgPT0gbnVsbCB8fCBhcmcubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItdmVyYm9zZSIpIHx8IGFyZy5lcXVhbHMoIi12IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMudmVyYm9zZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnF1aWV0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1xdWlldCIpIHx8IGFyZy5lcXVhbHMoIi1xIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMucXVpZXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy52ZXJib3NlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1oZWxwIikgfHwgYXJnLmVxdWFscygiLWgiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzYWdlRXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItd2FybmluZyIpIHx8IGFyZy5lcXVhbHMoIi13IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMud2FybmluZ3MgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbm9kYXRhIikgfHwgYXJnLmVxdWFscygiLW5kIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMubm9kYXRhID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWxpc3QiKSB8fCBhcmcuZXF1YWxzKCItbCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmxpc3RsZXZlbCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1saXN0YWxsIikgfHwgYXJnLmVxdWFscygiLWxhIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMubGlzdGxldmVsID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWxpc3RleGF1c3RpdmUiKSB8fCBhcmcuZXF1YWxzKCItbGUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5saXN0bGV2ZWwgPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbWVtb3J5IikgfHwgYXJnLmVxdWFscygiLW0iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5tZW11c2FnZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1ub3Rocm93IikgfHwgYXJnLmVxdWFscygiLW4iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5ub3Rocm93ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuZXJyb3JTdW1tYXJ5ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItZGVzY3JpYmUiKSB8fCBhcmcuZXF1YWxzKCItZCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmRlc2NyaWJlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1yIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG4gPSBhcmcuaW5kZXhPZignOicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBhcmcuc3Vic3RyaW5nKG4gKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnN1YnN0cmluZygwLCBuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLmVxdWFscygiLXIiKSB8fCBhcmcuZXF1YWxzKCItcmFuZG9tIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnNlZWQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5zZWVkID0gTG9uZy5wYXJzZUxvbmcocyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiKioqIEVycm9yOiB1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICIgKyBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZUVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlZSBhYm92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5pbmNsdXNpb24gPSAoYXJnLmxlbmd0aCgpID09IDIpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSW50ZWdlci5wYXJzZUludChhcmcuc3Vic3RyaW5nKDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA8IDAgfHwgcGFyYW1zLmluY2x1c2lvbiA+IDEwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzYWdlRXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItdGZpbHRlcjoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy50ZmlsdGVyID0gYXJnLnN1YnN0cmluZyg4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi10aW1lIikgfHwgYXJnLnN0YXJ0c1dpdGgoIi10IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZhbCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlueCA9IGFyZy5pbmRleE9mKCc6Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlueCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG51bSA9IGFyZy5zdWJzdHJpbmcoaW54ICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBMb25nLnBhcnNlTG9uZyhudW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIioqKiBFcnJvcjogY291bGQgbm90IHBhcnNlIHRpbWUgdGhyZXNob2xkICciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG51bSArICInIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZUVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy50aW1pbmcgPSB2YWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZtdCA9ICIjLDAwcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA8PSAxMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQgPSAiIywjIzAuMDAwcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwgPD0gMTAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdCA9ICIjLCMjMC4wMHMiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsIDw9IDEwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10ID0gIiMsIyMwLjBzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnRmb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChmbXQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWZpbHRlcjoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gYXJnLnN1YnN0cmluZyg4KS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlciA9PSBudWxsID8gdGVtcCA6IGZpbHRlciArICIsIiArIHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItZjoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gYXJnLnN1YnN0cmluZygzKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlciA9PSBudWxsID8gdGVtcCA6IGZpbHRlciArICIsIiArIHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItcyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmxvZyA9IG5ldyBOdWxsV3JpdGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCIqKiogRXJyb3I6IHVucmVjb2duaXplZCBhcmd1bWVudDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2VFcnJvciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzW3d4KytdID0gYXJnOyAvLyBzaGlmdCBkb3duCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB3aGlsZSAod3ggPCBhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBhcmdzW3d4KytdID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh1c2FnZUVycm9yKSB7CisgICAgICAgICAgICAgICAgdXNhZ2UobG9nLCAiVGVzdEFsbCIpOworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMuZmlsdGVyID0gZmlsdGVyLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBhcmFtcy5pbml0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBwYXJhbXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZXJyb3JTdW1tYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIGVycm9yU3VtbWFyeSA9PSBudWxsID8gIiIgOiBlcnJvclN1bW1hcnkudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKyAgICAgICAgICAgIGluZGVudExldmVsID0gMDsKKyAgICAgICAgICAgIG5lZWRMaW5lRmVlZCA9IGZhbHNlOworICAgICAgICAgICAgc3VwcHJlc3NJbmRlbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGVycm9yQ291bnQgPSAwOworICAgICAgICAgICAgd2FybkNvdW50ID0gMDsKKyAgICAgICAgICAgIGludmFsaWRDb3VudCA9IDA7CisgICAgICAgICAgICB0ZXN0Q291bnQgPSAwOworICAgICAgICAgICAgcmFuZG9tID0gc2VlZCA9PSAwID8gbnVsbCA6IG5ldyBSYW5kb20oc2VlZCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY2xhc3MgU3RhdGUgeworICAgICAgICAgICAgU3RhdGUgbGluazsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICAgICAgICAgIGludCBsZXZlbDsKKyAgICAgICAgICAgIGludCBlYzsKKyAgICAgICAgICAgIGludCB3YzsKKyAgICAgICAgICAgIGludCBpYzsKKyAgICAgICAgICAgIGludCB0YzsKKyAgICAgICAgICAgIGJvb2xlYW4gZmx1c2hlZDsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGluY2x1ZGVkOworICAgICAgICAgICAgbG9uZyBtZW07CisgICAgICAgICAgICBsb25nIG1pbGxpczsKKworICAgICAgICAgICAgcHVibGljIFN0YXRlKFN0YXRlIGxpbmssIFN0cmluZyBuYW1lLCBib29sZWFuIGluY2x1ZGVkKSB7CisgICAgICAgICAgICAgICAgdGhpcy5saW5rID0gbGluazsKKyAgICAgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICAgICAgICAgIGlmIChsaW5rID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IDA7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5jbHVkZWQgPSBpbmNsdWRlZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gbGluay5sZXZlbCArIDE7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5jbHVkZWQgPSBpbmNsdWRlZCB8fCBsaW5rLmluY2x1ZGVkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aGlzLmVjID0gZXJyb3JDb3VudDsKKyAgICAgICAgICAgICAgICB0aGlzLndjID0gd2FybkNvdW50OworICAgICAgICAgICAgICAgIHRoaXMuaWMgPSBpbnZhbGlkQ291bnQ7CisgICAgICAgICAgICAgICAgdGhpcy50YyA9IHRlc3RDb3VudDsKKworICAgICAgICAgICAgICAgIGlmIChsaW5rID09IG51bGwgfHwgdGhpcy5pbmNsdWRlZCkgeworICAgICAgICAgICAgICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1lbSA9IGdldG1lbSgpOworICAgICAgICAgICAgICAgIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZsdXNoKCkgeworICAgICAgICAgICAgICAgIGlmICghZmx1c2hlZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobGluayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLmZsdXNoKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpbmRlbnQobGV2ZWwpOworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnQobmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGxvZy5mbHVzaCgpOworCisgICAgICAgICAgICAgICAgICAgIGZsdXNoZWQgPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAgIG5lZWRMaW5lRmVlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGFwcGVuZFBhdGgoU3RyaW5nQnVmZmVyIGJ1ZikgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmsgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmsuYXBwZW5kUGF0aChidWYpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcvJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQobmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwdXNoKFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzY3JpcHRpb24sIGJvb2xlYW4gaW5jbHVkZWQpIHsKKyAgICAgICAgICAgIGlmIChpbkRvY01vZGUoKSAmJiBkZXNjcmliZSAmJiBkZXNjcmlwdGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbmFtZSArPSAiOiAiICsgZGVzY3JpcHRpb247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFjayA9IG5ldyBTdGF0ZShzdGFjaywgbmFtZSwgaW5jbHVkZWQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcG9wKCkgeworICAgICAgICAgICAgaWYgKHN0YWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB3cml0ZVRlc3RSZXN1bHQoKTsKKyAgICAgICAgICAgICAgICBzdGFjayA9IHN0YWNrLmxpbms7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpbkRvY01vZGUoKSB7CisgICAgICAgICAgICByZXR1cm4gZGVzY3JpYmUgfHwgbGlzdGxldmVsICE9IDA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBkb01ldGhvZHMoKSB7CisgICAgICAgICAgICByZXR1cm4gIWluRG9jTW9kZSgpIHx8IGxpc3RsZXZlbCA9PSAzCisgICAgICAgICAgICAgICAgICAgIHx8IChpbmRlbnRMZXZlbCA9PSAxICYmIGxpc3RsZXZlbCA+IDApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZG9SZWN1cnNlKCkgeworICAgICAgICAgICAgcmV0dXJuICFpbkRvY01vZGUoKSB8fCBsaXN0bGV2ZWwgPiAxCisgICAgICAgICAgICAgICAgICAgIHx8IChpbmRlbnRMZXZlbCA9PSAxICYmIGxpc3RsZXZlbCA+IDApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZG9SZWN1cnNlR3JvdXBzT25seSgpIHsKKyAgICAgICAgICAgIHJldHVybiBpbkRvY01vZGUoKQorICAgICAgICAgICAgICAgICAgICAmJiAobGlzdGxldmVsID09IDIgfHwgKGluZGVudExldmVsID09IDEgJiYgbGlzdGxldmVsID4gMCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIDAsIC0xLCBvciAxCisgICAgICAgIC8vIDE6IHJ1biB0aGlzIHRlc3QKKyAgICAgICAgLy8gMDogbWlnaHQgcnVuIHRoaXMgdGVzdCwgbm8gcG9zaXRpdmUgaW5jbHVkZSBvciBleGNsdWRlIG9uIHRoaXMgZ3JvdXAKKyAgICAgICAgLy8gLTE6IGV4Y2x1ZGUgdGhpcyB0ZXN0CisgICAgICAgIHB1YmxpYyBpbnQgZmlsdGVyKFN0cmluZyB0ZXN0TmFtZSkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgICBpZiAoZmlsdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIG5vSW5jbHVkZXMgPSB0cnVlOworICAgICAgICAgICAgICAgIGJvb2xlYW4gbm9FeGNsdWRlcyA9IGZpbHRlci5pbmRleE9mKCdeJykgPT0gLTE7CisgICAgICAgICAgICAgICAgdGVzdE5hbWUgPSB0ZXN0TmFtZS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgIGludCBpeCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl4IDwgZmlsdGVyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBuaXggPSBmaWx0ZXIuaW5kZXhPZignLCcsIGl4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5peCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbml4ID0gZmlsdGVyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIuY2hhckF0KGl4KSA9PSAnXicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0TmFtZS5pbmRleE9mKGZpbHRlci5zdWJzdHJpbmcoaXggKyAxLCBuaXgpKSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbm9JbmNsdWRlcyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3ROYW1lLmluZGV4T2YoZmlsdGVyLnN1YnN0cmluZyhpeCwgbml4KSkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub0V4Y2x1ZGVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGl4ID0gbml4ICsgMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwICYmIG5vSW5jbHVkZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmaWx0ZXI6ICIgKyB0ZXN0TmFtZSArICIgcmV0dXJuczogIiArCisgICAgICAgICAgICAvLyByZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBMb2cgYWNjZXNzLgorICAgICAgICAgKiBAcGFyYW0gbXNnIFRoZSBzdHJpbmcgbWVzc2FnZSB0byB3cml0ZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG1zZykgeworICAgICAgICAgICAgd3JpdGUobXNnLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlbG4oU3RyaW5nIG1zZykgeworICAgICAgICAgICAgd3JpdGUobXNnLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHdyaXRlKFN0cmluZyBtc2csIGJvb2xlYW4gbmV3bG4pIHsKKyAgICAgICAgICAgIGlmICghc3VwcHJlc3NJbmRlbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAobmVlZExpbmVGZWVkKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIG5lZWRMaW5lRmVlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2cucHJpbnQoc3BhY2VzLnN1YnN0cmluZygwLCBpbmRlbnRMZXZlbCAqIDIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZy5wcmludChtc2cpOworICAgICAgICAgICAgaWYgKG5ld2xuKSB7CisgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oKTsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2cuZmx1c2goKTsKKyAgICAgICAgICAgIHN1cHByZXNzSW5kZW50ID0gIW5ld2xuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsCisgICAgICAgICAgICAgICAgYm9vbGVhbiBuZXdsbikgeworICAgICAgICAgICAgaWYgKGxldmVsID09IFdBUk4gJiYgKCF3YXJuaW5ncyAmJiAhbm9kYXRhKSl7CisgICAgICAgICAgICAgICAgbGV2ZWwgPSBFUlI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpbmNDb3VudCkgeworICAgICAgICAgICAgICAgIGlmIChsZXZlbCA9PSBXQVJOKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5Db3VudCsrOworICAgICAgICAgICAgICAgICAgICBpbnZhbGlkQ291bnQrKzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxldmVsID09IEVSUikgeworICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzaG91bGQgcm9sbCBpbmRlbnRhdGlvbiBzdHVmZiBpbnRvIGxvZyA/Pz8KKyAgICAgICAgICAgIGlmICh2ZXJib3NlIHx8IGxldmVsID4gKHF1aWV0ID8gV0FSTiA6IExPRykpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN1cHByZXNzSW5kZW50KSB7CisgICAgICAgICAgICAgICAgICAgIGluZGVudChpbmRlbnRMZXZlbCArIDEpOworICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXSBNU0dOQU1FUyA9IHsiIiwgIldhcm5pbmc6ICIsICJFcnJvcjogIn07CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludChNU0dOQU1FU1tsZXZlbF0pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxvZy5wcmludChtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3bG4pIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nLmZsdXNoKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChsZXZlbCA9PSBFUlIpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW5vdGhyb3cpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghc3VwcHJlc3NJbmRlbnQgJiYgZXJyb3JTdW1tYXJ5ICE9IG51bGwgJiYgc3RhY2sgIT1udWxsIAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGVycm9yQ291bnQgPT0gc3RhY2suZWMgKyAxKSkgeworICAgICAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmRQYXRoKGVycm9yU3VtbWFyeSk7CisgICAgICAgICAgICAgICAgICAgIGVycm9yU3VtbWFyeS5hcHBlbmQoIlxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdXBwcmVzc0luZGVudCA9ICFuZXdsbjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB3cml0ZVRlc3RJbnZhbGlkKFN0cmluZyBuYW1lLCBib29sZWFuIG5vZGF0YSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgIG1zZygiKioqIiArIG5hbWUgKyAiKioqIG5vdCBmb3VuZCBvciBub3QgdmFsaWQuIiwgV0FSTiwgdHJ1ZSwKKyAgICAgICAgICAgIC8vIHRydWUpOworICAgICAgICAgICAgaWYgKGluRG9jTW9kZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCF3YXJuaW5ncykgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suZmx1c2goKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiICoqKiBUYXJnZXQgbm90IGZvdW5kIG9yIG5vdCB2YWxpZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmZsdXNoKCk7CisgICAgICAgICAgICAgICAgICAgIG5lZWRMaW5lRmVlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYoIW5vZGF0YSl7CisgICAgICAgICAgICAgICAgICAgIG1zZygiVGVzdCAiICsgbmFtZSArICIgbm90IGZvdW5kIG9yIG5vdCB2YWxpZC4iLCBXQVJOLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9uZyBnZXRtZW0oKSB7CisgICAgICAgICAgICBsb25nIG5ld21lbSA9IDA7CisgICAgICAgICAgICBpZiAobWVtdXNhZ2UpIHsKKyAgICAgICAgICAgICAgICBSdW50aW1lIHJ0ID0gUnVudGltZS5nZXRSdW50aW1lKCk7CisgICAgICAgICAgICAgICAgbG9uZyBsYXN0bWVtID0gTG9uZy5NQVhfVkFMVUU7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBydC5nYygpOworICAgICAgICAgICAgICAgICAgICBydC5nYygpOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDUwKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxhc3RtZW0gPSBuZXdtZW07CisgICAgICAgICAgICAgICAgICAgIG5ld21lbSA9IHJ0LnRvdGFsTWVtb3J5KCkgLSBydC5mcmVlTWVtb3J5KCk7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAobmV3bWVtIDwgbGFzdG1lbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3bWVtOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHdyaXRlVGVzdFJlc3VsdCgpIHsKKyAgICAgICAgICAgIGlmIChpbkRvY01vZGUoKSkgeworICAgICAgICAgICAgICAgIGlmIChuZWVkTGluZUZlZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmZsdXNoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5lZWRMaW5lRmVlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9uZyBkbWVtID0gZ2V0bWVtKCkgLSBzdGFjay5tZW07CisgICAgICAgICAgICBsb25nIGR0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFjay5taWxsaXM7CisKKyAgICAgICAgICAgIGludCB0ZXN0RGVsdGEgPSB0ZXN0Q291bnQgLSBzdGFjay50YzsKKyAgICAgICAgICAgIGlmICh0ZXN0RGVsdGEgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGVycm9yRGVsdGEgPSBlcnJvckNvdW50IC0gc3RhY2suZWM7CisgICAgICAgICAgICBpbnQgaW52YWxpZERlbHRhID0gaW52YWxpZENvdW50IC0gc3RhY2suaWM7CisKKyAgICAgICAgICAgIHN0YWNrLmZsdXNoKCk7CisKKyAgICAgICAgICAgIGlmICghbmVlZExpbmVGZWVkKSB7CisgICAgICAgICAgICAgICAgaW5kZW50KGluZGVudExldmVsKTsKKyAgICAgICAgICAgICAgICBsb2cucHJpbnQoIn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5lZWRMaW5lRmVlZCA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAobWVtdXNhZ2UgfHwgZHRpbWUgPj0gdGltaW5nKSB7CisgICAgICAgICAgICAgICAgbG9nLnByaW50KCIgKCIpOworICAgICAgICAgICAgICAgIGlmIChtZW11c2FnZSkgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnQoImRtZW06ICIgKyBkbWVtKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGR0aW1lID49IHRpbWluZykgeworICAgICAgICAgICAgICAgICAgICBpZiAobWVtdXNhZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnQodGZvcm1hdC5mb3JtYXQoZHRpbWUgLyAxMDAwZikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2cucHJpbnQoIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlcnJvckRlbHRhICE9IDApIHsKKyAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiIEZBSUxFRCAoIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBlcnJvckRlbHRhCisgICAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbHVyZXMiCisgICAgICAgICAgICAgICAgICAgICAgICArICgoaW52YWxpZERlbHRhICE9IDApID8gIiwgIiArIGludmFsaWREZWx0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdGVzdHMgc2tpcHBlZCkiIDogIikiKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGludmFsaWREZWx0YSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIiBRdWFsaWZpZWQgKCIgKyBpbnZhbGlkRGVsdGEgKyAiIHRlc3RzIHNraXBwZWQpIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCIgUGFzc2VkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIHZvaWQgaW5kZW50KGludCBkaXN0YW5jZSkgeworICAgICAgICAgICAgYm9vbGVhbiBpZG0gPSBpbkRvY01vZGUoKTsKKyAgICAgICAgICAgIGlmIChuZWVkTGluZUZlZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWRtKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIiB7Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5lZWRMaW5lRmVlZCA9IGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2cucHJpbnQoc3BhY2VzLnN1YnN0cmluZygwLCBkaXN0YW5jZSAqIChpZG0gPyAzIDogMikpKTsKKworICAgICAgICAgICAgaWYgKGlkbSkgeworICAgICAgICAgICAgICAgIGxvZy5wcmludCgiLS0gIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRyYW5zbGl0VGVzdEZpbHRlcigpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy50ZmlsdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGFyZ2V0IG5hbWUgZm9yIGEgdGVzdCBjbGFzcy4gVGhpcyBpcyBlaXRoZXIgdGhlIGVuZCBvZiB0aGUKKyAgICAgKiBjbGFzcyBuYW1lLCBvciBpZiB0aGUgY2xhc3MgZGVjbGFyZXMgYSBwdWJsaWMgc3RhdGljIGZpZWxkCisgICAgICogQ0xBU1NfVEFSR0VUX05BTUUsIHRoZSB2YWx1ZSBvZiB0aGF0IGZpZWxkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRDbGFzc1RhcmdldE5hbWUoQ2xhc3MgdGVzdENsYXNzKSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gdGVzdENsYXNzLmdldE5hbWUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZpZWxkIGYgPSB0ZXN0Q2xhc3MuZ2V0RmllbGQoIkNMQVNTX1RBUkdFVF9OQU1FIik7CisgICAgICAgICAgICBuYW1lID0gKFN0cmluZykgZi5nZXQobnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgInN0YXRpYyBmaWVsZCBDTEFTU19UQVJHRVRfTkFNRSBtdXN0IGJlIGFjY2Vzc2libGUiKTsKKyAgICAgICAgfSBjYXRjaCAoTm9TdWNoRmllbGRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaW50IG4gPSBNYXRoLm1heChuYW1lLmxhc3RJbmRleE9mKCcuJyksIG5hbWUubGFzdEluZGV4T2YoJyQnKSk7CisgICAgICAgICAgICBpZiAobiAhPSAtMSkgeworICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZyhuICsgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIGdpdmVuIGFycmF5IHRvIHNlZSB0aGF0IGFsbCB0aGUgc3RyaW5ncyBpbiB0aGUgZXhwZWN0ZWQgYXJyYXkKKyAgICAgKiBhcmUgcHJlc2VudC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gbXNnCisgICAgICogICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSwgZm9yIGxvZyBvdXRwdXQKKyAgICAgKiBAcGFyYW0gYXJyYXkKKyAgICAgKiAgICAgICAgICAgIGFycmF5IG9mIHN0cmluZ3MgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gZXhwZWN0ZWQKKyAgICAgKiAgICAgICAgICAgIGFycmF5IG9mIHN0cmluZ3Mgd2UgZXhwZWN0IHRvIHNlZSwgb3IgbnVsbAorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiAnYXJyYXknLCBvciAtMSBvbiBlcnJvcgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY2hlY2tBcnJheShTdHJpbmcgbXNnLCBTdHJpbmcgYXJyYXlbXSwgU3RyaW5nIGV4cGVjdGVkW10pIHsKKyAgICAgICAgaW50IGV4cGxlbiA9IChleHBlY3RlZCAhPSBudWxsKSA/IGV4cGVjdGVkLmxlbmd0aCA6IDA7CisgICAgICAgIGlmICghKGV4cGxlbiA+PSAwICYmIGV4cGxlbiA8IDMxKSkgeyAvLyBbc2ljXSAzMSBub3QgMzIKKyAgICAgICAgICAgIGVycmxuKCJJbnRlcm5hbCBlcnJvciIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHNlZW5NYXNrID0gMDsKKyAgICAgICAgZm9yICg7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBhcnJheVtpXTsKKyAgICAgICAgICAgIGlmIChpICE9IDApCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQocyk7CisgICAgICAgICAgICAvLyBjaGVjayBleHBlY3RlZCBsaXN0CisgICAgICAgICAgICBmb3IgKGludCBqID0gMCwgYml0ID0gMTsgaiA8IGV4cGxlbjsgKytqLCBiaXQgPDw9IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHNlZW5NYXNrICYgYml0KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzLmVxdWFscyhleHBlY3RlZFtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlZW5NYXNrIHw9IGJpdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogXCIiICsgcyArICJcIiBzZWVuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4obXNnICsgIiA9IFsiICsgYnVmICsgIl0gKCIgKyBpICsgIikiKTsKKyAgICAgICAgLy8gZGlkIHdlIHNlZSBhbGwgZXhwZWN0ZWQgc3RyaW5ncz8KKyAgICAgICAgaWYgKCgoMSA8PCBleHBsZW4pIC0gMSkgIT0gc2Vlbk1hc2spIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwLCBiaXQgPSAxOyBqIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2osIGJpdCA8PD0gMSkgeworICAgICAgICAgICAgICAgIGlmICgoc2Vlbk1hc2sgJiBiaXQpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlwiIiArIGV4cGVjdGVkW2pdICsgIlwiIG5vdCBzZWVuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIGdpdmVuIGFycmF5IHRvIHNlZSB0aGF0IGFsbCB0aGUgbG9jYWxlcyBpbiB0aGUgZXhwZWN0ZWQgYXJyYXkKKyAgICAgKiBhcmUgcHJlc2VudC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gbXNnCisgICAgICogICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSwgZm9yIGxvZyBvdXRwdXQKKyAgICAgKiBAcGFyYW0gYXJyYXkKKyAgICAgKiAgICAgICAgICAgIGFycmF5IG9mIGxvY2FsZXMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gZXhwZWN0ZWQKKyAgICAgKiAgICAgICAgICAgIGFycmF5IG9mIGxvY2FsZXMgbmFtZXMgd2UgZXhwZWN0IHRvIHNlZSwgb3IgbnVsbAorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiAnYXJyYXknCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjaGVja0FycmF5KFN0cmluZyBtc2csIExvY2FsZSBhcnJheVtdLCBTdHJpbmcgZXhwZWN0ZWRbXSkgeworICAgICAgICBTdHJpbmcgc3Ryc1tdID0gbmV3IFN0cmluZ1thcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgc3Ryc1tpXSA9IGFycmF5W2ldLnRvU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBjaGVja0FycmF5KG1zZywgc3RycywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHRoZSBnaXZlbiBhcnJheSB0byBzZWUgdGhhdCBhbGwgdGhlIGxvY2FsZXMgaW4gdGhlIGV4cGVjdGVkIGFycmF5CisgICAgICogYXJlIHByZXNlbnQuCisgICAgICogCisgICAgICogQHBhcmFtIG1zZworICAgICAqICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UsIGZvciBsb2cgb3V0cHV0CisgICAgICogQHBhcmFtIGFycmF5CisgICAgICogICAgICAgICAgICBhcnJheSBvZiBsb2NhbGVzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGV4cGVjdGVkCisgICAgICogICAgICAgICAgICBhcnJheSBvZiBsb2NhbGVzIG5hbWVzIHdlIGV4cGVjdCB0byBzZWUsIG9yIG51bGwKKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgJ2FycmF5JworICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY2hlY2tBcnJheShTdHJpbmcgbXNnLCBVTG9jYWxlIGFycmF5W10sIFN0cmluZyBleHBlY3RlZFtdKSB7CisgICAgICAgIFN0cmluZyBzdHJzW10gPSBuZXcgU3RyaW5nW2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBzdHJzW2ldID0gYXJyYXlbaV0udG9TdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIGNoZWNrQXJyYXkobXNnLCBzdHJzLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgLy8gSlVuaXQtbGlrZSBhc3NlcnRpb25zLgorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0VHJ1ZShTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiBjb25kaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UsICJ0cnVlIiwgbnVsbCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0RmFsc2UoU3RyaW5nIG1lc3NhZ2UsIGJvb2xlYW4gY29uZGl0aW9uKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoIWNvbmRpdGlvbiwgbWVzc2FnZSwgImZhbHNlIiwgbnVsbCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0RXF1YWxzKFN0cmluZyBtZXNzYWdlLCBib29sZWFuIGV4cGVjdGVkLAorICAgICAgICAgICAgYm9vbGVhbiBhY3R1YWwpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChleHBlY3RlZCA9PSBhY3R1YWwsIG1lc3NhZ2UsIFN0cmluZworICAgICAgICAgICAgICAgIC52YWx1ZU9mKGV4cGVjdGVkKSwgU3RyaW5nLnZhbHVlT2YoYWN0dWFsKSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0RXF1YWxzKFN0cmluZyBtZXNzYWdlLCBsb25nIGV4cGVjdGVkLCBsb25nIGFjdHVhbCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KGV4cGVjdGVkID09IGFjdHVhbCwgbWVzc2FnZSwgU3RyaW5nCisgICAgICAgICAgICAgICAgLnZhbHVlT2YoZXhwZWN0ZWQpLCBTdHJpbmcudmFsdWVPZihhY3R1YWwpKTsKKyAgICB9CisKKyAgICAvLyBkbyBOYU4gYW5kIHJhbmdlIGNhbGN1bGF0aW9ucyB0byBwcmVjaXNpb24gb2YgZmxvYXQsIGRvbid0IHJlbHkgb24KKyAgICAvLyBwcm9tb3Rpb24gdG8gZG91YmxlCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0RXF1YWxzKFN0cmluZyBtZXNzYWdlLCBmbG9hdCBleHBlY3RlZCwKKyAgICAgICAgICAgIGZsb2F0IGFjdHVhbCwgZG91YmxlIGVycm9yKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gRmxvYXQuaXNJbmZpbml0ZShleHBlY3RlZCkKKyAgICAgICAgICAgICAgICA/IGV4cGVjdGVkID09IGFjdHVhbAorICAgICAgICAgICAgICAgIDogIShNYXRoLmFicyhleHBlY3RlZCAtIGFjdHVhbCkgPiBlcnJvcik7IC8vIGhhbmRsZXMgTmFOCisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQocmVzdWx0LCBtZXNzYWdlLCBTdHJpbmcudmFsdWVPZihleHBlY3RlZCkKKyAgICAgICAgICAgICAgICArIChlcnJvciA9PSAwID8gIiIgOiAiICh3aXRoaW4gIiArIGVycm9yICsgIikiKSwgU3RyaW5nCisgICAgICAgICAgICAgICAgLnZhbHVlT2YoYWN0dWFsKSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0RXF1YWxzKFN0cmluZyBtZXNzYWdlLCBkb3VibGUgZXhwZWN0ZWQsCisgICAgICAgICAgICBkb3VibGUgYWN0dWFsLCBkb3VibGUgZXJyb3IpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBEb3VibGUuaXNJbmZpbml0ZShleHBlY3RlZCkKKyAgICAgICAgICAgICAgICA/IGV4cGVjdGVkID09IGFjdHVhbAorICAgICAgICAgICAgICAgIDogIShNYXRoLmFicyhleHBlY3RlZCAtIGFjdHVhbCkgPiBlcnJvcik7IC8vIGhhbmRsZXMgTmFOCisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQocmVzdWx0LCBtZXNzYWdlLCBTdHJpbmcudmFsdWVPZihleHBlY3RlZCkKKyAgICAgICAgICAgICAgICArIChlcnJvciA9PSAwID8gIiIgOiAiICh3aXRoaW4gIiArIGVycm9yICsgIikiKSwgU3RyaW5nCisgICAgICAgICAgICAgICAgLnZhbHVlT2YoYWN0dWFsKSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0RXF1YWxzKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgZXhwZWN0ZWQsCisgICAgICAgICAgICBPYmplY3QgYWN0dWFsKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZXhwZWN0ZWQgPT0gbnVsbCA/IGFjdHVhbCA9PSBudWxsIDogZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAuZXF1YWxzKGFjdHVhbCk7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQocmVzdWx0LCBtZXNzYWdlLCBzdHJpbmdGb3IoZXhwZWN0ZWQpLAorICAgICAgICAgICAgICAgIHN0cmluZ0ZvcihhY3R1YWwpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnROb3RFcXVhbHMoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBleHBlY3RlZCwKKyAgICAgICAgICAgIE9iamVjdCBhY3R1YWwpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSAhKGV4cGVjdGVkID09IG51bGwgPyBhY3R1YWwgPT0gbnVsbCA6IGV4cGVjdGVkCisgICAgICAgICAgICAgICAgLmVxdWFscyhhY3R1YWwpKTsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChyZXN1bHQsIG1lc3NhZ2UsIHN0cmluZ0ZvcihleHBlY3RlZCksCisgICAgICAgICAgICAgICAgc3RyaW5nRm9yKGFjdHVhbCksICJub3QgZXF1YWwgdG8iLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRTYW1lKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgZXhwZWN0ZWQsIE9iamVjdCBhY3R1YWwpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChleHBlY3RlZCA9PSBhY3R1YWwsIG1lc3NhZ2UsIHN0cmluZ0ZvcihleHBlY3RlZCksCisgICAgICAgICAgICAgICAgc3RyaW5nRm9yKGFjdHVhbCksICI9PSIsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnROb3RTYW1lKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgZXhwZWN0ZWQsCisgICAgICAgICAgICBPYmplY3QgYWN0dWFsKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoZXhwZWN0ZWQgIT0gYWN0dWFsLCBtZXNzYWdlLCBzdHJpbmdGb3IoZXhwZWN0ZWQpLAorICAgICAgICAgICAgICAgIHN0cmluZ0ZvcihhY3R1YWwpLCAiIT0iLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnROdWxsKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgYWN0dWFsKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoYWN0dWFsID09IG51bGwsIG1lc3NhZ2UsIG51bGwsIHN0cmluZ0ZvcihhY3R1YWwpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnROb3ROdWxsKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgYWN0dWFsKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoYWN0dWFsICE9IG51bGwsIG1lc3NhZ2UsIG51bGwsIHN0cmluZ0ZvcihhY3R1YWwpLAorICAgICAgICAgICAgICAgICIhPSIsIHRydWUpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGZhaWwoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgZXJybG4obWVzc2FnZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGhhbmRsZUFzc2VydChib29sZWFuIHJlc3VsdCwgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQsIFN0cmluZyBhY3R1YWwpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChyZXN1bHQsIG1lc3NhZ2UsIGV4cGVjdGVkLCBhY3R1YWwsIG51bGwsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaGFuZGxlQXNzZXJ0KGJvb2xlYW4gcmVzdWx0LCBTdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCwgU3RyaW5nIGFjdHVhbCwgU3RyaW5nIHJlbGF0aW9uLCBib29sZWFuIGZsaXApIHsKKyAgICAgICAgaWYgKCFyZXN1bHQgfHwgaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlID09IG51bGwgPyAiIiA6ICIgIiArIG1lc3NhZ2U7CisgICAgICAgICAgICByZWxhdGlvbiA9IHJlbGF0aW9uID09IG51bGwgPyAiLCBnb3QgIiA6ICIgIiArIHJlbGF0aW9uICsgIiAiOworICAgICAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSyIgKyBtZXNzYWdlICsgIjogIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAoZmxpcCA/IGV4cGVjdGVkICsgcmVsYXRpb24gKyBhY3R1YWwgOiBleHBlY3RlZCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKwkJLy8gYXNzZXJ0IG11c3QgYXNzdW1lIGVycm9ycyBhcmUgdHJ1ZSBlcnJvcnMgYW5kIG5vdCBqdXN0IHdhcm5pbmdzCisJCS8vIHNvIGNhbm5vdCB3YXJubG4gaGVyZQorICAgICAgICAgICAgICAgIGVycmxuKG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjogZXhwZWN0ZWQiCisgICAgICAgICAgICAgICAgICAgICAgICArIChmbGlwID8gcmVsYXRpb24gKyBleHBlY3RlZCA6ICIgIiArIGV4cGVjdGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGFjdHVhbCAhPSBudWxsID8gcmVsYXRpb24gKyBhY3R1YWwgOiAiIikpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIHN0cmluZ0ZvcihPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiAibnVsbCI7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBTdHJpbmcpCisgICAgICAgICAgICByZXR1cm4gIlwiIiArIG9iaiArICciJzsKKyAgICAgICAgcmV0dXJuIG9iai5nZXRDbGFzcygpLmdldE5hbWUoKSArICI8IiArIG9iaiArICI+IjsKKyAgICB9CisKKyAgICAvLyBFbmQgSlVuaXQtbGlrZSBhc3NlcnRpb25zCisKKyAgICAvLyBQcmludFdyaXRlciBzdXBwb3J0CisKKyAgICBwdWJsaWMgUHJpbnRXcml0ZXIgZ2V0RXJyb3JMb2dQcmludFdyaXRlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcmludFdyaXRlcihuZXcgVGVzdExvZ1dyaXRlcih0aGlzLCBUZXN0TG9nLkVSUikpOworICAgIH0KKworICAgIHB1YmxpYyBQcmludFdyaXRlciBnZXRMb2dQcmludFdyaXRlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcmludFdyaXRlcihuZXcgVGVzdExvZ1dyaXRlcih0aGlzLCBUZXN0TG9nLkxPRykpOworICAgIH0KKworICAgIC8vIGVuZCBQcmludFdyaXRlciBzdXBwb3J0CisKKyAgICBwcm90ZWN0ZWQgVGVzdFBhcmFtcyBwYXJhbXMgPSBudWxsOworCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIHNwYWNlcyA9ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOworICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDE1MmM0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0OworCitwdWJsaWMgaW50ZXJmYWNlIFRlc3RMb2cgeworCisgICAgLyoqCisgICAgICogQWRkcyBnaXZlbiBzdHJpbmcgdG8gdGhlIGxvZyBpZiB3ZSBhcmUgaW4gdmVyYm9zZSBtb2RlLgorICAgICAqLworICAgIHZvaWQgbG9nKFN0cmluZyBtZXNzYWdlKTsKKworICAgIHZvaWQgbG9nbG4oU3RyaW5nIG1lc3NhZ2UpOworCisgICAgLyoqCisgICAgICogUmVwb3J0IGFuIGVycm9yCisgICAgICovCisgICAgdm9pZCBlcnIoU3RyaW5nIG1lc3NhZ2UpOworCisgICAgdm9pZCBlcnJsbihTdHJpbmcgbWVzc2FnZSk7CisKKyAgICAvKioKKyAgICAgKiBXYXJuIGFib3V0IG1pc3NpbmcgdGVzdHMgb3IgZGF0YS4KKyAgICAgKi8KKyAgICB2b2lkIHdhcm4oU3RyaW5nIG1lc3NhZ2UpOworICAgIAorICAgIHZvaWQgd2FybmxuKFN0cmluZyBtZXNzYWdlKTsKKworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9HID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXQVJOID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlIgPSAyOworCisgICAgdm9pZCBtc2coU3RyaW5nIG1lc3NhZ2UsIGludCBsZXZlbCwgYm9vbGVhbiBpbmNDb3VudCwgYm9vbGVhbiBuZXdsbik7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZ1dyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2dXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGQ2YWJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2dXcml0ZXIuamF2YQpAQCAtMCwwICsxLDQzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uV3JpdGVyOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdExvZ1dyaXRlciBleHRlbmRzIFdyaXRlciB7CisgICAgcHJpdmF0ZSBUZXN0TG9nIGxvZzsKKyAgICBwcml2YXRlIGludCBsZXZlbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gY2xvc2VkOworCisgICAgcHVibGljIFRlc3RMb2dXcml0ZXIoVGVzdExvZyBsb2csIGludCBsZXZlbCkgeworCXRoaXMubG9nID0gbG9nOworCXRoaXMubGV2ZWwgPSBsZXZlbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShjaGFyIGNidWZbXSwgaW50IG9mZiwgaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwl3cml0ZShuZXcgU3RyaW5nKGNidWYsIG9mZiwgbGVuKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIHN0cikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwlpZiAoY2xvc2VkKSB7CisJICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigic3RyZWFtIGNsb3NlZCIpOworCX0KKwlpZiAoIlxyXG4iLmluZGV4T2Yoc3RyKSAhPSAtMSkgeworCSAgICBsb2cubXNnKCIiLCBsZXZlbCwgbGV2ZWwgPT0gVGVzdExvZy5FUlIsIHRydWUpOworCX0gZWxzZSB7CisJICAgIGxvZy5tc2coc3RyLCBsZXZlbCwgbGV2ZWwgPT0gVGVzdExvZy5FUlIsIGZhbHNlKTsKKwl9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZmx1c2goKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwljbG9zZWQgPSB0cnVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThlZGI3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhCkBAIC0wLDAgKzEsMjUyIEBACisvLyMjaGVhZGVyCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworcHVibGljIGZpbmFsIGNsYXNzIFRlc3RVdGlsIHsKKyAgICAvKioKKyAgICAgKiBQYXRoIHRvIHRlc3QgZGF0YSBpbiBpY3U0anRlc3QuamFyCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9DQUxfREFUQV9QQVRIID0gIi9jb20vaWJtL2ljdS9kZXYvZGF0YS8iOworCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgcGF0aCB0byB0aGUgdGVzdCBkYXRhIGluIHRoZSBmaWxlIHN5c3RlbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1BBVEggPSAiL3NyYyIgKyBMT0NBTF9EQVRBX1BBVEg7CisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSBmb3IgdXNlci1kZWZpbmVkIGRhdGEgcGF0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1BBVEhfUFJPUEVSVFkgPSAiSUNVRGF0YVBhdGgiOworCisgICAgLyoqCisgICAgICogUHJvcGVydHkgZm9yIG1vZHVsYXIgYnVpbGQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9NT0RVTEFSX0JVSUxEX1BST1BFUlRZID0gIklDVU1vZHVsYXJCdWlsZCI7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgZnVsbCBkYXRhIHBhdGggdXNpbmcgdGhlIElDVURhdGFQYXRoLCBpZiBkZWZpbmVkLCBvciB0aGUgdXNlci5kaXIsIGlmIHdlCisgICAgICogYXJlIGFsbG93ZWQgYWNjZXNzIHRvIGl0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBkYXRhUGF0aChTdHJpbmcgZmlsZU5hbWUpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoREFUQV9QQVRIX1BST1BFUlRZKTsKKyAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gYXNzdW1lIHVzZXIuZGlyIGlzIGRpcmVjdGx5IGFib3ZlIHNyYyBkaXJlY3RvcnkKKyAgICAgICAgICAgIC8vIGRhdGEgcGF0aCBtdXN0IGVuZCBpbiAnLycgb3IgJ1wnLCBmaWxlTmFtZSBzaG91bGQgbm90IHN0YXJ0IHdpdGggb25lCisgICAgICAgICAgICBzID0gU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLmRpciIpOyAvLyBwcm90ZWN0ZWQgcHJvcGVydHkKKyAgICAgICAgICAgIHMgPSBzICsgREFUQV9QQVRIOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzICsgZmlsZU5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGlucHV0IHN0cmVhbSBvbiB0aGUgZGF0YSBmaWxlIGF0IHBhdGggJ25hbWUnIHJvb3RlZCBhdCB0aGUgZGF0YSBwYXRoCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnB1dFN0cmVhbSBnZXREYXRhU3RyZWFtKFN0cmluZyBuYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZGF0YVBhdGgobmFtZSkpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpcyA9IFRlc3RVdGlsLmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oTE9DQUxfREFUQV9QQVRIICsgbmFtZSk7CisgICAgICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgICAgIElPRXhjZXB0aW9uIGV4ID0KKyAgICAgICAgICAgICAgICAgICAgbmV3IElPRXhjZXB0aW9uKCJkYXRhIHJlc291cmNlICciICsgbmFtZSArICInIG5vdCBmb3VuZCIpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICAvL2luaXRDYXVzZSBBUEkgd2FzIGludHJvZHVjZWQgaW4gSkRLIDEuNAorICAgICAgICAgICAgICAgIGV4LmluaXRDYXVzZSh0KTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgICAgICB0LnByaW50U3RhY2tUcmFjZSgpOworLy8jZW5kaWYKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRocm93IGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBidWZmZXJlZCByZWFkZXIgb24gdGhlIGRhdGEgZmlsZSBhdCBwYXRoICduYW1lJyByb290ZWQgYXQgdGhlIGRhdGEgcGF0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJ1ZmZlcmVkUmVhZGVyIGdldERhdGFSZWFkZXIoU3RyaW5nIG5hbWUsIFN0cmluZyBjaGFyc2V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IGdldERhdGFTdHJlYW0obmFtZSk7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9CisgICAgICAgICAgICBjaGFyc2V0ID09IG51bGwKKyAgICAgICAgICAgICAgICA/IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcykKKyAgICAgICAgICAgICAgICA6IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcywgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBidWZmZXJlZCByZWFkZXIgb24gdGhlIGRhdGEgZmlsZSBhdCBwYXRoICduYW1lJyByb290ZWQgYXQgdGhlIGRhdGEgcGF0aCwKKyAgICAgKiB1c2luZyB0aGUgcHJvdmlkZWQgZW5jb2RpbmcuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBCdWZmZXJlZFJlYWRlciBnZXREYXRhUmVhZGVyKFN0cmluZyBuYW1lKQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0RGF0YVJlYWRlcihuYW1lLCBudWxsKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2hhciBESUdJVFNbXSA9CisgICAgICAgIHsKKyAgICAgICAgICAgICcwJywKKyAgICAgICAgICAgICcxJywKKyAgICAgICAgICAgICcyJywKKyAgICAgICAgICAgICczJywKKyAgICAgICAgICAgICc0JywKKyAgICAgICAgICAgICc1JywKKyAgICAgICAgICAgICc2JywKKyAgICAgICAgICAgICc3JywKKyAgICAgICAgICAgICc4JywKKyAgICAgICAgICAgICc5JywKKyAgICAgICAgICAgICdBJywKKyAgICAgICAgICAgICdCJywKKyAgICAgICAgICAgICdDJywKKyAgICAgICAgICAgICdEJywKKyAgICAgICAgICAgICdFJywKKyAgICAgICAgICAgICdGJywKKyAgICAgICAgICAgICdHJywKKyAgICAgICAgICAgICdIJywKKyAgICAgICAgICAgICdJJywKKyAgICAgICAgICAgICdKJywKKyAgICAgICAgICAgICdLJywKKyAgICAgICAgICAgICdMJywKKyAgICAgICAgICAgICdNJywKKyAgICAgICAgICAgICdOJywKKyAgICAgICAgICAgICdPJywKKyAgICAgICAgICAgICdQJywKKyAgICAgICAgICAgICdRJywKKyAgICAgICAgICAgICdSJywKKyAgICAgICAgICAgICdTJywKKyAgICAgICAgICAgICdUJywKKyAgICAgICAgICAgICdVJywKKyAgICAgICAgICAgICdWJywKKyAgICAgICAgICAgICdXJywKKyAgICAgICAgICAgICdYJywKKyAgICAgICAgICAgICdZJywKKyAgICAgICAgICAgICdaJyB9OworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgTk9UIHByaW50YWJsZSBBU0NJSS4gIFRoZSB0YWIsCisgICAgICogbmV3bGluZSBhbmQgbGluZWZlZWQgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCB1bnByaW50YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVbnByaW50YWJsZShpbnQgYykgeworICAgICAgICByZXR1cm4gIShjID49IDB4MjAgJiYgYyA8PSAweDdFKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRXNjYXBlIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMgdXNpbmcgPGJhY2tzbGFzaD51eHh4eCBub3RhdGlvbgorICAgICAqIGZvciBVKzAwMDAgdG8gVStGRkZGIGFuZCA8YmFja3NsYXNoPlV4eHh4eHh4eCBmb3IgVSsxMDAwMCBhbmQKKyAgICAgKiBhYm92ZS4gIElmIHRoZSBjaGFyYWN0ZXIgaXMgcHJpbnRhYmxlIEFTQ0lJLCB0aGVuIGRvIG5vdGhpbmcKKyAgICAgKiBhbmQgcmV0dXJuIEZBTFNFLiAgT3RoZXJ3aXNlLCBhcHBlbmQgdGhlIGVzY2FwZWQgbm90YXRpb24gYW5kCisgICAgICogcmV0dXJuIFRSVUUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKFN0cmluZ0J1ZmZlciByZXN1bHQsIGludCBjKSB7CisgICAgICAgIGlmIChpc1VucHJpbnRhYmxlKGMpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgaWYgKChjICYgfjB4RkZGRikgIT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1UnKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiAyOCldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiAyNCldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiAyMCldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiAxNildKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGICYgKGMgPj4gMTIpXSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiA4KV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGICYgKGMgPj4gNCldKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIGNdKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgTG9jayB7CisgICAgICAgIHByaXZhdGUgaW50IGNvdW50OworCisgICAgICAgIHN5bmNocm9uaXplZCB2b2lkIGluYygpIHsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgIH0KKworICAgICAgICBzeW5jaHJvbml6ZWQgdm9pZCBkZWMoKSB7CisgICAgICAgICAgICAtLWNvdW50OworICAgICAgICB9CisKKyAgICAgICAgc3luY2hyb25pemVkIGludCBjb3VudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZ28oKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeUFsbCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCg1MCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFRlc3RUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworICAgICAgICBMb2NrIGxvY2s7CisgICAgICAgIFJ1bm5hYmxlIHRhcmdldDsKKworICAgICAgICBUZXN0VGhyZWFkKExvY2sgbG9jaywgUnVubmFibGUgdGFyZ2V0KSB7CisgICAgICAgICAgICB0aGlzLmxvY2sgPSBsb2NrOworICAgICAgICAgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7CisKKyAgICAgICAgICAgIGxvY2suaW5jKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgICAgICAgICBsb2NrLndhaXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0LnJ1bigpOworICAgICAgICAgICAgfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2NrLmRlYygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJ1blVudGlsRG9uZShSdW5uYWJsZVtdIHRhcmdldHMpIHsKKyAgICAgICAgaWYgKHRhcmdldHMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidGFyZ2V0cyBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhcmdldHMubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIExvY2sgbG9jayA9IG5ldyBMb2NrKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbmV3IFRlc3RUaHJlYWQobG9jaywgdGFyZ2V0c1tpXSkuc3RhcnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvY2suZ28oKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBCdWZmZXJlZFJlYWRlciBvcGVuVVRGOFJlYWRlcihTdHJpbmcgZGlyLCBTdHJpbmcgZmlsZW5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBvcGVuUmVhZGVyKGRpcixmaWxlbmFtZSwiVVRGLTgiKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBCdWZmZXJlZFJlYWRlciBvcGVuUmVhZGVyKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShkaXIgKyBmaWxlbmFtZSk7CisgICAgICAgIHJldHVybiBuZXcgQnVmZmVyZWRSZWFkZXIoCisgICAgICAgICAgICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlKSwKKyAgICAgICAgICAgICAgICBlbmNvZGluZyksCisgICAgICAgICAgICA0KjEwMjQpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYTUxMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEKQEAgLTAsMCArMSwzNzcgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKKy8qKgorICogVXRpbGl0eSBjbGFzcyBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IAorICogc3VwcG9ydC4gVGhpcyBvbmUgaXMgd3JpdHRlbiBwdXJlbHkgZm9yIHVwZGF0aW5nCisgKiBOb3JtYWxpemF0aW9uIHNhbXBsZSBmcm9tIHRoZSB1bmljb2RlLm9yZyBzaXRlLgorICogSWYgeW91IHdhbnQgdGhlIHJlYWwgdGhpbmcsIHVzZSBVVEYxNiBjbGFzcworICogZnJvbSBJQ1U0SgorICogQGF1dGhvciBWbGFkaW1pciBXZWluc3RlaW4sIE1hcmt1cyBTY2hlcmVyCisgKi8KK3B1YmxpYyBjbGFzcyBVVEYxNlV0aWwgeworICAgIHN0YXRpYyBmaW5hbCBpbnQgc3VwcE9mZnNldCA9ICgweGQ4MDAgPDwgMTApICsgMHhkYzAwIC0gMHgxMDAwMDsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBuZXh0Q29kZVBvaW50LiBSZXR1cm5zIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiBpbiBhIHN0cmluZy4gCisgICAgICogQHBhcmFtIHMgU3RyaW5nIGluIHF1ZXN0aW9uCisgICAgICogQHBhcmFtIGkgaW5kZXggZnJvbSB3aGljaCB3ZSB3YW50IGEgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gaW50IGNvZGVwb2ludCBhdCBpbmRleCBpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgbmV4dENvZGVQb2ludChTdHJpbmcgcywgaW50IGkpIHsKKyAgICAgICAgaW50IGNoID0gcy5jaGFyQXQoaSk7CisgICAgICAgIGlmICgweGQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhkYmZmICYmICsraSA8IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjaDIgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgweGRjMDAgPD0gY2gyICYmIGNoMiA8PSAweGRmZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IChjaCA8PCAxMCkgKyBjaDIgLSBzdXBwT2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgcHJldkNvZGVQb2ludC4gR2V0cyB0aGUgY29kZSBwb2ludCBwcmVjZWRpbmcKKyAgICAgKiBpbmRleCBpIChwcmVkZWNyZW1lbnQpLiAKKyAgICAgKiBAcGFyYW0gcyBTdHJpbmcgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBpbiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIGludCBjb2RlcG9pbnQgYXQgaW5kZXggLS1pCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHJldkNvZGVQb2ludChTdHJpbmcgcywgaW50IGkpIHsKKyAgICAgICAgaW50IGNoID0gcy5jaGFyQXQoLS1pKTsKKyAgICAgICAgaWYgKDB4ZGMwMCA8PSBjaCAmJiBjaCA8PSAweGRmZmYgJiYgLS1pID49IDApIHsKKyAgICAgICAgICAgIGludCBjaDIgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgweGQ4MDAgPD0gY2gyICYmIGNoMiA8PSAweGRiZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IChjaDIgPDwgMTApICsgY2ggLSBzdXBwT2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgbmV4dENvZGVQb2ludC4gUmV0dXJucyB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICogaW4gYSBzdHJpbmcuIAorICAgICAqIEBwYXJhbSBzIFN0cmluZ0J1ZmZlciBpbiBxdWVzdGlvbgorICAgICAqIEBwYXJhbSBpIGluZGV4IGZyb20gd2hpY2ggd2Ugd2FudCBhIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIGludCBjb2RlcG9pbnQgYXQgaW5kZXggaQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IG5leHRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHMsIGludCBpKSB7CisgICAgICAgIGludCBjaCA9IHMuY2hhckF0KGkpOworICAgICAgICBpZiAoMHhkODAwIDw9IGNoICYmIGNoIDw9IDB4ZGJmZiAmJiArK2kgPCBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpbnQgY2gyID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoMHhkYzAwIDw9IGNoMiAmJiBjaDIgPD0gMHhkZmZmKSB7CisgICAgICAgICAgICAgICAgY2ggPSAoY2ggPDwgMTApICsgY2gyIC0gc3VwcE9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIHByZXZDb2RlUG9pbnQuIEdldHMgdGhlIGNvZGUgcG9pbnQgcHJlY2VkaW5nCisgICAgICogaW5kZXggaSAocHJlZGVjcmVtZW50KS4gCisgICAgICogQHBhcmFtIHMgU3RyaW5nQnVmZmVyIGluIHF1ZXN0aW9uCisgICAgICogQHBhcmFtIGkgaW5kZXggaW4gc3RyaW5nCisgICAgICogQHJldHVybiBpbnQgY29kZXBvaW50IGF0IGluZGV4IC0taQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHByZXZDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHMsIGludCBpKSB7CisgICAgICAgIGludCBjaCA9IHMuY2hhckF0KC0taSk7CisgICAgICAgIGlmICgweGRjMDAgPD0gY2ggJiYgY2ggPD0gMHhkZmZmICYmIC0taSA+PSAwKSB7CisgICAgICAgICAgICBpbnQgY2gyID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoMHhkODAwIDw9IGNoMiAmJiBjaDIgPD0gMHhkYmZmKSB7CisgICAgICAgICAgICAgICAgY2ggPSAoY2gyIDw8IDEwKSArIGNoIC0gc3VwcE9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNvZGVQb2ludExlbmd0aC4gUmV0dXJucyB0aGUgbGVuZ3RoIAorICAgICAqIGluIFVURi0xNiBjb2RlIHVuaXRzIG9mIGEgZ2l2ZW4gY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBjIGNvZGUgcG9pbnQgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIGludCBsZW5ndGggaW4gVVRGLTE2IGNvZGUgdW5pdHMuIENhbiBiZSAxIG9yIDIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRMZW5ndGgoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGMgPD0gMHhmZmZmID8gMSA6IDI7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGFwcGVuZENvZGVQb2ludC4gQXBwZW5kcyBhIGNvZGUgcG9pbnQKKyAgICAgKiB0byBhIFN0cmluZ0J1ZmZlcgorICAgICAqIEBwYXJhbSBidWZmZXIgU3RyaW5nQnVmZmVyIGluIHF1ZXN0aW9uCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYXBwZW5kCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIGFwcGVuZENvZGVQb2ludChTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgY2gpIHsKKyAgICAgICAgaWYgKGNoIDw9IDB4ZmZmZikgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhciljaCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSgweGQ3YzAgKyAoY2ggPj4gMTApKSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSgweGRjMDAgKyAoY2ggJiAweDNmZikpKTsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgaW5zZXJ0Q29kZVBvaW50LiBJbnNlcnRzIGEgY29kZSBwb2ludCBpbgorICAgICAqIGEgU3RyaW5nQnVmZmVyCisgICAgICogQHBhcmFtIGJ1ZmZlciBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBhdCB3aGljaCB3ZSB3YW50IGNvZGUgcG9pbnQgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgdm9pZCBpbnNlcnRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IGksIGludCBjaCkgeworICAgICAgICBpZiAoY2ggPD0gMHhmZmZmKSB7CisgICAgICAgICAgICBidWZmZXIuaW5zZXJ0KGksIChjaGFyKWNoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJ1ZmZlci5pbnNlcnQoaSwgKGNoYXIpKDB4ZDdjMCArIChjaCA+PiAxMCkpKS5pbnNlcnQoaSArIDEsIChjaGFyKSgweGRjMDAgKyAoY2ggJiAweDNmZikpKTsgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTWV0aG9kIHNldENvZGVQb2ludEF0LiBDaGFuZ2VzIGEgY29kZSBwb2ludCBhdCBhCisgICAgICogZ2l2ZW4gaW5kZXguIENhbiBjaGFuZ2UgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBidWZmZXIgU3RyaW5nQnVmZmVyIGluIHF1ZXN0aW9uCisgICAgICogQHBhcmFtIGkgaW5kZXggYXQgd2hpY2ggd2Ugd2FudCB0byBjaGFuZ2UgdGhlIGNvbnRlbnRzCisgICAgICogQHBhcmFtIGNoIHJlcGxhY2VtZW50IGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIGludCBkaWZmZXJlbmNlIGluIHJlc3VsdGluZyBTdHJpbmdCdWZmZXIgbGVuZ3RoCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgc2V0Q29kZVBvaW50QXQoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IGksIGludCBjaCkgeworICAgICAgICBpbnQgY3AgPSBuZXh0Q29kZVBvaW50KGJ1ZmZlciwgaSk7CisgICAgICAgIAorICAgICAgICBpZiAoY2ggPD0gMHhmZmZmICYmIGNwIDw9IDB4ZmZmZikgeyAvLyBCb3RoIEJNUAorICAgICAgICAgICAgYnVmZmVyLnNldENoYXJBdChpLCAoY2hhciljaCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA+IDB4ZmZmZiAmJiBjcCA+IDB4ZmZmZikgeyAvLyBCb3RoIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgIGJ1ZmZlci5zZXRDaGFyQXQoaSwgKGNoYXIpKDB4ZDdjMCArIChjaCA+PiAxMCkpKTsKKyAgICAgICAgICAgIGJ1ZmZlci5zZXRDaGFyQXQoaSsxLCAoY2hhcikoMHhkYzAwICsgKGNoICYgMHgzZmYpKSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA8PSAweGZmZmYgJiYgY3AgPiAweGZmZmYpIHsgLy8gcHV0dGluZyBCTVAgaW5zdGVhZCBvZiBzdXBwbGVtZW50YXJ5LCBidWZmZXIgc2hyaW5rcworICAgICAgICAgICAgYnVmZmVyLnNldENoYXJBdChpLCAoY2hhciljaCk7CisgICAgICAgICAgICBidWZmZXIuZGVsZXRlQ2hhckF0KGkrMSk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0gZWxzZSB7IC8vaWYgKGNoID4gMHhmZmZmICYmIGNwIDw9IDB4ZmZmZikgeyAvLyBwdXR0aW5nIHN1cHBsZW1lbnRhcnkgaW5zdGVhZCBvZiBCTVAsIGJ1ZmZlciBncm93cworICAgICAgICAgICAgYnVmZmVyLnNldENoYXJBdChpLCAoY2hhcikoMHhkN2MwICsgKGNoID4+IDEwKSkpOworICAgICAgICAgICAgYnVmZmVyLmluc2VydChpKzEsIChjaGFyKSgweGRjMDAgKyAoY2ggJiAweDNmZikpKTsgCisgICAgICAgICAgICByZXR1cm4gMTsgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNvdW50Q29kZVBvaW50LiBDb3VudHMgdGhlIFVURi0zMiBjb2RlIHBvaW50cworICAgICAqIGluIGEgVVRGLTE2IGVuY29kZWQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgU3RyaW5nIGluIHF1ZXN0aW9uLgorICAgICAqIEByZXR1cm4gaW50IG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGlzIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvdW50Q29kZVBvaW50KFN0cmluZyBzb3VyY2UpIAorICAgIHsgICAgICAgICAKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsrIGkpIAorICAgICAgICB7CisgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiAweGRjMDAgPD0gY2ggJiYgY2ggPD0gMHhkZmZmKSB7CisgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOyAgICAgICAgICAgLy8gY291bnQgdmFsaWQgdHJhaWwgYXMgemVybworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSAoMHhkODAwIDw9IGNoICYmIGNoIDw9IDB4ZGJmZik7CisgICAgICAgICAgICAgICAgKysgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgb3RoZXJzIGFzIDEKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTWV0aG9kIGNvdW50Q29kZVBvaW50LiBDb3VudHMgdGhlIFVURi0zMiBjb2RlIHBvaW50cworICAgICAqIGluIGEgVVRGLTE2IGVuY29kZWQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgU3RyaW5nQnVmZmVyIGluIHF1ZXN0aW9uLgorICAgICAqIEByZXR1cm4gaW50IG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGlzIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvdW50Q29kZVBvaW50KFN0cmluZ0J1ZmZlciBzb3VyY2UpIAorICAgIHsgICAgICAgICAKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsrIGkpIAorICAgICAgICB7CisgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiAweGRjMDAgPD0gY2ggJiYgY2ggPD0gMHhkZmZmKSB7CisgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOyAgICAgICAgICAgLy8gY291bnQgdmFsaWQgdHJhaWwgYXMgemVybworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSAoMHhkODAwIDw9IGNoICYmIGNoIDw9IDB4ZGJmZik7CisgICAgICAgICAgICAgICAgKysgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgb3RoZXJzIGFzIDEKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gdmFsdWUgZm9yIFN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAgPSAweDEwMDAwOyAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBob3cgbWFueSBjaGFycyB0aGlzIGNoYXIzMiByZXF1aXJlcy4KKyAgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UgPGNvZGU+CisgICAgICogPGEgaHJlZj0iLi4vVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIAorICAgICAqIGNoYXIzMiBiZWZvcmUgY2FsbGluZy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyIHRoZSBpbnB1dCBjb2RlcG9pbnQuCisgICAgICogQHJldHVybiAyIGlmIGlzIGluIHN1cHBsZW1lbnRhcnkgc3BhY2UsIG90aGVyd2lzZSAxLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDaGFyQ291bnQoaW50IGNoYXIzMikgCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAyOworICAgIH0KKyAgICAvKioKKyAgICAgKiBMZWFkIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFID0gMHhEQkZGOworICAgIC8qKgorICAgICAqIExlYWQgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgPSAweEQ4MDA7CisgICAgCisgICAgLyoqCisgICAgICogVHJhaWwgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFID0gMHhEQzAwOyAKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgPSAweERGRkY7CisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb2RlIHZhbHVlIGlzIGEgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSBzdXJyb2dhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3Vycm9nYXRlKGNoYXIgY2hhcjE2KSAKKyAgICB7CisgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgPD0gY2hhcjE2ICYmIAorICAgICAgICAgICAgY2hhcjE2IDw9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAgKiBAcGFyYW0gY2hhcjE2IHRoZSBpbnB1dCBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiB0cnVlIGlmZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGlzIGEgdHJhaWwgc3Vycm9nYXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1RyYWlsU3Vycm9nYXRlKGNoYXIgY2hhcjE2KSAKKyAgICB7CisgICAgICAgIHJldHVybiAoVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYgCisgICAgICAgICAgICAgICAgY2hhcjE2IDw9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgYSBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBAcGFyYW0gY2hhcjE2IHRoZSBpbnB1dCBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiB0cnVlIGlmZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGlzIGEgbGVhZCBzdXJyb2dhdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZWFkU3Vycm9nYXRlKGNoYXIgY2hhcjE2KSAKKyAgICB7CisgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgPD0gY2hhcjE2ICYmIAorICAgICAgICAgICAgY2hhcjE2IDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRTsKKyAgICB9CisgICAgLyoqCisgICAgICogRXh0cmFjdCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgZnJvbSBhIHN1YnN0cmluZy4KKyAgICAgKiBVc2VkIHdoZW4gaXRlcmF0aW5nIGZvcndhcmRzIG9yIGJhY2t3YXJkcyAod2l0aAorICAgICAqIDxjb2RlPlVURjE2LmdldENoYXJDb3VudCgpPC9jb2RlPiwgYXMgd2VsbCBhcyByYW5kb20gYWNjZXNzLiBJZiBhCisgICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSAKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+VUNoYXJhY3Rlci5pc0xlZ2FsKCkKKyAgICAgKiA8L2E+PC9jb2RlPiBvbiB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAqIElmIHRoZSBjaGFyIHJldHJpZXZlZCBpcyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGl0cyBzdXBwbGVtZW50YXJ5CisgICAgICogY2hhcmFjdGVyIHdpbGwgYmUgcmV0dXJuZWQuIElmIGEgY29tcGxldGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgaXMgCisgICAgICogbm90IGZvdW5kIHRoZSBpbmNvbXBsZXRlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHBhcmFtIHNvdXJjZSBhcnJheSBvZiBVVEYtMTYgY2hhcnMKKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGLTE2IG9mZnNldCByZWxhdGl2ZSB0byBzdGFydAorICAgICAqIEByZXR1cm4gVVRGLTMyIHZhbHVlIGZvciB0aGUgVVRGLTMyIHZhbHVlIHRoYXQgY29udGFpbnMgdGhlIGNoYXIgYXQKKyAgICAgKiAgICAgICAgIG9mZnNldDE2LiBUaGUgYm91bmRhcmllcyBvZiB0aGF0IGNvZGVwb2ludCBhcmUgdGhlIHNhbWUgYXMgaW4KKyAgICAgKiAgICAgICAgIDxjb2RlPmJvdW5kczMyKCk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgbm90IHdpdGhpbiAKKyAgICAgKiAgICAgICAgICAgIHRoZSByYW5nZSBvZiBzdGFydCBhbmQgbGltaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgb2Zmc2V0MTYgKz0gc3RhcnQ7CisgICAgICAgIGlmIChvZmZzZXQxNiA8IHN0YXJ0IHx8IG9mZnNldDE2ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNoYXIgc2luZ2xlID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgaWYgKCFpc1N1cnJvZ2F0ZShzaW5nbGUpKSB7CisgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCB0aGUgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHkgaW4gdXNhZ2UsIGFuZCBiZWNhdXNlIHRoZSBmcmVxdWVuY3kgb2YgcGFpcnMgaXMgCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuICAgICAgCisgICAgICAgIGlmIChzaW5nbGUgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICBvZmZzZXQxNiArKzsKKyAgICAgICAgICAgIGlmIChvZmZzZXQxNiA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBnZXRSYXdTdXBwbGVtZW50YXJ5KHNpbmdsZSwgdHJhaWwpOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBlbHNlIHsgLy8gaXNUcmFpbFN1cnJvZ2F0ZShzaW5nbGUpLCBzbworICAgICAgICAgICAgaWYgKG9mZnNldDE2ID09IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldDE2IC0tOworICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUobGVhZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwgc2luZ2xlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2luZ2xlOyAvLyByZXR1cm4gdW5tYXRjaGVkIHN1cnJvZ2F0ZQorICAgIH0KKyAgICAvKioKKyAgICAgKiBTaGlmdCB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgdG8gZm9ybSBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9TSElGVF8gPSAxMDsKKyAgICAKKyAgICAvKiogCisgICAgICogT2Zmc2V0IHRvIGFkZCB0byBjb21iaW5lZCBzdXJyb2dhdGUgcGFpciB0byBhdm9pZCBtc2tpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9PRkZTRVRfID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAtIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExFQURfU1VSUk9HQVRFX1NISUZUXykgLSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUU7ICAgCisKKyAgICAKKyAgIC8qKgorICAgICogRm9ybXMgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgZnJvbSB0aGUgYXJndW1lbnQgY2hhcmFjdGVyPGJyPgorICAgICogTm90ZSB0aGlzIGlzIGZvciBpbnRlcm5hbCB1c2UgaGVuY2Ugbm8gY2hlY2tzIGZvciB0aGUgdmFsaWRpdHkgb2YgdGhlCisgICAgKiBzdXJyb2dhdGUgY2hhcmFjdGVycyBhcmUgZG9uZQorICAgICogQHBhcmFtIGxlYWQgbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gdHJhaWwgdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICogQHJldHVybiBjb2RlIHBvaW50IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0UmF3U3VwcGxlbWVudGFyeShjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICByZXR1cm4gKGxlYWQgPDwgTEVBRF9TVVJST0dBVEVfU0hJRlRfKSArIHRyYWlsICsgU1VSUk9HQVRFX09GRlNFVF87CisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2JpZ2RlYy9EaWFnQmlnRGVjaW1hbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2JpZ2RlYy9EaWFnQmlnRGVjaW1hbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzYjcxZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvYmlnZGVjL0RpYWdCaWdEZWNpbWFsLmphdmEKQEAgLTAsMCArMSw1MzU5IEBACisvLyMjaGVhZGVyCisvKiBHZW5lcmF0ZWQgZnJvbSAnRGlhZ0JpZ0RlY2ltYWwubnJ4JyAyNyBNYXIgMjAwMCAyMjozODo0NCBbdjEuMTYyXSAqLworLyogT3B0aW9uczogQmluYXJ5IENvbW1lbnRzIENyb3NzcmVmIEZvcm1hdCBKYXZhIExvZ28gVHJhY2UxIFZlcmJvc2UzICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmJpZ2RlYzsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIERlY2ltYWwgZGlhZ25vc3RpYyB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mYyAqLworLyogQ29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5Ni0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIERpYWdCaWdEZWNpbWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIEEgY2xhc3MgdGhhdCB0ZXN0cyB0aGUgQmlnRGVjaW1hbCBhbmQgTWF0aENvbnRleHQgY2xhc3Nlcy4gICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBUaGUgdGVzdHMgaGVyZSBhcmUgZGVyaXZlZCBmcm9tIG9yIGNvdmVyIHRoZSBzYW1lIHBhdGhzIGFzOiAgICAgICovCisvKiAgICAgIC0tIEFOU0kgWDMtMjc0IHRlc3RjYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgLS0gSmF2YSBKQ0sgdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAtLSBOZXRSZXh4IHRlc3RjYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIC0tIFZNL0NNUyBTLzM3MCBSRVhYIGltcGxlbWVudGF0aW9uIHRlc3RjYXNlcyBbMTk4MStdICAgICAgICAgKi8KKy8qICAgICAgLS0gSUJNIFZpZW5uYSBMYWJvcmF0b3J5IFJleHggY29tcGlsZXIgdGVzdGNhc2VzIFsxOTg4K10gICAgICAqLworLyogICAgICAtLSBOZXcgdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgVGhlIGF1dGhvcml0YXRpdmUgc291cmNlcyBmb3IgaG93IHRoZSB1bmRlcmx5aW5nIHRlY2hub2xvZ3kgICAgICAqLworLyogICAoYXJpdGhtZXRpYykgc2hvdWxkIHdvcmsgYXJlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIC0tIGZvciBkaWdpdHM9MCAoZml4ZWQgcG9pbnQpOiBqYXZhLm1hdGguQmlnRGVjaW1hbCAgICAgICAgICAgKi8KKy8qICAgICAgLS0gZm9yIGRpZ2l0cz4wIChmbG9hdGluZyBwb2ludCk6IEFOU0kgWDMuMjc0LTE5OTYgKyBlcnJhdGEgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIENoYW5nZSBsaXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4wOS4wNSBJbml0aWFsIGltcGxlbWVudGF0aW9uLCBmcm9tIERpYWdSZXh4IFtOZXRSZXh4IHRlc3RzXSAgICovCisvKiAxOTk4LjA1LjAyIDAuMDcgY2hhbmdlcyAoZS5nLiwgY29tcGFyZVRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMDYgUm91bmRpbmcgbW9kZXMgYW5kIGZvcm1hdCBhZGRpdGlvbnMgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4yNSBSZW5hbWUgZnJvbSBEaWFnRGVjaW1hbDsgbWFrZSBzdGFuZC1hbG9uZSBbYWRkICAgICAgICAgICovCisvKiAgICAgICAgICAgIERpYWdFeGNlcHRpb24gYXMgYSBNaW5vciBjbGFzc10gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMjcgU3RhcnQgYWRkaW5nIHRlc3RjYXNlcyBmb3IgRElHSVRTPTAvRk9STT1QTEFJTiBjYXNlcyAgICAqLworLyogICAgICAgICAgICBSZW9yZ2FuaXplIGZvciBmYXN0ZXIgdHJhY2UgY29tcGlsYXRpb24gICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA2LjI4IG5ldzogdmFsdWVvZiwgc2NhbGUsIG1vdmVQb2ludFgsIHVuc2NhbGVkVmFsdWUsIGV0Yy4gICAgKi8KKy8qIDE5OTguMDcuMDcgU2NhbGVkIGRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNy4wOCBzZXRTY2FsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA3LjE1IG5ldyBzY2FmZm9sZGluZyAoTWlub3IgVGVzdCBjbGFzcykgLS0gc2VlIGRpYWdhYnMgICAgICAgKi8KKy8qIDE5OTguMTIuMTQgYWRkIHRvQmlnRGVjaW1hbCBhbmQgQmlnRGVjaW1hbChqYXZhLm1hdGguQmlnRGVjaW1hbCkgICAqLworLyogMTk5OS4wMi4wNCBudW1iZXIgcHJlcGFyYXRpb24gcm91bmRzIGluc3RlYWQgb2YgZGlnaXRzKzEgdHJ1bmMgICAgICovCisvKiAxOTk5LjAyLjA5IGZvcm1hdCBtZXRob2Qgbm93IG9ubHkgaGFzIHR3byBzaWduYXR1cmVzICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMjcgbm8gbG9uZ2VyIHVzZSBSZXh4IGNsYXNzIG9yIFJleHhJTyBjbGFzcyAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4wNSBhZGQgTWF0aENvbnRleHQgdGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IHVwZGF0ZSBmb3IgMC45NiBbbm8gbnVsbCBzZXR0aW5ncywgZXRjLl0gICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgZHJvcCBzdW5kcnkgY29uc3RydWN0b3JzOyBubyBibGFua3M7IGNoYXJbXSBnZXRzIGludHMgICAqLworLyogICAgICAgICAgICBkcm9wIHN1bmRyeSBjb252ZXJ0ZXJzLCBhZGQgRXhhY3QgY29udmVydGVycyAgICAgICAgICAgICovCisvKiAxOTk5LjA1LjI3IGFkZGl0aW9uYWwgdGVzdHMgZm9yIHNjYWxlZCBhcml0aG1ldGljICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDYuMjkgYWRkaXRpb25hbCB0ZXN0cyBmb3IgZXhwb25lbnQgb3ZlcmZsb3dzICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wNy4wMyBhZGQgJ2NvbnRpbnVlJyBvcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjA3LjEwIGFkZGl0aW9uYWwgdGVzdHMgZm9yIHNjYWxlZCBhcml0aG1ldGljICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTggcmFuZG9tbHktZ2VuZXJhdGVkIHRlc3RzIGFkZGVkIGZvciBiYXNlIG9wZXJhdG9ycyAgICAgICAqLworLyogMTk5OS4xMC4yOCB3ZWlyZCBpbnRWYWx1ZUV4YWN0IGJhZCBjYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjEyLjIxIG11bHRpcGxpY2F0aW9uIGZhc3QgcGF0aCBmYWlsdXJlIGFuZCBlZGdlIGNhc2VzICAgICAgICAgKi8KKy8qIDIwMDAuMDEuMDEgY29weXJpZ2h0IHVwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMjAwMC4wMy4yNiBjb3NtZXRpYyB1cGRhdGVzOyBhZGQgZXh0cmEgZm9ybWF0KCkgdGVzdGNhc2VzICAgICAgICAgICovCisvKiAyMDAwLjAzLjI3IDEuMDAgbW92ZSB0byBjb20uaWJtLmljdS5tYXRoIHBhY2thZ2U7IG9wZW4gc291cmNlIHJlbGVhc2U7ICovCisvKiAgICAgICAgICAgICAgICAgY2hhbmdlIHRvIGphdmFkb2MgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvLyBub3RlIEJJTkFSWSBmb3IgY29udmVyc2lvbnMgY2hlY2tpbmcKKworCisKKworLyoqCisgKiBUaGUgPGNvZGU+RGlhZ0JpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzIGZvcm1zIGEgc3RhbmRhbG9uZSB0ZXN0IHN1aXRlCisgKiBmb3IgdGhlIDxjb2RlPmNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDwvY29kZT4gYW5kCisgKiA8Y29kZT5jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0PC9jb2RlPiBjbGFzc2VzIChvciwgYnkgY2hhbmdpbmcgdGhlCisgKiA8Y29kZT5wYWNrYWdlPC9jb2RlPiBzdGF0ZW1lbnQsIG90aGVyIGNsYXNzZXMgb2YgdGhlIHNhbWUgbmFtZXMgYW5kCisgKiBkZWZpbml0aW9uIGluIG90aGVyIHBhY2thZ2VzKS4gIEl0IG1heSBhbHNvIGJlIHVzZWQgYXMgYSBjb25zdHJ1Y3RlZAorICogb2JqZWN0IHRvIGVtYmVkIHRoZSB0ZXN0cyBpbiBhbiBleHRlcm5hbCB0ZXN0IGhhcm5lc3MuCisgKiA8cD4KKyAqIFRoZSB0ZXN0cyBhcmUgY29sbGVjdGVkIGludG8gPGk+Z3JvdXBzPC9pPiwgZWFjaCBjb3JyZXNwb25kaW5nIHRvIGEKKyAqIHRlc3RlZCBtZXRob2Qgb3IgYSBtb3JlIGdlbmVyYWwgZ3JvdXBpbmcuICBCeSBkZWZhdWx0LCB3aGVuIHJ1biBmcm9tCisgKiB0aGUgc3RhdGljIHtAbGluayAjbWFpbihqYXZhLmxhbmcuU3RyaW5nW10pfSBtZXRob2QsIHRoZSBydW4gd2lsbCBlbmQKKyAqIGlmIGFueSB0ZXN0IGZhaWxzIGluIGEgZ3JvdXAuICBUaGUgPGNvZGU+Y29udGludWU8L2NvZGU+IGFyZ3VtZW50IG1heQorICogYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSB0ZXN0cyB0byBydW4gdG8gY29tcGxldGlvbi4KKyAqIDxwPgorICogVHdvIG1pbm9yIChpbm5lcikgY2xhc3NlcyBhcmUgdXNlZDsge0BsaW5rCisgKiBEaWFnQmlnRGVjaW1hbC5EaWFnRXhjZXB0aW9ufSBpcyB1c2VkIHRvIHNpZ25hbCB0aGUgZmFpbHVyZSBvZiBhIHRlc3QKKyAqIGdyb3VwLCBhbmQge0BsaW5rIERpYWdCaWdEZWNpbWFsLlRlc3R9LCBhIGRlcGVuZGVudCBtaW5vciBjbGFzcywgaXMKKyAqIHVzZWQgdG8gcmVnaXN0ZXIgdGVzdHMgc28gdGhhdCBhIHN1bW1hcnkgb2YgZmFpbHVyZXMgKG9yIHN1Y2Nlc3MpIGNhbiBiZQorICogcHJlc2VudGVkIGFzIGVhY2ggZ3JvdXAgaXMgY29tcGxldGVkLgorICoKKyAqIEBzZWUgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbAorICogQHNlZSAgICAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dAorICogQHZlcnNpb24gMS4wMCAyMDAwLjAzLjI3CisgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICovCisKK3B1YmxpYyBjbGFzcyBEaWFnQmlnRGVjaW1hbCBleHRlbmRzIFRlc3RGbXdreworIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgJDA9IkRpYWdCaWdEZWNpbWFsLm5yeCI7CisgCisgLyogcHJvcGVydGllcyBzaGFyZWQgKi8KKyBqYXZhLnV0aWwuVmVjdG9yIFRlc3RzPW5ldyBqYXZhLnV0aWwuVmVjdG9yKDEwMCk7IC8vIHNjYWZmb2xkaW5nCisgCisgLyogcHJvcGVydGllcyBwcml2YXRlICovCisgcHJpdmF0ZSBpbnQgdG90YWxjb3VudD0wOyAvLyBjb3VudHMgdGVzdHMgcnVuCisgCisgLyogcHJvcGVydGllcyBjb25zdGFudCBwcml2YXRlICovCisgCisgLyogQ291bnQgb2YgdGVzdCBncm91cHMgKi8KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdGVzdGNvdW50PTM4OworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB6ZXJvPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBvbmU9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdHdvPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMik7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHRlbj1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0ZW5sb25nPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGxvbmcpMTIzNDU1NDMyMSk7IC8vIDEwLWRpZ2l0ZXIKKyAKKyAvKiBTb21lIGNvbnRleHQgb2JqZWN0cyAtLSBbc29tZSBvZiB0aGVzZSBhcmUgY2hlY2tlZCBsYXRlcl0gKi8KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jZGVmPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jMz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgzKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jNj1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg2KTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jOT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg5KTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jNTA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoNTApOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNzPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDksY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jZT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg5LGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuRU5HSU5FRVJJTkcpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNsZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg5LGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyx0cnVlKTsgLy8gbG9zdCBkaWdpdHMKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jbGQwPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLHRydWUpOyAvLyBsb3N0IGRpZ2l0cywgZGlnaXRzPTAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jZmQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKTsgLy8gZml4ZWQgZGVjaW1hbCBzdHlsZQorIAorIC8qIGJvdW5kYXJ5IHByaW1pdGl2ZSB2YWx1ZXMgKi8KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGJtaW49LTEyODsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGJtYXg9MTI3OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYnplcj0wOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYm5lZz0tMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGJwb3M9MTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW1pbj0tMjE0NzQ4MzY0ODsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW1heD0yMTQ3NDgzNjQ3OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpemVyPTA7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluZWc9LTE7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGlwb3M9MTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGxtaW49LTkyMjMzNzIwMzY4NTQ3NzU4MDhMOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG1heD05MjIzMzcyMDM2ODU0Nzc1ODA3TDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGx6ZXI9KGxvbmcpMDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGxuZWc9KGxvbmcpLTE7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBscG9zPShsb25nKTE7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc21pbj0tMzI3Njg7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc21heD0zMjc2NzsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzemVyPShzaG9ydCkwOworIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IHNuZWc9KHNob3J0KSgtMSk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc3Bvcz0oc2hvcnQpMTsKKyAKKyAKKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHByaXZhdGUgdW51c2VkICovIC8vIHByZXNlbnQgYnV0IG5vdCByZWZlcmVuY2VkCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBjb3B5cmlnaHQ9IiBDb3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk2LCAyMDAwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIjsKKworIAorIC8qKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RGlhZ0JpZ0RlY2ltYWw8L2NvZGU+IHRlc3Qgc3VpdGUuCisgICAqIDxwPgorICAgKiBJbnZva2UgaXRzIHtAbGluayAjZGlhZ3J1bn0gbWV0aG9kIHRvIHJ1biB0aGUgdGVzdHMuCisgICAqLworIAorIHB1YmxpYyBEaWFnQmlnRGVjaW1hbCgpe3N1cGVyKCk7CisgfQorCisgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNKREsxNU9yTGF0ZXIgPSBWZXJzaW9uSW5mby5qYXZhVmVyc2lvbigpLmNvbXBhcmVUbyhWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgxLDUpKSA+PSAwOworCisgLyoqIFJ1biB0aGUgdGVzdHMgaW4gdGhlIHRlc3Qgc3VpdGUuCisgICoKKyAgKiBAcGFyYW0gaXNDb250aW51ZSBUaGUgPGNvZGU+Ym9vbGVhbjwvY29kZT4gd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICogICAgICAgICAgICAgICAgICAgdG8gc3RvcCBydW5uaW5nIGFmdGVyIGEgZ3JvdXAgZmFpbHMuICBJZiAxICh0cnVlKQorICAqICAgICAgICAgICAgICAgICAgIHRoZW4gdGhlIHRlc3RzIHNob3VsZCBiZSBydW4gdG8gY29tcGxldGlvbiBpZgorICAqICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlOyBpZiAwIChmYWxzZSkgdGhlbiB0aGUgcnVuIHdpbGwgZW5kIGlmIGEKKyAgKiAgICAgICAgICAgICAgICAgICBncm91cCBmYWlscy4KKyAgKiBAcmV0dXJuIGFuIDxjb2RlPmludDwvY29kZT4gd2hpY2ggaXMgMCBpZiBhbGwgdGVzdHMgd2VyZQorICAqIHN1Y2Nlc3NmdWwsID4wICh0aGUgY291bnQgb2YgZmFpbHVyZXMpIGlmIHNvbWUgZmFpbHVyZXMgd2VyZQorICAqIGRldGVjdGVkLCBvciA8MCBpZiBhbiB1bmV4cGVjdGVkIEV4Y2VwdGlvbiB3YXMgc2lnbmFsbGVkLgorICAqLworCisgcHVibGljIGludCBkaWFncnVuKGJvb2xlYW4gaXNDb250aW51ZSl7CisgIGludCBmYWlsczsKKyAgaW50IG51bT0wOworICBEaWFnRXhjZXB0aW9uIGRlPW51bGw7CisgIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIGU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyByZXN0PW51bGw7CisgIAorICBmYWlscz0wOyAvLyBjb3VudCBvZiBmYWlsdXJlcworICB0cnl7bnVtPTE7bnVtOmZvcig7bnVtPD10ZXN0Y291bnQ7bnVtKyspeyAvLyBbdGVzdGNvdW50IGlzIGNvbnN0YW50IHNldCBhYm92ZV0KKyAgIHRyeXsKKyAgICBkb3Rlc3QobnVtKTsKKyAgIH0KKyAgIGNhdGNoIChEaWFnRXhjZXB0aW9uICQxKXtkZT0kMTsKKyAgICBzYXkoKTsKKyAgICBlcnJsbigiKioqKiBGYWlsZWQ6IisiICIrZGUuZ2V0TWVzc2FnZSgpKyIgIisiKioqKiIpOworICAgIHNheSgpOworICAgIGZhaWxzPWZhaWxzK2RlLmZhaWxjb3VudDsKKyAgICBpZiAoKCFpc0NvbnRpbnVlKSkgCisgICAgIGJyZWFrIG51bTsKKyAgIH0KKyAgIH0KKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDIpe2U9JDI7IC8vIGFueSBvdGhlciBleGNlcHRpb24gaXMgdG90YWwgZmFpbHVyZTsganVzdCBzaG93IHRyYWNlIGFuZCBxdWl0CisgICBzYXkoKTsKKyAgIGVycmxuKCIqKioqIEZhaWxlZDogdW5leHBlY3RlZCBleGNlcHRpb24gKioqKiIpOworICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgIHJldHVybiAtMTsKKyAgfS8qbnVtKi8KKyAgCisgIGlmIChmYWlscz09MCkgCisgICBzYXkoIi0tLSBBbGwgT0sgLS0tIisiICIrcmlnaHQoIlsiK3RvdGFsY291bnQrIiAiKyJ0ZXN0c10iLDE1KSk7CisgIGVsc2UgCisgICB7CisgICAgaWYgKGlzQ29udGludWUpIAorICAgICB7CisgICAgICBpZiAoZmFpbHM+MSkgCisgICAgICAgcmVzdD0idGVzdHMiOworICAgICAgZWxzZSAKKyAgICAgICByZXN0PSJ0ZXN0IjsKKyAgICAgIHNheSgiLS0tIEFsbCBydW4gLS0tIisiICIrcmlnaHQoIlsiK3RvdGFsY291bnQrIiAiKyJ0ZXN0cywiLDE0KSsiICIrImZhaWxlZCIrIiAiK2ZhaWxzKyIgIityZXN0KyJdIik7CisgICAgIAorICAgICB9CisgICB9CisgIAorICByZXR1cm4gZmFpbHM7CisgIH0KKworIC8qIFJ1biB0ZXN0IGJ5IG51bWJlciAtLSBtZXRob2QgZm9yIGRldmVsb3BtZW50L3ByaXZhdGUgc3dpdGNoaW5nICovCisgCisgcHJpdmF0ZSB2b2lkIGRvdGVzdChpbnQgbnVtKXsKKyAgey8qc2VsZWN0Ki9zd2l0Y2gobnVtKXsKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiBNYXRoQ29udGV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgY2FzZSAxOgorICAgZGlhZ21hdGhjb250ZXh0KCk7YnJlYWs7CisgICAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiBDb25zdHJ1Y3RvcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgY2FzZSAyOgorICAgZGlhZ2NvbnN0cnVjdG9ycygpO2JyZWFrOworICAgCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgLyogT3BlcmF0b3IgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIGNhc2UgMzoKKyAgIGRpYWdhYnMoKTticmVhazsKKyAgY2FzZSA0OgorICAgZGlhZ2FkZCgpO2JyZWFrOworICBjYXNlIDU6CisgICBkaWFnY29tcGFyZXRvKCk7YnJlYWs7CisgIGNhc2UgNjoKKyAgIGRpYWdkaXZpZGUoKTticmVhazsKKyAgY2FzZSA3OgorICAgZGlhZ2RpdmlkZUludGVnZXIoKTticmVhazsKKyAgY2FzZSA4OgorICAgZGlhZ21heCgpO2JyZWFrOworICBjYXNlIDk6CisgICBkaWFnbWluKCk7YnJlYWs7CisgIGNhc2UgMTA6CisgICBkaWFnbXVsdGlwbHkoKTticmVhazsKKyAgY2FzZSAxMToKKyAgIGRpYWduZWdhdGUoKTticmVhazsKKyAgY2FzZSAxMjoKKyAgIGRpYWdwbHVzKCk7YnJlYWs7CisgIGNhc2UgMTM6CisgICBkaWFncG93KCk7YnJlYWs7CisgIGNhc2UgMTQ6CisgICBkaWFncmVtYWluZGVyKCk7YnJlYWs7CisgIGNhc2UgMTU6CisgICBkaWFnc3VidHJhY3QoKTticmVhazsKKyAgY2FzZSAxNjoKKyAgIGRpYWdtYXRoKCk7YnJlYWs7IC8vIGdlbmVyYWwgbWF0aAorICAgCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgLyogT3RoZXIgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIGNhc2UgMTc6CisgICBkaWFnYnl0ZVZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMTg6CisgICBkaWFnY29tcGFyZXRvT2JqKCk7YnJlYWs7CisgIGNhc2UgMTk6CisgICBkaWFnZG91YmxldmFsdWUoKTticmVhazsKKyAgY2FzZSAyMDoKKyAgIGRpYWdlcXVhbHMoKTticmVhazsKKyAgY2FzZSAyMToKKyAgIGRpYWdmbG9hdHZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMjI6CisgICBkaWFnZm9ybWF0KCk7YnJlYWs7CisgIGNhc2UgMjM6CisgICBkaWFnaGFzaGNvZGUoKTticmVhazsKKyAgY2FzZSAyNDoKKyAgIGRpYWdpbnR2YWx1ZSgpO2JyZWFrOworICBjYXNlIDI1OgorICAgZGlhZ2xvbmd2YWx1ZSgpO2JyZWFrOworICBjYXNlIDI2OgorICAgZGlhZ21vdmVwb2ludGxlZnQoKTticmVhazsKKyAgY2FzZSAyNzoKKyAgIGRpYWdtb3ZlcG9pbnRyaWdodCgpO2JyZWFrOworICBjYXNlIDI4OgorICAgZGlhZ3NjYWxlKCk7YnJlYWs7CisgIGNhc2UgMjk6CisgICBkaWFnc2V0c2NhbGUoKTticmVhazsKKyAgY2FzZSAzMDoKKyAgIGRpYWdzaG9ydHZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMzE6CisgICBkaWFnc2lnbnVtKCk7YnJlYWs7CisgIGNhc2UgMzI6CisgICBkaWFndG9iaWdkZWNpbWFsKCk7YnJlYWs7CisgIGNhc2UgMzM6CisgICBkaWFndG9iaWdpbnRlZ2VyKCk7YnJlYWs7CisgIGNhc2UgMzQ6CisgICBkaWFndG9jaGFyYXJyYXkoKTticmVhazsKKyAgY2FzZSAzNToKKyAgIGRpYWd0b3N0cmluZygpO2JyZWFrOworICBjYXNlIDM2OgorICAgZGlhZ3Vuc2NhbGVkdmFsdWUoKTticmVhazsKKyAgY2FzZSAzNzoKKyAgIGRpYWd2YWx1ZW9mKCk7YnJlYWs7CisgICAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiBNdXRhdGlvbiB0ZXN0IFttdXN0IGJlIHRoZSBsYXN0IHRlc3RdICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgY2FzZSAzODoKKyAgIGRpYWdtdXRhdGlvbigpO2JyZWFrOworICAgLy8gaWYgYW55IG1vcmUsIGluY3JlYXNlIHRlc3Rjb3VudCBhYm92ZQorICBkZWZhdWx0OnsKKyAgIHNheSgiKioqIGRvdGVzdCBjYXNlIG5vdCBmb3VuZDoiKyIgIitudW0rIiAiKyIqKioiKTsKKyAgfX0KKyAgfQorICByZXR1cm47CisgIH0KKworIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworIC8qIERpYWdub3N0aWMgZ3JvdXAgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworIAorIC8qKiBUZXN0IGNvbnN0cnVjdG9ycyAoYW5kIHtAbGluayAjdG9TdHJpbmcoKX0gZm9yIGVxdWFsaXRpZXMpLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdjb25zdHJ1Y3RvcnMoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIG51bTsKKyAgamF2YS5tYXRoLkJpZ0ludGVnZXIgYmlwOworICBqYXZhLm1hdGguQmlnSW50ZWdlciBiaXo7CisgIGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpbjsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGJkYTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGJkYjsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGJtYzsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGJtZDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGJtZTsKKyAgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gZT1udWxsOworICBjaGFyIGNhW107CisgIGRvdWJsZSBkemVyOworICBkb3VibGUgZHBvczsKKyAgZG91YmxlIGRuZWc7CisgIGRvdWJsZSBkcG9zNTsKKyAgZG91YmxlIGRuZWc1OworICBkb3VibGUgZG1pbjsKKyAgZG91YmxlIGRtYXg7CisgIGRvdWJsZSBkOworICBqYXZhLmxhbmcuU3RyaW5nIGJhZHN0cmluZ3NbXTsKKyAgaW50IGk9MDsKKyAgCisgIC8vIGNvbnN0YW50cyBbc3RhdGljYWxseS1jYWxsZWQgY29uc3RydWN0b3JzXQorICAobmV3IFRlc3QoImNvbjAwMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8udG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY29uMDAyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImNvbjAwMyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTi50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgiY29uMDA0IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTy5pbnRWYWx1ZUV4YWN0KCkpPT0wOworICAobmV3IFRlc3QoImNvbjAwNSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5pbnRWYWx1ZUV4YWN0KCkpPT0xOworICAobmV3IFRlc3QoImNvbjAwNiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTi5pbnRWYWx1ZUV4YWN0KCkpPT0xMDsKKyAgCisgIC8vIFtqYXZhLm1hdGguXSBCaWdEZWNpbWFsCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAobmV3IFRlc3QoImNiZDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIwIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMSIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY2JkMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgiY2JkMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoImNiZDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMC4wIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTAuMSIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4xIik7CisgIChuZXcgVGVzdCgiY2JkMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjEiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMSIpOworICAobmV3IFRlc3QoImNiZDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCItOS4wIikpKS50b1N0cmluZygpKS5lcXVhbHMoIi05LjAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMC45IikpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOSIpOworICAKKyAgbnVtPSIxMjM0NTY3ODkuMTIzNDU2Nzg5IjsKKyAgKG5ldyBUZXN0KCJjYmQwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW0pKSkudG9TdHJpbmcoKSkuZXF1YWxzKG51bSk7CisgIG51bT0iMTIzNDU2Nzg5LjAwMDAwMDAwMCI7CisgIChuZXcgVGVzdCgiY2JkMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICBudW09IjEyMzQ1Njc4OTAwMDAwMDAwMCI7CisgIChuZXcgVGVzdCgiY2JkMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICBudW09IjAuMDAwMDAxMjM0NTY3ODkiOworICAobmV3IFRlc3QoImNiZDAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKG51bSkpKS50b1N0cmluZygpKS5lcXVhbHMobnVtKTsKKyAgbnVtPSIwLjAwMDAwMDEyMzQ1Njc4OSI7CisKKyAgLy8gaWdub3JlIGZvcm1hdCBjaGFuZ2UgaXNzdWVzIHdpdGggMS41CisgIGlmICghaXNKREsxNU9yTGF0ZXIpCisgICAgICAobmV3IFRlc3QoImNiZDAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKG51bSkpKS50b1N0cmluZygpKS5lcXVhbHMobnVtKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChqYXZhLm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjYmkwMTUiKSkub2s9ZmxhZzsKKy8vI2VuZGlmCisgIAorICAvLyBCaWdJbnRlZ2VyCisgIGJpcD1uZXcgQmlnSW50ZWdlcigiOTg3NjU0MzIxOTg3NjU0MzIxOTg3NjU0MzIxIik7IC8vIGJpZ2dpZSArdmUKKyAgYml6PW5ldyBCaWdJbnRlZ2VyKCIwIik7IC8vIGJpZ2dpZSAwCisgIGJpbj1uZXcgQmlnSW50ZWdlcigiLTEyMzQ1Njc4OTk4NzY1NDMyMTEyMzQ1Njc4Iik7IC8vIGJpZ2dpZSAtdmUKKyAgKG5ldyBUZXN0KCJjYmkwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCkpLnRvU3RyaW5nKCkpLmVxdWFscyhiaXAudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgiY2JpMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXopKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjYmkwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpbikpLnRvU3RyaW5nKCkpLmVxdWFscyhiaW4udG9TdHJpbmcoKSk7CisgIHRyeXtjaGVja251bGw6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChqYXZhLm1hdGguQmlnSW50ZWdlciludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ0KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjYmkwMDQiKSkub2s9ZmxhZzsKKyAgCisgIC8vIEJpZ0ludGVnZXIgd2l0aCBzY2FsZQorICBiaXA9bmV3IEJpZ0ludGVnZXIoIjEyMzQ1Njc4OSIpOyAvLyBiaWdpc2gKKyAgYmRhPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwKTsKKyAgYmRiPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwLDUpOworICBibWM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsMTUpOworICAobmV3IFRlc3QoImNiczAwMSIpKS5vaz0oYmRhLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5Iik7CisgIChuZXcgVGVzdCgiY2JzMDAyIikpLm9rPShiZGIudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0LjU2Nzg5Iik7CisgIChuZXcgVGVzdCgiY2JzMDAzIikpLm9rPShibWMudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDEyMzQ1Njc4OSIpOworICBiaXA9bmV3IEJpZ0ludGVnZXIoIjEyMzQ1Njc4OTEyMzQ1Njc4OTEyMzQ1Njc4OSIpOyAvLyBiaWdnaWUKKyAgYmRhPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwKTsKKyAgYmRiPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwLDcpOworICBibWM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsMTMpOworICBibWQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsMTkpOworICBibWU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsMjkpOworICAobmV3IFRlc3QoImNiczAxMSIpKS5vaz0oYmRhLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNDU2Nzg5Iik7CisgIChuZXcgVGVzdCgiY2JzMDEyIikpLm9rPShiZGIudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NTY3ODkxMi4zNDU2Nzg5Iik7CisgIChuZXcgVGVzdCgiY2JzMDEzIikpLm9rPShibWMudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NS42Nzg5MTIzNDU2Nzg5Iik7CisgIChuZXcgVGVzdCgiY2JzMDE0IikpLm9rPShibWQudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC45MTIzNDU2Nzg5MTIzNDU2Nzg5Iik7CisgIChuZXcgVGVzdCgiY2JzMDE1IikpLm9rPShibWUudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNDU2Nzg5Iik7CisgIHRyeXtjaGVja251bGw6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChqYXZhLm1hdGguQmlnSW50ZWdlciludWxsLDEpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDUpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNiczAwNCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tzY2FsZTpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwLC04KTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDYpe2U9JDY7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJOZWdhdGl2ZSBzY2FsZTogLTgiKTsKKyAgfS8qY2hlY2tzY2FsZSovCisgIChuZXcgVGVzdCgiY2JzMDA1IikpLm9rPWZsYWc7CisgIAorICAvLyBjaGFyW10KKyAgLy8gV2UganVzdCB0ZXN0IGl0J3MgdGhlcmUKKyAgLy8gRnVuY3Rpb25hbGl0eSBpcyB0ZXN0ZWQgYnkgQmlnRGVjaW1hbChTdHJpbmcpLgorICBjYT0oIjEyMy40NSIpLnRvQ2hhckFycmF5KCk7CisgIChuZXcgVGVzdCgiY2NhMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzLjQ1Iik7CisgIHRyeXtjaGVja251bGw6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChjaGFyW10pbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNyl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiY2NhMDEwIikpLm9rPWZsYWc7CisgIAorICAvLyBjaGFyW10saW50LGludAorICAvLyBXZSBqdXN0IHRlc3QgaXQncyB0aGVyZSwgYW5kIHRoYXQgb2Zmc2V0cyB3b3JrLgorICAvLyBGdW5jdGlvbmFsaXR5IGlzIHRlc3RlZCBieSBCaWdEZWNpbWFsKFN0cmluZykuCisgIGNhPSgiMTIzLjQ1IikudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsNikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzLjQ1Iik7CisgIChuZXcgVGVzdCgiY2NhMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDUpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzLjQ1Iik7CisgIChuZXcgVGVzdCgiY2NhMTAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDQpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuNDUiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDMsMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NSIpOworICAobmV3IFRlc3QoImNjYTEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsNCwyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI0NSIpOworICAobmV3IFRlc3QoImNjYTEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsNSwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIAorICAobmV3IFRlc3QoImNjYTExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY2NhMTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImNjYTExMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsNCwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI0Iik7CisgIAorICAobmV3IFRlc3QoImNjYTEyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCwyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMiIpOworICAobmV3IFRlc3QoImNjYTEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSwyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMyIpOworICAobmV3IFRlc3QoImNjYTEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgiY2NhMTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwzLDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAKKyAgKG5ldyBUZXN0KCJjY2ExMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzIik7CisgIChuZXcgVGVzdCgiY2NhMTMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzIik7CisgIChuZXcgVGVzdCgiY2NhMTMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuNCIpOworICAKKyAgKG5ldyBUZXN0KCJjY2ExNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsNCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzIik7CisgIChuZXcgVGVzdCgiY2NhMTQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDQpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzLjQiKTsKKyAgCisgIChuZXcgVGVzdCgiY2NhMTUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDUpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMy40Iik7CisgIAorICAvLyBhIGNvdXBsZSBvZiBvZGRpZXMKKyAgY2E9KCJ4MjMuNHgiKS50b0NoYXJBcnJheSgpOworICAobmV3IFRlc3QoImNjYTE2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSw0KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMy40Iik7CisgIChuZXcgVGVzdCgiY2NhMTYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDQsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiNCIpOworICAKKyAgY2E9KCIwMTIzNDU2Nzg5Ljk4NzY1NDMyMTAiKS50b0NoYXJBcnJheSgpOworICAobmV3IFRlc3QoImNjYTE2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCwyMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5Ljk4NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMjApKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OS45ODc2NTQzMjEwIik7CisgIChuZXcgVGVzdCgiY2NhMTY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDE5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMzQ1Njc4OS45ODc2NTQzMjEwIik7CisgIChuZXcgVGVzdCgiY2NhMTY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDE4KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMzQ1Njc4OS45ODc2NTQzMjEiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMTcpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2Nzg5Ljk4NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY2NhMTY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDE2KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMzQ1Njc4OS45ODc2NTQzIik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoY2hhcltdKW51bGwsMCwxKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjY2EyMDAiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2xlbjpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMyIudG9DaGFyQXJyYXkoKSwwLDApOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uICQ5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tsZW4qLworICAobmV3IFRlc3QoImNjYTIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrYm91bmQ6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjMiLnRvQ2hhckFycmF5KCksMiw0KTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDEwKXsgLy8gYW55dGhpbmcgT0sKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tib3VuZCovCisgIChuZXcgVGVzdCgiY2NhMjAyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2JvdW5kMjpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMyIudG9DaGFyQXJyYXkoKSwtMSwyKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDExKXsgLy8gYW55dGhpbmcgT0sKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tib3VuZDIqLworICAobmV3IFRlc3QoImNjYTIwMyIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tib3VuZDM6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjMiLnRvQ2hhckFycmF5KCksMSwtMik7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQxMil7IC8vIGFueXRoaW5nIE9LCisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrYm91bmQzKi8KKyAgKG5ldyBUZXN0KCJjY2EyMDQiKSkub2s9ZmxhZzsKKyAgCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAvLyBkb3VibGUgW2RlcHJlY2F0ZWRdCisgIC8vIE5vdGUgdGhhdCBtYW55IG9mIHRoZXNlIGRpZmZlciBmcm9tIHRoZSB2YWx1ZU9mKGRvdWJsZSkgcmVzdWx0cy4KKyAgZHplcj0oZG91YmxlKTA7CisgIGRwb3M9KGRvdWJsZSkxOworICBkcG9zPWRwb3MvKChkb3VibGUpMTApOworICBkbmVnPShkb3VibGUpLWRwb3M7CisgIChuZXcgVGVzdCgiY2RvMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbmVnKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xMDAwMDAwMDAwMDAwMDAwMDU1NTExMTUxMjMxMjU3ODI3MDIxMTgxNTgzNDA0NTQxMDE1NjI1Iik7CisgIAorICAobmV3IFRlc3QoImNkbzAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZHplcikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOyAvLyBOQiwgbm90ICcwLjAnCisgIChuZXcgVGVzdCgiY2RvMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkcG9zKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAwMDAwMDAwMDAwMDAwNTU1MTExNTEyMzEyNTc4MjcwMjExODE1ODM0MDQ1NDEwMTU2MjUiKTsKKyAgCisgIGRwb3M1PShkb3VibGUpMC41RDsKKyAgZG5lZzU9KGRvdWJsZSktZHBvczU7CisgIChuZXcgVGVzdCgiY2RvMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbmVnNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImNkbzAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZHBvczUpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICBkbWluPWphdmEubGFuZy5Eb3VibGUuTUlOX1ZBTFVFOworICBkbWF4PWphdmEubGFuZy5Eb3VibGUuTUFYX1ZBTFVFOworICBpZiAoIWlzSkRLMTVPckxhdGVyKSAvLyBmb3Igc29tZSByZWFzb24gd2UgZm9ybWF0IHVzaW5nIHNjaWVudGlmaWMgbm90YXRpb24gb24gMS41IGFmdGVyIDMwIGRlY2ltYWxzIG9yIHNvCisgICAgICAobmV3IFRlc3QoImNkbzAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZG1pbikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5NDA2NTY0NTg0MTI0NjU0NDE3NjU2ODc5Mjg2ODIyMTM3MjM2NTA1OTgwMjYxNDMyNDc2NDQyNTU4NTY4MjUwMDY3NTUwNzI3MDIwODc1MTg2NTI5OTgzNjM2MTYzNTk5MjM3OTc5NjU2NDY5NTQ0NTcxNzczMDkyNjY1NjcxMDM1NTkzOTc5NjM5ODc3NDc5NjAxMDc4MTg3ODEyNjMwMDcxMzE5MDMxMTQwNDUyNzg0NTgxNzE2Nzg0ODk4MjEwMzY4ODcxODYzNjA1Njk5ODczMDcyMzA1MDAwNjM4NzQwOTE1MzU2NDk4NDM4NzMxMjQ3MzM5NzI3MzE2OTYxNTE0MDAzMTcxNTM4NTM5ODA3NDEyNjIzODU2NTU5MTE3MTAyNjY1ODU1NjY4Njc2ODE4NzAzOTU2MDMxMDYyNDkzMTk0NTI3MTU5MTQ5MjQ1NTMyOTMwNTQ1NjU0NDQwMTEyNzQ4MDEyOTcwOTk5OTU0MTkzMTk4OTQwOTA4MDQxNjU2MzMyNDUyNDc1NzE0Nzg2OTAxNDcyNjc4MDE1OTM1NTIzODYxMTU1MDEzNDgwMzUyNjQ5MzQ3MjAxOTM3OTAyNjgxMDcxMDc0OTE3MDMzMzIyMjY4NDQ3NTMzMzU3MjA4MzI0MzE5MzYwOTIzODI4OTM0NTgzNjgwNjAxMDYwMTE1MDYxNjk4MDk3NTMwNzgzNDIyNzczMTgzMjkyNDc5MDQ5ODI1MjQ3MzA3NzYzNzU5MjcyNDc4NzQ2NTYwODQ3NzgyMDM3MzQ0Njk2OTk1MzM2NDcwMTc5NzI2Nzc3MTc1ODUxMjU2NjA1NTExOTkxMzE1MDQ4OTExMDE0NTEwMzc4NjI3MzgxNjcyNTA5NTU4MzczODk3MzM1OTg5OTM2NjQ4MDk5NDExNjQyMDU3MDI2MzcwOTAyNzkyNDI3Njc1NDQ1NjUyMjkwODc1Mzg2ODI1MDY0MTk3MTgyNjU1MzM0NDcyNjU2MjUiKTsKKyAgCisgIChuZXcgVGVzdCgiY2RvMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbWF4KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxNzk3NjkzMTM0ODYyMzE1NzA4MTQ1Mjc0MjM3MzE3MDQzNTY3OTgwNzA1Njc1MjU4NDQ5OTY1OTg5MTc0NzY4MDMxNTcyNjA3ODAwMjg1Mzg3NjA1ODk1NTg2MzI3NjY4NzgxNzE1NDA0NTg5NTM1MTQzODI0NjQyMzQzMjEzMjY4ODk0NjQxODI3Njg0Njc1NDY3MDM1Mzc1MTY5ODYwNDk5MTA1NzY1NTEyODIwNzYyNDU0OTAwOTAzODkzMjg5NDQwNzU4Njg1MDg0NTUxMzM5NDIzMDQ1ODMyMzY5MDMyMjI5NDgxNjU4MDg1NTkzMzIxMjMzNDgyNzQ3OTc4MjYyMDQxNDQ3MjMxNjg3MzgxNzcxODA5MTkyOTk4ODEyNTA0MDQwMjYxODQxMjQ4NTgzNjgiKTsKKyAgCisgIAorICAvLyBuYXN0aWVzCisgIGQ9KGRvdWJsZSk5OworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45MDAwMDAwMDAwMDAwMDAwMjIyMDQ0NjA0OTI1MDMxMzA4MDg0NzI2MzMzNjE4MTY0MDYyNSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDg5OTk5OTk5OTk5OTk5OTk2NjY5MzMwOTI2MTI0NTMwMzc4NzI5MTA0OTk1NzI3NTM5MDYyNSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDA4OTk5OTk5OTk5OTk5OTk5MzE5OTg4Mzk3NDE3MDkxNjE4OTkwNTI1NjAzMjk0MzcyNTU4NTkzNzUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgiY2RvMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDg5OTk5OTk5OTk5OTk5OTk3NTM2NjkyNjY0MTEyOTMzOTI1OTM1MDY3MjM2NDIzNDkyNDMxNjQwNjI1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwODk5OTk5OTk5OTk5OTk5OTIxMTU2ODE4MDE2ODU0MTE3NTU4OTc4MDMyMzIwNzM3ODM4NzQ1MTE3MTg3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDA4OTk5OTk5OTk5OTk5OTk4NTMzOTQxODIyMzY1MTAwOTA0MzM1MTIyMzIyNjYzNjY0ODE3ODEwMDU4NTkzNzUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIGlmICghaXNKREsxNU9yTGF0ZXIpCisgICAgICAobmV3IFRlc3QoImNkbzAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDA4OTk5OTk5OTk5OTk5OTk4NTMzOTQxODIyMzY1MTAwOTA0MzM1MTIyMzIyNjYzNjY0ODE3ODEwMDU4NTkzNzUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIGlmICghaXNKREsxNU9yTGF0ZXIpCisgICAgICAobmV3IFRlc3QoImNkbzAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwODk5OTk5OTk5OTk5OTk5ODUzMzk0MTgyMjM2NTEwMDkwNDMzNTEyMjMyMjY2MzY2NDgxNzgxMDA1ODU5Mzc1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICBpZiAoIWlzSkRLMTVPckxhdGVyKQorICAgICAgKG5ldyBUZXN0KCJjZG8wMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDA4OTk5OTk5OTk5OTk5OTk3ODcyMTk3MzMyMzIyNjc4NzY0NDM3OTk1MzY5MDA3Njk0NTM0OTU3NDA4OTA1MDI5Mjk2ODc1Iik7CisvLyNlbmRpZgorICAKKyAgdHJ5e2NoZWNrcGluOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChqYXZhLmxhbmcuRG91YmxlLlBPU0lUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTMpeworICAgZmxhZz10cnVlOworICB9LypjaGVja3BpbiovCisgIChuZXcgVGVzdCgiY2RvMTAxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja25pbjpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoamF2YS5sYW5nLkRvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDE0KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tuaW4qLworICAobmV3IFRlc3QoImNkbzEwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuYW46ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGphdmEubGFuZy5Eb3VibGUuTmFOKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTUpeworICAgZmxhZz10cnVlOworICB9LypjaGVja25hbiovCisgIChuZXcgVGVzdCgiY2RvMTAzIikpLm9rPWZsYWc7CisgIAorICAvLyBpbnQKKyAgKG5ldyBUZXN0KCJjaW4wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMTQ3NDgzNjQ4Iik7CisgIChuZXcgVGVzdCgiY2luMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMTQ3NDgzNjQ3Iik7CisgIChuZXcgVGVzdCgiY2luMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbmVnKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoImNpbjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaXplcikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNpbjAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaXBvcykpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImNpbjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgiY2luMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5Iik7CisgIChuZXcgVGVzdCgiY2luMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg1KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgiY2luMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiY2luMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC01KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNSIpOworICAobmV3IFRlc3QoImNpbjAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTkpKS50b1N0cmluZygpKS5lcXVhbHMoIi05Iik7CisgIChuZXcgVGVzdCgiY2luMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTApKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMCIpOworICAobmV3IFRlc3QoImNpbjAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTExKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTEiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC05OSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5Iik7CisgIChuZXcgVGVzdCgiY2luMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAwIik7CisgIChuZXcgVGVzdCgiY2luMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtOTk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5Iik7CisgIChuZXcgVGVzdCgiY2luMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTAwMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiY2luMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTEiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OSIpOworICAobmV3IFRlc3QoImNpbjAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDk5OSkpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5Iik7CisgIChuZXcgVGVzdCgiY2luMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMDAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIAorICAvLyBsb25nCisgIChuZXcgVGVzdCgiY2xvMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWluKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpOworICAobmV3IFRlc3QoImNsbzAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLnRvU3RyaW5nKCkpLmVxdWFscygiOTIyMzM3MjAzNjg1NDc3NTgwNyIpOworICAobmV3IFRlc3QoImNsbzAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG5lZykpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJjbG8wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGx6ZXIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjbG8wMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxwb3MpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIC8vIFN0cmluZyBbbWFueSBtb3JlIGV4YW1wbGVzIGFyZSBlbHNld2hlcmVdCisgIC8vIHN0cmluZ3Mgd2l0aG91dCBFIGNhbm5vdCBnZW5lcmF0ZSBFIGluIHJlc3VsdAorICAobmV3IFRlc3QoImNzdDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNzYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi43NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjc2Iik7CisgIChuZXcgVGVzdCgiY3N0MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEyLjc2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIuNzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMTIuNzYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi43NiIpOworICAobmV3IFRlc3QoImNzdDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAwMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAzIik7CisgIChuZXcgVGVzdCgiY3N0MDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTcuIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTciKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoImNzdDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjA0NCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQ0Iik7CisgIChuZXcgVGVzdCgiY3N0MDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDA0NCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQ0Iik7CisgIChuZXcgVGVzdCgiY3N0MDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDA1Iik7CisgIChuZXcgVGVzdCgiY3N0MDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiY3N0MDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwNSIpOworICAobmV3IFRlc3QoImNzdDAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwNSIpOyAvLyBcTlIKKyAgKG5ldyBUZXN0KCJjc3QwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwNSIpOyAvLyBcTlIKKyAgKG5ldyBUZXN0KCJjc3QwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3OC44NzY1NDMyMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC44NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMzQ1Njc4Ljg3NjU0MzIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2NzguODc2NTQzMjEwIik7CisgIChuZXcgVGVzdCgiY3N0MDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1Njc4Ljg3NjU0MzIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMzQ1Njc4Ljg3NjU0MzIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIxIik7CisgIChuZXcgVGVzdCgiY3N0MDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1Njc4Ljg3NjU0MzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiszNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAwMzQ1Njc4Ljg3NjU0MzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0zNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wMzQ1Njc4Ljg3NjU0MzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMzQ1Njc4Ljg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMDAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0zNDU2NzguODc2NTQzMiIpOworICAKKyAgLy8gZXhvdGljcyAtLQorICAobmV3IFRlc3QoImNzdDAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIlx1MGU1Ny5cdTBlNTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI3LjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCJcdTBiNjYuXHUwYjY3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiY3N0MDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiXHUwYjY2XHUwYjY2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNzdDAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIlx1MGI2YVx1MGI2NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQwIik7CisgIAorICAvLyBzdHJpbmdzIHdpdGggRQorICAobmV3IFRlc3QoImNzdDA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUrMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrOTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5MCIpOworICAobmV3IFRlc3QoImNzdDA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxRSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlKzkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDBlKzAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDU2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDBFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjRFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0NEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQuNEUrMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjczZS03IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNy4zRS04Iik7CisgIChuZXcgVGVzdCgiY3N0MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDBFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDBFLTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjBFKzEwIik7CisgIChuZXcgVGVzdCgiY3N0MDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBFKzA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wRSsxMCIpOworICAobmV3IFRlc3QoImNzdDA2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwZSs5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMEUrOTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMDA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wRSsxMCIpOworICAobmV3IFRlc3QoImNzdDA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzExIik7CisgIChuZXcgVGVzdCgiY3N0MDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwZSswOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzExIik7CisgIChuZXcgVGVzdCgiY3N0MDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwRSs5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzkyIik7CisgIChuZXcgVGVzdCgiY3N0MDY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwZSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwRSsxMSIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTIwIik7CisgIChuZXcgVGVzdCgiY3N0MDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtOCIpOworICAobmV3IFRlc3QoImNzdDA3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS00IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTQiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0zIik7CisgIChuZXcgVGVzdCgiY3N0MDc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDA3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDc4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDA3OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSsyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MDgxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDA4MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSs4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzgiKTsKKyAgKG5ldyBUZXN0KCJjc3QwODMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMjAiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MDkwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi42NSIpOworICAobmV3IFRlc3QoImNzdDA5MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS0yMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xOSIpOworICAobmV3IFRlc3QoImNzdDA5MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS04IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTciKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0zIik7CisgIChuZXcgVGVzdCgiY3N0MDk0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDk3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDA5OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSsxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MTAwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSs0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MTAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIxIik7CisgIAorICAobmV3IFRlc3QoImNzdDExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTI2LjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS02Iik7CisgIChuZXcgVGVzdCgiY3N0MTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDExNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MTE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDEyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs2Iik7CisgIChuZXcgVGVzdCgiY3N0MTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMjIiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjY1RS0yMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xNyIpOworICAobmV3IFRlc3QoImNzdDEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNSIpOworICAobmV3IFRlc3QoImNzdDEzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDEzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NSIpOworICAobmV3IFRlc3QoImNzdDEzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDEzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDEzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMyIpOworICAobmV3IFRlc3QoImNzdDEzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDEzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNSIpOworICAobmV3IFRlc3QoImNzdDE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNiIpOworICAobmV3IFRlc3QoImNzdDE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNyIpOworICAobmV3IFRlc3QoImNzdDE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjY1RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyMyIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEyNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTIxIik7CisgIChuZXcgVGVzdCgiY3N0MTUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS04IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNSIpOworICAobmV3IFRlc3QoImNzdDE1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS00Iik7CisgIChuZXcgVGVzdCgiY3N0MTU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDE1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xIik7CisgIChuZXcgVGVzdCgiY3N0MTU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSsxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDE2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyIik7CisgIChuZXcgVGVzdCgiY3N0MTYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSs0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNyIpOworICAobmV3IFRlc3QoImNzdDE2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMTkiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MTcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTciKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjllOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOUUrOTk5OTk5OTk4Iik7CisgIChuZXcgVGVzdCgiY3N0MTcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjllOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5ZTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTllLTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RS05OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZS05OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RS05OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RS05OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QxODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTllLTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFLTk5OTk5OTk5NyIpOworICAKKyAgLy8gYmFkZGllcyAtLQorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEuLjIiLCIuIiwiLi4iLCIrKzEiLCItLTEiLCItKzEiLCIrLTEiLCIxMmUiLCIxMmUrKyIsIjEyZjQiLCIgKzEiLCIrIDEiLCIxMiAiLCIgKyAxIiwiIC0gMSAiLCJ4IiwiLTEtIiwiMTItIiwiMysiLCIiLCIxZS0iLCI3ZTEwMDAwMDAwMDAiLCIiLCJlMTAwIiwiXHUwZTVhIiwiXHUwYjY1IiwiOTllOTk5OTk5OTk5IiwiOTk5ZTk5OTk5OTk5OSIsIjAuOWUtOTk5OTk5OTk5IiwiMC4wOWUtOTk5OTk5OTk5IiwiMC4xZTEwMDAwMDAwMDAiLCIxMGUtMTAwMDAwMDAwMCIsIjAuOWU5OTk5OTk5OTk5IiwiOTllLTk5OTk5OTk5OTkiLCIxMTFlOTk5OTk5OTk5OSIsIjExMTFlLTk5OTk5OTk5OTkiKyIgIisiMTExZSoxMjMiLCIxMTFlMTIzLSIsIjExMWUrMTIrIiwiMTExZTEtMy0iLCIxMTFlMSoyMyIsIjExMWUxZSszIiwiMWUxLjAiLCIxZTEyM2UiLCJ0ZW4iLCJPTkUiLCIxZS4xIiwiMWUxLiIsIjFlZSIsImUrMSJ9OyAvLyAyMDAtMjAzCisgIC8vIDIwNC0yMDcKKyAgLy8gMjA4LTIxMQorICAvLyAyMTEtMjE0CisgIC8vIDIxNS0yMTkKKyAgLy8gMjIwLTIyMgorICAvLyAyMjMtMjI0CisgIC8vIDIyNS0yMjYKKyAgLy8gMjI3LTIyOAorICAvLyAyMjktMjMwCisgIC8vIDIzMS0yMzIKKyAgLy8gMjMzLTIzNAorICAvLyAyMzUtMjM3CisgIC8vIDIzOC0yNDAKKyAgLy8gMjQxLTI0NAorICAvLyAyNDUtMjQ4CisgIAorICAvLyB3YXRjaCBvdXQgZm9yIGNvbW1hcyBvbiBjb250aW51YXRpb24gbGluZXMKKyAgCisgIHtpbnQgJDE2PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDE2PjA7JDE2LS0saSsrKXsKKyAgIHRyeXsKKyAgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJhZHN0cmluZ3NbaV0pOworICAgIHNheSgiPj4+IGNzdCIrKDIwMCtpKSsiOiIrIiAiK2JhZHN0cmluZ3NbaV0rIiAiKyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJhZHN0cmluZ3NbaV0pKS50b1N0cmluZygpKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDE3KXsKKyAgICBmbGFnPXRydWU7CisgICB9CisgICAobmV3IFRlc3QoImNzdCIrKDIwMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubGFuZy5TdHJpbmcpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMTgpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNzdDMwMSIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiQ29uc3RydWN0b3JzIik7CisgIHJldHVybjsKKyAgfQorCisgLyoqIE11dGF0aW9uIHRlc3RzIChjaGVja3MgdGhhdCBjb250ZW50cyBvZiBjb25zdGFudCBvYmplY3RzIGFyZSB1bmNoYW5nZWQpLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtdXRhdGlvbigpeworICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIC8qIEZpbmFsIHRlc3RzIC0tIGNoZWNrIGNvbnN0YW50cyBoYXZlbid0IG11dGF0ZWQgICAgICAgICAgICAgICAgICAgKi8KKyAgLyogICAgICAgICAgICAgLS0gYWxzbyB0aGF0IE1DIG9iamVjdHMgaGF2ZW4ndCBtdXRhdGVkICAgICAgICAgICAgICAqLworICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIChuZXcgVGVzdCgiY3VjMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTy50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjdWMwMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY3VjMDAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgCisgIChuZXcgVGVzdCgiY3VjMDEwIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9DRUlMSU5HPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkc7CisgIChuZXcgVGVzdCgiY3VjMDExIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9ET1dOPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV047CisgIChuZXcgVGVzdCgiY3VjMDEyIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9GTE9PUj09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUjsKKyAgKG5ldyBUZXN0KCJjdWMwMTMiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRE9XTj09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV047CisgIChuZXcgVGVzdCgiY3VjMDE0IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU49PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOOworICAobmV3IFRlc3QoImN1YzAxNSIpKS5vaz1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUD09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAobmV3IFRlc3QoImN1YzAxNiIpKS5vaz1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk7CisgIChuZXcgVGVzdCgiY3VjMDE3IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9VUD09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUDsKKyAgCisgIChuZXcgVGVzdCgiY3VjMDIwIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoImN1YzAyMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJjdWMwMjIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwMjMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgCisgIC8vIG1jOSAgPU1hdGhDb250ZXh0KDkpCisgIC8vIG1jbGQgPU1hdGhDb250ZXh0KDksIFNDSUVOVElGSUMsIDEpCisgIC8vIG1jZmQgPU1hdGhDb250ZXh0KDAsIFBMQUlOKQorICAobmV3IFRlc3QoImN1YzAzMCIpKS5vaz0obWM5LmdldERpZ2l0cygpKT09OTsKKyAgKG5ldyBUZXN0KCJjdWMwMzEiKSkub2s9KG1jOS5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgiY3VjMDMyIikpLm9rPShtYzkuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgiY3VjMDMzIikpLm9rPShtYzkuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIChuZXcgVGVzdCgiY3VjMDM0IikpLm9rPShtY2xkLmdldERpZ2l0cygpKT09OTsKKyAgKG5ldyBUZXN0KCJjdWMwMzUiKSkub2s9KG1jbGQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoImN1YzAzNiIpKS5vaz0obWNsZC5nZXRMb3N0RGlnaXRzKCk/MTowKT09MTsKKyAgKG5ldyBUZXN0KCJjdWMwMzciKSkub2s9KG1jbGQuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIChuZXcgVGVzdCgiY3VjMDM4IikpLm9rPShtY2ZkLmdldERpZ2l0cygpKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwMzkiKSkub2s9KG1jZmQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgKG5ldyBUZXN0KCJjdWMwNDAiKSkub2s9KG1jZmQuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgiY3VjMDQxIikpLm9rPShtY2ZkLmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgc3VtbWFyeSgiTm8gbXV0YXRpb24iKTsKKyB9CisKKyAKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIE9wZXJhdG9yIHRlc3QgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvLyBUaGUgdXNlIG9mIGNvbnRleHQgaW4gdGhlc2UgdGVzdHMgYXJlIHByaW1hcmlseSB0byBzaG93IHRoYXQgdGhleQorIC8vIGFyZSBjb3JyZWN0bHkgcGFzc2VkIHRvIHRoZSBtZXRob2RzLCBleGNlcHQgdGhhdCB3ZSBjaGVjayB0aGF0CisgLy8gZWFjaCBtZXRob2QgY2hlY2tzIGZvciBsb3N0RGlnaXRzLgorIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2Fic30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdhYnMoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgLy8gbW9zdCBvZiB0aGUgZnVuY3Rpb24gb2YgdGhpcyBpcyB0ZXN0ZWQgYnkgYWRkCisgIChuZXcgVGVzdCgiYWJzMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMC4wMDAiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoImFiczAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwMCIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwIik7CisgIChuZXcgVGVzdCgiYWJzMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAwIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMC4wMDAiKSkuYWJzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMDAiKSkuYWJzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMDAiKSkuYWJzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMDAwMCIpOworICAobmV3IFRlc3QoImFiczAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLmFicyhtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMDAwMEUrNiIpOworICAobmV3IFRlc3QoImFiczAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAwMDAiKSkuYWJzKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAwRSs2Iik7CisgIChuZXcgVGVzdCgiYWJzMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgiYWJzMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMiIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAobmV3IFRlc3QoImFiczAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgiYWJzMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDEiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuYWJzKG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTkpe2FlPSQxOTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImFiczAyMCIpKS5vaz1mbGFnOworICAvLyBjaGVjayBsb3N0ZGlnaXRzIG5vdCByYWlzZWQgaWYgZGlnaXRzPTAgW21vbmFkaWMgbWV0aG9kXQorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmFicyhtY2xkMCk7CisgICBmbGFnPXRydWU7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDIwKXthZT0kMjA7CisgICBmbGFnPWZhbHNlOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWJzMDIxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGw6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLmFicygoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQyMSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiYWJzMDIyIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJhYnMiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2FkZH0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdhZGQoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYWxoczsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFyaHM7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAvLyBbZmlyc3QgZ3JvdXAgYXJlICdxdWljayBjb25maWRlbmNlIGNoZWNrJ10KKyAgKG5ldyBUZXN0KCJhZGQwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgiYWRkMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS43NSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOS4wNSIpOworICAobmV3IFRlc3QoImFkZDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFkZDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi04Iik7CisgIChuZXcgVGVzdCgiYWRkMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi00LjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoImFkZDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUwIik7CisgIChuZXcgVGVzdCgiYWRkMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY3ODkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAxMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY4MDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1NSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDUwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NSIpOworICAKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMUUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDdFKzEzIik7CisgIAorICAKKyAgLy8gW05vdyB0aGUgc2FtZSBncm91cCB3aXRoIGZpeGVkIGFyaXRobWV0aWNdCisgIChuZXcgVGVzdCgiYWRkMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMykpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoImFkZDAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuNzUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOCIpOworICAobmV3IFRlc3QoImFkZDAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNC41Iik7CisgIChuZXcgVGVzdCgiYWRkMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41MCIpOworICAobmV3IFRlc3QoImFkZDAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzNDU2ODAwIik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJhZGQwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5NSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5NCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDQ5OTkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ1MDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NDQ0NDQ0NDQ1MDAwIik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJhZGQwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMDA3MCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDA3MDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwNzAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDA3MDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDA3MDAwMDAiKTsKKyAgCisgIAorICAvLyBzeW1tZXRyeToKKyAgKG5ldyBUZXN0KCJhZGQwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAxRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwN0UrMTMiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwMDcwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMDcwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDA3MDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDcwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDcwMDAwMCIpOworICAKKyAgLy8gc29tZSByb3VuZGluZyBlZmZlY3RzCisgIChuZXcgVGVzdCgiYWRkMDU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTgiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDEiKTsKKyAgCisgIAorICAvLyBNQworICAobmV3IFRlc3QoImFkZDA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwNzAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMUUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDBFKzEzIik7CisgIAorICAKKyAgLy8gemVybyBwcmVzZXJ2YXRpb24KKyAgKG5ldyBUZXN0KCJhZGQwODAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDgxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDgyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA4MyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDg0IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAiKTsKKyAgCisgIAorICAvLyBtb3JlIGZpeGVkLCBMSFMgc3dhcHMKKyAgKG5ldyBUZXN0KCJhZGQwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTYiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS01IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDkzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS00IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01LjYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTMiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2LjI2NyIpOworICAobmV3IFRlc3QoImFkZDA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMiIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyLjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDk2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjI2LjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDk4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtNSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEwMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTEwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01MDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoImFkZDEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTUiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwMDAwMCIpOworICAobmV3IFRlc3QoImFkZDEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwIik7CisgIChuZXcgVGVzdCgiYWRkMTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMCIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNSIpOworICAKKyAgLy8gbW9yZSBmaXhlZCwgUkhTIHN3YXBzCisgIChuZXcgVGVzdCgiYWRkMTA4IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoImFkZDEwOSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS02IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTEwIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41NjI2NyIpOworICAobmV3IFRlc3QoImFkZDExMSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS00IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTUuNjI2NyIpOworICAobmV3IFRlc3QoImFkZDExMiIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2LjI2NyIpOworICAobmV3IFRlc3QoImFkZDExMyIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2Mi42NyIpOworICAobmV3IFRlc3QoImFkZDExNCIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjYuNyIpOworICAobmV3IFRlc3QoImFkZDExNSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTE2IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTE3IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTE4IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMjkiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzAiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzEiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEzMiIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzMiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAwMDAwIik7CisgIChuZXcgVGVzdCgiYWRkMTM0IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwIik7CisgIChuZXcgVGVzdCgiYWRkMTM1IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTUiKTsKKyAgCisgIC8vIFtzb21lIG9mIHRoZSBuZXh0IGdyb3VwIGFyZSByZWFsbHkgY29uc3RydWN0b3IgdGVzdHNdCisgIChuZXcgVGVzdCgiYWRkMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFkZDE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4iKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zMCIpOworICAobmV3IFRlc3QoImFkZDE0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiYWRkMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImFkZDE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgiYWRkMTUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMzAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoImFkZDE1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoImFkZDE1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFkZDE1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImFkZDE2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImFkZDE2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjdFKzEyIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiNjk5OTk5OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQxNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3RSsxMiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4xMSIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiNzAwMDAwMDAwMDAwMS4xMSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQxNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjExIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3RSsxMiIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiNzAwMDAwMDAwMDAwMS4xMSIpOworICAKKyAgCisgIC8vIGlucHV0IHByZXBhcmF0aW9uIHRlc3RzCisgIGFsaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDAwMDAiKTsKKyAgYXJocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiYWRkMTcwIikpLm9rPShhbGhzLmFkZChhcmhzLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzRSsxMyIpOworICAobmV3IFRlc3QoImFkZDE3MSIpKS5vaz0oYXJocy5hZGQoYWxocyxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4yM0UrMTMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NiIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIC8vIG5leHQgd2FzIDEuNTRFKzQgdW5kZXIgb2xkIFt0cnVuY2F0ZSB0byBkaWdpdHMrMV0gcnVsZXMKKyAgKG5ldyBUZXN0KCJhZGQxNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ0NiIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIChuZXcgVGVzdCgiYWRkMTc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NTQiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAobmV3IFRlc3QoImFkZDE3NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ0IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTRFKzQiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMTc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAvLyBuZXh0IHdhcyAxLjU0RSs0IHVuZGVyIG9sZCBbdHJ1bmNhdGUgdG8gZGlnaXRzKzFdIHJ1bGVzCisgIChuZXcgVGVzdCgiYWRkMTc3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ0NiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAobmV3IFRlc3QoImFkZDE3OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NTQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTVFKzQiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ0IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU0RSs0Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmFkZCgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDIyKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uYWRkKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQyMyl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoImFkZDIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5hZGQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8sbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQyNCl7YWU9JDI0OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWRkMjAyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLmFkZCh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjUpe2FlPSQyNTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImFkZDIwMyIpKS5vaz1mbGFnOworICAKKyAgLy8gY2hlY2sgbG9zdGRpZ2l0cyBub3QgcmFpc2VkIGlmIGRpZ2l0cz0wIFtkeWFkaWMgbWV0aG9kXQorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmFkZChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTyxtY2xkMCk7CisgICBmbGFnPXRydWU7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDI2KXthZT0kMjY7CisgICBmbGFnPWZhbHNlOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWRkMjA0IikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLmFkZCh0ZW5sb25nLG1jbGQwKTsKKyAgIGZsYWc9dHJ1ZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjcpe2FlPSQyNzsKKyAgIGZsYWc9ZmFsc2U7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDUiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImFkZCIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjY29tcGFyZVRvKEJpZ0RlY2ltYWwpfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2NvbXBhcmV0bygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIC8vIHdlIGFzc3VtZSBhZGQvc3VidHJhY3QgdGVzdCBmdW5jdGlvbjsgdGhpcyBqdXN0CisgIC8vIHRlc3RzIGV4aXN0ZW5jZSwgZXhjZXB0aW9ucywgYW5kIHBvc3NpYmxlIHJlc3VsdHMKKyAgCisgIChuZXcgVGVzdCgiY3B0MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKSk9PTE7CisgIChuZXcgVGVzdCgiY3B0MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKSk9PTA7CisgIChuZXcgVGVzdCgiY3B0MDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wMCIpKSk9PTA7CisgIChuZXcgVGVzdCgiY3B0MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkpPT0wOworICAobmV3IFRlc3QoImNwdDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkpPT0oLTEpOworICAobmV3IFRlc3QoImNwdDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSxtY2RlZikpPT0oLTEpOworICAobmV3IFRlc3QoImNwdDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSxtYzYpKT09KC0xKTsKKyAgKG5ldyBUZXN0KCJjcHQwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IiksbWNmZCkpPT0oLTEpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmNvbXBhcmVUbygoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDI4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjcHQxMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uY29tcGFyZVRvKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQyOSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoImNwdDEwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5jb21wYXJlVG8oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDMwKXthZT0kMzA7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJjcHQxMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5jb21wYXJlVG8odGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDMxKXthZT0kMzE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJjcHQxMDMiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImNvbXBhcmVUbyIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZGl2aWRlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2RpdmlkZSgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgcm1jZDsKKyAgaW50IHJodTsKKyAgaW50IHJkOworICBpbnQgcnU7CisgIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIGU9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgiZGl2MzAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMzMzMzMzIik7CisgIChuZXcgVGVzdCgiZGl2MzAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY2NjY2NjY3Iik7CisgIChuZXcgVGVzdCgiZGl2MzAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjMwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNCIpOworICAobmV3IFRlc3QoImRpdjMwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yIik7CisgIChuZXcgVGVzdCgiZGl2MzEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTg3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxODciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNSIpOworICAobmV3IFRlc3QoImRpdjMxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNSIpOworICAobmV3IFRlc3QoImRpdjMxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyNSIpOworICAobmV3IFRlc3QoImRpdjMxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImRpdjMxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiZGl2MzIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiZGl2MzIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiZGl2MzIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5Ljk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDBFLTUwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAvLyBNQworICAobmV3IFRlc3QoImRpdjMyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImRpdjMyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiZGl2MzI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs3Iik7CisgIChuZXcgVGVzdCgiZGl2MzI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OSIpOworICAKKyAgLy8gY2hlY2sgcm91bmRpbmcgZXhwbGljaXRseSBbbm90ZTogZGlnaXRzKzEgdHJ1bmNhdGlvbl0KKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpOworICAobmV3IFRlc3QoImRpdjMzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjMzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTEiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICAobmV3IFRlc3QoImRpdjMzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTik7CisgIChuZXcgVGVzdCgiZGl2MzMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41OSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUik7CisgIChuZXcgVGVzdCgiZGl2MzM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41OSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pOworICAobmV3IFRlc3QoImRpdjMzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNDUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNCIpOworICAobmV3IFRlc3QoImRpdjMzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjMzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKTsKKyAgKG5ldyBUZXN0KCJkaXYzNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjQ1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjUwIikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjYiKTsKKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApOworICAobmV3IFRlc3QoImRpdjM0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNDUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApOworICAobmV3IFRlc3QoImRpdjM0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTEiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICAobmV3IFRlc3QoImRpdjM0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICAKKyAgLy8gZml4ZWQgcG9pbnQuLi4KKyAgKG5ldyBUZXN0KCJkaXYzNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjM1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzUzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjM1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzU2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAwIik7CisgIChuZXcgVGVzdCgiZGl2MzU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yIik7CisgIChuZXcgVGVzdCgiZGl2MzU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIwMCIpOworICAobmV3IFRlc3QoImRpdjM2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjM2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxODciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4NyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImRpdjM2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjI1Iik7CisgIChuZXcgVGVzdCgiZGl2MzY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjI1LjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuNCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OS40Iik7CisgIChuZXcgVGVzdCgiZGl2MzczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkuNSIpOworICAobmV3IFRlc3QoImRpdjM3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS45IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5LjkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuOTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Ljk5OSIpOworICAobmV3IFRlc3QoImRpdjM3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMEUtNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwIik7CisgIAorICAvLy0gRml4ZWQgcG9pbnQ7IGV4cGxpY2l0IHNjYWxlcyAmIHJvdW5kcyBbb2xkIEJpZ0RlY2ltYWwgZGl2aWRlc10KKyAgcmh1PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgcmQ9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOOworICAobmV3IFRlc3QoImRpdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDAscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMixyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMyIpOworICAobmV3IFRlc3QoImRpdjAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwzLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzMyIpOworICAobmV3IFRlc3QoImRpdjAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzMzMiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwwLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDEscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNyIpOworICAobmV3IFRlc3QoImRpdjAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwyLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjY3Iik7CisgIChuZXcgVGVzdCgiZGl2MDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDMscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY3Iik7CisgIChuZXcgVGVzdCgiZGl2MDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY2NyIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMCIpLDMscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTAwIik7CisgIChuZXcgVGVzdCgiZGl2MDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMCIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgiZGl2MDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMCIpLDAscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMjAwIik7CisgIChuZXcgVGVzdCgiZGl2MDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwyLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyIik7CisgIChuZXcgVGVzdCgiZGl2MDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MDM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMjI3Iik7CisgIChuZXcgVGVzdCgiZGl2MDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NzciKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45NzgwIik7CisgIChuZXcgVGVzdCgiZGl2MDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3OTgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS4iKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3NyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjcyNzI3Iik7CisgIChuZXcgVGVzdCgiZGl2MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMjI3MjczIik7CisgIChuZXcgVGVzdCgiZGl2MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNzI3Iik7CisgIChuZXcgVGVzdCgiZGl2MDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3Nzc3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk4Iik7CisgIChuZXcgVGVzdCgiZGl2MDcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgiZGl2MDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS4iKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuIikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIHJkPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTjsgLy8gdGVzdCB0aGlzIGlzIGFjdHVhbGx5IGJlaW5nIHVzZWQKKyAgKG5ldyBUZXN0KCJkaXYwODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMCxyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDgxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDEscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42Iik7CisgIChuZXcgVGVzdCgiZGl2MDgyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDIscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NiIpOworICAobmV3IFRlc3QoImRpdjA4MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwzLHJkKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY2Iik7CisgIChuZXcgVGVzdCgiZGl2MDg0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDQscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjY2Iik7CisgIAorICBydT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZOyAvLyBjaGVjayBmb3Igc29tZSAwIHJlc2lkdWVzCisgIChuZXcgVGVzdCgiZGl2MDkwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MCIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAuMDAwMCIpOworICAobmV3IFRlc3QoImRpdjA5MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMCIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDkzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDk0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDMscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMixydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIwIik7CisgIChuZXcgVGVzdCgiZGl2MDk2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDEscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIAorICAvLyBjaGVjayByb3VuZGluZyBleHBsaWNpdGx5CisgIChuZXcgVGVzdCgiZGl2MTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjEwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA0Iik7CisgIChuZXcgVGVzdCgiZGl2MTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNCIpOworICAobmV3IFRlc3QoImRpdjEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjEyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA1Iik7CisgIChuZXcgVGVzdCgiZGl2MTI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MCIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgiZGl2MTI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNiIpOworICAobmV3IFRlc3QoImRpdjEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYxNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZGl2MTQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MTUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNiIpOworICAobmV3IFRlc3QoImRpdjE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjUyLiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIC8vLSBlcnJvciBjb25kaXRpb25zIC0tLQorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmRpdmlkZSgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDMyKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uZGl2aWRlKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQzMyl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoImRpdjIwMiIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrc2NhbGU6ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLC04LDApOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMzQpe2U9JDM0OworICAgZmxhZz1mbGFnJihlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJOZWdhdGl2ZSBzY2FsZTogLTgiKTsKKyAgfS8qY2hlY2tzY2FsZSovCisgIChuZXcgVGVzdCgiZGl2MjAzIikpLm9rPWZsYWc7CisgIAorICB0cnl7cm91bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzNSl7YWU9JDM1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA0IikpLm9rPWZsYWc7CisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzNil7YWU9JDM2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA1IikpLm9rPWZsYWc7CisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzcpe2FlPSQzNzsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfS8qcm91bm4qLworICAobmV3IFRlc3QoImRpdjIwNiIpKS5vaz1mbGFnOworICB0cnl7cm91bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwIiksMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM4KXthZT0kMzg7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDciKSkub2s9ZmxhZzsKKyAgdHJ5e3JvdW5uOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzOSl7YWU9JDM5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA4IikpLm9rPWZsYWc7CisgIAorICB0cnl7ZGl2MDpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDApe2FlPSQ0MDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEaXZpZGUgYnkgMCIpOworICB9LypkaXYwKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDkiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuZGl2aWRlKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0MSl7YWU9JDQxOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiZGl2MjEwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuZGl2aWRlKHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0Mil7YWU9JDQyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiZGl2MjExIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJkaXZpZGUiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2RpdmlkZUludGVnZXJ9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZGl2aWRlSW50ZWdlcigpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAobmV3IFRlc3QoImR2STAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjMzIik7CisgIChuZXcgVGVzdCgiZHZJMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxOCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjExMjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImR2STAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjguMDA1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgLy8gTUMKKyAgKG5ldyBUZXN0KCJkdkkwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAKKyAgLy8gRml4ZWQgLS0KKyAgKG5ldyBUZXN0KCJkdkkwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMyIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMyIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoImR2STAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMzIik7CisgIChuZXcgVGVzdCgiZHZJMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTgiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMTIwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4LjAwNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZHZJMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmRpdmlkZUludGVnZXIoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ0Myl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiZHZJMTAxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLmRpdmlkZUludGVnZXIodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQ0KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiZHZJMTAyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmRpdmlkZUludGVnZXIodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDQ1KXthZT0kNDU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJkdkkxMDMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuZGl2aWRlSW50ZWdlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDYpe2FlPSQ0NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImR2STEwNCIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiZGl2aWRlSW50ZWdlciIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjbWF4fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ21heCgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAvLyB3ZSBhc3N1bWUgYWRkL3N1YnRyYWN0IHRlc3QgZnVuY3Rpb247IHRoaXMgYW5kIG1pbiBqdXN0CisgIC8vIHRlc3QgZXhpc3RlbmNlIGFuZCB0ZXN0IHRoZSB0cnV0aCB0YWJsZQorICAobmV3IFRlc3QoIm1heDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgibWF4MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNyIpOworICAobmV3IFRlc3QoIm1heDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI3Iik7CisgIChuZXcgVGVzdCgibWF4MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCI3Iik7CisgIChuZXcgVGVzdCgibWF4MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMkUrMyIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIwMDAiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyRSszIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjJFKzMiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyRSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMCIpOworICAobmV3IFRlc3QoIm1heDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMkUrMyIpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLm1heCgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQ3KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJtYXgwMTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ubWF4KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ0OCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoIm1heDAxMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLm1heChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDkpe2FlPSQ0OTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm1heDAxMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLm1heCh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTApe2FlPSQ1MDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm1heDAxMyIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJtYXgiKTsKKyB9CisKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNtaW59IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbWluKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1pbng9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgLy8gd2UgYXNzdW1lIGFkZC9zdWJ0cmFjdCB0ZXN0IGZ1bmN0aW9uOyB0aGlzIGFuZCBtYXgganVzdAorICAvLyB0ZXN0IGV4aXN0ZW5jZSBhbmQgdGVzdCB0aGUgdHJ1dGggdGFibGUKKyAgCisgIChuZXcgVGVzdCgibWluMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm1pbjAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgibWluMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMDAwIik7CisgIChuZXcgVGVzdCgibWluMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTJFKzMiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTJFKzMiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMDAwIik7CisgIChuZXcgVGVzdCgibWluMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTJFKzMiKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG1pbng9dGVuOworICAgbWlueC5taW4oKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1MSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgibWluMDEwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgbWlueD10ZW47CisgICBtaW54Lm1pbih0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNTIpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTEiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubWluKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ1Myl7YWU9JDUzOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibWluMDEyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDkpKS5taW4odGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDU0KXthZT0kNTQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTMiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgibWluIik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNtdWx0aXBseX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtdWx0aXBseSgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsOTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGw3N2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsMTIzNDU7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBlZGdlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdGVuZWRnZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGh1bmVkZ2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBvcG87CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDI9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gb2U9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgibXVsMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoIm11bDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm11bDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXVsMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjA5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcuMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjEzOSIpOworICAobmV3IFRlc3QoIm11bDAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMCIpOworICAobmV3IFRlc3QoIm11bDAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNTAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjAwIik7CisgIChuZXcgVGVzdCgibXVsMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OSIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMC4wMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41MCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAuMDAwIik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJtdWwwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgibXVsMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm11bDAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgibXVsMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMDkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNy4xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzYuMTM5Iik7CisgIChuZXcgVGVzdCgibXVsMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wIik7CisgIChuZXcgVGVzdCgibXVsMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41MCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDU2Nzg5MDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNC41Njc4OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAwMC4wMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMjM0NTY3Ljg5MDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyMzQuNTY3ODkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMC4wMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMjM0NTY3Ljg5MDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OTkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OS45OTk5OTk5ODAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDUwMCIpOworICAobmV3IFRlc3QoIm11bDAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMCIpOworICAobmV3IFRlc3QoIm11bDAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7IC8vIHJocyBpcyAnMCcKKyAgLy8gMTk5OS4xMi4yMTogbmV4dCBvbmUgaXMgYSBlZGdlIGNhc2UgaWYgaW50ZXJtZWRpYXRlIGxvbmdzIGFyZSB1c2VkCisgIChuZXcgVGVzdCgibXVsMDM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5OTk5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk3NjU2MjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5NzY1NjI0OTk5OTkwMjM0Mzc1Iik7CisgIAorICBsOT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODlFKzEwIik7CisgIGw3N2U9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzdFLTIwIik7CisgIChuZXcgVGVzdCgibXVsMDQwIikpLm9rPShsOS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzU3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDI2NzYwMTE5NTczMjczMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDA0MSIpKS5vaz0obDkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1Njc1NyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCI0LjI2RSsyNCIpOworICAobmV3IFRlc3QoIm11bDA0MiIpKS5vaz0obDkubXVsdGlwbHkobDc3ZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk1MDYxNzI3NTMwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMDQzIikpLm9rPShsOS5tdWx0aXBseShsNzdlLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk0NyIpOworICAobmV3IFRlc3QoIm11bDA0NCIpKS5vaz0obDc3ZS5tdWx0aXBseShsOSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45NDciKTsKKyAgCisgIGwxMjM0NT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjMuNDUiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTAiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTExIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1RSsxMyIpOworICAobmV3IFRlc3QoIm11bDA1MSIpKS5vaz0obDEyMzQ1Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlMTEiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1RSsxMyIpOworICAobmV3IFRlc3QoIm11bDA1MiIpKS5vaz0obDEyMzQ1Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlKzkiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzLjQ1RSs5Iik7CisgIChuZXcgVGVzdCgibXVsMDUzIikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMCIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDU0IikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi4zNDVFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDU1IikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMiIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDVFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDU2IikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMyIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzE1Iik7CisgIAorICAvLyB0ZXN0IHNvbWUgY2FzZXMgdGhhdCBhcmUgY2xvc2UgdG8gZXhwb25lbnQgb3ZlcmZsb3cKKyAgKG5ldyBUZXN0KCJtdWwwNjAiKSkub2s9KG9uZS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZTk5OTk5OTk5OSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjEiKSkub2s9KG9uZS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjllOTk5OTk5OTk5IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDYyIikpLm9rPShvbmUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OWU5OTk5OTk5OTkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDYzIikpLm9rPSh0ZW4ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWU5OTk5OTk5OTkiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTBFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA2NCIpKS5vaz0odGVuLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWU5OTk5OTk5OTkiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTkuMEUrOTk5OTk5OTk5Iik7CisgIGVkZ2U9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTllOTk5OTk5OTk5Iik7CisgIHRlbmVkZ2U9dGVuLm11bHRpcGx5KGVkZ2UsbWNlKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjUiKSkub2s9KHRlbmVkZ2UudG9TdHJpbmcoKSkuZXF1YWxzKCI5OS45OTBFKzk5OTk5OTk5OSIpOworICBodW5lZGdlPXRlbi5tdWx0aXBseSh0ZW5lZGdlLG1jZSk7CisgIChuZXcgVGVzdCgibXVsMDY2IikpLm9rPShodW5lZGdlLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5LjkwMEUrOTk5OTk5OTk5Iik7CisgIG9wbz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEiKTsgLy8gb25lIHRlbnRoCisgIChuZXcgVGVzdCgibXVsMDY3IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWUtOTk5OTk5OTk4IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA2OCIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5ZS05OTk5OTk5OTgiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RS05OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjkiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTllLTk5OTk5OTk5OCIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5RS05OTk5OTk5OTciKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDcwIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWUtOTk5OTk5OTk4IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA3MSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5ZS05OTk5OTk5OTgiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA3MiIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OWUtOTk5OTk5OTk4IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDczIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5ZS05OTk5OTk5OTciKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUtOTk5OTk5OTk2Iik7CisgIChuZXcgVGVzdCgibXVsMDc0IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OWUtOTk5OTk5OTk3IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjk5Ljk5RS05OTk5OTk5OTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNzQiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OWUtOTk5OTk5OTk3IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OS45OUUtOTk5OTk5OTk2Iik7CisgIAorICAvLyB0ZXN0IHNvbWUgaW50ZXJtZWRpYXRlIGxlbmd0aHMKKyAgKG5ldyBUZXN0KCJtdWwwODAiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2NzguOSIpOworICAobmV3IFRlc3QoIm11bDA4MSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAxMjM0IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDgyIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MTIzNDU2Nzg5IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzE2Iik7CisgIChuZXcgVGVzdCgibXVsMDgzIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5IiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC45Iik7CisgIChuZXcgVGVzdCgibXVsMDg0IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDEyMzQiKSxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTAxMjMuNCIpOworICAobmV3IFRlc3QoIm11bDA4NSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTEyMzQ1Njc4OSIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MTIzNDU2NzguOSIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSkubXVsdGlwbHkob3BvLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC45Iik7CisgIChuZXcgVGVzdCgibXVsMDkxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDEyMzQiKSkubXVsdGlwbHkob3BvLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDU2Nzg5RSsxMiIpOworICAobmV3IFRlc3QoIm11bDA5MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTEyMzQ1Njc4OSIpKS5tdWx0aXBseShvcG8sbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzE2Iik7CisgIChuZXcgVGVzdCgibXVsMDkzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5IikpLm11bHRpcGx5KG9wbyxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMTIzNCIpKS5tdWx0aXBseShvcG8sbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkwMTIzLjQiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkxMjM0NTY3ODkiKSkubXVsdGlwbHkob3BvLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MTIzNDU2NzguOSIpOworICAKKyAgLy8gdGVzdCBzb21lIG1vcmUgZWRnZSBjYXNlcyBhbmQgY2FycmllcworICAobmV3IFRlc3QoIm11bDEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxIik7CisgIChuZXcgVGVzdCgibXVsMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMCIpOworICAobmV3IFRlc3QoIm11bDEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMCIpOworICAobmV3IFRlc3QoIm11bDEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAvLyB0ZXN0IHNvbWUgbW9yZSBlZGdlIGNhc2VzIHdpdGhvdXQgY2FycmllcworICAobmV3IFRlc3QoIm11bDEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMCIpOworICAobmV3IFRlc3QoIm11bDEzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ubXVsdGlwbHkoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1NSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgibXVsMjAwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLm11bHRpcGx5KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1Nil7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoIm11bDIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIzNDU2Nzg5MDEyMzQ1RS0wIik7CisgICBkMj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5RSs5OTk5OTk5OTkiKTsKKyAgIGQxLm11bHRpcGx5KGQyLG1jZGVmKTsgLy8gbWFyZ2luYWwgb3ZlcmZsb3cKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDU3KXtvZT0kNTc7CisgICBmbGFnPShvZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRXhwb25lbnQgT3ZlcmZsb3c6IDEwMDAwMDAwMDAiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjExMiIpOworICAgZDI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOUUrOTk5OTk5OTk5Iik7CisgICBkMS5tdWx0aXBseShkMixtY2UpOyAvLyBtYXJnaW5hbCBvdmVyZmxvdywgZW5naW5lZXJpbmcKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDU4KXtvZT0kNTg7CisgICBmbGFnPShvZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRXhwb25lbnQgT3ZlcmZsb3c6IDEwMDAwMDAwMDIiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja292ZXI6ZG97CisgICBkMT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjkiKTsKKyAgIGQyPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTk5OTk5OTk5OSIpOworICAgZDEubXVsdGlwbHkoZDIsbWNkZWYpOyAvLyBtYXJnaW5hbCBuZWdhdGl2ZSBvdmVyZmxvdworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTkpe29lPSQ1OTsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogLTEwMDAwMDAwMDAiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDQiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOSIpOworICAgZDI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtOTk5OTk5OTk5Iik7CisgICBkMS5tdWx0aXBseShkMixtY2UpOyAvLyBtYXJnaW5hbCBuZWdhdGl2ZSBvdmVyZmxvdywgZW5naW5lZXJpbmcKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDYwKXtvZT0kNjA7CisgICBmbGFnPShvZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRXhwb25lbnQgT3ZlcmZsb3c6IC0xMDAwMDAwMDAyIik7CisgIH0vKmNoZWNrb3ZlciovCisgIChuZXcgVGVzdCgibXVsMjA1IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLm11bHRpcGx5KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ2MSl7YWU9JDYxOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibXVsMjA2IikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4ubXVsdGlwbHkodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDYyKXthZT0kNjI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDciKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoIm11bHRpcGx5Iik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNuZWdhdGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbmVnYXRlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgibmVnMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0yIik7CisgIChuZXcgVGVzdCgibmVnMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgibmVnMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi4wMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibmVnMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm5lZzAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoIm5lZzAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibmVnMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgibmVnMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoIm5lZzAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMDAwMCIpOworICAobmV3IFRlc3QoIm5lZzAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwMDAwIik7CisgIChuZXcgVGVzdCgibmVnMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkubmVnYXRlKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAwRSs2Iik7CisgIChuZXcgVGVzdCgibmVnMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMDAwMCIpKS5uZWdhdGUobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjAwMDAwRSs2Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLm5lZ2F0ZSgoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ2Myl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgibmVnMTAwIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLm5lZ2F0ZShtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDY0KXthZT0kNjQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJuZWcxMDEiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgibmVnYXRlIik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNwbHVzfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3BsdXMoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jaGUxOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJwbHUwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoInBsdTAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBsdTAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicGx1MDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgicGx1MDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgicGx1MDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi4wMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBsdTAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInBsdTAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgicGx1MDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInBsdTAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgicGx1MDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMDAwMDAwIik7CisgIChuZXcgVGVzdCgicGx1MDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkucGx1cyhtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAwMDBFKzYiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwMDAwIikpLnBsdXMobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAwMDBFKzYiKTsKKyAgCisgIC8vIHRyeSBzb21lIGV4b3RpYyBidXQgc2lsbHkgcm91bmRpbmcgW2Zvcm1hdCBjaGVja3MgbW9yZSB2YXJpZXRpZXNdCisgIC8vIFt0aGlzIG1vc3RseSBlbnN1cmVzIHdlIGNhbiBzZXQgdXAgYW5kIHBhc3MgdGhlIHNldHRpbmddCisgIG1jaGUxPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjI0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicGx1MDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAobmV3IFRlc3QoInBsdTAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjYiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicGx1MDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAobmV3IFRlc3QoInBsdTAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTYiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIChuZXcgVGVzdCgicGx1MDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yNTEiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yNCIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjMiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xNCIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgCisgIC8vIG1vcmUgZml4ZWQsIHBvdGVudGlhbCBMSFMgc3dhcHMgaWYgZG9uZSBieSBhZGQgMAorICAobmV3IFRlc3QoInBsdTA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMTAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoInBsdTA2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNSIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41NjI2NyIpOworICAobmV3IFRlc3QoInBsdTA2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMiIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyLjY3Iik7CisgIChuZXcgVGVzdCgicGx1MDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjI2LjciKTsKKyAgKG5ldyBUZXN0KCJwbHUwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnBsdXMoKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNjUpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoInBsdTEwMCIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5wbHVzKG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjYpe2FlPSQ2NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInBsdTEwMSIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJwbHVzIik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNwb3d9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFncG93KCl7CisgIGJvb2xlYW4gZmxhZzsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHg7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0ZW1wOworICBpbnQgbj0wOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdng7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2bjsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgZmxhZz10cnVlOworICAobmV3IFRlc3QoInBvdzAwMSIpKS5vaz0iMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDAyIikpLm9rPSIwLjMiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwMyIpKS5vaz0iMC4zIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDQiKSkub2s9IjAuMDkiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNSIpKS5vaz0iMC4wOSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNiIpKS5vaz0oIjFFLTgiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItOCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDciKSkub2s9KCIxRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTciKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA4IikpLm9rPSIwLjAwMDAwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA5IikpLm9rPSIwLjAwMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTAiKSkub2s9IjAuMDAwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTQiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDExIikpLm9rPSIwLjAwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDEyIikpLm9rPSIwLjAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTMiKSkub2s9IjAuMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE0IikpLm9rPSIxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxNSIpKS5vaz0iMTAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE2IikpLm9rPSIxMDAwMDAwMDAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjgiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE3IikpLm9rPSgiMUUrOSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE4IikpLm9rPSgiMUUrOTkiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTkiKSkub2s9KCIxRSs5OTk5OTk5OTkiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDIwIikpLm9rPSgiMUUrOTk5OTk5OTk4IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk4IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyMSIpKS5vaz0oIjFFKzk5OTk5OTk5NyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5NyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjIiKSkub2s9KCIxRSszMzMzMzMzMzMiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMzMzMzMzMzMiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDIzIikpLm9rPSgiMUUtMzMzMzMzMzMzIikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMzMzMzMzMzMyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjQiKSkub2s9KCIxRS05OTk5OTk5OTgiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItOTk5OTk5OTk4IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyNSIpKS5vaz0oIjFFLTk5OTk5OTk5OSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OTk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI2IikpLm9rPSIwLjUiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI3IikpLm9rPSIwLjI1Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyOCIpKS5vaz0iMC4wNjI1Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi00IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAKKyAgKG5ldyBUZXN0KCJwb3cwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicG93MDUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoInBvdzA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTgiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTk5OTk5OTk3Iik7CisgIChuZXcgVGVzdCgicG93MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMzMzMzMzMzMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzMzMzMzMzMzMyIpOworICAobmV3IFRlc3QoInBvdzA2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3NyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzc3Iik7CisgIChuZXcgVGVzdCgicG93MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrMjIiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTc3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtNzciKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtMjIiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoInBvdzA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yNSIpOworICAobmV3IFRlc3QoInBvdzA2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi00IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNjI1Iik7CisgIChuZXcgVGVzdCgicG93MDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNi4wIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzYiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsvKiBmcm9tIGJvb2sgKi8KKyAgKG5ldyBUZXN0KCJwb3cwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNjQiKTsvKiBmcm9tIGJvb2sgKi8KKyAgCisgIC8vIDE5OTguMTIuMTQgTmV4dCB0ZXN0IHJlbW92ZWQgYXMgcG93KCkgbm8gbG9uZ2VyIHJvdW5kcyBSSFMgW2FzIHBlciBBTlNJXQorICAvLyBUZXN0KCdwb3cwNzEnKS5vaz1CaWdEZWNpbWFsKCcyJykucG93KEJpZ0RlY2ltYWwoJzIuMDAwMDAwMDAxJyksbWNkZWYpLnRvU3RyaW5nID09ICc0Jy8qIGNoZWNrIGlucHV0IHJvdW5kaW5nICovCisgIAorICAvKiBHZW5lcmFsIHRlc3RzIGZyb20gb3JpZ2luYWwgUmV4eCBkaWFnbm9zdGljcyAqLworICB4PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpOworICB0ZW1wPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkU7CisgIGZsYWc9dHJ1ZTsKKyAge249MTtuOmZvcig7bjw9MTA7bisrKXsKKyAgIHRlbXA9dGVtcC5tdWx0aXBseSh4KS5kaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSk7CisgICBmbGFnPWZsYWcmKHgucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscyh0ZW1wLnRvU3RyaW5nKCkpOworICAgfQorICB9LypuKi8KKyAgKG5ldyBUZXN0KCJwb3cwODAiKSkub2s9ZmxhZzsKKyAgCisgIHg9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpOworICB0ZW1wPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkU7CisgIGZsYWc9dHJ1ZTsKKyAge249MTtuOmZvcig7bjw9Mjk7bisrKXsKKyAgIHRlbXA9dGVtcC5tdWx0aXBseSh4KS5kaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSk7CisgICBmbGFnPWZsYWcmKHgucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscyh0ZW1wLnRvU3RyaW5nKCkpOworICAgZmxhZz1mbGFnJih4LnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChpbnQpLW4pLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5kaXZpZGUodGVtcCxtY2RlZikudG9TdHJpbmcoKSk7CisgICAvKiBOb3RlIHRoYXQgcm91bmRpbmcgZXJyb3JzIGFyZSBwb3NzaWJsZSBmb3IgbGFyZ2VyICJuIiAqLworICAgLyogZHVlIHRvIHRoZSBpbmZvcm1hdGlvbiBjb250ZW50IG9mIHRoZSBleHBvbmVudCAgICAgICAgKi8KKyAgIH0KKyAgfS8qbiovCisgIChuZXcgVGVzdCgicG93MDgxIikpLm9rPWZsYWc7CisgIAorICAvKiBUaGUgVmllbm5hIGNhc2UuICBDaGVja3MgYm90aCBzZXR1cCBhbmQgMS9hY2Mgd29ya2luZyBwcmVjaXNpb24gKi8KKyAgLy8gTW9kaWZpZWQgMTk5OC4xMi4xNCBhcyBSSFMgbm8gbG9uZ2VyIHJvdW5kZWQgYmVmb3JlIHVzZSAobXVzdCBmaXQpCisgIC8vIE1vZGlmaWVkIDE5OTAuMDIuMDQgYXMgTEhTIGlzIG5vdyByb3VuZGVkIChpbnN0ZWFkIG9mIHRydW5jYXRlZCB0byBndWFyZCkKKyAgdng9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5RSsxMCIpOyAvLyBsaHMgLi4gcm91bmRlZCB0byAxLjIzRSsxOAorICB2bj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMzAwMGUrMiIpOyAvLyByaHMgLi4gW3dhczogLTEuMjM0NTVlKzIsIHJvdW5kcyB0byAtMTIzXQorICAobmV3IFRlc3QoInBvdzA5MCIpKS5vaz0odngucG93KHZuLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCI4Ljc0RS0yMjI2Iik7CisgIAorICAvLy0gZml4ZWQgcG9pbnQgdmVyc2lvbnMgLS0tCisgIChuZXcgVGVzdCgicG93MTAxIikpLm9rPSIxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDIiKSkub2s9IjAuMyIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTAzIikpLm9rPSIwLjMiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwNCIpKS5vaz0iMC4wOSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA1IikpLm9rPSIwLjA5Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDYiKSkub2s9IjEwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwNyIpKS5vaz0iMTAwMDAwMDAwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4IikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwOCIpKS5vaz0iMTAwMDAwMDAwMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDkiKSkub2s9IjEwMDAwMDAwMDAwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTAiKSkub2s9IjEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTEiKSkub2s9IjE2Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTEyIikpLm9rPSIyNTYiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTMiKSkub2s9IjEwMjQiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTE0IikpLm9rPSIxLjA1MTAxMDA1MDEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS50b1N0cmluZygpKTsKKyAgCisgIChuZXcgVGVzdCgicG93MTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBvdzEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicG93MTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cxNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzEyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI2LjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4wMCIpOworICAobmV3IFRlc3QoInBvdzEyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjYuMDAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4wMDAwIik7CisgIChuZXcgVGVzdCgicG93MTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNi4wMDAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4wMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNjQiKTsKKyAgCisgIC8qIGVycm9ycyAqLworICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnBvdygoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDY3KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ucG93KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ2OCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoInBvdzE1MSIpKS5vaz1mbGFnOworICAKKyAgZmxhZz10cnVlOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnBvdyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjkpe2FlPSQ2OTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInBvdzE1MiIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3codGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDcwKXthZT0kNzA7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3Bvczpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03MSIpKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDcxKXthZT0kNzE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiTmVnYXRpdmUgcG93ZXI6IC03MSIpOworICB9LypjaGVja3BvcyovCisgIChuZXcgVGVzdCgicG93MTU0IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQiKSxtYzMpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzIpe2FlPSQ3MjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IDEyMzQiKTsKKyAgfS8qY2hlY2t3aG9sZSovCisgIChuZXcgVGVzdCgicG93MTU1IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTE6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi4zNGUrMiIpLG1jMyk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3Myl7YWU9JDczOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czogMS4yMzRFKzMiKTsKKyAgfS8qY2hlY2t3aG9sZTEqLworICAobmV3IFRlc3QoInBvdzE1NiIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrd2hvbGUyOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNCIpLG1jZGVmKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc0KXthZT0kNzQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxMi40Iik7CisgIH0vKmNoZWNrd2hvbGUyKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTciKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlMzpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDEiKSxtY2RlZik7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3NSl7YWU9JDc1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRlY2ltYWwgcGFydCBub24temVybzogMS4wMSIpOworICB9LypjaGVja3dob2xlMyovCisgIChuZXcgVGVzdCgicG93MTU4IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTQ6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwMSIpLG1jZGVmKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc2KXthZT0kNzY7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxLjAwMDAwMDAwMSIpOworICB9LypjaGVja3dob2xlNCovCisgIChuZXcgVGVzdCgicG93MTU5IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTU6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwMSIpLG1jMyk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3Nyl7YWU9JDc3OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRlY2ltYWwgcGFydCBub24temVybzogMS4wMDAwMDAwMDEiKTsKKyAgfS8qY2hlY2t3aG9sZTUqLworICAobmV3IFRlc3QoInBvdzE2MCIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrd2hvbGU2OmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS42N0UtOTg3NjU0MzIxIiksbWMzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc4KXthZT0kNzg7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiA1LjY3RS05ODc2NTQzMjEiKTsKKyAgfS8qY2hlY2t3aG9sZTYqLworICAobmV3IFRlc3QoInBvdzE2MSIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgicG93Iik7CisgfQorCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjcmVtYWluZGVyfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3JlbWFpbmRlcigpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAobmV3IFRlc3QoInJlbTAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicmVtMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEzIik7CisgIChuZXcgVGVzdCgicmVtMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjEzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMyIpOworICAobmV3IFRlc3QoInJlbTAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEwMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMzIik7CisgIChuZXcgVGVzdCgicmVtMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMyIpOworICAobmV3IFRlc3QoInJlbTAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMy4zIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInJlbTAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg1MCksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDIuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMyksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgicmVtMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInJlbTAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicmVtMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAwIik7CisgIChuZXcgVGVzdCgicmVtMDI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwIik7CisgIChuZXcgVGVzdCgicmVtMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIAorICAobmV3IFRlc3QoInJlbTA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMDQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoInJlbTA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAwMDAwMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTciKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS04Iik7CisgIChuZXcgVGVzdCgicmVtMDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTkiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoInJlbTA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDMiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAzIik7CisgIChuZXcgVGVzdCgicmVtMDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInJlbTA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMSIpOworICAobmV3IFRlc3QoInJlbTA1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS03Iik7CisgIAorICAobmV3IFRlc3QoInJlbTA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMiIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43MzQ1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NjU1Iik7CisgIChuZXcgVGVzdCgicmVtMDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOCIpOworICAobmV3IFRlc3QoInJlbTA2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicmVtMDY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQwMCIpOworICAKKyAgLy8gTUMgLS0KKyAgKG5ldyBUZXN0KCJyZW0wNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMDAwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJlKzEyIiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjNFKzExIik7CisgIAorICAvLyBGaXhlZCAtLQorICAobmV3IFRlc3QoInJlbTEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicmVtMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEzIik7CisgIChuZXcgVGVzdCgicmVtMTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjEzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMyIpOworICAobmV3IFRlc3QoInJlbTEwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEwMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMzIik7CisgIChuZXcgVGVzdCgicmVtMTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMyIpOworICAobmV3IFRlc3QoInJlbTExMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMy4zIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInJlbTExNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMTE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg1MCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDIuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgicmVtMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInJlbTEyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicmVtMTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMTI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAwIik7CisgIChuZXcgVGVzdCgicmVtMTI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwIik7CisgIChuZXcgVGVzdCgicmVtMTMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMTMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMTM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoInJlbTEzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAwMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMTM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInJlbTEzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTEzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgicmVtMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMSIpOworICAobmV3IFRlc3QoInJlbTE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMSIpOworICAobmV3IFRlc3QoInJlbTE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMSIpOworICAobmV3IFRlc3QoInJlbTE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMSIpOyAvLyAxRS03LCBwbGFpbgorICAobmV3IFRlc3QoInJlbTE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMiIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43MzQ1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NjU1Iik7CisgIChuZXcgVGVzdCgicmVtMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOCIpOworICAobmV3IFRlc3QoInJlbTE0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTE0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicmVtMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQwMCIpOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIHRlbi5yZW1haW5kZXIoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ3OSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgicmVtMjAwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLnJlbWFpbmRlcih0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkODApeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDEiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucmVtYWluZGVyKHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4MSl7YWU9JDgxOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicmVtMjAyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnJlbWFpbmRlcihvbmUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4Mil7YWU9JDgyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicmVtMjAzIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJyZW1haW5kZXIiKTsKKyB9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNzdWJ0cmFjdH0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdzdWJ0cmFjdCgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhbGhzOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYXJoczsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIC8vIFtmaXJzdCBncm91cCBhcmUgJ3F1aWNrIGNvbmZpZGVuY2UgY2hlY2snXQorICAobmV3IFRlc3QoInN1YjMwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMyksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1Ljc1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDUiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOCIpOworICAobmV3IFRlc3QoInN1YjMwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItOS41Iik7CisgIChuZXcgVGVzdCgic3ViMzA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjMwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMzA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMzQ1Njc4OSIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwODkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIzNDU2NzAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjU1NTU1NTU1NiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMDA1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41NTU1NTU1NTYiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTExMTExMTExMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMzMzMzMzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NTAwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NDQ0NDQ0NDUiKTsKKyAgCisgIAorICAobmV3IFRlc3QoInN1YjMxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkuOTk5OTk5OUUrMTIiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkuOTk5OTk5M0UrMTIiKTsKKyAgCisgIC8vIHN5bW1ldHJ5OgorICAobmV3IFRlc3QoInN1YjMyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OTk5OTk5RSsxMiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5OTk5OTNFKzEyIik7CisgIAorICAKKyAgLy8gW3NhbWUgd2l0aCBmaXhlZCBwb2ludCBhcml0aG1ldGljXQorICAobmV3IFRlc3QoInN1YjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMykpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1Ljc1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDUiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOCIpOworICAobmV3IFRlc3QoInN1YjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOS41Iik7CisgIChuZXcgVGVzdCgic3ViMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3ViMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoInN1YjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDA4OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjM0NTY3MDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTU1NTU1NTU1OCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41NTU1NTU1NTU0Iik7CisgIAorICAobmV3IFRlc3QoInN1YjAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjExMTExMTExMTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzMzMzMzMzMzMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTk5OTk5MDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0OTk5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDQ5OTkiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ1MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDUwMDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoInN1YjAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5OTk5MzAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5OTkzMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi05OTk5OTk5OTkzMDAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5MzAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTkzMDAwMDAiKTsKKyAgCisgIC8vIHN5bW1ldHJ5OgorICAobmV3IFRlc3QoInN1YjAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5OTkzMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTk5MzAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkzMDAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTkzMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5MzAwMDAwIik7CisgIAorICAvLyBNQworICAobmV3IFRlc3QoInN1YjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OTk5OTk5RSsxMiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwRSsxMyIpOworICAKKyAgCisgIC8vIHNvbWUgb2YgdGhlIG5leHQgZ3JvdXAgYXJlIHJlYWxseSBjb25zdHJ1Y3RvciB0ZXN0cworICAobmV3IFRlc3QoInN1YjA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3ViMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInN1YjA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjcwIik7CisgIChuZXcgVGVzdCgic3ViMDQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43Iik7CisgIChuZXcgVGVzdCgic3ViMDUzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4iKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43MCIpOworICAobmV3IFRlc3QoInN1YjA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIAorICAvLyB0aGUgYWJvdmUgYWxsIGZyb20gYWRkOyBtYXNzYWdlZCBhbmQgZXh0ZW5kZWQuICBOb3cgc29tZSBuZXcgb25lcy4uLgorICAvLyBbcGFydGljdWxhcmx5IGltcG9ydGFudCBmb3IgY29tcGFyaXNvbnNdCisgIC8vIE5COiAtMUUtNyBiZWxvdyB3ZXJlIG5vbi1leHBvbmVudHMgcHJlLUFOU0kKKyAgKG5ldyBUZXN0KCJzdWIwODAiKSkub2s9KCItMUUtNyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODQiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDgxIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4MiIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODMiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODciKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg0IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg4IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4NSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODYiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg3IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzkxIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4OCIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODkiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDkwIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzk0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5MSIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4MSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTIiKSkub2s9KCItMUUtNyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODIiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDkzIikpLm9rPSgiLTFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzgzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5NCIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTUiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk2IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5NyIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTgiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODgiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk5IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjEwMCIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIxMDEiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTEiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMTAyIikpLm9rPSIwIi5lcXVhbHMoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIxMDMiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk5OTk5OTkiKSkuc3VidHJhY3QoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2RlZikudG9TdHJpbmcoKSk7CisgIAorICBhbGhzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAwMDAwIik7CisgIGFyaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoInN1YjExMCIpKS5vaz0oYWxocy5zdWJ0cmFjdChhcmhzLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjNFKzEyIik7CisgIChuZXcgVGVzdCgic3ViMTExIikpLm9rPShhcmhzLnN1YnRyYWN0KGFsaHMsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjNFKzEyIik7CisgIChuZXcgVGVzdCgic3ViMTEyIikpLm9rPShhbGhzLnN1YnRyYWN0KGFyaHMpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3ODkwMDAwMSIpOworICAobmV3IFRlc3QoInN1YjExMyIpKS5vaz0oYXJocy5zdWJ0cmFjdChhbGhzKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMzQ1Njc4OTAwMDAxIik7CisgIAorICAvLyBhZGRpdGlvbmFsIHNjYWxlZCBhcml0aG1ldGljIHRlc3RzIFswLjk3IHByb2JsZW1dCisgIChuZXcgVGVzdCgic3ViMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuOTc5ODMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC45Nzk4MyIpOworICAobmV3IFRlc3QoInN1YjEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC45Iik7CisgIChuZXcgVGVzdCgic3ViMTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEwMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEwMiIpOworICAobmV3IFRlc3QoInN1YjEyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC40Iik7CisgIChuZXcgVGVzdCgic3ViMTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMzA3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMzA3Iik7CisgIChuZXcgVGVzdCgic3ViMTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuNDM4MjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC40MzgyMiIpOworICAobmV3IFRlc3QoInN1YjEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjkxMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjkxMSIpOworICAobmV3IFRlc3QoInN1YjEyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAyIik7CisgIChuZXcgVGVzdCgic3ViMTI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjM5MiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjM5MiIpOworICAobmV3IFRlc3QoInN1YjEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjI2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41MSIpOworICAobmV3IFRlc3QoInN1YjEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjIyMzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4yMjM0Iik7CisgIChuZXcgVGVzdCgic3ViMTMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMDAwOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDgiKTsKKyAgLy8gMC4gb24gbGVmdAorICAobmV3IFRlc3QoInN1YjE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOTc5ODMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3OTgzIik7CisgIChuZXcgVGVzdCgic3ViMTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOSIpOworICAobmV3IFRlc3QoInN1YjE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMiIpOworICAobmV3IFRlc3QoInN1YjE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4zMDciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMwNyIpOworICAobmV3IFRlc3QoInN1YjE0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjQzODIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MzgyMiIpOworICAobmV3IFRlc3QoInN1YjE0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjkxMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTExIik7CisgIChuZXcgVGVzdCgic3ViMTQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyIik7CisgIChuZXcgVGVzdCgic3ViMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjM5MiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzkyIik7CisgIChuZXcgVGVzdCgic3ViMTUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjI2Iik7CisgIChuZXcgVGVzdCgic3ViMTUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjUxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MSIpOworICAobmV3IFRlc3QoInN1YjE1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjIyMzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIyMzQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgic3ViMTU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMDAwOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwOCIpOworICAvLyBuZWdhdGl2ZXMgb2Ygc2FtZQorICAobmV3IFRlc3QoInN1YjE2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgic3ViMTYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45Nzk4MyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc5ODMiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOSIpOworICAobmV3IFRlc3QoInN1YjE2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjE2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4zMDciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMwNyIpOworICAobmV3IFRlc3QoInN1YjE2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS40MzgyMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDM4MjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOTExIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45MTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMiIpOworICAobmV3IFRlc3QoInN1YjE2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMzkyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zOTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjI2Iik7CisgIChuZXcgVGVzdCgic3ViMTcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC41MSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjIzNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjIzNCIpOworICAobmV3IFRlc3QoInN1YjE3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgic3ViMTc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4wMDA4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDA4Iik7CisgIAorICAvLyBtb3JlIGZpeGVkLCBMSFMgc3dhcHMgW3JlYWxseSBzYW1lIGFzIHRlc3RjYXNlcyB1bmRlciBhZGRdCisgIChuZXcgVGVzdCgic3ViMTgwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xMCIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJzdWIxODEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTUiKSkuc3VidHJhY3QoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41NjI2NyIpOworICAobmV3IFRlc3QoInN1YjE4MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMiIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjIuNjciKTsKKyAgKG5ldyBUZXN0KCJzdWIxODMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkuc3VidHJhY3QoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNi43Iik7CisgIChuZXcgVGVzdCgic3ViMTg1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0wIikpLnN1YnRyYWN0KHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnN1YnRyYWN0KChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkODMpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoInN1YjIwMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5zdWJ0cmFjdCh0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkODQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJzdWIyMDEiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuc3VidHJhY3QodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDg1KXthZT0kODU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJzdWIyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5zdWJ0cmFjdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODYpe2FlPSQ4NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInN1YjIwMyIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJzdWJ0cmFjdCIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBPdGhlciBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIDxjb2RlPkJpZ0RlY2ltYWwuYnl0ZVZhbHVlKCk8L2NvZGU+IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnYnl0ZVZhbHVlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyB2PW51bGw7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nIG5vcm09bnVsbDsKKyAgCisgIAorICAobmV3IFRlc3QoImJ5djAwMSIpKS5vaz0oKCgoYnl0ZSktMTI4KSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMjgiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwMiIpKS5vaz0oKDApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDMiKSkub2s9KCgxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDA0IikpLm9rPSgoOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDA1IikpLm9rPSgoMTI3KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI3IikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDYiKSkub2s9KCgtMTI4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI4IikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDciKSkub2s9KCgtMTI3KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI5IikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDgiKSkub2s9KCgxMjcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTI5IikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDkiKSkub2s9KCgxMjYpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTMwIikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTAiKSkub2s9KChibWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxMSIpKS5vaz0oKGJtaW4pKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDEyIikpLm9rPSgoYm5lZykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm5lZykpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTMiKSkub2s9KChiemVyKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiemVyKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxNCIpKS5vaz0oKGJwb3MpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJwb3MpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDE1IikpLm9rPSgoYm1pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1heCsxKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxNiIpKS5vaz0oKGJtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4tMSkpLmJ5dGVWYWx1ZSgpKTsKKyAgCisgIChuZXcgVGVzdCgiYnl2MDIxIikpLm9rPSgoKChieXRlKS0xMjgpKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyOCIpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjIiKSkub2s9KCgwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjMiKSkub2s9KCgxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjQiKSkub2s9KCg5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyNSIpKS5vaz0oKDEyNykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNyIpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjYiKSkub2s9KChibWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDI3IikpLm9rPSgoYm1pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyOCIpKS5vaz0oKGJuZWcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJuZWcpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjkiKSkub2s9KChiemVyKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiemVyKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDMwIikpLm9rPSgoYnBvcykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYnBvcykpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICB0cnl7CisgICB2PSItMTI5IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5ieXRlVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDg3KXthZT0kODc7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoImJ5djEwMCIpKS5vaz1mbGFnOworICB0cnl7CisgICB2PSIxMjgiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLmJ5dGVWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODgpe2FlPSQ4ODsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiYnl2MTAxIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEuNSI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuYnl0ZVZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4OSl7YWU9JDg5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRlY2ltYWwgcGFydCBub24temVybzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoImJ5djEwMiIpKS5vaz1mbGFnOworICAKKyAgYmFkc3RyaW5ncz1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyIxMjM0IiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KSkuYWRkKG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWluKSkuc3VidHJhY3Qob25lKS50b1N0cmluZygpLCIxNzAiLCIyNzAiLCIzNzAiLCI0NzAiLCI1NzAiLCI2NzAiLCI3NzAiLCI4NzAiLCI5NzAiLCItMTcwIiwiLTI3MCIsIi0zNzAiLCItNDcwIiwiLTU3MCIsIi02NzAiLCItNzcwIiwiLTg3MCIsIi05NzAiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1heCkpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWluKSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksIi0xMjM0In07IC8vIDIyMAorICAvLyAyMjEKKyAgLy8gMjIyCisgIC8vIDIyMworICAvLyAyMjQKKyAgLy8gMjI1CisgIC8vIDIyNgorICAvLyAyMjcKKyAgLy8gMjI4CisgIC8vIDIyOQorICAvLyAyMzAKKyAgLy8gMjMxCisgIC8vIDIzMgorICAvLyAyMzMKKyAgLy8gMjM0CisgIC8vIDIzNQorICAvLyAyMzYKKyAgLy8gMjM3CisgIC8vIDIzOAorICAvLyAyMzkKKyAgLy8gMjQwCisgIC8vIDI0MQorICAvLyAyNDIKKyAgLy8gMjQzCisgIC8vIDI0NAorICAvLyAyNDUKKyAge2ludCAkOTA9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskOTA+MDskOTAtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuYnl0ZVZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ5MSl7YWU9JDkxOworICAgIG5vcm09KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImJ5diIrKDIyMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgc3VtbWFyeSgiYnl0ZVZhbHVlKyIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjY29tcGFyZVRvKGphdmEubGFuZy5PYmplY3QpfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2NvbXBhcmV0b09iaigpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbG9uZzE7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsb25nMjsKKyAgCisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxNyk7CisgIChuZXcgVGVzdCgiY3RvMDAxIikpLm9rPShkLmNvbXBhcmVUbygoamF2YS5sYW5nLk9iamVjdCkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg2NikpKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3RvMDAyIikpLm9rPShkLmNvbXBhcmVUbygoamF2YS5sYW5nLk9iamVjdCkoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg3KSkpKSk9PTA7CisgIChuZXcgVGVzdCgiY3RvMDAzIikpLm9rPShkLmNvbXBhcmVUbygoamF2YS5sYW5nLk9iamVjdCkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMCkpKSk9PTE7CisgIGxvbmcxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAzIik7CisgIGxvbmcyPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAwIik7CisgIChuZXcgVGVzdCgiY3RvMDA0IikpLm9rPShsb25nMS5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpbG9uZzIpKT09MTsKKyAgKG5ldyBUZXN0KCJjdG8wMDUiKSkub2s9KGxvbmcyLmNvbXBhcmVUbygoamF2YS5sYW5nLk9iamVjdClsb25nMSkpPT0oLTEpOworICAobmV3IFRlc3QoImN0bzAwNiIpKS5vaz0obG9uZzIuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KWxvbmcyKSk9PTA7CisgIHRyeXsKKyAgIGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ5Mil7CisgICBmbGFnPXRydWU7IC8vIHNob3VsZCBnZXQgaGVyZQorICB9CisgIChuZXcgVGVzdCgiY3RvMTAxIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KSJmb28iKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5DbGFzc0Nhc3RFeGNlcHRpb24gJDkzKXsKKyAgIGZsYWc9dHJ1ZTsgLy8gc2hvdWxkIGdldCBoZXJlCisgIH0KKyAgKG5ldyBUZXN0KCJjdG8xMDIiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgiY29tcGFyZVRvKE9iaikiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2RvdWJsZVZhbHVlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2RvdWJsZXZhbHVlKCl7CisgIGphdmEubGFuZy5TdHJpbmcgdmFsOworICAvLyAxOTk5LjAzLjA3IEluZmluaXRpZXMgbm8gbG9uZ2VyIGVycm9ycworICB2YWw9Ii0xIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRG91YmxlKHZhbCkpLmRvdWJsZVZhbHVlKCkpOworICB2YWw9Ii0wLjEiOworICAobmV3IFRlc3QoImRvdjAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZG91YmxlVmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5Eb3VibGUodmFsKSkuZG91YmxlVmFsdWUoKSk7CisgIHZhbD0iMCI7CisgIChuZXcgVGVzdCgiZG92MDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIwLjEiOworICAobmV3IFRlc3QoImRvdjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZG91YmxlVmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5Eb3VibGUodmFsKSkuZG91YmxlVmFsdWUoKSk7CisgIHZhbD0iMSI7CisgIChuZXcgVGVzdCgiZG92MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIxZTEwMDAiOworICAobmV3IFRlc3QoImRvdjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZG91YmxlVmFsdWUoKSk9PWphdmEubGFuZy5Eb3VibGUuUE9TSVRJVkVfSU5GSU5JVFk7CisgIHZhbD0iLTFlMTAwMCI7CisgIChuZXcgVGVzdCgiZG92MDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09amF2YS5sYW5nLkRvdWJsZS5ORUdBVElWRV9JTkZJTklUWTsKKyAgc3VtbWFyeSgiZG91YmxlVmFsdWUiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2VxdWFsc30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdlcXVhbHMoKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxNyk7CisgIChuZXcgVGVzdCgiZXF1MDAxIikpLm9rPSghKGQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KW51bGwpKSk7CisgIChuZXcgVGVzdCgiZXF1MDAyIikpLm9rPSghKGQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KSJmb28iKSkpOworICAobmV3IFRlc3QoImVxdTAwMyIpKS5vaz0oIShkLmVxdWFscygoamF2YS5sYW5nLk9iamVjdCkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg2NikpKSkpOworICAobmV3IFRlc3QoImVxdTAwNCIpKS5vaz1kLmVxdWFscygoamF2YS5sYW5nLk9iamVjdClkKTsKKyAgKG5ldyBUZXN0KCJlcXUwMDUiKSkub2s9ZC5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEwKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoNykpKSk7CisgIHN1bW1hcnkoImVxdWFscyIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZmxvYXRWYWx1ZX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdmbG9hdHZhbHVlKCl7CisgIGphdmEubGFuZy5TdHJpbmcgdmFsOworICAvLyAxOTk5LjAzLjA3IEluZmluaXRpZXMgbm8gbG9uZ2VyIGVycm9ycworICB2YWw9Ii0xIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5GbG9hdCh2YWwpKS5mbG9hdFZhbHVlKCkpOworICB2YWw9Ii0wLjEiOworICAobmV3IFRlc3QoImZsdjAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkZsb2F0KHZhbCkpLmZsb2F0VmFsdWUoKSk7CisgIHZhbD0iMCI7CisgIChuZXcgVGVzdCgiZmx2MDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIwLjEiOworICAobmV3IFRlc3QoImZsdjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkZsb2F0KHZhbCkpLmZsb2F0VmFsdWUoKSk7CisgIHZhbD0iMSI7CisgIChuZXcgVGVzdCgiZmx2MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIxZTIwMCI7CisgIChuZXcgVGVzdCgiZmx2MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT1qYXZhLmxhbmcuRmxvYXQuUE9TSVRJVkVfSU5GSU5JVFk7CisgIHZhbD0iLTFlMjAwIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PWphdmEubGFuZy5GbG9hdC5ORUdBVElWRV9JTkZJTklUWTsKKyAgdmFsPSIxZTEwMDAiOworICAobmV3IFRlc3QoImZsdjAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09amF2YS5sYW5nLkZsb2F0LlBPU0lUSVZFX0lORklOSVRZOworICB2YWw9Ii0xZTEwMDAiOworICAobmV3IFRlc3QoImZsdjAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09amF2YS5sYW5nLkZsb2F0Lk5FR0FUSVZFX0lORklOSVRZOworICBzdW1tYXJ5KCJmbG9hdFZhbHVlIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNmb3JtYXR9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZm9ybWF0KCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgaW50IGVuZzsKKyAgaW50IHNjaTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwNDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwNTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwNjsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQxNTsKKyAgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWU9bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwNTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMTUwOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbTA1MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG0xNTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMDUxOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDE1MTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwMDA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkNTAwOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAvLyAxOTk5LjAyLjA5IG5vdyBvbmx5IHR3byBzaWduYXR1cmVzIGZvciBmb3JtYXQoKSwgc28gc29tZSB0ZXN0cyBiZWxvdworICAvLyAgICAgICAgICAgIG1heSBub3cgYmUgcmVkdW5kYW50CisgIAorICAobmV3IFRlc3QoImZvcjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjMiKSkuZm9ybWF0KC0xLC0xKSkuZXF1YWxzKCIxMi4zIik7CisgIChuZXcgVGVzdCgiZm9yMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyLjczIikpLmZvcm1hdCgtMSwtMSkpLmVxdWFscygiLTEyLjczIik7CisgIChuZXcgVGVzdCgiZm9yMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAiKSkuZm9ybWF0KC0xLC0xKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoImZvcjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjNFKzMiKSkuZm9ybWF0KC0xLC0xKSkuZXF1YWxzKCIzMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5mb3JtYXQoNCwtMSkpLmVxdWFscygiICAgMyIpOworICAobmV3IFRlc3QoImZvcjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNzMiKSkuZm9ybWF0KDQsMCkpLmVxdWFscygiICAgMiIpOworICAobmV3IFRlc3QoImZvcjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNzMiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMS43Iik7CisgIChuZXcgVGVzdCgiZm9yMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43NSIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAxLjgiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC41Iik7CisgIChuZXcgVGVzdCgiZm9yMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNSIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDAuMCIpOworICAobmV3IFRlc3QoImZvcjAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZm9ybWF0KDQsMCkpLmVxdWFscygiICAgMCIpOworICAobmV3IFRlc3QoImZvcjAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwyKSkuZXF1YWxzKCIgICAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwzKSkuZXF1YWxzKCIgICAwLjAwMCIpOworICAobmV3IFRlc3QoImZvcjAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZm9ybWF0KDQsNCkpLmVxdWFscygiICAgMC4wMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMCkpLmVxdWFscygiICAgMCIpOworICAobmV3IFRlc3QoImZvcjAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDAuMCIpOworICAobmV3IFRlc3QoImZvcjAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDAuMDEiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNCIpKS5mb3JtYXQoNCwyKSkuZXF1YWxzKCIgICAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMykpLmVxdWFscygiICAgMC4wMDUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5mb3JtYXQoNCw0KSkuZXF1YWxzKCIgICAwLjAwNTAiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwyKSkuZXF1YWxzKCIgICAxLjczIik7CisgIChuZXcgVGVzdCgiZm9yMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwzKSkuZXF1YWxzKCIgICAxLjczMCIpOworICAobmV3IFRlc3QoImZvcjAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uNzYiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAtMC44Iik7CisgIChuZXcgVGVzdCgiZm9yMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyLjczIikpLmZvcm1hdCgtMSw0KSkuZXF1YWxzKCItMTIuNzMwMCIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAzIikpLmZvcm1hdCg0LC0xKSkuZXF1YWxzKCIgICAzLjAzIik7CisgIChuZXcgVGVzdCgiZm9yMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMyIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAzLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAzIikpLmZvcm1hdCg0LC0xLDMsLTEsLTEsLTEpKS5lcXVhbHMoIiAgIDMuMDMgICAgICIpOworICAobmV3IFRlc3QoImZvcjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDMiKSkuZm9ybWF0KC0xLC0xLDMsLTEsLTEsLTEpKS5lcXVhbHMoIjMuMDMgICAgICIpOworICAobmV3IFRlc3QoImZvcjAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwtMSwtMSw0LC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3M0UrNCIpOworICAobmV3IFRlc3QoImZvcjAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwtMSwtMSw1LC0xLC0xKSkuZXF1YWxzKCIxMjM0NS43MyIpOworICAobmV3IFRlc3QoImZvcjAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwtMSwtMSw2LC0xLC0xKSkuZXF1YWxzKCIxMjM0NS43MyIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsOCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3MzAwRSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDcsLTEsMywtMSwtMSkpLmVxdWFscygiMS4yMzQ1NzMwRSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDYsLTEsMywtMSwtMSkpLmVxdWFscygiMS4yMzQ1NzNFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNSwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3RSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDQsLTEsMywtMSwtMSkpLmVxdWFscygiMS4yMzQ2RSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDMsLTEsMywtMSwtMSkpLmVxdWFscygiMS4yMzVFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMiwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzRSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDEsLTEsMywtMSwtMSkpLmVxdWFscygiMS4yRSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDAsLTEsMywtMSwtMSkpLmVxdWFscygiMUUrNCIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OS45OSIpKS5mb3JtYXQoLTEsNiwtMSwzLC0xLC0xKSkuZXF1YWxzKCI5Ljk5OTk5OUUrNCIpOworICAobmV3IFRlc3QoImZvcjA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgtMSw1LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMDAwMDBFKzUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OS45OSIpKS5mb3JtYXQoLTEsMiwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjAwRSs1Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTkuOTkiKSkuZm9ybWF0KC0xLDAsLTEsMywtMSwtMSkpLmVxdWFscygiMUUrNSIpOworICAobmV3IFRlc3QoImZvcjA0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgzLDAsLTEsMywtMSwtMSkpLmVxdWFscygiICAxRSs1Iik7CisgIAorICAobmV3IFRlc3QoImZvcjA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwtMSwyLDIsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTczRSswNCIpOworICAobmV3IFRlc3QoImZvcjA0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwzLC0xLDAsLTEsLTEpKS5lcXVhbHMoIjEuMjM1RSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1NzMiKSkuZm9ybWF0KC0xLDMsLTEsMCwtMSwtMSkpLmVxdWFscygiMS4yMzUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjMuNDUiKSkuZm9ybWF0KC0xLDMsMiwwLC0xLC0xKSkuZXF1YWxzKCIxLjIzNUUrMDIiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQiKSkuZm9ybWF0KC0xLDApKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC40NDQiKSkuZm9ybWF0KC0xLDApKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQiKSkuZm9ybWF0KC0xLDApKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC40IikpLmZvcm1hdCgtMSwwKSkuZXF1YWxzKCIwIik7CisgIAorICBlbmc9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORzsKKyAgc2NpPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJmb3IwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0LjUiKSkuZm9ybWF0KC0xLDMsMiwwLGVuZywtMSkpLmVxdWFscygiMS4yMzVFKzAzIik7CisgIChuZXcgVGVzdCgiZm9yMDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUiKSkuZm9ybWF0KC0xLDMsMywwLGVuZywtMSkpLmVxdWFscygiMTIuMzQ1RSswMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NSIpKS5mb3JtYXQoLTEsMywzLDAsc2NpLC0xKSkuZXF1YWxzKCIxLjIzNUUrMDA0Iik7CisgIChuZXcgVGVzdCgiZm9yMDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNC41IikpLmZvcm1hdCg0LDMsMiwwLGVuZywtMSkpLmVxdWFscygiICAgMS4yMzVFKzAzIik7CisgIChuZXcgVGVzdCgiZm9yMDY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUiKSkuZm9ybWF0KDUsMywzLDAsZW5nLC0xKSkuZXF1YWxzKCIgICAxMi4zNDVFKzAwMyIpOworICAobmV3IFRlc3QoImZvcjA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1IikpLmZvcm1hdCg2LDMsMywwLHNjaSwtMSkpLmVxdWFscygiICAgICAxLjIzNUUrMDA0Iik7CisgIAorICAobmV3IFRlc3QoImZvcjA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NSIpKS5mb3JtYXQoLTEsMywyLDAsLTEsLTEpKS5lcXVhbHMoIjEuMjM1ICAgICIpOworICAobmV3IFRlc3QoImZvcjA2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwtMSwzLDYsLTEsLTEpKS5lcXVhbHMoIjEyMzQ1LjczICAgICAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NWUrNSIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMTIzNDUwMDAwMCIpOworICAobmV3IFRlc3QoImZvcjA2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwxKSkuZXF1YWxzKCIxMjM0NTAwMDAwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NWUrNSIpKS5mb3JtYXQoLTEsMikpLmVxdWFscygiMTIzNDUwMDAwMC4wMCIpOworICAobmV3IFRlc3QoImZvcjA3MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwzKSkuZXF1YWxzKCIxMjM0NTAwMDAwLjAwMCIpOworICAobmV3IFRlc3QoImZvcjA3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSw0KSkuZXF1YWxzKCIxMjM0NTAwMDAwLjAwMDAiKTsKKyAgCisgIC8vIHNvbWUgZnJvbSBBTlNJIERhbGxhcyBbTm92IDE5OThdCisgIChuZXcgVGVzdCgiZm9yMDczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkuOTk5IikpLmZvcm1hdCgtMSwyLC0xLDIsLTEsLTEpKS5lcXVhbHMoIjEwMC4wMCIpOworICAobmV3IFRlc3QoImZvcjA3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOTk5OTkiKSkuZm9ybWF0KC0xLDQsMiwyLC0xLC0xKSkuZXF1YWxzKCIxLjAwMDAgICAgIik7CisgIAorICAvLyB0cnkgc29tZSByb3VuZGluZyBtb2RlcyBbZGVmYXVsdCBST1VORF9IQUxGX1VQIHdpZGVseSB0ZXN0ZWQgYWJvdmVdCisgIC8vIHRoZSBmaXJzdCBmZXcgYWxzbyB0ZXN0cyB0aGF0IGRlZmF1bHRzIGFyZSBhY2NlcHRlZCBmb3IgdGhlIG90aGVycworICBkMDQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNCIpOworICBkMDU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNSIpOworICBkMDY9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNiIpOworICBkMTU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNSIpOworICAobmV3IFRlc3QoImZvcjA4MCIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IwODEiKSkub2s9KGQwNS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA4MiIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLC0xKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IwODMiKSkub2s9KGQwNS5mb3JtYXQoLTEsLTEsLTEsLTEsLTEsLTEpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwODQiKSkub2s9KGQwNS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjAuMDUiKTsKKyAgdHJ5eworICAgZDA1LmZvcm1hdCgtMSwtMSwtMSwtMSwtMSwzMCk7IC8vIGJhZCBtb2RlCisgICBmbGFnPWZhbHNlOyAvLyBzaG91bGRuJ3QgZ2V0IGhlcmUKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkOTQpe2lhZT0kOTQ7CisgICBmbGFnPShpYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCBhcmd1bWVudCA2IHRvIGZvcm1hdDogMzAiKTsKKyAgfQorICAobmV3IFRlc3QoImZvcjA4NSIpKS5vaz1mbGFnOworICAKKyAgKG5ldyBUZXN0KCJmb3IwOTAiKSkub2s9KGQwNC5mb3JtYXQoLTEsMSkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDkxIikpLm9rPShkMDYuZm9ybWF0KC0xLDEpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA5MiIpKS5vaz0oZDA0LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTMiKSkub2s9KGQwNS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDk0IikpLm9rPShkMDYuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pKS5lcXVhbHMoIjAuMSIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwOTUiKSkub2s9KGQwNC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDk2IikpLm9rPShkMDUuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjA5NyIpKS5vaz0oZDA2LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTgiKSkub2s9KGQxNS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4yIik7CisgIGQwNTA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKTsKKyAgZDE1MD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MCIpOworICAobmV3IFRlc3QoImZvcjA5OSIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTAwIikpLm9rPShkMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjIiKTsKKyAgbTA1MD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wNTAiKTsKKyAgbTE1MD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xNTAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMDEiKSkub2s9KG0wNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjEwMiIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiLTAuMiIpOworICBkMDUxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUxIik7CisgIGQxNTE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNTEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMDMiKSkub2s9KGQwNTEuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjEwNCIpKS5vaz0oZDE1MS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4yIik7CisgIAorICAobmV3IFRlc3QoImZvcjEwNSIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjEwNiIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMDciKSkub2s9KGQwNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMDgiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMTA5IikpLm9rPShtMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTAiKSkub2s9KG0xNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoImZvcjExMSIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTIiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikpLmVxdWFscygiMC4xIik7CisgIAorICAobmV3IFRlc3QoImZvcjExMyIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMTE0IikpLm9rPShtMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTUiKSkub2s9KGQwNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMTE2IikpLm9rPShkMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IxMTciKSkub2s9KG0wNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTgiKSkub2s9KG0xNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMTE5IikpLm9rPShkMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTIwIikpLm9rPShkMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTikpLmVxdWFscygiMC4xIik7CisgIAorICBkMDAwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwIik7CisgIGQ1MDA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjEiKSkub2s9KGQwMDAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTIyIikpLm9rPShkMDAwLmZvcm1hdCgtMSwyLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjMiKSkub2s9KGQwMDAuZm9ybWF0KC0xLDMsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wMDAiKTsKKyAgdHJ5eyAvLyB0aGlzIHNob3VsZCB0cmFwLi4KKyAgIGQwNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkOTUpe2FlPSQ5NTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEyNCIpKS5vaz1mbGFnOworICAobmV3IFRlc3QoImZvcjEyNSIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMiwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjA1Iik7CisgIChuZXcgVGVzdCgiZm9yMTI2IikpLm9rPShkMDUwLmZvcm1hdCgtMSwzLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuMDUwIik7CisgIChuZXcgVGVzdCgiZm9yMTI3IikpLm9rPShkNTAwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoImZvcjEyOCIpKS5vaz0oZDUwMC5mb3JtYXQoLTEsMiwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjUwIik7CisgIChuZXcgVGVzdCgiZm9yMTI5IikpLm9rPShkNTAwLmZvcm1hdCgtMSwzLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuNTAwIik7CisgIAorICAvLyBiYWQgbmVncyAtLQorICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMiwtMSwtMSwtMSwtMSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5Nil7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZDA1MC5mb3JtYXQoLTEsLTIsLTEsLTEsLTEsLTEpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkOTcpeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTMyIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0xLC0xLC0yLC0xLC0xLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDk4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzMyIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMSwtMSwtMiwtMSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5OSl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzQiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZDA1MC5mb3JtYXQoLTEsLTEsLTEsLTEsLTIsLTEpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTAwKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzNSIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMSwtMSwtMSwtMSwtMik7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMDEpeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTM2IikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJmb3JtYXQiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2hhc2hDb2RlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2hhc2hjb2RlKCl7CisgIGphdmEubGFuZy5TdHJpbmcgaHM7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkOworICBocz0iMjc4Mjc4MTciOworICBkPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaHMpOworICAobmV3IFRlc3QoImhhczAwMSIpKS5vaz0oZC5oYXNoQ29kZSgpKT09KGhzLmhhc2hDb2RlKCkpOworICBocz0iMS4yNjVFKzIwMCI7CisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChocyk7CisgIChuZXcgVGVzdCgiaGFzMDAyIikpLm9rPShkLmhhc2hDb2RlKCkpPT0oaHMuaGFzaENvZGUoKSk7CisgIGhzPSIxMjYuNUUrMjAwIjsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGhzKTsKKyAgKG5ldyBUZXN0KCJoYXMwMDMiKSkub2s9KGQuaGFzaENvZGUoKSkhPShocy5oYXNoQ29kZSgpKTsKKyAgc3VtbWFyeSgiaGFzaENvZGUiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2ludFZhbHVlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2ludHZhbHVlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyB2PW51bGw7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nIG5vcm09bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpbWF4OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtPW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkdj1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGltaW47CisgIAorICAKKyAgLy8gaW50VmFsdWUgLS0KKyAgCisgIChuZXcgVGVzdCgiaW52MDAxIikpLm9rPWltaW49PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDAyIikpLm9rPSgoOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDMiKSkub2s9KCgxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDQiKSkub2s9KCgwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDUiKSkub2s9KCgtMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNiIpKS5vaz0oKC05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDciKSkub2s9aW1heD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDgiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwOSIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjMiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDEwIikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuNSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTEiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS43IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxMiIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjkiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDEzIikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS4wIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxNCIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMyIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTUiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjUiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDE2IikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS43IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxNyIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuOSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4ODg4ODg4ODg4OCIpKS5pbnRWYWx1ZSgpKT09KC0xMzA1NDI0MzI4KTsgLy8gdWdoCisgIChuZXcgVGVzdCgiaW52MDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTg4ODg4ODg4ODg4IikpLmludFZhbHVlKCkpPT0xMzA1NDI0MzI4OyAvLyB1Z2gKKyAgKG5ldyBUZXN0KCJpbnYwMjAiKSkub2s9KChpbWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoKChsb25nKWltYXgpKSsxKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDIxIikpLm9rPSgoaW1heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKCgobG9uZylpbWluKSktMSkpLmludFZhbHVlKCkpOworICAKKyAgLy8gaW50VmFsdWVFeGFjdCAtLQorICAKKyAgKG5ldyBUZXN0KCJpbnYxMDEiKSkub2s9aW1pbj09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS5pbnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImludjEwMiIpKS5vaz0oKDk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MTAzIikpLm9rPSgoMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MTA0IikpLm9rPSgoMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MTA1IikpLm9rPSgoLTEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDYiKSkub2s9KCgtOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItOTkiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MTA3IikpLm9rPWltYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MTA4IikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDkiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MTEwIikpLm9rPWltYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkuaW50VmFsdWVFeGFjdCgpKTsKKyAgCisgIHRyeXsKKyAgIHY9Ii04ODU4ODY4ODg4OCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuaW50VmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEwMil7YWU9JDEwMjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiaW52MjAwIikpLm9rPWZsYWc7CisgIAorICAvLyB0aGlzIG9uZSBjb3VsZCByYWlzZSBlaXRoZXIgb3ZlcmZsb3cgb3IgYmFkIGRlY2ltYWwgcGFydAorICB0cnl7CisgICB2PSI4ODA4ODgxODg4OC4wMDAwMSI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuaW50VmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEwMyl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJpbnYyMDEiKSkub2s9ZmxhZzsKKyAgCisgIC8vIDE5OTkuMTAuMjg6IHRoZSB0ZXN0Y2FzZXMgbWFya2VkICcqJyBmYWlsZWQKKyAgYmFkc3RyaW5ncz1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyIxMjM0NTY3ODkwMSIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1heCkpLmFkZChvbmUpLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbikpLnN1YnRyYWN0KG9uZSkudG9TdHJpbmcoKSwiMzczMTM2NzI5MyIsIjQ3MzEzNjcyOTMiLCI1NzMxMzY3MjkzIiwiNjczMTM2NzI5MyIsIjc3MzEzNjcyOTMiLCI4NzMxMzY3MjkzIiwiOTczMTM2NzI5MyIsIi0zNzMxMzY3MjkzIiwiLTQ3MzEzNjcyOTMiLCItNTczMTM2NzI5MyIsIi02NzMxMzY3MjkzIiwiLTc3MzEzNjcyOTMiLCItODczMTM2NzI5MyIsIi05NzMxMzY3MjkzIiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbikpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLCI0NzMxMzY3MjkzIiwiNDgzMTM2NzI5MyIsIjQ5MzEzNjcyOTMiLCI1MDMxMzY3MjkzIiwiNTEzMTM2NzI5MyIsIjUyMzEzNjcyOTMiLCI1MzMxMzY3MjkzIiwiNTQzMTM2NzI5MyIsIjU1MzEzNjcyOTMiLCI1NjMxMzY3MjkzIiwiNTczMTM2NzI5MyIsIjU4MzEzNjcyOTMiLCI1OTMxMzY3MjkzIiwiNjAzMTM2NzI5MyIsIjYxMzEzNjcyOTMiLCI2MjMxMzY3MjkzIiwiNjMzMTM2NzI5MyIsIjY0MzEzNjcyOTMiLCI2NTMxMzY3MjkzIiwiNjYzMTM2NzI5MyIsIjY3MzEzNjcyOTMiLCIyMjAwMDAwMDAwIiwiMjMwMDAwMDAwMCIsIjI0MDAwMDAwMDAiLCIyNTAwMDAwMDAwIiwiMjYwMDAwMDAwMCIsIjI3MDAwMDAwMDAiLCIyODAwMDAwMDAwIiwiMjkwMDAwMDAwMCIsIi0yMjAwMDAwMDAwIiwiLTIzMDAwMDAwMDAiLCItMjQwMDAwMDAwMCIsIi0yNTAwMDAwMDAwIiwiLTI2MDAwMDAwMDAiLCItMjcwMDAwMDAwMCIsIi0yODAwMDAwMDAwIiwiLTI5MDAwMDAwMDAiLCIyNUUrOCIsIi0yNUUrOCIsIi0xMjM0NTY3ODkwMSJ9OyAvLyAyMjAKKyAgLy8gMjIxCisgIC8vIDIyMgorICAvLyAyMjMKKyAgLy8gMjI0CisgIC8vIDIyNSAgKgorICAvLyAyMjYKKyAgLy8gMjI3CisgIC8vIDIyOAorICAvLyAyMjkgICoKKyAgLy8gMjMwCisgIC8vIDIzMQorICAvLyAyMzIgICoKKyAgLy8gMjMzCisgIC8vIDIzNAorICAvLyAyMzUKKyAgLy8gMjM2ICAqCisgIC8vIDIzNworICAvLyAyMzgKKyAgLy8gMjM5CisgIC8vIDI0MAorICAvLyAyNDEKKyAgLy8gMjQyICAqCisgIC8vIDI0MyAgKgorICAvLyAyNDQgICoKKyAgLy8gMjQ1ICAqCisgIC8vIDI0NiAgKgorICAvLyAyNDcgICoKKyAgLy8gMjQ4ICAqCisgIC8vIDI0OSAgKgorICAvLyAyNTAgICoKKyAgLy8gMjUxICAqCisgIC8vIDI1MiAgKgorICAvLyAyNTMgICoKKyAgLy8gMjU0ICAqCisgIC8vIDI1NSAgKgorICAvLyAyNTYgICoKKyAgLy8gMjU3ICAqCisgIC8vIDI1OCAgKgorICAvLyAyNTkKKyAgLy8gMjYwCisgIC8vIDI2MQorICAvLyAyNjIKKyAgLy8gMjYzCisgIC8vIDI2NAorICAvLyAyNjUKKyAgLy8gMjY2CisgIC8vIDI2NworICAvLyAyNjgKKyAgLy8gMjY5CisgIC8vIDI3MAorICAvLyAyNzEKKyAgLy8gMjcyCisgIC8vIDI3MworICAvLyAyNzQKKyAgLy8gMjc1CisgIC8vIDI3NgorICAvLyAyNzcKKyAgLy8gMjc4CisgIC8vIDI3OQorICAvLyAyODAKKyAge2ludCAkMTA0PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEwND4wOyQxMDQtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuaW50VmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEwNSl7YWU9JDEwNTsKKyAgICBub3JtPShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJpbnYiKygyMjAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIC8vIG5vdyBzbGlwIGluIHNvbWUgc2luZ2xlIGJpdHMuLi4KKyAgZGltYXg9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KTsKKyAge2k9MDtpOmZvcig7aTw9NDk7aSsrKXsKKyAgIHRyeXsKKyAgICBudW09dHdvLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGkpLG1jNTApOworICAgIGR2PWRpbWF4LmFkZChudW0sbWM1MCk7CisgICAgZHYuaW50VmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEwNil7YWU9JDEwNjsKKyAgICBub3JtPWR2LnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImludiIrKDMwMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICBkaW1pbj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pOworICB7aT01MDtpOmZvcig7aTw9OTk7aSsrKXsKKyAgIHRyeXsKKyAgICBudW09dHdvLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGkpLG1jNTApOworICAgIGR2PWRpbWluLnN1YnRyYWN0KG51bSxtYzUwKTsKKyAgICBkdi5pbnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTA3KXthZT0kMTA3OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiaW52IisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICAvLyB0aGUgZm9sbG93aW5nIHNob3VsZCBhbGwgcmFpc2UgYmFkLWRlY2ltYWwtcGFydCBleGNlcHRpb25zCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMC4wOSIsIjAuOSIsIjAuMDEiLCIwLjEiLCItMC4wMSIsIi0wLjEiLCIxLjAxIiwiLTEuMDEiLCItMS4xIiwiLTExMS4xMTEiLCIrMTExLjExMSIsIjEuMDkiLCIxLjA1IiwiMS4wNCIsIjEuOTkiLCIxLjkiLCIxLjUiLCIxLjQiLCItMS4wOSIsIi0xLjA1IiwiLTEuMDQiLCItMS45OSIsIi0xLjkiLCItMS41IiwiLTEuNCIsIjFFLTEwMDAiLCItMUUtMTAwMCIsIjExRS0xIiwiMS41In07IC8vIDQwMC00MDMKKyAgLy8gNDA0LTQwNworICAvLyA0MDgtNDExCisgIC8vIDQxMi00MTYKKyAgLy8gNDE3LTQyMAorICAvLyA0MjEtNDI0CisgIC8vIDQyNS00MjgKKyAgCisgIHtpbnQgJDEwOD1iYWRzdHJpbmdzLmxlbmd0aDtpPTA7aTpmb3IoOyQxMDg+MDskMTA4LS0saSsrKXsKKyAgIHRyeXsKKyAgICB2PWJhZHN0cmluZ3NbaV07CisgICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLmludFZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMDkpe2FlPSQxMDk7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJpbnYiKyg0MDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIHN1bW1hcnkoImludFZhbHVlKyIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjbG9uZ1ZhbHVlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2xvbmd2YWx1ZSgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5TdHJpbmcgdj1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICBqYXZhLmxhbmcuU3RyaW5nIGJhZHN0cmluZ3NbXTsKKyAgaW50IGk9MDsKKyAgamF2YS5sYW5nLlN0cmluZyBub3JtPW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkbG1heDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZHY9bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRsbWluOworICAKKyAgCisgIC8vIGxvbmdWYWx1ZSAtLQorICAKKyAgKG5ldyBUZXN0KCJsb3YwMDEiKSkub2s9bG1pbj09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtaW4pKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDAyIikpLm9rPSgoKGxvbmcpOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDAzIikpLm9rPSgoKGxvbmcpMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNCIpKS5vaz0oKChsb25nKTApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDUiKSkub2s9KCgobG9uZyktMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDYiKSkub2s9KCgobG9uZyktOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItOTkiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNyIpKS5vaz1sbWF4PT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDgiKSkub2s9KCgobG9uZyk1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDkiKSkub2s9KCgobG9uZyk1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4zIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTAiKSkub2s9KCgobG9uZyk1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS41IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTEiKSkub2s9KCgobG9uZyk1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS43IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTIiKSkub2s9KCgobG9uZyk1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS45IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTMiKSkub2s9KCgobG9uZyktNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxNCIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMyIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE1IikpLm9rPSgoKGxvbmcpLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS41IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTYiKSkub2s9KCgobG9uZyktNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjciKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxNyIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuOSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiODg4ODg4ODg4ODk5OTk5OTk5OTk4IikpLmxvbmdWYWx1ZSgpKT09MzQ0NTE3MzM2MTk0MTUyMjQzMEw7IC8vIHVnaAorICAobmV3IFRlc3QoImxvdjAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi04ODg4ODg4ODg4OTk5OTk5OTk5OTgiKSkubG9uZ1ZhbHVlKCkpPT0oLTM0NDUxNzMzNjE5NDE1MjI0MzBMKTsgLy8gdWdoCisgIAorICAvLyBsb25nVmFsdWVFeGFjdCAtLQorICAKKyAgKG5ldyBUZXN0KCJsb3YxMDEiKSkub2s9bG1pbj09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtaW4pKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTAyIikpLm9rPSgoKGxvbmcpOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTAzIikpLm9rPSgoKGxvbmcpMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNCIpKS5vaz0oKChsb25nKTApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDUiKSkub2s9KCgobG9uZyktMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDYiKSkub2s9KCgobG9uZyktOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItOTkiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNyIpKS5vaz1sbWF4PT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDgiKSkub2s9KCgobG9uZyk1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDkiKSkub2s9KCgobG9uZyktNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjAiKSkubG9uZ1ZhbHVlKCkpOworICAKKyAgdHJ5eworICAgdj0iLTg4ODg4ODg4ODg5OTk5OTk5OTk5OCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTApe2FlPSQxMTA7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoImxvdjIwMCIpKS5vaz1mbGFnOworICB0cnl7CisgICB2PSI4ODg4ODg4NzQ4NzQ4NzQ3OTQ4ODg4OCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTEpe2FlPSQxMTE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoImxvdjIwMSIpKS5vaz1mbGFnOworICB0cnl7CisgICB2PSIxLjUiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLmxvbmdWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTEyKXthZT0kMTEyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRlY2ltYWwgcGFydCBub24temVybzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoImxvdjIwMiIpKS5vaz1mbGFnOworICAKKyAgYmFkc3RyaW5ncz1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyIxMjM0NTY3ODkwMTEwOTg3NjU0MzIxIiwiLTEyMzQ1Njc4OTAxMTA5ODc2NTQzMjEiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtYXgpKS5hZGQob25lKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtaW4pKS5zdWJ0cmFjdChvbmUpLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtaW4pKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwiOTIyMzM3MjAzNjg1NDc3NTgxOCIsIjkzMjMzNzIwMzY4NTQ3NzU4MTgiLCI5NDIzMzcyMDM2ODU0Nzc1ODE4IiwiOTUyMzM3MjAzNjg1NDc3NTgxOCIsIjk2MjMzNzIwMzY4NTQ3NzU4MTgiLCI5NzIzMzcyMDM2ODU0Nzc1ODE4IiwiOTgyMzM3MjAzNjg1NDc3NTgxOCIsIjk5MjMzNzIwMzY4NTQ3NzU4MTgiLCItOTIyMzM3MjAzNjg1NDc3NTgxOCIsIi05MzIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk0MjMzNzIwMzY4NTQ3NzU4MTgiLCItOTUyMzM3MjAzNjg1NDc3NTgxOCIsIi05NjIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk3MjMzNzIwMzY4NTQ3NzU4MTgiLCItOTgyMzM3MjAzNjg1NDc3NTgxOCIsIi05OTIzMzcyMDM2ODU0Nzc1ODE4IiwiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAifTsgLy8gMjIwCisgIC8vIDIyMQorICAvLyAyMjIKKyAgLy8gMjIzCisgIC8vIDIyNAorICAvLyAyMjUKKyAgLy8gMjI2CisgIC8vIDIyNworICAvLyAyMjgKKyAgLy8gMjI5CisgIC8vIDIzMAorICAvLyAyMzEKKyAgLy8gMjMyCisgIC8vIDIzMworICAvLyAyMzQKKyAgLy8gMjM1CisgIC8vIDIzNgorICAvLyAyMzcKKyAgLy8gMjM4CisgIC8vIDIzOQorICAvLyAyNDAKKyAgLy8gMjQxCisgIC8vIDI0MgorICAvLyAyNDMKKyAgLy8gMjQ0CisgIHtpbnQgJDExMz1iYWRzdHJpbmdzLmxlbmd0aDtpPTA7aTpmb3IoOyQxMTM+MDskMTEzLS0saSsrKXsKKyAgIHRyeXsKKyAgICB2PWJhZHN0cmluZ3NbaV07CisgICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLmxvbmdWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTE0KXthZT0kMTE0OworICAgIG5vcm09KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImxvdiIrKDIyMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgLy8gbm93IHNsaXAgaW4gc29tZSBzaW5nbGUgYml0cy4uLgorICBkbG1heD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtYXgpOworICB7aT0wO2k6Zm9yKDtpPD05OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGxtYXguYWRkKG51bSxtYzUwKTsKKyAgICBkdi5sb25nVmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDExNSl7YWU9JDExNTsKKyAgICBub3JtPWR2LnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImxvdiIrKDMwMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICBkbG1pbj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtaW4pOworICB7aT0wO2k6Zm9yKDtpPD05OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGxtaW4uc3VidHJhY3QobnVtLG1jNTApOworICAgIGR2LmxvbmdWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTE2KXthZT0kMTE2OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgibG92IisoNDAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICBzdW1tYXJ5KCJsb25nVmFsdWUrIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNtb3ZlUG9pbnRMZWZ0fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ21vdmVwb2ludGxlZnQoKXsKKyAgKG5ldyBUZXN0KCJtcGwwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRMZWZ0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRMZWZ0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMCIpOworICAobmV3IFRlc3QoIm1wbDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoIm1wbDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoIm1wbDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRMZWZ0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDAwMDAxIik7CisgIAorICAobmV3IFRlc3QoIm1wbDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50TGVmdCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm1wbDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50TGVmdCgtNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KCsxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoIm1wbDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXBsMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoIm1wbDAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgibXBsMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAxIik7CisgIChuZXcgVGVzdCgibXBsMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAxIik7CisgIAorICAobmV3IFRlc3QoIm1wbDAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCI1MDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRMZWZ0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjUwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRMZWZ0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjUwIik7CisgIChuZXcgVGVzdCgibXBsMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgibXBsMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgibXBsMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwNSIpOworICAobmV3IFRlc3QoIm1wbDAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRMZWZ0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDUiKTsKKyAgCisgIHN1bW1hcnkoIm1vdmVQb2ludExlZnQiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI21vdmVQb2ludFJpZ2h0fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ21vdmVwb2ludHJpZ2h0KCl7CisgIChuZXcgVGVzdCgibXByMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgibXByMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoIm1wcjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAxIik7CisgIChuZXcgVGVzdCgibXByMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXByMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm1wcjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm1wcjAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm1wcjAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXByMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50UmlnaHQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50UmlnaHQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgtNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAxIik7CisgIChuZXcgVGVzdCgibXByMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50UmlnaHQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJtcHIwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjUwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIjUwMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1MCIpOworICAobmV3IFRlc3QoIm1wcjAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgibXByMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwNSIpOworICAKKyAgc3VtbWFyeSgibW92ZVBvaW50UmlnaHQiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3NjYWxlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3NjYWxlKCl7CisgIChuZXcgVGVzdCgic2NhMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEwIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxMCIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSsxMCIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS0xMCIpKS5zY2FsZSgpKT09MTA7CisgIChuZXcgVGVzdCgic2NhMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUtMTAiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAiKSkuc2NhbGUoKSk9PTM7CisgIChuZXcgVGVzdCgic2NhMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5zY2FsZSgpKT09MjsKKyAgKG5ldyBUZXN0KCJzY2EwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc2NhbGUoKSk9PTE7CisgIChuZXcgVGVzdCgic2NhMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xIikpLnNjYWxlKCkpPT0xOworICAobmV3IFRlc3QoInNjYTAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTIiKSkuc2NhbGUoKSk9PTI7CisgIChuZXcgVGVzdCgic2NhMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjMiKSkuc2NhbGUoKSk9PTM7CisgIChuZXcgVGVzdCgic2NhMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMCIpKS5zY2FsZSgpKT09MTsKKyAgKG5ldyBUZXN0KCJzY2EwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xIikpLnNjYWxlKCkpPT0xOworICAobmV3IFRlc3QoInNjYTAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEyIikpLnNjYWxlKCkpPT0yOworICAobmV3IFRlc3QoInNjYTAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEyMyIpKS5zY2FsZSgpKT09MzsKKyAgc3VtbWFyeSgic2NhbGUiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3NldFNjYWxlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3NldHNjYWxlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJzc2MwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgic3NjMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuc2V0U2NhbGUoMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4wIik7CisgIChuZXcgVGVzdCgic3NjMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuc2V0U2NhbGUoMikudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4wMCIpOworICAobmV3IFRlc3QoInNzYzAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2V0U2NhbGUoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2V0U2NhbGUoMikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgic3NjMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgyKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInNzYzAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4wMCIpOworICAobmV3IFRlc3QoInNzYzAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInNzYzAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInNzYzAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3NjMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA0MCIpOworICAobmV3IFRlc3QoInNzYzAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDQiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNCIpOworICAobmV3IFRlc3QoInNzYzAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDQiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgic3NjMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgic3NjMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA1MCIpOworICAobmV3IFRlc3QoInNzYzAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNSIpOworICAobmV3IFRlc3QoInNzYzAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4xIik7CisgIChuZXcgVGVzdCgic3NjMDI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgic3NjMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDUwIik7CisgIChuZXcgVGVzdCgic3NjMDI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDUiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgic3NjMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDYwIik7CisgIChuZXcgVGVzdCgic3NjMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNiIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA2Iik7CisgIChuZXcgVGVzdCgic3NjMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNiIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIChuZXcgVGVzdCgic3NjMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTAiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSsxMCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS0yIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRS0xMCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIAorICAvLyBjaGVjayByb3VuZGluZworICAobmV3IFRlc3QoInNzYzA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgic3NjMDUzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAxNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDIiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAxNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDE1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA2OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOTUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMCIpOworICAobmV3IFRlc3QoInNzYzA3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDk1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInNzYzA3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDk1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA3NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgdHJ5e2NoZWNrc2NhbGU6ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxKSkuc2V0U2NhbGUoLTgpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTE3KXtlPSQxMTc7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJOZWdhdGl2ZSBzY2FsZTogLTgiKTsKKyAgfS8qY2hlY2tzY2FsZSovCisgIChuZXcgVGVzdCgic3NjMTAwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja3J1bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxLjAwMDFEKSkuc2V0U2NhbGUoMyk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQxMTgpe2U9JDExODsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9LypjaGVja3J1bm4qLworICAobmV3IFRlc3QoInNzYzEwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tydW5uOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMUUtOEQpKS5zZXRTY2FsZSgzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDExOSl7ZT0kMTE5OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKmNoZWNrcnVubiovCisgIChuZXcgVGVzdCgic3NjMTAyIikpLm9rPWZsYWc7CisgIHN1bW1hcnkoInNldFNjYWxlIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUgPGNvZGU+QmlnRGVjaW1hbC5zaG9ydFZhbHVlKCk8L2NvZGU+IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2hvcnR2YWx1ZSgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5TdHJpbmcgdj1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICBqYXZhLmxhbmcuU3RyaW5nIGJhZHN0cmluZ3NbXTsKKyAgaW50IGk9MDsKKyAgamF2YS5sYW5nLlN0cmluZyBub3JtPW51bGw7CisgIAorICAobmV3IFRlc3QoInNodjAwMiIpKS5vaz0oKChzaG9ydCkwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAwMyIpKS5vaz0oKChzaG9ydCkxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAwNCIpKS5vaz0oKChzaG9ydCk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDA2IikpLm9rPSgoc21heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCkpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDA3IikpLm9rPSgoc21pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21pbikpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDA4IikpLm9rPSgoc25lZykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc25lZykpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDA5IikpLm9rPSgoc3plcikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc3plcikpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDEwIikpLm9rPSgoc3BvcykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc3BvcykpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDExIikpLm9rPSgoc21pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCsxKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMTIiKSkub2s9KChzbWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluLTEpKS5zaG9ydFZhbHVlKCkpOworICAKKyAgKG5ldyBUZXN0KCJzaHYwMjIiKSkub2s9KCgoc2hvcnQpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAyMyIpKS5vaz0oKChzaG9ydCkxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDI0IikpLm9rPSgoKHNob3J0KTk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkiKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAyNiIpKS5vaz0oKHNtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtYXgpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDI3IikpLm9rPSgoc21pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21pbikpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjgiKSkub2s9KChzbmVnKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbmVnKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAyOSIpKS5vaz0oKHN6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHN6ZXIpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDMwIikpLm9rPSgoc3BvcykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc3BvcykpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgdHJ5eworICAgdj0iLTg4ODg4ODg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5zaG9ydFZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMjApe2FlPSQxMjA7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoInNodjEwMCIpKS5vaz1mbGFnOworICB0cnl7CisgICB2PSI4ODg4ODg4ODg4OCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuc2hvcnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTIxKXthZT0kMTIxOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJzaHYxMDEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgdj0iMS41IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5zaG9ydFZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMjIpe2FlPSQxMjI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgic2h2MTAyIikpLm9rPWZsYWc7CisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQ1NiIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCkpLmFkZChvbmUpLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21pbikpLnN1YnRyYWN0KG9uZSkudG9TdHJpbmcoKSwiNzExMTEiLCI4MTExMSIsIjkxMTExIiwiLTcxMTExIiwiLTgxMTExIiwiLTkxMTExIiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtYXgpKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21pbikpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLCItMTIzNDU2In07IC8vIDIyMAorICAvLyAyMjEKKyAgLy8gMjIyCisgIC8vIDIyMworICAvLyAyMjQKKyAgLy8gMjI1CisgIC8vIDIyNgorICAvLyAyMjcKKyAgLy8gMjI4CisgIC8vIDIyOQorICAvLyAyMzAKKyAgLy8gMjMxCisgIC8vIDIzMgorICAvLyAyMzMKKyAge2ludCAkMTIzPWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEyMz4wOyQxMjMtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuc2hvcnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTI0KXthZT0kMTI0OworICAgIG5vcm09KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoInNodiIrKDIyMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgCisgIHN1bW1hcnkoInNob3J0VmFsdWUrIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNzaWdudW19IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2lnbnVtKCl7CisgIC8vIG5lY2Vzc2FyaWx5IGNoZWNrcyBzb21lIG9ic2N1cmUgY29uc3RydWN0aW9ucywgdG9vCisgIChuZXcgVGVzdCgic2lnMDAxIikpLm9rPSgtMSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwMiIpKS5vaz0oLTEpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAwMTAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwMyIpKS5vaz0oLTEpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAwMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDA0IikpLm9rPTA9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwNSIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDYiKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDciKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDA4IikpLm9rPTA9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDA5IikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxMCIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTEiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMTAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxMiIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAxLjAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTMiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMC4wMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDE0IikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAuMDAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTUiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTYiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZSsxMiIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDE3IikpLm9rPTA9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDBlKzEyIikpLnNpZ251bSgpKTsKKyAgc3VtbWFyeSgic2lnbnVtIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCN0b0JpZ0RlY2ltYWx9IG1ldGhvZC4gKi8KKworIHB1YmxpYyB2b2lkIGRpYWd0b2JpZ2RlY2ltYWwoKXsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgIChuZXcgVGVzdCgidGJkMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJkMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkudG9CaWdEZWNpbWFsKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJkMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSsyIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwIik7CisgIChuZXcgVGVzdCgidGJkMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtMiIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgidGJkMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtOCIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDEiKTsKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgidGJkMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtOSIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAxIik7CisgIChuZXcgVGVzdCgidGJkMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUxMCIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgidGJkMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUxMiIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwMDAiKTsKKyAgc3VtbWFyeSgidG9CaWdEZWNpbWFsIik7CisvLyNlbmRpZgorIH0KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCN0b0JpZ0ludGVnZXJ9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFndG9iaWdpbnRlZ2VyKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIChuZXcgVGVzdCgidGJpMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInRiaTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIChuZXcgVGVzdCgidGJpMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTFFKzAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFKzAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzFFKzAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBFKzAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInRiaTAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzMiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIChuZXcgVGVzdCgidGJpMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAxIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4xIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAwIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTExMS4xMTEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTExIik7CisgIChuZXcgVGVzdCgidGJpMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzExMS4xMTEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA5IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA5IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDUiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjk5IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuOSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjUiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS40IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjA5IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wNSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDQiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjk5IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS45IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS41IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS40IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS0xMDAwIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xRS0xMDAwIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgLy8gRXhhY3QgdmFyaWV0eSAtLQorICAobmV3IFRlc3QoInRiaTEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTEwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInRiaTEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMUUrMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRSswIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzFFKzAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSszIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIChuZXcgVGVzdCgidGJpMTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTExMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTExNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTExOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIC8vIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGFsbCByYWlzZSBleGNlcHRpb25zCisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjAuMDkiLCIwLjkiLCIwLjAxIiwiMC4xIiwiLTAuMDEiLCItMC4xIiwiMS4wMSIsIi0xLjAxIiwiLTEuMSIsIi0xMTEuMTExIiwiKzExMS4xMTEiLCIxLjA5IiwiMS4wNSIsIjEuMDQiLCIxLjk5IiwiMS45IiwiMS41IiwiMS40IiwiLTEuMDkiLCItMS4wNSIsIi0xLjA0IiwiLTEuOTkiLCItMS45IiwiLTEuNSIsIi0xLjQiLCIxRS0xMDAwIiwiLTFFLTEwMDAiLCIxMUUtMSIsIjEuMSIsIjEyNzYyMzE1NjEyMzY1NjU2MTM1NjEyMzUxMjMxNTYzMTIzMTU1MTMxMjM1Ni4wMDAwMDEiLCIwLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSJ9OyAvLyAzMDAtMzAzCisgIC8vIDMwNC0zMDcKKyAgLy8gMzA4LTMxMQorICAvLyAzMTItMzE2CisgIC8vIDMxNy0zMjAKKyAgLy8gMzIxLTMyNAorICAvLyAzMjUtMzI4CisgIC8vIDMyOQorICAvLyAzMzAKKyAgCisgIHtpbnQgJDEyNT1iYWRzdHJpbmdzLmxlbmd0aDtpPTA7aTpmb3IoOyQxMjU+MDskMTI1LS0saSsrKXsKKyAgIHRyeXsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiYWRzdHJpbmdzW2ldKSkudG9CaWdJbnRlZ2VyRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMjYpeworICAgIGZsYWc9dHJ1ZTsKKyAgIH0KKyAgIChuZXcgVGVzdCgidGJpIisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICBzdW1tYXJ5KCJ0b0JpZ0ludGVnZXIrIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCN0b0NoYXJBcnJheX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd0b2NoYXJhcnJheSgpeworICBqYXZhLmxhbmcuU3RyaW5nIHN0cjsKKyAgY2hhciBjYXJbXTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGNoYXIgY2FbXTsKKyAgLy8gdGhlIGZ1bmN0aW9uIG9mIHRoaXMgaGFzIGJlZW4gdGVzdGVkIGFib3ZlLCB0aGlzIGlzIHNpbXBseSBhbgorICAvLyBleGlzdGVuY2UgcHJvb2YgYW5kIHR5cGUtY2hlY2sKKyAgc3RyPSItMTIzLjQ1IjsKKyAgY2FyPShzdHIpLnRvQ2hhckFycmF5KCk7CisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzdHIpOworICBjYT1kLnRvQ2hhckFycmF5KCk7CisgIChuZXcgVGVzdCgidGNhMDAxIikpLm9rPWNhLmxlbmd0aD09Y2FyLmxlbmd0aDsKKyAgKG5ldyBUZXN0KCJ0Y2EwMDIiKSkub2s9KG5ldyBqYXZhLmxhbmcuU3RyaW5nKGNhKSkuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgamF2YS5sYW5nLlN0cmluZyhjYXIpKSk7CisgIChuZXcgVGVzdCgidGNhMDAzIikpLm9rPShkLnRvQ2hhckFycmF5KCkgaW5zdGFuY2VvZiBjaGFyW10pOworICAobmV3IFRlc3QoInRjYTAwNCIpKS5vaz0oY2EgaW5zdGFuY2VvZiBjaGFyW10pOworICBzdW1tYXJ5KCJ0b0NoYXJBcnJheSIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjdG9TdHJpbmd9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFndG9zdHJpbmcoKXsKKyAgamF2YS5sYW5nLlN0cmluZyBzdHI7CisgIGNoYXIgY2FyW107CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkOworICBjaGFyIGNhW107CisgIGphdmEubGFuZy5TdHJpbmcgY3M7CisgIC8vIHRoZSBmdW5jdGlvbiBvZiB0aGlzIGhhcyBiZWVuIHRlc3RlZCBhYm92ZSwgdGhpcyBpcyBzaW1wbHkgYW4KKyAgLy8gZXhpc3RlbmNlIHByb29mIGFuZCB0eXBlLWNoZWNrCisgIHN0cj0iMTIzLjQ1IjsKKyAgY2FyPShzdHIpLnRvQ2hhckFycmF5KCk7CisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYXIsMCxjYXIubGVuZ3RoKTsKKyAgY2E9ZC50b0NoYXJBcnJheSgpOworICBjcz1kLnRvU3RyaW5nKCk7CisgIChuZXcgVGVzdCgidG9zMDAxIikpLm9rPShzdHIudG9DaGFyQXJyYXkoKS5sZW5ndGgpPT1jYS5sZW5ndGg7CisgIChuZXcgVGVzdCgidG9zMDAyIikpLm9rPShzdHIubGVuZ3RoKCkpPT0oY3MubGVuZ3RoKCkpOworICAobmV3IFRlc3QoInRvczAwMyIpKS5vaz1zdHIuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgamF2YS5sYW5nLlN0cmluZyhjYSkpKTsKKyAgKG5ldyBUZXN0KCJ0b3MwMDQiKSkub2s9c3RyLmVxdWFscygoamF2YS5sYW5nLk9iamVjdCljcyk7CisgIChuZXcgVGVzdCgidG9zMDA1IikpLm9rPShjcyBpbnN0YW5jZW9mIGphdmEubGFuZy5TdHJpbmcpOworICAobmV3IFRlc3QoInRvczAwNiIpKS5vaz0oZC50b1N0cmluZygpIGluc3RhbmNlb2YgamF2YS5sYW5nLlN0cmluZyk7CisgIHN1bW1hcnkoInRvU3RyaW5nIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCN1bnNjYWxlZFZhbHVlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3Vuc2NhbGVkdmFsdWUoKXsKKyAgLy8ganVzdCBsaWtlIHRvQmlnSW50ZWdlciwgYnV0IHNjYWx5IGJpdHMgYXJlIHByZXNlcnZlZCBbd2l0aG91dCBkb3RzXQorICAobmV3IFRlc3QoInVuczAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidW5zMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInVuczAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidW5zMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIChuZXcgVGVzdCgidW5zMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTFFKzAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRSswIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMUUrMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidW5zMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBFKzAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSszIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAxIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidW5zMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAxIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidW5zMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInVuczAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwIik7CisgIChuZXcgVGVzdCgidW5zMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAwIik7CisgIChuZXcgVGVzdCgidW5zMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMSIpOworICAobmV3IFRlc3QoInVuczAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwIik7CisgIChuZXcgVGVzdCgidW5zMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTExLjExMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTExMTExIik7CisgIChuZXcgVGVzdCgidW5zMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzExMS4xMTEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTExMTExIik7CisgIHN1bW1hcnkoInVuc2NhbGVkVmFsdWUiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3ZhbHVlT2Z9IG1ldGhvZCBbbG9uZyBhbmQgZG91YmxlXS4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFndmFsdWVvZigpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gZT1udWxsOworICBkb3VibGUgZHplcjsKKyAgZG91YmxlIGRwb3M7CisgIGRvdWJsZSBkbmVnOworICBkb3VibGUgZHBvczU7CisgIGRvdWJsZSBkbmVnNTsKKyAgZG91YmxlIGRtaW47CisgIGRvdWJsZSBkbWF4OworICBkb3VibGUgZDsKKyAgCisgIC8vIHZhbHVlT2YobG9uZyBbLHNjYWxlXSkgLS0KKyAgCisgIChuZXcgVGVzdCgidmFsMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpLTIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0yIik7CisgIChuZXcgVGVzdCgidmFsMDAyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpLTEpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidmFsMDAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpLTApKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSkrMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInZhbDAwNSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoKGxvbmcpKChieXRlKSsyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgidmFsMDA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpMTApKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidmFsMDA3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpMTEpKS50b1N0cmluZygpKS5lcXVhbHMoIjExIik7CisgIChuZXcgVGVzdCgidmFsMDA4IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWluKS50b1N0cmluZygpKS5lcXVhbHMoIi05MjIzMzcyMDM2ODU0Nzc1ODA4Iik7CisgIChuZXcgVGVzdCgidmFsMDA5IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWF4KS50b1N0cmluZygpKS5lcXVhbHMoIjkyMjMzNzIwMzY4NTQ3NzU4MDciKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxuZWcpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGx6ZXIpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInZhbDAxMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHBvcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidmFsMDEzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWluLDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtYXgsMCkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MjIzMzcyMDM2ODU0Nzc1ODA3Iik7CisgIChuZXcgVGVzdCgidmFsMDE1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbmVnLDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTYiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxwb3MsMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIAorICAobmV3IFRlc3QoInZhbDAxNyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTgiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGx6ZXIsMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTkiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGx6ZXIsMikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgidmFsMDIwIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsemVyLDMpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMjEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGx6ZXIsMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAwIik7CisgIAorICAobmV3IFRlc3QoInZhbDAyMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG1pbiw3KS50b1N0cmluZygpKS5lcXVhbHMoIi05MjIzMzcyMDM2ODUuNDc3NTgwOCIpOworICAobmV3IFRlc3QoInZhbDAyMyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG1heCwxMSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MjIzMzcyMC4zNjg1NDc3NTgwNyIpOworICAKKyAgCisgIHRyeXtjaGVja3NjYWxlOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoKGxvbmcpMjMsLTgpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uICQxMjcpe2U9JDEyNzsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJ2YWwxMDAiKSkub2s9ZmxhZzsKKyAgCisgIC8vIHZhbHVlT2YoZG91YmxlKSAtLQorICAKKyAgZHplcj0oZG91YmxlKTA7CisgIGRwb3M9KGRvdWJsZSkxOworICBkcG9zPWRwb3MvKChkb3VibGUpMTApOworICBkbmVnPShkb3VibGUpLWRwb3M7CisgIChuZXcgVGVzdCgidmFsMjAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkbmVnKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGR6ZXIpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7IC8vIGNmLiBjb25zdHJ1Y3RvcgorICAobmV3IFRlc3QoInZhbDIwMyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZHBvcykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgZHBvczU9KGRvdWJsZSkwLjVEOworICBkbmVnNT0oZG91YmxlKS1kcG9zNTsKKyAgKG5ldyBUZXN0KCJ2YWwyMDQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGRuZWc1KS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjUiKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMDUiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGRwb3M1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICBkbWluPWphdmEubGFuZy5Eb3VibGUuTUlOX1ZBTFVFOworICBkbWF4PWphdmEubGFuZy5Eb3VibGUuTUFYX1ZBTFVFOworICAobmV3IFRlc3QoInZhbDIwNiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZG1pbikudG9TdHJpbmcoKSkuZXF1YWxzKCI0LjlFLTMyNCIpOworICAobmV3IFRlc3QoInZhbDIwNyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZG1heCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCIpOworICAKKyAgLy8gbmFzdGllcworICBkPShkb3VibGUpOTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjExIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDkiKTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDkwIik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjEzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjkuMEUtNCIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI4Ljk5OTk5OTk5OTk5OTk5OUUtNSIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxNSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI4Ljk5OTk5OTk5OTk5OTk5OUUtNiIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxNiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI4Ljk5OTk5OTk5OTk5OTk5OUUtNyIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxNyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI4Ljk5OTk5OTk5OTk5OTk5OUUtOCIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxOCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI4Ljk5OTk5OTk5OTk5OTk5OEUtOSIpOworICAKKyAgdHJ5e2NoZWNrcGluOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoamF2YS5sYW5nLkRvdWJsZS5QT1NJVElWRV9JTkZJTklUWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEyOCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrcGluKi8KKyAgKG5ldyBUZXN0KCJ2YWwzMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbmluOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoamF2YS5sYW5nLkRvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEyOSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbmluKi8KKyAgKG5ldyBUZXN0KCJ2YWwzMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbmFuOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoamF2YS5sYW5nLkRvdWJsZS5OYU4pOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uICQxMzApeworICAgZmxhZz10cnVlOworICB9LypjaGVja25hbiovCisgIChuZXcgVGVzdCgidmFsMzAzIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJ2YWx1ZU9mIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHR9IGNsYXNzLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtYXRoY29udGV4dCgpeworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jY29uMTsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY2NvbjI7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNjb24zOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jY29uNDsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtYzsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtZDsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtZjsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtaGQ7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNybWhlOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1odTsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtdW47CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNybXU7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlPW51bGw7CisgIC8vIHRoZXNlIHRlc3RzIGFyZSBtb3N0bHkgZXhpc3RlbmNlIGNoZWNrcworICAobmV3IFRlc3QoIm1jbjAwMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldERpZ2l0cygpKT09OTsKKyAgKG5ldyBUZXN0KCJtY24wMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgibWNuMDAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0Rm9ybSgpKSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORzsKKyAgKG5ldyBUZXN0KCJtY24wMDQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRGb3JtKCkpIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOworICAobmV3IFRlc3QoIm1jbjAwNSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjAwNiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgKG5ldyBUZXN0KCJtY24wMTAiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HPj0wOworICAobmV3IFRlc3QoIm1jbjAxMSIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04+PTA7CisgIChuZXcgVGVzdCgibWNuMDEyIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1I+PTA7CisgIChuZXcgVGVzdCgibWNuMDEzIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOPj0wOworICAobmV3IFRlc3QoIm1jbjAxNCIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTj49MDsKKyAgKG5ldyBUZXN0KCJtY24wMTUiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQPj0wOworICAobmV3IFRlc3QoIm1jbjAxNiIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZPj0wOworICAobmV3IFRlc3QoIm1jbjAxNyIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQPj0wOworICAKKyAgbWNjb24xPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDExMSk7CisgIChuZXcgVGVzdCgibWNuMDIxIikpLm9rPShtY2NvbjEuZ2V0RGlnaXRzKCkpPT0xMTE7CisgIChuZXcgVGVzdCgibWNuMDIyIikpLm9rPShtY2NvbjEuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoIm1jbjAyMyIpKS5vaz0obWNjb24xLmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjAyNCIpKS5vaz0obWNjb24xLmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgbWNjb24yPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDc4LGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuRU5HSU5FRVJJTkcpOworICAobmV3IFRlc3QoIm1jbjAzMSIpKS5vaz0obWNjb24yLmdldERpZ2l0cygpKT09Nzg7CisgIChuZXcgVGVzdCgibWNuMDMyIikpLm9rPShtY2NvbjIuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORzsKKyAgKG5ldyBUZXN0KCJtY24wMzMiKSkub2s9KG1jY29uMi5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJtY24wMzQiKSkub2s9KG1jY29uMi5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgCisgIG1jY29uMz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg1LGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sdHJ1ZSk7CisgIChuZXcgVGVzdCgibWNuMDQxIikpLm9rPShtY2NvbjMuZ2V0RGlnaXRzKCkpPT01OworICAobmV3IFRlc3QoIm1jbjA0MiIpKS5vaz0obWNjb24zLmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIChuZXcgVGVzdCgibWNuMDQzIikpLm9rPShtY2NvbjMuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTE7CisgIChuZXcgVGVzdCgibWNuMDQ0IikpLm9rPShtY2NvbjMuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICBtY2NvbjQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUik7CisgIChuZXcgVGVzdCgibWNuMDUxIikpLm9rPShtY2NvbjQuZ2V0RGlnaXRzKCkpPT0wOworICAobmV3IFRlc3QoIm1jbjA1MiIpKS5vaz0obWNjb240LmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJtY24wNTMiKSkub2s9KG1jY29uNC5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJtY24wNTQiKSkub2s9KG1jY29uNC5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1I7CisgIAorICAobmV3IFRlc3QoIm1jbjA2MSIpKS5vaz0obWNjb24xLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTExMSBmb3JtPVNDSUVOVElGSUMgbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX1VQIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA2MiIpKS5vaz0obWNjb24yLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTc4IGZvcm09RU5HSU5FRVJJTkcgbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX1VQIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA2MyIpKS5vaz0obWNjb24zLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTUgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTEgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDY0IikpLm9rPShtY2NvbjQudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVNDSUVOVElGSUMgbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9GTE9PUiIpOworICAKKyAgCisgIC8vIGNvbXBsZXRlIHRlc3Rpbmcgcm91bmRpbmcgbW9kZXMgcm91bmQgdHJpcHMKKyAgbWNybWM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORyk7CisgIG1jcm1kPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pOworICBtY3JtZj1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUik7CisgIG1jcm1oZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pOworICBtY3JtaGU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKTsKKyAgbWNybWh1PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApOworICBtY3JtdW49bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpOworICBtY3JtdT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCk7CisgIAorICAobmV3IFRlc3QoIm1jbjA3MSIpKS5vaz0obWNybWMudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfQ0VJTElORyIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzIiKSkub2s9KG1jcm1kLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0RPV04iKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDczIikpLm9rPShtY3JtZi50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9GTE9PUiIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzQiKSkub2s9KG1jcm1oZC50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX0RPV04iKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDc1IikpLm9rPShtY3JtaGUudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9FVkVOIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA3NiIpKS5vaz0obWNybWh1LnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDc3IikpLm9rPShtY3JtdW4udG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfVU5ORUNFU1NBUlkiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDc4IikpLm9rPShtY3JtdS50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9VUCIpOworICAKKyAgCisgIC8vIFtnZXQgbWV0aG9kcyB0ZXN0ZWQgYWxyZWFkeV0KKyAgCisgIC8vIGVycm9ycy4uLgorICAKKyAgdHJ5e2NoZWNrZGlnOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoLTEpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzEpe2U9JDEzMTsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRpZ2l0cyB0b28gc21hbGw6IC0xIik7CisgIH0vKmNoZWNrZGlnKi8KKyAgKG5ldyBUZXN0KCJtY24xMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnYmlnOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMTAwMDAwMDAwMCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzMil7ZT0kMTMyOworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGlnaXRzIHRvbyBsYXJnZTogMTAwMDAwMDAwMCIpOworICB9LypjaGVja2RpZ2JpZyovCisgIChuZXcgVGVzdCgibWNuMTAyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tmb3JtOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCw1KTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTMzKXtlPSQxMzM7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJCYWQgZm9ybSB2YWx1ZTogNSIpOworICB9LypjaGVja2Zvcm0qLworICAobmV3IFRlc3QoIm1jbjExMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tmb3JtbmVnOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCwtMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzNCl7ZT0kMTM0OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQmFkIGZvcm0gdmFsdWU6IC0xIik7CisgIH0vKmNoZWNrZm9ybW5lZyovCisgIChuZXcgVGVzdCgibWNuMTEyIikpLm9rPWZsYWc7CisgIAorICAvLyBbbG9zdERpZ2l0cyBjYW5ub3QgYmUgaW52YWxpZF0KKyAgCisgIHRyeXtjaGVja3JvdW5kOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLDEyKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTM1KXtlPSQxMzU7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJCYWQgcm91bmRpbmdNb2RlIHZhbHVlOiAxMiIpOworICB9LypjaGVja3JvdW5kKi8KKyAgKG5ldyBUZXN0KCJtY24xMjEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrcm91bmRuZWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsLTEpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzYpe2U9JDEzNjsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCByb3VuZGluZ01vZGUgdmFsdWU6IC0xIik7CisgIH0vKmNoZWNrcm91bmRuZWcqLworICAobmV3IFRlc3QoIm1jbjEyMiIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiTWF0aENvbnRleHQiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IGdlbmVyYWwgYXJpdGhtZXRpYyAoYmFzZSBvcGVyYXRvcnMpLgorICAqIDxwPlVubGlrZSB0aGUgc3BlY2lmaWMgbWV0aG9kIHRlc3RzLCB0aGVzZSB0ZXN0cyB3ZXJlIHJhbmRvbWx5CisgICogZ2VuZXJhdGVkIGJ5IGFuIElCTSBPYmplY3QgUmV4eCBwcm9jZWR1cmUsIHRoZW4gbWFudWFsbHkgY29ycmVjdGVkCisgICogZm9yIGtub3duIGRpZmZlcmVuY2VzIGZyb20gQU5TSSBYMy0yNzQuICBUaGVzZSBkaWZmZXJlbmNlcyBhcmU6CisgICogPG9sPgorICAqIDxsaT50aGUgdHJpZ2dlciBwb2ludCBpbiBleHBvbmVudGlhbCBub3RhdGlvbiBpcyBmaXhlZCBpbiBBTlNJCisgICogICAgIFgzLTI3NCBidXQgdmFyaWVzIHdpdGggRElHSVRTIGluIENsYXNzaWMgYW5kIE9iamVjdCBSZXh4CisgICogPGxpPnNvbWUgdHJhaWxpbmcgemVyb3Mgd2VyZSBtaXNzaW5nIChlLmcuLCAxLjMgKyAxRS02MCBzaG91bGQgc2hvdworICAqICAgICBzZXZlbiB0cmFpbGluZyB6ZXJvcykKKyAgKiA8bGk+dGhlIHBvd2VyIG9wZXJhdG9yIGlzIGxlc3MgYWNjdXJhdGUgaW4gT2JqZWN0IFJleHgKKyAgKiA8bGk+QU5TSSBYMy0yNzQgW2VycmF0YSAxOTk5XSByb3VuZHMgaW5wdXQgbnVtYmVycyB0byBESUdJVFMgKHJhdGhlcgorICAqICAgICB0aGFuIHRydW5jYXRpbmcgdG8gRElHSVRTKzEpLgorICAqIDwvb2w+CisgICovCisgCisgcHVibGljIHZvaWQgZGlhZ21hdGgoKXsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBkZWY7CisgIGRlZj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQ7CisgIG1hdGh0ZXN0KDEsZGVmLCItOTM3NTI4NC40MiIsIjU1MTYuOTk4MzJFKzI3Mjc2OTg0IiwiNS41MTY5OTgzMkUrMjcyNzY5ODciLCItNS41MTY5OTgzMkUrMjcyNzY5ODciLCItNS4xNzIzNDI4NEUrMjcyNzY5OTQiLCItMS42OTkzNDUxNkUtMjcyNzY5ODEiLCIwIiwiLTkzNzUyODQuNDIiLCI2Ljc5MDU3NzUyRSs0MSIpOworICBtYXRodGVzdCgyLGRlZiwiLTQxMC44MzI3MTAiLCI5OS4zNTg4MjQzRS01MDI3NDA4NjIiLCItNDEwLjgzMjcxMCIsIi00MTAuODMyNzEwIiwiLTQuMDgxOTg1NTBFLTUwMjc0MDg1OCIsIi00LjEzNDgzODY4RSs1MDI3NDA4NjIiLCIiLCIiLCIxLjM2OTc3Nzg2RSsyNiIpOworICBtYXRodGVzdCgzLGRlZiwiODAwMjUuMjM0MCIsIi04LjAzMDk3NTgxIiwiODAwMTcuMjAzMCIsIjgwMDMzLjI2NTAiLCItNjQyNjgwLjcxOCIsIi05OTY0LjU3MTY3IiwiLTk5NjQiLCI0LjU5MTAyOTE2IiwiNS45NDU0NDUxN0UtNDAiKTsKKyAgbWF0aHRlc3QoNCxkZWYsIjgxMDUyMDIwLjIiLCItNDY0NTI1NDk1IiwiLTM4MzQ3MzQ3NSIsIjU0NTU3NzUxNSIsIi0zLjc2NTA3Mjk4RSsxNiIsIi0wLjE3NDQ4MzQ3IiwiMCIsIjgxMDUyMDIwLjIiLCIiKTsKKyAgbWF0aHRlc3QoNSxkZWYsIjcxNS4wNjkyOTRFLTI2OTIzMTUxIiwiODUuNDQwNDEyOEUrNzk2Mzg4NTU3IiwiOC41NDQwNDEyOEUrNzk2Mzg4NTU4IiwiLTguNTQ0MDQxMjhFKzc5NjM4ODU1OCIsIjYuMTA5NTgxNTdFKzc2OTQ2NTQxMCIsIjguMzY5MjE2MjhFLTgyMzMxMTcwOCIsIjAiLCI3LjE1MDY5Mjk0RS0yNjkyMzE0OSIsIjQuODg4MDIyMTNFLTI0MjMwODMzNCIpOworICBtYXRodGVzdCg2LGRlZiwiLTIxOTcxNTc1LjBFKzMxNDU0NDQxIiwiLTcwOTQ0OTYwLjNFKzExMTIzODIyMSIsIi03LjA5NDQ5NjAzRSsxMTEyMzgyMjgiLCI3LjA5NDQ5NjAzRSsxMTEyMzgyMjgiLCIxLjU1ODc3MjUyRSsxNDI2OTI2NzciLCIzLjA5Njk4ODg0RS03OTc4Mzc4MSIsIjAiLCItMi4xOTcxNTc1MEUrMzE0NTQ0NDgiLCItNC4wNDU0OTUwMkUtMjIwMTgxMTM5Iik7CisgIG1hdGh0ZXN0KDcsZGVmLCI2ODIuMjUzMTYiLCI1NDQ3MDE4NS42IiwiNTQ0NzA4NjcuOSIsIi01NDQ2OTUwMy40IiwiMy43MTYyNDU2M0UrMTAiLCIwLjAwMDAxMjUyNTI1ODYiLCIwIiwiNjgyLjI1MzE2IiwiMy40ODU3ODY5OUUrMTU0MzY1NTQxIik7CisgIG1hdGh0ZXN0KDgsZGVmLCItMjU3NTg2NzU3LiIsIjIwODI4ODguNzEiLCItMjU1NTAzODY4IiwiLTI1OTY2OTY0NiIsIi01LjM2NTI0NTQ4RSsxNCIsIi0xMjMuNjY4MDM2IiwiLTEyMyIsIi0xMzkxNDQ1LjY3IiwiLTEuMjY4Nzk1MTVFKzE3NTE5MDIwIik7CisgIG1hdGh0ZXN0KDksZGVmLCIzMTk1Nzc1NDAuRSsyNDI1OTk3NjEiLCI2MC43MTI0NTYxIiwiMy4xOTU3NzU0MEUrMjQyNTk5NzY5IiwiMy4xOTU3NzU0MEUrMjQyNTk5NzY5IiwiMS45NDAyMzM3NEUrMjQyNTk5NzcxIiwiNS4yNjM3ODg2OUUrMjQyNTk5NzY3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDEwLGRlZiwiLTEzNzY5OTc3LjAiLCIyNDM3MS4zMzgxIiwiLTEzNzQ1NjA1LjciLCItMTM3OTQzNDguMyIsIi0zLjM1NTkyNzY1RSsxMSIsIi01NjUuMDA3MDE1IiwiLTU2NSIsIi0xNzAuOTczNSIsIi04LjczNzM0MDAxRSsxNzM5ODIiKTsKKyAgbWF0aHRlc3QoMTEsZGVmLCItNDc1LjQzNDk3MkUtNzI1NDY0MzExIiwiLTMuMjIyMTQwNjZFLTg2NTQ3NjgzNiIsIi00Ljc1NDM0OTcyRS03MjU0NjQzMDkiLCItNC43NTQzNDk3MkUtNzI1NDY0MzA5IiwiIiwiMS40NzU1MjUxOUUrMTQwMDEyNTI3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDEyLGRlZiwiODQyLjAxMjUwIiwiMTk3MTk5ODkzIiwiMTk3MjAwNzM1IiwiLTE5NzE5OTA1MSIsIjEuNjYwNDQ3NzVFKzExIiwiMC4wMDAwMDQyNjk4NDI1OCIsIjAiLCI4NDIuMDEyNTAiLCI3LjAwNjc0MTY0RSs1NzY4NzI1MDIiKTsKKyAgbWF0aHRlc3QoMTMsZGVmLCI1NzIuMTczMTAzRSsyODAxMjg0MjgiLCItNzE0MC4xOTQyOCIsIjUuNzIxNzMxMDNFKzI4MDEyODQzMCIsIjUuNzIxNzMxMDNFKzI4MDEyODQzMCIsIi00LjA4NTQyNzEyRSsyODAxMjg0MzQiLCItOC4wMTM0MTA4NUUrMjgwMTI4NDI2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE0LGRlZiwiNjc0MjM1Ljk1NEUrNDc2MTM1MjkxIiwiOTY4NC44MjI0NSIsIjYuNzQyMzU5NTRFKzQ3NjEzNTI5NiIsIjYuNzQyMzU5NTRFKzQ3NjEzNTI5NiIsIjYuNTI5ODU1NTBFKzQ3NjEzNTMwMCIsIjYuOTYxNzc5MTlFKzQ3NjEzNTI5MiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNSxkZWYsIi0zNjA1NTcuOTIxRSs0MzcxMTY1MTQiLCI5MzA0Mjg4NTAiLCItMy42MDU1NzkyMUUrNDM3MTE2NTE5IiwiLTMuNjA1NTc5MjFFKzQzNzExNjUxOSIsIi0zLjM1NDczNDkyRSs0MzcxMTY1MjgiLCItMy44NzUxNzk5M0UrNDM3MTE2NTEwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE2LGRlZiwiOTU3MTY1OTE4RS0zOTQ1OTU3MDUiLCIxNjc2LjU5MDczRS04Mjk2MTg5NDQiLCI5LjU3MTY1OTE4RS0zOTQ1OTU2OTciLCI5LjU3MTY1OTE4RS0zOTQ1OTU2OTciLCIiLCI1LjcwOTAwMTYxRSs0MzUwMjMyNDQiLCIiLCIiLCI5LjE2MTY2NTk1RS03ODkxOTEzOTMiKTsKKyAgbWF0aHRlc3QoMTcsZGVmLCItMjYxMDg2NC40MCIsIjMxMjQ1OTEyLjciLCIyODYzNTA0OC4zIiwiLTMzODU2Nzc3LjEiLCItOC4xNTc4ODQxMUUrMTMiLCItMC4wODM1NTg1ODk3IiwiMCIsIi0yNjEwODY0LjQwIiwiLTMuMTIwMDg5MDVFKzIwMDQ5ODI4NCIpOworICBtYXRodGVzdCgxOCxkZWYsIjk1OS41NDg0NjEiLCI5OC45OTQ1NzdFKzc3Njc3NTQyNiIsIjkuODk5NDU3NzBFKzc3Njc3NTQyNyIsIi05Ljg5OTQ1NzcwRSs3NzY3NzU0MjciLCI5LjQ5OTAwOTQwRSs3NzY3NzU0MzAiLCI5LjY5MjkzOTY1RS03NzY3NzU0MjYiLCIwIiwiOTU5LjU0ODQ2MSIsIjYuNjE3MTIxODVFKzI5Iik7CisgIG1hdGh0ZXN0KDE5LGRlZiwiLTQxMDg1LjAyNjgiLCIzMTE1NDc3LjYxIiwiMzA3NDM5Mi41OCIsIi0zMTU2NTYyLjY0IiwiLTEuMjc5OTk0ODFFKzExIiwiLTAuMDEzMTg3MzkyNyIsIjAiLCItNDEwODUuMDI2OCIsIjQuNzM4NDQxNzNFKzE0MzczODI5Iik7CisgIG1hdGh0ZXN0KDIwLGRlZiwiLTcyMzQyMDI4NS4iLCIyNjgxNjYwLjM1IiwiLTcyMDczODYyNSIsIi03MjYxMDE5NDUiLCItMS45Mzk5Njc0OUUrMTUiLCItMjY5Ljc2NTgxMyIsIi0yNjkiLCItMjA1MzY1MC44NSIsIjQuMTQzMjQxMTNFKzIzNzU3ODczIik7CisgIG1hdGh0ZXN0KDIxLGRlZiwiNjM1NDIwMTguMEUtODE3NzMyMjMwIiwiLTg4MzYyNDMuMjIiLCItODgzNjI0My4yMiIsIjg4MzYyNDMuMjIiLCItNS42MTQ3MjcyNkUtODE3NzMyMjE2IiwiLTcuMTkxMDY3MTFFLTgxNzczMjIzMCIsIjAiLCI2LjM1NDIwMTgwRS04MTc3MzIyMjMiLCIiKTsKKyAgbWF0aHRlc3QoMjIsZGVmLCItOTYwNTEuNzEwOCIsIi0yOTEyMDEuOTU1IiwiLTM4NzI1My42NjYiLCIxOTUxNTAuMjQ0IiwiMi43OTcwNDQ2MEUrMTAiLCIwLjMyOTg0NTY5NCIsIjAiLCItOTYwNTEuNzEwOCIsIjMuNTM2MTcxNTNFLTE0NTA5MTYiKTsKKyAgbWF0aHRlc3QoMjMsZGVmLCIxMDg0OTAuODUzIiwiOTE2ODU5OTYuNSIsIjkxNzk0NDg3LjQiLCItOTE1Nzc1MDUuNyIsIjkuOTQ3MDkxOTdFKzEyIiwiMC4wMDExODMyODcwNiIsIjAiLCIxMDg0OTAuODUzIiwiNi45ODEyNDI2NUUrNDYxNjc1MDM4Iik7CisgIG1hdGh0ZXN0KDI0LGRlZiwiLTI3NDg5LjE3MzUiLCItOTgzNTgzNS40RS01MDY0MTE2NDkiLCItMjc0ODkuMTczNSIsIi0yNzQ4OS4xNzM1IiwiMi43MDM3ODk4NkUtNTA2NDExNjM4IiwiMi43OTQ3OTgwNEUrNTA2NDExNjQ2IiwiIiwiIiwiNC4wNTg2NjQ3MkUtNDUiKTsKKyAgbWF0aHRlc3QoMjUsZGVmLCItODkyMjA0MDYuNiIsIjk5MzM5MS4wMDhFLTYxMTA0MTE3NSIsIi04OTIyMDQwNi42IiwiLTg5MjIwNDA2LjYiLCItOC44NjMwNzQ5NkUtNjExMDQxMTYyIiwiLTguOTgxMzk4NjVFKzYxMTA0MTE3NiIsIiIsIiIsIjMuMTk2MjU5MTNFKzc5Iik7CisgIG1hdGh0ZXN0KDI2LGRlZiwiNC43NTUwMjAyMCIsIi0xNzA4OTE0NC45IiwiLTE3MDg5MTQwLjIiLCIxNzA4OTE0OS43IiwiLTgxMjU5MjI5LjIiLCItMi43ODI0Nzk4OUUtNyIsIjAiLCI0Ljc1NTAyMDIwIiwiMS4wNjMwMTkxRS0xMTU3MTk1NSIpOworICBtYXRodGVzdCgyNyxkZWYsIjY4MDI3OTE2LjIiLCItNzk2ODgzLjgzOSIsIjY3MjMxMDMyLjQiLCI2ODgyNDgwMC4wIiwiLTUuNDIxMDM0NzBFKzEzIiwiLTg1LjM2NzQxODUiLCItODUiLCIyOTI3ODkuODg1IiwiOC4yOTQxNTM3NEUtNjI0MTc0NCIpOworICBtYXRodGVzdCgyOCxkZWYsIi04LjAxOTY5NDM5RSs3ODg2MDU0NzgiLCI5MjE1NDE1Ni4wIiwiLTguMDE5Njk0MzlFKzc4ODYwNTQ3OCIsIi04LjAxOTY5NDM5RSs3ODg2MDU0NzgiLCItNy4zOTA0ODE2OEUrNzg4NjA1NDg2IiwiLTguNzAyNDc3MTdFKzc4ODYwNTQ3MCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyOSxkZWYsIi04MDEyLjk4MzQxIiwiOTYxODguODY1MSIsIjg4MTc1Ljg4MTciLCItMTA0MjAxLjg0OSIsIi03NzA3NTk3ODAiLCItMC4wODMzMDQ2ODgxIiwiMCIsIi04MDEyLjk4MzQxIiwiLTEuMTYwMTAxNTZFKzM3NTUwMiIpOworICBtYXRodGVzdCgzMCxkZWYsIjIxNzYxNDc2RSs1OTIzMzA2NzciLCItOS43MDc0NDUwNiIsIjIuMTc2MTQ3NjBFKzU5MjMzMDY4NCIsIjIuMTc2MTQ3NjBFKzU5MjMzMDY4NCIsIi0yLjExMjQ4MzMzRSs1OTIzMzA2ODUiLCItMi4yNDE3MzA1M0UrNTkyMzMwNjgzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMxLGRlZiwiLTk4NDA3NzguNTEiLCItMTc5MDcuMjE5IiwiLTk4NTg2ODUuNzMiLCItOTgyMjg3MS4yOSIsIjEuNzYyMjA5NzZFKzExIiwiNTQ5LjU0MjUzNCIsIjU0OSIsIi05NzE1LjI3OSIsIi02LjYyOTk3NDM3RS0xMjUyMjUiKTsKKyAgbWF0aHRlc3QoMzIsZGVmLCItNC4xMDk3NjE0IiwiLTgxOS4yMjU3NzZFLTE0NTIxNDc1MSIsIi00LjEwOTc2MTQwIiwiLTQuMTA5NzYxNDAiLCIzLjM2NjgyMjQ3RS0xNDUyMTQ3NDgiLCI1LjAxNjY0MDc0RSsxNDUyMTQ3NDgiLCIiLCIiLCIwLjAwMDAxMjI4NzYwMTgiKTsKKyAgbWF0aHRlc3QoMzMsZGVmLCItNDQ4Ljg4MDk4NSIsIi0zOTQuMDg3Mzc0RS00NDI1MTE0MzUiLCItNDQ4Ljg4MDk4NSIsIi00NDguODgwOTg1IiwiMS43Njg5ODMyOUUtNDQyNTExNDMwIiwiMS4xMzkwMzkyNUUrNDQyNTExNDM1IiwiIiwiIiwiMi40NjMwNjA5OUUtMTEiKTsKKyAgbWF0aHRlc3QoMzQsZGVmLCI3NzkuNDQ1MzA0RSs4ODI2ODg1NDQiLCItNzk3ODY4NTE5IiwiNy43OTQ0NTMwNEUrODgyNjg4NTQ2IiwiNy43OTQ0NTMwNEUrODgyNjg4NTQ2IiwiLTYuMjE4OTQ4NzBFKzg4MjY4ODU1NSIsIi05Ljc2OTA5NDZFKzg4MjY4ODUzNyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNSxkZWYsIjc5OTk5NTQ3NyIsIi02LjIzNjc1MjA4RSsxNTYzMDk0NDAiLCItNi4yMzY3NTIwOEUrMTU2MzA5NDQwIiwiNi4yMzY3NTIwOEUrMTU2MzA5NDQwIiwiLTQuOTg5MzczNDZFKzE1NjMwOTQ0OSIsIi0xLjI4MjcxMTY5RS0xNTYzMDk0MzIiLCIwIiwiNzk5OTk1NDc3IiwiMy44MTQ4MjY2N0UtNTQiKTsKKyAgbWF0aHRlc3QoMzYsZGVmLCItNTE5MzIuODE3MCIsIjU5MTg0MDI3NUUtMjc4NDgwMjg5IiwiLTUxOTMyLjgxNzAiLCItNTE5MzIuODE3MCIsIi0zLjA3MzU5MzI3RS0yNzg0ODAyNzYiLCItOC43NzQ4MDI4RSsyNzg0ODAyODQiLCIiLCIiLCIxLjk2MTc4NDQzRSsyOCIpOworICBtYXRodGVzdCgzNyxkZWYsIjcwLjM1NTIzOTIiLCItNDIyODY1Ni43MyIsIi00MjI4NTg2LjM4IiwiNDIyODcyNy4wOSIsIi0yOTc1MDgxNTYiLCItMC4wMDAwMTY2Mzc3Mjc3IiwiMCIsIjcwLjM1NTIzOTIiLCI5LjE0NzQyMzgyRS03ODExNTg0Iik7CisgIG1hdGh0ZXN0KDM4LGRlZiwiMTU4ODM1OS4zNCIsIi0xMjIzMjc5OS4yIiwiLTEwNjQ0NDM5LjkiLCIxMzgyMTE1OC41IiwiLTEuOTQzMDA4MDlFKzEzIiwiLTAuMTI5ODQ0MzA3IiwiMCIsIjE1ODgzNTkuMzQiLCIxLjU2OTEwMDg2RS03NTg1NDk2MCIpOworICBtYXRodGVzdCgzOSxkZWYsIjI4NDIuMTYyMDYiLCItMy4yMzIzNDM0NSIsIjI4MzguOTI5NzIiLCIyODQ1LjM5NDQwIiwiLTkxODYuODQzOTIiLCItODc5LjI4ODM4OCIsIi04NzkiLCIwLjkzMjE2NzQ1IiwiNC4zNTU2NTUxNEUtMTEiKTsKKyAgbWF0aHRlc3QoNDAsZGVmLCIyOTk2MC4yMzA1IiwiNDUuMjczNTc0N0UtOTUyMDU0NzUiLCIyOTk2MC4yMzA1IiwiMjk5NjAuMjMwNSIsIjEuMzU2NDA2NzNFLTk1MjA1NDY5IiwiNi42MTc1OTc3M0UrOTUyMDU0NzciLCIiLCIiLCIyLjQxMzkzNkUrMjIiKTsKKyAgbWF0aHRlc3QoNDEsZGVmLCIyOTE2NTY1Ljc3IiwiMTE1MTkzNS40M0UtNzg3MTE4NzI0IiwiMjkxNjU2NS43NyIsIjI5MTY1NjUuNzciLCIzLjM1OTY5NTQ0RS03ODcxMTg3MTIiLCIyLjUzMTg4MzAzRSs3ODcxMTg3MjQiLCIiLCIiLCIyOTE2NTY1Ljc3Iik7CisgIG1hdGh0ZXN0KDQyLGRlZiwiLTUyNzIzMDEyLjlFLTk2NzE0Mzc4NyIsIjc5LjQwODgyMzciLCI3OS40MDg4MjM3IiwiLTc5LjQwODgyMzciLCItNC4xODY2NzI0NEUtOTY3MTQzNzc4IiwiLTYuNjM5NDQwMTFFLTk2NzE0Mzc4MiIsIjAiLCItNS4yNzIzMDEyOUUtOTY3MTQzNzgwIiwiIik7CisgIG1hdGh0ZXN0KDQzLGRlZiwiLTE2NzQ3MzQ2NSIsIjc5MzY0Ni41OTciLCItMTY2Njc5ODE5IiwiLTE2ODI2NzExMiIsIi0xLjMyOTE0NzQ2RSsxNCIsIi0yMTEuMDE3NjgyIiwiLTIxMSIsIi0xNDAzMy4wMzMiLCItMS4xOTA1Mzc4OUUrNjUyNjkxMCIpOworICBtYXRodGVzdCg0NCxkZWYsIi0zMTc2OTA3MS4wIiwiMTMzLjQzNjAiLCItMzE3Njg5MzcuNiIsIi0zMTc2OTIwNC40IiwiLTQuMjM5MTM3NzZFKzkiLCItMjM4MDg0LjcwNyIsIi0yMzgwODQiLCItOTQuMzc2MCIsIi01Ljg0MjUyNDMyRSs5OTciKTsKKyAgbWF0aHRlc3QoNDUsZGVmLCI0NTk2MC42MzgzIiwiLTkzMzUyLjc0NjgiLCItNDczOTIuMTA4NSIsIjEzOTMxMy4zODUiLCItNC4yOTA1NTE4M0UrOSIsIi0wLjQ5MjMzMzAwNCIsIjAiLCI0NTk2MC42MzgzIiwiMS44ODMzNTMyM0UtNDM1MjQ4Iik7CisgIG1hdGh0ZXN0KDQ2LGRlZiwiNjA2LjE3NTY0OCIsIjUuMjg1Mjg0NThFLTk4MTk4MzYyMCIsIjYwNi4xNzU2NDgiLCI2MDYuMTc1NjQ4IiwiMy4yMDM4MTA4MUUtOTgxOTgzNjE3IiwiMS4xNDY5MTIwM0UrOTgxOTgzNjIyIiwiIiwiIiwiOC4xODQ1MDUxNkUrMTMiKTsKKyAgbWF0aHRlc3QoNDcsZGVmLCIxNzE1NzguNjE3RSs2NDMwMDYxMTAiLCItNDA3Nzc0LjI5MyIsIjEuNzE1Nzg2MTdFKzY0MzAwNjExNSIsIjEuNzE1Nzg2MTdFKzY0MzAwNjExNSIsIi02Ljk5NjUzNDkyRSs2NDMwMDYxMjAiLCItNC4yMDc2ODU5N0UrNjQzMDA2MTA5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ4LGRlZiwiLTY4MjI4NjMzMi4iLCItNDY0Ljg3MTY5OSIsIi02ODIyODY3OTciLCItNjgyMjg1ODY3IiwiMy4xNzE3NTYwNkUrMTEiLCIxNDY3Njg3LjM5IiwiMTQ2NzY4NyIsIi0xODIuNzA5Nzg3IiwiLTEuNjA1MDg0M0UtNDEwOCIpOworICBtYXRodGVzdCg0OSxkZWYsIjQ5MjA4OC40MjgiLCI2NTMuNzIxNzAiLCI0OTI3NDIuMTUwIiwiNDkxNDM0LjcwNiIsIjMyMTY4ODg4NCIsIjc1Mi43NDkxMSIsIjc1MiIsIjQ4OS43MDk2MCIsIjMuOTQ2NTg1OTZFKzM3MjIiKTsKKyAgbWF0aHRlc3QoNTAsZGVmLCI3NDMwMzc4Mi41IiwiMTE0MS42ODA1OCIsIjc0MzA0OTI0LjIiLCI3NDMwMjY0MC44IiwiOC40ODMxMTg1NUUrMTAiLCI2NTA4Mi44MTIiLCI2NTA4MiIsIjkyNi45OTI0NCIsIjQuOTQ4NDk4NjlFKzg5ODgiKTsKKyAgbWF0aHRlc3QoNTEsZGVmLCI3NC43Nzk0MDg0RSsxMTkzNzUzMjkiLCItMzQ3OTkzNTUuNiIsIjcuNDc3OTQwODRFKzExOTM3NTMzMCIsIjcuNDc3OTQwODRFKzExOTM3NTMzMCIsIi0yLjYwMjI3NTIyRSsxMTkzNzUzMzgiLCItMi4xNDg4NzMzN0UrMTE5Mzc1MzIzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDUyLGRlZiwiLTk0MzIuMDgzNjkiLCIzMzczNS41MDU4IiwiMjQzMDMuNDIyMSIsIi00MzE2Ny41ODk1IiwiLTMxODE5NjExNCIsIi0wLjI3OTU4OTIxOCIsIjAiLCItOTQzMi4wODM2OSIsIjIuMzA5NTY3RSsxMzQwODciKTsKKyAgbWF0aHRlc3QoNTMsZGVmLCI0MjQ5MTk4Ljc4RS0xMTI0MzMxNTUiLCI0MTg2NzMwNTEuIiwiNDE4NjczMDUxIiwiLTQxODY3MzA1MSIsIjEuNzc5MDI1MDJFLTExMjQzMzE0MCIsIjEuMDE0OTIwNTRFLTExMjQzMzE1NyIsIjAiLCI0LjI0OTE5ODc4RS0xMTI0MzMxNDkiLCIiKTsKKyAgbWF0aHRlc3QoNTQsZGVmLCItMjk2MDkzMy4wMiIsIi0yMDc5MzMuMzgiLCItMzE2ODg2Ni40MCIsIi0yNzUyOTk5LjY0IiwiNi4xNTY3NjgxMUUrMTEiLCIxNC4yMzk4MTU4IiwiMTQiLCItNDk4NjUuNzAiLCItMi43NTY4MDM5N0UtMTM0NTYyNCIpOworICBtYXRodGVzdCg1NSxkZWYsIjI5MzE3Ljc1MTlFKzk0NTYwMDAzNSIsIjEuNDM1NTU3NTAiLCIyLjkzMTc3NTE5RSs5NDU2MDAwMzkiLCIyLjkzMTc3NTE5RSs5NDU2MDAwMzkiLCI0LjIwODczMTg2RSs5NDU2MDAwMzkiLCIyLjA0MjI1NTQ5RSs5NDU2MDAwMzkiLCIiLCIiLCIyLjkzMTc3NTE5RSs5NDU2MDAwMzkiKTsKKyAgbWF0aHRlc3QoNTYsZGVmLCItNTEuMTY5Mzc3MCIsIi02MzgwNTUuNDE0IiwiLTYzODEwNi41ODMiLCI2MzgwMDQuMjQ1IiwiMzI2NDg4OTguMCIsIjAuMDAwMDgwMTk1ODE5OCIsIjAiLCItNTEuMTY5Mzc3MCIsIi0zLjQ4MjY2MDc1RS0xMDkwNDQzIik7CisgIG1hdGh0ZXN0KDU3LGRlZiwiLTc1NjM0MzA1NS4iLCItNjguOTI0ODM0NEUrMjE3MTAwOTc1IiwiLTYuODkyNDgzNDRFKzIxNzEwMDk3NiIsIjYuODkyNDgzNDRFKzIxNzEwMDk3NiIsIjUuMjEzMDgxOThFKzIxNzEwMDk4NSIsIjEuMDk3MzQ0NzVFLTIxNzEwMDk2OCIsIjAiLCItNzU2MzQzMDU1IiwiLTcuMDYyNjU4OTdFLTYzIik7CisgIG1hdGh0ZXN0KDU4LGRlZiwiMjUzOC44MDQwNkUrNjk0MTg1MTk3IiwiLTMzODY0OTkuNjUiLCIyLjUzODgwNDA2RSs2OTQxODUyMDAiLCIyLjUzODgwNDA2RSs2OTQxODUyMDAiLCItOC41OTc2NTkwNkUrNjk0MTg1MjA2IiwiLTcuNDk2ODM4MzlFKzY5NDE4NTE5MyIsIiIsIiIsIiIpOworICBtYXRodGVzdCg1OSxkZWYsIi01NDM0NC4wNjcyIiwiLTgwODYuNDUyMzUiLCItNjI0MzAuNTE5NiIsIi00NjI1Ny42MTQ5IiwiNDM5NDUwNzEwIiwiNi43MjAzODQyNyIsIjYiLCItNTgyNS4zNTMxMCIsIjMuNjI5MTY4NjFFLTM4Mjg5Iik7CisgIG1hdGh0ZXN0KDYwLGRlZiwiMy4zMTYwMDA1NCIsIjIxNzQ4MTY0OCIsIjIxNzQ4MTY1MSIsIi0yMTc0ODE2NDUiLCI3MjExNjkyNjIiLCIxLjUyNDcyNjZFLTgiLCIwIiwiMy4zMTYwMDA1NCIsIjMuNzMxMzQ5NjlFKzExMzIyNDExOSIpOworICBtYXRodGVzdCg2MSxkZWYsIjY4MTgzMi42NzEiLCIzMjAzNDEuMTYxRSs2Mjk0Njc1NjAiLCIzLjIwMzQxMTYxRSs2Mjk0Njc1NjUiLCItMy4yMDM0MTE2MUUrNjI5NDY3NTY1IiwiMi4xODQxOTA2OUUrNjI5NDY3NTcxIiwiMi4xMjg0NTc4OUUtNjI5NDY3NTYwIiwiMCIsIjY4MTgzMi42NzEiLCIzLjE2OTgxMTM5RSsxNyIpOworICBtYXRodGVzdCg2MixkZWYsIjgzMjY4OTQ4MSIsIjM0ODA0MDAyNEUtODgyMTIyNTAxIiwiODMyNjg5NDgxIiwiODMyNjg5NDgxIiwiMi44OTgwOTI2N0UtODgyMTIyNDg0IiwiMi4zOTI1MTA3RSs4ODIxMjI1MDEiLCIiLCIiLCI1Ljc3MzYzMzgxRSsyNiIpOworICBtYXRodGVzdCg2MyxkZWYsIjE0LjU1MTIzMjZFKzI1NzUwMDgxMSIsIjYwLjk5Nzk1NzdFLTY0NzMxNDcyNCIsIjEuNDU1MTIzMjZFKzI1NzUwMDgxMiIsIjEuNDU1MTIzMjZFKzI1NzUwMDgxMiIsIjguODc1OTU0NzFFLTM4OTgxMzkxMSIsIjIuMzg1NTI3ODRFKzkwNDgxNTUzNCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg2NCxkZWYsIi05MDEuMjc4ODQ0IiwiNDQ5NDYxNjY3LiIsIjQ0OTQ2MDc2NiIsIi00NDk0NjI1NjgiLCItNC4wNTA5MDI5MkUrMTEiLCItMC4wMDAwMDIwMDUyNDA3NCIsIjAiLCItOTAxLjI3ODg0NCIsIiIpOworICBtYXRodGVzdCg2NSxkZWYsIi01LjMyNjI3Njc1IiwiLTczODg2MDIxNkUtMjM4MjczMjI0IiwiLTUuMzI2Mjc2NzUiLCItNS4zMjYyNzY3NSIsIjMuOTM1MzczOTlFLTIzODI3MzIxNSIsIjcuMjA4Nzc0NTlFKzIzODI3MzIxNSIsIiIsIiIsIi0wLjAwMDAwODIyMzA2ODM4Iik7CisgIG1hdGh0ZXN0KDY2LGRlZiwiLTUwNTM4MzQ2My4iLCIzLjE4NzU2MzI4IiwiLTUwNTM4MzQ2MCIsIi01MDUzODM0NjYiLCItMS42MTA5NDE3N0UrOSIsIi0xNTg1NDg1MjciLCItMTU4NTQ4NTI3IiwiLTAuMjM2NzExNDQiLCItMS4yOTA4MTIyNkUrMjYiKTsKKyAgbWF0aHRlc3QoNjcsZGVmLCI3NjkyNDEuNDRFLTcyMDkyNzMyMCIsIi0xNDUzODI2MzEuIiwiLTE0NTM4MjYzMSIsIjE0NTM4MjYzMSIsIi0xLjExODM0MzQ0RS03MjA5MjczMDYiLCItNS4yOTExNTA5MUUtNzIwOTI3MzIzIiwiMCIsIjcuNjkyNDE0NEUtNzIwOTI3MzE1IiwiIik7CisgIG1hdGh0ZXN0KDY4LGRlZiwiLTYuNDUwMzg5MTAiLCI1NjczNi40NDExRSs0NDA5MzcxNjciLCI1LjY3MzY0NDExRSs0NDA5MzcxNzEiLCItNS42NzM2NDQxMUUrNDQwOTM3MTcxIiwiLTMuNjU5NzIxMjFFKzQ0MDkzNzE3MiIsIi0xLjEzNjkwNDA3RS00NDA5MzcxNzEiLCIwIiwiLTYuNDUwMzg5MTAiLCI3MjAzMC4zNDIxIik7CisgIG1hdGh0ZXN0KDY5LGRlZiwiNTguNDcyMTA3NSIsIi03MTIxODY4MjkiLCItNzEyMTg2NzcxIiwiNzEyMTg2ODg3IiwiLTQuMTY0MzA2NDhFKzEwIiwiLTguMjEwMjIwMjhFLTgiLCIwIiwiNTguNDcyMTA3NSIsIiIpOworICBtYXRodGVzdCg3MCxkZWYsIjgyNDQuMDgzNTciLCIyNDUuMzAyODI4RSs2NTIwMDc5NTkiLCIyLjQ1MzAyODI4RSs2NTIwMDc5NjEiLCItMi40NTMwMjgyOEUrNjUyMDA3OTYxIiwiMi4wMjIyOTcwMUUrNjUyMDA3OTY1IiwiMy4zNjA3NzgwNEUtNjUyMDA3OTU4IiwiMCIsIjgyNDQuMDgzNTciLCI2Nzk2NDkxMy45Iik7CisgIG1hdGh0ZXN0KDcxLGRlZiwiNDUuNTM2MTM5NyIsIi03NjU3OTA2My45IiwiLTc2NTc5MDE4LjQiLCI3NjU3OTEwOS40IiwiLTMuNDg3MTE0OTVFKzkiLCItNS45NDYyOTA5OEUtNyIsIjAiLCI0NS41MzYxMzk3IiwiMy45ODMzNTM3NEUtMTI2OTk1MzY3Iik7CisgIG1hdGh0ZXN0KDcyLGRlZiwiNTk0NDIwLjU0RSs2ODUyNjMwMzkiLCItOTUyNDIwLjE3OSIsIjUuOTQ0MjA1NDBFKzY4NTI2MzA0NCIsIjUuOTQ0MjA1NDBFKzY4NTI2MzA0NCIsIi01LjY2MTM4MTE3RSs2ODUyNjMwNTAiLCItNi4yNDExNTg2MUUrNjg1MjYzMDM4IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDczLGRlZiwiLTg0MTMxMDcwMS4iLCI5Mzk4MTEwLjQiLCItODMxOTEyNTkxIiwiLTg1MDcwODgxMSIsIi03LjkwNjczMDg1RSsxNSIsIi04OS41MTkxMzM3IiwiLTg5IiwiLTQ4Nzg4NzUuNCIsIjEuMzAwMDE0NjZFKzgzODc3NzIyIik7CisgIG1hdGh0ZXN0KDc0LGRlZiwiOTA0MzkyMTQ2RS0xNDAxMDAyNzYiLCIxNjgxMTYwOTMuIiwiMTY4MTE2MDkzIiwiLTE2ODExNjA5MyIsIjEuNTIwNDI4NzRFLTE0MDEwMDI1OSIsIjUuMzc5NTY5MTRFLTE0MDEwMDI3NiIsIjAiLCI5LjA0MzkyMTQ2RS0xNDAxMDAyNjgiLCIiKTsKKyAgbWF0aHRlc3QoNzUsZGVmLCItOTA3MzI0NzkyRSs2ODU1Mzk2NzAiLCItMTUuNjkwMjE3MSIsIi05LjA3MzI0NzkyRSs2ODU1Mzk2NzgiLCItOS4wNzMyNDc5MkUrNjg1NTM5Njc4IiwiMS40MjM2MTIzMEUrNjg1NTM5NjgwIiwiNS43ODI3NDIxMUUrNjg1NTM5Njc3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDc2LGRlZiwiOTg3MDEzNjA2LiIsIi0yNjgxOC4zNTcyRSs1NjA5MDc0NDIiLCItMi42ODE4MzU3MkUrNTYwOTA3NDQ2IiwiMi42ODE4MzU3MkUrNTYwOTA3NDQ2IiwiLTIuNjQ3MDA4MzRFKzU2MDkwNzQ1NSIsIi0zLjY4MDM2NTY1RS01NjA5MDc0MzgiLCIwIiwiOTg3MDEzNjA2IiwiMS4wMzk5OTM0RS0yNyIpOworICBtYXRodGVzdCg3NyxkZWYsIi03NDEzMTc1NjQiLCI2MzAuMjQxNTMwRS0yMTI3ODI5NDYiLCItNzQxMzE3NTY0IiwiLTc0MTMxNzU2NCIsIi00LjY3MjA5MTE2RS0yMTI3ODI5MzUiLCItMS4xNzYyNDM2RSsyMTI3ODI5NTIiLCIiLCIiLCIxLjY1OTY4NTI3RSs1MyIpOworICBtYXRodGVzdCg3OCxkZWYsIjYxODY3OTA3LjIiLCItMTM5MjA0NjcwIiwiLTc3MzM2NzYzIiwiMjAxMDcyNTc3IiwiLTguNjEyMzAxNjFFKzE1IiwiLTAuNDQ0NDM4NDQ2IiwiMCIsIjYxODY3OTA3LjIiLCIiKTsKKyAgbWF0aHRlc3QoNzksZGVmLCItMjczLjYyMjc0M0UrNTMxMjgyNzE3IiwiLTQ1NDMuNjg2ODQiLCItMi43MzYyMjc0M0UrNTMxMjgyNzE5IiwiLTIuNzM2MjI3NDNFKzUzMTI4MjcxOSIsIjEuMjQzMjU2MDZFKzUzMTI4MjcyMyIsIjYuMDIyMDQyMjlFKzUzMTI4MjcxNSIsIiIsIiIsIiIpOworICBtYXRodGVzdCg4MCxkZWYsIi0zODM1ODg5NDkuIiwiLTQyODY0MDU4My4iLCItODEyMjI5NTMyIiwiNDUwNTE2MzQiLCIxLjY0NDIxNzkxRSsxNyIsIjAuODk0ODk2NDgiLCIwIiwiLTM4MzU4ODk0OSIsIiIpOworICBtYXRodGVzdCg4MSxkZWYsIi01NjE4Mi4yNjg2IiwiMzIuNzc0MTY0OSIsIi01NjE0OS40OTQ0IiwiLTU2MjE1LjA0MjgiLCItMTg0MTMyNi45NCIsIi0xNzE0LjIyNDI2IiwiLTE3MTQiLCItNy4zNDk5NjE0IiwiLTUuNDU0NzY0MDJFKzE1NiIpOworICBtYXRodGVzdCg4MixkZWYsIi02MzY2Mzg0LjMwIiwiMzMyMDE0Ljk4MCIsIi02MDM0MzY5LjMyIiwiLTY2OTgzOTkuMjgiLCItMi4xMTM3MzQ5NkUrMTIiLCItMTkuMTc0OTkxMSIsIi0xOSIsIi01ODA5OS42ODAiLCItMy4wNTM5MjM5OUUrMjI1ODk5NCIpOworICBtYXRodGVzdCg4MyxkZWYsIi0xLjI3ODk3NzAyIiwiLTgyMTM3NzYuMDNFLTY4NjUxOTEyMyIsIi0xLjI3ODk3NzAyIiwiLTEuMjc4OTc3MDIiLCIxLjA1MDUyMzA4RS02ODY1MTkxMTYiLCIxLjU1NzExMjEyRSs2ODY1MTkxMTYiLCIiLCIiLCIwLjEzOTY2ODM3MSIpOworICBtYXRodGVzdCg4NCxkZWYsIjY1LjQwNTkwMzYiLCI0MDExNjIxNDVFKzg4NDE1NTUwNiIsIjQuMDExNjIxNDVFKzg4NDE1NTUxNCIsIi00LjAxMTYyMTQ1RSs4ODQxNTU1MTQiLCIyLjYyMzgzNzI2RSs4ODQxNTU1MTYiLCIxLjYzMDQxMDY2RS04ODQxNTU1MTMiLCIwIiwiNjUuNDA1OTAzNiIsIjE4MzAwNzA0LjEiKTsKKyAgbWF0aHRlc3QoODUsZGVmLCItMjA2MzA5MTYuOCIsIjE1ODk4NzQxMS5FLTQ4MDUwMDYxMiIsIi0yMDYzMDkxNi44IiwiLTIwNjMwOTE2LjgiLCItMy4yODAwNTYwNUUtNDgwNTAwNTk3IiwiLTEuMjk3NjQ0NjhFKzQ4MDUwMDYxMSIsIiIsIiIsIjQuMjU2MzQ3MjhFKzE0Iik7CisgIG1hdGh0ZXN0KDg2LGRlZiwiLTQuNzI3MDU4NTMiLCItOTc2MjY3NDIuNCIsIi05NzYyNjc0Ny4xIiwiOTc2MjY3MzcuNyIsIjQ2MTQ4NzMyNSIsIjQuODQxOTcwOTdFLTgiLCIwIiwiLTQuNzI3MDU4NTMiLCIyLjkyNjU0NDQ5RS02NTg1ODEyMCIpOworICBtYXRodGVzdCg4NyxkZWYsIjguNDM1MjgxNjkiLCItNDU3My40NTc1MiIsIi00NTY1LjAyMjI0IiwiNDU4MS44OTI4MCIsIi0zODU3OC40MDI1IiwiLTAuMDAxODQ0Mzk5MjciLCIwIiwiOC40MzUyODE2OSIsIjguODQyNDg2ODhFLTQyMzYiKTsKKyAgbWF0aHRlc3QoODgsZGVmLCIxLjkxMDc1MTg5IiwiLTcwNDI0NzA4OS4iLCItNzA0MjQ3MDg3IiwiNzA0MjQ3MDkxIiwiLTEuMzQ1NjQxNDZFKzkiLCItMi43MTMxODM5NEUtOSIsIjAiLCIxLjkxMDc1MTg5IiwiNi44NDU0NzQ5NEUtMTk4MDM3MzA5Iik7CisgIG1hdGh0ZXN0KDg5LGRlZiwiMzE5OTcxOThFLTU1MTc0NjMwOCIsIjMyNi44OTI1ODQiLCIzMjYuODkyNTg0IiwiLTMyNi44OTI1ODQiLCIxLjA0NTk2NDY3RS01NTE3NDYyOTgiLCI5Ljc4ODI5MTE5RS01NTE3NDYzMDQiLCIwIiwiMy4xOTk3MTk4RS01NTE3NDYzMDEiLCIiKTsKKyAgbWF0aHRlc3QoOTAsZGVmLCIxMjc1ODkuMjEzIiwiODQxODQzMDQuIiwiODQzMTE4OTMuMiIsIi04NDA1NjcxNC44IiwiMS4wNzQxMDA5MUUrMTMiLCIwLjAwMTUxNTU5Mzg1IiwiMCIsIjEyNzU4OS4yMTMiLCIyLjg3OTE3MDQyRSs0Mjk4MjkzOTQiKTsKKyAgbWF0aHRlc3QoOTEsZGVmLCI3MTQ0OTQyNDgiLCItNzAyNTA2My41OSIsIjcwNzQ2OTE4NSIsIjcyMTUxOTMxMiIsIi01LjAxOTM2NzUzRSsxNSIsIi0xMDEuNzA2NDQ2IiwiLTEwMSIsIjQ5NjI4MjUuNDEiLCIxLjY1MDE4NTE2RS02MjE5OTkwOCIpOworICBtYXRodGVzdCg5MixkZWYsIi01Mjk4NzY4MC4yRSsyNzk1MzM1MDMiLCItNDIwMTQxMTQuOCIsIi01LjI5ODc2ODAyRSsyNzk1MzM1MTAiLCItNS4yOTg3NjgwMkUrMjc5NTMzNTEwIiwiMi4yMjYyMzA0OEUrMjc5NTMzNTE4IiwiMS4yNjExODc1OUUrMjc5NTMzNTAzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDkzLGRlZiwiLTg3OTUuMDUxMyIsIi0yMjUyOTQuMzk0RS04ODQ0MTQyMzgiLCItODc5NS4wNTEzMCIsIi04Nzk1LjA1MTMwIiwiMS45ODE0NzU3NUUtODg0NDE0MjI5IiwiMy45MDM4MDM4OEUrODg0NDE0MjM2IiwiIiwiIiwiMS4yOTI3NzU5RS04Iik7CisgIG1hdGh0ZXN0KDk0LGRlZiwiODMyODAuMTM5NCIsIjE2MTU2NjM1NC4iLCIxNjE2NDk2MzQiLCItMTYxNDgzMDc0IiwiMS4zNDU1MjY4NUUrMTMiLCIwLjAwMDUxNTQ1NDcxOCIsIjAiLCI4MzI4MC4xMzk0IiwiNS4zMDc3NDgwOUUrNzk0OTkzOTQwIik7CisgIG1hdGh0ZXN0KDk1LGRlZiwiMTEyLjg3Nzg5NyIsIi05Ljk2NDgxNjY2IiwiMTAyLjkxMzA4MCIsIjEyMi44NDI3MTQiLCItMTEyNC44MDc1NSIsIi0xMS4zMjc2NDQxIiwiLTExIiwiMy4yNjQ5MTM3NCIsIjIuOTc3OTA1NDVFLTIxIik7CisgIG1hdGh0ZXN0KDk2LGRlZiwiLTU3MjU0Mi4xMjFFKzg0NzQ4NzM5NyIsIjQzMy44NDM0MjAiLCItNS43MjU0MjEyMUUrODQ3NDg3NDAyIiwiLTUuNzI1NDIxMjFFKzg0NzQ4NzQwMiIsIi0yLjQ4MzkzNjMyRSs4NDc0ODc0MDUiLCItMS4zMTk2OTc2RSs4NDc0ODc0MDAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoOTcsZGVmLCI0NzA5NjQ5Ljg5IiwiMjA5NDkyNjYuNCIsIjI1NjU4OTE2LjMiLCItMTYyMzk2MTYuNSIsIjkuODY2MzcxMDJFKzEzIiwiMC4yMjQ4MTIxNjMiLCIwIiwiNDcwOTY0OS44OSIsIjQuODUyOTM2NDRFKzEzOTc5NDIxMyIpOworICBtYXRodGVzdCg5OCxkZWYsIi05NDc1LjE5MzIyIiwiLTMwODg1LjI0NzVFKzU4NDQ4NzM0MSIsIi0zLjA4ODUyNDc1RSs1ODQ0ODczNDUiLCIzLjA4ODUyNDc1RSs1ODQ0ODczNDUiLCIyLjkyNjQzNjg4RSs1ODQ0ODczNDkiLCIzLjA2Nzg3MDI2RS01ODQ0ODczNDIiLCIwIiwiLTk0NzUuMTkzMjIiLCItMS4xNzU1MzU1N0UtMTIiKTsKKyAgbWF0aHRlc3QoOTksZGVmLCItMjEzMjMwNDQ3LiIsIjg2NC44MTU4MjJFKzEyNzc4MzA0NiIsIjguNjQ4MTU4MjJFKzEyNzc4MzA0OCIsIi04LjY0ODE1ODIyRSsxMjc3ODMwNDgiLCItMS44NDQwNTA2NEUrMTI3NzgzMDU3IiwiLTIuNDY1NjE2ODZFLTEyNzc4MzA0MSIsIjAiLCItMjEzMjMwNDQ3IiwiLTkuMTEyNjEzNjFFKzc0Iik7CisgIG1hdGh0ZXN0KDEwMCxkZWYsIi04OS4xMTY4Nzg2RSs0MDMzNzU4NzMiLCI2NDY0LjA1NzQ0IiwiLTguOTExNjg3ODZFKzQwMzM3NTg3NCIsIi04LjkxMTY4Nzg2RSs0MDMzNzU4NzQiLCItNS43NjA1NjYyMkUrNDAzMzc1ODc4IiwiLTEuMzc4NjUyMzNFKzQwMzM3NTg3MSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxMDEsZGVmLCI2MTc3NC40OTU4IiwiLTE0MDAwLjc3MDYiLCI0Nzc3My43MjUyIiwiNzU3NzUuMjY2NCIsIi04NjQ4OTA1NDUiLCItNC40MTIyMjExMiIsIi00IiwiNTc3MS40MTM0IiwiNy41OTAzMDQwN0UtNjcwNzciKTsKKyAgbWF0aHRlc3QoMTAyLGRlZiwiMS42MDczMTQxNCIsIjcuMDQzMzAyOTNFLTQyNzAzMzQxOSIsIjEuNjA3MzE0MTQiLCIxLjYwNzMxNDE0IiwiMS4xMzIwODAwNEUtNDI3MDMzNDE4IiwiMi4yODIwNDYwMkUrNDI3MDMzNDE4IiwiIiwiIiwiMjcuNzE0MzkyMSIpOworICBtYXRodGVzdCgxMDMsZGVmLCI3OTU1MDEyLjUxIiwiLTIzMDExNzY2Mi4iLCItMjIyMTYyNjUwIiwiMjM4MDcyNjc1IiwiLTEuODMwNTg4ODhFKzE1IiwiLTAuMDM0NTY5MzI2MSIsIjAiLCI3OTU1MDEyLjUxIiwiIik7CisgIG1hdGh0ZXN0KDEwNCxkZWYsIjQwODY2NjEuMDgiLCIxLjc3NjIxOTk0IiwiNDA4NjY2Mi44NiIsIjQwODY2NTkuMzAiLCI3MjU4ODA4LjkwIiwiMjMwMDc2Mi45OCIsIjIzMDA3NjIiLCIxLjczODQwNTcyIiwiMS42NzAwNzk4OEUrMTMiKTsKKyAgbWF0aHRlc3QoMTA1LGRlZiwiLTYxMC4wNzY5MzEiLCItMjA3LjY1ODMwNiIsIi04MTcuNzM1MjM3IiwiLTQwMi40MTg2MjUiLCIxMjY2ODcuNTQyIiwiMi45Mzc4ODg0MSIsIjIiLCItMTk0Ljc2MDMxOSIsIjQuMzY1MTgzNzdFLTU4MCIpOworICBtYXRodGVzdCgxMDYsZGVmLCItOTguNjM1MzY5NyIsIi05OTI1My4zODk5RS03MTYzMDk2NTMiLCItOTguNjM1MzY5NyIsIi05OC42MzUzNjk3IiwiOS43ODk4OTQ4MUUtNzE2MzA5NjQ3IiwiOS45Mzc3MzMwOUUrNzE2MzA5NjQ5IiwiIiwiIiwiMS4xNDcyOTAwN0UtMjAiKTsKKyAgbWF0aHRlc3QoMTA3LGRlZiwiLTk1OTkyMzczMCIsIjQwOS4xMjU1NDJFLTkwMDI5NTUyOCIsIi05NTk5MjM3MzAiLCItOTU5OTIzNzMwIiwiLTMuOTI3MjkzMTZFLTkwMDI5NTUxNyIsIi0yLjM0NjI4MTZFKzkwMDI5NTUzNCIsIiIsIiIsIjguNDkwNzY2NzdFKzM1Iik7CisgIG1hdGh0ZXN0KDEwOCxkZWYsIjM3OTk2NTEzMyIsIi04LjE1ODY5NjU3IiwiMzc5OTY1MTI1IiwiMzc5OTY1MTQxIiwiLTMuMTAwMDIwMjNFKzkiLCItNDY1NzE3OTMuNiIsIi00NjU3MTc5MyIsIjUuMTkyMTQ5OTkiLCIyLjMwMTcwNjk3RS02OSIpOworICBtYXRodGVzdCgxMDksZGVmLCI4MzMuNjQ2Nzk3IiwiMTM4OTQ5OS40NkUtNDQzNDA3MjUxIiwiODMzLjY0Njc5NyIsIjgzMy42NDY3OTciLCIxLjE1ODM1MTc3RS00NDM0MDcyNDIiLCI1Ljk5OTYxOTQ0RSs0NDM0MDcyNDciLCIiLCIiLCI4MzMuNjQ2Nzk3Iik7CisgIG1hdGh0ZXN0KDExMCxkZWYsIjIzMTQ5MzMuNEUtNjQ2NDg5MTk0IiwiLTc0MDE1MzguMTciLCItNzQwMTUzOC4xNyIsIjc0MDE1MzguMTciLCItMS43MTM0MDY3OUUtNjQ2NDg5MTgxIiwiLTMuMTI3NjM4MjZFLTY0NjQ4OTE5NSIsIjAiLCIyLjMxNDkzMzRFLTY0NjQ4OTE4OCIsIiIpOworICBtYXRodGVzdCgxMTEsZGVmLCI4MDg1MjUzNDciLCItNTk1OS43NDY2N0UrNTgyMzIxNjgiLCItNS45NTk3NDY2N0UrNTgyMzIxNzEiLCI1Ljk1OTc0NjY3RSs1ODIzMjE3MSIsIi00LjgxODYwNjI0RSs1ODIzMjE4MCIsIi0xLjM1NjY0MzgyRS01ODIzMjE2MyIsIjAiLCI4MDg1MjUzNDciLCIzLjU3OTYzMDJFLTU0Iik7CisgIG1hdGh0ZXN0KDExMixkZWYsIi0xNzIyMDQ5MC42RSs3MjY0Mjg3MDQiLCIxOS45ODU1Njg4IiwiLTEuNzIyMDQ5MDZFKzcyNjQyODcxMSIsIi0xLjcyMjA0OTA2RSs3MjY0Mjg3MTEiLCItMy40NDE2MTMwMEUrNzI2NDI4NzEyIiwiLTguNjE2NDYyNTlFKzcyNjQyODcwOSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxMTMsZGVmLCI1OTAxNS45NzA1IiwiLTcyMDcwNDA1LjRFKzMyMjk1NzI3OSIsIi03LjIwNzA0MDU0RSszMjI5NTcyODYiLCI3LjIwNzA0MDU0RSszMjI5NTcyODYiLCItNC4yNTMzMDQ5MkUrMzIyOTU3MjkxIiwiLTguMTg4NjU1MjdFLTMyMjk1NzI4MyIsIjAiLCI1OTAxNS45NzA1IiwiNC4wMTA2MzQ4OEUtMzQiKTsKKyAgbWF0aHRlc3QoMTE0LGRlZiwiMTY0MTE0NzBFKzU3ODE5MjAwOCIsIjQ5NzQ3MC4wMDVFLTM3NzQ3MzYyMSIsIjEuNjQxMTQ3MDBFKzU3ODE5MjAxNSIsIjEuNjQxMTQ3MDBFKzU3ODE5MjAxNSIsIjguMTY0MjE0MDZFKzIwMDcxODM5OSIsIjMuMjk4OTg2ODRFKzk1NTY2NTYzMCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxMTUsZGVmLCItMTA3LjM1MzU0NEUrNjA5Njg5ODA4IiwiLTY1OS41MDEzNkUtNDU2NzExNzQzIiwiLTEuMDczNTM1NDRFKzYwOTY4OTgxMCIsIi0xLjA3MzUzNTQ0RSs2MDk2ODk4MTAiLCI3LjA3OTk4MDgzRSsxNTI5NzgwNjkiLCIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTE2LGRlZiwiNzg2LjEzNDE2MyIsIi01My4wMjkyMjc1RS02NjQ0MTk3NjgiLCI3ODYuMTM0MTYzIiwiNzg2LjEzNDE2MyIsIi00LjE2ODgwODc0RS02NjQ0MTk3NjQiLCItMS40ODI0NTQ0OUUrNjY0NDE5NzY5IiwiIiwiIiwiMy4zMzA1NTUzMkUtMTUiKTsKKyAgbWF0aHRlc3QoMTE3LGRlZiwiMjMuNTQxNDcxNCIsIjUwMDA3ODYuOTEiLCI1MDAwODEwLjQ1IiwiLTUwMDA3NjMuMzciLCIxMTc3MjU4ODIiLCIwLjAwMDAwNDcwNzU1MzQiLCIwIiwiMjMuNTQxNDcxNCIsIjQuNDg5NTYxOEUrNjg2MDI0NyIpOworICBtYXRodGVzdCgxMTgsZGVmLCItNjk3NzUuNjExMyIsIjU2MTI5MjEyMC4iLCI1NjEyMjIzNDQiLCItNTYxMzYxODk2IiwiLTMuOTE2NDUwMDhFKzEzIiwiLTAuMDAwMTI0MzEyNDczIiwiMCIsIi02OTc3NS42MTEzIiwiIik7CisgIG1hdGh0ZXN0KDExOSxkZWYsIjkxOTA0My44NzEiLCItNzE2MDY2MTMuNyIsIi03MDY4NzU2OS44IiwiNzI1MjU2NTcuNiIsIi02LjU4MDk2MTk0RSsxMyIsIi0wLjAxMjgzNDYyMjciLCIwIiwiOTE5MDQzLjg3MSIsIjMuMDU4NjI0MjlFLTQyNzAxNDMxNyIpOworICBtYXRodGVzdCgxMjAsZGVmLCItMjc2NjcuMTkxNSIsIi0yOTM0NTUuMTA3RS03ODkxODE5MjQiLCItMjc2NjcuMTkxNSIsIi0yNzY2Ny4xOTE1IiwiOC4xMTkwNzg2NEUtNzg5MTgxOTE1IiwiOS40MjgwODMxNUUrNzg5MTgxOTIyIiwiIiwiIiwiLTQuNzIxNzY5MzhFLTE0Iik7CisgIG1hdGh0ZXN0KDEyMSxkZWYsIi05MDg2MDM2MjUuIiwiLTk4Mi40MDkyNzNFKzQ0OTQ0MTEzNCIsIi05LjgyNDA5MjczRSs0NDk0NDExMzYiLCI5LjgyNDA5MjczRSs0NDk0NDExMzYiLCI4LjkyNjIwNjI3RSs0NDk0NDExNDUiLCI5LjI0ODcyODFFLTQ0OTQ0MTEyOSIsIjAiLCItOTA4NjAzNjI1IiwiMi42MDc2ODYzMkUtOTAiKTsKKyAgbWF0aHRlc3QoMTIyLGRlZiwiODQ3LjExMzM1MSIsIjUuNzE1MTEyNjgiLCI4NTIuODI4NDY0IiwiODQxLjM5ODIzOCIsIjQ4NDEuMzQ4MjUiLCIxNDguMjIzMzg2IiwiMTQ4IiwiMS4yNzY2NzQzNiIsIjMuNjk1Mjk1MzhFKzE3Iik7CisgIG1hdGh0ZXN0KDEyMyxkZWYsIi05OTIxNDA0NzUiLCIzLjgyOTE4MjE4IiwiLTk5MjE0MDQ3MSIsIi05OTIxNDA0NzkiLCItMy43OTkwODY2M0UrOSIsIi0yNTkwOTk4MzYiLCItMjU5MDk5ODM2IiwiLTAuMTQ3ODc3NTIiLCI5LjY4OTMwNTk1RSszNSIpOworICBtYXRodGVzdCgxMjQsZGVmLCItMTI2MDY0MzcuNSIsIjI2ODEyMzE0NUUrMzYyNzk4ODU4IiwiMi42ODEyMzE0NUUrMzYyNzk4ODY2IiwiLTIuNjgxMjMxNDVFKzM2Mjc5ODg2NiIsIi0zLjM4MDA3NzY3RSszNjI3OTg4NzMiLCItNC43MDE3MzQxNkUtMzYyNzk4ODYwIiwiMCIsIi0xMjYwNjQzNy41IiwiLTIuMDAzNDQzNjJFKzIxIik7CisgIG1hdGh0ZXN0KDEyNSxkZWYsIjM3OTk0NzAuNjQiLCItMjY0LjcwMzk5MiIsIjM3OTkyMDUuOTQiLCIzNzk5NzM1LjM0IiwiLTEuMDA1NzM1MDVFKzkiLCItMTQzNTMuNjU4MyIsIi0xNDM1MyIsIjE3NC4yNDI4MjQiLCIyLjM2MjU0NjZFLTE3NDQiKTsKKyAgbWF0aHRlc3QoMTI2LGRlZiwiLTguMTEwNzAyNDciLCItOTMxMjg0MDU2LkUtNjU0Mjg4OTc0IiwiLTguMTEwNzAyNDciLCItOC4xMTA3MDI0NyIsIjcuNTUzMzY3ODlFLTY1NDI4ODk2NSIsIjguNzA5MTYwNjdFKzY1NDI4ODk2NSIsIiIsIiIsIi02LjU4Mzc1NjYyRS05Iik7CisgIG1hdGh0ZXN0KDEyNyxkZWYsIi0yNDI2NjAxNzcuIiwiLTYuMDk4MzI3MTVFLTk0Mzc0MjQxNSIsIi0yNDI2NjAxNzciLCItMjQyNjYwMTc3IiwiMS40Nzk4MjExNUUtOTQzNzQyNDA2IiwiMy45NzkxMjY5MkUrOTQzNzQyNDIyIiwiIiwiIiwiNC44OTc4ODkwMUUtNTEiKTsKKyAgbWF0aHRlc3QoMTI4LGRlZiwiNzYuMTQ2MzgwMyIsIi00NS42NzU4MDA2RS02MzY5MDc5OTYiLCI3Ni4xNDYzODAzIiwiNzYuMTQ2MzgwMyIsIi0zLjQ3ODA0Njg4RS02MzY5MDc5OTMiLCItMS42NjcxMDU1NEUrNjM2OTA3OTk2IiwiIiwiIiwiMy45MDYxOTI4N0UtMTAiKTsKKyAgbWF0aHRlc3QoMTI5LGRlZiwiNzYxMTg1Ljg2MiIsIi03MDg3ODQ3MC45RSsyMjEyMTQ3MTIiLCItNy4wODc4NDcwOUUrMjIxMjE0NzE5IiwiNy4wODc4NDcwOUUrMjIxMjE0NzE5IiwiLTUuMzk1MTY5MDBFKzIyMTIxNDcyNSIsIi0xLjA3MzkzMDk5RS0yMjEyMTQ3MTQiLCIwIiwiNzYxMTg1Ljg2MiIsIjYuNzU0MDYxNDRFLTQyIik7CisgIG1hdGh0ZXN0KDEzMCxkZWYsIjYyMDM2MDYuNTQiLCItMTk1LjkyNzQ4RS04MzM1MTIwNjEiLCI2MjAzNjA2LjU0IiwiNjIwMzYwNi41NCIsIi0xLjIxNTQ1NzAwRS04MzM1MTIwNTIiLCItMy4xNjYyNzY5RSs4MzM1MTIwNjUiLCIiLCIiLCIyLjU5ODQzMjkyRS0xNCIpOworICBtYXRodGVzdCgxMzEsZGVmLCItMTYzMjc0ODM3LiIsIjk1LjA0NDg1NTBFKzg4Nzg3NjUzMyIsIjkuNTA0NDg1NTBFKzg4Nzg3NjUzNCIsIi05LjUwNDQ4NTUwRSs4ODc4NzY1MzQiLCItMS41NTE4NDMzMkUrODg3ODc2NTQzIiwiLTEuNzE3ODcxMzlFLTg4Nzg3NjUyNyIsIjAiLCItMTYzMjc0ODM3IiwiMS4zNDY0NTczMUUrODIiKTsKKyAgbWF0aHRlc3QoMTMyLGRlZiwiMi4zODYzODE5MCIsIi04MDc5ODYxNzkuIiwiLTgwNzk4NjE3NyIsIjgwNzk4NjE4MSIsIi0xLjkyODE2MzU5RSs5IiwiLTIuOTUzNDkzNDdFLTkiLCIwIiwiMi4zODYzODE5MCIsIjEuMTkwMjkzMDVFLTMwNTIwODY1NiIpOworICBtYXRodGVzdCgxMzMsZGVmLCItMTA5MDIyMjk2RS04MTE5ODExNTgiLCI3LjE5Njg1NjgwIiwiNy4xOTY4NTY4MCIsIi03LjE5Njg1NjgwIiwiLTcuODQ2MTc4NTJFLTgxMTk4MTE1MCIsIi0xLjUxNDg1OTg4RS04MTE5ODExNTEiLCIwIiwiLTEuMDkwMjIyOTZFLTgxMTk4MTE1MCIsIiIpOworICBtYXRodGVzdCgxMzQsZGVmLCItNTU5MjUwLjc4MEUtMjczNzEwNDIxIiwiLTM5Mzc4MDgxMS4iLCItMzkzNzgwODExIiwiMzkzNzgwODExIiwiMi4yMDIyMjIyNkUtMjczNzEwNDA3IiwiMS40MjAyMDgzMUUtMjczNzEwNDI0IiwiMCIsIi01LjU5MjUwNzgwRS0yNzM3MTA0MTYiLCIiKTsKKyAgbWF0aHRlc3QoMTM1LGRlZiwiLTg4MDIxLjk5NjZFKzU1NTMzNDY0MiIsIjc1OTk2ODYuNjRFKzgxODg4NDA1MyIsIjcuNTk5Njg2NjRFKzgxODg4NDA1OSIsIi03LjU5OTY4NjY0RSs4MTg4ODQwNTkiLCIiLCItMS4xNTgyMzE5MkUtMjYzNTQ5NDEzIiwiMCIsIi04LjgwMjE5OTY2RSs1NTUzMzQ2NDYiLCIiKTsKKyAgbWF0aHRlc3QoMTM2LGRlZiwiMTk0LjMxNzY0OEUtMTk3NDUwMDA5IiwiLTkzMC45NzkwNjQiLCItOTMwLjk3OTA2NCIsIjkzMC45NzkwNjQiLCItMS44MDkwNTY2MkUtMTk3NDUwMDA0IiwiLTIuMDg3MjM5NzJFLTE5NzQ1MDAxMCIsIjAiLCIxLjk0MzE3NjQ4RS0xOTc0NTAwMDciLCIiKTsKKyAgbWF0aHRlc3QoMTM3LGRlZiwiOTQ5NTQ3OS42NSIsIjc0MDU2OTcuOTYiLCIxNjkwMTE3Ny42IiwiMjA4OTc4MS42OSIsIjcuMDMyMDY1NDNFKzEzIiwiMS4yODIxODU2NSIsIjEiLCIyMDg5NzgxLjY5IiwiMS4wMTM1NDQ2RSs1MTY3MzM4MyIpOworICBtYXRodGVzdCgxMzgsZGVmLCItMTY1Ni4yODkyNSIsIi0xNjMwNTA1MTFFLTY4Mjg4MjM4MCIsIi0xNjU2LjI4OTI1IiwiLTE2NTYuMjg5MjUiLCIyLjcwMDU4ODA5RS02ODI4ODIzNjkiLCIxLjAxNTgxMzU5RSs2ODI4ODIzNzUiLCIiLCIiLCIzLjY0NTI1MjY1RS03Iik7CisgIG1hdGh0ZXN0KDEzOSxkZWYsIjk1NTgxLjM3ODRFKzY0MjYyMTQ5IiwiLTk5LjI4NzkzNjUiLCI5LjU1ODEzNzg0RSs2NDI2MjE1MyIsIjkuNTU4MTM3ODRFKzY0MjYyMTUzIiwiLTkuNDkwMDc3ODNFKzY0MjYyMTU1IiwiLTkuNjI2Njg1OTZFKzY0MjYyMTUxIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE0MCxkZWYsIjY0Mzc2MS40NTIiLCIzLjczNDQ2OTM5IiwiNjQzNzY1LjE4NiIsIjY0Mzc1Ny43MTgiLCIyNDA0MTA3LjQ0IiwiMTcyMzgzLjY0NyIsIjE3MjM4MyIsIjIuNDE1MTQzNjMiLCIxLjcxNzUxMjM2RSsyMyIpOworICBtYXRodGVzdCgxNDEsZGVmLCI3OTYwLjQ5ODY2RS0xMjk4Mjc0MjMiLCIzMjIwLjIyODUwIiwiMzIyMC4yMjg1MCIsIi0zMjIwLjIyODUwIiwiMi41NjM0NjI0N0UtMTI5ODI3NDE2IiwiMi40NzIwMjkxM0UtMTI5ODI3NDIzIiwiMCIsIjcuOTYwNDk4NjZFLTEyOTgyNzQyMCIsIiIpOworICBtYXRodGVzdCgxNDIsZGVmLCItNjM1Ni42NDExMkUtNzA3MjAzODE4IiwiMTgwNTA1NC45OCIsIjE4MDUwNTQuOTgiLCItMTgwNTA1NC45OCIsIi0xLjE0NzQwODY3RS03MDcyMDM4MDgiLCItMy41MjE1Nzc1NkUtNzA3MjAzODIxIiwiMCIsIi02LjM1NjY0MTEyRS03MDcyMDM4MTUiLCIiKTsKKyAgbWF0aHRlc3QoMTQzLGRlZiwiMi4zOTA0MDQyIiwiODQ3Ni41MjAwNiIsIjg0NzguOTEwNDYiLCItODQ3NC4xMjk2NiIsIjIwMjYyLjMwOTIiLCIwLjAwMDI4MjAwMzAxMyIsIjAiLCIyLjM5MDQwNDIiLCIyLjAwMjUxNzUyRSszMjA4Iik7CisgIG1hdGh0ZXN0KDE0NCxkZWYsIi03MTMyOTguNjU4IiwiLTk1Ny43ODI3MjkiLCItNzE0MjU2LjQ0MSIsIi03MTIzNDAuODc1IiwiNjgzMTg1MTM1IiwiNzQ0LjczOTUyOCIsIjc0NCIsIi03MDguMzA3NjI0IiwiMy42ODEyMjMyMUUtNTYwOCIpOworICBtYXRodGVzdCgxNDUsZGVmLCI2MDc3NzkyMzMuRS04MjA0OTczNjUiLCItMjAuMTE4ODc0MkUtODU3MzE4MzIzIiwiNi4wNzc3OTIzM0UtODIwNDk3MzU3IiwiNi4wNzc3OTIzM0UtODIwNDk3MzU3IiwiIiwiLTMuMDIwOTQwNTdFKzM2ODIwOTY1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE0NixkZWYsIi0yMDU4ODgyNTEiLCItOTA4Ljc5MjkyMkUrMjUwNjgwNjEzIiwiLTkuMDg3OTI5MjJFKzI1MDY4MDYxNSIsIjkuMDg3OTI5MjJFKzI1MDY4MDYxNSIsIjEuODcxMDk3ODVFKzI1MDY4MDYyNCIsIjIuMjY1NTEzMzZFLTI1MDY4MDYwOCIsIjAiLCItMjA1ODg4MjUxIiwiLTEuNTA0MjM1OEUtNzUiKTsKKyAgbWF0aHRlc3QoMTQ3LGRlZiwiNTE1NDIzOTkuMSIsIi0yMzIxMi4yNDE0IiwiNTE1MTkxODYuOSIsIjUxNTY1NjExLjMiLCItMS4xOTY0MTQ2MUUrMTIiLCItMjIyMC40ODM1IiwiLTIyMjAiLCIxMTIyMy4xOTIwIiwiMS43MTY0MTM0OEUtMTc5MDE1Iik7CisgIG1hdGh0ZXN0KDE0OCxkZWYsIjQuNDQyODcyMzAiLCIxNTg5MjMwMjMiLCIxNTg5MjMwMjciLCItMTU4OTIzMDE5IiwiNzA2MDc0Njk3IiwiMi43OTU2MTI3NUUtOCIsIjAiLCI0LjQ0Mjg3MjMwIiwiNy4xMjU3MzQxNkUrMTAyOTI4NjkzIik7CisgIG1hdGh0ZXN0KDE0OSxkZWYsIi03OTEyMzY4Mi42IiwiLTMuODU3MTc3MCIsIi03OTEyMzY4Ni41IiwiLTc5MTIzNjc4LjgiLCIzMDUxOTQwNDkiLCIyMDUxMzM2NS44IiwiMjA1MTMzNjUiLCItMi45MjkzOTUwIiwiMi41NTEzNzM0NUUtMzIiKTsKKyAgbWF0aHRlc3QoMTUwLGRlZiwiLTgwLjMzMjQzNDdFLTU2OTcxNTAzMCIsIjg4MzE0Mi4zNTEiLCI4ODMxNDIuMzUxIiwiLTg4MzE0Mi4zNTEiLCItNy4wOTQ0OTc1MkUtNTY5NzE1MDIzIiwiLTkuMDk2MjA0NTVFLTU2OTcxNTAzNSIsIjAiLCItOC4wMzMyNDM0N0UtNTY5NzE1MDI5IiwiIik7CisgIG1hdGh0ZXN0KDE1MSxkZWYsIjEzNjM3LjQ4MyIsIi01Mjc5OC41NjMxIiwiLTM5MTYxLjA4MDEiLCI2NjQzNi4wNDYxIiwiLTcyMDAzOTUwNyIsIi0wLjI1ODI5MjY5MiIsIjAiLCIxMzYzNy40ODMiLCIxLjQ3MTYzNzkxRS0yMTgzMTAiKTsKKyAgbWF0aHRlc3QoMTUyLGRlZiwiNi40MjkzNDg0M0UtMjc2NDc2NDU4IiwiODQwNTc0NDAuMEUtMzg4MDM5NzgyIiwiNi40MjkzNDg0M0UtMjc2NDc2NDU4IiwiNi40MjkzNDg0M0UtMjc2NDc2NDU4IiwiNS40MDQzNDU3MEUtNjY0NTE2MjMyIiwiNy42NDg3NTU5M0UrMTExNTYzMzE2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE1MyxkZWYsIi01LjY0MTMzMDg3IiwiLTE3NDAxMjk3LiIsIi0xNzQwMTMwMi42IiwiMTc0MDEyOTEuNCIsIjk4MTY2NDczLjkiLCIzLjI0MTkwMjUzRS03IiwiMCIsIi01LjY0MTMzMDg3IiwiLTEuMjU5MDg5MTZFLTEzMDc1MDE0Iik7CisgIG1hdGh0ZXN0KDE1NCxkZWYsIjk1NDY5LjcwNTdFKzg2NTczMzgyNCIsIjE5OC44Mjk3NDkiLCI5LjU0Njk3MDU3RSs4NjU3MzM4MjgiLCI5LjU0Njk3MDU3RSs4NjU3MzM4MjgiLCIxLjg5ODIyMTc2RSs4NjU3MzM4MzEiLCI0LjgwMTU4MDU2RSs4NjU3MzM4MjYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTU1LGRlZiwiLTQxNjQ2Ni4yMDkiLCItOTMwMTUzNDI3IiwiLTkzMDU2OTg5MyIsIjkyOTczNjk2MSIsIjMuODczNzc0NzJFKzE0IiwiMC4wMDA0NDc3MzkyNjIiLCIwIiwiLTQxNjQ2Ni4yMDkiLCIiKTsKKyAgbWF0aHRlc3QoMTU2LGRlZiwiLTE1NDE3MzMuODUiLCItMS45OTIwODcwOCIsIi0xNTQxNzM1Ljg0IiwiLTE1NDE3MzEuODYiLCIzMDcxMjY4LjA4IiwiNzczOTI4Ljk0NCIsIjc3MzkyOCIsIi0xLjg4MDM0OTc2IiwiNC4yMDcwODQwMUUtMTMiKTsKKyAgbWF0aHRlc3QoMTU3LGRlZiwiLTM5MTUyNjkxLjgiLCItNjQ1MTMxNzQ4LiIsIi02ODQyODQ0NDAiLCI2MDU5NzkwNTYiLCIyLjUyNTg2NDQ1RSsxNiIsIjAuMDYwNjg5NDUxMyIsIjAiLCItMzkxNTI2OTEuOCIsIiIpOworICBtYXRodGVzdCgxNTgsZGVmLCIxMTMuOTM5OTc5IiwiLTU4MjgyNTUwLjQiLCItNTgyODI0MzYuNSIsIjU4MjgyNjY0LjMiLCItNi42NDA3MTI1N0UrOSIsIi0wLjAwMDAwMTk1NDk1ODciLCIwIiwiMTEzLjkzOTk3OSIsIjIuMTA2NTU3RS0xMTk4NjgzMzAiKTsKKyAgbWF0aHRlc3QoMTU5LGRlZiwiLTMyNDk3MS43MzYiLCItOTUxNy4xNTE1NCIsIi0zMzQ0ODguODg4IiwiLTMxNTQ1NC41ODUiLCIzLjA5MjgwNTI2RSs5IiwiMzQuMTQ1OTAzMyIsIjM0IiwiLTEzODguNTgzNjQiLCItNS44Mjc5NTI2M0UtNTI0NTciKTsKKyAgbWF0aHRlc3QoMTYwLGRlZiwiLTc2Ljk0MzY3NDQiLCItOTU0ODEyMi43NUUtMjczNTk5NzI4IiwiLTc2Ljk0MzY3NDQiLCItNzYuOTQzNjc0NCIsIjcuMzQ2Njc2NDhFLTI3MzU5OTcyMCIsIjguMDU4NTEzMzJFKzI3MzU5OTcyMiIsIiIsIiIsIjEuMzc0ODk4OTVFLTE5Iik7CisgIG1hdGh0ZXN0KDE2MSxkZWYsIi00MzAzOTMuMjgyIiwiLTcwLjI1NTE1MDUiLCItNDMwNDYzLjUzNyIsIi00MzAzMjMuMDI3IiwiMzAyMzczNDQuOCIsIjYxMjYuMTQ1NjEiLCI2MTI2IiwiLTEwLjIzMDAzNzAiLCI0LjI2MDA2NDA5RS0zOTUiKTsKKyAgbWF0aHRlc3QoMTYyLGRlZiwiLTMzMDgwNTEuOTAiLCItMzQ5NDMzNzk5LkUrMzk3ODEzMTg4IiwiLTMuNDk0MzM3OTlFKzM5NzgxMzE5NiIsIjMuNDk0MzM3OTlFKzM5NzgxMzE5NiIsIjEuMTU1OTQ1MTRFKzM5NzgxMzIwMyIsIjkuNDY2ODkxNjFFLTM5NzgxMzE5MSIsIjAiLCItMzMwODA1MS45MCIsIi0yLjc2MjM3NzY4RS0yMCIpOworICBtYXRodGVzdCgxNjMsZGVmLCIyMy4xNTQzMjEyRS02NTU4MjI3MTIiLCI1ODQ4LjIwODUzIiwiNTg0OC4yMDg1MyIsIi01ODQ4LjIwODUzIiwiMS4zNTQxMTI5OUUtNjU1ODIyNzA3IiwiMy45NTkyMTYwN0UtNjU1ODIyNzE1IiwiMCIsIjIuMzE1NDMyMTJFLTY1NTgyMjcxMSIsIiIpOworICBtYXRodGVzdCgxNjQsZGVmLCItMTc0LjI2MTMwOEUtODI5MDIwNzciLCItMjAwMDk2MjA0LiIsIi0yMDAwOTYyMDQiLCIyMDAwOTYyMDQiLCIzLjQ4NjkwMjYyRS04MjkwMjA2NyIsIjguNzA4ODc2MjZFLTgyOTAyMDg0IiwiMCIsIi0xLjc0MjYxMzA4RS04MjkwMjA3NSIsIiIpOworICBtYXRodGVzdCgxNjUsZGVmLCItNTA2NjkxMDUuMiIsIjkxMDU3ODkuMDFFKzYwOTg4OTcwMCIsIjkuMTA1Nzg5MDFFKzYwOTg4OTcwNiIsIi05LjEwNTc4OTAxRSs2MDk4ODk3MDYiLCItNC42MTM4MjE4MUUrNjA5ODg5NzE0IiwiLTUuNTY0NDkzNjZFLTYwOTg4OTcwMCIsIjAiLCItNTA2NjkxMDUuMiIsIi0yLjIwMTM1MDA4RSs2OSIpOworICBtYXRodGVzdCgxNjYsZGVmLCI0MjQ3Njg4NTYuIiwiLTk3MS43MTc1NyIsIjQyNDc2Nzg4NCIsIjQyNDc2OTgyOCIsIi00LjEyNzU1MzYxRSsxMSIsIi00MzcxMzIuMDEyIiwiLTQzNzEzMiIsIjExLjE5MDc2IiwiMi43MjY1MTQ3M0UtODM4NyIpOworICBtYXRodGVzdCgxNjcsZGVmLCI3MTgxLjI3NjciLCI5OTkxMTcuOTE4IiwiMTAwNjI5OS4xOSIsIi05OTE5MzYuNjQxIiwiNy4xNzQ5NDIyM0UrOSIsIjAuMDA3MTg3NjE2NzciLCIwIiwiNzE4MS4yNzY3IiwiMy4wOTY1NTEyNEUrMzg1MjgwMCIpOworICBtYXRodGVzdCgxNjgsZGVmLCI4MDk2NDE3LjA3RS00MzM2OTQ1MjgiLCItNjguNDg2MzM2MyIsIi02OC40ODYzMzYzIiwiNjguNDg2MzM2MyIsIi01LjU0NDkzOTQyRS00MzM2OTQ1MjAiLCItMS4xODIxOTQ1MUUtNDMzNjk0NTIzIiwiMCIsIjguMDk2NDE3MDdFLTQzMzY5NDUyMiIsIiIpOworICBtYXRodGVzdCgxNjksZGVmLCIxMjM2Mjg3LjUiLCItNzExOS45NzI5OUUtMTc2MjAwNDk4IiwiMTIzNjI4Ny41MCIsIjEyMzYyODcuNTAiLCItOC44MDIzMzM2MUUtMTc2MjAwNDg5IiwiLTEuNzM2MzY1NDRFKzE3NjIwMDUwMCIsIiIsIiIsIjIuMjY1NDk3ODRFLTQzIik7CisgIG1hdGh0ZXN0KDE3MCxkZWYsIi03NTI5OTU4MzNFLTY1NDQwMTA2NyIsIi0xNS4yNzM2OTMwRSs4MDM5Mzk5ODMiLCItMS41MjczNjkzMEUrODAzOTM5OTg0IiwiMS41MjczNjkzMEUrODAzOTM5OTg0IiwiMS4xNTAxMDI3MkUrMTQ5NTM4OTI2IiwiIiwiMCIsIi03LjUyOTk1ODMzRS02NTQ0MDEwNTkiLCIiKTsKKyAgbWF0aHRlc3QoMTcxLGRlZiwiNzAyOTkyLjQ1OSIsIi0zMTIuNjg5NDc0IiwiNzAyNjc5Ljc3MCIsIjcwMzMwNS4xNDgiLCItMjE5ODE4MzQyIiwiLTIyNDguMjEyNzQiLCItMjI0OCIsIjY2LjUyMTQ0OCIsIjguMDI0OTMzMjJFLTE4MzEiKTsKKyAgbWF0aHRlc3QoMTcyLGRlZiwiLTQ0MTQuMzg4MDUiLCItMTc2ODAuNDYzMEUtNTg0MzY0NTM2IiwiLTQ0MTQuMzg4MDUiLCItNDQxNC4zODgwNSIsIjcuODA0ODQyNDZFLTU4NDM2NDUyOSIsIjIuNDk2NzYwNDRFKzU4NDM2NDUzNSIsIiIsIiIsIjUuMTMxNjczMTJFLTgiKTsKKyAgbWF0aHRlc3QoMTczLGRlZiwiOS40NjM1MDgwNyIsIjc4MjYuNjU0MjQiLCI3ODM2LjExNzc1IiwiLTc4MTcuMTkwNzMiLCI3NDA2Ny42MDU2IiwiMC4wMDEyMDkxMzgzOSIsIjAiLCI5LjQ2MzUwODA3IiwiMy42MzI3MTQ5NUUrNzYzOSIpOworICBtYXRodGVzdCgxNzQsZGVmLCIyMDc4MTUzLjciLCItMTY5MzQ2MDcuM0UrMjMzNTk0NDM5IiwiLTEuNjkzNDYwNzNFKzIzMzU5NDQ0NiIsIjEuNjkzNDYwNzNFKzIzMzU5NDQ0NiIsIi0zLjUxOTI3MTY4RSsyMzM1OTQ0NTIiLCItMS4yMjcxNjM4RS0yMzM1OTQ0NDAiLCIwIiwiMjA3ODE1My43IiwiMi4zMTU0OTkzOUUtMTMiKTsKKyAgbWF0aHRlc3QoMTc1LGRlZiwiLTkzNTkuNzQ2MjkiLCI3LjA3NzYxNzg4RSsyNTI0NTc2OTYiLCI3LjA3NzYxNzg4RSsyNTI0NTc2OTYiLCItNy4wNzc2MTc4OEUrMjUyNDU3Njk2IiwiLTYuNjI0NDcwNzdFKzI1MjQ1NzcwMCIsIi0xLjMyMjQ0MzAxRS0yNTI0NTc2OTMiLCIwIiwiLTkzNTkuNzQ2MjkiLCItNi4yOTI4NjY3N0UrMjciKTsKKyAgbWF0aHRlc3QoMTc2LGRlZiwiNjYuMjMxOTI4NEUrNzMwNDY4NDc5IiwiMjUuOTM5MTY4NUUrMjIxMTQ3MDQ0IiwiNi42MjMxOTI4NEUrNzMwNDY4NDgwIiwiNi42MjMxOTI4NEUrNzMwNDY4NDgwIiwiMS43MTgwMDExNUUrOTUxNjE1NTI2IiwiMi41NTMzNTU4OEUrNTA5MzIxNDM1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE3NyxkZWYsIjMxNzk5NzA4OC5FLTkwOTY4NzQyIiwiLTk3NzQyNi40NjEiLCItOTc3NDI2LjQ2MSIsIjk3NzQyNi40NjEiLCItMy4xMDgxODc2OEUtOTA5Njg3MjgiLCItMy4yNTM0MTE5RS05MDk2ODc0MCIsIjAiLCIzLjE3OTk3MDg4RS05MDk2ODczNCIsIiIpOworICBtYXRodGVzdCgxNzgsZGVmLCIyMjc0NzMzODYiLCItNjc1OS42MTM5MCIsIjIyNzQ2NjYyNiIsIjIyNzQ4MDE0NiIsIi0xLjUzNzYzMjI2RSsxMiIsIi0zMzY1MS44MzEyIiwiLTMzNjUxIiwiNTYxOC42NTExMCIsIjEuNDA5OTI2MjdFLTU2NDkzIik7CisgIG1hdGh0ZXN0KDE3OSxkZWYsIi0zOTIwMTkuNDYyIiwiLTI0NTQ1Ni41MDMiLCItNjM3NDc1Ljk2NSIsIi0xNDY1NjIuOTU5IiwiOS42MjIzNzI2M0UrMTAiLCIxLjU5NzEwMzU5IiwiMSIsIi0xNDY1NjIuOTU5IiwiLTMuMDg2NTY1MzNFLTEzNzI5MTciKTsKKyAgbWF0aHRlc3QoMTgwLGRlZiwiLTM2MTk1NTYuMjhFKzU4NzY3MzU4MyIsIi0zLjQ1MjM2OTcyIiwiLTMuNjE5NTU2MjhFKzU4NzY3MzU4OSIsIi0zLjYxOTU1NjI4RSs1ODc2NzM1ODkiLCIxLjI0OTYwNDY1RSs1ODc2NzM1OTAiLCIxLjA0ODQyNjYxRSs1ODc2NzM1ODkiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTgxLGRlZiwiLTI0OS40MDA3MDRFLTkyMzkzMDg0OCIsIjgzMTEwMi45MTkiLCI4MzExMDIuOTE5IiwiLTgzMTEwMi45MTkiLCItMi4wNzI3NzY1M0UtOTIzOTMwODQwIiwiLTMuMDAwODQwMTlFLTkyMzkzMDg1MiIsIjAiLCItMi40OTQwMDcwNEUtOTIzOTMwODQ2IiwiIik7CisgIG1hdGh0ZXN0KDE4MixkZWYsIjY1MjM0LjI3MzlFKzE1NDk0OTkxNCIsIi02OTQ1ODE4OTUiLCI2LjUyMzQyNzM5RSsxNTQ5NDk5MTgiLCI2LjUyMzQyNzM5RSsxNTQ5NDk5MTgiLCItNC41MzEwNTQ1NkUrMTU0OTQ5OTI3IiwiLTkuMzkxODc2NTJFKzE1NDk0OTkwOSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxODMsZGVmLCI0NS4yMzE2MjEzIiwiLTg4Nzc1MDgzLjQiLCItODg3NzUwMzguMiIsIjg4Nzc1MTI4LjYiLCItNC4wMTU0NDA5NUUrOSIsIi01LjA5NTA4MDY5RS03IiwiMCIsIjQ1LjIzMTYyMTMiLCIxLjkyMzE0MjU0RS0xNDY5NjIwMTUiKTsKKyAgbWF0aHRlc3QoMTg0LGRlZiwiMzMxMTAwMzc1LiIsIjQ0Mi4zNDMzNzgiLCIzMzExMDA4MTciLCIzMzEwOTk5MzMiLCIxLjQ2NDYwMDU4RSsxMSIsIjc0ODUxNC4zNyIsIjc0ODUxNCIsIjE2My43NTk3MDgiLCI2LjY0MDExMDQzRSszNzY1Iik7CisgIG1hdGh0ZXN0KDE4NSxkZWYsIjgxLjgxNjI3NjUiLCI1LjYxMjM5NTE1RSs0NjczNzIxNjMiLCI1LjYxMjM5NTE1RSs0NjczNzIxNjMiLCItNS42MTIzOTUxNUUrNDY3MzcyMTYzIiwiNC41OTE4NTI3M0UrNDY3MzcyMTY1IiwiMS40NTc3NzgyNkUtNDY3MzcyMTYyIiwiMCIsIjgxLjgxNjI3NjUiLCIyLjk5OTQyNjc3RSsxMSIpOworICBtYXRodGVzdCgxODYsZGVmLCItNTczOC4xMzA2OUUrNzg5NDY0MDc4IiwiMzM5Njk3MTUuMCIsIi01LjczODEzMDY5RSs3ODk0NjQwODEiLCItNS43MzgxMzA2OUUrNzg5NDY0MDgxIiwiLTEuOTQ5MjI2NjRFKzc4OTQ2NDA4OSIsIi0xLjY4OTE5MDEyRSs3ODk0NjQwNzQiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTg3LGRlZiwiLTc0MTMuMDM5MTEiLCIyLjcwNjMwMzIwRS0yNTQ4NTgyNjQiLCItNzQxMy4wMzkxMSIsIi03NDEzLjAzOTExIiwiLTIuMDA2MTkzMTVFLTI1NDg1ODI2MCIsIi0yLjczOTE3NTM5RSsyNTQ4NTgyNjciLCIiLCIiLCItNC4wNzM2OTg0MkUrMTEiKTsKKyAgbWF0aHRlc3QoMTg4LGRlZiwiLTQxNzY5Ni4xODIiLCIyNzQwMC42MDAyIiwiLTM5MDI5NS41ODIiLCItNDQ1MDk2Ljc4MiIsIi0xLjE0NDUxMjYxRSsxMCIsIi0xNS4yNDQwNTIzIiwiLTE1IiwiLTY2ODcuMTc5MCIsIi0xLjU4MDIwMzM0RSsxNTQwMTciKTsKKyAgbWF0aHRlc3QoMTg5LGRlZiwiNjguODUzODczNUUrNjU1NjQ3Mjg3IiwiMzE5OC4xNzkzM0UtMTMyNDU0ODI2IiwiNi44ODUzODczNUUrNjU1NjQ3Mjg4IiwiNi44ODUzODczNUUrNjU1NjQ3Mjg4IiwiMi4yMDIwNzAzNUUrNTIzMTkyNDY2IiwiMi4xNTI5MDg0NkUrNzg4MTAyMTExIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE5MCxkZWYsIi02ODE3LjA0MjQ2IiwiNDM0NDIwLjQzOSIsIjQyNzYwMy4zOTciLCItNDQxMjM3LjQ4MSIsIi0yLjk2MTQ2MjU4RSs5IiwiLTAuMDE1NjkyMjY5MiIsIjAiLCItNjgxNy4wNDI0NiIsIjUuOTQxNDM1MThFKzE2NjUzOTAiKTsKKyAgbWF0aHRlc3QoMTkxLGRlZiwiODU3OC4yNzUxMSIsIjY0NzA0Mi4zNDFFLTQ5MDkyNDMzNCIsIjg1NzguMjc1MTEiLCI4NTc4LjI3NTExIiwiNS41NTA1MDcyMUUtNDkwOTI0MzI1IiwiMS4zMjU3NjcyRSs0OTA5MjQzMzIiLCIiLCIiLCIzLjk4NDczODQ2RSsyMyIpOworICBtYXRodGVzdCgxOTIsZGVmLCI0MTI0LjExNjE1RSs3MzMxMDk0MjQiLCI1OTczODU4MjhFKzM3NTkyODc0NSIsIjQuMTI0MTE2MTVFKzczMzEwOTQyNyIsIjQuMTI0MTE2MTVFKzczMzEwOTQyNyIsIiIsIjYuOTAzNjA1NkUrMzU3MTgwNjczIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE5MyxkZWYsIjEwMi43MTQ0MDAiLCItOTE5MDE3LjQ2OCIsIi05MTg5MTQuNzU0IiwiOTE5MTIwLjE4MiIsIi05NDM5NjMyNy44IiwiLTAuMDAwMTExNzY1NDQ5IiwiMCIsIjEwMi43MTQ0MDAiLCI0LjA0Mjk1Njg5RS0xODQ4NzI0Iik7CisgIG1hdGh0ZXN0KDE5NCxkZWYsIi00NjE0LjMzMDE1RSs5OTY3Nzg3MzMiLCItNDMzLjU2MDgxMkUrMjI4NjA1OTkiLCItNC42MTQzMzAxNUUrOTk2Nzc4NzM2IiwiLTQuNjE0MzMwMTVFKzk5Njc3ODczNiIsIiIsIjEuMDY0Mjg2NzJFKzk3MzkxODEzNSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxOTUsZGVmLCI0NTc0NTUxNzAuIiwiMzcwOTIzMC40OEUrNjc3MDEwODc5IiwiMy43MDkyMzA0OEUrNjc3MDEwODg1IiwiLTMuNzA5MjMwNDhFKzY3NzAxMDg4NSIsIjEuNjk2ODA2NjZFKzY3NzAxMDg5NCIsIjEuMjMzMjg4NjFFLTY3NzAxMDg3NyIsIjAiLCI0NTc0NTUxNzAiLCI0LjM3OTE5Mzc2RSszNCIpOworICBtYXRodGVzdCgxOTYsZGVmLCItMjUyMjQ2OC4xNSIsIi00ODQ4MjA0My41IiwiLTUxMDA0NTExLjciLCI0NTk1OTU3NS40IiwiMS4yMjI5NDQxMUUrMTQiLCIwLjA1MjAyODkxNTYiLCIwIiwiLTI1MjI0NjguMTUiLCIxLjQyMzQ4MTc4RS0zMTAzNzM1OTUiKTsKKyAgbWF0aHRlc3QoMTk3LGRlZiwiLTY1OTgxMTM4NCIsIjYyNzc3LjYxMTgiLCItNjU5NzQ4NjA2IiwiLTY1OTg3NDE2MiIsIi00LjE0MjEzODI5RSsxMyIsIi0xMDUxMC4yOTc2IiwiLTEwNTEwIiwiLTE4NjgzLjk4MjAiLCIzLjQzOTM1MjRFKzU1MzY2NSIpOworICBtYXRodGVzdCgxOTgsZGVmLCI0NDI0Ljk0MTc2IiwiLTgyNTg0OC4yMCIsIi04MjE0MjMuMjU4IiwiODMwMjczLjE0MiIsIi0zLjY1NDMzMDE5RSs5IiwiLTAuMDA1MzU4MDU3MDQiLCIwIiwiNDQyNC45NDE3NiIsIjMuNDIxNTI3NzVFLTMwMTA5NjYiKTsKKyAgbWF0aHRlc3QoMTk5LGRlZiwiNDMuNjQ0MTg4NCIsIi02NTA5Ljg5NjYzRS02MTQxNjkzNzciLCI0My42NDQxODg0IiwiNDMuNjQ0MTg4NCIsIi0yLjg0MTE5MTU1RS02MTQxNjkzNzIiLCItNi43MDQyODI4NkUrNjE0MTY5Mzc0IiwiIiwiIiwiMy4zMTUyNDA1NkUtMTIiKTsKKyAgbWF0aHRlc3QoMjAwLGRlZiwiODk3LjM4ODM4MUUtODQzODY0ODc2IiwiODQxOTUuMTM2OSIsIjg0MTk1LjEzNjkiLCItODQxOTUuMTM2OSIsIjcuNTU1NTczNzZFLTg0Mzg2NDg2OSIsIjEuMDY1ODQzNDhFLTg0Mzg2NDg3OCIsIjAiLCI4Ljk3Mzg4MzgxRS04NDM4NjQ4NzQiLCIiKTsKKyAgbWF0aHRlc3QoMjAxLGRlZiwiNzk2MTk5ODI1IiwiNDk2Ljc2ODM0IiwiNzk2MjAwMzIyIiwiNzk2MTk5MzI4IiwiMy45NTUyNjg2NUUrMTEiLCIxNjAyNzU4Ljc5IiwiMTYwMjc1OCIsIjM5My45MTgyOCIsIjYuNDI2NDcyNjRFKzQ0MjMiKTsKKyAgbWF0aHRlc3QoMjAyLGRlZiwiNTczNTgzNTgyIiwiMTU5OC42OTUyMSIsIjU3MzU4NTE4MSIsIjU3MzU4MTk4MyIsIjkuMTY5ODUzMjVFKzExIiwiMzU4NzgyLjMyMyIsIjM1ODc4MiIsIjUxNy4xNjU3OCIsIjkuOTExNTYzMDJFKzE0MDA0Iik7CisgIG1hdGh0ZXN0KDIwMyxkZWYsIi03ODMxNDQyNzAuIiwiNjM0Ny43MTQ5NiIsIi03ODMxMzc5MjIiLCItNzgzMTUwNjE4IiwiLTQuOTcxMTc2NjBFKzEyIiwiLTEyMzM3NC4yMDIiLCItMTIzMzc0IiwiLTEyODQuNTI0OTYiLCIxLjI4MTEwODAzRSs1NjQ1OCIpOworICBtYXRodGVzdCgyMDQsZGVmLCIyNjkwOTIzNC43IiwiNTI0MTEuNTA4MSIsIjI2OTYxNjQ2LjIiLCIyNjg1NjgyMy4yIiwiMS40MTAzNTM1N0UrMTIiLCI1MTMuNDIyMjU1IiwiNTEzIiwiMjIxMzEuMDQ0NyIsIjkuNzU4MzY1MjhFKzM4OTQxNSIpOworICBtYXRodGVzdCgyMDUsZGVmLCI4LjIxOTE1MjgyIiwiMjQ4NTkuNzg0MUUtODQzMjgyOTU5IiwiOC4yMTkxNTI4MiIsIjguMjE5MTUyODIiLCIyLjA0MzI2MzY1RS04NDMyODI5NTQiLCIzLjMwNjIwNDQzRSs4NDMyODI5NTUiLCIiLCIiLCI2Ny41NTQ0NzMxIik7CisgIG1hdGh0ZXN0KDIwNixkZWYsIi02ODguMzg3NzEwIiwiODI3ODMuNTIwN0UtODMxODcwODU4IiwiLTY4OC4zODc3MTAiLCItNjg4LjM4NzcxMCIsIi01LjY5ODcxNTgyRS04MzE4NzA4NTEiLCItOC4zMTU1MTYyM0UrODMxODcwODU1IiwiIiwiIiwiNS4wNDI3MjAxMkUrMjIiKTsKKyAgbWF0aHRlc3QoMjA3LGRlZiwiLTk3OTIyMzIuIiwiLTE3NDkuMDExNjYiLCItOTc5Mzk4MS4wMSIsIi05NzkwNDgyLjk5IiwiMS43MTI2NzI3OUUrMTAiLCI1NTk4LjcyMzExIiwiNTU5OCIsIi0xMjY0LjcyNzMyIiwiLTguODY5ODU2NzRFLTEyMjI4Iik7CisgIG1hdGh0ZXN0KDIwOCxkZWYsIi0xMzAuNzY1NjAwIiwiOC42NzQzNzQyNyIsIi0xMjIuMDkxMjI2IiwiLTEzOS40Mzk5NzQiLCItMTEzNC4zMDk3NiIsIi0xNS4wNzQ5MzE3IiwiLTE1IiwiLTAuNjQ5OTg1OTUiLCItMS4xMTc5OTk0N0UrMTkiKTsKKyAgbWF0aHRlc3QoMjA5LGRlZiwiOTE3LjI1OTEwMiIsIi0zNjg2NDAuNDI2IiwiLTM2NzcyMy4xNjciLCIzNjk1NTcuNjg1IiwiLTMzODEzODc4NiIsIi0wLjAwMjQ4ODIyMTY5IiwiMCIsIjkxNy4yNTkxMDIiLCI4LjY3MTA0MjU1RS0xMDkyMDk0Iik7CisgIG1hdGh0ZXN0KDIxMCxkZWYsIi00Ljk3MjU2MzEiLCItMjk0NTYzNzE3LiIsIi0yOTQ1NjM3MjIiLCIyOTQ1NjM3MTIiLCIxLjQ2NDczNjY3RSs5IiwiMS42ODgxMTEyRS04IiwiMCIsIi00Ljk3MjU2MzEiLCItNi4yNzk2MjU4NEUtMjA1MTg3Mjg0Iik7CisgIG1hdGh0ZXN0KDIxMSxkZWYsIi02MDk2Mjg4Ny4yRS01MTQyNDk2NjEiLCItMjQzMDIxLjQwNyIsIi0yNDMwMjEuNDA3IiwiMjQzMDIxLjQwNyIsIjEuNDgxNTI4NjZFLTUxNDI0OTY0OCIsIjIuNTA4NTM5OEUtNTE0MjQ5NjU5IiwiMCIsIi02LjA5NjI4ODcyRS01MTQyNDk2NTQiLCIiKTsKKyAgbWF0aHRlc3QoMjEyLGRlZiwiLTU1Mzg5MjE5LjgiLCItMzc3MjIwMEUrOTgxODY2MzkzIiwiLTMuNzcyMjAwMDBFKzk4MTg2NjM5OSIsIjMuNzcyMjAwMDBFKzk4MTg2NjM5OSIsIjIuMDg5MzkyMTVFKzk4MTg2NjQwNyIsIjEuNDY4MzUzMjFFLTk4MTg2NjM5MiIsIjAiLCItNTUzODkyMTkuOCIsIjEuMDYyNDI2NzhFLTMxIik7CisgIG1hdGh0ZXN0KDIxMyxkZWYsIjY4MS42NjYwMTAiLCI2MjY4ODY3MDAiLCI2MjY4ODczODIiLCItNjI2ODg2MDE4IiwiNC4yNzMyNzM1NkUrMTEiLCIwLjAwMDAwMTA4NzM4MzExIiwiMCIsIjY4MS42NjYwMTAiLCIiKTsKKyAgbWF0aHRlc3QoMjE0LGRlZiwiNi40MjY1MjEzOCIsIjUzNDY1ODk0LjUiLCI1MzQ2NTkwMC45IiwiLTUzNDY1ODg4LjEiLCIzNDM1OTk3MTQiLCIxLjIwMTk4NTJFLTciLCIwIiwiNi40MjY1MjEzOCIsIjQuNjExNTU1MzJFKzQzMTk5MTU3Iik7CisgIG1hdGh0ZXN0KDIxNSxkZWYsIjU2MTU0NjY1NiIsIjY1MTQwOC40NzYiLCI1NjIxOTgwNjQiLCI1NjA4OTUyNDgiLCIzLjY1Nzk2MjUxRSsxNCIsIjg2Mi4wNDk5NjgiLCI4NjIiLCIzMjU0OS42ODgiLCI4LjYwNTIzNzdFKzU2OTk0MTkiKTsKKyAgbWF0aHRlc3QoMjE2LGRlZiwiNzg0NTc3OC4zNkUtNzk5NTExMzkiLCI5LjQ1ODU5MDQ3IiwiOS40NTg1OTA0NyIsIi05LjQ1ODU5MDQ3IiwiNy40MjEwMDA0NEUtNzk5NTExMzIiLCI4LjI5NDg3MDU2RS03OTk1MTEzNCIsIjAiLCI3Ljg0NTc3ODM2RS03OTk1MTEzMyIsIjEuMTI2NDgyMTZFLTcxOTU2MDE4OSIpOworICBtYXRodGVzdCgyMTcsZGVmLCI1NDQ4Ni4yMTEyIiwiMTAuNzU2NTA3OCIsIjU0NDk2Ljk2NzciLCI1NDQ3NS40NTQ3IiwiNTg2MDgxLjM1NiIsIjUwNjUuNDE4MjgiLCI1MDY1IiwiNC40OTkxOTMwIiwiMS4yNTY0NzE2OEUrNTIiKTsKKyAgbWF0aHRlc3QoMjE4LGRlZiwiMTY1NzY0ODIuNSIsIi0yMjE3NzIwLjgzIiwiMTQzNTg3NjEuNyIsIjE4Nzk0MjAzLjMiLCItMy42NzYyMDEwNUUrMTMiLCItNy40NzQ1NTc3OSIsIi03IiwiMTA1MjQzNi42OSIsIjEuMzgyNTkzNzRFLTE2MDEwODIwIik7CisgIG1hdGh0ZXN0KDIxOSxkZWYsIjYxLjI3OTM3ODdFLTM5MjA3MDExMSIsIjYuMjI1NzU2NTEiLCI2LjIyNTc1NjUxIiwiLTYuMjI1NzU2NTEiLCIzLjgxNTEwNDkxRS0zOTIwNzAxMDkiLCI5Ljg0Mjg4MDcyRS0zOTIwNzAxMTEiLCIwIiwiNi4xMjc5Mzc4N0UtMzkyMDcwMTEwIiwiIik7CisgIG1hdGh0ZXN0KDIyMCxkZWYsIjUxMTUxMzYuMzkiLCItNjUzNjc0MzcyLiIsIi02NDg1NTkyMzYiLCI2NTg3ODk1MDgiLCItMy4zNDM2MzM1N0UrMTUiLCItMC4wMDc4MjUyMDU2NSIsIjAiLCI1MTE1MTM2LjM5IiwiIik7CisgIG1hdGh0ZXN0KDIyMSxkZWYsIi03Ljg0MjM4MzY2RS00MTY0NzczMzkiLCItMzc0MzI3NTguOUUrOTczNjkzOTMiLCItMy43NDMyNzU4OUUrOTczNjk0MDAiLCIzLjc0MzI3NTg5RSs5NzM2OTQwMCIsIjIuOTM1NjIwNTdFLTMxOTEwNzkzOCIsIjIuMDk1MDU4OTVFLTUxMzg0NjczOSIsIjAiLCItNy44NDIzODM2NkUtNDE2NDc3MzM5IiwiIik7CisgIG1hdGh0ZXN0KDIyMixkZWYsIi0zODc3ODEuM0UrMjg0MTA4MzgwIiwiLTIxODA4NS41OTIiLCItMy44Nzc4MTMwMEUrMjg0MTA4Mzg1IiwiLTMuODc3ODEzMDBFKzI4NDEwODM4NSIsIjguNDU2OTUxNDRFKzI4NDEwODM5MCIsIjEuNzc4MTE1MTdFKzI4NDEwODM4MCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyMjMsZGVmLCItNTM1My4xNzczNiIsIjMuMzkzMzIzNDZFKzU0NjY4NTM1OSIsIjMuMzkzMzIzNDZFKzU0NjY4NTM1OSIsIi0zLjM5MzMyMzQ2RSs1NDY2ODUzNTkiLCItMS44MTY1MDYyM0UrNTQ2Njg1MzYzIiwiLTEuNTc3NTYxNzdFLTU0NjY4NTM1NiIsIjAiLCItNTM1My4xNzczNiIsIi0xLjUzNDAzMzY5RSsxMSIpOworICBtYXRodGVzdCgyMjQsZGVmLCItMjA4MzcuMjkwMEUtMTY4NjUyNzcyIiwiLTgyMzYuNzgzMDVFLTcxMjgxOTE3MyIsIi0yLjA4MzcyOTAwRS0xNjg2NTI3NjgiLCItMi4wODM3MjkwMEUtMTY4NjUyNzY4IiwiMS43MTYzMjIzN0UtODgxNDcxOTM3IiwiMi41Mjk3ODQ5N0UrNTQ0MTY2NDAxIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIyNSxkZWYsIi05ODU3My44NzIyRSs4MjkwMjIzNjYiLCIzMDkwMTEuMDA3IiwiLTkuODU3Mzg3MjJFKzgyOTAyMjM3MCIsIi05Ljg1NzM4NzIyRSs4MjkwMjIzNzAiLCItMy4wNDYwNDExNUUrODI5MDIyMzc2IiwiLTMuMTg5OTc5MzJFKzgyOTAyMjM2NSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyMjYsZGVmLCI0OTczMDc1MC43IiwiLTUzMTUuMTA2MzZFLTI5OTU4Njk5MSIsIjQ5NzMwNzUwLjciLCI0OTczMDc1MC43IiwiLTIuNjQzMjQyMjlFLTI5OTU4Njk4MCIsIi05LjM1NjQ5MjExRSsyOTk1ODY5OTQiLCIiLCIiLCIzLjI4NzU2OTM2RS0zOSIpOworICBtYXRodGVzdCgyMjcsZGVmLCIxNTM5NTIzLjQwIiwiLTk2MjM4OC41ODEiLCI1NzcxMzQuODIiLCIyNTAxOTExLjk4IiwiLTEuNDgxNjE5NzRFKzEyIiwiLTEuNTk5NjkwMDEiLCItMSIsIjU3NzEzNC44MTkiLCIzLjEwMTQ0ODM0RS01OTU0NjczIik7CisgIG1hdGh0ZXN0KDIyOCxkZWYsIjgxNTk2LjIxMjEiLCItMzc2MDAuOTY1MyIsIjQzOTk1LjI0NjgiLCIxMTkxOTcuMTc3IiwiLTMuMDY4MDk2MzRFKzkiLCItMi4xNzAwNTYzMSIsIi0yIiwiNjM5NC4yODE1IiwiMS45Nzg3ODI5OUUtMTg0Njg0Iik7CisgIG1hdGh0ZXN0KDIyOSxkZWYsIjU5MDE0NjE5OSIsIi0xNDI1NDA0LjYxIiwiNTg4NzIwNzk0IiwiNTkxNTcxNjA0IiwiLTguNDExOTcxMTNFKzE0IiwiLTQxNC4wMjAxMjgiLCItNDE0IiwiMjg2OTAuNDYiLCIyLjA0NjUwOTk0RS0xMjUwMjE3MCIpOworICBtYXRodGVzdCgyMzAsZGVmLCIxOTYuMDU1NDMiLCI1MDUuOTM2MzA1IiwiNzAxLjk5MTczNSIsIi0zMDkuODgwODc1IiwiOTkxOTEuNTU5OCIsIjAuMzg3NTEwMTA0IiwiMCIsIjE5Ni4wNTU0MyIsIjguNzg0MzczOTdFKzExNTkiKTsKKyAgbWF0aHRlc3QoMjMxLGRlZiwiNzcuODA1ODQ0OSIsIi02NDIuMjc1Mjc0IiwiLTU2NC40Njk0MjkiLCI3MjAuMDgxMTE5IiwiLTQ5OTcyLjc3MDQiLCItMC4xMjExNDA5NjMiLCIwIiwiNzcuODA1ODQ0OSIsIjkuMzM1ODI2MjZFLTEyMTUiKTsKKyAgbWF0aHRlc3QoMjMyLGRlZiwiMTQ2OC42MDY4NCIsIjEwMDY4LjEzOCIsIjExNTM2Ljc0NDgiLCItODU5OS41MzEyIiwiMTQ3ODYxMzYuMyIsIjAuMTQ1ODY2Nzc3IiwiMCIsIjE0NjguNjA2ODQiLCIyLjU0MTIyNDg0RSszMTg4NCIpOworICBtYXRodGVzdCgyMzMsZGVmLCI0Ljk4Nzc0NzY3RS0zODc5Njg2MzIiLCI0LjQxNzMxNDM5RS01Nzg4MTIzNzYiLCI0Ljk4Nzc0NzY3RS0zODc5Njg2MzIiLCI0Ljk4Nzc0NzY3RS0zODc5Njg2MzIiLCIyLjIwMzI0NDk2RS05NjY3ODEwMDciLCIxLjEyOTEzNTc3RSsxOTA4NDM3NDQiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjM0LGRlZiwiOTgxLjA5MTA1OSIsIi05MjIzOC45OTMwIiwiLTkxMjU3LjkwMjAiLCI5MzIyMC4wODQxIiwiLTkwNDk0ODUxLjMiLCItMC4wMTA2MzY0MDI1IiwiMCIsIjk4MS4wOTEwNTkiLCI1LjI5OTQzMzQyRS0yNzU5NTMiKTsKKyAgbWF0aHRlc3QoMjM1LGRlZiwiLTM2MDYuMjQ5OTIiLCI4MjkwMjI0LjcwIiwiODI4NjYxOC40NSIsIi04MjkzODMwLjk1IiwiLTIuOTg5NjYyMjJFKzEwIiwiLTAuMDAwNDM1MDAwMjYyIiwiMCIsIi0zNjA2LjI0OTkyIiwiLTEuMjM3NDcxMDdFKzI5NDg4NzkzIik7CisgIG1hdGh0ZXN0KDIzNixkZWYsIi04OTc4NTcxLjM1IiwiOTIyNDMuNDc5NiIsIi04ODg2MzI3Ljg3IiwiLTkwNzA4MTQuODMiLCItOC4yODIxNDY2M0UrMTEiLCItOTcuMzM1NTY2NiIsIi05NyIsIi0zMDk1My44Mjg4IiwiLTQuOTU3NjI4MTNFKzY0MTM4NCIpOworICBtYXRodGVzdCgyMzcsZGVmLCItNjE5NjguMTk5MkUrODEwMDYwNDc4IiwiNDc0Mjk0NjcxLkUrMTc5MjYzNDE0IiwiLTYuMTk2ODE5OTJFKzgxMDA2MDQ4MiIsIi02LjE5NjgxOTkyRSs4MTAwNjA0ODIiLCItMi45MzkxMTg2N0UrOTg5MzIzOTA1IiwiLTEuMzA2NTMzNzRFKzYzMDc5NzA2MCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyMzgsZGVmLCI2MTI5ODQzMS42RS03NTQ0MjkwNDEiLCItMjU4NDg2Mi43OSIsIi0yNTg0ODYyLjc5IiwiMjU4NDg2Mi43OSIsIi0xLjU4NDQ4MDM1RS03NTQ0MjkwMjciLCItMi4zNzE0Mzg1MUUtNzU0NDI5MDQwIiwiMCIsIjYuMTI5ODQzMTZFLTc1NDQyOTAzNCIsIiIpOworICBtYXRodGVzdCgyMzksZGVmLCI2MjEwMzkuMDY0IiwiLTUzNTE1MzkuNjIiLCItNDczMDUwMC41NiIsIjU5NzI1NzguNjgiLCItMy4zMjM1MTUxNkUrMTIiLCItMC4xMTYwNDg2NzIiLCIwIiwiNjIxMDM5LjA2NCIsIjIuNDExNjMzMTJFLTMxMDAyMTA4Iik7CisgIG1hdGh0ZXN0KDI0MCxkZWYsIi0xOS42MDA3NjA1IiwiLTU3OTA1Njk2LiIsIi01NzkwNTcxNS42IiwiNTc5MDU2NzYuNCIsIjEuMTM0OTk1NjhFKzkiLCIzLjM4NDk0NTE1RS03IiwiMCIsIi0xOS42MDA3NjA1IiwiMS4wNTY2MzY0NkUtNzQ4Mjk5NjMiKTsKKyAgbWF0aHRlc3QoMjQxLGRlZiwiMzYyNi4xMzEwOUUrNjg3MDMwMzQ2IiwiMTg5Ljg5NjAwNCIsIjMuNjI2MTMxMDlFKzY4NzAzMDM0OSIsIjMuNjI2MTMxMDlFKzY4NzAzMDM0OSIsIjYuODg1ODc4MDRFKzY4NzAzMDM1MSIsIjEuOTA5NTM1MjNFKzY4NzAzMDM0NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyNDIsZGVmLCItMjQ5MzM0LjAyNiIsIi03LjU0NzM1ODM0RS0xNDEzNzE4OCIsIi0yNDkzMzQuMDI2IiwiLTI0OTMzNC4wMjYiLCIxLjg4MTgxMzI0RS0xNDEzNzE4MiIsIjMuMzAzNTkzMzJFKzE0MTM3MTkyIiwiIiwiIiwiNi42OTQ5NTQwOEUtNDQiKTsKKyAgbWF0aHRlc3QoMjQzLGRlZiwiNDE3NjEzOTI4LiIsIi05MjUyMTMuMjE2IiwiNDE2Njg4NzE1IiwiNDE4NTM5MTQxIiwiLTMuODYzODE5MjVFKzE0IiwiLTQ1MS4zNzA0NzQiLCItNDUxIiwiMzQyNzY3LjU4NCIsIjguMzg0MzAwODVFLTc5NzYwNTQiKTsKKyAgbWF0aHRlc3QoMjQ0LGRlZiwiMjMuODMyMDMwOSIsIi01MDA3NDk5Ni4xIiwiLTUwMDc0OTcyLjMiLCI1MDA3NTAxOS45IiwiLTEuMTkzMzg4ODVFKzkiLCItNC43NTkyNjc2NUUtNyIsIjAiLCIyMy44MzIwMzA5IiwiNS44MTQ2NjM4N0UtNjg5NjEzMzUiKTsKKyAgbWF0aHRlc3QoMjQ1LGRlZiwiNDk3ODk2NzcuNyIsIi0xMzE4Mjc4MTJFKzE1NjQxMjUzNCIsIi0xLjMxODI3ODEyRSsxNTY0MTI1NDIiLCIxLjMxODI3ODEyRSsxNTY0MTI1NDIiLCItNi41NjM2NjQyN0UrMTU2NDEyNTQ5IiwiLTMuNzc2ODcyMDRFLTE1NjQxMjUzNSIsIjAiLCI0OTc4OTY3Ny43IiwiMi4wMDg0NDg0M0UtOCIpOworICBtYXRodGVzdCgyNDYsZGVmLCItODkwNzE2My42MUUtNzQxODY3MjQ2IiwiNzczNjUxLjI4OEUtNDcyMDMzMjgyIiwiNy43MzY1MTI4OEUtNDcyMDMzMjc3IiwiLTcuNzM2NTEyODhFLTQ3MjAzMzI3NyIsIiIsIi0xLjE1MTMxNTA0RS0yNjk4MzM5NjMiLCIwIiwiLTguOTA3MTYzNjFFLTc0MTg2NzI0MCIsIiIpOworICBtYXRodGVzdCgyNDcsZGVmLCI1MTQwMjE3MTEuRSs0NjM1MzY2NDYiLCI2MTc0NDE2NTkuIiwiNS4xNDAyMTcxMUUrNDYzNTM2NjU0IiwiNS4xNDAyMTcxMUUrNDYzNTM2NjU0IiwiMy4xNzM3ODQxOEUrNDYzNTM2NjYzIiwiOC4zMjUwMjQ3OEUrNDYzNTM2NjQ1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI0OCxkZWYsIjk5ODE3NTc1MCIsIjIuMzkyODU0NzgiLCI5OTgxNzU3NTIiLCI5OTgxNzU3NDgiLCIyLjM4ODQ4OTYxRSs5IiwiNDE3MTQ4NDg3IiwiNDE3MTQ4NDg2IiwiMS4zMDUxMzY5MiIsIjkuOTYzNTQ4MjhFKzE3Iik7CisgIG1hdGh0ZXN0KDI0OSxkZWYsIjg3MzU3NTQyNi4iLCI2NDc4NTMuMTUyRSs0OTc0NTA3ODEiLCI2LjQ3ODUzMTUyRSs0OTc0NTA3ODYiLCItNi40Nzg1MzE1MkUrNDk3NDUwNzg2IiwiNS42NTk0ODU5M0UrNDk3NDUwNzk1IiwiMS4zNDg0MTU4RS00OTc0NTA3NzgiLCIwIiwiODczNTc1NDI2IiwiNC40NDQyOTA2NEUrNTMiKTsKKyAgbWF0aHRlc3QoMjUwLGRlZiwiNDM1MjYyNi44IiwiLTEzMDMzODA0OC5FLTc0NDU2MDkxMSIsIjQzNTI2MjYuODAiLCI0MzUyNjI2LjgwIiwiLTUuNjczMTI4ODFFLTc0NDU2MDg5NyIsIi0zLjMzOTQ5MDU1RSs3NDQ1NjA5MDkiLCIiLCIiLCIyLjI5NzQ2MzIyRS03Iik7CisgIG1hdGh0ZXN0KDI1MSxkZWYsIjQzNy4yODY5NjAiLCI3LjM3NTYwODM1IiwiNDQ0LjY2MjU2OCIsIjQyOS45MTEzNTIiLCIzMjI1LjI1NzM1IiwiNTkuMjg4MjU2NSIsIjU5IiwiMi4xMjYwNjczNSIsIjMuMDU3NDk0NTJFKzE4Iik7CisgIG1hdGh0ZXN0KDI1MixkZWYsIjg0OTgyODAuNDVFKzIyMDUxMTUyMiIsIjU4ODYxNzYxMiIsIjguNDk4MjgwNDVFKzIyMDUxMTUyOCIsIjguNDk4MjgwNDVFKzIyMDUxMTUyOCIsIjUuMDAyMjM3NTRFKzIyMDUxMTUzNyIsIjEuNDQzNzY5MzFFKzIyMDUxMTUyMCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyNTMsZGVmLCItNTMyMDM4Ny43NyIsIi03NjczMjM3LjQ2IiwiLTEyOTkzNjI1LjIiLCIyMzUyODQ5LjY5IiwiNC4wODI0NTk4N0UrMTMiLCIwLjY5MzM2OTM2MyIsIjAiLCItNTMyMDM4Ny43NyIsIi0xLjMwMTEzNzQ1RS01MTYwOTc1NyIpOworICBtYXRodGVzdCgyNTQsZGVmLCI1ODc2NTUzNzUiLCItNC45NzQ4MzY2IiwiNTg3NjU1MzcwIiwiNTg3NjU1MzgwIiwiLTIuOTIzNDg5NDdFKzkiLCItMTE4MTI1NTYzIiwiLTExODEyNTU2MyIsIjAuNzkxOTk0MiIsIjEuNDI2ODc2NjdFLTQ0Iik7CisgIG1hdGh0ZXN0KDI1NSxkZWYsIjEyNjYwOTguNDQiLCItMjY2MS42NDkwNEUtNjQyNjAxMTQyIiwiMTI2NjA5OC40NCIsIjEyNjYwOTguNDQiLCItMy4zNjk5MDk3MEUtNjQyNjAxMTMzIiwiLTQuNzU2ODE5NjNFKzY0MjYwMTE0NCIsIiIsIiIsIjQuOTI3MTcwMzZFLTE5Iik7CisgIG1hdGh0ZXN0KDI1NixkZWYsIjMuOTI3Mzc0NjNFKzQ4Mjg3MzQ4MyIsIi02ODUuNTIyNzQ3IiwiMy45MjczNzQ2M0UrNDgyODczNDgzIiwiMy45MjczNzQ2M0UrNDgyODczNDgzIiwiLTIuNjkyMzA0NjRFKzQ4Mjg3MzQ4NiIsIi01LjcyOTAyMTYxRSs0ODI4NzM0ODAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjU3LGRlZiwiMjI4MjY0OTQuMSIsIjk4NjE4OTQ3NC4iLCIxLjAwOTAxNTk3RSs5IiwiLTk2MzM2Mjk4MCIsIjIuMjUxMTI0ODJFKzE2IiwiMC4wMjMxNDYxNTQ3IiwiMCIsIjIyODI2NDk0LjEiLCIiKTsKKyAgbWF0aHRlc3QoMjU4LGRlZiwiLTY0NzM0Mi4zODAiLCItNDk4ODE2Mzg2IiwiLTQ5OTQ2MzcyOCIsIjQ5ODE2OTA0NCIsIjMuMjI5MDQ5ODZFKzE0IiwiMC4wMDEyOTc3NTY4NSIsIjAiLCItNjQ3MzQyLjM4MCIsIiIpOworICBtYXRodGVzdCgyNTksZGVmLCIzOTMwOTIzNzMuIiwiLTI1LjcyMjY4MjIiLCIzOTMwOTIzNDciLCIzOTMwOTIzOTkiLCItMS4wMTExMzkwMkUrMTAiLCItMTUyODE5MzUuNiIsIi0xNTI4MTkzNSIsIjE1LjU5Mzk0MzAiLCIzLjQ5MjUyODM5RS0yMjQiKTsKKyAgbWF0aHRlc3QoMjYwLGRlZiwiMi45NjI1MzQ5MiIsIjIwLjc0NDQ4ODgiLCIyMy43MDcwMjM3IiwiLTE3Ljc4MTk1MzkiLCI2MS40NTYyNzI1IiwiMC4xNDI4MTA2OTgiLCIwIiwiMi45NjI1MzQ5MiIsIjguMDM0MDIyNDZFKzkiKTsKKyAgbWF0aHRlc3QoMjYxLGRlZiwiNTM1NTMuMzc1MEUrMzg2OTU1NDIzIiwiLTczMjQ3MDg3NiIsIjUuMzU1MzM3NTBFKzM4Njk1NTQyNyIsIjUuMzU1MzM3NTBFKzM4Njk1NTQyNyIsIi0zLjkyMjYyODc1RSszODY5NTU0MzYiLCItNy4zMTEzMzE2NUUrMzg2OTU1NDE4IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI2MixkZWYsIi02OTY0NTEuNDA2RS0yODY1MzU5MTciLCItNzMwODYwOTAuOCIsIi03MzA4NjA5MC44IiwiNzMwODYwOTAuOCIsIjUuMDkwMDkxMDdFLTI4NjUzNTkwNCIsIjkuNTI5MTkyMTlFLTI4NjUzNTkyMCIsIjAiLCItNi45NjQ1MTQwNkUtMjg2NTM1OTEyIiwiIik7CisgIG1hdGh0ZXN0KDI2MyxkZWYsIjE1NTEuMjk5NTciLCItNTgwMzU4NjIyLkUrMTE3MDE3MjY1IiwiLTUuODAzNTg2MjJFKzExNzAxNzI3MyIsIjUuODAzNTg2MjJFKzExNzAxNzI3MyIsIi05LjAwMzEwMDgxRSsxMTcwMTcyNzYiLCItMi42NzMwMDE2OEUtMTE3MDE3MjcxIiwiMCIsIjE1NTEuMjk5NTciLCI3LjE3NTA2NzExRS0yMCIpOworICBtYXRodGVzdCgyNjQsZGVmLCItMjA1MTIzMDA2LkUtMjEzNzUyNzk5IiwiLTc4NjM4NDY4LjYiLCItNzg2Mzg0NjguNiIsIjc4NjM4NDY4LjYiLCIxLjYxMzA1NTkxRS0yMTM3NTI3ODMiLCIyLjYwODQzMDgzRS0yMTM3NTI3OTkiLCIwIiwiLTIuMDUxMjMwMDZFLTIxMzc1Mjc5MSIsIiIpOworICBtYXRodGVzdCgyNjUsZGVmLCI3NzYzMi44MDczIiwiLTMzNzg1NDIuODhFKzY3NzQ0MTMxOSIsIi0zLjM3ODU0Mjg4RSs2Nzc0NDEzMjUiLCIzLjM3ODU0Mjg4RSs2Nzc0NDEzMjUiLCItMi42MjI4NTc2OEUrNjc3NDQxMzMwIiwiLTIuMjk3ODE5MjFFLTY3NzQ0MTMyMSIsIjAiLCI3NzYzMi44MDczIiwiMi4xMzcyOTMzMUUtMTUiKTsKKyAgbWF0aHRlc3QoMjY2LGRlZiwiMzA2ODk5OS4zNyIsIjIuMjEwMDYyMTIiLCIzMDY5MDAxLjU4IiwiMzA2ODk5Ny4xNiIsIjY3ODI2NzkuMjUiLCIxMzg4NjQ4LjQ2IiwiMTM4ODY0OCIsIjEuMDI3MTg2MjQiLCI5LjQxODc1NzEzRSsxMiIpOworICBtYXRodGVzdCgyNjcsZGVmLCI2MjU1MjQyNzQuIiwiNTUuMjQ2ODYyNCIsIjYyNTUyNDMyOSIsIjYyNTUyNDIxOSIsIjMuNDU1ODI1MzVFKzEwIiwiMTEzMjIzNDkuMyIsIjExMzIyMzQ5IiwiMTYuNzUyMjIyNCIsIjYuMjE0ODI5NDNFKzQ4MyIpOworICBtYXRodGVzdCgyNjgsZGVmLCI2MTI2OTEzNC45IiwiLTg0NTc2MTMwMy4iLCItNzg0NDkyMTY4IiwiOTA3MDMwNDM4IiwiLTUuMTgxOTA2MzRFKzE2IiwiLTAuMDcyNDQyNTg0OCIsIjAiLCI2MTI2OTEzNC45IiwiIik7CisgIG1hdGh0ZXN0KDI2OSxkZWYsIi0yODQwLjEyMDk5IiwiLTI4NTYuNzY3MzFFLTgyNzQzNjUwIiwiLTI4NDAuMTIwOTkiLCItMjg0MC4xMjA5OSIsIjguMTEzNTY0ODBFLTgyNzQzNjQ0IiwiOS45NDE3MzAyMkUrODI3NDM2NDkiLCIiLCIiLCItNC4zNjUwNTI1NEUtMTEiKTsKKyAgbWF0aHRlc3QoMjcwLGRlZiwiOC45NTM4NzgxIiwiLTcuNTY2MDMzOTEiLCIxLjM4Nzg0NDE5IiwiMTYuNTE5OTEyMCIsIi02Ny43NDUzNDUzIiwiLTEuMTgzNDMwODciLCItMSIsIjEuMzg3ODQ0MTkiLCIyLjQyMDUzMDYxRS04Iik7CisgIG1hdGh0ZXN0KDI3MSxkZWYsIi01NjIzMzU0Ny4yIiwiNTA5NzUyNTMwIiwiNDUzNTE4OTgzIiwiLTU2NTk4NjA3NyIsIi0yLjg2NjUxOTMwRSsxNiIsIi0wLjExMDMxNTM4NiIsIjAiLCItNTYyMzM1NDcuMiIsIiIpOworICBtYXRodGVzdCgyNzIsZGVmLCItMzE2Ny40Nzg1M0UtODU0ODU5NDk3IiwiLTExMDg1MjExNSIsIi0xMTA4NTIxMTUiLCIxMTA4NTIxMTUiLCIzLjUxMTIxNjk0RS04NTQ4NTk0ODYiLCIyLjg1NzM5MTE2RS04NTQ4NTk1MDIiLCIwIiwiLTMuMTY3NDc4NTNFLTg1NDg1OTQ5NCIsIiIpOworICBtYXRodGVzdCgyNzMsZGVmLCItNTY1Mi41MjA5MiIsIi02MzIyNDMyNDQuIiwiLTYzMjI0ODg5NyIsIjYzMjIzNzU5MiIsIjMuNTczNzY4MTZFKzEyIiwiMC4wMDAwMDg5NDA0MjEyMyIsIjAiLCItNTY1Mi41MjA5MiIsIiIpOworICBtYXRodGVzdCgyNzQsZGVmLCItOTQ2LjAwOTkyOCIsIjgyMDA5MC42NkUtNTg5Mjc4MDE1IiwiLTk0Ni4wMDk5MjgiLCItOTQ2LjAwOTkyOCIsIi03Ljc1ODEzOTA2RS01ODkyNzgwMDciLCItMS4xNTM1NDMxMUUrNTg5Mjc4MDEyIiwiIiwiIiwiNi40MTQ1NDA1M0UrMjMiKTsKKyAgbWF0aHRlc3QoMjc1LGRlZiwiLTM2Ny43NTc3NTgiLCItOTU5LjYyNjAxNiIsIi0xMzI3LjM4Mzc3IiwiNTkxLjg2ODI1OCIsIjM1MjkwOS45MTIiLCIwLjM4MzIzMDI5MiIsIjAiLCItMzY3Ljc1Nzc1OCIsIjEuMTQ5ODIxOTlFLTI0NjMiKTsKKyAgbWF0aHRlc3QoMjc2LGRlZiwiODA5OTI2NzIxLkUtNzQ0NjExNTU0IiwiLTY3LjY1NjA1NDkiLCItNjcuNjU2MDU0OSIsIjY3LjY1NjA1NDkiLCItNS40Nzk2NDQ2N0UtNzQ0NjExNTQ0IiwiLTEuMTk3MTIzNzhFLTc0NDYxMTU0NyIsIjAiLCI4LjA5OTI2NzIxRS03NDQ2MTE1NDYiLCIiKTsKKyAgbWF0aHRlc3QoMjc3LGRlZiwiLTE3MjUuMDg1NTUiLCI3NTU4Ni4zMDMxIiwiNzM4NjEuMjE3NiIsIi03NzMxMS4zODg3IiwiLTEzMDM5MjgzOSIsIi0wLjAyMjgyMjcyNjkiLCIwIiwiLTE3MjUuMDg1NTUiLCIzLjcwNTQwNTg3RSsyNDQ2NTciKTsKKyAgbWF0aHRlc3QoMjc4LGRlZiwiMjY1OS44NDE5MUUrMjkzMTQ0OTIiLCItNzQzNzIuNDU1MUUrNTE4MTk2NjgwIiwiLTcuNDM3MjQ1NTFFKzUxODE5NjY4NCIsIjcuNDM3MjQ1NTFFKzUxODE5NjY4NCIsIi0xLjk3ODE4OTczRSs1NDc1MTExODAiLCItMy41NzYzODA0RS00ODg4ODIxOTAiLCIwIiwiMi42NTk4NDE5MUUrMjkzMTQ0OTUiLCIxLjA2MTcxODExRS0yMDUyMDE0NjgiKTsKKyAgbWF0aHRlc3QoMjc5LGRlZiwiLTkxLjE0MzExMTMiLCIxMjE0NzUwNy4wIiwiMTIxNDc0MTUuOSIsIi0xMjE0NzU5OC4xIiwiLTEuMTA3MTYxNThFKzkiLCItMC4wMDAwMDc1MDMwMzAxNSIsIjAiLCItOTEuMTQzMTExMyIsIi0xLjUyNDE3MDA2RSsyMzgwNTc1OSIpOworICBtYXRodGVzdCgyODAsZGVmLCItMTEzNjc3OC45MUUrNjk3NzgzODc4IiwiLTgwMTU1MjU2OS4iLCItMS4xMzY3Nzg5MUUrNjk3NzgzODg0IiwiLTEuMTM2Nzc4OTFFKzY5Nzc4Mzg4NCIsIjkuMTExODgwNTZFKzY5Nzc4Mzg5MiIsIjEuNDE4MjIxMjhFKzY5Nzc4Mzg3NSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyODEsZGVmLCI3MzEyMzc3My4wRSs0MzMzMzQxNDkiLCI2My4zNTQ4OTMwIiwiNy4zMTIzNzczMEUrNDMzMzM0MTU2IiwiNy4zMTIzNzczMEUrNDMzMzM0MTU2IiwiNC42MzI3NDg4MUUrNDMzMzM0MTU4IiwiMS4xNTQxOTI5OEUrNDMzMzM0MTU1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI4MixkZWYsIi05NzY1NDg0LjgiLCI3OTc5LjkwODAyRS0yMzQwMjk3MTUiLCItOTc2NTQ4NC44MCIsIi05NzY1NDg0LjgwIiwiLTcuNzkyNzY3MDVFLTIzNDAyOTcwNSIsIi0xLjIyMzc1OTA3RSsyMzQwMjk3MTgiLCIiLCIiLCI4LjI3MDg1NjE0RSs1NSIpOworICBtYXRodGVzdCgyODMsZGVmLCItNjk1MDEwMjg4IiwiLTguMjY1ODI4MjAiLCItNjk1MDEwMjk2IiwiLTY5NTAxMDI4MCIsIjUuNzQ0ODM1NjRFKzkiLCI4NDA4MjM1My40IiwiODQwODIzNTMiLCItMy40NTAyNDU0MCIsIjEuODM2ODM0OTVFLTcxIik7CisgIG1hdGh0ZXN0KDI4NCxkZWYsIjIzOTc1NjQzLjNFLTE1NTk1NTI2NCIsIi01MDU1NDcuNjkyRSsxMzcyNTg5NDgiLCItNS4wNTU0NzY5MkUrMTM3MjU4OTUzIiwiNS4wNTU0NzY5MkUrMTM3MjU4OTUzIiwiLTEuMjEyMDgzMTFFLTE4Njk2MzAzIiwiLTQuNzQyNTA4N0UtMjkzMjE0MjExIiwiMCIsIjIuMzk3NTY0MzNFLTE1NTk1NTI1NyIsIjEuMjYyMjU5NTJFKzc3OTc3NjI4MyIpOworICBtYXRodGVzdCgyODUsZGVmLCIyODYyLjk1OTIxIiwiLTMyNjAxMjQ4LjZFLTYwNTg2MTMzMyIsIjI4NjIuOTU5MjEiLCIyODYyLjk1OTIxIiwiLTkuMzMzNjA0NDlFLTYwNTg2MTMyMyIsIi04Ljc4MTc0NzEyRSs2MDU4NjEzMjgiLCIiLCIiLCI0LjI2MTQyMTc1RS0xMSIpOworICBtYXRodGVzdCgyODYsZGVmLCItMTMuMTMzNTE4RSsyNDYwOTA1MTYiLCItOC43MTI2OTkyNUUtOTQ1MDkyMTA4IiwiLTEuMzEzMzUxODBFKzI0NjA5MDUxNyIsIi0xLjMxMzM1MTgwRSsyNDYwOTA1MTciLCIxLjE0NDI4MzkyRS02OTkwMDE1OTAiLCIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjg3LGRlZiwiLTM0NjcxLjIyMzIiLCI4MTc3MTAuNzYyIiwiNzgzMDM5LjUzOSIsIi04NTIzODEuOTg1IiwiLTIuODM1MTAzMjNFKzEwIiwiLTAuMDQyNDAwMzUwOCIsIjAiLCItMzQ2NzEuMjIzMiIsIi01LjMwNzg4ODI4RSszNzEyMzgyIik7CisgIG1hdGh0ZXN0KDI4OCxkZWYsIi0yMjQ2NDc2OSIsIjYyLjQzNjYwNjAiLCItMjI0NjQ3MDYuNiIsIi0yMjQ2NDgzMS40IiwiLTEuNDAyNjIzOTNFKzkiLCItMzU5ODAxLjI1MiIsIi0zNTk4MDEiLCItMTUuNzI0NTk0MCIsIjYuMjEwNDI1MzZFKzQ1NSIpOworICBtYXRodGVzdCgyODksZGVmLCItOTQ1OC42MDg4N0UtNTYzMDUxOTYzIiwiNTY3NjA1Ni4wMSIsIjU2NzYwNTYuMDEiLCItNTY3NjA1Ni4wMSIsIi01LjM2ODc1OTM3RS01NjMwNTE5NTMiLCItMS42NjY0MDUxM0UtNTYzMDUxOTY2IiwiMCIsIi05LjQ1ODYwODg3RS01NjMwNTE5NjAiLCIiKTsKKyAgbWF0aHRlc3QoMjkwLGRlZiwiLTU5MS45MjQxMjNFLTk1MzMxODc0IiwiLTEzNC41OTYxODgiLCItMTM0LjU5NjE4OCIsIjEzNC41OTYxODgiLCI3Ljk2NzA3MzA1RS05NTMzMTg3MCIsIjQuMzk3Nzc3NzdFLTk1MzMxODc0IiwiMCIsIi01LjkxOTI0MTIzRS05NTMzMTg3MiIsIiIpOworICBtYXRodGVzdCgyOTEsZGVmLCItMTgyNTY2MDg1LkUrNjg4NzA2NDYiLCItOTYwMzQ1OTkzLiIsIi0xLjgyNTY2MDg1RSs2ODg3MDY1NCIsIi0xLjgyNTY2MDg1RSs2ODg3MDY1NCIsIjEuNzUzMjY2MDhFKzY4ODcwNjYzIiwiMS45MDEwNDQ5RSs2ODg3MDY0NSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyOTIsZGVmLCI4MjMyLjU0ODkzIiwiLTk5ODIyMDA0RSs4OTE5Nzk4NDUiLCItOS45ODIyMDA0MEUrODkxOTc5ODUyIiwiOS45ODIyMDA0MEUrODkxOTc5ODUyIiwiLTguMjE3ODk1MzJFKzg5MTk3OTg1NiIsIi04LjI0NzIyODY3RS04OTE5Nzk4NTAiLCIwIiwiODIzMi41NDg5MyIsIjYuOTkyODkxNTZFLTQwIik7CisgIG1hdGh0ZXN0KDI5MyxkZWYsIi00MzM2Ljk0MzE3IiwiLTgxOTM3My42MDFFKzU2MzIzMzQzMCIsIi04LjE5MzczNjAxRSs1NjMyMzM0MzUiLCI4LjE5MzczNjAxRSs1NjMyMzM0MzUiLCIzLjU1MzU3Njc0RSs1NjMyMzM0MzkiLCI1LjI5Mjk5ODQxRS01NjMyMzM0MzMiLCIwIiwiLTQzMzYuOTQzMTciLCI3Ljk4OTY5NDA1RS0zMCIpOworICBtYXRodGVzdCgyOTQsZGVmLCItMi4wOTA0NDM2MkUtODc2NTI3OTA4IiwiLTY1MTU0NjMuMzMiLCItNjUxNTQ2My4zMyIsIjY1MTU0NjMuMzMiLCIxLjM2MjAyMDg3RS04NzY1Mjc5MDEiLCIzLjIwODQzNDMzRS04NzY1Mjc5MTUiLCIwIiwiLTIuMDkwNDQzNjJFLTg3NjUyNzkwOCIsIiIpOworICBtYXRodGVzdCgyOTUsZGVmLCItMTk0MzQzLjM0NCIsIjEuOTU5Mjk5NzciLCItMTk0MzQxLjM4NSIsIi0xOTQzNDUuMzAzIiwiLTM4MDc3Ni44NjkiLCItOTkxOTAuMjA0MSIsIi05OTE5MCIsIi0wLjM5OTgxMzcwIiwiMy43NzY5MzM1NEUrMTAiKTsKKyAgbWF0aHRlc3QoMjk2LGRlZiwiLTMyNjAwMi45MjciLCI0MjE1Ljk5MDMwIiwiLTMyMTc4Ni45MzciLCItMzMwMjE4LjkxNyIsIi0xLjM3NDQyNTE4RSs5IiwiLTc3LjMyNTM1MDMiLCItNzciLCItMTM3MS42NzM5MCIsIjUuNTE4NzU4MjFFKzIzMjQzIik7CisgIG1hdGh0ZXN0KDI5NyxkZWYsIi0xMjAzNy44NTkwRSs4NzY0MjkwNDQiLCIzMTQuODE4MjciLCItMS4yMDM3ODU5MEUrODc2NDI5MDQ4IiwiLTEuMjAzNzg1OTBFKzg3NjQyOTA0OCIsIi0zLjc4OTczNzk0RSs4NzY0MjkwNTAiLCItMy44MjM3NDg1NEUrODc2NDI5MDQ1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI5OCxkZWYsIjIxMDM2MDQ1LjRFLTE2MjgwNDgwOSIsIi05MS43MTQ5MjE5IiwiLTkxLjcxNDkyMTkiLCI5MS43MTQ5MjE5IiwiLTEuOTI5MzE5MjZFLTE2MjgwNDgwMCIsIi0yLjI5MzYzMzlFLTE2MjgwNDgwNCIsIjAiLCIyLjEwMzYwNDU0RS0xNjI4MDQ4MDIiLCIiKTsKKyAgbWF0aHRlc3QoMjk5LGRlZiwiLTk0NzAxOS41MzQiLCI5OTE2LjI5MjgwIiwiLTkzNzEwMy4yNDEiLCItOTU2OTM1LjgyNyIsIi05LjM5MDkyMjk5RSs5IiwiLTk1LjUwMTM2ODYiLCItOTUiLCItNDk3MS43MTgwMCIsIjMuNzYwMjkwMjJFKzU5MjYxIik7CisgIG1hdGh0ZXN0KDMwMCxkZWYsIi01OTg1Ljg0MTM2IiwiLTEyLjQwOTAxODRFLTEyMzY0MjA0IiwiLTU5ODUuODQxMzYiLCItNTk4NS44NDEzNiIsIjcuNDI3ODQxNTZFLTEyMzY0MjAwIiwiNC44MjM3ODMxM0UrMTIzNjQyMDYiLCIiLCIiLCItMC4wMDAxNjcwNjA4OTMiKTsKKyAgbWF0aHRlc3QoMzAxLGRlZiwiLTg1MzQ0Mzc5LjQiLCItNjc4My4wODY2OUUrMjE4ODQwMjE1IiwiLTYuNzgzMDg2NjlFKzIxODg0MDIxOCIsIjYuNzgzMDg2NjlFKzIxODg0MDIxOCIsIjUuNzg4OTgzMjRFKzIxODg0MDIyNiIsIjEuMjU4MTkzODVFLTIxODg0MDIxMSIsIjAiLCItODUzNDQzNzkuNCIsIi0zLjAzMjMyMzQ3RS01NiIpOworICBtYXRodGVzdCgzMDIsZGVmLCItOTQuMTk0NzA3MEUtOTM4MjU3MTAzIiwiMTUwMDMuMjQwIiwiMTUwMDMuMjQwMCIsIi0xNTAwMy4yNDAwIiwiLTEuNDEzMjI1ODBFLTkzODI1NzA5NyIsIi02LjI3ODI5MTAyRS05MzgyNTcxMDYiLCIwIiwiLTkuNDE5NDcwNzBFLTkzODI1NzEwMiIsIiIpOworICBtYXRodGVzdCgzMDMsZGVmLCItNDg0NjIzMy42IiwiLTgyODk3NjkuNzYiLCItMTMxMzYwMDMuNCIsIjM0NDM1MzYuMTYiLCI0LjAxNzQxNjA3RSsxMyIsIjAuNTg0NjA0MTI1IiwiMCIsIi00ODQ2MjMzLjYiLCI0LjI1MDc3NTI0RS01NTQyMDQ2NSIpOworICBtYXRodGVzdCgzMDQsZGVmLCI2Ny45MTQ3MTk4IiwiLTEwODM3MzY0NS5FKzI5MTcxNTQxNSIsIi0xLjA4MzczNjQ1RSsyOTE3MTU0MjMiLCIxLjA4MzczNjQ1RSsyOTE3MTU0MjMiLCItNy4zNjAxNjU3M0UrMjkxNzE1NDI0IiwiLTYuMjY2NzE5MTZFLTI5MTcxNTQyMiIsIjAiLCI2Ny45MTQ3MTk4IiwiMC4wMTQ3MjQzNDg1Iik7CisgIG1hdGh0ZXN0KDMwNSxkZWYsIjE5NTguNzc5OTQiLCI1LjU3Mjg1MTM3RSs2OTAxMzc4MjYiLCI1LjU3Mjg1MTM3RSs2OTAxMzc4MjYiLCItNS41NzI4NTEzN0UrNjkwMTM3ODI2IiwiMS4wOTE1OTg5NUUrNjkwMTM3ODMwIiwiMy41MTQ4NjEyNkUtNjkwMTM3ODI0IiwiMCIsIjE5NTguNzc5OTQiLCI1LjY0ODI0OTY4RSsxOSIpOworICBtYXRodGVzdCgzMDYsZGVmLCIyMjc4MDMxNC4zIiwiODgwNTI3OS44MyIsIjMxNTg1NTk0LjEiLCIxMzk3NTAzNC41IiwiMi4wMDU4NzA0MkUrMTQiLCIyLjU4NzExOTg2IiwiMiIsIjUxNjk3NTQuNjQiLCIyLjM5MTMyMTY5RSs2NDc4NTM3MyIpOworICBtYXRodGVzdCgzMDcsZGVmLCI1OTY3NDUuMTg0IiwiMTk3NjAyNDIzLiIsIjE5ODE5OTE2OCIsIi0xOTcwMDU2NzgiLCIxLjE3OTE4Mjk0RSsxNCIsIjAuMDAzMDE5OTI4NDgiLCIwIiwiNTk2NzQ1LjE4NCIsIiIpOworICBtYXRodGVzdCgzMDgsZGVmLCIxNzEuMzQwNDk3IiwiLTQ4MDM0OS45MjQiLCItNDgwMTc4LjU4NCIsIjQ4MDUyMS4yNjQiLCItODIzMDMzOTQuNyIsIi0wLjAwMDM1NjY5OTMzMiIsIjAiLCIxNzEuMzQwNDk3IiwiMi4xNzkxNDEwMkUtMTA3MzAzNSIpOworICBtYXRodGVzdCgzMDksZGVmLCI4MjQuNjU1NTUiLCItMzc5Mjg3LjUzMCIsIi0zNzg0NjIuODc1IiwiMzgwMTEyLjE4NiIsIi0zMTI3ODE1NjciLCItMC4wMDIxNzQyMjI2OCIsIjAiLCI4MjQuNjU1NTUiLCI2LjM1ODI5MjU2RS0xMTA2MTA4Iik7CisgIG1hdGh0ZXN0KDMxMCxkZWYsIjE5LjMxNjQwMzEiLCItOTIwNzY0NC4yNEUrOTg4MTE1MDY5IiwiLTkuMjA3NjQ0MjRFKzk4ODExNTA3NSIsIjkuMjA3NjQ0MjRFKzk4ODExNTA3NSIsIi0xLjc3ODU4NTY4RSs5ODgxMTUwNzciLCItMi4wOTc4NjU5MkUtOTg4MTE1MDc1IiwiMCIsIjE5LjMxNjQwMzEiLCIyLjY3MDkzNzExRS0xMiIpOworICBtYXRodGVzdCgzMTEsZGVmLCItMzEyMy43NzY0NkUrMTc3ODE0MjY1IiwiOTczMjg0NDM1LkUrMzgzMjU2MTEyIiwiOS43MzI4NDQzNUUrMzgzMjU2MTIwIiwiLTkuNzMyODQ0MzVFKzM4MzI1NjEyMCIsIi0zLjA0MDMyMzAxRSs1NjEwNzAzODkiLCItMy4yMDk1MjA2MkUtMjA1NDQxODUzIiwiMCIsIi0zLjEyMzc3NjQ2RSsxNzc4MTQyNjgiLCIiKTsKKyAgbWF0aHRlc3QoMzEyLGRlZiwiLTg1MC4xMjM5MTVFKzY2Mjk1NTMwOSIsIjY3NzQ4NDkuODFFLTg0NjU3Njg2NSIsIi04LjUwMTIzOTE1RSs2NjI5NTUzMTEiLCItOC41MDEyMzkxNUUrNjYyOTU1MzExIiwiLTUuNzU5NDYxODRFLTE4MzYyMTU0NyIsIiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMTMsZGVmLCItMjMzNDkuNzcyNCIsIjI5MjEuMzUzNTUiLCItMjA0MjguNDE4OSIsIi0yNjI3MS4xMjYwIiwiLTY4MjEyOTQwLjUiLCItNy45OTI3OTIzOCIsIi03IiwiLTI5MDAuMjk3NTUiLCItNS42NzA1NTQ2RSsxMjc1OSIpOworICBtYXRodGVzdCgzMTQsZGVmLCIxODg4NjY1My4zIiwiNTY4NzA3NDc2LiIsIjU4NzU5NDEyOSIsIi01NDk4MjA4MjMiLCIxLjA3NDA5ODA5RSsxNiIsIjAuMDMzMjA5Nzg1NSIsIjAiLCIxODg4NjY1My4zIiwiIik7CisgIG1hdGh0ZXN0KDMxNSxkZWYsIi05MDU1MjgxOC4wIiwiLTU0Mi4wMzU2M0UtOTg2NjA2ODc4IiwiLTkwNTUyODE4LjAiLCItOTA1NTI4MTguMCIsIjQuOTA4Mjg1MzhFLTk4NjYwNjg2OCIsIjEuNjcwNjA2MzhFKzk4NjYwNjg4MyIsIiIsIiIsIi0xLjY0MjQ0MjQxRS00MCIpOworICBtYXRodGVzdCgzMTYsZGVmLCI0MTUwMTEyNi4xRSs3OTE4Mzg3NjUiLCItNjkuNjY1MTY3NUUrMjA0MjY4MzQ4IiwiNC4xNTAxMTI2MUUrNzkxODM4NzcyIiwiNC4xNTAxMTI2MUUrNzkxODM4NzcyIiwiLTIuODkxMTgyOTBFKzk5NjEwNzEyMiIsIi01Ljk1NzIyNzYzRSs1ODc1NzA0MjIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzE3LGRlZiwiNzY3ODMxOTMuM0UtMjcxNDg4MTU0IiwiMzc2NS4wMTgyOUUtNTIwMzQ2MDAzIiwiNy42NzgzMTkzM0UtMjcxNDg4MTQ3IiwiNy42NzgzMTkzM0UtMjcxNDg4MTQ3IiwiMi44OTA5MDEyN0UtNzkxODM0MTQ2IiwiMi4wMzkzODQzNEUrMjQ4ODU3ODUzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMxOCxkZWYsIjQxOTIuOTkyOCIsIjk4NzgyMjAwN0UtMTQ2NTYwOTg5IiwiNDE5Mi45OTI4MCIsIjQxOTIuOTkyODAiLCI0LjE0MTkzMDU2RS0xNDY1NjA5NzciLCI0LjI0NDY4NDU0RSsxNDY1NjA5ODMiLCIiLCIiLCIxLjY3OTczNjUzRSszNiIpOworICBtYXRodGVzdCgzMTksZGVmLCItODkxODQ1LjYyOSIsIjQ4Mjc3OTU1LiIsIjQ3Mzg2MTA5LjQiLCItNDkxNjk4MDAuNiIsIi00LjMwNTY0ODMxRSsxMyIsIi0wLjAxODQ3MzE0NDMiLCIwIiwiLTg5MTg0NS42MjkiLCItNi4zMjk2NDE0N0UrMjg3MjY3ODE3Iik7CisgIG1hdGh0ZXN0KDMyMCxkZWYsIjMzNC45MDExNzYiLCItNzYwOTI5Ni41NUUrNDQ3MzQwMjI4IiwiLTcuNjA5Mjk2NTVFKzQ0NzM0MDIzNCIsIjcuNjA5Mjk2NTVFKzQ0NzM0MDIzNCIsIi0yLjU0ODM2MjM2RSs0NDczNDAyMzciLCItNC40MDEyMTA3M0UtNDQ3MzQwMjMzIiwiMCIsIjMzNC45MDExNzYiLCI2LjMxOTI2NTc1RS0yMSIpOworICBtYXRodGVzdCgzMjEsZGVmLCI0LjQ5ODY4NjM2IiwiLTM0MTg4MDg5NkUtNDQ3MjUxODczIiwiNC40OTg2ODYzNiIsIjQuNDk4Njg2MzYiLCItMS41MzgwMTQ5MkUtNDQ3MjUxODY0IiwiLTEuMzE1ODYzNjNFKzQ0NzI1MTg2NSIsIiIsIiIsIjAuMDEwOTgzNTUzIik7CisgIG1hdGh0ZXN0KDMyMixkZWYsIjgwNzYxNS41OCIsIi0zMTQyODY0ODAiLCItMzEzNDc4ODY1IiwiMzE1MDk0MDk2IiwiLTIuNTM4MjI2NThFKzE0IiwiLTAuMDAyNTY5Njc5NjgiLCIwIiwiODA3NjE1LjU4IiwiIik7CisgIG1hdGh0ZXN0KDMyMyxkZWYsIi0zNy43NDU3OTU0IiwiNTMyNzcuODEyOUUtODU5MjI1NTM4IiwiLTM3Ljc0NTc5NTQiLCItMzcuNzQ1Nzk1NCIsIi0yLjAxMTAxMzQzRS04NTkyMjU1MzIiLCItNy4wODQ3MTE4OEUrODU5MjI1NTM0IiwiIiwiIiwiLTc2NjIwMTM0LjEiKTsKKyAgbWF0aHRlc3QoMzI0LGRlZiwiLTI4NjcxMDgxLiIsIjk4Ljg4MTk2MjMiLCItMjg2NzA5ODIuMSIsIi0yODY3MTE3OS45IiwiLTIuODM1MDUyNzVFKzkiLCItMjg5OTUyLjU4OSIsIi0yODk5NTIiLCItNTguMjY3MTkwNCIsIi0xLjkzNjI1NTY2RSs3MzgiKTsKKyAgbWF0aHRlc3QoMzI1LGRlZiwiLTg5NzUyLjIxMDZFLTQ2OTQ5Njg5NiIsIjk5Ljk4Nzk5NjEiLCI5OS45ODc5OTYxIiwiLTk5Ljk4Nzk5NjEiLCItOC45NzQxNDM2OEUtNDY5NDk2ODkwIiwiLTguOTc2Mjk4NTdFLTQ2OTQ5Njg5NCIsIjAiLCItOC45NzUyMjEwNkUtNDY5NDk2ODkyIiwiIik7CisgIG1hdGh0ZXN0KDMyNixkZWYsIi00OTc5ODM1NjdFLTEzNTM4MDUyIiwiMzkuNDU3ODc0MiIsIjM5LjQ1Nzg3NDIiLCItMzkuNDU3ODc0MiIsIi0xLjk2NDkzNzI5RS0xMzUzODA0MiIsIi0xLjI2MjA2Mzg1RS0xMzUzODA0NSIsIjAiLCItNC45Nzk4MzU2N0UtMTM1MzgwNDQiLCItMS41NTM3NjU0M0UtNTI3OTgzNjg5Iik7CisgIG1hdGh0ZXN0KDMyNyxkZWYsIjg0NTczOTIyMUUtNjU0MjAyNTY1IiwiLTMzMzEzLjE1NTEiLCItMzMzMTMuMTU1MSIsIjMzMzEzLjE1NTEiLCItMi44MTc0MjQxOEUtNjU0MjAyNTUyIiwiLTIuNTM4NzU0NDlFLTY1NDIwMjU2MSIsIjAiLCI4LjQ1NzM5MjIxRS02NTQyMDI1NTciLCIiKTsKKyAgbWF0aHRlc3QoMzI4LGRlZiwiNzQyLjMzMjA2N0UrNTM3ODI3ODQzIiwiLTQ1MzIuNzAwMjNFLTg1NTM4NzQxNCIsIjcuNDIzMzIwNjdFKzUzNzgyNzg0NSIsIjcuNDIzMzIwNjdFKzUzNzgyNzg0NSIsIi0zLjM2NDc2ODczRS0zMTc1NTk1NjUiLCIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzI5LGRlZiwiLTg5My40ODY1NCIsIjY3MDM4OTk2MCIsIjY3MDM4OTA2NyIsIi02NzAzOTA4NTMiLCItNS45ODk4NDQwNkUrMTEiLCItMC4wMDAwMDEzMzI3ODYyOCIsIjAiLCItODkzLjQ4NjU0IiwiIik7CisgIG1hdGh0ZXN0KDMzMCxkZWYsIjEuMzc2OTcxNjIiLCItOTE1LjczNzQ3NEUtMzUxNTc4NzI0IiwiMS4zNzY5NzE2MiIsIjEuMzc2OTcxNjIiLCItMS4yNjA5NDQ1MUUtMzUxNTc4NzIxIiwiLTEuNTAzNjc1MDhFKzM1MTU3ODcyMSIsIiIsIiIsIjAuMDU2MTkyMDc4NCIpOworICBtYXRodGVzdCgzMzEsZGVmLCItNjUuMjgzOTgwOEUrNTUwMjg4NDAzIiwiLTEyMTM4OS4zMDYiLCItNi41MjgzOTgwOEUrNTUwMjg4NDA0IiwiLTYuNTI4Mzk4MDhFKzU1MDI4ODQwNCIsIjcuOTI0Nzc3MTJFKzU1MDI4ODQwOSIsIjUuMzc4MDY2ODlFKzU1MDI4ODM5OSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMzIsZGVmLCItMzAzNDY2MDMuRSszNDYwNjczOTAiLCI3OTI2NjEuNTQ0IiwiLTMuMDM0NjYwMzBFKzM0NjA2NzM5NyIsIi0zLjAzNDY2MDMwRSszNDYwNjczOTciLCItMi40MDU0NTg1MkUrMzQ2MDY3NDAzIiwiLTMuODI4NDQzOTZFKzM0NjA2NzM5MSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMzMsZGVmLCItNjExNzAuNzA2NSIsIi00NTM3MzExMzEuIiwiLTQ1Mzc5MjMwMiIsIjQ1MzY2OTk2MCIsIjIuNzc1NTA1MzhFKzEzIiwiMC4wMDAxMzQ4MTcwODEiLCIwIiwiLTYxMTcwLjcwNjUiLCIiKTsKKyAgbWF0aHRlc3QoMzM0LGRlZiwiNjU2OS41MTEzMyIsIjEzLjg3MDYzNTFFKzM5OTQzNDkxNCIsIjEuMzg3MDYzNTFFKzM5OTQzNDkxNSIsIi0xLjM4NzA2MzUxRSszOTk0MzQ5MTUiLCI5LjExMjMyOTQ0RSszOTk0MzQ5MTgiLCI0LjczNjI3MjkxRS0zOTk0MzQ5MTIiLCIwIiwiNjU2OS41MTEzMyIsIjY1NjkuNTExMzMiKTsKKyAgbWF0aHRlc3QoMzM1LGRlZiwiMzAwNzAzOTI1LiIsIi0zMTU2NzM2LjgiLCIyOTc1NDcxODgiLCIzMDM4NjA2NjIiLCItOS40OTI0MzE0NkUrMTQiLCItOTUuMjU3ODM4NyIsIi05NSIsIjgxMzkyOS4wIiwiNC4xODYwOTExNEUtMjY3NjMyNTYiKTsKKyAgbWF0aHRlc3QoMzM2LGRlZiwiMTkyMTM4MjE2RSszNTMwMTE1OTIiLCItNDczLjA4MDYzMyIsIjEuOTIxMzgyMTZFKzM1MzAxMTYwMCIsIjEuOTIxMzgyMTZFKzM1MzAxMTYwMCIsIi05LjA4OTY4Njg4RSszNTMwMTE2MDIiLCItNC4wNjE0MjYzN0UrMzUzMDExNTk3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMzNyxkZWYsIjg2MDcuNjQ3OTQiLCItMzQ3NDAuMzM2NyIsIi0yNjEzMi42ODg4IiwiNDMzNDcuOTg0NiIsIi0yOTkwMzI1ODgiLCItMC4yNDc3NzA5OTkiLCIwIiwiODYwNy42NDc5NCIsIjEuMjk2MDQ1MTlFLTEzNjY5OCIpOworICBtYXRodGVzdCgzMzgsZGVmLCItNjc5MTMuODI0MSIsIi05MzgxNS40MjI5IiwiLTE2MTcyOS4yNDciLCIyNTkwMS41OTg4IiwiNi4zNzEzNjQxM0UrOSIsIjAuNzIzOTA4OTQ4IiwiMCIsIi02NzkxMy44MjQxIiwiLTYuOTYzNTUyMDNFLTQ1MzMxMSIpOworICBtYXRodGVzdCgzMzksZGVmLCIzNC41NTU5NDU1IiwiLTk5ODc5OTM5OC4iLCItOTk4Nzk5MzY0IiwiOTk4Nzk5NDMzIiwiLTMuNDUxNDQ1NzZFKzEwIiwiLTMuNDU5NzQ4MzNFLTgiLCIwIiwiMzQuNTU1OTQ1NSIsIiIpOworICBtYXRodGVzdCgzNDAsZGVmLCIzODc5OTUuMzI4IiwiOTkwMTk5NTQzLkUtMTI0NjIzNjA3IiwiMzg3OTk1LjMyOCIsIjM4Nzk5NS4zMjgiLCIzLjg0MTkyNzk2RS0xMjQ2MjM1OTMiLCIzLjkxODM1NDk1RSsxMjQ2MjM2MDMiLCIiLCIiLCI3LjczMTUyMTM4RSs1NSIpOworICBtYXRodGVzdCgzNDEsZGVmLCItNDcxLjA5MTY2RS04MzUyMTkxOSIsIi00NDEyMjIzNjgiLCItNDQxMjIyMzY4IiwiNDQxMjIyMzY4IiwiMi4wNzg1NjE3OEUtODM1MjE5MDgiLCIxLjA2NzY5NjY5RS04MzUyMTkyNSIsIjAiLCItNC43MTA5MTY2RS04MzUyMTkxNyIsIiIpOworICBtYXRodGVzdCgzNDIsZGVmLCItOTc4MzQuMzg1OCIsIjcwNzc5Nzg5LjhFKzUwMjE2NjA2NSIsIjcuMDc3OTc4OThFKzUwMjE2NjA3MiIsIi03LjA3Nzk3ODk4RSs1MDIxNjYwNzIiLCItNi45MjQ2OTcyNkUrNTAyMTY2MDc3IiwiLTEuMzgyMjM2MTdFLTUwMjE2NjA2OCIsIjAiLCItOTc4MzQuMzg1OCIsIi04LjU3OTA3ODg2RSszNCIpOworICBtYXRodGVzdCgzNDMsZGVmLCI3NzMyMzMxLjA2IiwiLTk1MjcxOS40ODJFKzExNTMyNTUwNSIsIi05LjUyNzE5NDgyRSsxMTUzMjU1MTAiLCI5LjUyNzE5NDgyRSsxMTUzMjU1MTAiLCItNy4zNjY3NDI0NEUrMTE1MzI1NTE3IiwiLTguMTE2MDYyNzFFLTExNTMyNTUwNSIsIjAiLCI3NzMyMzMxLjA2IiwiMS4zMDg4NjcyNEUtNjkiKTsKKyAgbWF0aHRlc3QoMzQ0LGRlZiwiMjMuMjc0NTU0NyIsIjIuMjMxOTQyNDVFLTIyMTA2MjU5MiIsIjIzLjI3NDU1NDciLCIyMy4yNzQ1NTQ3IiwiNS4xOTQ3NDY2NkUtMjIxMDYyNTkxIiwiMS4wNDI3OTM2OEUrMjIxMDYyNTkzIiwiIiwiIiwiNTQxLjcwNDg5NiIpOworICBtYXRodGVzdCgzNDUsZGVmLCI2NzEuMDgzMzYzRS0yMTgzMjQyMDUiLCItNzg3MTUwMDMxIiwiLTc4NzE1MDAzMSIsIjc4NzE1MDAzMSIsIi01LjI4MjQzMjkwRS0yMTgzMjQxOTQiLCItOC41MjU0ODIyN0UtMjE4MzI0MjEyIiwiMCIsIjYuNzEwODMzNjNFLTIxODMyNDIwMyIsIiIpOworICBtYXRodGVzdCgzNDYsZGVmLCIzNjUxNjcuODAiLCItODAyNjMuNjUxNiIsIjI4NDkwNC4xNDgiLCI0NDU0MzEuNDUyIiwiLTIuOTMwOTcwMTFFKzEwIiwiLTQuNTQ5NjAzNjIiLCItNCIsIjQ0MTEzLjE5MzYiLCIxLjI3MDUyMjI3RS00NDY0NjgiKTsKKyAgbWF0aHRlc3QoMzQ3LGRlZiwiLTEuNDMyOTc2MDRFLTY1MTI5NzgwIiwiNTYuNTk4NzMzRS0xMzU1ODE5NDIiLCItMS40MzI5NzYwNEUtNjUxMjk3ODAiLCItMS40MzI5NzYwNEUtNjUxMjk3ODAiLCItOC4xMTA0NjI4M0UtMjAwNzExNzIxIiwiLTIuNTMxODE2NDZFKzcwNDUyMTYwIiwiIiwiIiwiOC42NTgzMTg4MUUtMzkwNzc4NjgwIik7CisgIG1hdGh0ZXN0KDM0OCxkZWYsIjQxNjk5ODg1OS4iLCIyNjAuMjIwMzIzRS0zNDkyODU1OTMiLCI0MTY5OTg4NTkiLCI0MTY5OTg4NTkiLCIxLjA4NTExNTc4RS0zNDkyODU1ODIiLCIxLjYwMjQ4MzgzRSszNDkyODU1OTkiLCIiLCIiLCI3LjI1MTExMTc4RSsyNSIpOworICBtYXRodGVzdCgzNDksZGVmLCI3MjY3LjE3NjExRSs4NjI2MzA2MDciLCI0MDIxLjU2ODYxIiwiNy4yNjcxNzYxMUUrODYyNjMwNjEwIiwiNy4yNjcxNzYxMUUrODYyNjMwNjEwIiwiMi45MjI1NDQ3M0UrODYyNjMwNjE0IiwiMS44MDcwNTAxNEUrODYyNjMwNjA3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM1MCxkZWYsIjEyLjIxNDI0MzRFKzU5MzkwODc0MCIsIjUuMjcyMzY1NzFFLTM5NjA1MDc0OCIsIjEuMjIxNDI0MzRFKzU5MzkwODc0MSIsIjEuMjIxNDI0MzRFKzU5MzkwODc0MSIsIjYuNDM5Nzk1ODFFKzE5Nzg1Nzk5MyIsIjIuMzE2NjUzM0UrOTg5OTU5NDg4IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM1MSxkZWYsIi0yOC41OTE5MzIiLCItMS43OTE1MzIzOEUtODE3MDY0NTc2IiwiLTI4LjU5MTkzMjAiLCItMjguNTkxOTMyMCIsIjUuMTIyMzM3MjBFLTgxNzA2NDU3NSIsIjEuNTk1OTQ4MzhFKzgxNzA2NDU3NyIsIiIsIiIsIjAuMDAxMjIzMjQzNzIiKTsKKyAgbWF0aHRlc3QoMzUyLGRlZiwiNTkwLjg0OTY2NiIsIjc1MzQyNC4zMDZFKzI3NzIzMjc0NCIsIjcuNTM0MjQzMDZFKzI3NzIzMjc0OSIsIi03LjUzNDI0MzA2RSsyNzcyMzI3NDkiLCI0LjQ1MTYwNTAwRSsyNzcyMzI3NTIiLCI3Ljg0MjE5MDE0RS0yNzcyMzI3NDgiLCIwIiwiNTkwLjg0OTY2NiIsIjEuNDg1MzA2MDdFKzIyIik7CisgIG1hdGh0ZXN0KDM1MyxkZWYsIjEuNzI3MDYyOCIsIi0xMzI1MDI2LjY3IiwiLTEzMjUwMjQuOTQiLCIxMzI1MDI4LjQwIiwiLTIyODg0MDQuMjciLCItMC4wMDAwMDEzMDM0MTczOSIsIjAiLCIxLjcyNzA2MjgiLCIyLjA5MjYwMDM2RS0zMTQ0NDAiKTsKKyAgbWF0aHRlc3QoMzU0LGRlZiwiMzM0MDIxMTguIiwiLTU1MzQuODM3NDUiLCIzMzM5NjU4My4yIiwiMzM0MDc2NTIuOCIsIi0xLjg0ODc1Mjk0RSsxMSIsIi02MDM0Ljg4NjkiLCItNjAzNCIsIjQ5MDguODI2NzAiLCI4LjE0NDczOTEzRS00MTY0NSIpOworICBtYXRodGVzdCgzNTUsZGVmLCItNDM5ODQyLjUwNiIsIi03NzUxMTAuODA3IiwiLTEyMTQ5NTMuMzEiLCIzMzUyNjguMzAxIiwiMy40MDkyNjY4MEUrMTEiLCIwLjU2NzQ1NzU4NCIsIjAiLCItNDM5ODQyLjUwNiIsIi0xLjg0Njc4NDcyRS00Mzc0MTgyIik7CisgIG1hdGh0ZXN0KDM1NixkZWYsIi0yNDg2NjQuNzc5IiwiLTQ0MDg5MC40NEUrNjY2NDMzOTQ0IiwiLTQuNDA4OTA0NDBFKzY2NjQzMzk0OSIsIjQuNDA4OTA0NDBFKzY2NjQzMzk0OSIsIjEuMDk2MzM5MjRFKzY2NjQzMzk1NSIsIjUuNjQwMDU4MzFFLTY2NjQzMzk0NSIsIjAiLCItMjQ4NjY0Ljc3OSIsIjIuNjE1NDI4NzdFLTIyIik7CisgIG1hdGh0ZXN0KDM1NyxkZWYsIi0xNDE2MS45MTQyIiwiODMwNi40OTQ5MyIsIi01ODU1LjQxOTMiLCItMjI0NjguNDA5MSIsIi0xMTc2MzU4NjkiLCItMS43MDQ5MjA1OSIsIi0xIiwiLTU4NTUuNDE5MjciLCIxLjY1NTczMzcyRSszNDQ3OSIpOworICBtYXRodGVzdCgzNTgsZGVmLCItNjQxNzIyNy4xMyIsIjE2Njc5Ljg4NDIiLCItNjQwMDU0Ny4yNSIsIi02NDMzOTA3LjAxIiwiLTEuMDcwMzg2MDVFKzExIiwiLTM4NC43Mjg1MTgiLCItMzg0IiwiLTEyMTUxLjU5NzIiLCIzLjU4NzY3OTc4RSsxMTM1NDYiKTsKKyAgbWF0aHRlc3QoMzU5LGRlZiwiNTE0ODI1MDI0LiIsIi0yNS4wNDQ2MzQ1RS0xMDM4MDk0NTciLCI1MTQ4MjUwMjQiLCI1MTQ4MjUwMjQiLCItMS4yODkzNjA0NkUtMTAzODA5NDQ3IiwiLTIuMDU1NjMwMDJFKzEwMzgwOTQ2NCIsIiIsIiIsIjcuMzI4NjAwNjJFLTI3Iik7CisgIG1hdGh0ZXN0KDM2MCxkZWYsIjUyNTk0ODE5NiIsIjIxOTQ1MDM5MCIsIjc0NTM5ODU4NiIsIjMwNjQ5NzgwNiIsIjEuMTU0MTk1MzdFKzE3IiwiMi4zOTY2NjEwMiIsIjIiLCI4NzA0NzQxNiIsIiIpOworICBtYXRodGVzdCgzNjEsZGVmLCItNjM4NTA5LjE4MSIsIjQ1NTgwMTg5LjBFKzI2OTIxMjU1OSIsIjQuNTU4MDE4OTBFKzI2OTIxMjU2NiIsIi00LjU1ODAxODkwRSsyNjkyMTI1NjYiLCItMi45MTAzMzY5MUUrMjY5MjEyNTcyIiwiLTEuNDAwODQ4MDNFLTI2OTIxMjU2MSIsIjAiLCItNjM4NTA5LjE4MSIsIi0xLjA2MTI5NDA1RSsyOSIpOworICBtYXRodGVzdCgzNjIsZGVmLCIzMzA1OTA0MjIiLCI3NC4zNTk5MjhFKzUzNTM3Nzk2NSIsIjcuNDM1OTkyODBFKzUzNTM3Nzk2NiIsIi03LjQzNTk5MjgwRSs1MzUzNzc5NjYiLCIyLjQ1ODI2ODAwRSs1MzUzNzc5NzUiLCI0LjQ0NTgxNDE4RS01MzUzNzc5NTkiLCIwIiwiMzMwNTkwNDIyIiwiNC4zMTU1MDc0MkUrNTkiKTsKKyAgbWF0aHRlc3QoMzYzLGRlZiwiLTMuNDg1OTM4NzFFLTk0MDU3OTkwNCIsIi0yMDI2NS45NjQwRS0zMjI5ODg5ODciLCItMi4wMjY1OTY0MEUtMzIyOTg4OTgzIiwiMi4wMjY1OTY0MEUtMzIyOTg4OTgzIiwiIiwiMS43MjAwOTUxOUUtNjE3NTkwOTIxIiwiMCIsIi0zLjQ4NTkzODcxRS05NDA1Nzk5MDQiLCIiKTsKKyAgbWF0aHRlc3QoMzY0LGRlZiwiLTMyODEwMzQ4MC4iLCItNzIxLjk0OTM3MUUtOTIzOTM4NjY1IiwiLTMyODEwMzQ4MCIsIi0zMjgxMDM0ODAiLCIyLjM2ODc0MTAxRS05MjM5Mzg2NTQiLCI0LjU0NDY4ODIyRSs5MjM5Mzg2NzAiLCIiLCIiLCItMi40NDMwMDM4RS02MCIpOworICBtYXRodGVzdCgzNjUsZGVmLCItMTg1Ny4wMTQ0OCIsIjE5MDgxNTc4LjEiLCIxOTA3OTcyMS4xIiwiLTE5MDgzNDM1LjEiLCItMy41NDM0NzY2OEUrMTAiLCItMC4wMDAwOTczMTk3NTM3IiwiMCIsIi0xODU3LjAxNDQ4IiwiOC40NDM5NzA4N0UrNjIzNzQxNTMiKTsKKyAgbWF0aHRlc3QoMzY2LGRlZiwiMzQ3LjI4NzIwRSsxNDU5MzA3NzEiLCItNjI4MjEuOTkwNkUtNjc2NTY0MTA2IiwiMy40NzI4NzIwMEUrMTQ1OTMwNzczIiwiMy40NzI4NzIwMEUrMTQ1OTMwNzczIiwiLTIuMTgxNzI3MzJFLTUzMDYzMzMyOCIsIi01LjUyODExNTE4RSs4MjI0OTQ4NzQiLCIiLCIiLCI1LjY5OTkwMTM1RS04NzU1ODQ2NDIiKTsKKyAgbWF0aHRlc3QoMzY3LGRlZiwiLTY0My4yMTEzOTlFKzQ0MTgwNzAwMyIsIi01MDczMzQxOS4yIiwiLTYuNDMyMTEzOTlFKzQ0MTgwNzAwNSIsIi02LjQzMjExMzk5RSs0NDE4MDcwMDUiLCIzLjI2MzIzMTM1RSs0NDE4MDcwMTMiLCIxLjI2NzgyNTg0RSs0NDE4MDY5OTgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzY4LGRlZiwiLTUzOTkxNjYxLjRFLTg0MzMzOTU1NCIsIjIwNzE4LjczNDYiLCIyMDcxOC43MzQ2IiwiLTIwNzE4LjczNDYiLCItMS4xMTg2Mzg5MEUtODQzMzM5NTQyIiwiLTIuNjA1OTM0MzFFLTg0MzMzOTU1MSIsIjAiLCItNS4zOTkxNjYxNEUtODQzMzM5NTQ3IiwiIik7CisgIG1hdGh0ZXN0KDM2OSxkZWYsIi05MDAxODE0MjQiLCItMTA1NzYzOTgyLiIsIi0xLjAwNTk0NTQxRSs5IiwiLTc5NDQxNzQ0MiIsIjkuNTIwNjc3MTlFKzE2IiwiOC41MTEyMjg1NiIsIjgiLCItNTQwNjk1NjgiLCIxLjMyNjI3MDYxRS05NDcwNDU2MDIiKTsKKyAgbWF0aHRlc3QoMzcwLGRlZiwiOTQyMTguNzQ2MkUrNTYzMjMzOTUxIiwiMTkyNjIuNjM4MkUrNzY1MjYzODkwIiwiMS45MjYyNjM4MkUrNzY1MjYzODk0IiwiLTEuOTI2MjYzODJFKzc2NTI2Mzg5NCIsIiIsIjQuODkxMjY5MDZFLTIwMjAyOTkzOSIsIjAiLCI5LjQyMTg3NDYyRSs1NjMyMzM5NTUiLCIiKTsKKyAgbWF0aHRlc3QoMzcxLGRlZiwiMjg1NDkuMjcxRSs5MjEzMzE4MjgiLCItMjE1MDU5MC40MCIsIjIuODU0OTI3MTBFKzkyMTMzMTgzMiIsIjIuODU0OTI3MTBFKzkyMTMzMTgzMiIsIi02LjEzOTc3ODgxRSs5MjEzMzE4MzgiLCItMS4zMjc1MDg1M0UrOTIxMzMxODI2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM3MixkZWYsIjgxMC43MDgwRSs3Nzk2MjU3NjMiLCI1OTU3Ljk0MDQ0IiwiOC4xMDcwODAwMEUrNzc5NjI1NzY1IiwiOC4xMDcwODAwMEUrNzc5NjI1NzY1IiwiNC44MzAxNDk5OEUrNzc5NjI1NzY5IiwiMS4zNjA3MTg1NEUrNzc5NjI1NzYyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM3MyxkZWYsIi0yMy43MzU3NTQ5RSs3NzExNjkwOCIsIjM1MS4xMDA2NDlFKzg2NDM0ODAyMiIsIjMuNTExMDA2NDlFKzg2NDM0ODAyNCIsIi0zLjUxMTAwNjQ5RSs4NjQzNDgwMjQiLCItOC4zMzM2Mzg5NUUrOTQxNDY0OTMzIiwiLTYuNzYwMzg0OEUtNzg3MjMxMTE2IiwiMCIsIi0yLjM3MzU3NTQ5RSs3NzExNjkwOSIsIjMuMTc0MDM4NTNFKzMwODQ2NzYzNyIpOworICBtYXRodGVzdCgzNzQsZGVmLCI0MDIxNjEwMi4yRSsyOTI3MjQ1NDQiLCI2NjEuMDI1OTYyIiwiNC4wMjE2MTAyMkUrMjkyNzI0NTUxIiwiNC4wMjE2MTAyMkUrMjkyNzI0NTUxIiwiMi42NTgzODg3NkUrMjkyNzI0NTU0IiwiNi4wODM4OTE0OEUrMjkyNzI0NTQ4IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM3NSxkZWYsIjIyNzg1MDI0LjNFKzc4MzcxOTE2OCIsIjM5OS41MDU5ODlFKzEzNzQ3ODY2NiIsIjIuMjc4NTAyNDNFKzc4MzcxOTE3NSIsIjIuMjc4NTAyNDNFKzc4MzcxOTE3NSIsIjkuMTAyNzUzNjdFKzkyMTE5Nzg0MyIsIjUuNzAzMjk5ODFFKzY0NjI0MDUwNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzYsZGVmLCI1MTUuNTkxODE5RSs4MjEzNzEzNjQiLCItNjkyMTM3OTE0LkUtMTQ5NDk4NjkwIiwiNS4xNTU5MTgxOUUrODIxMzcxMzY2IiwiNS4xNTU5MTgxOUUrODIxMzcxMzY2IiwiLTMuNTY4NjA2NDZFKzY3MTg3MjY4NSIsIi03LjQ0OTI2NDIxRSs5NzA4NzAwNDciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzc3LGRlZiwiLTUzNjg4MzA3MkUrNDc3OTExMjUxIiwiNjI0OTk2LjMwMSIsIi01LjM2ODgzMDcyRSs0Nzc5MTEyNTkiLCItNS4zNjg4MzA3MkUrNDc3OTExMjU5IiwiLTMuMzU1NDk5MzRFKzQ3NzkxMTI2NSIsIi04LjU5MDE3OTk5RSs0Nzc5MTEyNTMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzc4LGRlZiwiLTM5OTQ5Mi45MTRFLTMzNDM2OTE5MiIsIjUyMDIxMTkuODdFKzQ0MjQ0MjI1OCIsIjUuMjAyMTE5ODdFKzQ0MjQ0MjI2NCIsIi01LjIwMjExOTg3RSs0NDI0NDIyNjQiLCItMi4wNzgyMTAwM0UrMTA4MDczMDc4IiwiLTcuNjc5NDI1MzlFLTc3NjgxMTQ1MiIsIjAiLCItMy45OTQ5MjkxNEUtMzM0MzY5MTg3IiwiIik7CisgIG1hdGh0ZXN0KDM3OSxkZWYsIjc2Mi4wNzExODQiLCI5ODUxNjMxLjM3IiwiOTg1MjM5My40NCIsIi05ODUwODY5LjMwIiwiNy41MDc2NDQzOEUrOSIsIjAuMDAwMDc3MzU0ODIxMyIsIjAiLCI3NjIuMDcxMTg0IiwiNC4wMjE5ODQzNkUrMjgzOTIzNTYiKTsKKyAgbWF0aHRlc3QoMzgwLGRlZiwiNTYyNi4xMjQ3MSIsIjcyOTg5ODE4LjMiLCI3Mjk5NTQ0NC40IiwiLTcyOTg0MTkyLjIiLCI0LjEwNjQ5ODIwRSsxMSIsIjAuMDAwMDc3MDgwOTUyNCIsIjAiLCI1NjI2LjEyNDcxIiwiMS43OTgxNDc1N0UrMjczNzI3MDk4Iik7CisgIG1hdGh0ZXN0KDM4MSxkZWYsIi00NzIwNzI2MC4xIiwiLTIwNzMuMzE1MiIsIi00NzIwOTMzMy40IiwiLTQ3MjA1MTg2LjgiLCI5Ljc4NzU1Mjk5RSsxMCIsIjIyNzY4Ljk3NDEiLCIyMjc2OCIsIi0yMDE5LjYyNjQiLCItNi4wMjIzODMxOUUtMTU5MDkiKTsKKyAgbWF0aHRlc3QoMzgyLGRlZiwiMjA3Ljc0MDg2MCIsIi01MS4wMzkwMDkwIiwiMTU2LjcwMTg1MSIsIjI1OC43Nzk4NjkiLCItMTA2MDIuODg3NiIsIi00LjA3MDIzNjk0IiwiLTQiLCIzLjU4NDgyNDAiLCI2LjQwMjk3NTE1RS0xMTkiKTsKKyAgbWF0aHRlc3QoMzgzLGRlZiwiLTU3Mi44MTI0NjRFLTc0NTkzNDAyMSIsIi0xODI4MDU4NzIuRSs2MDQ1MDg2ODEiLCItMS44MjgwNTg3MkUrNjA0NTA4Njg5IiwiMS44MjgwNTg3MkUrNjA0NTA4Njg5IiwiMS4wNDcxMzQ4MkUtMTQxNDI1MzI5IiwiIiwiMCIsIi01LjcyODEyNDY0RS03NDU5MzQwMTkiLCIiKTsKKyAgbWF0aHRlc3QoMzg0LGRlZiwiLTY0MTg1MDRFKzM1MzE0MDciLCI4NDU5NDE2LjEiLCItNi40MTg1MDQwMEUrMzUzMTQxMyIsIi02LjQxODUwNDAwRSszNTMxNDEzIiwiLTUuNDI5Njc5NjFFKzM1MzE0MjAiLCItNy41ODc0MDc4NEUrMzUzMTQwNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzODUsZGVmLCIyODA2ODkuNTMxIiwiLTEyODIxMjU0MyIsIi0xMjc5MzE4NTQiLCIxMjg0OTMyMzMiLCItMy41OTg3OTE4NkUrMTMiLCItMC4wMDIxODkyNTE3MyIsIjAiLCIyODA2ODkuNTMxIiwiMS40MjE3MzgwOUUtNjk4NTMwOTM4Iik7CisgIG1hdGh0ZXN0KDM4NixkZWYsIjE1LjgwMzU1MUUtNzgzNDIyNzkzIiwiMjM5MTA4MDM4RS00ODkxODYzMDgiLCIyLjM5MTA4MDM4RS00ODkxODYzMDAiLCItMi4zOTEwODAzOEUtNDg5MTg2MzAwIiwiIiwiNi42MDkzNzY3MkUtMjk0MjM2NDkzIiwiMCIsIjEuNTgwMzU1MUUtNzgzNDIyNzkyIiwiIik7CisgIG1hdGh0ZXN0KDM4NyxkZWYsIjI2LjUxNTkyMiIsIi05NDE4MjQyLjk2RS0xMDU0ODE2MjgiLCIyNi41MTU5MjIwIiwiMjYuNTE1OTIyMCIsIi0yLjQ5NzMzMzk2RS0xMDU0ODE2MjAiLCItMi44MTUzNzg4NUUrMTA1NDgxNjIyIiwiIiwiIiwiMS41NDMyNjEwOEUtMTMiKTsKKyAgbWF0aHRlc3QoMzg4LGRlZiwiLTg4LjEwOTQ1NTciLCItNTQwMjk5MzQuMSIsIi01NDAzMDAyMi4yIiwiNTQwMjk4NDYuMCIsIjQuNzYwNTQ4MDlFKzkiLCIwLjAwMDAwMTYzMDc1MjYiLCIwIiwiLTg4LjEwOTQ1NTciLCI1LjA1Mjg5ODI2RS0xMDUwODk0MzkiKTsKKyAgbWF0aHRlc3QoMzg5LGRlZiwiNjc3MC42ODYwMkUtNDk4NDIwMzk3IiwiLTYuMTEyNDg5MDhFLTcyOTYxNjkwOCIsIjYuNzcwNjg2MDJFLTQ5ODQyMDM5NCIsIjYuNzcwNjg2MDJFLTQ5ODQyMDM5NCIsIiIsIi0xLjEwNzY4MDY3RSsyMzExOTY1MTQiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzkwLGRlZiwiLTg5Mjk3MzgxOC5FLTc4MTkwNDQ0MSIsIjU1NTIwMTI5OS4iLCI1NTUyMDEyOTkiLCItNTU1MjAxMjk5IiwiLTQuOTU3ODAyMjRFLTc4MTkwNDQyNCIsIi0xLjYwODM3ODQ3RS03ODE5MDQ0NDEiLCIwIiwiLTguOTI5NzM4MThFLTc4MTkwNDQzMyIsIiIpOworICBtYXRodGVzdCgzOTEsZGVmLCI2NzAxNzU4MDJFKzEzNTQzMDY4MCIsIjI3MzU1MTk1LjQiLCI2LjcwMTc1ODAyRSsxMzU0MzA2ODgiLCI2LjcwMTc1ODAyRSsxMzU0MzA2ODgiLCIxLjgzMzI3OTAwRSsxMzU0MzA2OTYiLCIyLjQ0OTkwMzE4RSsxMzU0MzA2ODEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzkyLGRlZiwiLTQ0MDk1MC4yNiIsIjIwNS40Nzc0NjlFLTY3NzM0NTU2MSIsIi00NDA5NTAuMjYwIiwiLTQ0MDk1MC4yNjAiLCItOS4wNjA1MzQzNEUtNjc3MzQ1NTU0IiwiLTIuMTQ1OTc4NjRFKzY3NzM0NTU2NCIsIiIsIiIsIjEuOTQ0MzcxMzJFKzExIik7CisgIG1hdGh0ZXN0KDM5MyxkZWYsIi04LjIzMzU3NzkiLCI1NzM2NjUwMTBFKzc0MjcyMjA3NSIsIjUuNzM2NjUwMTBFKzc0MjcyMjA4MyIsIi01LjczNjY1MDEwRSs3NDI3MjIwODMiLCItNC43MjMzMTU1NUUrNzQyNzIyMDg0IiwiLTEuNDM1MjU4ODZFLTc0MjcyMjA4MyIsIjAiLCItOC4yMzM1Nzc5IiwiMzExNTUyLjc1MyIpOworICBtYXRodGVzdCgzOTQsZGVmLCI0NTI5NDMuODYzIiwiNzAyMi4yMzYyOSIsIjQ1OTk2Ni4wOTkiLCI0NDU5MjEuNjI3IiwiMy4xODA2Nzg4M0UrOSIsIjY0LjUwMTM3MDMiLCI2NCIsIjM1MjAuNzQwNDQiLCI1LjU0MTU4OTc2RSszOTcxNiIpOworICBtYXRodGVzdCgzOTUsZGVmLCI2Mjg3NC4xMDc5IiwiLTUyNzE5NjU0LjEiLCItNTI2NTY3ODAuMCIsIjUyNzgyNTI4LjIiLCItMy4zMTQ3MDEyMkUrMTIiLCItMC4wMDExOTI2MTIzIiwiMCIsIjYyODc0LjEwNzkiLCIxLjE4ODE5OTM2RS0yNTI5NzM3NzUiKTsKKyAgbWF0aHRlc3QoMzk2LGRlZiwiLTc0MjguNDE3NDFFKzYwOTc3MjAzNyIsIi00NjAyNDgxOS4zIiwiLTcuNDI4NDE3NDFFKzYwOTc3MjA0MCIsIi03LjQyODQxNzQxRSs2MDk3NzIwNDAiLCIzLjQxODkxNTY5RSs2MDk3NzIwNDgiLCIxLjYxNDAwMjUxRSs2MDk3NzIwMzMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzk3LGRlZiwiMi4yNzk1OTI5NyIsIjQxOTM3LjAxOSIsIjQxOTM5LjI5ODYiLCItNDE5MzQuNzM5NCIsIjk1NTk5LjMzMzciLCIwLjAwMDA1NDM1NzUzNDgiLCIwIiwiMi4yNzk1OTI5NyIsIjIuODk3MTI0MjNFKzE1MDA3Iik7CisgIG1hdGh0ZXN0KDM5OCxkZWYsIjUwODY5MjQwOEUtNjcxOTY3NzgyIiwiODQ5MTk4OS4yMCIsIjg0OTE5ODkuMjAiLCItODQ5MTk4OS4yMCIsIjQuMzE5ODEwNDNFLTY3MTk2Nzc2NyIsIjUuOTkwMjYyMDdFLTY3MTk2Nzc4MSIsIjAiLCI1LjA4NjkyNDA4RS02NzE5Njc3NzQiLCIiKTsKKyAgbWF0aHRlc3QoMzk5LGRlZiwiOTQwLjUzMzcwNUUtMzc5MzEwNDIxIiwiLTQuMDExNzY5NjFFKzQ2NDYyMDAzNyIsIi00LjAxMTc2OTYxRSs0NjQ2MjAwMzciLCI0LjAxMTc2OTYxRSs0NjQ2MjAwMzciLCItMy43NzMyMDQ1M0UrODUzMDk2MTkiLCItMi4zNDQ0MzU5OUUtODQzOTMwNDU2IiwiMCIsIjkuNDA1MzM3MDVFLTM3OTMxMDQxOSIsIiIpOworICBtYXRodGVzdCg0MDAsZGVmLCI5Ny4wNjQ5NjUyIiwiLTkyLjQ0ODU2NDlFLTE1MTk4OTA5OCIsIjk3LjA2NDk2NTIiLCI5Ny4wNjQ5NjUyIiwiLTguOTczNTE2NzNFLTE1MTk4OTA5NSIsIi0xLjA0OTkzNDhFKzE1MTk4OTA5OCIsIiIsIiIsIjEuMzA3NDg3MjhFLTE4Iik7CisgIG1hdGh0ZXN0KDQwMSxkZWYsIjI5NzU0NC41MzZFKzM2MDI3OTQ3MyIsIjguODAyNzUwMDciLCIyLjk3NTQ0NTM2RSszNjAyNzk0NzgiLCIyLjk3NTQ0NTM2RSszNjAyNzk0NzgiLCIyLjYxOTIxMDE5RSszNjAyNzk0NzkiLCIzLjM4MDEzMTU5RSszNjAyNzk0NzciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDAyLGRlZiwiLTI4ODYxMDI4LiIsIjgyODE4LjgyMEUrMTM4MzY4NzU4IiwiOC4yODE4ODIwMEUrMTM4MzY4NzYyIiwiLTguMjgxODgyMDBFKzEzODM2ODc2MiIsIi0yLjM5MDIzNjI4RSsxMzgzNjg3NzAiLCItMy40ODQ4MzkzMkUtMTM4MzY4NzU2IiwiMCIsIi0yODg2MTAyOCIsIjQuODEzODcwMTNFKzU5Iik7CisgIG1hdGh0ZXN0KDQwMyxkZWYsIjM2LjI0OTYyMzhFKzY4ODI4MDM5IiwiNDkyNDMuMDAiLCIzLjYyNDk2MjM4RSs2ODgyODA0MCIsIjMuNjI0OTYyMzhFKzY4ODI4MDQwIiwiMS43ODUwNDAyMkUrNjg4MjgwNDUiLCI3LjM2MTM3NTk5RSs2ODgyODAzNSIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MDQsZGVmLCIyMi40NDc4MjhFLTQ3NjAxNDY4MyIsIi01NjA2Ny41NTIwIiwiLTU2MDY3LjU1MjAiLCI1NjA2Ny41NTIwIiwiLTEuMjU4NTk0NzZFLTQ3NjAxNDY3NyIsIi00LjAwMzcxMTA5RS00NzYwMTQ2ODciLCIwIiwiMi4yNDQ3ODI4RS00NzYwMTQ2ODIiLCIiKTsKKyAgbWF0aHRlc3QoNDA1LGRlZiwiMjgyNjg4Ljc5MUUrNzUwMTE5NTIiLCI1Ljk5Nzg5MDUxIiwiMi44MjY4ODc5MUUrNzUwMTE5NTciLCIyLjgyNjg4NzkxRSs3NTAxMTk1NyIsIjEuNjk1NTM2NDJFKzc1MDExOTU4IiwiNC43MTMxMzY5RSs3NTAxMTk1NiIsIiIsIiIsIjUuMTAzMzA1MDdFKzQ1MDA3MTc0NCIpOworICBtYXRodGVzdCg0MDYsZGVmLCItOTgxLjg2MDMxMEUtNzM3Mzg3MDAyIiwiLTk5NDA0NjI4OSIsIi05OTQwNDYyODkiLCI5OTQwNDYyODkiLCI5Ljc2MDE0NTk3RS03MzczODY5OTEiLCI5Ljg3NzQxMDM1RS03MzczODcwMDkiLCIwIiwiLTkuODE4NjAzMTBFLTczNzM4NzAwMCIsIiIpOworICBtYXRodGVzdCg0MDcsZGVmLCItNzAyLjkxMjEwIiwiLTY0NDQ5MDMuNTUiLCItNjQ0NTYwNi40NiIsIjY0NDQyMDAuNjQiLCI0LjUzMDIwMDY5RSs5IiwiMC4wMDAxMDkwNjQ3OTciLCIwIiwiLTcwMi45MTIxMCIsIjEuNzA4NjY3MDNFLTE4MzQ4MDA0Iik7CisgIG1hdGh0ZXN0KDQwOCxkZWYsIjk3MjQ1NjcyMEUtMTc1MzY4MjMiLCIxNjM3MS4yNTkwIiwiMTYzNzEuMjU5MCIsIi0xNjM3MS4yNTkwIiwiMS41OTIwMzQwOEUtMTc1MzY4MTAiLCI1Ljk0MDAyNDA0RS0xNzUzNjgxOSIsIjAiLCI5LjcyNDU2NzIwRS0xNzUzNjgxNSIsIiIpOworICBtYXRodGVzdCg0MDksZGVmLCI3MTQ3MS4yMDQ1IiwiLTc0MzAzMjc4LjQiLCItNzQyMzE4MDcuMiIsIjc0Mzc0NzQ5LjYiLCItNS4zMTA1NDQ4MUUrMTIiLCItMC4wMDA5NjE4ODQ5NCIsIjAiLCI3MTQ3MS4yMDQ1IiwiMi4xNDUzNTM3NEUtMzYwNjc3ODUzIik7CisgIG1hdGh0ZXN0KDQxMCxkZWYsIjY0My4xMDM5NTFFKzQzOTcwODQ0MSIsIjc4ODI1MTkyNS4iLCI2LjQzMTAzOTUxRSs0Mzk3MDg0NDMiLCI2LjQzMTAzOTUxRSs0Mzk3MDg0NDMiLCI1LjA2OTI3OTI3RSs0Mzk3MDg0NTIiLCI4LjE1ODYwOTMzRSs0Mzk3MDg0MzQiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDExLGRlZiwiNC4zMDgzODY2MyIsIi03LjQzMTEwODI3IiwiLTMuMTIyNzIxNjQiLCIxMS43Mzk0OTQ5IiwiLTMyLjAxNjA4NzUiLCItMC41Nzk3NzcxMzEiLCIwIiwiNC4zMDgzODY2MyIsIjAuMDAwMDM2MjkwODY0NSIpOworICBtYXRodGVzdCg0MTIsZGVmLCI4MjMuNjc4MDI1IiwiLTUxMy41ODE4NDBFLTMyNDQ1MzE0MSIsIjgyMy42NzgwMjUiLCI4MjMuNjc4MDI1IiwiLTQuMjMwMjYwNzZFLTMyNDQ1MzEzNiIsIi0xLjYwMzc5MTE4RSszMjQ0NTMxNDEiLCIiLCIiLCIyLjYzNzYyMjI4RS0xNSIpOworICBtYXRodGVzdCg0MTMsZGVmLCI0NDYxLjgxMTYyIiwiMy4yMjA4MTY4MCIsIjQ0NjUuMDMyNDQiLCI0NDU4LjU5MDgwIiwiMTQzNzAuNjc3OCIsIjEzODUuMzA0MzgiLCIxMzg1IiwiMC45ODAzNTIwMCIsIjguODgyNDY4OEUrMTAiKTsKKyAgbWF0aHRlc3QoNDE0LGRlZiwiLTQ0NTg1MjcuMTAiLCItOTkwNzI2MDUiLCItMTAzNTMxMTMyIiwiOTQ2MTQwNzcuOSIsIjQuNDE3MTc4OTRFKzE0IiwiMC4wNDUwMDI2MjMxIiwiMCIsIi00NDU4NTI3LjEwIiwiLTYuMjM5MjgwOTlFLTY1ODc1MjcxNSIpOworICBtYXRodGVzdCg0MTUsZGVmLCItNTc3OTY0NjE4IiwiNDg3NDI0MzY4LiIsIi05MDU0MDI1MCIsIi0xLjA2NTM4ODk5RSs5IiwiLTIuODE3MTQwMzlFKzE3IiwiLTEuMTg1NzUyNDEiLCItMSIsIi05MDU0MDI1MCIsIiIpOworICBtYXRodGVzdCg0MTYsZGVmLCItODY3LjAzNjE4NCIsIi01Ny4xNzY4NjA4IiwiLTkyNC4yMTMwNDUiLCItODA5Ljg1OTMyMyIsIjQ5NTc0LjQwNzIiLCIxNS4xNjQxMDk2IiwiMTUiLCItOS4zODMyNzIwIiwiLTMuNDAzMTI4MzdFLTE2OCIpOworICBtYXRodGVzdCg0MTcsZGVmLCI3NzE4NzE5MjFFLTMzMDUwNDc3MCIsIjUuMzQyODUyMzYiLCI1LjM0Mjg1MjM2IiwiLTUuMzQyODUyMzYiLCI0LjEyMzk5NzcxRS0zMzA1MDQ3NjEiLCIxLjQ0NDY4MTM2RS0zMzA1MDQ3NjIiLCIwIiwiNy43MTg3MTkyMUUtMzMwNTA0NzYyIiwiIik7CisgIG1hdGh0ZXN0KDQxOCxkZWYsIi0zMzg2ODMuMDYyRS03Mjg3Nzc1MTgiLCIxNjY0NDE5MzEiLCIxNjY0NDE5MzEiLCItMTY2NDQxOTMxIiwiLTUuNjM3MTA2MjhFLTcyODc3NzUwNSIsIi0yLjAzNDg0MjE4RS03Mjg3Nzc1MjEiLCIwIiwiLTMuMzg2ODMwNjJFLTcyODc3NzUxMyIsIiIpOworICBtYXRodGVzdCg0MTksZGVmLCItNTEyNTY4NzQzIiwiLTQxNjM3Njg4Ny5FLTk2NTk0NTI5NSIsIi01MTI1Njg3NDMiLCItNTEyNTY4NzQzIiwiMi4xMzQyMTc3OEUtOTY1OTQ1Mjc4IiwiMS4yMzEwMjExMkUrOTY1OTQ1Mjk1IiwiIiwiIiwiMS40NDg3NDM1OEUtMzUiKTsKKyAgbWF0aHRlc3QoNDIwLGRlZiwiNzQ0NzE4MS45OSIsIjUzMTg0MzguNTIiLCIxMjc2NTYyMC41IiwiMjEyODc0My40NyIsIjMuOTYwNzM3OTZFKzEzIiwiMS40MDAyNTcyMyIsIjEiLCIyMTI4NzQzLjQ3IiwiMS4yMTYzNDc4MkUrMzY1NDgyNzAiKTsKKyAgbWF0aHRlc3QoNDIxLGRlZiwiNTQ3ODkuODIwNyIsIjkzMTY1NDM1LjIiLCI5MzIyMDIyNS4wIiwiLTkzMTEwNjQ1LjQiLCI1LjEwNDUxNzQ5RSsxMiIsIjAuMDAwNTg4MDkxNzE2IiwiMCIsIjU0Nzg5LjgyMDciLCIzLjgwNzY5ODI1RSs0NDE0ODMwMzUiKTsKKyAgbWF0aHRlc3QoNDIyLGRlZiwiNDE0ODguNTk2MCIsIjE0Ni43OTcwOTQiLCI0MTYzNS4zOTMxIiwiNDEzNDEuNzk4OSIsIjYwOTA0MDUuMzMiLCIyODIuNjI1NDU5IiwiMjgyIiwiOTEuODE1NDkyIiwiNi44NDczODE1M0UrNjc4Iik7CisgIG1hdGh0ZXN0KDQyMyxkZWYsIjc4NTc0MS42NjNFKzU2NzU0NTI5IiwiLTQ2MS41MzE3MzIiLCI3Ljg1NzQxNjYzRSs1Njc1NDUzNCIsIjcuODU3NDE2NjNFKzU2NzU0NTM0IiwiLTMuNjI2NDQ3MTFFKzU2NzU0NTM3IiwiLTEuNzAyNDY1MDlFKzU2NzU0NTMyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQyNCxkZWYsIi00Ljk1NDM2Nzg2IiwiLTMxMzIuNDIzMyIsIi0zMTM3LjM3NzY3IiwiMzEyNy40Njg5MyIsIjE1NTE5LjE3NzMiLCIwLjAwMTU4MTY0MDYiLCIwIiwiLTQuOTU0MzY3ODYiLCIxLjk4MDYyNDIyRS0yMTc3Iik7CisgIG1hdGh0ZXN0KDQyNSxkZWYsIjc3MzIxLjg0NzhFKzQwNDYyNjg3NCIsIjgyLjQ3OTc2ODgiLCI3LjczMjE4NDc4RSs0MDQ2MjY4NzgiLCI3LjczMjE4NDc4RSs0MDQ2MjY4NzgiLCI2LjM3NzQ4ODEzRSs0MDQ2MjY4ODAiLCI5LjM3NDY0NDFFKzQwNDYyNjg3NiIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MjYsZGVmLCItNy45OTMwNzcyNSIsIi0yOTE1My43MjczIiwiLTI5MTYxLjcyMDQiLCIyOTE0NS43MzQyIiwiMjMzMDI3Ljk5NCIsIjAuMDAwMjc0MTY5OTk0IiwiMCIsIi03Ljk5MzA3NzI1IiwiMS44ODY4ODAyOEUtMjYzMTgiKTsKKyAgbWF0aHRlc3QoNDI3LGRlZiwiLTYxLjYzMzc0MDFFKzQ3NDk5OTUxNyIsIjUyNTQuODcwOTIiLCItNi4xNjMzNzQwMUUrNDc0OTk5NTE4IiwiLTYuMTYzMzc0MDFFKzQ3NDk5OTUxOCIsIi0zLjIzODc3MzQ5RSs0NzQ5OTk1MjIiLCItMS4xNzI4ODc4RSs0NzQ5OTk1MTUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDI4LGRlZiwiLTE2LjQwNDMwODgiLCIzNS4wMDY0ODEyIiwiMTguNjAyMTcyNCIsIi01MS40MTA3OTAwIiwiLTU3NC4yNTcxMjgiLCItMC40Njg2MDc3NjIiLCIwIiwiLTE2LjQwNDMwODgiLCItMy4zMzgzMTg0M0UrNDIiKTsKKyAgbWF0aHRlc3QoNDI5LGRlZiwiLTguNDExNTY1MjAiLCItNTY1MDg5NTguOSIsIi01NjUwODk2Ny4zIiwiNTY1MDg5NTAuNSIsIjQ3NTMyODc5MiIsIjEuNDg4NTM2NTdFLTciLCIwIiwiLTguNDExNTY1MjAiLCItOC44NjM2NTQ1OEUtNTIyNjM4MjciKTsKKyAgbWF0aHRlc3QoNDMwLGRlZiwiLTM2MDE2NS43OUUrNTAzNTU5ODM1IiwiLTE5NjY4OC41MTUiLCItMy42MDE2NTc5MEUrNTAzNTU5ODQwIiwiLTMuNjAxNjU3OTBFKzUwMzU1OTg0MCIsIjcuMDg0MDQ3NDRFKzUwMzU1OTg0NSIsIjEuODMxMTQ4MDVFKzUwMzU1OTgzNSIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MzEsZGVmLCItNjUzMjM2NDgwLkUrNTY1NjQ4NDk1IiwiLTkzMC40NDUyNzQiLCItNi41MzIzNjQ4MEUrNTY1NjQ4NTAzIiwiLTYuNTMyMzY0ODBFKzU2NTY0ODUwMyIsIjYuMDc4MDA3OTZFKzU2NTY0ODUwNiIsIjcuMDIwNjg2NzRFKzU2NTY0ODUwMCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MzIsZGVmLCItMy43MzM0MjkwMyIsIjg1NS4wMjkyODkiLCI4NTEuMjk1ODYwIiwiLTg1OC43NjI3MTgiLCItMzE5Mi4xOTExNyIsIi0wLjAwNDM2NjQzNDA4IiwiMCIsIi0zLjczMzQyOTAzIiwiLTEuNDE5ODg5NjFFKzQ4OSIpOworICBtYXRodGVzdCg0MzMsZGVmLCItNS4xNDg5MDUzMkUrNTYyMDQ4MDExIiwiMTA4NDcxMjcuOEUtMzkwOTE4OTEwIiwiLTUuMTQ4OTA1MzJFKzU2MjA0ODAxMSIsIi01LjE0ODkwNTMyRSs1NjIwNDgwMTEiLCItNS41ODUwODM0MEUrMTcxMTI5MTA4IiwiLTQuNzQ2NzkxNDJFKzk1Mjk2NjkxNCIsIiIsIiIsIi01LjE0ODkwNTMyRSs1NjIwNDgwMTEiKTsKKyAgbWF0aHRlc3QoNDM0LGRlZiwiNjUzMzExOTA3IiwiLTgxMC4wMzY5NjVFKzc0NDUzNzgyMyIsIi04LjEwMDM2OTY1RSs3NDQ1Mzc4MjUiLCI4LjEwMDM2OTY1RSs3NDQ1Mzc4MjUiLCItNS4yOTIwNjc5NEUrNzQ0NTM3ODM0IiwiLTguMDY1MjExMDRFLTc0NDUzNzgxOCIsIjAiLCI2NTMzMTE5MDciLCIzLjAxMzI1MTcxRS03MSIpOworICBtYXRodGVzdCg0MzUsZGVmLCItMS4zMTU1NzkwNyIsIjk4LjkxMzkzMDBFLTU3OTI4MTgwMiIsIi0xLjMxNTU3OTA3IiwiLTEuMzE1NTc5MDciLCItMS4zMDEyOTA5NkUtNTc5MjgxODAwIiwiLTEuMzMwMDI0MDZFKzU3OTI4MTgwMCIsIiIsIiIsIjE1LjUyOTkzMiIpOworICBtYXRodGVzdCg0MzYsZGVmLCItODc1MTkyMzg5IiwiLTcyMDcxNTY1LjYiLCItOTQ3MjYzOTU1IiwiLTgwMzEyMDgyMyIsIjYuMzA3NjQ4NTdFKzE2IiwiMTIuMTQzMzc5NyIsIjEyIiwiLTEwMzMzNjAxLjgiLCIxLjI1NTY0NDA4RS02NDQ0NzE0MDUiKTsKKyAgbWF0aHRlc3QoNDM3LGRlZiwiLTcyODM4MDc4LjgiLCItMzkxLjM5ODQyMyIsIi03MjgzODQ3MC4yIiwiLTcyODM3Njg3LjQiLCIyLjg1MDg3MDkyRSsxMCIsIjE4NjA5Ny4wMTciLCIxODYwOTciLCItNi40NzQ5NjkiLCItNi41NzQwNTdFLTMwNzUiKTsKKyAgbWF0aHRlc3QoNDM4LGRlZiwiMjkxODY1NjAuOSIsIi03OS43NDE5OTg4IiwiMjkxODY0ODEuMiIsIjI5MTg2NjQwLjYiLCItMi4zMjczOTQ3MEUrOSIsIi0zNjYwMTIuNDA3IiwiLTM2NjAxMiIsIjMyLjQzNTIxNDQiLCI2LjEwMDUwODY5RS01OTgiKTsKKyAgbWF0aHRlc3QoNDM5LGRlZiwiLTMyOTgwMTY2MEUtNzMwMjQ5NDY1IiwiLTY0ODkuOTI1NiIsIi02NDg5LjkyNTYwIiwiNjQ4OS45MjU2MCIsIjIuMTQwMzg4MjRFLTczMDI0OTQ1MyIsIjUuMDgxNzQ3OTNFLTczMDI0OTQ2MSIsIjAiLCItMy4yOTgwMTY2MEUtNzMwMjQ5NDU3IiwiIik7CisgIG1hdGh0ZXN0KDQ0MCxkZWYsIjkxLjg0MjkxMTdFKzEwMzE2NDg4MyIsIjcxMzE0NTUuMTYiLCI5LjE4NDI5MTE3RSsxMDMxNjQ4ODQiLCI5LjE4NDI5MTE3RSsxMDMxNjQ4ODQiLCI2LjU0OTczNjA3RSsxMDMxNjQ4OTEiLCIxLjI4Nzg1NjU0RSsxMDMxNjQ4NzgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDQxLGRlZiwiMzk0Mzg2Ni4zOEUrMTUwODU1MTEzIiwiLTMxOTI3MDA3LjMiLCIzLjk0Mzg2NjM4RSsxNTA4NTUxMTkiLCIzLjk0Mzg2NjM4RSsxNTA4NTUxMTkiLCItMS4yNTkxNTg1MUUrMTUwODU1MTI3IiwiLTEuMjM1Mjc1OTRFKzE1MDg1NTExMiIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0NDIsZGVmLCItNzAwMi4wNDY4RS03OTU5NjIxNTYiLCItNTkzNzg5MS4wNSIsIi01OTM3ODkxLjA1IiwiNTkzNzg5MS4wNSIsIjQuMTU3NzM5MTBFLTc5NTk2MjE0NiIsIjEuMTc5MjE0NDNFLTc5NTk2MjE1OSIsIjAiLCItNy4wMDIwNDY4RS03OTU5NjIxNTMiLCIiKTsKKyAgbWF0aHRlc3QoNDQzLGRlZiwiNjk2NTA0NjA1LiIsIjU0NTA2LjQ2MTciLCI2OTY1NTkxMTEiLCI2OTY0NTAwOTkiLCIzLjc5NjQwMDE2RSsxMyIsIjEyNzc4LjM4NiIsIjEyNzc4IiwiMjEwMzcuMzk3NCIsIjIuNjAwODUzMkUrNDgxOTkyIik7CisgIG1hdGh0ZXN0KDQ0NCxkZWYsIi01MTE1Ljc2NDY3IiwiNjkwLjk2MDk3OUUrODE1MTI2NzAxIiwiNi45MDk2MDk3OUUrODE1MTI2NzAzIiwiLTYuOTA5NjA5NzlFKzgxNTEyNjcwMyIsIi0zLjUzNDc5Mzc2RSs4MTUxMjY3MDciLCItNy40MDM4NDAyRS04MTUxMjY3MDEiLCIwIiwiLTUxMTUuNzY0NjciLCItOS4xNzAwOTY1NUUrMjUiKTsKKyAgbWF0aHRlc3QoNDQ1LGRlZiwiLTI2MS4yNzkzOTIiLCItNjEzLjA3OTM1NyIsIi04NzQuMzU4NzQ5IiwiMzUxLjc5OTk2NSIsIjE2MDE4NS4wMDIiLCIwLjQyNjE3NTQ4NCIsIjAiLCItMjYxLjI3OTM5MiIsIi0yLjA2MzE4ODQxRS0xNDgyIik7CisgIG1hdGh0ZXN0KDQ0NixkZWYsIi01OTE0MDc3NjMiLCItODAxNDU4MjIuOCIsIi02NzE1NTM1ODYiLCItNTExMjYxOTQwIiwiNC43Mzk4ODYxOEUrMTYiLCI3LjM3OTE0NjQ0IiwiNyIsIi0zMDM4NzAwMy40IiwiLTIuNzkzMzQ1MjJFLTcwMzAzMDEwNSIpOworICBtYXRodGVzdCg0NDcsZGVmLCI2MTU2MzA0MDciLCItNjkuNDY2MTg2OSIsIjYxNTYzMDMzOCIsIjYxNTYzMDQ3NiIsIi00LjI3NjU0OTY5RSsxMCIsIi04ODYyMzAzLjE1IiwiLTg4NjIzMDMiLCIxMC40Mzc1NjkzIiwiMy40NDI4MzEwMkUtNjA3Iik7CisgIG1hdGh0ZXN0KDQ0OCxkZWYsIjEwNzg3NTcuNTAiLCIyNzQwMjU2OS4wRS03MTM3NDIwODIiLCIxMDc4NzU3LjUwIiwiMTA3ODc1Ny41MCIsIjIuOTU2MDcyNjhFLTcxMzc0MjA2OSIsIjMuOTM2NzAyMDdFKzcxMzc0MjA4MCIsIiIsIiIsIjEuMjU1MzY5MjRFKzE4Iik7CisgIG1hdGh0ZXN0KDQ0OSxkZWYsIi00ODY1LjYwMzU4RS00MDExMTY1MTUiLCI2Njk1Mi41MzE1IiwiNjY5NTIuNTMxNSIsIi02Njk1Mi41MzE1IiwiLTMuMjU3NjQ0NzdFLTQwMTExNjUwNyIsIi03LjI2NzI0MzYzRS00MDExMTY1MTciLCIwIiwiLTQuODY1NjAzNThFLTQwMTExNjUxMiIsIiIpOworICBtYXRodGVzdCg0NTAsZGVmLCItODc4MDUuMzkyMUUtOTM0ODk2NjkwIiwiLTE4NzUuMTQ3NDUiLCItMTg3NS4xNDc0NSIsIjE4NzUuMTQ3NDUiLCIxLjY0NjQ4MDU3RS05MzQ4OTY2ODIiLCI0LjY4MjU4NjAxRS05MzQ4OTY2ODkiLCIwIiwiLTguNzgwNTM5MjFFLTkzNDg5NjY4NiIsIiIpOworICBtYXRodGVzdCg0NTEsZGVmLCItMjMyNTQwNjA5LkUrNjAyNzAyNTIwIiwiNjguMDgzNDIyMyIsIi0yLjMyNTQwNjA5RSs2MDI3MDI1MjgiLCItMi4zMjU0MDYwOUUrNjAyNzAyNTI4IiwiLTEuNTgzMjE2MDVFKzYwMjcwMjUzMCIsIi0zLjQxNTUyNDY4RSs2MDI3MDI1MjYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDUyLGRlZiwiLTMyMDYxMDgwMy4iLCItODYzODcxMjM1LiIsIi0xLjE4NDQ4MjA0RSs5IiwiNTQzMjYwNDMyIiwiMi43Njk2NjQ1MEUrMTciLCIwLjM3MTEzMjYzIiwiMCIsIi0zMjA2MTA4MDMiLCIiKTsKKyAgbWF0aHRlc3QoNDUzLGRlZiwiLTMwMzk1NjM2NEUrMjc4MTM5OTc5IiwiMjI5NTM3LjkyMEUrNDc5NjAzNzI1IiwiMi4yOTUzNzkyMEUrNDc5NjAzNzMwIiwiLTIuMjk1Mzc5MjBFKzQ3OTYwMzczMCIsIi02Ljk3Njk1MTE2RSs3NTc3NDM3MTciLCItMS4zMjQyMDk4RS0yMDE0NjM3NDMiLCIwIiwiLTMuMDM5NTYzNjRFKzI3ODEzOTk4NyIsIjkuMjM4OTQ3MTJFKzU1NjI3OTk3NCIpOworICBtYXRodGVzdCg0NTQsZGVmLCItNDM5Ljc0NzM0OCIsIjc0Ljk0OTQ0NTdFLTM1MzExNzU4MiIsIi00MzkuNzQ3MzQ4IiwiLTQzOS43NDczNDgiLCItMy4yOTU4ODIwMEUtMzUzMTE3NTc4IiwiLTUuODY3MjUyODRFKzM1MzExNzU4MiIsIiIsIiIsIi0zLjE3OTk2NjkzRSsxOCIpOworICBtYXRodGVzdCg0NTUsZGVmLCItODk3MDIyMzEuOSIsIjEuMjg5OTM5OTMiLCItODk3MDIyMzAuNiIsIi04OTcwMjIzMy4yIiwiLTExNTcxMDQ5MSIsIi02OTUzOTg1Mi4xIiwiLTY5NTM5ODUyIiwiLTAuMDc4OTA5NjQiLCItODk3MDIyMzEuOSIpOworICBtYXRodGVzdCg0NTYsZGVmLCItNTg1NjkzOS4xNCIsIi02NzQzMzc1LjM0IiwiLTEyNjAwMzE0LjUiLCI4ODY0MzYuMjAiLCIzLjk0OTU1MzkwRSsxMyIsIjAuODY4NTQ3MTA3IiwiMCIsIi01ODU2OTM5LjE0IiwiLTMuMjkyMTMyNDhFLTQ1NjM2OTQyIik7CisgIG1hdGh0ZXN0KDQ1NyxkZWYsIjczMzMxNy42NjlFKzEwMDM4MTM0OSIsIi0xMzgzMi42NzkyRSsxNzQwNTU2MDciLCItMS4zODMyNjc5MkUrMTc0MDU1NjExIiwiMS4zODMyNjc5MkUrMTc0MDU1NjExIiwiLTEuMDE0Mzc0ODFFKzI3NDQzNjk2NiIsIi01LjMwMTM0MjI3RS03MzY3NDI1NyIsIjAiLCI3LjMzMzE3NjY5RSsxMDAzODEzNTQiLCIxLjM2MzY2NTQ5RS0xMDAzODEzNTUiKTsKKyAgbWF0aHRlc3QoNDU4LGRlZiwiODcuNDc5ODc4N0UtODAxMjQ3MDQiLCIxMDg0OTcuMzIiLCIxMDg0OTcuMzIwIiwiLTEwODQ5Ny4zMjAiLCI5LjQ5MTMzMjM5RS04MDEyNDY5OCIsIjguMDYyODYwNzlFLTgwMTI0NzA4IiwiMCIsIjguNzQ3OTg3ODdFLTgwMTI0NzAzIiwiIik7CisgIG1hdGh0ZXN0KDQ1OSxkZWYsIi02OTQ1NjIwNTIiLCIzMTA2ODEuMzE5RSs1NDk0NDUyNjQiLCIzLjEwNjgxMzE5RSs1NDk0NDUyNjkiLCItMy4xMDY4MTMxOUUrNTQ5NDQ1MjY5IiwiLTIuMTU3ODc0NTRFKzU0OTQ0NTI3OCIsIi0yLjIzNTYwOTMyRS01NDk0NDUyNjEiLCIwIiwiLTY5NDU2MjA1MiIsIi0zLjM1MDY4MTU1RSsyNiIpOworICBtYXRodGVzdCg0NjAsZGVmLCItOTc0NDEzNS44NSIsIjE3OTcwMTYuMDQiLCItNzk0NzExOS44MSIsIi0xMTU0MTE1MS45IiwiLTEuNzUxMDM2ODRFKzEzIiwiLTUuNDIyMzk3ODIiLCItNSIsIi03NTkwNTUuNjUiLCIzLjgzODQ4MDA2RSsxMjU1ODg4MyIpOworICBtYXRodGVzdCg0NjEsZGVmLCIzNjI1Ljg3MzA4IiwiLTUwLjIyMDg1MzZFKzY1ODYyNzQ4NyIsIi01LjAyMjA4NTM2RSs2NTg2Mjc0ODgiLCI1LjAyMjA4NTM2RSs2NTg2Mjc0ODgiLCItMS44MjA5NDQ0MUUrNjU4NjI3NDkyIiwiLTcuMjE5ODU1NTRFLTY1ODYyNzQ4NiIsIjAiLCIzNjI1Ljg3MzA4IiwiMS41OTU2NDc3RS0xOCIpOworICBtYXRodGVzdCg0NjIsZGVmLCIzNjUzNDcuNTIiLCItMzY1NTQxNC40NyIsIi0zMjkwMDY2Ljk1IiwiNDAyMDc2MS45OSIsIi0xLjMzNTQ5NjYxRSsxMiIsIi0wLjA5OTk0Njk0OCIsIjAiLCIzNjUzNDcuNTIiLCIxLjAyNjYzMjU3RS0yMDMzMzk5NCIpOworICBtYXRodGVzdCg0NjMsZGVmLCItMTk3MDYzMzMuNkUtODE2OTIzMDUwIiwiLTM4Mzg1ODAzMi4iLCItMzgzODU4MDMyIiwiMzgzODU4MDMyIiwiNy41NjQ0MzQ0M0UtODE2OTIzMDM1IiwiNS4xMzM3NTU3RS04MTY5MjMwNTIiLCIwIiwiLTEuOTcwNjMzMzZFLTgxNjkyMzA0MyIsIiIpOworICBtYXRodGVzdCg0NjQsZGVmLCItODYzNDYuMjYxNiIsIi05OC44MDYzNzg1IiwiLTg2NDQ1LjA2ODAiLCItODYyNDcuNDU1MiIsIjg1MzE1NjEuNDEiLCI4NzMuODkzNTk4IiwiODczIiwiLTg4LjI5MzE2OTUiLCItMi4wNTA2NDA4NkUtNDg5Iik7CisgIG1hdGh0ZXN0KDQ2NSxkZWYsIi00NDU1ODguMTYwRS00OTY1OTIyMTUiLCIzMjguODIyOTc2IiwiMzI4LjgyMjk3NiIsIi0zMjguODIyOTc2IiwiLTEuNDY1MTk2MjVFLTQ5NjU5MjIwNyIsIi0xLjM1NTEwMDQ0RS00OTY1OTIyMTIiLCIwIiwiLTQuNDU1ODgxNjBFLTQ5NjU5MjIxMCIsIiIpOworICBtYXRodGVzdCg0NjYsZGVmLCItOTcwOTIxMy43MSIsIi0zNC42NjkwMTM3IiwiLTk3MDkyNDguMzgiLCItOTcwOTE3OS4wNCIsIjMzNjYwODg2MyIsIjI4MDA1NC41MTIiLCIyODAwNTQiLCItMTcuNzQ3MjYwMiIsIi0yLjgwOTAzOTc0RS0yNDUiKTsKKyAgbWF0aHRlc3QoNDY3LGRlZiwiNzQyMzk1NTM2LiIsIi00MzUzMy42ODg5IiwiNzQyMzUyMDAyIiwiNzQyNDM5MDcwIiwiLTMuMjMxOTIxNjNFKzEzIiwiLTE3MDUzLjM1NjkiLCItMTcwNTMiLCIxNTUzOS4xODgzIiwiNS43NjIyNzM0RS0zODYxNzUiKTsKKyAgbWF0aHRlc3QoNDY4LGRlZiwiLTg3ODg0OTE5My4iLCItNTg0Mjk4Mi40N0UtOTcyNTM3MzQyIiwiLTg3ODg0OTE5MyIsIi04Nzg4NDkxOTMiLCI1LjEzNTEwMDQzRS05NzI1MzczMjciLCIxLjUwNDExMDYxRSs5NzI1MzczNDQiLCIiLCIiLCIyLjE3MDI3MDQyRS01NCIpOworICBtYXRodGVzdCg0NjksZGVmLCItNzgwMTQxNDIuMSIsIi02MjQ2NTguNTIyIiwiLTc4NjM4ODAwLjYiLCItNzczODk0ODMuNiIsIjQuODczMjE5ODdFKzEzIiwiMTI0Ljg5MDg2MyIsIjEyNCIsIi01NTY0ODUuMzcyIiwiLTcuODYwNjM4NjVFLTQ5Mjk5MTgiKTsKKyAgbWF0aHRlc3QoNDcwLGRlZiwiODU3MDM5LjM3MSIsIjQ1NC4zNzk2NzIiLCI4NTc0OTMuNzUxIiwiODU2NTg0Ljk5MSIsIjM4OTQyMTI2OCIsIjE4ODYuMTc0NTQiLCIxODg2IiwiNzkuMzA5NjA4IiwiMy44MjI1MzEwMUUrMjY5MyIpOworICBtYXRodGVzdCg0NzEsZGVmLCIxNjY1MzQwMTAuIiwiLTE3My4wMTIyMzYiLCIxNjY1MzM4MzciLCIxNjY1MzQxODMiLCItMi44ODEyNDIxNEUrMTAiLCItOTYyNTU2LjI1NSIsIi05NjI1NTYiLCI0NC4xNjQ3ODQiLCI0Ljc4NjIwNjY0RS0xNDIzIik7CisgIG1hdGh0ZXN0KDQ3MixkZWYsIi04MTAuODc5MDYzIiwiNDM3NzYuNjEwIiwiNDI5NjUuNzMwOSIsIi00NDU4Ny40ODkxIiwiLTM1NDk3NTM2LjUiLCItMC4wMTg1MjMxMTIzIiwiMCIsIi04MTAuODc5MDYzIiwiLTIuMzQ3NTg2OTFFKzEyNzM0NSIpOworICBtYXRodGVzdCg0NzMsZGVmLCItMzI3LjEyNzkzNSIsIjkzNDU4OTQ0IiwiOTM0NTg2MTYuOSIsIi05MzQ1OTI3MS4xIiwiLTMuMDU3MzAzMTRFKzEwIiwiLTAuMDAwMDAzNTAwMjMxNDUiLCIwIiwiLTMyNy4xMjc5MzUiLCIyLjI5MzIzMDIxRSsyMzUwMjI4NTQiKTsKKyAgbWF0aHRlc3QoNDc0LGRlZiwiNTM5Mjk1MjE4LiIsIi05NTg3OTQxLjEwRS0zMDk2NDMwOTgiLCI1MzkyOTUyMTgiLCI1MzkyOTUyMTgiLCItNS4xNzA3MzA3OUUtMzA5NjQzMDgzIiwiLTUuNjI0NzIzOTRFKzMwOTY0MzA5OSIsIiIsIiIsIjQuODA1NDUyNjlFLTg4Iik7CisgIG1hdGh0ZXN0KDQ3NSxkZWYsIi0zODYyNzAyLjY1IiwiODc5NjE2LjczMyIsIi0yOTgzMDg1LjkyIiwiLTQ3NDIzMTkuMzgiLCItMy4zOTc2OTc4OUUrMTIiLCItNC4zOTEzNDc0IiwiLTQiLCItMzQ0MjM1LjcxOCIsIi0zLjUwNjUwMTY3RSs1NzkzOTQxIik7CisgIG1hdGh0ZXN0KDQ3NixkZWYsIi04LjI1MjkwNTAwIiwiOTkyLjA5MTU4NEUrMjU2MDcwMjU3IiwiOS45MjA5MTU4NEUrMjU2MDcwMjU5IiwiLTkuOTIwOTE1ODRFKzI1NjA3MDI1OSIsIi04LjE4NzYzNzU5RSsyNTYwNzAyNjAiLCItOC4zMTg2OTI2OEUtMjU2MDcwMjYwIiwiMCIsIi04LjI1MjkwNTAwIiwiMS40NjU3Nzg4OEUrOSIpOworICBtYXRodGVzdCg0NzcsZGVmLCI1NDY4NzUyMDUuIiwiNDQ3LjUyODU3RSs1NTczNTcxMDEiLCI0LjQ3NTI4NTcwRSs1NTczNTcxMDMiLCItNC40NzUyODU3MEUrNTU3MzU3MTAzIiwiMi40NDc0MjI3OEUrNTU3MzU3MTEyIiwiMS4yMjE5ODk0OEUtNTU3MzU3MDk1IiwiMCIsIjU0Njg3NTIwNSIsIjguOTQ0NDM1NDJFKzM0Iik7CisgIG1hdGh0ZXN0KDQ3OCxkZWYsIjE3NzYyMzQzNyIsIi03Nzc5MTE2LjE0IiwiMTY5ODQ0MzIxIiwiMTg1NDAyNTUzIiwiLTEuMzgxNzUzMzVFKzE1IiwiLTIyLjgzMzM3IiwiLTIyIiwiNjQ4Mjg4MS45MiIsIjIuOTAwODUzMDlFLTY0MTczODIwIik7CisgIG1hdGh0ZXN0KDQ3OSxkZWYsIjM3NzIwNDczNS4iLCIxMzc2OC4xNDAxIiwiMzc3MjE4NTAzIiwiMzc3MTkwOTY3IiwiNS4xOTM0MDc2NEUrMTIiLCIyNzM5Ni45Mjc0IiwiMjczOTYiLCIxMjc2OC44MjA0IiwiMi4wNjA2NTI5N0UrMTE4MDgyIik7CisgIG1hdGh0ZXN0KDQ4MCxkZWYsIi0yNDM1LjQ5MjM5IiwiLTExNzMyLjA2NDBFLTIzMzMxNTA0IiwiLTI0MzUuNDkyMzkiLCItMjQzNS40OTIzOSIsIjIuODU3MzM1MjZFLTIzMzMxNDk3IiwiMi4wNzU5MjgzMkUrMjMzMzE1MDMiLCIiLCIiLCItMC4wMDA0MTA1OTQ1OSIpOworICBtYXRodGVzdCg0ODEsZGVmLCItNjEyODQ2NS4xNEUtMTM3MTIzMjk0IiwiLTU3NDIyNjQuMjciLCItNTc0MjI2NC4yNyIsIjU3NDIyNjQuMjciLCIzLjUxOTEyNjY0RS0xMzcxMjMyODEiLCIxLjA2NzI1NTg1RS0xMzcxMjMyOTQiLCIwIiwiLTYuMTI4NDY1MTRFLTEzNzEyMzI4OCIsIiIpOworICBtYXRodGVzdCg0ODIsZGVmLCItMjg5ODA2NS40NCIsIi01LjExNjM4MTA1IiwiLTI4OTgwNzAuNTYiLCItMjg5ODA2MC4zMiIsIjE0ODI3NjA3LjEiLCI1NjY0MjguNzczIiwiNTY2NDI4IiwiLTMuOTU0NjEwNjAiLCItNC44OTE2OTE1MUUtMzMiKTsKKyAgbWF0aHRlc3QoNDgzLGRlZiwiMTg1MTM5NS4zMUUrNTk0MzgzMTYwIiwiLTU1MDMwMS40NzUiLCIxLjg1MTM5NTMxRSs1OTQzODMxNjYiLCIxLjg1MTM5NTMxRSs1OTQzODMxNjYiLCItMS4wMTg4MjU1N0UrNTk0MzgzMTcyIiwiLTMuMzY0MzI5MThFKzU5NDM4MzE2MCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0ODQsZGVmLCI1MzY0MTI1ODkuRSszNzk1ODM5NzciLCI4OTkuNjAxMTYxIiwiNS4zNjQxMjU4OUUrMzc5NTgzOTg1IiwiNS4zNjQxMjU4OUUrMzc5NTgzOTg1IiwiNC44MjU1NzM4OEUrMzc5NTgzOTg4IiwiNS45NjI3ODIzMUUrMzc5NTgzOTgyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ4NSxkZWYsIjE4NS44NTI5NyIsIjg2NzQxOTQ4MC4iLCI4Njc0MTk2NjYiLCItODY3NDE5Mjk0IiwiMS42MTIxMjQ4N0UrMTEiLCIyLjE0MjU5NjIyRS03IiwiMCIsIjE4NS44NTI5NyIsIiIpOworICBtYXRodGVzdCg0ODYsZGVmLCItNS4yNjYzMTA1MyIsIi0zODE1OTQxLjM1RSsxODMyOTE3NjMiLCItMy44MTU5NDEzNUUrMTgzMjkxNzY5IiwiMy44MTU5NDEzNUUrMTgzMjkxNzY5IiwiMi4wMDk1OTMyMUUrMTgzMjkxNzcwIiwiMS4zODAwODE2MkUtMTgzMjkxNzY5IiwiMCIsIi01LjI2NjMxMDUzIiwiMC4wMDEzMDAwOTIxOCIpOworICBtYXRodGVzdCg0ODcsZGVmLCItOC4xMTU4NzAyMUUtMjQ1OTQyODA2IiwiNDU1My4wNjc1M0UrOTQzNDEyMDQ4IiwiNC41NTMwNjc1M0UrOTQzNDEyMDUxIiwiLTQuNTUzMDY3NTNFKzk0MzQxMjA1MSIsIi0zLjY5NTIxMDUxRSs2OTc0NjkyNDYiLCIiLCIwIiwiLTguMTE1ODcwMjFFLTI0NTk0MjgwNiIsIiIpOworICBtYXRodGVzdCg0ODgsZGVmLCItNDA1NzY1LjM1MiIsIjg1NDk2MzIzMSIsIjg1NDU1NzQ2NiIsIi04NTUzNjg5OTYiLCItMy40NjkxNDQ1NkUrMTQiLCItMC4wMDA0NzQ1OTk3NjkiLCIwIiwiLTQwNTc2NS4zNTIiLCIiKTsKKyAgbWF0aHRlc3QoNDg5LGRlZiwiLTE1OS42MDk3NTciLCItNDMzNTYuNzU2NyIsIi00MzUxNi4zNjY1IiwiNDMxOTcuMTQ3MCIsIjY5MjAxNjEuNDAiLCIwLjAwMzY4MTMxMjE5IiwiMCIsIi0xNTkuNjA5NzU3IiwiLTguOTUzOTc4NDlFLTk1NTE5Iik7CisgIG1hdGh0ZXN0KDQ5MCxkZWYsIi01NjQyNDAuMjQxRS01MDEzMTY2NzIiLCItNTU3Ljc4MTk3NyIsIi01NTcuNzgxOTc3IiwiNTU3Ljc4MTk3NyIsIjMuMTQ3MjMwMzdFLTUwMTMxNjY2NCIsIjEuMDExNTc4NDdFLTUwMTMxNjY2OSIsIjAiLCItNS42NDI0MDI0MUUtNTAxMzE2NjY3IiwiIik7CisgIG1hdGh0ZXN0KDQ5MSxkZWYsIjMxODg0Ny4yNzAiLCI1ODIxMDc4NzguRSszOTk2MzM0MTIiLCI1LjgyMTA3ODc4RSszOTk2MzM0MjAiLCItNS44MjEwNzg3OEUrMzk5NjMzNDIwIiwiMS44NTYwMzUwOEUrMzk5NjMzNDI2IiwiNS40Nzc0NjAxNEUtMzk5NjMzNDE2IiwiMCIsIjMxODg0Ny4yNzAiLCIxLjA1MDc0MjNFKzMzIik7CisgIG1hdGh0ZXN0KDQ5MixkZWYsIi00NDI2LjU5NjYzIiwiOTUuMTA5Njc2NSIsIi00MzMxLjQ4Njk1IiwiLTQ1MjEuNzA2MzEiLCItNDIxMDEyLjE3MyIsIi00Ni41NDIwMjE3IiwiLTQ2IiwiLTUxLjU1MTUxMTAiLCItMi4zODAzNzM3OUUrMzQ2Iik7CisgIG1hdGh0ZXN0KDQ5MyxkZWYsIjYwMzcuMjgzMTAiLCI1NzgyNjQuMTA1IiwiNTg0MzAxLjM4OCIsIi01NzIyMjYuODIyIiwiMy40OTExNDQxMUUrOSIsIjAuMDEwNDQwMzU2IiwiMCIsIjYwMzcuMjgzMTAiLCIzLjU3Mjc5NDgzRSsyMTg2MzI0Iik7CisgIG1hdGh0ZXN0KDQ5NCxkZWYsIi02Ni45NTU2NjkyIiwiLTUzLjg1MTk0MDQiLCItMTIwLjgwNzYxMCIsIi0xMy4xMDM3Mjg4IiwiMzYwNS42OTI3MSIsIjEuMjQzMzI4ODEiLCIxIiwiLTEzLjEwMzcyODgiLCIyLjU1NTU0MDg2RS05OSIpOworICBtYXRodGVzdCg0OTUsZGVmLCItOTI0ODYuMDIyMiIsIi01OTkzNS44NTQ0IiwiLTE1MjQyMS44NzciLCItMzI1NTAuMTY3OCIsIjUuNTQzMjI4NzZFKzkiLCIxLjU0MzA4MzQiLCIxIiwiLTMyNTUwLjE2NzgiLCIxLjgzMTUyNjU2RS0yOTc2NDciKTsKKyAgbWF0aHRlc3QoNDk2LGRlZiwiODUyMTM2MjE5LkUrOTE3Nzg3MzUxIiwiOTI0NjIyMS45MSIsIjguNTIxMzYyMTlFKzkxNzc4NzM1OSIsIjguNTIxMzYyMTlFKzkxNzc4NzM1OSIsIjcuODc5MDQwNThFKzkxNzc4NzM2NiIsIjkuMjE2MDQ3NjdFKzkxNzc4NzM1MiIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0OTcsZGVmLCItMjEyMDA5Ni4xNkUtMjY5MjUzNzE4IiwiOTQzNy4wMDUxNCIsIjk0MzcuMDA1MTQiLCItOTQzNy4wMDUxNCIsIi0yLjAwMDczNTg0RS0yNjkyNTM3MDgiLCItMi4yNDY1NzczMUUtMjY5MjUzNzE2IiwiMCIsIi0yLjEyMDA5NjE2RS0yNjkyNTM3MTIiLCIiKTsKKyAgbWF0aHRlc3QoNDk4LGRlZiwiLTUyNDY1My4xNjlFLTg2NTc4NDIyNiIsIjIyODA1NC42OTgiLCIyMjgwNTQuNjk4IiwiLTIyODA1NC42OTgiLCItMS4xOTY0OTYyMEUtODY1Nzg0MjE1IiwiLTIuMzAwNTU4NDhFLTg2NTc4NDIyNiIsIjAiLCItNS4yNDY1MzE2OUUtODY1Nzg0MjIxIiwiIik7CisgIG1hdGh0ZXN0KDQ5OSxkZWYsIi0yODgxOTMxMzMiLCItMzEyMjY4NzM3LiIsIi02MDA0NjE4NzAiLCIyNDA3NTYwNCIsIjguOTk5MzcwNTdFKzE2IiwiMC45MjI5MDEwMTEiLCIwIiwiLTI4ODE5MzEzMyIsIiIpOworICBtYXRodGVzdCg1MDAsZGVmLCItMzczNDg0NzU5RS0xMTM1ODk5NjQiLCI4NDQxMDE5NThFLTg1MjUzODI0MCIsIi0zLjczNDg0NzU5RS0xMTM1ODk5NTYiLCItMy43MzQ4NDc1OUUtMTEzNTg5OTU2IiwiLTMuMTUyNTkyMTZFLTk2NjEyODE4NyIsIi00LjQyNDY0MDM2RSs3Mzg5NDgyNzUiLCIiLCIiLCIzLjc4NjAyMTQ3RS05MDg3MTk2NDQiKTsKKyAgCisgIHN1bW1hcnkoIkFyaXRobWV0aWMiKTsKKyB9CisKKyAvKiBtYXRodGVzdCAtLSBnZW5lcmFsIGFyaXRobWV0aWMgdGVzdCByb3V0aW5lCisgICAgQXJnMSAgaXMgdGVzdCBudW1iZXIKKyAgICBBcmcyICBpcyBNYXRoQ29udGV4dAorICAgIEFyZzMgIGlzIGxlZnQgaGFuZCBzaWRlIChMSFMpCisgICAgQXJnNCAgaXMgcmlnaHQgaGFuZCBzaWRlIChSSFMpCisgICAgQXJnNSAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgYWRkCisgICAgQXJnNiAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3Igc3VidHJhY3QKKyAgICBBcmc3ICBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBtdWx0aXBseQorICAgIEFyZzggIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIGRpdmlkZQorICAgIEFyZzkgIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIGludGVnZXJEaXZpZGUKKyAgICBBcmcxMCBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciByZW1haW5kZXIKKyAgICBBcmcxMSBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBwb3dlcgorIAorICBGb3IgcG93ZXIgUkhTLCAwIGlzIGFkZGVkIHRvIHRoZSBudW1iZXIsIGFueSBleHBvbmVudCBpcyByZW1vdmVkIGFuZAorICB0aGUgbnVtYmVyIGlzIHRoZW4gcm91bmRlZCB0byBhbiBpbnRlZ2VyLCB1c2luZyBmb3JtYXQocmhzKzAsLDApCisgCisgIElmIGFuIGVycm9yIHNob3VsZCByZXN1bHQgZm9yIGFuIG9wZXJhdGlvbiwgdGhlICdleHBlY3RlZCByZXN1bHQnIGlzCisgIGFuIGVtcHR5IHN0cmluZy4KKyAgKi8KKyAKKyBwcml2YXRlIHZvaWQgbWF0aHRlc3QoaW50IHRlc3QsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtYyxqYXZhLmxhbmcuU3RyaW5nIHNsaHMsamF2YS5sYW5nLlN0cmluZyBzcmhzLGphdmEubGFuZy5TdHJpbmcgYWRkLGphdmEubGFuZy5TdHJpbmcgc3ViLGphdmEubGFuZy5TdHJpbmcgbXVsLGphdmEubGFuZy5TdHJpbmcgZGl2LGphdmEubGFuZy5TdHJpbmcgaWR2LGphdmEubGFuZy5TdHJpbmcgcmVtLGphdmEubGFuZy5TdHJpbmcgcG93KXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxoczsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJoczsKKyAgamF2YS5sYW5nLlN0cmluZyByZXM9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBzbj1udWxsOworICBpbnQgZT0wOworICAKKyAgCisgIAorICBsaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbGhzKTsKKyAgcmhzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc3Jocyk7CisgIAorICB0cnl7CisgICByZXM9bGhzLmFkZChyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMzcpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJhZGQiLHJlcyxhZGQpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5zdWJ0cmFjdChyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMzgpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJzdWIiLHJlcyxzdWIpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5tdWx0aXBseShyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMzkpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJtdWwiLHJlcyxtdWwpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5kaXZpZGUocmhzLG1jKS50b1N0cmluZygpOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTQwKXsKKyAgIHJlcz0iIjsKKyAgfQorICBtYXRodGVzdGNoZWNrKHRlc3QsbGhzLHJocywiZGl2IixyZXMsZGl2KTsKKyAgCisgIHRyeXsKKyAgIHJlcz1saHMuZGl2aWRlSW50ZWdlcihyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDEpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJpZHYiLHJlcyxpZHYpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5yZW1haW5kZXIocmhzLG1jKS50b1N0cmluZygpOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTQyKXsKKyAgIHJlcz0iIjsKKyAgfQorICBtYXRodGVzdGNoZWNrKHRlc3QsbGhzLHJocywicmVtIixyZXMscmVtKTsKKyAgCisgIHRyeXsKKyAgIC8vIHByZXBhcmUgYW4gaW50ZWdlciBmcm9tIHRoZSByaHMKKyAgIC8vIGluIFJleHg6CisgICAvLyAgIG49cmhzKzAKKyAgIC8vICAgZT1wb3MoJ0UnLCBuKQorICAgLy8gICBpZiBlPjAgdGhlbiBuPWxlZnQobixlLTEpCisgICAvLyAgIG49Zm9ybWF0KG4sLDApCisgICAKKyAgIHNuPXJocy5wbHVzKG1jKS50b1N0cmluZygpOworICAgZT1zbi5pbmRleE9mKCJFIiwwKTsKKyAgIGlmIChlPjApIAorICAgIHNuPXNuLnN1YnN0cmluZygwLGUpOworICAgc249KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc24pKS5mb3JtYXQoLTEsMCk7CisgICAKKyAgIHJlcz1saHMucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc24pLG1jKS50b1N0cmluZygpOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTQzKXsKKyAgIHJlcz0iIjsKKyAgfQorICBtYXRodGVzdGNoZWNrKHRlc3QsbGhzLHJocywicG93IixyZXMscG93KTsKKyAgcmV0dXJuOworICB9CisKKyAvKiBtYXRodGVzdGNoZWNrIC0tIGNoZWNrIGZvciBnZW5lcmFsIG1hdGh0ZXN0IGVycm9yCisgICAgQXJnMSAgaXMgdGVzdCBudW1iZXIKKyAgICBBcmcyICBpcyBsZWZ0IGhhbmQgc2lkZSAoTEhTKQorICAgIEFyZzMgIGlzIHJpZ2h0IGhhbmQgc2lkZSAoUkhTKQorICAgIEFyZzQgIGlzIHRoZSBvcGVyYXRpb24KKyAgICBBcmc1ICBpcyB0aGUgYWN0dWFsIHJlc3VsdAorICAgIEFyZzYgIGlzIHRoZSBleHBlY3RlZCByZXN1bHQKKyAgICBTaG93IGVycm9yIG1lc3NhZ2UgaWYgYSBwcm9ibGVtLCBvdGhlcndpc2UgcmV0dXJuIHF1aWV0bHkKKyAgICAqLworIAorIHByaXZhdGUgdm9pZCBtYXRodGVzdGNoZWNrKGludCB0ZXN0LGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHMsY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxqYXZhLmxhbmcuU3RyaW5nIG9wLGphdmEubGFuZy5TdHJpbmcgZ290LGphdmEubGFuZy5TdHJpbmcgd2FudCl7CisgIGJvb2xlYW4gZmxhZzsKKyAgamF2YS5sYW5nLlN0cmluZyB0ZXN0bnVtOworICAKKyAgZmxhZz13YW50LmVxdWFscygoamF2YS5sYW5nLk9iamVjdClnb3QpOworICAKKyAgaWYgKCghZmxhZykpIAorICAgc2F5KCI+Iit0ZXN0KyI+IisiICIrbGhzLnRvU3RyaW5nKCkrIiAiK29wKyIgIityaHMudG9TdHJpbmcoKSsiICIrIj0iKyIgIit3YW50KyIgIisiW2dvdCIrIiAiK2dvdCsiXSIpOworICAKKyAgdGVzdG51bT0iZ2VuIityaWdodCgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh0ZXN0KzEwMDApKS50b1N0cmluZygpLDMpOworICAKKyAgKG5ldyBUZXN0KHRlc3RudW0pKS5vaz1mbGFnOworICByZXR1cm47CisgIH0KKworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIFN1cHBvcnQgcm91dGluZXMgYW5kIG1pbm9yIGNsYXNzZXMgZm9sbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogTWV0aG9kIGNhbGxlZCB0byBzdW1tYXJpc2UgcGVuZGluZyB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc2VjdGlvbiBuYW1lICovCisgCisgcHJpdmF0ZSB2b2lkIHN1bW1hcnkoamF2YS5sYW5nLlN0cmluZyBzZWN0aW9uKXsKKyAgaW50IGJhZDsKKyAgaW50IGNvdW50OworICBpbnQgaT0wOworICBUZXN0IGl0ZW09bnVsbDsKKyAgYmFkPTA7CisgIGNvdW50PVRlc3RzLnNpemUoKTsKKyAge2ludCAkMTQ0PWNvdW50O2k9MDtpOmZvcig7JDE0ND4wOyQxNDQtLSxpKyspeworICAgaXRlbT0oVGVzdCkoVGVzdHMuZWxlbWVudEF0KGkpKTsKKyAgIGlmICgoIWl0ZW0ub2spKSAKKyAgICB7CisgICAgIGJhZCsrOworICAgICBlcnJsbigiRmFpbGVkOiIrIiAiK2l0ZW0ubmFtZSk7CisgICAgfQorICAgfQorICB9LyppKi8KKyAgdG90YWxjb3VudD10b3RhbGNvdW50K2NvdW50OworICBUZXN0cz1uZXcgamF2YS51dGlsLlZlY3RvcigxMDApOyAvLyByZWluaXRpYWxpemUKKyAgaWYgKGJhZD09MCkgCisgICBzYXkoIk9LIisiICIrbGVmdChzZWN0aW9uLDE0KSsiICIrcmlnaHQoIlsiK2NvdW50KyIgIisidGVzdHNdIiwxMikpOworICBlbHNlIAorICAgdGhyb3cgbmV3IERpYWdFeGNlcHRpb24oc2VjdGlvbisiICIrIltmYWlsZWQiKyIgIitiYWQrIiAiKyJvZiIrIiAiK2NvdW50KyIgIisidGVzdHNdIixiYWQpOworIH0KKworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogcmlnaHQgLSBVdGlsaXR5IHRvIGRvIGEgJ3JpZ2h0JyBvbiBhIEphdmEgU3RyaW5nICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc3RyaW5nIHRvIHJpZ2h0LWp1c3RpZnkgKi8KKyAvKiBBcmcyIGlzIGRlc2lyZWQgbGVuZ3RoICovCisgCisgcHJpdmF0ZSBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyByaWdodChqYXZhLmxhbmcuU3RyaW5nIHMsaW50IGxlbil7CisgIGludCBzbGVuOworICBzbGVuPXMubGVuZ3RoKCk7CisgIGlmIChzbGVuPT1sZW4pIAorICAgcmV0dXJuIHM7IC8vIGxlbmd0aCBqdXN0IHJpZ2h0CisgIGlmIChzbGVuPmxlbikgCisgICByZXR1cm4gcy5zdWJzdHJpbmcoc2xlbi1sZW4pOyAvLyB0cnVuY2F0ZSBvbiBsZWZ0CisgIC8vIHRvbyBzaG9ydAorICByZXR1cm4gKG5ldyBqYXZhLmxhbmcuU3RyaW5nKG5ldyBjaGFyW2xlbi1zbGVuXSkpLnJlcGxhY2UoJ1wwMDAnLCcgJykuY29uY2F0KHMpOworICB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIGxlZnQgLSBVdGlsaXR5IHRvIGRvIGEgJ2xlZnQnIG9uIGEgSmF2YSBTdHJpbmcgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBBcmcxIGlzIHN0cmluZyB0byBsZWZ0LWp1c3RpZnkgKi8KKyAvKiBBcmcyIGlzIGRlc2lyZWQgbGVuZ3RoICovCisgCisgcHJpdmF0ZSBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyBsZWZ0KGphdmEubGFuZy5TdHJpbmcgcyxpbnQgbGVuKXsKKyAgaW50IHNsZW47CisgIHNsZW49cy5sZW5ndGgoKTsKKyAgaWYgKHNsZW49PWxlbikgCisgICByZXR1cm4gczsgLy8gbGVuZ3RoIGp1c3QgcmlnaHQKKyAgaWYgKHNsZW4+bGVuKSAKKyAgIHJldHVybiBzLnN1YnN0cmluZygwLGxlbik7IC8vIHRydW5jYXRlIG9uIHJpZ2h0CisgIC8vIHRvbyBzaG9ydAorICByZXR1cm4gcy5jb25jYXQoKG5ldyBqYXZhLmxhbmcuU3RyaW5nKG5ldyBjaGFyW2xlbi1zbGVuXSkpLnJlcGxhY2UoJ1wwMDAnLCcgJykpOworICB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIHNheSAtIFV0aWxpdHkgdG8gZG8gYSBkaXNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBBcmcxIGlzIHN0cmluZyB0byBkaXNwbGF5LCBvbWl0dGVkIGlmIG5vbmUgKi8KKyAvKiAgICAgICAgIFtudWxsIG9yIG9taXR0ZWQgZ2l2ZXMgYmxhbmsgbGluZV0gKi8KKyAvLyB0aGlzIHZlcnNpb24gZG9lc24ndCBoZWVkIGNvbnRpbnVhdGlvbiBmaW5hbCBjaGFyYWN0ZXIKKyAKKyBwcml2YXRlIHZvaWQgc2F5KCl7CisgIHNheSgoamF2YS5sYW5nLlN0cmluZyludWxsKTtyZXR1cm47CisgIH0KKyBwcml2YXRlIHZvaWQgc2F5KGphdmEubGFuZy5TdHJpbmcgcyl7CisgIGlmIChzPT1udWxsKSAKKyAgIHM9IiAgIjsKKyAgbG9nbG4ocyk7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBTY2FmZm9sZGluZyBmb3Igc3RhbmQtYWxvbmUgcnVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyoqIEVudHJ5IHBvaW50IGZvciBzdGFuZC1hbG9uZSBydW4uICBJdCBjb25zdHJ1Y3RzIGEKKyAgKiAgPGNvZGU+RGlhZ0JpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBhbmQgdGhlbiBpbnZva2VzIGl0cworICAqICB7QGxpbmsgI2RpYWdydW4oYm9vbGVhbil9IG1ldGhvZCB0byBydW4gdGhlIHRlc3QKKyAgKiAgc3VpdGUuCisgICoKKyAgKiBAcGFyYW0gYXJncyBUaGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50IHN0cmluZyBhcnJheS4KKyAgKiAgIGlmIHRoZSBmaXJzdCB3b3JkIGlzICc8Y29kZT5jb250aW51ZTwvY29kZT4nIHRoZW4gdHJ5IGFuZCBydW4KKyAgKiAgIGFsbCB0ZXN0cywgb3RoZXJ3aXNlIHN0b3AgYWZ0ZXIgdGhlIGZpcnN0IGZhaWxpbmcgdGVzdCBncm91cC4KKyAgKi8KKyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgIG5ldyBEaWFnQmlnRGVjaW1hbCgpLnJ1bihhcmdzKTsKKyB9CisgcHVibGljIHZvaWQgVGVzdEJpZ0RlY2ltYWwoKXsKKyAgICAgIGJvb2xlYW4gJGNvbnRpbnVlOworICAgICAgaW50IGZhaWxzOworICAgICAgJGNvbnRpbnVlPWZhbHNlOworICAgICAgZmFpbHM9ZGlhZ3J1bigkY29udGludWUpOyAvLyBhbmQgcnVuIHRoZSB0ZXN0cworICAgICAgaWYoZmFpbHMhPTApIHsKKyAgICAgICAgIGVycmxuKCJEaWFnbm9zdGljIFRlc3RzIGZvciBtYXRoIGZhaWxlZC4gTnVtYmVyIG9mIGVycm9yczogIiArZmFpbHMpOworICAgICAgfQorICB9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogVGVzdCAtLSByZXByZXNlbnRzIGEgdGVzdCBhbmQgaXRzIHN0YXR1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24gMTk5OCwgMjAwMC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAqLworLyogQXV0aG9yOiBNaWtlIENvd2xpc2hhdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIDE5OTguMDcuMTUgSW5pdGlhbCB2ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMjAwMC4wMy4yNyBDaGFuZ2UgdG8gamF2YWRvYyBjb21tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKy8qKgorICogVGhlIDxjb2RlPlRlc3Q8L2NvZGU+IGNsYXNzIGlzIHVzZWQgdG8gcmVjb3JkIGEgc3BlY2lmaWMgdGVzdC4KKyAqIFdoZW4gY29uc3RydWN0ZWQsIGl0IG5vdGVzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGFuZCBhZGRzIHRoZSB0ZXN0CisgKiB0byB0aGUgbGlzdCBvZiB0ZXN0cyBoZWxkIGJ5IHRoZSBwYXJlbnQuCisgKgorICogSXRzIDxjb2RlPm9rPC9mbGFnPiBpcyBhc3NpZ25lZCBkaXJlY3RseSB0byByZWNvcmQgd2hldGhlciB0aGUKKyAqIHRlc3Qgc3VjY2VlZGVkICgxKSBvciBmYWlsZWQgKDApLgorICoKKyAqIEBzZWUgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbAorICogQHZlcnNpb24gMS4wMCAyMDAwLjAzLjI3CisgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICovCisgCisgcHVibGljIGNsYXNzIFRlc3R7CisgIHByaXZhdGUgZmluYWwgdHJhbnNpZW50IGphdmEubGFuZy5TdHJpbmcgJDA9IkRpYWdCaWdEZWNpbWFsLm5yeCI7CisgIC8qIHByb3BlcnRpZXMgc2hhcmVkIHRyYW5zaWVudCAqLworIC8qKiBUaGUgbmFtZSBvZiB0aGUgdGVzdC4gKi8KKyAgdHJhbnNpZW50IGphdmEubGFuZy5TdHJpbmcgbmFtZTsKKyAvKiogU3VjY2VzcyBmbGFnOyB3aWxsIGJlIHNldCB0byAxICh0cnVlKSBpZiB0aGUgdGVzdCBzdWNjZWVkZWQsIG9yIDAKKyAgKiAoZmFsc2UpIGlmIHRoZSB0ZXN0IGZhaWxlZC4KKyAgKi8KKyAgdHJhbnNpZW50IGJvb2xlYW4gb2s7CisKKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRlc3Q8L2NvZGU+IHdpdGggYSBzcGVjaWZpZWQgbmFtZS4KKyAgKgorICAqIEBwYXJhbSB0ZXN0bmFtZSBUaGUgPGNvZGU+U3RyaW5nPC9jb2RlPiBuYW1pbmcgdGhlIHRlc3QuCisgICovCisgIAorICBwdWJsaWMgVGVzdChqYXZhLmxhbmcuU3RyaW5nIHRlc3RuYW1lKXtzdXBlcigpOworICAgbmFtZT10ZXN0bmFtZTsgLy8gc2F2ZSB0aGUgbmFtZQorICAgRGlhZ0JpZ0RlY2ltYWwudGhpcy5UZXN0cy5hZGRFbGVtZW50KChqYXZhLmxhbmcuT2JqZWN0KXRoaXMpOyAvLyBhbmQgYWRkIHRvIHBhcmVudCdzIGxpc3QKKyAgfQorICB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBEaWFnRXhjZXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uIDE5OTYsIDIwMDAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgKi8KKyAvKiBBdXRob3I6IE1pa2UgQ293bGlzaGF3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiAxOTk2LjA1LjI3IEluaXRpYWwgdmVyc2lvbiBpbiBOZXRSZXh4IChhcyBEaWFnWCkgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAxOTk4LjA2LjI1IENvcGllZCBmcm9tIE5ldFJleHggdGVzdCBzdWl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAxOTk5LjA3LjAzIEFkZCBmYWlsIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAyMDAwLjAzLjI3IENoYW5nZSB0byBqYXZhZG9jIGNvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAKKyAvKioKKyAgKiBUaGUgPGNvZGU+RGlhZ0V4Y2VwdGlvbjwvY29kZT4gY2xhc3MgaXMgdXNlZCB0byBzaWduYWwgdGhlIGZhaWx1cmUKKyAgKiBvZiBhIHRlc3QgZ3JvdXAuICBJdCByZWNvcmRzIHRoZSBudW1iZXIgb2YgZmFpbHVyZXMgaW4gdGhlIGdyb3VwLgorICAqCisgICogQHNlZSAgICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsCisgICogQHZlcnNpb24gMS4wMCAyMDAwLjAzLjI3CisgICogQGF1dGhvciAgTWlrZSBDb3dsaXNoYXcKKyAgKi8KKyAKKyBwdWJsaWMgc3RhdGljIGNsYXNzIERpYWdFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbnsKKyAgcHJpdmF0ZSBmaW5hbCB0cmFuc2llbnQgamF2YS5sYW5nLlN0cmluZyAkMD0iRGlhZ0JpZ0RlY2ltYWwubnJ4IjsKKyAKKyAgLyogcHJvcGVydGllcyBzaGFyZWQgdHJhbnNpZW50ICovCisgLyoqIHRoZSBjb3VudCBvZiBmYWlsZWQgdGVzdHMgaW4gdGhlIGdyb3VwIHdoaWNoIHNpZ25hbGxlZCB0aGlzCisgICAqIGV4Y2VwdGlvbi4KKyAgICovCisgIHRyYW5zaWVudCBpbnQgZmFpbGNvdW50PTA7CisgLy8gbnVtYmVyIG9mIHRlc3RzIHdoaWNoIGZhaWxlZAorIAorIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RGlhZ0V4Y2VwdGlvbjwvY29kZT4gd2l0aCBhIG1lc3NhZ2UgYW5kCisgICogZmFpbHVyZSBjb3VudC4gIFRoaXMgaXMgdGhyb3duIHdoZW4gYSBncm91cCBvZiB0ZXN0cyBmYWlscy4KKyAgKgorICAqIEBwYXJhbSBtZXNzYWdlIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgZ3JvdXAuCisgICogQHBhcmFtIGZhaWxzICAgVGhlIDxjb2RlPmludDwvY29kZT4gbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGUgIGdyb3VwLgorICAqLworICAKKyAgcHVibGljIERpYWdFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyBtZXNzYWdlLGludCBmYWlscyl7CisgICBzdXBlcihtZXNzYWdlKTsKKyAgIGZhaWxjb3VudD1mYWlsczsKKyAgfQorIH19CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQXN0cm9UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQXN0cm9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGQzMmE4OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Bc3Ryb1Rlc3QuamF2YQpAQCAtMCwwICsxLDI5MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKKy8vIEFzdHJvVGVzdAorCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJBc3Ryb25vbWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJBc3Ryb25vbWVyLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworCisvLyBUT0RPOiB0cnkgZmluZGluZyBuZXh0IG5ldyBtb29uIGFmdGVyICAwNy8yOC8xOTg0IDE2OjAwIEdNVAorCitwdWJsaWMgY2xhc3MgQXN0cm9UZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQXN0cm9UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgUEkgPSBNYXRoLlBJOworCisgICAgcHVibGljIHZvaWQgVGVzdFNvbGFyTG9uZ2l0dWRlKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgICAgICBmaW5hbCBkb3VibGUgdGVzdHNbXVtdID0geworICAgICAgICAgICAgeyAxOTgwLCA3LCAyNywgMDAsIDAwLCAxMjQuMTE0MzQ3IH0sCisgICAgICAgICAgICB7IDE5ODgsIDcsIDI3LCAwMCwgMDAsIDEyNC4xODc3MzIgfSwKKyAgICAgICAgfTsKKyAgICAgICAgbG9nbG4oIiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnYy5jbGVhcigpOworICAgICAgICAgICAgZ2Muc2V0KChpbnQpdGVzdHNbaV1bMF0sIChpbnQpdGVzdHNbaV1bMV0tMSwgKGludCl0ZXN0c1tpXVsyXSwgKGludCl0ZXN0c1tpXVszXSwgKGludCkgdGVzdHNbaV1bNF0pOworCisgICAgICAgICAgICBhc3Ryby5zZXREYXRlKGdjLmdldFRpbWUoKSk7CisKKyAgICAgICAgICAgIGRvdWJsZSBsb25naXR1ZGUgPSBhc3Ryby5nZXRTdW5Mb25naXR1ZGUoKTsKKyAgICAgICAgICAgIGxvbmdpdHVkZSA9IDA7CisgICAgICAgICAgICBFcXVhdG9yaWFsIHJlc3VsdCA9IGFzdHJvLmdldFN1blBvc2l0aW9uKCk7CisgICAgICAgICAgICByZXN1bHQgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEx1bmFyUG9zaXRpb24oKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgICAgIGZpbmFsIGRvdWJsZSB0ZXN0c1tdW10gPSB7CisgICAgICAgICAgICB7IDE5NzksIDIsIDI2LCAxNiwgMDAsICAwLCAwIH0sCisgICAgICAgIH07CisgICAgICAgIGxvZ2xuKCIiKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnYy5jbGVhcigpOworICAgICAgICAgICAgZ2Muc2V0KChpbnQpdGVzdHNbaV1bMF0sIChpbnQpdGVzdHNbaV1bMV0tMSwgKGludCl0ZXN0c1tpXVsyXSwgKGludCl0ZXN0c1tpXVszXSwgKGludCkgdGVzdHNbaV1bNF0pOworICAgICAgICAgICAgYXN0cm8uc2V0RGF0ZShnYy5nZXRUaW1lKCkpOworCisgICAgICAgICAgICBFcXVhdG9yaWFsIHJlc3VsdCA9IGFzdHJvLmdldE1vb25Qb3NpdGlvbigpOworICAgICAgICAgICAgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvb3JkaW5hdGVzKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgICAgICBFcXVhdG9yaWFsIHJlc3VsdCA9IGFzdHJvLmVjbGlwdGljVG9FcXVhdG9yaWFsKDEzOS42ODYxMTEgKiBQSS8gMTgwLjAsIDQuODc1Mjc4KiBQSSAvIDE4MC4wKTsKKyAgICAgICAgbG9nbG4oInJlc3VsdCBpcyAiICsgcmVzdWx0ICsgIjsgICIgKyByZXN1bHQudG9IbXNTdHJpbmcoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5NTgsIENhbGVuZGFyLkFVR1VTVCwgMTUpOworICAgICAgICBEYXRlIHRoZW4gPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgbXlhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIodGhlbik7CisKKyAgICAgICAgLy9MYXRpdHVkZTogIDM0IGRlZ3JlZXMgMDUnIE5vcnRoCisgICAgICAgIC8vTG9uZ2l0dWRlOiAgMTE4IGRlZ3JlZXMgMjInIFdlc3QKKyAgICAgICAgZG91YmxlIGxhTGF0ID0gMzQgKyA1ZC82MCwgbGFMb25nID0gMzYwIC0gKDExOCArIDIyZC82MCk7CisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBteWFzdHJvMiA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIobGFMb25nLCBsYUxhdCk7CisKKyAgICAgICAgZG91YmxlIGVjbExhdCA9IGxhTGF0ICogTWF0aC5QSSAvIDM2MDsKKyAgICAgICAgZG91YmxlIGVjbExvbmcgPSBsYUxvbmcgKiBNYXRoLlBJIC8gMzYwOworICAgICAgICBFY2xpcHRpYyBlY2wgPSBuZXcgRWNsaXB0aWMoZWNsTGF0LCBlY2xMb25nKTsKKyAgICAgICAgbG9nbG4oImVjbGlwdGljOiAiICsgZWNsKTsKKworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgbXlhc3RybzMgPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgICAgIG15YXN0cm8zLnNldEp1bGlhbkRheSgoNDcxMyArIDIwMDApICogMzY1LjI1KTsKKworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXJbXSBhc3Ryb25vbWVycyA9IHsKKyAgICAgICAgICAgIG15YXN0cm8sIG15YXN0cm8yLCBteWFzdHJvMywgbXlhc3RybzIgLy8gY2hlY2sgY2FjaGUKKworICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXN0cm9ub21lcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IGFzdHJvbm9tZXJzW2ldOworCisgICAgICAgICAgICBsb2dsbigiYXN0cm86ICIgKyBhc3Rybyk7CisgICAgICAgICAgICBsb2dsbigiICAgdGltZTogIiArIGFzdHJvLmdldFRpbWUoKSk7CisgICAgICAgICAgICBsb2dsbigiICAgZGF0ZTogIiArIGFzdHJvLmdldERhdGUoKSk7CisgICAgICAgICAgICBsb2dsbigiICAgY2VudDogIiArIGFzdHJvLmdldEp1bGlhbkNlbnR1cnkoKSk7CisgICAgICAgICAgICBsb2dsbigiICAgZ3cgc2lkZXJlYWw6ICIgKyBhc3Ryby5nZXRHcmVlbndpY2hTaWRlcmVhbCgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBsb2Mgc2lkZXJlYWw6ICIgKyBhc3Ryby5nZXRMb2NhbFNpZGVyZWFsKCkpOworICAgICAgICAgICAgbG9nbG4oIiAgIGVxdSBlY2w6ICIgKyBhc3Ryby5lY2xpcHRpY1RvRXF1YXRvcmlhbChlY2wpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBlcXUgbG9uZzogIiArIGFzdHJvLmVjbGlwdGljVG9FcXVhdG9yaWFsKGVjbExvbmcpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBob3JpejogIiArIGFzdHJvLmVjbGlwdGljVG9Ib3Jpem9uKGVjbExvbmcpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBzdW5yaXNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldCh0cnVlKSkpOworICAgICAgICAgICAgbG9nbG4oIiAgIHN1bnNldDogIiArIG5ldyBEYXRlKGFzdHJvLmdldFN1blJpc2VTZXQoZmFsc2UpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgbW9vbiBwaGFzZTogIiArIGFzdHJvLmdldE1vb25QaGFzZSgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBtb29ucmlzZTogIiArIG5ldyBEYXRlKGFzdHJvLmdldE1vb25SaXNlU2V0KHRydWUpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgbW9vbnNldDogIiArIG5ldyBEYXRlKGFzdHJvLmdldE1vb25SaXNlU2V0KGZhbHNlKSkpOworICAgICAgICAgICAgbG9nbG4oIiAgIHByZXYgc3VtbWVyIHNvbHN0aWNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuVGltZShDYWxlbmRhckFzdHJvbm9tZXIuU1VNTUVSX1NPTFNUSUNFLCBmYWxzZSkpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBuZXh0IHN1bW1lciBzb2xzdGljZTogIiArIG5ldyBEYXRlKGFzdHJvLmdldFN1blRpbWUoQ2FsZW5kYXJBc3Ryb25vbWVyLlNVTU1FUl9TT0xTVElDRSwgdHJ1ZSkpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBwcmV2IGZ1bGwgbW9vbjogIiArIG5ldyBEYXRlKGFzdHJvLmdldE1vb25UaW1lKENhbGVuZGFyQXN0cm9ub21lci5GVUxMX01PT04sIGZhbHNlKSkpOworICAgICAgICAgICAgbG9nbG4oIiAgIG5leHQgZnVsbCBtb29uOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblRpbWUoQ2FsZW5kYXJBc3Ryb25vbWVyLkZVTExfTU9PTiwgdHJ1ZSkpKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGxvbmcgREFZX01TID0gMjQqNjAqNjAqMTAwMEw7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VucmlzZVRpbWVzKCkgeworCisgICAgICAgIC8vICAgICAgICBsb2dsbigiU3VucmlzZS9TdW5zZXQgdGltZXMgZm9yIFNhbiBKb3NlLCBDYWxpZm9ybmlhLCBVU0EiKTsKKyAgICAgICAgLy8gICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoLTEyMS41NSwgMzcuMjApOworICAgICAgICAvLyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworCisgICAgICAgIC8vIFdlJ2xsIHVzZSBhIHRhYmxlIGdlbmVyYXRlZCBieSB0aGUgVU5TTyB3ZWJzaXRlIGFzIG91ciByZWZlcmVuY2UKKyAgICAgICAgLy8gRnJvbTogaHR0cDovL2FhLnVzbm8ubmF2eS5taWwvCisgICAgICAgIC8vLUxvY2F0aW9uOiBXMDc5IDI1LCBONDMgNDAKKyAgICAgICAgLy8tUmlzZSBhbmQgU2V0IGZvciB0aGUgU3VuIGZvciAyMDAxCisgICAgICAgIC8vLVpvbmU6ICA0aCBXZXN0IG9mIEdyZWVud2ljaAorICAgICAgICBpbnRbXSBVU05PID0geworICAgICAgICAgICAgIDYsNTksIDE5LDQ1LAorICAgICAgICAgICAgIDYsNTcsIDE5LDQ2LAorICAgICAgICAgICAgIDYsNTYsIDE5LDQ3LAorICAgICAgICAgICAgIDYsNTQsIDE5LDQ4LAorICAgICAgICAgICAgIDYsNTIsIDE5LDQ5LAorICAgICAgICAgICAgIDYsNTAsIDE5LDUxLAorICAgICAgICAgICAgIDYsNDgsIDE5LDUyLAorICAgICAgICAgICAgIDYsNDcsIDE5LDUzLAorICAgICAgICAgICAgIDYsNDUsIDE5LDU0LAorICAgICAgICAgICAgIDYsNDMsIDE5LDU1LAorICAgICAgICAgICAgIDYsNDIsIDE5LDU3LAorICAgICAgICAgICAgIDYsNDAsIDE5LDU4LAorICAgICAgICAgICAgIDYsMzgsIDE5LDU5LAorICAgICAgICAgICAgIDYsMzYsIDIwLCAwLAorICAgICAgICAgICAgIDYsMzUsIDIwLCAxLAorICAgICAgICAgICAgIDYsMzMsIDIwLCAzLAorICAgICAgICAgICAgIDYsMzEsIDIwLCA0LAorICAgICAgICAgICAgIDYsMzAsIDIwLCA1LAorICAgICAgICAgICAgIDYsMjgsIDIwLCA2LAorICAgICAgICAgICAgIDYsMjcsIDIwLCA3LAorICAgICAgICAgICAgIDYsMjUsIDIwLCA4LAorICAgICAgICAgICAgIDYsMjMsIDIwLDEwLAorICAgICAgICAgICAgIDYsMjIsIDIwLDExLAorICAgICAgICAgICAgIDYsMjAsIDIwLDEyLAorICAgICAgICAgICAgIDYsMTksIDIwLDEzLAorICAgICAgICAgICAgIDYsMTcsIDIwLDE0LAorICAgICAgICAgICAgIDYsMTYsIDIwLDE2LAorICAgICAgICAgICAgIDYsMTQsIDIwLDE3LAorICAgICAgICAgICAgIDYsMTMsIDIwLDE4LAorICAgICAgICAgICAgIDYsMTEsIDIwLDE5LAorICAgICAgICB9OworCisgICAgICAgIGxvZ2xuKCJTdW5yaXNlL1N1bnNldCB0aW1lcyBmb3IgVG9yb250bywgQ2FuYWRhIik7CisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoLSg3OSsyNS82MCksIDQzKzQwLzYwKTsKKworICAgICAgICAvLyBBcyBvZiBJQ1U0SiAyLjggdGhlIElDVTRKIHRpbWUgem9uZXMgaW1wbGVtZW50IHBhc3MtdGhyb3VnaAorICAgICAgICAvLyB0byB0aGUgdW5kZXJseWluZyBKREsuICBCZWNhdXNlIG9mIHZhcmlhdGlvbiBpbiB0aGUKKyAgICAgICAgLy8gdW5kZXJseWluZyBKREtzLCB3ZSBoYXZlIHRvIHVzZSBhIGZpeGVkLW9mZnNldAorICAgICAgICAvLyBTaW1wbGVUaW1lWm9uZSB0byBnZXQgY29uc2lzdGVudCBiZWhhdmlvciBiZXR3ZWVuIEpES3MuCisgICAgICAgIC8vIFRoZSBvZmZzZXQgd2Ugd2FudCBpcyBbLTE4MDAwMDAwLCAzNjAwMDAwXSAocmF3LCBkc3QpLgorICAgICAgICAvLyBbYWxpdSAxMC8xNS8wM10KKworICAgICAgICAvLyBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL01vbnRyZWFsIik7CisgICAgICAgIFRpbWVab25lIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKC0xODAwMDAwMCArIDM2MDAwMDAsICJNb250cmVhbChGSVhFRCkiKTsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHosIExvY2FsZS5VUyk7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbDIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHosIExvY2FsZS5VUyk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDIwMDEpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5BUFJJTCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMTIpOyAvLyBtdXN0IGJlIG5lYXIgbG9jYWwgbm9vbiBmb3IgZ2V0U3VuUmlzZVNldCB0byB3b3JrCisKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUyk7CisgICAgICAgIERhdGVGb3JtYXQgZGYyID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuVVMpOworICAgICAgICBEYXRlRm9ybWF0IGRheSA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUyk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgMzA7IGkrKykgeworICAgICAgICAgICAgYXN0cm8uc2V0RGF0ZShjYWwuZ2V0VGltZSgpKTsKKworICAgICAgICAgICAgRGF0ZSBzdW5yaXNlID0gbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldCh0cnVlKSk7CisgICAgICAgICAgICBEYXRlIHN1bnNldCA9IG5ldyBEYXRlKGFzdHJvLmdldFN1blJpc2VTZXQoZmFsc2UpKTsKKworICAgICAgICAgICAgY2FsMi5zZXRUaW1lKGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuU0VDT05ELCAgICAgIDApOworICAgICAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgVVNOT1s0KmkrMF0pOworICAgICAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuTUlOVVRFLCAgICAgIFVTTk9bNCppKzFdKTsKKyAgICAgICAgICAgIERhdGUgZXhwcmlzZSA9IGNhbDIuZ2V0VGltZSgpOworICAgICAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIFVTTk9bNCppKzJdKTsKKyAgICAgICAgICAgIGNhbDIuc2V0KENhbGVuZGFyLk1JTlVURSwgICAgICBVU05PWzQqaSszXSk7CisgICAgICAgICAgICBEYXRlIGV4cHNldCA9IGNhbDIuZ2V0VGltZSgpOworICAgICAgICAgICAgLy8gQ29tcHV0ZSBkZWx0YSBvZiB3aGF0IHdlIGdvdCB0byB0aGUgVVNOTyBkYXRhLCBpbiBzZWNvbmRzCisgICAgICAgICAgICBpbnQgZGVsdGFyaXNlID0gTWF0aC5hYnMoKGludCkoc3VucmlzZS5nZXRUaW1lKCkgLSBleHByaXNlLmdldFRpbWUoKSkgLyAxMDAwKTsKKyAgICAgICAgICAgIGludCBkZWx0YXNldCA9IE1hdGguYWJzKChpbnQpKHN1bnNldC5nZXRUaW1lKCkgLSBleHBzZXQuZ2V0VGltZSgpKSAvIDEwMDApOworCisgICAgICAgICAgICAvLyBBbGxvdyBhIGRldmlhdGlvbiBvZiAwLi5NQVhfREVWIHNlY29uZHMKKyAgICAgICAgICAgIC8vIEl0IHdvdWxkIGJlIG5pY2UgdG8gZ2V0IGRvd24gdG8gNjAgc2Vjb25kcywgYnV0IGF0IHRoaXMKKyAgICAgICAgICAgIC8vIHBvaW50IHRoYXQgYXBwZWFycyB0byBiZSBpbXBvc3NpYmxlIHdpdGhvdXQgYSByZWRvIG9mIHRoZQorICAgICAgICAgICAgLy8gYWxnb3JpdGhtIHVzaW5nIHNvbWV0aGluZyBtb3JlIGFkdmFuY2VkIHRoYW4gRHVmZmV0dC1TbWl0aC4KKyAgICAgICAgICAgIGZpbmFsIGludCBNQVhfREVWID0gMTgwOworICAgICAgICAgICAgaWYgKGRlbHRhcmlzZSA+IE1BWF9ERVYgfHwgZGVsdGFzZXQgPiBNQVhfREVWKSB7CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhcmlzZSA+IE1BWF9ERVYpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkYXkuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgU3VucmlzZTogIiArIGRmMi5mb3JtYXQoc3VucmlzZSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIChVU05PICIgKyBkZi5mb3JtYXQoZXhwcmlzZSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGQ9IiArIGRlbHRhcmlzZSArICJzKSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBTdW5yaXNlOiAiICsgZGYuZm9ybWF0KHN1bnJpc2UpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAoVVNOTyAiICsgZGYuZm9ybWF0KGV4cHJpc2UpICsgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhc2V0ID4gTUFYX0RFVikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBTdW5zZXQ6ICIgKyBkZjIuZm9ybWF0KHN1bnNldCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIChVU05PICIgKyBkZi5mb3JtYXQoZXhwc2V0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgZD0iICsgZGVsdGFzZXQgKyAicykiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbihkYXkuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgU3Vuc2V0OiAiICsgZGYuZm9ybWF0KHN1bnNldCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIChVU05PICIgKyBkZi5mb3JtYXQoZXhwc2V0KSArICIpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbihkYXkuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBTdW5yaXNlOiAiICsgZGYuZm9ybWF0KHN1bnJpc2UpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIChVU05PICIgKyBkZi5mb3JtYXQoZXhwcmlzZSkgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICIsIFN1bnNldDogIiArIGRmLmZvcm1hdChzdW5zZXQpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIChVU05PICIgKyBkZi5mb3JtYXQoZXhwc2V0KSArICIpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICB9CisKKy8vICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgYSA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoLSg3MSs1LzYwKSwgNDIrMzcvNjApOworLy8gICAgICAgIGNhbC5jbGVhcigpOworLy8gICAgICAgIGNhbC5zZXQoY2FsLllFQVIsIDE5ODYpOworLy8gICAgICAgIGNhbC5zZXQoY2FsLk1PTlRILCBjYWwuTUFSQ0gpOworLy8gICAgICAgIGNhbC5zZXQoY2FsLkRBVEUsIDEwKTsKKy8vICAgICAgICBjYWwuc2V0KGNhbC5ZRUFSLCAxOTg4KTsKKy8vICAgICAgICBjYWwuc2V0KGNhbC5NT05USCwgY2FsLkpVTFkpOworLy8gICAgICAgIGNhbC5zZXQoY2FsLkRBVEUsIDI3KTsKKy8vICAgICAgICBhLnNldERhdGUoY2FsLmdldFRpbWUoKSk7CisvLyAgICAgICAgbG9uZyByID0gYS5nZXRTdW5SaXNlU2V0Mih0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWNzKCkgeworICAgICAgICAvLyBDaGVjayB0aGF0IG91ciBKRCBjb21wdXRhdGlvbiBpcyB0aGUgc2FtZSBhcyB0aGUgYm9vaydzIChwLiA4OCkKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIiksIExvY2FsZS5VUyk7CisgICAgICAgIERhdGVGb3JtYXQgZDMgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsMywgRGF0ZUZvcm1hdC5NRURJVU0sRGF0ZUZvcm1hdC5NRURJVU0sTG9jYWxlLlVTKTsKKyAgICAgICAgY2FsMy5jbGVhcigpOworICAgICAgICBjYWwzLnNldChDYWxlbmRhci5ZRUFSLCAxOTgwKTsKKyAgICAgICAgY2FsMy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTFkpOworICAgICAgICBjYWwzLnNldChDYWxlbmRhci5EQVRFLCAyNyk7CisgICAgICAgIGFzdHJvLnNldERhdGUoY2FsMy5nZXRUaW1lKCkpOworICAgICAgICBkb3VibGUgamQgPSBhc3Ryby5nZXRKdWxpYW5EYXkoKSAtIDI0NDc4OTEuNTsKKyAgICAgICAgZG91YmxlIGV4cCA9IC0zNDQ0OworICAgICAgICBpZiAoamQgPT0gZXhwKSB7CisgICAgICAgICAgICBsb2dsbihkMy5mb3JtYXQoY2FsMy5nZXRUaW1lKCkpICsgIiA9PiAiICsgamQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkMy5mb3JtYXQoY2FsMy5nZXRUaW1lKCkpICsgIiA9PiAiICsgamQgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgIH0KKworCisvLyAgICAgICAgY2FsMy5jbGVhcigpOworLy8gICAgICAgIGNhbDMuc2V0KGNhbDMuWUVBUiwgMTk5MCk7CisvLyAgICAgICAgY2FsMy5zZXQoY2FsMy5NT05USCwgQ2FsZW5kYXIuSkFOVUFSWSk7CisvLyAgICAgICAgY2FsMy5zZXQoY2FsMy5EQVRFLCAxKTsKKy8vICAgICAgICBjYWwzLmFkZChjYWwzLkRBVEUsIC0xKTsKKy8vICAgICAgICBhc3Ryby5zZXREYXRlKGNhbDMuZ2V0VGltZSgpKTsKKy8vICAgICAgICBhc3Ryby5mb28oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJSZWdyZXNzaW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJSZWdyZXNzaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGMwMWVjYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YQpAQCAtMCwwICsxLDE5MjMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogQHRlc3QgMS4zMiA5OS8xMS8xNAorICogQGJ1ZyA0MDMxNTAyIDQwMzUzMDEgNDA0MDk5NiA0MDUxNzY1IDQwNTk2NTQgNDA2MTQ3NiA0MDcwNTAyIDQwNzExOTcgNDA3MTM4NQorICogNDA3MzkyOSA0MDgzMTY3IDQwODY3MjQgNDA5MjM2MiA0MDk1NDA3IDQwOTYyMzEgNDA5NjUzOSA0MTAwMzExIDQxMDMyNzEKKyAqIDQxMDYxMzYgNDEwODc2NCA0MTE0NTc4IDQxMTgzODQgNDEyNTg4MSA0MTI1ODkyIDQxMzYzOTkgNDE0MTY2NSA0MTQyOTMzCisgKiA0MTQ1MTU4IDQxNDU5ODMgNDE0NzI2OSA0MTQ5Njc3IDQxNjI1ODcgNDE2NTM0MyA0MTY2MTA5IDQxNjcwNjAgNDE3MzUxNgorICogNDE3NDM2MSA0MTc3NDg0IDQxOTc2OTkgNDIwOTA3MSA0Mjg4NzkyCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhclJlZ3Jlc3Npb24gZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENhbGVuZGFyUmVncmVzc2lvbigpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICAgICAiRVJBIiwgIllFQVIiLCAiTU9OVEgiLCAiV0VFS19PRl9ZRUFSIiwgIldFRUtfT0ZfTU9OVEgiLAorICAgICAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICAgICAiTUlOVVRFIiwgIlNFQ09ORCIsICJNSUxMSVNFQ09ORCIsICJaT05FX09GRlNFVCIsCisgICAgICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIgorICAgICAgICB9OworCisKKyAgICAvKgorICAgICAgU3lub3BzaXM6IGphdmEuc3FsLlRpbWVzdGFtcCBjb25zdHJ1Y3RvciB3b3JrcyB3cm9uZyBvbiBXaW5kb3dzIDk1CisKKyAgICAgID09PT0gSGVyZSBpcyB0aGUgdGVzdCA9PT09IAorICAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZyBhcmdzW10pIHsgCisgICAgICAgIGphdmEuc3FsLlRpbWVzdGFtcCB0PSBuZXcgamF2YS5zcWwuVGltZXN0YW1wKDAsMTUsNSw1LDgsMTMsMTIzNDU2NzAwKTsgCisgICAgICAgIGxvZ2xuKCJleHBlY3RlZD0xOTAxLTA0LTA1IDA1OjA4OjEzLjEyMzQ1NjciKTsgCisgICAgICAgIGxvZ2xuKCIgcmVzdWx0PSIrdCk7IAorICAgICAgfSAKKyAgICAgIAorICAgICAgPT09PSBIZXJlIGlzIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3Qgb24gU29sYXJpcyBvciBOVCA9PT09IAorICAgICAgZXhwZWN0ZWQ9MTkwMS0wNC0wNSAwNTowODoxMy4xMjM0NTY3IAorICAgICAgcmVzdWx0PTE5MDEtMDQtMDUgMDU6MDg6MTMuMTIzNDU2NyAKKyAgICAgIAorICAgICAgPT09PSBIZXJlIGlzIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3Qgb24gV2luZG93czk1ID09PT0gCisgICAgICBleHBlY3RlZD0xOTAxLTA0LTA1IDA1OjA4OjEzLjEyMzQ1NjcgCisgICAgICByZXN1bHQ9MTkwMS0wNC0wNSAwNjowODoxMy4xMjM0NTY3IAorICAgICAgKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDMxNTAyKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICAvLyBUaGlzIGJ1ZyBhY3R1YWxseSBvY2N1cnMgb24gV2luZG93cyBOVCBhcyB3ZWxsLCBhbmQgZG9lc24ndAorICAgICAgICAgICAgLy8gcmVxdWlyZSB0aGUgaG9zdCB6b25lIHRvIGJlIHNldDsgaXQgY2FuIGJlIHNldCBpbiBKYXZhLgorICAgICAgICAgICAgU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICBib29sZWFuIGJhZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShpZHNbaV0pOworICAgICAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KDE5MDAsIDE1LCA1LCA1LCA4LCAxMyk7CisgICAgICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikgIT0gNSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRmFpbDogIiArIHpvbmUuZ2V0SUQoKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmUudXNlRGF5bGlnaHRUaW1lKCkgKyAiOyBEU1RfT0ZGU0VUID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgLyAoNjAqNjAqMTAwMC4wKSArICI7IFpPTkVfT0ZGU0VUID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpIC8gKDYwKjYwKjEwMDAuMCkgKyAiOyBnZXRSYXdPZmZzZXQoKSA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLmdldFJhd09mZnNldCgpIC8gKDYwKjYwKjEwMDAuMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBIT1VSID0gIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikpOworICAgICAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldCgxOTAwLCAxNSwgNSwgNSwgOCwgMTMpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5IT1VSKSAhPSA1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRmFpbDogIiArIHpvbmUuZ2V0SUQoKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLnVzZURheWxpZ2h0VGltZSgpICsgIjsgRFNUX09GRlNFVCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSAvICg2MCo2MCoxMDAwLjApICsgIjsgWk9ORV9PRkZTRVQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpIC8gKDYwKjYwKjEwMDAuMCkgKyAiOyBnZXRSYXdPZmZzZXQoKSA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS5nZXRSYXdPZmZzZXQoKSAvICg2MCo2MCoxMDAwLjApICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IEhPVVIgPSAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoMTkwMCwgMTUsIDUsIDUsIDgsIDEzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJtcyA9ICIgKyBjYWwuZ2V0VGltZSgpICsgIiAoIiArIGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICsgIikiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUik7CisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IG5ldyBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIoamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKGlkc1tpXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5zZXQoMTkwMCwgMTUsIDUsIDUsIDgsIDEzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0KENhbGVuZGFyLkhPVVIpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImphdmEudXRpbC5HQzogIiArIHpvbmUuZ2V0SUQoKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS51c2VEYXlsaWdodFRpbWUoKSArICI7IERTVF9PRkZTRVQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSAvICg2MCo2MCoxMDAwLjApICsgIjsgWk9ORV9PRkZTRVQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgLyAoNjAqNjAqMTAwMC4wKSArICI7IGdldFJhd09mZnNldCgpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS5nZXRSYXdPZmZzZXQoKSAvICg2MCo2MCoxMDAwLjApICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBIT1VSID0gIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIm1zID0gIiArIGNhbDIuZ2V0VGltZSgpICsgIiAoIiArIGNhbDIuZ2V0VGltZSgpLmdldFRpbWUoKSArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICBiYWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZhbHNlKSB7IC8vIENoYW5nZSB0byB0cnVlIHRvIGRlYnVnCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyB6b25lLmdldElEKCkgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS51c2VEYXlsaWdodFRpbWUoKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gKDYwKjYwKjEwMDApICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmUuZ2V0UmF3T2Zmc2V0KCkgLyAoNjAqNjAqMTAwMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogSE9VUiA9ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYmFkKSBlcnJsbigiVGltZVpvbmUgcHJvYmxlbXMgd2l0aCBHQyIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkYXRhLiAiKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDAzNTMwMSgpIHsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDk4LCA4LCA3KTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGQgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoOTgsIDgsIDcpOworICAgICAgICAgICAgaWYgKGMuYWZ0ZXIoZCkgfHwKKyAgICAgICAgICAgICAgICBjLmFmdGVyKGMpIHx8CisgICAgICAgICAgICAgICAgYy5iZWZvcmUoZCkgfHwKKyAgICAgICAgICAgICAgICBjLmJlZm9yZShjKSB8fAorICAgICAgICAgICAgICAgICFjLmVxdWFscyhjKSB8fAorICAgICAgICAgICAgICAgICFjLmVxdWFscyhkKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkYXRhLiAiKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA0MDk5NigpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygtOCAqIDYwICogNjAgKiAxMDAwKTsKKyAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHBkdCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCAqIDYwICogNjAgKiAxMDAwLCBpZHNbMF0pOworICAgICAgICAgICAgcGR0LnNldFN0YXJ0UnVsZShDYWxlbmRhci5BUFJJTCwgMSwgQ2FsZW5kYXIuU1VOREFZLCAyICogNjAgKiA2MCAqIDEwMDApOworICAgICAgICAgICAgcGR0LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgLTEsIENhbGVuZGFyLlNVTkRBWSwgMiAqIDYwICogNjAgKiAxMDAwKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHBkdCk7CisKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldChDYWxlbmRhci5NT05USCwzKTsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsMTgpOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLlNFQ09ORCwgMzApOworCisgICAgICAgICAgICBsb2dsbigiTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJEQVlfT0ZfTU9OVEg6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICBsb2dsbigiTUlOVVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1JTlVURSkpOworICAgICAgICAgICAgbG9nbG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLlNFQ09ORCw2KTsKKyAgICAgICAgICAgIC8vVGhpcyB3aWxsIHByaW50IG91dCB0b2RheXMgZGF0ZSBmb3IgTU9OVEggYW5kIERBWV9PRl9NT05USAorICAgICAgICAgICAgLy9pbnN0ZWFkIG9mIHRoZSBkYXRlIGl0IHdhcyBzZXQgdG8uCisgICAgICAgICAgICAvL1RoaXMgaGFwcGVucyB3aGVuIGFkZGluZyBNSUxMSVNFQ09ORCBvciBNSU5VVEUgYWxzbworICAgICAgICAgICAgbG9nbG4oIk1PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKSk7CisgICAgICAgICAgICBsb2dsbigiREFZX09GX01PTlRIOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICAgICAgbG9nbG4oIk1JTlVURTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSU5VVEUpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJTRUNPTkQ6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuU0VDT05EKSk7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKSAhPSAzIHx8CisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gMTggfHwKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuU0VDT05EKSAhPSAzNikKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogQ2FsZW5kYXIuYWRkIG1pc2JlaGF2ZXMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgZGF0YS4gIisgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTE3NjUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgMCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IERBWV9PRl9XRUVLIDAgc2hvdWxkIGJlIGRpc2FsbG93ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2sKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgZGF0YS4gIisgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogVXNlciBlcnJvciAtIG5vIGJ1ZyBoZXJlIHB1YmxpYyB2b2lkIFRlc3Q0MDU5NTI0KCkgeyAvLyBDcmVhdGUgY2FsZW5kYXIKKyAgICAgKiBmb3IgQXByaWwgMTAsIDE5OTcgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsgLy8KKyAgICAgKiBwcmludCBvdXQgYSBidW5jaCBvZiBpbnRlcmVzdGluZyB0aGluZ3MgbG9nbG4oIkVSQTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkVSQSkpOyBsb2dsbigiWUVBUjogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLllFQVIpKTsgbG9nbG4oIk1PTlRIOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuTU9OVEgpKTsgbG9nbG4oIldFRUtfT0ZfWUVBUjogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLldFRUtfT0ZfWUVBUikpOyBsb2dsbigiV0VFS19PRl9NT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLldFRUtfT0ZfTU9OVEgpKTsgbG9nbG4oIkRBVEU6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVRFKSk7IGxvZ2xuKCJEQVlfT0ZfTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsgbG9nbG4oIkRBWV9PRl9ZRUFSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX1lFQVIpKTsgbG9nbG4oIkRBWV9PRl9XRUVLOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX1dFRUspKTsgbG9nbG4oIkRBWV9PRl9XRUVLX0lOX01PTlRIOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgpKTsgbG9nbG4oIkFNX1BNOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuQU1fUE0pKTsgbG9nbG4oIkhPVVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5IT1VSKSk7IGxvZ2xuKCJIT1VSX09GX0RBWTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkhPVVJfT0ZfREFZKSk7IGxvZ2xuKCJNSU5VVEU6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5NSU5VVEUpKTsgbG9nbG4oIlNFQ09ORDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLlNFQ09ORCkpOyBsb2dsbigiTUlMTElTRUNPTkQ6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5NSUxMSVNFQ09ORCkpOyBsb2dsbigiWk9ORV9PRkZTRVQ6ICIgKworICAgICAqIChjYWxlbmRhci5nZXQoY2FsZW5kYXIuWk9ORV9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyBsb2dsbigiRFNUX09GRlNFVDogIiArCisgICAgICogKGNhbGVuZGFyLmdldChjYWxlbmRhci5EU1RfT0ZGU0VUKS8oNjAqNjAqMTAwMCkpKTsgY2FsZW5kYXIgPSBuZXcKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LDMsMTApOyBjYWxlbmRhci5nZXRUaW1lKCk7IGxvZ2xuKCJBcHJpbCAxMCwKKyAgICAgKiAxOTk3Iik7IGxvZ2xuKCJFUkE6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuRVJBKSk7IGxvZ2xuKCJZRUFSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuWUVBUikpOyBsb2dsbigiTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5NT05USCkpOyBsb2dsbigiV0VFS19PRl9ZRUFSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7IGxvZ2xuKCJXRUVLX09GX01PTlRIOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9NT05USCkpOyBsb2dsbigiREFURTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBVEUpKTsgbG9nbG4oIkRBWV9PRl9NT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9NT05USCkpOyBsb2dsbigiREFZX09GX1lFQVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfWUVBUikpOyBsb2dsbigiREFZX09GX1dFRUs6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFSykpOyBsb2dsbigiREFZX09GX1dFRUtfSU5fTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCkpOyBsb2dsbigiQU1fUE06ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5BTV9QTSkpOyBsb2dsbigiSE9VUjogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkhPVVIpKTsgbG9nbG4oIkhPVVJfT0ZfREFZOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsgbG9nbG4oIk1JTlVURTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1JTlVURSkpOyBsb2dsbigiU0VDT05EOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuU0VDT05EKSk7IGxvZ2xuKCJNSUxMSVNFQ09ORDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1JTExJU0VDT05EKSk7IGxvZ2xuKCJaT05FX09GRlNFVDogIiArCisgICAgICogKGNhbGVuZGFyLmdldChjYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vIGluIGhvdXJzCisgICAgICogbG9nbG4oIkRTVF9PRkZTRVQ6ICIgKyAoY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRTVF9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyAvLworICAgICAqIGluIGhvdXJzIH0KKyAgICAgKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU5NjU0KCkgeworICAgLy8gICAgIHRyeSB7CisgICAgICAgICAgICAvLyB3b3JrIGFyb3VuZCBidWcgZm9yIGpkazEuNCBvbiBzb2xhcmlzIDIuNiwgd2hpY2ggdXNlcyBmdW5reQorICAgICAgICAgICAgLy8gdGltZXpvbmUgbmFtZXMKKyAgICAgICAgICAgIC8vIGpkazEuNC4xIHdpbGwgZHJvcCBzdXBwb3J0IGZvciAyLjYgc28gd2Ugc2hvdWxkIGJlIG9rIHdoZW4gaXQKKyAgICAgICAgICAgIC8vIGNvbWVzIG91dAorICAgICAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGphdmF6b25lID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgICAgIFRpbWVab25lIGljdXpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKGljdXpvbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBnYy5zZXQoMTk5NywgMywgMSwgMTUsIDE2LCAxNyk7IC8vIEFwcmlsIDEsIDE5OTcKKworICAgICAgICAgICAgZ2Muc2V0KENhbGVuZGFyLkhPVVIsIDApOworICAgICAgICAgICAgZ2Muc2V0KENhbGVuZGFyLkFNX1BNLCBDYWxlbmRhci5BTSk7CisgICAgICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuTUlOVVRFLCAwKTsKKyAgICAgICAgICAgIGdjLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICAgICAgZ2Muc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKKworICAgICAgICAgICAgRGF0ZSBjZCA9IGdjLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoamF2YXpvbmUpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE5OTcsIDMsIDEsIDAsIDAsIDApOworICAgICAgICAgICAgRGF0ZSBleHAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgaWYgKCFjZC5lcXVhbHMoZXhwKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogQ2FsZW5kYXIuc2V0IGJyb2tlbi4gR290ICIgKyBjZCArICIgV2FudCAiICsgZXhwKTsKKyAgIC8vICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2sKKyAgIC8vICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgLy8gICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjE0NzYoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImRkTU1NeXkiLCBMb2NhbGUuVUspOworICAgICAgICBDYWxlbmRhciBjYWwgPSBHcmVnb3JpYW5DYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIiksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuVUspOworICAgICAgICBmbXQuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgdHJ5CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlID0gZm10LnBhcnNlKCIyOU1BWTk3Iik7CisgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMTMpOworICAgICAgICBsb2dsbigiSG91cjogIitjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDYpOworICAgICAgICBsb2dsbigiSG91cjogIitjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAhPSAxOSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBXYW50IDE5IEdvdCAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcwNTAyKCkgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIDAsIDMwKTsKKyAgICAgICAgRGF0ZSBkID0gZ2V0QXNzb2NpYXRlZERhdGUodGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSA9PSBDYWxlbmRhci5TQVRVUkRBWSB8fAorICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykgPT0gQ2FsZW5kYXIuU1VOREFZKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgd2Vla2RheSBHb3QgIiArIGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgYXNzb2NpYXRlZCBkYXRlIHN0YXJ0aW5nIGZyb20gYSBzcGVjaWZpZWQgZGF0ZSBOT1RFOiB0aGUKKyAgICAgKiB1bm5lY2Vzc2FyeSAiZ2V0VGltZSgpJ3MiIGJlbG93IGFyZSBhIHdvcmstYXJvdW5kIGZvciBhIGJ1ZyBpbiBqZGsgMS4xLjMKKyAgICAgKiAoYW5kIHByb2JhYmx5IGVhcmxpZXIgdmVyc2lvbnMgYWxzbykKKyAgICAgKiA8cD4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZAorICAgICAqICAgICAgICAgICAgVGhlIGRhdGUgdG8gc3RhcnQgZnJvbQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRGF0ZSBnZXRBc3NvY2lhdGVkRGF0ZShEYXRlIGQpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKGQpOworICAgICAgICAvL2NhbC5hZGQoZmllbGQsIGFtb3VudCk7IC8vPC0tIFBST0JMRU0gU0VFTiBXSVRIIGZpZWxkID0gREFURSxNT05USAorICAgICAgICAvLyBjYWwuZ2V0VGltZSgpOyAvLyA8LS0tIFJFTU9WRSBUSElTIFRPIFNFRSBCVUcKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCB3ZCA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgaWYgKHdkID09IENhbGVuZGFyLlNBVFVSREFZIHx8IHdkID09IENhbGVuZGFyLlNVTkRBWSkgeworICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICAgICAgLy8gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2FsLmdldFRpbWUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTE5NygpIHsKKyAgICAgICAgZG93VGVzdChmYWxzZSk7CisgICAgICAgIGRvd1Rlc3QodHJ1ZSk7CisgICAgfQorCisgICAgdm9pZCBkb3dUZXN0KGJvb2xlYW4gbGVuaWVudCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5BVUdVU1QsIDEyKTsgLy8gV2VkbmVzZGF5CisgICAgICAgIC8vIGNhbC5nZXRUaW1lKCk7IC8vIEZvcmNlIHVwZGF0ZQorICAgICAgICBjYWwuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICAgICAgY2FsLnNldCgxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgMSk7IC8vIFNldCB0aGUgZGF0ZSB0byBiZSBEZWNlbWJlciAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTk5NgorICAgICAgICBpbnQgZG93ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtaW4gPSBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtYXggPSBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChtaW4gIT0gQ2FsZW5kYXIuU1VOREFZIHx8IG1heCAhPSBDYWxlbmRhci5TQVRVUkRBWSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNaW4vbWF4IGJhZCIpOworICAgICAgICBpZiAoZG93IDwgbWluIHx8IGRvdyA+IG1heCkgCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF5IG9mIHdlZWsgIiArIGRvdyArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIGlmIChkb3cgIT0gQ2FsZW5kYXIuU1VOREFZKSAKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXkgb2Ygd2VlayBzaG91bGQgYmUgU1VOREFZIEdvdCAiICsgZG93KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTM4NSgpIHsKKyAgICAvLyB3b3JrIGFyb3VuZCBidWcgZm9yIGpkazEuNCBvbiBzb2xhcmlzIDIuNiwgd2hpY2ggdXNlcyBmdW5reSB0aW1lem9uZQorICAgIC8vIG5hbWVzCisgICAgLy8gamRrMS40LjEgd2lsbCBkcm9wIHN1cHBvcnQgZm9yIDIuNiBzbyB3ZSBzaG91bGQgYmUgb2sgd2hlbiBpdCBjb21lcyBvdXQKKyAgICBqYXZhLnV0aWwuVGltZVpvbmUgamF2YXpvbmUgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgIFRpbWVab25lIGljdXpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoaWN1em9uZSk7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKGphdmF6b25lKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KVU5FLCAyNCk7CisgICAgICAgIGNhbC5zZXRUaW1lKHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuTk9WRU1CRVIpOyAvLyBjaGFuZ2UgYSBmaWVsZAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5OT1ZFTUJFUiwgMjQpOworICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKHRlbXBjYWwuZ2V0VGltZSgpKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzM5MjkoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGZvbzEgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NywgOCwgMjcpOworICAgICAgICBmb28xLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsICsxKTsKKyAgICAgICAgaW50IHRlc3R5ZWFyID0gZm9vMS5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCB0ZXN0bW9udGggPSBmb28xLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCB0ZXN0ZGF5ID0gZm9vMS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgaWYgKHRlc3R5ZWFyICE9IDE5OTcgfHwKKyAgICAgICAgICAgIHRlc3Rtb250aCAhPSA4IHx8CisgICAgICAgICAgICB0ZXN0ZGF5ICE9IDI4KQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbGVuZGFyIG5vdCBpbml0aWFsaXplZCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDgzMTY3KCkgeworICAgICAgICBUaW1lWm9uZSBzYXZlWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlVUQyIpKTsKKyAgICAgICAgICAgIERhdGUgZmlyc3REYXRlID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZmlyc3REYXRlKTsKKyAgICAgICAgICAgIGxvbmcgZmlyc3RNaWxsaXNJbkRheSA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogMzYwMDAwMEwgKworICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSAqIDYwMDAwTCArCisgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICogMTAwMEwgKworICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbigiQ3VycmVudCB0aW1lOiAiICsgZmlyc3REYXRlLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICBmb3IgKGludCB2YWxpZGl0eT0wOyB2YWxpZGl0eTwzMDsgdmFsaWRpdHkrKykgeworICAgICAgICAgICAgICAgIERhdGUgbGFzdERhdGUgPSBuZXcgRGF0ZShmaXJzdERhdGUuZ2V0VGltZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpdmFsaWRpdHkqMTAwMCoyNCo2MCo2MCk7CisgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobGFzdERhdGUpOworICAgICAgICAgICAgICAgIGxvbmcgbWlsbGlzSW5EYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDM2MDAwMDBMICsKKyAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICogNjAwMDBMICsKKyAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICogMTAwMEwgKworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKTsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RNaWxsaXNJbkRheSAhPSBtaWxsaXNJbkRheSkgCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEYXkgaGFzIHNoaWZ0ZWQgIiArIGxhc3REYXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZVpvbmUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwODY3MjQoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGF0ZTsKKyAgICAgICAgVGltZVpvbmUgc2F2ZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZSBzYXZlTG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VSyk7IAorICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworICAgICAgICAgICAgZGF0ZT1uZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGQgTU1NIHl5eSAoenp6eikgJ2lzIGluIHdlZWsnIHd3Iik7IAorICAgICAgICAgICAgQ2FsZW5kYXIgY2FsPUNhbGVuZGFyLmdldEluc3RhbmNlKCk7IAorICAgICAgICAgICAgY2FsLnNldCgxOTk3LENhbGVuZGFyLlNFUFRFTUJFUiwzMCk7IAorICAgICAgICAgICAgRGF0ZSBub3c9Y2FsLmdldFRpbWUoKTsgCisgICAgICAgICAgICBsb2dsbihkYXRlLmZvcm1hdChub3cpKTsgCisgICAgICAgICAgICBjYWwuc2V0KDE5OTcsQ2FsZW5kYXIuSkFOVUFSWSwxKTsgCisgICAgICAgICAgICBub3c9Y2FsLmdldFRpbWUoKTsgCisgICAgICAgICAgICBsb2dsbihkYXRlLmZvcm1hdChub3cpKTsgCisgICAgICAgICAgICBjYWwuc2V0KDE5OTcsQ2FsZW5kYXIuSkFOVUFSWSw4KTsgCisgICAgICAgICAgICBub3c9Y2FsLmdldFRpbWUoKTsgCisgICAgICAgICAgICBsb2dsbihkYXRlLmZvcm1hdChub3cpKTsgCisgICAgICAgICAgICBjYWwuc2V0KDE5OTYsQ2FsZW5kYXIuREVDRU1CRVIsMzEpOyAKKyAgICAgICAgICAgIG5vdz1jYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgIGxvZ2xuKGRhdGUuZm9ybWF0KG5vdykpOyAKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVMb2NhbGUpOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIioqKiBUSEUgUkVTVUxUUyBPRiBUSElTIFRFU1QgTVVTVCBCRSBWRVJJRklFRCBNQU5VQUxMWSAqKioiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MjM2MigpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMSA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCAxMCwgMTEsIDEwLCAyMCwgNDApOyAKKyAgICAgICAgLyoKKyAgICAgICAgICogY2FsMS5zZXQoIENhbGVuZGFyLllFQVIsIDE5OTcgKTsgY2FsMS5zZXQoIENhbGVuZGFyLk1PTlRILCAxMCApOworICAgICAgICAgKiBjYWwxLnNldCggQ2FsZW5kYXIuREFURSwgMTEgKTsgY2FsMS5zZXQoIENhbGVuZGFyLkhPVVIsIDEwICk7CisgICAgICAgICAqIGNhbDEuc2V0KCBDYWxlbmRhci5NSU5VVEUsIDIwICk7IGNhbDEuc2V0KCBDYWxlbmRhci5TRUNPTkQsIDQwICk7CisgICAgICAgICAqLworCisgICAgICAgIGxvZ2xuKCAiIENhbDEgPSAiICsgY2FsMS5nZXRUaW1lKCkuZ2V0VGltZSgpICk7IAorICAgICAgICBsb2dsbiggIiBDYWwxIHRpbWUgaW4gbXMgPSAiICsgY2FsMS5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICk7IAorICAgICAgICBmb3IoIGludCBrID0gMDsgayA8IDEwMCA7IGsrKyApIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOyAKKyAgICAgICAgfQorCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbDIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NywgMTAsIDExLCAxMCwgMjAsIDQwKTsgCisgICAgICAgIC8qCisgICAgICAgICAqIGNhbDIuc2V0KCBDYWxlbmRhci5ZRUFSLCAxOTk3ICk7IGNhbDIuc2V0KCBDYWxlbmRhci5NT05USCwgMTAgKTsKKyAgICAgICAgICogY2FsMi5zZXQoIENhbGVuZGFyLkRBVEUsIDExICk7IGNhbDIuc2V0KCBDYWxlbmRhci5IT1VSLCAxMCApOworICAgICAgICAgKiBjYWwyLnNldCggQ2FsZW5kYXIuTUlOVVRFLCAyMCApOyBjYWwyLnNldCggQ2FsZW5kYXIuU0VDT05ELCA0MCApOworICAgICAgICAgKi8KKworICAgICAgICBsb2dsbiggIiBDYWwyID0gIiArIGNhbDIuZ2V0VGltZSgpLmdldFRpbWUoKSApOyAKKyAgICAgICAgbG9nbG4oICIgQ2FsMiB0aW1lIGluIG1zID0gIiArIGNhbDIuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSApOyAKKyAgICAgICAgaWYoICFjYWwxLmVxdWFscyggY2FsMiApICkgCisgICAgICAgICAgICBlcnJsbigiRmFpbDogTWlsbGlzZWNvbmRzIHJhbmRvbWl6ZWQiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5NTQwNygpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgYSA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LENhbGVuZGFyLk5PVkVNQkVSLCAxMyk7CisgICAgICAgIGludCBkb3cgPSBhLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGlmIChkb3cgIT0gQ2FsZW5kYXIuVEhVUlNEQVkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCBUSFVSU0RBWSBHb3QgIiArIGRvdyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTYyMzEoKSB7CisgICAgICAgIFRpbWVab25lIEdNVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpbnQgc2VjID0gMCwgbWluID0gMCwgaHIgPSAwLCBkYXkgPSAxLCBtb250aCA9IDEwLCB5ZWFyID0gMTk5NzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQ2FsZW5kYXIgY2FsMSA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihQU1QpOworICAgICAgICBjYWwxLnNldFRpbWUobmV3IERhdGUoODgwNjk4NjM5MDAwTCkpOworICAgICAgICBpbnQgcDsKKyAgICAgICAgbG9nbG4oIlBTVCAxIGlzOiAiICsgKHA9Y2FsMS5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSk7CisgICAgICAgIGNhbDEuc2V0VGltZVpvbmUoR01UKTsKKyAgICAgICAgLy8gSXNzdWUgMTogQ2hhbmdpbmcgdGhlIHRpbWV6b25lIGRvZXNuJ3QgY2hhbmdlIHRoZQorICAgICAgICAvLyAgICAgICAgICByZXByZXNlbnRlZCB0aW1lLgorICAgICAgICBpbnQgaDEsaDI7CisgICAgICAgIGxvZ2xuKCJHTVQgMSBpczogIiArIChoMT1jYWwxLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpKTsKKyAgICAgICAgY2FsMS5zZXRUaW1lKG5ldyBEYXRlKDg4MDY5ODYzOTAwMEwpKTsKKyAgICAgICAgbG9nbG4oIkdNVCAyIGlzOiAiICsgKGgyPWNhbDEuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSkpOworICAgICAgICAvLyBOb3RlOiBUaGlzIHRlc3QgaGFkIGEgYnVnIGluIGl0LiBJdCB3YW50ZWQgaDEhPWgyLCB3aGVuCisgICAgICAgIC8vIHdoYXQgd2FzIG1lYW50IHdhcyBoMSE9cC4gRml4ZWQgdGhpcyBjb25jdXJyZW50IHdpdGggZml4CisgICAgICAgIC8vIHRvIDQxNzc0ODQuCisgICAgICAgIGlmIChwID09IGgxIHx8IGgxICE9IGgyKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEhvdXIgc2FtZSBpbiBkaWZmZXJlbnQgem9uZXMiKTsKKworICAgICAgICBDYWxlbmRhciBjYWwyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKEdNVCk7CisgICAgICAgIENhbGVuZGFyIGNhbDMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoUFNUKTsKKyAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworICAgICAgICBjYWwzLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisKKyAgICAgICAgY2FsMi5zZXQoY2FsMS5nZXQoQ2FsZW5kYXIuWUVBUiksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5NSU5VVEUpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKworICAgICAgICBsb25nIHQxLHQyLHQzLHQ0OworICAgICAgICBsb2dsbigiUkdNVCAxIGlzOiAiICsgKHQxPWNhbDIuZ2V0VGltZSgpLmdldFRpbWUoKSkpOworICAgICAgICBjYWwzLnNldCh5ZWFyLCBtb250aCwgZGF5LCBociwgbWluLCBzZWMpOworICAgICAgICBsb2dsbigiUlBTVCAxIGlzOiAiICsgKHQyPWNhbDMuZ2V0VGltZSgpLmdldFRpbWUoKSkpOworICAgICAgICBjYWwzLnNldFRpbWVab25lKEdNVCk7CisgICAgICAgIGxvZ2xuKCJSR01UIDIgaXM6ICIgKyAodDM9Y2FsMy5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGNhbDMuc2V0KGNhbDEuZ2V0KENhbGVuZGFyLllFQVIpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5NT05USCksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuTUlOVVRFKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuU0VDT05EKSk7CisgICAgICAgIC8vIElzc3VlIDI6IENhbGVuZGFyIGNvbnRpbnVlcyB0byB1c2UgdGhlIHRpbWV6b25lIGluIGl0cworICAgICAgICAvLyAgICAgICAgICBjb25zdHJ1Y3RvciBmb3Igc2V0KCkgY29udmVyc2lvbnMsIHJlZ2FyZGxlc3MKKyAgICAgICAgLy8gICAgICAgICAgb2YgY2FsbHMgdG8gc2V0VGltZVpvbmUoKQorICAgICAgICBsb2dsbigiUkdNVCAzIGlzOiAiICsgKHQ0PWNhbDMuZ2V0VGltZSgpLmdldFRpbWUoKSkpOworICAgICAgICBpZiAodDEgPT0gdDIgfHwKKyAgICAgICAgICAgIHQxICE9IHQ0IHx8CisgICAgICAgICAgICB0MiAhPSB0MykKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYWxlbmRhciB6b25lIGJlaGF2aW9yIGZhdWx0eSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk2NTM5KCkgeworICAgICAgICBpbnRbXSB5ID0gezMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKworICAgICAgICBmb3IgKGludCB4PTA7eDwxMjt4KyspIHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IAorICAgICAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcseCx5W3hdKTsKKyAgICAgICAgICAgIGludCBtMSxtMjsKKyAgICAgICAgICAgIGxvZygobTE9Z2MuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSsiLyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmdldChDYWxlbmRhci5EQVRFKSsiLyIrZ2MuZ2V0KENhbGVuZGFyLllFQVIpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICsgMW1vID0gIik7CisKKyAgICAgICAgICAgIGdjLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICBsb2dsbigobTI9Z2MuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSsiLyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KENhbGVuZGFyLkRBVEUpKyIvIitnYy5nZXQoQ2FsZW5kYXIuWUVBUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgaW50IG0gPSAobTEgJSAxMikgKyAxOworICAgICAgICAgICAgaWYgKG0yICE9IG0pCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgIiArIG0gKyAiIEdvdCAiICsgbTIpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAwMzExKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7ICAgICAgICAgICAgIC8vIFNob3VsZCBiZSBKYW4gMQorICAgICAgICBsb2dsbihkLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gMSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEQVlfT0ZfWUVBUiBub3Qgc2V0Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDMyNzEoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsgCisgICAgICAgIGludCBudW1ZZWFycz00MCwgc3RhcnRZZWFyPTE5OTcsIG51bURheXM9MTU7IAorICAgICAgICBTdHJpbmcgb3V0cHV0LCB0ZXN0RGVzYzsgCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsgCisgICAgICAgIHRlc3RDYWwuY2xlYXIoKTsKKyAgICAgICAgc2RmLnNldENhbGVuZGFyKHRlc3RDYWwpOyAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiZCBNTU0geXl5eSIpOyAKKyAgICAgICAgYm9vbGVhbiBmYWlsID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGZpcnN0RGF5PTE7IGZpcnN0RGF5PD0yOyBmaXJzdERheSsrKSB7IAorICAgICAgICAgICAgZm9yIChpbnQgbWluRGF5cz0xOyBtaW5EYXlzPD03OyBtaW5EYXlzKyspIHsgCisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKG1pbkRheXMpOyAKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKGZpcnN0RGF5KTsgCisgICAgICAgICAgICAgICAgdGVzdERlc2MgPSAoIlRlc3QiICsgU3RyaW5nLnZhbHVlT2YoZmlyc3REYXkpICsgU3RyaW5nLnZhbHVlT2YobWluRGF5cykpOyAKKyAgICAgICAgICAgICAgICBsb2dsbih0ZXN0RGVzYyArICIgPT4gMXN0IGRheSBvZiB3ZWVrPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcudmFsdWVPZihmaXJzdERheSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBtaW5pbXVtIGRheXMgaW4gZmlyc3Qgd2Vlaz0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLnZhbHVlT2YobWluRGF5cykpOyAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPXN0YXJ0WWVhcjsgajw9c3RhcnRZZWFyK251bVllYXJzOyBqKyspIHsgCisgICAgICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0KGosMTEsMjUpOyAKKyAgICAgICAgICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8bnVtRGF5czsgaSsrKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5hZGQoQ2FsZW5kYXIuREFURSwxKTsgCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2FsV09ZOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBhY3RXT1kgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdFdPWSA8IDEgfHwgYWN0V09ZID4gNTMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlIGQgPSB0ZXN0Q2FsLmdldFRpbWUoKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsV09ZID0gU3RyaW5nLnZhbHVlT2YoYWN0V09ZKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gdGVzdERlc2MgKyAiIC0gIiArIHNkZi5mb3JtYXQoZCkgKyAiXHQiOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQgKyAiXHQiICsgY2FsV09ZOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihvdXRwdXQpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgfSAKKyAgICAgICAgfSAKKworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgMywgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNTIsCisgICAgICAgICAgICAgICAgMSwgIDEsICAxLCAgMSwgIDEsICAxLCAgMSwKKyAgICAgICAgICAgICAgICAyLCAgMiwgIDIsICAyLCAgMiwgIDIsICAyLAorICAgICAgICAgICAgNCwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNTIsCisgICAgICAgICAgICAgICA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywKKyAgICAgICAgICAgICAgICAxLCAgMSwgIDEsICAxLCAgMSwgIDEsICAxLAorICAgICAgICB9OworICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGZvciAoaW50IGo9MDsgajxEQVRBLmxlbmd0aDsgais9MjIpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlayA9ICIgKyBEQVRBW2pdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBXZWVrIHN0YXJ0cyBvbiBTdW5kYXkiKTsKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhEQVRBW2pdKTsKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0KDE5OTcsIENhbGVuZGFyLkRFQ0VNQkVSLCAyMSk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8MjE7ICsraSkgeworICAgICAgICAgICAgICAgIGludCB3b3kgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgICAgIGxvZyh0ZXN0Q2FsLmdldFRpbWUoKSArICIgIiArIHdveSk7CisgICAgICAgICAgICAgICAgaWYgKHdveSAhPSBEQVRBW2ogKyAxICsgaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCIgRVJST1IiKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vbG9nbG4oKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBOb3cgY29tcHV0ZSB0aGUgdGltZSBmcm9tIHRoZSBmaWVsZHMsIGFuZCBtYWtlIHN1cmUgd2UKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHNhbWUgYW5zd2VyIGJhY2suIFRoaXMgaXMgYSByb3VuZC10cmlwIHRlc3QuCisgICAgICAgICAgICAgICAgRGF0ZSBzYXZlID0gdGVzdENhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgdGVzdENhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0KENhbGVuZGFyLllFQVIsIERBVEFbaisxK2ldIDwgMjUgPyAxOTk4IDogMTk5Nyk7CisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCBEQVRBW2orMStpXSk7CisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIChpJTcpICsgQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RDYWwuZ2V0VGltZSgpLmVxdWFscyhzYXZlKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiICBQYXJzZSBmYWlsZWQ6ICIgKyB0ZXN0Q2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGZhaWw9IHRydWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lKHNhdmUpOworICAgICAgICAgICAgICAgIHRlc3RDYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBEYXRlIGRbXSA9IG5ldyBEYXRlWzhdOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkRFQ0VNQkVSLCAyOCk7CisgICAgICAgIGRbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMTApOworICAgICAgICBkWzFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkRFQ0VNQkVSLCAzMSk7CisgICAgICAgIGRbMl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OSwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGRbM10gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgLy8gVGVzdCBmaWVsZCBkaXNhbWJpZ3VhdGlvbiB3aXRoIGEgZmV3IHNwZWNpYWwgaGFyZC1jb2RlZCBjYXNlcy4KKyAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgZmFpbCBpZiB0aGUgYWJvdmUgY2FzZXMgYXJlbid0IGZhaWxpbmcuCisgICAgICAgIE9iamVjdFtdIERJU0FNID0geworICAgICAgICAgICAgbmV3IEludGVnZXIoMTk5OCksIG5ldyBJbnRlZ2VyKDEpLCBuZXcgSW50ZWdlcihDYWxlbmRhci5TVU5EQVkpLAorICAgICAgICAgICAgICAgIGRbMF0sCisgICAgICAgICAgICBuZXcgSW50ZWdlcigxOTk4KSwgbmV3IEludGVnZXIoMiksIG5ldyBJbnRlZ2VyKENhbGVuZGFyLlNBVFVSREFZKSwKKyAgICAgICAgICAgICAgICBkWzFdLAorICAgICAgICAgICAgbmV3IEludGVnZXIoMTk5OCksIG5ldyBJbnRlZ2VyKDUzKSwgbmV3IEludGVnZXIoQ2FsZW5kYXIuVEhVUlNEQVkpLAorICAgICAgICAgICAgICAgIGRbMl0sCisgICAgICAgICAgICBuZXcgSW50ZWdlcigxOTk4KSwgbmV3IEludGVnZXIoNTMpLCBuZXcgSW50ZWdlcihDYWxlbmRhci5GUklEQVkpLAorICAgICAgICAgICAgICAgIGRbM10sCisgICAgICAgIH07CisgICAgICAgIHRlc3RDYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygzKTsKKyAgICAgICAgdGVzdENhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5TVU5EQVkpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8RElTQU0ubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBpbnQgeSA9ICgoSW50ZWdlcilESVNBTVtpXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIGludCB3b3kgPSAoKEludGVnZXIpRElTQU1baSsxXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIGludCBkb3cgPSAoKEludGVnZXIpRElTQU1baSsyXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIERhdGUgZXhwID0gKERhdGUpRElTQU1baSszXTsKKyAgICAgICAgICAgIHRlc3RDYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0KENhbGVuZGFyLllFQVIsIHkpOworICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCB3b3kpOworICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGRvdyk7CisgICAgICAgICAgICBsb2coeSArICItVyIgKyB3b3kgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURPVyIgKyBkb3cgKyAiIGV4cGVjdDoiICsgZXhwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBnb3Q6IiArIHRlc3RDYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIGlmICghdGVzdENhbC5nZXRUaW1lKCkuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBsb2coIiAgRkFJTCIpOworICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9sb2dsbigpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IHRyeSBhZGRpbmcgYW5kIHJvbGxpbmcKKyAgICAgICAgT2JqZWN0IEFERCA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgT2JqZWN0IFJPTEwgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSk7CisgICAgICAgIGRbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OSwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGRbMV0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuREVDRU1CRVIsIDI4KTsKKyAgICAgICAgZFsyXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCA0KTsKKyAgICAgICAgZFszXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5ERUNFTUJFUiwgMjcpOworICAgICAgICBkWzRdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkRFQ0VNQkVSLCAyOCk7CisgICAgICAgIGRbNV0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OSwgQ2FsZW5kYXIuSkFOVUFSWSwgMik7CisgICAgICAgIGRbNl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMyk7CisgICAgICAgIGRbN10gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgCisgICAgICAgIE9iamVjdFtdIEFERFJPTEwgPSB7CisgICAgICAgICAgICBBREQsIG5ldyBJbnRlZ2VyKDEpLCBkWzBdLCBkWzFdLAorICAgICAgICAgICAgQURELCBuZXcgSW50ZWdlcigxKSwgZFsyXSwgZFszXSwKKyAgICAgICAgICAgIFJPTEwsIG5ldyBJbnRlZ2VyKDEpLCBkWzRdLCBkWzVdLAorICAgICAgICAgICAgUk9MTCwgbmV3IEludGVnZXIoMSksIGRbNl0sIGRbN10sCisgICAgICAgIH07CisgICAgICAgIHRlc3RDYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygzKTsKKyAgICAgICAgdGVzdENhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5TVU5EQVkpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8QUREUk9MTC5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIGludCBhbW91bnQgPSAoKEludGVnZXIpQUREUk9MTFtpKzFdKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgRGF0ZSBiZWZvcmUgPSAoRGF0ZSlBRERST0xMW2krMl07CisgICAgICAgICAgICBEYXRlIGFmdGVyID0gKERhdGUpQUREUk9MTFtpKzNdOworCisgICAgICAgICAgICB0ZXN0Q2FsLnNldFRpbWUoYmVmb3JlKTsKKyAgICAgICAgICAgIGlmIChBRERST0xMW2ldID09IEFERCkgdGVzdENhbC5hZGQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCBhbW91bnQpOworICAgICAgICAgICAgZWxzZSB0ZXN0Q2FsLnJvbGwoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCBhbW91bnQpOworICAgICAgICAgICAgbG9nKChBRERST0xMW2ldPT1BREQ/ImFkZChXT1ksIjoicm9sbChXT1ksIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgKyAiKSAiICsgYmVmb3JlICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgaWYgKCFhZnRlci5lcXVhbHModGVzdENhbC5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgZXhwOiIgKyBhZnRlciArICIgIEZBSUwiKTsKKyAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgbG9nbG4oIiBvayIpOworCisgICAgICAgICAgICB0ZXN0Q2FsLnNldFRpbWUoYWZ0ZXIpOworICAgICAgICAgICAgaWYgKEFERFJPTExbaV0gPT0gQUREKSB0ZXN0Q2FsLmFkZChDYWxlbmRhci5XRUVLX09GX1lFQVIsIC1hbW91bnQpOworICAgICAgICAgICAgZWxzZSB0ZXN0Q2FsLnJvbGwoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAtYW1vdW50KTsKKyAgICAgICAgICAgIGxvZygoQUREUk9MTFtpXT09QUREPyJhZGQoV09ZLCI6InJvbGwoV09ZLCIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC1hbW91bnQpICsgIikgIiArIGFmdGVyICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgaWYgKCFiZWZvcmUuZXF1YWxzKHRlc3RDYWwuZ2V0VGltZSgpKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIGV4cDoiICsgYmVmb3JlICsgIiAgRkFJTCIpOworICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBsb2dsbigiIG9rIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmFpbCkgZXJybG4oIkZhaWw6IFdlZWsgb2YgeWVhciBtaXNiZWhhdmluZyIpOworICAgIH0gCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjEzNigpIHsKKyAgICAgICAgTG9jYWxlIHNhdmVMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IHsgIkNhbGVuZGFyIiwgIkRhdGVGb3JtYXQiLCAiTnVtYmVyRm9ybWF0IiB9OworICAgICAgICB0cnkgeworICAgICAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IHsgTG9jYWxlLkNISU5FU0UsIExvY2FsZS5DSElOQSB9OworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICBpbnRbXSBuID0geworICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCkubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKS5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCkubGVuZ3RoCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bi5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBpZiAobltqXSA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBuYW1lc1tqXSArICIgaGFzIG5vIGxvY2FsZXMgZm9yICIgKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlTG9jYWxlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA4NzY0KCkgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLk1BUkNILCAxNSwgMTIsIDAwLCAwMCk7CisgICAgICAgIERhdGUgZDAwID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLk1BUkNILCAxNSwgMTIsIDAwLCA1Nik7CisgICAgICAgIERhdGUgZDAxID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLk1BUkNILCAxNSwgMTIsIDM0LCAwMCk7CisgICAgICAgIERhdGUgZDEwID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLk1BUkNILCAxNSwgMTIsIDM0LCA1Nik7CisgICAgICAgIERhdGUgZDExID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDE1LCAxMiwgMzQsIDU2KTsKKyAgICAgICAgRGF0ZSBkTSAgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTcwLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgRGF0ZSBlcG9jaCA9IHRlbXBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7IAorICAgICAgICBjYWwuc2V0VGltZShkMTEpOworCisgICAgICAgIGNhbC5jbGVhciggQ2FsZW5kYXIuTUlOVVRFICk7IAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhkMDEpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGQxMSArICIgY2xlYXIoTUlOVVRFKSA9PiBleHBlY3QgIiArCisgICAgICAgICAgICAgICAgICBkMDEgKyAiLCBnb3QgIiArIGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLnNldCggQ2FsZW5kYXIuU0VDT05ELCAwICk7IAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhkMDApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IHNldChTRUNPTkQsIDApIGJyb2tlbiIpOworCisgICAgICAgIGNhbC5zZXRUaW1lKGQxMSk7CisgICAgICAgIGNhbC5zZXQoIENhbGVuZGFyLlNFQ09ORCwgMCApOyAKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsgCisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZDEwKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBzZXQoU0VDT05ELCAwKSBicm9rZW4gIzIiKTsKKworICAgICAgICBjYWwuY2xlYXIoIENhbGVuZGFyLk1JTlVURSApOyAKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsgCisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZDAwKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBjbGVhcihNSU5VVEUpIGJyb2tlbiAjMiIpOworCisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGVwb2NoKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBhZnRlciBjbGVhcigpIGV4cGVjdCAiICsgZXBvY2ggKyAiLCBnb3QgIiArIGNhbC5nZXRUaW1lKCkpOworCisgICAgICAgIGNhbC5zZXRUaW1lKGQxMSk7CisgICAgICAgIGNhbC5jbGVhciggQ2FsZW5kYXIuTU9OVEggKTsgCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7IAorICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGRNKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBkMTEgKyAiIGNsZWFyKE1PTlRIKSA9PiBleHBlY3QgIiArCisgICAgICAgICAgICAgICAgICBkTSArICIsIGdvdCAiICsgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDU3OCgpIHsKKyAgICAgICAgaW50IE9ORV9IT1VSID0gNjAqNjAqMTAwMDsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKSk7CisgICAgICAgIAorICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkFQUklMLCA1LCAxLCAwKTsKKyAgICAgICAgbG9uZyBvbnNldCA9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSArIE9ORV9IT1VSOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5PQ1RPQkVSLCAyNSwgMCwgMCk7CisgICAgICAgIGxvbmcgY2Vhc2UgPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgKyAyKk9ORV9IT1VSOworCisgICAgICAgIGJvb2xlYW4gZmFpbCA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgZmluYWwgaW50IEFERCA9IDE7CisgICAgICAgIGZpbmFsIGludCBST0xMID0gMjsKKworICAgICAgICBsb25nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIFN0YXJ0IEFjdGlvbiBBbXQgRXhwZWN0ZWRfY2hhbmdlCisgICAgICAgICAgICBvbnNldCAtIE9ORV9IT1VSLCAgIEFERCwgICAgICAxLCAgICAgT05FX0hPVVIsCisgICAgICAgICAgICBvbnNldCwgICAgICAgICAgICAgIEFERCwgICAgIC0xLCAgICAtT05FX0hPVVIsCisgICAgICAgICAgICBvbnNldCAtIE9ORV9IT1VSLCAgIFJPTEwsICAgICAxLCAgICAgT05FX0hPVVIsCisgICAgICAgICAgICBvbnNldCwgICAgICAgICAgICAgIFJPTEwsICAgIC0xLCAgICAtT05FX0hPVVIsCisgICAgICAgICAgICBjZWFzZSAtIE9ORV9IT1VSLCAgIEFERCwgICAgICAxLCAgICAgT05FX0hPVVIsCisgICAgICAgICAgICBjZWFzZSwgICAgICAgICAgICAgIEFERCwgICAgIC0xLCAgICAtT05FX0hPVVIsCisgICAgICAgICAgICBjZWFzZSAtIE9ORV9IT1VSLCAgIFJPTEwsICAgICAxLCAgICAgT05FX0hPVVIsCisgICAgICAgICAgICBjZWFzZSwgICAgICAgICAgICAgIFJPTEwsICAgIC0xLCAgICAtT05FX0hPVVIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBuZXcgRGF0ZShEQVRBW2ldKTsKKyAgICAgICAgICAgIGludCBhbXQgPSAoaW50KSBEQVRBW2krMl07CisgICAgICAgICAgICBsb25nIGV4cGVjdGVkQ2hhbmdlID0gREFUQVtpKzNdOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2coZGF0ZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUpOworCisgICAgICAgICAgICBzd2l0Y2ggKChpbnQpIERBVEFbaSsxXSkgeworICAgICAgICAgICAgY2FzZSBBREQ6CisgICAgICAgICAgICAgICAgbG9nKCIgYWRkIChIT1VSLCIgKyAoYW10PDA/IiI6IisiKSthbXQgKyAiKT0gIik7CisgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5IT1VSLCBhbXQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBST0xMOgorICAgICAgICAgICAgICAgIGxvZygiIHJvbGwoSE9VUiwiICsgKGFtdDwwPyIiOiIrIikrYW10ICsgIik9ICIpOworICAgICAgICAgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIGFtdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZyhjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICBsb25nIGNoYW5nZSA9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lKCk7CisgICAgICAgICAgICBpZiAoY2hhbmdlICE9IGV4cGVjdGVkQ2hhbmdlKSB7CisgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBGQUlMIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGxvZ2xuKCIgT0siKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWlsKSBlcnJsbigiRmFpbDogcm9sbC9hZGQgbWlzYmVoYXZlcyBhcm91bmQgRFNUIG9uc2V0L2NlYXNlIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIG1heGltdW0gZm9yIEhPVVIgZmllbGQgaXMgMTEsIG5vdCAxMi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExODM4NCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgaWYgKGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkhPVVIpICE9IDExIHx8CisgICAgICAgICAgICBjYWwuZ2V0TGVhc3RNYXhpbXVtKENhbGVuZGFyLkhPVVIpICE9IDExIHx8CisgICAgICAgICAgICBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5IT1VSKSAhPSAxMSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBtYXhpbXVtIG9mIEhPVVIgZmllbGQgc2hvdWxkIGJlIDExIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaXNMZWFwWWVhciBmb3IgQkMgeWVhcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMjU4ODEoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IChHcmVnb3JpYW5DYWxlbmRhcikgQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NTSBkLCB5eXl5IEciKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGZvciAoaW50IHk9LTIwOyB5PD0xMDsgKyt5KSB7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVSQSwgeSA8IDEgPyBHcmVnb3JpYW5DYWxlbmRhci5CQyA6IEdyZWdvcmlhbkNhbGVuZGFyLkFEKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgeSA8IDEgPyAxIC0geSA6IHkpOworICAgICAgICAgICAgbG9nbG4oeSArICIgPSAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmlzTGVhcFllYXIoeSkpOworICAgICAgICAgICAgaWYgKGNhbC5pc0xlYXBZZWFyKHkpICE9ICgoeSs0MCklNCA9PSAwKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiTGVhcCB5ZWFycyBicm9rZW4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEkgYW0gZGlzYWJsaW5nIHRoaXMgdGVzdCAtLSBpdCBpcyBjdXJyZW50bHkgZmFpbGluZyBiZWNhdXNlIG9mIGEgYnVnCisgICAgLy8gaW4gU3VuJ3MgbGF0ZXN0IGNoYW5nZSB0byBTVFouZ2V0T2Zmc2V0KCkuIEkgaGF2ZSBmaWxlZCBhIFN1biBidWcKKyAgICAvLyBhZ2FpbnN0IHRoaXMgcHJvYmxlbS4KKworICAgIC8vIFJlLWVuYWJsZWQgYWZ0ZXIgJ3BvcnRpbmcnIFRaIGFuZCBTVFogZnJvbSBqYXZhLnV0aWwgdG8gY29tLmlibS5pY3UudXRpbC4KKyAgICAvKioKKyAgICAgKiBQcm92ZSB0aGF0IEdyZWdvcmlhbkNhbGVuZGFyIGlzIHByb2xlcHRpYyAoaXQgdXNlZCB0byBjdXQgb2ZmIGF0IDQ1IEJDLAorICAgICAqIGFuZCBub3QgaGF2ZSBsZWFwIHllYXJzIGJlZm9yZSB0aGVuKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNTg5MigpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gKEdyZWdvcmlhbkNhbGVuZGFyKSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAvL0RhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTU0gZCwgeXl5eSBHIik7CisgICAgICAgIC8vZm10ID0gbnVsbDsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVJBLCBHcmVnb3JpYW5DYWxlbmRhci5CQyk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgODEpOyAvLyA4MSBCQyBpcyBhIGxlYXAgeWVhciAocHJvbGVwdGljYWxseSkKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuRkVCUlVBUlkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBVEUsIDI4KTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgIT0gMjkgfHwKKyAgICAgICAgICAgICFjYWwuaXNMZWFwWWVhcigtODApKSAvLyAtODAgPT0gODEgQkMKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBub3QgcHJvbGVwdGljIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsZW5kYXIgYW5kIEdyZWdvcmlhbkNhbGVuZGFyIGhhc2hDb2RlKCkgbWV0aG9kcyBuZWVkIGltcHJvdmVtZW50LgorICAgICAqIENhbGVuZGFyIG5lZWRzIGEgZ29vZCBpbXBsZW1lbnRhdGlvbiB0aGF0IHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLCBhbmQKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhciBzaG91bGQgdXNlIHRoYXQgaW1wbGVtZW50YXRpb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzYzOTkoKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIE5vdGU6IFRoaXMgdGVzdCBpcyBhY3R1YWxseSBtb3JlIHN0cmljdCB0aGFuIGl0IGhhcyB0byBiZS4KKyAgICAgICAgICogVGVjaG5pY2FsbHksIHRoZXJlIGlzIG5vIHJlcXVpcmVtZW50IHRoYXQgdW5lcXVhbCBvYmplY3RzIGhhdmUKKyAgICAgICAgICogdW5lcXVhbCBoYXNoZXMuIFdlIG9ubHkgcmVxdWlyZSBlcXVhbCBvYmplY3RzIHRvIGhhdmUgZXF1YWwgaGFzaGVzLgorICAgICAgICAgKiBJdCBpcyBkZXNpcmFibGUgZm9yIHVuZXF1YWwgb2JqZWN0cyB0byBoYXZlIGRpc3RyaWJ1dGVkIGhhc2hlcywgYnV0CisgICAgICAgICAqIHRoZXJlIGlzIG5vIGhhcmQgcmVxdWlyZW1lbnQgaGVyZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEluIHRoaXMgdGVzdCB3ZSBtYWtlIGFzc3VtcHRpb25zIGFib3V0IGNlcnRhaW4gYXR0cmlidXRlcyBvZiBjYWxlbmRhcgorICAgICAgICAgKiBvYmplY3RzIGdldHRpbmcgcmVwcmVzZW50ZWQgaW4gdGhlIGhhc2gsIHdoaWNoIG5lZWQgbm90IGFsd2F5cyBiZSB0aGUKKyAgICAgICAgICogY2FzZSAoYWx0aG91Z2ggaXQgZG9lcyB3b3JrIGN1cnJlbnRseSB3aXRoIHRoZSBnaXZlbiB0ZXN0KS4KKyAgICAgICAgICovCisgICAgICAgIENhbGVuZGFyIGEgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBDYWxlbmRhciBiID0gKENhbGVuZGFyKWEuY2xvbmUoKTsKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSAhPSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgdW5lcXVhbCBmb3IgY2xvbmVkIG9iamVjdHMiKTsKKyAgICAgICAgfQorICAgICAgICBUaW1lWm9uZSBhdHoxID0gYS5nZXRUaW1lWm9uZSgpOworICAgICAgICBUaW1lWm9uZSBhdHoyID0gKFRpbWVab25lKWF0ejEuY2xvbmUoKTsKKyAgICAgICAgaWYoIWF0ejEuZXF1YWxzKGF0ejIpKXsKKyAgICAgICAgCWVycmxuKCJUaGUgY2xvbmUgdGltZXpvbmVzIGFyZSBub3QgZXF1YWwiKTsKKyAgICAgICAgfQorICAgICAgICBpZihhdHoxLmhhc2hDb2RlKCkhPWF0ejIuaGFzaENvZGUoKSl7CisgICAgICAgIAllcnJsbigiVGltZVpvbmUgaGFzaCBjb2RlIHVuZXF1YWwgZm9yIGNsb25lZCBvYmplY3RzIik7CisgICAgICAgIH0KKyAgICAgICAgYi5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDcgLSBhLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSk7CisgICAgICAgIGlmIChhLmhhc2hDb2RlKCkgPT0gYi5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiQ2FsZW5kYXIgaGFzaCBjb2RlIGlnbm9yZXMgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWsiKTsKKyAgICAgICAgfQorICAgICAgICBiLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoYS5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpOworCisgICAgICAgIGIuc2V0Rmlyc3REYXlPZldlZWsoKGEuZ2V0Rmlyc3REYXlPZldlZWsoKSAlIDcpICsgMSk7IC8vIE5leHQgZGF5CisgICAgICAgIGlmIChhLmhhc2hDb2RlKCkgPT0gYi5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiQ2FsZW5kYXIgaGFzaCBjb2RlIGlnbm9yZXMgZmlyc3QgZGF5IG9mIHdlZWsiKTsKKyAgICAgICAgfQorICAgICAgICBiLnNldEZpcnN0RGF5T2ZXZWVrKGEuZ2V0Rmlyc3REYXlPZldlZWsoKSk7CisKKyAgICAgICAgYi5zZXRMZW5pZW50KCFhLmlzTGVuaWVudCgpKTsKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyBsZW5pZW50IHNldHRpbmciKTsKKyAgICAgICAgfQorICAgICAgICBiLnNldExlbmllbnQoYS5pc0xlbmllbnQoKSk7CisgICAgICAgIAorICAgICAgICAvLyBBc3N1bWUgZ2V0VGltZVpvbmUoKSByZXR1cm5zIGEgcmVmZXJlbmNlLCBub3QgYSBjbG9uZQorICAgICAgICAvLyBvZiBhIHJlZmVyZW5jZSAtLSB0aGlzIGlzIHRydWUgYXMgb2YgdGhpcyB3cml0aW5nCisgICAgICAgIFRpbWVab25lIGF0eiA9IGEuZ2V0VGltZVpvbmUoKTsKKyAgICAgICAgVGltZVpvbmUgYnR6ID0gYi5nZXRUaW1lWm9uZSgpOworCisgICAgICAgIGJ0ei5zZXRSYXdPZmZzZXQoYXR6LmdldFJhd09mZnNldCgpICsgNjAqNjAqMTAwMCk7CisgICAgICAgIGlmKGF0ei5oYXNoQ29kZSgpPT0gYnR6Lmhhc2hDb2RlKCkpeworICAgICAgICAJZXJybG4oYXR6Lmhhc2hDb2RlKCkrIj09IitidHouaGFzaENvZGUoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGEuZ2V0VGltZVpvbmUoKSE9IGIuZ2V0VGltZVpvbmUoKSAmJiBhLmhhc2hDb2RlKCkgPT0gYi5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiQ2FsZW5kYXIgaGFzaCBjb2RlIGlnbm9yZXMgem9uZSIpOworICAgICAgICB9CisgICAgICAgIGIuZ2V0VGltZVpvbmUoKS5zZXRSYXdPZmZzZXQoYS5nZXRUaW1lWm9uZSgpLmdldFJhd09mZnNldCgpKTsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGQgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpYy5jbG9uZSgpOworICAgICAgICBpZiAoYy5oYXNoQ29kZSgpICE9IGQuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkdyZWdvcmlhbkNhbGVuZGFyIGhhc2ggY29kZSB1bmVxdWFsIGZvciBjbG9uZXMgb2JqZWN0cyIpOworICAgICAgICB9CisgICAgICAgIERhdGUgY3V0b3ZlciA9IGMuZ2V0R3JlZ29yaWFuQ2hhbmdlKCk7CisgICAgICAgIGQuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKGN1dG92ZXIuZ2V0VGltZSgpICsgMjQqNjAqNjAqMTAwMCkpOworICAgICAgICBpZiAoYy5oYXNoQ29kZSgpID09IGQuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkdyZWdvcmlhbkNhbGVuZGFyIGhhc2ggY29kZSBpZ25vcmVzIGN1dG92ZXIiKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogR3JlZ29yaWFuQ2FsZW5kYXIuZXF1YWxzKCkgaWdub3JlcyBjdXRvdmVyIGRhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0MTY2NSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbDIgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgIERhdGUgY3V0ID0gY2FsLmdldEdyZWdvcmlhbkNoYW5nZSgpOworICAgICAgICBEYXRlIGN1dDIgPSBuZXcgRGF0ZShjdXQuZ2V0VGltZSgpICsgMTAwKjI0KjYwKjYwKjEwMDBMKTsgLy8gMTAwIGRheXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhdGVyCisgICAgICAgIGlmICghY2FsLmVxdWFscyhjYWwyKSkgeworICAgICAgICAgICAgZXJybG4oIkNsb25lZCBHcmVnb3JpYW5DYWxlbmRhcnMgbm90IGVxdWFsIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsMi5zZXRHcmVnb3JpYW5DaGFuZ2UoY3V0Mik7CisgICAgICAgIGlmIChjYWwuZXF1YWxzKGNhbDIpKSB7CisgICAgICAgICAgICBlcnJsbigiR3JlZ29yaWFuQ2FsZW5kYXIuZXF1YWxzKCkgaWdub3JlcyBjdXRvdmVyIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQnVnIHN0YXRlcyB0aGF0IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gYnkKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhci5yb2xsKCkgd2hlbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gc2hvdWxkIGJlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQyOTMzKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY2FsZW5kYXIucm9sbCgtMSwgdHJ1ZSk7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQsIG5vIGV4Y2VwdGlvbiB0cm93biIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gT0s6IERvIG5vdGhpbmcKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJUZXN0IHBhc3NlZCIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQuIFVuZXhwZWN0ZWQgZXhjZXB0aW9uIGlzIHRocm93bjogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfSAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhciBoYW5kbGluZyBvZiBEYXRlcyBMb25nLk1JTl9WQUxVRSBhbmQgTG9uZy5NQVhfVkFMVUUgaXMKKyAgICAgKiBjb25mdXNpbmc7IHVubGVzcyB0aGUgdGltZSB6b25lIGhhcyBhIHJhdyBvZmZzZXQgb2YgemVybywgb25lIG9yIHRoZQorICAgICAqIG90aGVyIG9mIHRoZXNlIHdpbGwgd3JhcC4gV2UndmUgbW9kaWZpZWQgdGhlIHRlc3QgZ2l2ZW4gaW4gdGhlIGJ1ZyByZXBvcnQKKyAgICAgKiB0byB0aGVyZWZvcmUgb25seSBjaGVjayB0aGUgYmVoYXZpb3Igb2YgYSBjYWxlbmRhciB3aXRoIGEgemVybyByYXcgb2Zmc2V0CisgICAgICogem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NTE1OCgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKworICAgICAgICBjYWxlbmRhci5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworCisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsKKyAgICAgICAgaW50IHllYXIxID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgZXJhMSA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpOworICAgICAgICAKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICBpbnQgeWVhcjIgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBlcmEyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIAorICAgICAgICBpZiAoeWVhcjEgPT0geWVhcjIgJiYgZXJhMSA9PSBlcmEyKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogTG9uZy5NSU5fVkFMVUUgb3IgTG9uZy5NQVhfVkFMVUUgd3JhcHBpbmcgYXJvdW5kIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIHZhbHVlIGZvciBZRUFSIGZpZWxkIHdyb25nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ1OTgzKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWxlbmRhci5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworICAgICAgICBEYXRlW10gREFURVMgPSB7IG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSwgbmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRFUy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShEQVRFU1tpXSk7CisgICAgICAgICAgICBpbnQgeWVhciA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGludCBtYXhZZWFyID0gY2FsZW5kYXIuZ2V0TWF4aW11bShDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGlmICh5ZWFyID4gbWF4WWVhcikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgZm9yICIrREFURVNbaV0uZ2V0VGltZSgpKyIgbXM6IHllYXI9IiArCisgICAgICAgICAgICAgICAgICAgICAgeWVhciArICIsIG1heFllYXI9IiArIG1heFllYXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIGJ1ZyBpbiB0aGUgdmFsaWRhdGlvbiBjb2RlIG9mIEdyZWdvcmlhbkNhbGVuZGFyLiBBcyByZXBvcnRlZCwKKyAgICAgKiB0aGUgYnVnIHNlZW1zIHdvcnNlIHRoYW4gaXQgcmVhbGx5IGlzLCBkdWUgdG8gYSBidWcgaW4gdGhlIHdheSB0aGUgYnVnCisgICAgICogcmVwb3J0IHRlc3Qgd2FzIHdyaXR0ZW4uIEluIHJlYWxpdHkgdGhlIGJ1ZyBpcyByZXN0cmljdGVkIHRvIHRoZQorICAgICAqIERBWV9PRl9ZRUFSIGZpZWxkLiAtIGxpdSA2LzI5Lzk4CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDcyNjkoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbGVuZGFyLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTYsIENhbGVuZGFyLkpBTlVBUlksIDMpOyAvLyBBcmJpdHJhcnkgZGF0ZQorICAgICAgICBEYXRlIGRhdGUgPSB0ZW1wY2FsLmdldFRpbWUoKTsgCisgICAgICAgIGZvciAoaW50IGZpZWxkID0gMDsgZmllbGQgPCBjYWxlbmRhci5nZXRGaWVsZENvdW50KCk7IGZpZWxkKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICAvLyBOb3RlOiBJbiB0aGUgYnVnIHJlcG9ydCwgZ2V0QWN0dWFsTWF4aW11bSgpIHdhcyBjYWxsZWQgaW5zdGVhZAorICAgICAgICAgICAgLy8gb2YgZ2V0TWF4aW11bSgpIC0tIHRoaXMgd2FzIGFuIGVycm9yLiBUaGUgdmFsaWRhdGlvbiBjb2RlIGRvZXNuJ3QKKyAgICAgICAgICAgIC8vIHVzZSBnZXRBY3R1YWxNYXhpbXVtKCksIHNpbmNlIHRoYXQncyB0b28gY29zdGx5LgorICAgICAgICAgICAgaW50IG1heCA9IGNhbGVuZGFyLmdldE1heGltdW0oZmllbGQpOworICAgICAgICAgICAgaW50IHZhbHVlID0gbWF4KzE7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoZmllbGQsIHZhbHVlKTsgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldFRpbWUoKTsgLy8gRm9yY2UgdGltZSBjb21wdXRhdGlvbgorICAgICAgICAgICAgICAgIC8vIFdlIGV4cGVjdCBhbiBleGNlcHRpb24gdG8gYmUgdGhyb3duLiBJZiB3ZSBmYWxsIHRocm91Z2gKKyAgICAgICAgICAgICAgICAvLyB0byB0aGUgbmV4dCBsaW5lLCB0aGVuIHdlIGhhdmUgYSBidWcuCisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIHdpdGggZmllbGQgIiArIEZJRUxEX05BTUVbZmllbGRdICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBkYXRlIGJlZm9yZTogIiArIGRhdGUgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRhdGUgYWZ0ZXI6ICIgKyBjYWxlbmRhci5nZXRUaW1lKCkgKworICAgICAgICAgICAgICAgICAgICAgICIsIHZhbHVlOiAiICsgdmFsdWUgKyAiIChtYXggPSAiICsgbWF4ICsiKSIpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnRlZCBidWcgaXMgdGhhdCBhIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggYSBjdXRvdmVyIG9mCisgICAgICogRGF0ZShMb25nLk1BWF9WQUxVRSkgZG9lc24ndCBiZWhhdmUgYXMgYSBwdXJlIEp1bGlhbiBjYWxlbmRhci4gQ0FOTk9UCisgICAgICogUkVQUk9EVUNFIFRISVMgQlVHCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDk2NzcoKSB7CisgICAgICAgIFRpbWVab25lW10gem9uZXMgPSB7IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRUFUIikgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHpvbmVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lc1tpXSk7CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBleHRyZW1lIHZhbHVlcyBkb24ndCB3cmFwIGFyb3VuZAorICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkpOworICAgICAgICAgICAgaWYgKGNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpICE9IEdyZWdvcmlhbkNhbGVuZGFyLkJDKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IExvbmcuTUlOX1ZBTFVFIG1zIGhhcyBhbiBBRCB5ZWFyIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSkgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogTG9uZy5NQVhfVkFMVUUgbXMgaGFzIGEgQkMgeWVhciIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYWxlbmRhci5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpKTsKKyAgICAgICAgICAgIC8vIHRvIG9idGFpbiBhIHB1cmUgSnVsaWFuIGNhbGVuZGFyCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gaXMxMDBMZWFwID0gY2FsZW5kYXIuaXNMZWFwWWVhcigxMDApOworICAgICAgICAgICAgaWYgKCFpczEwMExlYXApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidGVzdCBmYWlsZWQgd2l0aCB6b25lICIgKyB6b25lc1tpXS5nZXRJRCgpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiIGN1dG92ZXIgZGF0ZSBpcyBDYWxlbmRhci5NQVhfREFURSIpOworICAgICAgICAgICAgICAgIGVycmxuKCIgaXNMZWFwWWVhcigxMDApIHJldHVybnM6ICIgKyBpczEwMExlYXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsZW5kYXIgYW5kIERhdGUgSE9VUiBicm9rZW4uIElmIEhPVVIgaXMgb3V0LW9mLXJhbmdlLCBDYWxlbmRhciBhbmQgRGF0ZQorICAgICAqIGNsYXNzZXMgd2lsbCBtaXNiZWhhdmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjI1ODcoKSB7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHR6KTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHR6KTsKKyAgICAgICAgRGF0ZSBkOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDU7ICsraSkgeworICAgICAgICAgICAgaWYgKGk+MCkgbG9nbG4oIi0tLSIpOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuQVBSSUwsIDUsIGksIDApOworICAgICAgICAgICAgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBTdHJpbmcgczAgPSBkLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsb2dsbigiMCAiICsgaSArICI6ICIgKyBzMCk7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNCwgaSsyNCwgMCk7CisgICAgICAgICAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBzUGx1cyA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIrICIgKyBpICsgIjogIiArIHNQbHVzKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkFQUklMLCA2LCBpLTI0LCAwKTsKKyAgICAgICAgICAgIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgU3RyaW5nIHNNaW51cyA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZ2xuKCItICIgKyBpICsgIjogIiArIHNNaW51cyk7CisKKyAgICAgICAgICAgIGlmICghczAuZXF1YWxzKHNQbHVzKSB8fCAhczAuZXF1YWxzKHNNaW51cykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogQWxsIHRocmVlIGxpbmVzIG11c3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZGluZyAxMiBtb250aHMgYmVoYXZlcyBkaWZmZXJlbnRseSBmcm9tIGFkZGluZyAxIHllYXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NTM0MygpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBzdGFydCA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oImluaXQgZGF0ZTogIiArIHN0YXJ0KTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLk1PTlRILCAxMik7IAorICAgICAgICBEYXRlIGRhdGUxID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiYWZ0ZXIgYWRkaW5nIDEyIG1vbnRoczogIiArIGRhdGUxKTsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShzdGFydCk7CisgICAgICAgIGNhbGVuZGFyLmFkZChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgRGF0ZSBkYXRlMiA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oImFmdGVyIGFkZGluZyBvbmUgeWVhciA6ICIgKyBkYXRlMik7CisgICAgICAgIGlmIChkYXRlMS5lcXVhbHMoZGF0ZTIpKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdCBwYXNzZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR3JlZ29yaWFuQ2FsZW5kYXIuZ2V0QWN0dWFsTWF4aW11bSgpIGRvZXMgbm90IGFjY291bnQgZm9yIGZpcnN0IGRheSBvZgorICAgICAqIHdlZWsuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjYxMDkoKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFRlc3QgbW9udGg6CisgICAgICAgICAqIAorICAgICAgICAgKiBNYXJjaCAxOTk4IFN1IE1vIFR1IFdlIFRoIEZyIFNhIDEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDEyIDEzIDE0IDE1CisgICAgICAgICAqIDE2IDE3IDE4IDE5IDIwIDIxIDIyIDIzIDI0IDI1IDI2IDI3IDI4IDI5IDMwIDMxCisgICAgICAgICAqLworICAgICAgICBib29sZWFuIHBhc3NlZCA9IHRydWU7CisgICAgICAgIGludCBmaWVsZCA9IENhbGVuZGFyLldFRUtfT0ZfTU9OVEg7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoTG9jYWxlLlVTKTsKKyAgICAgICAgY2FsZW5kYXIuc2V0KDE5OTgsIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgY2FsZW5kYXIuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygxKTsKKyAgICAgICAgbG9nbG4oIkRhdGU6ICAiICsgY2FsZW5kYXIuZ2V0VGltZSgpKTsKKworICAgICAgICBpbnQgZmlyc3RJbk1vbnRoID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisKKyAgICAgICAgZm9yIChpbnQgZmlyc3RJbldlZWsgPSBDYWxlbmRhci5TVU5EQVk7IGZpcnN0SW5XZWVrIDw9IENhbGVuZGFyLlNBVFVSREFZOyBmaXJzdEluV2VlaysrKSB7CisgICAgICAgICAgICBjYWxlbmRhci5zZXRGaXJzdERheU9mV2VlayhmaXJzdEluV2Vlayk7CisgICAgICAgICAgICBpbnQgcmV0dXJuZWQgPSBjYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgIGludCBleHBlY3RlZCA9ICgzMSArICgoZmlyc3RJbk1vbnRoIC0gZmlyc3RJbldlZWsgKyA3KSUgNykgKyA2KSAvIDc7CisKKyAgICAgICAgICAgIGxvZ2xuKCJGaXJzdCBkYXkgb2Ygd2VlayA9ICIgKyBmaXJzdEluV2VlayArCisgICAgICAgICAgICAgICAgICAiICBnZXRBY3R1YWxNYXhpbXVtKFdFRUtfT0ZfTU9OVEgpID0gIiArIHJldHVybmVkICsKKyAgICAgICAgICAgICAgICAgICIgIGV4cGVjdGVkID0gIiArIGV4cGVjdGVkICsKKyAgICAgICAgICAgICAgICAgICgocmV0dXJuZWQgPT0gZXhwZWN0ZWQpID8gIiAgb2siIDogIiAgRkFJTCIpKTsKKworICAgICAgICAgICAgaWYgKHJldHVybmVkICE9IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgcGFzc2VkID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFwYXNzZWQpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsZW5kYXIuZ2V0QWN0dWFsTWF4aW11bShZRUFSKSB3b3JrcyB3cm9uZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NzA2MCgpIHsKKyAgICAgICAgaW50IGZpZWxkID0gQ2FsZW5kYXIuWUVBUjsKKyAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFIE1NTSBkZCBISDptbTpzcyB6enogeXl5eSBHIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuVVMpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyc1tdID0geworICAgICAgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDEwMCwgQ2FsZW5kYXIuTk9WRU1CRVIsIDEpLAorICAgICAgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKC05OSAvKiAxMDBCQyAqLywgQ2FsZW5kYXIuSkFOVUFSWSwgMSksCisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KSwKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSBpZCA9IHsgIkh5YnJpZCIsICJHcmVnb3JpYW4iLCAiSnVsaWFuIiB9OworCisgICAgICAgIGZvciAoaW50IGs9MDsgazwzOyArK2spIHsKKyAgICAgICAgICAgIGxvZ2xuKCItLS0gIiArIGlkW2tdICsgIiAtLS0iKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGNhbGVuZGFycy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gY2FsZW5kYXJzW2pdOworICAgICAgICAgICAgICAgIGlmIChrID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9ybWF0LnNldENhbGVuZGFyKChDYWxlbmRhciljYWxlbmRhci5jbG9uZSgpKTsKKworICAgICAgICAgICAgICAgIERhdGUgZGF0ZUJlZm9yZSA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKworICAgICAgICAgICAgICAgIGludCBtYXhZZWFyID0gY2FsZW5kYXIuZ2V0QWN0dWFsTWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIm1heFllYXI6ICIgKyBtYXhZZWFyICsgIiBmb3IgIiArIGZvcm1hdC5mb3JtYXQoY2FsZW5kYXIuZ2V0VGltZSgpKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oImRhdGUgYmVmb3JlOiAiICsgZm9ybWF0LmZvcm1hdChkYXRlQmVmb3JlKSk7CisKKyAgICAgICAgICAgICAgICBpbnQgeWVhcnNbXSA9IHsyMDAwLCBtYXhZZWFyLTEsIG1heFllYXIsIG1heFllYXIrMX07CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHllYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmFsaWQgPSB5ZWFyc1tpXSA8PSBtYXhZZWFyOworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXQoZmllbGQsIHllYXJzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZSBkYXRlQWZ0ZXIgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBuZXdZZWFyID0gY2FsZW5kYXIuZ2V0KGZpZWxkKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlQmVmb3JlKTsgLy8gcmVzdG9yZSBjYWxlbmRhciBmb3IgbmV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2UKKworICAgICAgICAgICAgICAgICAgICBsb2dsbigiIFllYXIgIiArIHllYXJzW2ldICsgKHZhbGlkPyAiIG9rICIgOiAiIGJhZCIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZm9ybWF0LmZvcm1hdChkYXRlQWZ0ZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkICYmIG5ld1llYXIgIT0geWVhcnNbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCIgIEZBSUw6ICIgKyBuZXdZZWFyICsgIiBzaG91bGQgYmUgdmFsaWQ7IGRhdGUsIG1vbnRoIGFuZCB0aW1lIHNob3VsZG4ndCBjaGFuZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdmFsaWQgJiYgbmV3WWVhciA9PSB5ZWFyc1tpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugbm8gbG9uZ2VyIHJlcXVpcmUgc3RyaWN0IHllYXIgbWF4aW1hLiBUaGF0IGlzLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbGVuZGFyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGdvcml0aG0gbWF5IHdvcmsgZm9yIHZhbHVlcyA+IHRoZSBzdGF0ZWQgbWF4aW11bS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vZXJybG4oIiBGQUlMOiAiICsgbmV3WWVhciArICIgc2hvdWxkIGJlIGludmFsaWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgIE5vdGU6ICIgKyBuZXdZZWFyICsgIiA+IG1heGltdW0sIGJ1dCBzdGlsbCB2YWxpZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsZW5kYXIucm9sbCBicm9rZW4gVGhpcyBidWcgcmVsaWVzIG9uIHRoZSBUaW1lWm9uZSBidWcgNDE3MzYwNCB0byBhbHNvCisgICAgICogYmUgZml4ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzM1MTYoKSB7CisgICAgICAgIGludCBmaWVsZHNMaXN0W11bXSA9IHsKKyAgICAgICAgICAgIHsgMTk5NywgQ2FsZW5kYXIuRkVCUlVBUlksICAxLCAxMCwgNDUsIDE1LCA5MDAgfSwKKyAgICAgICAgICAgIHsgMTk5OSwgQ2FsZW5kYXIuREVDRU1CRVIsIDIyLCAyMywgNTksIDU5LCA5OTkgfQorICAgICAgICB9OworICAgICAgICBpbnQgbGltaXQgPSA0MDsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisKKyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoMCkpOworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5IT1VSLCAgMHg3RjAwMDAwMCk7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIC0weDdGMDAwMDAwKTsKKyAgICAgICAgaWYgKGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJIb3VyIHJvbGxpbmcgYnJva2VuIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBvcD0wOyBvcDwyOyArK29wKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBHcmVnb3JpYW5DYWxlbmRhciAiICsKKyAgICAgICAgICAgICAgICAgIChvcD09MCA/ICJhZGQiIDogInJvbGwiKSk7CisgICAgICAgICAgICBmb3IgKGludCBmaWVsZD0wOyBmaWVsZCA8IGNhbC5nZXRGaWVsZENvdW50KCk7ICsrZmllbGQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmllbGQgIT0gQ2FsZW5kYXIuWk9ORV9PRkZTRVQgJiYKKyAgICAgICAgICAgICAgICAgICAgZmllbGQgIT0gQ2FsZW5kYXIuRFNUX09GRlNFVCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8ZmllbGRzTGlzdC5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpZWxkc1tdID0gZmllbGRzTGlzdFtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZHNbMF0sIGZpZWxkc1sxXSwgZmllbGRzWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNbM10sIGZpZWxkc1s0XSwgZmllbGRzWzVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIGZpZWxkc1s2XSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDIqbGltaXQ7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5hZGQoZmllbGQsIGkgPCBsaW1pdCA/IDEgOiAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnJvbGwoZmllbGQsIGkgPCBsaW1pdCA/IDEgOiAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgIT0gZmllbGRzWzBdIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCkgIT0gZmllbGRzWzFdIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSAhPSBmaWVsZHNbMl0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAhPSBmaWVsZHNbM10gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgIT0gZmllbGRzWzRdIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICE9IGZpZWxkc1s1XSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICE9IGZpZWxkc1s2XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGaWVsZCAiICsgZmllbGQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKCIgKyBGSUVMRF9OQU1FW2ZpZWxkXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgRkFJTCwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzWzBdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyAoZmllbGRzWzFdICsgMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIGZpZWxkc1syXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgZmllbGRzWzNdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBmaWVsZHNbNF0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGZpZWxkc1s1XSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsgZmllbGRzWzZdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3QgIiArIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiArIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KGZpZWxkc1swXSwgZmllbGRzWzFdLCBmaWVsZHNbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNbM10sIGZpZWxkc1s0XSwgZmllbGRzWzVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCBmaWVsZHNbNl0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJTdGFydCBkYXRlOiAiICsgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcHJldiA9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMipsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuYWRkKGZpZWxkLCBpIDwgbGltaXQgPyAxIDogLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnJvbGwoZmllbGQsIGkgPCBsaW1pdCA/IDEgOiAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0ID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSB0IC0gcHJldjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldiA9IHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKChvcCA9PSAwID8gImFkZCgiIDogInJvbGwoIikgKyBGSUVMRF9OQU1FW2ZpZWxkXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpIDwgbGltaXQgPyAiLCArMSkgPT4gIiA6ICIsIC0xKSA9PiAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyAoY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiArIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBkZWx0YT0iICsgZGVsdGEgKyAiIG1zIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzQzNjEoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTYsIDEsIDI5KTsKKworICAgICAgICBjYWxlbmRhci5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEwKTsgCisgICAgICAgIC8vRGF0ZSBkYXRlMSA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgLy9kYXRlMSA9IG51bGw7CisgICAgICAgIGludCBkMSA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworCisgICAgICAgIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTYsIDEsIDI5KTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLk1PTlRILCAxMSk7IAorICAgICAgICAvL0RhdGUgZGF0ZTIgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIC8vZGF0ZTIgPSBudWxsOworICAgICAgICBpbnQgZDIgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKworICAgICAgICBpZiAoZDEgIT0gZDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJhZGRpbmcgbW9udGhzIHRvIEZlYiAyOSBicm9rZW4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGVuZGFyIGRvZXMgbm90IHVwZGF0ZSBmaWVsZCB2YWx1ZXMgd2hlbiBzZXRUaW1lWm9uZSBpcyBjYWxsZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzc0ODQoKSB7CisgICAgICAgIFRpbWVab25lIFBTVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgVGltZVpvbmUgRVNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpOworCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKFBTVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5OSwgMywgMjEsIDE1LCA1LCAwKTsgLy8gQXJiaXRyYXJ5CisgICAgICAgIGludCBoMSA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoRVNUKTsKKyAgICAgICAgaW50IGgyID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGlmIChoMSA9PSBoMikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEZpZWxkcyBub3QgdXBkYXRlZCBhZnRlciBzZXRUaW1lWm9uZSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZ2V0VGltZSgpIG11c3QgTk9UIGNoYW5nZSB3aGVuIHRpbWUgem9uZSBpcyBjaGFuZ2VkLgorICAgICAgICAvLyBnZXRUaW1lKCkgcmV0dXJucyB6b25lLWluZGVwZW5kZW50IHRpbWUgaW4gbXMuCisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoUFNUKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMTApOworICAgICAgICBEYXRlIHBzdDEwID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLnNldFRpbWVab25lKEVTVCk7CisgICAgICAgIERhdGUgZXN0MTAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoIXBzdDEwLmVxdWFscyhlc3QxMCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRUaW1lWm9uZSBjaGFuZ2VkIHRpbWUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFdlZWsgb2YgeWVhciBpcyB3cm9uZyBhdCB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE5NzY5OSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5NT05EQVkpOworICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2Vlayg0KTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRSBkZCBNTU0geXl5eSAgJ0RPWT0nRCAnV09ZPSd3Iik7CisgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWwpOworCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAyMDAwLCAgQ2FsZW5kYXIuSkFOVUFSWSwgICAxLCAgIDUyLAorICAgICAgICAgICAgMjAwMSwgIENhbGVuZGFyLkRFQ0VNQkVSLCAgMzEsICAxLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBjYWwuc2V0KERBVEFbaSsrXSwgREFUQVtpKytdLCBEQVRBW2krK10pOworICAgICAgICAgICAgaW50IGV4cFdPWSA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBhY3RXT1kgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICBpZiAoZXhwV09ZID09IGFjdFdPWSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICArICIsIGV4cGVjdGVkIFdPWT0iICsgZXhwV09ZKTsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIC04KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MTQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICAgICAgICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhciBEQVlfT0ZfV0VFS19JTl9NT05USCBmaWVsZHMtPnRpbWUgYnJva2VuLiBUaGUgcHJvYmxlbSBpcyBpbiB0aGUKKyAgICAgKiBmaWVsZCBkaXNhbWJpZ3VhdGlvbiBjb2RlIGluIEdyZWdvcmlhbkNhbGVuZGFyLiBUaGlzIGNvZGUgaXMgc3VwcG9zZWQgdG8KKyAgICAgKiBjaG9vc2UgdGhlIG1vc3QgcmVjZW50IHNldCBvZiBmaWVsZHMgYW1vbmcgdGhlIGZvbGxvd2luZzoKKyAgICAgKiAKKyAgICAgKiBNT05USCArIERBWV9PRl9NT05USCBNT05USCArIFdFRUtfT0ZfTU9OVEggKyBEQVlfT0ZfV0VFSyBNT05USCArCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEggKyBEQVlfT0ZfV0VFSyBEQVlfT0ZfWUVBUiBXRUVLX09GX1lFQVIgKyBEQVlfT0ZfV0VFSworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjA5MDcxKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCisgICAgICAgIC8vIEdlbmVyYWwgZmllbGQgc2V0dGluZyB0ZXN0CisgICAgICAgIGludCBZID0gMTk5NTsKKyAgICAgICAgCisgICAgICAgIERhdGUgZFtdID0gbmV3IERhdGVbMTNdOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBkWzBdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgZFsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCA0KTsKKyAgICAgICAgZFsyXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAxOCk7CisgICAgICAgIGRbM10gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuSkFOVUFSWSwgMTgpOworICAgICAgICBkWzRdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFktMSwgQ2FsZW5kYXIuREVDRU1CRVIsIDIyKTsKKyAgICAgICAgZFs1XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAyNik7CisgICAgICAgIGRbNl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzddID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgZFs4XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5PQ1RPQkVSLCA2KTsKKyAgICAgICAgZFs5XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5PQ1RPQkVSLCAxMyk7CisgICAgICAgIGRbMTBdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkFVR1VTVCwgMTApOworICAgICAgICBkWzExXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5ERUNFTUJFUiwgNyk7CisgICAgICAgIGRbMTJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgT2JqZWN0W10gRklFTERfREFUQSA9IHsKKyAgICAgICAgICAgIC8vIEFkZCBuZXcgdGVzdCBjYXNlcyBhcyBuZWVkZWQuCisKKyAgICAgICAgICAgIC8vIDAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7fSwgZFswXSwKKyAgICAgICAgICAgIC8vIDEKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5NQVJDSCB9LCBkWzFdLAorICAgICAgICAgICAgLy8gMgorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLldFRE5FU0RBWSB9LCBkWzJdLAorICAgICAgICAgICAgLy8gMworICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxOCwgfSwgZFszXSwKKyAgICAgICAgICAgIC8vIDQKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9NT05USCwgMTgsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVEhVUlNEQVksIH0sIGRbNF0sCisgICAgICAgICAgICAvLyA1IChXT00gLTEgaXMgaW4gcHJldmlvdXMgbW9udGgpCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVEhVUlNEQVksIH0sIGRbNV0sCisgICAgICAgICAgICAvLyA2CisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwgfSwgZFs2XSwKKyAgICAgICAgICAgIC8vIDcgKERJTSAtMSBpcyBpbiBzYW1lIG1vbnRoKQorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwgfSwgZFs3XSwKKyAgICAgICAgICAgIC8vIDgKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgOSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5XRURORVNEQVksIH0sIGRbOF0sCisgICAgICAgICAgICAvLyA5CisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuT0NUT0JFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLkZSSURBWSwgfSwgZFs5XSwKKyAgICAgICAgICAgIC8vIDEwCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuT0NUT0JFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIDIsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuRlJJREFZLCB9LCBkWzEwXSwKKyAgICAgICAgICAgIC8vIDExCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuT0NUT0JFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9NT05USCwgMTUsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMjIyLCB9LCBkWzExXSwKKyAgICAgICAgICAgIC8vIDEyCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVEhVUlNEQVksCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuREVDRU1CRVIsIH0sIGRbMTJdLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxGSUVMRF9EQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgaW50W10gZmllbGRzID0gKGludFtdKSBGSUVMRF9EQVRBW2ldOworICAgICAgICAgICAgRGF0ZSBleHAgPSAoRGF0ZSkgRklFTERfREFUQVtpKzFdOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgWSk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8ZmllbGRzLmxlbmd0aDsgais9MikgeworICAgICAgICAgICAgICAgIGNhbC5zZXQoZmllbGRzW2pdLCBmaWVsZHNbaisxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIERhdGUgYWN0ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmICghYWN0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3QgIiArIChpLzIpICsgIiBnb3QgIiArIGFjdCArCisgICAgICAgICAgICAgICAgICAgICAgIiwgd2FudCAiICsgZXhwICsKKyAgICAgICAgICAgICAgICAgICAgICAiIChzZWUgdGVzdC9qYXZhL3V0aWwvQ2FsZW5kYXIvQ2FsZW5kYXJSZWdyZXNzaW9uLmphdmEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDUpOworICAgICAgICBkWzBdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDI2KTsKKyAgICAgICAgZFsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5GRUJSVUFSWSwgMjMpOworICAgICAgICBkWzJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDI2KTsKKyAgICAgICAgZFszXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5KQU5VQVJZLCA1KTsKKyAgICAgICAgZFs0XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgOCk7CisgICAgICAgIGRbNV0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgLy8gVGVzdCBzcGVjaWZpYyBmYWlsdXJlIHJlcG9ydGVkIGluIGJ1ZworICAgICAgICBPYmplY3RbXSBEQVRBID0geyAKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEpLCBkWzBdLCBuZXcgSW50ZWdlcig0KSwgZFsxXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDgpLCBkWzJdLCBuZXcgSW50ZWdlcigtMSksIGRbM10sCisgICAgICAgICAgICBuZXcgSW50ZWdlcigtNCksIGRbNF0sIG5ldyBJbnRlZ2VyKC04KSwgZFs1XSwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICgoTnVtYmVyKSBEQVRBW2ldKS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KQU5VQVJZKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgICAgICBEYXRlIGFjdHVhbCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBpZiAoIWFjdHVhbC5lcXVhbHMoREFUQVtpKzFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTdW5kYXkgIiArIERBVEFbaV0gKworICAgICAgICAgICAgICAgICAgICAgICIgb2YgSmFuIDE5OTcgLT4gIiArIGFjdHVhbCArCisgICAgICAgICAgICAgICAgICAgICAgIiwgd2FudCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFdFRUtfT0ZfWUVBUiBjb21wdXRlZCBpbmNvcnJlY3RseS4gQSBmYWlsdXJlIG9mIHRoaXMgdGVzdCBjYW4gaW5kaWNhdGUgYQorICAgICAqIHByb2JsZW0gaW4gc2V2ZXJhbCBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0Mjg4NzkyKCkgdGhyb3dzIEV4Y2VwdGlvbiAKKyAgICB7CisgICAgVGltZVpvbmUgc2F2ZWRUWiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIAorICAgIGZvciAoaW50IGkgPSAxOTAwOyBpIDwgMjEwMDsgaSsrKSB7CisgICAgICAgIGZvciAoaW50IGoxID0gMTsgajEgPD0gNzsgajErKykgeworICAgICAgICAvLyBMb29wIGZvciBNaW5pbWFsRGF5c0luRmlyc3RXZWVrOiAxLi43CisgICAgICAgIGZvciAoaW50IGogPSBDYWxlbmRhci5TVU5EQVk7IGogPD0gQ2FsZW5kYXIuU0FUVVJEQVk7IGorKykgeworICAgICAgICAgICAgLy8gTG9vcCBmb3IgRmlyc3REYXlPZldlZWs6IFNVTkRBWS4uU0FUVVJEQVkKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoajEpOworICAgICAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKGopOworICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIGNhbGVuZGFyIHRvIHRoZSBmaXJzdCBkYXkgb2YgdGhlIGxhc3Qgd2VlaworICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgeWVhci4gVGhpcyBtYXkgb3ZlcmxhcCBzb21lIG9mIHRoZSBzdGFydCBvZgorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbmV4dCB5ZWFyOyB0aGF0IGlzLCB0aGUgbGFzdCB3ZWVrIG9mIDE5OTkgbWF5CisgICAgICAgICAgICAgICAgICAgIC8vIGluY2x1ZGUgc29tZSBvZiBKYW51YXJ5IDIwMDAuIFVzZSB0aGUgYWRkKCkgbWV0aG9kCisgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFkdmFuY2UgdGhyb3VnaCB0aGUgd2Vlay4gRm9yIGVhY2ggZGF5LCBjYWxsCisgICAgICAgICAgICAgICAgICAgIC8vIGdldChXRUVLX09GX1lFQVIpLiBUaGUgcmVzdWx0IHNob3VsZCBiZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHdob2xlIHdlZWsuIE5vdGUgdGhhdCBhIGJ1ZyBpbgorICAgICAgICAgICAgICAgICAgICAvLyBnZXRBY3R1YWxNYXhpbXVtKCkgd2lsbCBicmVhayB0aGlzIHRlc3QuCisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIGkpOworICAgICAgICAgICAgaW50IG1heFdlZWsgPSBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIG1heFdlZWspOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgaik7CisgICAgICAgICAgICBmb3IgKGludCBrID0gMTsgayA8IDc7IGsrKykgeworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKyAgICAgICAgICAgIGludCBXT1kgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICBpZiAoV09ZICE9IG1heFdlZWspIHsKKyAgICAgICAgICAgICAgICBlcnJsbihjYWwuZ2V0VGltZSgpICsgIixnb3Q9IiArIFdPWQorICAgICAgICAgICAgICAgICAgKyAiLGV4cGVjdGVkPSIgKyBtYXhXZWVrIAorICAgICAgICAgICAgICAgICAgKyAiLG1pbj0iICsgajEgKyAiLGZpcnN0PSIgKyBqKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gTm93IGFkdmFuY2UgdGhlIGNhbGVuZGFyIG9uZSBtb3JlIGRheS4gVGhpcyBzaG91bGQKKyAgICAgICAgICAgICAgICAgICAgLy8gcHV0IGl0IGF0IHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxIG9mIHRoZSBuZXh0IHllYXIuCisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICAgICAgaW50IFdPWSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgIGlmIChXT1kgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oY2FsLmdldFRpbWUoKSArICIsZ290PSIgKyBXT1kgCisgICAgICAgICAgICAgICAgICArICIsZXhwZWN0ZWQ9MSxtaW49IiArIGoxICsgIixmaXJzdCIgKyBqKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZWRUWik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmaWVsZERpZmZlcmVuY2UoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjQzOCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBpbnQgREFUQVtdID0geworICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuSkFOVUFSWSwgMjAsICAgMjAxMCwgQ2FsZW5kYXIuSlVORSwgMTUsCisgICAgICAgICAgICAyMDEwLCBDYWxlbmRhci5KVU5FLCAxNSwgICAgICAyMDAwLCBDYWxlbmRhci5KQU5VQVJZLCAyMCwKKyAgICAgICAgICAgIDE5NjQsIENhbGVuZGFyLlNFUFRFTUJFUiwgNywgIDE5OTksIENhbGVuZGFyLkpVTkUsIDQsCisgICAgICAgICAgICAxOTk5LCBDYWxlbmRhci5KVU5FLCA0LCAgICAgICAxOTY0LCBDYWxlbmRhci5TRVBURU1CRVIsIDcsCisgICAgICAgIH07CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NikgeworICAgICAgICAgICAgaW50IHkxID0gREFUQVtpXTsKKyAgICAgICAgICAgIGludCBtMSA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIGludCBkMSA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIGludCB5MiA9IERBVEFbaSszXTsKKyAgICAgICAgICAgIGludCBtMiA9IERBVEFbaSs0XTsKKyAgICAgICAgICAgIGludCBkMiA9IERBVEFbaSs1XTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KHkxLCBtMSwgZDEpOworICAgICAgICAgICAgRGF0ZSBkYXRlMSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwuc2V0KHkyLCBtMiwgZDIpOworICAgICAgICAgICAgRGF0ZSBkYXRlMiA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUxKTsKKyAgICAgICAgICAgIGludCBkeSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IGRtID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgaW50IGRkID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuREFURSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCIiICsgZGF0ZTIgKyAiIC0gIiArIGRhdGUxICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgZHkgKyAieSAiICsgZG0gKyAibSAiICsgZGQgKyAiZCIpOworCisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlMSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLllFQVIsIGR5KTsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuTU9OVEgsIGRtKTsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgZGQpOworICAgICAgICAgICAgRGF0ZSBkYXRlMjIgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgaWYgKCFkYXRlMi5lcXVhbHMoZGF0ZTIyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZGF0ZTEgKyAiICsgIiArCisgICAgICAgICAgICAgICAgICAgICAgZHkgKyAieSAiICsgZG0gKyAibSAiICsgZGQgKyAiZCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgIGRhdGUyMiArICIsIGV4cCAiICsgZGF0ZTIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBkYXRlMSArICIgKyAiICsKKyAgICAgICAgICAgICAgICAgICAgICBkeSArICJ5ICIgKyBkbSArICJtICIgKyBkZCArICJkID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgZGF0ZTIyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBiZWhhdmlvciBvZiBEU1RfT0ZGU0VUIGZpZWxkLiBJQ1U0SiBKaXR0ZXJidWcgOS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjkoKSB7CisgICAgICAgIGludCBIT1VSUyA9IDYwKjYwKjEwMDA7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuVVMpOworCisgICAgICAgIGZpbmFsIGludCBFTkRfRklFTERTID0gMHgxMjM0OworCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBXaXRoIG5vIGV4cGxpY2l0IFpPTkUvRFNUIGV4cGVjdCAxMjowMCBhbQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMCwgMCwgLy8gZXhwZWN0ZWQgaG91ciwgbWluCisKKyAgICAgICAgICAgIC8vIE5vcm1hbCBaT05FL0RTVCBmb3IgSnVuZSAxIFBhY2lmaWMgaXMgODowMC8xOjAwCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIENhbGVuZGFyLlpPTkVfT0ZGU0VULCAtOCpIT1VSUywKKyAgICAgICAgICAgIENhbGVuZGFyLkRTVF9PRkZTRVQsIEhPVVJTLAorICAgICAgICAgICAgRU5EX0ZJRUxEUywKKyAgICAgICAgICAgIDAsIDAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorCisgICAgICAgICAgICAvLyBXaXRoIFpPTkUvRFNUIG9mIDg6MDAvMDozMCBleHBlY3QgdGltZSBvZiAxMjozMCBhbQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUsCisgICAgICAgICAgICBDYWxlbmRhci5aT05FX09GRlNFVCwgLTgqSE9VUlMsCisgICAgICAgICAgICBDYWxlbmRhci5EU1RfT0ZGU0VULCBIT1VSUy8yLAorICAgICAgICAgICAgRU5EX0ZJRUxEUywKKyAgICAgICAgICAgIDAsIDMwLCAvLyBleHBlY3RlZCBob3VyLCBtaW4KKworICAgICAgICAgICAgLy8gV2l0aCBaT05FL0RTVCBvZiA4OjAwL1VOU0VUIGV4cGVjdCB0aW1lIG9mIDE6MDAgYW0KKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FLAorICAgICAgICAgICAgQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIC04KkhPVVJTLAorICAgICAgICAgICAgRU5EX0ZJRUxEUywKKyAgICAgICAgICAgIDEsIDAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorCisgICAgICAgICAgICAvLyBXaXRoIFpPTkUvRFNUIG9mIFVOU0VULzA6MzAgZXhwZWN0IDQ6MzAgcG0gKGRheSBiZWZvcmUpCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIENhbGVuZGFyLkRTVF9PRkZTRVQsIEhPVVJTLzIsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMTYsIDMwLCAvLyBleHBlY3RlZCBob3VyLCBtaW4KKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gaTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworCisgICAgICAgICAgICAvLyBTZXQgZmllbGRzCisgICAgICAgICAgICB3aGlsZSAoREFUQVtpXSAhPSBFTkRfRklFTERTKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldChEQVRBW2krK10sIERBVEFbaSsrXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2k7IC8vIHNraXAgb3ZlciBFTkRfRklFTERTCisKKyAgICAgICAgICAgIC8vIEdldCBob3VyL21pbnV0ZQorICAgICAgICAgICAgaW50IGggPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgICAgIGludCBtID0gY2FsLmdldChDYWxlbmRhci5NSU5VVEUpOworCisgICAgICAgICAgICAvLyBDaGVjaworICAgICAgICAgICAgaWYgKGggIT0gREFUQVtpXSB8fCBtICE9IERBVEFbaSsxXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBleHBlY3RlZCAiICsgREFUQVtpXSArICI6IiArIERBVEFbaSsxXSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZ290ICIgKyBoICsgIjoiICsgbSArICIgYWZ0ZXI6Iik7CisgICAgICAgICAgICAgICAgd2hpbGUgKERBVEFbc3RhcnRdICE9IEVORF9GSUVMRFMpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oInNldCgiICsgRklFTERfTkFNRVtEQVRBW3N0YXJ0KytdXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsICIgKyBEQVRBW3N0YXJ0KytdICsgIik7Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpICs9IDI7IC8vIHNraXAgb3ZlciBleHBlY3RlZCBob3VyLCBtaW4KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERhdGVGb3JtYXQgY2xhc3MgbWlzdGFrZXMgZGF0ZSBzdHlsZSBhbmQgdGltZSBzdHlsZSBhcyBmb2xsb3dzOiAtCisgICAgICogRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlIHRha2VzIGRhdGUgc3R5bGUgYXMgdGltZSBzdHlsZSwgYW5kIHRpbWUKKyAgICAgKiBzdHlsZSBhcyBkYXRlIHN0eWxlIC0gSWYgYSBDYWxlbmRhciBpcyBwYXNzZWQgdG8KKyAgICAgKiBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSwgaXQgcmV0dXJucyB0aW1lIGluc3RhbmNlIC0gSWYgYSBDYWxlbmRhciBpcworICAgICAqIHBhc3NlZCB0byBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSwgaXQgcmV0dXJucyBkYXRlIGluc3RhbmNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXRGYWN0b3J5SjI2KCkgeworICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5VUzsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKSk7CisgICAgICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuQVBSSUwsIDUsIDE3LCA0MywgNTMpOworICAgICAgICAgICAgRGF0ZSBkYXRlID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2MpOworICAgICAgICAgICAgT2JqZWN0W10gREFUQSA9IHsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiNC81LzAxIiwKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGxvYyksCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI1OjQzIFBNIiwKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYyksCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICJUaHVyc2RheSwgQXByaWwgNSwgMjAwMSA1OjQzIFBNIiwKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiNC81LzAxIiwKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiNTo0MyBQTSIsCisKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYyksCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIlRodXJzZGF5LCBBcHJpbCA1LCAyMDAxIDU6NDMgUE0iLAorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuRlVMTCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuRlVMTCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIjQvNS8wMSA1OjQzOjUzIFBNIFBUIiwKKworICAgICAgICAgICAgICAgIGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYyksCisgICAgICAgICAgICAgICAgImNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICJUaHVyc2RheSwgQXByaWwgNSwgMjAwMSA1OjQzIFBNIiwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gKERhdGVGb3JtYXQpIERBVEFbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2MgPSAoU3RyaW5nKSBEQVRBW2krMV07CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cCA9IChTdHJpbmcpIERBVEFbaSsyXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZ290ID0gZGYuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgICAgIGlmIChnb3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZGVzYyArICIgPT4gIiArIGdvdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkZXNjICsgIiA9PiAiICsgZ290ICsgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh6b25lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWdpc3RyYXRpb24oKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFNldCBuYW1lcyA9IENhbGVuZGFyLmdldENhbGVuZGFyRmFjdG9yeU5hbWVzKCk7CisgICAgICAgICAqIAorICAgICAgICAgKiBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsgTG9jYWxlIGxvYyA9CisgICAgICAgICAqIExvY2FsZS5nZXREZWZhdWx0KCk7IEl0ZXJhdG9yIGl0ZXIgPSBuYW1lcy5pdGVyYXRvcigpOyB3aGlsZQorICAgICAgICAgKiAoaXRlci5oYXNOZXh0KCkpIHsgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOyBsb2dsbigiVGVzdGluZworICAgICAgICAgKiBmYWN0b3J5OiAiICsgbmFtZSk7CisgICAgICAgICAqIAorICAgICAgICAgKiBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0eiwgbG9jLCBuYW1lKTsgbG9nbG4oIkNhbGVuZGFyCisgICAgICAgICAqIGNsYXNzOiAiICsgY2FsLmdldENsYXNzKCkpOworICAgICAgICAgKiAKKyAgICAgICAgICogRGF0ZUZvcm1hdCBmbXQgPSBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5MT05HLAorICAgICAgICAgKiBEYXRlRm9ybWF0LkxPTkcsIGxvYyk7CisgICAgICAgICAqIAorICAgICAgICAgKiBsb2dsbigiRGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOyB9CisgICAgICAgICAqICAvLyByZWdpc3RlciBuZXcgZGVmYXVsdCBmb3Igb3VyIGxvY2FsZSBsb2dsbigiXG5UZXN0aW5nCisgICAgICAgICAqIHJlZ2lzdHJhdGlvbiIpOyBsb2MgPSBuZXcgTG9jYWxlKCJlbiIsICJVUyIpOyBPYmplY3Qga2V5ID0KKyAgICAgICAgICogQ2FsZW5kYXIucmVnaXN0ZXIoSmFwYW5lc2VDYWxlbmRhci5mYWN0b3J5KCksIGxvYywgdHJ1ZSk7CisgICAgICAgICAqIAorICAgICAgICAgKiBsb2MgPSBuZXcgTG9jYWxlKCJlbiIsICJVUyIsICJURVNUIik7IENhbGVuZGFyIGNhbCA9CisgICAgICAgICAqIENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7IGxvZ2xuKCJDYWxlbmRhciBjbGFzczogIiArCisgICAgICAgICAqIGNhbC5nZXRDbGFzcygpKTsgRGF0ZUZvcm1hdCBmbXQgPQorICAgICAgICAgKiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIGxvYyk7CisgICAgICAgICAqIGxvZ2xuKCJEYXRlOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAqICAvLyBmb3JjZSB0byB1c2Ugb3RoZXIgZGVmYXVsdCBhbnl3YXkgbG9nbG4oIlxuT3ZlcnJpZGUKKyAgICAgICAgICogcmVnaXN0cmF0aW9uIik7IGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6LCBsb2MsICJHcmVnb3JpYW4iKTsgZm10ID0KKyAgICAgICAgICogY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HLCBsb2MpOworICAgICAgICAgKiBsb2dsbigiRGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgKiAgLy8gdW5yZWdpc3RlciBkZWZhdWx0IGxvZ2xuKCJcblVucmVnaXN0cmF0aW9uIik7IGxvZ2xuKCJVbnJlZ2lzdGVyCisgICAgICAgICAqIHJldHVybmVkOiAiICsgQ2FsZW5kYXIudW5yZWdpc3RlcihrZXkpKTsgY2FsID0KKyAgICAgICAgICogQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodHosIGxvYywgIkdyZWdvcmlhbiIpOyBmbXQgPQorICAgICAgICAgKiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIGxvYyk7CisgICAgICAgICAqIGxvZ2xuKCJEYXRlOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAqLworICAgIH0KKworfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwMzg1OWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJUZXN0LmphdmEKQEAgLTAsMCArMSwzNjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworLyoqCisgKiBBIGJhc2UgY2xhc3MgZm9yIGNsYXNzZXMgdGhhdCB0ZXN0IGluZGl2aWR1YWwgQ2FsZW5kYXIgc3ViY2xhc3Nlcy4KKyAqIERlZmluZXMgdmFyaW91cyB1c2VmdWwgdXRpbGl0eSBtZXRob2RzIGFuZCBjb25zdGFudHMKKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICAvLyBDb25zdGFudHMgZm9yIHVzZSBieSBzdWJjbGFzc2VzLCBzb2xlbHkgdG8gc2F2ZSB0eXBpbmcKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVU4gPSBDYWxlbmRhci5TVU5EQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OID0gQ2FsZW5kYXIuTU9OREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRVRSA9IENhbGVuZGFyLlRVRVNEQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VEID0gQ2FsZW5kYXIuV0VETkVTREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRIVSA9IENhbGVuZGFyLlRIVVJTREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSSSA9IENhbGVuZGFyLkZSSURBWTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTQVQgPSBDYWxlbmRhci5TQVRVUkRBWTsKKworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQSAgICAgPSBDYWxlbmRhci5FUkE7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWUVBUiAgICA9IENhbGVuZGFyLllFQVI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OVEggICA9IENhbGVuZGFyLk1PTlRIOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEUgICAgPSBDYWxlbmRhci5EQVRFOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVIgICAgPSBDYWxlbmRhci5IT1VSOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURSAgPSBDYWxlbmRhci5NSU5VVEU7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EICA9IENhbGVuZGFyLlNFQ09ORDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBET1kgICAgID0gQ2FsZW5kYXIuREFZX09GX1lFQVI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV09ZICAgICA9IENhbGVuZGFyLldFRUtfT0ZfWUVBUjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXT00gICAgID0gQ2FsZW5kYXIuV0VFS19PRl9NT05USDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBET1cgICAgID0gQ2FsZW5kYXIuREFZX09GX1dFRUs7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRE9XTSAgICA9IENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIOworICAgIAorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU2ltcGxlVGltZVpvbmUgVVRDID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICJEQVlfT0ZfTU9OVEgiLCAiREFZX09GX1lFQVIiLCAiREFZX09GX1dFRUsiLAorICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgIkRTVF9PRkZTRVQiLCAiWUVBUl9XT1kiLCAiRE9XX0xPQ0FMIiwgIkVYVEVOREVEX1lFQVIiLAorICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIiwKKyAgICAgICAgIklTX0xFQVBfTU9OVEgiIC8vIChDaGluZXNlQ2FsZW5kYXIgb25seSkKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmllbGROYW1lKGludCBmKSB7CisgICAgICAgIHJldHVybiAoZj49MCAmJiBmPEZJRUxEX05BTUUubGVuZ3RoKSA/CisgICAgICAgICAgICBGSUVMRF9OQU1FW2ZdIDogKCI8RmllbGQgIiArIGYgKyAiPiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEl0ZXJhdGVzIHRocm91Z2ggYSBsaXN0IG9mIGNhbGVuZGFyIDxjb2RlPlRlc3RDYXNlPC9jb2RlPiBvYmplY3RzIGFuZAorICAgICAqIG1ha2VzIHN1cmUgdGhhdCB0aGUgdGltZS10by1maWVsZHMgYW5kIGZpZWxkcy10by10aW1lIGNhbGN1bGF0aW9ucyB3b3JrCisgICAgICogY29ycmVuY3RseSBmb3IgdGhlIHZhbHVlcyBpbiBlYWNoIHRlc3QgY2FzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDYXNlcyhUZXN0Q2FzZVtdIGNhc2VzLCBDYWxlbmRhciBjYWwpCisgICAgeworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVVRDKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdldCBhIGZvcm1hdCB0byB1c2UgZm9yIHByaW50aW5nIGRhdGVzIGluIHRoZSBjYWxlbmRhciBzeXN0ZW0gd2UncmUgdGVzdGluZworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIC0xLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IChjYWwgaW5zdGFuY2VvZiBDaGluZXNlQ2FsZW5kYXIpID8KKyAgICAgICAgICAgICJFIE1NbC9kZC95IEcgSEg6bW06c3MuUyB6IiA6CisgICAgICAgICAgICAiRSwgTU0vZGQveXl5eSBHIEhIOm1tOnNzLlMgeiI7CisgICAgCisgICAgICAgICgoU2ltcGxlRGF0ZUZvcm1hdClmb3JtYXQpLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKworICAgICAgICAvLyBUaGlzIGZvcm1hdCBpcyB1c2VkIGZvciBwcmludGluZyBHcmVnb3JpYW4gZGF0ZXMuCisgICAgICAgIERhdGVGb3JtYXQgZ3JlZ0Zvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4pOworICAgICAgICBncmVnRm9ybWF0LnNldFRpbWVab25lKFVUQyk7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgcHVyZUdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVVRDKTsKKyAgICAgICAgcHVyZUdyZWcuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7CisgICAgICAgIERhdGVGb3JtYXQgcHVyZUdyZWdGbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRSBNL2QveXl5eSBHIik7CisgICAgICAgIHB1cmVHcmVnRm10LnNldENhbGVuZGFyKHB1cmVHcmVnKTsKKyAgICAgICAgCisgICAgICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggdGhlIHRlc3QgY2FzZXMgYW5kIHNlZSB3aGF0IGhhcHBlbnMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIlxudGVzdCBjYXNlOiAiICsgaSk7CisgICAgICAgICAgICBUZXN0Q2FzZSB0ZXN0ID0gY2FzZXNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBGaXJzdCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBtaWxsaXMgLT4gZmllbGRzIGNhbGN1bGF0aW9uIHdvcmtzCisgICAgICAgICAgICAvLyB0ZXN0LmFwcGx5VGltZSB3aWxsIGNhbGwgc2V0VGltZSgpIG9uIHRoZSBjYWxlbmRhciBvYmplY3QsIGFuZAorICAgICAgICAgICAgLy8gdGVzdC5maWVsZHNFcXVhbCB3aWxsIHJldHJpZXZlIGFsbCBvZiB0aGUgZmllbGQgdmFsdWVzIGFuZCBtYWtlIHN1cmUKKyAgICAgICAgICAgIC8vIHRoYXQgdGhleSdyZSB0aGUgc2FtZSBhcyB0aGUgb25lcyBpbiB0aGUgdGVzdGNhc2UKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICB0ZXN0LmFwcGx5VGltZShjYWwpOworICAgICAgICAgICAgaWYgKCF0ZXN0LmZpZWxkc0VxdWFsKGNhbCwgdGhpcykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogKG1pbGxpcz0+ZmllbGRzKSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBncmVnRm9ybWF0LmZvcm1hdCh0ZXN0LmdldFRpbWUoKSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyB0ZXN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIElmIHRoYXQgd2FzIE9LLCBjaGVjayB0aGUgZmllbGRzIC0+IG1pbGxpcyBjYWxjdWxhdGlvbgorICAgICAgICAgICAgLy8gdGVzdC5hcHBseUZpZWxkcyB3aWxsIHNldCBhbGwgb2YgdGhlIGNhbGVuZGFyJ3MgZmllbGRzIHRvIAorICAgICAgICAgICAgLy8gbWF0Y2ggdGhvc2UgaW4gdGhlIHRlc3QgY2FzZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIHRlc3QuYXBwbHlGaWVsZHMoY2FsKTsKKyAgICAgICAgICAgIGlmICghdGVzdC5lcXVhbHMoY2FsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAoZmllbGRzPT5taWxsaXMpICIgKyB0ZXN0ICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBwdXJlR3JlZ0ZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBwdXJlR3JlZ0ZtdC5mb3JtYXQodGVzdC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGJvb2xlYW4gUk9MTCA9IHRydWU7CisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBib29sZWFuIEFERCA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGVzdCBjYXNlcyBmb3IgPGNvZGU+YWRkPC9jb2RlPiBhbmQgPGNvZGU+cm9sbDwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiBFYWNoIHRlc3QgY2FzZSBpcyBhbiBhcnJheSBvZiBpbnRlZ2VycywgYXMgZm9sbG93czoKKyAgICAgKiA8dWw+CisgICAgICogIDxsaT4wOiBpbnB1dCB5ZWFyCisgICAgICogIDxsaT4xOiAgICAgICBtb250aCAgKHplcm8tYmFzZWQpCisgICAgICogIDxsaT4yOiAgICAgICBkYXkKKyAgICAgKiAgPGxpPjM6IGZpZWxkIHRvIHJvbGwgb3IgYWRkIHRvCisgICAgICogIDxsaT40OiBhbW91bnQgdG8gcm9sbCBvciBhZGQKKyAgICAgKiAgPGxpPjU6IHJlc3VsdCB5ZWFyCisgICAgICogIDxsaT42OiAgICAgICAgbW9udGggKHplcm8tYmFzZWQpCisgICAgICogIDxsaT43OiAgICAgICAgZGF5CisgICAgICogPC91bD4KKyAgICAgKiBGb3IgZXhhbXBsZToKKyAgICAgKiA8cHJlPgorICAgICAqICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgYWRkIGJ5ICAgICAgICAgIG91dHB1dAorICAgICAqICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgICogICB7ICAgNTc1OSwgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTksIEtJU0xFViwgICAgMiB9LAorICAgICAqIDwvcHJlPgorICAgICAqCisgICAgICogQHBhcmFtIHJvbGwgIDxjb2RlPnRydWU8L2NvZGU+IG9yIDxjb2RlPlJPTEw8L2NvZGU+IHRvIHRlc3QgdGhlIDxjb2RlPnJvbGw8L2NvZGU+IG1ldGhvZDsKKyAgICAgKiAgICAgICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IG9yIDxjb2RlPkFERDwvY29kZT4gdG8gdGVzdCB0aGUgPGNvZGU+YWRkPC9jb2RlIG1ldGhvZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvUm9sbEFkZChib29sZWFuIHJvbGwsIENhbGVuZGFyIGNhbCwgaW50W11bXSB0ZXN0cykKKyAgICB7CisgICAgICAgIFN0cmluZyBuYW1lID0gcm9sbCA/ICJyb2xsaW5nIiA6ICJhZGRpbmciOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50W10gdGVzdCA9IHRlc3RzW2ldOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChjYWwgaW5zdGFuY2VvZiBDaGluZXNlQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIHRlc3RbMF0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIHRlc3RbMV0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCB0ZXN0WzJdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLnNldCh0ZXN0WzBdLCB0ZXN0WzFdLCB0ZXN0WzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvdWJsZSBkYXkwID0gZ2V0SnVsaWFuRGF5KGNhbCk7CisgICAgICAgICAgICBpZiAocm9sbCkgeworICAgICAgICAgICAgICAgIGNhbC5yb2xsKHRlc3RbM10sIHRlc3RbNF0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKHRlc3RbM10sIHRlc3RbNF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHkgPSBjYWwuZ2V0KGNhbCBpbnN0YW5jZW9mIENoaW5lc2VDYWxlbmRhciA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRVhURU5ERURfWUVBUiA6IFlFQVIpOworICAgICAgICAgICAgaWYgKHkgIT0gdGVzdFs1XSB8fCBjYWwuZ2V0KE1PTlRIKSAhPSB0ZXN0WzZdCisgICAgICAgICAgICAgICAgICAgIHx8IGNhbC5nZXQoREFURSkgIT0gdGVzdFs3XSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG5hbWUgKyAiICIrIHltZFRvU3RyaW5nKHRlc3RbMF0sIHRlc3RbMV0sIHRlc3RbMl0pCisgICAgICAgICAgICAgICAgICAgICsgIiAoIiArIGRheTAgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiICIgKyBGSUVMRF9OQU1FW3Rlc3RbM11dICsgIiBieSAiICsgdGVzdFs0XQorICAgICAgICAgICAgICAgICAgICArICI6IGV4cGVjdGVkICIgKyB5bWRUb1N0cmluZyh0ZXN0WzVdLCB0ZXN0WzZdLCB0ZXN0WzddKQorICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgbmFtZSArICIgIisgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXSwgdGVzdFsyXSkKKyAgICAgICAgICAgICAgICAgICAgKyAiICgiICsgZGF5MCArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgIiArIEZJRUxEX05BTUVbdGVzdFszXV0gKyAiIGJ5ICIgKyB0ZXN0WzRdCisgICAgICAgICAgICAgICAgICAgICsgIjogZ290ICIgKyB5bWRUb1N0cmluZyhjYWwpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZ1bmN0aW9ucyBnZXRYeHhNaW5pbXVtKCkgYW5kIGdldFh4eE1heGltdW0oKSBieSBtYXJjaGluZyBhCisgICAgICogdGVzdCBjYWxlbmRhciAnY2FsJyB0aHJvdWdoICdudW1iZXJPZkRheXMnIHNlcXVlbnRpYWwgZGF5cyBzdGFydGluZworICAgICAqIHdpdGggJ3N0YXJ0RGF0ZScuICBGb3IgZWFjaCBkYXRlLCByZWFkIGEgZmllbGQgdmFsdWUgYWxvbmcgd2l0aCBpdHMKKyAgICAgKiByZXBvcnRlZCBhY3R1YWwgbWluaW11bSBhbmQgYWN0dWFsIG1heGltdW0uICBUaGVzZSB2YWx1ZXMgYXJlCisgICAgICogY2hlY2tlZCBhZ2FpbnN0IG9uZSBhbm90aGVyIGFzIHdlbGwgYXMgYWdhaW5zdCBnZXRNaW5pbXVtKCksCisgICAgICogZ2V0R3JlYXRlc3RNaW5pbXVtKCksIGdldExlYXN0TWF4aW11bSgpLCBhbmQgZ2V0TWF4aW11bSgpLiAgV2UKKyAgICAgKiBleHBlY3QgdG8gc2VlOgorICAgICAqCisgICAgICogMS4gbWluaW11bSA8PSBhY3R1YWxNaW5pbXVtIDw9IGdyZWF0ZXN0TWluaW11bSA8PQorICAgICAqICAgIGxlYXN0TWF4aW11bSA8PSBhY3R1YWxNYXhpbXVtIDw9IG1heGltdW0KKyAgICAgKgorICAgICAqIDIuIGFjdHVhbE1pbmltdW0gPD0gdmFsdWUgPD0gYWN0dWFsTWF4aW11bQorICAgICAqCisgICAgICogTm90ZTogSW4gYWRkaXRpb24gdG8gb3V0cmlnaHQgZmFpbHVyZXMsIHRoaXMgdGVzdCByZXBvcnRzIHNvbWUKKyAgICAgKiByZXN1bHRzIGFzIHdhcm5pbmdzLiAgVGhlc2UgYXJlIG5vdCBnZW5lcmFsbHkgb2YgY29uY2VybiwgYnV0IHRoZXkKKyAgICAgKiBzaG91bGQgYmUgZXZhbHVhdGVkIGJ5IGEgaHVtYW4uICBUbyBzZWUgdGhlc2UsIHJ1biB0aGlzIHRlc3QgaW4KKyAgICAgKiB2ZXJib3NlIG1vZGUuCisgICAgICogQHBhcmFtIGNhbCB0aGUgY2FsZW5kYXIgdG8gYmUgdGVzdGVkCisgICAgICogQHBhcmFtIGZpZWxkc1RvVGVzdCBhbiBhcnJheSBvZiBmaWVsZCB2YWx1ZXMgdG8gYmUgdGVzdGVkLCBlLmcuLCBuZXcKKyAgICAgKiBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5EQVlfT0ZfTU9OVEggfS4gIEl0IG9ubHkgbWFrZXMKKyAgICAgKiBzZW5zZSB0byB0ZXN0IHRoZSBkYXkgZmllbGRzOyB0aGUgdGltZSBmaWVsZHMgYXJlIG5vdCB0ZXN0ZWQgYnkgdGhpcworICAgICAqIG1ldGhvZC4gIElmIG51bGwsIHRoZW4gdGVzdCBhbGwgc3RhbmRhcmQgZmllbGRzLgorICAgICAqIEBwYXJhbSBzdGFydERhdGUgdGhlIGZpcnN0IGRhdGUgdG8gdGVzdAorICAgICAqIEBwYXJhbSB0ZXN0RHVyYXRpb24gaWYgcG9zaXRpdmUsIHRoZSBudW1iZXIgb2YgZGF5cyB0byBiZSB0ZXN0ZWQuCisgICAgICogSWYgbmVnYXRpdmUsIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byBydW4gdGhlIHRlc3QuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZG9MaW1pdHNUZXN0KENhbGVuZGFyIGNhbCwgaW50W10gZmllbGRzVG9UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlIHN0YXJ0RGF0ZSwgaW50IHRlc3REdXJhdGlvbikgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBncmVnID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGdyZWcuc2V0VGltZShzdGFydERhdGUpOworICAgICAgICBsb2dsbigiU3RhcnQ6ICIgKyBzdGFydERhdGUpOworCisgICAgICAgIGlmIChmaWVsZHNUb1Rlc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgZmllbGRzVG9UZXN0ID0gbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5FUkEsIENhbGVuZGFyLllFQVIsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgIENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIENhbGVuZGFyLkRBWV9PRl9ZRUFSLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCBDYWxlbmRhci5ZRUFSX1dPWSwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5FWFRFTkRFRF9ZRUFSCisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgLy8gS2VlcCBhIHJlY29yZCBvZiBtaW5pbWEgYW5kIG1heGltYSB0aGF0IHdlIGFjdHVhbGx5IHNlZS4KKyAgICAgICAgLy8gVGhlc2UgYXJlIGtlcHQgaW4gYW4gYXJyYXkgb2YgYXJyYXlzIG9mIGhhc2hlcy4KKyAgICAgICAgSGFzaHRhYmxlW11bXSBsaW1pdHMgPSBuZXcgSGFzaHRhYmxlW2ZpZWxkc1RvVGVzdC5sZW5ndGhdWzJdOworICAgICAgICBPYmplY3QgbnViID0gbmV3IE9iamVjdCgpOyAvLyBNZWFuaW5nbGVzcyBwbGFjZWhvbGRlcgorCisgICAgICAgIC8vIFRoaXMgdGVzdCBjYW4gcnVuIGZvciBhIGxvbmcgdGltZTsgc2hvdyBwcm9ncmVzcy4KKyAgICAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbG9uZyBtYXJrID0gbWlsbGlzICsgNTAwMDsgLy8gNSBzZWMKKyAgICAgICAgbWlsbGlzIC09IHRlc3REdXJhdGlvbiAqIDEwMDA7IC8vIHN0b3AgdGltZSBpZiB0ZXN0RHVyYXRpb248MAorCisgICAgICAgIGZvciAoaW50IGk9MDsKKyAgICAgICAgICAgICB0ZXN0RHVyYXRpb24+MCA/IGk8dGVzdER1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTxtaWxsaXM7CisgICAgICAgICAgICAgKytpKSB7CisgICAgICAgICAgICBpZiAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgPj0gbWFyaykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIoIiArIGkgKyAiIGRheXMpIik7CisgICAgICAgICAgICAgICAgbWFyayArPSA1MDAwOyAvLyA1IHNlYworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhncmVnLmdldFRpbWVJbk1pbGxpcygpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHNUb1Rlc3QubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpbnQgZiA9IGZpZWxkc1RvVGVzdFtqXTsKKyAgICAgICAgICAgICAgICBpbnQgdiA9IGNhbC5nZXQoZik7CisgICAgICAgICAgICAgICAgaW50IG1pbkFjdHVhbCA9IGNhbC5nZXRBY3R1YWxNaW5pbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtYXhBY3R1YWwgPSBjYWwuZ2V0QWN0dWFsTWF4aW11bShmKTsKKyAgICAgICAgICAgICAgICBpbnQgbWluTG93ID0gY2FsLmdldE1pbmltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IG1pbkhpZ2ggPSBjYWwuZ2V0R3JlYXRlc3RNaW5pbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtYXhMb3cgPSBjYWwuZ2V0TGVhc3RNYXhpbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtYXhIaWdoID0gY2FsLmdldE1heGltdW0oZik7CisKKyAgICAgICAgICAgICAgICAvLyBGZXRjaCB0aGUgaGFzaCBmb3IgdGhpcyBmaWVsZCBhbmQga2VlcCB0cmFjayBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBtaW5pbWEgYW5kIG1heGltYS4KKyAgICAgICAgICAgICAgICBIYXNodGFibGVbXSBoID0gbGltaXRzW2pdOworICAgICAgICAgICAgICAgIGlmIChoWzBdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaFswXSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgICAgICAgICAgaFsxXSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaFswXS5wdXQobmV3IEludGVnZXIobWluQWN0dWFsKSwgbnViKTsKKyAgICAgICAgICAgICAgICBoWzFdLnB1dChuZXcgSW50ZWdlcihtYXhBY3R1YWwpLCBudWIpOworCisgICAgICAgICAgICAgICAgaWYgKG1pbkFjdHVhbCA8IG1pbkxvdyB8fCBtaW5BY3R1YWwgPiBtaW5IaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgeW1kVG9TdHJpbmcoY2FsKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgUmFuZ2UgZm9yIG1pbiBvZiAiICsgRklFTERfTkFNRVtmXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICI9IiArIG1pbkxvdyArICIuLiIgKyBtaW5IaWdoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgYWN0dWFsX21pbj0iICsgbWluQWN0dWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1heEFjdHVhbCA8IG1heExvdyB8fCBtYXhBY3R1YWwgPiBtYXhIaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgeW1kVG9TdHJpbmcoY2FsKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgUmFuZ2UgZm9yIG1heCBvZiAiICsgRklFTERfTkFNRVtmXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICI9IiArIG1heExvdyArICIuLiIgKyBtYXhIaWdoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgYWN0dWFsX21heD0iICsgbWF4QWN0dWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHYgPCBtaW5BY3R1YWwgfHwgdiA+IG1heEFjdHVhbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHltZFRvU3RyaW5nKGNhbCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyBGSUVMRF9OQU1FW2ZdICsgIj0iICsgdiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGFjdHVhbCByYW5nZT0iICsgbWluQWN0dWFsICsgIi4uIiArIG1heEFjdHVhbCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGFsbG93ZWQ9KCIgKyBtaW5Mb3cgKyAiLi4iICsgbWluSGlnaCArICIpLi4oIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1heExvdyArICIuLiIgKyBtYXhIaWdoICsgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBncmVnLmFkZChDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBhY3R1YWwgbWF4aW1hIGFuZCBtaW5pbWEgc2VlbiBhZ2FpbnN0IHJhbmdlcyByZXR1cm5lZAorICAgICAgICAvLyBieSBBUEkuCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHNUb1Rlc3QubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIGludCBmID0gZmllbGRzVG9UZXN0W2pdOworICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoRklFTERfTkFNRVtmXSk7CisgICAgICAgICAgICBIYXNodGFibGVbXSBoID0gbGltaXRzW2pdOworICAgICAgICAgICAgYm9vbGVhbiBmdWxsUmFuZ2VTZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazwyOyArK2spIHsKKyAgICAgICAgICAgICAgICBpbnQgcmFuZ2VMb3cgPSAoaz09MCkgPworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0TWluaW11bShmKSA6IGNhbC5nZXRMZWFzdE1heGltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IHJhbmdlSGlnaCA9IChrPT0wKSA/CisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXRHcmVhdGVzdE1pbmltdW0oZikgOiBjYWwuZ2V0TWF4aW11bShmKTsKKyAgICAgICAgICAgICAgICAvLyBJZiBlaXRoZXIgdGhlIHRvcCBvZiB0aGUgcmFuZ2Ugb3IgdGhlIGJvdHRvbSB3YXMgbmV2ZXIKKyAgICAgICAgICAgICAgICAvLyBzZWVuLCB0aGVuIHRoZXJlIG1heSBiZSBhIHByb2JsZW0uCisgICAgICAgICAgICAgICAgaWYgKGhba10uZ2V0KG5ldyBJbnRlZ2VyKHJhbmdlTG93KSkgPT0gbnVsbCB8fAorICAgICAgICAgICAgICAgICAgICBoW2tdLmdldChuZXcgSW50ZWdlcihyYW5nZUhpZ2gpKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZ1bGxSYW5nZVNlZW4gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChrPT0wID8gIiBtaW5pbWEgc2Vlbj0oIiA6ICI7IG1heGltYSBzZWVuPSgiKTsKKyAgICAgICAgICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGU9aFtrXS5rZXlzKCk7IGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdiA9ICgoSW50ZWdlcikgZS5uZXh0RWxlbWVudCgpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIiArIHYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIpIHJhbmdlPSIgKyByYW5nZUxvdyArICIuLiIgKyByYW5nZUhpZ2gpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZ1bGxSYW5nZVNlZW4pIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgbWF5IG9yIG1heSBub3QgYmUgYW4gZXJyb3IgLS0gaWYgdGhlIHJhbmdlIG9mIGRhdGVzCisgICAgICAgICAgICAgICAgLy8gd2Ugc2NhbiBvdmVyIGRvZXNuJ3QgaGFwcGVuIHRvIGNvbnRhaW4gYSBtaW5pbXVtIG9yCisgICAgICAgICAgICAgICAgLy8gbWF4aW11bSwgaXQgZG9lc24ndCBtZWFuIHNvbWUgb3RoZXIgcmFuZ2Ugd29uJ3QuCisgICAgICAgICAgICAgICAgbG9nbG4oIldhcm5pbmc6ICIgKyBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiRW5kOiAiICsgZ3JlZy5nZXRUaW1lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgeWVhcixtb250aCxkYXkgdmFsdWVzIHRvIHRoZSBmb3JtICJ5ZWFyL21vbnRoL2RheSIuCisgICAgICogT24gaW5wdXQgdGhlIG1vbnRoIHZhbHVlIGlzIHplcm8tYmFzZWQsIGJ1dCBpbiB0aGUgcmVzdWx0IHN0cmluZyBpdCBpcyBvbmUtYmFzZWQuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgeW1kVG9TdHJpbmcoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkgeworICAgICAgICByZXR1cm4gIiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZGF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgeWVhcixtb250aCxkYXkgdmFsdWVzIHRvIHRoZSBmb3JtICJ5ZWFyL21vbnRoL2RheSIuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgeW1kVG9TdHJpbmcoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIGRvdWJsZSBkYXkgPSBnZXRKdWxpYW5EYXkoY2FsKTsKKyAgICAgICAgaWYgKGNhbCBpbnN0YW5jZW9mIENoaW5lc2VDYWxlbmRhcikgeworICAgICAgICAgICAgcmV0dXJuICIiICsgY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsKKyAgICAgICAgICAgICAgICAoY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCk9PTE/IihsZWFwKSI6IiIpICsgIi8iICsKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsgIiAoIiArIGRheSArICIpIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geW1kVG9TdHJpbmcoY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSwgY2FsLmdldChEQVRFKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKCIgKyBkYXkgKyAiKSI7CisgICAgfQorCisgICAgc3RhdGljIGRvdWJsZSBnZXRKdWxpYW5EYXkoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIHJldHVybiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgLSBKVUxJQU5fRVBPQ0gpIC8gREFZX01TOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgREFZX01TID0gMjQqNjAqNjAqMTAwMC4wOworICAgIHN0YXRpYyBmaW5hbCBsb25nIEpVTElBTl9FUE9DSCA9IC0yMTA4NjY3NjAwMDAwMDBMOyAgIC8vIDEvMS80NzEzIEJDIDEyOjAwCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3Yjc2NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3QuamF2YQpAQCAtMCwwICsxLDYwMiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogVGVzdCBvZiBDaGluZXNlQ2FsZW5kYXIuCisgKgorICogTGVhcCBtb250aHMgaW4gdGhpcyBjZW50dXJ5OgorICogV2VkIE1heSAyMyAyMDAxID0gNDYzOC0wNCotMDEsIFllYXIgMTgsIEN5Y2xlIDc4CisgKiBTdW4gTWFyIDIxIDIwMDQgPSA0NjQxLTAyKi0wMSwgWWVhciAyMSwgQ3ljbGUgNzgKKyAqIFRodSBBdWcgMjQgMjAwNiA9IDQ2NDMtMDcqLTAxLCBZZWFyIDIzLCBDeWNsZSA3OAorICogVHVlIEp1biAyMyAyMDA5ID0gNDY0Ni0wNSotMDEsIFllYXIgMjYsIEN5Y2xlIDc4CisgKiBNb24gTWF5IDIxIDIwMTIgPSA0NjQ5LTA0Ki0wMSwgWWVhciAyOSwgQ3ljbGUgNzgKKyAqIEZyaSBPY3QgMjQgMjAxNCA9IDQ2NTEtMDkqLTAxLCBZZWFyIDMxLCBDeWNsZSA3OAorICogU3VuIEp1bCAyMyAyMDE3ID0gNDY1NC0wNiotMDEsIFllYXIgMzQsIEN5Y2xlIDc4CisgKiBTYXQgTWF5IDIzIDIwMjAgPSA0NjU3LTA0Ki0wMSwgWWVhciAzNywgQ3ljbGUgNzgKKyAqIFdlZCBNYXIgMjIgMjAyMyA9IDQ2NjAtMDIqLTAxLCBZZWFyIDQwLCBDeWNsZSA3OAorICogRnJpIEp1bCAyNSAyMDI1ID0gNDY2Mi0wNiotMDEsIFllYXIgNDIsIEN5Y2xlIDc4CisgKiBGcmkgSnVuIDIzIDIwMjggPSA0NjY1LTA1Ki0wMSwgWWVhciA0NSwgQ3ljbGUgNzgKKyAqIFR1ZSBBcHIgMjIgMjAzMSA9IDQ2NjgtMDMqLTAxLCBZZWFyIDQ4LCBDeWNsZSA3OAorICogVGh1IERlYyAyMiAyMDMzID0gNDY3MC0xMSotMDEsIFllYXIgNTAsIEN5Y2xlIDc4CisgKiBXZWQgSnVsIDIzIDIwMzYgPSA0NjczLTA2Ki0wMSwgWWVhciA1MywgQ3ljbGUgNzgKKyAqIFdlZCBKdW4gMjIgMjAzOSA9IDQ2NzYtMDUqLTAxLCBZZWFyIDU2LCBDeWNsZSA3OAorICogU2F0IE1hciAyMiAyMDQyID0gNDY3OS0wMiotMDEsIFllYXIgNTksIEN5Y2xlIDc4CisgKiBUdWUgQXVnIDIzIDIwNDQgPSA0NjgxLTA3Ki0wMSwgWWVhciAwMSwgQ3ljbGUgNzkKKyAqIFN1biBKdW4gMjMgMjA0NyA9IDQ2ODQtMDUqLTAxLCBZZWFyIDA0LCBDeWNsZSA3OQorICogVGh1IEFwciAyMSAyMDUwID0gNDY4Ny0wMyotMDEsIFllYXIgMDcsIEN5Y2xlIDc5CisgKiBNb24gU2VwIDIzIDIwNTIgPSA0Njg5LTA4Ki0wMSwgWWVhciAwOSwgQ3ljbGUgNzkKKyAqIFNhdCBKdWwgMjQgMjA1NSA9IDQ2OTItMDYqLTAxLCBZZWFyIDEyLCBDeWNsZSA3OQorICogV2VkIE1heSAyMiAyMDU4ID0gNDY5NS0wNCotMDEsIFllYXIgMTUsIEN5Y2xlIDc5CisgKiBXZWQgQXByIDIwIDIwNjEgPSA0Njk4LTAzKi0wMSwgWWVhciAxOCwgQ3ljbGUgNzkKKyAqIEZyaSBBdWcgMjQgMjA2MyA9IDQ3MDAtMDcqLTAxLCBZZWFyIDIwLCBDeWNsZSA3OQorICogV2VkIEp1biAyMyAyMDY2ID0gNDcwMy0wNSotMDEsIFllYXIgMjMsIEN5Y2xlIDc5CisgKiBUdWUgTWF5IDIxIDIwNjkgPSA0NzA2LTA0Ki0wMSwgWWVhciAyNiwgQ3ljbGUgNzkKKyAqIFRodSBTZXAgMjQgMjA3MSA9IDQ3MDgtMDgqLTAxLCBZZWFyIDI4LCBDeWNsZSA3OQorICogVHVlIEp1bCAyNCAyMDc0ID0gNDcxMS0wNiotMDEsIFllYXIgMzEsIEN5Y2xlIDc5CisgKiBTYXQgTWF5IDIyIDIwNzcgPSA0NzE0LTA0Ki0wMSwgWWVhciAzNCwgQ3ljbGUgNzkKKyAqIFNhdCBBcHIgMjAgMjA4MCA9IDQ3MTctMDMqLTAxLCBZZWFyIDM3LCBDeWNsZSA3OQorICogTW9uIEF1ZyAyNCAyMDgyID0gNDcxOS0wNyotMDEsIFllYXIgMzksIEN5Y2xlIDc5CisgKiBGcmkgSnVuIDIyIDIwODUgPSA0NzIyLTA1Ki0wMSwgWWVhciA0MiwgQ3ljbGUgNzkKKyAqIEZyaSBNYXkgMjEgMjA4OCA9IDQ3MjUtMDQqLTAxLCBZZWFyIDQ1LCBDeWNsZSA3OQorICogU3VuIFNlcCAyNCAyMDkwID0gNDcyNy0wOCotMDEsIFllYXIgNDcsIEN5Y2xlIDc5CisgKiBUaHUgSnVsIDIzIDIwOTMgPSA0NzMwLTA2Ki0wMSwgWWVhciA1MCwgQ3ljbGUgNzkKKyAqIFR1ZSBNYXkgMjIgMjA5NiA9IDQ3MzMtMDQqLTAxLCBZZWFyIDUzLCBDeWNsZSA3OQorICogU3VuIE1hciAyMiAyMDk5ID0gNDczNi0wMiotMDEsIFllYXIgNTYsIEN5Y2xlIDc5CisgKi8KK3B1YmxpYyBjbGFzcyBDaGluZXNlVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENoaW5lc2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgYmFzaWMgbWFwcGluZyB0byBhbmQgZnJvbSBHcmVnb3JpYW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1hcHBpbmcoKSB7CisKKyAgICAgICAgZmluYWwgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIChOb3RlOiBtb250aHMgYXJlIDEtYmFzZWQpCisgICAgICAgICAgICAvLyBHcmVnb3JpYW4gICAgQ2hpbmVzZQorICAgICAgICAgICAgMTk2NCwgIDksICA0LCAgIDQ2MDEsICA3LDAsIDI4LAorICAgICAgICAgICAgMTk2NCwgIDksICA1LCAgIDQ2MDEsICA3LDAsIDI5LAorICAgICAgICAgICAgMTk2NCwgIDksICA2LCAgIDQ2MDEsICA4LDAsICAxLAorICAgICAgICAgICAgMTk2NCwgIDksICA3LCAgIDQ2MDEsICA4LDAsICAyLAorICAgICAgICAgICAgMTk2MSwgMTIsIDI1LCAgIDQ1OTgsIDExLDAsIDE4LAorICAgICAgICAgICAgMTk5OSwgIDYsICA0LCAgIDQ2MzYsICA0LDAsIDIxLAorICAgICAgICAgICAgCisgICAgICAgICAgICAxOTkwLCAgNSwgMjMsICAgNDYyNywgIDQsMCwgMjksCisgICAgICAgICAgICAxOTkwLCAgNSwgMjQsICAgNDYyNywgIDUsMCwgIDEsCisgICAgICAgICAgICAxOTkwLCAgNiwgMjIsICAgNDYyNywgIDUsMCwgMzAsCisgICAgICAgICAgICAxOTkwLCAgNiwgMjMsICAgNDYyNywgIDUsMSwgIDEsCisgICAgICAgICAgICAxOTkwLCAgNywgMjAsICAgNDYyNywgIDUsMSwgMjgsCisgICAgICAgICAgICAxOTkwLCAgNywgMjEsICAgNDYyNywgIDUsMSwgMjksCisgICAgICAgICAgICAxOTkwLCAgNywgMjIsICAgNDYyNywgIDYsMCwgIDEsCisgICAgICAgIH07CisKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBsb2dsbigiR3JlZ29yaWFuIC0+IENoaW5lc2UiKTsKKyAgICAgICAgLy9qYXZhLnV0aWwuQ2FsZW5kYXIgZ3JlZ28gPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgQ2FsZW5kYXIgZ3JlZ28gPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBncmVnby5jbGVhcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgZ3JlZ28uc2V0KERBVEFbaSsrXSwgREFUQVtpKytdLTEsIERBVEFbaSsrXSk7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBncmVnby5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIGludCB5ID0gY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgICAgIGludCBtID0gY2FsLmdldChDYWxlbmRhci5NT05USCkrMTsgLy8gMC1iYXNlZCAtPiAxLWJhc2VkCisgICAgICAgICAgICBpbnQgTCA9IGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpOworICAgICAgICAgICAgaW50IGQgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICBpbnQgeUUgPSBEQVRBW2krK107IC8vIEV4cGVjdGVkIHksIG0sIGlzTGVhcE1vbnRoLCBkCisgICAgICAgICAgICBpbnQgbUUgPSBEQVRBW2krK107IC8vIDEtYmFzZWQKKyAgICAgICAgICAgIGludCBMRSA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBkRSA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGRhdGUgKyAiIC0+ICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZCh5ICsgIi8iICsgbSArIChMPT0xPyIobGVhcCkiOiIiKSArICIvIiArIGQpOworICAgICAgICAgICAgaWYgKHkgPT0geUUgJiYgbSA9PSBtRSAmJiBMID09IExFICYmIGQgPT0gZEUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgYnVmLnRvU3RyaW5nKCkgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5RSArICIvIiArIG1FICsgKExFPT0xPyIobGVhcCkiOiIiKSArICIvIiArIGRFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJDaGluZXNlIC0+IEdyZWdvcmlhbiIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgZ3JlZ28uc2V0KERBVEFbaSsrXSwgREFUQVtpKytdLTEsIERBVEFbaSsrXSk7CisgICAgICAgICAgICBEYXRlIGRleHAgPSBncmVnby5nZXRUaW1lKCk7CisgICAgICAgICAgICBpbnQgY3llYXIgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgY21vbnRoID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGNpc2xlYXBtb250aCA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBjZGF5b2Ztb250aCA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSLCBjeWVhcik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBjbW9udGgtMSk7CisgICAgICAgICAgICBjYWwuc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCBjaXNsZWFwbW9udGgpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGNkYXlvZm1vbnRoKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZChjeWVhciArICIvIiArIGNtb250aCArCisgICAgICAgICAgICAgICAgICAgICAgIChjaXNsZWFwbW9udGg9PTE/IihsZWFwKSI6IiIpICsgIi8iICsgY2RheW9mbW9udGgpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiIC0+ICIgKyBkYXRlKTsKKyAgICAgICAgICAgIGlmIChkYXRlLmVxdWFscyhkZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBidWYudG9TdHJpbmcoKSArICIsIGV4cGVjdGVkICIgKyBkZXhwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBubyBHcmVnb3JpYW4gZGF0ZXMgbWFwIHRvIENoaW5lc2UgMS1iYXNlZCBkYXkgb2YKKyAgICAgKiBtb250aCB6ZXJvLiAgVGhpcyB3YXMgYSBwcm9ibGVtIHdpdGggc29tZSBvZiB0aGUgYXN0cm9ub21pY2FsCisgICAgICogbmV3IG1vb24gZGV0ZXJtaW5hdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFplcm9ET00oKSB7CisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk4OSwgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxKTsKKyAgICAgICAgbG9nbG4oIlN0YXJ0OiAiICsgZ3JlZy5nZXRUaW1lKCkpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8MTAwMDsgKytpKSB7CisgICAgICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKGdyZWcuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBncmVnLmdldFRpbWUoKSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCkgKworICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKT09MT8iKGxlYXApIjoiIikgKworICAgICAgICAgICAgICAgICAgICAgICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBncmVnLmFkZChDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkVuZDogIiArIGdyZWcuZ2V0VGltZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IG1pbmltdW0gYW5kIG1heGltdW0gZnVuY3Rpb25zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMaW1pdHMoKSB7CisgICAgICAgIC8vIFRoZSBudW1iZXIgb2YgZGF5cyBhbmQgdGhlIHN0YXJ0IGRhdGUgY2FuIGJlIGFkanVzdGVkCisgICAgICAgIC8vIGFyYml0cmFyaWx5IHRvIGVpdGhlciBzcGVlZCB1cCB0aGUgdGVzdCBvciBtYWtlIGl0IG1vcmUKKyAgICAgICAgLy8gdGhvcm91Z2gsIGJ1dCB0cnkgdG8gdGVzdCBhdCBsZWFzdCBhIGZ1bGwgeWVhciwgcHJlZmVyYWJseSBhCisgICAgICAgIC8vIGZ1bGwgbm9uLWxlYXAgYW5kIGEgZnVsbCBsZWFwIHllYXIuCisKKyAgICAgICAgLy8gRmluYWwgcGFyYW1ldGVyIGlzIGVpdGhlciBudW1iZXIgb2YgZGF5cywgaWYgPiAwLCBvciB0ZXN0CisgICAgICAgIC8vIGR1cmF0aW9uIGluIHNlY29uZHMsIGlmIDwgMC4KKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTg5LCBDYWxlbmRhci5OT1ZFTUJFUiwgMSk7CisgICAgICAgIGRvTGltaXRzVGVzdChuZXcgQ2hpbmVzZUNhbGVuZGFyKCksIG51bGwsIHRlbXBjYWwuZ2V0VGltZSgpLCAtMTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biB0aHJvdWdoIHNldmVyYWwgc3RhbmRhcmQgdGVzdHMgZnJvbSBEZXJzaG93aXR6ICYgUmVpbmdvbGQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEp1bGlhbkRheU1hcHBpbmcoKSB7CisKKyAgICAgICAgZmluYWwgVGVzdENhc2VbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBGcm9tIERlcnNob3dpdHogJiBSZWluZ29sZCwgIkNhbGVuZHJpY2FsIENhbGN1bGF0aW9ucyIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gVGhlIG1vbnRocyBpbiB0aGlzIHRhYmxlIGFyZSAxLWJhc2VkIHJhdGhlciB0aGFuIDAtYmFzZWQuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gKiBGYWlsaW5nIGZpZWxkcy0+bWlsbGlzCisgICAgICAgICAgICAvLyAqKiBNaWxsaXMtPmZpZWxkcyBnaXZlcyAwLWJhc2VkIG1vbnRoIC0xCisgICAgICAgICAgICAvLyBUaGVzZSBmYWlsdXJlcyB3ZXJlIGZpeGVkIGJ5IGNoYW5naW5nIHRoZSBzdGFydCBzZWFyY2ggZGF0ZQorICAgICAgICAgICAgLy8gZm9yIHRoZSB3aW50ZXIgc29sc3RpY2UgZnJvbSBEZWMgMTUgdG8gRGVjIDEuCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgSnVsaWFuIERheSAgIEVyYSAgWWVhciBNb250aCAgTGVhcCAgIERPTSBXa0RheQorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxNTA3MjMxLjUsICAgMzUsICAgMTEsICAgIDYsIGZhbHNlLCAgIDEyLCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTY2MDAzNy41LCAgIDQyLCAgICA5LCAgIDEwLCBmYWxzZSwgICAyNywgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE3NDY4OTMuNSwgICA0NiwgICAgNywgICAgOCwgZmFsc2UsICAgIDQsICBXRUQpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxNzcwNjQxLjUsICAgNDcsICAgMTIsICAgIDgsIGZhbHNlLCAgICA5LCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTg5MjczMS41LCAgIDUyLCAgIDQ2LCAgIDExLCBmYWxzZSwgICAyMCwgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE5MzE1NzkuNSwgICA1NCwgICAzMywgICAgNCwgZmFsc2UsICAgIDUsICBNT04pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxOTc0ODUxLjUsICAgNTYsICAgMzEsICAgMTAsIGZhbHNlLCAgIDE1LCAgU0FUKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjA5MTE2NC41LCAgIDYxLCAgIDUwLCAgICAzLCBmYWxzZSwgICAgNywgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxMjE1MDkuNSwgICA2MywgICAxMywgICAgNCwgZmFsc2UsICAgMjQsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMTU1Nzc5LjUsICAgNjQsICAgNDcsICAgIDIsIGZhbHNlLCAgICA5LCAgRlJJKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjE3NDAyOS41LCAgIDY1LCAgIDM3LCAgICAyLCBmYWxzZSwgICAgOSwgIFNBVCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxOTE1ODQuNSwgICA2NiwgICAyNSwgICAgMiwgZmFsc2UsICAgMjMsICBGUkkpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMTk1MjYxLjUsICAgNjYsICAgMzUsICAgIDMsIGZhbHNlLCAgICA5LCAgU1VOKSwgLy8qCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIyMjkyNzQuNSwgICA2OCwgICAgOCwgICAgNSwgZmFsc2UsICAgIDIsICBTVU4pLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjI0NTU4MC41LCAgIDY4LCAgIDUzLCAgICAxLCBmYWxzZSwgICAgOCwgIFdFRCksIC8vKioKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjI2NjEwMC41LCAgIDY5LCAgIDQ5LCAgICAzLCBmYWxzZSwgICAgNCwgIFNBVCksIAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMjg4NTQyLjUsICAgNzAsICAgNTAsICAgIDgsIGZhbHNlLCAgICAyLCAgU0FUKSwgLy8qCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIyOTA5MDEuNSwgICA3MCwgICA1NywgICAgMSwgZmFsc2UsICAgMjksICBTQVQpLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjMyMzE0MC41LCAgIDcyLCAgIDI1LCAgICA0LCAgdHJ1ZSwgICAyMCwgIFdFRCksIC8vKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzM0ODQ4LjUsICAgNzIsICAgNTcsICAgIDYsIGZhbHNlLCAgICA1LCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjM0ODAyMC41LCAgIDczLCAgIDMzLCAgICA2LCBmYWxzZSwgICAgNiwgIEZSSSksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIzNjY5NzguNSwgICA3NCwgICAyNSwgICAgNSwgZmFsc2UsICAgIDUsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzg1NjQ4LjUsICAgNzUsICAgMTYsICAgIDYsIGZhbHNlLCAgIDEyLCAgTU9OKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjM5MjgyNS41LCAgIDc1LCAgIDM2LCAgICAyLCBmYWxzZSwgICAxMywgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MTYyMjMuNSwgICA3NiwgICA0MCwgICAgMywgZmFsc2UsICAgMjIsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDI1ODQ4LjUsICAgNzcsICAgIDYsICAgIDcsIGZhbHNlLCAgIDIxLCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQzMDI2Ni41LCAgIDc3LCAgIDE4LCAgICA4LCBmYWxzZSwgICAgOSwgIE1PTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MzA4MzMuNSwgICA3NywgICAyMCwgICAgMywgZmFsc2UsICAgMTUsICBNT04pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDMxMDA0LjUsICAgNzcsICAgMjAsICAgIDksIGZhbHNlLCAgICA5LCAgVEhVKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ0ODY5OC41LCAgIDc4LCAgICA5LCAgICAyLCBmYWxzZSwgICAxNCwgIFRVRSksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0NTAxMzguNSwgICA3OCwgICAxMywgICAgMSwgZmFsc2UsICAgIDcsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDY1NzM3LjUsICAgNzgsICAgNTUsICAgMTAsIGZhbHNlLCAgIDE0LCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ4NjA3Ni41LCAgIDc5LCAgIDUxLCAgICA2LCBmYWxzZSwgICAgNywgIFNVTiksCisKKyAgICAgICAgICAgIC8vIEFkZGl0aW9uYWwgdGVzdHMgbm90IGZyb20gRCZSCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0Njc0OTYuNSwgICA3OCwgICA2MCwgICAgOCwgZmFsc2UsICAgIDIsICBGUkkpLCAvLyB5ZWFyIDYwCisgICAgICAgIH07CisKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIGRvVGVzdENhc2VzKHRlc3RzLCBjYWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Rm9ybWF0KCkgeworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LkRFRkFVTFQsIERhdGVGb3JtYXQuREVGQVVMVCk7CisKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICAKKyAgICAgICAgRGF0ZVtdIERBVEEgPSBuZXcgRGF0ZVsyXTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuTUFZLCAyMik7CisgICAgICAgIERBVEFbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuTUFZLCAyMyk7CisgICAgICAgIERBVEFbMV0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgLy8gV2VkIE1heSAyMyAyMDAxID0gTW9udGggNChsZWFwKSwgRGF5IDEsIFllYXIgMTgsIEN5Y2xlIDc4CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KERBVEFbaV0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGUgPSBmbXQucGFyc2Uocyk7CisgICAgICAgICAgICAgICAgaWYgKGUuZXF1YWxzKERBVEFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIERBVEFbaV0gKyAiIC0+ICIgKyBzICsgIiAtPiAiICsgZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2ldICsgIiAtPiAiICsgcyArICIgLT4gIiArIGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBzICsgIiAtPiBwYXJzZSBmYWlsdXJlIGF0ICIgKyBlLmdldEVycm9yT2Zmc2V0KCkpOworICAgICAgICAgICAgICAgIGVycmxuKGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgSVNfTEVBUF9NT05USCBwYXJ0aWNpcGF0ZXMgaW4gZmllbGQgcmVzb2x1dGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzb2x1dGlvbigpIHsKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuREVGQVVMVCk7CisKKyAgICAgICAgLy8gTWF5IDIyIDIwMDEgPSB5NDYzOCBtNCBkMzAgZG95MTE5CisgICAgICAgIC8vIE1heSAyMyAyMDAxID0geTQ2MzggbTQqIGQxIGRveTEyMAorCisgICAgICAgIGZpbmFsIGludCBUSEVfWUVBUiA9IDQ2Mzg7CisgICAgICAgIGZpbmFsIGludCBFTkQgPSAtMTsKKworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgLy8gRm9ybWF0OgorICAgICAgICAgICAgLy8gKGZpZWxkLCB2YWx1ZSkrLCBFTkQsIGV4cC5tb250aCwgZXhwLmlzTGVhcE1vbnRoLCBleHAuRE9NCisgICAgICAgICAgICAvLyBOb3RlOiBleHAubW9udGggaXMgT05FLUJBU0VECisKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCBEQVlfT0ZfWUVBUiBvbmx5LCB0aGF0IHNob3VsZCBiZSB1c2VkCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSwKKyAgICAgICAgICAgIEVORCwKKyAgICAgICAgICAgIDEsMCwxLCAvLyBFeHBlY3QgMS0xCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCBNT05USCBvbmx5LCB0aGF0IHNob3VsZCBiZSB1c2VkCisgICAgICAgICAgICBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgMSwKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSwKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCAzLAorICAgICAgICAgICAgRU5ELAorICAgICAgICAgICAgNCwxLDEsIC8vIEV4cGVjdCA0Ki0xCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCB0aGUgRE9ZIGxhc3QsIHRoYXQgc2hvdWxkIHRha2UgcHJlY2VkZW5jZQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIDEsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAxLCAvLyBTaG91bGQgaWdub3JlCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxMjEsCisgICAgICAgICAgICBFTkQsCisgICAgICAgICAgICA0LDEsMiwgLy8gRXhwZWN0IDQqLTIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSSd2ZSBkaXNhYmxlZCB0aGlzIHRlc3QgYmVjYXVzZSBpdCBkb2Vzbid0IHdvcmsgdGhpcyB3YXksCisgICAgICAgICAgICAvLyBub3QgZXZlbiB3aXRoIGEgR3JlZ29yaWFuQ2FsZW5kYXIhICBNT05USCBhbG9uZSBpc24ndCBlbm91Z2gKKyAgICAgICAgICAgIC8vIHRvIHN1cGVyc2VkZSBEQVlfT0ZfWUVBUi4gIFNvbWUgb3RoZXIgbW9udGgtcmVsYXRlZCBmaWVsZCBpcworICAgICAgICAgICAgLy8gYWxzbyByZXF1aXJlZC4gLSBMaXUgMTEvMjgvMDAKKyAgICAgICAgICAgIC8vISAvLyBJZiB3ZSBzZXQgTU9OVEggbGFzdCwgdGhhdCBzaG91bGQgdGFrZSBwcmVjZWRlbmNlCisgICAgICAgICAgICAvLyEgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDEsCisgICAgICAgICAgICAvLyEgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxLAorICAgICAgICAgICAgLy8hIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCA1LCAvLyBTaG91bGQgaWdub3JlCisgICAgICAgICAgICAvLyEgQ2FsZW5kYXIuTU9OVEgsIDMsCisgICAgICAgICAgICAvLyEgRU5ELAorICAgICAgICAgICAgLy8hIDQsMSwxLCAvLyBFeHBlY3QgNCotMQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBJZiB3ZSBzZXQgSVNfTEVBUF9NT05USCBsYXN0LCB0aGF0IHNob3VsZCB0YWtlIHByZWNlZGVuY2UKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCAzLAorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxLAorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDUsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAxLAorICAgICAgICAgICAgRU5ELAorICAgICAgICAgICAgNCwxLDEsIC8vIEV4cGVjdCA0Ki0xCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSLCBUSEVfWUVBUik7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiRVhURU5ERURfWUVBUj0iICsgVEhFX1lFQVIpOworICAgICAgICAgICAgd2hpbGUgKERBVEFbaV0gIT0gRU5EKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldChEQVRBW2krK10sIERBVEFbaSsrXSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIgKyBmaWVsZE5hbWUoREFUQVtpLTJdKSArICI9IiArIERBVEFbaS0xXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2k7IC8vIFNraXAgb3ZlciBFTkQgbWFyaworICAgICAgICAgICAgaW50IGV4cE1vbnRoID0gREFUQVtpKytdLTE7CisgICAgICAgICAgICBpbnQgZXhwSXNMZWFwTW9udGggPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgZXhwRE9NID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICBpbnQgaXNMZWFwTW9udGggPSBjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKTsKKyAgICAgICAgICAgIGludCBkb20gPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICBpZiAoZXhwTW9udGggPT0gbW9udGggJiYgZXhwSXNMZWFwTW9udGggPT0gaXNMZWFwTW9udGggJiYKKyAgICAgICAgICAgICAgICBkb20gPT0gZXhwRE9NKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgYnVmICsgIiA9PiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIFRIRV9ZRUFSKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBleHBNb250aCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgZXhwSXNMZWFwTW9udGgpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCBleHBET00pOworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgYnVmICsgIiA9PiAiICsgcyArCisgICAgICAgICAgICAgICAgICAgICAgIj0iICsgKG1vbnRoKzEpICsgIiwiICsgaXNMZWFwTW9udGggKyAiLCIgKyBkb20gKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiPSIgKyAoZXhwTW9udGgrMSkgKyAiLCIgKyBleHBJc0xlYXBNb250aCArICIsIiArIGV4cERPTSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiBmaWVsZHMgdGhhdCBhcmUgb3V0IG9mIHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RPdXRPZlJhbmdlKCkgeworICAgICAgICBpbnRbXSBEQVRBID0gbmV3IGludFtdIHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgIE91dHB1dAorICAgICAgICAgICAgNDYzOCwgMTMsICAxLCAgIDQ2MzksICAxLCAgMSwKKyAgICAgICAgICAgIDQ2MzgsIDE4LCAgMSwgICA0NjM5LCAgNiwgIDEsCisgICAgICAgICAgICA0NjM5LCAgMCwgIDEsICAgNDYzOCwgMTIsICAxLAorICAgICAgICAgICAgNDYzOSwgLTYsICAxLCAgIDQ2MzgsICA2LCAgMSwKKyAgICAgICAgICAgIDQ2MzgsICAxLCAzMiwgICA0NjM4LCAgMiwgIDIsIC8vIDEtNDYzOCBoYXMgMzAgZGF5cworICAgICAgICAgICAgNDYzOCwgIDIsIC0xLCAgIDQ2MzgsICAxLCAyOSwKKyAgICAgICAgfTsKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGludCB5MSA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBtMSA9IERBVEFbaSsrXS0xOworICAgICAgICAgICAgaW50IGQxID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IHkyID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG0yID0gREFUQVtpKytdLTE7CisgICAgICAgICAgICBpbnQgZDIgPSBEQVRBW2krK107CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwgeTEpOworICAgICAgICAgICAgY2FsLnNldChNT05USCwgbTEpOworICAgICAgICAgICAgY2FsLnNldChEQVRFLCBkMSk7CisgICAgICAgICAgICBpbnQgeSA9IGNhbC5nZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUik7CisgICAgICAgICAgICBpbnQgbSA9IGNhbC5nZXQoTU9OVEgpOworICAgICAgICAgICAgaW50IGQgPSBjYWwuZ2V0KERBVEUpOworICAgICAgICAgICAgaWYgKHkhPXkyIHx8IG0hPW0yIHx8IGQhPWQyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyB5MSArICIvIiArIChtMSsxKSArICIvIiArIGQxICsgIiByZXNvbHZlcyB0byAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgeTIgKyAiLyIgKyAobTIrMSkgKyAiLyIgKyBkMik7CisgICAgICAgICAgICB9IGVsc2UgIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHkxICsgIi8iICsgKG0xKzEpICsgIi8iICsgZDEgKyAiIHJlc29sdmVzIHRvICIgKworICAgICAgICAgICAgICAgICAgICAgIHkgKyAiLyIgKyAobSsxKSArICIvIiArIGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgQ2hpbmVzZUNhbGVuZGFyLmFkZCgpLiAgVGhlIG9ubHkgcmVhbAorICAgICAqIG5hc3RpbmVzcyB3aXRoIHJvbGwgaXMgdGhlIE1PTlRIIGZpZWxkIGFyb3VuZCBsZWFwIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkKCkgeworICAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgICAgICAgLy8gTU9OVEhTIEFSRSAxLUJBU0VEIEhFUkUKKyAgICAgICAgICAgIC8vIGlucHV0ICAgICAgICAgICAgICAgYWRkICAgICAgICAgICBvdXRwdXQKKyAgICAgICAgICAgIC8vIHllYXIgIG1vbiAgICBkYXkgICAgZmllbGQgYW1vdW50ICB5ZWFyICBtb24gICAgZGF5CisgICAgICAgICAgICB7ICA0NjQyLCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDMsICAgNDY0MiwgICA2LDAsICAxNSB9LCAvLyBub3JtYWwKKyAgICAgICAgICAgIHsgIDQ2MzksICAxMiwwLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjQwLCAgIDEsMCwgIDE1IH0sIC8vIGFjcm9zcyB5ZWFyCisgICAgICAgICAgICB7ICA0NjQwLCAgIDEsMCwgIDE1LCAgIE1PTlRILCAgLTEsICAgNDYzOSwgIDEyLDAsICAxNSB9LCAvLyBhY3Jvc3MgeWVhcgorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgICAzLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDIsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDEsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA0LDEsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgICAyLCAgIDQ2MzgsICAgNSwwLCAgMzAgfSwgLy8gbm8gZG9tIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgICAzLCAgIDQ2MzgsICAgNiwwLCAgMjkgfSwgLy8gZG9tIHNob3VsZCBwaW4KKyAgICAgICAgfTsKKyAgICAgICAKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgZG9Sb2xsQWRkKEFERCwgY2FsLCB0ZXN0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgQ2hpbmVzZUNhbGVuZGFyLnJvbGwoKS4gIFRoZSBvbmx5IHJlYWwKKyAgICAgKiBuYXN0aW5lc3Mgd2l0aCByb2xsIGlzIHRoZSBNT05USCBmaWVsZCBhcm91bmQgbGVhcCBtb250aHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJvbGwoKSB7CisgICAgICAgIGludFtdW10gdGVzdHMgPSBuZXcgaW50W11bXSB7CisgICAgICAgICAgICAvLyBNT05USFMgQVJFIDEtQkFTRUQgSEVSRQorICAgICAgICAgICAgLy8gaW5wdXQgICAgICAgICAgICAgICBhZGQgICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8geWVhciAgbW9uICAgIGRheSAgICBmaWVsZCBhbW91bnQgIHllYXIgIG1vbiAgICBkYXkKKyAgICAgICAgICAgIHsgIDQ2NDIsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMywgICA0NjQyLCAgIDYsMCwgIDE1IH0sIC8vIG5vcm1hbAorICAgICAgICAgICAgeyAgNDY0MiwgICAzLDAsICAxNSwgICBNT05USCwgIDExLCAgIDQ2NDIsICAgMiwwLCAgMTUgfSwgLy8gbm9ybWFsCisgICAgICAgICAgICB7ICA0NjM5LCAgMTIsMCwgIDE1LCAgIE1PTlRILCAgIDEsICAgNDYzOSwgICAxLDAsICAxNSB9LCAvLyBhY3Jvc3MgeWVhcgorICAgICAgICAgICAgeyAgNDY0MCwgICAxLDAsICAxNSwgICBNT05USCwgIC0xLCAgIDQ2NDAsICAxMiwwLCAgMTUgfSwgLy8gYWNyb3NzIHllYXIKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMywgICA0NjM4LCAgIDUsMCwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgIDE2LCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDIsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAyOCwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNCwxLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDE1LCAgIE1PTlRILCAtMTIsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwxLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDUsMCwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDEsICAxNSwgICBNT05USCwgLTI1LCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA0LDEsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgIDE0LCAgIDQ2MzgsICAgNCwxLCAgMjkgfSwgLy8gZG9tIHNob3VsZCBwaW4KKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsICAxNSwgICA0NjM4LCAgIDUsMCwgIDMwIH0sIC8vIG5vIGRvbSBwaW4KKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsIC0xMCwgICA0NjM4LCAgIDYsMCwgIDI5IH0sIC8vIGRvbSBzaG91bGQgcGluCisgICAgICAgIH07CisgICAgICAgCisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIGRvUm9sbEFkZChST0xMLCBjYWwsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBkb1JvbGxBZGQoYm9vbGVhbiByb2xsLCBDaGluZXNlQ2FsZW5kYXIgY2FsLCBpbnRbXVtdIHRlc3RzKSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gcm9sbCA/ICJyb2xsaW5nIiA6ICJhZGRpbmciOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50W10gdGVzdCA9IHRlc3RzW2ldOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIHRlc3RbMF0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIHRlc3RbMV0tMSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgdGVzdFsyXSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIHRlc3RbM10pOworICAgICAgICAgICAgaWYgKHJvbGwpIHsKKyAgICAgICAgICAgICAgICBjYWwucm9sbCh0ZXN0WzRdLCB0ZXN0WzVdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLmFkZCh0ZXN0WzRdLCB0ZXN0WzVdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpICE9IHRlc3RbNl0gfHwKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSAhPSAodGVzdFs3XS0xKSB8fAorICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpICE9IHRlc3RbOF0gfHwKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpICE9IHRlc3RbOV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG5hbWUgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgIHltZFRvU3RyaW5nKHRlc3RbMF0sIHRlc3RbMV0tMSwgdGVzdFsyXSwgdGVzdFszXSkKKyAgICAgICAgICAgICAgICAgICAgICArICIgIiArIGZpZWxkTmFtZSh0ZXN0WzRdKSArICIgYnkgIiArIHRlc3RbNV0KKyAgICAgICAgICAgICAgICAgICAgICArICI6IGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgICAgIHltZFRvU3RyaW5nKHRlc3RbNl0sIHRlc3RbN10tMSwgdGVzdFs4XSwgdGVzdFs5XSkKKyAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgbmFtZSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXS0xLCB0ZXN0WzJdLCB0ZXN0WzNdKQorICAgICAgICAgICAgICAgICAgICArICIgIiArIGZpZWxkTmFtZSh0ZXN0WzRdKSArICIgYnkgIiArIHRlc3RbNV0KKyAgICAgICAgICAgICAgICAgICAgKyAiOiBnb3QgIiArIHltZFRvU3RyaW5nKGNhbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB5ZWFyLG1vbnRoLGRheSB2YWx1ZXMgdG8gdGhlIGZvcm0gInllYXIvbW9udGgvZGF5Ii4KKyAgICAgKiBPbiBpbnB1dCB0aGUgbW9udGggdmFsdWUgaXMgemVyby1iYXNlZCwgYnV0IGluIHRoZSByZXN1bHQgc3RyaW5nIGl0IGlzIG9uZS1iYXNlZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyB5bWRUb1N0cmluZyhpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgaXNMZWFwTW9udGgsIGludCBkYXkpIHsKKyAgICAgICAgcmV0dXJuICIiICsgeWVhciArICIvIiArIChtb250aCsxKSArCisgICAgICAgICAgICAoKGlzTGVhcE1vbnRoIT0wKT8iKGxlYXApIjoiIikgKworICAgICAgICAgICAgIi8iICsgZGF5OworICAgIH0KKworLy8gICAgcHVibGljIHZvaWQgVGVzdEZpbmRMZWFwTW9udGhzKCkgeworLy8gICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisvLyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoMjAwMC0xOTAwLCBDYWxlbmRhci5KQU5VQVJZLCAxKSk7CisvLyAgICAgICAgbG9uZyBlbmQgPSBuZXcgRGF0ZSgyMTAwLTE5MDAsIENhbGVuZGFyLkpBTlVBUlksIDEpLmdldFRpbWUoKTsKKy8vICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdCBmbXQgPSAoQ2hpbmVzZURhdGVGb3JtYXQpIERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoY2FsKTsKKy8vICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKCJ1LU1NbC1kZCwgJ1llYXInIHksICdDeWNsZScgRyIpOworLy8gICAgICAgIHdoaWxlIChjYWwuZ2V0VGltZUluTWlsbGlzKCkgPCBlbmQpIHsKKy8vICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpICE9IDApIHsKKy8vICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKy8vICAgICAgICAgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkgKyAiID0gIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworLy8gICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDI5KTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAyNSk7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoY2FsKTsKKyAgICAgICAgaWYoIShmb3JtYXQgaW5zdGFuY2VvZiBDaGluZXNlRGF0ZUZvcm1hdCkpeworICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoIitjYWwrIikgZGlkIG5vdCByZXR1cm4gYSBDaGluZXNlRGF0ZUZvcm1hdCIpOworICAgICAgICB9CisgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0IGZtdCA9IChDaGluZXNlRGF0ZUZvcm1hdClmb3JtYXQ7CisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oImxseXlsbCIpOworICAgICAgICBEYXRlIHRpbWUgPSBnZXREYXRlKDIxMDAsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBTdHJpbmcgc3RyID0gZm10LmZvcm1hdCh0aW1lKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZSA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4oImNoaW5lc2UgY2FsZW5kYXIgdGltZTogIiArIHRpbWUgKyAiIHJlc3VsdDogIiArIHN0ciArICIgLS0+ICIgKyBlKTsKKyAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBsb2dsbihleC5nZXRNZXNzYWdlKCkpOyAvLyBjaGluZXNlIGNhbGVuZGFyIGNhbid0IHBhcnNlIHRoaXMsIG5vIGVycm9yIGZvciBub3cKKyAgICAgICAgfQorCisgICAgICAgIC8vbmV3IENoaW5lc2VDYWxlbmRhcihUaW1lWm9uZSxVTG9jYWxlKQorICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2NhbDIgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUuQ0hJTkEpOworICAgICAgICBpZihjY2FsMj09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDaGluZXNlQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBVTG9jYWxlIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmbXQgPSAoQ2hpbmVzZURhdGVGb3JtYXQpRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2NhbDIsIERhdGVGb3JtYXQuREVGQVVMVCwgVUxvY2FsZS5DSElOQSk7CisgICAgICAgICAgICB0aW1lID0gZ2V0RGF0ZSgyMDAxLCBDYWxlbmRhci5NQVksIDIzKTsKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQodGltZSk7CisgICAgICAgICAgICBsb2dsbigiQ2hpbmVzZSBjYWxlbmRhciB0aW1lOiAiICsgdGltZSArICIgcmVzdWx0OiAiICsgc3RyKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JhdGNoKCl7CisgICAgICAgIFN0cmluZ1tdIHN0ck1vbnRocyA9IHsiSmFudWFyaSIsICJQZWJydWFyaSIsICJNYXJldCIsICJBcHJpbCIsICJNZWkiLCAiSnVuaSIsCisgICAgICAgICAgICAgICAgIkp1bGkiLCAiQWd1c3R1cyIsICJTZXB0ZW1iZXIiLCAiT2t0b2JlciIsICJOb3BlbWJlciIsICJEZXNlbWJlciJ9OworICAgICAgICBTdHJpbmdbXSBzdHJTaG9ydE1vbnRocyA9IHsiSmFuIiwgIlBlYiIsICJNYXIiLCAiQXByIiwgIk1laSIsICJKdW4iLAorICAgICAgICAgICAgICAgICAgICAgIkp1bCIsICJBZ3QiLCAiU2VwIiwgIk9rdCIsICJOb3AiLCAiRGVzIn07CisgICAgICAgIFN0cmluZ1tdIHN0cldlZWtzID0geyIiLCAiTWluZ2d1IiwgIlNlbmluIiwgIlNlbGFzYSIsICJSYWJ1IiwgIkthbWlzIiwgIkp1bWF0IiwgIlNhYnR1In07CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmc0RhdGUgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobmV3IExvY2FsZSgiaWQiLCAiSUQiKSk7CisgICAgICAgIGRmc0RhdGUuc2V0TW9udGhzKHN0ck1vbnRocyk7CisgICAgICAgIGRmc0RhdGUuc2V0U2hvcnRNb250aHMoc3RyU2hvcnRNb250aHMpOworICAgICAgICBkZnNEYXRlLnNldFdlZWtkYXlzKHN0cldlZWtzKTsKKyAgICAgICAgVUxvY2FsZSB1bG9JbmQgPSBkZnNEYXRlLmdldExvY2FsZShVTG9jYWxlLkFDVFVBTF9MT0NBTEUpOworICAgICAgICBpZih1bG9JbmQ9PW51bGwpeworICAgICAgICAgICAgZXJybG4oImRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odWxvSW5kLnRvU3RyaW5nKCkpOworICAgICAgICBMb2NhbGUgbG9jSW5kID0gdWxvSW5kLnRvTG9jYWxlKCk7CisgICAgICAgIGlmKGxvY0luZD09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKGxvY0luZC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5pdFdpdGhDdXJyZW50VGltZSgpIHsKKyAgICAgICAgLy8gamI0NTU1CisgICAgICAgIC8vIGlmIHRoZSBjaGluZXNlIGNhbGVuZGFyIGN1cnJlbnQgbWlsbGlzIGlzbid0IGNhbGxlZCwgdGhlIGRlZmF1bHQgeWVhciBpcyB3cm9uZy4KKyAgICAgICAgLy8gdGhpcyB0ZXN0IGlzIGFzc3VtaW5nIHRoZSAneWVhcicgaXMgdGhlIGN1cnJlbnQgY3ljbGUKKyAgICAgICAgLy8gc28gd2hlbiB3ZSBjcm9zcyBhIGN5Y2xlIGJvdW5kYXJ5LCB0aGUgdGFyZ2V0IHdpbGwgbmVlZCB0byBjaGFuZ2UKKyAgICAgICAgLy8gdGhhdCBzaG91bGRuJ3QgYmUgZm9yIGF3aGlsZSB5ZXQuLi4gCisKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNjID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBjYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMjIpOworICAgICAgICBjYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIDApOworICAgICAgICAgLy8gbmVlZCB0byBzZXQgbGVhcCBtb250aCBmbGFnIG9mZiwgb3RoZXJ3aXNlLCB0aGUgdGVzdCBjYXNlIGFsd2F5cyBmYWlscyB3aGVuCisgICAgICAgICAvLyBjdXJyZW50IHRpbWUgaXMgaW4gYSBsZWFwIG1vbnRoCisgICAgICAgIGNjLnNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgMCk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5EQVRFLCAxOSk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICBjYy5zZXQoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgY2Muc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKKworICAgICAgICBjYy5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgCisgICAgICAgIERhdGUgdGFyZ2V0ID0gbmV3IERhdGUoMTA1LCBDYWxlbmRhci5GRUJSVUFSWSwgMjgpOworICAgICAgICBEYXRlIHJlc3VsdCA9IGNjLmdldFRpbWUoKTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoImNoaW5lc2UgYW5kIGdyZWdvcmlhbiBkYXRlIHNob3VsZCBtYXRjaCIsIHRhcmdldCwgcmVzdWx0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3RDYXNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3RDYXNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTI0YjZhYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdENhc2UuamF2YQpAQCAtMCwwICsxLDUzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitwdWJsaWMgY2xhc3MgQ2hpbmVzZVRlc3RDYXNlIGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdXNpbmcgYSBKdWxpYW4gZGF5IG51bWJlciBhbmQKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgZm9yIHRoZSBjYWxlbmRhciBiZWluZyB0ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhIHRoZSBFUkEgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBKdWxpYW4KKyAgICAgKiBkYXkKKyAgICAgKiBAcGFyYW0geWVhciB0aGUgWUVBUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuCisgICAgICogSnVsaWFuIGRheQorICAgICAqIEBwYXJhbSBtb250aCB0aGUgTU9OVEggKDEtYmFzZWQpIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbgorICAgICAqIHRoZSBnaXZlbiBKdWxpYW4gZGF5CisgICAgICogQHBhcmFtIGlzTGVhcE1vbnRoIGlmIHRydWUsIHRyZWF0IG1vbnRoIGFzIGEgbGVhcCBtb250aAorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoIHRoZSBEQVlfT0ZfTU9OVEggZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZQorICAgICAqIGdpdmVuIEp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIHRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gZ2l2ZW4KKyAgICAgKiBKdWxpYW4gZGF5CisgICAgICovCisgICAgcHVibGljIENoaW5lc2VUZXN0Q2FzZShkb3VibGUganVsaWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNMZWFwTW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrKSB7CisKKyAgICAgICAgc2V0VGltZShuZXcgRGF0ZShKVUxJQU5fRVBPQ0ggKyAobG9uZykoT05FX0RBWSAqIGp1bGlhbikpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIGlzTGVhcE1vbnRoPzE6MCk7CisgICAgICAgIHNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGRheU9mTW9udGgpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGRheU9mV2Vlayk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGVzdCBjYXNlJ3MgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZG93VG9TdHJpbmcoZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSkgKworICAgICAgICAgICAgZ2V0KENhbGVuZGFyLllFQVIpICsgIm9mIiArIGdldChDYWxlbmRhci5FUkEpICsKKyAgICAgICAgICAgICIvIiArIChnZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsKKyAgICAgICAgICAgIChnZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpPT0xPyIobGVhcCkiOiIiKSArICIvIiArCisgICAgICAgICAgICBnZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29tcGF0aWJpbGl0eVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Db21wYXRpYmlsaXR5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmYTE0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29tcGF0aWJpbGl0eVRlc3QuamF2YQpAQCAtMCwwICsxLDExMTUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBDb21wYXRpYmlsaXR5VGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmd2W10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29tcGF0aWJpbGl0eVRlc3QoKS5ydW4oYXJndik7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICJEQVlfT0ZfTU9OVEgiLCAiREFZX09GX1lFQVIiLCAiREFZX09GX1dFRUsiLAorICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgIkRTVF9PRkZTRVQiLCAiWUVBUl9XT1kiLCAiRE9XX0xPQ0FMIiwgIkVYVEVOREVEX1lFQVIiLAorICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgdGhlIEdyZWdvcmlhbkNhbGVuZGFyIGFyb3VuZCB0aGUgY2hhbmdlb3Zlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R3JlZ29yaWFuQ2hhbmdlb3ZlcigpIHsKKyAgICAKKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka0dNVCA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBqZGtDYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoamRrR01UKTsKKyAgICAgICAgamRrQ2FsLmNsZWFyKCk7CisgICAgICAgIGpka0NhbC5zZXQoMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUpOworICAgICAgICAKKy8vICAgICAgICBpZihqZGtDYWwgaW5zdGFuY2VvZiBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIpIHsKKy8vICAgICAgICAJCWxvZ2xuKCJqZGsgSVMgZ3JlZ28iKTsKKy8vICAgICAgICAJCWphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhciBqZGtnYyA9IChqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIpCisvLwkJCQkJCWpka0NhbDsKKy8vICAgICAgICAJCWxvZ2xuKCJqZGsgY2hhbmdlIGF0OiAiICsgamRrZ2MuZ2V0R3JlZ29yaWFuQ2hhbmdlKCkgKyAiKCIgKyBqZGtnYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKS5nZXRUaW1lKCkgKyIpIiApOworLy8gICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgCSAgICBsb2dsbigiamRrIE5PVCBncmVnbyIpOworLy8gICAgICAgIH0KKyAgICAgIAorICAgICAgICBsb25nIGEgPSBqZGtDYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgRGF0ZSBjID0gamRrQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgYy50b1N0cmluZygpOworICAgICAgICBsb25nIGIgPSBjLmdldFRpbWUoKTsKKyAgICAgICAgaWYoYSE9YikgeworICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGEgKyAiICE9ICIgKyBiKTsKKyAgICAgICAgICAgIAlsb2dsbigiSkRLIGhhcyBHcmVnb3JpYW4gY3V0b3ZlciBhbm9tYWx5ICgxLjU/KSAtIHNraXBwaW5nIHRoaXMgdGVzdC4iKTsKKyAgICAgICAgICAgIAlyZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIERhdGUgY28gPSBqZGtDYWwuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiQ2hhbmdlIG92ZXIgKE9jdCAxNSAxNTgyKSA9ICIgKyBjbyArICIgKCIgKyBjby5nZXRUaW1lKCkgKyAiKSIpOworICAgICAgICBmaW5hbCBpbnQgT05FX0RBWSA9IDI0KjYwKjYwKjEwMDA7CisgICAgICAgIFRpbWVab25lIGdtdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKGdtdCk7CisgICAgICAgIC8qCisgICAgICAgICAgQ2hhbmdlb3ZlciAtNyBkYXlzOiAxNTgyLzkvMjggZG93PTYKKyAgICAgICAgICBDaGFuZ2VvdmVyIC02IGRheXM6IDE1ODIvOS8yOSBkb3c9NworICAgICAgICAgIENoYW5nZW92ZXIgLTUgZGF5czogMTU4Mi85LzMwIGRvdz0xCisgICAgICAgICAgQ2hhbmdlb3ZlciAtNCBkYXlzOiAxNTgyLzEwLzEgZG93PTIKKyAgICAgICAgICBDaGFuZ2VvdmVyIC0zIGRheXM6IDE1ODIvMTAvMiBkb3c9MworICAgICAgICAgIENoYW5nZW92ZXIgLTIgZGF5czogMTU4Mi8xMC8zIGRvdz00CisgICAgICAgICAgQ2hhbmdlb3ZlciAtMSBkYXlzOiAxNTgyLzEwLzQgZG93PTUKKyAgICAgICAgICBDaGFuZ2VvdmVyICswIGRheXM6IDE1ODIvMTAvMTUgZG93PTYKKyAgICAgICAgICBDaGFuZ2VvdmVyICsxIGRheXM6IDE1ODIvMTAvMTYgZG93PTcKKyAgICAgICAgICBDaGFuZ2VvdmVyICsyIGRheXM6IDE1ODIvMTAvMTcgZG93PTEKKyAgICAgICAgICBDaGFuZ2VvdmVyICszIGRheXM6IDE1ODIvMTAvMTggZG93PTIKKyAgICAgICAgICBDaGFuZ2VvdmVyICs0IGRheXM6IDE1ODIvMTAvMTkgZG93PTMKKyAgICAgICAgICBDaGFuZ2VvdmVyICs1IGRheXM6IDE1ODIvMTAvMjAgZG93PTQKKyAgICAgICAgICBDaGFuZ2VvdmVyICs2IGRheXM6IDE1ODIvMTAvMjEgZG93PTUKKyAgICAgICAgICBDaGFuZ2VvdmVyICs3IGRheXM6IDE1ODIvMTAvMjIgZG93PTYKKyAgICAgICAgICAqLworICAgICAgICBpbnQgTU9OW10gPSB7ICA5LCAgOSwgIDksMTAsMTAsMTAsMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCB9OworICAgICAgICBpbnQgRE9NW10gPSB7IDI4LCAyOSwgMzAsIDEsIDIsIDMsIDQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiB9OworICAgICAgICBpbnQgRE9XW10gPSB7ICA2LCAgNywgIDEsIDIsIDMsIDQsIDUsICA2LCAgNywgIDEsICAyLCAgMywgIDQsICA1LCAgNiB9OworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIDwtQ2hhbmdlb3ZlciBGcmkgT2N0IDE1IDE1ODIKKyAgICAgICAgaW50IGo9MDsKKyAgICAgICAgZm9yIChpbnQgaT0tNzsgaTw9NzsgKytpLCArK2opIHsKKyAgICAgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKGNvLmdldFRpbWUoKSArIGkqT05FX0RBWSk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgICAgIGludCB5ID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKSwgbW9uID0gY2FsLmdldChDYWxlbmRhci5NT05USCkrMS1DYWxlbmRhci5KQU5VQVJZLAorICAgICAgICAgICAgICAgIGRvbSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFURSksIGRvdyA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgbG9nbG4oIkNoYW5nZW92ZXIgIiArIChpPj0wPyIrIjoiIikgKworICAgICAgICAgICAgICAgICAgaSArICIgZGF5czogIiArIHkgKyAiLyIgKyBtb24gKyAiLyIgKyBkb20gKyAiIGRvdz0iICsgZG93KTsKKyAgICAgICAgICAgIGlmICh5ICE9IDE1ODIgfHwgbW9uICE9IE1PTltqXSB8fCBkb20gIT0gRE9NW2pdIHx8IGRvdyAhPSBET1dbal0pCisgICAgICAgICAgICAgICAgZXJybG4oIiBGYWlsOiBBYm92ZSBsaW5lIGlzIHdyb25nIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBtYXBwaW5nIGJldHdlZW4gbWlsbGlzIGFuZCBmaWVsZHMuICBGb3IgdGhlIHB1cnBvc2VzCisgICAgICogb2YgdGhpcyB0ZXN0LCB3ZSBkb24ndCBjYXJlIGFib3V0IHRpbWV6b25lcyBhbmQgd2VlayBkYXRhCisgICAgICogKGZpcnN0IGRheSBvZiB3ZWVrLCBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlaykuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1hcHBpbmcoKSB7CisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgRGF0ZSBQVVJFX0dSRUdPUklBTiA9IG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIERhdGUgUFVSRV9KVUxJQU4gPSBuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSk7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPQorICAgICAgICAgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXRUaW1lWm9uZSgiVVRDIikpOworICAgICAgICAgICAgZmluYWwgaW50IEVQT0NIX0pVTElBTiA9IDI0NDA1ODg7CisgICAgICAgICAgICBmaW5hbCBsb25nIE9ORV9EQVkgPSAyNCo2MCo2MCoxMDAwTDsKKyAgICAgICAgICAgIGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPQorICAgICAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQgeXl5eSBHIik7CisgICAgICAgICAgICAgICAgLypISDptbTpzcy5TU1MgeiovCisKKyAgICAgICAgICAgIGZvciAoaW50IHR5cGU9MDsgdHlwZTwyOyArK3R5cGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odHlwZT09MCA/ICJHcmVnb3JpYW4iIDogIkp1bGlhbiIpOworICAgICAgICAgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UodHlwZT09MCA/IFBVUkVfR1JFR09SSUFOIDogUFVSRV9KVUxJQU4pOworICAgICAgICAgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICAgICAgICAgIGludFtdIEogPSB7CisgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkYsCisgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRjAsCisgICAgICAgICAgICAgICAgICAgIDB4N0YwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NjAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NTAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDAsCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Si5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBsaW0gPSBuZXcgU3RyaW5nWzJdOworICAgICAgICAgICAgICAgICAgICBsb25nW10gbXMgPSBuZXcgbG9uZ1syXTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGpkID0gSltpXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgc2lnbj0wOyBzaWduPDI7ICsrc2lnbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGp1bGlhbiA9IGpkOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ249PTApIGp1bGlhbiA9IC1qdWxpYW47CisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1pbGxpcyA9ICgobG9uZylqdWxpYW4gLSBFUE9DSF9KVUxJQU4pICogT05FX0RBWTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zW3NpZ25dID0gbWlsbGlzOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW1bc2lnbl0gPSBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSkQgKy8tIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb25nLnRvU3RyaW5nKGpkLCAxNikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogIiArIG1zWzBdICsgIi4uIiArIG1zWzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6ICIgKyBsaW1bMF0gKyAiLi4iICsgbGltWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBUaW1lWm9uZSBzYXZlWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlVUQyIpKTsKKyAgICAgICAgICAgIC8vTkVXQ0FMCisgICAgICAgICAgICBEYXRlIFBVUkVfR1JFR09SSUFOID0gbmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpOworICAgICAgICAgICAgRGF0ZSBQVVJFX0pVTElBTiA9IG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgZmluYWwgaW50IEVQT0NIX0pVTElBTiA9IDI0NDA1ODg7CisgICAgICAgICAgICBmaW5hbCBsb25nIE9ORV9EQVkgPSAyNCo2MCo2MCoxMDAwTDsKKyAgICAgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAgICAgLy8gSnVsaWFuIyAgIFllYXIgIE1vbnRoICAgICAgICAgICAgICAgRE9NICAgSlVMSUFOOlllYXIsIE1vbnRoLCAgICAgICBET00KKyAgICAgICAgICAgICAgICAyNDQwNTg4LCAgICAgMTk3MCwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxLCAgICAxOTY5LCBDYWxlbmRhci5ERUNFTUJFUiwgIDE5LCAKKyAgICAgICAgICAgICAgICAyNDE1MDgwLCAgICAgMTkwMCwgQ2FsZW5kYXIuTUFSQ0gsICAgICAxLCAgICAxOTAwLCBDYWxlbmRhci5GRUJSVUFSWSwgIDE3LAorICAgICAgICAgICAgICAgIDI0NTE2MDQsICAgICAyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgIDI5LCAgIDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAgMTYsCisgICAgICAgICAgICAgICAgMjQ1MjI2OSwgICAgIDIwMDEsIENhbGVuZGFyLkRFQ0VNQkVSLCAgMjUsICAgMjAwMSwgQ2FsZW5kYXIuREVDRU1CRVIsICAxMiwKKyAgICAgICAgICAgICAgICAyNDE2NTI2LCAgICAgMTkwNCwgQ2FsZW5kYXIuRkVCUlVBUlksICAxNSwgICAxOTA0LCBDYWxlbmRhci5GRUJSVUFSWSwgIDIsCisgICAgICAgICAgICAgICAgMjQxNjY1NiwgICAgIDE5MDQsIENhbGVuZGFyLkpVTkUsICAgICAgMjQsICAgMTkwNCwgQ2FsZW5kYXIuSlVORSwgICAgICAxMSwKKyAgICAgICAgICAgICAgICAxNzIxNDI2LCAgICAgICAgMSwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxLCAgICAgICAxLCBDYWxlbmRhci5KQU5VQVJZLCAgIDMsCisgICAgICAgICAgICAgICAgMjAwMDAwMCwgICAgICA3NjMsIENhbGVuZGFyLlNFUFRFTUJFUiwgMTgsICAgIDc2MywgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxNCwKKyAgICAgICAgICAgICAgICA0MDAwMDAwLCAgICAgNjIzOSwgQ2FsZW5kYXIuSlVMWSwgICAgICAxMiwgICA2MjM5LCBDYWxlbmRhci5NQVksICAgICAgIDI4LAorICAgICAgICAgICAgICAgIDgwMDAwMDAsICAgIDE3MTkxLCBDYWxlbmRhci5GRUJSVUFSWSwgIDI2LCAgMTcxOTAsIENhbGVuZGFyLk9DVE9CRVIsICAgMjIsCisgICAgICAgICAgICAgICAgMTAwMDAwMDAsICAgMjI2NjYsIENhbGVuZGFyLkRFQ0VNQkVSLCAgMjAsICAyMjY2NiwgQ2FsZW5kYXIuSlVMWSwgICAgICA1LAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NykgeworICAgICAgICAgICAgICAgIGludCBqdWxpYW4gPSBEQVRBW2ldOworICAgICAgICAgICAgICAgIGludCB5ZWFyID0gREFUQVtpKzFdOworICAgICAgICAgICAgICAgIGludCBtb250aCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgICAgICBpbnQgZG9tID0gREFUQVtpKzNdOworICAgICAgICAgICAgICAgIGludCB5ZWFyMiwgbW9udGgyLCBkb20yOworICAgICAgICAgICAgICAgIGxvbmcgbWlsbGlzID0gKGp1bGlhbiAtIEVQT0NIX0pVTElBTikgKiBPTkVfREFZOworICAgICAgICAgICAgICAgIFN0cmluZyBzOworCisgICAgICAgICAgICAgICAgLy8gVGVzdCBHcmVnb3JpYW4gY29tcHV0YXRpb24KKyAgICAgICAgICAgICAgICBjYWwuc2V0R3JlZ29yaWFuQ2hhbmdlKFBVUkVfR1JFR09SSUFOKTsKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkb20pOworICAgICAgICAgICAgICAgIGxvbmcgY2FsTWlsbGlzID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IGNhbE1pbGxpcyAtIG1pbGxpczsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgICAgICAgICAgICB5ZWFyMiA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICAgICAgbW9udGgyID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICAgICAgZG9tMiA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBzID0gIkcgIiArIHllYXIgKyAiLSIgKyAobW9udGgrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbSArCisgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGNhbE1pbGxpcyArCisgICAgICAgICAgICAgICAgICAgICIgKCIgKyAoKGZsb2F0KWRlbHRhL09ORV9EQVkpICsgIiBkYXkgZGVsdGEpID0+ICIgKworICAgICAgICAgICAgICAgICAgICB5ZWFyMiArICItIiArIChtb250aDIrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbTI7CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhICE9IDAgfHwgeWVhciAhPSB5ZWFyMiB8fCBtb250aCAhPSBtb250aDIgfHwKKyAgICAgICAgICAgICAgICAgICAgZG9tICE9IGRvbTIpIGVycmxuKHMgKyAiIEZBSUwiKTsKKyAgICAgICAgICAgICAgICBlbHNlIGxvZ2xuKHMpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRlc3QgSnVsaWFuIGNvbXB1dGF0aW9uCisgICAgICAgICAgICAgICAgeWVhciA9IERBVEFbaSs0XTsKKyAgICAgICAgICAgICAgICBtb250aCA9IERBVEFbaSs1XTsKKyAgICAgICAgICAgICAgICBkb20gPSBEQVRBW2krNl07CisgICAgICAgICAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShQVVJFX0pVTElBTik7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZG9tKTsKKyAgICAgICAgICAgICAgICBjYWxNaWxsaXMgPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IGNhbE1pbGxpcyAtIG1pbGxpczsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgICAgICAgICAgICB5ZWFyMiA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICAgICAgbW9udGgyID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICAgICAgZG9tMiA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBzID0gIkogIiArIHllYXIgKyAiLSIgKyAobW9udGgrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbSArCisgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGNhbE1pbGxpcyArCisgICAgICAgICAgICAgICAgICAgICIgKCIgKyAoKGZsb2F0KWRlbHRhL09ORV9EQVkpICsgIiBkYXkgZGVsdGEpID0+ICIgKworICAgICAgICAgICAgICAgICAgICB5ZWFyMiArICItIiArIChtb250aDIrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbTI7CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhICE9IDAgfHwgeWVhciAhPSB5ZWFyMiB8fCBtb250aCAhPSBtb250aDIgfHwKKyAgICAgICAgICAgICAgICAgICAgZG9tICE9IGRvbTIpIGVycmxuKHMgKyAiIEZBSUwiKTsKKyAgICAgICAgICAgICAgICBlbHNlIGxvZ2xuKHMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUpOworICAgICAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZSh0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBhdXhNYXBwaW5nKGNhbCwgMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgNCk7CisgICAgICAgICAgICBhdXhNYXBwaW5nKGNhbCwgMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUpOworICAgICAgICAgICAgYXV4TWFwcGluZyhjYWwsIDE1ODIsIENhbGVuZGFyLk9DVE9CRVIsIDE2KTsKKyAgICAgICAgICAgIGZvciAoaW50IHk9ODAwOyB5PDMwMDA7IHkrPTErKGludCkoMTAwKk1hdGgucmFuZG9tKCkpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbT1DYWxlbmRhci5KQU5VQVJZOyBtPD1DYWxlbmRhci5ERUNFTUJFUjsgKyttKSB7CisgICAgICAgICAgICAgICAgICAgIGF1eE1hcHBpbmcoY2FsLCB5LCBtLCAxNSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGF1eE1hcHBpbmcoQ2FsZW5kYXIgY2FsLCBpbnQgeSwgaW50IG0sIGludCBkKSB7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KHksIG0sIGQpOworICAgICAgICBsb25nIG1pbGxpcyA9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgICAgaW50IHllYXIyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IG1vbnRoMiA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICBpbnQgZG9tMiA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgaWYgKHkgIT0geWVhcjIgfHwgbSAhPSBtb250aDIgfHwgZG9tMiAhPSBkKQorICAgICAgICAgICAgZXJybG4oIlJvdW5kLXRyaXAgZmFpbHVyZTogIiArIHkgKyAiLSIgKyAobSsxKSArICItIitkKyIgPT5tcz0+ICIgKworICAgICAgICAgICAgICAgICAgeWVhcjIgKyAiLSIgKyAobW9udGgyKzEpICsgIi0iICsgZG9tMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdlbmVyaWNBUEkoKSB7CisgICAgICAgIC8vIG5vdCB1c2VkIFN0cmluZyBzdHI7CisKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTkwLCBDYWxlbmRhci5BUFJJTCwgMTUpOworICAgICAgICBEYXRlIHdoZW4gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKworICAgICAgICBTdHJpbmcgdHppZCA9ICJUZXN0Wm9uZSI7CisgICAgICAgIGludCB0em9mZnNldCA9IDEyMzQwMDsKKworICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKHR6b2Zmc2V0LCB0emlkKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gKENhbGVuZGFyKUNhbGVuZGFyLmdldEluc3RhbmNlKChTaW1wbGVUaW1lWm9uZSl6b25lLmNsb25lKCkpOworCisgICAgICAgIGlmICghem9uZS5lcXVhbHMoY2FsLmdldFRpbWVab25lKCkpKSBlcnJsbigiRkFJTDogQ2FsZW5kYXIuZ2V0VGltZVpvbmUgZmFpbGVkIik7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IENhbGVuZGFyLmdldEluc3RhbmNlKGNhbC5nZXRUaW1lWm9uZSgpKTsKKworICAgICAgICBjYWwuc2V0VGltZSh3aGVuKTsKKyAgICAgICAgY2FsMi5zZXRUaW1lKHdoZW4pOworCisgICAgICAgIGlmICghKGNhbC5lcXVhbHMoY2FsMikpKSBlcnJsbigiRkFJTDogQ2FsZW5kYXIub3BlcmF0b3I9PSBmYWlsZWQiKTsKKyAgICAgICAgLy8gaWYgKCgqY2FsICE9ICpjYWwyKSkgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5vcGVyYXRvciE9IGZhaWxlZCIpOworICAgICAgICBpZiAoIWNhbC5lcXVhbHMoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5iZWZvcmUoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5hZnRlcihjYWwyKSkgZXJybG4oIkZBSUw6IGVxdWFscy9iZWZvcmUvYWZ0ZXIgZmFpbGVkIik7CisKKyAgICAgICAgY2FsMi5zZXRUaW1lKG5ldyBEYXRlKHdoZW4uZ2V0VGltZSgpICsgMTAwMCkpOworICAgICAgICBpZiAoY2FsLmVxdWFscyhjYWwyKSB8fAorICAgICAgICAgICAgY2FsMi5iZWZvcmUoY2FsKSB8fAorICAgICAgICAgICAgY2FsLmFmdGVyKGNhbDIpKSBlcnJsbigiRkFJTDogZXF1YWxzL2JlZm9yZS9hZnRlciBmYWlsZWQiKTsKKworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5TRUNPTkQsIHRydWUpOworICAgICAgICBpZiAoIWNhbC5lcXVhbHMoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5iZWZvcmUoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5hZnRlcihjYWwyKSkgZXJybG4oIkZBSUw6IGVxdWFscy9iZWZvcmUvYWZ0ZXIgZmFpbGVkIik7CisKKyAgICAgICAgLy8gUm9sbCBiYWNrIHRvIEphbnVhcnkKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuTU9OVEgsIChpbnQpKDEgKyBDYWxlbmRhci5ERUNFTUJFUiAtIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKSk7CisgICAgICAgIGlmIChjYWwuZXF1YWxzKGNhbDIpIHx8CisgICAgICAgICAgICBjYWwyLmJlZm9yZShjYWwpIHx8CisgICAgICAgICAgICBjYWwuYWZ0ZXIoY2FsMikpIGVycmxuKCJGQUlMOiBlcXVhbHMvYmVmb3JlL2FmdGVyIGZhaWxlZCIpOworCisgICAgICAgIC8vIEMrKyBvbmx5CisgICAgICAgIC8qIFRpbWVab25lIHogPSBjYWwub3JwaGFuVGltZVpvbmUoKTsKKyAgICAgICAgICAgaWYgKHouZ2V0SUQoc3RyKSAhPSB0emlkIHx8CisgICAgICAgICAgIHouZ2V0UmF3T2Zmc2V0KCkgIT0gdHpvZmZzZXQpCisgICAgICAgICAgIGVycmxuKCJGQUlMOiBvcnBoYW5UaW1lWm9uZSBmYWlsZWQiKTsKKyAgICAgICAgICAgKi8KKworICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICBib29sZWFuIGxlbmllbnQgPSAoIGkgPiAwICk7CisgICAgICAgICAgICBjYWwuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICAgICAgICAgIGlmIChsZW5pZW50ICE9IGNhbC5pc0xlbmllbnQoKSkgZXJybG4oIkZBSUw6IHNldExlbmllbnQvaXNMZW5pZW50IGZhaWxlZCIpOworICAgICAgICAgICAgLy8gTGF0ZXI6IENoZWNrIGZvciBsZW5pZW50IGJlaGF2aW9yCisgICAgICAgIH0KKworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPUNhbGVuZGFyLlNVTkRBWTsgaTw9Q2FsZW5kYXIuU0FUVVJEQVk7ICsraSkgeworICAgICAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKGkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXRGaXJzdERheU9mV2VlaygpICE9IGkpIGVycmxuKCJGQUlMOiBzZXQvZ2V0Rmlyc3REYXlPZldlZWsgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGk9MTsgaTw9NzsgKytpKSB7CisgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhpKTsKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpICE9IGkpIGVycmxuKCJGQUlMOiBzZXQvZ2V0Rmlyc3REYXlPZldlZWsgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGk9MDsgaTxjYWwuZ2V0RmllbGRDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0TWluaW11bShpKSAhPSBjYWwuZ2V0R3JlYXRlc3RNaW5pbXVtKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRNaW5pbXVtIGRvZXNuJ3QgbWF0Y2ggZ2V0R3JlYXRlc3RNaW5pbXVtIGZvciBmaWVsZCAiICsgaSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldExlYXN0TWF4aW11bShpKSA+IGNhbC5nZXRNYXhpbXVtKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRMZWFzdE1heGltdW0gbGFyZ2VyIHRoYW4gZ2V0TWF4aW11bSBmb3IgZmllbGQgIiArIGkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXRNaW5pbXVtKGkpID49IGNhbC5nZXRNYXhpbXVtKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRNaW5pbXVtIG5vdCBsZXNzIHRoYW4gZ2V0TWF4aW11bSBmb3IgZmllbGQgIiArIGkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5ODQsIDUsIDI0KTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTg0LCA1LCAyNCk7CisgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5zZXQoMyBhcmdzKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgR290OiAiICsgY2FsLmdldFRpbWUoKSArICIgIEV4cGVjdGVkOiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk4NSwgMywgMiwgMTEsIDQ5KTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTg1LCAzLCAyLCAxMSwgNDkpOworICAgICAgICBpZiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIuc2V0KDUgYXJncykgZmFpbGVkIik7CisgICAgICAgICAgICBsb2dsbigiIEdvdDogIiArIGNhbC5nZXRUaW1lKCkgKyAiICBFeHBlY3RlZDogIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTUsIDksIDEyLCAxLCAzOSwgNTUpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTUsIDksIDEyLCAxLCAzOSwgNTUpOworICAgICAgICBpZiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIuc2V0KDYgYXJncykgZmFpbGVkIik7CisgICAgICAgICAgICBsb2dsbigiIEdvdDogIiArIGNhbC5nZXRUaW1lKCkgKyAiICBFeHBlY3RlZDogIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5nZXRUaW1lKCk7CisgICAgICAgIC8vIFRoaXMgdGVzdCBpcyBzdHJhbmdlIC0tIHdoeSBkbyB3ZSBleHBlY3QgY2VydGFpbiBmaWVsZHMgdG8gYmUgc2V0LCBhbmQKKyAgICAgICAgLy8gb3RoZXJzIG5vdCB0byBiZT8gIFJldmlzaXQgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB0aGlzLiAgLSBBbGFuIE5FV0NBTAorICAgICAgICBmb3IgKGk9MDsgaTxjYWwuZ2V0RmllbGRDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIHN3aXRjaChpKSB7CisgICAgICAgICAgICBjYXNlIENhbGVuZGFyLllFQVI6IGNhc2UgQ2FsZW5kYXIuTU9OVEg6IGNhc2UgQ2FsZW5kYXIuREFURToKKyAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXIuSE9VUl9PRl9EQVk6IGNhc2UgQ2FsZW5kYXIuTUlOVVRFOiBjYXNlIENhbGVuZGFyLlNFQ09ORDoKKyAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXIuRVhURU5ERURfWUVBUjoKKyAgICAgICAgICAgICAgICBpZiAoIWNhbC5pc1NldChpKSkgZXJybG4oIkZBSUw6ICIgKyBGSUVMRF9OQU1FW2ldICsgIiBpcyBub3Qgc2V0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGlmIChjYWwuaXNTZXQoaSkpIGVycmxuKCJGQUlMOiAiICsgRklFTERfTkFNRVtpXSArICIgaXMgc2V0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuY2xlYXIoaSk7CisgICAgICAgICAgICBpZiAoY2FsLmlzU2V0KGkpKSBlcnJsbigiRkFJTDogQ2FsZW5kYXIuY2xlYXIvaXNTZXQgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBkZWxldGUgY2FsOworICAgICAgICAvLyBkZWxldGUgY2FsMjsKKworICAgICAgICBMb2NhbGVbXSBsb2MgPSBDYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGxvbmcgY291bnQgPSBsb2MubGVuZ3RoOworICAgICAgICBpZiAoY291bnQgPCAxIHx8IGxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0QXZhaWxhYmxlTG9jYWxlcyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBjYWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGNhbDsKKworICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh6b25lLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBjYWw7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZSk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTgsIDEwLCAxNCwgMjEsIDQzKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCAxMCwgMTQsIDIxLCA0Myk7CisgICAgICAgIGlmIChnYy5nZXRUaW1lKCkuZ2V0VGltZSgpICE9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoeW1kaG0pIGZhaWxlZCIpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisKKyAgICAgICAgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5OCwgMTAsIDE0LCAyMSwgNDMsIDU1KTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCAxMCwgMTQsIDIxLCA0MywgNTUpOworICAgICAgICBpZiAoZ2MuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHltZGhtcykgZmFpbGVkIik7CisKKyAgICAgICAgLy8gQysrIG9ubHk6CisgICAgICAgIC8vIEdyZWdvcmlhbkNhbGVuZGFyIGdjMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGdjMiA9IGdjOworICAgICAgICAvLyBpZiAoZ2MyICE9IGdjIHx8ICEoZ2MyID09IGdjKSkgZXJybG4oIkZBSUw6IEdyZWdvcmlhbkNhbGVuZGFyIGFzc2lnbm1lbnQvb3BlcmF0b3I9PS9vcGVyYXRvciE9IGZhaWxlZCIpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisgICAgICAgIC8vIGRlbGV0ZSB6OworICAgIH0KKworICAgIC8vIFZlcmlmeSBSb2dlciBXZWJzdGVyJ3MgYnVnCisgICAgcHVibGljIHZvaWQgVGVzdFJvZygpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKworICAgICAgICBpbnQgeWVhciA9IDE5OTcsIG1vbnRoID0gQ2FsZW5kYXIuQVBSSUwsIGRhdGUgPSAxOworICAgICAgICBnYy5zZXQoeWVhciwgbW9udGgsIGRhdGUpOyAvLyBBcHJpbCAxLCAxOTk3CisKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAyMyk7CisgICAgICAgIGdjLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDk7IGkrKywgZ2MuYWRkKENhbGVuZGFyLkRBVEUsIDEpKSB7CisgICAgICAgICAgICBpZiAoZ2MuZ2V0KENhbGVuZGFyLllFQVIpICE9IHllYXIgfHwKKyAgICAgICAgICAgICAgICBnYy5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IG1vbnRoIHx8CisgICAgICAgICAgICAgICAgZ2MuZ2V0KENhbGVuZGFyLkRBVEUpICE9IChkYXRlICsgaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGUgIiArIGdjLmdldFRpbWUoKSArICIgd3JvbmciKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZlcmlmeSBEQVlfT0ZfV0VFSworICAgIHB1YmxpYyB2b2lkIFRlc3RET1c5NDMoKSB7CisgICAgICAgIGRvd1Rlc3QoZmFsc2UpOworICAgICAgICBkb3dUZXN0KHRydWUpOworICAgIH0KKworICAgIHZvaWQgZG93VGVzdChib29sZWFuIGxlbmllbnQpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVVHVVNULCAxMik7IC8vIFdlZG5lc2RheQorICAgICAgICBjYWwuZ2V0VGltZSgpOyAvLyBGb3JjZSB1cGRhdGUKKyAgICAgICAgY2FsLnNldExlbmllbnQobGVuaWVudCk7CisgICAgICAgIGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuREVDRU1CRVIsIDEpOyAvLyBTZXQgdGhlIGRhdGUgdG8gYmUgRGVjZW1iZXIgMSwgMTk5NgorICAgICAgICBpbnQgZG93ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtaW4gPSBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtYXggPSBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGlmIChkb3cgPCBtaW4gfHwgZG93ID4gbWF4KSBlcnJsbigiRkFJTDogRGF5IG9mIHdlZWsgIiArIGRvdyArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIGlmIChkb3cgIT0gQ2FsZW5kYXIuU1VOREFZKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDI6IERheSBvZiB3ZWVrIHNob3VsZCBiZSBTVU5EQVk7IGlzICIgKyBkb3cgKyAiOiAiICsgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pbiAhPSBDYWxlbmRhci5TVU5EQVkgfHwgbWF4ICE9IENhbGVuZGFyLlNBVFVSREFZKSBlcnJsbigiRkFJTDogTWluL21heCBiYWQiKTsKKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY2xvbmUgbWV0aG9kIHByb2R1Y2VzIGRpc3RpbmN0IG9iamVjdHMgd2l0aCBubworICAgIC8vIHVuaW50ZW50aW9uYWxseSBzaGFyZWQgZmllbGRzLgorICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZXNVbmlxdWU5MDgoKSB7CisgICAgICAgIENhbGVuZGFyIGMgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBDYWxlbmRhciBkID0gKENhbGVuZGFyKWMuY2xvbmUoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDEyMyk7CisgICAgICAgIGQuc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCA0NTYpOworICAgICAgICBpZiAoYy5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICE9IDEyMyB8fAorICAgICAgICAgICAgZC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICE9IDQ1NikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENsb25lcyBzaGFyZSBmaWVsZHMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZlcmlmeSBlZmZlY3Qgb2YgR3JlZ29yaWFuIGN1dG9mZiB2YWx1ZQorICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVnb3JpYW5DaGFuZ2U3NjgoKSB7CisgICAgICAgIGJvb2xlYW4gYjsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBsb2dsbigiV2l0aCBjdXRvZmYgIiArIGMuZ2V0R3JlZ29yaWFuQ2hhbmdlKCkpOworICAgICAgICBsb2dsbigiIGlzTGVhcFllYXIoMTgwMCkgPSAiICsgKGI9Yy5pc0xlYXBZZWFyKDE4MDApKSk7CisgICAgICAgIGxvZ2xuKCIgKHNob3VsZCBiZSBGQUxTRSkiKTsKKyAgICAgICAgaWYgKGIgIT0gZmFsc2UpIGVycmxuKCJGQUlMIik7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTkwMCwgMCwgMSk7CisgICAgICAgIGMuc2V0R3JlZ29yaWFuQ2hhbmdlKHRlbXBjYWwuZ2V0VGltZSgpKTsgLy8gSmFuIDEgMTkwMAorICAgICAgICBsb2dsbigiV2l0aCBjdXRvZmYgIiArIGMuZ2V0R3JlZ29yaWFuQ2hhbmdlKCkpOworICAgICAgICBsb2dsbigiIGlzTGVhcFllYXIoMTgwMCkgPSAiICsgKGI9Yy5pc0xlYXBZZWFyKDE4MDApKSk7CisgICAgICAgIGxvZ2xuKCIgKHNob3VsZCBiZSBUUlVFKSIpOworICAgICAgICBpZiAoYiAhPSB0cnVlKSBlcnJsbigiRkFJTCIpOworICAgIH0KKworICAgIC8vIFRlc3QgdGhlIGNvcnJlY3QgYmVoYXZpb3Igb2YgdGhlIGRpc2FtYmlndWF0aW9uIGFsZ29yaXRobS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzYW1iaWd1YXRpb243NjUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGMuc2V0TGVuaWVudChmYWxzZSk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVRFLCAzKTsKKworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgdGhpcmQgZGF5IG9mIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5KVU5FLCAzKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIDEpOworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgZmlyc3QgVHVlc2RheSBpbiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVORSwgMyk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCAtMSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBsYXN0IFR1ZXNkYXkgaW4gSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLkpVTkUsIDI0KTsKKworICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCAwKTsKKyAgICAgICAgICAgIGMuZ2V0VGltZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGUgPSBleDsKKyAgICAgICAgfQorICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgemVyby10aCBUdWVzZGF5IGluIEp1bmUgPSAiLCBlLCBjKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgMSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBUdWVzZGF5IGluIHdlZWsgMSBvZiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVORSwgMyk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIDUpOworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDUgb2YgSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLkpVTFksIDEpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIDApOworICAgICAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAwIG9mIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5NQVksIDI3KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHNlZW46Iik7CisgICAgICAgICAgICAvLyBleC5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAxKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAxIG9mIHllYXIgPSAiLCBjLCAxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgMzEpOworCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAxMCk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBUdWVzZGF5IGluIHdlZWsgMTAgb2YgeWVhciA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLk1BUkNILCA0KTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgYy5jbGVhcigpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIDApOworICAgICAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAwIG9mIHllYXIgPSAiLCBjLCAxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgMjQpOworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRmFpbDogV0VFS19PRl9ZRUFSIDAgc2hvdWxkIGJlIGlsbGVnYWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIHZlcmlmeTc2NShTdHJpbmcgbXNnLCBDYWxlbmRhciBjLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KSB7CisgICAgICAgIGludCBjeSA9IGMuZ2V0KENhbGVuZGFyLllFQVIpOyAvLyBORVdDQUwKKyAgICAgICAgaW50IGNtID0gYy5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICBpbnQgY2QgPSBjLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgaWYgKGN5ID09IHllYXIgJiYKKyAgICAgICAgICAgIGNtID09IG1vbnRoICYmCisgICAgICAgICAgICBjZCA9PSBkYXkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiAiICsgbXNnICsgYy5nZXRUaW1lKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyBjeSArICIvIiArIChjbSsxKSArICIvIiArIGNkICsKKyAgICAgICAgICAgICAgICAgICI9IiArIGMuZ2V0VGltZSgpICsKKyAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRheSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gQ2FsbGVkIHdoZW4gZSBleHBlY3RlZCB0byBiZSBub24tbnVsbAorICAgIHZvaWQgdmVyaWZ5NzY1KFN0cmluZyBtc2csIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlLCBDYWxlbmRhciBjKSB7CisgICAgICAgIGlmIChlID09IG51bGwpIGVycmxuKCJGQUlMOiBObyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yICIgKyBtc2cgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdldFRpbWUoKSk7CisgICAgICAgIGVsc2UgbG9nbG4oIlBBU1M6ICIgKyBtc2cgKyAiSWxsZWdhbEFyZ3VtZW50IGFzIGV4cGVjdGVkIik7CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgYmVoYXZpb3Igb2YgR01UIHZzLiBsb2NhbCB0aW1lCisgICAgcHVibGljIHZvaWQgVGVzdEdNVHZzTG9jYWw0MDY0NjU0KCkgeworICAgICAgICAvLyBTYW1wbGUgb3V0cHV0IDE6CisgICAgICAgIC8vICUgL3Vzci9sb2NhbC9qYXZhL2pkazEuMS4zL3NvbGFyaXMvYmluL2phdmEgdGVzdCAxOTk3IDEgMSAxMiAwIDAKKyAgICAgICAgLy8gZGF0ZSA9IFdlZCBKYW4gMDEgMDQ6MDA6MDAgUFNUIDE5OTcKKyAgICAgICAgLy8gb2Zmc2V0IGZvciBXZWQgSmFuIDAxIDA0OjAwOjAwIFBTVCAxOTk3PSAtOGhyCisgICAgICAgIGF1eDQwNjQ2NTQoMTk5NywgMSwgMSwgMTIsIDAsIDApOworCisgICAgICAgIC8vIFNhbXBsZSBvdXRwdXQgMjoKKyAgICAgICAgLy8gJSAvdXNyL2xvY2FsL2phdmEvamRrMS4xLjMvc29sYXJpcy9iaW4vamF2YSB0ZXN0IDE5OTcgNCAxNiAxOCAzMCAwCisgICAgICAgIC8vIGRhdGUgPSBXZWQgQXByIDE2IDEwOjMwOjAwIFBEVCAxOTk3CisgICAgICAgIC8vIG9mZnNldCBmb3IgV2VkIEFwciAxNiAxMDozMDowMCBQRFQgMTk5Nz0gLTdocgorCisgICAgICAgIC8vIE5vdGUgdGhhdCBpbiBzYW1wbGUgb3V0cHV0IDIgYWNjb3JkaW5nIHRvIHRoZSBvZmZzZXQsIHRoZSBnbXQgdGltZQorICAgICAgICAvLyBvZiB0aGUgcmVzdWx0IHdvdWxkIGJlIDE5OTcgNCAxNiAxNyAzMCAwIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHRoZQorICAgICAgICAvLyBpbnB1dCBvZiAxOTk3IDQgMTYgMTggMzAgMC4KKyAgICAgICAgYXV4NDA2NDY1NCgxOTk3LCA0LCAxNiwgMTgsIDMwLCAwKTsKKyAgICB9CisgICAgdm9pZCBhdXg0MDY0NjU0KGludCB5ciwgaW50IG1vLCBpbnQgZHQsIGludCBociwgaW50IG1uLCBpbnQgc2MpIHsKKyAgICAgICAgRGF0ZSBkYXRlOworICAgICAgICBDYWxlbmRhciBnbXRjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBnbXRjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFmcmljYS9DYXNhYmxhbmNhIikpOworICAgICAgICBnbXRjYWwuc2V0KHlyLCBtby0xLCBkdCwgaHIsIG1uLCBzYyk7CisgICAgICAgIGdtdGNhbC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgIGRhdGUgPSBnbXRjYWwuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiZGF0ZSA9ICIrZGF0ZSk7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbHMiKSk7CisgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUpOworCisgICAgICAgIGludCBvZmZzZXQgPSBjYWwuZ2V0VGltZVpvbmUoKS5nZXRPZmZzZXQoY2FsLmdldChDYWxlbmRhci5FUkEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSk7CisKKyAgICAgICAgbG9nbG4oIm9mZnNldCBmb3IgIitkYXRlKyI9ICIrKG9mZnNldC8xMDAwLzYwLzYwLjApICsgImhyIik7CisKKyAgICAgICAgaW50IHV0YyA9ICgoY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpKSAqIDEwMDAgKworICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgLSBvZmZzZXQ7CisKKyAgICAgICAgaW50IGV4cGVjdGVkID0gKChociAqIDYwICsgbW4pICogNjAgKyBzYykgKiAxMDAwOworCisgICAgICAgIGlmICh1dGMgIT0gZXhwZWN0ZWQpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGlzY3JlcGFuY3kgb2YgIiArCisgICAgICAgICAgICAgICAgICAodXRjIC0gZXhwZWN0ZWQpICsgIiBtaWxsaXMgPSAiICsKKyAgICAgICAgICAgICAgICAgICgodXRjLWV4cGVjdGVkKS8xMDAwLzYwLzYwLjApICsgIiBociIpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IGFkZCBhbmQgc2V0IHdvcmsgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgaW4gd2hpY2gKKyAgICAvLyB0aGV5IGFyZSBjYWxsZWQuCisgICAgcHVibGljIHZvaWQgVGVzdEFkZFNldE9yZGVyNjIxKCkgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDQsIDE0LCAxMywgMjMsIDQ1KTsKKyAgICAgICAgRGF0ZSBkID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UgKCk7CisgICAgICAgIGNhbC5zZXRUaW1lIChkKTsKKyAgICAgICAgY2FsLmFkZCAoQ2FsZW5kYXIuREFURSwgLTUpOworICAgICAgICBjYWwuc2V0IChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLk1JTlVURSwgMCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLlNFQ09ORCwgMCk7CisgICAgICAgIC8vIG1hIGZlYiAwMyAwMDowMDowMCBHTVQrMDA6MDAgMTk5NworICAgICAgICBTdHJpbmcgcyA9IGNhbC5nZXRUaW1lICgpLnRvU3RyaW5nICgpOworCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlICgpOworICAgICAgICBjYWwuc2V0VGltZSAoZCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLkhPVVJfT0ZfREFZLCAwKTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuTUlOVVRFLCAwKTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgY2FsLmFkZCAoQ2FsZW5kYXIuREFURSwgLTUpOworICAgICAgICAvLyBtYSBmZWIgMDMgMTM6MTE6MDYgR01UKzAwOjAwIDE5OTcKKyAgICAgICAgU3RyaW5nIHMyID0gY2FsLmdldFRpbWUgKCkudG9TdHJpbmcgKCk7CisKKyAgICAgICAgaWYgKHMuZXF1YWxzKHMyKSkKKyAgICAgICAgICAgIGxvZ2xuKCJQYXNzOiAiICsgcyArICIgPT0gIiArIHMyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBzICsgIiAhPSAiICsgczIpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IGFkZCB3b3Jrcy4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkNTIwKCkgeworICAgICAgICBpbnQgeSA9IDE5OTcsIG0gPSBDYWxlbmRhci5GRUJSVUFSWSwgZCA9IDE7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlbXAgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoIHksIG0sIGQgKTsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisKKyAgICAgICAgdGVtcC5hZGQoIENhbGVuZGFyLllFQVIsIDEgKTsKKyAgICAgICAgeSsrOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggQ2FsZW5kYXIuTU9OVEgsIDEgKTsKKyAgICAgICAgbSsrOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggQ2FsZW5kYXIuREFURSwgMSApOworICAgICAgICBkKys7CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworCisgICAgICAgIHRlbXAuYWRkKCBDYWxlbmRhci5EQVRFLCAyICk7CisgICAgICAgIGQgKz0gMjsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisKKyAgICAgICAgdGVtcC5hZGQoIENhbGVuZGFyLkRBVEUsIDI4ICk7CisgICAgICAgIGQgPSAxOyArK207CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworICAgIH0KKyAgICB2b2lkIGNoZWNrNTIwKENhbGVuZGFyIGMsIGludCB5LCBpbnQgbSwgaW50IGQpIHsKKyAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLllFQVIpICE9IHkgfHwKKyAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLk1PTlRIKSAhPSBtIHx8CisgICAgICAgICAgICBjLmdldChDYWxlbmRhci5EQVRFKSAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTFVSRTogRXhwZWN0ZWQgWUVBUi9NT05USC9EQVRFIG9mICIgKworICAgICAgICAgICAgICAgICAgeSArICIvIiArIChtKzEpICsgIi8iICsgZCArCisgICAgICAgICAgICAgICAgICAiOyBnb3QgIiArCisgICAgICAgICAgICAgICAgICBjLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgICAoYy5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGxvZ2xuKCJDb25maXJtZWQ6ICIgKworICAgICAgICAgICAgICAgICAgIHkgKyAiLyIgKyAobSsxKSArICIvIiArIGQpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IHNldHRpbmcgZmllbGRzIHdvcmtzLiAgVGhpcyB0ZXN0IGZhaWxzIHdoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RmllbGRTZXQ0NzgxKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZzIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgVVRDIHZhbHVlIGlzIHNldCwgdmFyaW91cyBmaWVsZHMgYXJlIG5vdC4KKyAgICAgICAgICAgIC8vIE5vdyBzZXQgdG8gbm9vbi4KKyAgICAgICAgICAgIGcyLnNldChDYWxlbmRhci5IT1VSLCAxMik7CisgICAgICAgICAgICBnMi5zZXQoQ2FsZW5kYXIuTUlOVVRFLCAwKTsKKyAgICAgICAgICAgIGcyLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgb2JqZWN0IHRoaW5rcyBVVEMgaXMgTk9UIHNldCwgYnV0IGZpZWxkcyBhcmUgc2V0LgorICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBsaW5lIHdpbGwgcmVzdWx0IGluIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBiZWNhdXNlCisgICAgICAgICAgICAvLyBpdCB0aGlua3MgdGhlIFlFQVIgaXMgc2V0IGFuZCBpdCBpcyBOT1QuCisgICAgICAgICAgICBpZiAoZzIuZXF1YWxzKGcpKQorICAgICAgICAgICAgICAgIGxvZ2xuKCJTYW1lIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nbG4oIkRpZmZlcmVudCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHNlZW46ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFRlc3Qgc2VyaWFsaXphdGlvbiBvZiBhIENhbGVuZGFyIG9iamVjdAorICAgIHB1YmxpYyB2b2lkIFRlc3RTZXJpYWxpemUzMzcoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisKKyAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gZiA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dCBzID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShmKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoUFJFRklYKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoY2FsKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoUE9TVEZJWCk7CisgICAgICAgICAgICBmLmNsb3NlKCk7CisKKyAgICAgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGluID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGYudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSB0ID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGluKTsKKyAgICAgICAgICAgIFN0cmluZyBwcmUgPSAoU3RyaW5nKXQucmVhZE9iamVjdCgpOworICAgICAgICAgICAgQ2FsZW5kYXIgYyA9IChDYWxlbmRhcil0LnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIFN0cmluZyBwb3N0ID0gKFN0cmluZyl0LnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIGluLmNsb3NlKCk7CisKKyAgICAgICAgICAgIG9rID0gcHJlLmVxdWFscyhQUkVGSVgpICYmCisgICAgICAgICAgICAgICAgcG9zdC5lcXVhbHMoUE9TVEZJWCkgJiYKKyAgICAgICAgICAgICAgICBjYWwuZXF1YWxzKGMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHJlY2VpdmVkOiIpOworICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHJlY2VpdmVkOiIpOworICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghb2spIGVycmxuKCJTZXJpYWxpemF0aW9uIG9mIENhbGVuZGFyIG9iamVjdCBmYWlsZWQuIik7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJFRklYID0gImFiYyI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBQT1NURklYID0gImRlZiI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFTkFNRSA9ICJ0bXAzMzcuYmluIjsKKworICAgIC8vIFRyeSB0byB6ZXJvIG91dCB0aGUgc2Vjb25kcyBmaWVsZAorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRzWmVybzEyMSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAvLyBJbml0aWFsaXplIHdpdGggY3VycmVudCBkYXRlL3RpbWUKKyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoKSk7CisgICAgICAgIC8vIFJvdW5kIGRvd24gdG8gbWludXRlCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgRGF0ZSAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgU3RyaW5nIHMgPSBkLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChzLmluZGV4T2YoIjowMCAiKSA8IDApIGVycmxuKCJFeHBlY3RlZCB0byBzZWUgOjAwIGluICIgKyBzKTsKKyAgICB9CisKKyAgICAvLyBUcnkgdmFyaW91cyBzZXF1ZW5jZXMgb2YgYWRkLCBzZXQsIGFuZCBnZXQgbWV0aG9kIGNhbGxzLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBZGRTZXRHZXQwNjEwKCkgeworICAgICAgICAvLworICAgICAgICAvLyBFcnJvciBjYXNlIDE6CisgICAgICAgIC8vIC0gVXBvbiBpbml0aWFsaXphdGlvbiBjYWxlbmRhciBmaWVsZHMsIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZQorICAgICAgICAvLyAtIEFmdGVyIHNldCBpcyBjYWxsZWQgZmllbGRzIGFyZSBpbml0aWFsaXplZCwgdGltZSBpcyBub3QKKyAgICAgICAgLy8gLSBBZGRpdGlvbiB1c2VzIG1pbGxpcyB3aGljaCBhcmUgc3RpbGwgKm5vdyoKKyAgICAgICAgLy8KKyAgICAgICAgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoICkgOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KCAxOTkzLCBDYWxlbmRhci5KQU5VQVJZLCA0ICkgOworICAgICAgICAgICAgbG9nbG4oICIxQSkgIiArIHZhbHVlKCBjYWxlbmRhciApICkgOworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5EQVRFLCAxICkgOworICAgICAgICAgICAgU3RyaW5nIHYgPSB2YWx1ZShjYWxlbmRhcik7CisgICAgICAgICAgICBsb2dsbiggIjFCKSAiICsgdiApOworICAgICAgICAgICAgbG9nbG4oICItLSkgMTk5My8wLzUiICkgOworICAgICAgICAgICAgaWYgKCF2LmVxdWFscyhFWFBFQ1RFRF8wNjEwKSkgZXJybG4oIkV4cGVjdGVkICIgKyBFWFBFQ1RFRF8wNjEwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IHNhdyAiICsgdik7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyBFcnJvciBjYXNlIDI6CisgICAgICAgIC8vIC0gVXBvbiBpbml0aWFsaXphdGlvbiBjYWxlbmRhciBmaWVsZHMgc2V0LCBtaWxsaXMgPSAwCisgICAgICAgIC8vIC0gQWRkaXRpb24gdXNlcyBtaWxsaXMgd2hpY2ggYXJlIHN0aWxsIDE5NzAsIDAsIDEKKyAgICAgICAgLy8KKworICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggMTk5MywgQ2FsZW5kYXIuSkFOVUFSWSwgNCApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiMkEpICIgKyB2YWx1ZSggY2FsZW5kYXIgKSApIDsKKyAgICAgICAgICAgIGNhbGVuZGFyLmFkZCggQ2FsZW5kYXIuREFURSwgMSApIDsKKyAgICAgICAgICAgIFN0cmluZyB2ID0gdmFsdWUoY2FsZW5kYXIpOworICAgICAgICAgICAgbG9nbG4oICIyQikgIiArIHYgKTsKKyAgICAgICAgICAgIGxvZ2xuKCAiLS0pIDE5OTMvMC81IiApIDsKKyAgICAgICAgICAgIGlmICghdi5lcXVhbHMoRVhQRUNURURfMDYxMCkpIGVycmxuKCJFeHBlY3RlZCAiICsgRVhQRUNURURfMDYxMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIHYpOworICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gRXJyb3IgY2FzZSAzOgorICAgICAgICAvLyAtIFVwb24gaW5pdGlhbGl6YXRpb24gY2FsZW5kYXIgZmllbGRzLCBtaWxsaXMgPSAwCisgICAgICAgIC8vIC0gZ2V0VGltZSggKSBpcyBjYWxsZWQgd2hpY2ggZm9yY2VzIHRoZSBtaWxsaXMgdG8gYmUgc2V0CisgICAgICAgIC8vIC0gQWRkaXRpb24gdXNlcyBtaWxsaXMgd2hpY2ggYXJlIGNvcnJlY3QKKyAgICAgICAgLy8KKworICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggMTk5MywgQ2FsZW5kYXIuSkFOVUFSWSwgNCApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiM0EpICIgKyB2YWx1ZSggY2FsZW5kYXIgKSApIDsKKyAgICAgICAgICAgIGNhbGVuZGFyLmdldFRpbWUoICkgOworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5EQVRFLCAxICkgOworICAgICAgICAgICAgU3RyaW5nIHYgPSB2YWx1ZShjYWxlbmRhcik7CisgICAgICAgICAgICBsb2dsbiggIjNCKSAiICsgdiApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiLS0pIDE5OTMvMC81IiApIDsKKyAgICAgICAgICAgIGlmICghdi5lcXVhbHMoRVhQRUNURURfMDYxMCkpIGVycmxuKCJFeHBlY3RlZCAiICsgRVhQRUNURURfMDYxMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIHYpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdmFsdWUoIENhbGVuZGFyIGNhbGVuZGFyICkgeworICAgICAgICByZXR1cm4oIGNhbGVuZGFyLmdldCggQ2FsZW5kYXIuWUVBUiApICArICIvIiArCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KCBDYWxlbmRhci5NT05USCApICsgIi8iICsKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoIENhbGVuZGFyLkRBVEUgKSApIDsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyBFWFBFQ1RFRF8wNjEwID0gIjE5OTMvMC81IjsKKworICAgIC8vIFRlc3QgdGhhdCBjZXJ0YWluIGZpZWxkcyBvbiBhIGNlcnRhaW4gZGF0ZSBhcmUgYXMgZXhwZWN0ZWQuCisgICAgcHVibGljIHZvaWQgVGVzdEZpZWxkczA2MCgpIHsKKyAgICAgICAgaW50IHllYXIgPSAxOTk3OworICAgICAgICBpbnQgbW9udGggPSBqYXZhLnV0aWwuQ2FsZW5kYXIuT0NUT0JFUjsgIC8vb2N0b2JlcgorICAgICAgICBpbnQgZERhdGUgPSAyMjsgICAvL0RBWU9GV0VFSyBzaG91bGQgcmV0dXJuIDMgZm9yIFdlZG5lc2RheQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG51bGw7CisKKyAgICAgICAgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoIHllYXIsIG1vbnRoLCBkRGF0ZSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxFWFBFQ1RFRF9GSUVMRFMubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGludCBmaWVsZCA9IEVYUEVDVEVEX0ZJRUxEU1tpKytdOworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gRVhQRUNURURfRklFTERTW2krK107CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KGZpZWxkKSAhPSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCAiICsgZmllbGQgKyAiIHRvIGhhdmUgdmFsdWUgIiArIGV4cGVjdGVkICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyByZWNlaXZlZCAiICsgY2FsZW5kYXIuZ2V0KGZpZWxkKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBpbnQgRVhQRUNURURfRklFTERTW10gPSB7CisgICAgICAgIENhbGVuZGFyLllFQVIsIDE5OTcsCisgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDIyLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgNCwKKyAgICAgICAgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDI5NQorICAgIH07CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgZmllbGRzIGFyZSBhcyBleHBlY3RlZCAobW9zdGx5IHplcm8pIGF0IHRoZSBlcG9jaCBzdGFydC4KKyAgICAvLyBOb3RlIHRoYXQgd2UgYWRqdXN0IGZvciB0aGUgZGVmYXVsdCB0aW1lem9uZSB0byBnZXQgbW9zdCB0aGluZ3MgdG8gemVyby4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXBvY2hTdGFydEZpZWxkcygpIHsKKyAgICAgICAgVGltZVpvbmUgeiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKC16LmdldFJhd09mZnNldCgpKTsKKyAgICAgICAgaWYgKHouaW5EYXlsaWdodFRpbWUoZCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiBTa2lwcGluZyB0ZXN0IGJlY2F1c2UgIiArIGQgKworICAgICAgICAgICAgICAgICAgIiBpcyBpbiBEU1QuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjLnNldFRpbWUoZCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Q2FsZW5kYXIuWk9ORV9PRkZTRVQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChjLmdldChpKSAhPSBFUE9DSF9GSUVMRFNbaV0pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCAiICsgaSArICIgdG8gaGF2ZSB2YWx1ZSAiICsgRVBPQ0hfRklFTERTW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgc2F3ICIgKyBjLmdldChpKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSAhPSB6LmdldFJhd09mZnNldCgpKQorICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCBaT05FX09GRlNFVCB0byBoYXZlIHZhbHVlICIgKyB6LmdldFJhd09mZnNldCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIGMuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpICE9IDApCisgICAgICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGZpZWxkIERTVF9PRkZTRVQgdG8gaGF2ZSB2YWx1ZSAwIiArCisgICAgICAgICAgICAgICAgICAgICAgIjsgc2F3ICIgKyBjLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSArICIgaW5zdGVhZCIpOworICAgICAgICB9CisgICAgfQorICAgIC8vIFRoZXNlIGFyZSB0aGUgZmllbGRzIGF0IHRoZSBlcG9jaCBzdGFydAorICAgIHN0YXRpYyBpbnQgRVBPQ0hfRklFTERTW10gPSB7IDEsIDE5NzAsIDAsIDEsIDEsIDEsIDEsIDUsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIC0yODgwMDAwMCwgMCB9OworCisgICAgLy8gVmVyaWZ5IHRoYXQgYXMgeW91IGFkZCBkYXlzIHRvIHRoZSBjYWxlbmRhciAoZS5nLiwgMjQgZGF5IHBlcmlvZHMpLAorICAgIC8vIHRoZSBkYXkgb2YgdGhlIHdlZWsgc2hpZnRzIGluIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorICAgIHB1YmxpYyB2b2lkIFRlc3RET1dQcm9ncmVzc2lvbigpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0KKyAgICAgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTcyLCBDYWxlbmRhci5PQ1RPQkVSLCAyNik7CisgICAgICAgIG1hcmNoQnlEZWx0YShjYWwsIDI0KTsgLy8gTGFzdCBwYXJhbWV0ZXIgbXVzdCBiZSAhPSAwIG1vZHVsbyA3CisgICAgfQorCisgICAgLy8gU3VwcGx5IGEgZGVsdGEgd2hpY2ggaXMgbm90IGEgbXVsdGlwbGUgb2YgNy4KKyAgICB2b2lkIG1hcmNoQnlEZWx0YShDYWxlbmRhciBjYWwsIGludCBkZWx0YSkgeworICAgICAgICBDYWxlbmRhciBjdXIgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgIGludCBpbml0aWFsRE9XID0gY3VyLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBET1csIG5ld0RPVyA9IGluaXRpYWxET1c7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIERPVyA9IG5ld0RPVzsKKyAgICAgICAgICAgIGxvZ2xuKCJET1cgPSAiICsgRE9XICsgIiAgIiArIGN1ci5nZXRUaW1lKCkpOworCisgICAgICAgICAgICBjdXIuYWRkKENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkZWx0YSk7CisgICAgICAgICAgICBuZXdET1cgPSBjdXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGludCBleHBlY3RlZERPVyA9IDEgKyAoRE9XICsgZGVsdGEgLSAxKSAlIDc7CisgICAgICAgICAgICBpZiAobmV3RE9XICE9IGV4cGVjdGVkRE9XKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkRheSBvZiB3ZWVrIHNob3VsZCBiZSAiICsgZXhwZWN0ZWRET1cgKworICAgICAgICAgICAgICAgICAgICAgICIgaW5zdGVhZCBvZiAiICsgbmV3RE9XICsgIiBvbiAiICsgY3VyLmdldFRpbWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlIChuZXdET1cgIT0gaW5pdGlhbERPVyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFjdHVhbE1pbk1heCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5NjcsIENhbGVuZGFyLk1BUkNILCAxMCk7CisgICAgICAgIGNhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5TVU5EQVkpOworICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygzKTsKKworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAxKQorICAgICAgICAgICAgZXJybG4oIkFjdHVhbCBtaW5pbXVtIGRhdGUgZm9yIDMvMTAvMTk2NyBzaG91bGQgaGF2ZSBiZWVuIDE7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAzMSkKKyAgICAgICAgICAgIGVycmxuKCJBY3R1YWwgbWF4aW11bSBkYXRlIGZvciAzLzEwLzE5Njcgc2hvdWxkIGhhdmUgYmVlbiAzMTsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuRkVCUlVBUlkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAyOCkKKyAgICAgICAgICAgIGVycmxuKCJBY3R1YWwgbWF4aW11bSBkYXRlIGZvciAyLzEwLzE5Njcgc2hvdWxkIGhhdmUgYmVlbiAyODsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gMzY1KQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiBkYXlzIGluIDE5Njcgc2hvdWxkIGhhdmUgYmVlbiAzNjU7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTY4KTsKKyAgICAgICAgaWYgKGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gMjkpCisgICAgICAgICAgICBlcnJsbigiQWN0dWFsIG1heGltdW0gZGF0ZSBmb3IgMi8xMC8xOTY4IHNob3VsZCBoYXZlIGJlZW4gMjk7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1lFQVIpICE9IDM2NikKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgZGF5cyBpbiAxOTY4IHNob3VsZCBoYXZlIGJlZW4gMzY2OyBnb3QgIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICAgICAgICAvLyBVc2luZyB3ZWVrIHNldHRpbmdzIG9mIFNVTkRBWS8zIChzZWUgYWJvdmUpCisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpICE9IDUyKQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB3ZWVrcyBpbiAxOTY4IHNob3VsZCBoYXZlIGJlZW4gNTI7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikpOworCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk3Nik7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGNhbC5nZXRGaXJzdERheU9mV2VlaygpKTsgLy8gQWRkZWQgLSBMaXUgMTEvNi8wMAorICAgICAgICAvLyBVc2luZyB3ZWVrIHNldHRpbmdzIG9mIFNVTkRBWS8zIChzZWUgYWJvdmUpCisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpICE9IDUzKQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB3ZWVrcyBpbiAxOTc2IHNob3VsZCBoYXZlIGJlZW4gNTM7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb2xsKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMzEpOworCisgICAgICAgIGludFtdIGRheVZhbHVlcyA9IHsgMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbDIgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgICAgICBjYWwyLnJvbGwoQ2FsZW5kYXIuTU9OVEgsIGkpOworICAgICAgICAgICAgaWYgKGNhbDIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gZGF5VmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJSb2xsaW5nIHRoZSBtb250aCBpbiAxLzMxLzE5OTcgdXAgYnkgIiArIGkgKyAiIHNob3VsZCBoYXZlIHlpZWxkZWQgIgorICAgICAgICAgICAgICAgICAgICAgICsgKChpICsgMSkgJSAxMikgKyAiLyIgKyBkYXlWYWx1ZXNbaV0gKyAiLzE5OTcsIGJ1dCBhY3R1YWxseSB5aWVsZGVkICIKKyAgICAgICAgICAgICAgICAgICAgICArICgoaSArIDEpICUgMTIpICsgIi8iICsgY2FsMi5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSArICIvMTk5Ny4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKworICAgICAgICAvL2ludFtdIG1vbnRoVmFsdWVzID0geyAxLCAyLCAyLCAyLCAxLCAyLCAyLCAyLCAxLCAyIH07CisgICAgICAgIC8vaW50W10gZGF5VmFsdWVzMiA9IHsgMjksIDEsIDEsIDEsIDI5LCAxLCAxLCAxLCAyOSwgMSB9OworCisgICAgICAgIC8vIEkndmUgcmV2aXNlZCB0aGUgZXhwZWN0ZWQgdmFsdWVzIHRvIG1ha2UgbW9yZSBzZW5zZSAtLSByb2xsaW5nCisgICAgICAgIC8vIHRoZSB5ZWFyIHNob3VsZCBwaW4gdGhlIERBWV9PRl9NT05USC4gLSBMaXUgMTEvNi8wMAorICAgICAgICBpbnRbXSBtb250aFZhbHVlcyA9IHsgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSB9OworICAgICAgICBpbnRbXSBkYXlWYWx1ZXMyID0geyAyOSwgMjgsIDI4LCAyOCwgMjksIDI4LCAyOCwgMjgsIDI5LCAyOCB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF5VmFsdWVzMi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgIGNhbDIucm9sbChDYWxlbmRhci5ZRUFSLCBpKTsKKyAgICAgICAgICAgIGlmIChjYWwyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IGRheVZhbHVlczJbaV0gfHwgY2FsMi5nZXQoQ2FsZW5kYXIuTU9OVEgpCisgICAgICAgICAgICAgICAgIT0gbW9udGhWYWx1ZXNbaV0pCisgICAgICAgICAgICAgICAgZXJybG4oIlJvbGwgMi8yOS8xOTk2IGJ5ICIgKyBpICsgIiB5ZWFyOiBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgKyAobW9udGhWYWx1ZXNbaV0gKyAxKSArICIvIiArIGRheVZhbHVlczJbaV0gKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICArICgxOTk2ICsgaSkgKyAiLCBnb3QgIgorICAgICAgICAgICAgICAgICAgICAgICsgKGNhbDIuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICsgIi8iICsgY2FsMi5nZXQoQ2FsZW5kYXIuWUVBUikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCByb2xsaW5nIGhvdXIgb2YgZGF5CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDApOworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5IT1VSX09GX0RBWSwgLTIpOworICAgICAgICBpbnQgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBpZiAoZiAhPSAyMikgZXJybG4oIlJvbGxpbmcgSE9VUl9PRl9EQVk9MCBkZWx0YT0tMiBnYXZlICIgKyBmICsgIiBXYW50ZWQgMjIiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDUpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGlmIChmICE9IDMpIGVycmxuKCJSb2xsaW5nIEhPVVJfT0ZfREFZPTIyIGRlbHRhPTUgZ2F2ZSAiICsgZiArICIgV2FudGVkIDMiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDIxKTsKKyAgICAgICAgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBpZiAoZiAhPSAwKSBlcnJsbigiUm9sbGluZyBIT1VSX09GX0RBWT0zIGRlbHRhPTIxIGdhdmUgIiArIGYgKyAiIFdhbnRlZCAwIik7CisKKyAgICAgICAgLy8gVGVzdCByb2xsaW5nIGhvdXIKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIC0yKTsKKyAgICAgICAgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUik7CisgICAgICAgIGlmIChmICE9IDEwKSBlcnJsbigiUm9sbGluZyBIT1VSPTAgZGVsdGE9LTIgZ2F2ZSAiICsgZiArICIgV2FudGVkIDEwIik7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIDUpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgaWYgKGYgIT0gMykgZXJybG4oIlJvbGxpbmcgSE9VUj0xMCBkZWx0YT01IGdhdmUgIiArIGYgKyAiIFdhbnRlZCAzIik7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIDkpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgaWYgKGYgIT0gMCkgZXJybG4oIlJvbGxpbmcgSE9VUj0zIGRlbHRhPTkgZ2F2ZSAiICsgZiArICIgV2FudGVkIDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcHV0ZUp1bGlhbkRheTQ0MDYoKSB7CisgICAgICAgIC8vIGpiNDQwNiBpcyBwcm9iYWJseSBub3QgYSBidWcsIHRoaXMgaXMgdG8gZG9jdW1lbnQgdGhlIGJlaGF2aW9yCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBmaW5hbCBpbnQgTUlMTElTX0lOX0RBWSA9IDEwMDAgKiA2MCAqIDYwICogMjQ7CisgICAgICAgIAorICAgICAgICBsb2dsbigianVsaWFuIGRheSB2YWx1ZSBqdW1wcyBhdCBjaGFuZ2VvdmVyIik7CisgICAgICAgIGZvciAoaW50IGRheSA9IDEyOyBkYXkgPCAxODsgKytkYXkpIHsKKyAgICAgICAgICAgIGNhbC5zZXQoMTU4MiwgOSwgZGF5KTsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGRheSArICJdICIgKyAoY2FsLmdldFRpbWVJbk1pbGxpcygpL01JTExJU19JTl9EQVkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJcbmp1bGlhbiBkYXlzIG5vdCBhY2N1cmF0ZSBiZWZvcmUgMSBNYXJjaCAwMDA0Iik7CisgICAgICAgIGZvciAoaW50IGRheSA9IDE7IGRheSA8IDM7ICsrZGF5KSB7CisgICAgICAgICAgICBjYWwuc2V0KDEsIDAsIGRheSk7CisgICAgICAgICAgICBsb2dsbigiWyIgKyBkYXkgKyAiXSAiICsgKGNhbC5nZXRUaW1lSW5NaWxsaXMoKS9NSUxMSVNfSU5fREFZKSk7CisgICAgICAgIH0KKworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsIDAsIExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIGxvZ2xuKCJcbnN3aXRjaG92ZXIgaW4gMTU4MiIpOworICAgICAgICBjYWwuc2V0KDE1ODIsIDksIDQpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkpVTElBTl9EQVksIDE3MjE0MjYpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworCisgICAgICAgIGxvZ2xuKCJcbmxhdGUgc3dpdGNob3ZlciAtIHByb2xlcHRpYyBKdWxpYW4iKTsKKyAgICAgICAgY2FsLnNldCgxNTgyLCA5LCA0KTsKKyAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkpVTElBTl9EQVksIDE3MjE0MjYpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworCisgICAgICAgIGxvZ2xuKCJcbmVhcmx5IHN3aXRjaG92ZXIgLSBwcm9sZXB0aWMgR3JlZ29yaWFuIik7CisgICAgICAgIGNhbC5zZXQoMTU4MiwgOSwgNCk7CisgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChjYWwpKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChjYWwpKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5KVUxJQU5fREFZLCAxNzIxNDI2KTsKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChjYWwpKTsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29wdGljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NvcHRpY1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmRjODYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NvcHRpY1Rlc3QuamF2YQpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFRlc3RzIGZvciB0aGUgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgQ29wdGljVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCAKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvcHRpY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqIENvbnN0YW50cyB0byBzYXZlIHR5cGluZy4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT1VUICAgICAgPSBDb3B0aWNDYWxlbmRhci5UT1VUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBQkEgICAgICA9IENvcHRpY0NhbGVuZGFyLkJBQkE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFUT1IgICAgID0gQ29wdGljQ2FsZW5kYXIuSEFUT1I7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lBSEsgICAgID0gQ29wdGljQ2FsZW5kYXIuS0lBSEs7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVE9CQSAgICAgID0gQ29wdGljQ2FsZW5kYXIuVE9CQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTVNISVIgICAgPSBDb3B0aWNDYWxlbmRhci5BTVNISVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFSQU1IQVQgID0gQ29wdGljQ2FsZW5kYXIuQkFSQU1IQVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFSQU1PVURBID0gQ29wdGljQ2FsZW5kYXIuQkFSQU1PVURBOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBU0hBTlMgICA9IENvcHRpY0NhbGVuZGFyLkJBU0hBTlM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFPTkEgICAgID0gQ29wdGljQ2FsZW5kYXIuUEFPTkE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVBFUCAgICAgID0gQ29wdGljQ2FsZW5kYXIuRVBFUDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVNSQSAgICAgPSBDb3B0aWNDYWxlbmRhci5NRVNSQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVNJRSAgICAgPSBDb3B0aWNDYWxlbmRhci5OQVNJRTsKKworICAgIC8qIFRlc3QgZGF0ZXMgZnJvbToKKyAgICAgKiAiVGhlIEFtaGFyaWMgTGV0dGVycyBvZiBFbXBlcm9yIFRoZW9kb3JlIG9mIEV0aGlvcGlhIHRvIFF1ZWVuIFZpY3RvcmlhIGFuZAorICAgICAqIEhlciBTcGVjaWFsIEVudm95IiwgRGF2aWQgQXBwbGV5YXJkLCBHaXJtYSBTZWxhc3NlIEFzZmF3LCBPeGZvcmQgVW5pdmVyc2l0eSBQcmVzcywgCisgICAgICogSnVuZSAxIDE5NzksIElTQk46IDA4NTY3MjY2MDUsIExvbmd3b29kIFByIEx0ZAorICAgICAqICAKKyAgICAgKiBDb3B0aWMgICAgICAgICBHcmVnb3JpYW4gICAgSkQKKyAgICAgKiAyMC8wMi8xNTc5ICAgICAyOS8xMC8xODYyICAyNDAxNDQzIAorICAgICAqIDI5LzEwLzE1ODEgICAgIDA1LzA3LzE4NjUgIDI0MDI0MjMKKyAgICAgKiAyMi8wNS8xNTgyICAgICAyOS8wMS8xODY2ICAyNDAyNjMxCisgICAgICogMTAvMDgvMTU4MiAgICAgMTcvMDQvMTg2NiAgMjQwMjcwOQorICAgICAqIDI4LzA0LzE1ODMgICAgIDA1LzAxLzE4NjcgIDI0MDI5NzIKKyAgICAgKiAwNS8wNS8xNTg0ICAgICAxMy8wMS8xODY4ICAyNDAzMzQ1CisgICAgICogCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAKKyAgICAgKiBGcm9tIHRoZSBDYWxlbmRyaWNhIGFwcGxldDogIGh0dHA6Ly9lbXIuY3MuaWl0LmVkdS9ob21lL3JlaW5nb2xkL2NhbGVuZGFyLWJvb2svQ2FsZW5kcmljYS5odG1sCisgICAgICogCisgICAgICogQ29wdGljICAgICAgICAgR3JlZ29yaWFuICAgIEpECisgICAgICogMDcvMDUvLTI4NCAgICAgMDEvMDEvMDAwMCAgMTcyMTA2MAorICAgICAqIDA4LzA1Ly0yODMgICAgIDAxLzAxLzAwMDEgIDE3MjE0MjYKKyAgICAgKiAwNi8xMy8tMSAgICAgICAyOS8wOC8wMjgzICAxODI0NjY0CisgICAgICogCisgICAgICogMDEvMDEvMDAwMCAgICAgMzAvMDgvMDI4MyAgMTgyNDY2NQorICAgICAqIDAxLzAxLzAwMDEgICAgIDI5LzA4LzAyODQgIDE4MjUwMzAKKyAgICAgKiAwMS8wMS8wMDAyICAgICAyOS8wOC8wMjg1ICAxODI1Mzk1CisgICAgICogMDEvMDEvMDAwMyAgICAgMjkvMDgvMDI4NiAgMTgyNTc2MAorICAgICAqIDAxLzAxLzAwMDQgICAgIDMwLzA4LzAyODcgIDE4MjYxMjYKKyAgICAgKiAwNS8xMy8wMDAwICAgICAyOC8wOC8wMjg0ICAxODI1MDI5IAorICAgICAqIDA1LzEzLzAwMDEgICAgIDI4LzA4LzAyODUgIDE4MjUzOTQKKyAgICAgKiAwNS8xMy8wMDAyICAgICAyOC8wOC8wMjg2ICAxODI1NzU5CisgICAgICogMDUvMTMvMDAwMyAgICAgMjgvMDgvMDI4NyAgMTgyNjEyNAorICAgICAqIDA2LzEzLzAwMDMgICAgIDI5LzA4LzAyODcgIDE4MjYxMjUgIGZpcnN0IGNvcHRpYyBsZWFwIHllYXIKKyAgICAgKiAwNS8xMy8wMDA0ICAgICAyOC8wOC8wMjg4ICAxODI2NDkwCisgICAgICogCisgICAgICogMDYvMDIvMTI5OSAgICAgMTMvMTAvMTU4MiAgMjI5OTE1OQorICAgICAqIDA3LzAyLzEyOTkgICAgIDE0LzEwLzE1ODIgIDIyOTkxNjAgIEp1bGlhbiAwNC8xMC8xNTgyCisgICAgICogMDgvMDIvMTI5OSAgICAgMTUvMTAvMTU4MiAgMjI5OTE2MQorICAgICAqIDA5LzAyLzEyOTkgICAgIDE2LzEwLzE1ODIgIDIyOTkxNjIKKyAgICAgKiAKKyAgICAgKiAyMy8wNC8xNjE2ICAgICAwMS8wMS8xOTAwICAyNDE1MDIxCisgICAgICogMjMvMDQvMTcyMSAgICAgMDEvMDEvMjAwNSAgMjQ1MzM3MiAKKyAgICAgKiAwNS8xMy8yMDAwICAgICAxMi8wOS8yMjg0ICAyNTU1NTI5CisgICAgICovCisKKyAgICAKKyAgICAvKiogQSBodWdlIGxpc3Qgb2YgdGVzdCBjYXNlcyB0byBtYWtlIHN1cmUgdGhhdCBjb21wdXRlVGltZSBhbmQgY29tcHV0ZUZpZWxkcworICAgICAqIHdvcmsgcHJvcGVybHkgZm9yIGEgd2lkZSByYW5nZSBvZiBkYXRhIGluIHRoZSBjaXZpbCBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZXMoKQorICAgIHsKKyAgICAgICAgZmluYWwgVGVzdENhc2VbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZCwKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQncyBlYXNpZXIgdG8gZWRpdCB0aGF0IHdheS4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIENvcHRpYworICAgICAgICAgICAgLy8gICAgICAgICAgSnVsaWFuIERheSAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIERhdGVzIGZyb20gIkVtcG9yZXIgVGhlb2RvcmUuLi4iCisKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAxNDQyLjUsICAxLCAgMTU3OSwgICAgMiwgIDIwLCAgV0VELCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDIwLzEwLzE4NjIKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNDIyLjUsICAxLCAgMTU4MSwgICAxMCwgIDI5LCAgV0VELCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzA3LzE4NjUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNjMwLjUsICAxLCAgMTU4MiwgICAgNSwgIDIyLCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzAxLzE4NjYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNzA4LjUsICAxLCAgMTU4MiwgICAgOCwgIDEwLCAgVFVFLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE3LzA0LzE4NjYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyOTcxLjUsICAxLCAgMTU4MywgICAgNCwgIDI4LCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzAxLzE4NjcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAzMzQ0LjUsICAxLCAgMTU4NCwgICAgNSwgICA1LCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDEzLzAxLzE4NjgKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIxMDU5LjUsICAwLCAgLTI4NCwgICAgNSwgICA3LCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDAKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIxNDI1LjUsICAwLCAgLTI4MywgICAgNSwgICA4LCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDEKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI0NjYzLjUsICAwLCAgICAtMSwgICAxMywgICA2LCAgV0VELCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODMKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI0NjY0LjUsICAxLCAgICAgMCwgICAgMSwgICAxLCAgVEhVLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDMwLzA4LzAyODMKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1MDI5LjUsICAxLCAgICAgMSwgICAgMSwgICAxLCAgRlJJLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODQKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1Mzk0LjUsICAxLCAgICAgMiwgICAgMSwgICAxLCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1NzU5LjUsICAxLCAgICAgMywgICAgMSwgICAxLCAgU1VOLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI2MTI1LjUsICAxLCAgICAgNCwgICAgMSwgICAxLCAgVFVFLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDMwLzA4LzAyODcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1MDI4LjUsICAxLCAgICAgMCwgICAxMywgICA1LCAgVEhVLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODQKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1MzkzLjUsICAxLCAgICAgMSwgICAxMywgICA1LCAgRlJJLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1NzU4LjUsICAxLCAgICAgMiwgICAxMywgICA1LCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI2MTIzLjUsICAxLCAgICAgMywgICAxMywgICA1LCAgU1VOLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI2MTI0LjUsICAxLCAgICAgMywgICAxMywgICA2LCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWJvdmUgaXMgZmlyc3QgY29wdGljIGxlYXAgeWVhcgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjY0ODkuNSwgIDEsICAgICA0LCAgIDEzLCAgIDUsICBUVUUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDI4OAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNTguNSwgIDEsICAxMjk5LCAgICAyLCAgIDYsICBXRUQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTMvMTAvMTU4MgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNTkuNSwgIDEsICAxMjk5LCAgICAyLCAgIDcsICBUSFUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTQvMTAvMTU4MgorCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE2MC41LCAgMSwgIDEyOTksICAgIDIsICAgOCwgIEZSSSwgICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNS8xMC8xNTgyCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE2MS41LCAgMSwgIDEyOTksICAgIDIsICAgOSwgIFNBVCwgICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNi8xMC8xNTgyCisKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDE1MDIwLjUsICAxLCAgMTYxNiwgICAgNCwgIDIzLCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzE5MDAKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUzMzcxLjUsICAxLCAgMTcyMSwgICAgNCwgIDIzLCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzIwMDUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNTU1NTI4LjUsICAxLCAgMjAwMCwgICAxMywgICA1LCAgRlJJLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDEyLzA5LzIyODQKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIENvcHRpY0NhbGVuZGFyIHRlc3RDYWxlbmRhciA9IG5ldyBDb3B0aWNDYWxlbmRhcigpOworICAgICAgICB0ZXN0Q2FsZW5kYXIuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgZG9UZXN0Q2FzZXModGVzdHMsIHRlc3RDYWxlbmRhcik7CisgICAgfQorCisgICAgLy8gYmFzaWMgc2FuaXR5IGNoZWNrIHRoYXQgdGhlIGNvbnZlcnNpb24gYWxnb3JpdGhtIHJvdW5kLXRyaXBzCisgICAgcHVibGljIHZvaWQgVGVzdENvcHRpY1RvSkQoKSB7CisgICAgICAgIGZvciAoaW50IHkgPSAtMjsgeSA8IDM7ICsreSkgeworICAgICAgICAgICAgZm9yIChpbnQgbSA9IDA7IG0gPCAxMjsgKyttKSB7IC8vIGRvbid0IHVuZGVyc3RhbmQgcnVsZXMgZm9yIDEzdGggbW9udGgKKyAgICAgICAgICAgICAgICBmb3IgKGludCBkID0gMTsgZCA8IDI1OyBkICs9IDMpIHsgLy8gcGxheSBpdCBzYWZlIG9uIGRheXMgcGVyIG1vbnRoCisgICAgICAgICAgICAgICAgICAgIGludCBqZCA9IENvcHRpY0NhbGVuZGFyLmNvcHRpY1RvSkQoeSwgbSwgZCk7CisgICAgICAgICAgICAgICAgICAgIEludGVnZXJbXSByZXMgPSBDb3B0aWNDYWxlbmRhci5nZXREYXRlRnJvbUpEKGpkKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCEoeSA9PSByZXNbMF0uaW50VmFsdWUoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICBtID09IHJlc1sxXS5pbnRWYWx1ZSgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPT0gcmVzWzJdLmludFZhbHVlKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigieTogIiArIHkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBtOiAiICsgbSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBkOiAiICsgZCArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtLT4gamQ6ICIgKyBqZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0tPiB5OiAiICsgcmVzWzBdLmludFZhbHVlKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBtOiAiICsgcmVzWzFdLmludFZhbHVlKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBkOiAiICsgcmVzWzJdLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gYmFzaWMgY2hlY2sgdG8gc2VlIHRoYXQgd2UgcHJpbnQgb3V0IGVyYXMgb2sKKyAgICAvLyBldmVudHVhbGx5IHNob3VsZCBtb2RpZnkgdG8gdXNlIGxvY2FsZSBzdHJpbmdzIGFuZCBmb3JtYXR0ZXIgYXBwcm9wcmlhdGUgdG8gY29wdGljIGNhbGVuZGFyCisgICAgcHVibGljIHZvaWQgVGVzdEVyYVN0YXJ0KCkgeworICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoMCwgMCwgMSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQsIHl5eXkgR0ciKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDb3B0aWMgRGF0ZSIsICJUaHUgSmFuIDAxLCAwMDAwIEFEIiwgZm10LmZvcm1hdChjYWwpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJHcmVnb3JpYW4gRGF0ZSIsICJUaHUgQXVnIDMwLCAwMjgzIEFEIiwgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJhc2ljKCkgeworICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTAwMCwgMCwgMzApOworICAgICAgICBsb2dsbigiMTAwMC8wLzMwLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMSwgMCwgMzApOworICAgICAgICBsb2dsbigiMS8wLzMwIC0+ICIgKworICAgICAgICAgICAgICBjYWwuZ2V0KFlFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgY2FsLmdldChNT05USCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgY2FsLmdldChEQVRFKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZSkKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDb3B0aWNDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgQ29wdGljQ2FsZW5kYXIoVUxvY2FsZSkKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCBVTG9jYWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihMb2NhbGUpCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCBMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKFRpbWVab25lLCBMb2NhbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggVGltZVpvbmUsIExvY2FsZSIpOyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZSwgVUxvY2FsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSxVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDb3B0aWNDYWxlbmRhciB3aXRoIFRpbWVab25lLCBVTG9jYWxlIik7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihEYXRlKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKG5ldyBEYXRlKCkpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggRGF0ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKDE5OTcsIENvcHRpY0NhbGVuZGFyLlRPVVQsIDEpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgQ29wdGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKDE5OTcsIENvcHRpY0NhbGVuZGFyLlRPVVQsIDEsIDEsIDEsIDEpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlLGhvdXIsbWludXRlLHNlY29uZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGRhdGEKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcigxOTk3LCBDb3B0aWNDYWxlbmRhci5UT1VULCAxKTsKKyAgICAgICAgICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIFN0cmluZ1tdIGNhbGVuZGFyTG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiYW1fRVQiLCAiZ2V6X0VUIiwgInRpX0VUIgorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiZW4iLCAiYW0iLCAiYW1fRVQiLCAiZ2V6IiwgInRpIgorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisgICAgICAgICAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgICAgICAgICAgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFllYXIoKSB7CisgICAgICAgIC8vIEdyZWdvcmlhbiBDYWxlbmRhcgorICAgICAgICBDYWxlbmRhciBnQ2FsPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgRGF0ZSBnVG9kYXk9Z0NhbC5nZXRUaW1lKCk7CisgICAgICAgIGdDYWwuYWRkKEdyZWdvcmlhbkNhbGVuZGFyLk1PTlRILDIpOworICAgICAgICBEYXRlIGdGdXR1cmU9Z0NhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGVGb3JtYXQgZ0RGID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoZ0NhbCxEYXRlRm9ybWF0LkZVTEwpOworICAgICAgICBsb2dsbigiZ3JlZ29yaWFuIGNhbGVuZGFyOiAiICsgZ0RGLmZvcm1hdChnVG9kYXkpICsKKyAgICAgICAgICAgICAgIiArIDIgbW9udGhzID0gIiArIGdERi5mb3JtYXQoZ0Z1dHVyZSkpOworCisgICAgICAgIC8vIENvcHRpYyBDYWxlbmRhcgorICAgICAgICBDb3B0aWNDYWxlbmRhciBjQ2FsPSBuZXcgQ29wdGljQ2FsZW5kYXIoKTsKKyAgICAgICAgRGF0ZSBjVG9kYXk9Y0NhbC5nZXRUaW1lKCk7CisgICAgICAgIGNDYWwuYWRkKENvcHRpY0NhbGVuZGFyLk1PTlRILDIpOworICAgICAgICBEYXRlIGNGdXR1cmU9Y0NhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGVGb3JtYXQgY0RGID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY0NhbCxEYXRlRm9ybWF0LkZVTEwpOworICAgICAgICBsb2dsbigiY29wdGljIGNhbGVuZGFyOiAiICsgY0RGLmZvcm1hdChjVG9kYXkpICsKKyAgICAgICAgICAgICAgIiArIDIgbW9udGhzID0gIiArIGNERi5mb3JtYXQoY0Z1dHVyZSkpOworCisgICAgICAgIC8vIEV0aGlvcGljQ2FsZW5kYXIKKyAgICAgICAgRXRoaW9waWNDYWxlbmRhciBlQ2FsPSBuZXcgRXRoaW9waWNDYWxlbmRhcigpOworICAgICAgICBEYXRlIGVUb2RheT1lQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgZUNhbC5hZGQoRXRoaW9waWNDYWxlbmRhci5NT05USCwyKTsgLy8gYWRkIDIgbW9udGhzCisgICAgICAgIGVDYWwuc2V0QW1ldGVBbGVtRXJhKGZhbHNlKTsKKyAgICAgICAgRGF0ZSBlRnV0dXJlPWVDYWwuZ2V0VGltZSgpOworICAgICAgICBEYXRlRm9ybWF0IGVERiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGVDYWwsRGF0ZUZvcm1hdC5GVUxMKTsKKyAgICAgICAgbG9nbG4oImV0aGlvcGljIGNhbGVuZGFyOiAiICsgZURGLmZvcm1hdChlVG9kYXkpICsKKyAgICAgICAgICAgICAgIiArIDIgbW9udGhzID0gIiArIGVERi5mb3JtYXQoZUZ1dHVyZSkpOwkJCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0V0aGlvcGljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0V0aGlvcGljVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZTU2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvRXRoaW9waWNUZXN0LmphdmEKQEAgLTAsMCArMSwzNDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkV0aGlvcGljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEV0aGlvcGljVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCAKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEV0aGlvcGljVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiogQ29uc3RhbnRzIHRvIHNhdmUgdHlwaW5nLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FU0tFUkVNID0gRXRoaW9waWNDYWxlbmRhci5NRVNLRVJFTTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURUtFTVQgICA9IEV0aGlvcGljQ2FsZW5kYXIuVEVLRU1UOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFREFSICAgID0gRXRoaW9waWNDYWxlbmRhci5IRURBUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUhTQVMgICA9IEV0aGlvcGljQ2FsZW5kYXIuVEFIU0FTOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUiAgICAgID0gRXRoaW9waWNDYWxlbmRhci5URVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUVLQVRJVCAgPSBFdGhpb3BpY0NhbGVuZGFyLllFS0FUSVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVHQUJJVCAgPSBFdGhpb3BpY0NhbGVuZGFyLk1FR0FCSVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlBWklBICAgPSBFdGhpb3BpY0NhbGVuZGFyLk1JQVpJQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU5CT1QgICA9IEV0aGlvcGljQ2FsZW5kYXIuR0VOQk9UOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTkUgICAgID0gRXRoaW9waWNDYWxlbmRhci5TRU5FOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTUxFICAgID0gRXRoaW9waWNDYWxlbmRhci5IQU1MRTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORUhBU1NFICA9IEV0aGlvcGljQ2FsZW5kYXIuTkVIQVNTRTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQUdVTUVOICA9IEV0aGlvcGljQ2FsZW5kYXIuUEFHVU1FTjsKKworICAgIC8qIERZWzIwMDUwNTA3XSAgSSBkb24ndCBrbm93IHdoYXQgdGhpcyBpcyBmb3IgeWV0OiAKKyAgICAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIHJvbGwgYnkgICAgICAgICAgb3V0cHV0CisgICAgICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgCisgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICAwMDAxLCBISUpKQUgsICAgIDIgfSwgICAvLyBub24tbGVhcCB5ZWFycworICAgICAgIHsgICAwMDAxLCBRSURBSCwgICAgIDIsICAgICBNT05USCwgICAyLCAgICAgMDAwMSwgTVVIQVJSQU0sICAyIH0sCisgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgLTEsICAgICAwMDAxLCBTSEFXV0FMLCAgIDIgfSwKKyAgICAgICB7ICAgMDAwMSwgTVVIQVJSQU0sICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDAwMDEsIE1VSEFSUkFNLCAgMiB9LAorICAgICAgIHsgICAwMDAxLCBNVUhBUlJBTSwgIDIsICAgICBNT05USCwgIDEzLCAgICAgMDAwMSwgU0FGQVIsICAgICAyIH0sCisKKyAgICAgICB7ICAgMDAwMSwgSElKSkFILCAgICAxLCAgICAgREFURSwgICAzMCwgICAgIDAwMDEsIEhJSkpBSCwgICAgMiB9LCAgIC8vIDI5LWRheSBtb250aAorICAgICAgIHsgICAwMDAyLCBISUpKQUgsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgMDAwMiwgSElKSkFILCAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisKKyAgICAgICAvLyBUcnkgc29tZSByb2xscyB0aGF0IHJlcXVpcmUgb3RoZXIgZmllbGRzIHRvIGJlIGFkanVzdGVkCisgICAgICAgeyAgIDAwMDEsIE1VSEFSUkFNLCAzMCwgICAgIE1PTlRILCAgIDEsICAgICAwMDAxLCBTQUZBUiwgICAgMjkgfSwKKyAgICAgICB7ICAgMDAwMiwgSElKSkFILCAgIDMwLCAgICAgWUVBUiwgICAtMSwgICAgIDAwMDEsIEhJSkpBSCwgICAyOSB9LAorICAgICAgIH07CisgICAgICAgCisgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXdDaXZpbCgpOworCisgICAgICAgZG9Sb2xsQWRkKFJPTEwsIGNhbCwgdGVzdHMpOworICAgICAgIH0KKyAgICAqLworCisgICAgLyogVGVzdCBkYXRlcyBmcm9tOgorICAgICAqICJUaGUgQW1oYXJpYyBMZXR0ZXJzIG9mIEVtcGVyb3IgVGhlb2RvcmUgb2YgRXRoaW9waWEgdG8gUXVlZW4gVmljdG9yaWEgYW5kCisgICAgICogSGVyIFNwZWNpYWwgRW52b3kiLCBEYXZpZCBBcHBsZXlhcmQsIEdpcm1hIFNlbGFzc2UgQXNmYXcsIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLCAKKyAgICAgKiBKdW5lIDEgMTk3OSwgSVNCTjogMDg1NjcyNjYwNSwgTG9uZ3dvb2QgUHIgTHRkCisgICAgICogIAorICAgICAqIEV0aGlvcGljICAgICAgIEdyZWdvcmlhbiAgICBKRAorICAgICAqIDIwLzAyLzE4NTUgICAgIDI5LzEwLzE4NjIgIDI0MDE0NDMKKyAgICAgKiAyOS8xMC8xODU3ICAgICAwNS8wNy8xODY1ICAyNDAyNDIzCisgICAgICogMjIvMDUvMTg1OCAgICAgMjkvMDEvMTg2NiAgMjQwMjYzMQorICAgICAqIDEwLzA4LzE4NTggICAgIDE3LzA0LzE4NjYgIDI0MDI3MDkKKyAgICAgKiAyOC8wNC8xODU5ICAgICAwNS8wMS8xODY3ICAyNDAyOTcyCisgICAgICogMDUvMDUvMTg2MCAgICAgMTMvMDEvMTg2OCAgMjQwMzM0NQorICAgICAqIAorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogCisgICAgICogRnJvbSB0aGUgQ2FsZW5kcmljYSBhcHBsZXQ6ICBodHRwOi8vZW1yLmNzLmlpdC5lZHUvaG9tZS9yZWluZ29sZC9jYWxlbmRhci1ib29rL0NhbGVuZHJpY2EuaHRtbAorICAgICAqIAorICAgICAqIEV0aGlvcGljICAgICAgIEdyZWdvcmlhbiAgICBKRAorICAgICAqIDA3LzA1Ly04ICAgICAgIDAxLzAxLzAwMDAgIDE3MjEwNjAKKyAgICAgKiAwOC8wNS8tNyAgICAgICAwMS8wMS8wMDAxICAxNzIxNDI2CisgICAgICogMDYvMTMvLTEgICAgICAgMjcvMDgvMDAwNyAgMTcyMzg1NQorICAgICAqIAorICAgICAqIDAxLzAxLzAwMDAgICAgIDI4LzA4LzAwMDcgIDE3MjM4NTYKKyAgICAgKiAwMS8wMS8wMDAxICAgICAyNy8wOC8wMDA4ICAxNzI0MjIxCisgICAgICogMDEvMDEvMDAwMiAgICAgMjcvMDgvMDAwOSAgMTcyNDU4NgorICAgICAqIDAxLzAxLzAwMDMgICAgIDI3LzA4LzAwMTAgIDE3MjQ5NTEKKyAgICAgKiAwMS8wMS8wMDA0ICAgICAyOC8wOC8wMDExICAxNzI0NTM3CisgICAgICogMDUvMTMvMDAwMCAgICAgMjYvMDgvMDAwOCAgMTcyNDIyMAorICAgICAqIDA1LzEzLzAwMDEgICAgIDI2LzA4LzAwMDkgIDE3MjQ1ODUKKyAgICAgKiAwNS8xMy8wMDAyICAgICAyNi8wOC8wMDEwICAxNzI0OTUwCisgICAgICogMDUvMTMvMDAwMyAgICAgMjYvMDgvMDAxMSAgMTcyNTMxNQorICAgICAqIDA2LzEzLzAwMDMgICAgIDI3LzA4LzAwMTEgIDE3MjUzMTYgIGZpcnN0IGV0aGlvcGlhbiBsZWFwIHllYXIKKyAgICAgKiAwNS8xMy8wMDA0ICAgICAyNi8wOC8wMDEyICAxNzI1NTYxCisgICAgICogCisgICAgICogMDYvMDIvMTU3NSAgICAgMTMvMTAvMTU4MiAgMjI5OTE1OQorICAgICAqIDA3LzAyLzE1NzUgICAgIDE0LzEwLzE1ODIgIDIyOTkxNjAgIEp1bGlhbiAwNC8xMC8xNTgyCisgICAgICogMDgvMDIvMTU3NSAgICAgMTUvMTAvMTU4MiAgMjI5OTE2MQorICAgICAqIDA5LzAyLzE1NzUgICAgIDE2LzEwLzE1ODIgIDIyOTkxNjIKKyAgICAgKiAKKyAgICAgKiAyMy8wNC8xODkyICAgICAwMS8wMS8xOTAwICAyNDE1MDIxCisgICAgICogMjMvMDQvMTk5NyAgICAgMDEvMDEvMjAwNSAgMjQ1MzM3MgorICAgICAqIDA1LzEzLzIwMDAgICAgIDEwLzA5LzIwMDggIDI0NTQ3MjAKKyAgICAgKi8KKyAgICAKKyAgICAvKiogQSBodWdlIGxpc3Qgb2YgdGVzdCBjYXNlcyB0byBtYWtlIHN1cmUgdGhhdCBjb21wdXRlVGltZSBhbmQgY29tcHV0ZUZpZWxkcworICAgICAqIHdvcmsgcHJvcGVybHkgZm9yIGEgd2lkZSByYW5nZSBvZiBkYXRhIGluIHRoZSBjaXZpbCBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZXMoKQorICAgIHsKKyAgICAgICAgZmluYWwgVGVzdENhc2VbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZCwKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQncyBlYXNpZXIgdG8gZWRpdCB0aGF0IHdheS4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIEV0aGlvcGljCisgICAgICAgICAgICAvLyAgICAgICAgICBKdWxpYW4gRGF5ICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gRGF0ZXMgZnJvbSAiRW1wb3JlciBUaGVvZG9yZS4uLiIKKworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDE0NDIuNSwgIDEsICAxODU1LCAgICAyLCAgMjAsICBXRUQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyOS8xMC8xODYyCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQwMjQyMi41LCAgMSwgIDE4NTcsICAgMTAsICAyOSwgIFdFRCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzA3LzE4NjUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNjMwLjUsICAxLCAgMTg1OCwgICAgNSwgIDIyLCAgTU9OLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDEvMTg2NgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDI3MDguNSwgIDEsICAxODU4LCAgICA4LCAgMTAsICBUVUUsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNy8wNC8xODY2CisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQwMjk3MS41LCAgMSwgIDE4NTksICAgIDQsICAyOCwgIFNBVCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzAxLzE4NjcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAzMzQ0LjUsICAxLCAgMTg2MCwgICAgNSwgICA1LCAgTU9OLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTMvMDEvMTg2OAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBNaXNjZWxsYW5lb3VzOgorICAgICAgICAgICAgLyogU2tpcCB0aGVzZSB0ZXN0cyB1bnRpbCBKRCBidWcgZml4ZWQgaW4gdGhlIEdyZWdvcmlhbiBjYWxlbmRhcjoKKyAgICAgICAgICAgICAqIGh0dHA6Ly93d3cuanRjc3YuY29tL2NnaWJpbi9pY3UtYnVncy9pbmNvbWluZz9pZD00NDA2O3BhZ2U9Mjt1c2VyPWd1ZXN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyMTA1OS41LCAgMCwgICAgLTgsICAgIDUsICAgNywgIFNBVCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDAKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyMTQyNS41LCAgMCwgICAgLTcsICAgIDUsICAgOCwgIE1PTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDEKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyMzg1NC41LCAgMCwgICAgLTEsICAgMTMsICAgNiwgIE1PTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI3LzA4LzAwMDcKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIzODU1LjUsICAxLCAgICAgMCwgICAgMSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDAwNworICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0MjIwLjUsICAxLCAgICAgMSwgICAgMSwgICAxLCAgV0VELCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAwOAorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0NTg1LjUsICAxLCAgICAgMiwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAwOQorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0OTUwLjUsICAxLCAgICAgMywgICAgMSwgICAxLCAgRlJJLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAxMAorCisgICAgICAgICAgICAvLyBuZXcgVGVzdENhc2UoMTcyNDUzNi41LCAgMSwgICAgIDQsICAgIDEsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAwMTEKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNTMxNi41LCAgMSwgICAgIDQsICAgIDEsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAwMTEgLSBkbGYKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNDIxOS41LCAgMSwgICAgIDAsICAgMTMsICAgNSwgIFRVRSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMDgKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNDU4NC41LCAgMSwgICAgIDEsICAgMTMsICAgNSwgIFdFRCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMDkKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNDk0OS41LCAgMSwgICAgIDIsICAgMTMsICAgNSwgIFRIVSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMTAKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNTMxNC41LCAgMSwgICAgIDMsICAgMTMsICAgNSwgIEZSSSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMTEKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNTMxNS41LCAgMSwgICAgIDMsICAgMTMsICAgNiwgIFNBVCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI3LzA4LzAwMTEgLSBmaXJzdCBldGhpb3BpYyBsZWFwIHllYXIKKyAgICAgICAgICAgIC8vIG5ldyBUZXN0Q2FzZSgxNzI1NTYwLjUsICAxLCAgICAgNCwgICAxMywgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAxMiAtIGRsZgorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI1NjgwLjUsICAxLCAgICAgNCwgICAxMywgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAxMgorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjk5MTU4LjUsICAxLCAgMTU3NSwgICAgMiwgICA2LCAgV0VELCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTMvMTAvMTU4MiAgCisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNTkuNSwgIDEsICAxNTc1LCAgICAyLCAgIDcsICBUSFUsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNC8xMC8xNTgyICBKdWxpYW4gMDQvMTAvMTU4MgorCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE2MC41LCAgMSwgIDE1NzUsICAgIDIsICAgOCwgIEZSSSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE1LzEwLzE1ODIKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjk5MTYxLjUsICAxLCAgMTU3NSwgICAgMiwgICA5LCAgU0FULCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTYvMTAvMTU4MgorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQxNTAyMC41LCAgMSwgIDE4OTIsICAgIDQsICAyMywgIE1PTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzE5MDAKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUzMzcxLjUsICAxLCAgMTk5NywgICAgNCwgIDIzLCAgU0FULCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMjAwNQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTQ3MTkuNSwgIDEsICAyMDAwLCAgIDEzLCAgIDUsICBXRUQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxMC8wOS8yMDA4CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIHRlc3RDYWxlbmRhciA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKCk7CisgICAgICAgIHRlc3RDYWxlbmRhci5zZXRMZW5pZW50KHRydWUpOworICAgICAgICBkb1Rlc3RDYXNlcyh0ZXN0cywgdGVzdENhbGVuZGFyKTsKKyAgICB9CisKKyAgICAvLyBiYXNpYyBjaGVjayB0byBzZWUgdGhhdCB3ZSBwcmludCBvdXQgZXJhcyBvaworICAgIC8vIGV2ZW50dWFsbHkgc2hvdWxkIG1vZGlmeSB0byB1c2UgbG9jYWxlIHN0cmluZ3MgYW5kIGZvcm1hdHRlciBhcHByb3ByaWF0ZSB0byBjb3B0aWMgY2FsZW5kYXIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXJhU3RhcnQoKSB7CisgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoMCwgMCwgMSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQsIHl5eXkgR0ciKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJFdGhpb3BpYyBEYXRlIiwgIlR1ZSBKYW4gMDEsIDAwMDAgQUQiLCBmbXQuZm9ybWF0KGNhbCkpOworCisgICAgICAgIC8vIFRoZSBncmVnb3JpYW4gY2FsZW5kYXIgZ2V0cyBvZmYgYnkgdHdvIGRheXMgd2hlbgorICAgICAgICAvLyB0aGUgZGF0ZSBnZXRzIGxvdywgdW5sZXNzIHRoZSBncmVnb3JpYW4gY2hhbmdlb3ZlciBpcyBzZXQgdG8gCisgICAgICAgIC8vIHZlcnkgZWFybHkuICBUaGUgZnVubnkgdGhpbmcgaXMsIGl0J3Mgb2sgZm9yIGRhdGVzIGluIHRoZSB5ZWFyCisgICAgICAgIC8vIDI4MywgYnV0IG5vdCBpbiB0aGUgeWVhciA3LCBhbmQgaXQgY2xhaW1zIHRvIGJlIG9rIHVudGlsIHRoZSB5ZWFyIDQuCisgICAgICAgIC8vIHNob3VsZCB0cmFjayBkb3duIHdoZW4gdGhlIGRhdGVzIHN0YXJ0IHRvIGRpZmZlci4uLgorICAgICAgICAKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgZ2Muc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7IC8vIGFjdCBsaWtlIHByb2xlcHRpYyBHcmVnb3JpYW4KKyAgICAgICAgZ2Muc2V0VGltZShjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJHcmVnb3JpYW4gRGF0ZSIsICJUdWUgQXVnIDI4LCAwMDA3IEFEIiwgZm10LmZvcm1hdChnYykpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKyAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcigpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxMDAwLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxMDAwLzAvMzAtPiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChZRUFSKSArICIvIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICsgIi8iICsgCisgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxLzAvMzAgLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEpEKCl7CisgICAgICAgIGludCBqZCA9IEV0aGlvcGljQ2FsZW5kYXIuRXRoaW9waWNUb0pEKDE1NjcsOCw5KTsKKyAgICAgICAgSW50ZWdlcltdIGwgPSBFdGhpb3BpY0NhbGVuZGFyLmdldERhdGVGcm9tSkQoamQpOworICAgICAgICBpZiAobFswXS5pbnRWYWx1ZSgpID09IDE1NjcgJiYKKyAgICAgICAgICAgIGxbMV0uaW50VmFsdWUoKSA9PSA4ICYmCisgICAgICAgICAgICBsWzJdLmludFZhbHVlKCkgPT0gOSl7CisgICAgICAgICAgICBsb2dsbigiRXRoaW9waWNDYWxlbmRhci5nZXREYXRlRnJvbUpEIHRlc3RlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkV0aGlvcGljQ2FsZW5kYXIuZ2V0RGF0ZUZyb21KRCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSkKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihVTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIFVMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IEV0aGlvcGljQ2FsZW5kYXIoTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggTG9jYWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSwgTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEV0aGlvcGljQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSxMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lLCBVTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggVGltZVpvbmUsVUxvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihEYXRlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggRGF0ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IEV0aGlvcGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKDE5OTcsIEV0aGlvcGljQ2FsZW5kYXIuTUVTS0VSRU0sIDEpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEV0aGlvcGljQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoMTk5NywgRXRoaW9waWNDYWxlbmRhci5NRVNLRVJFTSwgMSwgMSwgMSwgMSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0ZSxob3VyLG1pbnV0ZSxzZWNvbmQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIHNldENpdmlsL2lzQ2l2aWwKKyAgICAgICAgICAgIC8vIG9wZXJhdGlvbnMgb24gbm9uLWNpdmlsIGNhbGVuZGFyCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ld0FtZXRlQWxlbUVyYUNhbGVuZGFyKCk7CisgICAgICAgICAgICBjYWwuc2V0QW1ldGVBbGVtRXJhKGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChjYWwuaXNBbWV0ZUFsZW1FcmEoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFdGhpb3BpY0NhbGVuZGFyIGNhbGVuZGFyIGlzIG9sZCBzeXN0ZW0iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRGF0ZSBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgY2FsLnNldFRpbWUobm93KTsKKworICAgICAgICAgICAgRGF0ZSB0aGVuID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmICghbm93LmVxdWFscyh0aGVuKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXQvc2V0IHRpbWUgZmFpbGVkIHdpdGggbm9uLWNpdmlsIEV0aGlvcGljQ2FsZW5kYXIgY2FsZW5kYXIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nbG4odGhlbi50b1N0cmluZygpKTsKKworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworCisgICAgICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGRhdGEKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoMTk5NywgRXRoaW9waWNDYWxlbmRhci5NRVNLRVJFTSwgMSk7CisgICAgICAgICAgICBEYXRlIHRpbWUgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgImFtX0VUIiwgImdlel9FVCIsICJ0aV9FVCIKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgImVuIiwgImFtIiwgImdleiIsICJ0aSIKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjYWxMb2NOYW1lID0gY2FsZW5kYXJMb2NhbGVzW2ldOworICAgICAgICAgICAgICAgIExvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworICAgICAgICAgICAgICAgIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIEV0aGlvcGljQ2FsZW5kYXIgbmV3QW1ldGVBbGVtRXJhQ2FsZW5kYXIoKSB7CisgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgYWxlbWF3aUNhbGVuZGFyID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoKTsKKyAgICAgICAgYWxlbWF3aUNhbGVuZGFyLnNldEFtZXRlQWxlbUVyYSh0cnVlKTsKKyAgICAgICAgcmV0dXJuIGFsZW1hd2lDYWxlbmRhcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSGVicmV3VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hlYnJld1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTBlMzJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hlYnJld1Rlc3QuamF2YQpAQCAtMCwwICsxLDQ1MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBUZXN0cyBmb3IgdGhlIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEhlYnJld1Rlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSGVicmV3VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBDb25zdGFudHMgdG8gc2F2ZSB0eXBpbmcuCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElTSFJJICA9IEhlYnJld0NhbGVuZGFyLlRJU0hSSTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRVNIVkFOID0gSGVicmV3Q2FsZW5kYXIuSEVTSFZBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSVNMRVYgID0gSGVicmV3Q2FsZW5kYXIuS0lTTEVWOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVkVUICAgPSBIZWJyZXdDYWxlbmRhci5URVZFVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEVWQVQgID0gSGVicmV3Q2FsZW5kYXIuU0hFVkFUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEQVJfMSAgPSBIZWJyZXdDYWxlbmRhci5BREFSXzE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUiAgICA9IEhlYnJld0NhbGVuZGFyLkFEQVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTklTQU4gICA9IEhlYnJld0NhbGVuZGFyLk5JU0FOOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElZQVIgICAgPSBIZWJyZXdDYWxlbmRhci5JWUFSOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJVkFOICAgPSBIZWJyZXdDYWxlbmRhci5TSVZBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQU1VWiAgID0gSGVicmV3Q2FsZW5kYXIuVEFNVVo7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVYgICAgICA9IEhlYnJld0NhbGVuZGFyLkFWOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVMVUwgICAgPSBIZWJyZXdDYWxlbmRhci5FTFVMOworCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgSGVicmV3Q2FsZW5kYXIucm9sbAorICAgICAqIFRoZSBvbmx5IHJlYWwgbmFzdGluZXNzIHdpdGggcm9sbCBpcyB0aGUgTU9OVEggZmllbGQsIHNpbmNlIGEgeWVhciBjYW4KKyAgICAgKiBoYXZlIGEgdmFyaWFibGUgbnVtYmVyIG9mIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIHJvbGwgYnkgICAgICAgICAgb3V0cHV0CisgICAgICAgICAgICAvLyAgeWVhciAgbW9udGggICAgIGRheSAgICAgZmllbGQgYW1vdW50ICAgIHllYXIgIG1vbnRoICAgICBkYXkKKyAgICAKKyAgICAgICAgICAgIHsgICA1NzU5LCBIRVNIVkFOLCAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1OSwgS0lTTEVWLCAgICAyIH0sICAgLy8gbm9uLWxlYXAgeWVhcnMKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1OSwgQURBUiwgICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDU3NTksIE5JU0FOLCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTIsICAgICA1NzU5LCBTSEVWQVQsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBBViwgICAgICAgIDEsICAgICBNT05USCwgIDEyLCAgICAgNTc1OSwgQVYsICAgICAgICAxIH0sIC8vIEFsYW4KKworICAgICAgICAgICAgeyAgIDU3NTcsIEhFU0hWQU4sICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBLSVNMRVYsICAgIDIgfSwgICAvLyBsZWFwIHllYXJzCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTcsIEFEQVJfMSwgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDIsICAgICA1NzU3LCBBREFSLCAgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAzLCAgICAgNTc1NywgTklTQU4sICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDU3NTcsIFRFVkVULCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTMsICAgICA1NzU3LCBTSEVWQVQsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBBViwgICAgICAgIDEsICAgICBNT05USCwgIDEyLCAgICAgNTc1NywgVEFNVVosICAgICAxIH0sIC8vIEFsYW4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgeyAgIDU3NTcsIEtJU0xFViwgICAgMSwgICAgIERBVEUsICAgMzAsICAgICA1NzU3LCBLSVNMRVYsICAgIDIgfSwgICAvLyAyOS1kYXkgbW9udGgKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgNTc1OCwgS0lTTEVWLCAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRyeSBzb21lIG90aGVyIGZpZWxkcyB0b28KKyAgICAgICAgICAgIHsgICA1NzU3LCBUSVNIUkksICAgIDEsICAgICBZRUFSLCAgICAxLCAgICAgNTc1OCwgVElTSFJJLCAgICAxIH0sCisgICAKKworICAgICAgICAgICAgLy8gVHJ5IHNvbWUgcm9sbHMgdGhhdCByZXF1aXJlIG90aGVyIGZpZWxkcyB0byBiZSBhZGp1c3RlZAorICAgICAgICAgICAgeyAgIDU3NTcsIFRJU0hSSSwgICAzMCwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBIRVNIVkFOLCAgMjkgfSwKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgMzAsICAgICBZRUFSLCAgIC0xLCAgICAgNTc1NywgS0lTTEVWLCAgIDI5IH0sCisgICAgICAgIH07CisvLyAgICAgICAgdHJ5eworICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKFVUQywgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgCisgICAgICAgICAgICBkb1JvbGxBZGQoUk9MTCwgY2FsLCB0ZXN0cyk7CisgLy8gICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisvLyAgICAgICAgICAgIHdhcm5sbigiR290IEV4Y2VwdGlvbjogIisgZXguZ2V0TWVzc2FnZSgpKTsKKyAvLyAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGJlaGF2aW9yIG9mIEhlYnJld0NhbGVuZGFyLnJvbGwKKyAgICAgKiBUaGUgb25seSByZWFsIG5hc3RpbmVzcyB3aXRoIHJvbGwgaXMgdGhlIE1PTlRIIGZpZWxkLCBzaW5jZSBhIHllYXIgY2FuCisgICAgICogaGF2ZSBhIHZhcmlhYmxlIG51bWJlciBvZiBtb250aHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFkZCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIGFkZCBieSAgICAgICAgICBvdXRwdXQKKyAgICAgICAgICAgIC8vICB5ZWFyICBtb250aCAgICAgZGF5ICAgICBmaWVsZCBhbW91bnQgICAgeWVhciAgbW9udGggICAgIGRheQorICAgICAgICAgICAgeyAgIDU3NTksIEhFU0hWQU4sICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU5LCBLSVNMRVYsICAgIDIgfSwgICAvLyBub24tbGVhcCB5ZWFycworICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU5LCBBREFSLCAgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAyLCAgICAgNTc1OSwgTklTQU4sICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDU3NjAsIFNIRVZBVCwgICAgMiB9LAorCisgICAgICAgICAgICB7ICAgNTc1NywgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTcsIEtJU0xFViwgICAgMiB9LCAgIC8vIGxlYXAgeWVhcnMKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1NywgQURBUl8xLCAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDU3NTcsIEFEQVIsICAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDMsICAgICA1NzU3LCBOSVNBTiwgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgIDEyLCAgICAgNTc1OCwgVEVWRVQsICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMywgICAgIDU3NTgsIFNIRVZBVCwgICAgMiB9LAorICAgICAgICAgICAgCisgICAgICAgICAgICB7ICAgNTc2MiwgQVYsICAgICAgICAxLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NjIsIEVMVUwsICAgICAgMSB9LCAgIC8vIEpCIzIzMjcKKyAgICAgICAgICAgIHsgICA1NzYyLCBBViwgICAgICAgMzAsICAgICBEQVRFLCAgICAxLCAgICAgNTc2MiwgRUxVTCwgICAgICAxIH0sICAgLy8gSkIjMjMyNworICAgICAgICAgICAgeyAgIDU3NjIsIEVMVUwsICAgICAgMSwgICAgIERBVEUsICAgLTEsICAgICA1NzYyLCBBViwgICAgICAgMzAgfSwgICAvLyBKQiMyMzI3CisgICAgICAgICAgICB7ICAgNTc2MiwgRUxVTCwgICAgICAxLCAgICAgTU9OVEgsICAtMSwgICAgIDU3NjIsIEFWLCAgICAgICAgMSB9LCAgIC8vIEpCIzIzMjcKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeyAgIDU3NTcsIEtJU0xFViwgICAgMSwgICAgIERBVEUsICAgMzAsICAgICA1NzU3LCBURVZFVCwgICAgIDIgfSwgICAvLyAyOS1kYXkgbW9udGgKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgNTc1OCwgVEVWRVQsICAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisgICAgICAgIH07CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihVVEMsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIAorICAgICAgICAgICAgZG9Sb2xsQWRkKEFERCwgY2FsLCB0ZXN0cyk7CisgICAgICAgIH1jYXRjaCggTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGh1Z2UgbGlzdCBvZiB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbXB1dGVUaW1lIGFuZCBjb21wdXRlRmllbGRzCisgICAgICogd29yayBwcm9wZXJseSBmb3IgYSB3aWRlIHJhbmdlIG9mIGRhdGEuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VzKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBmaW5hbCBUZXN0Q2FzZVtdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgLy8gTW9zdCBvZiB0aGVzZSB0ZXN0IGNhc2VzIHdlcmUgdGFrZW4gZnJvbSB0aGUgYmFjayBvZgorICAgICAgICAgICAgICAgICAgICAvLyAiQ2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zIiwgd2l0aCBzb21lIGV4dHJhcyBhZGRlZCB0byBoZWxwCisgICAgICAgICAgICAgICAgICAgIC8vIGRlYnVnIGEgZmV3IG9mIHRoZSBwcm9ibGVtcyB0aGF0IGNyb3BwZWQgdXAgaW4gZGV2ZWxvcG1lbnQuCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBtb250aHMgaW4gdGhpcyB0YWJsZSBhcmUgMS1iYXNlZCByYXRoZXIgdGhhbiAwLWJhc2VkLAorICAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIGl0J3MgZWFzaWVyIHRvIGVkaXQgdGhhdCB3YXkuCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgSnVsaWFuIERheSAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTUwNzIzMS41LCAgMCwgIDMxNzQsICAgMTIsICAxMCwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTY2MDAzNy41LCAgMCwgIDM1OTMsICAgIDMsICAyNSwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTc0Njg5My41LCAgMCwgIDM4MzEsICAgIDEsICAgMywgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTc3MDY0MS41LCAgMCwgIDM4OTYsICAgIDEsICAgOSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTg5MjczMS41LCAgMCwgIDQyMzAsICAgIDQsICAxOCwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTkzMTU3OS41LCAgMCwgIDQzMzYsICAgMTAsICAgNCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTk3NDg1MS41LCAgMCwgIDQ0NTUsICAgIDIsICAxMywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjA5MTE2NC41LCAgMCwgIDQ3NzMsICAgIDksICAgNiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjEyMTUwOS41LCAgMCwgIDQ4NTYsICAgIDksICAyMywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE1NTc3OS41LCAgMCwgIDQ5NTAsICAgIDgsICAgNywgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE3NDAyOS41LCAgMCwgIDUwMDAsICAgIDcsICAgOCwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE5MTU4NC41LCAgMCwgIDUwNDgsICAgIDgsICAyMSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE5NTI2MS41LCAgMCwgIDUwNTgsICAgIDksICAgNywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjIyOTI3NC41LCAgMCwgIDUxNTEsICAgMTEsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI0NTU4MC41LCAgMCwgIDUxOTYsICAgIDUsICAgNywgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI2NjEwMC41LCAgMCwgIDUyNTIsICAgIDgsICAgMywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI4ODU0Mi41LCAgMCwgIDUzMTQsICAgIDEsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5MDkwMS41LCAgMCwgIDUzMjAsICAgIDYsICAyNywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMyMzE0MC41LCAgMCwgIDU0MDgsICAgMTAsICAyMCwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDU1MS41LCAgMCwgIDU0NDAsICAgIDEsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDU4MS41LCAgMCwgIDU0NDAsICAgIDIsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDYxMC41LCAgMCwgIDU0NDAsICAgIDMsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDYzOS41LCAgMCwgIDU0NDAsICAgIDQsICAgMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDY2OC41LCAgMCwgIDU0NDAsICAgIDUsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDY5OC41LCAgMCwgIDU0NDAsICAgIDYsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDcyOC41LCAgMCwgIDU0NDAsICAgIDcsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDc1Ny41LCAgMCwgIDU0NDAsICAgIDgsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDc4Ny41LCAgMCwgIDU0NDAsICAgIDksICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDgxNi41LCAgMCwgIDU0NDAsICAgMTAsICAgMSwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDg0Ni41LCAgMCwgIDU0NDAsICAgMTEsICAgMSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDg0OC41LCAgMCwgIDU0NDAsICAgMTEsICAgMywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDkzNC41LCAgMCwgIDU0NDEsICAgIDEsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM0ODAyMC41LCAgMCwgIDU0NzYsICAgMTIsICAgNSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM2Njk3OC41LCAgMCwgIDU1MjgsICAgMTEsICAgNCwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM4NTY0OC41LCAgMCwgIDU1NzksICAgMTIsICAxMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM5MjgyNS41LCAgMCwgIDU1OTksICAgIDgsICAxMiwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQxNjIyMy41LCAgMCwgIDU2NjMsICAgIDgsICAyMiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQyNTg0OC41LCAgMCwgIDU2ODksICAgMTIsICAxOSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMDI2Ni41LCAgMCwgIDU3MDIsICAgIDEsICAgOCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMDgzMy41LCAgMCwgIDU3MDMsICAgIDgsICAxNCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMTAwNC41LCAgMCwgIDU3MDQsICAgIDEsICAgOCwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ0ODY5OC41LCAgMCwgIDU3NTIsICAgIDcsICAxMiwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MDEzOC41LCAgMCwgIDU3NTYsICAgIDcsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2NTczNy41LCAgMCwgIDU3OTksICAgIDIsICAxMiwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ4NjA3Ni41LCAgMCwgIDU4NTQsICAgMTIsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorCisgICAgICAgICAgICAgICAgICAgIC8vIEFkZGl0aW9uYWwgdGVzdCBjYXNlcyBmb3IgYnVncyBmb3VuZCBkdXJpbmcgZGV2ZWxvcG1lbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgIEcuWVkvTU0vREQgIEVyYSAgWWVhciAgTW9udGggRGF5ICBXa0RheSBIb3VyIE1pbiBTZWMKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDEwMTMsIDksIDgsIDAsICA0Nzc0LCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDEyMzksIDksIDEsIDAsICA1MDAwLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDEyNDAsIDksMTgsIDAsICA1MDAxLCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKworICAgICAgICAgICAgICAgICAgICAvLyBUZXN0IGNhc2VzIHRha2VuIGZyb20gYSB0YWJsZSBvZiAxNCAieWVhciB0eXBlcyIgaW4gdGhlIEhlbHAgZmlsZQorICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgYXBwbGljYXRpb24gIkhlYnJldyBDYWxlbmRhciIKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTYxODcuNSwgIDAsICA1NzczLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTkxMTEuNSwgIDAsICA1NzgxLCAgICAxLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTM2NDcuNSwgIDAsICA1NzY2LCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjIwMzUuNSwgIDAsICA1Nzg5LCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTg3NTYuNSwgIDAsICA1NzgwLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjA1ODYuNSwgIDAsICA1Nzg1LCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjM4NjQuNSwgIDAsICA1Nzk0LCAgICAxLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjM0ODEuNSwgIDAsICA1NzkzLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NzA0MjEuNSwgIDAsICA1ODEyLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjAyMDMuNSwgIDAsICA1Nzg0LCAgICAxLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTk0NjQuNSwgIDAsICA1NzgyLCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjcxNDIuNSwgIDAsICA1ODAzLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTU0NDguNSwgIDAsICA1NzcxLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gVGVzdCBjYXNlcyBmb3IgSkIjMjMyNyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cuZm91cm1pbGFiLmNvbS9kb2N1bWVudHMvY2FsZW5kYXIvCisgICAgICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cuY2FsZW5kYXJob21lLmNvbS9jb252ZXJ0ZXIvCisvLyAgICAgICAgICAgICAgICAyNDUyNDY1LjUsIDIwMDIsIEpVTFksIDEwLCA1NzYyLCBBViwgMSwKKy8vICAgICAgICAgICAgICAgIDI0NTI0OTQuNSwgMjAwMiwgQVVHVVNULCA4LCA1NzYyLCBBViwgMzAsCisvLyAgICAgICAgICAgICAgICAyNDUyNDk1LjUsIDIwMDIsIEFVR1VTVCwgOSwgNTc2MiwgRUxVTCwgMSwKKy8vICAgICAgICAgICAgICAgIDI0NTI1MjMuNSwgMjAwMiwgU0VQVEVNQkVSLCA2LCA1NzYyLCBFTFVMLCAyOSwKKy8vICAgICAgICAgICAgICAgIDI0NTI1MjQuNSwgMjAwMiwgU0VQVEVNQkVSLCA3LCA1NzYzLCBUSVNIUkksIDEsCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgSnVsaWFuIERheSAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MjQ2NS41LCAgMCwgIDU3NjIsICAgIEFWKzEsICAxLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUyNDk0LjUsICAwLCAgNTc2MiwgICAgQVYrMSwgMzAsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTI0OTUuNSwgIDAsICA1NzYyLCAgRUxVTCsxLCAgMSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MjUyMy41LCAgMCwgIDU3NjIsICBFTFVMKzEsIDI5LCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUyNTI0LjUsICAwLCAgNTc2MyxUSVNIUkkrMSwgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvVGVzdENhc2VzKHRlc3RDYXNlcywgbmV3IEhlYnJld0NhbGVuZGFyKCkpOworICAgCisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJHb3QgRXhjZXB0aW9uOiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvYmxlbSByZXBvcnRlZCBieSBBcm1hbmQgQmVuZGFuYW4gaW4gd2hpY2ggc2V0dGluZyBvZiB0aGUgTU9OVEgKKyAgICAgKiBmaWVsZCBpbiBhIEhlYnJldyBjYWxlbmRhciBjYXVzZXMgdGhlIHRpbWUgZmllbGRzIHRvIGdvIG5lZ2F0aXZlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lRmllbGRzKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBIZWJyZXdDYWxlbmRhcig1NzYxLCAwLCAxMSwgMTIsIDI4LCAxNSk7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuWUVBUiwgNTcxNyk7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuTU9OVEgsIDIpOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMjMpOworICAgICAgICAgICAgaWYgKGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgIT0gMTIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogSGVicmV3Q2FsZW5kYXIgSE9VUl9PRl9EQVkgPSAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJHb3QgRXhjZXB0aW9uOiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvYmxlbSByZXBvcnRlZCBieSBBcm1hbmQgQmVuZGFuYW4gKGFybWFuZC5iZW5kYW5hbkBmcmVlLmZyKQorICAgICAqIGluIHdoaWNoIHNldHRpbmcgb2YgdGhlIE1PTlRIIGZpZWxkIGluIGEgSGVicmV3IGNhbGVuZGFyIHRvCisgICAgICogRUxVTCBvbiBub24gbGVhcCB5ZWFycyBjYXVzZXMgdGhlIGRhdGUgdG8gYmUgc2V0IG9uIFRJU0hSSSBuZXh0IHllYXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVsdWxNb250aCgpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKCk7CisgICAgICAgICAgICAvLyBMZWFwIHllYXJzIGFyZToKKyAgICAgICAgICAgIC8vIDMgNiA4IDExIDE0IDE3IDE5IChhbmQgc28gb24gLSAxOS15ZWFyIGN5Y2xlKQorICAgICAgICAgICAgZm9yIChpbnQgeWVhcj0xOyB5ZWFyPDUwOyB5ZWFyKyspIHsKKyAgICAgICAgICAgICAgICAvLyBJIGhvcGUgdGhhdCB5ZWFyID0gMCBkb2VzIG5vdCBleGlzdHMKKyAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZSB0ZXN0IGZhaWxzIGZvciBpdCAhCisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBFTFVMKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IHlhY3QgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgICAgIGludCBtYWN0ID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHllYXIgIT0geWFjdCB8fCBFTFVMICE9IG1hY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBFTFVMICsgIi8iICsgeWVhciArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3QgKyAiLyIgKyB5YWN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJHb3QgRXhjZXB0aW9uOiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3Qgb2YgdGhlIGJlaGF2aW9yIG9mIHRoZSBtb250aCBmaWVsZC4gIFRoaXMgcmVxdWlyZXMgc3BlY2lhbAorICAgICAqIGhhbmRsaW5nIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgYmVjYXVzZSBvZiB0aGUgcGF0dGVybiBvZiBsZWFwCisgICAgICogeWVhcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1vbnRoTW92ZW1lbnQoKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcigpOworICAgICAgICAgICAgLy8gTGVhcCB5ZWFycyBhcmU6CisgICAgICAgICAgICAvLyAzIDYgOCAxMSAxNCAxNyAxOSAoYW5kIHNvIG9uIC0gMTkteWVhciBjeWNsZSkKKyAgICAgICAgICAgIC8vIFdlIGNhbid0IHRlc3QgY29tcGxldGUoKSBvbiBzb21lIGxpbmVzIGJlbG93IGJlY2F1c2Ugb2YgQURBUl8xIC0tIGlmCisgICAgICAgICAgICAvLyB0aGUgY2FsZW5kYXIgaXMgc2V0IHRvIEFEQVJfMSBvbiBhIG5vbi1sZWFwIHllYXIsIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLgorICAgICAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgICAgICAvLyBtMS95MSAtIG1vbnRoL3llYXIgYmVmb3JlIChtb250aCBpcyAxLWJhc2VkKSAKKyAgICAgICAgICAgICAgICAvLyBkZWx0YSAtIGFtb3VudCB0byBhZGQgdG8gbW9udGggZmllbGQKKyAgICAgICAgICAgICAgICAvLyBtMi95MiAtIG1vbnRoL3llYXIgYWZ0ZXIgYWRkKE1PTlRILCBkZWx0YSkKKyAgICAgICAgICAgICAgICAvLyBtMy95MyAtIG1vbnRoL3llYXIgYWZ0ZXIgc2V0KE1PTlRILCBtMStkZWx0YSkKKyAgICAgICAgICAgICAgLy9tMSAgeTEgZGVsdGEgIG0yICB5MiAgbTMgIHkzCisgICAgICAgICAgICAgICAgMTAsICAyLCAgKzI0LCAgOSwgIDQsICA5LCAgNCwKKyAgICAgICAgICAgICAgICAxMCwgIDIsICArNjAsICA4LCAgNywgIDgsICA3LAorICAgICAgICAgICAgICAgIDEgLCAgMiwgICsxMiwgIDEsICAzLCAxMywgIDIsIC8vKnNldCAhPSBhZGQ7IGFsc28gc2VlICcqJyBiZWxvdworICAgICAgICAgICAgICAgIDMgLCAxOCwgIC0yNCwgIDQsIDE2LCAgNCwgMTYsCisgICAgICAgICAgICAgICAgMSAsICA2LCAgLTI0LCAgMSwgIDQsICAxLCAgNCwKKyAgICAgICAgICAgICAgICA0ICwgIDMsICAgKzIsICA2LCAgMywgIDYsICAzLCAvLyBMZWFwIHllYXIgLSBubyBza2lwIDQsNSw2LDcsOAorICAgICAgICAgICAgICAgIDggLCAgMywgICAtMiwgIDYsICAzLCAgNiwgIDMsIC8vIExlYXAgeWVhciAtIG5vIHNraXAKKyAgICAgICAgICAgICAgICA0ICwgIDIsICAgKzIsICA3LCAgMiwgIDcsICAyLCAvLyBTa2lwIGxlYXAgbW9udGggNCw1LCg2KSw3LDgKKyAgICAgICAgICAgICAgICA4ICwgIDIsICAgLTIsICA1LCAgMiwgIDcsICAyLCAvLypTa2lwIGxlYXAgbW9udGggZ29pbmcgYmFja3dhcmQKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgICAgIGludCBtID0gREFUQVtpKytdLCB5ID0gREFUQVtpKytdOworICAgICAgICAgICAgICAgIGludCBtb250aERlbHRhID0gREFUQVtpKytdOworICAgICAgICAgICAgICAgIGludCBtMiA9IERBVEFbaSsrXSwgeTIgPSBEQVRBW2krK107CisgICAgICAgICAgICAgICAgaW50IG0zID0gREFUQVtpKytdLCB5MyA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgICAgICBpbnQgbWFjdCwgeWFjdDsKKyAgICAKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHkpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIG0tMSk7CisgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgbW9udGhEZWx0YSk7CisgICAgICAgICAgICAgICAgeWFjdCA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7IG1hY3QgPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDE7CisgICAgICAgICAgICAgICAgaWYgKHkyICE9IHlhY3QgfHwgbTIgIT0gbWFjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG0gKyAiLyIgKyB5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtPiBhZGQoTU9OVEgsICIgKyBtb250aERlbHRhICsgIikgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3QgKyAiLyIgKyB5YWN0ICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG0yICsgIi8iICsgeTIpOworICAgICAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5KTsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgbS0xKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlN0YXJ0OiAiICsgbSArICIvIiArIHkpOworICAgICAgICAgICAgICAgICAgICBpbnQgZGVsdGEgPSBtb250aERlbHRhID4gMCA/IDEgOiAtMTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgYz0wOyBjIT1tb250aERlbHRhOyBjKz1kZWx0YSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgZGVsdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIisgIiArIGRlbHRhICsgIiBNT05USCAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsgY2FsLmdldChDYWxlbmRhci5ZRUFSKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5KTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBtICsgbW9udGhEZWx0YSAtIDEpOworICAgICAgICAgICAgICAgIHlhY3QgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOyBtYWN0ID0gY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxOworICAgICAgICAgICAgICAgIGlmICh5MyAhPSB5YWN0IHx8IG0zICE9IG1hY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyAobSttb250aERlbHRhKSArICIvIiArIHkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+IGNvbXBsZXRlKCkgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3QgKyAiLyIgKyB5YWN0ICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG0zICsgIi8iICsgeTMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkdvdCBFeGNlcHRpb246ICIrIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGhhbmRsaW5nIG9mIEFEQVJfMS4KKyAgICAgKi8KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RBZGFyMSgpIHsKKyAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5MDMpOyAvLyBsZWFwCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIEhlYnJld0NhbGVuZGFyLkFEQVJfMSk7CisgICAgICAgIGxvZ2xuKCIxOTAzKGxlYXApL0FEQVJfMSA9PiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSk7CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTkwNCk7IC8vIG5vbi1sZWFwCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIEhlYnJld0NhbGVuZGFyLkFEQVJfMSk7CisgICAgICAgIGxvZ2xuKCIxOTA0KG5vbi1sZWFwKS9BREFSXzEgPT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKyAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkpOworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogV2l0aCBubyBmaWVsZHMgc2V0LCB0aGUgY2FsZW5kYXIgc2hvdWxkIHVzZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdEZpZWxkVmFsdWVzKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgbG9nbG4oImNhbC5jbGVhcigpIC0+ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIG5ldyBIZWJyZXdDYWxlbmRhcihUaW1lWm9uZSkKKyAgICAgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEhlYnJld0NhbGVuZGFyIHdpdGggVGltZVpvbmUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gbmV3IEhlYnJld0NhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEhlYnJld0NhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBuZXcgSGVicmV3Q2FsZW5kYXIoTG9jYWxlKQorICAgICAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEhlYnJld0NhbGVuZGFyIHdpdGggbG9jYWxlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBuZXcgSGVicmV3Q2FsZW5kYXIoRGF0ZSkKKyAgICAgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIobmV3IERhdGUoKSk7CisgICAgICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBIZWJyZXdDYWxlbmRhciB3aXRoIGRhdGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGRhdGEKKyAgICAgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoMjgwMCwgSGVicmV3Q2FsZW5kYXIuU0hFVkFULCAxKTsKKyAgICAgICAgICAgICAgICBEYXRlIHRpbWUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgIml3X0lMIgorICAgICAgICAgICAgICAgIH07CisgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgImVuIiwgImZpIiwgImZyIiwgImh1IiwgIml3IiwgIm5sIgorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhckxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisgICAgICAgICAgICAgICAgICAgIExvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworICAgICAgICAgICAgICAgICAgICBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoY2FsTG9jYWxlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsb2NOYW1lID0gZm9ybWF0TG9jYWxlc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBmb3JtYXRMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY05hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGNhbExvY05hbWUgKyAiLyIgKyBsb2NOYW1lICsgIiAtLT4gIiArIGZvcm1hdC5mb3JtYXQodGltZSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YS4gIisgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Ib2xpZGF5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hvbGlkYXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVkYzk5MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Ib2xpZGF5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMjExIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRWFzdGVySG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlRGF0ZVJ1bGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVEYXRlUnVsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZUhvbGlkYXk7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5Ib2xpZGF5PC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEhvbGlkYXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSG9saWRheVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIGlmKGNhbD09bnVsbCl7CisgICAgICAgICAgICBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMSwgMCwgMSk7CisgICAgICAgICAgICBsb25nVGltZUFnbyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyAgQ2FsZW5kYXIgY2FsOworICAgIHN0YXRpYyAgRGF0ZSBsb25nVGltZUFnbzsKKyAgICBzdGF0aWMgIERhdGUgbm93OworICAgIHN0YXRpYyAgbG9uZyBhd2hpbGUgPSAzNjAwTCAqIDI0ICogMjg7IC8vIDI4IGRheXMKKworICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGdldEhvbGlkYXlzCisgICAgICAgICAgICBIb2xpZGF5W10gaG9saWRheXMgPSBIb2xpZGF5LmdldEhvbGlkYXlzKCk7CisgICAgICAgICAgICBleGVyY2lzZUhvbGlkYXlzKGhvbGlkYXlzLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGdldEhvbGlkYXlzKExvY2FsZSkKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZU5hbWVzID0KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiZW5fVVMiLAorICAgICAgICAgICAgICAgICJkYSIsCisgICAgICAgICAgICAgICAgImRhX0RLIiwKKyAgICAgICAgICAgICAgICAiZGUiLAorICAgICAgICAgICAgICAgICJkZV9BVCIsCisgICAgICAgICAgICAgICAgImRlX0RFIiwKKyAgICAgICAgICAgICAgICAiZWwiLAorICAgICAgICAgICAgICAgICJlbF9HUiIsCisgICAgICAgICAgICAgICAgImVuIiwKKyAgICAgICAgICAgICAgICAiZW5fQ0EiLAorICAgICAgICAgICAgICAgICJlbl9HQiIsCisgICAgICAgICAgICAgICAgImVzIiwKKyAgICAgICAgICAgICAgICAiZXNfTVgiLAorICAgICAgICAgICAgICAgICJmciIsCisgICAgICAgICAgICAgICAgImZyX0NBIiwKKyAgICAgICAgICAgICAgICAiZnJfRlIiLAorICAgICAgICAgICAgICAgICJpdCIsCisgICAgICAgICAgICAgICAgIml0X0lUIiwKKyAgICAgICAgICAgICAgICAiaXciLAorICAgICAgICAgICAgICAgICJpd19JTCIsCisgICAgICAgICAgICAgICAgImphIiwKKyAgICAgICAgICAgICAgICAiamFfSlAiLAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVOYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY2FsZU5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBIb2xpZGF5W10gaG9saWRheXMgPSBIb2xpZGF5LmdldEhvbGlkYXlzKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgZXhlcmNpc2VIb2xpZGF5cyhob2xpZGF5cywgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhlcmNpc2VIb2xpZGF5cyhIb2xpZGF5W10gaG9saWRheXMsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBob2xpZGF5cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZXhlcmNpc2VIb2xpZGF5KGhvbGlkYXlzW2ldLCBsb2NhbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBleGVyY2lzZUhvbGlkYXkoSG9saWRheSBoLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGxvZ2xuKCJob2xpZGF5OiAiICsgaC5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgbG9nbG4oImhvbGlkYXkgaW4gIiArIGxvY2FsZSArICI6ICIgKyBoLmdldERpc3BsYXlOYW1lKGxvY2FsZSkpOworCisgICAgICAgIERhdGUgZmlyc3QgPSBoLmZpcnN0QWZ0ZXIobG9uZ1RpbWVBZ28pOworICAgICAgICBsb2dsbigiZmlyc3RBZnRlcjogIiArIGxvbmdUaW1lQWdvICsgIiBpcyAiICsgZmlyc3QpOworICAgICAgICBpZiAoZmlyc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgZmlyc3QgPSBsb25nVGltZUFnbzsKKyAgICAgICAgfQorICAgICAgICBmaXJzdC5zZXRUaW1lKGZpcnN0LmdldFRpbWUoKSArIGF3aGlsZSk7CisKKyAgICAgICAgRGF0ZSBzZWNvbmQgPSBoLmZpcnN0QmV0d2VlbihmaXJzdCwgbm93KTsKKyAgICAgICAgbG9nbG4oImZpcnN0QmV0d2VlbjogIiArIGZpcnN0ICsgIiBhbmQgIiArIG5vdyArICIgaXMgIiArIHNlY29uZCk7CisgICAgICAgIGlmIChzZWNvbmQgPT0gbnVsbCkgeworICAgICAgICAgICAgc2Vjb25kID0gbm93OworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oImlzIG9uICIgKyBmaXJzdCArICI6ICIgKyBoLmlzT24oZmlyc3QpKTsKKyAgICAgICAgbG9nbG4oImlzIG9uICIgKyBub3cgKyAiOiAiICsgaC5pc09uKG5vdykpOworICAgICAgICBsb2dsbigKKyAgICAgICAgICAgICAgImlzIGJldHdlZW4gIgorICAgICAgICAgICAgICArIGZpcnN0CisgICAgICAgICAgICAgICsgIiBhbmQgIgorICAgICAgICAgICAgICArIG5vdworICAgICAgICAgICAgICArICI6ICIKKyAgICAgICAgICAgICAgKyBoLmlzQmV0d2VlbihmaXJzdCwgbm93KSk7CisgICAgICAgIGxvZ2xuKAorICAgICAgICAgICAgICAiaXMgYmV0d2VlbiAiCisgICAgICAgICAgICAgICsgZmlyc3QKKyAgICAgICAgICAgICAgKyAiIGFuZCAiCisgICAgICAgICAgICAgICsgc2Vjb25kCisgICAgICAgICAgICAgICsgIjogIgorICAgICAgICAgICAgICArIGguaXNCZXR3ZWVuKGZpcnN0LCBzZWNvbmQpKTsKKworICAgICAgICAvLyAgICAgICAgbG9nbG4oInJ1bGU6ICIgKyBoLmdldFJ1bGUoKS50b1N0cmluZygpKTsKKworICAgICAgICAvLyAgICAgICAgaC5zZXRSdWxlKGguZ2V0UnVsZSgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIEhvbGlkYXlbXSBoID0geyBuZXcgRWFzdGVySG9saWRheSgiUmFtJ3MgRWFzdGVyIiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU2ltcGxlSG9saWRheSgyLCAyOSwgMCwgIkxlYXAgeWVhciIsIDE5MDAsIDIxMDApfTsKKyAgICAgICAgZXhlcmNpc2VIb2xpZGF5cyhoLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBSYW5nZURhdGVSdWxlIHJkciA9IG5ldyBSYW5nZURhdGVSdWxlKCk7CisgICAgICAgIHJkci5hZGQobmV3IFNpbXBsZURhdGVSdWxlKDcsIDEwKSk7CisgICAgICAgIERhdGUgbWJkID0gZ2V0RGF0ZSgxOTUzLCBDYWxlbmRhci5KVUxZLCAxMCk7CisgICAgICAgIERhdGUgZGJkID0gZ2V0RGF0ZSgxOTU4LCBDYWxlbmRhci5BVUdVU1QsIDE1KTsKKyAgICAgICAgRGF0ZSBuYmQgPSBnZXREYXRlKDE5OTAsIENhbGVuZGFyLkRFQ0VNQkVSLCAxNyk7CisgICAgICAgIERhdGUgYWJkID0gZ2V0RGF0ZSgxOTkyLCBDYWxlbmRhci5TRVBURU1CRVIsIDE2KTsKKyAgICAgICAgRGF0ZSB4YmQgPSBnZXREYXRlKDE5NzYsIENhbGVuZGFyLkpVTFksIDQpOworICAgICAgICBEYXRlIHliZCA9IGdldERhdGUoMjAwMywgQ2FsZW5kYXIuREVDRU1CRVIsIDgpOworICAgICAgICByZHIuYWRkKG5ldyBTaW1wbGVEYXRlUnVsZShDYWxlbmRhci5KVUxZLCAxMCwgQ2FsZW5kYXIuTU9OREFZLCBmYWxzZSkpOworICAgICAgICByZHIuYWRkKGRiZCwgbmV3IFNpbXBsZURhdGVSdWxlKENhbGVuZGFyLkFVR1VTVCwgMTUsIENhbGVuZGFyLldFRE5FU0RBWSwgdHJ1ZSkpOworICAgICAgICByZHIuYWRkKHhiZCwgbnVsbCk7CisgICAgICAgIHJkci5hZGQobmJkLCBuZXcgU2ltcGxlRGF0ZVJ1bGUoQ2FsZW5kYXIuREVDRU1CRVIsIDE3LCBDYWxlbmRhci5NT05EQVksIGZhbHNlKSk7CisgICAgICAgIHJkci5hZGQoeWJkLCBudWxsKTsKKworICAgICAgICBsb2dsbigiZmlyc3QgYWZ0ZXIgIiArIG1iZCArICIgaXMgIiArIHJkci5maXJzdEFmdGVyKG1iZCkpOworICAgICAgICBsb2dsbigiZmlyc3QgYmV0d2VlbiAiICsgbWJkICsgIiBhbmQgIiArIGRiZCArICIgaXMgIiArIHJkci5maXJzdEJldHdlZW4obWJkLCBkYmQpKTsKKyAgICAgICAgbG9nbG4oImZpcnN0IGJldHdlZW4gIiArIGRiZCArICIgYW5kICIgKyBuYmQgKyAiIGlzICIgKyByZHIuZmlyc3RCZXR3ZWVuKGRiZCwgbmJkKSk7CisgICAgICAgIGxvZ2xuKCJmaXJzdCBiZXR3ZWVuICIgKyBuYmQgKyAiIGFuZCAiICsgYWJkICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2VlbihuYmQsIGFiZCkpOworICAgICAgICBsb2dsbigiZmlyc3QgYmV0d2VlbiAiICsgYWJkICsgIiBhbmQgIiArIHhiZCArICIgaXMgIiArIHJkci5maXJzdEJldHdlZW4oYWJkLCB4YmQpKTsKKyAgICAgICAgbG9nbG4oImZpcnN0IGJldHdlZW4gIiArIGFiZCArICIgYW5kICIgKyBudWxsICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2VlbihhYmQsIG51bGwpKTsKKyAgICAgICAgbG9nbG4oImZpcnN0IGJldHdlZW4gIiArIHhiZCArICIgYW5kICIgKyBudWxsICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2Vlbih4YmQsIG51bGwpKTsKKyAgICAgICAgCisgICAgICAgIC8vZ2V0UnVsZSwgc2V0UnVsZQorICAgICAgICBsb2dsbigiVGhlIHJ1bGUgaW4gdGhlIGhvbGlkYXk6ICIgKyBoWzFdLmdldFJ1bGUoKSk7CisgICAgICAgIGV4ZXJjaXNlSG9saWRheShoWzFdLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaFsxXS5zZXRSdWxlKHJkcik7CisgICAgICAgIGxvZ2xuKCJTZXQgdGhlIG5ldyBydWxlIHRvIHRoZSBTaW1wbGVIb2xpZGF5IC4uLiIpOworICAgICAgICBpZiAoIXJkci5lcXVhbHMoaFsxXS5nZXRSdWxlKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0UnVsZSBhbmQgc2V0UnVsZSBub3QgbWF0Y2hlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBleGVyY2lzZUhvbGlkYXkoaFsxXSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdElzT24oKSB7CisgICAgICAgIC8vIGpiIDE5MDEKKyAgICAgICAgU2ltcGxlSG9saWRheSBzaCA9IG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgMTUsICJEb3VnJ3MgRGF5IiwgMTk1OCwgMjA1OCk7CisgICAgICAgIAorICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMjAwMCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkFVR1VTVCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxNSk7CisgICAgICAgIAorICAgICAgICBEYXRlIGQwID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5TRUNPTkQsIDEpOworICAgICAgICBEYXRlIGQxID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5TRUNPTkQsIC0yKTsKKyAgICAgICAgRGF0ZSBkMiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgRGF0ZSBkMyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuU0VDT05ELCAxKTsKKyAgICAgICAgRGF0ZSBkNCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuU0VDT05ELCAtMik7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk1Nyk7CisgICAgICAgIERhdGUgZDUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5NTgpOworICAgICAgICBEYXRlIGQ2ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAyMDU4KTsKKyAgICAgICAgRGF0ZSBkNyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMjA1OSk7CisgICAgICAgIERhdGUgZDggPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIERhdGVbXSBkYXRlcyA9IHsgZDAsIGQxLCBkMiwgZDMsIGQ0LCBkNSwgZDYsIGQ3LCBkOCB9OworICAgICAgICBib29sZWFuW10gaXNPbnMgPSB7IHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIERhdGUgZCA9IGRhdGVzW2ldOworICAgICAgICAgICAgbG9nbG4oIlxuZGF0ZTogIiArIGQpOworICAgICAgICAgICAgYm9vbGVhbiBpc09uID0gc2guaXNPbihkKTsKKyAgICAgICAgICAgIGxvZ2xuKCJpc09uRGF0ZTogIiArIGlzT24pOworICAgICAgICAgICAgaWYgKGlzT24gIT0gaXNPbnNbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGF0ZTogIiArIGQgKyAiIHNob3VsZCBiZSBvbiBEb3VnJ3MgRGF5ISIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRGF0ZSBoID0gc2guZmlyc3RBZnRlcihkKTsKKyAgICAgICAgICAgIGxvZ2xuKCJmaXJzdEFmdGVyOiAiICsgaCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSUJNQ2FsZW5kYXJUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSUJNQ2FsZW5kYXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjRhNmI5OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9JQk1DYWxlbmRhclRlc3QuamF2YQpAQCAtMCwwICsxLDg0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlpvbmVNZXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJBc3Ryb25vbWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBUZXN0cyBvZiBuZXcgZnVuY3Rpb25hbGl0eSBpbiBJQk1DYWxlbmRhcgorICovCitwdWJsaWMgY2xhc3MgSUJNQ2FsZW5kYXJUZXN0IGV4dGVuZHMgQ2FsZW5kYXJUZXN0IHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSUJNQ2FsZW5kYXJUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3Qgd2Vla2VuZCBzdXBwb3J0IGluIElCTUNhbGVuZGFyLgorICAgICAqCisgICAgICogTk9URTogVGhpcyB0ZXN0IHdpbGwgaGF2ZSB0byBiZSB1cGRhdGVkIHdoZW4gdGhlIGlzV2Vla2VuZCgpIGV0Yy4KKyAgICAgKiAgICAgICBBUEkgaXMgZmluYWxpemVkIGxhdGVyLgorICAgICAqCisgICAgICogICAgICAgSW4gcGFydGljdWxhciwgdGhlIHRlc3Qgd2lsbCBoYXZlIHRvIGJlIHJld3JpdHRlbiB0byBpbnN0YW50aWF0ZQorICAgICAqICAgICAgIGEgQ2FsZW5kYXIgaW4gdGhlIGdpdmVuIGxvY2FsZSAodXNpbmcgZ2V0SW5zdGFuY2UoKSkgYW5kIGNhbGwKKyAgICAgKiAgICAgICB0aGF0IENhbGVuZGFyJ3MgaXNXZWVrZW5kKCkgZXRjLiBtZXRob2RzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RXZWVrZW5kKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIHl5eXkgRyBISDptbTpzcy5TU1MiKTsKKworICAgICAgICAvLyBOT1RFCisgICAgICAgIC8vIFRoaXMgdGVzdCB0ZXN0cyBmb3Igc3BlY2lmaWMgbG9jYWxlIGRhdGEuICBUaGlzIGlzIHByb2JhYmx5IG9rYXkKKyAgICAgICAgLy8gYXMgZmFyIGFzIFVTIGRhdGEgaXMgY29uY2VybmVkLCBidXQgaWYgdGhlIEFyYWJpYy9CYWhyYWluIGRhdGEKKyAgICAgICAgLy8gY2hhbmdlcywgdGhpcyB0ZXN0IHdpbGwgaGF2ZSB0byBiZSB1cGRhdGVkLgorCisgICAgICAgIC8vIFRlc3Qgc3BlY2lmaWMgZGF5cworICAgICAgICBPYmplY3RbXSBEQVRBMSA9IHsKKyAgICAgICAgICAgIExvY2FsZS5VUywgbmV3IGludFtdIHsgLy8gU2F0dXJkYXk6U3VuZGF5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE3LCAyMywgIDAsIDAsIC8vIEZyaSAyMzowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxOCwgIDAsIC0xLCAwLCAvLyBGcmkgMjM6NTk6NTkuOTk5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgIDAsIDEsIC8vIFNhdCAwMDowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxOCwgMTUsICAwLCAxLCAvLyBTYXQgMTU6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTksIDIzLCAgMCwgMSwgLy8gU3VuIDIzOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDIwLCAgMCwgLTEsIDEsIC8vIFN1biAyMzo1OTo1OS45OTkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMjAsICAwLCAgMCwgMCwgLy8gTW9uIDAwOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDIwLCAgOCwgIDAsIDAsIC8vIE1vbiAwODowMAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImFyIiwgIkJIIiksIG5ldyBpbnRbXSB7IC8vIFRodXJzZGF5OkZyaWRheQorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNSwgMjMsICAwLCAwLCAvLyBXZWQgMjM6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTYsICAwLCAtMSwgMCwgLy8gV2VkIDIzOjU5OjU5Ljk5OQorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNiwgIDAsICAwLCAxLCAvLyBUaHUgMDA6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTYsIDE1LCAgMCwgMSwgLy8gVGh1IDE1OjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE3LCAyMywgIDAsIDEsIC8vIEZyaSAyMzowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxOCwgIDAsIC0xLCAxLCAvLyBGcmkgMjM6NTk6NTkuOTk5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgIDAsIDAsIC8vIFNhdCAwMDowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxOCwgIDgsICAwLCAwLCAvLyBTYXQgMDg6MDAKKyAgICAgICAgICAgIH0sCisgICAgICAgIH07CisKKyAgICAgICAgLy8gVGVzdCBkYXlzIG9mIHRoZSB3ZWVrCisgICAgICAgIE9iamVjdFtdIERBVEEyID0geworICAgICAgICAgICAgTG9jYWxlLlVTLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgIENhbGVuZGFyLk1PTkRBWSwgICBDYWxlbmRhci5XRUVLREFZLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLkZSSURBWSwgICBDYWxlbmRhci5XRUVLREFZLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLlNBVFVSREFZLCBDYWxlbmRhci5XRUVLRU5ELAorICAgICAgICAgICAgICAgIENhbGVuZGFyLlNVTkRBWSwgICBDYWxlbmRhci5XRUVLRU5EX0NFQVNFLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImFyIiwgIkJIIiksIG5ldyBpbnRbXSB7IC8vIFRodXJzZGF5OkZyaWRheQorICAgICAgICAgICAgICAgIENhbGVuZGFyLldFRE5FU0RBWSxDYWxlbmRhci5XRUVLREFZLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLlNBVFVSREFZLCBDYWxlbmRhci5XRUVLREFZLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCBDYWxlbmRhci5XRUVLRU5ELAorICAgICAgICAgICAgICAgIENhbGVuZGFyLkZSSURBWSwgICBDYWxlbmRhci5XRUVLRU5EX0NFQVNFLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKworICAgICAgICAvLyBXZSBvbmx5IHRlc3QgdGhlIGdldERheU9mV2Vla1R5cGUoKSBhbmQgaXNXZWVrZW5kKCkgQVBJcy4KKyAgICAgICAgLy8gVGhlIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkgQVBJIGlzIHRlc3RlZCBpbmRpcmVjdGx5IHZpYSB0aGUKKyAgICAgICAgLy8gaXNXZWVrZW5kKCkgQVBJLCB3aGljaCBjYWxscyBpdC4KKworICAgICAgICBmb3IgKGludCBpMT0wOyBpMTxEQVRBMS5sZW5ndGg7IGkxKz0yKSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jID0gKExvY2FsZSlEQVRBMVtpMV07CisgICAgICAgICAgICBpbnRbXSBkYXRhID0gKGludFtdKSBEQVRBMVtpMSsxXTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgICAgICBsb2dsbigiTG9jYWxlOiAiICsgbG9jKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxkYXRhLmxlbmd0aDsgaSs9NikgeworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoZGF0YVtpXSwgZGF0YVtpKzFdLCBkYXRhW2krMl0sIGRhdGFbaSszXSwgMCwgMCk7CisgICAgICAgICAgICAgICAgaWYgKGRhdGFbaSs0XSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICsgZGF0YVtpKzRdKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNXZWVrZW5kID0gY2FsLmlzV2Vla2VuZCgpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gb2sgPSBpc1dlZWtlbmQgPT0gKGRhdGFbaSs1XSAhPSAwKTsKKyAgICAgICAgICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAgICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsgIiBpc1dlZWtlbmQ9IiArIGlzV2Vla2VuZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsgIiBpc1dlZWtlbmQ9IiArIGlzV2Vla2VuZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkPSIgKyAoIWlzV2Vla2VuZCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkyPTA7IGkyPERBVEEyLmxlbmd0aDsgaTIrPTIpIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSAoTG9jYWxlKURBVEEyW2kyXTsKKyAgICAgICAgICAgIGludFtdIGRhdGEgPSAoaW50W10pIERBVEEyW2kyKzFdOworICAgICAgICAgICAgbG9nbG4oIkxvY2FsZTogIiArIGxvYyk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2MpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGRhdGEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICAgICAgaW50IHR5cGUgPSBjYWwuZ2V0RGF5T2ZXZWVrVHlwZShkYXRhW2ldKTsKKyAgICAgICAgICAgICAgICBpbnQgZXhwICA9IGRhdGFbaSsxXTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBleHApIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAgIERPVyAiICsgZGF0YVtpXSArICIgdHlwZT0iICsgdHlwZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERPVyAiICsgZGF0YVtpXSArICIgdHlwZT0iICsgdHlwZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkPSIgKyBleHApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biBhIHRlc3Qgb2YgYSBxdWFzaS1HcmVnb3JpYW4gY2FsZW5kYXIuICBUaGlzIGlzIGEgY2FsZW5kYXIKKyAgICAgKiB0aGF0IGJlaGF2ZXMgbGlrZSBhIEdyZWdvcmlhbiBidXQgaGFzIGRpZmZlcmVudCB5ZWFyL2VyYSBtYXBwaW5ncy4KKyAgICAgKiBUaGUgaW50W10gZGF0YSBhcnJheSBzaG91bGQgaGF2ZSB0aGUgZm9ybWF0OgorICAgICAqCisgICAgICogeyBlcmEsIHllYXIsIGdyZWdvcmlhblllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCAuLi4gfQorICAgICAqLworICAgIHZvaWQgcXVhc2lHcmVnb3JpYW5UZXN0KENhbGVuZGFyIGNhbCwgaW50W10gZGF0YSkgeworICAgICAgICAvLyBBcyBvZiBKREsgMS40LjFfMDEsIHVzaW5nIHRoZSBTdW4gSkRLIEdyZWdvcmlhbkNhbGVuZGFyIGFzCisgICAgICAgIC8vIGEgcmVmZXJlbmNlIHRocm93cyB1cyBvZmYgYnkgb25lIGhvdXIuICBUaGlzIGlzIG1vc3QgbGlrZWx5CisgICAgICAgIC8vIGR1ZSB0byB0aGUgSkRLIDEuNCBpbmNvcnBvcmF0aW9uIG9mIGhpc3RvcmljYWwgdGltZSB6b25lcy4KKyAgICAgICAgLy9qYXZhLnV0aWwuQ2FsZW5kYXIgZ3JlZ28gPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgQ2FsZW5kYXIgZ3JlZ28gPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8ZGF0YS5sZW5ndGg7ICkgeworICAgICAgICAgICAgaW50IGVyYSA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIGludCB5ZWFyID0gZGF0YVtpKytdOworICAgICAgICAgICAgaW50IGdyZWdvcmlhblllYXIgPSBkYXRhW2krK107CisgICAgICAgICAgICBpbnQgbW9udGggPSBkYXRhW2krK107CisgICAgICAgICAgICBpbnQgZGF5T2ZNb250aCA9IGRhdGFbaSsrXTsKKworICAgICAgICAgICAgZ3JlZ28uY2xlYXIoKTsKKyAgICAgICAgICAgIGdyZWdvLnNldChncmVnb3JpYW5ZZWFyLCBtb250aCwgZGF5T2ZNb250aCk7CisgICAgICAgICAgICBEYXRlIEQgPSBncmVnby5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKTsKKyAgICAgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBpZiAoZC5lcXVhbHMoRCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBlcmEgKyAiOiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZGF5T2ZNb250aCArCisgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZXJhICsgIjoiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRheU9mTW9udGggKworICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGQgKyAiLCBleHBlY3RlZCAiICsgRCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoRCk7CisgICAgICAgICAgICBpbnQgZSA9IGNhbC5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgICAgIGludCB5ID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGlmICh5ID09IHllYXIgJiYgZSA9PSBlcmEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBEICsgIiA9PiAiICsgY2FsLmdldChDYWxlbmRhci5FUkEpICsgIjoiICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkZhaWw6ICIgKyBEICsgIiA9PiAiICsgY2FsLmdldChDYWxlbmRhci5FUkEpICsgIjoiICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXJhICsgIjoiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArCisgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhhdCBCdWRkaGlzdENhbGVuZGFyIHNoaWZ0cyB5ZWFycyB0byBCdWRkaGlzdCBFcmEgYnV0IG90aGVyd2lzZQorICAgICAqIGJlaGF2ZXMgbGlrZSBHcmVnb3JpYW5DYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVkZGhpc3QoKSB7CisgICAgICAgIHF1YXNpR3JlZ29yaWFuVGVzdChuZXcgQnVkZGhpc3RDYWxlbmRhcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBCRSAyNTQyID09IDE5OTkgQ0UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAyNTQyLCAxOTk5LCBDYWxlbmRhci5KVU5FLCA0CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVkZGhpc3RDb3ZlcmFnZSgpIHsKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBCdWRkaGlzdENhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSxVTG9jYWxlKQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSxVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lKQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBUaW1lWm9uZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihMb2NhbGUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUsIExvY2FsZSkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBCdWRkaGlzdENhbGVuZGFyIHdpdGggVGltZVpvbmUgYW5kIExvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihEYXRlKQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKG5ldyBEYXRlKCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBCdWRkaGlzdENhbGVuZGFyIHdpdGggRGF0ZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcigyNTQzLCBDYWxlbmRhci5NQVksIDIyKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0YSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoMjU0MywgQ2FsZW5kYXIuTUFZLCAyMiwgMSwgMSwgMSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUsaG91cixtaW51dGUsc2Vjb25kIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIGRhdGEKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcigyNTQzLCBDYWxlbmRhci5NQVksIDIyKTsKKyAgICAgICAgRGF0ZSB0aW1lID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICJ0aF9USCIKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSBmb3JtYXRMb2NhbGVzID0geworICAgICAgICAiZW4iLCAiYXIiLCAiaHUiLCAidGgiCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhckxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisgICAgICAgIExvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworICAgICAgICBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihjYWxMb2NhbGUpOworCisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0TG9jYWxlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworICAgICAgICAgICAgTG9jYWxlIGZvcm1hdExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jTmFtZSk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBmb3JtYXRMb2NhbGUpOworICAgICAgICAgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhhdCBKYXBhbmVzZUNhbGVuZGFyIHNoaWZ0cyB5ZWFycyB0byBCdWRkaGlzdCBFcmEgYnV0IG90aGVyd2lzZQorICAgICAqIGJlaGF2ZXMgbGlrZSBHcmVnb3JpYW5DYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SmFwYW5lc2UoKSB7CisgICAgICAgIC8vIEZpcnN0IG1ha2Ugc3VyZSB0aGlzIHRlc3Qgd29ya3MgZm9yIEdyZWdvcmlhbkNhbGVuZGFyCisgICAgICAgIGludFtdIGNvbnRyb2wgPSB7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTg2OCwgMTg2OCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA4LAorICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE4NjgsIDE4NjgsIENhbGVuZGFyLlNFUFRFTUJFUiwgOSwKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxODY5LCAxODY5LCBDYWxlbmRhci5KVU5FLCA0LAorICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5MTIsIDE5MTIsIENhbGVuZGFyLkpVTFksIDI5LAorICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5MTIsIDE5MTIsIENhbGVuZGFyLkpVTFksIDMwLAorICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5MTIsIDE5MTIsIENhbGVuZGFyLkFVR1VTVCwgMSwKKyAgICAgICAgfTsKKyAgICAgICAgcXVhc2lHcmVnb3JpYW5UZXN0KG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpLCBjb250cm9sKTsKKworICAgICAgICBpbnRbXSBkYXRhID0geworICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgMSwgMTg2OCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA4LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgMSwgMTg2OCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA5LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgMiwgMTg2OSwgQ2FsZW5kYXIuSlVORSwgNCwKKyAgICAgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIuTUVJSkksIDQ1LCAxOTEyLCBDYWxlbmRhci5KVUxZLCAyOSwKKyAgICAgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIuVEFJU0hPLCAxLCAxOTEyLCBDYWxlbmRhci5KVUxZLCAzMCwKKyAgICAgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIuVEFJU0hPLCAxLCAxOTEyLCBDYWxlbmRhci5BVUdVU1QsIDEsCisgICAgICAgIH07CisgICAgICAgIHF1YXNpR3JlZ29yaWFuVGVzdChuZXcgSmFwYW5lc2VDYWxlbmRhcigpLCBkYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGxpbWl0cyBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVnb3JpYW5MaW1pdHMoKSB7CisgICAgICAgIC8vIEZpbmFsIHBhcmFtZXRlciBpcyBlaXRoZXIgbnVtYmVyIG9mIGRheXMsIGlmID4gMCwgb3IgdGVzdAorICAgICAgICAvLyBkdXJhdGlvbiBpbiBzZWNvbmRzLCBpZiA8IDAuCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXQoMjAwNCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGRvTGltaXRzVGVzdChuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKSwgbnVsbCwgY2FsLmdldFRpbWUoKSwgLTEwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGJlaGF2aW9yIG9mIGZpZWxkRGlmZmVyZW5jZSBhcm91bmQgbGVhcCB5ZWFycy4gIEFsc28gdGVzdCBhIGxhcmdlCisgICAgICogZmllbGQgZGlmZmVyZW5jZSB0byBjaGVjayBiaW5hcnkgc2VhcmNoLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMZWFwRmllbGREaWZmZXJlbmNlKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0KDIwMDQsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7CisgICAgICAgIERhdGUgZGF0ZTIwMDQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0KDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7CisgICAgICAgIERhdGUgZGF0ZTIwMDAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpbnQgeSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIwMDQsIENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgZCA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIwMDQsIENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKyAgICAgICAgaWYgKGQgPT0gMCkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAyMDA0L0ZlYi8yOSAtIDIwMDAvRmViLzI5ID0gIiArIHkgKyAiIHllYXJzLCAiICsgZCArICIgZGF5cyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDIwMDQvRmViLzI5IC0gMjAwMC9GZWIvMjkgPSAiICsgeSArICIgeWVhcnMsICIgKyBkICsgIiBkYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsLnNldFRpbWUoZGF0ZTIwMDQpOworICAgICAgICB5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMjAwMCwgQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyMDAwLCBDYWxlbmRhci5EQVlfT0ZfWUVBUik7CisgICAgICAgIGlmIChkID09IDApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogMjAwMC9GZWIvMjkgLSAyMDA0L0ZlYi8yOSA9ICIgKyB5ICsgIiB5ZWFycywgIiArIGQgKyAiIGRheXMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAyMDAwL0ZlYi8yOSAtIDIwMDQvRmViLzI5ID0gIiArIHkgKyAiIHllYXJzLCAiICsgZCArICIgZGF5cyIpOworICAgICAgICB9CisgICAgICAgIC8vIFRlc3QgbGFyZ2UgZGlmZmVyZW5jZQorICAgICAgICBjYWwuc2V0KDIwMDEsIENhbGVuZGFyLkFQUklMLCA1KTsgLy8gMjQ1MjAwNQorICAgICAgICBEYXRlIGF5bCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXQoMTk2NCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA3KTsgLy8gMjQzODY0NgorICAgICAgICBEYXRlIGFzbCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKGF5bCwgQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgY2FsLnNldFRpbWUoYXlsKTsKKyAgICAgICAgaW50IGQyID0gY2FsLmZpZWxkRGlmZmVyZW5jZShhc2wsIENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgIGlmIChkID09IC1kMiAmJiBkID09IDEzMzU5KSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IGxhcmdlIGZpZWxkIGRpZmZlcmVuY2Ugc3ltbWV0cmljYWwgIiArIGQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkZBSUw6IGxhcmdlIGZpZWxkIGRpZmZlcmVuY2UgaW5jb3JyZWN0ICIgKyBkICsgIiwgIiArIGQyICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCArLy0gMTMzNTkiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbXNfTVkgIk1hbGF5IChNYWxheXNpYSkiIGxvY2FsZS4gIEJ1ZyAxNTQzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RNYWxheXNpYW5JbnN0YW5jZSgpIHsKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoIm1zIiwgIk1ZIik7ICAvLyBNYWxheSAoTWFsYXlzaWEpCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIE1hbGF5c2lhbiBpbnN0YW5jZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogc2V0Rmlyc3REYXlPZldlZWsgYW5kIHNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgbWF5IGNoYW5nZSB0aGUKKyAgICAgKiBmaWVsZCA8PT4gdGltZSBtYXBwaW5nLCBzaW5jZSB0aGV5IGFmZmVjdCB0aGUgaW50ZXJwcmV0YXRpb24gb2YKKyAgICAgKiB0aGUgV0VFS19PRl9NT05USCBvciBXRUVLX09GX1lFQVIgZmllbGRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RXZWVrU2hpZnQoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKDk5NzI1NzYwMDAwMEwpKTsgLy8gV2VkIEF1ZyAwOCAwMTowMDowMCBQRFQgMjAwMQorICAgICAgICAvLyBJbiBwYXNzIG9uZSwgY2hhbmdlIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayBzbyB0aGF0IHRoZSB3ZWVrcworICAgICAgICAvLyBzaGlmdCBpbiBBdWd1c3QgMjAwMS4gIEluIHBhc3MgdHdvLCBjaGFuZ2UgdGhlIG1pbmltYWwgZGF5cworICAgICAgICAvLyBpbiB0aGUgZmlyc3Qgd2VlayBzbyB0aGF0IHRoZSB3ZWVrcyBzaGlmdCBpbiBBdWd1c3QgMjAwMS4KKyAgICAgICAgLy8gICAgIEF1Z3VzdCAyMDAxCisgICAgICAgIC8vIFN1IE1vIFR1IFdlIFRoIEZyIFNhCisgICAgICAgIC8vICAgICAgICAgICAxICAyICAzICA0CisgICAgICAgIC8vICA1ICA2ICA3ICA4ICA5IDEwIDExCisgICAgICAgIC8vIDEyIDEzIDE0IDE1IDE2IDE3IDE4CisgICAgICAgIC8vIDE5IDIwIDIxIDIyIDIzIDI0IDI1CisgICAgICAgIC8vIDI2IDI3IDI4IDI5IDMwIDMxCisgICAgICAgIGZvciAoaW50IHBhc3M9MDsgcGFzczwyOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIGlmIChwYXNzPT0wKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLldFRE5FU0RBWSk7CisgICAgICAgICAgICAgICAgY2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoNCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5TVU5EQVkpOworICAgICAgICAgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsgLy8gRm9yY2UgcmVjYWxjCisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIC0xKTsKKworICAgICAgICAgICAgRGF0ZSB0aW1lMSA9IGNhbC5nZXRUaW1lKCk7IC8vIEdldCB0aW1lIC0tIHNob3VsZCBub3QgY2hhbmdlCisKKyAgICAgICAgICAgIC8vIE5vdyBjaGFuZ2UgYSB3ZWVrIHBhcmFtZXRlciBhbmQgdGhlbiBmb3JjZSBhIHJlY2FsYy4KKyAgICAgICAgICAgIC8vIFRoZSBidWcgaXMgdGhhdCB0aGUgcmVjYWxjIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IC0tCisgICAgICAgICAgICAvLyBjYWxlbmRhciBzaG91bGQgZG8gc28gYXV0b21hdGljYWxseS4KKyAgICAgICAgICAgIGlmIChwYXNzPT0wKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlRIVVJTREFZKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoNSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCB3b3kxID0gY2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgaW50IHdvbTEgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgpOworCisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOyAvLyBGb3JjZSByZWNhbGMKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgLTEpOworCisgICAgICAgICAgICBpbnQgd295MiA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgIGludCB3b20yID0gY2FsLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKTsKKworICAgICAgICAgICAgRGF0ZSB0aW1lMiA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIGlmICghdGltZTEuZXF1YWxzKHRpbWUyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzaGlmdGluZyB3ZWVrIHNob3VsZCBub3QgYWx0ZXIgdGltZSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbih0aW1lMS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh3b3kxID09IHdveTIgJiYgd29tMSA9PSB3b20yKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBXRUVLX09GX1lFQVI6ICIgKyB3b3kxICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBXRUVLX09GX01PTlRIOiAiICsgd29tMSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBXRUVLX09GX1lFQVI6ICIgKyB3b3kxICsgIiA9PiAiICsgd295MiArCisgICAgICAgICAgICAgICAgICAgICAgIiwgV0VFS19PRl9NT05USDogIiArIHdvbTEgKyAiID0+ICIgKyB3b20yICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGFmdGVyIHdlZWsgc2hpZnQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSB0aGF0IHdoZW4gYWRkaW5nIGEgZGF5LCB3ZSBhY3R1YWxseSB3aW5kIHVwIGluIGEKKyAgICAgKiBkaWZmZXJlbnQgZGF5LiAgVGhlIERTVCBhZGp1c3RtZW50cyB3ZSB1c2UgdG8ga2VlcCB0aGUgaG91cgorICAgICAqIGNvbnN0YW50IGFjcm9zcyBEU1QgY2hhbmdlcyBjYW4gYmFja2ZpcmUgYW5kIGNoYW5nZSB0aGUgZGF5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lWm9uZVRyYW5zaXRpb25BZGQoKSB7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGUuVVM7IC8vIGNvdWxkIGFsc28gYmUgQ0hJTkEKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkYXRlRm9ybWF0ID0KKyAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eXl5IEhIOm1tIHoiLCBsb2NhbGUpOworCisgICAgICAgIFN0cmluZyB0eltdID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisKKyAgICAgICAgZm9yIChpbnQgej0wOyB6PHR6Lmxlbmd0aDsgKyt6KSB7CisgICAgICAgICAgICBUaW1lWm9uZSB0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUodHpbel0pOworICAgICAgICAgICAgZGF0ZUZvcm1hdC5zZXRUaW1lWm9uZSh0KTsKKworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodCwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgLy8gU2NhbiB0aGUgeWVhciAyMDAzLCBvdmVybGFwcGluZyB0aGUgZWRnZXMgb2YgdGhlIHllYXIKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMjAwMik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5ERUNFTUJFUik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMjUpOworCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8MzY1KzEwOyArK2kpIHsKKyAgICAgICAgICAgICAgICBEYXRlIHllc3RlcmRheSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgaW50IHllc3RlcmRheV9kYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgICAgICAgICAgICAgIGlmICh5ZXN0ZXJkYXlfZGF5ID09IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbih0elt6XSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQuZm9ybWF0KHllc3RlcmRheSkgKyAiICsxZD0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkIxNjg0KCkgeworICAgICAgICBjbGFzcyBUZXN0RGF0YSB7CisgICAgICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgICAgIGludCBtb250aDsKKyAgICAgICAgICAgIGludCBkYXRlOworICAgICAgICAgICAgaW50IHdvbXllYXI7CisgICAgICAgICAgICBpbnQgd29tbW9uOworICAgICAgICAgICAgaW50IHdvbTsKKyAgICAgICAgICAgIGludCBkb3c7CisgICAgICAgICAgICBTdHJpbmcgZGF0YTsKKyAgICAgICAgICAgIFN0cmluZyBub3JtYWxpemVkOworCisgICAgICAgICAgICBwdWJsaWMgVGVzdERhdGEoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdvbXllYXIsIGludCB3b21tb24sIGludCB3b20sIGludCBkb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRhdGEsIFN0cmluZyBub3JtYWxpemVkKSB7CisgICAgICAgICAgICAgICAgdGhpcy55ZWFyID0geWVhcjsKKyAgICAgICAgICAgICAgICB0aGlzLm1vbnRoID0gbW9udGgtMTsKKyAgICAgICAgICAgICAgICB0aGlzLmRhdGUgPSBkYXRlOworICAgICAgICAgICAgICAgIHRoaXMud29teWVhciA9IHdvbXllYXI7CisgICAgICAgICAgICAgICAgdGhpcy53b21tb24gPSB3b21tb24tMTsKKyAgICAgICAgICAgICAgICB0aGlzLndvbSA9IHdvbTsKKyAgICAgICAgICAgICAgICB0aGlzLmRvdyA9IGRvdzsKKyAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhOyAvLyB5ZWFyLCBtb250aCwgd2VlayBvZiBtb250aCwgZGF5CisgICAgICAgICAgICAgICAgdGhpcy5ub3JtYWxpemVkID0gZGF0YTsKKyAgICAgICAgICAgICAgICBpZiAobm9ybWFsaXplZCAhPSBudWxsKSB0aGlzLm5vcm1hbGl6ZWQgPSBub3JtYWxpemVkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gICAgICBKdWx5IDIwMDEgICAgICAgICAgICBBdWd1c3QgMjAwMSAgICAgICAgICAgSmFudWFyeSAyMDAyCisgICAgICAgIC8vIFN1IE1vIFR1IFdlIFRoIEZyIFNhICBTdSBNbyBUdSBXZSBUaCBGciBTYSAgU3UgTW8gVHUgV2UgVGggRnIgU2EKKyAgICAgICAgLy8gIDEgIDIgIDMgIDQgIDUgIDYgIDcgICAgICAgICAgICAxICAyICAzICA0ICAgICAgICAgMSAgMiAgMyAgNCAgNQorICAgICAgICAvLyAgOCAgOSAxMCAxMSAxMiAxMyAxNCAgIDUgIDYgIDcgIDggIDkgMTAgMTEgICA2ICA3ICA4ICA5IDEwIDExIDEyCisgICAgICAgIC8vIDE1IDE2IDE3IDE4IDE5IDIwIDIxICAxMiAxMyAxNCAxNSAxNiAxNyAxOCAgMTMgMTQgMTUgMTYgMTcgMTggMTkKKyAgICAgICAgLy8gMjIgMjMgMjQgMjUgMjYgMjcgMjggIDE5IDIwIDIxIDIyIDIzIDI0IDI1ICAyMCAyMSAyMiAyMyAyNCAyNSAyNgorICAgICAgICAvLyAyOSAzMCAzMSAgICAgICAgICAgICAgMjYgMjcgMjggMjkgMzAgMzEgICAgIDI3IDI4IDI5IDMwIDMxCisgICAgICAgIFRlc3REYXRhW10gdGVzdHMgPSB7CisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgOCwgIDYsICAyMDAxLDgsMixDYWxlbmRhci5NT05EQVksICAgICIyMDAxIDA4IDAyIE1vbiIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDgsICA3LCAgMjAwMSw4LDIsQ2FsZW5kYXIuVFVFU0RBWSwgICAiMjAwMSAwOCAwMiBUdWUiLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA4LCAgNSwvKjEyLCovIDIwMDEsOCwyLENhbGVuZGFyLlNVTkRBWSwgICAgIjIwMDEgMDggMDIgU3VuIiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgOCw2LCAvKjcsICAzMCwqLyAyMDAxLDcsNixDYWxlbmRhci5NT05EQVksICAgICIyMDAxIDA3IDA2IE1vbiIsICIyMDAxIDA4IDAyIE1vbiIpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDgsNywgLyo3LCAgMzEsKi8gMjAwMSw3LDYsQ2FsZW5kYXIuVFVFU0RBWSwgICAiMjAwMSAwNyAwNiBUdWUiLCAiMjAwMSAwOCAwMiBUdWUiKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA4LCAgNSwgIDIwMDEsNyw2LENhbGVuZGFyLlNVTkRBWSwgICAgIjIwMDEgMDcgMDYgU3VuIiwgIjIwMDEgMDggMDIgU3VuIiksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgNywgIDMwLCAyMDAxLDgsMSxDYWxlbmRhci5NT05EQVksICAgICIyMDAxIDA4IDAxIE1vbiIsICIyMDAxIDA3IDA1IE1vbiIpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDcsICAzMSwgMjAwMSw4LDEsQ2FsZW5kYXIuVFVFU0RBWSwgICAiMjAwMSAwOCAwMSBUdWUiLCAiMjAwMSAwNyAwNSBUdWUiKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA3LDI5LCAvKjgsICA1LCovICAyMDAxLDgsMSxDYWxlbmRhci5TVU5EQVksICAgICIyMDAxIDA4IDAxIFN1biIsICIyMDAxIDA3IDA1IFN1biIpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDEyLCAzMSwgMjAwMSwxMiw2LENhbGVuZGFyLk1PTkRBWSwgICAiMjAwMSAxMiAwNiBNb24iLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAyLCAxLCAgMSwgIDIwMDIsMSwxLENhbGVuZGFyLlRVRVNEQVksICAgIjIwMDIgMDEgMDEgVHVlIiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMiwgMSwgIDIsICAyMDAyLDEsMSxDYWxlbmRhci5XRURORVNEQVksICIyMDAyIDAxIDAxIFdlZCIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDIsIDEsICAzLCAgMjAwMiwxLDEsQ2FsZW5kYXIuVEhVUlNEQVksICAiMjAwMiAwMSAwMSBUaHUiLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAyLCAxLCAgNCwgIDIwMDIsMSwxLENhbGVuZGFyLkZSSURBWSwgICAgIjIwMDIgMDEgMDEgRnJpIiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMiwgMSwgIDUsICAyMDAyLDEsMSxDYWxlbmRhci5TQVRVUkRBWSwgICIyMDAyIDAxIDAxIFNhdCIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsMTIsMzAsIC8qMjAwMiwgMSwgIDYsKi8gIDIwMDIsMSwxLENhbGVuZGFyLlNVTkRBWSwgICAgIjIwMDIgMDEgMDEgU3VuIiwgIjIwMDEgMTIgMDYgU3VuIiksCisgICAgICAgIH07CisKKyAgICAgICAgaW50IHBhc3MgPSAwLCBlcnJvciA9IDAsIHdhcm5pbmcgPSAwOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gInl5eXkgTU0gV1cgRUVFIjsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybik7CisgICAgICAgIHNkZi5zZXRDYWxlbmRhcihjYWwpOworCisgICAgICAgIGNhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5TVU5EQVkpOworICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygxKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUZXN0RGF0YSB0ZXN0ID0gdGVzdHNbaV07CisgICAgICAgICAgICBsb2coIlxuLS0tLS1cblRlc3Rpbmcgcm91bmQgdHJpcCBvZiAiICsgdGVzdC55ZWFyICsKKyAgICAgICAgICAgICAgICAgICIgIiArICh0ZXN0Lm1vbnRoICsgMSkgKworICAgICAgICAgICAgICAgICAgIiAiICsgdGVzdC5kYXRlICsKKyAgICAgICAgICAgICAgICAgICIgKHdyaXR0ZW4gYXMpICIgKyB0ZXN0LmRhdGEpOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQodGVzdC55ZWFyLCB0ZXN0Lm1vbnRoLCB0ZXN0LmRhdGUpOworICAgICAgICAgICAgRGF0ZSBtcyA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB0ZXN0LndvbXllYXIpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgdGVzdC53b21tb24pOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5XRUVLX09GX01PTlRILCB0ZXN0LndvbSk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCB0ZXN0LmRvdyk7CisgICAgICAgICAgICBEYXRlIG1zMiA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIGlmICghbXMyLmVxdWFscyhtcykpIHsKKyAgICAgICAgICAgICAgICBsb2coIlxuRXJyb3I6IEdyZWdvcmlhbkNhbGVuZGFyLkRPTSBnYXZlICIgKyBtcyArCisgICAgICAgICAgICAgICAgICAgICJcbiAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5XT00gZ2F2ZSAiICsgbXMyKTsKKyAgICAgICAgICAgICAgICBlcnJvcisrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXNzKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1zMiA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG1zMiA9IHNkZi5wYXJzZSh0ZXN0LmRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGFyc2UgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbXMyLmVxdWFscyhtcykpIHsKKyAgICAgICAgICAgICAgICBsb2coIlxuRXJyb3I6IEdyZWdvcmlhbkNhbGVuZGFyIGdhdmUgICAgICAiICsgbXMgKworICAgICAgICAgICAgICAgICAgICAiXG4gICAgICAgU2ltcGxlRGF0ZUZvcm1hdC5wYXJzZSBnYXZlICIgKyBtczIpOworICAgICAgICAgICAgICAgIGVycm9yKys7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc3MrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHNkZi5mb3JtYXQobXMpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKHRlc3Qubm9ybWFsaXplZCkpIHsKKyAgICAgICAgICAgICAgICBsb2coIlxuV2FybmluZzogZm9ybWF0IG9mICciICsgdGVzdC5kYXRhICsgIicgZ2F2ZSIgKworICAgICAgICAgICAgICAgICAgICAiXG4gICAgICAgICAgICAgICAgICAgJyIgKyByZXN1bHQgKyAiJyIgKworICAgICAgICAgICAgICAgICAgICAiXG4gICAgICAgICAgZXhwZWN0ZWQgJyIgKyB0ZXN0Lm5vcm1hbGl6ZWQgKyAiJyIpOworICAgICAgICAgICAgICAgIHdhcm5pbmcrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcGFzcysrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBEYXRlIG1zMyA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG1zMyA9IHNkZi5wYXJzZShyZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGFyc2UgZXhjZXB0aW9uIDI6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFtczMuZXF1YWxzKG1zKSkgeworICAgICAgICAgICAgICAgIGVycm9yKys7CisgICAgICAgICAgICAgICAgbG9nKCJcbkVycm9yOiBSZS1wYXJzZSBvZiAnIiArIHJlc3VsdCArICInIGdhdmUgdGltZSBvZiAiICsKKyAgICAgICAgICAgICAgICAgICAgIlxuICAgICAgICAiICsgbXMzICsKKyAgICAgICAgICAgICAgICAgICAgIlxuICAgIG5vdCAiICsgbXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXNzKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGluZm8gPSAiXG5QYXNzZWQ6ICIgKyBwYXNzICsgIiwgV2FybmluZ3M6ICIgKyB3YXJuaW5nICsgIiwgRXJyb3JzOiAiICsgZXJyb3I7CisgICAgICAgIGlmIChlcnJvciA+IDApIHsKKyAgICAgICAgICAgIGVycmxuKGluZm8pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oaW5mbyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBab25lTWV0YSBBUEkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFpvbmVNZXRhKCkgeworICAgICAgICAvLyBUZXN0IGluZGV4IGJ5IGNvdW50cnkgQVBJCisKKyAgICAgICAgLy8gRm9ybWF0OiB7Y291bnRyeSwgem9uZTEsIHpvbmUyLCAuLi4sIHpvbmVOfQorICAgICAgICBTdHJpbmcgQ09VTlRSWVtdW10gPSB7IHsiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJVUyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIlBTVCJ9IH07CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxDT1VOVFJZLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBhID0gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKENPVU5UUllbaV1bMF0pOworICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIkNvdW50cnkgXCIiICsgQ09VTlRSWVtpXVswXSArICJcIjogWyIpOworICAgICAgICAgICAgLy8gVXNlIGJpdG1hc2sgdG8gdHJhY2sgd2hpY2ggb2YgdGhlIGV4cGVjdGVkIHpvbmVzIHdlIHNlZQorICAgICAgICAgICAgaW50IG1hc2sgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGEubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoaiE9MCkgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGFbal0pOworICAgICAgICAgICAgICAgIGZvciAoaW50IGs9MTsgazxDT1VOVFJZW2ldLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgobWFzayAmICgxPDxrKSkgPT0gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgYVtqXS5lcXVhbHMoQ09VTlRSWVtpXVtrXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hc2sgfD0gKDE8PGspOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZCgiXSIpOworICAgICAgICAgICAgbWFzayA+Pj0gMTsKKyAgICAgICAgICAgIC8vIENoZWNrIGJpdG1hc2sgdG8gc2VlIGlmIHdlIHNhdyBhbGwgZXhwZWN0ZWQgem9uZXMKKyAgICAgICAgICAgIGlmIChtYXNrID09ICgxIDw8IChDT1VOVFJZW2ldLmxlbmd0aC0xKSktMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCBlcXVpdmFsZW50IElEcyBBUEkKKworICAgICAgICBpbnQgbiA9IFpvbmVNZXRhLmNvdW50RXF1aXZhbGVudElEcygiUFNUIik7CisgICAgICAgIGJvb2xlYW4gb2sgPSBmYWxzZTsKKyAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiRXF1aXZhbGVudCB0byBQU1Q6ICIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBab25lTWV0YS5nZXRFcXVpdmFsZW50SUQoIlBTVCIsIGkpOworICAgICAgICAgICAgaWYgKGlkLmVxdWFscygiQW1lcmljYS9Mb3NfQW5nZWxlcyIpKSB7CisgICAgICAgICAgICAgICAgb2sgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkhPTApIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKGlkKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJhYmxlKCkgeworICAgIEdyZWdvcmlhbkNhbGVuZGFyIGMwID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgR3JlZ29yaWFuQ2FsZW5kYXIgYzEgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICBjMS5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICBpZiAoYzAuY29tcGFyZVRvKGMxKSA+PSAwKSB7CisgICAgICAgIGVycmxuKCJjYWxlbmRhciAiICsgYzAgKyAiIG5vdCA8ICIgKyBjMSk7CisgICAgfQorICAgIGMwLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgaWYgKGMwLmNvbXBhcmVUbyhjMSkgPD0gMCkgeworICAgICAgICBlcnJsbigiY2FsZW5kYXIgIiArIGMwICsgIiBub3QgPiAiICsgYzEpOworICAgIH0KKworICAgIGMwLnNldFRpbWVJbk1pbGxpcyhjMS5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgaWYgKGMwLmNvbXBhcmVUbyhjMSkgIT0gMCkgeworICAgICAgICBlcnJsbigiY2FsZW5kYXIgIiArIGMwICsgIiBub3QgPT0gIiArIGMxKTsKKyAgICB9CisKKyAgICAvLyBjb3ZlcmFnZQorICAgIHRyeSB7CisgICAgICAgIGMwLmNvbXBhcmVUbygoT2JqZWN0KW51bGwpOworICAgICAgICBlcnJsbigiY2FsZW5kYXIuY29tcGFyZVRvIGRpZG4ndCBvYmplY3QgdG8gbnVsbCBhcmciKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIG5wZSkgeworICAgICAgICBsb2dsbigiUEFTUzogY2FsZW5kYXIuY29tcGFyZVRvIG9iamVjdGVkIHRvIG51bGwgYXJnIik7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1pc2NlbGxhbmVvdXMgdGVzdHMgdG8gaW5jcmVhc2UgY292ZXJhZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICAvLyBCdWRkaGlzdENhbGVuZGFyCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgYmNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKCk7CisgICAgICAgIC8qaW50IGkgPSovIGJjYWwuZ2V0TWluaW11bShDYWxlbmRhci5FUkEpOworICAgICAgICBiY2FsLmFkZChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgYmNhbC5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEpOworICAgICAgICAvKkRhdGUgZCA9ICovYmNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgLy8gQ2FsZW5kYXJBc3Ryb25vbWVyCisgICAgICAgIC8vIChUaGlzIGNsYXNzIHNob3VsZCBwcm9iYWJseSBiZSBtYWRlIHBhY2thZ2UtcHJpdmF0ZS4pCisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKyAgICAgICAgLypTdHJpbmcgcyA9ICovYXN0cm8ubG9jYWwoMCk7CisKKyAgICAgICAgLy8gQ2hpbmVzZUNhbGVuZGFyCisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgY2NhbC5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEpOworICAgICAgICBjY2FsLmFkZChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgY2NhbC5yb2xsKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgY2NhbC5yb2xsKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBjY2FsLmdldFRpbWUoKTsKKworICAgICAgICAvLyBJQ1UgMi42CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGxvZ2xuKGNhbC50b1N0cmluZygpKTsKKyAgICAgICAgbG9nbG4oY2FsLmdldERpc3BsYXlOYW1lKExvY2FsZS5VUykpOworICAgICAgICBpbnQgd2Vla2VuZE9uc2V0PS0xOworICAgICAgICBpbnQgd2Vla2VuZENlYXNlPS0xOworICAgICAgICBmb3IgKGludCBpPUNhbGVuZGFyLlNVTkRBWTsgaTw9Q2FsZW5kYXIuU0FUVVJEQVk7ICsraSkgeworICAgICAgICAgICAgaWYgKGNhbC5nZXREYXlPZldlZWtUeXBlKGkpID09IENhbGVuZGFyLldFRUtFTkRfT05TRVQpIHsKKyAgICAgICAgICAgICAgICB3ZWVrZW5kT25zZXQgPSBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNhbC5nZXREYXlPZldlZWtUeXBlKGkpID09IENhbGVuZGFyLldFRUtFTkRfQ0VBU0UpIHsKKyAgICAgICAgICAgICAgICB3ZWVrZW5kQ2Vhc2UgPSBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGNhbid0IGNhbGwgdGhpcyB1bmxlc3Mgd2UgZ2V0IGEgdHJhbnNpdGlvbiBkYXkgKHVudXN1YWwpLAorICAgICAgICAvLyBidXQgbWFrZSB0aGUgY2FsbCBhbnl3YXkgZm9yIGNvdmVyYWdlIHJlYXNvbnMKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8qaW50IHg9Ki8gY2FsLmdldFdlZWtlbmRUcmFuc2l0aW9uKHdlZWtlbmRPbnNldCk7CisgICAgICAgICAgICAvKmludCB4PSovIGNhbC5nZXRXZWVrZW5kVHJhbnNpdGlvbih3ZWVrZW5kQ2Vhc2UpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkge30KKyAgICAgICAgLyppbnQgeD0qLyBjYWwuaXNXZWVrZW5kKG5ldyBEYXRlKCkpOworCisgICAgICAgIC8vIG5ldyBHcmVnb3JpYW5DYWxlbmRhcihVTG9jYWxlKQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoZ2NhbD09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIFVMb2NhbGUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDYWxlbmRhciBkaXNwbGF5IG5hbWU6ICIgKyBnY2FsLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKSk7CisgICAgICAgIH0KKworICAgICAgICAvL2NvdmVyIGdldEF2YWlsYWJsZVVMb2NhbGVzCisgICAgICAgIGZpbmFsIFVMb2NhbGVbXSBsb2NhbGVzID0gQ2FsZW5kYXIuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBpZiAoY291bnQgPT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJnZXRBdmFpbGFibGVVTG9jYWxlcyByZXR1cm4gZW1wdHkgbGlzdCIpOworICAgICAgICBsb2dsbigiIiArIGNvdW50ICsgIiBhdmFpbGFibGUgdWxvY2FsZXMgaW4gQ2FsZW5kYXIuIik7CisKKyAgICAgICAgLy8gSml0dGVyYnVnIDQ0NTEsIGZvciBjb3ZlcmFnZQorICAgICAgICBjbGFzcyBTdHViQ2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhcnsKKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7cmV0dXJuIDA7fQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkge3JldHVybiAwO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkge3JldHVybiAwO30KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpeworICAgICAgICAgICAgICAgIGlmIChDYWxlbmRhci5ncmVnb3JpYW5QcmV2aW91c01vbnRoTGVuZ3RoKDIwMDAsMikgIT0gMjkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiWWVhciAyMDAwIEZlYiBzaG91bGQgaGF2ZSAyOSBkYXlzLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb25nIG1pbGxpcyA9IENhbGVuZGFyLmp1bGlhbkRheVRvTWlsbGlzKENhbGVuZGFyLk1BWF9KVUxJQU4pOworICAgICAgICAgICAgICAgIGlmKG1pbGxpcyAhPSBDYWxlbmRhci5NQVhfTUlMTElTKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmcm9tIGp1bGlhbkRheVRvTWlsbGlzLiBHb3Q6IiArIG1pbGxpcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBoYW5kbGVHZXREYXRlRm9ybWF0KCIiLExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGhhbmRsZUdldERhdGVGb3JtYXQoIiIsVUxvY2FsZS5nZXREZWZhdWx0KCkpKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuICgiQ2FsZW5kYXIuaGFuZGxlR2V0RGF0ZUZvcm1hdChTdHJpbmcsIExvY2FsZSkgc2hvdWxkIGRlbGVnYXRlIHRvICggLFVMb2NhbGUpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghZ2V0VHlwZSgpLmVxdWFscygiZ3JlZ29yaWFuIikpeworICAgICAgICAgICAgICAgICAgICBlcnJsbiAoIkNhbGVuZGFyLmdldFR5cGUoKSBzaG91bGQgYmUgJ2dyZWdvcmlhbiciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3R1YkNhbGVuZGFyIHN0dWIgPSBuZXcgU3R1YkNhbGVuZGFyKCk7CisgICAgICAgIHN0dWIucnVuKCk7CisgICAgfQorCisgICAgLy8gVGVzdHMgZm9yIGpiIDQ1NDEKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI0NTQxKCkgeworICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworCisgICAgICAgIC8vICEhISBTaG91bGRuJ3Qgd2UgaGF2ZSBhbiBhcGkgbGlrZSB0aGlzPworICAgICAgICAvLyAhISEgUXVlc3Rpb246IHNob3VsZCB0aGlzIHJlZmxlY3QgdGhvc2UgYWN0dWFsbHkgYXZhaWxhYmxlIGluIHRoaXMgY29weSBvZiBJQ1UsIG9yIAorICAgICAgICAvLyB0aGUgbGlzdCBvZiB0eXBlcyB3ZSBhc3N1bWUgaXMgYXZhaWxhYmxlPworICAgICAgICAvLyBTdHJpbmdbXSBjYWxUeXBlcyA9IENhbGVuZGFyLmdldEF2YWlsYWJsZVR5cGVzKCk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGNhbFR5cGVzID0geworICAgICAgICAgICAgImJ1ZGRoaXN0IiwgImNoaW5lc2UiLCAiY29wdGljIiwgImV0aGlvcGljIiwgImdyZWdvcmlhbiIsICJoZWJyZXciLCAKKyAgICAgICAgICAgICJpc2xhbWljIiwgImlzbGFtaWMtY2l2aWwiLCAiamFwYW5lc2UiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgLy8gY29uc3RydWN0aW5nIGEgRGF0ZUZvcm1hdCB3aXRoIGEgbG9jYWxlIGluZGljYXRpbmcgYSBjYWxlbmRhciB0eXBlIHNob3VsZCBjb25zdHJ1Y3QgYQorICAgICAgICAvLyBkYXRlIGZvcm1hdCBhcHByb3ByaWF0ZSB0byB0aGF0IGNhbGVuZGFyCisgICAgICAgIGZpbmFsIERhdGUgdGltZSA9IG5ldyBEYXRlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFVMb2NhbGUgYUxvYyA9IGxvYy5zZXRLZXl3b3JkVmFsdWUoImNhbGVuZGFyIiwgY2FsVHlwZXNbaV0pOworICAgICAgICAgICAgbG9nbG4oImxvY2FsZTogIiArIGFMb2MpOworCisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhTG9jKTsKKworICAgICAgICAgICAgbG9nbG4oImRmIHR5cGU6ICIgKyBkZi5nZXRDbGFzcygpLmdldE5hbWUoKSArICIgbG9jOiAiICsgZGYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKSk7CisKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IGRmLmdldENhbGVuZGFyKCk7CisgICAgICAgICAgICAvLyB0b2RvLCB3aGF0IGFib3V0IHZhcmlhbnRzIG9mIGNhbGVuZGFycywgd2UgaGF2ZSBhIHR5cGUgZm9yIGlzbGFtaWMtY2l2aWwsIHNob3VsZCB3ZSBhbHNvIGhhdmUgYSB0eXBlCisgICAgICAgICAgICAvLyBmb3IgdmFyaWFudHMgb2Ygb3RoZXIgY2FsZW5kYXJzPworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJjYWxlbmRhciB0eXBlcyIsIGNhbC5nZXRUeXBlKCksIGNhbFR5cGVzW2ldLmVxdWFscygiaXNsYW1pYy1jaXZpbCIpID8gImlzbGFtaWMiIDogY2FsVHlwZXNbaV0pOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZjIgPSBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIFVMb2NhbGUuVVMpOworICAgICAgICAgICAgbG9nbG4oImRmMiB0eXBlOiAiICsgZGYyLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiBsb2M6ICIgKyBkZjIuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCByZXN1bHRzIiwgZGYuZm9ybWF0KHRpbWUpLCBkZjIuZm9ybWF0KHRpbWUpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGRhdGVGb3JtYXQuc2V0Q2FsZW5kYXIgc2hvdWxkIHRocm93IGV4Y2VwdGlvbiBpZiB3cm9uZyBmb3JtYXQgZm9yIGNhbGVuZGFyCisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LkZVTEwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fVVNAY2FsZW5kYXI9Y2hpbmVzZSIpKTsKKworICAgICAgICAgICAgbG9nbG4oImRhdGVmb3JtYXQgdHlwZTogIiArIGRmLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUoImVuX1VTQGNhbGVuZGFyPWNoaW5lc2UiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKCJjYWxlbmRhciB0eXBlOiAiICsgY2FsLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Jc2xhbWljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0lzbGFtaWNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTUxMzZkMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Jc2xhbWljVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgSXNsYW1pY1Rlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSXNsYW1pY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqIENvbnN0YW50cyB0byBzYXZlIHR5cGluZy4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNVUhBUlJBTSA9IElzbGFtaWNDYWxlbmRhci5NVUhBUlJBTTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQUZBUiA9ICBJc2xhbWljQ2FsZW5kYXIuU0FGQVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFCSV8xID0gIElzbGFtaWNDYWxlbmRhci5SQUJJXzE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFCSV8yID0gIElzbGFtaWNDYWxlbmRhci5SQUJJXzI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVNQURBXzEgPSAgSXNsYW1pY0NhbGVuZGFyLkpVTUFEQV8xOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTUFEQV8yID0gIElzbGFtaWNDYWxlbmRhci5KVU1BREFfMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUpBQiA9ICBJc2xhbWljQ2FsZW5kYXIuUkFKQUI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBQkFOID0gIElzbGFtaWNDYWxlbmRhci5TSEFCQU47CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFNQURBTiA9ICBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEFXV0FMID0gIElzbGFtaWNDYWxlbmRhci5TSEFXV0FMOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFJREFIID0gIElzbGFtaWNDYWxlbmRhci5ESFVfQUxfUUlEQUg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElKSkFIID0gIElzbGFtaWNDYWxlbmRhci5ESFVfQUxfSElKSkFIOworCisgICAgcHVibGljIHZvaWQgVGVzdFJvbGwoKSB7CisgICAgICAgIGludFtdW10gdGVzdHMgPSBuZXcgaW50W11bXSB7CisgICAgICAgICAgICAvLyAgICAgICBpbnB1dCAgICAgICAgICAgICAgICByb2xsIGJ5ICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgCisgICAgICAgICAgICB7ICAgMDAwMSwgUUlEQUgsICAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDAwMDEsIEhJSkpBSCwgICAgMiB9LCAgIC8vIG5vbi1sZWFwIHllYXJzCisgICAgICAgICAgICB7ICAgMDAwMSwgUUlEQUgsICAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDAwMDEsIE1VSEFSUkFNLCAgMiB9LAorICAgICAgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgLTEsICAgICAwMDAxLCBTSEFXV0FMLCAgIDIgfSwKKyAgICAgICAgICAgIHsgICAwMDAxLCBNVUhBUlJBTSwgIDIsICAgICBNT05USCwgIDEyLCAgICAgMDAwMSwgTVVIQVJSQU0sICAyIH0sCisgICAgICAgICAgICB7ICAgMDAwMSwgTVVIQVJSQU0sICAyLCAgICAgTU9OVEgsICAxMywgICAgIDAwMDEsIFNBRkFSLCAgICAgMiB9LAorCisgICAgICAgICAgICB7ICAgMDAwMSwgSElKSkFILCAgICAxLCAgICAgREFURSwgICAzMCwgICAgIDAwMDEsIEhJSkpBSCwgICAgMiB9LCAgIC8vIDI5LWRheSBtb250aAorICAgICAgICAgICAgeyAgIDAwMDIsIEhJSkpBSCwgICAgMSwgICAgIERBVEUsICAgMzEsICAgICAwMDAyLCBISUpKQUgsICAgIDIgfSwgICAvLyAzMC1kYXkgbW9udGgKKworICAgICAgICAgICAgLy8gVHJ5IHNvbWUgcm9sbHMgdGhhdCByZXF1aXJlIG90aGVyIGZpZWxkcyB0byBiZSBhZGp1c3RlZAorICAgICAgICAgICAgeyAgIDAwMDEsIE1VSEFSUkFNLCAzMCwgICAgIE1PTlRILCAgIDEsICAgICAwMDAxLCBTQUZBUiwgICAgMjkgfSwKKyAgICAgICAgICAgIHsgICAwMDAyLCBISUpKQUgsICAgMzAsICAgICBZRUFSLCAgIC0xLCAgICAgMDAwMSwgSElKSkFILCAgIDI5IH0sCisgICAgICAgIH07CisgICAgICAgCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXdDaXZpbCgpOworCisgICAgICAgIGRvUm9sbEFkZChST0xMLCBjYWwsIHRlc3RzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGh1Z2UgbGlzdCBvZiB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbXB1dGVUaW1lIGFuZCBjb21wdXRlRmllbGRzCisgICAgICogd29yayBwcm9wZXJseSBmb3IgYSB3aWRlIHJhbmdlIG9mIGRhdGEgaW4gdGhlIGNpdmlsIGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDaXZpbENhc2VzKCkKKyAgICB7CisgICAgICAgIGZpbmFsIFRlc3RDYXNlW10gdGVzdHMgPSB7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTW9zdCBvZiB0aGVzZSB0ZXN0IGNhc2VzIHdlcmUgdGFrZW4gZnJvbSB0aGUgYmFjayBvZgorICAgICAgICAgICAgLy8gIkNhbGVuZHJpY2FsIENhbGN1bGF0aW9ucyIsIHdpdGggc29tZSBleHRyYXMgYWRkZWQgdG8gaGVscAorICAgICAgICAgICAgLy8gZGVidWcgYSBmZXcgb2YgdGhlIHByb2JsZW1zIHRoYXQgY3JvcHBlZCB1cCBpbiBkZXZlbG9wbWVudC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZCwKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQncyBlYXNpZXIgdG8gZWRpdCB0aGF0IHdheS4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBJc2xhbWljCisgICAgICAgICAgICAvLyAgICAgICAgICBKdWxpYW4gRGF5ICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTUwNzIzMS41LCAgMCwgLTEyNDUsICAgMTIsICAgOSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE2NjAwMzcuNSwgIDAsICAtODEzLCAgICAyLCAgMjMsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzQ2ODkzLjUsICAwLCAgLTU2OCwgICAgNCwgICAxLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTc3MDY0MS41LCAgMCwgIC01MDEsICAgIDQsICAgNiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4OTI3MzEuNSwgIDAsICAtMTU3LCAgIDEwLCAgMTcsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxOTMxNTc5LjUsICAwLCAgIC00NywgICAgNiwgICAzLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTk3NDg1MS41LCAgMCwgICAgNzUsICAgIDcsICAxMywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIwOTExNjQuNSwgIDAsICAgNDAzLCAgIDEwLCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTIxNTA5LjUsICAwLCAgIDQ4OSwgICAgNSwgIDIyLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE1NTc3OS41LCAgMCwgICA1ODYsICAgIDIsICAgNywgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIxNzQwMjkuNSwgIDAsICAgNjM3LCAgICA4LCAgIDcsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTkxNTg0LjUsICAwLCAgIDY4NywgICAgMiwgIDIwLCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE5NTI2MS41LCAgMCwgICA2OTcsICAgIDcsICAgNywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyMjkyNzQuNSwgIDAsICAgNzkzLCAgICA3LCAgIDEsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjQ1NTgwLjUsICAwLCAgIDgzOSwgICAgNywgICA2LCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI2NjEwMC41LCAgMCwgICA4OTcsICAgIDYsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyODg1NDIuNSwgIDAsICAgOTYwLCAgICA5LCAgMzAsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjkwOTAxLjUsICAwLCAgIDk2NywgICAgNSwgIDI3LCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMyMzE0MC41LCAgMCwgIDEwNTgsICAgIDUsICAxOCwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ4NDguNSwgIDAsICAxMDkxLCAgICA2LCAgIDIsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzQ4MDIwLjUsICAwLCAgMTEyOCwgICAgOCwgICA0LCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM2Njk3OC41LCAgMCwgIDExODIsICAgIDIsICAgMywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzODU2NDguNSwgIDAsICAxMjM0LCAgIDEwLCAgMTAsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzkyODI1LjUsICAwLCAgMTI1NSwgICAgMSwgIDExLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQxNjIyMy41LCAgMCwgIDEzMjEsICAgIDEsICAyMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MjU4NDguNSwgIDAsICAxMzQ4LCAgICAzLCAgMTksICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDMwMjY2LjUsICAwLCAgMTM2MCwgICAgOSwgICA4LCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMDgzMy41LCAgMCwgIDEzNjIsICAgIDQsICAxMywgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MzEwMDQuNSwgIDAsICAxMzYyLCAgIDEwLCAgIDcsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDQ4Njk4LjUsICAwLCAgMTQxMiwgICAgOSwgIDEzLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MDEzOC41LCAgMCwgIDE0MTYsICAgMTAsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjU3MzcuNSwgIDAsICAxNDYwLCAgIDEwLCAgMTIsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDg2MDc2LjUsICAwLCAgMTUxOCwgICAgMywgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2l2aWxDYWxlbmRhciA9IG5ld0NpdmlsKCk7CisgICAgICAgIGNpdmlsQ2FsZW5kYXIuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgZG9UZXN0Q2FzZXModGVzdHMsIGNpdmlsQ2FsZW5kYXIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ld0NpdmlsKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEwMDAsIDAsIDMwKTsKKyAgICAgICAgbG9nbG4oIjEwMDAvMC8zMCAtPiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChZRUFSKSArICIvIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICsgIi8iICsgCisgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxLzAvMzAgLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgeworICAgICAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKFRpbWVab25lKQorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBJc2xhbWljQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSXNsYW1pY0NhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICB7CisgICAgICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoTG9jYWxlKQorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSXNsYW1pY0NhbGVuZGFyIHdpdGggTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoRGF0ZSkKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIobmV3IERhdGUoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIElzbGFtaWNDYWxlbmRhciB3aXRoIERhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IElzbGFtaWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoODAwLCBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTiwgMSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIElzbGFtaWNDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0ZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoODAwLCBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTiwgMSwgMSwgMSwgMSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIElzbGFtaWNDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0ZSxob3VyLG1pbnV0ZSxzZWNvbmQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gc2V0Q2l2aWwvaXNDaXZpbAorICAgICAgICAvLyBvcGVyYXRpb25zIG9uIG5vbi1jaXZpbCBjYWxlbmRhcgorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcig4MDAsIElzbGFtaWNDYWxlbmRhci5SQU1BREFOLCAxLCAxLCAxLCAxKTsKKyAgICAgICAgY2FsLnNldENpdmlsKGZhbHNlKTsKKyAgICAgICAgaWYgKGNhbC5pc0NpdmlsKCkpIHsKKyAgICAgICAgZXJybG4oImlzbGFtaWMgY2FsZW5kYXIgaXMgY2l2aWwiKTsKKyAgICAgICAgfQorCisgICAgICAgIERhdGUgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgY2FsLnNldFRpbWUobm93KTsKKworICAgICAgICBEYXRlIHRoZW4gPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoIW5vdy5lcXVhbHModGhlbikpIHsKKyAgICAgICAgZXJybG4oImdldC9zZXQgdGltZSBmYWlsZWQgd2l0aCBub24tY2l2aWwgaXNsYW1pYyBjYWxlbmRhciIpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4odGhlbi50b1N0cmluZygpKTsKKworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIHsKKyAgICAgICAgLy8gZGF0YQorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcig4MDAsIElzbGFtaWNDYWxlbmRhci5SQU1BREFOLCAxKTsKKyAgICAgICAgRGF0ZSB0aW1lID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICJhcl9BRSIsICJhcl9CSCIsICJhcl9EWiIsICJhcl9FRyIsICJhcl9KTyIsICJhcl9LVyIsICJhcl9PTSIsIAorICAgICAgICAiYXJfUUEiLCAiYXJfU0EiLCAiYXJfU1kiLCAiYXJfWUUiLCAibXNfTVkiCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKyAgICAgICAgImVuIiwgImFyIiwgImZpIiwgImZyIiwgImh1IiwgIml3IiwgIm5sIgorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICBTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKyAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoY2FsTG9jYWxlKTsKKworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NOYW1lID0gZm9ybWF0TG9jYWxlc1tqXTsKKyAgICAgICAgICAgIExvY2FsZSBmb3JtYXRMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY05hbWUpOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgIGxvZ2xuKGNhbExvY05hbWUgKyAiLyIgKyBsb2NOYW1lICsgIiAtLT4gIiArIGZvcm1hdC5mb3JtYXQodGltZSkpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgSXNsYW1pY0NhbGVuZGFyIG5ld0NpdmlsKCkgeworICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2l2aWxDYWxlbmRhciA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2l2aWxDYWxlbmRhci5zZXRDaXZpbCh0cnVlKTsKKyAgICAgICAgcmV0dXJuIGNpdmlsQ2FsZW5kYXI7CisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0phcGFuZXNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0phcGFuZXNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ZTBkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSmFwYW5lc2VUZXN0LmphdmEKQEAgLTAsMCArMSwyOTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFRlc3RzIGZvciB0aGUgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBKYXBhbmVzZVRlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSmFwYW5lc2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lKQorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihVTG9jYWxlKQorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUsIFVMb2NhbGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihMb2NhbGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCBMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUsIExvY2FsZSkKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBKYXBhbmVzZUNhbGVuZGFyIHdpdGggVGltZVpvbmUgTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKERhdGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIobmV3IERhdGUoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCBEYXRlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKDE4NjgsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBKYXBhbmVzZUNhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKEphcGFuZXNlQ2FsZW5kYXIuTUVJSkksIDQzLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIGVyYSx5ZWFyLG1vbnRoLGRhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKDE4NjgsIENhbGVuZGFyLkpBTlVBUlksIDEsIDEsIDEsIDEpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBKYXBhbmVzZUNhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlLGhvdXIsbWluLHNlY29uZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBsaW1pdHMKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVJBLCBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJKTsKKyAgICAgICAgbG9nbG4oImRhdGU6ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgbG9nbG4oIm1pbiBlcmE6ICIgKyBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5FUkEpKTsKKyAgICAgICAgbG9nbG4oIm1pbiB5ZWFyOiAiICsgY2FsLmdldE1pbmltdW0oQ2FsZW5kYXIuWUVBUikpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLllFQVIpKTsKKyAgICAgICAgbG9nbG4oImRhdGU6ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgbG9nbG4oImRhdGU6ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICB9CisgICAgCisgICAgeworICAgICAgICAvLyBkYXRhCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoMTg2OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgU3RyaW5nW10gY2FsZW5kYXJMb2NhbGVzID0geworICAgICAgICAiZW4iLCAiamFfSlAiCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKyAgICAgICAgImVuIiwgImphIgorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICBTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKyAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRMb2NhbGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGZvcm1hdExvY2FsZSk7CisgICAgICAgICAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Mzg2MCgpCisgICAgeworICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKCJqYV9KUEBjYWxlbmRhcj1qYXBhbmVzZSIpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihsb2MpOworICAgICAgICBEYXRlRm9ybWF0IGVuamZvcm1hdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdCgwLDAsbmV3IFVMb2NhbGUoImVuX0pQQGNhbGVuZGFyPWphcGFuZXNlIikpOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdCgwLDAsbG9jKTsKKyAgICAgICAgKChTaW1wbGVEYXRlRm9ybWF0KWZvcm1hdCkuYXBwbHlQYXR0ZXJuKCJ5Lk0uZCIpOyAgLy8gTm90ZToganVzdCAneScgZG9lc24ndCB3b3JrIGhlcmUuCisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIERhdGUgYURhdGUgPSBmb3JtYXQucGFyc2UoIjEuMS45IiwgcG9zKTsgLy8gYWZ0ZXIgdGhlIHN0YXJ0IG9mIGhlaXNlaSBhY2Nlc3Npb24uICBKYW4gMSwgMUggd291bGRuJ3Qgd29yayAgYmVjYXVzZSBpdCBpcyBhY3R1YWxseSBzaG93YSA2NAorICAgICAgICBTdHJpbmcgaW5FbiA9IGVuamZvcm1hdC5mb3JtYXQoYURhdGUpOworICAgICAgICAKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKGFEYXRlKTsKKyAgICAgICAgaW50IGdvdFllYXIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgZ290RXJhID0gY2FsLmdldChDYWxlbmRhci5FUkEpOworICAgICAgICAKKyAgICAgICAgaW50IGV4cGVjdFllYXIgPSAxOworICAgICAgICBpbnQgZXhwZWN0RXJhID0gSmFwYW5lc2VDYWxlbmRhci5DVVJSRU5UX0VSQTsKKyAgICAgICAgCisgICAgICAgIGlmKChnb3RZZWFyICE9IGV4cGVjdFllYXIpIHx8IChnb3RFcmEgIT0gZXhwZWN0RXJhKSkgeworICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIHllYXIgIiArIGV4cGVjdFllYXIgKyAiLCBlcmEgIiArIGV4cGVjdEVyYSArIiwgYnV0IGdvdCB5ZWFyICIgKyBnb3RZZWFyICsgIiBhbmQgZXJhICIgKyBnb3RFcmEgKyAiLCA9PSAiICsgaW5Fbik7CisgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbigiR290IHllYXIgIiArIGdvdFllYXIgKyAiIGFuZCBlcmEgIiArIGdvdEVyYSArICIsID09ICIgKyBpbkVuKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NTM0NXBhcnNlKCkgeworICAgICAgICAvLyBUZXN0IHBhcnNlIHdpdGggaW5jb21wbGV0ZSBpbmZvcm1hdGlvbgorICAgICAgICBEYXRlRm9ybWF0IGZtdDI9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7IC8vRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuVVMpOworICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGMgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIG5ldyBVTG9jYWxlKCJlbl9VUyIpKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSAoU2ltcGxlRGF0ZUZvcm1hdCljLmdldERhdGVUaW1lRm9ybWF0KDEsMSxuZXcgVUxvY2FsZSgiZW5fVVNAY2FsZW5kYXI9amFwYW5lc2UiKSk7CisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIkcgeSIpOworICAgICAgICBsb2dsbigiZm10J3MgbG9jYWxlID0gIiArIGZtdC5nZXRMb2NhbGUoVUxvY2FsZS5BQ1RVQUxfTE9DQUxFKSk7CisgICAgICAgIC8vU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRyB5IiwgbmV3IExvY2FsZSgiZW5fVVNAY2FsZW5kYXI9amFwYW5lc2UiKSk7CisgICAgICAgIGxvbmcgYURhdGVMb25nID0gLTMxOTcxMjA0MDAwMDBMIAorICAgICAgICAgICAgKyAzNjAwMDAwTDsgLy8gY29tcGVuc2F0ZSBmb3IgRFNUCisgICAgICAgIERhdGUgYURhdGUgPSBuZXcgRGF0ZShhRGF0ZUxvbmcpOyAvLzA4IFNlcHQgMTg2OAorICAgICAgICBsb2dsbigiYURhdGU6ICIgKyBhRGF0ZS50b1N0cmluZygpICsiLCBmcm9tICIgKyBhRGF0ZUxvbmcpOworICAgICAgICBTdHJpbmcgc3RyOworICAgICAgICBzdHIgPSBmbXQyLmZvcm1hdChhRGF0ZSk7CisgICAgICAgIGxvZ2xuKCJUZXN0IERhdGU6ICIgKyBzdHIpOworICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KGFEYXRlKTsKKyAgICAgICAgbG9nbG4oImFzIEphcGFuZXNlIENhbGVuZGFyOiAiICsgc3RyKTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIk1laWppIDEiOworICAgICAgICBpZighc3RyLmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1dCBnb3QgIiArIHN0cik7CisgICAgICAgIH0KKyAgICAgICAgRGF0ZSBvdGhlckRhdGU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdGhlckRhdGUgPSBmbXQucGFyc2UoZXhwZWN0ZWQpOworICAgICAgICAgICAgaWYoIW90aGVyRGF0ZS5lcXVhbHMoYURhdGUpKSB7IAorICAgICAgICAgICAgICAgIFN0cmluZyBzdHIzOworICAgIC8vICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcDsKKyAgICAgICAgICAgICAgICBEYXRlIGRkID0gZm10LnBhcnNlKGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBzdHIzID0gZm10LmZvcm1hdChvdGhlckRhdGUpOworICAgICAgICAgICAgICAgIGxvbmcgb0xvbmcgPSBvdGhlckRhdGUuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIGxvbmcgYUxvbmcgPSBvdGhlckRhdGUuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXJzZSBpbmNvcnJlY3Qgb2YgIiArIGV4cGVjdGVkICsgIjogIHdhbnRlZCAiICsgYURhdGUgKyAiICgiK2FMb25nKyIpLCBidXQgZ290ICIgKyAgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgb3RoZXJEYXRlICsgIiAoIitvTG9uZysiKSA9ICIgKyBzdHIzICsgIiBub3QgIiArIGRkLnRvU3RyaW5nKCkgKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBhcnNlZCBPSzogIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXJzZUV4Y2VwdGlvbjogIiArIHBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHByaXZhdGUgdm9pZCBjaGVja0V4cGVjdGVkKENhbGVuZGFyIGMsIGludCBleHBlY3RlZFtdICkgeworICAgICAgICBmaW5hbCBTdHJpbmdbXSBGSUVMRF9OQU1FID0geworICAgICAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwKKyAgICAgICAgICAgICJEQVlfT0ZfTU9OVEgiLCAiREFZX09GX1lFQVIiLCAiREFZX09GX1dFRUsiLAorICAgICAgICAgICAgIkRBWV9PRl9XRUVLX0lOX01PTlRIIiwgIkFNX1BNIiwgIkhPVVIiLCAiSE9VUl9PRl9EQVkiLAorICAgICAgICAgICAgIk1JTlVURSIsICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiLAorICAgICAgICAgICAgIkRTVF9PRkZTRVQiLCAiWUVBUl9XT1kiLCAiRE9XX0xPQ0FMIiwgIkVYVEVOREVEX1lFQVIiLAorICAgICAgICAgICAgIkpVTElBTl9EQVkiLCAiTUlMTElTRUNPTkRTX0lOX0RBWSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yKGludCBpPSAwO2k8ZXhwZWN0ZWQubGVuZ3RoO2kgKz0gMikgeworICAgICAgICAgICAgaW50IGZpZWxkTnVtID0gZXhwZWN0ZWRbaSswXTsKKyAgICAgICAgICAgIGludCBleHBlY3RlZFZhbCA9IGV4cGVjdGVkW2krMV07CisgICAgICAgICAgICBpbnQgYWN0dWFsVmFsID0gYy5nZXQoZmllbGROdW0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihleHBlY3RlZFZhbCA9PSBhY3R1YWxWYWwpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihGSUVMRF9OQU1FW2ZpZWxkTnVtXSsiOiAiKyBhY3R1YWxWYWwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIitGSUVMRF9OQU1FW2ZpZWxkTnVtXSsiOiBleHBlY3RlZCAiKyBleHBlY3RlZFZhbCArICIgZ290ICIgKyAgYWN0dWFsVmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q1MzQ1Y2FsZW5kYXIoKSB7CisgICAgICAgIGxvZ2xuKCIqKiB0ZXN0SW5jb21wbGV0ZUNhbGVuZGFyKCkiKTsKKyAgICAgICAgLy8gVGVzdCBjYWxlbmRhciB3aXRoIGluY29tcGxldGUgaW5mb3JtYXRpb24KKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgbG9nbG4oInRlc3QgY2xlYXIiKTsKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICAKKyAgICAgICAgaW50IGV4cGVjdGVkMFtdID0geyAgIENhbGVuZGFyLkVSQSwgMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5ZRUFSLCAtNjQzIH07CisgICAgICAgIGNoZWNrRXhwZWN0ZWQoYywgZXhwZWN0ZWQwKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBsb2dsbigidGVzdCBzZXR0aW5nIGVyYSIpOworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkVSQSwgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaW50IGV4cGVjdGVkQVtdID0geyAgIENhbGVuZGFyLkVSQSwgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSB9OworICAgICAgICBjaGVja0V4cGVjdGVkKGMsIGV4cGVjdGVkQSk7CisgICAgICAgIAorCisgICAgICAgIGxvZ2xuKCJ0ZXN0IHNldHRpbmcgZXJhIGFuZCB5ZWFyIGFuZCBtb250aCBhbmQgZGF0ZSIpOworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkVSQSwgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSkFOVUFSWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGludCBleHBlY3RlZENbXSA9IHsgICBDYWxlbmRhci5FUkEsIEphcGFuZXNlQ2FsZW5kYXIuTUVJSkkgLTF9OworICAgICAgICBjaGVja0V4cGVjdGVkKGMsIGV4cGVjdGVkQyk7CisgICAgICAgIAorCisgICAgICAgIGxvZ2xuKCJ0ZXN0IHNldHRpbmcgIHllYXIgYW5kIG1vbnRoIGFuZCBkYXRlIFRIRU4gZXJhIik7CisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KQU5VQVJZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkVSQSwgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgY2hlY2tFeHBlY3RlZChjLCBleHBlY3RlZEMpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0IHNldHRpbmcgZXJhIGFuZCB5ZWFyIik7CisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkVSQSwgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaW50IGV4cGVjdGVkQltdID0geyBDYWxlbmRhci5FUkEsIEphcGFuZXNlQ2FsZW5kYXIuTUVJSkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuWUVBUiwgMSB9OworICAgICAgICBjaGVja0V4cGVjdGVkKGMsIGV4cGVjdGVkQik7CisgICAgICAgIAorICAgIH0KKworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDA3ODVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIGNhbGVuZGFyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICJBc3Ryb1Rlc3QiLAorICAgICAgICAgICAgICAgICAgIkNhbGVuZGFyUmVncmVzc2lvbiIsCisgICAgICAgICAgICAgICAgICAiQ29tcGF0aWJpbGl0eVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvcHRpY1Rlc3QiLAorICAgICAgICAgICAgICAgICAgIkV0aGlvcGljVGVzdCIsCisgICAgICAgICAgICAgICAgICAiSGVicmV3VGVzdCIsCisgICAgICAgICAgICAgICAgICAiSUJNQ2FsZW5kYXJUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJJc2xhbWljVGVzdCIsCisgICAgICAgICAgICAgICAgICAiSmFwYW5lc2VUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDaGluZXNlVGVzdCIsCisgICAgICAgICAgICAgICAgICAiSG9saWRheVRlc3QiCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJDYWxlbmRhcnMsIEhvbGlkYXksIGFuZCBBc3RybyB0ZXN0cyIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDYWxlbmRhciI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdENhc2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9UZXN0Q2FzZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmMDYyZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdENhc2UuamF2YQpAQCAtMCwwICsxLDI0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQSBwc2V1ZG8gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRoYXQgaXMgdXNlZnVsIGZvciB0ZXN0aW5nCisgKiBuZXcgY2FsZW5kYXJzLiAgQSA8Y29kZT5UZXN0Q2FzZTwvY29kZT4gb2JqZWN0IGlzIHVzZWQgdG8gaG9sZCB0aGUKKyAqIGZpZWxkIGFuZCBtaWxsaXNlY29uZCB2YWx1ZXMgdGhhdCB0aGUgY2FsZW5kYXIgc2hvdWxkIGhhdmUgYXQgb25lCisgKiBwYXJ0aWN1bGFyIGluc3RhbnQgaW4gdGltZS4gIFRoZSBhcHBseUZpZWxkcyBhbmQgYXBwbHlUaW1lCisgKiBtZXRob2RzIGFyZSB1c2VkIHRvIGFwcGx5IHRoZXNlIHNldHRpbmdzIHRvIHRoZSBjYWxlbmRhciBvYmplY3QgYmVpbmcKKyAqIHRlc3RlZCwgYW5kIHRoZSBlcXVhbHMgYW5kIGZpZWxkc0VxdWFsIG1ldGhvZHMgYXJlIHVzZWQgdG8gZW5zdXJlCisgKiB0aGF0IHRoZSBjYWxlbmRhciBoYXMgZW5kZWQgdXAgaW4gdGhlIHJpZ2h0IHN0YXRlLgorICovCitwdWJsaWMgY2xhc3MgVGVzdENhc2UgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQc2V1ZG8tQ2FsZW5kYXIgZmllbGRzIGFuZCBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByb3RlY3RlZCBpbnRbXSBmaWVsZHMgPSBuZXcgaW50WzMyXTsKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbltdIGlzU2V0ID0gbmV3IGJvb2xlYW5bMzJdOworICAgIHByb3RlY3RlZCBsb25nIHRpbWU7CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXQoaW50IGZpZWxkLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHZhbHVlOworICAgICAgICBpc1NldFtmaWVsZF0gPSB0cnVlOworICAgIH0KKworICAgIHByb3RlY3RlZCBpbnQgZ2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZmllbGRzW2ZpZWxkXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc1NldChpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGlzU2V0W2ZpZWxkXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRUaW1lKERhdGUgZCkgeworICAgICAgICB0aW1lID0gZC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHVibGljIERhdGUgZ2V0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHRlc3QgY2FzZSdzIHRpbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGRvd1RvU3RyaW5nKGdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykpICsgIiAiICsKKyAgICAgICAgICAgIGdldChDYWxlbmRhci5ZRUFSKSArICIvIiArIChnZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgIGdldChDYWxlbmRhci5EQVRFKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBET1dfTkFNRVMgPSB7CisgICAgICAgICJTdW4iLCAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiCisgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRvd1RvU3RyaW5nKGludCBkb3cpIHsKKyAgICAgICAgLS1kb3c7CisgICAgICAgIHJldHVybiAoZG93IDwgMCB8fCBkb3cgPiA2KSA/CisgICAgICAgICAgICAoIjxET1cgIiArIGRvdyArICI+IikgOiBET1dfTkFNRVNbZG93XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGEgVGVzdENhc2Ugb2JqZWN0IHVzaW5nIGEganVsaWFuIGRheSBudW1iZXIgYW5kCisgICAgICogdGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzIGZvciB0aGUgY2FsZW5kYXIgYmVpbmcgdGVzdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGVyYSAgICAgICBUaGUgRVJBIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIFlFQVIgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgTU9OVEggKDEtYmFzZWQpIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBkYXkgICAgICAgVGhlIERBWV9PRl9NT05USCBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSBIT1VSIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBtaW4gICAgICAgVGhlIE1JTlVURSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gc2VjICAgICAgIFRoZSBTRUNPTkQgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICovCisgICAgcHVibGljIFRlc3RDYXNlKGRvdWJsZSBqdWxpYW4sCisgICAgICAgICAgICAgICAgICAgIGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgIGludCBob3VyLCBpbnQgbWluLCBpbnQgc2VjKQorICAgIHsKKyAgICAgICAgc2V0VGltZShuZXcgRGF0ZShKVUxJQU5fRVBPQ0ggKyAobG9uZykoT05FX0RBWSAqIGp1bGlhbikpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFURSwgZGF5KTsKKyAgICAgICAgc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkYXlPZldlZWspOworICAgICAgICBzZXQoQ2FsZW5kYXIuSE9VUiwgaG91cik7CisgICAgICAgIHNldChDYWxlbmRhci5NSU5VVEUsIG1pbik7CisgICAgICAgIHNldChDYWxlbmRhci5TRUNPTkQsIHNlYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhIFRlc3RDYXNlIG9iamVjdCB1c2luZyBhIEdyZWdvcmlhbiB5ZWFyL21vbnRoL2RheSBhbmQKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgZm9yIHRoZSBjYWxlbmRhciBiZWluZyB0ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ3JlZ1llYXIgIFRoZSBHcmVnb3JpYW4geWVhciBvZiB0aGUgZGF0ZSB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAcGFyYW0gZ3JlZ01vbnRoIFRoZSBHcmVnb3JpYW4gbW9udGggb2YgdGhlIGRhdGUgdG8gYmUgdGVzdGVkCisgICAgICogQHBhcmFtIGdyZWdEYXkgICBUaGUgR3JlZ29yaWFuIGRheSBvZiB0aGUgbW9udGggb2YgdGhlIGRhdGUgdG8gYmUgdGVzdGVkCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhICAgICAgIFRoZSBFUkEgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIFlFQVIgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIE1PTlRIICgwLWJhc2VkKSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIGRheSAgICAgICBUaGUgREFZX09GX01PTlRIIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgSE9VUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIG1pbiAgICAgICBUaGUgTUlOVVRFIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gc2VjICAgICAgIFRoZSBTRUNPTkQgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqLworICAgIHB1YmxpYyBUZXN0Q2FzZShpbnQgZ3JlZ1llYXIsIGludCBncmVnTW9udGgsIGludCBncmVnRGF5LAorICAgICAgICAgICAgICAgICAgICBpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LAorICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICBpbnQgaG91ciwgaW50IG1pbiwgaW50IHNlYykKKyAgICB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVVRDLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgZ3JlZy5jbGVhcigpOworICAgICAgICBncmVnLnNldChncmVnWWVhciwgZ3JlZ01vbnRoLTEsIGdyZWdEYXkpOworICAgICAgICBzZXRUaW1lKGdyZWcuZ2V0VGltZSgpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFURSwgZGF5KTsKKyAgICAgICAgc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkYXlPZldlZWspOworICAgICAgICBzZXQoQ2FsZW5kYXIuSE9VUiwgaG91cik7CisgICAgICAgIHNldChDYWxlbmRhci5NSU5VVEUsIG1pbik7CisgICAgICAgIHNldChDYWxlbmRhci5TRUNPTkQsIHNlYyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvciBzdWJjbGFzc2VzLgorICAgICAqLworICAgIHByb3RlY3RlZCBUZXN0Q2FzZSgpIHt9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGlzIHRlc3QgY2FzZSdzIGZpZWxkIHZhbHVlcyB0byBhbm90aGVyIGNhbGVuZGFyCisgICAgICogYnkgY2FsbGluZyBpdHMgc2V0IG1ldGhvZCBmb3IgZWFjaCBmaWVsZC4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbWJpbmF0aW9uCisgICAgICogd2l0aCB0aGUgZXF1YWwgbWV0aG9kLgorICAgICAqCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2VxdWFscworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5RmllbGRzKENhbGVuZGFyIGMpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYy5nZXRGaWVsZENvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGlzU2V0KGkpKSB7CisgICAgICAgICAgICAgICAgYy5zZXQoaSwgZ2V0KGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGlzIHRlc3QgY2FzZSdzIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFub3RoZXIgY2FsZW5kYXIKKyAgICAgKiBieSBjYWxsaW5nIGl0cyBzZXRUaW1lIG1ldGhvZC4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbWJpbmF0aW9uCisgICAgICogd2l0aCBmaWVsZHNFcXVhbAorICAgICAqCisgICAgICogQHNlZSAjZmllbGRzRXF1YWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVRpbWUoQ2FsZW5kYXIgYykgeworICAgICAgICBjLnNldFRpbWUobmV3IERhdGUodGltZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBmaWVsZHMgb2YgdGhpcyBjYWxlbmRhcgorICAgICAqIGFyZSB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZSBvdGhlciBjYWxlbmRhci4gIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bAorICAgICAqIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBvdGhlciBjYWxlbmRhcidzIGNvbXB1dGVGaWVsZHMgbWV0aG9kCisgICAgICogd29ya3MgcHJvcGVybHkuICBGb3IgZXhhbXBsZToKKyAgICAgKiA8cHJlPgorICAgICAqICAgIENhbGVuZGFyIHRlc3RDYWxlbmRhciA9IC4uLgorICAgICAqICAgIFRlc3RDYXNlIGNhc2UgPSAuLi4KKyAgICAgKiAgICBjYXNlLmFwcGx5VGltZSh0ZXN0Q2FsZW5kYXIpOworICAgICAqICAgIGlmICghY2FzZS5maWVsZHNFcXVhbCh0ZXN0Q2FsZW5kYXIpKSB7CisgICAgICogICAgICAgIC8vIEVycm9yIQorICAgICAqICAgIH0KKyAgICAgKiA8L3ByZT4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNhcHBseVRpbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBmaWVsZHNFcXVhbChDYWxlbmRhciBjLCBUZXN0TG9nIGxvZykgeworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBjLmdldEZpZWxkQ291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXNTZXQoaSkgJiYgZ2V0KGkpICE9IGMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGYWlsOiAiICsgQ2FsZW5kYXJUZXN0LmZpZWxkTmFtZShpKSArICIgPSAiICsgYy5nZXQoaSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8Yy5nZXRGaWVsZENvdW50KCk7ICsraikgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZXQoaikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXQoaikgPT0gYy5nZXQoaikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcbiAgb2s6ICIgKyBDYWxlbmRhclRlc3QuZmllbGROYW1lKGopICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdldChqKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICBmYWlsOiAiICsgQ2FsZW5kYXJUZXN0LmZpZWxkTmFtZShqKSArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5nZXQoaikgKyAiLCBleHBlY3RlZCAiICsgZ2V0KGopKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2cuZXJybG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIHRpbWUgaW4gbWlsbGlzZWNvbmRzIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZSBvdGhlciBjYWxlbmRhci4gIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bAorICAgICAqIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBvdGhlciBjYWxlbmRhcidzIGNvbXB1dGVUaW1lIG1ldGhvZAorICAgICAqIHdvcmtzIHByb3Blcmx5LiAgRm9yIGV4YW1wbGU6CisgICAgICogPHByZT4KKyAgICAgKiAgICBDYWxlbmRhciB0ZXN0Q2FsZW5kYXIgPSAuLi4KKyAgICAgKiAgICBUZXN0Q2FzZSBjYXNlID0gLi4uCisgICAgICogICAgY2FzZS5hcHBseUZpZWxkcyh0ZXN0Q2FsZW5kYXIpOworICAgICAqICAgIGlmICghY2FzZS5lcXVhbHModGVzdENhbGVuZGFyKSkgeworICAgICAqICAgICAgICAvLyBFcnJvciEKKyAgICAgKiAgICB9CisgICAgICogPC9wcmU+CisgICAgICogCisgICAgICogQHNlZSAjYXBwbHlGaWVsZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICByZXR1cm4gdGltZSA9PSAoKENhbGVuZGFyKW9iaikuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgIE9ORV9TRUNPTkQgPSAxMDAwOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfTUlOVVRFID0gNjAqT05FX1NFQ09ORDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX0hPVVIgICA9IDYwKk9ORV9NSU5VVEU7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9EQVkgICAgPSAyNCpPTkVfSE9VUjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgSlVMSUFOX0VQT0NIID0gLTIxMDg2Njc2MDAwMDAwMEw7ICAgLy8gMS8xLzQ3MTMgQkMgMTI6MDAKKworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU2ltcGxlVGltZVpvbmUgVVRDID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjYjg4NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Rlc3RzIGZvciB0aGUgY2FsZW5kYXIgY2xhc3Nlcy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBmZmI0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0L1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDMzIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNoYXJzZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIGNvbGxhdGlvbiBhbmQgc2VhcmNoIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICJUZXN0Q2hhcnNldCIsCisgICAgICAgICAgICAgICAgICAiVGVzdENvbnZlcnNpb24iCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJBbGwgSUNVIENoYXJzZXQgVGVzdHMiCisgICAgICAgICAgICAgICk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiQ2hhcnNldCI7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQvVGVzdENoYXJzZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0L1Rlc3RDaGFyc2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNmZjEyYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0L1Rlc3RDaGFyc2V0LmphdmEKQEAgLTAsMCArMSwxNTM0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyYWN0ZXJDb2RpbmdFeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0OworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldERlY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kaW5nRXJyb3JBY3Rpb247CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5VbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5zcGkuQ2hhcnNldFByb3ZpZGVyOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZE1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmNoYXJzZXQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitwdWJsaWMgY2xhc3MgVGVzdENoYXJzZXQgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHJpdmF0ZSBTdHJpbmcgZW5jb2RpbmcgPSAiVVRGLTE2IjsKKyAgICBDaGFyc2V0RGVjb2RlciBkZWNvZGVyID0gbnVsbDsKKyAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gbnVsbDsKKyAgICBDaGFyc2V0IGNoYXJzZXQgPW51bGw7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyB1bmlzdHIgPSAiYWJjZFx1ZDgwMFx1ZGMwMFx1MTIzNFx1MDBhNVx1MzAwMFxyXG4iOworICAgIHN0YXRpYyBmaW5hbCBieXRlW10gYnl0ZVN0ciA9eyAgIAorICAgICAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpICdhJywKKyAgICAgICAgICAgIChieXRlKSAweDAwLChieXRlKSAnYicsCisgICAgICAgICAgICAoYnl0ZSkgMHgwMCwoYnl0ZSkgJ2MnLAorICAgICAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpICdkJywKKyAgICAgICAgICAgIChieXRlKSAweGQ4LChieXRlKSAweDAwLAorICAgICAgICAgICAgKGJ5dGUpIDB4ZGMsKGJ5dGUpIDB4MDAsCisgICAgICAgICAgICAoYnl0ZSkgMHgxMiwoYnl0ZSkgMHgzNCwKKyAgICAgICAgICAgIChieXRlKSAweDAwLChieXRlKSAweGE1LAorICAgICAgICAgICAgKGJ5dGUpIDB4MzAsKGJ5dGUpIDB4MDAsCisgICAgICAgICAgICAoYnl0ZSkgMHgwMCwoYnl0ZSkgMHgwZCwKKyAgICAgICAgICAgIChieXRlKSAweDAwLChieXRlKSAweDBhIH07CisgICAgc3RhdGljIGZpbmFsIGJ5dGVbXSBleHBlY3RlZEJ5dGVTdHIgPXsKKyAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpICdhJywKKyAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpICdiJywKKyAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpICdjJywKKyAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpICdkJywKKyAgICAgICAgKGJ5dGUpIDB4ZDgsKGJ5dGUpIDB4MDAsCisgICAgICAgIChieXRlKSAweGRjLChieXRlKSAweDAwLAorICAgICAgICAoYnl0ZSkgMHgxMiwoYnl0ZSkgMHgzNCwKKyAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpIDB4YTUsCisgICAgICAgIChieXRlKSAweDMwLChieXRlKSAweDAwLAorICAgICAgICAoYnl0ZSkgMHgwMCwoYnl0ZSkgMHgwZCwKKyAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpIDB4MGEgfTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBwcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgICAgIC8vQ2hhcnNldCBjaGFyc2V0ID0gQ2hhcnNldElDVS5mb3JOYW1lKGVuY29kaW5nKTsKKyAgICAgICAgICAgIGNoYXJzZXQgPSBwcm92aWRlci5jaGFyc2V0Rm9yTmFtZShlbmNvZGluZyk7CisgICAgICAgICAgICBkZWNvZGVyID0gKENoYXJzZXREZWNvZGVyKSBjaGFyc2V0Lm5ld0RlY29kZXIoKTsKKyAgICAgICAgICAgIGVuY29kZXIgPSAoQ2hhcnNldEVuY29kZXIpIGNoYXJzZXQubmV3RW5jb2RlcigpOyAgIAorICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgY2hhcnNldCBkYXRhIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0Q2hhcnNldCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFVURjE2Q29udmVydGVyKCl7CisgICAgICAgIENoYXJzZXRQcm92aWRlciBpY3UgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgY3MxID0gaWN1LmNoYXJzZXRGb3JOYW1lKCJVVEYtMTYiKTsKKyAgICAgICAgQ2hhcnNldEVuY29kZXIgZTEgPSBjczEubmV3RW5jb2RlcigpOworICAgICAgICBDaGFyc2V0RGVjb2RlciBkMSA9IGNzMS5uZXdEZWNvZGVyKCk7CisgICAgICAgIAorICAgICAgICBDaGFyc2V0IGNzMiA9IGljdS5jaGFyc2V0Rm9yTmFtZSgiVVRGLTE2TEUiKTsKKyAgICAgICAgQ2hhcnNldEVuY29kZXIgZTIgPSBjczIubmV3RW5jb2RlcigpOworICAgICAgICBDaGFyc2V0RGVjb2RlciBkMiA9IGNzMi5uZXdEZWNvZGVyKCk7CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGk9MHgwMDAwOyBpPDB4MTBGRkZGOyBpKz0weEZGKXsKKyAgICAgICAgICAgIENoYXJCdWZmZXIgdXMgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDB4RkYqMik7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGJzMSA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoMHhGRio4KTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnMyID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgweEZGKjgpOworICAgICAgICAgICAgZm9yKGludCBqPTA7ajwweEZGOyBqKyspeworICAgICAgICAgICAgICAgIGludCBjID0gaStqOworICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZigoYz49MHhkODAwJiZjPD0weGRGRkYpfHxjPjB4MTBGRkZGKXsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYoYz4weEZGRkYpeworICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGMpOworICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc0xlYWRTdXJyb2dhdGUobGVhZCkpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImxlYWQgaXMgbm90IGxlYWQhIitsZWFkKyIgZm9yIGNwOiBcXFUiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0cmFpbCBpcyBub3QgdHJhaWwhIit0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB1cy5wdXQobGVhZCk7CisgICAgICAgICAgICAgICAgICAgIHVzLnB1dCh0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpKGxlYWQ+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnMxLnB1dCgoYnl0ZSkobGVhZCYweEZGKSk7CisgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpKHRyYWlsPj44KSk7CisgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpKHRyYWlsJjB4RkYpKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpKGxlYWQmMHhGRikpOworICAgICAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKShsZWFkPj44KSk7CisgICAgICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpKHRyYWlsJjB4RkYpKTsKKyAgICAgICAgICAgICAgICAgICAgYnMyLnB1dCgoYnl0ZSkodHJhaWw+PjgpKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKworICAgICAgICAgICAgICAgICAgICBpZihjPDB4RkYpeworICAgICAgICAgICAgICAgICAgICAgICAgYnMxLnB1dCgoYnl0ZSkweDAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpMHgwMCk7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgYnMxLnB1dCgoYnl0ZSkoYz4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnMxLnB1dCgoYnl0ZSkoYyYweEZGKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpKGMmMHhGRikpOworICAgICAgICAgICAgICAgICAgICAgICAgYnMyLnB1dCgoYnl0ZSkoYz4+OCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHVzLnB1dCgoY2hhciljKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdXMubGltaXQodXMucG9zaXRpb24oKSk7CisgICAgICAgICAgICB1cy5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGlmKHVzLmxlbmd0aCgpPT0wKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorCisgICAgICAgICAgICBiczEubGltaXQoYnMxLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgYnMxLnBvc2l0aW9uKDApOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBuZXdCUyA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoYnMxLmNhcGFjaXR5KCkpOworICAgICAgICAgICAgLy9uZXdCUy5wdXQoKGJ5dGUpMHhGRSk7CisgICAgICAgICAgICAvL25ld0JTLnB1dCgoYnl0ZSkweEZGKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dChiczEpOyAgICAKKyAgICAgICAgICAgIGJzMS5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHNtQnVmRGVjb2RlKGQxLCAiVVRGLTE2IiwgYnMxLCB1cyk7CisgICAgICAgICAgICBzbUJ1ZkVuY29kZShlMSwgIlVURi0xNiIsIHVzLCBuZXdCUyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJzMi5saW1pdChiczIucG9zaXRpb24oKSk7CisgICAgICAgICAgICBiczIucG9zaXRpb24oMCk7CisgICAgICAgICAgICBuZXdCUy5jbGVhcigpOworICAgICAgICAgICAgLy9uZXdCUy5wdXQoKGJ5dGUpMHhGRik7CisgICAgICAgICAgICAvL25ld0JTLnB1dCgoYnl0ZSkweEZFKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dChiczIpOyAgICAgCisgICAgICAgICAgICBiczIucG9zaXRpb24oMCk7CisgICAgICAgICAgICBzbUJ1ZkRlY29kZShkMiwgIlVURjE2LUxFIiwgYnMyLCB1cyk7CisgICAgICAgICAgICBzbUJ1ZkVuY29kZShlMiwgIlVURi0xNkxFIiwgdXMsIG5ld0JTKTsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VVRGMzJDb252ZXJ0ZXIoKXsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVyIGljdSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBjczEgPSBpY3UuY2hhcnNldEZvck5hbWUoIlVURi0zMiIpOworICAgICAgICBDaGFyc2V0RW5jb2RlciBlMSA9IGNzMS5uZXdFbmNvZGVyKCk7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGQxID0gY3MxLm5ld0RlY29kZXIoKTsKKyAgICAgICAgCisgICAgICAgIENoYXJzZXQgY3MyID0gaWN1LmNoYXJzZXRGb3JOYW1lKCJVVEYtMzJMRSIpOworICAgICAgICBDaGFyc2V0RW5jb2RlciBlMiA9IGNzMi5uZXdFbmNvZGVyKCk7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGQyID0gY3MyLm5ld0RlY29kZXIoKTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaT0weDFkODI3OyBpPDB4MTBGRkZGOyBpKz0weEZGKXsKKyAgICAgICAgICAgIENoYXJCdWZmZXIgdXMgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDB4RkYqMik7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGJzMSA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoMHhGRio4KTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnMyID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgweEZGKjgpOworICAgICAgICAgICAgZm9yKGludCBqPTA7ajwweEZGOyBqKyspeworICAgICAgICAgICAgICAgIGludCBjID0gaStqOworICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZigoYz49MHhkODAwJiZjPD0weGRGRkYpfHxjPjB4MTBGRkZGKXsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYoYz4weEZGRkYpeworICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGMpOworICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoYyk7CisKKyAgICAgICAgICAgICAgICAgICAgdXMucHV0KGxlYWQpOworICAgICAgICAgICAgICAgICAgICB1cy5wdXQodHJhaWwpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICB1cy5wdXQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpIChjID4+PiAyNCkpOworICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpIChjID4+PiAxNikpOyAKKyAgICAgICAgICAgICAgICBiczEucHV0KChieXRlKSAoYyA+Pj4gOCkpOyAKKyAgICAgICAgICAgICAgICBiczEucHV0KChieXRlKSAoYyAmIDB4RkYpKTsgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpIChjICYgMHhGRikpOyAgCisgICAgICAgICAgICAgICAgYnMyLnB1dCgoYnl0ZSkgKGMgPj4+IDgpKTsKKyAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKSAoYyA+Pj4gMTYpKTsgCisgICAgICAgICAgICAgICAgYnMyLnB1dCgoYnl0ZSkgKGMgPj4+IDI0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiczEubGltaXQoYnMxLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgYnMxLnBvc2l0aW9uKDApOworICAgICAgICAgICAgYnMyLmxpbWl0KGJzMi5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIGJzMi5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHVzLmxpbWl0KHVzLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgdXMucG9zaXRpb24oMCk7CisgICAgICAgICAgICBpZih1cy5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgbmV3QlMgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKGJzMS5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBuZXdCUy5wdXQoKGJ5dGUpMHgwMCk7CisgICAgICAgICAgICBuZXdCUy5wdXQoKGJ5dGUpMHgwMCk7CisgICAgICAgICAgICBuZXdCUy5wdXQoKGJ5dGUpMHhGRSk7CisgICAgICAgICAgICBuZXdCUy5wdXQoKGJ5dGUpMHhGRik7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgbmV3QlMucHV0KGJzMSk7CisgICAgICAgICAgICBiczEucG9zaXRpb24oMCk7CisgICAgICAgICAgICBzbUJ1ZkRlY29kZShkMSwgIlVURi0zMiIsIGJzMSwgdXMpOworICAgICAgICAgICAgc21CdWZFbmNvZGUoZTEsICJVVEYtMzIiLCB1cywgbmV3QlMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIG5ld0JTLmNsZWFyKCk7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgbmV3QlMucHV0KChieXRlKTB4RkYpOworICAgICAgICAgICAgbmV3QlMucHV0KChieXRlKTB4RkUpOworICAgICAgICAgICAgbmV3QlMucHV0KChieXRlKTB4MDApOworICAgICAgICAgICAgbmV3QlMucHV0KChieXRlKTB4MDApOworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG5ld0JTLnB1dChiczIpOyAgICAKKyAgICAgICAgICAgIGJzMi5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHNtQnVmRGVjb2RlKGQyLCAiVVRGLTMyTEUiLCBiczIsIHVzKTsKKyAgICAgICAgICAgIHNtQnVmRW5jb2RlKGUyLCAiVVRGLTMyTEUiLCB1cywgbmV3QlMpOworCisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RBU0NJSUNvbnZlcnRlcigpeworICAgICAgICBDaGFyc2V0UHJvdmlkZXIgaWN1ID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpOworICAgICAgICBDaGFyc2V0IGljdUNoYXIgPSBpY3UuY2hhcnNldEZvck5hbWUoIkFTQ0lJIik7CisgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXIgPSBpY3VDaGFyLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IGljdUNoYXIubmV3RGVjb2RlcigpOworCisgICAgICAgIENoYXJCdWZmZXIgdXMgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDB4OTApOworICAgICAgICBCeXRlQnVmZmVyIGJzID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgweDkwKTsKKyAgICAgICAgZm9yKGludCBqPTA7ajw9MHg3ZjsgaisrKXsKKyAgICAgICAgICAgdXMucHV0KChjaGFyKWopOworICAgICAgICAgICBicy5wdXQoKGJ5dGUpaik7CisgICAgICAgIH0KKyAgICAgICAgYnMubGltaXQoYnMucG9zaXRpb24oKSk7CisgICAgICAgIGJzLnBvc2l0aW9uKDApOworICAgICAgICB1cy5saW1pdCh1cy5wb3NpdGlvbigpKTsKKyAgICAgICAgdXMucG9zaXRpb24oMCk7CisgICAgICAgIHNtQnVmRGVjb2RlKGRlY29kZXIsICJBU0NJSSIsIGJzLCB1cyk7CisgICAgICAgIHNtQnVmRW5jb2RlKGVuY29kZXIsICJBU0NJSSIsIHVzLCBicyk7CisgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0ODg1OTFDb252ZXJ0ZXIoKXsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVyIGljdSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBpY3VDaGFyID0gaWN1LmNoYXJzZXRGb3JOYW1lKCJpc28tODg1OS0xIik7CisgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXIgPSBpY3VDaGFyLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IGljdUNoYXIubmV3RGVjb2RlcigpOworCisgICAgICAgIENoYXJCdWZmZXIgdXMgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDB4MTAwKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBicyA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoMHgxMDApOworICAgICAgICBmb3IoaW50IGo9MDtqPD0weEZmOyBqKyspeworICAgICAgICAgICB1cy5wdXQoKGNoYXIpaik7CisgICAgICAgICAgIGJzLnB1dCgoYnl0ZSlqKTsKKyAgICAgICAgfQorICAgICAgICBicy5saW1pdChicy5wb3NpdGlvbigpKTsKKyAgICAgICAgYnMucG9zaXRpb24oMCk7CisgICAgICAgIHVzLmxpbWl0KHVzLnBvc2l0aW9uKCkpOworICAgICAgICB1cy5wb3NpdGlvbigwKTsKKyAgICAgICAgc21CdWZEZWNvZGUoZGVjb2RlciwgImlzby04ODU5LTEiLCBicywgdXMpOworICAgICAgICBzbUJ1ZkVuY29kZShlbmNvZGVyLCAiaXNvLTg4NTktMSIsIHVzLCBicyk7CisgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBUElTZW1hbnRpY3MoLypTdHJpbmcgZW5jb2RpbmcqLykgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGludCByYzsKKyAgICAgICAgQnl0ZUJ1ZmZlciBieWVzID0gQnl0ZUJ1ZmZlci53cmFwKGJ5dGVTdHIpOworICAgICAgICBDaGFyQnVmZmVyIHVuaVZhbCA9IENoYXJCdWZmZXIud3JhcCh1bmlzdHIpOworICAgICAgICBCeXRlQnVmZmVyIGV4cGVjdGVkID0gQnl0ZUJ1ZmZlci53cmFwKGV4cGVjdGVkQnl0ZVN0cik7CisgICAgICAgIAorICAgICAgICByYyA9IDA7CisgICAgICAgIGlmKGRlY29kZXI9PW51bGwpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkZWNvZGVyLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGRlY29kZXIucmVzZXQoKTsKKyAgICAgICAgLyogQ29udmVydCB0aGUgd2hvbGUgYnVmZmVyIHRvIFVuaWNvZGUgKi8KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENoYXJCdWZmZXIgY2hhcnMgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKHVuaXN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShieWVzLCBjaGFycywgZmFsc2UpOworCisgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIGVuY291bnRlcmVkIEVycm9yIik7CisgICAgICAgICAgICAgICAgcmMgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdC5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBlbmNvdW50ZXJlZCBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICByYyA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVxdWFscyhjaGFycywgdW5pc3RyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIGRvZXMgbm90IG1hdGNoIik7CisgICAgICAgICAgICAgICAgcHJpbnRjaGFycyhjaGFycyk7CisgICAgICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIDogIik7CisgICAgICAgICAgICAgICAgcHJpbnRjaGFycyh1bmlzdHIpOworICAgICAgICAgICAgICAgIHJjID0gMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlRvQ2hhcnMgLSBleGNlcHRpb24gaW4gYnVmZmVyIik7CisgICAgICAgICAgICByYyA9IDU7CisgICAgICAgIH0KKworICAgICAgICAvKiBDb252ZXJ0IHNpbmdsZSBieXRlcyB0byBVbmljb2RlICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDaGFyQnVmZmVyIGNoYXJzID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSh1bmlzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBiID0gQnl0ZUJ1ZmZlci53cmFwKGJ5dGVTdHIpOworICAgICAgICAgICAgZGVjb2Rlci5yZXNldCgpOworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0PW51bGw7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBieXRlU3RyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgYi5saW1pdChpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShiLCBjaGFycywgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmKHJlc3VsdC5pc092ZXJmbG93KCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBzaW5nbGUgdGhyZXcgYW4gb3ZlcmZsb3cgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIHNpbmdsZSB0aGUgcmVzdWx0IGlzIGFuIGVycm9yICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodW5pc3RyLmxlbmd0aCgpICE9IChjaGFycy5saW1pdCgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIHNpbmdsZSBsZW4gZG9lcyBub3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICByYyA9IDM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVxdWFscyhjaGFycywgdW5pc3RyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIHNpbmdsZSBkb2VzIG5vdCBtYXRjaCIpOworICAgICAgICAgICAgICAgIHByaW50Y2hhcnMoY2hhcnMpOworICAgICAgICAgICAgICAgIHJjID0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIC0gZXhjZXB0aW9uIGluIHNpbmdsZSIpOworICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgcmMgPSA2OworICAgICAgICB9CisKKyAgICAgICAgLyogQ29udmVydCB0aGUgYnVmZmVyIG9uZSBhdCBhIHRpbWUgdG8gVW5pY29kZSAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2hhckJ1ZmZlciBjaGFycyA9IENoYXJCdWZmZXIuYWxsb2NhdGUodW5pc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGRlY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIGJ5ZXMucmV3aW5kKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBieXRlU3RyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgYnllcy5saW1pdChpKTsKKyAgICAgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShieWVzLCBjaGFycywgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciB3aGlsZSBkZWNvZGluZzogIityZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHJlc3VsdC5pc092ZXJmbG93KCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBTaW1wbGUgdGhyZXcgYW4gb3ZlcmZsb3cgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoYXJzLmxpbWl0KCkgIT0gdW5pc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRvQ2hhcnMgU2ltcGxlIGJ1ZmZlciBsZW4gZG9lcyBub3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICByYyA9IDc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVxdWFscyhjaGFycywgdW5pc3RyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIFNpbXBsZSBidWZmZXIgZG9lcyBub3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICBwcmludGNoYXJzKGNoYXJzKTsKKyAgICAgICAgICAgICAgICBlcnIoIiBFeHBlY3RlZCA6ICIpOworICAgICAgICAgICAgICAgIHByaW50Y2hhcnModW5pc3RyKTsKKyAgICAgICAgICAgICAgICByYyA9IDg7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVG9DaGFycyAtIGV4Y2VwdGlvbiBpbiBzaW5nbGUgYnVmZmVyIik7CisgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKFN5c3RlbS5lcnIpOworICAgICAgICAgICAgcmMgPSA5OworICAgICAgICB9CisgICAgICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBTaW1wbGUgVG9DaGFycyBmb3IgZW5jb2RpbmcgOiBGQUlMRUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJjID0gMDsKKyAgICAgICAgLyogQ29udmVydCB0aGUgd2hvbGUgYnVmZmVyIGZyb20gdW5pY29kZSAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBieXRlcyA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoZXhwZWN0ZWRCeXRlU3RyLmxlbmd0aCk7CisgICAgICAgICAgICBlbmNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBlbmNvZGVyLmVuY29kZSh1bmlWYWwsIGJ5dGVzLCBmYWxzZSk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgcmVwb3J0ZWQgZXJyb3I6ICIgKyByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgcmMgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYocmVzdWx0LmlzT3ZlcmZsb3coKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyB0aHJldyBhbiBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ5dGVzLnBvc2l0aW9uKDApOworICAgICAgICAgICAgaWYgKCFieXRlcy5lcXVhbHMoZXhwZWN0ZWQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyBkb2VzIG5vdCBtYXRjaCIpOworICAgICAgICAgICAgICAgIHByaW50Ynl0ZXMoYnl0ZXMpOworICAgICAgICAgICAgICAgIHJjID0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgLSBleGNlcHRpb24gaW4gYnVmZmVyIik7CisgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKFN5c3RlbS5lcnIpOworICAgICAgICAgICAgcmMgPSA1OworICAgICAgICB9CisKKyAgICAgICAgLyogQ29udmVydCB0aGUgYnVmZmVyIG9uZSBjaGFyIGF0IGEgdGltZSB0byB1bmljb2RlICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGJ5dGVzID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZShleHBlY3RlZEJ5dGVTdHIubGVuZ3RoKTsKKyAgICAgICAgICAgIENoYXJCdWZmZXIgYyA9IENoYXJCdWZmZXIud3JhcCh1bmlzdHIpOworICAgICAgICAgICAgZW5jb2Rlci5yZXNldCgpOworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0PSBudWxsOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gdW5pc3RyLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjLmxpbWl0KGkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGVuY29kZXIuZW5jb2RlKGMsIGJ5dGVzLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgaWYocmVzdWx0LmlzT3ZlcmZsb3coKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgc2luZ2xlIHRocmV3IGFuIG92ZXJmbG93IGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihyZXN1bHQuaXNFcnJvcigpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyBzaW5nbGUgdGhyZXcgYW4gZXJyb3I6ICIrIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRCeXRlU3RyLmxlbmd0aCAhPSBieXRlcy5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyBzaW5nbGUgbGVuIGRvZXMgbm90IG1hdGNoIik7CisgICAgICAgICAgICAgICAgcmMgPSAzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBieXRlcy5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGlmICghYnl0ZXMuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgc2luZ2xlIGRvZXMgbm90IG1hdGNoIik7CisgICAgICAgICAgICAgICAgcHJpbnRieXRlcyhieXRlcyk7CisgICAgICAgICAgICAgICAgcmMgPSA0OworICAgICAgICAgICAgfQorCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIC0gZXhjZXB0aW9uIGluIHNpbmdsZSIpOworICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZShTeXN0ZW0uZXJyKTsKKyAgICAgICAgICAgIHJjID0gNjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbnZlcnQgb25lIGNoYXIgYXQgYSB0aW1lIHRvIHVuaWNvZGUgKi8KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnl0ZXMgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKGV4cGVjdGVkQnl0ZVN0ci5sZW5ndGgpOworICAgICAgICAgICAgZW5jb2Rlci5yZXNldCgpOworICAgICAgICAgICAgY2hhcltdIHRlbXAgPSB1bmlzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdD1udWxsOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gdGVtcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHVuaVZhbC5saW1pdChpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBlbmNvZGVyLmVuY29kZSh1bmlWYWwsIGJ5dGVzLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgaWYocmVzdWx0LmlzT3ZlcmZsb3coKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgc2ltcGxlIHRocmV3IGFuIG92ZXJmbG93IGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihyZXN1bHQuaXNFcnJvcigpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyBzaW1wbGUgdGhyZXcgYW4gZXJyb3I6ICIrIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnl0ZXMubGltaXQoKSAhPSBleHBlY3RlZEJ5dGVTdHIubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyBTaW1wbGUgbGVuIGRvZXMgbm90IG1hdGNoIik7CisgICAgICAgICAgICAgICAgcmMgPSA3OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFieXRlcy5lcXVhbHMoYnllcykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIFNpbXBsZSBkb2VzIG5vdCBtYXRjaCIpOworICAgICAgICAgICAgICAgIHByaW50Ynl0ZXMoYnl0ZXMpOworICAgICAgICAgICAgICAgIHJjID0gODsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgLSBleGNlcHRpb24gaW4gc2luZ2xlIGJ1ZmZlciIpOworICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZShTeXN0ZW0uZXJyKTsKKyAgICAgICAgICAgIHJjID0gOTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmMgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgU2ltcGxlIEZyb21DaGFycyAiICsgZW5jb2RpbmcgKyAiIC0tRkFJTEVEIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHByaW50Y2hhcnMoQ2hhckJ1ZmZlciBidWYpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGNoYXJbXSBjaGFycyA9IG5ldyBjaGFyW2J1Zi5saW1pdCgpXTsKKyAgICAgICAgLy9zYXZlIHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgICAgIGludCBwb3MgPSBidWYucG9zaXRpb24oKTsKKyAgICAgICAgYnVmLnBvc2l0aW9uKDApOworICAgICAgICBidWYuZ2V0KGNoYXJzKTsKKyAgICAgICAgLy9yZXNldCB0byBvbGQgcG9zaXRpb24KKyAgICAgICAgYnVmLnBvc2l0aW9uKHBvcyk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZXJyKGhleChjaGFyc1tpXSkgKyAiICIpOworICAgICAgICB9CisgICAgICAgIGVycmxuKCIiKTsKKyAgICB9CisgICAgdm9pZCBwcmludGNoYXJzKFN0cmluZyBzdHIpIHsKKyAgICAgICAgY2hhcltdIGNoYXJzID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGVycihoZXgoY2hhcnNbaV0pICsgIiAiKTsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiIik7CisgICAgfQorICAgIHZvaWQgcHJpbnRieXRlcyhCeXRlQnVmZmVyIGJ1ZikgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzID0gbmV3IGJ5dGVbYnVmLmxpbWl0KCldOworICAgICAgICAvL3NhdmUgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICAgICAgaW50IHBvcyA9IGJ1Zi5wb3NpdGlvbigpOworICAgICAgICBidWYucG9zaXRpb24oMCk7CisgICAgICAgIGJ1Zi5nZXQoYnl0ZXMpOworICAgICAgICAvL3Jlc2V0IHRvIG9sZCBwb3NpdGlvbgorICAgICAgICBidWYucG9zaXRpb24ocG9zKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGhleChieXRlc1tpXSkgKyAiICIpOworICAgICAgICB9CisgICAgICAgIGVycmxuKCIiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQ2hhckJ1ZmZlciBidWYsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgcmV0dXJuIGVxdWFscyhidWYsIHN0ci50b0NoYXJBcnJheSgpKTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKENoYXJCdWZmZXIgYnVmLCBDaGFyQnVmZmVyIHN0cikgeworICAgICAgICByZXR1cm4gZXF1YWxzKGJ1Zi5hcnJheSgpLCBzdHIuYXJyYXkoKSk7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhDaGFyQnVmZmVyIGJ1ZiwgY2hhcltdIGNvbXBhcmVUbykgeworICAgICAgICBjaGFyW10gY2hhcnMgPSBuZXcgY2hhcltidWYubGltaXQoKV07CisgICAgICAgIC8vc2F2ZSB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAgICBpbnQgcG9zID0gYnVmLnBvc2l0aW9uKCk7CisgICAgICAgIGJ1Zi5wb3NpdGlvbigwKTsKKyAgICAgICAgYnVmLmdldChjaGFycyk7CisgICAgICAgIC8vcmVzZXQgdG8gb2xkIHBvc2l0aW9uCisgICAgICAgIGJ1Zi5wb3NpdGlvbihwb3MpOworICAgICAgICByZXR1cm4gZXF1YWxzKGNoYXJzLCBjb21wYXJlVG8pOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhjaGFyW10gY2hhcnMsIGNoYXJbXSBjb21wYXJlVG8pIHsKKyAgICAgICAgaWYgKGNoYXJzLmxlbmd0aCAhPSBjb21wYXJlVG8ubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAiTGVuZ3RoIGRvZXMgbm90IG1hdGNoIGNoYXJzOiAiCisgICAgICAgICAgICAgICAgICAgICsgY2hhcnMubGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICsgIiBjb21wYXJlVG86ICIKKyAgICAgICAgICAgICAgICAgICAgKyBjb21wYXJlVG8ubGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hhcnNbaV0gIT0gY29tcGFyZVRvW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKAorICAgICAgICAgICAgICAgICAgICAgICAgIkdvdDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaGV4KGNoYXJzW2ldKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeHBlY3RlZDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaGV4KGNvbXBhcmVUb1tpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgQXQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGkpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKEJ5dGVCdWZmZXIgYnVmLCBieXRlW10gY29tcGFyZVRvKSB7CisgICAgICAgIGJ5dGVbXSBjaGFycyA9IG5ldyBieXRlW2J1Zi5saW1pdCgpXTsKKyAgICAgICAgLy9zYXZlIHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgICAgIGludCBwb3MgPSBidWYucG9zaXRpb24oKTsKKyAgICAgICAgYnVmLnBvc2l0aW9uKDApOworICAgICAgICBidWYuZ2V0KGNoYXJzKTsKKyAgICAgICAgLy9yZXNldCB0byBvbGQgcG9zaXRpb24KKyAgICAgICAgYnVmLnBvc2l0aW9uKHBvcyk7CisgICAgICAgIHJldHVybiBlcXVhbHMoY2hhcnMsIGNvbXBhcmVUbyk7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhCeXRlQnVmZmVyIGJ1ZiwgQnl0ZUJ1ZmZlciBjb21wYXJlVG8pIHsKKyAgICAgICAgcmV0dXJuIGVxdWFscyhidWYuYXJyYXkoKSwgY29tcGFyZVRvLmFycmF5KCkpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoYnl0ZVtdIGNoYXJzLCBieXRlW10gY29tcGFyZVRvKSB7CisgICAgICAgIGlmIChjaGFycy5sZW5ndGggIT0gY29tcGFyZVRvLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgIkxlbmd0aCBkb2VzIG5vdCBtYXRjaCBjaGFyczogIgorICAgICAgICAgICAgICAgICAgICArIGNoYXJzLmxlbmd0aAorICAgICAgICAgICAgICAgICAgICArICIgY29tcGFyZVRvOiAiCisgICAgICAgICAgICAgICAgICAgICsgY29tcGFyZVRvLmxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJzW2ldICE9IGNvbXBhcmVUb1tpXSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJHb3Q6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGhleChjaGFyc1tpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGhleChjb21wYXJlVG9baV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEF0OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworLy8gIFRPRE8KKyAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FsbGJhY2soU3RyaW5nIGVuY29kaW5nKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIGJ5dGVbXSBnYlNvdXJjZSA9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4ODEsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzYsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4REUsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzYsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4ODEsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzYsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4REUsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzcsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4ODEsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzYsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4REUsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzgsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4ZTMsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzIsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4OWEsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4MzYgfTsKKworICAgICAgICBjaGFyW10gc3ViQ2hhcnMgPSB7ICdQJywgJ0knIH07CisKKyAgICAgICAgZGVjb2Rlci5yZXNldCgpOworCisgICAgICAgIGRlY29kZXIucmVwbGFjZVdpdGgobmV3IFN0cmluZyhzdWJDaGFycykpOworICAgICAgICBCeXRlQnVmZmVyIG15U291cmNlID0gQnl0ZUJ1ZmZlci53cmFwKGdiU291cmNlKTsKKyAgICAgICAgQ2hhckJ1ZmZlciBteVRhcmdldCA9IENoYXJCdWZmZXIuYWxsb2NhdGUoNSk7CisKKyAgICAgICAgZGVjb2Rlci5kZWNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgY2hhcltdIGV4cGVjdGVkUmVzdWx0ID0KKyAgICAgICAgICAgIHsgJ1x1MjJBNicsICdcdTIyQTcnLCAnXHUyMkE4JywgJ1x1MDA1MCcsICdcdTAwNDknLCB9OworCisgICAgICAgIGlmICghZXF1YWxzKG15VGFyZ2V0LCBuZXcgU3RyaW5nKGV4cGVjdGVkUmVzdWx0KSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGNhbGxiYWNrIEdCMTgwMzAgdG8gVW5pY29kZSA6IEZBSUxFRCIpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyovCisgICAgcHVibGljIHZvaWQgVGVzdENhbkNvbnZlcnQoLypTdHJpbmcgZW5jb2RpbmcqLyl0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhcltdIG15U291cmNlID0geyAKKyAgICAgICAgICAgICdcdWQ4MDAnLCAnXHVkYzAwJywvKnN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAnXHUyMkE2JywnXHUyMkE3JywnXHUyMkE4JywnXHUyMkE5JywnXHUyMkFBJywKKyAgICAgICAgICAgICdcdTIyQUInLCdcdTIyQUMnLCdcdTIyQUQnLCdcdTIyQUUnLCdcdTIyQUYnLAorICAgICAgICAgICAgJ1x1MjJCMCcsJ1x1MjJCMScsJ1x1MjJCMicsJ1x1MjJCMycsJ1x1MjJCNCcsCisgICAgICAgICAgICAnXHVkODAwJywnXHVkYzAwJywvKnN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAnXHUyMkI1JywnXHUyMkI2JywnXHUyMkI3JywnXHUyMkI4JywnXHUyMkI5JywKKyAgICAgICAgICAgICdcdTIyQkEnLCdcdTIyQkInLCdcdTIyQkMnLCdcdTIyQkQnLCdcdTIyQkUnIAorICAgICAgICAgICAgfTsKKyAgICAgICAgaWYoZW5jb2Rlcj09bnVsbCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGVuY29kZXIuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZW5jb2Rlci5yZXNldCgpOworICAgICAgICBpZiAoIWVuY29kZXIuY2FuRW5jb2RlKG5ldyBTdHJpbmcobXlTb3VyY2UpKSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgY2FuQ29udmVydCgpICIgKyBlbmNvZGluZyArICIgZmFpbGVkLiAiK2VuY29kZXIpOworICAgICAgICB9CisKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEF2YWlsYWJsZUNoYXJzZXRzKCkgeworICAgICAgICBTb3J0ZWRNYXAgbWFwID0gQ2hhcnNldC5hdmFpbGFibGVDaGFyc2V0cygpOworICAgICAgICBTZXQga2V5U2V0ID0gbWFwLmtleVNldCgpOworICAgICAgICBJdGVyYXRvciBpdGVyID0ga2V5U2V0Lml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlKGl0ZXIuaGFzTmV4dCgpKXsKKyAgICAgICAgICAgIGxvZ2xuKCJDaGFyc2V0IG5hbWU6ICIraXRlci5uZXh0KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0W10gY2hhcnNldHMgPSBDaGFyc2V0UHJvdmlkZXJJQ1UuZ2V0QXZhaWxhYmxlTmFtZXMoKTsKKyAgICAgICAgaW50IG1hcFNpemUgPSBtYXAuc2l6ZSgpOworICAgICAgICBpZihtYXBTaXplIDwgY2hhcnNldHMubGVuZ3RoKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyc2V0LmF2YWlsYWJsZUNoYXJzZXRzKCkgcmV0dXJuZWQgYSBudW1iZXIgbGVzcyB0aGFuIHRoZSBudW1iZXIgcmV0dXJuZWQgYnkgaWN1LiBJQ1U6ICIgKyBjaGFyc2V0cy5sZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgKyAiIEpESzogIiArIG1hcFNpemUpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJUb3RhbCBOdW1iZXIgb2YgY2hhc2V0cyA9ICIgKyBtYXAuc2l6ZSgpKTsKKwl9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFdpbmRvd3M5MzYoKXsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVySUNVIGljdSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBjcyA9IGljdS5jaGFyc2V0Rm9yTmFtZSgid2luZG93cy05MzYtMjAwMCIpOworICAgICAgICBTdHJpbmcgY2Fub25pY2FsTmFtZSA9IGNzLm5hbWUoKTsKKyAgICAgICAgaWYoIWNhbm9uaWNhbE5hbWUuZXF1YWxzKCJHQksiKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGNhbm9uaWNhbCBuYW1lLiBHb3Q6ICIrY2Fub25pY2FsTmFtZSk7IC8vZ2V0IHRoZSBjYW5vbmljYWwgbmFtZQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJQ1VBdmFpbGFibGVDaGFyc2V0cygpIHsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVySUNVIGljdSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgT2JqZWN0W10gY2hhcnNldHMgPSBDaGFyc2V0UHJvdmlkZXJJQ1UuZ2V0QXZhaWxhYmxlTmFtZXMoKTsKKyAgICAgICAgZm9yKGludCBpPTA7aTxjaGFyc2V0cy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIENoYXJzZXQgY3MgPSBpY3UuY2hhcnNldEZvck5hbWUoKFN0cmluZyljaGFyc2V0c1tpXSk7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlciA9IGNzLm5ld0VuY29kZXIoKTsKKyAgICAgICAgICAgICAgICBpZihlbmNvZGVyIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkNyZWF0aW9uIG9mIGVuY29kZXIgc3VjY2VlZGVkLiAiK2NzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgaW5zdGFudGlhdGUgZW5jb2RlciBmb3IgIitjaGFyc2V0c1tpXSsiLiBFcnJvcjogIitleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBDaGFyc2V0RGVjb2RlciBkZWNvZGVyID0gY3MubmV3RGVjb2RlcigpOworICAgICAgICAgICAgICAgIGlmKGRlY29kZXIhPW51bGwpeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiQ3JlYXRpb24gb2YgZGVjb2RlciBzdWNjZWVkZWQuICIrY3MudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBpbnN0YW50aWF0ZSBkZWNvZGVyIGZvciAiK2NoYXJzZXRzW2ldKyIuIEVycm9yOiAiK2V4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8qIGppdHRlcmJ1ZyA0MzEyICovCisgICAgcHVibGljIHZvaWQgVGVzdFVuc3VwcG9ydGVkQ2hhcnNldCgpeworICAgICAgICBDaGFyc2V0UHJvdmlkZXIgaWN1ID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpOworICAgICAgICBDaGFyc2V0IGljdUNoYXIgPSBpY3UuY2hhcnNldEZvck5hbWUoImltcG9zc2libGUiKTsKKyAgICAgICAgaWYoaWN1Q2hhciAhPSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJJQ1UgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgc3BlYyIpOworICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5jb2RlckNyZWF0aW9uKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIENoYXJzZXQgY3MgPSBDaGFyc2V0LmZvck5hbWUoIkdCXzIzMTItODAiKTsKKyAgICAgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuYyA9IGNzLm5ld0VuY29kZXIoKTsKKyAgICAgICAgICAgIGlmKGVuYyE9bnVsbCAmJiAoZW5jIGluc3RhbmNlb2YgQ2hhcnNldEVuY29kZXJJQ1UpICl7CisgICAgICAgICAgICAgICAgbG9nbG4oIlN1Y2Nlc3NmdWxseSBjcmVhdGVkIHRoZSBlbmNvZGVyOiAiKyBlbmMpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIGNoYXJzZXQgZW5jb2Rlci4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgY3JlYXRpbmcgY2hhcnNldCBlbmNvZGVyLiIrIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgIC8vIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgQ2hhcnNldCBjcyA9IENoYXJzZXQuZm9yTmFtZSgieC1pYm0tOTcxX1AxMDAtMTk5NSIpOworICAgICAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jID0gY3MubmV3RW5jb2RlcigpOworICAgICAgICAgICAgaWYoZW5jIT1udWxsICYmIChlbmMgaW5zdGFuY2VvZiBDaGFyc2V0RW5jb2RlcklDVSkgKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgdGhlIGVuY29kZXI6ICIrIGVuYyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgY2hhcnNldCBlbmNvZGVyLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBjcmVhdGluZyBjaGFyc2V0IGVuY29kZXIuIisgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ViQnl0ZXMoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgLy9jcmVhdGUgdXRmLTggZGVjb2RlcgorICAgICAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKS5jaGFyc2V0Rm9yTmFtZSgidXRmLTgiKS5uZXdEZWNvZGVyKCk7CisgICAgCisgICAgICAgICAgICAvL2NyZWF0ZSBhIHZhbGlkIGJ5dGUgYXJyYXksIHdoaWNoIGNhbiBiZSBkZWNvZGVkIHRvICIgYnVmZmVyIgorICAgICAgICAgICAgYnl0ZVtdIHVuaWJ5dGVzID0gbmV3IGJ5dGVbXSB7IDB4MDAyMCwgMHgwMDYyLCAweDAwNzUsIDB4MDA2NiwgMHgwMDY2LCAweDAwNjUsIDB4MDA3MiB9OworICAgIAorICAgICAgICAgICAgQnl0ZUJ1ZmZlciBidWZmZXIgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDIwKTsKKyAgICAKKyAgICAgICAgICAgIC8vYWRkIGEgZXZpbCBieXRlIHRvIG1ha2UgdGhlIGJ5dGUgYnVmZmVyIGJlIG1hbGZvcm1lZCBpbnB1dAorICAgICAgICAgICAgYnVmZmVyLnB1dCgoYnl0ZSkweGQ4KTsKKyAgICAKKyAgICAgICAgICAgIC8vcHV0IHRoZSB2YWxpZCBieXRlIGFycmF5CisgICAgICAgICAgICBidWZmZXIucHV0KHVuaWJ5dGVzKTsKKyAgICAKKyAgICAgICAgICAgIC8vcmVzZXQgcG9zdGlvbgorICAgICAgICAgICAgYnVmZmVyLmZsaXAoKTsgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBkZWNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgICAgICBDaGFyQnVmZmVyIG91dCA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlcik7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiXHVmZmZkIGJ1ZmZlciI7CisgICAgICAgICAgICBpZighZXhwZWN0ZWQuZXF1YWxzKG5ldyBTdHJpbmcob3V0LmFycmF5KCkpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHN1YnN0aXR1dGlvbiBjaGFycy4gR290OiAiKworICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nKG91dC5hcnJheSgpKSArICIoIisgaGV4KG91dC5hcnJheSgpKSsiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIk91dHB1dDogIisgIG5ldyBTdHJpbmcob3V0LmFycmF5KCkpICsgIigiKyBoZXgob3V0LmFycmF5KCkpKyIpIik7CisgICAgICAgIH1jYXRjaCAoQ2hhcmFjdGVyQ29kaW5nRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIitleC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RJbXBsRmx1c2hGYWlsdXJlKCl7CisgICAKKyAgICAgICB0cnl7CisgICAgICAgICAgIENoYXJCdWZmZXIgaW4gPSBDaGFyQnVmZmVyLndyYXAoIlx1MzAwNVx1MzAwNlx1MzAwN1x1MzBGQ1x1MjAxNVx1MjAxMFx1RkYwRiIpOworICAgICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpLmNoYXJzZXRGb3JOYW1lKCJpc28tMjAyMi1qcCIpLm5ld0VuY29kZXIoKTsKKyAgICAgICAgICAgQnl0ZUJ1ZmZlciBvdXQgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDMwKTsKKyAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoaW4sIG91dCwgdHJ1ZSk7CisgICAgICAgICAgIGVuY29kZXIuZmx1c2gob3V0KTsKKyAgICAgICAgICAgaWYob3V0LnBvc2l0aW9uKCkhPSAyMCl7CisgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHBvc2l0aW9uIGZyb20gZmx1c2giKTsKKyAgICAgICAgICAgfQorICAgICAgICAgICAKKyAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgY3JlYXRlIGVuY29kZXIgZm9yICBpc28tMjAyMi1qcCBleGNlcHRpb246ICIrZXgudG9TdHJpbmcoKSk7CisgICAgICAgfSAKKyAgICB9CisgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJU084ODU5MSgpIHsKKyAgICAgICAKKyAgICAgICAgQ2hhcnNldCBjcyA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKS5jaGFyc2V0Rm9yTmFtZSgiaXNvLTg4NTktMSIpOworICAgICAgICBpZihjcyE9bnVsbCl7CisgICAgICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gY3MubmV3RW5jb2RlcigpOworICAgICAgICAgICAgaWYoZW5jb2RlciE9bnVsbCl7CisgICAgICAgICAgICAgICAgZW5jb2Rlci5jYW5FbmNvZGUoIlx1YzJhMyIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBjcmVhdGUgZW5jb2RlciBmb3IgaXNvLTg4NTktMSIpOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgY3JlYXRlIENoYXJzZXQgZm9yIGlzby04ODU5LTEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgcHVibGljICB2b2lkIFRlc3RVVEY4RW5jb2RlKCkgeworICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVySUNVID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpLmNoYXJzZXRGb3JOYW1lKCJ1dGYtOCIpLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBvdXQgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDMwKTsKKyAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZW5jb2RlcklDVS5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKCJcdWQ4MDAiKSwgb3V0LCB0cnVlKTsKKyAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdC5pc01hbGZvcm1lZCgpKSB7CisgICAgICAgICAgICBsb2dsbigiXFx1ZDgwMCBpcyBtYWxmb3JtZWQgZm9yIElDVTRKTkkgdXRmLTggZW5jb2RlciIpOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5pc1VuZGVyZmxvdygpKSB7CisgICAgICAgICAgICBlcnJsbigiXFx1ZDgwMCBpcyBPSyBmb3IgSUNVNEpOSSB1dGYtOCBlbmNvZGVyIik7CisgICAgICAgIH0KKworICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVySkRLID0gQ2hhcnNldC5mb3JOYW1lKCJ1dGYtOCIpLm5ld0VuY29kZXIoKTsKKyAgICAgICAgcmVzdWx0ID0gZW5jb2RlckpESy5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKCJcdWQ4MDAiKSwgQnl0ZUJ1ZmZlcgorICAgICAgICAgICAgICAgIC5hbGxvY2F0ZSgxMCksIHRydWUpOworICAgICAgICBpZiAocmVzdWx0LmlzVW5kZXJmbG93KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJcXHVkODAwIGlzIE9LIGZvciBKREsgdXRmLTggZW5jb2RlciIpOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5pc01hbGZvcm1lZCgpKSB7CisgICAgICAgICAgICBsb2dsbigiXFx1ZDgwMCBpcyBtYWxmb3JtZWQgZm9yIEpESyB1dGYtOCBlbmNvZGVyIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRDQihDaGFyQnVmZmVyIGJ1Zil7CisgICAgICAgIGJ1Zi5yZXdpbmQoKTsKKyAgICAgICAgd2hpbGUoYnVmLmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihoZXgoYnVmLmdldCgpKSk7CisgICAgICAgIH0KKyAgICAgICAgYnVmLnJld2luZCgpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RVVEY4KCkgdGhyb3dzIENoYXJhY3RlckNvZGluZ0V4Y2VwdGlvbnsKKyAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlcklDVSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKS5jaGFyc2V0Rm9yTmFtZSgidXRmLTgiKS5uZXdFbmNvZGVyKCk7CisgICAgICAgICAgICAgICBlbmNvZGVySUNVLmVuY29kZShDaGFyQnVmZmVyLndyYXAoIlx1ZDgwMCIpKTsKKyAgICAgICAgICAgICAgIGVycmxuKCJcXHVkODAwIGlzIE9LIGZvciBJQ1U0Sk5JIHV0Zi04IGVuY29kZXIiKTsKKyAgICAgICAgICAgfWNhdGNoIChNYWxmb3JtZWRJbnB1dEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICBsb2dsbigiXFx1ZDgwMCBpcyBtYWxmb3JtZWQgZm9yIEpESyB1dGYtOCBlbmNvZGVyIik7CisgICAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgfQorICAgICAgICAgICAKKyAgICAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlckpESyA9IENoYXJzZXQuZm9yTmFtZSgidXRmLTgiKS5uZXdFbmNvZGVyKCk7CisgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICBlbmNvZGVySkRLLmVuY29kZShDaGFyQnVmZmVyLndyYXAoIlx1ZDgwMCIpKTsKKyAgICAgICAgICAgICAgIGVycmxuKCJcXHVkODAwIGlzIE9LIGZvciBKREsgdXRmLTggZW5jb2RlciIpOworICAgICAgICAgICB9IGNhdGNoIChNYWxmb3JtZWRJbnB1dEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICBsb2dsbigiXFx1ZDgwMCBpcyBtYWxmb3JtZWQgZm9yIEpESyB1dGYtOCBlbmNvZGVyIik7CisgICAgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgIH0gICAgICAgICAKKyAgICB9CisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VVRGMTZCb20oKXsKKworICAgICAgICBDaGFyc2V0IGNzID0gKG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKSkuY2hhcnNldEZvck5hbWUoIlVURi0xNiIpOworICAgICAgICBjaGFyW10gaW4gPSBuZXcgY2hhcltdIHsgMHgxMTIyLCAweDIyMTEsIDB4MzM0NCwgMHg0NDMzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU1NjYsIDB4NjY1NSwgMHg3Nzg4LCAweDg4NzcsIDB4OTkwMCB9OworICAgICAgICBDaGFyQnVmZmVyIGluQnVmID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZShpbi5sZW5ndGgpOworICAgICAgICBpbkJ1Zi5wdXQoaW4pOworICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gY3MubmV3RW5jb2RlcigpOworICAgICAgICBCeXRlQnVmZmVyIG91dEJ1ZiA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoaW4ubGVuZ3RoKjIpOworICAgICAgICBpbkJ1Zi5yZXdpbmQoKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoaW5CdWYsIG91dEJ1ZiwgdHJ1ZSk7CisgICAgICAgIG91dEJ1Zi5yZXdpbmQoKTsKKyAgICAgICAgaWYob3V0QnVmLnJlbWFpbmluZygpPiBpbi5sZW5ndGgqMil7CisgICAgICAgICAgICBlcnJsbigiVGhlIFVURjE2IGVuY29kZXIgYXBwZW5kZWQgYm9tLiBMZW5ndGggcmV0dXJuZWQ6ICIgKyBvdXRCdWYucmVtYWluaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHdoaWxlKG91dEJ1Zi5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICBsb2dsbigiMHgiK2hleChvdXRCdWYuZ2V0KCkpKTsKKyAgICAgICAgfQorICAgICAgICBDaGFyc2V0RGVjb2RlciBkZWNvZGVyID0gY3MubmV3RGVjb2RlcigpOworICAgICAgICBvdXRCdWYucmV3aW5kKCk7CisgICAgICAgIENoYXJCdWZmZXIgcnQgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKGluLmxlbmd0aCk7CisgICAgICAgIGRlY29kZXIuZGVjb2RlKG91dEJ1ZiwgcnQsIHRydWUpOworICAgIH0KKyAgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNtQnVmRGVjb2RlKENoYXJzZXREZWNvZGVyIGRlY29kZXIsIFN0cmluZyBlbmNvZGluZywgQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgQnl0ZUJ1ZmZlciBteVNvdXJjZSA9IHNvdXJjZS5kdXBsaWNhdGUoKTsKKyAgICAgICAgQ2hhckJ1ZmZlciBteVRhcmdldCA9IENoYXJCdWZmZXIuYWxsb2NhdGUodGFyZ2V0LmNhcGFjaXR5KCkpOworICAgICAgICB7ICAgICAgICAgICAgCisgICAgICAgICAgICBkZWNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBteVRhcmdldC5saW1pdCh0YXJnZXQubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5saW1pdChzb3VyY2UubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIHRydWUpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBjb21wbGV0ZSBidWZmZXJzIHdoaWxlIGRlY29kaW5nIGZhaWxlZC4gIityZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdC5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBjb21wbGV0ZSBidWZmZXJzIHdoaWxlIGRlY29kaW5nIHRocmV3IG92ZXJmbG93IGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG15VGFyZ2V0LmxpbWl0KG15VGFyZ2V0LnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbXlUYXJnZXQucG9zaXRpb24oMCk7CisgICAgICAgICAgICB0YXJnZXQucG9zaXRpb24oMCk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmlzVW5kZXJmbG93KCkmJiFlcXVhbHMobXlUYXJnZXQsdGFyZ2V0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKAorICAgICAgICAgICAgICAgICAgICAiIFRlc3QgY29tcGxldGUgYnVmZmVycyB3aGlsZSBkZWNvZGluZyAgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBlbmNvZGluZworICAgICAgICAgICAgICAgICAgICAgICAgKyAiIFRPIFVuaWNvZGUtLWZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKGlzUXVpY2soKSl7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgZGVjb2Rlci5yZXNldCgpOworICAgICAgICAgICAgbXlUYXJnZXQubGltaXQodGFyZ2V0LmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UubGltaXQoc291cmNlLmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbXlUYXJnZXQuY2xlYXIoKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LnBvc2l0aW9uKDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgaW5wdXRMZW4gPSBteVNvdXJjZS5yZW1haW5pbmcoKTsKKworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgZm9yKGludCBpPTE7IGk8PWlucHV0TGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBteVNvdXJjZS5saW1pdChpKTsKKyAgICAgICAgICAgICAgICBpZihpPT1pbnB1dExlbil7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlY29kZXIuZGVjb2RlKG15U291cmNlLCBteVRhcmdldCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlY29kZXIuZGVjb2RlKG15U291cmNlLCBteVRhcmdldCwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBzbWFsbCBpbnB1dCBidWZmZXJzIHdoaWxlIGRlY29kaW5nIGZhaWxlZC4gIityZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBzbWFsbCBpbnB1dCBidWZmZXJzIHdoaWxlIGRlY29kaW5nIHRocmV3IG92ZXJmbG93IGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG15VGFyZ2V0LmxpbWl0KG15VGFyZ2V0LnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbXlUYXJnZXQucG9zaXRpb24oMCk7CisgICAgICAgICAgICB0YXJnZXQucG9zaXRpb24oMCk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmlzVW5kZXJmbG93KCkmJiFlcXVhbHMobXlUYXJnZXQsdGFyZ2V0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKAorICAgICAgICAgICAgICAgICAgICAiVGVzdCBzbWFsbCBpbnB1dCBidWZmZXJzIHdoaWxlIGRlY29kaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZW5jb2RpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBUTyBVbmljb2RlLS1mYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBkZWNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBteVRhcmdldC5saW1pdCh0YXJnZXQubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5saW1pdChzb3VyY2UubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICBteVRhcmdldC5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zID0gbXlUYXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBteVRhcmdldC5saW1pdCgrK3Bvcyk7CisgICAgICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgb3V0cHV0IGJ1ZmZlcnMgd2hpbGUgZGVjb2RpbmcgIisgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobXlTb3VyY2UucG9zaXRpb24oKT09IG15U291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIG91dHB1dCBidWZmZXJzIHdoaWxlIGRlY29kaW5nICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlY29kZXIuZmx1c2gobXlUYXJnZXQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgb3V0cHV0IGJ1ZmZlcnMgd2hpbGUgZGVjb2RpbmcgIisgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFlcXVhbHMobXlUYXJnZXQsdGFyZ2V0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKAorICAgICAgICAgICAgICAgICAgICAiVGVzdCBzbWFsbCBvdXRwdXQgYnVmZmVycyAiCisgICAgICAgICAgICAgICAgICAgICAgICArIGVuY29kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICArICIgVE8gVW5pY29kZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzbUJ1ZkVuY29kZShDaGFyc2V0RW5jb2RlciBlbmNvZGVyLCBTdHJpbmcgZW5jb2RpbmcsIENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCkgeworICAgICAgICBsb2dsbigiUnVubmluZyBzbUJ1ZkVuY29kZSBmb3IgIisgZW5jb2RpbmcgKyAiIHdpdGggY2xhc3MgIiArIGVuY29kZXIpOworICAgICAgICBDaGFyQnVmZmVyIG15U291cmNlID0gc291cmNlLmR1cGxpY2F0ZSgpOworICAgICAgICBCeXRlQnVmZmVyIG15VGFyZ2V0ID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSh0YXJnZXQuY2FwYWNpdHkoKSk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJSdW5uaW5nIHRlc3RzIG9uIHNtYWxsIGlucHV0IGJ1ZmZlcnMgZm9yICIrIGVuY29kaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LmxpbWl0KHRhcmdldC5saW1pdCgpKTsKKyAgICAgICAgICAgIG15U291cmNlLmxpbWl0KHNvdXJjZS5saW1pdCgpKTsKKyAgICAgICAgICAgIG15U291cmNlLnBvc2l0aW9uKHNvdXJjZS5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdD1udWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHQgPSBlbmNvZGVyLmVuY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIHRydWUpOworCisgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IGNvbXBsZXRlIHdoaWxlIGVuY29kaW5nIGZhaWxlZC4gIityZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVzdWx0LmlzT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IGNvbXBsZXRlIHdoaWxlIGVuY29kaW5nIHRocmV3IG92ZXJmbG93IGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFlcXVhbHMobXlUYXJnZXQsdGFyZ2V0KSkgeworCisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3QgY29tcGxldGUgYnVmZmVycyB3aGlsZSBlbmNvZGluZyBmb3IgIisgZW5jb2RpbmcrICIgZmFpbGVkIik7CisKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0cyBjb21wbGV0ZSBidWZmZXJzIGZvciAiKyBlbmNvZGluZyArIiBwYXNzZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihpc1F1aWNrKCkpeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJSdW5uaW5nIHRlc3RzIG9uIHNtYWxsIGlucHV0IGJ1ZmZlcnMgZm9yICIrIGVuY29kaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LmNsZWFyKCk7CisgICAgICAgICAgICBteVRhcmdldC5saW1pdCh0YXJnZXQubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5saW1pdChzb3VyY2UubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICBpbnQgaW5wdXRMZW4gPSBteVNvdXJjZS5saW1pdCgpOworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0PW51bGw7CisgICAgICAgICAgICBmb3IoaW50IGk9MTsgaTw9aW5wdXRMZW47IGkrKykgeworICAgICAgICAgICAgICAgIG15U291cmNlLmxpbWl0KGkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGVuY29kZXIuZW5jb2RlKG15U291cmNlLCBteVRhcmdldCwgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIGlucHV0IGJ1ZmZlcnMgd2hpbGUgZW5jb2RpbmcgZmFpbGVkLiAiK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgaW5wdXQgYnVmZmVycyB3aGlsZSBlbmNvZGluZyB0aHJldyBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVxdWFscyhteVRhcmdldCx0YXJnZXQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgaW5wdXQgYnVmZmVycyAiKyBlbmNvZGluZysgIiBGcm9tIFVuaWNvZGUgZmFpbGVkIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdHMgb24gc21hbGwgaW5wdXQgYnVmZmVycyBmb3IgIisgZW5jb2RpbmcgKyIgcGFzc2VkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIlJ1bm5pbmcgdGVzdHMgb24gc21hbGwgb3V0cHV0IGJ1ZmZlcnMgZm9yICIrIGVuY29kaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LmNsZWFyKCk7CisgICAgICAgICAgICBteVRhcmdldC5saW1pdCh0YXJnZXQubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5saW1pdChzb3VyY2UubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICBteVNvdXJjZS5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LnBvc2l0aW9uKDApOworICAgICAgICAgICAgbG9nbG4oIm15VGFyZ2V0LmxpbWl0OiAiICsgbXlUYXJnZXQubGltaXQoKSArICIgbXlUYXJnZXQuY2FwY2l0eTogIiArIG15VGFyZ2V0LmNhcGFjaXR5KCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGludCBwb3MgPSBteVRhcmdldC5wb3NpdGlvbigpOworCisgICAgICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZW5jb2Rlci5lbmNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIm15VGFyZ2V0LlBvc2l0aW9uOiAiKyBwb3MgKyAiIG15VGFyZ2V0LmxpbWl0OiAiICsgbXlUYXJnZXQubGltaXQoKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIm15U291cmNlLnBvc2l0aW9uOiAiICsgbXlTb3VyY2UucG9zaXRpb24oKSArICIgbXlTb3VyY2UubGltaXQ6ICIgKyBteVNvdXJjZS5saW1pdCgpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBzbWFsbCBvdXRwdXQgYnVmZmVycyB3aGlsZSBlbmNvZGluZyAiK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG15U291cmNlLnBvc2l0aW9uKCkgPT0gbXlTb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBlbmNvZGVyLmVuY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIHRydWUpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgb3V0cHV0IGJ1ZmZlcnMgd2hpbGUgZW5jb2RpbmcgIityZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG15VGFyZ2V0LmxpbWl0KG15VGFyZ2V0LmNhcGFjaXR5KCkpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBlbmNvZGVyLmZsdXNoKG15VGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIG91dHB1dCBidWZmZXJzIHdoaWxlIGVuY29kaW5nICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXF1YWxzKHRhcmdldCxteVRhcmdldCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBzbWFsbCBvdXRwdXQgYnVmZmVycyAiKyBlbmNvZGluZysgIiBGcm9tIFVuaWNvZGUgZmFpbGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIlRlc3RzIG9uIHNtYWxsIG91dHB1dCBidWZmZXJzIGZvciAiKyBlbmNvZGluZyArIiBwYXNzZWQiKTsKKworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGNvbnZlcnRBbGxUZXN0KEJ5dGVCdWZmZXIgYlNvdXJjZSwgQ2hhckJ1ZmZlciB1U291cmNlKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkZWNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICAgICAgQnl0ZUJ1ZmZlciBteVNvdXJjZSA9IGJTb3VyY2UuZHVwbGljYXRlKCk7CisgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBteVRhcmdldCA9IGRlY29kZXIuZGVjb2RlKG15U291cmNlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWVxdWFscyhteVRhcmdldCwgdVNvdXJjZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiLS1UZXN0IGNvbnZlcnRBbGwoKSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBlbmNvZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiB0byBVbmljb2RlICAtLUZBSUxFRCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBDaGFyQnVmZmVyIG15U291cmNlID0gQ2hhckJ1ZmZlci53cmFwKHVTb3VyY2UpOworICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgbXlUYXJnZXQgPSBlbmNvZGVyLmVuY29kZShteVNvdXJjZSk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVhbHMobXlUYXJnZXQsIGJTb3VyY2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKAorICAgICAgICAgICAgICAgICAgICAgICAgIi0tVGVzdCBjb252ZXJ0QWxsKCkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZW5jb2RpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdG8gVW5pY29kZSAgLS1GQUlMRUQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZW5jb2Rlci5lbmNvZGUoKSBmYWlsZWQgIisgZS5nZXRNZXNzYWdlKCkrIiAiK2UudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICAvL1RPRE8KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIHRlc3RTdHJpbmcoQnl0ZUJ1ZmZlciBiU291cmNlLCBDaGFyQnVmZmVyIHVTb3VyY2UpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gbmV3IFN0cmluZyh1U291cmNlKTsKKyAgICAgICAgICAgICAgICBieXRlW10gdGFyZ2V0ID0gc291cmNlLmdldEJ5dGVzKGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICBpZiAoIWVxdWFscyh0YXJnZXQsIGJTb3VyY2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlbmNvZGUgdXNpbmcgc3RyaW5nIEFQSSBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gbmV3IFN0cmluZyhnZXRCeXRlQXJyYXkoZ2JTb3VyY2UpLCBlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVhbHModVNvdXJjZSwgdGFyZ2V0LnRvQ2hhckFycmF5KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJkZWNvZGUgdXNpbmcgc3RyaW5nIEFQSSBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZnJvbVVuaWNvZGVUZXN0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBsb2dsbigiTG9hZGVkIENoYXJzZXQ6ICIgKyBjaGFyc2V0LmdldENsYXNzKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKCJMb2FkZWQgQ2hhcnNldEVuY29kZXI6ICIgKyBlbmNvZGVyLmdldENsYXNzKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKCJMb2FkZWQgQ2hhcnNldERlY29kZXI6ICIgKyBkZWNvZGVyLmdldENsYXNzKCkudG9TdHJpbmcoKSk7CisgICAgICAgIAorICAgICAgICBCeXRlQnVmZmVyIG15VGFyZ2V0ID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZShnYlNvdXJjZS5sZW5ndGgpOworICAgICAgICBsb2dsbigiQ3JlYXRlZCBCeXRlQnVmZmVyIG9mIGxlbmd0aDogIiArIHVTb3VyY2UubGVuZ3RoKTsKKyAgICAgICAgQ2hhckJ1ZmZlciBteVNvdXJjZSA9IENoYXJCdWZmZXIud3JhcCh1U291cmNlKTsKKyAgICAgICAgbG9nbG4oIldyYXBwZWQgQnl0ZUJ1ZmZlciB3aXRoIENoYXJCdWZmZXIgICIpOworICAgICAgICBlbmNvZGVyLnJlc2V0KCk7CisgICAgICAgIGxvZ2xuKCJUZXN0IFVuaWNvZGUgdG8gIiArIGVuY29kaW5nICk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKG15U291cmNlLCBteVRhcmdldCwgdHJ1ZSk7CisgICAgICAgIGlmICghZXF1YWxzKG15VGFyZ2V0LCBnYlNvdXJjZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCItLVRlc3QgVW5pY29kZSB0byAiICsgZW5jb2RpbmcgKyAiOiBGQUlMRUQiKTsKKyAgICAgICAgfSAKKyAgICAgICAgbG9nbG4oIlRlc3QgVW5pY29kZSB0byAiICsgZW5jb2RpbmcgKyIgcGFzc2VkIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRvVW5pY29kZSggKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJMb2FkZWQgQ2hhcnNldDogIiArIGNoYXJzZXQuZ2V0Q2xhc3MoKS50b1N0cmluZygpKTsKKyAgICAgICAgbG9nbG4oIkxvYWRlZCBDaGFyc2V0RW5jb2RlcjogIiArIGVuY29kZXIuZ2V0Q2xhc3MoKS50b1N0cmluZygpKTsKKyAgICAgICAgbG9nbG4oIkxvYWRlZCBDaGFyc2V0RGVjb2RlcjogIiArIGRlY29kZXIuZ2V0Q2xhc3MoKS50b1N0cmluZygpKTsKKyAgICAgICAgCisgICAgICAgIENoYXJCdWZmZXIgbXlUYXJnZXQgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKHVTb3VyY2UubGVuZ3RoKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBteVNvdXJjZSA9IEJ5dGVCdWZmZXIud3JhcChnZXRCeXRlQXJyYXkoZ2JTb3VyY2UpKTsKKyAgICAgICAgZGVjb2Rlci5yZXNldCgpOworICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIHRydWUpOworICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgVG9Vbmljb2RlIC0tIEZBSUxFRCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZXF1YWxzKG15VGFyZ2V0LCB1U291cmNlKSkgeworICAgICAgICAgICAgZXJybG4oIi0tVGVzdCAiICsgZW5jb2RpbmcgKyAiIHRvIFVuaWNvZGUgOkZBSUxFRCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBieXRlW10gZ2V0Qnl0ZUFycmF5KGNoYXJbXSBzb3VyY2UpIHsKKyAgICAgICAgYnl0ZVtdIHRhcmdldCA9IG5ldyBieXRlW3NvdXJjZS5sZW5ndGhdOworICAgICAgICBpbnQgaSA9IHNvdXJjZS5sZW5ndGg7CisgICAgICAgIGZvciAoOyAtLWkgPj0gMDspIHsKKyAgICAgICAgICAgIHRhcmdldFtpXSA9IChieXRlKSBzb3VyY2VbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgLyoKKyAgICBwcml2YXRlIHZvaWQgc21CdWZDaGFyc2V0KENoYXJzZXQgY2hhcnNldCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBiVGFyZ2V0ID0gY2hhcnNldC5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKHVTb3VyY2UpKTsKKyAgICAgICAgICAgIENoYXJCdWZmZXIgdVRhcmdldCA9CisgICAgICAgICAgICAgICAgY2hhcnNldC5kZWNvZGUoQnl0ZUJ1ZmZlci53cmFwKGdldEJ5dGVBcnJheShnYlNvdXJjZSkpKTsKKworICAgICAgICAgICAgaWYgKCFlcXVhbHModVRhcmdldCwgdVNvdXJjZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCAiICsgY2hhcnNldC50b1N0cmluZygpICsgIiB0byBVbmljb2RlIDpGQUlMRUQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXF1YWxzKGJUYXJnZXQsIGdiU291cmNlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0ICIgKyBjaGFyc2V0LnRvU3RyaW5nKCkgKyAiIGZyb20gVW5pY29kZSA6RkFJTEVEIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZXJybG4oIkVuY291bnRlcmVkIGV4Y2VwdGlvbiBpbiBzbUJ1ZkNoYXJzZXQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0TXVsdGl0aHJlYWRlZCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBmaW5hbCBDaGFyc2V0IGNzID0gQ2hhcnNldC5mb3JOYW1lKGVuY29kaW5nKTsKKyAgICAgICAgaWYgKGNzID09IGNoYXJzZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2JqZWN0cyBhcmUgZXF1YWwiKTsKKyAgICAgICAgfQorICAgICAgICBzbUJ1ZkNoYXJzZXQoY3MpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgVGhyZWFkIHQxID0gbmV3IFRocmVhZCgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgc2luY2UgdGhlIG1laHRvZHMgb24KKyAgICAgICAgICAgICAgICAgICAgLy8gQ2hhcnNldCBBUEkgYXJlIHN1cHBvc2VkIHRvIGJlIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAvLyBzYWZlIC4uLiB0byB0ZXN0IGl0IHdlIGRvbnQgc3luYworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIHN5bmNocm9uaXplZChjaGFyc2V0KXsKKyAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWludGVycnVwdGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21CdWZDaGFyc2V0KGNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiB1ZUV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4odWVFeC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAgZmluYWwgVGhyZWFkIHQyID0gbmV3IFRocmVhZCgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzeW5jaHJvbml6ZWQoY2hhcnNldCl7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICghaW50ZXJydXB0ZWQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbUJ1ZkNoYXJzZXQoY3MpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uIHVlRXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih1ZUV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy99CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHQxLnN0YXJ0KCk7CisgICAgICAgICAgICB0Mi5zdGFydCgpOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMTAwMDAwMDAwMCkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgdDEuaW50ZXJydXB0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHQyLmludGVycnVwdCgpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN5bmNocm9uaXplZE11bHRpdGhyZWFkZWQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gTWV0aG9kcyBvbiBDaGFyc2V0RGVjb2RlciBhbmQgQ2hhcnNldEVuY29kZXIgY2xhc3NlcworICAgICAgICAvLyBhcmUgaW5oZXJlbnRseSB1bnNhZmUgaWYgYWNjZXNzZWQgYnkgbXVsdGlwbGUgY29uY3VycmVudAorICAgICAgICAvLyB0aHJlYWQgc28gd2Ugc3luY2hyb25pemUgdGhlbQorICAgICAgICBmaW5hbCBDaGFyc2V0IGNoYXJzZXQgPSBDaGFyc2V0LmZvck5hbWUoZW5jb2RpbmcpOworICAgICAgICBmaW5hbCBDaGFyc2V0RGVjb2RlciBkZWNvZGVyID0gY2hhcnNldC5uZXdEZWNvZGVyKCk7CisgICAgICAgIGZpbmFsIENoYXJzZXRFbmNvZGVyIGVuY29kZXIgPSBjaGFyc2V0Lm5ld0VuY29kZXIoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIFRocmVhZCB0MSA9IG5ldyBUaHJlYWQoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWludGVycnVwdGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChlbmNvZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtQnVmRW5jb2RlKGVuY29kZXIsIGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChkZWNvZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtQnVmRGVjb2RlKGRlY29kZXIsIGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24gdWVFeCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHVlRXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmaW5hbCBUaHJlYWQgdDIgPSBuZXcgVGhyZWFkKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFpbnRlcnJ1cHRlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAoZW5jb2RlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbUJ1ZkVuY29kZShlbmNvZGVyLCBlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAoZGVjb2RlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbUJ1ZkRlY29kZShkZWNvZGVyLCBlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uIHVlRXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih1ZUV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHQxLnN0YXJ0KCk7CisgICAgICAgICAgICB0Mi5zdGFydCgpOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMTAwMDAwMDAwMCkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgdDEuaW50ZXJydXB0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHQyLmludGVycnVwdCgpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorICAgICovCisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE1CQ1MoKXsgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRW5jb2RlcjogZnJvbSBVbmljb2RlIGNvbnZlcnNpb24KKyAgICAgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXJJQ1UgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCkuY2hhcnNldEZvck5hbWUoImlibS05NzEiKS5uZXdFbmNvZGVyKCk7CisgICAgICAgICAgICBCeXRlQnVmZmVyIG91dCA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoNik7CisgICAgICAgICAgICBlbmNvZGVySUNVLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdCA9IGVuY29kZXJJQ1UuZW5jb2RlKENoYXJCdWZmZXIud3JhcCgiXHUwMTMxXHUwMDYxXHUwMGExIiksIG91dCwgdHJ1ZSk7CisgICAgICAgICAgICBpZighcmVzdWx0LmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGV4cGVjdGVkID0geyhieXRlKTB4QTksIChieXRlKTB4QTUsIChieXRlKTB4QUYsIChieXRlKTB4RkUsIChieXRlKTB4QTIsIChieXRlKTB4QUV9OworICAgICAgICAgICAgICAgIGlmKCFlcXVhbHMoZXhwZWN0ZWQsIG91dC5hcnJheSgpKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzdWJzdGl0dXRpb24gYnl0ZXMuIEdvdDogIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleChvdXQuYXJyYXkoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiT3V0cHV0OiAiKyAgaGV4KG91dC5hcnJheSgpKSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRW5jb2RlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGVuY29kZXI6ICIrZW5jb2RlcklDVS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICAvLyBEZWNvZGVyOiB0byBVbmljb2RlIGNvbnZlcnNpb24KKyAgICAgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXJJQ1UgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCkuY2hhcnNldEZvck5hbWUoImlibS05NzEiKS5uZXdEZWNvZGVyKCk7CisgICAgICAgICAgICBDaGFyQnVmZmVyIG91dCA9IENoYXJCdWZmZXIuYWxsb2NhdGUoMyk7CisgICAgICAgICAgICBkZWNvZGVySUNVLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBkZWNvZGVySUNVLmRlY29kZShCeXRlQnVmZmVyLndyYXAobmV3IGJ5dGVbXSB7IChieXRlKTB4QTIsIChieXRlKTB4QUUsIChieXRlKTB4MTIsIChieXRlKTB4MzQsIChieXRlKTB4RUYsIChieXRlKTB4REMgfSksIG91dCwgdHJ1ZSk7CisgICAgICAgICAgICBpZighcmVzdWx0LmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgY2hhcltdIGV4cGVjdGVkID0geydcdTAwYTEnLCAnXHVmZmZkJywgJ1x1NjY3Nid9OworICAgICAgICAgICAgICAgIGlmKCFlcXVhbHMoZXhwZWN0ZWQsIG91dC5hcnJheSgpKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzdWJzdGl0dXRpb24gY2hhcnMuIEdvdDogIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleChvdXQuYXJyYXkoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiT3V0cHV0OiAiKyAgaGV4KG91dC5hcnJheSgpKSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGVjb2RlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGVuY29kZXI6ICIrZGVjb2RlcklDVS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI0ODk3KCl7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBwcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBjaGFyc2V0ID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoIngtYWJyYWNhZGFicmEiKTsgIAorICAgICAgICBpZihjaGFyc2V0IT1udWxsICYmIGNoYXJzZXQuY2FuRW5jb2RlKCk9PSB0cnVlKXsKKyAgICAgICAgICAgIGVycmxuKCJwcm92aWRlci5jaGFyc2V0Rm9yTmFtZSgpIGRvZXMgbm90IHZhbGlkYXRlIHRoZSBjaGFyc2V0IG5hbWVzIiApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEpCNTAyNygpIHsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVySUNVIHByb3ZpZGVyPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisKKyAgICAgICAgQ2hhcnNldCBmYWtlID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoImRvZXNOb3RFeGlzdCIpOworICAgICAgICBpZihmYWtlICE9IG51bGwpeworICAgICAgICAgICAgZXJybG4oIlwiZG9lc05vdEV4aXN0XCIgcmV0dXJuZWQgIiArIGZha2UpOworICAgICAgICB9CisgICAgICAgIENoYXJzZXQgeGZha2UgPSBwcm92aWRlci5jaGFyc2V0Rm9yTmFtZSgieC1kb2VzTm90RXhpc3QiKTsKKyAgICAgICAgaWYoeGZha2UhPW51bGwpeworICAgICAgICAgICAgZXJybG4oIlwieC1kb2VzTm90RXhpc3RcIiByZXR1cm5lZCAiICsgeGZha2UpOworICAgICAgICB9CisgICAgfQorICAgIC8vdGVzdCB0byBtYWtlIHN1cmUgdGhhdCBudW1iZXIgb2YgYWxpYXNlcyBhbmQgY2Fub25pY2FsIG5hbWVzIGFyZSBpbiB0aGUgY2hhcnNldHMgdGhhdCBhcmUgaW4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxsTmFtZXMoKSB7CisgICAgICAgIAorICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXI9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgT2JqZWN0W10gYXZhaWxhYmxlID0gQ2hhcnNldFByb3ZpZGVySUNVLmdldEF2YWlsYWJsZU5hbWVzKCk7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPGF2YWlsYWJsZS5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY2Fub24gID0gQ2hhcnNldFByb3ZpZGVySUNVLmdldElDVUNhbm9uaWNhbE5hbWUoKFN0cmluZylhdmFpbGFibGVbaV0pOworCisgICAgICAgICAgICAgICAgLy8gJywnIGlzIG5vdCBhbGxvd2VkIGJ5IEphdmEncyBjaGFyc2V0IG5hbWUgY2hlY2tlcgorICAgICAgICAgICAgICAgIGlmKGNhbm9uLmluZGV4T2YoJywnKT49MCl7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBDaGFyc2V0IGNzID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoKFN0cmluZylhdmFpbGFibGVbaV0pOworICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBPYmplY3RbXSBqYXZhQWxpYXNlcyA9ICBjcy5hbGlhc2VzKCkudG9BcnJheSgpOworICAgICAgICAgICAgICAgIC8vc2VhY2ggZm9yIElDVSBjYW5vbmljYWwgbmFtZSBpbiBqYXZhQWxpYXNlcworICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5BbGlhc0xpc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxqYXZhQWxpYXNlcy5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBqYXZhID0gKFN0cmluZykgamF2YUFsaWFzZXNbal07CisgICAgICAgICAgICAgICAgICAgIGlmKGphdmEuZXF1YWxzKGNhbm9uKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiamF2YUFsaWFzOiAiICsgamF2YSArICIgY2Fub246ICIgKyBjYW5vbik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbkFsaWFzTGlzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoaW5BbGlhc0xpc3QgPT0gZmFsc2UpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGZpbmQgSUNVIGNhbm9uaWNhbCBuYW1lOiAiK2Nhbm9uKyAiIGZvciBqYXZhIGNhbm9uaWNhbCBuYW1lOiAiKyBhdmFpbGFibGVbaV0rICIgIisgaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vIGxvYWQgY2hhcnNldCAiKyBhdmFpbGFibGVbaV0rIiAiK2V4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdERlY29kZXJJbXBsRmx1c2goKSB7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBwcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBpY3MgPSBwcm92aWRlci5jaGFyc2V0Rm9yTmFtZSgiVVRGLTE2Iik7CisgICAgICAgIENoYXJzZXQgamNzID0gQ2hhcnNldC5mb3JOYW1lKCJVVEYtMTYiKTsgLy8gSmF2YSdzIFVURi0xNiBjaGFyc2V0CisgICAgICAgIGV4ZWNEZWNvZGVyKGpjcyk7CisgICAgICAgIGV4ZWNEZWNvZGVyKGljcyk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RFbmNvZGVySW1wbEZsdXNoKCkgeworICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgaWNzID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoIlVURi0xNiIpOworICAgICAgICBDaGFyc2V0IGpjcyA9IENoYXJzZXQuZm9yTmFtZSgiVVRGLTE2Iik7IC8vIEphdmEncyBVVEYtMTYgY2hhcnNldAorICAgICAgICBleGVjRW5jb2RlcihqY3MpOworICAgICAgICBleGVjRW5jb2RlcihpY3MpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZXhlY0RlY29kZXIoQ2hhcnNldCBjcyl7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBjcy5uZXdEZWNvZGVyKCk7CisgICAgICAgIGRlY29kZXIub25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQpOworICAgICAgICBkZWNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQpOworICAgICAgICBDaGFyQnVmZmVyIG91dCA9IENoYXJCdWZmZXIuYWxsb2NhdGUoMTApOworICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShCeXRlQnVmZmVyLndyYXAobmV3IGJ5dGVbXSB7IC0xLAorICAgICAgICAgICAgICAgIC0yLCAzMiwgMCwgOTggfSksIG91dCwgZmFsc2UpOworICAgICAgICByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShCeXRlQnVmZmVyLndyYXAobmV3IGJ5dGVbXSB7IDk4IH0pLCBvdXQsIHRydWUpOworCisgICAgICAgIGxvZ2xuKGNzLmdldENsYXNzKCkudG9TdHJpbmcoKSsgIjoiICtyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBkZWNvZGVyLmZsdXNoKG91dCk7CisgICAgICAgICAgICBsb2dsbihjcy5nZXRDbGFzcygpLnRvU3RyaW5nKCkrICI6IiArcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkrIiAiK2NzLmdldENsYXNzKCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGV4ZWNFbmNvZGVyKENoYXJzZXQgY3MpeworICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gY3MubmV3RW5jb2RlcigpOworICAgICAgICBlbmNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUKTsKKyAgICAgICAgZW5jb2Rlci5vblVubWFwcGFibGVDaGFyYWN0ZXIoQ29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBvdXQgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDEwKTsKKyAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZW5jb2Rlci5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKG5ldyBjaGFyW10geyAnXHVGRkZGJywKKyAgICAgICAgICAgICAgICAnXHUyMzQ1JywgMzIsIDk4IH0pLCBvdXQsIGZhbHNlKTsKKyAgICAgICAgbG9nbG4oY3MuZ2V0Q2xhc3MoKS50b1N0cmluZygpKyAiOiIgK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgcmVzdWx0ID0gZW5jb2Rlci5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKG5ldyBjaGFyW10geyA5OCB9KSwgb3V0LCB0cnVlKTsKKworICAgICAgICBsb2dsbihjcy5nZXRDbGFzcygpLnRvU3RyaW5nKCkrICI6IiArcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gZW5jb2Rlci5mbHVzaChvdXQpOworICAgICAgICAgICAgbG9nbG4oY3MuZ2V0Q2xhc3MoKS50b1N0cmluZygpKyAiOiIgK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKyIgIitjcy5nZXRDbGFzcygpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3REZWNvZGVNYWxmb3JtZWQoKSB7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBwcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBpY3MgPSBwcm92aWRlci5jaGFyc2V0Rm9yTmFtZSgiVVRGLTE2QkUiKTsKKyAgICAgICAgLy9Vc2UgU1VOJ3MgY2hhcnNldAorICAgICAgICBDaGFyc2V0IGpjcyA9IENoYXJzZXQuZm9yTmFtZSgiVVRGLTE2Iik7CisgICAgICAgIENvZGVyUmVzdWx0IGlyID0gZXhlY01hbGZvcm1lZChpY3MpOworICAgICAgICBDb2RlclJlc3VsdCBqciA9IGV4ZWNNYWxmb3JtZWQoamNzKTsKKyAgICAgICAgaWYoaXIhPWpyKXsKKyAgICAgICAgICAgIGVycmxuKCJJQ1UncyBkZWNvZGVyIGRpZCBub3QgcmV0dXJuIHRoZSBzYW1lIHJlc3VsdCBhcyBTdW4uIElDVTogIitpci50b1N0cmluZygpKyIgU3VuOiAiK2pyLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgQ29kZXJSZXN1bHQgZXhlY01hbGZvcm1lZChDaGFyc2V0IGNzKXsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IGNzLm5ld0RlY29kZXIoKTsKKyAgICAgICAgZGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLklHTk9SRSk7CisgICAgICAgIGRlY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVCk7CisgICAgICAgIEJ5dGVCdWZmZXIgaW4gPSBCeXRlQnVmZmVyLndyYXAobmV3IGJ5dGVbXSB7IDB4MDAsIDB4NDEsIDB4MDAsIDB4NDIsIDB4MDEgfSk7CisgICAgICAgIENoYXJCdWZmZXIgb3V0ID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSgzKTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGluLCBvdXQsIHRydWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SmF2YVVURjE2RGVjb2RlcigpeworICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgaWNzID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoIlVURi0xNkJFIik7CisgICAgICAgIC8vVXNlIFNVTidzIGNoYXJzZXQKKyAgICAgICAgQ2hhcnNldCBqY3MgPSBDaGFyc2V0LmZvck5hbWUoIlVURi0xNiIpOworICAgICAgICBFeGNlcHRpb24gaWUgPSBleGVjQ29udmVydEFsbChpY3MpOworICAgICAgICBFeGNlcHRpb24gamUgPSBleGVjQ29udmVydEFsbChqY3MpOworICAgICAgICBpZihpZSE9amUpeworICAgICAgICAgICAgZXJybG4oIklDVSdzIGRlY29kZXIgZGlkIG5vdCByZXR1cm4gdGhlIHNhbWUgcmVzdWx0IGFzIFN1bi4gSUNVOiAiK2llLnRvU3RyaW5nKCkrIiBTdW46ICIramUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBFeGNlcHRpb24gZXhlY0NvbnZlcnRBbGwoQ2hhcnNldCBjcyl7CisgICAgICAgIEJ5dGVCdWZmZXIgaW4gPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDQwMCk7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIHdoaWxlKGluLnBvc2l0aW9uKCkhPWluLmNhcGFjaXR5KCkpeworICAgICAgICAgICAgaW4ucHV0KChieXRlKTB4RDgpOworICAgICAgICAgICAgaW4ucHV0KChieXRlKWkpOworICAgICAgICAgICAgaW4ucHV0KChieXRlKTB4REMpOworICAgICAgICAgICAgaW4ucHV0KChieXRlKWkpOworICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIGluLmxpbWl0KGluLnBvc2l0aW9uKCkpOworICAgICAgICBpbi5wb3NpdGlvbigwKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IGNzLm5ld0RlY29kZXIoKTsKKyAgICAgICAgZGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLklHTk9SRSk7CisgICAgICAgIGRlY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVCk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIENoYXJCdWZmZXIgb3V0ID0gZGVjb2Rlci5kZWNvZGUoaW4pOworICAgICAgICAgICAgaWYob3V0IT1udWxsKXsKKyAgICAgICAgICAgICAgICBsb2dsbihjcy50b1N0cmluZygpKyIgZW5jb2luZyBzdWNjZWVkZWQgYXMgZXhwZWN0ZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaCAoIEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBlbmNvZGluZzogIitjcy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybiBleDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldC9UZXN0Q29udmVyc2lvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQvVGVzdENvbnZlcnNpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTA1MzIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQvVGVzdENvbnZlcnNpb24uamF2YQpAQCAtMCwwICsxLDEwODEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldDsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGluZ0Vycm9yQWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFByb3ZpZGVySUNVOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lk1vZHVsZVRlc3Q7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdERhdGFNb2R1bGUuRGF0YU1hcDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFRoaXMgbWFwcyB0byBjb252dGVzdC5jIHdoaWNoIHRlc3RzIHRoZSB0ZXN0IGZpbGUgZm9yIGRhdGEtZHJpdmVuIGNvbnZlcnNpb24gdGVzdHMuIAorICogCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0Q29udmVyc2lvbiBleHRlbmRzIE1vZHVsZVRlc3QgeworICAgIC8qKgorICAgICAqIFRoaXMgbWFwcyB0byB0aGUgQyBzdHJ1Y3Qgb2YgY29udmVyc2lvbiBjYXNlIGluIGNvbnZ0ZXN0LmggdGhhdCBzdG9yZXMgdGhlCisgICAgICogZGF0YSBmb3IgYSBjb252ZXJzaW9uIHRlc3QKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGNsYXNzIENvbnZlcnNpb25DYXNlIHsKKyAgICAgICAgaW50IGNhc2VOcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0Y2FzZSBpbmRleCAgIAorICAgICAgICBTdHJpbmcgb3B0aW9uID0gbnVsbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbGxiYWNrIG9wdGlvbnMKKyAgICAgICAgQ29kaW5nRXJyb3JBY3Rpb24gY2JFcnJvckFjdGlvbiA9IG51bGw7ICAgICAgICAgICAgICAgICAvLyBjYWxsYmFjayBhY3Rpb24gdHlwZQorICAgICAgICBDaGFyQnVmZmVyIHRvVW5pY29kZVJlc3VsdCA9IG51bGw7CisgICAgICAgIEJ5dGVCdWZmZXIgZnJvbVVuaWNvZGVSZXN1bHQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgLy8gZGF0YSByZXRyaWV2ZWQgZnJvbSBhIHRlc3QgY2FzZSBjb252ZXJzaW9uLnR4dAorICAgICAgICBTdHJpbmcgY2hhcnNldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJzZXQKKyAgICAgICAgU3RyaW5nIHVuaWNvZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bmljb2RlIHN0cmluZworICAgICAgICBCeXRlQnVmZmVyIGJ5dGVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5dGUKKyAgICAgICAgaW50W10gb2Zmc2V0czsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXRzCisgICAgICAgIGJvb2xlYW4gZmluYWxGbHVzaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmx1c2gKKyAgICAgICAgYm9vbGVhbiBmYWxsYmFja3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjaworICAgICAgICBTdHJpbmcgb3V0RXJyb3JDb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVycm9yQ29kZQorICAgICAgICBTdHJpbmcgY2JvcHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbGxiYWNrIAorICAgICAgICAKKyAgICAgICAgLy8gVGVzdEdldFVuaWNvZGVTZXQgdmFyaWFibGVzCisgICAgICAgIFN0cmluZyBtYXA7CisgICAgICAgIFN0cmluZyBtYXBub3Q7CisgICAgICAgIGludCB3aGljaDsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0Q29udmVyc2lvbigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdENvbnZlcnNpb24oKSB7CisgICAgICAgIHN1cGVyKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS8iLCAiY29udmVyc2lvbiIpOworICAgIH0KKworICAgIC8qCisgICAgICogVGhpcyBtZXRob2QgbWFwcyB0byB0aGUgY29udnRlc3QuY3BwIHJ1bkluZGV4ZWRUZXN0KCkgbWV0aG9kIHRvIHJ1biBlYWNoCisgICAgICogdHlwZSBvZiBjb252ZXJzaW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NNb2R1bGVzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IHRlc3RGcm9tVW5pY29kZSA9IDA7CisgICAgICAgICAgICBpbnQgdGVzdFRvVW5pY29kZSA9IDA7CisgICAgICAgICAgICBTdHJpbmcgdGVzdE5hbWUgPSB0LmdldE5hbWUoKS50b1N0cmluZygpOworCisgICAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggYW5kIGdldCBlYWNoIG9mIHRoZSB0ZXN0IGNhc2UgdG8gcHJvY2VzcworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdGVyID0gdC5nZXREYXRhSXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgRGF0YU1hcCB0ZXN0Y2FzZSA9IChEYXRhTWFwKSBpdGVyLm5leHQoKTsKKworICAgICAgICAgICAgICAgIGlmICh0ZXN0TmFtZS5lcXVhbHNJZ25vcmVDYXNlKCJ0b1VuaWNvZGUiKSkgeworICAgICAgICAgICAgICAgICAgICBUZXN0VG9Vbmljb2RlKHRlc3RjYXNlLCB0ZXN0VG9Vbmljb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFRvVW5pY29kZSsrOworCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXN0TmFtZS5lcXVhbHNJZ25vcmVDYXNlKCJmcm9tVW5pY29kZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIFRlc3RGcm9tVW5pY29kZSh0ZXN0Y2FzZSwgdGVzdEZyb21Vbmljb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZyb21Vbmljb2RlKys7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXN0TmFtZS5lcXVhbHNJZ25vcmVDYXNlKCJnZXRVbmljb2RlU2V0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgVGVzdEdldFVuaWNvZGVTZXQodGVzdGNhc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIHRlc3QgY2FzZXMgZm9yIGNvbnZlcnNpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIAorICAgIC8vIGZyb21Vbmljb2RlIHRlc3Qgd29ya2VyIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCisgICAgcHJpdmF0ZSB2b2lkIFRlc3RGcm9tVW5pY29kZShEYXRhTWFwIHRlc3RjYXNlLCBpbnQgY2FzZU5yKSB7CisKKyAgICAgICAgQ29udmVyc2lvbkNhc2UgY2MgPSBuZXcgQ29udmVyc2lvbkNhc2UoKTsKKyAgICAgICAgY2MuY2FzZU5yID0gY2FzZU5yOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyByZXRyaWV2ZSB0ZXN0IGNhc2UgZGF0YQorICAgICAgICAgICAgY2MuY2hhcnNldCA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgiY2hhcnNldCIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBjYy51bmljb2RlID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJ1bmljb2RlIikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGNjLmJ5dGVzID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJieXRlcyIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0QmluYXJ5KCk7CisgICAgICAgICAgICBjYy5vZmZzZXRzID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJvZmZzZXRzIikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgICAgIGNjLmZpbmFsRmx1c2ggPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoImZsdXNoIikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRVSW50KCkgIT0gMDsKKyAgICAgICAgICAgIGNjLmZhbGxiYWNrcyA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgiZmFsbGJhY2tzIikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRVSW50KCkgIT0gMDsKKyAgICAgICAgICAgIGNjLm91dEVycm9yQ29kZSA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlCisgICAgICAgICAgICAgICAgICAgIC5nZXRPYmplY3QoImVycm9yQ29kZSIpKS5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGNjLmNib3B0ID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJjYWxsYmFjayIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0U3RyaW5nKCk7CisKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJTa2lwcGluZyB0ZXN0OiIpOworICAgICAgICAgICAgZXJybG4oImVycm9yIHBhcnNpbmcgY29udmVyc2lvbi90b1VuaWNvZGUgdGVzdCBjYXNlICIgKyBjYy5jYXNlTnIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gLS0tLWZvciBkZWJ1Z2dpbmcgb25seQorICAgICAgICBsb2dsbigiXG5UZXN0RnJvbVVuaWNvZGVbIiArIGNhc2VOciArICJdICIgKyBjYy5jaGFyc2V0ICsgIiAiKTsKKyAgICAgICAgbG9nbG4oIlVuaWNvZGU6ICIgKyBjYy51bmljb2RlKTsKKyAgICAgICAgbG9nbG4oIkJ5dGVzOiIpOworICAgICAgICBwcmludGJ5dGVzKGNjLmJ5dGVzLCBjYy5ieXRlcy5saW1pdCgpKTsKKyAgICAgICAgbG9nbG4oIiIpOworICAgICAgICBsb2dsbigiQ2FsbGJhY2s6ICgiICsgY2MuY2JvcHQgKyAiKSIpOworICAgICAgICBsb2dsbigiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4iKTsKKworICAgICAgICAvLyAgICAgICAgIC0tLS1mb3IgZGVidWdnaW5nIG9ubHkKKyAgICAgICAgLy8gVE9ETzogKioqQ3VycmVudGx5IHNraXBwaW5nIHRlc3QgZm9yIGNoYXJzZXQgaWJtLTEzOTAsIGdiMTgwMzAsCisgICAgICAgIC8vIGlibS05MzAgZHVlIHRvIGV4dGVybmFsIG1hcHBpbmcgbmVlZCB0byBiZSBmaXgKKyAgICAgICAgaWYgKGNjLmNoYXJzZXQuZXF1YWxzSWdub3JlQ2FzZSgiaWJtLTEzOTAiKQorICAgICAgICAgICAgICAgIHx8IGNjLmNoYXJzZXQuZXF1YWxzSWdub3JlQ2FzZSgiZ2IxODAzMCIpCisgICAgICAgICAgICAgICAgfHwgY2MuY2hhcnNldC5lcXVhbHNJZ25vcmVDYXNlKCJpYm0tOTcwIikpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGluZyB0ZXN0OigiCisgICAgICAgICAgICAgICAgICAgICsgY2MuY2hhcnNldAorICAgICAgICAgICAgICAgICAgICArICIpIGR1ZSB0byBJQ1UgQ2hhcnNldCBleHRlcm5hbCBtYXBwaW5nIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBwcm9jZXNzIHRoZSByZXRyaWV2ZWQgdGVzdCBkYXRhIGNhc2UKKyAgICAgICAgaWYgKGNjLm9mZnNldHMubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIGNjLm9mZnNldHMgPSBudWxsOworICAgICAgICB9IGVsc2UgaWYgKGNjLm9mZnNldHMubGVuZ3RoICE9IGNjLmJ5dGVzLmxpbWl0KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tVW5pY29kZVsiICsgY2MuY2FzZU5yICsgIl0gYnl0ZXNbIiArIGNjLmJ5dGVzCisgICAgICAgICAgICAgICAgICAgICsgIl0gYW5kIG9mZnNldHNbIiArIGNjLm9mZnNldHMubGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICsgIl0gbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gY2hlY2sgdGhlIGNhbGxiYWNrIHJlcGxhY2VtZW50IHZhbHVlCisgICAgICAgIGlmIChjYy5jYm9wdC5sZW5ndGgoKSA+IDApIHsKKworICAgICAgICAgICAgc3dpdGNoICgoY2MuY2JvcHQpLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgY2MuY2JFcnJvckFjdGlvbiA9IENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICcwJzoKKyAgICAgICAgICAgICAgICBjYy5jYkVycm9yQWN0aW9uID0gQ29kaW5nRXJyb3JBY3Rpb24uSUdOT1JFOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnLic6CisgICAgICAgICAgICAgICAgY2MuY2JFcnJvckFjdGlvbiA9IENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBudWxsOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjaGVjayBmb3IgYW55IG9wdGlvbnMgZm9yIHRoZSBjYWxsYmFjayB2YWx1ZSAtLSAKKyAgICAgICAgICAgIGNjLm9wdGlvbiA9IGNjLmNiRXJyb3JBY3Rpb24gPT0gbnVsbCA/IGNjLmNib3B0IDogY2MuY2JvcHQKKyAgICAgICAgICAgICAgICAgICAgLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIGlmIChjYy5vcHRpb24gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNjLm9wdGlvbiA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIlRlc3RGcm9tVW5pY29kZVsiICsgY2MuY2FzZU5yICsgIl0gIiArIGNjLmNoYXJzZXQpOworICAgICAgICBGcm9tVW5pY29kZUNhc2UoY2MpOworCisgICAgICAgIHJldHVybjsKKworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgRnJvbVVuaWNvZGVDYXNlKENvbnZlcnNpb25DYXNlIGNjKSB7CisKKyAgICAgICAgLy8gY3JlYXRlIGNoYXJzZXQgZW5jb2RlciBmb3IgY29udmVyc2lvbiB0ZXN0CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBwcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlciA9IG51bGw7CisgICAgICAgIENoYXJzZXQgY2hhcnNldCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjaGFyc2V0ID0gKENoYXJzZXQpIHByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKGNjLmNoYXJzZXQpOworICAgICAgICAgICAgZW5jb2RlciA9IChDaGFyc2V0RW5jb2RlcikgY2hhcnNldC5uZXdFbmNvZGVyKCk7CisgICAgICAgICAgICBlbmNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgICAgICBlbmNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworCisgICAgICAgICAgICBsb2dsbigiU2tpcHBpbmcgdGVzdDooIiArIGNjLmNoYXJzZXQKKyAgICAgICAgICAgICAgICAgICAgKyAiKSBkdWUgdG8gSUNVIENoYXJzZXQgbm90IHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0IHRoZSBjYWxsYmFjayBmb3IgdGhlIGVuY29kZXIgCisgICAgICAgIGlmIChjYy5jYkVycm9yQWN0aW9uICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVuY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKGNjLmNiRXJyb3JBY3Rpb24pOworICAgICAgICAgICAgZW5jb2Rlci5vbk1hbGZvcm1lZElucHV0KGNjLmNiRXJyb3JBY3Rpb24pOworCisgICAgICAgICAgICAvLyBpZiBhY3Rpb24gaGFzIGFuIG9wdGlvbiwgcHV0IGluIHRoZSBvcHRpb24gZm9yIHRoZSBjYXNlCisgICAgICAgICAgICBpZiAoY2Mub3B0aW9uLmVxdWFscygiaSIpKSB7CisgICAgICAgICAgICAgICAgZW5jb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIGNhbGxiYWNrIGFjdGlvbiBpcyByZXBsYWNlLCBhbmQgdGhlcmUgaXMgYSBzdWJjaGFyCisgICAgICAgICAgICAvLyByZXBsYWNlIHRoZSBkZWNvZGVyJ3MgZGVmYXVsdCByZXBsYWNlbWVudCB2YWx1ZQorICAgICAgICAgICAgLy8gaWYgc3Vic3RyaW5nLCBza2lwIHRlc3QgZHVlIHRvIGN1cnJlbnQgYXBpIG5vdCBzdXBwb3J0aW5nCisgICAgICAgICAgICAvLyBzdWJzdHJpbmcKKyAgICAgICAgICAgIGlmIChjYy5jYkVycm9yQWN0aW9uLmVxdWFscyhDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKSkgeworICAgICAgICAgICAgICAgIGlmIChjYy5jYm9wdC5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNjLmNib3B0Lmxlbmd0aCgpID4gMSAmJiBjYy5jYm9wdC5jaGFyQXQoMSkgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiU2tpcHBpbmcgdGVzdCBkdWUgdG8gbGltaXRhdGlvbiBpbiBKYXZhIEFQSSAtIHN1YnN0aXR1dGlvbiBzdHJpbmcgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gLy8gcmVhZCBOVUwtc2VwYXJhdGVkIHN1YmNoYXIgZmlyc3QsIGlmIGFueQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgc3ViY2hhciBmcm9tIExhdGluLTEgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgYWZ0ZXIgdGhlIE5VTAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNjLmNib3B0LmNoYXJBdCgxKSA9PSAweDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuY2JvcHQgPSBjYy5jYm9wdC5zdWJzdHJpbmcoMik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVyLnJlcGxhY2VXaXRoKHRvQnl0ZUFycmF5KGNjLmNib3B0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nIHRlc3QgZHVlIHRvIGxpbWl0YXRpb24gaW4gSmF2YSBBUEkgLSBzdWJzdGl0dXRpb24gY2hhcmFjdGVyIHNlcXVlbmNlIHNpemUgZXJyb3IiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGRvIGNoYXJzZXQgZW5jb2RpbmcgZnJvbSB1bmljb2RlCisKKyAgICAgICAgLy8gdGVzdGluZyBieSBzdGVwcyB1c2luZyBjaGFyc2V0LmVuY29kZXIoaW4sb3V0LGZsdXNoKQorICAgICAgICBpbnQgcmVzdWx0TGVuZ3RoOworICAgICAgICBib29sZWFuIG9rOworICAgICAgICBTdHJpbmcgc3RlcHNbXVtdID0geyB7ICIwIiwgImJ1bGsiIH0sIC8vIG11c3QgYmUgZmlyc3QgZm9yIG9mZnNldHMgdG8gYmUgY2hlY2tlZAorICAgICAgICAgICAgICAgIHsgIjEiLCAic3RlcD0xIiB9LCB7ICIzIiwgInN0ZXA9MyIgfSwgeyAiNyIsICJzdGVwPTciIH0gfTsKKyAgICAgICAgaW50IGksIHN0ZXA7CisKKyAgICAgICAgb2sgPSB0cnVlOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzdGVwcy5sZW5ndGggJiYgb2s7ICsraSkgeworICAgICAgICAgICAgc3RlcCA9IEludGVnZXIucGFyc2VJbnQoc3RlcHNbaV1bMF0pOworCisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBzdGVwOlsiICsgc3RlcCArICJdIik7CisgICAgICAgICAgICByZXN1bHRMZW5ndGggPSBzdGVwRnJvbVVuaWNvZGUoY2MsIGVuY29kZXIsIHN0ZXApOworICAgICAgICAgICAgb2sgPSBjaGVja0Zyb21Vbmljb2RlKGNjLCByZXN1bHRMZW5ndGgpOworCisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdGluZyBieSB3aG9sZSBidWZmZXIgdXNpbmcgb3V0ID0gY2hhcnNldC5lbmNvZGVyKGluKQorICAgICAgICB3aGlsZSAob2sgJiYgY2MuZmluYWxGbHVzaCkgeworICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgamF2YSBBUEkgY2hhcnNldC5lbmNvZGVyKGluKToiKTsKKyAgICAgICAgICAgIGNjLmZyb21Vbmljb2RlUmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgb3V0ID0gbnVsbDsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvdXQgPSBlbmNvZGVyLmVuY29kZShDaGFyQnVmZmVyLndyYXAoY2MudW5pY29kZS50b0NoYXJBcnJheSgpKSk7CisgICAgICAgICAgICAgICAgb3V0LnBvc2l0aW9uKG91dC5saW1pdCgpKTsKKyAgICAgICAgICAgICAgICBpZiAob3V0LmxpbWl0KCkgIT0gb3V0LmNhcGFjaXR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IG91dC5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgICAgICBieXRlW10gdGVtcCA9IG91dC5hcnJheSgpOworICAgICAgICAgICAgICAgICAgICBvdXQgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKHRlbXAubGVuZ3RoICogNCk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wdXQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wb3NpdGlvbihwb3MpOworICAgICAgICAgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IGVuY29kZXIuZmx1c2gob3V0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNyLmlzT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk92ZXJmbG93IGVycm9yIHdpdGggZmx1c2hpbmcgZW5jb2RlciIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNjLmZyb21Vbmljb2RlUmVzdWx0ID0gb3V0OworCisgICAgICAgICAgICAgICAgb2sgPSBjaGVja0Zyb21Vbmljb2RlKGNjLCBvdXQubGltaXQoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vY2hlY2sgdGhlIGVycm9yIGNvZGUgdG8gc2VlIGlmIGl0IG1hdGNoZXMgY2MuZXJyb3JDb2RlCisgICAgICAgICAgICAgICAgbG9nbG4oIkVuY29kZXIgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvckNvZGUgZXhwZWN0ZWQgaXM6ICIgKyBjYy5vdXRFcnJvckNvZGUpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBSZXN1bHQgaXM6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm47CisKKyAgICB9CisgICAgcHJpdmF0ZSBpbnQgc3RlcEZyb21Vbmljb2RlKENvbnZlcnNpb25DYXNlIGNjLCBDaGFyc2V0RW5jb2RlciBlbmNvZGVyLAorICAgICAgICAgICAgaW50IHN0ZXApIHsKKworICAgICAgICBDaGFyQnVmZmVyIHNvdXJjZTsKKyAgICAgICAgQnl0ZUJ1ZmZlciB0YXJnZXQ7CisgICAgICAgIGludCBzb3VyY2VMZW47CisgICAgICAgIGJvb2xlYW4gZmx1c2g7CisgICAgICAgIHNvdXJjZSA9IENoYXJCdWZmZXIud3JhcChjYy51bmljb2RlLnRvQ2hhckFycmF5KCkpOworICAgICAgICBzb3VyY2VMZW4gPSBjYy51bmljb2RlLmxlbmd0aCgpOworCisgICAgICAgIHRhcmdldCA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoY2MuYnl0ZXMuY2FwYWNpdHkoKSArIDQvKiBmb3IgQk9NICovKTsKKyAgICAgICAgdGFyZ2V0LnBvc2l0aW9uKDApOworICAgICAgICBzb3VyY2UucG9zaXRpb24oMCk7CisgICAgICAgIGNjLmZyb21Vbmljb2RlUmVzdWx0ID0gbnVsbDsKKyAgICAgICAgZW5jb2Rlci5yZXNldCgpOworCisgICAgICAgIGlmIChzdGVwID49IDApIHsKKworICAgICAgICAgICAgaW50IGlTdGVwID0gc3RlcDsKKyAgICAgICAgICAgIGludCBvU3RlcCA9IHN0ZXA7CisKKyAgICAgICAgICAgIGZvciAoOzspIHsKKworICAgICAgICAgICAgICAgIGlmIChzdGVwICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmxpbWl0KChpU3RlcCA8IHNvdXJjZUxlbikgPyBpU3RlcCA6IHNvdXJjZUxlbik7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5saW1pdCgob1N0ZXAgPCB0YXJnZXQuY2FwYWNpdHkoKSkgPyBvU3RlcCA6IHRhcmdldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmx1c2ggPSAoY2MuZmluYWxGbHVzaCAmJiBzb3VyY2UubGltaXQoKSA9PSBzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdChzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQodGFyZ2V0LmNhcGFjaXR5KCkpOworICAgICAgICAgICAgICAgICAgICBmbHVzaCA9IGNjLmZpbmFsRmx1c2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvLyBjb252ZXJ0CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworCisgICAgICAgICAgICAgICAgICAgIGNyID0gZW5jb2Rlci5lbmNvZGUoc291cmNlLCB0YXJnZXQsIGZsdXNoKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBwb2ludGVycyBhbmQgZXJyb3JzCisgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwYXJ0aWFsIHRhcmdldCBpcyBmaWxsZWQsIHNldCBhIG5ldyBsaW1pdCwgcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBlcnJvciBhbmQgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5saW1pdCgoKHRhcmdldC5wb3NpdGlvbigpICsgc3RlcCkgPCB0YXJnZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhcGFjaXR5KCkpID8gdGFyZ2V0LnBvc2l0aW9uKCkgKyBzdGVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGFyZ2V0LmNhcGFjaXR5KCkpOworCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3IuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayB0aGUgZXJyb3IgY29kZSB0byBzZWUgaWYgaXQgbWF0Y2hlcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2MuZXJyb3JDb2RlCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRW5jb2RlciByZXR1cm5lZCBhbiBlcnJvciBjb2RlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3JDb2RlIGV4cGVjdGVkIGlzOiAiICsgY2Mub3V0RXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBSZXN1bHQgaXM6ICIgKyBjci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxpbWl0KCkgPT0gc291cmNlTGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IGVuY29kZXIuZW5jb2RlKHNvdXJjZSwgdGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQubGltaXQoKSAhPSB0YXJnZXQuY2FwYWNpdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5saW1pdCh0YXJnZXQuY2FwYWNpdHkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IGVuY29kZXIuZmx1c2godGFyZ2V0KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNyLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGbHVzaCBvcGVyYXRpb24gZmFpbGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpU3RlcCArPSBzdGVwOworICAgICAgICAgICAgICAgIG9TdGVwICs9IHN0ZXA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2MuZnJvbVVuaWNvZGVSZXN1bHQgPSB0YXJnZXQ7CisgICAgICAgIHJldHVybiB0YXJnZXQucG9zaXRpb24oKTsKKyAgICB9CisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrRnJvbVVuaWNvZGUoQ29udmVyc2lvbkNhc2UgY2MsIGludCByZXN1bHRMZW5ndGgpIHsKKworICAgICAgICAvLyBjaGVjayBldmVyeXRoaW5nIHRoYXQgbWlnaHQgaGF2ZSBnb25lIHdyb25nCisgICAgICAgIGlmIChjYy5ieXRlcy5saW1pdCgpICE9IHJlc3VsdExlbmd0aCkgeworICAgICAgICAgICAgaWYgKGNoZWNrUmVzdWx0c0Zyb21Vbmljb2RlKGNjLCBjYy5ieXRlcywgY2MuZnJvbVVuaWNvZGVSZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiZnJvbVVuaWNvZGVbIiArIGNjLmNhc2VOciArICJdKCIgKyBjYy5jaGFyc2V0CisgICAgICAgICAgICAgICAgICAgICsgIikgY2FsbGJhY2s6IiArIGNjLmNib3B0ICsgIiBmYWlsZWQ6ICsiCisgICAgICAgICAgICAgICAgICAgICsgIndyb25nIHJlc3VsdCBsZW5ndGgiICsgIlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFjaGVja1Jlc3VsdHNGcm9tVW5pY29kZShjYywgY2MuYnl0ZXMsIGNjLmZyb21Vbmljb2RlUmVzdWx0KSkgeworICAgICAgICAgICAgbG9nbG4oImZyb21Vbmljb2RlWyIgKyBjYy5jYXNlTnIgKyAiXSgiICsgY2MuY2hhcnNldAorICAgICAgICAgICAgICAgICAgICArICIpIGNhbGxiYWNrOiIgKyBjYy5jYm9wdCArICIgZmFpbGVkOiArIgorICAgICAgICAgICAgICAgICAgICArICJ3cm9uZyByZXN1bHQgc3RyaW5nIiArICJcbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gdG9Vbmljb2RlIHRlc3Qgd29ya2VyIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIHByaXZhdGUgdm9pZCBUZXN0VG9Vbmljb2RlKERhdGFNYXAgdGVzdGNhc2UsIGludCBjYXNlTnIpIHsKKyAgICAgICAgLy8gY3JlYXRlIENvbnZlcnNpb24gY2FzZSB0byBzdG9yZSB0aGUgdGVzdCBjYXNlIGRhdGEKKyAgICAgICAgQ29udmVyc2lvbkNhc2UgY2MgPSBuZXcgQ29udmVyc2lvbkNhc2UoKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gcmV0cmlldmUgdGVzdCBjYXNlIGRhdGEKKyAgICAgICAgICAgIGNjLmNhc2VOciA9IGNhc2VOcjsKKyAgICAgICAgICAgIGNjLmNoYXJzZXQgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoImNoYXJzZXQiKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldFN0cmluZygpOworICAgICAgICAgICAgY2MuYnl0ZXMgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoImJ5dGVzIikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRCaW5hcnkoKTsKKyAgICAgICAgICAgIGNjLnVuaWNvZGUgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoInVuaWNvZGUiKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldFN0cmluZygpOworICAgICAgICAgICAgY2Mub2Zmc2V0cyA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgib2Zmc2V0cyIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBjYy5maW5hbEZsdXNoID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJmbHVzaCIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0VUludCgpICE9IDA7CisgICAgICAgICAgICBjYy5mYWxsYmFja3MgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoImZhbGxiYWNrcyIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0VUludCgpICE9IDA7CisgICAgICAgICAgICBjYy5vdXRFcnJvckNvZGUgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZQorICAgICAgICAgICAgICAgICAgICAuZ2V0T2JqZWN0KCJlcnJvckNvZGUiKSkuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBjYy5jYm9wdCA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgiY2FsbGJhY2siKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldFN0cmluZygpOworCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiU2tpcHBpbmcgdGVzdDogZXJyb3IgcGFyc2luZyBjb252ZXJzaW9uL3RvVW5pY29kZSB0ZXN0IGNhc2UgIgorICAgICAgICAgICAgICAgICAgICArCisKKyAgICAgICAgICAgICAgICAgICAgY2MuY2FzZU5yKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIC0tLS1mb3IgZGVidWdnaW5nIG9ubHkKKyAgICAgICAgbG9nbG4oIlxuVGVzdFRvVW5pY29kZVsiICsgY2FzZU5yICsgIl0gIiArIGNjLmNoYXJzZXQgKyAiICIpOworICAgICAgICBsb2dsbigiQnl0ZXM6Iik7CisgICAgICAgIHByaW50Ynl0ZXMoY2MuYnl0ZXMsIGNjLmJ5dGVzLmxpbWl0KCkpOworICAgICAgICBsb2dsbigiIik7CisgICAgICAgIGxvZ2xuKCJVbmljb2RlOiAiICsgaGV4KGNjLnVuaWNvZGUpKTsKKyAgICAgICAgbG9nbG4oIkNhbGxiYWNrOiAoIiArIGNjLmNib3B0ICsgIikiKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBjID0gQnl0ZUJ1ZmZlci53cmFwKGNjLmNib3B0LmdldEJ5dGVzKCkpOworICAgICAgICBwcmludGJ5dGVzKGMsIGMubGltaXQoKSk7CisgICAgICAgIGxvZ2xuKCJcbi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIik7CisKKyAgICAgICAgLy8gLS0tLWZvciBkZWJ1Z2dpbmcgb25seQorCisgICAgICAgIC8vIFRPRE86IFRoaXMgdGVzdCBjYXNlIGlzIHNraXBwZWQgZHVlIHRvIGxpbWl0YXRpb24gaW4gamF2YSdzIEFQSSBmb3IKKyAgICAgICAgLy8gZGVjb2RlciByZXBsYWNlbWVudAorICAgICAgICAvLyB7ICJpYm0tMTM2MyIsIDpiaW57IGEyYWVhMiB9LCAiXHUwMGExXHUwMDFhIiwgOmludHZlY3RvcnsgMCwgMiB9LAorICAgICAgICAvLyA6aW50ezF9LCA6aW50ezB9LCAiIiwgIj8iLCA6YmlueyIifSB9CisgICAgICAgIGlmIChjYy5jYXNlTnIgPT0gNjMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0VG9Vbmljb2RlWyIgKyBjYy5jYXNlTnIgKyAiXSAiICsgY2MuY2hhcnNldCk7CisgICAgICAgICAgICBsb2dsbigiU2tpcHBpbmcgdGVzdCBkdWUgdG8gbGltaXRhdGlvbiBpbiBKYXZhIEFQSSAtIGNhbGxiYWNrIHJlcGxhY2VtZW50IHZhbHVlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gcHJvY2VzcyB0aGUgcmV0cmlldmVkIHRlc3QgZGF0YSBjYXNlCisgICAgICAgIGlmIChjYy5vZmZzZXRzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICBjYy5vZmZzZXRzID0gbnVsbDsKKyAgICAgICAgfSBlbHNlIGlmIChjYy5vZmZzZXRzLmxlbmd0aCAhPSBjYy51bmljb2RlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiU2tpcHBpbmcgdGVzdDogdG9Vbmljb2RlWyIgKyBjYy5jYXNlTnIgKyAiXSB1bmljb2RlWyIKKyAgICAgICAgICAgICAgICAgICAgKyBjYy51bmljb2RlLmxlbmd0aCgpICsgIl0gYW5kIG9mZnNldHNbIgorICAgICAgICAgICAgICAgICAgICArIGNjLm9mZnNldHMubGVuZ3RoICsgIl0gbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIGZvciB0aGUgY2FsbGJhY2sgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHVubWFwcGFibGUKKyAgICAgICAgLy8gY2hhcmFjdGVycyBvciBtYWxmb3JtZWQgZXJyb3JzCisgICAgICAgIGlmIChjYy5jYm9wdC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHN3aXRjaCAoKGNjLmNib3B0KS5jaGFyQXQoMCkpIHsKKyAgICAgICAgICAgIGNhc2UgJz8nOiAvLyBDQUxMQkFDS19TVUJTVElUVVRFCisgICAgICAgICAgICAgICAgY2MuY2JFcnJvckFjdGlvbiA9IENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICcwJzogLy8gQ0FMTEJBQ0tfU0tJUAorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBDb2RpbmdFcnJvckFjdGlvbi5JR05PUkU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICcuJzogLy8gQ0FMTEJBQ0tfU1RPUAorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICcmJzogLy8gQ0FMTEJBQ0tfRVNDQVBFCisgICAgICAgICAgICAgICAgY2MuY2JFcnJvckFjdGlvbiA9IENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgY2MuY2JFcnJvckFjdGlvbiA9IG51bGw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY2hlY2sgZm9yIGFueSBvcHRpb25zIGZvciB0aGUgY2FsbGJhY2sgdmFsdWUKKyAgICAgICAgY2Mub3B0aW9uID0gY2MuY2JFcnJvckFjdGlvbiA9PSBudWxsID8gbnVsbCA6IGNjLmNib3B0LnN1YnN0cmluZygxKTsKKyAgICAgICAgaWYgKGNjLm9wdGlvbiA9PSBudWxsKSB7CisgICAgICAgICAgICBjYy5vcHRpb24gPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlRlc3RUb1VuaWNvZGVbIiArIGNjLmNhc2VOciArICJdICIgKyBjYy5jaGFyc2V0KTsKKyAgICAgICAgVG9Vbmljb2RlQ2FzZShjYyk7CisKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgVG9Vbmljb2RlQ2FzZShDb252ZXJzaW9uQ2FzZSBjYykgeworCisgICAgICAgIC8vIGNyZWF0ZSBjb252ZXJ0ZXIgZm9yIGNoYXJzZXQgYW5kIGRlY29kZXIgZm9yIGVhY2ggdGVzdCBjYXNlCisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBwcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IG51bGw7CisgICAgICAgIENoYXJzZXQgY2hhcnNldCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNoYXJzZXQgPSAoQ2hhcnNldCkgcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoY2MuY2hhcnNldCk7CisgICAgICAgICAgICBkZWNvZGVyID0gKENoYXJzZXREZWNvZGVyKSBjaGFyc2V0Lm5ld0RlY29kZXIoKTsKKyAgICAgICAgICAgIGRlY29kZXIub25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKyAgICAgICAgICAgIGRlY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisKKyAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGluZyB0ZXN0OigiICsgY2MuY2hhcnNldAorICAgICAgICAgICAgICAgICAgICArICIpIGR1ZSB0byBJQ1UgQ2hhcnNldCBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0IHRoZSBjYWxsYmFjayBmb3IgdGhlIGRlY29kZXIKKyAgICAgICAgaWYgKGNjLmNiRXJyb3JBY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgZGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KGNjLmNiRXJyb3JBY3Rpb24pOworICAgICAgICAgICAgZGVjb2Rlci5vblVubWFwcGFibGVDaGFyYWN0ZXIoY2MuY2JFcnJvckFjdGlvbik7CisKKyAgICAgICAgICAgIC8vIHNldCB0aGUgb3B0aW9ucyAoaWYgYW55OiBTS0lQX1NUT1BfT05fSUxMRUdBTCkgZm9yIGNhbGxiYWNrCisgICAgICAgICAgICBpZiAoY2Mub3B0aW9uLmVxdWFscygiaSIpKSB7CisgICAgICAgICAgICAgICAgZGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIGNhbGxiYWNrIGFjdGlvbiBpcyByZXBsYWNlLCBhbmQgdGhlcmUgaXMgYSBzdWJjaGFyCisgICAgICAgICAgICAvLyByZXBsYWNlIHRoZSBkZWNvZGVyJ3MgZGVmYXVsdCByZXBsYWNlbWVudCB2YWx1ZQorICAgICAgICAgICAgLy8gaWYgc3Vic3RyaW5nLCBza2lwIHRlc3QgZHVlIHRvIGN1cnJlbnQgYXBpIG5vdCBzdXBwb3J0aW5nCisgICAgICAgICAgICAvLyBzdWJzdHJpbmcgcmVwbGFjZW1lbnQKKyAgICAgICAgICAgIGlmIChjYy5jYkVycm9yQWN0aW9uLmVxdWFscyhDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKSkgeworICAgICAgICAgICAgICAgIGlmIChjYy5jYm9wdC5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNjLmNib3B0LmNoYXJBdCgxKSA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGluZyB0ZXN0IGR1ZSB0byBsaW1pdGF0aW9uIGluIEphdmEgQVBJIC0gc3Vic3RpdHV0aW9uIHN0cmluZyBub3Qgc3VwcG9ydGVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIC8vIHJlYWQgTlVMLXNlcGFyYXRlZCBzdWJjaGFyIGZpcnN0LCBpZiBhbnkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIHN1YmNoYXIgZnJvbSBMYXRpbi0xIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IGFmdGVyIHRoZSBOVUwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYy5jYm9wdC5jaGFyQXQoMSkgPT0gMHgwMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmNib3B0ID0gY2MuY2JvcHQuc3Vic3RyaW5nKDIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2Rlci5yZXBsYWNlV2l0aChjYy5jYm9wdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nIHRlc3QgZHVlIHRvIGxpbWl0YXRpb24gaW4gSmF2YSBBUEkgLSBzdWJzdGl0dXRpb24gY2hhcmFjdGVyIHNlcXVlbmNlIHNpemUgZXJyb3IiKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vICAgICAgQ2hlY2sgdGhlIHN0ZXAgdG8gdW5pY29kZSAgICAKKyAgICAgICAgYm9vbGVhbiBvazsKKyAgICAgICAgaW50IHJlc3VsdExlbmd0aDsKKworICAgICAgICBTdHJpbmcgc3RlcHNbXVtdID0geyB7ICIwIiwgImJ1bGsiIH0sIC8vIG11c3QgYmUgZmlyc3QgZm9yIG9mZnNldHMgdG8gYmUgY2hlY2tlZAorICAgICAgICAgICAgICAgIHsgIjEiLCAic3RlcD0xIiB9LCB7ICIzIiwgInN0ZXA9MyIgfSwgeyAiNyIsICJzdGVwPTciIH0gfTsKKyAgICAgICAgLyogVE9ETzogY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgdGVzdCBzdGVwcywgZ2V0TmV4dCBBUEkgaXMgbm90IHN1cHBvcnRlZCBmb3Igbm93ICAKKyAgICAgICAgIHsgIi0xIiwgImdldE5leHQiIH0sCisgICAgICAgICB7ICItMiIsICJ0b1UoYnVsaykrZ2V0TmV4dCIgfSwKKyAgICAgICAgIHsgIi0zIiwgImdldE5leHQrdG9VKGJ1bGspIiB9LAorICAgICAgICAgeyAiLTQiLCAidG9VKDEpK2dldE5leHQiIH0sCisgICAgICAgICB7ICItNSIsICJnZXROZXh0K3RvVSgxKSIgfSwKKyAgICAgICAgIHsgIi0xMiIsICJ0b1UoNSkrZ2V0TmV4dCIgfSwKKyAgICAgICAgIHsgIi0xMyIsICJnZXROZXh0K3RvVSg1KSIgfX07Ki8KKworICAgICAgICBvayA9IHRydWU7CisgICAgICAgIGludCBzdGVwOworICAgICAgICAvLyB0ZXN0aW5nIGJ5IHN0ZXBzIHVzaW5nIHRoZSBDb2RlclJlc3VsdCBjciA9IGNoYXJzZXQuZGVjb2RlcihpbixvdXQsZmx1c2gpIGFwaQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ZXBzLmxlbmd0aCAmJiBvazsgKytpKSB7CisgICAgICAgICAgICBzdGVwID0gSW50ZWdlci5wYXJzZUludChzdGVwc1tpXVswXSk7CisKKyAgICAgICAgICAgIGlmIChzdGVwIDwgMCAmJiAhY2MuZmluYWxGbHVzaCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIlRlc3Rpbmcgc3RlcDpbIiArIHN0ZXAgKyAiXSIpOworICAgICAgICAgICAgcmVzdWx0TGVuZ3RoID0gc3RlcFRvVW5pY29kZShjYywgZGVjb2Rlciwgc3RlcCk7CisgICAgICAgICAgICBvayA9IGNoZWNrVG9Vbmljb2RlKGNjLCByZXN1bHRMZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgLy90ZXN0aW5nIHRoZSBqYXZhJ3Mgb3V0ID0gY2hhcnNldC5kZWNvZGVyKGluKSBhcGkKKyAgICAgICAgd2hpbGUgKG9rICYmIGNjLmZpbmFsRmx1c2gpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGphdmEgY2hhcnNldC5kZWNvZGVyKGluKToiKTsKKyAgICAgICAgICAgIGNjLnRvVW5pY29kZVJlc3VsdCA9IG51bGw7CisgICAgICAgICAgICBDaGFyQnVmZmVyIG91dCA9IG51bGw7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgb3V0ID0gZGVjb2Rlci5kZWNvZGUoQnl0ZUJ1ZmZlci53cmFwKGNjLmJ5dGVzLmFycmF5KCkpKTsKKyAgICAgICAgICAgICAgICBvdXQucG9zaXRpb24ob3V0LmxpbWl0KCkpOworICAgICAgICAgICAgICAgIGlmIChvdXQubGltaXQoKSA8IGNjLnVuaWNvZGUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IG91dC5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGVtcCA9IG91dC5hcnJheSgpOworICAgICAgICAgICAgICAgICAgICBvdXQgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKGNjLmJ5dGVzLmxpbWl0KCkpOworICAgICAgICAgICAgICAgICAgICBvdXQucHV0KHRlbXApOworICAgICAgICAgICAgICAgICAgICBvdXQucG9zaXRpb24ocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBkZWNvZGVyLmZsdXNoKG91dCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPdmVyZmxvdyBlcnJvciB3aXRoIGZsdXNoaW5nIGRlY29kZXJpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNjLnRvVW5pY29kZVJlc3VsdCA9IG91dDsKKworICAgICAgICAgICAgICAgIG9rID0gY2hlY2tUb1VuaWNvZGUoY2MsIG91dC5saW1pdCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy9jaGVjayB0aGUgZXJyb3IgY29kZSB0byBzZWUgaWYgaXQgbWF0Y2hlcyBjYy5lcnJvckNvZGUKKyAgICAgICAgICAgICAgICBsb2dsbigiRGVjb2RlciByZXR1cm5lZCBhbiBlcnJvciBjb2RlIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yQ29kZSBleHBlY3RlZCBpczogIiArIGNjLm91dEVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIFJlc3VsdCBpczogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKworCisgICAgCisgICAgcHJpdmF0ZSBpbnQgc3RlcFRvVW5pY29kZShDb252ZXJzaW9uQ2FzZSBjYywgQ2hhcnNldERlY29kZXIgZGVjb2RlciwKKyAgICAgICAgICAgIGludCBzdGVwKQorCisgICAgeworICAgICAgICBCeXRlQnVmZmVyIHNvdXJjZTsKKyAgICAgICAgQ2hhckJ1ZmZlciB0YXJnZXQ7CisgICAgICAgIGJvb2xlYW4gZmx1c2ggPSBmYWxzZTsKKyAgICAgICAgaW50IHNvdXJjZUxlbjsKKyAgICAgICAgc291cmNlID0gY2MuYnl0ZXM7CisgICAgICAgIHNvdXJjZUxlbiA9IGNjLmJ5dGVzLmxpbWl0KCk7CisgICAgICAgIHNvdXJjZS5wb3NpdGlvbigwKTsKKyAgICAgICAgdGFyZ2V0ID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZShjYy51bmljb2RlLmxlbmd0aCgpICsgNCk7CisgICAgICAgIHRhcmdldC5wb3NpdGlvbigwKTsKKyAgICAgICAgY2MudG9Vbmljb2RlUmVzdWx0ID0gbnVsbDsKKyAgICAgICAgZGVjb2Rlci5yZXNldCgpOworCisgICAgICAgIGlmIChzdGVwID49IDApIHsKKworICAgICAgICAgICAgaW50IGlTdGVwID0gc3RlcDsKKyAgICAgICAgICAgIGludCBvU3RlcCA9IHN0ZXA7CisKKyAgICAgICAgICAgIGZvciAoOzspIHsKKworICAgICAgICAgICAgICAgIGlmIChzdGVwICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmxpbWl0KChpU3RlcCA8PSBzb3VyY2VMZW4pID8gaVN0ZXAgOiBzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQoKG9TdGVwIDw9IHRhcmdldC5jYXBhY2l0eSgpKSA/IG9TdGVwIDogdGFyZ2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhcGFjaXR5KCkpOworICAgICAgICAgICAgICAgICAgICBmbHVzaCA9IChjYy5maW5hbEZsdXNoICYmIHNvdXJjZS5saW1pdCgpID09IHNvdXJjZUxlbik7CisKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvL2J1bGsgbW9kZQorICAgICAgICAgICAgICAgICAgICBzb3VyY2UubGltaXQoc291cmNlTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KHRhcmdldC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmx1c2ggPSBjYy5maW5hbEZsdXNoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBjb252ZXJ0IAorICAgICAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlLmhhc1JlbWFpbmluZygpKSB7CisKKyAgICAgICAgICAgICAgICAgICAgY3IgPSBkZWNvZGVyLmRlY29kZShzb3VyY2UsIHRhcmdldCwgZmx1c2gpOworICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBwb2ludGVycyBhbmQgZXJyb3JzCisgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwYXJ0aWFsIHRhcmdldCBpcyBmaWxsZWQsIHNldCBhIG5ldyBsaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvU3RlcCA9ICh0YXJnZXQucG9zaXRpb24oKSArIHN0ZXApOworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KChvU3RlcCA8IHRhcmdldC5jYXBhY2l0eSgpKSA/IG9TdGVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGFyZ2V0LmNhcGFjaXR5KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5saW1pdCgpID4gdGFyZ2V0LmNhcGFjaXR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RhcmdldCBoYXMgcmVhY2hlZCBpdHMgbGltaXQsIGFuIGVycm9yIG9jY3VycmVkIG9yIHRlc3QgY2FzZSBoYXMgYW4gZXJyb3IgY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY2hlY2sgZXJyb3IgY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJVbkV4cGVjdGVkIGVycm9yOiBUYXJnZXQgQnVmZmVyIGlzIGxhcmdlciB0aGFuIGNhcGFjaXR5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjci5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vY2hlY2sgdGhlIGVycm9yIGNvZGUgdG8gc2VlIGlmIGl0IG1hdGNoZXMgY2MuZXJyb3JDb2RlCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRGVjb2RlciByZXR1cm5lZCBhbiBlcnJvciBjb2RlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3JDb2RlIGV4cGVjdGVkIGlzOiAiICsgY2Mub3V0RXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBSZXN1bHQgaXM6ICIgKyBjci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxpbWl0KCkgPT0gc291cmNlTGVuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gZGVjb2Rlci5kZWNvZGUoc291cmNlLCB0YXJnZXQsIHRydWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvL2R1ZSB0byBsaW1pdGF0aW9uIG9mIHRoZSBBUEkgd2UgbmVlZCB0byBjaGVjayBmb3IgdGFyZ2V0IGxpbWl0IGZvciBleHBlY3RlZCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQubGltaXQoKSAhPSBjYy51bmljb2RlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KGNjLnVuaWNvZGUubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gZGVjb2Rlci5mbHVzaCh0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZsdXNoIG9wZXJhdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpU3RlcCArPSBzdGVwOworICAgICAgICAgICAgICAgIG9TdGVwICs9IHN0ZXA7CisKKyAgICAgICAgICAgIH0KKworICAgICAgICB9Ly8gaWYoc3RlcCA9PTApCisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBlbHNlIC8qIHN0ZXA8MCAqL3sKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzdGVwPT0tMTogY2FsbCBvbmx5IHVjbnZfZ2V0TmV4dFVDaGFyKCkKKyAgICAgICAgICAgICAqIG90aGVyd2lzZSBhbHRlcm5hdGUgYmV0d2VlbiB1Y252X3RvVW5pY29kZSgpIGFuZCB1Y252X2dldE5leHRVQ2hhcigpCisgICAgICAgICAgICAgKiAgIGlmIHN0ZXA9PS0yIG9yIC0zLCB0aGVuIGdpdmUgdWNudl90b1VuaWNvZGUoKSB0aGUgd2hvbGUgcmVtYWluaW5nIGlucHV0LAorICAgICAgICAgICAgICogICBlbHNlIGdpdmUgaXQgYXQgbW9zdCAoLXN0ZXAtMikvMiBieXRlcworICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAvLyBjb252ZXJ0CisgICAgICAgICAgICAgICAgaWYgKChzdGVwICYgMSkgIT0gMCAvKiBvZGQ6IC0xLCAtMywgLTUsIC4uLiAqLykgeworCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5saW1pdCh0YXJnZXQucG9zaXRpb24oKSA8IHRhcmdldC5jYXBhY2l0eSgpID8gdGFyZ2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBvc2l0aW9uKCkgKyAxIDogdGFyZ2V0LmNhcGFjaXR5KCkpOworCisgICAgICAgICAgICAgICAgICAgIC8vIGRlY29kZSBiZWhhdmlvciBpcyByZXR1cm4gdG8gb3V0cHV0IHRhcmdldCAxIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IG51bGw7CisKKyAgICAgICAgICAgICAgICAgICAgLy9zaW1pbGFyIHRvIGdldE5leHRVQ2hhcigpICwgaW5wdXQgaXMgdGhlIHdob2xlIHN0cmluZywgd2hpbGUgb3V0cHV0cyBvbmx5IDEgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdChzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGFyZ2V0LnBvc2l0aW9uKCkgIT0gdGFyZ2V0LmxpbWl0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzb3VyY2UuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gZGVjb2Rlci5kZWNvZGUoc291cmNlLCB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdCgpID09IHNvdXJjZUxlbik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc092ZXJmbG93KCkpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQubGltaXQoKSA+PSB0YXJnZXQuY2FwYWNpdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXQgaGFzIHJlYWNoZWQgaXRzIGxpbWl0LCBhbiBlcnJvciBvY2N1cnJlZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlVuRXhwZWN0ZWQgZXJyb3I6IFRhcmdldCBCdWZmZXIgaXMgbGFyZ2VyIHRoYW4gY2FwYWNpdHkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8xIGNoYXJhY3RlciBoYXMgYmVlbiBjb25zdW1lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQodGFyZ2V0LnBvc2l0aW9uKCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjci5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRGVjb2RlciByZXR1cm5lZCBhbiBlcnJvciBjb2RlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yQ29kZSBleHBlY3RlZCBpczogIiArIGNjLm91dEVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIFJlc3VsdCBpczogIiArIGNyLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MudG9Vbmljb2RlUmVzdWx0ID0gdGFyZ2V0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGNoYXJhY3RlciBoYXMgYmVlbiBjb25zdW1lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQubGltaXQoKSA9PSB0YXJnZXQucG9zaXRpb24oKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQodGFyZ2V0LnBvc2l0aW9uKCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5wb3NpdGlvbigpID09IHNvdXJjZUxlbikgeworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkdWUgdG8gbGltaXRhdGlvbiBvZiB0aGUgQVBJIHdlIG5lZWQgdG8gY2hlY2sKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciB0YXJnZXQgbGltaXQgZm9yIGV4cGVjdGVkCisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IGRlY29kZXIuZGVjb2RlKHNvdXJjZSwgdGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQucG9zaXRpb24oKSAhPSBjYy51bmljb2RlLmxlbmd0aCgpKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQoY2MudW5pY29kZS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBkZWNvZGVyLmZsdXNoKHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNyLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmx1c2ggb3BlcmF0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIGFsdGVybmF0ZSBiZXR3ZWVuIC1uLTEgYW5kIC1uIGJ1dCBsZWF2ZSAtMSBhbG9uZQorICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcCA8IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK3N0ZXA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2Ugey8qIHN0ZXAgaXMgZXZlbiAqLworICAgICAgICAgICAgICAgICAgICAvLyBhbGxvdyBvbmx5IG9uZSBVQ2hhciBvdXRwdXQKKworICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQodGFyZ2V0LnBvc2l0aW9uKCkgPCB0YXJnZXQuY2FwYWNpdHkoKSA/IHRhcmdldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wb3NpdGlvbigpICsgMSA6IHRhcmdldC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0ZXAgPT0gLTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdChzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmxpbWl0KHNvdXJjZS5wb3NpdGlvbigpICsgKC1zdGVwIC0gMikgLyAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubGltaXQoKSA+IHNvdXJjZUxlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdChzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gZGVjb2Rlci5kZWNvZGUoc291cmNlLCB0YXJnZXQsIHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5saW1pdCgpID09IHNvdXJjZUxlbik7CisgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIHBvaW50ZXJzIGFuZCBlcnJvcnMgCisgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uZSBjaGFyYWN0ZXIgaGFzIGJlZW4gY29uc3VtZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQubGltaXQoKSA+PSB0YXJnZXQuY2FwYWNpdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRhcmdldCBoYXMgcmVhY2hlZCBpdHMgbGltaXQsIGFuIGVycm9yIG9jY3VycmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlVuZXhwZWN0ZWQgZXJyb3I6IFRhcmdldCBCdWZmZXIgaXMgbGFyZ2VyIHRoYW4gY2FwYWNpdHkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjci5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJEZWNvZGVyIHJldHVybmVkIGFuIGVycm9yIGNvZGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvckNvZGUgZXhwZWN0ZWQgaXM6ICIgKyBjYy5vdXRFcnJvckNvZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIFJlc3VsdCBpczogIiArIGNyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAtLXN0ZXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGNjLnRvVW5pY29kZVJlc3VsdCA9IHRhcmdldDsKKyAgICAgICAgcmV0dXJuIHRhcmdldC5wb3NpdGlvbigpOworICAgIH0KKworCisgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tUb1VuaWNvZGUoQ29udmVyc2lvbkNhc2UgY2MsIGludCByZXN1bHRMZW5ndGgpIHsKKworICAgICAgICAvLyBjaGVjayBldmVyeXRoaW5nIHRoYXQgbWlnaHQgaGF2ZSBnb25lIHdyb25nCisgICAgICAgIGlmIChjYy51bmljb2RlLmxlbmd0aCgpICE9IHJlc3VsdExlbmd0aCkgeworICAgICAgICAgICAgbG9nbG4oInRvVW5pY29kZVsiICsgY2MuY2FzZU5yICsgIl0oIiArIGNjLmNoYXJzZXQgKyAiKSBjYWxsYmFjazoiCisgICAgICAgICAgICAgICAgICAgICsgY2MuY2JvcHQgKyAiIGZhaWxlZDogKyIgKyAid3JvbmcgcmVzdWx0IGxlbmd0aCIgKyAiXG4iKTsKKyAgICAgICAgICAgIGNoZWNrUmVzdWx0c1RvVW5pY29kZShjYywgY2MudW5pY29kZSwgY2MudG9Vbmljb2RlUmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWNoZWNrUmVzdWx0c1RvVW5pY29kZShjYywgY2MudW5pY29kZSwgY2MudG9Vbmljb2RlUmVzdWx0KSkgeworICAgICAgICAgICAgbG9nbG4oInRvVW5pY29kZVsiICsgY2MuY2FzZU5yICsgIl0oIiArIGNjLmNoYXJzZXQgKyAiKSBjYWxsYmFjazoiCisgICAgICAgICAgICAgICAgICAgICsgY2MuY2JvcHQgKyAiIGZhaWxlZDogKyIgKyAid3JvbmcgcmVzdWx0IHN0cmluZyIgKyAiXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIFRlc3RHZXRVbmljb2RlU2V0KERhdGFNYXAgdGVzdGNhc2UpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogY2hhcnNldCAtIHdpbGwgYmUgb3BlbmVkLCBhbmQgdWNudl9nZXRVbmljb2RlU2V0KCkgY2FsbGVkIG9uIGl0IC8vCisgICAgICAgICAqIG1hcCAtIHNldCBvZiBjb2RlIHBvaW50cyBhbmQgc3RyaW5ncyB0aGF0IG11c3QgYmUgaW4gdGhlIHJldHVybmVkIHNldCAvLworICAgICAgICAgKiBtYXBub3QgLSBzZXQgb2YgY29kZSBwb2ludHMgYW5kIHN0cmluZ3MgdGhhdCBtdXN0ICpub3QqIGJlIGluIHRoZSAvLworICAgICAgICAgKiByZXR1cm5lZCBzZXQgLy8gd2hpY2ggLSBudW1lcmljIFVDb252ZXJ0ZXJVbmljb2RlU2V0IHZhbHVlIEhlYWRlcnMgeworICAgICAgICAgKiAiY2hhcnNldCIsICJtYXAiLCAibWFwbm90IiwgIndoaWNoIiB9CisgICAgICAgICAqLworICAgICAgICBDb252ZXJzaW9uQ2FzZSBjYyA9IG5ldyBDb252ZXJzaW9uQ2FzZSgpOworICAgICAgICAvLyByZXRyaWV2ZSB0ZXN0IGNhc2UgZGF0YQorICAgICAgICBjYy5jaGFyc2V0ID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJjaGFyc2V0IikpCisgICAgICAgICAgICAgICAgLmdldFN0cmluZygpOworICAgICAgICBjYy5tYXAgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoIm1hcCIpKS5nZXRTdHJpbmcoKTsKKyAgICAgICAgY2MubWFwbm90ID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJtYXBub3QiKSkKKyAgICAgICAgICAgICAgICAuZ2V0U3RyaW5nKCk7CisgICAgICAgIGNjLndoaWNoID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJ3aGljaCIpKS5nZXRVSW50KCk7CisKKyAgICAgICAgLy8gY3JlYXRlIGNoYXJzZXQgYW5kIGVuY29kZXIgZm9yIGVhY2ggdGVzdCBjYXNlCisgICAgICAgIGxvZ2xuKCJUZXN0IG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lIik7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZvbGxvd3MgdWNudi5jIG1ldGhvZCB1Y252X2RldGVjdFVuaWNvZGVTaWduYXR1cmUoKSB0byBkZXRlY3QgdGhlCisgICAgICogc3RhcnQgb2YgdGhlIHN0cmVhbSBmb3IgZXhhbXBsZSBVK0ZFRkYgKHRoZSBVbmljb2RlIEJPTS9zaWduYXR1cmUKKyAgICAgKiBjaGFyYWN0ZXIpIHRoYXQgY2FuIGJlIGlnbm9yZWQuCisgICAgICogCisgICAgICogRGV0ZWN0cyBVbmljb2RlIHNpZ25hdHVyZSBieXRlIHNlcXVlbmNlcyBhdCB0aGUgc3RhcnQgb2YgdGhlIGJ5dGUgc3RyZWFtCisgICAgICogYW5kIHJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSBCT00gb2YgdGhlIGluZGljYXRlZCBVbmljb2RlIGNoYXJzZXQuCisgICAgICogMCBpcyByZXR1cm5lZCB3aGVuIG5vIFVuaWNvZGUgc2lnbmF0dXJlIGlzIHJlY29nbml6ZWQuCisgICAgICogCisgICAgICovCisKKyAgICBwcml2YXRlIFN0cmluZyBkZXRlY3RVbmljb2RlU2lnbmF0dXJlKEJ5dGVCdWZmZXIgc291cmNlKSB7CisgICAgICAgIGludCBzaWduYXR1cmVMZW5ndGggPSAwOyAvLyBudW1iZXIgb2YgYnl0ZXMgb2YgdGhlIHNpZ25hdHVyZQorICAgICAgICBmaW5hbCBpbnQgU0lHX01BWF9MRU4gPSA1OworICAgICAgICBTdHJpbmcgc2lnVW5pQ2hhcnNldCA9IG51bGw7IC8vIHN0YXRlcyB3aGF0IHVuaWNvZGUgY2hhcnNldCBpcyB0aGUgQk9NCisgICAgICAgIGludCBpID0gMDsKKworICAgICAgICAvKgorICAgICAgICAgKiBpbml0aWFsIDB4YTUgYnl0ZXM6IG1ha2Ugc3VyZSB0aGF0IGlmIHdlIHJlYWQgPFNJR19NQVhfTEVOIGJ5dGVzIHdlCisgICAgICAgICAqIGRvbid0IG1pc2RldGVjdCBzb21ldGhpbmcKKyAgICAgICAgICovCisgICAgICAgIGJ5dGUgc3RhcnRbXSA9IHsgKGJ5dGUpIDB4YTUsIChieXRlKSAweGE1LCAoYnl0ZSkgMHhhNSwgKGJ5dGUpIDB4YTUsCisgICAgICAgICAgICAgICAgKGJ5dGUpIDB4YTUgfTsKKworICAgICAgICB3aGlsZSAoaSA8IHNvdXJjZS5yZW1haW5pbmcoKSAmJiBpIDwgU0lHX01BWF9MRU4pIHsKKyAgICAgICAgICAgIHN0YXJ0W2ldID0gc291cmNlLmdldChpKTsKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydFswXSA9PSAoYnl0ZSkgMHhGRSAmJiBzdGFydFsxXSA9PSAoYnl0ZSkgMHhGRikgeworICAgICAgICAgICAgc2lnbmF0dXJlTGVuZ3RoID0gMjsKKyAgICAgICAgICAgIHNpZ1VuaUNoYXJzZXQgPSAiVVRGLTE2QkUiOworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgfSBlbHNlIGlmIChzdGFydFswXSA9PSAoYnl0ZSkgMHhGRiAmJiBzdGFydFsxXSA9PSAoYnl0ZSkgMHhGRSkgeworICAgICAgICAgICAgaWYgKHN0YXJ0WzJdID09IChieXRlKSAweDAwICYmIHN0YXJ0WzNdID09IChieXRlKSAweDAwKSB7CisgICAgICAgICAgICAgICAgc2lnbmF0dXJlTGVuZ3RoID0gNDsKKyAgICAgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlVURi0zMkxFIjsKKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2lnbmF0dXJlTGVuZ3RoID0gMjsKKyAgICAgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlVURi0xNkxFIjsKKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGFydFswXSA9PSAoYnl0ZSkgMHhFRiAmJiBzdGFydFsxXSA9PSAoYnl0ZSkgMHhCQgorICAgICAgICAgICAgICAgICYmIHN0YXJ0WzJdID09IChieXRlKSAweEJGKSB7CisgICAgICAgICAgICBzaWduYXR1cmVMZW5ndGggPSAzOworICAgICAgICAgICAgc2lnVW5pQ2hhcnNldCA9ICJVVEYtOCI7CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBzaWdVbmlDaGFyc2V0OworICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0WzBdID09IChieXRlKSAweDAwICYmIHN0YXJ0WzFdID09IChieXRlKSAweDAwCisgICAgICAgICAgICAgICAgJiYgc3RhcnRbMl0gPT0gKGJ5dGUpIDB4RkUgJiYgc3RhcnRbM10gPT0gKGJ5dGUpIDB4RkYpIHsKKyAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDQ7CisgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlVURi0zMkJFIjsKKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzaWduYXR1cmVMZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIHNpZ1VuaUNoYXJzZXQ7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRbMF0gPT0gKGJ5dGUpIDB4MEUgJiYgc3RhcnRbMV0gPT0gKGJ5dGUpIDB4RkUKKyAgICAgICAgICAgICAgICAmJiBzdGFydFsyXSA9PSAoYnl0ZSkgMHhGRikgeworICAgICAgICAgICAgc2lnbmF0dXJlTGVuZ3RoID0gMzsKKyAgICAgICAgICAgIHNpZ1VuaUNoYXJzZXQgPSAiU0NTVSI7CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBzaWdVbmlDaGFyc2V0OworICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0WzBdID09IChieXRlKSAweEZCICYmIHN0YXJ0WzFdID09IChieXRlKSAweEVFCisgICAgICAgICAgICAgICAgJiYgc3RhcnRbMl0gPT0gKGJ5dGUpIDB4MjgpIHsKKyAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDM7CisgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIkJPQ1UtMSI7CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBzaWdVbmlDaGFyc2V0OworICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0WzBdID09IChieXRlKSAweDJCICYmIHN0YXJ0WzFdID09IChieXRlKSAweDJGCisgICAgICAgICAgICAgICAgJiYgc3RhcnRbMl0gPT0gKGJ5dGUpIDB4NzYpIHsKKworICAgICAgICAgICAgaWYgKHN0YXJ0WzNdID09IChieXRlKSAweDM4ICYmIHN0YXJ0WzRdID09IChieXRlKSAweDJEKSB7CisgICAgICAgICAgICAgICAgc2lnbmF0dXJlTGVuZ3RoID0gNTsKKyAgICAgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlVURi03IjsKKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRbM10gPT0gKGJ5dGUpIDB4MzggfHwgc3RhcnRbM10gPT0gKGJ5dGUpIDB4MzkKKyAgICAgICAgICAgICAgICAgICAgfHwgc3RhcnRbM10gPT0gKGJ5dGUpIDB4MkIgfHwgc3RhcnRbM10gPT0gKGJ5dGUpIDB4MkYpIHsKKyAgICAgICAgICAgICAgICBzaWduYXR1cmVMZW5ndGggPSA0OworICAgICAgICAgICAgICAgIHNpZ1VuaUNoYXJzZXQgPSAiVVRGLTciOworICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzaWduYXR1cmVMZW5ndGgpOworICAgICAgICAgICAgICAgIHJldHVybiBzaWdVbmlDaGFyc2V0OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0WzBdID09IChieXRlKSAweEREICYmIHN0YXJ0WzJdID09IChieXRlKSAweDczCisgICAgICAgICAgICAgICAgJiYgc3RhcnRbMl0gPT0gKGJ5dGUpIDB4NjYgJiYgc3RhcnRbM10gPT0gKGJ5dGUpIDB4NzMpIHsKKyAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDQ7CisgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlVURi1FQkNESUMiOworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIG5vIGtub3duIFVuaWNvZGUgc2lnbmF0dXJlIGJ5dGUgc2VxdWVuY2UgcmVjb2duaXplZCAqLworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICB2b2lkIHByaW50Ynl0ZXMoQnl0ZUJ1ZmZlciBidWYsIGludCBwb3MpIHsKKyAgICAgICAgaW50IGN1ciA9IGJ1Zi5wb3NpdGlvbigpOworICAgICAgICBsb2coIiAoIiArIHBvcyArICIpPT1bIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcG9zOyBpKyspIHsKKyAgICAgICAgICAgIGxvZygiKCIgKyBpICsgIikiICsgaGV4KGJ1Zi5nZXQoaSkgJiAweGZmKSArICIgIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nKCJdIik7CisgICAgICAgIGJ1Zi5wb3NpdGlvbihjdXIpOworICAgIH0KKworICAgIHZvaWQgcHJpbnRjaGFyKENoYXJCdWZmZXIgYnVmLCBpbnQgcG9zKSB7CisgICAgICAgIGludCBjdXIgPSBidWYucG9zaXRpb24oKTsKKyAgICAgICAgbG9nKCIgKCIgKyBwb3MgKyAiKT09WyIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBvczsgaSsrKSB7CisgICAgICAgICAgICBsb2coIigiICsgaSArICIpIiArIGhleChidWYuZ2V0KGkpKSArICIgIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nKCJdIik7CisgICAgICAgIGJ1Zi5wb3NpdGlvbihjdXIpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja1Jlc3VsdHNGcm9tVW5pY29kZShDb252ZXJzaW9uQ2FzZSBjYywKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgc291cmNlLAorCisgICAgICAgICAgICBCeXRlQnVmZmVyIHRhcmdldCkgeworCisgICAgICAgIGludCBsZW4gPSB0YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgdGFyZ2V0LmxpbWl0KGxlbik7IC8vYWRkZWQgdG8gc3RvcCB3aGVyZSBkYXRhIGVuZHMKKyAgICAgICAgc291cmNlLnJld2luZCgpOworICAgICAgICB0YXJnZXQucmV3aW5kKCk7CisKKyAgICAgICAgLy8gcmVtb3ZlIGFueSBCT00gc2lnbmF0dXJlIGJlZm9yZSBjaGVja2luZworICAgICAgICAvKiBTdHJpbmcgQk9NID0qL2RldGVjdFVuaWNvZGVTaWduYXR1cmUodGFyZ2V0KTsKKworICAgICAgICBsZW4gPSBsZW4gLSB0YXJnZXQucG9zaXRpb24oKTsKKworICAgICAgICBpZiAobGVuICE9IHNvdXJjZS5yZW1haW5pbmcoKSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkOiBvdXRwdXQgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWRcbiIpOworICAgICAgICAgICAgbG9nbG4oIlsiICsgY2MuY2FzZU5yICsgIl06IiArIGNjLmNoYXJzZXQgKyAiXG5vdXRwdXQ9Iik7CisgICAgICAgICAgICBwcmludGJ5dGVzKHRhcmdldCwgbGVuKTsKKyAgICAgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBzb3VyY2UucmV3aW5kKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLnJlbWFpbmluZygpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXQuZ2V0KCkgIT0gc291cmNlLmdldCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkOiBvdXRwdXQgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWRcbiIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJbIiArIGNjLmNhc2VOciArICJdOiIgKyBjYy5jaGFyc2V0ICsgIlxub3V0cHV0PSIpOworICAgICAgICAgICAgICAgIHByaW50Ynl0ZXModGFyZ2V0LCBsZW4pOworICAgICAgICAgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIlsiICsgY2MuY2FzZU5yICsgIl06IiArIGNjLmNoYXJzZXQpOworICAgICAgICBsb2coIm91dHB1dD0iKTsKKyAgICAgICAgcHJpbnRieXRlcyh0YXJnZXQsIGxlbik7CisgICAgICAgIGxvZ2xuKCJcblBhc3NlZFxuIik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja1Jlc3VsdHNUb1VuaWNvZGUoQ29udmVyc2lvbkNhc2UgY2MsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICBDaGFyQnVmZmVyIHRhcmdldCkgeworCisgICAgICAgIGludCBsZW4gPSB0YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgdGFyZ2V0LnJld2luZCgpOworCisgICAgICAgIC8vIHRlc3QgdG8gc2VlIGlmIHRoZSBjb252ZXJzaW9uIG1hdGNoZXMgYWN0dWFsIHJlc3VsdHMKKyAgICAgICAgaWYgKGxlbiAhPSBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZDogb3V0cHV0IGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkXG4iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGNjLmNhc2VOciArICJdOiIgKyBjYy5jaGFyc2V0ICsgIlxub3V0cHV0PSIpOworICAgICAgICAgICAgcHJpbnRjaGFyKHRhcmdldCwgbGVuKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIShoZXgodGFyZ2V0LmdldChpKSkuZXF1YWxzKGhleChzb3VyY2UuY2hhckF0KGkpKSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkOiBvdXRwdXQgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWRcbiIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJbIiArIGNjLmNhc2VOciArICJdOiIgKyBjYy5jaGFyc2V0ICsgIlxub3V0cHV0PSIpOworICAgICAgICAgICAgICAgIHByaW50Y2hhcih0YXJnZXQsIGxlbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJbIiArIGNjLmNhc2VOciArICJdOiIgKyBjYy5jaGFyc2V0KTsKKyAgICAgICAgbG9nKCJvdXRwdXQ9Iik7CisgICAgICAgIHByaW50Y2hhcih0YXJnZXQsIGxlbik7CisgICAgICAgIGxvZ2xuKCJcblBhc3NlZFxuIik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgYnl0ZVtdIHRvQnl0ZUFycmF5KFN0cmluZyBzdHIpIHsKKyAgICAgICAgYnl0ZVtdIHJldCA9IG5ldyBieXRlW3N0ci5sZW5ndGgoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmV0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc3RyLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjaCA8PSAweEZGKSB7CisgICAgICAgICAgICAgICAgcmV0W2ldID0gKGJ5dGUpIGNoOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCIgYnl0ZSB2YWx1ZSBvdXQgb2YgcmFuZ2U6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0ZGV0L0NoYXJzZXREZXRlY3Rpb25UZXN0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc2MDEyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0ZGV0L0NoYXJzZXREZXRlY3Rpb25UZXN0cy54bWwKQEAgLTAsMCArMSw1NTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzwhLS0gQ29weXJpZ2h0IChjKSAyMDA1LTIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQgLS0+Cis8IS0tIFNlZSBpbmRpdmlkdWFsIHRlc3QgY2FzZXMgZm9yIHRoZWlyIHNwZWNpZmljIGNvcHlyaWdodC4gLS0+CisKKzxjaGFyc2V0LWRldGVjdGlvbi10ZXN0cz4KKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1hciIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS02L2FyIHdpbmRvd3MtMTI1Ni9hciI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICDYo9mI2LHZiNio2KcsINio2LHZhdis2YrYp9iqINin2YTYrdin2LPZiNioICsg2KfZhtiq2LHZhtmK2KogOgorICAgINiq2LXYqNitINi52KfZhNmF2YrYpyDZhdi5INmK2YjZhtmK2YPZiNivCisgICAgSVVDMTAKKyAgICDYqtiz2KzZkdmEINin2YTYotmGINmE2K3YttmI2LEg2KfZhNmF2KTYqtmF2LEg2KfZhNiv2YjZhNmKINin2YTYudin2LTYsSDZhNmK2YjZhtmK2YPZiNivLCDYp9mE2LDZiiDYs9mK2LnZgtivINmB2YogMTAtMTIg2KLYsNin2LEgMTk5NyDYqNmF2K/ZitmG2Kkg2YXYp9mK2YbYqtizLAorICAgINij2YTZhdin2YbZitinLiDZiNiz2YrYrNmF2Lkg2KfZhNmF2KTYqtmF2LEg2KjZitmGINiu2KjYsdin2KEg2YXZhiDZg9in2YHYqSDZgti32KfYudin2Kog2KfZhNi12YbYp9i52Kkg2LnZhNmJINin2YTYtNio2YPYqSDYp9mE2LnYp9mE2YXZitipINin2YbYqtix2YbZitiqINmI2YrZiNmG2YrZg9mI2K8sINit2YrYqyDYs9iq2KrZhSwKKyAgICDYudmE2Ykg2KfZhNi12LnZitiv2YrZhiDYp9mE2K/ZiNmE2Yog2YjYp9mE2YXYrdmE2Yog2LnZhNmJINit2K8g2LPZiNin2KEg2YXZhtin2YLYtNipINiz2KjZhCDYp9iz2KrYrtiv2KfZhSDZitmI2YbZg9mI2K8g2YHZiiDYp9mE2YbYuNmFINin2YTZgtin2KbZhdipINmI2YHZitmF2Kcg2YrYrti1INin2YTYqti32KjZitmC2KfYqgorICAgINin2YTYrdin2LPZiNio2YrYqSwg2KfZhNiu2LfZiNi3LCDYqti12YXZitmFINin2YTZhti12YjYtSDZiNin2YTYrdmI2LPYqNipINmF2KrYudiv2K/YqSDYp9mE2YTYutin2KouIAorCisgICAgVW5pY29kZQorICAgINi52YbYr9mF2Kcg2YrYsdmK2K8g2KfZhNi52KfZhNmFINij2YYg2YrYqtmD2YTZkdmFLCDZgdmH2Ygg2YrYqtit2K/ZkdirINio2YTYutipINmK2YjZhtmK2YPZiNivCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWRhLVEiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgd2luZG93cy0xMjUyL2RhIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgKyBJbnRlcm5ldDoKKyAgICBCbGl2IGdsb2JhbCBtZWQgVW5pY29kZQorICAgIElVQzEwCisgICAgSW5kc2tyaXYgZGlnIG51IHRpbCBkZW4gdGllbmRlIGludGVybmF0aW9uYWxlIFVuaWNvZGUta29uZmVyZW5jZSwgZGVyIGhvbGRlcyBkZW4gMTAtMTIKKyAgICBtYXJ0cyAxOTk3IGkgTWFpbnosIFR5c2tsYW5kLiBLb25mZXJlbmNlbiBzYW1sZXIgZWtzcGVydGVyIGZyYSBoZWxlIHZlcmRlbiBpbmRlbiBmb3IgZGV0CisgICAgZ2xvYmFsZSBJbnRlcm5ldCBvZyBVbmljb2RlLCBpbnRlcm5hdGlvbmFsaXNlcmluZyBvZyBsb2thbGlzZXJpbmcsIGltcGxlbWVudGVyaW5nIGFmCisgICAgVW5pY29kZSBpIHN0eXJlc3lzdGVtZXIgb2cgcHJvZ3JhbW1lciwgc2tyaWZ0dHlwZXIsIHRla3N0LWxheW91dCBvZyBmbGVyc3Byb2dldCBkYXRhYmVoYW5kbGluZy4KKworICAgIFVuaWNvZGUKKyAgICBOw6VyIHZlcmRlbiB2aWwgdGFsZSwgdGFsZXIgZGVuIOKAnFVuaWNvZGUu4oCdCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWRhIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvZGEiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSArIEludGVybmV0OgorICAgIEJsaXYgZ2xvYmFsIG1lZCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbmRza3JpdiBkaWcgbnUgdGlsIGRlbiB0aWVuZGUgaW50ZXJuYXRpb25hbGUgVW5pY29kZS1rb25mZXJlbmNlLCBkZXIgaG9sZGVzIGRlbiAxMC0xMgorICAgIG1hcnRzIDE5OTcgaSBNYWlueiwgVHlza2xhbmQuIEtvbmZlcmVuY2VuIHNhbWxlciBla3NwZXJ0ZXIgZnJhIGhlbGUgdmVyZGVuIGluZGVuIGZvciBkZXQKKyAgICBnbG9iYWxlIEludGVybmV0IG9nIFVuaWNvZGUsIGludGVybmF0aW9uYWxpc2VyaW5nIG9nIGxva2FsaXNlcmluZywgaW1wbGVtZW50ZXJpbmcgYWYKKyAgICBVbmljb2RlIGkgc3R5cmVzeXN0ZW1lciBvZyBwcm9ncmFtbWVyLCBza3JpZnR0eXBlciwgdGVrc3QtbGF5b3V0IG9nIGZsZXJzcHJvZ2V0IGRhdGFiZWhhbmRsaW5nLgorCisgICAgVW5pY29kZQorICAgIE7DpXIgdmVyZGVuIHZpbCB0YWxlLCB0YWxlciBkZW4gVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtZGUiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9kZSI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFNvZnR3YXJlICsgZGFzIEludGVybmV0OgorICAgIEludGVybmF0aW9uYWwgbWl0IFVuaWNvZGUKKyAgICBJVUMxMAorICAgIE1lbGRlbiBTaWUgc2ljaCBqZXR6dCBmw7xyIGRpZSAxMC4gSW50ZXJuYXRpb25hbGUgVW5pY29kZSBLb25mZXJlbnogYW4sIGRpZSBpbiBkZXIgWmVpdCB2b20gMTAuLTEyLiBNw6RyeiAxOTk3IGluCisgICAgTWFpbnogc3RhdHRmaW5kZW4gd2lyZC4gRGllIEtvbmZlcmVueiBpc3QgZWluIFRyZWZmcHVua3QgZsO8ciBCZXRyaWVic2V4cGVydGVuIGF1cyBkZW4gQmVyZWljaGVuIGdsb2JhbGVzCisgICAgSW50ZXJuZXQgdW5kIFVuaWNvZGUsIEludGVybmF0aW9uYWxpc2llcnVuZyB1bmQgTG9rYWxpc2llcnVuZywgZGllIEltcGxlbWVudGllcnVuZyB2b24gVW5pY29kZSBpbgorICAgIEJldHJpZWJzc3lzdGVtZW4gdW5kIFByb2dyYW1tZW4sIHNvd2llIGbDvHIgU2NocmlmdGFydGVuLCBUZXh0bGF5b3V0IHVuZCBtZWhyc3ByYWNoaWdlIENvbXB1dGVyYW53ZW5kdW5nZW4uCisKKyAgICBVbmljb2RlCisgICAgV2VubiBkaWUgV2VsdCBtaXRlaW5hbmRlciBzcHJpY2h0LCBzcHJpY2h0IHNpZSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8IS0tIE5vIFVURi04IGluIHRoaXMgdGVzdCBiZWNhdXNlIHRoZXJlIGFyZSBubyBub24tQVNDSUkgY2hhcmFjdGVycy4gLS0+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtZW4iIGVuY29kaW5ncz0iVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9lbiI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGUsIFNvZnR3YXJlICsgdGhlIEludGVybmV0OgorICAgIEdvaW5nIEdsb2JhbCB3aXRoIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIFJlZ2lzdGVyIG5vdyBmb3IgdGhlIFRlbnRoIEludGVybmF0aW9uYWwgVW5pY29kZSBDb25mZXJlbmNlLCB0byBiZSBoZWxkIG9uIE1hcmNoIDEwLTEyLCAxOTk3LAorICAgIGluIE1haW56LCBHZXJtYW55LiBUaGUgQ29uZmVyZW5jZSB3aWxsIGJyaW5nIHRvZ2V0aGVyIGluZHVzdHJ5LXdpZGUgZXhwZXJ0cyBvbiB0aGUgZ2xvYmFsIEludGVybmV0IGFuZAorICAgIFVuaWNvZGUsIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCBsb2NhbGl6YXRpb24sIGltcGxlbWVudGF0aW9uIG9mIFVuaWNvZGUgaW4gb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGFwcGxpY2F0aW9ucywKKyAgICBmb250cywgdGV4dCBsYXlvdXQsIGFuZCBtdWx0aWxpbmd1YWwgY29tcHV0aW5nLgorCisgICAgVW5pY29kZQorICAgIFdoZW4gdGhlIHdvcmxkIHdhbnRzIHRvIHRhbGssIGl0IHNwZWFrcyBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1lcyIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL2VzIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgKyBlbCBJbnRlcm5ldDoKKyAgICBNdW5kaWFsaXphbmRvIGNvbiBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbnNjcsOtYmFzZSBhaG9yYSBwYXJhIGxhIETDqWNpbWEgQ29uZmVyZW5jaWEgSW50ZXJuYWNpb25hbCBVbmljb2RlLCBxdWUgdGVuZHLDoSBsdWdhciBkZWwgMTAgYWwgMTIgZGUgbWFyem8gZGUKKyAgICAxOTk3IGVuIE1hZ3VuY2lhLCBBbGVtYW5pYS4gTGEgQ29uZmVyZW5jaWEgcmV1bmlyw6EgZXhwZXJ0b3MgZGUgbG9zIHNlY3RvcmVzIGRlIGxhIG11bmRpYWxpemFjacOzbiBkZWwgSW50ZXJuZXQgeQorICAgIFVuaWNvZGUsIGxhIGludGVybmFjaW9uYWxpemFjacOzbiB5IGxvY2FsaXphY2nDs24sIGltcGxlbWVudGFjacOzbiBkZSBVbmljb2RlIGVuIHNpc3RlbWFzIG9wZXJhdGl2b3MgeSBhcGxpY2FjaW9uZXMsCisgICAgdGlwb3MsIGNvbXBvc2ljacOzbiBkZSB0ZXh0byBlIGluZm9ybcOhdGljYSBtdWx0aWxpbmfDvGUuCisKKyAgICBVbmljb2RlCisgICAgQ3VhbmRvIGVsIG11bmRvIHF1aWVyZSBjb252ZXJzYXIsIGhhYmxhIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWZyIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvZnIiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgTCdFdXJvcGUsIGxlIGxvZ2ljaWVsIGV0IGwnSW50ZXJuZXQgOgorICAgIGxhIG1vbmRpYWxpc2F0aW9uIGF2ZWMgVW5pY29kZQorICAgIElVQzEwCisgICAgSW5zY3JpdmV6LXZvdXMgZMOocyBtYWludGVuYW50IMOgIGxhIGRpeGnDqG1lIENvbmbDqXJlbmNlIGludGVybmF0aW9uYWxlIHN1ciBVbmljb2RlLCBxdWkgc2UgdGllbmRyYSBkdSAxMCBhdSAxMgorICAgIG1hcnMgMTk5NyDDoCBNYXllbmNlLCBlbiBBbGxlbWFnbmUuIENldHRlIGNvbmbDqXJlbmNlIHJhc3NlbWJsZXJhIGRlcyBleHBlcnRzIGRlIHRvdXMgbGVzIGhvcml6b25zIGluZHVzdHJpZWxzCisgICAgc3VyIGxlcyBzdWpldHMgc3VpdmFudHMgOiBsJ0ludGVybmV0IG1vbmRpYWwgZXQgVW5pY29kZSwgbCdpbnRlcm5hdGlvbmFsaXNhdGlvbiBldCBsJ2FkYXB0YXRpb24gbG9jYWxlLAorICAgIGwnaW1wbMOpbWVudGF0aW9uIGQnVW5pY29kZSBkYW5zIGxlcyBzeXN0w6htZXMgZCdleHBsb2l0YXRpb24gZXQgbGVzIGFwcGxpY2F0aW9ucywgbGVzIHBvbGljZXMgZGUgY2FyYWN0w6hyZXMsCisgICAgbGEgZGlzcG9zaXRpb24gZGUgdGV4dGUsIGwnaW5mb3JtYXRpcXVlIHBsdXJpbGluZ3VlLgorCisgICAgVW5pY29kZQorICAgIFF1YW5kIGxlIG1vbmRlIHZldXQgY29tbXVuaXF1ZXIsIGlsIHBhcmxlIGVuIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWhlIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTgvaGUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg15DXmdeo15XXpNeULCDXqteV15vXoNeUINeV15TXkNeZ16DXmNeo16DXmDoKKyAgICBVbmljb2RlINeZ15XXpteQINec16nXldenINeU16LXldec157XmQorICAgIElVQzEwCisgICAg15TXmdeo16nXnteVINeb16LXqiDXnNeb16DXoSBVbmljb2RlINeU15HXmdeg15zXkNeV157XmSDXlNei16nXmdeo15ksINep15nXmdei16jXmiDXkdeZ158g15TXqteQ16jXmdeb15nXnSAxMi0xMCDXkdee16jXpSAxOTk3LCDXkdee15nXmdeg16Ug16nXkdeS16jXnteg15nXlC4g15HXm9eg16EKKyAgICDXmdep16rXqtek15Ug157Xldee15fXmdedINee15vXnCDXoteg16TXmSDXlNeq16LXqdeZ15nXlCDXkdeg15XXqdeQINeU15DXmdeg15jXqNeg15gg15TXoteV15zXnteZINeV15QtVW5pY29kZSwg15HXlNeq15DXnteUINec16nXldenINeU15HXmdeg15zXkNeV157XmSDXldeU157Xp9eV157XmSwg15HXmdeZ16nXldedCisgICAgVW5pY29kZSDXkdee16LXqNeb15XXqiDXlNek16LXnNeUINeV15HXmdeZ16nXldee15nXnSwg15HXkteV16TXoNeZ150sINeR16TXqNeZ16HXqiDXmNen16HXmCDXldeR157Xl9ep15XXkSDXqNeRLdec16nXldeg15kuCisKKyAgICBVbmljb2RlCisgICAg15vXkNep16gg15TXoteV15zXnSDXqNeV16bXlCDXnNeT15HXqCwg15TXldeQINee15PXkdeoINeRLVVuaWNvZGUKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtaGUtUSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSB3aW5kb3dzLTEyNTUvaGUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg15DXmdeo15XXpNeULCDXqteV15vXoNeUINeV15TXkNeZ16DXmNeo16DXmDoKKyAgICBVbmljb2RlINeZ15XXpteQINec16nXldenINeU16LXldec157XmQorICAgIElVQzEwCisgICAg15TXmdeo16nXnteVINeb16LXqiDXnNeb16DXoSBVbmljb2RlINeU15HXmdeg15zXkNeV157XmSDXlNei16nXmdeo15ksINep15nXmdei16jXmiDXkdeZ158g15TXqteQ16jXmdeb15nXnSAxMi0xMCDXkdee16jXpSAxOTk3LCDXkdee15nXmdeg16Ug16nXkdeS16jXnteg15nXlC4g15HXm9eg16EKKyAgICDXmdep16rXqtek15Ug157Xldee15fXmdedINee15vXnCDXoteg16TXmSDXlNeq16LXqdeZ15nXlCDXkdeg15XXqdeQINeU15DXmdeg15jXqNeg15gg15TXoteV15zXnteZINeV15QtVW5pY29kZSwg15HXlNeq15DXnteUINec16nXldenINeU15HXmdeg15zXkNeV157XmSDXldeU157Xp9eV157XmSwg15HXmdeZ16nXldedCisgICAgVW5pY29kZSDXkdee16LXqNeb15XXqiDXlNek16LXnNeUINeV15HXmdeZ16nXldee15nXnSwg15HXkteV16TXoNeZ150sINeR16TXqNeZ16HXqiDXmNen16HXmCDXldeR157Xl9ep15XXkSDXqNeRLdec16nXldeg15kuCisKKyAgICBVbmljb2RlCisgICAg15vXkNep16gg15TXoteV15zXnSDXqNeV16bXlCDXnNeT15HXqCwg15TXldeQINee15PXkdeoIC3igJxVbmljb2RlLuKAnQorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1odSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0yL2h1Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1csOzcGEsIGEgU3pvZnR2ZXIgcyBheiBJbnRlcm5ldCAtCisgICAgR2xvYsOhbGlzc8OhIFbDoWx0b3ppayBhIFVuaWNvZGUgw4FsdGFsCisgICAgSVVDMTAKKyAgICBJcmF0a296em9uIG3DoXIgbW9zdCBhIFRpemVkaWsgTmVtemV0a8O2emkgVW5pY29kZSBLb25mZXJlbmNpw6FyYSwgYW1lbHkgTcOhcmNpdXMgMTAtMTIgMTk5NworICAgIGxlc3ogbWVndGFydHZhLCBNZWluei1iZSwgTsOpbWV0b3JzesOhZ2JhLiBFYmJlbiBhIEtvbmZlcmVuY2nDoW4gYXogaXBhcsOhZyBzemVydGUgc29rIHN6YWvDqXJ0xZEKKyAgICBmb2cgcsOpc3p0IHZlbm5pOiBhIGdsb2LDoWxpcyBJbnRlcm5ldCBzIFVuaWNvZGUgbmVtemV0a8O2emlzw610w6lzZSBzIGxva2FsaXrDoWzDoXNhLCBhCisgICAgVW5pY29kZSBiZXRlbGplc8OtdMOpc2UgYSBtxbFrw7ZkxZEgcmVuZHN6ZXJla2JlbiBzIGFsa2FsbWF6w6Fzb2tiYW4sIGZvbnRva2JhLCBzesO2dmVnCisgICAgdMOpcmJlb3N6dMOhc2JhIHMgdMO2YmJueWVsdsWxIGNvbXB1dGVyZWtiZW4uCisKKyAgICBVbmljb2RlCisgICAgSGEgYSB2aWzDoWcgYmVzesOpbG5pIGFrYXIsIGF6dCBVbmljb2RlLXVsIG1vbmRqYS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtaHUtUSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSB3aW5kb3dzLTEyNTAvaHUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyw7NwYSwgYSBTem9mdHZlciBzIGF6IEludGVybmV0IC0KKyAgICBHbG9iw6FsaXNzw6EgVsOhbHRvemlrIGEgVW5pY29kZSDDgWx0YWwKKyAgICBJVUMxMAorICAgIElyYXRrb3p6b24gbcOhciBtb3N0IGEgVGl6ZWRpayBOZW16ZXRrw7Z6aSBVbmljb2RlIEtvbmZlcmVuY2nDoXJhLCBhbWVseSBNw6FyY2l1cyAxMC0xMiAxOTk3CisgICAgbGVzeiBtZWd0YXJ0dmEsIE1laW56LWJlLCBOw6ltZXRvcnN6w6FnYmEuIEViYmVuIGEgS29uZmVyZW5jacOhbiBheiBpcGFyw6FnIHN6ZXJ0ZSBzb2sgc3pha8OpcnTFkQorICAgIGZvZyByw6lzenQgdmVubmk6IGEgZ2xvYsOhbGlzIEludGVybmV0IHMgVW5pY29kZSBuZW16ZXRrw7Z6aXPDrXTDqXNlIHMgbG9rYWxpesOhbMOhc2EsIGEKKyAgICBVbmljb2RlIGJldGVsamVzw610w6lzZSBhIG3FsWvDtmTFkSByZW5kc3plcmVrYmVuIHMgYWxrYWxtYXrDoXNva2JhbiwgZm9udG9rYmEsIHN6w7Z2ZWcKKyAgICB0w6lyYmVvc3p0w6FzYmEgcyB0w7ZiYm55ZWx2xbEgY29tcHV0ZXJla2Jlbi4KKworICAgIFVuaWNvZGUKKyAgICBIYSBhIHZpbMOhZyBiZXN6w6lsbmkgYWthciwgYXp0IOKAnFVuaWNvZGXigJ0tdWwgbW9uZGphLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1pdCIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL2l0Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgc29mdHdhcmUgZSBJbnRlcm5ldDoKKyAgICBHbG9iYWxpenphemlvbmUgY29uIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIElzY3JpdmV0ZXZpIHN1Yml0byBhbGxhIFggQ29uZmVyZW56YSBJbnRlcm5hemlvbmFsZSBzdSBVbmljb2RlLCBjaGUgc2kgdGVycsOgIGRhbCAxMCBhbCAxMiBtYXJ6byAxOTk3IGEKKyAgICBNYWlueiBpbiBHZXJtYW5pYS4gQWxsYSBDb25mZXJlbnphIHBhcnRlY2lwZXJhbm5vIGVzcGVydGkgZGkgdHV0dGkgaSBzZXR0b3JpIHBlciBkaXNjdXRlcmUgZGkgSW50ZXJuZXQgZ2xvYmFsZSBlCisgICAgVW5pY29kZSwgaW50ZXJuYXppb25hbGl6emF6aW9uZSBlIGxvY2FsaXp6YXppb25lLCBpbXBsZW1lbnRhemlvbmUgZGkgVW5pY29kZSBpbiBzaXN0ZW1pIG9wZXJhdGl2aSBlIGFwcGxpY2F6aW9uaSwKKyAgICBjYXJhdHRlcmksIGNvbXBvc2l6aW9uZSBkZWkgdGVzdGkgZWQgZWxhYm9yYXppb25lIG11bHRpbGluZ3VlLgorCisgICAgVW5pY29kZQorICAgIFF1YW5kbyBpbCBtb25kbyB2dW9sZSBjb211bmljYXJlLCBwYXJsYSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8IS0tIE5vIEVVQy1KUCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdCBkZXRlY3RzIGFzIEdCMTgwMzAgLS0+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtanAiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgU2hpZnRfSklTL2phIElTTy0yMDIyLUpQIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIOODqOODvOODreODg+ODkeOAgeOCveODleODiOOCpuOCp+OCouOAgeOBneOBl+OBpuOCpOODs+OCv+ODvOODjeODg+ODiDoKKyAgICBVbmljb2RlIOOBp+OCsOODreODvOODkOODq+WMluOCkueLmeOBo+OBpgorICAgIElVQzEwCisgICAg56ysIDEwIOWbnuOBriBVbmljb2RlIOS8muitsOOBryAxOTk3IOW5tCAzIOaciCAxMC0xMuaXpeOAgeODieOCpOODhOOBruODnuOCpOODs+ODhOOBp+mWi+OBi+OCjOOBvuOBmeOAguWPguWKoOW4jOacm+OBruaWueOBr+S7iuOBmeOBkOeZu+mMsuOBl+OBpuOBj+OBoOOBleOBhOOAggorICAgIOOBk+OBruS8muitsOOBp+OBr+OAgeOCsOODreODvOODkOODq+OBquOCpOODs+OCv+ODjeODg+ODiOOAgVVuaWNvZGXjgIHjgr3jg5Xjg4jjgqbjgqfjgqLjga7lm73pmpvljJbjgYrjgojjgbPjg63jg7zjgqvjg6rjgrzjg7zjgrfjg6fjg7PjgIFPUyDjgYrjgojjgbPjgqLjg5fjg6rjgrHjg7zjgrfjg6fjg7Pjgafjga4KKyAgICBVbmljb2RlIOOBruOCpOODs+ODl+ODquODoeODs+ODhuODvOOCt+ODp+ODs+OAgeODleOCqeODs+ODiOOAgeODhuOCreOCueODiOihqOekuuOAgeODnuODq+ODgeiogOiqnuOCs+ODs+ODlOODpeODvOODhuOCo+ODs+OCsOOBq+OBiuOBkeOCi+alreeVjOOBruWwgumWgOWutuOBjOmbhuOBvuOCiuOBvuOBmeOAggorCisgICAgVW5pY29kZQorICAgIOS4lueVjOeahOOBq+ipseOBmeOBquOCieOAgVVuaWNvZGUg44Gn44GZ44CCCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWtvIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIEVVQy1LUi9rbyBJU08tMjAyMi1LUiI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICDsnKDrn70sIOyGjO2UhO2KuOybqOyWtCDqt7jrpqzqs6Ag7J247YSw64S3OgorICAgIOycoOuLiOy9lOuTnOyZgCDtlajqu5gg7IS46rOE66GcCisgICAgSVVDMTAKKyAgICDsoJwxMO2ajCDsnKDri4jsvZTrk5wg6rWt7KCcIO2ajOydmOqwgCAxOTk364WEIDPsm5QgMTDsnbzrtoDthLAgMTLsnbzquYzsp4Ag64+F7J287J2YIOuniOyduOymiOyXkOyEnCDsl7Trpr3ri4jri6QuIOyngOq4iCDrk7HroZ3tlZjsi63si5zsmKQuCisgICAg7J20IO2ajOydmOyXkOyEnOuKlCDsl4Xqs4Qg7KCE67CY7J2YIOyghOusuOqwgOuTpOydtCDtlajqu5gg66qo7JesIOuLpOydjOqzvCDqsJnsnYAg67aE7JW866W8IOuLpOujueuLiOuLpC4gLSDsnbjthLDrhLfqs7wg7Jyg64uI7L2U65OcLCDqta3soJztmZTsmYAg7KeA7Jet7ZmULAorICAgIOyatOyYgSDssrTsoJzsmYAg7J2R7JqpIO2UhOuhnOq3uOueqOyXkOyEnCDsnKDri4jsvZTrk5zsnZgg6rWs7ZiELCDquIDqvLQsIOusuOyekCDrsLDsl7QsIOuLpOq1reyWtCDsu7Ttk6jtjIUuCisKKyAgICBVbmljb2RlCisgICAg7IS46rOE66W8IO2Wpe2VnCDrjIDtmZQsIOycoOuLiOy9lOuTnOuhnCDtlZjsi63si5zsmKQKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPCEtLSBObyBVVEYtOCBpbiB0aGlzIHRlc3QgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIC0tPgorICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLW5sIiBlbmNvZGluZ3M9IlVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvbmwiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSArIGhldCBJbnRlcm5ldDoKKyAgICB3ZXJlbGR3aWpkIG1ldCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBNZWxkIHUgbnUgYWFuIHZvb3IgZGUgVGllbmRlIEludGVybmF0aW9uYWxlIFVuaWNvZGUtY29uZmVyZW50aWUsIGRpZSB2YW4gMTAgdG90IDEyIG1hYXJ0IDE5OTcgaW4KKyAgICBNYWlueiAoRHVpdHNsYW5kKSB3b3JkdCBnZWhvdWRlbi4gRGUgQ29uZmVyZW50aWUgaXMgZWVuIG9udG1vZXRpbmdzcGxhYXRzIHZvb3IgZXhwZXJ0cyB1aXQgZGUgaW5kdXN0cmllIG9wIGhldAorICAgIGdlYmllZCB2YW4gaGV0IHdlcmVsZHdpamRlIEludGVybmV0IGVuIFVuaWNvZGUsIGludGVybmF0aW9uYWxpc2F0aWUgZW4gbG9jYWxpc2F0aWUsIGltcGxlbWVudGF0aWUgdmFuIFVuaWNvZGUgaW4KKyAgICBiZXN0dXJpbmdzc3lzdGVtZW4gZW4gYXBwbGljYXRpZXMsIGxldHRlcnR5cGVzLCB0ZWtzdG9wbWFhayBlbiBtZWVydGFsaWcgY29tcHV0ZXJnZWJydWlrLgorCisgICAgVW5pY29kZQorICAgIEFscyBkZSB3ZXJlbGQgd2lsIHByYXRlbiwgc3ByZWVrdCBoaWogVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPCEtLSBObyBsYW5ndWFnZSBmb3IgSVNPLTg4NTktMSBpbiB0aGlzIHRlc3QgYmVjYXVzZSBuby1OTyBpcyByZWNvZ29uaXplZCBhcyBEYW5pc2guLi4gLS0+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtbm8tTk8iIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9kYSI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFByb2dyYW12YXJlIG9nIEludGVybmV0OgorICAgIEdsb2JhbCBmb2t1cyBtZWQgVW5pY29kZQorICAgIElVQzEwCisgICAgUmVnaXN0cmVyIGRlZyBzb20gZGVsdGFnZXIgcMOlIGRlbiB0aWVuZGUgaW5lcm5hc2pvbmFsZSBVbmljb2RlIGtvbmZlcmFuc2VuIGkgTWFpbnosIFR5c2tsYW5kLCBmcmEgMTAuIHRpbCAxMi4gbWFycywKKyAgICAxOTk3LiBLb25mZXJhbnNlbiB2aWwgc2FtbGUgZWtzcGVydGVyIHDDpSBJbnRlcm5ldCwgVW5pY29kZSwgaW50ZXJuYXNqb25hbGlzZXJpbmcgb2cgaW50ZWdyYXNqb24gYXYgVW5pY29kZSBpCisgICAgb3BlcmF0aXZzeXN0ZW1lciBvZyBwcm9ncmFtbWVyLCBmb250ZXIsIHRla3N0IGxheW91dCBvZyBmbGVyc3Byw6VrbGlnIGRhdGFiZWhhbmRsaW5nLgorCisgICAgVW5pY29kZQorICAgIE7DpXIgdmVyZGVuIHZpbCBzbmFra2UsIHNuYWtrZXIgZGVuIFVuaWNvZGUKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtbm8tTk8tTlkiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9ubyI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIHByb2dyYW12YXJlIG9nIEludGVybmV0dDoKKyAgICBGZW1uIHZlcmRhIG1lZCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBNZWxkIGRlZyBww6UgZGVuIDEwLiBpbnRlcm5hc2pvbmFsZSBVbmljb2RlLWtvbmZlcmFuc2VuLiBIYW4gZ8OlciBmw7hyZSBzZWcgaSBNYWlueiBpIFR5c2tsYW5kIGkgZGFnYW5lIDEwLi0tMTIuIG1hcnMKKyAgICAxOTk3LCBvZyBzYW1sYXIgZmFna3VubmlnZSBpbm5hbiBrb25mZXJhbnNldGVtYWV0IGZyw6UgaGVpbGUgZGF0YWJyYW5zamVuLiBUZW1hOiBEZXQgZ2xvYmFsZSBJbnRlcm5ldHRldCBvZworICAgIFVuaWNvZGUsIGludGVybmFzam9uYWxpc2VyaW5nIG9nIG5hc2pvbmFsIHRpbHBhc3NpbmcsIGltcGxlbWVudGVyaW5nIGF2IFVuaWNvZGUgaSBvcGVyYXRpdnN5c3RlbSBvZyBicnVrYXJwcm9ncmFtLAorICAgIHNrcmlmdHNuaXR0IChmb250YXIpLCB0ZWtzdHV0bGVnZywgb2cgZmxlaXJzcHLDpWtsZWcgZGF0YWJlaGFuZGxpbmcuCisKKyAgICBVbmljb2RlCisgICAgTsOlciB2ZXJkYSDDuG5za2plciDDpSBzbmFra2UsIHRhbGFyIGhvIFVuaWNvZGUKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtcHQtQlIiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9wdCI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFNvZnR3YXJlIGUgYSBJbnRlcm5ldDoKKyAgICBHbG9iYWxpemHDp8OjbyBjb20gbyBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbnNjcmV2YS1zZSBhZ29yYSBwYXJhIGEgRMOpY2ltYSBDb25mZXLDqm5jaWEgSW50ZXJuYWNpb25hbCBTb2JyZSBPIFVuaWNvZGUsIHJlYWxpemFkYSBlbnRyZSBvcyBkaWFzIDEwIGUgMTIgZGUKKyAgICBtYXLDp28gZGUgMTk5NyBlbSBNYWlueiBuYSBBbGVtYW5oYS4gQSBDb25mZXLDqm5jaWEgcmV1bmlyw6EgcGVyaXRvcyBkZSB0b2RhcyBhcyDDoXJlYXMgZGEgaW5kw7pzdHJpYSBlc3BlY2lhbGl6YWRvcworICAgIGVtIGFzc3VudG9zIHJlbGFjaW9uYWRvcyBjb20gYSBJbnRlcm5ldCBnbG9iYWwgZSBvIFVuaWNvZGUsIGludGVybmFjaW9uYWxpemHDp8OjbyBlIGxvY2FsaXphw6fDo28gZGUgc29mdHdhcmUsCisgICAgaW1wbGVtZW50YcOnw6NvIGRvIFVuaWNvZGUgZW0gc2lzdGVtYXMgb3BlcmFjaW9uYWlzIGUgYXBsaWNhdGl2b3MsIGZvbnRlcywgbGF5b3V0IGRlIHRleHRvIGUgaW5mb3Jtw6F0aWNhIG11bHRpbMOtbmfDvGUuCisKKyAgICBVbmljb2RlCisgICAgUXVhbmRvIG8gbXVuZG8gcXVlciBmYWxhciwgZmFsYSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1wdC1QVCIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL3B0Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgZSBhIEludGVybmV0OgorICAgIEdsb2JhbGl6YcOnw6NvIGNvbSBvIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEluc2NyZXZhLXNlIGFnb3JhIHBhcmEgYSBEw6ljaW1hIENvbmZlcsOqbmNpYSBJbnRlcm5hY2lvbmFsIFNvYnJlIE8gVW5pY29kZSwgYSBzZXIgcmVhbGl6YWRhIGVudHJlIG9zIGRpYXMgMTAgZSAxMgorICAgIGRlIE1hcsOnbyBkZSAxOTk3IGVtIE1haW56IG5hIEFsZW1hbmhhLiBBIENvbmZlcsOqbmNpYSByZXVuaXLDoSBwZXJpdG9zIGRlIHRvZGFzIGFzIMOhcmVhcyBkYSBpbmTDunN0cmlhCisgICAgZXNwZWNpYWxpemFkb3MgZW0gYXNzdW50b3MgcmVsYWNpb25hZG9zIGNvbSBhIEludGVybmV0IGdsb2JhbCBlIG8gVW5pY29kZSwgaW50ZXJuYWNpb25hbGl6YcOnw6NvIGUgbG9jYWxpemHDp8OjbyBkZQorICAgIHNvZnR3YXJlLCBpbXBsZW1lbnRhw6fDo28gZG8gVW5pY29kZSBlbSBzaXN0ZW1hcyBvcGVyYXRpdm9zIGUgYXBsaWNhw6fDtWVzLCB0aXBvcyBkZSBsZXRyYSwgZXNxdWVtYXRpemHDp8OjbyBkZQorICAgIHRleHRvIGUgaW5mb3Jtw6F0aWNhIG11bHRpbMOtbmd1ZS4KKworICAgIFVuaWNvZGUKKyAgICBRdWFuZG8gbyBtdW5kbyBxdWVyIGZhbGFyLCBmYWxhIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLXJvIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTIvcm8iPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSDFn2kgSW50ZXJuZXQ6CisgICAgR2xvYmFsaXphcmVhIGN1IFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEluc2NyaWXFo2ktdsSDIGFjdW0gbGEgYSBaZWNlYSBDb25mZXJpbsWjxIMgSW50ZXJuYcWjaW9uYWzEgyAiVW5pY29kZSIgY2UgdmEgYXZlYSBsb2MgaW4KKyAgICBwZXJpb2FkYSBkZSAxMC0xMiBtYXJ0aWUsIDE5OTcgw65uIE1haW56LCBHZXJtYW5pYS4gQ29uZmVyaW7Fo2EgdmEgw65udHJ1bmkgZXhwZXLFo2kgZGluCisgICAgdmFyaWF0ZSBkb21lbmlpOiBJbnRlcm5ldCBnbG9iYWwgxZ9pIFVuaWNvZGUsIGludGVybmHFo2lvbmFsaXphcmUgxZ9pIGxvY2FsaXphcmUsCisgICAgaW1wbGVtZW50YXJlZGUgVW5pY29kZSDDrm4gc2lzdGVtZSBkZSBvcGVyYXJlIMWfaSBhcGxpY2HFo2lpLCBmb250dXJpLCBhcmFuamFyZSBkZSB0ZXh0IMOubgorICAgIHBhZ2luxIMsIGNvbXB1dGVyaXphcmUgbXVsdGlsaW5ndWFsxIMuCisKKyAgICBVbmljb2RlCisgICAgQ8OibmQgbHVtZWEgdnJlYSBzxIMgY29tdW5pY2UsIHZvcmJlxZ90ZSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1ydSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS01L3J1IHdpbmRvd3MtMTI1MS9ydSBLT0k4LVIvcnUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg0JXQstGA0L7Qv9CwLCDQn9GA0L7Qs9GA0LDQvNC80L3QvtC1INC+0LHQtdGB0L/QtdGH0LXQvdC40LUgKyDQmNC90YLQtdGA0L3QtdGCOgorICAgIFVuaWNvZGUg0LIg0LPQu9C+0LHQsNC70YzQvdGL0YUg0LzQsNGB0YjRgtCw0LHQsNGFCisgICAgSVVDMTAKKyAgICDQl9Cw0YDQtdCz0LjRgdGC0YDQuNGA0YPQudGC0LXRgdGMINGB0LXQudGH0LDRgSDQvdCwINCU0LXRgdGP0YLRg9GOINCc0LXQttC00YPQvdCw0YDQvtC00L3Rg9GOINCa0L7QvdGE0LXRgNC10L3RhtC40Y4g0L/QviBVbmljb2RlLCDQutC+0YLQvtGA0LDRjyDRgdC+0YHRgtC+0LjRgtGB0Y8KKyAgICAxMC0xMiDQvNCw0YDRgtCwIDE5OTcg0LPQvtC00LAg0LIg0JzQsNC50L3RhtC1INCyINCT0LXRgNC80LDQvdC40LguINCa0L7QvdGE0LXRgNC10L3RhtC40Y8g0YHQvtCx0LXRgNC10YIg0YjQuNGA0L7QutC40Lkg0LrRgNGD0LMg0Y3QutGB0L/QtdGA0YLQvtCyINC/0L4g0LgKKyAgICDQstC+0L/RgNC+0YHQsNC8INCz0LvQvtCx0LDQu9GM0L3QvtCz0L4g0JjQvdGC0LXRgNC90LXRgtCwINC4IFVuaWNvZGUsINC70L7QutCw0LvQuNC30LDRhtC40Lgg0Lgg0LjQvdGC0LXRgNC90LDRhtC40L7QvdCw0LvQuNC30LDRhtC40LgsINCy0L7Qv9C70L7RidC10L3QuNGOCisgICAg0L/RgNC40LzQtdC90LXQvdC40Y4gVW5pY29kZSDQsiDRgNCw0LfQu9C40YfQvdGL0YUg0L7Qv9C10YDQsNGG0LjQvtC90L3Ri9GFINGB0LjRgdGC0LXQvNCw0YUg0Lgg0L/RgNC+0LPRgNCw0LzQvNC90YvRhSDQv9GA0LjQu9C+0LbQtdC90LjRj9GFLAorICAgINGI0YDQuNGE0YLQsNGFLCDQstC10YDRgdGC0LrQtSDQuCDQvNC90L7Qs9C+0Y/Qt9GL0YfQvdGL0YUg0LrQvtC80L/RjNGO0YLQtdGA0L3Ri9GFINGB0LjRgdGC0LXQvNCw0YUuCisKKyAgICBVbmljb2RlCisgICAg0JrQvtCz0LTQsCDQvNC40YAg0LbQtdC70LDQtdGCINC+0LHRidCw0YLRjNGB0Y8sINC+0L0g0L7QsdGJ0LDQtdGC0YHRjyDQvdCwIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLXN2IiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvc3YiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBwcm9ncmFtdmFyYSBvY2ggSW50ZXJuZXQ6CisgICAgZ2xvYmFsaXNlcmEgbWVkIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEFubcOkbCBEaWcgdGlsbCBkZW4gdGlvbmRlIGludGVybmF0aW9uZWxsYSBVbmljb2RlLWtvbmZlcmVuc2VuLCBzb20gaMOlbGxzIGRlbiAxMC0xMiBtYXJzIDE5OTcgaSBNYWlueiwKKyAgICBUeXNrbGFuZC4gVmlkIGtvbmZlcmVuc2VuIGtvbW1lciBleHBlcnRlciBpbm9tIGbDtmxqYW5kZSBvbXLDpWRlbiBhdHQgZGVsdGE6IGRldCBnbG9iYWxhIEludGVybmV0IG9jaCBVbmljb2RlLAorICAgIGludGVybmF0aW9uYWxpc2VyaW5nIG9jaCBsb2thbGlzZXJpbmcsIGltcGxlbWVudGVyaW5nIGF2IFVuaWNvZGUgaSBvcGVyYXRpdnN5c3RlbSwgdGlsbMOkbXBuaW5nYXIsIHR5cHNuaXR0LAorICAgIHRleHRsYXlvdXQgb2NoIG3DpW5nc3Byw6VrbGlnIGRhdG9yYW52w6RuZG5pbmcuCisKKyAgICBVbmljb2RlCisgICAgTsOkciB2w6RybGRlbiB2aWxsIHRhbGEsIHPDpSB0YWxhciBkZW4gVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAteWkiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg15DXsteo15DWuNek1rzXojog16TWvNeo15DWuNeS16jXkNa3157XsNeQ1rfXqNeSINeQ15XXnyDXk9eZINew16LXnNeY16DXotelOgorICAgINeQ15XXoNeZ16fXkNa415Mg15DXmdeR16LXqCDXk9ei16gg15LXkNa416jXoteoINew16LXnNeYCisgICAgSVVDMTAKKyAgICDXpNa/15DWt9eo16nXqNey1rfXkdeYINeW15nXmiDXqdex158g15DXsdejINeT16LXqCDXptei16DXmNei16gg15DXmdeg15jXoteo16DXkNa316bXmdeQ1rjXoNeQ1rfXnNei16gg15DXldeg15nXp9eQ1rjXky3Xp9eQ1rjXoNek1r/Xoteo16LXoNelLCDXsNeQ1rjXoSDXsNei15gg16TWv9eQ1rjXqNen15XXntei158g15PXotedCisgICAgMTDXmNefINeR15nXltefIDEy15jXnyDXnteQ1rfXqNelLCAxOTk3LCDXkNeZ158g157Xsta316DXpSwg15PXsta315jXqdec15DWt9eg15MuINeT15kg16fXkNa416DXpNa/16LXqNei16DXpSDXsNei15gg16bXldeW15DWt9ee16LXoNeR16jXoteg15LXnyDXnteR1r/Xmdeg15nXnSDXpNa/15XXnyDXsNei15zXmNeg16LXpSwKKyAgICAg15DXldeg15nXp9eQ1rjXkywg15DXmSDXkNa315zXsNei15zXmNec16LXm9efINeQ15kg16HXkda/15nXkda/15TXk9eZ16fXnyDXpNa816jXkNa415LXqNeQ1rfXntew15DWt9eo15IsINeQ1rfXqNey1rfXoNep15jXotec158g15DXldeg15nXp9eQ1rjXkyDXkNeZ158g15DWuNek1rzXoteo15nXqC3XodeZ16HXmNei157XotefINeQ15XXnworICAgINeQ1rjXoNew16LXoNeT15XXoNeS16LXnywg16nXqNeZ16TWv9eY158sINeY16LXp9eh15gt15DXsdeh16nXmNei15wsINeQ15XXnyDXntei16jXqdek1rzXqNeQ1rfXm9eZ16fXoiDXp9eQ1rjXntek1rzXmdeV15jXoteo17LWty4KKworICAgIFVuaWNvZGUKKyAgICDXkNa315Yg15PXmSDXsNei15zXmCDXsNeZ15wg16jXoteT158sINeo16LXk9eYINeW15kg15DXldeg15nXp9eQ1rjXkworCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8IS0tIHRlc3QtY2FzZSBpZD0iSVVDMTAtemgtSGFudCIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tMjAyMi1DTiBHQjE4MDMwIiAtLT4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIDwhLS0KKyAgICDmrZDmtLLvvIzou5/pq5Tlj4rntrLpmpvntrLot6/vvJoKKyAgICDorpPntbHkuIDnorzvvIhVbmljb2Rl77yJ6aCY5L2g6YCy5YWl5YWo5LiW55WMCisgICAgSVVDMTAKKyAgICDkvaDnj77lnKjlsLHmh4nloLHlkI3lsIflnKjvvJHvvJnvvJnvvJflubTvvJPmnIjvvJHvvJDoh7PvvJHvvJLml6XmlrzlvrflnIvnvo7lp7/ln47vvIhNYWlueu+8ieWPrOmWi+eahOesrOWNgeWxhuWci+mam+e1seS4gOeivOeglOiojuacg+OAggorICAgIOacrOasoeeglOiojuacg+Wwh+mCgOiri+WkmuS9jealreeVjOWwiOWutueglOiojumXnOaWvOWFqOeQg+e2sumam+e2sui3r+WPiue1seS4gOeivOeZvOWxleOAgeWci+mam+WMluWPiuacrOWcn+WMluOAgQorICAgIOaUr+aPtOe1seS4gOeivOeahOS9nOalreezu+e1seWPiuaHieeUqOeoi+W8j+OAgeWtl+Wei+OAgeaWh+Wtl+aOkueJiOOAgembu+iFpuWkmuWci+iqnuaWh+WMluetieWkmumgheiqsumhjOOAggorCisgICAgVW5pY29kZQorICAgIOeVtuS4lueVjOmcgOimgea6nemAmuaZgu+8jOiri+eUqOe1seS4gOeivO+8iFVuaWNvZGXvvIkKKyAgICAtLT4KKworICAgIDwhLS0gL3Rlc3QtY2FzZSAtLT4KKworICAgIDwhLS0gTm8gSVNPLTIwMjItQ04gaW4gdGhpcyB0ZXN0IGJlY2F1c2UgSmF2YSBkb2Vzbid0IHN1cHBvcnQgaXQgaW4gYm90aCBkaXJlY3Rpb25zIDotKCAtLT4KKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC16aC1IYW5zIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy0yMDIyLUNOIEdCMTgwMzAvemgiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg5qyn5rSy77yM6L2v5Lu277yL5LqS6IGU572RCisgICAg55So57uf5LiA56CBIChVbmljb2RlKSDotbDpgY3kuJbnlYwKKyAgICBJVUMxMAorICAgIOWwhuS6jjE5OTflubQgMyDmnIgxMOaXpe+8jTEy5pel5Zyo5b635Zu9IE1haW56IOW4guS4vuihjOeahOesrOWNgeWxiue7n+S4gOeggeWbvemZheeglOiuqOS8mueOsOWcqOW8gOWni+azqOWGjOOAggorICAgIOacrOasoeS8muiuruWwhuaxh+mbhuWQhOaWuemdoueahOS4k+WutuOAgua2ieWPiueahOmihuWfn+WMheaLrO+8muWbvemZheS6kuiBlOe9keWSjOe7n+S4gOegge+8jOWbvemZheWMluWSjOacrOWcsOWMlu+8jAorICAgIOe7n+S4gOeggeWcqOaTjeS9nOezu+e7n+WSjOW6lOeUqOi9r+S7tuS4reeahOWunueOsO+8jOWtl+Wei++8jOaWh+acrOagvOW8j+S7peWPiuWkmuaWh+enjeiuoeeul+etieOAggorCisgICAgVW5pY29kZQorICAgIOW9k+S4lueVjOmcgOimgeayn+mAmuaXtu+8jOivt+eUqFVuaWNvZGXvvIEKKworQ29uZmVyZW5jZSBQcm9ncmFtCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJXSVUtY3oiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMi9jcyI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBDbyBqZSBVbmljb2RlPworCisgICAgVW5pY29kZSBwxZlpxZlhenVqZSBrYcW+ZMOpbXUgem5ha3UgamVkaW5lxI1uw6kgxI3DrXNsbywKKyAgICBuZXrDoXZpc2xlIG5hIHBsYXRmb3JtxJssCisgICAgbmV6w6F2aXNsZSBuYSBwcm9ncmFtdSwKKyAgICBuZXrDoXZpc2xlIG5hIGphenljZS4KKworICAgIFBvxI3DrXRhxI1lLCB6ZSBzdsOpIHBvZHN0YXR5LCBwcmFjdWrDrSBwb3V6ZSBzIMSNw61zbHkuIFDDrXNtZW5hIGEgZGFsxaHDrSB6bmFreSB1a2zDoWRhasOtIHRhaywgxb5lIGthxb5kw6ltdSB6IG5pY2gKKyAgICBwxZlpxZlhZMOtIMSNw61zbG8uIFDFmWVkIHZ6bmlrZW0gVW5pY29kZSBleGlzdG92YWx5IHN0b3ZreSByb3pkw61sbsO9Y2gga8OzZG92YWPDrWNoIHN5c3TDqW3FryBwcm8gcMWZacWZYXpvdsOhbsOtIHTEm2NodG8KKyAgICDEjcOtc2VsLiDFvcOhZG7DqSB6IHTEm2NodG8ga8OzZG92w6Fuw60gbmVtb2hsbyBvYnNhaG92YXQgZG9zdGF0ZWsgem5ha8WvOiBuYXDFmcOta2xhZCBFdnJvcHNrw6EgdW5pZSBzYW1hIHBvdMWZZWJ1amUKKyAgICBuxJtrb2xpayByxa96bsO9Y2gga8OzZG92w6Fuw60sIGFieSBwb2tyeWxhIHbFoWVjaG55IHN2w6kgamF6eWt5LiBEb2tvbmNlIGkgcHJvIGplZGVuIGplZGluw70gamF6eWssIGpha28gamUgYW5nbGnEjXRpbmEsCisgICAgbmV2eWhvdm92YWxvIMW+w6FkbsOpIGvDs2RvdsOhbsOtIHBybyB2xaFlY2hueSBww61zbWVuYSwgaW50ZXJwdW5rY2kgYSBixJvFvm7EmyBwb3XFvsOtdmFuw6kgdGVjaG5pY2vDqSBzeW1ib2x5LgorCisgICAgVHl0byBrw7Nkb3ZhY8OtIHN5c3TDqW15IHRha8OpIGJ5bHkgdiBrb25mbGlrdHUgamVkZW4gcyBkcnVow71tLiBUbyB6bmFtZW7DoSwgxb5lIGR2xJsga8OzZG92w6Fuw60gbW9ob3UgcG91xb7DrXZhdAorICAgIHN0ZWpuw6kgxI3DrXNsbyBwcm8gZHZhIHLFr3puw6kgem5ha3ksIG5lYm8gcG91xb7DrXZhdCByxa96bsOhIMSNw61zbGEgcHJvIHN0ZWpuw70gem5hay4gSmFrw71rb2xpIHBvxI3DrXRhxI0gKHp2bMOhxaF0xJsgc2VydmVyeSkKKyAgICBtdXPDrSBwb2Rwb3JvdmF0IG1ub2hvIHLFr3puw71jaCBrw7Nkb3bDoW7DrTsgcMWZZXN0bywga2R5a29saSBqc291IGRhdGEgcMWZZWTDoXbDoW5hIG1lemkgcsWvem7DvW1pIGvDs2RvdsOhbsOtbWkgbmVibworICAgIHBsYXRmb3JtYW1pLCBocm96w60sIMW+ZSB0YXRvIGRhdGEgYnVkb3UgcG/FoWtvemVuYS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iV0lVLWVsIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTcvZWwiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgzqTOuSDOtc6vzr3Osc65IM+Ezr8gVW5pY29kZTsKKworICAgIM6XIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSBVbmljb2RlIM+Az4HOv8+EzrXOr869zrXOuSDOrc69zrHOvSDOus6xzrkgzrzOv869zrHOtM65zrrPjCDOsc+BzrnOuM68z4wgzrPOuc6xIM66zqzOuM61IM+HzrHPgc6xzrrPhM6uz4HOsSwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu861zrnPhM6/z4XPgc6zzrnOus+MIM+Dz43Pg8+EzrfOvM6xLAorICAgIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zr/Os865z4POvM65zrrPjCwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOt869IM6zzrvPjs+Dz4POsS4KKworICAgIM6fzrkgzrfOu861zrrPhM+Bzr/Ovc65zrrOv86vIM+Fz4DOv867zr/Os865z4PPhM6tz4IsIM+DzrUgz4TOtc67zrnOus6uIM6xzr3OrM67z4XPg863LCDPh861zrnPgc6vzrbOv869z4TOsc65IM6xz4DOu8+Oz4IgzrHPgc65zrjOvM6/z43Pgi4gzpHPgM6/zrjOt866zrXPjc6/z4XOvSDOs8+BzqzOvM68zrHPhM6xIM66zrHOuQorICAgIM6szrvOu86/z4XPgiDPh86xz4HOsc66z4TOrs+BzrXPgiDOsc69z4TOuc+Dz4TOv865z4fPjs69z4TOsc+CIM+Dz4TOvyDOus6xzrjOrc69zrEgz4TOv8+Fz4IgzrHPgM+MIM6tzr3Osc69IM6xz4HOuc64zrzPjCAozr/Ovc6/zrzOrM62zr/Phc68zrUgzrzOr86xIM+Ezq3PhM6/zrnOsSDOsc69z4TOuc+Dz4TOv865z4fOr86xCisgICAgzrrPic60zrnOus6/z4POtc67zq/OtM6xKS4gzqDPgc65zr0gz4TOt869IM61z4bOtc+Nz4HOtc+Dzrcgz4TOv8+FIFVuaWNvZGUsIM+Fz4DOrs+Bz4fOsc69IM61zrrOsc+Ezr/Ovc+EzqzOtM61z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrOrc+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CLiDOm8+MzrPPiQorICAgIM+AzrXPgc65zr/Pgc65z4POvM+Ozr0gzrzOtc6zzq3OuM6/z4XPgiDPjM68z4nPgiwgz4POtSDOus6xzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0gz4fPic+Bzr/Pjc+DzrHOvSDOsc+BzrrOtc+Ezr/OryDPh86xz4HOsc66z4TOrs+BzrXPgjogzrvPjM6zzr/PhSDPh86sz4HOuc69LAorICAgIM63IM6Vz4XPgc+Jz4DOsc+KzrrOriDOiM69z4nPg863IM+Hz4HOtc65zrHOts+Mz4TOsc69IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr0gzrPOuc6xIM69zrEgzrrOsc67z43PiM61zrkgz4zOu861z4Igz4TOuc+CIM6zzrvPjs+Dz4POtc+CIM+Ez4nOvQorICAgIM+Hz4nPgc+Ozr0tzrzOtc67z47OvSDPhM63z4IuIM6RzrrPjM68zrEgzrrOsc65IM6zzrnOsSDOvM6vzrEgzrrOsc65IM68z4zOvc63IM6zzrvPjs+Dz4POsSwgz4zPgM+Jz4Igz4Auz4cuIM+EzrEgzpHOs86zzrvOuc66zqwsIM68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69CisgICAgzrXPgM6xz4HOus6/z43Pg861IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOsSDPhM6xIM6zz4HOrM68zrzOsc+EzrEsIM+DzrfOvM61zq/OsSDPg8+Ezq/Ovs63z4IgzrrOsc65IM+EzrXPh869zrnOus6sIM+Dz43OvM6yzr/Ou86xIM61z4XPgc61zq/Osc+CIM+Hz4HOrs+DzrfPgi4KKworICAgIM6VzrrPhM+Mz4IgzrHPhc+Ezr/PjSwgzr/OuSDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgiDOsc+Fz4TOrc+CIM60zrnOsc+Gz4nOvc6/z43Pg86xzr0gzrzOtc+EzrHOvs+NIM+Ezr/Phc+CLiDOiM+Ez4POuSwgzrTPjc6/IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM68z4DOv8+Bzr/Pjc+DzrHOvSDOus6szrvOu865z4PPhM6xIM69zrEKKyAgICDPh8+BzrfPg865zrzOv8+Azr/Ouc6/z43OvSDPhM6/zr0gzq/OtM65zr8gzrHPgc65zrjOvM+MIM6zzrnOsSDOtM+Nzr8gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IsIM6uIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4IgzrHPgc65zrjOvM6/z43PgiDOs865zrEKKyAgICDPhM6/zr0gzq/OtM65zr8gz4fOsc+BzrHOus+Ezq7Pgc6xLiDOms6szrjOtSDPhc+Azr/Ou86/zrPOuc+Dz4TOrs+CICjOus6xzrkgzrnOtM6vz4nPgiDOtc6szr0gzq7PhM6xzr0gzrTOuc6xzrrOv868zrnPg8+Ezq7Pgikgzq3PgM+BzrXPgM61IM69zrEgz4XPgM6/z4PPhM63z4HOr862zrXOuSDPgM67zq7OuM6/z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69CisgICAgzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr0gz4TOsc+Fz4TPjM+Hz4HOv869zrEgzrrOrM64zrUgz4bOv8+Bzqwgz4DOv8+FIM60zrXOtM6/zrzOrc69zrEgzrzOtc+EzrHPhs6tz4HOv869z4TOsc69IM68zrXPhM6xzr7PjSDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr0gzq4KKyAgICDOu861zrnPhM6/z4XPgc6zzrnOus+Ozr0gz4PPhc+Dz4TOt868zqzPhM+Jzr0sIM+EzrEgzrTOtc60zr/OvM6tzr3OsSDOsc+Fz4TOrCDOus65zr3OtM+Nzr3Otc+FzrHOvSDOvc6xIM6xzrvOu86/zrnPic64zr/Pjc69LgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJXSVUtZWwtUSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSB3aW5kb3dzLTEyNTMvZWwiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgzqTOuSDOtc6vzr3Osc65IM+Ezr8g4oCcVW5pY29kZeKAnTsKKworICAgIM6XIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSBVbmljb2RlIM+Az4HOv8+EzrXOr869zrXOuSDOrc69zrHOvSDOus6xzrkgzrzOv869zrHOtM65zrrPjCDOsc+BzrnOuM68z4wgzrPOuc6xIM66zqzOuM61IM+HzrHPgc6xzrrPhM6uz4HOsSwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu861zrnPhM6/z4XPgc6zzrnOus+MIM+Dz43Pg8+EzrfOvM6xLAorICAgIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zr/Os865z4POvM65zrrPjCwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOt869IM6zzrvPjs+Dz4POsS4KKworICAgIM6fzrkgzrfOu861zrrPhM+Bzr/Ovc65zrrOv86vIM+Fz4DOv867zr/Os865z4PPhM6tz4IsIM+DzrUgz4TOtc67zrnOus6uIM6xzr3OrM67z4XPg863LCDPh861zrnPgc6vzrbOv869z4TOsc65IM6xz4DOu8+Oz4IgzrHPgc65zrjOvM6/z43Pgi4gzpHPgM6/zrjOt866zrXPjc6/z4XOvSDOs8+BzqzOvM68zrHPhM6xIM66zrHOuQorICAgIM6szrvOu86/z4XPgiDPh86xz4HOsc66z4TOrs+BzrXPgiDOsc69z4TOuc+Dz4TOv865z4fPjs69z4TOsc+CIM+Dz4TOvyDOus6xzrjOrc69zrEgz4TOv8+Fz4IgzrHPgM+MIM6tzr3Osc69IM6xz4HOuc64zrzPjCAozr/Ovc6/zrzOrM62zr/Phc68zrUgzrzOr86xIM+Ezq3PhM6/zrnOsSDOsc69z4TOuc+Dz4TOv865z4fOr86xCisgICAgzrrPic60zrnOus6/z4POtc67zq/OtM6xKS4gzqDPgc65zr0gz4TOt869IM61z4bOtc+Nz4HOtc+Dzrcgz4TOv8+FIFVuaWNvZGUsIM+Fz4DOrs+Bz4fOsc69IM61zrrOsc+Ezr/Ovc+EzqzOtM61z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrOrc+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CLiDOm8+MzrPPiQorICAgIM+AzrXPgc65zr/Pgc65z4POvM+Ozr0gzrzOtc6zzq3OuM6/z4XPgiDPjM68z4nPgiwgz4POtSDOus6xzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0gz4fPic+Bzr/Pjc+DzrHOvSDOsc+BzrrOtc+Ezr/OryDPh86xz4HOsc66z4TOrs+BzrXPgjogzrvPjM6zzr/PhSDPh86sz4HOuc69LAorICAgIM63IM6Vz4XPgc+Jz4DOsc+KzrrOriDOiM69z4nPg863IM+Hz4HOtc65zrHOts+Mz4TOsc69IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr0gzrPOuc6xIM69zrEgzrrOsc67z43PiM61zrkgz4zOu861z4Igz4TOuc+CIM6zzrvPjs+Dz4POtc+CIM+Ez4nOvQorICAgIM+Hz4nPgc+Ozr0tzrzOtc67z47OvSDPhM63z4IuIM6RzrrPjM68zrEgzrrOsc65IM6zzrnOsSDOvM6vzrEgzrrOsc65IM68z4zOvc63IM6zzrvPjs+Dz4POsSwgz4zPgM+Jz4Igz4Auz4cuIM+EzrEgzpHOs86zzrvOuc66zqwsIM68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69CisgICAgzrXPgM6xz4HOus6/z43Pg861IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOsSDPhM6xIM6zz4HOrM68zrzOsc+EzrEsIM+DzrfOvM61zq/OsSDPg8+Ezq/Ovs63z4IgzrrOsc65IM+EzrXPh869zrnOus6sIM+Dz43OvM6yzr/Ou86xIM61z4XPgc61zq/Osc+CIM+Hz4HOrs+DzrfPgi4KKworICAgIM6VzrrPhM+Mz4IgzrHPhc+Ezr/PjSwgzr/OuSDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgiDOsc+Fz4TOrc+CIM60zrnOsc+Gz4nOvc6/z43Pg86xzr0gzrzOtc+EzrHOvs+NIM+Ezr/Phc+CLiDOiM+Ez4POuSwgzrTPjc6/IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM68z4DOv8+Bzr/Pjc+DzrHOvSDOus6szrvOu865z4PPhM6xIM69zrEKKyAgICDPh8+BzrfPg865zrzOv8+Azr/Ouc6/z43OvSDPhM6/zr0gzq/OtM65zr8gzrHPgc65zrjOvM+MIM6zzrnOsSDOtM+Nzr8gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IsIM6uIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4IgzrHPgc65zrjOvM6/z43PgiDOs865zrEKKyAgICDPhM6/zr0gzq/OtM65zr8gz4fOsc+BzrHOus+Ezq7Pgc6xLiDOms6szrjOtSDPhc+Azr/Ou86/zrPOuc+Dz4TOrs+CICjOus6xzrkgzrnOtM6vz4nPgiDOtc6szr0gzq7PhM6xzr0gzrTOuc6xzrrOv868zrnPg8+Ezq7Pgikgzq3PgM+BzrXPgM61IM69zrEgz4XPgM6/z4PPhM63z4HOr862zrXOuSDPgM67zq7OuM6/z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69CisgICAgzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr0gz4TOsc+Fz4TPjM+Hz4HOv869zrEgzrrOrM64zrUgz4bOv8+Bzqwgz4DOv8+FIM60zrXOtM6/zrzOrc69zrEgzrzOtc+EzrHPhs6tz4HOv869z4TOsc69IM68zrXPhM6xzr7PjSDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr0gzq4KKyAgICDOu861zrnPhM6/z4XPgc6zzrnOus+Ozr0gz4PPhc+Dz4TOt868zqzPhM+Jzr0sIM+EzrEgzrTOtc60zr/OvM6tzr3OsSDOsc+Fz4TOrCDOus65zr3OtM+Nzr3Otc+FzrHOvSDOvc6xIM6xzrvOu86/zrnPic64zr/Pjc69LgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJXSVUtcGwiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMi9wbCI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBDenltIGplc3QgVW5pa29kID8KKworICAgIFVuaWtvZCBwcnp5cGlzdWplIHVuaWthbG55IG51bWVyIGthxbxkZW11IHpuYWtvd2ksIG5pZXphbGXFvG55IG9kIHXFvHl3YW5laiBwbGF0Zm9ybXksIHByb2dyYW11IGN6eSBqxJl6eWthLgorCisgICAgWmFzYWRuaWN6bywga29tcHV0ZXJ5IHJvenVtaWVqxIUgdHlsa28gbGljemJ5LiBaYXBpc3VqxIUgbGl0ZXJ5IGkgaW5uZSB6bmFraSBwcnp5cGlzdWrEhWMga2HFvGRlbXUgeiBuaWNoIGxpY3pixJkuCisgICAgTmltIHBvd3N0YcWCIFVuaWtvZCwgYnnFgm8gd2llbGUgcsOzxbxueWNoIHN5c3RlbcOzdyBrb2Rvd2FuaWEgcHJ6eXBpc3VqxIVjeWNoIHRlIGxpY3pieS4gQnJha293YcWCbyBqZWRuZWdvLAorICAgIGt0w7NyeSBtw7NnxYJieSBwb21pZcWbY2nEhyB3eXN0YXJjemFqxIVjbyBkdcW8xIUgbGljemLEmSB6bmFrw7N3LiBQcnp5a8WCYWRvd28sIHNhbWEgVW5pYSBFdXJvcGVqc2thIHBvdHJ6ZWJvd2HFgmEKKyAgICBraWxrdSByw7PFvG55Y2gga29kb3dhxYQsIGJ5IG3Ds2MgdcW8eXdhxIcgd3N6eXN0a2ljaCB1xbx5d2FueWNoIHcgbmllaiBqxJl6eWvDs3cuIE5hd2V0IGRsYSBwb2plZHluY3plZ28gasSZenlrYQorICAgIHRha2llZ28gamFrIG5wLiBhbmdpZWxza2kgYnJha293YcWCbyBqZWRuZWdvIGtvZG93YW5pYSwga3TDs3JlIGJ5xYJvYnkgb2Rwb3dpZWRuaWUgZGxhIHphcHJlemVudG93YW5pYQorICAgIHdzenlzdGtpY2ggbGl0ZXIsIHpuYWvDs3cgcHJ6ZXN0YW5rb3d5Y2ggaSBwb3B1bGFybnljaCBzeW1ib2xpIHRlY2huaWN6bnljaC4KKworICAgIElubnltIHByb2JsZW1lbSBiecWCbywgxbxlIGtvZG93YW5pYSB0ZSBrb2xpZG93YcWCeSB6ZSBzb2LEhS4gRHdhLCByw7PFvG5lIGtvZG93YW5pYSB1xbx5d2HFgnkgamVkbmVqIGxpY3pieSBkbGEgZHd1CisgICAgcsOzxbxueWNoIHpuYWvDs3cgbHViIHLDs8W8bnljaCBsaWN6YiBkbGEgdGVnbyBzYW1lZ28gem5ha3UuIFdzenlzdGtpZSBrb21wdXRlcnkgKG1pxJlkenkgaW5ueW1pIHNlcndlcnkpIG11c3rEhQorICAgIHdzcGllcmHEhyB3c3p5c3RraWUgdGUga29kb3dhbmlhLCBnZHnFvCBkYW5lIHByemVzecWCYW5lIG1pxJlkenkgcsOzxbxueW1pIHN5c3RlbWFtaSBvcGVyYWN5am55bWkgemF3c3plCisgICAgbmFyYcW8b25lIHPEhSBuYSB1c3prb2R6ZW5pZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iV0lVLXRyIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTkvdHIiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXZyZW5zZWwgS29kIE5lZGlyPworCisgICAgRXZyZW5zZWwgS29kIGhlciB5YXrEsSBrYXJha3RlcmkgacOnaW4gYmlyIHZlIHlhbG7EsXogYmlyIHNhecSxIMWfYXJ0IGtvxZ9hciwKKyAgICBoYW5naSBhbHR5YXDEsSwKKyAgICBoYW5naSB5YXrEsWzEsW0sCisgICAgaGFuZ2kgZGlsIG9sdXJzYSBvbHN1bi4KKworICAgIMSwbGtlIG9sYXJhaywgYmlsZ2lzYXlhcmxhciBzYWRlY2Ugc2F5xLFsYXJsYSBpxZ9sZW0geWFwYXJsYXIuIEtlbGltZWxlcmluIHZlIHlhesSxIGthcmFrdGVybGVyaW5pbiBoZXIgYmlyaSBpw6dpbgorICAgIGJpcmVyIHNhecSxIGF0YXJsYXIgdmUgYsO2eWxlIHNha2xhcmxhci4gRXZyZW5zZWwgS29kIGtlxZ9mZWRpbG1lZGVuIMO2bmNlLCBidSBzYXnEsWxhcsSxIGF0YW1hayBpw6dpbiBiaXLDp29rIMWfaWZyZWxlbWUKKyAgICB5w7ZudGVtaSB2YXJkxLEuIEFuY2FrLCB0w7xtIGJ1IGRpbGxlcmkgZ8O2c3RlcmViaWxlY2VrLCDDtnJuZcSfaW47IEF2cnVwYSBUb3BsdWx1xJ91IGLDvG55ZXNpbmRla2kgdMO8bSDDvGxrZWxlcmluIGRpbGxlcmluaQorICAgIGthcHNheWFjYWsgYmlyIHRlayDFn2lmcmVsZW1lIHnDtm50ZW1pIHlva3R1LiBCdW51biB5YW7EsXPEsXJhLCBzYWRlY2UgxLBuZ2lsaXpjZWRla2kgaGFyZmxlcmksIG5va3RhbGFtYQorICAgIGnFn2FyZXRsZXJpbmkgdmUgdGVrbmlrIHNlbWJvbGxlcmkga2Fwc2F5YW4gdGVrIGJpciDFn2lmcmVsZW1lIHnDtm50ZW1pIGRlIGJ1bHVubWFtYWt0YXlkxLEuCisKKyAgICBCdSDFn2lmcmVsZW1lIHnDtm50ZW1sZXJpIGtlbmRpIGFyYWxhcsSxbmRhIMOnZWxpxZ9tZWt0ZWRpci4gxLBraSBmYXJrbMSxIMWfaWZyZWxlbWUsIGF5bsSxIHNhecSxecSxIGlraSBmYXJrbMSxIGthcmFrdGVyZQorICAgIHZlcm1pxZ8gb2xhYmlsaXIgeWEgZGEgZmFya2zEsSBzYXnEsWxhciBheW7EsSBrYXJla3Rlcmkga29kbGF5YWJpbGlyLiBCaWxnaXNheWFybGFyLCDDtnplbGxpa2xlIHN1bnVjdWxhciwgYmlyw6dvaworICAgIMWfaWZyZWxlbWV5aSBkZXN0ZWtsZW1layB6b3J1bmRhZMSxcmxhcjsgdmVyaWxlciwgZmFya2zEsSDFn2lmcmVsZW1lIHZlIGFsdHlhcMSxbGFyZGFuIGdlw6dlcmtlbiBib3p1bG1hIHJpc2tpIHRhxZ/EsXJsYXIuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IldJVS10ci1RIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIHdpbmRvd3MtMTI1NC90ciI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICDigJxFdnJlbnNlbCBLb2TigJ0gTmVkaXI/CisKKyAgICBFdnJlbnNlbCBLb2QgaGVyIHlhesSxIGthcmFrdGVyaSBpw6dpbiBiaXIgdmUgeWFsbsSxeiBiaXIgc2F5xLEgxZ9hcnQga2/Fn2FyLAorICAgIGhhbmdpIGFsdHlhcMSxLAorICAgIGhhbmdpIHlhesSxbMSxbSwKKyAgICBoYW5naSBkaWwgb2x1cnNhIG9sc3VuLgorCisgICAgxLBsa2Ugb2xhcmFrLCBiaWxnaXNheWFybGFyIHNhZGVjZSBzYXnEsWxhcmxhIGnFn2xlbSB5YXBhcmxhci4gS2VsaW1lbGVyaW4gdmUgeWF6xLEga2FyYWt0ZXJsZXJpbmluIGhlciBiaXJpIGnDp2luCisgICAgYmlyZXIgc2F5xLEgYXRhcmxhciB2ZSBiw7Z5bGUgc2FrbGFybGFyLiBFdnJlbnNlbCBLb2Qga2XFn2ZlZGlsbWVkZW4gw7ZuY2UsIGJ1IHNhecSxbGFyxLEgYXRhbWFrIGnDp2luIGJpcsOnb2sgxZ9pZnJlbGVtZQorICAgIHnDtm50ZW1pIHZhcmTEsS4gQW5jYWssIHTDvG0gYnUgZGlsbGVyaSBnw7ZzdGVyZWJpbGVjZWssIMO2cm5lxJ9pbjsgQXZydXBhIFRvcGx1bHXEn3UgYsO8bnllc2luZGVraSB0w7xtIMO8bGtlbGVyaW4gZGlsbGVyaW5pCisgICAga2Fwc2F5YWNhayBiaXIgdGVrIMWfaWZyZWxlbWUgecO2bnRlbWkgeW9rdHUuIEJ1bnVuIHlhbsSxc8SxcmEsIHNhZGVjZSDEsG5naWxpemNlZGVraSBoYXJmbGVyaSwgbm9rdGFsYW1hCisgICAgacWfYXJldGxlcmluaSB2ZSB0ZWtuaWsgc2VtYm9sbGVyaSBrYXBzYXlhbiB0ZWsgYmlyIMWfaWZyZWxlbWUgecO2bnRlbWkgZGUgYnVsdW5tYW1ha3RheWTEsS4KKworICAgIEJ1IMWfaWZyZWxlbWUgecO2bnRlbWxlcmkga2VuZGkgYXJhbGFyxLFuZGEgw6dlbGnFn21la3RlZGlyLiDEsGtpIGZhcmtsxLEgxZ9pZnJlbGVtZSwgYXluxLEgc2F5xLF5xLEgaWtpIGZhcmtsxLEga2FyYWt0ZXJlCisgICAgdmVybWnFnyBvbGFiaWxpciB5YSBkYSBmYXJrbMSxIHNhecSxbGFyIGF5bsSxIGthcmVrdGVyaSBrb2RsYXlhYmlsaXIuIEJpbGdpc2F5YXJsYXIsIMO2emVsbGlrbGUgc3VudWN1bGFyLCBiaXLDp29rCisgICAgxZ9pZnJlbGVtZXlpIGRlc3Rla2xlbWVrIHpvcnVuZGFkxLFybGFyOyB2ZXJpbGVyLCBmYXJrbMSxIMWfaWZyZWxlbWUgdmUgYWx0eWFwxLFsYXJkYW4gZ2XDp2Vya2VuIGJvenVsbWEgcmlza2kgdGHFn8Sxcmxhci4KKworICAgIDwvdGVzdC1jYXNlPgorPC9jaGFyc2V0LWRldGVjdGlvbi10ZXN0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9UZXN0Q2hhcnNldERldGVjdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9UZXN0Q2hhcnNldERldGVjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ3MDYxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0ZGV0L1Rlc3RDaGFyc2V0RGV0ZWN0b3IuamF2YQpAQCAtMCwwICsxLDM3NiBAQAorLy8jI2hlYWRlcgorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNoYXJzZXRkZXQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5SZWFkZXI7CitpbXBvcnQgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0RGV0ZWN0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0TWF0Y2g7CisKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyNpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworLy8jZW5kaWYKKworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLio7CitpbXBvcnQgb3JnLnczYy5kb20uKjsKKworCisvKioKKyAqIEBhdXRob3IgYW5keQorICovCitwdWJsaWMgY2xhc3MgVGVzdENoYXJzZXREZXRlY3RvciBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdENoYXJzZXREZXRlY3RvcigpCisgICAgeworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFRlc3RDaGFyc2V0RGV0ZWN0b3IgdGVzdCA9IG5ldyBUZXN0Q2hhcnNldERldGVjdG9yKCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgQ2hlY2tBc3NlcnQoYm9vbGVhbiBleHApIHsKKyAgICAgICAgaWYgKGV4cCA9PSBmYWxzZSkgeworICAgICAgICAgICAgU3RyaW5nIG1zZzsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgIFN0YWNrVHJhY2VFbGVtZW50IGZhaWxQb2ludCA9IGUuZ2V0U3RhY2tUcmFjZSgpWzFdOworICAgICAgICAgICAgICAgIG1zZyA9ICJUZXN0IGZhaWx1cmUgaW4gZmlsZSAiICsgZmFpbFBvaW50LmdldEZpbGVOYW1lKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGF0IGxpbmUgIiArIGZhaWxQb2ludC5nZXRMaW5lTnVtYmVyKCk7CisvLyNlbHNlCisvLyMjICAgICAgICAgICBtc2cgPSAiVGVzdCBmYWlsdXJlICAiICsgZS5nZXRNZXNzYWdlKCkgOworLy8jZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHN0cmluZ0Zyb21SZWFkZXIoUmVhZGVyIHJlYWRlcikKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciAgID0gbmV3IGNoYXJbMTAyNF07CisgICAgICAgIGludCBieXRlc1JlYWQgICA9IDA7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgd2hpbGUgKChieXRlc1JlYWQgPSByZWFkZXIucmVhZChidWZmZXIsIDAsIDEwMjQpKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgc2IuYXBwZW5kKGJ1ZmZlciwgMCwgYnl0ZXNSZWFkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigic3RyaW5nRnJvbVJlYWRlcigpIGZhaWxlZDogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tNYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0LCBTdHJpbmcgdGVzdFN0cmluZywgU3RyaW5nIGVuY29kaW5nLCBTdHJpbmcgbGFuZ3VhZ2UsIFN0cmluZyBpZCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG0gPSBkZXQuZGV0ZWN0KCk7CisgICAgICAgIFN0cmluZyBkZWNvZGVkOworICAgICAgICAKKyAgICAgICAgaWYgKCEgbS5nZXROYW1lKCkuZXF1YWxzKGVuY29kaW5nKSkgeworICAgICAgICAgICAgZXJybG4oaWQgKyAiOiBlbmNvZGluZyBkZXRlY3Rpb24gZmFpbHVyZSAtIGV4cGVjdGVkICIgKyBlbmNvZGluZyArICIsIGdvdCAiICsgbS5nZXROYW1lKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdHJpbmcgY2hhcnNldE1hdGNoTGFuZ3VhZ2UgPSBtLmdldExhbmd1YWdlKCk7CisgICAgICAgIGlmICgobGFuZ3VhZ2UgIT0gbnVsbCAmJiAhY2hhcnNldE1hdGNoTGFuZ3VhZ2UuZXF1YWxzKGxhbmd1YWdlKSkKKyAgICAgICAgICAgIHx8IChsYW5ndWFnZSA9PSBudWxsICYmIGNoYXJzZXRNYXRjaExhbmd1YWdlICE9IG51bGwpCisgICAgICAgICAgICB8fCAobGFuZ3VhZ2UgIT0gbnVsbCAmJiBjaGFyc2V0TWF0Y2hMYW5ndWFnZSA9PSBudWxsKSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oaWQgKyAiLCAiICsgZW5jb2RpbmcgKyAiOiBsYW5ndWFnZSBkZXRlY3Rpb24gZmFpbHVyZSAtIGV4cGVjdGVkICIgKyBsYW5ndWFnZSArICIsIGdvdCAiICsgbS5nZXRMYW5ndWFnZSgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGVuY29kaW5nLnN0YXJ0c1dpdGgoIlVURi0zMiIpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRlY29kZWQgPSBtLmdldFN0cmluZygpOworICAgICAgICAKKyAgICAgICAgaWYgKCEgdGVzdFN0cmluZy5lcXVhbHMoZGVjb2RlZCkpIHsKKyAgICAgICAgICAgIGVycmxuKGlkICsgIiwgIiArIGVuY29kaW5nICsgIjogZ2V0U3RyaW5nKCkgZGlkbid0IHJldHVybiB0aGUgb3JpZ2luYWwgc3RyaW5nISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBkZWNvZGVkID0gc3RyaW5nRnJvbVJlYWRlcihtLmdldFJlYWRlcigpKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIHRlc3RTdHJpbmcuZXF1YWxzKGRlY29kZWQpKSB7CisgICAgICAgICAgICBlcnJsbihpZCArICIsICIgKyBlbmNvZGluZyArICI6IGdldFJlYWRlcigpIGRpZG4ndCB5aWVsZCB0aGUgb3JpZ2luYWwgc3RyaW5nISIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjaGVja0VuY29kaW5nKFN0cmluZyB0ZXN0U3RyaW5nLCBTdHJpbmcgZW5jb2RpbmcsIFN0cmluZyBpZCkKKyAgICB7CisgICAgICAgIFN0cmluZyBlbmMgPSBudWxsLCBsYW5nID0gbnVsbDsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIFN0cmluZ1tdIHNwbGl0ID0gZW5jb2Rpbmcuc3BsaXQoIi8iKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIFN0cmluZ1tdIHNwbGl0ID0gVXRpbGl0eS5zcGxpdChlbmNvZGluZywnLycpOworLy8jZW5kaWYKKyAgICAgICAgCisgICAgICAgIGVuYyA9IHNwbGl0WzBdOworICAgICAgICAKKyAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICAgIGxhbmcgPSBzcGxpdFsxXTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDaGFyc2V0RGV0ZWN0b3IgZGV0ID0gbmV3IENoYXJzZXREZXRlY3RvcigpOworICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL2lmIChlbmMuc3RhcnRzV2l0aCgiVVRGLTMyIikpIHsKKyAgICAgICAgICAgIC8vICAgIFVURjMyIHV0ZjMyID0gVVRGMzIuZ2V0SW5zdGFuY2UoZW5jKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vICAgIGJ5dGVzID0gdXRmMzIudG9CeXRlcyh0ZXN0U3RyaW5nKTsKKyAgICAgICAgICAgIC8vfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZnJvbSA9IGVuYzsKKworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlcyA9IHRlc3RTdHJpbmcuZ2V0Qnl0ZXMoZnJvbSk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIHNvbWUgcnVudGltZXMsIHRoZSBJU08tMjAyMi1DTiBjb252ZXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IGNvbnZlcnRzICp0byogVW5pY29kZSAtIHdlIGhhdmUgdG8gdXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8geC1JU08tMjAyMi1DTi1HQiB0byBjb252ZXJ0ICpmcm9tKiBVbmljb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyb20uZXF1YWxzKCJJU08tMjAyMi1DTiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSA9ICJ4LUlTTy0yMDIyLUNOLUdCIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGFueSBvdGhlciBjb252ZXJ0ZXJzIHRoYXQgY2FuJ3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgZnJvbSBVbmljb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHVlZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGFueSBlbmNvZGluZ3MgdGhhdCB0aGlzIHJ1bnRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3Qgc3VwcG9ydC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgLy99CisgICAgICAgIAorICAgICAgICAgICAgZGV0LnNldFRleHQoYnl0ZXMpOworICAgICAgICAgICAgY2hlY2tNYXRjaChkZXQsIHRlc3RTdHJpbmcsIGVuYywgbGFuZywgaWQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZXQuc2V0VGV4dChuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgIGNoZWNrTWF0Y2goZGV0LCB0ZXN0U3RyaW5nLCBlbmMsIGxhbmcsIGlkKTsKKyAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihpZCArICI6ICIgKyBlLnRvU3RyaW5nKCkgKyAiZW5jPSIgKyBlbmMpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0aW9uKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yICBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIGlmKGRldD09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNvbnN0cnVjdCBhIGNoYXJzZXQgZGV0ZWN0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgW10gY2hhcnNldE5hbWVzID0gQ2hhcnNldERldGVjdG9yLmdldEFsbERldGVjdGFibGVDaGFyc2V0cygpOworICAgICAgICBDaGVja0Fzc2VydChjaGFyc2V0TmFtZXMubGVuZ3RoICE9IDApOworICAgICAgICBmb3IgKGk9MDsgaTxjaGFyc2V0TmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIENoZWNrQXNzZXJ0KGNoYXJzZXROYW1lc1tpXS5lcXVhbHMoIiIpID09IGZhbHNlKTsgCisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIlwiIiArIGNoYXJzZXROYW1lc1tpXSArICJcIiIpOworICAgICAgICB9CisgICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnB1dEZpbHRlcigpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gIjxhPiA8bG90PiA8b2Y+IDxFbmdsaXNoPiA8aW5zaWRlPiA8dGhlPiA8bWFya3VwPiBVbiB0clx1MDBFOHMgcGV0aXQgcGV1IGRlIEZyYW5cdTAwRTdhaXMuIDx0bz4gPGNvbmZ1c2U+IDx0aGU+IDxkZXRlY3Rvcj4iOworICAgICAgICBieXRlW10gYnl0ZXMgPSBzLmdldEJ5dGVzKCJJU08tODg1OS0xIik7CisgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIENoYXJzZXRNYXRjaCBtOworICAgICAgICAKKyAgICAgICAgZGV0LmVuYWJsZUlucHV0RmlsdGVyKHRydWUpOworICAgICAgICBpZiAoIWRldC5pbnB1dEZpbHRlckVuYWJsZWQoKSl7CisgICAgICAgICAgICBlcnJsbigiaW5wdXQgZmlsdGVyIHNob3VsZCBiZSBlbmFibGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImZyIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbnB1dCBmaWx0ZXIgZGlkIG5vdCBzdHJpcCBtYXJrdXAhIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5lbmFibGVJbnB1dEZpbHRlcihmYWxzZSk7CisgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImVuIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bmZpbHRlcmVkIGlucHV0IGRpZCBub3QgZGV0ZWN0IGFzIEVuZ2xpc2ghIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVURjgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyAgcyA9ICJUaGlzIGlzIGEgc3RyaW5nIHdpdGggc29tZSBub24tYXNjaWkgY2hhcmFjdGVycyB0aGF0IHdpbGwgIiArCisgICAgICAgICAgICAgICAgICAgICJiZSBjb252ZXJ0ZWQgdG8gVVRGLTgsIHRoZW4gc2hvdmVkIHRocm91Z2ggdGhlIGRldGVjdGlvbiBwcm9jZXNzLiAgIiArCisgICAgICAgICAgICAgICAgICAgICJcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTUiICsKKyAgICAgICAgICAgICAgICAgICAgIlN1cmUgd291bGQgYmUgbmljZSBpZiBvdXIgc291cmNlIGNvdWxkIGNvbnRhaW4gVW5pY29kZSBkaXJlY3RseSEiOworICAgICAgICBieXRlIFtdIGJ5dGVzID0gcy5nZXRCeXRlcygiVVRGLTgiKTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgU3RyaW5nIHJldHJpZXZlZFM7CisgICAgICAgIFJlYWRlciByZWFkZXI7CisgICAgICAgIAorICAgICAgICByZXRyaWV2ZWRTID0gZGV0LmdldFN0cmluZyhieXRlcywgIlVURi04Iik7CisgICAgICAgIENoZWNrQXNzZXJ0KHMuZXF1YWxzKHJldHJpZXZlZFMpKTsKKyAgICAgICAgCisgICAgICAgIHJlYWRlciA9IGRldC5nZXRSZWFkZXIobmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSwgIlVURi04Iik7CisgICAgICAgIENoZWNrQXNzZXJ0KHMuZXF1YWxzKHN0cmluZ0Zyb21SZWFkZXIocmVhZGVyKSkpOworICAgICAgICBkZXQuc2V0RGVjbGFyZWRFbmNvZGluZygiVVRGLTgiKTsJLy8gSml0dGVyYnVnIDQ0NTEsIGZvciBjb3ZlcmFnZQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VVRGMTYoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBTdHJpbmcgc291cmNlID0gCisgICAgICAgICAgICAgICAgInUwNjIzXHUwNjQ4XHUwNjMxXHUwNjQ4XHUwNjI4XHUwNjI3LCBcdTA2MjhcdTA2MzFcdTA2NDVcdTA2MmNcdTA2NGFcdTA2MjdcdTA2MmEgIiArCisgICAgICAgICAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDYyZFx1MDYyN1x1MDYzM1x1MDY0OFx1MDYyOCBcdTAwMmJcdTAwMjBcdTA2MjdcdTA2NDZcdTA2MmFcdTA2MzFcdTA2NDZcdTA2NGFcdTA2MmEiOworICAgICAgICAKKyAgICAgICAgYnl0ZVtdIGJlQnl0ZXMgPSBzb3VyY2UuZ2V0Qnl0ZXMoIlVuaWNvZGVCaWciKTsKKyAgICAgICAgYnl0ZVtdIGxlQnl0ZXMgPSBzb3VyY2UuZ2V0Qnl0ZXMoIlVuaWNvZGVMaXR0bGUiKTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG07CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChiZUJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TmFtZSgpLmVxdWFscygiVVRGLTE2QkUiKSkgeworICAgICAgICAgICAgZXJybG4oIkVuY29kaW5nIGRldGVjdGlvbiBmYWlsdXJlOiBleHBlY3RlZCBVVEYtMTZCRSwgZ290ICIgKyBtLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGxlQnl0ZXMpOworICAgICAgICBtID0gZGV0LmRldGVjdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKCEgbS5nZXROYW1lKCkuZXF1YWxzKCJVVEYtMTZMRSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRW5jb2RpbmcgZGV0ZWN0aW9uIGZhaWx1cmU6IGV4cGVjdGVkIFVURi0xNkxFLCBnb3QgIiArIG0uZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICAgICAgaW50IGNvbmZpZGVuY2UgPSBtLmdldENvbmZpZGVuY2UoKTsgCisgICAgICAgIGlmKGNvbmZpZGVuY2UgIT0gMTAwKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgY29uZmlkZW5jZSBsZXZlbCAiICsgY29uZmlkZW5jZSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IG1hdGNoVHlwZSA9IG0uZ2V0TWF0Y2hUeXBlKCk7CisgICAgICAgIGlmKG1hdGNoVHlwZSAhPSAwKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgbWF0Y2hUeXBlIGxldmVsICIgKyBtYXRjaFR5cGUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDMUJ5dGVzKCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgU3RyaW5nIHNJU08gPQorICAgICAgICAgICAgIlRoaXMgaXMgYSBzbWFsbCBzYW1wbGUgb2Ygc29tZSBFbmdsaXNoIHRleHQuIEp1c3QgZW5vdWdoIHRvIGJlIHN1cmUgdGhhdCBpdCBkZXRlY3RzIGNvcnJlY3RseS4iOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHNXaW5kb3dzID0KKyAgICAgICAgICAgICJUaGlzIGlzIGFub3RoZXIgc21hbGwgc2FtcGxlIG9mIHNvbWUgRW5nbGlzaCB0ZXh0LiBKdXN0IGVub3VnaCB0byBiZSBzdXJlIHRoYXQgaXQgZGV0ZWN0cyBjb3JyZWN0bHkuIEl0IGFsc28gaW5jbHVkZXMgc29tZSBcdTIwMUNDMVx1MjAxRCBieXRlcy4iOworCisgICAgICAgIGJ5dGVbXSBiSVNPICAgICA9IHNJU08uZ2V0Qnl0ZXMoIklTTy04ODU5LTEiKTsKKyAgICAgICAgYnl0ZVtdIGJXaW5kb3dzID0gc1dpbmRvd3MuZ2V0Qnl0ZXMoIndpbmRvd3MtMTI1MiIpOworICAgICAgICAKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG07CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChiV2luZG93cyk7CisgICAgICAgIG0gPSBkZXQuZGV0ZWN0KCk7CisgICAgICAgIAorICAgICAgICBpZiAobS5nZXROYW1lKCkgIT0gIndpbmRvd3MtMTI1MiIpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXh0IHdpdGggQzEgYnl0ZXMgbm90IGNvcnJlY3RseSBkZXRlY3RlZCBhcyB3aW5kb3dzLTEyNTIuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGJJU08pOworICAgICAgICBtID0gZGV0LmRldGVjdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG0uZ2V0TmFtZSgpICE9ICJJU08tODg1OS0xIikgeworICAgICAgICAgICAgZXJybG4oIlRleHQgd2l0aG91dCBDMSBieXRlcyBub3QgY29ycmVjdGx5IGRldGVjdGVkIGFzIElTTy04ODU5LTEuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERldGVjdGlvbigpCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyAgT3BlbiBhbmQgcmVhZCB0aGUgdGVzdCBkYXRhIGZpbGUuCisgICAgICAgIC8vCisgICAgICAgIC8vSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IFRlc3RDaGFyc2V0RGV0ZWN0b3IuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbSgiQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbCIpOworICAgICAgICAgICAgaWYgKGlzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IG9wZW4gdGVzdCBkYXRhIGZpbGUgQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9pc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsICJVVEYtOCIpOyAKKworICAgICAgICAgICAgLy8gU2V0IHVwIGFuIHhtbCBwYXJzZXIuCisgICAgICAgICAgICBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5IGZhY3RvcnkgPSBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZhY3Rvcnkuc2V0SWdub3JpbmdDb21tZW50cyh0cnVlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRG9jdW1lbnRCdWlsZGVyIGJ1aWxkZXIgPSBmYWN0b3J5Lm5ld0RvY3VtZW50QnVpbGRlcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBQYXJzZSB0aGUgeG1sIGNvbnRlbnQgZnJvbSB0aGUgdGVzdCBjYXNlIGZpbGUuCisgICAgICAgICAgICBEb2N1bWVudCBkb2MgPSBidWlsZGVyLnBhcnNlKGlzLCBudWxsKTsKKyAgICAgICAgICAgIEVsZW1lbnQgcm9vdCA9IGRvYy5nZXREb2N1bWVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTm9kZUxpc3QgdGVzdENhc2VzID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGVzdC1jYXNlIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFByb2Nlc3MgZWFjaCB0ZXN0IGNhc2UKKyAgICAgICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgdGVzdENhc2VzLmdldExlbmd0aCgpOyBuICs9IDEpIHsKKyAgICAgICAgICAgICAgICBOb2RlIHRlc3RDYXNlID0gdGVzdENhc2VzLml0ZW0obik7CisgICAgICAgICAgICAgICAgTmFtZWROb2RlTWFwIGF0dHJzID0gdGVzdENhc2UuZ2V0QXR0cmlidXRlcygpOworICAgICAgICAgICAgICAgIE5vZGVMaXN0IHRlc3REYXRhICA9IHRlc3RDYXNlLmdldENoaWxkTm9kZXMoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdFRleHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gYXR0cnMuZ2V0TmFtZWRJdGVtKCJpZCIpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIFN0cmluZyBlbmNvZGluZ3MgPSBhdHRycy5nZXROYW1lZEl0ZW0oImVuY29kaW5ncyIpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIENvbGxlY3QgdGhlIHRlc3QgY2FzZSB0ZXh0LgorICAgICAgICAgICAgICAgIGZvciAoaW50IHQgPSAwOyB0IDwgdGVzdERhdGEuZ2V0TGVuZ3RoKCk7IHQgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBOb2RlIHRleHROb2RlID0gdGVzdERhdGEuaXRlbSh0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHRlc3RUZXh0LmFwcGVuZCh0ZXh0Tm9kZS5nZXROb2RlVmFsdWUoKSk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB0ZXN0IHRleHQgd2l0aCBlYWNoIGVuY29kaW5nIC8gbGFuZ3VhZ2UgcGFpci4KKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9IHRlc3RUZXh0LnRvU3RyaW5nKCk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgIFN0cmluZ1tdIGVuY29kaW5nTGlzdCA9IGVuY29kaW5ncy5zcGxpdCgiICIpOworLy8jZWxzZQorLy8jIyAgICAgICAgICAgICAgICBTdHJpbmdbXSBlbmNvZGluZ0xpc3QgPSBVdGlsaXR5LnNwbGl0KGVuY29kaW5ncywgJyAnKTsKKy8vI2VuZGlmCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgZSA9IDA7IGUgPCBlbmNvZGluZ0xpc3QubGVuZ3RoOyBlICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tFbmNvZGluZyh0ZXN0U3RyaW5nLCBlbmNvZGluZ0xpc3RbZV0sIGlkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJleGNlcHRpb24gd2hpbGUgcHJvY2Vzc2luZyB0ZXN0IGNhc2VzOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGMyZWUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNsZHI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIGNvbGxhdGlvbiBhbmQgc2VhcmNoIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICJUZXN0Q0xEUlZzSUNVIiwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIkFsbCBDbGRyIFZzIElDVSBUZXN0cyIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDbGRyIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RDTERSVnNJQ1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RDTERSVnNJQ1UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2M2MTI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdENMRFJWc0lDVS5qYXZhCkBAIC0wLDAgKzEsNTY1IEBACisvLyMjaGVhZGVyCisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBNYXJrIERhdmlzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2xkcjsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci51dGlsLkxhbmd1YWdlVGFnUGFyc2VyOworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci51dGlsLlV0aWxpdHk7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uU3RyaW5nV3JpdGVyOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKK2ltcG9ydCBqYXZheC54bWwucGFyc2Vycy5TQVhQYXJzZXI7CitpbXBvcnQgamF2YXgueG1sLnBhcnNlcnMuU0FYUGFyc2VyRmFjdG9yeTsKKworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci50ZXN0LkNMRFJUZXN0OworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci50b29sLkdlbmVyYXRlQ2xkclRlc3RzOworaW1wb3J0IG9yZy54bWwuc2F4LkF0dHJpYnV0ZXM7CitpbXBvcnQgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uOworaW1wb3J0IG9yZy54bWwuc2F4LmhlbHBlcnMuRGVmYXVsdEhhbmRsZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuQmFnRm9ybWF0dGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50b29sLlVPcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyAqIFRoaXMgaXMgYSBmaWxlIHRoYXQgcnVucyB0aGUgQ0xEUiB0ZXN0cyBmb3IgSUNVNEosIHRvIHZlcmlmeSB0aGF0IElDVTRKIGltcGxlbWVudHMgdGhlbQorICogY29ycmVjdGx5LgorICogV0FSTklORzogCisgKiAxLiBmb3IgdGhpcyB0byB3b3JrIHJpZ2h0LCB5b3UgaGF2ZSB0byBoYXZlIGRvd25sb2FkZWQgdGhlIENMRFIgZGF0YSwgYW5kCisgKiB0aGVuIHNldCB0aGUgQ0xEUiBkaXJlY3RvcnkgY29ycmVjdGx5LCB1c2luZworICogLURDTERSX0RJUkVDVE9SWT08dG9wIGxldmVsIG9mIGNsZHI+CisgKiAyLiBZb3UgcHJvYmFibHkgYWxzbyBuZWVkIHRvIGluY3JlYXNlIG1lbW9yeSwgZWcgd2l0aCAtWG14NTEybQorICogMy4gRm9yIHNwZWVkLCB5b3Ugc2hvdWxkIGFsc28gdXNlIC1EQ0xEUl9EVERfQ0FDSEU9QzpcY2xkcmNhY2hlXCwgd2hlcmUKKyAqIEM6XGNsZHJjYWNoZVwgaXMgYSB0ZW1wIGRpcmVjdG9yeSB0byBrZWVwIHRoZSBwcm9ncmFtIGZyb20gaGl0dGluZyB0aGUgbmV0IGZvcgorICogZWFjaCBmaWxlIGFjY2Vzcy4KKyAqIDQuIFlvdSBtYXkgdXNlIG90aGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBuYXJyb3cgd2hhdCB5b3UgdGVzdC4gRWcKKyAqIC1EWE1MX01BVENIPSIuKiIgLURURVNUX01BVENIPSJ6b25lLioiIC1EWk9ORV9NQVRDSD0iKD8hQW1lcmljYS9BcmdlbnRpbmEpLioiIAorICogICBhLiAtRFhNTF9NQVRDSD0iZGUuKiIgKG9yIHdoYXRldmVyIHJlZ2V4IHlvdSB3YW50KSB0byBqdXN0CisgKiAgIHRlc3QgY2VydGFpbiBsb2NhbGVzLgorICogICBiLiAtRFRFU1RfTUFUQ0g9InpvbmUuKiIgKG9yIHdoYXRldmVyIHJlZ2V4IHlvdSB3YW50KSB0byBqdXN0IHRlc3QgY29sbGF0aW9uLCBudW1iZXJzLCBldGMuCisgKiAgIGMuIC1EWk9ORV9NQVRDSD0iLipNb3Njb3cuKiIgKHRvIG9ubHkgdGVzdCBjZXJ0YWluIHpvbmVzKQorICogQGF1dGhvciBtZWRhdmlzCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0Q0xEUlZzSUNVIGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAvL1VMb2NhbGUgdUxvY2FsZSA9IFVMb2NhbGUuRU5HTElTSDsKKyAgICAvL0xvY2FsZSBvTG9jYWxlID0gTG9jYWxlLkVOR0xJU0g7IC8vIFRPRE8gRHJvcCBvbmNlIElDVTRKIGhhcyBVTG9jYWxlIGV2ZXJ5d2hlcmUKKyAgICAvL3N0YXRpYyBQcmludFdyaXRlciBsb2c7CisgICAgU0FYUGFyc2VyIFNBWDsKKyAgICBzdGF0aWMgTWF0Y2hlciBMT0NBTEVfTUFUQ0gsIFRFU1RfTUFUQ0gsIFpPTkVfTUFUQ0g7CisgICAgc3RhdGljIFN0cmluZyBDTERSX0RJUkVDVE9SWTsKKyAgICBzdGF0aWMgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgTE9DQUxFX01BVENIID0gZ2V0RW52aXJvbm1lbnRSZWdleCgiWE1MX01BVENIIiwgIi4qIik7CisgICAgICAgIFRFU1RfTUFUQ0ggPSBnZXRFbnZpcm9ubWVudFJlZ2V4KCJURVNUX01BVENIIiwgIi4qIik7CisgICAgICAgIFpPTkVfTUFUQ0ggPSBnZXRFbnZpcm9ubWVudFJlZ2V4KCJaT05FX01BVENIIiwgIi4qIik7IC8vIGV4YW1wbGUKKworICAgICAgICAvLyBXQVJOSU5HOiBUSElTIElTIFRFTVBPUkFSWSBVTlRJTCBJIEdFVCBUSEUgRklMRVMgU1RSQUlHSFRFTkVEIE9VVAorICAgICAgICBDTERSX0RJUkVDVE9SWSA9IGdldEVudmlyb25tZW50U3RyaW5nKCJDTERSX0RJUkVDVE9SWSIsICJDOlxcVW5pY29kZS1DVlMyXFxjbGRyXFwiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgfQorICAgIAorICAgIC8qKgorCSAqIAorCSAqLworCXByaXZhdGUgc3RhdGljIE1hdGNoZXIgZ2V0RW52aXJvbm1lbnRSZWdleChTdHJpbmcga2V5LCBTdHJpbmcgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgIHJldHVybiBQYXR0ZXJuLmNvbXBpbGUoZ2V0RW52aXJvbm1lbnRTdHJpbmcoa2V5LCBkZWZhdWx0VmFsdWUpKS5tYXRjaGVyKCIiKTsKKwl9CisKKwkvKioKKwkgKiAKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RW52aXJvbm1lbnRTdHJpbmcoU3RyaW5nIGtleSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgeworCQlTdHJpbmcgdGVtcCA9IFN5c3RlbS5nZXRQcm9wZXJ0eShrZXkpOworICAgICAgICBpZiAodGVtcCA9PSBudWxsKSB0ZW1wID0gZGVmYXVsdFZhbHVlOworICAgICAgICBlbHNlIFN5c3RlbS5vdXQucHJpbnQoIi1EIiArIGtleSArICI9XCIiICsgdGVtcCArICJcIiAiKTsKKwkJcmV0dXJuIHRlbXA7CisJfQorCisJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAJbmV3IFRlc3RDTERSVnNJQ1UoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgIFNldCBhbGxMb2NhbGVzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RmlsZXMoKSB0aHJvd3MgU0FYRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgIAkvLyBvbmx5IGdldCBJQ1UncyBsb2NhbGVzCisgICAgICAgIFNldCBzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgYWRkTG9jYWxlcyhOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSwgcyk7CisgICAgICAgIGFkZExvY2FsZXMoRGF0ZUZvcm1hdC5nZXRBdmFpbGFibGVVTG9jYWxlcygpLCBzKTsKKyAgICAgICAgYWRkTG9jYWxlcyhDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpLCBzKTsKKyAgICAgICAgCisgICAgICAgIC8vIGZpbHRlciwgdG8gbWFrZSB0cmFja2luZyBkb3duIGJ1Z3MgZWFzaWVyCisgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gcy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgIAlTdHJpbmcgbG9jYWxlID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgIAlpZiAoIUxPQ0FMRV9NQVRDSC5yZXNldChsb2NhbGUpLm1hdGNoZXMoKSkgY29udGludWU7CisgICAgICAgICAgICBfdGVzdChsb2NhbGUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZExvY2FsZXMoVUxvY2FsZVtdIGxpc3QsIENvbGxlY3Rpb24gcykgeworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAJCWFsbExvY2FsZXMuYWRkKGxpc3RbaV0udG9TdHJpbmcoKSk7CisgICAgCQlzLmFkZChsaXN0W2ldLmdldExhbmd1YWdlKCkpOworICAgIAl9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoVUxvY2FsZSB1TG9jYWxlKSB7CisgICAgCVN0cmluZyByZXN1bHQgPSB1TG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgCVN0cmluZyBzY3JpcHQgPSB1TG9jYWxlLmdldFNjcmlwdCgpOworICAgIAlpZiAoc2NyaXB0Lmxlbmd0aCgpICE9IDApIHJlc3VsdCArPSAiXyIgKyBzY3JpcHQ7CisgICAgCXJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgX3Rlc3QoU3RyaW5nIGxvY2FsZU5hbWUpIHRocm93cyBTQVhFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgLy91TG9jYWxlID0gbmV3IFVMb2NhbGUobG9jYWxlTmFtZSk7CisgICAgICAgIC8vb0xvY2FsZSA9IHVMb2NhbGUudG9Mb2NhbGUoKTsKKworCQkJRmlsZSBmID0gbmV3IEZpbGUoQ0xEUl9ESVJFQ1RPUlkgKyAiY29tbW9uXFx0ZXN0XFwiKyBsb2NhbGVOYW1lICsgIi54bWwiKTsKKwkJCWxvZ2xuKCJUZXN0aW5nICIgKyBmLmdldENhbm9uaWNhbFBhdGgoKSk7CisJCQlTQVgucGFyc2UoZiwgREVGQVVMVF9IQU5ETEVSKTsKKyAgICB9CisKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9Vbmljb2RlID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImFueS1oZXgiKTsKKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBzaG93U3RyaW5nKFN0cmluZyBpbikgeworICAgICAgICByZXR1cm4gIlx1MDBBQiIgKyBpbiArICJcdTAwQkIgKCIgKyB0b1VuaWNvZGUudHJhbnNsaXRlcmF0ZShpbikgKyAiKSI7CisgICAgfQorICAgIC8vID09PT09PT09PT09PSBTQVggSGFuZGxlciBJbmZyYXN0cnVjdHVyZSA9PT09PT09PT09PT0KKworICAgIGFic3RyYWN0IHB1YmxpYyBjbGFzcyBIYW5kbGVyIHsKKyAgICAgICAgTWFwIHNldHRpbmdzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIExpc3QgY3VycmVudExvY2FsZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGludCBmYWlsdXJlcyA9IDA7CisKKyAgICAgICAgdm9pZCBzZXROYW1lKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisgICAgICAgIHZvaWQgc2V0KFN0cmluZyBhdHRyaWJ1dGVOYW1lLCBTdHJpbmcgYXR0cmlidXRlVmFsdWUpIHsKKyAgICAgICAgICAgIC8vaWYgKERFQlVHKSBsb2dsbihhdHRyaWJ1dGVOYW1lICsgIiA9PiAiICsgYXR0cmlidXRlVmFsdWUpOworICAgICAgICAgICAgc2V0dGluZ3MucHV0KGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2b2lkIGNoZWNrUmVzdWx0KFN0cmluZyB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKCJ0cnVlIi5lcXVhbHMoc2V0dGluZ3MuZ2V0KCJkcmFmdCIpKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsgLy8gc2tpcCBkcmFmdAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIAlpbnQgeCA9IDE7IC8vIGZvciBkZWJ1ZyBzdG9wcGluZworICAgICAgICAgICAgfQorICAgICAgICAJVUxvY2FsZSB1bCA9IG5ldyBVTG9jYWxlKCJ4eCIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnRMb2NhbGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHVsID0gKFVMb2NhbGUpY3VycmVudExvY2FsZXMuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICAvL2xvZ2xuU0FYKCIgIENoZWNraW5nICIgKyB1bCArICIoIiArIHVsLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuRU5HTElTSCkgKyAiKSIgKyAiIGZvciAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJlc3VsdCh1bCwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbHVyZXMgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlx0VG90YWwgRmFpbHVyZXM6ICIgKyBmYWlsdXJlcyArICJcdCIgKyB1bCArICIoIiArIHVsLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuRU5HTElTSCkgKyAiKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXMgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAlTdHJpbmdXcml0ZXIgc3cgPSBuZXcgU3RyaW5nV3JpdGVyKCk7CisgICAgICAgICAgICAJUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOworICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKHB3KTsKKyAgICAgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb246IExvY2FsZTogIiArIHVsICsgIixcdFZhbHVlOiA8IiArIHZhbHVlICsgIj5cclxuIiArIHN3LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGxvZ2xuU0FYKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IG1lc3NhZ2UgKyAiXHRbIiArIG5hbWU7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2V0dGluZ3Mua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSA9IChTdHJpbmcpIHNldHRpbmdzLmdldChhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgICAgICAgICB0ZW1wICs9ICIgIiArIGF0dHJpYnV0ZU5hbWUgKyAiPTwiICsgYXR0cmlidXRlVmFsdWUgKyAiPiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbih0ZW1wICsgIl0iKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgbG9va3VwVmFsdWUoT2JqZWN0IHgsIE9iamVjdFtdIGxpc3QpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh4LmVxdWFscyhsaXN0W2ldKSkgcmV0dXJuIGk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsblNBWCgiVW5rbm93biBTdHJpbmc6ICIgKyB4KTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBhYnN0cmFjdCB2b2lkIGhhbmRsZVJlc3VsdChVTG9jYWxlIGN1cnJlbnRMb2NhbGUsIFN0cmluZyB2YWx1ZSkgdGhyb3dzIEV4Y2VwdGlvbjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVzCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRBdHRyaWJ1dGVzKEF0dHJpYnV0ZXMgYXR0cmlidXRlcykgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZUxpc3QgPSBhdHRyaWJ1dGVzLmdldFZhbHVlKCJsb2NhbGVzIik7CisgICAgICAgICAgICBTdHJpbmdbXSBjdXJyZW50TG9jYWxlU3RyaW5nID0gbmV3IFN0cmluZ1s1MF07CisgICAgICAgICAgICBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuc3BsaXQobG9jYWxlTGlzdCwgJyAnLCBjdXJyZW50TG9jYWxlU3RyaW5nKTsKKyAgICAgICAgICAgIGN1cnJlbnRMb2NhbGVzLmNsZWFyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnRMb2NhbGVTdHJpbmcubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudExvY2FsZVN0cmluZ1tpXS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYWxsTG9jYWxlcy5jb250YWlucygiIikpIHsKKyAgICAgICAgICAgICAgICAJbG9nbG4oIlNraXBwaW5nIGxvY2FsZSwgbm90IGluIElDVTRKOiAiICsgY3VycmVudExvY2FsZVN0cmluZ1tpXSk7CisgICAgICAgICAgICAgICAgCWNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXJyZW50TG9jYWxlcy5hZGQobmV3IFVMb2NhbGUoY3VycmVudExvY2FsZVN0cmluZ1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKERFQlVHKSBsb2dsbigiU2V0dGluZyBsb2NhbGVzOiAiICsgY3VycmVudExvY2FsZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEhhbmRsZXIgZ2V0SGFuZGxlcihTdHJpbmcgbmFtZSwgQXR0cmlidXRlcyBhdHRyaWJ1dGVzKSB7CisgICAgICAgIGlmIChERUJVRykgbG9nbG4oIkNyZWF0aW5nIEhhbmRsZXI6ICIgKyBuYW1lKTsKKyAgICAgICAgSGFuZGxlciByZXN1bHQgPSAoSGFuZGxlcikgUmVnaXN0ZXJlZEhhbmRsZXJzLmdldChuYW1lKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSBsb2dsbigiVW5leHBlY3RlZCB0ZXN0IHR5cGU6ICIgKyBuYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEhhbmRsZXIoU3RyaW5nIG5hbWUsIEhhbmRsZXIgaGFuZGxlcikgeworICAgICAgICBpZiAoIVRFU1RfTUFUQ0gucmVzZXQobmFtZSkubWF0Y2hlcygpKSBoYW5kbGVyID0gbmV3IE51bGxIYW5kbGVyKCk7CisgICAgICAgIGhhbmRsZXIuc2V0TmFtZShuYW1lKTsKKyAgICAgICAgUmVnaXN0ZXJlZEhhbmRsZXJzLnB1dChuYW1lLCBoYW5kbGVyKTsKKyAgICB9CisgICAgTWFwIFJlZ2lzdGVyZWRIYW5kbGVycyA9IG5ldyBIYXNoTWFwKCk7CisgICAgCisgICAgY2xhc3MgTnVsbEhhbmRsZXIgZXh0ZW5kcyBIYW5kbGVyIHsKKwkJdm9pZCBoYW5kbGVSZXN1bHQoVUxvY2FsZSBjdXJyZW50TG9jYWxlLCBTdHJpbmcgdmFsdWUpIHRocm93cyBFeGNlcHRpb24ge30gICAgICAgIAorICAgIH0KKworICAgIC8vID09PT09PT09PT09PSBTdGF0aWNzIGZvciBEYXRlL051bWJlciBTdXBwb3J0ID09PT09PT09PT09PQorCisgICAgc3RhdGljIFRpbWVab25lIHV0YyA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICBzdGF0aWMgRGF0ZUZvcm1hdCBpc28gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTS1kZCdUJ0hIOm1tOnNzJ1onIik7CisgICAgeworICAgICAgICBpc28uc2V0VGltZVpvbmUodXRjKTsKKyAgICB9CisgICAgc3RhdGljIGludFtdIERhdGVGb3JtYXRWYWx1ZXMgPSB7LTEsIERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuRlVMTH07CisgICAgc3RhdGljIFN0cmluZ1tdIERhdGVGb3JtYXROYW1lcyA9IHsibm9uZSIsICJzaG9ydCIsICJtZWRpdW0iLCAibG9uZyIsICJmdWxsIn07CisKKyAgICBzdGF0aWMgU3RyaW5nW10gTnVtYmVyTmFtZXMgPSB7InN0YW5kYXJkIiwgImludGVnZXIiLCAiZGVjaW1hbCIsICJwZXJjZW50IiwgInNjaWVudGlmaWMiLCAiR0JQIn07CisKKworICAgIC8vID09PT09PT09PT09PSBIYW5kbGVyIGZvciBDb2xsYXRpb24gPT09PT09PT09PT09IAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGNvbnRyb2xzQW5kU3BhY2UgPSBuZXcgVW5pY29kZVNldCgiWzpjYzpdIik7CisgICAgCisgICAgc3RhdGljIFN0cmluZyByZW1vdmUoU3RyaW5nIGluLCBVbmljb2RlU2V0IHRvUmVtb3ZlKSB7CisgICAgCWludCBjcDsKKyAgICAJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBpbi5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgCQljcCA9IFVURjE2LmNoYXJBdChpbiwgaSk7CisgICAgCQlpZiAoIXRvUmVtb3ZlLmNvbnRhaW5zKGNwKSkgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY3ApOworICAgIAl9CisgICAgCXJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICB7CisJCWFkZEhhbmRsZXIoImNvbGxhdGlvbiIsIG5ldyBIYW5kbGVyKCkgeworCQkJcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgY3VycmVudExvY2FsZSwgU3RyaW5nIHZhbHVlKSB7CisJCQkJQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoY3VycmVudExvY2FsZSk7CisJCQkJU3RyaW5nIGxhc3RMaW5lID0gIiI7CisJCQkJaW50IGNvdW50ID0gMDsKKwkJCQlmb3IgKGludCBwb3MgPSAwOyBwb3MgPCB2YWx1ZS5sZW5ndGgoKTspIHsKKwkJCQkJaW50IG5leHRQb3MgPSB2YWx1ZS5pbmRleE9mKCdcbicsIHBvcyk7CisJCQkJCWlmIChuZXh0UG9zIDwgMCkKKwkJCQkJCW5leHRQb3MgPSB2YWx1ZS5sZW5ndGgoKTsKKwkJCQkJU3RyaW5nIGxpbmUgPSB2YWx1ZS5zdWJzdHJpbmcocG9zLCBuZXh0UG9zKTsKKwkJCQkJbGluZSA9IHJlbW92ZShsaW5lLCBjb250cm9sc0FuZFNwYWNlKTsgLy8gSEFDSyBmb3IgU0FYCisJCQkJCWlmIChsaW5lLnRyaW0oKS5sZW5ndGgoKSAhPSAwKSB7IC8vIEhBQ0sgZm9yIFNBWAorCQkJCQkJaW50IGNvbXAgPSBjb2wuY29tcGFyZShsYXN0TGluZSwgbGluZSk7CisJCQkJCQlpZiAoY29tcCA+IDApIHsKKwkJCQkJCQlmYWlsdXJlcysrOworCQkJCQkJCWVycmxuKCJcdExpbmUgIiArIChjb3VudCArIDEpICsgIlx0RmFpbHVyZTogIgorCQkJCQkJCQkJKyBzaG93U3RyaW5nKGxhc3RMaW5lKSArICIgc2hvdWxkIGJlIGxlcSAiCisJCQkJCQkJCQkrIHNob3dTdHJpbmcobGluZSkpOworCQkJCQkJfSBlbHNlIGlmIChERUJVRykgeworCQkJCQkJCWxvZ2xuKCJPSzogIiArIGxpbmUpOworCQkJCQkJfQorCQkJCQkJbGFzdExpbmUgPSBsaW5lOworCQkJCQl9CisJCQkJCXBvcyA9IG5leHRQb3MgKyAxOworCQkJCQljb3VudCsrOworCQkJCX0KKwkJCX0KKwkJfSk7CisgICAgICAgIAorICAgICAgICAvLyA9PT09PT09PT09PT0gSGFuZGxlciBmb3IgTnVtYmVycyA9PT09PT09PT09PT0gCisJCWFkZEhhbmRsZXIoIm51bWJlciIsIG5ldyBIYW5kbGVyKCkgeworCQkJcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gbnVsbDsKKyAgICAgICAgICAgICAgICBkb3VibGUgdiA9IERvdWJsZS5OYU47CisgICAgICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHNldHRpbmdzLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZU5hbWUgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSA9IChTdHJpbmcpIHNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUuZXF1YWxzKCJpbnB1dCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2ID0gRG91YmxlLnBhcnNlRG91YmxlKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIG11c3QgYmUgZWl0aGVyIG51bWJlclR5cGUgYXQgdGhpcyBwb2ludAorICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBsb29rdXBWYWx1ZShhdHRyaWJ1dGVWYWx1ZSwgTnVtYmVyTmFtZXMpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIGxvZ2xuKCJHZXR0aW5nIG51bWJlciBmb3JtYXQgZm9yICIgKyBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2goaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOiBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOiBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UobG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjogbmYgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UobG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMzogbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6IG5mID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICAgICAgCW5mLnNldEN1cnJlbmN5KEN1cnJlbmN5LmdldEluc3RhbmNlKGF0dHJpYnV0ZVZhbHVlKSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gbmYuZm9ybWF0KHYpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnRyaW0oKTsgLy8gSEFDSyBiZWNhdXNlIG9mIFNBWAorICAgICAgICAgICAgICAgICAgICBpZiAoIXRlbXAuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOdW1iZXI6IExvY2FsZTogIiArIGxvY2FsZQorICAgICAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0VHlwZTogIiArIGF0dHJpYnV0ZVZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgXHREcmFmdDogIiArIHNldHRpbmdzLmdldCgiZHJhZnQiKQorICAgICAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0Q0xEUjogPCIgKyByZXN1bHQgKyAiPiwgSUNVOiA8IiArIHRlbXAgKyAiPiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vID09PT09PT09PT09PSBIYW5kbGVyIGZvciBEYXRlcyA9PT09PT09PT09PT0KKyAgICAgICAgYWRkSGFuZGxlcigiZGF0ZSIsIG5ldyBIYW5kbGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgcmVzdWx0KSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICAgICAgICAgIGludCBkYXRlRm9ybWF0ID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgdGltZUZvcm1hdCA9IDA7CisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2V0dGluZ3Mua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0cmlidXRlTmFtZSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZVZhbHVlID0gKFN0cmluZykgc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KGF0dHJpYnV0ZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoImlucHV0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUgPSBpc28ucGFyc2UoYXR0cmlidXRlVmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gbXVzdCBiZSBlaXRoZXIgZGF0ZVR5cGUgb3IgdGltZVR5cGUgYXQgdGhpcyBwb2ludAorICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBsb29rdXBWYWx1ZShhdHRyaWJ1dGVWYWx1ZSwgRGF0ZUZvcm1hdE5hbWVzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUuZXF1YWxzKCJkYXRlVHlwZSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9IGluZGV4OworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0ID0gaW5kZXg7CisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkdCA9IGdldERhdGVGb3JtYXQobG9jYWxlLCBkYXRlRm9ybWF0LCB0aW1lRm9ybWF0KTsKKyAgICAgICAgICAgICAgICBkdC5zZXRUaW1lWm9uZSh1dGMpOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gZHQuZm9ybWF0KGRhdGUpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQudHJpbSgpOyAvLyBIQUNLIGJlY2F1c2Ugb2YgU0FYCisgICAgICAgICAgICAgICAgaWYgKCF0ZW1wLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEYXRlVGltZTogTG9jYWxlOiAiICsgbG9jYWxlIAorICAgICAgICAgICAgICAgICAgICAJCSsgIiwgXHREYXRlOiAiICsgRGF0ZUZvcm1hdE5hbWVzW2RhdGVGb3JtYXRdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBcdFRpbWU6ICIgKyBEYXRlRm9ybWF0TmFtZXNbdGltZUZvcm1hdF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIFx0RHJhZnQ6ICIgKyBzZXR0aW5ncy5nZXQoImRyYWZ0IikKKyAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0Q0xEUjogPCIgKyByZXN1bHQgKyAiPiwgSUNVOiA8IiArIHRlbXAgKyAiPiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworCQkJLyoqCisJCQkgKiAKKwkJCSAqLworCQkJcHJpdmF0ZSBTaW1wbGVEYXRlRm9ybWF0IGdldERhdGVGb3JtYXQoVUxvY2FsZSBsb2NhbGUsIGludCBkYXRlRm9ybWF0LCBpbnQgdGltZUZvcm1hdCkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgbG9nbG4oIkdldHRpbmcgZGF0ZS90aW1lIGZvcm1hdCBmb3IgIiArIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHICYmICJhcl9FRyIuZXF1YWxzKGxvY2FsZS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oImRlYnVnIGhlcmUiKTsKKyAgICAgICAgICAgICAgICB9CisJCQkJRGF0ZUZvcm1hdCBkdDsKKwkJCQlpZiAoZGF0ZUZvcm1hdCA9PSAwKSB7CisJCQkJCWR0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdFZhbHVlc1t0aW1lRm9ybWF0XSwgbG9jYWxlKTsKKwkJCQkJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50KCJnZXRUaW1lSW5zdGFuY2UiKTsKKwkJCQl9IGVsc2UgaWYgKHRpbWVGb3JtYXQgPT0gMCkgeworCQkJCQlkdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXRWYWx1ZXNbZGF0ZUZvcm1hdF0sIGxvY2FsZSk7CisJCQkJCWlmIChERUJVRykgU3lzdGVtLm91dC5wcmludCgiZ2V0RGF0ZUluc3RhbmNlIik7CisJCQkJfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAJZHQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdFZhbHVlc1tkYXRlRm9ybWF0XSwgRGF0ZUZvcm1hdFZhbHVlc1t0aW1lRm9ybWF0XSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50KCJnZXREYXRlVGltZUluc3RhbmNlIik7CisJCQkJfQorCQkJCWlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJcdGlucHV0Olx0IiArIGRhdGVGb3JtYXQgKyAiLCAiICsgdGltZUZvcm1hdCArICIgPT4gIiArICgoU2ltcGxlRGF0ZUZvcm1hdClkdCkudG9QYXR0ZXJuKCkpOworCQkJCXJldHVybiAoU2ltcGxlRGF0ZUZvcm1hdClkdDsKKwkJCX0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gPT09PT09PT09PT09IEhhbmRsZXIgZm9yIFpvbmVzID09PT09PT09PT09PQorICAgICAgICBhZGRIYW5kbGVyKCJ6b25lRmllbGRzIiwgbmV3IEhhbmRsZXIoKSB7CisgICAgICAgICAgICBTdHJpbmcgZGF0ZSA9ICIiOworICAgICAgICAgICAgU3RyaW5nIHpvbmUgPSAiIjsKKyAgICAgICAgICAgIFN0cmluZyBwYXJzZSA9ICIiOworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgcmVzdWx0KSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzZXR0aW5ncy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0cmlidXRlVmFsdWUgPSAoU3RyaW5nKSBzZXR0aW5ncy5nZXQoYXR0cmlidXRlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lLmVxdWFscygiZGF0ZSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRlID0gYXR0cmlidXRlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoImZpZWxkIikpIHsKKyAgICAgICAgICAgICAgICAgICAgCXBhdHRlcm4gPSBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lLmVxdWFscygiem9uZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIAl6b25lID0gYXR0cmlidXRlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoInBhcnNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgCXBhcnNlID0gYXR0cmlidXRlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFaT05FX01BVENILnJlc2V0KHpvbmUpLm1hdGNoZXMoKSkgcmV0dXJuOworICAgICAgICAgICAgICAgIERhdGUgZGF0ZVZhbHVlID0gaXNvLnBhcnNlKGRhdGUpOworICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZmllbGQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIGZpZWxkLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKHpvbmUpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGZpZWxkLmZvcm1hdChkYXRlVmFsdWUpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAvLyBTS0lQIFBBUlNFIEZPUiBOT1cKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQudHJpbSgpOyAvLyBIQUNLIGJlY2F1c2Ugb2YgU0FYCisgICAgICAgICAgICAgICAgaWYgKCF0ZW1wLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBmaWVsZC5mb3JtYXQoZGF0ZVZhbHVlKS50cmltKCk7IC8vIGNhbGwgYWdhaW4gZm9yIGRlYnVnZ2luZworICAgICAgICAgICAgICAgICAgICBlcnJsbigiWm9uZSBGb3JtYXQ6IExvY2FsZTogIiArIGxvY2FsZSAKKyAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0Wm9uZTogIiArIHpvbmUKKyAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0RGF0ZTogIiArIGRhdGUKKwkJCQkJCQkrICIsIFx0RmllbGQ6ICIgKyBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBcdERyYWZ0OiAiICsgc2V0dGluZ3MuZ2V0KCJkcmFmdCIpCisgICAgICAgICAgICAgICAgICAgIAkJKyAiLCBcdENMRFI6IDwiICsgcmVzdWx0CisJCQkJCQkJKyAiPiwgXHRJQ1U6IDwiICsgdGVtcCArICI+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT0gR29ycCBmb3IgU0FYID09PT09PT09PT09PQorCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU0FYUGFyc2VyRmFjdG9yeSBmYWN0b3J5ID0gU0FYUGFyc2VyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgZmFjdG9yeS5zZXRWYWxpZGF0aW5nKHRydWUpOworICAgICAgICAgICAgU0FYID0gZmFjdG9yeS5uZXdTQVhQYXJzZXIoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbid0IHN0YXJ0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBEZWZhdWx0SGFuZGxlciBERUZBVUxUX0hBTkRMRVIgPSBuZXcgRGVmYXVsdEhhbmRsZXIoKSB7CisgICAgICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgICAgIFN0cmluZ0J1ZmZlciBsYXN0Q2hhcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4ganVzdFBvcHBlZCA9IGZhbHNlOworICAgICAgICBIYW5kbGVyIGhhbmRsZXI7CisKKyAgICAgICAgcHVibGljIHZvaWQgc3RhcnRFbGVtZW50KAorICAgICAgICAgICAgU3RyaW5nIHVyaSwKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbE5hbWUsCisgICAgICAgICAgICBTdHJpbmcgcU5hbWUsCisgICAgICAgICAgICBBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICAvL2RhdGEucHV0KG5ldyBDb250ZXh0U3RhY2soY29udGV4dFN0YWNrKSwgbGFzdENoYXJzKTsKKyAgICAgICAgICAgICAgICAvL2xhc3RDaGFycyA9ICIiOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChxTmFtZS5lcXVhbHMoImNsZHJUZXN0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIHNraXAKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChxTmFtZS5lcXVhbHMoInJlc3VsdCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMuZ2V0TGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIuc2V0KGF0dHJpYnV0ZXMuZ2V0UU5hbWUoaSksIGF0dHJpYnV0ZXMuZ2V0VmFsdWUoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IGdldEhhbmRsZXIocU5hbWUsIGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyLnNldCgibG9jYWxlIiwgdUxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvL2lmIChERUJVRykgbG9nbG4oInN0YXJ0RWxlbWVudDpcdCIgKyBjb250ZXh0U3RhY2spOworICAgICAgICAgICAgICAgICAgICBqdXN0UG9wcGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGVuZEVsZW1lbnQoU3RyaW5nIHVyaSwgU3RyaW5nIGxvY2FsTmFtZSwgU3RyaW5nIHFOYW1lKQorICAgICAgICAgICAgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAoREVCVUcpIGxvZ2xuKCJlbmRFbGVtZW50Olx0IiArIGNvbnRleHRTdGFjayk7CisgICAgICAgICAgICAgICAgICAgIGlmIChxTmFtZS5lcXVhbHMoInJlc3VsdCIpKSBoYW5kbGVyLmNoZWNrUmVzdWx0KGxhc3RDaGFycy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocU5hbWUubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2dsbigiVW5leHBlY3RlZCBjb250ZW50cyBvZjogIiArIHFOYW1lICsgIiwgPCIgKyBsYXN0Q2hhcnMgKyAiPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxhc3RDaGFycy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIGp1c3RQb3BwZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gSGF2ZSB0byBoYWNrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHRoZSBjaGFyYWN0ZXIgZGF0YSBtaWdodCBiZSBpbiBwaWVjZXMKKyAgICAgICAgcHVibGljIHZvaWQgY2hhcmFjdGVycyhjaGFyW10gY2gsIGludCBzdGFydCwgaW50IGxlbmd0aCkKKyAgICAgICAgICAgIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IG5ldyBTdHJpbmcoY2gsc3RhcnQsbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBsb2dsbigiY2hhcmFjdGVyczpcdCIgKyB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGxhc3RDaGFycy5hcHBlbmQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBqdXN0UG9wcGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIC8vIGp1c3QgZm9yIGRlYnVnZ2luZworCisgICAgICAgIHB1YmxpYyB2b2lkIG5vdGF0aW9uRGVjbCAoU3RyaW5nIG5hbWUsIFN0cmluZyBwdWJsaWNJZCwgU3RyaW5nIHN5c3RlbUlkKQorICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGxvZ2xuKCJub3RhdGlvbkRlY2w6ICIgKyBuYW1lCisgICAgICAgICAgICArICIsICIgKyBwdWJsaWNJZAorICAgICAgICAgICAgKyAiLCAiICsgc3lzdGVtSWQKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gKFN0cmluZyB0YXJnZXQsIFN0cmluZyBkYXRhKQorICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGxvZ2xuKCJwcm9jZXNzaW5nSW5zdHJ1Y3Rpb246ICIgKyB0YXJnZXQgKyAiLCAiICsgZGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBza2lwcGVkRW50aXR5IChTdHJpbmcgbmFtZSkKKyAgICAgICAgdGhyb3dzIFNBWEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigic2tpcHBlZEVudGl0eTogIiArIG5hbWUKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB1bnBhcnNlZEVudGl0eURlY2wgKFN0cmluZyBuYW1lLCBTdHJpbmcgcHVibGljSWQsCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3lzdGVtSWQsIFN0cmluZyBub3RhdGlvbk5hbWUpCisgICAgICAgIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgbG9nbG4oInVucGFyc2VkRW50aXR5RGVjbDogIiArIG5hbWUKKyAgICAgICAgICAgICsgIiwgIiArIHB1YmxpY0lkCisgICAgICAgICAgICArICIsICIgKyBzeXN0ZW1JZAorICAgICAgICAgICAgKyAiLCAiICsgbm90YXRpb25OYW1lCisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICB9OworfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25BUElUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyMGQxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTE5NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uQVBJVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvYXBpY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uQVBJVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkFQSVRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vbmV3IENvbGxhdGlvbkFQSVRlc3QoKS5UZXN0R2V0VGFpbG9yZWRTZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgY29sbGF0aW9uIGtleSByZWxhdGVkIEFQSXMuCisgICAgICogLSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yCisgICAgICogLSBDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkKKyAgICAgKiAtID09IGFuZCAhPSBvcGVyYXRvcnMKKyAgICAgKiAtIGNvbXBhcmlzb24gYmV0d2VlbiBjb2xsYXRpb24ga2V5cworICAgICAqIC0gY3JlYXRpbmcgY29sbGF0aW9uIGtleSB3aXRoIGEgYnl0ZSBhcnJheSBhbmQgdmljZSB2ZXJzYQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRpb25LZXkoKSB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdGlvbktleSBiZWdpbnMuLi4iKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxID0gIkFiY2RhIjsKKyAgICAgICAgU3RyaW5nIHRlc3QyID0gImFiY2RhIjsKKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3Rpbmcgd2VpcmQgYXJndW1lbnRzIik7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0azEgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KCIiKTsKKyAgICAgICAgLy8ga2V5IGdldHMgcmVzZXQgaGVyZQorICAgICAgICBieXRlW10gYnl0ZXMgPSBzb3J0azEudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgZG9Bc3NlcnQoYnl0ZXMubGVuZ3RoID09IDMgJiYgYnl0ZXNbMF0gPT0gMSAmJiBieXRlc1sxXSA9PSAxIAorICAgICAgICAgICAgICAgICAmJiBieXRlc1syXSA9PSAwLCAKKyAgICAgICAgICAgICAgICAgIkVtcHR5IHN0cmluZyBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IGNvbGxhdGlvbiBrZXkiKTsKKyAgICAgICAgLy8gYm9ndXMga2V5IHJldHVybmVkIGhlcmUKKyAgICAgICAgc29ydGsxID0gY29sLmdldENvbGxhdGlvbktleShudWxsKTsKKyAgICAgICAgZG9Bc3NlcnQoc29ydGsxID09IG51bGwsICJFcnJvciBjb2RlIHNob3VsZCByZXR1cm4gYm9ndXMgY29sbGF0aW9uIGtleSIpOworCisgICAgICAgIGxvZ2xuKCJVc2UgdGVydGlhcnkgY29tcGFyaXNvbiBsZXZlbCB0ZXN0aW5nIC4uLi4iKTsKKyAgICAgICAgc29ydGsxID0gY29sLmdldENvbGxhdGlvbktleSh0ZXN0MSk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0azIgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsKKyAgICAgICAgT2JqZWN0IHNvcnRrMyA9IHNvcnRrMjsKKyAgICAgICAgZG9Bc3NlcnQoKHNvcnRrMS5jb21wYXJlVG8oc29ydGsyKSkgPiAwIAorICAgICAgICAgICAgICAgICAmJiAoc29ydGsxLmNvbXBhcmVUbyhzb3J0azMpKSA+IDAsICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA+Pj4gXCJhYmNkYVwiIik7CisgICAgCisgICAgICAgIENvbGxhdGlvbktleSBzb3J0a05ldzsKKyAgICAgICAgc29ydGtOZXcgPSBzb3J0azE7CisgICAgICAgIGRvQXNzZXJ0KCEoc29ydGsxLmVxdWFscyhzb3J0azIpKSAmJiAhKHNvcnRrMS5lcXVhbHMoc29ydGszKSksIAorICAgICAgICAgICAgICAgICAiVGhlIHNvcnQga2V5cyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgIGRvQXNzZXJ0KChzb3J0azEuaGFzaENvZGUoKSAhPSBzb3J0azIuaGFzaENvZGUoKSksICJzb3J0IGtleSBoYXNoQ29kZSgpIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoc29ydGsxLmVxdWFscyhzb3J0a05ldykpLCAiVGhlIHNvcnQga2V5cyBhc3NpZ25tZW50IGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoc29ydGsxLmhhc2hDb2RlKCkgPT0gc29ydGtOZXcuaGFzaENvZGUoKSksICJzb3J0IGtleSBoYXNoQ29kZSgpIGZhaWxlZCIpOworCisgICAgICAgIC8vIGNoZWNrIGludmFsaWFkIGNvbXBhcmlzb25zCisgICAgICAgIE9iamVjdCBmYWtlID0gImZha2UiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc29ydGsxLmNvbXBhcmVUbyhmYWtlKTsKKyAgICAgICAgICAgIGVycmxuKCJOb24tQ29sbGF0aW9uS2V5IGNvbXBhcmlzb24iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogTm9uLUNvbGxhdGlvbktleSBjb21wYXJpc29uIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzb3J0azEuZXF1YWxzKGZha2UpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9uLUNvbGxhdGlvbktleSBjb21wYXJpc29uIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBvcnQgZnJvbSBhcGljb2xsCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdG9yLmdldEluc3RhbmNlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKXsKKyAgICAgICAgICAgIGVycmxuKCJEZWZhdWx0IGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgdGVydGlhcnkgc3RyZW5ndGgiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5lZWQgdG8gdXNlIGlkZW50aWNhbCBzdHJlbmd0aAorICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKworICAgICAgICBieXRlIGtleTJjb21wYXRbXSA9IHsKKyAgICAgICAgICAgIC8vIDMuNiBrZXksIFVDQSA1LjAKKyAgICAgICAgICAgIChieXRlKSAweDI5LCAoYnl0ZSkgMHgyYiwgKGJ5dGUpIDB4MmQsCisgICAgICAgICAgICAoYnl0ZSkgMHgyZiwgKGJ5dGUpIDB4MjksIChieXRlKSAweDAxLAorICAgICAgICAgICAgKGJ5dGUpIDB4MDksIChieXRlKSAweDAxLCAoYnl0ZSkgMHgwOSwKKyAgICAgICAgICAgIChieXRlKSAweDAxLCAoYnl0ZSkgMHgyOCwgKGJ5dGUpIDB4MDEsCisgICAgICAgICAgICAoYnl0ZSkgMHg5MiwgKGJ5dGUpIDB4OTMsIChieXRlKSAweDk0LAorICAgICAgICAgICAgKGJ5dGUpIDB4OTUsIChieXRlKSAweDkyLCAoYnl0ZSkgMHgwMAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAzLjQga2V5IFVDQSA0LjEKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAoYnl0ZSkgMHgyOCwgKGJ5dGUpIDB4MmEsIChieXRlKSAweDJjLCAKKyAgICAgICAgICAgIChieXRlKSAweDJlLCAoYnl0ZSkgMHgyOCwgKGJ5dGUpIDB4MDEsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MDksIChieXRlKSAweDAxLCAoYnl0ZSkgMHgwOSwgCisgICAgICAgICAgICAoYnl0ZSkgMHgwMSwgKGJ5dGUpIDB4MjcsIChieXRlKSAweDAxLCAKKyAgICAgICAgICAgIChieXRlKSAweDkyLCAoYnl0ZSkgMHg5MywgKGJ5dGUpIDB4OTQsIAorICAgICAgICAgICAgKGJ5dGUpIDB4OTUsIChieXRlKSAweDkyLCAoYnl0ZSkgMHgwMCAgICAgICAgCisgICAgICAgICAgICAqLyAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gICAgICAgICAgMi42LjEga2V5CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgyNiwgMHgyOCwgMHgyQSwgMHgyQywgMHgyNiwgMHgwMSwgCisgICAgICAgICAgICAweDA5LCAweDAxLCAweDA5LCAweDAxLCAweDI1LCAweDAxLCAKKyAgICAgICAgICAgIDB4OTIsIDB4OTMsIDB4OTQsIDB4OTUsIDB4OTIsIDB4MDAgCisgICAgICAgICAgICAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAyLjIga2V5CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgxRCwgMHgxRiwgMHgyMSwgMHgyMywgMHgxRCwgMHgwMSwKKyAgICAgICAgICAgIDB4MDksIDB4MDEsIDB4MDksIDB4MDEsIDB4MUMsIDB4MDEsCisgICAgICAgICAgICAweDkyLCAweDkzLCAweDk0LCAweDk1LCAweDkyLCAweDAwCisgICAgICAgICAgICAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAyLjAga2V5CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgxOSwgMHgxQiwgMHgxRCwgMHgxRiwgMHgxOSwKKyAgICAgICAgICAgIDB4MDEsIDB4MDksIDB4MDEsIDB4MDksIDB4MDEsCisgICAgICAgICAgICAweDE4LCAweDAxLAorICAgICAgICAgICAgMHg5MiwgMHg5MywgMHg5NCwgMHg5NSwgMHg5MiwKKyAgICAgICAgICAgIDB4MDAKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIDEuOC4xIGtleS4KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAweDE5LCAweDFCLCAweDFELCAweDFGLCAweDE5LAorICAgICAgICAgICAgMHgwMSwgMHgwQSwgMHgwMSwgMHgwQSwgMHgwMSwKKyAgICAgICAgICAgIDB4OTIsIDB4OTMsIDB4OTQsIDB4OTUsIDB4OTIsCisgICAgICAgICAgICAweDAwIAorICAgICAgICAgICAgKi8KKyAgICAgICAgfTsKKworICAgICAgICBDb2xsYXRpb25LZXkga2V5MSA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDEpOworICAgICAgICBDb2xsYXRpb25LZXkga2V5MiA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgICAgICBDb2xsYXRpb25LZXkga2V5MyA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgIAorICAgICAgICBkb0Fzc2VydChrZXkxLmNvbXBhcmVUbyhrZXkyKSA+IDAsIAorICAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPiBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoa2V5Mi5jb21wYXJlVG8oa2V5MSkgPCAwLAorICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJjZGFcIiA8IFwiQWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydChrZXkyLmNvbXBhcmVUbyhrZXkzKSA9PSAwLAorICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJjZGFcIiA9PSAgXCJhYmNkYVwiIik7CisgICAgIAorICAgICAgICBkb0Fzc2VydChBcnJheXMuZXF1YWxzKGtleTIudG9CeXRlQXJyYXkoKSwga2V5MmNvbXBhdCksCisgICAgICAgICAgICAgICAgICJCaW5hcnkgZm9ybWF0IGZvciAnYWJjZGEnIHNvcnRrZXkgZGlmZmVyZW50IGZvciBpZGVudGljYWwgc3RyZW5ndGghIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJVc2Ugc2Vjb25kYXJ5IGNvbXBhcmlzaW9uIGxldmVsIHRlc3RpbmcgLi4uIik7CisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgIAorICAgICAgICBrZXkxID0gY29sLmdldENvbGxhdGlvbktleSh0ZXN0MSk7CisgICAgICAgIGtleTIgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsKKyAgICAgICAga2V5MyA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgIAorICAgICAgICBkb0Fzc2VydChrZXkxLmNvbXBhcmVUbyhrZXkyKSA9PSAwLCAKKyAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KGtleTIuY29tcGFyZVRvKGtleTMpID09IDAsCisgICAgICAgICAgICAgICAgIlJlc3VsdCBzaG91bGQgYmUgXCJhYmNkYVwiID09ICBcImFiY2RhXCIiKTsKKyAgICAKKyAgICAgICAgYnl0ZSB0ZW1wa2V5W10gPSBrZXkyLnRvQnl0ZUFycmF5KCk7CisgICAgICAgIGJ5dGUgc3Via2V5MmNvbXBhdFtdID0gbmV3IGJ5dGVbdGVtcGtleS5sZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGtleTJjb21wYXQsIDAsIHN1YmtleTJjb21wYXQsIDAsIHRlbXBrZXkubGVuZ3RoKTsKKyAgICAgICAgc3Via2V5MmNvbXBhdFtzdWJrZXkyY29tcGF0Lmxlbmd0aCAtIDFdID0gMDsKKyAgICAgICAgZG9Bc3NlcnQoQXJyYXlzLmVxdWFscyh0ZW1wa2V5LCBzdWJrZXkyY29tcGF0KSwKKyAgICAgICAgICAgICAgICAgIkJpbmFyeSBmb3JtYXQgZm9yICdhYmNkYScgc29ydGtleSBkaWZmZXJlbnQgZm9yIHNlY29uZGFyeSBzdHJlbmd0aCEiKTsKKyAgICAKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgc29ydGtleSBlbmRzLi4uIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSYXdDb2xsYXRpb25LZXkoKQorICAgIHsKKyAgICAgICAgLy8gdGVzdGluZyBjb25zdHJ1Y3RvcnMKKyAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoKTsKKyAgICAgICAgaWYgKGtleS5ieXRlcyAhPSBudWxsIHx8IGtleS5zaXplICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJFbXB0eSBkZWZhdWx0IGNvbnN0cnVjdG9yIGV4cGVjdGVkIHRvIGxlYXZlIHRoZSBieXRlcyBudWxsICIKKyAgICAgICAgICAgICAgICAgICsgImFuZCBzaXplIDAiKTsgCisgICAgICAgIH0KKyAgICAgICAgYnl0ZSBhcnJheVtdID0gbmV3IGJ5dGVbMTI4XTsKKyAgICAgICAga2V5ID0gbmV3IFJhd0NvbGxhdGlvbktleShhcnJheSk7CisgICAgICAgIGlmIChrZXkuYnl0ZXMgIT0gYXJyYXkgfHwga2V5LnNpemUgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHRha2luZyBhbiBhcnJheSBleHBlY3RlZCB0byBhZG9wdCBpdCBhbmQgIgorICAgICAgICAgICAgICAgICAgKyAicmV0YWluaW5nIGl0cyBzaXplIDAiKTsgCisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoYXJyYXksIDEyOSk7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3IgdGFraW5nIGFuIGFycmF5IGFuZCBhIHNpemUgPiBhcnJheS5sZW5ndGggIgorICAgICAgICAgICAgICAgICAgKyAiZXhwZWN0ZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIik7IAorICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogQ29uc3RydWN0b3IgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoYXJyYXksIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB0YWtpbmcgYW4gYXJyYXkgYW5kIGEgc2l6ZSA8IDAgIgorICAgICAgICAgICAgICAgICAgKyAiZXhwZWN0ZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIik7IAorICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogQ29uc3RydWN0b3IgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAga2V5ID0gbmV3IFJhd0NvbGxhdGlvbktleShhcnJheSwgYXJyYXkubGVuZ3RoID4+IDEpOworICAgICAgICBpZiAoa2V5LmJ5dGVzICE9IGFycmF5IHx8IGtleS5zaXplICE9IChhcnJheS5sZW5ndGggPj4gMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB0YWtpbmcgYW4gYXJyYXkgYW5kIGEgc2l6ZSwgIgorICAgICAgICAgICAgICAgICAgKyAiZXhwZWN0ZWQgdG8gYWRvcHQgaXQgYW5kIHRha2UgdGhlIHNpemUgc3BlY2lmaWVkIik7IAorICAgICAgICB9CisgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoMTApOworICAgICAgICBpZiAoa2V5LmJ5dGVzID09IG51bGwgfHwga2V5LmJ5dGVzLmxlbmd0aCAhPSAxMCB8fCBrZXkuc2l6ZSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3IgdGFraW5nIGEgc3BlY2lmaWVkIGNhcGFjaXR5IGV4cGVjdGVkIHRvICIKKyAgICAgICAgICAgICAgICAgICsgImNyZWF0ZSBhIG5ldyBpbnRlcm5hbCBieXRlIGFycmF5IHdpdGggbGVuZ3RoIDEwIGFuZCAiCisgICAgICAgICAgICAgICAgICArICJyZXRhaW4gc2l6ZSAwIik7IAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgZG9Bc3NlcnQoYm9vbGVhbiBjb25kaXRpb25zLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBpZiAoIWNvbmRpdGlvbnMpIHsKKyAgICAgICAgICAgIGVycmxuKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgdGVzdHMgdGhlIGNvbXBhcmlzb24gY29udmVuaWVuY2UgbWV0aG9kcyBvZiBhIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKiAtIGdyZWF0ZXIgdGhhbgorICAgICAqIC0gZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogLSBlcXVhbCB0bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkgeworICAgICAgICBsb2dsbigiVGhlIGNvbXBhcmUgdGVzdHMgYmVnaW4gOiAiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxID0gIkFiY2RhIjsKKyAgICAgICAgU3RyaW5nIHRlc3QyID0gImFiY2RhIjsKKyAgICAgICAgbG9nbG4oIlVzZSB0ZXJ0aWFyeSBjb21wYXJpc29uIGxldmVsIHRlc3RpbmcgLi4uLiIpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0IG9iajEgPSB0ZXN0MTsKKyAgICAgICAgT2JqZWN0IG9iajIgPSB0ZXN0MjsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKG9iajEsIG9iajIpID4gMCksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiAhPSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKCFjb2wuZXF1YWxzKHRlc3QxLCB0ZXN0MikgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiICE9IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA+IDAgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID4+PiBcImFiY2RhXCIiKTsKKyAgICAKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGxvZ2xuKCJVc2Ugc2Vjb25kYXJ5IGNvbXBhcmlzb24gbGV2ZWwgdGVzdGluZyAuLi4uIik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUob2JqMSwgb2JqMikgPT0gMCksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5lcXVhbHModGVzdDEsIHRlc3QyKSApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSh0ZXN0MSwgdGVzdDIpID09IDApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgCisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbG9nbG4oIlVzZSBwcmltYXJ5IGNvbXBhcmlzb24gbGV2ZWwgdGVzdGluZyAuLi4uIik7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUob2JqMSwgb2JqMikgPT0gMCApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZXF1YWxzKHRlc3QxLCB0ZXN0MikgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA9PSAwICksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAgICAgbG9nbG4oIlRoZSBjb21wYXJlIHRlc3RzIGVuZC4iKTsKKyAgICAgICAgCisgICAgICAgIEludGVnZXIgZGllID0gbmV3IEludGVnZXIoMSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wuY29tcGFyZShkaWUsIHRlc3QxKTsKKyAgICAgICAgICAgIGVycmxuKCJOb24tU3RyaW5ncyBzaG91bGQgZmFpbCBjb2wuY29tcGFyZShPYmplY3QsIE9iamVjdCkiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogTm9uLVN0cmluZ3MgY29tcGFyaXNvbiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RzIGRlY29tcG9zaXRpb24gc2V0dGluZworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERlY29tcG9zaXRpb24oKSB7CisgICAgICAgIENvbGxhdG9yIGVuX1VTID0gbnVsbCwgZWxfR1IgPSBudWxsLCB2aV9WTiA9IG51bGw7CisKKyAgICAgICAgZW5fVVMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgZWxfR1IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbCIsICJHUiIpKTsKKyAgICAgICAgdmlfVk4gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ2aSIsICJWTiIpKTsKKworICAgICAgICAKKyAgICAgICAgLy8gdGhlcmUgaXMgbm8gcmVhc29uIHRvIGhhdmUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gaW4gZW5fVVMgT1IgZGVmYXVsdCBsb2NhbGUgKi8KKyAgICAgICAgaWYgKHZpX1ZOLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oInZpX1ZOIGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgY2Fubm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBub3JtYWxpemF0aW9uISIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVsX0dSLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oImVsX0dSIGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgY2Fubm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBub3JtYWxpemF0aW9uISIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVuX1VTLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiZW5fVVMgY29sbGF0aW9uIGhhZCBjYW5ub25pY2FsIGRlY29tcG9zaXRpb24gZm9yIG5vcm1hbGl6YXRpb24hIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgZHVwbGljYXRpb24gb2YgYSBjb2xsYXRvciBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdER1cGxpY2F0ZSgpIHsKKyAgICAgICAgLy9DbG9uZSBkb2VzIG5vdCBiZSBpbXBsZW1lbnRlZCAKKyAgICAgICAgQ29sbGF0b3IgY29sMSA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbGxhdG9yIGNvbDIgPSAoQ29sbGF0b3IpY29sMS5jbG9uZSgpOworICAgICAgICAvLyBkb0Fzc2VydChjb2wxLmVxdWFscyhjb2wyKSwgIkNsb25lZCBvYmplY3QgaXMgbm90IGVxdWFsIHRvIHRoZSBvcmdpbmFsIik7CisgICAgICAgIFN0cmluZyBydWxlc2V0ID0gIjwgYSwgQSA8IGIsIEIgPCBjLCBDIDwgZCwgRCwgZSwgRSI7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbDMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZToiICsgcnVsZXNldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZG9Bc3NlcnQoIWNvbDEuZXF1YWxzKGNvbDMpLCAiQ2xvbmVkIG9iamVjdCBpcyBlcXVhbCB0byBzb21lIGR1bW15Iik7CisgICAgICAgIGNvbDMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpY29sMTsKKyAgICAgICAgZG9Bc3NlcnQoY29sMS5lcXVhbHMoY29sMyksICJDb3BpZWQgb2JqZWN0IGlzIG5vdCBlcXVhbCB0byB0aGUgb3JnaW5hbCIpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHJlbGF0ZWQgQVBJcy4KKyAgICAgKiAtIGNyZWF0aW9uIG9mIGEgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG9iamVjdAorICAgICAqIC0gPT0gYW5kICE9IG9wZXJhdG9ycworICAgICAqIC0gaXRlcmF0aW5nIGZvcndhcmQKKyAgICAgKiAtIHJlc2V0aW5nIHRoZSBpdGVyYXRvciBpbmRleAorICAgICAqIC0gcmVxdWVzdGluZyB0aGUgb3JkZXIgcHJvcGVydGllcyhwcmltYXJ5LCBzZWNvbmRhcnkgb3IgdGVydGlhcnkpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVsZW1JdGVyKCkgeworICAgICAgICAvLyBsb2dsbigidGVzdGluZyBzb3J0a2V5IGJlZ2lucy4uLiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nMSA9ICJYRklMRSBXaGF0IHN1YnNldCBvZiBhbGwgcG9zc2libGUgdGVzdCBjYXNlcyBoYXMgdGhlIGhpZ2hlc3QgcHJvYmFiaWxpdHkgb2YgZGV0ZWN0aW5nIHRoZSBtb3N0IGVycm9ycz8iOworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZzIgPSAiWGZfaWxlIFdoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzIGhhcyB0aGUgbG93ZXN0IHByb2JhYmlsaXR5IG9mIGRldGVjdGluZyB0aGUgbGVhc3QgZXJyb3JzPyI7CisgICAgICAgIC8vIGxvZ2xuKCJDb25zdHJ1Y3RvcnMgYW5kIGNvbXBhcmlzb24gdGVzdGluZy4uLi4iKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXJhdG9yMSA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdFN0cmluZzEpOworICAgICAgICAKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2hhcml0ZXI9bmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3RTdHJpbmcxKTsKKyAgICAgICAgLy8gY29weSBjdG9yCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyYXRvcjIgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGNoYXJpdGVyKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFyaXRlcj1VQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGVzdFN0cmluZzIpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih1Y2hhcml0ZXIpOworICAgIAorICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IxLmdldE9mZnNldCgpOworICAgICAgICBpZiAob2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBpbiBnZXRPZmZzZXQgZm9yIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3IxLnNldE9mZnNldCg2KTsKKyAgICAgICAgaXRlcmF0b3IxLnNldE9mZnNldCgwKTsKKyAgICAgICAgaW50IG9yZGVyMSwgb3JkZXIyLCBvcmRlcjM7CisgICAgICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOworICAgICAgICBkb0Fzc2VydCghKGl0ZXJhdG9yMS5lcXVhbHMoaXRlcmF0b3IyKSksICJUaGUgZmlyc3QgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgb3JkZXIyID0gaXRlcmF0b3IyLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChpdGVyYXRvcjEuZXF1YWxzKGl0ZXJhdG9yMikpLCAiVGhlIHNlY29uZCBpdGVyYXRvciBhZHZhbmNlIGZhaWxlZCIpOyAKKyAgICAgICAgZG9Bc3NlcnQoKG9yZGVyMSA9PSBvcmRlcjIpLCAiVGhlIG9yZGVyIHJlc3VsdCBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgc2Vjb25kYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgcHJpbWFyeSBvcmRlcnMgc2hvdWxkIGJlIGlkZW50aWNhbCIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHRlcnRpYXJ5IG9yZGVycyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAvLyBpbnZhbGlkIHRlc3Qgd3JvbmcgaW4gVUNBCisgICAgICAgIC8vIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgLy8gICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHNlY29uZGFyeSBvcmRlcnMgc2hvdWxkIG5vdCBiZSB0aGUgc2FtZSIpOworICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChvcmRlcjEgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiksICJVbmV4cGVjdGVkIGVuZCBvZiBpdGVyYXRvciByZWFjaGVkIik7CisgICAgCisgICAgICAgIGl0ZXJhdG9yMS5yZXNldCgpOyAKKyAgICAgICAgaXRlcmF0b3IyLnJlc2V0KCk7IAorICAgICAgICBpdGVyYXRvcjMucmVzZXQoKTsKKyAgICAgICAgb3JkZXIxID0gaXRlcmF0b3IxLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KCEoaXRlcmF0b3IxLmVxdWFscyhpdGVyYXRvcjIpKSwgIlRoZSBmaXJzdCBpdGVyYXRvciBhZHZhbmNlIGZhaWxlZCIpOworICAgICAgICAKKyAgICAgICAgb3JkZXIyID0gaXRlcmF0b3IyLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChpdGVyYXRvcjEuZXF1YWxzKGl0ZXJhdG9yMikpLCAiVGhlIHNlY29uZCBpdGVyYXRvciBhZHZhbmNlIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgob3JkZXIxID09IG9yZGVyMiksICJUaGUgb3JkZXIgcmVzdWx0IHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgIAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgcHJpbWFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBzZWNvbmRhcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHRlcnRpYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAKKyAgICAgICAgb3JkZXIxID0gaXRlcmF0b3IxLm5leHQoKTsgCisgICAgICAgIG9yZGVyMiA9IGl0ZXJhdG9yMi5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgcHJpbWFyeSBvcmRlcnMgc2hvdWxkIGJlIGlkZW50aWNhbCIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHRlcnRpYXJ5IG9yZGVycyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgLy8gb2Jzb2xldGUgaW52YWxpZCB0ZXN0LCByZW1vdmVkCisgICAgICAgIC8vIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgLy8gICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHNlY29uZGFyeSBvcmRlcnMgc2hvdWxkIG5vdCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgob3JkZXIxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpLCAiVW5leHBlY3RlZCBlbmQgb2YgaXRlcmF0b3IgcmVhY2hlZCIpOworICAgICAgICBkb0Fzc2VydCghKGl0ZXJhdG9yMi5lcXVhbHMoaXRlcmF0b3IzKSksICJUaGUgaXRlcmF0b3JzIHNob3VsZCBiZSBkaWZmZXJlbnQiKTsKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGVuZHMuLi4iKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgaGFzaENvZGUgbWV0aG9kIG9mIGEgY29sbGF0b3Igb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgbG9nbG4oImhhc2hDb2RlIHRlc3RzIGJlZ2luLiIpOworICAgICAgICBDb2xsYXRvciBjb2wxID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgIAorICAgICAgICBDb2xsYXRvciBjb2wyID0gbnVsbDsKKyAgICAgICAgTG9jYWxlIGRrID0gbmV3IExvY2FsZSgiZGEiLCAiREsiLCAiIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZGspOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkRhbmlzaCBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIENvbGxhdG9yIGNvbDMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIybmQgZGVmYXVsdCBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKCJDb2xsYXRvci5oYXNoQ29kZSgpIHRlc3RpbmcgLi4uIik7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydChjb2wxLmhhc2hDb2RlKCkgIT0gY29sMi5oYXNoQ29kZSgpLCAiSGFzaCB0ZXN0MSByZXN1bHQgaW5jb3JyZWN0IiApOyAgICAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KCEoY29sMS5oYXNoQ29kZSgpID09IGNvbDIuaGFzaENvZGUoKSksICJIYXNoIHRlc3QyIHJlc3VsdCBpbmNvcnJlY3QiICk7ICAgICAgICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoY29sMS5oYXNoQ29kZSgpID09IGNvbDMuaGFzaENvZGUoKSwgIkhhc2ggcmVzdWx0IG5vdCBlcXVhbCIgKTsgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgbG9nbG4oImhhc2hDb2RlIHRlc3RzIGVuZC4iKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJBYmNkYSI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJhYmNkYSI7CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25LZXkgc29ydGsxLCBzb3J0azIsIHNvcnRrMzsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHNvcnRrMSA9IGNvbDMuZ2V0Q29sbGF0aW9uS2V5KHRlc3QxKTsKKyAgICAgICAgc29ydGsyID0gY29sMy5nZXRDb2xsYXRpb25LZXkodGVzdDIpOyAKKyAgICAgICAgc29ydGszID0gY29sMy5nZXRDb2xsYXRpb25LZXkodGVzdDIpOyAKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KHNvcnRrMS5oYXNoQ29kZSgpICE9IHNvcnRrMi5oYXNoQ29kZSgpLCAiSGFzaCB0ZXN0MSByZXN1bHQgaW5jb3JyZWN0Iik7ICAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KHNvcnRrMi5oYXNoQ29kZSgpID09IHNvcnRrMy5oYXNoQ29kZSgpLCAiSGFzaCByZXN1bHQgbm90IGVxdWFsIiApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3RzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIC0gY29uc3RydWN0b3IKKyAgICAgKiAtIGZhY3RvcnkgbWV0aG9kIGdldEluc3RhbmNlCisgICAgICogLSBjb21wYXJlIGFuZCBnZXRDb2xsYXRpb25LZXkKKyAgICAgKiAtIGdldC9zZXQgZGVjb21wb3NpdGlvbiBtb2RlIGFuZCBjb21wYXJpc29uIGxldmVsCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFByb3BlcnR5KCkgeworICAgICAgICAvKiAKKyAgICAgICAgICBBbGwgdGhlIGNvbGxhdGlvbnMgaGF2ZSB0aGUgc2FtZSB2ZXJzaW9uIGluIGFuIElDVQorICAgICAgICAgIHZlcnNpb24uCisgICAgICAgICAgSUNVIDIuMCBjdXJyVmVyc2lvbkFycmF5ID0gezB4MTgsIDB4QzAsIDB4MDIsIDB4MDJ9OworICAgICAgICAgIElDVSAyLjEgY3VyclZlcnNpb25BcnJheSA9IHsweDE5LCAweDAwLCAweDAzLCAweDAzfTsKKyAgICAgICAgICBJQ1UgMi44IGN1cnJWZXJzaW9uQXJyYXkgPSB7MHgyOSwgMHg4MCwgMHgwMCwgMHgwNH07ICAgICAgICAgIAorICAgICAgICAqLyAgICAKKyAgICAgICAgbG9nbG4oIlRoZSBwcm9wZXJ0eSB0ZXN0cyBiZWdpbiA6ICIpOworICAgICAgICBsb2dsbigiVGVzdCBjdG9ycyA6ICIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisKKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgZ2V0VmVyc2lvbiIpOworICAgICAgICBWZXJzaW9uSW5mbyBleHBlY3RlZFZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgweDMxLCAweEMwLCAweDAwLCAweDA1KTsKKyAgICAgICAgZG9Bc3NlcnQoY29sLmdldFZlcnNpb24oKS5lcXVhbHMoZXhwZWN0ZWRWZXJzaW9uKSwgIkV4cGVjdGVkIHZlcnNpb24gIitleHBlY3RlZFZlcnNpb24udG9TdHJpbmcoKSsiIGdvdCAiK2NvbC5nZXRWZXJzaW9uKCkudG9TdHJpbmcoKSk7CisgICAgICAgIAorICAgICAgICBsb2dsbigiVGVzdCBnZXRVQ0FWZXJzaW9uIik7CisgICAgICAgIFZlcnNpb25JbmZvIGV4cGVjdGVkVUNBVmVyc2lvbiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDB4MDUsIDAsIDAsIDApOworICAgICAgICBkb0Fzc2VydChjb2wuZ2V0VUNBVmVyc2lvbigpLmVxdWFscyhleHBlY3RlZFVDQVZlcnNpb24pLCAiRXhwZWN0ZWQgVUNBIHZlcnNpb24gIitleHBlY3RlZFVDQVZlcnNpb24udG9TdHJpbmcoKSsiIGdvdCAiK2NvbC5nZXRVQ0FWZXJzaW9uKCkudG9TdHJpbmcoKSk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoImFiIiwgImFiYyIpIDwgMCksICJhYiA8IGFiYyBjb21wYXJpc29uIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoImFiIiwgIkFCIikgPCAwKSwgImFiIDwgQUIgY29tcGFyaXNvbiBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKCJibGFja2JpcmQiLCAiYmxhY2stYmlyZCIpID4gMCksICJibGFjay1iaXJkID4gYmxhY2tiaXJkIGNvbXBhcmlzb24gZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSgiYmxhY2sgYmlyZCIsICJibGFjay1iaXJkIikgPCAwKSwgImJsYWNrIGJpcmQgPiBibGFjay1iaXJkIGNvbXBhcmlzb24gZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSgiSGVsbG8iLCAiaGVsbG8iKSA+IDApLCAiSGVsbG8gPiBoZWxsbyBjb21wYXJpc29uIGZhaWxlZCIpOworICAgIAorICAgICAgICBsb2dsbigiVGVzdCBjdG9ycyBlbmRzLiIpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgQ29sbGF0b3IuZ2V0U3RyZW5ndGgoKSBtZXRob2QgLi4uIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5URVJUSUFSWSksICJjb2xsYXRpb24gb2JqZWN0IGhhcyB0aGUgd3Jvbmcgc3RyZW5ndGgiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlBSSU1BUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdG9yLnNldFN0cmVuZ3RoKCkgbWV0aG9kIC4uLiIpOworICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBzZWNvbmRhcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgcHJpbWFyeSBkaWZmZXJlbmNlIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5TRUNPTkRBUlkpLCAiY29sbGF0aW9uIG9iamVjdCBoYXMgdGhlIHdyb25nIHN0cmVuZ3RoIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdG9yLnNldERlY29tcG9zaXRpb24oKSBtZXRob2QgLi4uIik7CisgICAgICAgIGNvbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTiksICJEZWNvbXBvc2l0aW9uIG1vZGUgIT0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04iKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXREZWNvbXBvc2l0aW9uKCkgPT0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTiksICJEZWNvbXBvc2l0aW9uIG1vZGUgPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OIik7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgcmNvbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJkYSIsICJESyIpKTsKKyAgICAgICAgZG9Bc3NlcnQocmNvbC5nZXRSdWxlcygpLmxlbmd0aCgpICE9IDAsICJkYV9ESyBydWxlcyBkb2VzIG5vdCBoYXZlIGxlbmd0aCAwIik7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgRnJlbmNoIGNvbGxhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBsb2dsbigidGVzdGluZyBDb2xsYXRvci5nZXRTdHJlbmd0aCgpIG1ldGhvZCBhZ2FpbiAuLi4iKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QgaGFzIHRoZSB3cm9uZyBzdHJlbmd0aCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgPT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgbm90IHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIEZyZW5jaCBDb2xsYXRvci5zZXRTdHJlbmd0aCgpIG1ldGhvZCAuLi4iKTsKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpID09IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBub3QgdGVydGlhcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgcHJpbWFyeSBkaWZmZXJlbmNlIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5TRUNPTkRBUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHNlY29uZGFyeSBkaWZmZXJlbmNlIik7CisgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKdW5rQ29sbGF0b3IoKXsKKyAgICAgICAgbG9nbG4oIkNyZWF0ZSBqdW5rIGNvbGxhdGlvbjogIik7CisgICAgICAgIExvY2FsZSBhYmNkID0gbmV3IExvY2FsZSgiYWIiLCAiQ0QiLCAiIik7CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBqdW5rID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoYWJjZCk7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisKKyAgICAKKyAgICAgICAgU3RyaW5nIGNvbHJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBqdW5rcnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWp1bmspLmdldFJ1bGVzKCk7CisgICAgICAgIGRvQXNzZXJ0KGNvbHJ1bGVzID09IGp1bmtydWxlcyB8fCBjb2xydWxlcy5lcXVhbHMoanVua3J1bGVzKSwgCisgICAgICAgICAgICAgICAgICAgIlRoZSBkZWZhdWx0IGNvbGxhdGlvbiBzaG91bGQgYmUgcmV0dXJuZWQuIik7CisgICAgICAgIENvbGxhdG9yIGZyQ29sID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZyQ29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgRnJlbmNoIGNvbGxhdG9yIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBkb0Fzc2VydCghKGZyQ29sLmVxdWFscyhqdW5rKSksICJUaGUganVuayBpcyB0aGUgc2FtZSBhcyB0aGUgRnJlbmNoIGNvbGxhdG9yLiIpOworICAgICAgICBsb2dsbigiQ29sbGF0b3IgcHJvcGVydHkgdGVzdCBlbmRlZC4iKTsKKyAgICAKKyAgICB9CisgICAgLyoqCisgICAgKiBUaGlzIHRlc3RzIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICogLSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yCisgICAgKiAtIGdldFJ1bGVzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZUJhc2VkQ29sbCgpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sMSA9IG51bGwsIGNvbDIgPSBudWxsLCBjb2wzID0gbnVsbCwgY29sNCA9IG51bGw7CisgICAgCisgICAgICAgIFN0cmluZyBydWxlc2V0MSA9ICImOSA8IGEsIEEgPCBiLCBCIDwgYywgQzsgY2gsIGNILCBDaCwgQ0ggPCBkLCBELCBlLCBFIjsgCisgICAgICAgIFN0cmluZyBydWxlc2V0MiA9ICImOSA8IGEsIEEgPCBiLCBCIDwgYywgQyA8IGQsIEQsIGUsIEUiOworICAgICAgICBTdHJpbmcgcnVsZXNldDMgPSAiJiI7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0MSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBvbmx5IGZpcnN0IGVycm9yIG5lZWRzIHRvIGJlIGEgd2FybmluZyBzaW5jZSB3ZSBleGl0IGZ1bmN0aW9uIAorICAgICAgICAgICAgd2FybmxuKCJSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wyID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzZXQyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBlbXB0eSBydWxlcyBmYWlsCisgICAgICAgICAgICBjb2wzID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzZXQzKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBFbXB0eSBydWxlcyBmb3IgdGhlIGNvbGxhdG9yIHNob3VsZCBmYWlsIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEVtcHR5IHJ1bGVzIGZvciB0aGUgY29sbGF0b3IgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBuZXcgTG9jYWxlKCJhYSIsICJBQSIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhbGxiYWNrIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC46ICVzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWZhdWx0IENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC46ICVzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGUxID0gY29sMS5nZXRSdWxlcygpOyAKKyAgICAgICAgU3RyaW5nIHJ1bGUyID0gY29sMi5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgcnVsZTMgPSBjb2wzLmdldFJ1bGVzKCk7CisgICAgCisgICAgICAgIGRvQXNzZXJ0KCFydWxlMS5lcXVhbHMocnVsZTIpLCAiRGVmYXVsdCBjb2xsYXRvciBnZXRSdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoIXJ1bGUyLmVxdWFscyhydWxlMyksICJEZWZhdWx0IGNvbGxhdG9yIGdldFJ1bGVzIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCghcnVsZTEuZXF1YWxzKHJ1bGUzKSwgIkRlZmF1bHQgY29sbGF0b3IgZ2V0UnVsZXMgZmFpbGVkIik7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sNCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlMik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgcnVsZTQgPSBjb2w0LmdldFJ1bGVzKCk7CisgICAgICAgIGRvQXNzZXJ0KHJ1bGUyLmVxdWFscyhydWxlNCksICJEZWZhdWx0IGNvbGxhdG9yIGdldFJ1bGVzIGZhaWxlZCIpOworICAgICAgICAvLyB0ZXN0cyB0aGF0IG1vZGlmaWVyICEgaXMgYWx3YXlzIGlnbm9yZWQKKyAgICAgICAgU3RyaW5nIGV4Y2xhbWF0aW9ucnVsZXMgPSAiISZhPGIiOworICAgICAgICAvLyBqYXZhIGRvZXMgbm90IGFsbG93ICEgdG8gYmUgdGhlIHN0YXJ0IG9mIHRoZSBydWxlCisgICAgICAgIFN0cmluZyB0aGFpc3RyID0gIlx1MGU0MFx1MGUwMVx1MGUyZCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2w1ID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGV4Y2xhbWF0aW9ucnVsZXMpOworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5jb2wgPSAoUnVsZUJhc2VkQ29sbGF0b3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbDVpdGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbDUuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRoYWlzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGVuY29saXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBlbmNvbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhaXN0cik7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIHRlc3Rpbmcgd2l0aCBlbiBzaW5jZSB0aGFpIGhhcyBpdHMgb3duIHRhaWxvcmluZworICAgICAgICAgICAgICAgIGludCBjZSA9IGNvbDVpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpbnQgY2UyID0gZW5jb2xpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2UyICE9IGNlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIhIG1vZGlmaWVyIHRlc3QgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkIGZvciAhIG1vZGlmaWVyLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogVGhpcyB0ZXN0cyB0aGUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAqIC0gZ2V0UnVsZXMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlcygpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCIiLCIiLCIiKSk7IC8vcm9vdAorICAgICAgICAgICAgLy8gbG9nbG4oIlBBU1M6IFJ1bGVCYXNlZCBDb2xsYXRvciBjcmVhdGlvbiBwYXNzZWQiKTsKKworICAgIAorICAgICAgICBTdHJpbmcgcnVsZXMgPSBjb2xsLmdldFJ1bGVzKCk7CisgICAgICAgIGlmIChydWxlcyAhPSBudWxsICYmIHJ1bGVzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJSb290IHRhaWxvcmVkIHJ1bGVzIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTYWZlQ2xvbmUoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJhYkNkYSI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJhYmNkYSI7CisgICAgICAgIAorICAgICAgICAvLyBvbmUgZGVmYXVsdCBjb2xsYXRvciAmIHR3byBjb21wbGV4IG9uZXMgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHNvbWVDb2xsYXRvcnNbXSA9IHsKKyAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCksCisgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLktPUkVBKSwKKyAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pCisgICAgICAgIH07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHNvbWVDbG9uZWRDb2xsYXRvcnNbXSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvclszXTsKKyAgICAgICAgCisgICAgICAgIC8vIGNoYW5nZSBvcmlnICYgY2xvbmUgJiBtYWtlIHN1cmUgdGhleSBhcmUgaW5kZXBlbmRlbnQgCisgICAgCisgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzb21lQ29sbGF0b3JzLmxlbmd0aDsgaW5kZXggKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3Ipc29tZUNvbGxhdG9yc1tpbmRleF0uY2xvbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY2xvbmluZyBjb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc29tZUNvbGxhdG9yc1tpbmRleF0uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBzb21lQ2xvbmVkQ29sbGF0b3JzW2luZGV4XS5zZXRDYXNlTGV2ZWwoZmFsc2UpOworICAgICAgICAgICAgc29tZUNvbGxhdG9yc1tpbmRleF0uc2V0Q2FzZUxldmVsKGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG9Bc3NlcnQoc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0uY29tcGFyZSh0ZXN0MSwgdGVzdDIpID4gMCwgCisgICAgICAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcImFiQ2RhXCIgPj4+IFwiYWJjZGFcIiAiKTsKKyAgICAgICAgICAgIGRvQXNzZXJ0KHNvbWVDb2xsYXRvcnNbaW5kZXhdLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA9PSAwLCAKKyAgICAgICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJDZGFcIiA9PSBcImFiY2RhXCIgIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0VGFpbG9yZWRTZXQoKSAKKyAgICB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGdldFRhaWxvcmVkU2V0Li4uIik7CisgICAgICAgIFN0cmluZyBydWxlc1tdID0geworICAgICAgICAgICAgIiZhIDwgXHUyMTJiIiwgICAgICAgICAgICAgCisgICAgICAgICAgICAiJiBTIDwgXHUwMTYxIDw8PCBcdTAxNjAiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmcgZGF0YVtdW10gPSB7CisgICAgICAgICAgICB7ICJcdTIxMmIiLCAiQVx1MDMwYSIsICJcdTAwYzUiIH0sICAgICAgICAKKyAgICAgICAgICAgIHsgIlx1MDE2MSIsICJzXHUwMzBDIiwgIlx1MDE2MCIsICJTXHUwMzBDIiB9ICAgICAgICAgICAgCisgICAgICAgIH07CisgICAgCisgICAgICAgIGludCBpID0gMCwgaiA9IDA7CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsOworICAgICAgICBVbmljb2RlU2V0IHNldDsKKyAgICAgICAgCisgICAgICAgIGZvcihpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJJbnN0YW50aWF0aW5nIGEgY29sbGF0b3IgZnJvbSAiK3J1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICBzZXQgPSBjb2xsLmdldFRhaWxvcmVkU2V0KCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIkdvdCBzZXQ6ICIrc2V0LnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICAgaWYoc2V0LnNpemUoKSAhPSBkYXRhW2ldLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGFpbG9yZWQgc2V0IHNpemUgZGlmZmVyZW50ICgiK3NldC5zaXplKCkrIikgdGhhbiBleHBlY3RlZCAoIitkYXRhW2ldLmxlbmd0aCsiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IoaiA9IDA7IGogPCBkYXRhW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJDaGVja2luZyB0byBzZWUgd2hldGhlciAiK2RhdGFbaV1bal0rIiBpcyBpbiBzZXQiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIXNldC5jb250YWlucyhkYXRhW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRhaWxvcmVkIHNldCBkb2Vzbid0IGNvbnRhaW4gIitkYXRhW2ldW2pdKyIuLi4gSXQgc2hvdWxkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGRuJ3Qgb3BlbiBjb2xsYXRvciB3aXRoIHJ1bGVzICIrIHJ1bGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBTaW1wbGUgdGVzdCB0byBzZWUgaWYgQ29sbGF0b3IgaXMgc3ViY2xhc3NhYmxlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1YkNsYXNzKCkgCisgICAgeworICAgICAgICBjbGFzcyBUZXN0Q29sbGF0b3IgZXh0ZW5kcyBDb2xsYXRvcgorICAgICAgICB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcyA9PSB0aGF0OworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlLmNvbXBhcmVUbyh0YXJnZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgQ29sbGF0aW9uS2V5IGdldENvbGxhdGlvbktleShTdHJpbmcgc291cmNlKQorICAgICAgICAgICAgeyAgIHJldHVybiBuZXcgQ29sbGF0aW9uS2V5KHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFJhd0NvbGxhdGlvbktleShzb3VyY2UsIG5ldyBSYXdDb2xsYXRpb25LZXkoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5IGdldFJhd0NvbGxhdGlvbktleShTdHJpbmcgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSBrZXkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYnl0ZSB0ZW1wMVtdID0gc291cmNlLmdldEJ5dGVzKCk7CisgICAgICAgICAgICAgICAgYnl0ZSB0ZW1wMltdID0gbmV3IGJ5dGVbdGVtcDEubGVuZ3RoICsgMV07CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wMSwgMCwgdGVtcDIsIDAsIHRlbXAxLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdGVtcDJbdGVtcDEubGVuZ3RoXSA9IDA7CisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAga2V5LmJ5dGVzID0gdGVtcDI7IAorICAgICAgICAgICAgICAgIGtleS5zaXplID0gdGVtcDIubGVuZ3RoOworICAgICAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFZhcmlhYmxlVG9wKGludCBjZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGludCBzZXRWYXJpYWJsZVRvcChTdHJpbmcgc3RyKSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGludCBnZXRWYXJpYWJsZVRvcCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgVmVyc2lvbkluZm8gZ2V0VmVyc2lvbigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFVDQVZlcnNpb24oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorIAorICAgICAgICBDb2xsYXRvciBjb2wxID0gbmV3IFRlc3RDb2xsYXRvcigpOworICAgICAgICBDb2xsYXRvciBjb2wyID0gbmV3IFRlc3RDb2xsYXRvcigpOworICAgICAgICBpZiAoY29sMS5lcXVhbHMoY29sMikpIHsKKyAgICAgICAgICAgIGVycmxuKCIyIGRpZmZlcmVudCBpbnN0YW5jZSBvZiBUZXN0Q29sbGF0b3Igc2hvdWxkIGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29sMS5oYXNoQ29kZSgpICE9IGNvbDIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkV2ZXJ5IFRlc3RDb2xsYXRvciBoYXMgdGhlIHNhbWUgaGFzaGNvZGUiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgYWJjID0gImFiYyI7CisgICAgICAgIFN0cmluZyBiY2QgPSAiYmNkIjsKKyAgICAgICAgaWYgKGNvbDEuY29tcGFyZShhYmMsIGJjZCkgIT0gYWJjLmNvbXBhcmVUbyhiY2QpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdENvbGxhdG9yIGNvbXBhcmUgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0ICIgKworICAgICAgICAgICAgICAgICAgInN0cmluZyBjb21wYXJpc29uIik7CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IGNvbDEuZ2V0Q29sbGF0aW9uS2V5KGFiYyk7CisgICAgICAgIGJ5dGUgdGVtcDFbXSA9IGFiYy5nZXRCeXRlcygpOworICAgICAgICBieXRlIHRlbXAyW10gPSBuZXcgYnl0ZVt0ZW1wMS5sZW5ndGggKyAxXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wMSwgMCwgdGVtcDIsIDAsIHRlbXAxLmxlbmd0aCk7CisgICAgICAgIHRlbXAyW3RlbXAxLmxlbmd0aF0gPSAwOworICAgICAgICBpZiAoIWphdmEudXRpbC5BcnJheXMuZXF1YWxzKGtleS50b0J5dGVBcnJheSgpLCB0ZW1wMikgCisgICAgICAgICAgICB8fCAha2V5LmdldFNvdXJjZVN0cmluZygpLmVxdWFscyhhYmMpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdENvbGxhdG9yIGNvbGxhdGlvbmtleSBBUEkgaXMgcmV0dXJuaW5nIHdyb25nIHZhbHVlcyIpOworICAgICAgICB9CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gY29sMS5nZXRUYWlsb3JlZFNldCgpOworICAgICAgICBpZiAoIXNldC5lcXVhbHMobmV3IFVuaWNvZGVTZXQoMCwgMHgxMEZGRkYpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgZGVmYXVsdCB0YWlsb3JlZCBzZXQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAgLyoqIAorICAgICAqIFNpbXBsZSB0ZXN0IHRoZSBjb2xsYXRvciBzZXR0ZXIgYW5kIGdldHRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0R2V0KCkgCisgICAgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBpbnQgZGVjb21wID0gY29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICBpbnQgc3RyZW5ndGggPSBjb2xsYXRvci5nZXRTdHJlbmd0aCgpOworICAgICAgICBib29sZWFuIGFsdCA9IGNvbGxhdG9yLmlzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCk7CisgICAgICAgIGJvb2xlYW4gY2FzZWxldmVsID0gY29sbGF0b3IuaXNDYXNlTGV2ZWwoKTsKKyAgICAgICAgYm9vbGVhbiBmcmVuY2ggPSBjb2xsYXRvci5pc0ZyZW5jaENvbGxhdGlvbigpOworICAgICAgICBib29sZWFuIGhxdWFydCA9IGNvbGxhdG9yLmlzSGlyYWdhbmFRdWF0ZXJuYXJ5KCk7CisgICAgICAgIGJvb2xlYW4gbG93ZXJjYXNlID0gY29sbGF0b3IuaXNMb3dlckNhc2VGaXJzdCgpOworICAgICAgICBib29sZWFuIHVwcGVyY2FzZSA9IGNvbGxhdG9yLmlzVXBwZXJDYXNlRmlyc3QoKTsKKyAgICAgICAgCisgICAgICAgIGNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpZiAoY29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBkZWNvbXBvc2l0aW9uIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICBpZiAoY29sbGF0b3IuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5RVUFURVJOQVJZKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBzdHJlbmd0aCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoIWFsdCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpID09IGFsdCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgYWx0ZXJuYXRlIGhhbmRsaW5nIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldENhc2VMZXZlbCghY2FzZWxldmVsKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzQ2FzZUxldmVsKCkgPT0gY2FzZWxldmVsKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBjYXNlIGxldmVsIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldEZyZW5jaENvbGxhdGlvbighZnJlbmNoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzRnJlbmNoQ29sbGF0aW9uKCkgPT0gZnJlbmNoKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBmcmVuY2ggY29sbGF0aW9uIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldEhpcmFnYW5hUXVhdGVybmFyeSghaHF1YXJ0KTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzSGlyYWdhbmFRdWF0ZXJuYXJ5KCkgPT0gaHF1YXJ0KSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBoaXJhZ2FuYSBxdWFydGVuYXJ5IGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldExvd2VyQ2FzZUZpcnN0KCFsb3dlcmNhc2UpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNMb3dlckNhc2VGaXJzdCgpID09IGxvd2VyY2FzZSkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgbG93ZXIgY2FzZSBmaXJzdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRVcHBlckNhc2VGaXJzdCghdXBwZXJjYXNlKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzVXBwZXJDYXNlRmlyc3QoKSA9PSB1cHBlcmNhc2UpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIHVwcGVyIGNhc2UgZmlyc3QgZmFpbGVkIik7CisgICAgICAgIH0gICAKKyAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbkRlZmF1bHQoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKSAhPSBkZWNvbXApIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGRlY29tcG9zaXRpb24gZGVmYXVsdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aERlZmF1bHQoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmdldFN0cmVuZ3RoKCkgIT0gc3RyZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIHN0cmVuZ3RoIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0QWx0ZXJuYXRlSGFuZGxpbmdEZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpICE9IGFsdCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgYWx0ZXJuYXRlIGhhbmRsaW5nIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0Q2FzZUxldmVsRGVmYXVsdCgpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNDYXNlTGV2ZWwoKSAhPSBjYXNlbGV2ZWwpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGNhc2UgbGV2ZWwgZGVmYXVsdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb25EZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0ZyZW5jaENvbGxhdGlvbigpICE9IGZyZW5jaCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgZnJlbmNoIGhhbmRsaW5nIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5RGVmYXVsdCgpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNIaXJhZ2FuYVF1YXRlcm5hcnkoKSAhPSBocXVhcnQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIEhpcmFnYW5hIFF1YXJ0ZW5hcnkgZGVmYXVsdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRDYXNlRmlyc3REZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0xvd2VyQ2FzZUZpcnN0KCkgIT0gbG93ZXJjYXNlIAorICAgICAgICAgICAgfHwgY29sbGF0b3IuaXNVcHBlckNhc2VGaXJzdCgpICE9IHVwcGVyY2FzZSkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgY2FzZSBmaXJzdCBoYW5kbGluZyBkZWZhdWx0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCb3VuZHMoKSAKKyAgICB7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJzaCIsICIiKSk7CisgICAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0W10gPSB7ICJKb2huIFNtaXRoIiwgIkpPSE4gU01JVEgiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImpvaG4gU01JVEgiLCAialx1MDBGNmhuIHNtXHUwMEVGdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiSlx1MDBGNmhuIFNtXHUwMEVGdGgiLCAiSlx1MDBENkhOIFNNXHUwMENGVEgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiam9obiBzbWl0aHNvbmlhbiIsICJKb2huIFNtaXRoc29uaWFuIiwKKyAgICAgICAgfTsKKyAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdFN0cltdID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIE1JSEFMSiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIE1JSEFMSiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgUElST1x1MDE2MEtBIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFJIEFORFJJSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBSSBMQUpPXHUwMTYwIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFJIE1BUklKQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFJIFNURVZBTiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBSSBTVEVWQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBUktBUEEgQlJBTktPIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFSS0FQQSBNSUxFTktPIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIE1JUk9TTEFWIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFSS0FQQSBTSU1PIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIFNUQU5LTyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBUktBUEEgVEFNQVJBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIFRPTUFcdTAxNjAiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCREFSSVx1MDEwNiBOSUtPTEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJEQVJJXHUwMTA2IFpPUklDQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkkgTkFORE9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCT1ZJXHUwMTA2IE1JTEFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUkFESSBBR05FWklKQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJBREkgSVZBTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJBREkgSkVMRU5BIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUkFESSBMSlVCSUNBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUkFESSBTVEVWQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSREEgTUFSVElOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUklMTyBCT0dEQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSSUxPIEJSQU5JU0xBViIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJJTE8gTEFaQVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSSUxPIExKVUJJQ0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSSUxPIFNQQVNPSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQURFXHUwMTYwIFpERU5LQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBREVTS0kgQkxBR09KRSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBRE9WU0tJIFZMQURJTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FHTEpFVklcdTAxMDYgVE9NQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBR09ST1ZJXHUwMTA2IFZMQURJTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FKQSBWQU5LQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBSklcdTAxMDYgQk9HT0xKVUIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUpJXHUwMTA2IEJPUklTTEFWIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FKSVx1MDEwNiBSQURPU0xBViIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS1x1MDE2MElSQU4gTUlMQURJTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIEVVR0VOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gRVZHRU5JSkUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBJVkFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gSlVMSUpBTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIE1JSEFKTE8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBTVEVWQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBWTEFESU1JUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIFZMQURJTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gVkxBRElNSVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBUkEgQU5BIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQVJFVklcdTAxMDYgTU9NSVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBUkVWSVx1MDEwNiBORURFTEpLTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgXHUwMTYwQU5ET1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIEFNQUxJSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIEFORFJBXHUwMTYwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLSSBMQURJU0xBViIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgTEFKT1x1MDE2MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgTEFTTE8iIH07IAorICAgICAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IHRlc3RLZXlbXSA9IG5ldyBDb2xsYXRpb25LZXlbdGVzdFN0ci5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RTdHIubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICB0ZXN0S2V5W2ldID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdFN0cltpXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFycmF5cy5zb3J0KHRlc3RLZXkpOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdGVzdEtleS5sZW5ndGggLSAxOyBpICsrKSB7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgbG93ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHRlc3RLZXlbaV0uZ2V0Qm91bmQoQ29sbGF0aW9uS2V5LkJvdW5kTW9kZS5MT1dFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgdGVzdEtleS5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25LZXkgdXBwZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHRlc3RLZXlbal0uZ2V0Qm91bmQoQ29sbGF0aW9uS2V5LkJvdW5kTW9kZS5VUFBFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSBpOyBrIDw9IGo7IGsgKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvd2VyLmNvbXBhcmVUbyh0ZXN0S2V5W2tdKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9ibGVtIHdpdGggbG93ZXIgYm91bmQgYXQgaSA9ICIgKyBpICsgIiBqID0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBqICsgIiBrID0gIiArIGspOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh1cHBlci5jb21wYXJlVG8odGVzdEtleVtrXSkgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlByb2JsZW0gd2l0aCB1cHBlciBib3VuZCBhdCBpID0gIiArIGkgKyAiIGogPSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGogKyAiIGsgPSAiICsgayk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdC5sZW5ndGg7IGkgKyspIAorICAgICAgICB7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdFtpXSk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgbG93ZXIgPSBrZXkuZ2V0Qm91bmQoQ29sbGF0aW9uS2V5LkJvdW5kTW9kZS5MT1dFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHVwcGVyID0ga2V5LmdldEJvdW5kKENvbGxhdGlvbktleS5Cb3VuZE1vZGUuVVBQRVJfTE9ORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgdGVzdC5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBrZXkgPSBjb2xsLmdldENvbGxhdGlvbktleSh0ZXN0W2pdKTsKKyAgICAgICAgICAgICAgICBpZiAobG93ZXIuY29tcGFyZVRvKGtleSkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9ibGVtIHdpdGggbG93ZXIgYm91bmQgaSA9ICIgKyBpICsgIiBqID0gIiArIGopOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodXBwZXIuY29tcGFyZVRvKGtleSkgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUHJvYmxlbSB3aXRoIHVwcGVyIGJvdW5kIGkgPSAiICsgaSArICIgaiA9ICIgKyBqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgVGVzdEdldEFsbCgpIHsKKyAgICAgICAgTG9jYWxlW10gbGlzdCA9IENvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaW50IGVycm9yQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxvZygiTG9jYWxlIG5hbWU6ICIpOworICAgICAgICAgICAgbG9nKGxpc3RbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICBsb2coIiAsIHRoZSBkaXNwbGF5IG5hbWUgaXMgOiAiKTsKKyAgICAgICAgICAgIGxvZ2xuKGxpc3RbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgICAgLi4uLi4uIE9yIGRpc3BsYXkgYXM6ICIgKyBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShsaXN0W2ldKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgICAgLi4uLi4uIGFuZCBkaXNwbGF5IGluIENoaW5lc2U6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShsaXN0W2ldLExvY2FsZS5DSElOQSkpOyAKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGVycm9yQ291bnQrKzsKKyAgICAgICAgICAgICAgICBsb2dsbigiY291bGQgbm90IGdldCBkaXNwbGF5TmFtZSBmb3IgIiArIGxpc3RbaV0pOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYoZXJyb3JDb3VudD4wKXsKKyAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YS4iKTsKKyAgICAgICAgfQorICAgIH0gICAgCisKKyAgICBwcml2YXRlIHZvaWQKKyAgICBkb1NldHNUZXN0KFVuaWNvZGVTZXQgcmVmLCBVbmljb2RlU2V0IHNldCwgU3RyaW5nIGluU2V0LCBTdHJpbmcgb3V0U2V0KSB7CisgICAgICAgIAorICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybihpblNldCk7CisgICAgICAgIAorICAgICAgICBpZighcmVmLmNvbnRhaW5zQWxsKHNldCkpIHsKKyAgICAgICAgICAgIGVycigiU29tZSBzdHVmZiBmcm9tICIraW5TZXQrIiBpcyBub3QgcHJlc2VudCBpbiB0aGUgc2V0XG4iKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4ob3V0U2V0KTsKKyAgICAgICAgaWYoIXJlZi5jb250YWluc05vbmUoc2V0KSkgeworICAgICAgICAgICAgZXJyKCJTb21lIHN0dWZmIGZyb20gIitvdXRTZXQrIiBpcyBwcmVzZW50IGluIHRoZSBzZXRcbiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRDb250cmFjdGlvbnMoKXRocm93cyBFeGNlcHRpb24geworICAgICAgICAvKiAgICAgICAgc3RhdGljIHN0cnVjdCB7CisgICAgICAgICBjb25zdCBjaGFyKiBsb2NhbGU7CisgICAgICAgICBjb25zdCBjaGFyKiBpbkNvbnRzOworICAgICAgICAgY29uc3QgY2hhciogb3V0Q29udHM7CisgICAgICAgICBjb25zdCBjaGFyKiBpbkV4cDsKKyAgICAgICAgIGNvbnN0IGNoYXIqIG91dEV4cDsKKyAgICAgICAgIGNvbnN0IGNoYXIqIHVuc2FmZUNvZGVVbml0czsKKyAgICAgICAgIGNvbnN0IGNoYXIqIHNhZmVDb2RlVW5pdHM7CisgICAgICAgICB9CisgICAgICAgICAqLworICAgICAgICBTdHJpbmcgdGVzdHNbXVtdID0geworICAgICAgICAgICAgICAgIHsgInJ1IiwgCisgICAgICAgICAgICAgICAgICAgICJbe1x1MDQ3NFx1MDMwRn17XHUwNDc1XHUwMzBGfXtcdTA0RDhcdTAzMDh9e1x1MDREOVx1MDMwOH17XHUwNEU4XHUwMzA4fXtcdTA0RTlcdTAzMDh9XSIsIAorICAgICAgICAgICAgICAgICAgICAiW3tcdTA0MzBcdTAzMDZ9e1x1MDQxMFx1MDMwNn17XHUwNDMwXHUwMzA4fXtcdTA0MTBcdTAzMDZ9e1x1MDQzM1x1MDMwMX17XHUwNDEzXHUwMzAxfV0iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MDBlNl0iLAorICAgICAgICAgICAgICAgICAgICAiW2FdIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTA0NzRcdTA0NzVcdTA0ZDhcdTA0ZDlcdTA0ZThcdTA0ZTldIiwKKyAgICAgICAgICAgICAgICAgICAgIlthQWJCXHUwNDMwXHUwNDEwXHUwNDMzXHUwNDEzXSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsgInVrIiwKKyAgICAgICAgICAgICAgICAgICAgIlt7XHUwNDc0XHUwMzBGfXtcdTA0NzVcdTAzMEZ9e1x1MDREOFx1MDMwOH17XHUwNEQ5XHUwMzA4fXtcdTA0RThcdTAzMDh9e1x1MDRFOVx1MDMwOH0iKyAKKyAgICAgICAgICAgICAgICAgICAgIntcdTA0MzBcdTAzMDZ9e1x1MDQxMFx1MDMwNn17XHUwNDMwXHUwMzA4fXtcdTA0MTBcdTAzMDZ9e1x1MDQzM1x1MDMwMX17XHUwNDEzXHUwMzAxfV0iLAorICAgICAgICAgICAgICAgICAgICAiW10iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MDBlNl0iLAorICAgICAgICAgICAgICAgICAgICAiW2FdIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTA0NzRcdTA0NzVcdTA0RDhcdTA0RDlcdTA0RThcdTA0RTlcdTA0MzBcdTA0MTBcdTA0MzNcdTA0MTNdIiwKKyAgICAgICAgICAgICAgICAgICAgIlthQWJCeHZdIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsgInNoIiwKKyAgICAgICAgICAgICAgICAgICAgIlt7Q1x1MDMwMX17Q1x1MDMwQ317Q1x1MDM0MX17RFpcdTAzMEN9e0R6XHUwMzBDfXtEXHUwMTdEfXtEXHUwMTdFfXtsan17bmp9XSIsCisgICAgICAgICAgICAgICAgICAgICJbe1x1MzA5ZFx1MzA5OX17XHUzMGZkXHUzMDk5fV0iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MDBlNl0iLAorICAgICAgICAgICAgICAgICAgICAiW2FdIiwKKyAgICAgICAgICAgICAgICAgICAgIltubGNkek5MQ0RaXSIsCisgICAgICAgICAgICAgICAgICAgICJbamFidl0iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7ICJqYSIsCisgICAgICAgICAgICAgICAgICAgICJbe1x1MzA1M1x1MzA5OVx1MzA5RH17XHUzMDUzXHUzMDk5XHUzMDlEXHUzMDk5fXtcdTMwNTNcdTMwOTlcdTMwOUV9e1x1MzA1M1x1MzA5OVx1MzBGQ317XHUzMDUzXHUzMDlEfXtcdTMwNTNcdTMwOURcdTMwOTl9e1x1MzA1M1x1MzA5RX17XHUzMDUzXHUzMEZDfXtcdTMwQjNcdTMwOTlcdTMwRkN9e1x1MzBCM1x1MzA5OVx1MzBGRH17XHUzMEIzXHUzMDk5XHUzMEZEXHUzMDk5fXtcdTMwQjNcdTMwOTlcdTMwRkV9e1x1MzBCM1x1MzBGQ317XHUzMEIzXHUzMEZEfXtcdTMwQjNcdTMwRkRcdTMwOTl9e1x1MzBCM1x1MzBGRX1dIiwKKyAgICAgICAgICAgICAgICAgICAgIlt7XHUzMEZEXHUzMDk5fXtcdTMwOURcdTMwOTl9e1x1MzA1M1x1MzA5OX17XHUzMEIzXHUzMDk5fXtsan17bmp9XSIsCisgICAgICAgICAgICAgICAgICAgICJbXHUzMEZFXHUwMGU2XSIsCisgICAgICAgICAgICAgICAgICAgICJbYV0iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MzA5OV0iLAorICAgICAgICAgICAgICAgICAgICAiW10iCisgICAgICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgVW5pY29kZVNldCBjb250cyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXQgZXhwID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGxvY2FsZTogIisgdGVzdHNbaV1bMF0pOworICAgICAgICAgICAgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSh0ZXN0c1tpXVswXSkpOworICAgICAgICAgICAgY29sbC5nZXRDb250cmFjdGlvbnNBbmRFeHBhbnNpb25zKGNvbnRzLCBleHAsIHRydWUpOworICAgICAgICAgICAgbG9nbG4oIkNvbnRyYWN0aW9ucyAiK2NvbnRzLnNpemUoKSsiOlxuIitjb250cy50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgZG9TZXRzVGVzdChjb250cywgc2V0LCB0ZXN0c1tpXVsxXSwgdGVzdHNbaV1bMl0pOworICAgICAgICAgICAgbG9nbG4oIkV4cGFuc2lvbnMgIitleHAuc2l6ZSgpKyI6XG4iK2V4cC50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgZG9TZXRzVGVzdChleHAsIHNldCwgdGVzdHNbaV1bM10sIHRlc3RzW2ldWzRdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTm8gdW5zYWZlIHNldCBpbiBJQ1U0SgorICAgICAgICAgICAgLy9ub0NvbnRzID0gdWNvbF9nZXRVbnNhZmVTZXQoY29sbCwgY29udHMsICZzdGF0dXMpOworICAgICAgICAgICAgLy9kb1NldHNUZXN0KGNvbnRzLCBzZXQsIHRlc3RzW2ldWzVdLCB0ZXN0c1tpXVs2XSk7CisgICAgICAgICAgICAvL2xvZ192ZXJib3NlKCJVbnNhZmVzICIrY29udHMuc2l6ZSgpKyI6XG4iK2NvbnRzLnRvUGF0dGVybih0cnVlKSsiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgYmlnb25lID0gIk9uZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxpdHRsZW9uZSA9ICJvbmUiOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpIHsKKyAgICAgICAgbG9nbG4oIlxuaW5pdCBjMCIpOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjMC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGR1bXAoImMwIiwgYzApOworCisgICAgICAgIGxvZ2xuKCJcbmluaXQgYzEiKTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzEgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYzEuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBjMS5zZXRVcHBlckNhc2VGaXJzdCghYzEuaXNVcHBlckNhc2VGaXJzdCgpKTsKKyAgICAgICAgZHVtcCgiYzAiLCBjMCk7CisgICAgICAgIGR1bXAoImMxIiwgYzEpOworICAgICAgICB0cnl7CisgICAgICAgICAgICBsb2dsbigiXG5pbml0IGMyIik7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMiA9IChSdWxlQmFzZWRDb2xsYXRvciljMS5jbG9uZSgpOworICAgICAgICAgICAgYzIuc2V0VXBwZXJDYXNlRmlyc3QoIWMyLmlzVXBwZXJDYXNlRmlyc3QoKSk7CisgICAgICAgICAgICBkdW1wKCJjMCIsIGMwKTsKKyAgICAgICAgICAgIGR1bXAoImMxIiwgYzEpOworICAgICAgICAgICAgZHVtcCgiYzIiLCBjMik7CisgICAgICAgICAgICBpZihjMS5lcXVhbHMoYzIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGhlIGNsb25lZCBvYmplY3RzIHJlZmVyIHRvIHNhbWUgZGF0YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBjbG9uZSB0aGUgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkdW1wKFN0cmluZyBtc2csIFJ1bGVCYXNlZENvbGxhdG9yIGMpIHsKKyAgICAgICAgbG9nbG4obXNnICsgIiAiICsgYy5jb21wYXJlKGJpZ29uZSwgbGl0dGxlb25lKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHM6ICIgKyBjLmdldFN0cmVuZ3RoKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB1OiAiICsgYy5pc1VwcGVyQ2FzZUZpcnN0KCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25DaGluZXNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkNoaW5lc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY3YmQxNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25DaGluZXNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvblR1cmtpc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC90cmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uQ2hpbmVzZVRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uQ2hpbmVzZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25DaGluZXNlVGVzdCgpIAorICAgIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBpbllpbigpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIHNlcVtdIAorICAgICAgICAgICAgPSB7Ilx1OTYzZiIsICJcdTU1NGEiLCAiXHU1NGNlIiwgIlx1NjM3MSIsICJcdTcyMzEiLCAiXHU5Zjk4IiwKKyAgICAgICAgICAgICAgICJcdTRlNWMiLCAiXHU4YmFhIiwgIlx1NGU0MiIsICJcdTUzYzgifTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIiIsICJQSU5ZSU4iKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiB6aF9fUElOWUlOIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VxLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGxhdG9yLCBzZXFbaV0sIHNlcVtpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ3VycmVuY3lUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ3VycmVuY3lUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY2YTAxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25DdXJyZW5jeVRlc3QuamF2YQpAQCAtMCwwICsxLDE4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkN1cnJlbmN5VGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvY3VycmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uQ3VycmVuY3lUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uQ3VycmVuY3lUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3koKSB7CisgICAgICAgIC8vIEFsbCB0aGUgY3VycmVuY3kgc3ltYm9scywgaW4gY29sbGF0aW9uIG9yZGVyCisgICAgICAgIGNoYXJbXVtdIGN1cnJlbmN5ID0geworICAgICAgICAgICAgeyAweDAwQTQgfSwgLyowMEE0OyBMOyBbMTQgMzYsIDAzLCAwM10gICAgIyBbMDgyQi4wMDIwLjAwMDJdICMgQ1VSUkVOQ1kgU0lHTiovCisgICAgICAgICAgICB7IDB4MDBBMiB9LCAvKjAwQTI7IEw7IFsxNCAzOCwgMDMsIDAzXSAgICAjIFswODJDLjAwMjAuMDAwMl0gIyBDRU5UIFNJR04qLworICAgICAgICAgICAgeyAweEZGRTAgfSwgLypGRkUwOyBMOyBbMTQgMzgsIDAzLCAwNV0gICAgIyBbMDgyQy4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIENFTlQgU0lHTiovCisgICAgICAgICAgICB7IDB4MDAyNCB9LCAvKjAwMjQ7IEw7IFsxNCAzQSwgMDMsIDAzXSAgICAjIFswODJELjAwMjAuMDAwMl0gIyBET0xMQVIgU0lHTiovCisgICAgICAgICAgICB7IDB4RkYwNCB9LCAvKkZGMDQ7IEw7IFsxNCAzQSwgMDMsIDA1XSAgICAjIFswODJELjAwMjAuMDAwM10gIyBGVUxMV0lEVEggRE9MTEFSIFNJR04qLworICAgICAgICAgICAgeyAweEZFNjkgfSwgLypGRTY5OyBMOyBbMTQgM0EsIDAzLCAxRF0gICAgIyBbMDgyRC4wMDIwLjAwMEZdICMgU01BTEwgRE9MTEFSIFNJR04qLworICAgICAgICAgICAgeyAweDAwQTMgfSwgLyowMEEzOyBMOyBbMTQgM0MsIDAzLCAwM10gICAgIyBbMDgyRS4wMDIwLjAwMDJdICMgUE9VTkQgU0lHTiovCisgICAgICAgICAgICB7IDB4RkZFMSB9LCAvKkZGRTE7IEw7IFsxNCAzQywgMDMsIDA1XSAgICAjIFswODJFLjAwMjAuMDAwM10gIyBGVUxMV0lEVEggUE9VTkQgU0lHTiovCisgICAgICAgICAgICB7IDB4MDBBNSB9LCAvKjAwQTU7IEw7IFsxNCAzRSwgMDMsIDAzXSAgICAjIFswODJGLjAwMjAuMDAwMl0gIyBZRU4gU0lHTiovCisgICAgICAgICAgICB7IDB4RkZFNSB9LCAvKkZGRTU7IEw7IFsxNCAzRSwgMDMsIDA1XSAgICAjIFswODJGLjAwMjAuMDAwM10gIyBGVUxMV0lEVEggWUVOIFNJR04qLworICAgICAgICAgICAgeyAweDA5RjIgfSwgLyowOUYyOyBMOyBbMTQgNDAsIDAzLCAwM10gICAgIyBbMDgzMC4wMDIwLjAwMDJdICMgQkVOR0FMSSBSVVBFRSBNQVJLKi8KKyAgICAgICAgICAgIHsgMHgwOUYzIH0sIC8qMDlGMzsgTDsgWzE0IDQyLCAwMywgMDNdICAgICMgWzA4MzEuMDAyMC4wMDAyXSAjIEJFTkdBTEkgUlVQRUUgU0lHTiovCisgICAgICAgICAgICB7IDB4MEUzRiB9LCAvKjBFM0Y7IEw7IFsxNCA0NCwgMDMsIDAzXSAgICAjIFswODMyLjAwMjAuMDAwMl0gIyBUSEFJIENVUlJFTkNZIFNZTUJPTCBCQUhUKi8KKyAgICAgICAgICAgIHsgMHgxN0RCIH0sIC8qMTdEQjsgTDsgWzE0IDQ2LCAwMywgMDNdICAgICMgWzA4MzMuMDAyMC4wMDAyXSAjIEtITUVSIENVUlJFTkNZIFNZTUJPTCBSSUVMKi8KKyAgICAgICAgICAgIHsgMHgyMEEwIH0sIC8qMjBBMDsgTDsgWzE0IDQ4LCAwMywgMDNdICAgICMgWzA4MzQuMDAyMC4wMDAyXSAjIEVVUk8tQ1VSUkVOQ1kgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBMSB9LCAvKjIwQTE7IEw7IFsxNCA0QSwgMDMsIDAzXSAgICAjIFswODM1LjAwMjAuMDAwMl0gIyBDT0xPTiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEEyIH0sIC8qMjBBMjsgTDsgWzE0IDRDLCAwMywgMDNdICAgICMgWzA4MzYuMDAyMC4wMDAyXSAjIENSVVpFSVJPIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTMgfSwgLyoyMEEzOyBMOyBbMTQgNEUsIDAzLCAwM10gICAgIyBbMDgzNy4wMDIwLjAwMDJdICMgRlJFTkNIIEZSQU5DIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTQgfSwgLyoyMEE0OyBMOyBbMTQgNTAsIDAzLCAwM10gICAgIyBbMDgzOC4wMDIwLjAwMDJdICMgTElSQSBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE1IH0sIC8qMjBBNTsgTDsgWzE0IDUyLCAwMywgMDNdICAgICMgWzA4MzkuMDAyMC4wMDAyXSAjIE1JTEwgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBNiB9LCAvKjIwQTY7IEw7IFsxNCA1NCwgMDMsIDAzXSAgICAjIFswODNBLjAwMjAuMDAwMl0gIyBOQUlSQSBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE3IH0sIC8qMjBBNzsgTDsgWzE0IDU2LCAwMywgMDNdICAgICMgWzA4M0IuMDAyMC4wMDAyXSAjIFBFU0VUQSBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE5IH0sIC8qMjBBOTsgTDsgWzE0IDU4LCAwMywgMDNdICAgICMgWzA4M0MuMDAyMC4wMDAyXSAjIFdPTiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHhGRkU2IH0sIC8qRkZFNjsgTDsgWzE0IDU4LCAwMywgMDVdICAgICMgWzA4M0MuMDAyMC4wMDAzXSAjIEZVTExXSURUSCBXT04gU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBQSB9LCAvKjIwQUE7IEw7IFsxNCA1QSwgMDMsIDAzXSAgICAjIFswODNELjAwMjAuMDAwMl0gIyBORVcgU0hFUUVMIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUIgfSwgLyoyMEFCOyBMOyBbMTQgNUMsIDAzLCAwM10gICAgIyBbMDgzRS4wMDIwLjAwMDJdICMgRE9ORyBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEFDIH0sIC8qMjBBQzsgTDsgWzE0IDVFLCAwMywgMDNdICAgICMgWzA4M0YuMDAyMC4wMDAyXSAjIEVVUk8gU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBRCB9LCAvKjIwQUQ7IEw7IFsxNCA2MCwgMDMsIDAzXSAgICAjIFswODQwLjAwMjAuMDAwMl0gIyBLSVAgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBRSB9LCAvKjIwQUU7IEw7IFsxNCA2MiwgMDMsIDAzXSAgICAjIFswODQxLjAwMjAuMDAwMl0gIyBUVUdSSUsgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBRiB9IC8qMjBBRjsgTDsgWzE0IDY0LCAwMywgMDNdICAgICMgWzA4NDIuMDAyMC4wMDAyXSAjIERSQUNITUEgU0lHTiovCisgICAgICAgIH07CisgICAgCisgICAgICAgIGludCBpLCBqOworICAgICAgICBpbnQgZXhwZWN0ZWRSZXN1bHQgPSAwOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbXBhcmUgZWFjaCBjdXJyZW5jeSBzeW1ib2wgYWdhaW5zdCBhbGwgdGhlCisgICAgICAgIC8vIGN1cnJlbmN5IHN5bWJvbHMsIGluY2x1ZGluZyBpdHNlbGYKKyAgICAgICAgU3RyaW5nIHNvdXJjZTsKKyAgICAgICAgU3RyaW5nIHRhcmdldDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdXJyZW5jeS5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGN1cnJlbmN5Lmxlbmd0aDsgaiArPSAxKSB7CisgICAgICAgICAgICAgICAgc291cmNlID0gbmV3IFN0cmluZyhjdXJyZW5jeVtpXSk7CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3IFN0cmluZyhjdXJyZW5jeVtqXSk7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA8IGopIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBpID09IGopIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSAwOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gMTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IGMuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSA9IG51bGw7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzb3VyY2VLZXkgPSBjLmdldENvbGxhdGlvbktleShzb3VyY2UpOworCisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBnZXQgY29sbGF0aW9uS2V5IGZvciBzb3VyY2UiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHRhcmdldEtleSA9IG51bGw7CisgICAgICAgICAgICAgICAgdGFyZ2V0S2V5ID0gYy5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0S2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGdldCBjb2xsYXRpb25LZXkgZm9yIHNvdXJjZSIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQga2V5UmVzdWx0ID0gc291cmNlS2V5LmNvbXBhcmVUbyh0YXJnZXRLZXkpOworCisgICAgICAgICAgICAgICAgcmVwb3J0Q1Jlc3VsdCggc291cmNlLCB0YXJnZXQsIHNvdXJjZUtleSwgdGFyZ2V0S2V5LCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIGV4cGVjdGVkUmVzdWx0ICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkR1bW15VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkR1bW15VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZTY3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRHVtbXlUZXN0LmphdmEKQEAgLTAsMCArMSw1MTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25EdW1teVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2FsbGNvbGwuY3BwCisgKiAgICAgICAgICAgICAgJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9jaW50bHRzdC9jYWxsY29sbC5jCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25EdW1teVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25EdW1teVRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25EdW1teVRlc3QoKS5UZXN0VmFyaWFibGVUb3AoKTsKKyAgICB9CisgICAgCisgICAgLy90ZXN0U291cmNlQ2FzZXNbXVtdIGFuZCB0ZXN0VGFyZ2V0Q2FzZXNbXVtdLCB0ZXN0Q2FzZXNbXVtdIGFyZSBwb3J0ZWQgZnJvbSB0aGUgZmlsZSBjYWxsY29sbC5jIGluIGljdTRjCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHg2MSwgMHg2MiwgMHgyNywgMHg2M30sCisgICAgICAgIHsweDYzLCAweDZmLCAweDJkLCAweDZmLCAweDcwfSwKKyAgICAgICAgezB4NjEsIDB4NjJ9LAorICAgICAgICB7MHg2MSwgMHg2ZCwgMHg3MCwgMHg2NSwgMHg3MiwgMHg3MywgMHg2MSwgMHg2NH0sCisgICAgICAgIHsweDYxLCAweDZjLCAweDZjfSwKKyAgICAgICAgezB4NjYsIDB4NmYsIDB4NzUsIDB4NzJ9LAorICAgICAgICB7MHg2NiwgMHg2OSwgMHg3NiwgMHg2NX0sCisgICAgICAgIHsweDMxfSwKKyAgICAgICAgezB4MzF9LAorICAgICAgICB7MHgzMX0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTAgCisgICAgICAgIHsweDMyfSwKKyAgICAgICAgezB4MzJ9LAorICAgICAgICB7MHg0OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zn0sCisgICAgICAgIHsweDYxLCAweDNjLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4M2MsIDB4NjJ9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwgIC8vICBzaW1wbGUgdGVzdCAKKyAgICAgICAgezB4NzAsIDB4MDBFQSwgMHg2MywgMHg2OCwgMHg2NX0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMjAgCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDAwRTYsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sICAvLyAgcHJpbWFyeSB0ZXN0IAorICAgICAgICB7MHg2MiwgMHg2YywgMHg2MSwgMHg2MywgMHg2Yn0sCisgICAgICAgIHsweDY2LCAweDZmLCAweDc1LCAweDcyfSwKKyAgICAgICAgezB4NjYsIDB4NjksIDB4NzYsIDB4NjV9LAorICAgICAgICB7MHgzMX0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDMwIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2MywgMHg0OH0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NDgsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzNCAKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjUsIDB4MzB9LAorICAgICAgICB7MHgzMSwgMHgzMH0sCisgICAgICAgIHsweDcwLCAweDAwRUEsMHgzMH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzNyAgICAgCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4Mjd9LAorICAgICAgICB7MHg0MywgMHg0ZiwgMHg0ZiwgMHg1MH0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4MjZ9LAorICAgICAgICB7MHgyNn0sCisgICAgICAgIHsweDM0fSwKKyAgICAgICAgezB4MzV9LAorICAgICAgICB7MHg2ZiwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDZlLCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NzAsIDB4NmUsIDB4NjV9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTAgCisgICAgICAgIHsweDc0LCAweDc3LCAweDZmfSwKKyAgICAgICAgezB4NzUsIDB4NzcsIDB4NmZ9LAorICAgICAgICB7MHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg0Zn0sCisgICAgICAgIHsweDYxLCAweDNjLCAweDNkLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwgIC8vICBzaW1wbGUgdGVzdCAKKyAgICAgICAgezB4NzAsIDB4MDBFOSwgMHg2MywgMHg2OCwgMHgwMEU5fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MiwgMHg0M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAyMCAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4Njh9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2NH0sCisgICAgICAgIHsweDAwRTQsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHgwMEM2LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LCAgLy8gIHByaW1hcnkgdGVzdCAKKyAgICAgICAgezB4NjIsIDB4NmMsIDB4NjEsIDB4NjMsIDB4NmIsIDB4MmQsIDB4NjIsIDB4NjksIDB4NzIsIDB4NjR9LAorICAgICAgICB7MHgzNH0sCisgICAgICAgIHsweDM1fSwKKyAgICAgICAgezB4NmYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDQyLCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDMwIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2MywgMHg2OH0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDY0fSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDM0IAorICAgICAgICB7MHg2MSwgMHg2MywgMHg2NSwgMHgzMH0sCisgICAgICAgIHsweDMxLCAweDMwfSwKKyAgICAgICAgezB4NzAsIDB4MDBFQiwweDMwfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDM3IAorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdENhc2VzID0geworICAgICAgICB7MHg2MX0sCisgICAgICAgIHsweDQxfSwKKyAgICAgICAgezB4MDBlNH0sCisgICAgICAgIHsweDAwYzR9LAorICAgICAgICB7MHg2MSwgMHg2NX0sCisgICAgICAgIHsweDYxLCAweDQ1fSwKKyAgICAgICAgezB4NDEsIDB4NjV9LAorICAgICAgICB7MHg0MSwgMHg0NX0sCisgICAgICAgIHsweDAwZTZ9LAorICAgICAgICB7MHgwMGM2fSwKKyAgICAgICAgezB4NjJ9LAorICAgICAgICB7MHg2M30sCisgICAgICAgIHsweDdhfQorICAgIH07CisgICAgCisgICAgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIC0xLCAvL0NvbGxhdG9yOjpHUkVBVEVSLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIDEsCisgICAgICAgIC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTAgCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgIC8vICB0ZXN0IHByaW1hcnkgPiAxNyAKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMjAgCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLTEsCisgICAgLy8gIHRlc3Qgc2Vjb25kYXJ5ID4gMjYgCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDMwIAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDM0IAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAtMSAKKyAgICB9OworICAgIAorICAgIGZpbmFsIGludCBNQVhfVE9LRU5fTEVOID0gMTY7CisgICAgCisgICAgcHVibGljIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uOworICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25EdW1teVRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgcnVsZXNldCA9ICImIEMgPCBjaCwgY0gsIENoLCBDSCAmIEZpdmUsIDUgJiBGb3VyLCA0ICYgb25lLCAxICYgQW1wZXJzYW5kOyAnJicgJiBUd28sIDIgIjsKKyAgICAgICAgLy8gU3RyaW5nIHJ1bGVzZXQgPSAiJiBGb3VyLCA0IjsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBudWxsOworICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0KTsKKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggdGVydGlhcnkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTcgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgIC8vIHByb2JsZW0gaW4gc3RyY29sbGluYyBmb3IgdW5maW5zaGVkIGNvbnRyYWN0aW9ucyAKKyAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE3OyBpIDwgMjYgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy9wZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBTRUNPTkRBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5KCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZm9yIChpID0gMjY7IGkgPCAzNDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBlcmZvcm0gZXh0cmEgdGVzdHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXh0cmEoKSB7CisgICAgICAgIGludCBpLCBqOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoIC0gMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IHRlc3RDYXNlcy5sZW5ndGg7IGogKz0gMSkgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW2ldLCB0ZXN0Q2FzZXNbal0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJZGVudGljYWwoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICBmb3IgKGk9IDM0OyBpPDM3OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEpCNTgxKCkgeworICAgICAgICBTdHJpbmcgc291cmNlID0gIlRISVNJU0FURVNULiI7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiVGhpc2lzYXRlc3QuIjsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgOiBlbl9VU1xuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gY29sbC5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgLy8gcmVzdWx0IGlzIDEsIHNlY29uZGFyeSBkaWZmZXJlbmNlcyBvbmx5IGZvciBpZ25vcmFibGUgc3BhY2UgY2hhcmFjdGVycworICAgICAgICBpZiAocmVzdWx0ICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJpbmcgdHdvIHN0cmluZ3Mgd2l0aCBvbmx5IHNlY29uZGFyeSBkaWZmZXJlbmNlcyBpbiBDIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUbyBjb21wYXJlIHRoZW0gd2l0aCBqdXN0IHByaW1hcnkgZGlmZmVyZW5jZXMgCisgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIC8vIHJlc3VsdCBpcyAwIAorICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJpbmcgdHdvIHN0cmluZ3Mgd2l0aCBubyBkaWZmZXJlbmNlcyBpbiBDIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IAorICAgICAgICAgIAorICAgICAgICAvLyBOb3csIGRvIHRoZSBzYW1lIGNvbXBhcmlzb24gd2l0aCBrZXlzIAorICAgICAgICBDb2xsYXRpb25LZXkgc291cmNlS2V5T3V0LCB0YXJnZXRLZXlPdXQ7CisgICAgICAgIHNvdXJjZUtleU91dCA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgIHRhcmdldEtleU91dCA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIHJlc3VsdCA9IHNvdXJjZUtleU91dC5jb21wYXJlVG8odGFyZ2V0S2V5T3V0KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyaW5nIHR3byBzdHJpbmdzIHdpdGggc29ydCBrZXlzIGluIEMgZmFpbGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0U3Vycm9nYXRlcygpIGlzIHBvcnRlZCBmcm9tIGNpbnRsdHN0L2NhbGxjb2xsLmMKKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RzIHN1cnJvZ2F0ZSBzdXBwb3J0LgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1cnJvZ2F0ZXMoKSAKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlcyA9ICImejwnXHVkODAwXHVkYzAwJzwnXHVkODAwXHVkYzBhXHUwMzA4JzxBIjsKKyAgICAgICAgU3RyaW5nIHNvdXJjZVtdID0geyJ6IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MDBcdURDMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwYVx1MDMwOCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAyIiAgICAKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0YXJnZXRbXSA9IHsiXHVEODAwXHVEQzAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMGFcdTAzMDgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMyIgICAgCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIHRoaXMgdGVzdCBpcyB0byB2ZXJpZnkgdGhlIHN1cHBsZW1lbnRhcnkgc29ydCBrZXkgb3JkZXIgaW4gdGhlIGVuZ2xpc2ggCisgICAgICAgIC8vIGNvbGxhdG9yCisgICAgICAgIENvbGxhdG9yIGVuQ29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW5Db2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEZhaWxlZCB0byBjcmVhdGUgdGhlIGNvbGxhdG9yIGZvciBFTkdMSVNIIik7CisgICAgICAgICAgICByZXR1cm47ICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIC8vIGxvZ2xuKCJzdGFydCBvZiBlbmdsaXNoIGNvbGxhdGlvbiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdGVzdFxuIik7CisgICAgICAgIHdoaWxlIChjb3VudCA8IDIpIHsKKyAgICAgICAgICAgIGRvVGVzdChlbkNvbGxhdGlvbiwgc291cmNlW2NvdW50XSwgdGFyZ2V0W2NvdW50XSwgLTEpOworICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgZG9UZXN0KGVuQ29sbGF0aW9uLCBzb3VyY2VbY291bnRdLCB0YXJnZXRbY291bnRdLCAxKTsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBsb2dsbigic3RhcnQgb2YgdGFpbG9yZWQgY29sbGF0aW9uIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0ZXN0XG4iKTsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBDb2xsYXRvciBuZXdDb2xsYXRpb247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXdDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgcnVsZXMiKTsKKyAgICAgICAgICAgIHJldHVybjsgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHRlc3RzIGdldHRpbmcgY29sbGF0aW9uIGVsZW1lbnRzIGZvciBzdXJyb2dhdGVzIGZvciB0YWlsb3JlZCBydWxlcyAKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgNCkgeworICAgICAgICAgICAgZG9UZXN0KG5ld0NvbGxhdGlvbiwgc291cmNlW2NvdW50XSwgdGFyZ2V0W2NvdW50XSwgLTEpOworICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gdGVzdHMgdGhhdCBcdUQ4MDFcdURDMDEgc3RpbGwgaGFzIHRoZSBzYW1lIHZhbHVlLCBub3QgY2hhbmdlZCAKKyAgICAgICAgQ29sbGF0aW9uS2V5IGVuS2V5ID0gZW5Db2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZVszXSk7CisgICAgICAgIENvbGxhdGlvbktleSBuZXdLZXkgPSBuZXdDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZVszXSk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBlbktleS5jb21wYXJlVG8obmV3S2V5KTsKKyAgICAgICAgaWYoa2V5UmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgOiBub24tdGFpbG9yZWQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHNob3VsZCBoYXZlIHRoZSBzYW1lIHZhbHVlXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL1Rlc3RWYXJpYWJsZVRvcCgpIGlzIHBvcnRlZCBmcm9tIGNpbnRsdHN0L2NhbGxjb2xsLmMKKyAgICAvKioKKyAgICAqIFRlc3RzIHRoZSBbdmFyaWFibGUgdG9wXSB0YWcgaW4gcnVsZSBzeW50YXguIFNpbmNlIHRoZSBkZWZhdWx0IFthbHRlcm5hdGVdCisgICAgKiB0YWcgaGFzIHRoZSB2YWx1ZSBzaGlmdGVkLCBhbnkgY29kZXBvaW50cyBiZWZvcmUgW3ZhcmlhYmxlIHRvcF0gc2hvdWxkIGdpdmUKKyAgICAqIGEgcHJpbWFyeSBjZSBvZiAwLgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlVG9wKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICImeiA9IFt2YXJpYWJsZSB0b3BdIjsKKyAgICAgICAgQ29sbGF0b3IgIG15Q29sbDsKKyAgICAgICAgQ29sbGF0b3IgIGVuQ29sbDsKKyAgICAgICAgY2hhcltdIHNvdXJjZSA9IG5ldyBjaGFyWzFdOworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgZXhwZWN0ZWRbXSA9IHswfTsKKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGVuQ29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRmFpbGVkIHRvIGNyZWF0ZSB0aGUgY29sbGF0b3IgZm9yIEVOR0xJU0giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgbXlDb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBydWxlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisgICAgICAgIGVuQ29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbXlDb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAKKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcillbkNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGlmKCgoUnVsZUJhc2VkQ29sbGF0b3IpZW5Db2xsKS5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQUxURVJOQVRFX0hBTkRMSU5HIHZhbHVlIGNhbiBub3QgYmUgc2V0IHRvIFNISUZURURcbiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzcGFjZSBpcyBzdXBwb3NlZCB0byBiZSBhIHZhcmlhYmxlIAorICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gZW5Db2xsLmdldENvbGxhdGlvbktleSgiICIpOyAgIAorICAgICAgICBieXRlW10gcmVzdWx0ID0ga2V5LnRvQnl0ZUFycmF5KCk7IAorICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYocmVzdWx0W2ldIT0gZXhwZWN0ZWRbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IFNISUZURUQgYWx0ZXJuYXRlIGRvZXMgbm90IHJldHVybiAwIGZvciBwcmltYXJ5IG9mIHNwYWNlXG4iKTsgIAorICAgICAgICAgICAgICAgIGJyZWFrOyAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNoID0gJ2EnOworICAgICAgICB3aGlsZSAoY2ggPCAneicpIHsKKyAgICAgICAgICAgIHNvdXJjZVswXSA9IGNoOworICAgICAgICAgICAga2V5ID0gbXlDb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHNvdXJjZSkpOworICAgICAgICAgICAgcmVzdWx0ID0ga2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZihyZXN1bHRbaV0hPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IFNISUZURUQgYWx0ZXJuYXRlIGRvZXMgbm90IHJldHVybiAwIGZvciBwcmltYXJ5IG9mIHNwYWNlXG4iKTsgIAorICAgICAgICAgICAgICAgICAgICBicmVhazsgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoICsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjE0MDEoKSB7CisgICAgICAgIENvbGxhdG9yICAgICBteUNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgY2hhcltdIE5GRF9VbnNhZmVTdGFydENoYXJzID0geworICAgICAgICAgICAgMHgwZjczLCAgICAgICAgICAvLyBUaWJldGFuIFZvd2VsIFNpZ24gSUkgCisgICAgICAgICAgICAweDBmNzUsICAgICAgICAgIC8vIFRpYmV0YW4gVm93ZWwgU2lnbiBVVSAKKyAgICAgICAgICAgIDB4MGY4MSwgICAgICAgICAgLy8gVGliZXRhbiBWb3dlbCBTaWduIFJldmVyc2VkIElJIAorICAgICAgICAgICAgMAorICAgICAgICB9OworICAgICAgICBpbnQgaTsKKyAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgRU5HTElTSCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG15Q29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGZvciAoaT0wOyA7IGkrKykgeworICAgICAgICAgICAgLy8gR2V0IHRoZSBuZXh0IGZ1bm55IGNoYXJhY3RlciB0byBiZSB0ZXN0ZWQsIGFuZCBzZXQgdXAgdGhlCisgICAgICAgICAgICAvLyB0aHJlZSB0ZXN0IHN0cmluZ3MgWCwgWSwgWiwgY29uc2lzdGluZyBvZiBhbiBBLWdyYXZlICsgdGVzdCBjaGFyLAorICAgICAgICAgICAgLy8gaW4gb3JpZ2luYWwgZm9ybSwgTkZELCBhbmQgdGhlbiBORkMgZm9ybS4KKyAgICAgICAgICAgIGNoYXIgYyA9IE5GRF9VbnNhZmVTdGFydENoYXJzW2ldOworICAgICAgICAgICAgaWYgKGM9PTApIHticmVhazt9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB4ID0gIlx1MDBDMCIgKyBjOyAgICAgICAvLyBcdTAwQzAgaXMgQSBHcmF2ZQorICAgICAgICAgICAgU3RyaW5nIHk7CisgICAgICAgICAgICBTdHJpbmcgejsKKyAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB5ID0gTm9ybWFsaXplci5kZWNvbXBvc2UoeCwgZmFsc2UpOworICAgICAgICAgICAgICAgIHogPSBOb3JtYWxpemVyLmRlY29tcG9zZSh5LCB0cnVlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gbm9ybWFsaXplIHRlc3Qgb2YgY2hhcmFjdGVyIiArIGMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgICAgIC8vIENvbGxhdGlvbiB0ZXN0LiAgQWxsIHRocmVlIHN0cmluZ3Mgc2hvdWxkIGJlIGVxdWFsLgorICAgICAgICAgICAgLy8gZG9UZXN0IGRvZXMgYm90aCBzdHJjb2xsIGFuZCBzb3J0IGtleXMsIHdpdGggcGFyYW1zIGluIGJvdGggb3JkZXJzLgorICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHgsIHksIDApOworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHgsIHosIDApOworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHksIHosIDApOyAKKyAgICAKKyAgICAgICAgICAgIC8vIFJ1biBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcnMgb3ZlciB0aGUgdGhyZWUgc3RyaW5ncy4gIFJlc3VsdHMgc2hvdWxkIGJlIHNhbWUgZm9yIGVhY2guCisgICAgICAgICAgICAgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNlaVgsIGNlaVksIGNlaVo7CisgICAgICAgICAgICAgICAgaW50IGNlWCwgY2VZLCBjZVo7CisgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgY2VpWCA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRvcikuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHgpOworICAgICAgICAgICAgICAgICAgICBjZWlZID0gKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdG9yKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoeSk7CisgICAgICAgICAgICAgICAgICAgIGNlaVogPSAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0b3IpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih6KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGZvciAoaj0wOzsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlWCA9IGNlaVgubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VZID0gY2VpWS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjZVogPSBjZWlaLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLm5leHQgZmFpbGVkIGZvciBpdGVyYXRpb24gIiArIGopOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoY2VYICE9IGNlWSB8fCBjZVkgIT0gY2VaKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHVjb2xfbmV4dCBmYWlsZWQgZm9yIGl0ZXJhdGlvbiAiICsgaik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoY2VYID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIG1haW4gdGVzdCBtZXRob2QgY2FsbGVkIHdpdGggZGlmZmVyZW50IHN0cmVuZ3RocywKKyAgICAvLyB0ZXN0cyBjb21wYXJpc29uIG9mIGN1c3R1bSBjb2xsYXRpb24gd2l0aCBkaWZmZXJlbnQgc3RyZW5ndGhzCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChDb2xsYXRvciBjb2xsYXRpb24sIGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgcywgdCwgcmVzdWx0KTsKKyAgICAgICAgaWYocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMSk7CisgICAgICAgIH0gZWxzZSBpZihyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIC0xKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBtYWluIHRlc3QgbWV0aG9kIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBzdHJlbmd0aHMsCisgICAgLy8gdGVzdHMgY29tcGFyaXNvbiBvZiBjdXN0dW0gY29sbGF0aW9uIHdpdGggZGlmZmVyZW50IHN0cmVuZ3RocworICAgIAorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoQ29sbGF0b3IgY29sbGF0aW9uLFN0cmluZyBzLCBTdHJpbmcgdCwgaW50IHJlc3VsdCkgeworICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgcywgdCwgcmVzdWx0KTsKKyAgICAgICAgaWYocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMSk7CisgICAgICAgIH0gZWxzZSBpZihyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIC0xKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VmFyaWFudChDb2xsYXRvciBjb2xsYXRpb24sIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBjb2xsYXRpb24uY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIENvbGxhdGlvbktleSBzcmNrZXkgLCB0Z3RrZXk7CisgICAgICAgIHNyY2tleSA9IGNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgdGd0a2V5ID0gY29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc3Jja2V5LmNvbXBhcmVUbyh0Z3RrZXkpOworICAgICAgICBpZiAoY29tcGFyZVJlc3VsdCAhPSByZXN1bHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgY29tcGFyaXNvbiBmYWlsZWQgaW4gdmFyaWFudCB0ZXN0XG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoa2V5UmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBrZXkgY29tcGFyaXNvbiBmYWlsZWQgaW4gdmFyaWFudCB0ZXN0XG4iKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRW5nbGlzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25FbmdsaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNzMyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRW5nbGlzaFRlc3QuamF2YQpAQCAtMCwwICsxLDQyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkVuZ2xpc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9lbmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25FbmdsaXNoVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25FbmdsaXNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDAyMCAvKiAnICcgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNDggLyogJ0gnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNkYgLyogJ28nICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA0MyAvKiAnQycgKi99LCAKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDAyRCAvKiAnLScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEVBLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRTl9LAorICAgICAgICB7MHgwMEM0LCAweDAwNDIgLyogJ0InICovLCAweDAzMDgsIDB4MDA0MyAvKiAnQycgKi8sIDB4MDMwOH0sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAzMDgsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzIgLyogJ3InICovfSwKKyAgICAgICAgezB4MDA3MiAvKiAncicgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDc0IC8qICd0JyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZGIC8qICdvJyAqLywgMHgwMDZEIC8qICdtJyAqLywgMHgwMDcwIC8qICdwJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDcwIC8qICdwJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDZFIC8qICduJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovfSwgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjIgLyogJ2InICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDAyMyAvKiAnIycgKi8sIDB4MDA2MiAvKiAnYicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwRTYsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA0OCAvKiAnSCcgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMzA4LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3NCAvKiAndCcgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDMwMiwgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRUEsIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEU2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwRTYsIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMEU5fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDkKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi99LAorICAgICAgICB7MHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZGIC8qICdvJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA0MyAvKiAnQycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNzMgLyogJ3MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFOX0sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA3MiAvKiAncicgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNDIgLyogJ0InICovLCAweDAzMDgsIDB4MDA0MyAvKiAnQycgKi8sIDB4MDMwOH0sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAzMDgsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA3MiAvKiAncicgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDMwMiwgMHgwMDZDIC8qICdsJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwRTEsIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMEUxLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDU0IC8qICdUJyAqLywgMHgwMDQzIC8qICdDJyAqLywgMHgwMDZGIC8qICdvJyAqLywgMHgwMDZEIC8qICdtJyAqLywgMHgwMDcwIC8qICdwJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDUwIC8qICdQJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDZFIC8qICduJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDAyMyAvKiAnIycgKi8sIDB4MDA0MiAvKiAnQicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDI2IC8qICcmJyAqLywgMHgwMDYyIC8qICdiJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwQzQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDAyMyAvKiAnIycgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwM0QgLyogJz0nICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA0MyAvKiAnQycgKi8sIDB4MDA0OCAvKiAnSCcgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3NCAvKiAndCcgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFRSwgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFOX0sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwQzYsIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwRTQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEM2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwgICAgICAgICAgCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRUEsIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi99CisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDkKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgLy8tMTpMRVNTOyAwOkVRVUFMOyAxOkdSRUFURVIKKyAgICAgICAgLTEsIAorICAgICAgICAtMSwgLypDb2xsYXRvcjo6R1JFQVRFUiwqLworICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgMCwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsIC8qQ29sbGF0b3I6OkdSRUFURVIsKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAgKi8KKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMCAqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAvKiBUZXN0IFRlcnRpYXJ5ICA+IDI2ICovCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMwICovCisgICAgICAgIDEsCisgICAgICAgIDAsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC8qIHRlc3QgaWRlbnRpY2FsID4gMzYgKi8KKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLyogdGVzdCBwcmltYXJ5ID4gMzggKi8KKyAgICAgICAgMCwKKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA0MCAqLworICAgICAgICAtMSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLyogdGVzdCBzZWNvbmRhcnkgPiA0MyAqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAtMSwgCisgICAgICAgIC0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDkKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBbXVtdIHRlc3RCdWdzID0geworICAgICAgICB7MHg2MX0sCisgICAgICAgIHsweDQxfSwKKyAgICAgICAgezB4NjV9LAorICAgICAgICB7MHg0NX0sCisgICAgICAgIHsweDAwZTl9LAorICAgICAgICB7MHgwMGU4fSwKKyAgICAgICAgezB4MDBlYX0sCisgICAgICAgIHsweDAwZWJ9LAorICAgICAgICB7MHg2NSwgMHg2MX0sCisgICAgICAgIHsweDc4fQorICAgIH07CisKKyAgICAvLyAweDAzMDAgaXMgZ3JhdmUsIDB4MDMwMSBpcyBhY3V0ZQorICAgIC8vIHRoZSBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGlzIGFycmF5IG11c3QgYmUgZGlmZmVyZW50IHRoYW4gdGhlIG9yZGVyIGluIENvbGxhdGlvbkZyZW5jaFRlc3QKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0QWN1dGUgPSB7CisgICAgICAgIHsweDY1LCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4NjUsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHg2NSwgMHgwMzAwLCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDY1LCAweDAzMDAsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHgwMzAwLCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHgwMzAwLCAweDY1LCAweDAzMDAsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4NjV9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4NjUsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4NjUsIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDAzMDEsIDB4NjUsIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDAzMDEsIDB4NjUsIDB4MDMwMCwgMHgwMzAxfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0TW9yZSA9IHsKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7IDB4MDBFNn0sCisgICAgICAgIHsgMHgwMEM2fSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2NiAvKiAnZicgKi99LAorICAgICAgICB7MHgwMDZGIC8qICdvJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsgMHgwMTUzfSwKKyAgICAgICAgeyAweDAxNTJ9LAorICAgICAgICB7MHgwMDZGIC8qICdvJyAqLywgMHgwMDY2IC8qICdmJyAqL30sCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRW5nbGlzaFRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgIH0KKyAgICAKKyAgICAvL3BlcmZvcm1zIHRlc3Qgd2l0aCBzdHJlbmd0aCBQUklNQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFByaW1hcnkoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpID0gMzg7IGkgPCA0MyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfSAgCisgICAgfQorICAgIAorICAgIC8vcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggU0VDT05EQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFNlY29uZGFyeSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGZvciAoaSA9IDQzOyBpIDwgNDkgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKworICAgICAgICAvL3Rlc3QgYWN1dGUgYW5kIGdyYXZlIG9yZGVyaW5nIChjb21wYXJlIHRvIGZyZW5jaCBjb2xsYXRpb24pCisgICAgICAgIGludCBqOworICAgICAgICBpbnQgZXhwZWN0ZWQ7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXN0QWN1dGUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB0ZXN0QWN1dGUubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiaSA9ICIgKyBpICsgIjsgaiA9ICIgKyBqKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA8ICBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGkgPT0gaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgLy8gKGkgPiAgaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAxOworICAgICAgICAgICAgICAgIGRvVGVzdCh0ZXN0QWN1dGVbaV0sIHRlc3RBY3V0ZVtqXSwgZXhwZWN0ZWQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL3BlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUlRJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgLy9mb3IgKGkgPSAwOyBpIDwgMzggOyBpKyspICAvL2F0dGVudGlvbjogdGhlcmUgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggMzYsIDM3LgorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMzggOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0gCisKKyAgICAgICAgaW50IGogPSAwOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChqID0gaSsxOyBqIDwgMTA7IGorKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEJ1Z3NbaV0sIHRlc3RCdWdzW2pdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvL3Rlc3QgbW9yZSBpbnRlcmVzdGluZyBjYXNlcworICAgICAgICBpbnQgZXhwZWN0ZWQ7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXN0TW9yZS5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IHRlc3RNb3JlLmxlbmd0aDsgaisrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpIDwgIGopCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gLTE7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaSA9PSBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDA7CisgICAgICAgICAgICAgICAgZWxzZSAvLyAoaSA+ICBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICAgICAgZG9UZXN0KHRlc3RNb3JlW2ldLCB0ZXN0TW9yZVtqXSwgZXhwZWN0ZWQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBkZWZpbmVkIGJ5IHRoZSAiZW4iIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCl7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSAgIC8vTEVTUworICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAwKSAgIC8vRVFVQUwKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocmVzdWx0ID09IDEpICAgLy9HUkVBVEVSCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworCisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GaW5uaXNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkZpbm5pc2hUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5ZWUzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GaW5uaXNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uRmlubmlzaFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2ZpY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIENvbGxhdGlvbkZpbm5pc2hUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uRmlubmlzaFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NzcsIDB4NjEsIDB4NzR9LAorICAgICAgICB7MHg3NiwgMHg2MSwgMHg3NH0sCisgICAgICAgIHsweDYxLCAweDAwRkMsIDB4NjIsIDB4NjUsIDB4NjMsIDB4NmJ9LAorICAgICAgICB7MHg0YywgMHgwMEU1LCAweDc2LCAweDY5fSwKKyAgICAgICAgezB4NzcsIDB4NjEsIDB4NzR9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NzYsIDB4NjEsIDB4NzR9LAorICAgICAgICB7MHg3NywgMHg2MSwgMHg3OX0sCisgICAgICAgIHsweDYxLCAweDc4LCAweDYyLCAweDY1LCAweDYzLCAweDZifSwKKyAgICAgICAgezB4NGMsIDB4MDBFNCwgMHg3NywgMHg2NX0sCisgICAgICAgIHsweDc2LCAweDYxLCAweDc0fQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC8vIHRlc3QgcHJpbWFyeSA+IDQKKyAgICAgICAgMCwgLy9jb2xsYXRpb24gcnVsZXMgZm9yIGZpbm5pc2ggaGF2ZSBjaGFuZ2VkIQorICAgIH07CisKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRmlubmlzaFRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZmkiLCAiRkkiKSk7CisgICAgfQorICAgICAKKyAgICAKKyAgICAvLyBwZXJmb3JtIHRlc3RzIHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBmb3IoaSA9IDQ7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7ICAgIAorICAgICAgICB9ICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUlRJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgNDsgaSsrICkgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfSAgICAKKyAgICB9CisgICAgCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvIHRoZSBmaW5pc2ggbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KKyAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRnJlbmNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkZyZW5jaFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWYzYWNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkZyZW5jaFRlc3QuamF2YQpAQCAtMCwwICsxLDI3OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkZyZW5jaFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2ZyY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25GcmVuY2hUZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25GcmVuY2hUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweDAwNjEvKidhJyovLCAweDAwNjIvKidiJyovLCAweDAwNjMvKidjJyovfSwKKyAgICAgICAgezB4MDA0My8qJ0MnKi8sIDB4MDA0Zi8qJ08nKi8sIDB4MDA1NC8qJ1QnKi8sIDB4MDA0NS8qJ0UnKi99LAorICAgICAgICB7MHgwMDYzLyonYycqLywgMHgwMDZmLyonbycqLywgMHgwMDJkLyonLScqLywgMHgwMDZmLyonbycqLywgMHgwMDcwLyoncCcqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRUEsIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEVBLCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovLCAweDAwNzIvKidyJyovfSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFOSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqLywgMHgwMDcyLyoncicqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRTksIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA3Mi8qJ3InKi99LAorICAgICAgICB7MHgwMDQ4LyonSCcqLywgMHgwMDY1LyonZScqLywgMHgwMDZjLyonbCcqLywgMHgwMDZjLyonbCcqLywgMHgwMDZmLyonbycqL30sCisgICAgICAgIHsweDAxZjF9LAorICAgICAgICB7MHhmYjAwfSwKKyAgICAgICAgezB4MDFmYX0sCisgICAgICAgIHsweDAxMDF9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4MDA0MS8qJ0EnKi8sIDB4MDA0Mi8qJ0InKi8sIDB4MDA0My8qJ0MnKi99LAorICAgICAgICB7MHgwMDYzLyonYycqLywgMHgwMGY0LCAweDAwNzQvKid0JyovLCAweDAwNjUvKidlJyovfSwKKyAgICAgICAgezB4MDA0My8qJ0MnKi8sIDB4MDA0Zi8qJ08nKi8sIDB4MDA0Zi8qJ08nKi8sIDB4MDA1MC8qJ1AnKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEU5LCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwRTl9LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgIDB4MDBFOSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMEU5fSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFQSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRUEsIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA3Mi8qJ3InKi99LAorICAgICAgICB7MHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqLywgMHgwMDZjLyonbCcqLywgMHgwMDZjLyonbCcqLywgMHgwMDRmLyonTycqL30sCisgICAgICAgIHsweDAxZWV9LAorICAgICAgICB7MHgyNWNhfSwKKyAgICAgICAgezB4MDBlMH0sCisgICAgICAgIHsweDAxZGZ9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsIC8qQ29sbGF0b3I6OkdSRUFURVIsKi8KKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgIC0xLCAvKkNvbGxhdG9yOjpHUkVBVEVSLCovCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAtMQorICAgIH07CisKKyAgICAvLyAweDAzMDAgaXMgZ3JhdmUsIDB4MDMwMSBpcyBhY3V0ZQorICAgIC8vIHRoZSBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGlzIGFycmF5IG11c3QgYmUgZGlmZmVyZW50IHRoYW4gdGhlIG9yZGVyIGluIENvbGxhdGlvbkVuZ2xpc2hUZXN0CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdEFjdXRlID0geworICAgIC8qMDAqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMDY1LyonZScqL30sCisgICAgLyowMSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi99LAorICAgIC8qMDIqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi99LAorICAgIC8qMDMqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAwNjUvKidlJyovfSwKKyAgICAvKjA0Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwLCAweDAwNjUvKidlJyovfSwKKyAgICAvKjA1Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sIAorICAgIC8qMDYqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDF9LAorICAgIC8qMDcqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sCisgICAgLyowOCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sCisgICAgLyowOSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAxfSwKKyAgICAvKjBhKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBiKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDF9LAorICAgIC8qMGMqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBkKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDF9LAorICAgIC8qMGUqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBmKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMH0sCisgICAgLyoxMCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMH0sCisgICAgLyoxMSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAwfSwKKyAgICAvKjEyKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAwfSwKKyAgICAvKjEzKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDB9LAorICAgIC8qMTQqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9LAorICAgIC8qMTUqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMH0sCisgICAgLyoxNiovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9LAorICAgIC8qMTcqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMH0sCisgICAgLyoxOCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RCdWdzID0geworICAgICAgICB7MHgwMDYxLyonYScqL30sCisgICAgICAgIHsweDAwNDEvKidBJyovfSwKKyAgICAgICAgezB4MDA2NS8qJ2UnKi99LAorICAgICAgICB7MHgwMDQ1LyonRScqL30sCisgICAgICAgIHsweDAwZTl9LAorICAgICAgICB7MHgwMGU4fSwKKyAgICAgICAgezB4MDBlYX0sCisgICAgICAgIHsweDAwZWJ9LAorICAgICAgICB7MHgwMDY1LyonZScqLywgMHgwMDYxLyonYScqL30sCisgICAgICAgIHsweDAwNzgvKid4JyovfQorICAgIH07CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkZyZW5jaFRlc3QoKSB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAgICB9CisgICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdHMgd2l0aCBzdHJlbmd0aCBURVJUSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTIgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0cyB3aXRoIHN0cmVuZ3RoIFNFQ09OREFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnkoKSB7CisgICAgICAgIC8vdGVzdCBhY3V0ZSBhbmQgZ3JhdmUgb3JkZXJpbmcKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBpbnQgajsKKyAgICAgICAgaW50IGV4cGVjdGVkOworCisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdEFjdXRlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgdGVzdEFjdXRlLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCAgaikgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSBqKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRvVGVzdCh0ZXN0QWN1dGVbaV0sIHRlc3RBY3V0ZVtqXSwgZXhwZWN0ZWQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBlcmZvcm0gZXh0cmEgdGVzdHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXh0cmEoKSB7CisgICAgICAgIGludCBpLCBqOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA5IDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IDEwOyBqICs9IDEpIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEJ1Z3NbaV0sIHRlc3RCdWdzW2pdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRpbnVhdGlvblJlb3JkZXJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJjB4MmYwMCA8PCAweDJmMDEiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb24odHJ1ZSk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkga2V5MSAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJhXHUwMzI1XHUyZjAwXHUyZjAxYlx1MDMyNSIpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGtleTIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJhXHUwMzI1XHUyZjAxXHUyZjAxYlx1MDMyNSIpOworICAgICAgICAgICAgaWYgKGtleTEuY29tcGFyZVRvKGtleTIpID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY29tcGFyaW5nIGNvbnRpbnVhdGlvbiBzdHJpbmdzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdCBydWxlcyBzcGVjaWZpYyB0byB0aGUgZnJlbmNoIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30gClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkdlcm1hblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25HZXJtYW5UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYxNjcxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25HZXJtYW5UZXN0LmphdmEKQEAgLTAsMCArMSwyMjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25HZXJtYW5UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kZWNvbGwuY3BwCisgKiovCisgCisgcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKKyBpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKKyBpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworIGltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorIHB1YmxpYyBjbGFzcyBDb2xsYXRpb25HZXJtYW5UZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IENvbGxhdGlvbkdlcm1hblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NDcsIDB4NzIsIDB4MDBGNiwgMHgwMERGLCAweDY1fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1NCwgMHgwMEY2LCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NTQsIDB4MDBGNiwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDU0LCAweDAwRjYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHgwMzA4LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4MDBFNCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDAwRTQsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1MywgMHg3NCwgMHg3MiwgMHg2MSwgMHgwMERGLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4NjYsIDB4Njd9LAorICAgICAgICB7MHgwMEU0LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTMsIDB4NzQsIDB4NzIsIDB4NjEsIDB4MDBERiwgMHg2NX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHg0NywgMHg3MiwgMHg2ZiwgMHg3MywgMHg3MywgMHg2OSwgMHg3MywgMHg3NH0sCisgICAgICAgIHsweDYxLCAweDAzMDgsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1NCwgMHg2ZiwgMHg2ZX0sCisgICAgICAgIHsweDU0LCAweDZmLCAweDY0fSwKKyAgICAgICAgezB4NTQsIDB4NmYsIDB4NjYsIDB4NzV9LAorICAgICAgICB7MHg0MSwgMHgwMzA4LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4MDMwOCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDY1LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTMsIDB4NzQsIDB4NzIsIDB4NjEsIDB4NzMsIDB4NzMsIDB4NjV9LAorICAgICAgICB7MHg2NSwgMHg2NiwgMHg2N30sCisgICAgICAgIHsweDYxLCAweDY1LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTMsIDB4NzQsIDB4NzIsIDB4NjEsIDB4NzMsIDB4NzMsIDB4NjV9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludCByZXN1bHRzW11bXSA9CisgICAgeworICAgICAgICAvLyAgUHJpbWFyeSAgVGVydGlhcnkKKyAgICAgICAgeyAtMSwgICAgICAgIC0xIH0sCisgICAgICAgIHsgMCwgICAgICAgICAtMSB9LAorICAgICAgICB7IDEsICAgICAgICAgIDEgfSwKKyAgICAgICAgeyAxLCAgICAgICAgICAxIH0sCisgICAgICAgIHsgMSwgICAgICAgICAgMSB9LAorICAgICAgICB7IDAsICAgICAgICAgLTEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgICAwIH0sCisgICAgICAgIHsgLTEsICAgICAgICAtMSB9LAorICAgICAgICB7IDAsICAgICAgICAgIDEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgICAwIH0sCisgICAgICAgIHsgLTEsICAgICAgICAtMSB9LAorICAgICAgICB7IDAsICAgICAgICAgIDEgfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkdlcm1hblRlc3QoKSB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkdFUk1BTik7CisgICAgICAgIGlmKG15Q29sbGF0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgR0VSTUFOIGxvY2FsZSIpOworICAgICAgICB9CisgICAgfQorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUlRJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCl7CisgICAgICAgIGlmKG15Q29sbGF0aW9uID09IG51bGwgKSB7CisgICAgICAgICAgICBlcnJsbigiZGVjb2xsOiBjYW5ub3Qgc3RhcnQgdGVzdCwgY29sbGF0b3IgaXMgbnVsbFxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMiA7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldWzFdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBTRUNPTkRBUlkKKyAgICAvL1RoaXMgbWV0aG9kIGluIGljdTRjIGhhcyBubyBpbXBsZW1lbnRhdGlvbi4KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5KCl7CisgICAgfQorICAgIAorICAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBQUklNQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFByaW1hcnkoKXsKKyAgICAgICAgaWYobXlDb2xsYXRpb24gPT0gbnVsbCApIHsKKyAgICAgICAgICAgIGVycmxuKCJkZWNvbGw6IGNhbm5vdCBzdGFydCB0ZXN0LCBjb2xsYXRvciBpcyBudWxsXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTIgOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXVswXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgLy9tYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gZ2VybWEgbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KXsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKXsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgICAvL0xFU1MKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gMCkgICAvL0VRVUFMCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAxKSAgIC8vR1JFQVRFUgorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25JdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25JdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWQ1Y2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsNjQ0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uSXRlcmF0b3JUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9pdGVyY29sbC5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvbkl0ZXJhdG9yVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBTdHJpbmcgdGVzdDEgPSAiV2hhdCBzdWJzZXQgb2YgYWxsIHBvc3NpYmxlIHRlc3QgY2FzZXM/IjsKKyAgICBTdHJpbmcgdGVzdDIgPSAiaGFzIHRoZSBoaWdoZXN0IHByb2JhYmlsaXR5IG9mIGRldGVjdGluZyI7CisgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkl0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgLy8gbmV3IENvbGxhdGlvbkl0ZXJhdG9yVGVzdCgpLlRlc3ROb3JtYWxpemVkVW5pY29kZUNoYXIoKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBAYnVnIDQxNTcyOTkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xlYXJCdWZmZXJzKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiZhIDwgYiA8IGMgJiBhYiA9IGQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGRuJ3QgY3JlYXRlIGEgUnVsZUJhc2VkQ29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICJhYmNkIjsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkgPSBjLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBpbnQgZTAgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZTAgPSBpLm5leHQoKTsgICAgLy8gc2F2ZSB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkubmV4dCgpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLnNldE9mZnNldCgzKTsgICAgICAgIC8vIGdvIHRvIHRoZSBleHBhbmRpbmcgY2hhcmFjdGVyCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpLnNldE9mZnNldCgzKSBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLm5leHQoKTsgICAgICAgICAgICAgICAgLy8gYnV0IG9ubHkgdXNlIHVwIGhhbGYgb2YgaXQKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkubmV4dCgpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLnNldE9mZnNldCgwKTsgICAgICAgIC8vIGdvIGJhY2sgdG8gdGhlIGJlZ2lubmluZworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaS5zZXRPZmZzZXQoMCkgZmFpbGVkLiAiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGUgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZSA9IGkubmV4dCgpOyAgICAvLyBhbmQgZ2V0IHRoaXMgb25lIGFnYWluCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaS5uZXh0KCkgZmFpbGVkLiAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGUgIT0gZTApIHsKKyAgICAgICAgICAgIGVycmxuKCJnb3QgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhlKSArICIsIGV4cGVjdGVkIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoZTApKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogQGJ1ZyA0MTA4NzYyCisgICAgICogVGVzdCBmb3IgZ2V0TWF4RXhwYW5zaW9uKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWF4RXhwYW5zaW9uKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBpbnQgdW5hc3NpZ25lZCA9IDB4RUZGRkQ7CisgICAgICAgIFN0cmluZyBydWxlID0gIiZhIDwgYWIgPCBjL2FiYSA8IGQgPCB6IDwgY2giOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IDA7CisgICAgICAgIFN0cmluZyBzdHIgPSBTdHJpbmcudmFsdWVPZihjaCk7CisgICAgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3RyKTsKKyAgICAKKyAgICAgICAgd2hpbGUgKGNoIDwgMHhGRkZGKSB7CisgICAgICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICAgICAgY2ggKys7CisgICAgICAgICAgICBzdHIgPSBTdHJpbmcudmFsdWVPZihjaCk7CisgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgIGludCBvcmRlciA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAKKyAgICAgICAgICAgIC8vIHRoYWkgbWFuYWdlbWVudCAKKyAgICAgICAgICAgIGlmIChvcmRlciA9PSAwKSB7CisgICAgICAgICAgICAgICAgb3JkZXIgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB3aGlsZSAoaXRlci5wcmV2aW91cygpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCArKzsgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoaXRlci5nZXRNYXhFeHBhbnNpb24ob3JkZXIpIDwgY291bnQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBhdCBjb2RlcG9pbnQgIiArIGNoICsgIiwgbWF4aW11bSBleHBhbnNpb24gY291bnQgPCAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0aW5nIGZvciBleGFjdCBtYXggZXhwYW5zaW9uIAorICAgICAgICBjaCA9IDA7CisgICAgICAgIHdoaWxlIChjaCA8IDB4NjEpIHsKKyAgICAgICAgICAgIHN0ciA9IFN0cmluZy52YWx1ZU9mKGNoKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICAgICAgaW50IG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaXRlci5nZXRNYXhFeHBhbnNpb24ob3JkZXIpICE9IDEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBhdCBjb2RlcG9pbnQgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjaCkKKyAgICAgICAgICAgICAgICAgICAgICArICIgbWF4aW11bSBleHBhbnNpb24gY291bnQgPT0gMSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggKys7CisgICAgICAgIH0KKworICAgICAgICBjaCA9IDB4NjM7CisgICAgICAgIHN0ciA9IFN0cmluZy52YWx1ZU9mKGNoKTsKKyAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgIGludCB0ZW1wb3JkZXIgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGl0ZXIuZ2V0TWF4RXhwYW5zaW9uKHRlbXBvcmRlcikgIT0gMykgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIG1heGltdW0gZXhwYW5zaW9uIGNvdW50ID09IDMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoID0gMHg2NDsKKyAgICAgICAgc3RyID0gU3RyaW5nLnZhbHVlT2YoY2gpOworICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA9PSAxIik7CisgICAgICAgIH0KKworICAgICAgICBzdHIgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHVuYXNzaWduZWQpOworICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpICE9IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA9PSAyIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vIHRlc3RpbmcgamFtbworICAgICAgICBjaCA9IDB4MTE2NTsKKyAgICAgICAgc3RyID0gU3RyaW5nLnZhbHVlT2YoY2gpOworICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpID4gMykgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgbWF4aW11bSBleHBhbnNpb24gY291bnQgPCAzIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0aW5nIHNwZWNpYWwgamFtbyAmYTxcdTExNjUKKyAgICAgICAgcnVsZSA9ICJcdTAwMjZcdTAwNzFcdTAwM2NcdTExNjVcdTAwMmZcdTAwNzFcdTAwNzFcdTAwNzFcdTAwNzEiOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgIAorICAgICAgICB0ZW1wb3JkZXIgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGl0ZXIuZ2V0TWF4RXhwYW5zaW9uKHRlbXBvcmRlcikgIT0gNikgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA9PSA2Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgZ2V0T2Zmc2V0KCkgYW5kIHNldE9mZnNldCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE9mZnNldCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXM7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOyAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIGNvbGxhdG9yIG9mIEVOR0xJU0ggbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIC8vIHRlc3RpbmcgYm91bmRhcmllcworICAgICAgICBpdGVyLnNldE9mZnNldCgwKTsKKyAgICAgICAgaWYgKGl0ZXIucHJldmlvdXMoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEFmdGVyIHNldHRpbmcgb2Zmc2V0IHRvIDAsIHdlIHNob3VsZCBiZSBhdCB0aGUgZW5kICIKKyAgICAgICAgICAgICAgICAgICsgIm9mIHRoZSBiYWNrd2FyZHMgaXRlcmF0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgaXRlci5zZXRPZmZzZXQodGVzdDEubGVuZ3RoKCkpOworICAgICAgICBpZiAoaXRlci5uZXh0KCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBBZnRlciBzZXR0aW5nIG9mZnNldCB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHdlICIgCisgICAgICAgICAgICAgICAgICArICJzaG91bGQgYmUgYXQgdGhlIGVuZCBvZiB0aGUgZm9yd2FyZHMgaXRlcmF0aW9uIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gUnVuIGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIGl0ZXJhdG9yLCB0aGVuIGdldCB0aGUgb2Zmc2V0CisgICAgICAgIGludFtdIG9yZGVycyA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBsb2dsbigib3JkZXJzLmxlbmd0aCA9ICIgKyBvcmRlcnMubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGludCBvZmZzZXQgPSBpdGVyLmdldE9mZnNldCgpOworICAgIAorICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3QxLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9ICJvZmZzZXQgYXQgZW5kICE9IGxlbmd0aDogIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIiB2cyAiOworICAgICAgICAgICAgZXJybG4obXNnMSArIG9mZnNldCArIG1zZzIgKyB0ZXN0MS5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gTm93IHNldCB0aGUgb2Zmc2V0IGJhY2sgdG8gdGhlIGJlZ2lubmluZyBhbmQgc2VlIGlmIGl0IHdvcmtzCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmlzdGluZSA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoMCk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJzZXRPZmZzZXQgZmFpbGVkLiIpOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFsKGl0ZXIsIHByaXN0aW5lKTsKKyAgICAKKyAgICAgICAgLy8gc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uCisgICAgICAgIFN0cmluZyBjb250cmFjdGlvbiA9ICJjaGFuZ2UiOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciB0YWlsb3JlZCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0YWlsb3JlZCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJiBhIDwgY2giKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogaW4gY3JlYXRpb24gb2YgU3BhbmlzaCBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgICAgIGl0ZXIgPSB0YWlsb3JlZC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoY29udHJhY3Rpb24pOworICAgICAgICBpbnQgb3JkZXJbXSA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCgxKTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBjaAorICAgICAgICBpbnQgb3JkZXIyW10gPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaWYgKCFBcnJheXMuZXF1YWxzKG9yZGVyLCBvcmRlcjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiBzaG91bGQgYmUgdGhlIHNhbWUgYXMgc2V0dGluZyBpdCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbnRyYWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY29udHJhY3Rpb24gPSAicGVhY2hlIjsKKyAgICAgICAgaXRlciA9IHRhaWxvcmVkLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihjb250cmFjdGlvbik7CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDMpOworICAgICAgICBvcmRlciA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCg0KTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBjaAorICAgICAgICBvcmRlcjIgPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaWYgKCFBcnJheXMuZXF1YWxzKG9yZGVyLCBvcmRlcjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiBzaG91bGQgYmUgdGhlIHNhbWUgYXMgc2V0dGluZyBpdCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbnRyYWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICAgIFN0cmluZyBzdXJyb2dhdGUgPSAiXHVkODAwXHVkYzAwc3RyIjsKKyAgICAgICAgaXRlciA9IHRhaWxvcmVkLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdXJyb2dhdGUpOworICAgICAgICBvcmRlciA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCgxKTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBzdXJyb2dhdGUKKyAgICAgICAgb3JkZXIyID0gQ29sbGF0aW9uVGVzdC5nZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGlmICghQXJyYXlzLmVxdWFscyhvcmRlciwgb3JkZXIyKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNldHRpbmcgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXJyb2dhdGUgcGFpciIpOworICAgICAgICB9CisgICAgICAgIHN1cnJvZ2F0ZSA9ICJzaW1wbGVcdWQ4MDBcdWRjMDBzdHIiOworICAgICAgICBpdGVyID0gdGFpbG9yZWQuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN1cnJvZ2F0ZSk7CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDYpOworICAgICAgICBvcmRlciA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCg3KTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBzdXJyb2dhdGUKKyAgICAgICAgb3JkZXIyID0gQ29sbGF0aW9uVGVzdC5nZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGlmICghQXJyYXlzLmVxdWFscyhvcmRlciwgb3JkZXIyKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNldHRpbmcgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXJyb2dhdGUgcGFpciIpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE86IHRyeSBpdGVyYXRpbmcgaGFsZndheSB0aHJvdWdoIGEgbWVzc3kgc3RyaW5nLgorICAgIH0KKyAgICAKKyAgICAKKworICAgIHZvaWQgYXNzZXJ0RXF1YWwoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTIpIHsKKyAgICAgICAgaW50IGMxLCBjMiwgY291bnQgPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICBjMSA9IGkxLm5leHQoKTsKKyAgICAgICAgICAgIGMyID0gaTIubmV4dCgpOworICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgICAiICsgY291bnQgKyAiOiBzdHJlbmd0aCgweCIgKyAKKyAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjMSkgKyAiKSAhPSBzdHJlbmd0aCgweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMyKSArICIpIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICB9IHdoaWxlIChjMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaTEpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpMik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmV2aW91cygpCisgICAgICoKKyAgICAgKiBAYnVnIDQxMDg3NTggLSBNYWtlIHN1cmUgaXQgd29ya3Mgd2l0aCBjb250cmFjdGluZyBjaGFyYWN0ZXJzCisgICAgICogCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgCisgICAgICAgIC8vIEEgYmFzaWMgdGVzdCB0byBzZWUgaWYgaXQncyB3b3JraW5nIGF0IGFsbAorICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCB3aXRoIGEgY29udHJhY3RpbmcgY2hhcmFjdGVyIHNlcXVlbmNlCisgICAgICAgIFN0cmluZyBzb3VyY2U7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMxID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMxID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYSxBIDwgYixCIDwgYyxDLCBkLEQgPCB6LFogPCBjaCxjSCxDaCxDSCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBhIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggYSBjb250cmFjdGluZyBzZXF1ZW5jZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzb3VyY2UgPSAiYWJjaGRjYmEiOworICAgICAgICBpdGVyID0gYzEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXIpOworICAgIAorICAgICAgICAvLyBUZXN0IHdpdGggYW4gZXhwYW5kaW5nIGNoYXJhY3RlciBzZXF1ZW5jZQorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMiA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJmEgPCBiIDwgYy9hYmQgPCBkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlICkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBhIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggYW4gZXhwYW5kaW5nIHNlcXVlbmNlLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHNvdXJjZSA9ICJhYmNkIjsKKyAgICAgICAgaXRlciA9IGMyLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gTm93IHRyeSBib3RoCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMzID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYSA8IGIgPCBjL2FiYSA8IGQgPCB6IDwgY2giKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBjcmVhdGUgYSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIGJvdGggYW4gZXhwYW5kaW5nIGFuZCBhIGNvbnRyYWN0aW5nIHNlcXVlbmNlLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzb3VyY2UgPSAiYWJjZGJjaGRjIjsKKyAgICAgICAgaXRlciA9IGMzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAKKyAgICAgICAgc291cmNlPSAiXHUwZTQxXHUwZTAyXHUwZTQxXHUwZTAyXHUwZTI3YWJjIjsKKyAgICAgICAgQ29sbGF0b3IgYzQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzQgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgY3JlYXRlIGEgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpYzQpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAKKyAgICAgICAgc291cmNlPSAiXHUwMDYxXHUzMENGXHUzMDk5XHUzMEZDIjsKKyAgICAgICAgQ29sbGF0b3IgYzUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzUgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJqYSIsICJKUCIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgY3JlYXRlIEphcGFuZXNlIGNvbGxhdG9yXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpdGVyID0gKChSdWxlQmFzZWRDb2xsYXRvciljNSkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICB9CisgICAgCisgICAgCisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmb3Igc2V0VGV4dCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNldFRleHQoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMSA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMiA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0Mik7CisgICAgCisgICAgICAgIC8vIFJ1biB0aHJvdWdoIHRoZSBzZWNvbmQgaXRlcmF0b3IganVzdCB0byBleGVyY2lzZSBpdAorICAgICAgICBpbnQgYyA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgaW50IGkgPSAwOworICAgIAorICAgICAgICB3aGlsZSAoICsraSA8IDEwICYmIGMgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjID0gaXRlcjIubmV4dCgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiaXRlcjIubmV4dCgpIHJldHVybmVkIGFuIGVycm9yLiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE5vdyBzZXQgaXQgdG8gcG9pbnQgdG8gdGhlIHNhbWUgc3RyaW5nIGFzIHRoZSBmaXJzdCBpdGVyYXRvcgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaXRlcjIuc2V0VGV4dCh0ZXN0MSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpdGVyMi0+c2V0VGV4dCh0ZXN0MSkgZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFsKGl0ZXIxLCBpdGVyMik7CisgICAgICAgIAorICAgICAgICBpdGVyMS5yZXNldCgpOworICAgICAgICAvL25vdyB1c2UgdGhlIG92ZXJsb2FkZWQgc2V0VGV4dChDaHJhY3Rlckl0ZXJhdG9yJiwgVUVycm9yQ29kZSkgZnVuY3Rpb24gdG8gc2V0IHRoZSB0ZXh0CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNoYXJpdGVyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3QxKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIyLnNldFRleHQoY2hhcml0ZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSApIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGl0ZXIyLT5zZXRUZXh0KGNoYXJpdGVyKHRlc3QxKSkgZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFsKGl0ZXIxLCBpdGVyMik7CisgICAgICAgIAorICAgICAgICBpdGVyMS5yZXNldCgpOworICAgICAgICAvL25vdyB1c2UgdGhlIG92ZXJsb2FkZWQgc2V0VGV4dChDaHJhY3Rlckl0ZXJhdG9yJiwgVUVycm9yQ29kZSkgZnVuY3Rpb24gdG8gc2V0IHRoZSB0ZXh0CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciB1Y2hhcml0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGVzdDEpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaXRlcjIuc2V0VGV4dCh1Y2hhcml0ZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSApIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGl0ZXIyLT5zZXRUZXh0KHVjaGFyaXRlcih0ZXN0MSkpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbChpdGVyMSwgaXRlcjIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmV2aW91cyBhbmQgbmV4dCBmb3IgdGhlIHdob2xlIHNldCBvZgorICAgICAqIHVuaWNvZGUgY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZUNoYXIoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyOworICAgICAgICBjaGFyIGNvZGVwb2ludDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNvdXJjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc291cmNlLmFwcGVuZCgiXHUwZTRkXHUwZTRlXHUwZTRmIik7CisgICAgICAgIC8vIHNvdXJjZS5hcHBlbmQoIlx1MDRlOFx1MDRlOSIpOworICAgICAgICBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgLy8gQSBiYXNpYyB0ZXN0IHRvIHNlZSBpZiBpdCdzIHdvcmtpbmcgYXQgYWxsIAorICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgZm9yIChjb2RlcG9pbnQgPSAxOyBjb2RlcG9pbnQgPCAweEZGRkU7KSB7CisgICAgICAgICAgICBzb3VyY2UuZGVsZXRlKDAsIHNvdXJjZS5sZW5ndGgoKSk7CisgICAgICAgICAgICB3aGlsZSAoY29kZXBvaW50ICUgMHhGRiAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY29kZXBvaW50ICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGNvZGVwb2ludCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qaWYgKGNvZGVwb2ludCA+PSAweDA0ZmMpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvZGVwb2ludCAiICsgSW50ZWdlci50b0hleFN0cmluZyhjb2RlcG9pbnQpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gc291cmNlLnN1YnN0cmluZygyMzAsIDIzMik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUoc3RyKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjb2RlcG9pbnQgIiArIEludGVnZXIudG9IZXhTdHJpbmcoY29kZXBvaW50KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAibGVuZ3RoICIgKyBzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGl0ZXIgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgICAgICBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIC8vIEEgYmFzaWMgdGVzdCB0byBzZWUgaWYgaXQncyB3b3JraW5nIGF0IGFsbCAKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmV2aW91cyBhbmQgbmV4dCBmb3IgdGhlIHdob2xlIHNldCBvZgorICAgICAqIHVuaWNvZGUgY2hhcmFjdGVycyB3aXRoIG5vcm1hbGl6YXRpb24gb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1hbGl6ZWRVbmljb2RlQ2hhcigpCisgICAgeworICAgICAgICAvLyB0aGFpIHNob3VsZCBoYXZlIG5vcm1hbGl6YXRpb24gb24KKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGhfdGggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGhfdGggPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvY2FsZSgidGgiLCAiVEgiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBzb3VyY2UuYXBwZW5kKCdcdUZERkEnKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICA9IHRoX3RoLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UudG9TdHJpbmcoKSk7CisgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXIpOworICAgICAgICBmb3IgKGNoYXIgY29kZXBvaW50ID0gMHgxOyBjb2RlcG9pbnQgPCAweGZmZmU7KSB7CisgICAgICAgICAgICBzb3VyY2UuZGVsZXRlKDAsIHNvdXJjZS5sZW5ndGgoKSk7CisgICAgICAgICAgICB3aGlsZSAoY29kZXBvaW50ICUgMHhGRiAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY29kZXBvaW50ICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGNvZGVwb2ludCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyppZiAoKChpbnQpY29kZXBvaW50KSA+PSAweGZlMDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gc291cmNlLnN1YnN0cmluZygxODUsIDE5MCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUoc3RyKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjb2RlcG9pbnQgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNvZGVwb2ludCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImxlbmd0aCAiICsgc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpdGVyID0gdGhfdGguZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgaXRlciA9IHRoX3RoLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAvLyBBIGJhc2ljIHRlc3QgdG8gc2VlIGlmIGl0J3Mgd29ya2luZyBhdCBhbGwgCisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RpbmcgdGhlIGRpc2NvbnRpZ3VvdXMgY29udHJhY3Rpb25zCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzY29udGlndW91cygpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzdHIgPSImeiA8IEFCIDwgWFx1MDMwMCA8IEFCQyA8IFhcdTAzMDBcdTAzMTUiOworICAgICAgICBTdHJpbmcgc3JjW10gPSB7IkFEQiIsICJBREJDIiwgIkFcdTAzMTVCIiwgIkFcdTAzMTVCQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIGNoYXJhY3RlciBibG9ja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAiWERcdTAzMDAiLCAiWERcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm9uIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzE5XHUwMzAwIiwgIlhcdTAzMTlcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmxvY2tpbmcgY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMTRcdTAzMDAiLCAiWFx1MDMxNFx1MDMwMFx1MDMxNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250cmFjdGlvbiBwcmVmaXgKKyAgICAgICAgICAgICAgICAgICAgICAgICJBQkRDIiwgIkFCXHUwMzE1QyIsIlhcdTAzMDBEXHUwMzE1IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMFx1MDMxOVx1MDMxNSIsICJYXHUwMzAwXHUwMzFBXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZHMgbm90IHdpdGggYSBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzE5XHUwMzAwRCIsICJYXHUwMzE5XHUwMzAwXHUwMzE1RCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBEXHUwMzE1RCIsICJYXHUwMzAwXHUwMzE5XHUwMzE1RCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBcdTAzMUFcdTAzMTVEIgorICAgICAgICB9OworICAgICAgICBTdHJpbmcgdGd0W10gPSB7Ly8gbm9uIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJBIEQgQiIsICJBIEQgQkMiLCAiQSBcdTAzMTUgQiIsICJBIFx1MDMxNSBCQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIGNoYXJhY3RlciBibG9ja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAiWCBEIFx1MDMwMCIsICJYIEQgXHUwMzAwXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vbiBibG9ja2luZyBjb21iaW5pbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBcdTAzMTkiLCAiWFx1MDMwMFx1MDMxNSBcdTAzMTkiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmxvY2tpbmcgY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgIlggXHUwMzE0IFx1MDMwMCIsICJYIFx1MDMxNCBcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICAiQUIgREMiLCAiQUIgXHUwMzE1IEMiLCJYXHUwMzAwIEQgXHUwMzE1IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMFx1MDMxNSBcdTAzMTkiLCAiWFx1MDMwMCBcdTAzMUEgXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZHMgbm90IHdpdGggYSBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwIFx1MDMxOUQiLCAiWFx1MDMwMFx1MDMxNSBcdTAzMTlEIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBEXHUwMzE1RCIsICJYXHUwMzAwXHUwMzE1IFx1MDMxOUQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwIFx1MDMxQVx1MDMxNUQiCisgICAgICAgIH07CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcmVzdWx0aXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsgICAgCisgICAgICAgICAgICB3aGlsZSAoY291bnQgPCBzcmMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KHNyY1tjb3VudF0pOworICAgICAgICAgICAgICAgIGludCBzID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAocyA8IHRndFtjb3VudF0ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGUgPSB0Z3RbY291bnRdLmluZGV4T2YoJyAnLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlID0gdGd0W2NvdW50XS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0c3RyID0gdGd0W2NvdW50XS5zdWJzdHJpbmcocywgZSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdGl0ZXIuc2V0VGV4dChyZXN1bHRzdHIpOworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSByZXN1bHRpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZSAhPSBpdGVyLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaXNjb250aWd1b3MgY29udHJhY3Rpb24gdGVzdCBtaXNtYXRjaCBhdCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSByZXN1bHRpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzID0gZSArIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgcnVubmluZyBkaXNjb250aWd1b3VzIHRlc3RzICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0IHRoZSBpbmNyZW1lbnRhbCBub3JtYWxpemF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXphdGlvbigpCisgICAgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiJmEgPCBcdTAzMDBcdTAzMTUgPCBBXHUwMzAwXHUwMzE1IDwgXHUwMzE2XHUwMzE1QiA8IFx1MDMxNlx1MDMwMFx1MDMxNSI7CisgICAgICAgIFN0cmluZyB0ZXN0ZGF0YVtdID0geyJcdTFFRDkiLCAib1x1MDMyM1x1MDMwMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMwMFx1MDMxNSIsICJcdTAzMTVcdTAzMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBXHUwMzAwXHUwMzE1QiIsICJBXHUwMzE1XHUwMzAwQiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAzMTZcdTAzMTVCIiwgIkFcdTAzMTVcdTAzMTZCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzE2XHUwMzAwXHUwMzE1IiwgIlx1MDMxNVx1MDMwMFx1MDMxNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAzMTZcdTAzMDBcdTAzMTVCIiwgIkFcdTAzMTVcdTAzMDBcdTAzMTZCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzE2XHUwMzE1XHUwMzAwIiwgIkFcdTAzMTZcdTAzMTVcdTAzMDBCIn07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3IgdXNpbmcgcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigidGVzdGluZyIpOworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgdGVzdGRhdGEubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgaXRlci5zZXRUZXh0KHRlc3RkYXRhW2NvdW50XSk7CisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25LYW5hVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkthbmFUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMwODQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25LYW5hVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uS2FuYVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2phY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25LYW5hVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25LYW5hVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweGZmOUV9LAorICAgICAgICB7MHgzMDQyfSwKKyAgICAgICAgezB4MzBBMn0sCisgICAgICAgIHsweDMwNDIsIDB4MzA0Mn0sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQ30sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQywgMHgzMEM4fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgNiAqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweEZGOUZ9LAorICAgICAgICB7MHgzMEEyfSwKKyAgICAgICAgezB4MzA0MiwgMHgzMDQyfSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEZDfSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEZDLCAweDMwQzh9LAorICAgICAgICB7MHgzMDQyLCAweDMwNDIsIDB4MzA2OH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgNiAqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMSwKKyAgICAgICAgMCwgICAvL0NvbGxhdG9yOjpMRVNTLCAvKiBLYXRha2FuYXMgYW5kIEhpcmFnYW5hcyBhcmUgZXF1YWwgb24gdGVydGlhcnkgbGV2ZWwoSUNVIDIuMCkqLworICAgICAgICAtMSwKKyAgICAgICAgMSwgLy8gQ29sbGF0b3I6OkxFU1MsIC8qIFByb2xvbmdlZCBzb3VuZCBtYXJrIHNvcnRzIEJFRk9SRSBlcXVpdmFsZW50IHZvd2VsIChJQ1UgMi4wKSovCisgICAgICAgIC0xLAorICAgICAgICAtMSwgICAgLy9Db2xsYXRvcjo6R1JFQVRFUiAvKiBQcm9sb25nZWQgc291bmQgbWFyayBzb3J0cyBCRUZPUkUgZXF1aXZhbGVudCB2b3dlbCAoSUNVIDIuMCkqLy8qICA2ICovCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RCYXNlQ2FzZXMgPSB7CisgICAgICAgIHsweDMwQUJ9LAorICAgICAgICB7MHgzMEFCLCAweDMwQUR9LAorICAgICAgICB7MHgzMEFEfSwKKyAgICAgICAgezB4MzBBRCwgMHgzMEFEfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0UGxhaW5EYWt1dGVuSGFuZGFrdXRlbkNhc2VzID0geworICAgICAgICB7MHgzMENGLCAweDMwQUJ9LAorICAgICAgICB7MHgzMEQwLCAweDMwQUJ9LAorICAgICAgICB7MHgzMENGLCAweDMwQUR9LAorICAgICAgICB7MHgzMEQwLCAweDMwQUR9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTbWFsbExhcmdlQ2FzZXMgPSB7CisgICAgICAgIHsweDMwQzMsIDB4MzBDRn0sCisgICAgICAgIHsweDMwQzQsIDB4MzBDRn0sCisgICAgICAgIHsweDMwQzMsIDB4MzBEMH0sCisgICAgICAgIHsweDMwQzQsIDB4MzBEMH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdEthdGFrYW5hSGlyYWdhbmFDYXNlcyA9IHsKKyAgICAgICAgezB4MzA0MiwgMHgzMEMzfSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEMzfSwKKyAgICAgICAgezB4MzA0MiwgMHgzMEM0fSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEM0fQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0Q2hvb29uS2lnb29DYXNlcyA9IHsKKyAgICAgICAgLyowKi8gezB4MzBBQiwgMHgzMEZDLCAweDMwNDJ9LAorICAgICAgICAvKjEqLyB7MHgzMEFCLCAweDMwRkMsIDB4MzBBMn0sCisgICAgICAgIC8qMiovIHsweDMwQUIsIDB4MzBBNCwgMHgzMDQyfSwKKyAgICAgICAgLyozKi8gezB4MzBBQiwgMHgzMEE0LCAweDMwQTJ9LAorICAgICAgICAvKjYqLyB7MHgzMEFELCAweDMwRkMsIDB4MzA0Mn0sIC8qIFByb2xvbmdlZCBzb3VuZCBtYXJrIHNvcnRzIEJFRk9SRSBlcXVpdmFsZW50IHZvd2VsIChJQ1UgMi4wKSovCisgICAgICAgIC8qNyovIHsweDMwQUQsIDB4MzBGQywgMHgzMEEyfSwgLyogUHJvbG9uZ2VkIHNvdW5kIG1hcmsgc29ydHMgQkVGT1JFIGVxdWl2YWxlbnQgdm93ZWwgKElDVSAyLjApKi8KKyAgICAgICAgLyo0Ki8gezB4MzBBRCwgMHgzMEE0LCAweDMwNDJ9LAorICAgICAgICAvKjUqLyB7MHgzMEFELCAweDMwQTQsIDB4MzBBMn0KKyAgICB9OworICAgICAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uS2FuYVRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257IAorICAgICAgICBpZihteUNvbGxhdGlvbj09bnVsbCl7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5KQVBBTkVTRSk7IAorICAgICAgICB9CisgICAgfQorICAgIC8vIHBlcmZvcm1zIHRlc3Qgd2l0aCBzdHJlbmd0aCBURVJJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBUZXN0aW5nIGJhc2UgbGV0dGVycyAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNlKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdEJhc2VDYXNlc1tpXSwgdGVzdEJhc2VDYXNlc1tpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIFRlc3RpbmcgcGxhaW4sIERha3UtdGVuLCBIYW5kYWt1LXRlbiBsZXR0ZXJzICovCisgICAgcHVibGljIHZvaWQgVGVzdFBsYWluRGFrdXRlbkhhbmRha3V0ZW4oKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RQbGFpbkRha3V0ZW5IYW5kYWt1dGVuQ2FzZXNbaV0sIHRlc3RQbGFpbkRha3V0ZW5IYW5kYWt1dGVuQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiAKKyAgICAqIFRlc3QgU21hbGwsIExhcmdlIGxldHRlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTbWFsbExhcmdlKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNtYWxsTGFyZ2VDYXNlc1tpXSwgdGVzdFNtYWxsTGFyZ2VDYXNlc1tpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgKiBUZXN0IEthdGFrYW5hLCBIaXJhZ2FuYSBsZXR0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2F0YWthbmFIaXJhZ2FuYSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RLYXRha2FuYUhpcmFnYW5hQ2FzZXNbaV0sIHRlc3RLYXRha2FuYUhpcmFnYW5hQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICogVGVzdCBDaG9vLW9uIGtpZ29vCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hvb29uS2lnb28oKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5RVUFURVJOQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDcgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0Q2hvb29uS2lnb29DYXNlc1tpXSwgdGVzdENob29vbktpZ29vQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gIkthbmEiIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCl7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTWlzY1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25NaXNjVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMGRhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTWlzY1Rlc3QuamF2YQpAQCAtMCwwICsxLDIyMTUgQEAKKyAvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNpbnRsdGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvY2ludGx0ZXN0L2Ntc2Njb2xsLmMKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW1wbGljaXRDRUdlbmVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25NaXNjVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uTWlzY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25NaXNjVGVzdCgpLlRlc3RMb2NhbGVSdWxlQmFzZWRDb2xsYXRvcnMoKTsgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1JNX0JVRkZFUl9URVNUX0xFTl8gPSAzMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUZXN0ZXIgCisgICAgeworICAgICAgICBpbnQgdTsKKyAgICAgICAgU3RyaW5nIE5GQzsKKyAgICAgICAgU3RyaW5nIE5GRDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBoYXNDb2xsYXRpb25FbGVtZW50cyhMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLGxvY2FsZSk7CisgICAgICAgIGlmIChyYiAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb2xsa2V5ID0gcmIuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsgCisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgZWxlbWVudHMgPSByYi5nZXRXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvIiArIGNvbGxrZXkpOworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zZURlY29tcG9zZSgpIAorICAgIHsKKyAgICAgICAgVGVzdGVyIHRbXSA9IG5ldyBUZXN0ZXJbMHgzMDAwMF07CisgICAgICAgIHRbMF0gPSBuZXcgVGVzdGVyKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIFVDQSBleHRlbnNpdmVseVxuIik7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIG9wZW5pbmcgY29sbGF0b3JcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBub0Nhc2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgdSA9IDA7IHUgPCAweDMwMDAwOyB1ICsrKSB7CisgICAgICAgICAgICBTdHJpbmcgY29tcCA9IFVURjE2LnZhbHVlT2YodSk7CisgICAgICAgICAgICBpbnQgbGVuID0gY29tcC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHRbbm9DYXNlc10uTkZDID0gTm9ybWFsaXplci5ub3JtYWxpemUodSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgdFtub0Nhc2VzXS5ORkQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh1LCBOb3JtYWxpemVyLk5GRCk7CisgICAgCisgICAgICAgICAgICBpZiAodFtub0Nhc2VzXS5ORkMubGVuZ3RoKCkgIT0gdFtub0Nhc2VzXS5ORkQubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgfHwgKHRbbm9DYXNlc10uTkZDLmNvbXBhcmVUbyh0W25vQ2FzZXNdLk5GRCkgIT0gMCkgCisgICAgICAgICAgICAgICAgfHwgKGxlbiAhPSB0W25vQ2FzZXNdLk5GRC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICB8fCAoY29tcC5jb21wYXJlVG8odFtub0Nhc2VzXS5ORkQpICE9IDApKSB7CisgICAgICAgICAgICAgICAgdFtub0Nhc2VzXS51ID0gdTsKKyAgICAgICAgICAgICAgICBpZiAobGVuICE9IHRbbm9DYXNlc10uTkZELmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICB8fCAoY29tcC5jb21wYXJlVG8odFtub0Nhc2VzXS5ORkQpICE9IDApKSB7CisgICAgICAgICAgICAgICAgICAgIHRbbm9DYXNlc10uTkZDID0gY29tcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbm9DYXNlcyArKzsKKyAgICAgICAgICAgICAgICB0W25vQ2FzZXNdID0gbmV3IFRlc3RlcigpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIAorICAgICAgICBmb3IgKGludCB1ID0gMDsgdSA8IG5vQ2FzZXM7IHUgKyspIHsKKyAgICAgICAgICAgIGlmICghY29sbC5lcXVhbHModFt1XS5ORkMsIHRbdV0uTkZEKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBjb2RlUG9pbnQgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcodFt1XS51KSAKKyAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbHMgVGVzdENvbXBvc2VEZWNvbXBvc2UgaW4gdGhlIFVDQSIpOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHRbdV0uTkZDLCB0W3VdLk5GRCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgbG9jYWxlcywgbnVtYmVyIG9mIGNhc2VzID0gIiArIG5vQ2FzZXMpOworICAgICAgICBMb2NhbGUgbG9jW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKGhhc0NvbGxhdGlvbkVsZW1lbnRzKGxvY1tpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBsb2NhbGUgIiArIGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY1tpXSk7CisgICAgICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IHUgPSAwOyB1IDwgbm9DYXNlczsgdSArKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbGwuZXF1YWxzKHRbdV0uTkZDLCB0W3VdLk5GRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBjb2RlUG9pbnQgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh0W3VdLnUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbHMgVGVzdENvbXBvc2VEZWNvbXBvc2UgZm9yIGxvY2FsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgdGVzdHMgZm9yIHRoZSBpdGVyYXRvcnMgdG9vCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsLCB0W3VdLk5GQywgdFt1XS5ORkQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVPcHRpb25zKCkgeworICAgICAgICAvLyB2YWx1ZXMgaGVyZSBhcmUgaGFyZGNvZGVkIGFuZCBhcmUgY29ycmVjdCBmb3IgdGhlIGN1cnJlbnQgVUNBIHdoZW4gCisgICAgICAgIC8vIHRoZSBVQ0EgY2hhbmdlcywgb25lIG1pZ2h0IGJlIGZvcmNlZCB0byBjaGFuZ2UgdGhlc2UgdmFsdWVzLiAKKyAgICAgICAgLy8gKFxcdTAyZDAsIFxcVTAwMDEwRkZGQyBldGMuLi4pIAorICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgIC8vIGNhbm5vdCB0ZXN0IHRoaXMgYW55bW9yZSwgYXMgW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdIGRvZXNuJ3QgCisgICAgICAgICAgICAvLyBoYXZlIGEgIGNvZGUgcG9pbnQgYXNzb2NpYXRlZCB0byBpdCBhbnltb3JlICAKKyAgICAgICAgICAgIC8vICImW2JlZm9yZSAzXVtsYXN0IHByaW1hcnkgaWdub3JhYmxlXTw8PGsiLAorICAgICAgICAgICAgLy8gLSBhbGwgYmVmb3JlcyBoZXJlIGFtb3VudCB0byB6ZXJvICAgICAgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHRlcnRpYXJ5IGlnbm9yYWJsZV08PDxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAzXVtsYXN0IHRlcnRpYXJ5IGlnbm9yYWJsZV08PDxhIiwgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHNlY29uZGFyeSBpZ25vcmFibGVdPDw8YSIsCisgICAgICAgICAgICAiJltiZWZvcmUgM11bbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXTw8PGEiLCAKKyAgICAgICAgICAgIC8vICdub3JtYWwnIGJlZm9yZXMgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHByaW1hcnkgaWdub3JhYmxlXTw8PGM8PDxiICZbZmlyc3QgcHJpbWFyeSBpZ25vcmFibGVdPGEiLAorICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSBhIGNvZGUgcG9pbnQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCBwcmltYXJ5IAorICAgICAgICAgICAgLy8gaWdub3JhYmxlIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdPDw8Yzw8PGIgJltsYXN0IHByaW1hcnkgaWdub3JhYmxlXTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAzXVtmaXJzdCB2YXJpYWJsZV08PDxjPDw8YiAmW2ZpcnN0IHZhcmlhYmxlXTxhIiwKKyAgICAgICAgICAgICImW2xhc3QgdmFyaWFibGVdPGEgJltiZWZvcmUgM11bbGFzdCB2YXJpYWJsZV08PDxjPDw8YiAiLAorICAgICAgICAgICAgIiZbZmlyc3QgcmVndWxhcl08YSAmW2JlZm9yZSAxXVtmaXJzdCByZWd1bGFyXTxiIiwgCisgICAgICAgICAgICAiJltiZWZvcmUgMV1bbGFzdCByZWd1bGFyXTxiICZbbGFzdCByZWd1bGFyXTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtmaXJzdCBpbXBsaWNpdF08YiAmW2ZpcnN0IGltcGxpY2l0XTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtsYXN0IGltcGxpY2l0XTxiICZbbGFzdCBpbXBsaWNpdF08YSIsIAorICAgICAgICAgICAgIiZbbGFzdCB2YXJpYWJsZV08eiZbbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV08eCZbbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXTw8eSZbbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGVdPDw8dyZbdG9wXTx1IiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBkYXRhID0geworICAgICAgICAgICAgLy8geyJrIiwgIlx1MjBlMyJ9LAorICAgICAgICAgICAgeyJcXHUwMDAwIiwgImEifSwgLy8geW91IGNhbm5vdCBnbyBiZWZvcmUgZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlIAorICAgICAgICAgICAgeyJcXHUwMDAwIiwgImEifSwgLy8geW91IGNhbm5vdCBnbyBiZWZvcmUgbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGUgCisgICAgICAgICAgICB7IlxcdTAwMDAiLCAiYSJ9LCAvLyB5b3UgY2Fubm90IGdvIGJlZm9yZSBmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICAgICAgICB7IlxcdTAwMDAiLCAiYSJ9LCAvLyB5b3UgY2Fubm90IGdvIGJlZm9yZSBmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICAgICAgICB7ImMiLCAiYiIsICJcXHUwMzMyIiwgImEifSwKKyAgICAgICAgICAgIHsiXFx1MDMzMiIsICJcXHUyMGUzIiwgImMiLCAiYiIsICJhIn0sCisgICAgICAgICAgICB7ImMiLCAiYiIsICJcXHUwMDA5IiwgImEiLCAiXFx1MDAwYSJ9LAorICAgICAgICAgICAgeyJjIiwgImIiLCAiXFx1RDgzNFxcdURGNzEiLCAiYSIsICJcXHUwMmQwIn0sCisgICAgICAgICAgICB7ImIiLCAiXFx1MDJkMCIsICJhIiwgIlxcdTAyZDEifSwKKyAgICAgICAgICAgIHsiYiIsICJcXHVkODA4XFx1ZGY2ZSIsICJhIiwgIlxcdTRlMDAifSwKKyAgICAgICAgICAgIHsiYiIsICJcXHU0ZTAwIiwgImEiLCAiXFx1NGUwMSJ9LAorICAgICAgICAgICAgeyJiIiwgIlxcVTAwMTBGRkZEIiwgImEifSwKKyAgICAgICAgICAgIHsiXHVmZmZiIiwgICJ3IiwgInkiLCAiXHUyMGUzIiwgIngiLCAiXHUxMzdjIiwgInoiLCAidSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzKSB7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXJXaXRoUmVzdWx0KHJ1bGVzLCBzLCAtMSk7CisgICAgfQorICAgIAorICAgIHZvaWQgZ2VuZXJpY1J1bGVzU3RhcnRlcldpdGhSZXN1bHQoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGVzIHN0YXJ0ZXIgZm9yICIgKyBydWxlcyk7CisgICAgICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCByZXN1bHQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJVbmFibGUgdG8gb3BlbiBjb2xsYXRvciB3aXRoIHJ1bGVzICIgKyBydWxlcyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljUnVsZXNTdGFydGVyV2l0aE9wdGlvbnNBbmRSZXN1bHQoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzLCBTdHJpbmdbXSBhdHRzLCBPYmplY3RbXSBhdHRWYWxzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBnZW5lcmljT3B0aW9uc1NldHRlcihjb2xsLCBhdHRzLCBhdHRWYWxzKTsKKyAgICAgICAgICAgIGdlbmVyaWNPcmRlcmluZ1Rlc3RXaXRoUmVzdWx0KGNvbGwsIHMsIHJlc3VsdCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIHdpdGggcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIGdlbmVyaWNPcmRlcmluZ1Rlc3RXaXRoUmVzdWx0KENvbGxhdG9yIGNvbGwsIFN0cmluZ1tdIHMsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHQxID0gIiI7CisgICAgICAgIFN0cmluZyB0MiA9ICIiOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHMubGVuZ3RoIC0gMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IoaW50IGogPSBpKzE7IGogPCBzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgdDEgPSBVdGlsaXR5LnVuZXNjYXBlKHNbaV0pOworICAgICAgICAgICAgICAgIHQyID0gVXRpbGl0eS51bmVzY2FwZShzW2pdKTsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oaSArICIgIiArIGopOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCB0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHJlcG9ydENSZXN1bHQoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgLyogc3lud2VlIHRvIHVuZG8gJiYgIWlzVmVyYm9zZSgpKi8pIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgLy8gbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICAvLyBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgLy8gbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeyAgLy9MRVNTCisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7ICAvL0VRVUFMCisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeyAgLy9HUkVBVEVSCisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmVmb3JlUHJlZml4RmFpbHVyZSgpIHsKKyAgICAgICAgU3RyaW5nW10gcnVsZXMgPSB7CisgICAgICAgICAgICAiJmcgPDw8IGEmW2JlZm9yZSAzXVx1ZmY0MSA8PDwgeCIsCisgICAgICAgICAgICAiJlx1MzBBNz1cdTMwQTc9XHUzMDQ3PVx1ZmY2YSZcdTMwQTg9XHUzMEE4PVx1MzA0OD1cdWZmNzQmW2JlZm9yZSAzXVx1MzBhNzw8PFx1MzBhOSIsCisgICAgICAgICAgICAiJltiZWZvcmUgM11cdTMwYTc8PDxcdTMwYTkmXHUzMEE3PVx1MzBBNz1cdTMwNDc9XHVmZjZhJlx1MzBBOD1cdTMwQTg9XHUzMDQ4PVx1ZmY3NCIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gZGF0YSA9IHsKKyAgICAgICAgICAgIHsieCIsICJcdWZmNDEifSwKKyAgICAgICAgICAgIHsiXHUzMGE5IiwgIlx1MzBhNyJ9LAorICAgICAgICAgICAgeyJcdTMwYTkiLCAiXHUzMGE3In0sCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgZGF0YVtpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uQ2xvc3VyZSgpIHsKKyAgICAgICAgU3RyaW5nW10gcnVsZXMgPSB7CisgICAgICAgICAgICAiJmI9XHUwMGU0XHUwMGU0IiwKKyAgICAgICAgICAgICImYj1cdTAwQzUiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXVtdIGRhdGEgPSB7CisgICAgICAgICAgICB7ICJiIiwgIlx1MDBlNFx1MDBlNCIsICJhXHUwMzA4YVx1MDMwOCIsICJcdTAwZTRhXHUwMzA4IiwgImFcdTAzMDhcdTAwZTQiIH0sCisgICAgICAgICAgICB7ICJiIiwgIlx1MDBDNSIsICJBXHUwMzBBIiwgIlx1MjEyQiIgfSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyV2l0aFJlc3VsdChydWxlc1tpXSwgZGF0YVtpXSwgMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFByZWZpeENvbXBvc2UoKSB7CisgICAgICAgIFN0cmluZyBydWxlMSA9ICImXHUzMGE3PDw8XHUzMGFifFx1MzBmYz1cdTMwYWN8XHUzMGZjIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBzdHJpbmcgPSBydWxlMTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Ioc3RyaW5nKTsKKyAgICAgICAgICAgIGxvZ2xuKCJydWxlOiIgKyBjb2xsLmdldFJ1bGVzKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBvcGVuIFJ1bGVCYXNlZENvbGxhdG9yIHJ1bGUgPSAiICsgc3RyaW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyQ29sbElkZW50aWNhbFByZWZpeCgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJlx1ZDliMFx1ZGM3MD1cdWQ5YjBcdWRjNzEiOworICAgICAgICBTdHJpbmcgdGVzdFtdID0geworICAgICAgICAgICAgImFiXHVkOWIwXHVkYzcwIiwKKyAgICAgICAgICAgICJhYlx1ZDliMFx1ZGM3MSIKKyAgICAgICAgfTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcldpdGhSZXN1bHQocnVsZSwgdGVzdCwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmVmaXgoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAgICAgIiZ6IDw8PCB6fGEiLAorICAgICAgICAgICAgIiZ6IDw8PCB6fCAgIGEiLCAKKyAgICAgICAgICAgICJbc3RyZW5ndGggSV0mYT1cdWQ5MDBcdWRjMjUmejw8PFx1ZDkwMFx1ZGMyNXxhIiwgCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gZGF0YSA9IHsKKyAgICAgICAgICAgIHsienoiLCAiemEifSwKKyAgICAgICAgICAgIHsienoiLCAiemEifSwKKyAgICAgICAgICAgIHsiYWEiLCAiYXoiLCAiXHVkOTAwXHVkYzI1eiIsICJcdWQ5MDBcdWRjMjVhIiwgInp6In0sCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpPHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV3SmFwYW5lc2UoKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdDFbXSA9IHsKKyAgICAgICAgICAgICJcdTMwYjdcdTMwZTNcdTMwZmNcdTMwZWMiLAorICAgICAgICAgICAgIlx1MzBiN1x1MzBlM1x1MzBhNCIsCisgICAgICAgICAgICAiXHUzMGI3XHUzMGU0XHUzMGEzIiwKKyAgICAgICAgICAgICJcdTMwYjdcdTMwZTNcdTMwZWMiLAorICAgICAgICAgICAgIlx1MzA2MVx1MzA4N1x1MzA1MyIsCisgICAgICAgICAgICAiXHUzMDYxXHUzMDg4XHUzMDUzIiwKKyAgICAgICAgICAgICJcdTMwYzFcdTMwZTdcdTMwYjNcdTMwZWNcdTMwZmNcdTMwYzgiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzBmY1x1MzA1ZiIsCisgICAgICAgICAgICAiXHUzMGM2XHUzMGZjXHUzMGJmIiwgCisgICAgICAgICAgICAiXHUzMGM2XHUzMGE3XHUzMGJmIiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwNDhcdTMwNWYiLAorICAgICAgICAgICAgIlx1MzA2N1x1MzBmY1x1MzA1ZiIsIAorICAgICAgICAgICAgIlx1MzBjN1x1MzBmY1x1MzBiZiIsCisgICAgICAgICAgICAiXHUzMGM3XHUzMGE3XHUzMGJmIiwKKyAgICAgICAgICAgICJcdTMwNjdcdTMwNDhcdTMwNWYiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzBmY1x1MzA1Zlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGM2XHUzMGZjXHUzMGJmXHUzMGExIiwKKyAgICAgICAgICAgICJcdTMwYzZcdTMwYTdcdTMwYmZcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzA0N1x1MzA1Zlx1MzA0MSIsCisgICAgICAgICAgICAiXHUzMDY2XHUzMDQ4XHUzMDVmXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNjdcdTMwZmNcdTMwNWZcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBjN1x1MzBmY1x1MzBiZlx1MzBhMSIsCisgICAgICAgICAgICAiXHUzMDY3XHUzMGE3XHUzMDVmXHUzMGExIiwKKyAgICAgICAgICAgICJcdTMwYzdcdTMwNDdcdTMwYmZcdTMwNDEiLAorICAgICAgICAgICAgIlx1MzBjN1x1MzBhOFx1MzBiZlx1MzBhMiIsCisgICAgICAgICAgICAiXHUzMDcyXHUzMDg2IiwKKyAgICAgICAgICAgICJcdTMwNzNcdTMwODVcdTMwNDIiLAorICAgICAgICAgICAgIlx1MzA3NFx1MzA4NVx1MzA0MiIsCisgICAgICAgICAgICAiXHUzMDczXHUzMDg1XHUzMDQyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwZDNcdTMwZTVcdTMwYTJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzA3NFx1MzA4NVx1MzA0Mlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQ0XHUzMGU1XHUzMGEyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwZDJcdTMwZTVcdTMwYTYiLAorICAgICAgICAgICAgIlx1MzBkMlx1MzBlNlx1MzBhNiIsCisgICAgICAgICAgICAiXHUzMGQ0XHUzMGU1XHUzMGE2XHUzMGEyIiwKKyAgICAgICAgICAgICJcdTMwNzNcdTMwODVcdTMwZmNcdTMwNDJcdTMwZmMiLCAKKyAgICAgICAgICAgICJcdTMwZDNcdTMwZTVcdTMwZmNcdTMwYTJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkM1x1MzBlNVx1MzBhNlx1MzBhMlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDcyXHUzMDg1XHUzMDkzIiwKKyAgICAgICAgICAgICJcdTMwNzRcdTMwODVcdTMwOTMiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBmY1x1MzA4YSIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGZjXHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwNDVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBhNVx1MzA4YSIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMGE1XHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwZDVcdTMwYTZcdTMwZWEiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzBmY1x1MzA4YSIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMGZjXHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwNDVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzBhNVx1MzA4YSIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMDQ2XHUzMDhhIiwKKyAgICAgICAgICAgICJcdTMwZDdcdTMwYTZcdTMwZWEiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBmY1x1MzA4YVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGE1XHUzMGVhXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwYTVcdTMwOGFcdTMwYTMiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzA0NVx1MzA4YVx1MzA0MyIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGE2XHUzMGVhXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwNDZcdTMwOGFcdTMwNDMiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzBhNlx1MzBlYVx1MzBhNCIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMGZjXHUzMDhhXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwYTVcdTMwOGFcdTMwYTQiLAorICAgICAgICAgICAgIlx1MzA3N1x1MzA0Nlx1MzA4YVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQ3XHUzMGE2XHUzMGVhXHUzMGE0IiwKKyAgICAgICAgICAgICJcdTMwZDVcdTMwZmQiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzA5ZSIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDlkIiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwNzUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzBkNSIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMDc1IiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwZDUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzA5ZSIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDc3IiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwNzciLAorICAgICAgICAgICAgIlx1MzA3N1x1MzA5ZCIsCisgICAgICAgICAgICAiXHUzMGQ3XHUzMGZkIiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwNzUiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QyW10gPSB7CisgICAgICAgICAgICAiXHUzMDZmXHUzMDlkIiwgLy8gSFx1MzA5ZCAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwZmQiLCAvLyBLXHUzMGZkIAorICAgICAgICAgICAgIlx1MzA2Zlx1MzA2ZiIsIC8vIEhIIAorICAgICAgICAgICAgIlx1MzA2Zlx1MzBjZiIsIC8vIEhLIAorICAgICAgICAgICAgIlx1MzBjZlx1MzBjZiIsIC8vIEtLIAorICAgICAgICAgICAgIlx1MzA2Zlx1MzA5ZSIsIC8vIEhcdTMwOWUgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGZlIiwgLy8gS1x1MzBmZSAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwNzAiLCAvLyBISFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwZDAiLCAvLyBLS1x1MzA5YiAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwNzEiLCAvLyBISFx1MzA5YyAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwNzEiLCAvLyBLSFx1MzA5YyAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwZDEiLCAvLyBLS1x1MzA5YyAKKyAgICAgICAgICAgICJcdTMwNzBcdTMwOWQiLCAvLyBIXHUzMDliXHUzMDlkIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBmZCIsIC8vIEtcdTMwOWJcdTMwZmQgCisgICAgICAgICAgICAiXHUzMDcwXHUzMDZmIiwgLy8gSFx1MzA5YkggCisgICAgICAgICAgICAiXHUzMGQwXHUzMGNmIiwgLy8gS1x1MzA5YksgCisgICAgICAgICAgICAiXHUzMDcwXHUzMDllIiwgLy8gSFx1MzA5Ylx1MzA5ZSAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZmUiLCAvLyBLXHUzMDliXHUzMGZlIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA3MCIsIC8vIEhcdTMwOWJIXHUzMDliIAorICAgICAgICAgICAgIlx1MzBkMFx1MzA3MCIsIC8vIEtcdTMwOWJIXHUzMDliIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBkMCIsIC8vIEtcdTMwOWJLXHUzMDliIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA3MSIsIC8vIEhcdTMwOWJIXHUzMDljIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBkMSIsIC8vIEtcdTMwOWJLXHUzMDljIAorICAgICAgICAgICAgIlx1MzA3MVx1MzA5ZCIsIC8vIEhcdTMwOWNcdTMwOWQgCisgICAgICAgICAgICAiXHUzMGQxXHUzMGZkIiwgLy8gS1x1MzA5Y1x1MzBmZCAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwNmYiLCAvLyBIXHUzMDljSCAKKyAgICAgICAgICAgICJcdTMwZDFcdTMwY2YiLCAvLyBLXHUzMDljSyAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwNzAiLCAvLyBIXHUzMDljSFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwZDAiLCAvLyBIXHUzMDljS1x1MzA5YiAKKyAgICAgICAgICAgICJcdTMwZDFcdTMwZDAiLCAvLyBLXHUzMDljS1x1MzA5YgorICAgICAgICAgICAgIlx1MzA3MVx1MzA3MSIsIC8vIEhcdTMwOWNIXHUzMDljCisgICAgICAgICAgICAiXHUzMGQxXHUzMGQxIiwgLy8gS1x1MzA5Y0tcdTMwOWMKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGF0dCA9IHsgInN0cmVuZ3RoIiwgfTsKKyAgICAgICAgT2JqZWN0W10gdmFsID0geyBuZXcgSW50ZWdlcihDb2xsYXRvci5RVUFURVJOQVJZKSwgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGF0dFNoaWZ0ZWQgPSB7ICJzdHJlbmd0aCIsICJBbHRlcm5hdGVIYW5kbGluZyJ9OworICAgICAgICBPYmplY3QgdmFsU2hpZnRlZFtdID0geyBuZXcgSW50ZWdlcihDb2xsYXRvci5RVUFURVJOQVJZKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCb29sZWFuKHRydWUpIH07CisgICAgICAgCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkpBUEFORVNFLCB0ZXN0MSwgYXR0LCB2YWwpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5KQVBBTkVTRSwgdGVzdDIsIGF0dCwgdmFsKTsKKyAgICAgICAgCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkpBUEFORVNFLCB0ZXN0MSwgYXR0U2hpZnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxTaGlmdGVkKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9ucyhMb2NhbGUuSkFQQU5FU0UsIHRlc3QyLCBhdHRTaGlmdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbFNoaWZ0ZWQpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNMb2NhbGVTdGFydGVyKExvY2FsZSBsb2NhbGUsIFN0cmluZyBzW10pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3IgZm9yIGxvY2FsZSAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiTG9jYWxlIHN0YXJ0ZXIgZm9yICIgKyBsb2NhbGUpOworICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0KGNvbGwsIHMpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlIGxvY2FsZSwgU3RyaW5nW10gcywgU3RyaW5nW10gYXR0cnMsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zQW5kUmVzdWx0KGxvY2FsZSwgcywgYXR0cnMsIHZhbHVlcywgLTEpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZ2VuZXJpY09wdGlvbnNTZXR0ZXIoUnVsZUJhc2VkQ29sbGF0b3IgY29sbCwgU3RyaW5nW10gYXR0cnMsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChhdHRyc1tpXS5lcXVhbHMoInN0cmVuZ3RoIikpIHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKCgoSW50ZWdlcil2YWx1ZXNbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzW2ldLmVxdWFscygiZGVjb21wIikpIHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oKChJbnRlZ2VyKXZhbHVlc1tpXSkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoYXR0cnNbaV0uZXF1YWxzKCJBbHRlcm5hdGVIYW5kbGluZyIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKChCb29sZWFuKXZhbHVlc1tpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzW2ldLmVxdWFscygiTnVtZXJpY0NvbGxhdGlvbiIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXROdW1lcmljQ29sbGF0aW9uKCgoQm9vbGVhbil2YWx1ZXNbaV0pLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzW2ldLmVxdWFscygiVXBwZXJGaXJzdCIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRVcHBlckNhc2VGaXJzdCgoKEJvb2xlYW4pdmFsdWVzW2ldKS5ib29sZWFuVmFsdWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhdHRyc1tpXS5lcXVhbHMoIkxvd2VyRmlyc3QiKSkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0TG93ZXJDYXNlRmlyc3QoKChCb29sZWFuKXZhbHVlc1tpXSkuYm9vbGVhblZhbHVlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYXR0cnNbaV0uZXF1YWxzKCJDYXNlTGV2ZWwiKSkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0Q2FzZUxldmVsKCgoQm9vbGVhbil2YWx1ZXNbaV0pLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAgfQorICAgIAorICAgIHZvaWQgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9uc0FuZFJlc3VsdChMb2NhbGUgbG9jYWxlLCBTdHJpbmdbXSBzLCBTdHJpbmdbXSBhdHRycywgT2JqZWN0W10gdmFsdWVzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJVbmFibGUgdG8gb3BlbiBjb2xsYXRvciBmb3IgbG9jYWxlICIgKyBsb2NhbGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJMb2NhbGUgc3RhcnRlciBmb3IgIiArbG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIC8vIGxvZ2xuKCJTZXR0aW5nIGF0dHJpYnV0ZXMiKTsKKyAgICAgICAgZ2VuZXJpY09wdGlvbnNTZXR0ZXIoY29sbCwgYXR0cnMsIHZhbHVlcyk7CisgICAgICAgIAorICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCByZXN1bHQpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNPcmRlcmluZ1Rlc3QoQ29sbGF0b3IgY29sbCwgU3RyaW5nW10gcykgeworICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCAtMSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3ROb25DaGFycygpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJcdTAwMDAiLAorICAgICAgICAgICAgIlx1RkZGRSIsICJcdUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDFGRkZFIiwgIlxcVTAwMDFGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDAyRkZGRSIsICJcXFUwMDAyRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwM0ZGRkUiLCAiXFxVMDAwM0ZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDRGRkZFIiwgIlxcVTAwMDRGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA1RkZGRSIsICJcXFUwMDA1RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwNkZGRkUiLCAiXFxVMDAwNkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDdGRkZFIiwgIlxcVTAwMDdGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA4RkZGRSIsICJcXFUwMDA4RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwOUZGRkUiLCAiXFxVMDAwOUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMEFGRkZFIiwgIlxcVTAwMEFGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBCRkZGRSIsICJcXFUwMDBCRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwQ0ZGRkUiLCAiXFxVMDAwQ0ZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMERGRkZFIiwgIlxcVTAwMERGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBFRkZGRSIsICJcXFUwMDBFRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwRkZGRkUiLCAiXFxVMDAwRkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMTBGRkZFIiwgIlxcVTAwMTBGRkZGIgorICAgICAgICB9OworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdCBub24gY2hhcmFjdGVycyIpOworICAgICAgICAKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdFdpdGhSZXN1bHQoY29sbCwgdGVzdCwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeHRyZW1lQ29tcHJlc3Npb24oKSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3QgPSBuZXcgU3RyaW5nWzRdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTw0OyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAyMDQ3OyBqKyspIHsKKyAgICAgICAgICAgICAgICB0ZW1wLmFwcGVuZCgnYScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcC5hcHBlbmQoKGNoYXIpKCdhJyArIGkpKTsKKyAgICAgICAgICAgIHRlc3RbaV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImVuIiwgIlVTIiksIHRlc3QpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RzIHN1cnJvZ2F0ZSBzdXBwb3J0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXJyb2dhdGVzKCkgeworICAgICAgICBTdHJpbmcgdGVzdFtdID0geyJ6IiwiXHVkOTAwXHVkYzI1IiwgIlx1ZDgwNVx1ZGM1MCIsICJcdWQ4MDBcdWRjMDB5IiwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDByIiwgIlx1ZDgwMFx1ZGMwMGYiLCAiXHVkODAwXHVkYzAwIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMGMiLCAiXHVkODAwXHVkYzAwYiIsICJcdWQ4MDBcdWRjMDBmYSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDBmYiIsICJcdWQ4MDBcdWRjMDBhIiwgImMiLCAiYiJ9OworCisgICAgICAgIFN0cmluZyBydWxlID0gIiZ6IDwgXHVkOTAwXHVkYzI1IDwgXHVkODA1XHVkYzUwIDwgXHVkODAwXHVkYzAweSAiCisgICAgICAgICAgICArICI8IFx1ZDgwMFx1ZGMwMHIgPCBcdWQ4MDBcdWRjMDBmIDw8IFx1ZDgwMFx1ZGMwMCAiCisgICAgICAgICAgICArICI8IFx1ZDgwMFx1ZGMwMGZhIDw8IFx1ZDgwMFx1ZGMwMGZiIDwgXHVkODAwXHVkYzAwYSAiIAorICAgICAgICAgICAgKyAiPCBjIDwgYiI7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZSwgdGVzdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCb2NzdUNvdmVyYWdlKCkgeworICAgICAgICBTdHJpbmcgdGVzdCA9ICJcdTAwNDFcdTA0NDFcdTQ0NDFcXFUwMDA0NDQ0MVx1NDQ0MVx1MDQ0MVx1MDA0MSI7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgIENvbGxhdGlvbktleSBrZXkgPSBjb2xsLmdldENvbGxhdGlvbktleSh0ZXN0KTsKKyAgICAgICAgbG9nbG4oInNvdXJjZToiICsga2V5LmdldFNvdXJjZVN0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEN5cmlsbGljVGFpbG9yaW5nKCkgeworICAgICAgICBTdHJpbmcgdGVzdFtdID0geworICAgICAgICAgICAgIlx1MDQxMGIiLAorICAgICAgICAgICAgIlx1MDQxMFx1MDMwNmEiLAorICAgICAgICAgICAgIlx1MDRkMEEiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImVuIiwgIiIpLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlx1MDQxMCA9IFx1MDQxMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImWiA8IFx1MDQxMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImXHUwNDEwID0gXHUwNDEwIDwgXHUwNGQwIiwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZaIDwgXHUwNDEwIDwgXHUwNGQwIiwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZcdTA0MTAgPSBcdTA0MTAgPCBcdTA0MTBcdTAzMDEiLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlogPCBcdTA0MTAgPCBcdTA0MTBcdTAzMDEiLCB0ZXN0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VwcHJlc3NDb250cmFjdGlvbnMoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0Tm9Db250MltdID0geworICAgICAgICAgICAgIlx1MDQxMFx1MDMwMmEiLAorICAgICAgICAgICAgIlx1MDQxMFx1MDMwNmIiLAorICAgICAgICAgICAgIlx1MDQxMGMiICAgICAgICAgICAgCisgICAgICAgIH07CisgICAgICAgIFN0cmluZyB0ZXN0Tm9Db250W10gPSB7CisgICAgICAgICAgICAiYVx1MDQxMCIsICAgICAgICAgICAgCisgICAgICAgICAgICAiQVx1MDQxMFx1MDMwNiIsCisgICAgICAgICAgICAiXHVGRjIxXHUwNDEwXHUwMzAyIgorICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltzdXBwcmVzc0NvbnRyYWN0aW9ucyBbXHUwNDAwLVx1MDQ3Zl1dIiwgdGVzdE5vQ29udCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltzdXBwcmVzc0NvbnRyYWN0aW9ucyBbXHUwNDAwLVx1MDQ3Zl1dIiwgdGVzdE5vQ29udDIpOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENhc2UoKSB7CisgICAgICAgIFN0cmluZyBnUnVsZXMgPSAiXHUwMDI2XHUwMDMwXHUwMDNDXHUwMDMxXHUwMDJDXHUyNDYwXHUwMDNDXHUwMDYxXHUwMDJDXHUwMDQxIjsKKyAgICAgICAgU3RyaW5nW10gdGVzdENhc2UgPSB7CisgICAgICAgICAgICAiMWEiLCAiMUEiLCAiXHUyNDYwYSIsICJcdTI0NjBBIgorICAgICAgICB9OworICAgICAgICBpbnRbXVtdIGNhc2VUZXN0UmVzdWx0cyA9IHsKKyAgICAgICAgICAgIHsgLTEsIC0xLCAtMSwgMCwgLTEsIC0xLCAwLCAwLCAtMSB9LAorICAgICAgICAgICAgeyAxLCAtMSwgLTEsIDAsIC0xLCAtMSwgMCwgMCwgMSB9LAorICAgICAgICAgICAgeyAtMSwgLTEsIC0xLCAwLCAxLCAtMSwgMCwgMCwgLTEgfSwKKyAgICAgICAgICAgIHsgMSwgLTEsIDEsIDAsIC0xLCAtMSwgMCwgMCwgMSB9CisgICAgCisgICAgICAgIH07CisgICAgICAgIGJvb2xlYW5bXVtdIGNhc2VUZXN0QXR0cmlidXRlcyA9IHsKKyAgICAgICAgICAgIHsgZmFsc2UsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgdHJ1ZSwgZmFsc2V9LAorICAgICAgICAgICAgeyBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICB7IHRydWUsIHRydWV9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBpbnQgaSxqLGs7CisgICAgICAgIENvbGxhdG9yICBteUNvbGxhdGlvbjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBydWxlIGJhc2VkIGNvbGxhdG9yICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJUZXN0aW5nIGRpZmZlcmVudCBjYXNlIHNldHRpbmdzIik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgZm9yKGsgPSAwOyBrIDw0OyBrKyspIHsKKyAgICAgICAgICAgIGlmIChjYXNlVGVzdEF0dHJpYnV0ZXNba11bMF0gPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIHVwcGVyIGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRVcHBlckNhc2VGaXJzdCh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHVwcGVyIGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRMb3dlckNhc2VGaXJzdCh0cnVlKTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24pLnNldENhc2VMZXZlbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlVGVzdEF0dHJpYnV0ZXNba11bMV0pOworICAgICAgICAgIAorICAgICAgICAgICAgLy8gbG9nbG4oIkNhc2UgZmlyc3QgPSAiICsgY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzBdICsgIiwgQ2FzZSBsZXZlbCA9ICIgKyBjYXNlVGVzdEF0dHJpYnV0ZXNba11bMV0pOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmb3IoaiA9IGkrMTsgajw0OyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlW2ldLCB0ZXN0Q2FzZVtqXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VUZXN0UmVzdWx0c1trXVszKmkrai0xXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihnUnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgcnVsZSBiYXNlZCBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJUZXN0aW5nIGRpZmZlcmVudCBjYXNlIHNldHRpbmdzIHdpdGggY3VzdG9tIHJ1bGVzIik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgZm9yKGsgPSAwOyBrPDQ7IGsrKykgeworICAgICAgICAgICAgaWYgKGNhc2VUZXN0QXR0cmlidXRlc1trXVswXSA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuc2V0VXBwZXJDYXNlRmlyc3QodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRVcHBlckNhc2VGaXJzdChmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRDYXNlTGV2ZWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzFdKTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZm9yKGogPSBpKzE7IGo8NDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZVtpXSwgdGVzdENhc2Vbal0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlVGVzdFJlc3VsdHNba11bMyppK2otMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvd2VyRmlyc3QgPSB7CisgICAgICAgICAgICAgICAgImgiLAorICAgICAgICAgICAgICAgICJIIiwKKyAgICAgICAgICAgICAgICAiY2giLAorICAgICAgICAgICAgICAgICJDaCIsCisgICAgICAgICAgICAgICAgIkNIIiwKKyAgICAgICAgICAgICAgICAiY2hhIiwKKyAgICAgICAgICAgICAgICAiY2hBIiwKKyAgICAgICAgICAgICAgICAiQ2hhIiwKKyAgICAgICAgICAgICAgICAiQ2hBIiwKKyAgICAgICAgICAgICAgICAiQ0hhIiwKKyAgICAgICAgICAgICAgICAiQ0hBIiwKKyAgICAgICAgICAgICAgICAiaSIsCisgICAgICAgICAgICAgICAgIkkiCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdXBwZXJGaXJzdCA9IHsKKyAgICAgICAgICAgICAgICAiSCIsCisgICAgICAgICAgICAgICAgImgiLAorICAgICAgICAgICAgICAgICJDSCIsCisgICAgICAgICAgICAgICAgIkNoIiwKKyAgICAgICAgICAgICAgICAiY2giLAorICAgICAgICAgICAgICAgICJDSEEiLAorICAgICAgICAgICAgICAgICJDSGEiLAorICAgICAgICAgICAgICAgICJDaEEiLAorICAgICAgICAgICAgICAgICJDaGEiLAorICAgICAgICAgICAgICAgICJjaEEiLAorICAgICAgICAgICAgICAgICJjaGEiLAorICAgICAgICAgICAgICAgICJJIiwKKyAgICAgICAgICAgICAgICAiaSIKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAvLyBsb2dsbigibWl4ZWQgY2FzZSB0ZXN0Iik7CisgICAgICAgICAgICAvLyBsb2dsbigibG93ZXIgZmlyc3QsIGNhc2UgbGV2ZWwgb2ZmIik7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbY2FzZWZpcnN0IGxvd2VyXSZIPGNoPDw8Q2g8PDxDSCIsIGxvd2VyRmlyc3QpOyAKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ1cHBlciBmaXJzdCwgY2FzZSBsZXZlbCBvZmYiKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltjYXNlZmlyc3QgdXBwZXJdJkg8Y2g8PDxDaDw8PENIIiwgdXBwZXJGaXJzdCk7CisgICAgICAgICAgICAvLyBsb2dsbigibG93ZXIgZmlyc3QsIGNhc2UgbGV2ZWwgb24iKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltjYXNlZmlyc3QgbG93ZXJdW2Nhc2VsZXZlbCBvbl0mSDxjaDw8PENoPDw8Q0giLCBsb3dlckZpcnN0KTsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ1cHBlciBmaXJzdCwgY2FzZSBsZXZlbCBvbiIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2Nhc2VmaXJzdCB1cHBlcl1bY2FzZWxldmVsIG9uXSZIPGNoPDw8Q2g8PDxDSCIsIHVwcGVyRmlyc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEluY29tcGxldGVDbnQoKSB7CisgICAgICAgIFN0cmluZ1tdIGNudDEgPSB7CisgICAgICAgICAgICAiQUEiLAorICAgICAgICAgICAgIkFDIiwKKyAgICAgICAgICAgICJBWiIsCisgICAgICAgICAgICAiQVEiLAorICAgICAgICAgICAgIkFCIiwKKyAgICAgICAgICAgICJBQloiLAorICAgICAgICAgICAgIkFCUSIsCisgICAgICAgICAgICAiWiIsCisgICAgICAgICAgICAiQUJDIiwKKyAgICAgICAgICAgICJRIiwKKyAgICAgICAgICAgICJCIgorICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGNudDIgPSB7CisgICAgICAgICAgICAiREEiLAorICAgICAgICAgICAgIkRBRCIsCisgICAgICAgICAgICAiREFaIiwKKyAgICAgICAgICAgICJNQVIiLAorICAgICAgICAgICAgIloiLAorICAgICAgICAgICAgIkRBVklTIiwKKyAgICAgICAgICAgICJNQVJLIiwKKyAgICAgICAgICAgICJEQVYiLAorICAgICAgICAgICAgIkRBVkkiCisgICAgICAgIH07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSAgbnVsbDsKKyAgICAgICAgU3RyaW5nIHRlbXAgPSAiICYgWiA8IEFCQyA8IFEgPCBCIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IodGVtcCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBzaXplID0gY250MS5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gY250MVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBjbnQxW2pdOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZW1wID0gIiAmIFogPCBEQVZJUyA8IE1BUksgPERBViI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHRlbXApOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJmYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzaXplID0gY250Mi5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gY250MltpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBjbnQyW2pdOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmxhY2tCaXJkKCkgeworICAgICAgICBTdHJpbmdbXSBzaGlmdGVkID0geworICAgICAgICAgICAgImJsYWNrIGJpcmQiLAorICAgICAgICAgICAgImJsYWNrLWJpcmQiLAorICAgICAgICAgICAgImJsYWNrYmlyZCIsCisgICAgICAgICAgICAiYmxhY2sgQmlyZCIsCisgICAgICAgICAgICAiYmxhY2stQmlyZCIsCisgICAgICAgICAgICAiYmxhY2tCaXJkIiwKKyAgICAgICAgICAgICJibGFjayBiaXJkcyIsCisgICAgICAgICAgICAiYmxhY2stYmlyZHMiLAorICAgICAgICAgICAgImJsYWNrYmlyZHMiCisgICAgICAgIH07CisgICAgICAgIGludFtdIHNoaWZ0ZWRUZXJ0ID0geworICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgLTEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIC0xLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gbm9uaWdub3JhYmxlID0geworICAgICAgICAgICAgImJsYWNrIGJpcmQiLAorICAgICAgICAgICAgImJsYWNrIEJpcmQiLAorICAgICAgICAgICAgImJsYWNrIGJpcmRzIiwKKyAgICAgICAgICAgICJibGFjay1iaXJkIiwKKyAgICAgICAgICAgICJibGFjay1CaXJkIiwKKyAgICAgICAgICAgICJibGFjay1iaXJkcyIsCisgICAgICAgICAgICAiYmxhY2tiaXJkIiwKKyAgICAgICAgICAgICJibGFja0JpcmQiLAorICAgICAgICAgICAgImJsYWNrYmlyZHMiCisgICAgICAgIH07CisgICAgICAgIGludCBpID0gMCwgaiA9IDA7CisgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICAvL3Vjb2xfc2V0QXR0cmlidXRlKGNvbGwsIFVDT0xfTk9STUFMSVpBVElPTl9NT0RFLCBVQ09MX09GRiwgJnN0YXR1cyk7CisgICAgICAgIC8vdWNvbF9zZXRBdHRyaWJ1dGUoY29sbCwgVUNPTF9BTFRFUk5BVEVfSEFORExJTkcsIFVDT0xfTk9OX0lHTk9SQUJMRSwgJnN0YXR1cyk7CisgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCkuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICAgICAgc2l6ZSA9IG5vbmlnbm9yYWJsZS5sZW5ndGg7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHNpemUtMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IoaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IG5vbmlnbm9yYWJsZVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBub25pZ25vcmFibGVbal07CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCkuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICBzaXplID0gc2hpZnRlZC5sZW5ndGg7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHNpemUtMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IoaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IHNoaWZ0ZWRbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHQyID0gc2hpZnRlZFtqXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgdDEsIHQyLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIHNpemUgPSBzaGlmdGVkLmxlbmd0aDsKKyAgICAgICAgZm9yKGkgPSAxOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgdDEgPSBzaGlmdGVkW2ktMV07CisgICAgICAgICAgICBTdHJpbmcgdDIgPSBzaGlmdGVkW2ldOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdGVkVGVydFtpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEZ1bmt5QSgpIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMwMSIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMzAwXHUwMzE2IiwKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDAiLAorICAgICAgICAgICAgIlx1MDBDMFx1MDMwMSIsCisgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIHdvcmsgd2l0aCBmb3JjZWQgbm9ybWFsaXphdGlvbiAKKyAgICAgICAgICAgICJcdTAwQzBcdTAzMTYiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMVx1MDMwMCIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJcdTAwQzAiLAorICAgICAgICAgICAgIlx1MDA0MVx1MDMwMVx1MDMwMCIsCisgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIHdvcmsgd2l0aCBmb3JjZWQgbm9ybWFsaXphdGlvbiAKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMTZcdTAzMDAiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwCisgICAgICAgIH07CisKKyAgICAgICAgQ29sbGF0b3IgIG15Q29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdGluZyBzb21lIEEgbGV0dGVycywgZm9yIHNvbWUgcmVhc29uIik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNCA7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENoTW92ZSgpIHsKKyAgICAgICAgU3RyaW5nW10gY2hUZXN0ID0geworICAgICAgICAgICAgImMiLAorICAgICAgICAgICAgIkMiLAorICAgICAgICAgICAgImNhIiwgImNiIiwgImN4IiwgImN5IiwgIkNaIiwKKyAgICAgICAgICAgICJjXHUwMzBDIiwgIkNcdTAzMEMiLAorICAgICAgICAgICAgImgiLAorICAgICAgICAgICAgIkgiLAorICAgICAgICAgICAgImhhIiwgIkhhIiwgImhhcmx5IiwgImhiIiwgIkhCIiwgImh4IiwgIkhYIiwgImh5IiwgIkhZIiwKKyAgICAgICAgICAgICJjaCIsICJjSCIsICJDaCIsICJDSCIsCisgICAgICAgICAgICAiY2hhIiwgImNoYXJseSIsICJjaGUiLCAiY2hoIiwgImNoY2giLCAiY2hyIiwKKyAgICAgICAgICAgICJpIiwgIkkiLCAiaWFybHkiLAorICAgICAgICAgICAgInIiLCAiUiIsCisgICAgICAgICAgICAiclx1MDMwQyIsICJSXHUwMzBDIiwKKyAgICAgICAgICAgICJzIiwKKyAgICAgICAgICAgICJTIiwKKyAgICAgICAgICAgICJzXHUwMzBDIiwgIlNcdTAzMEMiLAorICAgICAgICAgICAgInoiLCAiWiIsCisgICAgICAgICAgICAielx1MDMwQyIsICJaXHUwMzBDIgorICAgICAgICB9OworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJjcyIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkNhbm5vdCBjcmVhdGUgQ29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9IGNoVGVzdC5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gY2hUZXN0W2ldOworICAgICAgICAgICAgICAgIFN0cmluZyB0MiA9IGNoVGVzdFtqXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgdDEsIHQyLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEltcGxpY2l0VGFpbG9yaW5nKCkgeworICAgICAgICBTdHJpbmcgcnVsZXNbXSA9IHsgIiZbYmVmb3JlIDFdXHU0ZTAwIDwgYiA8IGMgJltiZWZvcmUgMV1cdTRlMDAgPCBkIDwgZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiJlx1NGUwMCA8IGEgPDw8IEEgPCBiIDw8PCBCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICImW2JlZm9yZSAxXVx1NGUwMCA8IFx1NGUwMSA8IFx1NGUwMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiJltiZWZvcmUgMV1cdTRlMDEgPCBcdTRlMDIgPCBcdTRlMDMiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmcgY2FzZXNbXVtdID0geworICAgICAgICAgICAgeyAiZCIsICJlIiwgImIiLCAiYyIsICJcdTRlMDAifSwgCisgICAgICAgICAgICB7ICJcdTRlMDAiLCAiYSIsICJBIiwgImIiLCAiQiIsICJcdTRlMDEifSwKKyAgICAgICAgICAgIHsgIlx1NGUwMSIsICJcdTRlMDIiLCAiXHU0ZTAwIn0sCisgICAgICAgICAgICB7ICJcdTRlMDIiLCAiXHU0ZTAzIiwgIlx1NGUwMSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICAKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXNbaV0sIGNhc2VzW2ldKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RkNEUHJvYmxlbSgpIHsKKyAgICAgICAgU3RyaW5nIHMxID0gIlx1MDQzMFx1MDMwNlx1MDMyNSI7CisgICAgICAgIFN0cmluZyBzMiA9ICJcdTA0RDFcdTAzMjUiOworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJDYW4ndCBjcmVhdGUgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgczEsIHMyLCAwKTsKKyAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHMxLCBzMiwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFbXB0eVJ1bGUoKSB7CisgICAgICAgIFN0cmluZyBydWxleiA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxleik7CisgICAgICAgICAgICBsb2dsbigicnVsZToiICsgY29sbC5nZXRSdWxlcygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogc3VwZXJzZWRlZCBieSBUZXN0QmVmb3JlUGlueWluLCBzaW5jZSBDaGluZXNlIGNvbGxhdGlvbiBydWxlcyBoYXZlIGNoYW5nZWQgKi8KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RKNzg0KCkgeworICAgICAgICBTdHJpbmdbXSBkYXRhID0geworICAgICAgICAgICAgIkEiLCAiXHUwMTAxIiwgIlx1MDBlMSIsICJcdTAxY2UiLCAiXHUwMGUwIiwKKyAgICAgICAgICAgICJFIiwgIlx1MDExMyIsICJcdTAwZTkiLCAiXHUwMTFiIiwgIlx1MDBlOCIsCisgICAgICAgICAgICAiSSIsICJcdTAxMmIiLCAiXHUwMGVkIiwgIlx1MDFkMCIsICJcdTAwZWMiLAorICAgICAgICAgICAgIk8iLCAiXHUwMTRkIiwgIlx1MDBmMyIsICJcdTAxZDIiLCAiXHUwMGYyIiwKKyAgICAgICAgICAgICJVIiwgIlx1MDE2YiIsICJcdTAwZmEiLCAiXHUwMWQ0IiwgIlx1MDBmOSIsCisgICAgICAgICAgICAiXHUwMGZjIiwgIlx1MDFkNiIsICJcdTAxZDgiLCAiXHUwMWRhIiwgIlx1MDFkYyIKKyAgICAgICAgfTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiemgiLCAiIiksIGRhdGEpOworICAgIH0KKyAgICAqLworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKODE1KCkgeworICAgICAgICBTdHJpbmcgZGF0YVtdID0geworICAgICAgICAgICAgImFhIiwKKyAgICAgICAgICAgICJBYSIsCisgICAgICAgICAgICAiYWIiLAorICAgICAgICAgICAgIkFiIiwKKyAgICAgICAgICAgICJhZCIsCisgICAgICAgICAgICAiQWQiLAorICAgICAgICAgICAgImFlIiwKKyAgICAgICAgICAgICJBZSIsCisgICAgICAgICAgICAiXHUwMGU2IiwKKyAgICAgICAgICAgICJcdTAwYzYiLAorICAgICAgICAgICAgImFmIiwKKyAgICAgICAgICAgICJBZiIsCisgICAgICAgICAgICAiYiIsCisgICAgICAgICAgICAiQiIKKyAgICAgICAgfTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiZnIiLCAiIiksIGRhdGEpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbYmFja3dhcmRzIDJdJkE8PFx1MDBlNi9lPDw8XHUwMGM2L0UiLCBkYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEozMDg3KCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlW10gPSB7IiZoPEgmQ0g9XHUwNDI3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJkNIPVx1MDQyNyZoPEgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICImQ0g9XHUwNDI3In07IAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciByYmMgPSBudWxsOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjE7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByYmMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZVtpXSk7IAorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGl0ZXIxID0gcmJjLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiQ0giKTsgCisgICAgICAgICAgICBpdGVyMiA9IHJiYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIlx1MDQyNyIpOworICAgICAgICAgICAgaW50IGNlMSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICBpbnQgY2UyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIHdoaWxlIChjZTEgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUgorICAgICAgICAgICAgICAgICAgICYmIGNlMiAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgY2UxID0gaXRlcjEubmV4dCgpOworICAgICAgICAgICAgICAgIGNlMiA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2UxICE9IGNlMikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2VuZXJhdGluZyBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHRoZSBydWxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBydWxlW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNIICE9IFxcdTA0MjciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgRG9udFRlc3RKODMxKCkgeyAvLyBMYXR2aWFuIGRvZXMgbm90IHVzZSB1cHBlciBmaXJzdAorICAgICAgICBTdHJpbmdbXSBkYXRhID0geworICAgICAgICAgICAgIkkiLAorICAgICAgICAgICAgImkiLAorICAgICAgICAgICAgIlkiLAorICAgICAgICAgICAgInkiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImx2IiwgIiIpLCBkYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJlZm9yZSgpIHsKKyAgICAgICAgU3RyaW5nIGRhdGFbXSA9IHsKKyAgICAgICAgICAgICJcdTAxMDEiLCAiXHUwMGUxIiwgIlx1MDFjZSIsICJcdTAwZTAiLCAiQSIsCisgICAgICAgICAgICAiXHUwMTEzIiwgIlx1MDBlOSIsICJcdTAxMWIiLCAiXHUwMGU4IiwgIkUiLAorICAgICAgICAgICAgIlx1MDEyYiIsICJcdTAwZWQiLCAiXHUwMWQwIiwgIlx1MDBlYyIsICJJIiwKKyAgICAgICAgICAgICJcdTAxNGQiLCAiXHUwMGYzIiwgIlx1MDFkMiIsICJcdTAwZjIiLCAiTyIsCisgICAgICAgICAgICAiXHUwMTZiIiwgIlx1MDBmYSIsICJcdTAxZDQiLCAiXHUwMGY5IiwgIlUiLAorICAgICAgICAgICAgIlx1MDFkNiIsICJcdTAxZDgiLCAiXHUwMWRhIiwgIlx1MDFkYyIsICJcdTAwZmMiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZbYmVmb3JlIDFdYTxcdTAxMDE8XHUwMGUxPFx1MDFjZTxcdTAwZTAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJltiZWZvcmUgMV1lPFx1MDExMzxcdTAwZTk8XHUwMTFiPFx1MDBlOCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICImW2JlZm9yZSAxXWk8XHUwMTJiPFx1MDBlZDxcdTAxZDA8XHUwMGVjIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiZbYmVmb3JlIDFdbzxcdTAxNGQ8XHUwMGYzPFx1MDFkMjxcdTAwZjIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJltiZWZvcmUgMV11PFx1MDE2YjxcdTAwZmE8XHUwMWQ0PFx1MDBmOSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICImdTxcdTAxZDY8XHUwMWQ4PFx1MDFkYTxcdTAxZGM8XHUwMGZjIiwgZGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZHVuZGFudFJ1bGVzKCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgIC8vIiYgYSA8PDwgYiA8PDwgYyA8PCBkIDw8PCBlJiBbYmVmb3JlIDFdIGUgPDw8IHgiLAorICAgICAgICAgICAgIiYgYiA8PDwgYyA8PDwgZCA8PCBlIDw8PCBmJiBbYmVmb3JlIDNdIGYgPDw8IHgiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSYgW2JlZm9yZSAxXSBlIDw8PCB4IiwKKyAgICAgICAgICAgICImIGEgPCBiIDwgYyA8IGQmIFtiZWZvcmUgMV0gYyA8IG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSYgW2JlZm9yZSAzXSBlIDw8PCB4IiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUmIFtiZWZvcmUgMl0gZSA8PDwgeCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PCBkIDw8PCBlIDw8PCBmIDwgZyYgW2JlZm9yZSAxXSBnIDwgeCIsCisgICAgICAgICAgICAiJiBhIDw8PCBiIDw8IGMgPCBkJiBhIDwgbSIsCisgICAgICAgICAgICAiJmE8Yjw8Ylx1MDMwMSAmejxiIiwKKyAgICAgICAgICAgICImejxtPDw8cTw8PG0iLAorICAgICAgICAgICAgIiZ6PDw8bTxxPDw8bSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiByIDwgYyIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiByIDwgYyIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiBjIDwgbSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiBhIDwgbSIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkUnVsZXMgPSB7CisgICAgICAgICAgICAvLyImXHUyMDg5PDw8eCIsCisgICAgICAgICAgICAiJlx1MDI1Mjw8PHgiLAorICAgICAgICAgICAgIiYgYSA8PDwgeCA8IGIgPDw8IGMgPDwgZCA8PDwgZSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IG0gPCBjIDwgZCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PCBkIDw8PCB4IDw8PCBlIiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8PCB4IDw8IGQgPDw8IGUiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSA8PDwgZiA8IHggPCBnIiwKKyAgICAgICAgICAgICImIGEgPDw8IGIgPDwgYyA8IG0gPCBkIiwKKyAgICAgICAgICAgICImYTxiXHUwMzAxICZ6PGIiLAorICAgICAgICAgICAgIiZ6PHE8PDxtIiwKKyAgICAgICAgICAgICImejxxPDw8bSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGQmIHIgPCBjIiwKKyAgICAgICAgICAgICImIGEgPCBiIDwgZCYgciA8IGMiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgbSA8IGQiLAorICAgICAgICAgICAgIiYgYSA8IG0gPCBiIDwgYyA8IGQiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXVtdIHRlc3RkYXRhID0geworICAgICAgICAgICAgLy8gICAgICAgICAgICB7Ilx1MjA4OSIsICJ4In0sCisgICAgICAgICAgICB7Ilx1MDI1MiIsICJ4In0sCisgICAgICAgICAgICB7ImEiLCAieCIsICJiIiwgImMiLCAiZCIsICJlIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJtIiwgImMiLCAiZCJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJkIiwgIngiLCAiZSJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJ4IiwgImQiLCAiZSJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJ4IiwgImcifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImMiLCAibSIsICJkIn0sCisgICAgICAgICAgICB7ImEiLCAiYlx1MDMwMSIsICJ6IiwgImIifSwKKyAgICAgICAgICAgIHsieiIsICJxIiwgIm0ifSwKKyAgICAgICAgICAgIHsieiIsICJxIiwgIm0ifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImQifSwKKyAgICAgICAgICAgIHsiciIsICJjIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJjIiwgIm0iLCAiZCJ9LAorICAgICAgICAgICAgeyJhIiwgIm0iLCAiYiIsICJjIiwgImQifQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHJseiA9ICIiOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpPHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsb2dsbigidGVzdGluZyBydWxlICIgKyBydWxlc1tpXSArICIsIGV4cGVjdGVkIHRvIGJlIiArIGV4cGVjdGVkUnVsZXNbaV0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBybHogPSBydWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVkdW5kYW50ID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgcmx6ID0gZXhwZWN0ZWRSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVzdWx0aW5nID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVkdW5kYW50IFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3JlZHVuZGFudCkuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVzdWx0aW5nIFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3Jlc3VsdGluZykuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ2Fubm90IGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXN0QWdhaW5zdFVDQShjcmVzdWx0aW5nLCBjcmVkdW5kYW50LCAiZXhwZWN0ZWQiLCBUUlVFLCAmc3RhdHVzKTsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ0ZXN0aW5nIHVzaW5nIGRhdGFcbiIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgdGVzdGRhdGFbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBhbnNpb25TeW50YXgoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAgICAgIiZBRSA8PDwgYSA8PCBiIDw8PCBjICZkIDw8PCBmIiwKKyAgICAgICAgICAgICImQUUgPDw8IGEgPDw8IGIgPDwgYyA8PCBkIDwgZSA8IGYgPDw8IGciLAorICAgICAgICAgICAgIiZBRSA8PDwgQiA8PDwgQyAvIEQgPDw8IEYiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBleHBlY3RlZFJ1bGVzID0geworICAgICAgICAgICAgIiZBIDw8PCBhIC8gRSA8PCBiIC8gRSA8PDwgYyAvRSAgJmQgPDw8IGYiLAorICAgICAgICAgICAgIiZBIDw8PCBhIC8gRSA8PDwgYiAvIEUgPDwgYyAvIEUgPDwgZCAvIEUgPCBlIDwgZiA8PDwgZyIsCisgICAgICAgICAgICAiJkEgPDw8IEIgLyBFIDw8PCBDIC8gRUQgPDw8IEYgLyBFIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0ZGF0YSA9IHsKKyAgICAgICAgICAgIHsiQUUiLCAiYSIsICJiIiwgImMifSwKKyAgICAgICAgICAgIHsiQUUiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyJ9LAorICAgICAgICAgICAgeyJBRSIsICJCIiwgIkMifSAvLyAvIEVEIDw8PCBGIC8gRSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTxydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gbG9nbG4oInRlc3RpbmcgcnVsZSAiICsgcnVsZXNbaV0gKyAiLCBleHBlY3RlZCB0byBiZSAiICsgZXhwZWN0ZWRSdWxlc1tpXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBybHogPSBydWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVkdW5kYW50ID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgcmx6ID0gZXhwZWN0ZWRSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVzdWx0aW5nID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVkdW5kYW50IFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3JlZHVuZGFudCkuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVzdWx0aW5nIFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3Jlc3VsdGluZykuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB0ZXN0QWdhaW5zdFVDQSBzdGlsbCBkb2Vzbid0IGhhbmRsZSBleHBhbnNpb25zIGNvcnJlY3RseSwgc28gdGhpcyBpcyBub3QgcnVuIAorICAgICAgICAgICAgLy8gYXMgYSBoYXJkIGVycm9yIHRlc3QsIGJ1dCBvbmx5IGluIGluZm9ybWF0aW9uIG1vZGUgCisgICAgICAgICAgICAvL3Rlc3RBZ2FpbnN0VUNBKGNyZXN1bHRpbmcsIGNyZWR1bmRhbnQsICJleHBlY3RlZCIsIEZBTFNFLCAmc3RhdHVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbG9nbG4oInRlc3RpbmcgdXNpbmcgZGF0YSIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgdGVzdGRhdGFbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhhbmd1bFRhaWxvcmluZygpIHsKKyAgICAgICAgU3RyaW5nW10ga29yZWFuRGF0YSA9IHsKKyAgICAgICAgICAgICJcdWFjMDAiLCAiXHU0ZjNkIiwgIlx1NGY3MyIsICJcdTUwNDciLCAiXHU1MGY5IiwgIlx1NTJhMCIsICJcdTUzZWYiLCAiXHU1NDc1IiwKKyAgICAgICAgICAgICJcdTU0ZTUiLCAiXHU1NjA5IiwgIlx1NWFjMSIsICJcdTViYjYiLCAiXHU2Njg3IiwgIlx1NjdiNiIsICJcdTY3YjciLCAiXHU2N2VmIiwKKyAgICAgICAgICAgICJcdTZiNGMiLCAiXHU3M2MyIiwgIlx1NzVjMiIsICJcdTdhM2MiLCAiXHU4MmRiIiwgIlx1ODMwNCIsICJcdTg4NTciLCAiXHU4ODg4IiwKKyAgICAgICAgICAgICJcdThhMzYiLCAiXHU4Y2M4IiwgIlx1OGRjZiIsICJcdThlZmIiLCAiXHU4ZmU2IiwgIlx1OTlkNSIsCisgICAgICAgICAgICAiXHU0RUVFIiwgIlx1NTBBMiIsICJcdTU0OTYiLCAiXHU1NEZGIiwgIlx1NTc3NyIsICJcdTVCOEEiLCAiXHU2NTlEIiwgIlx1Njk4RSIsCisgICAgICAgICAgICAiXHU2QTlGIiwgIlx1NzNDOCIsICJcdTdCMzMiLCAiXHU4MDFFIiwgIlx1ODIzOCIsICJcdTg0NkQiLCAiXHU4QjBDIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0KKyAgICAgICAgICAgICImXHVhYzAwIDw8PCBcdTRmM2QgPDw8IFx1NGY3MyA8PDwgXHU1MDQ3IDw8PCBcdTUwZjkgPDw8IFx1NTJhMCA8PDwgXHU1M2VmIDw8PCBcdTU0NzUgIgorICAgICAgICAgICAgKyAiPDw8IFx1NTRlNSA8PDwgXHU1NjA5IDw8PCBcdTVhYzEgPDw8IFx1NWJiNiA8PDwgXHU2Njg3IDw8PCBcdTY3YjYgPDw8IFx1NjdiNyA8PDwgXHU2N2VmICIKKyAgICAgICAgICAgICsgIjw8PCBcdTZiNGMgPDw8IFx1NzNjMiA8PDwgXHU3NWMyIDw8PCBcdTdhM2MgPDw8IFx1ODJkYiA8PDwgXHU4MzA0IDw8PCBcdTg4NTcgPDw8IFx1ODg4OCAiCisgICAgICAgICAgICArICI8PDwgXHU4YTM2IDw8PCBcdThjYzggPDw8IFx1OGRjZiA8PDwgXHU4ZWZiIDw8PCBcdThmZTYgPDw8IFx1OTlkNSAiCisgICAgICAgICAgICArICI8PDwgXHU0RUVFIDw8PCBcdTUwQTIgPDw8IFx1NTQ5NiA8PDwgXHU1NEZGIDw8PCBcdTU3NzcgPDw8IFx1NUI4QSA8PDwgXHU2NTlEIDw8PCBcdTY5OEUgIgorICAgICAgICAgICAgKyAiPDw8IFx1NkE5RiA8PDwgXHU3M0M4IDw8PCBcdTdCMzMgPDw8IFx1ODAxRSA8PDwgXHU4MjM4IDw8PCBcdTg0NkQgPDw8IFx1OEIwQyI7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcmx6ID0gcnVsZXM7CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Iocmx6KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3Igd2l0aCBydWxlcyIgKyBydWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gbG9nbG4oIlVzaW5nIHN0YXJ0IG9mIGtvcmVhbiBydWxlc1xuIik7CisgICAgICAgIGdlbmVyaWNPcmRlcmluZ1Rlc3QoY29sbCwga29yZWFuRGF0YSk7CisgICAgICAgIC8vIGxvZ2xuKCJTZXR0aW5nIGphbW9TcGVjaWFsIHRvIFRSVUUgYW5kIHRlc3Rpbmcgb25jZSBtb3JlXG4iKTsKKyAgICAgICAgCisgICAgICAgIC8vIGNhbid0IHNldCBqYW1vIGluIGljdTRqIAorICAgICAgICAvLyAoKFVDQVRhYmxlSGVhZGVyICopY29sbC0+aW1hZ2UpLT5qYW1vU3BlY2lhbCA9IFRSVUU7IC8vIGRvbid0IHRyeSB0aGlzIGF0IGhvbWUKKyAgICAgICAgLy8gZ2VuZXJpY09yZGVyaW5nVGVzdChjb2xsLCBrb3JlYW5EYXRhKTsKKyAgICAgICAgCisgICAgICAgIC8vIG5vIHN1Y2ggbG9jYWxlIGluIGljdTRqCisgICAgICAgIC8vIGxvZ2xuKCJVc2luZyBrb19fTE9UVVMgbG9jYWxlXG4iKTsKKyAgICAgICAgLy8gZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgia29fX0xPVFVTIiwgIiIpLCBrb3JlYW5EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5jcmVtZW50YWxOb3JtYWxpemUoKSB7CisgICAgICAgIENvbGxhdG9yICAgICAgICBjb2xsID0gbnVsbDsKKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgMSAuLi4uIik7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIFRlc3QgMS4gIFJ1biB2ZXJ5IGxvbmcgdW5ub3JtYWxpemVkIHN0cmluZ3MsIHRvIGZvcmNlIG92ZXJmbG93IG9mKi8KKyAgICAgICAgICAgIC8qICAgICAgICAgIG1vc3QgYnVmZmVycyBhbG9uZyB0aGUgd2F5LiovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNhbm5vdCBnZXQgZGVmYXVsdCBpbnN0YW5jZSEiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIGJhc2VBICAgICA9MHg0MTsKKyAgICAgICAgICAgIGNoYXIgY2NNaXhbXSAgID0gezB4MzE2LCAweDMyMSwgMHgzMDB9OworICAgICAgICAgICAgaW50ICAgICAgICAgIHNMZW47CisgICAgICAgICAgICBpbnQgICAgICAgICAgaTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJBID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ckIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbGwuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc0xlbiA9IDEwMDA7IHNMZW48MTAwMTsgc0xlbisrKSB7CisgICAgICAgICAgICAgICAgc3RyQS5kZWxldGUoMCwgc3RyQS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgc3RyQS5hcHBlbmQoYmFzZUEpOworICAgICAgICAgICAgICAgIHN0ckIuZGVsZXRlKDAsIHN0ckIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHN0ckIuYXBwZW5kKGJhc2VBKTsKKyAgICAgICAgICAgICAgICBmb3IgKGk9MTsgaTwgc0xlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0ckEuYXBwZW5kKGNjTWl4W2kgJSAzXSk7CisgICAgICAgICAgICAgICAgICAgIHN0ckIuaW5zZXJ0KDEsIGNjTWl4W2kgJSAzXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOyAgIC8vIERvIHRlc3Qgd2l0aCBkZWZhdWx0IHN0cmVuZ3RoLCB3aGljaCBydW5zCisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ckEudG9TdHJpbmcoKSwgc3RyQi50b1N0cmluZygpLCAwKTsgICAgLy8gICBvcHRpbWl6ZWQgZnVuY3Rpb25zIGluIHRoZSBpbXBsCisgICAgICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOyAgIC8vIERvIGFnYWluIHdpdGggdGhlIHNsb3csIGdlbmVyYWwgaW1wbC4KKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyQS50b1N0cmluZygpLCBzdHJCLnRvU3RyaW5nKCksIDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qICBUZXN0IDI6ICBOb24tbm9ybWFsIHNlcXVlbmNlIGluIGEgc3RyaW5nIHRoYXQgZXh0ZW5kcyB0byB0aGUgbGFzdCBjaGFyYWN0ZXIqLworICAgICAgICAvKiAgICAgICAgIG9mIHRoZSBzdHJpbmcuICBDaGVja3MgYSBjb3VwbGUgb2YgZWRnZSBjYXNlcy4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCAyIC4uLi4iKTsgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHJBID0gIkFBXHUwMzAwXHUwMzE2IjsKKyAgICAgICAgICAgIFN0cmluZyBzdHJCID0gIkFcdTAwYzBcdTAzMTYiOworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgc3RyQSwgc3RyQiwgMCk7CisgICAgICAgIH0KKyAgICAgICAgLyogIFRlc3QgMzogIE5vbi1ub3JtYWwgc2VxdWVuY2UgaXMgdGVybWluYXRlZCBieSBhIHN1cnJvZ2F0ZSBwYWlyLiovCisgICAgICAgIC8vIGxvZ2xuKCJUZXN0IDMgLi4uLiIpOworICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3RyQSA9ICJBQVx1MDMwMFx1MDMxNlx1RDgwMFx1REMwMSI7CisgICAgICAgICAgICBTdHJpbmcgc3RyQiA9ICJBXHUwMGMwXHUwMzE2XHVEODAwXHVEQzAwIjsKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHN0ckEsIHN0ckIsIDEpOworICAgICAgICB9CisgICAgICAgIC8qICBUZXN0IDQ6ICBJbWJlZGRlZCBudWxscyBkbyBub3QgdGVybWluYXRlIGEgc3RyaW5nIHdoZW4gbGVuZ3RoIGlzIHNwZWNpZmllZC4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCA0IC4uLi4iKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogbm90IGEgdmFsaWQgdGVzdCBzaW5jZSBzdHJpbmcgYXJlIG51bGwtdGVybWluYXRlZCBpbiBqYXZheworICAgICAgICAgY2hhciBzdHJBW10gPSB7MHg0MSwgMHgwMCwgMHg0Mn07CisgICAgICAgICBjaGFyIHN0ckJbXSA9IHsweDQxLCAweDAwLCAweDAwfTsKKyAgICAgICAgICAgIAorICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEpLCBuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgIGlmIChyZXN1bHQgIT0gMSkgeworICAgICAgICAgZXJybG4oIkVSUk9SIDEgaW4gdGVzdCA0XG4iKTsKKyAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgMSksIG5ldyBTdHJpbmcoc3RyQiwgMCwgMSkpOworICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICBlcnJsbigiRVJST1IgMSBpbiB0ZXN0IDRcbiIpOworICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleUEgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckEpKTsKKyAgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5QiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQikpOworICAgICAgICAgICAgCisgICAgICAgICBpbnQgciA9IHNvcnRLZXlBLmNvbXBhcmVUbyhzb3J0S2V5Qik7CisgICAgICAgICBpZiAociA8PSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgNCBpbiB0ZXN0IDRcbiIpOworICAgICAgICAgfQorICAgIAorICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgc29ydEtleUEgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckEpKTsKKyAgICAgICAgIHNvcnRLZXlCID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJCKSk7CisgICAgCisgICAgICAgICByID0gc29ydEtleUEuY29tcGFyZVRvKHNvcnRLZXlCKTsKKyAgICAgICAgIGlmIChyIDw9IDApIHsKKyAgICAgICAgIGVycmxuKCJFcnJvciA3IGluIHRlc3QgNFxuIik7CisgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAvKiAgVGVzdCA1OiAgTnVsbCBjaGFyYWN0ZXJzIGluIG5vbi1ub3JtYWwgc291cmNlIHN0cmluZ3MuKi8KKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgNSAuLi4uIik7CisgICAgICAgIC8qCisgICAgICAgICAqIG5vdCBhIHZhbGlkIHRlc3Qgc2luY2Ugc3RyaW5nIGFyZSBudWxsLXRlcm1pbmF0ZWQgaW4gamF2YXsKKyAgICAgICAgIHsKKyAgICAgICAgIGNoYXIgc3RyQVtdID0gezB4NDEsIDB4NDEsIDB4MzAwLCAweDMxNiwgMHgwMCwgMHg0Mix9OworICAgICAgICAgY2hhciBzdHJCW10gPSB7MHg0MSwgMHg0MSwgMHgzMDAsIDB4MzE2LCAweDAwLCAweDAwLH07CisgICAgICAgICAgIAorICAgIAorICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEsIDAsIDYpLCBuZXcgU3RyaW5nKHN0ckIsIDAsIDYpKTsKKyAgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgICBlcnJsbigiRVJST1IgMSBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgfQorICAgICAgICAgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgNCksIG5ldyBTdHJpbmcoc3RyQiwgMCwgNCkpOworICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICBlcnJsbigiRVJST1IgMiBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgfQorICAgIAorICAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgIGludCByID0gc29ydEtleUEuY29tcGFyZVRvKHNvcnRLZXlCKTsKKyAgICAgICAgIGlmIChyIDw9IDApIHsKKyAgICAgICAgIGVycmxuKCJFcnJvciA0IGluIHRlc3QgNVxuIik7CisgICAgICAgICB9CisgICAgCisgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgICAgICAKKyAgICAgICAgIHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICBzb3J0S2V5QiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQikpOworICAgICAgICAgciA9IHNvcnRLZXlBLmNvbXBhcmVUbyhzb3J0S2V5Qik7CisgICAgICAgICBpZiAociA8PSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgNyBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgLyogIFRlc3QgNjogIE51bGwgY2hhcmFjdGVyIGFzIGJhc2Ugb2YgYSBub24tbm9ybWFsIGNvbWJpbmluZyBzZXF1ZW5jZS4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCA2IC4uLi4iKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogbm90IGEgdmFsaWQgdGVzdCBzaW5jZSBzdHJpbmcgYXJlIG51bGwtdGVybWluYXRlZCBpbiBqYXZheworICAgICAgICAgeworICAgICAgICAgY2hhciBzdHJBW10gPSB7MHg0MSwgMHgwLCAweDMwMCwgMHgzMTYsIDB4NDEsIDB4MzAyLH07CisgICAgICAgICBjaGFyIHN0ckJbXSA9IHsweDQxLCAweDAsIDB4MzAyLCAweDMxNiwgMHg0MSwgMHgzMDAsfTsKKyAgICAKKyAgICAgICAgIGludCByZXN1bHQgPSBjb2xsLmNvbXBhcmUobmV3IFN0cmluZyhzdHJBLCAwLCA1KSwgbmV3IFN0cmluZyhzdHJCLCAwLCA1KSk7CisgICAgICAgICBpZiAocmVzdWx0ICE9IC0xKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgMSBpbiB0ZXN0IDZcbiIpOworICAgICAgICAgfQorICAgICAgICAgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgMSksIG5ldyBTdHJpbmcoc3RyQiwgMCwgMSkpOworICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgMiBpbiB0ZXN0IDZcbiIpOworICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHJhY3Rpb24oKSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3RydWxlcyA9IHsKKyAgICAgICAgICAgICImQSA9IEFCIC8gQiIsCisgICAgICAgICAgICAiJkEgPSBBXFx1MDMwNi9cXHUwMzA2IiwKKyAgICAgICAgICAgICImYyA9IGNoIC8gaCIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RkYXRhID0geworICAgICAgICAgICAgIkFCIiwgIkFCIiwgIkFcdTAzMDYiLCAiY2giCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RkYXRhMiA9IHsKKyAgICAgICAgICAgICJcdTAwNjNcdTAwNjciLAorICAgICAgICAgICAgIlx1MDA2M1x1MDA2OCIsCisgICAgICAgICAgICAiXHUwMDYzXHUwMDZDIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gdGVzdHJ1bGVzMyA9IHsKKyAgICAgICAgICAgICImeiA8IHh5eiAmeHl6dyA8PCBCIiwKKyAgICAgICAgICAgICImeiA8IHh5eiAmeHl6IDw8IEIgLyB3IiwKKyAgICAgICAgICAgICImeiA8IGNoICZhY2htIDw8IEIiLAorICAgICAgICAgICAgIiZ6IDwgY2ggJmEgPDwgQiAvIGNobSIsCisgICAgICAgICAgICAiJlx1ZDgwMFx1ZGMwMHcgPDwgQiIsCisgICAgICAgICAgICAiJlx1ZDgwMFx1ZGMwMCA8PCBCIC8gdyIsCisgICAgICAgICAgICAiJmFcdWQ4MDBcdWRjMDBtIDw8IEIiLAorICAgICAgICAgICAgIiZhIDw8IEIgLyBcdWQ4MDBcdWRjMDBtIiwKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgIGNvbGwgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RydWxlcy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMSA9IG51bGw7CisgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICAvLyBsb2dsbigiUnVsZSAiICsgdGVzdHJ1bGVzW2ldICsgIiBmb3IgdGVzdGluZ1xuIik7CisgICAgICAgICAgICBTdHJpbmcgcnVsZSA9IHRlc3RydWxlc1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQgIiArIHRlc3RydWxlc1tpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpdGVyMSA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3RkYXRhW2ldKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBpdGVyYXRvciBjcmVhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChqIDwgMikgeworICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMjsKKyAgICAgICAgICAgICAgICBpbnQgY2U7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaXRlcjIgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcudmFsdWVPZih0ZXN0ZGF0YVtpXS5jaGFyQXQoaikpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gaXRlcmF0b3IgY3JlYXRpb24gZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjZSA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlcjEubmV4dCgpICE9IGNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uIGVsZW1lbnRzIGluIGNvbnRyYWN0aW9uIHNwbGl0IGRvZXMgbm90IG1hdGNoXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjZSA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaiArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpdGVyMS5uZXh0KCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gZWxlbWVudHMgbm90IGV4aGF1c3RlZFxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlID0gIiYgYSA8IGIgPCBjIDwgY2ggPCBkICYgYyA9IGNoIC8gaCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbm5vdCBjcmVhdGUgcnVsZWJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjb2xsLmNvbXBhcmUodGVzdGRhdGEyWzBdLCB0ZXN0ZGF0YTJbMV0pICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgIiArIHRlc3RkYXRhMlswXSArICIgPCAiICsgdGVzdGRhdGEyWzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29sbC5jb21wYXJlKHRlc3RkYXRhMlsxXSwgdGVzdGRhdGEyWzJdKSAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkICIgKyB0ZXN0ZGF0YTJbMV0gKyAiIDwgIiArIHRlc3RkYXRhMlsyXSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cnVsZXMzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciAgICAgICAgICBjb2xsMSwgY29sbDI7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjEsIGl0ZXIyOworICAgICAgICAgICAgY2hhciAgICAgICAgICAgICAgIGNoID0gMHgwMDQyOworICAgICAgICAgICAgaW50ICAgICAgICAgICAgY2U7CisgICAgICAgICAgICBydWxlID0gdGVzdHJ1bGVzM1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbDEgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBjYW5ub3QgY3JlYXRlIHJ1bGViYXNlZCBjb2xsYXRvciwgcnVsZToiICsgcnVsZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZSA9IHRlc3RydWxlczNbaSArIDFdOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb2xsMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZCAiICsgdGVzdHJ1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXIxID0gY29sbDEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFN0cmluZy52YWx1ZU9mKGNoKSk7CisgICAgICAgICAgICAgICAgaXRlcjIgPSBjb2xsMi5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nLnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBpdGVyYXRvciBjcmVhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNlID0gaXRlcjEubmV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGlmIChjZSAhPSBpdGVyMi5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNFcyBkb2VzIG5vdCBtYXRjaFxuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2UgPSBpdGVyMS5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXRlcjIubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ0VzIG5vdCBleGhhdXN0ZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwYW5zaW9uKCkgeworICAgICAgICBTdHJpbmdbXSB0ZXN0cnVsZXMgPSB7CisgICAgICAgICAgICAiJkogPDwgSyAvIEIgJiBLIDw8IE0iLAorICAgICAgICAgICAgIiZKIDw8IEsgLyBCIDw8IE0iCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RkYXRhID0geworICAgICAgICAgICAgIkpBIiwgIk1BIiwgIktBIiwgIktDIiwgIkpDIiwgIk1DIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIENvbGxhdG9yICBjb2xsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGUgIiArIHRlc3RydWxlc1tpXSArICIgZm9yIHRlc3RpbmdcbiIpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSB0ZXN0cnVsZXNbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkICIgKyB0ZXN0cnVsZXNbaV0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA1OyBqICsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RkYXRhW2pdLCB0ZXN0ZGF0YVtqICsgMV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHJhY3Rpb25FbmRDb21wYXJlKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlcyA9ICImYj1jaCI7CisgICAgICAgIFN0cmluZyBzcmMgPSAiYmVjIjsKKyAgICAgICAgU3RyaW5nIHRndCA9ICJiZWNoIjsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkICIgKyBydWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHNyYywgdGd0LCAxKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZVJ1bGVCYXNlZENvbGxhdG9ycygpIHsKKyAgICAgICAgaWYgKGdldEluY2x1c2lvbigpIDwgNSkgeworICAgICAgICAgICAgLy8gbm90IHNlcmlvdXMgZW5vdWdoIHRvIHJ1biB0aGlzCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlIGxvY2FsZVtdID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBTdHJpbmcgcHJldnJ1bGUgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIExvY2FsZSBsID0gbG9jYWxlW2ldOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsbCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNvbGxrZXkgPSByYi5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvZGVmYXVsdCIpOyAKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBlbGVtZW50cyA9IHJiLmdldFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy8iICsgY29sbGtleSk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBydWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgT2JqZWN0W11bXSBjb2xsZGF0YSA9IChPYmplY3RbXVtdKWVsZW1lbnRzOworICAgICAgICAgICAgICAgICAgLy8gJSVDb2xsYXRpb25CaW4KKyAgICAgICAgICAgICAgICAgIGlmIChjb2xsZGF0YVswXVsxXSBpbnN0YW5jZW9mIGJ5dGVbXSl7CisgICAgICAgICAgICAgICAgICBydWxlID0gKFN0cmluZyljb2xsZGF0YVsxXVsxXTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgcnVsZSA9IChTdHJpbmcpY29sbGRhdGFbMF1bMV07CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBydWxlID0gZWxlbWVudHMuZ2V0U3RyaW5nKCJTZXF1ZW5jZSIpOyAgIAorCisgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sMSA9IAorICAgICAgICAgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobCk7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlLmVxdWFscyhjb2wxLmdldFJ1bGVzKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJSdWxlcyBzaG91bGQgYmUgdGhlIHNhbWUgaW4gdGhlIFJ1bGVCYXNlZENvbGxhdG9yIGFuZCBMb2NhbGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUgIT0gbnVsbCAmJiBydWxlLmxlbmd0aCgpID4gMCAKKyAgICAgICAgICAgICAgICAgICAgJiYgIXJ1bGUuZXF1YWxzKHByZXZydWxlKSkgeworICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2wyID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbDEuZXF1YWxzKGNvbDIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgUnVsZUJhc2VkQ29sbGF0b3IgZnJvbSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGUgcnVsZXMgZm9yICIgKyBsLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZXZydWxlID0gcnVsZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJFcnJvciByZXRyaWV2aW5nIHJlc291cmNlIGJ1bmRsZSBmb3IgdGVzdGluZzogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE9wdGltaXplKCkgeworICAgICAgICAvKiB0aGlzIGlzIG5vdCByZWFsbHkgYSB0ZXN0IC0ganVzdCB0cnlpbmcgb3V0IAorICAgICAgICAgKiB3aGV0aGVyIGNvcHlpbmcgb2YgVUNBIGNvbnRlbnRzIHdpbGwgZmFpbCAKKyAgICAgICAgICogQ2Fubm90IHJlYWxseSB0ZXN0LCBzaW5jZSB0aGUgZnVuY3Rpb25hbGl0eSAKKyAgICAgICAgICogcmVtYWlucyB0aGUgc2FtZS4KKyAgICAgICAgICovCisgICAgICAgIFN0cmluZyBydWxlc1tdID0geworICAgICAgICAgICAgIltvcHRpbWl6ZSBbXFx1QUMwMC1cXHVEN0ZGXV0iCisgICAgICAgIH07CisgICAgICAgIFN0cmluZyBkYXRhW11bXSA9IHsKKyAgICAgICAgICAgIHsgImEiLCAiYiJ9CisgICAgICAgIH07CisgICAgICAgIGludCBpID0gMDsKKyAgICAKKyAgICAgICAgZm9yKGkgPSAwOyBpPHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0gICAgCisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdElkZW50aWNhbENvbXBhcmUoKSAKKyAgICB7ICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCAKKyAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJiBcdUQ4MDBcdURDMDAgPSBcdUQ4MDBcdURDMDEiKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHJBID0gIkFBXHUwMzAwXHUwMzE2XHVEODAwXHVEQzAxIjsKKyAgICAgICAgICAgIFN0cmluZyBzdHJCID0gIkFcdTAwYzBcdTAzMTZcdUQ4MDBcdURDMDAiOworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbCwgc3RyQSwgc3RyQiwgMSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RNZXJnZVNvcnRLZXlzKCkgCisgICAgeworICAgICAgICBTdHJpbmcgY2FzZXNbXSA9IHsiYWJjIiwgImFiY2QiLCAiYWJjZGUifTsKKyAgICAgICAgU3RyaW5nIHByZWZpeCA9ICJmb28iOworICAgICAgICBTdHJpbmcgc3VmZml4ID0gImVnZyI7CisgICAgICAgIENvbGxhdGlvbktleSBtZXJnZWRQcmVmaXhLZXlzW10gPSBuZXcgQ29sbGF0aW9uS2V5W2Nhc2VzLmxlbmd0aF07CisgICAgICAgIENvbGxhdGlvbktleSBtZXJnZWRTdWZmaXhLZXlzW10gPSBuZXcgQ29sbGF0aW9uS2V5W2Nhc2VzLmxlbmd0aF07CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcihMb2NhbGUuRU5HTElTSCwgY2FzZXMpOworICAgICAgICAKKyAgICAgICAgaW50IHN0cmVuZ3RoID0gQ29sbGF0b3IuUFJJTUFSWTsKKyAgICAgICAgd2hpbGUgKHN0cmVuZ3RoIDw9IENvbGxhdG9yLklERU5USUNBTCkgeworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChzdHJlbmd0aCk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgcHJlZml4S2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkocHJlZml4KTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBzdWZmaXhLZXkgPSBjb2xsLmdldENvbGxhdGlvbktleShzdWZmaXgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkoY2FzZXNbaV0pOworICAgICAgICAgICAgICAgIG1lcmdlZFByZWZpeEtleXNbaV0gPSBwcmVmaXhLZXkubWVyZ2Uoa2V5KTsKKyAgICAgICAgICAgICAgICBtZXJnZWRTdWZmaXhLZXlzW2ldID0gc3VmZml4S2V5Lm1lcmdlKGtleSk7CisgICAgICAgICAgICAgICAgaWYgKG1lcmdlZFByZWZpeEtleXNbaV0uZ2V0U291cmNlU3RyaW5nKCkgIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICB8fCBtZXJnZWRTdWZmaXhLZXlzW2ldLmdldFNvdXJjZVN0cmluZygpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIk1lcmdlZCBzb3VyY2Ugc3RyaW5nIGVycm9yOiBleHBlY3RlZCBudWxsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VkUHJlZml4S2V5c1tpLTFdLmNvbXBhcmVUbyhtZXJnZWRQcmVmaXhLZXlzW2ldKQorICAgICAgICAgICAgICAgICAgICAgICAgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHdoaWxlIGNvbXBhcmluZyBwcmVmaXhlZCBrZXlzIEAgc3RyZW5ndGggIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHJlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihwcmV0dGlmeShtZXJnZWRQcmVmaXhLZXlzW2ktMV0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHByZXR0aWZ5KG1lcmdlZFByZWZpeEtleXNbaV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VkU3VmZml4S2V5c1tpLTFdLmNvbXBhcmVUbyhtZXJnZWRTdWZmaXhLZXlzW2ldKSAKKyAgICAgICAgICAgICAgICAgICAgICAgID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciB3aGlsZSBjb21wYXJpbmcgc3VmZml4ZWQga2V5cyBAIHN0cmVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RyZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4ocHJldHRpZnkobWVyZ2VkU3VmZml4S2V5c1tpLTFdKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihwcmV0dGlmeShtZXJnZWRTdWZmaXhLZXlzW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuUVVBVEVSTkFSWSkgeworICAgICAgICAgICAgICAgIHN0cmVuZ3RoID0gQ29sbGF0b3IuSURFTlRJQ0FMOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0cmVuZ3RoICsrOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VmFyaWFibGVUb3AoKSAKKyAgICB7CisgICAgICAgIC8vIHBhcnNlTmV4dFRva2VuIGlzIG5vdCByZWxlYXNlZCBhcyBwdWJsaWMgc28gaSBjcmVhdGUgbXkgb3duIHJ1bGVzCisgICAgICAgIFN0cmluZyBydWxlcyA9ICImIGEgPCBiIDwgYyA8IGRlIDwgZmcgJiBoaSA9IGoiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBTdHJpbmcgdG9rZW5zW10gPSB7ImEiLCAiYiIsICJjIiwgImRlIiwgImZnIiwgImhpIiwgImoiLCAiYWIifTsKKyAgICAgICAgICAgIGNvbGwuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IHZhclRvcE9yaWdpbmFsID0gY29sbC5nZXRWYXJpYWJsZVRvcCgpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGludCB2YXJUb3AgPSBjb2xsLnNldFZhcmlhYmxlVG9wKHRva2Vuc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID4gNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRva2VuICIgKyB0b2tlbnNbaV0gKyAiIGV4cGVjdGVkIHRvIGZhaWwiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAodmFyVG9wICE9IGNvbGwuZ2V0VmFyaWFibGVUb3AoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgYW5kIGdldHRpbmcgdmFyaWFibGUgdG9wIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGtleTEgPSBjb2xsLmdldENvbGxhdGlvbktleSh0b2tlbnNbaV0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGk7IGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBrZXkyID0gY29sbC5nZXRDb2xsYXRpb25LZXkodG9rZW5zW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkyLmNvbXBhcmVUbyhrZXkxKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU2V0dGluZyB2YXJpYWJsZSB0b3Agc2hvdWxkbid0IGNoYW5nZSB0aGUgY29tcGFyaXNvbiBzZXF1ZW5jZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBzb3J0b3JkZXJbXSA9IGtleTIudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3J0b3JkZXIubGVuZ3RoID4gMCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoa2V5Mi50b0J5dGVBcnJheSgpKVswXSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiUHJpbWFyeSBzb3J0IG9yZGVyIHNob3VsZCBiZSAwIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodG9rZW5zW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgLyppbnQgY2UgPSovIGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgY2UyID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjZTIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRva2VuICIgKyB0b2tlbnNbaV0gKyAiIG5vdCBleHBlY3RlZCB0byBmYWlsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbGwuZ2V0VmFyaWFibGVUb3AoKSAhPSB2YXJUb3BPcmlnaW5hbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIldoZW4gZXhjZXB0aW9uIGlzIHRocm93biB2YXJpYWJsZSB0b3Agc2hvdWxkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIm5vdCBiZSBjaGFuZ2VkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29sbC5zZXRWYXJpYWJsZVRvcCh2YXJUb3BPcmlnaW5hbCk7CisgICAgICAgICAgICAgICAgaWYgKHZhclRvcE9yaWdpbmFsICE9IGNvbGwuZ2V0VmFyaWFibGVUb3AoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgcmVzdG9yZSBvbGQgdmFyaWFibGUgdG9wXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRlc3RpbmcgY2FsbGluZyB3aXRoIGVycm9yIHNldAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldFZhcmlhYmxlVG9wKCIiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRW1wdHkgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEVtcHR5IHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRWYXJpYWJsZVRvcChudWxsKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVsbCBzdHJpbmcgc2hvdWxkIHRocm93IGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogbnVsbCBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVDQVJ1bGVzKCkgCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gb25seSByb290IGxvY2FsZSBjYW4gaGF2ZSBlbXB0eSB0YWlsb3JpbmdzIC4uIG5vdCBFbmdsaXNoIQorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCAKKyAgICAgICAgICAgICAgICA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCIiLCIiLCIiKSk7CisgICAgICAgICAgICBTdHJpbmcgcnVsZSAKKyAgICAgICAgICAgICAgICA9IGNvbGwuZ2V0UnVsZXMoZmFsc2UpOworICAgICAgICAgICAgaWYgKCFydWxlLmVxdWFscygiIikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRW1wdHkgcnVsZSBzdHJpbmcgc2hvdWxkIGhhdmUgZW1wdHkgcnVsZXMgIiArIHJ1bGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZSA9IGNvbGwuZ2V0UnVsZXModHJ1ZSk7CisgICAgICAgICAgICBpZiAocnVsZS5lcXVhbHMoIiIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlVDQSBydWxlIHN0cmluZyBzaG91bGQgbm90IGJlIGVtcHR5Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBKaXR0ZXJidWcgMjcyNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTaGlmdGVkKCkKKyAgICB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgY29sbGF0b3Iuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsYXRvciwgIiBhIiwgImEiLCAwKTsgLy8gd29ya3MgcHJvcGVybHkKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbGF0b3IsICJhIiwgImEgIiwgMCk7IC8vIGluY29uc2lzdGVudCByZXN1bHRzCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmV2aW91cyBhbmQgbmV4dCBmb3IgdGhlIHdob2xlIHNldCBvZgorICAgICAqIHVuaWNvZGUgY2hhcmFjdGVycyB3aXRoIG5vcm1hbGl6YXRpb24gb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE51bWVyaWNDb2xsYXRpb24oKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGJhc2ljVGVzdFN0cmluZ3NbXSA9IHsiaGVsbG8xIiwgImhlbGxvMiIsICJoZWxsbzEyMzQ1NiJ9OworICAgICAgICBTdHJpbmcgcHJlWmVyb1Rlc3RTdHJpbmdzW10gPSB7ImF2ZXJ5MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlcnkwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlcnkwMDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2ZXJ5MDAwMSJ9OworICAgICAgICBTdHJpbmcgdGhpcnR5VHdvQml0TnVtZXJpY1N0cmluZ3NbXSA9IHsiYXZlcnk0Mjk0OTY3Mjk2MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdmVyeTQyOTQ5NjcyOTYxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2ZXJ5NDI5NDk2NzI5NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlcnk0Mjk0OTY3Mjk2MTAifTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHN1cHBsZW1lbnRhcnlEaWdpdHNbXSA9IHsiXHVEODM1XHVERkNFIiwgLy8gMCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkNGIiwgLy8gMSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkQwIiwgLy8gMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkQxIiwgLy8gMyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkNGXHVEODM1XHVERkNFIiwgLy8gMTAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZDRlx1RDgzNVx1REZDRiIsIC8vIDExIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzVcdURGQ0ZcdUQ4MzVcdURGRDAiLCAvLyAxMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkQwXHVEODM1XHVERkNFIiwgLy8gMjAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZEMFx1RDgzNVx1REZDRiIsIC8vIDIxIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzVcdURGRDBcdUQ4MzVcdURGRDAiIC8vIDIyIAorICAgICAgICB9OworICAgIAorICAgICAgICBTdHJpbmcgZm9yZWlnbkRpZ2l0c1tdID0geyJcdTA2NjEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2NjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2NjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjJcdTA2NjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjJcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjJcdTA2NjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjNcdTA2NjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjNcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjNcdTA2NjMiCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIE9wZW4gb3VyIGNvbGxhdG9yLgorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsIAorICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBTdHJpbmcgYXR0W10gPSB7Ik51bWVyaWNDb2xsYXRpb24ifTsKKyAgICAgICAgQm9vbGVhbiB2YWxbXSA9IHtuZXcgQm9vbGVhbih0cnVlKX07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkVOR0xJU0gsIGJhc2ljVGVzdFN0cmluZ3MsIGF0dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5FTkdMSVNILCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlydHlUd29CaXROdW1lcmljU3RyaW5ncywgYXR0LCB2YWwpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5FTkdMSVNILCBmb3JlaWduRGlnaXRzLCBhdHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCk7CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkVOR0xJU0gsIHN1cHBsZW1lbnRhcnlEaWdpdHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dCwgdmFsKTsgICAgCisgICAgCisgICAgICAgIC8vIFNldHRpbmcgdXAgb3VyIGNvbGxhdG9yIHRvIGRvIGRpZ2l0cy4KKyAgICAgICAgY29sbC5zZXROdW1lcmljQ29sbGF0aW9uKHRydWUpOworICAgIAorICAgICAgICAvLyBUZXN0aW5nIHRoYXQgcHJlcGVuZGVkIHplcm9lcyBzdGlsbCB5aWVsZCB0aGUgY29ycmVjdCBjb2xsYXRpb24gCisgICAgICAgIC8vIGJlaGF2aW9yLiAKKyAgICAgICAgLy8gV2UgZXhwZWN0IHRoYXQgZXZlcnkgZWxlbWVudCBpbiBvdXIgc3RyaW5ncyBhcnJheSB3aWxsIGJlIGVxdWFsLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByZVplcm9UZXN0U3RyaW5ncy5sZW5ndGggLSAxOyBpICsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCBwcmVaZXJvVGVzdFN0cmluZ3MubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbCwgcHJlWmVyb1Rlc3RTdHJpbmdzW2ldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVaZXJvVGVzdFN0cmluZ3Nbal0sMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvL2NvdmVyIHNldE51bWVyaWNDb2xsYXRpb25EZWZhdWx0LCBnZXROdW1lcmljQ29sbGF0aW9uCisgICAgICAgIGFzc2VydFRydWUoIlRoZSBOdW1lcmljIENvbGxhdGlvbiBzZXR0aW5nIGlzIG9uIiwgY29sbC5nZXROdW1lcmljQ29sbGF0aW9uKCkpOworICAgICAgICBjb2xsLnNldE51bWVyaWNDb2xsYXRpb25EZWZhdWx0KCk7CisgICAgICAgIGxvZ2xuKCJBZnRlciBzZXQgTnVtZXJpYyB0byBkZWZhdWx0LCB0aGUgc2V0dGluZyBpczogIiArIGNvbGwuZ2V0TnVtZXJpY0NvbGxhdGlvbigpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdDMyNDkoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJnggPCBhICZ6IDwgYSI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICAgICAgaWYoY29sbCE9bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkNvbGxhdG9yIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIik7ICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggIiArIHJ1bGUgKyAiIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUaWJldGFuQ29uZm9ybWFuY2UoKSAKKyAgICB7ICAKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsiXHUwRkIyXHUwNTkxXHUwRjcxXHUwMDYxIiwgIlx1MEZCMlx1MEY3MVx1MDA2MSJ9OworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29sbGF0b3IgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICAgICAgaWYgKGNvbGwuY29tcGFyZSh0ZXN0WzBdLCB0ZXN0WzFdKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRpYmV0YW4gY29tcGFyaXNvbiBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFswXSwgdGVzdFsxXSwgMCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFVDQSBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKMzM0NygpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29sbGF0b3IgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvciljb2xsKS5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgICAgICBpZiAoY29sbC5jb21wYXJlKCI2IiwgIiE2IikgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJKaXR0ZXJidWcgMzM0NyBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgY3JlYXRpbmcgVUNBIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBpbnlpblByb2JsZW0oKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsgIlx1NEU1Nlx1NEU1Nlx1Nzc2MSIsICJcdTRFNTZcdTVCNjlcdTVCNTAiIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoInpoIiwgIiIsICJQSU5ZSU4iKSwgdGVzdCk7ICAgICAKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGxvbmcgdG9wQnl0ZSA9IDB4RkYwMDAwMDBMOworICAgIHN0YXRpYyBmaW5hbCBsb25nIGJvdHRvbUJ5dGUgPSAweEZGTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBmb3VyQnl0ZXMgPSAweEZGRkZGRkZGTDsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWF9JTlBVVCA9IDB4MjIwMDAxOyAvLyAyICogVW5pY29kZSByYW5nZSArIDIKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2hvdyhpbnQgaSwgSW1wbGljaXRDRUdlbmVyYXRvciBpbXApIHsKKyAgICAgICAgaWYgKGkgPj0gMCAmJiBpIDw9IE1BWF9JTlBVVCkgeworICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5oZXgoaSkgKyAiXHQiICsgVXRpbGl0eS5oZXgoaW1wLmdldEltcGxpY2l0RnJvbVJhdyhpKSAmIGZvdXJCeXRlcykpOworICAgICAgICB9IAorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB0aHJvd0Vycm9yKFN0cmluZyB0aXRsZSwgaW50IGNwLCBJbXBsaWNpdENFR2VuZXJhdG9yIGltcCkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHRpdGxlICsgIlx0IiArIFV0aWxpdHkuaGV4KGNwLCA2KSArICJcdCIgKyBVdGlsaXR5LmhleChpbXAuZ2V0SW1wbGljaXRGcm9tUmF3KGNwKSAmIGZvdXJCeXRlcykpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdGhyb3dFcnJvcihTdHJpbmcgdGl0bGUsIGxvbmcgY2UpIHsKKyAgICAgICAgZXJybG4odGl0bGUgKyAiXHQiICsgVXRpbGl0eS5oZXgoY2UgJiBmb3VyQnl0ZXMpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEltcGxpY2l0R2VuZXJhdGlvbigpCisgICAgeworICAgICAgICBsb2dsbigiU3RhcnQiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEltcGxpY2l0Q0VHZW5lcmF0b3IgZm9vID0gbmV3IEltcGxpY2l0Q0VHZW5lcmF0b3IoMHhFMCwgMHhFNCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvL2ludCB4ID0gZm9vLmdldFJhd0ltcGxpY2l0KDB4RjgxMCk7CisgICAgICAgICAgICBmb28uZ2V0UmF3RnJvbUltcGxpY2l0KDB4RTIwMzAzRTcpOworCisgICAgICAgICAgICBpbnQgZ2FwNCA9IGZvby5nZXRHYXA0KCk7CisgICAgICAgICAgICBsb2dsbigiR2FwNDogIiArIGdhcDQpOyAKKyAgICAgICAgICAgIGludCBnYXAzID0gZm9vLmdldEdhcDMoKTsKKyAgICAgICAgICAgIGludCBtaW5UcmFpbCA9IGZvby5nZXRNaW5UcmFpbCgpOworICAgICAgICAgICAgaW50IG1heFRyYWlsID0gZm9vLmdldE1heFRyYWlsKCk7CisgICAgICAgICAgICBsb25nIGxhc3QgPSAwOworICAgICAgICAgICAgbG9uZyBjdXJyZW50OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gTUFYX0lOUFVUOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gZm9vLmdldEltcGxpY2l0RnJvbVJhdyhpKSAmIGZvdXJCeXRlczsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQgaXQgcm91bmQtdHJpcHMgQU5EIHRoYXQgYWxsIGludGVydmVuaW5nIG9uZXMgYXJlIGlsbGVnYWwKKyAgICAgICAgICAgICAgICBpbnQgcm91bmR0cmlwID0gZm9vLmdldFJhd0Zyb21JbXBsaWNpdCgoaW50KWN1cnJlbnQpOworICAgICAgICAgICAgICAgIGlmIChyb3VuZHRyaXAgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKCJObyByb3VuZHRyaXAiLCBpLCBmb28pOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxhc3QgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxvbmcgaiA9IGxhc3QgKyAxOyBqIDwgY3VycmVudDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByb3VuZHRyaXAgPSBmb28uZ2V0UmF3RnJvbUltcGxpY2l0KChpbnQpaik7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZSBhbiBlcnJvciBpZiBpdCAqZG9lc24ndCogZmluZCBhbiBlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdW5kdHJpcCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoIkZhaWxzIHRvIHJlY29nbml6ZSBpbGxlZ2FsIiwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gbm93IGRvIG90aGVyIGNvbnNpc3RlbmN5IGNoZWNrcworICAgICAgICAgICAgICAgIGxvbmcgbGFzdEJvdHRvbSA9IGxhc3QgJiBib3R0b21CeXRlOworICAgICAgICAgICAgICAgIGxvbmcgY3VycmVudEJvdHRvbSA9IGN1cnJlbnQgJiBib3R0b21CeXRlOworICAgICAgICAgICAgICAgIGxvbmcgbGFzdFRvcCA9IGxhc3QgJiB0b3BCeXRlOworICAgICAgICAgICAgICAgIGxvbmcgY3VycmVudFRvcCA9IGN1cnJlbnQgJiB0b3BCeXRlOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZG8gc29tZSBjb25zaXN0ZW5jeSBjaGVja3MKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgbG9uZyBnYXAgPSBjdXJyZW50IC0gbGFzdDsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Qm90dG9tICE9IDApIHsgLy8gaWYgd2UgYXJlIGEgNC1ieXRlCisgICAgICAgICAgICAgICAgICAvLyBnYXAgaGFzIHRvIGJlIGF0IGxlYXN0IGdhcDQKKyAgICAgICAgICAgICAgICAgIC8vIGFuZCBnYXAgZnJvbSBtaW5UcmFpbCwgbWF4VHJhaWwgaGFzIHRvIGJlIGF0IGxlYXN0IGdhcDQKKyAgICAgICAgICAgICAgICAgIGlmIChnYXAgPD0gZ2FwNCkgZm9vLnRocm93RXJyb3IoIkZhaWxlZCBnYXA0IGJldHdlZW4iLCBpKTsKKyAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Qm90dG9tIDwgbWluVHJhaWwgKyBnYXA0KSBmb28udGhyb3dFcnJvcigiRmFpbGVkIGdhcDQgYmVmb3JlIiwgaSk7CisgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEJvdHRvbSA+IG1heFRyYWlsIC0gZ2FwNCkgZm9vLnRocm93RXJyb3IoIkZhaWxlZCBnYXA0IGFmdGVyIiwgaSk7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyB3ZSBhcmUgYSB0aHJlZS1ieXRlCisgICAgICAgICAgICAgICAgICBnYXAgPSBnYXAgPj4gODsgLy8gbW92ZSBnYXAgZG93biBmb3IgY29tcGFyaXNvbi4KKyAgICAgICAgICAgICAgICAgIGxvbmcgY3VycmVudDNCb3R0b20gPSAoY3VycmVudCA+PiA4KSAmIGJvdHRvbUJ5dGU7CisgICAgICAgICAgICAgICAgICBpZiAoZ2FwIDw9IGdhcDMpIGZvby50aHJvd0Vycm9yKCJGYWlsZWQgZ2FwMyBiZXR3ZWVuICIsIGkpOworICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQzQm90dG9tIDwgbWluVHJhaWwgKyBnYXAzKSBmb28udGhyb3dFcnJvcigiRmFpbGVkIGdhcDMgYmVmb3JlIiwgaSk7CisgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudDNCb3R0b20gPiBtYXhUcmFpbCAtIGdhcDMpIGZvby50aHJvd0Vycm9yKCJGYWlsZWQgZ2FwMyBhZnRlciIsIGkpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgb3V0IHNvbWUgdmFsdWVzIGZvciBzcG90LWNoZWNraW5nCisgICAgICAgICAgICAgICAgaWYgKGxhc3RUb3AgIT0gY3VycmVudFRvcCB8fCBpID09IDB4MTAwMDAgfHwgaSA9PSAweDExMDAwMCkgeworICAgICAgICAgICAgICAgICAgICBzaG93KGktMywgZm9vKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdyhpLTIsIGZvbyk7CisgICAgICAgICAgICAgICAgICAgIHNob3coaS0xLCBmb28pOworICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdEJvdHRvbSA9PSAwICYmIGN1cnJlbnRCb3R0b20gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIisgcHJpbWFyeSBib3VuZGFyeSwgNC1ieXRlIENFJ3MgYmVsb3ciKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0VG9wICE9IGN1cnJlbnRUb3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIrIHByaW1hcnkgYm91bmRhcnkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzaG93KGksIGZvbyk7CisgICAgICAgICAgICAgICAgICAgIHNob3coaSsxLCBmb28pOworICAgICAgICAgICAgICAgICAgICBzaG93KGkrMiwgZm9vKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIi4uLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0ID0gY3VycmVudDsKKyAgICAgICAgICAgICAgICBpZihmb28uZ2V0Q29kZVBvaW50RnJvbVJhdyhmb28uZ2V0UmF3RnJvbUNvZGVQb2ludChpKSkgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm8gcmF3IDwtPiBjb2RlIHBvaW50IHJvdW5kdHJpcCBmb3IgIitVdGlsaXR5LmhleChpKSk7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBzaG93KE1BWF9JTlBVVC0yLCBmb28pOworICAgICAgICAgICAgc2hvdyhNQVhfSU5QVVQtMSwgZm9vKTsKKyAgICAgICAgICAgIHNob3coTUFYX0lOUFVULCBmb28pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBsb2dsbigiRW5kIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBzdXBlcmNlZGVzIFRlc3RKNzg0ICovCisgICAgcHVibGljIHZvaWQgVGVzdEJlZm9yZVBpbnlpbigpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gCisgICAgICAgICAgICAiJltiZWZvcmUgMl1BIDw8IFx1MDEwMSAgPDw8IFx1MDEwMCA8PCBcdTAwRTEgPDw8IFx1MDBDMSA8PCBcdTAxQ0UgPDw8IFx1MDFDRCA8PCBcdTAwRTAgPDw8IFx1MDBDMCIgKworICAgICAgICAgICAgIiZbYmVmb3JlIDJdZSA8PCBcdTAxMTMgPDw8IFx1MDExMiA8PCBcdTAwRTkgPDw8IFx1MDBDOSA8PCBcdTAxMUIgPDw8IFx1MDExQSA8PCBcdTAwRTggPDw8IFx1MDBDOCIgKworICAgICAgICAgICAgIiZbYmVmb3JlIDJdIGkgPDwgXHUwMTJCIDw8PCBcdTAxMkEgPDwgXHUwMEVEIDw8PCBcdTAwQ0QgPDwgXHUwMUQwIDw8PCBcdTAxQ0YgPDwgXHUwMEVDIDw8PCBcdTAwQ0MiICsKKyAgICAgICAgICAgICImW2JlZm9yZSAyXSBvIDw8IFx1MDE0RCA8PDwgXHUwMTRDIDw8IFx1MDBGMyA8PDwgXHUwMEQzIDw8IFx1MDFEMiA8PDwgXHUwMUQxIDw8IFx1MDBGMiA8PDwgXHUwMEQyIiArCisgICAgICAgICAgICAiJltiZWZvcmUgMl11IDw8IFx1MDE2QiA8PDwgXHUwMTZBIDw8IFx1MDBGQSA8PDwgXHUwMERBIDw8IFx1MDFENCA8PDwgXHUwMUQzIDw8IFx1MDBGOSA8PDwgXHUwMEQ5IiArCisgICAgICAgICAgICAiJlUgPDwgXHUwMUQ2IDw8PCBcdTAxRDUgPDwgXHUwMUQ4IDw8PCBcdTAxRDcgPDwgXHUwMURBIDw8PCBcdTAxRDkgPDwgXHUwMURDIDw8PCBcdTAxREIgPDwgXHUwMEZDIjsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJsXHUwMTAxIiwKKyAgICAgICAgICAgICJsYSIsCisgICAgICAgICAgICAibFx1MDEwMW4iLAorICAgICAgICAgICAgImxhbiAiLAorICAgICAgICAgICAgImxcdTAxMTMiLAorICAgICAgICAgICAgImxlIiwKKyAgICAgICAgICAgICJsXHUwMTEzbiIsCisgICAgICAgICAgICAibGVuIgorICAgICAgICB9OworICAgIAorICAgICAgICBTdHJpbmcgdGVzdDJbXSA9IHsKKyAgICAgICAgICAgICJ4XHUwMTAxIiwKKyAgICAgICAgICAgICJ4XHUwMTAwIiwKKyAgICAgICAgICAgICJYXHUwMTAxIiwKKyAgICAgICAgICAgICJYXHUwMTAwIiwKKyAgICAgICAgICAgICJ4XHUwMEUxIiwKKyAgICAgICAgICAgICJ4XHUwMEMxIiwKKyAgICAgICAgICAgICJYXHUwMEUxIiwKKyAgICAgICAgICAgICJYXHUwMEMxIiwKKyAgICAgICAgICAgICJ4XHUwMUNFIiwKKyAgICAgICAgICAgICJ4XHUwMUNEIiwKKyAgICAgICAgICAgICJYXHUwMUNFIiwKKyAgICAgICAgICAgICJYXHUwMUNEIiwKKyAgICAgICAgICAgICJ4XHUwMEUwIiwKKyAgICAgICAgICAgICJ4XHUwMEMwIiwKKyAgICAgICAgICAgICJYXHUwMEUwIiwKKyAgICAgICAgICAgICJYXHUwMEMwIiwKKyAgICAgICAgICAgICJ4YSIsCisgICAgICAgICAgICAieEEiLAorICAgICAgICAgICAgIlhhIiwKKyAgICAgICAgICAgICJYQSIsCisgICAgICAgICAgICAieFx1MDEwMXgiLAorICAgICAgICAgICAgInhcdTAxMDB4IiwKKyAgICAgICAgICAgICJ4XHUwMEUxeCIsCisgICAgICAgICAgICAieFx1MDBDMXgiLAorICAgICAgICAgICAgInhcdTAxQ0V4IiwKKyAgICAgICAgICAgICJ4XHUwMUNEeCIsCisgICAgICAgICAgICAieFx1MDBFMHgiLAorICAgICAgICAgICAgInhcdTAwQzB4IiwKKyAgICAgICAgICAgICJ4YXgiLAorICAgICAgICAgICAgInhBeCIKKyAgICAgICAgfTsKKyAgICAgICAgLyogVE9ETzogcG9ydCBidWlsZGVyIGZpeGVzIHRvIGJlZm9yZSAqLworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiemgiLCIiLCIiKSwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXMsIHRlc3QyKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiemgiLCIiLCIiKSwgdGVzdDIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RVcHBlckZpcnN0UXVhdGVybmFyeSgpCisgICAgeworICAgICAgU3RyaW5nIHRlc3RzW10gPSB7ICJCIiwgImIiLCAiQmIiLCAiYkIiIH07CisgICAgICBTdHJpbmdbXSBhdHQgPSB7ICJzdHJlbmd0aCIsICJVcHBlckZpcnN0IiB9OworICAgICAgT2JqZWN0IGF0dFZhbHNbXSA9IHsgbmV3IEludGVnZXIoQ29sbGF0b3IuUVVBVEVSTkFSWSksIG5ldyBCb29sZWFuKHRydWUpIH07CisgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKG5ldyBMb2NhbGUoInJvb3QiLCIiLCIiKSwgdGVzdHMsIGF0dCwgYXR0VmFscyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKNDk2MCgpCisgICAgeworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsgIlxcdTAwZTJUIiwgImFUIiB9OworICAgICAgICBTdHJpbmcgYXR0W10gPSB7ICJzdHJlbmd0aCIsICJDYXNlTGV2ZWwiIH07CisgICAgICAgIE9iamVjdCBhdHRWYWxzW10gPSB7IG5ldyBJbnRlZ2VyKENvbGxhdG9yLlBSSU1BUlkpLCBuZXcgQm9vbGVhbih0cnVlKSB9OworICAgICAgICBTdHJpbmcgdGVzdHMyW10gPSB7ICJhIiwgIkEiIH07CisgICAgICAgIFN0cmluZyBydWxlID0gIiZbZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlXT1BPWEiOworICAgICAgICBTdHJpbmcgYXR0MltdID0geyAiQ2FzZUxldmVsIiB9OyAgICAgICAgCisgICAgICAgIE9iamVjdCBhdHRWYWxzMltdID0geyBuZXcgQm9vbGVhbih0cnVlKSB9OworICAgICAgICAvLyBUZXN0IHdoZXRoZXIgd2UgY29ycmVjdGx5IGlnbm9yZSBwcmltYXJ5IGlnbm9yYWJsZXMgb24gY2FzZSBsZXZlbCB3aGVuCisgICAgICAgIC8vIHdlIGhhdmUgb25seSBwcmltYXJ5ICYgY2FzZSBsZXZlbAorICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zQW5kUmVzdWx0KG5ldyBMb2NhbGUoInJvb3QiLCAiIiksIHRlc3RzLCBhdHQsIGF0dFZhbHMsIDApOworICAgICAgICAvLyBUZXN0IHdoZXRoZXIgSUNVNEogd2lsbCBtYWtlIGNhc2UgbGV2ZWwgZm9yIHNvcnRrZXlzIHRoYXQgaGF2ZSBwcmltYXJ5IHN0cmVuZ3RoCisgICAgICAgIC8vIGFuZCBjYXNlIGxldmVsCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMobmV3IExvY2FsZSgicm9vdCIsICIiKSwgdGVzdHMyLCBhdHQsIGF0dFZhbHMpOworICAgICAgICAvLyBUZXN0IHdoZXRoZXIgY29tcGxldGVseSBpZ25vcmFibGUgbGV0dGVycyBoYXZlIGNhc2UgbGV2ZWwgaW5mbyAodGhleSBzaG91bGRuJ3QpCisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXJXaXRoT3B0aW9uc0FuZFJlc3VsdChydWxlLCB0ZXN0czIsIGF0dDIsIGF0dFZhbHMyLCAwKTsgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI1Mjk4KCl7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgbG9nbG4oIk51bWJlciBvZiBjb2xsYXRvciBsb2NhbGVzIHJldHVybmVkIDogIiArIGxvY2FsZXMubGVuZ3RoKTsKKyAgICAgICAgLy8gZG91YmxlLWNoZWNrIGtleXdvcmRzCisgICAgICAgIFN0cmluZ1tdIGtleXdvcmRzID0gQ29sbGF0b3IuZ2V0S2V5d29yZHMoKTsKKyAgICAgICAgaWYgKGtleXdvcmRzLmxlbmd0aCAhPSAxIHx8ICFrZXl3b3Jkc1swXS5lcXVhbHMoImNvbGxhdGlvbiIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJpbnRlcm5hbCBjb2xsYXRpb24gZXJyb3IiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmdbXSB2YWx1ZXMgPSBDb2xsYXRvci5nZXRLZXl3b3JkVmFsdWVzKCJjb2xsYXRpb24iKTsKKyAgICAgICAgbG9nKCJDb2xsYXRvci5nZXRLZXl3b3JkVmFsdWVzIHJldHVybmVkOiAiKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8dmFsdWVzLmxlbmd0aDtpKyspeworICAgICAgICAgICAgbG9nKHZhbHVlc1tpXSsiLCAiKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiIik7CisgICAgICAgIGxvZ2xuKCJOdW1iZXIgb2YgY29sbGF0b3IgdmFsdWVzIHJldHVybmVkIDogIiArIHZhbHVlcy5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgU2V0IGZvdW5kVmFsdWVzID0gbmV3IFRyZWVTZXQoQXJyYXlzLmFzTGlzdCh2YWx1ZXMpKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBVTG9jYWxlIHRyeUxvY2FsZSA9IHZhbHVlc1tqXS5lcXVhbHMoInN0YW5kYXJkIikgCisgICAgICAgICAgICA/IGxvY2FsZXNbaV0gOiBuZXcgVUxvY2FsZShsb2NhbGVzW2ldICsgIkBjb2xsYXRpb249IiArIHZhbHVlc1tqXSk7IAorICAgICAgICAgICAgLy8gb25seSBhcHBlbmQgaWYgbm90IHN0YW5kYXJkCisgICAgICAgICAgICBVTG9jYWxlIGNhbm9uID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoImNvbGxhdGlvbiIsdHJ5TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICghY2Fub24uZXF1YWxzKHRyeUxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gaGFzIGEgZGlmZmVyZW50IAorICAgICAgICAgICAgfWVsc2Ugey8vIGZ1bmN0aW9uYWwgZXF1aXZhbGVudCwgc28gc2tpcAorICAgICAgICAgICAgICAgIGxvZ2xuKHRyeUxvY2FsZSArICIgOiAiK2Nhbm9uKyIsICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGNhbiA9IGNhbm9uLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpbnQgaWR4ID0gY2FuLmluZGV4T2YoIkBjb2xsYXRpb249Iik7CisgICAgICAgICAgICBTdHJpbmcgdmFsID0gaWR4ID49IDAgPyBjYW4uc3Vic3RyaW5nKGlkeCsxMSwgY2FuLmxlbmd0aCgpKSA6ICIiOworICAgICAgICAgICAgaWYodmFsLmxlbmd0aCgpPjAgJiYgIWZvdW5kVmFsdWVzLmNvbnRhaW5zKHZhbCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJVbmtub3duIGNvbGxhdGlvbiBmb3VuZCAiKyBjYW4pOworICAgICAgICAgICAgfQorICAgICAgICAgIH0gICAgICAgIAorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCIgIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQKKyAgICBUZXN0SjUzNjcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdCA9IHsgImEiLCAieSIgfTsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIiZOeSA8PCBZICZbZmlyc3Qgc2Vjb25kYXJ5IGlnbm9yYWJsZV0gPDw8IGEiOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzLCB0ZXN0KTsgICAgICAgIAorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTW9ua2V5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1vbmtleVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDc4YjIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1vbmtleVRlc3QuamF2YQpAQCAtMCwwICsxLDMxNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBjb2xsYXRlL0NvbGxhdGlvbk1vbmtleVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L21ua3l0c3QuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQ29sbGF0aW9uTW9ua2V5VGVzdCBpcyBhIHRoaXJkIGxldmVsIHRlc3QgY2xhc3MuICBUaGlzIHRlc3RzIHRoZSByYW5kb20gCisgKiBzdWJzdHJpbmdzIG9mIHRoZSBkZWZhdWx0IHRlc3Qgc3RyaW5ncyB0byB2ZXJpZnkgaWYgdGhlIGNvbXBhcmUgYW5kIAorICogc29ydCBrZXkgYWxnb3JpdGhtIHdvcmtzIGNvcnJlY3RseS4gIEZvciBleGFtcGxlLCBhbnkgc3RyaW5nIGlzIGFsd2F5cworICogbGVzcyB0aGFuIHRoZSBzdHJpbmcgaXRzZWxmIGFwcGVuZGVkIHdpdGggYW55IGNoYXJhY3Rlci4KKyAqLworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uTW9ua2V5VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBzb3VyY2UgPSAiLWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IyZeJEAiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uTW9ua2V5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdGlvbktleSgpIHsKKyAgICAgICAgaWYoc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb25Nb25rZXlUZXN0LlRlc3RDb2xsYXRpb25LZXkoKTogc291cmNlIGlzIGVtcHR5IC0gSUNVX0RBVEEgbm90IHNldCBvciBkYXRhIG1pc3Npbmc/Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0b3IgbXlDb2xsYXRvcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBFTkdMSVNIIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBSYW5kb20gcmFuZCA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgICAgICBpbnQgcyA9IHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdCA9IHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgc2xlbiA9IE1hdGguYWJzKHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpIC0gc291cmNlLmxlbmd0aCgpKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHRsZW4gPSBNYXRoLmFicyhyYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKSAtIHNvdXJjZS5sZW5ndGgoKSkgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIFN0cmluZyBzdWJzID0gc291cmNlLnN1YnN0cmluZyhNYXRoLm1pbihzLCBzbGVuKSwgTWF0aC5taW4ocyArIHNsZW4sIHNvdXJjZS5sZW5ndGgoKSkpOworICAgICAgICBTdHJpbmcgc3VidCA9IHNvdXJjZS5zdWJzdHJpbmcoTWF0aC5taW4odCwgdGxlbiksIE1hdGgubWluKHQgKyB0bGVuLCBzb3VyY2UubGVuZ3RoKCkpKTsKKyAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IGNvbGxhdGlvbktleTEsIGNvbGxhdGlvbktleTI7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBjb2xsYXRpb25LZXkxID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3Vicyk7CisgICAgICAgIGNvbGxhdGlvbktleTIgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJ0KTsKKyAgICAgICAgaW50IHJlc3VsdCA9IGNvbGxhdGlvbktleTEuY29tcGFyZVRvKGNvbGxhdGlvbktleTIpOyAgLy8gVGVydGlhcnkKKyAgICAgICAgaW50IHJldlJlc3VsdCA9IGNvbGxhdGlvbktleTIuY29tcGFyZVRvKGNvbGxhdGlvbktleTEpOyAgLy8gVGVydGlhcnkKKyAgICAgICAgcmVwb3J0KCBzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnMpOworICAgICAgICBjb2xsYXRpb25LZXkyID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3VidCk7CisgICAgICAgIHJlc3VsdCA9IGNvbGxhdGlvbktleTEuY29tcGFyZVRvKGNvbGxhdGlvbktleTIpOyAgLy8gU2Vjb25kYXJ5CisgICAgICAgIHJldlJlc3VsdCA9IGNvbGxhdGlvbktleTIuY29tcGFyZVRvKGNvbGxhdGlvbktleTEpOyAgIC8vIFNlY29uZGFyeQorICAgICAgICByZXBvcnQoIHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnMpOworICAgICAgICBjb2xsYXRpb25LZXkyID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3VidCk7CisgICAgICAgIHJlc3VsdCA9IGNvbGxhdGlvbktleTEuY29tcGFyZVRvKGNvbGxhdGlvbktleTIpOyAgLy8gUHJpbWFyeQorICAgICAgICByZXZSZXN1bHQgPSBjb2xsYXRpb25LZXkyLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkxKTsgICAvLyBQcmltYXJ5CisgICAgICAgIHJlcG9ydChzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgU3RyaW5nIGFkZE9uZSA9IHN1YnMgKyBTdHJpbmcudmFsdWVPZigweEUwMDApOworICAgIAorICAgICAgICBjb2xsYXRpb25LZXkxID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3Vicyk7CisgICAgICAgIGNvbGxhdGlvbktleTIgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShhZGRPbmUpOworICAgICAgICByZXN1bHQgPSBjb2xsYXRpb25LZXkxLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgbXNnICs9ICJDb2xsYXRpb25LZXkoIjsKKyAgICAgICAgICAgIG1zZyArPSBzdWJzOworICAgICAgICAgICAgbXNnICs9ICIpIC5MVC4gQ29sbGF0aW9uS2V5KCI7CisgICAgICAgICAgICBtc2cgKz0gYWRkT25lOworICAgICAgICAgICAgbXNnICs9ICIpIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBtc2cgPSAiIjsKKyAgICAgICAgcmVzdWx0ID0gY29sbGF0aW9uS2V5Mi5jb21wYXJlVG8oY29sbGF0aW9uS2V5MSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMSkgeworICAgICAgICAgICAgbXNnICs9ICJDb2xsYXRpb25LZXkoIjsKKyAgICAgICAgICAgIG1zZyArPSBhZGRPbmU7CisgICAgICAgICAgICBtc2cgKz0gIikgLkdULiBDb2xsYXRpb25LZXkoIjsKKyAgICAgICAgICAgIG1zZyArPSBzdWJzOworICAgICAgICAgICAgbXNnICs9ICIpIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwZXJmb3JtIG1vbmtleSB0ZXN0cyB1c2luZyBDb2xsYXRvci5jb21wYXJlCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBhcmUoKSB7CisgICAgICAgIGlmKHNvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uTW9ua2V5VGVzdC5UZXN0Q29tcGFyZSgpOiBzb3VyY2UgaXMgZW1wdHkgLSBJQ1VfREFUQSBub3Qgc2V0IG9yIGRhdGEgbWlzc2luZz8iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IgbXlDb2xsYXRvcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBFTkdMSVNIIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiBTZWVkIHRoZSByYW5kb20tbnVtYmVyIGdlbmVyYXRvciB3aXRoIGN1cnJlbnQgdGltZSBzbyB0aGF0CisgICAgICAgICAqIHRoZSBudW1iZXJzIHdpbGwgYmUgZGlmZmVyZW50IGV2ZXJ5IHRpbWUgd2UgcnVuLgorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIFJhbmRvbSByYW5kID0gY3JlYXRlUmFuZG9tKCk7IC8vIHVzZSB0ZXN0IGZyYW1ld29yaydzIHJhbmRvbSBzZWVkCisgICAgICAgIGludCBzID0gcmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCB0ID0gcmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCBzbGVuID0gTWF0aC5hYnMocmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCkgLSBzb3VyY2UubGVuZ3RoKCkpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdGxlbiA9IE1hdGguYWJzKHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpIC0gc291cmNlLmxlbmd0aCgpKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nIHN1YnMgPSBzb3VyY2Uuc3Vic3RyaW5nKE1hdGgubWluKHMsIHNsZW4pLCBNYXRoLm1pbihzICsgc2xlbiwgc291cmNlLmxlbmd0aCgpKSk7CisgICAgICAgIFN0cmluZyBzdWJ0ID0gc291cmNlLnN1YnN0cmluZyhNYXRoLm1pbih0LCB0bGVuKSwgTWF0aC5taW4odCArIHRsZW4sIHNvdXJjZS5sZW5ndGgoKSkpOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgaW50IHJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJzLCBzdWJ0KTsgIC8vIFRlcnRpYXJ5CisgICAgICAgIGludCByZXZSZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VidCwgc3Vicyk7ICAvLyBUZXJ0aWFyeQorICAgICAgICByZXBvcnQoc3Vicywgc3VidCwgcmVzdWx0LCByZXZSZXN1bHQpOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIHJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJzLCBzdWJ0KTsgIC8vIFNlY29uZGFyeQorICAgICAgICByZXZSZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VidCwgc3Vicyk7ICAvLyBTZWNvbmRhcnkKKyAgICAgICAgcmVwb3J0KHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgcmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnMsIHN1YnQpOyAgLy8gUHJpbWFyeQorICAgICAgICByZXZSZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VidCwgc3Vicyk7ICAvLyBQcmltYXJ5CisgICAgICAgIHJlcG9ydChzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgU3RyaW5nIGFkZE9uZSA9IHN1YnMgKyBTdHJpbmcudmFsdWVPZigweEUwMDApOworICAgIAorICAgICAgICByZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VicywgYWRkT25lKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgbXNnICs9ICJUZXN0IDogIjsKKyAgICAgICAgICAgIG1zZyArPSBzdWJzOworICAgICAgICAgICAgbXNnICs9ICIgLkxULiAiOworICAgICAgICAgICAgbXNnICs9IGFkZE9uZTsKKyAgICAgICAgICAgIG1zZyArPSAiIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBtc2cgPSAiIjsKKyAgICAgICAgcmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKGFkZE9uZSwgc3Vicyk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMSkgeworICAgICAgICAgICAgbXNnICs9ICJUZXN0IDogIjsKKyAgICAgICAgICAgIG1zZyArPSBhZGRPbmU7CisgICAgICAgICAgICBtc2cgKz0gIiAuR1QuICI7CisgICAgICAgICAgICBtc2cgKz0gc3ViczsKKyAgICAgICAgICAgIG1zZyArPSAiIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIHJlcG9ydChTdHJpbmcgcywgU3RyaW5nIHQsIGludCByZXN1bHQsIGludCByZXZSZXN1bHQpIHsKKyAgICAgICAgaWYgKHJldlJlc3VsdCAhPSAtcmVzdWx0KSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnID0gIiI7CisgICAgICAgICAgICBtc2cgKz0gczsgCisgICAgICAgICAgICBtc2cgKz0gIiBhbmQgIjsKKyAgICAgICAgICAgIG1zZyArPSB0OworICAgICAgICAgICAgbXNnICs9ICIgcm91bmQgdHJpcCBjb21wYXJpc29uIGZhaWxlZCI7CisgICAgICAgICAgICBtc2cgKz0gIiAocmVzdWx0ICIgKyByZXN1bHQgKyAiLCByZXZlcnNlIFJlc3VsdCAiICsgcmV2UmVzdWx0ICsgIikiOyAKKyAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVzKCkgeworICAgICAgICBTdHJpbmcgdGVzdFNvdXJjZUNhc2VzW10gPSB7CisgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDdhIiwgCisgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDdhIiwgCisgICAgICAgIH07CisgICAgCisgICAgICAgIFN0cmluZyB0ZXN0VGFyZ2V0Q2FzZXNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwZTQiLAorICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDA2MVx1MDMwOCIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBpbnQgaT0wOworICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDEgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIHogPCAweDAwZTRcIiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiICYgeiA8ICI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgbmV3UnVsZXMgKyBTdHJpbmcudmFsdWVPZigweDAwZTQpOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oICJEZW1vIFRlc3QgMSBUYWJsZSBDb2xsYXRpb24gb2JqZWN0IGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yKGk9MDsgaTwyOyBpKyspeworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgLTEpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJEZW1vIFRlc3QgMiA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiYgeiA8IGEgMHgwMzA4XCIiKTsKKyAgICAgICAgbmV3UnVsZXMgPSAiIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyAiICYgeiA8IGEiICsgU3RyaW5nLnZhbHVlT2YoMHgwMzA4KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCAiRGVtbyBUZXN0IDEgVGFibGUgQ29sbGF0aW9uIG9iamVjdCBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yKGk9MDsgaTwyOyBpKyspeworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgLTEpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgZG9UZXN0KFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uLCBTdHJpbmcgbXlzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJTb3J0S2V5IGdlbmVyYXRpb24gRmFpbGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQoIG15c291cmNlLCB0YXJnZXQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQgKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcmVwb3J0Q1Jlc3VsdChTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsgIC8vTEVTUworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeyAgLy9FUVVBTAorICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsgIC8vR1JFQVRFUgorICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYmFjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QuamF2YQpAQCAtMCwwICsxLDExOTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY29sbGF0ZS9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvcmVnY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25SZWdyZXNzaW9uVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uUmVncmVzc2lvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA0ODQ0NgorICAgIC8vCisgICAgLy8gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnJlc2V0KCkgZG9lc24ndCB3b3JrCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA0ODQ0NigpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHRlc3QxID0gIlhGSUxFIFdoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzIGhhcyB0aGUgaGlnaGVzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmcgdGhlIG1vc3QgZXJyb3JzPyI7CisgICAgICAgIC8vZmluYWwgU3RyaW5nIHRlc3QyID0gIlhmX2lsZSBXaGF0IHN1YnNldCBvZiBhbGwgcG9zc2libGUgdGVzdCBjYXNlcyBoYXMgdGhlIGxvd2VzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmcgdGhlIGxlYXN0IGVycm9ycz8iOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAgICAgCisgICAgICAgIGlmIChpMSA9PSBudWxsIHx8IGkyID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgY3JlYXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcidzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgd2hpbGUgKGkxLm5leHQoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAvLworICAgICAgICB9CisgICAgCisgICAgICAgIGkxLnJlc2V0KCk7CisgICAgICAgIGFzc2VydEVxdWFsKGkxLCBpMik7CisgICAgfQorICAgIAorICAgIHZvaWQgYXNzZXJ0RXF1YWwoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTIpIHsKKyAgICAgICAgaW50IGMxLCBjMiwgY291bnQgPSAwOworICAgIAorICAgICAgICBkbyB7CisgICAgICAgICAgICBjMSA9IGkxLm5leHQoKTsKKyAgICAgICAgICAgIGMyID0gaTIubmV4dCgpOworICAgIAorICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICIiOworICAgICAgICAgICAgICAgIFN0cmluZyBtc2cxID0gIiAgICAiOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1zZyArPSBtc2cxICsgY291bnQ7CisgICAgICAgICAgICAgICAgbXNnICs9ICI6IHN0cmVuZ3RoKDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoYzEpOworICAgICAgICAgICAgICAgIG1zZyArPSAiKSAhPSBzdHJlbmd0aCgweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMyKTsKKyAgICAgICAgICAgICAgICBtc2cgKz0gIikiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICB9IHdoaWxlIChjMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDUxODY2CisgICAgLy8KKyAgICAvLyBDb2xsYXRvciAtPiBydWxlcyAtPiBDb2xsYXRvciByb3VuZC10cmlwIGJyb2tlbiBmb3IgZXhwYW5kaW5nIGNoYXJhY3RlcnMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUxODY2KCkgeworICAgICAgIFN0cmluZyBydWxlcyA9ICI8IG8gJiBvZSAsb1x1MzA4MCYgb2UgLFx1MTUzMCAsTyYgT0UgLE9cdTMwODAmIE9FICxcdTE1MjA8IHAgLFAiOworCisgICAgICAgIC8vIEJ1aWxkIGEgY29sbGF0b3IgY29udGFpbmluZyBleHBhbmRpbmcgY2hhcmFjdGVycworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgYzEgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIHJ1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBCdWlsZCBhbm90aGVyIHVzaW5nIHRoZSBydWxlcyBmcm9tICB0aGUgZmlyc3QKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzIgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoYzEuZ2V0UnVsZXMoKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGV5J3JlIHRoZSBzYW1lCisgICAgICAgIGlmICghKGMxLmdldFJ1bGVzKCkuZXF1YWxzKGMyLmdldFJ1bGVzKCkpKSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIlJ1bGVzIGFyZSBub3QgZXF1YWwiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTM2MzYKKyAgICAvLworICAgIC8vIENvbGxhdG9yIHRoaW5rcyAiYmxhY2stYmlyZCIgPT0gImJsYWNrIgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTM2MzYoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoZW5fdXMuZXF1YWxzKCJibGFja19iaXJkIiwgImJsYWNrIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJibGFjay1iaXJkID09IGJsYWNrIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDU0MjM4CisgICAgLy8KKyAgICAvLyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgaWYgdGhlIGFzc29jaWF0ZWQKKyAgICAvLyBDb2xsYXRvciBvYmplY3QncyBtb2RlIGlzIGNoYW5nZWQKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU0MjM4KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBmaW5hbCBjaGFyW10gY2hhcnMzID0gezB4NjEsIDB4MDBGQywgMHg2MiwgMHg2NSwgMHg2MywgMHg2YiwgMHgyMCwgMHg0NywgMHg3MiwgMHgwMEY2LCAweDAwREYsIDB4NjUsIDB4MjAsIDB4NGMsIDB4MDBGQywgMHg2MiwgMHg2MywgMHg2YiwgMH07CisgICAgICAgIGZpbmFsIFN0cmluZyB0ZXN0MyA9IG5ldyBTdHJpbmcoY2hhcnMzKTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAKKyAgICAgICAgLy8gTk9URTogVGhlIEphdmEgY29kZSB1c2VzIGVuX3VzIHRvIGNyZWF0ZSB0aGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9ycworICAgICAgICAvLyBidXQgSSdtIHByZXR0eSBzdXJlIHRoYXQncyB3cm9uZywgc28gSSd2ZSBjaGFuZ2VkIHRoaXMgdG8gdXNlIGMuCisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxID0gYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDMpOworICAgICAgICBsb2dsbigiT2Zmc2V0OiIgKyBpMS5nZXRPZmZzZXQoKSk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1NDczNAorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OklERU5USUNBTCBkb2N1bWVudGVkIGJ1dCBub3QgaW1wbGVtZW50ZWQKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU0NzM0KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAKKyAgICAgICAgICAgIC8vSGVyZSdzIHRoZSBvcmlnaW5hbCBKYXZhOgorICAgIAorICAgICAgICAgICAgU3RyaW5nW10gZGVjb21wID0geworICAgICAgICAgICAgICAgICJcdTAwMDEiLCAgICI8IiwgICAgIlx1MDAwMiIsCisgICAgICAgICAgICAgICAgIlx1MDAwMSIsICAgIj0iLCAgICAiXHUwMDAxIiwKKyAgICAgICAgICAgICAgICAiQVx1MDAwMSIsICAiPiIsICAgICJ+XHUwMDAyIiwgICAgICAvLyBFbnN1cmUgQSBhbmQgfiBhcmUgbm90IGNvbXBhcmVkIGJpdHdpc2UKKyAgICAgICAgICAgICAgICAiXHUwMEMwIiwgICAiPSIsICAgICJBXHUwMzAwIiwgICAgICAvLyBEZWNvbXAgc2hvdWxkIG1ha2UgdGhlc2UgZXF1YWwKKyAgICAgICAgICAgIH07CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIGRlY29tcCk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGFyZUFycmF5KENvbGxhdG9yIGMsIFN0cmluZ1tdIHRlc3RzKSB7CisgICAgICAgIAorICAgICAgICBpbnQgZXhwZWN0ZWRSZXN1bHQgPSAwOworICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gdGVzdHNbaV07CisgICAgICAgICAgICBTdHJpbmcgY29tcGFyaXNvbiA9IHRlc3RzW2kgKyAxXTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSB0ZXN0c1tpICsgMl07CisgICAgCisgICAgICAgICAgICBpZiAoY29tcGFyaXNvbi5lcXVhbHMoIjwiKSkgeworICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBhcmlzb24uZXF1YWxzKCI+IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IDE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBhcmlzb24uZXF1YWxzKCI9IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJCb2d1cyBjb21wYXJpc29uIHN0cmluZyBcIiIgKyBjb21wYXJpc29uICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oImkgPSAiICsgaSk7CisgICAgICAgICAgICBsb2dsbihzb3VyY2UpOworICAgICAgICAgICAgbG9nbG4odGFyZ2V0KTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29tcGFyZVJlc3VsdCA9IGMuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBDb2xsYXRpb25LZXkgc291cmNlS2V5ID0gbnVsbCwgdGFyZ2V0S2V5ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc291cmNlS2V5ID0gYy5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGdldCBjb2xsYXRpb25LZXkgZm9yIHNvdXJjZSIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0YXJnZXRLZXkgPSBjLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgZ2V0IGNvbGxhdGlvbktleSBmb3IgdGFyZ2V0Iik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpbnQga2V5UmVzdWx0ID0gc291cmNlS2V5LmNvbXBhcmVUbyh0YXJnZXRLZXkpOworICAgICAgICAgICAgcmVwb3J0Q1Jlc3VsdCggc291cmNlLCB0YXJnZXQsIHNvdXJjZUtleSwgdGFyZ2V0S2V5LCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIGV4cGVjdGVkUmVzdWx0ICk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsgIC8vTEVTUworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeyAgLy9FUVVBTAorICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsgIC8vR1JFQVRFUgorICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDU0NzM2CisgICAgLy8KKyAgICAvLyBGdWxsIERlY29tcG9zaXRpb24gbW9kZSBub3QgaW1wbGVtZW50ZWQKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU0NzM2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIAorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nW10gdGVzdHMgPSB7ICJcdUZCNEYiLCAiXHUwMDNkIiwgIlx1MDVEMFx1MDVEQyIgfTsgIC8vIEFsZWYtTGFtZWQgdnMuIEFsZWYsIExhbWVkCisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0cyk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1ODYxMworICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmNyZWF0ZUluc3RhbmNlKCkgY2F1c2VzIGFuIEFycmF5SW5kZXhPdXRvZkJvdW5kc0V4Y2VwdGlvbiBmb3IgS29yZWFuICAKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU4NjEzKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAvLyBDcmVhdGluZyBhIGRlZmF1bHQgY29sbGF0b3IgZG9lc24ndCB3b3JrIHdoZW4gS29yZWFuIGlzIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIGxvY2FsZQorICAgICAgICAKKyAgICAgICAgTG9jYWxlIG9sZERlZmF1bHQgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXcgTG9jYWxlKCJrbyIsICIiKSk7CisgICAgCisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICAKKyAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgIAorICAgICAgICBpZiAoYyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNyZWF0ZSBhIEtvcmVhbiBjb2xsYXRvciIpOworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQob2xkRGVmYXVsdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNpbmNlIHRoZSBmaXggdG8gdGhpcyBidWcgd2FzIHRvIHR1cm4gb2ZmIGRlY29tcG9zaXRpb24gZm9yIEtvcmVhbiBjb2xsYXRvcnMsCisgICAgICAgIC8vIGVuc3VyZSB0aGF0J3Mgd2hhdCB3ZSBnb3QKKyAgICAgICAgaWYgKGMuZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pIHsKKyAgICAgICAgICBlcnJsbigiRGVjb21wb3NpdGlvbiBpcyBub3Qgc2V0IHRvIE5PX0RFQ09NUE9TSVRJT04gZm9yIEtvcmVhbiBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgCisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG9sZERlZmF1bHQpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTk4MjAKKyAgICAvLworICAgIC8vIFJ1bGVCYXNlZENvbGxhdG9yLmdldFJ1bGVzIGRvZXMgbm90IHJldHVybiB0aGUgZXhhY3QgcGF0dGVybiBhcyBpbnB1dAorICAgIC8vIGZvciBleHBhbmRpbmcgY2hhcmFjdGVyIHNlcXVlbmNlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk4MjAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiPCBhIDwgYiAsIGMvYSA8IGQgPCB6IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYnVpbGRpbmcgYSBjb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoIGMuZ2V0UnVsZXMoKS5pbmRleE9mKCJjL2EiKSA9PSAtMSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oInJldHVybmVkIHJ1bGVzIGRvIG5vdCBjb250YWluICdjL2EnIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDYwMTU0CisgICAgLy8KKyAgICAvLyBNZXJnZUNvbGxhdGlvbjo6Zml4RW50cnkgYnJva2VuIGZvciAiJiBIIDwgXHUwMTMxLCBcdTAxMzAsIGksIEkiCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MDE1NCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0iPCBnLCBHIDwgaCwgSCA8IGksIEkgPCBqLCBKICYgSCA8IFx1MDEzMSwgXHUwMTMwLCBpLCBJIjsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICAgICAgZXJybG4oImZhaWx1cmUgYnVpbGRpbmcgY29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXJ0aWFyeSA9IHsKKyAgICAgICAgICAgICJBIiwgICAgICAgICI8IiwgICAgIkIiLAorICAgICAgICAgICAgIkgiLCAgICAgICAgIjwiLCAgICAiXHUwMTMxIiwKKyAgICAgICAgICAgICJIIiwgICAgICAgICI8IiwgICAgIkkiLAorICAgICAgICAgICAgIlx1MDEzMSIsICAgIjwiLCAgICAiXHUwMTMwIiwKKyAgICAgICAgICAgICJcdTAxMzAiLCAgICI8IiwgICAgImkiLAorICAgICAgICAgICAgIlx1MDEzMCIsICAgIj4iLCAgICAiSCIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVydGlhcnkpOworICAgIAorICAgICAgICBTdHJpbmdbXSBzZWNvbmRhcnkgPSB7CisgICAgICAgICAgICAiSCIsICAgICAgICAiPCIsICAgICJJIiwKKyAgICAgICAgICAgICJcdTAxMzEiLCAgICI9IiwgICAgIlx1MDEzMCIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCBzZWNvbmRhcnkpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjI0MTgKKyAgICAvLworICAgIC8vIFNlY29uZGFyeS9UZXJ0aWFyeSBjb21wYXJpc29uIGluY29ycmVjdCBpbiBGcmVuY2ggU2Vjb25kYXJ5CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MjQxOCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGNvbGxhdG9yIGZvciBMb2NhbGU6OkZSQU5DRSgpIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICAgICAicFx1MDBlYWNoZSIsICAgICI8IiwgICAgInBcdTAwZTljaFx1MDBlOSIsICAgIC8vIENvbXBhcmluZyBhY2NlbnRzIGZyb20gZW5kLCBwXHUwMGU5Y2hcdTAwZTkgaXMgZ3JlYXRlcgorICAgICAgICB9OworICAgIAorICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjU1NDAKKyAgICAvLworICAgIC8vIENvbGxhdG9yOjpjb21wYXJlKCkgbWV0aG9kIGJyb2tlbiBpZiBlaXRoZXIgc3RyaW5nIGNvbnRhaW5zIHNwYWNlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjU1NDAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoZW5fdXMuY29tcGFyZSgiYWJjZCBlIiwgImFiY2QgZiIpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCInYWJjZCBlJyA9PSAnYWJjZCBmJyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA2NjE4OQorICAgIC8vCisgICAgLy8gVW5pY29kZSBjaGFyYWN0ZXJzIG5lZWQgdG8gYmUgcmVjdXJzaXZlbHkgZGVjb21wb3NlZCB0byBnZXQgdGhlCisgICAgLy8gY29ycmVjdCByZXN1bHQuIEZvciBleGFtcGxlLAorICAgIC8vIHUxRUIxIC0+IFx1MDEwMyArIFx1MDMwMCAtPiBhICsgXHUwMzA2ICsgXHUwMzAwLgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjYxODkoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIGZpbmFsICBTdHJpbmcgdGVzdDEgPSAiXHUxRUIxIjsKKyAgICAgICAgZmluYWwgIFN0cmluZyB0ZXN0MiA9ICJcdTAwNjFcdTAzMDZcdTAzMDAiOworICAgIAorICAgICAgICAvLyBOT1RFOiBUaGUgamF2YSBjb2RlIHVzZWQgZW5fdXMgdG8gY3JlYXRlIHRoZQorICAgICAgICAvLyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Incy4gSSdtIHByZXR0eSBzdXJlIHRoYXQKKyAgICAgICAgLy8gd2FzIHdyb25nLCBzbyBJJ3ZlIGNoYW5nZSB0aGUgY29kZSB0byB1c2UgYzEgYW5kIGMyCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMxID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjMS5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxID0gYzEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzIgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMyLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMiA9IGMyLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0Mik7CisgICAgCisgICAgICAgIGFzc2VydEVxdWFsKGkxLCBpMik7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA2NjY5NgorICAgIC8vCisgICAgLy8gRnJlbmNoIHNlY29uZGFyeSBjb2xsYXRpb24gY2hlY2tpbmcgYXQgdGhlIGVuZCBvZiBjb21wYXJlIGl0ZXJhdGlvbiBmYWlscworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjY2OTYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgY3JlYXRpbmcgY29sbGF0b3IgZm9yIExvY2FsZTo6Z2V0RnJhbmNlKCkiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgCisgICAgICAgIFN0cmluZ1tdIHRlc3RzID0geworICAgICAgICAgICAgIlx1MDBlMCIsICAgIj4iLCAgICAgIlx1MDFmYSIsICAgICAgIC8vIGEtZ3JhdmUgPCAgQS1yaW5nLWFjdXRlCisgICAgICAgIH07ICAgIAorICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNzY2NzYKKyAgICAvLworICAgIC8vIEJhZCBjYW5vbmljYWxpemF0aW9uIG9mIHNhbWUtY2xhc3MgY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc2Njc2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAvLyBUaGVzZSBjb21iaW5pbmcgY2hhcmFjdGVycyBhcmUgYWxsIGluIHRoZSBzYW1lIGNsYXNzLCBzbyB0aGV5IHNob3VsZCBub3QKKyAgICAgICAgLy8gYmUgcmVvcmRlcmVkLCBhbmQgdGhleSBzaG91bGQgY29tcGFyZSBhcyB1bmVxdWFsLgorICAgICAgICBmaW5hbCBTdHJpbmcgczEgPSAiXHUwMDQxXHUwMzAxXHUwMzAyXHUwMzAwIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIHMyID0gIlx1MDA0MVx1MDMwMlx1MDMwMFx1MDMwMSI7CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIAorICAgICAgICBpZiAoYy5jb21wYXJlKHMxLHMyKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiU2FtZS1jbGFzcyBjb21iaW5pbmcgY2hhcnMgd2VyZSByZW9yZGVyZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEBidWcgNDA3ODU4OAorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3IgYnJlYWtzIG9uICI8IGEgPCBiYiIgcnVsZQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzg1ODgoLyogY2hhciAqcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHJiYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByYmMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIjwgYSA8IGJiIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gcmJjLmNvbXBhcmUoImEiLCJiYiIpOworICAgIAorICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJlKGEsYmIpIHJldHVybmVkICIgKyByZXN1bHQgKyAiOyBleHBlY3RlZCAtMSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA3OTIzMQorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3I6Om9wZXJhdG9yPT0oTlVMTCkgdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3OTIzMSgvKiBjaGFyKiBwYXIgKi8pIHsgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGVuX3VzLmVxdWFscyhudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlbl91cy5lcXVhbHMobnVsbCkgcmV0dXJuZWQgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImVuX3VzLmVxdWFscyhudWxsKSB0aHJldyAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwODE4NjYKKyAgICAvLworICAgIC8vIENvbWJpbmluZyBjaGFyYWN0ZXJzIGluIGRpZmZlcmVudCBjbGFzc2VzIG5vdCByZW9yZGVyZWQgcHJvcGVybHkuCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4MTg2NigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gVGhlc2UgY29tYmluaW5nIGNoYXJhY3RlcnMgYXJlIGFsbCBpbiBkaWZmZXJlbnQgY2xhc3NlcywKKyAgICAgICAgLy8gc28gdGhleSBzaG91bGQgYmUgcmVvcmRlcmVkIGFuZCB0aGUgc3RyaW5ncyBzaG91bGQgY29tcGFyZSBhcyBlcXVhbC4KKyAgICAgICAgU3RyaW5nIHMxID0gIlx1MDA0MVx1MDMwMFx1MDMxNlx1MDMyN1x1MDMxNSI7CisgICAgICAgIFN0cmluZyBzMiA9ICJcdTAwNDFcdTAzMjdcdTAzMTZcdTAzMTVcdTAzMDAiOworICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgCisgICAgICAgIC8vIE5vdyB0aGF0IHRoZSBkZWZhdWx0IGNvbGxhdG9ycyBhcmUgc2V0IHRvIE5PX0RFQ09NUE9TSVRJT04KKyAgICAgICAgLy8gKGFzIGEgcmVzdWx0IG9mIGZpeGluZyBidWcgNDExNDA3NyksIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkKKyAgICAgICAgLy8gd2hlbiB3ZSdyZSB0ZXN0aW5nIHJlb3JkZXJpbmcgYmVoYXZpb3IuICAtLSBsd2VybmVyLCA1LzUvOTgKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgaWYgKGMuY29tcGFyZShzMSxzMikgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbWJpbmluZyBjaGFycyB3ZXJlIG5vdCByZW9yZGVyZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwODcyNDEKKyAgICAvLworICAgIC8vIHN0cmluZyBjb21wYXJpc29uIGVycm9ycyBpbiBTY2FuZGluYXZpYW4gY29sbGF0b3JzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NzI0MSgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgTG9jYWxlIGRhX0RLID0gbmV3IExvY2FsZSgiZGEiLCAiREsiKTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShkYV9ESyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgZGFfREsgbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwN2EiLCAgICAgICAiXHUwMDNjIiwgIlx1MDBFNiIsICAgICAgICAgICAgLy8geiAgICAgICAgPCBhZQorICAgICAgICAgICAgIlx1MDA2MVx1MDMwOCIsICJcdTAwM2MiLCAiXHUwMDYxXHUwMzBBIiwgICAgICAvLyBhLXVubGF1dCA8IGEtcmluZworICAgICAgICAgICAgIlx1MDA1OSIsICAgICAgICJcdTAwM2MiLCAiXHUwMDc1XHUwMzA4IiwgICAgICAvLyBZICAgICAgICA8IHUtdW1sYXV0CisgICAgICAgIH07CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0cyk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA4NzI0MworICAgIC8vCisgICAgLy8gQ29sbGF0aW9uS2V5IHRha2VzIGlnbm9yYWJsZSBzdHJpbmdzIGludG8gYWNjb3VudCB3aGVuIGl0IHNob3VsZG4ndAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDMoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwMzFcdTAwMzJcdTAwMzMiLCAiXHUwMDNkIiwgIlx1MDAzMVx1MDAzMlx1MDAzM1x1MDAwMSIgICAgLy8gMSAyIDMgID0gIDEgMiAzIGN0cmwtQQorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwOTIyNjAKKyAgICAvLworICAgIC8vIE11L21pY3JvIGNvbmZsaWN0CisgICAgLy8gTWljcm8gc3ltYm9sIGFuZCBncmVlayBsb3dlcmNhc2UgbGV0dGVyIE11IHNob3VsZCBzb3J0IGlkZW50aWNhbGx5CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MjI2MCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgTG9jYWxlIGVsID0gbmV3IExvY2FsZSgiZWwiLCAiIik7CisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKGVsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGNvbGxhdG9yIGZvciBlbCBsb2NhbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlc2Ugbm93IGhhdmUgdGVydGlhcnkgZGlmZmVyZW5jZXMgaW4gVUNBCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwMEI1IiwgIlx1MDAzZCIsICJcdTAzQkMiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwOTUzMTYKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk1MzE2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBMb2NhbGUgZWxfR1IgPSBuZXcgTG9jYWxlKCJlbCIsICJHUiIpOworICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShlbF9HUik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgZWxfR1IgbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlc2Ugbm93IGhhdmUgdGVydGlhcnkgZGlmZmVyZW5jZXMgaW4gVUNBCisgICAgICAgIC8vYy0+c2V0U3RyZW5ndGgoQ29sbGF0b3I6OlRFUlRJQVJZKTsKKyAgICAgICAgLy9jLT5zZXRBdHRyaWJ1dGUoVUNPTF9TVFJFTkdUSCwgVUNPTF9TRUNPTkRBUlksIHN0YXR1cyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwM0Q0IiwgIlx1MDAzZCIsICJcdTAzQUIiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMDE5NDAKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAxOTQwKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIjwgYSA8IGIiOworICAgICAgICBTdHJpbmcgbm90aGluZyA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpID0gYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iobm90aGluZyk7CisgICAgICAgIGkucmVzZXQoKTsKKyAgICAgICAgaWYgKGkubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGVycmxuKCJuZXh0IGRpZCBub3QgcmV0dXJuIE5VTExPUkRFUiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEwMzQzNgorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmNvbXBhcmUgbm90IGhhbmRsaW5nIHNwYWNlcyBwcm9wZXJseQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDM0MzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICJcdTAwNjZcdTAwNjlcdTAwNmNcdTAwNjUiLCAiXHUwMDNjIiwgIlx1MDA2Nlx1MDA2OVx1MDA2Y1x1MDA2NVx1MDAyMFx1MDA2MVx1MDA2M1x1MDA2M1x1MDA2NVx1MDA3M1x1MDA3MyIsCisgICAgICAgICAgICAiXHUwMDY2XHUwMDY5XHUwMDZjXHUwMDY1IiwgIlx1MDAzYyIsICJcdTAwNjZcdTAwNjlcdTAwNmNcdTAwNjVcdTAwNjFcdTAwNjNcdTAwNjNcdTAwNjVcdTAwNzNcdTAwNzMiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMTQwNzYKKyAgICAvLworICAgIC8vIENvbGxhdGlvbiBub3QgVW5pY29kZSBjb25mb3JtYW50IHdpdGggSGFuZ3VsIHN5bGxhYmxlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQwNzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIAorICAgICAgICAvLworICAgICAgICAvLyBXaXRoIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBIYW5ndWwgc3lsbGFibGVzIHNob3VsZCBnZXQgZGVjb21wb3NlZAorICAgICAgICAvLyBpbnRvIEphbW8sIGJ1dCBKYW1vIGNoYXJhY3RlcnMgc2hvdWxkIG5vdCBiZSBkZWNvbXBvc2VkIGludG8KKyAgICAgICAgLy8gY29uam9pbmluZyBKYW1vCisgICAgICAgIC8vCisgICAgICAgIFN0cmluZyB0ZXN0MVtdID0geworICAgICAgICAgICAgIlx1ZDRkYiIsICJcdTAwM2QiLCAiXHUxMTExXHUxMTcxXHUxMWI2IgorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdDEpOworICAgIAorICAgICAgICAvLyBGcm9tIFVUUiAjMTU6CisgICAgICAgIC8vICpJbiBlYXJsaWVyIHZlcnNpb25zIG9mIFVuaWNvZGUsIGphbW8gY2hhcmFjdGVycyBsaWtlIGtzZgorICAgICAgICAvLyAgaGFkIGNvbXBhdGliaWxpdHkgbWFwcGluZ3MgdG8ga2YgKyBzZi4gVGhlc2UgbWFwcGluZ3Mgd2VyZSAKKyAgICAgICAgLy8gIHJlbW92ZWQgaW4gVW5pY29kZSAyLjEuOSB0byBlbnN1cmUgdGhhdCBIYW5ndWwgc3lsbGFibGVzIGFyZSBtYWludGFpbmVkLikKKyAgICAgICAgLy8gVGhhdCBpcywgdGhlIGZvbGxvd2luZyB0ZXN0IGlzIG9ic29sZXRlIGFzIG9mIDIuMS45CisgICAgCisgICAgLy9vYnNvbGV0ZS0gICAgLy8gV2l0aCBGdWxsIGRlY29tcG9zaXRpb24sIGl0IHNob3VsZCBnbyBhbGwgdGhlIHdheSBkb3duIHRvCisgICAgLy9vYnNvbGV0ZS0gICAgLy8gY29uam9pbmluZyBKYW1vIGNoYXJhY3RlcnMuCisgICAgLy9vYnNvbGV0ZS0gICAgLy8KKyAgICAvL29ic29sZXRlLSAgICBzdGF0aWMgY29uc3QgVUNoYXIgdGVzdDJbXVtDb2xsYXRpb25SZWdyZXNzaW9uVGVzdDo6TUFYX1RPS0VOX0xFTl0gPQorICAgIC8vb2Jzb2xldGUtICAgIHsKKyAgICAvL29ic29sZXRlLSAgICAgICAgezB4ZDRkYiwgMH0sIHsweDNkLCAwfSwgezB4MTExMSwgMHgxMTZlLCAweDExNzUsIDB4MTFhZiwgMHgxMWMyLCAwfQorICAgIC8vb2Jzb2xldGUtICAgIH07CisgICAgLy9vYnNvbGV0ZS0KKyAgICAvL29ic29sZXRlLSAgICBjLT5zZXREZWNvbXBvc2l0aW9uKE5vcm1hbGl6ZXI6OkRFQ09NUF9DT01QQVQpOworICAgIC8vb2Jzb2xldGUtICAgIGNvbXBhcmVBcnJheSgqYywgdGVzdDIsIEFSUkFZX0xFTkdUSCh0ZXN0MikpOworICAgIH0KKworICAgIC8vIEBidWcgNDExNDA3NworICAgIC8vCisgICAgLy8gQ29sbGF0aW9uIHdpdGggZGVjb21wb3NpdGlvbiBvZmYgZG9lc24ndCB3b3JrIGZvciBFdXJvcGUgCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDA3NygvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gRW5zdXJlIHRoYXQgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgd2l0aCBkZWNvbXBvc2l0aW9uIG9mZgorICAgICAgICAvLyBhcyB3ZSBkbyB3aXRoIGl0IG9uLi4uLgorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMEMwIiwgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzZCIsICJcdTAwNDFcdTAzMDAiLCAgICAgICAgICAgIC8vIFNob3VsZCBiZSBlcXVpdmFsZW50CisgICAgICAgICAgICAiXHUwMDcwXHUwMGVhXHUwMDYzXHUwMDY4XHUwMDY1IiwgIlx1MDAzZSIsICJcdTAwNzBcdTAwZTlcdTAwNjNcdTAwNjhcdTAwZTkiLAorICAgICAgICAgICAgIlx1MDIwNCIsICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwM2QiLCAiXHUwMDQ1XHUwMzBGIiwKKyAgICAgICAgICAgICJcdTAxZmEiLCAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDNkIiwgIlx1MDA0MVx1MDMwYVx1MDMwMSIsICAgIC8vIGEtcmluZy1hY3V0ZSAtPiBhLXJpbmcsIGFjdXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAtPiBhLCByaW5nLCBhY3V0ZQorICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMxNiIsICAgICAgICAgICAgICJcdTAwM2MiLCAiXHUwMDQxXHUwMzE2XHUwMzAwIiAgICAgICAgLy8gTm8gcmVvcmRlcmluZyAtLT4gdW5lcXVhbAorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0MSk7CisgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MltdID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMxNiIsICJcdTAwM2QiLCAiXHUwMDQxXHUwMzE2XHUwMzAwIiAgICAgIC8vIFJlb3JkZXJpbmcgLS0+IGVxdWFsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0Mik7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEyNDYzMgorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmdldENvbGxhdGlvbktleSB3YXMgaGFuZ2luZyBvbiBjZXJ0YWluIGNoYXJhY3RlciBzZXF1ZW5jZXMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI0NjMyKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgY29sbGF0b3IgZm9yIExvY2FsZTo6SkFQQU4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGVzdCA9ICJcdTAwNDFcdTAzMDhcdTAwNjJcdTAwNjMiOworICAgICAgICBDb2xsYXRpb25LZXkga2V5OworICAgICAgICB0cnkgeworICAgICAgICAgICAga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdCk7CisgICAgICAgICAgICBsb2dsbihrZXkuZ2V0U291cmNlU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbktleSBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTMyNzM2CisgICAgLy8KKyAgICAvLyBzb3J0IG9yZGVyIG9mIGZyZW5jaCB3b3JkcyB3aXRoIG11bHRpcGxlIGFjY2VudHMgaGFzIGVycm9ycworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzI3MzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBhIGNvbGxhdG9yIGZvciBMb2NhbGU6OmdldEZyYW5jZSgpIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMDY1XHUwMzAwXHUwMDY1XHUwMzAxIiwgIlx1MDAzYyIsICJcdTAwNjVcdTAzMDFcdTAwNjVcdTAzMDAiLAorICAgICAgICAgICAgIlx1MDA2NVx1MDMwMFx1MDMwMSIsICAgICAgICJcdTAwM2MiLCAiXHUwMDY1XHUwMzAxXHUwMzAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3QxKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTMzNTA5CisgICAgLy8KKyAgICAvLyBUaGUgc29ydGluZyB1c2luZyBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IGlzIG5vdCBpbiB0aGUgZXhhY3Qgb3JkZXIKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTMzNTA5KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMDQ1XHUwMDc4XHUwMDYzXHUwMDY1XHUwMDcwXHUwMDc0XHUwMDY5XHUwMDZmXHUwMDZlIiwgIlx1MDAzYyIsICJcdTAwNDVcdTAwNzhcdTAwNjNcdTAwNjVcdTAwNzBcdTAwNzRcdTAwNjlcdTAwNmZcdTAwNmVcdTAwNDlcdTAwNmVcdTAwNDlcdTAwNmVcdTAwNjlcdTAwNzRcdTAwNjlcdTAwNjFcdTAwNmNcdTAwNjlcdTAwN2FcdTAwNjVcdTAwNzJcdTAwNDVcdTAwNzJcdTAwNzJcdTAwNmZcdTAwNzIiLAorICAgICAgICAgICAgIlx1MDA0N1x1MDA3Mlx1MDA2MVx1MDA3MFx1MDA2OFx1MDA2OVx1MDA2M1x1MDA3MyIsICAgICAgICJcdTAwM2MiLCAiXHUwMDQ3XHUwMDcyXHUwMDYxXHUwMDcwXHUwMDY4XHUwMDY5XHUwMDYzXHUwMDczXHUwMDQ1XHUwMDZlXHUwMDc2XHUwMDY5XHUwMDcyXHUwMDZmXHUwMDZlXHUwMDZkXHUwMDY1XHUwMDZlXHUwMDc0IiwKKyAgICAgICAgICAgICJcdTAwNTNcdTAwNzRcdTAwNzJcdTAwNjlcdTAwNmVcdTAwNjciLCAgICAgICAgICAgICAgICAgICAiXHUwMDNjIiwgIlx1MDA1M1x1MDA3NFx1MDA3Mlx1MDA2OVx1MDA2ZVx1MDA2N1x1MDA0Mlx1MDA3NVx1MDA2Nlx1MDA2Nlx1MDA2NVx1MDA3MiIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGNvbXBhcmVBcnJheShlbl91cywgdGVzdDEpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMzk1NzIKKyAgICAvLworICAgIC8vIGdldENvbGxhdGlvbktleSB0aHJvd3MgZXhjZXB0aW9uIGZvciBzcGFuaXNoIHRleHQgCisgICAgLy8gQ2Fubm90IHJlcHJvZHVjZSB0aGlzIGJ1ZyBvbiAxLjIsIGhvd2V2ZXIgaXQgRE9FUyBmYWlsIG9uIDEuMS42CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzOTU3MigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gQ29kZSBwYXN0ZWQgc3RyYWlnaHQgZnJvbSB0aGUgYnVnIHJlcG9ydAorICAgICAgICAvLyAoYW5kIHRoZW4gdHJhbnNsYXRlZCB0byBDKysgOy0pCisgICAgICAgIC8vCisgICAgICAgIC8vIGNyZWF0ZSBzcGFuaXNoIGxvY2FsZSBhbmQgY29sbGF0b3IKKyAgICAgICAgTG9jYWxlIGwgPSBuZXcgTG9jYWxlKCJlcyIsICJlcyIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBhIGNvbGxhdG9yIGZvciBlc19lcyBsb2NhbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IG51bGw7CisgICAgICAgIC8vIHRoaXMgc3BhbmlzaCBwaHJhc2Uga2lsbHMgaXQhCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBrZXkgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KCJOb21icmUgRGUgT2JqZXRvIik7CisgICAgICAgICAgICBsb2dsbigic291cmNlOiIgKyBrZXkuZ2V0U291cmNlU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIENvbGxhdGlvbktleSBmb3IgXCJOb21icmUgRGUgT2piZXRvXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxNDE2NDAKKyAgICAvLworICAgIC8vIFN1cHBvcnQgZm9yIFN3ZWRpc2ggZ29uZSBpbiAxLjEuNiAoQ2FuJ3QgY3JlYXRlIFN3ZWRpc2ggY29sbGF0b3IpIAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDE2NDAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIFJhdGhlciB0aGFuIGp1c3QgY3JlYXRpbmcgYSBTd2VkaXNoIGNvbGxhdG9yLCB3ZSBtaWdodCBhcyB3ZWxsCisgICAgICAgIC8vIHRyeSB0byBpbnN0YW50aWF0ZSBvbmUgZm9yIGV2ZXJ5IGxvY2FsZSBhdmFpbGFibGUgb24gdGhlIHN5c3RlbQorICAgICAgICAvLyBpbiBvcmRlciB0byBwcmV2ZW50IHRoaXMgc29ydCBvZiBidWcgZnJvbSBjcm9wcGluZyB1cCBpbiB0aGUgZnV0dXJlCisgICAgICAgIC8vCisgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpCisgICAgICAgIHsKKyAgICAgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgbG9nbG4oInNvdXJjZTogIiArIGMuZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgICAgICAgICBtc2cgKz0gIkNvdWxkIG5vdCBjcmVhdGUgY29sbGF0b3IgZm9yIGxvY2FsZSAiOworICAgICAgICAgICAgICAgIG1zZyArPSBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tMaXN0T3JkZXIoU3RyaW5nW10gc29ydGVkTGlzdCwgQ29sbGF0b3IgYykgeworICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIHVzZXMgdGhlIHNwZWNpZmllZCBDb2xsYXRvciB0byBtYWtlIHN1cmUgdGhlCisgICAgICAgIC8vIHBhc3NlZC1pbiBsaXN0IGlzIGFscmVhZHkgc29ydGVkIGludG8gYXNjZW5kaW5nIG9yZGVyCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc29ydGVkTGlzdC5sZW5ndGggLSAxOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjLmNvbXBhcmUoc29ydGVkTGlzdFtpXSwgc29ydGVkTGlzdFtpICsgMV0pID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTGlzdCBvdXQgb2Ygb3JkZXIgYXQgZWxlbWVudCAjIiArIGkgKyAiOiAiCisgICAgICAgICAgICAgICAgICAgICAgICArIHNvcnRlZExpc3RbaV0gKyAiID49ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgc29ydGVkTGlzdFtpICsgMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzE5NzQoKSB7CisgICAgICAgIC8vIHRlc3QgRnJlbmNoIGFjY2VudCBvcmRlcmluZyBtb3JlIHRob3JvdWdobHkKKyAgICAgICAgLypTdHJpbmdbXSBmcmVuY2hMaXN0ID0geworICAgICAgICAgICAgIlx1MDA3NVx1MDA3NSIsICAgICAvLyB1IHUKKyAgICAgICAgICAgICJcdTAwZmNcdTAwNzUiLCAgICAgLy8gdS11bWxhdXQgdQorICAgICAgICAgICAgIlx1MDFkNlx1MDA3NSIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdQorICAgICAgICAgICAgIlx1MDE2Ylx1MDA3NSIsICAgICAvLyB1LW1hY3JvbiB1CisgICAgICAgICAgICAiXHUxZTdiXHUwMDc1IiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1CisgICAgICAgICAgICAiXHUwMDc1XHUwMGZjIiwgICAgIC8vIHUgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAwZmNcdTAwZmMiLCAgICAgLy8gdS11bWxhdXQgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAxZDZcdTAwZmMiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMTZiXHUwMGZjIiwgICAgIC8vIHUtbWFjcm9uIHUtdW1sYXV0CisgICAgICAgICAgICAiXHUxZTdiXHUwMGZjIiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MDA3NVx1MDFkNiIsICAgICAvLyB1IHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDBmY1x1MDFkNiIsICAgICAvLyB1LXVtbGF1dCB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAxZDZcdTAxZDYiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MDFkNiIsICAgICAvLyB1LW1hY3JvbiB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTFlN2JcdTAxZDYiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDA3NVx1MDE2YiIsICAgICAvLyB1IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMGZjXHUwMTZiIiwgICAgIC8vIHUtdW1sYXV0IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMWQ2XHUwMTZiIiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MDE2YiIsICAgICAvLyB1LW1hY3JvbiB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MWU3Ylx1MDE2YiIsICAgICAvLyB1LW1hY3Jvbi11bWxhdXQgdS1tYWNyb24KKyAgICAgICAgICAgICJcdTAwNzVcdTFlN2IiLCAgICAgLy8gdSB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTAwZmNcdTFlN2IiLCAgICAgLy8gdS11bWxhdXQgdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUwMWQ2XHUxZTdiIiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTAxNmJcdTFlN2IiLCAgICAgLy8gdS1tYWNyb24gdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUxZTdiXHUxZTdiIiAgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgfTsKKyAgICAgICAgQ29sbGF0b3IgZnJlbmNoID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgRnJlbmNoIG9yZGVyLi4uIik7CisgICAgICAgIGNoZWNrTGlzdE9yZGVyKGZyZW5jaExpc3QsIGZyZW5jaCk7CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgRnJlbmNoIG9yZGVyIHdpdGhvdXQgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBmcmVuY2guc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgY2hlY2tMaXN0T3JkZXIoZnJlbmNoTGlzdCwgZnJlbmNoKTsqLworCisgICAgICAgIFN0cmluZ1tdIGVuZ2xpc2hMaXN0ID0geworICAgICAgICAgICAgIlx1MDA3NVx1MDA3NSIsICAgICAvLyB1IHUKKyAgICAgICAgICAgICJcdTAwNzVcdTAwZmMiLCAgICAgLy8gdSB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MDA3NVx1MDFkNiIsICAgICAvLyB1IHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDA3NVx1MDE2YiIsICAgICAvLyB1IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMDc1XHUxZTdiIiwgICAgIC8vIHUgdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUwMGZjXHUwMDc1IiwgICAgIC8vIHUtdW1sYXV0IHUKKyAgICAgICAgICAgICJcdTAwZmNcdTAwZmMiLCAgICAgLy8gdS11bWxhdXQgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAwZmNcdTAxZDYiLCAgICAgLy8gdS11bWxhdXQgdS11bWxhdXQtbWFjcm9uCisgICAgICAgICAgICAiXHUwMGZjXHUwMTZiIiwgICAgIC8vIHUtdW1sYXV0IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMGZjXHUxZTdiIiwgICAgIC8vIHUtdW1sYXV0IHUtbWFjcm9uLXVtbGF1dAorICAgICAgICAgICAgIlx1MDFkNlx1MDA3NSIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdQorICAgICAgICAgICAgIlx1MDFkNlx1MDBmYyIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAxZDZcdTAxZDYiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDFkNlx1MDE2YiIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdS1tYWNyb24KKyAgICAgICAgICAgICJcdTAxZDZcdTFlN2IiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtbWFjcm9uLXVtbGF1dAorICAgICAgICAgICAgIlx1MDE2Ylx1MDA3NSIsICAgICAvLyB1LW1hY3JvbiB1CisgICAgICAgICAgICAiXHUwMTZiXHUwMGZjIiwgICAgIC8vIHUtbWFjcm9uIHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMTZiXHUwMWQ2IiwgICAgIC8vIHUtbWFjcm9uIHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MDE2YiIsICAgICAvLyB1LW1hY3JvbiB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MWU3YiIsICAgICAvLyB1LW1hY3JvbiB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTFlN2JcdTAwNzUiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUKKyAgICAgICAgICAgICJcdTFlN2JcdTAwZmMiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUtdW1sYXV0CisgICAgICAgICAgICAiXHUxZTdiXHUwMWQ2IiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTFlN2JcdTAxNmIiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUxZTdiXHUxZTdiIiAgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgfTsKKyAgICAgICAgQ29sbGF0b3IgZW5nbGlzaCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKworICAgICAgICBsb2dsbigiVGVzdGluZyBFbmdsaXNoIG9yZGVyLi4uIik7CisgICAgICAgIGNoZWNrTGlzdE9yZGVyKGVuZ2xpc2hMaXN0LCBlbmdsaXNoKTsKKworICAgICAgICBsb2dsbigiVGVzdGluZyBFbmdsaXNoIG9yZGVyIHdpdGhvdXQgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBlbmdsaXNoLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNoZWNrTGlzdE9yZGVyKGVuZ2xpc2hMaXN0LCBlbmdsaXNoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3OTIxNigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAvLyB5b3UgY2FuIHBvc2l0aW9uIGEgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGluIHRoZSBtaWRkbGUgb2YKKyAgICAgICAgLy8gYSBjb250cmFjdGluZyBjaGFyYWN0ZXIgc2VxdWVuY2UsIHlpZWxkaW5nIGEgYm9ndXMgY29sbGF0aW9uCisgICAgICAgIC8vIGVsZW1lbnQKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGNvbGwuZ2V0UnVsZXMoKQorICAgICAgICAgICAgICAgICsgIiAmIEMgPCBjaCAsIGNIICwgQ2ggLCBDSCA8IGNhdCA8IGNydW5jaHkiKTsKKyAgICAgICAgU3RyaW5nIHRlc3RUZXh0ID0gImNodXJjaCBjaHVyY2ggY2F0Y2F0Y2hlciBydW5jcnVuY2h5bmNoeSI7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgdGVzdFRleHQpOworCisgICAgICAgIC8vIHRlc3QgdGhhdCB0aGUgImNoIiBjb21iaW5hdGlvbiB3b3JrcyBwcm9wZXJseQorICAgICAgICBpdGVyLnNldE9mZnNldCg0KTsKKyAgICAgICAgaW50IGVsdDQgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgICAgIGludCBlbHQwID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoNSk7CisgICAgICAgIGludCBlbHQ1ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaWYgKGVsdDQgIT0gZWx0MCB8fCBlbHQ1ICE9IGVsdDApCisgICAgICAgICAgICBlcnJsbigiVGhlIGNvbGxhdGlvbiBlbGVtZW50cyBhdCBwb3NpdGlvbnMgMCAoIiArIGVsdDAgKyAiKSwgNCAoIgorICAgICAgICAgICAgICAgICAgICArIGVsdDQgKyAiKSwgYW5kIDUgKCIgKyBlbHQ1ICsgIikgZG9uJ3QgbWF0Y2guIik7CisKKyAgICAgICAgLy8gdGVzdCB0aGF0IHRoZSAiY2F0IiBjb21iaW5hdGlvbiB3b3JrcyBwcm9wZXJseQorICAgICAgICBpdGVyLnNldE9mZnNldCgxNCk7CisgICAgICAgIGludCBlbHQxNCA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDE1KTsKKyAgICAgICAgaW50IGVsdDE1ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMTYpOworICAgICAgICBpbnQgZWx0MTYgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpdGVyLnNldE9mZnNldCgxNyk7CisgICAgICAgIGludCBlbHQxNyA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDE4KTsKKyAgICAgICAgaW50IGVsdDE4ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMTkpOworICAgICAgICBpbnQgZWx0MTkgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpZiAoZWx0MTQgIT0gZWx0MTUgfHwgZWx0MTQgIT0gZWx0MTYgfHwgZWx0MTQgIT0gZWx0MTcKKyAgICAgICAgICAgICAgICB8fCBlbHQxNCAhPSBlbHQxOCB8fCBlbHQxNCAhPSBlbHQxOSkKKyAgICAgICAgICAgIGVycmxuKCJcImNhdFwiIGVsZW1lbnRzIGRvbid0IG1hdGNoOiBlbHQxNCA9ICIgKyBlbHQxNCArICIsIGVsdDE1ID0gIgorICAgICAgICAgICAgKyBlbHQxNSArICIsIGVsdDE2ID0gIiArIGVsdDE2ICsgIiwgZWx0MTcgPSAiICsgZWx0MTcKKyAgICAgICAgICAgICsgIiwgZWx0MTggPSAiICsgZWx0MTggKyAiLCBlbHQxOSA9ICIgKyBlbHQxOSk7CisKKyAgICAgICAgLy8gbm93IGdlbmVyYXRlIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgY29sbGF0aW9uIGVsZW1lbnRzLAorICAgICAgICAvLyBmaXJzdCB1c2luZyBuZXh0KCkgYW5kIHRoZW4gdXNpbmcgc2V0T2Zmc2V0KCksIGFuZAorICAgICAgICAvLyBtYWtlIHN1cmUgYm90aCBpbnRlcmZhY2VzIHJldHVybiB0aGUgc2FtZSBzZXQgb2YgZWxlbWVudHMKKyAgICAgICAgaXRlci5yZXNldCgpOworCisgICAgICAgIGludCBlbHQgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGVsdCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgZWx0ID0gaXRlci5uZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmdbXSBuZXh0RWxlbWVudHMgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgU3RyaW5nW10gc2V0T2Zmc2V0RWxlbWVudHMgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgaW50IGxhc3RQb3MgPSAwOworCisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgZWx0ID0gaXRlci5uZXh0KCk7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGVsdCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBuZXh0RWxlbWVudHNbY291bnQrK10gPSB0ZXN0VGV4dC5zdWJzdHJpbmcobGFzdFBvcywgaXRlci5nZXRPZmZzZXQoKSk7CisgICAgICAgICAgICBsYXN0UG9zID0gaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgIGVsdCA9IGl0ZXIubmV4dCgpOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0VGV4dC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBpdGVyLnNldE9mZnNldChpKTsKKyAgICAgICAgICAgIGxhc3RQb3MgPSBpdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgZWx0ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICBzZXRPZmZzZXRFbGVtZW50c1tjb3VudCsrXSA9IHRlc3RUZXh0LnN1YnN0cmluZyhsYXN0UG9zLCBpdGVyLmdldE9mZnNldCgpKTsKKyAgICAgICAgICAgIGkgPSBpdGVyLmdldE9mZnNldCgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmV4dEVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAobmV4dEVsZW1lbnRzW2ldLmVxdWFscyhzZXRPZmZzZXRFbGVtZW50c1tpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihuZXh0RWxlbWVudHNbaV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG5leHQoKSB5aWVsZGVkICIgKyBuZXh0RWxlbWVudHNbaV0gKyAiLCBidXQgc2V0T2Zmc2V0KCkgeWllbGRlZCAiCisgICAgICAgICAgICAgICAgICAgICsgc2V0T2Zmc2V0RWxlbWVudHNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQyMTYwMDYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gcnVsZSBwYXJzZXIgYmFyZnMgb24gIjxcdTAwZTA9YVx1MDMwMCIsIGFuZCBvbiBvdGhlciBjYXNlcworICAgICAgICAvLyB3aGVyZSB0aGUgc2FtZSB0b2tlbiAoYWZ0ZXIgbm9ybWFsaXphdGlvbikgYXBwZWFycyB0d2ljZSBpbiBhIHJvdworICAgICAgICBib29sZWFuIGNhdWdodEV4Y2VwdGlvbiA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZHVtbXkgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIlx1MDBlMDxhXHUwMzAwIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNhdWdodEV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFjYXVnaHRFeGNlcHRpb24pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIlwiYTxhXCIgY29sbGF0aW9uIHNlcXVlbmNlIGRpZG4ndCBjYXVzZSBwYXJzZSBlcnJvciEiKTsKKyAgICAgICAgfQorCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCI8XHUwMGUwPWFcdTAzMDAiKTsKKyAgICAgICAgLy9jb21tZW50ZWQgYnkgS2V2aW4gMjAwMy8xMC8yMSAKKyAgICAgICAgLy9mb3IgIkZVTExfREVDT01QT1NJVElPTiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIiBpbiBJQ1U0SiBET0MKKyAgICAgICAgLy9jb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkZVTExfREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisKKyAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisgICAgICAgICAgICAiYVx1MDMwMCIsICI9IiwgIlx1MDBlMCIsCisgICAgICAgICAgICAiXHUwMGUwIiwgICI9IiwgImFcdTAzMDAiCisgICAgICAgIH07CisKKyAgICAgICAgY29tcGFyZUFycmF5KGNvbGxhdG9yLCB0ZXN0cyk7CisgICAgfQorCisgICAgLy8gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByZXZpb3VzIGJyb2tlbiBmb3IgZXhwYW5kaW5nIGNoYXIgc2VxdWVuY2VzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3OTY4NigpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIC8vIENyZWF0ZSBhIGNvbGxhdG9yIHdpdGggYSBmZXcgZXhwYW5kaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMgaW4gaXQuLi4uCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fdXMuZ2V0UnVsZXMoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAmIGFlIDsgXHUwMGU0ICYgQUUgOyBcdTAwYzQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiICYgb2UgOyBcdTAwZjYgJiBPRSA7IFx1MDBkNiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgJiB1ZSA7IFx1MDBmYyAmIFVFIDsgXHUwMGRjIik7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiVFx1MDBmNm5lIjsgLy8gby11bWxhdXQKKworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgICAgICBWZWN0b3IgZWxlbWVudHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGludCBlbGVtOworCisgICAgICAgIC8vIEl0ZXJhdGUgZm9yd2FyZCBhbmQgY29sbGVjdCBhbGwgb2YgdGhlIGVsZW1lbnRzIGludG8gYSBWZWN0b3IKKyAgICAgICAgd2hpbGUgKChlbGVtID0gaXRlci5uZXh0KCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGVsZW1lbnRzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoZWxlbSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGl0ZXJhdGUgYmFja3dhcmQgYW5kIG1ha2Ugc3VyZSB0aGV5J3JlIHRoZSBzYW1lCisgICAgICAgIGludCBpbmRleCA9IGVsZW1lbnRzLnNpemUoKSAtIDE7CisgICAgICAgIHdoaWxlICgoZWxlbSA9IGl0ZXIucHJldmlvdXMoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaW50IGV4cGVjdCA9ICgoSW50ZWdlcillbGVtZW50cy5lbGVtZW50QXQoaW5kZXgpKS5pbnRWYWx1ZSgpOworCisgICAgICAgICAgICBpZiAoZWxlbSAhPSBleHBlY3QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTWlzbWF0Y2ggYXQgaW5kZXggIiArIGluZGV4CisgICAgICAgICAgICAgICAgICAgICAgKyAiOiBnb3QgIiArIEludGVnZXIudG9TdHJpbmcoZWxlbSwxNikKKyAgICAgICAgICAgICAgICAgICAgICArICIsIGV4cGVjdGVkICIgKyBJbnRlZ2VyLnRvU3RyaW5nKGV4cGVjdCwxNikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXgtLTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzIDsKKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBpZihlbl91cyA9PW51bGwpeworICAgICAgICAgICAgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI0NDg4NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoY29sbC5nZXRSdWxlcygpCisgICAgICAgICAgICAgICAgKyAiICYgQyA8IGNoICwgY0ggLCBDaCAsIENIIDwgY2F0IDwgY3J1bmNoeSIpOworCisgICAgICAgIFN0cmluZ1tdIHRlc3RTdHJpbmdzID0gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJjYXIiLAorICAgICAgICAgICAgImNhdmUiLAorICAgICAgICAgICAgImNsYW1wIiwKKyAgICAgICAgICAgICJjcmFtcCIsCisgICAgICAgICAgICAiY3phciIsCisgICAgICAgICAgICAiY2h1cmNoIiwKKyAgICAgICAgICAgICJjYXRhbG9ndWUiLAorICAgICAgICAgICAgImNydW5jaHkiLAorICAgICAgICAgICAgImRvZyIKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHRlc3RTdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29sbC5jb21wYXJlKHRlc3RTdHJpbmdzW2kgLSAxXSwgdGVzdFN0cmluZ3NbaV0pID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFwiIiArIHRlc3RTdHJpbmdzW2kgLSAxXQorICAgICAgICAgICAgICAgICAgICArICJcIiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gXCIiICsgdGVzdFN0cmluZ3NbaV0KKyAgICAgICAgICAgICAgICAgICAgKyAiXCIuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHNldCBkb2Vzbid0IHdvcmsgcHJvcGVydGx5IHdpdGggbmV4dC9wcmV2CisgICAgcHVibGljIHZvaWQgVGVzdDQ2NjMyMjAoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBzdHJpbmdJdGVyID0gbmV3IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiZm94Iik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cmluZ0l0ZXIpOworICAgIAorICAgICAgICBpbnRbXSBlbGVtZW50c19uZXh0ID0gbmV3IGludFszXTsKKyAgICAgICAgbG9nbG4oImNhbGxpbmcgbmV4dDoiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGkgKyAiXSAiICsgKGVsZW1lbnRzX25leHRbaV0gPSBpdGVyLm5leHQoKSkpOworICAgICAgICB9CisgICAgCisgICAgICAgIGludFtdIGVsZW1lbnRzX2Z3ZCA9IG5ldyBpbnRbM107CisgICAgICAgIGxvZ2xuKCJjYWxsaW5nIHNldC9uZXh0OiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoaSk7CisgICAgICAgICAgICBsb2dsbigiWyIgKyBpICsgIl0gIiArIChlbGVtZW50c19md2RbaV0gPSBpdGVyLm5leHQoKSkpOworICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudHNfbmV4dFtpXSAhPSBlbGVtZW50c19md2RbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibWlzbWF0Y2ggYXQgcG9zaXRpb24gIiArIGkgKyAKKyAgICAgICAgICAgICAgICAiOiAiICsgZWxlbWVudHNfbmV4dFtpXSArIAorICAgICAgICAgICAgICAgICIgIT0gIiArIGVsZW1lbnRzX2Z3ZFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogUnVsZUJhc2VkQ29sbGF0b3Igbm90IHN1YmNsYXNzYWJsZQorICAgICAqIEBidWcgNDE0NjE2MAorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3IgZG9lc24ndCB1c2UgY3JlYXRlQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGludGVybmFsbHkKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ2MTYwKCkgeworICAgICAgICAvLworICAgICAgICAvLyBVc2UgYSBjdXN0b20gY29sbGF0b3IgY2xhc3Mgd2hvc2UgY3JlYXRlQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yCisgICAgICAgIC8vIG1ldGhvZHMgaW5jcmVtZW50IGEgY291bnQuLi4uCisgICAgICAgIC8vICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIE15NDE0NjE2MENvbGxhdG9yLmNvdW50ID0gMDsKKyAgICAgICAgTXk0MTQ2MTYwQ29sbGF0b3IgbWMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbWMgPSBuZXcgTXk0MTQ2MTYwQ29sbGF0b3IoZW5fdXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgYSBNeTQxNDYxNjBDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IG1jLmdldENvbGxhdGlvbktleSgiMSIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgdG8gZ2V0IGEgQ29sbGF0aW9uS2V5IGZyb20gYSBNeTQxNDYxNjBDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoTXk0MTQ2MTYwQ29sbGF0b3IuY291bnQgPCAxKSB7CisgICAgICAgICAgICBlcnJsbigiTXk0MTQ2MTYwQ29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG5vdCBjYWxsZWQgZm9yIGdldENvbGxhdGlvbktleSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIE15NDE0NjE2MENvbGxhdG9yLmNvdW50ID0gMDsKKyAgICAgICAgbWMuY29tcGFyZSgiMSIsICIyIik7CisgICAgCisgICAgICAgIGlmIChNeTQxNDYxNjBDb2xsYXRvci5jb3VudCA8IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJNeTQxNDYxNjBDb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igbm90IGNhbGxlZCBmb3IgY29tcGFyZSIpOworICAgICAgICB9CisgICAgfSovCit9CisKKy8qIFJ1bGVCYXNlZENvbGxhdG9yIG5vdCBzdWJjbGFzc2FibGUKKyAqIGNsYXNzIE15NDE0NjE2MENvbGxhdG9yIGV4dGVuZHMgUnVsZUJhc2VkQ29sbGF0b3IgeworICAgIHN0YXRpYyBpbnQgY291bnQgPSAwOworCisgICAgcHVibGljIE15NDE0NjE2MENvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yIHJiYykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyKHJiYy5nZXRSdWxlcygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcgdGV4dCkgeworICAgICAgICBjb3VudCArPSAxOworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkgeworICAgICAgICBjb3VudCArPSAxOworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgIH0KK30KKyovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNlcnZpY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU2VydmljZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTAxYTQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNlcnZpY2VUZXN0LmphdmEKQEAgLTAsMCArMSw0MjUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLkNvbGxhdG9yRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25TZXJ2aWNlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBDb2xsYXRpb25TZXJ2aWNlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0ZXIoKSB7CisgICAgICAgIC8vIHJlZ2lzdGVyIGEgc2luZ2xldG9uCisgICAgICAgIENvbGxhdG9yIGZyY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5GUkFOQ0UpOworICAgICAgICBDb2xsYXRvciB1c2NvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgCisgICAgICAgIHsgLy8gdHJ5IG92ZXJyaWRlIGVuX1VTIGNvbGxhdG9yCisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQ29sbGF0b3IucmVnaXN0ZXJJbnN0YW5jZShmcmNvbCwgVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBDb2xsYXRvciBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBpZiAoIWZyY29sLmVxdWFscyhuY29sKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlciBvZiBmcmVuY2ggY29sbGF0b3IgZm9yIGVuX1VTIGZhaWxlZCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjb3ZlcmFnZQorICAgICAgICAgICAgQ29sbGF0b3IgdGVzdCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7IC8vIENvbGxhdG9yRmFjdG9yeS5oYW5kbGVDcmVhdGUKKworICAgICAgICAgICAgaWYgKCFDb2xsYXRvci51bnJlZ2lzdGVyKGtleSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIHVucmVnaXN0ZXIgZnJlbmNoIGNvbGxhdG9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBpZiAoIXVzY29sLmVxdWFscyhuY29sKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJjb2xsYXRvciBhZnRlciB1bnJlZ2lzdGVyIGRvZXMgbm90IG1hdGNoIG9yaWdpbmFsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlIGZ1X0ZVID0gbmV3IFVMb2NhbGUoImZ1X0ZVX0ZPTyIpOworCisgICAgICAgIHsgLy8gdHJ5IGNyZWF0ZSBjb2xsYXRvciBmb3IgbmV3IGxvY2FsZQorICAgICAgICAgICAgQ29sbGF0b3IgZnVjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShmdV9GVSk7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQ29sbGF0b3IucmVnaXN0ZXJJbnN0YW5jZShmcmNvbCwgZnVfRlUpOworICAgICAgICAgICAgQ29sbGF0b3IgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGZ1X0ZVKTsKKyAgICAgICAgICAgIGlmICghZnJjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInJlZ2lzdGVyIG9mIGZyIGNvbGxhdG9yIGZvciBmdV9GVSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZXF1YWxzKGZ1X0ZVKSkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmV3IGxvY2FsZSBmdV9GVSBub3QgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIGxvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUpOworICAgICAgICAgICAgICAgIGlmICghImZ1IChGVSwgRk9PKSIuZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCAiICsgbmFtZSArICIgZm9yIGZ1X0ZVIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YS4iKTsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShmdV9GVSwgZnVfRlUpOworICAgICAgICAgICAgICAgIGlmICghImZ1IChGVSwgRk9PKSIuZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCAiICsgbmFtZSArICIgZm9yIGZ1X0ZVIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YS4iKTsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghQ29sbGF0b3IudW5yZWdpc3RlcihrZXkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byB1bnJlZ2lzdGVyIGZyZW5jaCBjb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGZ1X0ZVKTsKKyAgICAgICAgICAgIGlmICghZnVjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbGxhdG9yIGFmdGVyIHVucmVnaXN0ZXIgZG9lcyBub3QgbWF0Y2ggb3JpZ2luYWwgZnVfRlUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGNvdmVyYWdlIGFmdGVyIHJldHVybiB0byBkZWZhdWx0IAorICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIAorICAgICAgICAgICAgQ29sbGF0b3IgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ2lzdGVyRmFjdG9yeSgpIHsKKworICAgICAgICBjbGFzcyBDb2xsYXRvckluZm8geworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGU7CisgICAgICAgICAgICBDb2xsYXRvciBjb2xsYXRvcjsKKyAgICAgICAgICAgIE1hcCBkaXNwbGF5TmFtZXM7IC8vIGxvY2FsZSAtPiBzdHJpbmcKKworICAgICAgICAgICAgQ29sbGF0b3JJbmZvKFVMb2NhbGUgbG9jYWxlLCBDb2xsYXRvciBjb2xsYXRvciwgTWFwIGRpc3BsYXlOYW1lcykgeworICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgICAgIHRoaXMuY29sbGF0b3IgPSBjb2xsYXRvcjsKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOYW1lcyA9IGRpc3BsYXlOYW1lczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoZGlzcGxheU5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IChTdHJpbmcpZGlzcGxheU5hbWVzLmdldChkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBuYW1lID0gbG9jYWxlLmdldERpc3BsYXlOYW1lKGRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNsYXNzIFRlc3RGYWN0b3J5IGV4dGVuZHMgQ29sbGF0b3JGYWN0b3J5IHsKKyAgICAgICAgICAgIHByaXZhdGUgTWFwIG1hcDsKKyAgICAgICAgICAgIHByaXZhdGUgU2V0IGlkczsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVGVzdEZhY3RvcnkoQ29sbGF0b3JJbmZvW10gaW5mbykgeworICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmZvLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIENvbGxhdG9ySW5mbyBjaSA9IGluZm9baV07CisgICAgICAgICAgICAgICAgICAgIG1hcC5wdXQoY2kubG9jYWxlLCBjaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgQ29sbGF0b3IgY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRvckluZm8gY2kgPSAoQ29sbGF0b3JJbmZvKW1hcC5nZXQobG9jKTsKKyAgICAgICAgICAgICAgICBpZiAoY2kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2kuY29sbGF0b3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgb2JqZWN0TG9jYWxlLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRvckluZm8gY2kgPSAoQ29sbGF0b3JJbmZvKW1hcC5nZXQob2JqZWN0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZiAoY2kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2kuZ2V0RGlzcGxheU5hbWUoZGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgU2V0IGdldFN1cHBvcnRlZExvY2FsZUlEcygpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSGFzaFNldCBzZXQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbWFwLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSAoVUxvY2FsZSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IGxvY2FsZS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChpZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWRzID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHNldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBpZHM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2xhc3MgVGVzdEZhY3RvcnlXcmFwcGVyIGV4dGVuZHMgQ29sbGF0b3JGYWN0b3J5IHsKKyAgICAgICAgICAgIENvbGxhdG9yRmFjdG9yeSBkZWxlZ2F0ZTsKKyAgICAKKyAgICAgICAgICAgIFRlc3RGYWN0b3J5V3JhcHBlcihDb2xsYXRvckZhY3RvcnkgZGVsZWdhdGUpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBwdWJsaWMgQ29sbGF0b3IgY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuY3JlYXRlQ29sbGF0b3IobG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHVzZSBDb2xsYXRvckZhY3RvcnkgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSwgVUxvY2FsZSkgZm9yIGNvdmVyYWdlCisgICAgCisgICAgICAgICAgICBwdWJsaWMgU2V0IGdldFN1cHBvcnRlZExvY2FsZUlEcygpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0U3VwcG9ydGVkTG9jYWxlSURzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlIGZ1X0ZVID0gbmV3IFVMb2NhbGUoImZ1X0ZVIik7CisgICAgICAgIFVMb2NhbGUgZnVfRlVfRk9PID0gbmV3IFVMb2NhbGUoImZ1X0ZVX0ZPTyIpOworCisgICAgICAgIE1hcCBmdUZVTmFtZXMgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBmdUZVTmFtZXMucHV0KGZ1X0ZVLCAiemUgbGVldGxlIGJ1bm55IEZ1LUZ1Iik7CisgICAgICAgIGZ1RlVOYW1lcy5wdXQoZnVfRlVfRk9PLCAiemVlIGxlZXRlbCBidW5ueSBGb28tRm9vIik7CisgICAgICAgIGZ1RlVOYW1lcy5wdXQoVUxvY2FsZS5VUywgImxpdHRsZSBidW5ueSBGb28gRm9vIik7CisKKyAgICAgICAgQ29sbGF0b3IgZnJjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLkZSQU5DRSk7CisgICAgICAgLyogQ29sbGF0b3IgdXNjb2wgPSAqL0NvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRvciBnZWNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIENvbGxhdG9yIGpwY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5KQVBBTik7CisgICAgICAgIENvbGxhdG9yIGZ1Y29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZnVfRlUpOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3JJbmZvW10gaW5mbyA9IHsKKyAgICAgICAgICAgIG5ldyBDb2xsYXRvckluZm8oVUxvY2FsZS5VUywgZnJjb2wsIG51bGwpLAorICAgICAgICAgICAgbmV3IENvbGxhdG9ySW5mbyhVTG9jYWxlLkZSQU5DRSwgZ2Vjb2wsIG51bGwpLAorICAgICAgICAgICAgbmV3IENvbGxhdG9ySW5mbyhmdV9GVSwganBjb2wsIGZ1RlVOYW1lcyksCisgICAgICAgIH07CisgICAgICAgIFRlc3RGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICBmYWN0b3J5ID0gbmV3IFRlc3RGYWN0b3J5KGluZm8pOworICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEuIik7IAorICAgICAgICB9CisgICAgICAgIC8vIGNvdmVyYWdlCisgICAgICAgIHsKKyAgICAgICAgICAgIFRlc3RGYWN0b3J5V3JhcHBlciB3cmFwcGVyID0gbmV3IFRlc3RGYWN0b3J5V3JhcHBlcihmYWN0b3J5KTsgLy8gaW4gamF2YSwgZ2MgbGV0cyB1cyBlYXNpbHkgbXVsdGlwbHkgcmVmZXJlbmNlIQorICAgICAgICAgICAgT2JqZWN0IGtleSA9IENvbGxhdG9yLnJlZ2lzdGVyRmFjdG9yeSh3cmFwcGVyKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUsIGZ1X0ZVX0ZPTyk7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGxvY2FsZSBkYXRhLiIpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCIqKiogZGVmYXVsdCBuYW1lOiAiICsgbmFtZSk7CisgICAgICAgICAgICBDb2xsYXRvci51bnJlZ2lzdGVyKGtleSk7CisgICAgCisgICAgICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSgiYmFyX0JBUiIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuMSA9IGNoZWNrQXZhaWxhYmxlKCJiZWZvcmUgcmVnaXN0ZXJGYWN0b3J5Iik7CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQ29sbGF0b3IucmVnaXN0ZXJGYWN0b3J5KGZhY3RvcnkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbjIgPSBjaGVja0F2YWlsYWJsZSgiYWZ0ZXIgcmVnaXN0ZXJGYWN0b3J5Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENvbGxhdG9yIG5jb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIGlmICghZnJjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZyY29sbCBmb3IgZW5fVVMgZmFpbGVkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5jb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShmdV9GVV9GT08pOworICAgICAgICAgICAgaWYgKCFqcGNvbC5lcXVhbHMobmNvbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigianBjb2wgZm9yIGZ1X0ZVX0ZPTyBmYWlsZWQsIGdvdDogIiArIG5jb2wpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IENvbGxhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgICAgICBib29sZWFuIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxlc1tpXS5lcXVhbHMoZnVfRlUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJuZXcgbG9jYWxlIGZ1X0ZVIG5vdCByZXBvcnRlZCBhcyBzdXBwb3J0ZWQgbG9jYWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUpOworICAgICAgICAgICAgaWYgKCEibGl0dGxlIGJ1bm55IEZvbyBGb28iLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCAiICsgbmFtZSArICIgZm9yIGZ1X0ZVIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5hbWUgPSBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShmdV9GVSwgZnVfRlVfRk9PKTsKKyAgICAgICAgICAgIGlmICghInplZSBsZWV0ZWwgYnVubnkgRm9vLUZvbyIuZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZvdW5kICIgKyBuYW1lICsgIiBmb3IgZnVfRlUgaW4gZnVfRlVfRk9PIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghQ29sbGF0b3IudW5yZWdpc3RlcihrZXkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byB1bnJlZ2lzdGVyIGZhY3RvcnkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IG4zID0gY2hlY2tBdmFpbGFibGUoImFmdGVyIHVucmVnaXN0ZXIiKTsKKyAgICAgICAgICAgIGFzc2VydFRydWUoInJlZ2lzdGVyIGluY3JlYXNlcyBjb3VudCIsIG4yPm4xKTsKKyAgICAgICAgICAgIGFzc2VydFRydWUoInVucmVnaXN0ZXIgcmVzdG9yZXMgY291bnQiLCBuMz09bjEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZnVfRlUpOworICAgICAgICAgICAgaWYgKCFmdWNvbC5lcXVhbHMobmNvbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29sbGF0b3IgYWZ0ZXIgdW5yZWdpc3RlciBkb2VzIG5vdCBtYXRjaCBvcmlnaW5hbCBmdV9GVSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIGludGVncml0eSBvZiB0aGUgcmVzdWx0cyBvZiBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpLgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGl0ZW1zIHJldHVybmVkLgorICAgICAqLworICAgIGludCBjaGVja0F2YWlsYWJsZShTdHJpbmcgbXNnKSB7CisgICAgICAgIExvY2FsZSBsb2NzW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGlmICghYXNzZXJ0VHJ1ZSgiZ2V0QXZhaWxhYmxlTG9jYWxlcyAhPSBudWxsIiwgbG9jcyE9bnVsbCkpIHJldHVybiAtMTsKKyAgICAgICAgY2hlY2tBcnJheShtc2csIGxvY3MsIG51bGwpOworICAgICAgICBVTG9jYWxlIHVsb2NzW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBpZiAoIWFzc2VydFRydWUoImdldEF2YWlsYWJsZVVMb2NhbGVzICE9IG51bGwiLCB1bG9jcyE9bnVsbCkpIHJldHVybiAtMTsKKyAgICAgICAgY2hlY2tBcnJheShtc2csIHVsb2NzLCBudWxsKTsKKyAgICAgICAgLy8gVGhpcyBpcyBub3QgdHJ1ZSBiZWNhdXNlIHNpbmNlIFVMb2NhbGUgb2JqZWN0cyB3aXRoIHNjcmlwdCBjb2RlIGNhbm5vdCBiZSAKKyAgICAgICAgLy8gY29udmVydGVkIHRvIExvY2FsZSBvYmplY3RzCisgICAgICAgIC8vYXNzZXJ0VHJ1ZSgiZ2V0QXZhaWxhYmxlTG9jYWxlcygpLmxlbmd0aCA9PSBnZXRBdmFpbGFibGVVTG9jYWxlcygpLmxlbmd0aCIsIGxvY3MubGVuZ3RoID09IHVsb2NzLmxlbmd0aCk7CisgICAgICAgIHJldHVybiBsb2NzLmxlbmd0aDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEtXW10gPSB7CisgICAgICAgICJjb2xsYXRpb24iCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBLV1ZBTFtdID0geworICAgICAgICAicGhvbmVib29rIiwKKyAgICAgICAgInN0cm9rZSIKKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdFNlcGFyYXRlVHJlZXMoKSB7CisgICAgICAgIFN0cmluZyBrd1tdID0gQ29sbGF0b3IuZ2V0S2V5d29yZHMoKTsKKyAgICAgICAgaWYgKCFhc3NlcnRUcnVlKCJnZXRLZXl3b3JkcyAhPSBudWxsIiwga3chPW51bGwpKSByZXR1cm47CisgICAgICAgIGNoZWNrQXJyYXkoImdldEtleXdvcmRzIiwga3csIEtXKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBrd3ZhbFtdID0gQ29sbGF0b3IuZ2V0S2V5d29yZFZhbHVlcyhLV1swXSk7CisgICAgICAgIGlmICghYXNzZXJ0VHJ1ZSgiZ2V0S2V5d29yZFZhbHVlcyAhPSBudWxsIiwga3d2YWwhPW51bGwpKSByZXR1cm47CisgICAgICAgIGNoZWNrQXJyYXkoImdldEtleXdvcmRWYWx1ZXMiLCBrd3ZhbCwgS1dWQUwpOworCisgICAgICAgIGJvb2xlYW4gaXNBdmFpbGFibGVbXSA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBVTG9jYWxlIGVxdWl2ID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoS1dbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZnIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXZhaWxhYmxlKTsKKyAgICAgICAgaWYgKGFzc2VydFRydWUoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KGZyKSE9bnVsbCIsIGVxdWl2IT1udWxsKSkgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChmcikiLCAiZnIiLCBlcXVpdi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRUcnVlKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChmcikuaXNBdmFpbGFibGU9PXRydWUiLAorICAgICAgICAgICAgICAgICAgIGlzQXZhaWxhYmxlWzBdID09IHRydWUpOworICAgICAgICAKKyAgICAgICAgZXF1aXYgPSBDb2xsYXRvci5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChLV1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZnJfRlIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZSk7CisgICAgICAgIGlmIChhc3NlcnRUcnVlKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChmcl9GUikhPW51bGwiLCBlcXVpdiE9bnVsbCkpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoZnJfRlIpIiwgImZyIiwgZXF1aXYudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0VHJ1ZSgiZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoZnJfRlIpLmlzQXZhaWxhYmxlPT10cnVlIiwKKyAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZVswXSA9PSB0cnVlKTsKKworICAgICAgICBlcXVpdiA9IENvbGxhdG9yLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KEtXWzBdLCBuZXcgVUxvY2FsZSgiemhfSGFucyIpKTsKKyAgICAgICAgaWYgKGFzc2VydFRydWUoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KHpoX0hhbnMpIT1udWxsIiwgZXF1aXYhPW51bGwpKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KHpoX0hhbnMpIiwgInpoIiwgZXF1aXYudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KCkgeworICAgICAgICBTdHJpbmcga3dbXSA9IENvbGxhdG9yLmdldEtleXdvcmRzKCk7CisgICAgICAgIGZpbmFsIFN0cmluZyBEQVRBW10gPSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGUiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZUBjb2xsYXRpb249ZGlyZWN0IiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPXRyYWRpdGlvbmFsIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPWdiMjMxMmhhbiIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlQGNvbGxhdGlvbj1zdHJva2UiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZUBjb2xsYXRpb249cGlueWluIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPXBob25lYm9vayIsICJkZUBjb2xsYXRpb249cGhvbmVib29rIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPWJpZzVoYW4iLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVCIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlX0FUQGNvbGxhdGlvbj1kaXJlY3QiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249dHJhZGl0aW9uYWwiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249Z2IyMzEyaGFuIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVfQVRAY29sbGF0aW9uPXN0cm9rZSIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlX0FUQGNvbGxhdGlvbj1waW55aW4iLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249cGhvbmVib29rIiwgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249YmlnNWhhbiIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5sIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubEBjb2xsYXRpb249ZGlyZWN0IiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRSIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPWRpcmVjdCIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPXRyYWRpdGlvbmFsIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249Z2IyMzEyaGFuIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249c3Ryb2tlIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249cGlueWluIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249YmlnNWhhbiIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPXBob25lYm9vayIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5fVVNfVkFMTEVZR0lSTCIsImVuIiwiZiIKKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIGZpbmFsIGludCBEQVRBX0NPVU5UPShEQVRBLmxlbmd0aC8zKTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaT0wO2k8REFUQV9DT1VOVDtpKyspIHsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNBdmFpbGFibGVbXSA9IG5ldyBib29sZWFuWzFdOworICAgICAgICAgICAgVUxvY2FsZSBpbnB1dCA9IG5ldyBVTG9jYWxlKERBVEFbKGkqMykrMF0pOworICAgICAgICAgICAgVUxvY2FsZSBleHBlY3QgPSBuZXcgVUxvY2FsZShEQVRBWyhpKjMpKzFdKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZXhwZWN0QXZhaWxhYmxlID0gREFUQVsoaSozKSsyXS5lcXVhbHMoInQiKTsKKyAgICAgICAgICAgIFVMb2NhbGUgYWN0dWFsID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoa3dbMF0saW5wdXQsaXNBdmFpbGFibGUpOworICAgICAgICAgICAgaWYoIWFjdHVhbC5lcXVhbHMoZXhwZWN0KSB8fCAoZXhwZWN0QXZhaWxhYmxlIT1pc0F2YWlsYWJsZVswXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiIyIgKyBpICsgIjogQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoIiArIGlucHV0ICsgIik9IiArIGFjdHVhbCArICIsIGF2YWlsICIgKyBuZXcgQm9vbGVhbihpc0F2YWlsYWJsZVswXSkgKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCAiICsgZXhwZWN0ICsgIiBhdmFpbCAiICsgbmV3IEJvb2xlYW4oZXhwZWN0QXZhaWxhYmxlKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIjIiArIGkgKyAiOiBDb2xsYXRvci5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudCgiICsgaW5wdXQgKyAiKT0iICsgYWN0dWFsICsgIiwgYXZhaWwgIiArIG5ldyBCb29sZWFuKGlzQXZhaWxhYmxlWzBdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vICAgIHB1YmxpYyB2b2lkIFByaW50RnVuY3Rpb25hbEVxdWl2YWxlbnRMaXN0KCkgeworLy8gICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKy8vICAgICAgICBTdHJpbmdbXSBrZXl3b3JkcyA9IENvbGxhdG9yLmdldEtleXdvcmRzKCk7CisvLyAgICAgICAgbG9nbG4oIkNvbGxhdGlvbiIpOworLy8gICAgICAgIGxvZ2xuKCJQb3NzaWJsZSBrZXl3b3JkPXZhbHVlcyBwYWlyczoiKTsKKy8vICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENvbGxhdG9yLmdldEtleXdvcmRzKCkubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9IENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoa2V5d29yZHNbaV0pOworLy8gICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyArK2opIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGtleXdvcmRzW2ldICsgIj0iICsgdmFsdWVzW2pdKTsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgbG9nbG4oIkRpZmZlcmluZyBDb2xsYXRvcnM6Iik7CisvLyAgICAgICAgYm9vbGVhbltdIGlzQXZhaWxhYmxlID0ge3RydWV9OworLy8gICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbG9jYWxlcy5sZW5ndGg7ICsraykgeworLy8gICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlc1trXS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkVOR0xJU0gpICsgIiBbIiArbG9jYWxlc1trXSArICJdIik7CisvLyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENvbGxhdG9yLmdldEtleXdvcmRzKCkubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBiYXNlID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoa2V5d29yZHNbaV0sbG9jYWxlc1trXSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9IENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoa2V5d29yZHNbaV0pOworLy8gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoa2V5d29yZHNbaV0pLmxlbmd0aDsrK2opIHsgICAgICAgICAgICAgICAgICAgICAgICAgIAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgb3RoZXIgPSBDb2xsYXRvci5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChrZXl3b3Jkc1tpXSwgCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUxvY2FsZShsb2NhbGVzW2tdICsgIkAiICsga2V5d29yZHNbaV0gKyAiPSIgKyB2YWx1ZXNbal0pLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdmFpbGFibGUpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0F2YWlsYWJsZVswXSAmJiAhb3RoZXIuZXF1YWxzKGJhc2UpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiXHQiICsga2V5d29yZHNbaV0gKyAiPSIgKyB2YWx1ZXNbal0gKyAiO1x0IiArIGJhc2UgKyAiO1x0IiArIG90aGVyKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU3BhbmlzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25TcGFuaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2E4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU3BhbmlzaFRlc3QuamF2YQpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvblNwYW5pc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9lc2NvbGwuY3BwCisgKiovCisgCisgcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKKyBpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKKyBpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworIGltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorIHB1YmxpYyBjbGFzcyBDb2xsYXRpb25TcGFuaXNoVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvblNwYW5pc2hUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweDYxLCAweDZjLCAweDY5LCAweDYxLCAweDczfSwKKyAgICAgICAgezB4NDUsIDB4NmMsIDB4NmMsIDB4NjksIDB4NmYsIDB4NzR9LAorICAgICAgICB7MHg0OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zn0sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2YywgMHg2OSwgMHg2MSwgMHg3M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjN9LAorICAgICAgICB7MHg0OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zn0sCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NjEsIDB4NmMsIDB4NmMsIDB4NjksIDB4NjEsIDB4NzN9LAorICAgICAgICB7MHg0NSwgMHg2ZCwgMHg2OSwgMHg2ZiwgMHg3NH0sCisgICAgICAgIHsweDY4LCAweDY1LCAweDZjLCAweDZjLCAweDRmfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDZjLCAweDZjLCAweDY5LCAweDYxLCAweDczfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDY4LCAweDY1LCAweDZjLCAweDZjLCAweDRmfSwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC8vIHRlc3QgcHJpbWFyeSA+IDUKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAwCisgICAgfTsKKyAgICAKKyAgICAvL3N0YXRpYyBwdWJsaWMgQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlcyIsICJFUyIpKTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uU3BhbmlzaFRlc3QoKSB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlcyIsICJFUyIpKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCl7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNSA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaSA9IDU7IGkgPCA5OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gYW1pbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvIHRoZSBzcGFuaXNoIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjM2Mzk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDQ2NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuTW9kdWxlVGVzdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZS5EYXRhTWFwOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SYXdDb2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uVGVzdCBleHRlbmRzIE1vZHVsZVRlc3R7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBDb2xsYXRpb25UZXN0KCkgeworICAgICAgICBzdXBlcigiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvIiwgIkRhdGFEcml2ZW5Db2xsYXRpb25UZXN0Iik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NNb2R1bGVzKCkgeworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXIgPSB0LmdldFNldHRpbmdzSXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBEYXRhTWFwIHNldHRpbmcgPSAoRGF0YU1hcCkgaXRlci5uZXh0KCk7CisgICAgICAgICAgICBwcm9jZXNzU2V0dGluZyhzZXR0aW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgc3RhdGljIHZvaWQgZG9UZXN0KFRlc3RGbXdrIHRlc3QsIFJ1bGVCYXNlZENvbGxhdG9yIGNvbCwgU3RyaW5nIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpCisgICAgeworICAgICAgICBkb1Rlc3RWYXJpYW50KHRlc3QsIGNvbCwgc291cmNlLCB0YXJnZXQsIHJlc3VsdCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQodGVzdCwgY29sLCB0YXJnZXQsIHNvdXJjZSwgMSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KHRlc3QsIGNvbCwgdGFyZ2V0LCBzb3VyY2UsIC0xKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQodGVzdCwgY29sLCB0YXJnZXQsIHNvdXJjZSwgMCk7CisgICAgICAgIH0KKworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgYmFja0FuZEZvcnRoKHRlc3QsIGl0ZXIpOworICAgICAgICBpdGVyLnNldFRleHQodGFyZ2V0KTsKKyAgICAgICAgYmFja0FuZEZvcnRoKHRlc3QsIGl0ZXIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW50ZWdlciBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgY29sbGF0aW9uIG9yZGVycworICAgICAqIHJldHVybmVkIGJ5IGNhbGxzIHRvIG5leHQgb24gdGhlIHNwZWNpZmllZCBpdGVyYXRvcgorICAgICAqLworICAgIHN0YXRpYyBpbnRbXSBnZXRPcmRlcnMoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIpIAorICAgIHsKKyAgICAgICAgaW50IG1heFNpemUgPSAxMDA7CisgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgaW50W10gb3JkZXJzID0gbmV3IGludFttYXhTaXplXTsKKyAgICAgICAgCisgICAgICAgIGludCBvcmRlcjsKKyAgICAgICAgd2hpbGUgKChvcmRlciA9IGl0ZXIubmV4dCgpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBpZiAoc2l6ZSA9PSBtYXhTaXplKSB7CisgICAgICAgICAgICAgICAgbWF4U2l6ZSAqPSAyOworICAgICAgICAgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W21heFNpemVdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkob3JkZXJzLCAwLCB0ZW1wLCAgMCwgc2l6ZSk7CisgICAgICAgICAgICAgICAgb3JkZXJzID0gdGVtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9yZGVyc1tzaXplKytdID0gb3JkZXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChtYXhTaXplID4gc2l6ZSkgeworICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9yZGVycywgMCwgdGVtcCwgIDAsIHNpemUpOworICAgICAgICAgICAgb3JkZXJzID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3JkZXJzOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBiYWNrQW5kRm9ydGgoVGVzdEZtd2sgdGVzdCwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIpIAorICAgIHsKKyAgICAgICAgLy8gUnVuIHRocm91Z2ggdGhlIGl0ZXJhdG9yIGZvcndhcmRzIGFuZCBzdGljayBpdCBpbnRvIGFuIGFycmF5CisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgaW50W10gb3JkZXJzID0gZ2V0T3JkZXJzKGl0ZXIpOworICAgIAorICAgICAgICAvLyBOb3cgZ28gdGhyb3VnaCBpdCBiYWNrd2FyZHMgYW5kIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIHNhbWUgdmFsdWVzCisgICAgICAgIGludCBpbmRleCA9IG9yZGVycy5sZW5ndGg7CisgICAgICAgIGludCBvOworICAgIAorICAgICAgICAvLyByZXNldCB0aGUgaXRlcmF0b3IKKyAgICAgICAgaXRlci5yZXNldCgpOworICAgIAorICAgICAgICB3aGlsZSAoKG8gPSBpdGVyLnByZXZpb3VzKCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGlmIChvICE9IG9yZGVyc1stLWluZGV4XSkgeworICAgICAgICAgICAgICAgIGlmIChvID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGluZGV4ID4gMCAmJiBvcmRlcnNbaW5kZXhdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IC0tOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBpZiAobyAhPSBvcmRlcnNbaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJNaXNtYXRjaCBhdCBpbmRleCAiICsgaW5kZXggKyAiOiAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9yZGVyc1tpbmRleF0pICsgIiB2cyAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHdoaWxlIChpbmRleCAhPSAwICYmIG9yZGVyc1tpbmRleCAtIDFdID09IDApIHsKKyAgICAgICAgICBpbmRleCAtLTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoaW5kZXggIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICJEaWRuJ3QgZ2V0IGJhY2sgdG8gYmVnaW5uaW5nIC0gaW5kZXggaXMgIjsKKyAgICAgICAgICAgIHRlc3QuZXJybG4obXNnICsgaW5kZXgpOworICAgIAorICAgICAgICAgICAgaXRlci5yZXNldCgpOworICAgICAgICAgICAgdGVzdC5lcnIoIm5leHQ6ICIpOworICAgICAgICAgICAgd2hpbGUgKChvID0gaXRlci5uZXh0KCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGV4U3RyaW5nID0gIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobykgKyAiICI7CisgICAgICAgICAgICAgICAgdGVzdC5lcnIoaGV4U3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlc3QuZXJybG4oIiIpOworICAgICAgICAgICAgdGVzdC5lcnIoInByZXY6ICIpOworICAgICAgICAgICAgd2hpbGUgKChvID0gaXRlci5wcmV2aW91cygpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhleFN0cmluZyA9ICIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG8pICsgIiAiOworICAgICAgICAgICAgICAgICB0ZXN0LmVycihoZXhTdHJpbmcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVzdC5lcnJsbigiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgU3RyaW5nIG1fc2VxdWVuY2VfOworICAgIHByaXZhdGUgaW50IG1fc2VxdWVuY2VJbmRleF87CisgICAgcHJpdmF0ZSBTdHJpbmcgbV9zb3VyY2VfOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fdGFyZ2V0XyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBwcml2YXRlIGludCBtX25leHRSZWxhdGlvbl87CisgICAgcHJpdmF0ZSBpbnQgbV9yZWxhdGlvbl87CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NTZXR0aW5nKERhdGFNYXAgc2V0dGluZ3MpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sID0gbnVsbDsKKyAgICAgICAgLy8gb2sgaSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZSBzaW5jZSBpdCBzZWVtcyBsaWtlIHdlIGNhbiBoYXZlCisgICAgICAgIC8vIG11bHRpcGxlIGxvY2FsZXMgZm9yIGVhY2ggdGVzdAorICAgICAgICBTdHJpbmcgbG9jYWxlID0gc2V0dGluZ3MuZ2V0U3RyaW5nKCJUZXN0TG9jYWxlIik7CisgICAgICAgIAorICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBjYXNlIHdoZXJlIHdlIGhhdmUgbG9jYWxlCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIExvY2FsZSBsID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NhbGUpOworICAgICAgICAgICAgICAgIGNvbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsKTsKKyAgICAgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIGNvbGxhdG9yIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBjb2xsYXRvciBmb3IgbG9jYWxlICIgKyBsb2NhbGUpOworICAgICAgICAgICAgcHJvY2Vzc1NldHRpbmcyKHNldHRpbmdzLCBjb2wpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlcyA9IHNldHRpbmdzLmdldFN0cmluZygiUnVsZXMiKTsKKyAgICAgICAgLy8gb2sgaSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZSBzaW5jZSBpdCBzZWVtcyBsaWtlIHdlIGNhbiBoYXZlCisgICAgICAgIC8vIG11bHRpcGxlIHJ1bGVzIGZvciBlYWNoIHRlc3QKKyAgICAgICAgaWYgKHJ1bGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGhlcmUgd2UgZGVhbCB3aXRoIHJ1bGVzCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgbG9jYWxlIGRhdGE6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBjcmVhdGluZyBjb2xsYXRvciBmb3IgcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb2Nlc3NTZXR0aW5nMihzZXR0aW5ncywgY29sKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzU2V0dGluZzIoRGF0YU1hcCBzZXR0aW5ncyxSdWxlQmFzZWRDb2xsYXRvciBjb2wpCisgICAgeworCisgICAgICAgIC8vIG9rIGkgaGF2ZSB0byBiZSBjYXJlZnVsIGhlcmUgc2luY2UgaXQgc2VlbXMgbGlrZSB3ZSBjYW4gaGF2ZQorICAgICAgICAvLyBtdWx0aXBsZSBydWxlcyBmb3IgZWFjaCB0ZXN0CisgICAgICAgIFN0cmluZyBhcmd1bWVudHMgPSBzZXR0aW5ncy5nZXRTdHJpbmcoIkFyZ3VtZW50cyIpOworICAgICAgICBpZiAoYXJndW1lbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGhhbmRsZUFyZ3VtZW50cyhjb2wsIGFyZ3VtZW50cyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvY2Vzc1Rlc3RDYXNlcyhjb2wpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWRzIHRoZSBvcHRpb25zIHN0cmluZyBhbmQgc2V0cyBhcHByb3ByaWF0ZSBhdHRyaWJ1dGVzIGluIGNvbGxhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZUFyZ3VtZW50cyhSdWxlQmFzZWRDb2xsYXRvciBjb2wsIFN0cmluZyBhcmd1bWVudCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGJvb2xlYW4gcHJpbnRJbmZvID0gZmFsc2U7CisgICAgICAgIHdoaWxlIChpIDwgYXJndW1lbnQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoYXJndW1lbnQuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIC8vIGVhdCB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpICsrOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChpIDwgYXJndW1lbnQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIHNraXAgb3BlbmluZyAnWycKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5jaGFyQXQoaSkgPT0gJ1snKSB7CisgICAgICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmKCFpc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGluIGNvbGxhdGlvbiBhcmd1bWVudHMsIG1pc3NpbmcgWyIpOyAvLyBubyBvcGVuaW5nICdbJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyAhISEgZm9sbG93aW5nIGxpbmUgaGFzIG5vIGVmZmVjdAorICAgICAgICAgICAgICAgIHByaW50SW5mbz10cnVlOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHZhbHVlID0gYXJndW1lbnQuaW5kZXhPZignICcsIGkpOworICAgICAgICAgICAgU3RyaW5nIG9wdGlvbiA9IGFyZ3VtZW50LnN1YnN0cmluZyhpLCB2YWx1ZSk7CisgICAgICAgICAgICBpID0gYXJndW1lbnQuaW5kZXhPZignXScsIHZhbHVlKTsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb252YWx1ZSA9IGFyZ3VtZW50LnN1YnN0cmluZyh2YWx1ZSArIDEsIGkpOworICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICAgIC8vIHNvbWUgb3B0aW9ucyBhcmUgbm90IGFkZGVkIGJlY2F1c2UgdGhleSBoYXZlIG5vIHB1YmxpYyBhcGlzIHlldAorICAgICAgICAgICAgLy8gVE9ETyBhZGQgdGhlIHJlc3Qgb2YgdGhlIG9wdGlvbnMKKyAgICAgICAgICAgIGlmIChvcHRpb24uZXF1YWxzSWdub3JlQ2FzZSgiYWx0ZXJuYXRlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAob3B0aW9udmFsdWUuZXF1YWxzSWdub3JlQ2FzZSgibm9uLWlnbm9yYWJsZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29sLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCJzdHJlbmd0aCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIjEiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIjIiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9udmFsdWUuZXF1YWxzSWdub3JlQ2FzZSgiMyIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIjQiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUVVBVEVSTkFSWSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChwcmludEluZm8pIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhLiBTa2lwcGluZy4uLiIpOworICAgICAgICB9CisgICAgICAgIC8vICEhISBlZmZlY3QgaXMgb2RkLCBpZiBubyBtb2R1bGFyIGJ1aWxkLCB0aGlzIGVtaXRzIG5vCisgICAgICAgIC8vIG1lc3NhZ2UgYXQgYWxsLiAgSG93IGNvbWU/ICBIbW1tLiAgcHJpbnRJbmZvIGlzIG5ldmVyCisgICAgICAgIC8vIHRydWUgaWYgd2UgZ2V0IGhlcmUsIHNvIHRoaXMgY29kZSBpcyBuZXZlciBleGVjdXRlZC4KKyAgICAgICAgLyoKKyAgICAgICAgaWYocHJpbnRJbmZvID09IHRydWUgJiYgaXNNb2R1bGFyQnVpbGQoKSl7CisgICAgICAgICAgICBpbmZvbG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YS4gU2tpcHBpbmcuLi4iKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzVGVzdENhc2VzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbCkgeworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXIgPSB0LmdldERhdGFJdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIERhdGFNYXAgZTEgPSAgKERhdGFNYXApIGl0ZXIubmV4dCgpOworICAgICAgICAgICAgcHJvY2Vzc1NlcXVlbmNlKGNvbCwgZTEuZ2V0U3RyaW5nKCJzZXF1ZW5jZSIpKTsKKyAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzU2VxdWVuY2UoUnVsZUJhc2VkQ29sbGF0b3IgY29sLCBTdHJpbmcgc2VxdWVuY2UpIHsKKyAgICAgICAgLy8gVE9ETzogaGF2ZSBhIHNtYXJ0ZXIgdGVzdGVyIHRoYXQgcmVtZW1iZXJzIHRoZSBzZXF1ZW5jZSBhbmQgZW5zdXJlcworICAgICAgICAvLyB0aGF0IHRoZSBjb21wbGV0ZSBzZXF1ZW5jZSBpcyBpbiBvcmRlci4gVGhhdCBpcyB3aHkgSSBoYXZlIG1hZGUgYQorICAgICAgICAvLyBjb25zdHJhaW50IGluIHRoZSBzZXF1ZW5jZSBmb3JtYXQuCisgICAgICAgIG1fc2VxdWVuY2VfID0gc2VxdWVuY2U7CisgICAgICAgIG1fc2VxdWVuY2VJbmRleF8gPSAwOworICAgICAgICBtX25leHRSZWxhdGlvbl8gPSAtMTsKKyAgICAgICAgbV90YXJnZXRfLmRlbGV0ZSgwLCBtX3RhcmdldF8ubGVuZ3RoKCkpOworICAgICAgICBWZWN0b3IgdmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICBpbnQgbGFzdHNtYWxsZXJ0aGFuaW5kZXggPSAtMTsKKyAgICAgICAgZ2V0TmV4dEluU2VxdWVuY2UoKTsKKyAgICAgICAgd2hpbGUgKGdldE5leHRJblNlcXVlbmNlKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSBtX3RhcmdldF8udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGRvVGVzdCh0aGlzLCBjb2wsIG1fc291cmNlXywgdGFyZ2V0LCBtX3JlbGF0aW9uXyk7CisgICAgICAgICAgICBpbnQgdnNpemUgPSB2ZWN0b3Iuc2l6ZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHZzaXplIC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpdmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IGxhc3RzbWFsbGVydGhhbmluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdCh0aGlzLCBjb2wsIHNvdXJjZSwgdGFyZ2V0LCBtX3JlbGF0aW9uXyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3QodGhpcywgY29sLCBzb3VyY2UsIHRhcmdldCwgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhcmdldCk7CisgICAgICAgICAgICBpZiAobV9yZWxhdGlvbl8gPCAwKSB7CisgICAgICAgICAgICAgICAgbGFzdHNtYWxsZXJ0aGFuaW5kZXggPSB2c2l6ZSAtIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGhlIHNlcXVlbmNlIHRvIGJlIHRlc3RlZAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBnZXROZXh0SW5TZXF1ZW5jZSgpIHsKKyAgICAgICAgaWYgKG1fc2VxdWVuY2VJbmRleF8gPj0gbV9zZXF1ZW5jZV8ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gcXVvdGVkID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gcXVvdGVkc2luZ2xlID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZG9uZSA9IGZhbHNlOworICAgICAgICBpbnQgaSA9IG1fc2VxdWVuY2VJbmRleF87CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBtX3NvdXJjZV8gPSBtX3RhcmdldF8udG9TdHJpbmcoKTsKKyAgICAgICAgbV9yZWxhdGlvbl8gPSBtX25leHRSZWxhdGlvbl87CisgICAgICAgIG1fdGFyZ2V0Xy5kZWxldGUoMCwgbV90YXJnZXRfLmxlbmd0aCgpKTsKKyAgICAgICAgd2hpbGUgKGkgPCBtX3NlcXVlbmNlXy5sZW5ndGgoKSAmJiAhZG9uZSkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KG1fc2VxdWVuY2VfLCBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShjaCkpIHsKKyAgICAgICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFxdW90ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDNDIDogLy8gPAorICAgICAgICAgICAgICAgICAgICAgICAgbV9uZXh0UmVsYXRpb25fID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzRCA6IC8vID0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dFJlbGF0aW9uXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzRSA6IC8vID4KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dFJlbGF0aW9uXyA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyNyA6IC8vICcgdmVyeSBiYXNpYyBxdW90aW5nCisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkc2luZ2xlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwNWMgOiAvLyBcIHNpbmdsZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZHNpbmdsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2Lmluc2VydChtX3RhcmdldF8sIG9mZnNldCwgY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMjcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pbnNlcnQobV90YXJnZXRfLCBvZmZzZXQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1b3RlZHNpbmdsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAocXVvdGVkID09IHRydWUpIHsKKyAgICAgICAgICAgICAgZXJybG4oIlF1b3RlIGluIHNlcXVlbmNlIG5vdCBjbG9zZWQhIik7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisKKworICAgICAgICAgIG1fc2VxdWVuY2VJbmRleF8gPSBpOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZG9UZXN0VmFyaWFudChUZXN0Rm13ayB0ZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpCisgICAgeworICAgICAgICBib29sZWFuIHByaW50SW5mbyA9IGZhbHNlOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCAgPSBteUNvbGxhdGlvbi5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgaWYgKGNvbXBhcmVSZXN1bHQgIT0gcmVzdWx0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vICEhISBpZiBub3QgbW9kIGJ1aWxkLCBlcnJvciwgZWxzZSBub3RoaW5nLgorICAgICAgICAgICAgLy8gd2FybmxuIGlmIG5vdCBidWlsZCwgZXJyb3IsIGVsc2UgYWx3YXlzIHByaW50IHdhcm5pbmcuCisgICAgICAgICAgICAvLyBkbyB3ZSBuZWVkIGEgJ3F1aWV0IHdhcm5pbmc/JyAoZXJyIG9yIGxvZykuICBIbW1tLAorICAgICAgICAgICAgLy8gd291bGQgaXQgd29yayB0byBoYXZlIHRoZSAndmVyYm9zZScgZmxhZyBsZXQgeW91IAorICAgICAgICAgICAgLy8gc3VwcHJlc3Mgd2FybmluZ3M/ICBBcmUgdGhlcmUgZXZlciBzb21lIHdhcm5pbmdzIHlvdQorICAgICAgICAgICAgLy8gd2FudCB0byBzdXBwcmVzcywgYW5kIG90aGVycyB5b3UgZG9uJ3Q/CisgICAgICAgICAgICBpZighdGVzdC5pc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJDb21wYXJpbmcgXCIiICsgVXRpbGl0eS5oZXgoc291cmNlKSArICJcIiB3aXRoIFwiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleCh0YXJnZXQpICsgIlwiIGV4cGVjdGVkICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICIgKyBjb21wYXJlUmVzdWx0KTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHByaW50SW5mbyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IHNzayA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25LZXkgdHNrID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIGNvbXBhcmVSZXN1bHQgPSBzc2suY29tcGFyZVRvKHRzayk7CisgICAgICAgIGlmIChjb21wYXJlUmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZighdGVzdC5pc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJDb21wYXJpbmcgQ29sbGF0aW9uS2V5cyBvZiBcIiIgKyBVdGlsaXR5LmhleChzb3VyY2UpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgd2l0aCBcIiIgKyBVdGlsaXR5LmhleCh0YXJnZXQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgZXhwZWN0ZWQgIiArIHJlc3VsdCArICIgYnV0IGdvdCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjb21wYXJlUmVzdWx0KTsKKyAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICBwcmludEluZm8gPSB0cnVlOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUmF3Q29sbGF0aW9uS2V5IHNyc2sgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KCk7CisgICAgICAgIG15Q29sbGF0aW9uLmdldFJhd0NvbGxhdGlvbktleShzb3VyY2UsIHNyc2spOworICAgICAgICBSYXdDb2xsYXRpb25LZXkgdHJzayA9IG5ldyBSYXdDb2xsYXRpb25LZXkoKTsKKyAgICAgICAgbXlDb2xsYXRpb24uZ2V0UmF3Q29sbGF0aW9uS2V5KHRhcmdldCwgdHJzayk7CisgICAgICAgIGNvbXBhcmVSZXN1bHQgPSBzc2suY29tcGFyZVRvKHRzayk7CisgICAgICAgIGlmIChjb21wYXJlUmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZighdGVzdC5pc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJDb21wYXJpbmcgUmF3Q29sbGF0aW9uS2V5cyBvZiBcIiIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHNvdXJjZSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcIiB3aXRoIFwiIiArIFV0aWxpdHkuaGV4KHRhcmdldCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcIiBleHBlY3RlZCAiICsgcmVzdWx0ICsgIiBidXQgZ290ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNvbXBhcmVSZXN1bHQpOworICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgIHByaW50SW5mbyA9IHRydWU7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBobW1tLCBidXQgaGVyZSB3ZSBpc3N1ZSBhIHdhcm5pbmcKKyAgICAgICAgLy8gb25seSBkaWZmZXJlbmNlIGlzLCBvbmUgd2FybmluZyBvciB0d28sIGFuZCBkZXRhaWxlZCBpbmZvIG9yIG5vdD8KKyAgICAgICAgLy8gaG1tbSwgZG9lcyBzZWVtIHByZWZlcmFibGUgdG8gb21pdCBkZXRhaWwgaWYgd2Uga25vdyBpdCBpcyBkdWUgdG8gbWlzc2luZyByZXNvdXJjZSBkYXRhLgorICAgICAgICAvLyB3ZWxsLCBpZiB3ZSBsYWJlbCB0aGUgZXJyb3JzIGFzIHdhcm5pbmdzLCB3ZSBjYW4gbGV0IHBlb3BsZSBrbm93IHRoZSBkZXRhaWxzLCBidXQKKyAgICAgICAgLy8gYWxzbyBrbm93IHRoZXkgbWF5IGJlIGR1ZSB0byBtaXNzaW5nIHJlc291cmNlIGRhdGEuICBiYXNpY2FsbHkgdGhpcyBjb2RlIGlzIGFzc2VydGluZworICAgICAgICAvLyB0aGF0IHRoZSBlcnJvcnMgYXJlIGR1ZSB0byBtaXNzaW5nIHJlc291cmNlIGRhdGEsIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIHRydWUuCisgICAgICAgIGlmIChwcmludEluZm8pIHsKKyAgICAgICAgICAgIHRlc3Qud2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YSBza2lwcGluZy4iKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UaGFpVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRoYWlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJkNDcyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UaGFpVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzU1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L3JlZ2NvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvblRoYWlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIGZpbmFsIGludCBNQVhfRkFJTFVSRVNfVE9fU0hPVyA9IC0xOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uVGhhaVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE9kZCBjb3JuZXIgY29uZGl0aW9ucyB0YWtlbiBmcm9tICJIb3cgdG8gU29ydCBUaGFpIFdpdGhvdXQgUmV3cml0aW5nIFNvcnQiLAorICAgICAqIGJ5IERvdWcgQ29vcGVyLCBodHRwOi8vc2Vhc3JjLnRoLm5ldC9wYXBlci90aGFpc29ydC56aXAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29ybmVyQ2FzZXMoKSB7CisgICAgICAgIFN0cmluZyBURVNUU1tdID0geworICAgICAgICAgICAgLy8gU2hvcnRlciB3b3JkcyBwcmVjZWRlIGxvbmdlcgorICAgICAgICAgICAgIlx1MGUwMSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUwMSIsCisgICAgCisgICAgICAgICAgICAvLyBUb25lIG1hcmtzIGFyZSBjb25zaWRlcmVkIGFmdGVyIGxldHRlcnMgKGkuZS4gYXJlIHByaW1hcnkgaWdub3JhYmxlKQorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMiIsICAgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTQ5XHUwZTMyIiwKKyAgICAKKyAgICAgICAgICAgIC8vIGRpdHRvIGZvciBvdGhlciBvdmVyLW1hcmtzCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyIiwgICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMzJcdTBlNGMiLAorICAgIAorICAgICAgICAgICAgLy8gY29tbW9ubHkgdXNlZCBtYXJrLWluLWNvbnRleHQgb3JkZXIuCisgICAgICAgICAgICAvLyBJbiBlZmZlY3QsIG1hcmtzIGFyZSBzb3J0ZWQgYWZ0ZXIgZWFjaCBzeWxsYWJsZS4KKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzJcdTBlMDFcdTBlNDlcdTBlMzIiLCAgICI8IiwgICAgIlx1MGUwMVx1MGU0OFx1MGUzMlx1MGUwMVx1MGU0OVx1MGUzMiIsCisgICAgCisgICAgICAgICAgICAvLyBIeXBoZW5zIGFuZCBvdGhlciBwdW5jdHVhdGlvbiBmb2xsb3cgd2hpdGVzcGFjZSBidXQgY29tZSBiZWZvcmUgbGV0dGVycworICAgICAgICAgICAgIlx1MGUwMVx1MGUzMiIsICAgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTMyLSIsCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyLSIsICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMzJcdTBlMDFcdTBlMzIiLAorICAgIAorICAgICAgICAgICAgLy8gRG91YmxlciBmb2xsb3dzIGFuIGluZGVudGljYWwgd29yZCB3aXRob3V0IHRoZSBkb3VibGVyCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyIiwgICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMzJcdTBlNDYiLAorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMlx1MGU0NiIsICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMzJcdTBlMDFcdTBlMzIiLAorICAgIAorICAgICAgICAgICAgLy8gXHUwZTQ1IGFmdGVyIGVpdGhlciBcdTBlMjQgb3IgXHUwZTI2IGlzIHRyZWF0ZWQgYXMgYSBzaW5nbGUKKyAgICAgICAgICAgIC8vIGNvbWJpbmluZyBjaGFyYWN0ZXIsIHNpbWlsYXIgdG8gImMgPCBjaCIgaW4gdHJhZGl0aW9uYWwgc3BhbmlzaC4KKyAgICAgICAgICAgIC8vIFRPRE86IGJlZWYgdXAgdGhpcyBjYXNlCisgICAgICAgICAgICAiXHUwZTI0XHUwZTI5XHUwZTM1IiwgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUyNFx1MGU0NVx1MGUyOVx1MGUzNSIsCisgICAgICAgICAgICAiXHUwZTI2XHUwZTI5XHUwZTM1IiwgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUyNlx1MGU0NVx1MGUyOVx1MGUzNSIsCisgICAgCisgICAgICAgICAgICAvLyBWb3dlbHMgcmVvcmRlciwgc2hvdWxkIGNvbXBhcmUgXHUwZTJkIGFuZCBcdTBlMzQKKyAgICAgICAgICAgICJcdTBlNDBcdTBlMDFcdTBlMmQiLCAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTQwXHUwZTAxXHUwZTM0IiwKKyAgICAKKyAgICAgICAgICAgIC8vIFRvbmVzIGFyZSBjb21wYXJlZCBhZnRlciB0aGUgcmVzdCBvZiB0aGUgd29yZCAoZS5nLiBwcmltYXJ5IGlnbm9yYWJsZSkKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzJcdTBlMDFcdTBlNDhcdTBlMzIiLCAgICI8IiwgICAgIlx1MGUwMVx1MGU0OVx1MGUzMlx1MGUwMVx1MGUzMiIsCisgICAgCisgICAgICAgICAgICAvLyBQZXJpb2RzIGFyZSBpZ25vcmVkIGVudGlyZWx5CisgICAgICAgICAgICAiXHUwZTAxLlx1MGUwMS4iLCAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMzIiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gZ2V0VGhhaUNvbGxhdG9yKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBjb25zdHJ1Y3QgVGhhaSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmVBcnJheShjb2xsLCBURVNUUyk7IAorICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBhcmVBcnJheShSdWxlQmFzZWRDb2xsYXRvciBjLCBTdHJpbmdbXSB0ZXN0cykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ID0gMDsKKyAgICAgICAgICAgIGlmICh0ZXN0c1tpKzFdLmVxdWFscygiPCIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRlc3RzW2krMV0uZXF1YWxzKCI+IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QgPSAxOworICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXN0c1tpKzFdLmVxdWFscygiPSIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gMDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gZXhwZWN0ID0gSW50ZWdlci5kZWNvZGUodGVzdHNbaSsxXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3I6IHVua25vd24gb3BlcmF0b3IgIiArIHRlc3RzW2krMV0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBzMSA9IHRlc3RzW2ldOworICAgICAgICAgICAgU3RyaW5nIHMyID0gdGVzdHNbaSsyXTsKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGMsIHMxLCBzMiwgZXhwZWN0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpbnQgc2lnbihpbnQgaSApIHsKKyAgICAgICAgaWYgKGkgPCAwKSByZXR1cm4gLTE7CisgICAgICAgIGlmIChpID4gMCkgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkIHRoZSBleHRlcm5hbCBkaWN0aW9uYXJ5IGZpbGUsIHdoaWNoIGlzIGFscmVhZHkgaW4gcHJvcGVyCisgICAgICogc29ydGVkIG9yZGVyLCBhbmQgY29uZmlybSB0aGF0IHRoZSBjb2xsYXRvciBjb21wYXJlcyBlYWNoIGxpbmUgYXMKKyAgICAgKiBwcmVjZWRpbmcgdGhlIGZvbGxvd2luZyBsaW5lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REaWN0aW9uYXJ5KCkgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBnZXRUaGFpQ29sbGF0b3IoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGNvbnN0cnVjdCBUaGFpIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgCisgICAgICAgIC8vIFJlYWQgaW4gYSBkaWN0aW9uYXJ5IG9mIFRoYWkgd29yZHMKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBudWxsOworICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSAicml3b3Jkcy50eHQiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKGZpbGVOYW1lLCAiVVRGLTgiKTsKKyAgICAgICAgfSBjYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJTZWN1cml0eSBleGNlcHRpb24gZW5jb3VudGVyZWQgcmVhZGluZyB0ZXN0IGRhdGEgZmlsZS4iKTsKKyAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChpbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGluLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gaW9lKSB7fQorICAgICAgICAgICAgZXJybG4oIkVycm9yOiBjb3VsZCBub3Qgb3BlbiB0ZXN0IGZpbGU6ICIgKyBmaWxlTmFtZSAKKyAgICAgICAgICAgICAgICAgICsgIi4gQWJvcnRpbmcgdGVzdC4iKTsKKyAgICAgICAgICAgIHJldHVybjsgICAgICAgIAorICAgICAgICB9CisgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIHdvcmQgaW4gdGhlIGRpY3Rpb25hcnkgYW5kIGNvbXBhcmUgaXQgdG8gdGhlIHByZXZpb3VzCisgICAgICAgIC8vIHdvcmQuICBUaGV5IHNob3VsZCBiZSBpbiBzb3J0ZWQgb3JkZXIuCisgICAgICAgIC8vCisgICAgICAgIFN0cmluZyBsYXN0V29yZCA9ICIiOworICAgICAgICBpbnQgbGluZSA9IDA7CisgICAgICAgIGludCBmYWlsZWQgPSAwOworICAgICAgICBpbnQgd29yZENvdW50ID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgU3RyaW5nIHdvcmQgPSBpbi5yZWFkTGluZSgpOworICAgICAgICB3aGlsZSAod29yZCAhPSBudWxsKSB7CisgICAgICAgICAgICBsaW5lKys7CisgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBTa2lwIGNvbW1lbnRzIGFuZCBibGFuayBsaW5lcworICAgICAgICAgICAgaWYgKHdvcmQubGVuZ3RoKCkgPT0gMCB8fCB3b3JkLmNoYXJBdCgwKSA9PSAweDIzKSB7CisgICAgICAgICAgICAgICAgd29yZCA9IGluLnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBTaG93IHRoZSBmaXJzdCA4IHdvcmRzIGJlaW5nIGNvbXBhcmVkLCBzbyB3ZSBjYW4gc2VlIHdoYXQncyBoYXBwZW5pbmcKKyAgICAgICAgICAgICsrd29yZENvdW50OworICAgICAgICAgICAgaWYgKHdvcmRDb3VudCA8PSA4KSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIldvcmQgIiArIHdvcmRDb3VudCArICI6ICIgKyB3b3JkKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmIChsYXN0V29yZC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsLCBsYXN0V29yZCwgd29yZCwgLTEpOworICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBjb2xsLmNvbXBhcmUobGFzdFdvcmQsIHdvcmQpOyAKKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCsrOworICAgICAgICAgICAgICAgICAgICBpZiAoTUFYX0ZBSUxVUkVTX1RPX1NIT1cgPCAwIHx8IGZhaWxlZCA8PSBNQVhfRkFJTFVSRVNfVE9fU0hPVykgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsaW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgY29tcGFyZSgiICsgbGFzdFdvcmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIHdvcmQgKyAiKSByZXR1cm5lZCAiICsgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGV4cGVjdGVkIC0xXG4iOworICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGsxLCBrMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgazEgPSBjb2xsLmdldENvbGxhdGlvbktleShsYXN0V29yZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgazIgPSBjb2xsLmdldENvbGxhdGlvbktleSh3b3JkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IGdldENvbGxhdGlvbktleSByZXR1cm5lZCAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gImtleTE6ICIgKyBwcmV0dGlmeShrMSkgKyAiXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJrZXkyOiAiICsgcHJldHRpZnkoazIpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RXb3JkID0gd29yZDsKKyAgICAgICAgICAgIHdvcmQgPSBpbi5yZWFkTGluZSgpOworICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJJT0V4Y2VwdGlvbiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChmYWlsZWQgIT0gMCkgeworICAgICAgICAgICAgaWYgKGZhaWxlZCA+IE1BWF9GQUlMVVJFU19UT19TSE9XKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRvbyBtYW55IGZhaWx1cmVzOyBvbmx5IHRoZSBmaXJzdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBNQVhfRkFJTFVSRVNfVE9fU0hPVyArICIgZmFpbHVyZXMgd2VyZSBzaG93biIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIlN1bW1hcnk6ICIgKyBmYWlsZWQgKyAiIG9mICIgKyAobGluZSAtIDEpICsKKyAgICAgICAgICAgICAgICAgICIgY29tcGFyaXNvbnMgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbG9nbG4oIldvcmRzIGNoZWNrZWQ6ICIgKyB3b3JkQ291bnQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW52YWxpZFRoYWkoKSAKKyAgICB7CisgICAgICAgIFN0cmluZyB0ZXN0c1tdID0geyAiXHUwRTQ0XHUwRTAxXHUwRTQ0XHUwRTAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFNDRcdTBFMDFcdTBFMDFcdTBFNDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEU0NFx1MEUwMVx1MEU0NCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTAxXHUwRTAxXHUwRTQ0XHUwRTQ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFNDRcdTBFNDRcdTBFMDFcdTBFMDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEU0NFx1MEU0NFx1MEUwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yOworICAgICAgICBTdHJDbXAgY29tcGFyYXRvcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gZ2V0VGhhaUNvbGxhdG9yKCk7CisgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IFN0ckNtcCgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgY29uc3RydWN0IFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQXJyYXlzLnNvcnQodGVzdHMsIGNvbXBhcmF0b3IpOworICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiA8IHRlc3RzLmxlbmd0aDsgaiArKykgeworICAgICAgICAgICAgICAgIGlmIChjb2xsYXRvci5jb21wYXJlKHRlc3RzW2ldLCB0ZXN0c1tqXSkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGluY29uc2lzdGVuY3kgb3JkZXJpbmcgZm91bmQhCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvbnNpc3RlbnQgb3JkZXJpbmcgYmV0d2VlbiBzdHJpbmdzICIgKyBpIAorICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kICIgKyBqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IgCisgICAgICAgICAgICAgICAgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdHNbaV0pOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcmF0b3IpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSZW9yZGVyaW5nKCkgCisgICAgeworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsKKyAgICAgICAgICAgICJcdTBFNDFjXHUwMzAxIiwgICAgICAiPSIsICJcdTBFNDFcdTAxMDciLCAvLyBjb21wb3NpdGlvbgorICAgICAgICAgICAgIlx1MEU0MVx1RDgzNVx1REZDRSIsICI8IiwgIlx1MEU0MVx1RDgzNVx1REZDRiIsIC8vIHN1cHBsZW1lbnRhcmllcworICAgICAgICAgICAgIlx1MEU0MVx1RDgzNFx1REQ1RiIsICI9IiwgIlx1MEU0MVx1RDgzNFx1REQ1OFx1RDgzNFx1REQ2NSIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBzdXBwbGVtZW50YXJ5CisgICAgICAgICAgICAiXHUwRTQxXHVEODdFXHVEQzAyIiwgIj0iLCAiXHUwRTQxXHU0RTQxIiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIEJNUAorICAgICAgICAgICAgIlx1MEU0MVx1MDMwMSIsICAgICAgICI9IiwgIlx1MEU0MVx1MDMwMSIsIC8vIHVuc2FmZSAoanVzdCBjaGVja2luZyBiYWNrd2FyZHMgaXRlcmF0aW9uKQorICAgICAgICAgICAgIlx1MEU0MVx1MDMwMVx1MDMxNiIsICI9IiwgIlx1MEU0MVx1MDMxNlx1MDMwMSIsCisKKyAgICAgICAgICAgICJhYmNcdTBFNDFjXHUwMzAxIiwgICAgICAiPSIsICJhYmNcdTBFNDFcdTAxMDciLCAvLyBjb21wb3NpdGlvbgorICAgICAgICAgICAgImFiY1x1MEU0MVx1RDgzNFx1REMwMCIsICI8IiwgImFiY1x1MEU0MVx1RDgzNFx1REMwMSIsIC8vIHN1cHBsZW1lbnRhcmllcworICAgICAgICAgICAgImFiY1x1MEU0MVx1RDgzNFx1REQ1RiIsICI9IiwgImFiY1x1MEU0MVx1RDgzNFx1REQ1OFx1RDgzNFx1REQ2NSIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBzdXBwbGVtZW50YXJ5CisgICAgICAgICAgICAiYWJjXHUwRTQxXHVEODdFXHVEQzAyIiwgIj0iLCAiYWJjXHUwRTQxXHU0RTQxIiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIEJNUAorICAgICAgICAgICAgImFiY1x1MEU0MVx1MDMwMSIsICAgICAgICI9IiwgImFiY1x1MEU0MVx1MDMwMSIsIC8vIHVuc2FmZSAoanVzdCBjaGVja2luZyBiYWNrd2FyZHMgaXRlcmF0aW9uKQorICAgICAgICAgICAgImFiY1x1MEU0MVx1MDMwMVx1MDMxNiIsICI9IiwgImFiY1x1MEU0MVx1MDMxNlx1MDMwMSIsCisKKyAgICAgICAgICAgICJcdTBFNDFjXHUwMzAxYWJjIiwgICAgICAiPSIsICJcdTBFNDFcdTAxMDdhYmMiLCAvLyBjb21wb3NpdGlvbgorICAgICAgICAgICAgIlx1MEU0MVx1RDgzNFx1REMwMGFiYyIsICI8IiwgIlx1MEU0MVx1RDgzNFx1REMwMWFiYyIsIC8vIHN1cHBsZW1lbnRhcmllcworICAgICAgICAgICAgIlx1MEU0MVx1RDgzNFx1REQ1RmFiYyIsICI9IiwgIlx1MEU0MVx1RDgzNFx1REQ1OFx1RDgzNFx1REQ2NWFiYyIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBzdXBwbGVtZW50YXJ5CisgICAgICAgICAgICAiXHUwRTQxXHVEODdFXHVEQzAyYWJjIiwgIj0iLCAiXHUwRTQxXHU0RTQxYWJjIiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIEJNUAorICAgICAgICAgICAgIlx1MEU0MVx1MDMwMWFiYyIsICAgICAgICI9IiwgIlx1MEU0MVx1MDMwMWFiYyIsIC8vIHVuc2FmZSAoanVzdCBjaGVja2luZyBiYWNrd2FyZHMgaXRlcmF0aW9uKQorICAgICAgICAgICAgIlx1MEU0MVx1MDMwMVx1MDMxNmFiYyIsICI9IiwgIlx1MEU0MVx1MDMxNlx1MDMwMWFiYyIsCisKKyAgICAgICAgICAgICJhYmNcdTBFNDFjXHUwMzAxYWJjIiwgICAgICAiPSIsICJhYmNcdTBFNDFcdTAxMDdhYmMiLCAvLyBjb21wb3NpdGlvbgorICAgICAgICAgICAgImFiY1x1MEU0MVx1RDgzNFx1REMwMGFiYyIsICI8IiwgImFiY1x1MEU0MVx1RDgzNFx1REMwMWFiYyIsIC8vIHN1cHBsZW1lbnRhcmllcworICAgICAgICAgICAgImFiY1x1MEU0MVx1RDgzNFx1REQ1RmFiYyIsICI9IiwgImFiY1x1MEU0MVx1RDgzNFx1REQ1OFx1RDgzNFx1REQ2NWFiYyIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBzdXBwbGVtZW50YXJ5CisgICAgICAgICAgICAiYWJjXHUwRTQxXHVEODdFXHVEQzAyYWJjIiwgIj0iLCAiYWJjXHUwRTQxXHU0RTQxYWJjIiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIEJNUAorICAgICAgICAgICAgImFiY1x1MEU0MVx1MDMwMWFiYyIsICAgICAgICI9IiwgImFiY1x1MEU0MVx1MDMwMWFiYyIsIC8vIHVuc2FmZSAoanVzdCBjaGVja2luZyBiYWNrd2FyZHMgaXRlcmF0aW9uKQorICAgICAgICAgICAgImFiY1x1MEU0MVx1MDMwMVx1MDMxNmFiYyIsICI9IiwgImFiY1x1MEU0MVx1MDMxNlx1MDMwMWFiYyIsCisgICAgICAgIH07CisKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3I7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilnZXRUaGFpQ29sbGF0b3IoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGNvbnN0cnVjdCBUaGFpIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZUFycmF5KGNvbGxhdG9yLCB0ZXN0cyk7CisgICAgCisgICAgICAgIFN0cmluZyBydWxlID0gIiYgYyA8IGFiIjsKKyAgICAgICAgU3RyaW5nIHRlc3Rjb250cmFjdGlvbltdID0geyAiXHUwRTQxYWIiLCAiPiIsICJcdTBFNDFjIn07CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogY291bGQgbm90IGNvbnN0cnVjdCBjb2xsYXRvciB3aXRoIHJ1bGUgIiArIHJ1bGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmVBcnJheShjb2xsYXRvciwgdGVzdGNvbnRyYWN0aW9uKTsKKyAgICB9CisgICAgCisgICAgCisgICAgCisgICAgCisgICAgCisgICAgCisgICAgCisgICAgCisgICAgCisKKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFN0ckNtcCBpbXBsZW1lbnRzIENvbXBhcmF0b3IgCisgICAgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IHN0cmluZzEsIE9iamVjdCBzdHJpbmcyKSAKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmNvbXBhcmUoc3RyaW5nMSwgc3RyaW5nMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0ckNtcCgpIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgICAgY29sbGF0b3IgPSBnZXRUaGFpQ29sbGF0b3IoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IgY29sbGF0b3I7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFJ1bGVCYXNlZENvbGxhdG9yIG1fY29sbGF0b3JfOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFJ1bGVCYXNlZENvbGxhdG9yIGdldFRoYWlDb2xsYXRvcigpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGlmIChtX2NvbGxhdG9yXyA9PSBudWxsKSB7CisgICAgICAgICAgICBtX2NvbGxhdG9yXyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhbGUoInRoIiwgIlRIIiwgIiIpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9jb2xsYXRvcl87CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblR1cmtpc2hUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVHVya2lzaFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjhkZDYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblR1cmtpc2hUZXN0LmphdmEKQEAgLTAsMCArMSwxODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25UdXJraXNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvdHJjb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIENvbGxhdGlvblR1cmtpc2hUZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IENvbGxhdGlvblR1cmtpc2hUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweDczLCAweDAzMjd9LAorICAgICAgICB7MHg3NiwgMHgwMEU0LCAweDc0fSwKKyAgICAgICAgezB4NmYsIDB4NmMsIDB4NjR9LAorICAgICAgICB7MHgwMEZDLCAweDZmLCAweDY5LCAweDY0fSwKKyAgICAgICAgezB4NjgsIDB4MDExRSwgMHg2MSwgMHg2YywgMHg3NH0sCisgICAgICAgIHsweDczLCAweDc0LCAweDcyLCAweDY1LCAweDczLCAweDAxNUV9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHgwMTMxLCAweDY0fSwKKyAgICAgICAgezB4NjksIDB4NjQsIDB4NjUsIDB4NjF9LAorICAgICAgICB7MHgwMEZDLCAweDZmLCAweDY5LCAweDY0fSwKKyAgICAgICAgezB4NzYsIDB4NmYsIDB4MDEzMSwgMHg2NH0sCisgICAgICAgIHsweDY5LCAweDY0LCAweDY1LCAweDYxfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDc1LCAweDAzMDh9LAorICAgICAgICB7MHg3NiwgMHg2MiwgMHg3NH0sCisgICAgICAgIHsweDAwRDYsIDB4NjEsIDB4Nzl9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDY4LCAweDYxLCAweDZjLCAweDc0fSwKKyAgICAgICAgezB4MDE1RSwgMHg3NCwgMHg3MiwgMHg2NSwgMHgwMTVFLCAweDczfSwKKyAgICAgICAgezB4NzYsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg0OSwgMHg2NCwgMHg2NSwgMHg2MX0sCisgICAgICAgIHsweDc2LCAweDZmLCAweDY5LCAweDY0fSwKKyAgICAgICAgezB4NzYsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg0OSwgMHg2NCwgMHg2NSwgMHg2MX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAvLyB0ZXN0IHByaWFtcnkgPiA4CisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvblR1cmtpc2hUZXN0KCkgeworCisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgidHIiLCAiIikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgOCA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBmb3IgKGkgPSA4OyBpIDwgMTE7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gdHVya2lzaCBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0c3Q29sbGF0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0c3Q29sbGF0aW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5YTM4YjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvRzdDb2xsYXRpb25UZXN0LmphdmEKQEAgLTAsMCArMSwyOTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9HN0NvbGxhdGlvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2c3Y29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBHN0NvbGxhdGlvblRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgRzdDb2xsYXRpb25UZXN0KCkucnVuKGFyZ3MpOworICAgICAgICAvLyBuZXcgRzdDb2xsYXRpb25UZXN0KCkuVGVzdERlbW8zKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgImJsYWNrYmlyZHMiLCAiUGF0IiwgInBcdTAwRTljaFx1MDBFOSIsICJwXHUwMEVBY2hlIiwgInBcdTAwRTljaGVyIiwgICAgICAgICAgICAKKyAgICAgICAgInBcdTAwRUFjaGVyIiwgIlRvZCIsICJUXHUwMEY2bmUiLCAiVG9mdSIsICJibGFja2JpcmQiLCAiVG9uIiwgCisgICAgICAgICJQQVQiLCAiYmxhY2stYmlyZCIsICJibGFjay1iaXJkcyIsICJwYXQiLCAvLyAxNAorICAgICAgICAvLyBBZGRpdGlvbmFsIHRlc3RzCisgICAgICAgICJjemFyIiwgImNodXJvIiwgImNhdCIsICJkYXJuIiwgIj8iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTkgKi8KKyAgICAgICAgInF1aWNrIiwgIiMiLCAiJiIsICJhLXJkdmFyayIsICJhYXJkdmFyayIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMyAqLworICAgICAgICAiYWJib3QiLCAiY28tcCIsICJjb3AiLCAiY29vcCIsICJ6ZWJyYSIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W11bXSByZXN1bHRzID0geworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBlbl9VUyAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBlbl9HQiAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBlbl9DQSAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAzLCAyLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBmcl9GUiAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAzLCAyLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBmcl9DQSAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBkZV9ERSAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBpdF9JVCAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBqYV9KUCAqLworICAgICAgICAvKiBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgIiYgWiA8IHAsIFAiICBsb29wIHRvIEZJWEVEVEVTVFNFVCAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgNiwgOCwgMTAsIDcsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAKKyAgICAgICAgLyogbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzICImIEMgPCBjaCAsIGNILCBDaCwgQ0ggIiBsb29wIHRvIFRPVEFMVEVTVFNFVCAqLworICAgICAgICB7IDE5LCAyMiwgMjEsIDIzLCAyNCwgMjUsIDEyLCAxMywgOSwgMCwgMTcsIDI2LCAyOCwgMjcsIDE1LCAxNiwgMTgsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgMjAsIDYsIDgsIDEwLCA3LCAyOSB9LAorICAgICAgICAvKiBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgIiYgUXVlc3Rpb24tbWFyayA7ID8gJiBIYXNoLW1hcmsgOyAjICYgQW1wZXJzYW5kIDsgJyYnICAiIGxvb3AgdG8gVE9UQUxURVNUU0VUICovCisgICAgICAgIHsgMjMsIDI0LCAyNSwgMjIsIDEyLCAxMywgOSwgMCwgMTcsIDE2LCAyNiwgMjgsIDI3LCAxNSwgMTgsIDIxLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDE5LCAyMCwgNiwgOCwgMTAsIDcsIDI5IH0sCisgICAgICAgIC8qIGFuYWxvZ291cyB0byBKYXBhbmVzZSBydWxlcyAiICYgYWEgOyBhLSAmIGVlIDsgZS0gJiBpaSA7IGktICYgb28gOyBvLSAmIHV1IDsgdS0gIiAqLyAgLyogbG9vcCB0byBUT1RBTFRFU1RTRVQgKi8KKyAgICAgICAgeyAxOSwgMjIsIDIxLCAyNCwgMjMsIDI1LCAxMiwgMTMsIDksIDAsIDE3LCAxNiwgMjgsIDI2LCAyNywgMTUsIDE4LCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDIwLCA2LCA4LCAxMCwgNywgMjkgfQorICAgIH07CisgICAgCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1RPS0VOX0xFTiA9IDE2OworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRFU1RMT0NBTEVTID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJWEVEVEVTVFNFVCA9IDE1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT1RBTFRFU1RTRVQgPSAzMDsKKyAgICAKKyAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBhZGRlZCBydWxlcyAiICYgWiA8IHAsIFAiCisgICAgcHVibGljIHZvaWQgVGVzdERlbW8xKCkgeworICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDEgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIFogPCBwLCBQXCIiKTsKKyAgICAgICAgCisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsgICAgCisKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBiYXNlUnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0UnVsZXMoKTsKKyAgICAgICAgU3RyaW5nIG5ld1J1bGVzID0gIiAmIFogPCBwLCBQIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyBuZXdSdWxlczsgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBuZXdSdWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChteUNvbGxhdGlvbiA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRGVtbyBUZXN0IDIgVGFibGUgQ29sbGF0aW9uIG9iamVjdCBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBqLCBuOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgRklYRURURVNUU0VUOyBqKyspIHsKKyAgICAgICAgICAgIGZvciAobiA9IGorMTsgbiA8IEZJWEVEVEVTVFNFVDsgbisrKSB7CisgICAgICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0Q2FzZXNbcmVzdWx0c1s4XVtqXV0sIHRlc3RDYXNlc1tyZXN1bHRzWzhdW25dXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorCisgICAgLy8gcGVyb3JtIHRlc3Qgd2l0aCBhZGRlZCBydWxlcyAiJiBDIDwgY2ggLCBjSCwgQ2gsIENIIgorICAgIHB1YmxpYyB2b2lkIFRlc3REZW1vMigpIHsKKyAgICAgICAgbG9nbG4oIkRlbW8gVGVzdCAyIDogQ3JlYXRlIGEgbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzIFwiJiBDIDwgY2ggLCBjSCwgQ2gsIENIXCIiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOyAgICAKKworCisgICAgICAgIFN0cmluZyBiYXNlUnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0UnVsZXMoKTsKKyAgICAgICAgU3RyaW5nIG5ld1J1bGVzID0gIiYgQyA8IGNoICwgY0gsIENoLCBDSCI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgbmV3UnVsZXM7IAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobmV3UnVsZXMpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIG5ld1J1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisKKyAgICAgICAgaW50IGosIG47CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBUT1RBTFRFU1RTRVQ7IGorKykgeworICAgICAgICAgICAgZm9yIChuID0gaisxOyBuIDwgVE9UQUxURVNUU0VUOyBuKyspIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlc1tyZXN1bHRzWzldW2pdXSwgdGVzdENhc2VzW3Jlc3VsdHNbOV1bbl1dLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBhZGRlZCBydWxlcyAKKyAgICAvLyAiJiBRdWVzdGlvbictJ21hcmsgOyAnPycgJiBIYXNoJy0nbWFyayA7ICcjJyAmIEFtcGVyc2FuZCA7ICcmJyIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVtbzMoKSB7CisgICAgICAgIC8vIGxvZ2xuKCJEZW1vIFRlc3QgMyA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiYgUXVlc3Rpb24nLSdtYXJrIDsgJz8nICYgSGFzaCctJ21hcmsgOyAnIycgJiBBbXBlcnNhbmQgOyAnJidcIiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7ICAgIAorCisgICAgICAgIAorICAgICAgICBTdHJpbmcgYmFzZVJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBuZXdSdWxlcyA9ICImIFF1ZXN0aW9uJy0nbWFyayA7ICc/JyAmIEhhc2gnLSdtYXJrIDsgJyMnICYgQW1wZXJzYW5kIDsgJyYnIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyBuZXdSdWxlczsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBuZXdSdWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gIAorCisgICAgICAgIGludCBqLCBuOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgVE9UQUxURVNUU0VUOyBqKyspIHsKKyAgICAgICAgICAgIGZvciAobiA9IGorMTsgbiA8IFRPVEFMVEVTVFNFVDsgbisrKSB7CisgICAgICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0Q2FzZXNbcmVzdWx0c1sxMF1bal1dLCB0ZXN0Q2FzZXNbcmVzdWx0c1sxMF1bbl1dLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBhZGRlZCBydWxlcyAKKyAgICAvLyAiICYgYWEgOyBhJy0nICYgZWUgOyBlJy0nICYgaWkgOyBpJy0nICYgb28gOyBvJy0nICYgdXUgOyB1Jy0nICIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVtbzQoKSB7CisgICAgICAgIGxvZ2xuKCJEZW1vIFRlc3QgNCA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiAmIGFhIDsgYSctJyAmIGVlIDsgZSctJyAmIGlpIDsgaSctJyAmIG9vIDsgbyctJyAmIHV1IDsgdSctJyBcIiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7ICAgIAorCisgICAgICAgIFN0cmluZyBiYXNlUnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0UnVsZXMoKTsKKyAgICAgICAgU3RyaW5nIG5ld1J1bGVzID0gIiAmIGFhIDsgYSctJyAmIGVlIDsgZSctJyAmIGlpIDsgaSctJyAmIG9vIDsgbyctJyAmIHV1IDsgdSctJyAiOworICAgICAgICBuZXdSdWxlcyA9IGJhc2VSdWxlcyArIG5ld1J1bGVzOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobmV3UnVsZXMpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIG5ld1J1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisKKyAgICAgICAgaW50IGosIG47CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBUT1RBTFRFU1RTRVQ7IGorKykgeworICAgICAgICAgICAgZm9yIChuID0gaisxOyBuIDwgVE9UQUxURVNUU0VUOyBuKyspIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlc1tyZXN1bHRzWzExXVtqXV0sIHRlc3RDYXNlc1tyZXN1bHRzWzExXVtuXV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RzdEYXRhKCkgeworICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0geworICAgICAgICAgICAgICAgIExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgICAgICAgTG9jYWxlLkNBTkFEQSwKKyAgICAgICAgICAgICAgICBMb2NhbGUuRlJBTkNFLAorICAgICAgICAgICAgICAgIExvY2FsZS5DQU5BREFfRlJFTkNILAorICAgICAgICAgICAgICAgIExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgIExvY2FsZS5KQVBBTiwKKyAgICAgICAgICAgICAgICBMb2NhbGUuSVRBTFkKKyAgICAgICAgICAgIH07CisgICAgICAgIGludCBpID0gMCwgaiA9IDA7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBDb2xsYXRvciBteUNvbGxhdGlvbj0gbnVsbDsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRibENvbGwxID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICB0YmxDb2xsMSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5nZXRSdWxlcygpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkV4Y2VwdGlvbjogIiArIGZvby5nZXRNZXNzYWdlKCkgKworICAgICAgICAgICAgICAgICAgICAgICI7IExvY2FsZSA6ICIgKyBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkgKyAiIGdldFJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IEZJWEVEVEVTVFNFVDsgaisrKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbiA9IGorMTsgbiA8IEZJWEVEVEVTVFNFVDsgbisrKSB7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdCh0YmxDb2xsMSwgdGVzdENhc2VzW3Jlc3VsdHNbaV1bal1dLCB0ZXN0Q2FzZXNbcmVzdWx0c1tpXVtuXV0sIC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIGNvbXBhcmlzb25zIGZvciBhIHNldCBvZiBzdHJpbmdzIGFnYWluc3Qgc2V0cyBvZiBleHBlY3RlZCByZXN1bHRzCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChDb2xsYXRvciBteUNvbGxhdGlvbiwgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0KXsKKyAgICAgICAgCisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHNvdXJjZSwgdGFyZ2V0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIAorICAgICAgICAgICAgICAgICAgICAgIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKXsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSl7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0xvdHVzQ29sbGF0aW9uS29yZWFuVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0xvdHVzQ29sbGF0aW9uS29yZWFuVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxODhkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0LmphdmEKQEAgLTAsMCArMSwxNDggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Mb3R1c0NvbGxhdGlvbktvcmVhblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2xjdWtvY29sLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IExvdHVzQ29sbGF0aW9uS29yZWFuVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHhhYzAwfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHhhYzAxfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgQ29sbGF0b3IgbXlDb2xsYXRpb247CisgICAgCisgICAgcHVibGljIExvdHVzQ29sbGF0aW9uS29yZWFuVGVzdCgpIHsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuS09SRUFOKTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgfQorICAgIC8vIHBlcmZvcm1zIHRlc3Qgd2l0aCBzdHJlbmd0aCBURVJJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDE7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBzcGVjaWZpYyB0byAiS29yZWFuIiBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KCBjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KCBzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0ICk7IAorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1JhbmRvbUNvbGxhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTg3ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1JhbmRvbUNvbGxhdG9yLmphdmEKQEAgLTAsMCArMSwyOTYgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuQk5GOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuQmFnRm9ybWF0dGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuUXVvdGVyOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKKworcHVibGljIGNsYXNzIFJhbmRvbUNvbGxhdG9yIGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgUmFuZG9tQ29sbGF0b3IoKS5ydW4oYXJncyk7CisgICAgICAgIC8vbmV3IENvbGxhdGlvbkFQSVRlc3QoKS5UZXN0R2V0VGFpbG9yZWRTZXQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IENPTlNUUlVDVF9SQU5ET01fQ09VTlQgPSAxMDA7CisgICAgc3RhdGljIGZpbmFsIGludCBGT1JNQUxfVEVTVF9DT1VOVCA9IDEwMDA7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBQT1NJVElPTiA9ICJ7JCQkfSI7CisgICAgCisgICAgLyoKKyAgICBjbGFzcyBTaG93ZXIgZXh0ZW5kcyBCYWdGb3JtYXR0ZXIuU2hvd2VyIHsKKyAgICAgICAgcHVibGljIHZvaWQgcHJpbnQoU3RyaW5nIGFyZykgeworICAgICAgICAgICAgbG9nKGFyZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFNob3dlciBMT0cgPSBuZXcgU2hvd2VyKCk7CisgICAgKi8KKyAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmFuZG9tKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vICAgICAgICBpbnQgeWVhciAKKy8vICAgICAgICA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpLmdldChqYXZhLnV0aWwuQ2FsZW5kYXIuWUVBUik7CisvLyAgICAgICAgaWYgKHllYXIgPCAyMDA0KSB7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5UZXN0UmFuZG9tIHNraXBwZWQgZm9yIDIwMDMiKTsKKy8vICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgIH0KKyAgICAgICAgaWYoc2tpcElmQmVmb3JlSUNVKDMsNikpIHJldHVybjsKKyAgICAgICAgLy9TdHJpbmcgZmlsZU5hbWU7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gQmFnRm9ybWF0dGVyLm9wZW5VVEY4V3JpdGVyKFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKStGaWxlLnNlcGFyYXRvciwgIlJhbmRvbUNvbGxhdGlvblRlc3RMb2cudHh0Iik7CisgICAgICAgIFRlc3RDb2xsYXRvciB0YyA9IG5ldyBUZXN0Q29sbGF0b3IoY2hhcnMpOworICAgICAgICBwdy5wcmludGxuKCJDb2xsYXRpb24gVGVzdCBSdW4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiTm90ZTogRm9yIHBhcnNlLWV4Y2VwdGlvbiwgIiArIFBPU0lUSU9OICsgIiBpbmRpY2F0ZXMgdGhlIGVycm9yT2Zmc2V0Iik7CisgICAgICAgIHB3LnByaW50bG4oIlJ1bGVzOiIpOworICAgICAgICBwdy5wcmludGxuKGN1cnJlbnRSdWxlcyk7CisgICAgICAgIFN0cmluZyBydWxlcyA9ICI8dW5rbm93bj4iOworICAgICAgICBpbnQgc0NvdW50ID0gMDsKKyAgICAgICAgaW50IHBlQ291bnQgPSAwOworICAgICAgICBpbnQgb2VDb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09OU1RSVUNUX1JBTkRPTV9DT1VOVDsgKytpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJ1bGVzID0gZ2V0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRydWUpIHsgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yIGMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIHRjLnRlc3QoYywgRk9STUFMX1RFU1RfQ09VTlQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4ocnVsZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgICAgICBzQ291bnQrKzsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICAgICAgcGVDb3VudCsrOworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIj09PT09PT09UEFSU0UgRVhDRVBUSU9OPT09PT09PT0gKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgICAgICBpbnQgZXJyb3JPZmZzZXQgPSBwZS5nZXRFcnJvck9mZnNldCgpOworICAgICAgICAgICAgICAgIHB3LnByaW50KHJ1bGVzLnN1YnN0cmluZygwLGVycm9yT2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoUE9TSVRJT04pOworICAgICAgICAgICAgICAgIHB3LnByaW50bG4ocnVsZXMuc3Vic3RyaW5nKGVycm9yT2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgLy9wdy5wcmludGxuKCI9PT09PT09PUVSUk9SPT09PT09PT0gKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgICAgICAvL3BlLnByaW50U3RhY2tUcmFjZShwdyk7CisgICAgICAgICAgICAgICAgLy9wdy5wcmludGxuKCI9PT09PT09PUVORD09PT09PT09ICgiICsgaSArICIpIik7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlRXhjZXB0aW9uIik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIG9lQ291bnQrKzsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI9PT09PT09PU9USEVSIEVYQ0VQVElPTj09PT09PT09ICgiICsgaSArICIpIik7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UocHcpOworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIj09PT09PT09UlVMRVM9PT09PT09PSAoIiArIGkgKyAiKSIpOworICAgICAgICAgICAgICAgIHB3LnByaW50bG4ocnVsZXMpOworICAgICAgICAgICAgICAgIC8vcHcucHJpbnRsbigiPT09PT09PT1FTkQ9PT09PT09PSAoIiArIGkgKyAiKSIpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZUV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB3LnByaW50bG4oIlN1Y2Nlc3NmdWw6ICIgKyBzQ291bnQgCisgICAgICAgICAgICArICIsXHRQYXJzZUV4Y2VwdGlvbjogIiArIHBlQ291bnQgCisgICAgICAgICAgICArICIsXHRPdGhlciBFeGNlcHRpb246ICIgKyBvZUNvdW50KTsKKyAgICAgICAgbG9nbG4oIlN1Y2Nlc3NmdWw6ICIgKyBzQ291bnQgCisgICAgICAgICAgICArICIsXHRQYXJzZUV4Y2VwdGlvbjogIiArIHBlQ291bnQgCisgICAgICAgICAgICArICIsXHRPdGhlciBFeGNlcHRpb246ICIgKyBvZUNvdW50KTsKKyAgICAgICAgcHcuY2xvc2UoKTsKKworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFRlc3RDb2xsYXRvciBleHRlbmRzIFRlc3RDb21wYXJhdG9yIHsKKyAgICAgICAgQk5GIHJzOworICAgICAgICAKKyAgICAgICAgVGVzdENvbGxhdG9yKFVuaWNvZGVTZXQgY2hhcnMpIHsKKyAgICAgICAgICAgIHJzID0gbmV3IEJORihuZXcgUmFuZG9tKDApLCBuZXcgUXVvdGVyLlJ1bGVRdW90ZXIoKSkKKyAgICAgICAgICAgIC5hZGRSdWxlcygiJHJvb3QgPSAiICsgY2hhcnMgKyAiezEsOH07IikuY29tcGxldGUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdCBuZXdPYmplY3QoT2JqZWN0IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBycy5uZXh0KCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBmb3JtYXQoT2JqZWN0IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBCYWdGb3JtYXR0ZXIuaGV4LnRyYW5zbGl0ZXJhdGUoYy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgQk5GIGJuZjsKKyAgICBTdHJpbmcgY3VycmVudFJ1bGVzID0gbnVsbDsKKyAgICBVbmljb2RlU2V0IGNoYXJzOworICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0KCkgeworICAgICAgICByZXR1cm4gYm5mLm5leHQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFJhbmRvbUNvbGxhdG9yKCkgeworICAgICAgICAKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgaW5pdCgxLDEwLCBuZXcgVW5pY29kZVNldCgiW0FaYS16PFxcJlxcW1xcXV0iKSk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBpbml0KGludCBtaW5SdWxlQ291bnQsIGludCBtYXhSdWxlQ291bnQsIFVuaWNvZGVTZXQgY2hhcnMpIHsKKyAgICAgICAgdGhpcy5jaGFycyA9IGNoYXJzOworICAgICAgICBibmYgPSBuZXcgQk5GKG5ldyBSYW5kb20oMCksIG5ldyBRdW90ZXIuUnVsZVF1b3RlcigpKQorICAgICAgICAuYWRkU2V0KCIkY2hhcnMiLCBjaGFycykKKyAgICAgICAgLmFkZFJ1bGVzKGNvbGxhdGlvbkJORikKKyAgICAgICAgLmNvbXBsZXRlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb2xsYXRpb25CTkYgPQorICAgICAgICAiJHMgPSAnICc/IDUwJTtcclxuIiArCisgICAgICAgICIkcmVsYXRpb25MaXN0ID0gKCIgKyAgICAgICAgIiAgICc8JyIgKyAgICAgICAgIiB8ICcgIDw8JyIgKyAgICAgICAgIiB8ICcgIDsnIiArCisgICAgICAgICIgfCAnICAgIDw8PCciICsgICAgICAgICIgfCAnICAgICwnIiArCisgICAgICAgICIgfCAnICAgICAgPSciICsgICAgICAgICIpO1xyXG4iICsKKyAgICAgICAgIiRhbHRlcm5hdGVPcHRpb25zID0gbm9uJy0naWdub3JhYmxlIHwgc2hpZnRlZDtcclxuIiArCisgICAgICAgICIkY2FzZUZpcnN0T3B0aW9ucyA9IG9mZiB8IHVwcGVyIHwgbG93ZXI7XHJcbiIgKworICAgICAgICAiJHN0cmVuZ3RoT3B0aW9ucyA9ICcxJyB8ICcyJyB8ICczJyB8ICc0JyB8ICdJJztcclxuIiArCisgICAgICAgICIkY29tbWFuZExpc3QgPSAnWyciICsgICAgICAgICIgKCBhbHRlcm5hdGUgJyAnICRhbHRlcm5hdGVPcHRpb25zIiArICAgICAgICAiIHwgYmFja3dhcmRzJyAyJyIgKyAgICAgICAgIiB8IG5vcm1hbGl6YXRpb24gJyAnICRvbm9mZiAiICsgICAgICAgICIgfCBjYXNlTGV2ZWwgJyAnICRvbm9mZiAiICsgICAgICAgICIgfCBoaXJhZ2FuYVEgJyAnICRvbm9mZiIgKyAgICAgICAgIiB8IGNhc2VGaXJzdCAnICcgJGNhc2VGaXJzdE9wdGlvbnMiICsgICAgICAgICIgfCBzdHJlbmd0aCAnICcgJHN0cmVuZ3RoT3B0aW9ucyIgKyAgICAgICAgIiApICddJztcclxuIiArCisgICAgICAgICIkaWdub3JhYmxlVHlwZXMgPSAodGVydGlhcnkgfCBzZWNvbmRhcnkgfCBwcmltYXJ5KSAnICcgaWdub3JhYmxlO1xyXG4iICsKKyAgICAgICAgIiRhbGxUeXBlcyA9IHZhcmlhYmxlIHwgcmVndWxhciB8IGltcGxpY2l0IHwgdHJhaWxpbmcgfCAkaWdub3JhYmxlVHlwZXM7XHJcbiIgKworICAgICAgICAiJG9ub2ZmID0gb24gfCBvZmY7XHJcbiIgKworICAgICAgICAiJHBvc2l0aW9uTGlzdCA9ICdbJyAoZmlyc3QgfCBsYXN0KSAnICcgJGFsbFR5cGVzICddJztcclxuIiArICAgICAgICAiJGJlZm9yZUxpc3QgPSAnW2JlZm9yZSAnICgnMScgfCAnMicgfCAnMycpICddJztcclxuIiArICAgICAgICAiJHN0cmluZyA9ICRjaGFyc3sxLDV9fkA7XHJcbiIgKworICAgICAgICAiJGNybGYgPSAnXHJcbic7XHJcbiIgKworICAgICAgICAiJHJlbDEgPSAnW3ZhcmlhYmxlIHRvcF0nICRzIDtcclxuIiArCisgICAgICAgICIkcDEgPSAoJHN0cmluZyAkcyAnfCcgJHMpPyAyNSU7XHJcbiIgKworICAgICAgICAiJHAyID0gKCdcXCcgJHMgJHN0cmluZyAkcyk/IDI1JTtcclxuIiArCisgICAgICAgICIkcmVsMiA9ICRwMSAkc3RyaW5nICRzICRwMjtcclxuIiArCisgICAgICAgICIkcmVsYXRpb24gPSAkcmVsYXRpb25MaXN0ICRzICgkcmVsMSB8ICRyZWwyKSAkY3JsZjtcclxuIiArCisgICAgICAgICIkY29tbWFuZCA9ICRjb21tYW5kTGlzdCAkY3JsZjtcclxuIiArCisgICAgICAgICIkcmVzZXQgPSAnJicgJHMgKCRiZWZvcmVMaXN0ICRzKT8gMTAlICgkcG9zaXRpb25MaXN0IHwgJHN0cmluZyAxMCUpICRjcmxmO1xyXG4iICsKKyAgICAgICAgIiRtb3N0UnVsZXMgPSAkY29tbWFuZCAxJSB8ICRyZXNldCA1JSB8ICRyZWxhdGlvbiAyNSU7XHJcbiIgKworICAgICAgICAiJHJvb3QgPSAkY29tbWFuZHswLDV9ICRyZXNldCAkbW9zdFJ1bGVzezEsMjB9O1xyXG4iOworICAgIAorICAgIAorLyogICAgCisgICAgCisgICAgCisgICAgZ2MgOyBDICAgICAgICAgOyBPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIENjIHwgQ2YgfCBDbiB8IENvIHwgQ3MKKyAgICBnYyA7IENjICAgICAgICA7IENvbnRyb2wKKyAgICBnYyA7IENmICAgICAgICA7IEZvcm1hdAorICAgIGdjIDsgQ24gICAgICAgIDsgVW5hc3NpZ25lZAorICAgIGdjIDsgQ28gICAgICAgIDsgUHJpdmF0ZV9Vc2UKKyAgICBnYyA7IENzICAgICAgICA7IFN1cnJvZ2F0ZQorICAgIGdjIDsgTCAgICAgICAgIDsgTGV0dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBMbCB8IExtIHwgTG8gfCBMdCB8IEx1CisgICAgZ2MgOyBMQyAgICAgICAgOyBDYXNlZF9MZXR0ZXIgICAgICAgICAgICAgICAgICAgICAjIExsIHwgTHQgfCBMdQorICAgIGdjIDsgTGwgICAgICAgIDsgTG93ZXJjYXNlX0xldHRlcgorICAgIGdjIDsgTG0gICAgICAgIDsgTW9kaWZpZXJfTGV0dGVyCisgICAgZ2MgOyBMbyAgICAgICAgOyBPdGhlcl9MZXR0ZXIKKyAgICBnYyA7IEx0ICAgICAgICA7IFRpdGxlY2FzZV9MZXR0ZXIKKyAgICBnYyA7IEx1ICAgICAgICA7IFVwcGVyY2FzZV9MZXR0ZXIKKyAgICBnYyA7IE0gICAgICAgICA7IE1hcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWMgfCBNZSB8IE1uCisgICAgZ2MgOyBNYyAgICAgICAgOyBTcGFjaW5nX01hcmsKKyAgICBnYyA7IE1lICAgICAgICA7IEVuY2xvc2luZ19NYXJrCisgICAgZ2MgOyBNbiAgICAgICAgOyBOb25zcGFjaW5nX01hcmsKKyAgICBnYyA7IE4gICAgICAgICA7IE51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTmQgfCBObCB8IE5vCisgICAgZ2MgOyBOZCAgICAgICAgOyBEZWNpbWFsX051bWJlcgorICAgIGdjIDsgTmwgICAgICAgIDsgTGV0dGVyX051bWJlcgorICAgIGdjIDsgTm8gICAgICAgIDsgT3RoZXJfTnVtYmVyCisgICAgZ2MgOyBQICAgICAgICAgOyBQdW5jdHVhdGlvbiAgICAgICAgICAgICAgICAgICAgICAjIFBjIHwgUGQgfCBQZSB8IFBmIHwgUGkgfCBQbyB8IFBzCisgICAgZ2MgOyBQYyAgICAgICAgOyBDb25uZWN0b3JfUHVuY3R1YXRpb24KKyAgICBnYyA7IFBkICAgICAgICA7IERhc2hfUHVuY3R1YXRpb24KKyAgICBnYyA7IFBlICAgICAgICA7IENsb3NlX1B1bmN0dWF0aW9uCisgICAgZ2MgOyBQZiAgICAgICAgOyBGaW5hbF9QdW5jdHVhdGlvbgorICAgIGdjIDsgUGkgICAgICAgIDsgSW5pdGlhbF9QdW5jdHVhdGlvbgorICAgIGdjIDsgUG8gICAgICAgIDsgT3RoZXJfUHVuY3R1YXRpb24KKyAgICBnYyA7IFBzICAgICAgICA7IE9wZW5fUHVuY3R1YXRpb24KKyAgICBnYyA7IFMgICAgICAgICA7IFN5bWJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU2MgfCBTayB8IFNtIHwgU28KKyAgICBnYyA7IFNjICAgICAgICA7IEN1cnJlbmN5X1N5bWJvbAorICAgIGdjIDsgU2sgICAgICAgIDsgTW9kaWZpZXJfU3ltYm9sCisgICAgZ2MgOyBTbSAgICAgICAgOyBNYXRoX1N5bWJvbAorICAgIGdjIDsgU28gICAgICAgIDsgT3RoZXJfU3ltYm9sCisgICAgZ2MgOyBaICAgICAgICAgOyBTZXBhcmF0b3IgICAgICAgICAgICAgICAgICAgICAgICAjIFpsIHwgWnAgfCBacworICAgIGdjIDsgWmwgICAgICAgIDsgTGluZV9TZXBhcmF0b3IKKyAgICBnYyA7IFpwICAgICAgICA7IFBhcmFncmFwaF9TZXBhcmF0b3IKKyAgICBnYyA7IFpzICAgICAgICA7IFNwYWNlX1NlcGFyYXRvcgorKi8KKworICAgIC8qCisgICAgLy8gZWFjaCBydWxlIGNhbiBiZToKKyAgICAvLyAiWyIgY29tbWFuZCAiXSIKKyAgICAvLyAiJiBbIiBwb3NpdGlvbiAiXSIKKyAgICAvLyAiJiIgYmVmb3JlIGNoYXJzCisgICAgLy8gcmVsYXRpb24gIlt2YXJpYWJsZSB0b3BdIgorICAgIC8vIHJlbGF0aW9uIChjaGFycyAifCIpPyBjaGFycyAoIi8iIGNoYXJzKT8KKyAgICAvLyBwbHVzLCBhIHJlc2V0IG11c3QgY29tZSBiZWZvcmUgYSByZWxhdGlvbgorICAgIAorICAgIC8vIHRoZSBmb2xsb3dpbmcgcmVmbGVjdHMgdGhlIGFib3ZlIHJ1bGVzLCBwbHVzIGFsbG93cyB3aGl0ZXNwYWNlLgorICAgIFBpY2sgY2hhcnMgPSBQaWNrLnN0cmluZygxLCA1LCBQaWNrLmNvZGVQb2ludCh1U2V0KSk7IC8vIGluc2VydCBzb21ldGhpbmcgbmVlZGluZyBxdW90ZXMKKyAgICBQaWNrIHMgPSBQaWNrLm1heWJlKDAuOCwgUGljay51bnF1b3RlZCgiICIpKS5uYW1lKCJTcGFjZSIpOyAgICAvLyBvcHRpb25hbCBzcGFjZQorICAgIFBpY2sgQ1JMRiA9IFBpY2sudW5xdW90ZWQoIlxyXG4iKTsKKyAgICAgICAgCisgICAgUGljayByZWwxID0gUGljay5hbmQoUGljay51bnF1b3RlZCgiW3ZhcmlhYmxlIHRvcF0iKSkuYW5kMihzKTsKKyAgICBQaWNrIHAxID0gUGljay5tYXliZSgwLjI1LCBQaWNrLmFuZChjaGFycykuYW5kMihzKS5hbmQyKCJ8IikuYW5kMihzKSk7CisgICAgUGljayBwMiA9IFBpY2subWF5YmUoMC4yNSwgUGljay5hbmQoIi8iKS5hbmQyKHMpLmFuZDIoY2hhcnMpLmFuZDIocykpOworICAgIFBpY2sgcmVsMiA9IFBpY2suYW5kKHAxKS5hbmQyKGNoYXJzKS5hbmQyKHMpLmFuZDIocDIpOworICAgIFBpY2sgcmVsYXRpb24gPSBQaWNrLmFuZChQaWNrLm9yKHJlbGF0aW9uTGlzdCkpLmFuZDIocykKKyAgICAgICAgLmFuZDIoUGljay5vcigxLCByZWwxKS5vcjIoMTAsIHJlbDIpKQorICAgICAgICAuYW5kMihDUkxGKS5uYW1lKCJSZWxhdGlvbiIpOworICAgICAgICAgICAgCisgICAgUGljayBjb21tYW5kID0gUGljay5hbmQoUGljay5vcihjb21tYW5kTGlzdCkpLmFuZDIoQ1JMRikubmFtZSgiQ29tbWFuZCIpOworICAgICAgICAKKyAgICBQaWNrIHJlc2V0ID0gUGljay5hbmQoIiYiKS5hbmQyKHMpICAgICAgICAgICAgCisgICAgICAgIC5hbmQyKDAuMSwgUGljay5vcihiZWZvcmVMaXN0KSkuYW5kMihzKSAgICAgICAgICAgIAorICAgICAgICAuYW5kMihQaWNrLm9yKDAuMSwgUGljay5vcihwb3NpdGlvbkxpc3QpKS5vcjIoMS4wLCBjaGFycykpCisgICAgICAgIC5hbmQyKENSTEYpLm5hbWUoIlJlc2V0Iik7CisgICAgUGljayBydWxlID0gUGljay5hbmQoUGljay5vcigxLCBjb21tYW5kKS5vcjIoNSwgcmVzZXQpLm9yMigyNSwgcmVsYXRpb24pKS5uYW1lKCJSdWxlIik7CisgICAgUGljayBydWxlczIgPSBQaWNrLmFuZChQaWNrLnJlcGVhdCgwLDUsY29tbWFuZCkpICAgICAgICAgICAgCisgICAgICAgIC5hbmQyKHJlc2V0KSAgICAgICAgICAgIAorICAgICAgICAuYW5kMihQaWNrLnJlcGVhdCgxLDIwLHJ1bGUpKS5uYW1lKCJSdWxlcyIpOworICAgIHJ1bGVzID0gUGljay5UYXJnZXQubWFrZShydWxlczIpOworICAgCisgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gcmVsYXRpb25MaXN0ID0geyIgPCIsICIgIDw8IiwgIiAgICA8PDwiLCAiICAgICA9IiwgIiAgOyIsICIgICAsIn07CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNvbW1hbmRMaXN0ID0geworICAgICAgICAiW2FsdGVybmF0ZSBub24taWdub3JhYmxlXSIsICAgICAgICAiW2FsdGVybmF0ZSBzaGlmdGVkXSIsCisgICAgICAgICJbYmFja3dhcmRzIDJdIiwKKyAgICAgICAgIltub3JtYWxpemF0aW9uIG9mZl0iLAorICAgICAgICAiW25vcm1hbGl6YXRpb24gb25dIiwKKyAgICAgICAgIltjYXNlTGV2ZWwgb2ZmXSIsCisgICAgICAgICJbY2FzZUxldmVsIG9uXSIsCisgICAgICAgICJbY2FzZUZpcnN0IG9mZl0iLAorICAgICAgICAiW2Nhc2VGaXJzdCB1cHBlcl0iLAorICAgICAgICAiW2Nhc2VGaXJzdCBsb3dlcl0iLAorICAgICAgICAiW3N0cmVuZ3RoIDFdIiwKKyAgICAgICAgIltzdHJlbmd0aCAyXSIsCisgICAgICAgICJbc3RyZW5ndGggM10iLAorICAgICAgICAiW3N0cmVuZ3RoIDRdIiwKKyAgICAgICAgIltzdHJlbmd0aCBJXSIsCisgICAgICAgICJbaGlyYWdhbmFRIG9mZl0iLAorICAgICAgICAiW2hpcmFnYW5hUSBvbl0iCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gcG9zaXRpb25MaXN0ID0geworICAgICAgICAiW2ZpcnN0IHRlcnRpYXJ5IGlnbm9yYWJsZV0iLAorICAgICAgICAiW2xhc3QgdGVydGlhcnkgaWdub3JhYmxlXSIsCisgICAgICAgICJbZmlyc3Qgc2Vjb25kYXJ5IGlnbm9yYWJsZV0iLAorICAgICAgICAiW2xhc3Qgc2Vjb25kYXJ5IGlnbm9yYWJsZV0iLAorICAgICAgICAiW2ZpcnN0IHByaW1hcnkgaWdub3JhYmxlXSIsCisgICAgICAgICJbbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV0iLAorICAgICAgICAiW2ZpcnN0IHZhcmlhYmxlXSIsCisgICAgICAgICJbbGFzdCB2YXJpYWJsZV0iLAorICAgICAgICAiW2ZpcnN0IHJlZ3VsYXJdIiwKKyAgICAgICAgIltsYXN0IHJlZ3VsYXJdIiwKKyAgICAgICAgIltmaXJzdCBpbXBsaWNpdF0iLAorICAgICAgICAiW2xhc3QgaW1wbGljaXRdIiwKKyAgICAgICAgIltmaXJzdCB0cmFpbGluZ10iLAorICAgICAgICAiW2xhc3QgdHJhaWxpbmddIgorICAgIH07CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGJlZm9yZUxpc3QgPSB7CisgICAgICAgICJbYmVmb3JlIDFdIiwgCisgICAgICAgICJbYmVmb3JlIDJdIiwKKyAgICAgICAgIltiZWZvcmUgM10iCisgICAgfTsKKyAgICAqLworfQorLy8jZW5kaWYKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmOTcwZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSw1NiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIGNvbGxhdGlvbiBhbmQgc2VhcmNoIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25UZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25BUElUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25DdXJyZW5jeVRlc3QiLAorICAgICAgICAgICAgICAgICAgLy8iQ29sbGF0aW9uRGFuaXNoVGVzdCIsIC8vRGFuaXNoIGlzIGFscmVhZHkgdGVzdGVkIHRocm91Z2ggZGF0YSBkcml2ZW4gdGVzdHMKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25EdW1teVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkVuZ2xpc2hUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25GaW5uaXNoVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uRnJlbmNoVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uR2VybWFuVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uSXRlcmF0b3JUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25LYW5hVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uTW9ua2V5VGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uUmVncmVzc2lvblRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvblNwYW5pc2hUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25UaGFpVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uVHVya2lzaFRlc3QiLAorICAgICAgICAgICAgICAgICAgIkc3Q29sbGF0aW9uVGVzdCIsCisgICAgICAgICAgICAgICAgICAiTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25NaXNjVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uQ2hpbmVzZVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvblNlcnZpY2VUZXN0IiwKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICAgICAgICAiUmFuZG9tQ29sbGF0b3IiLAorLy8jZW5kaWYKKyAgICAgICAgICAgICAgICAgICJVQ0FDb25mb3JtYW5jZVRlc3QiLAorICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgdGVzdCBTZWFyY2ggQVBJIHR3aWNlIQorICAgICAgICAgICAgICAgICAgLy8iY29tLmlibS5pY3UuZGV2LnRlc3Quc2VhcmNoLlNlYXJjaFRlc3QiCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJBbGwgQ29sbGF0aW9uIFRlc3RzIgorICAgICAgICAgICAgICApOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIkNvbGxhdG9yIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9UZXN0Q29tcGFyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RDb21wYXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQzZjA3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9UZXN0Q29tcGFyYXRvci5qYXZhCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIFRlc3RDb21wYXJhdG9yIHsKKworICAgIC8vIHRlc3QgdGhlIHN5bW1ldHJ5IGFuZCB0cmFuc2l0aXZpdHkKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KENvbXBhcmF0b3IgY29tcCwgaW50IGNvdW50KSB7CisgICAgICAgIE9iamVjdCBjID0gbnVsbDsKKyAgICAgICAgT2JqZWN0IGIgPSBuZXdPYmplY3QoYyk7CisgICAgICAgIE9iamVjdCBhID0gbmV3T2JqZWN0KGIpOworICAgICAgICBpbnQgY29tcGFiID0gY29tcC5jb21wYXJlKGEsYik7CisgICAgICAgIHdoaWxlICgtLWNvdW50ID49IDApIHsKKyAgICAgICAgICAgIC8vIHJvdGF0ZSBvbGQgdmFsdWVzCisgICAgICAgICAgICBjID0gYjsKKyAgICAgICAgICAgIGIgPSBhOworICAgICAgICAgICAgaW50IGNvbXBiYyA9IGNvbXBhYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYWxsb2NhdGUgbmV3IGFuZCBnZXQgY29tcGFyaXNvbnMKKyAgICAgICAgICAgIGEgPSBuZXdPYmplY3QoYik7CisgICAgICAgICAgICBjb21wYWIgPSBjb21wLmNvbXBhcmUoYSxiKTsKKyAgICAgICAgICAgIGludCBjb21wYmEgPSBjb21wLmNvbXBhcmUoYixhKTsKKyAgICAgICAgICAgIGludCBjb21wYWMgPSBjb21wLmNvbXBhcmUoYSxjKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgc3ltbWV0cnkKKyAgICAgICAgICAgIGlmIChjb21wYWIgIT0gLWNvbXBiYSkgeworICAgICAgICAgICAgICAgIGxvZygiU3ltbWV0cnkgRmFpbHVyZSIsIG5ldyBPYmplY3RbXSB7YSwgYn0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayB0cmFuc2l0aXZpdHkKKyAgICAgICAgICAgIGNoZWNrKGEsIGIsIGMsICBjb21wYWIsICBjb21wYmMsICBjb21wYWMpOworICAgICAgICAgICAgY2hlY2soYSwgYywgYiwgIGNvbXBhYiwgLWNvbXBiYywgIGNvbXBhYik7CisgICAgICAgICAgICBjaGVjayhiLCBhLCBjLCAtY29tcGFiLCAgY29tcGFjLCAgY29tcGJjKTsKKyAgICAgICAgICAgIGNoZWNrKGIsIGMsIGEsICBjb21wYmMsIC1jb21wYWMsIC1jb21wYWIpOworICAgICAgICAgICAgY2hlY2soYywgYSwgYiwgLWNvbXBhYywgIGNvbXBhYiwgLWNvbXBiYyk7CisgICAgICAgICAgICBjaGVjayhjLCBiLCBhLCAtY29tcGJjLCAtY29tcGFiLCAtY29tcGFjKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2hlY2soT2JqZWN0IGEsIE9iamVjdCBiLCBPYmplY3QgYywgCisgICAgICBpbnQgY29tcGFiLCBpbnQgY29tcGJjLCBpbnQgY29tcGFjKSB7CisgICAgICAgIGlmIChjb21wYWIgPD0gMCAmJiBjb21wYmMgPD0gMCAmJiAhKGNvbXBhYyA8PSAwKSkgeworICAgICAgICAgICAgbG9nKCJUcmFuc2l0aXZpdHkgRmFpbHVyZSIsIG5ldyBPYmplY3RbXSB7YSwgYiwgY30pOyAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgIAorICAgIHB1YmxpYyBPYmplY3QgbmV3T2JqZWN0KE9iamVjdCBjKSB7CisgICAgICAgIC8vIHJldHVybiBhIG5ldyBvYmplY3QKKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGZvcm1hdChPYmplY3QgYykgeworICAgICAgICAvLyByZXR1cm4gYSBuZXcgb2JqZWN0CisgICAgICAgIHJldHVybiBjLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGxvZyhTdHJpbmcgdGl0bGUsIE9iamVjdFtdIGFyZ3VtZW50cykgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gdGl0bGUgKyAiOiBbIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdCArPSAiLCAiOworICAgICAgICAgICAgcmVzdWx0ICs9IGZvcm1hdChhcmd1bWVudHNbaV0pOworICAgICAgICB9CisgICAgICAgIHJlc3VsdCArPSAiXSI7CisgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKHJlc3VsdCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9VQ0FDb25mb3JtYW5jZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9VQ0FDb25mb3JtYW5jZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGQzYjVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1VDQUNvbmZvcm1hbmNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjQyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENPUFlSSUdIVDogCisgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBVQ0FDb25mb3JtYW5jZVRlc3QgcGVyZm9ybXMgY29uZm9ybWFuY2UgdGVzdHMgZGVmaW5lZCBpbiB0aGUgZGF0YQorICogZmlsZXMuIElDVSBzaGlwcyB3aXRoIHN0dWIgZGF0YSBmaWxlcywgYXMgdGhlIHdob2xlIHRlc3QgYXJlIHRvbyAKKyAqIGxvbmcuIFRvIGRvIHRoZSB3aG9sZSB0ZXN0LCBkb3dubG9hZCB0aGUgdGVzdCBmaWxlcy4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK3B1YmxpYyBjbGFzcyBVQ0FDb25mb3JtYW5jZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIGFyZ3MKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBVQ0FDb25mb3JtYW5jZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVQ0FDb25mb3JtYW5jZVRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIFVDQSA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICBuZXcgTG9jYWxlKCJyb290IiwgIiIsICIiKSk7CisKKyAgICAgICAgY29tcGFyZXIgPSBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcih0cnVlLCBmYWxzZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgfQorICAgIFJ1bGVCYXNlZENvbGxhdG9yIFVDQTsKKyAgICBSdWxlQmFzZWRDb2xsYXRvciByYlVDQTsKKyAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXBhcmVyOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUYWJsZU5vbklnbm9yYWJsZSgpIHsKKyAgICAgICAgc2V0Q29sbE5vbklnbm9yYWJsZShVQ0EpOworICAgICAgICBvcGVuVGVzdEZpbGUoIk5PTl9JR05PUkFCTEUiKTsKKyAgICAgICAgY29uZm9ybWFuY2VUZXN0KFVDQSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUYWJsZVNoaWZ0ZWQoKSB7CisgICAgICAgIHNldENvbGxTaGlmdGVkKFVDQSk7CisgICAgICAgIG9wZW5UZXN0RmlsZSgiU0hJRlRFRCIpOworICAgICAgICBjb25mb3JtYW5jZVRlc3QoVUNBKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVzTm9uSWdub3JhYmxlKCkgeworICAgICAgICBpbml0UmJVQ0EoKTsKKyAgICAgICAgCisgICAgICAgIHNldENvbGxOb25JZ25vcmFibGUocmJVQ0EpOworICAgICAgICBvcGVuVGVzdEZpbGUoIk5PTl9JR05PUkFCTEUiKTsKKyAgICAgICAgY29uZm9ybWFuY2VUZXN0KHJiVUNBKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVzU2hpZnRlZCgpIHsKKyAgICAgICAgbG9nbG4oIlRoaXMgdGVzdCBpcyBjdXJyZW50bHkgZGlzYWJsZWQsIGFzIGl0IGlzIGltcG9zc2libGUgdG8gIisKKyAgICAgICAgIndob2xseSByZXByZXNlbnQgZnJhY3Rpb25hbCBVQ0EgdXNpbmcgdGFpbG9yaW5nIHJ1bGVzLiIpOworICAgICAgICByZXR1cm47CisgICAgICAgIC8qICAgICAgICBpbml0UmJVQ0EoKTsKKyAgICAgICAgIAorICAgICAgICAgaWYoVV9TVUNDRVNTKHN0YXR1cykpIHsKKyAgICAgICAgIHNldENvbGxTaGlmdGVkKHJiVUNBKTsKKyAgICAgICAgIG9wZW5UZXN0RmlsZSgiU0hJRlRFRCIpOworICAgICAgICAgdGVzdENvbmZvcm1hbmNlKHJiVUNBKTsKKyAgICAgICAgIH0KKyAgICAgICAgICovCisgICAgfQorICAgIEJ1ZmZlcmVkUmVhZGVyIGluOworICAgIHByaXZhdGUgdm9pZCBvcGVuVGVzdEZpbGUoU3RyaW5nIHR5cGUpCisgICAgeworICAgICAgICBTdHJpbmcgY29sbGF0aW9uVGVzdCA9ICJDb2xsYXRpb25UZXN0XyI7CisgICAgICAgIFN0cmluZyBleHQgPSAiLnR4dCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZihpbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgY2xvc2UgdGhlIG9wZW5lZCBmaWxlISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoY29sbGF0aW9uVGVzdCt0eXBlK2V4dCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGluID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcihjb2xsYXRpb25UZXN0K3R5cGUrIl9TSE9SVCIrZXh0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGluID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcihjb2xsYXRpb25UZXN0K3R5cGUrIl9TVFVCIitleHQpOworICAgICAgICAgICAgICAgICAgICBsb2dsbiggIklORk86IFdvcmtpbmcgd2l0aCB0aGUgc3R1YiBmaWxlLlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWYgeW91IG5lZWQgdGhlIGZ1bGwgY29uZm9ybWFuY2UgdGVzdCwgcGxlYXNlXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgZGF0YSBmaWxlcyBmcm9tOlxuIisKKyAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vdmlld2N2cy5jZ2kvdW5pY29kZXRvb2xzL2NvbS9pYm0vdGV4dC9kYXRhLyIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlMTEpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDb3VsZCBub3QgZmluZCBhbnkgb2YgdGhlIHRlc3QgZmlsZXMiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9ICAgICAgICAgIAorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZXRDb2xsTm9uSWdub3JhYmxlKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwpIAorICAgIHsKKyAgICAgICAgaWYoY29sbCAhPSBudWxsKSB7CisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oUnVsZUJhc2VkQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICAgICAgY29sbC5zZXRMb3dlckNhc2VGaXJzdChmYWxzZSk7CisgICAgICAgICAgICBjb2xsLnNldENhc2VMZXZlbChmYWxzZSk7CisgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKFJ1bGVCYXNlZENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGNvbGwuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0Q29sbFNoaWZ0ZWQoUnVsZUJhc2VkQ29sbGF0b3IgY29sbCkgCisgICAgeworICAgICAgICBpZihjb2xsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNvbGwuc2V0RGVjb21wb3NpdGlvbihSdWxlQmFzZWRDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICBjb2xsLnNldExvd2VyQ2FzZUZpcnN0KGZhbHNlKTsKKyAgICAgICAgICAgIGNvbGwuc2V0Q2FzZUxldmVsKGZhbHNlKTsKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoUnVsZUJhc2VkQ29sbGF0b3IuUVVBVEVSTkFSWSk7CisgICAgICAgICAgICBjb2xsLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgaW5pdFJiVUNBKCkgCisgICAgeworICAgICAgICAvKiAgICAgIGlmKCFyYlVDQSkgeworICAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VFcnJvcjsKKyAgICAgICAgIFVDaGFyICAgICAgKnVjYXJ1bGVzID0gYnVmZmVyOworICAgICAgICAgaW50MzJfdCBzaXplID0gdWNvbF9nZXRSdWxlc0V4KFVDQSwgVUNPTF9GVUxMX1JVTEVTLCB1Y2FydWxlcywgCisgICAgICAgICBCVUZGRVJfU0laRV8pOworICAgICAgICAgaWYgKHNpemUgPiBCVUZGRVJfU0laRV8pIHsKKyAgICAgICAgIHVjYXJ1bGVzID0gKFVDaGFyICopbWFsbG9jKHNpemUgKiBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgIHNpemUgPSB1Y29sX2dldFJ1bGVzRXgoVUNBLCBVQ09MX0ZVTExfUlVMRVMsIHVjYXJ1bGVzLCBzaXplKTsKKyAgICAgICAgIH0KKyAgICAgICAgIHJiVUNBID0gdWNvbF9vcGVuUnVsZXModWNhcnVsZXMsIHNpemUsIFVDT0xfREVGQVVMVCwgVUNPTF9URVJUSUFSWSwgCisgICAgICAgICAmcGFyc2VFcnJvciwgJnN0YXR1cyk7CisgICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgIGVycmxuKCJGYWlsdXJlIGNyZWF0aW5nIFVDQSBydWxlLWJhc2VkIGNvbGxhdG9yOiAlcyIsIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFyc2VTdHJpbmcoU3RyaW5nIGxpbmUpIHsKKyAgICAgICAgaW50IGkgPSAwLCB2YWx1ZTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKSwgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGxpbmUuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGxpbmUuY2hhckF0KGkpID09ICc7JyB8fCBpID09IGxpbmUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGxpbmUuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQobGluZS5jaGFyQXQoaSkpOworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIHJlYWQgb25lIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgIHZhbHVlID0gSW50ZWdlci5wYXJzZUludChidWZmZXIudG9TdHJpbmcoKSwgMTYpOworICAgICAgICAgICAgYnVmZmVyLmRlbGV0ZSgwLCBidWZmZXIubGVuZ3RoKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb25mb3JtYW5jZVRlc3QoUnVsZUJhc2VkQ29sbGF0b3IgY29sbCkgeworICAgICAgICBpZihpbiA9PSBudWxsIHx8IGNvbGwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbGluZU5vID0gMDsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbCwgb2xkTGluZSA9IG51bGwsIGJ1ZmZlciA9IG51bGwsIG9sZEIgPSBudWxsOworICAgICAgICBDb2xsYXRpb25LZXkgb2xkU2sgPSBudWxsLCBuZXdTayA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpbnQgcmVzID0gMCwgY21wcmVzID0gMCwgY21wcmVzMiA9IDA7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgd2hpbGUgKChsaW5lID0gaW4ucmVhZExpbmUoKSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxpbmVObysrOworICAgICAgICAgICAgICAgIGlmKGxpbmUubGVuZ3RoKCkgPCAzIHx8IGxpbmUuY2hhckF0KDApID09ICcjJykgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmZmVyID0gcGFyc2VTdHJpbmcobGluZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbmV3U2sgPSBjb2xsLmdldENvbGxhdGlvbktleShidWZmZXIpOworICAgICAgICAgICAgICAgIGlmKG9sZFNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzID0gb2xkU2suY29tcGFyZVRvKG5ld1NrKTsKKyAgICAgICAgICAgICAgICAgICAgY21wcmVzID0gY29sbC5jb21wYXJlKG9sZEIsIGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgIGNtcHJlczIgPSBjb2xsLmNvbXBhcmUoYnVmZmVyLCBvbGRCKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKGNtcHJlcyAhPSAtY21wcmVzMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNvbXBhcmUgcmVzdWx0IG5vdCBzeW1tZXRyaWNhbCBvbiBsaW5lICIrbGluZU5vKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZigoKHJlcyYweDgwMDAwMDAwKSAhPSAoY21wcmVzJjB4ODAwMDAwMDApKSB8fCAocmVzID09IDAgJiYgY21wcmVzICE9IDApIHx8IChyZXMgIT0gMCAmJiBjbXByZXMgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWZmZXJlbmNlIGJldHdlZW4gdWNvbF9zdHJjb2xsIGFuZCBzb3J0a2V5IGNvbXBhcmUgb24gbGluZSAiICsgbGluZU5vKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKG9sZExpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4obGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKHJlcyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJMaW5lICIgKyBsaW5lTm8gKyAiIGlzIG5vdCBncmVhdGVyIG9yIGVxdWFsIHRoYW4gcHJldmlvdXMgbGluZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4ob2xkTGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNtcHJlcyA9IGNvbGwuY29tcGFyZShvbGRCLCBidWZmZXIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYocmVzID09IDApIHsgIC8vIGVxdWFsIAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gY29tcGFyZXIuY29tcGFyZShvbGRCLCBidWZmZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlByb2JhYmxlIGVycm9yIGluIHRlc3QgZmlsZSBvbiBsaW5lICIgKyBsaW5lTm8gKyIgKGNvbXBhcmluZyBpZGVudGljYWwgc3RyaW5ncykiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihvbGRMaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTb3J0a2V5cyBhcmUgaWRlbnRpY2FsLCBidXQgY29kZSBwb2ludCBjb21hcGFyZSBnaXZlcyA+MCBvbiBsaW5lICIgKyBsaW5lTm8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKG9sZExpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG9sZFNrID0gbmV3U2s7CisgICAgICAgICAgICAgICAgb2xkQiA9IGJ1ZmZlcjsKKyAgICAgICAgICAgICAgICBvbGRMaW5lID0gbGluZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiAiK2UpOworICAgICAgICB9CisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0RlY29tcHJlc3Npb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRGVjb21wcmVzc2lvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTNjZWFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0RlY29tcHJlc3Npb25UZXN0LmphdmEKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbXByZXNzaW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlRGVjb21wcmVzc29yOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitwdWJsaWMgY2xhc3MgRGVjb21wcmVzc2lvblRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEZWNvbXByZXNzaW9uVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiogUHJpbnQgb3V0IGEgc2VnbWVudCBvZiBhIGNoYXJhY3RlciBhcnJheSwgaWYgaW4gdmVyYm9zZSBtb2RlICovCisgICAgcHJpdmF0ZSB2b2lkIGxvZyhjaGFyIFtdIGNoYXJzLCBpbnQgc3RhcnQsIGludCBjb3VudCkgeworICAgICAgICBsb2coInwiKTsKKyAgICAgICAgZm9yKGludCBpID0gc3RhcnQ7IGkgPCBzdGFydCArIGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGxvZyhTdHJpbmcudmFsdWVPZihjaGFyc1tpXSkpOworICAgICAgICB9CisgICAgICAgIGxvZygifCIpOworICAgIH0KKworICAgIC8qKiBQcmludCBvdXQgYSBzZWdtZW50IG9mIGEgY2hhcmFjdGVyIGFycmF5LCBmb2xsb3dlZCBieSBhIG5ld2xpbmUgKi8KKyAgICBwcml2YXRlIHZvaWQgbG9nbG4oY2hhciBbXSBjaGFycywgaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICBsb2coY2hhcnMsIHN0YXJ0LCBjb3VudCk7CisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICB9CisKKyAgICAvKiogRGVjb21wcmVzcyB0aGUgdHdvIHNlZ21lbnRzICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZGVjb21wcmVzc1Rlc3QoYnl0ZSBbXSBzZWdtZW50MSwgYnl0ZSBbXSBzZWdtZW50MikgeworICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgVW5pY29kZURlY29tcHJlc3NvciBteURlY29tcHJlc3NvciA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisKKyAgICAgICAgaW50IFtdIGJ5dGVzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIGNoYXIgW10gY2hhckJ1ZmZlciA9IG5ldyBjaGFyIFsyKihzZWdtZW50MS5sZW5ndGggKyBzZWdtZW50Mi5sZW5ndGgpXTsKKyAgICAgICAgaW50IGNvdW50MSA9IDAsIGNvdW50MiA9IDA7CisKKyAgICAgICAgY291bnQxID0gbXlEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhzZWdtZW50MSwgMCwgc2VnbWVudDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLCAwLCBjaGFyQnVmZmVyLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBsb2dsbigiU2VnbWVudCAxICgiICsgc2VnbWVudDEubGVuZ3RoICsgIiBieXRlcykgIiArCisgICAgICAgICAgICAgICAgImRlY29tcHJlc3NlZCBpbnRvICIgKyBjb3VudDEgICsgIiBjaGFycyIpOworICAgICAgICBsb2dsbigiQnl0ZXMgY29uc3VtZWQ6ICIgKyBieXRlc1JlYWRbMF0pOworCisgICAgICAgIGxvZ2xuKCJHb3QgY2hhcnM6ICIpOworICAgICAgICBsb2dsbihjaGFyQnVmZmVyLCAwLCBjb3VudDEpOworICAgICAgICBzLmFwcGVuZChjaGFyQnVmZmVyLCAwLCBjb3VudDEpOworCisgICAgICAgIGNvdW50MiA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3Moc2VnbWVudDIsIDAsIHNlZ21lbnQyLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1JlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckJ1ZmZlciwgY291bnQxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBsb2dsbigiU2VnbWVudCAyICgiICsgc2VnbWVudDIubGVuZ3RoICsgIiBieXRlcykgIiArCisgICAgICAgICAgICAgICAgImRlY29tcHJlc3NlZCBpbnRvICIgKyBjb3VudDIgICsgIiBjaGFycyIpOworICAgICAgICBsb2dsbigiQnl0ZXMgY29uc3VtZWQ6ICIgKyBieXRlc1JlYWRbMF0pOworCisgICAgICAgIGxvZ2xuKCJHb3QgY2hhcnM6ICIpOworICAgICAgICBsb2dsbihjaGFyQnVmZmVyLCBjb3VudDEsIGNvdW50Mik7CisgICAgICAgIAorICAgICAgICBzLmFwcGVuZChjaGFyQnVmZmVyLCBjb3VudDEsIGNvdW50Mik7CisKKyAgICAgICAgbG9nbG4oIlJlc3VsdDogIik7CisgICAgICAgIGxvZ2xuKGNoYXJCdWZmZXIsIDAsIGNvdW50MSArIGNvdW50Mik7CisgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PSIpOworCisgICAgICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGVjb21wcmVzc2lvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgcmVzdWx0OworCisgICAgICAgIC8vIGNvbXByZXNzZWQgc2VnbWVudCBicmVha2luZyBvbiBhIGRlZmluZSB3aW5kb3cgc2VxdWVuY2UKKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgQiAgICAgbyAgICAgbyAgICAgdCAgICAgaCAgICAgU0QxICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQxID0geyAweDQyLCAweDZmLCAweDZmLCAweDc0LCAweDY4LCAweDE5IH07CisKKyAgICAgICAgLy8gY29udGludWF0aW9uCisgICAgICAgIC8qICAgICAgICAgICAgICAgICAgIElEWCAgICwgICAgICAgICAgIFMgICAgIC4gICAgICAgICAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50MiA9IHsgMHgwMSwgMHgyYywgMHgyMCwgMHg1MywgMHgyZSB9OworICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gZGVjb21wcmVzc1Rlc3Qoc2VnbWVudDEsIHNlZ21lbnQyKTsKKyAgICAgICAgaWYoISByZXN1bHQuZXF1YWxzKCJCb290aCwgUy4iKSkgeworICAgICAgICAgICAgZXJybG4oIkRlY29tcHJlc3Npb24gdGVzdCBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvbXByZXNzZWQgc2VnbWVudCBicmVha2luZyBvbiBhIHF1b3RlIHVuaWNvZGUgc2VxdWVuY2UKKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgQiAgICAgbyAgICAgbyAgICAgdCAgICAgU1FVICAgICAgICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQzID0geyAweDQyLCAweDZmLCAweDZmLCAweDc0LCAweDBlLCAweDAwIH07CisKKyAgICAgICAgLy8gY29udGludWF0aW9uCisgICAgICAgIC8qICAgICAgICAgICAgICAgICAgIGggICAgICwgICAgICAgICAgIFMgICAgIC4gICAgICAgICAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50NCA9IHsgMHg2OCwgMHgyYywgMHgyMCwgMHg1MywgMHgyZSB9OworCisgICAgICAgIHJlc3VsdCA9IGRlY29tcHJlc3NUZXN0KHNlZ21lbnQzLCBzZWdtZW50NCk7CisgICAgICAgIGlmKCEgcmVzdWx0LmVxdWFscygiQm9vdGgsIFMuIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWNvbXByZXNzaW9uIHRlc3QgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworCisgICAgICAgIC8vIGNvbXByZXNzZWQgc2VnbWVudCBicmVha2luZyBvbiBhIHF1b3RlIHVuaWNvZGUgc2VxdWVuY2UKKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgU0NVICAgVVFVICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDUgPSB7IDB4MGYsIChieXRlKTB4ZjAsIDB4MDAgfTsKKworICAgICAgICAvLyBjb250aW51YXRpb24KKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDYgPSB7IDB4NDIgfTsKKworICAgICAgICByZXN1bHQgPSBkZWNvbXByZXNzVGVzdChzZWdtZW50NSwgc2VnbWVudDYpOworICAgICAgICBpZighIHJlc3VsdC5lcXVhbHMoIkIiKSkgeworICAgICAgICAgICAgZXJybG4oIkRlY29tcHJlc3Npb24gdGVzdCBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0V4aGF1c3RpdmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRXhoYXVzdGl2ZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMjMwMDI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0V4aGF1c3RpdmVUZXN0LmphdmEKQEAgLTAsMCArMSw1MjIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbXByZXNzaW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlQ29tcHJlc3NvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVEZWNvbXByZXNzb3I7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK3B1YmxpYyBjbGFzcyBFeGhhdXN0aXZlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEV4aGF1c3RpdmVUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKiBUZXN0IHNpbXBsZSBjb21wcmVzcy9kZWNvbXByZXNzIEFQSSwgcmV0dXJuaW5nICMgb2YgZXJyb3JzICovCisgICAgcHVibGljIHZvaWQgdGVzdFNpbXBsZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZlRlc3RDYXNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc2ltcGxlVGVzdChmVGVzdENhc2VzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgc2ltcGxlVGVzdChTdHJpbmcgcykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGJ5dGUgW10gY29tcHJlc3NlZCA9IFVuaWNvZGVDb21wcmVzc29yLmNvbXByZXNzKHMpOworICAgICAgICBTdHJpbmcgcmVzID0gVW5pY29kZURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGNvbXByZXNzZWQpOworICAgICAgICBpZiAobG9nRGlmZnMocy50b0NoYXJBcnJheSgpLCBzLmxlbmd0aCgpLCAKKyAgICAgICAgICAgICAgICByZXMudG9DaGFyQXJyYXkoKSwgcmVzLmxlbmd0aCgpKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgbG9nbG4ocy5sZW5ndGgoKSArICIgY2hhcnMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIGNvbXByZXNzZWQubGVuZ3RoICsgIiBieXRlcyA9PT0+ICIgCisgICAgICAgICAgICAgICAgICAgICsgcmVzLmxlbmd0aCgpICsgIiBjaGFycyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkNvbXByZXNzZWQ6Iik7CisgICAgICAgICAgICBwcmludEJ5dGVzKGNvbXByZXNzZWQsIGNvbXByZXNzZWQubGVuZ3RoKTsKKyAgICAgICAgICAgIGVycmxuKCJ0ZXN0U2ltcGxlIGRpZCBub3QgY29tcHJlc3MgY29ycmVjdGx5Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogVGVzdCBpdGVyYXRpdmUgY29tcHJlc3MvZGVjb21wcmVzcyBBUEksIHJldHVybmluZyAjIG9mIGVycm9ycyAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RJdGVyYXRpdmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGZUZXN0Q2FzZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG15VGVzdChmVGVzdENhc2VzW2ldLnRvQ2hhckFycmF5KCksIGZUZXN0Q2FzZXNbaV0ubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBteVRlc3QoY2hhcltdIGNoYXJzLCBpbnQgbGVuKSB7CisgICAgICAgIFVuaWNvZGVDb21wcmVzc29yIG15Q29tcHJlc3NvciA9IG5ldyBVbmljb2RlQ29tcHJlc3NvcigpOworICAgICAgICBVbmljb2RlRGVjb21wcmVzc29yIG15RGVjb21wcmVzc29yID0gbmV3IFVuaWNvZGVEZWNvbXByZXNzb3IoKTsKKyAgICAgICAgCisgICAgICAgIC8vIHZhcmlhYmxlcyBmb3IgbXkgY29tcHJlc3NvcgorICAgICAgICBpbnQgbXlCeXRlQ291bnQgPSAwOworICAgICAgICBpbnQgbXlDaGFyQ291bnQgPSAwOworICAgICAgICBpbnQgbXlDb21wcmVzc2VkU2l6ZSA9IE1hdGgubWF4KDUxMiwgMypsZW4pOworICAgICAgICBieXRlW10gbXlDb21wcmVzc2VkID0gbmV3IGJ5dGVbbXlDb21wcmVzc2VkU2l6ZV07CisgICAgICAgIGludCBteURlY29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCgyLCAyICogbGVuKTsKKyAgICAgICAgY2hhcltdIG15RGVjb21wcmVzc2VkID0gbmV3IGNoYXJbbXlEZWNvbXByZXNzZWRTaXplXTsKKyAgICAgICAgaW50W10gdW5pY2hhcnNSZWFkID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50W10gYnl0ZXNSZWFkID0gbmV3IGludFsxXTsKKyAgICAgICAgCisgICAgICAgIG15Qnl0ZUNvdW50ID0gbXlDb21wcmVzc29yLmNvbXByZXNzKGNoYXJzLCAwLCBsZW4sIHVuaWNoYXJzUmVhZCwKKyAgICAgICAgICAgICAgICBteUNvbXByZXNzZWQsIDAsIG15Q29tcHJlc3NlZFNpemUpOworCisgICAgICAgIG15Q2hhckNvdW50ID0gbXlEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhteUNvbXByZXNzZWQsIDAsIG15Qnl0ZUNvdW50LAorICAgICAgICAgICAgICAgIGJ5dGVzUmVhZCwgbXlEZWNvbXByZXNzZWQsIDAsIG15RGVjb21wcmVzc2VkU2l6ZSk7CisKKyAgICAgICAgaWYgKGxvZ0RpZmZzKGNoYXJzLCBsZW4sIG15RGVjb21wcmVzc2VkLCBteUNoYXJDb3VudCkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKGxlbiArICIgY2hhcnMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIG15Qnl0ZUNvdW50ICsgIiBieXRlcyA9PT0+ICIgCisgICAgICAgICAgICAgICAgICAgICsgbXlDaGFyQ291bnQgKyAiIGNoYXJzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiQ29tcHJlc3NlZDoiKTsKKyAgICAgICAgICAgIHByaW50Qnl0ZXMobXlDb21wcmVzc2VkLCBteUJ5dGVDb3VudCk7CisgICAgICAgICAgICBlcnJsbigiSXRlcmF0aXZlIHRlc3QgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogVGVzdCBpdGVyYXRpdmUgY29tcHJlc3MvZGVjb21wcmVzcyBBUEkgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TXVsdGlwYXNzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBmVGVzdENhc2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBteU11bHRpcGFzc1Rlc3QoZlRlc3RDYXNlc1tpXS50b0NoYXJBcnJheSgpLCBmVGVzdENhc2VzW2ldLmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgbXlNdWx0aXBhc3NUZXN0KGNoYXIgW10gY2hhcnMsIGludCBsZW4pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVbmljb2RlQ29tcHJlc3NvciBteUNvbXByZXNzb3IgPSBuZXcgVW5pY29kZUNvbXByZXNzb3IoKTsKKyAgICAgICAgVW5pY29kZURlY29tcHJlc3NvciBteURlY29tcHJlc3NvciA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisgICAgICAgIAorICAgICAgICAvLyB2YXJpYWJsZXMgZm9yIG15IGNvbXByZXNzb3IKKyAgICAgICAgCisgICAgICAgIC8vIGZvciBsb29waW5nCisgICAgICAgIGludCBieXRlQnVmZmVyU2l6ZSA9IDQ7Ly9NYXRoLm1heCg0LCBsZW4gLyA0KTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVCdWZmZXIgPSBuZXcgYnl0ZSBbYnl0ZUJ1ZmZlclNpemVdOworICAgICAgICAvLyByZWFsIHRhcmdldAorICAgICAgICBpbnQgY29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCg1MTIsIDMgKiBsZW4pOworICAgICAgICBieXRlW10gY29tcHJlc3NlZCA9IG5ldyBieXRlW2NvbXByZXNzZWRTaXplXTsKKworICAgICAgICAvLyBmb3IgbG9vcGluZworICAgICAgICBpbnQgdW5pY2hhckJ1ZmZlclNpemUgPSAyOy8vYnl0ZUJ1ZmZlclNpemU7CisgICAgICAgIGNoYXJbXSB1bmljaGFyQnVmZmVyID0gbmV3IGNoYXJbdW5pY2hhckJ1ZmZlclNpemVdOworICAgICAgICAvLyByZWFsIHRhcmdldAorICAgICAgICBpbnQgZGVjb21wcmVzc2VkU2l6ZSA9IE1hdGgubWF4KDIsIDIgKiBsZW4pOworICAgICAgICBjaGFyW10gZGVjb21wcmVzc2VkID0gbmV3IGNoYXJbZGVjb21wcmVzc2VkU2l6ZV07CisKKyAgICAgICAgaW50IGJ5dGVzV3JpdHRlbiA9IDA7CisgICAgICAgIGludCB1bmljaGFyc1dyaXR0ZW4gPSAwOworCisgICAgICAgIGludFtdIHVuaWNoYXJzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIGludFtdIGJ5dGVzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBpbnQgdG90YWxDaGFyc0NvbXByZXNzZWQgPSAwOworICAgICAgICBpbnQgdG90YWxCeXRlc1dyaXR0ZW4gPSAwOworCisgICAgICAgIGludCB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkICA9IDA7CisgICAgICAgIGludCB0b3RhbENoYXJzV3JpdHRlbiA9IDA7CisKKyAgICAgICAgLy8gbm90IHVzZWQgYm9vbGVhbiBlcnIgPSBmYWxzZTsKKworCisgICAgICAgIC8vIHBlcmZvcm0gdGhlIGNvbXByZXNzaW9uIGluIGEgbG9vcAorICAgICAgICBkbyB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGRvIHRoZSBjb21wcmVzc2lvbgorICAgICAgICAgICAgYnl0ZXNXcml0dGVuID0gbXlDb21wcmVzc29yLmNvbXByZXNzKGNoYXJzLCB0b3RhbENoYXJzQ29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgbGVuLCB1bmljaGFyc1JlYWQsIGJ5dGVCdWZmZXIsIDAsIGJ5dGVCdWZmZXJTaXplKTsKKworICAgICAgICAgICAgLy8gY29weSB0aGUgY3VycmVudCBzZXQgb2YgYnl0ZXMgaW50byB0aGUgdGFyZ2V0IGJ1ZmZlcgorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCAwLCBjb21wcmVzc2VkLCAKKyAgICAgICAgICAgICAgICAgICB0b3RhbEJ5dGVzV3JpdHRlbiwgYnl0ZXNXcml0dGVuKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBuby4gb2YgY2hhcmFjdGVycyBjb21wcmVzc2VkCisgICAgICAgICAgICB0b3RhbENoYXJzQ29tcHJlc3NlZCArPSB1bmljaGFyc1JlYWRbMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGJ5dGVzIHdyaXR0ZW4KKyAgICAgICAgICAgIHRvdGFsQnl0ZXNXcml0dGVuICs9IGJ5dGVzV3JpdHRlbjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLypTeXN0ZW0ub3V0LmxvZ2xuKCJDb21wcmVzc2lvbiBwYXNzIGNvbXBsZXRlLiAgQ29tcHJlc3NlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB1bmljaGFyc1JlYWRbMF0gKyAiIGNoYXJzIGludG8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgYnl0ZXNXcml0dGVuICsgIiBieXRlcy4iKTsqLworICAgICAgICB9IHdoaWxlKHRvdGFsQ2hhcnNDb21wcmVzc2VkIDwgbGVuKTsKKworICAgICAgICBpZiAodG90YWxDaGFyc0NvbXByZXNzZWQgIT0gbGVuKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IE51bWJlciBvZiBjaGFyYWN0ZXJzIGNvbXByZXNzZWQoIgorICAgICAgICAgICAgICAgICAgICArIHRvdGFsQ2hhcnNDb21wcmVzc2VkICsgIikgIT0gbGVuKCIgKyBsZW4gKyAiKSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk1QOiAiICsgbGVuICsgIiBjaGFycyA9PT0+ICIgKyB0b3RhbEJ5dGVzV3JpdHRlbiArICIgYnl0ZXMuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBlcmZvcm0gdGhlIGRlY29tcHJlc3Npb24gaW4gYSBsb29wCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gZG8gdGhlIGRlY29tcHJlc3Npb24KKyAgICAgICAgICAgIHVuaWNoYXJzV3JpdHRlbiA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3MoY29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQsIHRvdGFsQnl0ZXNXcml0dGVuLCAKKyAgICAgICAgICAgICAgICAgICAgYnl0ZXNSZWFkLCB1bmljaGFyQnVmZmVyLCAwLCB1bmljaGFyQnVmZmVyU2l6ZSk7CisKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGN1cnJlbnQgc2V0IG9mIGNoYXJzIGludG8gdGhlIHRhcmdldCBidWZmZXIKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodW5pY2hhckJ1ZmZlciwgMCwgZGVjb21wcmVzc2VkLCAKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFyc1dyaXR0ZW4sIHVuaWNoYXJzV3JpdHRlbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGJ5dGVzIGRlY29tcHJlc3NlZAorICAgICAgICAgICAgdG90YWxCeXRlc0RlY29tcHJlc3NlZCArPSBieXRlc1JlYWRbMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGNoYXJzIHdyaXR0ZW4KKyAgICAgICAgICAgIHRvdGFsQ2hhcnNXcml0dGVuICs9IHVuaWNoYXJzV3JpdHRlbjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLypTeXN0ZW0ub3V0LmxvZ2xuKCJEZWNvbXByZXNzaW9uIHBhc3MgY29tcGxldGUuICBEZWNvbXByZXNzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgYnl0ZXNSZWFkWzBdICsgIiBieXRlcyBpbnRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHVuaWNoYXJzV3JpdHRlbiArICIgY2hhcnMuIik7Ki8KKyAgICAgICAgfSB3aGlsZSAodG90YWxCeXRlc0RlY29tcHJlc3NlZCA8IHRvdGFsQnl0ZXNXcml0dGVuKTsKKworICAgICAgICBpZiAodG90YWxCeXRlc0RlY29tcHJlc3NlZCAhPSB0b3RhbEJ5dGVzV3JpdHRlbikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBOdW1iZXIgb2YgYnl0ZXMgZGVjb21wcmVzc2VkKCIgCisgICAgICAgICAgICAgICAgICAgICsgdG90YWxCeXRlc0RlY29tcHJlc3NlZCAKKyAgICAgICAgICAgICAgICAgICAgKyAiKSAhPSB0b3RhbEJ5dGVzV3JpdHRlbigiIAorICAgICAgICAgICAgICAgICAgICArIHRvdGFsQnl0ZXNXcml0dGVuICsgIikiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNUDogIiArIHRvdGFsQnl0ZXNXcml0dGVuCisgICAgICAgICAgICAgICAgICAgICsgIiBieXRlcyA9PT0+ICIgKyB0b3RhbENoYXJzV3JpdHRlbiArICIgY2hhcnMuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChsb2dEaWZmcyhjaGFycywgbGVuLCBkZWNvbXByZXNzZWQsIHRvdGFsQ2hhcnNXcml0dGVuKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBidWZmZXIgY29udGVudHMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogUHJpbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiB0d28gY2hhcmFjdGVyIGJ1ZmZlcnMgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbG9nRGlmZnMoY2hhcltdIHMxLCBpbnQgczFsZW4sIGNoYXJbXSBzMiwgaW50IHMybGVuKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ICA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYoczFsZW4gIT0gczJsZW4pIHsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgbG9nbG4oIkxlbmd0aCBkb2Vzbid0IG1hdGNoOiBleHBlY3RlZCAiICsgczFsZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgczJsZW4pOworICAgICAgICAgICAgbG9nbG4oIkV4cGVjdGVkOiIpOworICAgICAgICAgICAgcHJpbnRDaGFycyhzMSwgczFsZW4pOworICAgICAgICAgICAgbG9nbG4oIkdvdDoiKTsKKyAgICAgICAgICAgIHByaW50Q2hhcnMoczIsIHMybGVuKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBsZW4gPSBNYXRoLm1pbihzMWxlbiwgczJsZW4pOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIGlmKHMxW2ldICE9IHMyW2ldKSB7CisgICAgICAgICAgICAgICAgaWYocmVzdWx0ID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiRmlyc3QgZGlmZmVyZW5jZSBhdCBjaGFyICIgKyBpKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXhwLiBjaGFyOiAiICsgSW50ZWdlci50b0hleFN0cmluZyhzMVtpXSkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3QgY2hhciA6ICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHMyW2ldKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIkV4cGVjdGVkOiIpOworICAgICAgICAgICAgICAgIHByaW50Q2hhcnMoczEsIHMxbGVuKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290OiIpOworICAgICAgICAgICAgICAgIHByaW50Q2hhcnMoczIsIHMybGVuKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gZ2VuZXJhdGUgYSBzdHJpbmcgb2YgY2hhcmFjdGVycywgd2l0aCBzaW11bGF0ZWQgcnVucyBvZiBjaGFyYWN0ZXJzCisgICAgLypwcml2YXRlIHN0YXRpYyBjaGFyW10gcmFuZG9tQ2hhcnMoaW50IGxlbiwgUmFuZG9tIHJhbmRvbSkgeworICAgICAgICBjaGFyW10gcmVzdWx0ID0gbmV3IGNoYXIgW2xlbl07CisgICAgICAgIGludCBydW5MZW4gPSAwOworICAgICAgICBpbnQgdXNlZCA9IDA7CisgICAgICAgIAorICAgICAgICB3aGlsZSh1c2VkIDwgbGVuKSB7CisgICAgICAgICAgICBydW5MZW4gPSAoaW50KSAoMzAgKiByYW5kb20ubmV4dERvdWJsZSgpKTsKKyAgICAgICAgICAgIGlmKHVzZWQgKyBydW5MZW4gPj0gbGVuKSB7CisgICAgICAgICAgICAgICAgcnVuTGVuID0gbGVuIC0gdXNlZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJhbmRvbVJ1bihyZXN1bHQsIHVzZWQsIHJ1bkxlbiwgcmFuZG9tKTsKKyAgICAgICAgICAgIHVzZWQgKz0gcnVuTGVuOworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSovCisKKyAgICAvLyBnZW5lcmF0ZSBhIHJ1biBvZiBjaGFyYWN0ZXJzIGluIGEgIndpbmRvdyIKKyAgICAvKnByaXZhdGUgc3RhdGljIHZvaWQgcmFuZG9tUnVuKGNoYXJbXSB0YXJnZXQsIGludCBwb3MsIGludCBsZW4sIFJhbmRvbSByYW5kb20pIHsKKyAgICAgICAgaW50IG9mZnNldCA9IChpbnQpICgweEZGRkYgKiByYW5kb20ubmV4dERvdWJsZSgpKTsKKworICAgICAgICAvLyBkb24ndCBvdmVyZmxvdyAxNiBiaXRzCisgICAgICAgIGlmKG9mZnNldCA+IDB4RkY4MCkgeworICAgICAgICAgICAgb2Zmc2V0ID0gMHhGRjgwOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGludCBpID0gcG9zOyBpIDwgcG9zICsgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldFtpXSA9IChjaGFyKShvZmZzZXQgKyAoMHg3RiAqIHJhbmRvbS5uZXh0RG91YmxlKCkpKTsKKyAgICAgICAgfQorICAgIH0qLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFtdIGZUZXN0Q2FzZXMgPSB7CisgICAgICAgICJIZWxsbyBcdTkyOTIgXHU5MTkyIFdvcmxkISIsCisgICAgICAgICJIZWxsXHUwNDI5byBcdTkyOTIgXHU5MTkyIFdcdTAwODRybGQhIiwKKyAgICAgICAgIkhlbGxcdTA0MjlvIFx1OTI5MiBcdTkyOTJXXHUwMDg0cmxkISIsCisKKyAgICAgICAgIlx1MDY0OFx1MDZjOCIsIC8vIGNhdGNoIG1pc3NpbmcgcmVzZXQKKyAgICAgICAgIlx1MDY0OFx1MDZjOCIsCisKKyAgICAgICAgIlx1NDQ0NFx1RTAwMSIsIC8vIGxvd2VzdCBxdW90YWJsZQorICAgICAgICAiXHU0NDQ0XHVmMkZGIiwgLy8gaGlnaGVzdCBxdW90YWJsZQorICAgICAgICAiXHU0NDQ0XHVmMTg4XHU0NDQ0IiwKKyAgICAgICAgIlx1NDQ0NFx1ZjE4OFx1ZjI4OCIsCisgICAgICAgICJcdTQ0NDRcdWYxODhhYmNcMDQyOVx1ZjI4OCIsCisgICAgICAgICJcdTkyOTJcdTIyMjIiLAorICAgICAgICAiSGVsbFx1MDQyOVx1MDQyMzBvIFx1OTI5MiBcdTkyOTJXXHUwMDg0XHUwMTkycmxkISIsCisgICAgICAgICJIZWxsXHUwNDI5byBcdTkyOTIgXHU5MjkyV1x1MDA4NHJsZCEiLAorICAgICAgICAiSGVsbG8gV29ybGQhMTIzNDU2IiwKKyAgICAgICAgIkhlbGxvIFdcdTAwODFcdTAxMWZcdTAwODIhIiwgLy8gTGF0aW4gMSBydW4KKworICAgICAgICAiYWJjXHUwMzAxXHUwMzAyIiwgIC8vIHVzZXMgU1FuIGZvciB1MzAxIHUzMDIKKyAgICAgICAgImFiY1x1NDQxMWQiLCAgICAgIC8vIHVzZXMgU1FVCisgICAgICAgICJhYmNcdTQ0MTFcdTQ0MTJkIiwvLyB1c2VzIFNDVQorICAgICAgICAiYWJjXHUwNDAxXHUwNDAyXHUwNDdmXHUwMGE1XHUwNDA1IiwgLy8gdXNlcyBTUW4gZm9yIHVhNQorICAgICAgICAiXHU5MTkxXHU5MTkxXHUzMDQxXHU5MTkxXHUzMDQxXHUzMDQxXHUzMDAwIiwgLy8gU0pJUyBsaWtlIGRhdGEKKyAgICAgICAgIlx1OTI5Mlx1MjIyMiIsCisgICAgICAgICJcdTkxOTFcdTkxOTFcdTMwNDFcdTkxOTFcdTMwNDFcdTMwNDFcdTMwMDAiLAorICAgICAgICAiXHU5OTk5XHUzMDUxXHUzMDBjXHU5OTk5XHU5OTk5XHUzMDYwXHU5OTk5XHUzMDY1XHUzMDY1XHUzMDY1XHUzMDBjIiwKKyAgICAgICAgIlx1MzAwMFx1MjY2YVx1MzBlYVx1MzBmM1x1MzBiNFx1NTNlZlx1NjExYlx1MzA0NFx1MzA4NFx1NTNlZlx1NjExYlx1MzA0NFx1MzA4NFx1MzBlYVx1MzBmM1x1MzBiNFx1MzAwMiIsCisKKyAgICAgICAgIiIsIC8vIGVtcHR5IGlucHV0CisgICAgICAgICJcdTAwMDAiLCAvLyBzbWFsbGVzdCBCTVAgY2hhcmFjdGVyCisgICAgICAgICJcdUZGRkYiLCAvLyBsYXJnZXN0IEJNUCBjaGFyYWN0ZXIKKworICAgICAgICAiXHVkODAwXHVkYzAwIiwgLy8gc21hbGxlc3Qgc3Vycm9nYXRlCisgICAgICAgICJcdWQ4ZmZcdWRjZmYiLCAvLyBsYXJnZXN0IHN1cnJvZ2F0ZSBwYWlyCisgICAgICAgIAorICAgICAgICAvLyByZWdyZXNzaW9uIHRlc3RzCisgICAgICAgICJcdTY0NDFcdWI0MTNcdWE3MzNcdWY4ZmVcdWVlZGJcdTU4N2ZcdTE5NWZcdTQ4OTlcdWYyM2RcdTQ5ZmRcdTBhYWNcdTU3OTJcdWZjMjJcdWZjM2NcdWZjNDZcdTAwYWEiLAorICAgICAgICAiXHUzMGY5XHU4MzIxXHUwNWU1XHUxODFjXHVkNzJiXHUyMDE5XHU5OWM5XHUyZjJmXHVjMTBjXHU4MmUxXHUyYzRkXHUxZWJjXHU2MDEzXHU2NmRjXHViYmRlXHU5NGE1XHU0NzI2XHU3NGFmXHUzMDgzXHU1NWI5XHUwMDBjIiwKKyAgICAgICAgIlx1MDA0MVx1MDBkZlx1MDQwMVx1MDE1ZiIsCisgICAgICAgICJcdTkwNjZcdTIxMjNhYmMiLAorICAgICAgICAiXHVkMjY2XHU0M2Q3XFxcdWUzODZcdWM5YzBcdTRhNmJcdTkyMjJcdTkwMWZcdTc0MTBcdWE2M2ZcdTUzOWJcdTk1OTZcdTQ4MmVcdTlkNDdcdWNmZTRcdTdiNzFcdWMyODBcdWYyNmFcdTk4MmZcdTg2MmFcdTRlZGRcdWY1MTNcdWZkYTZcdTg2OWRcdTJlZTBcdWEyMTZcdTNmZjZcdTNjNzBcdTg5YzBcdTk1NzZcdWQ1ZWNcdWJmZGFcdTZjY2FcdTViYjNcdWJjZWFcdTU1NGNcdTkxNGVcdWZhNGFcdWVkZTNcdTI5OTBcdWQyZjVcdTI3MjlcdTUxNDFcdTBmMjZcdWNjZDhcdTU0MTNcdWQxOTZcdWJiZTJcdTUxYjlcdTliNDhcdTBkYzhcdTIxOTVcdTIxYTJcdTIxZTlcdTAwZTRcdTlkOTJcdTBiYzBcdTA2YzUiLAorICAgICAgICAiXHVmOTViXHUyNDU4XHUyNDY4XHUwZTIwXHVmNTFiXHVlMzZlXHViZmMxXHUwMDgwXHUwMmRkXHVmMWI1XHUwY2YzXHU2MDU5XHU3NDg5IgorCisgICAgfTsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDb21wcmVzc2lvbiBtb2RlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0lOR0xFQllURU1PREUgICAgICAgICAgICAgICAgID0gMDsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVU5JQ09ERU1PREUgICAgICAgICAgICAgICAgICAgID0gMTsKKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU2luZ2xlLWJ5dGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FWCAgICAgICAgICAgICAgICAgICA9IDB4MEI7CisgICAgLy9wcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1JFU0VSVkVEICAgICAgICAgICAgICAgICAgPSAweDBDOyAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgcmVzZXJ2ZWQgdmFsdWUKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFVSAgICAgICAgICAgICAgICAgICAgPSAweDBFOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENIVSAgICAgICAgICAgICAgICAgICA9IDB4MEY7CisKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMSAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMiAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMzsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMyAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNSAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNjsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNiAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNzsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNyAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwODsKKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENIMCAgICAgICAgICAgICAgICAgICAgICAgPSAweDEwOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENIMSAgICAgICAgICAgICAgICAgICAgICAgPSAweDExOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENIMiAgICAgICAgICAgICAgICAgICAgICAgPSAweDEyOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENIMyAgICAgICAgICAgICAgICAgICAgICAgPSAweDEzOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINCAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINSAgICAgICAgICAgICAgICAgICAgICAgPSAweDE1OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINiAgICAgICAgICAgICAgICAgICAgICAgPSAweDE2OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINyAgICAgICAgICAgICAgICAgICAgICAgPSAweDE3OworCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUwICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTg7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUxICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTk7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUyICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUE7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUzICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU0ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUM7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUQ7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUU7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU3ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUY7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gVW5pY29kZSBtb2RlIHRhZ3MKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gwICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTA7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gxICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTE7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gyICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gzICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTM7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0g0ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTQ7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0g1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTU7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0g2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTY7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0g3ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTc7CisKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTAgICAgICAgICAgICAgICAgICAgICAgID0gMHhFODsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTEgICAgICAgICAgICAgICAgICAgICAgID0gMHhFOTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTIgICAgICAgICAgICAgICAgICAgICAgID0gMHhFQTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTMgICAgICAgICAgICAgICAgICAgICAgID0gMHhFQjsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTQgICAgICAgICAgICAgICAgICAgICAgID0gMHhFQzsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTUgICAgICAgICAgICAgICAgICAgICAgID0gMHhFRDsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTYgICAgICAgICAgICAgICAgICAgICAgID0gMHhFRTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTcgICAgICAgICAgICAgICAgICAgICAgID0gMHhFRjsKKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVUVVPVEVVICAgICAgICAgICAgICAgICAgICAgICAgPSAweEYwOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVREVGSU5FWCAgICAgICAgICAgICAgICAgICAgICAgPSAweEYxOworICAgIC8vcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVSRVNFUlZFRCAgICAgICAgICAgICAgICAgICAgICA9IDB4RjI7ICAgICAgICAgLy8gdGhpcyBpcyBhIHJlc2VydmVkIHZhbHVlCisKKyAgICAvKiBQcmludCBvdXQgYW4gYXJyYXkgb2YgY2hhcmFjdGVycywgd2l0aCBub24tcHJpbnRhYmxlcyAoZm9yIG1lKSAKKyAgICAgICBkaXNwbGF5ZWQgYXMgaGV4IHZhbHVlcyAqLworICAgIHByaXZhdGUgdm9pZCBwcmludENoYXJzKGNoYXJbXSBjaGFycywgaW50IGxlbikgeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIGludCBjID0gKGludCljaGFyc1tpXTsKKyAgICAgICAgICAgIGlmKGMgPCAweDAwMjAgfHwgYyA+PSAweDdmKSB7CisgICAgICAgICAgICAgICAgbG9nKCJbMHgiKTsKKyAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICAgICAgbG9nKCJdIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZyhTdHJpbmcudmFsdWVPZigoY2hhciljKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIiIpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludEJ5dGVzKGJ5dGVbXSBieXRlQnVmZmVyLCBpbnQgbGVuKSB7CisgICAgICAgIGludCBjdXJCeXRlSW5kZXggPSAwOworICAgICAgICBpbnQgYnl0ZUJ1ZmZlckxpbWl0ID0gbGVuOworICAgICAgICBpbnQgbW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICBpbnQgYUJ5dGUgPSAweDAwOworICAgICAgICAKKyAgICAgICAgaWYobGVuID4gYnl0ZUJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiBwcmludEJ5dGVzIGNhbGxlZCB3aXRoIGxlbmd0aCB0b28gbGFyZ2UuIFRydW5jYXRpbmciKTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCA9IGJ5dGVCdWZmZXIubGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aGlsZShjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgIHN3aXRjaChtb2RlKSB7ICAKKyAgICAgICAgICAgIGNhc2UgU0lOR0xFQllURU1PREU6CisgICAgICAgICAgICAgICAgd2hpbGUoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0IAorICAgICAgICAgICAgICAgICAgICAgICYmIG1vZGUgPT0gU0lOR0xFQllURU1PREUpICB7CisgICAgICAgICAgICAgICAgICAgIGFCeXRlID0gKChpbnQpYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRjsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGFCeXRlKSB7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYUJ5dGUpICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSB1bmljb2RlCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1FVT1RFVToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiU1FVT1RFVSAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3dpdGNoIHRvIFVuaWNvZGUgbW9kZQorICAgICAgICAgICAgICAgICAgICBjYXNlIFNTV0lUQ0hVOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTU1dJVENIVSAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBVTklDT0RFTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIHF1b3RlIHRhZ3MKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTUVVPVEUwOiBjYXNlIFNRVU9URTE6IGNhc2UgU1FVT1RFMjogY2FzZSBTUVVPVEUzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFNRVU9URTQ6IGNhc2UgU1FVT1RFNTogY2FzZSBTUVVPVEU2OiBjYXNlIFNRVU9URTc6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNRVU9URSIgKyAoYUJ5dGUgLSBTUVVPVEUwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgc3dpdGNoIHRhZ3MKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTU1dJVENIMDogY2FzZSBTU1dJVENIMTogY2FzZSBTU1dJVENIMjogY2FzZSBTU1dJVENIMzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTU1dJVENINDogY2FzZSBTU1dJVENINTogY2FzZSBTU1dJVENINjogY2FzZSBTU1dJVENINzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiU1NXSVRDSCIgKyAoYUJ5dGUgLSBTU1dJVENIMCkgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU0RFRklORTA6IGNhc2UgU0RFRklORTE6IGNhc2UgU0RFRklORTI6IGNhc2UgU0RFRklORTM6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgU0RFRklORTQ6IGNhc2UgU0RFRklORTU6IGNhc2UgU0RFRklORTY6IGNhc2UgU0RFRklORTc6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNERUZJTkUiICsgKGFCeXRlIC0gU0RFRklORTApICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBkZWZpbmUgZXh0ZW5kZWQgdGFnCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU0RFRklORVg6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNERUZJTkVYICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gLy8gZW5kIHN3aXRjaAorICAgICAgICAgICAgICAgIH0gLy8gZW5kIHdoaWxlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVOSUNPREVNT0RFOgorICAgICAgICAgICAgICAgIHdoaWxlKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCAmJiBtb2RlID09IFVOSUNPREVNT0RFKSB7CisgICAgICAgICAgICAgICAgICAgIGFCeXRlID0gKChpbnQpYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRjsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGFCeXRlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVURFRklORTA6IGNhc2UgVURFRklORTE6IGNhc2UgVURFRklORTI6IGNhc2UgVURFRklORTM6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVURFRklORTQ6IGNhc2UgVURFRklORTU6IGNhc2UgVURFRklORTY6IGNhc2UgVURFRklORTc6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlVERUZJTkUiICsgKGFCeXRlIC0gVURFRklORTApICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBkZWZpbmUgZXh0ZW5kZWQgdGFnCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVURFRklORVg6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlVERUZJTkVYICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIHN3aXRjaCB0YWdzCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVNXSVRDSDA6IGNhc2UgVVNXSVRDSDE6IGNhc2UgVVNXSVRDSDI6IGNhc2UgVVNXSVRDSDM6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVNXSVRDSDQ6IGNhc2UgVVNXSVRDSDU6IGNhc2UgVVNXSVRDSDY6IGNhc2UgVVNXSVRDSDc6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlVTV0lUQ0giICsgKGFCeXRlIC0gVVNXSVRDSDApICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSB1bmljb2RlCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVFVT1RFVToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiVVFVT1RFVSAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGFCeXRlKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfSAvLyBlbmQgc3dpdGNoCisgICAgICAgICAgICAgICAgfSAvLyBlbmQgd2hpbGUKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gLy8gZW5kIHN3aXRjaCggbW9kZSApCisgICAgICAgIH0gLy8gZW5kIHdoaWxlCisgICAgICAgIAorICAgICAgICBsb2dsbigiIik7CisgICAgfSAgICAKK30KKworCisKKworCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMzQzNWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbXByZXNzaW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBvdGhlciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcihuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIkRlY29tcHJlc3Npb25UZXN0IiwKKyAgICAgICAgICAgICJFeGhhdXN0aXZlVGVzdCIsCisgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIkNvbXByZXNzaW9uIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyNmJjOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Rlc3RzIGZvciB0aGUgY29tcHJlc3Npb24gY2xhc3Nlcy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0JpZ051bWJlckZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvQmlnTnVtYmVyRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiNDcyNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0JpZ051bWJlckZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDQ1MSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBAdGVzdAorICogR2VuZXJhbCB0ZXN0IG9mIEJpZyBOdW1iZXJGb3JtYXQKKyAqLworcHVibGljIGNsYXNzIEJpZ051bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IElMTEVHQUwgPSAtMTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQmlnTnVtYmVyRm9ybWF0VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBvbmVudCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQxID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMjRTAiLCBVUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjI0UrMCIsIFVTKTsKKyAgICAgICAgTnVtYmVyIG4gPSBuZXcgTG9uZygxMjM0KTsKKyAgICAgICAgZXhwZWN0KGZtdDEsIG4sICIxLjIzNEUzIik7CisgICAgICAgIGV4cGVjdChmbXQyLCBuLCAiMS4yMzRFKzMiKTsKKyAgICAgICAgZXhwZWN0KGZtdDEsICIxLjIzNEUzIiwgbik7CisgICAgICAgIGV4cGVjdChmbXQxLCAiMS4yMzRFKzMiLCBuKTsgLy8gRWl0aGVyIGZvcm1hdCBzaG91bGQgcGFyc2UgIkUrMyIKKyAgICAgICAgZXhwZWN0KGZtdDIsICIxLjIzNEUrMyIsIG4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZ1bmN0aW9uaW5nIG9mIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNlY29uZGFyeUdyb3VwaW5nKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIywjIyMiLCBVUyk7CisgICAgICAgIGV4cGVjdChmLCBuZXcgTG9uZygxMjM0NTY3ODkpLCAiMTIsMzQsNTYsNzg5Iik7CisgICAgICAgIGV4cGVjdFBhdChmLCAiIywjIywjIyMiKTsKKyAgICAgICAgZi5hcHBseVBhdHRlcm4oIiMsIyMjIik7CisgICAgICAgIGYuc2V0U2Vjb25kYXJ5R3JvdXBpbmdTaXplKDQpOworICAgICAgICBleHBlY3QoZiwgbmV3IExvbmcoMTIzNDU2Nzg5KSwgIjEyLDM0NTYsNzg5Iik7CisgICAgICAgIGV4cGVjdFBhdChmLCAiIywjIyMjLCMjIyIpOworCisgICAgICAgIC8vIE9uIFN1biBKREsgMS4yLTEuMywgdGhlIGhpX0lOIGxvY2FsZSB1c2VzICcwJyBmb3IgYSB6ZXJvIGRpZ2l0LAorICAgICAgICAvLyBidXQgb24gSUJNIEpESyAxLjItMS4zLCB0aGUgbG9jYWxlIHVzZXMgVSswOTY2LgorICAgICAgICBmID0gKERlY2ltYWxGb3JtYXQpIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJoaSIsICJJTiIpKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHRyYW5zbXV0ZSgiMSw4Nyw2NSw0MywyMTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKS5nZXRaZXJvRGlnaXQoKSk7CisgICAgICAgIGV4cGVjdChmLCBuZXcgTG9uZygxODc2NTQzMjEwKSwgc3RyKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0UGFkKERlY2ltYWxGb3JtYXQgZm10LCBTdHJpbmcgcGF0LCBpbnQgcG9zKSB7CisgICAgICAgIGV4cGVjdFBhZChmbXQsIHBhdCwgcG9zLCAwLCAoY2hhcikwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0UGFkKERlY2ltYWxGb3JtYXQgZm10LCBTdHJpbmcgcGF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcywgaW50IHdpZHRoLCBjaGFyIHBhZCkgeworICAgICAgICBpbnQgYXBvcyA9IDAsIGF3aWR0aCA9IDA7CisgICAgICAgIGNoYXIgYXBhZCA9IDA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBhcG9zID0gZm10LmdldFBhZFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2lkdGggPSBmbXQuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICAgICAgICAgIGFwYWQgPSBmbXQuZ2V0UGFkQ2hhcmFjdGVyKCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBhcG9zID0gLTE7CisgICAgICAgICAgICBhd2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIGFwYWQgPSBwYWQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFwb3MgPT0gcG9zICYmIGF3aWR0aCA9PSB3aWR0aCAmJiBhcGFkID09IHBhZCkgeworICAgICAgICAgICAgbG9nbG4oIk9rICAgXCIiICsgcGF0ICsgIlwiIHBvcz0iICsgYXBvcyArCisgICAgICAgICAgICAgICAgICAoKHBvcyA9PSAtMSkgPyAiIiA6ICIgd2lkdGg9IiArIGF3aWR0aCArICIgcGFkPSIgKyBhcGFkKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiRkFJTCBcIiIgKyBwYXQgKyAiXCIgcG9zPSIgKyBhcG9zICsKKyAgICAgICAgICAgICAgICAgICIgd2lkdGg9IiArIGF3aWR0aCArICIgcGFkPSIgKyBhcGFkICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBwb3MgKyAiICIgKyB3aWR0aCArICIgIiArIHBhZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybnMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMiLCBVUyk7CisKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDEsICdeJyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4jIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYLCAyLCAnXicpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiIypeIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwgMSwgJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4iLCBEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9TVUZGSVgsIDIsICdeJyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4kIyIsIElMTEVHQUwpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiIyQqXiQiLCBJTExFR0FMKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIidwcmUnIywjIzAqeCdwb3N0JyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsCisgICAgICAgICAgICAgICAgICAxMiwgJ3gnKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIicnIzAqeCIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsCisgICAgICAgICAgICAgICAgICAzLCAneCcpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJ0knJ2xsJyphIyMjLiMjIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYLAorICAgICAgICAgICAgICAgICAgMTAsICdhJyk7CisKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiQUEjLCMjMC4wMFpaIik7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIoJ14nKTsKKworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTApOworCisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfUFJFRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIipeQUEjLCMjMC4wMFpaIik7CisKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEjLCMjMC4wMCpeWloiKTsKKworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfU1VGRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBIywjIzAuMDBaWipeIik7CisKKyAgICAgICAgLy8gICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMgorICAgICAgICBTdHJpbmcgZXhwID0gIkFBKl4jLCMjMC4wMFpaIjsKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEyKTsKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsIGV4cCk7CisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEzKTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjLCMjMC4wMFpaIik7CisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDE0KTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMzQKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBKl4jIyMsIyMwLjAwWloiKTsKKworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTUpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNDUKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBKl4jIyMjLCMjMC4wMFpaIik7IC8vIFRoaXMgaXMgdGhlIGludGVyZXN0aW5nIGNhc2UKKworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTYpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNDU2CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIywjIyMsIyMwLjAwWloiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0UGF0KERlY2ltYWxGb3JtYXQgZm10LCBTdHJpbmcgZXhwKSB7CisgICAgICAgIFN0cmluZyBwYXQgPSBmbXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmIChwYXQuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgIFwiIiArIHBhdCArICciJyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBwYXQgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cCArICciJyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBoYW5kbGluZyBvZiB0aGUgQWxwaGFXb3JrcyBCaWdEZWNpbWFsCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFscGhhQmlnRGVjaW1hbCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgLypGb3IgSUNVIGNvbXBhdGliaWxpdHkgW1JpY2hhcmQvR0NMXSovCisgICAgICAgIGV4cGVjdChOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICBuZXcgTnVtYmVyW10geyBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS42Nzg5MDEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAiMS4yMzQ1Njc4OTAxRTQiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNDk5OSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDQuNTAwMSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAiMTIuMzQ1RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNTAwMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDYuNTAwMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAiMTIuMzQ2RTMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NpZW50aWZpYygpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgLypGb3IgSUNVIGNvbXBhdGliaWxpdHkgW1JpY2hhcmQvR0NMXSovCisgICAgICAgIGV4cGVjdChOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICBuZXcgTnVtYmVyW10geyBuZXcgRG91YmxlKDEyMzQ1LjY3ODkwMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjY3ODkwMSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAiMS4yMzQ1Njc4OTAxRTQiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMzQ1KSwKKyAgICAgICAgICAgICAgICIxMi4zNEUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjM0NS4wMDAwMSksCisgICAgICAgICAgICAgICAiMTIuMzVFMyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgTnVtYmVyW10geyBuZXcgSW50ZWdlcigxMjM0NSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9uZygxMjM0NSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjQ5OTkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTIzNDQuNTAwMSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAiMTIuMzQ1RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS41MDAwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ2LjUwMDAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEyLjM0NkUzIik7CisgICAgICAgIC8qRm9yIElDVSBjb21wYXRpYmlsaXR5IFtSaWNoYXJkL0dDTF0qLworICAgICAgICBleHBlY3QoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuRlJBTkNFKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIzNDUuNjc4OTAxKSwKKyAgICAgICAgICAgICAgICIxLDIzNDU2Nzg5MDFFNCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDc4OS4xMjM0NWUtOSksCisgICAgICAgICAgICAgICAiNzg5LjEyRS05Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoNzgwLmUtOSksCisgICAgICAgICAgICAgICAiNzgwRS05Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiLiMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSg0NTY3OCksCisgICAgICAgICAgICAgICAiLjQ1N0U1Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiLiMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IExvbmcoMCksCisgICAgICAgICAgICAgICAiLjBFMCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXRbXSB7IG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMEUwIiwgVVMpLCAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMDBFMCIsIFVTKSwgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMDAwRTAiLCBVUyksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgbmV3IExvbmcoNDU2NzgwMDApLAorICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIjQuNTY3OEU3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NS42NzhFNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDU2Ny44RTQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjVFNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDZFNiIsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NTdFNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBEb3VibGUoMC4wMDAwMTIzKSwgIjEyLjNFLTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMDEyMyksICIxMjNFLTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIwLjAwMTIzIiksICIxLjIzRS0zIiwgLy8gQ2FmZSBWTSBtZXNzZXMgdXAgRG91YmxlKDAuMDAxMjMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDEyMyksICIxMi4zRS0zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMC4xMjMpLCAiMTIzRS0zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMS4yMyksICIxLjIzRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMi4zKSwgIjEyLjNFMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMyksICIxMjNFMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMzApLCAiMS4yM0UzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMC4jRSswMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBEb3VibGUoMC4wMDAxMiksICIxLjJFLTA0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKDEyMDAwKSwgICAgICIxLjJFKzA0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgLyoqCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhZCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIqXiMjLiMjIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IExvbmcoMCksICAgICAgIl5eXl4wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoLTEuMyksICJeLTEuMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyNFMCpfICdnLW0vc14yJyIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBMb25nKDApLCAgICAgICAiMC4wRTBfX19fX18gZy1tL3NeMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEuMC8zKSwgIjMzMy4zMzNFLTNfIGctbS9zXjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjKl8gJ2ctbS9zXjInIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IExvbmcoMCksICAgICAgICIwLjBfX19fX18gZy1tL3NeMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEuMC8zKSwgIjAuMzMzMzNfXyBnLW0vc14yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICApOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIip4IywjIyMsIyMjLCMjMC4wMDsqeCgjLCMjIywjIyMsIyMwLjAwKSIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoLTEwMCksICAgICAgICAieHh4eHh4eHgoMTAwLjAwKSIsCisgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoLTEwMDApLCAgICAgICAieHh4eHh4KDEsMDAwLjAwKSIsCisgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoLTEwMDAwMDApLCAgICAieHgoMSwwMDAsMDAwLjAwKSIsCisgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoLTEwMDAwMDAwMDApLCAiKDEsMDAwLDAwMCwwMDAuMDApIiwKKyAgICAgICAgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE9iamVjdFtdIGRhdGEpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGRhdGEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBleHBlY3QoZm10LCAoTnVtYmVyKSBkYXRhW2ldLCAoU3RyaW5nKSBkYXRhW2krMV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBleHBlY3QoT2JqZWN0IGZtdG8sIE9iamVjdCBudW1vLCBPYmplY3QgZXhwbykgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gbnVsbCwgZm10c1tdID0gbnVsbDsKKyAgICAgICAgTnVtYmVyIG51bSA9IG51bGwsIG51bXNbXSA9IG51bGw7CisgICAgICAgIFN0cmluZyBleHAgPSBudWxsLCBleHBzW10gPSBudWxsOworICAgICAgICBpZiAoZm10byBpbnN0YW5jZW9mIE51bWJlckZvcm1hdFtdKSB7CisgICAgICAgICAgICBmbXRzID0gKE51bWJlckZvcm1hdFtdKSBmbXRvOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm10ID0gKE51bWJlckZvcm1hdCkgZm10bzsKKyAgICAgICAgfQorICAgICAgICBpZiAobnVtbyBpbnN0YW5jZW9mIE51bWJlcltdKSB7CisgICAgICAgICAgICBudW1zID0gKE51bWJlcltdKSBudW1vOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbnVtID0gKE51bWJlcikgbnVtbzsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXhwbyBpbnN0YW5jZW9mIFN0cmluZ1tdKSB7CisgICAgICAgICAgICBleHBzID0gKFN0cmluZ1tdKSBleHBvOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXhwID0gKFN0cmluZykgZXhwbzsKKyAgICAgICAgfQorICAgICAgICBpbnQgbiA9IDE7CisgICAgICAgIGlmIChmbXRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIG4gPSBNYXRoLm1heChuLCBmbXRzLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bXMgIT0gbnVsbCkgeworICAgICAgICAgICAgbiA9IE1hdGgubWF4KG4sIG51bXMubGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXhwcyAhPSBudWxsKSB7CisgICAgICAgICAgICBuID0gTWF0aC5tYXgobiwgZXhwcy5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIGV4cGVjdChmbXRzID09IG51bGwgPyBmbXQgOiBmbXRzW2ldLAorICAgICAgICAgICAgICAgICAgIG51bXMgPT0gbnVsbCA/IG51bSA6IG51bXNbaV0sCisgICAgICAgICAgICAgICAgICAgZXhwcyA9PSBudWxsID8gZXhwIDogZXhwc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2hvd051bWJlcihOdW1iZXIgbikgeworICAgICAgICBTdHJpbmcgY2xzID0gbi5nZXRDbGFzcygpLmdldE5hbWUoKTsKKyAgICAgICAgaWYgKCEobiBpbnN0YW5jZW9mIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbAorICAgICAgICAgICAgICB8fCBuIGluc3RhbmNlb2YgamF2YS5tYXRoLkJpZ0RlY2ltYWwpKSB7CisgICAgICAgICAgICBpbnQgaSA9IGNscy5sYXN0SW5kZXhPZignLicpOworICAgICAgICAgICAgY2xzID0gY2xzLnN1YnN0cmluZyhpKzEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuLnRvU3RyaW5nKCkgKyAiICgiICsgY2xzICsgJyknOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgTnVtYmVyIG4sIFN0cmluZyBleHApIHsKKyAgICAgICAgU3RyaW5nIHNhdyA9IGZtdC5mb3JtYXQobik7CisgICAgICAgIFN0cmluZyBwYXQgPSAoKERlY2ltYWxGb3JtYXQpIGZtdCkudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmIChzYXcuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgICIgKyBzaG93TnVtYmVyKG4pICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoc2F3KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgc2hvd051bWJlcihuKSArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSBcIiIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoc2F3KSArICIsIGV4cGVjdGVkICIgKyBVdGlsaXR5LmVzY2FwZShleHApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgTnVtYmVyIGV4cCkgeworICAgICAgICBOdW1iZXIgc2F3ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNhdyA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBzYXcgPSBudWxsOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBwYXQgPSAoKERlY2ltYWxGb3JtYXQpIGZtdCkudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmIChzYXcuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgIFwiIiArIHN0ciArICJcIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgc2hvd051bWJlcihzYXcpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIiArIHN0ciArICJcIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgc2hvd051bWJlcihzYXcpICsgIiwgZXhwZWN0ZWQgIiArIHNob3dOdW1iZXIoZXhwKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHN0cmluZyBjb21wb3NlZCBvZiBbMC05XSBhbmQgb3RoZXIgY2hhcnMsIGNvbnZlcnQgdGhlCisgICAgICogWzAtOV0gY2hhcnMgdG8gYmUgb2Zmc2V0cyAwLi45IGZyb20gJ3plcm8nLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyB0cmFuc211dGUoU3RyaW5nIHN0ciwgY2hhciB6ZXJvKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzdHIubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gc3RyLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykgeworICAgICAgICAgICAgICAgIGMgPSAoY2hhcikgKGMgLSAnMCcgKyB6ZXJvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTYxMTAwKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBmLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygxKTsKKyAgICAgICAgZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMSk7CisgICAgICAgIGRvdWJsZSBhID0gLTAuMDk7CisgICAgICAgIFN0cmluZyBzID0gZi5mb3JtYXQoYSk7CisgICAgICAgIGxvZ2xuKGEgKyAiIHggIiArCisgICAgICAgICAgICAgICgoRGVjaW1hbEZvcm1hdCkgZikudG9QYXR0ZXJuKCkgKyAiID0gIiArCisgICAgICAgICAgICAgIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCItMC4xIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIik7CisgICAgICAgIH0KKyAgICB9ICAgICAgICAKKworICAgIHB1YmxpYyB2b2lkIFRlc3RCaWdEZWNpbWFsSjI4KCkgeworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgIjEiLCAiMUUwIiwKKyAgICAgICAgICAgICItMSIsICItMUUwIiwKKyAgICAgICAgICAgICIwIiwgIjBFMCIsCisgICAgICAgICAgICAiMTJlMzQiLCAiMS4yRTM1IiwKKyAgICAgICAgICAgICItMTIuM2UtNDUiLCAiLTEuMjNFLTQ0IiwKKyAgICAgICAgICAgICIwLjczZS03IiwgIjcuM0UtOCIsCisgICAgICAgIH07CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuOiAiICsgKChEZWNpbWFsRm9ybWF0KWZtdCkudG9QYXR0ZXJuKCkpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IERBVEFbaV07CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzFdOworICAgICAgICAgICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGJkID0gbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbnB1dCk7CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gZm10LmZvcm1hdChiZCk7CisgICAgICAgICAgICBpZiAob3V0cHV0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImlucHV0PSIgKyBpbnB1dCArICIgbnVtPSIgKyBiZCArICIgb3V0cHV0PSIgKyBvdXRwdXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5wdXQ9IiArIGlucHV0ICsgIiBudW09IiArIGJkICsgIiBvdXRwdXQ9IiArIG91dHB1dCArCisgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZD0iICsgZXhwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbFJvdW5kaW5nKCkgeworICAgICAgICAvLyBqYiAzNjU3CisgICAgICAgIGphdmEudGV4dC5EZWNpbWFsRm9ybWF0IGpka0Zvcm1hdD1uZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQoIiMjIywjIyMsIyMjLCMjMCIpOworICAgICAgICBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQgaWN1Rm9ybWF0PW5ldyBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQoIiMjIywjIyMsIyMjLCMjMCIpOworICAgICAgICBTdHJpbmdbXSB2YWx1ZXMgPSB7CisgICAgICAgICAgICAiLTEuNzQiLCAiLTEuMjQiLCAiLTAuNzQiLCAiLTAuMjQiLCAiMC4yNCIsICIwLjc0IiwgIjEuMjQiLCAiMS43NCIKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyB2YWwgPSB2YWx1ZXNbaV07CisgICAgICAgICAgICBqYXZhLm1hdGguQmlnRGVjaW1hbCBiZCA9IG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCh2YWwpOworICAgICAgICAgICAgU3RyaW5nIGpkayA9IGpka0Zvcm1hdC5mb3JtYXQoYmQpOworICAgICAgICAgICAgU3RyaW5nIGljdSA9IGljdUZvcm1hdC5mb3JtYXQoYmQpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdCBvZiBCaWdEZWNpbWFsICIgKyB2YWwgKyAiIGJ5IEpESyBpcyAiICsgamRrKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXQgb2YgQmlnRGVjaW1hbCAiICsgdmFsICsgIiBieSBJQ1UgaXMgIiArIGljdSk7CisgICAgICAgICAgICBpZiAoIWpkay5lcXVhbHMoaWN1KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJCaWdEZWNpbWFsIGpkazogIiArIGpkayArICIgIT0gaWN1OiAiICsgaWN1KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZG91YmxlIGQgPSBiZC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgamRrID0gamRrRm9ybWF0LmZvcm1hdChkKTsKKyAgICAgICAgICAgIGljdSA9IGljdUZvcm1hdC5mb3JtYXQoZCk7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0IG9mIGRvdWJsZSAiICsgdmFsICsgIiBieSBKREsgaXMgIiArIGpkayk7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0IG9mIGRvdWJsZSAiICsgdmFsICsgIiBieSBJQ1UgaXMgIiArIGljdSk7CisgICAgICAgICAgICBpZiAoIWpkay5lcXVhbHMoaWN1KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJkb3VibGUgamRrOiAiICsgamRrICsgIiAhPSBpY3U6ICIgKyBpY3UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorLy8jZW5kaWYKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdE1pc2NUZXN0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0TWlzY1Rlc3RzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWU2YmJlZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdE1pc2NUZXN0cy5qYXZhCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogRGF0ZUZvcm1hdE1pc2NUZXN0cworICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvbWlzY2R0Zm0uY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKiAKKyAqIFBlcmZvcm1zIG1pc2NlbGxhbmVvdXMgdGVzdHMgZm9yIERhdGVGb3JtYXQsIFNpbXBsZURhdGVGb3JtYXQsIERhdGVGb3JtYXRTeW1ib2xzCisgKiovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdE1pc2NUZXN0cyBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBEYXRlRm9ybWF0TWlzY1Rlc3RzKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIEBidWcgNDA5NzQ1MAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk3NDUwKCkgeworICAgICAgICAvLworICAgICAgICAvLyBEYXRlIHBhcnNlIHJlcXVpcmluZyA0IGRpZ2l0IHllYXIuCisgICAgICAgIC8vCisgICAgICAgIFN0cmluZyBkc3RyaW5nW10gPSB7CisgICAgICAgICAgICAiOTciLCAiMTk5NyIsICI5NyIsICIxOTk3IiwgIjAxIiwgIjIwMDEiLCAiMDEiLCAiMjAwMSIsCisgICAgICAgICAgICAgIjEiLCAiMSIsICIxMSIsICIxMSIsICIxMTEiLCAiMTExIn07IAorICAgIAorICAgICAgICBTdHJpbmcgZGZvcm1hdFtdID0gCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInl5IiwgInl5IiwgInl5eXkiLCAieXl5eSIsICJ5eSIsICJ5eSIsICJ5eXl5IiwgInl5eXkiLCAKKyAgICAgICAgICAgICAgICAieXkiLCAieXl5eSIsICJ5eSIsICJ5eXl5IiwgInl5IiwgInl5eXkifTsgICAgICAgICAKKyAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXI7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgcmVzdWx0Rm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXkiKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdFx0U291cmNlXHRSZXN1bHQiKTsKKyAgICAgICAgbG9nbG4oIi0tLS0tLS1cdC0tLS0tLS1cdC0tLS0tLS0iKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkc3RyaW5nLmxlbmd0aCA7IGkrKykgeworICAgICAgICAgICAgbG9nKGRmb3JtYXRbaV0gKyAiXHQiICsgZHN0cmluZ1tpXSArICJcdCIpOworICAgICAgICAgICAgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZGZvcm1hdFtpXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgIGxvZ2xuKHJlc3VsdEZvcm1hdHRlci5mb3JtYXQoZm9ybWF0dGVyLnBhcnNlKGRzdHJpbmdbaV0pLCBzdHIsIHBvcykudG9TdHJpbmcoKSk7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIGVycmxuKCJleGNlcHRpb24gLS0+ICIgKyBleGNlcHRpb24pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIEBCdWcgNDA5OTk3NQorICAgICAqIFNpbXBsZURhdGVGb3JtYXQgY29uc3RydWN0b3IgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcsIERhdGVGb3JtYXRTeW1ib2xzKQorICAgICAqIHNob3VsZCBjbG9uZSB0aGUgRGF0ZUZvcm1hdFN5bWJvbHMgcGFyYW1ldGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTk5NzVuZXcoKSB7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKCk7CisgICAgICAgIC8vdGVzdCBTaW1wbGVEYXRlRm9ybWF0IENvbnN0cnVjdG9yCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRSBoaDptbSIsIHN5bWJvbHMpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZkNsb25lID0gKFNpbXBsZURhdGVGb3JtYXQpIGRmLmNsb25lKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKGRmLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgICAgIFN0cmluZyBzMCA9IGRmLmZvcm1hdChkKTsKKyAgICAgICAgICAgIFN0cmluZyBzX2RmQ2xvbmUgPSBkZkNsb25lLmZvcm1hdChkKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3ltYm9scy5zZXRMb2NhbFBhdHRlcm5DaGFycygiYWJjZGVmZ2hpamtsbW9ucHFyIik7IC8vIGNoYW5nZSB2YWx1ZSBvZiBmaWVsZAorICAgICAgICAgICAgbG9nbG4oZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhzMCkgfHwgIXMxLmVxdWFscyhzX2RmQ2xvbmUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yOiB0aGUgZm9ybWF0cyBhcmUgbm90IGVxdWFsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhkZkNsb25lKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUaGUgQ2xvbmUgT2JqZWN0IGRvZXMgbm90IGVxdWFsIHdpdGggdGhlIG9yaWduYWwgc291cmNlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy90ZXN0IFNpbXBsZURhdGVGb3JtYXQuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoKQorICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkUgaGg6bW0iKTsKKyAgICAgICAgICAgIGRmLnNldERhdGVGb3JtYXRTeW1ib2xzKHN5bWJvbHMpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZkNsb25lID0gKFNpbXBsZURhdGVGb3JtYXQpIGRmLmNsb25lKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKGRmLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgICAgIFN0cmluZyBzMCA9IGRmLmZvcm1hdChkKTsKKyAgICAgICAgICAgIFN0cmluZyBzX2RmQ2xvbmUgPSBkZkNsb25lLmZvcm1hdChkKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3ltYm9scy5zZXRMb2NhbFBhdHRlcm5DaGFycygiYWJjZGVmZ2hpamtsbW9ucHFyIik7IC8vIGNoYW5nZSB2YWx1ZSBvZiBmaWVsZAorICAgICAgICAgICAgbG9nbG4oZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhzMCkgfHwgIXMxLmVxdWFscyhzX2RmQ2xvbmUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNldERhdGVGb3JtYXRTeW1ib2xzOiB0aGUgZm9ybWF0cyBhcmUgbm90IGVxdWFsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhkZkNsb25lKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUaGUgQ2xvbmUgT2JqZWN0IGRvZXMgbm90IGVxdWFsIHdpdGggdGhlIG9yaWduYWwgc291cmNlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBAYnVnIDQxMTczMzUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNzMzNSgpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJjID0gIlx1N0QwMFx1NTE0M1x1NTI0RCI7CisgICAgICAgIGZpbmFsIFN0cmluZyBhZCA9ICJcdTg5N2ZcdTY2YTYiOworICAgICAgICBmaW5hbCBTdHJpbmcganN0TG9uZyA9ICJcdTY1ZTVcdTY3MmNcdTZhMTlcdTZlOTZcdTY2NDIiOworICAgICAgICBmaW5hbCBTdHJpbmcgamR0TG9uZyA9ICJcdTY1ZTVcdTY3MmNcdTU5MGZcdTY2NDJcdTk1OTMiOworICAgICAgICBmaW5hbCBTdHJpbmcganN0U2hvcnQgPSAiSlNUIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIGpkdFNob3J0ID0gIkpEVCI7CisgICAgICAgIGZpbmFsIFN0cmluZyB0eklEID0gIkFzaWEvVG9reW8iOworCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gZXJhcyA9IHN5bWJvbHMuZ2V0RXJhcygpOworCisgICAgICAgIGFzc2VydEVxdWFscygiQkMgPSIsIGJjLCBlcmFzWzBdKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJBRCA9IiwgYWQsIGVyYXNbMV0pOworCisgICAgICAgIC8vIGRvbid0IHVzZSBoYXJkLWNvZGVkIGluZGV4IQorICAgICAgICBmaW5hbCBTdHJpbmcgem9uZXNbXVtdID0gc3ltYm9scy5nZXRab25lU3RyaW5ncygpOworICAgICAgICBpbnQgaW5kZXggPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6b25lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHR6SUQuZXF1YWxzKHpvbmVzW2ldWzBdKSkgeworICAgICAgICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleCA9PSAtMSkgeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBmaW5kICIgKyB0eklEKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiTG9uZyB6b25lIG5hbWUgPSAiLCBqc3RMb25nLCB6b25lc1tpbmRleF1bMV0pOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJTaG9ydCB6b25lIG5hbWUgPSAiLCBqc3RTaG9ydCwgem9uZXNbaW5kZXhdWzJdKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiTG9uZyB6b25lIG5hbWUgKDMpID0gIiwgamR0TG9uZywgem9uZXNbaW5kZXhdWzNdKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiU2hvcnQgem9uZSBuYW1lICg0KSA9ICIsIGpkdFNob3J0LCB6b25lc1tpbmRleF1bNF0pOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzAzMmJmMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEKQEAgLTAsMCArMSw5NjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBEYXRlRm9ybWF0UmVncmVzc2lvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2R0Zm1yZ3RzLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqIAorICogUGVyZm9ybXMgcmVncmVzc2lvbiB0ZXN0IGZvciBEYXRlRm9ybWF0CisgKiovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IERhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDI5MTk1CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwMjkxOTUoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgdG9kYXkgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigidG9kYXk6ICIgKyB0b2RheSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gKFNpbXBsZURhdGVGb3JtYXQpIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisgICAgICAgIFN0cmluZyBwYXQgPSBzZGYudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiAiICsgcGF0KTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGZtdGQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgZm10ZCA9IHNkZi5mb3JtYXQodG9kYXksIGZtdGQsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJ0b2RheTogIiArIGZtdGQpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJHIHl5eXkgREREIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0b2RheVMgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgdG9kYXlTID0gc2RmLmZvcm1hdCh0b2RheSwgdG9kYXlTLCBwb3MpOworICAgICAgICBsb2dsbigidG9kYXk6ICIgKyB0b2RheVMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdG9kYXkgPSBzZGYucGFyc2UodG9kYXlTLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgbG9nbG4oInRvZGF5IGRhdGU6ICIgKyB0b2RheSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgcmVwYXJzaW5nIGRhdGU6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBydCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgcnQgPSBzZGYuZm9ybWF0KHNkZi5wYXJzZSh0b2RheVMudG9TdHJpbmcoKSksIHJ0LCBwb3MpOworICAgICAgICAgICAgbG9nbG4oInJvdW5kIHRyaXA6ICIgKyBydCk7CisgICAgICAgICAgICBpZiAoIXJ0LnRvU3RyaW5nKCkuZXF1YWxzKHRvZGF5Uy50b1N0cmluZygpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCAiICsgdG9kYXlTICsgIiBHb3QgIiArIHJ0KTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDUyNDA4CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTI0MDgoKSB7CisgICAgCisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQsIExvY2FsZS5VUyk7IAorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCg5NyArIDE5MDAsIENhbGVuZGFyLk1BWSwgMywgOCwgNTUpOworICAgICAgICBEYXRlIGR0ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IGZtdC5mb3JtYXQoZHQpOworICAgICAgICBsb2dsbihzdHIpOworICAgICAgICAKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKCI1LzMvOTcgODo1NSBBTSIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFRlc3QgYnJva2VuOyBXYW50IDUvMy85NyA4OjU1IEFNIEdvdCAiICsgc3RyKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkW10gPSB7CisgICAgICAgICAgICAiIiwgLy8iRVJBX0ZJRUxEIiwKKyAgICAgICAgICAgICI5NyIsIC8vIllFQVJfRklFTEQiLAorICAgICAgICAgICAgIjUiLCAvLyJNT05USF9GSUVMRCIsCisgICAgICAgICAgICAiMyIsIC8vIkRBVEVfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkhPVVJfT0ZfREFZMV9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iSE9VUl9PRl9EQVkwX0ZJRUxEIiwKKyAgICAgICAgICAgICI1NSIsIC8vIk1JTlVURV9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iU0VDT05EX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJNSUxMSVNFQ09ORF9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iREFZX09GX1dFRUtfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkRBWV9PRl9ZRUFSX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJEQVlfT0ZfV0VFS19JTl9NT05USF9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iV0VFS19PRl9ZRUFSX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJXRUVLX09GX01PTlRIX0ZJRUxEIiwKKyAgICAgICAgICAgICJBTSIsIC8vIkFNX1BNX0ZJRUxEIiwKKyAgICAgICAgICAgICI4IiwgLy8iSE9VUjFfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkhPVVIwX0ZJRUxEIiwKKyAgICAgICAgICAgICIiIC8vIlRJTUVaT05FX0ZJRUxEIgorICAgICAgICAgICAgfTsgICAgICAgIAorICAgICAgICBTdHJpbmcgZmllbGROYW1lc1tdID0geworICAgICAgICAgICAgICAgICJFUkFfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiWUVBUl9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJNT05USF9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJEQVRFX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkhPVVJfT0ZfREFZMV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJIT1VSX09GX0RBWTBfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiTUlOVVRFX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIlNFQ09ORF9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJNSUxMSVNFQ09ORF9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJEQVlfT0ZfV0VFS19GSUVMRCIsIAorICAgICAgICAgICAgICAgICJEQVlfT0ZfWUVBUl9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USF9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJXRUVLX09GX1lFQVJfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiV0VFS19PRl9NT05USF9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJBTV9QTV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJIT1VSMV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJIT1VSMF9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJUSU1FWk9ORV9GSUVMRCJ9OyAKKyAgICAKKyAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMTc7ICsraSkgeworICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbihpKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgIGZtdC5mb3JtYXQoZHQsIGJ1ZiwgcG9zKTsKKyAgICAgICAgICAgIC8vY2hhcltdIGRzdCA9IG5ldyBjaGFyW3Bvcy5nZXRFbmRJbmRleCgpIC0gcG9zLmdldEJlZ2luSW5kZXgoKV07CisgICAgICAgICAgICBTdHJpbmcgZHN0ID0gYnVmLnN1YnN0cmluZyhwb3MuZ2V0QmVnaW5JbmRleCgpLCBwb3MuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgICAgICBzdHIgPSBkc3Q7CisgICAgICAgICAgICBsb2coaSArICI6ICIgKyBmaWVsZE5hbWVzW2ldICsgIiwgXCIiICsgc3RyICsgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICsgcG9zLmdldEJlZ2luSW5kZXgoKSArICIsICIgKyBwb3MuZ2V0RW5kSW5kZXgoKSk7IAorICAgICAgICAgICAgU3RyaW5nIGV4cCA9IGV4cGVjdGVkW2ldOworICAgICAgICAgICAgaWYgKChleHAubGVuZ3RoKCkgPT0gMCAmJiBzdHIubGVuZ3RoKCkgPT0gMCkgfHwgc3RyLmVxdWFscyhleHApKQorICAgICAgICAgICAgICAgIGxvZ2xuKCIgb2siKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghcGFzcykKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBGaWVsZFBvc2l0aW9uIG5vdCBzZXQgcmlnaHQgYnkgRGF0ZUZvcm1hdCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNTY1OTEKKyAgICAgKiBWZXJpZnkgdGhlIGZ1bmN0aW9uIG9mIHRoZSBbc3xnXWV0MkRpZ2l0WWVhclN0YXJ0KCkgQVBJLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU2NTkxKCkgeworICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXlNTWRkIiwgTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTgwOSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgICAgIERhdGUgc3RhcnQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgZm10LnNldDJEaWdpdFllYXJTdGFydChzdGFydCk7CisgICAgICAgICAgICBpZiAoKGZtdC5nZXQyRGlnaXRZZWFyU3RhcnQoKSAhPSBzdGFydCkpCisgICAgICAgICAgICAgICAgZXJybG4oImdldDJEaWdpdFllYXJTdGFydCBicm9rZW4iKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxODA5LCBDYWxlbmRhci5ERUNFTUJFUiwgMjUpOworICAgICAgICAgICAgRGF0ZSBkMSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTkwOSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI0KTsKKyAgICAgICAgICAgIERhdGUgZDIgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE4MDksIENhbGVuZGFyLkRFQ0VNQkVSLCAyNik7CisgICAgICAgICAgICBEYXRlIGQzID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxODYxLCBDYWxlbmRhci5ERUNFTUJFUiwgMjUpOworICAgICAgICAgICAgRGF0ZSBkNCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIERhdGUgZGF0ZXNbXSA9IHtkMSwgZDIsIGQzLCBkNH07CisgICAgCisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nc1tdID0geyIwOTEyMjUiLCAiMDkxMjI0IiwgIjA5MTIyNiIsICI2MTEyMjUifTsgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBzdHJpbmdzW2ldOworICAgICAgICAgICAgICAgIERhdGUgZXhwID0gZGF0ZXNbaV07CisgICAgICAgICAgICAgICAgRGF0ZSBnb3QgPSBmbXQucGFyc2Uocyk7CisgICAgICAgICAgICAgICAgbG9nbG4ocyArICIgLiAiICsgZ290ICsgIjsgZXhwICIgKyBleHApOworICAgICAgICAgICAgICAgIGlmIChnb3QuZ2V0VGltZSgpICE9IGV4cC5nZXRUaW1lKCkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzZXQyRGlnaXRZZWFyU3RhcnQgYnJva2VuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA1OTkxNworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU5OTE3KCkgeyAgICAgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10OworICAgICAgICBTdHJpbmcgbXlEYXRlOworICAgICAgICBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS9NTS9kZCIpOworICAgICAgICBteURhdGUgPSAiMTk5Ny8wMS8wMSI7CisgICAgICAgIGF1eDkxNyggZm10LCBteURhdGUgKTsgICAgICAgIAorICAgICAgICBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGQiKTsKKyAgICAgICAgbXlEYXRlID0gIjE5OTcwMTAxIjsKKyAgICAgICAgYXV4OTE3KCBmbXQsIG15RGF0ZSApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhdXg5MTcoU2ltcGxlRGF0ZUZvcm1hdCBmbXQsIFN0cmluZyBzdHIpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nIHBhdCA9IGZtdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PSIpOworICAgICAgICBsb2dsbigidGVzdEl0OiBwYXR0ZXJuPSIgKyBwYXQgKyAiIHN0cmluZz0iICsgc3RyKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgT2JqZWN0IG8gPSBmbXQucGFyc2VPYmplY3Qoc3RyLCBwb3MpOworICAgICAgICAvL2xvZ2xuKCBVbmljb2RlU3RyaW5nKCJQYXJzZWQgb2JqZWN0OiAiKSArIG8gKTsKKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGZvcm1hdHRlZCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvc3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgZm9ybWF0dGVkID0gZm10LmZvcm1hdChvLCBmb3JtYXR0ZWQsIHBvc3MpOworICAgIAorICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHN0cmluZzogIiArIGZvcm1hdHRlZCk7CisgICAgICAgIGlmICghZm9ybWF0dGVkLnRvU3RyaW5nKCkuZXF1YWxzKHN0cikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCAiICsgc3RyICsgIiBHb3QgIiArIGZvcm1hdHRlZCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA2MDIxMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDYwMjEyKCkgeworICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9ICIxOTk1LTA0MC4wNTowMToyOSI7CisgICAgICAgIGxvZ2xuKCJkYXRlU3RyaW5nPSAiICsgZGF0ZVN0cmluZyk7CisgICAgICAgIGxvZ2xuKCJVc2luZyB5eXl5LURERC5oaDptbTpzcyIpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5LURERC5oaDptbTpzcyIpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIG15RGF0ZSA9IGZvcm1hdHRlci5wYXJzZShkYXRlU3RyaW5nLCBwb3MpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuTE9ORyk7IAorICAgICAgICBTdHJpbmcgbXlTdHJpbmcgPSBmbXQuZm9ybWF0KG15RGF0ZSk7CisgICAgICAgIGxvZ2xuKG15U3RyaW5nKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKG15RGF0ZSk7CisgICAgICAgIGlmICgoY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gNDApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEdvdCAiICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgKyAiIFdhbnQgNDAiKTsKKyAgICAKKyAgICAgICAgbG9nbG4oIlVzaW5nIHl5eXktZGRkLmhoOm1tOnNzIik7CisgICAgICAgIGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5LWRkZC5oaDptbTpzcyIpOworICAgICAgICBwb3Muc2V0SW5kZXgoMCk7CisgICAgICAgIG15RGF0ZSA9IGZvcm1hdHRlci5wYXJzZShkYXRlU3RyaW5nLCBwb3MpOworICAgICAgICBteVN0cmluZyA9IGZtdC5mb3JtYXQobXlEYXRlKTsKKyAgICAgICAgbG9nbG4obXlTdHJpbmcpOworICAgICAgICBjYWwuc2V0VGltZShteURhdGUpOworICAgICAgICBpZiAoKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpICE9IDQwKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBHb3QgIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpICsgIiBXYW50IDQwIik7CisgICAgfQorICAgIC8qKgorICAgICAqIEBidWcgNDA2MTI4NworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDYxMjg3KCkgeworICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImRkL01NL3l5eXkiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKGRmLnBhcnNlKCIzNS8wMS8xOTcxIikudG9TdHJpbmcoKSk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIGRmLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBib29sZWFuIG9rID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbihkZi5wYXJzZSgiMzUvMDEvMTk3MSIpLnRvU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBvayA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBMZW5pZW50IG5vdCB3b3JraW5nIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA2NTI0MAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY1MjQwKCkgeworICAgICAgICBEYXRlIGN1ckRhdGU7CisgICAgICAgIERhdGVGb3JtYXQgc2hvcnRkYXRlLCBmdWxsZGF0ZTsKKyAgICAgICAgU3RyaW5nIHN0clNob3J0RGF0ZSwgc3RyRnVsbERhdGU7CisgICAgICAgIExvY2FsZSBzYXZlTG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVGltZVpvbmUgc2F2ZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMb2NhbGUgY3VyTG9jYWxlID0gbmV3IExvY2FsZSgiZGUiLCAiREUiKTsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KGN1ckxvY2FsZSk7CisgICAgICAgICAgICAvLyB7c2ZifSBhZG9wdERlZmF1bHQgaW5zdGVhZCBvZiBzZXREZWZhdWx0CisgICAgICAgICAgICAvL1RpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuY3JlYXRlVGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoOTggKyAxOTAwLCAwLCAxKTsKKyAgICAgICAgICAgIGN1ckRhdGUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgc2hvcnRkYXRlID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCk7CisgICAgICAgICAgICBmdWxsZGF0ZSA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORyk7CisgICAgICAgICAgICBzdHJTaG9ydERhdGUgPSAiVGhlIGN1cnJlbnQgZGF0ZSAoc2hvcnQgZm9ybSkgaXMgIjsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICAgICAgdGVtcCA9IHNob3J0ZGF0ZS5mb3JtYXQoY3VyRGF0ZSk7CisgICAgICAgICAgICBzdHJTaG9ydERhdGUgKz0gdGVtcDsKKyAgICAgICAgICAgIHN0ckZ1bGxEYXRlID0gIlRoZSBjdXJyZW50IGRhdGUgKGxvbmcgZm9ybSkgaXMgIjsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wMiA9IGZ1bGxkYXRlLmZvcm1hdChjdXJEYXRlKTsKKyAgICAgICAgICAgIHN0ckZ1bGxEYXRlICs9IHRlbXAyOworICAgIAorICAgICAgICAgICAgbG9nbG4oc3RyU2hvcnREYXRlKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0ckZ1bGxEYXRlKTsKKyAgICAKKyAgICAgICAgICAgIC8vIHtzZmJ9IFdoYXQgdG8gZG8gd2l0aCByZXNvdXJjZSBidW5kbGUgc3R1ZmY/Pz8/PworICAgIAorICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSByZXNvdXJjZSBpcyBwcmVzZW50OyBpZiBub3QsIHdlIGNhbid0IHRlc3QKKyAgICAgICAgICAgIC8vUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICAgICAgLy8gICAgSUNVTG9jYWxlRGF0YS5nZXRCdW5kbGUoIkRhdGVGb3JtYXRab25lRGF0YSIsIGN1ckxvY2FsZSk7IAorICAgIAorICAgICAgICAgICAgLy8ge3NmYn0gQVBJIGNoYW5nZSB0byBSZXNvdXJjZUJ1bmRsZSAtLSBhZGQgZ2V0TG9jYWxlKCkKKyAgICAgICAgICAgIC8qaWYgKGJ1bmRsZS5nZXRMb2NhbGUoKS5nZXRMYW5ndWFnZSgpLmVxdWFscygiZGUiKSkgeworICAgICAgICAgICAgICAgIC8vIFVQREFURSBUSElTIEFTIFpPTkUgTkFNRSBSRVNPVVJDRSBGT1IgPEVTVD4gaW4gZGVfREUgaXMgdXBkYXRlZAorICAgICAgICAgICAgICAgIGlmICghc3RyRnVsbERhdGUuZW5kc1dpdGgoIkdNVC0wNTowMCIpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCBHTVQtMDU6MDAiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIioqKiBURVNUIENPVUxEIE5PVCBCRSBDT01QTEVURUQgQkVDQVVTRSBEYXRlRm9ybWF0Wm9uZURhdGEgKioqIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIioqKiBGT1IgTE9DQUxFIGRlIE9SIGRlX0RFIElTIE1JU1NJTkcgKioqIik7CisgICAgICAgICAgICB9Ki8KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVMb2NhbGUpOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgIERhdGVGb3JtYXQuZXF1YWxzIGlzIHRvbyBuYXJyb3dseSBkZWZpbmVkLiAgQXMgYSByZXN1bHQsIE1lc3NhZ2VGb3JtYXQKKyAgICAgIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5LiAgRGF0ZUZvcm1hdC5lcXVhbHMgbmVlZHMgdG8gYmUgd3JpdHRlbiBzbworICAgICAgdGhhdCB0aGUgQ2FsZW5kYXIgc3ViLW9iamVjdCBpcyBub3QgY29tcGFyZWQgdXNpbmcgQ2FsZW5kYXIuZXF1YWxzLAorICAgICAgYnV0IHJhdGhlciBjb21wYXJlZCBmb3IgZXF1aXZhbGVuY3kuICBUaGlzIG1heSBuZWNlc3NpdGF0ZSBhZGRpbmcgYQorICAgICAgKHBhY2thZ2UgcHJpdmF0ZSkgbWV0aG9kIHRvIENhbGVuZGFyIHRvIHRlc3QgZm9yIGVxdWl2YWxlbmN5LgorICAgICAgCisgICAgICBDdXJyZW50bHkgdGhpcyBidWcgYnJlYWtzIE1lc3NhZ2VGb3JtYXQudG9QYXR0ZXJuCisgICAgICAqLworICAgIC8qKgorICAgICAqIEBidWcgNDA3MTQ0MQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxNDQxKCkgeworICAgICAgICBEYXRlRm9ybWF0IGZtdEEgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGVGb3JtYXQgZm10QiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAKKyAgICAgICAgLy8ge3NmYn0gSXMgaXQgT0sgdG8gY2FzdCBhd2F5IGNvbnN0IGhlcmU/CisgICAgICAgIENhbGVuZGFyIGNhbEEgPSBmbXRBLmdldENhbGVuZGFyKCk7CisgICAgICAgIENhbGVuZGFyIGNhbEIgPSBmbXRCLmdldENhbGVuZGFyKCk7CisgICAgICAgIGNhbEEuY2xlYXIoKTsKKyAgICAgICAgY2FsQS5zZXQoMTkwMCwgMCAsMCk7CisgICAgICAgIGNhbEIuY2xlYXIoKTsKKyAgICAgICAgY2FsQi5zZXQoMTkwMCwgMCwgMCk7CisgICAgICAgIGlmICghY2FsQS5lcXVhbHMoY2FsQikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogQ2FuJ3QgY29tcGxldGUgdGVzdDsgQ2FsZW5kYXIgaW5zdGFuY2VzIHVuZXF1YWwiKTsKKyAgICAgICAgaWYgKCFmbXRBLmVxdWFscyhmbXRCKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEYXRlRm9ybWF0IHVuZXF1YWwgd2hlbiBDYWxlbmRhcnMgZXF1YWwiKTsKKyAgICAgICAgY2FsQi5jbGVhcigpOworICAgICAgICBjYWxCLnNldCgxOTYxLCBDYWxlbmRhci5ERUNFTUJFUiwgMjUpOworICAgICAgICBpZiAoY2FsQS5lcXVhbHMoY2FsQikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogQ2FuJ3QgY29tcGxldGUgdGVzdDsgQ2FsZW5kYXIgaW5zdGFuY2VzIGVxdWFsIik7CisgICAgICAgIGlmICghZm10QS5lcXVhbHMoZm10QikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRGF0ZUZvcm1hdCB1bmVxdWFsIHdoZW4gQ2FsZW5kYXJzIGVxdWl2YWxlbnQiKTsKKyAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQuZXF1YWxzIG9rIik7CisgICAgfQorICAgICAgICAKKyAgICAvKiBUaGUgamF2YS50ZXh0LkRhdGVGb3JtYXQucGFyc2UoU3RyaW5nKSBtZXRob2QgZXhwZWN0cyBmb3IgdGhlCisgICAgICBVUyBsb2NhbGUgYSBzdHJpbmcgZm9ybWF0dGVkIGFjY29yZGluZyB0byBtbS9kZC95eSBhbmQgcGFyc2VzIGl0CisgICAgICBjb3JyZWN0bHkuCisgICAgCisgICAgICBXaGVuIGdpdmVuIGEgc3RyaW5nIG1tL2RkL3l5eXkgaXQgb25seSBwYXJzZXMgdXAgdG8gdGhlIGZpcnN0CisgICAgICB0d28geSdzLCB0eXBpY2FsbHkgcmVzdWx0aW5nIGluIGEgZGF0ZSBpbiB0aGUgeWVhciAxOTE5LgorICAgICAgCisgICAgICBQbGVhc2UgZXh0ZW5kIHRoZSBwYXJzaW5nIG1ldGhvZChzKSB0byBoYW5kbGUgc3RyaW5ncyB3aXRoCisgICAgICBmb3VyLWRpZ2l0IHllYXIgdmFsdWVzIChwcm9iYWJseSBhbHNvIGFwcGxpY2FibGUgdG8gdmFyaW91cworICAgICAgb3RoZXIgbG9jYWxlcy4gICovCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDczMDAzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzMwMDMoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIExvY2FsZS5VUyk7CisgICAgICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsiMTIvMjUvNjEiLCAiMTIvMjUvMTk2MSIsICI0LzMvMjAxMCIsICI0LzMvMTAifTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSArPSAyKSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKHRlc3RzW2ldKTsKKyAgICAgICAgICAgICAgICBEYXRlIGRkID0gZm10LnBhcnNlKHRlc3RzW2kgKyAxXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHM7CisgICAgICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQoZCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNzOworICAgICAgICAgICAgICAgIHNzID0gZm10LmZvcm1hdChkZCk7CisgICAgICAgICAgICAgICAgaWYgKGQuZ2V0VGltZSgpICE9IGRkLmdldFRpbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBkICsgIiAhPSAiICsgZGQpOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHMoc3MpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHMgKyAiICE9ICIgKyBzcyk7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgcyArICIgIiArIGQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfSAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDg5MTA2CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODkxMDYoKSB7CisgICAgICAgIFRpbWVab25lIGRlZiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRpbWVab25lIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoKGludCkgKDEuMjUgKiAzNjAwMDAwKSwgIkZBS0VaT05FIik7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHopOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgICAgIGlmICghZi5nZXRUaW1lWm9uZSgpLmVxdWFscyh6KSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogU2ltcGxlVGltZVpvbmUgc2hvdWxkIHVzZSBUaW1lWm9uZS5nZXREZWZhdWx0KCkiKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoZGVmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDAzMDIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMDMwMigpIHsKKyAgICAgICAgCisgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSB7CisgICAgICAgICAgICBMb2NhbGUuQ0FOQURBLCBMb2NhbGUuQ0FOQURBX0ZSRU5DSCwgTG9jYWxlLkNISU5BLCAKKyAgICAgICAgICAgIExvY2FsZS5DSElORVNFLCBMb2NhbGUuRU5HTElTSCwgTG9jYWxlLkZSQU5DRSwgTG9jYWxlLkZSRU5DSCwgCisgICAgICAgICAgICBMb2NhbGUuR0VSTUFOLCBMb2NhbGUuR0VSTUFOWSwgTG9jYWxlLklUQUxJQU4sIExvY2FsZS5JVEFMWSwgCisgICAgICAgICAgICBMb2NhbGUuSkFQQU4sIExvY2FsZS5KQVBBTkVTRSwgTG9jYWxlLktPUkVBLCBMb2NhbGUuS09SRUFOLCAKKyAgICAgICAgICAgIExvY2FsZS5QUkMsIExvY2FsZS5TSU1QTElGSUVEX0NISU5FU0UsIExvY2FsZS5UQUlXQU4sIAorICAgICAgICAgICAgTG9jYWxlLlRSQURJVElPTkFMX0NISU5FU0UsIExvY2FsZS5VSywgTG9jYWxlLlVTfTsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBib29sZWFuIHBhc3MgPSB0cnVlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMTsgaSsrKSB7CisgICAgICAgICAgICAgICAgRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgbG9jYWxlc1tpXSk7IAorICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlczsKKyAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb29zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zKTsKKyAgICAgICAgICAgICAgICBvb3Mud3JpdGVPYmplY3QoZm9ybWF0KTsKKyAgICAgICAgICAgICAgICBvb3MuZmx1c2goKTsKKyAgICAgICAgICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgYnl0ZXMgPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgICAgIE9iamVjdCBvID0gb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWZvcm1hdC5lcXVhbHMobykpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBpbnN0YW5jZSBmb3IgbG9jYWxlICIgKyBsb2NhbGVzW2ldICsgIiBpcyBpbmNvcnJlY3RseSBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZC4iKTsgCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQgaW5zdGFuY2UgZm9yIGxvY2FsZSAiICsgbG9jYWxlc1tpXSArICIgaXMgT0tBWS4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXBhc3MpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IERhdGVGb3JtYXQgc2VyaWFsaXphdGlvbi9lcXVhbGl0eSBidWciKTsKKyAgICAgICAgfSBjYXRjaCAoT3B0aW9uYWxEYXRhRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgfQorICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDE0ODMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMTQ4MygpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieiIsIExvY2FsZS5VUyk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbihEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxEKTsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoOTIzNDU2Nzg5MEwpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIHNkZi5mb3JtYXQoZCwgYnVmLCBmcCk7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQoZCwgYnVmLCBmcCkudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKCJiZWdpbkluZGV4ID0gIiArIGZwLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIGxvZ2xuKCJlbmRJbmRleCA9ICIgKyBmcC5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgaWYgKGZwLmdldEJlZ2luSW5kZXgoKSA9PSBmcC5nZXRFbmRJbmRleCgpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEVtcHR5IGZpZWxkIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEwMzM0MAorICAgICAqIEBidWcgNDEzODIwMworICAgICAqIFRoaXMgYnVnIHJlYWxseSBvbmx5IHdvcmtzIGluIExvY2FsZS5VUywgc2luY2UgdGhhdCdzIHdoYXQgdGhlIGxvY2FsZQorICAgICAqIHVzZWQgZm9yIERhdGUudG9TdHJpbmcoKSBpcy4gIEJ1ZyA0MTM4MjAzIHJlcG9ydHMgdGhhdCBpdCBmYWlscyBvbiBLb3JlYW4KKyAgICAgKiBOVDsgaXQgd291bGQgYWN0dWFsbHkgaGF2ZSBmYWlsZWQgb24gYW55IG5vbi1VUyBsb2NhbGUuICBOb3cgaXQgc2hvdWxkCisgICAgICogd29yayBvbiBhbGwgbG9jYWxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMzM0MCgpIHsKKyAgICAKKyAgICAgICAgLy8gY2hvb3NlIGEgZGF0ZSB0aGF0IGlzIHRoZSBGSVJTVCBvZiBzb21lIG1vbnRoIAorICAgICAgICAvLyBhbmQgc29tZSBhcmJpdHJhcnkgdGltZQorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCAzLCAxLCAxLCAxLCAxKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NTSIsIExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZyBzID0gZC50b1N0cmluZygpOworICAgICAgICBTdHJpbmdCdWZmZXIgczIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgczIgPSBkZi5mb3JtYXQoZCwgczIsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJEYXRlPSIgKyBzKTsgCisgICAgICAgIGxvZ2xuKCJERj0iICsgczIpOworICAgICAgICBTdHJpbmcgc3Vic3RyID0gczIuc3Vic3RyaW5nKDAsMik7CisgICAgICAgIGlmIChzLmluZGV4T2Yoc3Vic3RyKSA9PSAtMSkKKyAgICAgICAgICBlcnJsbigiTW9udGhzIHNob3VsZCBtYXRjaCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDMzNDEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMzM0MSgpIHsKKyAgICAgICAgVGltZVpvbmUgc2F2ZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyB7c2ZifSBjaGFuZ2VkIGZyb20gYWRvcHREZWZhdWx0IHRvIHNldERlZmF1bHQKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkNTVCIpKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2ltcGxlID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5eXkgSEg6bW0iKTsKKyAgICAgICAgICAgIFRpbWVab25lIHRlbXAgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBpZiAoIXNpbXBsZS5nZXRUaW1lWm9uZSgpLmVxdWFscyh0ZW1wKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogU2ltcGxlRGF0ZUZvcm1hdCBub3QgdXNpbmcgZGVmYXVsdCB6b25lIik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDQxMzYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNDEzNigpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICIndGltZScgaGg6bW0iOworICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgcGF0dGVybiArICJcIiIpOworICAgICAgICBTdHJpbmcgc3RyaW5nc1tdID0geyJ0aW1lIDEwOjMwIiwgInRpbWUgMTA6eCIsICJ0aW1lIDEweCJ9OworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3NbXSA9IHtuZXcgUGFyc2VQb3NpdGlvbigxMCksIG5ldyBQYXJzZVBvc2l0aW9uKDApLCBuZXcgUGFyc2VQb3NpdGlvbigwKX07CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5NzAsIENhbGVuZGFyLkpBTlVBUlksIDEsIDEwLCAzMCk7CisgICAgICAgIERhdGUgZGF0ZXNbXSA9IHtjYWwuZ2V0VGltZSgpLCBuZXcgRGF0ZSgtMSksIG5ldyBEYXRlKC0xKX07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHN0cmluZ3NbaV07CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIGZpbmlzaCA9IHBwb3NbaV07CisgICAgICAgICAgICBEYXRlIGV4cCA9IGRhdGVzW2ldOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIERhdGUgZCA9IHNkZi5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgbG9nbG4oIiB0ZXh0OiBcIiIgKyB0ZXh0ICsgIlwiIik7CisgICAgICAgICAgICBsb2dsbigiIGluZGV4OiAlZCIgKyBwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICBsb2dsbigiIHJlc3VsdDogIiArIGQpOworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpICE9IGZpbmlzaC5nZXRJbmRleCgpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFeHBlY3RlZCBwb3MgIiArIGZpbmlzaC5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIGlmICghKChkID09IG51bGwgJiYgZXhwLmVxdWFscyhuZXcgRGF0ZSgtMSkpKSB8fCAoZC5lcXVhbHMoZXhwKSkpKQorICAgICAgICAgICAgICAgIGVycmxuKCAiRmFpbDogRXhwZWN0ZWQgcmVzdWx0ICIgKyBleHApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEwNDUyMgorICAgICAqIENBTk5PVCBSRVBST0RVQ0UKKyAgICAgKiBBY2NvcmRpbmcgdG8gdGhlIGJ1ZyByZXBvcnQsIHRoaXMgdGVzdCBzaG91bGQgdGhyb3cgYQorICAgICAqIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZHVyaW5nIHRoZSBzZWNvbmQgcGFyc2UuICBIb3dldmVyLAorICAgICAqIHRoaXMgaXMgbm90IHNlZW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDQ1MjIoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiJ3RpbWUnIGhoOm1tIjsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgLy8gd29ya3MgY29ycmVjdGx5CisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGltZSAiOworICAgICAgICBEYXRlIGR0ID0gc2RmLnBhcnNlKHRleHQsIHBwKTsKKyAgICAgICAgbG9nbG4oIiB0ZXh0OiBcIiIgKyB0ZXh0ICsgIlwiIiArICIgZGF0ZTogIiArIGR0KTsKKyAgICAgICAgLy8gd29ya3Mgd3JvbmcKKyAgICAgICAgcHAuc2V0SW5kZXgoMCk7CisgICAgICAgIHRleHQgPSAidGltZSI7CisgICAgICAgIGR0ID0gc2RmLnBhcnNlKHRleHQsIHBwKTsKKyAgICAgICAgbG9nbG4oIiB0ZXh0OiBcIiIgKyB0ZXh0ICsgIlwiIiArICIgZGF0ZTogIiArIGR0KTsgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEwNjgwNworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2ODA3KCkgeworICAgICAgICBEYXRlIGR0OworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCk7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2Rmc1tdID0geworICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcyIpLCAKKyAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGRISG1tc3MnWiciKSwgCisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkSEhtbXNzJyciKSwgCisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkSEhtbXNzJ2EnJ2EnIiksIAorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcyAlIil9OyAKKyAgICAgICAgU3RyaW5nIHN0cmluZ3NbXSA9IHsKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDAiLCAKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDAiLCAKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDAiLCAKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDBhIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwICJ9OyAKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgVGltZVpvbmUgdGltZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lIGdtdCA9IChUaW1lWm9uZSkgdGltZVpvbmUuY2xvbmUoKTsKKyAgICAgICAgZ210LnNldFJhd09mZnNldCgwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0ID0gc2Rmc1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gc3RyaW5nc1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9ybWF0LnNldFRpbWVab25lKGdtdCk7CisgICAgICAgICAgICAgICAgZHQgPSBmb3JtYXQucGFyc2UoZGF0ZVN0cmluZyk7CisgICAgICAgICAgICAgICAgLy8ge3NmYn0gc29tZSBvZiB0aGVzZSBwYXJzZXMgd2lsbCBmYWlsIHB1cnBvc2VseQorICAgIAorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBmbXRkID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICBmbXRkID0gZGYuZm9ybWF0KGR0LCBmbXRkLCBwb3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKGZtdGQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgLy9sb2dsbihkZi5mb3JtYXQoZHQpKTsgCisgICAgICAgICAgICAgICAgZ2Muc2V0VGltZShkdCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiIgKyBnYy5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIHMgPSBmb3JtYXQuZm9ybWF0KGR0LCBzLCBwb3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKHMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk5vIHdheSBKb3NlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgIFN5bm9wc2lzOiBDaGluZXNlIHRpbWUgem9uZSBDVFQgaXMgbm90IHJlY29nb25pemVkIGNvcnJlY3RseS4KKyAgICAgIERlc2NyaXB0aW9uOiBQbGF0Zm9ybSBDaGluZXNlIFdpbmRvd3MgOTUgLSAqKiBUaW1lIHpvbmUgc2V0IHRvIENTVCAqKiAKKyAgICAgICovCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTA4NDA3CisgICAgICovCisgICAgCisgICAgLy8ge3NmYn0gd2hhdCB0byBkbyB3aXRoIHRoaXMgb25lID8/IAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA4NDA3KCkgeworICAgICAgICAvKgorICAgIC8vIFRPRE8gdXNlci50aW1lem9uZSBpcyBhIHByb3RlY3RlZCBzeXN0ZW0gcHJvcGVydHksIGNhdGNoIHNlY3VyaXR5ZXhjZXB0aW9uIGFuZCB3YXJuCisgICAgLy8gaWYgdGhpcyBpcyByZWVuYWJsZWQKKyAgICAgICAgbG9uZyBsID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7IAorICAgICAgICBsb2dsbigidXNlci50aW1lem9uZSA9ICIgKyBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIudGltZXpvbmUiLCAiPyIpKTsKKyAgICAgICAgbG9nbG4oIlRpbWUgWm9uZSA6IiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKS5nZXRUaW1lWm9uZSgpLmdldElEKCkpOyAKKyAgICAgICAgbG9nbG4oIkRlZmF1bHQgZm9ybWF0IDoiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLmZvcm1hdChuZXcgRGF0ZShsKSkpOyAKKyAgICAgICAgbG9nbG4oIkZ1bGwgZm9ybWF0IDoiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwpLmZvcm1hdChuZXcgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlKGwpKSk7IAorICAgICAgICBsb2dsbigiKioqIFNldCBob3N0IFRaIHRvIENTVCAqKioiKTsKKyAgICAgICAgbG9nbG4oIioqKiBUSEUgUkVTVUxUUyBPRiBUSElTIFRFU1QgTVVTVCBCRSBWRVJJRklFRCBNQU5VQUxMWSAqKioiKTsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTM0MjAzCisgICAgICogU2ltcGxlRGF0ZUZvcm1hdCB3b24ndCBwYXJzZSAiR01UIgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTM0MjAzKCkgeworICAgICAgICBTdHJpbmcgZGF0ZUZvcm1hdCA9ICJNTS9kZC95eSBISDptbTpzcyB6enoiOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGRhdGVGb3JtYXQpOworICAgIAorICAgICAgICBQYXJzZVBvc2l0aW9uIHAwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDEvMjIvOTIgMDQ6NTI6MDAgR01UIiwgcDApOworICAgICAgICBsb2dsbihkLnRvU3RyaW5nKCkpOworICAgICAgICBpZihwMC5lcXVhbHMobmV3IFBhcnNlUG9zaXRpb24oMCkpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IGZhaWxlZCB0byBwYXJzZSAnR01UJyIpOworICAgICAgICAvLyBJbiB0aGUgZmFpbHVyZSBjYXNlIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gYnkgcGFyc2UoKTsKKyAgICAgICAgLy8gaWYgbm8gZXhjZXB0aW9uIGlzIHRocm93biwgdGhlIHRlc3QgcGFzc2VzLgorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNTE2MzEKKyAgICAgKiBTaW1wbGVEYXRlRm9ybWF0IGluY29ycmVjdCBoYW5kbGluZyBvZiAyIHNpbmdsZSBxdW90ZXMgaW4gZm9ybWF0KCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1MTYzMSgpIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAKKyAgICAgICAgICAgICInVE9fREFURSgnJydkZCctJ01NJy0neXl5eSBISDptbTpzcycnJyAsICcnREQtTU0tWVlZWSBISDpNSTpTUycnKSciOyAKKyAgICAgICAgbG9nbG4oInBhdHRlcm49IiArIHBhdHRlcm4pOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSlVORSwgMzAsIDEzLCAzMCwgMCk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoZCwgcmVzdWx0LCBwb3MpOyAKKyAgICAgICAgaWYgKCFyZXN1bHQudG9TdHJpbmcoKS5lcXVhbHMoIlRPX0RBVEUoJzMwLTA2LTE5OTggMTM6MzA6MDAnICwgJ0RELU1NLVlZWVkgSEg6TUk6U1MnKSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogcmVzdWx0PSIgKyByZXN1bHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlBhc3M6IHJlc3VsdD0iICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNTE3MDYKKyAgICAgKiAneicgYXQgZW5kIG9mIGRhdGUgZm9ybWF0IHRocm93cyBpbmRleCBleGNlcHRpb24gaW4gU2ltcGxlRGF0ZUZvcm1hdAorICAgICAqIENBTk5PVCBSRVBST0RVQ0UgVEhJUyBCVUcgT04gMS4yRkNTCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTE3MDYoKSB7CisgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gIlRodXJzZGF5LCAzMS1EZWMtOTggMjM6MDA6MDAgR01UIjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFRSwgZGQtTU1NLXl5IEhIOm1tOnNzIHoiLCBMb2NhbGUuVVMpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiVVRDIiksIExvY2FsZS5VUyk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkRFQ0VNQkVSLCAzMSwgMjMsIDAsIDApOworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZCA9IGZtdC5wYXJzZShkYXRlU3RyaW5nKTsKKyAgICAgICAgICAgIC8vIHtzZmJ9IHdoYXQgYWJvdXQgbmV4dCB0d28gbGluZXM/CisgICAgICAgICAgICBpZiAoZC5nZXRUaW1lKCkgIT0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCB2YWx1ZTogIiArIGQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbihkYXRlU3RyaW5nICsgIiAuICIgKyBmbXQuZm9ybWF0KGQsIHRlbXAsIHBvcykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNjIwNzEKKyAgICAgKiBDYW5ub3QgcmVwcm9kdWNlIHRoaXMgYnVnIHVuZGVyIDEuMiBGQ1MgLS0gaXQgbWF5IGJlIGEgY29udm9sdXRlZCBkdXBsaWNhdGUKKyAgICAgKiBvZiBzb21lIG90aGVyIGJ1ZyB0aGF0IGhhcyBiZWVuIGZpeGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTYyMDcxKCkgeworICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9ICJUaHUsIDMwLUp1bC0xOTk5IDExOjUxOjE0IEdNVCI7CisgICAgICAgIFN0cmluZyBmb3JtYXQgPSAiRUVFJywgJ2RkLU1NTS15eXl5IEhIOm1tOnNzIHoiOyAvLyBSRkMgODIyLzExMjMKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGZvcm1hdCwgTG9jYWxlLlVTKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgeCA9IGRmLnBhcnNlKGRhdGVTdHJpbmcpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICBsb2dsbihkYXRlU3RyaW5nICsgIiAtPiAiICsgZGYuZm9ybWF0KHgsIHRlbXAsIHBvcykpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlBhcnNlIGZvcm1hdCBcIiIgKyBmb3JtYXQgKyAiXCIgZmFpbGVkLiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERhdGVGb3JtYXQgc2hvdWxkbid0IHBhcnNlIHllYXIgIi0xIiBhcyBhIHR3by1kaWdpdCB5ZWFyIChlLmcuLCAiLTEiIC4gMTk5OSkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxODIwNjYoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5IiwgTG9jYWxlLlVTKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkaXNwRm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBkZCB5eXl5IEhIOm1tOnNzIEdHIiwgTG9jYWxlLlVTKTsKKyAgICAgICAgLyogV2UgZXhwZWN0IDItZGlnaXQgeWVhciBmb3JtYXRzIHRvIHB1dCAyLWRpZ2l0IHllYXJzIGluIHRoZSByaWdodAorICAgICAgICAgKiB3aW5kb3cuICBPdXQgb2YgcmFuZ2UgeWVhcnMsIHRoYXQgaXMsIGFueXRoaW5nIGxlc3MgdGhhbiAiMDAiIG9yCisgICAgICAgICAqIGdyZWF0ZXIgdGhhbiAiOTkiLCBhcmUgdHJlYXRlZCBhcyBsaXRlcmFsIHllYXJzLiAgU28gIjEvMi8zNDU2IgorICAgICAgICAgKiBiZWNvbWVzIDM0NTYgQUQuICBMaWtld2lzZSwgIjEvMi8tMyIgYmVjb21lcyAtMyBBRCA9PSAyIEJDLgorICAgICAgICAgKi8KKyAgICAgICAgZmluYWwgU3RyaW5nIFNUUklOR1NbXSA9IAorICAgICAgICAgICAgeyIwMi8yOS8wMCIsICIwMS8yMy8wMSIsICIwNC8wNS8tMSIsICIwMS8yMy8tOSIsICIxMS8xMi8xMzE0IiwgIjEwLzMxLzEiLCAiMDkvMTIvKzEiLCAiMDkvMTIvMDAxIix9OyAKKyAgICAgICAgaW50IFNUUklOR1NfQ09VTlQgPSBTVFJJTkdTLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZSBGQUlMX0RBVEUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOworICAgICAgICBEYXRlIGQwID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuSkFOVUFSWSwgMjMpOworICAgICAgICBEYXRlIGQxID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoLTEsIENhbGVuZGFyLkFQUklMLCA1KTsKKyAgICAgICAgRGF0ZSBkMiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KC05LCBDYWxlbmRhci5KQU5VQVJZLCAyMyk7CisgICAgICAgIERhdGUgZDMgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxMzE0LCBDYWxlbmRhci5OT1ZFTUJFUiwgMTIpOworICAgICAgICBEYXRlIGQ0ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMSwgQ2FsZW5kYXIuT0NUT0JFUiwgMzEpOworICAgICAgICBEYXRlIGQ1ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7ICAgICAgICAKKyAgICAgICAgY2FsLnNldCgxLCBDYWxlbmRhci5TRVBURU1CRVIsIDEyKTsKKyAgICAgICAgRGF0ZSBkNyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGUgREFURVNbXSA9IHtkMCwgZDEsIGQyLCBkMywgZDQsIGQ1LCBGQUlMX0RBVEUsIGQ3fTsKKyAgICAKKyAgICAgICAgU3RyaW5nIG91dCA9ICIiOworICAgICAgICBib29sZWFuIHBhc3MgPSB0cnVlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFNUUklOR1NfQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IFNUUklOR1NbaV07CisgICAgICAgICAgICBEYXRlIGV4cGVjdGVkID0gREFURVNbaV07ICAgICAgICAgICAgCisgICAgICAgICAgICBEYXRlIGFjdHVhbCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGFjdHVhbCA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGFjdHVhbCA9IEZBSUxfREFURTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBhY3RTdHIgPSAiIjsKKyAgICAgICAgICAgIGlmICgoYWN0dWFsLmdldFRpbWUoKSkgPT0gRkFJTF9EQVRFLmdldFRpbWUoKSkgeworICAgICAgICAgICAgICAgIGFjdFN0ciArPSAibnVsbCI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFl1Y2s6IFNlZSBqMjUKKyAgICAgICAgICAgICAgICBhY3RTdHIgPSAoKERhdGVGb3JtYXQpIGRpc3BGbXQpLmZvcm1hdChhY3R1YWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGV4cGVjdGVkLmdldFRpbWUoKSA9PSAoYWN0dWFsLmdldFRpbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBvdXQgKz0gc3RyICsgIiA9PiAiICsgYWN0U3RyICsgIlxuIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFN0ciA9ICIiOworICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZC5nZXRUaW1lKCkgPT0gRkFJTF9EQVRFLmdldFRpbWUoKSkgeworICAgICAgICAgICAgICAgICAgICBleHBTdHIgKz0gIm51bGwiOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFl1Y2s6IFNlZSBqMjUKKyAgICAgICAgICAgICAgICAgICAgZXhwU3RyID0gKChEYXRlRm9ybWF0KSBkaXNwRm10KS5mb3JtYXQoZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXQgKz0gIkZBSUw6ICIgKyBzdHIgKyAiID0+ICIgKyBhY3RTdHIgKyAiLCBleHBlY3RlZCAiICsgZXhwU3RyICsgIlxuIjsKKyAgICAgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBhc3MpIHsKKyAgICAgICAgICAgIGxvZyhvdXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJyKG91dCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogajMyIHtKREsgQnVnIDQyMTAyMDkgNDIwOTI3Mn0KKyAgICAgKiBEYXRlRm9ybWF0IGNhbm5vdCBwYXJzZSBGZWIgMjkgMjAwMCB3aGVuIHNldExlbmllbnQoZmFsc2UpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMTAyMDkoKSB7CisgICAgCisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gIk1NTSBkLCB5eXl5IjsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBEYXRlRm9ybWF0IGRpc3AgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NIGRkIHl5eXkgR0ciLCBMb2NhbGUuVVMpOworICAgIAorICAgICAgICBDYWxlbmRhciBjYWx4ID0gZm10LmdldENhbGVuZGFyKCk7CisgICAgICAgIGNhbHguc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIENhbGVuZGFyIGNhbGVuZGFyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsZW5kYXIuY2xlYXIoKTsKKyAgICAgICAgY2FsZW5kYXIuc2V0KDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7CisgICAgICAgIERhdGUgZCA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KGQpOworICAgICAgICBsb2dsbihkaXNwLmZvcm1hdChkKSArICIgZj4gIiArIHBhdHRlcm4gKyAiID0+IFwiIiArIHMgKyAiXCIiKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgZCA9IGZtdC5wYXJzZShzLCBwb3MpOworICAgICAgICBsb2dsbigiXCIiICsgcyArICJcIiBwPiAiICsgcGF0dGVybiArICIgPT4gIiArCisgICAgICAgICAgICAgIChkIT1udWxsP2Rpc3AuZm9ybWF0KGQpOiJudWxsIikpOworICAgICAgICBsb2dsbigiUGFyc2UgcG9zID0gIiArIHBvcy5nZXRJbmRleCgpICsgIiwgZXJyb3IgcG9zID0gIiArIHBvcy5nZXRFcnJvckluZGV4KCkpOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEVycm9yIGluZGV4IHNob3VsZCBiZSAtMSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIFRoZSB1bmRlcmx5aW5nIGJ1ZyBpcyBpbiBHcmVnb3JpYW5DYWxlbmRhci4gIElmIHRoZSBmb2xsb3dpbmcgbGluZXMKKyAgICAgICAgLy8gc3VjY2VlZCwgdGhlIGJ1ZyBpcyBmaXhlZC4gIElmIHRoZSBidWcgaXNuJ3QgZml4ZWQsIHRoZXkgd2lsbCB0aHJvdworICAgICAgICAvLyBhbiBleGNlcHRpb24uCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBjYWwuc2V0KDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7IC8vIFRoaXMgc2hvdWxkIHdvcmshCisgICAgICAgIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiQXR0ZW1wdCB0byBzZXQgQ2FsZW5kYXIgdG8gRmViIDI5IDIwMDA6ICIgKyBkaXNwLmZvcm1hdChkKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3Q3MTQoKSB7CisgICAgICAgIC8vVGltZVpvbmUgT2Zmc2V0CisgICAgICAgIFRpbWVab25lIGRlZmF1bHRUWiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpbnQgZGVmYXVsdE9mZnNldCA9IGRlZmF1bHRUWi5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgaW50IFBTVE9mZnNldCA9IFBTVC5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoOTc4MTAzNTQzMDAwbCAtIChkZWZhdWx0T2Zmc2V0IC0gUFNUT2Zmc2V0KSk7CisgICAgICAgIGQgPSBuZXcgRGF0ZShkLmdldFRpbWUoKSAtIChkZWZhdWx0VFouaW5EYXlsaWdodFRpbWUoZCkgPyAzNjAwMDAwIDogMCkpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgtMSwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZyB0ZXN0cyA9ICI3OjI1OjQzIEFNIjsKKyAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KGQpOworICAgICAgICBpZiAoIXMuZXF1YWxzKHRlc3RzKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBzICsgIiAhPSAiICsgdGVzdHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgcyArICIgPT0gIiArIHRlc3RzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyIGtBcmFiaWNaZXJvID0gMHgwNjYwOworICAgIHN0YXRpYyBmaW5hbCBjaGFyIGtIaW5kaVplcm8gID0gMHgwOTY2OworICAgIHN0YXRpYyBmaW5hbCBjaGFyIGtMYXRpblplcm8gID0gMHgwMDMwOworCisgICAgcHVibGljIHZvaWQgVGVzdEhpbmRpQXJhYmljRGlnaXRzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzOworICAgICAgICBjaGFyIGZpcnN0OworICAgICAgICBTdHJpbmcgd2hhdDsKKworICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiaGkiLCJJTiIpKTsKKyAgICAgICAgICAgIHdoYXQgPSAiR3JlZ29yaWFuIENhbGVuZGFyLCBoaW5kaSI7CisgICAgICAgICAgICBzID0gZGYuZm9ybWF0KG5ldyBEYXRlKDApKTsgLyogMzEvMTIvMTk2OSAqLworICAgICAgICAgICAgbG9nbG4od2hhdCArICI9IiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtIaW5kaVplcm8gfHwgZmlyc3Q+KGtIaW5kaVplcm8rOSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbih3aGF0ICsgIi0gd3JvbmcgZGlnaXQsICBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKG5ldyBJc2xhbWljQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAyMS8xMC8xOTg5ICovCisgICAgICAgICAgICB3aGF0ID0gIklzbGFtaWMgQ2FsZW5kYXIsIEFyYWJpYyI7CisgICAgICAgICAgICBsb2dsbih3aGF0ICsgIjogIiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtBcmFiaWNaZXJvIHx8IGZpcnN0PihrQXJhYmljWmVybys5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKHdoYXQgKyAiIHdyb25nIGRpZ2l0LCBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpLCBuZXcgTG9jYWxlKCJhciIsIklRIikpOworICAgICAgICAgICAgcyA9IGRmLmZvcm1hdChuZXcgRGF0ZSgwKSk7IC8qIDMxLzEyLzE5NjkgKi8KKyAgICAgICAgICAgIHdoYXQgPSAiR3JlZ29yaWFuLCAgYXJfSVEsIGRmLmdldEluc3RhbmNlIjsKKyAgICAgICAgICAgIGxvZ2xuKHdoYXQgKyAiOiAiICsgcyk7CisgICAgICAgICAgICBmaXJzdCA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgaWYoZmlyc3Q8a0FyYWJpY1plcm8gfHwgZmlyc3Q+KGtBcmFiaWNaZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICIgd3JvbmcgIGRpZ2l0IGJ1dCBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgibXQiLCJNVCIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gIkdyZWdvcmlhbiwgIG10X01ULCBkZi5nZXRJbnN0YW5jZSI7CisgICAgICAgICAgICBsb2dsbih3aGF0ICsgIjogIiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtMYXRpblplcm8gfHwgZmlyc3Q+KGtMYXRpblplcm8rOSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbih3aGF0ICsgIiB3cm9uZyAgZGlnaXQgYnV0IGdvdCAiICsgcyArICIgKGludGVnZXIgZGlnaXQgdmFsdWUgIiArIG5ldyBJbnRlZ2VyKChpbnQpZmlyc3QpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IElzbGFtaWNDYWxlbmRhcigpLCBuZXcgTG9jYWxlKCJhciIsIklRIikpOworICAgICAgICAgICAgcyA9IGRmLmZvcm1hdChuZXcgRGF0ZSgwKSk7IC8qIDMxLzEyLzE5NjkgKi8KKyAgICAgICAgICAgIHdoYXQgPSAiSXNsYW1pYyBjYWxlbmRhciwgYXJfSVEsIGRmLmdldEluc3RhbmNlIjsKKyAgICAgICAgICAgIGxvZ2xuKHdoYXQrICI6ICIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrQXJhYmljWmVybyB8fCBmaXJzdD4oa0FyYWJpY1plcm8rOSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbih3aGF0ICsgIiB3cm9uZyAgZGlnaXQgYnV0IGdvdCAiICsgcyArICIgKGludGVnZXIgZGlnaXQgdmFsdWUgIiArIG5ldyBJbnRlZ2VyKChpbnQpZmlyc3QpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBEYXRlRm9ybWF0LlNIT1JULCBuZXcgTG9jYWxlKCJhciIsIklRIikpOworICAgICAgICAgICAgcyA9IGRmLmZvcm1hdChuZXcgRGF0ZSgwKSk7IC8qIDMxLzEyLzE5NjkgKi8KKyAgICAgICAgICAgIHdoYXQgPSAiYXJfSVEsIGdldERhdGVUaW1lSW5zdGFuY2UiOworICAgICAgICAgICAgbG9nbG4od2hhdCsgIjogIiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtBcmFiaWNaZXJvIHx8IGZpcnN0PihrQXJhYmljWmVybys5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKHdoYXQgKyAiIHdyb25nICBkaWdpdCBidXQgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShuZXcgSmFwYW5lc2VDYWxlbmRhcigpLCBuZXcgTG9jYWxlKCJhciIsIklRIikpOworICAgICAgICAgICAgcyA9IGRmLmZvcm1hdChuZXcgRGF0ZSgwKSk7IC8qIDMxLzEyLzE5NjkgKi8KKyAgICAgICAgICAgIHdoYXQgPSAiYXJfSVEsIEphcGFuZXNlIENhbGVuZGFyLCBnZXRJbnN0YW5jZSI7CisgICAgICAgICAgICBsb2dsbih3aGF0KyAiOiAiICsgcyk7CisgICAgICAgICAgICBmaXJzdCA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgaWYoZmlyc3Q8a0FyYWJpY1plcm8gfHwgZmlyc3Q+KGtBcmFiaWNaZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICIgd3JvbmcgIGRpZ2l0IGJ1dCBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0Si5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTQ0NjRmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0Si5qYXZhCkBAIC0wLDAgKzEsMjg3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKgorICogTmV3IGFkZGVkLCAyMDAxLTEwLTE3IFtKaW5nL0dDTF0KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUSU1FX1NUUklORyA9ICIyMDAwLzExLzE3IDA4OjAxOjAwIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIFVUQ19MT05HID0gOTc0NDc2ODYwMDAwTDsKKyAgICBwcml2YXRlIHN0YXRpYyBTaW1wbGVEYXRlRm9ybWF0IHNkZl87CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgc2RmXyA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5L01NL2RkIEhIOm1tOnNzIik7CisgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IERhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEooKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vUmV0dXJuIHZhbHVlIG9mIGdldEFtUG1TdHJpbmdzCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDM5MjYoKSB7CisgICAgICAgIFN0cmluZyBhY3RfQW1wbXNbXTsKKyAgICAgICAgU3RyaW5nIGV4cF9BbXBtc1tdPXsiQU0iLCJQTSJ9OworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICAKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIGFjdF9BbXBtcyA9IGRmcy5nZXRBbVBtU3RyaW5ncygpOworICAgICAgICBpZihhY3RfQW1wbXMubGVuZ3RoICE9IGV4cF9BbXBtcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgcmVzdWx0IGlzIG5vdCBleHBlY3RlZCEiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9MDsgaTxhY3RfQW1wbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighYWN0X0FtcG1zW2ldLmVxdWFscyhleHBfQW1wbXNbaV0pKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGhlIHJlc3VsdCBpcyBub3QgZXhwZWN0ZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9NaXNzaW5nIGRpZ2l0IGluIG1pbGxpc2Vjb25lIGZvcm1hdCBpbiBTaW1wbGVEYXRlRm9ybWF0IAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ4MTY4KCkgeworICAgICAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoMTAwMjcwNTIxMjkwNmwpOyAKKyAgICAgICAgICAgIFN0cmluZ1tdIElTT1BhdHRlcm4gPSB7CisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TJyciLCAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1NTJyciLCAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTU1NTJyciLCAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTUzAwMCcnIn07CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGFTaW1wbGVERiA9IChTaW1wbGVEYXRlRm9ybWF0KURhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgIAorICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaTxJU09QYXR0ZXJuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgYVNpbXBsZURGLmFwcGx5UGF0dGVybiggSVNPUGF0dGVybltpXSApOworICAgICAgICAgICAgICAgIGxvZ2xuKCAiUGF0dGVybiA9ICIgKyBhU2ltcGxlREYudG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCAiRm9ybWF0ID0gIiArIGFTaW1wbGVERi5mb3JtYXQoZCkpOworICAgICAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL0RhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQsIGludCksIGludmFsaWQgc3R5bGVzIG5vIGV4Y2VwdGlvbgorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjEzMDg2KCkgeworICAgICAgICBEYXRlIHNvbWVEYXRlID0gbmV3IERhdGUoKTsKKyAgICAgICAgU3RyaW5nIGQ9bnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYyID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKDIsIC0yKTsKKyAgICAgICAgICAgIGQgPSBkZjIuZm9ybWF0KHNvbWVEYXRlKTsKKyAgICAgICAgICAgIGVycmxuKCJ3ZSBzaG91bGQgY2F0Y2ggYW4gZXhjZXB0aW9uIGhlcmUiKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBsb2dsbigiZGF0ZVN0eWxlID0gMiIgKyAiXHQgdGltZVN0eWxlID0gLTIiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb24gY2F1Z2h0ISIpOworICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZjMgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoNCwgMik7CisgICAgICAgICAgICBkID0gZGYzLmZvcm1hdChzb21lRGF0ZSk7CisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IDQiICsgIlx0IHRpbWVTdHlsZSA9IDIiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb24gY2F1Z2h0ISIpOworICAgICAgICAgICAgbG9nbG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGY0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKC0xMiwgLTEyKTsKKyAgICAgICAgICAgIGQgPSBkZjQuZm9ybWF0KHNvbWVEYXRlKTsKKyAgICAgICAgICAgIGVycmxuKCJ3ZSBzaG91bGQgY2F0Y2ggYW4gZXhjZXB0aW9uIGhlcmUiKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBsb2dsbigiZGF0ZVN0eWxlID0gLTEyIiArICJcdCB0aW1lU3R5bGUgPSAtMTIiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb24gY2F1Z2h0ISIpOworICAgICAgICAgICAgbG9nbG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZjUgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoMiwgMTIzKTsKKyAgICAgICAgICAgIGQgPSBkZjUuZm9ybWF0KHNvbWVEYXRlKTsgICAgCisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IDIiICsgIlx0IHRpbWVTdHlsZSA9IDEyMyIpOworICAgICAgICAgICAgbG9nbG4oIkV4Y2VwdGlvbiBjYXVnaHQhIik7CisgICAgICAgICAgICBsb2dsbigiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiKTsKKyAgICAgICAgfQorICAgICAgICAvL3JlYWQgdGhlIHZhbHVlIGluIGQgdG8gZ2V0IHJpZCBvZiB0aGUgd2FybmluZworICAgICAgICBpZihkIT1udWxsKXsKKyAgICAgICAgICAgIGxvZ2xuKCJUaGUgdmFsdWUgb2YgZDogIiArIGQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vRGF0ZUZvcm1hdC5mb3JtYXQgd29ya3Mgd3JvbmdseT8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI1MDM1OSgpIHsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTAxICsgMTkwMCwgOSwgOSwgMTcsIDUzKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCB0ZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBTdHJpbmcgYWN0X3Jlc3VsdCA9IHRmLmZvcm1hdChkKTsKKyAgICAgICAgU3RyaW5nIGV4cF9yZXN1bHQgPSAiNTo1MyBQTSI7CisgICAgICAgIAorICAgICAgICBpZighYWN0X3Jlc3VsdC5lcXVhbHMoZXhwX3Jlc3VsdCkpeworICAgICAgICAgICAgZXJybG4oIlRoZSByZXN1bHQgaXMgbm90IGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9wYXR0ZXJuICJzLlMsIHBhcnNlICcxbXMnIgorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjUzNDkwKCkgeworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSgxMDAyNzA1MjEyMjMxbCk7CisgICAgCisgICAgICAgIFN0cmluZ1tdIElTT1BhdHRlcm4gPSB7CisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1NTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTU1NTJycifTsgCisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgYVNpbXBsZURGID0gKFNpbXBsZURhdGVGb3JtYXQpIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IElTT1BhdHRlcm4ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGFTaW1wbGVERi5hcHBseVBhdHRlcm4oSVNPUGF0dGVybltpXSk7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybiA9ICIgKyBhU2ltcGxlREYudG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdCA9ICIgKyBhU2ltcGxlREYuZm9ybWF0KGQpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL2Fib3V0IHJlZ3Jlc3Npb24gdGVzdAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjY2NDMyKCkgeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuSkFQQU4pOworICAgICAgICBMb2NhbGUgbG9jID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgU3RyaW5nIGRhdGVGb3JtYXQgPSAiTU0vZGQveXkgSEg6bW06c3Mgenp6IjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRlRm9ybWF0KTsKKyAgICAKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwMCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigiVW5kZXIgICIgKyBsb2MgKyIgIGxvY2FsZSIpOworICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjAxLzIyLzkyIDA0OjUyOjAwIEdNVCIsIHAwKTsKKyAgICAgICAgbG9nbG4oZC50b1N0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgLy9TaW1wbGVEYXRlRm9ybWF0IGluY29uc2lzdGVudCBmb3IgbnVtYmVyIG9mIGRpZ2l0cyBmb3IgeWVhcnMKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDM1ODczMCgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgyMDAxLDExLDEwKTsKKyAgICAgICAgRGF0ZSB0b2RheSA9IGNhbC5nZXRUaW1lKCk7CisgICAgCisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oIk1NIGQgeSIpOworICAgICAgICBsb2dsbihzZGYuZm9ybWF0KHRvZGF5KSk7CisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oIk1NIGQgeXkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHl5eSIpOworICAgICAgICBsb2dsbihzZGYuZm9ybWF0KHRvZGF5KSk7CisgICAgCisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oIk1NIGQgeXl5eSIpOworICAgICAgICBsb2dsbihzZGYuZm9ybWF0KHRvZGF5KSk7CisgICAgCisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oIk1NIGQgeXl5eXkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgIH0KKyAgICAKKyAgICAvL1BhcnNlIGludmFsaWQgc3RyaW5nCisgICAgcHVibGljIHZvaWQgVGVzdDQzNzUzOTkoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygieXl5eS5NTS5kZCBHICdhdCcgaGg6bW06c3MgeiIpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5KQVBBTik7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIERhdGUgY3VycmVudFRpbWUgPSBzZGYucGFyc2UoInZnZ2YgMjAgIDAxLjAgOS4yOSBhcC4gSi4tQy4gYXQgMDU6MjY6MzMgR01UKzA4OjAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICAgICAgaWYoY3VycmVudFRpbWUgPT1udWxsKQorICAgICAgICAgICAgICAgIGxvZ2xuKCJwYXJzZSByaWdodCIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciIpOworICAgICAgICB9CisgICAgfQorICAgIC8qCisgICAgcHVibGljIHZvaWQgVGVzdDQ0MDcwNDIoKSB7CisgICAgICAgIERhdGVQYXJzZVRocmVhZCBkMSA9IG5ldyBEYXRlUGFyc2VUaHJlYWQoKTsKKyAgICAgICAgRGF0ZUZvcm1hdFRocmVhZCBkMiA9IG5ldyBEYXRlRm9ybWF0VGhyZWFkKCk7CisgICAgICAgIGQxLnN0YXJ0KCk7CisgICAgICAgIGQyLnN0YXJ0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbigidGVzdCIpOworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMDApOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICB9Ki8KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDQ2ODY2MygpIHsKKyAgICAgICAgRGF0ZSBkID1uZXcgRGF0ZSgtOTM3MTY2NzExMTU3NjdsKTsKKyAgICAgICAgU3RyaW5nIG9yaWdpbl9kID0gZC50b1N0cmluZygpOworICAgICAgICBTdHJpbmcgc3RyOworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IG5ldyBTdHJpbmcoIkVFRUUsIE1NTU0gZCwgeXl5eSIpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4pOworCisgICAgICAgIGlmIChzZGYuZ2V0VGltZVpvbmUoKS51c2VEYXlsaWdodFRpbWUoKSkgeworICAgICAgICAgICAgbG9nbG4oIm9yaWdpbmFsIGRhdGU6ICIgKyBvcmlnaW5fZC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBsb2dsbigiIGFmdGVyIGZvcm1hdC0tLS0tPiIgKyBzdHIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkID0gc2RmLnBhcnNlKHN0ciwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICAgICAgbG9nbG4oIiBhZnRlciBwYXJzZS0tLS0tPiIgKyBkLnRvU3RyaW5nKCkpOworICAgIAorICAgICAgICAgICAgc3RyID0gc2RmLmZvcm1hdChkKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgYWZ0ZXIgZm9ybWF0LS0tLS0+IiArIHN0cik7CisgICAgCisgICAgICAgICAgICBkID0gc2RmLnBhcnNlKHN0ciwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICAgICAgbG9nbG4oIiBhZnRlciBwYXJzZS0tLS0tPiIgKyBkLnRvU3RyaW5nKCkpOworICAgIAorICAgICAgICAgICAgc3RyID0gc2RmLmZvcm1hdChkKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgYWZ0ZXIgZm9ybWF0LS0tLS0+IiArIHN0cik7ICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL0NsYXNzIHVzZWQgYnkgVGVzdDQ0MDcwNDIKKyAgICBjbGFzcyBEYXRlUGFyc2VUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IChTaW1wbGVEYXRlRm9ybWF0KSBzZGZfLmNsb25lKCk7CisgICAgICAgICAgICBUaW1lWm9uZSBkZWZhdWx0VFogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgICAgICBpbnQgZGVmYXVsdE9mZnNldCA9IGRlZmF1bHRUWi5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgICAgIGludCBQU1RPZmZzZXQgPSBQU1QuZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZGVmYXVsdE9mZnNldCAtIFBTVE9mZnNldDsKKyAgICAgICAgICAgIGxvbmcgbXMgPSBVVENfTE9ORyAtIG9mZnNldDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgMTAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZSBkYXRlID0gc2RmLnBhcnNlKFRJTUVfU1RSSU5HKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZyB0ID0gZGF0ZS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHQgIT0gbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiUGFyc2UgRXJyb3I6ICIgKyBpICsgIiAoIiArIHNkZi5mb3JtYXQoZGF0ZSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSAiICsgdCArICIgIT0gIiArIG1zLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInBhcnNlIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vQ2xhc3MgdXNlZCBieSBUZXN0NDQwNzA0MgorICAgIGNsYXNzIERhdGVGb3JtYXRUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7ICAgICAgICAgICAgCisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IChTaW1wbGVEYXRlRm9ybWF0KSBzZGZfLmNsb25lKCk7CisgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgICAgIHNkZi5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaSA8IDEwMDAwKSB7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gc2RmLmZvcm1hdChuZXcgRGF0ZShVVENfTE9ORykpOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHMoVElNRV9TVFJJTkcpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGb3JtYXQgRXJyb3I6ICIgKyBpICsgIiAiICsgcyArICIgIT0gIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVElNRV9TVFJJTkcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjk2Njk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0Um91bmRUcmlwVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2R0Zm10cnR0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKKy8qKiAKKyAqIFBlcmZvcm1zIHJvdW5kLXRyaXAgdGVzdHMgZm9yIERhdGVGb3JtYXQKKyAqKi8KK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0Um91bmRUcmlwVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICBwdWJsaWMgYm9vbGVhbiBJTkZJTklURSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIHF1aWNrID0gdHJ1ZTsKKyAgICBwcml2YXRlIFNpbXBsZURhdGVGb3JtYXQgZGF0ZUZvcm1hdDsKKyAgICBwcml2YXRlIENhbGVuZGFyIGdldEZpZWxkQ2FsOworICAgIHByaXZhdGUgaW50IFNQQVJTRU5FU1MgPSAxODsKKyAgICBwcml2YXRlIGludCBUUklBTFMgPSA0OworICAgIHByaXZhdGUgaW50IERFUFRIID0gNTsKKyAgICBwcml2YXRlIFJhbmRvbSByYW47CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IERhdGVGb3JtYXRSb3VuZFRyaXBUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdFJvdW5kVHJpcCgpIHsKKyAgICAgICAgZGF0ZUZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIEhIOm1tOnNzLlNTUyB6enogeXl5eSBHIik7CisgICAgICAgIGdldEZpZWxkQ2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICByYW4gPSBjcmVhdGVSYW5kb20oKTsgLy8gdXNlIHRlc3QgZnJhbWV3b3JrJ3MgcmFuZG9tIHNlZWQKKworICAgICAgICBmaW5hbCBMb2NhbGVbXSBhdmFpbCA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpbnQgbG9jQ291bnQgPSBhdmFpbC5sZW5ndGg7CisgICAgICAgIGxvZ2xuKCJEYXRlRm9ybWF0IGF2YWlsYWJsZSBsb2NhbGVzOiAiICsgbG9jQ291bnQpOworICAgICAgICBpZiAocXVpY2spIHsKKyAgICAgICAgICAgIGlmIChsb2NDb3VudCA+IDUpCisgICAgICAgICAgICAgICAgbG9jQ291bnQgPSA1OworICAgICAgICAgICAgbG9nbG4oIlF1aWNrIG1vZGU6IG9ubHkgdGVzdGluZyBmaXJzdCA1IExvY2FsZXMiKTsKKyAgICAgICAgfQorICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgbG9nbG4oIkRlZmF1bHQgVGltZVpvbmU6ICAgICAgICAgICAgICIgKyB0ei5nZXRJRCgpKTsKKyAgICAKKyAgICAgICAgaWYgKElORklOSVRFKSB7CisgICAgICAgICAgICAvLyBTcGVjaWFsIGluZmluaXRlIGxvb3AgdGVzdCBtb2RlIGZvciBmaW5kaW5nIGhhcmQgdG8gcmVwcm9kdWNlIGVycm9ycworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBsb2dsbigiRU5URVJJTkcgSU5GSU5JVEUgVEVTVCBMT09QIEZPUiBMb2NhbGU6ICIgKyBsb2MuZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgX3Rlc3QobG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsgICAgICAgIAorICAgICAgICAgICAgX3Rlc3QoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY0NvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBfdGVzdChhdmFpbFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBzdHlsZU5hbWUoaW50IHMpIHsKKyAgICAgICAgc3dpdGNoIChzKSB7CisgICAgICAgICAgICBjYXNlIERhdGVGb3JtYXQuU0hPUlQgOgorICAgICAgICAgICAgICAgIHJldHVybiAiU0hPUlQiOworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0Lk1FRElVTSA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJNRURJVU0iOworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0LkxPTkcgOgorICAgICAgICAgICAgICAgIHJldHVybiAiTE9ORyI7CisgICAgICAgICAgICBjYXNlIERhdGVGb3JtYXQuRlVMTCA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJGVUxMIjsKKyAgICAgICAgICAgIGRlZmF1bHQgOgorICAgICAgICAgICAgICAgIHJldHVybiAiVW5rbm93biI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgX3Rlc3QoTG9jYWxlIGxvYykgeworICAgICAgICBpZiAoIUlORklOSVRFKSB7CisgICAgICAgICAgICBsb2dsbigiTG9jYWxlOiAiICsgbG9jLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRvdGFsIHBvc3NpYmlsaXRpZXMgPSAyNAorICAgICAgICAvLyAgNCBkYXRlCisgICAgICAgIC8vICA0IHRpbWUKKyAgICAgICAgLy8gIDE2IGRhdGUtdGltZQorICAgICAgICBib29sZWFuW10gVEVTVF9UQUJMRSA9IG5ldyBib29sZWFuWzI0XTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjQ7ICsraSkKKyAgICAgICAgICAgIFRFU1RfVEFCTEVbaV0gPSB0cnVlOworICAgIAorICAgICAgICAvLyBJZiB3ZSBoYXZlIHNvbWUgc3BhcnNlbmVzcywgaW1wbGVtZW50IGl0IGhlcmUuICBTcGFyc2VuZXNzIGRlY3JlYXNlcworICAgICAgICAvLyB0ZXN0IHRpbWUgYnkgZWxpbWluYXRpbmcgc29tZSB0ZXN0cywgdXAgdG8gMjMuCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBTUEFSU0VORVNTOyBpKyspIHsKKyAgICAgICAgICAgIGludCByYW5kb20gPSAoaW50KSAocmFuLm5leHREb3VibGUoKSAqIDI0KTsKKyAgICAgICAgICAgIGlmIChyYW5kb20gPj0gMCAmJiByYW5kb20gPCAyNCAmJiBURVNUX1RBQkxFW2ldKSB7CisgICAgICAgICAgICAgICAgVEVTVF9UQUJMRVtyYW5kb21dID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgCisgICAgICAgIAorICAgICAgICBpbnQgaXRhYmxlID0gMDsKKyAgICAgICAgaW50IHN0eWxlID0gMDsKKyAgICAgICAgZm9yIChzdHlsZSA9IERhdGVGb3JtYXQuRlVMTDsgc3R5bGUgPD0gRGF0ZUZvcm1hdC5TSE9SVDsgKytzdHlsZSkgeworICAgICAgICAgICAgaWYgKFRFU1RfVEFCTEVbaXRhYmxlKytdKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3Rpbmcgc3R5bGUgIiArIHN0eWxlTmFtZShzdHlsZSkpOyAKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2Uoc3R5bGUsIGxvYyk7IAorICAgICAgICAgICAgICAgIF90ZXN0KGRmLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZm9yIChzdHlsZSA9IERhdGVGb3JtYXQuRlVMTDsgc3R5bGUgPD0gRGF0ZUZvcm1hdC5TSE9SVDsgKytzdHlsZSkgeworICAgICAgICAgICAgaWYgKFRFU1RfVEFCTEVbaXRhYmxlKytdKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3Rpbmcgc3R5bGUgIiArIHN0eWxlTmFtZShzdHlsZSkpOworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgIGRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2Uoc3R5bGUsIGxvYyk7IAorICAgICAgICAgICAgICAgIF90ZXN0KGRmLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBmb3IgKGludCBkc3R5bGUgPSBEYXRlRm9ybWF0LkZVTEw7IGRzdHlsZSA8PSBEYXRlRm9ybWF0LlNIT1JUOyArK2RzdHlsZSkgeworICAgICAgICAgICAgZm9yIChpbnQgdHN0eWxlID0gRGF0ZUZvcm1hdC5GVUxMOyB0c3R5bGUgPD0gRGF0ZUZvcm1hdC5TSE9SVDsgKyt0c3R5bGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoVEVTVF9UQUJMRVtpdGFibGUrK10pIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgZHN0eWxlICIgKyBzdHlsZU5hbWUoZHN0eWxlKSArICIsIHRzdHlsZSAiICsgc3R5bGVOYW1lKHRzdHlsZSkpOyAKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkc3R5bGUsIHRzdHlsZSwgbG9jKTsgCisgICAgICAgICAgICAgICAgICAgIF90ZXN0KGRmLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KERhdGVGb3JtYXQgZm10LCBib29sZWFuIHRpbWVPbmx5KSB7CisgICAgCisgICAgICAgIGlmICghKGZtdCBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpKSB7CisgICAgICAgICAgICBlcnJsbigiRGF0ZUZvcm1hdCB3YXNuJ3QgYSBTaW1wbGVEYXRlRm9ybWF0Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHBhdCA9ICgoU2ltcGxlRGF0ZUZvcm1hdCkgZm10KS50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4ocGF0KTsKKyAgICAKKyAgICAgICAgLy8gTk9URSBUTyBNQUlOVEFJTkVSCisgICAgICAgIC8vIFRoaXMgaW5kZXhPZiBjaGVjayBpbnRvIHRoZSBwYXR0ZXJuIG5lZWRzIHRvIGJlIHJlZmluZWQgdG8gaWdub3JlCisgICAgICAgIC8vIHF1b3RlZCBjaGFyYWN0ZXJzLiAgQ3VycmVudGx5LCB0aGlzIGlzbid0IGEgcHJvYmxlbSB3aXRoIHRoZSBsb2NhbGUKKyAgICAgICAgLy8gcGF0dGVybnMgd2UgaGF2ZSwgYnV0IGl0IG1heSBiZSBhIHByb2JsZW0gbGF0ZXIuCisgICAgCisgICAgICAgIGJvb2xlYW4gaGFzRXJhID0gKHBhdC5pbmRleE9mKCJHIikgIT0gLTEpOworICAgICAgICBib29sZWFuIGhhc1pvbmUgPSAocGF0LmluZGV4T2YoIloiKSAhPSAtMSkgfHwgKHBhdC5pbmRleE9mKCJ6IikgIT0gLTEpOworICAgIAorICAgICAgICAvLyBCZWNhdXNlIHBhdHRlcm5zIGNvbnRhaW4gaW5jb21wbGV0ZSBkYXRhIHJlcHJlc2VudGluZyB0aGUgRGF0ZSwKKyAgICAgICAgLy8gd2UgbXVzdCBiZSBjYXJlZnVsIG9mIGhvdyB3ZSBkbyB0aGUgcm91bmR0cmlwLiAgV2Ugc3RhcnQgd2l0aAorICAgICAgICAvLyBhIHJhbmRvbWx5IGdlbmVyYXRlZCBEYXRlIGJlY2F1c2UgdGhleSdyZSBlYXNpZXIgdG8gZ2VuZXJhdGUuCisgICAgICAgIC8vIEZyb20gdGhpcyB3ZSBnZXQgYSBzdHJpbmcuICBUaGUgc3RyaW5nIGlzIG91ciByZWFsIHN0YXJ0aW5nIHBvaW50LAorICAgICAgICAvLyBiZWNhdXNlIHRoaXMgc3RyaW5nIHNob3VsZCBwYXJzZSB0aGUgc2FtZSB3YXkgYWxsIHRoZSB0aW1lLiAgTm90ZQorICAgICAgICAvLyB0aGF0IGl0IHdpbGwgbm90IG5lY2Vzc2FyaWx5IHBhcnNlIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGRhdGUgYmVjYXVzZQorICAgICAgICAvLyBvZiBpbmNvbXBsZXRlbmVzcyBpbiBwYXR0ZXJucy4gIEZvciBleGFtcGxlLCBhIHRpbWUtb25seSBwYXR0ZXJuIHdvbid0CisgICAgICAgIC8vIHBhcnNlIGJhY2sgdG8gdGhlIHNhbWUgZGF0ZS4KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVFJJQUxTOyArK2kpIHsKKyAgICAgICAgICAgICAgICBEYXRlW10gZCA9IG5ldyBEYXRlW0RFUFRIXTsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBzID0gbmV3IFN0cmluZ1tERVBUSF07CisgICAgCisgICAgICAgICAgICAgICAgZFswXSA9IGdlbmVyYXRlRGF0ZSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFdlIGdvIHRocm91Z2ggdGhpcyBsb29wIHVudGlsIHdlIGFjaGlldmUgYSBtYXRjaCBvciB1bnRpbAorICAgICAgICAgICAgICAgIC8vIHRoZSBtYXhpbXVtIGxvb3AgY291bnQgaXMgcmVhY2hlZC4gIFdlIHJlY29yZCB0aGUgcG9pbnRzIGF0CisgICAgICAgICAgICAgICAgLy8gd2hpY2ggdGhlIGRhdGUgYW5kIHRoZSBzdHJpbmcgc3RhcnRzIHRvIG1hdGNoLiAgT25jZSBtYXRjaGluZworICAgICAgICAgICAgICAgIC8vIHN0YXJ0cywgaXQgc2hvdWxkIGNvbnRpbnVlLgorICAgICAgICAgICAgICAgIGludCBsb29wOworICAgICAgICAgICAgICAgIGludCBkbWF0Y2ggPSAwOyAvLyBkW2RtYXRjaF0uZ2V0VGltZSgpID09IGRbZG1hdGNoLTFdLmdldFRpbWUoKQorICAgICAgICAgICAgICAgIGludCBzbWF0Y2ggPSAwOyAvLyBzW3NtYXRjaF0uZXF1YWxzKHNbc21hdGNoLTFdKQorICAgICAgICAgICAgICAgIGZvciAobG9vcCA9IDA7IGxvb3AgPCBERVBUSDsgKytsb29wKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsb29wID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZFtsb29wXSA9IGZtdC5wYXJzZShzW2xvb3AgLSAxXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgc1tsb29wXSA9IGZtdC5mb3JtYXQoZFtsb29wXSk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChsb29wID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNtYXRjaCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXRjaCA9IHNbbG9vcF0uZXF1YWxzKHNbbG9vcCAtIDFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc21hdGNoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21hdGNoID0gbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTdHJpbmcgbWlzbWF0Y2ggYWZ0ZXIgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkbWF0Y2ggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHtzZmJ9IHdhdGNoIG91dCBoZXJlLCB0aGlzIG1pZ2h0IG5vdCB3b3JrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXRjaCA9IGRbbG9vcF0uZ2V0VGltZSgpID09IGRbbG9vcCAtIDFdLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hdGNoID0gbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlIG1pc21hdGNoIGFmdGVyIG1hdGNoIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc21hdGNoICE9IDAgJiYgZG1hdGNoICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBsb29wID09IERFUFRIIGlmIHdlJ3ZlIGZhaWxlZCwgb3RoZXJ3aXNlIGxvb3AgaXMgdGhlCisgICAgICAgICAgICAgICAgLy8gbWF4KHNtYXRjaCwgZG1hdGNoKSwgdGhhdCBpcywgdGhlIGluZGV4IGF0IHdoaWNoIHdlIGhhdmUgc3RyaW5nIGFuZAorICAgICAgICAgICAgICAgIC8vIGRhdGUgbWF0Y2hpbmcuCisgICAgCisgICAgICAgICAgICAgICAgLy8gRGF0ZSB1c3VhbGx5IG1hdGNoZXMgaW4gMi4gIEV4Y2VwdGlvbnMgaGFuZGxlZCBiZWxvdy4KKyAgICAgICAgICAgICAgICBpbnQgbWF4RG1hdGNoID0gMjsKKyAgICAgICAgICAgICAgICBpbnQgbWF4U21hdGNoID0gMTsKKyAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID4gbWF4RG1hdGNoIHx8IHNtYXRjaCA+IG1heFNtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBEYXRlIGlzIEJDCisgICAgICAgICAgICAgICAgICAgIGlmICghdGltZU9ubHkgJiYgIWhhc0VyYSAmJiBnZXRGaWVsZChkWzBdLCBDYWxlbmRhci5FUkEpID09IEdyZWdvcmlhbkNhbGVuZGFyLkJDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhEbWF0Y2ggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgbWF4U21hdGNoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoaGFzWm9uZSAmJiAoZm10LmdldFRpbWVab25lKCkuaW5EYXlsaWdodFRpbWUoZFswXSkgfHwgZm10LmdldFRpbWVab25lKCkuaW5EYXlsaWdodFRpbWUoZFsxXSkgKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4U21hdGNoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lT25seSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heERtYXRjaCA9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkbWF0Y2ggPiBtYXhEbWF0Y2ggfHwgc21hdGNoID4gbWF4U21hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRUUsIE1NTU0gZCwgeXl5eSBISDptbTpzcywgeiBHIiwgTG9jYWxlLlVTKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBsb2dsbigiRGF0ZSA9ICIgKyBzZGYuZm9ybWF0KGRbMF0pICsgIjsgbXMgPSAiICsgZFswXS5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRG1hdGNoOiAiICsgZG1hdGNoICsgIiBtYXhEOiAiICsgbWF4RG1hdGNoICsgIiBTbWF0Y2g6IiArIHNtYXRjaCArICIgbWF4UzoiICsgbWF4U21hdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBwYXQgKyAiIGZhaWxlZCB0byBtYXRjaCIgKyAiOyBtcyA9ICIgKyBkWzBdLmdldFRpbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IGxvb3AgJiYgaiA8IERFUFRIOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oKGogPiAwID8gIiBQPiAiIDogIiAgICAiKSArIGRhdGVGb3JtYXQuZm9ybWF0KGRbal0sIHRlbXAsIHBvcykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEY+ICIgKyBzW2pdICsgKGogPiAwICYmIGRbal0uZ2V0VGltZSgpID09IGRbaiAtIDFdLmdldFRpbWUoKSA/ICIgZD09IiA6ICIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGogPiAwICYmIHNbal0uZXF1YWxzKHNbaiAtIDFdKSA/ICIgcz09IiA6ICIiKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBsb2dsbihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0RmllbGQoRGF0ZSBkLCBpbnQgZikgeworICAgICAgICBnZXRGaWVsZENhbC5zZXRUaW1lKGQpOworICAgICAgICBpbnQgcmV0ID0gZ2V0RmllbGRDYWwuZ2V0KGYpOyAgICAKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgCisgICAgcHVibGljIERhdGUgZ2VuZXJhdGVEYXRlKCkgeworICAgICAgICBkb3VibGUgYSA9IHJhbi5uZXh0RG91YmxlKCk7CisgICAgICAgIC8vIE5vdyAnYScgcmFuZ2VzIGZyb20gMC4uMTsgc2NhbGUgaXQgdG8gcmFuZ2UgZnJvbSAwIHRvIDgwMDAgeWVhcnMKKyAgICAgICAgYSAqPSA4MDAwOworICAgICAgICAvLyBSYW5nZSBmcm9tICg0MDAwLTE5NzApIEJDIHRvICg4MDAwLTE5NzApIEFECisgICAgICAgIGEgLT0gNDAwMDsKKyAgICAgICAgLy8gTm93IHNjYWxlIHVwIHRvIG1zCisgICAgICAgIGEgKj0gMzY1LjI1ICogMjQgKiA2MCAqIDYwICogMTAwMDsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKChsb25nKWEpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZjRkOTIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0VGVzdC5qYXZhCkBAIC0wLDAgKzEsMjc5MyBAQAorIC8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBEYXRlRm9ybWF0VGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZHRmbXR0c3QuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEYXRlRm9ybWF0VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLy8gVGVzdCB3cml0dGVuIGJ5IFdhbGx5IFdlZGVsIGFuZCBlbWFpbGVkIHRvIG1lLgorICAgIHB1YmxpYyB2b2lkIFRlc3RXYWxseVdlZGVsKCkgeworICAgICAgICAvKgorICAgICAgICAgKiBJbnN0YW50aWF0ZSBhIFRpbWVab25lIHNvIHdlIGNhbiBnZXQgdGhlIGlkcy4KKyAgICAgICAgICovCisgICAgICAgIC8vVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoNywgIiIpOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgIC8qCisgICAgICAgICAqIENvbXB1dGF0aW9uYWwgdmFyaWFibGVzLgorICAgICAgICAgKi8KKyAgICAgICAgaW50IG9mZnNldCwgaG91cnMsIG1pbnV0ZXM7CisgICAgICAgIC8qCisgICAgICAgICAqIEluc3RhbnRpYXRlIGEgU2ltcGxlRGF0ZUZvcm1hdCBzZXQgdXAgdG8gcHJvZHVjZSBhIGZ1bGwgdGltZQorICAgICAgICAgem9uZSBuYW1lLgorICAgICAgICAgKi8KKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgienp6eiIpOworICAgICAgICAvKgorICAgICAgICAgKiBBIFN0cmluZyBhcnJheSBmb3IgdGhlIHRpbWUgem9uZSBpZHMuCisgICAgICAgICAqLworICAgIAorICAgICAgICBmaW5hbCBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgaW50IGlkc19sZW5ndGggPSBpZHMubGVuZ3RoOyAvL3doZW4gZml4ZWQgdGhlIGJ1ZyBzaG91bGQgY29tbWVudCBpdCBvdXQKKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogSG93IG1hbnkgaWRzIGRvIHdlIGhhdmU/CisgICAgICAgICAqLworICAgICAgICBsb2dsbigiVGltZSBab25lIElEcyBzaXplOiIgKyBpZHNfbGVuZ3RoKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogQ29sdW1uIGhlYWRpbmdzIChzb3J0IG9mKQorICAgICAgICAgKi8KKyAgICAgICAgbG9nbG4oIk9yZGluYWwgSUQgb2Zmc2V0KGg6bSkgbmFtZSIpOworICAgICAgICAvKgorICAgICAgICAgKiBMb29wIHRocm91Z2ggdGhlIHR6cy4KKyAgICAgICAgICovCisgICAgICAgIERhdGUgdG9kYXkgPSBuZXcgRGF0ZSgpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkc19sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbG9nbG4oaSArICIgIiArIGlkc1tpXSk7CisgICAgICAgICAgICBUaW1lWm9uZSB0dHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShpZHNbaV0pOworICAgICAgICAgICAgLy8gb2Zmc2V0ID0gdHR6LmdldFJhd09mZnNldCgpOworICAgICAgICAgICAgY2FsLnNldFRpbWVab25lKHR0eik7CisgICAgICAgICAgICBjYWwuc2V0VGltZSh0b2RheSk7CisgICAgICAgICAgICBvZmZzZXQgPSBjYWwuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSArIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisgICAgICAgICAgICAvLyBsb2dsbihpICsgIiAiICsgaWRzW2ldICsgIiBvZmZzZXQgIiArIG9mZnNldCk7CisgICAgICAgICAgICBTdHJpbmcgc2lnbiA9ICIrIjsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgc2lnbiA9ICItIjsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaG91cnMgPSBvZmZzZXQgLyAzNjAwMDAwOworICAgICAgICAgICAgbWludXRlcyA9IChvZmZzZXQgJSAzNjAwMDAwKSAvIDYwMDAwOworICAgICAgICAgICAgU3RyaW5nIGRzdE9mZnNldCA9IHNpZ24gKyAoaG91cnMgPCAxMCA/ICIwIiA6ICIiKSArIGhvdXJzCisgICAgICAgICAgICAgICAgICAgICsgIjoiICsgKG1pbnV0ZXMgPCAxMCA/ICIwIiA6ICIiKSArIG1pbnV0ZXM7IAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEluc3RhbnRpYXRlIGEgZGF0ZSBzbyB3ZSBjYW4gZGlzcGxheSB0aGUgdGltZSB6b25lIG5hbWUuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHNkZi5zZXRUaW1lWm9uZSh0dHopOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEZvcm1hdCB0aGUgb3V0cHV0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZm10T2Zmc2V0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZtdE9mZnNldCA9IHNkZi5mb3JtYXQodG9kYXksIGZtdE9mZnNldCwgcG9zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbG9nbG4oIkV4Y2VwdGlvbjoiICsgZSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBVbmljb2RlU3RyaW5nIGZtdE9mZnNldCA9IHR6Uy50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGZtdERzdE9mZnNldCA9IG51bGw7CisgICAgICAgICAgICBpZiAoZm10T2Zmc2V0LnRvU3RyaW5nKCkuc3RhcnRzV2l0aCgiR01UIikpIHsKKyAgICAgICAgICAgICAgICAvL2ZtdERzdE9mZnNldCA9IGZtdE9mZnNldC5zdWJzdHJpbmcoMyk7CisgICAgICAgICAgICAgICAgZm10RHN0T2Zmc2V0ID0gZm10T2Zmc2V0LnN1YnN0cmluZygzLCBmbXRPZmZzZXQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFNob3cgb3VyIHJlc3VsdC4KKyAgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgYm9vbGVhbiBvayA9IGZtdERzdE9mZnNldCA9PSBudWxsIHx8IGZtdERzdE9mZnNldC5lcXVhbHMoIiIpIHx8IGZtdERzdE9mZnNldC5lcXVhbHMoZHN0T2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgICAgIGxvZ2xuKGkgKyAiICIgKyBpZHNbaV0gKyAiICIgKyBkc3RPZmZzZXQgKyAiICIKKyAgICAgICAgICAgICAgICAgICAgICArIGZtdE9mZnNldCArIChmbXREc3RPZmZzZXQgIT0gbnVsbCA/ICIgb2siIDogIiA/IikpOyAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oaSArICIgIiArIGlkc1tpXSArICIgIiArIGRzdE9mZnNldCArICIgIiArIGZtdE9mZnNldCArICIgKioqIEZBSUwgKioqIik7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFcXVhbHMoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZm10QSA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5GVUxMKTsgCisgICAgICAgIERhdGVGb3JtYXQgZm10QiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5GVUxMKTsgCisgICAgICAgIGlmICghZm10QS5lcXVhbHMoZm10QikpCisgICAgICAgICAgICBlcnJsbigiRkFJTCIpOyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgcGFyc2luZyBvZiAyLWRpZ2l0IHllYXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUd29EaWdpdFllYXJEU1RQYXJzZSgpIHsKKyAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmdWxsRm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQgSEg6bW06c3MuU1NTIHp6eiB5eXl5IEciKTsgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImRkLU1NTS15eSBoOm1tOnNzICdvJydjbG9jaycgYSB6IiwgTG9jYWxlLkVOR0xJU0gpOyAKKyAgICAgICAgU3RyaW5nIHMgPSAiMDMtQXByLTA0IDI6MjA6NDcgbydjbG9jayBBTSBQU1QiOworICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIGxvY2FsZSkgQ29uc3RydWN0IGEgU2ltcGxlRGF0ZURhdGVGb3JtYXQgdXNpbmcKKyAgICAgICAgICogdGhlIGdpdmVuIHBhdHRlcm4sIHRoZSBsb2NhbGUgYW5kIHVzaW5nIHRoZSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAqIFNvIGl0IG5lZWQgdG8gYWRkIHRoZSB0aW1lem9uZSBvZmZzZXQgb24gaG91ciBmaWVsZC4gCisgICAgICAgICAqIHBzLiB0aGUgTWV0aG9kIENhbGVuZGFyLmdldFRpbWUoKSB1c2VkIGJ5IFNpbXBsZURhdGVGb3JtYXQucGFyc2UoKSBhbHdheXMgCisgICAgICAgICAqIHJldHVybiBEYXRlIHZhbHVlIHdpdGggVGltZVpvbmUuZ2V0RGVmYXVsdCgpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICovCisgICAgICAgIAorICAgICAgICBUaW1lWm9uZSBkZWZhdWx0VFogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lIFBTVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgaW50IGRlZmF1bHRPZmZzZXQgPSBkZWZhdWx0VFouZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIGludCBQU1RPZmZzZXQgPSBQU1QuZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIGludCBob3VyID0gMiArIChkZWZhdWx0T2Zmc2V0IC0gUFNUT2Zmc2V0KSAvICg2MCo2MCoxMDAwKTsKKyAgICAgICAgLy8gaG91ciBpcyB0aGUgZXhwZWN0ZWQgaG91ciBvZiBkYXksIGluIHVuaXRzIG9mIHNlY29uZHMKKyAgICAgICAgaG91ciA9ICgoaG91ciA8IDApID8gaG91ciArIDI0IDogaG91cikgKiA2MCo2MDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZShzKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgICAgIC8vRFNUT2Zmc2V0CisgICAgICAgICAgICBob3VyICs9IGRlZmF1bHRUWi5pbkRheWxpZ2h0VGltZShkKSA/IDEgOiAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbihzICsgIiBQPiAiICsgKChEYXRlRm9ybWF0KSBmdWxsRm10KS5mb3JtYXQoZCkpOworICAgICAgICAgICAgLy8gaHIgaXMgdGhlIGFjdHVhbCBob3VyIG9mIGRheSwgaW4gdW5pdHMgb2Ygc2Vjb25kcworICAgICAgICAgICAgLy8gYWRqdXN0IGZvciBEU1QKKyAgICAgICAgICAgIGludCBociA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogNjAqNjAgLQorICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgLyAxMDAwOworICAgICAgICAgICAgaWYgKGhyICE9IGhvdXIpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEhvdXIgKC1EU1QpID0gIiArIGhyIC8gKDYwKjYwLjApKworICAgICAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKyBob3VyIC8gKDYwKjYwLjApKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlBhcnNlIEVycm9yOiIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoYXQgcmV0dXJuZWQgZmllbGQgcG9zaXRpb24gaW5kaWNlcyBhcmUgY29ycmVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgaW50IGksIGosIGV4cDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBWZXJpZnkgZGF0YQorICAgICAgICBpZiAoVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uY29tcGFyZVRvKFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDMsIDcpKSA+PSAwKSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyByb290U3ltcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhuZXcgTG9jYWxlKCIiLCAiIiwgIiIpKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGF0dGVybkNoYXJzIiwgUEFUVEVSTl9DSEFSUywgcm9vdFN5bXMuZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFzc2VydFRydWUoIkRBVEVGT1JNQVRfRklFTERfTkFNRVMiLCBEQVRFRk9STUFUX0ZJRUxEX05BTUVTLmxlbmd0aCA9PSBEYXRlRm9ybWF0LkZJRUxEX0NPVU5UKTsKKyAgICAgICAgaWYoRGF0ZUZvcm1hdC5GSUVMRF9DT1VOVCAhPSBQQVRURVJOX0NIQVJTLmxlbmd0aCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgY29ycmVjdCB2YWx1ZSBmb3IgRGF0ZUZvcm1hdC5GSUVMRF9DT1VOVC4gRXhwZWN0ZWQ6ICAiKyBQQVRURVJOX0NIQVJTLmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENyZWF0ZSB0ZXN0IGZvcm1hdHRlcnMKKyAgICAgICAgZmluYWwgaW50IENPVU5UID0gNDsKKyAgICAgICAgRGF0ZUZvcm1hdFtdIGRhdGVGb3JtYXRzID0gbmV3IERhdGVGb3JtYXRbQ09VTlRdOworICAgICAgICBkYXRlRm9ybWF0c1swXSA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLlVTKTsKKyAgICAgICAgZGF0ZUZvcm1hdHNbMV0gPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIExvY2FsZS5GUkFOQ0UpOworICAgICAgICAvLyBNYWtlIHRoZSBwYXR0ZXJuICJHIHkgTSBkLi4uIgorICAgICAgICBidWYuYXBwZW5kKFBBVFRFUk5fQ0hBUlMpOworICAgICAgICBmb3IgKGo9YnVmLmxlbmd0aCgpLTE7IGo+PTA7IC0taikgYnVmLmluc2VydChqLCAnICcpOworICAgICAgICBkYXRlRm9ybWF0c1syXSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJ1Zi50b1N0cmluZygpLCBMb2NhbGUuVVMpOworICAgICAgICAvLyBNYWtlIHRoZSBwYXR0ZXJuICJHR0dHIHl5eXkgTU1NTSBkZGRkLi4uIgorICAgICAgICBmb3IgKGo9YnVmLmxlbmd0aCgpLTE7IGo+PTA7IGotPTIpIHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPDM7ICsraSkgeworICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoaiwgYnVmLmNoYXJBdChqKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZGF0ZUZvcm1hdHNbM10gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChidWYudG9TdHJpbmcoKSwgTG9jYWxlLlVTKTsKKworICAgICAgICBEYXRlIGF1ZzEzID0gbmV3IERhdGUoKGxvbmcpIDg3MTUwODA1MjUxMy4wKTsKKworICAgICAgICAvLyBFeHBlY3RlZCBvdXRwdXQgZmllbGQgdmFsdWVzIGZvciBhYm92ZSBEYXRlRm9ybWF0cyBvbiBhdWcxMworICAgICAgICAvLyBGaWVsZHMgYXJlIGdpdmVuIGluIG9yZGVyIG9mIERhdGVGb3JtYXQgZmllbGQgbnVtYmVyCisgICAgICAgIGZpbmFsIFN0cmluZyBFWFBFQ1RFRFtdID0geworICAgICAgICAgICAgICIiLCAiMTk5NyIsICJBdWd1c3QiLCAiMTMiLCAiIiwgIiIsICIzNCIsICIxMiIsICIiLAorICAgICAgICAgICAgIldlZG5lc2RheSIsICIiLCAiIiwgIiIsICIiLCAiUE0iLCAiMiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIlBUIiwiIiwiIiwiIiwiIiwKKworICAgICAgICAgICAgIiIsICIxOTk3IiwgImFvXHUwMEZCdCIsICIxMyIsICIiLCAiMTQiLCAiMzQiLCAiIiwgIiIsCisgICAgICAgICAgICAibWVyY3JlZGkiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIkhBUCAoXHUwMEM5VUEpIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsIiIsIiIsIiIsIiIsCisKKyAgICAgICAgICAgICJBRCIsICIxOTk3IiwgIjgiLCAiMTMiLCAiMTQiLCAiMTQiLCAiMzQiLCAiMTIiLCAiNSIsCisgICAgICAgICAgICAiV2VkIiwgIjIyNSIsICIyIiwgIjMzIiwgIjMiLCAiUE0iLCAiMiIsICIyIiwgIlBEVCIsICIxOTk3IiwgIjQiLCAiMTk5NyIsICIyNDUwNjc0IiwgIjUyNDUyNTEzIiwgIi0wNzAwIiwgIlBUIiwiNCIsIjgiLCIzIiwiMyIsCisKKyAgICAgICAgICAgICJBbm5vIERvbWluaSIsICIxOTk3IiwgIkF1Z3VzdCIsICIwMDEzIiwgIjAwMTQiLCAiMDAxNCIsICIwMDM0IiwgIjAwMTIiLCAiNTEzMCIsCisgICAgICAgICAgICAiV2VkbmVzZGF5IiwgIjAyMjUiLCAiMDAwMiIsICIwMDMzIiwgIjAwMDMiLCAiUE0iLCAiMDAwMiIsICIwMDAyIiwgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsICIxOTk3IiwKKyAgICAgICAgICAgICIwMDA0IiwgIjE5OTciLCAiMjQ1MDY3NCIsICI1MjQ1MjUxMyIsICJHTVQtMDc6MDAiLCAiUGFjaWZpYyBUaW1lIiwiV2VkbmVzZGF5IiwiQXVndXN0IiwgIjNyZCBxdWFydGVyIiwgIjNyZCBxdWFydGVyIiwKKyAgICAgICAgfTsKKworICAgICAgICBhc3NlcnRUcnVlKCJkYXRhIHNpemUiLCBFWFBFQ1RFRC5sZW5ndGggPT0gQ09VTlQgKiBEYXRlRm9ybWF0LkZJRUxEX0NPVU5UKTsKKworICAgICAgICBUaW1lWm9uZSBQVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgICAgICAgIGZvciAoaiA9IDAsIGV4cCA9IDA7IGogPCBDT1VOVDsgKytqKSB7CisgICAgICAgICAgLy8gIFN0cmluZyBzdHI7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gZGF0ZUZvcm1hdHNbal07CisgICAgICAgICAgICBkZi5zZXRUaW1lWm9uZShQVCk7CisgICAgICAgICAgICBsb2dsbigiIFBhdHRlcm4gPSAiICsgKChTaW1wbGVEYXRlRm9ybWF0KSBkZikudG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBSZXN1bHQgPSAiICsgZGYuZm9ybWF0KGF1ZzEzKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZSk7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IERhdGVGb3JtYXQuRklFTERfQ09VTlQ7ICsraSwgKytleHApIHsKKyAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKGkpOworICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgZGYuZm9ybWF0KGF1ZzEzLCBidWYsIHBvcyk7ICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZCA9IGJ1Zi5zdWJzdHJpbmcocG9zLmdldEJlZ2luSW5kZXgoKSwgcG9zLmdldEVuZEluZGV4KCkpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiZmllbGQgIyIgKyBpICsgIiAiICsgREFURUZPUk1BVF9GSUVMRF9OQU1FU1tpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNURURbZXhwXSwgZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFRoaXMgTVVTVCBiZSBrZXB0IGluIHN5bmMgd2l0aCBEYXRlRm9ybWF0U3ltYm9scy5wYXR0ZXJuQ2hhcnMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBQQVRURVJOX0NIQVJTID0gIkd5TWRrSG1zU0VERndXYWhLellldWdBWnZjTFFxIjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQSBsaXN0IG9mIHRoZSBuYW1lcyBvZiBhbGwgdGhlIGZpZWxkcyBpbiBEYXRlRm9ybWF0LgorICAgICAqIFRoaXMgTVVTVCBiZSBrZXB0IGluIHN5bmMgd2l0aCBEYXRlRm9ybWF0LgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFURUZPUk1BVF9GSUVMRF9OQU1FU1tdID0geworICAgICAgICAiRVJBX0ZJRUxEIiwKKyAgICAgICAgIllFQVJfRklFTEQiLAorICAgICAgICAiTU9OVEhfRklFTEQiLAorICAgICAgICAiREFURV9GSUVMRCIsCisgICAgICAgICJIT1VSX09GX0RBWTFfRklFTEQiLAorICAgICAgICAiSE9VUl9PRl9EQVkwX0ZJRUxEIiwKKyAgICAgICAgIk1JTlVURV9GSUVMRCIsCisgICAgICAgICJTRUNPTkRfRklFTEQiLAorICAgICAgICAiTUlMTElTRUNPTkRfRklFTEQiLAorICAgICAgICAiREFZX09GX1dFRUtfRklFTEQiLAorICAgICAgICAiREFZX09GX1lFQVJfRklFTEQiLAorICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQiLAorICAgICAgICAiV0VFS19PRl9ZRUFSX0ZJRUxEIiwKKyAgICAgICAgIldFRUtfT0ZfTU9OVEhfRklFTEQiLAorICAgICAgICAiQU1fUE1fRklFTEQiLAorICAgICAgICAiSE9VUjFfRklFTEQiLAorICAgICAgICAiSE9VUjBfRklFTEQiLAorICAgICAgICAiVElNRVpPTkVfRklFTEQiLAorICAgICAgICAiWUVBUl9XT1lfRklFTEQiLAorICAgICAgICAiRE9XX0xPQ0FMX0ZJRUxEIiwKKyAgICAgICAgIkVYVEVOREVEX1lFQVJfRklFTEQiLAorICAgICAgICAiSlVMSUFOX0RBWV9GSUVMRCIsCisgICAgICAgICJNSUxMSVNFQ09ORFNfSU5fREFZX0ZJRUxEIiwKKyAgICAgICAgIlRJTUVaT05FX1JGQ19GSUVMRCIsCisgICAgICAgICJHRU5FUklDX1RJTUVaT05FX0ZJRUxEIiwKKyAgICAgICAgIlNUQU5EX0FMT05FX0RBWV9GSUVMRCIsCisgICAgICAgICJTVEFORF9BTE9ORV9NT05USF9GSUVMRCIsCisgICAgICAgICJRVUFSVEVSX0ZJRUxEIiwKKyAgICAgICAgIlNUQU5EX0FMT05FX1FVQVJURVJfRklFTEQiLAorICAgIH07CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhbCBwYXJzZS9mb3JtYXQgdGVzdHMuICBBZGQgdGVzdCBjYXNlcyBhcyBuZWVkZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdlbmVyYWwoKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW06c3MuU1NTIiwKKworICAgICAgICAgICAgLy8gTWlsbGlzZWNvbmRzIGFyZSBsZWZ0LWp1c3RpZmllZCwgc2luY2UgdGhleSBmb3JtYXQgYXMgZnJhY3Rpb25zIG9mIGEgc2Vjb25kCisgICAgICAgICAgICAvLyBCb3RoIGZvcm1hdCBhbmQgcGFyc2Ugc2hvdWxkIHJvdW5kIEhBTEZfVVAKKyAgICAgICAgICAgICJ5L00vZCBIOm1tOnNzLlMiLCAiZnAiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjYiLCAiMjAwNCAwMyAxMCAxNjozNjozMS42MDAiLAorICAgICAgICAgICAgInkvTS9kIEg6bW06c3MuU1MiLCAiZnAiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU3IiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTcwIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tOnNzLlNTUyIsICJGIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS41NjciLAorICAgICAgICAgICAgInkvTS9kIEg6bW06c3MuU1NTUyIsICJwZiIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3OSIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2OCIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY4MCIsCisgICAgICAgIH07CisgICAgICAgIGV4cGVjdChEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZW5lcmljVGltZSgpIHsKKworCisgICAgICAgIC8vIGFueSB6b25lIHBhdHRlcm4gc2hvdWxkIHBhcnNlIGFueSB6b25lCisgICAgICAgIExvY2FsZSBlbiA9IG5ldyBMb2NhbGUoImVuIiwgIiIsICIiKTsKKyAgICAgICAgU3RyaW5nIFpEQVRBW10gPSB7CisgICAgICAgICAgICAieXl5eSBNTSBkZCBISDptbSB6enoiLAorICAgICAgICAgICAgLy8gcm91bmQgdHJpcAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6eiIsICJGIiwgIjIwMDQgMDEgMDEgMDE6MDAgUFNUIiwgIjIwMDQvMS8xIDE6MDAgUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJGIiwgIjIwMDQgMDEgMDEgMDE6MDAgUFNUIiwgIjIwMDQvMS8xIDE6MDAgUFNUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAiRiIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2dnYiLCAiRiIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBUIiwKKyAgICAgICAgICAgIC8vIG5vbi1nZW5lcmljIHRpbWV6b25lIHN0cmluZyBpbmZsdWVuY2VzIGRzdCBvZmZzZXQgZXZlbiBpZiB3cm9uZyBmb3IgZGF0ZS90aW1lCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQRFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQRFQiLCAiMjAwNC8xLzEgMDowMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzEvMSAxOjAwIFBEVCIsICIyMDA0IDAxIDAxIDAxOjAwIFBEVCIsICIyMDA0LzEvMSAwOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC83LzEgMTowMCBQU1QiLCAiMjAwNCAwNyAwMSAwMjowMCBQRFQiLCAiMjAwNC83LzEgMjowMCBQRFQiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBTVCIsICIyMDA0IDA3IDAxIDAyOjAwIFBEVCIsICIyMDA0LzcvMSAyOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAvLyBnZW5lcmljIHRpbWV6b25lIGdlbmVyYXRlcyBkc3Qgb2Zmc2V0IGFwcHJvcHJpYXRlIGZvciBsb2NhbCB0aW1lCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQVCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBTVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2dnZ2IiwgInBmIiwgIjIwMDQvMS8xIDE6MDAgUFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvNy8xIDE6MDAgUFQiLCAiMjAwNCAwNyAwMSAwMTowMCBQRFQiLCAiMjAwNC83LzEgMTowMCBQRFQiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBUIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIDE6MDAgUGFjaWZpYyBUaW1lIiwKKyAgICAgICAgICAgIC8vIGRheWxpZ2h0IHNhdmluZ3MgdGltZSB0cmFuc2l0aW9uIGVkZ2UgY2FzZXMuCisgICAgICAgICAgICAvLyB0aW1lIHRvIHBhcnNlIGRvZXMgbm90IHJlYWxseSBleGlzdCwgUFQgaW50ZXJwcmV0ZWQgYXMgZWFybGllciB0aW1lCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNS80LzMgMjozMCBQVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBTVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNS80LzMgMjozMCBQU1QiLCAiMjAwNSAwNCAwMyAwMzozMCBQRFQiLCAiMjAwNS80LzMgMzozMCBQRFQiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUERUIiwgIjIwMDUgMDQgMDMgMDE6MzAgUFNUIiwgIjIwMDUvNC8zIDE6MzAgUFNUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHYiLCAicGYiLCAiMjAwNS80LzMgMjozMCBQVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHYiLCAicGYiLCAiMjAwNS80LzMgMjozMCBQU1QiLCAiMjAwNSAwNCAwMyAwMzozMCBQRFQiLCAiMjAwNS80LzMgMzozMCBQVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUERUIiwgIjIwMDUgMDQgMDMgMDE6MzAgUFNUIiwgIjIwMDUvNC8zIDE6MzAgUFQiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0iLCAicGYiLCAiMjAwNS80LzMgMjozMCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIiwKKyAgICAgICAgICAgIC8vIHRpbWUgdG8gcGFyc2UgaXMgYW1iaWd1b3VzLCBQVCBpbnRlcnByZXRlZCBhcyBlYXJsaWVyIHRpbWUgKD8pCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNS80LzMgMTozMCBQVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBTVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDUvNC8zIDE6MzAgUFQiLCAiMjAwNSAwNCAwMyAgMDE6MzAgUFNUIiwgIjIwMDUvNC8zIDE6MzAgUFQiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0iLCAicGYiLCAiMjAwNS80LzMgMTozMCBQVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUFQiLCAiMjAwNCAxMCAzMSAwMTozMCBQU1QiLCAiMjAwNC8xMC8zMSAxOjMwIFBTVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvMTAvMzEgMTozMCBQU1QiLCAiMjAwNCAxMCAzMSAwMTozMCBQU1QiLCAiMjAwNC8xMC8zMSAxOjMwIFBTVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvMTAvMzEgMTozMCBQRFQiLCAiMjAwNCAxMCAzMSAwMTozMCBQRFQiLCAiMjAwNC8xMC8zMSAxOjMwIFBEVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUFQiLCAiMjAwNCAxMCAzMSAwMTozMCBQU1QiLCAiMjAwNC8xMC8zMSAxOjMwIFBUIiwKKyAgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDQvMTAvMzEgMTozMCBQU1QiLCAiMjAwNCAxMCAzMSAwMTozMCBQU1QiLCAiMjAwNC8xMC8zMSAxOjMwIFBUIiwKKyAgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDQvMTAvMzEgMTozMCBQRFQiLCAiMjAwNCAxMCAzMSAwMTozMCBQRFQiLCAiMjAwNC8xMC8zMSAxOjMwIFBUIiwKKyAgICAgICAgICAgICAieS9NL2QgSDptbSIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAiLCAiMjAwNCAxMCAzMSAwMTozMCBQU1QiLCAiMjAwNC8xMC8zMSAxOjMwIiwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICAieS9NL2QgSDptbSB2dnZ2IiwgInBmIiwgIjIwMDQvMTAvMzEgMTozMCBCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLCAiMjAwNCAxMCAzMCAyMTozMCBQRFQiLCAiMjAwNC8xMC8zMSAxOjMwIEJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5hKSIsCisgICAgICAgIH07CisgICAgICAgIGV4cGVjdChaREFUQSwgZW4pOworCisgICAgICAgIGxvZ2xuKCJjcm9zcyBmb3JtYXQvcGFyc2UgdGVzdHMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJhc2VwYXQgPSAieXkvTU0vZGQgSDptbSAiOworICAgICAgICBmaW5hbCBTaW1wbGVEYXRlRm9ybWF0W10gZm9ybWF0cyA9IHsgCisgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdChiYXNlcGF0ICsgInZ2diIsIGVuKSwKKyAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJhc2VwYXQgKyAidnZ2diIsIGVuKSwKKyAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJhc2VwYXQgKyAienp6IiwgZW4pLAorICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoYmFzZXBhdCArICJ6enp6IiwgZW4pCisgICAgICAgIH07CisKKyAgICAgICAgZmluYWwgU2ltcGxlRGF0ZUZvcm1hdCB1bml2ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXkgTU0gZGQgSEg6bW0genp6IiwgZW4pOworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0aW1lcyA9IHsgIjIwMDQgMDEgMDIgMDM6MDQgUFNUIiwgIjIwMDQgMDcgMDggMDk6MTAgUERUIiB9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRpbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IHVuaXYucGFyc2UodGltZXNbaV0pOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0aW1lOiAiICsgZCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXN0ID0gZm9ybWF0c1tqXS5mb3JtYXQoZCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0OiAnIiArIHRlc3QgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGZvcm1hdHMubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSB0ID0gZm9ybWF0c1trXS5wYXJzZSh0ZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWQuZXF1YWxzKHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3JtYXQgIiArIGsgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbmNvcnJlY3RseSBwYXJzZWQgb3V0cHV0IG9mIGZvcm1hdCAiICsgaiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgiICsgdGVzdCArICIpLCByZXR1cm5lZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCArICIgaW5zdGVhZCBvZiAiICsgZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImZvcm1hdCAiICsgayArICIgcGFyc2VkIG9rIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZm9ybWF0ICIgKyBrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBjb3VsZCBub3QgcGFyc2Ugb3V0cHV0IG9mIGZvcm1hdCAiICsgaiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKCIgKyB0ZXN0ICsgIikiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInVuaXYgY291bGQgbm90IHBhcnNlOiAiICsgdGltZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VuZXJpY1RpbWVab25lT3JkZXIoKSB7CisgICAgICAgIC8vIGdlbmVyaWMgdGltZXMgc2hvdWxkIHBhcnNlIHRoZSBzYW1lIG5vIG1hdHRlciB3aGF0IHRoZSBwbGFjZW1lbnQgb2YgdGhlIHRpbWUgem9uZSBzdHJpbmcKKyAgICAgICAgLy8gc2hvdWxkIHdvcmsgZm9yIHN0YW5kYXJkIGFuZCBkYXlsaWdodCB0aW1lcworCisgICAgICAgIFN0cmluZyBYREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW0genp6IiwKKyAgICAgICAgICAgIC8vIHN0YW5kYXJkIHRpbWUsIGV4cGxpY2l0IGRheWxpZ2h0L3N0YW5kYXJkCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQVCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBTVCIsCisgICAgICAgICAgICAieS9NL2Qgenp6IEg6bW0iLCAicGYiLCAiMjAwNC8xLzEgUFQgMTowMCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSBQU1QgMTowMCIsCisgICAgICAgICAgICAienp6IHkvTS9kIEg6bW0iLCAicGYiLCAiUFQgMjAwNC8xLzEgMTowMCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICJQU1QgMjAwNC8xLzEgMTowMCIsCisKKyAgICAgICAgICAgIC8vIHN0YW5kYXJkIHRpbWUsIGdlbmVyaWMKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQVCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAieS9NL2QgdnZ2diBIOm1tIiwgInBmIiwgIjIwMDQvMS8xIFBUIDE6MDAiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgUGFjaWZpYyBUaW1lIDE6MDAiLAorICAgICAgICAgICAgInZ2dnYgeS9NL2QgSDptbSIsICJwZiIsICJQVCAyMDA0LzEvMSAxOjAwIiwgIjIwMDQgMDEgMDEgMDE6MDAgUFNUIiwgIlBhY2lmaWMgVGltZSAyMDA0LzEvMSAxOjAwIiwKKworICAgICAgICAgICAgLy8gZGF5bGlnaHQgdGltZSwgZXhwbGljaXQgZGF5bGlnaHQvc3RhbmRhcmQKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBUIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIDE6MDAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCB6enogSDptbSIsICJwZiIsICIyMDA0LzcvMSBQVCAxOjAwIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIFBEVCAxOjAwIiwKKyAgICAgICAgICAgICJ6enogeS9NL2QgSDptbSIsICJwZiIsICJQVCAyMDA0LzcvMSAxOjAwIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIlBEVCAyMDA0LzcvMSAxOjAwIiwKKworICAgICAgICAgICAgLy8gZGF5bGlnaHQgdGltZSwgZ2VuZXJpYworICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBUIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIDE6MDAgUGFjaWZpYyBUaW1lIiwKKyAgICAgICAgICAgICJ5L00vZCB2dnZ2IEg6bW0iLCAicGYiLCAiMjAwNC83LzEgUFQgMTowMCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICIyMDA0LzcvMSBQYWNpZmljIFRpbWUgMTowMCIsCisgICAgICAgICAgICAidnZ2diB5L00vZCBIOm1tIiwgInBmIiwgIlBUIDIwMDQvNy8xIDE6MDAiLCAiMjAwNCAwNyAwMSAwMTowMCBQRFQiLCAiUGFjaWZpYyBUaW1lIDIwMDQvNy8xIDE6MDAiLAorICAgICAgICB9OworICAgICAgICBMb2NhbGUgZW4gPSBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIik7CisgICAgICAgIGV4cGVjdChYREFUQSwgZW4pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lWm9uZURpc3BsYXlOYW1lKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgbG9uZyBqdWx5RGF0ZSA9IG5ldyBEYXRlKDIwMDQsIDYsIDE1KS5nZXRUaW1lKCk7CisgICAgICAgIGxvbmcgamFudWFyeURhdGUgPSBuZXcgRGF0ZSgyMDA0LCAwLCAxNSkuZ2V0VGltZSgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmFsbGJhY2tUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nW10gaW5mbyA9IGZhbGxiYWNrVGVzdHNbaV07CisgICAgICAgICAgICBsb2dsbihpbmZvWzBdICsgIjsiICsgaW5mb1sxXSArICI7IiArIGluZm9bMl0gKyAiOyIgKyBpbmZvWzNdKTsKKworICAgICAgICAgICAgVUxvY2FsZSBsID0gbmV3IFVMb2NhbGUoaW5mb1swXSk7CisgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKGluZm9bMV0pOworICAgICAgICAgICAgbG9uZyB0aW1lID0gaW5mb1syXS5lcXVhbHMoIjIwMDQtMDctMTVUMDA6MDA6MDBaIikgCisgICAgICAgICAgICAgICAgPyBqdWx5RGF0ZSAKKyAgICAgICAgICAgICAgICA6IGphbnVhcnlEYXRlOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChpbmZvWzNdLCBsKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXModGltZSk7CisgICAgICAgICAgICBjYWwuc2V0VGltZVpvbmUodHopOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZtdC5mb3JtYXQoY2FsKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhpbmZvWzRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKGluZm9bMF0gKyAiOyIgKyBpbmZvWzFdICsgIjsiICsgaW5mb1syXSArICI7IiArIGluZm9bM10gKyAiIGV4cGVjdGVkOiAnIiArIAorICAgICAgICAgICAgICAgICAgICAgIGluZm9bNF0gKyAiJyBidXQgZ290OiAnIiArIHJlc3VsdCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIGZhbGxiYWNrVGVzdHMgID0geworICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJQU1QiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJQRFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiUFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlBhY2lmaWMgVGltZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJlbl9HQiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMTI6MDA6MDBaIiwgInoiLCAiUFNUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5hKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5hKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJDdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkN1YmEiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoQXVzdHJhbGlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBdXN0cmFsaWEpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoQXVzdHJhbGlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBdXN0cmFsaWEpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR3JlZW53aWNoIE1lYW4gVGltZSIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAxOjAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiQlNUIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJCcml0aXNoIFN1bW1lciBUaW1lIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgLy8gaWN1IGVuLnR4dCBoYXMgZXhlbXBsYXIgY2l0eSBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlVuaXRlZCBLaW5nZG9tIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJVbml0ZWQgS2luZ2RvbSIsICJFdXJvcGUvTG9uZG9uIiB9LAorCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisKKyAgICAgICAgLy8gSkIjNTE1MAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswNTozMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswNTozMCIsICIrMDU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJJbmRpYSIsICJBc2lhL0NhbGN1dHRhIiB9LAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiSW5kaWEiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKyAgICAgICAgCisgICAgICAgIC8vID09PT09PT09PT0KKworICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkxvcyBBbmdlbGVzIChWZXJlaW5pZ3RlIFN0YWF0ZW4pIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJMb3MgQW5nZWxlcyAoVmVyZWluaWd0ZSBTdGFhdGVuKSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQnVlbm9zIEFpcmVzIChBcmdlbnRpbmllbikiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5pZW4pIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQnVlbm9zIEFpcmVzIChBcmdlbnRpbmllbikiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiQnVlbm9zIEFpcmVzIChBcmdlbnRpbmllbikiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJLdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkt1YmEiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIC8vIGFkZGVkIHRvIHRlc3QgcHJvcGVyIGZhbGxiYWNrIG9mIGNvdW50cnkgbmFtZQorICAgICAgICB7ICJkZV9DSCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkt1YmEiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgImRlX0NIIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiS3ViYSIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKworICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiU3lkbmV5IChBdXN0cmFsaWVuKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBdXN0cmFsaWVuKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKEF1c3RyYWxpZW4pIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJTeWRuZXkgKEF1c3RyYWxpZW4pIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJWZXJlaW5pZ3RlcyBLXHUwMGY2bmlncmVpY2giLCAiRXVyb3BlL0xvbmRvbiIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlZlcmVpbmlndGVzIEtcdTAwZjZuaWdyZWljaCIsICJFdXJvcGUvTG9uZG9uIiB9LAorCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisKKyAgICAgICAgLy8gSkIjNTE1MAorICAgICAgICB7ICJkZSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswNTozMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswNTozMCIsICIrMDU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJJbmRpZW4iLCAiQXNpYS9DYWxjdXR0YSIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkluZGllbiIsICJBc2lhL0NhbGN1dHRhIiB9LAorCisgICAgICAgIC8vID09PT09PT09PT0KKworICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDgwMCIsICItODowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlBTVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHU1OTJhXHU1ZTczXHU2ZDBiXHU2ODA3XHU1MWM2XHU2NWY2XHU5NWY0IiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiUERUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTU5MmFcdTVlNzNcdTZkMGJcdTU5MGZcdTRlZTRcdTY1ZjZcdTk1ZjQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAvLyBpY3UgemgudHh0IGhhcyBleGVtcGxhciBjaXR5IGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHU2ZDFiXHU2NzQ5XHU3N2Y2IChcdTdmOGVcdTU2ZmQpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTZkMWJcdTY3NDlcdTc3ZjYgKFx1N2Y4ZVx1NTZmZCkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKworICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgLy8gaWN1IHpoLnR4dCBkb2VzIG5vdCBoYXZlIGluZm8gZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NUUwM1x1NUI5Q1x1OEJGQVx1NjVBRlx1ODI3RVx1NTIyOVx1NjVBRiAoXHU5NjNmXHU2ODM5XHU1ZWY3KSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU1RTAzXHU1QjlDXHU4QkZBXHU2NUFGXHU4MjdFXHU1MjI5XHU2NUFGIChcdTk2M2ZcdTY4MzlcdTVlZjcpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgLy8gaWN1IHpoLnR4dCBkb2VzIG5vdCBoYXZlIGluZm8gZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHU1RTAzXHU1QjlDXHU4QkZBXHU2NUFGXHU4MjdFXHU1MjI5XHU2NUFGIChcdTk2M2ZcdTY4MzlcdTVlZjcpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1NUUwM1x1NUI5Q1x1OEJGQVx1NjVBRlx1ODI3RVx1NTIyOVx1NjVBRiAoXHU5NjNmXHU2ODM5XHU1ZWY3KSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NTNlNFx1NWRmNCIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTUzZTRcdTVkZjQiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAvLyBpY3UgemgudHh0IGRvZXMgbm90IGhhdmUgaW5mbyBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NjA4OVx1NUMzQyAoXHU2ZmIzXHU1OTI3XHU1MjI5XHU0ZTlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJ6aCIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU2MDg5XHU1QzNDIChcdTZmYjNcdTU5MjdcdTUyMjlcdTRlOWEpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NjA4OVx1NUMzQyAoXHU2ZmIzXHU1OTI3XHU1MjI5XHU0ZTlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJ6aCIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU2MDg5XHU1QzNDIChcdTZmYjNcdTU5MjdcdTUyMjlcdTRlOWEpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTgyZjFcdTU2ZmQiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1ODJmMVx1NTZmZCIsICJFdXJvcGUvTG9uZG9uIiB9LAorCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorCisgICAgICAgIC8vIEpCIzUxNTAKKyAgICAgICAgeyAiemgiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJ6aCIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgInpoIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJ6aCIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgInpoIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswNTMwIiwgIiswNTozMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJ6aCIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHU1MzcwXHU1RUE2IiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisgICAgICAgIHsgInpoIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTUzNzBcdTVFQTYiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKworICAgICAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2ZTpcdTA5NjZcdTA5NjYiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTZlOlx1MDk2Nlx1MDk2NiIsICItODowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5NmU6XHUwOTY2XHUwOTY2IiwgIi04OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTZkOlx1MDk2Nlx1MDk2NiIsICItNzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5NmQ6XHUwOTY2XHUwOTY2IiwgIi03OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2ZDpcdTA5NjZcdTA5NjYiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJMb3MgQW5nZWxlcyAoXHUwOTM4XHUwOTAyXHUwOTJmXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTI0IFx1MDkzMFx1MDkzZVx1MDkxY1x1MDk0ZFx1MDkyZiBcdTA5MDVcdTA5MmVcdTA5MzBcdTA5M2ZcdTA5MTVcdTA5M2UpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJMb3MgQW5nZWxlcyAoXHUwOTM4XHUwOTAyXHUwOTJmXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTI0IFx1MDkzMFx1MDkzZVx1MDkxY1x1MDk0ZFx1MDkyZiBcdTA5MDVcdTA5MmVcdTA5MzBcdTA5M2ZcdTA5MTVcdTA5M2UpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKFx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0N1x1MDkyOFx1MDk0ZFx1MDkxZlx1MDk0MFx1MDkyOFx1MDkzZSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoXHUwOTA1XHUwOTMwXHUwOTRkXHUwOTFjXHUwOTQ3XHUwOTI4XHUwOTRkXHUwOTFmXHUwOTQwXHUwOTI4XHUwOTNlKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoXHUwOTA1XHUwOTMwXHUwOTRkXHUwOTFjXHUwOTQ3XHUwOTI4XHUwOTRkXHUwOTFmXHUwOTQwXHUwOTI4XHUwOTNlKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKFx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0N1x1MDkyOFx1MDk0ZFx1MDkxZlx1MDk0MFx1MDkyOFx1MDkzZSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTZiOlx1MDk2Nlx1MDk2NiIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTZiOlx1MDk2Nlx1MDk2NiIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTZiOlx1MDk2Nlx1MDk2NiIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTZhOlx1MDk2Nlx1MDk2NiIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTZhOlx1MDk2Nlx1MDk2NiIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTZhOlx1MDk2Nlx1MDk2NiIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA5MTVcdTA5NGRcdTA5MmZcdTA5NDJcdTA5MmNcdTA5M2UiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwOTE1XHUwOTRkXHUwOTJmXHUwOTQyXHUwOTJjXHUwOTNlIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY3XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrXHUwOTY3XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrXHUwOTY3XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY3XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrXHUwOTY3XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrXHUwOTY3XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKFx1MDkxMVx1MDkzOFx1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMFx1MDk0N1x1MDkzMlx1MDkzZlx1MDkyZlx1MDkzZSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoXHUwOTExXHUwOTM4XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwXHUwOTQ3XHUwOTMyXHUwOTNmXHUwOTJmXHUwOTNlKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY3XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrXHUwOTY3XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrXHUwOTY3XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY3XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrXHUwOTY3XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrXHUwOTY3XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKFx1MDkxMVx1MDkzOFx1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMFx1MDk0N1x1MDkzMlx1MDkzZlx1MDkyZlx1MDkzZSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoXHUwOTExXHUwOTM4XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwXHUwOTQ3XHUwOTMyXHUwOTNmXHUwOTJmXHUwOTNlKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCtcdTA5NjZcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIiswOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UK1x1MDk2Nlx1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrXHUwOTY2XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UK1x1MDk2Nlx1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrXHUwOTY2XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCtcdTA5NjZcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwOTJDXHUwOTREXHUwOTMwXHUwOTNGXHUwOTI0XHUwOTI4IiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA5MkNcdTA5NERcdTA5MzBcdTA5M0ZcdTA5MjRcdTA5MjgiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKworICAgICAgICB7ICJoaSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY2XHUwOTZCOlx1MDk2OVx1MDk2NiIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIklTVCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDkyRFx1MDkzRVx1MDkzMFx1MDkyNFx1MDk0MFx1MDkyRiBcdTA5MzhcdTA5MkVcdTA5MkYiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCtcdTA5NjZcdTA5NkI6XHUwOTY5XHUwOTY2IiwgIis1OjMwIiB9LAorICAgICAgICB7ICJoaSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiSVNUIiwgIiswNTozMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDkyRFx1MDkzRVx1MDkzMFx1MDkyNFx1MDk0MFx1MDkyRiBcdTA5MzhcdTA5MkVcdTA5MkYiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA5MkRcdTA5M0VcdTA5MzBcdTA5MjQiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MDkyRFx1MDkzRVx1MDkzMFx1MDkyNCIsICJBc2lhL0NhbGN1dHRhIiB9LAorCisgICAgICAgIC8vID09PT09PT09PT0KKworICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0RcdTA0NDNcdTA0MzhcdTA0NDctMDgwMCIsICItODowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlBTVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDIyXHUwNDM4XHUwNDQ1XHUwNDNFXHUwNDNFXHUwNDNBXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzMCBcdTA0MzdcdTA0M0VcdTA0M0RcdTA0MzAiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJQRFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQyMlx1MDQzOFx1MDQ0NVx1MDQzRVx1MDQzRVx1MDQzQVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0M0JcdTA0NEZcdTA0NDJcdTA0M0RcdTA0MzAgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDMwIFx1MDQzN1x1MDQzRVx1MDQzRFx1MDQzMCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgIC8vIGljdSBiZy50eHQgaGFzIGV4ZW1wbGFyIGNpdHkgZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MWJcdTA0M2VcdTA0NDEgXHUwNDEwXHUwNDNkXHUwNDM2XHUwNDM1XHUwNDNiXHUwNDM4XHUwNDQxIChcdTA0MjFcdTA0MTBcdTA0MjkpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MWJcdTA0M2VcdTA0NDEgXHUwNDEwXHUwNDNkXHUwNDM2XHUwNDM1XHUwNDNiXHUwNDM4XHUwNDQxIChcdTA0MjFcdTA0MTBcdTA0MjkpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MTFcdTA0NDNcdTA0MzVcdTA0M0RcdTA0M0VcdTA0NDEgXHUwNDEwXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDQxIChcdTA0MTBcdTA0NDBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzhcdTA0M2RcdTA0MzApIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MTFcdTA0NDNcdTA0MzVcdTA0M0RcdTA0M0VcdTA0NDEgXHUwNDEwXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDQxIChcdTA0MTBcdTA0NDBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzhcdTA0M2RcdTA0MzApIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgLy8gaWN1IGJnLnR4dCBkb2VzIG5vdCBoYXZlIGluZm8gZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwNDExXHUwNDQzXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDQxIFx1MDQxMFx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQ0MSAoXHUwNDEwXHUwNDQwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNkXHUwNDMwKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MTFcdTA0NDNcdTA0MzVcdTA0M0RcdTA0M0VcdTA0NDEgXHUwNDEwXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDQxIChcdTA0MTBcdTA0NDBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzhcdTA0M2RcdTA0MzApIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwNDFhXHUwNDQzXHUwNDMxXHUwNDMwIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MDQxYVx1MDQ0M1x1MDQzMVx1MDQzMCIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKworICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwNDIxXHUwNDM4XHUwNDM0XHUwNDNEXHUwNDM4IChcdTA0MTBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NGYpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImJnIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MjFcdTA0MzhcdTA0MzRcdTA0M0RcdTA0MzggKFx1MDQxMFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0ZikiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwNDIxXHUwNDM4XHUwNDM0XHUwNDNEXHUwNDM4IChcdTA0MTBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NGYpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImJnIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MjFcdTA0MzhcdTA0MzRcdTA0M0RcdTA0MzggKFx1MDQxMFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0ZikiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0RcdTA0NDNcdTA0MzhcdTA0NDcrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NyswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NyswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0RcdTA0NDNcdTA0MzhcdTA0NDcrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQxZVx1MDQzMVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzNVx1MDQzZFx1MDQzZSBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0M2JcdTA0NDFcdTA0NDJcdTA0MzJcdTA0M2UiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MDQxZVx1MDQzMVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzNVx1MDQzZFx1MDQzZSBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0M2JcdTA0NDFcdTA0NDJcdTA0MzJcdTA0M2UiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKworICAgICAgICAvLyBKQiM1MTUwCisgICAgICAgIHsgImJnIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NyswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJiZyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImJnIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDcrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJiZyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImJnIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDcrMDUzMCIsICIrMDU6MzAiIH0sCisgICAgICAgIHsgImJnIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDcrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQxOFx1MDQzRFx1MDQzNFx1MDQzOFx1MDQ0RiIsICJBc2lhL0NhbGN1dHRhIiB9LAorICAgICAgICB7ICJiZyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDE4XHUwNDNEXHUwNDM0XHUwNDM4XHUwNDRGIiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisKKyAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJQU1QiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1NTkyYVx1NWU3M1x1NmQwYlx1NmExOVx1NmU5Nlx1NjY0MiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlBEVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHU1OTJhXHU1ZTczXHU2ZDBiXHU1OTBmXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgLy8gaWN1IGphLnR4dCBoYXMgZXhlbXBsYXIgY2l0eSBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBlZFx1MzBiNVx1MzBmM1x1MzBiY1x1MzBlYlx1MzBiOSAoXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCXHU1NDA4XHU4ODQ2XHU1NkZEKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMGVkXHUzMGI1XHUzMGYzXHUzMGJjXHUzMGViXHUzMGI5IChcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUJcdTU0MDhcdTg4NDZcdTU2RkQpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSBqYS50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUIvXHUzMEQ2XHUzMEE4XHUzMENFXHUzMEI5XHUzMEEyXHUzMEE0XHUzMEVDXHUzMEI5IChcdTMwYTJcdTMwZWJcdTMwYmNcdTMwZjNcdTMwYzFcdTMwZjMpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUIvXHUzMEQ2XHUzMEE4XHUzMENFXHUzMEI5XHUzMEEyXHUzMEE0XHUzMEVDXHUzMEI5IChcdTMwYTJcdTMwZWJcdTMwYmNcdTMwZjNcdTMwYzFcdTMwZjMpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgLy8gaWN1IGphLnR4dCBkb2VzIG5vdCBoYXZlIGluZm8gZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCL1x1MzBENlx1MzBBOFx1MzBDRVx1MzBCOVx1MzBBMlx1MzBBNFx1MzBFQ1x1MzBCOSAoXHUzMGEyXHUzMGViXHUzMGJjXHUzMGYzXHUzMGMxXHUzMGYzKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUIvXHUzMEQ2XHUzMEE4XHUzMENFXHUzMEI5XHUzMEEyXHUzMEE0XHUzMEVDXHUzMEI5IChcdTMwYTJcdTMwZWJcdTMwYmNcdTMwZjNcdTMwYzFcdTMwZjMpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMGFkXHUzMGU1XHUzMGZjXHUzMGQwXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MzBhZFx1MzBlNVx1MzBmY1x1MzBkMFx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKworICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgIC8vIGljdSBqYS50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMEFBXHUzMEZDXHUzMEI5XHUzMEM4XHUzMEU5XHUzMEVBXHUzMEEyL1x1MzBCN1x1MzBDOVx1MzBDQlx1MzBGQyAoXHUzMGFhXHUzMGZjXHUzMGI5XHUzMGM4XHUzMGU5XHUzMGVhXHUzMGEyKVx1NjY0Mlx1OTU5MyIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMEFBXHUzMEZDXHUzMEI5XHUzMEM4XHUzMEU5XHUzMEVBXHUzMEEyL1x1MzBCN1x1MzBDOVx1MzBDQlx1MzBGQyAoXHUzMGFhXHUzMGZjXHUzMGI5XHUzMGM4XHUzMGU5XHUzMGVhXHUzMGEyKVx1NjY0Mlx1OTU5MyIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTMwQUFcdTMwRkNcdTMwQjlcdTMwQzhcdTMwRTlcdTMwRUFcdTMwQTIvXHUzMEI3XHUzMEM5XHUzMENCXHUzMEZDIChcdTMwYWFcdTMwZmNcdTMwYjlcdTMwYzhcdTMwZTlcdTMwZWFcdTMwYTIpXHU2NjQyXHU5NTkzIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwQUFcdTMwRkNcdTMwQjlcdTMwQzhcdTMwRTlcdTMwRUFcdTMwQTIvXHUzMEI3XHUzMEM5XHUzMENCXHUzMEZDIChcdTMwYWFcdTMwZmNcdTMwYjlcdTMwYzhcdTMwZTlcdTMwZWFcdTMwYTIpXHU2NjQyXHU5NTkzIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTMwYTRcdTMwYWVcdTMwZWFcdTMwYjlcdTY2NDJcdTk1OTMiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MzBhNFx1MzBhZVx1MzBlYVx1MzBiOVx1NjY0Mlx1OTU5MyIsICJFdXJvcGUvTG9uZG9uIiB9LAorCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorCisgICAgICAgIC8vIEpCIzUxNTAKKyAgICAgICAgeyAiamEiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJqYSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImphIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJqYSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImphIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswNTMwIiwgIiswNTozMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJqYSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMEE0XHUzMEYzXHUzMEM5XHU2NjQyXHU5NTkzIiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisgICAgICAgIHsgImphIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwQTRcdTMwRjNcdTMwQzlcdTY2NDJcdTk1OTMiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKworICAgIC8vID09PT09PT09PT0KKworICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkxvcyBBbmdlbGVzIChVUykiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkxvcyBBbmdlbGVzIChVUykiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKworICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQVIpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFSKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQVIpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoQVIpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQ1UiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiQ1UiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoQVUpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJTeWRuZXkgKEFVKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKEFVKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBVSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDA6MDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDA6MDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDA6MDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMTowMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswMTowMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMTowMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdCIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHQiIsICJFdXJvcGUvTG9uZG9uIiB9LAorCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisKKyAgICAgICAgLy8gSkIjNTE1MAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImFzIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImFzIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJcdTA5QURcdTA5QkUuIFx1MDlCOC4iLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImFzIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA5QURcdTA5QkVcdTA5RjBcdTA5QTRcdTA5QzBcdTA5QUZcdTA5QkMgXHUwOUI4XHUwOUFFXHUwOUFGXHUwOUJDIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImFzIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImFzIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJcdTA5QURcdTA5QkUuIFx1MDlCOC4iLCAiKzA1OjMwIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwOUFEXHUwOUJFXHUwOUYwXHUwOUE0XHUwOUMwXHUwOUFGXHUwOUJDIFx1MDlCOFx1MDlBRVx1MDlBRlx1MDlCQyIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDlBRFx1MDlCRVx1MDlGMFx1MDlBNCIsICJBc2lhL0NhbGN1dHRhIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwOUFEXHUwOUJFXHUwOUYwXHUwOUE0IiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisgICAgICAgIAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhhdCBzdHJpbmdzIHdoaWNoIGNvbnRhaW4gaW5jb21wbGV0ZSBzcGVjaWZpY2F0aW9ucyBhcmUgcGFyc2VkCisgICAgICogY29ycmVjdGx5LiAgSW4gc29tZSBpbnN0YW5jZXMsIHRoaXMgbWVhbnMgbm90IGJlaW5nIHBhcnNlZCBhdCBhbGwsIGFuZAorICAgICAqIHJldHVybmluZyBhbiBhcHByb3ByaWF0ZSBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFydGlhbFBhcnNlOTk0KCkgeworICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCAxIC0gMSwgMTcsIDEwLCAxMSwgNDIpOworICAgICAgICBEYXRlIGRhdGUgPSBudWxsOworICAgICAgICB0cnlQYXQ5OTQoZiwgInl5L01NL2RkIEhIOm1tOnNzIiwgIjk3LzAxLzE3IDEwOjExOjQyIiwgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIHRyeVBhdDk5NChmLCAieXkvTU0vZGQgSEg6bW06c3MiLCAiOTcvMDEvMTcgMTA6IiwgZGF0ZSk7CisgICAgICAgIHRyeVBhdDk5NChmLCAieXkvTU0vZGQgSEg6bW06c3MiLCAiOTcvMDEvMTcgMTAiLCBkYXRlKTsKKyAgICAgICAgdHJ5UGF0OTk0KGYsICJ5eS9NTS9kZCBISDptbTpzcyIsICI5Ny8wMS8xNyAiLCBkYXRlKTsKKyAgICAgICAgdHJ5UGF0OTk0KGYsICJ5eS9NTS9kZCBISDptbTpzcyIsICI5Ny8wMS8xNyIsIGRhdGUpOworICAgIH0KKyAgICAKKyAgICAvLyBpbnRlcm5hbCB0ZXN0IHN1YnJvdXRpbmUsIHVzZWQgYnkgVGVzdFBhcnRpYWxQYXJzZTk5NAorICAgIHB1YmxpYyB2b2lkIHRyeVBhdDk5NChTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdCwgU3RyaW5nIHBhdCwgU3RyaW5nIHN0ciwgRGF0ZSBleHBlY3RlZCkgeworICAgICAgICBEYXRlIE51bGwgPSBudWxsOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIgICBTdHJpbmcgXCIiICsgc3RyICsgIlwiIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3JtYXQuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBmb3JtYXQucGFyc2Uoc3RyKTsgICAgCisgICAgICAgICAgICBTdHJpbmcgZiA9ICgoRGF0ZUZvcm1hdCkgZm9ybWF0KS5mb3JtYXQoZGF0ZSk7CisgICAgICAgICAgICBsb2dsbigiIHBhcnNlKCIgKyBzdHIgKyAiKSAtPiAiICsgZGF0ZSk7CisgICAgICAgICAgICBsb2dsbigiIGZvcm1hdCAtPiAiICsgZik7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWQuZXF1YWxzKE51bGwpIHx8ICFkYXRlLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIG51bGwiKTsgLy8iICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgaWYgKCFmLmVxdWFscyhzdHIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgc3RyKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIlBhcnNlRXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgaWYgKCEoZXhwZWN0ZWQgPT1OdWxsKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKiogRXhjZXB0aW9uOiIpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGJlaGF2aW9yIG9mIHBhdHRlcm5zIGluIHdoaWNoIGRpZ2l0cyBmb3IgZGlmZmVyZW50IGZpZWxkcyBydW4gdG9nZXRoZXIKKyAgICAgKiB3aXRob3V0IGludGVydmVuaW5nIHNlcGFyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJ1blRvZ2V0aGVyUGF0dGVybjk4NSgpIHsKKyAgICAgICAgU3RyaW5nIGZvcm1hdCA9ICJ5eXl5TU1kZEhIbW1zc1NTUyI7CisgICAgICAgIFN0cmluZyBub3csIHRoZW47CisgICAgICAgIC8vVUJvb2wgZmxhZzsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChmb3JtYXQpOworICAgICAgICBEYXRlIGRhdGUxID0gbmV3IERhdGUoKTsKKyAgICAgICAgbm93ID0gKChEYXRlRm9ybWF0KSBmb3JtYXR0ZXIpLmZvcm1hdChkYXRlMSk7CisgICAgICAgIGxvZ2xuKG5vdyk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIERhdGUgZGF0ZTIgPSBmb3JtYXR0ZXIucGFyc2Uobm93LCBwb3MpOworICAgICAgICBpZiAoZGF0ZTIgPT0gbnVsbCkKKyAgICAgICAgICAgIHRoZW4gPSAiUGFyc2Ugc3RvcHBlZCBhdCAiICsgcG9zLmdldEluZGV4KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoZW4gPSAoKERhdGVGb3JtYXQpIGZvcm1hdHRlcikuZm9ybWF0KGRhdGUyKTsKKyAgICAgICAgbG9nbG4odGhlbik7CisgICAgICAgIGlmIChkYXRlMiA9PSBudWxsIHx8ICFkYXRlMi5lcXVhbHMoZGF0ZTEpKQorICAgICAgICAgICAgZXJybG4oIkZBSUwiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGJlaGF2aW9yIG9mIHBhdHRlcm5zIGluIHdoaWNoIGRpZ2l0cyBmb3IgZGlmZmVyZW50IGZpZWxkcyBydW4gdG9nZXRoZXIKKyAgICAgKiB3aXRob3V0IGludGVydmVuaW5nIHNlcGFyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJ1blRvZ2V0aGVyUGF0dGVybjkxNygpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQ7CisgICAgICAgIFN0cmluZyBteURhdGU7CisgICAgICAgIGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5L01NL2RkIik7CisgICAgICAgIG15RGF0ZSA9ICIxOTk3LzAyLzAzIjsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgMiAtIDEsIDMpOworICAgICAgICBfdGVzdEl0OTE3KGZtdCwgbXlEYXRlLCBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkIik7CisgICAgICAgIG15RGF0ZSA9ICIxOTk3MDMwNCI7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIDMgLSAxLCA0KTsKKyAgICAgICAgX3Rlc3RJdDkxNyhmbXQsIG15RGF0ZSwgY2FsLmdldFRpbWUoKSk7CisgICAgCisgICAgfQorICAgIAorICAgIC8vIGludGVybmFsIHRlc3Qgc3Vicm91dGluZSwgdXNlZCBieSBUZXN0UnVuVG9nZXRoZXJQYXR0ZXJuOTE3CisgICAgcHVibGljIHZvaWQgX3Rlc3RJdDkxNyhTaW1wbGVEYXRlRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgRGF0ZSBleHBlY3RlZCkgeworICAgICAgICBsb2dsbigicGF0dGVybj0iICsgZm10LnRvUGF0dGVybigpICsgIiAgIHN0cmluZz0iICsgc3RyKTsKKyAgICAgICAgRGF0ZSBvID0gbmV3IERhdGUoKTsKKyAgICAgICAgbyA9IChEYXRlKSAoKERhdGVGb3JtYXQpIGZtdCkucGFyc2VPYmplY3Qoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGxvZ2xuKCJQYXJzZWQgb2JqZWN0OiAiICsgbyk7CisgICAgICAgIGlmIChvID09IG51bGwgfHwgIW8uZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICBTdHJpbmcgZm9ybWF0dGVkID0gbz09bnVsbD8gIm51bGwiIDogKChEYXRlRm9ybWF0KSBmbXQpLmZvcm1hdChvKTsKKyAgICAgICAgbG9nbG4oICJGb3JtYXR0ZWQgc3RyaW5nOiAiICsgZm9ybWF0dGVkKTsKKyAgICAgICAgaWYgKCFmb3JtYXR0ZWQuZXF1YWxzKHN0cikpCisgICAgICAgICAgICBlcnJsbiggIkZBSUw6IEV4cGVjdGVkICIgKyBzdHIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGhhbmRsaW5nIG9mIEN6ZWNoIEp1bmUgYW5kIEp1bHksIHdoaWNoIGhhdmUgdGhlIHVuaXF1ZSBhdHRyaWJ1dGUgdGhhdAorICAgICAqIG9uZSBpcyBhIHByb3BlciBwcmVmaXggc3Vic3RyaW5nIG9mIHRoZSBvdGhlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3plY2hNb250aHM0NTkoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBuZXcgTG9jYWxlKCJjcyIsICIiLCAiIikpOyAKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gIiArICgoU2ltcGxlRGF0ZUZvcm1hdCkgZm10KS50b1BhdHRlcm4oKSk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpVTkUsIDE1KTsKKyAgICAgICAgRGF0ZSBqdW5lID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSlVMWSwgMTUpOworICAgICAgICBEYXRlIGp1bHkgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBTdHJpbmcganVuZVN0ciA9IGZtdC5mb3JtYXQoanVuZSk7CisgICAgICAgIFN0cmluZyBqdWx5U3RyID0gZm10LmZvcm1hdChqdWx5KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQoSnVuZSAxNSAxOTk3KSA9ICIgKyBqdW5lU3RyKTsKKyAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZShqdW5lU3RyKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChkKTsKKyAgICAgICAgICAgIGludCBtb250aCwgeXIsIGRheSwgaHIsIG1pbiwgc2VjOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgICAgICB5ciA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgLSAxOTAwOworICAgICAgICAgICAgbW9udGggPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgIGRheSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgaHIgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgICAgIG1pbiA9IGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKTsKKyAgICAgICAgICAgIHNlYyA9IGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgIC4gcGFyc2UgLiAiICsgcyArICIgKG1vbnRoID0gIiArIG1vbnRoICsgIikiKTsKKyAgICAgICAgICAgIGlmIChtb250aCAhPSBDYWxlbmRhci5KVU5FKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNb250aCBzaG91bGQgYmUgSnVuZSIpOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdChKdWx5IDE1IDE5OTcpID0gIiArIGp1bHlTdHIpOworICAgICAgICAgICAgZCA9IGZtdC5wYXJzZShqdWx5U3RyKTsKKyAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgICAgICB5ciA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgLSAxOTAwOworICAgICAgICAgICAgbW9udGggPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgIGRheSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgaHIgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgICAgIG1pbiA9IGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKTsKKyAgICAgICAgICAgIHNlYyA9IGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgIC4gcGFyc2UgLiAiICsgcyArICIgKG1vbnRoID0gIiArIG1vbnRoICsgIikiKTsKKyAgICAgICAgICAgIGlmIChtb250aCAhPSBDYWxlbmRhci5KVUxZKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNb250aCBzaG91bGQgYmUgSnVseSIpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2YgJ0QnIGluIHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMZXR0ZXJEUGF0dGVybjIxMigpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSAiMTk5NS0wNDAuMDU6MDE6MjkiOworICAgICAgICBTdHJpbmcgYmlnRCA9ICJ5eXl5LURERC5oaDptbTpzcyI7CisgICAgICAgIFN0cmluZyBsaXR0bGVEID0gInl5eXktZGRkLmhoOm1tOnNzIjsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NSwgMCwgMSwgNSwgMSwgMjkpOworICAgICAgICBEYXRlIGV4cExpdHRsZUQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBEYXRlIGV4cEJpZ0QgPSBuZXcgRGF0ZSgobG9uZykgKGV4cExpdHRsZUQuZ2V0VGltZSgpICsgMzkgKiAyNCAqIDM2MDAwMDAuMCkpOworICAgICAgICBleHBMaXR0bGVEID0gZXhwQmlnRDsgLy8gRXhwZWN0IHRoZSBzYW1lLCB3aXRoIGRlZmF1bHQgbGVuaWVudCBwYXJzaW5nCisgICAgICAgIGxvZ2xuKCJkYXRlU3RyaW5nPSAiICsgZGF0ZVN0cmluZyk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoYmlnRCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIERhdGUgbXlEYXRlID0gZm9ybWF0dGVyLnBhcnNlKGRhdGVTdHJpbmcsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJVc2luZyAiICsgYmlnRCArICIgLiAiICsgbXlEYXRlKTsKKyAgICAgICAgaWYgKCFteURhdGUuZXF1YWxzKGV4cEJpZ0QpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBCaWdEKTsKKyAgICAgICAgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobGl0dGxlRCk7CisgICAgICAgIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBteURhdGUgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAgICAgICAgbG9nbG4oIlVzaW5nICIgKyBsaXR0bGVEICsgIiAuICIgKyBteURhdGUpOworICAgICAgICBpZiAoIW15RGF0ZS5lcXVhbHMoZXhwTGl0dGxlRCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cExpdHRsZUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBkYXkgb2YgeWVhciBwYXR0ZXJuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REYXlPZlllYXJQYXR0ZXJuMTk1KCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlIHRvZGF5ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgaW50IHllYXIsbW9udGgsZGF5OyAKKyAgICAgICAgeWVhciA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGRheSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoeWVhciwgbW9udGgsIGRheSk7CisgICAgICAgIERhdGUgZXhwZWN0ZWQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiVGVzdCBEYXRlOiAiICsgdG9kYXkpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IChTaW1wbGVEYXRlRm9ybWF0KURhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisgICAgICAgIHRyeVBhdHRlcm4oc2RmLCB0b2RheSwgbnVsbCwgZXhwZWN0ZWQpOworICAgICAgICB0cnlQYXR0ZXJuKHNkZiwgdG9kYXksICJHIHl5eXkgREREIiwgZXhwZWN0ZWQpOworICAgIH0KKyAgICAKKyAgICAvLyBpbnRlcmwgdGVzdCBzdWJyb3V0aW5lLCB1c2VkIGJ5IFRlc3REYXlPZlllYXJQYXR0ZXJuMTk1CisgICAgcHVibGljIHZvaWQgdHJ5UGF0dGVybihTaW1wbGVEYXRlRm9ybWF0IHNkZiwgRGF0ZSBkLCBTdHJpbmcgcGF0dGVybiwgRGF0ZSBleHBlY3RlZCkgeworICAgICAgICBpZiAocGF0dGVybiAhPSBudWxsKQorICAgICAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46ICIgKyBzZGYudG9QYXR0ZXJuKCkpOworICAgICAgICBTdHJpbmcgZm9ybWF0UmVzdWx0ID0gKChEYXRlRm9ybWF0KSBzZGYpLmZvcm1hdChkKTsKKyAgICAgICAgbG9nbG4oIiBmb3JtYXQgLT4gIiArIGZvcm1hdFJlc3VsdCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGQyID0gc2RmLnBhcnNlKGZvcm1hdFJlc3VsdCk7CisgICAgICAgICAgICBsb2dsbigiIHBhcnNlKCIgKyBmb3JtYXRSZXN1bHQgKyAiKSAtPiAiICsgZDIpOworICAgICAgICAgICAgaWYgKCFkMi5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgU3RyaW5nIGZvcm1hdDIgPSAoKERhdGVGb3JtYXQpIHNkZikuZm9ybWF0KGQyKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgZm9ybWF0IC0+ICIgKyBmb3JtYXQyKTsKKyAgICAgICAgICAgIGlmICghZm9ybWF0UmVzdWx0LmVxdWFscyhmb3JtYXQyKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUm91bmQgdHJpcCBkcmlmdCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGhhbmRsaW5nIG9mIHNpbmdsZSBxdW90ZXMgaW4gcGF0dGVybnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFF1b3RlUGF0dGVybjE2MSgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU0vZGQveXl5eSAnYXQnIGhoOm1tOnNzIGEgenp6IiwgTG9jYWxlLlVTKTsgCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkFVR1VTVCwgMTMsIDEwLCA0MiwgMjgpOworICAgICAgICBEYXRlIGN1cnJlbnRUaW1lXzEgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9ICgoRGF0ZUZvcm1hdCkgZm9ybWF0dGVyKS5mb3JtYXQoY3VycmVudFRpbWVfMSk7CisgICAgICAgIFN0cmluZyBleHAgPSAiMDgvMTMvMTk5NyBhdCAxMDo0MjoyOCBBTSAiOworICAgICAgICBsb2dsbigiZm9ybWF0KCIgKyBjdXJyZW50VGltZV8xICsgIikgPSAiICsgZGF0ZVN0cmluZyk7CisgICAgICAgIGlmICghZGF0ZVN0cmluZy5zdWJzdHJpbmcoMCwgZXhwLmxlbmd0aCgpKS5lcXVhbHMoZXhwKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwKTsKKyAgICAKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgY29ycmVjdCBiZWhhdmlvciB3aGVuIGhhbmRsaW5nIGludmFsaWQgaW5wdXQgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFkSW5wdXQxMzUoKSB7CisgICAgICAgIGludCBsb29rc1tdID0ge0RhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuRlVMTH07IAorICAgICAgICBpbnQgbG9va3NfbGVuZ3RoID0gbG9va3MubGVuZ3RoOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdHJpbmdzID0geyJNYXIgMTUiLCAiTWFyIDE1IDE5OTciLCAiYXNkZiIsICIzLzEvOTcgMToyMzoiLCAiMy8xLzAwIDE6MjM6NDUgQU0ifTsgCisgICAgICAgIGludCBzdHJpbmdzX2xlbmd0aCA9IHN0cmluZ3MubGVuZ3RoOworICAgICAgICBEYXRlRm9ybWF0IGZ1bGwgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5VUyk7IAorICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiTWFyY2ggMSwgMjAwMCAxOjIzOjQ1IEFNICI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RyaW5nc19sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nIHRleHQgPSBzdHJpbmdzW2ldOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsb29rc19sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGludCBkYXRlTG9vayA9IGxvb2tzW2pdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbG9va3NfbGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVMb29rID0gbG9va3Nba107CisgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZUxvb2ssIHRpbWVMb29rLCBMb2NhbGUuVVMpOyAKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IHRleHQgKyAiLCAiICsgZGF0ZUxvb2sgKyAiLyIgKyB0aW1lTG9vayArICI6ICI7IAorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSB3aGVuID0gZGYucGFyc2UodGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2hlbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4ocHJlZml4ICsgIlNIT1VMRCBOT1QgSEFQUEVOOiBwYXJzZSByZXR1cm5lZCBudWxsLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2hlbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZvcm1hdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPSBmdWxsLmZvcm1hdCh3aGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihwcmVmaXggKyAiT0s6ICIgKyBmb3JtYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZm9ybWF0LnN1YnN0cmluZygwLCBleHBlY3RlZC5sZW5ndGgoKSkuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvcnJlY3QgYmVoYXZpb3Igd2hlbiBwYXJzaW5nIGFuIGFycmF5IG9mIGlucHV0cyBhZ2FpbnN0IGFuCisgICAgICogYXJyYXkgb2YgcGF0dGVybnMsIHdpdGgga25vd24gcmVzdWx0cy4gIFRoZSByZXN1bHRzIGFyZSBlbmNvZGVkIGFmdGVyCisgICAgICogdGhlIGlucHV0IHN0cmluZ3MgaW4gZWFjaCByb3cuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJhZElucHV0MTM1YSgpIHsKKyAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkYXRlUGFyc2UgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiIiwgTG9jYWxlLlVTKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHNzOworICAgICAgICBEYXRlIGRhdGU7CisgICAgICAgIFN0cmluZ1tdIHBhcnNlRm9ybWF0cyA9eyJNTU1NIGQsIHl5eXkiLCAiTU1NTSBkIHl5eXkiLCAiTS9kL3l5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImQgTU1NTSwgeXl5eSIsICJkIE1NTU0geXl5eSIsICAiZCBNTU1NIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1NTU0gZCIsICJ5eXl5IiwgImg6bW0gYSBNTU1NIGQsIHl5eXkiIH07CisgICAgICAgIFN0cmluZ1tdIGlucHV0U3RyaW5ncyA9IHsKKyAgICAgICAgICAgICJib2d1cyBzdHJpbmciLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLAorICAgICAgICAgICAgICAgICJBcHJpbCAxLCAxOTk3IiwgIkFwcmlsIDEsIDE5OTciLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiQXByaWwgMSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIkphbiAxLCAxOTcwIiwgIkphbnVhcnkgMSwgMTk3MCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICJKYW51YXJ5IDEiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgICAgICJKYW4gMSAyMDM3IiwgbnVsbCwgIkphbnVhcnkgMSAyMDM3IiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIkphbnVhcnkgMSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIjEvMS83MCIsIG51bGwsIG51bGwsICIxLzEvNzAiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMDAwMSIsIG51bGwsCisgICAgICAgICAgICAgICAgIjUgTWF5IDE5OTciLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiNSBNYXkgMTk5NyIsICI1IE1heSIsIG51bGwsICIwMDA1IiwgbnVsbCwKKyAgICAgICAgICAgICAgICAiMTYgTWF5IiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIjE2IE1heSIsIG51bGwsICIwMDE2IiwgbnVsbCwKKyAgICAgICAgICAgICAgICAiQXByaWwgMzAiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiQXByaWwgMzAiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgICAgICIxOTk4IiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIjE5OTgiLCBudWxsLAorICAgICAgICAgICAgICAgICIxIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIjAwMDEiLCBudWxsLAorICAgICAgICAgICAgICAgICIzOjAwIHBtIEphbiAxLCAxOTk3IiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIjAwMDMiLCAiMzowMCBQTSBKYW51YXJ5IDEsIDE5OTciLAorICAgICAgICAgICAgICAgIH07CisgICAgICAgIGZpbmFsIGludCBQRl9MRU5HVEggPSBwYXJzZUZvcm1hdHMubGVuZ3RoOworICAgICAgICBmaW5hbCBpbnQgSU5QVVRfTEVOR1RIID0gaW5wdXRTdHJpbmdzLmxlbmd0aDsKKyAgICAKKyAgICAgICAgZGF0ZVBhcnNlLmFwcGx5UGF0dGVybigiZCBNTU1NLCB5eXl5Iik7CisgICAgICAgIGRhdGVQYXJzZS5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgICAgICBzcyA9ICJub3QgcGFyc2VhYmxlIjsKKyAgICAgICAgLy8gICAgU3RyaW5nIHRoZVBhdDsKKyAgICAgICAgbG9nbG4oIlRyeWluZyB0byBwYXJzZSBcIiIgKyBzcyArICJcIiB3aXRoICIgKyBkYXRlUGFyc2UudG9QYXR0ZXJuKCkpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGF0ZSA9IGRhdGVQYXJzZS5wYXJzZShzcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgbG9nbG4oIkZBSUw6IiArIGV4KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IElOUFVUX0xFTkdUSDsgaSArPSAoUEZfTEVOR1RIICsgMSkpIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgU3RyaW5nIHMgPSBpbnB1dFN0cmluZ3NbaV07CisgICAgICAgICAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgUEZfTEVOR1RIOyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGV4cGVjdGVkID0gaW5wdXRTdHJpbmdzW2kgKyAxICsgaW5kZXhdOworICAgICAgICAgICAgICAgIGRhdGVQYXJzZS5hcHBseVBhdHRlcm4ocGFyc2VGb3JtYXRzW2luZGV4XSk7CisgICAgICAgICAgICAgICAgZGF0ZVBhcnNlLnNldFRpbWVab25lKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IGRhdGVQYXJzZS5wYXJzZShzLCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgczEsIHMyOworICAgICAgICAgICAgICAgICAgICAgICAgczEgPSBzLnN1YnN0cmluZygwLCBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgczIgPSBzLnN1YnN0cmluZyhwYXJzZVBvc2l0aW9uLmdldEluZGV4KCksIHMubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogbnVsbCByZXN1bHQgZm10PVwiIiArIHBhcnNlRm9ybWF0c1tpbmRleF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlwiIHBvcz0iICsgcGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgIiArIHMxICsgInwiICsgczIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKChEYXRlRm9ybWF0KSBkYXRlUGFyc2UpLmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiUGFyc2VkIFwiIiArIHMgKyAiXCIgdXNpbmcgXCIiICsgZGF0ZVBhcnNlLnRvUGF0dGVybigpICsgIlwiIHRvOiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWQgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIHBhcnNlIGZhaWx1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGZyb20gXCIiICsgcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgd2l0aCBcIiIgKyBkYXRlUGFyc2UudG9QYXR0ZXJuKCkrICJcIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRkFJTDoiICsgZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBwYXJzaW5nIG9mIHR3by1kaWdpdCB5ZWFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VHdvRGlnaXRZZWFyKCkgeworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIExvY2FsZS5VUyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDExNyArIDE5MDAsIENhbGVuZGFyLkpVTkUsIDUpOworICAgICAgICBwYXJzZTJEaWdpdFllYXIoZm10LCAiNi81LzE3IiwgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDM0ICsgMTkwMCwgQ2FsZW5kYXIuSlVORSwgNCk7CisgICAgICAgIHBhcnNlMkRpZ2l0WWVhcihmbXQsICI2LzQvMzQiLCBjYWwuZ2V0VGltZSgpKTsKKyAgICB9CisgICAgCisgICAgLy8gaW50ZXJuYWwgdGVzdCBzdWJyb3V0aW5lLCB1c2VkIGJ5IFRlc3RUd29EaWdpdFllYXIKKyAgICBwdWJsaWMgdm9pZCBwYXJzZTJEaWdpdFllYXIoRGF0ZUZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIERhdGUgZXhwZWN0ZWQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4oIlBhcnNpbmcgXCIiKyBzdHIrICJcIiB3aXRoICIrICgoU2ltcGxlRGF0ZUZvcm1hdCkgZm10KS50b1BhdHRlcm4oKQorICAgICAgICAgICAgICAgICAgICArICIgID0+ICIrIGQpOyAKKyAgICAgICAgICAgIGlmICghZC5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgICAgIGVycmxuKCAiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZvcm1hdHRpbmcgb2YgdGltZSB6b25lcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdFpvbmUwNjEoKSB7CisgICAgICAgIERhdGUgZGF0ZTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXR0ZXI7CisgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSg4NTkyNDgwMDAwMDBsKTsKKyAgICAgICAgbG9nbG4oIkRhdGUgMTk5Ny8zLzI1IDAwOjAwIEdNVDogIiArIGRhdGUpOworICAgICAgICBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGQtTU1NLXl5eXl5IEhIOm1tIiwgTG9jYWxlLlVLKTsKKyAgICAgICAgZm9ybWF0dGVyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgIFN0cmluZyB0ZW1wID0gZm9ybWF0dGVyLmZvcm1hdChkYXRlKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCBpbiBHTVQgdG86ICIgKyB0ZW1wKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgdGVtcERhdGUgPSBmb3JtYXR0ZXIucGFyc2UodGVtcCk7CisgICAgICAgICAgICBsb2dsbigiUGFyc2VkIHRvOiAiICsgdGVtcERhdGUpOworICAgICAgICAgICAgaWYgKCF0ZW1wRGF0ZS5lcXVhbHMoZGF0ZSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBkYXRlICsgIiBHb3Q6ICIgKyB0ZW1wRGF0ZSk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odCk7CisgICAgICAgIH0KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZm9ybWF0dGluZyBvZiB0aW1lIHpvbmVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REYXRlRm9ybWF0Wm9uZTE0NigpIHsKKyAgICAgICAgVGltZVpvbmUgc2F2ZURlZmF1bHQgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgCisgICAgICAgIC8vdHJ5IHsKKyAgICAgICAgVGltZVpvbmUgdGhlZGVmYXVsdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh0aGVkZWZhdWx0KTsKKyAgICAgICAgLy8gamF2YS51dGlsLkxvY2FsZS5zZXREZWZhdWx0KG5ldyBqYXZhLnV0aWwuTG9jYWxlKCJhciIsICIiLCAiIikpOworICAgIAorICAgICAgICAvLyBjaGVjayB0byBiZSBzdXJlLi4uIGl0cyBHTVQgYWxsIHJpZ2h0CisgICAgICAgIFRpbWVab25lIHRlc3RkZWZhdWx0ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBTdHJpbmcgdGVzdHRpbWV6b25lID0gdGVzdGRlZmF1bHQuZ2V0SUQoKTsKKyAgICAgICAgaWYgKHRlc3R0aW1lem9uZS5lcXVhbHMoIkdNVCIpKQorICAgICAgICAgICAgbG9nbG4oIlRlc3QgdGltZXpvbmUgPSAiICsgdGVzdHRpbWV6b25lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIlRlc3QgdGltZXpvbmUgc2hvdWxkIGJlIEdNVCwgbm90ICIgKyB0ZXN0dGltZXpvbmUpOworICAgIAorICAgICAgICAvLyBub3cgdHJ5IHRvIHVzZSB0aGUgZGVmYXVsdCBHTVQgdGltZSB6b25lCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdyZWVud2ljaGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsIDMsIDQsIDIzLCAwKTsKKyAgICAgICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKmdyZWVud2ljaGNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIC8vZ3JlZW53aWNoY2FsZW5kYXIuc2V0KDE5OTcsIDMsIDQsIDIzLCAwKTsKKyAgICAgICAgLy8gdHJ5IGFueXRoaW5nIHRvIHNldCBob3VyIHRvIDIzOjAwICEhIQorICAgICAgICBncmVlbndpY2hjYWxlbmRhci5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDIzKTsKKyAgICAgICAgLy8gZ2V0IHRpbWUKKyAgICAgICAgRGF0ZSBncmVlbndpY2hkYXRlID0gZ3JlZW53aWNoY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICAvLyBmb3JtYXQgZXZlcnkgd2F5CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAgICAgInNpbXBsZSBmb3JtYXQ6ICAiLCAiMDQvMDQvOTcgMjM6MDAgR01UKzAwOjAwIiwgCisgICAgICAgICAgICAgICAgIk1NL2RkL3l5IEhIOm1tIHp6eiIsICJmdWxsIGZvcm1hdDogICAgIiwgCisgICAgICAgICAgICAgICAgIkZyaWRheSwgQXByaWwgNCwgMTk5NyAxMTowMDowMCBvJ2Nsb2NrIFBNIEdNVCswMDowMCIsIAorICAgICAgICAgICAgICAgICJFRUVFLCBNTU1NIGQsIHl5eXkgaDptbTpzcyAnbycnY2xvY2snIGEgenp6IiwgCisgICAgICAgICAgICAgICAgImxvbmcgZm9ybWF0OiAgICAiLCAiQXByaWwgNCwgMTk5NyAxMTowMDowMCBQTSBHTVQrMDA6MDAiLCAKKyAgICAgICAgICAgICAgICAiTU1NTSBkLCB5eXl5IGg6bW06c3MgYSB6IiwgImRlZmF1bHQgZm9ybWF0OiAiLCAKKyAgICAgICAgICAgICAgICAiMDQtQXByLTk3IDExOjAwOjAwIFBNIiwgImRkLU1NTS15eSBoOm1tOnNzIGEiLCAKKyAgICAgICAgICAgICAgICAic2hvcnQgZm9ybWF0OiAgICIsICI0LzQvOTcgMTE6MDAgUE0iLCAKKyAgICAgICAgICAgICAgICAiTS9kL3l5IGg6bW0gYSJ9OyAKKyAgICAgICAgaW50IERBVEFfbGVuZ3RoID0gREFUQS5sZW5ndGg7CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgREFUQV9sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChEQVRBW2kgKyAyXSwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgZm10LnNldENhbGVuZGFyKGdyZWVud2ljaGNhbGVuZGFyKTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmbXQuZm9ybWF0KGdyZWVud2ljaGRhdGUpOworICAgICAgICAgICAgbG9nbG4oREFUQVtpXSArIHJlc3VsdCk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoREFUQVtpICsgMV0pKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgREFUQVtpICsgMV0gKyAiLCBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgLy99CisgICAgICAgIC8vZmluYWxseSB7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZURlZmF1bHQpOworICAgICAgICAvL30KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZm9ybWF0dGluZyBvZiBkYXRlcyBpbiBkaWZmZXJlbnQgbG9jYWxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlRGF0ZUZvcm1hdCgpIHsKKyAgICAKKyAgICAgICAgRGF0ZSB0ZXN0RGF0ZSA9IG5ldyBEYXRlKDg3NDMwNjgwMDAwMGwpOyAvL01vbiBTZXAgMTUgMDA6MDA6MDAgUERUIDE5OTcKKyAgICAgICAgRGF0ZUZvcm1hdCBkZkZyZW5jaCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIERhdGVGb3JtYXQgZGZVUyA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLlVTKTsKKyAgICAgICAgLy9TZXQgVGltZVpvbmUgPSBQRFQKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGRmRnJlbmNoLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgZGZVUy5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEZSRU5DSF9KREsxMiA9ICJsdW5kaSAxNSBzZXB0ZW1icmUgMTk5NyAwMCBoIDAwIEhBUCAoXHUwMEM5VUEpIjsKKyAgICAgICAgLy9TdHJpbmcgZXhwZWN0ZWRGUkVOQ0ggPSAibHVuZGkgMTUgc2VwdGVtYnJlIDE5OTcgMDAgaCAwMCBQRFQiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRVUyA9ICJNb25kYXksIFNlcHRlbWJlciAxNSwgMTk5NyAxMjowMDowMCBBTSBQVCI7CisgICAgICAgIGxvZ2xuKCJEYXRlIHNldCB0byA6ICIgKyB0ZXN0RGF0ZSk7CisgICAgICAgIFN0cmluZyBvdXQgPSBkZkZyZW5jaC5mb3JtYXQodGVzdERhdGUpOworICAgICAgICBsb2dsbigiRGF0ZSBGb3JtYXRlZCB3aXRoIEZyZW5jaCBMb2NhbGUgIiArIG91dCk7CisgICAgICAgIC8vZml4IHRoZSBqZGsgcmVzb3VyY2VzIGRpZmZlcmVuY2VzIGJldHdlZW4gamRrIDEuMiBhbmQgamRrIDEuMworICAgICAgICAvKiBvdXIgb3duIGRhdGEgb25seSBoYXMgR01ULXh4eHggaW5mb3JtYXRpb24gaGVyZQorICAgICAgICBTdHJpbmcgamF2YVZlcnNpb24gPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgICAgICBpZiAoamF2YVZlcnNpb24uc3RhcnRzV2l0aCgiMS4yIikpIHsKKyAgICAgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZEZSRU5DSF9KREsxMikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZEZSRU5DSF9KREsxMik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWRGUkVOQ0gpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRGUkVOQ0gpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZEZSRU5DSF9KREsxMikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkRlJFTkNIX0pESzEyKTsKKyAgICAgICAgb3V0ID0gZGZVUy5mb3JtYXQodGVzdERhdGUpOworICAgICAgICBsb2dsbigiRGF0ZSBGb3JtYXRlZCB3aXRoIFVTIExvY2FsZSAiICsgb3V0KTsKKyAgICAgICAgaWYgKCFvdXQuZXF1YWxzKGV4cGVjdGVkVVMpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZFVTKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IERhdGVGb3JtYXQoQ2FsZW5kYXIpIEFQSQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REYXRlRm9ybWF0Q2FsZW5kYXIoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGF0ZT1udWxsLCB0aW1lPW51bGwsIGZ1bGw9bnVsbDsKKyAgICAgICAgQ2FsZW5kYXIgY2FsPW51bGw7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIERhdGUgd2hlbjsKKworICAgICAgICAvKiBDcmVhdGUgYSBmb3JtYXR0ZXIgZm9yIGRhdGUgZmllbGRzLiAqLworICAgICAgICBkYXRlID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKGRhdGUgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERhdGVJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENyZWF0ZSBhIGZvcm1hdHRlciBmb3IgdGltZSBmaWVsZHMuICovCisgICAgICAgIHRpbWUgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOworICAgICAgICBpZiAodGltZSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZUluc3RhbmNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogQ3JlYXRlIGEgZnVsbCBmb3JtYXQgZm9yIG91dHB1dCAqLworICAgICAgICBmdWxsID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisgICAgICAgIGlmIChmdWxsID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENyZWF0ZSBhIGNhbGVuZGFyICovCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGlmIChjYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyLmdldEluc3RhbmNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogUGFyc2UgdGhlIGRhdGUgKi8KKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIHN0ciA9ICI0LzUvMjAwMSI7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgZGF0ZS5wYXJzZShzdHIsIGNhbCwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQucGFyc2UoNC81LzIwMDEpIGZhaWxlZCBhdCAiICsKKyAgICAgICAgICAgICAgICAgIHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFBhcnNlIHRoZSB0aW1lICovCisgICAgICAgIHN0ciA9ICI1OjQ1IFBNIjsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOworICAgICAgICB0aW1lLnBhcnNlKHN0ciwgY2FsLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgIT0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZUZvcm1hdC5wYXJzZSgxNzo0NSkgZmFpbGVkIGF0ICIgKworICAgICAgICAgICAgICAgICAgcG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIENoZWNrIHJlc3VsdCAqLworICAgICAgICB3aGVuID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgc3RyID0gZnVsbC5mb3JtYXQod2hlbik7CisgICAgICAgIC8vIFRodXJzZGF5LCBBcHJpbCA1LCAyMDAxIDU6NDU6MDAgUE0gUERUIDk4NjUxNzkwMDAwMAorICAgICAgICBpZiAod2hlbi5nZXRUaW1lKCkgPT0gOTg2NTE3OTAwMDAwLjApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogUGFyc2VkIHJlc3VsdDogIiArIHN0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogUGFyc2VkIHJlc3VsdDogIiArIHN0ciArICIsIGV4cCA0LzUvMjAwMSA1OjQ1IFBNIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IERhdGVGb3JtYXQncyBwYXJzaW5nIG9mIHNwYWNlIGNoYXJhY3RlcnMuICBTZWUgaml0dGVyYnVnIDE5MTYuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNwYWNlUGFyc2luZygpIHsKKworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQiLAorCisgICAgICAgICAgICAvLyBwYXR0ZXJuLCBpbnB1dCwgZXhwZWN0ZWQgb3V0cHV0IChpbiBxdW90ZXMpCisgICAgICAgICAgICAiTU1NTSBkIHl5IiwgIiAwNCAwNSAwNiIsICBudWxsLCAvLyBNTU1NIHdhbnRzIEFwci9BcHJpbAorICAgICAgICAgICAgbnVsbCwgICAgICAgICIwNCAwNSAwNiIsICAgbnVsbCwKKyAgICAgICAgICAgICJNTSBkIHl5IiwgICAiIDA0IDA1IDA2IiwgICIyMDA2IDA0IDA1IiwKKyAgICAgICAgICAgIG51bGwsICAgICAgICAiMDQgMDUgMDYiLCAgICIyMDA2IDA0IDA1IiwKKyAgICAgICAgICAgICJNTU1NIGQgeXkiLCAiIEFwciAwNSAwNiIsICIyMDA2IDA0IDA1IiwKKyAgICAgICAgICAgIG51bGwsICAgICAgICAiQXByIDA1IDA2IiwgICIyMDA2IDA0IDA1IiwKKyAgICAgICAgfTsKKworICAgICAgICBleHBlY3RQYXJzZShEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaGFuZGxpbmcgb2YgIkhIbW1zcyIgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhhY3RDb3VudEZvcm1hdCgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIEhIOm1tOnNzIiwKKworICAgICAgICAgICAgLy8gcGF0dGVybiwgaW5wdXQsIGV4cGVjdGVkIHBhcnNlIG9yIG51bGwgaWYgZXhwZWN0IHBhcnNlIGZhaWx1cmUKKyAgICAgICAgICAgICJISG1tc3MiLCAiMTIzNDU2IiwgIjE5NzAgMDEgMDEgMTI6MzQ6NTYiLAorICAgICAgICAgICAgbnVsbCwgICAgICIxMjM0NSIsICAiMTk3MCAwMSAwMSAwMToyMzo0NSIsCisgICAgICAgICAgICBudWxsLCAgICAgIjEyMzQiLCAgIG51bGwsCisgICAgICAgICAgICBudWxsLCAgICAgIjAwLTA1IiwgIG51bGwsCisgICAgICAgICAgICBudWxsLCAgICAgIjEyLTM0IiwgIG51bGwsCisgICAgICAgICAgICBudWxsLCAgICAgIjAwKzA1IiwgIG51bGwsCisgICAgICAgICAgICAiYWhobW0iLCAgIlBNNzMwIiwgICIxOTcwIDAxIDAxIDE5OjMwOjAwIiwKKyAgICAgICAgfTsKKworICAgICAgICBleHBlY3RQYXJzZShEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaGFuZGxpbmcgb2Ygd2hpdGUgc3BhY2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFdoaXRlU3BhY2VQYXJzaW5nKCkgeworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQiLAorCisgICAgICAgICAgICAvLyBwYXR0ZXJuLCBpbnB1dCwgZXhwZWN0ZWQgcGFyc2Ugb3IgbnVsbCBpZiBleHBlY3QgcGFyc2UgZmFpbHVyZQorCisgICAgICAgICAgICAvLyBQYXR0ZXJuIHNwYWNlIHJ1biBzaG91bGQgcGFyc2UgaW5wdXQgdGV4dCBzcGFjZSBydW4KKyAgICAgICAgICAgICJNTSAgIGQgeXkiLCAgICIgMDQgMDEgMDMiLCAgICAiMjAwMyAwNCAwMSIsCisgICAgICAgICAgICBudWxsLCAgICAgICAgICAiIDA0ICAwMSAgIDAzICIsICIyMDAzIDA0IDAxIiwKKyAgICAgICAgfTsKKworICAgICAgICBleHBlY3RQYXJzZShEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnZhbGlkUGF0dGVybigpIHsKKyAgICAgICAgRXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGYgPSBudWxsOworICAgICAgICBTdHJpbmcgb3V0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiWWVzdGVyZGF5Iik7CisgICAgICAgICAgICBvdXQgPSBmLmZvcm1hdChuZXcgRGF0ZSgwKSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgZSA9IGUxOworICAgICAgICB9CisgICAgICAgIGlmIChlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogUmVjZWl2ZWQgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBleGNlcHRpb24sIGdvdCAiICsgZi50b1BhdHRlcm4oKSArCisgICAgICAgICAgICAgICAgICAiOyAiICsgb3V0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVla01heSgpIHsKKyAgICAgICAgRGF0ZSBkYXRlID0gbmV3IERhdGUoLTk4OTYwODA4NDgwMDBMKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFRSwgZGQgTU1NTSB5eXl5IGg6bW06c3MgYSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhbGUoImVsIiwgIiIsICIiKSk7CisgICAgICAgIFN0cmluZyBzdHIgPSBmbXQuZm9ybWF0KGRhdGUpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIGQyID0gZm10LnBhcnNlKHN0ciwgcG9zKTsKKyAgICAgICAgaWYgKCFkYXRlLmVxdWFscyhkMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1bmFibGUgdG8gcGFyc2Ugc3RyaW5ncyB3aGVyZSBjYXNlLWZvbGRpbmcgY2hhbmdlcyBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RFcnJvckNoZWNraW5nKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBzZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoLTEsIC0xLCBMb2NhbGUuVVMpOworICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgZ2V0RGF0ZVRpbWVJbnN0YW5jZSgtMSwgLTEsIExvY2FsZSkiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIm9uZSBvayIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkV4cGVjdGVkIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwgZ290OiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImFhYmJjY2MiKTsKKyAgICAgICAgICAgIGRmLmZvcm1hdChuZXcgRGF0ZSgpKTsKKyAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBleGNlcHRpb24gZm9yIGZvcm1hdCB3aXRoIGJhZCBwYXR0ZXJuIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBsb2dsbigidHdvIG9rIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXhwZWN0ZWQgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBnb3Q6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGQvTU0veXkiKTsgLy8gb3Bwb3NpdGUgb2YgdGV4dAorICAgICAgICAgICAgZm10LnNldDJEaWdpdFllYXJTdGFydChnZXREYXRlKDIwMDMsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSkpOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMTIvMjUvMDMiOworICAgICAgICAgICAgQ2FsZW5kYXIgeGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgeGNhbC5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0LCB4Y2FsLCBwcCk7IC8vIHNob3VsZCBnZXQgcGFyc2UgZXJyb3Igb24gc2Vjb25kIGZpZWxkLCBub3QgbGVuaWVudAorICAgICAgICAgICAgaWYgKHBwLmdldEVycm9ySW5kZXgoKSA9PSAtMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBwYXJzZSBlcnJvciIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigidGhyZWUgb2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGluZXNlRGF0ZUZvcm1hdExvY2FsaXplZFBhdHRlcm5DaGFycygpIHsKKyAgICAgICAgLy8gamIgNDkwNAorICAgICAgICAvLyBtYWtlIHN1cmUgd2UgY2FuIGRpc3BsYXkgbG9jYWxpemVkIHZlcnNpb25zIG9mIHRoZSBjaGFycyB1c2VkIGluIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIGNoaW5lc2UgZGF0ZSBmb3JtYXQgcGF0dGVybnMKKyAgICAgICAgQ2FsZW5kYXIgY2hpbmVzZUNhbGVuZGFyID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBjaGluZXNlQ2FsZW5kYXIuc2V0VGltZUluTWlsbGlzKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGxvbmdDaGluZXNlRGF0ZUZvcm1hdCA9IAorICAgICAgICAgICAgKFNpbXBsZURhdGVGb3JtYXQpY2hpbmVzZUNhbGVuZGFyLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuQ0hJTkEgKTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyggY2hpbmVzZUNhbGVuZGFyLCBMb2NhbGUuQ0hJTkEgKTsKKyAgICAgICAgbG9uZ0NoaW5lc2VEYXRlRm9ybWF0LnNldERhdGVGb3JtYXRTeW1ib2xzKCBkZnMgKTsKKyAgICAgICAgLy8gVGhpcyBuZXh0IGxpbmUgdGhyb3dzIHRoZSBleGNlcHRpb24KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBsb25nRm9ybWF0UGF0dGVybiA9IGxvbmdDaGluZXNlRGF0ZUZvcm1hdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgbG9jYWxpemVkIHBhdHRlcm46ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIERhdGUgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIERhdGVGb3JtYXQgZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKCk7CisgICAgICAgIGxvZ2xuKCJ0aW1lOiAiICsgZi5mb3JtYXQobm93KSk7CisKKyAgICAgICAgaW50IGhhc2ggPSBmLmhhc2hDb2RlKCk7IC8vIHNpZ2gsIGV2ZXJ5b25lIG92ZXJyaWRlcyB0aGlzCisgICAgICAgIAorICAgICAgICBmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShjYWwpOworICAgICAgICBpZihoYXNoID09IGYuaGFzaENvZGUoKSl7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaGFzaENvZGUgZXF1YWwgZm9yIGluZXF1YWwgb2JqZWN0cyIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJ0aW1lIGFnYWluOiAiICsgZi5mb3JtYXQobm93KSk7CisKKyAgICAgICAgZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMKTsKKyAgICAgICAgbG9nbG4oInRpbWUgeWV0IGFnYWluOiAiICsgZi5mb3JtYXQobm93KSk7CisKKyAgICAgICAgZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisgICAgICAgIGxvZ2xuKCJ0aW1lIHlldCBhZ2FpbjogIiArIGYuZm9ybWF0KG5vdykpOworCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCJkZV9ERSIpOworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMocmIsIExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltMiA9IChEYXRlRm9ybWF0U3ltYm9scylzeW0uY2xvbmUoKTsKKyAgICAgICAgaWYgKHN5bS5oYXNoQ29kZSgpICE9IHN5bTIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWwsIGRhdGUgZm9ybWF0IHN5bWJvbHMgaGFzaGNvZGUgbm90IGVxdWFsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzeW0uZXF1YWxzKHN5bTIpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbCwgZGF0ZSBmb3JtYXQgc3ltYm9scyBub3QgZXF1YWwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTG9jYWxlIGZvbyA9IG5ldyBMb2NhbGUoImZ1IiwgIkZVIiwgIkJBUiIpOworICAgICAgICByYiA9IG51bGw7CisgICAgICAgIHN5bSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhHcmVnb3JpYW5DYWxlbmRhci5jbGFzcywgZm9vKTsKKyAgICAgICAgc3ltLmVxdWFscyhudWxsKTsKKyAgICAgICAgCisgICAgICAgIHN5bSA9IG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgc3ltID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhuZXcgQ2hpbmVzZUNhbGVuZGFyKCksIGZvbyk7CisgICAgICAgIC8vIGNvdmVyIG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIFVMb2NhbGUpCisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBzeW0gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKGNjYWwsIFVMb2NhbGUuQ0hJTkEpOyAvL2djbHNoMSBhZGQKKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIAorICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KWNhbCwgYnVmLCBwb3MpOworICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KW5vdywgYnVmLCBwb3MpOworICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KW5ldyBMb25nKG5vdy5nZXRUaW1lKCkpLCBidWYsIHBvcyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KSJIb3dkeSIsIGJ1ZiwgcG9zKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IGYuZ2V0TnVtYmVyRm9ybWF0KCk7CisgICAgICAgIGYuc2V0TnVtYmVyRm9ybWF0KG5mKTsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gbGVuaWVudCA9IGYuaXNMZW5pZW50KCk7CisgICAgICAgIGYuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICAgICAgCisgICAgICAgIFVMb2NhbGUgdWxvYyA9IGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSk7CisgICAgICAgIAorICAgICAgICBpbnQgaGFzaENvZGUgPSBmLmhhc2hDb2RlKCk7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGVxID0gZi5lcXVhbHMoZik7CisgICAgICAgIGVxID0gZi5lcXVhbHMobnVsbCk7CisgICAgICAgIGVxID0gZi5lcXVhbHMobmV3IFNpbXBsZURhdGVGb3JtYXQoKSk7CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXQoInl5bW0iLCBMb2NhbGUuVVMpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjIiKTsgLy8gZmV3ZXIgc3ltYm9scyB0aGFuIHJlcXVpcmVkIDIKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMjI1NSIpOyAvLyBzaG91bGQgc3VjY2VlZCB3aXRoIG9iZXljb3VudAorICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigid2hvb3BzIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCJuaSBoYW8iKTsgLy8gbm90IGEgbnVtYmVyLCBzaG91bGQgZmFpbAorICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMgbmkgaGFvIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayBuaSBoYW8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciB4Y2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgICAgICB4Y2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJrIik7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgeGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZnBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgICAgIGZtdC5mb3JtYXQoeGNhbCwgeGJ1ZiwgZnBvcyk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSh4YnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHhidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIHhjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAyNSk7CisgICAgICAgICAgICAgICAgZm10LmZvcm1hdCh4Y2FsLCB4YnVmLCBmcG9zKTsKKyAgICAgICAgICAgICAgICBEYXRlIGQyID0gZm10LnBhcnNlKHhidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIGFnYWluIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gY292ZXIgZ210K2hoOm1tCisgICAgICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eSB6Iik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgR01UKzEwOjAwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyBHTVQrMTA6MDAgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciBpbnZhbGlkIHNlcGFyYXRvciBhZnRlciBHTVQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDcvMTAvNTMgR01UPTEwOjAwIjsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UodGV4dCwgcHApOworICAgICAgICAgICAgICAgIGlmKHBwLmdldEluZGV4KCkhPTEyKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIEdNVD0xMDowMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXJzaW5nIG9mIHRoZSB0ZXh0IHN0b3BwZWQgYXQgcG9zOiAiICsgcHAuZ2V0SW5kZXgoKSArICIgYXMgZXhwZWN0ZWQgYW5kIGxlbmd0aCBpcyAiK3RleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciBiYWQgdGV4dCBhZnRlciBHTVQrLgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIEdNVCtibGVjY2giKTsKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzIEdNVCtibGVjY2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIEdNVCtibGVjY2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgYmFkIHRleHQgYWZ0ZXIgR01UK2hoOi4KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyBHTVQrMDc6YmxlY2NoIik7CisgICAgICAgICAgICAgICAgZXJybG4oIndob29wcyBHTVQreHg6YmxlY2NoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayBHTVQreHg6YmxlY2NoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIG5vICc6JyBHTVQrIywgIyA8IDI0IChoaCkKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyBHTVQrMDciKTsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIEdNVCswNyBmb3IgcGF0dGVybiBNTS9kZC95eSB6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIG5vICc6JyBHTVQrIywgIyA+IDI0IChoaG1tKQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIEdNVCswNzMwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyBHTVQrMDczMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIG5vICc6JyBHTVQrIywgIyA+IDI0MDAgKHRoaXMgc2hvdWxkIGZhaWwsIGkgc3VzcGVjdCwgYnV0IGRvZXNuJ3QpCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgR01UKzA3MzAwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oInNob3VsZCBHTVQrOTk5OSBmYWlsPyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2ssIEkgZ3Vlc3MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgcmF3IGRpZ2l0cyB3aXRoIG5vIGxlYWRpbmcgc2lnbiAoYmFkIFJGQzgyMikgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgMDciKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgMDcgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiBwYXNzZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciByYXcgZGlnaXRzIChSRkM4MjIpIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzICswNyIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgKzA3IGZvciBwYXR0ZXJuIE1NL2RkL3l5IHogZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIHJhdyBkaWdpdHMgKFJGQzgyMikgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgLTA3MzAiKTsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIC0wMDczMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6IGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciByYXcgZGlnaXRzIChSRkM4MjIpIGluIERTVAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXQuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBEVCIpKTsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIC0wNzMwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyAtMDczMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6IGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRvTG9jYWxpemVkUGF0dGVybgorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImFhYmJjYyIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMsIHNob3VsZG4ndCBoYXZlIGJlZW4gYWJsZSB0byBsb2NhbGl6ZSBhYWJiY2MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJhYWJiY2MgbG9jYWxpemUgb2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIidhYWJiY2MiKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IGZtdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzLCBsb2NhbGl6ZSB1bmNsb3NlZCBxdW90ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImxvY2FsaXplIHVuY2xvc2VkIHF1b3RlIG9rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU0vZGQveXkgeiIpOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDgvMTUvNTggREJEWSI7IC8vIGJvZ3VzIHRpbWUgem9uZQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXQucGFyc2UodGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oInJlY29nbml6ZWQgYm9ndXMgdGltZSB6b25lIERCRFkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oInRpbWUgem9uZSBleCBvayIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBmb3JjZSBmYWxsYmFjayB0byBkZWZhdWx0IHRpbWV6b25lIHdoZW4gZm10IHRpbWV6b25lIAorICAgICAgICAgICAgLy8gaXMgbm90IG5hbWVkCisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eSB6Iik7CisgICAgICAgICAgICAvLyBmb3JjZSBmYWxsYmFjayB0byBkZWZhdWx0IHRpbWUgem9uZSwgc3RpbGwgZmFpbHMKKyAgICAgICAgICAgIGZtdC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UKzAxNDciKSk7IC8vIG5vdCBpbiBlcXVpdmFsZW5jeSBncm91cAorICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDgvMTUvNTggREJEWSI7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgREJEWSBmb3IgcGF0dGVybiBNTS9kZC95eSB6IHBhc3NlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigidGltZSB6b25lIGV4MiBvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBmb3JjZSBzdWNjZXNzIG9uIGZhbGxiYWNrCisgICAgICAgICAgICB0ZXh0ID0gIjA4LzE1LzU4ICIgKyBUaW1lWm9uZS5nZXREZWZhdWx0KCkuZ2V0SUQoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm10LnBhcnNlKHRleHQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJmb3VuZCBkZWZhdWx0IHR6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMsIGdvdCBwYXJzZSBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZm9yY2UgZmFsbGJhY2sgdG8gc3ltYm9scyBsaXN0IG9mIHRpbWV6b25lcyB3aGVuIG5laXRoZXIgCisgICAgICAgICAgICAvLyBmbXQgYW5kIGRlZmF1bHQgdGltZXpvbmUgaXMgbmFtZWQKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5IHoiKTsKKyAgICAgICAgICAgIFRpbWVab25lIG9sZHR6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgVGltZVpvbmUgbmV3dHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UKzAxMzciKTsgLy8gbm9uc3RhbmRhcmQgdHoKKyAgICAgICAgICAgIGZtdC5zZXRUaW1lWm9uZShuZXd0eik7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG5ld3R6KTsgLy8gdG9kbzogZml4IHNlY3VyaXR5IGlzc3VlCisKKyAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHN5bWJvbCBsaXN0LCBidXQgZmFpbAorICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDgvMTUvNTggREJEWSI7IC8vIHRyeSB0byBwYXJzZSB0aGUgYm9ndXMgdGltZSB6b25lCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgREJEWSBmb3IgcGF0dGVybiBNTS9kZC95eSB6IHBhc3NlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigidGltZSB6b25lIGV4MyBvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gaG1tbS4uLiB0aGlzIHNob3VsZG4ndCBoYXBwZW4uICBkb24ndCB3YW50IHRvIGV4aXQgdGhpcworICAgICAgICAgICAgICAgIC8vIGZuIHdpdGggdGltZXpvbmUgaW1wcm9wZXJseSBzZXQsIHNvIGp1c3QgaW4gY2FzZQorICAgICAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQob2xkdHopOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjcmVhdGUgREZTIHRoYXQgcmVjb2duaXplcyBvdXIgYm9ndXMgdGltZSB6b25lLCBzb3J0b2YKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHhzeW0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgICAgIFN0cmluZ1tdW10gdHppZHMgPSB4c3ltLmdldFpvbmVTdHJpbmdzKCk7CisgICAgICAgICAgICBpZiAodHppZHMubGVuZ3RoID4gMCkgeyAvLyBsZXQncyBob3BlIQorICAgICAgICAgICAgICAgIHR6aWRzWzBdWzFdID0gIkRCRFkiOyAvLyBjaGFuZ2UgYSBsb2NhbCBuYW1lCisgICAgICAgICAgICAgICAgbG9nbG4oInJlcGxhY2VkICciICsgdHppZHNbMF1bMF0gKyAiJyB3aXRoIERCRFkiKTsKKworICAgICAgICAgICAgICAgIHhzeW0uc2V0Wm9uZVN0cmluZ3ModHppZHMpOworICAgICAgICAgICAgICAgIGZtdC5zZXREYXRlRm9ybWF0U3ltYm9scyh4c3ltKTsKKworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIndlIHBhcnNlZCBEQkRZIChhcyBHTVQsIGJ1dCBzdGlsbC4uLikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImhleSwgc3RpbGwgZGlkbid0IHJlY29nbml6ZSBEQkRZIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG9sZHR6KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvL2NvdmVyIGdldEF2YWlsYWJsZVVMb2NhbGVzCisgICAgICAgICAgICBmaW5hbCBVTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgICAgIGxvbmcgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgICAgIGlmIChjb3VudD09MCkgeworICAgICAgICAgICAgICAgIGVycmxuKCIgZ290IGEgZW1wdHkgbGlzdCBmb3IgZ2V0QXZhaWxhYmxlVUxvY2FsZXMiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgY291bnQgKyAiIGF2YWlsYWJsZSB1bG9jYWxlcyIpOyAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAvL2NvdmVyIERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUKKyAgICAgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBteXN5bSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhjYWwsIGxvYyk7CisgICAgICAgICAgICBpZiAobXlzeW0gPT0gbnVsbCkgCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdHMgRGF0ZUZvcm1hdFN5bWJvbHMgd2l0aCBjYWxlbmRhciBhbmQgbG9jYWxlIGZhaWxlZCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB1bG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXNiID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwsIGxvYyk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXNiMiA9IERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUoY2FsLCB1bG9jKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHJlc2IzID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwuZ2V0Q2xhc3MoKSwgbG9jKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHJlc2I0ID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwuZ2V0Q2xhc3MoKSwgdWxvYyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIChUb0RvKSBOb3Qgc3VyZSBob3cgdG8gY29uc3RydWN0IHJlc291cmNlQnVuZGxlIGZvciB0aGlzIHRlc3QKKyAgICAgICAgICAgICAgICBTbyBjb21tZW50IG91dCB0aGUgdmVyaWZ5aW5nIGNvZGUuIAorICAgICAgICAgICAgaWYgKCFyZXNiLmVxdWFscyhyZXNiMikgfHwgCisgICAgICAgICAgICAgICAgIXJlc2IuZXF1YWxzKHJlc2IzKSB8fAorICAgICAgICAgICAgICAgICFyZXNiLmVxdWFscyhyZXNiNCkgKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXREYXRlRm9ybWF0QnVuZGxlIGZhaWxlZCEiKTsgICAgICAgICAgICAKKyAgICAgICAgICAgICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RhbmRBbG9uZU1vbnRocygpCisgICAgeworICAgICAgICBTdHJpbmcgRU5fREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW06c3MiLAorCisgICAgICAgICAgICAieXl5eSBMTExMIGRkIEg6bW06c3MiLCAiZnAiLCAiMjAwNCAwMyAxMCAxNjozNjozMSIsICIyMDA0IE1hcmNoIDEwIDE2OjM2OjMxIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgInl5eXkgTExMIGRkIEg6bW06c3MiLCAgImZwIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEiLCAiMjAwNCBNYXIgMTAgMTY6MzY6MzEiLCAgICIyMDA0IDAzIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICJ5eXl5IExMTEwgZGQgSDptbTpzcyIsICJGIiwgICIyMDA0IDAzIDEwIDE2OjM2OjMxIiwgIjIwMDQgTWFyY2ggMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgInl5eXkgTExMIGRkIEg6bW06c3MiLCAgInBmIiwgIjIwMDQgTWFyIDEwIDE2OjM2OjMxIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEiLCAiMjAwNCBNYXIgMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiSmFudWFyeSIsICAgIjE5NzAgMDEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLCAiRmVicnVhcnkiLCAgIjE5NzAgMDIgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDAzIDAxIDA6MDA6MDAiLCAiTWFyY2giLCAgICAgIjE5NzAgMDMgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA0IDAxIDA6MDA6MDAiLCAiQXByaWwiLCAgICAgIjE5NzAgMDQgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA1IDAxIDA6MDA6MDAiLCAiTWF5IiwgICAgICAgIjE5NzAgMDUgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA2IDAxIDA6MDA6MDAiLCAiSnVuZSIsICAgICAgIjE5NzAgMDYgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA3IDAxIDA6MDA6MDAiLCAiSnVseSIsICAgICAgIjE5NzAgMDcgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLCAiQXVndXN0IiwgICAgIjE5NzAgMDggMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA5IDAxIDA6MDA6MDAiLCAiU2VwdGVtYmVyIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDEwIDAxIDA6MDA6MDAiLCAiT2N0b2JlciIsICAgIjE5NzAgMTAgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDExIDAxIDA6MDA6MDAiLCAiTm92ZW1iZXIiLCAgIjE5NzAgMTEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDEyIDAxIDA6MDA6MDAiLCAiRGVjZW1iZXIiLCAgIjE5NzAgMTIgMDEgMDowMDowMCIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIkphbiIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLCAiRmViIiwgIjE5NzAgMDIgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDMgMDEgMDowMDowMCIsICJNYXIiLCAiMTk3MCAwMyAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwgIkFwciIsICIxOTcwIDA0IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA1IDAxIDA6MDA6MDAiLCAiTWF5IiwgIjE5NzAgMDUgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDYgMDEgMDowMDowMCIsICJKdW4iLCAiMTk3MCAwNiAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwgIkp1bCIsICIxOTcwIDA3IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLCAiQXVnIiwgIjE5NzAgMDggMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsICJTZXAiLCAiMTk3MCAwOSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIk9jdCIsICIxOTcwIDEwIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDExIDAxIDA6MDA6MDAiLCAiTm92IiwgIjE5NzAgMTEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsICJEZWMiLCAiMTk3MCAxMiAwMSAwOjAwOjAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBDU19EQVRBW10gPSB7CisgICAgICAgICAgICAieXl5eSBNTSBkZCBISDptbTpzcyIsCisKKyAgICAgICAgICAgICJ5eXl5IExMTEwgZGQgSDptbTpzcyIsICJmcCIsICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwgIjIwMDQgZHViZW4gMTAgMTY6MzY6MzEiLCAiMjAwNCAwNCAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAieXl5eSBNTU1NIGRkIEg6bW06c3MiLCAiZnAiLCAiMjAwNCAwNCAxMCAxNjozNjozMSIsICIyMDA0IGR1Ym5hIDEwIDE2OjM2OjMxIiwgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgInl5eXkgTExMIGRkIEg6bW06c3MiLCAgImZwIiwgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLCAiMjAwNCA0LiAxMCAxNjozNjozMSIsICAgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgInl5eXkgTExMTCBkZCBIOm1tOnNzIiwgIkYiLCAgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLCAiMjAwNCBkdWJlbiAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAieXl5eSBNTU1NIGRkIEg6bW06c3MiLCAiRiIsICAiMjAwNCAwNCAxMCAxNjozNjozMSIsICIyMDA0IGR1Ym5hIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICJ5eXl5IExMTEwgZGQgSDptbTpzcyIsICJwZiIsICIyMDA0IGR1YmVuIDEwIDE2OjM2OjMxIiwgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLCAiMjAwNCBkdWJlbiAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAieXl5eSBNTU1NIGRkIEg6bW06c3MiLCAicGYiLCAiMjAwNCBkdWJuYSAxMCAxNjozNjozMSIsICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwgIjIwMDQgZHVibmEgMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAibGVkZW4iLCAgICAgICAgICAgICAgICIxOTcwIDAxIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwMiAwMSAwOjAwOjAwIiwgIlx1MDBGQW5vciIsICAgICAgICAgICAiMTk3MCAwMiAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMDMgMDEgMDowMDowMCIsICJiXHUwMTU5ZXplbiIsICAgICAgICAgIjE5NzAgMDMgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA0IDAxIDA6MDA6MDAiLCAiZHViZW4iLCAgICAgICAgICAgICAgICIxOTcwIDA0IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwNSAwMSAwOjAwOjAwIiwgImt2XHUwMTFCdGVuIiwgICAgICAgICAiMTk3MCAwNSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMDYgMDEgMDowMDowMCIsICJcdTAxMERlcnZlbiIsICAgICAgICAgIjE5NzAgMDYgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA3IDAxIDA6MDA6MDAiLCAiXHUwMTBEZXJ2ZW5lYyIsICAgICAgICIxOTcwIDA3IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwOCAwMSAwOjAwOjAwIiwgInNycGVuIiwgICAgICAgICAgICAgICAiMTk3MCAwOCAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsICJ6XHUwMEUxXHUwMTU5XHUwMEVEIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDEwIDAxIDA6MDA6MDAiLCAiXHUwMTU5XHUwMEVEamVuIiwgICAgICIxOTcwIDEwIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAxMSAwMSAwOjAwOjAwIiwgImxpc3RvcGFkIiwgICAgICAgICAgICAiMTk3MCAxMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsICJwcm9zaW5lYyIsICAgICAgICAgICAgIjE5NzAgMTIgMDEgMDowMDowMCIsCisKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIjEuIiwgICIxOTcwIDAxIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLCAiMi4iLCAgIjE5NzAgMDIgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDMgMDEgMDowMDowMCIsICIzLiIsICAiMTk3MCAwMyAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwgIjQuIiwgICIxOTcwIDA0IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA1IDAxIDA6MDA6MDAiLCAiNS4iLCAgIjE5NzAgMDUgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDYgMDEgMDowMDowMCIsICI2LiIsICAiMTk3MCAwNiAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwgIjcuIiwgICIxOTcwIDA3IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLCAiOC4iLCAgIjE5NzAgMDggMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsICI5LiIsICAiMTk3MCAwOSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIjEwLiIsICIxOTcwIDEwIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDExIDAxIDA6MDA6MDAiLCAiMTEuIiwgIjE5NzAgMTEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsICIxMi4iLCAiMTk3MCAxMiAwMSAwOjAwOjAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGV4cGVjdChFTl9EQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgICAgICBleHBlY3QoQ1NfREFUQSwgbmV3IExvY2FsZSgiY3MiLCAiIiwgIiIpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFN0YW5kQWxvbmVEYXlzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBFTl9EQVRBW10gPSB7CisgICAgICAgICAgICAieXl5eSBNTSBkZCBISDptbTpzcyIsCisKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDQgMDowMDowMCIsICJTdW5kYXkiLCAgICAiMTk3MCAwMSAwNCAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDUgMDowMDowMCIsICJNb25kYXkiLCAgICAiMTk3MCAwMSAwNSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDYgMDowMDowMCIsICJUdWVzZGF5IiwgICAiMTk3MCAwMSAwNiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDcgMDowMDowMCIsICJXZWRuZXNkYXkiLCAiMTk3MCAwMSAwNyAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJUaHVyc2RheSIsICAiMTk3MCAwMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDIgMDowMDowMCIsICJGcmlkYXkiLCAgICAiMTk3MCAwMSAwMiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDMgMDowMDowMCIsICJTYXR1cmRheSIsICAiMTk3MCAwMSAwMyAwOjAwOjAwIiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgImNjYyIsICJmcCIsICIxOTcwIDAxIDA0IDA6MDA6MDAiLCAiU3VuIiwgIjE5NzAgMDEgMDQgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDUgMDowMDowMCIsICJNb24iLCAiMTk3MCAwMSAwNSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNiAwOjAwOjAwIiwgIlR1ZSIsICIxOTcwIDAxIDA2IDA6MDA6MDAiLAorICAgICAgICAgICAgImNjYyIsICJmcCIsICIxOTcwIDAxIDA3IDA6MDA6MDAiLCAiV2VkIiwgIjE5NzAgMDEgMDcgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJUaHUiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwMiAwOjAwOjAwIiwgIkZyaSIsICIxOTcwIDAxIDAyIDA6MDA6MDAiLAorICAgICAgICAgICAgImNjYyIsICJmcCIsICIxOTcwIDAxIDAzIDA6MDA6MDAiLCAiU2F0IiwgIjE5NzAgMDEgMDMgMDowMDowMCIsCisgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIENTX0RBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIEhIOm1tOnNzIiwKKworICAgICAgICAgICAgImNjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNCAwOjAwOjAwIiwgIm5lZFx1MDExQmxlIiwgICAgICAgIjE5NzAgMDEgMDQgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDA1IDA6MDA6MDAiLCAicG9uZFx1MDExQmxcdTAwRUQiLCAiMTk3MCAwMSAwNSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDYgMDowMDowMCIsICJcdTAwRkF0ZXJcdTAwRkQiLCAgICIxOTcwIDAxIDA2IDA6MDA6MDAiLAorICAgICAgICAgICAgImNjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNyAwOjAwOjAwIiwgInN0XHUwMTU5ZWRhIiwgICAgICAgIjE5NzAgMDEgMDcgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiXHUwMTBEdHZydGVrIiwgICAgICAiMTk3MCAwMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDIgMDowMDowMCIsICJwXHUwMEUxdGVrIiwgICAgICAgICIxOTcwIDAxIDAyIDA6MDA6MDAiLAorICAgICAgICAgICAgImNjY2MiLCAiZnAiLCAiMTk3MCAwMSAwMyAwOjAwOjAwIiwgInNvYm90YSIsICAgICAgICAgICAgIjE5NzAgMDEgMDMgMDowMDowMCIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNCAwOjAwOjAwIiwgIm5lIiwgICAgICAiMTk3MCAwMSAwNCAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNSAwOjAwOjAwIiwgInBvIiwgICAgICAiMTk3MCAwMSAwNSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNiAwOjAwOjAwIiwgIlx1MDBGQXQiLCAiMTk3MCAwMSAwNiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNyAwOjAwOjAwIiwgInN0IiwgICAgICAiMTk3MCAwMSAwNyAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIlx1MDEwRHQiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwMiAwOjAwOjAwIiwgInBcdTAwRTEiLCAiMTk3MCAwMSAwMiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwMyAwOjAwOjAwIiwgInNvIiwgICAgICAiMTk3MCAwMSAwMyAwOjAwOjAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGV4cGVjdChFTl9EQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgICAgICBleHBlY3QoQ1NfREFUQSwgbmV3IExvY2FsZSgiY3MiLCAiIiwgIiIpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE5hcnJvd05hbWVzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBFTl9EQVRBW10gPSB7CisgICAgICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW06c3MiLAorCisgICAgICAgICAgICAgICAgInl5eXkgTU1NTU0gZGQgSDptbTpzcyIsICIyMDA0IDAzIDEwIDE2OjM2OjMxIiwgIjIwMDQgTSAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAgICAgInl5eXkgTExMTEwgZGQgSDptbTpzcyIsICAiMjAwNCAwMyAxMCAxNjozNjozMSIsICIyMDA0IE0gMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiSiIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDIgMDEgMDowMDowMCIsICJGIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwMyAwMSAwOjAwOjAwIiwgIk0iLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA0IDAxIDA6MDA6MDAiLCAiQSIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDUgMDEgMDowMDowMCIsICJNIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwNiAwMSAwOjAwOjAwIiwgIkoiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA3IDAxIDA6MDA6MDAiLCAiSiIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDggMDEgMDowMDowMCIsICJBIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwOSAwMSAwOjAwOjAwIiwgIlMiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDEwIDAxIDA6MDA6MDAiLCAiTyIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMTEgMDEgMDowMDowMCIsICJOIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAxMiAwMSAwOjAwOjAwIiwgIkQiLAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiSiIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDIgMDEgMDowMDowMCIsICJGIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwMyAwMSAwOjAwOjAwIiwgIk0iLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDA0IDAxIDA6MDA6MDAiLCAiQSIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDUgMDEgMDowMDowMCIsICJNIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwNiAwMSAwOjAwOjAwIiwgIkoiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDA3IDAxIDA6MDA6MDAiLCAiSiIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDggMDEgMDowMDowMCIsICJBIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwOSAwMSAwOjAwOjAwIiwgIlMiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDEwIDAxIDA6MDA6MDAiLCAiTyIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMTEgMDEgMDowMDowMCIsICJOIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAxMiAwMSAwOjAwOjAwIiwgIkQiLAorCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDQgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwNSAwOjAwOjAwIiwgIk0iLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDA2IDA6MDA6MDAiLCAiVCIsCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDcgMDowMDowMCIsICJXIiwKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIlQiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDAyIDA6MDA6MDAiLCAiRiIsCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDMgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwNCAwOjAwOjAwIiwgIlMiLAorICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDA1IDA6MDA6MDAiLCAiTSIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDYgMDowMDowMCIsICJUIiwKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwNyAwOjAwOjAwIiwgIlciLAorICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiVCIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDIgMDowMDowMCIsICJGIiwKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwMyAwOjAwOjAwIiwgIlMiLAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIENTX0RBVEFbXSA9IHsKKyAgICAgICAgICAgICAgICAieXl5eSBNTSBkZCBISDptbTpzcyIsCisKKyAgICAgICAgICAgICAgICAieXl5eSBMTExMTCBkZCBIOm1tOnNzIiwgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLCAiMjAwNCBkIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICAgICAieXl5eSBNTU1NTSBkZCBIOm1tOnNzIiwgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLCAiMjAwNCBkIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgImwiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLCAiXHUwMEZBIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwMyAwMSAwOjAwOjAwIiwgImIiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA0IDAxIDA6MDA6MDAiLCAiZCIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDUgMDEgMDowMDowMCIsICJrIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwNiAwMSAwOjAwOjAwIiwgIlx1MDEwRCIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDcgMDEgMDowMDowMCIsICJcdTAxMEQiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLCAicyIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsICJ6IiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIlx1MDE1OSIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMTEgMDEgMDowMDowMCIsICJsIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAxMiAwMSAwOjAwOjAwIiwgInAiLAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAibCIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDIgMDEgMDowMDowMCIsICJcdTAwRkEiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDAzIDAxIDA6MDA6MDAiLCAiYiIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDQgMDEgMDowMDowMCIsICJkIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwNSAwMSAwOjAwOjAwIiwgImsiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDA2IDAxIDA6MDA6MDAiLCAiXHUwMTBEIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwgIlx1MDEwRCIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDggMDEgMDowMDowMCIsICJzIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwOSAwMSAwOjAwOjAwIiwgInoiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDEwIDAxIDA6MDA6MDAiLCAiXHUwMTU5IiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAxMSAwMSAwOjAwOjAwIiwgImwiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDEyIDAxIDA6MDA6MDAiLCAicCIsCisKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwNCAwOjAwOjAwIiwgIk4iLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDA1IDA6MDA6MDAiLCAiUCIsCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDYgMDowMDowMCIsICJcdTAwREEiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDA3IDA6MDA6MDAiLCAiUyIsCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJcdTAxMEMiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDAyIDA6MDA6MDAiLCAiUCIsCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDMgMDowMDowMCIsICJTIiwKKworICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDA0IDA6MDA6MDAiLCAiTiIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDUgMDowMDowMCIsICJQIiwKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwNiAwOjAwOjAwIiwgIlx1MDBEQSIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDcgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIlx1MDEwQyIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDIgMDowMDowMCIsICJQIiwKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwMyAwOjAwOjAwIiwgIlMiLAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZXhwZWN0Rm9ybWF0KEVOX0RBVEEsIG5ldyBMb2NhbGUoImVuIiwgIiIsICIiKSk7CisgICAgICAgICAgICBleHBlY3RGb3JtYXQoQ1NfREFUQSwgbmV3IExvY2FsZSgiY3MiLCAiIiwgIiIpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEVyYXMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIEVOX0RBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIiwKKworICAgICAgICAgICAgIk1NTU0gZGQgeXl5eSBHIiwgICAgImZwIiwgIjE5NTEgMDcgMTciLCAiSnVseSAxNyAxOTUxIEFEIiwgICAgICAgICAgIjE5NTEgMDcgMTciLAorICAgICAgICAgICAgIk1NTU0gZGQgeXl5eSBHRyIsICAgImZwIiwgIjE5NTEgMDcgMTciLCAiSnVseSAxNyAxOTUxIEFEIiwgICAgICAgICAgIjE5NTEgMDcgMTciLAorICAgICAgICAgICAgIk1NTU0gZGQgeXl5eSBHR0ciLCAgImZwIiwgIjE5NTEgMDcgMTciLCAiSnVseSAxNyAxOTUxIEFEIiwgICAgICAgICAgIjE5NTEgMDcgMTciLAorICAgICAgICAgICAgIk1NTU0gZGQgeXl5eSBHR0dHIiwgImZwIiwgIjE5NTEgMDcgMTciLCAiSnVseSAxNyAxOTUxIEFubm8gRG9taW5pIiwgIjE5NTEgMDcgMTciLAorCisgICAgICAgICAgICAiTU1NTSBkZCB5eXl5IEciLCAgICAiZnAiLCAiLTQzOCAwNyAxNyIsICJKdWx5IDE3IDA0MzkgQkMiLCAgICAgICAgICAgICItNDM4IDA3IDE3IiwKKyAgICAgICAgICAgICJNTU1NIGRkIHl5eXkgR0ciLCAgICJmcCIsICItNDM4IDA3IDE3IiwgIkp1bHkgMTcgMDQzOSBCQyIsICAgICAgICAgICAgIi00MzggMDcgMTciLAorICAgICAgICAgICAgIk1NTU0gZGQgeXl5eSBHR0ciLCAgImZwIiwgIi00MzggMDcgMTciLCAiSnVseSAxNyAwNDM5IEJDIiwgICAgICAgICAgICAiLTQzOCAwNyAxNyIsCisgICAgICAgICAgICAiTU1NTSBkZCB5eXl5IEdHR0ciLCAiZnAiLCAiLTQzOCAwNyAxNyIsICJKdWx5IDE3IDA0MzkgQmVmb3JlIENocmlzdCIsICItNDM4IDA3IDE3IiwKKyAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZXhwZWN0KEVOX0RBVEEsIG5ldyBMb2NhbGUoImVuIiwgIiIsICIiKSk7CisgICAgfQorLyogICAgCisgICAgcHVibGljIHZvaWQgVGVzdFF1YXJ0ZXJzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBFTl9EQVRBW10gPSB7CisgICAgICAgICAgICAieXl5eSBNTSBkZCIsCisKKyAgICAgICAgICAgICJRIiwgICAgImZwIiwgIjE5NzAgMDEgMDEiLCAiMSIsICAgICAgICAgICAiMTk3MCAwMSAwMSIsCisgICAgICAgICAgICAiUVEiLCAgICJmcCIsICIxOTcwIDA0IDAxIiwgIjAyIiwgICAgICAgICAgIjE5NzAgMDQgMDEiLAorICAgICAgICAgICAgIlFRUSIsICAiZnAiLCAiMTk3MCAwNyAwMSIsICJRMyIsICAgICAgICAgICIxOTcwIDA3IDAxIiwKKyAgICAgICAgICAgICJRUVFRIiwgImZwIiwgIjE5NzAgMTAgMDEiLCAiNHRoIHF1YXJ0ZXIiLCAiMTk3MCAxMCAwMSIsCisKKyAgICAgICAgICAgICJxIiwgICAgImZwIiwgIjE5NzAgMDEgMDEiLCAiMSIsICAgICAgICAgICAiMTk3MCAwMSAwMSIsCisgICAgICAgICAgICAicXEiLCAgICJmcCIsICIxOTcwIDA0IDAxIiwgIjAyIiwgICAgICAgICAgIjE5NzAgMDQgMDEiLAorICAgICAgICAgICAgInFxcSIsICAiZnAiLCAiMTk3MCAwNyAwMSIsICJRMyIsICAgICAgICAgICIxOTcwIDA3IDAxIiwKKyAgICAgICAgICAgICJxcXFxIiwgImZwIiwgIjE5NzAgMTAgMDEiLCAiNHRoIHF1YXJ0ZXIiLCAiMTk3MCAxMCAwMSIsCisgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGV4cGVjdChFTl9EQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKyovICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgcGFyc2luZy4gIElucHV0IGlzIGFuIGFycmF5IHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZworICAgICAqIGhlYWRlcjoKKyAgICAgKgorICAgICAqIFswXSAgID0gcGF0dGVybiBzdHJpbmcgdG8gcGFyc2UgW2krMl0gd2l0aAorICAgICAqCisgICAgICogZm9sbG93ZWQgYnkgdGVzdCBjYXNlcywgZWFjaCBvZiB3aGljaCBpcyAzIGFycmF5IGVsZW1lbnRzOgorICAgICAqCisgICAgICogW2ldICAgPSBwYXR0ZXJuLCBvciBudWxsIHRvIHJldXNlIHByaW9yIHBhdHRlcm4KKyAgICAgKiBbaSsxXSA9IGlucHV0IHN0cmluZworICAgICAqIFtpKzJdID0gZXhwZWN0ZWQgcGFyc2UgcmVzdWx0IChwYXJzZWQgd2l0aCBwYXR0ZXJuIFswXSkKKyAgICAgKgorICAgICAqIElmIGV4cGVjdCBwYXJzZSBmYWlsdXJlLCB0aGVuIFtpKzJdIHNob3VsZCBiZSBudWxsLgorICAgICAqLworICAgIHZvaWQgZXhwZWN0UGFyc2UoU3RyaW5nW10gZGF0YSwgTG9jYWxlIGxvYykgeworICAgICAgICBEYXRlIEZBSUwgPSBudWxsOworICAgICAgICBTdHJpbmcgRkFJTF9TVFIgPSAicGFyc2UgZmFpbHVyZSI7CisgICAgICAgIGludCBpID0gMDsKKworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCIiLCBsb2MpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHJlZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGRhdGFbaSsrXSwgbG9jKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBnb3RmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRyB5eXl5IE1NIGRkIEhIOm1tOnNzIHoiLCBsb2MpOworCisgICAgICAgIFN0cmluZyBjdXJyZW50UGF0ID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKGk8ZGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuICA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCAgICA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IGRhdGFbaSsrXTsKKworICAgICAgICAgICAgaWYgKHBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZtdC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICAgICAgY3VycmVudFBhdCA9IHBhdHRlcm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgZ290c3RyID0gRkFJTF9TVFI7CisgICAgICAgICAgICBEYXRlIGdvdDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZ290ID0gZm10LnBhcnNlKGlucHV0KTsKKyAgICAgICAgICAgICAgICBnb3RzdHIgPSBnb3RmbXQuZm9ybWF0KGdvdCk7CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICAgIGdvdCA9IEZBSUw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIERhdGUgZXhwID0gRkFJTDsKKyAgICAgICAgICAgIFN0cmluZyBleHBzdHIgPSBGQUlMX1NUUjsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXhwc3RyID0gZXhwZWN0ZWQ7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwID0gcmVmLnBhcnNlKGV4cHN0cik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEludGVybmFsIHRlc3QgZXJyb3IiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChnb3QgPT0gZXhwIHx8IChnb3QgIT0gbnVsbCAmJiBnb3QuZXF1YWxzKGV4cCkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaW5wdXQgKyAiIHggIiArCisgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhdCArICIgPT4gIiArIGdvdHN0cik7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGlucHV0ICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYXQgKyAiID0+ICIgKyBnb3RzdHIgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBleHBzdHIpOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvcm1hdHRpbmcuICBJbnB1dCBpcyBhbiBhcnJheSBvZiBTdHJpbmcgdGhhdCBzdGFydHMKKyAgICAgKiB3aXRoIGEgc2luZ2xlICdoZWFkZXInIGVsZW1lbnQKKyAgICAgKgorICAgICAqIFswXSAgID0gcmVmZXJlbmNlIGRhdGVmb3JtYXQgcGF0dGVybiBzdHJpbmcgKHJlZikKKyAgICAgKgorICAgICAqIGZvbGxvd2VkIGJ5IHRlc3QgY2FzZXMsIGVhY2ggb2Ygd2hpY2ggaXMgNCBvciA1IGVsZW1lbnRzOgorICAgICAqCisgICAgICogW2ldICAgPSB0ZXN0IGRhdGVmb3JtYXQgcGF0dGVybiBzdHJpbmcgKHRlc3QpLCBvciBudWxsIHRvIHJldXNlIHByaW9yIHRlc3QgcGF0dGVybgorICAgICAqIFtpKzFdID0gZGF0YSBzdHJpbmcgQQorICAgICAqIFtpKzJdID0gZGF0YSBzdHJpbmcgQgorICAgICAqCisgICAgICogRm9ybWF0cyBhIGRhdGUsIGNoZWNrcyB0aGUgcmVzdWx0LgorICAgICAqCisgICAgICogRXhhbXBsZXM6CisgICAgICogInkvTS9kIEg6bW06c3MuU1NTIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS41NjciCisgICAgICogLS0gcmVmLnBhcnNlIEEsIGdldCB0MAorICAgICAqIC0tIHRlc3QuZm9ybWF0IHQwLCBnZXQgcjAKKyAgICAgKiAtLSBjb21wYXJlIHIwIHRvIEIsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICovCisgICAgdm9pZCBleHBlY3RGb3JtYXQoU3RyaW5nW10gZGF0YSwgTG9jYWxlIGxvYykKKyAgICB7CisgICAgICAgIGludCBpID0gMTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCB1bml2ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFIEcgeXl5eSBNTSBkZCBISDptbTpzcy5TU1Mgenp6IiwgbG9jKTsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnRQYXQgPSBudWxsOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHJlZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGRhdGFbMF0sIGxvYyk7CisKKyAgICAgICAgd2hpbGUgKGk8ZGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIiIsIGxvYyk7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiAgPSBkYXRhW2krK107CisgICAgICAgICAgICBpZiAocGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm10LmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50UGF0ID0gcGF0dGVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGRhdGVzdHIgPSBkYXRhW2krK107CisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nID0gZGF0YVtpKytdOworICAgICAgICAgICAgRGF0ZSBkYXRlID0gbnVsbDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkYXRlID0gcmVmLnBhcnNlKGRhdGVzdHIpOworICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnRlcm5hbCB0ZXN0IGVycm9yOyBjYW4ndCBwYXJzZSAiICsgZGF0ZXN0cik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiXCIiICsgY3VycmVudFBhdCArICJcIi5mb3JtYXQoIiArIGRhdGVzdHIgKyAiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZtdC5mb3JtYXQoZGF0ZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3JtYXR0aW5nIGFuZCBwYXJzaW5nLiAgSW5wdXQgaXMgYW4gYXJyYXkgb2YgU3RyaW5nIHRoYXQgc3RhcnRzCisgICAgICogd2l0aCBhIHNpbmdsZSAnaGVhZGVyJyBlbGVtZW50CisgICAgICoKKyAgICAgKiBbMF0gICA9IHJlZmVyZW5jZSBkYXRlZm9ybWF0IHBhdHRlcm4gc3RyaW5nIChyZWYpCisgICAgICoKKyAgICAgKiBmb2xsb3dlZCBieSB0ZXN0IGNhc2VzLCBlYWNoIG9mIHdoaWNoIGlzIDQgb3IgNSBlbGVtZW50czoKKyAgICAgKgorICAgICAqIFtpXSAgID0gdGVzdCBkYXRlZm9ybWF0IHBhdHRlcm4gc3RyaW5nICh0ZXN0KSwgb3IgbnVsbCB0byByZXVzZSBwcmlvciB0ZXN0IHBhdHRlcm4KKyAgICAgKiBbaSsxXSA9IGNvbnRyb2wgc3RyaW5nLCBlaXRoZXIgImZwIiwgInBmIiwgb3IgIkYiLgorICAgICAqIFtpKzJdID0gZGF0YSBzdHJpbmcgQQorICAgICAqIFtpKzNdID0gZGF0YSBzdHJpbmcgQgorICAgICAqIFtpKzRdID0gZGF0YSBzdHJpbmcgQyAobm90IHByZXNlbnQgZm9yICdGJyBjb250cm9sIHN0cmluZykKKyAgICAgKgorICAgICAqIE5vdGU6IHRoZSBudW1iZXIgb2YgZGF0YSBzdHJpbmdzIGRlcGVuZHMgb24gdGhlIGNvbnRyb2wgc3RyaW5nLgorICAgICAqCisgICAgICogZnAgZm9ybWF0cyBhIGRhdGUsIGNoZWNrcyB0aGUgcmVzdWx0LCB0aGVuIHBhcnNlcyB0aGUgcmVzdWx0IGFuZCBjaGVja3MgYWdhaW5zdCBhIChwb3NzaWJseSBkaWZmZXJlbnQpIGRhdGUKKyAgICAgKiBwZiBwYXJzZXMgYSBzdHJpbmcsIGNoZWNrcyB0aGUgcmVzdWx0LCB0aGVuIGZvcm1hdHMgdGhlIHJlc3VsdCBhbmQgY2hlY2tzIGFnYWluc3QgYSAocG9zc2libHkgZGlmZmVyZW50KSBzdHJpbmcKKyAgICAgKiBGIGlzIGEgc2hvcnRoYW5kIGZvciBmcCB3aGVuIHRoZSBzZWNvbmQgZGF0ZSBpcyB0aGUgc2FtZSBhcyB0aGUgZmlyc3QKKyAgICAgKiBQIGlzIGEgc2hvcnRoYW5kIGZvciBwZiB3aGVuIHRoZSBzZWNvbmQgc3RyaW5nIGlzIHRoZSBzYW1lIGFzIHRoZSBmaXJzdAorICAgICAqCisgICAgICogRXhhbXBsZXM6CisgICAgICogKGZwKSAieS9NL2QgSDptbTpzcy5TUyIsICJmcCIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2NyIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTYiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjAiLAorICAgICAqIC0tIHJlZi5wYXJzZSBBLCBnZXQgdDAKKyAgICAgKiAtLSB0ZXN0LmZvcm1hdCB0MCwgZ2V0IHIwCisgICAgICogLS0gY29tcGFyZSByMCB0byBCLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqIC0tIHRlc3QucGFyc2UgQiwgZ2V0IHQxCisgICAgICogLS0gcmVmLnBhcnNlIEMsIGdldCB0MgorICAgICAqIC0tIGNvbXBhcmUgdDEgYW5kIHQyLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqCisgICAgICogKEYpICJ5L00vZCBIOm1tOnNzLlNTUyIsICJGIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS41NjciCisgICAgICogLS0gcmVmLnBhcnNlIEEsIGdldCB0MAorICAgICAqIC0tIHRlc3QuZm9ybWF0IHQwLCBnZXQgcjAKKyAgICAgKiAtLSBjb21wYXJlIHIwIHRvIEIsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICogLS0gdGVzdC5wYXJzZSBCLCBnZXQgdDEKKyAgICAgKiAtLSBjb21wYXJlIHQxIGFuZCB0MCwgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKgorICAgICAqIChwZikgInkvTS9kIEg6bW06c3MuU1NTUyIsICJwZiIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3OSIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2NyIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3MCIsCisgICAgICogLS0gdGVzdC5wYXJzZSBBLCBnZXQgdDAKKyAgICAgKiAtLSByZWYucGFyc2UgQiwgZ2V0IHQxCisgICAgICogLS0gY29tcGFyZSB0MCB0byB0MSwgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKiAtLSB0ZXN0LmZvcm1hdCB0MSwgZ2V0IHIwCisgICAgICogLS0gY29tcGFyZSByMCBhbmQgQywgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKgorICAgICAqIChQKSAieS9NL2QgSDptbTpzcy5TU1NTIiwgIlAiLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU2NzkiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciIiwKKyAgICAgKiAtLSB0ZXN0LnBhcnNlIEEsIGdldCB0MAorICAgICAqIC0tIHJlZi5wYXJzZSBCLCBnZXQgdDEKKyAgICAgKiAtLSBjb21wYXJlIHQwIHRvIHQxLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqIC0tIHRlc3QuZm9ybWF0IHQxLCBnZXQgcjAKKyAgICAgKiAtLSBjb21wYXJlIHIwIGFuZCBBLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqLworICAgIHZvaWQgZXhwZWN0KFN0cmluZ1tdIGRhdGEsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgaW50IGkgPSAxOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHVuaXYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUUgRyB5eXl5IE1NIGRkIEhIOm1tOnNzLlNTUyB6enoiLCBsb2MpOworICAgICAgICBTdHJpbmcgY3VycmVudFBhdCA9IG51bGw7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgcmVmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZGF0YVswXSwgbG9jKTsKKworICAgICAgICB3aGlsZSAoaTxkYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiIiwgbG9jKTsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuICA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIGlmIChwYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgICAgIGN1cnJlbnRQYXQgPSBwYXR0ZXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgY29udHJvbCA9IGRhdGFbaSsrXTsKKworICAgICAgICAgICAgaWYgKGNvbnRyb2wuZXF1YWxzKCJmcCIpIHx8IGNvbnRyb2wuZXF1YWxzKCJGIikpIHsKKyAgICAgICAgICAgICAgICAvLyAnZicKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGF0ZXN0ciA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nID0gZGF0YVtpKytdOworICAgICAgICAgICAgICAgIFN0cmluZyBkYXRlc3RyMiA9IGRhdGVzdHI7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wubGVuZ3RoKCkgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBkYXRlc3RyMiA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBkYXRlID0gcmVmLnBhcnNlKGRhdGVzdHIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEludGVybmFsIHRlc3QgZXJyb3I7IGNhbid0IHBhcnNlICIgKyBkYXRlc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiXCIiICsgY3VycmVudFBhdCArICJcIi5mb3JtYXQoIiArIGRhdGVzdHIgKyAiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10LmZvcm1hdChkYXRlKSk7CisgICAgICAgICAgICAgICAgLy8gJ3AnCisgICAgICAgICAgICAgICAgaWYgKCFkYXRlc3RyMi5lcXVhbHMoZGF0ZXN0cikpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUgPSByZWYucGFyc2UoZGF0ZXN0cjIpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEludGVybmFsIHRlc3QgZXJyb3I7IGNhbid0IHBhcnNlICIgKyBkYXRlc3RyMik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBEYXRlIHBhcnNlZGF0ZSA9IGZtdC5wYXJzZShzdHJpbmcpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlwiIiArIGN1cnJlbnRQYXQgKyAiXCIucGFyc2UoIiArIHN0cmluZyArICIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXYuZm9ybWF0KGRhdGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdi5mb3JtYXQocGFyc2VkYXRlKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTMpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFwiIiArIGN1cnJlbnRQYXQgKyAiXCIucGFyc2UoIiArIHN0cmluZyArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBlMyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGNvbnRyb2wuZXF1YWxzKCJwZiIpIHx8IGNvbnRyb2wuZXF1YWxzKCJQIikpIHsKKyAgICAgICAgICAgICAgICAvLyAncCcKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nID0gZGF0YVtpKytdOworICAgICAgICAgICAgICAgIFN0cmluZyBkYXRlc3RyID0gZGF0YVtpKytdOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcyID0gc3RyaW5nOworICAgICAgICAgICAgICAgIGlmIChjb250cm9sLmxlbmd0aCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nMiA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBEYXRlIGRhdGUgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGUgPSByZWYucGFyc2UoZGF0ZXN0cik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogSW50ZXJuYWwgdGVzdCBlcnJvcjsgY2FuJ3QgcGFyc2UgIiArIGRhdGVzdHIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZSBwYXJzZWRhdGUgPSBmbXQucGFyc2Uoc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJcIiIgKyBjdXJyZW50UGF0ICsgIlwiLnBhcnNlKCIgKyBzdHJpbmcgKyAiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml2LmZvcm1hdChkYXRlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXYuZm9ybWF0KHBhcnNlZGF0ZSkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBcIiIgKyBjdXJyZW50UGF0ICsgIlwiLnBhcnNlKCIgKyBzdHJpbmcgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZTIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gJ2YnCisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJcIiIgKyBjdXJyZW50UGF0ICsgIlwiLmZvcm1hdCgiICsgZGF0ZXN0ciArICIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10LmZvcm1hdChkYXRlKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogSW52YWxpZCBjb250cm9sIHN0cmluZyAiICsgY29udHJvbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8qCisgICAgcHVibGljIHZvaWQgVGVzdEpCNDc1NygpeworICAgICAgICBEYXRlRm9ybWF0IGRmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIFVMb2NhbGUuUk9PVCk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVUaW1lR2VuZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlVGltZUdlbmVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmZiMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlVGltZUdlbmVyYXRvclRlc3QuamF2YQpAQCAtMCwwICsxLDI1MCBAQAorLy8jI2hlYWRlcgorLy8jaGVhZGVyCisvLyNpZm5kZWYgRk9VTkRBVElPTgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEdvb2dsZSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlBhdHRlcm5Ub2tlbml6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVUaW1lUGF0dGVybkdlbmVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBEYXRlVGltZUdlbmVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIEdFTkVSQVRFX1RFU1RfREFUQSA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgiR0VORVJBVEVfVEVTVF9EQVRBIikgIT0gbnVsbDsKKyAgICBwdWJsaWMgc3RhdGljIGludCBSQU5ET01fQ09VTlQgPSAxMDAwOworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRGF0ZVRpbWVHZW5lcmF0b3JUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2ltcGxlKCkgeworICAgICAgCisgICAgICAvLyBzb21lIHNpbXBsZSB1c2UgY2FzZXMKKyAgICAgIERhdGUgc2FtcGxlRGF0ZSA9IG5ldyBEYXRlKDk5LCA5LCAxMywgMjMsIDU4LCA1OSk7CisgICAgICBVTG9jYWxlIGxvY2FsZSA9IFVMb2NhbGUuR0VSTUFOWTsKKyAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRXVyb3BlL1BhcmlzIik7CisgICAgICAvLyBtYWtlIGZyb20gbG9jYWxlCisgICAgICBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgZ2VuID0gRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGdlbi5nZXRCZXN0UGF0dGVybigiTU1NZGRIbW0iKSwgbG9jYWxlKTsKKyAgICAgIGZvcm1hdC5zZXRUaW1lWm9uZSh6b25lKTsKKyAgICAgIGFzc2VydEVxdWFscygic2ltcGxlIGZvcm1hdDogTU1NZGRIbW0iLCAiODo1OCAxNC4gT2t0IiwgZm9ybWF0LmZvcm1hdChzYW1wbGVEYXRlKSk7CisgICAgICAvLyAoYSBnZW5lcmF0b3IgY2FuIGJlIGJ1aWx0IGZyb20gc2NyYXRjaCwgYnV0IHRoYXQgaXMgbm90IGEgdHlwaWNhbCB1c2UgY2FzZSkKKyAgICAgIAorICAgICAgLy8gbW9kaWZ5IHRoZSBnZW5lcmF0b3IgYnkgYWRkaW5nIHBhdHRlcm5zCisgICAgICBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuUGF0dGVybkluZm8gcmV0dXJuSW5mbyA9IG5ldyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuUGF0dGVybkluZm8oKTsKKyAgICAgIGdlbi5hZGQoImQnLiB2b24nIE1NTU0iLCB0cnVlLCByZXR1cm5JbmZvKTsgCisgICAgICAvLyB0aGUgcmV0dXJuSW5mbyBpcyBtb3N0bHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmcgcHJvYmxlbSBjYXNlcworICAgICAgZm9ybWF0LmFwcGx5UGF0dGVybihnZW4uZ2V0QmVzdFBhdHRlcm4oIk1NTU1kZEhtbSIpKTsKKyAgICAgIGFzc2VydEVxdWFscygibW9kaWZpZWQgZm9ybWF0OiBNTU1kZEhtbSIsICI4OjU4IDE0LiB2b24gT2t0b2JlciIsIGZvcm1hdC5mb3JtYXQoc2FtcGxlRGF0ZSkpOworICAgICAgCisgICAgICAvLyBnZXQgYSBwYXR0ZXJuIGFuZCBtb2RpZnkgaXQKKyAgICAgIGZvcm1hdCA9IChTaW1wbGVEYXRlRm9ybWF0KURhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgbG9jYWxlKTsKKyAgICAgIGZvcm1hdC5zZXRUaW1lWm9uZSh6b25lKTsKKyAgICAgIFN0cmluZyBwYXR0ZXJuID0gZm9ybWF0LnRvUGF0dGVybigpOworICAgICAgYXNzZXJ0RXF1YWxzKCJmdWxsLWRhdGUiLCAiRG9ubmVyc3RhZywgMTQuIE9rdG9iZXIgMTk5OSA4OjU4IFVociBHTVQrMDI6MDAiLCBmb3JtYXQuZm9ybWF0KHNhbXBsZURhdGUpKTsKKyAgICAgIAorICAgICAgLy8gbW9kaWZ5IGl0IHRvIGNoYW5nZSB0aGUgem9uZS4KKyAgICAgIFN0cmluZyBuZXdQYXR0ZXJuID0gZ2VuLnJlcGxhY2VGaWVsZFR5cGVzKHBhdHRlcm4sICJ2dnZ2Iik7CisgICAgICBmb3JtYXQuYXBwbHlQYXR0ZXJuKG5ld1BhdHRlcm4pOworICAgICAgYXNzZXJ0RXF1YWxzKCJmdWxsLWRhdGU6IG1vZGlmaWVkIHpvbmUiLCAiRG9ubmVyc3RhZywgMTQuIE9rdG9iZXIgMTk5OSA4OjU4IFVociBGcmFua3JlaWNoIiwgZm9ybWF0LmZvcm1hdChzYW1wbGVEYXRlKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJuUGFyc2VyKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBQYXR0ZXJuVG9rZW5pemVyIHBwID0gbmV3IFBhdHRlcm5Ub2tlbml6ZXIoKQorICAgICAgICAuc2V0SWdub3JhYmxlQ2hhcmFjdGVycyhuZXcgVW5pY29kZVNldCgiWy1dIikpCisgICAgICAgIC5zZXRTeW50YXhDaGFyYWN0ZXJzKG5ldyBVbmljb2RlU2V0KCJbYS16QS1aXSIpKQorICAgICAgICAuc2V0RXNjYXBlQ2hhcmFjdGVycyhuZXcgVW5pY29kZVNldCgiW2IjXSIpKQorICAgICAgICAuc2V0VXNpbmdRdW90ZSh0cnVlKTsKKyAgICAgICAgbG9nbG4oIlVzaW5nIFF1b3RlIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVyblRlc3REYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVyblRlc3QgPSAoU3RyaW5nKSBwYXR0ZXJuVGVzdERhdGFbaV07CisgICAgICAgICAgICBDaGVja1BhdHRlcm4oYnVmZmVyLCBwcCwgcGF0dGVyblRlc3QpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHJhbmRvbVNldCA9IHsiYWJjZGVmIiwgIiQxMiFAIy0iLCAiJ1xcIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUkFORE9NX0NPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuVGVzdCA9IGdldFJhbmRvbVN0cmluZyhyYW5kb21TZXQsIDAsIDEwKTsKKyAgICAgICAgICAgIENoZWNrUGF0dGVybihidWZmZXIsIHBwLCBwYXR0ZXJuVGVzdCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIlVzaW5nIEJhY2tzbGFzaCIpOworICAgICAgICBwcC5zZXRVc2luZ1F1b3RlKGZhbHNlKS5zZXRVc2luZ1NsYXNoKHRydWUpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhdHRlcm5UZXN0RGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm5UZXN0ID0gKFN0cmluZykgcGF0dGVyblRlc3REYXRhW2ldOworICAgICAgICAgICAgQ2hlY2tQYXR0ZXJuKGJ1ZmZlciwgcHAsIHBhdHRlcm5UZXN0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFJBTkRPTV9DT1VOVDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVyblRlc3QgPSBnZXRSYW5kb21TdHJpbmcocmFuZG9tU2V0LCAwLCAxMCk7CisgICAgICAgICAgICBDaGVja1BhdHRlcm4oYnVmZmVyLCBwcCwgcGF0dGVyblRlc3QpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIFJhbmRvbSByYW5kb20gPSBuZXcgamF2YS51dGlsLlJhbmRvbSgtMSk7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0UmFuZG9tU3RyaW5nKFN0cmluZ1tdIHJhbmRvbUxpc3QsIGludCBtaW5MZW4sIGludCBtYXhMZW4pIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGxlbiA9IHJhbmRvbS5uZXh0SW50KG1heExlbiArIDEgLSBtaW5MZW4pICsgbWluTGVuOworICAgICAgICBmb3IgKGludCBpID0gbWluTGVuOyBpIDwgbGVuOyArKyBpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gcmFuZG9tTGlzdFtyYW5kb20ubmV4dEludChyYW5kb21MaXN0Lmxlbmd0aCldOyAvLyBkb24ndCBib3RoZXIgd2l0aCBzdXJyb2dhdGVzCisgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChyYW5kb20ubmV4dEludChzb3VyY2UubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBDaGVja1BhdHRlcm4oU3RyaW5nQnVmZmVyIGJ1ZmZlciwgUGF0dGVyblRva2VuaXplciBwcCwgU3RyaW5nIHBhdHRlcm5UZXN0KSB7CisgICAgICAgIHBwLnNldFBhdHRlcm4ocGF0dGVyblRlc3QpOworICAgICAgICBpZiAoREVCVUcgJiYgaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHNob3dJdGVtcyhidWZmZXIsIHBwLCBwYXR0ZXJuVGVzdCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIG5vcm1hbGl6ZWQgPSBwcC5zZXRTdGFydCgwKS5ub3JtYWxpemUoKTsKKyAgICAgICAgbG9nbG4oImlucHV0Olx0PCIgKyBwYXR0ZXJuVGVzdCArICI+IiArICJcdG5vcm1hbGl6ZWQ6XHQ8IiArIG5vcm1hbGl6ZWQgKyAiPiIpOworICAgICAgICBTdHJpbmcgZG91YmxlTm9ybWFsaXplZCA9IHBwLnNldFBhdHRlcm4obm9ybWFsaXplZCkubm9ybWFsaXplKCk7CisgICAgICAgIGlmICghbm9ybWFsaXplZC5lcXVhbHMoZG91YmxlTm9ybWFsaXplZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemF0aW9uIG5vdCBpZGVtcG90ZW50Olx0IiArIHBhdHRlcm5UZXN0ICsgIlx0bm9ybWFsaXplZDogIiArIG5vcm1hbGl6ZWQgKyAgIlx0bm9ybWFsaXplZDI6ICIgKyBkb3VibGVOb3JtYWxpemVkKTsKKyAgICAgICAgICAgIC8vIGFsbG93IGZvciBkZWJ1Z2dpbmcgYXQgdGhlIHBvaW50IG9mIGZhaWx1cmUKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIHBwLnNldFBhdHRlcm4ocGF0dGVyblRlc3QpOworICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBwcC5zZXRTdGFydCgwKS5ub3JtYWxpemUoKTsKKyAgICAgICAgICAgICAgICBwcC5zZXRQYXR0ZXJuKG5vcm1hbGl6ZWQpOworICAgICAgICAgICAgICAgIHNob3dJdGVtcyhidWZmZXIsIHBwLCBub3JtYWxpemVkKTsKKyAgICAgICAgICAgICAgICBkb3VibGVOb3JtYWxpemVkID0gcHAubm9ybWFsaXplKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2hvd0l0ZW1zKFN0cmluZ0J1ZmZlciBidWZmZXIsIFBhdHRlcm5Ub2tlbml6ZXIgcHAsIFN0cmluZyBwYXR0ZXJuVGVzdCkgeworICAgICAgICBsb2dsbigiaW5wdXQ6XHQ8IiArIHBhdHRlcm5UZXN0ICsgIj4iKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBpbnQgc3RhdHVzID0gcHAubmV4dChidWZmZXIpOworICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBwcC5ET05FKSBicmVhazsKKyAgICAgICAgICAgIFN0cmluZyBsaXQgPSAiIjsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gcHAuU1lOVEFYICkgeworICAgICAgICAgICAgICAgIGxpdCA9ICJcdDwiICsgcHAucXVvdGVMaXRlcmFsKGJ1ZmZlcikgKyAiPiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiXHQiICsgc3RhdHVzTmFtZVtzdGF0dXNdICsgIlx0PCIgKyBidWZmZXIgKyAiPiIgKyBsaXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBzdGF0dXNOYW1lID0geyJET05FIiwgIlNZTlRBWCIsICJMSVRFUkFMIiwgIkJST0tFTl9RVU9URSIsICJCUk9LRU5fRVNDQVBFIiwgIlVOS05PV04ifTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWMoKSB7CisgICAgICAgIFVMb2NhbGUgdUxvY2FsZSA9IG51bGw7CisgICAgICAgIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvciBkdGZnID0gbnVsbDsKKyAgICAgICAgRGF0ZSBkYXRlID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRlVGVzdERhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChkYXRlVGVzdERhdGFbaV0gaW5zdGFuY2VvZiBVTG9jYWxlKSB7CisgICAgICAgICAgICAgICAgdUxvY2FsZSA9IChVTG9jYWxlKSBkYXRlVGVzdERhdGFbaV07CisgICAgICAgICAgICAgICAgZHRmZyA9IERhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5nZXRJbnN0YW5jZSh1TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZiAoR0VORVJBVEVfVEVTVF9EQVRBKSBsb2dsbigibmV3IFVMb2NhbGUoXCIiICsgdUxvY2FsZS50b1N0cmluZygpICsgIlwiKSwiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0ZVRlc3REYXRhW2ldIGluc3RhbmNlb2YgRGF0ZSkgeworICAgICAgICAgICAgICAgIGRhdGUgPSAoRGF0ZSkgZGF0ZVRlc3REYXRhW2ldOworICAgICAgICAgICAgICAgIGlmIChHRU5FUkFURV9URVNUX0RBVEEpIGxvZ2xuKCJuZXcgRGF0ZSgiICsgZGF0ZS5nZXRZZWFyKCkgKyAiLCAiICsgZGF0ZS5nZXRNb250aCgpICsgIiwgIiArIGRhdGUuZ2V0RGF0ZSgpICsgIiwgIiArIGRhdGUuZ2V0SG91cnMoKSArICIsICIgKyBkYXRlLmdldE1pbnV0ZXMoKSArICIsICIgKyBkYXRlLmdldFNlY29uZHMoKSsgIiksIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGVUZXN0RGF0YVtpXSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXN0U2tlbGV0b24gPSAoU3RyaW5nKSBkYXRlVGVzdERhdGFbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBkdGZnLmdldEJlc3RQYXR0ZXJuKHRlc3RTa2VsZXRvbik7CisgICAgICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCB1TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZm9ybWF0dGVkID0gc2RmLmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAoR0VORVJBVEVfVEVTVF9EQVRBKSBsb2dsbigibmV3IFN0cmluZ1tdIHtcIiIgKyB0ZXN0U2tlbGV0b24gKyAiXCIsIFwiIiArIFV0aWxpdHkuZXNjYXBlKGZvcm1hdHRlZCkgKyAiXCJ9LCIpOworICAgICAgICAgICAgICAgIC8vbG9nbG4odUxvY2FsZSArICJcdCIgKyB0ZXN0U2tlbGV0b24gKyAiXHQiICsgcGF0dGVybiArICJcdCIgKyBzZGYuZm9ybWF0KGRhdGUpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gdGVzdFBhaXIgPSAoU3RyaW5nW10pIGRhdGVUZXN0RGF0YVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdFNrZWxldG9uID0gdGVzdFBhaXJbMF07CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RGb3JtYXR0ZWQgPSB0ZXN0UGFpclsxXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGR0ZmcuZ2V0QmVzdFBhdHRlcm4odGVzdFNrZWxldG9uKTsKKyAgICAgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIHVMb2NhbGUpOworICAgICAgICAgICAgICAgIFN0cmluZyBmb3JtYXR0ZWQgPSBzZGYuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgICAgIGlmIChHRU5FUkFURV9URVNUX0RBVEEpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIm5ldyBTdHJpbmdbXSB7XCIiICsgdGVzdFNrZWxldG9uICsgIlwiLCBcIiIgKyBVdGlsaXR5LmVzY2FwZShmb3JtYXR0ZWQpICsgIlwifSwiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFmb3JtYXR0ZWQuZXF1YWxzKHRlc3RGb3JtYXR0ZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKHVMb2NhbGUgKyAiXHRmb3JtYXR0ZWQgc3RyaW5nIGRvZXNuJ3QgbWF0Y2ggdGVzdCBjYXNlOiAiICsgdGVzdFNrZWxldG9uICsgIlx0IGdlbmVyYXRlZDogIiArICBwYXR0ZXJuICsgIlx0IGV4cGVjdGVkOiAiICsgdGVzdEZvcm1hdHRlZCArICJcdCBnb3Q6ICIgKyBmb3JtYXR0ZWQpOworICAgICAgICAgICAgICAgICAgICBpZiAodHJ1ZSkgeyAvLyBkZWJ1ZworICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IGR0ZmcuZ2V0QmVzdFBhdHRlcm4odGVzdFNrZWxldG9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIHVMb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkID0gc2RmLmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2xvZ2xuKHVMb2NhbGUgKyAiXHQiICsgdGVzdFNrZWxldG9uICsgIlx0IiArIHBhdHRlcm4gKyAiXHQiICsgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdIHBhdHRlcm5UZXN0RGF0YSA9IHsKKyAgICAgICAgIickZicnI2MiLAorICAgICAgICAiJycgJ2EiLAorICAgICAgICAiJy4nJy4nIiwKKyAgICAgICAgIlxcdTAwNjFcXFxcIiwKKyAgICAgICAgIm1tLmRkICdkZCAnIHgiLAorICAgICAgICAiJycgJyciLAorICAgIH07CisgICAgCisgICAgLy8gY2FuIGJlIGdlbmVyYXRlZCBieSB1c2luZyBHRU5FUkFURV9URVNUX0RBVEEuIE11c3QgYmUgcmV2aWV3ZWQgYmVmb3JlIGFkZGluZworICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXSBkYXRlVGVzdERhdGEgPSB7CisgICAgICAgIG5ldyBEYXRlKDk5LCAwLCAxMywgMjMsIDU4LCA1OSksCisgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9VUyIpLAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TSIsICIxLzE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1NTSIsICJKYW4gMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TWQiLCAiMS8xMy8xOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNTU1kIiwgIkphbi8xMy8xOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Ik1kIiwgIjEvMTMifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiTU1NZCIsICJKYW4gMTMifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieVFRUSIsICJRMSAxOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7ImhobW0iLCAiMTE6NTggUE0ifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiSEhtbSIsICIyMzo1OCJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJtbXNzIiwgIjU4OjU5In0sCisgICAgICAgIG5ldyBVTG9jYWxlKCJ6aF9IYW5zX0NOIiksCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNIiwgIjE5OTktMSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TU1NIiwgIjE5OTktMDEifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1kIiwgIjE5OTlcdTVFNzQxXHU2NzA4MTNcdTY1RTUifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1NTWQiLCAiMTk5OVx1NUU3NDAxXHU2NzA4MTNcdTY1RTUifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiTWQiLCAiMS0xMyJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJNTU1kIiwgIjAxLTEzIn0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlRUVEiLCAiMVx1NUI2MyAxOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7ImhobW0iLCAiXHU0RTBCXHU1MzQ4MTE6NTgifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiSEhtbSIsICJcdTRFMEJcdTUzNDgxMTo1OCJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJtbXNzIiwgIjU4OjU5In0sCisgICAgICAgIG5ldyBVTG9jYWxlKCJkZV9ERSIpLAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TSIsICIxLjE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1NTSIsICJKYW4gMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TWQiLCAiMTMuMS4xOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNTU1kIiwgIjEzLiBKYW4gMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJNZCIsICIxMy4xIn0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Ik1NTWQiLCAiMTMuIEphbiJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5UVFRIiwgIlExIDE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiaGhtbSIsICIxMTo1OCBuYWNobS4ifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiSEhtbSIsICIyMzo1OCJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJtbXNzIiwgIjU4OjU5In0sCisgICAgICAgIG5ldyBVTG9jYWxlKCJmaSIpLAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TSIsICIxLjE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1NTSIsICJ0YW1taXRhIDE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1kIiwgIjEzLjEuMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TU1NZCIsICIxMy4gdGFtbWl0YSAxOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Ik1kIiwgIjEzLjEifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiTU1NZCIsICIxMy4gdGFtbWl0YSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5UVFRIiwgIjEuIG5lbGouIDE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiaGhtbSIsICIyMy41OCJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJISG1tIiwgIjIzLjU4In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Im1tc3MiLCAiNTguNTkifSwKKyAgICB9OworfQorLy8jZW5kaWYKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlc1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MWYxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlc1Rlc3QuamF2YQpAQCAtMCwwICsxLDE1NjIgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR2xvYmFsaXphdGlvblByZWZlcmVuY2VzOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisKKworcHVibGljIGNsYXNzIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlc1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlc1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdERlZmF1bHQoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2NhbGUgPSBuZXcgVUxvY2FsZSgiZW5fVVMiKTsKKyAgICAgICAgVUxvY2FsZSBkZWZGYWxsYmFja0xvY2FsZSA9IG5ldyBVTG9jYWxlKCJlbiIpOworCisgICAgICAgIGlmICghZGVmTG9jYWxlLmVxdWFscyhVTG9jYWxlLmdldERlZmF1bHQoKSkpIHsKKyAgICAgICAgICAgIC8vIExvY2FsZS5VUyBpcyBhbHdheXMgdXNlZCBhcyB0aGUgZGVmYXVsdCBsb2NhbGUgaW4gdGhlIHRlc3QgZW52aXJvbm1lbnQKKyAgICAgICAgICAgIC8vIElmIG5vdCwgc29tZSB0ZXN0IGNhc2VzIHdpbGwgZmFpbC4uLgorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBkZWZhdWx0IGxvY2FsZSBvZiB0aGUgdGVzdCBlbnZpcm9ubWVudCBtdXN0IGJlIGVuX1VTIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IGxvY2FsZTogIiArIGRlZkxvY2FsZS50b1N0cmluZygpKTsKKworICAgICAgICAvLyBGaXJzdCBsb2NhbGUgaXMgZW5fVVMKKyAgICAgICAgVUxvY2FsZSBncExvY2FsZTAgPSBncC5nZXRMb2NhbGUoMCk7CisgICAgICAgIGxvZ2xuKCJQcmltYXJ5IGxvY2FsZTogIiArIGdwTG9jYWxlMC50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFncExvY2FsZTAuZXF1YWxzKGRlZkxvY2FsZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgcHJpbWFyeSBsb2NhbGUgaXMgbm90IGVuX1VTIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZWNvbmQgbG9jYWxlIGlzIGVuCisgICAgICAgIFVMb2NhbGUgZ3BMb2NhbGUxID0gZ3AuZ2V0TG9jYWxlKDEpOworICAgICAgICBsb2dsbigiU2Vjb25kYXJ5IGxvY2FsZTogIiArIGdwTG9jYWxlMS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFncExvY2FsZTEuZXF1YWxzKGRlZkZhbGxiYWNrTG9jYWxlKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBzZWNvbmRhcnkgbG9jYWxlIGlzIG5vdCBlbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcmQgbG9jYWxlIGlzIG51bGwKKyAgICAgICAgVUxvY2FsZSBncExvY2FsZTIgPSBncC5nZXRMb2NhbGUoMik7CisgICAgICAgIGlmIChncExvY2FsZTIgIT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBvZiBsb2NhbGVzIG11c3QgYmUgMiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBDYWxlbmRhciBsb2NhbGUKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gZ3AuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgVUxvY2FsZSBjYWxMb2NhbGUgPSBjYWwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgbG9nbG4oIkNhbGVuZGFyIGxvY2FsZTogIiArIGNhbExvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFjYWxMb2NhbGUuZXF1YWxzKGRlZkxvY2FsZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgY2FsZW5kYXIgbG9jYWxlIG11c3QgbWF0Y2ggd2l0aCB0aGUgZGVmYXVsdCBKVk0gbG9jYWxlIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb2xsYXRvciBsb2NhbGUKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IGdwLmdldENvbGxhdG9yKCk7CisgICAgICAgIFVMb2NhbGUgY29sbExvY2FsZSA9IGNvbGwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgbG9nbG4oIkNvbGxhdG9yIGxvY2FsZTogIiArIGNvbGxMb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghY29sbExvY2FsZS5lcXVhbHMoZGVmTG9jYWxlKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBjb2xsYXRvciBsb2NhbGUgbXVzdCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IEpWTSBsb2NhbGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEJyZWFrSXRlcmF0b3IgbG9jYWxlCisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJrID0gZ3AuZ2V0QnJlYWtJdGVyYXRvcihHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQklfQ0hBUkFDVEVSKTsKKyAgICAgICAgVUxvY2FsZSBicmtMb2NhbGUgPSBicmsuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgbG9nbG4oIkJyZWFrSXRlcmF0b3IgbG9jYWxlOiAiICsgYnJrTG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoIWJya0xvY2FsZS5lcXVhbHMoZGVmTG9jYWxlKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBicmVhayBpdGVyYXRvciBsb2NhbGUgbXVzdCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IEpWTSBsb2NhbGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFNraXAgLSBCdWcjNTIwOQorICAgICAgICAvLyBEYXRlRm9ybWF0IGxvY2FsZQorICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfRlVMTCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUpOworICAgICAgICBVTG9jYWxlIGRmTG9jYWxlID0gZGYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQgbG9jYWxlOiAiICsgZGZMb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghZGZMb2NhbGUuZXF1YWxzKGRlZkxvY2FsZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgZGF0ZSBmb3JtYXQgbG9jYWxlIG11c3QgbWF0Y2ggd2l0aCB0aGUgZGVmYXVsdCBKVk0gbG9jYWxlIik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICAvLyBOdW1iZXJGb3JtYXQgbG9jYWxlCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfTlVNQkVSKTsKKyAgICAgICAgVUxvY2FsZSBuZkxvY2FsZSA9IG5mLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgIGxvZ2xuKCJOdW1iZXJGb3JtYXQgbG9jYWxlOiAiICsgbmZMb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghbmZMb2NhbGUuZXF1YWxzKGRlZkxvY2FsZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgbnVtYmVyIGZvcm1hdCBsb2NhbGUgbXVzdCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IEpWTSBsb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGcmVlemFibGUoKSB7CisgICAgICAgIGxvZ2xuKCJDcmVhdGUgYSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2Ugb2JqZWN0Iik7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKyAgICAgICAgaWYgKGdwLmlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGlzIG9iamVjdCBpcyBub3QgeWV0IGZyb3plbiIpOworICAgICAgICB9ICAgICAgICAKKworICAgICAgICBsb2dsbigiQ2FsbCByZXNldCgpIik7CisgICAgICAgIGJvb2xlYW4gYlNldCA9IHRydWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncC5yZXNldCgpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGJTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWJTZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiByZXNldCgpIG11c3Qgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBiZWZvcmUgZnJvemVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBGcmVlemUgdGhlIG9iamVjdAorICAgICAgICBsb2dsbigiRnJlZXplIHRoZSBvYmplY3QiKTsKKyAgICAgICAgZ3AuZnJlZXplKCk7CisgICAgICAgIGlmICghZ3AuaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoaXMgb2JqZWN0IGlzIGFscmVhZHkgZnJvbnplbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVzZXQoKQorICAgICAgICBsb2dsbigiQ2FsbCByZXNldCgpIGFmdGVyIGZyb3plbiIpOworICAgICAgICBiU2V0ID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgYlNldCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChiU2V0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogcmVzZXQoKSBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBzZXRMb2NhbGVzKFVMb2NhbGVbXSkKKyAgICAgICAgbG9nbG4oIkNhbGwgc2V0TG9jYWxlcyhVTG9jYWxlW10pIGFmdGVyIGZyb3plbiIpOworICAgICAgICBiU2V0ID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldExvY2FsZXMobmV3IFVMb2NhbGVbXSB7bmV3IFVMb2NhbGUoImZyX0ZSIil9KTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBiU2V0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJTZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRMb2NhbGVzKFVMb2NhbGVbXSkgbXVzdCBiZSBibG9ja2VkIGFmdGVyIGZyb3plbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0TG9jYWxlcyhVTG9jYWxlW10pCisgICAgICAgIGxvZ2xuKCJDYWxsIHNldExvY2FsZXMoTGlzdCkgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIGJTZXQgPSB0cnVlOworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICAgIGxpc3QuYWRkKG5ldyBVTG9jYWxlKCJmcl9GUiIpKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldExvY2FsZXMobGlzdCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgYlNldCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChiU2V0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0TG9jYWxlcyhMaXN0KSBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgLy8gc2V0TG9jYWxlcyhTdHJpbmcpCisgICAgICAgIGxvZ2xuKCJDYWxsIHNldExvY2FsZXMoU3RyaW5nKSBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgYlNldCA9IHRydWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncC5zZXRMb2NhbGVzKCJwdC1CUixlcztxPTAuNyIpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGJTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYlNldCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldExvY2FsZXMoU3RyaW5nKSBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKy8vI2VuZGlmCisKKyAgICAgICAgLy8gc2V0TG9jYWxlKFVMb2NhbGUpCisgICAgICAgIGxvZ2xuKCJDYWxsIHNldExvY2FsZShVTG9jYWxlKSBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgYlNldCA9IHRydWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImZpX0ZJIikpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGJTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYlNldCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldExvY2FsZShVTG9jYWxlKSBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHNldFRlcnJpdG9yeShTdHJpbmcpCisgICAgICAgIGxvZ2xuKCJDYWxsIHNldFRlcnJpdG9yeShTdHJpbmcpIGFmdGVyIGZyb3plbiIpOworICAgICAgICBiU2V0ID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldFRlcnJpdG9yeSgiQVUiKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBiU2V0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJTZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRUZXJyaXRvcnkoU3RyaW5nKSBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNb2RpZmlhYmxlIGNsb25lCisgICAgICAgIGxvZ2xuKCJDcmVhdGUgYSBtb2RpZmlhYmxlIGNsb25lIik7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncDEgPSAoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKWdwLmNsb25lQXNUaGF3ZWQoKTsKKworICAgICAgICBpZiAoZ3AxLmlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgb2JqZWN0IHJldHVybmVkIGJ5IGNsb25lQXNUaGF3ZWQoKSBtdXN0IG5vdCBiZSBmcm96ZW4geWV0Iik7CisgICAgICAgIH0gICAgICAgIAorCisgICAgICAgIC8vIHNldExvY2FsZShVTG9jYWxlKQorICAgICAgICBsb2dsbigiQ2FsbCBzZXRMb2NhbGUoVUxvY2FsZSkgb2YgdGhlIG1vZGlmaWFibGUgY2xvbmUiKTsKKyAgICAgICAgYlNldCA9IHRydWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncDEuc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJmcl9GUiIpKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBiU2V0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFiU2V0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0TG9jYWxlcyhVTG9jYWxlKSBtdXN0IG5vdCB0aHJvdyBhbiBleGNlcHRpb24gYmVmb3JlIGZyb3plbiIpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nW11bXSBJTlBVVF9MT0NBTEVJRFMgPSB7CisgICAgICAgIHsiZW5fVVMifSwKKyAgICAgICAgeyJmcl9DQSIsICJmciJ9LAorICAgICAgICB7ImZyIiwgImZyX0NBIn0sCisgICAgICAgIHsiZXMiLCAiZnIiLCAiZW5fVVMifSwKKyAgICAgICAgeyJ6aF9DTiIsICJ6aF9IYW5zIiwgInpoX0hhbnNfQ04ifQorICAgIH07CisKKyAgICBzdGF0aWMgU3RyaW5nW10gQUNDRVBUX0xBTkdVQUdFUyA9IHsKKyAgICAgICAgImVuLVVTIiwKKyAgICAgICAgImZyLUNBLGZyO3E9MC41IiwKKyAgICAgICAgImZyX0NBO3E9MC41LGZyIiwKKyAgICAgICAgImVzLGZyO3E9MC43Nixlbl9VUztxPTAuNzUiLAorICAgICAgICAiemgtQ04semgtSGFucztxPTAuNSx6aC1IYW5zLUNOO3E9MC4xIgorICAgIH07CisKKyAgICBzdGF0aWMgU3RyaW5nW11bXSBSRVNVTFRTX0xPQ0FMRUlEUyA9IHsKKyAgICAgICAgeyJlbl9VUyIsICJlbiJ9LAorICAgICAgICB7ImZyX0NBIiwgImZyIn0sCisgICAgICAgIHsiZnJfQ0EiLCAiZnIifSwKKyAgICAgICAgeyJlcyIsICJmciIsICJlbl9VUyIsICJlbiJ9LAorICAgICAgICB7InpoX0hhbnNfQ04iLCAiemhfQ04iLCAiemhfSGFucyIsICJ6aCJ9CisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRMb2NhbGVzKCkgeworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisKKyAgICAgICAgLy8gc2V0TG9jYWxlcyhMaXN0KQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IElOUFVUX0xPQ0FMRUlEUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nW10gbG9jYWxlU3RyaW5ncyA9IElOUFVUX0xPQ0FMRUlEU1tpXTsKKyAgICAgICAgICAgIEFycmF5TGlzdCBsb2NhbGVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsb2NhbGVTdHJpbmdzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgbG9jYWxlcy5hZGQobmV3IFVMb2NhbGUobG9jYWxlU3RyaW5nc1tqXSkpOworICAgICAgICAgICAgICAgIGlmIChqICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc2IuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQobG9jYWxlU3RyaW5nc1tqXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiSW5wdXQgbG9jYWxlczogIiArIHNiLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBncC5yZXNldCgpOworICAgICAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzKTsKKworICAgICAgICAgICAgTGlzdCByZXN1bHRMb2NhbGVzID0gZ3AuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgaWYgKHJlc3VsdExvY2FsZXMuc2l6ZSgpICE9IFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgb2YgbG9jYWxlcyBtaXNtYXRjaCAtIEdQOiIgKyByZXN1bHRMb2NhbGVzLnNpemUoKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiIgKyBSRVNVTFRTX0xPQ0FMRUlEU1tpXS5sZW5ndGgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gZ3AuZ2V0TG9jYWxlKGopOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiTG9jYWxlWyIgKyBqICsgIl06ICIgKyBsb2MudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZ3AuZ2V0TG9jYWxlKGopLnRvU3RyaW5nKCkuZXF1YWxzKFJFU1VMVFNfTE9DQUxFSURTW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IExvY2FsZSBpbmRleCgiICsgaiArICIpIGRvZXMgbm90IG1hdGNoIC0gR1A6IiArIGxvYy50b1N0cmluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeHBlY3RlZDoiICsgUkVTVUxUU19MT0NBTEVJRFNbaV1bal0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gc2V0TG9jYWxlcyhVTG9jYWxlW10pCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5QVVRfTE9DQUxFSURTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBsb2NhbGVTdHJpbmdzID0gSU5QVVRfTE9DQUxFSURTW2ldOworICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZUFycmF5ID0gbmV3IFVMb2NhbGVbSU5QVVRfTE9DQUxFSURTW2ldLmxlbmd0aF07CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxvY2FsZVN0cmluZ3MubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVBcnJheVtqXSA9IG5ldyBVTG9jYWxlKGxvY2FsZVN0cmluZ3Nbal0pOworICAgICAgICAgICAgICAgIGlmIChqICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc2IuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQobG9jYWxlU3RyaW5nc1tqXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiSW5wdXQgbG9jYWxlczogIiArIHNiLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBncC5yZXNldCgpOworICAgICAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVBcnJheSk7CisKKyAgICAgICAgICAgIExpc3QgcmVzdWx0TG9jYWxlcyA9IGdwLmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHRMb2NhbGVzLnNpemUoKSAhPSBSRVNVTFRTX0xPQ0FMRUlEU1tpXS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVtYmVyIG9mIGxvY2FsZXMgbWlzbWF0Y2ggLSBHUDoiICsgcmVzdWx0TG9jYWxlcy5zaXplKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeHBlY3RlZDoiICsgUkVTVUxUU19MT0NBTEVJRFNbaV0ubGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBSRVNVTFRTX0xPQ0FMRUlEU1tpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvYyA9IGdwLmdldExvY2FsZShqKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkxvY2FsZVsiICsgaiArICJdOiAiICsgbG9jLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWdwLmdldExvY2FsZShqKS50b1N0cmluZygpLmVxdWFscyhSRVNVTFRTX0xPQ0FMRUlEU1tpXVtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMb2NhbGUgaW5kZXgoIiArIGogKyAiKSBkb2VzIG5vdCBtYXRjaCAtIEdQOiIgKyBsb2MudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQ6IiArIFJFU1VMVFNfTE9DQUxFSURTW2ldW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgLy8gc2V0TG9jYWxlcyhTdHJpbmcpCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQUNDRVBUX0xBTkdVQUdFUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIGFjY2VwdExhbmd1YWdlID0gQUNDRVBUX0xBTkdVQUdFU1tpXTsKKyAgICAgICAgICAgIGxvZ2xuKCJBY2NlcHQgbGFuZ3VhZ2U6ICIgKyBhY2NlcHRMYW5ndWFnZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgICAgICBncC5zZXRMb2NhbGVzKGFjY2VwdExhbmd1YWdlKTsKKworICAgICAgICAgICAgTGlzdCByZXN1bHRMb2NhbGVzID0gZ3AuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgaWYgKHJlc3VsdExvY2FsZXMuc2l6ZSgpICE9IFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgb2YgbG9jYWxlcyBtaXNtYXRjaCAtIEdQOiIgKyByZXN1bHRMb2NhbGVzLnNpemUoKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiIgKyBSRVNVTFRTX0xPQ0FMRUlEU1tpXS5sZW5ndGgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gZ3AuZ2V0TG9jYWxlKGopOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiTG9jYWxlWyIgKyBqICsgIl06ICIgKyBsb2MudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZ3AuZ2V0TG9jYWxlKGopLnRvU3RyaW5nKCkuZXF1YWxzKFJFU1VMVFNfTE9DQUxFSURTW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IExvY2FsZSBpbmRleCgiICsgaiArICIpIGRvZXMgbm90IG1hdGNoIC0gR1A6IiArIGxvYy50b1N0cmluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeHBlY3RlZDoiICsgUkVTVUxUU19MT0NBTEVJRFNbaV1bal0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgLy8gYWNjZXB0LWxhbmd1YWdlIHdpdGhvdXQgcS12YWx1ZQorICAgICAgICBsb2dsbigiU2V0IGFjY2VwdC1sYW5ndWFnZSAtIGRlLGRlLUFUIik7CisgICAgICAgIGdwLnNldExvY2FsZXMoImRlLGRlLUFUIik7CisgICAgICAgIGlmICghZ3AuZ2V0TG9jYWxlKDApLnRvU3RyaW5nKCkuZXF1YWxzKCJkZV9BVCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0TG9jYWxlKDApIHJldHVybnMgIiArIGdwLmdldExvY2FsZSgwKS50b1N0cmluZygpICsgIiBFeHBlY3RlZDogZGVfQVQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gSW52YWxpZCBhY2NlcHQtbGFuZ3VhZ2UKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBrb19LUiIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImtvX0tSIikpOworICAgICAgICBib29sZWFuIGJFeGNlcHRpb24gPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKCJTZXQgaW52bGFpZCBhY2NlcHQtbGFuZ3VhZ2UgLSBrbz0xMDAiKTsKKyAgICAgICAgICAgIGdwLnNldExvY2FsZXMoImtvPTEwMCIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdhcyB0aHJvd24iKTsKKyAgICAgICAgICAgIGJFeGNlcHRpb24gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghYkV4Y2VwdGlvbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3YXMgbm90IHRocm93biBmb3IgaWxsZWdhbCBhY2NlcHQtbGFuZ3VhZ2UgLSBrbz0xMDAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWdwLmdldExvY2FsZSgwKS50b1N0cmluZygpLmVxdWFscygia29fS1IiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFByZXZpb3VzIHZhbGlkIGxvY2FsZSBsaXN0IGhhZCBnb25lIik7CisgICAgICAgIH0KKy8vI2VuZGlmCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlc291cmNlQnVuZGxlKCkgeworICAgICAgICBTdHJpbmcgYmFzZU5hbWUgPSAiY29tLmlibS5pY3UuZGV2LmRhdGEucmVzb3VyY2VzLlRlc3REYXRhRWxlbWVudHMiOworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYjsKKworICAgICAgICBsb2dsbigiR2V0IGEgcmVzb3VyY2UgYnVuZGxlICIgKyBiYXNlTmFtZSArIAorICAgICAgICAgICAgICAgICIgdXNpbmcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGluaXRpYWxpemVkIGJ5IGxvY2FsZXMgLSBlbl9HQiwgZW5fVVMiKTsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IG5ldyBVTG9jYWxlWzJdOworICAgICAgICBsb2NhbGVzWzBdID0gbmV3IFVMb2NhbGUoImVuX0dCIik7CisgICAgICAgIGxvY2FsZXNbMV0gPSBuZXcgVUxvY2FsZSgiZW5fVVMiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmIgPSBncC5nZXRSZXNvdXJjZUJ1bmRsZShiYXNlTmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gcmIuZ2V0U3RyaW5nKCJmcm9tX2VuX1VTIik7CisgICAgICAgICAgICBpZiAoIXN0ci5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX1VTIikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZnJvbV9lbl9VUyBpcyBub3QgZnJvbSBlbl9VUyBidW5kbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG1yZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1pc3NpbmcgcmVzb3VjZXMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGdwLnJlc2V0KCk7CisKKyAgICAgICAgbG9nbG4oIkdldCBhIHJlc291cmNlIGJ1bmRsZSAiICsgYmFzZU5hbWUgKyAKKyAgICAgICAgIiB1c2luZyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZWQgYnkgbG9jYWxlcyAtIGphLCBlbl9VU19DYWxpZm9ybmlhIik7CisKKyAgICAgICAgbG9jYWxlcyA9IG5ldyBVTG9jYWxlWzJdOworICAgICAgICBsb2NhbGVzWzBdID0gbmV3IFVMb2NhbGUoImphIik7CisgICAgICAgIGxvY2FsZXNbMV0gPSBuZXcgVUxvY2FsZSgiZW5fVVNfQ2FsaWZvcm5pYSIpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMpOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJiID0gZ3AuZ2V0UmVzb3VyY2VCdW5kbGUoYmFzZU5hbWUsIFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0Q29udGV4dENsYXNzTG9hZGVyKCkpOworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHJiLmdldFN0cmluZygiZnJvbV9lbl9VUyIpOworICAgICAgICAgICAgaWYgKCFzdHIuZXF1YWxzKCJUaGlzIGRhdGEgY29tZXMgZnJvbSBlbl9VUyIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZyb21fZW5fVVMgaXMgbm90IGZyb20gZW5fVVMgYnVuZGxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtcmUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNaXNzaW5nIHJlc291Y2VzIik7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiR2V0IGEgcmVzb3VyY2UgYnVuZGxlIHdoaWNoIGRvZXMgbm90IGV4aXN0Iik7CisgICAgICAgIGJvb2xlYW4gYkV4Y2VwdGlvbiA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmIgPSBncC5nZXRSZXNvdXJjZUJ1bmRsZSgiZm9vLmJhci5YWFgiKTsKKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG1yZSkgeworICAgICAgICAgICAgbG9nbG4oIk1pc3NpbmcgcmVzb3VyY2UgZXhjZXB0aW9uIGZvciBnZXR0aW5nIHJlc291cmNlIGJ1bmRsZSAtIGZvby5iYXIuWFhYIik7CisgICAgICAgICAgICBiRXhjZXB0aW9uID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWJFeGNlcHRpb24pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gbXVzdCBiZSB0aHJvd24gZm9yIFJCIC0gZm9vLmJhci5YWFgiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJyaXRvcnkoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICAvLyBUZXJyaXRvcnkgZm9yIHVuc3VwcG9ydGVkIGxhbmd1YWdlIGxvY2FsZQorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGFuZyIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImFuZyIpKTsKKyAgICAgICAgU3RyaW5nIHRlcnJpdG9yeSA9IGdwLmdldFRlcnJpdG9yeSgpOworICAgICAgICBpZiAoIXRlcnJpdG9yeS5lcXVhbHMoIlVTIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXJyaXRvcnkgaXMgIiArIHRlcnJpdG9yeSArICIgLSBFeHBlY3RlZDogVVMiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlcnJpdG9yeSBmb3IgbGFuZ3VhZ2Ugb25seSBsb2NhbGUgImZyIgorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGZyIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiZnIiKSk7CisgICAgICAgIHRlcnJpdG9yeSA9IGdwLmdldFRlcnJpdG9yeSgpOworICAgICAgICBpZiAoIXRlcnJpdG9yeS5lcXVhbHMoIkZSIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXJyaXRvcnkgaXMgIiArIHRlcnJpdG9yeSArICIgLSBFeHBlY3RlZDogRlIiKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0eSB0ZXJyaXRvcnkKKyAgICAgICAgbG9nbG4oIlNldCBleHBsaWNpdCB0ZXJyaXRvcnkgLSBDQSIpOworICAgICAgICBncC5zZXRUZXJyaXRvcnkoIkNBIik7CisgICAgICAgIHRlcnJpdG9yeSA9IGdwLmdldFRlcnJpdG9yeSgpOworICAgICAgICBpZiAoIXRlcnJpdG9yeS5lcXVhbHMoIkNBIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXJyaXRvcnkgaXMgIiArIHRlcnJpdG9yeSArICIgLSBFeHBlY3RlZDogQ0EiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZyZWV6ZQorICAgICAgICBsb2dsbigiRnJlZXplIHRoaXMgb2JqZWN0Iik7CisgICAgICAgIGdwLmZyZWV6ZSgpOworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBiRnJvemVuID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncC5zZXRUZXJyaXRvcnkoIkZSIik7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgbG9nbG4oInNldFRlcnJpdG9yeSBpcyBibG9ja2VkIik7CisgICAgICAgICAgICBiRnJvemVuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWJGcm96ZW4pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRUZXJyaXRvcnkgbXVzdCBiZSBibG9ja2VkIGFmdGVyIGZyb3plbiIpOworICAgICAgICB9CisgICAgICAgIHRlcnJpdG9yeSA9IGdwLmdldFRlcnJpdG9yeSgpOworICAgICAgICBpZiAoIXRlcnJpdG9yeS5lcXVhbHMoIkNBIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXJyaXRvcnkgaXMgbm90IENBIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTYWZlIGNsb25lCisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncDEgPSAoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKWdwLmNsb25lQXNUaGF3ZWQoKTsKKyAgICAgICAgdGVycml0b3J5ID0gZ3AxLmdldFRlcnJpdG9yeSgpOworICAgICAgICBpZiAoIXRlcnJpdG9yeS5lcXVhbHMoIkNBIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXJyaXRvcnkgaXMgIiArIHRlcnJpdG9yeSArICIgLSBFeHBlY3RlZDogQ0EiKTsKKyAgICAgICAgfQorCisgICAgICAgIGdwMS5yZXNldCgpOworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IG5ldyBVTG9jYWxlWzJdOworICAgICAgICBsb2NhbGVzWzBdID0gbmV3IFVMb2NhbGUoImphIik7CisgICAgICAgIGxvY2FsZXNbMV0gPSBuZXcgVUxvY2FsZSgiemhfSGFudF9UVyIpOworIAorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZXMgLSBqYSwgemhfSGFudF9UVyIpOworICAgICAgICBncDEuc2V0TG9jYWxlcyhsb2NhbGVzKTsKKworICAgICAgICB0ZXJyaXRvcnkgPSBncDEuZ2V0VGVycml0b3J5KCk7CisgICAgICAgIGlmICghdGVycml0b3J5LmVxdWFscygiVFciKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlcnJpdG9yeSBpcyAiICsgdGVycml0b3J5ICsgIiAtIEV4cGVjdGVkOiBUVyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5KCkgeworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisKKyAgICAgICAgLy8gU2V0IGxhbmd1YWdlIG9ubHkgbG9jYWxlIC0gamEKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBqYSIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImphIikpOworICAgICAgICBDdXJyZW5jeSBjdXIgPSBncC5nZXRDdXJyZW5jeSgpOworICAgICAgICBTdHJpbmcgY29kZSA9IGN1ci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgaWYgKCFjb2RlLmVxdWFscygiSlBZIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBpcyAiICsgY29kZSArICIgLSBFeHBlY3RlZDogSlBZIik7CisgICAgICAgIH0KKworICAgICAgICBncC5yZXNldCgpOworICAgICAgICAvLyBTZXQgbG9jYWxlcyB3aXRoIHRlcnJpdG9yeQorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGphX1VTIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiamFfVVMiKSk7CisgICAgICAgIGN1ciA9IGdwLmdldEN1cnJlbmN5KCk7CisgICAgICAgIGNvZGUgPSBjdXIuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgIGlmICghY29kZS5lcXVhbHMoIlVTRCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgaXMgIiArIGNvZGUgKyAiIC0gRXhwZWN0ZWQ6IFVTRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGxvY2FsZXMgd2l0aCB0ZXJyaXRvcnkgaW4gdGhlIHNlY29uZCBsb2NhbGUKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGVzIC0gaXQsIGVuX1VTIik7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbMl07CisgICAgICAgIGxvY2FsZXNbMF0gPSBuZXcgVUxvY2FsZSgiaXQiKTsKKyAgICAgICAgbG9jYWxlc1sxXSA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMpOworICAgICAgICBjdXIgPSBncC5nZXRDdXJyZW5jeSgpOworICAgICAgICBjb2RlID0gY3VyLmdldEN1cnJlbmN5Q29kZSgpOworICAgICAgICBpZiAoIWNvZGUuZXF1YWxzKCJVU0QiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEN1cnJlbmN5IGlzICIgKyBjb2RlICsgIiAtIEV4cGVjdGVkOiBVU0QiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBleHBsaWNpdCB0ZXJyaXRvcnkKKyAgICAgICAgbG9nbG4oIlNldCB0ZXJyaXRvcnkgLSBERSIpOworICAgICAgICBncC5zZXRUZXJyaXRvcnkoIkRFIik7CisgICAgICAgIGN1ciA9IGdwLmdldEN1cnJlbmN5KCk7CisgICAgICAgIGNvZGUgPSBjdXIuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgIGlmICghY29kZS5lcXVhbHMoIkVVUiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgaXMgIiArIGNvZGUgKyAiIC0gRXhwZWN0ZWQ6IEVVUiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IGN1cnJlbmN5CisgICAgICAgIEN1cnJlbmN5IGVjdXIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiQlJMIik7CisgICAgICAgIGdwLnNldEN1cnJlbmN5KGVjdXIpOworICAgICAgICBsb2dsbigiU2V0IGV4cGxpY2l0IGN1cnJlbmN5IC0gQlJMIik7CisgICAgICAgIGN1ciA9IGdwLmdldEN1cnJlbmN5KCk7CisgICAgICAgIGNvZGUgPSBjdXIuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgIGlmICghY29kZS5lcXVhbHMoIkJSTCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgaXMgIiArIGNvZGUgKyAiIC0gRXhwZWN0ZWQ6IEJSTCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IHRlcnJpdG9yeSBhZ2FpbgorICAgICAgICBsb2dsbigiU2V0IHRlcnJpdG9yeSAtIEpQIik7CisgICAgICAgIGN1ciA9IGdwLmdldEN1cnJlbmN5KCk7CisgICAgICAgIGNvZGUgPSBjdXIuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgIGlmICghY29kZS5lcXVhbHMoIkJSTCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgaXMgIiArIGNvZGUgKyAiIC0gRXhwZWN0ZWQ6IEJSTCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRnJlZXplCisgICAgICAgIGxvZ2xuKCJGcmVlemUgdGhpcyBvYmplY3QiKTsKKyAgICAgICAgQ3VycmVuY3kgZWN1cjIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiQ0hGIik7CisgICAgICAgIGJvb2xlYW4gYkZyb3plbiA9IGZhbHNlOworICAgICAgICBncC5mcmVlemUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldEN1cnJlbmN5KGVjdXIyKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBsb2dsbigic2V0Q3VycmVuY3kgaXMgYmxvY2tlZCIpOworICAgICAgICAgICAgYkZyb3plbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFiRnJvemVuKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0Q3VycmVuY3kgbXVzdCBiZSBibG9ja2VkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTYWZlIGNsb25lCisgICAgICAgIGxvZ2xuKCJjbG9uZUFzVGhhd2VkIik7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncDEgPSAoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKWdwLmNsb25lQXNUaGF3ZWQoKTsKKyAgICAgICAgY3VyID0gZ3AuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgY29kZSA9IGN1ci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgaWYgKCFjb2RlLmVxdWFscygiQlJMIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBpcyAiICsgY29kZSArICIgLSBFeHBlY3RlZDogQlJMIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZWNwbGljaXQgY3VycmVuY3kKKyAgICAgICAgZ3AxLnNldEN1cnJlbmN5KGVjdXIyKTsKKyAgICAgICAgY3VyID0gZ3AxLmdldEN1cnJlbmN5KCk7CisgICAgICAgIGNvZGUgPSBjdXIuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgIGlmICghY29kZS5lcXVhbHMoIkNIRiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgaXMgIiArIGNvZGUgKyAiIC0gRXhwZWN0ZWQ6IENIRiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhbGVuZGFyKCkgeworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisKKyAgICAgICAgLy8gU2V0IGxvY2FsZSAtIHB0X0JSCisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlIC0gcHQiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJwdCIpKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gZ3AuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgU3RyaW5nIGNhbFR5cGUgPSBjYWwuZ2V0VHlwZSgpOworICAgICAgICBpZiAoIWNhbFR5cGUuZXF1YWxzKCJncmVnb3JpYW4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyIHR5cGUgaXMgIiArIGNhbFR5cGUgKyAiIEV4cGVjdGVkOiBncmVnb3JpYW4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBhIGxpc3Qgb2YgbG9jYWxlcworICAgICAgICBsb2dsbigiU2V0IGxvY2FsZXMgLSBlbiwgZW5fSlAsIGVuX0dCIik7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbM107CisgICAgICAgIGxvY2FsZXNbMF0gPSBuZXcgVUxvY2FsZSgiZW4iKTsKKyAgICAgICAgbG9jYWxlc1sxXSA9IG5ldyBVTG9jYWxlKCJlbl9KUCIpOworICAgICAgICBsb2NhbGVzWzJdID0gbmV3IFVMb2NhbGUoImVuX0dCIik7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlcyk7CisKKyAgICAgICAgY2FsID0gZ3AuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgVUxvY2FsZSBjYWxMb2NhbGUgPSBjYWwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgaWYgKCFjYWxMb2NhbGUuZXF1YWxzKGxvY2FsZXNbMl0pKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIgbG9jYWxlIGlzICIgKyBjYWxMb2NhbGUudG9TdHJpbmcoKSArICIgLSBFeHBlY3RlZDogZW5fR0IiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBlY3BsaWNpdCBjYWxlbmRhcgorICAgICAgICBsb2dsbigiU2V0IEphcGFuZXNlIGNhbGVuZGFyIHRvIHRoaXMgb2JqZWN0Iik7CisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgamNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIGdwLnNldENhbGVuZGFyKGpjYWwpOworICAgICAgICBjYWwgPSBncC5nZXRDYWxlbmRhcigpOworICAgICAgICBjYWxUeXBlID0gY2FsLmdldFR5cGUoKTsKKyAgICAgICAgaWYgKCFjYWxUeXBlLmVxdWFscygiamFwYW5lc2UiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyIHR5cGUgaXMgIiArIGNhbFR5cGUgKyAiIEV4cGVjdGVkOiBqYXBhbmVzZSIpOworICAgICAgICB9CisKKyAgICAgICAgamNhbC5zZXRGaXJzdERheU9mV2VlaygzKTsKKyAgICAgICAgaWYgKGNhbC5nZXRGaXJzdERheU9mV2VlaygpID09IGpjYWwuZ2V0Rmlyc3REYXlPZldlZWsoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyIHJldHVybmVkIGJ5IGdldENhbGVuZGFyIG11c3QgYmUgYSBzYWZlIGNvcHkiKTsKKyAgICAgICAgfQorICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoMyk7CisgICAgICAgIENhbGVuZGFyIGNhbDEgPSBncC5nZXRDYWxlbmRhcigpOworICAgICAgICBpZiAoY2FsMS5nZXRGaXJzdERheU9mV2VlaygpID09IGNhbC5nZXRGaXJzdERheU9mV2VlaygpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIgcmV0dXJuZWQgYnkgZ2V0Q2FsZW5kYXIgbXVzdCBiZSBhIHNhZmUgY29weSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRnJlZXplCisgICAgICAgIGxvZ2xuKCJGcmVlemUgdGhpcyBvYmplY3QiKTsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGljYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKCk7CisgICAgICAgIGJvb2xlYW4gYkZyb3plbiA9IGZhbHNlOworICAgICAgICBncC5mcmVlemUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldENhbGVuZGFyKGljYWwpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzZXRDYWxlbmRhciBpcyBibG9ja2VkIik7CisgICAgICAgICAgICBiRnJvemVuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWJGcm96ZW4pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDYWxlbmRhciBtdXN0IGJlIGJsb2NrZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNhZmUgY2xvbmUKKyAgICAgICAgbG9nbG4oImNsb25lQXNUaGF3ZWQiKTsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwMSA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpZ3AuY2xvbmVBc1RoYXdlZCgpOworICAgICAgICBjYWwgPSBncC5nZXRDYWxlbmRhcigpOworICAgICAgICBjYWxUeXBlID0gY2FsLmdldFR5cGUoKTsKKyAgICAgICAgaWYgKCFjYWxUeXBlLmVxdWFscygiamFwYW5lc2UiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyIHR5cGUgYWZ0ZSBjbG9uZSBpcyAiICsgY2FsVHlwZSArICIgRXhwZWN0ZWQ6IGphcGFuZXNlIik7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiU2V0IGlzbGFtaWMgY2FsZW5kYXIiKTsKKyAgICAgICAgZ3AxLnNldENhbGVuZGFyKGljYWwpOworICAgICAgICBjYWwgPSBncDEuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgY2FsVHlwZSA9IGNhbC5nZXRUeXBlKCk7CisgICAgICAgIGlmICghY2FsVHlwZS5lcXVhbHMoImlzbGFtaWMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyIHR5cGUgYWZ0ZSBjbG9uZSBpcyAiICsgY2FsVHlwZSArICIgRXhwZWN0ZWQ6IGlzbGFtaWMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lWm9uZSgpIHsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworCisgICAgICAgIC8vIFNldCBsb2NhbGUgLSB6aF9DTiAKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSB6aF9DTiIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoInpoX0NOIikpOworICAgICAgICBUaW1lWm9uZSB0eiA9IGdwLmdldFRpbWVab25lKCk7CisgICAgICAgIFN0cmluZyB0emlkID0gdHouZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscygiQXNpYS9TaGFuZ2hhaSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGltZSB6b25lIElEIGlzICIgKyB0emlkICsgIiBFeHBlY3RlZDogQXNpYS9TaGFuZ2hhaSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGxvY2FsZSAtIGVuCisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlIC0gZW4iKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJlbiIpKTsKKyAgICAgICAgdHogPSBncC5nZXRUaW1lWm9uZSgpOworICAgICAgICB0emlkID0gdHouZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscygiQW1lcmljYS9OZXdfWW9yayIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGltZSB6b25lIElEIGlzICIgKyB0emlkICsgIiBFeHBlY3RlZDogQW1lcmljYS9OZXdfWW9yayIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IHRlcnJpdG9yeSAtIEdCCisgICAgICAgIGxvZ2xuKCJTZXQgdGVycml0b3J5IC0gR0IiKTsKKyAgICAgICAgZ3Auc2V0VGVycml0b3J5KCJHQiIpOworICAgICAgICB0eiA9IGdwLmdldFRpbWVab25lKCk7CisgICAgICAgIHR6aWQgPSB0ei5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKCJFdXJvcGUvTG9uZG9uIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaW1lIHpvbmUgSUQgaXMgIiArIHR6aWQgKyAiIEV4cGVjdGVkOiBFdXJvcGUvTG9uZG9uIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBpZiBnZXRUaW1lWm9uZSByZXR1cm5zIGEgc2FmZSBjbG9uZQorICAgICAgICB0ei5zZXRJRCgiQmFkX0lEIik7CisgICAgICAgIHR6ID0gZ3AuZ2V0VGltZVpvbmUoKTsKKyAgICAgICAgdHppZCA9IHR6LmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoIkV1cm9wZS9Mb25kb24iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRpbWUgem9uZSBJRCBpcyAiICsgdHppZCArICIgRXhwZWN0ZWQ6IEV1cm9wZS9Mb25kb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBleHBsaWNpdCB0aW1lIHpvbmUKKyAgICAgICAgVGltZVpvbmUganN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvVG9reW8iKTsKKyAgICAgICAgU3RyaW5nIGN1c3RvbUpzdElkID0gIkphcGFuX1N0YW5kYXJkX1RpbWUiOworICAgICAgICBqc3Quc2V0SUQoY3VzdG9tSnN0SWQpOworICAgICAgICBncC5zZXRUaW1lWm9uZShqc3QpOworICAgICAgICB0eiA9IGdwLmdldFRpbWVab25lKCk7CisgICAgICAgIHR6aWQgPSB0ei5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKGN1c3RvbUpzdElkKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRpbWUgem9uZSBJRCBpcyAiICsgdHppZCArICIgRXhwZWN0ZWQ6ICIgKyBjdXN0b21Kc3RJZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGcmVlemUKKyAgICAgICAgbG9nbG4oIkZyZWV6ZSB0aGlzIG9iamVjdCIpOworICAgICAgICBUaW1lWm9uZSBjc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRXVyb3BlL1BhcmlzIik7CisgICAgICAgIGJvb2xlYW4gYkZyb3plbiA9IGZhbHNlOworICAgICAgICBncC5mcmVlemUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldFRpbWVab25lKGNzdCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgbG9nbG4oInNldFRpbWVab25lIGlzIGJsb2NrZWQiKTsKKyAgICAgICAgICAgIGJGcm96ZW4gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghYkZyb3plbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFRpbWVab25lIG11c3QgYmUgYmxvY2tlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTW9kaWZpYWJsZSBjbG9uZQorICAgICAgICBsb2dsbigiY2xvbmVBc1RoYXdlZCIpOworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AxID0gKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcylncC5jbG9uZUFzVGhhd2VkKCk7CisgICAgICAgIHR6ID0gZ3AxLmdldFRpbWVab25lKCk7CisgICAgICAgIHR6aWQgPSB0ei5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKGN1c3RvbUpzdElkKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRpbWUgem9uZSBJRCBpcyAiICsgdHppZCArICIgRXhwZWN0ZWQ6ICIgKyBjdXN0b21Kc3RJZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgdGltZSB6b25lCisgICAgICAgIGdwMS5zZXRUaW1lWm9uZShjc3QpOworICAgICAgICB0eiA9IGdwMS5nZXRUaW1lWm9uZSgpOworICAgICAgICB0emlkID0gdHouZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscyhjc3QuZ2V0SUQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaW1lIHpvbmUgSUQgaXMgIiArIHR6aWQgKyAiIEV4cGVjdGVkOiAiICsgY3N0LmdldElEKCkpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGF0b3IoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICAvLyBTZXQgbG9jYWxlIC0gdHIKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSB0ciIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoInRyIikpOworICAgICAgICBDb2xsYXRvciBjb2xsID0gZ3AuZ2V0Q29sbGF0b3IoKTsKKyAgICAgICAgU3RyaW5nIGxvY1N0ciA9IGNvbGwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoInRyIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb2xsYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IHRyIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBVbnN1cHBvcnRlZCBjb2xsYXRvciBsb2NhbGUgLSB6dW4KKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSB6dW4iKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJ6dW4iKSk7CisgICAgICAgIGNvbGwgPSBncC5nZXRDb2xsYXRvcigpOworICAgICAgICBsb2NTdHIgPSBjb2xsLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJyb290IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb2xsYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IHJvb3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBsb2NhbGVzIC0gZW5fSlAsIGZyLCBlbl9VUywgZnJfRlIKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBlbl9KUCwgZnIsIGVuX1VTLCBmcl9GUiIpOworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IG5ldyBVTG9jYWxlWzRdOworICAgICAgICBsb2NhbGVzWzBdID0gbmV3IFVMb2NhbGUoImVuX0pQIik7CisgICAgICAgIGxvY2FsZXNbMV0gPSBuZXcgVUxvY2FsZSgiZnIiKTsKKyAgICAgICAgbG9jYWxlc1syXSA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworICAgICAgICBsb2NhbGVzWzNdID0gbmV3IFVMb2NhbGUoImZyX0ZSIik7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlcyk7CisgICAgICAgIGNvbGwgPSBncC5nZXRDb2xsYXRvcigpOworICAgICAgICBsb2NTdHIgPSBjb2xsLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJmcl9GUiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ29sbGF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBmcl9GUiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IENvbGxhdG9yCisgICAgICAgIENvbGxhdG9yIGNvbGwxID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUoIml0IikpOworICAgICAgICBjb2xsMS5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgbG9nbG4oIlNldCBjb2xsYXRvciBmb3IgaXQgaW4gY2Fub25pY2FsIGRlY29ucG9zaXRpb24gbW9kZSIpOworICAgICAgICBncC5zZXRDb2xsYXRvcihjb2xsMSk7CisgICAgICAgIGNvbGwxLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgIGNvbGwgPSBncC5nZXRDb2xsYXRvcigpOworICAgICAgICBsb2NTdHIgPSBjb2xsLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJpdCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ29sbGF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBpdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChjb2xsMS5lcXVhbHMoY29sbCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDb2xsYXRvciBtdXN0IHVzZSBhIHNhZmUgY29weSBvZiBhIENvbGxhdG9yIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBGcmVlemUKKyAgICAgICAgbG9nbG4oIkZyZWV6ZSB0aGlzIG9iamVjdCIpOworICAgICAgICBib29sZWFuIGlzRnJvemVuID0gZmFsc2U7CisgICAgICAgIGdwLmZyZWV6ZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0Q29sbGF0b3IoY29sbDEpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzZXRDb2xsYXRvciBpcyBibG9ja2VkIik7CisgICAgICAgICAgICBpc0Zyb3plbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0Zyb3plbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldENvbGxhdG9yIG11c3QgYmUgYmxvY2tlZCBhZnRlciBmcmVlemUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1vZGlmaWFibGUgY2xvbmUKKyAgICAgICAgbG9nbG4oImNsb25lQXNUaGF3ZWQiKTsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwMSA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpZ3AuY2xvbmVBc1RoYXdlZCgpOworICAgICAgICBjb2xsID0gZ3AxLmdldENvbGxhdG9yKCk7CisgICAgICAgIGxvY1N0ciA9IGNvbGwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoIml0IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb2xsYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGl0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbGwuZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGVjb21wb3NpdGlvbiBtb2RlIGlzIG5vdCBDQU5PTklDQUxfREVDT01QT1NJVElPTiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGN1c3RvbSBjb2xsYXRvciBhZ2FpbgorICAgICAgICBncDEuc2V0Q29sbGF0b3IoY29sbDEpOworICAgICAgICBjb2xsID0gZ3AxLmdldENvbGxhdG9yKCk7CisgICAgICAgIGlmIChjb2xsLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuSURFTlRJQ0FMKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RyZW5ndGggaXMgbm90IElERU5USUNBTCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJyZWFrSXRlcmF0b3IoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICAvLyBVbnN1cHBvcnRlZCBicmVhayBpdGVyYXRvciBsb2NhbGUgLSBhYXIKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBhYXIiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJhYXIiKSk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJrID0gZ3AuZ2V0QnJlYWtJdGVyYXRvcihHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQklfTElORSk7CisgICAgICAgIFN0cmluZyBsb2NTdHIgPSBicmsuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoInJvb3QiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IExpbmUgYnJlYWsgaXRlcmF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiByb290Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgbG9jYWxlIC0gZXMKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBlcyIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImVzIikpOworICAgICAgICBicmsgPSBncC5nZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9DSEFSQUNURVIpOworICAgICAgICAvKiBUT0RPOiBKQiM1MzgzCisgICAgICAgIGxvY1N0ciA9IGJyay5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygiZXMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENoYXJhY3RlciBicmVhayBpdGVyYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGVzIik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgYnJlYWsgc2VudGVuY2UgaXRlcmF0b3IKKyAgICAgICAgbG9nbG4oIlNldCBicmVhayBpdGVyYXRvciBmb3Igc2VudGVuY2UgdXNpbmcgbG9jYWxlIGh1X0hVIik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJrMSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShuZXcgVUxvY2FsZSgiaHVfSFUiKSk7CisgICAgICAgIGdwLnNldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX1NFTlRFTkNFLCBicmsxKTsKKworICAgICAgICBicmsgPSBncC5nZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9TRU5URU5DRSk7CisgICAgICAgIC8qIFRPRE86IEpCIzUyMTAKKyAgICAgICAgbG9jU3RyID0gYnJrLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJodV9IVSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogU2VudGVuY2UgYnJlYWsgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBodV9IVSIpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIGJyay5zZXRUZXh0KCJUaGlzIGlzIGEgdGVzdCBjYXNlLiAgSXMgdGhpcyBhIG5ldyBpbnN0YW5jZT8iKTsKKyAgICAgICAgYnJrLm5leHQoKTsKKyAgICAgICAgaWYgKGJyazEuY3VycmVudCgpID09IGJyay5jdXJyZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRCcmVha0l0ZXJhdG9yIG11c3QgcmV0dXJuIGEgbmV3IGluc3RhbmNlIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbGxlZ2FsIGFyZ3VtZW50CisgICAgICAgIGxvZ2xuKCJHZXQgYnJlYWsgaXRlcmF0b3IgdHlwZSAxMDAiKTsKKyAgICAgICAgYm9vbGVhbiBpbGxlZ2FsQXJnID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBicmsgPSBncC5nZXRCcmVha0l0ZXJhdG9yKDEwMCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJCcmVhayBpdGVyYXRvciB0eXBlIDEwMCBpcyBpbGxlZ2FsIik7CisgICAgICAgICAgICBpbGxlZ2FsQXJnID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlsbGVnYWxBcmcpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRCcmVha0l0ZXJhdG9yIG11c3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciB0eXBlIDEwMCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJTZXQgYnJlYWsgaXRlcmF0b3IgdHlwZSAtMSIpOworICAgICAgICBpbGxlZ2FsQXJnID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncC5zZXRCcmVha0l0ZXJhdG9yKC0xLCBicmsxKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIkJyZWFrIGl0ZXJhdG9yIHR5cGUgLTEgaXMgaWxsZWdhbCIpOworICAgICAgICAgICAgaWxsZWdhbEFyZyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbGxlZ2FsQXJnKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0QnJlYWtJdGVyYXRvciBtdXN0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgdHlwZSAtMSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRnJlZXplCisgICAgICAgIGxvZ2xuKCJGcmVlemUgdGhpcyBvYmplY3QiKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmsyID0gQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKG5ldyBVTG9jYWxlKCJlc19NWCIpKTsKKyAgICAgICAgYm9vbGVhbiBpc0Zyb3plbiA9IGZhbHNlOworICAgICAgICBncC5mcmVlemUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX1RJVExFLCBicmsyKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBsb2dsbigic2V0QnJlYWtJdGVyYXRvciBpcyBibG9ja2VkIik7CisgICAgICAgICAgICBpc0Zyb3plbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0Zyb3plbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldEJyZWFrSXRlcmF0b3IgbXVzdCBiZSBibG9ja2VkIGFmdGVyIGZyb3plbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTW9kaWZpYWJsZSBjbG9uZQorICAgICAgICBsb2dsbigiY2xvbmVBc1RoYXdlZCIpOworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AxID0gKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcylncC5jbG9uZUFzVGhhd2VkKCk7CisgICAgICAgIGJyayA9IGdwMS5nZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9XT1JEKTsKKyAgICAgICAgLyogVE9ETzogSkIjNTM4MworICAgICAgICBsb2NTdHIgPSBicmsuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoImVzIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBXb3JkIGJyZWFrIGl0ZXJhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogZXMiKTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIFVMb2NhbGUgZnJGUiA9IG5ldyBVTG9jYWxlKCJmcl9GUiIpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJya0MgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKGZyRlIpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJya1cgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShmckZSKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmtMID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoZnJGUik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJrUyA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShmckZSKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmtUID0gQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKGZyRlIpOworCisgICAgICAgIGdwMS5zZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9DSEFSQUNURVIsIGJya0MpOworICAgICAgICBncDEuc2V0QnJlYWtJdGVyYXRvcihHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQklfV09SRCwgYnJrVyk7CisgICAgICAgIGdwMS5zZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9MSU5FLCBicmtMKTsKKyAgICAgICAgZ3AxLnNldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX1NFTlRFTkNFLCBicmtTKTsKKyAgICAgICAgZ3AxLnNldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX1RJVExFLCBicmtUKTsKKworICAgICAgICAvKiBUT0RPOiBKQiM1MjEwCisgICAgICAgIGxvY1N0ciA9IGJya0MuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoImphX0pQIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBmcl9GUiIpOworICAgICAgICB9CisgICAgICAgIGxvY1N0ciA9IGJya1cuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoImphX0pQIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBXb3JkIGJyZWFrIGl0ZXJhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogZnJfRlIiKTsKKyAgICAgICAgfQorICAgICAgICBsb2NTdHIgPSBicmtMLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJqYV9KUCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTGluZSBicmVhayBpdGVyYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGZyX0ZSIik7CisgICAgICAgIH0KKyAgICAgICAgbG9jU3RyID0gYnJrUy5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygiamFfSlAiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFNlbnRlbmNlIGJyZWFrIGl0ZXJhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogZnJfRlIiKTsKKyAgICAgICAgfQorICAgICAgICBsb2NTdHIgPSBicmtULmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJqYV9KUCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGl0bGUgYnJlYWsgaXRlcmF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBmcl9GUiIpOworICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdERpc3BsYXlOYW1lKCkgeworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisKKyAgICAgICAgVUxvY2FsZSBsb2NfZnJfRlJfUGFyaXMgPSBuZXcgVUxvY2FsZSgiZnJfRlJfUGFyaXMiKTsKKyAgICAgICAgVUxvY2FsZSBsb2NfcGVvID0gbmV3IFVMb2NhbGUoInBlbyIpOworCisgICAgICAgIC8vIExvY2FsZSBsaXN0IC0gZnJfRlJfUGFyaXMKKyAgICAgICAgQXJyYXlMaXN0IGxvY2FsZXMxID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgbG9jYWxlczEuYWRkKGxvY19mcl9GUl9QYXJpcyk7CisKKyAgICAgICAgLy8gTG9jYWxlIGxpc3QgLSBhaW4sIGZyX0ZSX1BhcmlzCisgICAgICAgIEFycmF5TGlzdCBsb2NhbGVzMiA9IG5ldyBBcnJheUxpc3QoMik7CisgICAgICAgIGxvY2FsZXMyLmFkZChsb2NfcGVvKTsKKyAgICAgICAgbG9jYWxlczIuYWRkKGxvY19mcl9GUl9QYXJpcyk7CisKKyAgICAgICAgbG9nbG4oIkxvY2FsZXM6IDxkZWZhdWx0PiB8IDxmcl9GUl9QYXJpcz4gfCA8YWluLCBmcl9GUl9QYXJpcz4iKTsKKworICAgICAgICAvLyBJRF9MT0NBTEUKKyAgICAgICAgU3RyaW5nIGlkID0gInpoX0hhbnRfSEsiOworICAgICAgICBTdHJpbmcgbmFtZTEgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0xPQ0FMRSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczEpOworICAgICAgICBTdHJpbmcgbmFtZTIgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0xPQ0FMRSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBTdHJpbmcgbmFtZTMgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0xPQ0FMRSk7CisKKyAgICAgICAgbG9nbG4oIkxvY2FsZVt6aF9IYW50X0hLXTogIiArIG5hbWUxICsgIiB8ICIgKyBuYW1lMiArICIgfCAiICsgbmFtZTMpOworICAgICAgICBpZiAobmFtZTEuZXF1YWxzKG5hbWUyKSB8fCAhbmFtZTIuZXF1YWxzKG5hbWUzKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IExvY2FsZSBJRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSURfTEFOR1VBR0UKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgaWQgPSAiZnIiOworICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfTEFOR1VBR0UpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMxKTsKKyAgICAgICAgbmFtZTIgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0xBTkdVQUdFKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMik7CisgICAgICAgIG5hbWUzID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9MQU5HVUFHRSk7CisKKyAgICAgICAgbG9nbG4oIkxhbmd1YWdlW2ZyXTogIiArIG5hbWUxICsgIiB8ICIgKyBuYW1lMiArICIgfCAiICsgbmFtZTMpOworICAgICAgICBpZiAobmFtZTEuZXF1YWxzKG5hbWUyKSB8fCAhbmFtZTIuZXF1YWxzKG5hbWUzKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IExhbmd1YWdlIElEIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJRF9TQ1JJUFQKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgaWQgPSAiY3lybCI7CisgICAgICAgIG5hbWUxID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9TQ1JJUFQpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMxKTsKKyAgICAgICAgbmFtZTIgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX1NDUklQVCk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfU0NSSVBUKTsKKworICAgICAgICBsb2dsbigiU2NyaXB0W2N5cmxdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogU2NyaXB0IElEIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJRF9URVJSSVRPUlkKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgaWQgPSAiSlAiOworICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfVEVSUklUT1JZKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMSk7CisgICAgICAgIG5hbWUyID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9URVJSSVRPUlkpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMyKTsKKyAgICAgICAgbmFtZTMgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX1RFUlJJVE9SWSk7CisKKyAgICAgICAgbG9nbG4oIlRlcnJpdG9yeVtKUF06ICIgKyBuYW1lMSArICIgfCAiICsgbmFtZTIgKyAiIHwgIiArIG5hbWUzKTsKKyAgICAgICAgaWYgKG5hbWUxLmVxdWFscyhuYW1lMikgfHwgIW5hbWUyLmVxdWFscyhuYW1lMykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXJyaXRvcnkgSUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElEX1ZBUklBTlQKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgaWQgPSAiTkVESVMiOworICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfVkFSSUFOVCk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczEpOworICAgICAgICBuYW1lMiA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfVkFSSUFOVCk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfVkFSSUFOVCk7CisKKyAgICAgICAgbG9nbG4oIlZhcmlhbnRbTkVESVNdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVmFyaWFudCBJRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSURfS0VZV09SRAorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJjb2xsYXRpb24iOworICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfS0VZV09SRCk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczEpOworICAgICAgICBuYW1lMiA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfS0VZV09SRCk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfS0VZV09SRCk7CisKKyAgICAgICAgbG9nbG4oIktleXdvcmRbY29sbGF0aW9uXTogIiArIG5hbWUxICsgIiB8ICIgKyBuYW1lMiArICIgfCAiICsgbmFtZTMpOworICAgICAgICBpZiAobmFtZTEuZXF1YWxzKG5hbWUyKSB8fCAhbmFtZTIuZXF1YWxzKG5hbWUzKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEtleXdvcmQgSUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElEX0tFWVdPUkRfVkFMVUUKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgaWQgPSAiY29sbGF0aW9uPXRyYWRpdGlvbmFsIjsKKyAgICAgICAgbmFtZTEgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0tFWVdPUkRfVkFMVUUpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMxKTsKKyAgICAgICAgbmFtZTIgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0tFWVdPUkRfVkFMVUUpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMyKTsKKyAgICAgICAgbmFtZTMgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0tFWVdPUkRfVkFMVUUpOworCisgICAgICAgIGxvZ2xuKCJLZXl3b3JkIHZhbHVlW3RyYWRpdGlvbmFsXTogIiArIG5hbWUxICsgIiB8ICIgKyBuYW1lMiArICIgfCAiICsgbmFtZTMpOworICAgICAgICBpZiAobmFtZTEuZXF1YWxzKG5hbWUyKSB8fCAhbmFtZTIuZXF1YWxzKG5hbWUzKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEtleXdvcmQgdmFsdWUgSUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElEX0NVUlJFTkNZX1NZTUJPTAorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJVU0QiOworICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfQ1VSUkVOQ1lfU1lNQk9MKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMSk7CisgICAgICAgIG5hbWUyID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9DVVJSRU5DWV9TWU1CT0wpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMyKTsKKyAgICAgICAgbmFtZTMgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0NVUlJFTkNZX1NZTUJPTCk7CisKKyAgICAgICAgbG9nbG4oIkN1cnJlbmN5IHN5bWJvbFtVU0RdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIFN0cmluZyBkb2xsYXIgPSAiJCI7CisgICAgICAgIGlmICghbmFtZTEuZXF1YWxzKGRvbGxhcikgfHwgIW5hbWUyLmVxdWFscyhkb2xsYXIpIHx8ICFuYW1lMy5lcXVhbHMoZG9sbGFyKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEN1cnJlbmN5IHN5bWJvbCBJRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSURfQ1VSUkVOQ1kKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgaWQgPSAiVVNEIjsKKyAgICAgICAgbmFtZTEgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0NVUlJFTkNZKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMSk7CisgICAgICAgIG5hbWUyID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9DVVJSRU5DWSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfQ1VSUkVOQ1kpOworCisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeVtVU0RdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgSUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElEX1RJTUVaT05FCisgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgIGlkID0gIkV1cm9wZS9QYXJpcyI7CisgICAgICAgIG5hbWUxID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9USU1FWk9ORSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczEpOworICAgICAgICBuYW1lMiA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfVElNRVpPTkUpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMyKTsKKyAgICAgICAgbmFtZTMgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX1RJTUVaT05FKTsKKworICAgICAgICBsb2dsbigiVGltZXpvbmVbRXVyb3BlL1BhcmlzXTogIiArIG5hbWUxICsgIiB8ICIgKyBuYW1lMiArICIgfCAiICsgbmFtZTMpOworICAgICAgICBpZiAobmFtZTEuZXF1YWxzKG5hbWUyKSB8fCAhbmFtZTIuZXF1YWxzKG5hbWUzKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRpbWV6b25lIElEIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbGxlZ2FsIElECisgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgIGJvb2xlYW4gaWxsZWdhbEFyZyA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmFtZTEgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgLTEpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiSWxsZWdhbCB0eXBlIC0xIik7CisgICAgICAgICAgICBpbGxlZ2FsQXJnID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlsbGVnYWxBcmcpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXREaXNwbGF5TmFtZSBtdXN0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgdHlwZSAtMSIpOworICAgICAgICB9CisKKyAgICAgICAgaWxsZWdhbEFyZyA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmFtZTEgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgMTAwKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIklsbGVnYWwgdHlwZSAxMDAiKTsKKyAgICAgICAgICAgIGlsbGVnYWxBcmcgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghaWxsZWdhbEFyZykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERpc3BsYXlOYW1lIG11c3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciB0eXBlIDEwMCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXQoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICBTdHJpbmcgcGF0dGVybjsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZjsKKworICAgICAgICAvLyBTZXQgdW5zdXBwb3J0ZWQgbG9jYWxlIC0gYWNoCisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlIC0gYWNoIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiYWNoIikpOworCisgICAgICAgIC8vIERhdGUgLSBzaG9ydAorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX1NIT1JULCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICAvLyByb290IHBhdHRlcm4gbXVzdCBiZSB1c2VkCisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoInl5L01NL2RkIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTSE9SVCBkYXRlIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiB5eS9NTS9kZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGxvY2FsZSAtIGZyLCBmcl9DQSwgZnJfRlIKKyAgICAgICAgQXJyYXlMaXN0IGxjbHMgPSBuZXcgQXJyYXlMaXN0KDMpOworICAgICAgICBsY2xzLmFkZChuZXcgVUxvY2FsZSgiZnIiKSk7CisgICAgICAgIGxjbHMuYWRkKG5ldyBVTG9jYWxlKCJmcl9DQSIpKTsKKyAgICAgICAgbGNscy5hZGQobmV3IFVMb2NhbGUoImZyX0ZSIikpOworICAgICAgICBsb2dsbigiU2V0IGxvY2FsZXMgLSBmciwgZnJfQ0EsIGZyX0ZSIik7CisgICAgICAgIGdwLnNldExvY2FsZXMobGNscyk7CisgICAgICAgIC8vIERhdGUgLSBzaG9ydAorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX1NIT1JULCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICAvLyBmcl9DQSBwYXR0ZXJuIG11c3QgYmUgdXNlZAorICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJ5eS1NTS1kZCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRlVMTCBkYXRlIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiB5eS1NTS1kZCIpOworICAgICAgICB9CisKKworICAgICAgICAvLyBTZXQgbG9jYWxlIC0gZW5fR0IKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBlbl9HQiIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImVuX0dCIikpOworICAgICAgICAKKyAgICAgICAgLy8gRGF0ZSAtIGZ1bGwKKyAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9GVUxMLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJFRUVFLCBkIE1NTU0geXl5eSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRlVMTCBkYXRlIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiBFRUVFLCBkIE1NTU0geXl5eSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRGF0ZSAtIGxvbmcKKyAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9MT05HLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJkIE1NTU0geXl5eSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTE9ORyBkYXRlIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiBkIE1NTU0geXl5eSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRGF0ZSAtIG1lZGl1bQorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX01FRElVTSwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUpOworICAgICAgICBwYXR0ZXJuID0gKChTaW1wbGVEYXRlRm9ybWF0KWRmKS50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKCFwYXR0ZXJuLmVxdWFscygiZCBNTU0geXl5eSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTUVESVVNIGRhdGUgcGF0dGVybiBpcyAiICsgcGF0dGVybiArICIgRXhwZWN0ZWQ6IGQgTU1NIHl5eXkiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERhdGUgLSBzaG9ydAorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX1NIT1JULCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJkZC9NTS95eXl5IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTSE9SVCBkYXRlIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiBkZC9NTS95eXl5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaW1lIC0gZnVsbAorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9GVUxMKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoIkhIOm1tOnNzIHoiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEZVTEwgdGltZSBwYXR0ZXJuIGlzICIgKyBwYXR0ZXJuICsgIiBFeHBlY3RlZDogSEg6bW06c3MgeiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGltZSAtIGxvbmcKKyAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTE9ORyk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJISDptbTpzcyB6IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMT05HIHRpbWUgcGF0dGVybiBpcyAiICsgcGF0dGVybiArICIgRXhwZWN0ZWQ6IEhIOm1tOnNzIHoiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRpbWUgLSBtZWRpdW0KKyAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTUVESVVNKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoIkhIOm1tOnNzIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNRURJVU0gdGltZSBwYXR0ZXJuIGlzICIgKyBwYXR0ZXJuICsgIiBFeHBlY3RlZDogSEg6bW06c3MiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRpbWUgLSBzaG9ydAorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9TSE9SVCk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJISDptbSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogU0hPUlQgdGltZSBwYXR0ZXJuIGlzICIgKyBwYXR0ZXJuICsgIiBFeHBlY3RlZDogSEg6bW0iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERhdGUvVGltZSAtIGZ1bGwKKyAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9GVUxMLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfRlVMTCk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJFRUVFLCBkIE1NTU0geXl5eSBISDptbTpzcyB6IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBGVUxMIGRhdGUvdGltZSBwYXR0ZXJuIGlzICIgKyBwYXR0ZXJuICsgIiBFeHBlY3RlZDogRUVFRSwgZCBNTU1NIHl5eXkgSEg6bW06c3MgeiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW52YWxpZCBzdHlsZQorICAgICAgICBib29sZWFuIGlsbGVnYWxBcmcgPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdCgtMSwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiSWxsZWdhbCBkYXRlIHN0eWxlIC0xIik7CisgICAgICAgICAgICBpbGxlZ2FsQXJnID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlsbGVnYWxBcmcpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXREYXRlRm9ybWF0KCkgbXVzdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yIGRhdGVTdHlsZSAtMSIpOworICAgICAgICB9CisKKyAgICAgICAgaWxsZWdhbEFyZyA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbGxlZ2FsIHN0eWxlIC0gZGF0ZVN0eWxlOkRGX05PTkUgLyB0aW1lU3R5bGU6REZfTk9ORSIpOworICAgICAgICAgICAgaWxsZWdhbEFyZyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbGxlZ2FsQXJnKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0RGF0ZUZvcm1hdCgpIG11c3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciBkYXRlU3R5bGU6REZfTk9ORS90aW1lU3R5bGU6REZfTk9ORSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IHRpbWUgem9uZQorICAgICAgICBsb2dsbigiU2V0IHRpbWV6b25lIC0gQW1lcmljYS9TYW9fUGF1bG8iKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9TYW9fUGF1bG8iKTsKKyAgICAgICAgZ3Auc2V0VGltZVpvbmUodHopOworICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0xPTkcsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9NRURJVU0pOworICAgICAgICBTdHJpbmcgdHppZCA9IGRmLmdldFRpbWVab25lKCkuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscygiQW1lcmljYS9TYW9fUGF1bG8iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBEYXRlRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIHRpbWV6b25lIEFtZXJpY2EvU2FvX1BhdWxvIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgY2FsZW5kYXIKKyAgICAgICAgbG9nbG4oIlNldCBjYWxlbmRhciAtIGphcGFuZXNlIik7CisgICAgICAgIENhbGVuZGFyIGpjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcigpOworICAgICAgICBqY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJBc2lhL1Rva3lvIikpOworICAgICAgICBncC5zZXRDYWxlbmRhcihqY2FsKTsKKyAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9TSE9SVCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX1NIT1JUKTsKKyAgICAgICAgQ2FsZW5kYXIgZGZDYWwgPSBkZi5nZXRDYWxlbmRhcigpOworICAgICAgICBpZiAoIShkZkNhbCBpbnN0YW5jZW9mIEphcGFuZXNlQ2FsZW5kYXIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIERhdGVGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgSmFwYW5lc2UgY2FsZW5kYXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaW1lWm9uZSBtdXN0IGJlIHN0aWxsIEFtZXJpY2EvU2FvX1BhdWxvCisgICAgICAgIHR6aWQgPSBkZi5nZXRUaW1lWm9uZSgpLmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoIkFtZXJpY2EvU2FvX1BhdWxvIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgRGF0ZUZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSB0aW1lem9uZSBBbWVyaWNhL1Nhb19QYXVsbyIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IERhdGVGb3JtYXQKKyAgICAgICAgbG9nbG4oIlNldCBleHBsaWNpdCBkYXRlIGZvcm1hdCAtIGZ1bGwgZGF0ZSIpOworICAgICAgICBEYXRlRm9ybWF0IGN1c3RvbUZEID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UobmV3IElzbGFtaWNDYWxlbmRhcigpLCBEYXRlRm9ybWF0LkZVTEwsIG5ldyBVTG9jYWxlKCJhcl9TQSIpKTsKKyAgICAgICAgY3VzdG9tRkQuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvUml5YWRoIikpOworICAgICAgICBncC5zZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9GVUxMLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSwgY3VzdG9tRkQpOworICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0ZVTEwsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgZGZDYWwgPSBkZi5nZXRDYWxlbmRhcigpOworICAgICAgICBpZiAoIShkZkNhbCBpbnN0YW5jZW9mIElzbGFtaWNDYWxlbmRhcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgRGF0ZUZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBJc2xhbWljIGNhbGVuZGFyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGltZVpvbmUgaW4gdGhlIGN1c3RvbSBEYXRlRm9ybWF0IGlzIG92ZXJyaWRkZW4gYnkgR1AncyB0aW1lem9uZSBzZXR0aW5nCisgICAgICAgIHR6aWQgPSBkZi5nZXRUaW1lWm9uZSgpLmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoIkFtZXJpY2EvU2FvX1BhdWxvIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgRGF0ZUZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSB0aW1lem9uZSBBbWVyaWNhL1Nhb19QYXVsbyIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRnJlZXplCisgICAgICAgIGxvZ2xuKCJGcmVlemUgdGhpcyBvYmplY3QiKTsKKyAgICAgICAgZ3AuZnJlZXplKCk7CisgICAgICAgIERhdGVGb3JtYXQgY3VzdG9tTEQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShuZXcgQnVkZGhpc3RDYWxlbmRhcigpLCBEYXRlRm9ybWF0LkxPTkcsIG5ldyBVTG9jYWxlKCJ0aCIpKTsKKyAgICAgICAgY3VzdG9tTEQuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvQmFuZ2tvayIpKTsKKyAgICAgICAgYm9vbGVhbiBpc0Zyb3plbiA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTE9ORywgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUsIGN1c3RvbUxEKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBsb2dsbigic2V0RGF0ZUZvcm1hdCBpcyBibG9ja2VkIik7CisgICAgICAgICAgICBpc0Zyb3plbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0Zyb3plbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldERhdGVGb3JtYXQgbXVzdCBiZSBibG9ja2VkIGFmdGVyIGZyb3plbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTW9kaWZpYWJsZSBjbG9uZQorICAgICAgICBsb2dsbigiY2xvbmVBc1RoYXdlZCIpOworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AxID0gKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcylncC5jbG9uZUFzVGhhd2VkKCk7CisgICAgICAgIGdwMS5zZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9MT05HLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSwgY3VzdG9tTEQpOworICAgICAgICAKKyAgICAgICAgZGYgPSBncDEuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfU0hPUlQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9TSE9SVCk7CisgICAgICAgIGRmQ2FsID0gZGYuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgaWYgKCEoZGZDYWwgaW5zdGFuY2VvZiBKYXBhbmVzZUNhbGVuZGFyKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBEYXRlRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIEphcGFuZXNlIGNhbGVuZGFyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGltZVpvbmUgbXVzdCBiZSBzdGlsbCBBbWVyaWNhL1Nhb19QYXVsbworICAgICAgICB0emlkID0gZGYuZ2V0VGltZVpvbmUoKS5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKCJBbWVyaWNhL1Nhb19QYXVsbyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIERhdGVGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgdGltZXpvbmUgQW1lcmljYS9TYW9fUGF1bG8iKTsKKyAgICAgICAgfQorCisgICAgICAgIGRmID0gZ3AxLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0xPTkcsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgZGZDYWwgPSBkZi5nZXRDYWxlbmRhcigpOworICAgICAgICBpZiAoIShkZkNhbCBpbnN0YW5jZW9mIEJ1ZGRoaXN0Q2FsZW5kYXIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIERhdGVGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgQnVkZGhpc3QgY2FsZW5kYXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaW1lWm9uZSBtdXN0IGJlIHN0aWxsIEFtZXJpY2EvU2FvX1BhdWxvCisgICAgICAgIHR6aWQgPSBkZi5nZXRUaW1lWm9uZSgpLmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoIkFtZXJpY2EvU2FvX1BhdWxvIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgRGF0ZUZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSB0aW1lem9uZSBBbWVyaWNhL1Nhb19QYXVsbyIpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TnVtYmVyRm9ybWF0KCkgeworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mOworICAgICAgICBTdHJpbmcgbnVtU3RyOworICAgICAgICBkb3VibGUgbnVtID0gMTIzNDU2Ljc4OTsKKworICAgICAgICAvLyBTZXQgdW5zdXBwb3J0ZWQgbG9jYWxlIHdpdGggc3VwcG9ydGVkIHRlcnJpdG9yeSBhbmdfS1IKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBhbmdfS1IiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJhbmdfS1IiKSk7CisgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9DVVJSRU5DWSk7CisgICAgICAgIG51bVN0ciA9IG5mLmZvcm1hdChudW0pOworICAgICAgICBpZiAoIW51bVN0ci5lcXVhbHMoIktSVyAxMjMsNDU3IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgc3RyaW5nIGlzICIgKyBudW1TdHIgKyAiIEV4cGVjdGVkOiBLUlcgMTIzLDQ1NyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBTZXQgbG9jYWxlIC0gZGVfREUKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBkZV9ERSIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImRlX0RFIikpOworCisgICAgICAgIC8vIE5GX05VTUJFUgorICAgICAgICBsb2dsbigiTlVNQkVSIHR5cGUiKTsKKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX05VTUJFUik7CisgICAgICAgIG51bVN0ciA9IG5mLmZvcm1hdChudW0pOworICAgICAgICBpZiAoIW51bVN0ci5lcXVhbHMoIjEyMy40NTYsNzg5IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgc3RyaW5nIGlzICIgKyBudW1TdHIgKyAiIEV4cGVjdGVkOiAxMjMuNDU2LDc4OSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTkZfQ1VSUkVOQ1kKKyAgICAgICAgbG9nbG4oIkNVUlJFTkNZIHR5cGUiKTsKKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX0NVUlJFTkNZKTsKKyAgICAgICAgbnVtU3RyID0gbmYuZm9ybWF0KG51bSk7CisgICAgICAgIGlmICghbnVtU3RyLmVxdWFscygiMTIzLjQ1Niw3OSBcdTIwQUMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBzdHJpbmcgaXMgIiArIG51bVN0ciArICIgRXhwZWN0ZWQ6IDEyMy40NTYsNzkgXHUyMEFDIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBORl9QRVJDRU5UCisgICAgICAgIGxvZ2xuKCJQRVJDRU5UIHR5cGUiKTsKKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX1BFUkNFTlQpOworICAgICAgICBudW1TdHIgPSBuZi5mb3JtYXQobnVtKTsKKyAgICAgICAgaWYgKCFudW1TdHIuZXF1YWxzKCIxMi4zNDUuNjc5JSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVtYmVyIHN0cmluZyBpcyAiICsgbnVtU3RyICsgIiBFeHBlY3RlZDogMTIuMzQ1LjY3OSUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5GX1NDSUVOVElGSUMKKyAgICAgICAgbG9nbG4oIlNDSUVOVElGSUMgdHlwZSIpOworICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfU0NJRU5USUZJQyk7CisgICAgICAgIG51bVN0ciA9IG5mLmZvcm1hdChudW0pOworICAgICAgICBpZiAoIW51bVN0ci5lcXVhbHMoIjEsMjM0NTY3ODlFNSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVtYmVyIHN0cmluZyBpcyAiICsgbnVtU3RyICsgIiBFeHBlY3RlZDogMSwyMzQ1Njc4OUU1Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBORl9JTlRFR0VSCisgICAgICAgIGxvZ2xuKCJJTlRFR0VSIHR5cGUiKTsKKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX0lOVEVHRVIpOworICAgICAgICBudW1TdHIgPSBuZi5mb3JtYXQobnVtKTsKKyAgICAgICAgaWYgKCFudW1TdHIuZXF1YWxzKCIxMjMuNDU3IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgc3RyaW5nIGlzICIgKyBudW1TdHIgKyAiIEV4cGVjdGVkOiAxMjMuNDU3Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbnZhbGlkIG51bWJlciB0eXBlCisgICAgICAgIGxvZ2xuKCJJTlZBTElEIHR5cGUiKTsKKyAgICAgICAgYm9vbGVhbiBpbGxlZ2FsQXJnID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdCgxMDApOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiSWxsZWdhbCBudW1iZXIgZm9ybWF0IHR5cGUgMTAwIik7CisgICAgICAgICAgICBpbGxlZ2FsQXJnID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlsbGVnYWxBcmcpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXROdW1iZXJGb3JtYXQgbXVzdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yIHR5cGUgMTAwIik7CisgICAgICAgIH0KKyAgICAgICAgaWxsZWdhbEFyZyA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoLTEpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiSWxsZWdhbCBudW1iZXIgZm9ybWF0IHR5cGUgLTEiKTsKKyAgICAgICAgICAgIGlsbGVnYWxBcmcgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghaWxsZWdhbEFyZykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE51bWJlckZvcm1hdCBtdXN0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgdHlwZSAtMSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBTZXQgZXhwbGljaXQgdGVycml0b3J5CisgICAgICAgIGxvZ2xuKCJTZXQgdGVycml0b3J5IC0gVVMiKTsKKyAgICAgICAgZ3Auc2V0VGVycml0b3J5KCJVUyIpOworICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfQ1VSUkVOQ1kpOworICAgICAgICBudW1TdHIgPSBuZi5mb3JtYXQobnVtKTsKKyAgICAgICAgaWYgKCFudW1TdHIuZXF1YWxzKCIxMjMuNDU2LDc5ICQiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBzdHJpbmcgaXMgIiArIG51bVN0ciArICIgRXhwZWN0ZWQ6IDEyMy40NTYsNzkgJCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IGN1cnJlbmN5CisgICAgICAgIGxvZ2xuKCJTZXQgY3VycmVuY3kgLSBHQlAiKTsKKyAgICAgICAgZ3Auc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIkdCUCIpKTsKKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX0NVUlJFTkNZKTsKKyAgICAgICAgbnVtU3RyID0gbmYuZm9ybWF0KG51bSk7CisgICAgICAgIGlmICghbnVtU3RyLmVxdWFscygiMTIzLjQ1Niw3OSBcdTAwQTMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBzdHJpbmcgaXMgIiArIG51bVN0ciArICIgRXhwZWN0ZWQ6IDEyMy40NTYsNzkgXHUwMEEzIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhsaXBsaWNpdCBOdW1iZXJGb3JtYXQKKyAgICAgICAgbG9nbG4oIlNldCBleHBsaWNpdCBOdW1iZXJGb3JtYXQgb2JqZWN0cyIpOworICAgICAgICBOdW1iZXJGb3JtYXQgY3VzdG9tTnVtID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKG5ldyBVTG9jYWxlKCJoZV9JTCIpKTsKKyAgICAgICAgZ3Auc2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9OVU1CRVIsIGN1c3RvbU51bSk7CisgICAgICAgIE51bWJlckZvcm1hdCBjdXN0b21DdXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShuZXcgVUxvY2FsZSgiemhfQ04iKSk7CisgICAgICAgIGdwLnNldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfQ1VSUkVOQ1ksIGN1c3RvbUN1cik7CisgICAgICAgIE51bWJlckZvcm1hdCBjdXN0b21QY3QgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKG5ldyBVTG9jYWxlKCJlbF9HUiIpKTsKKyAgICAgICAgZ3Auc2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9QRVJDRU5ULCBjdXN0b21QY3QpOworICAgICAgICBOdW1iZXJGb3JtYXQgY3VzdG9tU2NpID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShuZXcgVUxvY2FsZSgicnVfUlUiKSk7CisgICAgICAgIGdwLnNldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfU0NJRU5USUZJQywgY3VzdG9tU2NpKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGN1c3RvbUludCA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UobmV3IFVMb2NhbGUoInB0X1BUIikpOworICAgICAgICBncC5zZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX0lOVEVHRVIsIGN1c3RvbUludCk7CisKKyAgICAgICAgCisgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9OVU1CRVIpOworICAgICAgICBpZiAoIW5mLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKS5lcXVhbHMoImhlX0lMIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgTnVtYmVyRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIGxvY2FsZSBoZV9JTCIpOworICAgICAgICB9CisgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9DVVJSRU5DWSk7CisgICAgICAgIGlmICghbmYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpLmVxdWFscygiemhfQ04iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBOdW1iZXJGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgbG9jYWxlIHpoX0NOIik7CisgICAgICAgIH0KKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX1BFUkNFTlQpOworICAgICAgICBpZiAoIW5mLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKS5lcXVhbHMoImVsX0dSIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgTnVtYmVyRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIGxvY2FsZSBlbF9HUiIpOworICAgICAgICB9CisgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9TQ0lFTlRJRklDKTsKKyAgICAgICAgaWYgKCFuZi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCkuZXF1YWxzKCJydV9SVSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIE51bWJlckZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBsb2NhbGUgcnVfUlUiKTsKKyAgICAgICAgfQorICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfSU5URUdFUik7CisgICAgICAgIGlmICghbmYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpLmVxdWFscygicHRfUFQiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBOdW1iZXJGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgbG9jYWxlIHB0X1BUIik7CisgICAgICAgIH0KKworICAgICAgICBOdW1iZXJGb3JtYXQgY3VzdG9tTnVtMSA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShuZXcgVUxvY2FsZSgiaGlfSU4iKSk7CisKKyAgICAgICAgLy8gRnJlZXplCisgICAgICAgIGxvZ2xuKCJGcmVlemUgdGhpcyBvYmplY3QiKTsKKyAgICAgICAgYm9vbGVhbiBpc0Zyb3plbiA9IGZhbHNlOworICAgICAgICBncC5mcmVlemUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfTlVNQkVSLCBjdXN0b21OdW0xKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBsb2dsbigic2V0TnVtYmVyRm9ybWF0IGlzIGJsb2NrZWQiKTsKKyAgICAgICAgICAgIGlzRnJvemVuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzRnJvemVuKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0TnVtYmVyRm9ybWF0IG11c3QgYmUgYmxvY2tlZCBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENyZWF0ZSBhIG1vZGlmaWFibGUgY2xvbmUKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwMSA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpZ3AuY2xvbmVBc1RoYXdlZCgpOworCisgICAgICAgIC8vIE51bWJlciB0eXBlIGZvcm1hdCdzIGxvY2FsZSBpcyBzdGlsbCBoZV9JTAorICAgICAgICBuZiA9IGdwMS5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX05VTUJFUik7CisgICAgICAgIGlmICghbmYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpLmVxdWFscygiaGVfSUwiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBOdW1iZXJGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgbG9jYWxlIGhlX0lMIik7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiU2V0IGN1c3RvbSBudW1iZXIgZm9ybWF0IHVzaW5nIGxvY2FsZSBoaV9JTiIpOworICAgICAgICBncDEuc2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9OVU1CRVIsIGN1c3RvbU51bTEpOworICAgICAgICBuZiA9IGdwMS5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX05VTUJFUik7CisgICAgICAgIGlmICghbmYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpLmVxdWFscygiaGlfSU4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBOdW1iZXJGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgbG9jYWxlIGhpX0lOIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEpCIzUzODAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzI2dldENhbGVuZGFyKCkgc2hvdWxkIHJldHVybiBhIENhbGVuZGFyIG9iamVjdAorICAgICAqIGluaXRpYWxpemVkIHdpdGggdGhlIGN1cnJlbnQgdGltZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjUzODAoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2NhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworCisgICAgICAgIC8vIHNldCB3YXkgb2xkIGRhdGUKKyAgICAgICAgZ2NhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk1MCk7CisKKyAgICAgICAgLy8gc2V0IGNhbGVuZGFyIHRvIEdQCisgICAgICAgIGdwLnNldENhbGVuZGFyKGdjYWwpOworCisgICAgICAgIENhbGVuZGFyIGNhbCA9IGdwLmdldENhbGVuZGFyKCk7CisgICAgICAgIC8vIENhbGVuZGFyIGluc3RhbmNlIHJldHVybmVkIGZyb20gR1Agc2hvdWxkIGJlIGluaXRpYWxpemVkCisgICAgICAgIC8vIGJ5IHRoZSBjdXJyZW50IHRpbWUKKyAgICAgICAgbG9uZyB0aW1lRGlmZiA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gZ3AuZ2V0Q2FsZW5kYXIoKS5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgaWYgKE1hdGguYWJzKHRpbWVEaWZmKSA+IDEwMDApIHsKKyAgICAgICAgICAgIC8vIGlmIGRpZmZlcmVuY2UgaXMgbW9yZSB0aGFuIDEgc2Vjb25kLi4KKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgQ2FsZW5kYXIgd2FzIG5vdCBpbml0aWFsaXplZCBieSBjdXJyZW50IHRpbWUgLSBkaWZmZXJlbmNlOiIgKyB0aW1lRGlmZik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOTYwNDkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXQuamF2YQpAQCAtMCwwICsxLDI2NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIEpESyAxLjRiMSA6IGphdmEudGV4dC5Gb3JtYXQuSW50bFRlc3REYXRlRm9ybWF0CisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXQuamF2YQorICoqLworCisvKgorICAgIEB0ZXN0IDEuNCA5OC8wMy8wNgorICAgIEBzdW1tYXJ5IHRlc3QgSW50ZXJuYXRpb25hbCBEYXRlIEZvcm1hdAorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworcHVibGljIGNsYXNzIEludGxUZXN0RGF0ZUZvcm1hdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAvLyBWYWx1ZXMgaW4gbWlsbGlzZWNvbmRzICg9PSBEYXRlKQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgT05FU0VDT05EID0gMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIE9ORU1JTlVURSA9IDYwICogT05FU0VDT05EOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgT05FSE9VUiA9IDYwICogT05FTUlOVVRFOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgT05FREFZID0gMjQgKiBPTkVIT1VSOworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIE9ORVlFQVIgPSAzNjUuMjUgKiBPTkVEQVk7IC8vIEFwcHJveGltYXRlIC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKworICAgIC8vIEVNb2RlcworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBHRU5FUklDID0gMDsKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgVElNRSA9IEdFTkVSSUMgKyAxOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEUgPSBUSU1FICsgMTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRFX1RJTUUgPSBEQVRFICsgMTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorCisgICAgcHJpdmF0ZSBEYXRlRm9ybWF0IGZGb3JtYXQgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nIGZUZXN0TmFtZSA9IG5ldyBTdHJpbmcoImdldEluc3RhbmNlIik7CisgICAgcHJpdmF0ZSBpbnQgZkxpbWl0ID0gMzsgLy8gSG93IG1hbnkgaXRlcmF0aW9ucyBpdCBzaG91bGQgdGFrZSB0byByZWFjaCBjb252ZXJnZW5jZQorICAgIHByaXZhdGUgUmFuZG9tIHJhbmRvbTsgLy8gaW5pdGlhbGl6ZWQgaW4gcmFuZERvdWJsZQorCisgICAgcHVibGljIEludGxUZXN0RGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgLy9Db25zdHJ1Y3R1cmUKKyAgICB9IAorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBmRm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGF0ZUZvcm1hdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VUxvY2FsZSgpIHsKKyAgICAgICAgbG9jYWxlVGVzdChVTG9jYWxlLmdldERlZmF1bHQoKSwgIkRlZmF1bHQgTG9jYWxlIik7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGRvZXMgcm91bmQtdHJpcCB0ZXN0aW5nIChmb3JtYXQgLT4gcGFyc2UgLT4gZm9ybWF0IC0+IHBhcnNlIC0+IGV0Yy4pIG9mIERhdGVGb3JtYXQuCisgICAgcHVibGljIHZvaWQgbG9jYWxlVGVzdChmaW5hbCBVTG9jYWxlIGxvY2FsZSwgZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgaW50IHRpbWVTdHlsZSwgZGF0ZVN0eWxlOworCisgICAgICAgIC8vIEZvciBwYXR0ZXJucyBpbmNsdWRpbmcgb25seSB0aW1lIGluZm9ybWF0aW9uIGFuZCBhIHRpbWV6b25lLCBpdCBtYXkgdGFrZQorICAgICAgICAvLyB1cCB0byB0aHJlZSBpdGVyYXRpb25zLCBzaW5jZSB0aGUgdGltZXpvbmUgbWF5IHNoaWZ0IGFzIHRoZSB5ZWFyIG51bWJlcgorICAgICAgICAvLyBpcyBkZXRlcm1pbmVkLiAgRm9yIG90aGVyIHBhdHRlcm5zLCAyIGl0ZXJhdGlvbnMgc2hvdWxkIHN1ZmZpY2UuCisgICAgICAgIGZMaW1pdCA9IDM7CisKKyAgICAgICAgZm9yKHRpbWVTdHlsZSA9IDA7IHRpbWVTdHlsZSA8IDQ7IHRpbWVTdHlsZSsrKSB7CisgICAgICAgICAgICBmVGVzdE5hbWUgPSBuZXcgU3RyaW5nKCJUaW1lIHRlc3QgIiArIHRpbWVTdHlsZSArICIgKCIgKyBsb2NhbGVOYW1lICsgIikiKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZkZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBsb2NhbGVUZXN0IHRpbWUgZ2V0VGltZUluc3RhbmNlIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBUZXN0Rm9ybWF0KCk7CisgICAgICAgIH0KKworICAgICAgICBmTGltaXQgPSAyOworCisgICAgICAgIGZvcihkYXRlU3R5bGUgPSAwOyBkYXRlU3R5bGUgPCA0OyBkYXRlU3R5bGUrKykgeworICAgICAgICAgICAgZlRlc3ROYW1lID0gbmV3IFN0cmluZygiRGF0ZSB0ZXN0ICIgKyBkYXRlU3R5bGUgKyAiICgiICsgbG9jYWxlTmFtZSArICIpIik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShkYXRlU3R5bGUsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogbG9jYWxlVGVzdCBkYXRlIGdldFRpbWVJbnN0YW5jZSBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVGVzdEZvcm1hdCgpOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGRhdGVTdHlsZSA9IDA7IGRhdGVTdHlsZSA8IDQ7IGRhdGVTdHlsZSsrKSB7CisgICAgICAgICAgICBmb3IodGltZVN0eWxlID0gMDsgdGltZVN0eWxlIDwgNDsgdGltZVN0eWxlKyspIHsKKyAgICAgICAgICAgICAgICBmVGVzdE5hbWUgPSBuZXcgU3RyaW5nKCJEYXRlVGltZSB0ZXN0ICIgKyBkYXRlU3R5bGUgKyAiLyIgKyB0aW1lU3R5bGUgKyAiICgiICsgbG9jYWxlTmFtZSArICIpIik7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZkZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBsb2NhbGVUZXN0IGRhdGUvdGltZSBnZXREYXRlVGltZUluc3RhbmNlIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBUZXN0Rm9ybWF0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Rm9ybWF0KCkgeworICAgICAgICBpZiAoZkZvcm1hdCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZUZvcm1hdCBjcmVhdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyAgICAgICAgbG9nbG4oIlRlc3RGb3JtYXQ6ICIgKyBmVGVzdE5hbWUpOworICAgICAgICBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgIHRyeURhdGUobmV3IERhdGUoMCkpOworICAgICAgICB0cnlEYXRlKG5ldyBEYXRlKChsb25nKSAxMjc4MTYxODAxNzc4LjApKTsKKyAgICAgICAgdHJ5RGF0ZShub3cpOworICAgICAgICAvLyBTaGlmdCA2IG1vbnRocyBpbnRvIHRoZSBmdXR1cmUsIEFUIFRIRSBTQU1FIFRJTUUgT0YgREFZLgorICAgICAgICAvLyBUaGlzIHdpbGwgdGVzdCB0aGUgRFNUIGhhbmRsaW5nLgorICAgICAgICB0cnlEYXRlKG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyA2KjMwKk9ORURBWSkpOworCisgICAgICAgIERhdGUgbGltaXQgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICogMTApOyAvLyBBcmJpdHJhcnkgbGltaXQKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDI7ICsraSkKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgdHJ5RGF0ZShuZXcgRGF0ZShmbG9vcihyYW5kRG91YmxlKCkgKiBsaW1pdCkpKTsKKyAgICAgICAgICAgIHRyeURhdGUobmV3IERhdGUoKGxvbmcpIChyYW5kRG91YmxlKCkgKiBsaW1pdC5nZXRUaW1lKCkpKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRlc2NyaWJlVGVzdCgpIHsKKyAgICAgICAgaWYgKGZGb3JtYXQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IG5vIERhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFzc3VtZSBpdCdzIGEgU2ltcGxlRGF0ZUZvcm1hdCBhbmQgZ2V0IHNvbWUgaW5mbworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHMgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgZkZvcm1hdDsKKyAgICAgICAgbG9nbG4oZlRlc3ROYW1lICsgIiBQYXR0ZXJuICIgKyBzLnRvUGF0dGVybigpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHRyeURhdGUoRGF0ZSB0aGVEYXRlKSB7CisgICAgICAgIGZpbmFsIGludCBERVBUSCA9IDEwOworICAgICAgICBEYXRlW10gZGF0ZSA9IG5ldyBEYXRlW0RFUFRIXTsKKyAgICAgICAgU3RyaW5nQnVmZmVyW10gc3RyaW5nID0gbmV3IFN0cmluZ0J1ZmZlcltERVBUSF07CisKKyAgICAgICAgaW50IGRhdGVNYXRjaCA9IDA7CisgICAgICAgIGludCBzdHJpbmdNYXRjaCA9IDA7CisgICAgICAgIGJvb2xlYW4gZHVtcCA9IGZhbHNlOworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPTA7IGk8REVQVEg7ICsraSkgc3RyaW5nW2ldID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGk9MDsgaTxERVBUSDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSA9PSAwKSBkYXRlW2ldID0gdGhlRGF0ZTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGVbaV0gPSBmRm9ybWF0LnBhcnNlKHN0cmluZ1tpLTFdLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBkZXNjcmliZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKioqKioqKiogRkFJTDogUGFyc2Ugb2YgIiArIHN0cmluZ1tpLTFdICsgIiBmYWlsZWQgZm9yIGxvY2FsZTogIitmRm9ybWF0LmdldExvY2FsZShVTG9jYWxlLkFDVFVBTF9MT0NBTEUpKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zaXRpb24gPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGZGb3JtYXQuZm9ybWF0KGRhdGVbaV0sIHN0cmluZ1tpXSwgcG9zaXRpb24pOworICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGRhdGVNYXRjaCA9PSAwICYmIGRhdGVbaV0gPT0gZGF0ZVtpLTFdKSBkYXRlTWF0Y2ggPSBpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGVNYXRjaCA+IDAgJiYgZGF0ZVtpXSAhPSBkYXRlW2ktMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqKioqKioqIEZBSUw6IERhdGUgbWlzbWF0Y2ggYWZ0ZXIgbWF0Y2guIik7CisgICAgICAgICAgICAgICAgICAgIGR1bXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0cmluZ01hdGNoID09IDAgJiYgc3RyaW5nW2ldID09IHN0cmluZ1tpLTFdKSBzdHJpbmdNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RyaW5nTWF0Y2ggPiAwICYmIHN0cmluZ1tpXSAhPSBzdHJpbmdbaS0xXSkgeworICAgICAgICAgICAgICAgICAgICBkZXNjcmliZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKioqKioqKiogRkFJTDogU3RyaW5nIG1pc21hdGNoIGFmdGVyIG1hdGNoLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRhdGVNYXRjaCA+IDAgJiYgc3RyaW5nTWF0Y2ggPiAwKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBERVBUSCkgLS1pOworCisgICAgICAgIGlmIChzdHJpbmdNYXRjaCA+IGZMaW1pdCB8fCBkYXRlTWF0Y2ggPiBmTGltaXQpIHsKKyAgICAgICAgICAgIGRlc2NyaWJlVGVzdCgpOworICAgICAgICAgICAgZXJybG4oIioqKioqKioqKiogRkFJTDogTm8gc3RyaW5nIGFuZC9vciBkYXRlIG1hdGNoIHdpdGhpbiAiICsgZkxpbWl0ICsgIiBpdGVyYXRpb25zLiIpOworICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZHVtcCkgeworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPD1pOyArK2spIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIiArIGsgKyAiOiAiICsgZGF0ZVtrXSArICIgRj4gIiArIHN0cmluZ1trXSArICIgUD4gIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBSZXR1cm4gYSByYW5kb20gZG91YmxlIGZyb20gMC4wMSB0byAxLCBpbmNsdXNpdmUKKyAgICBwcml2YXRlIGRvdWJsZSByYW5kRG91YmxlKCkgeworICAgIGlmIChyYW5kb20gPT0gbnVsbCkgeworICAgICAgICByYW5kb20gPSBjcmVhdGVSYW5kb20oKTsKKyAgICB9CisgICAgICAgIC8vIEFzc3VtZSA4LWJpdCAob3IgbGFyZ2VyKSByYW5kIHZhbHVlcy4gIEFsc28gYXNzdW1lCisgICAgICAgIC8vIHRoYXQgdGhlIHN5c3RlbSByYW5kKCkgZnVuY3Rpb24gaXMgdmVyeSBwb29yLCB3aGljaCBpdCBhbHdheXMgaXMuCisgICAgICAgIC8vICAgICAgICBkb3VibGUgZDsKKyAgICAgICAgLy8gICAgICAgIGludCBpOworICAgICAgICAvLyAgICAgICAgZG8geworICAgICAgICAvLyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgc2l6ZW9mKGRvdWJsZSk7ICsraSkKKyAgICAgICAgLy8gICAgICAgICAgICB7CisgICAgICAgIC8vICAgICAgICAgICAgICAgIGNoYXIgcG9rZSA9IChjaGFyKikmZDsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgcG9rZVtpXSA9IChyYW5kKCkgJiAweEZGKTsKKyAgICAgICAgLy8gICAgICAgICAgICB9CisgICAgICAgIC8vICAgICAgICB9IHdoaWxlIChUUGxhdGZvcm1VdGlsaXRpZXMuaXNOYU4oZCkgfHwgVFBsYXRmb3JtVXRpbGl0aWVzLmlzSW5maW5pdGUoZCkpOworCisgICAgICAgIC8vICAgICAgICBpZiAoZCA8IDAuMCkgZCA9IC1kOworICAgICAgICAvLyAgICAgICAgaWYgKGQgPiAwLjApCisgICAgICAgIC8vICAgICAgICB7CisgICAgICAgIC8vICAgICAgICAgICAgZG91YmxlIGUgPSBmbG9vcihsb2cxMChkKSk7CisgICAgICAgIC8vICAgICAgICAgICAgaWYgKGUgPCAtMi4wKSBkICo9IHBvdygxMC4wLCAtZS0yKTsKKyAgICAgICAgLy8gICAgICAgICAgICBlbHNlIGlmIChlID4gLTEuMCkgZCAvPSBwb3coMTAuMCwgZSsxKTsKKyAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIHJldHVybiBkOworICAgICAgICByZXR1cm4gcmFuZG9tLm5leHREb3VibGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgZmluYWwgVUxvY2FsZVtdIGxvY2FsZXMgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGxvbmcgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgbG9nbG4oIiIgKyBjb3VudCArICIgYXZhaWxhYmxlIGxvY2FsZXMiKTsKKyAgICAgICAgaWYgKGxvY2FsZXMgIT0gbnVsbCAgJiYgIGNvdW50ICE9IDApIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBhbGwgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpIT0wKSBhbGwuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIGFsbC5hcHBlbmQobG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKGFsbC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGVycmxuKCIqKioqKioqKioqIEZBSUw6IFplcm8gYXZhaWxhYmxlIGxvY2FsZXMgb3IgbnVsbCBhcnJheSBwb2ludGVyIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE1vbnN0ZXIoKSB7CisgICAgICAgIGlmIChpc1F1aWNrKCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGluZyB0ZXN0ICh1c2UgLWUgZm9yIGV4aGF1c3RpdmUpIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZmluYWwgVUxvY2FsZVtdIGxvY2FsZXMgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGxvbmcgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgaWYgKGxvY2FsZXMgIT0gbnVsbCAgJiYgIGNvdW50ICE9IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgIiArIG5hbWUgKyAiLi4uIik7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlVGVzdChsb2NhbGVzW2ldLCBuYW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3RNb25zdGVyIGxvY2FsZVRlc3QgZXhjZXB0aW9uIiArIGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiZmVhNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSS5qYXZhCkBAIC0wLDAgKzEsMTk5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdERhdGVGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSS5qYXZhCisgKiovCisKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIERhdGUgRm9ybWF0IEFQSQorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCitwdWJsaWMgY2xhc3MgSW50bFRlc3REYXRlRm9ybWF0QVBJIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGF0ZUZvcm1hdEFQSSgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IHRoYXQgdGhlIGVxdWFscyBtZXRob2Qgd29ya3MgY29ycmVjdGx5LgorICAgIHB1YmxpYyB2b2lkIFRlc3RFcXVhbHMoKQorICAgIHsKKyAgICAgICAgLy8gQ3JlYXRlIHR3byBvYmplY3RzIGF0IGRpZmZlcmVudCBzeXN0ZW0gdGltZXMKKyAgICAgICAgRGF0ZUZvcm1hdCBhID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlIHN0YXJ0ID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKS5nZXRUaW1lKCk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyBjaGFuZ2VkIHRvIHJlbW92ZSBjb21waWxlciB3YXJuaW5ncy4KKyAgICAgICAgICAgIGlmICghc3RhcnQuZXF1YWxzKENhbGVuZGFyLmdldEluc3RhbmNlKCkuZ2V0VGltZSgpKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBXYWl0IGZvciB0aW1lIHRvIGNoYW5nZQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIERhdGVGb3JtYXQgYiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKworICAgICAgICBpZiAoIShhLmVxdWFscyhiKSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZUZvcm1hdCBvYmplY3RzIGNyZWF0ZWQgYXQgZGlmZmVyZW50IHRpbWVzIGFyZSB1bmVxdWFsLiIpOworCisgICAgICAgIC8vIFdoeSBoYXMgdGhpcyB0ZXN0IGJlZW4gZGlzYWJsZWQ/Pz8gLSBhbGl1CisvLyAgICAgICAgaWYgKGIgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KQorLy8gICAgICAgIHsKKy8vICAgICAgICAgICAgLy9kb3VibGUgT05FX1lFQVIgPSAzNjUqMjQqNjAqNjAqMTAwMC4wOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisvLyAgICAgICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgICAgICAoKFNpbXBsZURhdGVGb3JtYXQpYikuc2V0VHdvRGlnaXRTdGFydERhdGUoc3RhcnQuZ2V0VGltZSgpICsgNTAqT05FX1lFQVIpOworLy8gICAgICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGIpKQorLy8gICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlRm9ybWF0IG9iamVjdHMgd2l0aCBkaWZmZXJlbnQgdHdvIGRpZ2l0IHN0YXJ0IGRhdGVzIGFyZSBlcXVhbC4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRUd29EaWdpdFN0YXJ0RGF0ZSBmYWlsZWQuIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGF0ZUZvcm1hdCB0byBhY2hpZXZlIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKQorICAgIHsKKyAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQgQVBJIHRlc3QtLS0iKTsgbG9nbG4oIiIpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuRU5HTElTSCk7CisKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgY29uc3RydWN0b3JzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgRGF0ZUZvcm1hdCBjb25zdHJ1Y3RvcnMiKTsKKworICAgICAgICBEYXRlRm9ybWF0IGRlZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmciA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIERhdGVGb3JtYXQgaXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLklUQUxJQU4pOworICAgICAgICBEYXRlRm9ybWF0IGRlID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuR0VSTUFOKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBlcXVhbGl0eSBvcGVyYXRvciIpOworCisgICAgICAgIGlmKCBmci5lcXVhbHMoaXQpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBlcXVhbHMgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzIik7CisKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKGxvbmcpODM3MDM5OTI4MDQ2LjApOworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMxID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIHJlczMgPSBuZXcgU3RyaW5nKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczIgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKworICAgICAgICByZXMxID0gZnIuZm9ybWF0KGQsIHJlczEsIHBvczEpOworICAgICAgICBsb2dsbigiIiArIGQuZ2V0VGltZSgpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczEpOworCisgICAgICAgIHJlczIgPSBpdC5mb3JtYXQoZCwgcmVzMiwgcG9zMik7CisgICAgICAgIGxvZ2xuKCIiICsgZC5nZXRUaW1lKCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMik7CisKKyAgICAgICAgcmVzMyA9IGRlLmZvcm1hdChkKTsKKyAgICAgICAgbG9nbG4oIiIgKyBkLmdldFRpbWUoKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMzKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgcGFyc2UoKQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHBhcnNlKCkiKTsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IG5ldyBTdHJpbmcoIjAyLzAzLzc2IDI6NTAgQU0sIENTVCIpOworICAgICAgICBPYmplY3QgcmVzdWx0MSA9IG5ldyBEYXRlKCk7CisgICAgICAgIERhdGUgcmVzdWx0MiA9IG5ldyBEYXRlKCk7CisgICAgICAgIERhdGUgcmVzdWx0MyA9IG5ldyBEYXRlKCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zMDEgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKworICAgICAgICByZXN1bHQxID0gZGVmLnBhcnNlT2JqZWN0KHRleHQsIHBvcyk7CisgICAgICAgIGlmIChyZXN1bHQxID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2VPYmplY3QoKSBmYWlsZWQgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgKChEYXRlKXJlc3VsdDEpLmdldFRpbWUoKSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdDIgPSBkZWYucGFyc2UodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2UoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0Mi5nZXRUaW1lKCkpOworCisgICAgICAgIHJlc3VsdDMgPSBkZWYucGFyc2UodGV4dCwgcG9zMDEpOworICAgICAgICBpZiAocmVzdWx0MyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHBhcnNlKCkgZmFpbGVkIGZvciAiICsgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIHJlc3VsdDMuZ2V0VGltZSgpKTsKKworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZ2V0dGVycyBhbmQgc2V0dGVycyIpOworCisgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvY2FsZXMgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBsb2dsbigiR290ICIgKyBjb3VudCArICIgbG9jYWxlcyIgKTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAgICAgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIGxvZ2xuKG5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0TGVuaWVudChpdC5pc0xlbmllbnQoKSk7CisgICAgICAgIGlmKGZyLmlzTGVuaWVudCgpICE9IGl0LmlzTGVuaWVudCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldExlbmllbnQoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIENhbGVuZGFyIGNhbCA9IGRlZi5nZXRDYWxlbmRhcigpOworICAgICAgICBDYWxlbmRhciBuZXdDYWwgPSAoQ2FsZW5kYXIpIGNhbC5jbG9uZSgpOworICAgICAgICBkZS5zZXRDYWxlbmRhcihuZXdDYWwpOworICAgICAgICBpdC5zZXRDYWxlbmRhcihuZXdDYWwpOworICAgICAgICBpZiggISBkZS5nZXRDYWxlbmRhcigpLmVxdWFscyhpdC5nZXRDYWxlbmRhcigpKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgQ2FsZW5kYXIoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIE51bWJlckZvcm1hdCBuZiA9IGRlZi5nZXROdW1iZXJGb3JtYXQoKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5ld05mID0gKE51bWJlckZvcm1hdCkgbmYuY2xvbmUoKTsKKyAgICAgICAgZGUuc2V0TnVtYmVyRm9ybWF0KG5ld05mKTsKKyAgICAgICAgaXQuc2V0TnVtYmVyRm9ybWF0KG5ld05mKTsKKyAgICAgICAgaWYoICEgZGUuZ2V0TnVtYmVyRm9ybWF0KCkuZXF1YWxzKGl0LmdldE51bWJlckZvcm1hdCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgTnVtYmVyRm9ybWF0KCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBUaW1lWm9uZSB0eiA9IGRlZi5nZXRUaW1lWm9uZSgpOworICAgICAgICBUaW1lWm9uZSBuZXdUeiA9IChUaW1lWm9uZSkgdHouY2xvbmUoKTsKKyAgICAgICAgZGUuc2V0VGltZVpvbmUobmV3VHopOworICAgICAgICBpdC5zZXRUaW1lWm9uZShuZXdUeik7CisgICAgICAgIGlmKCAhIGRlLmdldFRpbWVab25lKCkuZXF1YWxzKGl0LmdldFRpbWVab25lKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBUaW1lWm9uZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorCisvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZigpIik7CisKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICBEYXRlRm9ybWF0IHRlc3QgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworCisvLyAgICAgICAgICAgIGlmICghICh0ZXN0IGluc3RhbmNlb2YgU2ltcGxlRGF0ZUZvcm1hdCkpIHsKKy8vICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW5zdGFuY2VvZiBmYWlsZWQiKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDb3VsZG4ndCBjcmVhdGUgYSBEYXRlRm9ybWF0Iik7CisvLyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJQy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE0NjdjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJQy5qYXZhCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogSW50bFRlc3REYXRlRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kdGZtYXB0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CisKKy8qCisgKiBUaGlzIGlzIGFuIEFQSSB0ZXN0LCBub3QgYSB1bml0IHRlc3QuICBJdCBkb2Vzbid0IHRlc3QgdmVyeSBtYW55IGNhc2VzLCBhbmQgZG9lc24ndAorICogdHJ5IHRvIHRlc3QgdGhlIGZ1bGwgZnVuY3Rpb25hbGl0eS4gIEl0IGp1c3QgY2FsbHMgZWFjaCBmdW5jdGlvbiBpbiB0aGUgY2xhc3MgYW5kCisgKiB2ZXJpZmllcyB0aGF0IGl0IHdvcmtzIG9uIGEgYmFzaWMgbGV2ZWwuCisgKi8KK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERhdGVGb3JtYXRBUElDIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGF0ZUZvcm1hdEFQSUMoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgaGlkaW5nIG9mIHBhcnNlKCkgYW5kIGZvcm1hdCgpIEFQSXMgaW4gdGhlIEZvcm1hdCBoaWVyYXJjaHkuCisgICAgICogV2UgdGVzdCB0aGUgZW50aXJlIGhpZXJhcmNoeSwgZXZlbiB0aG91Z2ggdGhpcyB0ZXN0IGlzIGxvY2F0ZWQgaW4KKyAgICAgKiB0aGUgRGF0ZUZvcm1hdCBBUEkgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZUhpZGluZygpIHsKKyAgICAKKyAgICAgICAgLy8gTi5CLjogVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBDT01QSUxFUywgc2luY2UgaXQncyBhIHRlc3Qgb2YKKyAgICAgICAgLy8gY29tcGlsZS10aW1lIG5hbWUgaGlkaW5nLgorICAgIAorICAgICAgICBEYXRlIGRhdGVPYmogPSBuZXcgRGF0ZSgwKTsKKyAgICAgICAgTnVtYmVyIG51bU9iaiA9IG5ldyBEb3VibGUoMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1KTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0ckJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBTdHJpbmcgc3RyOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgCisgICAgICAgIC8vIERhdGVGb3JtYXQgY2FsbGluZyBGb3JtYXQgQVBJCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJEYXRlRm9ybWF0Iik7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRhdGVGbXQgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBpZiAoZGF0ZUZtdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RyID0gZGF0ZUZtdC5mb3JtYXQoZGF0ZU9iaik7CisgICAgICAgICAgICAgICAgc3RyQnVmZmVyID0gZGF0ZUZtdC5mb3JtYXQoZGF0ZU9iaiwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbid0IGNyZWF0ZSBEYXRlRm9ybWF0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gU2ltcGxlRGF0ZUZvcm1hdCBjYWxsaW5nIEZvcm1hdCAmIERhdGVGb3JtYXQgQVBJCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJTaW1wbGVEYXRlRm9ybWF0Iik7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgICAgICAvLyBGb3JtYXQgQVBJCisgICAgICAgICAgICBzdHIgPSBzZGYuZm9ybWF0KGRhdGVPYmopOworICAgICAgICAgICAgc3RyQnVmZmVyID0gc2RmLmZvcm1hdChkYXRlT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgLy8gRGF0ZUZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IHNkZi5mb3JtYXQobmV3IERhdGUoMCksIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICBzdHIgPSBzZGYuZm9ybWF0KG5ldyBEYXRlKDApKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2RmLnBhcnNlKHN0cik7CisgICAgICAgICAgICAgICAgc2RmLnBhcnNlKHN0ciwgcHBvcyk7CisgICAgICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE51bWJlckZvcm1hdCBjYWxsaW5nIEZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIk51bWJlckZvcm1hdCIpOworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgaWYgKGZtdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdChudW1PYmopOworICAgICAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQobnVtT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FuJ3QgY3JlYXRlIE51bWJlckZvcm1hdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIERlY2ltYWxGb3JtYXQgY2FsbGluZyBGb3JtYXQgJiBOdW1iZXJGb3JtYXQgQVBJCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJEZWNpbWFsRm9ybWF0Iik7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgICAgICAvLyBGb3JtYXQgQVBJCisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KG51bU9iaik7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KG51bU9iaiwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIC8vIE51bWJlckZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoMi43MTgyOCk7CisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KDEyMzQ1NjcpOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdCgxLjQxNDIxLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdCg5ODc2NTQzLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgTnVtYmVyIG9iaiA9IGZtdC5wYXJzZShzdHIsIHBwb3MpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvYmogPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgICAgICBpZihvYmo9PW51bGwpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGZvcm1hdCBvYmplY3QgY291bGQgbm90IHBhcnNlIHRoZSBzdHJpbmcgOiAiK3N0cik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9JQ1U0SiBoYXZlIG5vdCB0aGUgY2xhc3NlcyBDaG9pY2VGb3JtYXQgYW5kIE1lc3NhZ2VGb3JtYXQKKyAgICAgICAgLyoKKyAgICAgICAgLy8gQ2hvaWNlRm9ybWF0IGNhbGxpbmcgRm9ybWF0ICYgTnVtYmVyRm9ybWF0IEFQSQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiQ2hvaWNlRm9ybWF0Iik7CisgICAgICAgICAgICBDaG9pY2VGb3JtYXQgZm10ID0gbmV3IENob2ljZUZvcm1hdCgiMCNmb298MSNmb29zfDIjZm9vcyIpOworICAgICAgICAgICAgLy8gRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdChudW1PYmopOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdChudW1PYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICAvLyBOdW1iZXJGb3JtYXQgQVBJCisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KDIuNzE4MjgpOworICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdCgxMjM0NTY3KTsKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQoMS40MTQyMSwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQoOTg3NjU0Mywgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIE51bWJlciBvYmogPSBmbXQucGFyc2Uoc3RyLCBwcG9zKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgb2JqID0gZm10LnBhcnNlKHN0cik7CisgICAgICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIAorICAgICAgICAvLyBNZXNzYWdlRm9ybWF0IGNhbGxpbmcgRm9ybWF0IEFQSQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiTWVzc2FnZUZvcm1hdCIpOworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiIik7CisgICAgICAgICAgICAvLyBGb3JtYXQgQVBJCisgICAgICAgICAgICAvLyBXZSB1c2UgZGF0ZU9iaiwgd2hpY2ggTWVzc2FnZUZvcm1hdCBzaG91bGQgcmVqZWN0LgorICAgICAgICAgICAgLy8gV2UncmUgdGVzdGluZyBuYW1lIGhpZGluZywgbm90IHRoZSBmb3JtYXQgbWV0aG9kLgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KGRhdGVPYmopOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQoZGF0ZU9iaiwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTA4ODJmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsNDc5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzCisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzLmphdmEKKyAqKi8KKyAKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIERhdGUgRm9ybWF0IFN5bWJvbHMKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGVzdCBnZXRNb250aHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0TW9udGhzKCkKKyAgICB7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIG1vbnRoOworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2w7CisKKyAgICAgICAgc3ltYm9sPW5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBtb250aD1zeW1ib2wuZ2V0TW9udGhzKCk7CisgICAgICAgIGludCBjbnQgPSBtb250aC5sZW5ndGg7CisKKyAgICAgICAgbG9nbG4oInNpemUgPSAiICsgY250KTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8Y250OyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKG1vbnRoW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRNb250aHMyKCkKKyAgICB7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKyAgICAgICAgc3ltYm9sPW5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBpbnRbXSBjb250ZXh0ID0ge0RhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsIERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVH07CisgICAgICAgIGludFtdIHdpZHRoID0ge0RhdGVGb3JtYXRTeW1ib2xzLldJREUsIERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVELCBEYXRlRm9ybWF0U3ltYm9scy5OQVJST1d9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250ZXh0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHdpZHRoLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gbW9udGggPXN5bWJvbC5nZXRNb250aHMoY29udGV4dFtpXSx3aWR0aFtqXSk7CisgICAgICAgICAgICAgICAgaW50IGNudCA9IG1vbnRoLmxlbmd0aDsKKworICAgICAgICAgICAgICAgIGxvZ2xuKCJzaXplID0gIiArIGNudCk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IG1vbnRoLmxlbmd0aDsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKG1vbnRoW2tdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdldFdlZWtkYXlzMigpeworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2w7CisgICAgICAgIHN5bWJvbD1uZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLmdldERlZmF1bHQoKSk7CisKKyAgICAgICAgaW50W10gY29udGV4dCA9IHtEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLCBEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVR9OworICAgICAgICBpbnRbXSB3aWR0aCA9IHtEYXRlRm9ybWF0U3ltYm9scy5XSURFLCBEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCwgRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XfTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29udGV4dC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB3aWR0aC5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHdkID1zeW1ib2wuZ2V0V2Vla2RheXMoY29udGV4dFtpXSx3aWR0aFtqXSk7CisgICAgICAgICAgICAgICAgaW50IGNudCA9IHdkLmxlbmd0aDsKKworICAgICAgICAgICAgICAgIGxvZ2xuKCJzaXplID0gIiArIGNudCk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IHdkLmxlbmd0aDsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKHdkW2tdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRFcmFOYW1lcygpeworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2w7CisgICAgICAgIHN5bWJvbD1uZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIFN0cmluZ1tdIHMgPSBzeW1ib2wuZ2V0RXJhTmFtZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsb2dsbihzW2ldKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAgICAvLyBUZXN0IHRoZSBBUEkgb2YgRGF0ZUZvcm1hdFN5bWJvbHM7IHByaW1hcmlseSBhIHNpbXBsZSBnZXQvc2V0IHNldC4KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ltYm9scygpCisgICAgeworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBmciA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZnIyID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGVuID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5FTkdMSVNIKTsKKworICAgICAgICBpZihlbi5lcXVhbHMoZnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEVuZ2xpc2ggRGF0ZUZvcm1hdFN5bWJvbHMgZXF1YWwgdG8gRnJlbmNoIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBqdXN0IGRvIHNvbWUgVkVSWSBiYXNpYyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCBnZXQvc2V0IHdvcmsKKworICAgICAgICBsb25nIGNvdW50OworICAgICAgICBmaW5hbCBTdHJpbmdbXSBlcmFzID0gZW4uZ2V0RXJhcygpOworICAgICAgICBmci5zZXRFcmFzKGVyYXMpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBlcmFzMSA9IGZyLmdldEVyYXMoKTsKKyAgICAgICAgY291bnQgPSBlcmFzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IGVyYXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRFcmFzKCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBlcmFzW2ldLmVxdWFscyhlcmFzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRFcmFzKCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIG1vbnRocyA9IGVuLmdldE1vbnRocygpOworICAgICAgICBmci5zZXRNb250aHMobW9udGhzKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbW9udGhzMSA9IGZyLmdldE1vbnRocygpOworICAgICAgICBjb3VudCA9IG1vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBtb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIG1vbnRoc1tpXS5lcXVhbHMobW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHNob3J0TW9udGhzID0gZW4uZ2V0U2hvcnRNb250aHMoKTsKKyAgICAgICAgZnIuc2V0U2hvcnRNb250aHMoc2hvcnRNb250aHMpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzaG9ydE1vbnRoczEgPSBmci5nZXRTaG9ydE1vbnRocygpOworICAgICAgICBjb3VudCA9IHNob3J0TW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHNob3J0TW9udGhzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0U2hvcnRNb250aHMoKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHNob3J0TW9udGhzW2ldLmVxdWFscyhzaG9ydE1vbnRoczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0U2hvcnRNb250aHMoKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHdpZGVNb250aHMgPSBlbi5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmcjIuc2V0TW9udGhzKHdpZGVNb250aHMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3aWRlTW9udGhzMSA9IGZyMi5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBjb3VudCA9IHdpZGVNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gd2lkZU1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhGT1JNQVQsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISB3aWRlTW9udGhzW2ldLmVxdWFscyh3aWRlTW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoRk9STUFULFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYWJick1vbnRocyA9IGVuLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmcjIuc2V0TW9udGhzKGFiYnJNb250aHMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYWJick1vbnRoczEgPSBmcjIuZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGNvdW50ID0gYWJick1vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBhYmJyTW9udGhzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKEZPUk1BVCxBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBhYmJyTW9udGhzW2ldLmVxdWFscyhhYmJyTW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoRk9STUFULEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIG5hcnJvd01vbnRocyA9IGVuLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZnIuc2V0TW9udGhzKG5hcnJvd01vbnRocyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbmFycm93TW9udGhzMSA9IGZyLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgY291bnQgPSBuYXJyb3dNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gbmFycm93TW9udGhzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKEZPUk1BVCxOQVJST1cpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgbmFycm93TW9udGhzW2ldLmVxdWFscyhuYXJyb3dNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhGT1JNQVQsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVNb250aHMgPSBlbi5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZnIuc2V0TW9udGhzKHN0YW5kYWxvbmVNb250aHMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZU1vbnRoczEgPSBmci5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgY291bnQgPSBzdGFuZGFsb25lTW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoU1RBTkRBTE9ORSxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVNb250aHNbaV0uZXF1YWxzKHN0YW5kYWxvbmVNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVNob3J0TW9udGhzID0gZW4uZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmci5zZXRNb250aHMoc3RhbmRhbG9uZVNob3J0TW9udGhzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lU2hvcnRNb250aHMxID0gZnIuZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBjb3VudCA9IHN0YW5kYWxvbmVTaG9ydE1vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lU2hvcnRNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoU1RBTkRBTE9ORSxBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBzdGFuZGFsb25lU2hvcnRNb250aHNbaV0uZXF1YWxzKHN0YW5kYWxvbmVTaG9ydE1vbnRoczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKFNUQU5EQUxPTkUsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZU5hcnJvd01vbnRocyA9IGVuLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGZyLnNldE1vbnRocyhzdGFuZGFsb25lTmFycm93TW9udGhzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZU5hcnJvd01vbnRoczEgPSBmci5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBjb3VudCA9IHN0YW5kYWxvbmVOYXJyb3dNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc3RhbmRhbG9uZU5hcnJvd01vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBzdGFuZGFsb25lTmFycm93TW9udGhzW2ldLmVxdWFscyhzdGFuZGFsb25lTmFycm93TW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoU1RBTkRBTE9ORSxOQVJST1cpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cygpOworICAgICAgICBmci5zZXRXZWVrZGF5cyh3ZWVrZGF5cyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHdlZWtkYXlzMSA9IGZyLmdldFdlZWtkYXlzKCk7CisgICAgICAgIGNvdW50ID0gd2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gd2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgd2Vla2RheXNbaV0uZXF1YWxzKHdlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc2hvcnRXZWVrZGF5cyA9IGVuLmdldFNob3J0V2Vla2RheXMoKTsKKyAgICAgICAgZnIuc2V0U2hvcnRXZWVrZGF5cyhzaG9ydFdlZWtkYXlzKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc2hvcnRXZWVrZGF5czEgPSBmci5nZXRTaG9ydFdlZWtkYXlzKCk7CisgICAgICAgIGNvdW50ID0gc2hvcnRXZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzaG9ydFdlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0U2hvcnRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc2hvcnRXZWVrZGF5c1tpXS5lcXVhbHMoc2hvcnRXZWVrZGF5czFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0U2hvcnRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2lkZVdlZWtkYXlzID0gZW4uZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmcjIuc2V0V2Vla2RheXMod2lkZVdlZWtkYXlzLERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2lkZVdlZWtkYXlzMSA9IGZyMi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGNvdW50ID0gd2lkZVdlZWtkYXlzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHdpZGVXZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKEZPUk1BVCxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHdpZGVXZWVrZGF5c1tpXS5lcXVhbHMod2lkZVdlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhGT1JNQVQsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhYmJyV2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmcjIuc2V0V2Vla2RheXMoYWJicldlZWtkYXlzLERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFiYnJXZWVrZGF5czEgPSBmcjIuZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgY291bnQgPSBhYmJyV2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gYWJicldlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoRk9STUFULEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIGFiYnJXZWVrZGF5c1tpXS5lcXVhbHMoYWJicldlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhGT1JNQVQsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbmFycm93V2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZnIuc2V0V2Vla2RheXMobmFycm93V2Vla2RheXMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIG5hcnJvd1dlZWtkYXlzMSA9IGZyLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBjb3VudCA9IG5hcnJvd1dlZWtkYXlzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IG5hcnJvd1dlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoRk9STUFULE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBuYXJyb3dXZWVrZGF5c1tpXS5lcXVhbHMobmFycm93V2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKEZPUk1BVCxOQVJST1cpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVdlZWtkYXlzID0gZW4uZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZnIuc2V0V2Vla2RheXMoc3RhbmRhbG9uZVdlZWtkYXlzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVXZWVrZGF5czEgPSBmci5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBjb3VudCA9IHN0YW5kYWxvbmVXZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lV2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhTVEFOREFMT05FLFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZVdlZWtkYXlzW2ldLmVxdWFscyhzdGFuZGFsb25lV2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lU2hvcnRXZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmci5zZXRXZWVrZGF5cyhzdGFuZGFsb25lU2hvcnRXZWVrZGF5cyxEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVNob3J0V2Vla2RheXMxID0gZnIuZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZVNob3J0V2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc3RhbmRhbG9uZVNob3J0V2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhTVEFOREFMT05FLEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzW2ldLmVxdWFscyhzdGFuZGFsb25lU2hvcnRXZWVrZGF5czFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoU1RBTkRBTE9ORSxBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lTmFycm93V2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGZyLnNldFdlZWtkYXlzKHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5cyxEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5czEgPSBmci5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5c1tpXS5lcXVhbHMoc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhTVEFOREFMT05FLE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3aWRlUXVhcnRlcnMgPSBlbi5nZXRRdWFydGVycyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZyMi5zZXRRdWFydGVycyh3aWRlUXVhcnRlcnMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3aWRlUXVhcnRlcnMxID0gZnIyLmdldFF1YXJ0ZXJzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgY291bnQgPSB3aWRlUXVhcnRlcnMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gd2lkZVF1YXJ0ZXJzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UXVhcnRlcnMoRk9STUFULCBXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHdpZGVRdWFydGVyc1tpXS5lcXVhbHMod2lkZVF1YXJ0ZXJzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRRdWFydGVycyhGT1JNQVQsIFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYWJiclF1YXJ0ZXJzID0gZW4uZ2V0UXVhcnRlcnMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgZnIyLnNldFF1YXJ0ZXJzKGFiYnJRdWFydGVycyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhYmJyUXVhcnRlcnMxID0gZnIyLmdldFF1YXJ0ZXJzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGNvdW50ID0gYWJiclF1YXJ0ZXJzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IGFiYnJRdWFydGVyczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFF1YXJ0ZXJzKEZPUk1BVCwgQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgYWJiclF1YXJ0ZXJzW2ldLmVxdWFscyhhYmJyUXVhcnRlcnMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFF1YXJ0ZXJzKEZPUk1BVCwgQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVF1YXJ0ZXJzID0gZW4uZ2V0UXVhcnRlcnMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZnIuc2V0UXVhcnRlcnMoc3RhbmRhbG9uZVF1YXJ0ZXJzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVRdWFydGVyczEgPSBmci5nZXRRdWFydGVycyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBjb3VudCA9IHN0YW5kYWxvbmVRdWFydGVycy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lUXVhcnRlcnMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRRdWFydGVycyhTVEFOREFMT05FLCBXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVRdWFydGVyc1tpXS5lcXVhbHMoc3RhbmRhbG9uZVF1YXJ0ZXJzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRRdWFydGVycyhTVEFOREFMT05FLCBXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzID0gZW4uZ2V0UXVhcnRlcnMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyLnNldFF1YXJ0ZXJzKHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lU2hvcnRRdWFydGVyczEgPSBmci5nZXRRdWFydGVycyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgY291bnQgPSBzdGFuZGFsb25lU2hvcnRRdWFydGVycy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lU2hvcnRRdWFydGVyczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFF1YXJ0ZXJzKFNUQU5EQUxPTkUsIEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzW2ldLmVxdWFscyhzdGFuZGFsb25lU2hvcnRRdWFydGVyczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UXVhcnRlcnMoU1RBTkRBTE9ORSwgQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYW1wbXMgPSBlbi5nZXRBbVBtU3RyaW5ncygpOworICAgICAgICBmci5zZXRBbVBtU3RyaW5ncyhhbXBtcyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFtcG1zMSA9IGZyLmdldEFtUG1TdHJpbmdzKCk7CisgICAgICAgIGNvdW50ID0gYW1wbXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gYW1wbXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRBbVBtU3RyaW5ncygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgYW1wbXNbaV0uZXF1YWxzKGFtcG1zMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRBbVBtU3RyaW5ncygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9uZyByb3dDb3VudCA9IDAsIGNvbHVtbkNvdW50ID0gMDsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBzdHJpbmdzID0gZW4uZ2V0Wm9uZVN0cmluZ3MoKTsKKyAgICAgICAgZnIuc2V0Wm9uZVN0cmluZ3Moc3RyaW5ncyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gc3RyaW5nczEgPSBmci5nZXRab25lU3RyaW5ncygpOworICAgICAgICByb3dDb3VudCA9IHN0cmluZ3MubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgcm93Q291bnQ7IGkrKykgeworICAgICAgICAgICAgY29sdW1uQ291bnQgPSBzdHJpbmdzW2ldLmxlbmd0aDsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBjb2x1bW5Db3VudDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYoIHN0cmluZ3NbaV1bal0gIT0gc3RyaW5nczFbaV1bal0gKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0Wm9uZVN0cmluZ3MoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworLy8gICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0UGF0dGVybkNoYXJzKCk7CisKKyAgICAgICAgU3RyaW5nIGxvY2FsUGF0dGVybjsgLy8gcGF0MSwgcGF0MjsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBsb2NhbFBhdHRlcm4gPSBlbi5nZXRMb2NhbFBhdHRlcm5DaGFycygpOworICAgICAgICBmci5zZXRMb2NhbFBhdHRlcm5DaGFycyhsb2NhbFBhdHRlcm4pOworICAgICAgICBpZighIGVuLmdldExvY2FsUGF0dGVybkNoYXJzKCkuZXF1YWxzKGZyLmdldExvY2FsUGF0dGVybkNoYXJzKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldExvY2FsUGF0dGVybkNoYXJzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vRGF0ZUZvcm1hdFN5bWJvbHMgZm9vID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKworICAgICAgICBlbiA9IChEYXRlRm9ybWF0U3ltYm9scykgZnIuY2xvbmUoKTsKKworICAgICAgICBpZighIGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MWE1ZjI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkuamF2YQpAQCAtMCwwICsxLDI2OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIEpESyAxLjRiMSA6IGphdmEudGV4dC5Gb3JtYXQuSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkuamF2YQorICoqLworIAorLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGVjaW1hbCBGb3JtYXQgQVBJCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworCitwdWJsaWMgY2xhc3MgSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSAgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFByb2JsZW0gMTogc2ltcGx5IHJ1bm5pbmcgCisgICAgICogZGVjRjQuc2V0Um91bmRpbmdNb2RlKGphdmEubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfVVApIGRvZXMgbm90IHdvcmsgCisgICAgICogYXMgZGVjRjQuc2V0Um91bmRpbmdJbmNyZW1lbnQoLjAwMDEpIG11c3QgYWxzbyBiZSBydW4uCisgICAgICogUHJvYmxlbSAyOiBkZWNGNC5mb3JtYXQoOC44ODg4NSkgZG9lcyBub3QgcmV0dXJuIDguODg4OSBhcyBleHBlY3RlZC4gCisgICAgICogWW91IG11c3QgcnVuIGRlY0Y0LmZvcm1hdChuZXcgQmlnRGVjaW1hbChEb3VibGUudmFsdWVPZig4Ljg4ODg1KSkpIGluIAorICAgICAqIG9yZGVyIGZvciB0aGlzIHRvIHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICogUHJvYmxlbSAzOiBUaGVyZSBzZWVtcyB0byBiZSBubyB3YXkgdG8gc2V0IGhhbGYgdXAgdG8gYmUgdGhlIGRlZmF1bHQgCisgICAgICogcm91bmRpbmcgbW9kZS4KKyAgICAgKiBXZSBzb2x2ZWQgdGhlIHByb2JsZW0gd2l0aCB0aGUgY29kZSBhdCB0aGUgYm90dG9tIG9mIHRoaXMgcGFnZSBob3dldmVyIAorICAgICAqIHRoaXMgaXMgbm90IHF1aXRlIGdlbmVyYWwgcHVycG9zZSBlbm91Z2ggdG8gaW5jbHVkZSBpbiBpY3U0ai4gQSBzdGF0aWMKKyAgICAgKiBzZXREZWZhdWx0Um91bmRpbmdNb2RlIGZ1bmN0aW9uIHdvdWxkIHNvbHZlIHRoZSBwcm9ibGVtIG5pY2VseS4gQWxzbyAKKyAgICAgKiBkZWNpbWFsIHBsYWNlcyBwYXN0IDIwIGFyZSBub3QgaGFuZGxlZCBwcm9wZXJseS4gQSBzbWFsbCBhbW1vdW50IG9mIHdvcmsgCisgICAgICogd291bGQgbWFrZSBicmluZyB0aGlzIHVwIHRvIHNudWZmLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RKQjE4NzEoKQorICAgIHsKKyAgICAgICAgLy8gcHJvYmxlbSAyCisgICAgICAgIGRvdWJsZSBudW1iZXIgPSA4Ljg4ODg1OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiOC44ODg5IjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBwYXQgPSAiLCMjMC4wMDAwIjsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZWMgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQpOworICAgICAgICBkZWMuc2V0Um91bmRpbmdNb2RlKEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUCk7CisgICAgICAgIGRvdWJsZSByb3VuZGluZ2luYyA9IDAuMDAwMTsKKyAgICAgICAgZGVjLnNldFJvdW5kaW5nSW5jcmVtZW50KHJvdW5kaW5naW5jKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IGRlYy5mb3JtYXQobnVtYmVyKTsKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBudW1iZXIgKyAiIHggXCIiICsgcGF0ICsgIlwiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIHN0ciArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWQgKyAiXCIiKTsKKyAgICAgICAgfSAgIAorCisgICAgICAgIHBhdCA9ICIsIyMwLjAwMDEiOworICAgICAgICBkZWMgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQpOworICAgICAgICBkZWMuc2V0Um91bmRpbmdNb2RlKEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUCk7CisgICAgICAgIHN0ciA9IGRlYy5mb3JtYXQobnVtYmVyKTsKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBudW1iZXIgKyAiIHggXCIiICsgcGF0ICsgIlwiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIHN0ciArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWQgKyAiXCIiKTsKKyAgICAgICAgfSAgCisgICAgICAgIAorICAgICAgICAvLyB0ZXN0aW5nIDIwIGRlY2ltYWwgcGxhY2VzCisgICAgICAgIHBhdCA9ICIsIyMwLjAwMDAwMDAwMDAwMDAwMDAwMDAxIjsKKyAgICAgICAgZGVjID0gbmV3IERlY2ltYWxGb3JtYXQocGF0KTsKKyAgICAgICAgQmlnRGVjaW1hbCBiaWdudW1iZXIgPSBuZXcgQmlnRGVjaW1hbCgiOC44ODg4ODg4ODg4ODg4ODg4ODg4ODUiKTsKKyAgICAgICAgZXhwZWN0ZWQgPSAiOC44ODg4ODg4ODg4ODg4ODg4ODg4OSI7CisgICAgICAgIAorICAgICAgICBkZWMuc2V0Um91bmRpbmdNb2RlKEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUCk7CisgICAgICAgIHN0ciA9IGRlYy5mb3JtYXQoYmlnbnVtYmVyKTsgCisgICAgICAgIGlmICghc3RyLmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgYmlnbnVtYmVyICsgIiB4IFwiIiArIHBhdCArICJcIiA9IFwiIiArCisgICAgICAgICAgICAgICAgICBzdHIgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkICsgIlwiIik7CisgICAgICAgIH0gICAKKyAgICAgICAgCisgICAgfQorCisgICAgLyoqIAorICAgICAqIFRoaXMgdGVzdCBjaGVja3MgdmFyaW91cyBnZW5lcmljIEFQSSBtZXRob2RzIGluIERlY2ltYWxGb3JtYXQgdG8gYWNoaWV2ZSAKKyAgICAgKiAxMDAlIEFQSSBjb3ZlcmFnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCJEZWNpbWFsRm9ybWF0IEFQSSB0ZXN0LS0tIik7IGxvZ2xuKCIiKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBEZWNpbWFsRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIERlY2ltYWxGb3JtYXQgZGVmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IG5ldyBTdHJpbmcoIiMsIyMwLiMgRkYiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBwYXQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkIG5vdCBjcmVhdGUgRGVjaW1hbEZvcm1hdCAocGF0dGVybikiKTsKKyAgICAgICAgfQorCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBjdXN0MSA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjbG9uZSgpLCBhc3NpZ25tZW50LCBhbmQgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpIGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMiKTsKKworICAgICAgICBGb3JtYXQgY2xvbmUgPSAoRm9ybWF0KSBkZWYuY2xvbmUoKTsKKyAgICAgICAgaWYoICEgZGVmLmVxdWFscyhjbG9uZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMKKworICAgICAgICBsb2dsbigiVGVzdGluZyB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMiKTsKKworLy8gICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEwNDU2LjAwMzc7IC8vIHRoaXMgYXBwZWFycyBhcyAtMTA0NTYuMDAzNzAwMDAwMDAxIG9uIE5UCisvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMS4wNDU2MDAzN2UtNDsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xLjA0NTYwMDM3MDAwMDAwMDJFLTQgb24gTlQKKyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzAwMDAwMDAwMDA7IC8vIHRoaXMgd29ya3MhCisgICAgICAgIGZpbmFsIGxvbmcgbCA9IDEwMDAwMDAwMDsKKyAgICAgICAgbG9nbG4oIiIgKyBkICsgIiBpcyB0aGUgZG91YmxlIHZhbHVlIik7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczIgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zNCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBkZWYuZm9ybWF0KGQsIHJlczEsIHBvczEpOworICAgICAgICBsb2dsbigiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IHBhdC5mb3JtYXQobCwgcmVzMiwgcG9zMik7CisgICAgICAgIGxvZ2xuKCIiICsgbCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICByZXMzID0gY3VzdDEuZm9ybWF0KGQsIHJlczMsIHBvczMpOworICAgICAgICBsb2dsbigiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMyk7CisKKyAgICAgICAgcmVzNCA9IGN1c3QxLmZvcm1hdChsLCByZXM0LCBwb3M0KTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczQpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwLDQ1Ni4wMDM3Iik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBwYXR0ID0gbmV3IFN0cmluZygiIywjIzAuIyIpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHBhdHQpOworICAgICAgICBkb3VibGUgZDIgPSBwYXQucGFyc2UodGV4dCwgcG9zKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZihkMiAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJvdW5kdHJpcCBmYWlsZWQgKHZpYSBwYXJzZSgiICsgZDIgKyAiICE9ICIgKyBkICsgIikpIGZvciAiICsgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIChsb25nKSBkMik7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltcyA9IHBhdC5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBkZWYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIGlmKCAhIHBhdC5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpLmVxdWFscyhkZWYuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0IERlY2ltYWxGb3JtYXRTeW1ib2xzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcG9zUHJlZml4OworICAgICAgICBwYXQuc2V0UG9zaXRpdmVQcmVmaXgoIisiKTsKKyAgICAgICAgcG9zUHJlZml4ID0gcGF0LmdldFBvc2l0aXZlUHJlZml4KCk7CisgICAgICAgIGxvZ2xuKCJQb3NpdGl2ZSBwcmVmaXggKHNob3VsZCBiZSArKTogIiArIHBvc1ByZWZpeCk7CisgICAgICAgIGlmKHBvc1ByZWZpeCAhPSAiKyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVQcmVmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuZWdQcmVmaXg7CisgICAgICAgIHBhdC5zZXROZWdhdGl2ZVByZWZpeCgiLSIpOworICAgICAgICBuZWdQcmVmaXggPSBwYXQuZ2V0TmVnYXRpdmVQcmVmaXgoKTsKKyAgICAgICAgbG9nbG4oIk5lZ2F0aXZlIHByZWZpeCAoc2hvdWxkIGJlIC0pOiAiICsgbmVnUHJlZml4KTsKKyAgICAgICAgaWYobmVnUHJlZml4ICE9ICItIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHBvc1N1ZmZpeDsKKyAgICAgICAgcGF0LnNldFBvc2l0aXZlU3VmZml4KCJfIik7CisgICAgICAgIHBvc1N1ZmZpeCA9IHBhdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpOworICAgICAgICBsb2dsbigiUG9zaXRpdmUgc3VmZml4IChzaG91bGQgYmUgXyk6ICIgKyBwb3NTdWZmaXgpOworICAgICAgICBpZihwb3NTdWZmaXggIT0gIl8iKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFBvc2l0aXZlU3VmZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgbmVnU3VmZml4OworICAgICAgICBwYXQuc2V0TmVnYXRpdmVTdWZmaXgoIn4iKTsKKyAgICAgICAgbmVnU3VmZml4ID0gcGF0LmdldE5lZ2F0aXZlU3VmZml4KCk7CisgICAgICAgIGxvZ2xuKCJOZWdhdGl2ZSBzdWZmaXggKHNob3VsZCBiZSB+KTogIiArIG5lZ1N1ZmZpeCk7CisgICAgICAgIGlmKG5lZ1N1ZmZpeCAhPSAifiIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TmVnYXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgbXVsdGlwbGllciA9IDA7CisgICAgICAgIHBhdC5zZXRNdWx0aXBsaWVyKDgpOworICAgICAgICBtdWx0aXBsaWVyID0gcGF0LmdldE11bHRpcGxpZXIoKTsKKyAgICAgICAgbG9nbG4oIk11bHRpcGxpZXIgKHNob3VsZCBiZSA4KTogIiArIG11bHRpcGxpZXIpOworICAgICAgICBpZihtdWx0aXBsaWVyICE9IDgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TXVsdGlwbGllcigpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdyb3VwaW5nU2l6ZSA9IDA7CisgICAgICAgIHBhdC5zZXRHcm91cGluZ1NpemUoMik7CisgICAgICAgIGdyb3VwaW5nU2l6ZSA9IHBhdC5nZXRHcm91cGluZ1NpemUoKTsKKyAgICAgICAgbG9nbG4oIkdyb3VwaW5nIHNpemUgKHNob3VsZCBiZSAyKTogIiArIChsb25nKSBncm91cGluZ1NpemUpOworICAgICAgICBpZihncm91cGluZ1NpemUgIT0gMikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRHcm91cGluZ1NpemUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHBhdC5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGJvb2xlYW4gdGYgPSBwYXQuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKTsKKyAgICAgICAgbG9nbG4oIkRlY2ltYWxTZXBhcmF0b3JJc0Fsd2F5c1Nob3duIChzaG91bGQgYmUgdHJ1ZSkgaXMgIiArICAodGYgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgICAgIGlmKHRmICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZnVua3lQYXQ7CisgICAgICAgIGZ1bmt5UGF0ID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiUGF0dGVybiBpcyAiICsgZnVua3lQYXQpOworCisgICAgICAgIFN0cmluZyBsb2NQYXQ7CisgICAgICAgIGxvY1BhdCA9IHBhdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkxvY2FsaXplZCBwYXR0ZXJuIGlzICIgKyBsb2NQYXQpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBhcHBseVBhdHRlcm4oKQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGFwcGx5UGF0dGVybigpIik7CisKKyAgICAgICAgU3RyaW5nIHAxID0gbmV3IFN0cmluZygiIywjIzAuMCM7KCMsIyMwLjAjKSIpOworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiAiICsgcDEpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHAxKTsKKyAgICAgICAgU3RyaW5nIHMyOworICAgICAgICBzMiA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMik7CisgICAgICAgIGlmKCAhIHMyLmVxdWFscyhwMSkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHAyID0gbmV3IFN0cmluZygiIywjIzAuMCMgRkY7KCMsIyMwLjAjIEZGKSIpOworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiAiICsgcDIpOworICAgICAgICBwYXQuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKHAyKTsKKyAgICAgICAgU3RyaW5nIHMzOworICAgICAgICBzMyA9IHBhdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMyk7CisgICAgICAgIGlmKCAhIHMzLmVxdWFscyhwMikgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvTG9jYWxpemVkUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisgICAgfQorfQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJQy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGI0OTkxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJQy5qYXZhCkBAIC0wLDAgKzEsNTE3IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kY2ZtYXB0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworCisvLyBUaGlzIGlzIGFuIEFQSSB0ZXN0LCBub3QgYSB1bml0IHRlc3QuICBJdCBkb2Vzbid0IHRlc3QgdmVyeSBtYW55IGNhc2VzLCBhbmQgZG9lc24ndAorLy8gdHJ5IHRvIHRlc3QgdGhlIGZ1bGwgZnVuY3Rpb25hbGl0eS4gIEl0IGp1c3QgY2FsbHMgZWFjaCBmdW5jdGlvbiBpbiB0aGUgY2xhc3MgYW5kCisvLyB2ZXJpZmllcyB0aGF0IGl0IHdvcmtzIG9uIGEgYmFzaWMgbGV2ZWwuCitwdWJsaWMgY2xhc3MgSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJQyBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSAgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBjaGVja3MgdmFyaW91cyBnZW5lcmljIEFQSSBtZXRob2RzIGluIERlY2ltYWxGb3JtYXQgdG8gYWNoaWV2ZSAxMDAlIEFQSSBjb3ZlcmFnZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkgeworCisgICAgICAgIGxvZ2xuKCJEZWNpbWFsRm9ybWF0IEFQSSB0ZXN0LS0tIik7CisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBEZWNpbWFsRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIERlY2ltYWxGb3JtYXQgZGVmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IG5ldyBTdHJpbmcoIiMsIyMwLiMgRkYiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBwYXQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkIG5vdCBjcmVhdGUgRGVjaW1hbEZvcm1hdCAocGF0dGVybikiKTsKKyAgICAgICAgfQorCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBjdXN0MSA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjbG9uZSgpLCBhc3NpZ25tZW50LCBhbmQgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpIGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMiKTsKKworICAgICAgICBGb3JtYXQgY2xvbmUgPSAoRm9ybWF0KSBkZWYuY2xvbmUoKTsKKyAgICAgICAgaWYgKCFkZWYuZXF1YWxzKGNsb25lKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworCisgICAgICAgIC8vICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xMDQ1Ni4wMDM3OyAvLyB0aGlzIGFwcGVhcnMgYXMgLTEwNDU2LjAwMzcwMDAwMDAwMSBvbiBOVAorICAgICAgICAvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMS4wNDU2MDAzN2UtNDsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xLjA0NTYwMDM3MDAwMDAwMDJFLTQgb24gTlQKKyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzAwMDAwMDAwMDA7IC8vIHRoaXMgd29ya3MhCisgICAgICAgIGZpbmFsIGxvbmcgbCA9IDEwMDAwMDAwMDsKKyAgICAgICAgbG9nbG4oIiIgKyBEb3VibGUudG9TdHJpbmcoZCkgKyAiIGlzIHRoZSBkb3VibGUgdmFsdWUiKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzNCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczMgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3M0ID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisKKyAgICAgICAgcmVzMSA9IGRlZi5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgRG91YmxlLnRvU3RyaW5nKGQpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczEpOworCisgICAgICAgIHJlczIgPSBwYXQuZm9ybWF0KGwsIHJlczIsIHBvczIpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMik7CisKKyAgICAgICAgcmVzMyA9IGN1c3QxLmZvcm1hdChkLCByZXMzLCBwb3MzKTsKKyAgICAgICAgbG9nbG4oIiIgKyBEb3VibGUudG9TdHJpbmcoZCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMyk7CisKKyAgICAgICAgcmVzNCA9IGN1c3QxLmZvcm1hdChsLCByZXM0LCBwb3M0KTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczQpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwLDQ1Ni4wMDM3Iik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBwYXR0ID0gbmV3IFN0cmluZygiIywjIzAuIyIpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHBhdHQpOworICAgICAgICBkb3VibGUgZDIgPSBwYXQucGFyc2UodGV4dCwgcG9zKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZiAoZDIgIT0gZCkgeworICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgIkVSUk9SOiBSb3VuZHRyaXAgZmFpbGVkICh2aWEgcGFyc2UoIiArIERvdWJsZS50b1N0cmluZyhkMikgKyAiICE9ICIgKyBEb3VibGUudG9TdHJpbmcoZCkgKyAiKSkgZm9yICIgKyB0ZXh0KTsgCisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIChsb25nKSBkMik7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltcyA9IHBhdC5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBkZWYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIGlmICghcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZXF1YWxzKGRlZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBwb3NQcmVmaXg7CisgICAgICAgIHBhdC5zZXRQb3NpdGl2ZVByZWZpeCgiKyIpOworICAgICAgICBwb3NQcmVmaXggPSBwYXQuZ2V0UG9zaXRpdmVQcmVmaXgoKTsKKyAgICAgICAgbG9nbG4oIlBvc2l0aXZlIHByZWZpeCAoc2hvdWxkIGJlICspOiAiICsgcG9zUHJlZml4KTsKKyAgICAgICAgaWYgKHBvc1ByZWZpeCAhPSAiKyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVQcmVmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuZWdQcmVmaXg7CisgICAgICAgIHBhdC5zZXROZWdhdGl2ZVByZWZpeCgiLSIpOworICAgICAgICBuZWdQcmVmaXggPSBwYXQuZ2V0TmVnYXRpdmVQcmVmaXgoKTsKKyAgICAgICAgbG9nbG4oIk5lZ2F0aXZlIHByZWZpeCAoc2hvdWxkIGJlIC0pOiAiICsgbmVnUHJlZml4KTsKKyAgICAgICAgaWYgKG5lZ1ByZWZpeCAhPSAiLSIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TmVnYXRpdmVQcmVmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBwb3NTdWZmaXg7CisgICAgICAgIHBhdC5zZXRQb3NpdGl2ZVN1ZmZpeCgiXyIpOworICAgICAgICBwb3NTdWZmaXggPSBwYXQuZ2V0UG9zaXRpdmVTdWZmaXgoKTsKKyAgICAgICAgbG9nbG4oIlBvc2l0aXZlIHN1ZmZpeCAoc2hvdWxkIGJlIF8pOiAiICsgcG9zU3VmZml4KTsKKyAgICAgICAgaWYgKHBvc1N1ZmZpeCAhPSAiXyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuZWdTdWZmaXg7CisgICAgICAgIHBhdC5zZXROZWdhdGl2ZVN1ZmZpeCgifiIpOworICAgICAgICBuZWdTdWZmaXggPSBwYXQuZ2V0TmVnYXRpdmVTdWZmaXgoKTsKKyAgICAgICAgbG9nbG4oIk5lZ2F0aXZlIHN1ZmZpeCAoc2hvdWxkIGJlIH4pOiAiICsgbmVnU3VmZml4KTsKKyAgICAgICAgaWYgKG5lZ1N1ZmZpeCAhPSAifiIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TmVnYXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgbXVsdGlwbGllciA9IDA7CisgICAgICAgIHBhdC5zZXRNdWx0aXBsaWVyKDgpOworICAgICAgICBtdWx0aXBsaWVyID0gcGF0LmdldE11bHRpcGxpZXIoKTsKKyAgICAgICAgbG9nbG4oIk11bHRpcGxpZXIgKHNob3VsZCBiZSA4KTogIiArIG11bHRpcGxpZXIpOworICAgICAgICBpZiAobXVsdGlwbGllciAhPSA4KSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE11bHRpcGxpZXIoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBncm91cGluZ1NpemUgPSAwOworICAgICAgICBwYXQuc2V0R3JvdXBpbmdTaXplKDIpOworICAgICAgICBncm91cGluZ1NpemUgPSBwYXQuZ2V0R3JvdXBpbmdTaXplKCk7CisgICAgICAgIGxvZ2xuKCJHcm91cGluZyBzaXplIChzaG91bGQgYmUgMik6ICIgKyAobG9uZykgZ3JvdXBpbmdTaXplKTsKKyAgICAgICAgaWYgKGdyb3VwaW5nU2l6ZSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEdyb3VwaW5nU2l6ZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgcGF0LnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAgICAgICAgYm9vbGVhbiB0ZiA9IHBhdC5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpOworICAgICAgICBsb2dsbigKKyAgICAgICAgICAgICJEZWNpbWFsU2VwYXJhdG9ySXNBbHdheXNTaG93biAoc2hvdWxkIGJlIHRydWUpIGlzICIgKyAodGYgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7IAorICAgICAgICBpZiAodGYgIT0gdHJ1ZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBmdW5reVBhdDsKKyAgICAgICAgZnVua3lQYXQgPSBwYXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIGlzICIgKyBmdW5reVBhdCk7CisKKyAgICAgICAgU3RyaW5nIGxvY1BhdDsKKyAgICAgICAgbG9jUGF0ID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiTG9jYWxpemVkIHBhdHRlcm4gaXMgIiArIGxvY1BhdCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGFwcGx5UGF0dGVybigpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgYXBwbHlQYXR0ZXJuKCkiKTsKKworICAgICAgICBTdHJpbmcgcDEgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIzsoIywjIzAuMCMpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocDEpOworICAgICAgICBTdHJpbmcgczI7CisgICAgICAgIHMyID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMyKTsKKyAgICAgICAgaWYgKCFzMi5lcXVhbHMocDEpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHAyID0gbmV3IFN0cmluZygiIywjIzAuMCMgRkY7KCMsIyMwLjAjIEZGKSIpOworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiAiICsgcDIpOworICAgICAgICBwYXQuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKHAyKTsKKyAgICAgICAgU3RyaW5nIHMzOworICAgICAgICBzMyA9IHBhdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMyk7CisgICAgICAgIGlmICghczMuZXF1YWxzKHAyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiB0b0xvY2FsaXplZFBhdHRlcm4oKSByZXN1bHQgZGlkIG5vdCBtYXRjaCBwYXR0ZXJuIGFwcGxpZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXRTdGF0aWNDbGFzc0lEKCkKKworICAgICAgICAvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZigpIik7CisKKyAgICAgICAgLy8gICAgICAgIHRyeSB7CisgICAgICAgIC8vICAgICAgICAgICBOdW1iZXJGb3JtYXQgdGVzdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisKKyAgICAgICAgLy8gICAgICAgICAgICBpZiAoISAodGVzdCBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpKSB7CisgICAgICAgIC8vICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW5zdGFuY2VvZiBmYWlsZWQiKTsKKyAgICAgICAgLy8gICAgICAgICAgICB9CisgICAgICAgIC8vICAgICAgICB9CisgICAgICAgIC8vICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkbid0IGNyZWF0ZSBhIERlY2ltYWxGb3JtYXQiKTsKKyAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRpbmcoKSB7CisgICAgICAgIGRvdWJsZSBSb3VuZGluZ251bWJlciA9IDIuNTU7CisgICAgICAgIGRvdWJsZSBSb3VuZGluZ251bWJlcjEgPSAtMi41NTsKKyAgICAgICAgLy8rMi41NSByZXN1bHRzICAgLTIuNTUgcmVzdWx0cworICAgICAgICBkb3VibGUgcmVzdWx0W10gPSB7CisgICAgICAgICAgICAzLCAtMywgICAKKyAgICAgICAgICAgIDIsIC0yLCAKKyAgICAgICAgICAgIDMsIC0yLCAKKyAgICAgICAgICAgIDIsIC0zLCAKKyAgICAgICAgICAgIDMsIC0zLCAKKyAgICAgICAgICAgIDMsIC0zLCAKKyAgICAgICAgICAgIDMsIC0zIAorICAgICAgICB9OworICAgICAgICBEZWNpbWFsRm9ybWF0IHBhdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyBzID0gIiI7CisgICAgICAgIHMgPSBwYXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuID0gIiArIHMpOworICAgICAgICBpbnQgbW9kZTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdFN0cjsKKyAgICAgICAgZm9yIChtb2RlID0gMDsgbW9kZSA8IDc7IG1vZGUrKykgeworICAgICAgICAgICAgcGF0LnNldFJvdW5kaW5nTW9kZShtb2RlKTsKKyAgICAgICAgICAgIGlmIChwYXQuZ2V0Um91bmRpbmdNb2RlKCkgIT0gbW9kZSkgeworICAgICAgICAgICAgICAgIGVycmxuKAorICAgICAgICAgICAgICAgICAgICAgIlNldFJvdW5kaW5nTW9kZSBvciBHZXRSb3VuZGluZ01vZGUgZmFpbGVkIGZvciBtb2RlPSIgKyBtb2RlKTsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vZm9yICsyLjU1IHdpdGggUm91bmRpbmdJbmNyZW1lbnQ9MS4wCisgICAgICAgICAgICBwYXQuc2V0Um91bmRpbmdJbmNyZW1lbnQoMS4wKTsKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9IHBhdC5mb3JtYXQoUm91bmRpbmdudW1iZXIpOworICAgICAgICAgICAgbWVzc2FnZSA9ICJyb3VuZCgiICsgKGRvdWJsZSkgUm91bmRpbmdudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgKyAiLCIgKyBtb2RlICsgIixGQUxTRSkgd2l0aCBSb3VuZGluZ0luY3JlbWVudD0xLjA9PT4iOyAKKyAgICAgICAgICAgIHZlcmlmeShtZXNzYWdlLCByZXN1bHRTdHIsIHJlc3VsdFtpKytdKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiIjsKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9ICIiOworCisgICAgICAgICAgICAvL2ZvciAtMi41NSB3aXRoIFJvdW5kaW5nSW5jcmVtZW50PTEuMAorICAgICAgICAgICAgcmVzdWx0U3RyID0gcGF0LmZvcm1hdChSb3VuZGluZ251bWJlcjEpOworICAgICAgICAgICAgbWVzc2FnZSA9ICJyb3VuZCgiICsgKGRvdWJsZSkgUm91bmRpbmdudW1iZXIxCisgICAgICAgICAgICAgICAgICAgICsgIiwiICsgbW9kZSArICIsRkFMU0UpIHdpdGggUm91bmRpbmdJbmNyZW1lbnQ9MS4wPT0+IjsgCisgICAgICAgICAgICB2ZXJpZnkobWVzc2FnZSwgcmVzdWx0U3RyLCByZXN1bHRbaSsrXSk7CisgICAgICAgICAgICBtZXNzYWdlID0gIiI7CisgICAgICAgICAgICByZXN1bHRTdHIgPSAiIjsKKyAgICAgICAgfQorICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcigpIHsKKworICAgICAgICBOdW1iZXIgbnVtYmVyID0gbmV3IERvdWJsZSgzNTAuNzYpOworICAgICAgICBOdW1iZXIgbmVnYXRpdmVOdW1iZXIgPSBuZXcgRG91YmxlKC0zNTAuNzYpOworCisgICAgICAgIExvY2FsZSB1cyA9IExvY2FsZS5VUzsKKyAgICAgICAgTG9jYWxlIHRyID0gbmV3IExvY2FsZSgidHIiLCAiVFIiKTsKKworICAgICAgICAvLyB0ZXN0IG51bWJlciBpbnN0YW5jZQorICAgICAgICB0X0Zvcm1hdCgxLCBudW1iZXIsIE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZSh1cyksCisgICAgICAgICAgICAgICAgZ2V0TnVtYmVyVmVjdG9yVVMoKSk7CisKKy8vICAgICAgICAvLyB0ZXN0IHBlcmNlbnQgaW5zdGFuY2UKKyAgICAgICAgdF9Gb3JtYXQoMywgbnVtYmVyLCBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKHVzKSwKKyAgICAgICAgICAgICAgICBnZXRQZXJjZW50VmVjdG9yVVMoKSk7CisvLworLy8gICAgICAgIC8vIHRlc3QgcGVybWlsbGUgcGF0dGVybgorICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIyMwLiMjXHUyMDMwIik7CisvLyAgICAgICAgdF9Gb3JtYXQoNCwgbnVtYmVyLCBmb3JtYXQsIGdldFBlcm1pbGxlVmVjdG9yKCkpOworCisgICAgICAgIC8vIHRlc3QgZXhwb25lbnRpYWwgcGF0dGVybiB3aXRoIHBvc2l0aXZlIGV4cG9uZW50CisgICAgICAgIGZvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwMC4wI0UwIik7CisgICAgICAgIHRfRm9ybWF0KDUsIG51bWJlciwgZm9ybWF0LCBnZXRQb3NpdGl2ZUV4cG9uZW50VmVjdG9yKCkpOworCisvLyAgICAgICAgLy8gdGVzdCBleHBvbmVudGlhbCBwYXR0ZXJuIHdpdGggbmVnYXRpdmUgZXhwb25lbnQKKyAgICAgICAgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwMDAuMCNFMCIpOworICAgICAgICB0X0Zvcm1hdCg2LCBudW1iZXIsIGZvcm1hdCwgZ2V0TmVnYXRpdmVFeHBvbmVudFZlY3RvcigpKTsKKworICAgICAgICAvLyB0ZXN0IGN1cnJlbmN5IGluc3RhbmNlIHdpdGggVVMgTG9jYWxlCisgICAgICAgIHRfRm9ybWF0KDcsIG51bWJlciwgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UodXMpLAorICAgICAgICAgICAgICAgIGdldFBvc2l0aXZlQ3VycmVuY3lWZWN0b3JVUygpKTsKKworLy8gICAgICAgIC8vIHRlc3QgbmVnYXRpdmUgY3VycmVuY3kgaW5zdGFuY2Ugd2l0aCBVUyBMb2NhbGUKKyAgICAgICAgdF9Gb3JtYXQoOCwgbmVnYXRpdmVOdW1iZXIsIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKHVzKSwKKyAgICAgICAgICAgICAgICBnZXROZWdhdGl2ZUN1cnJlbmN5VmVjdG9yVVMoKSk7CisKKy8vICAgICAgICAvLyB0ZXN0IG11bHRpcGxlIGdyb3VwaW5nIHNlcGVyYXRvcnMKKyAgICAgICAgbnVtYmVyID0gbmV3IExvbmcoMTAwMzAwNDAwKTsKKyAgICAgICAgdF9Gb3JtYXQoMTEsIG51bWJlciwgTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKHVzKSwKKyAgICAgICAgICAgICAgICBnZXROdW1iZXJWZWN0b3IyVVMoKSk7CisKKy8vICAgICAgICAvLyB0ZXN0IDAKKyAgICAgICAgbnVtYmVyID0gbmV3IExvbmcoMCk7CisgICAgICAgIHRfRm9ybWF0KDEyLCBudW1iZXIsIE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZSh1cyksCisgICAgICAgICAgICAgICAgZ2V0WmVyb1ZlY3RvcigpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0TnVtYmVyVmVjdG9yVVMoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMCwgMywgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDMsIDQsIE51bWJlckZvcm1hdC5GaWVsZC5ERUNJTUFMX1NFUEFSQVRPUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNCwgNiwgTnVtYmVyRm9ybWF0LkZpZWxkLkZSQUNUSU9OKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0UG9zaXRpdmVDdXJyZW5jeVZlY3RvclRSKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDAsIDMsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig0LCA2LCBOdW1iZXJGb3JtYXQuRmllbGQuQ1VSUkVOQ1kpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldE5lZ2F0aXZlQ3VycmVuY3lWZWN0b3JUUigpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigwLCAxLCBOdW1iZXJGb3JtYXQuRmllbGQuU0lHTikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMSwgNCwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDUsIDcsIE51bWJlckZvcm1hdC5GaWVsZC5DVVJSRU5DWSkpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0UG9zaXRpdmVDdXJyZW5jeVZlY3RvclVTKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDAsIDEsIE51bWJlckZvcm1hdC5GaWVsZC5DVVJSRU5DWSkpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMSwgNCwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDQsIDUsIE51bWJlckZvcm1hdC5GaWVsZC5ERUNJTUFMX1NFUEFSQVRPUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNSwgNywgTnVtYmVyRm9ybWF0LkZpZWxkLkZSQUNUSU9OKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXROZWdhdGl2ZUN1cnJlbmN5VmVjdG9yVVMoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMSwgMiwgTnVtYmVyRm9ybWF0LkZpZWxkLkNVUlJFTkNZKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigyLCA1LCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNSwgNiwgTnVtYmVyRm9ybWF0LkZpZWxkLkRFQ0lNQUxfU0VQQVJBVE9SKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig2LCA4LCBOdW1iZXJGb3JtYXQuRmllbGQuRlJBQ1RJT04pKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldFBlcmNlbnRWZWN0b3JVUygpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigwLCAyLCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMiwgMywgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDIsIDMsIE51bWJlckZvcm1hdC5GaWVsZC5HUk9VUElOR19TRVBBUkFUT1IpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDMsIDYsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig2LCA3LCBOdW1iZXJGb3JtYXQuRmllbGQuUEVSQ0VOVCkpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0UGVybWlsbGVWZWN0b3IoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMCwgNiwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDYsIDcsIE51bWJlckZvcm1hdC5GaWVsZC5QRVJNSUxMRSkpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0TmVnYXRpdmVFeHBvbmVudFZlY3RvcigpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigwLCA0LCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNCwgNSwgTnVtYmVyRm9ybWF0LkZpZWxkLkRFQ0lNQUxfU0VQQVJBVE9SKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig1LCA2LCBOdW1iZXJGb3JtYXQuRmllbGQuRlJBQ1RJT04pKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDYsIDcsIE51bWJlckZvcm1hdC5GaWVsZC5FWFBPTkVOVF9TWU1CT0wpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDcsIDgsIE51bWJlckZvcm1hdC5GaWVsZC5FWFBPTkVOVF9TSUdOKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig4LCA5LCBOdW1iZXJGb3JtYXQuRmllbGQuRVhQT05FTlQpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldFBvc2l0aXZlRXhwb25lbnRWZWN0b3IoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMCwgMiwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDIsIDMsIE51bWJlckZvcm1hdC5GaWVsZC5ERUNJTUFMX1NFUEFSQVRPUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMywgNSwgTnVtYmVyRm9ybWF0LkZpZWxkLkZSQUNUSU9OKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig1LCA2LCBOdW1iZXJGb3JtYXQuRmllbGQuRVhQT05FTlRfU1lNQk9MKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig2LCA3LCBOdW1iZXJGb3JtYXQuRmllbGQuRVhQT05FTlQpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldE51bWJlclZlY3RvcjJVUygpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigwLCAzLCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMywgNCwgTnVtYmVyRm9ybWF0LkZpZWxkLkdST1VQSU5HX1NFUEFSQVRPUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMywgNCwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDQsIDcsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig3LCA4LCBOdW1iZXJGb3JtYXQuRmllbGQuR1JPVVBJTkdfU0VQQVJBVE9SKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig3LCA4LCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoOCwgMTEsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXRaZXJvVmVjdG9yKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDAsIDEsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0gICAgCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHRfRm9ybWF0KGludCBjb3VudCwgT2JqZWN0IG9iamVjdCwgRm9ybWF0IGZvcm1hdCwKKyAgICAgICAgICAgIFZlY3RvciBleHBlY3RlZFJlc3VsdHMpIHsKKyAgICAgICAgVmVjdG9yIHJlc3VsdHMgPSBmaW5kRmllbGRzKGZvcm1hdC5mb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yKG9iamVjdCkpOworICAgICAgICBhc3NlcnRUcnVlKCJUZXN0ICIgKyBjb3VudAorICAgICAgICAgICAgICAgICsgIjogRm9ybWF0IHJldHVybmVkIGluY29ycmVjdCBDaGFyYWN0ZXJJdGVyYXRvciBmb3IgIgorICAgICAgICAgICAgICAgICsgZm9ybWF0LmZvcm1hdChvYmplY3QpLCBjb21wYXJlKHJlc3VsdHMsIGV4cGVjdGVkUmVzdWx0cykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIGNvbXBhcmVzIHR3byB2ZWN0b3JzIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIG9mIHRoZWlyIGVsZW1lbnRzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBjb21wYXJlKFZlY3RvciB2ZWN0b3IxLCBWZWN0b3IgdmVjdG9yMikgeworICAgICAgICByZXR1cm4gdmVjdG9yMS5zaXplKCkgPT0gdmVjdG9yMi5zaXplKCkgJiYgdmVjdG9yMS5jb250YWluc0FsbCh2ZWN0b3IyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogZmluZHMgYXR0cmlidXRlcyB3aXRoIHJlZ2FyZHMgdG8gY2hhciBpbmRleCBpbiB0aGlzCisgICAgICogQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLCBhbmQgcHV0cyB0aGVtIGluIGEgdmVjdG9yCisgICAgICogCisgICAgICogQHBhcmFtIGl0ZXJhdG9yCisgICAgICogQHJldHVybiBhIHZlY3RvciwgZWFjaCBlbnRyeSBpbiB0aGlzIHZlY3RvciBhcmUgb2YgdHlwZSBGaWVsZENvbnRhaW5lciAsCisgICAgICogICAgICAgICB3aGljaCBzdG9yZXMgc3RhcnQgYW5kIGVuZCBpbmRleGVzIGFuZCBhbiBhdHRyaWJ1dGUgdGhpcyByYW5nZQorICAgICAqICAgICAgICAgaGFzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGZpbmRGaWVsZHMoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKSB7CisgICAgICAgIFZlY3RvciByZXN1bHQgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyYXRvci5nZXRJbmRleCgpICE9IGl0ZXJhdG9yLmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IGl0ZXJhdG9yLmdldFJ1blN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgZW5kID0gaXRlcmF0b3IuZ2V0UnVuTGltaXQoKTsKKworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBpdGVyYXRvci5nZXRBdHRyaWJ1dGVzKCkua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlIGF0dHJpYnV0ZSA9IChBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlKSBpdAorICAgICAgICAgICAgICAgICAgICAgICAgLm5leHQoKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBpdGVyYXRvci5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKG5ldyBGaWVsZENvbnRhaW5lcihzdGFydCwgZW5kLCBhdHRyaWJ1dGUsIHZhbHVlKSk7CisgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKHN0YXJ0ICsgIiAiICsgZW5kICsgIjogIiArIGF0dHJpYnV0ZSArICIsCisgICAgICAgICAgICAgICAgLy8gIiArIHZhbHVlICk7CisgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJ2LmFkZChuZXcgRmllbGRDb250YWluZXIoIiArIHN0YXJ0ICsiLCIgKworICAgICAgICAgICAgICAgIC8vIGVuZCArIiwiICsgYXR0cmlidXRlKyAiLCIgKyB2YWx1ZSsgIikpOyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoZW5kKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGNsYXNzIEZpZWxkQ29udGFpbmVyIHsKKyAgICAgICAgaW50IHN0YXJ0LCBlbmQ7CisKKyAgICAgICAgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGU7CisKKyAgICAgICAgT2JqZWN0IHZhbHVlOworCisvLyAgICAgICAgIGNhbGxlZCBmcm9tIHN1cHBvcnRfZGVjaW1hbGZvcm1hdCBhbmQgc3VwcG9ydF9zaW1wbGVkYXRlZm9ybWF0IHRlc3RzCisgICAgICAgIHB1YmxpYyBGaWVsZENvbnRhaW5lcihpbnQgc3RhcnQsIGludCBlbmQsCisgICAgICAgIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisgICAgICAgICAgICB0aGlzKHN0YXJ0LCBlbmQsIGF0dHJpYnV0ZSwgYXR0cmlidXRlKTsKKyAgICAgICAgfQorCisvLyAgICAgICAgIGNhbGxlZCBmcm9tIHN1cHBvcnRfbWVzc2FnZWZvcm1hdCB0ZXN0cworICAgICAgICBwdWJsaWMgRmllbGRDb250YWluZXIoaW50IHN0YXJ0LCBpbnQgZW5kLCBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlIGF0dHJpYnV0ZSwgaW50IHZhbHVlKSB7CisgICAgICAgIHRoaXMoc3RhcnQsIGVuZCwgYXR0cmlidXRlLCBuZXcgSW50ZWdlcih2YWx1ZSkpOworICAgICAgICB9CisKKy8vICAgICAgICAgY2FsbGVkIGZyb20gc3VwcG9ydF9tZXNzYWdlZm9ybWF0IHRlc3RzCisgICAgICAgIHB1YmxpYyBGaWVsZENvbnRhaW5lcihpbnQgc3RhcnQsIGludCBlbmQsIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGUgYXR0cmlidXRlLAorICAgICAgICBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OworICAgICAgICB0aGlzLmVuZCA9IGVuZDsKKyAgICAgICAgdGhpcy5hdHRyaWJ1dGUgPSBhdHRyaWJ1dGU7CisgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIEZpZWxkQ29udGFpbmVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEZpZWxkQ29udGFpbmVyIGZjID0gKEZpZWxkQ29udGFpbmVyKSBvYmo7CisgICAgICAgIHJldHVybiAoc3RhcnQgPT0gZmMuc3RhcnQgJiYgZW5kID09IGZjLmVuZAorICAgICAgICAmJiBhdHRyaWJ1dGUgPT0gZmMuYXR0cmlidXRlICYmIHZhbHVlLmVxdWFscyhmYy52YWx1ZSkpOworICAgICAgICB9CisgICAgfSAKKy8vI2VuZGlmCisKKyAgICAvKkhlbHBlciBmdW5jdGlvbnMgKi8KKyAgICBwdWJsaWMgdm9pZCB2ZXJpZnkoU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBnb3QsIGRvdWJsZSBleHBlY3RlZCkgeworICAgICAgICBsb2dsbihtZXNzYWdlICsgZ290ICsgIiBFeHBlY3RlZCA6ICIgKyAobG9uZylleHBlY3RlZCk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFN0ciA9ICIiOworICAgICAgICBleHBlY3RlZFN0cj1leHBlY3RlZFN0ciArIChsb25nKWV4cGVjdGVkOworICAgICAgICBpZighZ290LmVxdWFscyhleHBlY3RlZFN0cikgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJvdW5kKCkgZmFpbGVkOiAgIiArIG1lc3NhZ2UgKyBnb3QgKyAiICBFeHBlY3RlZCA6ICIgKyBleHBlY3RlZFN0cik7CisgICAgICAgIH0KKyAgICB9Cit9CisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OGI3ZjdiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSwxNjQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YQorICoqLworIAorLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGVjaW1hbCBGb3JtYXQgU3ltYm9scworKi8KKworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IHRoZSBBUEkgb2YgRGVjaW1hbEZvcm1hdFN5bWJvbHM7IHByaW1hcmlseSBhIHNpbXBsZSBnZXQvc2V0IHNldC4KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ltYm9scygpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBmciA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBlbiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgaWYoZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBFbmdsaXNoIERlY2ltYWxGb3JtYXRTeW1ib2xzIGVxdWFsIHRvIEZyZW5jaCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8ganVzdCBkbyBzb21lIFZFUlkgYmFzaWMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgZ2V0L3NldCB3b3JrCisKKyAgICAgICAgY2hhciB6ZXJvID0gZW4uZ2V0WmVyb0RpZ2l0KCk7CisgICAgICAgIGZyLnNldFplcm9EaWdpdCh6ZXJvKTsKKyAgICAgICAgaWYoZnIuZ2V0WmVyb0RpZ2l0KCkgIT0gZW4uZ2V0WmVyb0RpZ2l0KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBaZXJvRGlnaXQgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHNpZ0RpZ2l0ID0gZW4uZ2V0U2lnbmlmaWNhbnREaWdpdCgpOworICAgICAgICBmci5zZXRTaWduaWZpY2FudERpZ2l0KHNpZ0RpZ2l0KTsgCisgICAgICAgIGlmKGZyLmdldFNpZ25pZmljYW50RGlnaXQoKSAhPSBlbi5nZXRTaWduaWZpY2FudERpZ2l0KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBTaWduaWZpY2FudERpZ2l0IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgQ3VycmVuY3kgY3VycmVuY3kgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiVVNEIik7CisgICAgICAgIGZyLnNldEN1cnJlbmN5KGN1cnJlbmN5KTsKKyAgICAgICAgaWYgKCFmci5nZXRDdXJyZW5jeSgpLmVxdWFscyhjdXJyZW5jeSkpeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEN1cnJlbmN5IGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2hhciBncm91cCA9IGVuLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgICAgIGZyLnNldEdyb3VwaW5nU2VwYXJhdG9yKGdyb3VwKTsKKyAgICAgICAgaWYoZnIuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSAhPSBlbi5nZXRHcm91cGluZ1NlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgR3JvdXBpbmdTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIGRlY2ltYWwgPSBlbi5nZXREZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGZyLnNldERlY2ltYWxTZXBhcmF0b3IoZGVjaW1hbCk7CisgICAgICAgIGlmKGZyLmdldERlY2ltYWxTZXBhcmF0b3IoKSAhPSBlbi5nZXREZWNpbWFsU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBEZWNpbWFsU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBtb25ldGFyeUdyb3VwID0gZW4uZ2V0TW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvcigpOworICAgICAgICBmci5zZXRNb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yKG1vbmV0YXJ5R3JvdXApOworICAgICAgICBpZihmci5nZXRNb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yKCkgIT0gZW4uZ2V0TW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgTW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgbW9uZXRhcnlEZWNpbWFsID0gZW4uZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGZyLnNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcihtb25ldGFyeURlY2ltYWwpOworICAgICAgICBpZihmci5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSAhPSBlbi5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgcGVyTWlsbCA9IGVuLmdldFBlck1pbGwoKTsKKyAgICAgICAgZnIuc2V0UGVyTWlsbChwZXJNaWxsKTsKKyAgICAgICAgaWYoZnIuZ2V0UGVyTWlsbCgpICE9IGVuLmdldFBlck1pbGwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlck1pbGwgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBlcmNlbnQgPSBlbi5nZXRQZXJjZW50KCk7CisgICAgICAgIGZyLnNldFBlcmNlbnQocGVyY2VudCk7CisgICAgICAgIGlmKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBkaWdpdCA9IGVuLmdldERpZ2l0KCk7CisgICAgICAgIGZyLnNldERpZ2l0KGRpZ2l0KTsKKyAgICAgICAgaWYoZnIuZ2V0UGVyY2VudCgpICE9IGVuLmdldFBlcmNlbnQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlcmNlbnQgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBhdHRlcm5TZXBhcmF0b3IgPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisgICAgICAgIGZyLnNldFBhdHRlcm5TZXBhcmF0b3IocGF0dGVyblNlcGFyYXRvcik7CisgICAgICAgIGlmKGZyLmdldFBhdHRlcm5TZXBhcmF0b3IoKSAhPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQYXR0ZXJuU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGluZmluaXR5ID0gZW4uZ2V0SW5maW5pdHkoKTsKKyAgICAgICAgZnIuc2V0SW5maW5pdHkoaW5maW5pdHkpOworICAgICAgICBTdHJpbmcgaW5maW5pdHkyID0gZnIuZ2V0SW5maW5pdHkoKTsKKyAgICAgICAgaWYoISBpbmZpbml0eS5lcXVhbHMoaW5maW5pdHkyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEluZmluaXR5IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG5hbiA9IGVuLmdldE5hTigpOworICAgICAgICBmci5zZXROYU4obmFuKTsKKyAgICAgICAgU3RyaW5nIG5hbjIgPSBmci5nZXROYU4oKTsKKyAgICAgICAgaWYoISBuYW4uZXF1YWxzKG5hbjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgTmFOIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBtaW51c1NpZ24gPSBlbi5nZXRNaW51c1NpZ24oKTsKKyAgICAgICAgZnIuc2V0TWludXNTaWduKG1pbnVzU2lnbik7CisgICAgICAgIGlmKGZyLmdldE1pbnVzU2lnbigpICE9IGVuLmdldE1pbnVzU2lnbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgTWludXNTaWduIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBwbHVzU2lnbiA9IGVuLmdldFBsdXNTaWduKCk7CisgICAgICAgIGZyLnNldFBsdXNTaWduKHBsdXNTaWduKTsKKyAgICAgICAgaWYoZnIuZ2V0UGx1c1NpZ24oKSAhPSBlbi5nZXRQbHVzU2lnbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGx1c1NpZ24gZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBhZEVzY2FwZSA9IGVuLmdldFBhZEVzY2FwZSgpOworICAgICAgICBmci5zZXRQYWRFc2NhcGUocGFkRXNjYXBlKTsKKyAgICAgICAgaWYoZnIuZ2V0UGFkRXNjYXBlKCkgIT0gZW4uZ2V0UGFkRXNjYXBlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQYWRFc2NhcGUgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZXhwb25lbnRpYWwgPSBlbi5nZXRFeHBvbmVudFNlcGFyYXRvcigpOworICAgICAgICBmci5zZXRFeHBvbmVudFNlcGFyYXRvcihleHBvbmVudGlhbCk7CisgICAgICAgIGlmKGZyLmdldEV4cG9uZW50U2VwYXJhdG9yKCkgIT0gZW4uZ2V0RXhwb25lbnRTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEV4cG9uZW50aWFsIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy9EZWNpbWFsRm9ybWF0U3ltYm9scyBmb28gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorCisgICAgICAgIGVuID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBmci5jbG9uZSgpOworCisgICAgICAgIGlmKCEgZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmMiA9IChEZWNpbWFsRm9ybWF0U3ltYm9scylkZi5jbG9uZSgpOworICAgICAgICBpZiAoIWRmLmVxdWFscyhkZjIpIHx8IGRmLmhhc2hDb2RlKCkgIT0gZGYyLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIGNsb25lLCBlcXVhbHMsIG9yIGhhc2hDb2RlIGZhaWxlZCIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmNzgyYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDLmphdmEKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzCisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC90c2RjZm1zeS5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBUZXN0cyBmb3IgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAqKi8KK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQyBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIEFQSSBvZiBEZWNpbWFsRm9ybWF0U3ltYm9sczsgcHJpbWFyaWx5IGEgc2ltcGxlIGdldC9zZXQgc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTeW1ib2xzKCkgeyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZnIgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7ICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBlbiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCk7CisgICAgCisgICAgICAgIGlmIChlbi5lcXVhbHMoZnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEVuZ2xpc2ggRGVjaW1hbEZvcm1hdFN5bWJvbHMgZXF1YWwgdG8gRnJlbmNoIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8ganVzdCBkbyBzb21lIFZFUlkgYmFzaWMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgZ2V0L3NldCB3b3JrCisgICAgCisgICAgICAgIGNoYXIgemVybyA9IGVuLmdldFplcm9EaWdpdCgpOworICAgICAgICBmci5zZXRaZXJvRGlnaXQoemVybyk7CisgICAgICAgIGlmIChmci5nZXRaZXJvRGlnaXQoKSAhPSBlbi5nZXRaZXJvRGlnaXQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFplcm9EaWdpdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjaGFyIGdyb3VwID0gZW4uZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0R3JvdXBpbmdTZXBhcmF0b3IoZ3JvdXApOworICAgICAgICBpZiAoZnIuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSAhPSBlbi5nZXRHcm91cGluZ1NlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgR3JvdXBpbmdTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBkZWNpbWFsID0gZW4uZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBmci5zZXREZWNpbWFsU2VwYXJhdG9yKGRlY2ltYWwpOworICAgICAgICBpZiAoZnIuZ2V0RGVjaW1hbFNlcGFyYXRvcigpICE9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IERlY2ltYWxTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBwZXJNaWxsID0gZW4uZ2V0UGVyTWlsbCgpOworICAgICAgICBmci5zZXRQZXJNaWxsKHBlck1pbGwpOworICAgICAgICBpZiAoZnIuZ2V0UGVyTWlsbCgpICE9IGVuLmdldFBlck1pbGwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlck1pbGwgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBwZXJjZW50ID0gZW4uZ2V0UGVyY2VudCgpOworICAgICAgICBmci5zZXRQZXJjZW50KHBlcmNlbnQpOworICAgICAgICBpZiAoZnIuZ2V0UGVyY2VudCgpICE9IGVuLmdldFBlcmNlbnQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlcmNlbnQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBkaWdpdCA9IGVuLmdldERpZ2l0KCk7CisgICAgICAgIGZyLnNldERpZ2l0KGRpZ2l0KTsKKyAgICAgICAgaWYgKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgcGF0dGVyblNlcGFyYXRvciA9IGVuLmdldFBhdHRlcm5TZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0UGF0dGVyblNlcGFyYXRvcihwYXR0ZXJuU2VwYXJhdG9yKTsKKyAgICAgICAgaWYgKGZyLmdldFBhdHRlcm5TZXBhcmF0b3IoKSAhPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQYXR0ZXJuU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBpbmZpbml0eSA9IGVuLmdldEluZmluaXR5KCk7CisgICAgICAgIGZyLnNldEluZmluaXR5KGluZmluaXR5KTsKKyAgICAgICAgU3RyaW5nIGluZmluaXR5MiA9IGZyLmdldEluZmluaXR5KCk7CisgICAgICAgIGlmICghaW5maW5pdHkuZXF1YWxzKGluZmluaXR5MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBJbmZpbml0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgbmFuID0gZW4uZ2V0TmFOKCk7CisgICAgICAgIGZyLnNldE5hTihuYW4pOworICAgICAgICBTdHJpbmcgbmFuMiA9IGZyLmdldE5hTigpOworICAgICAgICBpZiAoIW5hbi5lcXVhbHMobmFuMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBOYU4gZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBtaW51c1NpZ24gPSBlbi5nZXRNaW51c1NpZ24oKTsKKyAgICAgICAgZnIuc2V0TWludXNTaWduKG1pbnVzU2lnbik7CisgICAgICAgIGlmIChmci5nZXRNaW51c1NpZ24oKSAhPSBlbi5nZXRNaW51c1NpZ24oKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE1pbnVzU2lnbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyAgICAgICAgY2hhciBleHBvbmVudGlhbCA9IGVuLmdldEV4cG9uZW50aWFsU3ltYm9sKCk7CisgICAgICAgIC8vICAgICAgICBmci5zZXRFeHBvbmVudGlhbFN5bWJvbChleHBvbmVudGlhbCk7CisgICAgICAgIC8vICAgICAgICBpZihmci5nZXRFeHBvbmVudGlhbFN5bWJvbCgpICE9IGVuLmdldEV4cG9uZW50aWFsU3ltYm9sKCkpIHsKKyAgICAgICAgLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgRXhwb25lbnRpYWwgZmFpbGVkIik7CisgICAgICAgIC8vICAgICAgICB9CisgICAgCisgICAgICAgIC8vRGVjaW1hbEZvcm1hdFN5bWJvbHMgZm9vID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAKKyAgICAgICAgZW4gPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIGZyLmNsb25lKCk7CisgICAgCisgICAgICAgIGlmICghZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgCisgICAgICAgIHZlcmlmeSgzNC41LCAiMDAuMDAiLCBzeW0sICIzNC41MCIpOworICAgICAgICBzeW0uc2V0RGVjaW1hbFNlcGFyYXRvcignUycpOworICAgICAgICB2ZXJpZnkoMzQuNSwgIjAwLjAwIiwgc3ltLCAiMzRTNTAiKTsKKyAgICAgICAgc3ltLnNldFBlcmNlbnQoJ1AnKTsKKyAgICAgICAgdmVyaWZ5KDM0LjUsICIwMCAlIiwgc3ltLCAiMzQ1MCBQIik7CisgICAgICAgIHN5bS5zZXRDdXJyZW5jeVN5bWJvbCgiRCIpOworICAgICAgICB2ZXJpZnkoMzQuNSwgIlx1MDBhNCMjLiMjIiwgc3ltLCAiRDM0LjUiKTsKKyAgICAgICAgc3ltLnNldEdyb3VwaW5nU2VwYXJhdG9yKCd8Jyk7CisgICAgICAgIHZlcmlmeSgzNDU2LjUsICIwLDAwMC4jIyIsIHN5bSwgIjN8NDU2UzUiKTsKKyAgICB9CisgICAgCisgICAgLyoqIGhlbHBlciBmdW5jdGlvbnMqKi8KKyAgICBwdWJsaWMgdm9pZCB2ZXJpZnkoZG91YmxlIHZhbHVlLCBTdHJpbmcgcGF0dGVybiwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltLCBTdHJpbmcgZXhwZWN0ZWQpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigtMSk7CisgICAgICAgIGJ1ZmZlciA9IGRmLmZvcm1hdCh2YWx1ZSwgYnVmZmVyLCBwb3MpOworICAgICAgICBpZighYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvcm1hdCBmYWlsZWQgYWZ0ZXIgc2V0U3ltYm9scygpXG4gRXhwZWN0ZWQiICsgCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgKyAiLCBHb3QgIiArIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyNzg0NTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0LmphdmEKQEAgLTAsMCArMSwyODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdE51bWJlckZvcm1hdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvdHNubWZtdC5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisvKioKKyAqIFRoaXMgdGVzdCBkb2VzIHJvdW5kLXRyaXAgdGVzdGluZyAoZm9ybWF0IC0+IHBhcnNlIC0+IGZvcm1hdCAtPiBwYXJzZSAtPiBldGMuKSBvZgorICogTnVtYmVyRm9ybWF0LgorICovCitwdWJsaWMgY2xhc3MgSW50bFRlc3ROdW1iZXJGb3JtYXQgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIE51bWJlckZvcm1hdCBmTnVtYmVyRm9ybWF0OworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdE51bWJlckZvcm1hdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgdXNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgX3Rlc3RMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IGxvY2FsZSArICIgKCIgKyBsb2NhbGUuZ2V0RGlzcGxheU5hbWUoKSArICIpIjsKKyAgICAgICAgICAgIAorICAgICAgICBsb2dsbigiTnVtYmVyIHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeSB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJQZXJjZW50IHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBjYWxsIF90ZXN0Rm9ybWF0IGZvciBjdXJyZW5jeSwgcGVyY2VudCBhbmQgcGxhaW4gbnVtYmVyIGluc3RhbmNlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGUoKSB7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IGxvY2FsZSArICIgKCIgKyBsb2NhbGUuZ2V0RGlzcGxheU5hbWUoKSArICIpIjsKKyAgICAgICAgICAgIAorICAgICAgICBsb2dsbigiTnVtYmVyIHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeSB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJQZXJjZW50IHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBjYWxsIHRyeUl0IHdpdGggbWFueSB2YXJpYXRpb25zLCBjYWxsZWQgYnkgdGVzdExvY2FsZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIF90ZXN0Rm9ybWF0KCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZOdW1iZXJGb3JtYXQgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBOdWxsIGZvcm1hdCByZXR1cm5lZCBieSBjcmVhdGVYeHhJbnN0YW5jZS4iKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgRGVjaW1hbEZvcm1hdCBzID0gKERlY2ltYWxGb3JtYXQpZk51bWJlckZvcm1hdDsKKyAgICAgICAgbG9nbG4oInBhdHRlcm4gOiIgKyBzLnRvUGF0dGVybigpKTsKKyAgICAKKyAgICAgICAgdHJ5SXQoLTIuMDIxNDczMDQ4NDAxMzJlLTY4KTsKKyAgICAgICAgdHJ5SXQoMy44ODA1Nzg1OTU4ODgxN2UtNjgpOyAKKyAgICAgICAgdHJ5SXQoLTIuNjQ2NTExMTA0ODU5NDVlKzY1KTsKKyAgICAgICAgdHJ5SXQoOS4yOTUyNjgxOTQ4ODMzOGUrNjQpOworICAgIAorICAgICAgICB0cnlJdCgtMi4wMjE0NzMwNDg0MDEzMmUtMTAwKTsKKyAgICAgICAgdHJ5SXQoMy44ODA1Nzg1OTU4ODgxN2UtMDk2KTsgCisgICAgICAgIHRyeUl0KC0yLjY0NjUxMTEwNDg1OTQ1ZSszMDYpOworICAgICAgICB0cnlJdCg5LjI5NTI2ODE5NDg4MzM4ZSsyNTApOyAKKyAgICAKKyAgICAgICAgdHJ5SXQoLTkuMTgyMjgwNTQ0OTY0MDJlKzY0KTsKKyAgICAgICAgdHJ5SXQoLTkuNjk0MTMwMzQ0NTQxOTFlKzY0KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoLTkuMTgyMjgwNTQ0OTY0MDJlKzI1NSk7CisgICAgICAgIHRyeUl0KC05LjY5NDEzMDM0NDU0MTkxZSsyNzMpOworICAgIAorICAgIAorICAgICAgICB0cnlJdCgxLjIzNGUtMjAwKTsKKyAgICAgICAgdHJ5SXQoLTIuM2UtMTY4KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoRG91YmxlLk5hTik7CisgICAgICAgIHRyeUl0KERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIHRyeUl0KERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgCisgICAgICAgIHRyeUl0KDI1MTg4NzUzMSk7CisgICAgICAgIHRyeUl0KDVlLTIwIC8gOSk7CisgICAgICAgIHRyeUl0KDVlMjAgLyA5KTsKKyAgICAgICAgdHJ5SXQoMS4yMzRlLTUwKTsKKyAgICAgICAgdHJ5SXQoOS45OTk5OTk5OTk5OTk5Nik7CisgICAgICAgIHRyeUl0KDkuOTk5OTk5OTk5OTk5OTk2KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoSW50ZWdlci5NSU5fVkFMVUUpOworICAgICAgICB0cnlJdChJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIHRyeUl0KChkb3VibGUpSW50ZWdlci5NSU5fVkFMVUUpOworICAgICAgICB0cnlJdCgoZG91YmxlKUludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgdHJ5SXQoKGRvdWJsZSlJbnRlZ2VyLk1JTl9WQUxVRSAtIDEuMCk7CisgICAgICAgIHRyeUl0KChkb3VibGUpSW50ZWdlci5NQVhfVkFMVUUgKyAxLjApOworICAgIAorICAgICAgICB0cnlJdCg1LjAgLyA5LjAgKiAxZS0yMCk7CisgICAgICAgIHRyeUl0KDQuMCAvIDkuMCAqIDFlLTIwKTsKKyAgICAgICAgdHJ5SXQoNS4wIC8gOS4wICogMWUrMjApOworICAgICAgICB0cnlJdCg0LjAgLyA5LjAgKiAxZSsyMCk7CisgICAgCisgICAgICAgIHRyeUl0KDIxNDc0ODM2NDcuKTsKKyAgICAgICAgdHJ5SXQoMCk7CisgICAgICAgIHRyeUl0KDAuMCk7CisgICAgICAgIHRyeUl0KDEpOworICAgICAgICB0cnlJdCgxMCk7CisgICAgICAgIHRyeUl0KDEwMCk7CisgICAgICAgIHRyeUl0KC0xKTsKKyAgICAgICAgdHJ5SXQoLTEwKTsKKyAgICAgICAgdHJ5SXQoLTEwMCk7CisgICAgICAgIHRyeUl0KC0xOTEzODYwMzUyKTsKKyAgICAKKyAgICAgICAgUmFuZG9tIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDEwOyBqKyspIHsKKyAgICAgICAgICAgIGRvdWJsZSBkID0gcmFuZG9tLm5leHREb3VibGUoKSoyZTEwIC0gMWUxMDsKKyAgICAgICAgICAgIHRyeUl0KGQpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUGVyZm9ybSB0ZXN0cyB1c2luZyBhTnVtYmVyIGFuZCBmTnVtYmVyRm9ybWF0LCBjYWxsZWQgaW4gbWFueSB2YXJpYXRpb25zCisgICAgICovCisgICAgcHVibGljIHZvaWQgdHJ5SXQoZG91YmxlIGFOdW1iZXIpIHsgICAgCisgICAgICAgIGZpbmFsIGludCBERVBUSCA9IDEwOworICAgICAgICBkb3VibGVbXSBudW1iZXIgPSBuZXcgZG91YmxlW0RFUFRIXTsKKyAgICAgICAgU3RyaW5nW10gc3RyaW5nID0gbmV3IFN0cmluZ1tERVBUSF07CisgICAgICAgIGludCBudW1iZXJNYXRjaCA9IDA7CisgICAgICAgIGludCBzdHJpbmdNYXRjaCA9IDA7CisgICAgICAgIGJvb2xlYW4gZHVtcCA9IGZhbHNlOworICAgICAgICBpbnQgaTsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IERFUFRIOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBudW1iZXJbaV0gPSBhTnVtYmVyOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBudW1iZXJbaSAtIDFdID0gZk51bWJlckZvcm1hdC5wYXJzZShzdHJpbmdbaSAtIDFdKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdbaS0xXSArICIgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc3RyaW5nW2ldID0gZk51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyW2ldKTsKKyAgICAgICAgICAgIGlmIChpID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobnVtYmVyTWF0Y2ggPT0gMCAmJiBudW1iZXJbaV0gPT0gbnVtYmVyW2ktMV0pCisgICAgICAgICAgICAgICAgICAgIG51bWJlck1hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChudW1iZXJNYXRjaCA+IDAgJiYgbnVtYmVyW2ldICE9IG51bWJlcltpLTFdKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogTnVtZXJpYyBtaXNtYXRjaCBhZnRlciBtYXRjaC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nTWF0Y2ggPT0gMCAmJiBzdHJpbmdbaV0gPT0gc3RyaW5nW2ktMV0pCisgICAgICAgICAgICAgICAgICAgIHN0cmluZ01hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzdHJpbmdNYXRjaCA+IDAgJiYgc3RyaW5nW2ldICE9IHN0cmluZ1tpLTFdKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogU3RyaW5nIG1pc21hdGNoIGFmdGVyIG1hdGNoLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG51bWJlck1hdGNoID4gMCAmJiBzdHJpbmdNYXRjaCA+IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgCisgICAgICAgICAgICBpZiAoaSA9PSBERVBUSCkKKyAgICAgICAgICAgIC0taTsKKyAgICAKKyAgICAgICAgaWYgKHN0cmluZ01hdGNoID4gMiB8fCBudW1iZXJNYXRjaCA+IDIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IE5vIHN0cmluZyBhbmQvb3IgbnVtYmVyIG1hdGNoIHdpdGhpbiAyIGl0ZXJhdGlvbnMuIik7CisgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoZHVtcCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPD1pOyArK2spCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbG9nbG4oayArICI6ICIgKyBudW1iZXJba10gKyAiIEY+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1trXSArICIgUD4gIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgcGVyZm9ybSB0ZXN0cyB1c2luZyBhTnVtYmVyIGFuZCBmTnVtYmVyRm9ybWF0LCBjYWxsZWQgaW4gbWFueSB2YXJpYXRpb25zCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIHRyeUl0KGludCBhTnVtYmVyKSB7CisgICAgICAgIGxvbmcgbnVtYmVyOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHN0cmluZ051bSA9IGZOdW1iZXJGb3JtYXQuZm9ybWF0KGFOdW1iZXIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbnVtYmVyID0gZk51bWJlckZvcm1hdC5wYXJzZShzdHJpbmdOdW0pLmxvbmdWYWx1ZSgpOworICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdOdW0gKyAiIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAobnVtYmVyICE9IGFOdW1iZXIpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdOdW0gKyAiIGZhaWxlZC4gR290OiIgKyBudW1iZXIKKyAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQ6IiArIGFOdW1iZXIpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgdGVzdCBOdW1iZXJGb3JtYXQ6OmdldEF2YWlsYWJsZUxvY2FsZXMKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpbnQgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgbG9nbG4oY291bnQgKyAiIGF2YWlsYWJsZSBsb2NhbGVzIik7CisgICAgICAgIGlmIChjb3VudCAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgYWxsID0gIiI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaTwgY291bnQ7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaSE9MCkKKyAgICAgICAgICAgICAgICAgICAgYWxsICs9ICIsICI7CisgICAgICAgICAgICAgICAgYWxsICs9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKGFsbCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogWmVybyBhdmFpbGFibGUgbG9jYWxlcyBvciBudWxsIGFycmF5IHBvaW50ZXIiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIGNhbGwgdGVzdExvY2FsZSBmb3IgYWxsIGxvY2FsZXMKKyAgICAgKiovICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RNb25zdGVyKCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgU0VQID0gIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBmaW5hbCBMb2NhbGVbXSBhbGxMb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGFsbExvY2FsZXM7CisgICAgICAgIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGlmIChjb3VudCAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZ2V0SW5jbHVzaW9uKCkgPCAxMCAmJiBjb3VudCA+IDYpIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IDY7CisgICAgICAgICAgICAgICAgbG9jYWxlcyA9IG5ldyBMb2NhbGVbNl07CisgICAgICAgICAgICAgICAgbG9jYWxlc1swXSA9IGFsbExvY2FsZXNbMF07CisgICAgICAgICAgICAgICAgbG9jYWxlc1sxXSA9IGFsbExvY2FsZXNbMV07CisgICAgICAgICAgICAgICAgbG9jYWxlc1syXSA9IGFsbExvY2FsZXNbMl07CisgICAgICAgICAgICAgICAgLy8gSW4gYSBxdWljayB0ZXN0LCBtYWtlIHN1cmUgd2UgdGVzdCBsb2NhbGVzIHRoYXQgdXNlCisgICAgICAgICAgICAgICAgLy8gY3VycmVuY3kgcHJlZml4LCBjdXJyZW5jeSBzdWZmaXgsIGFuZCBjaG9pY2UgY3VycmVuY3kKKyAgICAgICAgICAgICAgICAvLyBsb2dpYy4gIE90aGVyd2lzZSBidWdzIGluIHRoZXNlIGFyZWFzIGNhbiBzbGlwIHRocm91Z2guCisgICAgICAgICAgICAgICAgbG9jYWxlc1szXSA9IG5ldyBMb2NhbGUoImFyIiwgIkFFIiwgIiIpOworICAgICAgICAgICAgICAgIGxvY2FsZXNbNF0gPSBuZXcgTG9jYWxlKCJjcyIsICJDWiIsICIiKTsKKyAgICAgICAgICAgICAgICBsb2NhbGVzWzVdID0gbmV3IExvY2FsZSgiZW4iLCAiSU4iLCAiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgICAgICBsb2dsbihTRVApOworICAgICAgICAgICAgICAgIF90ZXN0TG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKFNFUCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdEFQSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdEFQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlM2Y1N2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0QVBJLmphdmEKQEAgLTAsMCArMSwyMjQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0TnVtYmVyRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdEFQSS5qYXZhCisgKiovCisKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIE51bWJlciBGb3JtYXQgQVBJCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworcHVibGljIGNsYXNzIEludGxUZXN0TnVtYmVyRm9ybWF0QVBJIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0TnVtYmVyRm9ybWF0QVBJKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBjaGVja3MgdmFyaW91cyBnZW5lcmljIEFQSSBtZXRob2RzIGluIERlY2ltYWxGb3JtYXQgdG8gYWNoaWV2ZSAxMDAlIEFQSSBjb3ZlcmFnZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCJOdW1iZXJGb3JtYXQgQVBJIHRlc3QtLS0iKTsgbG9nbG4oIiIpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIE51bWJlckZvcm1hdCBjb25zdHJ1Y3RvcnMiKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgZGVmID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZyID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIE51bWJlckZvcm1hdCBjdXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpOworCisgICAgICAgIE51bWJlckZvcm1hdCBjdXJfZnIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgcGVyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworCisgICAgICAgIE51bWJlckZvcm1hdCBwZXJfZnIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IGludGVnZXIgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKCk7CisgICAgICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgaW50X2ZyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgCisgICAgICAgIC8vRml4ICJUaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZCIgY29tcGlsYXRpb24gd2FybmluZ3MKKyAgICAgICAgbG9nbG4oIkN1cnJlbmN5IDogIiArIGN1ci5mb3JtYXQoMTIzNC41KSk7CisgICAgICAgIGxvZ2xuKCJQZXJjZW50IDogIiArIHBlci5mb3JtYXQoMTIzNC41KSk7CisgICAgICAgIGxvZ2xuKCJJbnRlZ2VyIDogIiArIGludGVnZXIuZm9ybWF0KDEyMzQuNSkpOworICAgICAgICBsb2dsbigiSW50X2ZyIDogIiArIGludF9mci5mb3JtYXQoMTIzNC41KSk7CisgICAgICAgIAorICAgICAgICAvLyA9PT09PT09IFRlc3QgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBlcXVhbGl0eSBvcGVyYXRvciIpOworCisgICAgICAgIGlmKCBwZXJfZnIuZXF1YWxzKGN1cl9mcikgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6ID09IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworCisvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xMDQ1Ni4wMDM3MDAwMDAwMDEgb24gTlQKKy8vICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xLjA0NTYwMDM3ZS00OyAvLyB0aGlzIGFwcGVhcnMgYXMgLTEuMDQ1NjAwMzcwMDAwMDAwMkUtNCBvbiBOVAorICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xMDQ1Ni4wMDM3MDAwMDAwMDAwMDsgLy8gdGhpcyB3b3JrcyEKKyAgICAgICAgZmluYWwgbG9uZyBsID0gMTAwMDAwMDAwOworCisgICAgICAgIFN0cmluZyByZXMxID0gbmV3IFN0cmluZygpOworICAgICAgICBTdHJpbmcgcmVzMiA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXM0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzNSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczIgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zNCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBjdXJfZnIuZm9ybWF0KGQpOworICAgICAgICBsb2dsbiggIiIgKyBkICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczEpOworCisgICAgICAgIHJlczIgPSBjdXJfZnIuZm9ybWF0KGwpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMik7CisKKyAgICAgICAgcmVzMyA9IGN1cl9mci5mb3JtYXQoZCwgcmVzMywgcG9zMSk7CisgICAgICAgIGxvZ2xuKCAiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMyk7CisKKyAgICAgICAgcmVzNCA9IGN1cl9mci5mb3JtYXQobCwgcmVzNCwgcG9zMik7CisgICAgICAgIGxvZ2xuKCIiICsgbCArICIgZm9ybWF0dGVkIHRvICIgKyByZXM0KTsKKworICAgICAgICByZXM1ID0gY3VyX2ZyLmZvcm1hdChkLCByZXM1LCBwb3MzKTsKKyAgICAgICAgbG9nbG4oIiIgKyBkICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczUpOworCisgICAgICAgIHJlczYgPSBjdXJfZnIuZm9ybWF0KGwsIHJlczYsIHBvczQpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzNik7CisKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgcGFyc2UoKQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHBhcnNlKCkiKTsKKworLy8gICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwLDQ1Ni4wMDM3Iik7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwNDU2LDAwMzciKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MwMSA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBkb3VibGUgZDEgPSAoKE51bWJlcilmci5wYXJzZU9iamVjdCh0ZXh0LCBwb3MpKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZihkMSAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJvdW5kdHJpcCBmYWlsZWQgKHZpYSBwYXJzZSgpKSBmb3IgIiArIHRleHQpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyBkMSk7CisKKyAgICAgICAgZG91YmxlIGQyID0gZnIucGFyc2UodGV4dCwgcG9zMDEpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGlmKGQyICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmR0cmlwIGZhaWxlZCAodmlhIHBhcnNlKCkpIGZvciAiICsgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIGQyKTsKKworICAgICAgICBkb3VibGUgZDMgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZDMgPSBmci5wYXJzZSh0ZXh0KS5kb3VibGVWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHBhcnNlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoZDMgIT0gZCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSb3VuZHRyaXAgZmFpbGVkICh2aWEgcGFyc2UoKSkgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgZDMpOworCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGxvbmcgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgbG9nbG4oIkdvdCAiICsgY291bnQgKyAiIGxvY2FsZXMiICk7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgICAgIG5hbWUgPSBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICBsb2dsbihuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldFBhcnNlSW50ZWdlck9ubHkoIGRlZi5pc1BhcnNlSW50ZWdlck9ubHkoKSApOworICAgICAgICBpZihmci5pc1BhcnNlSW50ZWdlck9ubHkoKSAhPSBkZWYuaXNQYXJzZUludGVnZXJPbmx5KCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRQYXJzZUludGVnZXJPbmx5KCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRHcm91cGluZ1VzZWQoIGRlZi5pc0dyb3VwaW5nVXNlZCgpICk7CisgICAgICAgIGlmKGZyLmlzR3JvdXBpbmdVc2VkKCkgIT0gZGVmLmlzR3JvdXBpbmdVc2VkKCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRHcm91cGluZ1VzZWQoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKCBkZWYuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSApOworICAgICAgICBpZihmci5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICE9IGRlZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCBkZWYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSApOworICAgICAgICBpZihmci5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICE9IGRlZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TWluaW11bUludGVnZXJEaWdpdHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyggZGVmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICk7CisgICAgICAgIGlmKGZyLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICE9IGRlZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCBkZWYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgKTsKKyAgICAgICAgaWYoZnIuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgIT0gZGVmLmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0U3RhdGljQ2xhc3NJRCgpCisKKy8vICAgICAgICBsb2dsbigiVGVzdGluZyBpbnN0YW5jZW9mKCkiKTsKKworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIE51bWJlckZvcm1hdCB0ZXN0ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKworLy8gICAgICAgICAgICBpZiAoISAodGVzdCBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluc3RhbmNlb2YgZmFpbGVkIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGRuJ3QgY3JlYXRlIGEgRGVjaW1hbEZvcm1hdCIpOworLy8gICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gSml0dGVyYnVnIDQ0NTEsIGZvciBjb3ZlcmFnZQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpeworICAgICAgICBjbGFzcyBTdHViTnVtYmVyRm9ybWF0IGV4dGVuZHMgTnVtYmVyRm9ybWF0eworICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCl7CisgICAgICAgICAgICAgICAgU3RyaW5nIHAgPSBOdW1iZXJGb3JtYXQuZ2V0UGF0dGVybihVTG9jYWxlLmdldERlZmF1bHQoKS50b0xvY2FsZSgpLDApOworICAgICAgICAgICAgICAgIGlmICghcC5lcXVhbHMoTnVtYmVyRm9ybWF0LmdldFBhdHRlcm4oVUxvY2FsZS5nZXREZWZhdWx0KCksMCkpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIk51bWJlckZvcm1hdC5nZXRQYXR0ZXJuKExvY2FsZSwgaW50KSBzaG91bGQgZGVsZWdhdGUgdG8gKFVMb2NhbGUsKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7cmV0dXJuIG51bGw7fQorICAgICAgICAgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnRGVjaW1hbCBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikge3JldHVybiBudWxsO30KKyAgICAgICAgfQorICAgICAgICBuZXcgU3R1Yk51bWJlckZvcm1hdCgpLnJ1bigpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyNzU5MGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSS5qYXZhCkBAIC0wLDAgKzEsMTgzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIChDKSBDb3B5cmlnaHQgVGFsaWdlbnQsIEluYy4gMTk5NiwgMTk5NyAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTYtMjAwNSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqCisgKiAgIFRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoaXMgc291cmNlIGNvZGUgYW5kIGRvY3VtZW50YXRpb24gaXMgY29weXJpZ2h0ZWQgYW5kCisgKiBvd25lZCBieSBUYWxpZ2VudCwgSW5jLiwgYSB3aG9sbHktb3duZWQgc3Vic2lkaWFyeSBvZiBJQk0uIFRoZXNlIG1hdGVyaWFscyBhcmUKKyAqIHByb3ZpZGVkIHVuZGVyIHRlcm1zIG9mIGEgTGljZW5zZSBBZ3JlZW1lbnQgYmV0d2VlbiBUYWxpZ2VudCBhbmQgU3VuLiBUaGlzCisgKiB0ZWNobm9sb2d5IGlzIHByb3RlY3RlZCBieSBtdWx0aXBsZSBVUyBhbmQgSW50ZXJuYXRpb25hbCBwYXRlbnRzLiBUaGlzIG5vdGljZSBhbmQKKyAqIGF0dHJpYnV0aW9uIHRvIFRhbGlnZW50IG1heSBub3QgYmUgcmVtb3ZlZC4KKyAqICAgVGFsaWdlbnQgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBUYWxpZ2VudCwgSW5jLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSS5qYXZhCisgKiovCisgCisvKgorICAgIEB0ZXN0IDEuNCA5OC8wMy8wNgorICAgIEBzdW1tYXJ5IHRlc3QgSW50ZXJuYXRpb25hbCBTaW1wbGUgRGF0ZSBGb3JtYXQgQVBJCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCitwdWJsaWMgY2xhc3MgSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSSgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgZ2VuZXJpYyBBUEkgbWV0aG9kcyBpbiBEZWNpbWFsRm9ybWF0IHRvIGFjaGlldmUgMTAwJSBBUEkgY292ZXJhZ2UuCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpCisgICAgeworICAgICAgICBsb2dsbigiU2ltcGxlRGF0ZUZvcm1hdCBBUEkgdGVzdC0tLSIpOyBsb2dsbigiIik7CisKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBTaW1wbGVEYXRlRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGVmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IG5ldyBTdHJpbmcoInl5eXkuTU0uZGQgRyAnYXQnIGhoOm1tOnNzIHoiKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBwYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuKTsKKworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHBhdF9mciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBjdXN0MSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjbG9uZSgpIGFuZCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNsb25lKCksIGFzc2lnbm1lbnQgYW5kIGVxdWFsaXR5IG9wZXJhdG9ycyIpOworCisgICAgICAgIEZvcm1hdCBjbG9uZSA9IChGb3JtYXQpIGRlZi5jbG9uZSgpOworICAgICAgICBpZiggISBjbG9uZS5lcXVhbHMoZGVmKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRm9ybWF0IGNsb25lIG9yIGVxdWFscyBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMKKworICAgICAgICBsb2dsbigiVGVzdGluZyB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMiKTsKKworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSgobG9uZyk4MzcwMzk5MjgwNDYuMCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczEgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MyID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisKKyAgICAgICAgcmVzMSA9IGRlZi5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCAiIiArIGQuZ2V0VGltZSgpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczEpOworCisgICAgICAgIHJlczIgPSBjdXN0MS5mb3JtYXQoZCwgcmVzMiwgcG9zMik7CisgICAgICAgIGxvZ2xuKCIiICsgZC5nZXRUaW1lKCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMik7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHBhcnNlKCkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBwYXJzZSgpIik7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSBuZXcgU3RyaW5nKCIwMi8wMy83NiAyOjUwIEFNLCBDU1QiKTsKKyAgICAgICAgRGF0ZSByZXN1bHQxID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSByZXN1bHQyID0gbmV3IERhdGUoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3M9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICByZXN1bHQxID0gZGVmLnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyByZXN1bHQxKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0MiA9IGRlZi5wYXJzZSh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyByZXN1bHQyKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0dGVycyBhbmQgc2V0dGVycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldHRlcnMgYW5kIHNldHRlcnMiKTsKKworICAgICAgICBmaW5hbCBEYXRlRm9ybWF0U3ltYm9scyBzeW1zID0gcGF0LmdldERhdGVGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIGRlZi5zZXREYXRlRm9ybWF0U3ltYm9scyhzeW1zKTsKKyAgICAgICAgcGF0X2ZyLnNldERhdGVGb3JtYXRTeW1ib2xzKHN5bXMpOworICAgICAgICBpZiggISBwYXQuZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKS5lcXVhbHMoZGVmLmdldERhdGVGb3JtYXRTeW1ib2xzKCkpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgRGF0ZUZvcm1hdFN5bWJvbHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGhhcyBub3QgdGhlIG1ldGhvZCBnZXRUd29EaWdpdFN0YXJ0RGF0ZSgpOworICAgICAgICAvL0RhdGUgc3RhcnREYXRlID0gbnVsbDsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICB0cnkgeworLy8gICAgICAgICAgICBzdGFydERhdGUgPSBwYXQuZ2V0VHdvRGlnaXRTdGFydERhdGUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0VHdvRGlnaXRTdGFydERhdGUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHBhdF9mci5zZXRUd29EaWdpdFN0YXJ0RGF0ZShzdGFydERhdGUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRUd29EaWdpdFN0YXJ0RGF0ZSgpIGZhaWxlZCIpOworICAgICAgICB9Ki8KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgYXBwbHlQYXR0ZXJuKCkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBhcHBseVBhdHRlcm4oKSIpOworCisgICAgICAgIFN0cmluZyBwMSA9IG5ldyBTdHJpbmcoInl5eXkuTU0uZGQgRyAnYXQnIGhoOm1tOnNzIHoiKTsKKyAgICAgICAgbG9nbG4oIkFwcGx5aW5nIHBhdHRlcm4gIiArIHAxKTsKKyAgICAgICAgcGF0LmFwcGx5UGF0dGVybihwMSk7CisKKyAgICAgICAgU3RyaW5nIHMyID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMyKTsKKyAgICAgICAgaWYoICEgczIuZXF1YWxzKHAxKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9QYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiAiICsgcDEpOworICAgICAgICBwYXQuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKHAxKTsKKyAgICAgICAgU3RyaW5nIHMzID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMzKTsKKyAgICAgICAgaWYoICEgczMuZXF1YWxzKHAxKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0U3RhdGljQ2xhc3NJRCgpCisKKy8vICAgICAgICBsb2dsbigiVGVzdGluZyBpbnN0YW5jZW9mIik7CisKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICBEYXRlRm9ybWF0IHRlc3QgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworCisvLyAgICAgICAgICAgIGlmICghICh0ZXN0IGluc3RhbmNlb2YgU2ltcGxlRGF0ZUZvcm1hdCkpIHsKKy8vICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW5zdGFuY2VvZiBmYWlsZWQiKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDb3VsZG4ndCBjcmVhdGUgYSBTaW1wbGVEYXRlRm9ybWF0Iik7CisvLyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBKaXR0ZXJidWcgNDQ1MSwgZm9yIGNvdmVyYWdlCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIGNsYXNzIFN0dWJEYXRlRm9ybWF0IGV4dGVuZHMgU2ltcGxlRGF0ZUZvcm1hdHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpeworICAgICAgICAgICAgICAgIGlmICghemVyb1BhZGRpbmdOdW1iZXIoMTIsIDQsIDYpLmVxdWFscygiMDAxMiIpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNpbXBsZURhdGVGb3JtYXQoemVyb1BhZGRpbmdOdW1iZXIobG9uZyAsIGludCAsIGludCApIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG5ldyBTdHViRGF0ZUZvcm1hdCgpLnJ1bigpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTWVzc2FnZVJlZ3Jlc3Npb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTWVzc2FnZVJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWY2ZjFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9NZXNzYWdlUmVncmVzc2lvbi5qYXZhCkBAIC0wLDAgKzEsNjI5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgMTIsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisvKioKKyAqIE1lc3NhZ2VSZWdyZXNzaW9uLmphdmEKKyAqCisgKiBAdGVzdCAxLjI5IDAxLzAzLzEyCisgKiBAYnVnIDQwMzE0MzggNDA1ODk3MyA0MDc0NzY0IDQwOTQ5MDYgNDEwNDk3NiA0MTA1MzgwIDQxMDY2NTkgNDEwNjY2MCA0MTA2NjYxCisgKiA0MTExNzM5IDQxMTIxMDQgNDExMzAxOCA0MTE0NzM5IDQxMTQ3NDMgNDExNjQ0NCA0MTE4NTkyIDQxMTg1OTQgNDEyMDU1MgorICogNDE0MjkzOCA0MTY5OTU5IDQyMzIxNTQgNDI5MzIyOQorICogQHN1bW1hcnkgUmVncmVzc2lvbiB0ZXN0cyBmb3IgTWVzc2FnZUZvcm1hdCBhbmQgYXNzb2NpYXRlZCBjbGFzc2VzCisgKi8KKy8qCisoQykgQ29weXJpZ2h0IFRhbGlnZW50LCBJbmMuIDE5OTYgLSBBbGwgUmlnaHRzIFJlc2VydmVkCisoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk2IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorCisgIFRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoaXMgc291cmNlIGNvZGUgYW5kIGRvY3VtZW50YXRpb24gaXMgY29weXJpZ2h0ZWQgYW5kCitvd25lZCBieSBUYWxpZ2VudCwgSW5jLiwgYSB3aG9sbHktb3duZWQgc3Vic2lkaWFyeSBvZiBJQk0uIFRoZXNlIG1hdGVyaWFscyBhcmUKK3Byb3ZpZGVkIHVuZGVyIHRlcm1zIG9mIGEgTGljZW5zZSBBZ3JlZW1lbnQgYmV0d2VlbiBUYWxpZ2VudCBhbmQgU3VuLiBUaGlzCit0ZWNobm9sb2d5IGlzIHByb3RlY3RlZCBieSBtdWx0aXBsZSBVUyBhbmQgSW50ZXJuYXRpb25hbCBwYXRlbnRzLiBUaGlzIG5vdGljZSBhbmQKK2F0dHJpYnV0aW9uIHRvIFRhbGlnZW50IG1heSBub3QgYmUgcmVtb3ZlZC4KKyAgVGFsaWdlbnQgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBUYWxpZ2VudCwgSW5jLgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS50ZXh0LkNob2ljZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworCitwdWJsaWMgY2xhc3MgTWVzc2FnZVJlZ3Jlc3Npb24gZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE1lc3NhZ2VSZWdyZXNzaW9uKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qIEBidWcgNDA3NDc2NAorICAgICAqIE51bGwgZXhjZXB0aW9uIHdoZW4gZm9ybWF0dGluZyBwYXR0ZXJuIHdpdGggTWVzc2FnZUZvcm1hdAorICAgICAqIHdpdGggbm8gcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3NDc2NCgpIHsKKyAgICAgICAgU3RyaW5nW10gcGF0dGVybiA9IHsiTWVzc2FnZSB3aXRob3V0IHBhcmFtIiwKKyAgICAgICAgIk1lc3NhZ2Ugd2l0aCBwYXJhbTp7MH0iLAorICAgICAgICAiTG9uZ2VyIE1lc3NhZ2Ugd2l0aCBwYXJhbSB7MH0ifTsKKyAgICAgICAgLy9kaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBwYXJhbSBzdHJpbmdzIGFyZSB0aGF0CisgICAgICAgIC8vaW4gdGhlIGZpcnN0IG9uZSwgdGhlIHBhcmFtIHBvc2l0aW9uIGlzIHdpdGhpbiB0aGUKKyAgICAgICAgLy9sZW5ndGggb2YgdGhlIHN0cmluZyB3aXRob3V0IHBhcmFtIHdoaWxlIGl0IGlzIG5vdCBzbworICAgICAgICAvL2luIHRoZSBvdGhlciBjYXNlLgorCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWVzc2FnZUZvcm1hdHRlciA9IG5ldyBNZXNzYWdlRm9ybWF0KCIiKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy9BcHBseSBwYXR0ZXJuIHdpdGggcGFyYW0gYW5kIHByaW50IHRoZSByZXN1bHQKKyAgICAgICAgICAgIG1lc3NhZ2VGb3JtYXR0ZXIuYXBwbHlQYXR0ZXJuKHBhdHRlcm5bMV0pOworICAgICAgICAgICAgT2JqZWN0W10gcGFyYW1zID0ge25ldyBTdHJpbmcoIkJVRyIpLCBuZXcgRGF0ZSgpfTsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wQnVmZmVyID0gbWVzc2FnZUZvcm1hdHRlci5mb3JtYXQocGFyYW1zKTsKKyAgICAgICAgICAgIGlmICghdGVtcEJ1ZmZlci5lcXVhbHMoIk1lc3NhZ2Ugd2l0aCBwYXJhbTpCVUciKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdCB3aXRoIG9uZSBwYXJhbSB0ZXN0IGZhaWxlZC4iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgd2l0aCBvbmUgZXh0cmEgcGFyYW0gOiAiICsgdGVtcEJ1ZmZlcik7CisKKyAgICAgICAgICAgIC8vQXBwbHkgcGF0dGVybiB3aXRob3V0IHBhcmFtIGFuZCBwcmludCB0aGUgcmVzdWx0CisgICAgICAgICAgICBtZXNzYWdlRm9ybWF0dGVyLmFwcGx5UGF0dGVybihwYXR0ZXJuWzBdKTsKKyAgICAgICAgICAgIHRlbXBCdWZmZXIgPSBtZXNzYWdlRm9ybWF0dGVyLmZvcm1hdChudWxsKTsKKyAgICAgICAgICAgIGlmICghdGVtcEJ1ZmZlci5lcXVhbHMoIk1lc3NhZ2Ugd2l0aG91dCBwYXJhbSIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IHdpdGggbm8gcGFyYW0gdGVzdCBmYWlsZWQuIik7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHdpdGggbm8gcGFyYW1zIDogIiArIHRlbXBCdWZmZXIpOworCisgICAgICAgICAgICAgdGVtcEJ1ZmZlciA9IG1lc3NhZ2VGb3JtYXR0ZXIuZm9ybWF0KHBhcmFtcyk7CisgICAgICAgICAgICAgaWYgKCF0ZW1wQnVmZmVyLmVxdWFscygiTWVzc2FnZSB3aXRob3V0IHBhcmFtIikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZvcm1hdHRlZCB3aXRoIGFyZ3VtZW50cyA+IHN1YnNpdHV0aW9uIGZhaWxlZC4gcmVzdWx0ID0gIiArIHRlbXBCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCB3aXRoIGV4dHJhIHBhcmFtcyA6ICIgKyB0ZW1wQnVmZmVyKTsKKyAgICAgICAgICAgIC8vVGhpcyBzdGF0ZW1lbnQgZ2l2ZXMgYW4gZXhjZXB0aW9uIHdoaWxlIGZvcm1hdHRpbmcuLi4KKyAgICAgICAgICAgIC8vSWYgd2UgdXNlIHBhdHRlcm5bMV0gZm9yIHRoZSBtZXNzYWdlIHdpdGggcGFyYW0sCisgICAgICAgICAgICAvL3dlIGdldCBhbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBNZXNzYWdlRm9ybWF0LmphdmEoNjE3KQorICAgICAgICAgICAgLy9JZiB3ZSB1c2UgcGF0dGVyblsyXSBmb3IgdGhlIG1lc3NhZ2Ugd2l0aCBwYXJhbSwKKyAgICAgICAgICAgIC8vd2UgZ2V0IGFuIFN0cmluZ0FycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpbiBNZXNzYWdlRm9ybWF0LmphdmEoNjE0KQorICAgICAgICAgICAgLy9Cb3RoIGFyZSBkdWUgdG8gbWF4T2Zmc2V0IG5vdCBiZWluZyByZXNldCB0byAtMQorICAgICAgICAgICAgLy9pbiBhcHBseVBhdHRlcm4oKSB3aGVuIHRoZSBwYXR0ZXJuIGRvZXMgbm90CisgICAgICAgICAgICAvL2NvbnRhaW4gYW55IHBhcmFtLgorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiRXhjZXB0aW9uIHdoZW4gZm9ybWF0dGluZyB3aXRoIG5vIHBhcmFtcy4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIEBidWcgNDA1ODk3MworICAgICAqIE1lc3NhZ2VGb3JtYXQudG9QYXR0ZXJuIGhhcyB3ZWlyZCByb3VuZGluZyBiZWhhdmlvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1ODk3MygpIHsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MCxjaG9pY2UsMCNubyBmaWxlc3wxI29uZSBmaWxlfDE8IHswLG51bWJlcixpbnRlZ2VyfSBmaWxlc30iKTsKKyAgICAgICAgU3RyaW5nIHBhdCA9IGZtdC50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKCFwYXQuZXF1YWxzKCJ7MCxjaG9pY2UsMC4wI25vIGZpbGVzfDEuMCNvbmUgZmlsZXwxLjA8IHswLG51bWJlcixpbnRlZ2VyfSBmaWxlc30iKSkgeworICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXQudG9QYXR0ZXJuIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIC8qIEBidWcgNDAzMTQzOAorICAgICAqIE1vcmUgcm9idXN0IG1lc3NhZ2UgZm9ybWF0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDAzMTQzOCgpIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4xID0gIkltcG9zc2libGUgezF9IGhhcyBvY2N1cnJlZCAtLSBzdGF0dXMgY29kZSBpcyB7MH0gYW5kIG1lc3NhZ2UgaXMgezJ9LiI7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuMiA9ICJEb3VibGUgJycgUXVvdGVzIHswfSB0ZXN0IGFuZCBxdW90ZWQgJ3sxfScgdGVzdCBwbHVzICdvdGhlciB7Mn0gc3R1ZmYnLiI7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZXNzYWdlRm9ybWF0dGVyID0gbmV3IE1lc3NhZ2VGb3JtYXQoIiIpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbigiQXBwbHkgd2l0aCBwYXR0ZXJuIDogIiArIHBhdHRlcm4xKTsKKyAgICAgICAgICAgIG1lc3NhZ2VGb3JtYXR0ZXIuYXBwbHlQYXR0ZXJuKHBhdHRlcm4xKTsKKyAgICAgICAgICAgIE9iamVjdFtdIHBhcmFtcyA9IHtuZXcgSW50ZWdlcig3KX07CisgICAgICAgICAgICBTdHJpbmcgdGVtcEJ1ZmZlciA9IG1lc3NhZ2VGb3JtYXR0ZXIuZm9ybWF0KHBhcmFtcyk7CisgICAgICAgICAgICBpZiAoIXRlbXBCdWZmZXIuZXF1YWxzKCJJbXBvc3NpYmxlIHsxfSBoYXMgb2NjdXJyZWQgLS0gc3RhdHVzIGNvZGUgaXMgNyBhbmQgbWVzc2FnZSBpcyB7Mn0uIikpCisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3RzIGFyZ3VtZW50cyA8IHN1YnN0aXR1dGlvbiBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgd2l0aCA3IDogIiArIHRlbXBCdWZmZXIpOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBzdGF0dXMgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIE9iamVjdFtdIG9ianMgPSBtZXNzYWdlRm9ybWF0dGVyLnBhcnNlKHRlbXBCdWZmZXIsIHN0YXR1cyk7CisgICAgICAgICAgICBpZiAob2Jqc1twYXJhbXMubGVuZ3RoXSAhPSBudWxsKQorICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBmYWlsZWQgd2l0aCBtb3JlIHRoYW4gZXhwZWN0ZWQgYXJndW1lbnRzIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9ianMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAob2Jqc1tpXSAhPSBudWxsICYmICFvYmpzW2ldLnRvU3RyaW5nKCkuZXF1YWxzKHBhcmFtc1tpXS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2UgZmFpbGVkIG9uIG9iamVjdCAiICsgb2Jqc1tpXSArICIgYXQgaW5kZXggOiAiICsgaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcEJ1ZmZlciA9IG1lc3NhZ2VGb3JtYXR0ZXIuZm9ybWF0KG51bGwpOworICAgICAgICAgICAgaWYgKCF0ZW1wQnVmZmVyLmVxdWFscygiSW1wb3NzaWJsZSB7MX0gaGFzIG9jY3VycmVkIC0tIHN0YXR1cyBjb2RlIGlzIHswfSBhbmQgbWVzc2FnZSBpcyB7Mn0uIikpCisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3RzIHdpdGggbm8gYXJndW1lbnRzIGZhaWxlZCIpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCB3aXRoIG51bGwgOiAiICsgdGVtcEJ1ZmZlcik7CisgICAgICAgICAgICBsb2dsbigiQXBwbHkgd2l0aCBwYXR0ZXJuIDogIiArIHBhdHRlcm4yKTsKKyAgICAgICAgICAgIG1lc3NhZ2VGb3JtYXR0ZXIuYXBwbHlQYXR0ZXJuKHBhdHRlcm4yKTsKKyAgICAgICAgICAgIHRlbXBCdWZmZXIgPSBtZXNzYWdlRm9ybWF0dGVyLmZvcm1hdChwYXJhbXMpOworICAgICAgICAgICAgaWYgKCF0ZW1wQnVmZmVyLmVxdWFscygiRG91YmxlICcgUXVvdGVzIDcgdGVzdCBhbmQgcXVvdGVkIHsxfSB0ZXN0IHBsdXMgb3RoZXIgezJ9IHN0dWZmLiIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJxdW90ZSBmb3JtYXQgdGVzdCAody8gcGFyYW1zKSBmYWlsZWQuIik7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHdpdGggcGFyYW1zIDogIiArIHRlbXBCdWZmZXIpOworICAgICAgICAgICAgdGVtcEJ1ZmZlciA9IG1lc3NhZ2VGb3JtYXR0ZXIuZm9ybWF0KG51bGwpOworICAgICAgICAgICAgaWYgKCF0ZW1wQnVmZmVyLmVxdWFscygiRG91YmxlICcgUXVvdGVzIHswfSB0ZXN0IGFuZCBxdW90ZWQgezF9IHRlc3QgcGx1cyBvdGhlciB7Mn0gc3R1ZmYuIikpCisgICAgICAgICAgICAgICAgZXJybG4oInF1b3RlIGZvcm1hdCB0ZXN0ICh3LyBudWxsKSBmYWlsZWQuIik7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHdpdGggbnVsbCA6ICIgKyB0ZW1wQnVmZmVyKTsKKyAgICAgICAgICAgIGxvZ2xuKCJ0b1BhdHRlcm4gOiAiICsgbWVzc2FnZUZvcm1hdHRlci50b1BhdHRlcm4oKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXhjZXB0aW9uIHdoZW4gZm9ybWF0dGluZyBpbiBidWcgNDAzMTQzOC4gIitmb28uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MjIyMygpCisgICAgeworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIlBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCBpbml0aWFsaXphdGlvbiBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBhcHBsZXMgZ3Jvd2luZyBvbiB0aGUgezF9IHRyZWUuIik7CisgICAgICAgIFN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKCJUaGVyZSBpcyBvbmUgYXBwbGUgZ3Jvd2luZyBvbiB0aGUgcGVhY2ggdHJlZS4iKTsKKyAgICAgICAgT2JqZWN0W10gb2JqcyA9IGZtdC5wYXJzZShzdHIsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJ1bnBhcnNhYmxlIHN0cmluZyAsIHNob3VsZCBmYWlsIGF0ICIgKyBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgPT0gLTEpCisgICAgICAgICAgICBlcnJsbigiQnVnIDQwNTIyMjMgZmFpbGVkIDogcGFyc2luZyBzdHJpbmcgIiArIHN0cik7CisgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KDQpOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSAhPSA0KQorICAgICAgICAgICAgZXJybG4oInNldEVycm9ySW5kZXggZmFpbGVkLCBnb3QgIiArIHBvcy5nZXRFcnJvckluZGV4KCkgKyAiIGluc3RlYWQgb2YgNCIpOworICAgICAgICBDaG9pY2VGb3JtYXQgZiA9IG5ldyBDaG9pY2VGb3JtYXQoCisgICAgICAgICAgICAiLTEjYXJlIG5lZ2F0aXZlfDAjYXJlIG5vIG9yIGZyYWN0aW9ufDEjaXMgb25lfDEuMDxpcyAxK3wyI2FyZSB0d298MjxhcmUgbW9yZSB0aGFuIDIuIik7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsgcG9zLnNldEVycm9ySW5kZXgoLTEpOworICAgICAgICBOdW1iZXIgb2JqID0gZi5wYXJzZSgiYXJlIG5lZ2F0aXZlIiwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgIT0gLTEgJiYgb2JqLmRvdWJsZVZhbHVlKCkgPT0gLTEuMCkKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZSB3aXRoIFwiYXJlIG5lZ2F0aXZlXCIgZmFpbGVkLCBhdCAiICsgcG9zLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsgcG9zLnNldEVycm9ySW5kZXgoLTEpOworICAgICAgICBvYmogPSBmLnBhcnNlKCJhcmUgbm8gb3IgZnJhY3Rpb24gIiwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgIT0gLTEgJiYgb2JqLmRvdWJsZVZhbHVlKCkgPT0gMC4wKQorICAgICAgICAgICAgZXJybG4oIlBhcnNlIHdpdGggXCJhcmUgbm8gb3IgZnJhY3Rpb25cIiBmYWlsZWQsIGF0ICIgKyBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOyBwb3Muc2V0RXJyb3JJbmRleCgtMSk7CisgICAgICAgIG9iaiA9IGYucGFyc2UoImdvIHBvc3RhbCIsIHBvcyk7CisgICAgICAgIGlmIChwb3MuZ2V0RXJyb3JJbmRleCgpID09IC0xICYmICFEb3VibGUuaXNOYU4ob2JqLmRvdWJsZVZhbHVlKCkpKQorICAgICAgICAgICAgZXJybG4oIlBhcnNlIHdpdGggXCJnbyBwb3N0YWxcIiBmYWlsZWQsIGF0ICIgKyBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICB9CisgICAgLyogQGJ1ZyA0MTA0OTc2CisgICAgICogQ2hvaWNlRm9ybWF0LmVxdWFscyhudWxsKSB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNDk3NigpCisgICAgeworICAgICAgICBkb3VibGVbXSBsaW1pdHMgPSB7MSwgMjB9OworICAgICAgICBTdHJpbmdbXSBmb3JtYXRzID0geyJ4eXoiLCAiYWJjIn07CisgICAgICAgIENob2ljZUZvcm1hdCBjZiA9IG5ldyBDaG9pY2VGb3JtYXQobGltaXRzLCBmb3JtYXRzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZygiQ29tcGFyZXMgdG8gbnVsbCBpcyBhbHdheXMgZmFsc2UsIHJldHVybmVkIDogIik7CisgICAgICAgICAgICBsb2dsbihjZi5lcXVhbHMobnVsbCkgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgZXJybG4oIkNob2ljZUZvcm1hdC5lcXVhbHMobnVsbCkgdGhyb3dzIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBAYnVnIDQxMDY2NTkKKyAgICAgKiBDaG9pY2VGb3JtYXQuY3Rvcihkb3VibGVbXSwgU3RyaW5nW10pIGRvZXNuJ3QgY2hlY2sKKyAgICAgKiB3aGV0aGVyIGxlbmd0aHMgb2YgaW5wdXQgYXJyYXlzIGFyZSBlcXVhbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY1OSgpCisgICAgeworICAgICAgICBkb3VibGVbXSBsaW1pdHMgPSB7MSwgMiwgM307CisgICAgICAgIFN0cmluZ1tdIGZvcm1hdHMgPSB7Im9uZSIsICJ0d28ifTsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGNmID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNmID0gbmV3IENob2ljZUZvcm1hdChsaW1pdHMsIGZvcm1hdHMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQ2hvaWNlRm9ybWF0IGNvbnN0cnVjdG9yIHNob3VsZCBjaGVjayBmb3IgdGhlIGFycmF5IGxlbmd0aHMiKTsKKyAgICAgICAgICAgIGNmID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2YgIT0gbnVsbCkgZXJybG4oY2YuZm9ybWF0KDUpKTsKKyAgICB9CisKKyAgICAvKiBAYnVnIDQxMDY2NjAKKyAgICAgKiBDaG9pY2VGb3JtYXQuY3Rvcihkb3VibGVbXSwgU3RyaW5nW10pIGFsbG93cyB1bm9yZGVyZWQgZG91YmxlIGFycmF5LgorICAgICAqIFRoaXMgaXMgbm90IGEgYnVnLCBhZGRlZCBqYXZhZG9jIHRvIGVtcGhhc2l6ZSB0aGUgdXNlIG9mIGxpbWl0CisgICAgICogYXJyYXkgbXVzdCBiZSBpbiBhc2NlbmRpbmcgb3JkZXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDY2NjAoKQorICAgIHsKKyAgICAgICAgZG91YmxlW10gbGltaXRzID0gezMsIDEsIDJ9OworICAgICAgICBTdHJpbmdbXSBmb3JtYXRzID0geyJUaHJlZSIsICJPbmUiLCAiVHdvIn07CisgICAgICAgIENob2ljZUZvcm1hdCBjZiA9IG5ldyBDaG9pY2VGb3JtYXQobGltaXRzLCBmb3JtYXRzKTsKKyAgICAgICAgZG91YmxlIGQgPSA1LjA7CisgICAgICAgIFN0cmluZyBzdHIgPSBjZi5mb3JtYXQoZCk7CisgICAgICAgIGlmICghc3RyLmVxdWFscygiVHdvIikpCisgICAgICAgICAgICBlcnJsbigiZm9ybWF0KCIgKyBkICsgIikgPSAiICsgY2YuZm9ybWF0KGQpKTsKKyAgICB9CisKKyAgICAvKiBAYnVnIDQxMTE3MzkKKyAgICAgKiBNZXNzYWdlRm9ybWF0IGlzIGluY29ycmVjdGx5IHNlcmlhbGl6ZWQvZGVzZXJpYWxpemVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTExNzM5KCkKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0MSA9IG51bGw7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0MiA9IG51bGw7CisgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvc3RyZWFtID0gbnVsbDsKKyAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBudWxsOworICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBpc3RyZWFtID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgYmFvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIG9zdHJlYW0gPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICB9IGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiA6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9ybWF0MSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJwYXR0ZXJuezB9Iik7CisgICAgICAgICAgICBvc3RyZWFtLndyaXRlT2JqZWN0KGZvcm1hdDEpOworICAgICAgICAgICAgb3N0cmVhbS5mbHVzaCgpOworCisgICAgICAgICAgICBieXRlIGJ5dGVzW10gPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisKKyAgICAgICAgICAgIGlzdHJlYW0gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBmb3JtYXQyID0gKE1lc3NhZ2VGb3JtYXQpaXN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiA6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZvcm1hdDEuZXF1YWxzKGZvcm1hdDIpKSB7CisgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdHMgYmVmb3JlIGFuZCBhZnRlciBzZXJpYWxpemF0aW9uIGFyZSBub3QiICsKKyAgICAgICAgICAgICAgICAiIGVxdWFsXG5mb3JtYXQxID0gIiArIGZvcm1hdDEgKyAiKCIgKyBmb3JtYXQxLnRvUGF0dGVybigpICsgIilcbmZvcm1hdDIgPSAiICsKKyAgICAgICAgICAgICAgICBmb3JtYXQyICsgIigiICsgZm9ybWF0Mi50b1BhdHRlcm4oKSArICIpIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiU2VyaWFsaXphdGlvbiBmb3IgTWVzc2FnZUZvcm1hdCBpcyBPSy4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBAYnVnIDQxMTQ3NDMKKyAgICAgKiBNZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybiBhbGxvd3MgaWxsZWdhbCBwYXR0ZXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDc0MygpCisgICAgeworICAgICAgICBTdHJpbmcgb3JpZ2luYWxQYXR0ZXJuID0gImluaXRpYWwgcGF0dGVybiI7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChvcmlnaW5hbFBhdHRlcm4pOworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIGlsbGVnYWxQYXR0ZXJuID0gImFiIHsgJ30nIGRlIjsKKyAgICAgICAgICAgIG1mLmFwcGx5UGF0dGVybihpbGxlZ2FsUGF0dGVybik7CisgICAgICAgICAgICBlcnJsbigiaWxsZWdhbCBwYXR0ZXJuOiBcIiIgKyBpbGxlZ2FsUGF0dGVybiArICJcIiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBpZiAoIW9yaWdpbmFsUGF0dGVybi5lcXVhbHMobWYudG9QYXR0ZXJuKCkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJwYXR0ZXJuIGFmdGVyOiBcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogQGJ1ZyA0MTE2NDQ0CisgICAgICogTWVzc2FnZUZvcm1hdC5wYXJzZSBoYXMgZGlmZmVyZW50IGJlaGF2aW9yIGluIGNhc2Ugb2YgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNjQ0NCgpCisgICAgeworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJucyA9IHsiIiwgIm9uZSIsICJ7MCxkYXRlLHNob3J0fSJ9OworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoIiIpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVybnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gcGF0dGVybnNbaV07CisgICAgICAgICAgICBtZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE9iamVjdFtdIGFycmF5ID0gbWYucGFyc2UobnVsbCwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBwYXR0ZXJuICsgIlwiIik7CisgICAgICAgICAgICAgICAgbG9nKCIgcGFyc2VkT2JqZWN0czogIik7CisgICAgICAgICAgICAgICAgaWYgKGFycmF5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJ7Iik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgYXJyYXkubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheVtqXSAhPSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycigiXCIiICsgYXJyYXlbal0udG9TdHJpbmcoKSArICJcIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygibnVsbCIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGogPCBhcnJheS5sZW5ndGggLSAxKSBsb2coIiwiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsb2coIn0iKSA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJudWxsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInBhdHRlcm46IFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiICBFeGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICAvKiBAYnVnIDQxMTQ3MzkgKEZJWCBhbmQgYWRkIGphdmFkb2MpCisgICAgICogTWVzc2FnZUZvcm1hdC5mb3JtYXQgaGFzIHVuZG9jdW1lbnRlZCBiZWhhdmlvciBhYm91dCBlbXB0eSBmb3JtYXQgb2JqZWN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDczOSgpCisgICAgeworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdCgiPHswfT4iKTsKKyAgICAgICAgT2JqZWN0W10gb2JqczEgPSBudWxsOworICAgICAgICBPYmplY3RbXSBvYmpzMiA9IHt9OworICAgICAgICBPYmplY3RbXSBvYmpzMyA9IHtudWxsfTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICAgICAgbG9nKCJmb3JtYXQobnVsbCkgOiAiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcIiIgKyBtZi5mb3JtYXQob2JqczEpICsgIlwiIik7CisgICAgICAgICAgICBsb2coImZvcm1hdCh7fSkgICA6ICIpOworICAgICAgICAgICAgbG9nbG4oIlwiIiArIG1mLmZvcm1hdChvYmpzMikgKyAiXCIiKTsKKyAgICAgICAgICAgIGxvZygiZm9ybWF0KHtudWxsfSkgOiIpOworICAgICAgICAgICAgbG9nbG4oIlwiIiArIG1mLmZvcm1hdChvYmpzMykgKyAiXCIiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb24gdGhyb3duIGZvciBudWxsIGFyZ3VtZW50IHRlc3RzLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogQGJ1ZyA0MTEzMDE4CisgICAgICogTWVzc2FnZUZvcm1hdC5hcHBseVBhdHRlcm4gd29ya3Mgd3Jvbmcgd2l0aCBpbGxlZ2FsIHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTEzMDE4KCkKKyAgICB7CisgICAgICAgIFN0cmluZyBvcmlnaW5hbFBhdHRlcm4gPSAiaW5pdGlhbCBwYXR0ZXJuIjsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KG9yaWdpbmFsUGF0dGVybik7CisgICAgICAgIFN0cmluZyBpbGxlZ2FsUGF0dGVybiA9ICJmb3JtYXQ6IHswLCB4eHhZWVl9IjsKKyAgICAgICAgbG9nbG4oInBhdHRlcm4gYmVmb3JlOiBcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBsb2dsbigiaWxsZWdhbCBwYXR0ZXJuOiBcIiIgKyBpbGxlZ2FsUGF0dGVybiArICJcIiIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbWYuYXBwbHlQYXR0ZXJuKGlsbGVnYWxQYXR0ZXJuKTsKKyAgICAgICAgICAgIGVycmxuKCJTaG91bGQgaGF2ZSB0aHJvd24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciBwYXR0ZXJuIDogIiArIGlsbGVnYWxQYXR0ZXJuKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmICghb3JpZ2luYWxQYXR0ZXJuLmVxdWFscyhtZi50b1BhdHRlcm4oKSkpCisgICAgICAgICAgICAgICAgZXJybG4oInBhdHRlcm4gYWZ0ZXI6IFwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogQGJ1ZyA0MTA2NjYxCisgICAgICogQ2hvaWNlRm9ybWF0IGlzIHNpbGVudCBhYm91dCB0aGUgcGF0dGVybiB1c2FnZSBpbiBqYXZhZG9jLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjYxKCkKKyAgICB7CisgICAgICAgIENob2ljZUZvcm1hdCBmbXQgPSBuZXcgQ2hvaWNlRm9ybWF0KAorICAgICAgICAgICItMSNhcmUgbmVnYXRpdmV8IDAjYXJlIG5vIG9yIGZyYWN0aW9uIHwgMSNpcyBvbmUgfDEuMDxpcyAxKyB8MiNhcmUgdHdvIHwyPGFyZSBtb3JlIHRoYW4gMi4iKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdHRlciBQYXR0ZXJuIDogIiArIGZtdC50b1BhdHRlcm4oKSk7CisKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIC1JTkYgOiAiICsgZm10LmZvcm1hdChEb3VibGUuTkVHQVRJVkVfSU5GSU5JVFkpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIC0xLjAgOiAiICsgZm10LmZvcm1hdCgtMS4wKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAwIDogIiArIGZtdC5mb3JtYXQoMCkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMC45IDogIiArIGZtdC5mb3JtYXQoMC45KSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAxLjAgOiAiICsgZm10LmZvcm1hdCgxKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAxLjUgOiAiICsgZm10LmZvcm1hdCgxLjUpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDIgOiAiICsgZm10LmZvcm1hdCgyKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAyLjEgOiAiICsgZm10LmZvcm1hdCgyLjEpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIE5hTiA6ICIgKyBmbXQuZm9ybWF0KERvdWJsZS5OYU4pKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoICtJTkYgOiAiICsgZm10LmZvcm1hdChEb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkpKTsKKyAgICB9CisgICAgLyogQGJ1ZyA0MDk0OTA2CisgICAgICogQ2hvaWNlRm9ybWF0IHNob3VsZCBhY2NlcHQgXHUyMjFFIGFzIGVxLiB0byBJTkYuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTQ5MDYoKQorICAgIHsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGZtdCA9IG5ldyBDaG9pY2VGb3JtYXQoCisgICAgICAgICAgIi1cdTIyMUU8YXJlIG5lZ2F0aXZlfDA8YXJlIG5vIG9yIGZyYWN0aW9ufDEjaXMgb25lfDEuMDxpcyAxK3xcdTIyMUU8YXJlIG1hbnkuIik7CisgICAgICAgIGlmICghZm10LnRvUGF0dGVybigpLnN0YXJ0c1dpdGgoIi1cdTIyMUU8YXJlIG5lZ2F0aXZlfDAuMDxhcmUgbm8gb3IgZnJhY3Rpb258MS4wI2lzIG9uZXwxLjA8aXMgMSt8XHUyMjFFPGFyZSBtYW55LiIpKQorICAgICAgICAgICAgZXJybG4oIkZvcm1hdHRlciBQYXR0ZXJuIDogIiArIGZtdC50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAtSU5GIDogIiArIGZtdC5mb3JtYXQoRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAtMS4wIDogIiArIGZtdC5mb3JtYXQoLTEuMCkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMCA6ICIgKyBmbXQuZm9ybWF0KDApKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDAuOSA6ICIgKyBmbXQuZm9ybWF0KDAuOSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMS4wIDogIiArIGZtdC5mb3JtYXQoMSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMS41IDogIiArIGZtdC5mb3JtYXQoMS41KSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAyIDogIiArIGZtdC5mb3JtYXQoMikpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggK0lORiA6ICIgKyBmbXQuZm9ybWF0KERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSkpOworICAgIH0KKworICAgIC8qIEBidWcgNDExODU5MgorICAgICAqIE1lc3NhZ2VGb3JtYXQucGFyc2UgZmFpbHMgd2l0aCBDaG9pY2VGb3JtYXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTg1OTIoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCIiKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiezAsY2hvaWNlLDEjWUVTfDIjTk99IjsKKyAgICAgICAgU3RyaW5nIHByZWZpeCA9ICIiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDU7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIGZvcm1hdHRlZCA9IHByZWZpeCArICJZRVMiOworICAgICAgICAgICAgbWYuYXBwbHlQYXR0ZXJuKHByZWZpeCArIHBhdHRlcm4pOworICAgICAgICAgICAgcHJlZml4ICs9ICJ4IjsKKyAgICAgICAgICAgIE9iamVjdFtdIG9ianMgPSBtZi5wYXJzZShmb3JtYXR0ZWQsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgIGxvZ2xuKGkgKyAiLiBwYXR0ZXJuIDpcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICAgICAgbG9nKCIgXCIiICsgZm9ybWF0dGVkICsgIlwiIHBhcnNlZCBhcyAiKTsKKyAgICAgICAgICAgIGlmIChvYmpzID09IG51bGwpIGxvZ2xuKCIgIG51bGwiKTsKKyAgICAgICAgICAgIGVsc2UgbG9nbG4oIiAgIiArIG9ianNbMF0pOworICAgICAgICB9CisgICAgfQorICAgIC8qIEBidWcgNDExODU5NAorICAgICAqIE1lc3NhZ2VGb3JtYXQucGFyc2UgZmFpbHMgZm9yIHNvbWUgcGF0dGVybnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTg1OTQoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MH0sIHswfSwgezB9Iik7CisgICAgICAgIFN0cmluZyBmb3JQYXJzaW5nID0gIngsIHksIHoiOworICAgICAgICBPYmplY3RbXSBvYmpzID0gbWYucGFyc2UoZm9yUGFyc2luZywgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oInRleHQgZm9yIHBhcnNpbmc6IFwiIiArIGZvclBhcnNpbmcgKyAiXCIiKTsKKyAgICAgICAgaWYgKCFvYmpzWzBdLnRvU3RyaW5nKCkuZXF1YWxzKCJ6IikpCisgICAgICAgICAgICBlcnJsbigiYXJndW1lbnQwOiBcIiIgKyBvYmpzWzBdICsgIlwiIik7CisgICAgICAgIG1mLnNldExvY2FsZShMb2NhbGUuVVMpOworICAgICAgICBtZi5hcHBseVBhdHRlcm4oInswLG51bWJlciwjLiMjfSwgezAsbnVtYmVyLCMuI30iKTsKKyAgICAgICAgT2JqZWN0W10gb2xkb2JqcyA9IHtuZXcgRG91YmxlKDMuMTQxNSl9OworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbWYuZm9ybWF0KCBvbGRvYmpzICk7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBsb2dsbigidGV4dCBmb3IgcGFyc2luZzogXCIiICsgcmVzdWx0ICsgIlwiIik7CisgICAgICAgIC8vIHJlc3VsdCBub3cgZXF1YWxzICIzLjE0LCAzLjEiCisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscygiMy4xNCwgMy4xIikpCisgICAgICAgICAgICBlcnJsbigicmVzdWx0ID0gIiArIHJlc3VsdCk7CisgICAgICAgIE9iamVjdFtdIG5ld29ianMgPSBtZi5wYXJzZShyZXN1bHQsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgLy8gbmV3b2JqcyBub3cgZXF1YWxzIHtuZXcgRG91YmxlKDMuMSl9CisgICAgICAgIGlmICgoKE51bWJlciluZXdvYmpzWzBdKS5kb3VibGVWYWx1ZSgpICE9IDMuMSkgLy8gd2FzIChEb3VibGUpIFthbGFuXQorICAgICAgICAgICAgZXJybG4oICJuZXdvYmpzWzBdID0gIiArIG5ld29ianNbMF0pOworICAgIH0KKyAgICAvKiBAYnVnIDQxMDUzODAKKyAgICAgKiBXaGVuIHVzaW5nIENob2ljZUZvcm1hdCwgTWVzc2FnZUZvcm1hdCBpcyBub3QgZ29vZCBmb3IgSTE4bi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNTM4MCgpCisgICAgeworICAgICAgICBTdHJpbmcgcGF0dGVyblRleHQxID0gIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9LiI7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuVGV4dDIgPSAiVGhlcmUgYXJlIHswfSBvbiB0aGUgZGlzayBcInsxfVwiIjsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtMSA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm5UZXh0MSk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybTIgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuVGV4dDIpOworICAgICAgICBkb3VibGVbXSBmaWxlbGltaXRzID0gezAsMSwyfTsKKyAgICAgICAgU3RyaW5nW10gZmlsZXBhcnQgPSB7Im5vIGZpbGVzIiwib25lIGZpbGUiLCJ7MCxudW1iZXJ9IGZpbGVzIn07CisgICAgICAgIENob2ljZUZvcm1hdCBmaWxlZm9ybSA9IG5ldyBDaG9pY2VGb3JtYXQoZmlsZWxpbWl0cywgZmlsZXBhcnQpOworICAgICAgICBmb3JtMS5zZXRGb3JtYXQoMSwgZmlsZWZvcm0pOworICAgICAgICBmb3JtMi5zZXRGb3JtYXQoMCwgZmlsZWZvcm0pOworICAgICAgICBPYmplY3RbXSB0ZXN0QXJncyA9IHtuZXcgTG9uZygxMjM3MyksICJNeURpc2sifTsKKyAgICAgICAgbG9nbG4oZm9ybTEuZm9ybWF0KHRlc3RBcmdzKSk7CisgICAgICAgIGxvZ2xuKGZvcm0yLmZvcm1hdCh0ZXN0QXJncykpOworICAgIH0KKyAgICAvKiBAYnVnIDQxMjA1NTIKKyAgICAgKiBNZXNzYWdlRm9ybWF0LnBhcnNlIGluY29ycmVjdGx5IHNldHMgZXJyb3JJbmRleC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyMDU1MigpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInBhdHRlcm4iKTsKKyAgICAgICAgU3RyaW5nIHRleHRzW10gPSB7InBhdHRlcm4iLCAicGF0IiwgIjEyMzQifTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGV4dHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIE9iamVjdFtdIG9ianMgPSBtZi5wYXJzZSh0ZXh0c1tpXSwgcHApOworICAgICAgICAgICAgbG9nKCIgIHRleHQgZm9yIHBhcnNpbmc6IFwiIiArIHRleHRzW2ldICsgIlwiIik7CisgICAgICAgICAgICBpZiAob2JqcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgKGluY29ycmVjdGx5IGZvcm1hdHRlZCBzdHJpbmcpIik7CisgICAgICAgICAgICAgICAgaWYgKHBwLmdldEVycm9ySW5kZXgoKSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBlcnJvciBpbmRleDogIiArIHBwLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIChjb3JyZWN0bHkgZm9ybWF0dGVkIHN0cmluZykiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDE0MjkzOAorICAgICAqIE1lc3NhZ2VGb3JtYXQgaGFuZGxlcyBzaW5nbGUgcXVvdGVzIGluIHBhdHRlcm4gd3JvbmcuCisgICAgICogVGhpcyBpcyBhY3R1YWxseSBhIHByb2JsZW0gaW4gQ2hvaWNlRm9ybWF0OyBpdCBkb2Vzbid0CisgICAgICogdW5kZXJzdGFuZCBzaW5nbGUgcXVvdGVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQyOTM4KCkgeworICAgICAgICBTdHJpbmcgcGF0ID0gIicnVm91cycnIHswLGNob2ljZSwwI24nJ3wxI31hdmV6IHNcdTAwRTlsZWN0aW9ubmVcdTAwRTkgIiArIAorICAgICAgICAgICAgInswLGNob2ljZSwwI2F1Y3VufDEjezB9fSBjbGllbnR7MCxjaG9pY2UsMCNzfDEjfDIjc30gIiArIAorICAgICAgICAgICAgInBlcnNvbm5lbHswLGNob2ljZSwwI3N8MSN8MiNzfS4iOworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0KTsKKworICAgICAgICBTdHJpbmdbXSBQUkVGSVggPSB7CisgICAgICAgICAgICAiJ1ZvdXMnIG4nYXZleiBzXHUwMEU5bGVjdGlvbm5lXHUwMEU5IGF1Y3VuIGNsaWVudHMgcGVyc29ubmVscy4iLAorICAgICAgICAgICAgIidWb3VzJyBhdmV6IHNcdTAwRTlsZWN0aW9ubmVcdTAwRTkgIiwKKyAgICAgICAgICAgICInVm91cycgYXZleiBzXHUwMEU5bGVjdGlvbm5lXHUwMEU5ICIKKyAgICAgICAgfTsgIAorICAgICAgICBTdHJpbmdbXSBTVUZGSVggPSB7CisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgIiBjbGllbnQgcGVyc29ubmVsLiIsCisgICAgICAgICAgICAiIGNsaWVudHMgcGVyc29ubmVscy4iCisgICAgICAgIH07CisgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaTwzOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBvdXQgPSBtZi5mb3JtYXQobmV3IE9iamVjdFtde25ldyBJbnRlZ2VyKGkpfSk7CisgICAgICAgICAgICBpZiAoU1VGRklYW2ldID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW91dC5lcXVhbHMoUFJFRklYW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIiIgKyBpICsgIjogR290IFwiIiArIG91dCArICJcIjsgV2FudCBcIiIgKyBQUkVGSVhbaV0gKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmICghb3V0LnN0YXJ0c1dpdGgoUFJFRklYW2ldKSB8fAorICAgICAgICAgICAgICAgICAgICAhb3V0LmVuZHNXaXRoKFNVRkZJWFtpXSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIiICsgaSArICI6IEdvdCBcIiIgKyBvdXQgKyAiXCI7IFdhbnQgXCIiICsgUFJFRklYW2ldICsgIlwiLi4uXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgU1VGRklYW2ldICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNDI5MzgKKyAgICAgKiBUZXN0IHRoZSBhcHBseVBhdHRlcm4gYW5kIHRvUGF0dGVybiBoYW5kbGluZyBvZiBzaW5nbGUgcXVvdGVzCisgICAgICogYnkgQ2hvaWNlRm9ybWF0LiAgKFRoaXMgaXMgaW4gaGVyZSBiZWNhdXNlIHRoaXMgd2FzIGEgYnVnIHJlcG9ydGVkCisgICAgICogYWdhaW5zdCBNZXNzYWdlRm9ybWF0LikgIFRoZSBzaW5nbGUgcXVvdGUgaXMgdXNlZCB0byBxdW90ZSB0aGUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlcnMgJ3wnLCAnIycsICc8JywgYW5kICdcdTIyNjQnLiAgVHdvIHF1b3RlcyBpbiBhIHJvdworICAgICAqIGlzIGEgcXVvdGUgbGl0ZXJhbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hvaWNlUGF0dGVyblF1b3RlKCkgeworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gUGF0dGVybiAgICAgICAgICAgICAgICAgIDAgdmFsdWUgICAgICAgICAgIDEgdmFsdWUKKyAgICAgICAgICAgICIwI2NhbicndHwxI2NhbiIsICAgICAgICAgICAiY2FuJ3QiLCAgICAgICAgICAiY2FuIiwKKyAgICAgICAgICAgICIwIydwb3VuZCgjKT0nJyMnJyd8MSN4eXoiLCAicG91bmQoIyk9JyMnIiwgICAieHl6IiwKKyAgICAgICAgICAgICIwIycxPDIgfCAxXHUyMjY0MSd8MSMnJyIsICAiMTwyIHwgMVx1MjI2NDEiLCAiJyIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDaG9pY2VGb3JtYXQgY2YgPSBuZXcgQ2hvaWNlRm9ybWF0KERBVEFbaV0pOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajw9MTsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdXQgPSBjZi5mb3JtYXQoaik7CisgICAgICAgICAgICAgICAgICAgIGlmICghb3V0LmVxdWFscyhEQVRBW2krMStqXSkpCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogUGF0dGVybiBcIiIgKyBEQVRBW2ldICsgIlwiIHggIitqKyIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgKyAiOyB3YW50IFwiIiArIERBVEFbaSsxK2pdICsgJyInKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IGNmLnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQyID0gbmV3IENob2ljZUZvcm1hdChwYXQpLnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIGlmICghcGF0LmVxdWFscyhwYXQyKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFBhdHRlcm4gXCIiICsgREFUQVtpXSArICJcIiB4IHRvUGF0dGVybiAtPiBcIiIgKyBwYXQgKyAnIicpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBQYXR0ZXJuIFwiIiArIERBVEFbaV0gKyAiXCIgeCB0b1BhdHRlcm4gLT4gXCIiICsgcGF0ICsgJyInKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBQYXR0ZXJuIFwiIiArIERBVEFbaV0gKyAiXCIgLT4gIiArIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTEyMTA0CisgICAgICogTWVzc2FnZUZvcm1hdC5lcXVhbHMobnVsbCkgdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24uICBUaGUgSkxTIHN0YXRlcworICAgICAqIHRoYXQgaXQgc2hvdWxkIHJldHVybiBmYWxzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExMjEwNCgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBOT1QgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgICAgICBpZiAoZm9ybWF0LmVxdWFscyhudWxsKSkgeworICAgICAgICAgICAgICAgIC8vIEl0IGFsc28gc2hvdWxkIHJldHVybiBmYWxzZQorICAgICAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0LmVxdWFscyhudWxsKSByZXR1cm5zIGZhbHNlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0LmVxdWFscyhudWxsKSB0aHJvd3MgIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTY5OTU5CisgICAgICogTWVzc2FnZUZvcm1hdCBkb2VzIG5vdCBmb3JtYXQgbnVsbCBvYmplY3RzLiBDQU5OT1QgUkVQUk9EVUNFIFRISVMgQlVHLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTY5OTU5KCkgeworICAgICAgICAvLyBUaGlzIHdvcmtzCisgICAgICAgIGxvZ2xuKE1lc3NhZ2VGb3JtYXQuZm9ybWF0KCAiVGhpcyB3aWxsIHswfSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW117IndvcmsifSApICk7CisgICAgICAgIAorICAgICAgICAvLyBUaGlzIGZhaWxzCisgICAgICAgIGxvZ2xuKE1lc3NhZ2VGb3JtYXQuZm9ybWF0KCAiVGhpcyB3aWxsIHswfSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117IG51bGwgfSApICk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRlc3Q0MjMyMTU0KCkgeworICAgICAgICBib29sZWFuIGdvdEV4Y2VwdGlvbiA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlIGRhdGUgaXMgezA6ZGF0ZX0iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGdvdEV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJnb3Qgd3JvbmcgZXhjZXB0aW9uIHR5cGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgiYXJndW1lbnQgbnVtYmVyIHRvbyBsYXJnZSBhdCAiLmVxdWFscyhlLmdldE1lc3NhZ2UoKSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiZ290IHdyb25nIGV4Y2VwdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFnb3RFeGNlcHRpb24pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJkaWRuJ3QgZ2V0IGV4Y2VwdGlvbiBmb3IgaW52YWxpZCBpbnB1dCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRlc3Q0MjkzMjI5KCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCInJyd7JzB9JycgJycnezB9JycnIik7CisgICAgICAgIE9iamVjdFtdIGFyZ3MgPSB7IG51bGwgfTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIid7MH0nICd7MH0nIjsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoYXJncyk7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ3cm9uZyBmb3JtYXQgcmVzdWx0IC0gZXhwZWN0ZWQgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgKyAiXCIsIGdvdCBcIiIgKyByZXN1bHQgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSZWdpc3RyYXRpb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ2lzdHJhdGlvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTFhZmIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSZWdpc3RyYXRpb25UZXN0LmphdmEKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRSZWdpc3RyYXRpb25UZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgTnVtYmVyRm9ybWF0UmVnaXN0cmF0aW9uVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0cmF0aW9uKCkgeworICAgICAgICBmaW5hbCBVTG9jYWxlIFNSQ19MT0MgPSBVTG9jYWxlLkZSQU5DRTsKKyAgICAgICAgZmluYWwgVUxvY2FsZSBTV0FQX0xPQyA9IFVMb2NhbGUuVVM7CisKKyAgICAgICAgY2xhc3MgVGVzdEZhY3RvcnkgZXh0ZW5kcyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5IHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBjdXJyZW5jeVN0eWxlOworCisgICAgICAgICAgICBUZXN0RmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICB0aGlzKFNSQ19MT0MsIFNXQVBfTE9DKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVGVzdEZhY3RvcnkoVUxvY2FsZSBzcmNMb2MsIFVMb2NhbGUgc3dhcExvYykgeworICAgICAgICAgICAgICAgIHN1cGVyKHNyY0xvYyk7CisgICAgICAgICAgICAgICAgY3VycmVuY3lTdHlsZSA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2Uoc3dhcExvYyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgY3JlYXRlRm9ybWF0KFVMb2NhbGUgbG9jLCBpbnQgZm9ybWF0VHlwZSkgeworICAgICAgICAgICAgICAgIGlmIChmb3JtYXRUeXBlID09IEZPUk1BVF9DVVJSRU5DWSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVuY3lTdHlsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBjb3ZlcmFnZSBiZWZvcmUgcmVnaXN0cmF0aW9uCisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LnVucmVnaXN0ZXIobnVsbCk7CisgICAgICAgICAgICAgICAgZXJybG4oImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIG51bGwgdW5yZWdpc3RlciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgdW5yZWdpc3RlciBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQucmVnaXN0ZXJGYWN0b3J5KG51bGwpOworICAgICAgICAgICAgICAgIGVycmxuKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBudWxsIHJlZ2lzdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAlsb2dsbigiUEFTUzogbnVsbCByZWdpc3RlciBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBpZiBubyBORiBoYXMgYmVlbiByZWdpc3RlcmVkIHlldCwgc2hpbSBpcyBudWxsLCBzbyB0aGlzIHNpbGVudGx5CisgICAgICAgICAgICAgICAgLy8gcmV0dXJucyBmYWxzZS4gIGlmLCBvbiB0aGUgb3RoZXIgaGFuZCwgYSBORiBoYXMgYmVlbiByZWdpc3RlcmVkLAorICAgICAgICAgICAgICAgIC8vIHRoaXMgd2lsbCB0cnkgdG8gY2FzdCB0aGUgYXJndW1lbnQgdG8gYSBGYWN0b3J5LCBhbmQgdGhyb3cKKyAgICAgICAgICAgICAgICAvLyBhbiBleGNlcHRpb24uCisgICAgICAgICAgICAgICAgaWYgKE51bWJlckZvcm1hdC51bnJlZ2lzdGVyKCIiKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigidW5yZWdpc3RlciBvZiBlbXB0eSBzdHJpbmcga2V5IHN1Y2NlZWRlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZSBmdV9GVSA9IG5ldyBVTG9jYWxlKCJmdV9GVSIpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjAgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKFNXQVBfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYxID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoU1JDX0xPQyk7CisgICAgICAgIE9iamVjdCBrZXkgPSBOdW1iZXJGb3JtYXQucmVnaXN0ZXJGYWN0b3J5KG5ldyBUZXN0RmFjdG9yeSgpKTsKKyAgICAgICAgT2JqZWN0IGtleTIgPSBOdW1iZXJGb3JtYXQucmVnaXN0ZXJGYWN0b3J5KG5ldyBUZXN0RmFjdG9yeShmdV9GVSwgVUxvY2FsZS5HRVJNQU5ZKSk7CisgICAgICAgIGlmICghQXJyYXlzLmFzTGlzdChOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSkuY29udGFpbnMoZnVfRlUpKSB7CisgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBsaXN0IGZ1X0ZVIik7CisgICAgICAgIH0KKyAgICAgICAgTnVtYmVyRm9ybWF0IGYzID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoU1JDX0xPQyk7CisgICAgICAgIE51bWJlckZvcm1hdCBmNCA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoU1JDX0xPQyk7CisgICAgICAgIE51bWJlckZvcm1hdC51bnJlZ2lzdGVyKGtleSk7IC8vIHJlc3RvcmUgZm9yIG90aGVyIHRlc3RzCisgICAgICAgIE51bWJlckZvcm1hdCBmNSA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFNSQ19MT0MpOworCisgICAgICAgIE51bWJlckZvcm1hdC51bnJlZ2lzdGVyKGtleTIpOworCisgICAgICAgIGZsb2F0IG4gPSAxMjM0LjU2N2Y7CisgICAgICAgIGxvZ2xuKCJmMCBzd2FwIGludDogIiArIGYwLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmMSBzcmMgaW50OiAiICsgZjEuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImYyIHNyYyBjdXI6ICIgKyBmMi5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjMgcmVnIGN1cjogIiArIGYzLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmNCByZWcgaW50OiAiICsgZjQuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImY1IHVucmVnIGN1cjogIiArIGY1LmZvcm1hdChuKSk7CisKKyAgICAgICAgaWYgKCFmMy5mb3JtYXQobikuZXF1YWxzKGYwLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlcmVkIHNlcnZpY2UgZGlkIG5vdCBtYXRjaCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZjQuZm9ybWF0KG4pLmVxdWFscyhmMS5mb3JtYXQobikpKSB7CisgICAgICAgICAgICBlcnJsbigicmVnaXN0ZXJlZCBzZXJ2aWNlIGRpZCBub3QgaW5oZXJpdCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZjUuZm9ybWF0KG4pLmVxdWFscyhmMi5mb3JtYXQobikpKSB7CisgICAgICAgICAgICBlcnJsbigidW5yZWdpc3RlcmVkIHNlcnZpY2UgZGlkIG5vdCBtYXRjaCBvcmlnaW5hbCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gY292ZXJhZ2UKKyAgICAgICAgTnVtYmVyRm9ybWF0IGY2ID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKGZ1X0ZVKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTIzNDhhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YQpAQCAtMCwwICsxLDIzMyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IE51bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9udW1yZ3RzLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby4qOworCisvKiogCisgKiBQZXJmb3JtcyByZWdyZXNzaW9uIHRlc3QgZm9yIE1lc3NhZ2VGb3JtYXQKKyAqKi8KK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIGFscGhhV29ya3MgdXBncmFkZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTYxMTAwKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDEpOworICAgICAgICBuZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMSk7CisgICAgICAgIGRvdWJsZSBhID0gLTAuMDk7CisgICAgICAgIFN0cmluZyBzID0gbmYuZm9ybWF0KGEpOworICAgICAgICBsb2dsbihhICsgIiB4ICIgKworICAgICAgICAgICAgICAoKERlY2ltYWxGb3JtYXQpIG5mKS50b1BhdHRlcm4oKSArICIgPSAiICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoIi0wLjEiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRlRm9ybWF0IHNob3VsZCBjYWxsIHNldEludGVnZXJQYXJzZU9ubHkoVFJVRSkgb24gYWRvcHRlZAorICAgICAqIE51bWJlckZvcm1hdCBvYmplY3RzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKNjkxKCkgeworICAgICAgICAKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoImZyIiwgIkNIIik7CisgICAgCisgICAgICAgIC8vIHNldCB1cCB0aGUgaW5wdXQgZGF0ZSBzdHJpbmcgJiBleHBlY3RlZCBvdXRwdXQKKyAgICAgICAgU3RyaW5nIHVkdCA9ICIxMS4xMC4yMDAwIjsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICIxMS4xMC4wMCI7CisgICAgCisgICAgICAgIC8vIGNyZWF0ZSBhIENhbGVuZGFyIGZvciB0aGlzIGxvY2FsZQorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2MpOworICAgIAorICAgICAgICAvLyBjcmVhdGUgYSBOdW1iZXJGb3JtYXQgZm9yIHRoaXMgbG9jYWxlCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2MpOworICAgIAorICAgICAgICAvLyAqKiogSGVyZSdzIHRoZSBrZXk6IFdlIGRvbid0IHdhbnQgdG8gaGF2ZSB0byBkbyBUSElTOgorICAgICAgICAvL25mLnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgCisgICAgICAgIC8vIGNyZWF0ZSB0aGUgRGF0ZUZvcm1hdAorICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKTsKKyAgICAKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgZGYuc2V0TnVtYmVyRm9ybWF0KG5mKTsKKyAgICAKKyAgICAgICAgLy8gc2V0IHBhcnNpbmcgdG8gbGVuaWVudCAmIHBhcnNlCisgICAgICAgIERhdGUgdWxvY2RhdCA9IG5ldyBEYXRlKCk7CisgICAgICAgIGRmLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB1bG9jZGF0ID0gZGYucGFyc2UodWR0KTsKKyAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICBlcnJsbihwZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIC8vIGZvcm1hdCBiYWNrIHRvIGEgc3RyaW5nCisgICAgICAgIFN0cmluZyBvdXRTdHJpbmcgPSBkZi5mb3JtYXQodWxvY2RhdCk7CisgICAgCisgICAgICAgIGlmICghb3V0U3RyaW5nLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHVkdCArICIgPT4gIiArIG91dFN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBnZXRJbnRlZ2VySW5zdGFuY2UoKTsKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDQwODA2NigpIHsKKyAgICAgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBuZjEgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKCk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZjIgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZS5DSElOQSk7CisgICAgCisgICAgICAgIC8vdGVzdCBpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgICAgaWYgKCFuZjEuaXNQYXJzZUludGVnZXJPbmx5KCkgfHwgIW5mMi5pc1BhcnNlSW50ZWdlck9ubHkoKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCA6IEludGVnZXIgTnVtYmVyIEZvcm1hdCBJbnN0YW5jZSBzaG91bGQgc2V0IHNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSkiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvL1Rlc3QgZm9ybWF0CisgICAgICAgIHsKKyAgICAgICAgICAgIGRvdWJsZVtdIGRhdGEgPSB7CisgICAgICAgICAgICAgICAgLTMuNzUsIC0yLjUsIC0xLjUsIAorICAgICAgICAgICAgICAgIC0xLjI1LCAwLCAgICAxLjAsIAorICAgICAgICAgICAgICAgIDEuMjUsICAxLjUsICAyLjUsIAorICAgICAgICAgICAgICAgIDMuNzUsICAxMC4wLCAyNTUuNQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICBTdHJpbmdbXSBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICAgICAiLTQiLCAiLTIiLCAiLTIiLAorICAgICAgICAgICAgICAgICItMSIsICIwIiwgICIxIiwKKyAgICAgICAgICAgICAgICAiMSIsICAiMiIsICAiMiIsCisgICAgICAgICAgICAgICAgIjQiLCAgIjEwIiwgIjI1NiIKKyAgICAgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG5mMS5mb3JtYXQoZGF0YVtpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkID0+IFNvdXJjZTogIiArIERvdWJsZS50b1N0cmluZyhkYXRhW2ldKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjtGb3JtYXR0ZWQgOiAiICsgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICArICI7YnV0IGV4cGVjdHRlZDogIiArIGV4cGVjdGVkW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy9UZXN0IHBhcnNlLCBQYXJzaW5nIHNob3VsZCBzdG9wIGF0ICIuIgorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgZGF0YVtdID0geworICAgICAgICAgICAgICAgICItMy43NSIsICItMi41IiwgIi0xLjUiLCAKKyAgICAgICAgICAgICAgICAiLTEuMjUiLCAiMCIsICAgICIxLjAiLCAKKyAgICAgICAgICAgICAgICAiMS4yNSIsICAiMS41IiwgICIyLjUiLCAKKyAgICAgICAgICAgICAgICAiMy43NSIsICAiMTAuMCIsICIyNTUuNSIKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgbG9uZ1tdIGV4cGVjdGVkID0geworICAgICAgICAgICAgICAgIC0zLCAtMiwgLTEsCisgICAgICAgICAgICAgICAgLTEsIDAsICAxLAorICAgICAgICAgICAgICAgIDEsICAxLCAgMiwKKyAgICAgICAgICAgICAgICAzLCAgMTAsIDI1NQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIE51bWJlciBuID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBuID0gbmYxLnBhcnNlKGRhdGFbaV0pOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCEobiBpbnN0YW5jZW9mIExvbmcpIHx8IChuIGluc3RhbmNlb2YgSW50ZWdlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogSW50ZWdlciBOdW1iZXIgRm9ybWF0IHNob3VsZCBwYXJzZSBzdHJpbmcgdG8gTG9uZy9JbnRlZ2VyIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuLmxvbmdWYWx1ZSgpICE9IGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ9PiBTb3VyY2U6ICIgKyBkYXRhW2ldIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiO3Jlc3VsdCA6ICIgKyBuLnRvU3RyaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjtleHBlY3RlZCA6IiArIExvbmcudG9TdHJpbmcoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0IE5ldyBzZXJpYWxpemVkIERlY2ltYWxGb3JtYXQoMi4wKSByZWFkIG9sZCBzZXJpYWxpemVkIGZvcm1zIG9mIERlY2ltYWxGb3JtYXQoMS4zLjEuMSkKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2VyaWFsaXphdGlvbigpIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbnsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGJ5dGVbXVtdIGNvbnRlbnRzID0gTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEuZ2V0Q29udGVudCgpOworICAgICAgICBkb3VibGUgZGF0YSA9IDEyMzQuNTY7CisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkID0geworICAgICAgICAgICAgIjEsMjM0LjU2IiwgIiQxLDIzNC41NiIsICIxMjMsNDU2JSIsICIxLjIzNDU2RTMifTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oY29udGVudHNbaV0pKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IChOdW1iZXJGb3JtYXQpIG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoZGF0YSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogRGVzZXJpYWxpemVkIGJvZ3VzIE51bWJlckZvcm1hdChuZXcgdmVyc2lvbiByZWFkIG9sZCB2ZXJzaW9uKSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0aGUgdGVzdCBkYXRhIGZvcm1hdHMgYXJlIG5vdCBldXFhbCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJGQUlMOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisvLyNlbmRpZgorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBjYXNlIGZvciBKQiM1NTA5LCBzdHJpY3QgcGFyc2luZyBpc3N1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjU1MDkoKSB7CisgICAgICAgIFN0cmluZ1tdIGRhdGEgPSB7CisgICAgICAgICAgICAgICAgIjEsMiIsCisgICAgICAgICAgICAgICAgIjEuMiIsCisgICAgICAgICAgICAgICAgIjEsMi41IiwKKyAgICAgICAgICAgICAgICAiMSwyMy41IiwKKyAgICAgICAgICAgICAgICAiMSwyMzQuNSIsCisgICAgICAgICAgICAgICAgIjEsMjM0IiwKKyAgICAgICAgICAgICAgICAiMSwyMzQsNTY3IiwKKyAgICAgICAgICAgICAgICAiMSwyMzQsNTY3LjgiLAorICAgICAgICAgICAgICAgICIxLDIzNCw1IiwKKyAgICAgICAgICAgICAgICAiMSwyMzQsNS42IiwKKyAgICAgICAgICAgICAgICAiMSwyMzQsNTYuNyIKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbGVhbltdIGV4cGVjdGVkID0geyAvLyBmYWxzZSBmb3IgZXhwZWN0ZWQgcGFyc2UgZmFpbHVyZQorICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICB9OworCisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMjIiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKG5ldyBVTG9jYWxlKCJlbl9VUyIpKSk7CisgICAgICAgIGRmLnNldFBhcnNlU3RyaWN0KHRydWUpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTnVtYmVyIG4gPSBkZi5wYXJzZShkYXRhW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoIWV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IFBhcnNlRXhjZXB0aW9uIG11c3QgYmUgdGhyb3duIGZvciBzdHJpbmcgIiArIGRhdGFbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IFBhcnNlRXhjZXB0aW9uIG11c3Qgbm90IGJlIHRocm93biBmb3Igc3RyaW5nICIgKyBkYXRhW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyNjkxMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpAQCAtMCwwICsxLDIzNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydGluZyBGcm9tOiBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9ubWZtdHJ0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKKy8qKiAKKyAqIFBlcmZvcm1zIHJvdW5kLXRyaXAgdGVzdHMgZm9yIE51bWJlckZvcm1hdAorICoqLworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIGRvdWJsZSBNQVhfRVJST1IgPSAxZS0xNDsKKyAgICBwdWJsaWMgZG91YmxlIG1heF9udW1lcmljX2Vycm9yID0gMC4wOworICAgIHB1YmxpYyBkb3VibGUgbWluX251bWVyaWNfZXJyb3IgPSAxLjA7CisgICAgcHVibGljIGJvb2xlYW4gdmVyYm9zZSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIFNUUklOR19DT01QQVJFID0gZmFsc2U7CisgICAgcHVibGljIGJvb2xlYW4gRVhBQ1RfTlVNRVJJQ19DT01QQVJFID0gZmFsc2U7CisgICAgcHVibGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBxdWljayA9IHRydWU7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0TnVtYmVyRm9ybWF0Um91bmRUcmlwKCkgeworICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gbnVsbDsKKyAgICAKKyAgICAgICAgbG9nbG4oIkRlZmF1bHQgTG9jYWxlIik7CisgICAgICAgIAorICAgICAgICBsb2dsbigiRGVmYXVsdCBOdW1iZXIgZm9ybWF0Iik7CisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBfdGVzdChmbXQpOworICAgIAorICAgICAgICBsb2dsbigiQ3VycmVuY3kgRm9ybWF0Iik7CisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCk7CisgICAgICAgIF90ZXN0KGZtdCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJQZXJjZW50IEZvcm1hdCIpOworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIF90ZXN0KGZtdCk7CisgICAgCisgICAgCisgICAgICAgIGludCBsb2NDb3VudCA9IDA7CisgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvYyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGlmKHF1aWNrKSB7CisgICAgICAgICAgICBpZihsb2NDb3VudCA+IDUpCisgICAgICAgICAgICAgICAgbG9jQ291bnQgPSA1OworICAgICAgICAgICAgbG9nbG4oIlF1aWNrIG1vZGU6IG9ubHkgX3Rlc3RpbmcgZmlyc3QgNSBMb2NhbGVzIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxvY0NvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGxvZ2xuKGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAKKyAgICAgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAgICAgCisgICAgICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAgICAgCisgICAgICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGxvY1tpXSk7CisgICAgICAgICAgICBfdGVzdChmbXQpOworICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKCJOdW1lcmljIGVycm9yICIgKyBtaW5fbnVtZXJpY19lcnJvciArICIgdG8gIiArIG1heF9udW1lcmljX2Vycm9yKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcmFuZG9tIHZhbHVlIGZyb20gLXJhbmdlLi4rcmFuZ2UuCisgICAgICovCisgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tOworICAgIHB1YmxpYyBkb3VibGUgcmFuZG9tRG91YmxlKGRvdWJsZSByYW5nZSkgeworICAgICAgICBpZiAocmFuZG9tID09IG51bGwpIHsKKyAgICAgICAgICAgIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgICAgICB9CisgICAgICAgIHJldHVybiAgcmFuZG9tLm5leHREb3VibGUoKSAqIHJhbmdlOworICAgIH0gCisgICAgCisgICAgcHVibGljIHZvaWQgX3Rlc3QoTnVtYmVyRm9ybWF0IGZtdCkgeworICAgIAorICAgICAgICBfdGVzdChmbXQsIERvdWJsZS5OYU4pOworICAgICAgICBfdGVzdChmbXQsIERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIF90ZXN0KGZtdCwgRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgICAKKyAgICAgICAgX3Rlc3QoZm10LCA1MDApOworICAgICAgICBfdGVzdChmbXQsIDApOworICAgICAgICBfdGVzdChmbXQsIC0wKTsKKyAgICAgICAgX3Rlc3QoZm10LCAwLjApOworICAgICAgICBkb3VibGUgbmVnWmVybyA9IDAuMDsKKyAgICAgICAgbmVnWmVybyAvPSAtMS4wOworICAgICAgICBfdGVzdChmbXQsIG5lZ1plcm8pOworICAgICAgICBfdGVzdChmbXQsIDkyMjMzNzIwMzY4NTQ3NzU4MDguMGQpOworICAgICAgICBfdGVzdChmbXQsIC05MjIzMzcyMDM2ODU0Nzc1ODA5LjBkKTsKKyAgICAgICAgLy9fdGVzdChmbXQsIDYuOTM2MDY1ODc2MTAwNDkzRTc0ZCk7CisgICAgICAgIAorICAgIC8vICAgIF90ZXN0KGZtdCwgNi4yMTIxMjI4NDUyODE5MDlFNDhkKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDEwMDAwKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIE1hdGguZmxvb3IoKHJhbmRvbURvdWJsZSgxMDAwMCkpKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZTUwKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS01MCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUxMDApKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlNzUpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlMzA4KSAvICgoRGVjaW1hbEZvcm1hdCkgZm10KS5nZXRNdWx0aXBsaWVyKCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWU3NSkgLyAoKERlY2ltYWxGb3JtYXQpIGZtdCkuZ2V0TXVsdGlwbGllcigpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlNjUpIC8gKChEZWNpbWFsRm9ybWF0KSBmbXQpLmdldE11bHRpcGxpZXIoKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS0yOTIpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlLTc4KSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS0zMjMpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlLTEwMCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUtNzgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChOdW1iZXJGb3JtYXQgZm10LCBkb3VibGUgdmFsdWUpIHsKKyAgICAgICAgX3Rlc3QoZm10LCBuZXcgRG91YmxlKHZhbHVlKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KE51bWJlckZvcm1hdCBmbXQsIGxvbmcgdmFsdWUpIHsKKyAgICAgICAgX3Rlc3QoZm10LCBuZXcgTG9uZyh2YWx1ZSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChOdW1iZXJGb3JtYXQgZm10LCBOdW1iZXIgdmFsdWUpIHsKKyAgICAgICAgbG9nbG4oInRlc3QgZGF0YSA9ICIgKyB2YWx1ZSk7CisgICAgICAgIGZtdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoOTk5KTsKKyAgICAgICAgU3RyaW5nIHMsIHMyOworICAgICAgICBpZiAodmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzSWdub3JlQ2FzZSgiamF2YS5sYW5nLkRvdWJsZSIpKQorICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQodmFsdWUuZG91YmxlVmFsdWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KHZhbHVlLmxvbmdWYWx1ZSgpKTsKKyAgICAKKyAgICAgICAgTnVtYmVyIG4gPSBuZXcgRG91YmxlKDApOworICAgICAgICBib29sZWFuIHNob3cgPSB2ZXJib3NlOworICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgICBsb2dsbigKKyAgICAgICAgICAgIC8qdmFsdWUuZ2V0U3RyaW5nKHRlbXApICsqLyAiIEY+ICIgKyBzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG4gPSBmbXQucGFyc2Uocyk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgbG9nbG4ocyArICIgUD4gIiAvKisgbi5nZXRTdHJpbmcodGVtcCkqLyk7CisgICAgCisgICAgICAgIGlmICh2YWx1ZS5nZXRDbGFzcygpLmdldE5hbWUoKS5lcXVhbHNJZ25vcmVDYXNlKCJqYXZhLmxhbmcuRG91YmxlIikpCisgICAgICAgICAgICBzMiA9IGZtdC5mb3JtYXQobi5kb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgczIgPSBmbXQuZm9ybWF0KG4ubG9uZ1ZhbHVlKCkpOworICAgIAorICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgICBsb2dsbigvKm4uZ2V0U3RyaW5nKHRlbXApICsqLyAiIEY+ICIgKyBzMik7CisgICAgCisgICAgICAgIGlmIChTVFJJTkdfQ09NUEFSRSkgeworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIFNUUklORyBFUlJPUiBcIiIgKyBzICsgIlwiICE9IFwiIiArIHMyICsgIlwiIik7CisgICAgICAgICAgICAgICAgc2hvdyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKEVYQUNUX05VTUVSSUNfQ09NUEFSRSkgeworICAgICAgICAgICAgaWYgKHZhbHVlICE9IG4pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE5VTUVSSUMgRVJST1IiKTsKKyAgICAgICAgICAgICAgICBzaG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIENvbXB1dGUgcHJvcG9ydGlvbmFsIGVycm9yCisgICAgICAgICAgICBkb3VibGUgZXJyb3IgPSBwcm9wb3J0aW9uYWxFcnJvcih2YWx1ZSwgbik7CisgICAgCisgICAgICAgICAgICBpZiAoZXJyb3IgPiBNQVhfRVJST1IpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE5VTUVSSUMgRVJST1IgIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICBzaG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmIChlcnJvciA+IG1heF9udW1lcmljX2Vycm9yKQorICAgICAgICAgICAgICAgIG1heF9udW1lcmljX2Vycm9yID0gZXJyb3I7CisgICAgICAgICAgICBpZiAoZXJyb3IgPCBtaW5fbnVtZXJpY19lcnJvcikKKyAgICAgICAgICAgICAgICBtaW5fbnVtZXJpY19lcnJvciA9IGVycm9yOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChzaG93KQorICAgICAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAvKnZhbHVlLmdldFN0cmluZyh0ZW1wKSArKi8gdmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIEY+ICIgKyBzICsgIiBQPiAiICsKKyAgICAgICAgICAgIC8qbi5nZXRTdHJpbmcodGVtcCkgKyovIG4uZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIEY+ICIgKyBzMik7CisgICAgCisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgZG91YmxlIHByb3BvcnRpb25hbEVycm9yKE51bWJlciBhLCBOdW1iZXIgYikgeworICAgICAgICBkb3VibGUgYWEsYmI7CisgICAgICAgIAorICAgICAgICBpZihhLmdldENsYXNzKCkuZ2V0TmFtZSgpLmVxdWFsc0lnbm9yZUNhc2UoImphdmEubGFuZy5Eb3VibGUiKSkKKyAgICAgICAgICAgIGFhID0gYS5kb3VibGVWYWx1ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhYSA9IGEubG9uZ1ZhbHVlKCk7CisgICAgCisgICAgICAgIGlmKGEuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzSWdub3JlQ2FzZSgiamF2YS5sYW5nLkRvdWJsZSIpKQorICAgICAgICAgICAgYmIgPSBiLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJiID0gYi5sb25nVmFsdWUoKTsKKyAgICAKKyAgICAgICAgZG91YmxlIGVycm9yID0gYWEgLSBiYjsKKyAgICAgICAgaWYoYWEgIT0gMCAmJiBiYiAhPSAwKSAKKyAgICAgICAgICAgIGVycm9yIC89IGFhOworICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIE1hdGguYWJzKGVycm9yKTsKKyAgICB9ICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjNkN2E0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEuamF2YQpAQCAtMCwwICsxLDMwNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YSB7CisgICAgLy9nZXQgQ29udGVudAorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdW10gZ2V0Q29udGVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjb250ZW50OworICAgIH0KKworICAgIC8vTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUykKKyAgICBzdGF0aWMgYnl0ZVtdIGdlbmVyYWxJbnN0YW5jZSA9IG5ldyBieXRlW117IAorICAgICAgICAtODQsIC0xOSwgMCwgNSwgMTE1LCAxMTQsIDAsIDMwLCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgMTEsIC0xLCAKKyAgICAgICAgMywgOTgsIC00MCwgMTE0LCA0OCwgNTgsIDIsIDAsIDIyLCA5MCwgMCwgMjcsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgODMsIDEwNCwgMTExLCAxMTksIDExMCwgOTAsIAorICAgICAgICAwLCAyMywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDgzLCAxMDUsIDEwMywgMTEwLCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgCisgICAgICAgIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDczLCAwLCAxMSwgMTAyLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4NywgMTA1LCAxMDAsIDExNiwgMTA0LCA2NiwgCisgICAgICAgIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDY2LCAwLCAxMywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNTAsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNjksIDEyMCwgMTEyLCAxMTEsIAorICAgICAgICAxMTAsIDEwMSwgMTEwLCAxMTYsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDEwLCAxMDksIDExNywgMTA4LCAxMTYsIDEwNSwgMTEyLCAxMDgsIAorICAgICAgICAxMDUsIDEwMSwgMTE0LCA2NywgMCwgMywgMTEyLCA5NywgMTAwLCA3MywgMCwgMTEsIDExMiwgOTcsIDEwMCwgODAsIDExMSwgMTE1LCAxMDUsIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDczLCAwLCAxMiwgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDc3LCAxMTEsIDEwMCwgMTAxLCA3MywgMCwgCisgICAgICAgIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgCisgICAgICAgIDk3LCAxMDksIDkwLCAwLCAyMiwgMTE3LCAxMTUsIDEwMSwgNjksIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA3OCwgCisgICAgICAgIDExMSwgMTE2LCA5NywgMTE2LCAxMDUsIDExMSwgMTEwLCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExNiwgMCwgMTgsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA4LCA5NywgMTEwLCAxMDMsIDQ3LCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDUsIDExMCwgMTAzLCA1OSwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgMTE2LCAxMDUsIAorICAgICAgICAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgCisgICAgICAgIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE2LCAxMTIsIDExMSwgCisgICAgICAgIDExNSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCAxNiwgMTEyLCAxMTEsIDExNSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIAorICAgICAgICAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgCisgICAgICAgIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgCisgICAgICAgIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE3LCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzMsIDExMCwgCisgICAgICAgIDk5LCAxMTQsIDEwMSwgMTA5LCAxMDEsIDExMCwgMTE2LCAxMTYsIDAsIDIyLCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOSwgOTcsIDExNiwgMTA0LCAKKyAgICAgICAgNDcsIDY2LCAxMDUsIDEwMywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA1OSwgNzYsIDAsIDcsIDExNSwgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgMTE2LCAwLCAzOSwgNzYsIDk5LCAxMTEsIDEwOSwgNDcsIDEwNSwgOTgsIDEwOSwgNDcsIDEwNSwgOTksIDExNywgNDcsIDExNiwgMTAxLCAKKyAgICAgICAgMTIwLCAxMTYsIDQ3LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAKKyAgICAgICAgMTExLCAxMDgsIDExNSwgNTksIDEyMCwgMTE0LCAwLCAyOSwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDc4LCAxMTcsIDEwOSwgOTgsIDEwMSwgMTE0LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTMzLCAtMTAsIC03NywgCisgICAgICAgIC02NSwgMTksIDEyNSwgNywgLTI0LCAzLCAwLCAxMSwgOTAsIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODUsIAorICAgICAgICAxMTUsIDEwMSwgMTAwLCA2NiwgMCwgMTcsIDEwOSwgOTcsIDEyMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgCisgICAgICAgIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCA5NywgMTIwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIAorICAgICAgICA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAKKyAgICAgICAgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgMTA1LCAxMTAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIAorICAgICAgICAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgCisgICAgICAgIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIAorICAgICAgICAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgOTAsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE0LCAxMTUsIDEwMSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDc5LCAxMTAsIDEwOCwgMTIxLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIAorICAgICAgICAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgMTIwLCAxMTQsIAorICAgICAgICAwLCAxNiwgMTA2LCA5NywgMTE4LCA5NywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtNSwgLTQwLCAKKyAgICAgICAgLTY4LCAxOCwgLTIzLCAxNSwgMjQsIDY3LCAyLCAwLCAwLCAxMjAsIDExMiwgMSwgMywgMTI3LCAwLCAwLCAwLCAzLCAwLCAwLCAKKyAgICAgICAgMSwgNTMsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDEyMCwgMCwgMCwgCisgICAgICAgIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgNiwgMCwgMCwgMCwgMiwgMCwgMTE2LCAwLCAxLCA0NSwgMTE2LCAwLCAwLCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIDAsIAorICAgICAgICAxMTYsIDAsIDAsIDExNiwgMCwgMCwgMTE2LCAwLCAwLCAxMTYsIDAsIDAsIDExMiwgMTE1LCAxMTQsIDAsIDM3LCA5OSwgMTExLCAxMDksIAorICAgICAgICA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgCisgICAgICAgIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgMTA4LCAxMTUsIDgwLCAyOSwgMjMsIC0xMDMsIDgsIDEwNCwgCisgICAgICAgIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgCisgICAgICAgIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIDY3LCAwLCAxMSwgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIAorICAgICAgICAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDEsIDExMiwgCisgICAgICAgIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCA2NywgMCwgCisgICAgICAgIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgCisgICAgICAgIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIDE2LCAxMTIsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgCisgICAgICAgIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA3NywgMTA1LCAxMDgsIDEwOCwgNjcsIAorICAgICAgICAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIDExMiwgMTA4LCAxMTcsIDExNSwgODMsIDEwNSwgMTAzLCAxMTAsIAorICAgICAgICA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIAorICAgICAgICAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgNzYsIDAsIDMsIDc4LCAKKyAgICAgICAgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAxMTQsIDExNCwgMTAxLCAxMTAsIDk5LCAxMjEsIDgzLCAxMjEsIAorICAgICAgICAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIAorICAgICAgICA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDgsIDEwNSwgMTEwLCAxMDIsIAorICAgICAgICAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxOCwgMTA1LCAxMTAsIDExNiwgMTA4LCA2NywgMTE3LCAxMTQsIAorICAgICAgICAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDEyMCwgMTEyLCAwLCA0NiwgCisgICAgICAgIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgMCwgNTksIDMyLCA0OCwgMCwgMzcsIDAsIDQzLCAKKyAgICAgICAgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgMTE2LCAwLCAxLCAzNiwgMTE2LCAwLCAxLCA2OSwgCisgICAgICAgIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgfTsKKworICAgIC8vTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKQorICAgIHN0YXRpYyBieXRlW10gY3VycmVuY3lJbnN0YW5jZSA9IG5ldyBieXRlW117IAorICAgICAgICAtODQsIC0xOSwgMCwgNSwgMTE1LCAxMTQsIDAsIDMwLCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgMTEsIC0xLCAKKyAgICAgICAgMywgOTgsIC00MCwgMTE0LCA0OCwgNTgsIDIsIDAsIDIyLCA5MCwgMCwgMjcsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgODMsIDEwNCwgMTExLCAxMTksIDExMCwgOTAsIAorICAgICAgICAwLCAyMywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDgzLCAxMDUsIDEwMywgMTEwLCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgCisgICAgICAgIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDczLCAwLCAxMSwgMTAyLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4NywgMTA1LCAxMDAsIDExNiwgMTA0LCA2NiwgCisgICAgICAgIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDY2LCAwLCAxMywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNTAsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNjksIDEyMCwgMTEyLCAxMTEsIAorICAgICAgICAxMTAsIDEwMSwgMTEwLCAxMTYsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDEwLCAxMDksIDExNywgMTA4LCAxMTYsIDEwNSwgMTEyLCAxMDgsIAorICAgICAgICAxMDUsIDEwMSwgMTE0LCA2NywgMCwgMywgMTEyLCA5NywgMTAwLCA3MywgMCwgMTEsIDExMiwgOTcsIDEwMCwgODAsIDExMSwgMTE1LCAxMDUsIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDczLCAwLCAxMiwgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDc3LCAxMTEsIDEwMCwgMTAxLCA3MywgMCwgCisgICAgICAgIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgCisgICAgICAgIDk3LCAxMDksIDkwLCAwLCAyMiwgMTE3LCAxMTUsIDEwMSwgNjksIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA3OCwgCisgICAgICAgIDExMSwgMTE2LCA5NywgMTE2LCAxMDUsIDExMSwgMTEwLCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExNiwgMCwgMTgsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA4LCA5NywgMTEwLCAxMDMsIDQ3LCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDUsIDExMCwgMTAzLCA1OSwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgMTE2LCAxMDUsIAorICAgICAgICAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgCisgICAgICAgIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE2LCAxMTIsIDExMSwgCisgICAgICAgIDExNSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCAxNiwgMTEyLCAxMTEsIDExNSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIAorICAgICAgICAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgCisgICAgICAgIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgCisgICAgICAgIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE3LCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzMsIDExMCwgCisgICAgICAgIDk5LCAxMTQsIDEwMSwgMTA5LCAxMDEsIDExMCwgMTE2LCAxMTYsIDAsIDIyLCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOSwgOTcsIDExNiwgMTA0LCAKKyAgICAgICAgNDcsIDY2LCAxMDUsIDEwMywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA1OSwgNzYsIDAsIDcsIDExNSwgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgMTE2LCAwLCAzOSwgNzYsIDk5LCAxMTEsIDEwOSwgNDcsIDEwNSwgOTgsIDEwOSwgNDcsIDEwNSwgOTksIDExNywgNDcsIDExNiwgMTAxLCAKKyAgICAgICAgMTIwLCAxMTYsIDQ3LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAKKyAgICAgICAgMTExLCAxMDgsIDExNSwgNTksIDEyMCwgMTE0LCAwLCAyOSwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDc4LCAxMTcsIDEwOSwgOTgsIDEwMSwgMTE0LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTMzLCAtMTAsIC03NywgCisgICAgICAgIC02NSwgMTksIDEyNSwgNywgLTI0LCAzLCAwLCAxMSwgOTAsIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODUsIAorICAgICAgICAxMTUsIDEwMSwgMTAwLCA2NiwgMCwgMTcsIDEwOSwgOTcsIDEyMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgCisgICAgICAgIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCA5NywgMTIwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIAorICAgICAgICA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAKKyAgICAgICAgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgMTA1LCAxMTAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIAorICAgICAgICAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgCisgICAgICAgIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIAorICAgICAgICAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgOTAsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE0LCAxMTUsIDEwMSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDc5LCAxMTAsIDEwOCwgMTIxLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIAorICAgICAgICAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgMTIwLCAxMTQsIAorICAgICAgICAwLCAxNiwgMTA2LCA5NywgMTE4LCA5NywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtNSwgLTQwLCAKKyAgICAgICAgLTY4LCAxOCwgLTIzLCAxNSwgMjQsIDY3LCAyLCAwLCAwLCAxMjAsIDExMiwgMSwgMiwgMTI3LCAwLCAwLCAwLCAyLCAwLCAwLCAKKyAgICAgICAgMSwgNTMsIDIsIDEsIDAsIDAsIDAsIDIsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDEyMCwgMCwgMCwgCisgICAgICAgIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgNiwgMCwgMCwgMCwgMiwgMCwgMTE2LCAwLCAzLCA0MCwgLTYyLCAtOTIsIDExNiwgMCwgMSwgNDEsIDExNiwgMCwgMiwgNDAsIAorICAgICAgICAzNiwgMTE2LCAwLCAxLCA0MSwgMTE2LCAwLCAyLCAtNjIsIC05MiwgMTE2LCAwLCAwLCAxMTYsIDAsIDEsIDM2LCAxMTYsIDAsIDAsIAorICAgICAgICAxMTIsIDExNSwgMTE0LCAwLCAzNywgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgCisgICAgICAgIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgCisgICAgICAgIDEwOCwgMTE1LCA4MCwgMjksIDIzLCAtMTAzLCA4LCAxMDQsIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAKKyAgICAgICAgMTA5LCA5NywgMTA4LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIAorICAgICAgICA2NywgMCwgMTEsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgCisgICAgICAgIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNjcsIDAsIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIAorICAgICAgICA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIAorICAgICAgICAxNiwgMTEyLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAKKyAgICAgICAgMTEyLCAxMDEsIDExNCwgNzcsIDEwNSwgMTA4LCAxMDgsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIAorICAgICAgICAxMTIsIDEwOCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAKKyAgICAgICAgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIAorICAgICAgICAxMDUsIDEwMywgMTA1LCAxMTYsIDc2LCAwLCAzLCA3OCwgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAKKyAgICAgICAgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgCisgICAgICAgIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgCisgICAgICAgIDAsIDEsIDc2LCAwLCA4LCAxMDUsIDExMCwgMTAyLCAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAKKyAgICAgICAgMTgsIDEwNSwgMTEwLCAxMTYsIDEwOCwgNjcsIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAKKyAgICAgICAgMCwgMTI2LCAwLCAxLCAxMjAsIDExMiwgMCwgNDYsIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgCisgICAgICAgIDAsIDU5LCAzMiwgNDgsIDAsIDM3LCAwLCA0MywgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgCisgICAgICAgIDExNiwgMCwgMSwgMzYsIDExNiwgMCwgMSwgNjksIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgICAgIAorICAgIH07CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLlVTKQorICAgIHN0YXRpYyBieXRlW10gcGVyY2VudEluc3RhbmNlID0gbmV3IGJ5dGVbXXsgCisgICAgICAgIC04NCwgLTE5LCAwLCA1LCAxMTUsIDExNCwgMCwgMzAsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAxMSwgLTEsIAorICAgICAgICAzLCA5OCwgLTQwLCAxMTQsIDQ4LCA1OCwgMiwgMCwgMjIsIDkwLCAwLCAyNywgMTAwLCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgODMsIAorICAgICAgICAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA5MCwgCisgICAgICAgIDAsIDIzLCAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwNSwgMTAzLCAxMTAsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCAKKyAgICAgICAgODMsIDEwNCwgMTExLCAxMTksIDExMCwgNzMsIDAsIDExLCAxMDIsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDg3LCAxMDUsIDEwMCwgMTE2LCAxMDQsIDY2LCAKKyAgICAgICAgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNjYsIDAsIDEzLCAxMDMsIDExNCwgMTExLCAKKyAgICAgICAgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA1MCwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA2OSwgMTIwLCAxMTIsIDExMSwgCisgICAgICAgIDExMCwgMTAxLCAxMTAsIDExNiwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMTAsIDEwOSwgMTE3LCAxMDgsIDExNiwgMTA1LCAxMTIsIDEwOCwgCisgICAgICAgIDEwNSwgMTAxLCAxMTQsIDY3LCAwLCAzLCAxMTIsIDk3LCAxMDAsIDczLCAwLCAxMSwgMTEyLCA5NywgMTAwLCA4MCwgMTExLCAxMTUsIDEwNSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNzMsIDAsIDEyLCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzcsIDExMSwgMTAwLCAxMDEsIDczLCAwLCAKKyAgICAgICAgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCAKKyAgICAgICAgOTcsIDEwOSwgOTAsIDAsIDIyLCAxMTcsIDExNSwgMTAxLCA2OSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDc4LCAKKyAgICAgICAgMTExLCAxMTYsIDk3LCAxMTYsIDEwNSwgMTExLCAxMTAsIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTE2LCAwLCAxOCwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDgsIDk3LCAxMTAsIDEwMywgNDcsIAorICAgICAgICA4MywgMTE2LCAxMTQsIDEwNSwgMTEwLCAxMDMsIDU5LCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAxMTYsIDEwNSwgCisgICAgICAgIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAKKyAgICAgICAgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTYsIDExMiwgMTExLCAKKyAgICAgICAgMTE1LCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgCisgICAgICAgIDAsIDE2LCAxMTIsIDExMSwgMTE1LCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgCisgICAgICAgIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAKKyAgICAgICAgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAKKyAgICAgICAgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3MywgMTEwLCAKKyAgICAgICAgOTksIDExNCwgMTAxLCAxMDksIDEwMSwgMTEwLCAxMTYsIDExNiwgMCwgMjIsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA5LCA5NywgMTE2LCAxMDQsIAorICAgICAgICA0NywgNjYsIDEwNSwgMTAzLCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDU5LCA3NiwgMCwgNywgMTE1LCAxMjEsIDEwOSwgOTgsIDExMSwgCisgICAgICAgIDEwOCwgMTE1LCAxMTYsIDAsIDM5LCA3NiwgOTksIDExMSwgMTA5LCA0NywgMTA1LCA5OCwgMTA5LCA0NywgMTA1LCA5OSwgMTE3LCA0NywgMTE2LCAxMDEsIAorICAgICAgICAxMjAsIDExNiwgNDcsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIAorICAgICAgICAxMTEsIDEwOCwgMTE1LCA1OSwgMTIwLCAxMTQsIDAsIDI5LCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzgsIDExNywgMTA5LCA5OCwgMTAxLCAxMTQsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtMzMsIC0xMCwgLTc3LCAKKyAgICAgICAgLTY1LCAxOSwgMTI1LCA3LCAtMjQsIDMsIDAsIDExLCA5MCwgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4NSwgCisgICAgICAgIDExNSwgMTAxLCAxMDAsIDY2LCAwLCAxNywgMTA5LCA5NywgMTIwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAKKyAgICAgICAgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDk3LCAxMjAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgCisgICAgICAgIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgCisgICAgICAgIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIAorICAgICAgICAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCAxMDUsIDExMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgCisgICAgICAgIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCAKKyAgICAgICAgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgCisgICAgICAgIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA5MCwgMCwgMTYsIDExMiwgOTcsIAorICAgICAgICAxMTQsIDExNSwgMTAxLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNzksIDExMCwgMTA4LCAxMjEsIDczLCAwLCAyMSwgMTE1LCAxMDEsIDExNCwgCisgICAgICAgIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCA5NywgMTA5LCAxMjAsIDExNCwgCisgICAgICAgIDAsIDE2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC01LCAtNDAsIAorICAgICAgICAtNjgsIDE4LCAtMjMsIDE1LCAyNCwgNjcsIDIsIDAsIDAsIDEyMCwgMTEyLCAxLCAwLCAxMjcsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICAxLCA1MywgMCwgMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSwgMTIwLCAwLCAwLCAKKyAgICAgICAgMCwgMCwgMCwgMCwgMywgMCwgMCwgMCwgMCwgMCwgMTAwLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDAsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMSwgMzcsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgCisgICAgICAgIDEsIDM3LCAxMTYsIDAsIDAsIDExMywgMCwgMTI2LCAwLCA4LCAxMTYsIDAsIDAsIDExNiwgMCwgMSwgMzcsIDExMiwgMTE1LCAxMTQsIAorICAgICAgICAwLCAzNywgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIAorICAgICAgICAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgMTA4LCAxMTUsIDgwLCAKKyAgICAgICAgMjksIDIzLCAtMTAzLCA4LCAxMDQsIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIAorICAgICAgICA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIDY3LCAwLCAxMSwgCisgICAgICAgIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgCisgICAgICAgIDExMCwgMTAzLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgMTE3LCAxMTUsIDgzLCAKKyAgICAgICAgMTA1LCAxMDMsIDExMCwgNjcsIDAsIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAKKyAgICAgICAgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCAKKyAgICAgICAgNzcsIDEwNSwgMTA4LCAxMDgsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIDExMiwgMTA4LCAxMTcsIAorICAgICAgICAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAKKyAgICAgICAgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDc2LCAwLCAzLCA3OCwgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAxMTQsIDExNCwgMTAxLCAKKyAgICAgICAgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTAxLCAxMjAsIDExMiwgCisgICAgICAgIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCA4LCAxMDUsIDExMCwgMTAyLCAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxOCwgMTA1LCAxMTAsIAorICAgICAgICAxMTYsIDEwOCwgNjcsIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIAorICAgICAgICAxLCAxMjAsIDExMiwgMCwgNDYsIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgMCwgNTksIDMyLCAKKyAgICAgICAgNDgsIDAsIDM3LCAwLCA0MywgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgMTE2LCAwLCAxLCAKKyAgICAgICAgMzYsIDExNiwgMCwgMSwgNjksIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgfTsKKworICAgIC8vTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpCisgICAgc3RhdGljIGJ5dGVbXSBzY2llbnRpZmljSW5zdGFuY2UgPSBuZXcgYnl0ZVtdeyAKKyAgICAgICAgLTg0LCAtMTksIDAsIDUsIDExNSwgMTE0LCAwLCAzMCwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDExLCAtMSwgCisgICAgICAgIDMsIDk4LCAtNDAsIDExNCwgNDgsIDU4LCAyLCAwLCAyMiwgOTAsIDAsIDI3LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDkwLCAKKyAgICAgICAgMCwgMjMsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTA1LCAxMDMsIDExMCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIAorICAgICAgICA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA3MywgMCwgMTEsIDEwMiwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODcsIDEwNSwgMTAwLCAxMTYsIDEwNCwgNjYsIAorICAgICAgICAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA2NiwgMCwgMTMsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDUwLCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDY5LCAxMjAsIDExMiwgMTExLCAKKyAgICAgICAgMTEwLCAxMDEsIDExMCwgMTE2LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAxMCwgMTA5LCAxMTcsIDEwOCwgMTE2LCAxMDUsIDExMiwgMTA4LCAKKyAgICAgICAgMTA1LCAxMDEsIDExNCwgNjcsIDAsIDMsIDExMiwgOTcsIDEwMCwgNzMsIDAsIDExLCAxMTIsIDk3LCAxMDAsIDgwLCAxMTEsIDExNSwgMTA1LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA3MywgMCwgMTIsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3NywgMTExLCAxMDAsIDEwMSwgNzMsIDAsIAorICAgICAgICAyMSwgMTE1LCAxMDEsIDExNCwgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIAorICAgICAgICA5NywgMTA5LCA5MCwgMCwgMjIsIDExNywgMTE1LCAxMDEsIDY5LCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDEwNSwgOTcsIDEwOCwgNzgsIAorICAgICAgICAxMTEsIDExNiwgOTcsIDExNiwgMTA1LCAxMTEsIDExMCwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTYsIDAsIDE4LCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOCwgOTcsIDExMCwgMTAzLCA0NywgCisgICAgICAgIDgzLCAxMTYsIDExNCwgMTA1LCAxMTAsIDEwMywgNTksIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIDExNiwgMTA1LCAKKyAgICAgICAgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIAorICAgICAgICAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNiwgMTEyLCAxMTEsIAorICAgICAgICAxMTUsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgMTYsIDExMiwgMTExLCAxMTUsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAKKyAgICAgICAgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIAorICAgICAgICAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIAorICAgICAgICAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDczLCAxMTAsIAorICAgICAgICA5OSwgMTE0LCAxMDEsIDEwOSwgMTAxLCAxMTAsIDExNiwgMTE2LCAwLCAyMiwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDksIDk3LCAxMTYsIDEwNCwgCisgICAgICAgIDQ3LCA2NiwgMTA1LCAxMDMsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNTksIDc2LCAwLCA3LCAxMTUsIDEyMSwgMTA5LCA5OCwgMTExLCAKKyAgICAgICAgMTA4LCAxMTUsIDExNiwgMCwgMzksIDc2LCA5OSwgMTExLCAxMDksIDQ3LCAxMDUsIDk4LCAxMDksIDQ3LCAxMDUsIDk5LCAxMTcsIDQ3LCAxMTYsIDEwMSwgCisgICAgICAgIDEyMCwgMTE2LCA0NywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODMsIDEyMSwgMTA5LCA5OCwgCisgICAgICAgIDExMSwgMTA4LCAxMTUsIDU5LCAxMjAsIDExNCwgMCwgMjksIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3OCwgMTE3LCAxMDksIDk4LCAxMDEsIDExNCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC0zMywgLTEwLCAtNzcsIAorICAgICAgICAtNjUsIDE5LCAxMjUsIDcsIC0yNCwgMywgMCwgMTEsIDkwLCAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDg1LCAKKyAgICAgICAgMTE1LCAxMDEsIDEwMCwgNjYsIDAsIDE3LCAxMDksIDk3LCAxMjAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIAorICAgICAgICAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgOTcsIDEyMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCAKKyAgICAgICAgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgCisgICAgICAgIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDEwNSwgMTEwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAKKyAgICAgICAgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIAorICAgICAgICA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAKKyAgICAgICAgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDkwLCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNCwgMTE1LCAxMDEsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA3OSwgMTEwLCAxMDgsIDEyMSwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAKKyAgICAgICAgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDEyMCwgMTE0LCAKKyAgICAgICAgMCwgMTYsIDEwNiwgOTcsIDExOCwgOTcsIDQ2LCAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTUsIC00MCwgCisgICAgICAgIC02OCwgMTgsIC0yMywgMTUsIDI0LCA2NywgMiwgMCwgMCwgMTIwLCAxMTIsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAxMjAsIDAsIDAsIAorICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAxLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDEsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMCwgMTE2LCAwLCAxLCA0NSwgMTE2LCAwLCAwLCAKKyAgICAgICAgMTE2LCAwLCAwLCAxMTMsIDAsIDEyNiwgMCwgOCwgMTE2LCAwLCAwLCAxMTYsIDAsIDAsIDExMiwgMTE1LCAxMTQsIDAsIDM3LCA5OSwgCisgICAgICAgIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgCisgICAgICAgIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgMTA4LCAxMTUsIDgwLCAyOSwgMjMsIC0xMDMsIAorICAgICAgICA4LCAxMDQsIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAxMDEsIDExMiwgCisgICAgICAgIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIDY3LCAwLCAxMSwgMTAxLCAxMjAsIDExMiwgCisgICAgICAgIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCAKKyAgICAgICAgNjcsIDAsIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAKKyAgICAgICAgNjcsIDAsIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIDE2LCAxMTIsIDk3LCAxMTYsIDExNiwgMTAxLCAKKyAgICAgICAgMTE0LCAxMTAsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA3NywgMTA1LCAxMDgsIAorICAgICAgICAxMDgsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIDExMiwgMTA4LCAxMTcsIDExNSwgODMsIDEwNSwgCisgICAgICAgIDEwMywgMTEwLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIAorICAgICAgICA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgNzYsIDAsIAorICAgICAgICAzLCA3OCwgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAxMTQsIDExNCwgMTAxLCAxMTAsIDk5LCAxMjEsIAorICAgICAgICA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgCisgICAgICAgIDExMCwgMTE2LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDgsIDEwNSwgCisgICAgICAgIDExMCwgMTAyLCAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxOCwgMTA1LCAxMTAsIDExNiwgMTA4LCA2NywgCisgICAgICAgIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDEyMCwgMTEyLCAKKyAgICAgICAgMCwgNDYsIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgMCwgNTksIDMyLCA0OCwgMCwgMzcsIAorICAgICAgICAwLCA0MywgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgMTE2LCAwLCAxLCAzNiwgMTE2LCAwLCAKKyAgICAgICAgMSwgNjksIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgfTsKKworICAgIGZpbmFsIHN0YXRpYyBieXRlW11bXSBjb250ZW50ID0ge2dlbmVyYWxJbnN0YW5jZSwgY3VycmVuY3lJbnN0YW5jZSwgcGVyY2VudEluc3RhbmNlLCBzY2llbnRpZmljSW5zdGFuY2V9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzZlYTU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSwxNzQ4IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogTnVtYmVyRm9ybWF0VGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvbnVtZm10c3QuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLmRhdGEuUmVzb3VyY2VSZWFkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5kYXRhLlRva2VuSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworCitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKKworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFVVJPID0gJ1x1MjBhYyc7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE51bWJlckZvcm1hdFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vIFRlc3QgdmFyaW91cyBwYXR0ZXJucworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJucygpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIGZpbmFsIFN0cmluZyBwYXRbXSAgICA9IHsgIiMuIyIsICIjLiIsICIuIyIsICIjIiB9OworICAgICAgICBpbnQgcGF0X2xlbmd0aCA9IHBhdC5sZW5ndGg7CisgICAgICAgIGZpbmFsIFN0cmluZyBuZXdwYXRbXSA9IHsgIiMwLiMiLCAiIzAuIiwgIiMuMCIsICIjIiB9OworICAgICAgICBmaW5hbCBTdHJpbmcgbnVtW10gICAgPSB7ICIwIiwgICAiMC4iLCAiLjAiLCAiMCIgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdF9sZW5ndGg7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXRbaV0sIHN5bSk7CisgICAgICAgICAgICBTdHJpbmcgbmV3cCA9IGZtdC50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgIGlmICghbmV3cC5lcXVhbHMobmV3cGF0W2ldKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGF0dGVybiAiICsgcGF0W2ldICsgIiBzaG91bGQgdHJhbnNtdXRlIHRvICIgKyBuZXdwYXRbaV0gKworICAgICAgICAgICAgICAgICAgICAgICI7ICIgKyBuZXdwICsgIiBzZWVuIGluc3RlYWQiKTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZyBzID0gKChOdW1iZXJGb3JtYXQpZm10KS5mb3JtYXQoMCk7CisgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKG51bVtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhdHRlcm4gIiArIHBhdFtpXSArICIgc2hvdWxkIGZvcm1hdCB6ZXJvIGFzICIgKyBudW1baV0gKworICAgICAgICAgICAgICAgICAgICAgICI7ICIgKyBzICsgIiBzZWVuIGluc3RlYWQiKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiTWluIGludGVnZXIgZGlnaXRzID0gIiArIGZtdC5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IGV4cG9uZW50aWFsIHBhdHRlcm4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwb25lbnRpYWwoKSB7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0W10gPSB7ICIwLiMjIyNFMCIsICIwMC4wMDBFMDAiLCAiIyMwLiMjIyMjI0UwMDAiLCAiMC4jIyNFMDtbMC4jIyNFMF0iIH07CisgICAgICAgIGludCBwYXRfbGVuZ3RoID0gcGF0Lmxlbmd0aDsKKyAgICAKKyAgICAgICAgZG91YmxlIHZhbFtdID0geyAwLjAxMjM0LCAxMjM0NTY3ODksIDEuMjNlMzAwLCAtMy4xNDE1OTI2NTNlLTI3MSB9OworICAgICAgICBpbnQgdmFsX2xlbmd0aCA9IHZhbC5sZW5ndGg7CisgICAgICAgIGZpbmFsIFN0cmluZyB2YWxGb3JtYXRbXSA9IHsKKyAgICAgICAgICAgIC8vIDAuIyMjI0UwCisgICAgICAgICAgICAiMS4yMzRFLTIiLCAiMS4yMzQ2RTgiLCAiMS4yM0UzMDAiLCAiLTMuMTQxNkUtMjcxIiwKKyAgICAgICAgICAgIC8vIDAwLjAwMEUwMAorICAgICAgICAgICAgIjEyLjM0MEUtMDMiLCAiMTIuMzQ2RTA3IiwgIjEyLjMwMEUyOTkiLCAiLTMxLjQxNkUtMjcyIiwKKyAgICAgICAgICAgIC8vICMjMC4jIyMjIyNFMDAwCisgICAgICAgICAgICAiMTIuMzRFLTAwMyIsICIxMjMuNDU2OEUwMDYiLCAiMS4yM0UzMDAiLCAiLTMxNC4xNTkzRS0yNzMiLAorICAgICAgICAgICAgLy8gMC4jIyNFMDtbMC4jIyNFMF0KKyAgICAgICAgICAgICIxLjIzNEUtMiIsICIxLjIzNUU4IiwgIjEuMjNFMzAwIiwgIlszLjE0MkUtMjcxXSIgfTsKKyAgICAgICAgLypkb3VibGUgdmFsUGFyc2VbXSA9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgMC4wMTIzNCwgMTIzNDYwMDAwLCAxLjIzRTMwMCwgLTMuMTQxNkUtMjcxLAorICAgICAgICAgICAgICAgIDAuMDEyMzQsIDEyMzQ2MDAwMCwgMS4yM0UzMDAsIC0zLjE0MTZFLTI3MSwKKyAgICAgICAgICAgICAgICAwLjAxMjM0LCAxMjM0NTY4MDAsIDEuMjNFMzAwLCAtMy4xNDE1OTNFLTI3MSwKKyAgICAgICAgICAgICAgICAwLjAxMjM0LCAxMjM1MDAwMDAsIDEuMjNFMzAwLCAtMy4xNDJFLTI3MSwKKyAgICAgICAgICAgIH07Ki8gLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgIAorICAgICAgICBpbnQgbHZhbFtdID0geyAwLCAtMSwgMSwgMTIzNDU2Nzg5IH07CisgICAgICAgIGludCBsdmFsX2xlbmd0aCA9IGx2YWwubGVuZ3RoOworICAgICAgICBmaW5hbCBTdHJpbmcgbHZhbEZvcm1hdFtdID0geworICAgICAgICAgICAgLy8gMC4jIyMjRTAKKyAgICAgICAgICAgICIwRTAiLCAiLTFFMCIsICIxRTAiLCAiMS4yMzQ2RTgiLAorICAgICAgICAgICAgLy8gMDAuMDAwRTAwCisgICAgICAgICAgICAiMDAuMDAwRTAwIiwgIi0xMC4wMDBFLTAxIiwgIjEwLjAwMEUtMDEiLCAiMTIuMzQ2RTA3IiwKKyAgICAgICAgICAgIC8vICMjMC4jIyMjIyNFMDAwCisgICAgICAgICAgICAiMEUwMDAiLCAiLTFFMDAwIiwgIjFFMDAwIiwgIjEyMy40NTY4RTAwNiIsCisgICAgICAgICAgICAvLyAwLiMjI0UwO1swLiMjI0UwXQorICAgICAgICAgICAgIjBFMCIsICJbMUUwXSIsICIxRTAiLCAiMS4yMzVFOCIgfTsKKyAgICAgICAgaW50IGx2YWxQYXJzZVtdID0gCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzQ2MDAwMCwgCisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzQ2MDAwMCwgCisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzQ1NjgwMCwgCisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzUwMDAwMCwgCisgICAgICAgICAgICB9OworICAgICAgICBpbnQgaXZhbCA9IDAsIGlsdmFsID0gMDsKKyAgICAgICAgZm9yIChpbnQgcCA9IDA7IHAgPCBwYXRfbGVuZ3RoOyArK3ApIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0W3BdLCBzeW0pOworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm4gXCIiICsgcGF0W3BdICsgIlwiIC10b1BhdHRlcm4tPiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgICAgIGludCB2OworICAgICAgICAgICAgZm9yICh2ID0gMDsgdiA8IHZhbF9sZW5ndGg7ICsrdikgeworICAgICAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQodmFsW3ZdKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiICIgKyB2YWxbdl0gKyAiIC1mb3JtYXQtPiAiICsgcyk7CisgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyh2YWxGb3JtYXRbdiArIGl2YWxdKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyB2YWxGb3JtYXRbdiArIGl2YWxdKTsKKyAgICAKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgIGRvdWJsZSBhID0gZm10LnBhcnNlKHMsIHBvcykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiICAtcGFyc2UtPiAiICsgRG91YmxlLnRvU3RyaW5nKGEpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGVwc2lsb24gY29tcGFyaXNvbiBhcyBuZWNlc3NhcnkKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhcnRpYWwgcGFyc2UgKCIgKyBwb3MuZ2V0SW5kZXgoKSArICIgY2hhcnMpIC0+ICIgKyBhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodiA9IDA7IHYgPCBsdmFsX2xlbmd0aDsgKyt2KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHM7CisgICAgICAgICAgICAgICAgcyA9ICgoTnVtYmVyRm9ybWF0KSBmbXQpLmZvcm1hdChsdmFsW3ZdKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiICIgKyBsdmFsW3ZdICsgIkwgLWZvcm1hdC0+ICIgKyBzKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKGx2YWxGb3JtYXRbdiArIGlsdmFsXSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRXhwZWN0ZWQgIiArIGx2YWxGb3JtYXRbdiArIGlsdmFsXSArICIgR290OiAiICsgcyk7CisgICAgCisgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICBsb25nIGEgPSAwOworICAgICAgICAgICAgICAgIE51bWJlciBBID0gZm10LnBhcnNlKHMsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKEEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhID0gQS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgIC1wYXJzZS0+ICIgKyBhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhICE9IGx2YWxQYXJzZVt2ICsgaWx2YWxdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgbHZhbFBhcnNlW3YgKyBpbHZhbF0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXJ0aWFsIHBhcnNlICgiICsgcG9zLmdldEluZGV4KCkgKyAiIGNoYXJzKSAtPiAiICsgTG9uZy50b1N0cmluZyhhKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gcGFyc2UgdGhlIHN0cmluZzogIiArIHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGl2YWwgKz0gdmFsX2xlbmd0aDsKKyAgICAgICAgICAgIGlsdmFsICs9IGx2YWxfbGVuZ3RoOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgaGFuZGxpbmcgb2YgcXVvdGVzCisgICAgcHVibGljIHZvaWQgVGVzdFF1b3RlcygpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHBhdDsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIHBhdCA9IG5ldyBTdHJpbmdCdWZmZXIoImEnZm8nJ28nYiMiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgU3RyaW5nIHMgPSAoKE51bWJlckZvcm1hdClmbXQpLmZvcm1hdCgxMjMpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgMTIzIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCJhZm8nb2IxMjMiKSkgCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYWZvJ29iMTIzIik7CisgICAgICAgIAorICAgICAgICBzID0iIjsKKyAgICAgICAgcGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigiYScnYiMiKTsKKyAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LnRvU3RyaW5nKCksIHN5bSk7CisgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdClmbXQpLmZvcm1hdCgxMjMpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgMTIzIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCJhJ2IxMjMiKSkgCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYSdiMTIzIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQYXJzZUN1cnJlbmN5VHJhaWxpbmdTeW1ib2woKSB7CisgICAgICAgIC8vIHNlZSBzdW4gYnVnIDQ3MDk4NDAKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgZmxvYXQgdmFsID0gMTIzNDUuNjdmOworICAgICAgICBTdHJpbmcgc3RyID0gZm10LmZvcm1hdCh2YWwpOworICAgICAgICBsb2dsbigidmFsOiAiICsgdmFsICsgIiBzdHI6ICIgKyBzdHIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4oIm51bTogIiArIG51bSk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJwYXJzZSBvZiAnIiArIHN0ciArICInIHRocmV3IGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2YgdGhlIGN1cnJlbmN5IHN5bWJvbCBpbiBwYXR0ZXJucy4KKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5U2lnbigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgY2hhciBjdXJyZW5jeSA9IDB4MDBBNDsKKyAgICAgICAgLy8gIlx4QTQjLCMjMC4wMDstXHhBNCMsIyMwLjAwIgorICAgICAgICBwYXQuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoIiMsIyMwLjAwOy0iKS5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZCgiIywjIzAuMDAiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgU3RyaW5nIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQoMTIzNC41Nik7CisgICAgICAgIHBhdCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIDEyMzQuNTYgKyAiIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCIkMSwyMzQuNTYiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAkMSwyMzQuNTYiKTsKKyAgICAgICAgcyA9ICIiOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KC0xMjM0LjU2KTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIERvdWJsZS50b1N0cmluZygtMTIzNC41NikgKyAiIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCItJDEsMjM0LjU2IikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgLSQxLDIzNC41NiIpOworICAgIAorICAgICAgICBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgLy8gIlx4QTRceEE0ICMsIyMwLjAwO1x4QTRceEE0IC0jLCMjMC4wMCIKKyAgICAgICAgcGF0LmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoIiAjLCMjMC4wMDsiKS5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKCIgLSMsIyMwLjAwIik7IAorICAgICAgICBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgcyA9ICIiOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KDEyMzQuNTYpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIERvdWJsZS50b1N0cmluZygxMjM0LjU2KSArICIgLiAiICsgcyk7CisgICAgCisgICAgICAgIGlmICghcy5lcXVhbHMoIlVTRCAxLDIzNC41NiIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIFVTRCAxLDIzNC41NiIpOworICAgICAgICBzID0gIiI7CisgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQoLTEyMzQuNTYpOworICAgICAgICBsb2dsbigiIEZvcm1hdCAiICsgRG91YmxlLnRvU3RyaW5nKC0xMjM0LjU2KSArICIgLiAiICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoIlVTRCAtMSwyMzQuNTYiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBVU0QgLTEsMjM0LjU2Iik7CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgbG9jYWxpemVkIGN1cnJlbmN5IHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeSgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJmciIsICJDQSIsICIiLCAiMSw1MCAkIiwKKyAgICAgICAgICAgICJkZSIsICJERSIsICIiLCAiMSw1MCBcdTIwQUMiLAorICAgICAgICAgICAgImRlIiwgIkRFIiwgIlBSRUVVUk8iLCAiMSw1MCBETSIsCisgICAgICAgICAgICAiZnIiLCAiRlIiLCAiIiwgIjEsNTAgXHUyMEFDIiwKKyAgICAgICAgICAgICJmciIsICJGUiIsICJQUkVFVVJPIiwgIjEsNTAgRiIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlID0gbmV3IExvY2FsZShEQVRBW2ldLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdCgxLjUwKTsKKyAgICAgICAgICAgIGlmIChzLmVxdWFscyhEQVRBW2krM10pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAxLjUwIHggIiArIGxvY2FsZSArICIgPT4gIiArIHMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiRkFJTDogMS41MCB4ICIgKyBsb2NhbGUgKyAiID0+ICIgKyBzICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgREFUQVtpKzNdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZm9ybWF0IGN1cnJlbmN5IHdpdGggQ3VycmVuY3lBbW91bnQKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlID0gbmV3IExvY2FsZShEQVRBW2ldLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEN1cnJlbmN5IGN1cnIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgbG9nbG4oIlxuTmFtZSBvZiB0aGUgY3VycmVuY3kgaXM6ICIgKyBjdXJyLmdldE5hbWUobG9jYWxlLCBDdXJyZW5jeS5MT05HX05BTUUsIG5ldyBib29sZWFuW10ge2ZhbHNlfSkpOworICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQgY0FtdCA9IG5ldyBDdXJyZW5jeUFtb3VudCgxLjUsIGN1cnIpOworICAgICAgICAgICAgbG9nbG4oIkN1cnJlbmN5QW1vdW50IG9iamVjdCdzIGhhc2hDb2RlIGlzOiAiICsgY0FtdC5oYXNoQ29kZSgpKTsgLy9jb3ZlciBoYXNoQ29kZQorICAgICAgICAgICAgCisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIFN0cmluZyBzQ3VyciA9IGZtdC5mb3JtYXQoY0FtdCk7CisgICAgICAgICAgICBpZiAoc0N1cnIuZXF1YWxzKERBVEFbaSszXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IDEuNTAgeCAiICsgbG9jYWxlICsgIiA9PiAiICsgc0N1cnIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogMS41MCB4ICIgKyBsb2NhbGUgKyAiID0+ICIgKyBzQ3VyciArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIERBVEFbaSszXSk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vQ292ZXIgTWVhc3VyZUZvcm1hdC5nZXRDdXJyZW5jeUZvcm1hdCgpCisgICAgICAgIFVMb2NhbGUgc2F2ZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5VUyk7CisgICAgICAgIE1lYXN1cmVGb3JtYXQgY3VyRm10ID0gTWVhc3VyZUZvcm1hdC5nZXRDdXJyZW5jeUZvcm1hdCgpOworICAgICAgICAvL05vdCBrbm93aW5nIGhvdyB0byB0ZXN0IHRoaXMgZmFjdG9yeSBtZXRob2QsCisgICAgICAgIC8vICBiZWNhdXNlIHRoZSBjb25jcmVhdCBjbGFzcyBvZiBNZWFzdXJlRm9ybWF0IC0KKyAgICAgICAgLy8gIEN1cnJlbmN5Rm9ybWF0IGlzIGp1c3QgZm9yIGludGVybmFsIHVzZS4KKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KHNhdmUpOyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgQ3VycmVuY3kgb2JqZWN0IGhhbmRsaW5nLCBuZXcgYXMgb2YgSUNVIDIuMi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lPYmplY3QoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSAKKyAgICAgICAgICAgIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIAorICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIG51bGwsIDEyMzQuNTYsICIkMSwyMzQuNTYiKTsKKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiXHUyMEFDMSwyMzQuNTYiKTsgLy8gRXVybworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIlx1MDBBNTEsMjM1Iik7IC8vIFllbgorCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIikpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiU3dGMSwyMzQuNTUiKTsgLy8gMC4wNSByb3VuZGluZworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIiQxLDIzNC41NiIpOworCisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICAKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBudWxsLCAxMjM0LjU2LCAiMSAyMzQsNTYgXHUyMEFDIik7CisKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzUgXHUwMEE1Iik7IC8vIFllbgorCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIikpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzQsNTUgc0ZyLiIpOyAvLyAwLjI1IHJvdW5kaW5nCisKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzQsNTYgJCIpOworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSksCisgICAgICAgICAgICAgICAgICAgICAgIDEyMzQuNTYsICIxIDIzNCw1NiBcdTIwQUMiKTsgLy8gRXVybworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lQYXR0ZXJucygpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIExvY2FsZVtdIGxvY3MgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBmb3IgKGk9MDsgaTxsb2NzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NzW2ldKTsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBjdXJyZW5jeSBmb3JtYXRzIGRvIG5vdCBoYXZlIGEgdmFyaWFibGUgbnVtYmVyCisgICAgICAgICAgICAvLyBvZiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgICAgICAgIGludCBtaW4gPSBuZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgIGludCBtYXggPSBuZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgIGlmIChtaW4gIT0gbWF4KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGEgPSBuZi5mb3JtYXQoMS4wKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IG5mLmZvcm1hdCgxLjEyNSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsb2NzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAiIG1pbiBmcmFjdGlvbiBkaWdpdHMgIT0gbWF4IGZyYWN0aW9uIGRpZ2l0czsgIisKKyAgICAgICAgICAgICAgICAgICAgICAieCAxLjAgPT4gIiArIGEgKworICAgICAgICAgICAgICAgICAgICAgICI7IHggMS4xMjUgPT4gIiArIGIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIEVVUk8gY3VycmVuY3kgZm9ybWF0cyBoYXZlIGV4YWN0bHkgMiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgICAgICAgIGlmIChuZiBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBDdXJyZW5jeSBjdXJyID0gKChEZWNpbWFsRm9ybWF0KSBuZikuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VyciAhPSBudWxsICYmICJFVVIiLmVxdWFscyhjdXJyLmdldEN1cnJlbmN5Q29kZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobWluICE9IDIgfHwgbWF4ICE9IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhID0gbmYuZm9ybWF0KDEuMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxvY3NbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpcyBhIEVVUk8gZm9ybWF0IGJ1dCBpdCBkb2VzIG5vdCBoYXZlIDIgZnJhY3Rpb24gZGlnaXRzOyAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInggMS4wID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEbyBydWRpbWVudGFyeSB0ZXN0aW5nIG9mIHBhcnNpbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhcnNlKCkgeworICAgICAgICBTdHJpbmcgYXJnID0gIjAuMCI7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwIik7CisgICAgICAgIGRvdWJsZSBhTnVtYmVyID0gMGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhTnVtYmVyID0gZm9ybWF0LnBhcnNlKGFyZykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJwYXJzZSgiICsgYXJnICsgIikgPSAiICsgYU51bWJlcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgcHJvcGVyIHJvdW5kaW5nIGJ5IHRoZSBmb3JtYXQgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSb3VuZGluZzQ4NygpIHsKKyAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIHJvdW5kaW5nVGVzdChuZiwgMC4wMDE1OTk5OSwgNCwgIjAuMDAxNiIpOworICAgICAgICByb3VuZGluZ1Rlc3QobmYsIDAuMDA5OTUsIDQsICIwLjAxIik7CisgICAgCisgICAgICAgIHJvdW5kaW5nVGVzdChuZiwgMTIuMzk5NSwgMywgIjEyLjQiKTsKKyAgICAKKyAgICAgICAgcm91bmRpbmdUZXN0KG5mLCAxMi40OTk5LCAwLCAiMTIiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KG5mLCAtIDE5LjUsIDAsICItMjAiKTsKKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZnVuY3Rpb25pbmcgb2YgdGhlIHNlY29uZGFyeSBncm91cGluZyB2YWx1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5R3JvdXBpbmcoKSB7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjLCMjIyIsIFVTKTsKKyAgICAKKyAgICAgICAgZXhwZWN0KGYsIDEyMzQ1Njc4OUwsICIxMiwzNCw1Niw3ODkiKTsKKyAgICAgICAgZXhwZWN0UGF0KGYsICIjLCMjLCMjIyIpOworICAgICAgICBmLmFwcGx5UGF0dGVybigiIywjIyMiKTsKKyAgICAKKyAgICAgICAgZi5zZXRTZWNvbmRhcnlHcm91cGluZ1NpemUoNCk7CisgICAgICAgIGV4cGVjdChmLCAxMjM0NTY3ODlMLCAiMTIsMzQ1Niw3ODkiKTsKKyAgICAgICAgZXhwZWN0UGF0KGYsICIjLCMjIyMsIyMjIik7CisgICAgICAgIE51bWJlckZvcm1hdCBnID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImhpIiwgIklOIikpOworICAgIAorICAgICAgICBTdHJpbmcgb3V0ID0gIiI7CisgICAgICAgIGxvbmcgbCA9IDE4NzY1NDMyMTBMOworICAgICAgICBvdXQgPSBnLmZvcm1hdChsKTsKKyAgICAKKyAgICAgICAgLy8gZXhwZWN0ICIxLDg3LDY1LDQzLDIxMCIsIGJ1dCB3aXRoIEhpbmRpIGRpZ2l0cworICAgICAgICAvLyAgICAgICAgIDAxMjM0NTY3ODkwMTIzCisgICAgICAgIGJvb2xlYW4gb2sgPSB0cnVlOworICAgICAgICBpZiAob3V0Lmxlbmd0aCgpICE9IDE0KSB7CisgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gZXhwZWN0R3JvdXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxIDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA0IDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA3IDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMCA6CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RHcm91cCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gTGF0ZXIgLS0gZml4IHRoaXMgdG8gZ2V0IHRoZSBhY3R1YWwgZ3JvdXBpbmcKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgZnJvbSB0aGUgcmVzb3VyY2UgYnVuZGxlLgorICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNHcm91cCA9IChvdXQuY2hhckF0KGkpID09IDB4MDAyQyk7CisgICAgICAgICAgICAgICAgaWYgKGlzR3JvdXAgIT0gZXhwZWN0R3JvdXApIHsKKyAgICAgICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMICBFeHBlY3RlZCAiKyBsICsgIiB4IGhpX0lOIC4gXCIxLDg3LDY1LDQzLDIxMFwiICh3aXRoIEhpbmRpIGRpZ2l0cyksIGdvdCBcIiIKKyAgICAgICAgICAgICAgICAgICAgKyBvdXQgKyAiXCIiKTsgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICAgIiArIGwgKyAiIHggaGlfSU4gLiBcIiIgKyBvdXQgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCByb3VuZGluZ1Rlc3QoTnVtYmVyRm9ybWF0IG5mLCBkb3VibGUgeCwgaW50IG1heEZyYWN0aW9uRGlnaXRzLCBmaW5hbCBTdHJpbmcgZXhwZWN0ZWQpIHsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKG1heEZyYWN0aW9uRGlnaXRzKTsKKyAgICAgICAgU3RyaW5nIG91dCA9IG5mLmZvcm1hdCh4KTsKKyAgICAgICAgbG9nbG4oeCArICIgZm9ybWF0cyB3aXRoICIgKyBtYXhGcmFjdGlvbkRpZ2l0cyArICIgZnJhY3Rpb25hbCBkaWdpdHMgdG8gIiArIG91dCk7IAorICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVwZ3JhZGUgdG8gYWxwaGFXb3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBvbmVudCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQxID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMjRTAiLCBVUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjI0UrMCIsIFVTKTsKKyAgICAgICAgaW50IG4gPSAxMjM0OworICAgICAgICBleHBlY3QyKGZtdDEsIG4sICIxLjIzNEUzIik7CisgICAgICAgIGV4cGVjdDIoZm10MiwgbiwgIjEuMjM0RSszIik7CisgICAgICAgIGV4cGVjdChmbXQxLCAiMS4yMzRFKzMiLCBuKTsgLy8gRWl0aGVyIGZvcm1hdCBzaG91bGQgcGFyc2UgIkUrMyIKKworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGdyYWRlIHRvIGFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NpZW50aWZpYygpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCBwYXR0ZXJuIHJvdW5kLXRyaXAKKyAgICAgICAgZmluYWwgU3RyaW5nIFBBVFtdID0geyAiI0UwIiwgIjAuIyMjI0UwIiwgIjAwLjAwMEUwMCIsICIjIzAuIyMjI0UwMDAiLCAiMC4jIyNFMDtbMC4jIyNFMF0iIH07CisgICAgICAgIGludCBQQVRfbGVuZ3RoID0gUEFULmxlbmd0aDsKKyAgICAgICAgaW50IERJR0lUU1tdID0geworICAgICAgICAgICAgLy8gbWluIGludCwgbWF4IGludCwgbWluIGZyYWMsIG1heCBmcmFjCisgICAgICAgICAgICAwLCAxLCAwLCAwLCAvLyAiI0UwIgorICAgICAgICAgICAgMSwgMSwgMCwgNCwgLy8gIjAuIyMjI0UwIgorICAgICAgICAgICAgMiwgMiwgMywgMywgLy8gIjAwLjAwMEUwMCIKKyAgICAgICAgICAgIDEsIDMsIDAsIDQsIC8vICIjIzAuIyMjI0UwMDAiCisgICAgICAgICAgICAxLCAxLCAwLCAzLCAvLyAiMC4jIyNFMDtbMC4jIyNFMF0iCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUEFUX2xlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0ID0gUEFUW2ldOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCwgVVMpOworICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSBkZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgIGlmIChwYXQuZXF1YWxzKHBhdDIpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rICAgUGF0dGVybiBydCBcIiIgKyBwYXQgKyAiXCIgLiBcIiIgKyBwYXQyICsgIlwiIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFBhdHRlcm4gcnQgXCIiICsgcGF0ICsgIlwiIC4gXCIiICsgcGF0MiArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGRpZ2l0IGNvdW50cyBtYXRjaCB3aGF0IHdlIGV4cGVjdAorICAgICAgICAgICAgaWYgKGRmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gRElHSVRTWzQgKiBpXQorICAgICAgICAgICAgICAgIHx8IGRmLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gRElHSVRTWzQgKiBpICsgMV0KKyAgICAgICAgICAgICAgICB8fCBkZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSAhPSBESUdJVFNbNCAqIGkgKyAyXQorICAgICAgICAgICAgICAgIHx8IGRmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICE9IERJR0lUU1s0ICogaSArIDNdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiKyBwYXQrICJcIiBtaW4vbWF4IGludDsgbWluL21heCBmcmFjID0gIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICArIGRmLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgKyAiOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgKyAiLCBleHBlY3QgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBESUdJVFNbNCAqIGldICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICArIERJR0lUU1s0ICogaSArIDFdICsgIjsiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBESUdJVFNbNCAqIGkgKyAyXSArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBESUdJVFNbNCAqIGkgKyAzXSk7IAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiNFMCIsIFVTKSwgMTIzNDUuMCwgIjEuMjM0NUU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMEUwIiwgVVMpLCAxMjM0NS4wLCAiMUU0Iik7CisgICAgCisgICAgICAgIC8vIHBhdHRlcm4gb2YgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpID0gIjAuIyMjIyMjRTAiIG5vdCAiI0UwIgorICAgICAgICAvLyBzbyByZXN1bHQgPSAxLjIzNDU2OEU0IG5vdCAxLjIzNDU2Nzg5MDFFNAorICAgICAgICAvL3doZW4gdGhlIHBhdHRlcm4gcHJvYmxlbSBpcyBmaW5hbGl6ZWQsIGRlbGV0ZSBjb21tZW50IG1hcmsnLy8nIAorICAgICAgICAvL29mIHRoZSBmb2xsb3dpbmcgY29kZQorICAgICAgICBleHBlY3QyKE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSwgMTIzNDUuNjc4OTAxLCAiMS4yMzQ1Njc4OTAxRTQiKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlKSAuLi4iKTsgCisgICAgICAgIGV4cGVjdDIoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlLlVTKSwgMTIzNDUuNjc4OTAxLCAiMS4yMzQ1Njc4OTAxRTQiKTsgICAgICAgIAorICAgIAorICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyNFMCIsIFVTKSwgMTIzNDUuMCwgIjEyLjM0RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjRTAiLCBVUyksIDEyMzQ1LjAwMDAxLCAiMTIuMzVFMyIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLCAxMjM0NSwgIjEyLjM0NUUzIik7CisgICAgCisgICAgICAgIC8vIHBhdHRlcm4gb2YgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpID0gIjAuIyMjIyMjRTAiIG5vdCAiI0UwIgorICAgICAgICAvLyBzbyByZXN1bHQgPSAxLjIzNDU2OEU0IG5vdCAxLjIzNDU2Nzg5MDFFNAorICAgICAgICBleHBlY3QyKE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLkZSQU5DRSksIDEyMzQ1LjY3ODkwMSwgIjEsMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZSkgLi4uIik7CisgICAgICAgIGV4cGVjdDIoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlLkZSQU5DRSksIDEyMzQ1LjY3ODkwMSwgIjEsMjM0NTY3ODkwMUU0Iik7ICAgICAgICAKKyAgICAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLCA3ODkuMTIzNDVlLTksICI3ODkuMTJFLTkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwgNzgwLmUtOSwgIjc4MEUtOSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIi4jIyNFMCIsIFVTKSwgNDU2NzguMCwgIi40NTdFNSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIuIyMjRTAiLCBVUyksIDAsICIuMEUwIik7CisgICAgICAgIC8qCisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdFtdIHsgbmV3IERlY2ltYWxGb3JtYXQoIiNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwRTAiLCBVUyksICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwMEUwIiwgVVMpLCAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwMDBFMCIsIFVTKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICBuZXcgTG9uZyg0NTY3ODAwMCksCisgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiNC41Njc4RTciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1LjY3OEU2IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NTY3LjhFNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNUU3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NkU2IiwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1N0U1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICApOworICAgICAgICAhCisgICAgICAgICEgVW5yb2xsIHRoaXMgdGVzdCBpbnRvIGluZGl2aWR1YWwgdGVzdHMgYmVsb3cuLi4KKyAgICAgICAgIQorICAgICAgICAqLworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksIDQ1Njc4MDAwLCAiNC41Njc4RTciKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyNFMCIsIFVTKSwgNDU2NzgwMDAsICI0NS42NzhFNiIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyMjRTAiLCBVUyksIDQ1Njc4MDAwLCAiNDU2Ny44RTQiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIwRTAiLCBVUyksIDQ1Njc4MDAwLCAiNUU3Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMDBFMCIsIFVTKSwgNDU2NzgwMDAsICI0NkU2Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMDAwRTAiLCBVUyksIDQ1Njc4MDAwLCAiNDU3RTUiKTsKKyAgICAgICAgLyoKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTLCBzdGF0dXMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IERvdWJsZSgwLjAwMDAxMjMpLCAiMTIuM0UtNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDAwMTIzKSwgIjEyM0UtNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDAxMjMpLCAiMS4yM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDEyMyksICIxMi4zRS0zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMC4xMjMpLCAiMTIzRS0zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMS4yMyksICIxLjIzRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMi4zKSwgIjEyLjNFMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMyksICIxMjNFMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMzApLCAiMS4yM0UzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICEKKyAgICAgICAgISBVbnJvbGwgdGhpcyB0ZXN0IGludG8gaW5kaXZpZHVhbCB0ZXN0cyBiZWxvdy4uLgorICAgICAgICAhCisgICAgICAgICovCisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAwLjAwMDAxMjMsICIxMi4zRS02Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAwLjAwMDEyMywgIjEyM0UtNiIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMC4wMDEyMywgIjEuMjNFLTMiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMDEyMywgIjEyLjNFLTMiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMTIzLCAiMTIzRS0zIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxLjIzLCAiMS4yM0UwIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxMi4zLCAiMTIuM0UwIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxMjMuMCwgIjEyM0UwIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxMjMwLjAsICIxLjIzRTMiKTsKKyAgICAgICAgLyoKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMsIHN0YXR1cyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgRG91YmxlKDAuMDAwMTIpLCAiMS4yRS0wNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9uZygxMjAwMCksICAgICAiMS4yRSswNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAhCisgICAgICAgICEgVW5yb2xsIHRoaXMgdGVzdCBpbnRvIGluZGl2aWR1YWwgdGVzdHMgYmVsb3cuLi4KKyAgICAgICAgIQorICAgICAgICAqLworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMpLCAwLjAwMDEyLCAiMS4yRS0wNCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMpLCAxMjAwMCwgIjEuMkUrMDQiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXBncmFkZSB0byBhbHBoYVdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhZCgpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiKl4jIy4jIyIsIFVTKSwgMCwgIl5eXl4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIipeIyMuIyMiLCBVUyksIC0xLjMsICJeLTEuMyIpOworICAgICAgICBleHBlY3QyKAorICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjMC4wIyMjI0UwKl8gJ2ctbS9zXjInIiwgVVMpLCAKKyAgICAgICAgICAgIDAsIAorICAgICAgICAgICAgIjAuMEUwX19fX19fIGctbS9zXjIiKTsgCisgICAgICAgIGV4cGVjdCgKKyAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyNFMCpfICdnLW0vc14yJyIsIFVTKSwgCisgICAgICAgICAgICAxLjAgLyAzLCAKKyAgICAgICAgICAgICIzMzMuMzMzRS0zXyBnLW0vc14yIik7IAorICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyMqXyAnZy1tL3NeMiciLCBVUyksIDAsICIwLjBfX19fX18gZy1tL3NeMiIpOworICAgICAgICBleHBlY3QoCisgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjKl8gJ2ctbS9zXjInIiwgVVMpLCAKKyAgICAgICAgICAgIDEuMCAvIDMsIAorICAgICAgICAgICAgIjAuMzMzMzNfXyBnLW0vc14yIik7IAorICAgIAorICAgICAgICAvLyBUZXN0IHBhZGRpbmcgYmVmb3JlIGEgc2lnbgorICAgICAgICBmaW5hbCBTdHJpbmcgZm9ybWF0U3RyID0gIip4IywjIyMsIyMjLCMjMC4wIzsqeCgjIyMsIyMjLCMjMC4wIykiOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAtMTAsICJ4eHh4eHh4eHh4KDEwLjApIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMDAwLCAieHh4eHh4eCgxLDAwMC4wKSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAtMTAwMDAwMCwgInh4eCgxLDAwMCwwMDAuMCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwMC4zNywgInh4eHh4eHh4KDEwMC4zNykiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwNDU2LjM3LCAieHh4eHgoMTAsNDU2LjM3KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAtMTEyMDQ1Ni4zNywgInh4KDEsMTIwLDQ1Ni4zNykiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTExMjA0NTYwMC4zNywgIigxMTIsMDQ1LDYwMC4zNykiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEyNTIwNDU2MDAuMzcsICIoMSwyNTIsMDQ1LDYwMC4zNykiKTsKKyAgICAKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTAsICJ4eHh4eHh4eHh4eHgxMC4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMDAsICJ4eHh4eHh4eHgxLDAwMC4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMDAwMDAsICJ4eHh4eDEsMDAwLDAwMC4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMC4zNywgInh4eHh4eHh4eHgxMDAuMzciKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTA0NTYuMzcsICJ4eHh4eHh4MTAsNDU2LjM3Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDExMjA0NTYuMzcsICJ4eHh4MSwxMjAsNDU2LjM3Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDExMjA0NTYwMC4zNywgInh4MTEyLDA0NSw2MDAuMzciKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTAyNTIwNDU2MDAuMzcsICIxMCwyNTIsMDQ1LDYwMC4zNyIpOworICAgIAorICAgICAgICAvLyBUZXN0IHBhZGRpbmcgYmV0d2VlbiBhIHNpZ24gYW5kIGEgbnVtYmVyCisgICAgICAgIGZpbmFsIFN0cmluZyBmb3JtYXRTdHIyID0gIiMsIyMjLCMjIywjIzAuMCMqeDsoIyMjLCMjIywjIzAuMCMqeCkiOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwLCAiKDEwLjB4eHh4eHh4eHh4KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwMDAsICIoMSwwMDAuMHh4eHh4eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTAwMDAwMCwgIigxLDAwMCwwMDAuMHh4eCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMDAuMzcsICIoMTAwLjM3eHh4eHh4eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTA0NTYuMzcsICIoMTAsNDU2LjM3eHh4eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTEyMDQ1Ni4zNywgIigxLDEyMCw0NTYuMzd4eCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMTIwNDU2MDAuMzcsICIoMTEyLDA0NSw2MDAuMzcpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTI1MjA0NTYwMC4zNywgIigxLDI1MiwwNDUsNjAwLjM3KSIpOyAKKyAgICAKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIDEwLCAiMTAuMHh4eHh4eHh4eHh4eCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTAwMCwgIjEsMDAwLjB4eHh4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIDEwMDAwMDAsICIxLDAwMCwwMDAuMHh4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDAuMzcsICIxMDAuMzd4eHh4eHh4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDQ1Ni4zNywgIjEwLDQ1Ni4zN3h4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIDExMjA0NTYuMzcsICIxLDEyMCw0NTYuMzd4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMTIwNDU2MDAuMzcsICIxMTIsMDQ1LDYwMC4zN3h4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDI1MjA0NTYwMC4zNywgIjEwLDI1MiwwNDUsNjAwLjM3Iik7CisgICAgCisgICAgICAgIC8vdGVzdGluZyB0aGUgc2V0UGFkQ2hhcmFjdGVyKFVuaWNvZGVTdHJpbmcpIGFuZCBnZXRQYWRDaGFyYWN0ZXJTdHJpbmcoKQorICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworICAgICAgICBjaGFyIHBhZFN0cmluZyA9ICdQJzsKKyAgICAgICAgZm10LnNldFBhZENoYXJhY3RlcihwYWRTdHJpbmcpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiKlAjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDUsIHBhZFN0cmluZyk7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIoJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDEsICdeJyk7CisgICAgICAgIC8vY29tbWVudGVkIHVudGlsbCBpbXBsZW1lbnRhdGlvbiBpcyBjb21wbGV0ZQorICAgICAgICAvKiAgZm10LnNldFBhZENoYXJhY3RlcigoVW5pY29kZVN0cmluZykiXl5eIik7CisgICAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeXl4jIiwgRGVjaW1hbEZvcm1hdC5rUGFkQmVmb3JlUHJlZml4LCAzLCAoVW5pY29kZVN0cmluZykiXl5eIik7CisgICAgICAgICAgcGFkU3RyaW5nLnJlbW92ZSgpOworICAgICAgICAgIHBhZFN0cmluZy5hcHBlbmQoKFVDaGFyKTB4MDA2MSk7CisgICAgICAgICAgcGFkU3RyaW5nLmFwcGVuZCgoVUNoYXIpMHgwMzAyKTsKKyAgICAgICAgICBmbXQuc2V0UGFkQ2hhcmFjdGVyKHBhZFN0cmluZyk7CisgICAgICAgICAgVUNoYXIgcGF0dGVybkNoYXJzW109ezB4MDAyYSwgMHgwMDYxLCAweDAzMDIsIDB4MDA2MSwgMHgwMzAyLCAweDAwMjMsIDB4MDAwMH07CisgICAgICAgICAgVW5pY29kZVN0cmluZyBwYXR0ZXJuKHBhdHRlcm5DaGFycyk7CisgICAgICAgICAgZXhwZWN0UGFkKGZtdCwgcGF0dGVybiAsIERlY2ltYWxGb3JtYXQua1BhZEJlZm9yZVByZWZpeCwgNCwgcGFkU3RyaW5nKTsKKyAgICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGdyYWRlIHRvIGFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybnMyKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworICAgIAorICAgICAgICBjaGFyIGhhdCA9IDB4MDA1RTsgLypeKi8KKyAgICAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDEsIGhhdCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4jIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYLCAyLCBoYXQpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiIypeIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwgMSwgaGF0KTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4iLCBEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9TVUZGSVgsIDIsIGhhdCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4kIyIsIC0xKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4kIiwgLTEpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJ3ByZScjLCMjMCp4J3Bvc3QnIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwgMTIsIChjaGFyKSAweDAwNzggLyp4Ki8pOyAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIicnIzAqeCIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsIDMsIChjaGFyKSAweDAwNzggLyp4Ki8pOyAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIidJJydsbCcqYSMjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwgMTAsIChjaGFyKSAweDAwNjEgLyphKi8pOyAKKyAgICAKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiQUEjLCMjMC4wMFpaIik7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIoaGF0KTsKKyAgICAKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEwKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiKl5BQSMsIyMwLjAwWloiKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEjLCMjMC4wMCpeWloiKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1NVRkZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSMsIyMwLjAwWloqXiIpOworICAgIAorICAgICAgICAvLyAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyCisgICAgICAgIFN0cmluZyBleHAgPSAiQUEqXiMsIyMwLjAwWloiOworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTIpOworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgZXhwKTsKKyAgICAKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEzKTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjLCMjMC4wMFpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNCk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMjLCMjMC4wMFpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNSk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0NQorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjIyMsIyMwLjAwWloiKTsgLy8gVGhpcyBpcyB0aGUgaW50ZXJlc3RpbmcgY2FzZQorICAgIAorICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTYpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNDU2CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIywjIyMsIyMwLjAwWloiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0cmF0aW9uKCkgeworICAgICAgICBmaW5hbCBVTG9jYWxlIFNSQ19MT0MgPSBVTG9jYWxlLkZSQU5DRTsKKyAgICAgICAgZmluYWwgVUxvY2FsZSBTV0FQX0xPQyA9IFVMb2NhbGUuVVM7CisKKyAgICAgICAgY2xhc3MgVGVzdEZhY3RvcnkgZXh0ZW5kcyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5IHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBjdXJyZW5jeVN0eWxlOworCisgICAgICAgICAgICBUZXN0RmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICBzdXBlcihTUkNfTE9DLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBjdXJyZW5jeVN0eWxlID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTV0FQX0xPQyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgY3JlYXRlRm9ybWF0KFVMb2NhbGUgbG9jLCBpbnQgZm9ybWF0VHlwZSkgeworICAgICAgICAgICAgICAgIGlmIChmb3JtYXRUeXBlID09IEZPUk1BVF9DVVJSRU5DWSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVuY3lTdHlsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBmMCA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoU1dBUF9MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjEgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKFNSQ19MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgT2JqZWN0IGtleSA9IE51bWJlckZvcm1hdC5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RGYWN0b3J5KCkpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjMgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGY0ID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0LnVucmVnaXN0ZXIoa2V5KTsgLy8gcmVzdG9yZSBmb3Igb3RoZXIgdGVzdHMKKyAgICAgICAgTnVtYmVyRm9ybWF0IGY1ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoU1JDX0xPQyk7CisKKyAgICAgICAgZmxvYXQgbiA9IDEyMzQuNTY3ZjsKKyAgICAgICAgbG9nbG4oImYwIHN3YXAgaW50OiAiICsgZjAuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImYxIHNyYyBpbnQ6ICIgKyBmMS5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjIgc3JjIGN1cjogIiArIGYyLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmMyByZWcgY3VyOiAiICsgZjMuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImY0IHJlZyBpbnQ6ICIgKyBmNC5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjUgdW5yZWcgY3VyOiAiICsgZjUuZm9ybWF0KG4pKTsKKworICAgICAgICBpZiAoIWYzLmZvcm1hdChuKS5lcXVhbHMoZjAuZm9ybWF0KG4pKSkgeworICAgICAgICAgICAgZXJybG4oInJlZ2lzdGVyZWQgc2VydmljZSBkaWQgbm90IG1hdGNoIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmNC5mb3JtYXQobikuZXF1YWxzKGYxLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlcmVkIHNlcnZpY2UgZGlkIG5vdCBpbmhlcml0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmNS5mb3JtYXQobikuZXF1YWxzKGYyLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bnJlZ2lzdGVyZWQgc2VydmljZSBkaWQgbm90IG1hdGNoIG9yaWdpbmFsIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NpZW50aWZpYzIoKSB7CisgICAgICAgIC8vIGpiIDI1NTIKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSAoRGVjaW1hbEZvcm1hdClOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpOworICAgICAgICBOdW1iZXIgbnVtID0gbmV3IERvdWJsZSgxMi4zNCk7CisgICAgICAgIGV4cGVjdChmbXQsIG51bSwgIiQxMi4zNCIpOworICAgICAgICBmbXQuc2V0U2NpZW50aWZpY05vdGF0aW9uKHRydWUpOworICAgICAgICBleHBlY3QoZm10LCBudW0sICIkMS4yM0UxIik7CisgICAgICAgIGZtdC5zZXRTY2llbnRpZmljTm90YXRpb24oZmFsc2UpOworICAgICAgICBleHBlY3QoZm10LCBudW0sICIkMTIuMzQiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NpZW50aWZpY0dyb3VwaW5nKCkgeworICAgICAgICAvLyBqYiAyNTUyCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjIy4jI0UwIik7CisgICAgICAgIGV4cGVjdChmbXQsIC4wMTIzNCwgIjEyLjNFLTMiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgLjEyMzQsICIxMjNFLTMiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMS4yMzQsICIxLjIzRTAiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMTIuMzQsICIxMi4zRTAiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMTIzLjQsICIxMjNFMCIpOworICAgICAgICBleHBlY3QoZm10LCAxMjM0LCAiMS4yM0UzIik7CisgICAgfQorCisgICAgLy8gYWRkaXRpb25hbCBjb3ZlcmFnZSB0ZXN0cworICAgIAorICAgIC8vIHNpZ2gsIGNhbid0IGhhdmUgc3RhdGljIGlubmVyIGNsYXNzZXMsIHdoeSBub3Q/CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgUEkgZXh0ZW5kcyBOdW1iZXIgeworICAgICAgICBwcml2YXRlIFBJKCkge30KKyAgICAgICAgcHVibGljIGludCBpbnRWYWx1ZSgpIHsgcmV0dXJuIChpbnQpTWF0aC5QSTsgfQorICAgICAgICBwdWJsaWMgbG9uZyBsb25nVmFsdWUoKSB7IHJldHVybiAobG9uZylNYXRoLlBJOyB9CisgICAgICAgIHB1YmxpYyBmbG9hdCAgZmxvYXRWYWx1ZSgpIHsgcmV0dXJuIChmbG9hdClNYXRoLlBJOyB9CisgICAgICAgIHB1YmxpYyBkb3VibGUgZG91YmxlVmFsdWUoKSB7IHJldHVybiAoZG91YmxlKU1hdGguUEk7IH0KKyAgICAgICAgcHVibGljIGJ5dGUgYnl0ZVZhbHVlKCkgeyByZXR1cm4gKGJ5dGUpTWF0aC5QSTsgfQorICAgICAgICBwdWJsaWMgc2hvcnQgc2hvcnRWYWx1ZSgpIHsgcmV0dXJuIChzaG9ydClNYXRoLlBJOyB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBOdW1iZXIgSU5TVEFOQ0UgPSBuZXcgUEkoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoKTsgLy8gZGVmYXVsdCBsb2NhbGUKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChuZXcgQmlnSW50ZWdlcigiMTIzNDU2Nzg5MDk4NzY1NDMyMTIzNDU2Nzg5MDk4NzY1NDMyMSIsIDEwKSkpOworCisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoKTsgLy8gZGVmYXVsdCBsb2NhbGUKKworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KFBJLklOU1RBTkNFKSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoIjEyMzQ1IikpOworICAgICAgICAgICAgZXJybG4oIm51bWJlcmZvcm1hdCBvZiBzdHJpbmcgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBudW1iZXJmb3JtYXQgb2Ygc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGhhc2ggPSBmbXQuaGFzaENvZGUoKTsKKworICAgICAgICBsb2dsbigiY29tcGFyZSB0byBzdHJpbmcgcmV0dXJuczogIiArIGZtdC5lcXVhbHMoIiIpKTsKKworICAgICAgICAvLyBGb3IgSUNVIDIuNiAtIGFsYW4KKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCInKiYnJyAnXHUwMEE0JyAnJyYqJyAjLCMjMC4wMCIsIFVTKTsKKyAgICAgICAgZGYuc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIklOUiIpKTsKKyAgICAgICAgZXhwZWN0MihkZiwgMS4wLCAiKiYnIFJlLiAnJiogMS4wMCIpOworICAgICAgICBleHBlY3QyKGRmLCAtMi4wLCAiLSomJyBScy4gJyYqIDIuMDAiKTsKKyAgICAgICAgZGYuYXBwbHlQYXR0ZXJuKCIjLCMjMC4wMCAnKiYnJyAnXHUwMEE0JyAnJyYqJyIpOworICAgICAgICBleHBlY3QyKGRmLCAyLjAsICIyLjAwIComJyBScy4gJyYqIik7CisgICAgICAgIGV4cGVjdDIoZGYsIC0xLjAsICItMS4wMCAqJicgUmUuICcmKiIpOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBqYXZhLm1hdGguQmlnRGVjaW1hbCByID0gZGYuZ2V0Um91bmRpbmdJbmNyZW1lbnQoKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByID0gZGYuZ2V0Um91bmRpbmdJbmNyZW1lbnQoKTsKKy8vI2VuZGlmCisgICAgICAgIGlmIChyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiByb3VuZGluZyA9ICIgKyByICsgIiwgZXhwZWN0IG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGRmLmlzU2NpZW50aWZpY05vdGF0aW9uKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpc1NjaWVudGlmaWNOb3RhdGlvbiA9IHRydWUsIGV4cGVjdCBmYWxzZSIpOworICAgICAgICB9CisKKyAgICAgICAgZGYuYXBwbHlQYXR0ZXJuKCIwLjAwMDAwIik7CisgICAgICAgIGRmLnNldFNjaWVudGlmaWNOb3RhdGlvbih0cnVlKTsKKyAgICAgICAgaWYgKCFkZi5pc1NjaWVudGlmaWNOb3RhdGlvbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaXNTY2llbnRpZmljTm90YXRpb24gPSBmYWxzZSwgZXhwZWN0IHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBkZi5zZXRNaW5pbXVtRXhwb25lbnREaWdpdHMoKGJ5dGUpMik7CisgICAgICAgIGlmIChkZi5nZXRNaW5pbXVtRXhwb25lbnREaWdpdHMoKSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzID0gIiArCisgICAgICAgICAgICAgICAgICBkZi5nZXRNaW5pbXVtRXhwb25lbnREaWdpdHMoKSArICIsIGV4cGVjdCAyIik7CisgICAgICAgIH0KKyAgICAgICAgZGYuc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGlmICghZGYuaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bigpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaXNFeHBvbmVudFNpZ25BbHdheXNTaG93biA9IGZhbHNlLCBleHBlY3QgdHJ1ZSIpOworICAgICAgICB9CisgICAgICAgIGRmLnNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSgwKTsKKyAgICAgICAgaWYgKGRmLmdldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRTZWNvbmRhcnlHcm91cGluZ1NpemUgPSAiICsKKyAgICAgICAgICAgICAgICAgIGRmLmdldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSgpICsgIiwgZXhwZWN0IDAiKTsKKyAgICAgICAgfQorICAgICAgICBleHBlY3QyKGRmLCAzLjE0MTU5LCAiMy4xNDE1OUUrMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0V2hpdGVTcGFjZVBhcnNpbmcoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoImEgIGIjMGMgICIsIFVTKTsKKyAgICAgICAgaW50IG4gPSAxMjM0OworICAgICAgICBleHBlY3QoZm10LCAiYSBiMTIzNGMgIiwgbik7CisgICAgICAgIGV4cGVjdChmbXQsICJhICAgYjEyMzRjICAgIiwgbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjdXJyZW5jaWVzIHdob3NlIGRpc3BsYXkgbmFtZSBpcyBhIENob2ljZUZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGxleEN1cnJlbmN5KCkgeworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgiZW4iLCAiSU4iLCAiIik7CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2MpOworCisgICAgICAgIGV4cGVjdDIoZm10LCAxLjAsICJSZS4gMS4wMCIpOworICAgICAgICBleHBlY3QoZm10LCAxLjAwMSwgIlJlLiAxLjAwIik7IC8vIHRyaWNreQorICAgICAgICBleHBlY3QyKGZtdCwgMTIzNDU2NzguMCwgIlJzLiAxLDIzLDQ1LDY3OC4wMCIpOworICAgICAgICBleHBlY3QyKGZtdCwgMC41LCAiUnMuIDAuNTAiKTsKKyAgICAgICAgZXhwZWN0MihmbXQsIC0xLjAsICItUmUuIDEuMDAiKTsKKyAgICAgICAgZXhwZWN0MihmbXQsIC0xMC4wLCAiLVJzLiAxMC4wMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeUtleXdvcmQoKSB7CisgICAgVUxvY2FsZSBsb2NhbGUgPSBuZXcgVUxvY2FsZSgidGhfVEhAY3VycmVuY3k9UVFRIik7CisgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoMTIuMzRmKTsKKyAgICBpZiAoISJRUVExMi4zNCIuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgZXJybG4oImdvdCB1bmV4cGVjdGVkIGN1cnJlbmN5OiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUaHJlYWRlZEZvcm1hdCgpIHsKKworICAgICAgICBjbGFzcyBGb3JtYXRUYXNrIGltcGxlbWVudHMgUnVubmFibGUgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQ7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmOworICAgICAgICAgICAgYm9vbGVhbiBpbmM7CisgICAgICAgICAgICBmbG9hdCBudW07CisKKyAgICAgICAgICAgIEZvcm1hdFRhc2soRGVjaW1hbEZvcm1hdCBmbXQsIGludCBpbmRleCkgeworICAgICAgICAgICAgICAgIHRoaXMuZm10ID0gZm10OworICAgICAgICAgICAgICAgIHRoaXMuYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIHRoaXMuaW5jID0gKGluZGV4ICYgMHgxKSA9PSAwOworICAgICAgICAgICAgICAgIHRoaXMubnVtID0gaW5jID8gMCA6IDEwMDAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgIGlmIChpbmMpIHsKKyAgICAgICAgICAgIHdoaWxlIChudW0gPCAxMDAwMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChmbXQuZm9ybWF0KG51bSkgKyAiXG4iKTsKKyAgICAgICAgICAgIG51bSArPSAzLjE0MTU5OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKG51bSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm10LmZvcm1hdChudW0pICsgIlxuIik7CisgICAgICAgICAgICBudW0gLT0gMy4xNDE1OTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHJlc3VsdCgpIHsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMjIyIpOworICAgICAgICBGb3JtYXRUYXNrW10gdGFza3MgPSBuZXcgRm9ybWF0VGFza1s4XTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YXNrcy5sZW5ndGg7ICsraSkgeworICAgICAgICB0YXNrc1tpXSA9IG5ldyBGb3JtYXRUYXNrKGZtdCwgaSk7CisgICAgfQorCisgICAgVGVzdFV0aWwucnVuVW50aWxEb25lKHRhc2tzKTsKKworICAgICAgICBmb3IgKGludCBpID0gMjsgaSA8IHRhc2tzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIFN0cmluZyBzdHIxID0gdGFza3NbaV0ucmVzdWx0KCk7CisgICAgICAgIFN0cmluZyBzdHIyID0gdGFza3NbaS0yXS5yZXN1bHQoKTsKKyAgICAgICAgICAgIGlmICghc3RyMS5lcXVhbHMoc3RyMikpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1pc21hdGNoIGF0ICIgKyBpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3RyMSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN0cjIpOworICAgICAgICAgICAgICAgIGVycmxuKCJkZWNpbWFsIGZvcm1hdCB0aHJlYWQgbWlzbWF0Y2giKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cjEgPSBzdHIyOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBlck1pbGwoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjIy4jIyNcdTIwMzAiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIwLjQ4NTcgeCAjIyMuIyMjXHUyMDMwIiwKKyAgICAgICAgICAgICAgICAgICAgICI0ODUuN1x1MjAzMCIsIGZtdC5mb3JtYXQoMC40ODU3KSk7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgc3ltLnNldFBlck1pbGwoJ20nKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQyID0gbmV3IERlY2ltYWxGb3JtYXQoIiIsIHN5bSk7CisgICAgICAgIGZtdDIuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCIjIyMuIyMjbSIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjAuNDg1NyB4ICMjIy4jIyNtIiwKKyAgICAgICAgICAgICAgICAgICAgICI0ODUuN20iLCBmbXQyLmZvcm1hdCgwLjQ4NTcpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SWxsZWdhbFBhdHRlcm5zKCkgeworICAgICAgICAvLyBUZXN0IGNhc2VzOgorICAgICAgICAvLyBQcmVmaXggd2l0aCAiLToiIGZvciBpbGxlZ2FsIHBhdHRlcm5zCisgICAgICAgIC8vIFByZWZpeCB3aXRoICIrOiIgZm9yIGxlZ2FsIHBhdHRlcm5zCisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBVbnF1b3RlZCBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gdGhlIHN1ZmZpeCBhcmUgaWxsZWdhbAorICAgICAgICAgICAgIi06MDAwLjAwMHwjIyMiLAorICAgICAgICAgICAgIis6MDAwLjAwMCd8IyMjJyIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0PURBVEFbaV07CisgICAgICAgICAgICBib29sZWFuIHZhbGlkID0gcGF0LmNoYXJBdCgwKSA9PSAnKyc7CisgICAgICAgICAgICBwYXQgPSBwYXQuc3Vic3RyaW5nKDIpOworICAgICAgICAgICAgRXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBsb2NhbGUgZG9lc24ndCBtYXR0ZXIgaGVyZQorICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KHBhdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgICBlID0gZTE7CisgICAgICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgZSA9IGUxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIG1zZyA9IChlPT1udWxsKSA/ICJzdWNjZXNzIiA6IGUuZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgaWYgKChlPT1udWxsKSA9PSB2YWxpZCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogcGF0dGVybiBcIiIgKyBwYXQgKyAiXCI6ICIgKyBtc2cpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogcGF0dGVybiBcIiIgKyBwYXQgKyAiXCIgc2hvdWxkIGhhdmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgKHZhbGlkPyJzdWNjZWVkZWQiOiJmYWlsZWQiKSArICI7IGdvdCAiICsgbXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgQ3VycmVuY3lBbW91bnQgdXNpbmcgdGhlIGdpdmVuIE51bWJlckZvcm1hdCwgd2l0aAorICAgICAqIHRoZSAnZGVsaW0nIGNoYXJhY3RlciBzZXBhcmF0aW5nIHRoZSBudW1iZXIgYW5kIHRoZSBjdXJyZW5jeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBDdXJyZW5jeUFtb3VudCBwYXJzZUN1cnJlbmN5QW1vdW50KFN0cmluZyBzdHIsIE51bWJlckZvcm1hdCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRlbGltKSAKKyAgICAgICAgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGkgPSBzdHIuaW5kZXhPZihkZWxpbSk7CisgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3lBbW91bnQoZm10LnBhcnNlKHN0ci5zdWJzdHJpbmcoMCxpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3kuZ2V0SW5zdGFuY2Uoc3RyLnN1YnN0cmluZyhpKzEpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBuZXh0IHRva2VuIGZyb20gdGhpcworICAgICAqIGl0ZXJhdG9yLiAgVGhlIGludGVnZXIgd2lsbCBiZSBhbiBpbmRleCBpbnRvIHRoZSBnaXZlbiBsaXN0LCBvcgorICAgICAqIC0xIGlmIHRoZXJlIGFyZSBubyBtb3JlIHRva2Vucywgb3IgLTIgaWYgdGhlIHRva2VuIGlzIG5vdCBvbgorICAgICAqIHRoZSBsaXN0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBrZXl3b3JkSW5kZXgoU3RyaW5nIHRvaykgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8S0VZV09SRFMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0b2suZXF1YWxzKEtFWVdPUkRTW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgS0VZV09SRFNbXSA9IHsKKyAgICAgICAgLyowKi8gInJlZj0iLCAvLyA8cmVmZXJlbmNlIHBhdHRlcm4gdG8gcGFyc2UgbnVtYmVycz4KKyAgICAgICAgLyoxKi8gImxvYz0iLCAvLyA8bG9jYWxlIGZvciBmb3JtYXRzPgorICAgICAgICAvKjIqLyAiZjoiLCAgIC8vIDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPGV4cC4gc3RyaW5nPgorICAgICAgICAvKjMqLyAiZnA6IiwgIC8vIDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPGV4cC4gc3RyaW5nPiA8ZXhwLiBudW1iZXI+CisgICAgICAgIC8qNCovICJydDoiLCAgLy8gPHBhdHRlcm4gb3IgJy0nPiA8KGV4cC4pIG51bWJlcj4gPChleHAuKSBzdHJpbmc+CisgICAgICAgIC8qNSovICJwOiIsICAgLy8gPHBhdHRlcm4gb3IgJy0nPiA8c3RyaW5nPiA8ZXhwLiBudW1iZXI+CisgICAgICAgIC8qNiovICJwZXJyOiIsIC8vIDxwYXR0ZXJuIG9yICctJz4gPGludmFsaWQgc3RyaW5nPgorICAgICAgICAvKjcqLyAicGF0OiIsIC8vIDxwYXR0ZXJuIG9yICctJz4gPGV4cC4gdG9QYXR0ZXJuIG9yICctJyBvciAnZXJyJz4KKyAgICAgICAgLyo4Ki8gImZwYzoiLCAvLyA8bG9jIG9yICctJz4gPGN1cnIuYW10PiA8ZXhwLiBzdHJpbmc+IDxleHAuIGN1cnIuYW10PgorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZXMoKSB7CisgICAgICAgIFN0cmluZyBjYXNlRmlsZU5hbWUgPSAiTnVtYmVyRm9ybWF0VGVzdENhc2VzLnR4dCI7CisgICAgICAgIGphdmEuaW8uSW5wdXRTdHJlYW0gaXMgPSBOdW1iZXJGb3JtYXRUZXN0LmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oY2FzZUZpbGVOYW1lKTsKKworICAgICAgICBSZXNvdXJjZVJlYWRlciByZWFkZXIgPSBuZXcgUmVzb3VyY2VSZWFkZXIoaXMsIGNhc2VGaWxlTmFtZSk7CisgICAgICAgIFRva2VuSXRlcmF0b3IgdG9rZW5zID0gbmV3IFRva2VuSXRlcmF0b3IocmVhZGVyKTsKKworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgiZW4iLCAiVVMiLCAiIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgcmVmID0gbnVsbCwgZm10ID0gbnVsbDsKKyAgICAgICAgTWVhc3VyZUZvcm1hdCBtZm10ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHBhdCA9IG51bGwsIHN0ciA9IG51bGwsIG1sb2MgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRvayA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRvayA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgd2hlcmUgPSAiKCIgKyB0b2tlbnMuZ2V0TGluZU51bWJlcigpICsgIikgIjsKKyAgICAgICAgICAgICAgICBpbnQgY21kID0ga2V5d29yZEluZGV4KHRvayk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjbWQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlZj0gPHJlZmVyZW5jZSBwYXR0ZXJuPgorICAgICAgICAgICAgICAgICAgICByZWYgPSBuZXcgRGVjaW1hbEZvcm1hdCh0b2tlbnMubmV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgLy8gbG9jPSA8bG9jYWxlPgorICAgICAgICAgICAgICAgICAgICBsb2MgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKHRva2Vucy5uZXh0KCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDI6IC8vIGY6CisgICAgICAgICAgICAgICAgY2FzZSAzOiAvLyBmcDoKKyAgICAgICAgICAgICAgICBjYXNlIDQ6IC8vIHJ0OgorICAgICAgICAgICAgICAgIGNhc2UgNTogLy8gcDoKKyAgICAgICAgICAgICAgICAgICAgdG9rID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b2suZXF1YWxzKCItIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdCA9IHRvazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4od2hlcmUgKyAiUGF0dGVybiBcIiIgKyBwYXQgKyAnIicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlhZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMubmV4dCgpOyAvLyBjb25zdW1lIHJlbWFpbmluZyB0b2tlbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbWQgPT0gMykgdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzdHIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCA9PSAyIHx8IGNtZCA9PSAzIHx8IGNtZCA9PSA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZjogPHBhdHRlcm4gb3IgJy0nPiA8bnVtYmVyPiA8ZXhwLiBzdHJpbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnA6IDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPGV4cC4gc3RyaW5nPiA8ZXhwLiBudW1iZXI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnQ6IDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPHN0cmluZz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbnVtID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciBuID0gKE51bWJlcikgcmVmLnBhcnNlKG51bSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgJyInICsgcGF0ICsgIlwiLmZvcm1hdCgiICsgbnVtICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIsIGZtdC5mb3JtYXQobikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbWQgPT0gMykgeyAvLyBmcDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiA9IChOdW1iZXIpIHJlZi5wYXJzZSh0b2tlbnMubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCAhPSAyKSB7IC8vICE9IGY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyh3aGVyZSArICciJyArIHBhdCArICJcIi5wYXJzZShcIiIgKyBzdHIgKyAiXCIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sIGZtdC5wYXJzZShzdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcDogPHBhdHRlcm4gb3IgJy0nPiA8c3RyaW5nIHRvIHBhcnNlPiA8ZXhwLiBudW1iZXI+CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciBleHAgPSAoTnVtYmVyKSByZWYucGFyc2UoZXhwc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMod2hlcmUgKyAnIicgKyBwYXQgKyAiXCIucGFyc2UoXCIiICsgc3RyICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cCwgZm10LnBhcnNlKHN0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICciJyArIHBhdCArICJcIi5wYXJzZShcIiIgKyBzdHIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiKSB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgICAgICAgICAvLyBwZXJyOiA8cGF0dGVybiBvciAnLSc+IDxpbnZhbGlkIHN0cmluZz4KKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVuZGVyIGNvbnN0cnVjdGlvbiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgICAgICAvLyBwYXQ6IDxwYXR0ZXJuPiA8ZXhwLiB0b1BhdHRlcm4sIG9yICctJyBvciAnZXJyJz4KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RwYXQgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwcGF0ICA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXJyICAgID0gZXhwcGF0LmVxdWFscygiZXJyIik7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0cGF0LmVxdWFscygiLSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgY29tbWFuZCBcInBhdDogLSBlcnJcIiBhdCAiICsgIHRva2Vucy5kZXNjcmliZVBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHBhdCA9IHBhdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZXhwcGF0LmVxdWFscygiLSIpKSBleHBwYXQgPSB0ZXN0cGF0OworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0cGF0ID09IHBhdCkgeyAvLyBbc2ljXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSBmbXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSBuZXcgRGVjaW1hbEZvcm1hdCh0ZXN0cGF0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICJJbnZhbGlkIHBhdHRlcm4gXCIiICsgdGVzdHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIHdhcyBhY2NlcHRlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMod2hlcmUgKyAnIicgKyB0ZXN0cGF0ICsgIlwiLnRvUGF0dGVybigpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcGF0LCBmLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB3aGVyZSArICJJbnZhbGlkIHBhdHRlcm4gXCIiICsgdGVzdHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIHRocmV3IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICJWYWxpZCBwYXR0ZXJuIFwiIiArIHRlc3RwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYWUyLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgODogLy8gZnBjOgorICAgICAgICAgICAgICAgICAgICB0b2sgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRvay5lcXVhbHMoIi0iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWxvYyA9IHRvazsKKyAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbCA9IG5ldyBVTG9jYWxlKG1sb2MpOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm10ID0gTWVhc3VyZUZvcm1hdC5nZXRDdXJyZW5jeUZvcm1hdChsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICJMb2MgXCIiICsgdG9rICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYWUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLm5leHQoKTsgLy8gY29uc3VtZSByZW1haW5pbmcgdG9rZW5zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0ciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcGM6IDxsb2Mgb3IgJy0nPiA8Y3Vyci5hbXQ+IDxleHAuIHN0cmluZz4gPGV4cC4gY3Vyci5hbXQ+CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3VyckFtdCA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQgbiA9IHBhcnNlQ3VycmVuY3lBbW91bnQoY3VyckFtdCwgcmVmLCAnLycpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgImdldEN1cnJlbmN5Rm9ybWF0KCIgKyBtbG9jICsgIikuZm9ybWF0KCIgKyBjdXJyQW10ICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciwgbWZtdC5mb3JtYXQobikpOworICAgICAgICAgICAgICAgICAgICAgICAgbiA9IHBhcnNlQ3VycmVuY3lBbW91bnQodG9rZW5zLm5leHQoKSwgcmVmLCAnLycpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgImdldEN1cnJlbmN5Rm9ybWF0KCIgKyBtbG9jICsgIikucGFyc2UoXCIiICsgc3RyICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiwgKEN1cnJlbmN5QW1vdW50KSBtZm10LnBhcnNlT2JqZWN0KHN0cikpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICciJyArIHBhdCArICJcIi5wYXJzZShcIiIgKyBzdHIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiKSB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAtMToKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVua25vd24gY29tbWFuZCBcIiIgKyB0b2sgKyAiXCIgYXQgIiArIHRva2Vucy5kZXNjcmliZVBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChqYXZhLmlvLklPRXhjZXB0aW9uIGUpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKy8vI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRpbmcoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSAoRGVjaW1hbEZvcm1hdCkgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoVUxvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgaWYgKGZhbHNlKSB7IC8vIGZvciBkZWJ1Z2dpbmcgc3BlY2lmaWMgdmFsdWUKKyAgICAgICAgICAgIG5mLnNldFJvdW5kaW5nTW9kZShCaWdEZWNpbWFsLlJPVU5EX0hBTEZfVVApOworICAgICAgICAgICAgY2hlY2tSb3VuZGluZyhuZiwgbmV3IEJpZ0RlY2ltYWwoIjMwMC4wMzAwMDAwMDAwIiksIDAsIG5ldyBCaWdEZWNpbWFsKCIwLjAyMDAwMDAwMCIpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmdWxsIHRlc3RzCisgICAgICAgIGludFtdIHJvdW5kaW5nSW5jcmVtZW50cyA9IHsxLCAyLCA1LCAyMCwgNTAsIDEwMH07CisgICAgICAgIGludFtdIHRlc3RWYWx1ZXMgPSB7MCwgMzAwfTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0VmFsdWVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBmb3IgKGludCBtb2RlID0gQmlnRGVjaW1hbC5ST1VORF9VUDsgbW9kZSA8IEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOyArK21vZGUpIHsgCisgICAgICAgICAgICAgICAgbmYuc2V0Um91bmRpbmdNb2RlKG1vZGUpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGluY3JlbWVudCA9IDA7IGluY3JlbWVudCA8IHJvdW5kaW5nSW5jcmVtZW50cy5sZW5ndGg7ICsraW5jcmVtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIEJpZ0RlY2ltYWwgYmFzZSA9IG5ldyBCaWdEZWNpbWFsKHRlc3RWYWx1ZXNbal0pOworICAgICAgICAgICAgICAgICAgICBCaWdEZWNpbWFsIHJJbmMgPSBuZXcgQmlnRGVjaW1hbChyb3VuZGluZ0luY3JlbWVudHNbaW5jcmVtZW50XSk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrUm91bmRpbmcobmYsICBiYXNlLCAyMCwgckluYyk7CisgICAgICAgICAgICAgICAgICAgIHJJbmMgPSBuZXcgQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAiKS5kaXZpZGUockluYyk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrUm91bmRpbmcobmYsICBiYXNlLCAyMCwgckluYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjaGVja1JvdW5kaW5nKERlY2ltYWxGb3JtYXQgbmYsIEJpZ0RlY2ltYWwgYmFzZSwgaW50IGl0ZXJhdGlvbnMsIEJpZ0RlY2ltYWwgaW5jcmVtZW50KSB7CisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjICAgICAgICBuZi5zZXRSb3VuZGluZ0luY3JlbWVudChpbmNyZW1lbnQpOworLy8jZWxzZQorICAgICAgICBuZi5zZXRSb3VuZGluZ0luY3JlbWVudChpbmNyZW1lbnQudG9CaWdEZWNpbWFsKCkpOworLy8jZW5kaWYKKyAgICAgICAgQmlnRGVjaW1hbCBsYXN0UGFyc2VkID0gbmV3IEJpZ0RlY2ltYWwoSW50ZWdlci5NSU5fVkFMVUUpOyAvLyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHJvdW5kaW5nIGlzIG1vbm90b25pYworICAgICAgICBmb3IgKGludCBpID0gLWl0ZXJhdGlvbnM7IGkgPD0gaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICBCaWdEZWNpbWFsIGlWYWx1ZSA9IGJhc2UuYWRkKGluY3JlbWVudC5tdWx0aXBseShuZXcgQmlnRGVjaW1hbChpKSkubW92ZVBvaW50TGVmdCgxKSk7CisgICAgICAgICAgICBCaWdEZWNpbWFsIHNtYWxsSW5jcmVtZW50ID0gbmV3IEJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKTsKKyAgICAgICAgICAgIGlmIChpVmFsdWUuc2lnbnVtKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHNtYWxsSW5jcmVtZW50Lm11bHRpcGx5KGlWYWx1ZSk7IC8vIHNjYWxlIHVubGVzcyB6ZXJvCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB3ZSBub3Qgb25seSB0ZXN0IHRoZSB2YWx1ZSwgYnV0IHNvbWUgdmFsdWVzIGluIGEgc21hbGwgcmFuZ2UgYXJvdW5kIGl0LgorICAgICAgICAgICAgbGFzdFBhcnNlZCA9IGNoZWNrUm91bmQobmYsIGlWYWx1ZS5zdWJ0cmFjdChzbWFsbEluY3JlbWVudCksIGxhc3RQYXJzZWQpOworICAgICAgICAgICAgbGFzdFBhcnNlZCA9IGNoZWNrUm91bmQobmYsIGlWYWx1ZSwgbGFzdFBhcnNlZCk7CisgICAgICAgICAgICBsYXN0UGFyc2VkID0gY2hlY2tSb3VuZChuZiwgaVZhbHVlLmFkZChzbWFsbEluY3JlbWVudCksIGxhc3RQYXJzZWQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBCaWdEZWNpbWFsIGNoZWNrUm91bmQoRGVjaW1hbEZvcm1hdCBuZiwgQmlnRGVjaW1hbCBpVmFsdWUsIEJpZ0RlY2ltYWwgbGFzdFBhcnNlZCkgeworICAgICAgICBTdHJpbmcgZm9ybWF0ZWRCaWdEZWNpbWFsID0gbmYuZm9ybWF0KGlWYWx1ZSk7CisgICAgICAgIFN0cmluZyBmb3JtYXR0ZWREb3VibGUgPSBuZi5mb3JtYXQoaVZhbHVlLmRvdWJsZVZhbHVlKCkpOworICAgICAgICBpZiAoIWVxdWFsQnV0Rm9yVHJhaWxpbmdaZXJvcyhmb3JtYXRlZEJpZ0RlY2ltYWwsIGZvcm1hdHRlZERvdWJsZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0OiAiICsgaVZhbHVlICsgIiAoIiArIGlWYWx1ZS5kb3VibGVWYWx1ZSgpICsgIikiCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1tb2RlOiAiICsgcm91bmRpbmdNb2RlTmFtZXNbbmYuZ2V0Um91bmRpbmdNb2RlKCldCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1pbmNyZW1lbnQ6ICIgKyBuZi5nZXRSb3VuZGluZ0luY3JlbWVudCgpCisgICAgICAgICAgICAgICAgICArICIsXHRkb3VibGU6ICIgKyBmb3JtYXR0ZWREb3VibGUKKyAgICAgICAgICAgICAgICAgICsgIixcdEJpZ0RlY2ltYWw6ICIgKyBmb3JtYXRlZEJpZ0RlY2ltYWwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlZhbHVlOiAiICsgaVZhbHVlCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1tb2RlOiAiICsgcm91bmRpbmdNb2RlTmFtZXNbbmYuZ2V0Um91bmRpbmdNb2RlKCldCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1pbmNyZW1lbnQ6ICIgKyBuZi5nZXRSb3VuZGluZ0luY3JlbWVudCgpCisgICAgICAgICAgICAgICAgICArICIsXHRkb3VibGU6ICIgKyBmb3JtYXR0ZWREb3VibGUKKyAgICAgICAgICAgICAgICAgICsgIixcdEJpZ0RlY2ltYWw6ICIgKyBmb3JtYXRlZEJpZ0RlY2ltYWwpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBOdW1iZXIgc2hvdWxkIGhhdmUgY29tcGFyZVRvKC4uLikKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgcGFyc2VkID0gdG9CaWdEZWNpbWFsKG5mLnBhcnNlKGZvcm1hdGVkQmlnRGVjaW1hbCkpOworICAgICAgICAgICAgaWYgKGxhc3RQYXJzZWQuY29tcGFyZVRvKHBhcnNlZCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJvdW5kaW5nIHdyb25nIGRpcmVjdGlvbiE6ICIgKyBsYXN0UGFyc2VkICsgIiA+ICIgKyBwYXJzZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFBhcnNlZCA9IHBhcnNlZDsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlBhcnNlIEZhaWx1cmUgd2l0aDogIiArIGZvcm1hdGVkQmlnRGVjaW1hbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhc3RQYXJzZWQ7CisgICAgfQorCisgICAgc3RhdGljIEJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsKE51bWJlciBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlciBpbnN0YW5jZW9mIEJpZ0RlY2ltYWwgPyAoQmlnRGVjaW1hbCkgbnVtYmVyCisgICAgICAgICAgICA6IG51bWJlciBpbnN0YW5jZW9mIEJpZ0ludGVnZXIgPyBuZXcgQmlnRGVjaW1hbCgoQmlnSW50ZWdlciludW1iZXIpCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgOiBudW1iZXIgaW5zdGFuY2VvZiBqYXZhLm1hdGguQmlnRGVjaW1hbCA/IG5ldyBCaWdEZWNpbWFsKChqYXZhLm1hdGguQmlnRGVjaW1hbCludW1iZXIpCisvLyNlbmRpZgorICAgICAgICAgICAgOiBudW1iZXIgaW5zdGFuY2VvZiBEb3VibGUgPyBuZXcgQmlnRGVjaW1hbChudW1iZXIuZG91YmxlVmFsdWUoKSkKKyAgICAgICAgICAgIDogbnVtYmVyIGluc3RhbmNlb2YgRmxvYXQgPyBuZXcgQmlnRGVjaW1hbChudW1iZXIuZmxvYXRWYWx1ZSgpKQorICAgICAgICAgICAgOiBuZXcgQmlnRGVjaW1hbChudW1iZXIubG9uZ1ZhbHVlKCkpOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmdbXSByb3VuZGluZ01vZGVOYW1lcyA9IHsKKyAgICAgICAgIlJPVU5EX1VQIiwgIlJPVU5EX0RPV04iLCAiUk9VTkRfQ0VJTElORyIsICJST1VORF9GTE9PUiIsCisgICAgICAgICJST1VORF9IQUxGX1VQIiwgIlJPVU5EX0hBTEZfRE9XTiIsICJST1VORF9IQUxGX0VWRU4iLAorICAgICAgICAiUk9VTkRfVU5ORUNFU1NBUlkiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZXF1YWxCdXRGb3JUcmFpbGluZ1plcm9zKFN0cmluZyBmb3JtYXR0ZWQxLCBTdHJpbmcgZm9ybWF0dGVkMikgeworICAgICAgICBpZiAoZm9ybWF0dGVkMS5sZW5ndGgoKSA9PSBmb3JtYXR0ZWQyLmxlbmd0aCgpKSByZXR1cm4gZm9ybWF0dGVkMS5lcXVhbHMoZm9ybWF0dGVkMik7CisgICAgICAgIHJldHVybiBzdHJpcEZpbmFsWmVyb3MoZm9ybWF0dGVkMSkuZXF1YWxzKHN0cmlwRmluYWxaZXJvcyhmb3JtYXR0ZWQyKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHN0cmlwRmluYWxaZXJvcyhTdHJpbmcgZm9ybWF0dGVkKSB7CisgICAgICAgIGludCBsZW4xID0gZm9ybWF0dGVkLmxlbmd0aCgpOworICAgICAgICBjaGFyIGNoOworICAgICAgICB3aGlsZSAobGVuMSA+IDAgJiYgKChjaCA9IGZvcm1hdHRlZC5jaGFyQXQobGVuMS0xKSkgPT0gJzAnIHx8IGNoID09ICcuJykpIC0tbGVuMTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZC5zdWJzdHJpbmcoMCxsZW4xKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBGb3JtYXQtUGFyc2UgdGVzdAorICAgIHB1YmxpYyB2b2lkIGV4cGVjdDIoTnVtYmVyRm9ybWF0IGZtdCwgTnVtYmVyIG4sIFN0cmluZyBleHApIHsKKyAgICAgICAgLy8gRG9uJ3Qgcm91bmQtdHJpcCBmb3JtYXQgdGVzdCwgc2luY2Ugd2UgZXhwbGljaXRseSBkbyBpdAorICAgICAgICBleHBlY3QoZm10LCBuLCBleHAsIGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgZXhwLCBuKTsKKyAgICB9CisKKyAgICAvLyBGb3JtYXQtUGFyc2UgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0MihOdW1iZXJGb3JtYXQgZm10LCBkb3VibGUgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICBleHBlY3QyKGZtdCwgbmV3IERvdWJsZShuKSwgZXhwKTsKKyAgICB9CisKKyAgICAvLyBGb3JtYXQtUGFyc2UgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0MihOdW1iZXJGb3JtYXQgZm10LCBsb25nIG4sIFN0cmluZyBleHApIHsKKyAgICAgICAgZXhwZWN0MihmbXQsIG5ldyBMb25nKG4pLCBleHApOworICAgIH0KKworICAgIC8vIEZvcm1hdCB0ZXN0CisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE51bWJlciBuLCBTdHJpbmcgZXhwLCBib29sZWFuIHJ0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYXcgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7IAorICAgICAgICBmbXQuZm9ybWF0KG4sIHNhdywgcG9zKTsKKyAgICAgICAgU3RyaW5nIHBhdCA9ICgoRGVjaW1hbEZvcm1hdClmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LnRvU3RyaW5nKCkuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgICIgKyBuICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9IFwiIiArCisgICAgICAgICAgICAgICAgICBzYXcgKyAiXCIiKTsKKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBiZSBhYmxlIHRvIHJvdW5kLXRyaXAgdGhlIGZvcm1hdHRlZCBzdHJpbmcgPT4KKyAgICAgICAgICAgIC8vIG51bWJlciA9PiBzdHJpbmcgKGJ1dCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQ6IG51bWJlcgorICAgICAgICAgICAgLy8gPT4gc3RyaW5nID0+IG51bWJlcjIsIG1pZ2h0IGhhdmUgbnVtYmVyMiAhPSBudW1iZXIpOgorICAgICAgICAgICAgaWYgKHJ0KSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgTnVtYmVyIG4yID0gZm10LnBhcnNlKGV4cCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYXcyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICBmbXQuZm9ybWF0KG4yLCBzYXcyLCBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNhdzIudG9TdHJpbmcoKS5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiICsgZXhwICsgIlwiID0+ICIgKyBuMiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+IFwiIiArIHNhdzIgKyAnIicpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgbiArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSBcIiIgKworICAgICAgICAgICAgICAgICAgc2F3ICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHAgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBGb3JtYXQgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE51bWJlciBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIGV4cGVjdChmbXQsIG4sIGV4cCwgdHJ1ZSk7CisgICAgfQorCisgICAgLy8gRm9ybWF0IHRlc3QgKGNvbnZlbmllbmNlKQorICAgIHB1YmxpYyB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBkb3VibGUgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICBleHBlY3QoZm10LCBuZXcgRG91YmxlKG4pLCBleHApOworICAgIH0KKyAgICAKKyAgICAvLyBGb3JtYXQgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIGxvbmcgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICBleHBlY3QoZm10LCBuZXcgTG9uZyhuKSwgZXhwKTsKKyAgICB9CisgICAgCisgICAgLy8gUGFyc2UgdGVzdAorICAgIHB1YmxpYyB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBTdHJpbmcgc3RyLCBOdW1iZXIgbikgeworICAgICAgICBOdW1iZXIgbnVtID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG51bSA9IChOdW1iZXIpIGZtdC5wYXJzZShzdHIpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHBhdCA9ICgoRGVjaW1hbEZvcm1hdClmbXQpLnRvUGF0dGVybigpOworICAgICAgICAvLyBBIGxpdHRsZSB0cmlja3kgaGVyZSAtLSBtYWtlIHN1cmUgRG91YmxlKDEyMzQ1LjApIGFuZAorICAgICAgICAvLyBMb25nKDEyMzQ1KSBtYXRjaC4KKyAgICAgICAgaWYgKG51bS5lcXVhbHMobikgfHwgbnVtLmRvdWJsZVZhbHVlKCkgPT0gbi5kb3VibGVWYWx1ZSgpKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIG51bSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIG51bSArICIsIGV4cGVjdGVkICIgKyBuKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBQYXJzZSB0ZXN0IChjb252ZW5pZW5jZSkKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgZG91YmxlIG4pIHsKKyAgICAgICAgZXhwZWN0KGZtdCwgc3RyLCBuZXcgRG91YmxlKG4pKTsKKyAgICB9CisgICAgCisgICAgLy8gUGFyc2UgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIGxvbmcgbikgeworICAgICAgICBleHBlY3QoZm10LCBzdHIsIG5ldyBMb25nKG4pKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdEN1cnJlbmN5KE51bWJlckZvcm1hdCBuZiwgQ3VycmVuY3kgY3VyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbHVlLCBTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gKERlY2ltYWxGb3JtYXQpIG5mOworICAgICAgICBpZiAoY3VyciAhPSBudWxsKSB7CisgICAgICAgICAgICBmbXQuc2V0Q3VycmVuY3koY3Vycik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KHZhbHVlKS5yZXBsYWNlKCdcdTAwQTAnLCAnICcpOworCisgICAgICAgIGlmIChzLmVxdWFscyhzdHJpbmcpKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB2YWx1ZSArICIgeCAiICsgY3VyciArICIgPT4gIiArIHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB2YWx1ZSArICIgeCAiICsgY3VyciArICIgPT4gIiArIHMgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleHBlY3RQYWQoRGVjaW1hbEZvcm1hdCBmbXQsIFN0cmluZyBwYXQsIGludCBwb3MpIHsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgcGF0LCBwb3MsIDAsIChjaGFyKTApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBleHBlY3RQYWQoRGVjaW1hbEZvcm1hdCBmbXQsIGZpbmFsIFN0cmluZyBwYXQsIGludCBwb3MsIGludCB3aWR0aCwgZmluYWwgY2hhciBwYWQpIHsKKyAgICAgICAgaW50IGFwb3MgPSAwLCBhd2lkdGggPSAwOworICAgICAgICBjaGFyIGFwYWRTdHI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBhcG9zID0gZm10LmdldFBhZFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2lkdGggPSBmbXQuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICAgICAgICAgIGFwYWRTdHIgPSBmbXQuZ2V0UGFkQ2hhcmFjdGVyKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBhcG9zID0gLTE7CisgICAgICAgICAgICBhd2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIGFwYWRTdHIgPSBwYWQ7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGFwb3MgPT0gcG9zICYmIGF3aWR0aCA9PSB3aWR0aCAmJiBhcGFkU3RyID09IHBhZCkgeworICAgICAgICAgICAgbG9nbG4oIk9rICAgXCIiICsgcGF0ICsgIlwiIHBvcz0iCisgICAgICAgICAgICAgICAgICAgICsgYXBvcyArICgocG9zID09IC0xKSA/ICIiIDogIiB3aWR0aD0iICsgYXdpZHRoICsgIiBwYWQ9IiArIGFwYWRTdHIpKTsgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBwYXQgKyAiXCIgcG9zPSIgKyBhcG9zICsgIiB3aWR0aD0iCisgICAgICAgICAgICAgICAgICAgICsgYXdpZHRoICsgIiBwYWQ9IiArIGFwYWRTdHIgKyAiLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICsgcG9zICsgIiAiICsgd2lkdGggKyAiICIgKyBwYWQpOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGV4cGVjdFBhdChEZWNpbWFsRm9ybWF0IGZtdCwgZmluYWwgU3RyaW5nIGV4cCkgeworICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvUGF0dGVybigpOworICAgICAgICBpZiAocGF0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBwYXQgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIiArIHBhdCArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEpCMzgzMigpeworICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IG5ldyBVTG9jYWxlKCJwdF9QVEBjdXJyZW5jeT1QVEUiKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIEN1cnJlbmN5IGN1cnIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBsb2dsbigiXG5OYW1lIG9mIHRoZSBjdXJyZW5jeSBpczogIiArIGN1cnIuZ2V0TmFtZShsb2NhbGUsIEN1cnJlbmN5LkxPTkdfTkFNRSwgbmV3IGJvb2xlYW5bXSB7ZmFsc2V9KSk7CisgICAgICAgIEN1cnJlbmN5QW1vdW50IGNBbXQgPSBuZXcgQ3VycmVuY3lBbW91bnQoMTE1MC41MCwgY3Vycik7CisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeUFtb3VudCBvYmplY3QncyBoYXNoQ29kZSBpczogIiArIGNBbXQuaGFzaENvZGUoKSk7IC8vY292ZXIgaGFzaENvZGUKKyAgICAgICAgU3RyaW5nIHN0ciA9IGZvcm1hdC5mb3JtYXQoY0FtdCk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICIxLDE1MCQ1MCBFc2MuIjsKKyAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhzdHIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IEV4cGVjdGVkOiAiK2V4cGVjdGVkKyIgR290OiAiKyBzdHIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJpY3RQYXJzZSgpIHsKKyAgICAgICAgU3RyaW5nW10gcGFzcyA9IHsKKyAgICAgICAgICAgICIwIiwgICAgICAgICAgIC8vIHNpbmdsZSB6ZXJvIGJlZm9yZSBlbmQgb2YgdGV4dCBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAgIiwgICAgICAgICAgLy8gc2luZ2xlIHplcm8gYXQgZW5kIG9mIG51bWJlciBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAuIiwgICAgICAgICAgLy8gc2luZ2xlIHplcm8gYmVmb3JlIHBlcmlvZCAob3IgZGVjaW1hbCwgaXQncyBhbWJpZ3VvdXMpIGlzIG5vdCBsZWFkaW5nCisgICAgICAgICAgICAiMCwiLCAgICAgICAgICAvLyBzaW5nbGUgemVybyBiZWZvcmUgY29tbWEgKG5vdCBncm91cCBzZXBhcmF0b3IpIGlzIG5vdCBsZWFkaW5nCisgICAgICAgICAgICAiMC4wIiwgICAgICAgICAvLyBzaW5nbGUgemVybyBiZWZvcmUgZGVjaW1hbCBmb2xsb3dlZCBieSBkaWdpdCBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAuICIsICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBiZWZvcmUgcGVyaW9kIChvciBkZWNpbWFsKSBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAuMTAwLDUiLCAgICAgLy8gY29tbWEgc3RvcHMgcGFyc2Ugb2YgZGVjaW1hbCAobm8gZ3JvdXBpbmcpCisgICAgICAgICAgICAiLjAwIiwgICAgICAgICAvLyBsZWFkaW5nIGRlY2ltYWwgaXMgb2ssIGV2ZW4gd2l0aCB6ZXJvcworICAgICAgICAgICAgIjEyMzQ1NjciLCAgICAgLy8gZ3JvdXAgc2VwYXJhdG9ycyBhcmUgbm90IHJlcXVpcmVkCisgICAgICAgICAgICAiMTIzNDUsICIsICAgICAvLyBjb21tYSBub3QgZm9sbG93ZWQgYnkgZGlnaXQgaXMgbm90IGEgZ3JvdXAgc2VwYXJhdG9yLCBidXQgZW5kIG9mIG51bWJlcgorICAgICAgICAgICAgIjEsMjM0LCAiLCAgICAgLy8gaWYgZ3JvdXAgc2VwYXJhdG9yIGlzIHByZXNlbnQsIGdyb3VwIHNpemVzIG11c3QgYmUgYXBwcm9wcmlhdGUKKyAgICAgICAgICAgICIxLDIzNCw1NjciLCAgIC8vIC4uLnNlY29uZGFyeSB0b28KKyAgICAgICAgICAgICIwRSIsICAgICAgICAgIC8vIGFuIGV4cG9ubmVudCBub3QgZm9sbG93ZWQgYnkgemVybyBvciBkaWdpdHMgaXMgbm90IGFuIGV4cG9uZW50IAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBmYWlsID0geworICAgICAgICAgICAgIjAwIiwgICAgICAgIC8vIGxlYWRpbmcgemVybyBiZWZvcmUgemVybworICAgICAgICAgICAgIjAxMiIsICAgICAgIC8vIGxlYWRpbmcgemVybyBiZWZvcmUgZGlnaXQKKyAgICAgICAgICAgICIwLDQ1NiIsICAgICAvLyBsZWFkaW5nIHplcm8gYmVmb3JlIGdyb3VwIHNlcGFyYXRvcgorICAgICAgICAgICAgIjEsMiIsICAgICAgIC8vIHdyb25nIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgZ3JvdXAgc2VwYXJhdG9yCisgICAgICAgICAgICAiLDAiLCAgICAgICAgLy8gbGVhZGluZyBncm91cCBzZXBhcmF0b3IgYmVmb3JlIHplcm8KKyAgICAgICAgICAgICIsMSIsICAgICAgICAvLyBsZWFkaW5nIGdyb3VwIHNlcGFyYXRvciBiZWZvcmUgZGlnaXQKKyAgICAgICAgICAgICIsLjAyIiwgICAgICAvLyBsZWFkaW5nIGdyb3VwIHNlcGFyYXRvciBiZWZvcmUgZGVjaW1hbAorICAgICAgICAgICAgIjEsLjAyIiwgICAgIC8vIGdyb3VwIHNlcGFyYXRvciBiZWZvcmUgZGVjaW1hbAorICAgICAgICAgICAgIjEsLDIwMCIsICAgIC8vIG11bHRpcGxlIGdyb3VwIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICIxLDQ1IiwgICAgICAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHByaW1hcnkgZ3JvdXAKKyAgICAgICAgICAgICIxLDQ1IHRoYXQiLCAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHByaW1hcnkgZ3JvdXAKKyAgICAgICAgICAgICIxLDQ1LjM0IiwgICAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHByaW1hcnkgZ3JvdXAKKyAgICAgICAgICAgICIxMjM0LDU2NyIsICAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHNlY29uZGFyeSBncm91cAorICAgICAgICAgICAgIjEyLDM0LDU2NyIsIC8vIHdyb25nIG51bWJlciBvZiBkaWdpdHMgaW4gc2Vjb25kYXJ5IGdyb3VwCisgICAgICAgICAgICAiMSwyMyw0NTYsNzg5MCIsIC8vIHdyb25nIG51bWJlciBvZiBkaWdpdHMgaW4gcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IGdyb3VwcworICAgICAgICB9OworCisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSAoRGVjaW1hbEZvcm1hdCkgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgcnVuU3RyaWN0UGFyc2VCYXRjaChuZiwgcGFzcywgZmFpbCk7CisKKyAgICAgICAgU3RyaW5nW10gc2NpZW50aWZpY1Bhc3MgPSB7CisgICAgICAgICAgICAiMEUyIiwgICAgICAvLyBzaW5nbGUgemVybyBiZWZvcmUgZXhwb25lbnQgaXMgb2sKKyAgICAgICAgICAgICIxMjM0RTIiLCAgIC8vIGFueSBudW1iZXIgb2YgZGlnaXRzIGJlZm9yZSBleHBvbmVudCBpcyBvaworICAgICAgICAgICAgIjEsMjM0RSIsICAgLy8gYW4gZXhwb25lbnQgc3RyaW5nIG5vdCBmb2xsb3dlZCBieSB6ZXJvIG9yIGRpZ2l0cyBpcyBub3QgYW4gZXhwb25lbnQKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gc2NpZW50aWZpY0ZhaWwgPSB7CisgICAgICAgICAgICAiMDBFMiIsICAgICAvLyBkb3VibGUgemVyb3MgZmFpbAorICAgICAgICAgICAgIjEsMjM0RTIiLCAgLy8gZ3JvdXAgc2VwYXJhdG9ycyB3aXRoIGV4cG9uZW50IGZhaWwKKyAgICAgICAgfTsKKworICAgICAgICBuZiA9IChEZWNpbWFsRm9ybWF0KSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBydW5TdHJpY3RQYXJzZUJhdGNoKG5mLCBzY2llbnRpZmljUGFzcywgc2NpZW50aWZpY0ZhaWwpOworCisgICAgICAgIFN0cmluZ1tdIG1peGVkUGFzcyA9IHsKKyAgICAgICAgICAgICIxMiwzNCw1NjciLAorICAgICAgICAgICAgIjEyLDM0LDU2NywiLAorICAgICAgICAgICAgIjEyLDM0LDU2NywgdGhhdCIsCisgICAgICAgICAgICAiMTIsMzQsNTY3IHRoYXQiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBtaXhlZEZhaWwgPSB7CisgICAgICAgICAgICAiMTIsMzQsNTYiLAorICAgICAgICAgICAgIjEyLDM0LDU2LCIsCisgICAgICAgICAgICAiMTIsMzQsNTYsIHRoYXQgIiwKKyAgICAgICAgICAgICIxMiwzNCw1NiB0aGF0IiwKKyAgICAgICAgfTsKKworICAgICAgICBuZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjLCMjMC4jIik7CisgICAgICAgIHJ1blN0cmljdFBhcnNlQmF0Y2gobmYsIG1peGVkUGFzcywgbWl4ZWRGYWlsKTsKKyAgICB9CisKKyAgICB2b2lkIHJ1blN0cmljdFBhcnNlQmF0Y2goRGVjaW1hbEZvcm1hdCBuZiwgU3RyaW5nW10gcGFzcywgU3RyaW5nW10gZmFpbCkgeworICAgICAgICBuZi5zZXRQYXJzZVN0cmljdChmYWxzZSk7CisgICAgICAgIHJ1blN0cmljdFBhcnNlVGVzdHMoInNob3VsZCBwYXNzIiwgbmYsIHBhc3MsIHRydWUpOworICAgICAgICBydW5TdHJpY3RQYXJzZVRlc3RzKCJzaG91bGQgYWxzbyBwYXNzIiwgbmYsIGZhaWwsIHRydWUpOworICAgICAgICBuZi5zZXRQYXJzZVN0cmljdCh0cnVlKTsKKyAgICAgICAgcnVuU3RyaWN0UGFyc2VUZXN0cygic2hvdWxkIHN0aWxsIHBhc3MiLCBuZiwgcGFzcywgdHJ1ZSk7CisgICAgICAgIHJ1blN0cmljdFBhcnNlVGVzdHMoInNob3VsZCBmYWlsIiwgbmYsIGZhaWwsIGZhbHNlKTsKKyAgICB9CisKKyAgICB2b2lkIHJ1blN0cmljdFBhcnNlVGVzdHMoU3RyaW5nIG1zZywgRGVjaW1hbEZvcm1hdCBuZiwgU3RyaW5nW10gdGVzdHMsIGJvb2xlYW4gcGFzcykgeworICAgICAgICBsb2dsbigiIik7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiAnIiArIG5mLnRvUGF0dGVybigpICsgIiciKTsKKyAgICAgICAgbG9nbG4obXNnKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHRlc3RzW2ldOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgTnVtYmVyIG4gPSBuZi5wYXJzZShzdHIsIHBwKTsKKyAgICAgICAgICAgIFN0cmluZyBmb3JtYXR0ZWQgPSBuICE9IG51bGwgPyBuZi5mb3JtYXQobikgOiAibnVsbCI7CisgICAgICAgICAgICBTdHJpbmcgZXJyID0gcHAuZ2V0RXJyb3JJbmRleCgpID09IC0xID8gIiIgOiAiKGVycm9yIGF0ICIgKyBwcC5nZXRFcnJvckluZGV4KCkgKyAiKSI7CisgICAgICAgICAgICBpZiAoKGVyci5sZW5ndGgoKSA9PSAwKSAhPSBwYXNzKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiciICsgc3RyICsgIicgcGFyc2VkICciICsgCisgICAgICAgICAgICAgICAgICAgICAgc3RyLnN1YnN0cmluZygwLCBwcC5nZXRJbmRleCgpKSArIAorICAgICAgICAgICAgICAgICAgICAgICInIHJldHVybmVkICIgKyBuICsgIiBmb3JtYXRzIHRvICciICsgCisgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkICsgIicgIiArIGVycik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChlcnIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVyciA9ICJnb3QgZXhwZWN0ZWQgIiArIGVycjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIiciICsgc3RyICsgIicgcGFyc2VkICciICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHIuc3Vic3RyaW5nKDAsIHBwLmdldEluZGV4KCkpICsgCisgICAgICAgICAgICAgICAgICAgICAgIicgcmV0dXJuZWQgIiArIG4gKyAiIGZvcm1hdHMgdG8gJyIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgKyAiJyAiICsgZXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI1MjUxKCl7CisgICAgICAgIC8vc2F2ZSBkZWZhdWx0IGxvY2FsZQorICAgICAgICBVTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KG5ldyBVTG9jYWxlKCJxcl9RUiIpKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mMSA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICAvL3Jlc2V0IGRlZmF1bHQgbG9jYWxlCisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChkZWZhdWx0TG9jYWxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFyc2VSZXR1cm5UeXBlKCkgeworICAgICAgICBTdHJpbmdbXSBkZWZhdWx0Tm9uQmlnRGVjaW1hbHMgPSB7CisgICAgICAgICAgICAiMTIzIiwgICAgICAvLyBMb25nCisgICAgICAgICAgICAiMTIzLjAiLCAgICAvLyBMb25nCisgICAgICAgICAgICAiMC4wIiwgICAgICAvLyBMb25nCisgICAgICAgICAgICAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiICAgICAgLy8gQmlnSW50ZWdlcgorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGRvdWJsZXMgPSB7CisgICAgICAgICAgICAiLTAuMCIsCisgICAgICAgICAgICAiTmFOIiwKKyAgICAgICAgICAgICJcdTIyMUUiICAgIC8vIEluZmluaXR5CisgICAgICAgIH07CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIiwgc3ltKTsKKworICAgICAgICBpZiAobmYuaXNQYXJzZUJpZ0RlY2ltYWwoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlzUGFyc2VEZWNpbWFsKCkgbXVzdCByZXR1cm4gZmFsc2UgYnkgZGVmYXVsdCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaXNQYXJzZUJpZ0RlY2ltYWwoKSBpcyBmYWxzZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHROb25CaWdEZWNpbWFscy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG5mLnBhcnNlKGRlZmF1bHROb25CaWdEZWNpbWFsc1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKG4gaW5zdGFuY2VvZiBCaWdEZWNpbWFsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZSByZXR1cm5zIEJpZ0RlY2ltYWwgaW5zdGFuY2UiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInBhcnNlIG9mICciICsgZGVmYXVsdE5vbkJpZ0RlY2ltYWxzW2ldICsgIicgdGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gcGFyc2UgcmVzdWx0cyBmb3IgZG91YmxzIG11c3QgYmUgYWx3YXlzIERvdWJsZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRvdWJsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTnVtYmVyIG4gPSBuZi5wYXJzZShkb3VibGVzW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoIShuIGluc3RhbmNlb2YgRG91YmxlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogcGFyc2UgZG9lcyBub3QgcmV0dXJuIERvdWJsZSBpbnN0YW5jZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGFyc2Ugb2YgJyIgKyBkb3VibGVzW2ldICsgIicgdGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmb3JjZSB0aGlzIERlY2ltYWxGb3JtYXQgdG8gcmV0dXJuIEJpZ0RlY2ltYWwKKyAgICAgICAgbmYuc2V0UGFyc2VCaWdEZWNpbWFsKHRydWUpOworICAgICAgICBpZiAoIW5mLmlzUGFyc2VCaWdEZWNpbWFsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpc1BhcnNlQmlnRGVjaW1hbCgpIG11c3QgcmV0dXJuIHRydWUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlzUGFyc2VCaWdEZWNpbWFsKCkgaXMgdHJ1ZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHROb25CaWdEZWNpbWFscy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG5mLnBhcnNlKGRlZmF1bHROb25CaWdEZWNpbWFsc1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCEobiBpbnN0YW5jZW9mIEJpZ0RlY2ltYWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZSBkb2VzIG5vdCByZXR1cm4gQmlnRGVjaW1hbCBpbnN0YW5jZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGFyc2Ugb2YgJyIgKyBkZWZhdWx0Tm9uQmlnRGVjaW1hbHNbaV0gKyAiJyB0aHJldyBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBwYXJzZSByZXN1bHRzIGZvciBkb3VibHMgbXVzdCBiZSBhbHdheXMgRG91YmxlCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG91Ymxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG5mLnBhcnNlKGRvdWJsZXNbaV0pOworICAgICAgICAgICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBEb3VibGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZSBkb2VzIG5vdCByZXR1cm4gRG91YmxlIGluc3RhbmNlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBvZiAnIiArIGRvdWJsZXNbaV0gKyAiJyB0aHJldyBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjUzNTgoKSB7CisgICAgICAgIGludCBudW1UaHJlYWRzID0gMTA7CisgICAgICAgIFN0cmluZyBudW1zdHIgPSAiMTIzNDUiOworICAgICAgICBkb3VibGUgZXhwZWN0ZWQgPSAxMjM0NTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMuIyIsIHN5bSk7CisgICAgICAgIEFycmF5TGlzdCBlcnJvcnMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAgUGFyc2VUaHJlYWRKQjUzNThbXSB0aHJlYWRzID0gbmV3IFBhcnNlVGhyZWFkSkI1MzU4W251bVRocmVhZHNdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVRocmVhZHM7IGkrKykgeworICAgICAgICAgICAgdGhyZWFkc1tpXSA9IG5ldyBQYXJzZVRocmVhZEpCNTM1OCgoRGVjaW1hbEZvcm1hdClmbXQuY2xvbmUoKSwgbnVtc3RyLCBleHBlY3RlZCwgZXJyb3JzKTsKKyAgICAgICAgICAgIHRocmVhZHNbaV0uc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVRocmVhZHM7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0aHJlYWRzW2ldLmpvaW4oKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGllKSB7CisgICAgICAgICAgICAgICAgaWUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVycm9ycy5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGVyckJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXJyb3JzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgZXJyQnVmLmFwcGVuZCgoU3RyaW5nKWVycm9ycy5nZXQoaSkpOworICAgICAgICAgICAgICAgIGVyckJ1Zi5hcHBlbmQoIlxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGVyckJ1Zik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBjbGFzcyBQYXJzZVRocmVhZEpCNTM1OCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIHByaXZhdGUgRGVjaW1hbEZvcm1hdCBkZWNmbXQ7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIG51bXN0cjsKKyAgICAgICAgcHJpdmF0ZSBkb3VibGUgZXhwZWN0OworICAgICAgICBwcml2YXRlIEFycmF5TGlzdCBlcnJvcnM7CisKKyAgICAgICAgcHVibGljIFBhcnNlVGhyZWFkSkI1MzU4KERlY2ltYWxGb3JtYXQgZGVjZm10LCBTdHJpbmcgbnVtc3RyLCBkb3VibGUgZXhwZWN0LCBBcnJheUxpc3QgZXJyb3JzKSB7CisgICAgICAgICAgICB0aGlzLmRlY2ZtdCA9IGRlY2ZtdDsKKyAgICAgICAgICAgIHRoaXMubnVtc3RyID0gbnVtc3RyOworICAgICAgICAgICAgdGhpcy5leHBlY3QgPSBleHBlY3Q7CisgICAgICAgICAgICB0aGlzLmVycm9ycyA9IGVycm9yczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIE51bWJlciBuID0gZGVjZm10LnBhcnNlKG51bXN0cik7CisgICAgICAgICAgICAgICAgICAgIGlmIChuLmRvdWJsZVZhbHVlKCkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQoZXJyb3JzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFkZChuZXcgU3RyaW5nKCJCYWQgcGFyc2UgcmVzdWx0IC0gZXhwZWN0ZWQ6IiArIGV4cGVjdCArICIgYWN0dWFsOiIgKyBuLmRvdWJsZVZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZChlcnJvcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hZGQobmV3IFN0cmluZyh0LmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiAtICIgKyB0LmdldE1lc3NhZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzN2Y1NjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFRlc3RDYXNlcy50eHQKQEAgLTAsMCArMSw4NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEF1dGhvcjogQWxhbiBMaXUKKyMgQ3JlYXRlZDogTWFyY2ggMTUgMjAwNAorIyBTaW5jZTogSUNVIDMuMAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCityZWY9ICIjLiMiCisKK3J0OiAgIjAuIyMjIiAgMS4wICAgICAgICAgIjEiICAgICAgICAgCisKKyMgQmFzaWNzCitmcDogICIwLiMjIyMiIDAuMTAwMDUgICAgICIwLjEiICAgICAgICAwLjEKK2ZwOiAgLSAgICAgICAgMC4xMDAwNiAgICAgIjAuMTAwMSIgICAgIDAuMTAwMQorcGF0OiAtICAgICAgICAiIzAuIyMjIyIKK2ZwOiAgIiMuIyMjIyIgMC4xMDAwNSAgICAgIjAuMSIgICAgICAgIDAuMQorcGF0OiAtICAgICAgICAiIzAuIyMjIyIKKworcnQ6ICAiMCIgICAgICAxMjM0ICAgICAgICAiMTIzNCIKK3BhdDogLSAgICAgICAgIiMwIgorCisjIFNpZ25pZmljYW50IGRpZ2l0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCitmcDogICJAQEAiICAgIDEuMjM0NTY3ICAgICIxLjIzIiAgICAgICAxLjIzCitmcDogIC0gICAgICAgIDEyMzQ1NjcgICAgICIxMjMwMDAwIiAgICAxMjMwMDAwCitmcDogIC0gICAgICAgIDAuMDEyMzQ1ICAgICIwLjAxMjMiICAgICAwLjAxMjMKK3BhdDogLSAgICAgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorZnA6ICAiIyxAQEAiICAxMjM0NTY3ICAgICAiMSwyMzAsMDAwIiAgMTIzMDAwMAorcGF0OiAtICAgICAgICAiIyxAQEAiCitydDogICJAQEBAIiAgIDAuMDAxMiAgICAgICIwLjAwMTIwMCIgIAorZnA6ICAtICAgICAgICAwLjk5OTk5ICAgICAiMS4wMDAiICAgICAgMQorcGF0OiAtICAgICAgICAtCitydDogICJAIyMjIiAgIDAuMDAxMjMgICAgICIwLjAwMTIzIiAgIAorcnQ6ICAtICAgICAgICAxMjMwMDAgICAgICAiMTIzMDAwIiAgICAKK2ZwOiAgLSAgICAgICAgMTIzNDU2ICAgICAgIjEyMzUwMCIgICAgIDEyMzUwMAorZnA6ICAtICAgICAgICAxMi4zNDU2ICAgICAiMTIuMzUiICAgICAgMTIuMzUKK2ZwOiAgLSAgICAgICAgMC4wMTIzNDU2ICAgIjAuMDEyMzUiICAgIDAuMDEyMzUKK3BhdDogLSAgICAgICAgLQorZnA6ICAiQCwjIyMiICAyNzE4MiAgICAgICAiMjcsMTgwIiAgICAgMjcxODAKK3J0OiAgLSAgICAgICAgMTIzMDAwICAgICAgIjEyMywwMDAiICAgCitmcDogIC0gICAgICAgIDAuOTk5OTkgICAgICIxIiAgICAgICAgICAxCitydDogIC0gICAgICAgIDAuOTk5OSAgICAgICIwLjk5OTkiICAgIAorcGF0OiAtICAgICAgICAtCitydDogICJAIyNFMCIgIDIwMDAwICAgICAgICIyRTQiCitydDogIC0gICAgICAgIDI3MDAwICAgICAgICIyLjdFNCIgICAgIAorcnQ6ICAtICAgICAgICAyNzEwMCAgICAgICAiMi43MUU0IgorZnA6ICAtICAgICAgICAyNzE4MiAgICAgICAiMi43MkU0IiAgICAgMjcyMDAKK3BhdDogLSAgICAgICAgLQorcnQ6ICAiQEBARTAiICAyMDAwMCAgICAgICAiMi4wMEU0IgorcnQ6ICAtICAgICAgICAyNzAwMCAgICAgICAiMi43MEU0IiAgICAKK3J0OiAgLSAgICAgICAgMjcxMDAgICAgICAgIjIuNzFFNCIKK2ZwOiAgLSAgICAgICAgMjcxODIgICAgICAgIjIuNzJFNCIgICAgIDI3MjAwCitwYXQ6IC0gICAgICAgIC0KK2ZwOiAgIiMsQEAjIyIgMzE0MTU2ICAgICAgIjMxLDQyMDAiICAgIDMxNDIwMAorcnQ6ICAtICAgICAgICAzICAgICAgICAgICAiMy4wIiAgICAgICAKK3J0OiAgLSAgICAgICAgNTAwMCAgICAgICAgIjUwMDAiICAgICAgCitydDogIC0gICAgICAgIDAuMDA1ICAgICAgICIwLjAwNTAiICAgIAorcGF0OiAtICAgICAgICAtCitmcDogICJAQEBAQEAiIDEyMzQ1Ni43ICAgICIxMjM0NTciICAgICAxMjM0NTcKK3BhdDogLSAgICAgICAgLQorCitwYXQ6ICIjIyxAQCMjIiAiIyxAQCMjIgorcGF0OiAiIyNAQCMjIiAgIkBAIyMiCisKK3BhdDogIkBALkBAIiAgZXJyICAjIGRlY2ltYWwgc2VwLiBkaXNhbGxvd2VkIGluIHNpZy4gZGlnaXRzCitwYXQ6ICJAI0AiICAgIGVyciAgIyBvbmx5IG9uZSBjbHVzdGVyIG9mIHNpZy4gZGlnaXRzCitwYXQ6ICJAQDAiICAgIGVyciAgIyBlaXRoZXIgQCBvciAwLCBub3QgYm90aAorCisjIE51bWJlclJlZ3Jlc3Npb24vVGVzdDQxNDAwMDkKK3J0OiAgIiIgICAgICAgMTIzLjQ1NiAgICAgIjEyMy40NTYiCitydDogICIiICAgICAgIC0xMjMuNDU2ICAgICItMTIzLjQ1NiIKKworIyBDdXJyZW5jeQorZnBjOiAiZW5fVVMiICAgICAgICAxMjM0LjU2L1VTRCAgIiQxLDIzNC41NiIgICAgMTIzNC41Ni9VU0QKK2ZwYzogLSAgICAgICAgICAgICAgMTIzNC41Ni9KUFkgICJcdTAwQTUxLDIzNSIgIDEyMzUvSlBZCisjIElTTyBjb2RlcyB0aGF0IG92ZXJsYXAgZGlzcGxheSBuYW1lcyAoUVFRIHZzLiBRKQorZnBjOiAtICAgICAgICAgICAgICAxMjMvUVFRICAgICAgIlFRUTEyMy4wMCIgICAgMTIzL1FRUSAgICMgUVFRIGlzIGZha2UKK2ZwYzogLSAgICAgICAgICAgICAgMTIzL0dUUSAgICAgICJRMTIzLjAwIiAgICAgIDEyMy9HVFEKKyMgQ2hvaWNlRm9ybWF0LWJhc2VkIGRpc3BsYXkgbmFtZXMKK2ZwYzogLSAgICAgICAgICAgICAgMS9JTlIgICAgICAgICJSZS4xLjAwIiAgICAgIDEvSU5SCitmcGM6IC0gICAgICAgICAgICAgIDIvSU5SICAgICAgICAiUnMuMi4wMCIgICAgICAyL0lOUgorIyBEaXNwbGF5IG5hbWVzIHdpdGggc2hhcmVkIHByZWZpeCAoWUREIHZzLiBZKQorZnBjOiAtICAgICAgICAgICAgICAxMDAvWUREICAgICAgIllERDEwMC4wMCIgICAgMTAwL1lERAorZnBjOiAtICAgICAgICAgICAgICAxMDAvQ05ZICAgICAgIlkxMDAuMDAiICAgICAgMTAwL0NOWQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlclJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41OTQ4MjY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEKQEAgLTAsMCArMSwxODUwIEBACisvLyMjaGVhZGVyCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0Lk51bWJlclJlZ3Jlc3Npb24KKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L051bWJlclJlZ3Jlc3Npb24uamF2YQorICoqLworIAorLyoqCisgKiBAdGVzdCAxLjQ5IDAxLzA1LzIxCisgKiBAYnVnIDQwNTIyMjMgNDA1OTg3MCA0MDYxMzAyIDQwNjI0ODYgNDA2NjY0NiA0MDY4NjkzIDQwNzA3OTggNDA3MTAwNSA0MDcxMDE0CisgKiA0MDcxNDkyIDQwNzE4NTkgNDA3NDQ1NCA0MDc0NjIwIDQwNzU3MTMgNDA4MzAxOCA0MDg2NTc1IDQwODcyNDQgNDA4NzI0NQorICogNDA4NzI1MSA0MDg3NTM1IDQwODgxNjEgNDA4ODUwMyA0MDkwNDg5IDQwOTA1MDQgNDA5MjQ4MCA0MDkyNTYxIDQwOTU3MTMKKyAqIDQwOTg3NDEgNDA5OTQwNCA0MTAxNDgxIDQxMDY2NTggNDEwNjY2MiA0MTA2NjY0IDQxMDg3MzggNDExMDkzNiA0MTIyODQwCisgKiA0MTI1ODg1IDQxMzQwMzQgNDEzNDMwMCA0MTQwMDA5IDQxNDE3NTAgNDE0NTQ1NyA0MTQ3Mjk1IDQxNDc3MDYgNDE2MjE5OAorICogNDE2Mjg1MiA0MTY3NDk0IDQxNzA3OTggNDE3NjExNCA0MTc5ODE4IDQxODU3NjEgNDIxMjA3MiA0MjEyMDczIDQyMTY3NDIKKyAqIDQyMTc2NjEgNDI0MzAxMSA0MjQzMTA4IDQzMzAzNzcgNDIzMzg0MAorICogQHN1bW1hcnkgUmVncmVzc2lvbiB0ZXN0cyBmb3IgTnVtYmVyRm9ybWF0IGFuZCBhc3NvY2lhdGVkIGNsYXNzZXMKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIE51bWJlclJlZ3Jlc3Npb24gZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE51bWJlclJlZ3Jlc3Npb24oKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFVVJPID0gJ1x1MjBhYyc7CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQuZXF1YWxzIGNvbXBhcmluZyB3aXRoIG51bGwgc2hvdWxkIGFsd2F5cyByZXR1cm4gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzU3MTMoKXsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IHRtcCA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKyAgICAgICAgICAgIGlmICghdG1wLmVxdWFscyhudWxsKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiTnVtYmVyRm9ybWF0LmVxdWFscyBwYXNzZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIihuZXcgTXlOdW1iZXJGb3JtYXRUZXN0KCkpLmVxdWFscyhudWxsKSB0aHJvd3MgdW5leHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdC5lcXVhbHMgY29tcGFyaW5nIHR3byBvYmogZXF1YWwgZXZlbiB0aGUgc2V0R3JvdXBpbmdVc2VkCisgICAgICogZmxhZyBpcyBkaWZmZXJlbnQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzQ2MjAoKSB7CisKKyAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IG5mMSA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKyAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IG5mMiA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKworICAgICAgICBuZjEuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgbmYyLnNldEdyb3VwaW5nVXNlZCh0cnVlKTsKKworICAgICAgICBpZiAobmYxLmVxdWFscyhuZjIpKSBlcnJsbigiVGVzdCBmb3IgYnVnIDQwNzQ2MjAgZmFpbGVkIik7CisgICAgICAgIGVsc2UgbG9nbG4oIlRlc3QgZm9yIGJ1ZyA0MDc0NjIwIHBhc3NlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBpbmNvcnJlY3RseSB1c2VzIG1heEZyYWN0aW9uRGlnaXRzIHNldHRpbmcuCisgICAgICovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4ODE2MSAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRvdWJsZSBkID0gMTAwOworICAgICAgICBkZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMCk7CisgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxNik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzQnVmMSA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigiZCA9ICIgKyBkKTsKKyAgICAgICAgbG9nbG4oIm1heEZyYWN0aW9uRGlnaXRzID0gIiArIGRmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgbG9nbG4oIiBmb3JtYXQoZCkgPSAnIiArIGRmLmZvcm1hdChkLCBzQnVmMSwgZnAxKSArICInIik7CisgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxNyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzQnVmMiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigibWF4RnJhY3Rpb25EaWdpdHMgPSAiICsgZGYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgICAgICBkZi5mb3JtYXQoZCwgc0J1ZjIsIGZwMik7CisgICAgICAgIGlmICghc0J1ZjIudG9TdHJpbmcoKS5lcXVhbHMoIjEwMCIpKQorICAgICAgICAgICAgZXJybG4oIiBmb3JtYXQoZCkgPSAnIiArIHNCdWYyICsgIiciKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdFN5bWJvbHMgc2hvdWxkIGJlIGNsb25lZCBpbiB0aGUgY3RvciBEZWNpbWFsRm9ybWF0LgorICAgICAqIERlY2ltYWxGb3JtYXQoU3RyaW5nLCBEZWNpbWFsRm9ybWF0U3ltYm9scykuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDUgKCl7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wIiwgc3ltYm9scyk7CisgICAgICAgIGxvbmcgbiA9IDEyMzsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZjEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBsb2dsbigiZm9ybWF0KCIgKyBuICsgIikgPSAiICsKKyAgICAgICAgZGYuZm9ybWF0KG4sIGJ1ZjEsIG5ldyBGaWVsZFBvc2l0aW9uKDApKSk7CisgICAgICAgIHN5bWJvbHMuc2V0RGVjaW1hbFNlcGFyYXRvcigncCcpOyAvLyBjaGFuZ2UgdmFsdWUgb2YgZmllbGQKKyAgICAgICAgbG9nbG4oImZvcm1hdCgiICsgbiArICIpID0gIiArCisgICAgICAgIGRmLmZvcm1hdChuLCBidWYyLCBuZXcgRmllbGRQb3NpdGlvbigwKSkpOworICAgICAgICBpZiAoIWJ1ZjEudG9TdHJpbmcoKS5lcXVhbHMoYnVmMi50b1N0cmluZygpKSkKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZvciBidWcgNDA4NzI0NSBmYWlsZWQiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBpbmNvcnJlY3RseSBmb3JtYXRzIDAuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3NTM1ICgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgZGYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoMCk7CisKKyAgICAgICAgZG91YmxlIG4gPSAwOworICAgICAgICBTdHJpbmcgYnVmZmVyID0gbmV3IFN0cmluZygpOworICAgICAgICBidWZmZXIgPSBkZi5mb3JtYXQobik7CisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgICAgIGVycmxuKG4gKyAiOiAnIiArIGJ1ZmZlciArICInIik7CisgICAgICAgIG4gPSAwLjE7CisgICAgICAgIGJ1ZmZlciA9IGRmLmZvcm1hdChuKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgZXJybG4obiArICI6ICciICsgYnVmZmVyICsgIiciKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCBmYWlscyB3aGVuIGdyb3VwaW5nU2l6ZSBpcyBzZXQgdG8gMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4ODUwMyAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRmLnNldEdyb3VwaW5nU2l6ZSgwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oZGYuZm9ybWF0KDEyMywgc0J1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmb3IgYnVnIDQwODg1MDMgZmFpbGVkLiIpOworICAgICAgICB9CisKKyAgICB9CisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UgaXMgd3JvbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjY2NDYgKCkgeworICAgICAgICAvL2Zsb2F0IHJldHVybmZsb2F0ID0gMC4wZjsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBhc3NpZ25GbG9hdFZhbHVlKDIuMDRmKTsKKyAgICAgICAgYXNzaWduRmxvYXRWYWx1ZSgyLjAzZik7CisgICAgICAgIGFzc2lnbkZsb2F0VmFsdWUoMi4wMmYpOworICAgICAgICBhc3NpZ25GbG9hdFZhbHVlKDAuMGYpOworICAgIH0KKworICAgIHB1YmxpYyBmbG9hdCBhc3NpZ25GbG9hdFZhbHVlKGZsb2F0IHJldHVybmZsb2F0KQorICAgIHsKKyAgICAgICAgbG9nbG4oIiBWQUxVRSAiICsgcmV0dXJuZmxvYXQpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmZjb21tb24gPSAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbmZjb21tb24uc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKworICAgICAgICBTdHJpbmcgc3RyaW5nVmFsdWUgPSBuZmNvbW1vbi5mb3JtYXQocmV0dXJuZmxvYXQpLnN1YnN0cmluZygxKTsKKyAgICAgICAgaWYgKEZsb2F0LnZhbHVlT2Yoc3RyaW5nVmFsdWUpLmZsb2F0VmFsdWUoKSAhPSByZXR1cm5mbG9hdCkKKyAgICAgICAgICAgIGVycmxuKCIgRElTUExBWVZBTFVFICIgKyBzdHJpbmdWYWx1ZSk7CisgICAgICAgIHJldHVybiByZXR1cm5mbG9hdDsKKyAgICB9IC8vIEVuZCBPZiBhc3NpZ25GbG9hdFZhbHVlKCkKKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIHBhcnNpbmcgIjAiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk4NzAoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbihmb3JtYXQucGFyc2UoIjAiKS50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsgZXJybG4oIlRlc3QgZm9yIGJ1ZyA0MDU5ODcwIGZhaWxlZCA6ICIgKyBlKTsgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0U3ltYm9sLmVxdWFscyBzaG91bGQgYWx3YXlzIHJldHVybiBmYWxzZSB3aGVuCisgICAgICogY29tcGFyaW5nIHdpdGggbnVsbC4KKyAgICAgKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDgzMDE4ICgpeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmICghZGZzLmVxdWFscyhudWxsKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdCBQYXNzZWQhIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZvciBidWcgNDA4MzAxOCBmYWlsZWQgPT4gTWVzc2FnZSA6ICIgKyBmb28uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGRvZXMgbm90IHJvdW5kIHVwIGNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTQ5MiAoKXsKKyAgICAgICAgZG91YmxlIHggPSAwLjAwMTU5OTk5OworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDQpOworICAgICAgICBTdHJpbmcgb3V0ID0gbmYuZm9ybWF0KHgpOworICAgICAgICBsb2dsbigiMC4wMDE1OTk5OSBmb3JtYXRzIHdpdGggNCBmcmFjdGlvbmFsIGRpZ2l0cyB0byAiICsgb3V0KTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIjAuMDAxNiI7CisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHNwYWNlIGFzIGEgZ3JvdXAgc2VwYXJhdG9yIGZvciBsb2NhbGl6ZWQgcGF0dGVybiBjYXVzZXMKKyAgICAgKiB3cm9uZyBmb3JtYXQuICBXb3JrQXJvdW5kIDogdXNlIG5vbi1icmVha2luZyBzcGFjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NjU3NSgpIHsKKworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b1BhdHRlcm4xOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b0xvY1BhdHRlcm4xOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisKKyAgICAgICAgLy8gTm8gZ3JvdXAgc2VwYXJhdG9yCisgICAgICAgIGxvZ2xuKCIuLi5hcHBseUxvY2FsaXplZFBhdHRlcm4gIyMjLDAwOygjIyMsMDApICIpOworICAgICAgICAoKERlY2ltYWxGb3JtYXQpbmYpLmFwcGx5TG9jYWxpemVkUGF0dGVybigiIyMjLDAwOygjIyMsMDApIik7CisgICAgICAgIGxvZ2xuKCJuZiB0b1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b0xvY1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisKKyAgICAgICAgbG9nbG4oIm5mOiAiICsgbmYuZm9ybWF0KDEyMzQpKTsgLy8gMTIzNCwwMAorICAgICAgICBsb2dsbigibmY6ICIgKyBuZi5mb3JtYXQoLTEyMzQpKTsgLy8gKDEyMzQsMDApCisKKyAgICAgICAgLy8gU3BhY2UgYXMgZ3JvdXAgc2VwYXJhdG9yCisKKyAgICAgICAgbG9nbG4oIi4uLmFwcGx5TG9jYWxpemVkUGF0dGVybiAjICMjIywwMDsoIyAjIyMsMDApICIpOworICAgICAgICAoKERlY2ltYWxGb3JtYXQpbmYpLmFwcGx5TG9jYWxpemVkUGF0dGVybigiI1x1MDBhMCMjIywwMDsoI1x1MDBhMCMjIywwMCkiKTsKKyAgICAgICAgbG9nbG4oIm5mIHRvUGF0dGVybjI6ICIgKyAoKERlY2ltYWxGb3JtYXQpbmYpLnRvUGF0dGVybigpKTsKKyAgICAgICAgbG9nbG4oIm5mIHRvTG9jUGF0dGVybjI6ICIgKyAoKERlY2ltYWxGb3JtYXQpbmYpLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgU3RyaW5nIGJ1ZmZlciA9IG5mLmZvcm1hdCgxMjM0KTsKKyAgICAgICAgaWYgKCFidWZmZXIuZXF1YWxzKCIxXHUwMGEwMjM0LDAwIikpCisgICAgICAgICAgICBlcnJsbigibmYgOiAiICsgYnVmZmVyKTsgLy8gRXhwZWN0IDEgMjM0LDAwCisgICAgICAgIGJ1ZmZlciA9IG5mLmZvcm1hdCgtMTIzNCk7CisgICAgICAgIGlmICghYnVmZmVyLmVxdWFscygiKDFcdTAwYTAyMzQsMDApIikpCisgICAgICAgICAgICBlcnJsbigibmYgOiAiICsgYnVmZmVyKTsgLy8gRXhwZWN0ICgxIDIzNCwwMCkKKworICAgICAgICAvLyBFcnJvbmVvdXNseSBwcmludHM6CisgICAgICAgIC8vIDEyMzQsMDAgLAorICAgICAgICAvLyAoMTIzNCwwMCAsKQorCisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UgcmV0dXJucyB3cm9uZyB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY4NjkzKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCItLS0tLSBUZXN0IEFwcGxpY2F0aW9uIC0tLS0tIik7CisgICAgICAgIC8vUGFyc2VQb3NpdGlvbiBwb3M7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBOdW1iZXIgZCA9IGRmLnBhcnNlKCIxMjMuNTU0NTYiLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghZC50b1N0cmluZygpLmVxdWFscygiMTIzLjU1NDU2IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJSZXN1bHQgLT4gIiArIGQuZG91YmxlVmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBidWdzIDQwNjk3NTQsIDQwNjc4NzgKKyAgICAgKiBudWxsIHBvaW50ZXIgdGhyb3duIHdoZW4gYWNjZXNzaW5nIGEgZGVzZXJpYWxpemVkIERlY2ltYWxGb3JtYXQKKyAgICAgKiBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjk3NTQoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICAvL3RyeSB7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICAgICAgbXlmb3JtYXQgaXQgPSBuZXcgbXlmb3JtYXQoKTsKKyAgICAgICAgICAgIGxvZ2xuKGl0Lk5vdygpKTsKKyAgICAgICAgICAgIG9vcy53cml0ZU9iamVjdChpdCk7CisgICAgICAgICAgICBvb3MuZmx1c2goKTsKKyAgICAgICAgICAgIGJhb3MuY2xvc2UoKTsKKyAgICAgICAgICAgIGxvZ2xuKCJTYXZlIE9LISIpOworICAgICAgICAgICAgYnl0ZSBbXSBieXRlcyA9IGJhb3MudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgIG15Zm9ybWF0IG8gPSAobXlmb3JtYXQpb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIG9pcy5jbG9zZSgpOworICAgICAgICAgICAgaXQuTm93KCk7CisgICAgICAgICAgICBsb2dsbigiTG9hZCBPSyEiKTsKKyAgICAgICAgICAgIGlmICghby5fZGF0ZUZvcm1hdC5lcXVhbHMoaXQuX2RhdGVGb3JtYXQpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiVGhlIHNhdmVkIGFuZCBsb2FkZWQgb2JqZWN0IGFyZSBub3QgZXF1YWxzISIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIkNvbXBhcmUgT0shIik7CisgICAgICAgIC8vfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgLy9lcnJsbigiVGVzdCBmb3IgYnVnIDQwNjk3NTQgb3IgNDA1Nzg3OCBmYWlsZWQgPT4gRXhjZXB0aW9uOiAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIC8vfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuYXBwbHlQYXR0ZXJuKFN0cmluZykgYWxsb3dzIGlsbGVnYWwgcGF0dGVybnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NzI1MSAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZi5hcHBseVBhdHRlcm4oIiMuIy4jIik7CisgICAgICAgICAgICBsb2dsbigidG9QYXR0ZXJuKCkgcmV0dXJucyBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICAgICAgZXJybG4oImFwcGx5UGF0dGVybihcIiMuIy4jXCIpIGRvZXNuJ3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiQ2F1Z2h0IElsbGVnYWwgQXJndW1lbnQgRXJyb3IgISIpOworICAgICAgICB9CisgICAgICAgIC8vIFNlY29uZCB0ZXN0OyBhZGRlZCA1LzExLzk4IHdoZW4gcmVwb3J0ZWQgdG8gZmFpbCBvbiAxLjJiMworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGYuYXBwbHlQYXR0ZXJuKCIjMC4wIzAjMCIpOworICAgICAgICAgICAgbG9nbG4oInRvUGF0dGVybigpIHJldHVybnMgXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgICAgIGVycmxuKCJhcHBseVBhdHRlcm4oXCIjMC4wIzAjMFwiKSBkb2Vzbid0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk9rIC0gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciAjMC4wIzAjMCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBsb3NlcyBwcmVjaXNpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MDQ4OSAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRmLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygxMCk7CisgICAgICAgIGRmLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgICAgIGRvdWJsZSBkID0gMS4wMDAwMDAwMDAwMDAwMDFFNzsKKyAgICAgICAgQmlnRGVjaW1hbCBiZCA9IG5ldyBCaWdEZWNpbWFsKGQpOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigiZCA9ICIgKyBkKTsKKyAgICAgICAgbG9nbG4oIkJpZ0RlY2ltYWwudG9TdHJpbmcoKTogICIgKyBiZC50b1N0cmluZygpKTsKKyAgICAgICAgZGYuZm9ybWF0KGQsIHNiLCBmcCk7CisgICAgICAgIGlmICghc2IudG9TdHJpbmcoKS5lcXVhbHMoIjEwMDAwMDAwLjAwMDAwMDAxMDAiKSkgeworICAgICAgICAgICAgZXJybG4oIkRlY2ltYWxGb3JtYXQuZm9ybWF0KCk6ICIgKyBzYi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KCkgbG9zZXMgcHJlY2lzaW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTA1MDQgKCkKKyAgICB7CisgICAgICAgIGRvdWJsZSBkID0gMTsKKyAgICAgICAgbG9nbG4oImQgPSAiICsgZCk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgc2I7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTc7IGkgPD0gMjA7IGkrKykgeworICAgICAgICAgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpKTsKKyAgICAgICAgICAgICAgICBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPSAiICsgaSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgZm9ybWF0ZWQ6ICIgKyBkZi5mb3JtYXQoZCwgc2IsIGZwKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5MDUwNCByZWdyZXNzaW9uIHRlc3QgZmFpbGVkLiBNZXNzYWdlIDogIiArIGZvby5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UoU3RyaW5nIHN0ciwgUGFyc2VQb3NpdGlvbiBwcCkgbG9zZXMgcHJlY2lzaW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTU3MTMgKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgc3RyID0gIjAuMTIzNCI7CisgICAgICAgIERvdWJsZSBkMSA9IG5ldyBEb3VibGUoc3RyKTsKKyAgICAgICAgTnVtYmVyIGQyID0gZGYucGFyc2Uoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGxvZ2xuKGQxLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoZDIuZG91YmxlVmFsdWUoKSAhPSBkMS5kb3VibGVWYWx1ZSgpKQorICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDk1NzEzIHRlc3QgZmFpbGVkLCBuZXcgZG91YmxlIHZhbHVlIDogIiArIGQyLmRvdWJsZVZhbHVlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UoKSBmYWlscyB3aGVuIG11bHRpcGxpZXIgaXMgbm90IHNldCB0byAxCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTI1NjEgKCkKKyAgICB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgc3RyID0gTG9uZy50b1N0cmluZyhMb25nLk1JTl9WQUxVRSk7CisgICAgICAgIGxvZ2xuKCJMb25nLk1JTl9WQUxVRSA6ICIgKyBkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKS50b1N0cmluZygpKTsKKyAgICAgICAgZGYuc2V0TXVsdGlwbGllcigxMDApOworICAgICAgICBOdW1iZXIgbnVtID0gZGYucGFyc2Uoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGlmIChudW0uZG91YmxlVmFsdWUoKSAhPSAtOS4yMjMzNzIwMzY4NTQ3NzZFMTYpIHsKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5MjU2MSB0ZXN0IGZhaWxlZCB3aGVuIG11bHRpcGxpZXIgaXMgc2V0IHRvIG5vdCAxLiIpOworICAgICAgICB9CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVkTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0OiBOZWdhdGl2ZSBmb3JtYXQgaWdub3JlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MjQ4MCAoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZkZvbyA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwMDAiKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGZGb28uYXBwbHlQYXR0ZXJuKCIwMDAwOy0wMDAiKTsKKyAgICAgICAgICAgIGlmICghZGZGb28udG9QYXR0ZXJuKCkuZXF1YWxzKCIjMDAwMCIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJkZkZvby50b1BhdHRlcm4gOiAiICsgZGZGb28udG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KDQyKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoLTQyKSk7CisgICAgICAgICAgICBkZkZvby5hcHBseVBhdHRlcm4oIjAwMDstMDAwIik7CisgICAgICAgICAgICBpZiAoIWRmRm9vLnRvUGF0dGVybigpLmVxdWFscygiIzAwMCIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJkZkZvby50b1BhdHRlcm4gOiAiICsgZGZGb28udG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KDQyKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoLTQyKSk7CisKKyAgICAgICAgICAgIGRmRm9vLmFwcGx5UGF0dGVybigiMDAwOy0wMDAwIik7CisgICAgICAgICAgICBpZiAoIWRmRm9vLnRvUGF0dGVybigpLmVxdWFscygiIzAwMCIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJkZkZvby50b1BhdHRlcm4gOiAiICsgZGZGb28udG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KDQyKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoLTQyKSk7CisKKyAgICAgICAgICAgIGRmRm9vLmFwcGx5UGF0dGVybigiMDAwMDstMDAwIik7CisgICAgICAgICAgICBpZiAoIWRmRm9vLnRvUGF0dGVybigpLmVxdWFscygiIzAwMDAiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZGZGb28udG9QYXR0ZXJuIDogIiArIGRmRm9vLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCg0MikpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KC00MikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiTWVzc2FnZSAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoKSBwcm9kdWNlcyBmb3JtYXQgdGhhdCB1c2VzCisgICAgICogZGVjaW1hbCBzZXBhcmF0b3IgaW5zdGVhZCBvZiBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKgorICAgICAqIFJld3JvdGUgdGhpcyB0ZXN0IG5vdCB0byBkZXBlbmQgb24gdGhlIGFjdHVhbCBwYXR0ZXJuLiAgUGF0dGVybiBzaG91bGQKKyAgICAgKiBuZXZlciBjb250YWluIHRoZSBtb25ldGFyeSBzZXBhcmF0b3IhICBEZWNpbWFsIHNlcGFyYXRvciBpbiBwYXR0ZXJuIGlzCisgICAgICogaW50ZXJwcmV0ZWQgYXMgbW9uZXRhcnkgc2VwYXJhdG9yIGlmIGN1cnJlbmN5IHN5bWJvbCBpcyBzZWVuIQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3MjQ0ICgpIHsKKyAgICAgICAgTG9jYWxlIGRlID0gbmV3IExvY2FsZSgicHQiLCAiUFQiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IChEZWNpbWFsRm9ybWF0KSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShkZSk7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IGRmLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIHN5bS5zZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoJyQnKTsKKyAgICBkZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBjaGFyIGRlY1NlcCA9IHN5bS5nZXREZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGNoYXIgbW9uU2VwID0gc3ltLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAvL2NoYXIgemVybyA9IHN5bS5nZXRaZXJvRGlnaXQoKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBpZiAoZGVjU2VwID09IG1vblNlcCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIHRlc3Q6IHdhbnQgZGVjaW1hbCBzZXAgIT0gbW9uZXRhcnkgc2VwIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZi5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygxKTsKKyAgICAgICAgICAgIGRmLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygyKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBkZi5mb3JtYXQoMS4yMyk7CisgICAgICAgICAgICBTdHJpbmcgbW9uU3RyID0gIjEiICsgbW9uU2VwICsgIjIzIjsKKyAgICAgICAgICAgIFN0cmluZyBkZWNTdHIgPSAiMSIgKyBkZWNTZXAgKyAiMjMiOworICAgICAgICAgICAgaWYgKHN0ci5pbmRleE9mKG1vblN0cikgPj0gMCAmJiBzdHIuaW5kZXhPZihkZWNTdHIpIDwgMCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogMS4yMyAtPiBcIiIgKyBzdHIgKyAiXCIgY29udGFpbnMgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICBtb25TdHIgKyAiXCIgYW5kIG5vdCBcIiIgKyBkZWNTdHIgKyAnIicpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogMS4yMyAtPiBcIiIgKyBzdHIgKyAiXCIsIHNob3VsZCBjb250YWluIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgbW9uU3RyICsKKyAgICAgICAgICAgICAgICAgICAgICAiXCIgYW5kIG5vdCBcIiIgKyBkZWNTdHIgKyAnIicpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIE51bWJlciBmb3JtYXQgZGF0YSByb3VuZGluZyBlcnJvcnMgZm9yIGxvY2FsZSBGUgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcwNzk4ICgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU3RyaW5nIHRlbXBTdHJpbmc7CisgICAgICAgIC8qIFVzZXIgZXJyb3IgOgorICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01XHUwMGEwNzg5LDk4NyI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjVcdTAwYTA3ODksOTggRiI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OFx1MDBhMDk5OCUiOworICAgICAgICAqLworICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01XHUwMGEwNzg5LDk4OCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjVcdTAwYTA3ODksOTkgIiArIEVVUk87IC8vIGV1cm8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4XHUwMGEwOTk5XHUwMGEwJSI7CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkRGVmYXVsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzA3OTggZGVmYXVsdCB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZERlZmF1bHQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoIDU3ODkuOTg3NiApOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZEN1cnJlbmN5KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzA3OTggY3VycmVuY3kgdGVzdCBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZEN1cnJlbmN5ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZFBlcmNlbnQpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MDc5OCBwZXJjZW50YWdlIHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGVyY2VudCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGF0YSByb3VuZGluZyBlcnJvcnMgZm9yIEZyZW5jaCAoQ2FuYWRhKSBsb2NhbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTAwNSAoKSB7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU3RyaW5nIHRlbXBTdHJpbmc7CisgICAgLyogdXNlciBlcnJvciA6CisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTUgNzg5LDk4NyI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjUgNzg5LDk4ICQiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzggOTk4JSI7CisgICAgKi8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNVx1MDBhMDc4OSw5ODgiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1XHUwMGEwNzg5LDk5ICQiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzhcdTAwYTA5OTlcdTAwQTAlIjsKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZERlZmF1bHQpKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDA1IGRlZmF1bHQgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWREZWZhdWx0ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5DQU5BREFfRlJFTkNIKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoIDU3ODkuOTg3NiApIDsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRDdXJyZW5jeSkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDA1IGN1cnJlbmN5IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkQ3VycmVuY3kgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkUGVyY2VudCkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDA1IHBlcmNlbnRhZ2UgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRQZXJjZW50ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERhdGEgcm91bmRpbmcgZXJyb3JzIGZvciBHZXJtYW4gKEdlcm1hbnkpIGxvY2FsZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxMDE0ICgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU3RyaW5nIHRlbXBTdHJpbmc7CisgICAgICAgIC8qIHVzZXIgZXJyb3IgOgorICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01Ljc4OSw5ODciOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1Ljc4OSw5OCBETSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTglIjsKKyAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNS43ODksOTg4IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiNS43ODksOTkgIiArIEVVUk87CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTklIjsKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkRGVmYXVsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMTQgZGVmYXVsdCB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZERlZmF1bHQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCggNTc4OS45ODc2ICkgOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZEN1cnJlbmN5KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMTQgY3VycmVuY3kgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRDdXJyZW5jeSArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZFBlcmNlbnQpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTAxNCBwZXJjZW50YWdlIHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGVyY2VudCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgIH0KKyAgICAvKioKKyAgICAgKiBEYXRhIHJvdW5kaW5nIGVycm9ycyBmb3IgSXRhbGlhbiBsb2NhbGUgbnVtYmVyIGZvcm1hdHMKKyAgICAgKiBOb3RlLSB3aXRoIHRoZSBFdXJvLCB0aGVyZSBpcyBubyBuZWVkIGZvciBjdXJyZW5jeSByb3VuZGluZyBhbnltb3JlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzE4NTkgKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0dGVyOworICAgICAgICBTdHJpbmcgdGVtcFN0cmluZzsKKyAgICAgICAgLyogdXNlciBlcnJvciA6CisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTUuNzg5LDk4NyI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIi1MLiA1Ljc4OSw5OCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTglIjsKKyAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNS43ODksOTg4IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiLSIgKyBFVVJPICsgIiA1Ljc4OSw5OSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTklIjsKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLklUQUxZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZERlZmF1bHQpKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxODU5IGRlZmF1bHQgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiYSkgRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWREZWZhdWx0ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5JVEFMWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0KCAtNTc4OS45ODc2ICkgOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZEN1cnJlbmN5KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzE4NTkgY3VycmVuY3kgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiYikgRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRDdXJyZW5jeSArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5JVEFMWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRQZXJjZW50KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzE4NTkgcGVyY2VudGFnZSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJjKSBGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZFBlcmNlbnQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICB9CisgICAgLyogYnVnIDQwNzE4NTkKKyAgICAgKiBUZXN0IHJvdW5kaW5nIGZvciBuZWFyZXN0IGV2ZW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTM2MTAoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjMC4jIik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuMzUsICIxMi40Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNDUsICIxMi40Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNDUyLCIxMi41Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNTUsICIxMi42Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNjUsICIxMi42Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNjUyLCIxMi43Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNzUsICIxMi44Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNzUyLCIxMi44Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuODUsICIxMi44Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuODUyLCIxMi45Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuOTUsICIxMyIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjk1MiwiMTMiKTsKKworICAgIH0KKyAgICB2b2lkIHJvdW5kaW5nVGVzdChEZWNpbWFsRm9ybWF0IGRmLCBkb3VibGUgeCwgU3RyaW5nIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG91dCA9IGRmLmZvcm1hdCh4KTsKKyAgICAgICAgbG9nbG4oIiIgKyB4ICsgIiBmb3JtYXRzIHdpdGggMSBmcmFjdGlvbmFsIGRpZ2l0cyB0byAiICsgb3V0KTsKKyAgICAgICAgaWYgKCFvdXQuZXF1YWxzKGV4cGVjdGVkKSkgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFRlc3RzIHRoZSBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMgbGltaXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTg3NDEoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgICAgICBmbXQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDIwKTsKKyAgICAgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoLjAwMSkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICB3YXJubG4oIkJ1ZyA0MDk4NDcxIGZhaWxlZCB3aXRoIGV4Y2VwdGlvbiB0aHJvd24gOiAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgaWxsZWdhbCBwYXR0ZXJuIGV4Y2VwdGlvbi4KKyAgICAgKiBGaXggY29tbWVudCA6IEhTaGloIEEzMSBQYXJ0MSB3aWxsIG5vdCBiZSBmaXhlZCBhbmQgamF2YWRvYyBuZWVkcyB0byBiZSB1cGRhdGVkLgorICAgICAqIFBhcnQyIGhhcyBiZWVuIGZpeGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc0NDU0KCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwMC4wMDstIy4jIik7CisgICAgICAgICAgICBsb2dsbigiZm9ybWF0IDM0NTYuNzg6ICIgKyBmbXQuZm9ybWF0KDM0NTYuNzgpKTsgLy9maXggIlRoZSB2YXJpYWJsZSAnZm10JyBpcyBuZXZlciB1c2VkIgorICAgICAgICAgICAgbG9nbG4oIkluY29uc2lzdGVudCBuZWdhdGl2ZSBwYXR0ZXJuIGlzIGZpbmUuIik7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IG5ld0ZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwMC4wMCBwJydpZWNlczstIywjMDAuMDAgcCcnaWVjZXMiKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wU3RyaW5nID0gbmV3Rm10LmZvcm1hdCgzNDU2Ljc4KTsKKyAgICAgICAgICAgIGlmICghdGVtcFN0cmluZy5lcXVhbHMoIjMsNDU2Ljc4IHAnaWVjZXMiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkISAgMzQ1Ni43OCBwJ2llY2VzIGV4cGVjdGVkLCBidXQgZ290IDogIiArIHRlbXBTdHJpbmcpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICB3YXJubG4oIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGZvciBhbnkgaW5jb25zaXN0ZW50IG5lZ2F0aXZlIHBhdHRlcm4uIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgYWxsIGRpZmZlcmVudCBjb21tZW50cy4KKyAgICAgKiBSZXNwb25zZSB0byBzb21lIGNvbW1lbnRzIDoKKyAgICAgKiBbMV0gRGVjaW1hbEZvcm1hdC5wYXJzZSBBUEkgZG9jdW1lbnRhdGlvbiBpcyBtb3JlIHRoYW4ganVzdCBvbmUgbGluZS4KKyAgICAgKiBUaGlzIGlzIG5vdCBhIHJlcHJvZHVjYWJsZSBkb2MgZXJyb3IgaW4gMTE2IHNvdXJjZSBjb2RlLgorICAgICAqIFsyXSBTZWUgdXBkYXRlZCBqYXZhZG9jLgorICAgICAqIFszXSBGaXhlZC4KKyAgICAgKiBbNF0gTnVtYmVyRm9ybWF0LnBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikgOiBJZiBwYXJzaW5nIGZhaWxzLAorICAgICAqIGEgbnVsbCBvYmplY3Qgd2lsbCBiZSByZXR1cm5lZC4gIFRoZSB1bmNoYW5nZWQgcGFyc2UgcG9zaXRpb24gYWxzbworICAgICAqIHJlZmxlY3RzIGFuIGVycm9yLgorICAgICAqIE51bWJlckZvcm1hdC5wYXJzZShTdHJpbmcpIDogSWYgcGFyc2luZyBmYWlscywgYW4gUGFyc2VFeGNlcHRpb24KKyAgICAgKiB3aWxsIGJlIHRocm93bi4KKyAgICAgKiBTZWUgdXBkYXRlZCBqYXZhZG9jIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogWzVdIFNlZSB1cGRhdGVkIGphdmFkb2MuCisgICAgICogWzZdIFNlZSB1cGRhdGVkIGphdmFkb2MuCisgICAgICogWzddIFRoaXMgaXMgYSBjb3JyZWN0IGJlaGF2aW9yIGlmIHRoZSBEYXRlRm9ybWF0IG9iamVjdCBpcyBsaW5pZW50LgorICAgICAqIE90aGVyd2lzZSwgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIHdoZW4gZm9ybWF0dGluZworICAgICAqICJKYW51YXJ5IDM1Ii4gIFNlZSBHcmVnb3JpYW5DYWxlbmRhciBjbGFzcyBqYXZhZG9jIGZvciBtb3JlIGRldGFpbHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTk0MDQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwMC4wIzAiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQgMzQ1Ni43ODogIiArIGZtdC5mb3JtYXQoMzQ1Ni43OCkpOyAvL2ZpeCAiVGhlIHZhcmlhYmxlICdmbXQnIGlzIG5ldmVyIHVzZWQiCisgICAgICAgICAgICBlcnJsbigiQnVnIDQwOTk0MDQgZmFpbGVkIGFwcGx5aW5nIGlsbGVnYWwgcGF0dGVybiBcIjAwMC4wIzBcIiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQnVnIDQwOTk0MDQgcGF0dGVybiBcIjAwMC4wIzBcIiBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMCMwLjAwMCIpOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdCAzNDU2Ljc4OiAiICsgZm10LmZvcm1hdCgzNDU2Ljc4KSk7IC8vZml4ICJUaGUgdmFyaWFibGUgJ2ZtdCcgaXMgbmV2ZXIgdXNlZCIKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5OTQwNCBmYWlsZWQgYXBwbHlpbmcgaWxsZWdhbCBwYXR0ZXJuIFwiMCMwLjAwMFwiIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGxvZ2xuKCJCdWcgNDA5OTQwNCBwYXR0ZXJuIFwiMCMwLjAwMFwiIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuYXBwbHlQYXR0ZXJuIGRvZXNuJ3Qgc2V0IG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMTQ4MSgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IHNkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMCIpOworICAgICAgICBpZiAoc2RmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gMSkKKyAgICAgICAgICAgIGVycmxuKCJNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIHNkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgUGFyc2VQb3NpdGlvbi5zZXRFcnJvclBvc2l0aW9uKCkgYW5kIFBhcnNlUG9zaXRpb24uZ2V0RXJyb3JQb3NpdGlvbigpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyMjIzKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwMC4wMCIpOworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdC5wYXJzZSgiYWJjMyIpOworICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDUyMjIzIGZhaWxlZCA6IGNhbid0IHBhcnNlIHN0cmluZyBcImFcIi4gIEdvdCAiICsgbnVtKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQ2F1Z2h0IGV4cGVjdGVkIFBhcnNlRXhjZXB0aW9uIDogIiArIGZvby5nZXRNZXNzYWdlKCkgKyAiIGF0IGluZGV4IDogIiArIGZvby5nZXRFcnJvck9mZnNldCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBBUEkgdGVzdHMgZm9yIEFQSSBhZGRpdGlvbiByZXF1ZXN0IEE5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDYxMzAyKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBTdHJpbmcgY3VycmVuY3kgPSBmbXQuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgU3RyaW5nIGludGxDdXJyZW5jeSA9IGZtdC5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgY2hhciBtb25EZWNTZXBhcmF0b3IgPSBmbXQuZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGlmIChjdXJyZW5jeS5lcXVhbHMoIiIpIHx8CisgICAgICAgICAgICBpbnRsQ3VycmVuY3kuZXF1YWxzKCIiKSB8fAorICAgICAgICAgICAgbW9uRGVjU2VwYXJhdG9yID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJnZXRDdXJyZW5jeVN5bWJvbHMgZmFpbGVkLCBnb3QgZW1wdHkgc3RyaW5nLiIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJCZWZvcmUgc2V0ID09PiBDdXJyZW5jeSA6ICIgKyBjdXJyZW5jeSArICIgSW50bCBDdXJyZW5jeSA6ICIgKyBpbnRsQ3VycmVuY3kgKyAiIE1vbmV0YXJ5IERlY2ltYWwgU2VwYXJhdG9yIDogIiArIG1vbkRlY1NlcGFyYXRvcik7CisgICAgICAgIGZtdC5zZXRDdXJyZW5jeVN5bWJvbCgiWFlaIik7CisgICAgICAgIGZtdC5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woIkFCQyIpOworICAgICAgICBmbXQuc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCcqJyk7CisgICAgICAgIGN1cnJlbmN5ID0gZm10LmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgIGludGxDdXJyZW5jeSA9IGZtdC5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgbW9uRGVjU2VwYXJhdG9yID0gZm10LmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBpZiAoIWN1cnJlbmN5LmVxdWFscygiWFlaIikgfHwKKyAgICAgICAgICAgICFpbnRsQ3VycmVuY3kuZXF1YWxzKCJBQkMiKSB8fAorICAgICAgICAgICAgbW9uRGVjU2VwYXJhdG9yICE9ICcqJykgeworICAgICAgICAgICAgZXJybG4oInNldEN1cnJlbmN5U3ltYm9scyBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkFmdGVyIHNldCA9PT4gQ3VycmVuY3kgOiAiICsgY3VycmVuY3kgKyAiIEludGwgQ3VycmVuY3kgOiAiICsgaW50bEN1cnJlbmN5ICsgIiBNb25ldGFyeSBEZWNpbWFsIFNlcGFyYXRvciA6ICIgKyBtb25EZWNTZXBhcmF0b3IpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBBUEkgdGVzdHMgZm9yIEFQSSBhZGRpdGlvbiByZXF1ZXN0IEEyMy4gRmllbGRQb3NpdGlvbi5nZXRCZWdpbkluZGV4IGFuZAorICAgICAqIEZpZWxkUG9zaXRpb24uZ2V0RW5kSW5kZXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjI0ODYoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuMDAiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGZvcm1hdHRlZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBEb3VibGUgbnVtID0gbmV3IERvdWJsZSgxMjM0LjUpOworICAgICAgICBmbXQuZm9ybWF0KG51bSwgZm9ybWF0dGVkLCBmaWVsZCk7CisgICAgICAgIGlmIChmaWVsZC5nZXRCZWdpbkluZGV4KCkgIT0gMCAmJiBmaWVsZC5nZXRFbmRJbmRleCgpICE9IDUpCisgICAgICAgICAgICBlcnJsbigiRm9ybWF0IDEyMzQuNSBmYWlsZWQuIEJlZ2luIGluZGV4OiAiICsgZmllbGQuZ2V0QmVnaW5JbmRleCgpICsgIiBFbmQgaW5kZXg6ICIgKyBmaWVsZC5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgZmllbGQuc2V0QmVnaW5JbmRleCg3KTsKKyAgICAgICAgZmllbGQuc2V0RW5kSW5kZXgoNCk7CisgICAgICAgIGlmIChmaWVsZC5nZXRCZWdpbkluZGV4KCkgIT0gNyAmJiBmaWVsZC5nZXRFbmRJbmRleCgpICE9IDQpCisgICAgICAgICAgICBlcnJsbigiU2V0IGJlZ2luL2VuZCBmaWVsZCBpbmRleGVzIGZhaWxlZC4gQmVnaW4gaW5kZXg6ICIgKyBmaWVsZC5nZXRCZWdpbkluZGV4KCkgKyAiIEVuZCBpbmRleDogIiArIGZpZWxkLmdldEVuZEluZGV4KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UgaW5jb3JyZWN0bHkgd29ya3Mgd2l0aCBhIGdyb3VwIHNlcGFyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwODczOCgpCisgICAgeworCisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMjIiwgbmV3CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzKGphdmEudXRpbC5Mb2NhbGUuVVMpKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiMS4yMjIsMTExIjsKKyAgICAgICAgTnVtYmVyIG51bSA9IGRmLnBhcnNlKHRleHQsbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIW51bS50b1N0cmluZygpLmVxdWFscygiMS4yMjIiKSkKKyAgICAgICAgICAgIGVycmxuKCJcIiIgKyB0ZXh0ICsgIlwiICBpcyBwYXJzZWQgYXMgIiArIG51bSk7CisgICAgICAgIHRleHQgPSAiMS4yMjJ4MTExIjsKKyAgICAgICAgbnVtID0gZGYucGFyc2UodGV4dCxuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghbnVtLnRvU3RyaW5nKCkuZXF1YWxzKCIxLjIyMiIpKQorICAgICAgICAgICAgZXJybG4oIlwiIiArIHRleHQgKyAiXCIgIGlzIHBhcnNlZCBhcyAiICsgbnVtKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCgpIGluY29ycmVjdGx5IGZvcm1hdHMgbmVnYXRpdmUgZG91Ymxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY1OCgpCisgICAgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsgLy8gQ29ycmVjdGVkOyBzZWUgNDE0NzcwNgorICAgICAgICBkb3VibGUgZDEgPSAtMC4wOworICAgICAgICBkb3VibGUgZDIgPSAtMC4wMDAxOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgZGYuZm9ybWF0KGQxLCBidWZmZXIsIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFidWZmZXIudG9TdHJpbmcoKS5lcXVhbHMoIi0wIikpIHsgLy8gQ29ycmVjdGVkOyBzZWUgNDE0NzcwNgorICAgICAgICAgICAgZXJybG4oZDEgKyAiICAgICAgaXMgZm9ybWF0dGVkIGFzICIgKyBidWZmZXIpOworICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGRmLmZvcm1hdChkMiwgYnVmZmVyLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKCItMCIpKSB7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgICAgIGVycmxuKGQyICsgIiAgICAgIGlzIGZvcm1hdHRlZCBhcyAiICsgYnVmZmVyKTsKKyAgICAgICAgfQorICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlZExvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSByZXR1cm5zIDAgaWYgc3RyaW5nIHBhcmFtZXRlciBpcyBpbmNvcnJlY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDY2NjIoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gIngiOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvczEgPSBuZXcgUGFyc2VQb3NpdGlvbigwKSwgcG9zMiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBOdW1iZXIgbnVtID0gZGYucGFyc2UodGV4dCwgcG9zMSk7CisgICAgICAgIGlmIChudW0gIT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgRmFpbGVkOiBcIiIgKyB0ZXh0ICsgIlwiIGlzIHBhcnNlZCBhcyAiICsgbnVtKTsKKyAgICAgICAgfQorICAgICAgICBkZiA9IG51bGw7CisgICAgICAgIGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiQjIyMuMDAiKTsKKyAgICAgICAgbnVtID0gZGYucGFyc2UoIiQiLCBwb3MyKTsKKyAgICAgICAgaWYgKG51bSAhPSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IEZhaWxlZDogXCIkXCIgaXMgcGFyc2VkIGFzICIgKyBudW0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LnBhcnNlIGRvZXNuJ3QgcmV0dXJuIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDYzOSgpCisgICAgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRpbWUgMTA6eCI7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oOCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBmb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSBlcnJsbigiU2hvdWxkIHJldHVybiBudWxsIGJ1dCBnb3QgOiAiICsgcmVzdWx0KTsgLy8gU2hvdWxkIGJlIG51bGw7IGl0IGlzbid0CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQobG9uZyBuKSBmYWlscyBpZiBuICogbXVsdGlwbGllciA+IE1BWF9MT05HLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjY0KCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBsb25nIG4gPSAxMjM0NTY3ODkwMTIzNDU2TDsKKyAgICAgICAgaW50IG0gPSAxMjM0NTY3ODsKKyAgICAgICAgQmlnSW50ZWdlciBiaWdOID0gQmlnSW50ZWdlci52YWx1ZU9mKG4pOworICAgICAgICBiaWdOID0gYmlnTi5tdWx0aXBseShCaWdJbnRlZ2VyLnZhbHVlT2YobSkpOworICAgICAgICBkZi5zZXRNdWx0aXBsaWVyKG0pOworICAgICAgICBkZi5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgICAgICBsb2dsbigiZm9ybWF0ZWQ6ICIgKworICAgICAgICAgICAgZGYuZm9ybWF0KG4sIG5ldyBTdHJpbmdCdWZmZXIoKSwgbmV3IEZpZWxkUG9zaXRpb24oMCkpKTsKKyAgICAgICAgbG9nbG4oImV4cGVjdGVkOiAiICsgYmlnTi50b1N0cmluZygpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQgaW5jb3JyZWN0bHkgZm9ybWF0cyAtMC4wLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjY3KCkKKyAgICB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRQb3NpdGl2ZVByZWZpeCgiKyIpOworICAgICAgICBkb3VibGUgZCA9IC0wLjA7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBkZi5mb3JtYXQoZCwgYnVmZmVyLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKCItMCIpKSB7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgICAgIGVycmxuKGQgKyAiICBpcyBmb3JtYXR0ZWQgYXMgIiArIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSB3b3JrcyBpbmNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExMDkzNigpCisgICAgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoMTI4KTsKKyAgICAgICAgbG9nbG4oInNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDEyOCkiKTsKKyAgICAgICAgaWYgKG5mLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gMTI4KQorICAgICAgICAgICAgZXJybG4oImdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgcmV0dXJucyAiICsKKyAgICAgICAgICAgICAgICBuZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTG9jYWxlIGRhdGEgc2hvdWxkIHVzZSBnZW5lcmljIGN1cnJlbmN5IHN5bWJvbAorICAgICAqCisgICAgICogMSkgTWFrZSBzdXJlIHRoYXQgYWxsIGN1cnJlbmN5IGZvcm1hdHMgdXNlIHRoZSBnZW5lcmljIGN1cnJlbmN5IHN5bWJvbC4KKyAgICAgKiAyKSBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgdXNpbmcgdGhlIGdlbmVyaWMgc3ltYm9sIG9yIGEKKyAgICAgKiAgICBoYXJkLWNvZGVkIG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyMjg0MCgpCisgICAgeworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsbG9jYWxlc1tpXSk7CisKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbmN5IHBhdHRlcm4gZm9yIHRoaXMgbG9jYWxlLiAgV2UgaGF2ZSB0byBmaXNoIGl0CisgICAgICAgICAgICAvLyBvdXQgb2YgdGhlIFJlc291cmNlQnVuZGxlIGRpcmVjdGx5LCBzaW5jZSBEZWNpbWFsRm9ybWF0LnRvUGF0dGVybgorICAgICAgICAgICAgLy8gd2lsbCByZXR1cm4gdGhlIGxvY2FsaXplZCBzeW1ib2wsIG5vdCBcMDBhNAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG51bVBhdHRlcm5zID0gcmIuZ2V0KCJOdW1iZXJQYXR0ZXJucyIpOworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBudW1QYXR0ZXJucy5nZXRTdHJpbmcoMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwYXR0ZXJuLmluZGV4T2YoJ1x1MDBBNCcpID09IC0xICkgeyAvLyAneCcgbm90ICJ4IiAtLSB3b3JrYXJvdW5kIGJ1ZyBpbiBJQk0gSkRLIDEuNC4xCisgICAgICAgICAgICAgICAgZXJybG4oIkN1cnJlbmN5IGZvcm1hdCBmb3IgIiArIGxvY2FsZXNbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiBkb2VzIG5vdCBjb250YWluIGdlbmVyaWMgY3VycmVuY3kgc3ltYm9sOiIgKworICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IHVzaW5nIHRoZSBwYXR0ZXJuIHdlIGdvdCBhbmQgZm9ybWF0IGEgbnVtYmVyCisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQxID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQxID0gZm10MS5mb3JtYXQoMS4xMTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTm93IHN1YnN0aXR1dGUgaW4gdGhlIGxvY2FsZSdzIGN1cnJlbmN5IHN5bWJvbCBhbmQgY3JlYXRlIGFub3RoZXIKKyAgICAgICAgICAgIC8vIHBhdHRlcm4uICBSZXBsYWNlIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIHRoZSBtb25ldGFyeSBzZXBhcmF0b3IuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9jaGFyIGRlY1NlcCA9IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgICAgICBjaGFyIG1vblNlcCA9IHN5bWJvbHMuZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgYnVmLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmNoYXJBdChqKSA9PSAnXHUwMGE0JykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3VyID0gIiciICsgc3ltYm9scy5nZXRDdXJyZW5jeVN5bWJvbCgpICsgIiciOworICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShqLCBqKzEsIGN1cik7IAorICAgICAgICAgICAgICAgICAgICBqICs9IGN1ci5sZW5ndGgoKSAtIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ltYm9scy5zZXREZWNpbWFsU2VwYXJhdG9yKG1vblNlcCk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdDIgPSBuZXcgRGVjaW1hbEZvcm1hdChidWYudG9TdHJpbmcoKSwgc3ltYm9scyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQyID0gZm10Mi5mb3JtYXQoMS4xMTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOT1RFOiBlbl9JTiBpcyBhIHNwZWNpYWwgY2FzZSAoQ2hvaWNlRm9ybWF0IGN1cnJlbmN5IGRpc3BsYXkgbmFtZSkKKyAgICAgICAgICAgIGlmICghcmVzdWx0MS5lcXVhbHMocmVzdWx0MikgJiYKKyAgICAgICAgICAgICAgICAhbG9jYWxlc1tpXS50b1N0cmluZygpLmVxdWFscygiZW5fSU4iKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSZXN1bHRzIGZvciAiICsgbG9jYWxlc1tpXSArICIgZGlmZmVyOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxICsgIiB2cyAiICsgcmVzdWx0Mik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KCkgZGVsaXZlcnMgd3Jvbmcgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI1ODg1KCkKKyAgICB7CisgICAgICAgIGRvdWJsZSByYXRlID0gMTIuMzQ7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0RGVjID0gbmV3IERlY2ltYWxGb3JtYXQgKCIwMDAuMDAiKTsKKyAgICAgICAgbG9nbG4oInRvUGF0dGVybjogIiArIGZvcm1hdERlYy50b1BhdHRlcm4oKSk7CisgICAgICAgIFN0cmluZyByYXRlU3RyaW5nPSBmb3JtYXREZWMuZm9ybWF0KHJhdGUpOworICAgICAgICBpZiAoIXJhdGVTdHJpbmcuZXF1YWxzKCIwMTIuMzQiKSkKKyAgICAgICAgICAgIGVycmxuKCJyZXN1bHQgOiAiICsgcmF0ZVN0cmluZyArICIgZXhwZWN0ZWQgOiAwMTIuMzQiKTsKKyAgICAgICAgcmF0ZSA9IDAuMTIzNDsKKyAgICAgICAgZm9ybWF0RGVjID0gbnVsbDsKKyAgICAgICAgZm9ybWF0RGVjID0gbmV3IERlY2ltYWxGb3JtYXQgKCIrMDAwLjAwJTstMDAwLjAwJSIpOworICAgICAgICBsb2dsbigidG9QYXR0ZXJuOiAiICsgZm9ybWF0RGVjLnRvUGF0dGVybigpKTsKKyAgICAgICAgcmF0ZVN0cmluZz0gZm9ybWF0RGVjLmZvcm1hdChyYXRlKTsKKyAgICAgICAgaWYgKCFyYXRlU3RyaW5nLmVxdWFscygiKzAxMi4zNCUiKSkKKyAgICAgICAgICAgIGVycmxuKCJyZXN1bHQgOiAiICsgcmF0ZVN0cmluZyArICIgZXhwZWN0ZWQgOiArMDEyLjM0JSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqKgorICAgICAqIERlY2ltYWxGb3JtYXQgcHJvZHVjZXMgZXh0cmEgemVyb3Mgd2hlbiBmb3JtYXR0aW5nIG51bWJlcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzQwMzQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIyMsIyMjLCMjIy4wMCIpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGYgPSBuZi5mb3JtYXQoOS4wMik7CisgICAgICAgIGlmIChmLmVxdWFscygiOS4wMiIpKSBsb2dsbihmICsgIiBvayIpOyBlbHNlIGVycmxuKCI5LjAyIC0+ICIgKyBmICsgIjsgd2FudCA5LjAyIik7CisKKyAgICAgICAgZiA9IG5mLmZvcm1hdCgwKTsKKyAgICAgICAgaWYgKGYuZXF1YWxzKCIuMDAiKSkgbG9nbG4oZiArICIgb2siKTsgZWxzZSBlcnJsbigiMCAtPiAiICsgZiArICI7IHdhbnQgLjAwIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ0FOTk9UIFJFUFJPRFVDRSAtIFRoaXMgYnVnIGNvdWxkIG5vdCBiZSByZXByb2R1Y2VkLiAgSXQgbWF5IGJlCisgICAgICogYSBkdXBsaWNhdGUgb2YgNDEzNDAzNC4KKyAgICAgKgorICAgICAqIEpESyAxLjEuNiBCdWcsIGRpZCBOT1Qgb2NjdXIgaW4gMS4xLjUKKyAgICAgKiBQb3NzaWJseSByZWxhdGVkIHRvIGJ1ZyA0MTI1ODg1LgorICAgICAqIAorICAgICAqIFRoaXMgY2xhc3MgZGVtb25zdHJhdGVzIGEgcmVncmVzc2lvbiBpbiB2ZXJzaW9uIDEuMS42CisgICAgICogb2YgRGVjaW1hbEZvcm1hdCBjbGFzcy4KKyAgICAgKiAKKyAgICAgKiAxLjEuNiBSZXN1bHRzCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjLjAwIFJlc3VsdCAnMDEuMjAnICEhIXdyb25nCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAwLjAwIFJlc3VsdCAnMDAxLjIwJyAhISF3cm9uZworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgMDAuMDAgUmVzdWx0ICcwMDAxLjIwJyAhISF3cm9uZworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIzAuMCMgUmVzdWx0ICcxLjInCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjMC4wMCBSZXN1bHQgJzAwMS4yMCcgISEhd3JvbmcKKyAgICAgKiAKKyAgICAgKiAxLjEuNSBSZXN1bHRzCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjLjAwIFJlc3VsdCAnMS4yMCcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0IDAuMDAgUmVzdWx0ICcxLjIwJworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgMDAuMDAgUmVzdWx0ICcwMS4yMCcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0ICMwLjAjIFJlc3VsdCAnMS4yJworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIzAuMDAgUmVzdWx0ICcxLjIwJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTM0MzAwKCkgeworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgLy8gUGF0dGVybiAgICAgIEV4cGVjdGVkIHN0cmluZworICAgICAgICAgICAgIiMuMDAiLCAgICAgICIxLjIwIiwKKyAgICAgICAgICAgICIwLjAwIiwgICAgICAiMS4yMCIsCisgICAgICAgICAgICAiMDAuMDAiLCAgICAgIjAxLjIwIiwKKyAgICAgICAgICAgICIjMC4wIyIsICAgICAiMS4yIiwKKyAgICAgICAgICAgICIjMC4wMCIsICAgICAiMS4yMCIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG5ldyBEZWNpbWFsRm9ybWF0KERBVEFbaV0pLmZvcm1hdCgxLjIpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogMS4yIHggIiArIERBVEFbaV0gKyAiID0gIiArIHJlc3VsdCArCisgICAgICAgICAgICAgICAgICAgICAgIjsgd2FudCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogMS4yIHggIiArIERBVEFbaV0gKyAiID0gIiArIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbXB0eSBwYXR0ZXJuIHByb2R1Y2VzIGRvdWJsZSBuZWdhdGl2ZSBwcmVmaXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDAwMDkoKSB7CisgICAgICAgIGZpbmFsIGRvdWJsZSBJTltdICA9IHsgIDEyMy40NTYsICAgLTEyMy40NTYgIH07CisgICAgICAgIGZpbmFsIFN0cmluZyBPVVRbXSA9IHsgIjEyMy40NTYiLCAiLTEyMy40NTYiIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwyOyArK2kpIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZiA9IG51bGw7CisgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBmID0gbmV3IERlY2ltYWxGb3JtYXQoIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5FTkdMSVNIKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLiMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCkpOworICAgICAgICAgICAgICAgIGYuYXBwbHlQYXR0ZXJuKCIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwyOyArK2opIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIjxlbXB0eSBwYXQgIiArIGkgKyAiPi5mb3JtYXQoIiArIElOW2pdICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVVRbal0sIGYuZm9ybWF0KElOW2pdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogQmlnRGVjaW1hbCBudW1iZXJzIGdldCB0aGVpciBmcmFjdGlvbnMgdHJ1bmNhdGVkIGJ5IE51bWJlckZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0MTc1MCgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSAiMTIzNDUuNjciOworICAgICAgICAgICAgQmlnRGVjaW1hbCBiZCA9IG5ldyBCaWdEZWNpbWFsKHN0cik7CisgICAgICAgICAgICBTdHJpbmcgc2QgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKS5mb3JtYXQoYmQpOworICAgICAgICAgICAgaWYgKCFzZC5lbmRzV2l0aCgiNjciKSkgZXJybG4oIkZhaWw6ICIgKyBzdHIgKyAiIHggZm9ybWF0IC0+ICIgKyBzZCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHRvUGF0dGVybigpIGRvZXNuJ3QgcXVvdGUgc3BlY2lhbCBjaGFyYWN0ZXJzIG9yIGhhbmRsZQorICAgICAqIHNpbmdsZSBxdW90ZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDU0NTcoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IG5mID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICAgICAgc3ltLnNldERlY2ltYWxTZXBhcmF0b3IoJ1wnJyk7CisgICAgICAgICAgICBuZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICAgICAgZG91YmxlIHBpID0gMy4xNDE1OTsKKworICAgICAgICAgICAgU3RyaW5nW10gUEFUUyA9IHsgIiMuMDAgJ251bScnYmVyJyIsICInJyMuMDAnJyIgfTsKKworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPFBBVFMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBuZi5hcHBseVBhdHRlcm4oUEFUU1tpXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG91dCA9IG5mLmZvcm1hdChwaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IG5mLnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIGRvdWJsZSB2YWwgPSBuZi5wYXJzZShvdXQpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBuZi5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3V0MiA9IG5mLmZvcm1hdChwaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSBuZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgdmFsMiA9IG5mLnBhcnNlKG91dDIpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIXBhdC5lcXVhbHMocGF0MikpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsIHdpdGggXCIiICsgUEFUU1tpXSArICJcIjogUGF0dGVybnMgc2hvdWxkIGNvbmN1ciwgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0ICsgIlwiIHZzLiBcIiIgKyBwYXQyICsgIlwiIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2sgXCIiICsgUEFUU1tpXSArICJcIiB0b1BhdHRlcm4oKSAtPiBcIiIgKyBwYXQgKyAnIicpOworCisgICAgICAgICAgICAgICAgaWYgKHZhbCA9PSB2YWwyICYmIG91dC5lcXVhbHMob3V0MikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rICIgKyBwaSArICIgeCBcIiIgKyBQQVRTW2ldICsgIlwiIC0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCArICJcIiAtPiAiICsgdmFsICsgIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQyICsgIlwiIC0+ICIgKyB2YWwyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsICIgKyBwaSArICIgeCBcIiIgKyBQQVRTW2ldICsgIlwiIC0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCArICJcIiAtPiAiICsgdmFsICsgIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQyICsgIlwiIC0+ICIgKyB2YWwyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5hcHBseVBhdHRlcm4oKSBzZXRzIG1pbmltdW0gaW50ZWdlciBkaWdpdHMgaW5jb3JyZWN0bHkuCisgICAgICogQ0FOTk9UIFJFUFJPRFVDRQorICAgICAqIFRoaXMgYnVnIGlzIGEgZHVwbGljYXRlIG9mIDQxMzkzNDQsIHdoaWNoIGlzIGEgZHVwbGljYXRlIG9mIDQxMzQzMDAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NzI5NSgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBzZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICIjLCMjIyI7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuIFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgaW50IG1pbkludERpZyA9IHNkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpOworICAgICAgICBpZiAobWluSW50RGlnICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCIpOworICAgICAgICAgICAgZXJybG4oIiBNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIG1pbkludERpZyk7CisgICAgICAgICAgICBlcnJsbigiIG5ldyBwYXR0ZXJuOiAiICsgc2RmLnRvUGF0dGVybigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHBhc3NlZCIpOworICAgICAgICAgICAgbG9nbG4oIiBNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIG1pbkludERpZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGZvcm1hdHMgLTAuMCBhcyArMC4wCisgICAgICogU2VlIGFsc28gb2xkZXIgcmVsYXRlZCBidWcgNDEwNjY1OCwgNDEwNjY2NworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ3NzA2KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAjIyIpOworICAgICAgICBkZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpKTsKKyAgICAgICAgZG91YmxlIGQxID0gLTAuMDsKKyAgICAgICAgZG91YmxlIGQyID0gLTAuMDAwMTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGYxID0gZGYuZm9ybWF0KGQxLCBuZXcgU3RyaW5nQnVmZmVyKCksIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGYyID0gZGYuZm9ybWF0KGQyLCBuZXcgU3RyaW5nQnVmZmVyKCksIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFmMS50b1N0cmluZygpLmVxdWFscygiLTAuMCIpKSB7CisgICAgICAgICAgICBlcnJsbihkMSArICIgeCBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiBpcyBmb3JtYXR0ZWQgYXMgXCIiICsgZjEgKyAnIicpOworICAgICAgICB9CisgICAgICAgIGlmICghZjIudG9TdHJpbmcoKS5lcXVhbHMoIi0wLjAiKSkgeworICAgICAgICAgICAgZXJybG4oZDIgKyAiIHggXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIgaXMgZm9ybWF0dGVkIGFzIFwiIiArIGYyICsgJyInKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdCBjYW5ub3QgZm9ybWF0IERvdWJsZS5NQVhfVkFMVUUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjE5OCgpIHsKKyAgICAgICAgZG91YmxlIGRibCA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIE51bWJlckZvcm1hdCBmID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIGYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKEludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIFN0cmluZyBzID0gZi5mb3JtYXQoZGJsKTsKKyAgICAgICAgbG9nbG4oIlRoZSBudW1iZXIgIiArIGRibCArICIgZm9ybWF0dGVkIHRvICIgKyBzKTsKKyAgICAgICAgTnVtYmVyIG4gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbiA9IGYucGFyc2Uocyk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ2F1Z2h0IGEgUGFyc2VFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJUaGUgc3RyaW5nICIgKyBzICsgIiBwYXJzZWQgYXMgIiArIG4pOworICAgICAgICBpZiAobi5kb3VibGVWYWx1ZSgpICE9IGRibCkgeworICAgICAgICAgICAgZXJybG4oIlJvdW5kIHRyaXAgZmFpbHVyZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0IGRvZXMgbm90IHBhcnNlIG5lZ2F0aXZlIHplcm8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjI4NTIoKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZiA9IChpID09IDApID8gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkKKyAgICAgICAgICAgICAgICA6IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGRvdWJsZSBkID0gLTAuMDsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBkb3VibGUgZSA9IGYucGFyc2UocykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIiICsKKyAgICAgICAgICAgICAgICAgIGQgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgJyInICsgcyArICciJyArICIgLT4gIiArCisgICAgICAgICAgICAgIGUpOworICAgICAgICAgICAgaWYgKGUgIT0gMC4wIHx8IDEuMC9lID4gMC4wKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkZhaWxlZCB0byBwYXJzZSBuZWdhdGl2ZSB6ZXJvIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQgdHJ1bmNhdGVzIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NzQ5NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIAorICAgICAgICBkb3VibGUgYSA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChhKTsKKyAgICAgICAgZG91YmxlIGIgPSBmbXQucGFyc2UocykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgYm9vbGVhbiBtYXRjaCA9IGEgPT0gYjsKKyAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICBsb2dsbigiIiArIGEgKyAiIC0+IFwiIiArIHMgKyAiXCIgLT4gIiArIGIgKyAiIG9rIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiIiArIGEgKyAiIC0+IFwiIiArIHMgKyAiXCIgLT4gIiArIGIgKyAiIEZBSUwiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGRvbid0IHRlc3QgRG91YmxlLk1JTl9WQUxVRSBiZWNhdXNlIHRoZSBsb2NhbGUgZGF0YSBmb3IgdGhlIFVTCisgICAgICAgIC8vIGN1cnJlbnRseSBkb2Vzbid0IHNwZWNpZnkgZW5vdWdoIGRpZ2l0cyB0byBkaXNwbGF5IERvdWJsZS5NSU5fVkFMVUUuCisgICAgICAgIC8vIFRoaXMgaXMgY29ycmVjdCBmb3Igbm93OyBob3dldmVyLCB3ZSBsZWF2ZSB0aGlzIGhlcmUgYXMgYSByZW1pbmRlcgorICAgICAgICAvLyBpbiBjYXNlIHdlIHdhbnQgdG8gYWRkcmVzcyB0aGlzIGxhdGVyLgorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIGEgPSBEb3VibGUuTUlOX1ZBTFVFOworICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQoYSk7CisgICAgICAgICAgICBiID0gZm10LnBhcnNlKHMpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICBtYXRjaCA9IGEgPT0gYjsKKyAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgYSArICIgLT4gXCIiICsgcyArICJcIiAtPiAiICsgYiArICIgb2siKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiIgKyBhICsgIiAtPiBcIiIgKyBzICsgIlwiIC0+ICIgKyBiICsgIiBGQUlMIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnBhcnNlKCkgZmFpbHMgd2hlbiBQYXJzZUludGVnZXJPbmx5IHNldCB0byB0cnVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzA3OTgoKSB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICBOdW1iZXIgbiA9IGRmLnBhcnNlKCItMC4wIiwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIShuIGluc3RhbmNlb2YgRG91YmxlKQorICAgICAgICAgICAgfHwgbi5pbnRWYWx1ZSgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZShcIi0wLjBcIikgcmV0dXJucyAiICsKKyAgICAgICAgICAgICAgICAgIG4gKyAiICgiICsgbi5nZXRDbGFzcygpLmdldE5hbWUoKSArICcpJyk7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIHRvUGF0dGVybiBvbmx5IHB1dHMgdGhlIGZpcnN0IGdyb3VwaW5nIHNlcGFyYXRvciBpbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NjExNCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIwMCIsICIjMDAiLAorICAgICAgICAgICAgIjAwMCIsICIjMDAwIiwgLy8gTm8gZ3JvdXBpbmcKKyAgICAgICAgICAgICIjMDAwIiwgIiMwMDAiLCAvLyBObyBncm91cGluZworICAgICAgICAgICAgIiMsIyMwIiwgIiMsIyMwIiwKKyAgICAgICAgICAgICIjLDAwMCIsICIjLDAwMCIsCisgICAgICAgICAgICAiMCwwMDAiLCAiIzAsMDAwIiwKKyAgICAgICAgICAgICIwMCwwMDAiLCAiIzAwLDAwMCIsCisgICAgICAgICAgICAiMDAwLDAwMCIsICIjLDAwMCwwMDAiLAorICAgICAgICAgICAgIjAsMDAwLDAwMCwwMDAsMDAwLjAwMDAiLCAiIzAsMDAwLDAwMCwwMDAsMDAwLjAwMDAiLCAvLyBSZXBvcnRlZAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdChEQVRBW2ldKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZGYudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaV0gKyAiIC0+ICIgKyBzICsgIiwgd2FudCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgaXMgaW5jb3JyZWN0bHkgcm91bmRpbmcgbnVtYmVycyBsaWtlIDEuMjUwMSB0byAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3OTgxOCgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICBQYXR0ZXJuICBFeHBlY3RlZCBvdXRwdXQKKyAgICAgICAgICAgICIxLjI1MTEiLCAiIy4jIiwgICAiMS4zIiwKKyAgICAgICAgICAgICIxLjI1MDEiLCAiIy4jIiwgICAiMS4zIiwKKyAgICAgICAgICAgICIwLjk5OTkiLCAiIyIsICAgICAiMSIsCisgICAgICAgIH07CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMiLAorICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBkb3VibGUgaW4gPSBEb3VibGUudmFsdWVPZihEQVRBW2ldKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgU3RyaW5nIHBhdCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBEQVRBW2krMl07CisgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBTdHJpbmcgb3V0ID0gZm10LmZvcm1hdChpbik7CisgICAgICAgICAgICBpZiAob3V0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaW4gKyAiIHggIiArIHBhdCArICIgPSAiICsgb3V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBpbiArICIgeCAgIiArIHBhdCArICIgPSAiICsgb3V0ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTg1NzYxKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisKKyAgICAvLyBTZXQgc3BlY2lhbCB2YWx1ZXMgd2UgYXJlIGdvaW5nIHRvIHNlYXJjaCBmb3IgaW4gdGhlIG91dHB1dCBieXRlIHN0cmVhbQorICAgIC8vIFRoZXNlIGFyZSBhbGwgbGVnYWwgdmFsdWVzLgorICAgICAgICBuZi5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygweDExMSk7IC8vIEtlZXAgdW5kZXIgMzA5CisgICAgICAgIG5mLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDB4MTEyKTsgLy8gS2VlcCB1bmRlciAzMDkKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDB4MTEzKTsgLy8gS2VlcCB1bmRlciAzNDAKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDB4MTE0KTsgLy8gS2VlcCB1bmRlciAzNDAKKyAgICAgICAgCisgICAgICAgIG9vcy53cml0ZU9iamVjdChuZik7CisgICAgICAgIG9vcy5mbHVzaCgpOworICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgIAorICAgICAgICBieXRlW10gYnl0ZXMgPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisKKyAgICAvLyBTY2FuIGZvciBsb2NhdGlvbnMgb2YgbWluL21heCBpbnQvZnJhY3QgdmFsdWVzIGluIHRoZSBieXRlIGFycmF5LgorICAgIC8vIEF0IHRoZSBtb21lbnQgKElDVTRKIDIuMSksIHRoZXJlIGlzIG9ubHkgb25lIGluc3RhbmNlIG9mIGVhY2ggdGFyZ2V0IHBhaXIKKyAgICAvLyBpbiB0aGUgYnl0ZSBzdHJlYW0sIHNvIGFzc3VtZSBmaXJzdCBtYXRjaCBpcyBpdC4gIE5vdGUgdGhpcyBpcyBub3QgZW50aXJlbHkKKyAgICAvLyBmYWlsc2FmZSwgYW5kIG5lZWRzIHRvIGJlIGNoZWNrZWQgaWYgd2UgY2hhbmdlIHRoZSBwYWNrYWdlIG9yIHN0cnVjdHVyZSBvZgorICAgIC8vIHRoaXMgY2xhc3MuCisgICAgLy8gQ3VycmVudCBwb3NpdGlvbnMgYXJlIDg5MCwgODgwLCA4ODYsIDg3NgorICAgICAgICBpbnRbXSBvZmZzZXRzID0gbmV3IGludFs0XTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGggLSAxOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChieXRlc1tpXSA9PSAweDAxKSB7IC8vIGhpZ2ggYnl0ZQorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgb2Zmc2V0cy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBpZiAoKG9mZnNldHNbal0gPT0gMCkgJiYgKGJ5dGVzW2krMV0gPT0gKDB4MTEgKyBqKSkpIHsgLy8gbG93IGJ5dGUKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbal0gPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBPYmplY3QgbyA9IG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBvaXMuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFuZi5lcXVhbHMobykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRGF0ZUZvcm1hdCBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGJ1ZyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGlzIE9LQVkuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIC8vIENoYW5nZSB0aGUgdmFsdWVzIGluIHRoZSBieXRlIHN0cmVhbSBzbyB0aGF0IG1pbiA+IG1heC4KKyAgICAvLyBOdW1iZXJmb3JtYXQgc2hvdWxkIGNhdGNoIHRoaXMgYW5kIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvZmZzZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBieXRlc1tvZmZzZXRzW2ldXSA9IChieXRlKSg0IC0gaSk7CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXQgPSAoTnVtYmVyRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQ6ICIgKyBmb3JtYXQuZm9ybWF0KDEyMzQuNTYpKTsgLy9maXggIlRoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkIgorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEZXNlcmlhbGl6ZWQgYm9ndXMgTnVtYmVyRm9ybWF0IHdpdGggbWluWERpZ2l0cyA+IG1heFhEaWdpdHMiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEludmFsaWRPYmplY3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgLy8gU2V0IHZhbHVlcyBzbyB0aGV5IGFyZSB0b28gaGlnaCwgYnV0IG1pbiA8PSBtYXgKKyAgICAvLyBGb3JtYXQgc2hvdWxkIHBhc3MgdGhlIG1pbiA8PSBtYXggdGVzdCwgYW5kIERlY2ltYWxGb3JtYXQgc2hvdWxkIHJlc2V0IHRvIGN1cnJlbnQgbWF4aW11bQorICAgIC8vIChmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHZlcnNpb25zIHN0cmVhbWVkIG91dCBiZWZvcmUgdGhlIG1heGltdW1zIHdlcmUgaW1wb3NlZCkuCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYnl0ZXNbb2Zmc2V0c1tpXV0gPSA0OworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IChOdW1iZXJGb3JtYXQpIG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAvL0ZvciBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgdmVyc2lvbgorICAgICAgICAgICAgaWYgKChmb3JtYXQuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSAhPSAzMDkpIAorICAgICAgICAgICAgICAgIHx8IGZvcm1hdC5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSAhPSAzNDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGVzZXJpYWxpemVkIGJvZ3VzIE51bWJlckZvcm1hdCB3aXRoIHZhbHVlcyBvdXQgb2YgcmFuZ2UsIiArCisgICAgICAgICAgICAgICAgICAgICAgIiBpbnRNaW46ICIgKyBmb3JtYXQuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBpbnRNYXg6ICIgKyBmb3JtYXQuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBmcmFjTWluOiAiICsgZm9ybWF0LmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGZyYWNNYXg6ICIgKyBmb3JtYXQuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IERpZ2l0IGNvdW50IG91dCBvZiByYW5nZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTb21lIERlY2ltYWxGb3JtYXRTeW1ib2xzIGNoYW5nZXMgYXJlIG5vdCBwaWNrZWQgdXAgYnkgRGVjaW1hbEZvcm1hdC4KKyAgICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBtaW51cyBzaWduLCBjdXJyZW5jeSBzeW1ib2wsIGludGVybmF0aW9uYWwgY3VycmVuY3kKKyAgICAgKiBzeW1ib2wsIHBlcmNlbnQsIGFuZCBwZXJtaWxsZS4gIFRoaXMgaXMgZmlsZWQgYXMgYnVncyA0MjEyMDcyIGFuZAorICAgICAqIDQyMTIwNzMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMTIwNzIoKSB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIyIsIHN5bSk7CisKKyAgICAgICAgc3ltLnNldE1pbnVzU2lnbignXicpOworICAgICAgICBmbXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgaWYgKCFmbXQuZm9ybWF0KC0xKS5lcXVhbHMoIl4xIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAtMSB4IChtaW51cz1eKSAtPiAiICsgZm10LmZvcm1hdCgtMSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwIF4xIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQuZ2V0TmVnYXRpdmVQcmVmaXgoKS5lcXVhbHMoIl4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IChtaW51cz1eKS5nZXROZWdhdGl2ZVByZWZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXROZWdhdGl2ZVByZWZpeCgpICsgIiwgZXhwIF4iKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0TWludXNTaWduKCctJyk7CisKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiIyUiKTsKKyAgICAgICAgc3ltLnNldFBlcmNlbnQoJ14nKTsKKyAgICAgICAgZm10LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGlmICghZm10LmZvcm1hdCgwLjI1KS5lcXVhbHMoIjI1XiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMC4yNSB4IChwZXJjZW50PV4pIC0+ICIgKyBmbXQuZm9ybWF0KDAuMjUpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cCAyNV4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpLmVxdWFscygiXiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKHBlcmNlbnQ9XikuZ2V0UG9zaXRpdmVTdWZmaXggLT4gIiArCisgICAgICAgICAgICAgICAgICBmbXQuZ2V0UG9zaXRpdmVTdWZmaXgoKSArICIsIGV4cCBeIik7CisgICAgICAgIH0KKyAgICAgICAgc3ltLnNldFBlcmNlbnQoJyUnKTsKKyAgICAgICAgCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIiNcdTIwMzAiKTsKKyAgICAgICAgc3ltLnNldFBlck1pbGwoJ14nKTsKKyAgICAgICAgZm10LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGlmICghZm10LmZvcm1hdCgwLjI1KS5lcXVhbHMoIjI1MF4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDAuMjUgeCAocGVybWlsbD1eKSAtPiAiICsgZm10LmZvcm1hdCgwLjI1KSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgMjUwXiIpOworICAgICAgICB9CisgICAgICAgIGlmICghZm10LmdldFBvc2l0aXZlU3VmZml4KCkuZXF1YWxzKCJeIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAocGVybWlsbD1eKS5nZXRQb3NpdGl2ZVN1ZmZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpICsgIiwgZXhwIF4iKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0UGVyTWlsbCgnXHUyMDMwJyk7CisKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiXHUwMEE0Iy4wMCIpOworICAgICAgICBzeW0uc2V0Q3VycmVuY3lTeW1ib2woInVzZCIpOworICAgICAgICBmbXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgaWYgKCFmbXQuZm9ybWF0KDEyLjUpLmVxdWFscygidXNkMTIuNTAiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDEyLjUgeCAoY3VycmVuY3k9dXNkKSAtPiAiICsgZm10LmZvcm1hdCgxMi41KSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgdXNkMTIuNTAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXRQb3NpdGl2ZVByZWZpeCgpLmVxdWFscygidXNkIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAoY3VycmVuY3k9dXNkKS5nZXRQb3NpdGl2ZVByZWZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXRQb3NpdGl2ZVByZWZpeCgpICsgIiwgZXhwIHVzZCIpOworICAgICAgICB9CisgICAgICAgIHN5bS5zZXRDdXJyZW5jeVN5bWJvbCgiJCIpOworCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIlx1MDBBNFx1MDBBNCMuMDAiKTsKKyAgICAgICAgc3ltLnNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgiRE9MIik7CisgICAgICAgIGZtdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBpZiAoIWZtdC5mb3JtYXQoMTIuNSkuZXF1YWxzKCJET0wxMi41MCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMTIuNSB4IChpbnRsY3VycmVuY3k9RE9MKSAtPiAiICsgZm10LmZvcm1hdCgxMi41KSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgRE9MMTIuNTAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXRQb3NpdGl2ZVByZWZpeCgpLmVxdWFscygiRE9MIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAoaW50bGN1cnJlbmN5PURPTCkuZ2V0UG9zaXRpdmVQcmVmaXggLT4gIiArCisgICAgICAgICAgICAgICAgICBmbXQuZ2V0UG9zaXRpdmVQcmVmaXgoKSArICIsIGV4cCBET0wiKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCJVU0QiKTsKKworICAgICAgICBpZiAoVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04gPT0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoMiwyKSkgeworICAgICAgICAgICAgLy8gYnVnIGluIDIuMiB0aGF0IGZhaWxzIHRoaXMgdGVzdAorICAgICAgICAgICAgLy8gdG8gYmUgZml4ZWQgaW4gdGhlIGxhdGVyIHZlcnNpb25zCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuICAgICAgICBUZXN0IHNraXBwZWQgZm9yIHJlbGVhc2UgMi4yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNpbmNlIHRoZSBwYXR0ZXJuIGxvZ2ljIGhhcyBjaGFuZ2VkLCBtYWtlIHN1cmUgdGhhdCBwYXR0ZXJucyByb3VuZAorICAgICAgICAvLyB0cmlwIHByb3Blcmx5LiAgVGVzdCBzdHJlYW0gaW4vb3V0IGludGVncml0eSB0b28uCisgICAgICAgIExvY2FsZVtdIGF2YWlsID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGF2YWlsLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MzsgKytqKSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0IG5mOworICAgICAgICAgICAgICAgIHN3aXRjaCAoaikgeworICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoYXZhaWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIG5mID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoYXZhaWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBuZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoYXZhaWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IChEZWNpbWFsRm9ybWF0KSBuZjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUZXN0IHRvUGF0dGVybi9hcHBseVBhdHRlcm4gcm91bmQgdHJpcAorICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSBkZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1iID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGYyID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBzeW1iKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhmMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBhdmFpbFtpXSArICIgIyIgKyBqICsgIiAtPiBcIiIgKyBwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgLT4gXCIiICsgZjIudG9QYXR0ZXJuKCkgKyAnIicpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFRlc3QgdG9Mb2NhbGl6ZWRQYXR0ZXJuL2FwcGx5TG9jYWxpemVkUGF0dGVybiByb3VuZCB0cmlwCisgICAgICAgICAgICAgICAgcGF0ID0gZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBmMi5hcHBseUxvY2FsaXplZFBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzMSA9IGYyLmZvcm1hdCgxMjM0NTYpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgczIgPSBkZi5mb3JtYXQoMTIzNDU2KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIXMxLmVxdWFscyhzMikpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBhdmFpbFtpXSArICIgIyIgKyBqICsgIiAtPiBsb2NhbGl6ZWQgXCIiICsgczIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgLT4gXCIiICsgczIgKyAnIicrICIgaW4gbG9jYWxlICIrZGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSkpOworICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhmMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgYXZhaWxbaV0gKyAiICMiICsgaiArICIgLT4gbG9jYWxpemVkIFwiIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgLT4gXCIiICsgZjIudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgKyAnIicrICIgaW4gbG9jYWxlICIrZGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInMxOiAiK3MxKyIgczI6ICIrczIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKGV4LmdldE1lc3NhZ2UoKSsiIGZvciBsb2NhbGUgIisgZGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIC8vIFRlc3Qgd3JpdGVPYmplY3QvcmVhZE9iamVjdCByb3VuZCB0cmlwCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGRmKTsKKyAgICAgICAgICAgICAgICBvb3MuZmx1c2goKTsKKyAgICAgICAgICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgICAgICBmMiA9IChEZWNpbWFsRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGYyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RyZWFtIGluL291dCAiICsgYXZhaWxbaV0gKyAiIC0+IFwiIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGYyICE9IG51bGwgPyAoIlwiIitmMi50b1BhdHRlcm4oKSsnIicpIDogIm51bGwiKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBAc2luY2UgSUNVIDIuNAorICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgc3BlY2lhbCBjaGFyYWN0ZXJzLCB3aGVuIHF1b3RlZCBpbiBhIHN1ZmZpeCBvcgorICAgICAgICAvLyBwcmVmaXgsIGxvc2UgdGhlaXIgc3BlY2lhbCBtZWFuaW5nLgorICAgICAgICBjaGFyW10gU1BFQ0lBTFMgPSB7ICcwJywgJywnLCAnLicsICdcdTIwMzAnLCAnJScsICcjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOycsICdFJywgJyonLCAnKycsICctJyB9OworICAgICAgICBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPFNQRUNJQUxTLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBjaGFyIHNwZWNpYWwgPSBTUEVDSUFMU1tqXTsKKyAgICAgICAgICAgIFN0cmluZyBwYXQgPSAiJyIgKyBzcGVjaWFsICsgIicjMCciICsgc3BlY2lhbCArICInIjsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBzeW0pOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQyID0gZm10LnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIGlmICghcGF0LmVxdWFscyhwYXQyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIgPT4gdG9QYXR0ZXJuKCkgPT4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0MiArICJcIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoMTIzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwID0gIiIgKyBzcGVjaWFsICsgIjEyMyIgKyBzcGVjaWFsOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogMTIzIHggXCIiICsgcGF0ICsgIlwiID0+IFwiIiArIHMgKyAiXCIsIGV4cCBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBleHAgKyAiXCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXR0ZXJuIFwiIiArIHBhdCArICJcIiA9PiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSgpIGZhaWxzIGZvciBtdWxpcGxpZXJzIDJebi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxNjc0MigpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gKERlY2ltYWxGb3JtYXQpIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBsb25nW10gREFUQSA9IHsgTG9uZy5NSU5fVkFMVUUsIExvbmcuTUFYX1ZBTFVFLCAtMTAwMDAwMDAwTCwgMTAwMDAwMDAwTH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gTG9uZy50b1N0cmluZyhEQVRBW2ldKTsKKyAgICAgICAgICAgIGZvciAoaW50IG0gPSAxOyBtIDw9IDEwMDsgbSsrKSB7CisgICAgICAgICAgICAgICAgZm10LnNldE11bHRpcGxpZXIobSk7CisgICAgICAgICAgICAgICAgbG9uZyBuID0gKChOdW1iZXIpIGZtdC5wYXJzZShzdHIpKS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAobiA+IDAgIT0gREFUQVtpXSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlwiIiArIHN0ciArICJcIiBwYXJzZSh4ICIgKyBmbXQuZ2V0TXVsdGlwbGllcigpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIikgPT4gIiArIG4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgZm9ybWF0cyAxLjAwMSB0byAiMS4wMCIgaW5zdGVhZCBvZiAiMSIgd2l0aCAyIGZyYWN0aW9uCisgICAgICogZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjE3NjYxKCkgeworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMSksICIwIiwKKyAgICAgICAgICAgIG5ldyBEb3VibGUoMS4wMDEpLCAiMSIsCisgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDA2KSwgIjAuMDEiLAorICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAwNiksICIxLjAxIiwKKyAgICAgICAgfTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBmbXQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDIpOyAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoKChEb3VibGUpIERBVEFbaV0pLmRvdWJsZVZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEdvdCAiICsgcyArICIsIGV4cCAiICsgREFUQVtpKzFdKTsgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDI0MzAxMTogRm9ybWF0dGluZyAuNSByb3VuZHMgdG8gIjEiIGluc3RlYWQgb2YgIjAiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyNDMwMTEoKSB7CisgICAgICAgIGRvdWJsZSBEQVRBW10gPSB7MC41LCAxLjUsIDIuNSwgMy41LCA0LjV9OworICAgICAgICBTdHJpbmcgRVhQRUNURURbXSA9IHsiMC4iLCAiMi4iLCAiMi4iLCAiNC4iLCAiNC4ifTsKKyAgICAgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgREFUQS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoREFUQVtpXSk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhFWFBFQ1RFRFtpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA0MjQzMTA4OiBmb3JtYXQoMC4wKSBnaXZlcyAiMC4xIiBpZiBwcmVjZWRlZCBieSBwYXJzZSgiOTkuOTkiKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjQzMTA4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIik7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBmLmZvcm1hdCgwLjApOworICAgICAgICBpZiAocmVzdWx0LmVxdWFscygiMCIpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRvdWJsZSBkUmVzdWx0ID0gZi5wYXJzZSgiOTkuOTkiKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgaWYgKGRSZXN1bHQgPT0gOTkuOTkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgZFJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIGRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ2F1Z2h0IGEgUGFyc2VFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IGYuZm9ybWF0KDAuMCk7CisgICAgICAgIGlmIChyZXN1bHQuZXF1YWxzKCIwIikpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogZ290ICIgKyByZXN1bHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA0MzMwMzc3OiBEZWNpbWFsRm9ybWF0IGVuZ2luZWVyaW5nIG5vdGF0aW9uIGdpdmVzIGluY29ycmVjdCByZXN1bHRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdDQzMzAzNzcoKSB7CisgICAgICAgIC8qCisgICAgICAgIGRvdWJsZVtdIGlucHV0ID0gezUwMDAuMCwgNTAwLjAsIDUwLjAsIDUuMCwgMC41LCAwLjA1LCAwLjAwNSwgMC4wMDA1LAorICAgICAgICAgICAgICAgNTA1MC4wLCA1MDUuMCwgNTAuNSwgNS4wNSwgMC41MDUsIDAuMDUwNSwgMC4wMDUwNSwgMC4wMDA1MDV9OworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJuID0geyIwMDAuI0UwIiwgIiMjMC4jRTAiLCAiIzAwLiNFMCJ9OworICAgICAgICBTdHJpbmdbXVtdIGV4cGVjdGVkID0geworICAgICAgICAgICAgLy8gaXQncyBxdWVzdGlvbmFibGUgd2hldGhlciAiIzAwLiNFMCIgc2hvdWxkIHJlc3VsdCBpbiBwb3N0LWRlY2ltYWwKKyAgICAgICAgICAgIC8vIHplcm9lcywgaS5lLiwgd2hldGhlciAiNS4wRTMiLCAiNS4wRTAiLCAiNS4wRS0zIiBhcmUgcmVhbGx5IGdvb2QKKyAgICAgICAgICAgIHsiNTAwRTEiLCAiNUUzIiwgIjUuMEUzIn0sCisgICAgICAgICAgICB7IjUwMEUwIiwgIjUwMEUwIiwgIjUwMEUwIn0sCisgICAgICAgICAgICB7IjUwMEUtMSIsICI1MEUwIiwgIjUwRTAifSwKKyAgICAgICAgICAgIHsiNTAwRS0yIiwgIjVFMCIsICI1LjBFMCJ9LAorICAgICAgICAgICAgeyI1MDBFLTMiLCAiNTAwRS0zIiwgIjUwMEUtMyJ9LAorICAgICAgICAgICAgeyI1MDBFLTQiLCAiNTBFLTMiLCAiNTBFLTMifSwKKyAgICAgICAgICAgIHsiNTAwRS01IiwgIjVFLTMiLCAiNS4wRS0zIn0sCisgICAgICAgICAgICB7IjUwMEUtNiIsICI1MDBFLTYiLCAiNTAwRS02In0sCisgICAgICAgICAgICB7IjUwNUUxIiwgIjUuMDVFMyIsICI1LjA1RTMifSwKKyAgICAgICAgICAgIHsiNTA1RTAiLCAiNTA1RTAiLCAiNTA1RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0xIiwgIjUwLjVFMCIsICI1MC41RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0yIiwgIjUuMDVFMCIsICI1LjA1RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0zIiwgIjUwNUUtMyIsICI1MDVFLTMifSwKKyAgICAgICAgICAgIHsiNTA1RS00IiwgIjUwLjVFLTMiLCAiNTAuNUUtMyJ9LAorICAgICAgICAgICAgeyI1MDVFLTUiLCAiNS4wNUUtMyIsICI1LjA1RS0zIn0sCisgICAgICAgICAgICB7IjUwNUUtNiIsICI1MDVFLTYiLCAiNTA1RS02In0KKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwYXR0ZXJuLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuW2pdKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChpbnB1dFtpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5wdXQ6ICIgKyBpbnB1dFtpXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgcGF0dGVybjogIiArIHBhdHRlcm5bal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRbaV1bal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdDogIiArIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDQyMzM4NDA6IE51bWJlckZvcm1hdCBkb2VzIG5vdCByb3VuZCBjb3JyZWN0bHkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0NDIzMzg0MCgpIHsKKyAgICAgICAgZmxvYXQgZiA9IDAuMDA5OWY7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMiLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKSk7CisgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDIpOworICAgIAorICAgIFN0cmluZyByZXN1bHQgPSBuZi5mb3JtYXQoZik7CisgICAgCisgICAgaWYgKCFyZXN1bHQuZXF1YWxzKCIwLjAxIikpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0OiAiICsgZiArICIsIGV4cGVjdGVkOiAwLjAxLCBnb3Q6ICIgKyByZXN1bHQpOworICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDI0MTg4MDogRGVjaW1hbCBmb3JtYXQgZG9lc250IHJvdW5kIGEgZG91YmxlIHByb3Blcmx5IHdoZW4gdGhlIG51bWJlciBpcyBsZXNzIHRoYW4gMQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3Q0MjQxODgwKCkgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBkb3VibGVbXSBpbnB1dCA9IHsKKyAgICAgICAgICAgICAgICAuMDE5LCAuMDA5LCAuMDE1LCAuMDE2LCAuMDE0LAorICAgICAgICAgICAgICAgIC4wMDQsIC4wMDUsIC4wMDYsIC4wMDcsIC4wMDgsCisgICAgICAgICAgICAgICAgLjUsIDEuNSwgLjA1LCAuMTUsIC4wMDUsCisgICAgICAgICAgICAgICAgLjAxNSwgLjAwMDUsIC4wMDE1LAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJuID0geworICAgICAgICAgICAgICAgICIjIzAlIiwgIiMjMCUiLCAiIyMwJSIsICIjIzAlIiwgIiMjMCUiLAorICAgICAgICAgICAgICAgICIjIzAlIiwgIiMjMCUiLCAiIyMwJSIsICIjIzAlIiwgIiMjMCUiLAorICAgICAgICAgICAgICAgICIjLCMjMCIsICIjLCMjMCIsICIjLCMjMC4wIiwgIiMsIyMwLjAiLCAiIywjIzAuMDAiLAorICAgICAgICAgICAgICAgICIjLCMjMC4wMCIsICIjLCMjMC4wMDAiLCAiIywjIzAuMDAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAgICAgIjIlIiwgIjElIiwgIjIlIiwgIjIlIiwgIjElIiwKKyAgICAgICAgICAgICAgICAiMCUiLCAiMCUiLCAiMSUiLCAiMSUiLCAiMSUiLAorICAgICAgICAgICAgICAgICIwIiwgIjIiLCAiMC4wIiwgIjAuMiIsICIwLjAwIiwKKyAgICAgICAgICAgICAgICAiMC4wMiIsICIwLjAwMCIsICIwLjAwMiIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybltpXSk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChpbnB1dFtpXSk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRbaV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0OiAiICsgaW5wdXRbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiwgcGF0dGVybjogIiArIHBhdHRlcm5baV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFtpXSArCisgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3Q6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVkTG9jYWxlKTsKKyAgICB9Cit9CisKK2NsYXNzIG15Zm9ybWF0IGltcGxlbWVudHMgU2VyaWFsaXphYmxlCit7CisgICAgRGF0ZUZvcm1hdCBfZGF0ZUZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisKKyAgICBwdWJsaWMgU3RyaW5nIE5vdygpCisgICAgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBEYXRlIHQgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBub3dTdHIgPSBfZGF0ZUZvcm1hdC5mb3JtYXQodCk7CisgICAgICAgIHJldHVybiBub3dTdHI7CisgICAgfQorfQorCitjbGFzcyBNeU51bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBOdW1iZXJGb3JtYXQgeworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gbmV3IEludGVnZXIoMCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUkJORlBhcnNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SQk5GUGFyc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI2YzkzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUkJORlBhcnNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBSQk5GUGFyc2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBuZXcgUkJORlBhcnNlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgcHVibGljIHZvaWQgVGVzdFBhcnNlKCkgeworCisgICAgLy8gdGhlc2UgcnVsZXMgbWFrZSBubyBzZW5zZSBidXQgYmVoYXZlIHJhdGlvbmFsbHkKKyAgICBTdHJpbmdbXSBva3J1bGVzID0geworICAgICAgInJhbmRvbSB0ZXh0IiwKKyAgICAgICIlZm9vOmJhciIsCisgICAgICAiJWZvbzogYmFyIiwKKyAgICAgICIwOiIsCisgICAgICAiMDo6IiwKKyAgICAgICIlJWZvbzo7IiwKKyAgICAgICItIiwKKyAgICAgICItMSIsCisgICAgICAiLToiLAorICAgICAgIi4iLAorICAgICAgIi4xIiwKKyAgICAgICJbIiwKKyAgICAgICJdIiwKKyAgICAgICJbXSIsCisgICAgICAiW2Zvb10iLAorICAgICAgIltbXSIsCisgICAgICAiW11dIiwKKyAgICAgICJbW11dIiwKKyAgICAgICJbXVtdIiwKKyAgICAgICI8IiwKKyAgICAgICI+IiwKKyAgICAgICI9IiwKKyAgICAgICI9PSIsCisgICAgICAiPT09IiwKKyAgICAgICI9Zm9vPSIsCisgICAgfTsKKworICAgIFN0cmluZ1tdIGV4Y2VwdHJ1bGVzID0geworICAgICAgIiIsCisgICAgICAiOyIsCisgICAgICAiOzsiLAorICAgICAgIjoiLAorICAgICAgIjo6IiwKKyAgICAgICI6MSIsCisgICAgICAiOjsiLAorICAgICAgIjo7OjsiLAorICAgICAgIjw8IiwKKyAgICAgICI8PDwiLAorICAgICAgIjEwOjs5OjsiLAorICAgICAgIj4+IiwKKyAgICAgICI+Pj4iLAorICAgICAgIjEwOiIsIC8vIGZvcm1hdHRpbmcgYW55IHZhbHVlIHdpdGggYSBvbmUncyBkaWdpdCB3aWxsIGZhaWwKKyAgICAgICIxMTogPDwgeCIsIC8vIGZvcm1hdGluZyBhIG11bHRpcGxlIG9mIDEwIGNhdXNlcyByb2xsYmFjayBydWxlIHRvIGZhaWwKKyAgICAgICIlJWZvbzogMCBmb287IDEwOiA9JSViYXI9OyAlJWJhcjogMDogYmFyOyAxMDogPSUlZm9vPTsiLAorICAgIH07CisKKyAgICBTdHJpbmdbXVtdIGFsbHJ1bGVzID0geworICAgICAgb2tydWxlcywKKyAgICAgIGV4Y2VwdHJ1bGVzLAorICAgIH07CisKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IGFsbHJ1bGVzLmxlbmd0aDsgKytqKSB7CisgICAgICBTdHJpbmdbXSB0ZXN0cyA9IGFsbHJ1bGVzW2pdOworICAgICAgYm9vbGVhbiBleGNlcHQgPSB0ZXN0cyA9PSBleGNlcHRydWxlczsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICBsb2dsbigiLS0tLS0tLS0tLSIpOworICAgIGxvZ2xuKCJydWxlczogJyIgKyB0ZXN0c1tpXSArICInIik7CisgICAgYm9vbGVhbiBjYXVnaHRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICB0cnkgeworICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodGVzdHNbaV0sIExvY2FsZS5VUyk7CisgICAgICBsb2dsbigiMS4yMzogIiArIGZtdC5mb3JtYXQoMjApKTsKKyAgICAgIGxvZ2xuKCItMTIzOiAiICsgZm10LmZvcm1hdCgtMTIzKSk7CisgICAgICBsb2dsbigiLjEyMzogIiArIGZtdC5mb3JtYXQoLjEyMykpOworICAgICAgbG9nbG4oIiAxMjM6ICIgKyBmbXQuZm9ybWF0KDEyMykpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgIGlmICghZXhjZXB0KSB7CisgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGNhdWdodEV4Y2VwdGlvbiA9IHRydWU7CisgICAgICB9CisgICAgfQorICAgIGlmIChleGNlcHQgJiYgIWNhdWdodEV4Y2VwdGlvbikgeworICAgICAgZXJybG4oImV4cGVjdGVkIGV4Y2VwdGlvbiBidXQgZGlkbid0IGdldCBvbmUhIik7CisgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mUm91bmRUcmlwVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mUm91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmZDViMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZSb3VuZFRyaXBUZXN0LmphdmEKQEAgLTAsMCArMSwyMTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFJibmZSb3VuZFRyaXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBSYm5mUm91bmRUcmlwVGVzdCB0ZXN0ID0gbmV3IFJibmZSb3VuZFRyaXBUZXN0KCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRpcmUgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBleGNlcHRpb246ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRW5nbGlzaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbmdsaXNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTEyMzQ1Njc4LCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgZHVyYXRpb24tZm9ybWF0dGluZyBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REdXJhdGlvbnNSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTik7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIFNwYW5pc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3BhbmlzaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJlcyIsICJlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTEyMzQ1Njc4LCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRnJlbmNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZyZW5jaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuRlJBTkNFLAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAtMTIzNDU2NzgsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBTd2lzcyBGcmVuY2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dpc3NGcmVuY2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgiZnIiLCAiQ0giLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEl0YWxpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRhbGlhblNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuSVRBTElBTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTk5OTk5OSwgOTk5OTk5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBHZXJtYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VybWFuU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgU3dlZGlzaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTd2VkaXNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoInN2IiwgIlNFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRHV0Y2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RHV0Y2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgibmwiLCAiTkwiLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEphcGFuZXNlIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEphcGFuZXNlU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5KQVBBTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIFJ1c3NpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVzc2lhblNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJydSIsICJSVSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEdyZWVrIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWVrU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImVsIiwgIkdSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgdm9pZCBkb1Rlc3QoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwgIGxvbmcgbG93TGltaXQsCisgICAgICAgICAgICAgICAgICAgIGxvbmcgaGlnaExpbWl0KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb25nIGNvdW50ID0gMDsKKyAgICAgICAgICAgIGxvbmcgaW5jcmVtZW50ID0gMTsKKyAgICAgICAgICAgIGZvciAobG9uZyBpID0gbG93TGltaXQ7IGkgPD0gaGlnaExpbWl0OyBpICs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgICAgIGlmIChjb3VudCAlIDEwMDAgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oTG9uZy50b1N0cmluZyhpKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoaSkgPCA1MDAwKQorICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAxOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKE1hdGguYWJzKGkpIDwgNTAwMDAwKQorICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAyNzM3OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMjY3NDM3OworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBmb3JtYXR0ZXIuZm9ybWF0KGkpOworICAgICAgICAgICAgICAgIGxvbmcgcnQgPSBmb3JtYXR0ZXIucGFyc2UodGV4dCkubG9uZ1ZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAocnQgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUm91bmQtdHJpcCBmYWlsZWQ6ICIgKyBpICsgIiAtPiAiICsgdGV4dCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+ICIgKyBydCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxvd0xpbWl0IDwgMCkgeworICAgICAgICAgICAgICAgIGRvdWJsZSBkID0gMS4yMzQ7CisgICAgICAgICAgICAgICAgd2hpbGUgKGQgPCAxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gZm9ybWF0dGVyLmZvcm1hdChkKTsKKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIHJ0ID0gZm9ybWF0dGVyLnBhcnNlKHRleHQpLmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ0ICE9IGQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJSb3VuZC10cmlwIGZhaWxlZDogIiArIGQgKyAiIC0+ICIgKyB0ZXh0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+ICIgKyBydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZCAqPSAxMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhZjlhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZUZXN0LmphdmEKQEAgLTAsMCArMSwxMDU4IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKKworcHVibGljIGNsYXNzIFJibmZUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk5IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBSYm5mVGVzdCB0ZXN0ID0gbmV3IFJibmZUZXN0KCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRpcmUgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBleGNlcHRpb246ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIFN0cmluZyBmcmFjUnVsZXMgPSAKKyAgICAgICAgIiVtYWluOlxuIiArCisgICAgICAgIC8vIHRoaXMgcnVsZSBmb3JtYXRzIHRoZSBudW1iZXIgaWYgaXQncyAxIG9yIG1vcmUuICBJdCBmb3JtYXRzCisgICAgICAgIC8vIHRoZSBpbnRlZ3JhbCBwYXJ0IHVzaW5nIGEgRGVjaW1hbEZvcm1hdCAoIiMsIyMwIiBwdXRzCisgICAgICAgIC8vIHRob3VzYW5kcyBzZXBhcmF0b3JzIGluIHRoZSByaWdodCBwbGFjZXMpIGFuZCB0aGUgZnJhY3Rpb25hbAorICAgICAgICAvLyBwYXJ0IHVzaW5nICUlZnJhYy4gIElmIHRoZXJlIGlzIG5vIGZyYWN0aW9uYWwgcGFydCwgaXQKKyAgICAgICAgLy8ganVzdCBzaG93cyB0aGUgaW50ZWdyYWwgcGFydC4KKyAgICAgICAgIiAgICB4LjA6IDwjLCMjMDxbID4lJWZyYWM+XTtcbiIgKworICAgICAgICAvLyB0aGlzIHJ1bGUgZm9ybWF0cyB0aGUgbnVtYmVyIGlmIGl0J3MgYmV0d2VlbiAwIGFuZCAxLiAgSXQKKyAgICAgICAgLy8gc2hvd3Mgb25seSB0aGUgZnJhY3Rpb25hbCBwYXJ0ICgwLjUgc2hvd3MgdXAgYXMgIjEvMiwiIG5vdAorICAgICAgICAvLyAiMCAxLzIiKQorICAgICAgICAiICAgIDAueDogPiUlZnJhYz47XG4iICsKKyAgICAgICAgLy8gdGhlIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyB3b3JrcyB0aGUgc2FtZSB3YXkgYXMgdGhlIG9uZSBpbiB0aGUKKyAgICAgICAgLy8gcHJlY2VkaW5nIGV4YW1wbGU6IFdlIG11bHRpcGx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlcgorICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgYnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhbmQgdXNlIHRoZSBydWxlIHRoYXQKKyAgICAgICAgLy8gcHJvZHVjZXMgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIDAgKG9yIHRoZSBmaXJzdCBydWxlIHRoYXQgcHJvZHVjZXMgMCkuCisgICAgICAgIC8vIFNpbmNlIHdlIG9ubHkgcHJvdmlkZSBydWxlcyBmb3IgdGhlIG51bWJlcnMgZnJvbSAyIHRvIDEwLCB3ZSBrbm93CisgICAgICAgIC8vIHdlJ2xsIGdldCBhIGZyYWN0aW9uIHdpdGggYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLgorICAgICAgICAvLyAiPDA8IiBjYXVzZXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gdG8gYmUgZm9ybWF0dGVkCisgICAgICAgIC8vIHVzaW5nIG51bWVyYWxzCisgICAgICAgICIlJWZyYWM6XG4iICsKKyAgICAgICAgIiAgICAyOiAxLzI7XG4iICsKKyAgICAgICAgIiAgICAzOiA8MDwvMztcbiIgKworICAgICAgICAiICAgIDQ6IDwwPC80O1xuIiArCisgICAgICAgICIgICAgNTogPDA8LzU7XG4iICsKKyAgICAgICAgIiAgICA2OiA8MDwvNjtcbiIgKworICAgICAgICAiICAgIDc6IDwwPC83O1xuIiArCisgICAgICAgICIgICAgODogPDA8Lzg7XG4iICsKKyAgICAgICAgIiAgICA5OiA8MDwvOTtcbiIgKworICAgICAgICAiICAgMTA6IDwwPC8xMDtcbiI7CisKKyAgICBzdGF0aWMgeworICAgICAgICAvLyBtb25kbyBoYWNrCisgICAgY2hhcltdIGZyYWNSdWxlc0FyciA9IGZyYWNSdWxlcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnQgbGVuID0gZnJhY1J1bGVzQXJyLmxlbmd0aDsKKyAgICAgICAgaW50IGNoYW5nZSA9IDI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBmcmFjUnVsZXNBcnJbaV07CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1xuJykgeworICAgICAgICAgICAgICAgIGNoYW5nZSA9IDI7IC8vIGNoYW5nZSBvaworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnOicpIHsKKyAgICAgICAgICAgICAgICBjaGFuZ2UgPSAxOyAvLyBjaGFuZ2UsIGJ1dCBvbmNlIHdlIGhpdCBhIG5vbi1zcGFjZSBjaGFyLCBkb24ndCBjaGFuZ2UKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoYW5nZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZyYWNSdWxlc0FycltpXSA9IChjaGFyKTB4MjAwZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjaGFuZ2UgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2UgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIGZyYWNSdWxlcyA9IG5ldyBTdHJpbmcoZnJhY1J1bGVzQXJyKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGR1cmF0aW9uSW5TZWNvbmRzUnVsZXMgPQorICAgICAgICAvLyBtYWluIHJ1bGUgc2V0IGZvciBmb3JtYXR0aW5nIHdpdGggd29yZHMKKyAgICAgICAgIiV3aXRoLXdvcmRzOlxuIgorICAgICAgICAvLyB0YWtlIGNhcmUgb2Ygc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiAic2Vjb25kIgorICAgICAgICArICIgICAgMCBzZWNvbmRzOyAxIHNlY29uZDsgPTA9IHNlY29uZHM7XG4iCisgICAgICAgIC8vIHVzZSAlJW1pbiB0byBmb3JtYXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiA2MCBzZWNvbmRzCisgICAgICAgICsgIiAgICA2MC82MDogPCUlbWluPFssID4+XTtcbiIKKyAgICAgICAgLy8gdXNlICUlaHIgdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gMyw2MDAgc2Vjb25kcworICAgICAgICAvLyAodGhlICI+Pj4iIGJlbG93IGNhdXNlcyB1cyB0byBzZWUgdGhlIG51bWJlciBvZiBtaW51dGVzCisgICAgICAgIC8vIHdoZW4gd2hlbiB0aGVyZSBhcmUgemVybyBtaW51dGVzKQorICAgICAgICArICIgICAgMzYwMC82MDogPCUlaHI8WywgPj4+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgIC8vIG9mICJtaW51dGUiCisgICAgICAgICsgIiUlbWluOlxuIgorICAgICAgICArICIgICAgMCBtaW51dGVzOyAxIG1pbnV0ZTsgPTA9IG1pbnV0ZXM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcworICAgICAgICAvLyBvZiAiaG91ciIKKyAgICAgICAgKyAiJSVocjpcbiIKKyAgICAgICAgKyAiICAgIDAgaG91cnM7IDEgaG91cjsgPTA9IGhvdXJzO1xuIgorCisgICAgICAgIC8vIG1haW4gcnVsZSBzZXQgZm9yIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiJWluLW51bWVyYWxzOlxuIgorICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgNjAgc2Vjb25kcyBhcmUgc2hvd24gd2l0aCAic2VjLiIKKyAgICAgICAgKyAiICAgID0wPSBzZWMuO1xuIgorICAgICAgICAvLyBoaWdoZXIgdmFsdWVzIGFyZSBzaG93biB3aXRoIGNvbG9uczogJSVtaW4tc2VjIGlzIHVzZWQgZm9yCisgICAgICAgIC8vIHZhbHVlcyBiZWxvdyAzLDYwMCBzZWNvbmRzLi4uCisgICAgICAgICsgIiAgICA2MDogPSUlbWluLXNlYz07XG4iCisgICAgICAgIC8vIC4uLmFuZCAlJWhyLW1pbi1zZWMgaXMgdXNlZCBmb3IgdmFsdWVzIG9mIDMsNjAwIHNlY29uZHMKKyAgICAgICAgLy8gYW5kIGFib3ZlCisgICAgICAgICsgIiAgICAzNjAwOiA9JSVoci1taW4tc2VjPTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIGNhdXNlcyB2YWx1ZXMgb2YgbGVzcyB0aGFuIDEwIG1pbnV0ZXMgdG8gc2hvdyB3aXRob3V0CisgICAgICAgIC8vIGEgbGVhZGluZyB6ZXJvCisgICAgICAgICsgIiUlbWluLXNlYzpcbiIKKyAgICAgICAgKyAiICAgIDA6IDo9MDA9O1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDwwPD4+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBvciBtb3JlLiAgTWludXRlcyBhcmUgYWx3YXlzCisgICAgICAgIC8vIHNob3duLCBhbmQgYWx3YXlzIHNob3duIHdpdGggdHdvIGRpZ2l0cworICAgICAgICArICIlJWhyLW1pbi1zZWM6XG4iCisgICAgICAgICsgIiAgICAwOiA6PTAwPTtcbiIKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8MDA8Pj47XG4iCisgICAgICAgICsgIiAgICAzNjAwLzYwOiA8IywjIzA8Oj4+PjtcbiIKKyAgICAgICAgLy8gdGhlIGxlbmllbnQtcGFyc2UgcnVsZXMgYWxsb3cgc2V2ZXJhbCBkaWZmZXJlbnQgY2hhcmFjdGVycyB0byBiZSB1c2VkCisgICAgICAgIC8vIGFzIGRlbGltaXRlcnMgYmV0d2VlbiBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMKKyAgICAgICAgKyAiJSVsZW5pZW50LXBhcnNlOlxuIgorICAgICAgICArICIgICAgJiA6ID0gLiA9ICcgJyA9IC07XG4iOworCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICAvLyBleHRyYSBjYWxscyB0byBib29zdCBjb3ZlcmFnZSBudW1iZXJzCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQwID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MSA9IChSdWxlQmFzZWROdW1iZXJGb3JtYXQpZm10MC5jbG9uZSgpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MiA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgaWYgKCFmbXQwLmVxdWFscyhmbXQwKSkgeworICAgICAgICAgICAgZXJybG4oInNlbGYgZXF1YWxpdHkgZmFpbHMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdDAuZXF1YWxzKGZtdDEpKSB7CisgICAgICAgICAgICBlcnJsbigiY2xvbmUgZXF1YWxpdHkgZmFpbHMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdDAuZXF1YWxzKGZtdDIpKSB7CisgICAgICAgICAgICBlcnJsbigiZHVwbGljYXRlIGVxdWFsaXR5IGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHN0ciA9IGZtdDAudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MyA9ICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGR1cmF0aW9uSW5TZWNvbmRzUnVsZXMpOworCisgICAgICAgIGlmIChmbXQwLmVxdWFscyhmbXQzKSkgeworICAgICAgICAgICAgZXJybG4oIm5vbmVxdWFsIGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQzLmVxdWFscyhmbXQzKSkgeworICAgICAgICAgICAgZXJybG4oInNlbGYgZXF1YWwgMiBmYWlscyIpOworICAgICAgICB9CisgICAgICAgIHN0ciA9IGZtdDMudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGZtdDMuZ2V0UnVsZVNldE5hbWVzKCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdDMuc2V0RGVmYXVsdFJ1bGVTZXQobnVsbCk7CisgICAgICAgICAgICBmbXQzLnNldERlZmF1bHRSdWxlU2V0KCIlJWZvbyIpOworICAgICAgICAgICAgZXJybG4oInNkcmYgJSVmb28gZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdDMuc2V0RGVmYXVsdFJ1bGVTZXQoIiVib2d1cyIpOworICAgICAgICAgICAgZXJybG4oInNkcmYgJWJvZ3VzIGRpZG4ndCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsIG5hbWVzWzBdKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsICIlJWZvbyIpOworICAgICAgICAgICAgZXJybG4oImZvcm1hdCBkb3VibGUgJSVmb28gZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0ciA9IGZtdDMuZm9ybWF0KDEyM0wsIG5hbWVzWzBdKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgxMjNMLCAiJSVmb28iKTsKKyAgICAgICAgICAgIGVycmxuKCJmb3JtYXQgZG91YmxlICUlZm9vIGRpZG4ndCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQ0ID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChmcmFjUnVsZXMsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdDUgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZyYWNSdWxlcywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBzdHIgPSBmbXQ0LnRvU3RyaW5nKCk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIGlmICghZm10NC5lcXVhbHMoZm10NSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJkdXBsaWNhdGUgMiBlcXVhbGl0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBzdHIgPSBmbXQ0LmZvcm1hdCgxMjNMKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE51bWJlciBudW0gPSBmbXQ0LnBhcnNlKHN0cik7CisgICAgICAgICAgICBsb2dsbihudW0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigicGFyc2UgY2F1Z2h0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgc3RyID0gZm10NC5mb3JtYXQoLjAwMDEyMyk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOdW1iZXIgbnVtID0gZm10NC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4obnVtLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oInBhcnNlIGNhdWdodCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ciA9IGZtdDQuZm9ybWF0KDQ1Ni4wMDAxMjMpOworICAgICAgICBsb2dsbihzdHIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdDQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIGxvZ2xuKG51bS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJwYXJzZSBjYXVnaHQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5kZWZpbmVkU3BlbGxvdXQoKSB7CisgICAgICAgIExvY2FsZSBncmVlayA9IG5ldyBMb2NhbGUoImVsIiwgIiIsICIiKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0W10gZm9ybWF0dGVycyA9IHsKKyAgICAgICAgICAgIG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZ3JlZWssIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCksCisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGdyZWVrLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuT1JESU5BTCksCisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGdyZWVrLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pLAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGRhdGEgPSB7CisgICAgICAgICAgICAiMCIsCisgICAgICAgICAgICAiMSIsCisgICAgICAgICAgICAiMTUiLAorICAgICAgICAgICAgIjIwIiwKKyAgICAgICAgICAgICIyMyIsCisgICAgICAgICAgICAiNzMiLAorICAgICAgICAgICAgIjg4IiwKKyAgICAgICAgICAgICIxMDAiLAorICAgICAgICAgICAgIjEwNiIsCisgICAgICAgICAgICAiMTI3IiwKKyAgICAgICAgICAgICIyMDAiLAorICAgICAgICAgICAgIjU3OSIsCisgICAgICAgICAgICAiMSwwMDAiLAorICAgICAgICAgICAgIjIsMDAwIiwKKyAgICAgICAgICAgICIzLDAwNCIsCisgICAgICAgICAgICAiNCw1NjciLAorICAgICAgICAgICAgIjE1LDk0MyIsCisgICAgICAgICAgICAiMTA1LDAwMCIsCisgICAgICAgICAgICAiMiwzNDUsNjc4IiwKKyAgICAgICAgICAgICItMzYiLAorICAgICAgICAgICAgIi0zNi45MTIxNSIsCisgICAgICAgICAgICAiMjM0LjU2Nzg5IgorICAgICAgICB9OworCisgICAgICAgIE51bWJlckZvcm1hdCBkZWNGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXR0ZXJzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBmb3JtYXR0ZXJzW2pdOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdHRlclsiICsgaiArICJdIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0dGVyLmZvcm1hdChkZWNGb3JtYXQucGFyc2UoZGF0YVtpXSkpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiWyIgKyBpICsgIl0gIiArIGRhdGFbaV0gKyAiID09PiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3JtYXR0ZXJbIiArIGogKyAiXSwgZGF0YVsiICsgaSArICJdICIgKyBkYXRhW2ldICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5nbGlzaFNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLlVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgIm9uZSIgfSwKKyAgICAgICAgICAgIHsgIjE1IiwgImZpZnRlZW4iIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ0d2VudHkiIH0sCisgICAgICAgICAgICB7ICIyMyIsICJ0d2VudHktdGhyZWUiIH0sCisgICAgICAgICAgICB7ICI3MyIsICJzZXZlbnR5LXRocmVlIiB9LAorICAgICAgICAgICAgeyAiODgiLCAiZWlnaHR5LWVpZ2h0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgIm9uZSBodW5kcmVkIiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgIm9uZSBodW5kcmVkIGFuZCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAib25lIGh1bmRyZWQgYW5kIHR3ZW50eS1zZXZlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJ0d28gaHVuZHJlZCIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJmaXZlIGh1bmRyZWQgYW5kIHNldmVudHktbmluZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAwIiwgIm9uZSB0aG91c2FuZCIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgInR3byB0aG91c2FuZCIgfSwKKyAgICAgICAgICAgIHsgIjMsMDA0IiwgInRocmVlIHRob3VzYW5kIGFuZCBmb3VyIiB9LAorICAgICAgICAgICAgeyAiNCw1NjciLCAiZm91ciB0aG91c2FuZCBmaXZlIGh1bmRyZWQgYW5kIHNpeHR5LXNldmVuIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgImZpZnRlZW4gdGhvdXNhbmQgbmluZSBodW5kcmVkIGFuZCBmb3J0eS10aHJlZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJ0d28gbWlsbGlvbiwgdGhyZWUgaHVuZHJlZCBhbmQgZm9ydHktZml2ZSAiCisgICAgICAgICAgICAgICsgInRob3VzYW5kLCBzaXggaHVuZHJlZCBhbmQgc2V2ZW50eS1laWdodCIgfSwKKyAgICAgICAgICAgIHsgIi0zNiIsICJtaW51cyB0aGlydHktc2l4IiB9LAorICAgICAgICAgICAgeyAiMjM0LjU2NyIsICJ0d28gaHVuZHJlZCBhbmQgdGhpcnR5LWZvdXIgcG9pbnQgZml2ZSBzaXggc2V2ZW4iIH0KKyAgICAgICAgfTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisKKyAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgIFN0cmluZ1tdW10gbHBUZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIkZPdXJodW5kcmVkICAgICB0aGlSVFkgc2l4IiwgIjQzNiIgfSwKKyAgICAgICAgICAgIC8vIHRlc3Qgc3BhY2VzIGJlZm9yZSBmaWZ0eS03IGNhdXNpbmcgbGVuaWVudCBwYXJzZSBtYXRjaCBvZiAiZmlmdHktIiB0byAiIGZpZnR5IgorICAgICAgICAgICAgLy8gbGVhdmluZyAiLTciIGZvciByZW1haW5pbmcgcGFyc2UsIHJlc3VsdGluZyBpbiAyNjQzIGFzIHRoZSBwYXJzZSByZXN1bHQuCisgICAgICAgICAgICB7ICJmaWZ0eS03IiwgIjU3IiB9LAorICAgICAgICAgICAgeyAiIGZpZnR5LTciLCAiNTciIH0sCisgICAgICAgICAgICB7ICIgIGZpZnR5LTciLCAiNTciIH0sCisgICAgICAgICAgICB7ICIyIHRob3VzYW5kIHNpeCBIVU5EUkVEICAgZmlmdHktNyIsICIyLDY1NyIgfSwKKyAgICAgICAgICAgIHsgImZpZnRlZW4gaHVuZHJlZCBhbmQgemVybyIsICIxLDUwMCIgfQorICAgICAgICB9OworICAgICAgICBkb0xlbmllbnRQYXJzZVRlc3QoZm9ybWF0dGVyLCBscFRlc3REYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEVuZ2xpc2ggb3JkaW5hbC1hYmJyZXZpYXRpb24gcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0T3JkaW5hbEFiYnJldmlhdGlvbnMoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0Lk9SRElOQUwpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMSIsICIxc3QiIH0sCisgICAgICAgICAgICB7ICIyIiwgIjJuZCIgfSwKKyAgICAgICAgICAgIHsgIjMiLCAiM3JkIiB9LAorICAgICAgICAgICAgeyAiNCIsICI0dGgiIH0sCisgICAgICAgICAgICB7ICI3IiwgIjd0aCIgfSwKKyAgICAgICAgICAgIHsgIjEwIiwgIjEwdGgiIH0sCisgICAgICAgICAgICB7ICIxMSIsICIxMXRoIiB9LAorICAgICAgICAgICAgeyAiMTMiLCAiMTN0aCIgfSwKKyAgICAgICAgICAgIHsgIjIwIiwgIjIwdGgiIH0sCisgICAgICAgICAgICB7ICIyMSIsICIyMXN0IiB9LAorICAgICAgICAgICAgeyAiMjIiLCAiMjJuZCIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgIjIzcmQiIH0sCisgICAgICAgICAgICB7ICIyNCIsICIyNHRoIiB9LAorICAgICAgICAgICAgeyAiMzMiLCAiMzNyZCIgfSwKKyAgICAgICAgICAgIHsgIjEwMiIsICIxMDJuZCIgfSwKKyAgICAgICAgICAgIHsgIjMxMiIsICIzMTJ0aCIgfSwKKyAgICAgICAgICAgIHsgIjEyLDM0NSIsICIxMiwzNDV0aCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBkdXJhdGlvbi1mb3JtYXR0aW5nIHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdER1cmF0aW9ucygpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMyw2MDAiLCAiMTowMDowMCIgfSwgICAgICAgICAgICAgLy9tb3ZlIG1lIGFuZCBJIGZhaWwKKyAgICAgICAgICAgIHsgIjAiLCAiMCBzZWMuIiB9LAorICAgICAgICAgICAgeyAiMSIsICIxIHNlYy4iIH0sCisgICAgICAgICAgICB7ICIyNCIsICIyNCBzZWMuIiB9LAorICAgICAgICAgICAgeyAiNjAiLCAiMTowMCIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgIjE6MTMiIH0sCisgICAgICAgICAgICB7ICIxNDUiLCAiMjoyNSIgfSwKKyAgICAgICAgICAgIHsgIjY2NiIsICIxMTowNiIgfSwKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgeyAiMyw2MDAiLCAiMTowMDowMCIgfSwKKyAgICAgICAgICAgIHsgIjMsNzQwIiwgIjE6MDI6MjAiIH0sCisgICAgICAgICAgICB7ICIxMCwyOTMiLCAiMjo1MTozMyIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMi01MS0zMyIsICIxMCwyOTMiIH0KKyAgICAgICAgfTsKKyAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBTcGFuaXNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNwYW5pc2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImVzIiwgImVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW5vIiB9LAorICAgICAgICAgICAgeyAiNiIsICJzZWlzIiB9LAorICAgICAgICAgICAgeyAiMTYiLCAiZGllY2lzXHUwMGU5aXMiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2ZWludGUiIH0sCisgICAgICAgICAgICB7ICIyNCIsICJ2ZWludGljdWF0cm8iIH0sCisgICAgICAgICAgICB7ICIyNiIsICJ2ZWludGlzXHUwMGU5aXMiIH0sCisgICAgICAgICAgICB7ICI3MyIsICJzZXRlbnRhIHkgdHJlcyIgfSwKKyAgICAgICAgICAgIHsgIjg4IiwgIm9jaGVudGEgeSBvY2hvIiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNpZW4iIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2llbnRvIHNlaXMiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2llbnRvIHZlaW50aXNpZXRlIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRvc2NpZW50b3MiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAicXVpbmllbnRvcyBzZXRlbnRhIHkgbnVldmUiIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJtaWwiIH0sCisgICAgICAgICAgICB7ICIyLDAwMCIsICJkb3MgbWlsIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidHJlcyBtaWwgY3VhdHJvIiB9LAorICAgICAgICAgICAgeyAiNCw1NjciLCAiY3VhdHJvIG1pbCBxdWluaWVudG9zIHNlc2VudGEgeSBzaWV0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE1LDk0MyIsICJxdWluY2UgbWlsIG5vdmVjaWVudG9zIGN1YXJlbnRhIHkgdHJlcyIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJkb3MgbWlsbFx1MDBmM24gdHJlc2NpZW50b3MgY3VhcmVudGEgeSBjaW5jbyBtaWwgIgorICAgICAgICAgICAgICArICJzZWlzY2llbnRvcyBzZXRlbnRhIHkgb2NobyJ9LAorICAgICAgICAgICAgeyAiLTM2IiwgIm1lbm9zIHRyZWludGEgeSBzZWlzIiB9LAorICAgICAgICAgICAgeyAiMjM0LjU2NyIsICJkb3NjaWVudG9zIHRyZWludGEgeSBjdWF0cm8gcHVudG8gY2luY28gc2VpcyBzaWV0ZSIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEZyZW5jaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGcmVuY2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW4iIH0sCisgICAgICAgICAgICB7ICIxNSIsICJxdWluemUiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2aW5ndCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgInZpbmd0LWV0LXVuIiB9LAorICAgICAgICAgICAgeyAiMjMiLCAidmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICI2MiIsICJzb2l4YW50ZS1kZXV4IiB9LAorICAgICAgICAgICAgeyAiNzAiLCAic29peGFudGUtZGl4IiB9LAorICAgICAgICAgICAgeyAiNzEiLCAic29peGFudGUgZXQgb256ZSIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNvaXhhbnRlLXRyZWl6ZSIgfSwKKyAgICAgICAgICAgIHsgIjgwIiwgInF1YXRyZS12aW5ndHMiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJxdWF0cmUtdmluZ3QtaHVpdCIgfSwKKyAgICAgICAgICAgIHsgIjEwMCIsICJjZW50IiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImNlbnQgc2l4IiB9LAorICAgICAgICAgICAgeyAiMTI3IiwgImNlbnQgdmluZ3Qtc2VwdCIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJkZXV4IGNlbnRzIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImNpbnEgY2VudHMgc29peGFudGUtZGl4LW5ldWYiIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJtaWxsZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTIzIiwgIm9uemUgY2VudHMgdmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICIxLDU5NCIsICJtaWxsZSBjaW5xIGNlbnRzIHF1YXRyZS12aW5ndC1xdWF0b3J6ZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRldXggbWlsbGUiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cm9pcyBtaWxsZSBxdWF0cmUiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0cmUgbWlsbGUgY2lucSBjZW50cyBzb2l4YW50ZS1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW56ZSBtaWxsZSBuZXVmIGNlbnRzIHF1YXJhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRldXggbWlsbGlvbiB0cm9pcyBjZW50cyBxdWFyYW50ZS1jaW5xIG1pbGxlICIKKyAgICAgICAgICAgICAgKyAic2l4IGNlbnRzIHNvaXhhbnRlLWRpeC1odWl0IiB9LAorICAgICAgICAgICAgeyAiLTM2IiwgIm1vaW5zIHRyZW50ZS1zaXgiIH0sCisgICAgICAgICAgICB7ICIyMzQuNTY3IiwgImRldXggY2VudHMgdHJlbnRlLXF1YXRyZSB2aXJndWxlIGNpbnEgc2l4IHNlcHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisKKyAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgIFN0cmluZ1tdW10gbHBUZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgInRyZW50ZS11biIsICIzMSIgfSwKKyAgICAgICAgICAgIHsgInVuIGNlbnRzIHF1YXRyZSB2aW5ndCBkaXggaHVpdCIsICIxOTgiIH0KKyAgICAgICAgfTsKKyAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBTd2lzcyBGcmVuY2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dpc3NGcmVuY2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImZyIiwgIkNIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW4iIH0sCisgICAgICAgICAgICB7ICIxNSIsICJxdWluemUiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2aW5ndCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgInZpbmd0LWV0LXVuIiB9LAorICAgICAgICAgICAgeyAiMjMiLCAidmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICI2MiIsICJzb2l4YW50ZS1kZXV4IiB9LAorICAgICAgICAgICAgeyAiNzAiLCAic2VwdGFudGUiIH0sCisgICAgICAgICAgICB7ICI3MSIsICJzZXB0YW50ZS1ldC11biIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNlcHRhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiODAiLCAiaHVpdGFudGUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJodWl0YW50ZS1odWl0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnQiIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2VudCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2VudCB2aW5ndC1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRldXggY2VudHMiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAiY2lucSBjZW50cyBzZXB0YW50ZS1uZXVmIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIxLDEyMyIsICJvbnplIGNlbnRzIHZpbmd0LXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMSw1OTQiLCAibWlsbGUgY2lucSBjZW50cyBub25hbnRlLXF1YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRldXggbWlsbGUiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cm9pcyBtaWxsZSBxdWF0cmUiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0cmUgbWlsbGUgY2lucSBjZW50cyBzb2l4YW50ZS1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW56ZSBtaWxsZSBuZXVmIGNlbnRzIHF1YXJhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRldXggbWlsbGlvbiB0cm9pcyBjZW50cyBxdWFyYW50ZS1jaW5xIG1pbGxlICIKKyAgICAgICAgICAgICAgKyAic2l4IGNlbnRzIHNlcHRhbnRlLWh1aXQiIH0sCisgICAgICAgICAgICB7ICItMzYiLCAibW9pbnMgdHJlbnRlLXNpeCIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZGV1eCBjZW50cyB0cmVudGUtcXVhdHJlIHZpcmd1bGUgY2lucSBzaXggc2VwdCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEl0YWxpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRhbGlhblNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLklUQUxJQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW5vIiB9LAorICAgICAgICAgICAgeyAiMTUiLCAicXVpbmRpY2kiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2ZW50aSIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgInZlbnRpdHJlIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAic2V0dGFudGF0cmUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJvdHRhbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnRvIiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImNlbnRvc2VpIiB9LAorICAgICAgICAgICAgeyAiMTA4IiwgImNlbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTI3IiwgImNlbnRvdmVudGlzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE4MSIsICJjZW50b3R0YW50dW5vIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImR1ZWNlbnRvIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImNpbnF1ZWNlbnRvc2V0dGFudGFub3ZlIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIyLDAwMCIsICJkdWVtaWxhIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidHJlbWlsYXF1YXR0cm8iIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0dHJvbWlsYWNpbnF1ZWNlbnRvc2Vzc2FudGFzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE1LDk0MyIsICJxdWluZGljaW1pbGFub3ZlY2VudG9xdWFyYW50YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIi0zNiIsICJtZW5vIHRyZW50aXNlaSIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZHVlY2VudG90cmVudGlxdWF0dHJvIHZpcmdvbGEgY2lucXVlIHNlaSBzZXR0ZSIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEdlcm1hbiBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXJtYW5TcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgImVpbnMiIH0sCisgICAgICAgICAgICB7ICIxNSIsICJmXHUwMGZjbmZ6ZWhuIiB9LAorICAgICAgICAgICAgeyAiMjAiLCAiendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgImRyZWl1bmR6d2FuemlnIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAiZHJlaXVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICI4OCIsICJhY2h0dW5kYWNodHppZyIgfSwKKyAgICAgICAgICAgIHsgIjEwMCIsICJodW5kZXJ0IiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImh1bmRlcnRzZWNocyIgfSwKKyAgICAgICAgICAgIHsgIjEyNyIsICJodW5kZXJ0c2llYmVudW5kendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJ6d2VpaHVuZGVydCIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJmXHUwMGZjbmZodW5kZXJ0bmV1bnVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJ0YXVzZW5kIiB9LAorICAgICAgICAgICAgeyAiMiwwMDAiLCAiendlaXRhdXNlbmQiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJkcmVpdGF1c2VuZHZpZXIiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJ2aWVydGF1c2VuZGZcdTAwZmNuZmh1bmRlcnRzaWViZW51bmRzZWNoemlnIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgImZcdTAwZmNuZnplaG50YXVzZW5kbmV1bmh1bmRlcnRkcmVpdW5kdmllcnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJ6d2VpIE1pbGxpb25lbiBkcmVpaHVuZGVydGZcdTAwZmNuZnVuZHZpZXJ6aWd0YXVzZW5kIgorICAgICAgICAgICAgICArICJzZWNoc2h1bmRlcnRhY2h0dW5kc2llYnppZyIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiZWluIFRhdXNlbmQgc2VjaHMgSHVuZGVydCBmdWVuZnVuZGRyZWlzc2lnIiwgIjEsNjM1IiB9CisgICAgICAgIH07CisgICAgICAgIGRvTGVuaWVudFBhcnNlVGVzdChmb3JtYXR0ZXIsIGxwVGVzdERhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc3BvdCBjaGVjayBvbiB0aGUgVGhhaSBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaGFpU3BlbGxvdXQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMCIsICJcdTBlMjhcdTBlMzlcdTBlMTlcdTBlMjJcdTBlNGMiIH0sCisgICAgICAgICAgICB7ICIxIiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwNyIgfSwKKyAgICAgICAgICAgIHsgIjEwIiwgIlx1MGUyYVx1MGUzNFx1MGUxYSIgfSwKKyAgICAgICAgICAgIHsgIjExIiwgIlx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUxNCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgIlx1MGUyMlx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUxNCIgfSwKKyAgICAgICAgICAgIHsgIjEwMSIsICJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDdcdTBlMjNcdTBlNDlcdTBlMmRcdTBlMjJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDciIH0sCisgICAgICAgICAgICB7ICIxLjIzNCIsICJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDdcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMmRcdTBlMDdcdTBlMmFcdTBlMzJcdTBlMjFcdTBlMmFcdTBlMzVcdTBlNDgiIH0sCisgICAgICAgICAgICB7ICIyMS40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlNDBcdTBlMmRcdTBlNDdcdTBlMTRcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIyMi40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlMmFcdTBlMmRcdTBlMDdcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIyMy40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlMmFcdTBlMzJcdTBlMjFcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIxMjMuNDUiLCAiXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3XHUwZTIzXHUwZTQ5XHUwZTJkXHUwZTIyXHUwZTIyXHUwZTM1XHUwZTQ4XHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJhXHUwZTMyXHUwZTIxXHUwZTA4XHUwZTM4XHUwZTE0XHUwZTJhXHUwZTM1XHUwZTQ4XHUwZTJiXHUwZTQ5XHUwZTMyIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1LjY3OCIsICJcdTBFMkJcdTBFMTlcdTBFMzZcdTBFNDhcdTBFMDdcdTBFMkJcdTBFMjFcdTBFMzdcdTBFNDhcdTBFMTlcdTBFMkFcdTBFMkRcdTBFMDdcdTBFMUVcdTBFMzFcdTBFMTlcdTBFMkFcdTBFMzJcdTBFMjFcdTBFMjNcdTBFNDlcdTBFMkRcdTBFMjJcdTBFMkFcdTBFMzVcdTBFNDhcdTBFMkFcdTBFMzRcdTBFMUFcdTBFMkJcdTBFNDlcdTBFMzJcdTBFMDhcdTBFMzhcdTBFMTRcdTBFMkJcdTBFMDFcdTBFNDBcdTBFMDhcdTBFNDdcdTBFMTRcdTBFNDFcdTBFMUJcdTBFMTQiIH0sCisgICAgICAgIH07CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworCisgICAgICAgIC8qCisgICAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgIHsgImVpbiBUYXVzZW5kIHNlY2hzIEh1bmRlcnQgZnVlbmZ1bmRkcmVpc3NpZyIsICIxLDYzNSIgfQorICAgICAgICAgIH07CisgICAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgICAgICovCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZyYWN0aW9uYWxSdWxlU2V0KCkgeworCisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciA9CisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZyYWNSdWxlcywgTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIwIiwgIjAiIH0sCisgICAgICAgICAgICB7ICIxIiwgIjEiIH0sCisgICAgICAgICAgICB7ICIxMCIsICIxMCIgfSwKKyAgICAgICAgICAgIHsgIi4xIiwgIjEvMTAiIH0sCisgICAgICAgICAgICB7ICIuMTEiLCAiMS85IiB9LAorICAgICAgICAgICAgeyAiLjEyNSIsICIxLzgiIH0sCisgICAgICAgICAgICB7ICIuMTQyOCIsICIxLzciIH0sCisgICAgICAgICAgICB7ICIuMTY2NyIsICIxLzYiIH0sCisgICAgICAgICAgICB7ICIuMiIsICIxLzUiIH0sCisgICAgICAgICAgICB7ICIuMjUiLCAiMS80IiB9LAorICAgICAgICAgICAgeyAiLjMzMyIsICIxLzMiIH0sCisgICAgICAgICAgICB7ICIuNSIsICIxLzIiIH0sCisgICAgICAgICAgICB7ICIxLjEiLCAiMSAxLzEwIiB9LAorICAgICAgICAgICAgeyAiMi4xMSIsICIyIDEvOSIgfSwKKyAgICAgICAgICAgIHsgIjMuMTI1IiwgIjMgMS84IiB9LAorICAgICAgICAgICAgeyAiNC4xNDI4IiwgIjQgMS83IiB9LAorICAgICAgICAgICAgeyAiNS4xNjY3IiwgIjUgMS82IiB9LAorICAgICAgICAgICAgeyAiNi4yIiwgIjYgMS81IiB9LAorICAgICAgICAgICAgeyAiNy4yNSIsICI3IDEvNCIgfSwKKyAgICAgICAgICAgIHsgIjguMzMzIiwgIjggMS8zIiB9LAorICAgICAgICAgICAgeyAiOS41IiwgIjkgMS8yIiB9LAorICAgICAgICAgICAgeyAiLjIyMjIiLCAiMi85IiB9LAorICAgICAgICAgICAgeyAiLjQ0NDQiLCAiNC85IiB9LAorICAgICAgICAgICAgeyAiLjU1NTUiLCAiNS85IiB9LAorICAgICAgICAgICAgeyAiMS4yODU2IiwgIjEgMi83IiB9CisgICAgICAgIH07CisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCBmYWxzZSk7IC8vIGV4YWN0IHZhbHVlcyBhcmVuJ3QgcGFyc2FibGUgZnJvbSBmcmFjdGlvbnMKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dlZGlzaFNwZWxsb3V0KCkKKyAgICB7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBuZXcgTG9jYWxlKCJzdiIsICIiLCAiIik7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGxvY2FsZSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhRGVmYXVsdCA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRlbiIgfSwKKyAgICAgICAgICAgIHsgIjEyMyIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxLDEwMCIsICJldHR1c2VuIGV0dGh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImV0dHVzZW4gZXR0aHVuZHJhXHUwMGFkZW4iIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJldHR1c2VuIHR2XHUwMGU1aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxMSwwMDAiLCAiZWx2YVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMDAwIiwgInRvbHZcdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwLDAwMCIsICJ0anVnb1x1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMjEsMDAwIiwgInRqdWdvZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIxLDAwMSIsICJ0anVnb2VuXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIyMDAsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkdHVzZW4iIH0sCisgICAgICAgICAgICB7ICIyMDEsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwMCwyMDAiLCAidHZcdTAwZTVodW5kcmFcdTAwYWR0dXNlbiB0dlx1MDBlNWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAyLDAwMCIsICJ0dlx1MDBlNSBtaWxqb25lciB0dlx1MDBlNVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1LDY3OCIsICJ0b2x2IG1pbGpvbmVyIHRyZWh1bmRyYVx1MDBhZGZ5cnRpb2ZlbVx1MDBhZHR1c2VuIHNleGh1bmRyYVx1MDBhZHNqdXR0aW9cdTAwZTV0dGEiIH0sCisgICAgICAgICAgICB7ICIxMjMsNDU2Ljc4OSIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZVx1MDBhZHR1c2VuIGZ5cmFodW5kcmFcdTAwYWRmZW10aW9zZXgga29tbWEgc2p1IFx1MDBlNXR0YSBuaW8iIH0sCisgICAgICAgICAgICB7ICItMTIsMzQ1LjY3OCIsICJtaW51cyB0b2x2XHUwMGFkdHVzZW4gdHJlaHVuZHJhXHUwMGFkZnlydGlvZmVtIGtvbW1hIHNleCBzanUgXHUwMGU1dHRhIiB9CisgICAgICAgIH07CisKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YURlZmF1bHQsIHRydWUpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGFOZXV0cnVtID0geworICAgICAgICAgICAgeyAiMTAxIiwgImV0dGh1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDEiLCAiZXR0dXNlbiBldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMjEsMDAxIiwgInRqdWdvZW5cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiVuZXV0cnVtIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIG5ldXRydW0gcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFOZXV0cnVtLCB0cnVlKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhWWVhciA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICI5MDAiLCAibmlvaHVuZHJhIiB9LAorICAgICAgICAgICAgeyAiMSwwMDEiLCAidGlvaHVuZHJhXHUwMGFkZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDAiLCAiZWx2YWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImVsdmFodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJ0b2x2aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIyLDAwMSIsICJ0anVnb2h1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEwLDAwMSIsICJ0aW9cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiV5ZWFyIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHllYXIgcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFZZWFyLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnTnVtYmVycygpIHsKKyAgICAgICAgQmlnSW50ZWdlciBiaWdJID0gbmV3IEJpZ0ludGVnZXIoIjEyMzQ1Njc4OTAiLCAxMCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIGZtdC5mb3JtYXQoYmlnSSwgYnVmLCBudWxsKTsKKyAgICAgICAgbG9nbG4oImJpZyBpbnQ6ICIgKyBidWYudG9TdHJpbmcoKSk7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIEJpZ0RlY2ltYWwgYmlnRCA9IG5ldyBCaWdEZWNpbWFsKGJpZ0kpOworICAgICAgICBmbXQuZm9ybWF0KGJpZ0QsIGJ1ZiwgbnVsbCk7CisgICAgICAgIGxvZ2xuKCJiaWcgZGVjOiAiICsgYnVmLnRvU3RyaW5nKCkpOworLy8jZW5kaWYKKyAgICB9CisKKyAgcHVibGljIHZvaWQgVGVzdFRyYWlsaW5nU2VtaWNvbG9uKCkgeworICAgIFN0cmluZyB0aGFpUnVsZXMgPSAKKyAgICAgICAgIiVkZWZhdWx0OlxuIiArCisgICAgICAgICIgIC14OiBcdTBlMjVcdTBlMWE+PjtcbiIgKworICAgICAgICAiICB4Lng6IDw8XHUwZTA4XHUwZTM4XHUwZTE0Pj4+O1xuIiArCisgICAgICAgICIgIFx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YzsgXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3OyBcdTBlMmFcdTBlMmRcdTBlMDc7IFx1MGUyYVx1MGUzMlx1MGUyMTtcbiIgKworICAgICAgICAiICBcdTBlMmFcdTBlMzVcdTBlNDg7IFx1MGUyYlx1MGU0OVx1MGUzMjsgXHUwZTJiXHUwZTAxOyBcdTBlNDBcdTBlMDhcdTBlNDdcdTBlMTQ7IFx1MGU0MVx1MGUxYlx1MGUxNDtcbiIgKworICAgICAgICAiICBcdTBlNDBcdTBlMDFcdTBlNDlcdTBlMzI7IFx1MGUyYVx1MGUzNFx1MGUxYTsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTJkXHUwZTQ3XHUwZTE0O1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUyZFx1MGUwNzsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJhXHUwZTMyXHUwZTIxO1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUzNVx1MGU0ODsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJiXHUwZTQ5XHUwZTMyO1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYlx1MGUwMTsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTA4XHUwZTQ3XHUwZTE0O1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MVx1MGUxYlx1MGUxNDsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTAxXHUwZTQ5XHUwZTMyO1xuIiArCisgICAgICAgICIgIDIwOiBcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICAzMDogXHUwZTJhXHUwZTMyXHUwZTIxXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgNDA6IFx1MGUyYVx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVs+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICIgIDUwOiBcdTBlMmJcdTBlNDlcdTBlMzJcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICA2MDogXHUwZTJiXHUwZTAxXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgNzA6IFx1MGU0MFx1MGUwOFx1MGU0N1x1MGUxNFx1MGUyYVx1MGUzNFx1MGUxYVs+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICIgIDgwOiBcdTBlNDFcdTBlMWJcdTBlMTRcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICA5MDogXHUwZTQwXHUwZTAxXHUwZTQ5XHUwZTMyXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgMTAwOiA8PFx1MGUyM1x1MGU0OVx1MGUyZFx1MGUyMls+Pl07XG4iICsKKyAgICAgICAgIiAgMTAwMDogPDxcdTBlMWVcdTBlMzFcdTBlMTlbPj5dO1xuIiArCisgICAgICAgICIgIDEwMDAwOiA8PFx1MGUyYlx1MGUyMVx1MGUzN1x1MGU0OFx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMTAwMDAwOiA8PFx1MGU0MVx1MGUyYVx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwOiA8PFx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwLDAwMDogPDxcdTBlMWVcdTBlMzFcdTBlMTlcdTBlMjVcdTBlNDlcdTBlMzJcdTBlMTlbPj5dO1xuIiArCisgICAgICAgICIgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIiArCisgICAgICAgICIlJWFsdC1vbmVzOlxuIiArCisgICAgICAgICIgIFx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YztcbiIgKworICAgICAgICAiICBcdTBlNDBcdTBlMmRcdTBlNDdcdTBlMTQ7XG4iICsKKyAgICAgICAgIiAgPSVkZWZhdWx0PTtcbiA7IDs7ICI7CisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHRoYWlSdWxlcywgbmV3IExvY2FsZSgidGgiLCAiVEgiLCAiIikpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIwIiwgIlx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YyIgfSwKKyAgICAgICAgICAgIHsgIjEiLCAiXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3IiB9LAorICAgICAgICAgICAgeyAiMTIzLjQ1IiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwN1x1MGUyM1x1MGU0OVx1MGUyZFx1MGUyMlx1MGUyMlx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUzMlx1MGUyMVx1MGUwOFx1MGUzOFx1MGUxNFx1MGUyYVx1MGUzNVx1MGU0OFx1MGUyYlx1MGU0OVx1MGUzMiIgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTbWFsbFZhbHVlcygpIHsKKyAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICB7ICIwLjAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAxIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMSIsICJ0ZW4gbWlsbGlvbiBwb2ludCB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDEiLCAidGVuIG1pbGxpb24gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAxIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMSIsICJ0ZW4gbWlsbGlvbiBwb2ludCB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMDEiLCAidGVuIG1pbGxpb24gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMDAyIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB0d28iIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAiLCAidGVuIG1pbGxpb24iIH0sCisgICAgICAgIHsgIjEsMjM0LDU2Nyw4OTAuMDk4NzY1NCIsICJvbmUgYmlsbGlvbiwgdHdvIGh1bmRyZWQgYW5kIHRoaXJ0eS1mb3VyIG1pbGxpb24sIGZpdmUgaHVuZHJlZCBhbmQgc2l4dHktc2V2ZW4gdGhvdXNhbmQsIGVpZ2h0IGh1bmRyZWQgYW5kIG5pbmV0eSBwb2ludCB6ZXJvIG5pbmUgZWlnaHQgc2V2ZW4gc2l4IGZpdmUgZm91ciIgfSwKKyAgICAgICAgeyAiMTIzLDQ1Niw3ODkuOTg3NjU0MyIsICJvbmUgaHVuZHJlZCBhbmQgdHdlbnR5LXRocmVlIG1pbGxpb24sIGZvdXIgaHVuZHJlZCBhbmQgZmlmdHktc2l4IHRob3VzYW5kLCBzZXZlbiBodW5kcmVkIGFuZCBlaWdodHktbmluZSBwb2ludCBuaW5lIGVpZ2h0IHNldmVuIHNpeCBmaXZlIGZvdXIgdGhyZWUiIH0sCisgICAgICAgIHsgIjEyLDM0NSw2NzguODc2NTQzMjEiLCAidHdlbHZlIG1pbGxpb24sIHRocmVlIGh1bmRyZWQgYW5kIGZvcnR5LWZpdmUgdGhvdXNhbmQsIHNpeCBodW5kcmVkIGFuZCBzZXZlbnR5LWVpZ2h0IHBvaW50IGVpZ2h0IHNldmVuIHNpeCBmaXZlIGZvdXIgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMSwyMzQsNTY3Ljc2NTQzMjEiLCAib25lIG1pbGxpb24sIHR3byBodW5kcmVkIGFuZCB0aGlydHktZm91ciB0aG91c2FuZCwgZml2ZSBodW5kcmVkIGFuZCBzaXh0eS1zZXZlbiBwb2ludCBzZXZlbiBzaXggZml2ZSBmb3VyIHRocmVlIHR3byBvbmUiIH0sCisgICAgICAgIHsgIjEyMyw0NTYuNjU0MzIxIiwgIm9uZSBodW5kcmVkIGFuZCB0d2VudHktdGhyZWUgdGhvdXNhbmQsIGZvdXIgaHVuZHJlZCBhbmQgZmlmdHktc2l4IHBvaW50IHNpeCBmaXZlIGZvdXIgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMTIsMzQ1LjU0MzIxIiwgInR3ZWx2ZSB0aG91c2FuZCB0aHJlZSBodW5kcmVkIGFuZCBmb3J0eS1maXZlIHBvaW50IGZpdmUgZm91ciB0aHJlZSB0d28gb25lIiB9LAorICAgICAgICB7ICIxLDIzNC40MzIxIiwgIm9uZSB0aG91c2FuZCB0d28gaHVuZHJlZCBhbmQgdGhpcnR5LWZvdXIgcG9pbnQgZm91ciB0aHJlZSB0d28gb25lIiB9LAorICAgICAgICB7ICIxMjMuMzIxIiwgIm9uZSBodW5kcmVkIGFuZCB0d2VudHktdGhyZWUgcG9pbnQgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDExNzU0OTQ0IiwgInplcm8gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSBvbmUgc2V2ZW4gZml2ZSBmb3VyIG5pbmUgZm91ciBmb3VyIiB9LAorICAgICAgICB7ICIwLjAwMDAwMTE3NTQ5NDM1MSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUgb25lIHNldmVuIGZpdmUgZm91ciBuaW5lIGZvdXIgdGhyZWUgZml2ZSBvbmUiIH0sCisgICAgfTsKKworICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVTZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMgPSBuZXcgU3RyaW5nW11bXSB7CisgICAgICAgICAgICAvKiBwdWJsaWMgcnVsZSBzZXRzKi8KKyAgICAgICAgICAgIHsiJXNpbXBsaWZpZWQiLCAiJWRlZmF1bHQiLCAiJW9yZGluYWwifSwKKyAgICAgICAgICAgIC8qIGRpc3BsYXkgbmFtZXMgaW4gImVuX1VTIiBsb2NhbGUqLworICAgICAgICAgICAgeyJlbl9VUyIsICJTaW1wbGlmaWVkIiwgIkRlZmF1bHQiLCAiT3JkaW5hbCJ9LAorICAgICAgICAgICAgLyogZGlzcGxheSBuYW1lcyBpbiAiemhfSGFucyIgbG9jYWxlKi8KKyAgICAgICAgICAgIHsiemhfSGFucyIsICJcdTdCODBcdTUzMTYiLCAiXHU3RjNBXHU3NzAxIiwgICJcdTVFOEZcdTUyMTcifSwKKyAgICAgICAgICAgIC8qIGRpc3BsYXkgbmFtZXMgaW4gYSBmYWtlIGxvY2FsZSovCisgICAgICAgICAgICB7ImZvb19CYXJfQkFaIiwgIlNpbXBsaWZpZWQiLCAiRGVmYXVsdCIsICJPcmRpbmFsIn0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIC8vQ29uc3RydWN0IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBieSBydWxlIHNldHMgYW5kIGxvY2FsaXphdGlvbnMgbGlzdAorICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodWtFbmdsaXNoLCBsb2NhbGl6YXRpb25zLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGYyPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHVrRW5nbGlzaCwgbG9jYWxpemF0aW9ucyk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHRoZSB0d28gZm9ybWF0dGVycycgZXF1YWxpdHkiLCBmb3JtYXR0ZXIuZXF1YWxzKGYyKSk7ICAgICAgICAKKworICAgICAgICAvL2dldCBkaXNwbGF5TmFtZSBieSBuYW1lCisgICAgICAgIFN0cmluZ1tdIHJ1bGVTZXROYW1lcyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0TmFtZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHJ1bGVTZXROYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbG9nbG4oIlJ1bGUgc2V0IG5hbWU6ICIgKyBydWxlU2V0TmFtZXNbaV0pOworICAgICAgICAgICAgU3RyaW5nIFJTTmFtZV9kZWZMb2MgPSBmb3JtYXR0ZXIuZ2V0UnVsZVNldERpc3BsYXlOYW1lKHJ1bGVTZXROYW1lc1tpXSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkRpc3BsYXkgbmFtZSBpbiBkZWZhdWx0IGxvY2FsZSIsIGxvY2FsaXphdGlvbnNbMV1baSsxXSwgUlNOYW1lX2RlZkxvYyk7CisgICAgICAgICAgICBTdHJpbmcgUlNOYW1lX2xvYyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWUocnVsZVNldE5hbWVzW2ldLCBVTG9jYWxlLkNISU5BKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiRGlzcGxheSBuYW1lIGluIENoaW5lc2UiLCBsb2NhbGl6YXRpb25zWzJdW2krMV0sIFJTTmFtZV9sb2MpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGdldERlZmF1bHRSdWxlU2V0TmFtZQorICAgICAgICBTdHJpbmcgZGVmYXVsdFJTID0gZm9ybWF0dGVyLmdldERlZmF1bHRSdWxlU2V0TmFtZSgpOworICAgICAgICAvL3lvdSBrbm93IHRoYXQgdGhlIGRlZmF1bHQgcnVsZSBzZXQgaXMgJXNpbXBsaWZpZWQgYWNjb3JkaW5nIHRvIHJ1bGUgc2V0cyBzdHJpbmcgdWtFbmdsaXNoCisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RGVmYXVsdFJ1bGVTZXROYW1lIiwgIiVzaW1wbGlmaWVkIiwgZGVmYXVsdFJTKTsKKyAgICAgICAgCisgICAgICAgIC8vZ2V0IGxvY2FsZXMgb2YgbG9jYWxpemF0aW9ucworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsb2dsbihsb2NhbGVzW2ldLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vZ2V0IGRpc3BsYXlOYW1lcworICAgICAgICBTdHJpbmdbXSBSU05hbWVzX2RlZkxvYyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2RlZkxvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIGRlZmF1bHQgbG9jYWxlIiwgbG9jYWxpemF0aW9uc1sxXVtpKzFdLCBSU05hbWVzX2RlZkxvY1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIFJTTmFtZXNfbG9jID0gZm9ybWF0dGVyLmdldFJ1bGVTZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5VSyk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIEVuZ2xpc2giLCBsb2NhbGl6YXRpb25zWzFdW2krMV0sIFJTTmFtZXNfbG9jW2ldKTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIFJTTmFtZXNfbG9jID0gZm9ybWF0dGVyLmdldFJ1bGVTZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5DSElOQSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIENoaW5lc2UiLCBsb2NhbGl6YXRpb25zWzJdW2krMV0sIFJTTmFtZXNfbG9jW2ldKTsKKyAgICAgICAgfSAgICAgICAgCisKKyAgICAgICAgUlNOYW1lc19sb2MgPSBmb3JtYXR0ZXIuZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhuZXcgVUxvY2FsZSgiZm9vX0Jhcl9CQVoiKSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIGZha2UgbG9jYWxlIiwgbG9jYWxpemF0aW9uc1szXVtpKzFdLCBSU05hbWVzX2xvY1tpXSk7CisgICAgICAgIH0gICAgICAgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBbGxMb2NhbGVzKCkgeworCVN0cmluZ0J1ZmZlciBlcnJvcnMgPSBudWxsOworCVVMb2NhbGVbXSBsb2NhbGVzID0gVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisJUmFuZG9tIHIgPSBjcmVhdGVSYW5kb20oKTsKKwlTdHJpbmdbXSBuYW1lcyA9IHsKKwkgICAgIiAoc3BlbGxvdXQpICIsCisJICAgICIgKG9yZGluYWwpICAiLAorCSAgICAiIChkdXJhdGlvbikgIgorCX07CisJZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisJICAgIFVMb2NhbGUgbG9jID0gbG9jYWxlc1tpXTsKKwkgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzOyArK2opIHsKKwkJdHJ5IHsKKwkJICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGxvYywgaisxKTsKKwkJICAgIGZsb2F0IG4gPSAoKGludCkoci5uZXh0SW50KDEwMDApIC0gMzAwKSkgLyAxNmY7CisJCSAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQobik7CisJCSAgICBpZiAoaXNWZXJib3NlKCkpIHsKKwkJCWxvZ2xuKGxvYy5nZXROYW1lKCkgKyBuYW1lc1tqXSArICJzdWNjZXNzOiAiICsgbiArICIgLT4gIiArIHMpOworCQkgICAgfQorCQl9CisJCWNhdGNoIChFeGNlcHRpb24gZSkgeworCQkgICAgU3RyaW5nIG1zZyA9IGxvYy5nZXROYW1lKCkgKyBuYW1lc1tqXSArICJFUlJPUjoiICsgZS5nZXRNZXNzYWdlKCk7CisJCSAgICBpZiAoaXNWZXJib3NlKCkpIHsKKwkJCWxvZ2xuKG1zZyk7CisJCSAgICB9CisJCSAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKwkJCWVycm9ycyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJICAgIH0KKwkJICAgIGVycm9ycy5hcHBlbmQoIlxuIiArIG1zZyk7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoZXJyb3JzICE9IG51bGwpIHsKKwkgICAgZXJybG4oZXJyb3JzLnRvU3RyaW5nKCkpOworCX0KKyAgICB9CisKKyAgICB2b2lkIGRvVGVzdChSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLCBTdHJpbmdbXVtdIHRlc3REYXRhLAorICAgICAgICAgICAgICAgIGJvb2xlYW4gdGVzdFBhcnNpbmcpIHsKKyAgICAvLyAgICAgICAgTnVtYmVyRm9ybWF0IGRlY0ZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIE51bWJlckZvcm1hdCBkZWNGbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIyMuIyMjIyMjIyMjIyMjIyMjIyIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBudW1iZXIgPSB0ZXN0RGF0YVtpXVswXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRXb3JkcyA9IHRlc3REYXRhW2ldWzFdOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0WyIgKyBpICsgIl0gbnVtYmVyOiAiICsgbnVtYmVyICsgIiB0YXJnZXQ6ICIgKyBleHBlY3RlZFdvcmRzKTsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbnVtID0gZGVjRm10LnBhcnNlKG51bWJlcik7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFjdHVhbFdvcmRzID0gZm9ybWF0dGVyLmZvcm1hdChudW0pOworCisgICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxXb3Jkcy5lcXVhbHMoZXhwZWN0ZWRXb3JkcykpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNwb3QgY2hlY2sgZm9ybWF0IGZhaWxlZDogZm9yICIgKyBudW1iZXIgKyAiLCBleHBlY3RlZFxuICAgICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBleHBlY3RlZFdvcmRzICsgIiwgYnV0IGdvdFxuICAgICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxXb3Jkcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlc3RQYXJzaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGFyc2UoYWN0dWFsV29yZHMpKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdHVhbE51bWJlci5lcXVhbHMobnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNwb3QgY2hlY2sgcGFyc2UgZmFpbGVkOiBmb3IgIiArIGFjdHVhbFdvcmRzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBudW1iZXIgKyAiLCBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBkb0xlbmllbnRQYXJzZVRlc3QoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBkZWNGbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB3b3JkcyA9IHRlc3REYXRhW2ldWzBdOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZE51bWJlciA9IHRlc3REYXRhW2ldWzFdOworICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlci5wYXJzZSh3b3JkcykpOworCisgICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxOdW1iZXIuZXF1YWxzKGV4cGVjdGVkTnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGVuaWVudC1wYXJzZSBzcG90IGNoZWNrIGZhaWxlZDogZm9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyB3b3JkcyArICIsIGV4cGVjdGVkICIgKyBleHBlY3RlZE51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGJ1dCBnb3QgIiArIGFjdHVhbE51bWJlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBVLksuIEVuZ2xpc2guICAKKyAgICAgKiBJIGJvcnJvdyB0aGUgcnVsZSBzZXRzIGZvciBUZXN0UnVsZVNldERpc3BsYXlOYW1lKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB1a0VuZ2xpc2ggPQorICAgICAgICAiJXNpbXBsaWZpZWQ6XG4iCisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiVhbHQtdGVlbnM6XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwMD46IDwlJWFsdC1odW5kcmVkczxbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiUlYWx0LWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgMDogU0hPVUxEIE5FVkVSIEdFVCBIRVJFITtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kO1xuIgorICAgICAgICArICIgICAgMTE6ID0lc2ltcGxpZmllZD0gaHVuZHJlZD4lJWVtcHR5PjtcbiIKKyAgICAgICAgKyAiJSVlbXB0eTpcbiIKKyAgICAgICAgKyAiICAgIDA6OyIKKyAgICAgICAgKyAiJW9yZGluYWw6XG4iCisgICAgICAgICsgIiAgICB6ZXJvdGg7IGZpcnN0OyBzZWNvbmQ7IHRoaXJkOyBmb3VydGg7IGZpZnRoOyBzaXh0aDsgc2V2ZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBlaWdodGg7IG5pbnRoO1xuIgorICAgICAgICArICIgICAgdGVudGg7IGVsZXZlbnRoOyB0d2VsZnRoOyB0aGlydGVlbnRoOyBmb3VydGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGZpZnRlZW50aDsgc2l4dGVlbnRoOyBzZXZlbnRlZW50aDsgZWlnaHRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBuaW5ldGVlbnRoO1xuIgorICAgICAgICArICIgICAgdHdlbnRpZXRoOyB0d2VudHktPj47XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnRpZXRoOyB0aGlydHktPj47XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydGlldGg7IGZvcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnRpZXRoOyBmaWZ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0aWV0aDsgc2l4dHktPj47XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50aWV0aDsgc2V2ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodGlldGg7IGVpZ2h0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldGlldGg7IG5pbmV0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCVzaW1wbGlmaWVkPCBodW5kcmVkdGg7IDwlc2ltcGxpZmllZDwgaHVuZHJlZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmR0aDsgPCVzaW1wbGlmaWVkPCB0aG91c2FuZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBtaWxsaW9udGg7IDwlc2ltcGxpZmllZDwgbWlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IGJpbGxpb250aDtcbiIKKyAgICAgICAgKyAiICAgICAgICA8JXNpbXBsaWZpZWQ8IGJpbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IgorICAgICAgICArICIlZGVmYXVsdDpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbmQ6XG4iCisgICAgICAgICsgIiAgICBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiJSVjb21tYXM6XG4iCisgICAgICAgICsgIiAgICAnIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiAsID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6ICwgPSVkZWZhdWx0PTsiCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJyAnICwgJywnIDtcbiI7CisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTEyNGJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBvdGhlciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCisKK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiVGVzdEFsbCRSQk5GIiwKKyAgICAgICAgICAgICAgICAgICJUZXN0QWxsJE51bWJlckZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAiVGVzdEFsbCREYXRlRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICJUZXN0QWxsJE1lc3NhZ2VGb3JtYXQiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5CaWdOdW1iZXJGb3JtYXRUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdCIsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJGb3JtYXR0aW5nIFRlc3RzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSQk5GIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICAgICAgcHVibGljIFJCTkYoKSB7CisgICAgICAgICAgICBzdXBlcihuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJSYm5mVGVzdCIsCisgICAgICAgICAgICAgICAgIlJibmZSb3VuZFRyaXBUZXN0IiwKKyAgICAgICAgIlJCTkZQYXJzZVRlc3QiLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE51bWJlckZvcm1hdCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQoKSB7CisgICAgICAgICAgICBzdXBlcihuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJJbnRsVGVzdE51bWJlckZvcm1hdCIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0TnVtYmVyRm9ybWF0QVBJIiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyRm9ybWF0VGVzdCIsCisgICAgICAgICAgICAgICAgIk51bWJlckZvcm1hdFJlZ2lzdHJhdGlvblRlc3QiLAorICAgICAgICAgICAgICAgICJOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUmVncmVzc2lvbiIsCisgICAgICAgICAgICAgICAgIk51bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0IiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJIiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJQyIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQyIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGF0ZUZvcm1hdCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgICAgIHB1YmxpYyBEYXRlRm9ybWF0KCkgeworICAgICAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdE1pc2NUZXN0cyIsCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdCIsCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRSb3VuZFRyaXBUZXN0IiwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdFRlc3QiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERhdGVGb3JtYXQiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERhdGVGb3JtYXRBUEkiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERhdGVGb3JtYXRBUElDIiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scyIsCisgICAgICAgICAgICAgICAgIkRhdGVUaW1lR2VuZXJhdG9yVGVzdCIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSSIsCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEoiLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1lc3NhZ2VGb3JtYXQgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgICAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdCgpIHsKKyAgICAgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgIlRlc3RNZXNzYWdlRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAiTWVzc2FnZVJlZ3Jlc3Npb24iLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJGb3JtYXQiOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RNZXNzYWdlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RNZXNzYWdlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcyYjRkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvVGVzdE1lc3NhZ2VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDkzNiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgNiwgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgamF2YS50ZXh0LkNob2ljZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIFRlc3RNZXNzYWdlRm9ybWF0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0TWVzc2FnZUZvcm1hdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnMygpCisgICAgeworICAgICAgICBkb3VibGUgbXlOdW1iZXIgPSAtMTIzNDU2OworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm0gPSBudWxsOworICAgICAgICBMb2NhbGUgbG9jYWxlW10gPSB7CisgICAgICAgICAgICBuZXcgTG9jYWxlKCJhciIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJiZSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJiZyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJjYSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJjcyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJkYSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJkZSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJkZSIsICJBVCIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImRlIiwgIkNIIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZWwiLCAiIiwgIiIpLCAgICAgICAvLyAxMAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZW4iLCAiQ0EiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbiIsICJHQiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVuIiwgIklFIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZW4iLCAiVVMiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJlcyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJldCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmaSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmciIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmciIsICJCRSIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImZyIiwgIkNBIiwgIiIpLCAgICAgLy8gMjAKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImZyIiwgIkNIIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaGUiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaHIiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaHUiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaXMiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaXQiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaXQiLCAiQ0giLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJqYSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJrbyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJsdCIsICIiLCAiIiksICAgICAgIC8vIDMwCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJsdiIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJtayIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJubCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJubCIsICJCRSIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoIm5vIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInBsIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInB0IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInJvIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInJ1IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNoIiwgIiIsICIiKSwgICAgICAgLy8gNDAKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNrIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNsIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNxIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNyIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInN2IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInRyIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInVrIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIlRXIiwgIiIpICAgICAgLy8gNDkKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwYXJzZVBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPSAwOyBpIDwgNDk7IGkrKykgeworICAgIC8vICAgICAgICBmb3JtID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlW2ldKTsKKyAgICAgICAgICAgIGZvcm0gPSAoRGVjaW1hbEZvcm1hdClOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jYWxlW2ldKTsKKyAgICAgICAgICAgIGlmIChmb3JtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVtYmVyIGZvcm1hdCBjcmVhdGlvbiBmYWlsZWQgZm9yICIgKyBsb2NhbGVbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGZvcm0uZm9ybWF0KG15TnVtYmVyLCBidWZmZXIsIHBvcyk7CisgICAgICAgICAgICBwYXJzZVBvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIE9iamVjdCByZXN1bHQgPSBmb3JtLnBhcnNlKGJ1ZmZlci50b1N0cmluZygpLCBwYXJzZVBvcyk7CisgICAgICAgICAgICBsb2dsbihsb2NhbGVbaV0uZ2V0RGlzcGxheU5hbWUoKSArICIgLT4gIiArIHJlc3VsdCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3MuZ2V0SW5kZXgoKSAhPSBidWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVtYmVyIGZvcm1hdCBwYXJzZSBmYWlsZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnMSgpCisgICAgeworICAgICAgICBmaW5hbCBkb3VibGUgbGltaXRbXSA9IHswLjAsIDEuMCwgMi4wfTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGZvcm1hdHNbXSA9IHsiMC4wPD1Bcmc8MS4wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS4wPD1Bcmc8Mi4wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMi4wPC1BcmcifTsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGNmID0gbmV3IENob2ljZUZvcm1hdChsaW1pdCwgZm9ybWF0cyk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gc3RhdHVzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiQ2hvaWNlRm9ybWF0LmZvcm1hdCIsIGZvcm1hdHNbMV0sIGNmLmZvcm1hdCgxKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzIoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdDsKKyAgICAgICAgLy8ge3NmYn0gdXNlIGRvdWJsZSBmb3JtYXQgaW4gcGF0dGVybiwgc28gcmVzdWx0IHdpbGwgbWF0Y2ggKG5vdCBzdHJpY3RseSBuZWNlc3NhcnkpCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gIlRoZXJlIHswLGNob2ljZSwwLjAjYXJlIG5vIGZpbGVzfDEuMCNpcyBvbmUgZmlsZXwxLjA8YXJlIHswLCBudW1iZXJ9IGZpbGVzfSBvbiBkaXNrIHsxfS4gIjsKKyAgICAgICAgbG9nbG4oIlRoZSBpbnB1dCBwYXR0ZXJuIDogIiArIHBhdHRlcm4pOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygidG9QYXR0ZXJuIiwgcGF0dGVybiwgZm10LnRvUGF0dGVybigpKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IHBhdHRlcm4gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm4oKSAvLyBha2EgUGF0dGVyblRlc3QoKQorICAgIHsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzW10gPSB7CisgICAgICAgICAgICBuZXcgRG91YmxlKDEpLCBuZXcgRG91YmxlKDM0NTYpLAorICAgICAgICAgICAgIkRpc2siLCBuZXcgRGF0ZSgxMDAwMDAwMDAwTCkKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHRlc3RDYXNlc1tdID0geworICAgICAgICAgICAiUXVvdGVzICcnLCAneycsICdhJyB7MH0gJ3swfSciLAorICAgICAgICAgICAiUXVvdGVzICcnLCAneycsICdhJyB7MCxudW1iZXJ9ICd7MH0nIiwKKyAgICAgICAgICAgIid7JzEsbnVtYmVyLCcjJywjI30gezEsbnVtYmVyLCcjJywjI30iLAorICAgICAgICAgICAiVGhlcmUgYXJlIHsxfSBmaWxlcyBvbiB7Mn0gYXQgezN9LiIsCisgICAgICAgICAgICJPbiB7Mn0sIHRoZXJlIGFyZSB7MX0gZmlsZXMsIHdpdGggezAsbnVtYmVyLGN1cnJlbmN5fS4iLAorICAgICAgICAgICAiJ3sxLG51bWJlcixwZXJjZW50fScsIHsxLG51bWJlcixwZXJjZW50fSwiLAorICAgICAgICAgICAiJ3sxLGRhdGUsZnVsbH0nLCB7MSxkYXRlLGZ1bGx9LCIsCisgICAgICAgICAgICInezMsZGF0ZSxmdWxsfScsIHszLGRhdGUsZnVsbH0sIiwKKyAgICAgICAgICAgIid7MSxudW1iZXIsIywjI30nIHsxLG51bWJlciwjLCMjfSIsCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIHRlc3RSZXN1bHRQYXR0ZXJuc1tdID0geworICAgICAgICAgICAgIlF1b3RlcyAnJywgJ3snLCBhIHswfSAneycwfSIsCisgICAgICAgICAgICAiUXVvdGVzICcnLCAneycsIGEgezAsbnVtYmVyfSAneycwfSIsCisgICAgICAgICAgICAiJ3snMSxudW1iZXIsIywjI30gezEsbnVtYmVyLCcjJyMsIyN9IiwKKyAgICAgICAgICAgICJUaGVyZSBhcmUgezF9IGZpbGVzIG9uIHsyfSBhdCB7M30uIiwKKyAgICAgICAgICAgICJPbiB7Mn0sIHRoZXJlIGFyZSB7MX0gZmlsZXMsIHdpdGggezAsbnVtYmVyLGN1cnJlbmN5fS4iLAorICAgICAgICAgICAgIid7JzEsbnVtYmVyLHBlcmNlbnR9LCB7MSxudW1iZXIscGVyY2VudH0sIiwKKyAgICAgICAgICAgICIneycxLGRhdGUsZnVsbH0sIHsxLGRhdGUsZnVsbH0sIiwKKyAgICAgICAgICAgICIneyczLGRhdGUsZnVsbH0sIHszLGRhdGUsZnVsbH0sIiwKKyAgICAgICAgICAgICIneycxLG51bWJlciwjLCMjfSB7MSxudW1iZXIsIywjI30iCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIHRlc3RSZXN1bHRTdHJpbmdzW10gPSB7CisgICAgICAgICAgICAiUXVvdGVzICcsIHssIGEgMSB7MH0iLAorICAgICAgICAgICAgIlF1b3RlcyAnLCB7LCBhIDEgezB9IiwKKyAgICAgICAgICAgICJ7MSxudW1iZXIsIywjI30gIzM0LDU2IiwKKyAgICAgICAgICAgICJUaGVyZSBhcmUgMyw0NTYgZmlsZXMgb24gRGlzayBhdCAxLzEyLzcwIDU6NDYgQU0uIiwKKyAgICAgICAgICAgICJPbiBEaXNrLCB0aGVyZSBhcmUgMyw0NTYgZmlsZXMsIHdpdGggJDEuMDAuIiwKKyAgICAgICAgICAgICJ7MSxudW1iZXIscGVyY2VudH0sIDM0NSw2MDAlLCIsCisgICAgICAgICAgICAiezEsZGF0ZSxmdWxsfSwgV2VkbmVzZGF5LCBEZWNlbWJlciAzMSwgMTk2OSwiLAorICAgICAgICAgICAgInszLGRhdGUsZnVsbH0sIE1vbmRheSwgSmFudWFyeSAxMiwgMTk3MCwiLAorICAgICAgICAgICAgInsxLG51bWJlciwjLCMjfSAzNCw1NiIKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDk7ICsraSkgeworICAgICAgICAgICAgLy9pdF9vdXQgPDwgIlxuUGF0IGluOiAgIiA8PCB0ZXN0Q2FzZXNbaV0pOworCisgICAgICAgICAgICBTdHJpbmcgYnVmZmVyOworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KHRlc3RDYXNlc1tpXSwgTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IGZvciAiICsgdGVzdENhc2VzW2ldICsgIiBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlwiIiArIHRlc3RDYXNlc1tpXSArICJcIi50b1BhdHRlcm4oKSIsIHRlc3RSZXN1bHRQYXR0ZXJuc1tpXSwgZm9ybS50b1BhdHRlcm4oKSk7CisKKyAgICAgICAgICAgIC8vaXRfb3V0IDw8ICJQYXQgb3V0OiAiIDw8IGZvcm0udG9QYXR0ZXJuKGJ1ZmZlcikpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDQ7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJncywgcmVzdWx0LCBmaWVsZHBvcyk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIHRlc3RSZXN1bHRTdHJpbmdzW2ldLCByZXN1bHQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIC8vaXRfb3V0IDw8ICJSZXN1bHQ6ICAiIDw8IHJlc3VsdCk7CisgICAgLy8jaWYgMAorICAgIC8vICAgICAgICAvKiBUT0RPOiBMb29rIGF0IHRoaXMgdGVzdCBhbmQgc2VlIGlmIHRoaXMgaXMgc3RpbGwgYSB2YWxpZCB0ZXN0ICovCisgICAgLy8gICAgICAgIGxvZ2xuKCItLS0tLS0tLS0tLS0tLS0tIHRlc3QgcGFyc2UgLS0tLS0tLS0tLS0tLS0tLSIpOworICAgIC8vCisgICAgLy8gICAgICAgIGZvcm0udG9QYXR0ZXJuKGJ1ZmZlcik7CisgICAgLy8gICAgICAgIGxvZ2xuKCJNU0cgcGF0dGVybiBmb3IgcGFyc2U6ICIgKyBidWZmZXIpOworICAgIC8vCisgICAgLy8gICAgICAgIGludCBwYXJzZUNvdW50ID0gMDsKKyAgICAvLyAgICAgICAgRm9ybWF0dGFibGUqIHZhbHVlcyA9IGZvcm0ucGFyc2UocmVzdWx0LCBwYXJzZUNvdW50LCBzdWNjZXNzKTsKKyAgICAvLyAgICAgICAgaWYgKFVfRkFJTFVSRShzdWNjZXNzKSkgeworICAgIC8vICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXQgZmFpbGVkIHRlc3QgIzUiKTsKKyAgICAvLyAgICAgICAgICAgIGxvZ2xuKFN0cmluZygiTWVzc2FnZUZvcm1hdCBmYWlsZWQgdGVzdCAjNSB3aXRoIGVycm9yIGNvZGUgIikrKGludClzdWNjZXNzKTsKKyAgICAvLyAgICAgICAgfSBlbHNlIGlmIChwYXJzZUNvdW50ICE9IGNvdW50KSB7CisgICAgLy8gICAgICAgICAgICBlcnJsbigiTVNHIGNvdW50IG5vdCAlZCBhcyBleHBlY3RlZC4gR290ICVkIiwgY291bnQsIHBhcnNlQ291bnQpOworICAgIC8vICAgICAgICB9CisgICAgLy8gICAgICAgIFVCb29sIGZhaWxlZCA9IEZBTFNFOworICAgIC8vICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHBhcnNlQ291bnQ7ICsraikgeworICAgIC8vICAgICAgICAgICAgIGlmICh2YWx1ZXMgPT0gMCB8fCB0ZXN0QXJnc1tqXSAhPSB2YWx1ZXNbal0pIHsKKyAgICAvLyAgICAgICAgICAgICAgICBlcnJsbigoKFN0cmluZykiTVNHIHRlc3RhcmdzWyIpICsgaiArICJdOiAiICsgdG9TdHJpbmcodGVzdEFyZ3Nbal0pKTsKKyAgICAvLyAgICAgICAgICAgICAgICBlcnJsbigoKFN0cmluZykiTVNHIHZhbHVlc1siKSArIGogKyAiXSAgOiAiICsgdG9TdHJpbmcodmFsdWVzW2pdKSk7CisgICAgLy8gICAgICAgICAgICAgICAgZmFpbGVkID0gVFJVRTsKKyAgICAvLyAgICAgICAgICAgICB9CisgICAgLy8gICAgICAgIH0KKyAgICAvLyAgICAgICAgaWYgKGZhaWxlZCkKKyAgICAvLyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IGZhaWxlZCB0ZXN0ICM2Iik7CisgICAgLy8jZW5kaWYKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTYW1wbGUoKSAvLyBha2Egc2FtcGxlKCkKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybSA9IG51bGw7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJTYW1wbGUgbWVzc2FnZSBmb3JtYXQgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczFbXSA9IHsgImFiYyIsICJkZWYiIH07CisgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLAorICAgICAgICAgICAgICAgICAgICAgIlRoZXJlIGFyZSBhYmMgZmlsZXMgb24gZGVmIiwKKyAgICAgICAgICAgICAgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMSwgYnVmZmVyMiwgZmllbGRwb3MpLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdGF0aWNGb3JtYXQoKQorICAgIHsKKyAgICAgICAgT2JqZWN0IGFyZ3VtZW50c1tdID0geworICAgICAgICAgICAgbmV3IEludGVnZXIoNyksCisgICAgICAgICAgICBuZXcgRGF0ZSg4NzEwNjgwMDAwMDBMKSwKKyAgICAgICAgICAgICJhIGRpc3R1cmJhbmNlIGluIHRoZSBGb3JjZSIKKyAgICAgICAgfTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsCisgICAgICAgICAgICAiQXQgMTI6MjA6MDAgUE0gb24gQXVnIDgsIDE5OTcsIHRoZXJlIHdhcyBhIGRpc3R1cmJhbmNlIGluIHRoZSBGb3JjZSBvbiBwbGFuZXQgNy4iLAorICAgICAgICAgICAgTWVzc2FnZUZvcm1hdC5mb3JtYXQoIkF0IHsxLHRpbWV9IG9uIHsxLGRhdGV9LCB0aGVyZSB3YXMgezJ9IG9uIHBsYW5ldCB7MCxudW1iZXIsaW50ZWdlcn0uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cykpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgRmllbGRQb3NpdGlvbl9ET05UX0NBUkUgPSAtMTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTaW1wbGVGb3JtYXQoKQorICAgIHsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzMVtdID0ge25ldyBJbnRlZ2VyKDApLCAiTXlEaXNrIn07CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczJbXSA9IHtuZXcgSW50ZWdlcigxKSwgIk15RGlzayJ9OworICAgICAgICBPYmplY3QgdGVzdEFyZ3MzW10gPSB7bmV3IEludGVnZXIoMTIpLCAiTXlEaXNrIn07CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoCisgICAgICAgICAgICAiVGhlIGRpc2sgXCJ7MX1cIiBjb250YWlucyB7MH0gZmlsZShzKS4iKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyaW5nID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSA9IG5ldyBGaWVsZFBvc2l0aW9uKEZpZWxkUG9zaXRpb25fRE9OVF9DQVJFKTsKKyAgICAgICAgZm9ybS5mb3JtYXQodGVzdEFyZ3MxLCBzdHJpbmcsIGlnbm9yZSk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIDAgZmlsZShzKS4iLAorICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLnRvU3RyaW5nKCkpOworCisgICAgICAgIHN0cmluZy5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMiwgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpc2sgXCJNeURpc2tcIiBjb250YWlucyAxIGZpbGUocykuIiwKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy50b1N0cmluZygpKTsKKworICAgICAgICBzdHJpbmcuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJnczMsIHN0cmluZywgaWdub3JlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLAorICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaXNrIFwiTXlEaXNrXCIgY29udGFpbnMgMTIgZmlsZShzKS4iLAorICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RNc2dGb3JtYXRDaG9pY2UoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9LiIpOworICAgICAgICBkb3VibGUgZmlsZWxpbWl0c1tdID0gezAsMSwyfTsKKyAgICAgICAgU3RyaW5nIGZpbGVwYXJ0W10gPSB7Im5vIGZpbGVzIiwib25lIGZpbGUiLCJ7MCxudW1iZXJ9IGZpbGVzIn07CisgICAgICAgIENob2ljZUZvcm1hdCBmaWxlZm9ybSA9IG5ldyBDaG9pY2VGb3JtYXQoZmlsZWxpbWl0cywgZmlsZXBhcnQpOworICAgICAgICBmb3JtLnNldEZvcm1hdCgxLCBmaWxlZm9ybSk7IC8vIE5PVCB6ZXJvLCBzZWUgYmVsb3cKKworICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSA9IG5ldyBGaWVsZFBvc2l0aW9uKEZpZWxkUG9zaXRpb25fRE9OVF9DQVJFKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmluZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzMVtdID0ge25ldyBJbnRlZ2VyKDApLCAiTXlEaXNrIn07CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMSwgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCMxIiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIG5vIGZpbGVzLiIsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcudG9TdHJpbmcoKSk7CisKKyAgICAgICAgc3RyaW5nLnNldExlbmd0aCgwKTsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzMltdID0ge25ldyBJbnRlZ2VyKDEpLCAiTXlEaXNrIn07CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMiwgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCMyIiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIG9uZSBmaWxlLiIsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcudG9TdHJpbmcoKSk7CisKKyAgICAgICAgc3RyaW5nLnNldExlbmd0aCgwKTsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzM1tdID0ge25ldyBJbnRlZ2VyKDEyNzMpLCAiTXlEaXNrIn07CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMywgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCMzIiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIDEsMjczIGZpbGVzLiIsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyAgQVBJIFRlc3RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB6ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9IGNyZWF0ZWQiKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB5ID0gbnVsbDsKKyAgICAgICAgeSA9IChNZXNzYWdlRm9ybWF0KXguY2xvbmUoKTsKKyAgICAgICAgaWYgKHguZXF1YWxzKHkpICYmCisgICAgICAgICAgICAheC5lcXVhbHMoeikgJiYKKyAgICAgICAgICAgICF5LmVxdWFscyh6KSApCisgICAgICAgICAgICBsb2dsbigiRmlyc3QgdGVzdCAob3BlcmF0b3IgPT0pOiBQYXNzZWQhIik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZpcnN0IHRlc3QgKG9wZXJhdG9yID09KTogRmFpbGVkISIpOworICAgICAgICB9CisgICAgICAgIGlmICgoeC5lcXVhbHMoeSkgJiYgeS5lcXVhbHMoeCkpICYmCisgICAgICAgICAgICAoIXguZXF1YWxzKHopICYmICF6LmVxdWFscyh4KSkgJiYKKyAgICAgICAgICAgICgheS5lcXVhbHMoeikgJiYgIXouZXF1YWxzKHkpKSApCisgICAgICAgICAgICBsb2dsbigiU2Vjb25kIHRlc3QgKGVxdWFscyk6IFBhc3NlZCEiKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiU2Vjb25kIHRlc3QgKGVxdWFscyk6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEVxdWFscygpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB5ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIGlmICgheC5lcXVhbHMoeSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGaXJzdCB0ZXN0IChvcGVyYXRvciA9PSk6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vdEVxdWFscygpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB5ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIHkuc2V0TG9jYWxlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICBpZiAoeC5lcXVhbHMoeSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGaXJzdCB0ZXN0IChvcGVyYXRvciAhPSk6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorICAgICAgICB5ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIHkuYXBwbHlQYXR0ZXJuKCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSB0aGUgZGlzayIpOworICAgICAgICBpZiAoeC5lcXVhbHMoeSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZWNvbmQgdGVzdCAob3BlcmF0b3IgIT0pOiBGYWlsZWQhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgVUxvY2FsZSBzYXZlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlLlVTKTsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB6ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgeSA9IG51bGw7CisgICAgICAgIHkgPSAoTWVzc2FnZUZvcm1hdCl4LmNsb25lKCk7CisgICAgICAgIGlmICh4Lmhhc2hDb2RlKCkgIT0geS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlkZW50aWNhbCBvYmplY3RzIGhhdmUgZGlmZmVyZW50IGhhc2hjb2RlcyIpOworICAgICAgICBpZiAoeC5oYXNoQ29kZSgpICE9IHouaGFzaENvZGUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpZGVudGljYWwgb2JqZWN0cyBoYXZlIGRpZmZlcmVudCBoYXNoY29kZXMiKTsKKworICAgIC8qIFRoZXNlIGFyZSBub3QgZXJyb3JzCisgICAgICAgIHkuc2V0TG9jYWxlKFVMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgaWYgKHguaGFzaENvZGUoKSA9PSB5Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZGlmZmVyZW50IG9iamVjdHMgaGF2ZSBzYW1lIGhhc2hjb2Rlcy4gTG9jYWxlIGlnbm9yZWQiKTsKKworICAgICAgICB6LmFwcGx5UGF0dGVybigiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0gdGhlIGRpc2siKTsKKyAgICAgICAgaWYgKHguaGFzaENvZGUoKSA9PSB6Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZGlmZmVyZW50IG9iamVjdHMgaGF2ZSBzYW1lIGhhc2hjb2Rlcy4gUGF0dGVybiBpZ25vcmVkIik7CisgICAgKi8KKworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoc2F2ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNldExvY2FsZSgpCisgICAgeworICAgICAgICBPYmplY3QgYXJndW1lbnRzW10gPSB7CisgICAgICAgICAgICBuZXcgRG91YmxlKDQ1Ni44MyksCisgICAgICAgICAgICBuZXcgRGF0ZSg4NzEwNjgwMDAwMDBMKSwKKyAgICAgICAgICAgICJkZXBvc2l0IgorICAgICAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vU3RyaW5nIGZvcm1hdFN0ciA9ICJBdCB7MSx0aW1lfSBvbiB7MSxkYXRlfSwgeW91IG1hZGUgYSB7Mn0gb2YgezAsbnVtYmVyLGN1cnJlbmN5fS4iOworICAgICAgICBTdHJpbmcgZm9ybWF0U3RyID0gIkF0IDx0aW1lPiBvbiB7MSxkYXRlfSwgeW91IG1hZGUgYSB7Mn0gb2YgezAsbnVtYmVyLGN1cnJlbmN5fS4iOworICAgICAgICAvLyB7c2ZifSB0byBnZXQgJCwgd291bGQgbmVlZCBMb2NhbGU6OlVTLCBub3QgTG9jYWxlOjpFTkdMSVNICisgICAgICAgIC8vIEp1c3QgdXNlIHVubG9jYWxpemVkIGN1cnJlbmN5IHN5bWJvbC4KKyAgICAgICAgLy9TdHJpbmcgY29tcGFyZVN0ckVuZyA9ICJBdCA8dGltZT4gb24gQXVnIDgsIDE5OTcsIHlvdSBtYWRlIGEgZGVwb3NpdCBvZiAkNDU2LjgzLiI7CisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyRW5nID0gIkF0IDx0aW1lPiBvbiBBdWcgOCwgMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mICI7CisgICAgICAgIGNvbXBhcmVTdHJFbmcgKz0gJ1x1MDBhNCc7CisgICAgICAgIGNvbXBhcmVTdHJFbmcgKz0gIjQ1Ni44My4iOworICAgICAgICAvLyB7c2ZifSB0byBnZXQgRE0sIHdvdWxkIG5lZWQgTG9jYWxlOjpHRVJNQU5ZLCBub3QgTG9jYWxlOjpHRVJNQU4KKyAgICAgICAgLy8gSnVzdCB1c2UgdW5sb2NhbGl6ZWQgY3VycmVuY3kgc3ltYm9sLgorICAgICAgICAvL1N0cmluZyBjb21wYXJlU3RyR2VyID0gIkF0IDx0aW1lPiBvbiAwOC4wOC4xOTk3LCB5b3UgbWFkZSBhIGRlcG9zaXQgb2YgNDU2LDgzIERNLiI7CisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyR2VyID0gIkF0IDx0aW1lPiBvbiAwOC4wOC4xOTk3LCB5b3UgbWFkZSBhIGRlcG9zaXQgb2YgIjsKKyAgICAgICAgY29tcGFyZVN0ckdlciArPSAnXHUwMGE0JzsKKyAgICAgICAgY29tcGFyZVN0ckdlciArPSAiIDQ1Niw4My4iOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIHJlc3VsdCA9IG1zZy5mb3JtYXQoCisgICAgICAgICAgICBhcmd1bWVudHMsCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBwb3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHJFbmcsIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICBtc2cuc2V0TG9jYWxlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRMb2NhbGUiLCBMb2NhbGUuRU5HTElTSCwgbXNnLmdldExvY2FsZSgpKTsKKworICAgICAgICBtc2cuc2V0TG9jYWxlKExvY2FsZS5HRVJNQU4pOworICAgICAgICBhc3NlcnRFcXVhbHMoImdldExvY2FsZSIsIExvY2FsZS5HRVJNQU4sIG1zZy5nZXRMb2NhbGUoKSk7CisKKyAgICAgICAgbXNnLmFwcGx5UGF0dGVybihmb3JtYXRTdHIpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICByZXN1bHQgPSBtc2cuZm9ybWF0KAorICAgICAgICAgICAgYXJndW1lbnRzLAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgcG9zKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBjb21wYXJlU3RyR2VyLCByZXN1bHQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgLy9Db3ZlciBnZXRVTG9jYWxlKCkKKyAgICAgICAgbG9nbG4oIlRlc3Rpbmcgc2V0L2dldCBVTG9jYWxlIC4uLiIpOworICAgICAgICBtc2cuc2V0TG9jYWxlKFVMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0VUxvY2FsZSIsIFVMb2NhbGUuRU5HTElTSCwgbXNnLmdldFVMb2NhbGUoKSk7CisKKyAgICAgICAgbXNnLnNldExvY2FsZShVTG9jYWxlLkdFUk1BTik7CisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0VUxvY2FsZSIsIFVMb2NhbGUuR0VSTUFOLCBtc2cuZ2V0VUxvY2FsZSgpKTsKKworICAgICAgICBtc2cuYXBwbHlQYXR0ZXJuKGZvcm1hdFN0cik7CisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIHJlc3VsdCA9IG1zZy5mb3JtYXQoCisgICAgICAgICAgICBhcmd1bWVudHMsCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBwb3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHJHZXIsIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Rm9ybWF0KCkKKyAgICB7CisgICAgICAgIGZpbmFsIE9iamVjdCBmdF9hcnJbXSA9CisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyBEYXRlKDg3MTA2ODAwMDAwMEwpCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvL1N0cmluZyBmb3JtYXRTdHIgPSAiQXQgezEsdGltZX0gb24gezEsZGF0ZX0sIHlvdSBtYWRlIGEgezJ9IG9mIHswLG51bWJlcixjdXJyZW5jeX0uIjsKKyAgICAgICAgU3RyaW5nIGZvcm1hdFN0ciA9ICJPbiB7MCxkYXRlfSwgaXQgYmVnYW4uIjsKKyAgICAgICAgU3RyaW5nIGNvbXBhcmVTdHIgPSAiT24gQXVnIDgsIDE5OTcsIGl0IGJlZ2FuLiI7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2cgPSBuZXcgTWVzc2FnZUZvcm1hdChmb3JtYXRTdHIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG1zZy5mb3JtYXQobmV3IERhdGUoODcxMDY4MDAwMDAwTCksCisgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgZnApOworICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgZm9ybWF0IHdpdGhvdXQgZXhwZWN0ZWQgZXJyb3IgY29kZS4iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUxKSB7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICByZXN1bHQgPSBtc2cuZm9ybWF0KAorICAgICAgICAgICAgZnRfYXJyLAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgZnApOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHIsIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFyc2UoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG1zZ0Zvcm1hdFN0cmluZyA9ICJ7MH0gPXNlcD0gezF9IjsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2cgPSBuZXcgTWVzc2FnZUZvcm1hdChtc2dGb3JtYXRTdHJpbmcpOworICAgICAgICBTdHJpbmcgc291cmNlID0gImFiYyA9c2VwPSBkZWYiOworICAgICAgICBTdHJpbmcgdG1wMSwgdG1wMjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0W10gZm10X2FyciA9IG1zZy5wYXJzZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKGZtdF9hcnIubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgY291bnQsIGVycikgY291bnQgZXJyLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZm10X2Fyci5sZW5ndGggIT0gMikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgcGFyc2Vwb3MuLCBjb3VudCkgY291bnQgZXJyLiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygicGFyc2UoKVswXSIsICJhYmMiLCBmbXRfYXJyWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwYXJzZSgpWzFdIiwgImRlZiIsIGZtdF9hcnJbMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIHBhcnNlICh1c3RyaW5nLCBjb3VudCwgZXJyKSBlcnJvci4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKworICAgICAgICBPYmplY3RbXSBmbXRfYXJyID0gbXNnLnBhcnNlKHNvdXJjZSwgcHApOworICAgICAgICBpZiAocHAuZ2V0SW5kZXgoKT09MCB8fCBmbXRfYXJyPT1udWxsKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgcGFyc2Vwb3MuLCBjb3VudCkgZXJyb3IuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZm10X2Fyci5sZW5ndGggIT0gMikgeworICAgICAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIHBhcnNlICh1c3RyaW5nLCBwYXJzZXBvcy4sIGNvdW50KSBjb3VudCBlcnIuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygicGFyc2UoKVswXSIsICJhYmMiLCBmbXRfYXJyWzBdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhcnNlKClbMV0iLCAiZGVmIiwgZm10X2FyclsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcC5zZXRJbmRleCgwKTsKKyAgICAgICAgT2JqZWN0W10gZm10YTsKKworICAgICAgICBmbXRhID0gKE9iamVjdFtdKSBtc2cucGFyc2VPYmplY3QoIHNvdXJjZSwgcHAgKTsKKyAgICAgICAgaWYgKHBwLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIE9iamVjdCwgcGFyc2Vwb3MgKSBlcnJvci4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChmbXRhLmxlbmd0aCAhPSAyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIGNvdW50LCBlcnIpIGNvdW50IGVyci4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGZtdF9hcnIubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIHBhcnNlcG9zLiwgY291bnQpIGNvdW50IGVyci4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhcnNlKClbMF0iLCAiYWJjIiwgZm10X2FyclswXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygicGFyc2UoKVsxXSIsICJkZWYiLCBmbXRfYXJyWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPZiBjb3Vyc2UsIGluIEphdmEgdGhlcmUgaXMgbm8gYWRvcHQsIGJ1dCB3ZSByZXRhaW4gdGhlIHNhbWUKKyAgICAgKiBtZXRob2QgbmFtZS4gW2FsYW5dCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFkb3B0KCkKKyAgICB7CisgICAgICAgIFN0cmluZyBmb3JtYXRTdHIgPSAiezAsZGF0ZX0sezF9LHsyLG51bWJlcn0iOworICAgICAgICBTdHJpbmcgZm9ybWF0U3RyQ2hhbmdlID0gInswLG51bWJlcn0sezEsbnVtYmVyfSx7MixkYXRlfSI7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2dDbXAgPSBuZXcgTWVzc2FnZUZvcm1hdChmb3JtYXRTdHIpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0gbXNnLmdldEZvcm1hdHMoKTsKKyAgICAgICAgRm9ybWF0W10gZm9ybWF0c0NtcCA9IG1zZ0NtcC5nZXRGb3JtYXRzKCk7CisgICAgICAgIEZvcm1hdFtdIGZvcm1hdHNDaGcgPSBudWxsOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzQWN0ID0gbnVsbDsKKyAgICAgICAgRm9ybWF0IGEgPSBudWxsOworICAgICAgICBGb3JtYXQgYiA9IG51bGw7CisgICAgICAgIFN0cmluZyBwYXRDbXA7CisgICAgICAgIFN0cmluZyBwYXRBY3Q7CisgICAgICAgIEZvcm1hdFtdIGZvcm1hdHNUb0Fkb3B0ID0gbnVsbDsKKworICAgICAgICBpZiAoZm9ybWF0cz09bnVsbCB8fCBmb3JtYXRzQ21wPT1udWxsIHx8IChmb3JtYXRzLmxlbmd0aCA8PSAwKSB8fCAoZm9ybWF0cy5sZW5ndGggIT0gZm9ybWF0c0NtcC5sZW5ndGgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBGb3JtYXRzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYSA9IGZvcm1hdHNbaV07CisgICAgICAgICAgICBiID0gZm9ybWF0c0NtcFtpXTsKKyAgICAgICAgICAgIGlmICgoYSAhPSBudWxsKSAmJiAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGlmICghYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImEgIT0gYiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCIoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1zZy5hcHBseVBhdHRlcm4oIGZvcm1hdFN0ckNoYW5nZSApOyAvL3NldCBtc2cgZm9ybWF0cyB0byBzb21ldGhpbmcgZGlmZmVyZW50CisgICAgICAgIGZvcm1hdHNDaGcgPSBtc2cuZ2V0Rm9ybWF0cygpOyAvLyB0ZXN0ZWQgZnVuY3Rpb24KKyAgICAgICAgaWYgKGZvcm1hdHNDaGc9PW51bGwgfHwgKGZvcm1hdHNDaGcubGVuZ3RoICE9IGZvcm1hdHMubGVuZ3RoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgRm9ybWF0cyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBkaWZmOworICAgICAgICBkaWZmID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGEgPSBmb3JtYXRzQ2hnW2ldOworICAgICAgICAgICAgYiA9IGZvcm1hdHNDbXBbaV07CisgICAgICAgICAgICBpZiAoKGEgIT0gbnVsbCkgJiYgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oImZvcm1hdHNDaGcgPT0gZm9ybWF0c0NtcCBhdCBpbmRleCAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFkaWZmKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBnZXRGb3JtYXRzIGRpZmYgZXJyLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIk1TRyBnZXRGb3JtYXRzIHRlc3RlZC4iKTsKKworICAgICAgICBtc2cuc2V0Rm9ybWF0cyggZm9ybWF0c0NtcCApOyAvL3Rlc3RlZCBmdW5jdGlvbgorCisgICAgICAgIGZvcm1hdHNBY3QgPSBtc2cuZ2V0Rm9ybWF0cygpOworICAgICAgICBpZiAoZm9ybWF0c0FjdD09bnVsbCB8fCAoZm9ybWF0c0FjdC5sZW5ndGggPD0wKSB8fCAoZm9ybWF0c0FjdC5sZW5ndGggIT0gZm9ybWF0c0NtcC5sZW5ndGgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBGb3JtYXRzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhc3NlcnRFcXVhbHMoIm1zZ0NtcC50b1BhdHRlcm4oKSIsIGZvcm1hdFN0ciwgbXNnQ21wLnRvUGF0dGVybigpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2cudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZy50b1BhdHRlcm4oKSk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdHNBY3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGEgPSBmb3JtYXRzQWN0W2ldOworICAgICAgICAgICAgYiA9IGZvcm1hdHNDbXBbaV07CisgICAgICAgICAgICBpZiAoKGEgIT0gbnVsbCkgJiYgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3JtYXRzQWN0ICE9IGZvcm1hdHNDbXAgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCIoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiTVNHIHNldEZvcm1hdHMgdGVzdGVkLiIpOworCisgICAgICAgIC8vLS0tLQorCisgICAgICAgIG1zZy5hcHBseVBhdHRlcm4oIGZvcm1hdFN0ckNoYW5nZSApOyAvL3NldCBtc2cgZm9ybWF0cyB0byBzb21ldGhpbmcgZGlmZmVyZW50CisKKyAgICAgICAgZm9ybWF0c1RvQWRvcHQgPSBuZXcgRm9ybWF0W2Zvcm1hdHNDbXAubGVuZ3RoXTsKKyAgICAgICAgaWYgKGZvcm1hdHNUb0Fkb3B0PT1udWxsKSB7CisgICAgICAgICAgICBlcnJsbigibWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmb3JtYXRzQ21wLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoZm9ybWF0c0NtcFtpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1RvQWRvcHRbaV0gPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzVG9BZG9wdFtpXSA9IChGb3JtYXQpIGZvcm1hdHNDbXBbaV0uY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0c1RvQWRvcHRbaV09PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNhbid0IGNsb25lIGZvcm1hdCBhdCBpbmRleCAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbXNnLnNldEZvcm1hdHMoIGZvcm1hdHNUb0Fkb3B0ICk7IC8vIGZ1bmN0aW9uIHRvIHRlc3QKKworICAgICAgICBhc3NlcnRFcXVhbHMoIm1zZ0NtcC50b1BhdHRlcm4oKSIsIGZvcm1hdFN0ciwgbXNnQ21wLnRvUGF0dGVybigpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2cudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZy50b1BhdHRlcm4oKSk7CisKKyAgICAgICAgZm9ybWF0c0FjdCA9IG1zZy5nZXRGb3JtYXRzKCk7CisgICAgICAgIGlmIChmb3JtYXRzQWN0PT1udWxsIHx8IChmb3JtYXRzQWN0Lmxlbmd0aCA8PTApIHx8IChmb3JtYXRzQWN0Lmxlbmd0aCAhPSBmb3JtYXRzQ21wLmxlbmd0aCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIEZvcm1hdHMiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmb3JtYXRzQWN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhID0gZm9ybWF0c0FjdFtpXTsKKyAgICAgICAgICAgIGIgPSBmb3JtYXRzQ21wW2ldOworICAgICAgICAgICAgaWYgKChhICE9IG51bGwpICYmIChiICE9IG51bGwpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhLmVxdWFscyhiKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiYSAhPSBiIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKChhICE9IG51bGwpIHx8IChiICE9IG51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIihhICE9IG51bGwpIHx8IChiICE9IG51bGwpIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJNU0cgYWRvcHRGb3JtYXRzIHRlc3RlZC4iKTsKKworICAgICAgICAvLy0tLS0gYWRvcHRGb3JtYXQKKworICAgICAgICBtc2cuYXBwbHlQYXR0ZXJuKCBmb3JtYXRTdHJDaGFuZ2UgKTsgLy9zZXQgbXNnIGZvcm1hdHMgdG8gc29tZXRoaW5nIGRpZmZlcmVudAorCisgICAgICAgIGZvcm1hdHNUb0Fkb3B0ID0gbmV3IEZvcm1hdFtmb3JtYXRzQ21wLmxlbmd0aF07CisgICAgICAgIGlmIChmb3JtYXRzVG9BZG9wdD09bnVsbCkgeworICAgICAgICAgICAgZXJybG4oIm1lbW9yeSBhbGxvY2F0aW9uIGVycm9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0c0NtcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGZvcm1hdHNDbXBbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZvcm1hdHNUb0Fkb3B0W2ldID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1RvQWRvcHRbaV0gPSAoRm9ybWF0KSBmb3JtYXRzQ21wW2ldLmNsb25lKCk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHNUb0Fkb3B0W2ldPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDYW4ndCBjbG9uZSBmb3JtYXQgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBmb3JtYXRzQ21wLmxlbmd0aDsgaSsrICkgeworICAgICAgICAgICAgbXNnLnNldEZvcm1hdCggaSwgZm9ybWF0c1RvQWRvcHRbaV0gKTsgLy8gZnVuY3Rpb24gdG8gdGVzdAorICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2dDbXAudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZ0NtcC50b1BhdHRlcm4oKSk7CisgICAgICAgIGFzc2VydEVxdWFscygibXNnLnRvUGF0dGVybigpIiwgZm9ybWF0U3RyLCBtc2cudG9QYXR0ZXJuKCkpOworCisgICAgICAgIGZvcm1hdHNBY3QgPSBtc2cuZ2V0Rm9ybWF0cygpOworICAgICAgICBpZiAoZm9ybWF0c0FjdD09bnVsbCB8fCAoZm9ybWF0c0FjdC5sZW5ndGggPD0wKSB8fCAoZm9ybWF0c0FjdC5sZW5ndGggIT0gZm9ybWF0c0NtcC5sZW5ndGgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBGb3JtYXRzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0c0FjdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYSA9IGZvcm1hdHNBY3RbaV07CisgICAgICAgICAgICBiID0gZm9ybWF0c0NtcFtpXTsKKyAgICAgICAgICAgIGlmICgoYSAhPSBudWxsKSAmJiAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGlmICghYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImEgIT0gYiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCIoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiTVNHIGFkb3B0Rm9ybWF0IHRlc3RlZC4iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhhdCBNZXNzYWdlRm9ybWF0IGFjY29tb2RhdGVzIG1vcmUgdGhhbiAxMCBhcmd1bWVudHMgYW5kCisgICAgICogbW9yZSB0aGFuIDEwIHN1YmZvcm1hdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFVubGltaXRlZEFyZ3NBbmRTdWJmb3JtYXRzKCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9CisgICAgICAgICAgICAiT24gezAsZGF0ZX0gKGFrYSB7MCxkYXRlLHNob3J0fSwgYWthIHswLGRhdGUsbG9uZ30pICIrCisgICAgICAgICAgICAiYXQgezAsdGltZX0gKGFrYSB7MCx0aW1lLHNob3J0fSwgYWthIHswLHRpbWUsbG9uZ30pICIrCisgICAgICAgICAgICAidGhlcmUgd2VyZSB7MSxudW1iZXJ9IHdlcmplcyAiKworICAgICAgICAgICAgIihhIHszLG51bWJlcixwZXJjZW50fSBpbmNyZWFzZSBvdmVyIHsyLG51bWJlcn0pICIrCisgICAgICAgICAgICAiZGVzcGl0ZSB0aGUgezR9JydzIGVmZm9ydHMgIisKKyAgICAgICAgICAgICJhbmQgdG8gZGVsaWdodCBvZiB7NX0sIHs2fSwgezd9LCB7OH0sIHs5fSwgYW5kIHsxMH0gezExfS4iOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2cgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKworICAgICAgICAgICAgZmluYWwgT2JqZWN0IEFSR1NbXSA9IHsKKyAgICAgICAgICAgICAgICBuZXcgRGF0ZSgxMDAwMDAwMDAwMDAwMEwpLAorICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEzMDMpLAorICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEyMDIpLAorICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTMwMy4wLzEyMDIgLSAxKSwKKyAgICAgICAgICAgICAgICAiR2xpbW11bmciLAorICAgICAgICAgICAgICAgICJ0aGUgcHJpbnRlcnMiLAorICAgICAgICAgICAgICAgICJOaWNrIiwKKyAgICAgICAgICAgICAgICAiaGlzIGZhdGhlciIsCisgICAgICAgICAgICAgICAgImhpcyBtb3RoZXIiLAorICAgICAgICAgICAgICAgICJ0aGUgc3BpZGRsZXMiLAorICAgICAgICAgICAgICAgICJvZiBjb3Vyc2UiLAorICAgICAgICAgICAgICAgICJIb3JhY2UiCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPQorICAgICAgICAgICAgICAgICJPbiBOb3YgMjAsIDIyODYgKGFrYSAxMS8yMC84NiwgYWthIE5vdmVtYmVyIDIwLCAyMjg2KSAiKworICAgICAgICAgICAgICAgICJhdCA5OjQ2OjQwIEFNIChha2EgOTo0NiBBTSwgYWthIDk6NDY6NDAgQU0gUFNUKSAiKworICAgICAgICAgICAgICAgICJ0aGVyZSB3ZXJlIDEsMzAzIHdlcmplcyAiKworICAgICAgICAgICAgICAgICIoYSA4JSBpbmNyZWFzZSBvdmVyIDEsMjAyKSAiKworICAgICAgICAgICAgICAgICJkZXNwaXRlIHRoZSBHbGltbXVuZydzIGVmZm9ydHMgIisKKyAgICAgICAgICAgICAgICAiYW5kIHRvIGRlbGlnaHQgb2YgdGhlIHByaW50ZXJzLCBOaWNrLCBoaXMgZmF0aGVyLCAiKworICAgICAgICAgICAgICAgICJoaXMgbW90aGVyLCB0aGUgc3BpZGRsZXMsIGFuZCBvZiBjb3Vyc2UgSG9yYWNlLiI7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBleHBlY3RlZCwgbXNnLmZvcm1hdChBUkdTKSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdG9yIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gdGVzdCBSQk5GIGV4dGVuc2lvbnMgdG8gbWVzc2FnZSBmb3JtYXQKKyAgICBwdWJsaWMgdm9pZCBUZXN0UkJORigpIHsKKyAgICAgICAgLy8gV0FSTklORzogdGhpcyBkZXBlbmRzIG9uIHRoZSBSQk5GIGZvcm1hdHMgZm9yIGVuX1VTCisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGUuVVM7CisgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9IHsKKyAgICAgICAgICAgIC8vIGRlY2ltYWwgdmFsdWVzIGRvIG5vdCBmb3JtYXQgY29tcGxldGVseSBmb3Igb3JkaW5hbCBvciBkdXJhdGlvbiwgYW5kCisgICAgICAgICAgICAvLyBkbyBub3QgYWx3YXlzIHBhcnNlLCBzbyBkbyBub3QgaW5jbHVkZSB0aGVtCisgICAgICAgICAgICAiMCIsICIxIiwgIjEyIiwgIjEwMCIsICIxMjMiLCAiMTAwMSIsICIxMjMsNDU2IiwgIi0xNyIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIGZvcm1hdHMgPSB7CisgICAgICAgICAgICAiVGhlcmUgYXJlIHswLHNwZWxsb3V0fSBmaWxlcyB0byBzZWFyY2guIiwKKyAgICAgICAgICAgICJUaGVyZSBhcmUgezAsc3BlbGxvdXQsJXNpbXBsaWZpZWR9IGZpbGVzIHRvIHNlYXJjaC4iLAorICAgICAgICAgICAgIlRoZSBib2d1cyBzcGVsbG91dCB7MCxzcGVsbG91dCwlQk9HVVN9IGZpbGVzIGJlaGF2ZXMgbGlrZSB0aGUgZGVmYXVsdC4iLAorICAgICAgICAgICAgIlRoaXMgaXMgdGhlIHswLG9yZGluYWx9IGZpbGUgdG8gc2VhcmNoLiIsIC8vIFRPRE8gZml4IGJ1Zywgb3JkaW5hbCBkb2VzIG5vdCBwYXJzZQorICAgICAgICAgICAgIlNlYXJjaGluZyB0aGlzIGZpbGUgd2lsbCB0YWtlIHswLGR1cmF0aW9ufSB0byBjb21wbGV0ZS4iLAorICAgICAgICAgICAgIlNlYXJjaGluZyB0aGlzIGZpbGUgd2lsbCB0YWtlIHswLGR1cmF0aW9uLCV3aXRoLXdvcmRzfSB0byBjb21wbGV0ZS4iLAorICAgICAgICB9OworICAgICAgICBmaW5hbCBOdW1iZXJGb3JtYXQgbnVtRm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIE9iamVjdFtdIGFyZ3MgPSBuZXcgT2JqZWN0WzFdOworICAgICAgICBOdW1iZXIgbnVtID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KGZvcm1hdHNbaV0sIGxvY2FsZSk7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBmb3JtYXQgcGF0dGVybjogJyIgKyBmb3JtYXRzW2ldICsgIiciKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbnVtID0gbnVtRm10LnBhcnNlKHZhbHVlc1tqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJmYWlsZWQgdG8gcGFyc2UgdGVzdCBhcmd1bWVudCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcmdzWzBdID0gbnVtOworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmbXQuZm9ybWF0KGFyZ3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ2YWx1ZTogIiArIG51bSArICIgLS0+ICIgKyByZXN1bHQpOworCisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMykgeyAvLyBUT0RPOiBmaXggdGhpcywgZm9yIG5vdyBza2lwIG9yZGluYWwgcGFyc2luZyAoZm9ybWF0IHN0cmluZyBhdCBpbmRleCAzKQorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gcGFyc2VkQXJncyA9IGZtdC5wYXJzZShyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlZEFyZ3MubGVuZ3RoICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyc2UgcmV0dXJuZWQgIiArIHBhcnNlZEFyZ3MubGVuZ3RoICsgIiBhcmdzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFwYXJzZWRBcmdzWzBdLmVxdWFscyhudW0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInBhcnNlZCBhcmd1bWVudCAiICsgcGFyc2VkQXJnc1swXSArICIgIT0gIiArIG51bSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyc2Ugb2YgJyIgKyByZXN1bHQgKyAiIHJldHVybmVkIGV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRHZXRGb3JtYXRzKCkKKyAgICB7CisgICAgICAgIE9iamVjdCBhcmd1bWVudHNbXSA9IHsKKyAgICAgICAgICAgIG5ldyBEb3VibGUoNDU2LjgzKSwKKyAgICAgICAgICAgIG5ldyBEYXRlKDg3MTA2ODAwMDAwMEwpLAorICAgICAgICAgICAgImRlcG9zaXQiCisgICAgICAgICAgICB9OworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgU3RyaW5nIGZvcm1hdFN0ciA9ICJBdCA8dGltZT4gb24gezEsZGF0ZX0sIHlvdSBtYWRlIGEgezJ9IG9mIHswLG51bWJlcixjdXJyZW5jeX0uIjsKKyAgICAgICAgLy8gb3JpZ2luYWwgZXhwZWN0ZWQgZm9ybWF0IHJlc3VsdAorICAgICAgICBTdHJpbmcgY29tcGFyZVN0ciA9ICJBdCA8dGltZT4gb24gQXVnIDgsIDE5OTcsIHlvdSBtYWRlIGEgZGVwb3NpdCBvZiAkNDU2LjgzLiI7CisgICAgICAgIC8vIHRoZSBkYXRlIGJlaW5nIEdlcm1hbi1zdHlsZSwgYnV0IHRoZSBjdXJyZW5jeSBiZWluZyBFbmdsaXNoLXN0eWxlCisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyMiA9ICJBdCA8dGltZT4gb24gMDguMDguMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mICI7CisgICAgICAgIGNvbXBhcmVTdHIyICs9ICdcdTAwYTQnOworICAgICAgICBjb21wYXJlU3RyMiArPSAiNDU2LjgzLiI7CisgICAgICAgIC8vIGJvdGggZGF0ZSBhbmQgY3VycmVuY3kgZm9ybWF0cyBhcmUgR2VybWFuLXN0eWxlCisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyMyA9ICJBdCA8dGltZT4gb24gMDguMDguMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mICI7CisgICAgICAgIGNvbXBhcmVTdHIzICs9ICdcdTAwYTQnOworICAgICAgICBjb21wYXJlU3RyMyArPSAiIDQ1Niw4My4iOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGFyZ3VtZW50cywKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgY29tcGFyZVN0ciwgcmVzdWx0LnRvU3RyaW5nKCkpOworCisgICAgICAgIC8vIGNvbnN0cnVjdHMgYSBGb3JtYXQgYXJyYXkgd2l0aCBhIEVuZ2xpc2gtc3R5bGUgQ3VycmVuY3kgZm9ybWF0dGVyCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBhIEdlcm1hbi1zdHlsZSBEYXRlIGZvcm1hdHRlcgorICAgICAgICAvLyAgICAgIG1pZ2h0IG5vdCBtZWFuaW5nZnVsLCBqdXN0IGZvciB0ZXN0aW5nIHNldEZvcm1hdHNCeUFyZ0luZGV4CisgICAgICAgIEZvcm1hdFtdIGZtdHMgPSBuZXcgRm9ybWF0W10geworICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoVUxvY2FsZS5FTkdMSVNIKSwKKyAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgVUxvY2FsZS5HRVJNQU4pCisgICAgICAgICAgICB9OworCisgICAgICAgIG1zZy5zZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KGZtdHMpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGFyZ3VtZW50cywKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgY29tcGFyZVN0cjIsIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBHZXJtYW4tc3R5bGUgQ3VycmVuY3kgZm9ybWF0dGVyLCByZXBsYWNlIHRoZSBjb3JyZXNwb25kaW5nIG9uZQorICAgICAgICAvLyBUaHVzIGJvdGggZm9ybWF0dGVycyBzaG91bGQgZm9ybWF0IG9iamVjdHMgd2l0aCBHZXJtYW4tc3R5bGUKKyAgICAgICAgRm9ybWF0IG5ld0ZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFVMb2NhbGUuR0VSTUFOKTsKKyAgICAgICAgbXNnLnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgwLCBuZXdGbXQpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGFyZ3VtZW50cywKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgY29tcGFyZVN0cjMsIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICAvLyB2ZXJpZnkgZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleAorICAgICAgICAvLyAgIHlvdSBzaG91bGQgZ290IHRocmVlIGZvcm1hdHMgYnkgdGhhdAorICAgICAgICAvLyAgICAgICAgICAtIERlY2ltYWxGb3JtYXQgICAgIGxvY2FsZTogZGUKKyAgICAgICAgLy8gICAgICAgICAgLSBTaW1wbGVEYXRlRm9ybWF0ICBsb2NhbGU6IGRlCisgICAgICAgIC8vICAgICAgICAgIC0gbnVsbAorICAgICAgICBGb3JtYXRbXSBmbXRzMiA9IG1zZy5nZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMXN0IHN1YmZvcm1tYXRlcjogRm9ybWF0IENsYXNzIiwgImNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdCIsIGZtdHMyWzBdLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxc3Qgc3ViZm9ybW1hdGVyOiBpdHMgTG9jYWxlIiwgVUxvY2FsZS5HRVJNQU4sICgoVUZvcm1hdClmbXRzMlswXSkuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMm5kIHN1YmZvcm1hdHRlcjogRm9ybWF0IENsYXNzIiwgImNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdCIsIGZtdHMyWzFdLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIybmQgc3ViZm9ybW1hdGVyOiBpdHMgTG9jYWxlIiwgVUxvY2FsZS5HRVJNQU4sICgoVUZvcm1hdClmbXRzMlsxXSkuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKSk7CisgICAgICAgIGFzc2VydFRydWUoIlRoZSB0aGlyZCBzdWJGb3JtYXR0ZXIgaXMgbnVsbCIsIG51bGwgPT0gZm10czJbMl0pOworICAgIH0KKworICAgIC8vIFRlc3QgdGhlIGZpeCBwYXR0ZXJuIGFwaQorICAgIHB1YmxpYyB2b2lkIFRlc3RBdXRvUXVvdGVBcG9zdHJvcGhlKCkgeworICAgICAgICBmaW5hbCBTdHJpbmdbXSBwYXR0ZXJucyA9IHsgLy8gbmV3IHBhdHRlcm4sIGV4cGVjdGVkIHBhdHRlcm4KKyAgICAgICAgICAgICInIiwgIicnIiwKKyAgICAgICAgICAgICInJyIsICInJyIsCisgICAgICAgICAgICAiJ3siLCAiJ3snIiwKKyAgICAgICAgICAgICInIHsiLCAiJycgeyIsCisgICAgICAgICAgICAiJ2EiLCAiJydhIiwKKyAgICAgICAgICAgICIneydhIiwgIid7J2EiLAorICAgICAgICAgICAgIid7YSciLCAiJ3thJyIsCisgICAgICAgICAgICAiJ3t9IiwgIid7fSciLAorICAgICAgICAgICAgInsnIiwgInsnIiwKKyAgICAgICAgICAgICJ7J2EiLCAieydhIiwKKyAgICAgICAgICAgICJ7J2F7fSdhfSdhIiwgInsnYXt9J2F9JydhIiwKKwkgICAgIid9JyIsICInfSciLAorCSAgICAiJ30gJ3snfSciLCAiJ30gJ3snfScnIiwKKwkgICAgIid9IHt7eycnIiwgIid9IHt7eycnJyIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVybnMubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiWyIgKyAoaS8yKSArICJdIFwiIiArIHBhdHRlcm5zW2ldICsgIlwiIiwgcGF0dGVybnNbaSsxXSwgTWVzc2FnZUZvcm1hdC5hdXRvUXVvdGVBcG9zdHJvcGhlKHBhdHRlcm5zW2ldKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1RpbWVab25lQWxpYXNlcy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1RpbWVab25lQWxpYXNlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDlmZmVhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvVGltZVpvbmVBbGlhc2VzLnR4dApAQCAtMCwwICsxLDE2NSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBbWVyaWNhL0F0a2EgOyBBbWVyaWNhL0FkYWsKK0FtZXJpY2EvRW5zZW5hZGEgOyBBbWVyaWNhL1RpanVhbmEKK0FtZXJpY2EvRm9ydF9XYXluZSA7IEFtZXJpY2EvSW5kaWFuYXBvbGlzCitBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK0FtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZSA7IEFtZXJpY2EvTG91aXN2aWxsZQorQW1lcmljYS9Lbm94X0lOIDsgQW1lcmljYS9JbmRpYW5hL0tub3gKK0FtZXJpY2EvUG9ydG9fQWNyZSA7IEFtZXJpY2EvUmlvX0JyYW5jbworQW1lcmljYS9Sb3NhcmlvIDsgQW1lcmljYS9Db3Jkb2JhCitBbWVyaWNhL1NoaXByb2NrIDsgQW1lcmljYS9EZW52ZXIKK0FtZXJpY2EvVmlyZ2luIDsgQW1lcmljYS9TdF9UaG9tYXMKK0FudGFyY3RpY2EvU291dGhfUG9sZSA7IEFudGFyY3RpY2EvTWNNdXJkbworQXJjdGljL0xvbmd5ZWFyYnllbiA7IEV1cm9wZS9Pc2xvCitBc2lhL0FzaGtoYWJhZCA7IEFzaWEvQXNoZ2FiYXQKK0FzaWEvQ2h1bmdraW5nIDsgQXNpYS9DaG9uZ3FpbmcKK0FzaWEvRGFjY2EgOyBBc2lhL0RoYWthCitBc2lhL0lzdGFuYnVsIDsgRXVyb3BlL0lzdGFuYnVsCitBc2lhL01hY2FvIDsgQXNpYS9NYWNhdQorQXNpYS9UZWxfQXZpdiA7IEFzaWEvSmVydXNhbGVtCitBc2lhL1RoaW1idSA7IEFzaWEvVGhpbXBodQorQXNpYS9VanVuZ19QYW5kYW5nIDsgQXNpYS9NYWthc3NhcgorQXNpYS9VbGFuX0JhdG9yIDsgQXNpYS9VbGFhbmJhYXRhcgorI0F0bGFudGljL0phbl9NYXllbiA7IEV1cm9wZS9Pc2xvCitBdXN0cmFsaWEvQUNUIDsgQXVzdHJhbGlhL1N5ZG5leQorQXVzdHJhbGlhL0NhbmJlcnJhIDsgQXVzdHJhbGlhL1N5ZG5leQorQXVzdHJhbGlhL0xISSA7IEF1c3RyYWxpYS9Mb3JkX0hvd2UKK0F1c3RyYWxpYS9OU1cgOyBBdXN0cmFsaWEvU3lkbmV5CitBdXN0cmFsaWEvTm9ydGggOyBBdXN0cmFsaWEvRGFyd2luCitBdXN0cmFsaWEvUXVlZW5zbGFuZCA7IEF1c3RyYWxpYS9CcmlzYmFuZQorQXVzdHJhbGlhL1NvdXRoIDsgQXVzdHJhbGlhL0FkZWxhaWRlCitBdXN0cmFsaWEvVGFzbWFuaWEgOyBBdXN0cmFsaWEvSG9iYXJ0CitBdXN0cmFsaWEvVmljdG9yaWEgOyBBdXN0cmFsaWEvTWVsYm91cm5lCitBdXN0cmFsaWEvV2VzdCA7IEF1c3RyYWxpYS9QZXJ0aAorQXVzdHJhbGlhL1lhbmNvd2lubmEgOyBBdXN0cmFsaWEvQnJva2VuX0hpbGwKK0JyYXppbC9BY3JlIDsgQW1lcmljYS9Qb3J0b19BY3JlCitCcmF6aWwvRGVOb3JvbmhhIDsgQW1lcmljYS9Ob3JvbmhhCitCcmF6aWwvRWFzdCA7IEFtZXJpY2EvU2FvX1BhdWxvCitCcmF6aWwvV2VzdCA7IEFtZXJpY2EvTWFuYXVzCitDU1Q2Q0RUIDsgQW1lcmljYS9DaGljYWdvCitDYW5hZGEvQXRsYW50aWMgOyBBbWVyaWNhL0hhbGlmYXgKK0NhbmFkYS9DZW50cmFsIDsgQW1lcmljYS9XaW5uaXBlZworQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIDsgQW1lcmljYS9SZWdpbmEKK0NhbmFkYS9FYXN0ZXJuIDsgQW1lcmljYS9Ub3JvbnRvCitDYW5hZGEvTW91bnRhaW4gOyBBbWVyaWNhL0VkbW9udG9uCitDYW5hZGEvTmV3Zm91bmRsYW5kIDsgQW1lcmljYS9TdF9Kb2hucworQ2FuYWRhL1BhY2lmaWMgOyBBbWVyaWNhL1ZhbmNvdXZlcgorQ2FuYWRhL1Nhc2thdGNoZXdhbiA7IEFtZXJpY2EvUmVnaW5hCitDYW5hZGEvWXVrb24gOyBBbWVyaWNhL1doaXRlaG9yc2UKK0NoaWxlL0NvbnRpbmVudGFsIDsgQW1lcmljYS9TYW50aWFnbworQ2hpbGUvRWFzdGVySXNsYW5kIDsgUGFjaWZpYy9FYXN0ZXIKK0N1YmEgOyBBbWVyaWNhL0hhdmFuYQorRVNUIDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK0VTVDVFRFQgOyBBbWVyaWNhL05ld19Zb3JrCitFZ3lwdCA7IEFmcmljYS9DYWlybworRWlyZSA7IEV1cm9wZS9EdWJsaW4KK0V0Yy9HTVQrMCA7IEV0Yy9HTVQKK0V0Yy9HTVQtMCA7IEV0Yy9HTVQKK0V0Yy9HTVQwIDsgRXRjL0dNVAorRXRjL0dyZWVud2ljaCA7IEV0Yy9HTVQKK0V0Yy9Vbml2ZXJzYWwgOyBFdGMvVVRDCitFdGMvWnVsdSA7IEV0Yy9VVEMKKyNFdXJvcGUvQnJhdGlzbGF2YSA7IEV1cm9wZS9QcmFndWUKKyNFdXJvcGUvTGp1YmxqYW5hIDsgRXVyb3BlL0JlbGdyYWRlCitFdXJvcGUvTmljb3NpYSA7IEFzaWEvTmljb3NpYQorI0V1cm9wZS9TYW5fTWFyaW5vIDsgRXVyb3BlL1JvbWUKKyNFdXJvcGUvU2FyYWpldm8gOyBFdXJvcGUvQmVsZ3JhZGUKKyNFdXJvcGUvU2tvcGplIDsgRXVyb3BlL0JlbGdyYWRlCitFdXJvcGUvVGlyYXNwb2wgOyBFdXJvcGUvQ2hpc2luYXUKKyNFdXJvcGUvVmF0aWNhbiA7IEV1cm9wZS9Sb21lCisjRXVyb3BlL1phZ3JlYiA7IEV1cm9wZS9CZWxncmFkZQorR0IgOyBFdXJvcGUvTG9uZG9uCitHQi1FaXJlIDsgRXVyb3BlL0xvbmRvbgorR01UIDsgRXRjL0dNVAorR01UKzAgOyBFdGMvR01UKzAKK0dNVC0wIDsgRXRjL0dNVC0wCitHTVQwIDsgRXRjL0dNVDAKK0dyZWVud2ljaCA7IEV0Yy9HcmVlbndpY2gKK0hTVCA7IFBhY2lmaWMvSG9ub2x1bHUKK0hvbmdrb25nIDsgQXNpYS9Ib25nX0tvbmcKK0ljZWxhbmQgOyBBdGxhbnRpYy9SZXlramF2aWsKK0lyYW4gOyBBc2lhL1RlaHJhbgorSXNyYWVsIDsgQXNpYS9KZXJ1c2FsZW0KK0phbWFpY2EgOyBBbWVyaWNhL0phbWFpY2EKK0phcGFuIDsgQXNpYS9Ub2t5bworS3dhamFsZWluIDsgUGFjaWZpYy9Ld2FqYWxlaW4KK0xpYnlhIDsgQWZyaWNhL1RyaXBvbGkKK01TVCA7IEFtZXJpY2EvUGhvZW5peAorTVNUN01EVCA7IEFtZXJpY2EvRGVudmVyCitNZXhpY28vQmFqYU5vcnRlIDsgQW1lcmljYS9UaWp1YW5hCitNZXhpY28vQmFqYVN1ciA7IEFtZXJpY2EvTWF6YXRsYW4KK01leGljby9HZW5lcmFsIDsgQW1lcmljYS9NZXhpY29fQ2l0eQorTWlkZWFzdC9SaXlhZGg4NyA7IEFzaWEvUml5YWRoODcKK01pZGVhc3QvUml5YWRoODggOyBBc2lhL1JpeWFkaDg4CitNaWRlYXN0L1JpeWFkaDg5IDsgQXNpYS9SaXlhZGg4OQorTlogOyBQYWNpZmljL0F1Y2tsYW5kCitOWi1DSEFUIDsgUGFjaWZpYy9DaGF0aGFtCitOYXZham8gOyBBbWVyaWNhL0RlbnZlcgorUFJDIDsgQXNpYS9TaGFuZ2hhaQorUFNUOFBEVCA7IEFtZXJpY2EvTG9zX0FuZ2VsZXMKK1BhY2lmaWMvU2Ftb2EgOyBQYWNpZmljL1BhZ29fUGFnbworUG9sYW5kIDsgRXVyb3BlL1dhcnNhdworUG9ydHVnYWwgOyBFdXJvcGUvTGlzYm9uCitST0MgOyBBc2lhL1RhaXBlaQorUk9LIDsgQXNpYS9TZW91bAorU2luZ2Fwb3JlIDsgQXNpYS9TaW5nYXBvcmUKK1N5c3RlbVYvQVNUNCA7IEFtZXJpY2EvUHVlcnRvX1JpY28KK1N5c3RlbVYvQVNUNEFEVCA7IEFtZXJpY2EvSGFsaWZheAorU3lzdGVtVi9DU1Q2IDsgQW1lcmljYS9SZWdpbmEKK1N5c3RlbVYvQ1NUNkNEVCA7IEFtZXJpY2EvQ2hpY2FnbworU3lzdGVtVi9FU1Q1IDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK1N5c3RlbVYvRVNUNUVEVCA7IEFtZXJpY2EvTmV3X1lvcmsKK1N5c3RlbVYvSFNUMTAgOyBQYWNpZmljL0hvbm9sdWx1CitTeXN0ZW1WL01TVDcgOyBBbWVyaWNhL1Bob2VuaXgKK1N5c3RlbVYvTVNUN01EVCA7IEFtZXJpY2EvRGVudmVyCitTeXN0ZW1WL1BTVDggOyBQYWNpZmljL1BpdGNhaXJuCitTeXN0ZW1WL1BTVDhQRFQgOyBBbWVyaWNhL0xvc19BbmdlbGVzCitTeXN0ZW1WL1lTVDkgOyBQYWNpZmljL0dhbWJpZXIKK1N5c3RlbVYvWVNUOVlEVCA7IEFtZXJpY2EvQW5jaG9yYWdlCitUdXJrZXkgOyBFdXJvcGUvSXN0YW5idWwKK1VDVCA7IEV0Yy9VQ1QKK1VTL0FsYXNrYSA7IEFtZXJpY2EvQW5jaG9yYWdlCitVUy9BbGV1dGlhbiA7IEFtZXJpY2EvQWRhaworVVMvQXJpem9uYSA7IEFtZXJpY2EvUGhvZW5peAorVVMvQ2VudHJhbCA7IEFtZXJpY2EvQ2hpY2FnbworVVMvRWFzdC1JbmRpYW5hIDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK1VTL0Vhc3Rlcm4gOyBBbWVyaWNhL05ld19Zb3JrCitVUy9IYXdhaWkgOyBQYWNpZmljL0hvbm9sdWx1CitVUy9JbmRpYW5hLVN0YXJrZSA7IEFtZXJpY2EvSW5kaWFuYS9Lbm94CitVUy9NaWNoaWdhbiA7IEFtZXJpY2EvRGV0cm9pdAorVVMvTW91bnRhaW4gOyBBbWVyaWNhL0RlbnZlcgorVVMvUGFjaWZpYyA7IEFtZXJpY2EvTG9zX0FuZ2VsZXMKK1VTL1BhY2lmaWMtTmV3IDsgQW1lcmljYS9Mb3NfQW5nZWxlcworVVMvU2Ftb2EgOyBQYWNpZmljL1BhZ29fUGFnbworVVRDIDsgRXRjL1VUQworVW5pdmVyc2FsIDsgRXRjL1VuaXZlcnNhbAorVy1TVSA7IEV1cm9wZS9Nb3Njb3cKK1p1bHUgOyBFdGMvWnVsdQorQUNUIDsgQXVzdHJhbGlhL0RhcndpbgorQUVUIDsgQXVzdHJhbGlhL1N5ZG5leQorQUdUIDsgQW1lcmljYS9CdWVub3NfQWlyZXMKK0FSVCA7IEFmcmljYS9DYWlybworQVNUIDsgQW1lcmljYS9BbmNob3JhZ2UKK0JFVCA7IEFtZXJpY2EvU2FvX1BhdWxvCitCU1QgOyBBc2lhL0RoYWthCitDQVQgOyBBZnJpY2EvSGFyYXJlCitDTlQgOyBBbWVyaWNhL1N0X0pvaG5zCitDU1QgOyBBbWVyaWNhL0NoaWNhZ28KK0NUVCA7IEFzaWEvU2hhbmdoYWkKK0VBVCA7IEFmcmljYS9BZGRpc19BYmFiYQorRUNUIDsgRXVyb3BlL1BhcmlzCitJRVQgOyBBbWVyaWNhL0luZGlhbmFwb2xpcworSVNUIDsgQXNpYS9DYWxjdXR0YQorSlNUIDsgQXNpYS9Ub2t5bworTUlUIDsgUGFjaWZpYy9BcGlhCitORVQgOyBBc2lhL1llcmV2YW4KK05TVCA7IFBhY2lmaWMvQXVja2xhbmQKK1BMVCA7IEFzaWEvS2FyYWNoaQorUE5UIDsgQW1lcmljYS9QaG9lbml4CitQUlQgOyBBbWVyaWNhL1B1ZXJ0b19SaWNvCitQU1QgOyBBbWVyaWNhL0xvc19BbmdlbGVzCitTU1QgOyBQYWNpZmljL0d1YWRhbGNhbmFsCitWU1QgOyBBc2lhL1NhaWdvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9Xcml0ZU51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODFiNTc1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBAdmVyc2lvbiAgICAgMS4wCisgKiBAYXV0aG9yIFJhbSBWaXN3YW5hZGhhCisgKi8KK3B1YmxpYyBjbGFzcyBXcml0ZU51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGhlYWRlcj0iLypcbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICpcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICovXG5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0O1xuXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHVibGljIGNsYXNzIE51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhIHtcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvL2dldCBDb250ZW50XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgcHVibGljIHN0YXRpYyBieXRlW11bXSBnZXRDb250ZW50KCkge1xuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgfVxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgZm9vdGVyID0iXG4gICAgZmluYWwgc3RhdGljIGJ5dGVbXVtdIGNvbnRlbnQgPSB7Z2VuZXJhbEluc3RhbmNlLCBjdXJyZW5jeUluc3RhbmNlLCBwZXJjZW50SW5zdGFuY2UsIHNjaWVudGlmaWNJbnN0YW5jZX07XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifVxuIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mICAgICA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmZjICAgID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mcCAgICAgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZnNwICAgICA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gZmlsZSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKCJOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhIik7CisgICAgICAgICAgICBmaWxlLndyaXRlKGhlYWRlci5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgIHdyaXRlKGZpbGUsKE9iamVjdCluZiwiZ2VuZXJhbEluc3RhbmNlIiwgIi8vTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUykiKTsKKyAgICAgICAgICAgIHdyaXRlKGZpbGUsKE9iamVjdCluZmMsImN1cnJlbmN5SW5zdGFuY2UiLCIvL051bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUykiKTsKKyAgICAgICAgICAgIHdyaXRlKGZpbGUsKE9iamVjdCluZnAsInBlcmNlbnRJbnN0YW5jZSIsIi8vTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuVVMpIik7CisgICAgICAgICAgICB3cml0ZShmaWxlLChPYmplY3QpbmZzcCwic2NpZW50aWZpY0luc3RhbmNlIiwiLy9OdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5VUykiKTsKKyAgICAgICAgICAgIGZpbGUud3JpdGUoZm9vdGVyLmdldEJ5dGVzKCkpOyAgICAgICAgICAgIAorICAgICAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICB9Y2F0Y2goIEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgd3JpdGUoRmlsZU91dHB1dFN0cmVhbSBmaWxlLE9iamVjdCBvICxTdHJpbmcgbmFtZSxTdHJpbmcgY29tbWVudCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBidHMgPSAgbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShidHMpOyAgICAKKyAgICAgICAgICAgIG9zLndyaXRlT2JqZWN0KChPYmplY3Qpbyk7CisgICAgICAgICAgICBvcy5mbHVzaCgpOworICAgICAgICAgICAgb3MuY2xvc2UoKTsKKyAgICAgICAgICAgIGJ5dGVbXSBteUFyciA9IGJ0cy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgLy9TdHJpbmcgdGVtcCA9IG5ldyBTdHJpbmcobXlBcnIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgIitjb21tZW50KyAiIDoiKTsKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5wcmludGxuKCJtaW5pbXVtSW50ZWdlckRpZ2l0cyA6ICIgICsgKHRlbXAuaW5kZXhPZigibWluaW11bUludGVnZXJEaWdpdHMiKSsibWluaW11bUludGVnZXJEaWdpdHMiLmxlbmd0aCgpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1heGltdW1JbnRlZ2VyRGlnaXRzIDogIiAgKyAodGVtcC5pbmRleE9mKCJtYXhpbXVtSW50ZWdlckRpZ2l0cyIpKyJtYXhpbXVtSW50ZWdlckRpZ2l0cyIubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibWluaW11bUZyYWN0aW9uRGlnaXRzIDogIiArICh0ZW1wLmluZGV4T2YoIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIpKyJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLmxlbmd0aCgpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1heGltdW1GcmFjdGlvbkRpZ2l0cyA6ICIgKyAodGVtcC5pbmRleE9mKCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiKSsibWF4aW11bUZyYWN0aW9uRGlnaXRzIi5sZW5ndGgoKSkpOworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8vZmlsZS53cml0ZShteUFycik7CisgICAgICAgICAgICBmaWxlLndyaXRlKCgiXG4gICAgIitjb21tZW50KS5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgIGZpbGUud3JpdGUobmV3IFN0cmluZygiXG4gICAgc3RhdGljIGJ5dGVbXSAiK25hbWUrIiA9IG5ldyBieXRlW117IFxuIikuZ2V0Qnl0ZXMoIlVURi04IikpOworICAgICAgICAgICAgZmlsZS53cml0ZSggIiAgICAgICAgIi5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPG15QXJyLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBmaWxlLndyaXRlKFN0cmluZy52YWx1ZU9mKChpbnQpbXlBcnJbaV0pLmdldEJ5dGVzKCkpOworICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoICIsICIuZ2V0Qnl0ZXMoKSk7CisgICAgICAgICAgICAgICAgaWYoKGkrMSklMjAgPT0gMCl7CisgICAgICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoIlxuIi5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgICAgICAgICAgZmlsZS53cml0ZSggIiAgICAgICAgIi5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaWxlLndyaXRlKG5ldyBTdHJpbmcoIlxuICAgIH07XG4iKS5nZXRCeXRlcygiVVRGLTgiKSk7CisgICAgICAgIH1jYXRjaCggRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICAKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaW1wbC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaW1wbC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM5MmUwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pbXBsL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBvdGhlciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigiY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbCIsCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiSUNVU2VydmljZVRlc3QiLAorICAgICAgICAgICAgICAgICAgIklDVVNlcnZpY2VUaHJlYWRUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJJQ1VCaW5hcnlUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJMUlVNYXBUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJUZXh0VHJpZU1hcFRlc3QiCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJUZXN0IG1pc2NlbGxhbmVvdXMgaW1wbGVtZW50YXRpb24gdXRpbGl0aWVzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiSW1wbCI7Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2l0ZXJhdG9yL1Rlc3RVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pdGVyYXRvci9UZXN0VUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg1OGVmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pdGVyYXRvci9UZXN0VUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw0ODQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5pdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZVN0cmluZzsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvciBleHRlbmRzIFRlc3RGbXdreworCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvcigpCisgICAgeworICAgIH0KKyAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBUZXN0aW5nIGNsb25pbmcKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpIHRocm93cyBDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSgidGVzdGluZyIpOworICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNsb25lZCA9IChVQ2hhcmFjdGVySXRlcmF0b3IpaXRlcmF0b3IuY2xvbmUoKTsKKyAgICAgICAgIGludCBjb21wbGV0ZWQgPSAwOworICAgICAgICAgd2hpbGUgKGNvbXBsZXRlZCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgY29tcGxldGVkID0gaXRlcmF0b3IubmV4dCgpOworICAgICAgICAgICAgaWYgKGNvbXBsZXRlZCAhPSBjbG9uZWQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNsb25lZCBvcGVyYXRpb24gZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGdldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yLCBTdHJpbmcgcmVzdWx0KXsKKyAgICAgICAgLyogdGVzdCBnZXRUZXh0ICovCisgICAgICAgIGNoYXJbXSBidWY9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGl0ZXJhdG9yLmdldFRleHQoYnVmKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGJ1ZiA9IG5ldyBjaGFyW2l0ZXJhdG9yLmdldExlbmd0aCgpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihyZXN1bHQuY29tcGFyZVRvKG5ldyBTdHJpbmcoYnVmLDAsaXRlcmF0b3IuZ2V0TGVuZ3RoKCkpKSE9MCl7CisgICAgICAgICAgICBlcnJsbigiZ2V0VGV4dCBmYWlsZWQgZm9yIGl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRlcmF0aW9uKCkKKyAgICB7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciAgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElURVJBVElPTl9TVFJJTkdfKTsKKyAgICAgICAgaXRlcmF0b3Iuc2V0VG9TdGFydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyYXRvci5jdXJyZW50KCkgIT0gSVRFUkFUSU9OX1NUUklOR18uY2hhckF0KDApKSB7CisgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgZmlyc3QgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3Iuc2V0VG9MaW1pdCgpOyAKKyAgICAgICAgaWYgKGl0ZXJhdG9yLnByZXZpb3VzKCkgIT0gSVRFUkFUSU9OX1NUUklOR18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkgLSAxKSkgeworICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIGZhaWxlZCByZXRyaWV2aW5nIGxhc3QgY2hhcmFjdGVyIik7CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoaXRlcmF0b3IuZ2V0TGVuZ3RoKCkgIT0gSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBmYWlsZWQgZGV0ZXJtaW5pbmcgYmVnaW4gYW5kIGVuZCBpbmRleCIpOworICAgICAgICB9ICAKKyAgICAgICAgaXRlcmF0b3IyLnNldEluZGV4KDApOworICAgICAgICBpdGVyYXRvci5zZXRJbmRleCgwKTsKKyAgICAgICAgaW50IGNoID0gMDsKKyAgICAgICAgd2hpbGUgKGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNoID0gaXRlcmF0b3IyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmIChpbmRleCAhPSBJVEVSQVRJT05fU1VQUExFTUVOVEFSWV9JTkRFWCkgeworICAgICAgICAgICAgICAgIGlmIChjaCAhPSAoaW50KWl0ZXJhdG9yLm5leHQoKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgY2ggIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1pc21hdGNoIGluIG5leHQoKSBhbmQgbmV4dENvZGVQb2ludCgpIik7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5uZXh0KCkgfHwKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpICE9IGl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gbmV4dCBhbmQgbmV4dENvZGVQb2ludCBmb3IgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpOworICAgICAgICBpdGVyYXRvcjIuc2V0SW5kZXgoSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpOworICAgICAgICB3aGlsZSAoY2ggIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IGl0ZXJhdG9yMi5nZXRJbmRleCgpOworICAgICAgICAgICAgY2ggPSBpdGVyYXRvcjIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmIChpbmRleCAhPSBJVEVSQVRJT05fU1VQUExFTUVOVEFSWV9JTkRFWCkgeworICAgICAgICAgICAgICAgIGlmIChjaCAhPSAoaW50KWl0ZXJhdG9yLnByZXZpb3VzKCkgJiYgCisgICAgICAgICAgICAgICAgICAgIGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBwcmV2aW91cygpIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29kZVBvaW50KCkiKTsgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmdldExlYWRTdXJyb2dhdGUoY2gpICE9IGl0ZXJhdG9yLnByZXZpb3VzKCkgfHwgCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBwcmV2aW91cyBhbmQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmV2aW91c0NvZGVQb2ludCBmb3Igc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBUZXN0VUNoYXJhY3Rlckl0ZXJhdG9yIHRlc3QgPSBuZXcgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0cyBmb3IgbmV3IEFQSSBmb3IgdXRmLTE2IHN1cHBvcnQgCisgICAgcHVibGljIHZvaWQgVGVzdEl0ZXJhdGlvblVDaGFyMzIoKSB7CisgICAgICAgIFN0cmluZyB0ZXh0PSJcdTAwNjFcdTAwNjJcdWQ4NDFcdWRjMDJcdTIwYWNcdWQ3ZmZcdWQ4NDJcdWRjMDZcdWQ4MDFcdWRjMDBcdTAwNjEiOworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGk7CisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRleHQpOworICAgIAorICAgICAgICAgICAgU3RyaW5nIGl0ZXJUZXh0ID0gaXRlci5nZXRUZXh0KCk7CisgICAgICAgICAgICBpZiAoIWl0ZXJUZXh0LmVxdWFscyh0ZXh0KSkKKyAgICAgICAgICAgICAgZXJybG4oIml0ZXIuZ2V0VGV4dCgpIGZhaWxlZCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdGVyLnNldEluZGV4KDEpOworICAgICAgICAgICAgaWYgKGl0ZXIuY3VycmVudENvZGVQb2ludCgpICE9IFVURjE2LmNoYXJBdCh0ZXh0LDEpKQorICAgICAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBkaWRuJ3Qgc3RhcnQgb3V0IGluIHRoZSByaWdodCBwbGFjZS4iKTsKKyAgICAKKyAgICAgICAgICAgIGl0ZXIuc2V0VG9TdGFydCgpOworICAgICAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGk9MDsKKyAgICAgICAgICAgIGk9aXRlci5tb3ZlQ29kZVBvaW50SW5kZXgoMSk7CisgICAgICAgICAgICBjPWl0ZXIuY3VycmVudENvZGVQb2ludCgpOworICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCwxKSB8fCBpIT0xKQorICAgICAgICAgICAgICAgIGVycmxuKCJtb3ZlQ29kZVBvaW50SW5kZXgoMSkgZGlkbid0IHdvcmsgY29ycmVjdGx5IGV4cGVjdGVkICIrIGhleChjKSArIiBnb3QgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsMSkpICsgIiBpPSAiICsgaSk7CisgICAgCisgICAgICAgICAgICBpPWl0ZXIubW92ZUNvZGVQb2ludEluZGV4KDIpOworICAgICAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsNCkgfHwgaSE9NCkKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KDIpIGRpZG4ndCB3b3JrIGNvcnJlY3RseSBleHBlY3RlZCAiKyBoZXgoYykgKyIgZ290ICIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LDQpKSArICIgaT0gIiArIGkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaT1pdGVyLm1vdmVDb2RlUG9pbnRJbmRleCgtMik7CisgICAgICAgICAgICBjPWl0ZXIuY3VycmVudENvZGVQb2ludCgpOworICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCwxKSB8fCBpIT0xKQorICAgICAgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KC0yKSBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgZXhwZWN0ZWQgIisgaGV4KGMpICsiIGdvdCAiK2hleChVVEYxNi5jaGFyQXQodGV4dCwxKSkgKyAiIGk9ICIgKyBpKTsKKworICAgICAgICAgICAgaXRlci5zZXRUb0xpbWl0KCk7CisgICAgICAgICAgICBpPWl0ZXIubW92ZUNvZGVQb2ludEluZGV4KC0yKTsKKyAgICAgICAgICAgIGM9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpZihjICE9IFVURjE2LmNoYXJBdCh0ZXh0LCh0ZXh0Lmxlbmd0aCgpLTMpKSB8fCBpIT0odGV4dC5sZW5ndGgoKS0zKSkKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KC0yKSBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgZXhwZWN0ZWQgIisgaGV4KGMpICsiIGdvdCAiK2hleChVVEYxNi5jaGFyQXQodGV4dCwodGV4dC5sZW5ndGgoKS0zKSkgKSArICIgaT0gIiArIGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgICAgIGMgPSBpdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGkgPSAwOworICAgIAorICAgICAgICAgICAgLy90ZXN0aW5nIGZpcnN0MzJQb3N0SW5jLCBuZXh0Q29kZVBvaW50UG9zdEluYywgc2V0VG9zdGFydAorICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgICAgIGMgPWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCxpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZmlyc3QzMlBvc3RJbmMgZmFpbGVkLiAgRXhwZWN0ZWQtPiIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LGkpKSsiIEdvdC0+ICIraGV4KGMpKTsKKyAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSAhPSBVVEYxNi5nZXRDaGFyQ291bnQoYykgKyBpKQorICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbmRleCgpIGFmdGVyIGZpcnN0MzJQb3N0SW5jKCkgZmFpbGVkIik7CisgICAgCisgICAgICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgICAgIGk9MDsKKyAgICAgICAgICAgIGlmIChpdGVyLmdldEluZGV4KCkgIT0gMCkKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0VG9TdGFydCBmYWlsZWQiKTsKKyAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4uLiIpOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGlmIChjICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgICAgICAgICBjID0gaXRlci5uZXh0Q29kZVBvaW50KCk7CisgICAgCisgICAgICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCxpKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3RlciBtaXNtYXRjaCBhdCBwb3NpdGlvbiAiK2krIiwgaXRlcmF0b3IgaGFzICIraGV4KGMpKyIsIHN0cmluZyBoYXMgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsaSkpKTsKKyAgICAKKyAgICAgICAgICAgICAgICBpKz1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgaWYoaXRlci5nZXRJbmRleCgpICE9IGkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbmRleCgpIGFmdHIgbmV4dENvZGVQb2ludFBvc3RJbmMoKSBpc24ndCB3b3JraW5nIHJpZ2h0Iik7CisgICAgICAgICAgICAgICAgYyA9IGl0ZXIuY3VycmVudENvZGVQb2ludCgpOyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiggYyE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgYyAhPSBVVEYxNi5jaGFyQXQodGV4dCxpKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImN1cnJlbnQoKSBhZnRlciBuZXh0Q29kZVBvaW50UG9zdEluYygpIGlzbid0IHdvcmtpbmcgcmlnaHQiKTsKKworICAgICAgICAgICAgfSB3aGlsZSAoYyE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpOworICAgICAgICAgICAgYz1pdGVyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmKGMhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgICAgICBlcnJsbigibmV4dENvZGVQb2ludFBvc3RJbmMoKSBkaWRuJ3QgcmV0dXJuIERPTkUgYXQgdGhlIGJlZ2lubmluZyIpOworICAgIAorICAgIAorICAgICAgICB9CisgICAgfSAgCisgICAgCisgICAgY2xhc3MgVUNoYXJJdGVyYXRvciB7CisgICAgCisgICAgICAgcHVibGljIFVDaGFySXRlcmF0b3IoaW50W10gc3JjLCBpbnQgbGVuLCBpbnQgaW5kZXgpeworICAgICAgICAgICAgCisgICAgICAgICAgICBzPXNyYzsKKyAgICAgICAgICAgIGxlbmd0aD1sZW47CisgICAgICAgICAgICBpPWluZGV4OworICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICAgICAgaWYoaTxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmKGk8bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbaSsrXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgICAgICBpZihpPjApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1stLWldOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgCisgICAgICAgIHByaXZhdGUgaW50W10gczsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbGVuZ3RoLCBpOworICAgIH0KKyAgICAvLyBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisgICAgcHJpdmF0ZSBmaW5hbCBjaGFyIHNyY1tdPXsKKyAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDJmOTk5KSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgyZjk5OSksCisgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgxZDE1ZiksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MWQxNWYpLAorICAgICAgICAweGM0LAorICAgICAgICAweDFlZDAKKyAgICB9OworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmV2aW91c05leHQoKXsKKyAgICAgICAgLy8gaXRlcmF0b3JzCisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyMSA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXcgUmVwbGFjZWFibGVTdHJpbmcobmV3IFN0cmluZyhzcmMpKSk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyMiA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMvKmNoYXIgYXJyYXkqLyk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyMyA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyhzcmMpKSk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyNCA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXcgU3RyaW5nQnVmZmVyKG5ldyBTdHJpbmcoc3JjKSkpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjEpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjIpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjMpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjQpOworICAgICAgICBnZXRUZXh0KGl0ZXIxLG5ldyBTdHJpbmcoc3JjKSk7CisgICAgICAgIGdldFRleHQoaXRlcjIsbmV3IFN0cmluZyhzcmMpKTsKKyAgICAgICAgZ2V0VGV4dChpdGVyMyxuZXcgU3RyaW5nKHNyYykpOworICAgICAgICAvKiBnZXRDaGFyYWN0ZXJJdGVyYXRvciAqLworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaXRlcjEgPSBpdGVyMS5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaXRlcjIgPSBpdGVyMi5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaXRlcjMgPSBpdGVyMy5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBpZihjaXRlcjEuZmlyc3QoKSAhPWl0ZXIxLmN1cnJlbnQoKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0Q2hhcmFjdGVySXRlcmF0b3IgZm9yIGl0ZXIxIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGlmKGNpdGVyMi5maXJzdCgpICE9aXRlcjIuY3VycmVudCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJnZXRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgaXRlcjIgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2l0ZXIzLmZpcnN0KCkgIT1pdGVyMy5jdXJyZW50KCkpeworICAgICAgICAgICAgZXJybG4oImdldENoYXJhY3Rlckl0ZXJhdG9yIGZvciBpdGVyMyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICAvKiBUZXN0IGNsb25lKCkgICYmIG1vdmVJbmRleCgpKi8KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNsb25lMSA9IChVQ2hhcmFjdGVySXRlcmF0b3IpaXRlcjEuY2xvbmUoKTsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZTIgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXIyLmNsb25lKCk7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgY2xvbmUzID0gKFVDaGFyYWN0ZXJJdGVyYXRvcilpdGVyMy5jbG9uZSgpOworICAgICAgICAgICAgaWYoY2xvbmUxLm1vdmVJbmRleCgzKSE9aXRlcjEubW92ZUluZGV4KDMpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUluZGV4IGZvciBpdGVyMSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGNsb25lMi5tb3ZlSW5kZXgoMykhPWl0ZXIyLm1vdmVJbmRleCgzKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVJbmRleCBmb3IgaXRlcjIgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjbG9uZTMubW92ZUluZGV4KDMpIT1pdGVyMy5tb3ZlSW5kZXgoMykpeworICAgICAgICAgICAgICAgIGVycmxuKCJtb3ZlSW5kZXggZm9yIGl0ZXIxIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY2xvbmUgdGhlIGl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgcHJldmlvdXNOZXh0KFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyKSB7CisKKyAgICAgICAgaW50IGV4cGVjdFtdPXsKKyAgICAgICAgICAgIDB4MmY5OTksCisgICAgICAgICAgICAweDFkMTVmLAorICAgICAgICAgICAgMHhjNCwKKyAgICAgICAgICAgIDB4MWVkMAorICAgICAgICB9OworICAgIAorICAgICAgICAvLyBleHBlY3RlZCBzcmMgaW5kZXhlcyBjb3JyZXNwb25kaW5nIHRvIGV4cGVjdCBpbmRleGVzCisgICAgICAgIGludCBleHBlY3RJbmRleFtdPXsKKyAgICAgICAgICAgIDAsMCwKKyAgICAgICAgICAgIDEsMSwKKyAgICAgICAgICAgIDIsCisgICAgICAgICAgICAzLAorICAgICAgICAgICAgNCAvL25lZWRlZCAKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgLy8gaW5pdGlhbCBpbmRleGVzIGludG8gdGhlIHNyYyBhbmQgZXhwZWN0IHN0cmluZ3MKKyAgICAgICAgCisgICAgICAgIGZpbmFsIGludCBTUkNfTUlERExFPTQ7CisgICAgICAgIGZpbmFsIGludCBFWFBFQ1RfTUlERExFPTI7CisgICAgICAgIAorICAgIAorICAgICAgICAvLyBtb3ZlbWVudCB2ZWN0b3IKKyAgICAgICAgLy8gLSBmb3IgcHJldmlvdXMoKSwgMCBmb3IgY3VycmVudCgpLCArIGZvciBuZXh0KCkKKyAgICAgICAgLy8gbm90IGNvbnN0IHNvIHRoYXQgd2UgY2FuIHRlcm1pbmF0ZSBpdCBiZWxvdyBmb3IgdGhlIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgU3RyaW5nIG1vdmVzPSIwKzArMC0tMC0wLSsrKzAtLSsrKysrKyswLS0tLS0tLS0iOworICAgIAorICAgICAgICAKKyAgICAgICAgVUNoYXJJdGVyYXRvciBpdGVyMzIgPSBuZXcgVUNoYXJJdGVyYXRvcihleHBlY3QsIGV4cGVjdC5sZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTUlERExFKTsKKyAgICAKKyAgICAgICAgaW50IGMxLCBjMjsKKyAgICAgICAgY2hhciBtOworICAgIAorICAgICAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworICAgICAgICBpdGVyLnNldEluZGV4KFNSQ19NSURETEUpOworICAgIAorICAgICAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKyAgICAgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKyAgICAgICAgaW50IG1vdmVzSW5kZXggPTA7CisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAgey8vIG09PScrJyAKKyAgICAgICAgICAgICAgICBjMT1pdGVyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIubmV4dCgpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKGV4cGVjdEluZGV4W2l0ZXIuZ2V0SW5kZXgoKV0hPWl0ZXIzMi5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcigpeworICAgICAgICBTdHJpbmcgc291cmNlID0iYXNkZmFzZGZqb2l1eW9pdXkyMzQxMjM1Njc5ODg2NzY1IjsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNvdXJjZSk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHdyYXBfY2kgPSBpdC5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaSA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgICAgICB3cmFwX2NpLnNldEluZGV4KDEwKTsKKyAgICAgICAgY2kuc2V0SW5kZXgoMTApOworICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSsrKyswMDAwLS0tLTAtIjsKKyAgICAgICAgaW50IGMxLCBjMjsKKyAgICAgICAgY2hhciBtOworICAgICAgICBpbnQgbW92ZXNJbmRleCA9MDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT13cmFwX2NpLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgYzI9Y2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtPT0nMCcpIHsKKyAgICAgICAgICAgICAgICBjMT13cmFwX2NpLmN1cnJlbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1jaS5jdXJyZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgIHsvLyBtPT0nKycgCisgICAgICAgICAgICAgICAgYzE9d3JhcF9jaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgYzI9Y2kubmV4dCgpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKHdyYXBfY2kuZ2V0SW5kZXgoKSE9Y2kuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGluZGV4IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAraGlzdG9yeSsgIiA6ICIrICJOb3JtYWxpemVyIGluZGV4ICIgK3dyYXBfY2kuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICAgICAgICsiIGV4cGVjdGVkICIrIGNpLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKGNpLmZpcnN0KCkhPXdyYXBfY2kuZmlyc3QoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmZpcnN0KCkgZmFpbGVkLiBleHBlY3RlZDogIiArIGNpLmZpcnN0KCkgKyAiIGdvdDogIiArd3JhcF9jaS5maXJzdCgpKTsKKyAgICAgICAgfQorICAgICAgICBpZihjaS5sYXN0KCkhPXdyYXBfY2kubGFzdCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIubGFzdCgpIGZhaWxlZCBleHBlY3RlZDogIiArIGNpLmxhc3QoKSArICIgZ290OiAiICt3cmFwX2NpLmxhc3QoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2kuZ2V0QmVnaW5JbmRleCgpIT13cmFwX2NpLmdldEJlZ2luSW5kZXgoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmdldEJlZ2luSW5kZXgoKSBmYWlsZWQgZXhwZWN0ZWQ6ICIgKyBjaS5nZXRCZWdpbkluZGV4KCkgKyAiIGdvdDogIiArd3JhcF9jaS5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIGlmKGNpLmdldEVuZEluZGV4KCkhPXdyYXBfY2kuZ2V0RW5kSW5kZXgoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmdldEVuZEluZGV4KCkgZmFpbGVkIGV4cGVjdGVkOiAiICsgY2kuZ2V0RW5kSW5kZXgoKSArICIgZ290OiAiICt3cmFwX2NpLmdldEVuZEluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNsb25lV0NJID0gKENoYXJhY3Rlckl0ZXJhdG9yKSB3cmFwX2NpLmNsb25lKCk7CisgICAgICAgICAgICBpZih3cmFwX2NpLmdldEluZGV4KCkhPWNsb25lV0NJLmdldEluZGV4KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuY2xvbmUoKSBmYWlsZWQgZXhwZWN0ZWQ6ICIgK3dyYXBfY2kuZ2V0SW5kZXgoKSArICIgZ290OiAiICsgY2xvbmVXQ0kuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3Rlckl0ZXJhdG9yLmNsb25lKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElURVJBVElPTl9TVFJJTkdfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdGluZyAxIDIgMyBcdWQ4MDBcdWRjMDAgNDU2IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVggPSAxNDsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Sml0dGVyYnVnMTk1MigpeworICAgICAgICAvL3Rlc3QgcHJldmlvdXMgY29kZSBwb2ludAorICAgICAgICBjaGFyW10gc3JjID0gbmV3IGNoYXJbXXsgJ1x1REMwMCcsJ1x1RDgwMCcsJ1x1REMwMScsJ1x1RDgwMicsJ1x1REMwMicsJ1x1REMwMyd9OworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICBpdGVyLnNldEluZGV4KDEpOworICAgICAgICBpbnQgY2g7CisgICAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGdvIGludG8gYSBpbmZpbml0ZSBsb29wCisgICAgICAgIC8vIGlmIGl0IGRvZXMgdGhlbiB3ZSBoYXZlIGEgcHJvYmxlbQorICAgICAgICB3aGlsZSgoY2g9aXRlci5wcmV2aW91c0NvZGVQb2ludCgpKSE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoY2ghPTB4RGMwMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIml0ZXIucHJldmlvdXNDb2RlUG9pbnQoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpdGVyLnNldEluZGV4KDUpOworICAgICAgICB3aGlsZSgoY2g9aXRlci5uZXh0Q29kZVBvaW50KCkpICE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoY2ghPSAweERDMDMpeworICAgICAgICAgICAgICAgIGVycmxuKCJpdGVyLm5leHRDb2RlUG9pbnQoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0gICAgICAKKyAgICB9CisgICAgICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlNzJmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBjaGFyYWN0ZXIgcHJvcGVydHkgdGVzdHMuCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICJUZXN0Q2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAiVGVzdFVTY3JpcHQiLCAKKyAgICAgICAgICAgICAgICAgICJUZXN0VVNjcmlwdFJ1biIgCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJDaGFyYWN0ZXIgYW5kIFNjcmlwdCBUZXN0cyIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlByb3BlcnR5IjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RDaGFyYWN0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RDaGFyYWN0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzFmN2NiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdENoYXJhY3Rlci5qYXZhCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKK3B1YmxpYyBjbGFzcyBUZXN0Q2hhcmFjdGVyIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0Q2hhcmFjdGVyKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0Q2hhcmFjdGVyKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAiVUNoYXJhY3RlclRlc3QiLCAKKyAgICAgICAgICAgICAgICAgICJVQ2hhcmFjdGVyQ2FzZVRlc3QiLAorICAgICAgICAgICAgICAgICAgIlVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QiLCAKKyAgICAgICAgICAgICAgICAgICJVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCIsIAorICAgICAgICAgICAgICAgICAgIlVQcm9wZXJ0eUFsaWFzZXNUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJVVEYxNlRlc3QiLAorICAgICAgICAgICAgICAgICAgIlVDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0IgorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAiQ2hhcmFjdGVyIFByb3BlcnR5IGFuZCBVVEYxNiBUZXN0cyIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFlZmQ2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdC5qYXZhCkBAIC0wLDAgKzEsMzk4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgVGVzdFVTY3JpcHQgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKi8KKyAgICBwdWJsaWMgVGVzdFVTY3JpcHQoKQorICAgIHsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RVU2NyaXB0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlR2V0Q29kZSgpeworICAgICAgICBmaW5hbCBVTG9jYWxlW10gdGVzdE5hbWVzPXsKKyAgICAgICAgLyogdGVzdCBsb2NhbGUgKi8KKyAgICAgICAgbmV3IFVMb2NhbGUoImVuIiksIG5ldyBVTG9jYWxlKCJlbl9VUyIpLAorICAgICAgICBuZXcgVUxvY2FsZSgic3IiKSwgbmV3IFVMb2NhbGUoInRhIikgLAorICAgICAgICBuZXcgVUxvY2FsZSgidGVfSU4iKSwKKyAgICAgICAgbmV3IFVMb2NhbGUoImhpIiksCisgICAgICAgIG5ldyBVTG9jYWxlKCJoZSIpLCBuZXcgVUxvY2FsZSgiYXIiKSwKKyAgICAgICAgbmV3IFVMb2NhbGUoImFiY2RlIiksCisgICAgICAgIG5ldyBVTG9jYWxlKCJhYmNkZV9jZGVmIiksCisgICAgICAgIG5ldyBVTG9jYWxlKCJpdyIpCisgICAgICAgIH07CisgICAgICAgIGZpbmFsIGludFtdIGV4cGVjdGVkID17CisgICAgICAgICAgICAgICAgLyogbG9jYWxlcyBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLCBVU2NyaXB0LlRBTUlMLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuVEVMVUdVLFVTY3JpcHQuREVWQU5BR0FSSSwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhFQlJFVywgVVNjcmlwdC5BUkFCSUMsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTlZBTElEX0NPREUsVVNjcmlwdC5JTlZBTElEX0NPREUsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5IRUJSRVcKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGkgPTA7CisgICAgICAgIGludCBudW1FcnJvcnMgPTA7CisKKyAgICAgICAgZm9yKCA7IGk8dGVzdE5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUodGVzdE5hbWVzW2ldKTsKKworICAgICAgICAgICAgaWYoY29kZT09bnVsbCl7CisgICAgICAgICAgICAgICAgaWYoZXhwZWN0ZWRbaV0hPVVTY3JpcHQuSU5WQUxJRF9DT0RFKXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgR290OiBudWxsIiArICIgRXhwZWN0ZWQ6ICIgK2V4cGVjdGVkW2ldICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGdldENvZGUgcmV0dXJucyBudWxsIGlmIHRoZSBjb2RlIGNvdWxkIG5vdCBiZSBmb3VuZAorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKGNvZGVbMF0gIT0gZXhwZWN0ZWRbaV0pKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6ICIgK2NvZGVbMF0gKyAiIEV4cGVjdGVkOiAiICtleHBlY3RlZFtpXSArIiBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVwb3J0RGF0YUVycm9ycyhudW1FcnJvcnMpOworICAgICAgICAKKyAgICAgICAgLy8gCisgICAgICAgIFVMb2NhbGUgZGVmYXVsdExvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOyAKKyAgICAgICAgVUxvY2FsZSBlc3BhcmFudG8gPSBuZXcgVUxvY2FsZSgiZW9fREUiKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KGVzcGFyYW50byk7CisgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUoZXNwYXJhbnRvKTsgCisgICAgICAgIGlmKGNvZGUgIT0gbnVsbCl7CisgICAgICAgICAgICBpZiggY29kZVswXSAhPSBVU2NyaXB0LkxBVElOKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHNjcmlwdCBjb2RlIGZvciBFc3BhcmFudG8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YS4iKTsKKyAgICAgICAgfQorICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoZGVmYXVsdExvYyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydERhdGFFcnJvcnMoaW50IG51bUVycm9ycykgeworICAgICAgICBpZiAobnVtRXJyb3JzID4wKSB7CisgICAgICAgICAgICAvLyBhc3N1bWUgbWlzc2luZyBsb2NhbGUgZGF0YSwgc28gbm90IGFuIGVycm9yLCBqdXN0IGEgd2FybmluZworICAgICAgICAgICAgaWYgKGlzTW9kdWxhckJ1aWxkKCkgfHwgbm9EYXRhKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiBub2RhdGEgaXMgc2V0IGRvbid0IGV2ZW4gd2FybgorICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGZpbmQgbG9jYWxlIGRhdGEiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVuY291bnRlcmVkICIgKyBudW1FcnJvcnMgKyAiIGVycm9ycy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RNdWx0aXBsZUNvZGUoKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gdGVzdE5hbWVzID0geyAiamEiICwia29fS1IiLCJ6aCIsInpoX1RXIn07CisgICAgICAgIGZpbmFsIGludFtdW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtVU2NyaXB0LktBVEFLQU5BLFVTY3JpcHQuSElSQUdBTkEsVVNjcmlwdC5IQU59LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VVNjcmlwdC5IQU5HVUwsIFVTY3JpcHQuSEFOfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1VTY3JpcHQuSEFOfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1VTY3JpcHQuSEFOLFVTY3JpcHQuQk9QT01PRk99CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworCisgICAgICAgIGludCBudW1FcnJvcnMgPSAwOworICAgICAgICBmb3IoaW50IGk9MDsgaTx0ZXN0TmFtZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBpbnRbXSBjb2RlID0gVVNjcmlwdC5nZXRDb2RlKHRlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICBpbnRbXSBleHB0ID0gKGludFtdKSBleHBlY3RlZFtpXTsKKyAgICAgICAgICAgIGlmKGNvZGUhPW51bGwpeworICAgICAgICAgICAgICAgIGZvcihpbnQgaiA9MDsgajwgY29kZS5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoY29kZVtqXSE9ZXhwdFtqXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIEdvdDogIiArY29kZVtqXSArICIgRXhwZWN0ZWQ6ICIgK2V4cHRbal0gKyIgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlcG9ydERhdGFFcnJvcnMobnVtRXJyb3JzKTsKKyAgICAgICAgCisgICAgICAgIC8vY292ZXIgVVNjcmlwdC5nZXRDb2RlKExvY2FsZSkKKyAgICAgICAgTG9jYWxlW10gdGVzdExvY2FsZXMgPSBuZXcgTG9jYWxlW10geworICAgICAgICAgICAgTG9jYWxlLkpBUEFORVNFLAorICAgICAgICAgICAgTG9jYWxlLktPUkVBLAorICAgICAgICAgICAgTG9jYWxlLkNISU5FU0UsCisgICAgICAgICAgICBMb2NhbGUuVEFJV0FOIH07CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIFVTY3JpcHQuZ2V0Q29kZShMb2NhbGUpIC4uLiIpOworICAgICAgICBudW1FcnJvcnMgPSAwOworICAgICAgICBmb3IoaW50IGk9MDsgaTx0ZXN0TmFtZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBsb2dsbigiICBUZXN0aW5nIGxvY2FsZTogIiArIHRlc3RMb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgaW50W10gY29kZSA9IFVTY3JpcHQuZ2V0Q29kZSh0ZXN0TG9jYWxlc1tpXSk7CisgICAgICAgICAgICBpbnRbXSBleHB0ID0gKGludFtdKSBleHBlY3RlZFtpXTsKKyAgICAgICAgICAgIGlmKGNvZGUhPW51bGwpeworICAgICAgICAgICAgICAgIGZvcihpbnQgaiA9MDsgajwgY29kZS5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoY29kZVtqXSE9ZXhwdFtqXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgIEVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgR290OiAiICtjb2RlW2pdICsgIiBFeHBlY3RlZDogIiArZXhwdFtqXSArIiBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXBvcnREYXRhRXJyb3JzKG51bUVycm9ycyk7ICAgICAgICAgICAgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0Q29kZSgpeworCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHRlc3ROYW1lcz17CisgICAgICAgICAgICAvKiB0ZXN0IGxvY2FsZSAqLworICAgICAgICAgICAgImVuIiwgImVuX1VTIiwgInNyIiwgInRhIiwgImd1IiwgInRlX0lOIiwgCisgICAgICAgICAgICAiaGkiLCAiaGUiLCAiYXIiLAorICAgICAgICAgICAgLyogdGVzdCBhYmJyICovCisgICAgICAgICAgICAiSGFuaSIsICJIYW5nIiwiSGViciIsIkhpcmEiLAorICAgICAgICAgICAgIktuZGEiLCJLYW5hIiwiS2htciIsIkxhbyIsCisgICAgICAgICAgICAiTGF0biIsLyoiTGF0ZiIsIkxhdGciLCovCisgICAgICAgICAgICAiTWx5bSIsICJNb25nIiwKKworICAgICAgICAgICAgLyogdGVzdCBuYW1lcyAqLworICAgICAgICAgICAgIkNZUklMTElDIiwiREVTRVJFVCIsIkRFVkFOQUdBUkkiLCJFVEhJT1BJQyIsIkdFT1JHSUFOIiwKKyAgICAgICAgICAgICJHT1RISUMiLCAgIkdSRUVLIiwgICJHVUpBUkFUSSIsICJDT01NT04iLCAiSU5IRVJJVEVEIiwKKyAgICAgICAgICAgIC8qIHRlc3QgbG93ZXIgY2FzZSBuYW1lcyAqLworICAgICAgICAgICAgIm1hbGF5YWxhbSIsICJtb25nb2xpYW4iLCAibXlhbm1hciIsICJvZ2hhbSIsICJvbGQtaXRhbGljIiwKKyAgICAgICAgICAgICJvcml5YSIsICAgICAicnVuaWMiLCAgICAgInNpbmhhbGEiLCAic3lyaWFjIiwidGFtaWwiLAorICAgICAgICAgICAgInRlbHVndSIsICAgICJ0aGFhbmEiLCAgICAidGhhaSIsICAgICJ0aWJldGFuIiwKKyAgICAgICAgICAgIC8qIHRlc3QgdGhlIGJvdW5kcyovCisgICAgICAgICAgICAiQ2FucyIsICJhcmFiaWMiLCJZaSIsIlp5eXkiCisgICAgICAgIH07CisgICAgICAgIGZpbmFsIGludFtdIGV4cGVjdGVkID17CisgICAgICAgICAgICAvKiBsb2NhbGVzIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLCBVU2NyaXB0LlRBTUlMLCBVU2NyaXB0LkdVSkFSQVRJLAorICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsVVNjcmlwdC5ERVZBTkFHQVJJLAorICAgICAgICAgICAgVVNjcmlwdC5IRUJSRVcsIFVTY3JpcHQuQVJBQklDLAorICAgICAgICAgICAgLyogYWJiciBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICBVU2NyaXB0LkhBTiwgVVNjcmlwdC5IQU5HVUwsIFVTY3JpcHQuSEVCUkVXLCBVU2NyaXB0LkhJUkFHQU5BLAorICAgICAgICAgICAgVVNjcmlwdC5LQU5OQURBLCBVU2NyaXB0LktBVEFLQU5BLCBVU2NyaXB0LktITUVSLCBVU2NyaXB0LkxBTywKKyAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sLyogVVNjcmlwdC5MQVRJTiwgVVNjcmlwdC5MQVRJTiwqLworICAgICAgICAgICAgVVNjcmlwdC5NQUxBWUFMQU0sIFVTY3JpcHQuTU9OR09MSUFOLAorICAgICAgICAgICAgLyogbmFtZXMgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywgVVNjcmlwdC5ERVNFUkVULCBVU2NyaXB0LkRFVkFOQUdBUkksIFVTY3JpcHQuRVRISU9QSUMsIFVTY3JpcHQuR0VPUkdJQU4sCisgICAgICAgICAgICBVU2NyaXB0LkdPVEhJQywgVVNjcmlwdC5HUkVFSywgVVNjcmlwdC5HVUpBUkFUSSwgVVNjcmlwdC5DT01NT04sIFVTY3JpcHQuSU5IRVJJVEVELAorICAgICAgICAgICAgLyogbG93ZXIgY2FzZSBuYW1lcyBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICBVU2NyaXB0Lk1BTEFZQUxBTSwgVVNjcmlwdC5NT05HT0xJQU4sIFVTY3JpcHQuTVlBTk1BUiwgVVNjcmlwdC5PR0hBTSwgVVNjcmlwdC5PTERfSVRBTElDLAorICAgICAgICAgICAgVVNjcmlwdC5PUklZQSwgVVNjcmlwdC5SVU5JQywgVVNjcmlwdC5TSU5IQUxBLCBVU2NyaXB0LlNZUklBQywgVVNjcmlwdC5UQU1JTCwKKyAgICAgICAgICAgIFVTY3JpcHQuVEVMVUdVLCBVU2NyaXB0LlRIQUFOQSwgVVNjcmlwdC5USEFJLCBVU2NyaXB0LlRJQkVUQU4sCisgICAgICAgICAgICAvKiBib3VuZHMgKi8KKyAgICAgICAgICAgIFVTY3JpcHQuQ0FOQURJQU5fQUJPUklHSU5BTCwgVVNjcmlwdC5BUkFCSUMsIFVTY3JpcHQuWUksIFVTY3JpcHQuQ09NTU9OCisgICAgICAgIH07CisgICAgICAgIGludCBpID0wOworICAgICAgICBpbnQgbnVtRXJyb3JzID0wOworCisgICAgICAgIGZvciggOyBpPHRlc3ROYW1lcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBpbnRbXSBjb2RlID0gVVNjcmlwdC5nZXRDb2RlKHRlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICBpZihjb2RlID09IG51bGwpeworICAgICAgICAgICAgICAgIGlmKGV4cGVjdGVkW2ldPT1VU2NyaXB0LklOVkFMSURfQ09ERSl7CisgICAgICAgICAgICAgICAgICAgIC8vIGdldENvZGUgcmV0dXJucyBudWxsIGlmIHRoZSBjb2RlIGNvdWxkIG5vdCBiZSBmb3VuZAorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gY3VycmVudGx5IGNvbW1lbnRlZCBvdXQgdW50aWwgaml0dGVyYnVnIzI2NzggaXMgZml4ZWQKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6IG51bGwiICsgIiBFeHBlY3RlZDogIiArZXhwZWN0ZWRbaV0gKyIgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKGNvZGVbMF0gIT0gZXhwZWN0ZWRbaV0pKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6ICIgK2NvZGVbMF0gKyAiIEV4cGVjdGVkOiAiICtleHBlY3RlZFtpXSArIiBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVwb3J0RGF0YUVycm9ycyhudW1FcnJvcnMpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXROYW1lKCl7CisKKyAgICAgICAgZmluYWwgaW50W10gdGVzdENvZGVzPXsKKyAgICAgICAgICAgIC8qIG5hbWVzIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsIFVTY3JpcHQuREVTRVJFVCwgVVNjcmlwdC5ERVZBTkFHQVJJLCBVU2NyaXB0LkVUSElPUElDLCBVU2NyaXB0LkdFT1JHSUFOLAorICAgICAgICAgICAgVVNjcmlwdC5HT1RISUMsIFVTY3JpcHQuR1JFRUssIFVTY3JpcHQuR1VKQVJBVEksCisgICAgICAgIH07CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gZXhwZWN0ZWROYW1lcz17CisKKyAgICAgICAgICAgIC8qIHRlc3QgbmFtZXMgKi8KKyAgICAgICAgICAgICJDeXJpbGxpYyIsIkRlc2VyZXQiLCJEZXZhbmFnYXJpIiwiRXRoaW9waWMiLCJHZW9yZ2lhbiIsCisgICAgICAgICAgICAiR290aGljIiwgICJHcmVlayIsICAiR3VqYXJhdGkiLAorICAgICAgICB9OworICAgICAgICBpbnQgaSA9MDsKKyAgICAgICAgaW50IG51bUVycm9ycz0wOworICAgICAgICB3aGlsZShpPCB0ZXN0Q29kZXMubGVuZ3RoKXsKKyAgICAgICAgICAgIFN0cmluZyBzY3JpcHROYW1lICA9IFVTY3JpcHQuZ2V0TmFtZSh0ZXN0Q29kZXNbaV0pOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkTmFtZXNbaV0uZXF1YWxzKHNjcmlwdE5hbWUpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBhYmJyZXZpYXRpb25zIEdvdDogIiArc2NyaXB0TmFtZSArIiBFeHBlY3RlZDogIitleHBlY3RlZE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICBpZihudW1FcnJvcnMgPjAgKXsKKyAgICAgICAgICAgIHdhcm5sbigiZW5jb3VudGVyZWQgIiArIG51bUVycm9ycyArICIgZXJyb3JzIGluIFVTY3JpcHQuZ2V0TmFtZSgpIik7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2hvcnROYW1lKCl7CisgICAgICAgIGZpbmFsIGludFtdIHRlc3RDb2Rlcz17CisgICAgICAgICAgICAvKiBhYmJyIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuSEFOLCBVU2NyaXB0LkhBTkdVTCwgVVNjcmlwdC5IRUJSRVcsIFVTY3JpcHQuSElSQUdBTkEsCisgICAgICAgICAgICBVU2NyaXB0LktBTk5BREEsIFVTY3JpcHQuS0FUQUtBTkEsIFVTY3JpcHQuS0hNRVIsIFVTY3JpcHQuTEFPLAorICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgIFVTY3JpcHQuTUFMQVlBTEFNLCBVU2NyaXB0Lk1PTkdPTElBTiwKKyAgICAgICAgfTsKKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBleHBlY3RlZEFiYnI9eworICAgICAgICAgICAgICAvKiB0ZXN0IGFiYnIgKi8KKyAgICAgICAgICAgICJIYW5pIiwgIkhhbmciLCJIZWJyIiwiSGlyYSIsCisgICAgICAgICAgICAiS25kYSIsIkthbmEiLCJLaG1yIiwiTGFvbyIsCisgICAgICAgICAgICAiTGF0biIsCisgICAgICAgICAgICAiTWx5bSIsICJNb25nIiwKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgaW50IG51bUVycm9ycz0wOworICAgICAgICB3aGlsZShpPHRlc3RDb2Rlcy5sZW5ndGgpeworICAgICAgICAgICAgU3RyaW5nICBzaG9ydE5hbWUgPSBVU2NyaXB0LmdldFNob3J0TmFtZSh0ZXN0Q29kZXNbaV0pOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkQWJicltpXS5lcXVhbHMoc2hvcnROYW1lKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgYWJicmV2aWF0aW9ucyBHb3Q6ICIgK3Nob3J0TmFtZSsgIiBFeHBlY3RlZDogIiArZXhwZWN0ZWRBYmJyW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICBpZihudW1FcnJvcnMgPjAgKXsKKyAgICAgICAgICAgIHdhcm5sbigiZW5jb3VudGVyZWQgIiArIG51bUVycm9ycyArICIgZXJyb3JzIGluIFVTY3JpcHQuZ2V0U2hvcnROYW1lKCkiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2NyaXB0KCl7CisgICAgICAgIGludCBjb2RlcG9pbnRzW11bXSA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgICAgICB7MHgwMDAwRkY5RCwgVVNjcmlwdC5LQVRBS0FOQSB9LAorICAgICAgICAgICAgICAgIHsweDAwMDBGRkJFLCBVU2NyaXB0LkhBTkdVTCB9LAorICAgICAgICAgICAgICAgIHsweDAwMDBGRkM3LCBVU2NyaXB0LkhBTkdVTCB9LAorICAgICAgICAgICAgICAgIHsweDAwMDBGRkNGLCBVU2NyaXB0LkhBTkdVTCB9LAorICAgICAgICAgICAgICAgIHsweDAwMDBGRkQ3LCBVU2NyaXB0LkhBTkdVTH0sIAorICAgICAgICAgICAgICAgIHsweDAwMDBGRkRDLCBVU2NyaXB0LkhBTkdVTH0sCisgICAgICAgICAgICAgICAgezB4MDAwMTAzMDAsIFVTY3JpcHQuT0xEX0lUQUxJQ30sCisgICAgICAgICAgICAgICAgezB4MDAwMTAzMzAsIFVTY3JpcHQuR09USElDfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxMDM0QSwgVVNjcmlwdC5HT1RISUN9LAorICAgICAgICAgICAgICAgIHsweDAwMDEwNDAwLCBVU2NyaXB0LkRFU0VSRVR9LAorICAgICAgICAgICAgICAgIHsweDAwMDEwNDI4LCBVU2NyaXB0LkRFU0VSRVR9LAorICAgICAgICAgICAgICAgIHsweDAwMDFEMTY3LCBVU2NyaXB0LklOSEVSSVRFRH0sCisgICAgICAgICAgICAgICAgezB4MDAwMUQxN0IsIFVTY3JpcHQuSU5IRVJJVEVEfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxRDE4NSwgVVNjcmlwdC5JTkhFUklURUR9LAorICAgICAgICAgICAgICAgIHsweDAwMDFEMUFBLCBVU2NyaXB0LklOSEVSSVRFRH0sCisgICAgICAgICAgICAgICAgezB4MDAwMjAwMDAsIFVTY3JpcHQuSEFOfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAwMEQwMiwgVVNjcmlwdC5NQUxBWUFMQU19LAorICAgICAgICAgICAgICAgIHsweDAwMDAwRDAwLCBVU2NyaXB0LlVOS05PV059LAorICAgICAgICAgICAgICAgIHsweDAwMDAwMDAwLCBVU2NyaXB0LkNPTU1PTn0sCisgICAgICAgICAgICAgICAgezB4MDAwMUQxNjksIFVTY3JpcHQuSU5IRVJJVEVEIH0sCisgICAgICAgICAgICAgICAgezB4MDAwMUQxODIsIFVTY3JpcHQuSU5IRVJJVEVEIH0sCisgICAgICAgICAgICAgICAgezB4MDAwMUQxOEIsIFVTY3JpcHQuSU5IRVJJVEVEIH0sCisgICAgICAgICAgICAgICAgezB4MDAwMUQxQUQsIFVTY3JpcHQuSU5IRVJJVEVEIH0sCisgICAgICAgIH07CisKKyAgICAgICAgaW50IGkgPTA7CisgICAgICAgIGludCBjb2RlID0gVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKworICAgICAgICB3aGlsZShpPCBjb2RlcG9pbnRzLmxlbmd0aCl7CisgICAgICAgICAgICBjb2RlID0gVVNjcmlwdC5nZXRTY3JpcHQoY29kZXBvaW50c1tpXVswXSk7CisKKyAgICAgICAgICAgIGlmKGNvZGUgIT0gY29kZXBvaW50c1tpXVsxXSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZvciBjb2RlcG9pbnQgMHgiKyBoZXgoY29kZXBvaW50c1tpXVswXSkrIiBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIGlmKCFwYXNzZWQpeworICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRTY3JpcHQgZmFpbGVkLiIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JpcHROYW1lcygpeworICAgICAgICBmb3IoaW50IGk9MDsgaTxVU2NyaXB0LkNPREVfTElNSVQ7aSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gVVNjcmlwdC5nZXROYW1lKGkpOworICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoIiIpICl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogZ2V0TmFtZSBmb3IgY29kZSA6ICIraSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgc2hvcnROYW1lPSBVU2NyaXB0LmdldFNob3J0TmFtZShpKTsKKyAgICAgICAgICAgIGlmKHNob3J0TmFtZS5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBnZXROYW1lIGZvciBjb2RlIDogIitpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxsQ29kZXBvaW50cygpeworICAgICAgICBpbnQgY29kZTsKKyAgICAgICAgLy9TdHJpbmcgb2xkSWQ9IiI7CisgICAgICAgIC8vU3RyaW5nIG9sZEFiYnJJZD0iIjsKKyAgICAgICAgZm9yKCBpbnQgaSA9MDsgaSA8PSAweDEwZmZmZjsgaSsrKXsKKyAgICAgICAgICBjb2RlID1VU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAgICAgICBjb2RlID0gVVNjcmlwdC5nZXRTY3JpcHQoaSk7CisgICAgICAgICAgaWYoY29kZT09VVNjcmlwdC5JTlZBTElEX0NPREUpeworICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGkpKyIgZmFpbGVkIik7CisgICAgICAgICAgfQorICAgICAgICAgIFN0cmluZyBpZCA9VVNjcmlwdC5nZXROYW1lKGNvZGUpOworICAgICAgICAgIGlmKGlkLmluZGV4T2YoIklOVkFMSUQiKT49MCl7CisgICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGkpKyIgZmFpbGVkIik7CisgICAgICAgICAgfQorICAgICAgICAgIFN0cmluZyBhYmJyID0gVVNjcmlwdC5nZXRTaG9ydE5hbWUoY29kZSk7CisgICAgICAgICAgaWYoYWJici5pbmRleE9mKCJJTlYiKT49MCl7CisgICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGkpKyIgZmFpbGVkIik7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3ROZXdDb2RlKCl7CisgICAgICAgIC8qCisgICAgICAgICAqIFRoZXNlIHNjcmlwdCBjb2RlcyB3ZXJlIG9yaWdpbmFsbHkgYWRkZWQgdG8gSUNVIHByZS0zLjYsIHNvIHRoYXQgSUNVIHdvdWxkCisgICAgICAgICAqIGhhdmUgYWxsIElTTyAxNTkyNCBzY3JpcHQgY29kZXMuIElDVSB3YXMgdGhlbiBiYXNlZCBvbiBVbmljb2RlIDQuMS4KKyAgICAgICAgICogVGhlc2Ugc2NyaXB0IGNvZGVzIHdlcmUgYWRkZWQgd2l0aCBvbmx5IHNob3J0IG5hbWVzIGJlY2F1c2Ugd2UgZG9uJ3QKKyAgICAgICAgICogd2FudCB0byBpbnZlbnQgbG9uZyBuYW1lcyBvdXJzZWx2ZXMuCisgICAgICAgICAqIFVuaWNvZGUgNSBhbmQgbGF0ZXIgZW5jb2RlIHNvbWUgb2YgdGhlc2Ugc2NyaXB0cyBhbmQgZ2l2ZSB0aGVtIGxvbmcgbmFtZXMuCisgICAgICAgICAqIFdoZW5ldmVyIHRoaXMgaGFwcGVucywgdGhlIGxvbmcgc2NyaXB0IG5hbWVzIGhlcmUgbmVlZCB0byBiZSB1cGRhdGVkLgorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWRMb25nID0gbmV3IFN0cmluZ1tdeworICAgICAgICAgICAgIkJhbGluZXNlIiwgIkJhdGsiLCAiQmxpcyIsICJCcmFoIiwgIkNoYW0iLCAiQ2lydCIsICJDeXJzIiwgIkVneWQiLCAiRWd5aCIsICJFZ3lwIiwgCisgICAgICAgICAgICAiR2VvayIsICJIYW5zIiwgIkhhbnQiLCAiSG1uZyIsICJIdW5nIiwgIkluZHMiLCAiSmF2YSIsICJLYWxpIiwgIkxhdGYiLCAiTGF0ZyIsIAorICAgICAgICAgICAgIkxlcGMiLCAiTGluYSIsICJNYW5kIiwgIk1heWEiLCAiTWVybyIsICJOa28iLCAiT3JraCIsICJQZXJtIiwgIlBoYWdzX1BhIiwgIlBob2VuaWNpYW4iLCAKKyAgICAgICAgICAgICJQbHJkIiwgIlJvcm8iLCAiU2FyYSIsICJTeXJlIiwgIlN5cmoiLCAiU3lybiIsICJUZW5nIiwgIlZhaWkiLCAiVmlzcCIsICJDdW5laWZvcm0iLCAKKyAgICAgICAgICAgICJaeHh4IiwgIlVua25vd24iLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBleHBlY3RlZFNob3J0ID0gbmV3IFN0cmluZ1tdeworICAgICAgICAgICAgIkJhbGkiLCAiQmF0ayIsICJCbGlzIiwgIkJyYWgiLCAiQ2hhbSIsICJDaXJ0IiwgIkN5cnMiLCAiRWd5ZCIsICJFZ3loIiwgIkVneXAiLCAKKyAgICAgICAgICAgICJHZW9rIiwgIkhhbnMiLCAiSGFudCIsICJIbW5nIiwgIkh1bmciLCAiSW5kcyIsICJKYXZhIiwgIkthbGkiLCAiTGF0ZiIsICJMYXRnIiwgCisgICAgICAgICAgICAiTGVwYyIsICJMaW5hIiwgIk1hbmQiLCAiTWF5YSIsICJNZXJvIiwgIk5rb28iLCAiT3JraCIsICJQZXJtIiwgIlBoYWciLCAiUGhueCIsIAorICAgICAgICAgICAgIlBscmQiLCAiUm9ybyIsICJTYXJhIiwgIlN5cmUiLCAiU3lyaiIsICJTeXJuIiwgIlRlbmciLCAiVmFpaSIsICJWaXNwIiwgIlhzdXgiLCAKKyAgICAgICAgICAgICJaeHh4IiwgIlp6enoiLAorICAgICAgICB9OworICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yKGk9VVNjcmlwdC5CQUxJTkVTRTsgaTxVU2NyaXB0LkNPREVfTElNSVQ7IGkrKywgaisrKXsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gVVNjcmlwdC5nZXROYW1lKGkpOworICAgICAgICAgICAgaWYobmFtZT09bnVsbCB8fCAhbmFtZS5lcXVhbHMoZXhwZWN0ZWRMb25nW2pdKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0TmFtZSBmYWlsZWQgZm9yIGNvZGUiKyBpICsgbmFtZSArIiE9IiArZXhwZWN0ZWRMb25nW2pdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5hbWUgPSBVU2NyaXB0LmdldFNob3J0TmFtZShpKTsKKyAgICAgICAgICAgIGlmKG5hbWU9PW51bGwgfHwgIW5hbWUuZXF1YWxzKGV4cGVjdGVkU2hvcnRbal0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRTaG9ydE5hbWUgZmFpbGVkIGZvciBjb2RlIisgaSArIG5hbWUgKyIhPSIgK2V4cGVjdGVkU2hvcnRbal0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvcihpPTA7IGk8ZXhwZWN0ZWRMb25nLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGludFtdIHJldCA9IFVTY3JpcHQuZ2V0Q29kZShleHBlY3RlZFNob3J0W2ldKTsKKyAgICAgICAgICAgIGlmKHJldC5sZW5ndGg+MSl7CisgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0Q29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCBudW1iZXIgb2YgY29kZXMgZm9yIHNjcmlwdCIrIGV4cGVjdGVkU2hvcnRbaV0rIi4gRVhQRUNURUQ6IDEgR09UOiAiKyByZXQubGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHJldFswXSE9IChVU2NyaXB0LkJBTElORVNFK2kpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRDb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIGNvZGUgZm9yIHNjcmlwdCIrIGV4cGVjdGVkU2hvcnRbaV0rIi4gRVhQRUNURUQ6ICIrIChVU2NyaXB0LkJBTElORVNFK2kpKyIgR09UOiAlaVxuIisgcmV0WzBdICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHRSdW4uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0UnVuLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUwOGI0NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0UnVuLmphdmEKQEAgLTAsMCArMSw0MDIgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdFJ1bjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworcHVibGljIGNsYXNzIFRlc3RVU2NyaXB0UnVuIGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgVGVzdFVTY3JpcHRSdW4oKQorICAgIHsKKyAgICAgICAgLy8gbm90aGluZworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RVU2NyaXB0UnVuKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFJ1blRlc3REYXRhCisgICAgeworICAgICAgICBTdHJpbmcgcnVuVGV4dDsKKyAgICAgICAgaW50ICAgIHJ1blNjcmlwdDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBSdW5UZXN0RGF0YShTdHJpbmcgdGhlVGV4dCwgaW50IHRoZVNjcmlwdENvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJ1blRleHQgICA9IHRoZVRleHQ7CisgICAgICAgICAgICBydW5TY3JpcHQgPSB0aGVTY3JpcHRDb2RlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFJ1blRlc3REYXRhW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgeworICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTAwMjBcdTA5NDZcdTA5MzlcdTA5M0ZcdTA5MjhcdTA5NERcdTA5MjZcdTA5NDBcdTAwMjAiLCBVU2NyaXB0LkRFVkFOQUdBUkkpLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NEFcdTA2MjlcdTAwMjAiLCBVU2NyaXB0LkFSQUJJQyksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOVx1MDAyMCIsIFVTY3JpcHQuQ1lSSUxMSUMpLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJFbmdsaXNoICgiLCBVU2NyaXB0LkxBVElOKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHUwRTQ0XHUwRTE3XHUwRTIyIiwgVVNjcmlwdC5USEFJKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiKSAiLCBVU2NyaXB0LkxBVElOKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHU2RjIyXHU1Qjc1IiwgVVNjcmlwdC5IQU4pLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTMwNjhcdTMwNzJcdTMwODlcdTMwNENcdTMwNkFcdTMwNjgiLCBVU2NyaXB0LkhJUkFHQU5BKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHUzMEFCXHUzMEJGXHUzMEFCXHUzMENBIiwgVVNjcmlwdC5LQVRBS0FOQSksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1RDgwMVx1REMwMFx1RDgwMVx1REMwMVx1RDgwMVx1REMwMlx1RDgwMVx1REMwMyIsIFVTY3JpcHQuREVTRVJFVCksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiKCgoKCgoKCgoKGFiYykpKSkpKSkpKSkiLCBVU2NyaXB0LkxBVElOKQorICAgICAgICB9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgcGFkZGluZyA9ICJUaGlzIHN0cmluZyBpcyB1c2VkIGZvciBwYWRkaW5nLi4uIjsKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgQ2hlY2tTY3JpcHRSdW5zKFVTY3JpcHRSdW4gc2NyaXB0UnVuLCBpbnRbXSBydW5TdGFydHMsIFJ1blRlc3REYXRhW10gdGVzdERhdGEpCisgICAgeworICAgICAgICBpbnQgcnVuLCBydW5TdGFydCwgcnVuTGltaXQ7CisgICAgICAgIGludCBydW5TY3JpcHQ7CisKKyAgICAgICAgLyogaXRlcmF0ZSBvdmVyIGFsbCB0aGUgcnVucyAqLworICAgICAgICBydW4gPSAwOworICAgICAgICB3aGlsZSAoc2NyaXB0UnVuLm5leHQoKSkgeworICAgICAgICAgICAgcnVuU3RhcnQgID0gc2NyaXB0UnVuLmdldFNjcmlwdFN0YXJ0KCk7CisgICAgICAgICAgICBydW5MaW1pdCAgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0TGltaXQoKTsKKyAgICAgICAgICAgIHJ1blNjcmlwdCA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRDb2RlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChydW5TdGFydCAhPSBydW5TdGFydHNbcnVuXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3Qgc3RhcnQgb2Zmc2V0IGZvciBydW4gIiArIHJ1biArICI6IGV4cGVjdGVkICIgKyBydW5TdGFydHNbcnVuXSArICIsIGdvdCAiICsgcnVuU3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocnVuTGltaXQgIT0gcnVuU3RhcnRzW3J1biArIDFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBsaW1pdCBvZmZzZXQgZm9yIHJ1biAiICsgcnVuICsgIjogZXhwZWN0ZWQgIiArIHJ1blN0YXJ0c1tydW4gKyAxXSArICIsIGdvdCAiICsgcnVuTGltaXQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocnVuU2NyaXB0ICE9IHRlc3REYXRhW3J1bl0ucnVuU2NyaXB0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBzY3JpcHQgZm9yIHJ1biAiICsgcnVuICsgIjogZXhwZWN0ZWQgXCIiICsgVVNjcmlwdC5nZXROYW1lKHRlc3REYXRhW3J1bl0ucnVuU2NyaXB0KSArICJcIiwgZ290IFwiIiArIFVTY3JpcHQuZ2V0TmFtZShydW5TY3JpcHQpICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJ1biArPSAxOworCisgICAgICAgICAgICAvKiBzdG9wIHdoZW4gd2UndmUgc2VlbiBhbGwgdGhlIHJ1bnMgd2UgZXhwZWN0IHRvIHNlZSAqLworICAgICAgICAgICAgaWYgKHJ1biA+PSB0ZXN0RGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbXBsYWluIGlmIHdlIGRpZG4ndCBzZWUgdGhlbiBudW1iZXIgb2YgcnVucyB3ZSBleHBlY3RlZCAqLworICAgICAgICBpZiAocnVuICE9IHRlc3REYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBudW1iZXIgb2YgcnVuczogZXhwZWN0ZWQgIiArIHRlc3REYXRhLmxlbmd0aCArICIsIGdvdCAiICsgcnVuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb250c3RydWN0aW9uKCkKKyAgICB7CisgICAgICAgIFVTY3JpcHRSdW4gc2NyaXB0UnVuID0gbnVsbDsKKyAgICAgICAgY2hhcltdIG51bGxDaGFycyAgPSBudWxsLCBkdW1teUNoYXJzICA9IHsnZCcsICd1JywgJ20nLCAnbScsICd5J307CisgICAgICAgIFN0cmluZyBudWxsU3RyaW5nID0gbnVsbCwgZHVtbXlTdHJpbmcgPSBuZXcgU3RyaW5nKGR1bW15Q2hhcnMpOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIDAsIDEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMCwgMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIDEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDAsIDEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAwLCAxMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAxMDAsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgMCwgLTEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCAwLCA2KTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgMCwgNikgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgNiwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXksIDYsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH1jYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgMCwgLTEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIC0xMDAsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15LCAtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15Q2hhcnMsIDAsIDYpOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15Q2hhcnMsIDAsIDYpIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgNiwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgNiwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15Q2hhcnMsIDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15Q2hhcnMsIDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXksIC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIGlmKHNjcmlwdFJ1biE9bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIEV4Y2VwdGlvbiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNldCgpCisgICAgeworICAgICAgICBVU2NyaXB0UnVuIHNjcmlwdFJ1biA9IG51bGw7CisgICAgICAgIGNoYXJbXSBkdW1teSA9IHsnZCcsICd1JywgJ20nLCAnbScsICd5J307CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDAsIDEwMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDAsIDEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCgxMDAsIDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgxMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoMCwgLTEwMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDAsIDYpOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgNikgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChkdW1teSwgNiwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KGR1bW15LCA2LCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9Y2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgLTEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChkdW1teSwgLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KGR1bW15LCAtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KGR1bW15LCAwLCBkdW1teS5sZW5ndGgpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KGR1bW15LCAwLCBkdW1teS5sZW5ndGgpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoMCwgNik7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDAsIDYpIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoNiwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDYsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bnMoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgUnVuVGVzdERhdGFbXSB0ZXN0ID0gdGVzdERhdGFbaV07CisgICAgICAgICAgICBpbnQgc3RyaW5nTGltaXQgPSAwOworICAgICAgICAgICAgaW50W10gcnVuU3RhcnRzID0gbmV3IGludFt0ZXN0Lmxlbmd0aCArIDFdOworICAgICAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiIjsKKyAgICAgICAgICAgIFVTY3JpcHRSdW4gc2NyaXB0UnVuID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogRmlsbCBpbiB0aGUgdGVzdCBzdHJpbmcgYW5kIHRoZSBydW5TdGFydHMgYXJyYXkuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZvciAoaW50IHJ1biA9IDA7IHJ1biA8IHRlc3QubGVuZ3RoOyBydW4gKz0gMSkgeworICAgICAgICAgICAgICAgIHJ1blN0YXJ0c1tydW5dID0gc3RyaW5nTGltaXQ7CisgICAgICAgICAgICAgICAgc3RyaW5nTGltaXQgKz0gdGVzdFtydW5dLnJ1blRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgdGVzdFN0cmluZyAgKz0gdGVzdFtydW5dLnJ1blRleHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIFRoZSBsaW1pdCBvZiB0aGUgbGFzdCBydW4gKi8gCisgICAgICAgICAgICBydW5TdGFydHNbdGVzdC5sZW5ndGhdID0gc3RyaW5nTGltaXQ7CisgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bih0ZXN0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bih0ZXN0U3RyaW5nKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoKSBvbiBhIHZhbGlkIFVTY3JpcHRSdW4gcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4odGVzdFN0cmluZy50b0NoYXJBcnJheSgpKTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bih0ZXN0U3RyaW5nLnRvQ2hhckFycmF5KCkpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCgpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgpIG9uIGEgdmFsaWQgVVNjcmlwdFJ1biBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdFJ1bi5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5uZXh0KCkgb24gYW4gZW1wdHkgVVNjcmlwdFJ1biByZXR1cm5lZCB0cnVlISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQodGVzdFN0cmluZywgMCwgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KHRlc3RTdHJpbmcsIDAsIHRlc3RTdHJpbmcubGVuZ3RoKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KHRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSwgMCwgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KHRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSwgMCwgdGVzdFN0cmluZy5sZW5ndGgpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHBhZGRlZFRlc3RTdHJpbmcgPSBwYWRkaW5nICsgdGVzdFN0cmluZyArIHBhZGRpbmc7CisgICAgICAgICAgICBpbnQgc3RhcnRPZmZzZXQgPSBwYWRkaW5nLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGNvdW50ID0gdGVzdFN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgcnVuID0gMDsgcnVuIDwgcnVuU3RhcnRzLmxlbmd0aDsgcnVuICs9IDEpIHsKKyAgICAgICAgICAgICAgICBydW5TdGFydHNbcnVuXSArPSBzdGFydE9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQocGFkZGVkVGVzdFN0cmluZywgc3RhcnRPZmZzZXQsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQocGFkZGVkVGVzdFN0cmluZywgc3RhcnRPZmZzZXQsIGNvdW50KSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KHBhZGRlZFRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSwgc3RhcnRPZmZzZXQsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQocGFkZGVkVGVzdFN0cmluZy50b0NoYXJBcnJheSgpLCBzdGFydE9mZnNldCwgY291bnQpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDYXNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJlNjZlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDYXNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsODQ0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworCisvKioKKyogPHA+VGVzdGluZyBjaGFyYWN0ZXIgY2FzaW5nPC9wPgorKiA8cD5Nb3N0bHkgZm9sbG93aW5nIHRoZSB0ZXN0IGNhc2VzIGluIHN0cmNhc2UuY3BwIGZvciBJQ1U8L3A+CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBtYXJjaCAxNCAyMDAyCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJDYXNlVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFVDaGFyYWN0ZXJDYXNlVGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVUNoYXJhY3RlckNhc2VUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3RlckNhc2VUZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgdGhlIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIGZ1bmN0aW9uIG9mIFVDaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhcmFjdGVyKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ0hBUkFDVEVSX0xPV0VSXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKENIQVJBQ1RFUl9MT1dFUl9baV0pICYmCisgICAgICAgICAgICAgICAgIVVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBpc0xvd2VyQ2FzZSB0ZXN0IGZvciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIoQ0hBUkFDVEVSX1VQUEVSX1tpXSkgJiYKKyAgICAgICAgICAgICAgICAhKFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoQ0hBUkFDVEVSX1VQUEVSX1tpXSkgfHwKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoQ0hBUkFDVEVSX1VQUEVSX1tpXSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgaXNVcHBlckNhc2UgdGVzdCBmb3IgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgaGV4KENIQVJBQ1RFUl9VUFBFUl9baV0pKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChDSEFSQUNURVJfTE9XRVJfW2ldICE9CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShDSEFSQUNURVJfVVBQRVJfW2ldKSB8fAorICAgICAgICAgICAgICAgIChDSEFSQUNURVJfVVBQRVJfW2ldICE9CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShDSEFSQUNURVJfTE9XRVJfW2ldKSAmJgorICAgICAgICAgICAgICAgIENIQVJBQ1RFUl9VUFBFUl9baV0gIT0KKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKENIQVJBQ1RFUl9MT1dFUl9baV0pKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGNhc2UgY29udmVyc2lvbiB0ZXN0IGZvciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoQ0hBUkFDVEVSX1VQUEVSX1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIgdG8gXFx1IiArIGhleChDSEFSQUNURVJfTE9XRVJfW2ldKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoQ0hBUkFDVEVSX0xPV0VSX1tpXSAhPQorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBsb3dlciBjYXNlIGNvbnZlcnNpb24gdGVzdCBmb3IgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgaGV4KENIQVJBQ1RFUl9MT1dFUl9baV0pKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChDSEFSQUNURVJfVVBQRVJfW2ldICE9CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShDSEFSQUNURVJfVVBQRVJfW2ldKSAmJgorICAgICAgICAgICAgICAgIENIQVJBQ1RFUl9VUFBFUl9baV0gIT0KKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKENIQVJBQ1RFUl9VUFBFUl9baV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgdXBwZXIgY2FzZSBjb252ZXJzaW9uIHRlc3QgZm9yIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChDSEFSQUNURVJfVVBQRVJfW2ldKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiT2sgICAgXFx1IiArIGhleChDSEFSQUNURVJfVVBQRVJfW2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgaGV4KENIQVJBQ1RFUl9MT1dFUl9baV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGb2xkaW5nKCkKKyAgICB7CisgICAgICAgIC8vIHRlc3Qgc2ltcGxlIGNhc2UgZm9sZGluZworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEZPTERJTkdfU0lNUExFXy5sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19TSU1QTEVfW2ldLCB0cnVlKSAhPQorICAgICAgICAgICAgICAgIEZPTERJTkdfU0lNUExFX1tpICsgMV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB0cnVlKSBzaG91bGQgYmUgXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baSArIDFdKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX1NJTVBMRV9baV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCkgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZPTERJTkdfU0lNUExFX1tpICsgMV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSBzaG91bGQgYmUgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICArIGhleChGT0xESU5HX1NJTVBMRV9baSArIDFdKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX1NJTVBMRV9baV0sIGZhbHNlKSAhPQorICAgICAgICAgICAgICAgIEZPTERJTkdfU0lNUExFX1tpICsgMl0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBmYWxzZSkgc2hvdWxkIGJlIFxcdSIgKyBoZXgoRk9MRElOR19TSU1QTEVfW2kgKyAyXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19TSU1QTEVfW2ldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRk9MRElOR19TSU1QTEVfW2kgKyAyXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZShcXHUiICsgaGV4KEZPTERJTkdfU0lNUExFX1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSBzaG91bGQgYmUgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICArIGhleChGT0xESU5HX1NJTVBMRV9baSArIDJdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IGZ1bGwgc3RyaW5nIGNhc2UgZm9sZGluZyB3aXRoIGRlZmF1bHQgb3B0aW9uIGFuZCBzZXBhcmF0ZQorICAgICAgICAvLyBidWZmZXJzCisgICAgICAgIGlmICghRk9MRElOR19ERUZBVUxUX1swXS5lcXVhbHMoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgdHJ1ZSkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzBdKSArCisgICAgICAgICAgICAgICAgICAiLCB0cnVlKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgdHJ1ZSkpICsKKyAgICAgICAgICAgICAgICAgICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0RFRkFVTFRfWzBdKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghRk9MRElOR19ERUZBVUxUX1swXS5lcXVhbHMoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCk9IiArIHByZXR0aWZ5KFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMF0sIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0RFRkFVTFRfWzBdKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGlmICghRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMF0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMF0sIGZhbHNlKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMF0pICsKKyAgICAgICAgICAgICAgICAgICIsIGZhbHNlKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgZmFsc2UpKQorICAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBiZSAiICsgcHJldHRpZnkoRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMF0pKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1swXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzBdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzBdKSArCisgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9IiArIHByZXR0aWZ5KFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMF0sIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSkKKyAgICAgICAgICAgICAgICAgICsgIiBzaG91bGQgYmUgIiArIHByZXR0aWZ5KEZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzBdKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIUZPTERJTkdfREVGQVVMVF9bMV0uZXF1YWxzKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIHRydWUpKSkgeworICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzFdKSArCisgICAgICAgICAgICAgICAgICIsIHRydWUpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCB0cnVlKSkKKyAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBiZSAiICsgcHJldHRpZnkoRk9MRElOR19ERUZBVUxUX1sxXSkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFGT0xESU5HX0RFRkFVTFRfWzFdLmVxdWFscyhVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1sxXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBiZSAiICsgcHJldHRpZnkoRk9MRElOR19ERUZBVUxUX1sxXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBhbHRlcm5hdGUgaGFuZGxpbmcgZm9yIGRvdHRlZCBJL2RvdGxlc3MgaSAoVSswMTMwLCBVKzAxMzEpCisgICAgICAgIGlmICghRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMV0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1sxXSwgZmFsc2UpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBwcmV0dGlmeShGT0xESU5HX01JWEVEX1sxXSkgKworICAgICAgICAgICAgICAgICAgIiwgZmFsc2UpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBmYWxzZSkpCisgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1sxXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIUZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzFdLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1sxXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBwcmV0dGlmeShGT0xESU5HX01JWEVEX1sxXSkgKworICAgICAgICAgICAgICAgICAgIiwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkpCisgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIKKyAgICAgICAgICAgICAgICAgICsgcHJldHRpZnkoRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgdGhlIHN0cmluZ3MgY2FzZSBtYXBwaW5nIG1ldGhvZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VXBwZXIoKQorICAgIHsKKyAgICAgICAgLy8gdXBwZXJjYXNlIHdpdGggcm9vdCBsb2NhbGUgYW5kIGluIHRoZSBzYW1lIGJ1ZmZlcgorICAgICAgICBpZiAoIVVQUEVSX1JPT1RfLmVxdWFscyhVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVQUEVSX0JFRk9SRV8pKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgIiArIFVQUEVSX0JFRk9SRV8gKyAiIGFmdGVyIHVwcGVyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBVUFBFUl9ST09UXyArICIgaW5zdGVhZCBnb3QgIiArCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVQUEVSX0JFRk9SRV8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHVwcGVyY2FzZSB3aXRoIHR1cmtpc2ggbG9jYWxlIGFuZCBzZXBhcmF0ZSBidWZmZXJzCisgICAgICAgIGlmICghVVBQRVJfVFVSS0lTSF8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBQRVJfQkVGT1JFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCAiICsgVVBQRVJfQkVGT1JFXyArCisgICAgICAgICAgICAgICAgICAiIGFmdGVyIHR1cmtpc2gtc2Vuc2l0aXZlIHVwcGVyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBVUFBFUl9UVVJLSVNIXyArICIgaW5zdGVhZCBvZiAiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVFVSS0lTSF9MT0NBTEVfLCBVUFBFUl9CRUZPUkVfKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyB1cHBlcmNhc2UgYSBzaG9ydCBzdHJpbmcgd2l0aCByb290IGxvY2FsZQorICAgICAgICBpZiAoIVVQUEVSX01JTklfVVBQRVJfLmVxdWFscyhVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVQUEVSX01JTklfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiB0b1VwcGVyKHJvb3QgbG9jYWxlKT1cIiIgKyBVUFBFUl9NSU5JXyArCisgICAgICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgVVBQRVJfTUlOSV9VUFBFUl8gKyAiXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9UT1BLQVBfLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShTSEFSRURfTE9XRVJDQVNFX1RPUEtBUF8pKSkgeworICAgICAgICAgICAgZXJybG4oInRvVXBwZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKworICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9UT1BLQVBfICsgIlwiLCBnb3QgXCIiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfKSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9UVVJLSVNIXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFRVUktJU0hfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b1VwcGVyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsKKyAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfVFVSS0lTSF8gKyAiXCIsIGdvdCBcIiIgKworICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfKSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9HRVJNQU5fLmVxdWFscygKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKEdFUk1BTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b1VwcGVyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgU0hBUkVEX1VQUEVSQ0FTRV9HRVJNQU5fCisgICAgICAgICAgICAgICAgICArICJcIiwgZ290IFwiIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fKSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9HUkVFS18uZXF1YWxzKAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18pKSkgeworICAgICAgICAgICAgZXJybG4oInRvTG93ZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBTSEFSRURfVVBQRVJDQVNFX0dSRUVLXyArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9MT1dFUkNBU0VfR1JFRUtfKSArICJcIi4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RMb3dlcigpCisgICAgeworICAgICAgICBpZiAoIUxPV0VSX1JPT1RfLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExPV0VSX0JFRk9SRV8pKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgIiArIExPV0VSX0JFRk9SRV8gKyAiIGFmdGVyIGxvd2VyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBMT1dFUl9ST09UXyArICIgaW5zdGVhZCBvZiAiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTE9XRVJfQkVGT1JFXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbG93ZXJjYXNlIHdpdGggdHVya2lzaCBsb2NhbGUKKyAgICAgICAgaWYgKCFMT1dFUl9UVVJLSVNIXy5lcXVhbHMoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9XRVJfQkVGT1JFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCAiICsgTE9XRVJfQkVGT1JFXyArCisgICAgICAgICAgICAgICAgICAiIGFmdGVyIHR1cmtpc2gtc2Vuc2l0aXZlIGxvd2VyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBMT1dFUl9UVVJLSVNIXyArICIgaW5zdGVhZCBvZiAiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLCBMT1dFUl9CRUZPUkVfKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTSEFSRURfTE9XRVJDQVNFX0lTVEFOQlVMXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFNIQVJFRF9VUFBFUkNBU0VfSVNUQU5CVUxfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCIxLiB0b0xvd2VyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsKKyAgICAgICAgICAgICAgICAgIFNIQVJFRF9MT1dFUkNBU0VfSVNUQU5CVUxfICsgIlwiLCBnb3QgXCIiICsKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXykgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVNIQVJFRF9MT1dFUkNBU0VfVFVSS0lTSF8uZXF1YWxzKAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9JU1RBTkJVTF8pKSkgeworICAgICAgICAgICAgZXJybG4oIjIuIHRvTG93ZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKworICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9UVVJLSVNIXyArICJcIiwgZ290IFwiIiArCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFRVUktJU0hfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9JU1RBTkJVTF8pICsgIlwiLiIpOworICAgICAgICB9CisgICAgICAgIGlmICghU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18uZXF1YWxzKAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR1JFRUtfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfR1JFRUtfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xvd2VyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18gKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShHUkVFS19MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfR1JFRUtfKSArICJcIi4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaXRsZSgpCisgICAgeworICAgICAgICAgdHJ5eyAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVElUTEVfREFUQV8ubGVuZ3RoOykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXN0ID0gVElUTEVfREFUQV9baSsrXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBUSVRMRV9EQVRBX1tpKytdOworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBuZXcgTG9jYWxlKFRJVExFX0RBVEFfW2krK10pOworICAgICAgICAgICAgICAgIGludCBicmVha1R5cGUgPSBJbnRlZ2VyLnBhcnNlSW50KFRJVExFX0RBVEFfW2krK10pOworICAgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrVHlwZSA+PSAwID8KKyAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IuZ2V0QnJlYWtJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLCBicmVha1R5cGUpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UobG9jYWxlLCB0ZXN0LCBpdGVyKTsKKyAgICAgICAgICAgICAgICBpZiAoIWV4cGVjdGVkLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0aXRsZWNhc2luZyBmb3IgIiArIHByZXR0aWZ5KHRlc3QpICsgIiBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXR0aWZ5KGV4cGVjdGVkKSArICIgYnV0IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldHRpZnkocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgZmluZCBkYXRhIGZvciBCcmVha0l0ZXJhdG9ycyIpOworICAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGVjaWFsKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgU1BFQ0lBTF9MT0NBTEVTXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGludCAgICBqICAgICAgPSBpICogMzsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBTUEVDSUFMX0xPQ0FMRVNfW2ldOworICAgICAgICAgICAgU3RyaW5nIHN0ciAgICA9IFNQRUNJQUxfREFUQV9bal07CisgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoIVNQRUNJQUxfREFUQV9baiArIDFdLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UobG9jYWxlLCBzdHIpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgbG93ZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBoZXgoU1BFQ0lBTF9EQVRBX1tqICsgMV0pCisgICAgICAgICAgICAgICAgICAgICAgICArICIgZm9yIGxvY2FsZSAiICsgbG9jYWxlLnRvU3RyaW5nKCkgKyAiIGJ1dCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFTUEVDSUFMX0RBVEFfW2ogKyAyXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIHVwcGVyY2FzaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChzdHIpICsgIiBleHBlY3RlZCAiICsgU1BFQ0lBTF9EQVRBX1tqICsgMl0KKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBmb3IgbG9jYWxlICIgKyBsb2NhbGUudG9TdHJpbmcoKSArICIgYnV0IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmICghU1BFQ0lBTF9EQVRBX1tqICsgMV0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShzdHIpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgbG93ZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBTUEVDSUFMX0RBVEFfW2ogKyAxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGJ1dCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFTUEVDSUFMX0RBVEFfW2ogKyAyXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIHVwcGVyY2FzaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChzdHIpICsgIiBleHBlY3RlZCAiICsgU1BFQ0lBTF9EQVRBX1tqICsgMl0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gdHVya2lzaCAmIGF6ZXJiYWlqYW5pIGRvdGxlc3MgaSAmIGRvdHRlZCBJCisgICAgICAgIC8vIHJlbW92ZSBkb3QgYWJvdmUgaWYgdGhlcmUgd2FzIGEgY2FwaXRhbCBJIGJlZm9yZSBhbmQgdGhlcmUgYXJlIG5vCisgICAgICAgIC8vIG1vcmUgYWNjZW50cyBhYm92ZQorICAgICAgICBpZiAoIVNQRUNJQUxfRE9UVEVEX0xPV0VSX1RVUktJU0hfLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRVUktJU0hfTE9DQUxFXywgU1BFQ0lBTF9ET1RURURfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBkb3RzLnRvTG93ZXIodHIpPVwiIiArIFNQRUNJQUxfRE9UVEVEXyArCisgICAgICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgU1BFQ0lBTF9ET1RURURfTE9XRVJfVFVSS0lTSF8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RURURfKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTUEVDSUFMX0RPVFRFRF9MT1dFUl9HRVJNQU5fLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VSTUFOX0xPQ0FMRV8sIFNQRUNJQUxfRE9UVEVEXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b0xvd2VyKGRlKT1cIiIgKyBTUEVDSUFMX0RPVFRFRF8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UVEVEX0xPV0VSX0dFUk1BTl8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVFRFRF8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxpdGh1YW5pYW4gZG90IGFib3ZlIGluIHVwcGVyY2FzaW5nCisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfTElUSFVBTklBTl8uZXF1YWxzKAorICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoTElUSFVBTklBTl9MT0NBTEVfLCBTUEVDSUFMX0RPVF9BQk9WRV8pKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIGRvdHMudG9VcHBlcihsdCk9XCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfICsKKyAgICAgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9MSVRIVUFOSUFOXyArCisgICAgICAgICAgICAgICAgICAiXCIgYnV0IGdvdCAiICsgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMSVRIVUFOSUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV8pKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIVNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSX0dFUk1BTl8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VSTUFOX0xPQ0FMRV8sIFNQRUNJQUxfRE9UX0FCT1ZFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b1VwcGVyKGRlKT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSX0dFUk1BTl8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxpdGh1YW5pYW4gYWRkcyBkb3QgYWJvdmUgdG8gaSBpbiBsb3dlcmNhc2luZyBpZiB0aGVyZSBhcmUgbW9yZQorICAgICAgICAvLyBhYm92ZSBhY2NlbnRzCisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfTElUSFVBTklBTl8uZXF1YWxzKAorICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMSVRIVUFOSUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b0xvd2VyKGx0KT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFX0xPV0VSX0xJVEhVQU5JQU5fICsKKyAgICAgICAgICAgICAgICAgICJcIiBidXQgZ290ICIgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExJVEhVQU5JQU5fTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXykpOworICAgICAgICB9CisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfR0VSTUFOXy5lcXVhbHMoCisgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdFUk1BTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8pKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIGRvdHMudG9Mb3dlcihkZSk9XCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfICsKKyAgICAgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9HRVJNQU5fICsKKyAgICAgICAgICAgICAgICAgICJcIiBidXQgZ290ICIgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdFUk1BTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0cyBmb3IgY2FzZSBtYXBwaW5nIGluIHRoZSBmaWxlIFNwZWNpYWxDYXNpbmcudHh0CisgICAgICogVGhpcyBtZXRob2QgcmVhZHMgaW4gU3BlY2lhbENhc2luZy50eHQgZmlsZSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKyAgICAgKiBBIGRlZmF1bHQgcGF0aCBpcyBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc3JjIHBhdGgsIGhvd2V2ZXIgdGhlIHVzZXIKKyAgICAgKiBjb3VsZCBzZXQgYSBzeXN0ZW0gcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkaXJlY3RvcnkgcGF0aC48YnI+CisgICAgICogZS5nLiBqYXZhIC1EVW5pY29kZURhdGE9ImRhdGFfZGlyX3BhdGgiIGNvbS5pYm0uZGV2LnRlc3QubGFuZy5VQ2hhcmFjdGVyVGVzdAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGVjaWFsQ2FzaW5nVHh0KCkKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICAvLyByZWFkaW5nIGluIHRoZSBTcGVjaWFsQ2FzaW5nIGZpbGUKKyAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGlucHV0ID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaWNvZGUvU3BlY2lhbENhc2luZy50eHQiKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gaW5wdXQucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwIHx8IHMuY2hhckF0KDApID09ICcjJykgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgY2hzdHJbXSA9IGdldFVuaWNvZGVTdHJpbmdzKHMpOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmZXIgICA9IG5ldyBTdHJpbmdCdWZmZXIoY2hzdHJbMF0pOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBsb3dlcmJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoY2hzdHJbMV0pOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB1cHBlcmJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoY2hzdHJbM10pOworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBudWxsOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSA0OyBpIDwgY2hzdHIubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb25kaXRpb24gPSBjaHN0cltpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaHN0cltpXS5jaGFyQXQoMCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBuZXcgTG9jYWxlKGNoc3RyW2ldLCAiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29uZGl0aW9uLmNvbXBhcmVUb0lnbm9yZUNhc2UoIk5vdF9CZWZvcmVfRG90IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR1cm5zIEkgaW50byBkb3RsZXNzIGkKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25kaXRpb24uY29tcGFyZVRvSWdub3JlQ2FzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3JlX0Fib3ZlIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5hcHBlbmQoKGNoYXIpMHgzMDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VyYnVmZmVyLmFwcGVuZCgoY2hhcikweDMwMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJidWZmZXIuYXBwZW5kKChjaGFyKTB4MzAwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25kaXRpb24uY29tcGFyZVRvSWdub3JlQ2FzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZnRlcl9Tb2Z0X0RvdHRlZCIpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJidWZmZXIuaW5zZXJ0KDAsICdpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJidWZmZXIuaW5zZXJ0KDAsICdpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFuZy5lcXVhbHMoInRyIikgfHwgbGFuZy5lcXVhbHMoImF6IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBiZSByZW1vdmVkIHdoZW4gNC4wIGRhdGEgY29tZXMgb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB1cHBlcmJ1ZmZlci5pbnNlcnQgdW5jb21tZW50ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGppdHRlcmJ1ZyAyMzQ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoc3RyW2ldID0gIkFmdGVyX0kiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJidWZmZXIuZGVsZXRlQ2hhckF0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5kZWxldGVDaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgLS07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ1x1MDEzMCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJidWZmZXIuaW5zZXJ0KDAsICdJJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZpbmFsX1NpZ21hIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5pbnNlcnQoMCwgJ2MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5pbnNlcnQoMCwgJ2MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ0MnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25kaXRpb24uY29tcGFyZVRvSWdub3JlQ2FzZSgiQWZ0ZXJfSSIpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJidWZmZXIuaW5zZXJ0KDAsICdJJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJidWZmZXIuaW5zZXJ0KDAsICdpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFuZy5lcXVhbHMoInRyIikgfHwgbGFuZy5lcXVhbHMoImF6IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJidWZmZXIuaW5zZXJ0KDAsICdJJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoc3RyWzBdID0gc3RyYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgY2hzdHJbMV0gPSBsb3dlcmJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGNoc3RyWzNdID0gdXBwZXJidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoc3RyWzBdKS5lcXVhbHMoY2hzdHJbMV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b0xvd2VyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clsxXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2hzdHJbMF0pKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoc3RyWzBdKS5lcXVhbHMoY2hzdHJbM10pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b1VwcGVyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clszXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2hzdHJbMF0pKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIGNoc3RyWzBdKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hzdHJbMV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b0xvd2VyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clsxXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UobG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHN0clswXSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBjaHN0clswXSkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoc3RyWzNdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4ocyk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogdG9VcHBlckNhc2UgZm9yIGNoYXJhY3RlciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzBdKSArICIsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5lc2NhcGUoY2hzdHJbM10pICsgIiBidXQgcmVzdWx0ZWQgaW4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hzdHJbMF0pKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnB1dC5jbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VXBwZXJMb3dlcigpCisgICAgeworICAgICAgICBpbnQgdXBwZXJbXSA9IHsweDAwNDEsIDB4MDA0MiwgMHgwMGIyLCAweDAxYzQsIDB4MDFjNiwgMHgwMWM5LCAweDAxYzgsCisgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzksIDB4MDAwY307CisgICAgICAgIGludCBsb3dlcltdID0gezB4MDA2MSwgMHgwMDYyLCAweDAwYjIsIDB4MDFjNiwgMHgwMWM2LCAweDAxYzksIDB4MDFjOSwKKyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOSwgMHgwMDBjfTsKKyAgICAgICAgU3RyaW5nIHVwcGVyVGVzdCA9ICJhYmNkZWZnMTIzaGlqLj86a2xtbm8iOworICAgICAgICBTdHJpbmcgbG93ZXJUZXN0ID0gIkFCQ0RFRkcxMjNISUouPzpLTE1OTyI7CisKKyAgICAgICAgLy8gQ2hlY2tzIExldHRlckxpa2UgU3ltYm9scyB3aGljaCB3ZXJlIHByZXZpb3VzbHkgYSBzb3VyY2Ugb2YKKyAgICAgICAgLy8gY29uZnVzaW9uIFtCZXJ0cmFuZCBBLiBELiAwMi8wNC85OF0KKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MjEwMDsgaSA8IDB4MjEzODsgaSArKykgeworICAgICAgICAgICAgLyogVW5pY29kZSA1LjAgYWRkcyBsb3dlcmNhc2UgVSsyMTRFIChUVVJORUQgU01BTEwgRikgdG8gVSsyMTMyIChUVVJORUQgQ0FQSVRBTCBGKSAqLworICAgICAgICAgICAgaWYgKGkgIT0gMHgyMTI2ICYmIGkgIT0gMHgyMTJhICYmIGkgIT0gMHgyMTJiICYmIGkhPTB4MjEzMikgeworICAgICAgICAgICAgICAgIGlmIChpICE9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpIHsgLy8gaXRzZWxmCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIHdpdGggaXRzZWxmOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChpLCA0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpICE9IFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBjYXNlIGNvbnZlcnNpb24gd2l0aCBpdHNlbGY6IFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGksIDQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1cHBlci5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKHVwcGVyW2ldKSAhPSBsb3dlcltpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMRUQgVUNoYXJhY3Rlci50b2xvd2VyKCkgZm9yIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodXBwZXJbaV0sIDQpCisgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQgXFx1IiArIFV0aWxpdHkuaGV4KGxvd2VyW2ldLCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEdvdCBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UodXBwZXJbaV0pLCA0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oInRlc3RpbmcgdXBwZXIgbG93ZXIiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1cHBlclRlc3QubGVuZ3RoKCk7IGkgKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHRvIHVwcGVyIHRvIGxvd2VyIik7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcih1cHBlclRlc3QuY2hhckF0KGkpKSAmJgorICAgICAgICAgICAgICAgICFVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKHVwcGVyVGVzdC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBpc0xvd2VyQ2FzZSB0ZXN0IGF0IFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodXBwZXJUZXN0LmNoYXJBdChpKSwgNCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcihsb3dlclRlc3QuY2hhckF0KGkpKQorICAgICAgICAgICAgICAgICAgICAgJiYgIVVDaGFyYWN0ZXIuaXNVcHBlckNhc2UobG93ZXJUZXN0LmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGlzVXBwZXJDYXNlIHRlc3QgYXQgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgobG93ZXJUZXN0LmNoYXJBdChpKSwgNCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodXBwZXJUZXN0LmNoYXJBdChpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UobG93ZXJUZXN0LmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGNhc2UgY29udmVyc2lvbiBmcm9tIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgobG93ZXJUZXN0LmNoYXJBdChpKSwgNCkgKyAiIFRvIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodXBwZXJUZXN0LmNoYXJBdChpKSwgNCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobG93ZXJUZXN0LmNoYXJBdChpKQorICAgICAgICAgICAgICAgICAgICAhPSBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKHVwcGVyVGVzdC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBjYXNlIGNvbnZlcnNpb24gOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHVwcGVyVGVzdC5jaGFyQXQoaSksIDQpICsgIiBUbyBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGxvd2VyVGVzdC5jaGFyQXQoaSksIDQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHVwcGVyVGVzdC5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZSh1cHBlclRlc3QuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIHdpdGggaXRzZWxmOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHVwcGVyVGVzdC5jaGFyQXQoaSkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGxvd2VyVGVzdC5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb3dlclRlc3QuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIHdpdGggaXRzZWxmOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGxvd2VyVGVzdC5jaGFyQXQoaSkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiZG9uZSB0ZXN0aW5nIHVwcGVyIExvd2VyIik7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLSB0ZXN0IGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBUVVJLSVNIX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJ0ciIsICJUUiIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBHRVJNQU5fTE9DQUxFXyA9IG5ldyBMb2NhbGUoImRlIiwgIkRFIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIEdSRUVLX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJlbCIsICJHUiIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBFTkdMSVNIX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJlbiIsICJVUyIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBMSVRIVUFOSUFOX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJsdCIsICJMVCIpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENIQVJBQ1RFUl9VUFBFUl9bXSA9CisgICAgICAgICAgICAgICAgICAgICAgezB4NDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwgMHgwMDQ2LCAweDAwNDcsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMSwgMHgwMGIyLCAweGIzLCAweDAwNDgsIDB4MDA0OSwgMHgwMDRhLCAweDAwMmUsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZiwgMHgwMDNhLCAweDAwNGIsIDB4MDA0YywgMHg0ZCwgMHgwMDRlLCAweDAwNGYsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjNCwgMHgwMWM4LCAweDAwMGMsIDB4MDAwMH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENIQVJBQ1RFUl9MT1dFUl9bXSA9CisgICAgICAgICAgICAgICAgICAgICAgezB4NjEsIDB4MDA2MiwgMHgwMDYzLCAweDAwNjQsIDB4MDA2NSwgMHgwMDY2LCAweDAwNjcsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMSwgMHgwMGIyLCAweGIzLCAweDAwNjgsIDB4MDA2OSwgMHgwMDZhLCAweDAwMmUsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZiwgMHgwMDNhLCAweDAwNmIsIDB4MDA2YywgMHg2ZCwgMHgwMDZlLCAweDAwNmYsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjNiwgMHgwMWM5LCAweDAwMGMsIDB4MDAwMH07CisKKyAgICAvKgorICAgICAqIENhc2VGb2xkaW5nLnR4dCBzYXlzIGFib3V0IGkgYW5kIGl0cyBjb3VzaW5zOgorICAgICAqICAgMDA0OTsgQzsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgICogICAwMDQ5OyBUOyAwMTMxOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgKgorICAgICAqICAgMDEzMDsgRjsgMDA2OSAwMzA3OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgKiAgIDAxMzA7IFQ7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorICAgICAqIFRoYXQncyBhbGwuCisgICAgICogU2VlIENhc2VGb2xkaW5nLnR4dCBhbmQgdGhlIFVuaWNvZGUgU3RhbmRhcmQgZm9yIGhvdyB0byBhcHBseSB0aGUgY2FzZSBmb2xkaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9MRElOR19TSU1QTEVfW10gPSB7CisgICAgICAgIC8vIGlucHV0LCBkZWZhdWx0LCBleGNsdWRlIHNwZWNpYWwgaQorICAgICAgICAweDYxLCAgIDB4NjEsICAweDYxLAorICAgICAgICAweDQ5LCAgIDB4NjksICAweDEzMSwKKyAgICAgICAgMHgxMzAsICAweDEzMCwgMHg2OSwKKyAgICAgICAgMHgxMzEsICAweDEzMSwgMHgxMzEsCisgICAgICAgIDB4ZGYsICAgMHhkZiwgIDB4ZGYsCisgICAgICAgIDB4ZmIwMywgMHhmYjAzLCAweGZiMDMsCisgICAgICAgIDB4MTA0MGUsMHgxMDQzNiwweDEwNDM2LAorICAgICAgICAweDVmZmZmLDB4NWZmZmYsMHg1ZmZmZgorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTERJTkdfTUlYRURfW10gPQorICAgICAgICAgICAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDA0Mlx1MDEzMFx1MDA0OVx1MDEzMVx1MDNkMFx1MDBkZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiQVx1MDBkZlx1MDBiNVx1ZmIwM1x1RDgwMVx1REMwQ1x1MDEzMFx1MDEzMSJ9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT0xESU5HX0RFRkFVTFRfW10gPQorICAgICAgICAgeyJcdTAwNjFcdTAwNjJcdTAwNjlcdTAzMDdcdTAwNjlcdTAxMzFcdTAzYjJcdTAwNzNcdTAwNzNcdTAwNjZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAgICJhc3NcdTAzYmNmZmlcdUQ4MDFcdURDMzRpXHUwMzA3XHUwMTMxIn07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfW10gPQorICAgICAgICAgeyJcdTAwNjFcdTAwNjJcdTAwNjlcdTAxMzFcdTAxMzFcdTAzYjJcdTAwNzNcdTAwNzNcdTAwNjZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAgICJhc3NcdTAzYmNmZmlcdUQ4MDFcdURDMzRpXHUwMTMxIn07CisgICAgLyoqCisgICAgICogIklFU1VTIENIUklTVE9TIgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX0dSRUVLXyA9CisgICAgICAgICJcdTAzOTlcdTAzOTVcdTAzYTNcdTAzYTVcdTAzYTNcdTAwMjBcdTAzYTdcdTAzYTFcdTAzOTlcdTAzYTNcdTAzYTRcdTAzOWZcdTAzYTMiOworICAgIC8qKgorICAgICAqICJpZXN1cyBjaHJpc3RvcyIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18gPQorICAgICAgICAiXHUwM2I5XHUwM2I1XHUwM2MzXHUwM2M1XHUwM2MyXHUwMDIwXHUwM2M3XHUwM2MxXHUwM2I5XHUwM2MzXHUwM2M0XHUwM2JmXHUwM2MyIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9UVVJLSVNIXyA9CisgICAgICAgICJcdTAwNjlcdTAwNzNcdTAwNzRcdTAwNjFcdTAwNmVcdTAwNjJcdTAwNzVcdTAwNmNcdTAwMmNcdTAwMjBcdTAwNmVcdTAwNmZcdTAwNzRcdTAwMjBcdTAwNjNcdTAwNmZcdTAwNmVcdTAwNzNcdTAwNzRcdTAwNjFcdTAwNmVcdTAwNzRcdTAxMzFcdTAwNmVcdTAwNmZcdTAwNzBcdTAwNmNcdTAwNjVcdTAwMjEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX1RVUktJU0hfID0KKyAgICAgICAgIlx1MDA1NFx1MDA0Zlx1MDA1MFx1MDA0Ylx1MDA0MVx1MDA1MFx1MDA0OVx1MDAyMFx1MDA1MFx1MDA0MVx1MDA0Y1x1MDA0MVx1MDA0M1x1MDA0NVx1MDAyY1x1MDAyMFx1MDEzMFx1MDA1M1x1MDA1NFx1MDA0MVx1MDA0ZVx1MDA0Mlx1MDA1NVx1MDA0YyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9VUFBFUkNBU0VfSVNUQU5CVUxfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMzBTVEFOQlVMLCBOT1QgQ09OU1RBTlRJTk9QTEUhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9JU1RBTkJVTF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlcdTAzMDdzdGFuYnVsLCBub3QgY29uc3RhbnRpbm9wbGUhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b3BrYXBcdTAxMzEgcGFsYWNlLCBpc3RhbmJ1bCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9VUFBFUkNBU0VfVE9QS0FQXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVE9QS0FQSSBQQUxBQ0UsIElTVEFOQlVMIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTXHUwMEZDXHUwMERGbWF5cnN0cmFcdTAwREZlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX1VQUEVSQ0FTRV9HRVJNQU5fID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTXHUwMERDU1NNQVlSU1RSQVNTRSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVBQRVJfQkVGT1JFXyA9CisgICAgICAgICAiXHUwMDYxXHUwMDQyXHUwMDY5XHUwM2MyXHUwMGRmXHUwM2MzXHUwMDJmXHVmYjAzXHVmYjAzXHVmYjAzXHVkOTNmXHVkZmZmIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVBQRVJfUk9PVF8gPQorICAgICAgICAgIlx1MDA0MVx1MDA0Mlx1MDA0OVx1MDNhM1x1MDA1M1x1MDA1M1x1MDNhM1x1MDAyZlx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1ZDkzZlx1ZGZmZiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVQUEVSX1RVUktJU0hfID0KKyAgICAgICAgICJcdTAwNDFcdTAwNDJcdTAxMzBcdTAzYTNcdTAwNTNcdTAwNTNcdTAzYTNcdTAwMmZcdTAwNDZcdTAwNDZcdTAwNDlcdTAwNDZcdTAwNDZcdTAwNDlcdTAwNDZcdTAwNDZcdTAwNDlcdWQ5M2ZcdWRmZmYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVUFBFUl9NSU5JXyA9ICJcdTAwZGZcdTAwNjEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVUFBFUl9NSU5JX1VQUEVSXyA9ICJcdTAwNTNcdTAwNTNcdTAwNDEiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPV0VSX0JFRk9SRV8gPQorICAgICAgICAgICAgICAgICAgICAgICJcdTAwNjFcdTAwNDJcdTAwNDlcdTAzYTNcdTAwZGZcdTAzYTNcdTAwMmZcdWQ5M2ZcdWRmZmYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBMT1dFUl9ST09UXyA9CisgICAgICAgICAgICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDA2OVx1MDNjM1x1MDBkZlx1MDNjMlx1MDAyZlx1ZDkzZlx1ZGZmZiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPV0VSX1RVUktJU0hfID0gCisgICAgICAgICAgICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDBkZlx1MDNjMlx1MDAyZlx1ZDkzZlx1ZGZmZiI7CisKKyAgICAvKioKKyAgICAgKiBlYWNoIGl0ZW0gaXMgYW4gYXJyYXkgd2l0aCBpbnB1dCBzdHJpbmcsIHJlc3VsdCBzdHJpbmcsIGxvY2FsZSBJRCwgYnJlYWsgaXRlcmF0b3IKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3BlY2lmaWVkIGFzIGFuIGludCwgc2FtZSBhcyBpbiBCcmVha0l0ZXJhdG9yLktJTkRfKjoKKyAgICAgKiAwPUtJTkRfQ0hBUkFDVEVSICAxPUtJTkRfV09SRCAgMj1LSU5EX0xJTkUgIDM9S0lORF9TRU5URU5DRSAgND1LSU5EX1RJVExFICAtMT1kZWZhdWx0CisgICAgICogc2VlIElDVTRDIHNvdXJjZS90ZXN0L3Rlc3RkYXRhL2Nhc2luZy50eHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVElUTEVfREFUQV9bXSA9IHsKKyAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDAyMFx1MDA2OVx1MDNjMlx1MDAyMFx1MDBkZlx1MDNjM1x1MDAyZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICJcdTAwNDFcdTAwNDJcdTAwMjBcdTAwNDlcdTAzYTNcdTAwMjBcdTAwNTNcdTAwNzNcdTAzYTNcdTAwMmZcdTAwNDZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAiIiwKKyAgICAgICAgIjAiLAorCisgICAgICAgICJcdTAwNjFcdTAwNDJcdTAwMjBcdTAwNjlcdTAzYzJcdTAwMjBcdTAwZGZcdTAzYzNcdTAwMmZcdWZiMDNcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAiXHUwMDQxXHUwMDYyXHUwMDIwXHUwMDQ5XHUwM2MyXHUwMDIwXHUwMDUzXHUwMDczXHUwM2MzXHUwMDJmXHUwMDQ2XHUwMDY2XHUwMDY5XHVkOTNmXHVkZmZmIiwKKyAgICAgICAgIiIsCisgICAgICAgICIxIiwKKworICAgICAgICAiXHUwMmJiYU1lTGlrQSBodUkgUFx1MDE2YiBcdTAyYmJcdTAyYmJcdTAyYmJpQSIsICJcdTAyYmJBbWVsaWthIEh1aSBQXHUwMTZiIFx1MDJiYlx1MDJiYlx1MDJiYklhIiwgLy8gdGl0bGVjYXNlIGZpcnN0IF9jYXNlZF8gbGV0dGVyLCBqNDkzMworICAgICAgICAiIiwKKyAgICAgICAgIi0xIiwKKworICAgICAgICAiIHRIZSBRVUljSyBiUm9XbiIsICIgVGhlIFF1aWNrIEJyb3duIiwKKyAgICAgICAgIiIsCisgICAgICAgICI0IiwKKworICAgICAgICAiXHUwMWM0XHUwMWM1XHUwMWM2XHUwMWM3XHUwMWM4XHUwMWM5XHUwMWNhXHUwMWNiXHUwMWNjIiwgCisgICAgICAgICJcdTAxYzVcdTAxYzVcdTAxYzVcdTAxYzhcdTAxYzhcdTAxYzhcdTAxY2JcdTAxY2JcdTAxY2IiLCAvLyBVQlJLX0NIQVJBQ1RFUgorICAgICAgICAiIiwKKyAgICAgICAgIjAiLAorCisgICAgICAgICJcdTAxYzl1YmF2IGxqdWJhdiIsICJcdTAxYzh1YmF2IExqdWJhdiIsIC8vIExqIHZzLiBMK2oKKyAgICAgICAgIiIsCisgICAgICAgICItMSIsCisKKyAgICAgICAgIidvSCBkT24nVCB0SXRMZUNhU2UgQWZUZVIgbEV0VGVSKyciLCAgIidPaCBEb24ndCBUaXRsZWNhc2UgQWZ0ZXIgTGV0dGVyKyciLAorICAgICAgICAiIiwKKyAgICAgICAgIi0xIgorICAgIH07CisKKworICAgIC8qKgorICAgICAqIDxwPmJhc2ljIHN0cmluZywgbG93ZXIgc3RyaW5nLCB1cHBlciBzdHJpbmcsIHRpdGxlIHN0cmluZzwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9EQVRBX1tdID0geworICAgICAgICBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpICsgVVRGMTYudmFsdWVPZigweDEwNDE0KSwKKyAgICAgICAgVVRGMTYudmFsdWVPZigweDEwNDNDKSArIFVURjE2LnZhbHVlT2YoMHgxMDQzQyksCisgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQxNCkgKyBVVEYxNi52YWx1ZU9mKDB4MTA0MTQpLAorICAgICAgICAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQzQykgKyBVVEYxNi52YWx1ZU9mKDB4MTA0MTQpLAorICAgICAgICAiYWInY2QgXHVGQjAwaVx1MDEzMWlpXHUwMzA3IFx1MDFDOVx1MDFDOVx1MDFDOSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQzQykgKyBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpLAorICAgICAgICAiQUInQ0QgRkZJSUlcdTAxMzAgXHUwMUM3XHUwMUM3XHUwMUM3ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYudmFsdWVPZigweDEwNDE0KSArIFVURjE2LnZhbHVlT2YoMHgxMDQxNCksCisgICAgICAgIC8vIHNpZ21hcyBmb2xsb3dlZC9wcmVjZWRlZCBieSBjYXNlZCBsZXR0ZXJzCisgICAgICAgICJpXHUwMzA3XHUwM2EzXHUwMzA4aiBcdTAzMDdcdTAzYTNcdTAzMDhqIGlcdTAwYWRcdTAzYTNcdTAzMDggXHUwMzA3XHUwM2EzXHUwMzA4ICIsCisgICAgICAgICJpXHUwMzA3XHUwM2MzXHUwMzA4aiBcdTAzMDdcdTAzYzNcdTAzMDhqIGlcdTAwYWRcdTAzYzJcdTAzMDggXHUwMzA3XHUwM2MzXHUwMzA4ICIsCisgICAgICAgICJJXHUwMzA3XHUwM2EzXHUwMzA4SiBcdTAzMDdcdTAzYTNcdTAzMDhKIElcdTAwYWRcdTAzYTNcdTAzMDggXHUwMzA3XHUwM2EzXHUwMzA4ICIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBTUEVDSUFMX0xPQ0FMRVNfW10gPSB7CisgICAgICAgIG51bGwsCisgICAgICAgIEVOR0xJU0hfTE9DQUxFXywKKyAgICAgICAgbnVsbCwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UVEVEXyA9CisgICAgICAgICAgICAiSSBcdTAxMzAgSVx1MDMwNyBJXHUwMzI3XHUwMzA3IElcdTAzMDFcdTAzMDcgSVx1MDMyN1x1MDMwN1x1MDMwMSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UVEVEX0xPV0VSX1RVUktJU0hfID0KKyAgICAgICAgICAgICJcdTAxMzEgaSBpIGlcdTAzMjcgXHUwMTMxXHUwMzAxXHUwMzA3IGlcdTAzMjdcdTAzMDEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVFRFRF9MT1dFUl9HRVJNQU5fID0KKyAgICAgICAgICAgICJpIGlcdTAzMDcgaVx1MDMwNyBpXHUwMzI3XHUwMzA3IGlcdTAzMDFcdTAzMDcgaVx1MDMyN1x1MDMwN1x1MDMwMSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFXyA9CisgICAgICAgICAgICAiYVx1MDMwNyBcdTAzMDcgaVx1MDMwNyBqXHUwMzI3XHUwMzA3IGpcdTAzMDFcdTAzMDciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9MSVRIVUFOSUFOXyA9CisgICAgICAgICAgICAiQVx1MDMwNyBcdTAzMDcgSSBKXHUwMzI3IEpcdTAzMDFcdTAzMDciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9HRVJNQU5fID0KKyAgICAgICAgICAgICJBXHUwMzA3IFx1MDMwNyBJXHUwMzA3IEpcdTAzMjdcdTAzMDcgSlx1MDMwMVx1MDMwNyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXyA9CisgICAgICAgICAgICAiSSBJXHUwMzAxIEogSlx1MDMwMSBcdTAxMmUgXHUwMTJlXHUwMzAxIFx1MDBjY1x1MDBjZFx1MDEyOCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFX0xPV0VSX0xJVEhVQU5JQU5fID0KKyAgICAgICAgICAgICJpIGlcdTAzMDdcdTAzMDEgaiBqXHUwMzA3XHUwMzAxIFx1MDEyZiBcdTAxMmZcdTAzMDdcdTAzMDEgaVx1MDMwN1x1MDMwMGlcdTAzMDdcdTAzMDFpXHUwMzA3XHUwMzAzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfR0VSTUFOXyA9CisgICAgICAgICAgICAiaSBpXHUwMzAxIGogalx1MDMwMSBcdTAxMmYgXHUwMTJmXHUwMzAxIFx1MDBlY1x1MDBlZFx1MDEyOSI7CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVydGluZyB0aGUgaGV4IG51bWJlcnMgcmVwcmVzZW50ZWQgYmV0d2VlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICc7JyB0byBVbmljb2RlIHN0cmluZ3MKKyAgICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBicmVhayB1cCBpbnRvIFVuaWNvZGUgc3RyaW5ncworICAgICAqIEByZXR1cm4gYXJyYXkgb2YgVW5pY29kZSBzdHJpbmdzIGVuZGluZyB3aXRoIGEgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gZ2V0VW5pY29kZVN0cmluZ3MoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigxMCk7CisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGZvciAoaW50IGNhc2Vjb3VudCA9IDQ7IGNhc2Vjb3VudCA+IDA7IGNhc2Vjb3VudCAtLSkgeworICAgICAgICAgICAgaW50IGVuZCA9IHN0ci5pbmRleE9mKCI7ICIsIHN0YXJ0KTsKKyAgICAgICAgICAgIFN0cmluZyBjYXNlc3RyID0gc3RyLnN1YnN0cmluZyhzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgc3BhY2VvZmZzZXQgPSAwOworICAgICAgICAgICAgd2hpbGUgKHNwYWNlb2Zmc2V0IDwgY2FzZXN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGludCBuZXh0c3BhY2UgPSBjYXNlc3RyLmluZGV4T2YoJyAnLCBzcGFjZW9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKG5leHRzcGFjZSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBuZXh0c3BhY2UgPSBjYXNlc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKUludGVnZXIucGFyc2VJbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXN0ci5zdWJzdHJpbmcoc3BhY2VvZmZzZXQsIG5leHRzcGFjZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNikpOworICAgICAgICAgICAgICAgIHNwYWNlb2Zmc2V0ID0gbmV4dHNwYWNlICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0ID0gZW5kICsgMjsKKyAgICAgICAgICAgIHYuYWRkKGJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgY29tbWVudHMgPSBzdHIuaW5kZXhPZigiICMiLCBzdGFydCk7CisgICAgICAgIGlmIChjb21tZW50cyAhPSAtMSAmJiBjb21tZW50cyAhPSBzdGFydCkgeworICAgICAgICAgICAgaWYgKHN0ci5jaGFyQXQoY29tbWVudHMgLSAxKSA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICBjb21tZW50cyAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBjb25kaXRpb25zID0gc3RyLnN1YnN0cmluZyhzdGFydCwgY29tbWVudHMpOworICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgY29uZGl0aW9ucy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGludCBzcGFjZW9mZnNldCA9IGNvbmRpdGlvbnMuaW5kZXhPZignICcsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKHNwYWNlb2Zmc2V0ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHNwYWNlb2Zmc2V0ID0gY29uZGl0aW9ucy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdi5hZGQoY29uZGl0aW9ucy5zdWJzdHJpbmcob2Zmc2V0LCBzcGFjZW9mZnNldCkpOworICAgICAgICAgICAgICAgIG9mZnNldCA9IHNwYWNlb2Zmc2V0ICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9IHYuc2l6ZSgpOworICAgICAgICBTdHJpbmcgcmVzdWx0W10gPSBuZXcgU3RyaW5nW3NpemVdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IChTdHJpbmcpdi5lbGVtZW50QXQoaSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmOGUxZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0LmphdmEKQEAgLTAsMCArMSw4NiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworCisvKioKKyogVGVzdGluZyBVQ2hhcmFjdGVyQ2F0ZWdvcnkKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIEFwcmlsIDAyIDIwMDIKKyovCitwdWJsaWMgY2xhc3MgVUNoYXJhY3RlckNhdGVnb3J5VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbml0aWFsaXNhdGlvbgorICAgICovCisgICAgcHVibGljIFVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKSAgCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3RlckNhdGVnb3J5VGVzdCgpOworICAgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgYXJndW1lbnQgY2F0ZWdvcnkKKyAgICAqIEByZXR1cm5zIGNhdGVnb3J5IG5hbWUKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1N0cmluZygpCisgICAgeworICAgICAgICAgIFN0cmluZyBuYW1lW10gPSB7IlVuYXNzaWduZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgVXBwZXJjYXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXR0ZXIsIExvd2VyY2FzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGV0dGVyLCBUaXRsZWNhc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgTW9kaWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgT3RoZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hcmssIE5vbi1TcGFjaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYXJrLCBFbmNsb3NpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hcmssIFNwYWNpbmcgQ29tYmluaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJOdW1iZXIsIERlY2ltYWwgRGlnaXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk51bWJlciwgTGV0dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJOdW1iZXIsIE90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXBhcmF0b3IsIFNwYWNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXBhcmF0b3IsIExpbmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNlcGFyYXRvciwgUGFyYWdyYXBoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciwgQ29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIsIEZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIsIFByaXZhdGUgVXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciwgU3Vycm9nYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdW5jdHVhdGlvbiwgRGFzaCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIE9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB1bmN0dWF0aW9uLCBDbG9zZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIENvbm5lY3RvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIE90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTeW1ib2wsIE1hdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgQ3VycmVuY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgTW9kaWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgT3RoZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdW5jdHVhdGlvbiwgSW5pdGlhbCBxdW90ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIEZpbmFsIHF1b3RlIn07CisgICAgICAgIGZvciAoaW50IGkgPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRDsgCisgICAgICAgICAgICAgICAgIGkgPCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVDsgaSArKykgeworICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlckNhdGVnb3J5LnRvU3RyaW5nKGkpLmVxdWFscyhuYW1lW2ldKSkgeworICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9TdHJpbmcgZm9yIGNhdGVnb3J5ICIgKyBpICsgIiBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgbmFtZVtpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNvbXBhcmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjUyMDZmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEKQEAgLTAsMCArMSwzMDggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGphdmEuaW8uRmlsZVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworCisvKioKKyogQSBjbGFzcyB0byBjb21wYXJlIHRoZSBkaWZmZXJlbmNlIGluIG1ldGhvZHMgYmV0d2VlbiBqYXZhLmxhbmcuQ2hhcmFjdGVyIGFuZAorKiBVQ2hhcmFjdGVyCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBvY3QgMDYgMjAwMAorKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcgorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJDb21wYXJlCit7IAorICAvLyBwcml2YXRlIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBtX2hhc2h0YWJsZV8gPSBuZXcgSGFzaHRhYmxlKCk7CisgIAorICAvLyBwdWJsaWMgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIE1haW4gdGVzdGluZyBtZXRob2QKKyAgKi8KKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKQorICB7CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0aW5nIGNoYXJhY3RlciBjb21wYXJlIik7CisgICAgdHJ5CisgICAgeworICAgICAgRmlsZVdyaXRlciBmOworICAgICAgaWYgKGFyZy5sZW5ndGggPT0gMCkKKyAgICAgICAgZiA9IG5ldyBGaWxlV3JpdGVyKCJjb21wYXJlLnR4dCIpOworICAgICAgZWxzZQorICAgICAgICBmID0gbmV3IEZpbGVXcml0ZXIoYXJnWzBdKTsKKyAgICAgIFByaW50V3JpdGVyIHAgPSBuZXcgUHJpbnRXcml0ZXIoZik7CisgICAgICBwLnByaW50KCJjaGFyICBjaGFyYWN0ZXIgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIik7CisgICAgICBwLnByaW50bG4oIm1ldGhvZCBuYW1lICAgICAgICAgICAgICAgdWNoYXJhY3RlciBjaGFyYWN0ZXIiKTsKKyAgICAgIGZvciAoY2hhciBpID0gQ2hhcmFjdGVyLk1JTl9WQUxVRTsgaSA8IENoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKyspCisgICAgICB7CisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGFyYWN0ZXIgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoaSkgIT0gQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSkKKyAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzRGVmaW5lZCgpIiwgIiIgKyBVQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmRpZ2l0KGksIDEwKSAhPSBDaGFyYWN0ZXIuZGlnaXQoaSwgMTApKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJkaWdpdCgpIiwgIiIgKyBVQ2hhcmFjdGVyLmRpZ2l0KGksIDEwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5kaWdpdChpLCAxMCkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKSAhPSBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJnZXROdW1lcmljVmFsdWUoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpKTsKKyAgICAgICAgICBpZiAoIWNvbXBhcmVUeXBlKFVDaGFyYWN0ZXIuZ2V0VHlwZShpKSwgQ2hhcmFjdGVyLmdldFR5cGUoaSkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJnZXRUeXBlKCkiLCAiIiArIFVDaGFyYWN0ZXIuZ2V0VHlwZShpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5nZXRUeXBlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RpZ2l0KGkpICE9IENoYXJhY3Rlci5pc0RpZ2l0KGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0RpZ2l0KCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc0RpZ2l0KGkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5pc0RpZ2l0KGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0lTT0NvbnRyb2woaSkgIT0gQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNJU09Db250cm9sKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkgIT0gQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0xldHRlcigpIiwgIiIgKyBVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSkgIT0gQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNMZXR0ZXJPckRpZ2l0KCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0xvd2VyQ2FzZSgpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoaSkgIT0gQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNXaGl0ZXNwYWNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoaSkgIT0gQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1NwYWNlQ2hhcigpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1RpdGxlQ2FzZShpKSAhPSBDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzVGl0bGVDaGFyKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGkpICE9IAorICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChpKSAhPSAKKyAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaSkgIT0gCisgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzSWRlbnRpZmllcklnbm9yYWJsZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1VwcGVyQ2FzZSgpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShpKSAhPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgInRvTG93ZXJDYXNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGkpKSk7CisgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvU3RyaW5nKGkpLmVxdWFscyhuZXcgQ2hhcmFjdGVyKGkpLnRvU3RyaW5nKCkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1N0cmluZygpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvU3RyaW5nKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGFyYWN0ZXIoaSkudG9TdHJpbmcoKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkgIT0gQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1RpdGxlQ2FzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGkpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1VwcGVyQ2FzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGkpKSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHN1bW1hcnkocCk7CisgICAgICBwLmNsb3NlKCk7CisgICAgfSAKKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgeworICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICB9CisgIH0KKyAgCisgIC8vIHByaXZhdGUgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIENvbXBhcmluZyB0eXBlcworICAqIEBwYXJhbSB1Y2hhcnR5cGUgVUNoYXJhY3RlciB0eXBlCisgICogQHBhcmFtIGpjaGFydHlwZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIHR5cGUKKyAgKi8KKyAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBjb21wYXJlVHlwZShpbnQgdWNoYXJ0eXBlLCBpbnQgamNoYXJ0eXBlKQorICB7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5VTkFTU0lHTkVEKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk1PRElGSUVSX0xFVFRFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9MRVRURVIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUkspCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5FTkNMT1NJTkdfTUFSSyAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTUJJTklOR19TUEFDSU5HX01BUksgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuREVDSU1BTF9ESUdJVF9OVU1CRVIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxFVFRFUl9OVU1CRVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTEVUVEVSX05VTUJFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTlVNQkVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk9USEVSX05VTUJFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1BBQ0VfU0VQQVJBVE9SICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLlNQQUNFX1NFUEFSQVRPUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTElORV9TRVBBUkFUT1IgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTElORV9TRVBBUkFUT1IpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuUEFSQUdSQVBIX1NFUEFSQVRPUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09OVFJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DT05UUk9MKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkZPUk1BVCkKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuU1VSUk9HQVRFKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREFTSF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5EQVNIX1BVTkNUVUFUSU9OKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVEFSVF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5TVEFSVF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRU5EX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkVORF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTk5FQ1RPUl9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DT05ORUNUT1JfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTUFUSF9TWU1CT0wgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTUFUSF9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNVUlJFTkNZX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DVVJSRU5DWV9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5NT0RJRklFUl9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LklOSVRJQUxfUFVOQ1RVQVRJT04gJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuU1RBUlRfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5GSU5BTF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5FTkRfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIC8qaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFUyAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5HRU5FUkFMX09USEVSX1RZUEVTKQorICAgICAgcmV0dXJuIHRydWU7Ki8KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogRGlmZmVyZW5jZSB3cml0aW5nIHRvIGZpbGUKKyAgICAqIEBwYXJhbSBmIGZpbGUgb3V0cHV0c3RyZWFtCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICogQHBhcmFtIG1ldGhvZCBmb3IgdGVzdGluZworICAgICogQHBhcmFtIHVjaGFydmFsIFVDaGFyYWN0ZXIgdmFsdWUgYWZ0ZXIgcnVubmluZyBtZXRob2QKKyAgICAqIEBwYXJhbSBjaGFydmFsIENoYXJhY3RlciB2YWx1ZSBhZnRlciBydW5uaW5nIG1ldGhvZAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0cmFja0RpZmZlcmVuY2UoUHJpbnRXcml0ZXIgZiwgaW50IGNoLCBTdHJpbmcgbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB1Y2hhcnZhbCwgU3RyaW5nIGNoYXJ2YWwpCisgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgaWYgKG1faGFzaHRhYmxlXy5jb250YWluc0tleShtZXRob2QpKQorICAgICAgeworICAgICAgICBJbnRlZ2VyIHZhbHVlID0gKEludGVnZXIpbV9oYXNodGFibGVfLmdldChtZXRob2QpOworICAgICAgICBtX2hhc2h0YWJsZV8ucHV0KG1ldGhvZCwgbmV3IEludGVnZXIodmFsdWUuaW50VmFsdWUoKSArIDEpKTsKKyAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgbV9oYXNodGFibGVfLnB1dChtZXRob2QsIG5ldyBJbnRlZ2VyKDEpKTsKKyAgICAgIAorICAgICAgU3RyaW5nIHRlbXAgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKTsKKyAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcih0ZW1wKTsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNiAtIHRlbXAubGVuZ3RoKCk7IGkgKyspCisgICAgICAgIHMuYXBwZW5kKCcgJyk7CisgICAgICB0ZW1wID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoY2gpOworICAgICAgaWYgKHRlbXAgPT0gbnVsbCkKKyAgICAgICAgdGVtcCA9ICIgIjsKKyAgICAgIHMuYXBwZW5kKHRlbXApOworICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA3MyAtIHRlbXAubGVuZ3RoKCk7IGkgKyspCisgICAgICAgIHMuYXBwZW5kKCcgJyk7CisgICAgICAKKyAgICAgIHMuYXBwZW5kKG1ldGhvZCk7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI3IC0gbWV0aG9kLmxlbmd0aCgpOyBpICsrKQorICAgICAgICBzLmFwcGVuZCgnICcpOworICAgICAgcy5hcHBlbmQodWNoYXJ2YWwpOworICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMSAtIHVjaGFydmFsLmxlbmd0aCgpOyBpICsrKQorICAgICAgICBzLmFwcGVuZCgnICcpOworICAgICAgcy5hcHBlbmQoY2hhcnZhbCk7CisgICAgICBmLnByaW50bG4ocy50b1N0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBEb2VzIHVwIGEgc3VtbWFyeSBvZiB0aGUgZGlmZmVyZW5jZXMKKyAgICAqIEBwYXJhbSBmIGZpbGUgb3V0cHV0c3RyZWFtCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHN1bW1hcnkoUHJpbnRXcml0ZXIgZikKKyAgICB7CisgICAgICBmLnByaW50bG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICBmLnByaW50bG4oIlN1bW1hcnkgb2YgZGlmZmVyZW5jZXMiKTsKKyAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IG1faGFzaHRhYmxlXy5rZXlzKCkgOyBlLmhhc01vcmVFbGVtZW50cygpIDspIAorICAgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgbWV0aG9kID0gbmV3IFN0cmluZ0J1ZmZlcigoU3RyaW5nKWUubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIGludCBjb3VudCA9ICgoSW50ZWdlciltX2hhc2h0YWJsZV8uZ2V0KG1ldGhvZC50b1N0cmluZygpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDMwIC0gbWV0aG9kLmxlbmd0aCgpOyBpID4gMDsgaSAtLSkKKyAgICAgICAgICBtZXRob2QuYXBwZW5kKCcgJyk7CisgICAgICBmLnByaW50bG4obWV0aG9kICsgIiAgIiArIGNvdW50KTsKKyAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzIzOWU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDc3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckRpcmVjdGlvbjsKKworLyoqCisqIFRlc3RpbmcgVUNoYXJhY3RlckRpcmVjdGlvbgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgSnVseSAyMiAyMDAyCisqLworcHVibGljIGNsYXNzIFVDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgICAgCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbml0aWFsaXNhdGlvbgorICAgICovCisgICAgcHVibGljIFVDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpICAKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCB0ZXN0ID0gbmV3IFVDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGNhdGVnb3J5CisgICAgKiBAcmV0dXJucyBjYXRlZ29yeSBuYW1lCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG5hbWVbXSA9IHsiTGVmdC10by1SaWdodCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlJpZ2h0LXRvLUxlZnQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRXVyb3BlYW4gTnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRXVyb3BlYW4gTnVtYmVyIFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkV1cm9wZWFuIE51bWJlciBUZXJtaW5hdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQXJhYmljIE51bWJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbW1vbiBOdW1iZXIgU2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyYWdyYXBoIFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlNlZ21lbnQgU2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGVzcGFjZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIE5ldXRyYWxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTGVmdC10by1SaWdodCBFbWJlZGRpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICJMZWZ0LXRvLVJpZ2h0IE92ZXJyaWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUmlnaHQtdG8tTGVmdCBBcmFiaWMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJSaWdodC10by1MZWZ0IEVtYmVkZGluZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlJpZ2h0LXRvLUxlZnQgT3ZlcnJpZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJQb3AgRGlyZWN0aW9uYWwgRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLVNwYWNpbmcgTWFyayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkJvdW5kYXJ5IE5ldXRyYWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJVbmFzc2lnbmVkIn07CisgICAgICAgIGZvciAoaW50IGkgPSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQ7IAorICAgICAgICAgICAgICAgICBpIDwgVUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVDsgaSArKykgeworICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlckRpcmVjdGlvbi50b1N0cmluZyhpKS5lcXVhbHMobmFtZVtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9TdHJpbmcgZm9yIGRpcmVjdGlvbiAiICsgaSArICIgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgbmFtZVtpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlclN1cnJvZ2F0ZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlOGVhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0LmphdmEKQEAgLTAsMCArMSw0MTkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBUZXN0IEpESyAxLjUgY292ZXIgQVBJcy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVUNoYXJhY3RlclN1cnJvZ2F0ZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFVuaWNvZGVCbG9ja0Zvck5hbWUoKSB7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geyJPcHRpY2FsIENoYXJhY3RlciBSZWNvZ25pdGlvbiIsCisgICAgICAgICAgICAgICAgIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEiLCAiU3VwcGxlbWVudGFsIEFycm93cy1CIiwKKyAgICAgICAgICAgICAgICAiU3VwcGxlbWVudGFyeSBQcml2YXRlIFVzZSBBcmVhLUIiLAorICAgICAgICAgICAgICAgICJzdXBwbGVtZW50YXJ5X1ByaXZhdGVfVXNlX0FyZWEtYiIsCisgICAgICAgICAgICAgICAgInN1cHBsZW1lbnRhcnlfUFJJVkFURV9Vc2VfQXJlYV9iIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgYiA9IFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAuZm9yTmFtZShuYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbG9nbG4oImZvdW5kOiAiICsgYiArICIgZm9yIG5hbWU6ICIgKyBuYW1lc1tpXSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgZmluZCBibG9jayBmb3IgbmFtZTogIiArIG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc1ZhbGlkQ29kZVBvaW50KCkgeworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1ZhbGlkQ29kZVBvaW50KC0xKSkKKyAgICAgICAgICAgIGVycmxuKCItMSIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNWYWxpZENvZGVQb2ludCgwKSkKKyAgICAgICAgICAgIGVycmxuKCIwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1ZhbGlkQ29kZVBvaW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQpKQorICAgICAgICAgICAgZXJybG4oIjB4MTBmZmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVmFsaWRDb2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfQ09ERV9QT0lOVCArIDEpKQorICAgICAgICAgICAgZXJybG4oIjB4MTEwMDAwIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdElzU3VwcGxlbWVudGFyeUNvZGVQb2ludCgpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50KC0xKSkKKyAgICAgICAgICAgIGVycmxuKCItMSIpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoMCkpCisgICAgICAgICAgICBlcnJsbigiMCIpOworICAgICAgICBpZiAoVUNoYXJhY3RlcgorICAgICAgICAgICAgICAgIC5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UIC0gMSkpCisgICAgICAgICAgICBlcnJsbigiMHhmZmZmIik7CisgICAgICAgIGlmICghVUNoYXJhY3RlcgorICAgICAgICAgICAgICAgIC5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UKSkKKyAgICAgICAgICAgIGVycmxuKCIweDEwMDAwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfQ09ERV9QT0lOVCkpCisgICAgICAgICAgICBlcnJsbigiMHgxMGZmZmYiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQgKyAxKSkKKyAgICAgICAgICAgIGVycmxuKCIweDExMDAwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0hpZ2hTdXJyb2dhdGUoKSB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLmlzSGlnaFN1cnJvZ2F0ZSgoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFIC0gMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDdmZiIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFKSkKKyAgICAgICAgICAgIGVycmxuKCIweGQ4MDAiKTsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSGlnaFN1cnJvZ2F0ZShVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkYmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLmlzSGlnaFN1cnJvZ2F0ZSgoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFICsgMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZGMwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0xvd1N1cnJvZ2F0ZSgpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAuaXNMb3dTdXJyb2dhdGUoKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFIC0gMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZGJmZiIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkYzAwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFKSkKKyAgICAgICAgICAgIGVycmxuKCIweGRmZmYiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAuaXNMb3dTdXJyb2dhdGUoKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFICsgMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZTAwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc1N1cnJvZ2F0ZVBhaXIoKSB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3Vycm9nYXRlUGFpcigKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFIC0gMSksCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkN2ZmLDB4ZGMwMCIpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cnJvZ2F0ZVBhaXIoCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDgwMCwweGRjMDAiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXJyb2dhdGVQYWlyKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSAtIDEpKSkKKyAgICAgICAgICAgIGVycmxuKCIweGQ4MDAsMHhkYmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3Vycm9nYXRlUGFpcihVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgKyAxKSkpCisgICAgICAgICAgICBlcnJsbigiMHhkODAwLDB4ZTAwMCIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNTdXJyb2dhdGVQYWlyKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDgwMCwweGRjMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhckNvdW50KCkgeworICAgICAgICBVQ2hhcmFjdGVyLmNoYXJDb3VudCgtMSk7CisgICAgICAgIFVDaGFyYWN0ZXIuY2hhckNvdW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQgKyAxKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY2hhckNvdW50KFVDaGFyYWN0ZXIuTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVCAtIDEpICE9IDEpCisgICAgICAgICAgICBlcnJsbigiMHhmZmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNoYXJDb3VudChVQ2hhcmFjdGVyLk1JTl9TVVBQTEVNRU5UQVJZX0NPREVfUE9JTlQpICE9IDIpCisgICAgICAgICAgICBlcnJsbigiMHgwMTAwMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9Db2RlUG9pbnQoKSB7CisgICAgICAgIGZpbmFsIGNoYXJbXSBwYWlycyA9IHsoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFICsgMCksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFICsgMCksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fSElHSF9TVVJST0dBVEUgKyAyKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUgKyAyKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFIC0gMiksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFIC0gMiksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSAtIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NQVhfTE9XX1NVUlJPR0FURSAtIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NQVhfSElHSF9TVVJST0dBVEUgLSAwKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgLSAwKSx9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhaXJzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpbnQgY3AgPSBVQ2hhcmFjdGVyLnRvQ29kZVBvaW50KHBhaXJzW2ldLCBwYWlyc1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHBhaXJzW2ldICE9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoY3ApCisgICAgICAgICAgICAgICAgICAgIHx8IHBhaXJzW2kgKyAxXSAhPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjcCkpIHsKKworICAgICAgICAgICAgICAgIGVycmxuKEludGVnZXIudG9IZXhTdHJpbmcocGFpcnNbaV0pICsgIiwgIiArIHBhaXJzW2kgKyAxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29kZVBvaW50QXRCZWZvcmUoKSB7CisgICAgICAgIFN0cmluZyBzID0gIiIgKyBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIC8vIGlzb2xhdGVkIGhpZ2gKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIC8vIHBhaXIKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFICsgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURTsgLy8gaXNvbGF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG93CisgICAgICAgIGNoYXJbXSBjID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnRbXSBhdmFsdWVzID0geworICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Db2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fSElHSF9TVVJST0dBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFKSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFLCBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFfTsKKyAgICAgICAgaW50W10gYnZhbHVlcyA9IHsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvQ29kZVBvaW50KFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSksCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSx9OworICAgICAgICBTdHJpbmdCdWZmZXIgYiA9IG5ldyBTdHJpbmdCdWZmZXIocyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXZhbHVlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQocywgaSkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nIGF0OiAiICsgaSk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5jb2RlUG9pbnRBdChjLCBpKSAhPSBhdmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJjaGFycyBhdDogIiArIGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQoYiwgaSkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nYnVmZmVyIGF0OiAiICsgaSk7CisKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShzLCBpICsgMSkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nIGJlZm9yZTogIiArIGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QmVmb3JlKGMsIGkgKyAxKSAhPSBidmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJjaGFycyBiZWZvcmU6ICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShiLCBpICsgMSkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nYnVmZmVyIGJlZm9yZTogIiArIGkpOworICAgICAgICB9CisKKyAgICAgICAgLy9jb3ZlciBjb2RlUG9pbnRBdEJlZm9yZSB3aXRoIGxpbWl0CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNvZGVQb2ludEF0QmVmb3JlIHdpdGggbGltaXQgLi4uIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXZhbHVlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQoYywgaSwgNCkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiY2hhcnMgYXQ6ICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShjLCBpICsgMSwgMCkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiY2hhcnMgYmVmb3JlOiAiICsgaSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUb0NoYXJzKCkgeworICAgICAgICBjaGFyW10gY2hhcnMgPSBuZXcgY2hhclszXTsKKyAgICAgICAgaW50IGNwID0gVUNoYXJhY3Rlci50b0NvZGVQb2ludChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFKTsKKyAgICAgICAgVUNoYXJhY3Rlci50b0NoYXJzKGNwLCBjaGFycywgMSk7CisgICAgICAgIGlmIChjaGFyc1sxXSAhPSBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURQorICAgICAgICAgICAgICAgIHx8IGNoYXJzWzJdICE9IFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpIHsKKworICAgICAgICAgICAgZXJybG4oImZhaWwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJzID0gVUNoYXJhY3Rlci50b0NoYXJzKGNwKTsKKyAgICAgICAgaWYgKGNoYXJzWzBdICE9IFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFCisgICAgICAgICAgICAgICAgfHwgY2hhcnNbMV0gIT0gVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkgeworCisgICAgICAgICAgICBlcnJsbigiZmFpbCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludENvdW50KCkgeworICAgICAgICBjbGFzcyBUZXN0IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYocz09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHM9IiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAiY29kZVBvaW50Q291bnQoJyIgKyBVdGlsaXR5LmVzY2FwZShzKSArICInICIgKyBzdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgbGltaXQgKyAiKSI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQgdGVzdChTdHJpbmcgcywgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIGludCB2YWwxID0gVUNoYXJhY3Rlci5jb2RlUG9pbnRDb3VudChzLnRvQ2hhckFycmF5KCksIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpOworICAgICAgICAgICAgICAgIGludCB2YWwyID0gVUNoYXJhY3Rlci5jb2RlUG9pbnRDb3VudChzLCBzdGFydCwgbGltaXQpOworICAgICAgICAgICAgICAgIGlmICh2YWwxICE9IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjaGFyW10gIiArIHN0cihzLCBzdGFydCwgbGltaXQpICsgIigiICsgdmFsMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikgIT0gIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbDIgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlN0cmluZyAiICsgc3RyKHMsIHN0YXJ0LCBsaW1pdCkgKyAiKCIgKyB2YWwyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSAhPSAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oc3RyKHMsIHN0YXJ0LCBsaW1pdCkgKyAiID09ICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZhaWwoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGxpbWl0LCBDbGFzcyBleGMpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmNvZGVQb2ludENvdW50KHMsIHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ1bmV4cGVjdGVkIHN1Y2Nlc3MgIiArIHN0cihzLCBzdGFydCwgbGltaXQpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Yy5pc0luc3RhbmNlKGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YXJubG4oImJhZCBleGNlcHRpb24gIiArIHN0cihzLCBzdGFydCwgbGltaXQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBUZXN0IHRlc3QgPSBuZXcgVGVzdCgpOworICAgICAgICB0ZXN0LmZhaWwobnVsbCwgMCwgMSwgTnVsbFBvaW50ZXJFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImEiLCAtMSwgMCwgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgiYSIsIDEsIDIsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImEiLCAxLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC50ZXN0KCIiLCAwLCAwLCAwKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAxLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAwLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAxLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAwLCAyLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAwLCAyLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAxLCAzLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAwLCAzLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAwLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAxLCAzLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAwLCAzLCAyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0T2Zmc2V0QnlDb2RlUG9pbnRzKCkgeworICAgICAgICBjbGFzcyBUZXN0IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIm9mZnNldEJ5Q29kZVBvaW50cygnIiArIFV0aWxpdHkuZXNjYXBlKHMpICsgIicgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBzdGFydCArICIsICIgKyBjb3VudCArICIsICIgKyBpbmRleCArICIsICIgKyBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIikiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIHRlc3QoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZCwgYm9vbGVhbiBmbGlwKSB7CisgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBzLnN1YnN0cmluZyhzdGFydCwgc3RhcnQgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgaW50IHZhbDEgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhjaGFycywgc3RhcnQsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgaW50IHZhbDIgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhzdHJpbmcsIGluZGV4IC0gc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQpCisgICAgICAgICAgICAgICAgICAgICAgICArIHN0YXJ0OworCisgICAgICAgICAgICAgICAgaWYgKHZhbDEgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImNoYXJbXSAiICsgc3RyKHMsIHN0YXJ0LCBjb3VudCwgaW5kZXgsIG9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHZhbDEgKyAiKSAhPSAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsMiAhPSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyaW5nICIgKyBzdHIocywgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSArICIoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdmFsMiArICIpICE9ICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbihzdHIocywgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSArICIgPT0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChmbGlwKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbDEgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhjaGFycywgc3RhcnQsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLCAtb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgdmFsMiA9IFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHN0cmluZywgZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHN0YXJ0LCAtb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwxICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiY2hhcltdICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIocywgc3RhcnQsIGNvdW50LCBleHBlY3RlZCwgLW9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWwxICsgIikgIT0gIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwyICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIocywgc3RhcnQsIGNvdW50LCBleHBlY3RlZCwgLW9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWwyICsgIikgIT0gIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oc3RyKHMsIHN0YXJ0LCBjb3VudCwgZXhwZWN0ZWQsIC1vZmZzZXQpICsgIiA9PSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZhaWwoY2hhcltdIHRleHQsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIENsYXNzIGV4YykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHRleHQsIHN0YXJ0LCBjb3VudCwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInVuZXhwZWN0ZWQgc3VjY2VzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIobmV3IFN0cmluZyh0ZXh0KSwgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFleGMuaXNJbnN0YW5jZShlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImJhZCBleGNlcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cihuZXcgU3RyaW5nKHRleHQpLCBzdGFydCwgY291bnQsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCkgKyBlLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmYWlsKFN0cmluZyB0ZXh0LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsIENsYXNzIGV4YykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHRleHQsIGluZGV4LCBvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigidW5leHBlY3RlZCBzdWNjZXNzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cih0ZXh0LCBpbmRleCwgb2Zmc2V0LCAwLCB0ZXh0Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFleGMuaXNJbnN0YW5jZShlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImJhZCBleGNlcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cih0ZXh0LCAwLCB0ZXh0Lmxlbmd0aCgpLCBpbmRleCwgb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGVzdCB0ZXN0ID0gbmV3IFRlc3QoKTsKKworICAgICAgICB0ZXN0LnRlc3QoIlx1ZDgwMFx1ZDgwMFx1ZGMwMCIsIDAsIDIsIDAsIDEsIDEsIHRydWUpOworCisgICAgICAgIHRlc3QuZmFpbCgoY2hhcltdKSBudWxsLCAwLCAxLCAwLCAxLCBOdWxsUG9pbnRlckV4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgoU3RyaW5nKSBudWxsLCAwLCAxLCBOdWxsUG9pbnRlckV4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgiYWJjIiwgLTEsIDAsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImFiYyIsIDQsIDAsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImFiYyIsIDEsIC0yLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKCJhYmMiLCAyLCAyLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgY2hhcltdIGFiYyA9ICJhYmMiLnRvQ2hhckFycmF5KCk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIC0xLCAyLCAwLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMiwgMiwgMywgMCwgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIDEsIC0xLCAwLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMSwgMSwgMiwgLTIsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoYWJjLCAxLCAxLCAxLCAyLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMSwgMiwgMSwgMywgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIDAsIDIsIDIsIC0zLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC50ZXN0KCIiLCAwLCAwLCAwLCAwLCAwLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdCgiXHVkODAwIiwgMCwgMSwgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdCgiXHVkYzAwIiwgMCwgMSwgMCwgMSwgMSwgdHJ1ZSk7CisKKyAgICAgICAgU3RyaW5nIHMgPSAiXHVkODAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAxLCAxLCAxLCAyLCB0cnVlKTsKKworICAgICAgICBzID0gIlx1ZGMwMFx1ZDgwMCI7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAxLCAwLCAxLCAxLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDIsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMiwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDEsIDEsIDEsIDIsIHRydWUpOworCisgICAgICAgIHMgPSAiXHVkODAwXHVkODAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAwLCAyLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDIsIDEsIDEsIDIsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAzLCAwLCAyLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDMsIDEsIDEsIDMsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMiwgMSwgMywgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMSwgMSwgMSwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAyLCAxLCAxLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDIsIDIsIDEsIDMsIGZhbHNlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDIsIDEsIDIsIDEsIDMsIHRydWUpOworCisgICAgICAgIHMgPSAiXHVkODAwXHVkYzAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAzLCAwLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDMsIDAsIDIsIDMsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMSwgMSwgMiwgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMSwgMiwgMywgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMiwgMSwgMywgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAxLCAxLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDIsIDEsIDEsIDIsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMSwgMiwgMSwgMiwgMywgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAyLCAyLCAxLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDIsIDEsIDIsIDEsIDMsIHRydWUpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzdhYTE0MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEKQEAgLTAsMCArMSwyMzgyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDYXNlUHJvcHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRGlyZWN0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVTZXJpYWxpemVkU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVUNoYXJhY3RlcgorKiBNb3N0bHkgZm9sbG93aW5nIHRoZSB0ZXN0IGNhc2VzIGZvciBJQ1UKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG5vdiAwNCAyMDAwCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogSUNVNEogZGF0YSB2ZXJzaW9uIG51bWJlcgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBWZXJzaW9uSW5mbyBWRVJTSU9OXyA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKCI1LjAuMC4wIik7CisKKyAgICAvLyBjb25zdHJ1Y3RvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBVQ2hhcmFjdGVyVGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3RlclRlc3QoKTsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRlc3RpbmcgdGhlIGxldHRlciBhbmQgbnVtYmVyIGRldGVybWluYXRpb24gaW4gVUNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExldHRlck51bWJlcigpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMHgwMDQxOyBpIDwgMHgwMDVCOyBpICsrKQorICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIGxldHRlciIpOworCisgICAgICAgIGZvciAoaW50IGkgPSAweDA2NjA7IGkgPCAweDA2NkE7IGkgKyspCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgbGV0dGVyIik7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDY2MDsgaSA8IDB4MDY2QTsgaSArKykKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzRGlnaXQoaSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIGRpZ2l0Iik7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDA0MTsgaSA8IDB4MDA1QjsgaSArKykKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgZGlnaXQiKTsKKworICAgICAgICBmb3IgKGludCBpID0gMHgwNjYwOyBpIDwgMHgwNjZBOyBpICsrKQorICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIHRvIGJlIGVpdGhlciBhIGxldHRlciBvciBhIGRpZ2l0Iik7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIGZvbGxvd2luZyBjaGVja3Mgd29yayBvbmx5IHN0YXJ0aW5nIGZyb20gVW5pY29kZSA0LjAuCisgICAgICAgICAqIENoZWNrIHRoZSB2ZXJzaW9uIG51bWJlciBoZXJlLgorICAgICAgICAgKi8KKyAgICAgICAgVmVyc2lvbkluZm8gdmVyc2lvbiA9ICAgIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgaWYodmVyc2lvbi5nZXRNYWpvcigpPDQgfHwgdmVyc2lvbi5lcXVhbHMoVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoNCwgMCwgMSkpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworCisKKyAgICAgICAgLyoKKyAgICAgICAgICogU2FuaXR5IGNoZWNrOgorICAgICAgICAgKiBWZXJpZnkgdGhhdCBleGFjdGx5IHRoZSBkaWdpdCBjaGFyYWN0ZXJzIGhhdmUgZGVjaW1hbCBkaWdpdCB2YWx1ZXMuCisgICAgICAgICAqIFRoaXMgYXNzdW1wdGlvbiBpcyB1c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB1X2RpZ2l0KCkKKyAgICAgICAgICogKHdoaWNoIGNoZWNrcyBudD1kZSkKKyAgICAgICAgICogY29tcGFyZWQgd2l0aCB0aGUgcGFyYWxsZWwgamF2YS5sYW5nLkNoYXJhY3Rlci5kaWdpdCgpCisgICAgICAgICAqICh3aGljaCBjaGVja3MgTmQpLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHdhcyBub3QgdHJ1ZSBpbiBVbmljb2RlIDMuMiBhbmQgZWFybGllci4KKyAgICAgICAgICogVW5pY29kZSA0LjAgZml4ZWQgZGlzY3JlcGFuY2llcy4KKyAgICAgICAgICogVW5pY29kZSA0LjAuMSByZS1pbnRyb2R1Y2VkIHByb2JsZW1zIGluIHRoaXMgYXJlYSBkdWUgdG8gYW4KKyAgICAgICAgICogdW5pbnRlbnRpb25hbGx5IGluY29tcGxldGUgbGFzdC1taW51dGUgY2hhbmdlLgorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGRpZ2l0c1BhdHRlcm4gPSAiWzpOZDpdIjsKKyAgICAgICAgU3RyaW5nIGRlY2ltYWxWYWx1ZXNQYXR0ZXJuID0gIls6TnVtZXJpY19UeXBlPURlY2ltYWw6XSI7CisKKyAgICAgICAgVW5pY29kZVNldCBkaWdpdHMsIGRlY2ltYWxWYWx1ZXM7CisKKyAgICAgICAgZGlnaXRzPSBuZXcgVW5pY29kZVNldChkaWdpdHNQYXR0ZXJuKTsKKyAgICAgICAgZGVjaW1hbFZhbHVlcz1uZXcgVW5pY29kZVNldChkZWNpbWFsVmFsdWVzUGF0dGVybik7CisKKworICAgICAgICBjb21wYXJlVVNldHMoZGlnaXRzLCBkZWNpbWFsVmFsdWVzLCAiWzpOZDpdIiwgIls6TnVtZXJpY19UeXBlPURlY2ltYWw6XSIsIHRydWUpOworCisKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRlc3RzIGZvciBzcGFjZSBkZXRlcm1pbmF0aW9uIGluIFVDaGFyYWN0ZXIKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGFjZXMoKQorICAgIHsKKyAgICAgICAgaW50IHNwYWNlc1tdID0gezB4MDAyMCwgMHgwMDAwYTAsIDB4MDAyMDAwLCAweDAwMjAwMSwgMHgwMDIwMDV9OworICAgICAgICBpbnQgbm9uc3BhY2VzW10gPSB7MHg2MSwgMHgwMDYyLCAweDAwNjMsIDB4MDA2NCwgMHgwMDc0fTsKKyAgICAgICAgaW50IHdoaXRlc3BhY2VzW10gPSB7MHgyMDA4LCAweDAwMjAwOSwgMHgwMDIwMGEsIDB4MDAwMDFjLCAweDAwMDAwY307CisgICAgICAgIGludCBub253aGl0ZXNwYWNlc1tdID0gezB4NjEsIDB4MDA2MiwgMHgwMDNjLCAweDAwMjgsIDB4MDAzZn07CisKKyAgICAgICAgaW50IHNpemUgPSBzcGFjZXMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1NwYWNlQ2hhcihzcGFjZXNbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBzcGFjZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIobm9uc3BhY2VzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnNwYWNlc1tpXSkgKworICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKHdoaXRlc3BhY2VzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHdoaXRlc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIHRvIGJlIGEgd2hpdGUgc3BhY2UgY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2Uobm9ud2hpdGVzcGFjZXNbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9ud2hpdGVzcGFjZXNbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIG5vdCB0byBiZSBhIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgaGV4KG5vbnNwYWNlc1tpXSkgKyAiIGFuZCBcXHUiICsgaGV4KHdoaXRlc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAiIGFuZCBcXHUiICsgaGV4KG5vbndoaXRlc3BhY2VzW2ldKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVsZXdoaXRlc3BhY2VbXSA9IHsweDksIDB4ZCwgMHgyMCwgMHg4NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDBlLCAweDIwMGYsIDB4MjAyOCwgMHgyMDI5fTsKKyAgICAgICAgaW50IG5vbnJ1bGV3aGl0ZXNwYWNlW10gPSB7MHg4LCAweGUsIDB4MjEsIDB4ODYsIDB4YTAsIDB4YTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY4MCwgMHgxNjgxLCAweDE4MGUsIDB4MTgwZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGLCAweDIwMDAsIDB4MjAwYSwgMHgyMDBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMTAsIDB4MjAyZiwgMHgyMDMwLCAweDIwNWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA2MCwgMHgzMDAwLCAweDMwMDF9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGV3aGl0ZXNwYWNlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShydWxld2hpdGVzcGFjZVtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiXFx1IiArIFV0aWxpdHkuaGV4KHJ1bGV3aGl0ZXNwYWNlW2ldLCA0KQorICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCB0byBiZSBhIHJ1bGUgd2hpdGUgc3BhY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5vbnJ1bGV3aGl0ZXNwYWNlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKG5vbnJ1bGV3aGl0ZXNwYWNlW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJcXHUiICsgVXRpbGl0eS5oZXgobm9ucnVsZXdoaXRlc3BhY2VbaV0sIDQpCisgICAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHRvIGJlIGEgbm9uIHJ1bGUgd2hpdGUgc3BhY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdHMgZm9yIGRlZmluZWQgYW5kIHVuZGVmaW5lZCBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVmaW5lZCgpCisgICAgeworICAgICAgICBpbnQgdW5kZWZpbmVkW10gPSB7MHhmZmYxLCAweGZmZjcsIDB4ZmE2Yn07CisgICAgICAgIGludCBkZWZpbmVkW10gPSB7MHg1MjNFLCAweDAwNGY4OCwgMHgwMGZmZmR9OworCisgICAgICAgIGludCBzaXplID0gdW5kZWZpbmVkLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQodW5kZWZpbmVkW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHVuZGVmaW5lZFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIGRlZmluZWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0RlZmluZWQoZGVmaW5lZFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChkZWZpbmVkW2ldKSArICIgZXhwZWN0ZWQgZGVmaW5lZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgYmFzZSBjaGFyYWN0ZXJzIGFuZCB0aGVpciBjZWxsd2lkdGgKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNlKCkKKyAgICB7CisgICAgICAgIGludCBiYXNlW10gPSB7MHgwMDYxLCAweDAwMDAzMSwgMHgwMDAzZDJ9OworICAgICAgICBpbnQgbm9uYmFzZVtdID0gezB4MDAyQiwgMHgwMDAwMjAsIDB4MDAyMDNCfTsKKyAgICAgICAgaW50IHNpemUgPSBiYXNlLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0Jhc2VGb3JtKG5vbmJhc2VbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9uYmFzZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgYmFzZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0Jhc2VGb3JtKGJhc2VbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoYmFzZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBiYXNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgZGlnaXQgY2hhcmFjdGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpZ2l0cygpCisgICAgeworICAgICAgICBpbnQgZGlnaXRzW10gPSB7MHgwMDMwLCAweDAwMDY2MiwgMHgwMDBGMjMsIDB4MDAwRUQ1LCAweDAwMjE2MH07CisKKyAgICAgICAgLy9zcGVjaWFsIGNoYXJhY3RlcnMgbm90IGluIHRoZSBwcm9wZXJ0aWVzIHRhYmxlCisgICAgICAgIGludCBkaWdpdHMyW10gPSB7MHgzMDA3LCAweDAwNGUwMCwgMHgwMDRlOGMsIDB4MDA0ZTA5LCAweDAwNTZkOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGU5NCwgMHgwMDUxNmQsIDB4NGUwMywgMHgwMDUxNmIsIDB4MDA0ZTVkfTsKKyAgICAgICAgaW50IG5vbmRpZ2l0c1tdID0gezB4MDAxMCwgMHgwMDAwNDEsIDB4MDAwMTIyLCAweDAwNjhGRX07CisKKyAgICAgICAgaW50IGRpZ2l0dmFsdWVzW10gPSB7MCwgMiwgMywgNSwgMX07CisgICAgICAgIGludCBkaWdpdHZhbHVlczJbXSA9IHswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5fTsKKworICAgICAgICBpbnQgc2l6ZSAgPSBkaWdpdHMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQoZGlnaXRzW2ldKSAmJgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZGlnaXQoZGlnaXRzW2ldKSAhPSBkaWdpdHZhbHVlc1tpXSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGRpZ2l0c1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBkaWdpdCB3aXRoIHZhbHVlICIgKyBkaWdpdHZhbHVlc1tpXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2l6ZSA9IG5vbmRpZ2l0cy5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQobm9uZGlnaXRzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbmRpZ2l0c1tpXSkgKyAiIGV4cGVjdGVkIG5vbmRpZ2l0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgc2l6ZSA9IGRpZ2l0czIubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RpZ2l0KGRpZ2l0czJbaV0pICYmCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5kaWdpdChkaWdpdHMyW2ldKSAhPSBkaWdpdHZhbHVlczJbaV0pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChkaWdpdHMyW2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgZGlnaXQgd2l0aCB2YWx1ZSAiICsgZGlnaXR2YWx1ZXMyW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogIFRlc3RzIGZvciBudW1lcmljIGNoYXJhY3RlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1lcmljKCkKKyAgICB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZSgweDAwQkMpICE9IC0yKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtZXJpYyB2YWx1ZSBvZiAweDAwQkMgZXhwZWN0ZWQgdG8gYmUgLTIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAnMCc7IGkgPCAnOSc7IGkgKyspIHsKKyAgICAgICAgICAgIGludCBuMSA9IFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpOworICAgICAgICAgICAgZG91YmxlIG4yID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGkpOworICAgICAgICAgICAgaWYgKG4xICE9IG4yIHx8ICBuMSAhPSAoaSAtICcwJykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVtZXJpYyB2YWx1ZSBvZiAiICsgKGNoYXIpaSArICIgZXhwZWN0ZWQgdG8gYmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgKGkgLSAnMCcpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gJ0EnOyBpIDwgJ0YnOyBpICsrKSB7CisgICAgICAgICAgICBpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGRvdWJsZSBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGlmIChuMiAhPSBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUgfHwgIG4xICE9IChpIC0gJ0EnICsgMTApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworICAgICAgICAgICAgICAgICAgICAgIChpIC0gJ0EnICsgMTApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMHhGRjIxOyBpIDwgMHhGRjI2OyBpICsrKSB7CisgICAgICAgICAgICAvLyB0ZXN0aW5nIGZ1bGwgd2lkZXRoIGxhdGluIGNoYXJhY3RlcnMgQS1GCisgICAgICAgICAgICBpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGRvdWJsZSBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGlmIChuMiAhPSBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUgfHwgIG4xICE9IChpIC0gMHhGRjIxICsgMTApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworICAgICAgICAgICAgICAgICAgICAgIChpIC0gMHhGRjIxICsgMTApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0aW5nIGhhbiBudW1iZXJzCisgICAgICAgIGludCBoYW5bXSA9IHsweDk2ZjYsIDAsIDB4NThmOSwgMSwgMHg4Y2IzLCAyLCAweDUzYzMsIDMsCisgICAgICAgICAgICAgICAgICAgICAweDgwODYsIDQsIDB4NGYwZCwgNSwgMHg5Njc4LCA2LCAweDY3ZDIsIDcsCisgICAgICAgICAgICAgICAgICAgICAweDYzNGMsIDgsIDB4NzM5NiwgOSwgMHg1MzQxLCAxMCwgMHg2MmZlLCAxMCwKKyAgICAgICAgICAgICAgICAgICAgIDB4NzY3ZSwgMTAwLCAweDRmNzAsIDEwMCwgMHg1MzQzLCAxMDAwLCAweDRlZGYsIDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAweDgyNGMsIDEwMDAwLCAweDUxMDQsIDEwMDAwMDAwMH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGFuLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRIYW5OdW1lcmljVmFsdWUoaGFuW2ldKSAhPSBoYW5baSArIDFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhoYW5baV0pICsgIiBleHBlY3RlZCB0byBiZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoYW5baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdHMgZm9yIHZlcnNpb24KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWZXJzaW9uKCkKKyAgICB7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpLmVxdWFscyhWRVJTSU9OXykpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZDogIiArIFZFUlNJT05fICsgImdvdDogIiArIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKSk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgY29udHJvbCBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SVNPQ29udHJvbCgpCisgICAgeworICAgICAgICBpbnQgY29udHJvbFtdID0gezB4MDAxYiwgMHgwMDAwOTcsIDB4MDAwMDgyfTsKKyAgICAgICAgaW50IG5vbmNvbnRyb2xbXSA9IHsweDYxLCAweDAwMDAzMSwgMHgwMDAwZTJ9OworCisgICAgICAgIGludCBzaXplID0gY29udHJvbC5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChjb250cm9sW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNvbnRyb2xbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBjb250cm9sIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKG5vbmNvbnRyb2xbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobm9uY29udHJvbFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCB0byBiZSBub3QgYSBjb250cm9sIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbigiT2sgICAgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjb250cm9sW2ldKSArICIgYW5kIDB4IiArCisgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcobm9uY29udHJvbFtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBTdXBwbGVtZW50YXJ5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnkoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAweDEwMDAwOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29kZXBvaW50IFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGlzIG5vdCBzdXBwbGVtZW50YXJ5Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MTAwMDA7IGkgPCAweDEwRkZGRjsgaSArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2RlcG9pbnQgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKworICAgICAgICAgICAgICAgICAgICAgICIgaXMgc3VwcGxlbWVudGFyeSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBtaXJyb3JpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWlycm9yKCkKKyAgICB7CisgICAgICAgIGlmICghKFVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDI4KSAmJiBVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHhiYikgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4MjA0NSkgJiYgVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4MjMyYSkKKyAgICAgICAgICAgICAgJiYgIVVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDI3KSAmJgorICAgICAgICAgICAgICAhVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4NjEpICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgyODQpCisgICAgICAgICAgICAgICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgzNDAwKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJpc01pcnJvcmVkKCkgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghKFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4M2MpID09IDB4M2UgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHg1ZCkgPT0gMHg1YiAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDIwOGQpID09IDB4MjA4ZSAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDMwMTcpID09IDB4MzAxNiAmJgorCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4YmIpID09IDB4YWIgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHgyMjE1KSA9PSAweDI5RjUgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHgyOUY1KSA9PSAweDIyMTUgJiYgLyogbGFyZ2UgZGVsdGEgYmV0d2VlbiB0aGUgY29kZSBwb2ludHMgKi8KKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDJlKSA9PSAweDJlICYmCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4NmYzKSA9PSAweDZmMyAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDMwMWMpID09IDB4MzAxYyAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweGE0YWIpID09IDB4YTRhYikpIHsKKyAgICAgICAgICAgIGVycmxuKCJnZXRNaXJyb3IoKSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSIpOworICAgICAgICB9CisKKyAgICAgICAgLyogdmVyaWZ5IHRoYXQgQmlkaV9NaXJyb3JpbmdfR2x5cGggcm91bmR0cmlwcyAqLworICAgICAgICBVbmljb2RlU2V0IHNldD1uZXcgVW5pY29kZVNldCgiWzpCaWRpX01pcnJvcmVkOl0iKTsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXI9bmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgICAgICBpbnQgc3RhcnQsIGVuZCwgYzIsIGMzOworICAgICAgICB3aGlsZShpdGVyLm5leHRSYW5nZSgpICYmIChzdGFydD1pdGVyLmNvZGVwb2ludCk+PTApIHsKKyAgICAgICAgICAgIGVuZD1pdGVyLmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBjMj1VQ2hhcmFjdGVyLmdldE1pcnJvcihzdGFydCk7CisgICAgICAgICAgICAgICAgYzM9VUNoYXJhY3Rlci5nZXRNaXJyb3IoYzIpOworICAgICAgICAgICAgICAgIGlmKGMzIT1zdGFydCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWlycm9yKCkgZG9lcyBub3Qgcm91bmR0cmlwOiBVKyIraGV4KHN0YXJ0KSsiLT5VKyIraGV4KGMyKSsiLT5VKyIraGV4KGMzKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSB3aGlsZSgrK3N0YXJ0PD1lbmQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmludCgpCisgICAgeworICAgICAgICBpbnQgcHJpbnRhYmxlW10gPSB7MHgwMDQyLCAweDAwMDA1ZiwgMHgwMDIwMTR9OworICAgICAgICBpbnQgbm9ucHJpbnRhYmxlW10gPSB7MHgyMDBjLCAweDAwMDA5ZiwgMHgwMDAwMWJ9OworCisgICAgICAgIGludCBzaXplID0gcHJpbnRhYmxlLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNQcmludGFibGUocHJpbnRhYmxlW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHByaW50YWJsZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIHRvIGJlIGEgcHJpbnRhYmxlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNQcmludGFibGUobm9ucHJpbnRhYmxlW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnByaW50YWJsZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSBwcmludGFibGUgY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiT2sgICAgXFx1IiArIGhleChwcmludGFibGVbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub25wcmludGFibGVbaV0pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgYWxsIElTTyA4IGNvbnRyb2xzCisgICAgICAgIGZvciAoaW50IGNoID0gMDsgY2ggPD0gMHg5ZjsgKysgY2gpIHsKKyAgICAgICAgICAgIGlmIChjaCA9PSAweDIwKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBBU0NJSSBncmFwaGljIGNoYXJhY3RlcnMgYW5kIGNvbnRpbnVlIHdpdGggREVMCisgICAgICAgICAgICAgICAgY2ggPSAweDdmOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNQcmludGFibGUoY2gpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgXFx1IiArIGhleChjaCkgKworICAgICAgICAgICAgICAgICAgICAiIGlzIGEgSVNPIDggY29udHJvbCBjaGFyYWN0ZXIgaGVuY2Ugbm90IHByaW50YWJsZVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0ZXN0IGFsbCBMYXRpbi0xIGdyYXBoaWMgY2hhcmFjdGVycyAqLworICAgICAgICBmb3IgKGludCBjaCA9IDB4MjA7IGNoIDw9IDB4ZmY7ICsrIGNoKSB7CisgICAgICAgICAgICBpZiAoY2ggPT0gMHg3ZikgeworICAgICAgICAgICAgICAgIGNoID0gMHhhMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1ByaW50YWJsZShjaCkKKyAgICAgICAgICAgICAgICAmJiBjaCAhPSAweDAwQUQvKiBVbmljb2RlIDQuMCBjaGFuZ2VkIHRoZSBkZWZpbnRpb24gb2Ygc29mdCBoeXBoZW4gdG8gYmUgYSBDZiovKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgXFx1IiArIGhleChjaCkgKworICAgICAgICAgICAgICAgICAgICAgICIgaXMgYSBMYXRpbi0xIGdyYXBoaWMgY2hhcmFjdGVyXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdGluZyBmb3IgaWRlbnRpZmllciBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SWRlbnRpZmllcigpCisgICAgeworICAgICAgICBpbnQgdW5pY29kZWlkc3RhcnRbXSA9IHsweDAyNTAsIDB4MDAwMGUyLCAweDAwMDA2MX07CisgICAgICAgIGludCBub251bmljb2RlaWRzdGFydFtdID0gezB4MjAwMCwgMHgwMDAwMGEsIDB4MDAyMDE5fTsKKyAgICAgICAgaW50IHVuaWNvZGVpZHBhcnRbXSA9IHsweDAwNWYsIDB4MDAwMDMyLCAweDAwMDA0NX07CisgICAgICAgIGludCBub251bmljb2RlaWRwYXJ0W10gPSB7MHgyMDMwLCAweDAwMDBhMywgMHgwMDAwMjB9OworICAgICAgICBpbnQgaWRpZ25vcmVbXSA9IHsweDAwMDYsIDB4MDAxMCwgMHgyMDZifTsKKyAgICAgICAgaW50IG5vbmlkaWdub3JlW10gPSB7MHgwMDc1LCAweDAwMDBhMywgMHgwMDAwNjF9OworCisgICAgICAgIGludCBzaXplID0gdW5pY29kZWlkc3RhcnQubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQodW5pY29kZWlkc3RhcnRbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgodW5pY29kZWlkc3RhcnRbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCB0byBiZSBhIHVuaWNvZGUgaWRlbnRpZmllciBzdGFydCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChub251bmljb2RlaWRzdGFydFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChub251bmljb2RlaWRzdGFydFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgc3RhcnQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQodW5pY29kZWlkcGFydFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleCh1bmljb2RlaWRwYXJ0W2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgcGFydCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KG5vbnVuaWNvZGVpZHBhcnRbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9udW5pY29kZWlkcGFydFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgcGFydCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaWRpZ25vcmVbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaWRpZ25vcmVbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBpZ25vcmFibGUgdW5pY29kZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShub25pZGlnbm9yZVtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChub25pZGlnbm9yZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIG5vdCB0byBiZSBhIGlnbm9yYWJsZSB1bmljb2RlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgodW5pY29kZWlkc3RhcnRbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub251bmljb2RlaWRzdGFydFtpXSkgKyAiIGFuZCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgaGV4KHVuaWNvZGVpZHBhcnRbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub251bmljb2RlaWRwYXJ0W2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgICBoZXgoaWRpZ25vcmVbaV0pICsgIiBhbmQgXFx1IiArIGhleChub25pZGlnbm9yZVtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgdGhlIGNoYXJhY3RlciB0eXBlcywgZGlyZWN0aW9uLjxicj4KKyAgICAqIFRoaXMgbWV0aG9kIHJlYWRzIGluIFVuaWNvZGVEYXRhLnR4dCBmaWxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBBCisgICAgKiBkZWZhdWx0IHBhdGggaXMgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNyYyBwYXRoLCBob3dldmVyIHRoZSB1c2VyCisgICAgKiBjb3VsZCBzZXQgYSBzeXN0ZW0gcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkaXJlY3RvcnkgcGF0aC48YnI+CisgICAgKiBlLmcuIGphdmEgLURVbmljb2RlRGF0YT0iZGF0YV9kaXJlY3RvcnlfcGF0aCIKKyAgICAqIGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlclRlc3QKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlRGF0YSgpCisgICAgeworICAgICAgICAvLyB0aGlzIGlzIHRoZSAyIGNoYXIgY2F0ZWdvcnkgdHlwZXMgdXNlZCBpbiB0aGUgVW5pY29kZURhdGEgZmlsZQorICAgICAgICBmaW5hbCBTdHJpbmcgVFlQRSA9CisgICAgICAgICAgICAiTHVMbEx0TG1Mb01uTWVNY05kTmxOb1pzWmxacENjQ2ZDb0NzUGRQc1BlUGNQb1NtU2NTa1NvUGlQZiI7CisKKyAgICAgICAgLy8gZGlyZWN0b3J5IHR5cGVzIHVzZWQgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyAgICAgICAgLy8gcGFkZGVkIGJ5IHNwYWNlcyB0byBtYWtlIGVhY2ggdHlwZSBzaXplIDQKKyAgICAgICAgZmluYWwgU3RyaW5nIERJUiA9CisgICAgICAgICAgICAiTCAgIFIgICBFTiAgRVMgIEVUICBBTiAgQ1MgIEIgICBTICAgV1MgIE9OICBMUkUgTFJPIEFMICBSTEUgUkxPIFBERiBOU00gQk4gICI7CisKKyAgICAgICAgZmluYWwgaW50IExBU1RVTklDT0RFQ0hBUiA9IDB4RkZGRDsKKyAgICAgICAgaW50IGNoID0gMCwKKyAgICAgICAgICAgIGluZGV4ID0gMCwKKyAgICAgICAgICAgIHR5cGUgPSAwLAorICAgICAgICAgICAgZGlyID0gMDsKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaWNvZGUvVW5pY29kZURhdGEudHh0Iik7CisgICAgICAgICAgICBpbnQgbnVtRXJyb3JzID0gMDsKKworICAgICAgICAgICAgd2hpbGUgKGNoICE9IExBU1RVTklDT0RFQ0hBUikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgaWYocy5sZW5ndGgoKTw0IHx8IHMuc3RhcnRzV2l0aCgiIyIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBnZXRpbmcgdGhlIHVuaWNvZGUgY2hhcmFjdGVyLCBpdHMgdHlwZSBhbmQgaXRzIGRpcmVjdGlvbgorICAgICAgICAgICAgICAgIGNoID0gSW50ZWdlci5wYXJzZUludChzLnN1YnN0cmluZygwLCA0KSwgMTYpOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7JywgNSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQgPSBzLnN1YnN0cmluZyhpbmRleCArIDEsIGluZGV4ICsgMyk7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gNDsKKyAgICAgICAgICAgICAgICBpbnQgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBpbmRleCA9IHMuaW5kZXhPZignOycsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBpbnQgY2MgPSBJbnRlZ2VyLnBhcnNlSW50KHMuc3Vic3RyaW5nKG9sZGluZGV4LCBpbmRleCkpOworICAgICAgICAgICAgICAgIG9sZGluZGV4ID0gaW5kZXggKyAxOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7Jywgb2xkaW5kZXgpOworICAgICAgICAgICAgICAgIFN0cmluZyBkID0gcy5zdWJzdHJpbmcob2xkaW5kZXgsIGluZGV4KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNjsgaSArKykgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHMuaW5kZXhPZignOycsIGluZGV4ICsgMSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNraXBwaW5nIHRvIHRoZSAxMXRoIGZpZWxkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGlzbyBjb21tZW50CisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgaW5kZXggPSBzLmluZGV4T2YoJzsnLCBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlzb2NvbW1lbnQgPSBzLnN1YnN0cmluZyhvbGRpbmRleCwgaW5kZXgpOworICAgICAgICAgICAgICAgIC8vIHVwcGVyY2FzZQorICAgICAgICAgICAgICAgIG9sZGluZGV4ID0gaW5kZXggKyAxOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7Jywgb2xkaW5kZXgpOworICAgICAgICAgICAgICAgIFN0cmluZyB1cHBlciA9IHMuc3Vic3RyaW5nKG9sZGluZGV4LCBpbmRleCk7CisgICAgICAgICAgICAgICAgLy8gbG93ZXJjYXNlCisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgaW5kZXggPSBzLmluZGV4T2YoJzsnLCBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxvd2VyID0gcy5zdWJzdHJpbmcob2xkaW5kZXgsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAvLyB0aXRsZWNhc2UgbGFzdCBlbGVtZW50CisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gcy5zdWJzdHJpbmcob2xkaW5kZXgpOworCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyB0aGUgY2F0ZWdvcnkKKyAgICAgICAgICAgICAgICAvLyB3ZSBvdmVycmlkZSB0aGUgZ2VuZXJhbCBjYXRlZ29yeSBvZiBzb21lIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgdHlwZSA9IFRZUEUuaW5kZXhPZih0KTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA8IDApCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAwOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICh0eXBlID4+IDEpICsgMTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRUeXBlKGNoKSAhPSB0eXBlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjaCkgKyAiIGV4cGVjdGVkIHR5cGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGdldEludFByb3BlcnR5VmFsdWUoXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY2gpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykgIT0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRNYXNrKGdldFR5cGUoY2gpKSIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHRlc3RpbmcgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY2gpICE9IGNjKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjaCkgKyAiIGV4cGVjdGVkIGNvbWJpbmluZyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2xhc3MgIiArIGNjKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyB0aGUgZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgaWYgKGQubGVuZ3RoKCkgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgZCA9IGQgKyAiICAgIjsKKworICAgICAgICAgICAgICAgIGRpciA9IERJUi5pbmRleE9mKGQpID4+IDI7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGNoKSAhPSBkaXIpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGRpcmVjdGlvbiAiICsgZGlyICsgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldERpcmVjdGlvbihjaCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBieXRlIGJkaXIgPSAoYnl0ZSlkaXI7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uYWxpdHkoY2gpICE9IGJkaXIpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGRpcmVjdGlvbmFsaXR5ICIgKyBiZGlyICsgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldERpcmVjdGlvbmFsaXR5KGNoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHRlc3RpbmcgaXNvIGNvbW1lbnQKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb21tZW50ID0gVUNoYXJhY3Rlci5nZXRJU09Db21tZW50KGNoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1lbnQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9ICIiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghY29tbWVudC5lcXVhbHMoaXNvY29tbWVudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoY2gpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGlzbyBjb21tZW50ICIgKyBpc29jb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZS5nZXRNZXNzYWdlKCkuaW5kZXhPZigidW5hbWVzLmljdSIpID49IDApeworICAgICAgICAgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCB0ZW1wY2hhciA9IGNoOworICAgICAgICAgICAgICAgIGlmICh1cHBlci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcGNoYXIgPSBJbnRlZ2VyLnBhcnNlSW50KHVwcGVyLCAxNik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoKSAhPSB0ZW1wY2hhcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgVXRpbGl0eS5oZXgoY2gsIDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHVwcGVyY2FzZSBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleCh0ZW1wY2hhciwgNCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGVtcGNoYXIgPSBjaDsKKyAgICAgICAgICAgICAgICBpZiAobG93ZXIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBjaGFyID0gSW50ZWdlci5wYXJzZUludChsb3dlciwgMTYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCkgIT0gdGVtcGNoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIFV0aWxpdHkuaGV4KGNoLCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCBsb3dlcmNhc2UgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodGVtcGNoYXIsIDQpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlbXBjaGFyID0gY2g7CisgICAgICAgICAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wY2hhciA9IEludGVnZXIucGFyc2VJbnQodGl0bGUsIDE2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoY2gpICE9IHRlbXBjaGFyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgdGl0bGVjYXNlIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHRlbXBjaGFyLCA0KSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgICAgICBpZihudW1FcnJvcnMgPiAwKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5vZigweDAwNDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQkFTSUNfTEFUSU4KKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZSgweDQxLCBVUHJvcGVydHkuQkxPQ0spCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5CQVNJQ19MQVRJTi5nZXRJRCgpKSB7CisgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sub2YoXFx1MDA0MSkgcHJvcGVydHkgZmFpbGVkISAiCisgICAgICAgICAgICAgICAgICAgICsgIkV4cGVjdGVkIDogIgorICAgICAgICAgICAgICAgICAgICArIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkJBU0lDX0xBVElOLmdldElEKCkgKyAiIGdvdCAiCisgICAgICAgICAgICAgICAgICAgICsgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sub2YoMHgwMDQxKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzYW5pdHkgY2hlY2sgb24gcmVwZWF0ZWQgcHJvcGVydGllcworICAgICAgICBmb3IgKGNoID0gMHhmZmZlOyBjaCA8PSAweDEwZmZmZjspIHsKKyAgICAgICAgICAgIHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICAgICAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAiCisgICAgICAgICAgICAgICAgICAgICAgKyAiZ2V0TWFzayhnZXRUeXBlKCkpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRUeXBlKFxcdSIgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAocmV0dXJucyAiCisgICAgICAgICAgICAgICAgICAgICAgICArIFVDaGFyYWN0ZXJDYXRlZ29yeS50b1N0cmluZyhVQ2hhcmFjdGVyLmdldFR5cGUoY2gpKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChjaCAmIDB4ZmZmZikgPT0gMHhmZmZlKSB7CisgICAgICAgICAgICAgICAgKysgY2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaCArPSAweGZmZmY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHRoYXQgUFVBIGlzIG5vdCAidW5hc3NpZ25lZCIKKyAgICAgICAgZm9yKGNoID0gMHhlMDAwOyBjaCA8PSAweDEwZmZmZDspIHsKKyAgICAgICAgICAgIHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICAgICAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAiCisgICAgICAgICAgICAgICAgICAgICAgKyAiZ2V0TWFzayhnZXRUeXBlKCkpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldFR5cGUoXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIikgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlBSSVZBVEVfVVNFKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBVQSBvdmVycmlkZTogVUNoYXJhY3Rlci5nZXRUeXBlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGNoLCA0KSArICIpPSIgKyB0eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaCA9PSAweGY4ZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IDB4ZjAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjaCA9PSAweGZmZmZkKSB7CisgICAgICAgICAgICAgICAgY2ggPSAweDEwMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICsrIGNoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAqIFRlc3QgZm9yIHRoZSBjaGFyYWN0ZXIgbmFtZXMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lcygpCisgICAgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVUNoYXJhY3Rlck5hbWUuZ2V0SW5zdGFuY2UoKS5nZXRNYXhDaGFyTmFtZUxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGxlbmd0aCA8IDgzKSB7IC8vIFVuaWNvZGUgMy4yIG1heCBjaGFyIG5hbWUgbGVuZ3RoCisgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKT0iICsgbGVuZ3RoICsgIiBpcyB0b28gc2hvcnQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICMjIyBUT0RPIHNhbWUgdGVzdHMgZm9yIG1heCBJU08gY29tbWVudCBsZW5ndGggYXMgZm9yIG1heCBuYW1lIGxlbmd0aAorCisgICAgICAgICAgICBpbnQgY1tdID0gezB4MDA2MSwgICAgICAgICAgICAgICAgLy9MQVRJTiBTTUFMTCBMRVRURVIgQQorICAgICAgICAgICAgICAgICAgICAgICAweDAwMDI4NCwgICAgICAgICAgICAgIC8vTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSworICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQwMSwgICAgICAgICAgICAgIC8vQ0pLIFVOSUZJRUQgSURFT0dSQVBILTM0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdmZWQsICAgICAgICAgICAgICAvL0NKSyBVTklGSUVEIElERU9HUkFQSC03RkVECisgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYzAwLCAgICAgICAgICAgICAgLy9IQU5HVUwgU1lMTEFCTEUgR0EKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ3YTMsICAgICAgICAgICAgICAvL0hBTkdVTCBTWUxMQUJMRSBISUgKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ4MDAsIDB4MDBkYzAwLCAgICAvL0xJTkVBUiBCIFNZTExBQkxFIEIwMDggQQorICAgICAgICAgICAgICAgICAgICAgICAweGZmMDgsICAgICAgICAgICAgICAgIC8vRlVMTFdJRFRIIExFRlQgUEFSRU5USEVTSVMKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGZmZTUsICAgICAgICAgICAgICAvL0ZVTExXSURUSCBZRU4gU0lHTgorICAgICAgICAgICAgICAgICAgICAgICAweDAwZmZmZiwgICAgICAgICAgICAgIC8vbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAweDAwMjM0NTYgICAgICAgICAgICAgIC8vQ0pLIFVOSUZJRUQgSURFT0dSQVBILTIzNDU2CisgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICBTdHJpbmcgbmFtZVtdID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEFUSU4gU01BTEwgTEVUVEVSIEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtMzQwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIQU5HVUwgU1lMTEFCTEUgR0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEFOR1VMIFNZTExBQkxFIEhJSCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBZRU4gU0lHTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ0pLIFVOSUZJRUQgSURFT0dSQVBILTIzNDU2IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nIG9sZG5hbWVbXSA9IHsiIiwgIkxBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSIEhPT0siLCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgIiIsICIiLCAiIiwgIkZVTExXSURUSCBPUEVOSU5HIFBBUkVOVEhFU0lTIiwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsICIifTsKKyAgICAgICAgICAgIFN0cmluZyBleHRlbmRlZG5hbWVbXSA9IHsiTEFUSU4gU01BTEwgTEVUVEVSIEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0UgQU5EIEhPT0siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0zNDAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEFOR1VMIFNZTExBQkxFIEdBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIQU5HVUwgU1lMTEFCTEUgSElIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8bGVhZCBzdXJyb2dhdGUtRDgwMD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx0cmFpbCBzdXJyb2dhdGUtREMwMD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGVUxMV0lEVEggWUVOIFNJR04iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxub25jaGFyYWN0ZXItRkZGRj4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0yMzQ1NiJ9OworCisgICAgICAgICAgICBpbnQgc2l6ZSA9IGMubGVuZ3RoOworICAgICAgICAgICAgU3RyaW5nIHN0cjsKKyAgICAgICAgICAgIGludCB1YzsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIG1vZGVybiBVbmljb2RlIGNoYXJhY3RlciBuYW1lCisgICAgICAgICAgICAgICAgc3RyID0gVUNoYXJhY3Rlci5nZXROYW1lKGNbaV0pOworICAgICAgICAgICAgICAgIGlmICgoc3RyID09IG51bGwgJiYgbmFtZVtpXS5sZW5ndGgoKSA+IDApIHx8CisgICAgICAgICAgICAgICAgICAgIChzdHIgIT0gbnVsbCAmJiAhc3RyLmVxdWFscyhuYW1lW2ldKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNbaV0pICsgIiBleHBlY3RlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyAxLjAgVW5pY29kZSBjaGFyYWN0ZXIgbmFtZQorICAgICAgICAgICAgICAgIHN0ciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChjW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoKHN0ciA9PSBudWxsICYmIG9sZG5hbWVbaV0ubGVuZ3RoKCkgPiAwKSB8fAorICAgICAgICAgICAgICAgICAgICAoc3RyICE9IG51bGwgJiYgIXN0ci5lcXVhbHMob2xkbmFtZVtpXSkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjW2ldKSArICIgZXhwZWN0ZWQgMS4wIG5hbWUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkbmFtZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGV4dGVuZGVkIGNoYXJhY3RlciBuYW1lCisgICAgICAgICAgICAgICAgc3RyID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoY1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKHN0ciA9PSBudWxsIHx8ICFzdHIuZXF1YWxzKGV4dGVuZGVkbmFtZVtpXSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNbaV0pICsgIiBleHBlY3RlZCBleHRlbmRlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZGVkbmFtZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHJldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSBtb2Rlcm4gbmFtZQorICAgICAgICAgICAgICAgIHVjID0gVUNoYXJhY3Rlci5nZXRDaGFyRnJvbU5hbWUobmFtZVtpXSk7CisgICAgICAgICAgICAgICAgaWYgKHVjICE9IGNbaV0gJiYgbmFtZVtpXS5sZW5ndGgoKSAhPSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgIiArIG5hbWVbaV0gKyAiIGV4cGVjdGVkIGNoYXJhY3RlciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4KGNbaV0pKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy9yZXRyaWV2aW5nIHVuaWNvZGUgY2hhcmFjdGVyIGZyb20gMS4wIG5hbWUKKyAgICAgICAgICAgICAgICB1YyA9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lMV8wKG9sZG5hbWVbaV0pOworICAgICAgICAgICAgICAgIGlmICh1YyAhPSBjW2ldICYmIG9sZG5hbWVbaV0ubGVuZ3RoKCkgIT0gMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBvbGRuYW1lW2ldICsgIiBleHBlY3RlZCAxLjAgY2hhcmFjdGVyIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBoZXgoY1tpXSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvL3JldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSAxLjAgbmFtZQorICAgICAgICAgICAgICAgIHVjID0gVUNoYXJhY3Rlci5nZXRDaGFyRnJvbUV4dGVuZGVkTmFtZShleHRlbmRlZG5hbWVbaV0pOworICAgICAgICAgICAgICAgIGlmICh1YyAhPSBjW2ldICYmIGkgIT0gMCAmJiAoaSA9PSAxIHx8IGkgPT0gNikpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgZXh0ZW5kZWRuYW1lW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBleHRlbmRlZCBjaGFyYWN0ZXIgXFx1IiArIGhleChjW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdGVzdCBnZXROYW1lIHdvcmtzIHdpdGggbWl4ZWQtY2FzZSBuYW1lcyAobmV3IGluIDIuMCkKKyAgICAgICAgICAgIGlmICgweDYxICE9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lKCJMQVRpbiBzbUFMbCBsZXRURVIgQSIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICdMQVRpbiBzbUFMbCBsZXRURVIgQScgc2hvdWxkIHJlc3VsdCBpbiBjaGFyYWN0ZXIgIgorICAgICAgICAgICAgICAgICAgICAgICsgIlUrMDA2MSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ2V0SW5jbHVzaW9uKCkgPj0gNSkgeworICAgICAgICAgICAgICAgIC8vIGV4dHJhIHRlc3RpbmcgZGlmZmVyZW50IGZyb20gaWN1CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOyBpIDwgVUNoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKyspCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzdHIgPSBVQ2hhcmFjdGVyLmdldE5hbWUoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHIgIT0gbnVsbCAmJiBVQ2hhcmFjdGVyLmdldENoYXJGcm9tTmFtZShzdHIpICE9IGkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiICIgKyBzdHIgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiByZXRyaWV2YWwgb2YgbmFtZSBhbmQgdmljZSB2ZXJzYSIgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUZXN0IGdldENoYXJOYW1lQ2hhcmFjdGVycworICAgICAgICAgICAgaWYgKGdldEluY2x1c2lvbigpID49IDEwKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXBbXSA9IG5ldyBib29sZWFuWzI1Nl07CisKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KDEsIDApOyAvLyBlbXB0eSBzZXQKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGR1bWIgPSBuZXcgVW5pY29kZVNldCgxLCAwKTsgLy8gZW1wdHkgc2V0CisKKyAgICAgICAgICAgICAgICAvLyB1cHJ2X2dldENoYXJOYW1lQ2hhcmFjdGVycygpIHdpbGwgbGlrZWx5IHJldHVybiBtb3JlIGxvd2VyY2FzZQorICAgICAgICAgICAgICAgIC8vIGxldHRlcnMgdGhhbiBhY3R1YWwgY2hhcmFjdGVyIG5hbWVzIGNvbnRhaW4gYmVjYXVzZQorICAgICAgICAgICAgICAgIC8vIGl0IGluY2x1ZGVzIGFsbCB0aGUgY2hhcmFjdGVycyBpbiBsb3dlcmNhc2VkIG5hbWVzIG9mCisgICAgICAgICAgICAgICAgLy8gZ2VuZXJhbCBjYXRlZ29yaWVzLCBmb3IgdGhlIGZ1bGwgcG9zc2libGUgc2V0IG9mIGV4dGVuZGVkIG5hbWVzLgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLmdldEluc3RhbmNlKCkuZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKHNldCk7CisKKyAgICAgICAgICAgICAgICAvLyBidWlsZCBzZXQgdGhlIGR1bWIgKGJ1dCBzdXJlLWZpcmUpIHdheQorICAgICAgICAgICAgICAgIEFycmF5cy5maWxsKG1hcCwgZmFsc2UpOworCisgICAgICAgICAgICAgICAgaW50IG1heExlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8IDB4MTEwMDAwOyArKyBjcCkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbiA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKGNwKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IG4ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiBtYXhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aCA9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArKyBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gbi5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcFtjaCAmIDB4ZmZdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtYi5hZGQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtjaCAmIDB4ZmZdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxlbmd0aCA9IFVDaGFyYWN0ZXJOYW1lLmdldEluc3RhbmNlKCkuZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICE9IG1heExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKT0iICsgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBkaWZmZXJzIGZyb20gdGhlIG1heGltdW0gbGVuZ3RoICIgKyBtYXhMZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIG9mIGFsbCBleHRlbmRlZCBuYW1lcyIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgdGhlIHNldHMuICBXaGVyZSBpcyBteSB1c2V0X2VxdWFscz8hIQorICAgICAgICAgICAgICAgIGJvb2xlYW4gb2sgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjU2OyArKyBpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoaSkgIT0gZHVtYi5jb250YWlucyhpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDB4NjEgPD0gaSAmJiBpIDw9IDB4N2EgLy8gYS16CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2V0LmNvbnRhaW5zKGkpICYmICFkdW1iLmNvbnRhaW5zKGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIGxvd2VyY2FzZSBhLXogdGhhdCBhcmUgaW4gc2V0IGJ1dCBub3QgaW4gZHVtYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybjEgPSBzZXQudG9QYXR0ZXJuKHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuMiA9IGR1bWIudG9QYXR0ZXJuKHRydWUpOworCisgICAgICAgICAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKCkgcmV0dXJuZWQgIiArIHBhdHRlcm4xCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAiICsgcGF0dGVybjIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiICh0b28gbWFueSBsb3dlcmNhc2UgYS16IGFyZSBvaykiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IGdldENoYXJOYW1lQ2hhcmFjdGVycygpIHJldHVybmVkICIgKyBwYXR0ZXJuMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaW1wcm92ZSBjb2RlIGNvdmVyYWdlCisgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJMQVRJTiBTTUFMTCBMRVRURVIgQXxMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LfCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtMzQwMXxDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRHxIQU5HVUwgU1lMTEFCTEUgR0F8IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhBTkdVTCBTWUxMQUJMRSBISUh8TElORUFSIEIgU1lMTEFCTEUgQjAwOCBBfEZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTfCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGVUxMV0lEVEggWUVOIFNJR058IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm51bGx8IisgLy8gZ2V0TmFtZSByZXR1cm5zIG51bGwgYmVjYXVzZSAweEZGRkYgZG9lcyBub3QgaGF2ZSBhIG5hbWUsIGJ1dCBoYXMgYW4gZXh0ZW5kZWQgbmFtZSEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0yMzQ1NiI7CisgICAgICAgICAgIFN0cmluZyBzZXBhcmF0b3I9ICJ8IjsKKyAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IFV0aWxpdHkudmFsdWVPZihjKTsKKyAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IFVDaGFyYWN0ZXIuZ2V0TmFtZShzb3VyY2UsIHNlcGFyYXRvcik7CisgICAgICAgICAgIGlmKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5nZXROYW1lIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCByZXN1bHQuXG5cdCBFeHBlY3RlZDogIisgZXhwZWN0ZWQrIlxuXHQgR290OiAiKyByZXN1bHQpOworICAgICAgICAgICB9CisKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGlmKGUuZ2V0TWVzc2FnZSgpLmluZGV4T2YoInVuYW1lcy5pY3UiKSA+PSAwKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworCisgICAgLyoqCisgICAgKiBUZXN0aW5nIG5hbWUgaXRlcmF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZUl0ZXJhdGlvbigpdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBvbGQgICAgID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAgICAgLy8gdGVzdGluZyBzdWJyYW5nZQorICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoLTEwLCAtNSk7CisgICAgICAgICAgICBpZiAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsLCBleHBlY3RlZCBpdGVyYXRvciB0byByZXR1cm4gZmFsc2Ugd2hlbiByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoMHgxMTAwMDAsIDB4MTExMTExKTsKKyAgICAgICAgICAgIGlmIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiBmYWxzZSB3aGVuIHJhbmdlIGlzIHNldCBvdXRzaWRlIHRoZSBtZWFuaW5nZnVsIHJhbmdlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXJhdG9yLnNldFJhbmdlKDUwLCAxMCk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGVuY291bnRlcmVkIGludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl0ZXJhdG9yLnNldFJhbmdlKC0xMCwgMTApOworICAgICAgICAgICAgaWYgKCFpdGVyYXRvci5uZXh0KGVsZW1lbnQpIHx8IGVsZW1lbnQuaW50ZWdlciAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiAwIHdoZW4gcmFuZ2Ugc3RhcnQgbGltaXQgaXMgc2V0IG91dHNpZGUgdGhlIG1lYW5pbmdmdWwgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoMHgxMEZGRkUsIDB4MjAwMDAwKTsKKyAgICAgICAgICAgIGludCBsYXN0ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgbGFzdCA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0ICE9IDB4MTBGRkZGKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiAweDEwRkZGRiB3aGVuIHJhbmdlIGVuZCBsaW1pdCBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBpdGVyYXRvci5zZXRSYW5nZSgweEYsIDB4NDUpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyIDw9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBsZXNzIGNvZGVwb2ludCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgdGhhbiBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikuZXF1YWxzKGVsZW1lbnQudmFsdWUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgbmV4dCBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBkb2VzIG5vdCBoYXZlIHRoZSBleHBlY3RlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBpbnN0ZWFkIGhhdmUgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGQuaW50ZWdlciA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoZWxlbWVudCk7CisgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDB4MjApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCByZXNldCBpbiBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVyYXRvci5zZXRSYW5nZSgwLCAweDExMDAwMCk7CisgICAgICAgICAgICBvbGQuaW50ZWdlciA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmludGVnZXIgIT0gMCAmJiBlbGVtZW50LmludGVnZXIgPD0gb2xkLmludGVnZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgbmV4dCByZXR1cm5lZCBhIGxlc3MgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiB0aGFuIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmdldE5hbWUoZWxlbWVudC5pbnRlZ2VyKS5lcXVhbHMoZWxlbWVudC52YWx1ZSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBuZXh0IGNvZGVwb2ludCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZG9lcyBub3QgaGF2ZSB0aGUgZXhwZWN0ZWQgbmFtZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE5hbWUoZWxlbWVudC5pbnRlZ2VyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbnN0ZWFkIGhhdmUgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE5hbWUoaSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgYmV0d2VlbiBjb2RlcG9pbnRzIGFyZSBub3QgbnVsbCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikgKyAiIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiBoYXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiIHdpdGggYSBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE5hbWUoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkLmludGVnZXIgPSBlbGVtZW50LmludGVnZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpOworICAgICAgICAgICAgb2xkLmludGVnZXIgPSAwOworICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDAgJiYgZWxlbWVudC5pbnRlZ2VyICE9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRpZmZlcmVudCBmcm9tIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoZWxlbWVudC5pbnRlZ2VyKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgbmFtZSBzaG91bGQgYmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZShlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgaW5zdGVhZCBvZiAiICsgKFN0cmluZyllbGVtZW50LnZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZC5pbnRlZ2VyKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMEl0ZXJhdG9yKCk7CisgICAgICAgICAgICBvbGQuaW50ZWdlciA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaW50ZWdlciAhPSAwICYmIGVsZW1lbnQuaW50ZWdlciA8PSBvbGQuaW50ZWdlcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBuZXh0IHJldHVybmVkIGEgbGVzcyBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKyAiIHRoYW4gXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZC5pbnRlZ2VyKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQudmFsdWUuZXF1YWxzKFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW50ZWdlcikpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBuYW1lIGNhbm5vdCBiZSBudWxsIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE5hbWUxXzAoaSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgYmV0d2VlbiBjb2RlcG9pbnRzIGFyZSBub3QgbnVsbCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZC5pbnRlZ2VyKSArICIgYW5kICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgaGFzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiIHdpdGggYSBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGQuaW50ZWdlciA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAvLyAhISEgd291bGRuJ3QgcHJlZmxpZ2h0aW5nIGJlIHNpbXBsZXI/ICBUaGlzIGxvb2tzIGxpa2UKKyAgICAgICAgICAgIC8vIGl0IGlzIGVmZmVjdGl2ZWx5IGJlIGRvaW5nIHRoYXQuICBJdCBzZWVtcyB0aGF0IGZvciBldmVyeQorICAgICAgICAgICAgLy8gdHJ1ZSBlcnJvciB0aGUgY29kZSB3aWxsIGNhbGwgZXJybG4sIHdoaWNoIHdpbGwgdGhyb3cgdGhlIGVycm9yLCB3aGljaAorICAgICAgICAgICAgLy8gdGhpcyB3aWxsIGNhdGNoLCB3aGljaCB0aGlzIHdpbGwgdGhlbiByZXRocm93IHRoZSBlcnJvci4gIEp1c3Qgc2VlbXMKKyAgICAgICAgICAgIC8vIGN1bWJlcnNvbWUuCisgICAgICAgICAgICBpZihlLmdldE1lc3NhZ2UoKS5pbmRleE9mKCJ1bmFtZXMuaWN1IikgPj0gMCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgZmluZCB1bmFtZXMuaWN1Iik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdGluZyB0aGUgZm9yIGlsbGVnYWwgY2hhcmFjdGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdElzTGVnYWwoKQorICAgIHsKKyAgICAgICAgaW50IGlsbGVnYWxbXSA9IHsweEZGRkUsIDB4MDBGRkZGLCAweDAwNUZGRkUsIDB4MDA1RkZGRiwgMHgwMDEwRkZGRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTBGRkZGLCAweDExMDAwMCwgMHgwMEZERDAsIDB4MDBGRERGLCAweDAwRkRFMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkRFRiwgMHhEODAwLCAweERDMDAsIC0xfTsKKyAgICAgICAgaW50IGxlZ2FsW10gPSB7MHg2MSwgMHgwMEZGRkQsIDB4MDAxMDAwMCwgMHgwMDVGRkZELCAweDAwNjAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMEZGRkQsIDB4RkRDRiwgMHgwMEZERjB9OworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgaWxsZWdhbC5sZW5ndGg7IGNvdW50ICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xlZ2FsKGlsbGVnYWxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaWxsZWdhbFtjb3VudF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgaXMgbm90IGEgbGVnYWwgY2hhcmFjdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwobGVnYWxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobGVnYWxbY291bnRdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlzIGEgbGVnYWwgY2hhcmFjdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgaWxsZWdhbFN0ciA9ICJUaGlzIGlzIGFuIGlsbGVnYWwgc3RyaW5nICI7CisgICAgICAgIFN0cmluZyBsZWdhbFN0ciA9ICJUaGlzIGlzIGEgbGVnYWwgc3RyaW5nICI7CisKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGlsbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoaWxsZWdhbFN0cik7CisgICAgICAgICAgICBpZiAoaWxsZWdhbFtjb3VudF0gPCAweDEwMDAwKSB7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgoY2hhcilpbGxlZ2FsW2NvdW50XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGlsbGVnYWxbY291bnRdKTsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoaWxsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQobGVhZCk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCh0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xlZ2FsKHN0ci50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBoZXgoc3RyLnRvU3RyaW5nKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGlzIG5vdCBhIGxlZ2FsIHN0cmluZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGxlZ2FsLmxlbmd0aDsgY291bnQgKyspIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKGxlZ2FsU3RyKTsKKyAgICAgICAgICAgIGlmIChsZWdhbFtjb3VudF0gPCAweDEwMDAwKSB7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgoY2hhcilsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQobGVhZCk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCh0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZWdhbChzdHIudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgaGV4KHN0ci50b1N0cmluZygpKSArICIgaXMgYSBsZWdhbCBzdHJpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZ2V0Q29kZVBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludCgpCisgICAgeworICAgICAgICBpbnQgY2ggPSAweDEwMDAwOworICAgICAgICBmb3IgKGNoYXIgaSA9IDB4RDgwMDsgaSA8IDB4REMwMDsgaSArKykgeworICAgICAgICAgICAgZm9yIChjaGFyIGogPSAweERDMDA7IGogPD0gMHhERkZGOyBqICsrKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KGksIGopICE9IGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGNvZGVwb2ludCBmb3Igc3Vycm9nYXRlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVycyBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpMHhEN2ZmLCAoY2hhcikweERDMDApOworICAgICAgICAgICAgZXJybG4oIkludmFsaWQgc3Vycm9nYXRlIGNoYXJhY3RlcnMgc2hvdWxkIG5vdCBmb3JtIGEgIiArCisgICAgICAgICAgICAgICAgICAic3VwcGxlbWVudGFyeSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChjaGFyIGkgPSAwOyBpIDwgMHhGRkZGOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID09IDB4RkZGRSB8fAorICAgICAgICAgICAgICAgIChpID49IDB4RDgwMCAmJiBpIDw9IDB4REZGRikgfHwKKyAgICAgICAgICAgICAgICAoaSA+PSAweEZERDAgJiYgaSA8PSAweEZERUYpKSB7CisgICAgICAgICAgICAgICAgLy8gbm90IGEgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3QgYSBjaGFyYWN0ZXIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSkgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQSB2YWxpZCBjb2RlcG9pbnQgc2hvdWxkIHJldHVybiBpdHNlbGYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRoaXMgbWV0aG9kIGlzIGFsaXR0bGUgZGlmZmVyZW50IGZyb20gdGhlIHR5cGUgdGVzdCBpbiBpY3U0Yy4KKyAgICAqIEJ1dCBjb21iaW5lZCB3aXRoIHRlc3RVbmljb2RlRGF0YSwgdGhleSBiYXNpY2FsbHkgZG8gdGhlIHNhbWUgdGhpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRlcmF0aW9uKCkKKyAgICB7CisgICAgICAgIGludCBsaW1pdCAgICAgPSAwOworICAgICAgICBpbnQgcHJldnR5cGUgID0gLTE7CisgICAgICAgIGludCBzaG91bGRCZURpcjsKKyAgICAgICAgaW50IHRlc3RbXVtdPXt7MHg0MSwgVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgezB4MzA4LCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSS30sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhmZmZlLCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFU30sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhlMDA0MSwgVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhlZmZmZiwgVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUR9fTsKKworICAgICAgICAvLyBkZWZhdWx0IEJpZGkgY2xhc3NlcyBmb3IgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAgICBpbnQgZGVmYXVsdEJpZGlbXVtdPXt7IDB4MDU5MCwgVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUIH0sCisgICAgICAgICAgICB7IDB4MDYwMCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MDdDMCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA5MDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweEZCMUQsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9LAorICAgICAgICAgICAgeyAweEZCNTAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweEZFMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHhGRTcwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQgfSwKKyAgICAgICAgICAgIHsgMHhGRjAwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4MTA4MDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9LAorICAgICAgICAgICAgeyAweDExMDAwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgxMTAwMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9fTsKKworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydCAhPSBsaW1pdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVQ2hhcmFjdGVySXRlcmF0aW9uIGZhaWxlZDogUmFuZ2VzIG5vdCBjb250aW51b3VzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbWl0ID0gcmVzdWx0LmxpbWl0OworICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSA9PSBwcmV2dHlwZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUeXBlIG9mIHRoZSBuZXh0IHNldCBvZiBlbnVtZXJhdGlvbiBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmV2dHlwZSA9IHJlc3VsdC52YWx1ZTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHJlc3VsdC5zdGFydDsgaSA8IGxpbWl0OyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGkpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wdHlwZSAhPSByZXN1bHQudmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVDaGFyYWN0ZXJJdGVyYXRpb24gZmFpbGVkOiBDb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgc2hvdWxkIGJlIG9mIHR5cGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcHR5cGUgKyAiIG5vdCAiICsgcmVzdWx0LnZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdC5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0IDw9IHRlc3RbaV1bMF0gJiYgdGVzdFtpXVswXSA8IHJlc3VsdC5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICE9IHRlc3RbaV1bMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZ2V0VHlwZXMoKSBoYXMgcmFuZ2UgWyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuc3RhcnQpICsgIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5saW1pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIl0gd2l0aCB0eXBlICIgKyByZXN1bHQudmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIFsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodGVzdFtpXVswXSkgKyAiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodGVzdFtpXVsxXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBMaW5lQnJlYWsudHh0IHNwZWNpZmllczoKKyAgICAgICAgICAgIC8vICAgIyAgLSBBc3NpZ25lZCBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgZXhwbGljaXRseSBhcmUgZ2l2ZW4gdGhlIHZhbHVlCisgICAgICAgICAgICAvLyAgICMgICAgIkFMIi4KKyAgICAgICAgICAgIC8vICAgIyAgLSBVbmFzc2lnbmVkIGNoYXJhY3RlcnMgYXJlIGdpdmVuIHRoZSB2YWx1ZSAiWFgiLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFBVQSBjaGFyYWN0ZXJzIGFyZSBsaXN0ZWQgZXhwbGljaXRseSB3aXRoICJYWCIuCisgICAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBubyBhc3NpZ25lZCBjaGFyYWN0ZXIgaGFzICJYWCIuCisgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVECisgICAgICAgICAgICAgICAgJiYgcmVzdWx0LnZhbHVlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5QUklWQVRFX1VTRSkgeworICAgICAgICAgICAgICAgIGludCBjID0gcmVzdWx0LnN0YXJ0OworICAgICAgICAgICAgICAgIHdoaWxlIChjIDwgcmVzdWx0LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgwID09IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkxJTkVfQlJFQUspKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiZXJyb3IgVVByb3BlcnR5LkxJTkVfQlJFQUsoYXNzaWduZWQgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChjLCA0KSArICIpPVhYIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKysgYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBWZXJpZnkgZGVmYXVsdCBCaWRpIGNsYXNzZXMuCisgICAgICAgICAgICAgKiBGb3IgcmVjZW50IFVuaWNvZGUgdmVyc2lvbnMsIHNlZSBVQ0QuaHRtbC4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBGb3Igb2xkZXIgVW5pY29kZSB2ZXJzaW9uczoKKyAgICAgICAgICAgICAqIFNlZSB0YWJsZSAzLTcgIkJpZGlyZWN0aW9uYWwgQ2hhcmFjdGVyIFR5cGVzIiBpbiBVQVggIzkuCisgICAgICAgICAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHI5LworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFNlZSBhbHNvIERlcml2ZWRCaWRpQ2xhc3MudHh0IGZvciBDbiBjb2RlIHBvaW50cyEKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBVbmljb2RlIDQuMC4xL1B1YmxpYyBSZXZpZXcgSXNzdWUgIzI4IChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCkKKyAgICAgICAgICAgICAqIGNoYW5nZWQgc29tZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgICAgICAgICAqIEluIHBhcnRpY3VsYXIsIG5vbi1jaGFyYWN0ZXJzIGFuZCB1bmFzc2lnbmVkIERlZmF1bHQgSWdub3JhYmxlIENvZGUgUG9pbnRzCisgICAgICAgICAgICAgKiBjaGFuZ2UgZnJvbSBMIHRvIEJOLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFVDRC5odG1sIHZlcnNpb24gNC4wLjEgZG9lcyBub3QgeWV0IHJlZmxlY3QgdGhlc2UgY2hhbmdlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRAorICAgICAgICAgICAgICAgIHx8IHJlc3VsdC52YWx1ZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHJlc3VsdC5zdGFydDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHRCaWRpLmxlbmd0aCAmJiBjIDwgcmVzdWx0LmxpbWl0OworICAgICAgICAgICAgICAgICAgICAgKysgaSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYyA8IGRlZmF1bHRCaWRpW2ldWzBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYyA8IHJlc3VsdC5saW1pdCAmJiBjIDwgZGVmYXVsdEJpZGlbaV1bMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIGNoYW5nZSB0byBwdWJsaWMgVUNoYXJhY3Rlci5pc05vbkNoYXJhY3RlcihjKSBvbmNlIGl0J3MgYXZhaWxhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyVXRpbGl0eS5pc05vbkNoYXJhY3RlcihjKSB8fCBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZURpcj1VQ2hhcmFjdGVyLkJPVU5EQVJZX05FVVRSQUw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVEaXI9ZGVmYXVsdEJpZGlbaV1bMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGMpICE9IHNob3VsZEJlRGlyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5CSURJX0NMQVNTKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBzaG91bGRCZURpcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGdldERpcmVjdGlvbih1bmFzc2lnbmVkL1BVQSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIpIHNob3VsZCBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2hvdWxkQmVEaXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArKyBjOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgaWYgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSA9PSBmYWxzZSB8fCByZXN1bHQuc3RhcnQgIT0gMCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZXN1bHQgIiArIHJlc3VsdC5zdGFydCk7CisgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlckl0ZXJhdGlvbiByZXNldCgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBnZXRBZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0QWdlKCkKKyAgICB7CisgICAgICAgIGludCBhZ2VzW10gPSB7MHg0MSwgICAgMSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweGZmZmYsICAxLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4MjBhYiwgIDIsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHgyZmZmZSwgMiwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweDIwYWMsICAyLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4ZmIxZCwgIDMsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHgzZjQsICAgMywgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweDEwMzAwLCAzLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4MjIwLCAgIDMsIDIsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHhmZjYwLCAgMywgMiwgMCwgMH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYWdlcy5sZW5ndGg7IGkgKz0gNSkgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gYWdlID0gVUNoYXJhY3Rlci5nZXRBZ2UoYWdlc1tpXSk7CisgICAgICAgICAgICBpZiAoYWdlICE9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGFnZXNbaSArIDFdLCBhZ2VzW2kgKyAyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlc1tpICsgM10sIGFnZXNbaSArIDRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZ2V0QWdlKFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGFnZXNbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiKSA9PSAiICsgYWdlLnRvU3RyaW5nKCkgKyAiIGluc3RlYWQgb2YgIiArCisgICAgICAgICAgICAgICAgICAgICAgYWdlc1tpICsgMV0gKyAiLiIgKyBhZ2VzW2kgKyAyXSArICIuIiArIGFnZXNbaSArIDNdICsKKyAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBhZ2VzW2kgKyA0XSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGJpbmFyeSBub24gY29yZSBwcm9wZXJ0aWVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFkZGl0aW9uYWxQcm9wZXJ0aWVzKCkKKyAgICB7CisgICAgICAgIC8vIHRlc3QgZGF0YSBmb3IgaGFzQmluYXJ5UHJvcGVydHkoKQorICAgICAgICBpbnQgcHJvcHNbXVtdID0geyAvLyBjb2RlIHBvaW50LCBwcm9wZXJ0eQorICAgICAgICAgICAgeyAweDA2MjcsIFVQcm9wZXJ0eS5BTFBIQUJFVElDLCAxIH0sCisgICAgICAgICAgICB7IDB4MTAzNGEsIFVQcm9wZXJ0eS5BTFBIQUJFVElDLCAxIH0sCisgICAgICAgICAgICB7IDB4MjAyOCwgVVByb3BlcnR5LkFMUEhBQkVUSUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDAwNjYsIFVQcm9wZXJ0eS5BU0NJSV9IRVhfRElHSVQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDY3LCBVUHJvcGVydHkuQVNDSUlfSEVYX0RJR0lULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyMDJjLCBVUHJvcGVydHkuQklESV9DT05UUk9MLCAxIH0sCisgICAgICAgICAgICB7IDB4MjAyZiwgVVByb3BlcnR5LkJJRElfQ09OVFJPTCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDAzYywgVVByb3BlcnR5LkJJRElfTUlSUk9SRUQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDNkLCBVUHJvcGVydHkuQklESV9NSVJST1JFRCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDU4YSwgVVByb3BlcnR5LkRBU0gsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDdlLCBVUHJvcGVydHkuREFTSCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MGM0ZCwgVVByb3BlcnR5LkRJQUNSSVRJQywgMSB9LAorICAgICAgICAgICAgeyAweDMwMDAsIFVQcm9wZXJ0eS5ESUFDUklUSUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDBlNDYsIFVQcm9wZXJ0eS5FWFRFTkRFUiwgMSB9LAorICAgICAgICAgICAgeyAweDAwMjAsIFVQcm9wZXJ0eS5FWFRFTkRFUiwgMCB9LAorCisgICAgICAgICAgICB7IDB4ZmIxZCwgVVByb3BlcnR5LkZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OLCAxIH0sCisgICAgICAgICAgICB7IDB4MWQxNWYsIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiwgMSB9LAorICAgICAgICAgICAgeyAweGZiMWUsIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTEwYSwgVVByb3BlcnR5Lk5GRF9JTkVSVCwgMSB9LCAgICAgIC8qIEphbW8gTCAqLworICAgICAgICAgICAgeyAweDAzMDgsIFVQcm9wZXJ0eS5ORkRfSU5FUlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDExNjQsIFVQcm9wZXJ0eS5ORktEX0lORVJULCAxIH0sICAgICAvKiBKYW1vIFYgKi8KKyAgICAgICAgICAgIHsgMHgxZDc5ZCwgVVByb3BlcnR5Lk5GS0RfSU5FUlQsIDAgfSwgICAvKiBtYXRoIGNvbXBhdCB2ZXJzaW9uIG9mIHhpICovCisKKyAgICAgICAgICAgIHsgMHgwMDIxLCBVUHJvcGVydHkuTkZDX0lORVJULCAxIH0sICAgICAgLyogISAqLworICAgICAgICAgICAgeyAweDAwNjEsIFVQcm9wZXJ0eS5ORkNfSU5FUlQsIDAgfSwgICAgIC8qIGEgKi8KKyAgICAgICAgICAgIHsgMHgwMGU0LCBVUHJvcGVydHkuTkZDX0lORVJULCAwIH0sICAgICAvKiBhLXVtbGF1dCAqLworICAgICAgICAgICAgeyAweDAxMDIsIFVQcm9wZXJ0eS5ORkNfSU5FUlQsIDAgfSwgICAgIC8qIGEtYnJldmUgKi8KKyAgICAgICAgICAgIHsgMHhhYzFjLCBVUHJvcGVydHkuTkZDX0lORVJULCAwIH0sICAgICAvKiBIYW5ndWwgTFYgKi8KKyAgICAgICAgICAgIHsgMHhhYzFkLCBVUHJvcGVydHkuTkZDX0lORVJULCAxIH0sICAgICAgLyogSGFuZ3VsIExWVCAqLworCisgICAgICAgICAgICB7IDB4MWQ3OWQsIFVQcm9wZXJ0eS5ORktDX0lORVJULCAwIH0sICAgLyogbWF0aCBjb21wYXQgdmVyc2lvbiBvZiB4aSAqLworICAgICAgICAgICAgeyAweDJhNmQ2LCBVUHJvcGVydHkuTkZLQ19JTkVSVCwgMSB9LCAgICAvKiBIYW4sIGxhc3Qgb2YgQ0pLIGV4dC4gQiAqLworCisgICAgICAgICAgICB7IDB4MDBlNCwgVVByb3BlcnR5LlNFR01FTlRfU1RBUlRFUiwgMSB9LAorICAgICAgICAgICAgeyAweDAzMDgsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDAgfSwKKyAgICAgICAgICAgIHsgMHgxMTBhLCBVUHJvcGVydHkuU0VHTUVOVF9TVEFSVEVSLCAxIH0sIC8qIEphbW8gTCAqLworICAgICAgICAgICAgeyAweDExNjQsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDAgfSwvKiBKYW1vIFYgKi8KKyAgICAgICAgICAgIHsgMHhhYzFjLCBVUHJvcGVydHkuU0VHTUVOVF9TVEFSVEVSLCAxIH0sIC8qIEhhbmd1bCBMViAqLworICAgICAgICAgICAgeyAweGFjMWQsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDEgfSwgLyogSGFuZ3VsIExWVCAqLworCisgICAgICAgICAgICB7IDB4MDA0NCwgVVByb3BlcnR5LkhFWF9ESUdJVCwgMSB9LAorICAgICAgICAgICAgeyAweGZmNDYsIFVQcm9wZXJ0eS5IRVhfRElHSVQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDQ3LCBVUHJvcGVydHkuSEVYX0RJR0lULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgzMGZiLCBVUHJvcGVydHkuSFlQSEVOLCAxIH0sCisgICAgICAgICAgICB7IDB4ZmU1OCwgVVByb3BlcnR5LkhZUEhFTiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MjE3MiwgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDMwNywgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA1YywgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyMTcyLCBVUHJvcGVydHkuSURfU1RBUlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDdhLCBVUHJvcGVydHkuSURfU1RBUlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDM5LCBVUHJvcGVydHkuSURfU1RBUlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDRkYjUsIFVQcm9wZXJ0eS5JREVPR1JBUEhJQywgMSB9LAorICAgICAgICAgICAgeyAweDJmOTk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyZjk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDIwMGMsIFVQcm9wZXJ0eS5KT0lOX0NPTlRST0wsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyMDI5LCBVUHJvcGVydHkuSk9JTl9DT05UUk9MLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxZDdiYywgVVByb3BlcnR5LkxPV0VSQ0FTRSwgMSB9LAorICAgICAgICAgICAgeyAweDAzNDUsIFVQcm9wZXJ0eS5MT1dFUkNBU0UsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDMwLCBVUHJvcGVydHkuTE9XRVJDQVNFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxZDdhOSwgVVByb3BlcnR5Lk1BVEgsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyMTM1LCBVUHJvcGVydHkuTUFUSCwgMSB9LAorICAgICAgICAgICAgeyAweDAwNjIsIFVQcm9wZXJ0eS5NQVRILCAwIH0sCisKKyAgICAgICAgICAgIHsgMHhmZGUxLCBVUHJvcGVydHkuTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgxMGZmZmYsIFVQcm9wZXJ0eS5OT05DSEFSQUNURVJfQ09ERV9QT0lOVCwgMSB9LAorICAgICAgICAgICAgeyAweDEwZmZmZCwgVVByb3BlcnR5Lk5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5ULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMDIyLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDEgfSwKKyAgICAgICAgICAgIHsgMHhmZjYyLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDEgfSwKKyAgICAgICAgICAgIHsgMHhkODQwLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDAgfSwKKworICAgICAgICAgICAgeyAweDA2MWYsIFVQcm9wZXJ0eS5URVJNSU5BTF9QVU5DVFVBVElPTiwgMSB9LAorICAgICAgICAgICAgeyAweGUwMDNmLCBVUHJvcGVydHkuVEVSTUlOQUxfUFVOQ1RVQVRJT04sIDAgfSwKKworICAgICAgICAgICAgeyAweDFkNDRhLCBVUHJvcGVydHkuVVBQRVJDQVNFLCAxIH0sCisgICAgICAgICAgICB7IDB4MjE2MiwgVVByb3BlcnR5LlVQUEVSQ0FTRSwgMSB9LAorICAgICAgICAgICAgeyAweDAzNDUsIFVQcm9wZXJ0eS5VUFBFUkNBU0UsIDAgfSwKKworICAgICAgICAgICAgeyAweDAwMjAsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDIwMmYsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDMwMDEsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDcxMSwgVVByb3BlcnR5LlhJRF9DT05USU5VRSwgMSB9LAorICAgICAgICAgICAgeyAweDFkMWFhLCBVUHJvcGVydHkuWElEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA3YywgVVByb3BlcnR5LlhJRF9DT05USU5VRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTZlZSwgVVByb3BlcnR5LlhJRF9TVEFSVCwgMSB9LAorICAgICAgICAgICAgeyAweDIzNDU2LCBVUHJvcGVydHkuWElEX1NUQVJULCAxIH0sCisgICAgICAgICAgICB7IDB4MWQxYWEsIFVQcm9wZXJ0eS5YSURfU1RBUlQsIDAgfSwKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFZlcnNpb24gYnJlYWs6CisgICAgICAgICAgICAgKiBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIG9ubHkgc3VwcG9ydGVkIHN0YXJ0aW5nIHdpdGggdGhlCisgICAgICAgICAgICAgKiBVbmljb2RlIHZlcnNpb24gaW5kaWNhdGVkIGluIHRoZSBzZWNvbmQgZmllbGQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHsgLTEsIDB4MzIwLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxODBjLCBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCwgMSB9LAorICAgICAgICAgICAgeyAweGZlMDIsIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5ULCAxIH0sCisgICAgICAgICAgICB7IDB4MTgwMSwgVVByb3BlcnR5LkRFRkFVTFRfSUdOT1JBQkxFX0NPREVfUE9JTlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDAzNDEsIFVQcm9wZXJ0eS5ERVBSRUNBVEVELCAxIH0sCisgICAgICAgICAgICB7IDB4ZTAwNDEsIFVQcm9wZXJ0eS5ERVBSRUNBVEVELCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMGEwLCBVUHJvcGVydHkuR1JBUEhFTUVfQkFTRSwgMSB9LAorICAgICAgICAgICAgeyAweDBhNGQsIFVQcm9wZXJ0eS5HUkFQSEVNRV9CQVNFLCAwIH0sCisgICAgICAgICAgICB7IDB4ZmY5ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0JBU0UsIDEgfSwgICAgICAvKiBjaGFuZ2VkIGZyb20gVW5pY29kZSAzLjIgdG8gNCAqLworCisgICAgICAgICAgICB7IDB4MDMwMCwgVVByb3BlcnR5LkdSQVBIRU1FX0VYVEVORCwgMSB9LAorICAgICAgICAgICAgeyAweGZmOWYsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQsIDAgfSwgICAvKiBjaGFuZ2VkIGZyb20gVW5pY29kZSAzLjIgdG8gNCAqLworICAgICAgICAgICAgeyAweDA2MDMsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQsIDAgfSwKKworICAgICAgICAgICAgeyAweDBhNGQsIFVQcm9wZXJ0eS5HUkFQSEVNRV9MSU5LLCAxIH0sCisgICAgICAgICAgICB7IDB4ZmY5ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0xJTkssIDAgfSwKKworICAgICAgICAgICAgeyAweDJmZjcsIFVQcm9wZXJ0eS5JRFNfQklOQVJZX09QRVJBVE9SLCAxIH0sCisgICAgICAgICAgICB7IDB4MmZmMywgVVByb3BlcnR5LklEU19CSU5BUllfT1BFUkFUT1IsIDAgfSwKKworICAgICAgICAgICAgeyAweDJmZjMsIFVQcm9wZXJ0eS5JRFNfVFJJTkFSWV9PUEVSQVRPUiwgMSB9LAorICAgICAgICAgICAgeyAweDJmMDMsIFVQcm9wZXJ0eS5JRFNfVFJJTkFSWV9PUEVSQVRPUiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MGVjMSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OLCAxIH0sCisgICAgICAgICAgICB7IDB4ZGNiYSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyZTliLCBVUHJvcGVydHkuUkFESUNBTCwgMSB9LAorICAgICAgICAgICAgeyAweDRlMDAsIFVQcm9wZXJ0eS5SQURJQ0FMLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMTJmLCBVUHJvcGVydHkuU09GVF9ET1RURUQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDQ5LCBVUHJvcGVydHkuU09GVF9ET1RURUQsIDAgfSwKKworICAgICAgICAgICAgeyAweGZhMTEsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCwgMSB9LAorICAgICAgICAgICAgeyAweGZhMTIsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCwgMCB9LAorCisgICAgICAgICAgICB7IC0xLCAweDQwMSwgMCB9LCAvKiB2ZXJzaW9uIGJyZWFrIGZvciBVbmljb2RlIDQuMC4xICovCisKKyAgICAgICAgICAgIHsgMHgwMDJlLCBVUHJvcGVydHkuU19URVJNLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA2MSwgVVByb3BlcnR5LlNfVEVSTSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTgwYywgVVByb3BlcnR5LlZBUklBVElPTl9TRUxFQ1RPUiwgMSB9LAorICAgICAgICAgICAgeyAweGZlMDMsIFVQcm9wZXJ0eS5WQVJJQVRJT05fU0VMRUNUT1IsIDEgfSwKKyAgICAgICAgICAgIHsgMHhlMDFlZiwgVVByb3BlcnR5LlZBUklBVElPTl9TRUxFQ1RPUiwgMSB9LAorICAgICAgICAgICAgeyAweGUwMjAwLCBVUHJvcGVydHkuVkFSSUFUSU9OX1NFTEVDVE9SLCAwIH0sCisKKyAgICAgICAgICAgIC8qIGVudW0vaW50ZWdlciB0eXBlIHByb3BlcnRpZXMgKi8KKyAgICAgICAgICAgIC8qIHRlc3QgZGVmYXVsdCBCaWRpIGNsYXNzZXMgZm9yIHVuYXNzaWduZWQgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgIHsgMHgwNTkwLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MDVjZiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweDA1ZWQsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgwN2YyLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5ESVJfTk9OX1NQQUNJTkdfTUFSSyB9LCAvKiBOa28sIG5ldyBpbiBVbmljb2RlIDUuMCAqLworICAgICAgICAgICAgeyAweDA3ZmUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwgLyogdW5hc3NpZ25lZCBSICovCisgICAgICAgICAgICB7IDB4MDhiYSwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweGZiMzcsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHhmYjQyLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MTA4MDYsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgxMDkwOSwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweDEwZmU0LCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisKKyAgICAgICAgICAgIHsgMHgwNjA2LCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA2MWMsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4MDYzZiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHgwNzBlLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA3NzUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4ZmJjMiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHhmZDkwLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweGZlZmUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisKKyAgICAgICAgICAgIHsgMHgwMkFGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLklQQV9FWFRFTlNJT05TLmdldElEKCkgfSwKKyAgICAgICAgICAgIHsgMHgwQzRFLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLlRFTFVHVS5nZXRJRCgpfSwKKyAgICAgICAgICAgIHsgMHgxNTVBLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLlVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MuZ2V0SUQoKSB9LAorICAgICAgICAgICAgeyAweDE3MTcsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suVEFHQUxPRy5nZXRJRCgpIH0sCisgICAgICAgICAgICB7IDB4MTkwMCwgVVByb3BlcnR5LkJMT0NLLCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5MSU1CVS5nZXRJRCgpIH0sCisgICAgICAgICAgICB7IDB4MUFGRiwgVVByb3BlcnR5LkJMT0NLLCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5OT19CTE9DSy5nZXRJRCgpfSwKKyAgICAgICAgICAgIHsgMHgzMDQwLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkhJUkFHQU5BLmdldElEKCl9LAorICAgICAgICAgICAgeyAweDFEMEZGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkJZWkFOVElORV9NVVNJQ0FMX1NZTUJPTFMuZ2V0SUQoKX0sCisgICAgICAgICAgICB7IDB4NTAwMDAsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suTk9fQkxPQ0suZ2V0SUQoKSB9LAorICAgICAgICAgICAgeyAweEVGRkZGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLk5PX0JMT0NLLmdldElEKCkgfSwKKyAgICAgICAgICAgIHsgMHgxMEQwRkYsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0IuZ2V0SUQoKSB9LAorCisgICAgICAgICAgICAvKiBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyB0ZXN0ZWQgZm9yIGFzc2lnbmVkIGNoYXJhY3RlcnMgaW4gVGVzdFVuaWNvZGVEYXRhKCkgKi8KKyAgICAgICAgICAgIHsgMHhkN2Q3LCBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUywgMCB9LAorCisgICAgICAgICAgICB7IDB4MDBBMCwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5OT0JSRUFLIH0sCisgICAgICAgICAgICB7IDB4MDBBOCwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DT01QQVQgfSwKKyAgICAgICAgICAgIHsgMHgwMGJmLCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk5PTkUgfSwKKyAgICAgICAgICAgIHsgMHgwMGMwLCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkNBTk9OSUNBTCB9LAorICAgICAgICAgICAgeyAweDFFOUIsIFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEUsIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuQ0FOT05JQ0FMIH0sCisgICAgICAgICAgICB7IDB4QkNERSwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DQU5PTklDQUwgfSwKKyAgICAgICAgICAgIHsgMHhGQjVELCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk1FRElBTCB9LAorICAgICAgICAgICAgeyAweDFENzM2LCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkZPTlQgfSwKKyAgICAgICAgICAgIHsgMHhlMDAzMywgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5OT05FIH0sCisKKyAgICAgICAgICAgIHsgMHgwMDA5LCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5ORVVUUkFMIH0sCisgICAgICAgICAgICB7IDB4MDAyMCwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguTkFSUk9XIH0sCisgICAgICAgICAgICB7IDB4MDBCMSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguQU1CSUdVT1VTIH0sCisgICAgICAgICAgICB7IDB4MjBBOSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguSEFMRldJRFRIIH0sCisgICAgICAgICAgICB7IDB4MkZGQiwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweDMwMDAsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLkZVTExXSURUSCB9LAorICAgICAgICAgICAgeyAweDM1YmIsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLldJREUgfSwKKyAgICAgICAgICAgIHsgMHg1OGJkLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5XSURFIH0sCisgICAgICAgICAgICB7IDB4RDdBMywgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweEVFRUUsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLkFNQklHVU9VUyB9LAorICAgICAgICAgICAgeyAweDFEMTk4LCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5ORVVUUkFMIH0sCisgICAgICAgICAgICB7IDB4MjAwMDAsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLldJREUgfSwKKyAgICAgICAgICAgIHsgMHgyRjhDNywgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweDNhNWJkLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5XSURFIH0sCisgICAgICAgICAgICB7IDB4NWE1YmQsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLk5FVVRSQUwgfSwKKyAgICAgICAgICAgIHsgMHhGRUVFRSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguQU1CSUdVT1VTIH0sCisgICAgICAgICAgICB7IDB4MTBFRUVFLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5BTUJJR1VPVVMgfSwKKworICAgICAgICAgICAgLyogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkgdGVzdGVkIGZvciBhc3NpZ25lZCBjaGFyYWN0ZXJzIGluIFRlc3RVbmljb2RlRGF0YSgpICovCisgICAgICAgICAgICB7IDB4ZDdkNywgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlksIDAgfSwKKworICAgICAgICAgICAgeyAweDA0NDQsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5OT19KT0lOSU5HX0dST1VQIH0sCisgICAgICAgICAgICB7IDB4MDYzOSwgVVByb3BlcnR5LkpPSU5JTkdfR1JPVVAsIFVDaGFyYWN0ZXIuSm9pbmluZ0dyb3VwLkFJTiB9LAorICAgICAgICAgICAgeyAweDA3MkEsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5EQUxBVEhfUklTSCB9LAorICAgICAgICAgICAgeyAweDA2NDcsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5IRUggfSwKKyAgICAgICAgICAgIHsgMHgwNkMxLCBVUHJvcGVydHkuSk9JTklOR19HUk9VUCwgVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuSEVIX0dPQUwgfSwKKyAgICAgICAgICAgIHsgMHgwNkMzLCBVUHJvcGVydHkuSk9JTklOR19HUk9VUCwgVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuSEFNWkFfT05fSEVIX0dPQUwgfSwKKworICAgICAgICAgICAgeyAweDIwMEMsIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUsIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuTk9OX0pPSU5JTkcgfSwKKyAgICAgICAgICAgIHsgMHgyMDBELCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkpPSU5fQ0FVU0lORyB9LAorICAgICAgICAgICAgeyAweDA2MzksIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUsIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuRFVBTF9KT0lOSU5HIH0sCisgICAgICAgICAgICB7IDB4MDY0MCwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSwgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5KT0lOX0NBVVNJTkcgfSwKKyAgICAgICAgICAgIHsgMHgwNkMzLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlJJR0hUX0pPSU5JTkcgfSwKKyAgICAgICAgICAgIHsgMHgwMzAwLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlRSQU5TUEFSRU5UIH0sCisgICAgICAgICAgICB7IDB4MDcwRiwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSwgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5UUkFOU1BBUkVOVCB9LAorICAgICAgICAgICAgeyAweGUwMDMzLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlRSQU5TUEFSRU5UIH0sCisKKyAgICAgICAgICAgIC8qIFRlc3RVbmljb2RlRGF0YSgpIHZlcmlmaWVzIHRoYXQgbm8gYXNzaWduZWQgY2hhcmFjdGVyIGhhcyAiWFgiICh1bmtub3duKSAqLworICAgICAgICAgICAgeyAweGU3ZTcsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5VTktOT1dOIH0sCisgICAgICAgICAgICB7IDB4MTBmZmZkLCBVUHJvcGVydHkuTElORV9CUkVBSywgVUNoYXJhY3Rlci5MaW5lQnJlYWsuVU5LTk9XTiB9LAorICAgICAgICAgICAgeyAweDAwMjgsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5PUEVOX1BVTkNUVUFUSU9OIH0sCisgICAgICAgICAgICB7IDB4MjMyQSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNMT1NFX1BVTkNUVUFUSU9OIH0sCisgICAgICAgICAgICB7IDB4MzQwMSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLklERU9HUkFQSElDIH0sCisgICAgICAgICAgICB7IDB4NGUwMiwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLklERU9HUkFQSElDIH0sCisgICAgICAgICAgICB7IDB4MjAwMDQsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5JREVPR1JBUEhJQyB9LAorICAgICAgICAgICAgeyAweGY5MDUsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5JREVPR1JBUEhJQyB9LAorICAgICAgICAgICAgeyAweGRiN2UsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5TVVJST0dBVEUgfSwKKyAgICAgICAgICAgIHsgMHhkYmZkLCBVUHJvcGVydHkuTElORV9CUkVBSywgVUNoYXJhY3Rlci5MaW5lQnJlYWsuU1VSUk9HQVRFIH0sCisgICAgICAgICAgICB7IDB4ZGZmYywgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLlNVUlJPR0FURSB9LAorICAgICAgICAgICAgeyAweDI3NjIsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5FWENMQU1BVElPTiB9LAorICAgICAgICAgICAgeyAweDAwMkYsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5CUkVBS19TWU1CT0xTIH0sCisgICAgICAgICAgICB7IDB4MUQ0OUMsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5BTFBIQUJFVElDIH0sCisgICAgICAgICAgICB7IDB4MTczMSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLkFMUEhBQkVUSUMgfSwKKworICAgICAgICAgICAgLyogVVByb3BlcnR5Lk5VTUVSSUNfVFlQRSB0ZXN0ZWQgaW4gVGVzdE51bWVyaWNQcm9wZXJ0aWVzKCkgKi8KKworICAgICAgICAgICAgLyogVVByb3BlcnR5LlNDUklQVCB0ZXN0ZWQgaW4gVGVzdFVTY3JpcHRDb2RlQVBJKCkgKi8KKworICAgICAgICAgICAgeyAweDExMDAsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1PIH0sCisgICAgICAgICAgICB7IDB4MTExMSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MRUFESU5HX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTU5LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxFQURJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExNWYsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1PIH0sCisKKyAgICAgICAgICAgIHsgMHgxMTYwLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTYxLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTcyLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMWEyLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKworICAgICAgICAgICAgeyAweDExYTgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExYjgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExYzgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExZjksIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorCisgICAgICAgICAgICB7IDB4MTE1YSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTE1ZSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFhMywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFhNywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFmYSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFmZiwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHhhYzAwLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWX1NZTExBQkxFIH0sCisgICAgICAgICAgICB7IDB4YWMxYywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MVl9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGM1ZWMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZfU1lMTEFCTEUgfSwKKyAgICAgICAgICAgIHsgMHhkNzg4LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWX1NZTExBQkxFIH0sCisKKyAgICAgICAgICAgIHsgMHhhYzAxLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWVF9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGFjMWIsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZUX1NZTExBQkxFIH0sCisgICAgICAgICAgICB7IDB4YWMxZCwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MVlRfU1lMTEFCTEUgfSwKKyAgICAgICAgICAgIHsgMHhjNWVlLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWVF9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGQ3YTMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZUX1NZTExBQkxFIH0sCisKKyAgICAgICAgICAgIHsgMHhkN2E0LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIDAgfSwKKworICAgICAgICAgICAgeyAtMSwgMHg0MTAsIDAgfSwgLyogdmVyc2lvbiBicmVhayBmb3IgVW5pY29kZSA0LjEgKi8KKworICAgICAgICAgICAgeyAweDAwZDcsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMSB9LAorICAgICAgICAgICAgeyAweGZlNDUsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMSB9LAorICAgICAgICAgICAgeyAweDAwNjEsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDAyMCwgVVByb3BlcnR5LlBBVFRFUk5fV0hJVEVfU1BBQ0UsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDg1LCBVUHJvcGVydHkuUEFUVEVSTl9XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDIwMGYsIFVQcm9wZXJ0eS5QQVRURVJOX1dISVRFX1NQQUNFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDBhMCwgVVByb3BlcnR5LlBBVFRFUk5fV0hJVEVfU1BBQ0UsIDAgfSwKKyAgICAgICAgICAgIHsgMHgzMDAwLCBVUHJvcGVydHkuUEFUVEVSTl9XSElURV9TUEFDRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MWQyMDAsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQU5DSUVOVF9HUkVFS19NVVNJQ0FMX05PVEFUSU9OX0lEIH0sCisgICAgICAgICAgICB7IDB4MmM4ZSwgIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQ09QVElDX0lEIH0sCisgICAgICAgICAgICB7IDB4ZmUxNywgIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suVkVSVElDQUxfRk9STVNfSUQgfSwKKworICAgICAgICAgICAgeyAweDFhMDAsICBVUHJvcGVydHkuU0NSSVBULCBVU2NyaXB0LkJVR0lORVNFIH0sCisgICAgICAgICAgICB7IDB4MmNlYSwgIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuQ09QVElDIH0sCisgICAgICAgICAgICB7IDB4YTgyYiwgIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuU1lMT1RJX05BR1JJIH0sCisgICAgICAgICAgICB7IDB4MTAzZDAsIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuT0xEX1BFUlNJQU4gfSwKKworICAgICAgICAgICAgeyAweGNjMjgsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMiB9LAorICAgICAgICAgICAgeyAweGNjMjksIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMyB9LAorICAgICAgICAgICAgeyAweGFjMDMsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMyB9LAorICAgICAgICAgICAgeyAweDExNWYsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KTCB9LAorICAgICAgICAgICAgeyAweDExYWEsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KVCB9LAorICAgICAgICAgICAgeyAweDExYTEsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KViB9LAorCisgICAgICAgICAgICB7IDB4YjJjOSwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuTFZUIH0sCisgICAgICAgICAgICB7IDB4MDM2ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuRVhURU5EIH0sCisgICAgICAgICAgICB7IDB4MDAwMCwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuQ09OVFJPTCB9LAorICAgICAgICAgICAgeyAweDExNjAsIFVQcm9wZXJ0eS5HUkFQSEVNRV9DTFVTVEVSX0JSRUFLLCBVQ2hhcmFjdGVyLkdyYXBoZW1lQ2x1c3RlckJyZWFrLlYgfSwKKworICAgICAgICAgICAgeyAweDA1ZjQsIFVQcm9wZXJ0eS5XT1JEX0JSRUFLLCBVQ2hhcmFjdGVyLldvcmRCcmVhay5NSURMRVRURVIgfSwKKyAgICAgICAgICAgIHsgMHg0ZWYwLCBVUHJvcGVydHkuV09SRF9CUkVBSywgVUNoYXJhY3Rlci5Xb3JkQnJlYWsuT1RIRVIgfSwKKyAgICAgICAgICAgIHsgMHgxOWQ5LCBVUHJvcGVydHkuV09SRF9CUkVBSywgVUNoYXJhY3Rlci5Xb3JkQnJlYWsuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDIwNDQsIFVQcm9wZXJ0eS5XT1JEX0JSRUFLLCBVQ2hhcmFjdGVyLldvcmRCcmVhay5NSUROVU0gfSwKKworICAgICAgICAgICAgeyAweGZmZmQsIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSywgVUNoYXJhY3Rlci5TZW50ZW5jZUJyZWFrLk9USEVSIH0sCisgICAgICAgICAgICB7IDB4MWZmYywgVVByb3BlcnR5LlNFTlRFTkNFX0JSRUFLLCBVQ2hhcmFjdGVyLlNlbnRlbmNlQnJlYWsuVVBQRVIgfSwKKyAgICAgICAgICAgIHsgMHhmZjYzLCBVUHJvcGVydHkuU0VOVEVOQ0VfQlJFQUssIFVDaGFyYWN0ZXIuU2VudGVuY2VCcmVhay5DTE9TRSB9LAorICAgICAgICAgICAgeyAweDIwMjgsIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSywgVUNoYXJhY3Rlci5TZW50ZW5jZUJyZWFrLlNFUCB9LAorCisgICAgICAgICAgICAvKiB1bmRlZmluZWQgVVByb3BlcnR5IHZhbHVlcyAqLworICAgICAgICAgICAgeyAweDYxLCAweDRhNywgMCB9LAorICAgICAgICAgICAgeyAweDIzNGJjLCAweDE1ZWQsIDAgfQorICAgICAgICB9OworCisKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShVUHJvcGVydHkuREFTSCkgIT0gMAorICAgICAgICAgICAgfHwgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKFVQcm9wZXJ0eS5CSURJX0NMQVNTKSAhPSAwCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LkJMT0NLKSE9IDAgIC8qIGoyNDc4ICovCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LlNDUklQVCkhPSAwIC8qIEpCIzI0MTAgKi8KKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZSgweDIzNDUpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKCkgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkRBU0gpIT0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuREFTSCkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LklEX0NPTlRJTlVFKSE9MSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LklEX0NPTlRJTlVFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklOQVJZX0xJTUlULTEpIT0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklOQVJZX0xJTUlULTEpIHdyb25nXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkJJRElfQ0xBU1MpIT1VQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5ULTEgKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklESV9DTEFTUykgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkJMT0NLKSE9VUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQ09VTlQtMSApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5CTE9DSykgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTElORV9CUkVBSykhPVVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPVU5ULTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5MSU5FX0JSRUFLKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5TQ1JJUFQpIT1VU2NyaXB0LkNPREVfTElNSVQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LlNDUklQVCkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTlVNRVJJQ19UWVBFKSE9VUNoYXJhY3Rlci5OdW1lcmljVHlwZS5DT1VOVC0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTlVNRVJJQ19UWVBFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZKSE9VUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkpIHdyb25nXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZihVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFKSE9VUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5HUkFQSEVNRV9DTFVTVEVSX0JSRUFLKSE9VUNoYXJhY3Rlci5HcmFwaGVtZUNsdXN0ZXJCcmVhay5DT1VOVC0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuR1JBUEhFTUVfQ0xVU1RFUl9CUkVBSykgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuU0VOVEVOQ0VfQlJFQUspIT1VQ2hhcmFjdGVyLlNlbnRlbmNlQnJlYWsuQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LlNFTlRFTkNFX0JSRUFLKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5XT1JEX0JSRUFLKSE9VUNoYXJhY3Rlci5Xb3JkQnJlYWsuQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LldPUkRfQlJFQUspIHdyb25nXG4iKTsKKyAgICAgICAgfQorICAgICAgICAvKkpCIzI0MTAqLworICAgICAgICBpZiggVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKDB4MjM0NSkhPS0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgweDIzNDUpIHdyb25nXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiggVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEUpICE9ICAoVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DT1VOVCAtIDEpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuSk9JTklOR19HUk9VUCkgIT0gICAoVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuQ09VTlQgLTEpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuSk9JTklOR19HUk9VUCkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkpPSU5JTkdfVFlQRSkgIT0gIChVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkNPVU5UIC0xKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkpPSU5JTkdfVFlQRSkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgpICE9ICAoVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5DT1VOVCAtMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRIKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKworICAgICAgICBWZXJzaW9uSW5mbyB2ZXJzaW9uID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworCisgICAgICAgIC8vIHRlc3QgaGFzQmluYXJ5UHJvcGVydHkoKQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgaWYgKHByb3BzW2ldWzBdIDwgMCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJzaW9uLmNvbXBhcmVUbyhWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShwcm9wc1tpXVsxXSA+PiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wc1tpXVsxXSA+PiA0KSAmIDB4RiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wc1tpXVsxXSAmIDB4RiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gZXhwZWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChwcm9wc1tpXVsyXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocHJvcHNbaV1bMV0gPCBVUHJvcGVydHkuSU5UX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkocHJvcHNbaV1bMF0sIHByb3BzW2ldWzFdKQorICAgICAgICAgICAgICAgICAgICAhPSBleHBlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzFdKQorICAgICAgICAgICAgICAgICAgICAgICAgICArICIpIGhhcyBhbiBlcnJvciBleHBlY3RlZCAiICsgcHJvcHNbaV1bMl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHJldFZhbCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShwcm9wc1tpXVswXSwgcHJvcHNbaV1bMV0pOworICAgICAgICAgICAgaWYgKHJldFZhbCAhPSBwcm9wc1tpXVsyXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KHByb3BzW2ldWzBdLCA0KSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIHByb3BzW2ldWzFdICsgIiBpcyB3cm9uZywgc2hvdWxkIGJlICIKKyAgICAgICAgICAgICAgICAgICAgICArIHByb3BzW2ldWzJdICsgIiBub3QgIiArIHJldFZhbCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRlc3Qgc2VwYXJhdGUgZnVuY3Rpb25zLCB0b28KKyAgICAgICAgICAgIHN3aXRjaCAocHJvcHNbaV1bMV0pIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkFMUEhBQkVUSUM6CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVQWxwaGFiZXRpYyhwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VBbHBoYWJldGljKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFOgorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVUxvd2VyY2FzZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VMb3dlcmNhc2UoXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocHJvcHNbaV1bMF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIikgaXMgd3JvbmcgZXhwZWN0ZWQgIiArcHJvcHNbaV1bMl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRToKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1VVcHBlcmNhc2UocHJvcHNbaV1bMF0pICE9IGV4cGVjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuaXNVVXBwZXJjYXNlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuV0hJVEVfU1BBQ0U6CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1lcmljUHJvcGVydGllcygpCisgICAgeworICAgICAgICAvLyBzZWUgVW5pY29kZURhdGEudHh0LCBEZXJpdmVkTnVtZXJpY1ZhbHVlcy50eHQKKyAgICAgICAgaW50IHRlc3R2YXJbXVtdID0geworICAgICAgICAgICAgeyAweDBGMzMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDBDNjYsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDIxNTksIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDAwQkQsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDAwMzEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDEwMzIwLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwRjJCLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwMEIyLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLkRJR0lUIH0sIC8qIFVuaWNvZGUgNC4wIGNoYW5nZSAqLworICAgICAgICAgICAgeyAweDE4MTMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDIxNzMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDI3OEUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuRElHSVQgfSwKKyAgICAgICAgICAgIHsgMHgxRDdGMiwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5ERUNJTUFMIH0sCisgICAgICAgICAgICB7IDB4MjQ3QSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5ESUdJVCB9LAorICAgICAgICAgICAgeyAweDEzNzIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDIxNkIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDE2RUUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDI0OUEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDMwM0EsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDMyQjIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDEzNzUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDEwMzIzLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwQkYxLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTdFLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTgwLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTgxLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgxMzdDLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg2MSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4MzAwMCwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4ZmZmZSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4MTAzMDEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTk9ORSB9LAorICAgICAgICAgICAgeyAweGUwMDMzLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5PTkUgfSwKKyAgICAgICAgICAgIHsgMHgxMGZmZmYsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTk9ORSB9LAorICAgICAgICAgICAgLyogVW5pY29kZSA0LjAgQ2hhbmdlcyAqLworICAgICAgICAgICAgeyAweDk2ZjYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg0ZTAwLCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4NThmMSwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDVmMTAsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg1ZjBlLCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4ODA4NiwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDczOTYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg1MzQ1LCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4OTY0YywgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDRlZGYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg0ZTA3LCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4NGViZiwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDUxNDYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfQorICAgICAgICB9OworCisgICAgICAgIGRvdWJsZSBleHBlY3RlZFtdID0gey0xLyhkb3VibGUpMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS8oZG91YmxlKTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEvKGRvdWJsZSkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLyhkb3VibGUpMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5OT19OVU1FUklDX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5OT19OVU1FUklDX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMDAwMDAuMDAKKyAgICAgICAgfTsKKworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHZhci5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgIGludCBjID0gdGVzdHZhcltpXVswXTsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuTlVNRVJJQ19UWVBFKTsKKyAgICAgICAgICAgIGRvdWJsZSBudiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjKTsKKworICAgICAgICAgICAgaWYgKHR5cGUgIT0gdGVzdHZhcltpXVsxXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVUHJvcGVydHkuTlVNRVJJQ19UWVBFKFxcdSIgKyBVdGlsaXR5LmhleChjLCA0KQorICAgICAgICAgICAgICAgICAgICAgICArICIpID0gIiArIHR5cGUgKyAiIHNob3VsZCBiZSAiICsgdGVzdHZhcltpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoMC4wMDAwMDEgPD0gTWF0aC5hYnMobnYgLSBleHBlY3RlZFtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoXFx1IiArIFV0aWxpdHkuaGV4KGMsIDQpCisgICAgICAgICAgICAgICAgICAgICAgICArICIpID0gIiArIG52ICsgIiBzaG91bGQgYmUgIiArIGV4cGVjdGVkW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHByb3BlcnR5IHZhbHVlcyBBUEkuICBTZWUgSkIjMjQxMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlWYWx1ZXMoKSB7CisgICAgICAgIGludCBpLCBwLCBtaW4sIG1heDsKKworICAgICAgICAvKiBNaW4gc2hvdWxkIGJlIDAgZm9yIGV2ZXJ5dGhpbmcuICovCisgICAgICAgIC8qIFVudGlsIEpCIzI0NzggaXMgZml4ZWQsIHRoZSBvbmUgZXhjZXB0aW9uIGlzIFVQcm9wZXJ0eS5CTE9DSy4gKi8KKyAgICAgICAgZm9yIChwPVVQcm9wZXJ0eS5JTlRfU1RBUlQ7IHA8VVByb3BlcnR5LklOVF9MSU1JVDsgKytwKSB7CisgICAgICAgICAgICBtaW4gPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUocCk7CisgICAgICAgICAgICBpZiAobWluICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAocCA9PSBVUHJvcGVydHkuQkxPQ0spIHsKKyAgICAgICAgICAgICAgICAgICAgLyogVGhpcyBpcyBva2F5Li4uZm9yIG5vdy4gIFNlZSBKQiMyNDg3LgorICAgICAgICAgICAgICAgICAgICAgICBUT0RPIFVwZGF0ZSB0aGlzIGZvciBKQiMyNDg3LiAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAgICAgICAgICAgICBuYW1lID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eU5hbWUocCwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoIiArIG5hbWUgKyAiKSA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gKyAiLCBleHAuIDAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spCisgICAgICAgICAgICAhPSAwCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spCisgICAgICAgICAgICAgICAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluL01heFZhbHVlKCIKKyAgICAgICAgICAgICAgICAgICsgIlVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spIGlzIHdyb25nIik7CisgICAgICAgIH0KKworICAgICAgICAvKiBNYXggc2hvdWxkIGJlIC0xIGZvciBpbnZhbGlkIHByb3BlcnRpZXMuICovCisgICAgICAgIG1heCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgtMSk7CisgICAgICAgIGlmIChtYXggIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoLTEpID0gIiArCisgICAgICAgICAgICAgICAgICBtYXggKyAiLCBleHAuIC0xIik7CisgICAgICAgIH0KKworICAgICAgICAvKiBTY3JpcHQgc2hvdWxkIHJldHVybiAwIGZvciBhbiBpbnZhbGlkIGNvZGUgcG9pbnQuIElmIHRoZSBBUEkKKyAgICAgICAgICAgdGhyb3dzIGFuIGV4Y2VwdGlvbiB0aGVuIHRoYXQncyBmaW5lIHRvby4gKi8KKyAgICAgICAgZm9yIChpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSAwOworICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjID0gbnVsbDsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVTY3JpcHQuZ2V0U2NyaXB0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzYyA9ICJVU2NyaXB0LmdldFNjcmlwdCgtMSkiOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZSgtMSwgVVByb3BlcnR5LlNDUklQVCk7CisgICAgICAgICAgICAgICAgICAgIGRlc2MgPSAiVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKC0xLCBVUHJvcGVydHkuU0NSSVBUKSI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkZXNjICsgIiA9ICIgKyBzY3JpcHQgKyAiLCBleHAuIDAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkge30KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0JNUCgpCisgICAgeworICAgICAgICBpbnQgY2hbXSA9IHsweDAsIC0xLCAweGZmZmYsIDB4MTBmZmZmLCAweGZmLCAweDFmZmZmfTsKKyAgICAgICAgYm9vbGVhbiBmbGFnW10gPSB7dHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZX07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2gubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0JNUChjaFtpXSkgIT0gZmxhZ1tpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBcXHUiICsgVXRpbGl0eS5oZXgoY2hbaV0sIDgpCisgICAgICAgICAgICAgICAgICAgICAgKyAiIGZhaWxlZCBhdCBVQ2hhcmFjdGVyLmlzQk1QIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBhZGQgY2hhcmFjdGVycyBmcm9tIGEgc2VyaWFsaXplZCBzZXQgdG8gYSBub3JtYWwgb25lICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBfc2V0QWRkU2VyaWFsaXplZChVbmljb2RlU2V0IHNldCwgVVNlcmlhbGl6ZWRTZXQgc3NldCkgeworICAgICAvLyAgaW50IHN0YXJ0LCBlbmQ7CisgICAgICAgaW50IGksIGNvdW50OworCisgICAgICAgY291bnQ9c3NldC5jb3VudFJhbmdlcygpOworICAgICAgIGludFtdIHJhbmdlID0gbmV3IGludFsyXTsKKyAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgc3NldC5nZXRSYW5nZShpLHJhbmdlKTsKKyAgICAgICAgICAgc2V0LmFkZChyYW5nZVswXSxyYW5nZVsxXSk7CisgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93QURpZmZCKFVuaWNvZGVTZXQgYSwgVW5pY29kZVNldCBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhX25hbWUsIFN0cmluZyBiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBleHBlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkaWZmSXNFcnJvcil7CisgICAgICAgIGludCBpLCBzdGFydCwgZW5kLCBsZW5ndGg7CisgICAgICAgIGJvb2xlYW4gZXF1YWw7CisgICAgICAgIGVxdWFsPXRydWU7CisgICAgICAgIGk9MDsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBzdGFydCAgPSBhLmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBsZW5ndGggPSAoaSA8IGEuZ2V0UmFuZ2VDb3VudCgpKSA/IDAgOiBhLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgICAgIGVuZCAgICA9IGEuZ2V0UmFuZ2VFbmQoaSk7CisKKyAgICAgICAgICAgIGlmKGxlbmd0aCE9MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBlcXVhbDsgLyogZG9uZSB3aXRoIGNvZGUgcG9pbnRzLCBnb3QgYSBzdHJpbmcgb3IgLTEgKi8KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoZXhwZWN0IT1iLmNvbnRhaW5zKHN0YXJ0LCBlbmQpKSB7CisgICAgICAgICAgICAgICAgZXF1YWw9ZmFsc2U7CisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8PWVuZCkgeworICAgICAgICAgICAgICAgICAgICBpZihleHBlY3QhPWIuY29udGFpbnMoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihkaWZmSXNFcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGV4cGVjdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6ICIrIGFfbmFtZSArIiBjb250YWlucyAiKyBoZXgoc3RhcnQpKyIgYnV0ICIrIGJfbmFtZSArIiBkb2VzIG5vdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogIithX25hbWUgKyIgYW5kICIrIGJfbmFtZSsiIGJvdGggY29udGFpbiAiK2hleChzdGFydCkgKyIgYnV0IHNob3VsZCBub3QgaW50ZXJzZWN0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihleHBlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImluZm86ICIrYV9uYW1lICsiIGNvbnRhaW5zICIraGV4KHN0YXJ0KSsgImJ1dCAiICsgYl9uYW1lICsiIGRvZXMgbm90Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImluZm86ICIrYV9uYW1lICsiIGFuZCAiK2JfbmFtZSsiIGJvdGggY29udGFpbiAiK2hleChzdGFydCkrIiBidXQgc2hvdWxkIG5vdCBpbnRlcnNlY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICsraTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd0FNaW51c0IoVW5pY29kZVNldCBhLCBVbmljb2RlU2V0IGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFfbmFtZSwgU3RyaW5nIGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRpZmZJc0Vycm9yKSB7CisKKyAgICAgICAgcmV0dXJuIHNob3dBRGlmZkIoYSwgYiwgYV9uYW1lLCBiX25hbWUsIHRydWUsIGRpZmZJc0Vycm9yKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd0FJbnRlcnNlY3RCKFVuaWNvZGVTZXQgYSwgVW5pY29kZVNldCBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYV9uYW1lLCBTdHJpbmcgYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRpZmZJc0Vycm9yKSB7CisgICAgICAgIHJldHVybiBzaG93QURpZmZCKGEsIGIsIGFfbmFtZSwgYl9uYW1lLCBmYWxzZSwgZGlmZklzRXJyb3IpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjb21wYXJlVVNldHMoVW5pY29kZVNldCBhLCBVbmljb2RlU2V0IGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhX25hbWUsIFN0cmluZyBiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZGlmZklzRXJyb3IpIHsKKyAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBzaG93QU1pbnVzQihhLCBiLCBhX25hbWUsIGJfbmFtZSwgZGlmZklzRXJyb3IpICYmCisgICAgICAgICAgICBzaG93QU1pbnVzQihiLCBhLCBiX25hbWUsIGFfbmFtZSwgZGlmZklzRXJyb3IpOworICAgIH0KKworICAgLyogdmFyaW91cyB0ZXN0cyBmb3IgY29uc2lzdGVuY3kgb2YgVUNEIGRhdGEgYW5kIEFQSSBiZWhhdmlvciAqLworICAgcHVibGljIHZvaWQgVGVzdENvbnNpc3RlbmN5KCkgeworICAgICAgIGNoYXJbXSBidWZmZXIxNiA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgY2hhcltdIGJ1ZmZlciAgID0gbmV3IGNoYXJbMzAwXTsKKyAgICAgICBVbmljb2RlU2V0IHNldDEsIHNldDIsIHNldDMsIHNldDQ7CisKKyAgICAgICBVU2VyaWFsaXplZFNldCBzc2V0OworICAgICAgIGludCBzdGFydCwgZW5kOworICAgICAgIGludCBpLCBsZW5ndGg7CisKKyAgICAgICBTdHJpbmcgaHlwaGVuUGF0dGVybiA9ICJbOkh5cGhlbjpdIjsKKyAgICAgICBTdHJpbmcgZGFzaFBhdHRlcm4gPSAiWzpEYXNoOl0iOworICAgICAgIFN0cmluZyBsb3dlclBhdHRlcm4gPSAiWzpMb3dlcmNhc2U6XSI7CisgICAgICAgU3RyaW5nIGZvcm1hdFBhdHRlcm4gPSAiWzpDZjpdIjsKKyAgICAgICBTdHJpbmcgYWxwaGFQYXR0ZXJuICA9ICAiWzpBbHBoYWJldGljOl0iOworCisgICAgICAgLyoKKyAgICAgICAgKiBJdCB1c2VkIHRvIGJlIHRoYXQgVUNELmh0bWwgYW5kIGl0cyBwcmVjdXJzb3JzIHNhaWQKKyAgICAgICAgKiAiVGhvc2UgZGFzaGVzIHVzZWQgdG8gbWFyayBjb25uZWN0aW9ucyBiZXR3ZWVuIHBpZWNlcyBvZiB3b3JkcywKKyAgICAgICAgKiAgcGx1cyB0aGUgS2F0YWthbmEgbWlkZGxlIGRvdC4iCisgICAgICAgICoKKyAgICAgICAgKiBVbmljb2RlIDQgY2hhbmdlZCAwMEFEIFNvZnQgSHlwaGVuIHRvIENmIGFuZCByZW1vdmVkIGl0IGZyb20gRGFzaAorICAgICAgICAqIGJ1dCBub3QgZnJvbSBIeXBoZW4uCisgICAgICAgICogVVRDIDk0ICgyMDAzbWFyKSBkZWNpZGVkIHRvIGxlYXZlIGl0IHRoYXQgd2F5IGFuZCB0byBjaGFuZ2VkIFVDRC5odG1sLgorICAgICAgICAqIFRoZXJlZm9yZSwgZG8gbm90IHNob3cgZXJyb3JzIHdoZW4gdGVzdGluZyB0aGUgSHlwaGVuIHByb3BlcnR5LgorICAgICAgICAqLworICAgICAgIGxvZ2xuKCJTdGFydGluZyB3aXRoIFVuaWNvZGUgNCwgaW5jb25zaXN0ZW5jaWVzIHdpdGggWzpIeXBoZW46XSBhcmVcbiIKKyAgICAgICAgICAgICAgICAgICArICJrbm93biB0byB0aGUgVVRDIGFuZCBub3QgY29uc2lkZXJlZCBlcnJvcnMuXG4iKTsKKworICAgICAgIHNldDE9bmV3IFVuaWNvZGVTZXQoaHlwaGVuUGF0dGVybik7CisgICAgICAgc2V0Mj1uZXcgVW5pY29kZVNldChkYXNoUGF0dGVybik7CisKKyAgICAgICAgICAgLyogcmVtb3ZlIHRoZSBLYXRha2FuYSBtaWRkbGUgZG90KHMpIGZyb20gc2V0MSAqLworICAgICAgICAgICBzZXQxLnJlbW92ZSgweDMwZmIpOworICAgICAgICAgICBzZXQyLnJlbW92ZSAoMHhmZjY1KTsgLyogaGFsZndpZHRoIHZhcmlhbnQgKi8KKyAgICAgICAgICAgc2hvd0FNaW51c0Ioc2V0MSwgc2V0MiwgIls6SHlwaGVuOl0iLCAiWzpEYXNoOl0iLCBmYWxzZSk7CisKKworICAgICAgIC8qIGNoZWNrIHRoYXQgQ2YgaXMgbmVpdGhlciBIeXBoZW4gbm9yIERhc2ggbm9yIEFscGhhYmV0aWMgKi8KKyAgICAgICBzZXQzPW5ldyBVbmljb2RlU2V0KGZvcm1hdFBhdHRlcm4pOworICAgICAgIHNldDQ9bmV3IFVuaWNvZGVTZXQoYWxwaGFQYXR0ZXJuKTsKKworICAgICAgIHNob3dBSW50ZXJzZWN0QihzZXQzLCBzZXQxLCAiWzpDZjpdIiwgIls6SHlwaGVuOl0iLCBmYWxzZSk7CisgICAgICAgc2hvd0FJbnRlcnNlY3RCKHNldDMsIHNldDIsICJbOkNmOl0iLCAiWzpEYXNoOl0iLCB0cnVlKTsKKyAgICAgICBzaG93QUludGVyc2VjdEIoc2V0Mywgc2V0NCwgIls6Q2Y6XSIsICJbOkFscGhhYmV0aWM6XSIsIHRydWUpOworICAgICAgIC8qCisgICAgICAgICogQ2hlY2sgdGhhdCBlYWNoIGxvd2VyY2FzZSBjaGFyYWN0ZXIgaGFzICJzbWFsbCIgaW4gaXRzIG5hbWUKKyAgICAgICAgKiBhbmQgbm90ICJjYXBpdGFsIi4KKyAgICAgICAgKiBUaGVyZSBhcmUgc29tZSBzdWNoIGNoYXJhY3RlcnMsIHNvbWUgb2Ygd2hpY2ggc2VlbSBvZGQuCisgICAgICAgICogVXNlIHRoZSB2ZXJib3NlIGZsYWcgdG8gc2VlIHRoZXNlIG5vdGljZXMuCisgICAgICAgICovCisgICAgICAgc2V0MT1uZXcgVW5pY29kZVNldChsb3dlclBhdHRlcm4pOworCisgICAgICAgZm9yKGk9MDs7ICsraSkgeworLy8gICAgICAgICAgICAgICB0cnl7CisvLyAgICAgICAgICAgICAgICAgICBsZW5ndGg9c2V0MS5nZXRJdGVtKHNldDEsIGksICZzdGFydCwgJmVuZCwgTlVMTCwgMCwgJmVycm9yQ29kZSk7CisvLyAgICAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisvLyAgICAgICAgICAgICAgICAgICBicmVhazsKKy8vICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhcnQgPSBzZXQxLmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBlbmQgPSBzZXQxLmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgbGVuZ3RoID0gaTxzZXQxLmdldFJhbmdlQ291bnQoKSA/IHNldDEuZ2V0UmFuZ2VDb3VudCgpIDogMDsKKyAgICAgICAgICAgaWYobGVuZ3RoIT0wKSB7CisgICAgICAgICAgICAgICBicmVhazsgLyogZG9uZSB3aXRoIGNvZGUgcG9pbnRzLCBnb3QgYSBzdHJpbmcgb3IgLTEgKi8KKyAgICAgICAgICAgfQorCisgICAgICAgICAgIHdoaWxlKHN0YXJ0PD1lbmQpIHsKKyAgICAgICAgICAgICAgIFN0cmluZyBuYW1lPVVDaGFyYWN0ZXIuZ2V0TmFtZShzdGFydCk7CisKKyAgICAgICAgICAgICAgIGlmKCAobmFtZS5pbmRleE9mKCJTTUFMTCIpPCAwIHx8IG5hbWUuaW5kZXhPZigiQ0FQSVRBTCIpPC0xKSAmJgorICAgICAgICAgICAgICAgICAgIG5hbWUuaW5kZXhPZigiU01BTEwgQ0FQSVRBTCIpPT0tMQorICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgbG9nbG4oImluZm86IFs6TG93ZXJjYXNlOl0gY29udGFpbnMgVSsiK2hleChzdGFydCkgKyAiIHdob3NlIG5hbWUgZG9lcyBub3Qgc3VnZ2VzdCBsb3dlcmNhc2U6ICIgKyBuYW1lKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgIH0KKyAgICAgICB9CisKKworICAgICAgIC8qCisgICAgICAgICogVGVzdCBmb3IgYW4gZXhhbXBsZSB0aGF0IHVub3JtX2dldENhbm9uU3RhcnRTZXQoKSBkZWxpdmVycworICAgICAgICAqIGFsbCBjaGFyYWN0ZXJzIHRoYXQgY29tcG9zZSBmcm9tIHRoZSBpbnB1dCBvbmUsCisgICAgICAgICogZXZlbiBpbiBtdWx0aXBsZSBzdGVwcy4KKyAgICAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIHNldCBmb3IgIkkiICgwMDQ5KSBzaG91bGQgY29udGFpbiBib3RoCisgICAgICAgICogSS1kaWFlcmVzaXMgKDAwQ0YpIGFuZCBJLWRpYWVyZXNpcy1hY3V0ZSAoMUUyRSkuCisgICAgICAgICogSW4gZ2VuZXJhbCwgdGhlIHNldCBmb3IgdGhlIG1pZGRsZSBzdWNoIGNoYXJhY3RlciBzaG91bGQgYmUgYSBzdWJzZXQKKyAgICAgICAgKiBvZiB0aGUgc2V0IGZvciB0aGUgZmlyc3QuCisgICAgICAgICovCisgICAgICAgc2V0MT1uZXcgVW5pY29kZVNldCgpOworICAgICAgIHNldDI9bmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICBzc2V0ID0gbmV3IFVTZXJpYWxpemVkU2V0KCk7CisgICAgICAgTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldCgweDQ5LHNzZXQpOworICAgICAgIF9zZXRBZGRTZXJpYWxpemVkKHNldDEsIHNzZXQpOworCisgICAgICAgLyogZW51bWVyYXRlIGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIHBsYXVzaWJsZSB0byBiZSBsYXRpbiBsZXR0ZXJzICovCisgICAgICAgZm9yKHN0YXJ0PTB4YTA7IHN0YXJ0PDB4MjAwMDsgKytzdGFydCkgeworICAgICAgICAgICBpZihOb3JtYWxpemVySW1wbC5nZXREZWNvbXBvc2l0aW9uKHN0YXJ0LCBmYWxzZSwgYnVmZmVyMTYsMCxidWZmZXIxNi5sZW5ndGgpID4gMSAmJiBidWZmZXJbMF09PTB4MDA0OSkgeworICAgICAgICAgICAgICAgc2V0Mi5hZGQoc3RhcnQpOworICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgY29tcGFyZVVTZXRzKHNldDEsIHNldDIsCisgICAgICAgICAgICAgICAgICAgICJbY2Fub24gc3RhcnQgc2V0IG9mIDAwNDldIiwgIlthbGwgYyB3aXRoIGNhbm9uIGRlY29tcCB3aXRoIDAwNDldIiwKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworCisgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIC8vY292ZXIgZm9yRGlnaXQKKyAgICAgICAgY2hhciBjaDEgPSBVQ2hhcmFjdGVyLmZvckRpZ2l0KDcsIDExKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJVQ2hhcmFjdGVyLmZvckRpZ2l0ICIsICI3IiwgU3RyaW5nLnZhbHVlT2YoY2gxKSk7CisgICAgICAgIGNoYXIgY2gyID0gVUNoYXJhY3Rlci5mb3JEaWdpdCgxNywgMjApOworICAgICAgICBhc3NlcnRFcXVhbHMoIlVDaGFyYWN0ZXIuZm9yRGlnaXQgIiwgImgiLCBTdHJpbmcudmFsdWVPZihjaDIpKTsKKworICAgICAgICAvL0ppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDA0MTsgaSA8IDB4MDA1QjsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNKYXZhTGV0dGVyKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiIGV4cGVjdGVkIHRvIGJlIGEgbGV0dGVyIik7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNKYXZhSWRlbnRpZmllclN0YXJ0KGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiIGV4cGVjdGVkIHRvIGJlIGEgSmF2YSBpZGVudGlmaWVyIHN0YXJ0IGNoYXJhY3RlciIpOworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSmF2YUxldHRlck9yRGlnaXQoaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgSmF2YSBsZXR0ZXIiKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyUGFydChpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIEphdmEgaWRlbnRpZmllciBwYXJ0IGNoYXJhY3RlciIpOworICAgICAgICB9CisgICAgICAgIGNoYXJbXSBzcGFjZXMgPSB7J1x0JywnXG4nLCdcZicsJ1xyJywnICd9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNwYWNlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNTcGFjZShzcGFjZXNbaV0pKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArICIgZXhwZWN0ZWQgdG8gYmUgYSBKYXZhIHNwYWNlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmdldFN0cmluZ1Byb3BlcnR5VmFsdWUoVVByb3BlcnR5LkFHRSwnXHUzNDAwJywwKS5lcXVhbHMoIjMuMC4wLjAiKSl7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUzNDAwIGV4cGVjdGVkIHRvIGJlIDMuMC4wLjAiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlUHJvcHNEdW1teSgpIHsKKyAgICAgICAgLy8gY29kZSBjb3ZlcmFnZSBmb3IgVUNhc2VQcm9wcy5nZXREdW1teSgpIAorICAgICAgICBpZihVQ2FzZVByb3BzLmdldER1bW15KCkudG9sb3dlcigweDQxKSE9MHg0MSkgeworICAgICAgICAgICAgZXJybG4oIlVDYXNlUHJvcHMuZ2V0RHVtbXkoKS50b2xvd2VyKDB4NDEpIT0weDQxIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlEaVByb3BzRHVtbXkoKSB7CisgICAgICAgIC8vIGNvZGUgY292ZXJhZ2UgZm9yIFVCaURpUHJvcHMuZ2V0RHVtbXkoKSAKKyAgICAgICAgaWYoVUJpRGlQcm9wcy5nZXREdW1teSgpLmdldENsYXNzKDB4MjApIT0wKSB7CisgICAgICAgICAgICBlcnJsbigiVUJpRGlQcm9wcy5nZXREdW1teSgpLmdldENsYXNzKDB4MjApIT0wIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VUHJvcGVydHlBbGlhc2VzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVByb3BlcnR5QWxpYXNlc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDgyZTI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVByb3BlcnR5QWxpYXNlc1Rlc3QuamF2YQpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgNSAyMDAyCisqIFNpbmNlOiBJQ1UgMi40CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworcHVibGljIGNsYXNzIFVQcm9wZXJ0eUFsaWFzZXNUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAKKyAgICBwdWJsaWMgVVByb3BlcnR5QWxpYXNlc1Rlc3QoKSB7fQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVVByb3BlcnR5QWxpYXNlc1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgcHJvcGVydHkgbmFtZXMgYW5kIHByb3BlcnR5IHZhbHVlIG5hbWVzIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlOYW1lcygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGludCBwLCB2LCBjaG9pY2UsIHJldjsKKyAgICAgICAgZm9yIChwPTA7IDsgKytwKSB7CisgICAgICAgICAgICBib29sZWFuIHNhd1Byb3AgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoY2hvaWNlPTA7IDsgKytjaG9pY2UpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKHAsIGNob2ljZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2F3UHJvcCkgbG9nKCJwcm9wICIgKyBwICsgIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG4gPSAobmFtZSAhPSBudWxsKSA/ICgiXCIiICsgbmFtZSArICciJykgOiAibnVsbCI7CisgICAgICAgICAgICAgICAgICAgIGxvZygiICIgKyBjaG9pY2UgKyAiPSIgKyBuKTsKKyAgICAgICAgICAgICAgICAgICAgc2F3UHJvcCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNob2ljZSA+IDApIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRlc3QgcmV2ZXJzZSBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIHJldiA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlFbnVtKG5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAocmV2ICE9IHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9wZXJ0eSByb3VuZC10cmlwIGZhaWx1cmU6ICIgKyBwICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKyAiIC0+ICIgKyByZXYpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNhd1Byb3ApIHsKKyAgICAgICAgICAgICAgICAvKiBsb29rcyBsaWtlIGEgdmFsaWQgcHJvcGVydHk7IGNoZWNrIHRoZSB2YWx1ZXMgKi8KKyAgICAgICAgICAgICAgICBTdHJpbmcgcG5hbWUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShwLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAocCA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSAyNTU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spIHsKKyAgICAgICAgICAgICAgICAgICAgLyogaXQncyBmYXIgdG9vIHNsb3cgdG8gaXRlcmF0ZSBhbGwgdGhlIHdheSB1cCB0bworICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVhbCBtYXgsIFVfR0NfUF9NQVNLICovCisgICAgICAgICAgICAgICAgICAgIG1heCA9IDB4MTAwMDsgLy8gVV9HQ19OTF9NQVNLOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocCA9PSBVUHJvcGVydHkuQkxPQ0spIHsKKyAgICAgICAgICAgICAgICAgICAgLyogVUJsb2NrQ29kZXMsIHVubGlrZSBvdGhlciB2YWx1ZXMsIHN0YXJ0IGF0IDEgKi8KKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIiIpOworICAgICAgICAgICAgICAgIGZvciAodj0tMTsgOyArK3YpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzYXdWYWx1ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNob2ljZT0wOyA7ICsrY2hvaWNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdm5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bmFtZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocCwgdiwgY2hvaWNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbiA9ICh2bmFtZSAhPSBudWxsKSA/ICgiXCIiICsgdm5hbWUgKyAnIicpIDogIm51bGwiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2F3VmFsdWUpIGxvZygiICIgKyBwbmFtZSArICIsIHZhbHVlICIgKyB2ICsgIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coIiAiICsgY2hvaWNlICsgIj0iICsgbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F3VmFsdWUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNob2ljZT4wKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2bmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGVzdCByZXZlcnNlIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXYgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKHAsIHZuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV2ICE9IHYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlZhbHVlIHJvdW5kLXRyaXAgZmFpbHVyZSAoIiArIHBuYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIik6ICIgKyB2ICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5hbWUgKyAiIC0+ICIgKyByZXYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc2F3VmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXNhd1ZhbHVlICYmIHY+PW1heCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzYXdQcm9wKSB7CisgICAgICAgICAgICAgICAgaWYgKHA+PVVQcm9wZXJ0eS5TVFJJTkdfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwPj1VUHJvcGVydHkuRE9VQkxFX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIHAgPSBVUHJvcGVydHkuU1RSSU5HX1NUQVJUIC0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHA+PVVQcm9wZXJ0eS5NQVNLX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIHAgPSBVUHJvcGVydHkuRE9VQkxFX1NUQVJUIC0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHA+PVVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5NQVNLX1NUQVJUIC0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHA+PVVQcm9wZXJ0eS5CSU5BUllfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5JTlRfU1RBUlQgLSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGkgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yICg7IGkgPD0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MpOworICAgICAgICAgICAgICAgICBpICsrKSB7ICAgCisgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAKKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSAKKyAgICAgICAgICAgICAgICAgICsgIiBzaG91bGQgaGF2ZSBhIG51bGwgcHJvcGVydHkgdmFsdWUgbmFtZSIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVRGMTZUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VVEYxNlRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xN2Q1MWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVRGMTZUZXN0LmphdmEKQEAgLTAsMCArMSwxNjQ0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVVRGMTZVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVVRGMTYKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIGZlYiAwOSAyMDAxCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVURjE2VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgLy8gY29uc3RydWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAqLworICAgIHB1YmxpYyBVVEYxNlRlc3QoKQorICAgIHsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBhcHBlbmQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QXBwZW5kKCkKKyAgICB7CisgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCJ0aGlzIGlzIGEgc3RyaW5nICIpOworICAgICAgICAgIGNoYXIgYXJyYXlbXSA9IG5ldyBjaGFyW1VDaGFyYWN0ZXIuTUFYX1ZBTFVFID4+IDJdOworICAgICAgICAgIGludCBzdHJzaXplID0gc3RyYnVmZi5sZW5ndGgoKTsKKyAgICAgICAgICBpbnQgYXJyYXlzaXplID0gc3Ryc2l6ZTsKKworICAgICAgICAgIFV0aWxpdHkuZ2V0Q2hhcnMoc3RyYnVmZiwgMCwgc3Ryc2l6ZSwgYXJyYXksIDApOworICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgVUNoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKz0gMTAwKSB7CisgICAgICAgIFVURjE2LmFwcGVuZChzdHJidWZmLCBpKTsKKyAgICAgICAgYXJyYXlzaXplID0gVVRGMTYuYXBwZW5kKGFycmF5LCBhcnJheXNpemUsIGkpOworCisgICAgICAgIFN0cmluZyBhcnJheXN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIGFycmF5c2l6ZSk7CisgICAgICAgIGlmICghYXJyYXlzdHIuZXF1YWxzKHN0cmJ1ZmYudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgQ29tcGFyaW5nIGNoYXIgYXJyYXkgYXBwZW5kIGFuZCBzdHJpbmcgYXBwZW5kICIgKworICAgICAgICAgICAgICAid2l0aCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoaXMgaXMgdG8gY2F0ZXIgZm9yIHRoZSBjb21iaW5hdGlvbiBvZiAweERCWFggMHhEQzUwIHdoaWNoCisgICAgICAgIC8vIGZvcm1zIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKGkgPT0gMHhEQzUxKSB7CisgICAgICAgIHN0cnNpemUgLS07CisgICAgICAgIH0KKworICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyYnVmZikgIT0gc3Ryc2l6ZSArIChpIC8gMTAwKSArIDEpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgQ291bnRpbmcgY29kZSBwb2ludHMgaW4gc3RyaW5nIGFwcGVuZGVkIHdpdGggIiArCisgICAgICAgICAgICAgICIgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSk7CisgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gY292ZXJhZ2UgZm9yIG5ldyAxLjUgLSBjb3ZlciBvbmx5IHNvIG5vIHJlYWwgdGVzdAorICAgIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgVVRGMTYuYXBwZW5kQ29kZVBvaW50KHN0cmJ1ZmYsIDB4MTAwMDApOworICAgIGlmIChzdHJidWZmLmxlbmd0aCgpICE9IDIpIHsKKyAgICAgICAgZXJybG4oImZhaWwgYXBwZW5kQ29kZVBvaW50Iik7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBib3VuZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Qm91bmRzKCkKKyAgICB7CisgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPQorICAgICAgICAgICAgICAgICAgICAgICAgLy8wICAgICAxMjM0NSAgICAgNiAgICAgNyAgICAgOCAgICAgOQorICAgICAgICBuZXcgU3RyaW5nQnVmZmVyKCJcdWRjMDAwMTIzXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxXHVkODAyIik7CisgICAgICAgICAgU3RyaW5nIHN0ciA9IHN0cmJ1ZmYudG9TdHJpbmcoKTsKKyAgICAgICAgICBjaGFyIGFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICBpbnQgYm91bmR0eXBlW10gPSB7VVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LkxFQURfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWX07CisgICAgICAgICAgaW50IGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSArKykgeworICAgICAgICBpZiAoVVRGMTYuYm91bmRzKHN0ciwgaSkgIT0gYm91bmR0eXBlW2ldKSB7CisgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBjaGVja2luZyBib3VuZCB0eXBlIGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuYm91bmRzKHN0cmJ1ZmYsIGkpICE9IGJvdW5kdHlwZVtpXSkgeworICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgY2hlY2tpbmcgYm91bmQgdHlwZSBhdCBpbmRleCAiICsgaSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgMCwgbGVuZ3RoLCBpKSAhPSBib3VuZHR5cGVbaV0pIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGNoZWNraW5nIGJvdW5kIHR5cGUgYXQgaW5kZXggIiArIGkpOworICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIC8vIGRvZXMgbm90IHN0cmFkZGxlIGJldHdlZW4gc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICBpbnQgc3RhcnQgPSA0OworICAgICAgICAgIGludCBsaW1pdCA9IDk7CisgICAgICAgICAgaW50IHN1YmJvdW5kdHlwZTFbXSA9IHtVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5MRUFEX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZfTsKKyAgICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5ib3VuZHMoYXJyYXksIHN0YXJ0LCBsaW1pdCwgLTEpOworICAgICAgICBlcnJsbigiRkFJTCBPdXQgb2YgYm91bmRzIGluZGV4IGluIGJvdW5kcyBzaG91bGQgZmFpbCIpOworICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vIGdldHRpbmcgcmlkIG9mIHdhcm5pbmdzCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgIH0KKworICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQgLSBzdGFydDsgaSArKykgeworICAgICAgICBpZiAoVVRGMTYuYm91bmRzKGFycmF5LCBzdGFydCwgbGltaXQsIGkpICE9IHN1YmJvdW5kdHlwZTFbaV0pIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMRUQgU3ViYXJyYXkgYm91bmRzIGluIFsiICsgc3RhcnQgKyAiLCAiICsgbGltaXQgKworICAgICAgICAgICAgICAiXSBleHBlY3RlZCAiICsgc3ViYm91bmR0eXBlMVtpXSArICIgYXQgb2Zmc2V0ICIgKyBpKTsKKyAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIC8vIHN0YXJ0cyBmcm9tIHRoZSBtaWQgb2YgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICAgIGludCBzdWJib3VuZHR5cGUyW10gPSB7VVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZfTsKKworICAgICAgICAgIHN0YXJ0ID0gNjsKKyAgICAgICAgICBsaW1pdCA9IDk7CisgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdCAtIHN0YXJ0OyBpICsrKSB7CisgICAgICAgIGlmIChVVEYxNi5ib3VuZHMoYXJyYXksIHN0YXJ0LCBsaW1pdCwgaSkgIT0gc3ViYm91bmR0eXBlMltpXSkgeworICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUxFRCBTdWJhcnJheSBib3VuZHMgaW4gWyIgKyBzdGFydCArICIsICIgKyBsaW1pdCArCisgICAgICAgICAgICAgICJdIGV4cGVjdGVkICIgKyBzdWJib3VuZHR5cGUyW2ldICsgIiBhdCBvZmZzZXQgIiArIGkpOworICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gZW5kcyBpbiB0aGUgbWlkIG9mIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICBpbnQgc3ViYm91bmR0eXBlM1tdID0ge1VURjE2LkxFQURfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWX07CisgICAgICAgICAgc3RhcnQgPSA1OworICAgICAgICAgIGxpbWl0ID0gODsKKyAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0IC0gc3RhcnQ7IGkgKyspIHsKKyAgICAgICAgaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgc3RhcnQsIGxpbWl0LCBpKSAhPSBzdWJib3VuZHR5cGUzW2ldKSB7CisgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEIFN1YmFycmF5IGJvdW5kcyBpbiBbIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsKKyAgICAgICAgICAgICAgIl0gZXhwZWN0ZWQgIiArIHN1YmJvdW5kdHlwZTNbaV0gKyAiIGF0IG9mZnNldCAiICsgaSk7CisgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGNoYXJBdCBhbmQgY2hhckF0Q29kZVBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENoYXJBdCgpCisgICAgeworICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0KKyAgICAgICAgbmV3IFN0cmluZ0J1ZmZlcigiMTIzNDVcdWQ4MDBcdWRjMDE2Nzg5MFx1ZDgwMFx1ZGMwMiIpOworICAgICAgICAgIGlmIChVVEYxNi5jaGFyQXQoc3RyYnVmZiwgMCkgIT0gJzEnIHx8IFVURjE2LmNoYXJBdChzdHJidWZmLCAyKSAhPSAnMycKKyAgICAgICAgICAgICAgfHwgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDUpICE9IDB4MTAwMDEgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDYpICE9IDB4MTAwMDEgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDEyKSAhPSAweDEwMDAyIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChzdHJidWZmLCAxMykgIT0gMHgxMDAwMikgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIGNoYXJhY3RlciBmcm9tIHN0cmluZyBidWZmZXIgZXJyb3IiICk7CisgICAgICAgICAgfQorICAgICAgICAgIFN0cmluZyBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAgICAgaWYgKFVURjE2LmNoYXJBdChzdHIsIDApICE9ICcxJyB8fCBVVEYxNi5jaGFyQXQoc3RyLCAyKSAhPSAnMycgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0ciwgNSkgIT0gMHgxMDAwMSB8fCBVVEYxNi5jaGFyQXQoc3RyLCA2KSAhPSAweDEwMDAxCisgICAgICAgIHx8IFVURjE2LmNoYXJBdChzdHIsIDEyKSAhPSAweDEwMDAyIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChzdHIsIDEzKSAhPSAweDEwMDAyKQorICAgICAgICB7CisgICAgICAgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgY2hhcmFjdGVyIGZyb20gc3RyaW5nIGVycm9yIiApOworICAgICAgICB9CisgICAgICAgICAgY2hhciBhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgICBpbnQgbGltaXQgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgICAgaWYgKFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCAwKSAhPSAnMScgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDIpICE9ICczJyB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgNSkgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgNikgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgMTIpICE9IDB4MTAwMDIgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDEzKSAhPSAweDEwMDAyKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgY2hhcmFjdGVyIGZyb20gYXJyYXkgZXJyb3IiICk7CisgICAgICAgICAgfQorICAgICAgICAgIC8vIGNoZWNrIHRoZSBzdWIgYXJyYXkgaGVyZS4KKyAgICAgICAgICBzdGFydCA9IDY7CisgICAgICAgICAgbGltaXQgPSAxMzsKKyAgICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgLTEpOworICAgICAgICBlcnJsbigiRkFJTCBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgfQorICAgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCA4KTsKKyAgICAgICAgZXJybG4oIkZBSUwgb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDApICE9IDB4ZGMwMSkgeworICAgICAgICBlcnJsbigiRkFJTCBFeHBlY3RlZCByZXN1bHQgaW4gc3ViYXJyYXkgMHhkYzAxIik7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgNikgIT0gMHhkODAwKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEV4cGVjdGVkIHJlc3VsdCBpbiBzdWJhcnJheSAweGQ4MDAiKTsKKyAgICAgICAgICB9CisgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcmVwbGFjZWFibGUgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc3RyKTsKKyAgICAgICAgICBpZiAoVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAwKSAhPSAnMScgfHwKKyAgICAgICAgICAgICAgVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAyKSAhPSAnMycgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCA1KSAhPSAweDEwMDAxIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChyZXBsYWNlYWJsZSwgNikgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQocmVwbGFjZWFibGUsIDEyKSAhPSAweDEwMDAyIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChyZXBsYWNlYWJsZSwgMTMpICE9IDB4MTAwMDIpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyBjaGFyYWN0ZXIgZnJvbSByZXBsYWNlYWJsZSBlcnJvciIgKTsKKyAgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGNvdW50Q29kZVBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvdW50Q29kZVBvaW50KCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIGNoYXIgICAgICAgICBhcnJheVtdID0gbnVsbDsKKyAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IDAgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoIiIpICE9IDAgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksMCAsMCkgIT0gMCkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyBmb3IgZW1wdHkgc3RyaW5ncyIpOworICAgICAgICB9CisKKyAgICAgICAgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoaXMgaXMgYSBzdHJpbmcgIik7CisgICAgICAgIFN0cmluZyBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAgIGFycmF5ID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGludCBzaXplID0gc3RyLmxlbmd0aCgpOworCisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgMCkgIT0gMCkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyBmb3IgMCBvZmZzZXQgYXJyYXkiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHIpICE9IHNpemUgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyYnVmZikgIT0gc2l6ZSB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSkgIT0gc2l6ZSkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgICAgICB9CisKKyAgICAgICAgVVRGMTYuYXBwZW5kKHN0cmJ1ZmYsIDB4MTAwMDApOworICAgICAgICBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAgIGFycmF5ID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHIpICE9IHNpemUgKyAxIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IHNpemUgKyAxIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCBzaXplICsgMSkgIT0gc2l6ZSArIDEgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAyKSAhPSBzaXplICsgMSkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgICAgICB9CisgICAgICAgIFVURjE2LmFwcGVuZChzdHJidWZmLCAweDYxKTsKKyAgICAgICAgc3RyID0gc3RyYnVmZi50b1N0cmluZygpOworICAgICAgICBhcnJheSA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyKSAhPSBzaXplICsgMiB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChzdHJidWZmKSAhPSBzaXplICsgMiB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSArIDEpICE9IHNpemUgKyAxIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCBzaXplICsgMikgIT0gc2l6ZSArIDEgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAzKSAhPSBzaXplICsgMikgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGRlbGV0ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REZWxldGUoKQorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8wMTIzNDU2Nzg5MDEyMzQ1NgorICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoZXNlIGFyZSBzdHJpbmdzIik7CisgICAgICAgIGludCBzaXplID0gc3RyYnVmZi5sZW5ndGgoKTsKKyAgICAgICAgY2hhciBhcnJheVtdID0gc3RyYnVmZi50b1N0cmluZygpLnRvQ2hhckFycmF5KCk7CisKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIHN0cmJ1ZmYubGVuZ3RoKCkpOworICAgICAgICBlcnJsbigiRkFJTCBkZWxldGluZyBvdXQgb2YgYm91bmRzIGNoYXJhY3RlciBzaG91bGQgZmFpbCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgc3RyYnVmZi5sZW5ndGgoKSAtIDEpOworICAgICAgICBpZiAoIXN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoInRoZSBzdHJpbmciKSkgeworICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyAiICsKKyAgICAgICAgICAiXCJ0aGUgc3RyaW5nXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgc2l6ZSk7CisgICAgICAgIGVycmxuKCJGQUlMIGRlbGV0aW5nIG91dCBvZiBib3VuZHMgY2hhcmFjdGVyIHNob3VsZCBmYWlsIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIHNpemUgLSAxKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIHNpemUpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoInRoZSBzdHJpbmciKSkgeworICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyAiICsKKyAgICAgICAgICAiXCJ0aGUgc3RyaW5nXCIiKTsKKyAgICAgICAgfQorICAgIC8vMDEyMzQ1Njc4ICAgICA5ICAgICAwMSAgICAgMiAgICAgIDMgICAgIDQKKyAgICAgICAgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInN0cmluZzogXHVkODAwXHVkYzAwIFx1ZDgwMVx1ZGMwMSBcdWQ4MDFcdWRjMDEiKTsKKyAgICAgICAgc2l6ZSA9IHN0cmJ1ZmYubGVuZ3RoKCk7CisgICAgICAgIGFycmF5ID0gc3RyYnVmZi50b1N0cmluZygpLnRvQ2hhckFycmF5KCk7CisKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDgpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgOCk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCA5KTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDgpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgOSk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCA2KTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDYpOworICAgICAgICBpZiAoIXN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoInN0cmluZyIpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGV4cGVjdGVkIHJlc3VsdCBhZnRlciBkZWxldGluZyBjaGFyYWN0ZXJzIGlzIFwic3RyaW5nXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDgpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA4KTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgOSk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDgpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA5KTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgNik7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDYpOworICAgICAgICBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBzaXplKTsKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKCJzdHJpbmciKSkgeworICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyBcInN0cmluZ1wiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50IGFuZCBmaW5kQ29kZVBvaW50T2Zmc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdGZpbmRPZmZzZXQoKQorICAgIHsKKyAgICAgICAgLy8gaml0dGVyYnVnIDQ3CisgICAgICAgIFN0cmluZyBzdHIgPSAiYVx1RDgwMFx1REMwMGIiOworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyKTsKKyAgICAgICAgY2hhciBhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGludCBsaW1pdCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgaWYgKFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0ciwgMCkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDApICE9IDAgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyYnVmZiwgMCkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgMCkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChhcnJheSwgMCwgbGltaXQsIDApICE9IDApIHsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgZmlyc3QgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDEpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCAxKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgMSkgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCAxKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCAxKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAwLCBsaW1pdCwgMSkgIT0gMSkgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBzZWNvbmQgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDIpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCAyKSAhPSAzIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgMikgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCAyKSAhPSAzIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCAyKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAwLCBsaW1pdCwgMikgIT0gMykgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSB0aGlyZCBjb2RlcG9pbnQgb2Zmc2V0IHRvIGEgc3RyaW5nIHdpdGggIiArCisgICAgICAgICAgInN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgMykgIT0gMiB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHIsIDMpICE9IDQgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCAzKSAhPSAyIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0cmJ1ZmYsIDMpICE9IDQgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMCwgbGltaXQsIDMpICE9IDIgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCAzKSAhPSA0KSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGxhc3QgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDQpICE9IDMgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCA0KSAhPSAzIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCA0KSAhPSAzKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGxlbmd0aCBvZmZzZXQgdG8gYSBzdHJpbmcgd2l0aCAiICsKKyAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDUpOworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKworICAgICAgICAgICJ3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyB0aGlzIGlzIGEgc3VjY2VzcworICAgICAgICBsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0ciwgNCk7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGEgbm9uLWV4aXN0ZW5jZSBjb2RlcG9pbnQgdG8gYSBzdHJpbmcgIiArCisgICAgICAgICAgIndpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIGxvZ2xuKCJQYXNzZWQgb3V0IG9mIGJvdW5kcyBjb2RlcG9pbnQgb2Zmc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCA1KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCA0KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgNSk7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGEgbm9uLWV4aXN0ZW5jZSBjb2RlcG9pbnQgdG8gYSBzdHJpbmcgIiArCisgICAgICAgICAgIndpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIGxvZ2xuKCJQYXNzZWQgb3V0IG9mIGJvdW5kcyBjb2RlcG9pbnQgb2Zmc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCA0KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAxLCAzLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAxLCAzLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDEsIDMsIDEpICE9IDAgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMSwgMywgMikgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChhcnJheSwgMSwgMywgMSkgIT0gMikgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHZhbGlkIGNvZGVwb2ludCBvZmZzZXQgaW4gc3ViIGFycmF5Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZHMgZ2V0Q2hhckNvdW50LCAqU3Vycm9nYXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdldENoYXJDb3VudFN1cnJvZ2F0ZSgpCisgICAgeworICAgICAgICBpZiAoVVRGMTYuZ2V0Q2hhckNvdW50KDB4NjEpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZ2V0Q2hhckNvdW50KDB4MTAwMDApICE9IDIpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgZ2V0Q2hhckNvdW50IHJlc3VsdCBmYWlsdXJlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHg2MSkgIT0gMCB8fAorICAgICAgICBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDYxKSAhPSAweDYxIHx8CisgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhcikweDYxKSB8fAorICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKTB4NjEpIHx8CisgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgxMDAwMCkgIT0gMHhkODAwIHx8CisgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MTAwMDApICE9IDB4ZGMwMCB8fAorICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpMHhkODAwKSAhPSB0cnVlIHx8CisgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpMHhkODAwKSB8fAorICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpMHhkYzAwKSB8fAorICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKTB4ZGMwMCkgIT0gdHJ1ZSkgeworICAgICAgICBlcnJsbigiRkFJTCAqU3Vycm9nYXRlIHJlc3VsdCBmYWlsdXJlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpMHg2MSkgfHwgIVVURjE2LmlzU3Vycm9nYXRlKChjaGFyKTB4ZDgwMCkKKyAgICAgICAgICAgIHx8ICFVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhcikweGRjMDApKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGlzU3Vycm9nYXRlIHJlc3VsdCBmYWlsdXJlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZCBpbnNlcnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5zZXJ0KCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigiMDEyMzQ1Njc4OSIpOworICAgICAgICBjaGFyIGFycmF5W10gPSBuZXcgY2hhclsxMjhdOworICAgICAgICBVdGlsaXR5LmdldENoYXJzKHN0cmJ1ZmYsIDAsIHN0cmJ1ZmYubGVuZ3RoKCksIGFycmF5LCAwKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDEwOworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNSwgJ3QnKTsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDUsICdzJyk7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCA1LCAnZScpOworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNSwgJ3QnKTsKKyAgICAgICAgaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygiMDEyMzR0ZXN0NTY3ODkiKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgaW5zZXJ0aW5nIFwidGVzdFwiIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDUsICd0Jyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCA1LCAncycpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNSwgJ2UnKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDUsICd0Jyk7CisgICAgICAgIFN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgICAgICBpZiAoIShzdHIuZXF1YWxzKCIwMTIzNHRlc3Q1Njc4OSIpKSkgeworICAgICAgICBlcnJsbigiRkFJTCBpbnNlcnRpbmcgXCJ0ZXN0XCIiKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgMCwgMHgxMDAwMCk7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCAxMSwgMHgxMDAwMCk7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCBzdHJidWZmLmxlbmd0aCgpLCAweDEwMDAwKTsKKyAgICAgICAgaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMDAxMjM0dGVzdFx1ZDgwMFx1ZGMwMDU2Nzg5XHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGluc2VydGluZyBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgMCwgMHgxMDAwMCk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCAxMSwgMHgxMDAwMCk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCBsZW5ndGgsIDB4MTAwMDApOworICAgICAgICBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgICAgICBpZiAoIShzdHIuZXF1YWxzKAorICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAwMTIzNHRlc3RcdWQ4MDBcdWRjMDA1Njc4OVx1ZDgwMFx1ZGMwMCIpKSkgeworICAgICAgICBlcnJsbigiRkFJTCBpbnNlcnRpbmcgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgLTEsIDApOworICAgICAgICBlcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDY0LCAwKTsKKyAgICAgICAgZXJybG4oIkZBSUwgaW52YWxpZCBpbnNlcnRpb24gb2Zmc2V0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCAtMSwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMIGludmFsaWQgaW5zZXJ0aW9uIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNjQsIDApOworICAgICAgICBlcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgLy8gZXhjZWVkZWQgYXJyYXkgc2l6ZQorICAgICAgICBVVEYxNi5pbnNlcnQoYXJyYXksIGFycmF5Lmxlbmd0aCwgNjQsIDApOworICAgICAgICBlcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3RpbmcgbW92ZUNvZGVQb2ludE9mZnNldCBBUElzCisgICAgICovCisKKyAgICAvLworICAgIC8vICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0CisgICAgLy8gICAgICBSdW4gYSBzaW5nbGUgdGVzdCBjYXNlIHRocm91Z2ggZWFjaCBvZiB0aGUgbW92ZUNvZGVQb2ludE9mZnNldCgpIGZ1bmN0aW9ucy4KKyAgICAvLyAgICAgICAgICBQYXJhbWV0ZXJzIC0KKyAgICAvLyAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgIFRoZSBzdHJpbmcgdG8gd29yayBpbi4KKyAgICAvLyAgICAgICAgICAgICAgc3RhcnRJZHggICAgICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiB3aXRoaW4gdGhlIHN0cmluZy4KKyAgICAvLyAgICAgICAgICAgICAgYW1vdW50ICAgICAgICAgIFRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gbW92ZS4KKyAgICAvLyAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgIFRoZSBzdHJpbmcgaW5kZXggYWZ0ZXIgdGhlIG1vdmUsIG9yIC0xIGlmIHRoZQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICBwcml2YXRlIHZvaWQgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZyBzLCBpbnQgc3RhcnRJZHgsIGludCBhbW91bnQsIGludCBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICAvLyBUZXN0IHdpdGggdGhlIFN0cmluZyBmbGF2b3Igb2YgbW92ZUNvZGVQb2ludE9mZnNldAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQocywgc3RhcnRJZHgsIGFtb3VudCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIFwiIiArIHMgKyAiXCIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCAiICArIHJlc3VsdCArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRSZXN1bHQ9PS0xID8gImV4Y2VwdGlvbiIgOiBJbnRlZ2VyLnRvU3RyaW5nKGV4cGVjdGVkUmVzdWx0KSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZyBcIiIgKyBzICsgIlwiLCAiICsgc3RhcnRJZHggKyAiLCAiICsgYW1vdW50ICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgZXhjZXB0aW9uIiArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3Qgd2l0aCB0aGUgU3RyaW5nQnVmZmVyIGZsYXZvciBvZiBtb3ZlQ29kZVBvaW50T2Zmc2V0CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIocyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzYiwgc3RhcnRJZHgsIGFtb3VudCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nQnVmZmVyIFwiIiArIHMgKyAiXCIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCAiICArIHJlc3VsdCArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRSZXN1bHQ9PS0xID8gImV4Y2VwdGlvbiIgOiBJbnRlZ2VyLnRvU3RyaW5nKGV4cGVjdGVkUmVzdWx0KSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZ0J1ZmZlciBcIiIgKyBzICsgIlwiLCAiICsgc3RhcnRJZHggKyAiLCAiICsgYW1vdW50ICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgZXhjZXB0aW9uIiArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3Qgd2l0aCB0aGUgY2hhcltdIGZsYXZvciBvZiBtb3ZlQ29kZVBvaW50T2Zmc2V0CisgICAgICAgIGNoYXIgY2FbXSA9IHMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGNhLCAwLCBzLmxlbmd0aCgpLCBzdGFydElkeCwgYW1vdW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChjaGFyW10gXCIiICsgcyArICJcIiwgMCwgIiArIHMubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIHN0YXJ0SWR4ICsgIiwgIiArIGFtb3VudCArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiIHJldHVybmVkICIgICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZFJlc3VsdD09LTEgPyAiZXhjZXB0aW9uIiA6IEludGVnZXIudG9TdHJpbmcoZXhwZWN0ZWRSZXN1bHQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoY2hhcltdIFwiIiArIHMgKyAiXCIsIDAsICIgKyBzLmxlbmd0aCgpCisgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCBleGNlcHRpb24iICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUHV0IHRoZSB0ZXN0IHN0cmluZyBpbnRvIHRoZSBpbnRlcmlvciBvZiBhIGNoYXIgYXJyYXksCisgICAgICAgIC8vICAgcnVuIHRlc3Qgb24gdGhlIHN1YnNlY3Rpb24gb2YgdGhlIGFycmF5LgorICAgICAgICBjaGFyIGNhMltdID0gbmV3IGNoYXJbcy5sZW5ndGgoKSsyXTsKKyAgICAgICAgY2EyWzBdID0gKGNoYXIpMHhkODAwOworICAgICAgICBjYTJbcy5sZW5ndGgoKSsxXSA9IChjaGFyKTB4ZDhmZjsKKyAgICAgICAgcy5nZXRDaGFycygwLCBzLmxlbmd0aCgpLCBjYTIsIDEpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoY2EyLCAxLCBzLmxlbmd0aCgpKzEsIHN0YXJ0SWR4LCBhbW91bnQpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGNoYXJbXSBcIiIgKyAiLiIgKyBzICsgIi5cIiwgMSwgIiArIChzLmxlbmd0aCgpKzEpCisgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgIiAgKyByZXN1bHQgKyAiLCBleHBlY3RlZCByZXN1bHQgd2FzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkUmVzdWx0PT0tMSA/ICJleGNlcHRpb24iIDogSW50ZWdlci50b1N0cmluZyhleHBlY3RlZFJlc3VsdCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChjaGFyW10gXCIiICsgIi4iICsgcyArICIuXCIsIDEsICIgKyAocy5sZW5ndGgoKSsxKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgc3RhcnRJZHggKyAiLCAiICsgYW1vdW50ICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgZXhjZXB0aW9uIiArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TW92ZUNvZGVQb2ludE9mZnNldCgpCisgICAgeworICAgICAgICAvLyBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nLCBzdGFydEluZGV4LCBhbW91bnQsIGV4cGVjdGVkICk7ICBleHBlY3RlZD0tMSBmb3IgZXhjZXB0aW9uLgorCisgICAgICAgIC8vIE5vIFN1cHBsZW1lbnRhcnkgY2hhcnMKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYmMiLCAxLCAgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIDEsIC0yLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgIDIsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIDEsICAzLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgIDAsIDEpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMywgMCwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgNCwgMCwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIDAsIDAsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIC0xLCAwLCAtMSk7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCIiLCAwLCAwLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCIiLCAwLCAtMSwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIiIsIDAsIDEsIC0xKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImEiLCAwLCAwLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhIiwgMSwgMCwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYSIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImEiLCAxLCAtMSwgMCk7CisKKworICAgICAgICAvLyBTdXBwbGVtZW50YXJ5IGluIG1pZGRsZSBvZiBzdHJpbmcKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwXHVkYzAwYiIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgMCwgMiwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMFx1ZGMwMGIiLCAwLCAzLCA0KTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwXHVkYzAwYiIsIDAsIDQsIC0xKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTEsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTIsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTMsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTQsIC0xKTsKKworICAgICAgICAvLyBTdXBwbGVtZW50YXJ5IGF0IHN0YXJ0IG9mIHN0cmluZworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMCwgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkYzAwYWIiLCAxLCAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWQ4MDBcdWRjMDBhYiIsIDIsIDEsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMiwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMSwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMCwgLTEsIC0xKTsKKworCisgICAgICAgIC8vIFN1cHBsZW1lbnRhcnkgYXQgZW5kIG9mIHN0cmluZworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMSwgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCAyLCAxLCA0KTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZDgwMFx1ZGMwMCIsIDMsIDEsIDQpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgNCwgMSwgLTEpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCA1LCAtMiwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgNCwgLTEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMywgLTEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMiwgLTEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMSwgLTEsIDApOworCisgICAgICAgIC8vIFVucGFpcmVkIHN1cnJvZ2F0ZSBpbiBtaWRkbGUKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwYiIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMSwgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMGIiLCAyLCAxLCAzKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBiIiwgMCwgMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAxLCAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwYiIsIDIsIDEsIDMpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMFx1ZDgwMGIiLCAwLCAxLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDEsIDEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBcdWQ4MDBiIiwgMiwgMSwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMFx1ZDgwMGIiLCAzLCAxLCA0KTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMSwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMiwgLTEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMywgLTEsIDIpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAxLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAyLCAtMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAzLCAtMSwgMik7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDEsIC0xLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDIsIC0xLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDMsIC0xLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDQsIC0xLCAzKTsKKworICAgICAgICAvLyBVbnBhaXJlZCBzdXJyb2dhdGUgYXQgc3RhcnQKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWRjMDBhYiIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMGFiIiwgMCwgMiwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkODAwYWIiLCAwLCAzLCAzKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWRjMDBcdWRjMDBhYiIsIDAsIDQsIDQpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkYzAwYWIiLCAyLCAtMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwYWIiLCAxLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwYWIiLCAxLCAtMiwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZDgwMGFiIiwgMiwgLTEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZGMwMFx1ZGMwMGFiIiwgMiwgLTIsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZGMwMFx1ZGMwMGFiIiwgMiwgLTMsIC0xKTsKKworICAgICAgICAvLyBVbnBhaXJlZCBzdXJyb2dhdGUgYXQgZW5kCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWRjMDBcdWRjMDBhYiIsIDMsIDEsIDQpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkYzAwXHVkYzAwYWIiLCAyLCAxLCAzKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZGMwMFx1ZGMwMGFiIiwgMSwgMSwgMik7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZGMwMFx1ZGMwMGFiIiwgNCwgLTEsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkYzAwXHVkYzAwYWIiLCAzLCAtMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWRjMDBcdWRjMDBhYiIsIDIsIC0xLCAxKTsKKworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8wMTIzNDU2Nzg5MCAgICAgMSAgICAgMiAgICAgMyAgICAgNDU2Nzg5MDEyMzQKKyAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoIjAxMjM0NTY3ODlcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEwMTIzNDU2Nzg5Iik7CisgICAgICAgIGludCBtb3ZlMVtdID0geyAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLAorICAgICAgICAgICAgICAgICAgICAgICAxMiwgMTIsIDE0LCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwKKyAgICAgICAgICAgICAgICAgICAgICAgMjEsIDIyLCAyMywgMjR9OworICAgICAgICBpbnQgbW92ZTJbXSA9IHsgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLCAxMiwKKyAgICAgICAgICAgICAgICAgICAgICAgMTQsIDE0LCAxNSwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsCisgICAgICAgICAgICAgICAgICAgICAgIDIyLCAyMywgMjQsIC0xfTsKKyAgICAgICAgaW50IG1vdmUzW10gPSB7IDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLCAxMiwgMTQsCisgICAgICAgICAgICAgICAgICAgICAgIDE1LCAxNSwgMTYsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLAorICAgICAgICAgICAgICAgICAgICAgICAyMywgMjQsIC0xLCAtMX07CisgICAgICAgIGludCBzaXplID0gc3RyLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldChzdHIsIGksIDEsIG1vdmUxW2ldKTsKKyAgICAgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldChzdHIsIGksIDIsIG1vdmUyW2ldKTsKKyAgICAgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldChzdHIsIGksIDMsIG1vdmUzW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgc3RyYXJyYXlbXSA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBpZiAoVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzdHJhcnJheSwgOSwgMTMsIDAsIDIpICE9IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNb3Zpbmcgb2Zmc2V0IDAgYnkgMiBjb2RlcG9pbnQgaW4gc3ViYXJyYXkgWzksIDEzXSAiICsKKyAgICAgICAgICAgICJleHBlY3RlZCByZXN1bHQgMyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0cmFycmF5LCA5LCAxMywgMSwgMikgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgMSBieSAyIGNvZGVwb2ludCBpbiBzdWJhcnJheSBbOSwgMTNdICIgKworICAgICAgICAgICAgImV4cGVjdGVkIHJlc3VsdCA0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoc3RyYXJyYXksIDExLCAxNCwgMCwgMikgIT0gMykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgMCBieSAyIGNvZGVwb2ludCBpbiBzdWJhcnJheSBbMTEsIDE0XSAiCisgICAgICAgICAgICAgICAgICAgICsgImV4cGVjdGVkIHJlc3VsdCAzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZHMgc2V0Q2hhckF0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNldENoYXJBdCgpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoIjAxMjM0NSIpOworICAgICAgICBjaGFyIGFycmF5W10gPSBuZXcgY2hhclsxMjhdOworICAgICAgICBVdGlsaXR5LmdldENoYXJzKHN0cmJ1ZmYsIDAsIHN0cmJ1ZmYubGVuZ3RoKCksIGFycmF5LCAwKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDY7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCBpLCAnMCcpOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgaSwgJzAnKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygiMDAwMDAwIikpIHx8CisgICAgICAgICEoc3RyLmVxdWFscygiMDAwMDAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDaGFyIHRvICcwJyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgMCwgMHgxMDAwMCk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCA0LCAweDEwMDAwKTsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDcsIDB4MTAwMDApOworICAgICAgICBpZiAoIShzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwMDBcdWQ4MDBcdWRjMDAwXHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDaGFyIHRvIDB4MTAwMDAgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDAsIDB4MTAwMDApOworICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgNCwgMHgxMDAwMCk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCA3LCAweDEwMDAwKTsKKyAgICAgICAgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKCEoc3RyLmVxdWFscygiXHVkODAwXHVkYzAwMDBcdWQ4MDBcdWRjMDAwXHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDaGFyIHRvIDB4MTAwMDAgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDAsICcwJyk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCAxLCAnMScpOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgMiwgJzInKTsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDQsICczJyk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCA0LCAnNCcpOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgNSwgJzUnKTsKKyAgICAgICAgaWYgKCFzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKCIwMTIzNDUiKSkgeworICAgICAgICBlcnJsbigiRmFpbCBjb252ZXJ0aW5nIHN1cHBsZW1lbnRhcmllcyBpbiBTdHJpbmdCdWZmZXIgdG8gQk1QICIgKworICAgICAgICAgICJjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDAsICcwJyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCAxLCAnMScpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgMiwgJzInKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDQsICczJyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCA0LCAnNCcpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgNSwgJzUnKTsKKyAgICAgICAgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKCIwMTIzNDUiKSkgeworICAgICAgICBlcnJsbigiRmFpbCBjb252ZXJ0aW5nIHN1cHBsZW1lbnRhcmllcyBpbiBhcnJheSB0byBCTVAgIiArCisgICAgICAgICAgImNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgLTEsIDApOworICAgICAgICBlcnJsbigiRkFJTDogc2V0dGluZyBjaGFyYWN0ZXIgYXQgaW52YWxpZCBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIC0xLCAwKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IHNldHRpbmcgY2hhcmFjdGVyIGF0IGludmFsaWQgb2Zmc2V0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCBsZW5ndGgsIDApOworICAgICAgICBlcnJsbigiRkFJTDogc2V0dGluZyBjaGFyYWN0ZXIgYXQgaW52YWxpZCBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIGxlbmd0aCwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXR0aW5nIGNoYXJhY3RlciBhdCBpbnZhbGlkIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgdmFsdWVvZiBBUElzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZhbHVlT2YoKQorICAgIHsKKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoJ1x1ZDgwMCcsJ1x1ZGMwMCcpIT0weDEwMDAwKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRDb2RlUG9pbnQoJ1x1ZDgwMCcsJ1x1ZGMwMCcpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFVVEYxNi52YWx1ZU9mKDB4NjEpLmVxdWFscygiYSIpIHx8CisgICAgICAgICFVVEYxNi52YWx1ZU9mKDB4MTAwMDApLmVxdWFscygiXHVkODAwXHVkYzAwIikpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IHZhbHVlb2YoY2hhcjMyKSIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKCIwMTIzNFx1ZDgwMFx1ZGMwMDU2Nzg5Iik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIpOworICAgICAgICBjaGFyIGFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHsiMCIsICIxIiwgIjIiLCAiMyIsICI0IiwgIlx1ZDgwMFx1ZGMwMCIsCisgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAiLCAiNSIsICI2IiwgIjciLCAiOCIsICI5In07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIGlmICghVVRGMTYudmFsdWVPZihzdHIsIGkpLmVxdWFscyhleHBlY3RlZFtpXSkgfHwKKyAgICAgICAgICAgICAgICAhVVRGMTYudmFsdWVPZihzdHJidWZmLCBpKS5lcXVhbHMoZXhwZWN0ZWRbaV0pIHx8CisgICAgICAgICAgICAgICAgIVVURjE2LnZhbHVlT2YoYXJyYXksIDAsIGxlbmd0aCwgaSkuZXF1YWxzKGV4cGVjdGVkW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiB2YWx1ZU9mKCkgZXhwZWN0ZWQgIiArIGV4cGVjdGVkW2ldKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2Yoc3RyLCAtMSk7CisgICAgICAgIGVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2Yoc3RyYnVmZiwgLTEpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi52YWx1ZU9mKGFycmF5LCAwLCBsZW5ndGgsIC0xKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihzdHIsIGxlbmd0aCk7CisgICAgICAgIGVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2Yoc3RyYnVmZiwgbGVuZ3RoKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihhcnJheSwgMCwgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIVVURjE2LnZhbHVlT2YoYXJyYXksIDYsIGxlbmd0aCwgMCkuZXF1YWxzKCJcdWRjMDAiKSB8fAorICAgICAgICAhVVRGMTYudmFsdWVPZihhcnJheSwgMCwgNiwgNSkuZXF1YWxzKCJcdWQ4MDAiKSkgeworICAgICAgICBlcnJsbigiRkFJTDogZXJyb3IgZ2V0dGluZyBwYXJ0aWFsIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihhcnJheSwgMywgNSwgLTEpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi52YWx1ZU9mKGFycmF5LCAzLCA1LCAzKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5kZXhPZigpCisgICAgeworICAgIC8vMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1CisgICAgICAgIFN0cmluZyB0ZXN0MSAgICAgPSAidGVzdCB0ZXN0IHR0ZXN0IHRldGVzdCB0ZXN0ZXN0ZXN0c3R0IjsKKyAgICAgICAgU3RyaW5nIHRlc3QyICAgICA9ICJ0ZXN0IjsKKyAgICAgICAgaW50ICAgIHRlc3RDaGFyMSA9IDB4NzQ7CisgICAgICAgIGludCAgICB0ZXN0Q2hhcjIgPSAweDIwNDAyOworICAgICAgICAvLyBpbnQgICAgdGVzdENoYXIzID0gMHhkYzAyOworICAgICAgICAvLyBpbnQgICAgdGVzdENoYXI0ID0gMHhkODQxOworICAgICAgICBTdHJpbmcgdGVzdDMgICAgID0gIlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1MDA3Mlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MyI7CisgICAgICAgIFN0cmluZyB0ZXN0NCAgICAgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHRlc3RDaGFyMik7CisKKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyKSAhPSAwIHx8CisgICAgICAgICAgICBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0MiwgMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kICciICsgdGVzdDIgKworICAgICAgICAgICAgICAgICAgIicgYXQgcG9zaXRpb24gMCBpbiB0ZXh0ICciICsgdGVzdDEgKyAiJyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEpICE9IDAgfHwKKyAgICAgICAgICAgIFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSwgMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDB4IiArCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMSkgKworICAgICAgICAgICAgICAgICAgIiBhdCBwb3NpdGlvbiAwIGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMikgIT0gMCB8fAorICAgICAgICAgICAgVVRGMTYuaW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCAwKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIyKSArCisgICAgICAgICAgICAgICAgICAiIGF0IHBvc2l0aW9uIDAgaW4gdGV4dCAnIiArIFV0aWxpdHkuaGV4KHRlc3QzKSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRlc3Q1ID0gIlx1ZDg0MVx1ZDg0MVx1ZGMwMiI7CisgICAgICAgIGlmIChVVEYxNi5pbmRleE9mKHRlc3Q1LCB0ZXN0Q2hhcjIpICE9IDEgfHwKKyAgICAgICAgICAgIFVURjE2LmluZGV4T2YodGVzdDUsIHRlc3RDaGFyMiwgMCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDB4IiArCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMikgKworICAgICAgICAgICAgICAgICAgIiBhdCBwb3NpdGlvbiAwIGluIHRleHQgJyIgKyBVdGlsaXR5LmhleCh0ZXN0MykgKyAiJyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdDIpICE9IDI5IHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdDIsIHRlc3QxLmxlbmd0aCgpKSAhPSAyOSkgeworICAgICAgICAgICAgZXJybG4oImxhc3RJbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAnIiArIHRlc3QyICsKKyAgICAgICAgICAgICAgICAgICInIGF0IHBvc2l0aW9uIDI5IGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEpICE9IDM1IHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdENoYXIxLCB0ZXN0MS5sZW5ndGgoKSkgIT0gMzUpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIxKSArCisgICAgICAgICAgICAgICAgICAiIGF0IHBvc2l0aW9uIDM1IGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lmxhc3RJbmRleE9mKHRlc3QzLCB0ZXN0Q2hhcjIpICE9IDEzIHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCB0ZXN0My5sZW5ndGgoKSkgIT0gMTMpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAweCIgKworICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyh0ZXN0Q2hhcjIpICsKKyAgICAgICAgICAgICAgICAgICIgYXQgcG9zaXRpb24gMTMgaW4gdGV4dCAnIiArIFV0aWxpdHkuaGV4KHRlc3QzKSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAwOyBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykKKyAgICAgICAgeworICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyLCBzdGFydFBvcyk7CisgICAgICAgIGlmIChzdGFydFBvcyA+PSAwKSB7CisgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgIHN0YXJ0UG9zICs9IDQ7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNikgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDYgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDEwOyBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykKKyAgICAgICAgeworICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyLCBzdGFydFBvcyk7CisgICAgICAgIGlmIChzdGFydFBvcyA+PSAwKSB7CisgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgIHN0YXJ0UG9zICs9IDQ7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBzdGFydGluZyBvZmZzZXQgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDA7CisgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0NCwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAxMDsKKyAgICAgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0NCwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gMikgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDIgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDA7CisgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgICAgIHN0YXJ0UG9zICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDE2KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiB3aXRoIGNoYXJhY3RlciBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMTYgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDEwOworICAgICAgICAgc3RhcnRQb3MgIT0gLTEgJiYgc3RhcnRQb3MgPCB0ZXN0MS5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdENoYXIxLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSAxMikgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBjaGFyYWN0ZXIgJiBzdGFydCBvZmZzZXQgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDEyIG9jY3VycmVuY2VzLCBmb3VuZCAiCisgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMDsKKyAgICAgICAgIHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMiwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDU7IHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMiwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gMykgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBjaGFyYWN0ZXIgJiBzdGFydCAmIGVuZCBvZmZzZXRzIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAyIG9jY3VycmVuY2VzLCBmb3VuZCAiCisgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDMyOyBzdGFydFBvcyAhPSAtMTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYubGFzdEluZGV4T2YodGVzdDEsIHRlc3QyLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyAtPSA1OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA2KSB7CisgICAgICAgICAgICBlcnJsbigibGFzdEluZGV4T2Ygd2l0aCBzdGFydGluZyBhbmQgZW5kaW5nIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAzMjsgc3RhcnRQb3MgIT0gLTE7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgICAgIHN0YXJ0UG9zIC09IDU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDcpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiB3aXRoIGNoYXJhY3RlciAmIHN0YXJ0ICYgZW5kIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDExIG9jY3VycmVuY2VzLCBmb3VuZCAiCisgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICAvL3Rlc3RpbmcgVUNoYXIzMgorICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gdGVzdDMubGVuZ3RoKCk7IHN0YXJ0UG9zICE9IC0xOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCBzdGFydFBvcyAtIDUpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiB3aXRoIGNoYXJhY3RlciAmIHN0YXJ0ICYgZW5kIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDMgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3Rpbmcgc3VwcGxlbWVudGFyeQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgaW50IGNoID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfW2ldOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXS5sZW5ndGg7CisgICAgICAgICBqICsrKSB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBleHBlY3RlZCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXVtqXTsKKyAgICAgICAgaWYgIChqID4gMCkgeworICAgICAgICAgICAgaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfQ0hBUl9JTkRFWF9baV1baiAtIDFdICsgMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuaW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywgY2gsIGluZGV4KSAhPQorICAgICAgICAgICAgZXhwZWN0ZWQgfHwKKyAgICAgICAgICAgIFVURjE2LmluZGV4T2YoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18sCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoKSwgaW5kZXgpICE9CisgICAgICAgICAgICBleHBlY3RlZCkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IDB4IiArCisgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY2gpKTsKKyAgICAgICAgfQorICAgICAgICBpbmRleCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLmxlbmd0aCgpOworICAgICAgICBpZiAoaiA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXS5sZW5ndGggLSAxKSB7CisgICAgICAgICAgICBpbmRleCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXVtqICsgMV0gLSAxOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5sYXN0SW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywgY2gsCisgICAgICAgICAgICAgICAgICAgICAgaW5kZXgpICE9IGV4cGVjdGVkIHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywKKyAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoKSwgaW5kZXgpCisgICAgICAgICAgICAhPSBleHBlY3RlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgZmluZGluZyBsYXN0IGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IDB4IiArCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBleHBlY3RlZCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfSU5ERVhfW2ldOworICAgICAgICBpZiAgKGkgPiAwKSB7CisgICAgICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF9baSAtIDFdICsgMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuaW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywKKyAgICAgICAgICAgICAgICAgIElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfLCBpbmRleCkgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IHN0cmluZyAiICsKKyAgICAgICAgICAgICAgaGV4KElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfKSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGkgPCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYXy5sZW5ndGggLSAxKSB7CisgICAgICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF9baSArIDFdIC0gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYubGFzdEluZGV4T2YoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSXywgaW5kZXgpICE9IGV4cGVjdGVkKSB7CisgICAgICAgIGVycmxuKCJGYWlsZWQgZmluZGluZyBsYXN0IGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IHN0cmluZyAiICsKKyAgICAgICAgICAgICAgaGV4KElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfKSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZXBsYWNlKCkKKyAgICB7CisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJPbmUgcG90YXRvLCB0d28gcG90YXRvLCB0aHJlZSBwb3RhdG8sIGZvdXJcbiI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJwb3RhdG8iOworICAgICAgICBTdHJpbmcgdGVzdDMgPSAiTUlTU0lTU0lQUEkiOworCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCB0ZXN0MiwgdGVzdDMpOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRWYWx1ZSA9CisgICAgICAgICAgICAiT25lIE1JU1NJU1NJUFBJLCB0d28gTUlTU0lTU0lQUEksIHRocmVlIE1JU1NJU1NJUFBJLCBmb3VyXG4iOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmVwbGFjZSh0ZXN0MSwgdGVzdDMsIHRlc3QyKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9IHRlc3QxOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCAnLCcsICdlJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiT25lIHBvdGF0b2UgdHdvIHBvdGF0b2UgdGhyZWUgcG90YXRvZSBmb3VyXG4iOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCAnLCcsIDB4MTAwMDApOworICAgICAgICBleHBlY3RlZFZhbHVlID0gIk9uZSBwb3RhdG9cdWQ4MDBcdWRjMDAgdHdvIHBvdGF0b1x1ZDgwMFx1ZGMwMCB0aHJlZSBwb3RhdG9cdWQ4MDBcdWRjMDAgZm91clxuIjsKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkVmFsdWUpKSB7CisgICAgICAgICAgICBlcnJsbigiZmluZEFuZFJlcGxhY2UgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBleHBlY3RlZFZhbHVlICsKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmVwbGFjZSh0ZXN0MSwgInBvdGF0byIsICJcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEiKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9ICJPbmUgXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxLCB0d28gXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxLCB0aHJlZSBcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEsIGZvdXJcbiI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB0ZXN0NCA9ICJcdWQ4MDBcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDBcdWQ4MDBcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDAiOworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweGQ4MDAsICdBJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiQVx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZGMwMEFcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDAiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweGRDMDAsICdBJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiXHVkODAwXHVkODAwXHVkYzAwXHVkODAwXHVkYzAwQVx1ZDgwMFx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMEEiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweDEwMDAwLCAnQScpOworICAgICAgICBleHBlY3RlZFZhbHVlID0gIlx1ZDgwMEFBXHVkYzAwXHVkODAwQUFcdWRjMDAiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmV2ZXJzZSgpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgImJhY2t3YXJkcyB3b3JkcyBzYXkgdG8gdXNlZCBJIik7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IFVURjE2LnJldmVyc2UodGVzdCk7CisgICAgICAgIGlmICghcmVzdWx0LnRvU3RyaW5nKCkuZXF1YWxzKCJJIGRlc3Ugb3QgeWFzIHNkcm93IHNkcmF3a2NhYiIpKSB7CisgICAgICAgICAgICBlcnJsbigicmV2ZXJzZSgpIGZhaWxlZDogIEV4cGVjdGVkIFwiSSBkZXN1IG90IHlhcyBzZHJvdyBzZHJhd2tjYWJcIixcbiBnb3QgXCIiCisgICAgICAgICAgKyByZXN1bHQgKyAiXCIiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgVVRGMTYuYXBwZW5kKHRlc3RidWZmZXIsIDB4MmY5OTkpOworICAgICAgICBVVEYxNi5hcHBlbmQodGVzdGJ1ZmZlciwgMHgxZDE1Zik7CisgICAgICAgIFVURjE2LmFwcGVuZCh0ZXN0YnVmZmVyLCAweDAwYzQpOworICAgICAgICBVVEYxNi5hcHBlbmQodGVzdGJ1ZmZlciwgMHgxZWQwKTsKKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmV2ZXJzZSh0ZXN0YnVmZmVyKTsKKyAgICAgICAgaWYgKHJlc3VsdC5jaGFyQXQoMCkgIT0gMHgxZWQwIHx8CisgICAgICAgICAgICByZXN1bHQuY2hhckF0KDEpICE9IDB4YzQgfHwKKyAgICAgICAgICAgIFVURjE2LmNoYXJBdChyZXN1bHQsIDIpICE9IDB4MWQxNWYgfHwKKyAgICAgICAgICAgIFVURjE2LmNoYXJBdChyZXN1bHQsIDQpIT0weDJmOTk5KSB7CisgICAgICAgICAgICBlcnJsbigicmV2ZXJzZSgpIGZhaWxlZCB3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyB0aGUgc2V0dGVyIGFuZCBnZXR0ZXIgYXBpcyBmb3IgU3RyaW5nQ29tcGFyYXRvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJpbmdDb21wYXJhdG9yKCkKKyAgICB7CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY29tcGFyZSA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgIGlmIChjb21wYXJlLmdldENvZGVQb2ludENvbXBhcmUoKSAhPSBmYWxzZSkgeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQgc3RyaW5nIGNvbXBhcmF0b3Igc2hvdWxkIGJlIGNvZGUgdW5pdCBjb21wYXJlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0SWdub3JlQ2FzZSgpICE9IGZhbHNlKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdCBzdHJpbmcgY29tcGFyYXRvciBzaG91bGQgYmUgY2FzZSBzZW5zaXRpdmUgY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIGlmIChjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAgICAgIT0gVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCkgeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQgc3RyaW5nIGNvbXBhcmF0b3Igc2hvdWxkIGhhdmUgZm9sZCBjYXNlIGRlZmF1bHQgY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmUuc2V0Q29kZVBvaW50Q29tcGFyZSh0cnVlKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0Q29kZVBvaW50Q29tcGFyZSgpICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGNvZGUgcG9pbnQgY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmUuc2V0Q29kZVBvaW50Q29tcGFyZShmYWxzZSk7CisgICAgICAgIGlmIChjb21wYXJlLmdldENvZGVQb2ludENvbXBhcmUoKSAhPSBmYWxzZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgY29kZSBwb2ludCBjb21wYXJlIik7CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZS5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICBpZiAoY29tcGFyZS5nZXRJZ25vcmVDYXNlKCkgIT0gdHJ1ZQorICAgICAgICAgICAgfHwgY29tcGFyZS5nZXRJZ25vcmVDYXNlT3B0aW9uKCkKKyAgICAgICAgIT0gVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgaWdub3JlIGNhc2UgYW5kIG9wdGlvbnMiKTsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UoZmFsc2UsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0SWdub3JlQ2FzZSgpICE9IGZhbHNlCisgICAgICAgICAgICB8fCBjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAhPSBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgaWdub3JlIGNhc2UgYW5kIG9wdGlvbnMiKTsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICBpZiAoY29tcGFyZS5nZXRJZ25vcmVDYXNlKCkgIT0gdHJ1ZQorICAgICAgICAgICAgfHwgY29tcGFyZS5nZXRJZ25vcmVDYXNlT3B0aW9uKCkKKyAgICAgICAgIT0gVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGlnbm9yZSBjYXNlIGFuZCBvcHRpb25zIik7CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZS5zZXRJZ25vcmVDYXNlKGZhbHNlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0SWdub3JlQ2FzZSgpICE9IGZhbHNlCisgICAgICAgICAgICB8fCBjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAhPSBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBpZ25vcmUgY2FzZSBhbmQgb3B0aW9ucyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludENvbXBhcmUoKQorICAgIHsKKyAgICAgICAgLy8gdGhlc2Ugc3RyaW5ncyBhcmUgaW4gYXNjZW5kaW5nIG9yZGVyCisgICAgICAgIFN0cmluZyBzdHJbXSA9IHsiXHUwMDYxIiwgIlx1MjBhY1x1ZDgwMSIsICJcdTIwYWNcdWQ4MDBcdWRjMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMCIsICJcdWQ4MDBcdWZmNjEiLCAiXHVkZmZmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdWZmNjFcdWRmZmYiLCAiXHVmZjYxXHVkODAwXHVkYzAyIiwgIlx1ZDgwMFx1ZGMwMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODRkXHVkYzU2In07CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY3Bjb21wYXJlCisgICAgICAgICAgICA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKHRydWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY3Vjb21wYXJlCisgICAgICAgICAgICA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RyLmxlbmd0aCAtIDE7ICsrIGkpIHsKKyAgICAgICAgICAgIGlmIChjcGNvbXBhcmUuY29tcGFyZShzdHJbaV0sIHN0cltpICsgMV0pID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGNvbXBhcmUoKSBpbiBjb2RlIHBvaW50IG9yZGVyIGZhaWxzIGZvciBzdHJpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RyW2ldKSArICIgYW5kICIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHN0cltpICsgMV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHRlc3QgY29kZSB1bml0IGNvbXBhcmUKKyAgICAgICAgICAgIGlmIChjdWNvbXBhcmUuY29tcGFyZShzdHJbaV0sIHN0cltpICsgMV0pCisgICAgICAgICAgICAgICAgIT0gc3RyW2ldLmNvbXBhcmVUbyhzdHJbaSArIDFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogY29tcGFyZSgpIGluIGNvZGUgdW5pdCBvcmRlciBmYWlscyBmb3Igc3RyaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHN0cltpXSkgKyAiIGFuZCAiCisgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzdHJbaSArIDFdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZUNvbXBhcmUoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG1peGVkID0gIlx1MDA2MVx1MDA0Mlx1MDEzMVx1MDNhM1x1MDBkZlx1ZmIwM1x1ZDkzZlx1ZGZmZiI7CisgICAgICAgIFN0cmluZyBvdGhlckRlZmF1bHQgPSAiXHUwMDQxXHUwMDYyXHUwMTMxXHUwM2MzXHUwMDczXHUwMDUzXHUwMDQ2XHUwMDY2XHUwMDQ5XHVkOTNmXHVkZmZmIjsKKyAgICAgICAgU3RyaW5nIG90aGVyRXhjbHVkZVNwZWNpYWxJID0gIlx1MDA0MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDA1M1x1MDA3M1x1MDA2Nlx1MDA0Nlx1MDA2OVx1ZDkzZlx1ZGZmZiI7CisgICAgICAgIFN0cmluZyBkaWZmZXJlbnQgPSAiXHUwMDQxXHUwMDYyXHUwMTMxXHUwM2MzXHUwMDczXHUwMDUzXHUwMDQ2XHUwMDY2XHUwMDQ5XHVkOTNmXHVkZmZkIjsKKworICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXBhcmUgPSBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcigpOworICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIC8vIHRlc3QgdV9zdHJjYXNlY21wKCkKKyAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZCwgb3RoZXJEZWZhdWx0KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGRlZmF1bHQgY29tcGFyZShtaXhlZCwgb3RoZXIpID0gIiArIHJlc3VsdAorICAgICAgICAgICAgICAgICAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdCB1X3N0cmNhc2VjbXAoKSAtIGV4Y2x1ZGUgc3BlY2lhbCBpCisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLAorICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICByZXN1bHQgPSBjb21wYXJlLmNvbXBhcmUobWl4ZWQsIG90aGVyRXhjbHVkZVNwZWNpYWxJKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGV4Y2x1ZGVfaSBjb21wYXJlKG1peGVkLCBvdGhlcikgPSAiICsgcmVzdWx0CisgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHVfc3RyY2FzZWNtcCgpCisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZCwgZGlmZmVyZW50KTsKKyAgICAgICAgaWYgKHJlc3VsdCA8PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGRlZmF1bHQgY29tcGFyZShtaXhlZCwgZGlmZmVyZW50KSA9ICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIHBvc2l0aXZlIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHN1YnN0cmluZ3MgLSBzdG9wIGJlZm9yZSB0aGUgc2hhcnAgcyAoVSswMGRmKQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UodHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICByZXN1bHQgPSBjb21wYXJlLmNvbXBhcmUobWl4ZWQuc3Vic3RyaW5nKDAsIDQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZmVyZW50LnN1YnN0cmluZygwLCA0KSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBkZWZhdWx0IGNvbXBhcmUobWl4ZWQgc3Vic3RyaW5nLCBkaWZmZXJlbnQgc3Vic3RyaW5nKSA9ICIKKyAgICAgICAgICArIHJlc3VsdCArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBzdWJzdHJpbmdzIC0gc3RvcCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzaGFycCBzIChVKzAwZGYpCisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZC5zdWJzdHJpbmcoMCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbnQuc3Vic3RyaW5nKDAsIDUpKTsKKyAgICAgICAgaWYgKHJlc3VsdCA8PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGRlZmF1bHQgY29tcGFyZShtaXhlZCBzdWJzdHJpbmcsIGRpZmZlcmVudCBzdWJzdHJpbmcpID0gIgorICAgICAgICAgICsgcmVzdWx0ICsgIiBpbnN0ZWFkIG9mIHBvc2l0aXZlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzTW9yZUNvZGVQb2ludHNUaGFuKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiXHUwMDYxXHUwMDYyXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxXHUwMDYzXHVkODAyXHUwMDY0IgorICAgICAgICArICJcdWRjMDNcdTAwNjVcdTAwNjZcdWQ4MDRcdWRjMDRcdWQ4MDVcdWRjMDVcdTAwNjciOworICAgICAgICBpbnQgbGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICB3aGlsZSAobGVuZ3RoID49IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gc3RyLnN1YnN0cmluZygwLCBpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBudW1iZXIgPSAtMTsgbnVtYmVyIDw9ICgobGVuZ3RoIC0gaSkgKyAyKTsgKysgbnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmxhZyA9IFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbihzLCBudW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZyAhPSAoVVRGMTYuY291bnRDb2RlUG9pbnQocykgPiBudW1iZXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiaGFzTW9yZUNvZGVQb2ludHNUaGFuKCIgKyBVdGlsaXR5LmhleChzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgbnVtYmVyICsgIikgPSAiICsgZmxhZyArICIgaXMgd3JvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tIGxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3RpbmcgZm9yIG51bGwgYmFkIGlucHV0CisgICAgICAgIGZvcihsZW5ndGggPSAtMTsgbGVuZ3RoIDw9IDE7ICsrIGxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTI7IG51bWJlciA8PSAyOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKChTdHJpbmcpbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnICE9IChVVEYxNi5jb3VudENvZGVQb2ludCgoU3RyaW5nKW51bGwpID4gbnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihudWxsLCAiICsgbnVtYmVyICsgIikgPSAiCisgICAgICAgICAgICAgICAgICArIGZsYWcgKyAiIGlzIHdyb25nIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIHdoaWxlIChsZW5ndGggPj0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5zdWJzdHJpbmcoMCwgaSkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IG51bWJlciA9IC0xOyBudW1iZXIgPD0gKChsZW5ndGggLSBpKSArIDIpOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKHMsIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnICE9IChVVEYxNi5jb3VudENvZGVQb2ludChzKSA+IG51bWJlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4oIiArIFV0aWxpdHkuaGV4KHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBudW1iZXIgKyAiKSA9ICIgKyBmbGFnICsgIiBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdGluZyBmb3IgbnVsbCBiYWQgaW5wdXQKKyAgICAgICAgZm9yIChsZW5ndGggPSAtMTsgbGVuZ3RoIDw9IDE7ICsrIGxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTI7IG51bWJlciA8PSAyOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nQnVmZmVyKW51bGwsIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnCisgICAgICAgICAgICAgICAgICAgICAgICAhPSAoVVRGMTYuY291bnRDb2RlUG9pbnQoKFN0cmluZ0J1ZmZlciludWxsKSA+IG51bWJlcikpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihudWxsLCAiICsgbnVtYmVyICsgIikgPSAiCisgICAgICAgICAgICAgICAgICArIGZsYWcgKyAiIGlzIHdyb25nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY2hhciBzdHJhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIHdoaWxlIChsZW5ndGggPj0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgbGltaXQgPSAwOyBsaW1pdCA8PSBsZW5ndGg7ICsrIGxpbWl0KSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgc3RhcnQgPSAwOyBzdGFydCA8PSBsaW1pdDsgKysgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTE7IG51bWJlciA8PSAoKGxpbWl0IC0gc3RhcnQpICsgMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgKysgbnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGZsYWcgPSBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oc3RyYXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBsaW1pdCwgbnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnICE9IChVVEYxNi5jb3VudENvZGVQb2ludChzdHJhcnJheSwgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpID4gbnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4oIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RyLnN1YnN0cmluZyhzdGFydCwgbGltaXQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsgIiwgIiArIG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikgPSAiICsgZmxhZyArICIgaXMgd3JvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tIGxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3RpbmcgZm9yIG51bGwgYmFkIGlucHV0CisgICAgICAgIGZvciAobGVuZ3RoID0gLTE7IGxlbmd0aCA8PSAxOyArKyBsZW5ndGgpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IG51bWJlciA9IC0yOyBudW1iZXIgPD0gMjsgKysgbnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmxhZyA9IFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0cmluZ0J1ZmZlciludWxsLCBudW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZworICAgICAgICAgICAgICAgICAgICAgICAgIT0gKFVURjE2LmNvdW50Q29kZVBvaW50KChTdHJpbmdCdWZmZXIpbnVsbCkgPiBudW1iZXIpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4obnVsbCwgIiArIG51bWJlciArICIpID0gIgorICAgICAgICAgICAgICAgICAgKyBmbGFnICsgIiBpcyB3cm9uZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGJhZCBpbnB1dAorICAgICAgICB0cnkgeworICAgICAgICAgICAgVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKHN0cmFycmF5LCAtMiwgLTEsIDUpOworICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihjaGFyYXJyYXkpIHdpdGggbmVnYXRpdmUgaW5kZXhlcyBoYXMgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oc3RyYXJyYXksIDUsIDIsIDUpOworICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihjaGFyYXJyYXkpIHdpdGggbGltaXQgbGVzcyB0aGFuIHN0YXJ0IGluZGV4IGhhcyB0byB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oc3RyYXJyYXksIC0yLCAyLCA1KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4oY2hhcmFycmF5KSB3aXRoIG5lZ2F0aXZlIHN0YXJ0IGluZGV4ZXMgY2FuJ3QgcmV0dXJuIHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROZXdTdHJpbmcoKSB7CisgICAgZmluYWwgaW50W10gY29kZVBvaW50cyA9IHsKKyAgICAgICAgVUNoYXJhY3Rlci50b0NvZGVQb2ludChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwgVUNoYXJhY3Rlci5NQVhfTE9XX1NVUlJPR0FURSksCisgICAgICAgIFVDaGFyYWN0ZXIudG9Db2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfSElHSF9TVVJST0dBVEUsIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpLAorICAgICAgICBVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgJ0EnLAorICAgICAgICAtMSwKKyAgICB9OworCisgICAgZmluYWwgU3RyaW5nIGNwU3RyaW5nID0gIiIgKworICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArCisgICAgICAgIFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgKworICAgICAgICBVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSArCisgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUgKworICAgICAgICBVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSArCisgICAgICAgICdBJzsKKworICAgIGZpbmFsIGludFtdW10gdGVzdHMgPSB7CisgICAgICAgIHsgMCwgMSwgMCwgMiB9LAorICAgICAgICB7IDAsIDIsIDAsIDQgfSwKKyAgICAgICAgeyAxLCAxLCAyLCAyIH0sCisgICAgICAgIHsgMSwgMiwgMiwgMyB9LAorICAgICAgICB7IDEsIDMsIDIsIDQgfSwKKyAgICAgICAgeyAyLCAyLCA0LCAyIH0sCisgICAgICAgIHsgMiwgMywgMCwgLTEgfSwKKyAgICAgICAgeyA0LCA1LCAwLCAtMSB9LAorICAgICAgICB7IDMsIC0xLCAwLCAtMSB9CisgICAgfTsKKworICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGludFtdIHQgPSB0ZXN0c1tpXTsKKyAgICAgICAgaW50IHMgPSB0WzBdOworICAgICAgICBpbnQgYyA9IHRbMV07CisgICAgICAgIGludCBycyA9IHRbMl07CisgICAgICAgIGludCByYyA9IHRbM107CisKKyAgICAgICAgRXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYubmV3U3RyaW5nKGNvZGVQb2ludHMsIHMsIGMpOworICAgICAgICBpZiAocmMgPT0gLTEgfHwgIXN0ci5lcXVhbHMoY3BTdHJpbmcuc3Vic3RyaW5nKHJzLCBycytyYykpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIGNvZGVQb2ludHMgaXRlcjogIiArIGkgKyAiIHN0YXJ0OiAiICsgcyArICIgbGVuOiAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgZSA9IGUxOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgZSA9IGUyOworICAgICAgICB9CisgICAgICAgIGlmIChyYyAhPSAtMSkgeworICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgVVRGMTZUZXN0IHRlc3QgPSBuZXcgVVRGMTZUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIC8vIHRlc3QuVGVzdENhc2VDb21wYXJlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFN0cmluZyBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXyA9CisgICAgICAgICJcdWQ4NDFcdWRjMDJcdTAwNzFcdWRjMDJcdWQ4NDFcdTAwNzFcdWQ4NDFcdWRjMDJcdTAwNzFcdTAwNzIiICsKKyAgICAgICAgIlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MyI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX1tdID0KKyAgICB7MHg3MSwgMHhkODQxLCAweGRjMDIsCisgICAgIFVURjE2VXRpbC5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKTB4ZDg0MSwKKyAgICAgICAgICAgICAgICAgKGNoYXIpMHhkYzAyKX07CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tdW10gPQorICAgIHt7MiwgNSwgOCwgMTIsIDE1fSwKKyAgICAgezQsIDE3fSwKKyAgICAgezMsIDE2fSwKKyAgICAgezAsIDYsIDEwLCAxM30KKyAgICB9OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFN0cmluZyBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSXyA9ICJcdWRjMDJcdWQ4NDEiOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYX1tdID0KKyAgICB7MywgMTZ9OworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbWFuaWZlc3QudGVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L21hbmlmZXN0LnRlc3Quc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWFkNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L21hbmlmZXN0LnRlc3Quc3R1YgpAQCAtMCwwICsxLDE0IEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NsYXNzLVBhdGg6IGljdTRqLmphcgorTWFpbi1DbGFzczogY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbAorCitOYW1lOiBjb20vaWJtL2ljdS8KK1NwZWNpZmljYXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YSBUZXN0cworU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAzLjQKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQ1UKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBJQ1UgZm9yIEphdmEKK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDMuNC4wCitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCitDb3B5cmlnaHQtSW5mbzogQ29weXJpZ2h0IChjKSAyMDAwLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitTZWFsZWQ6IGZhbHNlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9CYXNpY1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0Jhc2ljVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI1ZjRlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9CYXNpY1Rlc3QuamF2YQpAQCAtMCwwICsxLDI5MzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVTZXJpYWxpemVkU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworCitwdWJsaWMgY2xhc3MgQmFzaWNUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQmFzaWNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIFN0cmluZ1tdW10gY2Fub25UZXN0cyA9IHsKKyAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgeyAiY2F0IiwgICAgICAgICAgICAgICAgImNhdCIsICAgICAgICAgICAgICAgICAgImNhdCIgICAgICAgICAgICAgICB9LAorICAgICAgICB7ICJcdTAwZTBhcmR2YXJrIiwgICAgICAiYVx1MDMwMGFyZHZhcmsiLCAgICAgICAiXHUwMGUwYXJkdmFyayIsICAgIH0sCisKKyAgICAgICAgeyAiXHUxZTBhIiwgICAgICAgICAgICAgIkRcdTAzMDciLCAgICAgICAgICAgICAgIlx1MWUwYSIgICAgICAgICAgICB9LCAvLyBELWRvdF9hYm92ZQorICAgICAgICB7ICJEXHUwMzA3IiwgICAgICAgICAgICAiRFx1MDMwNyIsICAgICAgICAgICAgICAiXHUxZTBhIiAgICAgICAgICAgIH0sIC8vIEQgZG90X2Fib3ZlCisKKyAgICAgICAgeyAiXHUxZTBjXHUwMzA3IiwgICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBELWRvdF9iZWxvdyBkb3RfYWJvdmUKKyAgICAgICAgeyAiXHUxZTBhXHUwMzIzIiwgICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBELWRvdF9hYm92ZSBkb3RfYmVsb3cKKyAgICAgICAgeyAiRFx1MDMwN1x1MDMyMyIsICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBEIGRvdF9iZWxvdyBkb3RfYWJvdmUKKworICAgICAgICB7ICJcdTFlMTBcdTAzMDdcdTAzMjMiLCAiRFx1MDMyN1x1MDMyM1x1MDMwNyIsICAiXHUxZTEwXHUwMzIzXHUwMzA3In0sIC8vIEQgZG90X2JlbG93IGNlZGlsbGEgZG90X2Fib3ZlCisgICAgICAgIHsgIkRcdTAzMDdcdTAzMjhcdTAzMjMiLCJEXHUwMzI4XHUwMzIzXHUwMzA3IiwgICJcdTFlMGNcdTAzMjhcdTAzMDcifSwgLy8gRCBkb3RfYWJvdmUgb2dvbmVrIGRvdF9iZWxvdworCisgICAgICAgIHsgIlx1MUUxNCIsICAgICAgICAgICAgICJFXHUwMzA0XHUwMzAwIiwgICAgICAgICJcdTFFMTQiICAgICAgICAgICAgfSwgLy8gRS1tYWNyb24tZ3JhdmUKKyAgICAgICAgeyAiXHUwMTEyXHUwMzAwIiwgICAgICAgIkVcdTAzMDRcdTAzMDAiLCAgICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3JvbiArIGdyYXZlCisgICAgICAgIHsgIlx1MDBjOFx1MDMwNCIsICAgICAgICJFXHUwMzAwXHUwMzA0IiwgICAgICAgICJcdTAwYzhcdTAzMDQiICAgICAgfSwgLy8gRS1ncmF2ZSArIG1hY3JvbgorCisgICAgICAgIHsgIlx1MjEyYiIsICAgICAgICAgICAgICJBXHUwMzBhIiwgICAgICAgICAgICAgICJcdTAwYzUiICAgICAgICAgICAgfSwgLy8gYW5nc3Ryb21fc2lnbgorICAgICAgICB7ICJcdTAwYzUiLCAgICAgICAgICAgICAiQVx1MDMwYSIsICAgICAgICAgICAgICAiXHUwMGM1IiAgICAgICAgICAgIH0sIC8vIEEtcmluZworCisgICAgICAgIHsgIlx1MDBjNGZmaW4iLCAgICAgICAgICJBXHUwMzA4ZmZpbiIsICAgICAgICAgICJcdTAwYzRmZmluIiAgICAgICAgfSwKKyAgICAgICAgeyAiXHUwMGM0XHVGQjAzbiIsICAgICAgIkFcdTAzMDhcdUZCMDNuIiwgICAgICAgIlx1MDBjNFx1RkIwM24iICAgICB9LAorCisgICAgICAgIHsgIlx1MDBmZGZmaW4iLCAgICAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgLy91cGRhdGVkIHdpdGggMy4wCisgICAgICAgIHsgIlx1MDBmZFx1RkIwM24iLCAgICAgICJ5XHUwMzAxXHVGQjAzbiIsICAgICAgICJcdTAwZmRcdUZCMDNuIiAgICAgfSwgLy91cGRhdGVkIHdpdGggMy4wCisKKyAgICAgICAgeyAiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorICAgICAgICB7ICJIZW5yeSBcdTIxNjMiLCAgICAgICAiSGVucnkgXHUyMTYzIiwgICAgICAgICAiSGVucnkgXHUyMTYzIiAgICAgIH0sCisKKyAgICAgICAgeyAiXHUzMEFDIiwgICAgICAgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBnYSAoS2F0YWthbmEpCisgICAgICAgIHsgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8ga2EgKyB0ZW4KKyAgICAgICAgeyAiXHVGRjc2XHVGRjlFIiwgICAgICAgIlx1RkY3Nlx1RkY5RSIsICAgICAgICAgIlx1RkY3Nlx1RkY5RSIgICAgICB9LCAvLyBod19rYSArIGh3X3RlbgorICAgICAgICB7ICJcdTMwQUJcdUZGOUUiLCAgICAgICAiXHUzMEFCXHVGRjlFIiwgICAgICAgICAiXHUzMEFCXHVGRjlFIiAgICAgIH0sIC8vIGthICsgaHdfdGVuCisgICAgICAgIHsgIlx1RkY3Nlx1MzA5OSIsICAgICAgICJcdUZGNzZcdTMwOTkiLCAgICAgICAgICJcdUZGNzZcdTMwOTkiICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKworICAgICAgICB7ICJBXHUwMzAwXHUwMzE2IiwgIkFcdTAzMTZcdTAzMDAiLCAiXHUwMEMwXHUwMzE2IiB9LAorICAgICAgICB7IlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIiwiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NVxcVTAwMDFEMTU3XFxVMDAwMUQxNjVcXFUwMDAxRDE1N1xcVTAwMDFEMTY1IiwgIlxcVTAwMDFEMTU3XFxVMDAwMUQxNjVcXFUwMDAxRDE1N1xcVTAwMDFEMTY1XFxVMDAwMUQxNTdcXFUwMDAxRDE2NSJ9LAorICAgIH07CisKKyAgICBTdHJpbmdbXVtdIGNvbXBhdFRlc3RzID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgeyAiY2F0IiwgICAgICAgICAgICAgICAgICJjYXQiLCAgICAgICAgICAgICAgICAgICAgICJjYXQiICAgICAgICAgICB9LAorICAgICAgICB7ICJcdUZCNGYiLCAgICAgICAgICAgICAiXHUwNUQwXHUwNURDIiwgICAgICAgICAiXHUwNUQwXHUwNURDIiwgICAgIH0sIC8vIEFsZWYtTGFtZWQgdnMuIEFsZWYsIExhbWVkCisKKyAgICAgICAgeyAiXHUwMEM0ZmZpbiIsICAgICAgICAgIkFcdTAzMDhmZmluIiwgICAgICAgICAgIlx1MDBDNGZmaW4iICAgICAgICB9LAorICAgICAgICB7ICJcdTAwQzRcdUZCMDNuIiwgICAgICAiQVx1MDMwOGZmaW4iLCAgICAgICAgICAiXHUwMEM0ZmZpbiIgICAgICAgIH0sIC8vIGZmaSBsaWdhdHVyZSAtPiBmICsgZiArIGkKKworICAgICAgICB7ICJcdTAwZmRmZmluIiwgICAgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sICAgICAgICAvL3VwZGF0ZWQgZm9yIDMuMAorICAgICAgICB7ICJcdTAwZmRcdUZCMDNuIiwgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sIC8vIGZmaSBsaWdhdHVyZSAtPiBmICsgZiArIGkKKworICAgICAgICB7ICJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgICAiSGVucnkgSVYiICAgICAgICAgIH0sCisgICAgICAgIHsgIkhlbnJ5IFx1MjE2MyIsICAgICAgICJIZW5yeSBJViIsICAgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKworICAgICAgICB7ICJcdTMwQUMiLCAgICAgICAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGdhIChLYXRha2FuYSkKKyAgICAgICAgeyAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIHRlbgorCisgICAgICAgIHsgIlx1RkY3Nlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKworICAgICAgICAvKiBUaGVzZSB0d28gYXJlIGJyb2tlbiBpbiBVbmljb2RlIDIuMS4yIGJ1dCBmaXhlZCBpbiAyLjEuNSBhbmQgbGF0ZXIqLworICAgICAgICB7ICJcdUZGNzZcdUZGOUUiLCAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGh3X2thICsgaHdfdGVuCisgICAgICAgIHsgIlx1MzBBQlx1RkY5RSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8ga2EgKyBod190ZW4KKworICAgIH07CisKKyAgICAvLyBXaXRoIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBIYW5ndWwgc3lsbGFibGVzIHNob3VsZCBnZXQgZGVjb21wb3NlZAorICAgIC8vIGludG8gSmFtbywgYnV0IEphbW8gY2hhcmFjdGVycyBzaG91bGQgbm90IGJlIGRlY29tcG9zZWQgaW50bworICAgIC8vIGNvbmpvaW5pbmcgSmFtbworICAgIFN0cmluZ1tdW10gaGFuZ3VsQ2Fub24gPSB7CisgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgIERlY29tcG9zZWQgICAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgIHsgIlx1ZDRkYiIsICAgICAgICAgICAgICJcdTExMTFcdTExNzFcdTExYjYiLCAgICJcdWQ0ZGIiICAgICAgICB9LAorICAgICAgICB7ICJcdTExMTFcdTExNzFcdTExYjYiLCAiXHUxMTExXHUxMTcxXHUxMWI2IiwgICAiXHVkNGRiIiAgICAgICAgfSwKKyAgICB9OworCisgICAgLy8gV2l0aCBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gdHVybmVkIG9uLAorICAgIC8vIGl0IHNob3VsZCBnbyBhbGwgdGhlIHdheSBkb3duIHRvIGNvbmpvaW5pbmcgSmFtbyBjaGFyYWN0ZXJzLgorICAgIC8vIFRISVMgSVMgTk8gTE9OR0VSIFRSVUUgSU4gVU5JQ09ERSB2Mi4xLjgsIFNPIFRISVMgVEVTVCBJUyBPQlNPTEVURQorICAgIFN0cmluZ1tdW10gaGFuZ3VsQ29tcGF0ID0geworICAgICAgICAvLyBJbnB1dCAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgLy8geyAiXHVkNGRiIiwgICAgICJcdTExMTFcdTExNmVcdTExNzVcdTExYWZcdTExYzIiLCAgICJcdWQ0NzhcdTExNzVcdTExYWZcdTExYzIiICB9LAorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsQ29tcG9zZSgpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXRpYyBjb21wb3NpdGlvbiBtZXRob2RzIHdvcmsKKyAgICAgICAgbG9nbG4oIkNhbm9uaWNhbCBjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZDLCBoYW5ndWxDYW5vbiwgIDIpOworICAgICAgICBsb2dsbigiQ29tcGF0aWJpbGl0eSBjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLQywgaGFuZ3VsQ29tcGF0LCAyKTsKKyAgICAgICAgLy8gTm93IHRyeSBpdGVyYXRpdmUgY29tcG9zaXRpb24uLi4uCisgICAgICAgIGxvZ2xuKCJJdGVyYXRpdmUgY29tcG9zaXRpb24uLi4iKTsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBoYW5ndWxDYW5vbiwgMik7CisKKyAgICAgICAgbm9ybS5zZXRNb2RlKE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGhhbmd1bENvbXBhdCwgMik7CisKKyAgICAgICAgLy8gQW5kIGZpbmFsbHksIG1ha2Ugc3VyZSB5b3UgY2FuIGRvIGl0IGluIHJldmVyc2UgdG9vCisgICAgICAgIGxvZ2xuKCJSZXZlcnNlIGl0ZXJhdGlvbi4uLiIpOworICAgICAgICBub3JtLnNldE1vZGUoTm9ybWFsaXplci5ORkMpOworICAgICAgICBiYWNrQW5kRm9ydGgobm9ybSwgaGFuZ3VsQ2Fub24pOworICAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsRGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXRpYyBkZWNvbXBvc2l0aW9uIG1ldGhvZHMgd29yaworICAgICAgICBsb2dsbigiQ2Fub25pY2FsIGRlY29tcG9zaXRpb24uLi4iKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GRCwgaGFuZ3VsQ2Fub24sICAxKTsKKyAgICAgICAgbG9nbG4oIkNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCwgaGFuZ3VsQ29tcGF0LCAxKTsKKworICAgICAgICAgLy8gTm93IHRoZSBpdGVyYXRpdmUgZGVjb21wb3NpdGlvbiBtZXRob2RzLi4uCisgICAgICAgIGxvZ2xuKCJJdGVyYXRpdmUgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGhhbmd1bENhbm9uLCAxKTsKKworICAgICAgICBub3JtLnNldE1vZGUoTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgaGFuZ3VsQ29tcGF0LCAxKTsKKworICAgICAgICAvLyBBbmQgZmluYWxseSwgbWFrZSBzdXJlIHlvdSBjYW4gZG8gaXQgaW4gcmV2ZXJzZSB0b28KKyAgICAgICAgbG9nbG4oIlJldmVyc2UgaXRlcmF0aW9uLi4uIik7CisgICAgICAgIG5vcm0uc2V0TW9kZShOb3JtYWxpemVyLk5GRCk7CisgICAgICAgIGJhY2tBbmRGb3J0aChub3JtLCBoYW5ndWxDYW5vbik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3ROb25lKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTk9ORSwwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY2Fub25UZXN0cywgMCk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5OT05FLCBjYW5vblRlc3RzLCAwKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdERlY29tcCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY2Fub25UZXN0cywgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkQsIGNhbm9uVGVzdHMsIDEpOworICAgICAgICBkZWNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTkZELCBjYW5vblRlc3RzLCAxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGF0RGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZLRCwwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY29tcGF0VGVzdHMsIDEpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCxjb21wYXRUZXN0cywgMSk7CisgICAgICAgIGRlY29tcG9zZVRlc3QoTm9ybWFsaXplci5ORktELGNvbXBhdFRlc3RzLCAxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2Fub25Db21wb3NlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBjYW5vblRlc3RzLCAyKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GQywgY2Fub25UZXN0cywgMik7CisgICAgICAgIGNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTkZDLCBjYW5vblRlc3RzLCAyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGF0Q29tcG9zZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGNvbXBhdFRlc3RzLCAyKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcGF0VGVzdHMsIDIpOworICAgICAgICBjb21wb3NlVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcGF0VGVzdHMsIDIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBsb2RpbmdCYXNlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gXHUwMTdmIC0gTGF0aW4gc21hbGwgbGV0dGVyIGxvbmcgcworICAgICAgICAvLyBcdTAzMDcgLSBjb21iaW5pbmcgZG90IGFib3ZlCisgICAgICAgIC8vIFx1MWU2MSAtIExhdGluIHNtYWxsIGxldHRlciBzIHdpdGggZG90IGFib3ZlCisgICAgICAgIC8vIFx1MWU5YiAtIExhdGluIHNtYWxsIGxldHRlciBsb25nIHMgd2l0aCBkb3QgYWJvdmUKKyAgICAgICAgU3RyaW5nW11bXSBjYW5vbiA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgIERlY29tcG9zZWQgICAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgICAgICB7ICJUc2NodVx1MDE3ZiIsICAgICAgICAiVHNjaHVcdTAxN2YiLCAgICAgICAgICAiVHNjaHVcdTAxN2YiICAgIH0sCisgICAgICAgICAgICB7ICJUc2NodVx1MWU5YiIsICAgICAgICAiVHNjaHVcdTAxN2ZcdTAzMDciLCAgICAiVHNjaHVcdTFlOWIiICAgIH0sCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gY29tcGF0ID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgICAgIHsgIlx1MDE3ZiIsICAgICAgICAicyIsICAgICAgICAgICAgICAicyIgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJcdTFlOWIiLCAgICAgICAgInNcdTAzMDciLCAgICAgICAgIlx1MWU2MSIgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkQsIGNhbm9uLCAgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkMsIGNhbm9uLCAgMik7CisKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0QsIGNvbXBhdCwgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktDLCBjb21wYXQsIDIpOworCisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIFRpYmV0YW4gdm93ZWwgc2lnbiBBQSwgMGY3MSwgd2FzIG1lc3NlZCB1cCBwcmlvciB0bworICAgICAqIFVuaWNvZGUgdmVyc2lvbiAyLjEuOS4KKyAgICAgKiBPbmNlIDIuMS45IG9yIDMuMCBpcyByZWxlYXNlZCwgdW5jb21tZW50IHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VGliZXRhbigpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdW10gZGVjb21wID0geworICAgICAgICAgICAgeyAiXHUwZjc3IiwgIlx1MGY3NyIsICJcdTBmYjJcdTBmNzFcdTBmODAiIH0KKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBjb21wb3NlID0geworICAgICAgICAgICAgeyAiXHUwZmIyXHUwZjcxXHUwZjgwIiwgIlx1MGZiMlx1MGY3MVx1MGY4MCIsICJcdTBmYjJcdTBmNzFcdTBmODAiIH0KKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZELCBkZWNvbXAsIDEpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCxkZWNvbXAsIDIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZDLCBjb21wb3NlLCAxKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcG9zZSwgMik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIGNoYXJhY3RlcnMgaW4gdGhlIENvbXBvc2l0aW9uRXhjbHVzaW9uLnR4dCBsaXN0IGRvIG5vdCBnZXQKKyAgICAgKiBjb21wb3NlZCB0by4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zaXRpb25FeGNsdXNpb24oKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIC8vIFRoaXMgbGlzdCBpcyBnZW5lcmF0ZWQgZnJvbSBDb21wb3NpdGlvbkV4Y2x1c2lvbi50eHQuCisgICAgICAgIC8vIFVwZGF0ZSB3aGVuZXZlciB0aGUgbm9ybWFsaXplciB0YWJsZXMgYXJlIHVwZGF0ZWQuICBOb3RlCisgICAgICAgIC8vIHRoYXQgd2UgdGVzdCBhbGwgY2hhcmFjdGVycyBsaXN0ZWQsIGV2ZW4gdGhvc2UgdGhhdCBjYW4gYmUKKyAgICAgICAgLy8gZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlIERCIGFuZCBhcmUgdGhlcmVmb3JlIGNvbW1lbnRlZAorICAgICAgICAvLyBvdXQuCisgICAgICAgIFN0cmluZyBFWENMVURFRCA9CisgICAgICAgICAgICAiXHUwMzQwXHUwMzQxXHUwMzQzXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg3XHUwOTU4IiArCisgICAgICAgICAgICAiXHUwOTU5XHUwOTVBXHUwOTVCXHUwOTVDXHUwOTVEXHUwOTVFXHUwOTVGXHUwOURDIiArCisgICAgICAgICAgICAiXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFIiArCisgICAgICAgICAgICAiXHUwQjVDXHUwQjVEXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5IiArCisgICAgICAgICAgICAiXHUwRjczXHUwRjc1XHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyIiArCisgICAgICAgICAgICAiXHUwRkE3XHUwRkFDXHUwRkI5XHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5IiArCisgICAgICAgICAgICAiXHUxRjdCXHUxRjdEXHUxRkJCXHUxRkJFXHUxRkM5XHUxRkNCXHUxRkQzXHUxRkRCIiArCisgICAgICAgICAgICAiXHUxRkUzXHUxRkVCXHUxRkVFXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZEXHUyMDAwIiArCisgICAgICAgICAgICAiXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5XHUyMzJBXHVGOTAwXHVGQTEwIiArCisgICAgICAgICAgICAiXHVGQTEyXHVGQTE1XHVGQTIwXHVGQTIyXHVGQTI1XHVGQTI2XHVGQTJBXHVGQjFGIiArCisgICAgICAgICAgICAiXHVGQjJBXHVGQjJCXHVGQjJDXHVGQjJEXHVGQjJFXHVGQjJGXHVGQjMwXHVGQjMxIiArCisgICAgICAgICAgICAiXHVGQjMyXHVGQjMzXHVGQjM0XHVGQjM1XHVGQjM2XHVGQjM4XHVGQjM5XHVGQjNBIiArCisgICAgICAgICAgICAiXHVGQjNCXHVGQjNDXHVGQjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2IiArCisgICAgICAgICAgICAiXHVGQjQ3XHVGQjQ4XHVGQjQ5XHVGQjRBXHVGQjRCXHVGQjRDXHVGQjREXHVGQjRFIjsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEVYQ0xVREVELmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhID0gU3RyaW5nLnZhbHVlT2YoRVhDTFVERUQuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIFN0cmluZyBiID0gTm9ybWFsaXplci5ub3JtYWxpemUoYSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgIFN0cmluZyBjID0gTm9ybWFsaXplci5ub3JtYWxpemUoYiwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgaWYgKGMuZXF1YWxzKGEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYSkgKyAiIHggREVDT01QX0NPTVBBVCA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoYikgKyAiIHggQ09NUE9TRSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoYykpOworICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGhleChhKSArICIgeCBERUNPTVBfQ09NUEFUID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChiKSArICIgeCBDT01QT1NFID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChjKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2Qgd29ya3MgdG9vLCBidXQgaXQgaXMgc29tZXdoYXQKKyAgICAgICAgLy8gaW5jZXN0dW91cy4gIEl0IHVzZXMgVUluZm8sIHdoaWNoIGlzIHRoZSBzYW1lIGRhdGFiYXNlIHRoYXQKKyAgICAgICAgLy8gTm9ybWFsaXplckJ1aWxkZXIgdXNlcywgc28gaWYgc29tZXRoaW5nIGlzIHdyb25nIHdpdGgKKyAgICAgICAgLy8gVUluZm8sIHRoZSBmb2xsb3dpbmcgdGVzdCB3b24ndCBzaG93IGl0LiAgQWxsIGl0IHdpbGwgc2hvdworICAgICAgICAvLyBpcyB0aGF0IE5vcm1hbGl6ZXJCdWlsZGVyIGhhcyBiZWVuIHJ1biB3aXRoIHdoYXRldmVyIHRoZQorICAgICAgICAvLyBjdXJyZW50IFVJbmZvIGlzLgorICAgICAgICAvLworICAgICAgICAvLyBXZSBjb21tZW50IHRoaXMgb3V0IGluIGZhdm9yIG9mIHRoZSB0ZXN0IGFib3ZlLCB3aGljaAorICAgICAgICAvLyBwcm92aWRlcyBpbmRlcGVuZGVudCB2ZXJpZmljYXRpb24gKGJ1dCBhbHNvIHJlcXVpcmVzCisgICAgICAgIC8vIGluZGVwZW5kZW50IHVwZGF0aW5nKS4KKy8vICAgICAgbG9nbG4oIi0tLSIpOworLy8gICAgICBVSW5mbyB1aW5mbyA9IG5ldyBVSW5mbygpOworLy8gICAgICBmb3IgKGludCBpPTA7IGk8PTB4RkZGRjsgKytpKSB7CisvLyAgICAgICAgICBpZiAoIXVpbmZvLmlzRXhjbHVkZWRDb21wb3NpdGlvbigoY2hhcilpKSB8fAorLy8gICAgICAgICAgICAgICghdWluZm8uaGFzQ2Fub25pY2FsRGVjb21wb3NpdGlvbigoY2hhcilpKSAmJgorLy8gICAgICAgICAgICAgICAhdWluZm8uaGFzQ29tcGF0aWJpbGl0eURlY29tcG9zaXRpb24oKGNoYXIpaSkpKSBjb250aW51ZTsKKy8vICAgICAgICAgIFN0cmluZyBhID0gU3RyaW5nLnZhbHVlT2YoKGNoYXIpaSk7CisvLyAgICAgICAgICBTdHJpbmcgYiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGEsTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULDApOworLy8gICAgICAgICAgU3RyaW5nIGMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShiLE5vcm1hbGl6ZXIuQ09NUE9TRSwwKTsKKy8vICAgICAgICAgIGlmIChjLmVxdWFscyhhKSkgeworLy8gICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaGV4KGEpICsgIiB4IERFQ09NUF9DT01QQVQgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgICAgaGV4KGIpICsgIiB4IENPTVBPU0UgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgICAgaGV4KGMpKTsKKy8vICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKy8vICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBoZXgoYSkgKyAiIHggREVDT01QX0NPTVBBVCA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYikgKyAiIHggQ09NUE9TRSA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYykpOworLy8gICAgICAgICAgfQorLy8gICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgYSBwcm9ibGVtIHRoYXQgc2hvd2VkIHVwIGp1c3QgYmVmb3JlIElDVSAxLjYgcmVsZWFzZQorICAgICAqIGhhdmluZyB0byBkbyB3aXRoIGNvbWJpbmluZyBjaGFyYWN0ZXJzIHdpdGggYW4gaW5kZXggb2YgemVyby4KKyAgICAgKiBTdWNoIGNoYXJhY3RlcnMgZG8gbm90IHBhcnRpY2lwYXRlIGluIGFueSBjYW5vbmljYWwKKyAgICAgKiBkZWNvbXBvc2l0aW9ucy4gIEhvd2V2ZXIsIGhhdmluZyBhbiBpbmRleCBvZiB6ZXJvIG1lYW5zIHRoYXQKKyAgICAgKiB0aGV5IGFsbCBzaGFyZSBvbmUgdHlwZU1hc2tbXSBlbnRyeSwgdGhhdCBpcywgdGhleSBhbGwgaGF2ZSB0bworICAgICAqIG1hcCB0byB0aGUgc2FtZSBjYW5vbmljYWwgY2xhc3MsIHdoaWNoIGlzIG5vdCB0aGUgY2FzZSwgaW4KKyAgICAgKiByZWFsaXR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RaZXJvSW5kZXgoKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBFeHBlY3QgY29sMSB4IENPTVBPU0VfQ09NUEFUID0+IGNvbDIKKyAgICAgICAgICAgIC8vIEV4cGVjdCBjb2wyIHggREVDT01QID0+IGNvbDMKKyAgICAgICAgICAgICJBXHUwMzE2XHUwMzAwIiwgIlx1MDBDMFx1MDMxNiIsICJBXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJBXHUwMzAwXHUwMzE2IiwgIlx1MDBDMFx1MDMxNiIsICJBXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJBXHUwMzI3XHUwMzAwIiwgIlx1MDBDMFx1MDMyNyIsICJBXHUwMzI3XHUwMzAwIiwKKyAgICAgICAgICAgICJjXHUwMzIxXHUwMzI3IiwgImNcdTAzMjFcdTAzMjciLCAiY1x1MDMyMVx1MDMyNyIsCisgICAgICAgICAgICAiY1x1MDMyN1x1MDMyMSIsICJcdTAwRTdcdTAzMjEiLCAiY1x1MDMyN1x1MDMyMSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IERBVEFbaV07CisgICAgICAgICAgICBTdHJpbmcgYiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGEsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzFdOworICAgICAgICAgICAgaWYgKGIuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBoZXgoYSkgKyAiIHggQ09NUE9TRV9DT01QQVQgPT4gIiArIGhleChiKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaGV4KGEpICsgIiB4IENPTVBPU0VfQ09NUEFUID0+ICIgKyBoZXgoYikgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCAiICsgaGV4KGV4cCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGIsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGV4cCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaGV4KGIpICsgIiB4IERFQ09NUCA9PiAiICsgaGV4KGEpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYikgKyAiIHggREVDT01QID0+ICIgKyBoZXgoYSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCAiICsgaGV4KGV4cCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgYSBwcm9ibGVtIGZvdW5kIGJ5IFZlcmlzaWduLiAgUHJvYmxlbSBpcyB0aGF0CisgICAgICogY2hhcmFjdGVycyBhdCB0aGUgc3RhcnQgb2YgYSBzdHJpbmcgYXJlIG5vdCBwdXQgaW4gY2Fub25pY2FsCisgICAgICogb3JkZXIgY29ycmVjdGx5IGJ5IGNvbXBvc2UoKSBpZiB0aGVyZSBpcyBubyBzdGFydGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWZXJpc2lnbigpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nW10gaW5wdXRzID0geworICAgICAgICAgICAgIlx1MDViOFx1MDViOVx1MDViMVx1MDU5MVx1MDVjM1x1MDViMFx1MDVhY1x1MDU5ZiIsCisgICAgICAgICAgICAiXHUwNTkyXHUwNWI3XHUwNWJjXHUwNWE1XHUwNWIwXHUwNWMwXHUwNWM0XHUwNWFkIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBvdXRwdXRzID0geworICAgICAgICAgICAgIlx1MDViMVx1MDViOFx1MDViOVx1MDU5MVx1MDVjM1x1MDViMFx1MDVhY1x1MDU5ZiIsCisgICAgICAgICAgICAiXHUwNWIwXHUwNWI3XHUwNWJjXHUwNWE1XHUwNTkyXHUwNWMwXHUwNWFkXHUwNWM0IgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBpbnB1dHNbaV07CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gb3V0cHV0c1tpXTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBOb3JtYWxpemVyLmRlY29tcG9zZShpbnB1dCwgZmFsc2UpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKG91dHB1dCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBpbnB1dDogIiArIGhleChpbnB1dCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgZGVjb21wb3NlOiAiICsgaGV4KHJlc3VsdCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgIGV4cGVjdGVkOiAiICsgaGV4KG91dHB1dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LCBmYWxzZSk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMob3V0cHV0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGlucHV0OiAiICsgaGV4KGlucHV0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgIGNvbXBvc2U6ICIgKyBoZXgocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgZXhwZWN0ZWQ6ICIgKyBoZXgob3V0cHV0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCAgVGVzdFF1aWNrQ2hlY2tSZXN1bHROTygpCisgICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkRbXSA9IHsweDAwQzUsIDB4MDQwNywgMHgxRTAwLCAweDFGNTcsIDB4MjIwQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMEFFLCAweEFDMDAsIDB4RDdBMywgMHhGQjM2LCAweEZCNEV9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZDW10gPSB7MHgwMzQwLCAweDBGOTMsIDB4MUY3NywgMHgxRkJCLCAweDFGRUIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCwgMHgyMzJBLCAweEY5MDAsIDB4RkExRSwgMHhGQjRFfTsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GS0RbXSA9IHsweDAwQTAsIDB4MDJFNCwgMHgxRkRCLCAweDI0RUEsIDB4MzJGRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhBQzAwLCAweEZCNEUsIDB4RkExMCwgMHhGRjNGLCAweEZBMkR9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLQ1tdID0gezB4MDBBMCwgMHgwMTdGLCAweDIwMDAsIDB4MjRFQSwgMHgzMkZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzRkUsIDB4RkI0RSwgMHhGQTEwLCAweEZGM0YsIDB4RkEyRH07CisKKworICAgICAgICBmaW5hbCBpbnQgU0laRSA9IDEwOworCisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGZvciAoOyBjb3VudCA8IFNJWkU7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZEW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZELDApICE9IE5vcm1hbGl6ZXIuTk8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GRCBxdWljayBjaGVjayBhdCBVKyIgKworICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORkNbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDLDApICE9Tm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLRFtjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsMCkgIT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywwKSAhPU5vcm1hbGl6ZXIuTk8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBmb3IgaW1wcm92aW5nIGNvdmVyYWdlCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MpICE9Tm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHZvaWQgVGVzdFF1aWNrQ2hlY2tSZXN1bHRZRVMoKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkRbXSA9IHsweDAwQzYsIDB4MDE3RiwgMHgwRjc0LCAweDEwMDAsIDB4MUU5QSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjYxLCAweDMwNzUsIDB4NDAwMCwgMHg1MDAwLCAweEYwMDB9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZDW10gPSB7MHgwNDAwLCAweDA1NDAsIDB4MDkwMSwgMHgxMDAwLCAweDE1MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUU5QSwgMHgzMDAwLCAweDQwMDAsIDB4NTAwMCwgMHhGMDAwfTsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GS0RbXSA9IHsweDAwQUIsIDB4MDJBMCwgMHgxMDAwLCAweDEwMjcsIDB4MkZGQiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGLCAweDRGRkYsIDB4QTAwMCwgMHhGMDAwLCAweEZBMjd9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLQ1tdID0gezB4MDBCMCwgMHgwMTAwLCAweDAyMDAsIDB4MEEwMiwgMHgxMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMTAsIDB4MzAzMCwgMHg0MDAwLCAweEEwMDAsIDB4RkEwRX07CisKKyAgICAgICAgZmluYWwgaW50IFNJWkUgPSAxMDsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICBjaGFyIGNwID0gMDsKKyAgICAgICAgd2hpbGUgKGNwIDwgMHhBMCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihjcCksIE5vcm1hbGl6ZXIuTkZELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoY3ApLCBOb3JtYWxpemVyLk5GQywwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihjcCksIE5vcm1hbGl6ZXIuTkZLRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0QgcXVpY2sgY2hlY2sgYXQgVSsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY3ApKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKGNwKSwgTm9ybWFsaXplci5ORktDLDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGltcHJvdmUgdGhlIGNvdmVyYWdlCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKGNwKSwgTm9ybWFsaXplci5ORktDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY3ApKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjcCsrOworICAgICAgICB9CisKKyAgICAgICAgZm9yICg7IGNvdW50IDwgU0laRTsgY291bnQgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORkRbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsMCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GRFtjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDLDApIT1Ob3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORkNbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GS0RbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktELDApIT1Ob3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLRFtjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGltcHJvdmUgdGhlIGNvdmVyYWdlCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MpIT1Ob3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEJlbmdhbGkoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgaW5wdXQgPSAiXHUwOWJjXHUwOWJlXHUwOWNkXHUwOWJlIjsKKyAgICAgICAgU3RyaW5nIG91dHB1dD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCxOb3JtYWxpemVyLk5GQyk7CisgICAgICAgIGlmKCFpbnB1dC5lcXVhbHMob3V0cHV0KSl7CisgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBvZiBzdHJpbmciKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1Jlc3VsdE1BWUJFKCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworCisgICAgICAgIGZpbmFsIGNoYXJbXSBDUE5GQyA9IHsweDAzMDYsIDB4MDY1NCwgMHgwQkJFLCAweDEwMkUsIDB4MTE2MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTZBLCAweDExNzMsIDB4MTE3NSwgMHgzMDk5LCAweDMwOUF9OworICAgICAgICBmaW5hbCBjaGFyW10gQ1BORktDID0gezB4MDMwMCwgMHgwNjU0LCAweDA2NTUsIDB4MDlENywgMHgwQjNFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBEQ0YsIDB4RERGLCAweDEwMkUsIDB4MTFBOCwgMHgzMDk5fTsKKworCisgICAgICAgIGZpbmFsIGludCBTSVpFID0gMTA7CisKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAvKiBORkQgYW5kIE5GS0QgZG9lcyBub3QgaGF2ZSBhbnkgTUFZQkUgY29kZXBvaW50cyAqLworICAgICAgICBmb3IgKDsgY291bnQgPCBTSVpFOyBjb3VudCArKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDLDApIT1Ob3JtYWxpemVyLk1BWUJFKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkMgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKG5ldyBjaGFyW117Q1BORkNbY291bnRdfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GQywwKSE9Tm9ybWFsaXplci5NQVlCRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKG5ldyBjaGFyW117Q1BORktDW2NvdW50XX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKG5ldyBjaGFyW117Q1BORktDW2NvdW50XX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5PTkUsMCkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1N0cmluZ1Jlc3VsdCgpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBTdHJpbmcgZDsKKyAgICAgICAgU3RyaW5nIGM7CisKKyAgICAgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgY2Fub25UZXN0cy5sZW5ndGg7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBkID0gY2Fub25UZXN0c1tjb3VudF1bMV07CisgICAgICAgICAgICBjID0gY2Fub25UZXN0c1tjb3VudF1bMl07CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGQsTm9ybWFsaXplci5ORkQsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GRCBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGMsIE5vcm1hbGl6ZXIuTkZDLDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgY29tcGF0VGVzdHMubGVuZ3RoOyBjb3VudCArKykKKyAgICAgICAgeworICAgICAgICAgICAgZCA9IGNvbXBhdFRlc3RzW2NvdW50XVsxXTsKKyAgICAgICAgICAgIGMgPSBjb21wYXRUZXN0c1tjb3VudF1bMl07CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGQsIE5vcm1hbGl6ZXIuTkZLRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGMsICBOb3JtYWxpemVyLk5GS0MsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgZm9yIHN0cmluZyBhdCBjb3VudCAiICsgY291bnQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgcWNUb0ludChOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgcWMpIHsKKyAgICAgICAgaWYocWM9PU5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYocWM9PU5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIC8qIE5vcm1hbGl6ZXIuTUFZQkUgKi8geworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1BlckNQKCkgeworICAgICAgICBpbnQgYywgbGVhZCwgdHJhaWw7CisgICAgICAgIFN0cmluZyBzLCBuZmQ7CisgICAgICAgIGludCBsY2NjMSwgbGNjYzIsIHRjY2MxLCB0Y2NjMjsKKyAgICAgICAgaW50IHFjMSwgcWMyOworCisgICAgICAgIGlmKAorICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ORkRfUVVJQ0tfQ0hFQ0spIT0xIHx8IC8vIFlFUworICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ORktEX1FVSUNLX0NIRUNLKSE9MSB8fAorICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ORkNfUVVJQ0tfQ0hFQ0spIT0yIHx8IC8vIE1BWUJFCisgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5Lk5GS0NfUVVJQ0tfQ0hFQ0spIT0yIHx8CisgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkxFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykhPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgfHwKKyAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykhPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykKKyAgICAgICAgKSB7CisgICAgICAgICAgICBlcnJsbigid3JvbmcgcmVzdWx0IGZyb20gb25lIG9mIHRoZSB1X2dldEludFByb3BlcnR5TWF4VmFsdWUoVUNIQVJfTkYqX1FVSUNLX0NIRUNLKSBvciBVQ0hBUl8qX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIGNvbXBhcmUgdGhlIHF1aWNrIGNoZWNrIHByb3BlcnR5IHZhbHVlcyBmb3Igc29tZSBjb2RlIHBvaW50cworICAgICAgICAgKiB0byB0aGUgcXVpY2sgY2hlY2sgcmVzdWx0cyBmb3IgY2hlY2tpbmcgc2FtZS1jb2RlIHBvaW50IHN0cmluZ3MKKyAgICAgICAgICovCisgICAgICAgIGM9MDsKKyAgICAgICAgd2hpbGUoYzwweDExMDAwMCkgeworICAgICAgICAgICAgcz1VVEYxNi52YWx1ZU9mKGMpOworCisgICAgICAgICAgICBxYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5ORkNfUVVJQ0tfQ0hFQ0spOworICAgICAgICAgICAgcWMyPXFjVG9JbnQoTm9ybWFsaXplci5xdWlja0NoZWNrKHMsIE5vcm1hbGl6ZXIuTkZDKSk7CisgICAgICAgICAgICBpZihxYzEhPXFjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKE5GQyk9IitxYzErIiAhPSAiK3FjMisiPXF1aWNrQ2hlY2soTkZDKSBmb3IgVSsiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBxYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5ORkRfUVVJQ0tfQ0hFQ0spOworICAgICAgICAgICAgcWMyPXFjVG9JbnQoTm9ybWFsaXplci5xdWlja0NoZWNrKHMsIE5vcm1hbGl6ZXIuTkZEKSk7CisgICAgICAgICAgICBpZihxYzEhPXFjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKE5GRCk9IitxYzErIiAhPSAiK3FjMisiPXF1aWNrQ2hlY2soTkZEKSBmb3IgVSsiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBxYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5ORktDX1FVSUNLX0NIRUNLKTsKKyAgICAgICAgICAgIHFjMj1xY1RvSW50KE5vcm1hbGl6ZXIucXVpY2tDaGVjayhzLCBOb3JtYWxpemVyLk5GS0MpKTsKKyAgICAgICAgICAgIGlmKHFjMSE9cWMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImdldEludFByb3BlcnR5VmFsdWUoTkZLQyk9IitxYzErIiAhPSAiK3FjMisiPXF1aWNrQ2hlY2soTkZLQykgZm9yIFUrIitJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcWMxPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuTkZLRF9RVUlDS19DSEVDSyk7CisgICAgICAgICAgICBxYzI9cWNUb0ludChOb3JtYWxpemVyLnF1aWNrQ2hlY2socywgTm9ybWFsaXplci5ORktEKSk7CisgICAgICAgICAgICBpZihxYzEhPXFjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKE5GS0QpPSIrcWMxKyIgIT0gIitxYzIrIj1xdWlja0NoZWNrKE5GS0QpIGZvciBVKyIrSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5mZD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShzLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBsZWFkPVVURjE2LmNoYXJBdChuZmQsIDApOworICAgICAgICAgICAgdHJhaWw9VVRGMTYuY2hhckF0KG5mZCwgbmZkLmxlbmd0aCgpLTEpOworCisgICAgICAgICAgICBsY2NjMT1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkxFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyk7CisgICAgICAgICAgICBsY2NjMj1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGxlYWQpOworICAgICAgICAgICAgdGNjYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKTsKKyAgICAgICAgICAgIHRjY2MyPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3ModHJhaWwpOworCisgICAgICAgICAgICBpZihsY2NjMSE9bGNjYzIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW50UHJvcGVydHlWYWx1ZShsY2NjKT0iK2xjY2MxKyIgIT0gIitsY2NjMisiPWdldENvbWJpbmluZ0NsYXNzKGxlYWQpIGZvciBVKyIrSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZih0Y2NjMSE9dGNjYzIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW50UHJvcGVydHlWYWx1ZSh0Y2NjKT0iK3RjY2MxKyIgIT0gIit0Y2NjMisiPWdldENvbWJpbmluZ0NsYXNzKHRyYWlsKSBmb3IgVSsiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBza2lwIHNvbWUgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgIGM9KDIwKmMpLzE5KzE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIHV0aWxpdGllcworICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcm5hbCB1dGlsaXRpZXMKKyAgICAvLworCisgICAgcHJpdmF0ZSB2b2lkIGJhY2tBbmRGb3J0aChOb3JtYWxpemVyIGl0ZXIsIFN0cmluZyBpbnB1dCkKKyAgICB7CisgICAgICAgIGl0ZXIuc2V0VGV4dChpbnB1dCk7CisKKyAgICAgICAgLy8gUnVuIHRocm91Z2ggdGhlIGl0ZXJhdG9yIGZvcndhcmRzIGFuZCBzdGljayBpdCBpbnRvIGEgU3RyaW5nQnVmZmVyCisgICAgICAgIFN0cmluZ0J1ZmZlciBmb3J3YXJkID0gIG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgY2ggPSBpdGVyLmZpcnN0KCk7IGNoICE9IE5vcm1hbGl6ZXIuRE9ORTsgY2ggPSBpdGVyLm5leHQoKSkgeworICAgICAgICAgICAgZm9yd2FyZC5hcHBlbmQoY2gpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGRvIGl0IGJhY2t3YXJkcworICAgICAgICBTdHJpbmdCdWZmZXIgcmV2ZXJzZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgY2ggPSBpdGVyLmxhc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOyBjaCA9IGl0ZXIucHJldmlvdXMoKSkgeworICAgICAgICAgICAgcmV2ZXJzZS5pbnNlcnQoMCwgY2gpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFmb3J3YXJkLnRvU3RyaW5nKCkuZXF1YWxzKHJldmVyc2UudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBGb3J3YXJkL3JldmVyc2UgbWlzbWF0Y2ggZm9yIGlucHV0ICIgKyBoZXgoaW5wdXQpCisgICAgICAgICAgICAgICAgICArICIsIGZvcndhcmQ6ICIgKyBoZXgoZm9yd2FyZCkgKyAiLCBiYWNrd2FyZDogIitoZXgocmV2ZXJzZSkpOworICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IEZvcndhcmQvcmV2ZXJzZSBmb3IgaW5wdXQgIiArIGhleChpbnB1dCkKKyAgICAgICAgICAgICAgICAgICsgIiwgZm9yd2FyZDogIiArIGhleChmb3J3YXJkKSArICIsIGJhY2t3YXJkOiAiK2hleChyZXZlcnNlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYmFja0FuZEZvcnRoKE5vcm1hbGl6ZXIgaXRlciwgU3RyaW5nW11bXSB0ZXN0cykKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXN0c1tpXVswXSk7CisKKyAgICAgICAgICAgIC8vIFJ1biB0aHJvdWdoIHRoZSBpdGVyYXRvciBmb3J3YXJkcyBhbmQgc3RpY2sgaXQgaW50byBhCisgICAgICAgICAgICAvLyBTdHJpbmdCdWZmZXIKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBmb3J3YXJkID0gIG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGNoID0gaXRlci5maXJzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7IGNoID0gaXRlci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBmb3J3YXJkLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vdyBkbyBpdCBiYWNrd2FyZHMKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXZlcnNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBpdGVyLmxhc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOyBjaCA9IGl0ZXIucHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgIHJldmVyc2UuaW5zZXJ0KDAsIGNoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFmb3J3YXJkLnRvU3RyaW5nKCkuZXF1YWxzKHJldmVyc2UudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRm9yd2FyZC9yZXZlcnNlIG1pc21hdGNoIGZvciBpbnB1dCAiCisgICAgICAgICAgICAgICAgICAgICsgaGV4KHRlc3RzW2ldWzBdKSArICIsIGZvcndhcmQ6ICIgKyBoZXgoZm9yd2FyZCkKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBiYWNrd2FyZDogIiArIGhleChyZXZlcnNlKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBGb3J3YXJkL3JldmVyc2UgZm9yIGlucHV0ICIgKyBoZXgodGVzdHNbaV1bMF0pCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBmb3J3YXJkOiAiICsgaGV4KGZvcndhcmQpICsgIiwgYmFja3dhcmQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICArIGhleChyZXZlcnNlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc3RhdGljVGVzdCAoTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdW10gdGVzdHMsIGludCBvdXRDb2wpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCwgbW9kZSk7CisKKyAgICAgICAgICAgIGlmICghb3V0cHV0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG91dHB1dCArICInICgiICsgaGV4KG91dHB1dCkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjaGFyW10gb3V0cHV0ID0gbmV3IGNoYXJbMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID1VdGlsaXR5LnVuZXNjYXBlKCB0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgbmV3IFN0cmluZyhpbnB1dCkgKyAiJyAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgobmV3IFN0cmluZyhpbnB1dCkpICsgIikiICk7CisgICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgICB3aGlsZSh0cnVlKXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCxvdXRwdXQsIG1vZGUsMCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHJlcUxlbmd0aDw9b3V0cHV0Lmxlbmd0aCAgICApeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0PSBuZXcgY2hhcltJbnRlZ2VyLnBhcnNlSW50KGUuZ2V0TWVzc2FnZSgpKV07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICArICInICgiICArIGhleChuZXcgU3RyaW5nKG91dHB1dCkpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRlY29tcG9zZVRlc3QoTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdW10gdGVzdHMsIGludCBvdXRDb2wpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLmRlY29tcG9zZShpbnB1dCwgbW9kZT09Tm9ybWFsaXplci5ORktEKTsKKworICAgICAgICAgICAgaWYgKCFvdXRwdXQuZXF1YWxzKGV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgb3V0cHV0ICsgIicgKCIgKyBoZXgob3V0cHV0KSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNoYXJbXSBvdXRwdXQgPSBuZXcgY2hhclsxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhcltdIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworCisgICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBuZXcgU3RyaW5nKGlucHV0KSArICInICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChuZXcgU3RyaW5nKGlucHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIGludCByZXFMZW5ndGg9MDsKKyAgICAgICAgICAgIHdoaWxlKHRydWUpeworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgcmVxTGVuZ3RoPU5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LG91dHB1dCwgbW9kZT09Tm9ybWFsaXplci5ORktELDApOworICAgICAgICAgICAgICAgICAgICBpZihyZXFMZW5ndGg8PW91dHB1dC5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dD0gbmV3IGNoYXJbSW50ZWdlci5wYXJzZUludChlLmdldE1lc3NhZ2UoKSldOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWV4cGVjdC5lcXVhbHMobmV3IFN0cmluZyhvdXRwdXQsMCxyZXFMZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBuZXcgU3RyaW5nKG91dHB1dCkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiAgKyBoZXgobmV3IFN0cmluZyhvdXRwdXQpKSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG91dHB1dCA9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworICAgIAorICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBuZXcgU3RyaW5nKGlucHV0KSArICInICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgaGV4KG5ldyBTdHJpbmcoaW5wdXQpKSArICIpIiApOworICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgIHdoaWxlKHRydWUpeworICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLmRlY29tcG9zZShpbnB1dCwwLGlucHV0Lmxlbmd0aCxvdXRwdXQsMCxvdXRwdXQubGVuZ3RoLCBtb2RlPT1Ob3JtYWxpemVyLk5GS0QsMCk7CisgICAgICAgICAgICAgICAgICAgaWYocmVxTGVuZ3RoPD1vdXRwdXQubGVuZ3RoICl7CisgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgIG91dHB1dD0gbmV3IGNoYXJbSW50ZWdlci5wYXJzZUludChlLmdldE1lc3NhZ2UoKSldOworICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICsgIicgKCIgICsgaGV4KG5ldyBTdHJpbmcob3V0cHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBjaGFyW10gb3V0cHV0MiA9IG5ldyBjaGFyW3JlcUxlbmd0aCAqIDJdOworICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG91dHB1dCwgMCwgb3V0cHV0MiwgMCwgcmVxTGVuZ3RoKTsKKyAgICAgICAgICAgaW50IHJldExlbmd0aCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LDAsaW5wdXQubGVuZ3RoLCBvdXRwdXQyLCByZXFMZW5ndGgsIG91dHB1dDIubGVuZ3RoLCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgICAgIGlmKHJldExlbmd0aCAhPSByZXFMZW5ndGgpeworICAgICAgICAgICAgICAgbG9nbG4oIkZBSUw6IE5vcm1hbGl6ZXIuY29tcG9zZSBkaWQgbm90IHJldHVybiB0aGUgZXhwZWN0ZWQgbGVuZ3RoLiBFeHBlY3RlZDogIiArcmVxTGVuZ3RoICsgIiBHb3Q6ICIgKyByZXRMZW5ndGgpOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY29tcG9zZVRlc3QoTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdW10gdGVzdHMsIGludCBvdXRDb2wpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsIG1vZGU9PU5vcm1hbGl6ZXIuTkZLQyk7CisKKyAgICAgICAgICAgIGlmICghb3V0cHV0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG91dHB1dCArICInICgiICsgaGV4KG91dHB1dCkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjaGFyW10gb3V0cHV0ID0gbmV3IGNoYXJbMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgbmV3IFN0cmluZyhpbnB1dCkgKyAiJyAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgobmV3IFN0cmluZyhpbnB1dCkpICsgIikiICk7CisgICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgICB3aGlsZSh0cnVlKXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsb3V0cHV0LCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHJlcUxlbmd0aDw9b3V0cHV0Lmxlbmd0aCApeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0PSBuZXcgY2hhcltJbnRlZ2VyLnBhcnNlSW50KGUuZ2V0TWVzc2FnZSgpKV07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICArICInICgiICArIGhleChuZXcgU3RyaW5nKG91dHB1dCkpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb3V0cHV0ID0gbmV3IGNoYXJbMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgbmV3IFN0cmluZyhpbnB1dCkgKyAiJyAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgobmV3IFN0cmluZyhpbnB1dCkpICsgIikiICk7CisgICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgICB3aGlsZSh0cnVlKXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsMCxpbnB1dC5sZW5ndGgsIG91dHB1dCwgMCwgb3V0cHV0Lmxlbmd0aCwgbW9kZT09Tm9ybWFsaXplci5ORktDLDApOworICAgICAgICAgICAgICAgICAgICBpZihyZXFMZW5ndGg8PW91dHB1dC5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dD0gbmV3IGNoYXJbSW50ZWdlci5wYXJzZUludChlLmdldE1lc3NhZ2UoKSldOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWV4cGVjdC5lcXVhbHMobmV3IFN0cmluZyhvdXRwdXQsMCxyZXFMZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBuZXcgU3RyaW5nKG91dHB1dCkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiAgKyBoZXgobmV3IFN0cmluZyhvdXRwdXQpKSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyW10gb3V0cHV0MiA9IG5ldyBjaGFyW3JlcUxlbmd0aCAqIDJdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShvdXRwdXQsIDAsIG91dHB1dDIsIDAsIHJlcUxlbmd0aCk7CisgICAgICAgICAgICBpbnQgcmV0TGVuZ3RoID0gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LDAsaW5wdXQubGVuZ3RoLCBvdXRwdXQyLCByZXFMZW5ndGgsIG91dHB1dDIubGVuZ3RoLCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgICAgICBpZihyZXRMZW5ndGggIT0gcmVxTGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRkFJTDogTm9ybWFsaXplci5jb21wb3NlIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCBsZW5ndGguIEV4cGVjdGVkOiAiICtyZXFMZW5ndGggKyAiIEdvdDogIiArIHJldExlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGl0ZXJhdGVUZXN0KE5vcm1hbGl6ZXIgaXRlciwgU3RyaW5nW11bXSB0ZXN0cywgaW50IG91dENvbCl7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChpbnB1dCk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbChleHBlY3QsIGl0ZXIsICJjYXNlICIgKyBpICsgIiAiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhc3NlcnRFcXVhbChTdHJpbmcgZXhwZWN0ZWQsIE5vcm1hbGl6ZXIgaXRlciwgU3RyaW5nIG1zZykKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNJdGVyID0gIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShleHBlY3RlZCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoKGNoPWl0ZXIubmV4dCgpKSE9IE5vcm1hbGl6ZXIuRE9ORSl7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1zZyArICJVbmV4cGVjdGVkIGNoYXJhY3RlciAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgd2FudCA9IFVURjE2LmNoYXJBdChleHBlY3RlZCxpbmRleCk7CisgICAgICAgICAgICBpZiAoY2ggIT0gd2FudCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbXNnICsgImdvdCAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBleHBlY3RlZCAnIiArIHdhbnQgKyAiJyAoIiArIGhleCh3YW50KSsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4Kz0gIFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4IDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbXNnICsgIk9ubHkgZ290ICIgKyBpbmRleCArICIgY2hhcnMsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICsgZXhwZWN0ZWQubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjSXRlci5zZXRUb0xpbWl0KCk7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLnByZXZpb3VzKCkpIT1Ob3JtYWxpemVyLkRPTkUpeworICAgICAgICAgICAgaW50IHdhbnQgPSBjSXRlci5wcmV2aW91c0NvZGVQb2ludCgpOworICAgICAgICAgICAgaWYgKGNoICE9IHdhbnQgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyAiZ290ICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgd2FudCArICInICgiICsgaGV4KHdhbnQpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBOT1RFOiBUaGVzZSB0ZXN0cyBhcmUgdXNlZCBmb3IgcXVpY2sgZGVidWdnaW5nIHNvIGFyZSBub3QgcG9ydGVkCisgICAgLy8gdG8gSUNVNEMgdHNub3JtLmNwcCBpbiBpbnRsdGVzdAorICAgIC8vCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVidWdTdGF0aWMoKXsKKyAgICAgICAgU3RyaW5nIGluID0gVXRpbGl0eS51bmVzY2FwZSgiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NSIpOworICAgICAgICBpZighTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoaW4sTm9ybWFsaXplci5ORkMsMCkpeworICAgICAgICAgICAgZXJybG4oImlzTm9ybWFsaXplZCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBpbnB1dCAgPSAgIlx1QUQ4Qlx1QUQ4Qlx1QUQ4Qlx1QUQ4QiIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWF6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6eiIrCisgICAgICAgICAgICAiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiKworICAgICAgICAgICAgImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAiXHVBRDhCXHVBRDhCXHVBRDhCXHVBRDhCIisKKyAgICAgICAgICAgICJkXHUwMzFCXHUwMzA3XHUwMzIzIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdCA9ICJcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkYiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NWFhYWFhYWFhYWFhYWFhYWFhYXp6enp6eiIrCisgICAgICAgICAgICAgICAgICAgICAgICAienp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enoiKworICAgICAgICAgICAgICAgICAgICAgICAgImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyIrCisgICAgICAgICAgICAgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAgICAgICAgICAgICAiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkYiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1MDA2NFx1MDMxQlx1MDMyM1x1MDMwNyI7CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoVXRpbGl0eS51bmVzY2FwZShpbnB1dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgaWYoIWV4cGVjdC5lcXVhbHMob3V0cHV0KSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgZXhwZWN0ZWQ6ICIraGV4KGV4cGVjdCkgKyAiIGdvdDogIitoZXgob3V0cHV0KSk7CisgICAgICAgICAgICB9CisKKworCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3REZWJ1Z0l0ZXIoKXsKKyAgICAgICAgU3RyaW5nIHNyYyA9IFV0aWxpdHkudW5lc2NhcGUoIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIik7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IFV0aWxpdHkudW5lc2NhcGUoIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIik7CisgICAgICAgIE5vcm1hbGl6ZXIgaXRlciA9IG5ldyBOb3JtYWxpemVyKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihVdGlsaXR5LnVuZXNjYXBlKHNyYykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5OT05FLDApOworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBpbnQgY2g7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjSXRlciA9ICBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoZXhwZWN0ZWQpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKChjaD1pdGVyLm5leHQoKSkhPSBOb3JtYWxpemVyLkRPTkUpeworICAgICAgICAgICAgaWYgKGluZGV4ID49IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB3YW50ID0gVVRGMTYuY2hhckF0KGV4cGVjdGVkLGluZGV4KTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB3YW50KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgImdvdCAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBleHBlY3RlZCAnIiArIHdhbnQgKyAiJyAoIiArIGhleCh3YW50KSsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4Kz0gIFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4IDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJPbmx5IGdvdCAiICsgaW5kZXggKyAiIGNoYXJzLCBleHBlY3RlZCAiCisgICAgICAgICAgICArIGV4cGVjdGVkLmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY0l0ZXIuc2V0VG9MaW1pdCgpOworICAgICAgICB3aGlsZSgoY2g9aXRlci5wcmV2aW91cygpKSE9Tm9ybWFsaXplci5ET05FKXsKKyAgICAgICAgICAgIGludCB3YW50ID0gY0l0ZXIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB3YW50ICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgImdvdCAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBleHBlY3RlZCAnIiArIHdhbnQgKyAiJyAoIiArIGhleCh3YW50KSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdERlYnVnSXRlck9sZCgpeworICAgICAgICBTdHJpbmcgaW5wdXQgPSAiXFxVMDAwMUQxNUUiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmV2ZXJzZSA9ICJcdUQ4MzRcdURENjVcdUQ4MzRcdURENTciOworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBpbnQgY2g7CisgICAgICAgIE5vcm1hbGl6ZXIgaXRlciA9IG5ldyBOb3JtYWxpemVyKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihVdGlsaXR5LnVuZXNjYXBlKGlucHV0KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBnb3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoY2ggPSBpdGVyLmZpcnN0KCk7Y2ghPU5vcm1hbGl6ZXIuRE9ORTtjaD1pdGVyLm5leHQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGluZGV4ID49IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2ggKworICAgICAgICAgICAgICAgICAgICAgICAiJyAoIiArIGhleChjaCkgKyAiKSIgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnb3QuYXBwZW5kKFVDaGFyYWN0ZXIudG9TdHJpbmcoY2gpKTsKKyAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFleHBlY3RlZC5lcXVhbHMoZ290LnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgImdvdCAnIiArZ290KyAiJyAoIiArIGhleChnb3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgZXhwZWN0ZWQgKyAiJyAoIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBoZXgoZXhwZWN0ZWQpICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ290Lmxlbmd0aCgpIDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJPbmx5IGdvdCAiICsgaW5kZXggKyAiIGNoYXJzLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIGV4cGVjdGVkLmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJSZXZlcnNlIEl0ZXJhdGlvblxuIik7CisgICAgICAgIGl0ZXIuc2V0SW5kZXhPbmx5KGl0ZXIuZW5kSW5kZXgoKSk7CisgICAgICAgIGdvdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvcihjaD1pdGVyLnByZXZpb3VzKCk7Y2ghPU5vcm1hbGl6ZXIuRE9ORTtjaD1pdGVyLnByZXZpb3VzKCkpeworICAgICAgICAgICAgaWYgKGluZGV4ID49IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIiArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdC5hcHBlbmQoVUNoYXJhY3Rlci50b1N0cmluZyhjaCkpOworICAgICAgICB9CisgICAgICAgIGlmICghZXhwZWN0ZWRSZXZlcnNlLmVxdWFscyhnb3QudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiZ290ICciICtnb3QrICInICgiICsgaGV4KGdvdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGV4cGVjdGVkKSArICIpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGdvdC5sZW5ndGgoKSA8IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiT25seSBnb3QgIiArIGluZGV4ICsgIiBjaGFycywgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICsgZXhwZWN0ZWQubGVuZ3RoKCkpOworICAgICAgICB9CisKKyAgICB9CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGhlbHBlciBjbGFzcyBmb3IgVGVzdFByZXZpb3VzTmV4dCgpCisgICAgLy8gc2ltcGxlIFVURi0zMiBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICBjbGFzcyBVQ2hhckl0ZXJhdG9yIHsKKworICAgICAgIHB1YmxpYyBVQ2hhckl0ZXJhdG9yKGludFtdIHNyYywgaW50IGxlbiwgaW50IGluZGV4KXsKKworICAgICAgICAgICAgcz1zcmM7CisgICAgICAgICAgICBsZW5ndGg9bGVuOworICAgICAgICAgICAgaT1pbmRleDsKKyAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICAgICAgaWYoaTxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICAgICAgaWYoaTxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1tpKytdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICAgICAgaWYoaT4wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbLS1pXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnRbXSBzOworICAgICAgICBwcml2YXRlIGludCBsZW5ndGgsIGk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmV2aW91c05leHQoKSB7CisgICAgICAgIC8vIHNyYyBhbmQgZXhwZWN0IHN0cmluZ3MKKyAgICAgICAgY2hhciBzcmNbXT17CisgICAgICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKDB4MmY5OTkpLCBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDJmOTk5KSwKKyAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgxZDE1ZiksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MWQxNWYpLAorICAgICAgICAgICAgMHhjNCwKKyAgICAgICAgICAgIDB4MWVkMAorICAgICAgICB9OworICAgICAgICBpbnQgZXhwZWN0W109eworICAgICAgICAgICAgMHg4MzFkLAorICAgICAgICAgICAgMHgxZDE1OCwgMHgxZDE2NSwKKyAgICAgICAgICAgIDB4NDEsIDB4MzA4LAorICAgICAgICAgICAgMHg0ZiwgMHgzMDIsIDB4MzAxCisgICAgICAgIH07CisKKyAgICAgICAgLy8gZXhwZWN0ZWQgc3JjIGluZGV4ZXMgY29ycmVzcG9uZGluZyB0byBleHBlY3QgaW5kZXhlcworICAgICAgICBpbnQgZXhwZWN0SW5kZXhbXT17CisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMiwgMiwKKyAgICAgICAgICAgIDQsIDQsCisgICAgICAgICAgICA1LCA1LCA1LAorICAgICAgICAgICAgNiAvLyBiZWhpbmQgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgfTsKKworICAgICAgICAvLyBpbml0aWFsIGluZGV4ZXMgaW50byB0aGUgc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworCisgICAgICAgIGZpbmFsIGludCBTUkNfTUlERExFPTQ7CisgICAgICAgIGZpbmFsIGludCBFWFBFQ1RfTUlERExFPTM7CisKKworICAgICAgICAvLyBtb3ZlbWVudCB2ZWN0b3IKKyAgICAgICAgLy8gLSBmb3IgcHJldmlvdXMoKSwgMCBmb3IgY3VycmVudCgpLCArIGZvciBuZXh0KCkKKyAgICAgICAgLy8gbm90IGNvbnN0IHNvIHRoYXQgd2UgY2FuIHRlcm1pbmF0ZSBpdCBiZWxvdyBmb3IgdGhlIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgU3RyaW5nIG1vdmVzPSIwKzArMC0tMC0wLSsrKzAtLSsrKysrKyswLS0tLS0tLS0iOworCisgICAgICAgIC8vIGl0ZXJhdG9ycworICAgICAgICBOb3JtYWxpemVyIGl0ZXIgPSBuZXcgTm9ybWFsaXplcihuZXcgU3RyaW5nKHNyYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgVUNoYXJJdGVyYXRvciBpdGVyMzIgPSBuZXcgVUNoYXJJdGVyYXRvcihleHBlY3QsIGV4cGVjdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9NSURETEUpOworCisgICAgICAgIGludCBjMSwgYzI7CisgICAgICAgIGNoYXIgbTsKKworICAgICAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworICAgICAgICBpdGVyLnNldEluZGV4T25seShTUkNfTUlERExFKTsKKworICAgICAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKyAgICAgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKyAgICAgICAgaW50IG1vdmVzSW5kZXggPTA7CisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAvKiBtPT0nKycgKi8geworICAgICAgICAgICAgICAgIGMxPWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5uZXh0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgcmVzdWx0cworICAgICAgICAgICAgaWYoYzEhPWMyKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIitoaXN0b3J5KyI6ICIKKyAgICAgICAgICAgICAgICAgICAgICArImdvdCBjMT0gIiArIGhleChjMSkgKyIgIT0gZXhwZWN0ZWQgYzI9ICIrIGhleChjMikpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSE9ZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBPbmx5IGluIElDVTRqCisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzTmV4dEpDSSgpIHsKKyAgICAgICAgLy8gc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworICAgICAgICBjaGFyIHNyY1tdPXsKKyAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgyZjk5OSksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MmY5OTkpLAorICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDFkMTVmKSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxZDE1ZiksCisgICAgICAgICAgICAweGM0LAorICAgICAgICAgICAgMHgxZWQwCisgICAgICAgIH07CisgICAgICAgIGludCBleHBlY3RbXT17CisgICAgICAgICAgICAweDgzMWQsCisgICAgICAgICAgICAweDFkMTU4LCAweDFkMTY1LAorICAgICAgICAgICAgMHg0MSwgMHgzMDgsCisgICAgICAgICAgICAweDRmLCAweDMwMiwgMHgzMDEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBleHBlY3RlZCBzcmMgaW5kZXhlcyBjb3JyZXNwb25kaW5nIHRvIGV4cGVjdCBpbmRleGVzCisgICAgICAgIGludCBleHBlY3RJbmRleFtdPXsKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAyLCAyLAorICAgICAgICAgICAgNCwgNCwKKyAgICAgICAgICAgIDUsIDUsIDUsCisgICAgICAgICAgICA2IC8vIGJlaGluZCBsYXN0IGNoYXJhY3RlcgorICAgICAgICB9OworCisgICAgICAgIC8vIGluaXRpYWwgaW5kZXhlcyBpbnRvIHRoZSBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisKKyAgICAgICAgZmluYWwgaW50IFNSQ19NSURETEU9NDsKKyAgICAgICAgZmluYWwgaW50IEVYUEVDVF9NSURETEU9MzsKKworCisgICAgICAgIC8vIG1vdmVtZW50IHZlY3RvcgorICAgICAgICAvLyAtIGZvciBwcmV2aW91cygpLCAwIGZvciBjdXJyZW50KCksICsgZm9yIG5leHQoKQorICAgICAgICAvLyBub3QgY29uc3Qgc28gdGhhdCB3ZSBjYW4gdGVybWluYXRlIGl0IGJlbG93IGZvciB0aGUgZXJyb3IgbWVzc2FnZQorICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSI7CisKKyAgICAgICAgLy8gaXRlcmF0b3JzCisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyhzcmMpKTsKKyAgICAgICAgTm9ybWFsaXplciBpdGVyID0gbmV3IE5vcm1hbGl6ZXIodGV4dCxOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgVUNoYXJJdGVyYXRvciBpdGVyMzIgPSBuZXcgVUNoYXJJdGVyYXRvcihleHBlY3QsIGV4cGVjdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9NSURETEUpOworCisgICAgICAgIGludCBjMSwgYzI7CisgICAgICAgIGNoYXIgbTsKKworICAgICAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworICAgICAgICBpdGVyLnNldEluZGV4T25seShTUkNfTUlERExFKTsKKworICAgICAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKyAgICAgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKyAgICAgICAgaW50IG1vdmVzSW5kZXggPTA7CisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAvKiBtPT0nKycgKi8geworICAgICAgICAgICAgICAgIGMxPWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5uZXh0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgcmVzdWx0cworICAgICAgICAgICAgaWYoYzEhPWMyKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIitoaXN0b3J5KyI6ICIKKyAgICAgICAgICAgICAgICAgICAgICArImdvdCBjMT0gIiArIGhleChjMSkgKyIgIT0gZXhwZWN0ZWQgYzI9ICIrIGhleChjMikpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSE9ZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHRlc3QgQVBJcyB0aGF0IGFyZSBub3Qgb3RoZXJ3aXNlIHVzZWQgLSBpbXByb3ZlIHRlc3QgY292ZXJhZ2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXplckFQSSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICB0cnl7CisgICAgICAgICAgICAvLyBpbnN0YW50aWF0ZSBhIE5vcm1hbGl6ZXIgZnJvbSBhIENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICAgICAgICBTdHJpbmcgcz1VdGlsaXR5LnVuZXNjYXBlKCJhXHUwMzA4XHVhYzAwXFxVMDAwMmY4MDAiKTsKKyAgICAgICAgICAgIC8vIG1ha2UgcyBhIGJpdCBsb25nZXIgYW5kIG1vcmUgaW50ZXJlc3RpbmcKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMrcyk7CisgICAgICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcihpdGVyLCBOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgICAgIGlmKG5vcm0ubmV4dCgpIT0weGU0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IpLm5leHQoKSIpOworICAgICAgICAgICAgfSAgIAorICAgIAorICAgICAgICAgICAgLy8gdGVzdCBjbG9uZSgpLCA9PSwgYW5kIGhhc2hDb2RlKCkKKyAgICAgICAgICAgIE5vcm1hbGl6ZXIgY2xvbmU9KE5vcm1hbGl6ZXIpbm9ybS5jbG9uZSgpOworICAgICAgICAgICAgaWYoY2xvbmUuZXF1YWxzKG5vcm0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkhPW5vcm0iKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoY2xvbmUuZ2V0TGVuZ3RoKCkhPSBub3JtLmdldExlbmd0aCgpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmdldEJlZ2luSW5kZXgoKSIpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIC8vIGNsb25lIG11c3QgaGF2ZSB0aGUgc2FtZSBoYXNoQ29kZSgpCisgICAgICAgICAgICAvL2lmKGNsb25lLmhhc2hDb2RlKCkhPW5vcm0uaGFzaENvZGUoKSkgeworICAgICAgICAgICAgLy8gICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkuaGFzaENvZGUoKSE9Y29weS5oYXNoQ29kZSgpIik7CisgICAgICAgICAgICAvL30KKyAgICAgICAgICAgIGlmKGNsb25lLm5leHQoKSE9MHhhYzAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLm5leHQoKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGNoID0gY2xvbmUubmV4dCgpOworICAgICAgICAgICAgaWYoY2ghPTB4NGUzZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IpKS5jbG9uZSgpLm5leHQoKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gcG9zaXRpb24gY2hhbmdlZCwgbXVzdCBjaGFuZ2UgaGFzaENvZGUoKQorICAgICAgICAgICAgaWYoY2xvbmUuaGFzaENvZGUoKT09bm9ybS5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkubmV4dCgpLmhhc2hDb2RlKCk9PWNvcHkuaGFzaENvZGUoKSIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gdGVzdCBjb21wb3NlKCkgYW5kIGRlY29tcG9zZSgpCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVsOworICAgICAgICAgICAgU3RyaW5nIG5ma2MsIG5ma2Q7CisgICAgICAgICAgICB0ZWw9bmV3IFN0cmluZ0J1ZmZlcigiXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxIik7CisgICAgICAgICAgICB0ZWwuaW5zZXJ0KDEsKGNoYXIpMHgwMzAxKTsKKyAgICAKKyAgICAgICAgICAgIG5ma2M9Tm9ybWFsaXplci5jb21wb3NlKHRlbC50b1N0cmluZygpLCB0cnVlKTsKKyAgICAgICAgICAgIG5ma2Q9Tm9ybWFsaXplci5kZWNvbXBvc2UodGVsLnRvU3RyaW5nKCksIHRydWUpOworICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgIW5ma2MuZXF1YWxzKFV0aWxpdHkudW5lc2NhcGUoIlRFXHUwMTM5VEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMIikpfHwKKyAgICAgICAgICAgICAgICAhbmZrZC5lcXVhbHMoVXRpbGl0eS51bmVzY2FwZSgiVEVMXHUwMzAxVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMIikpCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcjo6KGRlKWNvbXBvc2UoKTogd3JvbmcgcmVzdWx0KHMpIik7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IHNldEluZGV4KCkKKy8vICAgICAgICAgICAgY2g9bm9ybS5zZXRJbmRleCgzKTsKKy8vICAgICAgICAgICAgaWYoY2ghPTB4NGUzZCkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IpLnNldEluZGV4KDMpIik7CisvLyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHRlc3Qgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvcikgYW5kIGdldFRleHQoKQorICAgICAgICAgICAgU3RyaW5nIG91dCwgb3V0MjsKKyAgICAgICAgICAgIGNsb25lLnNldFRleHQoaXRlcik7CisgICAgCisgICAgICAgICAgICBvdXQgPSBjbG9uZS5nZXRUZXh0KCk7CisgICAgICAgICAgICBvdXQyID0gaXRlci5nZXRUZXh0KCk7CisgICAgICAgICAgICBpZiggIW91dC5lcXVhbHMob3V0MikgfHwKKyAgICAgICAgICAgICAgICBjbG9uZS5zdGFydEluZGV4KCkhPTB8fAorICAgICAgICAgICAgICAgIGNsb25lLmVuZEluZGV4KCkhPWl0ZXIuZ2V0TGVuZ3RoKCkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpzZXRUZXh0KCkgb3IgTm9ybWFsaXplcjo6Z2V0VGV4dCgpIik7CisgICAgICAgICAgICB9CisgICAgIAorICAgICAgICAgICAgY2hhcltdIGZpbGxJbjEgPSBuZXcgY2hhcltjbG9uZS5nZXRMZW5ndGgoKV07CisgICAgICAgICAgICBjaGFyW10gZmlsbEluMiA9IG5ldyBjaGFyW2l0ZXIuZ2V0TGVuZ3RoKCldOworICAgICAgICAgICAgaW50IGxlbiA9IGNsb25lLmdldFRleHQoZmlsbEluMSk7CisgICAgICAgICAgICBpdGVyLmdldFRleHQoZmlsbEluMiwwKTsKKyAgICAgICAgICAgIGlmKCFVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcyhmaWxsSW4xLDAsZmlsbEluMiwwLGxlbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmdldFRleHQoKS4gTm9ybWFsaXplcjogIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgobmV3IFN0cmluZyhmaWxsSW4xKSkrIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIEl0ZXI6ICIgKyBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjIpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNsb25lLnNldFRleHQoZmlsbEluMSk7CisgICAgICAgICAgICBsZW4gPSBjbG9uZS5nZXRUZXh0KGZpbGxJbjIpOworICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlSZWdpb25NYXRjaGVzKGZpbGxJbjEsMCxmaWxsSW4yLDAsbGVuKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuc2V0VGV4dCgpIG9yIE5vcm1hbGl6ZXIuZ2V0VGV4dCgpIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgobmV3IFN0cmluZyhmaWxsSW4xKSkrIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIEl0ZXI6ICIgKyBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjIpKSk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IHNldFRleHQoVUNoYXIgKiksIGdldFVNb2RlKCkgYW5kIHNldE1vZGUoKQorICAgICAgICAgICAgY2xvbmUuc2V0VGV4dChzKTsKKyAgICAgICAgICAgIGNsb25lLnNldEluZGV4T25seSgxKTsKKyAgICAgICAgICAgIGNsb25lLnNldE1vZGUoTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgaWYoY2xvbmUuZ2V0TW9kZSgpIT1Ob3JtYWxpemVyLk5GRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpzZXRNb2RlKCkgb3IgTm9ybWFsaXplcjo6Z2V0TW9kZSgpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjbG9uZS5uZXh0KCkhPTB4MzA4IHx8IGNsb25lLm5leHQoKSE9MHgxMTAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OnNldFRleHQoKSBvciBOb3JtYWxpemVyOjpzZXRNb2RlKCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHRlc3QgbGFzdCgpL3ByZXZpb3VzKCkgd2l0aCBhbiBpbnRlcm5hbCBidWZmZXIgb3ZlcmZsb3cKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJhYWFhYWFhYWFhIik7CisgICAgICAgICAgICBidWYuc2V0Q2hhckF0KDEwLTEsJ1x1MDMwOCcpOworICAgICAgICAgICAgY2xvbmUuc2V0VGV4dChidWYpOworICAgICAgICAgICAgaWYoY2xvbmUubGFzdCgpIT0weDMwOCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKDEwKlUrMDMwOCkubGFzdCgpIik7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IFVOT1JNX05PTkUKKyAgICAgICAgICAgIG5vcm0uc2V0TW9kZShOb3JtYWxpemVyLk5PTkUpOworICAgICAgICAgICAgaWYobm9ybS5maXJzdCgpIT0weDYxIHx8IG5vcm0ubmV4dCgpIT0weDMwOCB8fCBub3JtLmxhc3QoKSE9MHgyZjgwMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKFVOT1JNX05PTkUpLmZpcnN0KCkvbmV4dCgpL2xhc3QoKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0PU5vcm1hbGl6ZXIubm9ybWFsaXplKHMsIE5vcm1hbGl6ZXIuTk9ORSk7CisgICAgICAgICAgICBpZighb3V0LmVxdWFscyhzKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpub3JtYWxpemUoVU5PUk1fTk9ORSkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gMHgxRDE1RTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSAiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NSI7CisgICAgICAgICAgICBTdHJpbmcgbnMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjaCxOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICBpZighbnMuZXF1YWxzKFV0aWxpdHkudW5lc2NhcGUoZXhwKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnQsTW9kZSkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5zID0gTm9ybWFsaXplci5ub3JtYWxpemUoY2gsTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgICAgICBpZighbnMuZXF1YWxzKFV0aWxpdHkudW5lc2NhcGUoZXhwKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnQsTW9kZSxpbnQpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25jYXRlbmF0ZSgpIHsKKworICAgICAgICBPYmplY3RbXVtdY2FzZXM9bmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAvKiBtb2RlLCBsZWZ0LCByaWdodCwgcmVzdWx0ICovCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkMsCisgICAgICAgICAgICAgICAgInJlIiwKKyAgICAgICAgICAgICAgICAiXHUwMzAxc3VtXHUwMGU5IiwKKyAgICAgICAgICAgICAgICAiclx1MDBlOXN1bVx1MDBlOSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkMsCisgICAgICAgICAgICAgICAgImFcdTExMDAiLAorICAgICAgICAgICAgICAgICJcdTExNjFiY2RlZmdoaWprIiwKKyAgICAgICAgICAgICAgICAiYVx1YWMwMGJjZGVmZ2hpamsiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLyogIyMjIFRPRE86IGFkZCBtb3JlIGludGVyZXN0aW5nIGNhc2VzICovCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsCisgICAgICAgICAgICAgICAgIlx1MDM0MFx1MDM0MVx1MDM0M1x1MDM0NFx1MDM3NFx1MDM3RVx1MDM4N1x1MDk1OCIgKworICAgICAgICAgICAgICAgICJcdTA5NTlcdTA5NUFcdTA5NUJcdTA5NUNcdTA5NURcdTA5NUVcdTA5NUZcdTA5REMiICsKKyAgICAgICAgICAgICAgICAiXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFIiArCisgICAgICAgICAgICAgICAgIlx1MEI1Q1x1MEI1RFx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OSIgKworICAgICAgICAgICAgICAgICJcdTBGNzNcdTBGNzVcdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTIiICsKKyAgICAgICAgICAgICAgICAiXHUwRkE3XHUwRkFDXHUwRkI5XHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5IiArCisgICAgICAgICAgICAgICAgIlx1MUY3Qlx1MUY3RFx1MUZCQlx1MUZCRVx1MUZDOVx1MUZDQlx1MUZEM1x1MUZEQiIsCisKKyAgICAgICAgICAgICAgICAiXHUxRkUzXHUxRkVCXHUxRkVFXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZEXHUyMDAwIiArCisgICAgICAgICAgICAgICAgIlx1MjAwMVx1MjEyNlx1MjEyQVx1MjEyQlx1MjMyOVx1MjMyQVx1RjkwMFx1RkExMCIgKworICAgICAgICAgICAgICAgICJcdUZBMTJcdUZBMTVcdUZBMjBcdUZBMjJcdUZBMjVcdUZBMjZcdUZBMkFcdUZCMUYiICsKKyAgICAgICAgICAgICAgICAiXHVGQjJBXHVGQjJCXHVGQjJDXHVGQjJEXHVGQjJFXHVGQjJGXHVGQjMwXHVGQjMxIiArCisgICAgICAgICAgICAgICAgIlx1RkIzMlx1RkIzM1x1RkIzNFx1RkIzNVx1RkIzNlx1RkIzOFx1RkIzOVx1RkIzQSIgKworICAgICAgICAgICAgICAgICJcdUZCM0JcdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDFcdUZCNDNcdUZCNDRcdUZCNDYiICsKKyAgICAgICAgICAgICAgICAiXHVGQjQ3XHVGQjQ4XHVGQjQ5XHVGQjRBXHVGQjRCXHVGQjRDXHVGQjREXHVGQjRFIiwKKworICAgICAgICAgICAgICAgICJcdTAzNDBcdTAzNDFcdTAzNDNcdTAzNDRcdTAzNzRcdTAzN0VcdTAzODdcdTA5NTgiICsKKyAgICAgICAgICAgICAgICAiXHUwOTU5XHUwOTVBXHUwOTVCXHUwOTVDXHUwOTVEXHUwOTVFXHUwOTVGXHUwOURDIiArCisgICAgICAgICAgICAgICAgIlx1MDlERFx1MDlERlx1MEEzM1x1MEEzNlx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1RSIgKworICAgICAgICAgICAgICAgICJcdTBCNUNcdTBCNURcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjkiICsKKyAgICAgICAgICAgICAgICAiXHUwRjczXHUwRjc1XHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyIiArCisgICAgICAgICAgICAgICAgIlx1MEZBN1x1MEZBQ1x1MEZCOVx1MUY3MVx1MUY3M1x1MUY3NVx1MUY3N1x1MUY3OSIgKworICAgICAgICAgICAgICAgICJcdTFGN0JcdTFGN0RcdTFGQkJcdTFGQkVcdTFGQzlcdTFGQ0JcdTFGRDNcdTAzOTkiICsKKyAgICAgICAgICAgICAgICAiXHUwMzAxXHUwM0M1XHUwMzA4XHUwMzAxXHUxRkVCXHUxRkVFXHUxRkVGXHUxRkY5IiArCisgICAgICAgICAgICAgICAgIlx1MUZGQlx1MUZGRFx1MjAwMFx1MjAwMVx1MjEyNlx1MjEyQVx1MjEyQlx1MjMyOSIgKworICAgICAgICAgICAgICAgICJcdTIzMkFcdUY5MDBcdUZBMTBcdUZBMTJcdUZBMTVcdUZBMjBcdUZBMjJcdUZBMjUiICsKKyAgICAgICAgICAgICAgICAiXHVGQTI2XHVGQTJBXHVGQjFGXHVGQjJBXHVGQjJCXHVGQjJDXHVGQjJEXHVGQjJFIiArCisgICAgICAgICAgICAgICAgIlx1RkIyRlx1RkIzMFx1RkIzMVx1RkIzMlx1RkIzM1x1RkIzNFx1RkIzNVx1RkIzNiIgKworICAgICAgICAgICAgICAgICJcdUZCMzhcdUZCMzlcdUZCM0FcdUZCM0JcdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDEiICsKKyAgICAgICAgICAgICAgICAiXHVGQjQzXHVGQjQ0XHVGQjQ2XHVGQjQ3XHVGQjQ4XHVGQjQ5XHVGQjRBXHVGQjRCIiArCisgICAgICAgICAgICAgICAgIlx1RkI0Q1x1RkI0RFx1RkI0RSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmcgbGVmdCwgcmlnaHQsIGV4cGVjdCwgcmVzdWx0OworICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgLyogdGVzdCBjb25jYXRlbmF0aW9uICovCisgICAgICAgIGZvcihpPTA7IGk8Y2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG1vZGUgPSAoTm9ybWFsaXplci5Nb2RlKWNhc2VzW2ldWzBdOworCisgICAgICAgICAgICBsZWZ0PShTdHJpbmcpY2FzZXNbaV1bMV07CisgICAgICAgICAgICByaWdodD0oU3RyaW5nKWNhc2VzW2ldWzJdOworICAgICAgICAgICAgZXhwZWN0PShTdHJpbmcpY2FzZXNbaV1bM107CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuY29uY2F0ZW5hdGUobGVmdCwgcmlnaHQsIG1vZGUsMCk7CisgICAgICAgICAgICAgICAgaWYoIHJlc3VsdC5lcXVhbHMoZXhwZWN0KSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5jb25jYXRlbmF0ZSgpLCBjYXNlc1tdIGZhaWxlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyIsIHJlc3VsdD09ZXhwZWN0OiBleHBlY3RlZDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIGhleChleHBlY3QpKyIgPT09PT09PT09PiBnb3Q6ICIgKyBoZXgocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdD1Ob3JtYWxpemVyLmNvbmNhdGVuYXRlKGxlZnQudG9DaGFyQXJyYXkoKSwgcmlnaHQudG9DaGFyQXJyYXkoKSwgbW9kZSwwKTsKKyAgICAgICAgICAgICAgICBpZiggcmVzdWx0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmNvbmNhdGVuYXRlKCksIGNhc2VzW10gZmFpbGVkIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIiwgcmVzdWx0PT1leHBlY3Q6IGV4cGVjdGVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgaGV4KGV4cGVjdCkrIiA9PT09PT09PT0+IGdvdDogIiArIGhleChyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgUkFORF9NQVggPSAweDdmZmY7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hlY2tGQ0QoKQorICAgIHsKKyAgICAgIGNoYXJbXSBGQVNUID0gezB4MDAwMSwgMHgwMDAyLCAweDAwMDMsIDB4MDAwNCwgMHgwMDA1LCAweDAwMDYsIDB4MDAwNywKKyAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCwgMHgwMDA5LCAweDAwMEF9OworCisgICAgICBjaGFyW10gRkFMU0UgPSB7MHgwMDAxLCAweDAwMDIsIDB4MDJFQSwgMHgwM0VCLCAweDAzMDAsIDB4MDMwMSwKKyAgICAgICAgICAgICAgICAgICAgICAweDAyQjksIDB4MDMxNCwgMHgwMzE1LCAweDAzMTZ9OworCisgICAgICBjaGFyW10gVFJVRSA9IHsweDAwMzAsIDB4MDA0MCwgMHgwNDQwLCAweDA1NkQsIDB4MDY0RiwgMHgwNkU3LAorICAgICAgICAgICAgICAgICAgICAgMHgwMDUwLCAweDA3MzAsIDB4MDlFRSwgMHgxRTEwfTsKKworICAgICAgY2hhcltdW10gZGF0YXN0cj0geyB7MHgwMDYxLCAweDAzMEEsIDB4MUUwNSwgMHgwMzAyLCAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgezB4MDA2MSwgMHgwMzBBLCAweDAwRTIsIDB4MDMyMywgMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsweDAwNjEsIDB4MDMyMywgMHgwMEUyLCAweDAzMjMsIDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7MHgwMDYxLCAweDAzMjMsIDB4MUUwNSwgMHgwMzAyLCAwfQorICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCByZXN1bHRbXSA9IHtOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTywgTm9ybWFsaXplci5OTywgTm9ybWFsaXplci5ZRVN9OworCisgICAgICBjaGFyW10gZGF0YWNoYXI9IHsgICAgICAgIDB4NjAsIDB4NjEsIDB4NjIsIDB4NjMsIDB4NjQsIDB4NjUsIDB4NjYsIDB4NjcsIDB4NjgsIDB4NjksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTAsIDB4ZTEsIDB4ZTIsIDB4ZTMsIDB4ZTQsIDB4ZTUsIDB4ZTYsIDB4ZTcsIDB4ZTgsIDB4ZTksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMCwgMHgwMzAxLCAweDAzMDIsIDB4MDMwMywgMHgwMzA0LCAweDAzMDUsIDB4MDMwNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzA3LCAweDAzMDgsIDB4MDMwOSwgMHgwMzBhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjAsIDB4MDMyMSwgMHgwMzIyLCAweDAzMjMsIDB4MDMyNCwgMHgwMzI1LCAweDAzMjYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyNywgMHgwMzI4LCAweDAzMjksIDB4MDMyYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTAwLCAweDFlMDEsIDB4MWUwMiwgMHgxZTAzLCAweDFlMDQsIDB4MWUwNSwgMHgxZTA2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMDcsIDB4MWUwOCwgMHgxZTA5LCAweDFlMGEKKyAgICAgICAgICAgICAgICAgICAgICAgfTsKKworICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQVNULDAsRkFTVC5sZW5ndGgsIE5vcm1hbGl6ZXIuRkNELDApICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICBlcnJsbigiTm9ybWFsaXplci5xdWlja0NoZWNrKEZDRCkgZmFpbGVkOiBleHBlY3RlZCB2YWx1ZSBmb3IgZmFzdCBOb3JtYWxpemVyLnF1aWNrQ2hlY2sgaXMgTm9ybWFsaXplci5ZRVNcbiIpOworICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQUxTRSwwLCBGQUxTRS5sZW5ndGgsTm9ybWFsaXplci5GQ0QsMCkgIT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogZXhwZWN0ZWQgdmFsdWUgZm9yIGVycm9yIE5vcm1hbGl6ZXIucXVpY2tDaGVjayBpcyBOb3JtYWxpemVyLk5PXG4iKTsKKyAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soVFJVRSwwLFRSVUUubGVuZ3RoLE5vcm1hbGl6ZXIuRkNELDApICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICBlcnJsbigiTm9ybWFsaXplci5xdWlja0NoZWNrKEZDRCkgZmFpbGVkOiBleHBlY3RlZCB2YWx1ZSBmb3IgY29ycmVjdCBOb3JtYWxpemVyLnF1aWNrQ2hlY2sgaXMgTm9ybWFsaXplci5ZRVNcbiIpOworCisKKyAgICAgIHdoaWxlIChjb3VudCA8IDQpCisgICAgICB7CisgICAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCBmY2RyZXN1bHQgPSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZGF0YXN0cltjb3VudF0sMCxkYXRhc3RyW2NvdW50XS5sZW5ndGgsIE5vcm1hbGl6ZXIuRkNELDApOworICAgICAgICBpZiAocmVzdWx0W2NvdW50XSAhPSBmY2RyZXN1bHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLnF1aWNrQ2hlY2soRkNEKSBmYWlsZWQ6IERhdGEgc2V0ICIrIGNvdW50CisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCB2YWx1ZSAiKyByZXN1bHRbY291bnRdKTsKKyAgICAgICAgfQorICAgICAgICBjb3VudCArKzsKKyAgICAgIH0KKworICAgICAgLyogcmFuZG9tIGNoZWNrcyBvZiBsb25nIHN0cmluZ3MgKi8KKyAgICAgIC8vc3JhbmQoKHVuc2lnbmVkKXRpbWUoIE5VTEwgKSk7CisgICAgICBSYW5kb20gcmFuZCA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20KKworICAgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgNTA7IGNvdW50ICsrKQorICAgICAgeworICAgICAgICBpbnQgc2l6ZSA9IDA7CisgICAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCB0ZXN0cmVzdWx0ID0gTm9ybWFsaXplci5ZRVM7CisgICAgICAgIGNoYXJbXSBkYXRhPSBuZXcgY2hhclsyMF07CisgICAgICAgIGNoYXJbXSBub3JtPSBuZXcgY2hhclsxMDBdOworICAgICAgICBjaGFyW10gbmZkID0gbmV3IGNoYXJbMTAwXTsKKyAgICAgICAgaW50IG5vcm1TdGFydCA9IDA7CisgICAgICAgIGludCBuZmRzaXplID0gMDsKKyAgICAgICAgd2hpbGUgKHNpemUgIT0gMTkpIHsKKyAgICAgICAgICBkYXRhW3NpemVdID0gZGF0YWNoYXJbcmFuZC5uZXh0SW50KFJBTkRfTUFYKSo1MC9SQU5EX01BWF07CisgICAgICAgICAgbG9nbG4oIjB4IitkYXRhW3NpemVdKTsKKyAgICAgICAgICBub3JtU3RhcnQgKz0gTm9ybWFsaXplci5ub3JtYWxpemUoZGF0YSxzaXplLHNpemUrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtLG5vcm1TdGFydCwxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgICAgc2l6ZSArKzsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiXG4iKTsKKworICAgICAgICBuZmRzaXplID0gTm9ybWFsaXplci5ub3JtYWxpemUoZGF0YSwwLHNpemUsIG5mZCwwLG5mZC5sZW5ndGgsTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgIC8vICAgIG5mZHNpemUgPSB1bm9ybV9ub3JtYWxpemUoZGF0YSwgc2l6ZSwgVU5PUk1fTkZELCBVQ09MX0lHTk9SRV9IQU5HVUwsCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIG5mZCwgMTAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKG5mZHNpemUgIT0gbm9ybVN0YXJ0IHx8IFV0aWxpdHkuYXJyYXlSZWdpb25NYXRjaGVzKG5mZCwwLCBub3JtLDAsbmZkc2l6ZSkgPT1mYWxzZSkgeworICAgICAgICAgIHRlc3RyZXN1bHQgPSBOb3JtYWxpemVyLk5POworICAgICAgICB9CisgICAgICAgIGlmICh0ZXN0cmVzdWx0ID09IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgbG9nbG4oInJlc3VsdCBOb3JtYWxpemVyLllFU1xuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgbG9nbG4oInJlc3VsdCBOb3JtYWxpemVyLk5PXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soZGF0YSwwLGRhdGEubGVuZ3RoLCBOb3JtYWxpemVyLkZDRCwwKSAhPSB0ZXN0cmVzdWx0KSB7CisgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogZXhwZWN0ZWQgIisgdGVzdHJlc3VsdCArIiBmb3IgcmFuZG9tIGRhdGE6ICIraGV4KG5ldyBTdHJpbmcoZGF0YSkpICk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKworICAgIC8vIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBOb3JtYWxpemVyOjpjb21wYXJlCisgICAgcHJpdmF0ZSBpbnQgcmVmX25vcm1fY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgU3RyaW5nIHQxLCB0MixyMSxyMjsKKworICAgICAgICBpbnQgbm9ybU9wdGlvbnM9KGludCkob3B0aW9ucz4+Tm9ybWFsaXplci5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCk7CisgICAgICAgIAorICAgICAgICBpZigob3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKSB7CisgICAgICAgICAgICAvLyBORkQodG9DYXNlZm9sZChORkQoWCkpKSA9IE5GRCh0b0Nhc2Vmb2xkKE5GRChZKSkpCisgICAgICAgICAgICByMSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHMxLGZhbHNlLG5vcm1PcHRpb25zKTsKKyAgICAgICAgICAgIHIyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoczIsZmFsc2Usbm9ybU9wdGlvbnMpOworICAgICAgICAgICAgcjEgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHIxLG9wdGlvbnMpOworICAgICAgICAgICAgcjIgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHIyLG9wdGlvbnMpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHIxID0gczE7CisgICAgICAgICAgICByMiA9IHMyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0MSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHIxLCBmYWxzZSwgbm9ybU9wdGlvbnMpOworICAgICAgICB0MiA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHIyLCBmYWxzZSwgbm9ybU9wdGlvbnMpOworCisgICAgICAgIGlmKChvcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSKSE9MCkgeworICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wIAorICAgICAgICAgICAgICAgICAgICA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKHRydWUsIGZhbHNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wLmNvbXBhcmUodDEsdDIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHQxLmNvbXBhcmVUbyh0Mik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIHRlc3Qgd3JhcHBlciBmb3IgTm9ybWFsaXplcjo6Y29tcGFyZSwgc2V0cyBVTk9STV9JTlBVVF9JU19GQ0QgYXBwcm9wcmlhdGVseQorICAgIHByaXZhdGUgaW50IG5vcm1fY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50IG5vcm1PcHRpb25zPShpbnQpKG9wdGlvbnM+Pk5vcm1hbGl6ZXIuQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQpOworCisgICAgICAgIGlmKCBOb3JtYWxpemVyLllFUz09Tm9ybWFsaXplci5xdWlja0NoZWNrKHMxLE5vcm1hbGl6ZXIuRkNELG5vcm1PcHRpb25zKSAmJgorICAgICAgICAgICAgTm9ybWFsaXplci5ZRVM9PU5vcm1hbGl6ZXIucXVpY2tDaGVjayhzMixOb3JtYWxpemVyLkZDRCxub3JtT3B0aW9ucykpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXIuSU5QVVRfSVNfRkNEOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuY29tcGFyZShzMSwgczIsIG9wdGlvbnMpOworICAgIH0KKworICAgIC8vIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlU3RyaW5nOjpjYXNlQ29tcGFyZQorICAgIHByaXZhdGUgaW50IHJlZl9jYXNlX2NvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKSB7CisgICAgICAgIFN0cmluZyB0MSwgdDI7CisKKyAgICAgICAgdDE9czE7CisgICAgICAgIHQyPXMyOworCisgICAgICAgIHQxID0gVUNoYXJhY3Rlci5mb2xkQ2FzZSh0MSwoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisgICAgICAgIHQyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZSh0MiwoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisKKyAgICAgICAgaWYoKG9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpIT0wKSB7CisgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXAgCisgICAgICAgICAgICAgICAgICAgID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wLmNvbXBhcmUodDEsdDIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHQxLmNvbXBhcmVUbyh0Mik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIHJlZHVjZSBhbiBpbnRlZ2VyIHRvIC0xLzAvMQorICAgIHByaXZhdGUgc3RhdGljIGludCBzaWduKGludCB2YWx1ZSkgeworICAgICAgICBpZih2YWx1ZT09MCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gKHZhbHVlPj4zMSl8MTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2lnblN0cmluZyhpbnQgdmFsdWUpIHsKKyAgICAgICAgaWYodmFsdWU8MCkgeworICAgICAgICAgICAgcmV0dXJuICI8MCI7CisgICAgICAgIH0gZWxzZSBpZih2YWx1ZT09MCkgeworICAgICAgICAgICAgcmV0dXJuICI9MCI7CisgICAgICAgIH0gZWxzZSAvKiB2YWx1ZT4wICovIHsKKyAgICAgICAgICAgIHJldHVybiAiPjAiOworICAgICAgICB9CisgICAgfQorICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZSBhbmQgdW5vcm1fY29tcGFyZSAodGhpbmx5IHdyYXBwZWQgYnkgdGhlIGZvcm1lcikKKyAgICAvLyBieSBjb21wYXJpbmcgaXQgd2l0aCBpdHMgc2VtYW50aWMgZXF1aXZhbGVudAorICAgIC8vIHNpbmNlIHdlIHRydXN0IHRoZSBwaWVjZXMsIHRoaXMgaXMgc3VmZmljaWVudAorCisgICAgLy8gdGVzdCBlYWNoIHN0cmluZyB3aXRoIGl0c2VsZiBhbmQgZWFjaCBvdGhlcgorICAgIC8vIGVhY2ggdGltZSB3aXRoIGFsbCBvcHRpb25zCisgICAgcHJpdmF0ZSAgU3RyaW5nIHN0cmluZ3NbXT1uZXcgU3RyaW5nW117CisgICAgICAgICAgICAgICAgLy8gc29tZSBjYXNlcyBmcm9tIE5vcm1hbGl6YXRpb25UZXN0LnR4dAorICAgICAgICAgICAgICAgIC8vIDAuLjMKKyAgICAgICAgICAgICAgICAiRFx1MDMxQlx1MDMwN1x1MDMyMyIsCisgICAgICAgICAgICAgICAgIlx1MUUwQ1x1MDMxQlx1MDMwNyIsCisgICAgICAgICAgICAgICAgIkRcdTAzMUJcdTAzMjNcdTAzMDciLAorICAgICAgICAgICAgICAgICJkXHUwMzFCXHUwMzIzXHUwMzA3IiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gNC4uNgorICAgICAgICAgICAgICAgICJcdTAwRTQiLAorICAgICAgICAgICAgICAgICJhXHUwMzA4IiwKKyAgICAgICAgICAgICAgICAiQVx1MDMwOCIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEFuZ3N0cm9tIHNpZ24gPSBBIHJpbmcKKyAgICAgICAgICAgICAgICAvLyA3Li4xMAorICAgICAgICAgICAgICAgICJcdTIxMkIiLAorICAgICAgICAgICAgICAgICJcdTAwQzUiLAorICAgICAgICAgICAgICAgICJBXHUwMzBBIiwKKyAgICAgICAgICAgICAgICAiYVx1MDMwQSIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIDExLjE0CisgICAgICAgICAgICAgICAgImFcdTA1OUFcdTAzMTZcdTMwMkFcdTAzMkZiIiwKKyAgICAgICAgICAgICAgICAiYVx1MzAyQVx1MDMxNlx1MDMyRlx1MDU5QWIiLAorICAgICAgICAgICAgICAgICJhXHUzMDJBXHUwMzE2XHUwMzJGXHUwNTlBYiIsCisgICAgICAgICAgICAgICAgIkFcdTA1OUFcdTAzMTZcdTMwMkFcdTAzMkZiIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZnJvbSBJQ1UgY2FzZSBmb2xkaW5nIHRlc3RzCisgICAgICAgICAgICAgICAgLy8gMTUuLjIwCisgICAgICAgICAgICAgICAgIkFcdTAwZGZcdTAwYjVcdWZiMDNcXFUwMDAxMDQwY1x1MDEzMSIsCisgICAgICAgICAgICAgICAgImFzc1x1MDNiY2ZmaVxcVTAwMDEwNDM0aSIsCisgICAgICAgICAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDEzMVx1MDNhM1x1MDBkZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1MDA0MVx1MDA2Mlx1MDA2OVx1MDNjM1x1MDA3M1x1MDA1M1x1MDA0Nlx1MDA2Nlx1MDA0OVx1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1MDA0MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDA1M1x1MDA3M1x1MDA2Nlx1MDA0Nlx1MDA2OVx1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1MDA0MVx1MDA2Mlx1MDA2OVx1MDNjM1x1MDA3M1x1MDA1M1x1MDA0Nlx1MDA2Nlx1MDA0OVx1ZDkzZlx1ZGZmZCIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vICAgICBVK2Q4MDAgVSsxMDAwMSAgIHNlZSBpbXBsZW1lbnRhdGlvbiBjb21tZW50IGluIHVub3JtX2NtcEVxdWl2Rm9sZAorICAgICAgICAgICAgICAgIC8vIHZzLiBVKzEwMDAwICAgICAgICAgIGF0IGJvdHRvbSAtIGNvZGUgcG9pbnQgb3JkZXIKKyAgICAgICAgICAgICAgICAvLyAyMS4uMjIKKyAgICAgICAgICAgICAgICAiXHVkODAwXHVkODAwXHVkYzAxIiwKKyAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgY29kZSBwb2ludCBvcmRlciB0ZXN0cyBmcm9tIHVzdHJ0ZXN0LmNwcAorICAgICAgICAgICAgICAgIC8vIDIzLi4zMQorICAgICAgICAgICAgICAgICJcdTIwYWNcdWQ4MDEiLAorICAgICAgICAgICAgICAgICJcdTIwYWNcdWQ4MDBcdWRjMDAiLAorICAgICAgICAgICAgICAgICJcdWQ4MDAiLAorICAgICAgICAgICAgICAgICJcdWQ4MDBcdWZmNjEiLAorICAgICAgICAgICAgICAgICJcdWRmZmYiLAorICAgICAgICAgICAgICAgICJcdWZmNjFcdWRmZmYiLAorICAgICAgICAgICAgICAgICJcdWZmNjFcdWQ4MDBcdWRjMDIiLAorICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDIiLAorICAgICAgICAgICAgICAgICJcdWQ4NGRcdWRjNTYiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBsb25nIHN0cmluZ3MsIHNlZSBjbm9ybXRzdC5jL1Rlc3ROb3JtQ292ZXJhZ2UoKQorICAgICAgICAgICAgICAgIC8vIGVxdWl2YWxlbnQgaWYgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICAgICAgICAgIC8vIDMyLi4zMworICAgICAgICAgICAgICAgICJcdUFEOEJcdUFEOEJcdUFEOEJcdUFEOEIiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiYWFhYWFhYWFhYWFhYWFhYWFhenp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enoiKworICAgICAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIrCisgICAgICAgICAgICAgICAgImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICAgICAiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQiKworICAgICAgICAgICAgICAgICJcdUFEOEJcdUFEOEJcdUFEOEJcdUFEOEIiKworICAgICAgICAgICAgICAgICJkXHUwMzFCXHUwMzA3XHUwMzIzIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgIlx1MTEwMFx1MTE2Zlx1MTFhYVx1QUQ4Qlx1QUQ4Qlx1MTEwMFx1MTE2Zlx1MTFhYSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJhYWFhYWFhYWFhQUFBQUFBQUFaWlpaWlpaWlpaWlpaWlpaenp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6eiIrCisgICAgICAgICAgICAgICAgImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIisKKyAgICAgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiKworICAgICAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAgICAgIlx1MTEwMFx1MTE2Zlx1MTFhYVx1QUQ4Qlx1QUQ4Qlx1MTEwMFx1MTE2Zlx1MTFhYSIrCisgICAgICAgICAgICAgICAgIlx1MUUwQ1x1MDMxQlx1MDMwNyIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHNvbWUgc3RyaW5ncyB0aGF0IG1heSBtYWtlIGEgZGlmZmVyZW5jZSB3aGV0aGVyIHRoZSBjb21wYXJlIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgLy8gY2FzZS1mb2xkcyBvciBkZWNvbXBvc2VzIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gMzQuLjQxCisgICAgICAgICAgICAgICAgIlx1MDM2MFx1MDM0NVx1MDMzNCIsCisgICAgICAgICAgICAgICAgIlx1MDM2MFx1MDNiOVx1MDMzNCIsCisgICAgICAgIAorICAgICAgICAgICAgICAgICJcdTAzNjBcdTFmODBcdTAzMzQiLAorICAgICAgICAgICAgICAgICJcdTAzNjBcdTAzYjFcdTAzMTNcdTAzYjlcdTAzMzQiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAiXHUwMzYwXHUxZmZjXHUwMzM0IiwKKyAgICAgICAgICAgICAgICAiXHUwMzYwXHUwM2M5XHUwM2I5XHUwMzM0IiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgImFcdTAzNjBcdTAzNDVcdTAzNjBcdTAzNDViIiwKKyAgICAgICAgICAgICAgICAiYVx1MDM0NVx1MDM2MFx1MDM0NVx1MDM2MGIiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBpbnRlcmVzdGluZyBjYXNlcyBmb3IgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoIHdpdGggdHVya2ljIGkgaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAvLyA0Mi4uNDMKKyAgICAgICAgICAgICAgICAiXHUwMGNjIiwKKyAgICAgICAgICAgICAgICAiXHUwMDY5XHUwMzAwIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc3RyaW5ncyB3aXRoIHBvc3QtVW5pY29kZSAzLjIgbm9ybWFsaXphdGlvbiBvciBub3JtYWxpemF0aW9uIGNvcnJlY3Rpb25zCisgICAgICAgICAgICAgICAgLy8gNDQuLjQ1CisgICAgICAgICAgICAgICAgIlx1MDBlNFx1MTkzYlxcVTAwMDJmODY4IiwKKyAgICAgICAgICAgICAgICAiXHUwMDYxXHUxOTNiXHUwMzA4XHUzNmZjIiwKKworCisgICAgfTsKKworICAgIC8vIGFsbCBjb21iaW5hdGlvbnMgb2Ygb3B0aW9ucworICAgIC8vIFVOT1JNX0lOUFVUX0lTX0ZDRCBpcyBzZXQgYXV0b21hdGljYWxseSBpZiBib3RoIGlucHV0IHN0cmluZ3MgZnVsZmlsbCBGQ0QgY29uZGl0aW9ucworICAgIGZpbmFsIGNsYXNzIFRlbXAgeworICAgICAgICBpbnQgb3B0aW9uczsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIHB1YmxpYyBUZW1wKGludCBvcHQsU3RyaW5nIHN0cil7CisgICAgICAgICAgICBvcHRpb25zID1vcHQ7CisgICAgICAgICAgICBuYW1lID0gc3RyOworICAgICAgICB9CisKKyAgICB9CisgICAgLy8gc2V0IFVOT1JNX1VOSUNPREVfM18yIGluIG9uZSBhZGRpdGlvbmFsIGNvbWJpbmF0aW9uCisgIAorICAgIHByaXZhdGUgVGVtcFtdIG9wdCA9IG5ldyBUZW1wW117CisgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKDAsImRlZmF1bHQiKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIsICJjb2RlIHBvaW50IG9yZGVyIiApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UsICJpZ25vcmUgY2FzZSIgKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVJ8Tm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFLCAiY29kZSBwb2ludCBvcmRlciAmIGlnbm9yZSBjYXNlIiApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0V8Tm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0ksICJpZ25vcmUgY2FzZSAmIHNwZWNpYWwgaSIpLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUnxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0V8Tm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0ksICJjb2RlIHBvaW50IG9yZGVyICYgaWdub3JlIGNhc2UgJiBzcGVjaWFsIGkiKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5VTklDT0RFXzNfMiA8PCBOb3JtYWxpemVyLkNPTVBBUkVfTk9STV9PUFRJT05TX1NISUZULCAiVW5pY29kZSAzLjIiKQorICAgICAgICAgICAgfTsKKworCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBhcmVEZWJ1ZygpeworCisgICAgICAgIFN0cmluZ1tdIHMgPSBuZXcgU3RyaW5nWzEwMF07IC8vIGF0IGxlYXN0IGFzIG1hbnkgaXRlbXMgYXMgaW4gc3RyaW5nc1tdICEKKworCisgICAgICAgIGludCBpLCBqLCBrLCBjb3VudD1zdHJpbmdzLmxlbmd0aDsKKyAgICAgICAgaW50IHJlc3VsdCwgcmVmUmVzdWx0OworCisgICAgICAgIC8vIGNyZWF0ZSB0aGUgVW5pY29kZVN0cmluZ3MKKyAgICAgICAgZm9yKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBzW2ldPVV0aWxpdHkudW5lc2NhcGUoc3RyaW5nc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICAvLyB0ZXN0IHRoZW0gZWFjaCB3aXRoIGVhY2ggb3RoZXIKKworICAgICAgICBpID0gNDI7CisgICAgICAgIGogPSA0MzsKKyAgICAgICAgayA9IDI7CisgICAgICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZQorICAgICAgICByZXN1bHQ9bm9ybV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgcmVmUmVzdWx0PXJlZl9ub3JtX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmNvbXBhcmUoICIgKyBpICsiLCAiK2ogKyAiLCAiICtrKyIoICIgK29wdFtrXS5uYW1lKyIpKT0iICsgcmVzdWx0ICsiIHNob3VsZCBiZSBzYW1lIHNpZ24gYXMgIiArIHJlZlJlc3VsdCk7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IFVuaWNvZGVTdHJpbmc6OmNhc2VDb21wYXJlIC0gc2FtZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbgorICAgICAgICAgaWYoMCE9KG9wdFtrXS5vcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkpIHsKKyAgICAgICAgLy8gICAgcmVzdWx0PXNbaV0uIChzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICBpZiAoKG9wdFtrXS5vcHRpb25zICYgTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpID09IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29tcC5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcC5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0PWNvbXAuY29tcGFyZShzW2ldLHNbal0pOworICAgICAgICAgICAgcmVmUmVzdWx0PXJlZl9jYXNlX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplcjo6Y29tcGFyZSggIiArIGkgKyIsICIraiArICIsICIraysiKCAiICtvcHRba10ubmFtZSsiKSk9IiArIHJlc3VsdCArIiBzaG91bGQgYmUgc2FtZSBzaWduIGFzICIgKyByZWZSZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdmFsdWUxID0gIlx1MDBkYXRlclx1MDBmZCI7CisgICAgICAgIFN0cmluZyB2YWx1ZTIgPSAiXHUwMGZhdGVyXHUwMGZkIjsKKyAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsMCkhPTApeworICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKT09MCl7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkgeworCisgICAgICAgIFN0cmluZ1tdIHMgPSBuZXcgU3RyaW5nWzEwMF07IC8vIGF0IGxlYXN0IGFzIG1hbnkgaXRlbXMgYXMgaW4gc3RyaW5nc1tdICEKKworICAgICAgICBpbnQgaSwgaiwgaywgY291bnQ9c3RyaW5ncy5sZW5ndGg7CisgICAgICAgIGludCByZXN1bHQsIHJlZlJlc3VsdDsKKworICAgICAgICAvLyBjcmVhdGUgdGhlIFVuaWNvZGVTdHJpbmdzCisgICAgICAgIGZvcihpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgc1tpXT1VdGlsaXR5LnVuZXNjYXBlKHN0cmluZ3NbaV0pOworICAgICAgICB9CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY29tcCA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgIC8vIHRlc3QgdGhlbSBlYWNoIHdpdGggZWFjaCBvdGhlcgorICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGZvcihqPWk7IGo8Y291bnQ7ICsraikgeworICAgICAgICAgICAgICAgIGZvcihrPTA7IGs8b3B0Lmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZQorICAgICAgICAgICAgICAgICAgICByZXN1bHQ9bm9ybV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgcmVmUmVzdWx0PXJlZl9ub3JtX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmNvbXBhcmUoICIgKyBpICsiLCAiK2ogKyAiLCAiICtrKyIoICIgK29wdFtrXS5uYW1lKyIpKT0iICsgcmVzdWx0ICsiIHNob3VsZCBiZSBzYW1lIHNpZ24gYXMgIiArIHJlZlJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFVuaWNvZGVTdHJpbmc6OmNhc2VDb21wYXJlIC0gc2FtZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgaWYoMCE9KG9wdFtrXS5vcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIHJlc3VsdD1zW2ldLiAoc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRba10ub3B0aW9ucyAmIE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0Q29kZVBvaW50Q29tcGFyZSgob3B0W2tdLm9wdGlvbnMgJiBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUikgIT0gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQ9Y29tcC5jYXNlQ29tcGFyZShzW2ldLHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1jb21wLmNvbXBhcmUoc1tpXSxzW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlJlc3VsdD1yZWZfY2FzZV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNpZ24ocmVzdWx0KSE9c2lnbihyZWZSZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmNvbXBhcmUoICIgKyBpICsiLCAiK2ogKyAiLCAiK2srIiggIiArb3B0W2tdLm5hbWUrIikpPSIgKyByZXN1bHQgKyIgc2hvdWxkIGJlIHNhbWUgc2lnbiBhcyAiICsgcmVmUmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0IGNhc2VzIHdpdGggaSBhbmQgSSB0byBtYWtlIHN1cmUgVHVya2ljIHdvcmtzCisgICAgICAgIGNoYXJbXSBpST0gbmV3IGNoYXJbXXsgMHg0OSwgMHg2OSwgMHgxMzAsIDB4MTMxIH07CisgICAgICAgIFVTZXJpYWxpemVkU2V0IHNzZXQ9bmV3IFVTZXJpYWxpemVkU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHMxLCBzMjsKKyAgICAgICAgaW50IHN0YXJ0LCBlbmQ7CisgICAgCisgICAgICAgIC8vIGNvbGxlY3QgYWxsIHNldHMgaW50byBvbmUgZm9yIGNvbnRpZ3VvdXMgb3V0cHV0CisgICAgICAgIGludFtdIHN0YXJ0RW5kID0gbmV3IGludFsyXTsKKyAgICAgICAgZm9yKGk9MDsgaTxpSS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYoTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldChpSVtpXSwgc3NldCkpIHsKKyAgICAgICAgICAgICAgICBjb3VudD1zc2V0LmNvdW50UmFuZ2VzKCk7CisgICAgICAgICAgICAgICAgZm9yKGo9MDsgajxjb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHNzZXQuZ2V0UmFuZ2Uoaiwgc3RhcnRFbmQpOworICAgICAgICAgICAgICAgICAgICBzZXQuYWRkKHN0YXJ0RW5kWzBdLCBzdGFydEVuZFsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdCBhbGwgb2YgdGhlc2UgcHJlY29tcG9zZWQgY2hhcmFjdGVycworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgICAgICAgIHdoaWxlKGl0Lm5leHRSYW5nZSgpICYmIGl0LmNvZGVwb2ludCE9VW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgc3RhcnQ9aXQuY29kZXBvaW50OworICAgICAgICAgICAgZW5kPWl0LmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgIHdoaWxlKHN0YXJ0PD1lbmQpIHsKKyAgICAgICAgICAgICAgICBzMSA9IEludGVnZXIudG9TdHJpbmcoc3RhcnQpOworICAgICAgICAgICAgICAgIHMyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoczEsIGZhbHNlLCAwKTsKKy8vICAgICAgICAgICAgICAgIGlmKFVfRkFJTFVSRShlcnJvckNvZGUpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmRlY29tcG9zZShVKyUwNHgpIGZhaWxlZDogJXMiLCBzdGFydCwgdV9lcnJvck5hbWUoZXJyb3JDb2RlKSk7CisvLyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvcihrPTA7IGs8b3B0Lmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZQorCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdD0gbm9ybV9jb21wYXJlKHMxLCBzMiwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICByZWZSZXN1bHQ9cmVmX25vcm1fY29tcGFyZShzMSwgczIsIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoVSsiK2hleChzdGFydCkrIiB3aXRoIGl0cyBORkQsICIrb3B0W2tdLm5hbWUrIikiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzaWduU3RyaW5nKHJlc3VsdCkrIiBzaG91bGQgYmUgIitzaWduU3RyaW5nKHJlZlJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgVW5pY29kZVN0cmluZzo6Y2FzZUNvbXBhcmUgLSBzYW1lIGludGVybmFsIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgIGlmKChvcHRba10ub3B0aW9ucyAmIE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSk+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgob3B0W2tdLm9wdGlvbnMgJiBOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnNldENvZGVQb2ludENvbXBhcmUoKG9wdFtrXS5vcHRpb25zICYgTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpICE9IDApOworICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9Y29tcC5jb21wYXJlKHMxLHMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlJlc3VsdD1yZWZfY2FzZV9jb21wYXJlKHMxLCBzMiwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiVVRGMTYuY29tcGFyZShVKyIraGV4KHN0YXJ0KSsiIHdpdGggaXRzIE5GRCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtvcHRba10ubmFtZSsiKSIrc2lnblN0cmluZyhyZXN1bHQpICsiIHNob3VsZCBiZSAiK3NpZ25TdHJpbmcocmVmUmVzdWx0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgLy8gdmVyaWZ5IHRoYXQgY2FzZS1mb2xkaW5nIGRvZXMgbm90IHVuLUZDRCBzdHJpbmdzCisgICAgaW50IGNvdW50Rm9sZEZDREV4Y2VwdGlvbnMoaW50IGZvbGRpbmdPcHRpb25zKSB7CisgICAgICAgIFN0cmluZyBzLCBkOworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2MsIHRyYWlsQ0MsIGZvbGRDQywgZm9sZFRyYWlsQ0M7CisgICAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCBxY1Jlc3VsdDsKKyAgICAgICAgaW50IGNhdGVnb3J5OworICAgICAgICBib29sZWFuIGlzTkZEOworCisKKyAgICAgICAgbG9nbG4oIlRlc3QgaWYgY2FzZSBmb2xkaW5nIG1heSB1bi1GQ0QgYSBzdHJpbmcgKGZvbGRpbmcgb3B0aW9ucyAweCkiK2hleChmb2xkaW5nT3B0aW9ucykpOworCisgICAgICAgIGNvdW50PTA7CisgICAgICAgIGZvcihjPTA7IGM8PTB4MTBmZmZmOyArK2MpIHsKKyAgICAgICAgICAgIGNhdGVnb3J5PVVDaGFyYWN0ZXIuZ2V0VHlwZShjKTsKKyAgICAgICAgICAgIGlmKGNhdGVnb3J5PT1VQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBza2lwIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM9PTB4YWMwMCkgeworICAgICAgICAgICAgICAgIGM9MHhkN2EzOyAvLyBza2lwIEhhbmd1bCAtIG5vIGNhc2UgZm9sZGluZyB0aGVyZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2tpcCBIYW4gYmxvY2tzIC0gbm8gY2FzZSBmb2xkaW5nIHRoZXJlIGVpdGhlcgorICAgICAgICAgICAgaWYoYz09MHgzNDAwKSB7CisgICAgICAgICAgICAgICAgYz0weDRkYjU7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjPT0weDRlMDApIHsKKyAgICAgICAgICAgICAgICBjPTB4OWZhNTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM9PTB4MjAwMDApIHsKKyAgICAgICAgICAgICAgICBjPTB4MmE2ZDY7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHM9IFVURjE2LnZhbHVlT2YoYyk7CisKKyAgICAgICAgICAgIC8vIGdldCBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYyBmb3IgYworICAgICAgICAgICAgZD0gTm9ybWFsaXplci5kZWNvbXBvc2UocyxmYWxzZSk7CisgICAgICAgICAgICBpc05GRD0gcz09ZDsKKyAgICAgICAgICAgIGNjPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoVVRGMTYuY2hhckF0KGQsMCkpOworICAgICAgICAgICAgdHJhaWxDQz1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKFVURjE2LmNoYXJBdChkLGQubGVuZ3RoKCktMSkpOworCisgICAgICAgICAgICAvLyBnZXQgbGVhZGluZyBhbmQgdHJhaWxpbmcgY2MgZm9yIHRoZSBjYXNlLWZvbGRpbmcgb2YgYworICAgICAgICAgICAgVUNoYXJhY3Rlci5mb2xkQ2FzZShzLChmb2xkaW5nT3B0aW9ucz09MCkpOworICAgICAgICAgICAgZCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHMsIGZhbHNlKTsKKyAgICAgICAgICAgIGZvbGRDQz1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKFVURjE2LmNoYXJBdChkLDApKTsKKyAgICAgICAgICAgIGZvbGRUcmFpbENDPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoVVRGMTYuY2hhckF0KGQsZC5sZW5ndGgoKS0xKSk7CisKKyAgICAgICAgICAgIHFjUmVzdWx0PU5vcm1hbGl6ZXIucXVpY2tDaGVjayhzLCBOb3JtYWxpemVyLkZDRCwwKTsKKworCisgICAgICAgICAgICAvLyBiYWQ6CisgICAgICAgICAgICAvLyAtIGNoYXJhY3RlciBtYXBzIHRvIGVtcHR5IHN0cmluZzogYWRqYWNlbnQgY2hhcmFjdGVycyBtYXkgdGhlbiBuZWVkIHJlb3JkZXJpbmcKKyAgICAgICAgICAgIC8vIC0gZm9sZGluZyBoYXMgZGlmZmVyZW50IGxlYWRpbmcvdHJhaWxpbmcgY2MncywgYW5kIHRoZXkgZG9uJ3QgYmVjb21lIGp1c3QgMAorICAgICAgICAgICAgLy8gLSBmb2xkaW5nIGl0c2VsZiBpcyBub3QgRkNECisgICAgICAgICAgICBpZiggcWNSZXN1bHQhPU5vcm1hbGl6ZXIuWUVTIHx8CisgICAgICAgICAgICAgICAgcy5sZW5ndGgoKT09MCB8fAorICAgICAgICAgICAgICAgIChjYyE9Zm9sZENDICYmIGZvbGRDQyE9MCkgfHwgKHRyYWlsQ0MhPWZvbGRUcmFpbENDICYmIGZvbGRUcmFpbENDIT0wKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICBlcnJsbigiVSsiK2hleChjKSsiOiBjYXNlLWZvbGRpbmcgbWF5IHVuLUZDRCBhIHN0cmluZyAoZm9sZGluZyBvcHRpb25zIDB4IitoZXgoZm9sZGluZ09wdGlvbnMpKyIpIik7CisgICAgICAgICAgICAgICAgLy9lcnJsbigiICBjYyAlMDJ4IHRyYWlsQ0MgJTAyeCAgICBmb2xkQ0MoVSslMDRseCkgJTAyeCBmb2xkVHJhaWxDQyhVKyUwNGx4KSAlMDJ4ICAgcXVpY2tDaGVjayhmb2xkZWQpPSVkIiwgY2MsIHRyYWlsQ0MsIFVURjE2LmNoYXJBdChkLDApLCBmb2xkQ0MsIFVURjE2LmNoYXJBdChkLGQubGVuZ3RoKCktMSksIGZvbGRUcmFpbENDLCBxY1Jlc3VsdCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGFsc28gYmFkOgorICAgICAgICAgICAgLy8gaWYgYSBjb2RlIHBvaW50IGlzIGluIE5GRCBidXQgaXRzIGNhc2UgZm9sZGluZyBpcyBub3QsIHRoZW4KKyAgICAgICAgICAgIC8vIHVub3JtX2NvbXBhcmUgd2lsbCBhbHNvIGZhaWwKKyAgICAgICAgICAgIGlmKGlzTkZEICYmIE5vcm1hbGl6ZXIuWUVTIT1Ob3JtYWxpemVyLnF1aWNrQ2hlY2socywgTm9ybWFsaXplci5ORkQsMCkpIHsKKyAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAgIGVycmxuKCJVKyIraGV4KGMpKyI6IGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMgMHgiK2hleChmb2xkaW5nT3B0aW9ucykrIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJUaGVyZSBhcmUgIitoZXgoY291bnQpKyIgY29kZSBwb2ludHMgZm9yIHdoaWNoIGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMiK2ZvbGRpbmdPcHRpb25zKyJ4KSIgKTsKKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGaW5kRm9sZEZDREV4Y2VwdGlvbnMoKSB7CisgICAgICAgIGludCBjb3VudDsKKworICAgICAgICBjb3VudD1jb3VudEZvbGRGQ0RFeGNlcHRpb25zKDApOworICAgICAgICBjb3VudCs9Y291bnRGb2xkRkNERXhjZXB0aW9ucyhOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgIGlmKGNvdW50PjApIHsKKyAgICAgICAgICAgIC8vKgorICAgICAgICAgICAgLy8qIElmIGNhc2UtZm9sZGluZyB1bi1GQ0RzIGFueSBzdHJpbmdzLCB0aGVuIHVub3JtX2NvbXBhcmUoKSBtdXN0IGJlCisgICAgICAgICAgICAvLyogcmUtaW1wbGVtZW50ZWQuCisgICAgICAgICAgICAvLyogSXQgY3VycmVudGx5IGFzc3VtZXMgdGhhdCBvbmUgY2FuIGNoZWNrIGZvciBGQ0QgdGhlbiBjYXNlLWZvbGQKKyAgICAgICAgICAgIC8vKiBhbmQgdGhlbiBzdGlsbCBoYXZlIEZDRCBzdHJpbmdzIGZvciByYXcgZGVjb21wb3NpdGlvbiB3aXRob3V0IHJlb3JkZXJpbmcuCisgICAgICAgICAgICAvLyoKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVGhlcmUgYXJlICIrY291bnQrIiBjb2RlIHBvaW50cyBmb3Igd2hpY2ggY2FzZS1mb2xkaW5nIisKKyAgICAgICAgICAgICAgICAgICIgbWF5IHVuLUZDRCBhIHN0cmluZyBmb3IgYWxsIGZvbGRpbmcgb3B0aW9ucy5cbiBTZWUgY29tbWVudCIrCisgICAgICAgICAgICAgICAgICAiIGluIEJhc2ljTm9ybWFsaXplclRlc3Q6OkZpbmRGb2xkRkNERXhjZXB0aW9ucygpISIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21iaW5pbmdNYXJrcygpeworICAgICAgICBTdHJpbmcgc3JjID0gIlx1MGY3MVx1MGY3Mlx1MGY3M1x1MGY3NFx1MGY3NSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJcdTBGNzFcdTBGNzFcdTBGNzFcdTBGNzJcdTBGNzJcdTBGNzRcdTBGNzQiOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gTm9ybWFsaXplci5kZWNvbXBvc2Uoc3JjLGZhbHNlKTsKKyAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhyZXN1bHQpKXsKKyAgICAgICAgICAgIGVycmxuKCJSZW9yZGVyaW5nIG9mIGNvbWJpbmluZyBtYXJrcyBmYWlsZWQuIEV4cGVjdGVkOiAiK1V0aWxpdHkuaGV4KGV4cGVjdGVkKSsiIEdvdDogIisgVXRpbGl0eS5oZXgocmVzdWx0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlLWVuYWJsZSB0aGlzIHRlc3Qgd2hlbiBVVEMgZml4ZXMgVUFYIDIxCisgICAgcHVibGljIHZvaWQgVGVzdFVBWDIxRmFpbHVyZSgpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIGNhc2VzID0gbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNjBcdTAzNDVcdTAwNjIiLCAiXHUwMDYxXHUwMzYwXHUwMzQ1XHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNDVcdTAzNjBcdTAwNjIiLCAiXHUwMDYxXHUwMzYwXHUwMzQ1XHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNjBcdTAzNjJcdTAzNjBcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYwXHUwMzYwXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNjBcdTAzNDVcdTAzNjBcdTAzNjJcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYwXHUwMzYwXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNjBcdTAzNjJcdTAzNjFcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYwXHUwMzYxXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNjFcdTAzNDVcdTAzNjBcdTAzNjJcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYxXHUwMzYwXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgIH07CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8IGNhc2VzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9Y2FzZXNbMF1bMF07IAorICAgICAgICAgICAgU3RyaW5nIHMyID0gY2FzZXNbMF1bMV07CisgICAgICAgICAgICBpZiggKE5vcm1hbGl6ZXIuY29tcGFyZShzMSxzMixOb3JtYWxpemVyLkZPTERfQ0FTRV9ERUZBVUxUID09MCkvL2Nhc2Ugc2Vuc2l0aXZlIGNvbXBhcmUKKyAgICAgICAgICAgICAgICAmJgorICAgICAgICAgICAgICAgIChOb3JtYWxpemVyLmNvbXBhcmUoczEsczIsTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSE9MCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoKSBmYWlsZWQgZm9yIHMxOiAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzMSkgKyIgczI6ICIgKyBVdGlsaXR5LmhleChzMikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZDTkZLQ0Nsb3N1cmUoKSB7CisgICAgICAgIGZpbmFsIGNsYXNzIFRlc3RTdHJ1Y3R7CisgICAgICAgICAgICBpbnQgYzsKKyAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgVGVzdFN0cnVjdChpbnQgY3AsIFN0cmluZyBzcmMpeworICAgICAgICAgICAgICAgIGM9Y3A7CisgICAgICAgICAgICAgICAgcz1zcmM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFRlc3RTdHJ1Y3RbXSB0ZXN0cz0gbmV3IFRlc3RTdHJ1Y3RbXXsKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDAzN0EsICJcdTAwMjBcdTAzQjkiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgwM0QyLCAiXHUwM0M1IiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MjBBOCwgIlx1MDA3Mlx1MDA3MyIgKSAsCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgyMTBCLCAiXHUwMDY4IiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MjEwQywgIlx1MDA2OCIgKSwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDIxMjEsICJcdTAwNzRcdTAwNjVcdTAwNkMiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgyMTIyLCAiXHUwMDc0XHUwMDZEIiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MjEyOCwgIlx1MDA3QSIgKSwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDFENURCLCJcdTAwNjgiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgxRDVFRCwiXHUwMDdBIiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MDA2MSwgIiIgKQorICAgICAgICB9OworICAgIAorCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQ9Tm9ybWFsaXplci5nZXRGQ19ORktDX0Nsb3N1cmUodGVzdHNbaV0uYyk7CisgICAgICAgICAgICBpZighcmVzdWx0LmVxdWFscyhuZXcgU3RyaW5nKHRlc3RzW2ldLnMpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRGQ19ORktDX0Nsb3N1cmUoVSsiK0ludGVnZXIudG9IZXhTdHJpbmcodGVzdHNbaV0uYykrIikgaXMgd3JvbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBlcnJvciBoYW5kbGluZyAqLworCisgICAgICAgIGludCBsZW5ndGg9Tm9ybWFsaXplci5nZXRGQ19ORktDX0Nsb3N1cmUoMHg1YywgbnVsbCk7CisgICAgICAgIGlmKGxlbmd0aCE9MCl7CisgICAgICAgICAgICBlcnJsbigiZ2V0RkNfTkZLQ19DbG9zdXJlIGRpZCBub3QgcGVyZm9ybSBlcnJvciBoYW5kbGluZyBjb3JyZWN0bHkiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnSjIzMjQoKXsKKyAgICAgICAvKiBTdHJpbmdbXSBpbnB1dCA9IG5ldyBTdHJpbmdbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyJcdTMwRkRcdTMwOTkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkFcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkJcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkNcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkVcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkRcdTMwOUEiLAorCisgICAgICAgIH07Ki8KKyAgICAgICAgU3RyaW5nIHRyb3VibGVzb21lID0gIlx1MzA5QSI7CisgICAgICAgIGZvcihpbnQgaT0weDMwMDA7IGk8MHgzMTAwO2krKyl7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSAoKGNoYXIpaSkrdHJvdWJsZXNvbWU7CisgICAgICAgICAgICB0cnl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAvKiAgU3RyaW5nIHJlc3VsdCA9Ki8gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LGZhbHNlKTsKKyAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb21wb3NlKCkgZmFpbGVkIGZvciBpbnB1dDogIiArIFV0aWxpdHkuaGV4KGlucHV0KSArICIgRXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgIH0KKworICAgICBzdGF0aWMgZmluYWwgaW50IEQgPSAwLCBDID0gMSwgS0Q9IDIsIEtDID0gMywgRkNEPTQsIE5PTkU9NTsgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0W10gaW5pdFNraXBwYWJsZXMoVW5pY29kZVNldFtdIHNraXBTZXRzKXsKKyAgICAgICAgaWYoIHNraXBTZXRzLmxlbmd0aCA8IDQgKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHNraXBTZXRzW0RdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXlxcdTAwQzAtXFx1MDBDNVxcdTAwQzctXFx1MDBDRlxcdTAwRDEtXFx1MDBENlxcdTAwRDktXFx1MDBERCIKKyAgICAgICAgICArICJcXHUwMEUwLVxcdTAwRTVcXHUwMEU3LVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY5LVxcdTAwRkQiCisgICAgICAgICAgKyAiXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwXFx1MDEzNC1cXHUwMTM3IgorICAgICAgICAgICsgIlxcdTAxMzktXFx1MDEzRVxcdTAxNDMtXFx1MDE0OFxcdTAxNEMtXFx1MDE1MVxcdTAxNTQtXFx1MDE2NSIKKyAgICAgICAgICArICJcXHUwMTY4LVxcdTAxN0VcXHUwMUEwXFx1MDFBMVxcdTAxQUZcXHUwMUIwXFx1MDFDRC1cXHUwMURDIgorICAgICAgICAgICsgIlxcdTAxREUtXFx1MDFFM1xcdTAxRTYtXFx1MDFGMFxcdTAxRjRcXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICsgIlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDMwMC1cXHUwMzRFXFx1MDM1MC1cXHUwMzZGIgorICAgICAgICAgICsgIlxcdTAzNzRcXHUwMzdFXFx1MDM4NS1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDM5MFxcdTAzQUEtIgorICAgICAgICAgICsgIlxcdTAzQjBcXHUwM0NBLVxcdTAzQ0VcXHUwM0QzXFx1MDNENFxcdTA0MDBcXHUwNDAxXFx1MDQwM1xcdTA0MDciCisgICAgICAgICAgKyAiXFx1MDQwQy1cXHUwNDBFXFx1MDQxOVxcdTA0MzlcXHUwNDUwXFx1MDQ1MVxcdTA0NTNcXHUwNDU3XFx1MDQ1QyIKKyAgICAgICAgICArICItXFx1MDQ1RVxcdTA0NzZcXHUwNDc3XFx1MDQ4My1cXHUwNDg2XFx1MDRDMVxcdTA0QzJcXHUwNEQwLSIKKyAgICAgICAgICArICJcXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLVxcdTA0REZcXHUwNEUyLVxcdTA0RTdcXHUwNEVBLSIKKyAgICAgICAgICArICJcXHUwNEY1XFx1MDRGOFxcdTA0RjlcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0IgorICAgICAgICAgICsgIlxcdTA1QzVcXHUwNUM3XFx1MDYxMC1cXHUwNjE1XFx1MDYyMi1cXHUwNjI2XFx1MDY0Qi1cXHUwNjVFIgorICAgICAgICAgICsgIlxcdTA2NzBcXHUwNkMwXFx1MDZDMlxcdTA2RDNcXHUwNkQ2LVxcdTA2RENcXHUwNkRGLVxcdTA2RTQiCisgICAgICAgICAgKyAiXFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdFQi0iCisgICAgICAgICAgKyAiXFx1MDdGM1xcdTA5MjlcXHUwOTMxXFx1MDkzNFxcdTA5M0NcXHUwOTREXFx1MDk1MS1cXHUwOTU0XFx1MDk1OCIKKyAgICAgICAgICArICItXFx1MDk1RlxcdTA5QkNcXHUwOUNCLVxcdTA5Q0RcXHUwOURDXFx1MDlERFxcdTA5REZcXHUwQTMzIgorICAgICAgICAgICsgIlxcdTBBMzZcXHUwQTNDXFx1MEE0RFxcdTBBNTktXFx1MEE1QlxcdTBBNUVcXHUwQUJDXFx1MEFDRFxcdTBCM0MiCisgICAgICAgICAgKyAiXFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNUNcXHUwQjVEXFx1MEI5NFxcdTBCQ0EtXFx1MEJDRCIKKyAgICAgICAgICArICJcXHUwQzQ4XFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MENCQ1xcdTBDQzBcXHUwQ0M3XFx1MENDOFxcdTBDQ0EiCisgICAgICAgICAgKyAiXFx1MENDQlxcdTBDQ0RcXHUwRDRBLVxcdTBENERcXHUwRENBXFx1MEREQVxcdTBEREMtXFx1MERERSIKKyAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUI4XFx1MEVCOVxcdTBFQzgtXFx1MEVDQiIKKyAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgKyAiXFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGNzZcXHUwRjc4XFx1MEY3QS1cXHUwRjdEXFx1MEY4MC0iCisgICAgICAgICAgKyAiXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxMzVGXFx1MTcxNFxcdTE3MzRcXHUxN0QyXFx1MTdERCIKKyAgICAgICAgICArICJcXHUxOEE5XFx1MTkzOS1cXHUxOTNCXFx1MUExN1xcdTFBMThcXHUxQjA2XFx1MUIwOFxcdTFCMEFcXHUxQjBDIgorICAgICAgICAgICsgIlxcdTFCMEVcXHUxQjEyXFx1MUIzNFxcdTFCM0JcXHUxQjNEXFx1MUI0MFxcdTFCNDFcXHUxQjQzXFx1MUI0NCIKKyAgICAgICAgICArICJcXHUxQjZCLVxcdTFCNzNcXHUxREMwLVxcdTFEQ0FcXHUxREZFLVxcdTFFOTlcXHUxRTlCXFx1MUVBMC0iCisgICAgICAgICAgKyAiXFx1MUVGOVxcdTFGMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtIgorICAgICAgICAgICsgIlxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0QiCisgICAgICAgICAgKyAiXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzEtXFx1MUZDNFxcdTFGQzYtIgorICAgICAgICAgICsgIlxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkRELVxcdTFGRUZcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LSIKKyAgICAgICAgICArICJcXHUxRkZEXFx1MjAwMFxcdTIwMDFcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEVGIgorICAgICAgICAgICsgIlxcdTIxMjZcXHUyMTJBXFx1MjEyQlxcdTIxOUFcXHUyMTlCXFx1MjFBRVxcdTIxQ0QtXFx1MjFDRlxcdTIyMDQiCisgICAgICAgICAgKyAiXFx1MjIwOVxcdTIyMENcXHUyMjI0XFx1MjIyNlxcdTIyNDFcXHUyMjQ0XFx1MjI0N1xcdTIyNDlcXHUyMjYwIgorICAgICAgICAgICsgIlxcdTIyNjJcXHUyMjZELVxcdTIyNzFcXHUyMjc0XFx1MjI3NVxcdTIyNzhcXHUyMjc5XFx1MjI4MFxcdTIyODEiCisgICAgICAgICAgKyAiXFx1MjI4NFxcdTIyODVcXHUyMjg4XFx1MjI4OVxcdTIyQUMtXFx1MjJBRlxcdTIyRTAtXFx1MjJFMyIKKyAgICAgICAgICArICJcXHUyMkVBLVxcdTIyRURcXHUyMzI5XFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkZcXHUzMDRDIgorICAgICAgICAgICsgIlxcdTMwNEVcXHUzMDUwXFx1MzA1MlxcdTMwNTRcXHUzMDU2XFx1MzA1OFxcdTMwNUFcXHUzMDVDXFx1MzA1RSIKKyAgICAgICAgICArICJcXHUzMDYwXFx1MzA2MlxcdTMwNjVcXHUzMDY3XFx1MzA2OVxcdTMwNzBcXHUzMDcxXFx1MzA3M1xcdTMwNzQiCisgICAgICAgICAgKyAiXFx1MzA3NlxcdTMwNzdcXHUzMDc5XFx1MzA3QVxcdTMwN0NcXHUzMDdEXFx1MzA5NFxcdTMwOTlcXHUzMDlBIgorICAgICAgICAgICsgIlxcdTMwOUVcXHUzMEFDXFx1MzBBRVxcdTMwQjBcXHUzMEIyXFx1MzBCNFxcdTMwQjZcXHUzMEI4XFx1MzBCQSIKKyAgICAgICAgICArICJcXHUzMEJDXFx1MzBCRVxcdTMwQzBcXHUzMEMyXFx1MzBDNVxcdTMwQzdcXHUzMEM5XFx1MzBEMFxcdTMwRDEiCisgICAgICAgICAgKyAiXFx1MzBEM1xcdTMwRDRcXHUzMEQ2XFx1MzBEN1xcdTMwRDlcXHUzMERBXFx1MzBEQ1xcdTMwRERcXHUzMEY0IgorICAgICAgICAgICsgIlxcdTMwRjctXFx1MzBGQVxcdTMwRkVcXHVBODA2XFx1QUMwMC1cXHVEN0EzXFx1RjkwMC1cXHVGQTBEIgorICAgICAgICAgICsgIlxcdUZBMTBcXHVGQTEyXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjJcXHVGQTI1XFx1RkEyNlxcdUZBMkEiCisgICAgICAgICAgKyAiLVxcdUZBMkRcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjFELVxcdUZCMUZcXHVGQjJBLSIKKyAgICAgICAgICArICJcXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2IgorICAgICAgICAgICsgIi1cXHVGQjRFXFx1RkUyMC1cXHVGRTIzXFxVMDAwMTBBMERcXFUwMDAxMEEwRlxcVTAwMDEwQTM4LVxcVTAwMDEiCisgICAgICAgICAgKyAiMEEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICArICJcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtIgorICAgICAgICAgICsgIlxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxRDI0Mi1cXFUwMDAxRDI0NFxcVTAwMDIiCisgICAgICAgICAgKyAiRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisKKyAgICAgIHNraXBTZXRzW0NdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQThcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDZcXHUwMEQ4LSIKKyAgICAgICAgICArICJcXHUwMEREXFx1MDBFMC1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2XFx1MDBGOC1cXHUwMEZEXFx1MDBGRi0iCisgICAgICAgICAgKyAiXFx1MDEwM1xcdTAxMDYtXFx1MDEwRlxcdTAxMTItXFx1MDExN1xcdTAxMUEtXFx1MDEyMVxcdTAxMjQiCisgICAgICAgICAgKyAiXFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTM5XFx1MDEzQVxcdTAxM0RcXHUwMTNFXFx1MDE0MyIKKyAgICAgICAgICArICJcXHUwMTQ0XFx1MDE0N1xcdTAxNDhcXHUwMTRDLVxcdTAxNTFcXHUwMTU0XFx1MDE1NVxcdTAxNTgtIgorICAgICAgICAgICsgIlxcdTAxNURcXHUwMTYwXFx1MDE2MVxcdTAxNjRcXHUwMTY1XFx1MDE2OC1cXHUwMTcxXFx1MDE3NC0iCisgICAgICAgICAgKyAiXFx1MDE3RlxcdTAxQTBcXHUwMUExXFx1MDFBRlxcdTAxQjBcXHUwMUI3XFx1MDFDRC1cXHUwMURDXFx1MDFERSIKKyAgICAgICAgICArICItXFx1MDFFMVxcdTAxRTYtXFx1MDFFQlxcdTAxRjRcXHUwMUY1XFx1MDFGOC1cXHUwMUZCXFx1MDIwMC0iCisgICAgICAgICAgKyAiXFx1MDIxQlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDI5MlxcdTAzMDAtXFx1MDM0RSIKKyAgICAgICAgICArICJcXHUwMzUwLVxcdTAzNkZcXHUwMzc0XFx1MDM3RVxcdTAzODdcXHUwMzkxXFx1MDM5NVxcdTAzOTdcXHUwMzk5IgorICAgICAgICAgICsgIlxcdTAzOUZcXHUwM0ExXFx1MDNBNVxcdTAzQTlcXHUwM0FDXFx1MDNBRVxcdTAzQjFcXHUwM0I1XFx1MDNCNyIKKyAgICAgICAgICArICJcXHUwM0I5XFx1MDNCRlxcdTAzQzFcXHUwM0M1XFx1MDNDOS1cXHUwM0NCXFx1MDNDRVxcdTAzRDJcXHUwNDA2IgorICAgICAgICAgICsgIlxcdTA0MTBcXHUwNDEzXFx1MDQxNS1cXHUwNDE4XFx1MDQxQVxcdTA0MUVcXHUwNDIzXFx1MDQyN1xcdTA0MkIiCisgICAgICAgICAgKyAiXFx1MDQyRFxcdTA0MzBcXHUwNDMzXFx1MDQzNS1cXHUwNDM4XFx1MDQzQVxcdTA0M0VcXHUwNDQzXFx1MDQ0NyIKKyAgICAgICAgICArICJcXHUwNDRCXFx1MDQ0RFxcdTA0NTZcXHUwNDc0XFx1MDQ3NVxcdTA0ODMtXFx1MDQ4NlxcdTA0RDhcXHUwNEQ5IgorICAgICAgICAgICsgIlxcdTA0RThcXHUwNEU5XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzUiCisgICAgICAgICAgKyAiXFx1MDVDN1xcdTA2MTAtXFx1MDYxNVxcdTA2MjJcXHUwNjIzXFx1MDYyN1xcdTA2NDhcXHUwNjRBLSIKKyAgICAgICAgICArICJcXHUwNjVFXFx1MDY3MFxcdTA2QzFcXHUwNkQyXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU0IgorICAgICAgICAgICsgIlxcdTA2RTdcXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3RUItIgorICAgICAgICAgICsgIlxcdTA3RjNcXHUwOTI4XFx1MDkzMFxcdTA5MzNcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgiCisgICAgICAgICAgKyAiLVxcdTA5NUZcXHUwOUJDXFx1MDlCRVxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERiIKKyAgICAgICAgICArICJcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEIgorICAgICAgICAgICsgIlxcdTBCM0NcXHUwQjNFXFx1MEI0N1xcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI5MiIKKyAgICAgICAgICArICJcXHUwQkJFXFx1MEJDNlxcdTBCQzdcXHUwQkNEXFx1MEJEN1xcdTBDNDZcXHUwQzREXFx1MEM1NVxcdTBDNTYiCisgICAgICAgICAgKyAiXFx1MENCQ1xcdTBDQkZcXHUwQ0MyXFx1MENDNlxcdTBDQ0FcXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwRDNFIgorICAgICAgICAgICsgIlxcdTBENDZcXHUwRDQ3XFx1MEQ0RFxcdTBENTdcXHUwRENBXFx1MERDRlxcdTBERDlcXHUwRERDXFx1MERERiIKKyAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUI4XFx1MEVCOVxcdTBFQzgtXFx1MEVDQiIKKyAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgKyAiXFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGNzZcXHUwRjc4XFx1MEY3QS1cXHUwRjdEXFx1MEY4MC0iCisgICAgICAgICAgKyAiXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI1XFx1MTAyRVxcdTEwMzdcXHUxMDM5XFx1MTEwMC1cXHUxMTEyXFx1MTE2MS0iCisgICAgICAgICAgKyAiXFx1MTE3NVxcdTExQTgtXFx1MTFDMlxcdTEzNUZcXHUxNzE0XFx1MTczNFxcdTE3RDJcXHUxN0REXFx1MThBOSIKKyAgICAgICAgICArICJcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFCMDVcXHUxQjA3XFx1MUIwOVxcdTFCMEJcXHUxQjBEIgorICAgICAgICAgICsgIlxcdTFCMTFcXHUxQjM0XFx1MUIzNVxcdTFCM0FcXHUxQjNDXFx1MUIzRVxcdTFCM0ZcXHUxQjQyXFx1MUI0NCIKKyAgICAgICAgICArICJcXHUxQjZCLVxcdTFCNzNcXHUxREMwLVxcdTFEQ0FcXHUxREZFLVxcdTFFMDNcXHUxRTBBLVxcdTFFMEYiCisgICAgICAgICAgKyAiXFx1MUUxMi1cXHUxRTFCXFx1MUUyMC1cXHUxRTI3XFx1MUUyQS1cXHUxRTQxXFx1MUU0NC1cXHUxRTUzIgorICAgICAgICAgICsgIlxcdTFFNTgtXFx1MUU3RFxcdTFFODAtXFx1MUU4N1xcdTFFOEUtXFx1MUU5MVxcdTFFOTYtXFx1MUU5OSIKKyAgICAgICAgICArICJcXHUxRUEwLVxcdTFFRjNcXHUxRUY2LVxcdTFFRjlcXHUxRjAwLVxcdTFGMTFcXHUxRjE4XFx1MUYxOSIKKyAgICAgICAgICArICJcXHUxRjIwLVxcdTFGMzFcXHUxRjM4XFx1MUYzOVxcdTFGNDBcXHUxRjQxXFx1MUY0OFxcdTFGNDlcXHUxRjUwIgorICAgICAgICAgICsgIlxcdTFGNTFcXHUxRjU5XFx1MUY2MC1cXHUxRjcxXFx1MUY3My1cXHUxRjc1XFx1MUY3N1xcdTFGNzkiCisgICAgICAgICAgKyAiXFx1MUY3Qi1cXHUxRjdEXFx1MUY4MFxcdTFGODFcXHUxRjg4XFx1MUY4OVxcdTFGOTBcXHUxRjkxXFx1MUY5OCIKKyAgICAgICAgICArICJcXHUxRjk5XFx1MUZBMFxcdTFGQTFcXHUxRkE4XFx1MUZBOVxcdTFGQjNcXHUxRkI2XFx1MUZCQlxcdTFGQkMiCisgICAgICAgICAgKyAiXFx1MUZCRVxcdTFGQkZcXHUxRkMzXFx1MUZDNlxcdTFGQzlcXHUxRkNCXFx1MUZDQ1xcdTFGRDNcXHUxRkRCIgorICAgICAgICAgICsgIlxcdTFGRTNcXHUxRkVCXFx1MUZFRVxcdTFGRUZcXHUxRkYzXFx1MUZGNlxcdTFGRjlcXHUxRkZCLVxcdTFGRkUiCisgICAgICAgICAgKyAiXFx1MjAwMFxcdTIwMDFcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEVGXFx1MjEyNiIKKyAgICAgICAgICArICJcXHUyMTJBXFx1MjEyQlxcdTIxOTBcXHUyMTkyXFx1MjE5NFxcdTIxRDBcXHUyMUQyXFx1MjFENFxcdTIyMDMiCisgICAgICAgICAgKyAiXFx1MjIwOFxcdTIyMEJcXHUyMjIzXFx1MjIyNVxcdTIyM0NcXHUyMjQzXFx1MjI0NVxcdTIyNDhcXHUyMjREIgorICAgICAgICAgICsgIlxcdTIyNjFcXHUyMjY0XFx1MjI2NVxcdTIyNzJcXHUyMjczXFx1MjI3NlxcdTIyNzdcXHUyMjdBLVxcdTIyN0QiCisgICAgICAgICAgKyAiXFx1MjI4MlxcdTIyODNcXHUyMjg2XFx1MjI4N1xcdTIyOTFcXHUyMjkyXFx1MjJBMlxcdTIyQThcXHUyMkE5IgorICAgICAgICAgICsgIlxcdTIyQUJcXHUyMkIyLVxcdTIyQjVcXHUyMzI5XFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkYiCisgICAgICAgICAgKyAiXFx1MzA0NlxcdTMwNEJcXHUzMDREXFx1MzA0RlxcdTMwNTFcXHUzMDUzXFx1MzA1NVxcdTMwNTdcXHUzMDU5IgorICAgICAgICAgICsgIlxcdTMwNUJcXHUzMDVEXFx1MzA1RlxcdTMwNjFcXHUzMDY0XFx1MzA2NlxcdTMwNjhcXHUzMDZGXFx1MzA3MiIKKyAgICAgICAgICArICJcXHUzMDc1XFx1MzA3OFxcdTMwN0JcXHUzMDk5XFx1MzA5QVxcdTMwOURcXHUzMEE2XFx1MzBBQlxcdTMwQUQiCisgICAgICAgICAgKyAiXFx1MzBBRlxcdTMwQjFcXHUzMEIzXFx1MzBCNVxcdTMwQjdcXHUzMEI5XFx1MzBCQlxcdTMwQkRcXHUzMEJGIgorICAgICAgICAgICsgIlxcdTMwQzFcXHUzMEM0XFx1MzBDNlxcdTMwQzhcXHUzMENGXFx1MzBEMlxcdTMwRDVcXHUzMEQ4XFx1MzBEQiIKKyAgICAgICAgICArICJcXHUzMEVGLVxcdTMwRjJcXHUzMEZEXFx1QTgwNlxcdUFDMDBcXHVBQzFDXFx1QUMzOFxcdUFDNTRcXHVBQzcwIgorICAgICAgICAgICsgIlxcdUFDOENcXHVBQ0E4XFx1QUNDNFxcdUFDRTBcXHVBQ0ZDXFx1QUQxOFxcdUFEMzRcXHVBRDUwXFx1QUQ2QyIKKyAgICAgICAgICArICJcXHVBRDg4XFx1QURBNFxcdUFEQzBcXHVBRERDXFx1QURGOFxcdUFFMTRcXHVBRTMwXFx1QUU0Q1xcdUFFNjgiCisgICAgICAgICAgKyAiXFx1QUU4NFxcdUFFQTBcXHVBRUJDXFx1QUVEOFxcdUFFRjRcXHVBRjEwXFx1QUYyQ1xcdUFGNDhcXHVBRjY0IgorICAgICAgICAgICsgIlxcdUFGODBcXHVBRjlDXFx1QUZCOFxcdUFGRDRcXHVBRkYwXFx1QjAwQ1xcdUIwMjhcXHVCMDQ0XFx1QjA2MCIKKyAgICAgICAgICArICJcXHVCMDdDXFx1QjA5OFxcdUIwQjRcXHVCMEQwXFx1QjBFQ1xcdUIxMDhcXHVCMTI0XFx1QjE0MFxcdUIxNUMiCisgICAgICAgICAgKyAiXFx1QjE3OFxcdUIxOTRcXHVCMUIwXFx1QjFDQ1xcdUIxRThcXHVCMjA0XFx1QjIyMFxcdUIyM0NcXHVCMjU4IgorICAgICAgICAgICsgIlxcdUIyNzRcXHVCMjkwXFx1QjJBQ1xcdUIyQzhcXHVCMkU0XFx1QjMwMFxcdUIzMUNcXHVCMzM4XFx1QjM1NCIKKyAgICAgICAgICArICJcXHVCMzcwXFx1QjM4Q1xcdUIzQThcXHVCM0M0XFx1QjNFMFxcdUIzRkNcXHVCNDE4XFx1QjQzNFxcdUI0NTAiCisgICAgICAgICAgKyAiXFx1QjQ2Q1xcdUI0ODhcXHVCNEE0XFx1QjRDMFxcdUI0RENcXHVCNEY4XFx1QjUxNFxcdUI1MzBcXHVCNTRDIgorICAgICAgICAgICsgIlxcdUI1NjhcXHVCNTg0XFx1QjVBMFxcdUI1QkNcXHVCNUQ4XFx1QjVGNFxcdUI2MTBcXHVCNjJDXFx1QjY0OCIKKyAgICAgICAgICArICJcXHVCNjY0XFx1QjY4MFxcdUI2OUNcXHVCNkI4XFx1QjZENFxcdUI2RjBcXHVCNzBDXFx1QjcyOFxcdUI3NDQiCisgICAgICAgICAgKyAiXFx1Qjc2MFxcdUI3N0NcXHVCNzk4XFx1QjdCNFxcdUI3RDBcXHVCN0VDXFx1QjgwOFxcdUI4MjRcXHVCODQwIgorICAgICAgICAgICsgIlxcdUI4NUNcXHVCODc4XFx1Qjg5NFxcdUI4QjBcXHVCOENDXFx1QjhFOFxcdUI5MDRcXHVCOTIwXFx1QjkzQyIKKyAgICAgICAgICArICJcXHVCOTU4XFx1Qjk3NFxcdUI5OTBcXHVCOUFDXFx1QjlDOFxcdUI5RTRcXHVCQTAwXFx1QkExQ1xcdUJBMzgiCisgICAgICAgICAgKyAiXFx1QkE1NFxcdUJBNzBcXHVCQThDXFx1QkFBOFxcdUJBQzRcXHVCQUUwXFx1QkFGQ1xcdUJCMThcXHVCQjM0IgorICAgICAgICAgICsgIlxcdUJCNTBcXHVCQjZDXFx1QkI4OFxcdUJCQTRcXHVCQkMwXFx1QkJEQ1xcdUJCRjhcXHVCQzE0XFx1QkMzMCIKKyAgICAgICAgICArICJcXHVCQzRDXFx1QkM2OFxcdUJDODRcXHVCQ0EwXFx1QkNCQ1xcdUJDRDhcXHVCQ0Y0XFx1QkQxMFxcdUJEMkMiCisgICAgICAgICAgKyAiXFx1QkQ0OFxcdUJENjRcXHVCRDgwXFx1QkQ5Q1xcdUJEQjhcXHVCREQ0XFx1QkRGMFxcdUJFMENcXHVCRTI4IgorICAgICAgICAgICsgIlxcdUJFNDRcXHVCRTYwXFx1QkU3Q1xcdUJFOThcXHVCRUI0XFx1QkVEMFxcdUJFRUNcXHVCRjA4XFx1QkYyNCIKKyAgICAgICAgICArICJcXHVCRjQwXFx1QkY1Q1xcdUJGNzhcXHVCRjk0XFx1QkZCMFxcdUJGQ0NcXHVCRkU4XFx1QzAwNFxcdUMwMjAiCisgICAgICAgICAgKyAiXFx1QzAzQ1xcdUMwNThcXHVDMDc0XFx1QzA5MFxcdUMwQUNcXHVDMEM4XFx1QzBFNFxcdUMxMDBcXHVDMTFDIgorICAgICAgICAgICsgIlxcdUMxMzhcXHVDMTU0XFx1QzE3MFxcdUMxOENcXHVDMUE4XFx1QzFDNFxcdUMxRTBcXHVDMUZDXFx1QzIxOCIKKyAgICAgICAgICArICJcXHVDMjM0XFx1QzI1MFxcdUMyNkNcXHVDMjg4XFx1QzJBNFxcdUMyQzBcXHVDMkRDXFx1QzJGOFxcdUMzMTQiCisgICAgICAgICAgKyAiXFx1QzMzMFxcdUMzNENcXHVDMzY4XFx1QzM4NFxcdUMzQTBcXHVDM0JDXFx1QzNEOFxcdUMzRjRcXHVDNDEwIgorICAgICAgICAgICsgIlxcdUM0MkNcXHVDNDQ4XFx1QzQ2NFxcdUM0ODBcXHVDNDlDXFx1QzRCOFxcdUM0RDRcXHVDNEYwXFx1QzUwQyIKKyAgICAgICAgICArICJcXHVDNTI4XFx1QzU0NFxcdUM1NjBcXHVDNTdDXFx1QzU5OFxcdUM1QjRcXHVDNUQwXFx1QzVFQ1xcdUM2MDgiCisgICAgICAgICAgKyAiXFx1QzYyNFxcdUM2NDBcXHVDNjVDXFx1QzY3OFxcdUM2OTRcXHVDNkIwXFx1QzZDQ1xcdUM2RThcXHVDNzA0IgorICAgICAgICAgICsgIlxcdUM3MjBcXHVDNzNDXFx1Qzc1OFxcdUM3NzRcXHVDNzkwXFx1QzdBQ1xcdUM3QzhcXHVDN0U0XFx1QzgwMCIKKyAgICAgICAgICArICJcXHVDODFDXFx1QzgzOFxcdUM4NTRcXHVDODcwXFx1Qzg4Q1xcdUM4QThcXHVDOEM0XFx1QzhFMFxcdUM4RkMiCisgICAgICAgICAgKyAiXFx1QzkxOFxcdUM5MzRcXHVDOTUwXFx1Qzk2Q1xcdUM5ODhcXHVDOUE0XFx1QzlDMFxcdUM5RENcXHVDOUY4IgorICAgICAgICAgICsgIlxcdUNBMTRcXHVDQTMwXFx1Q0E0Q1xcdUNBNjhcXHVDQTg0XFx1Q0FBMFxcdUNBQkNcXHVDQUQ4XFx1Q0FGNCIKKyAgICAgICAgICArICJcXHVDQjEwXFx1Q0IyQ1xcdUNCNDhcXHVDQjY0XFx1Q0I4MFxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRjAiCisgICAgICAgICAgKyAiXFx1Q0MwQ1xcdUNDMjhcXHVDQzQ0XFx1Q0M2MFxcdUNDN0NcXHVDQzk4XFx1Q0NCNFxcdUNDRDBcXHVDQ0VDIgorICAgICAgICAgICsgIlxcdUNEMDhcXHVDRDI0XFx1Q0Q0MFxcdUNENUNcXHVDRDc4XFx1Q0Q5NFxcdUNEQjBcXHVDRENDXFx1Q0RFOCIKKyAgICAgICAgICArICJcXHVDRTA0XFx1Q0UyMFxcdUNFM0NcXHVDRTU4XFx1Q0U3NFxcdUNFOTBcXHVDRUFDXFx1Q0VDOFxcdUNFRTQiCisgICAgICAgICAgKyAiXFx1Q0YwMFxcdUNGMUNcXHVDRjM4XFx1Q0Y1NFxcdUNGNzBcXHVDRjhDXFx1Q0ZBOFxcdUNGQzRcXHVDRkUwIgorICAgICAgICAgICsgIlxcdUNGRkNcXHVEMDE4XFx1RDAzNFxcdUQwNTBcXHVEMDZDXFx1RDA4OFxcdUQwQTRcXHVEMEMwXFx1RDBEQyIKKyAgICAgICAgICArICJcXHVEMEY4XFx1RDExNFxcdUQxMzBcXHVEMTRDXFx1RDE2OFxcdUQxODRcXHVEMUEwXFx1RDFCQ1xcdUQxRDgiCisgICAgICAgICAgKyAiXFx1RDFGNFxcdUQyMTBcXHVEMjJDXFx1RDI0OFxcdUQyNjRcXHVEMjgwXFx1RDI5Q1xcdUQyQjhcXHVEMkQ0IgorICAgICAgICAgICsgIlxcdUQyRjBcXHVEMzBDXFx1RDMyOFxcdUQzNDRcXHVEMzYwXFx1RDM3Q1xcdUQzOThcXHVEM0I0XFx1RDNEMCIKKyAgICAgICAgICArICJcXHVEM0VDXFx1RDQwOFxcdUQ0MjRcXHVENDQwXFx1RDQ1Q1xcdUQ0NzhcXHVENDk0XFx1RDRCMFxcdUQ0Q0MiCisgICAgICAgICAgKyAiXFx1RDRFOFxcdUQ1MDRcXHVENTIwXFx1RDUzQ1xcdUQ1NThcXHVENTc0XFx1RDU5MFxcdUQ1QUNcXHVENUM4IgorICAgICAgICAgICsgIlxcdUQ1RTRcXHVENjAwXFx1RDYxQ1xcdUQ2MzhcXHVENjU0XFx1RDY3MFxcdUQ2OENcXHVENkE4XFx1RDZDNCIKKyAgICAgICAgICArICJcXHVENkUwXFx1RDZGQ1xcdUQ3MThcXHVENzM0XFx1RDc1MFxcdUQ3NkNcXHVENzg4XFx1RjkwMC1cXHVGQTBEIgorICAgICAgICAgICsgIlxcdUZBMTBcXHVGQTEyXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjJcXHVGQTI1XFx1RkEyNlxcdUZBMkEiCisgICAgICAgICAgKyAiLVxcdUZBMkRcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjFELVxcdUZCMUZcXHVGQjJBLSIKKyAgICAgICAgICArICJcXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2IgorICAgICAgICAgICsgIi1cXHVGQjRFXFx1RkUyMC1cXHVGRTIzXFxVMDAwMTBBMERcXFUwMDAxMEEwRlxcVTAwMDEwQTM4LVxcVTAwMDEiCisgICAgICAgICAgKyAiMEEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICArICJcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtIgorICAgICAgICAgICsgIlxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxRDI0Mi1cXFUwMDAxRDI0NFxcVTAwMDIiCisgICAgICAgICAgKyAiRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAKKyAgICAgICAgc2tpcFNldHNbS0RdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXlxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjVcXHUwMEI4LVxcdTAwQkEiCisgICAgICAgICAgKyAiXFx1MDBCQy1cXHUwMEJFXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2IgorICAgICAgICAgICsgIlxcdTAwRDktXFx1MDBERFxcdTAwRTAtXFx1MDBFNVxcdTAwRTctXFx1MDBFRlxcdTAwRjEtXFx1MDBGNiIKKyAgICAgICAgICArICJcXHUwMEY5LVxcdTAwRkRcXHUwMEZGLVxcdTAxMEZcXHUwMTEyLVxcdTAxMjVcXHUwMTI4LVxcdTAxMzAiCisgICAgICAgICAgKyAiXFx1MDEzMi1cXHUwMTM3XFx1MDEzOS1cXHUwMTQwXFx1MDE0My1cXHUwMTQ5XFx1MDE0Qy1cXHUwMTUxIgorICAgICAgICAgICsgIlxcdTAxNTQtXFx1MDE2NVxcdTAxNjgtXFx1MDE3RlxcdTAxQTBcXHUwMUExXFx1MDFBRlxcdTAxQjAiCisgICAgICAgICAgKyAiXFx1MDFDNC1cXHUwMURDXFx1MDFERS1cXHUwMUUzXFx1MDFFNi1cXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICsgIlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDJCMC1cXHUwMkI4XFx1MDJEOC1cXHUwMkREIgorICAgICAgICAgICsgIlxcdTAyRTAtXFx1MDJFNFxcdTAzMDAtXFx1MDM0RVxcdTAzNTAtXFx1MDM2RlxcdTAzNzRcXHUwMzdBIgorICAgICAgICAgICsgIlxcdTAzN0VcXHUwMzg0LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwMzkwXFx1MDNBQS1cXHUwM0IwIgorICAgICAgICAgICsgIlxcdTAzQ0EtXFx1MDNDRVxcdTAzRDAtXFx1MDNENlxcdTAzRjAtXFx1MDNGMlxcdTAzRjRcXHUwM0Y1IgorICAgICAgICAgICsgIlxcdTAzRjlcXHUwNDAwXFx1MDQwMVxcdTA0MDNcXHUwNDA3XFx1MDQwQy1cXHUwNDBFXFx1MDQxOVxcdTA0MzkiCisgICAgICAgICAgKyAiXFx1MDQ1MFxcdTA0NTFcXHUwNDUzXFx1MDQ1N1xcdTA0NUMtXFx1MDQ1RVxcdTA0NzZcXHUwNDc3XFx1MDQ4MyIKKyAgICAgICAgICArICItXFx1MDQ4NlxcdTA0QzFcXHUwNEMyXFx1MDREMC1cXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLSIKKyAgICAgICAgICArICJcXHUwNERGXFx1MDRFMi1cXHUwNEU3XFx1MDRFQS1cXHUwNEY1XFx1MDRGOFxcdTA0RjlcXHUwNTg3IgorICAgICAgICAgICsgIlxcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM1XFx1MDVDN1xcdTA2MTAiCisgICAgICAgICAgKyAiLVxcdTA2MTVcXHUwNjIyLVxcdTA2MjZcXHUwNjRCLVxcdTA2NUVcXHUwNjcwXFx1MDY3NS1cXHUwNjc4IgorICAgICAgICAgICsgIlxcdTA2QzBcXHUwNkMyXFx1MDZEM1xcdTA2RDYtXFx1MDZEQ1xcdTA2REYtXFx1MDZFNFxcdTA2RTciCisgICAgICAgICAgKyAiXFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEFcXHUwN0VCLVxcdTA3RjMiCisgICAgICAgICAgKyAiXFx1MDkyOVxcdTA5MzFcXHUwOTM0XFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LSIKKyAgICAgICAgICArICJcXHUwOTVGXFx1MDlCQ1xcdTA5Q0ItXFx1MDlDRFxcdTA5RENcXHUwOUREXFx1MDlERlxcdTBBMzNcXHUwQTM2IgorICAgICAgICAgICsgIlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQ1xcdTBCNDgiCisgICAgICAgICAgKyAiXFx1MEI0Qi1cXHUwQjREXFx1MEI1Q1xcdTBCNURcXHUwQjk0XFx1MEJDQS1cXHUwQkNEXFx1MEM0OCIKKyAgICAgICAgICArICJcXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQ0JDXFx1MENDMFxcdTBDQzdcXHUwQ0M4XFx1MENDQVxcdTBDQ0IiCisgICAgICAgICAgKyAiXFx1MENDRFxcdTBENEEtXFx1MEQ0RFxcdTBEQ0FcXHUwRERBXFx1MEREQy1cXHUwRERFXFx1MEUzMyIKKyAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUIzXFx1MEVCOFxcdTBFQjlcXHUwRUM4LSIKKyAgICAgICAgICArICJcXHUwRUNCXFx1MEVEQ1xcdTBFRERcXHUwRjBDXFx1MEYxOFxcdTBGMTlcXHUwRjM1XFx1MEYzN1xcdTBGMzkiCisgICAgICAgICAgKyAiXFx1MEY0M1xcdTBGNERcXHUwRjUyXFx1MEY1N1xcdTBGNUNcXHUwRjY5XFx1MEY3MS1cXHUwRjdEXFx1MEY4MCIKKyAgICAgICAgICArICItXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxMEZDXFx1MTM1RlxcdTE3MTRcXHUxNzM0XFx1MTdEMiIKKyAgICAgICAgICArICJcXHUxN0REXFx1MThBOVxcdTE5MzktXFx1MTkzQlxcdTFBMTdcXHUxQTE4XFx1MUIwNlxcdTFCMDhcXHUxQjBBIgorICAgICAgICAgICsgIlxcdTFCMENcXHUxQjBFXFx1MUIxMlxcdTFCMzRcXHUxQjNCXFx1MUIzRFxcdTFCNDBcXHUxQjQxXFx1MUI0MyIKKyAgICAgICAgICArICJcXHUxQjQ0XFx1MUI2Qi1cXHUxQjczXFx1MUQyQy1cXHUxRDJFXFx1MUQzMC1cXHUxRDNBXFx1MUQzQy0iCisgICAgICAgICAgKyAiXFx1MUQ0RFxcdTFENEYtXFx1MUQ2QVxcdTFENzhcXHUxRDlCLVxcdTFEQ0FcXHUxREZFLVxcdTFFOUIiCisgICAgICAgICAgKyAiXFx1MUVBMC1cXHUxRUY5XFx1MUYwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1IgorICAgICAgICAgICsgIlxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtIgorICAgICAgICAgICsgIlxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQzRcXHUxRkM2LVxcdTFGRDNcXHUxRkQ2LSIKKyAgICAgICAgICArICJcXHUxRkRCXFx1MUZERC1cXHUxRkVGXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZFXFx1MjAwMC0iCisgICAgICAgICAgKyAiXFx1MjAwQVxcdTIwMTFcXHUyMDE3XFx1MjAyNC1cXHUyMDI2XFx1MjAyRlxcdTIwMzNcXHUyMDM0XFx1MjAzNiIKKyAgICAgICAgICArICJcXHUyMDM3XFx1MjAzQ1xcdTIwM0VcXHUyMDQ3LVxcdTIwNDlcXHUyMDU3XFx1MjA1RlxcdTIwNzBcXHUyMDcxIgorICAgICAgICAgICsgIlxcdTIwNzQtXFx1MjA4RVxcdTIwOTAtXFx1MjA5NFxcdTIwQThcXHUyMEQwLVxcdTIwRENcXHUyMEUxIgorICAgICAgICAgICsgIlxcdTIwRTUtXFx1MjBFRlxcdTIxMDAtXFx1MjEwM1xcdTIxMDUtXFx1MjEwN1xcdTIxMDktXFx1MjExMyIKKyAgICAgICAgICArICJcXHUyMTE1XFx1MjExNlxcdTIxMTktXFx1MjExRFxcdTIxMjAtXFx1MjEyMlxcdTIxMjRcXHUyMTI2IgorICAgICAgICAgICsgIlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzFcXHUyMTMzLVxcdTIxMzlcXHUyMTNCLSIKKyAgICAgICAgICArICJcXHUyMTQwXFx1MjE0NS1cXHUyMTQ5XFx1MjE1My1cXHUyMTdGXFx1MjE5QVxcdTIxOUJcXHUyMUFFIgorICAgICAgICAgICsgIlxcdTIxQ0QtXFx1MjFDRlxcdTIyMDRcXHUyMjA5XFx1MjIwQ1xcdTIyMjRcXHUyMjI2XFx1MjIyQ1xcdTIyMkQiCisgICAgICAgICAgKyAiXFx1MjIyRlxcdTIyMzBcXHUyMjQxXFx1MjI0NFxcdTIyNDdcXHUyMjQ5XFx1MjI2MFxcdTIyNjJcXHUyMjZELSIKKyAgICAgICAgICArICJcXHUyMjcxXFx1MjI3NFxcdTIyNzVcXHUyMjc4XFx1MjI3OVxcdTIyODBcXHUyMjgxXFx1MjI4NFxcdTIyODUiCisgICAgICAgICAgKyAiXFx1MjI4OFxcdTIyODlcXHUyMkFDLVxcdTIyQUZcXHUyMkUwLVxcdTIyRTNcXHUyMkVBLVxcdTIyRUQiCisgICAgICAgICAgKyAiXFx1MjMyOVxcdTIzMkFcXHUyNDYwLVxcdTI0RUFcXHUyQTBDXFx1MkE3NC1cXHUyQTc2XFx1MkFEQyIKKyAgICAgICAgICArICJcXHUyRDZGXFx1MkU5RlxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGIgorICAgICAgICAgICsgIlxcdTMwMzZcXHUzMDM4LVxcdTMwM0FcXHUzMDRDXFx1MzA0RVxcdTMwNTBcXHUzMDUyXFx1MzA1NFxcdTMwNTYiCisgICAgICAgICAgKyAiXFx1MzA1OFxcdTMwNUFcXHUzMDVDXFx1MzA1RVxcdTMwNjBcXHUzMDYyXFx1MzA2NVxcdTMwNjdcXHUzMDY5IgorICAgICAgICAgICsgIlxcdTMwNzBcXHUzMDcxXFx1MzA3M1xcdTMwNzRcXHUzMDc2XFx1MzA3N1xcdTMwNzlcXHUzMDdBXFx1MzA3QyIKKyAgICAgICAgICArICJcXHUzMDdEXFx1MzA5NFxcdTMwOTktXFx1MzA5Q1xcdTMwOUVcXHUzMDlGXFx1MzBBQ1xcdTMwQUVcXHUzMEIwIgorICAgICAgICAgICsgIlxcdTMwQjJcXHUzMEI0XFx1MzBCNlxcdTMwQjhcXHUzMEJBXFx1MzBCQ1xcdTMwQkVcXHUzMEMwXFx1MzBDMiIKKyAgICAgICAgICArICJcXHUzMEM1XFx1MzBDN1xcdTMwQzlcXHUzMEQwXFx1MzBEMVxcdTMwRDNcXHUzMEQ0XFx1MzBENlxcdTMwRDciCisgICAgICAgICAgKyAiXFx1MzBEOVxcdTMwREFcXHUzMERDXFx1MzBERFxcdTMwRjRcXHUzMEY3LVxcdTMwRkFcXHUzMEZFXFx1MzBGRiIKKyAgICAgICAgICArICJcXHUzMTMxLVxcdTMxOEVcXHUzMTkyLVxcdTMxOUZcXHUzMjAwLVxcdTMyMUVcXHUzMjIwLVxcdTMyNDMiCisgICAgICAgICAgKyAiXFx1MzI1MC1cXHUzMjdFXFx1MzI4MC1cXHUzMkZFXFx1MzMwMC1cXHUzM0ZGXFx1QTgwNlxcdUFDMDAtIgorICAgICAgICAgICsgIlxcdUQ3QTNcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMlxcdUZBMTUtXFx1RkExRVxcdUZBMjAiCisgICAgICAgICAgKyAiXFx1RkEyMlxcdUZBMjVcXHVGQTI2XFx1RkEyQS1cXHVGQTJEXFx1RkEzMC1cXHVGQTZBXFx1RkE3MC0iCisgICAgICAgICAgKyAiXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIzNlxcdUZCMzgtIgorICAgICAgICAgICsgIlxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMiCisgICAgICAgICAgKyAiLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkNcXHVGRTEwLSIKKyAgICAgICAgICArICJcXHVGRTE5XFx1RkUyMC1cXHVGRTIzXFx1RkUzMC1cXHVGRTQ0XFx1RkU0Ny1cXHVGRTUyXFx1RkU1NC0iCisgICAgICAgICAgKyAiXFx1RkU2NlxcdUZFNjgtXFx1RkU2QlxcdUZFNzAtXFx1RkU3MlxcdUZFNzRcXHVGRTc2LVxcdUZFRkMiCisgICAgICAgICAgKyAiXFx1RkYwMS1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3IgorICAgICAgICAgICsgIlxcdUZGREEtXFx1RkZEQ1xcdUZGRTAtXFx1RkZFNlxcdUZGRTgtXFx1RkZFRVxcVTAwMDEwQTBEXFxVMDAwMTAiCisgICAgICAgICAgKyAiQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTBBM0FcXFUwMDAxMEEzRlxcVTAwMDFEMTVFLVxcVTAwMDFEMTY5IgorICAgICAgICAgICsgIlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS0iCisgICAgICAgICAgKyAiXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS1cXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMSIKKyAgICAgICAgICArICJEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMUQ0MDAtXFxVMDAwMUQ0NTRcXFUwMDAxRDQ1Ni1cXFUwMDAxRDQ5QyIKKyAgICAgICAgICArICJcXFUwMDAxRDQ5RVxcVTAwMDFENDlGXFxVMDAwMUQ0QTJcXFUwMDAxRDRBNVxcVTAwMDFENEE2XFxVMDAwMUQ0IgorICAgICAgICAgICsgIkE5LVxcVTAwMDFENEFDXFxVMDAwMUQ0QUUtXFxVMDAwMUQ0QjlcXFUwMDAxRDRCQlxcVTAwMDFENEJELSIKKyAgICAgICAgICArICJcXFUwMDAxRDRDM1xcVTAwMDFENEM1LVxcVTAwMDFENTA1XFxVMDAwMUQ1MDctXFxVMDAwMUQ1MEFcXFUwMDAxIgorICAgICAgICAgICsgIkQ1MEQtXFxVMDAwMUQ1MTRcXFUwMDAxRDUxNi1cXFUwMDAxRDUxQ1xcVTAwMDFENTFFLVxcVTAwMDFENTM5IgorICAgICAgICAgICsgIlxcVTAwMDFENTNCLVxcVTAwMDFENTNFXFxVMDAwMUQ1NDAtXFxVMDAwMUQ1NDRcXFUwMDAxRDU0NlxcVTAwMDEiCisgICAgICAgICAgKyAiRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDFENTUyLVxcVTAwMDFENkE1XFxVMDAwMUQ2QTgtXFxVMDAwMUQ3Q0IiCisgICAgICAgICAgKyAiXFxVMDAwMUQ3Q0UtXFxVMDAwMUQ3RkZcXFUwMDAyRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAKKyAgICAgICAgc2tpcFNldHNbS0NdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjUiCisgICAgICAgICAgKyAiXFx1MDBCOC1cXHUwMEJBXFx1MDBCQy1cXHUwMEJFXFx1MDBDMC1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2IgorICAgICAgICAgICsgIlxcdTAwRDgtXFx1MDBERFxcdTAwRTAtXFx1MDBFRlxcdTAwRjEtXFx1MDBGNlxcdTAwRjgtXFx1MDBGRCIKKyAgICAgICAgICArICJcXHUwMEZGLVxcdTAxMDNcXHUwMTA2LVxcdTAxMEZcXHUwMTEyLVxcdTAxMTdcXHUwMTFBLVxcdTAxMjEiCisgICAgICAgICAgKyAiXFx1MDEyNFxcdTAxMjVcXHUwMTI4LVxcdTAxMkRcXHUwMTMwXFx1MDEzMlxcdTAxMzNcXHUwMTM5XFx1MDEzQSIKKyAgICAgICAgICArICJcXHUwMTNELVxcdTAxNDBcXHUwMTQzXFx1MDE0NFxcdTAxNDctXFx1MDE0OVxcdTAxNEMtXFx1MDE1MSIKKyAgICAgICAgICArICJcXHUwMTU0XFx1MDE1NVxcdTAxNTgtXFx1MDE1RFxcdTAxNjBcXHUwMTYxXFx1MDE2NFxcdTAxNjVcXHUwMTY4IgorICAgICAgICAgICsgIi1cXHUwMTcxXFx1MDE3NC1cXHUwMTdGXFx1MDFBMFxcdTAxQTFcXHUwMUFGXFx1MDFCMFxcdTAxQjciCisgICAgICAgICAgKyAiXFx1MDFDNC1cXHUwMURDXFx1MDFERS1cXHUwMUUxXFx1MDFFNi1cXHUwMUVCXFx1MDFGMS1cXHUwMUY1IgorICAgICAgICAgICsgIlxcdTAxRjgtXFx1MDFGQlxcdTAyMDAtXFx1MDIxQlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzIgorICAgICAgICAgICsgIlxcdTAyOTJcXHUwMkIwLVxcdTAyQjhcXHUwMkQ4LVxcdTAyRERcXHUwMkUwLVxcdTAyRTRcXHUwMzAwLSIKKyAgICAgICAgICArICJcXHUwMzRFXFx1MDM1MC1cXHUwMzZGXFx1MDM3NFxcdTAzN0FcXHUwMzdFXFx1MDM4NFxcdTAzODVcXHUwMzg3IgorICAgICAgICAgICsgIlxcdTAzOTFcXHUwMzk1XFx1MDM5N1xcdTAzOTlcXHUwMzlGXFx1MDNBMVxcdTAzQTVcXHUwM0E5XFx1MDNBQyIKKyAgICAgICAgICArICJcXHUwM0FFXFx1MDNCMVxcdTAzQjVcXHUwM0I3XFx1MDNCOVxcdTAzQkZcXHUwM0MxXFx1MDNDNVxcdTAzQzktIgorICAgICAgICAgICsgIlxcdTAzQ0JcXHUwM0NFXFx1MDNEMC1cXHUwM0Q2XFx1MDNGMC1cXHUwM0YyXFx1MDNGNFxcdTAzRjUiCisgICAgICAgICAgKyAiXFx1MDNGOVxcdTA0MDZcXHUwNDEwXFx1MDQxM1xcdTA0MTUtXFx1MDQxOFxcdTA0MUFcXHUwNDFFXFx1MDQyMyIKKyAgICAgICAgICArICJcXHUwNDI3XFx1MDQyQlxcdTA0MkRcXHUwNDMwXFx1MDQzM1xcdTA0MzUtXFx1MDQzOFxcdTA0M0FcXHUwNDNFIgorICAgICAgICAgICsgIlxcdTA0NDNcXHUwNDQ3XFx1MDQ0QlxcdTA0NERcXHUwNDU2XFx1MDQ3NFxcdTA0NzVcXHUwNDgzLVxcdTA0ODYiCisgICAgICAgICAgKyAiXFx1MDREOFxcdTA0RDlcXHUwNEU4XFx1MDRFOVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMSIKKyAgICAgICAgICArICJcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDYxMC1cXHUwNjE1XFx1MDYyMlxcdTA2MjNcXHUwNjI3IgorICAgICAgICAgICsgIlxcdTA2NDhcXHUwNjRBLVxcdTA2NUVcXHUwNjcwXFx1MDY3NS1cXHUwNjc4XFx1MDZDMVxcdTA2RDIiCisgICAgICAgICAgKyAiXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RUQiCisgICAgICAgICAgKyAiXFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3RUItXFx1MDdGM1xcdTA5MjhcXHUwOTMwXFx1MDkzMyIKKyAgICAgICAgICArICJcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgtXFx1MDk1RlxcdTA5QkNcXHUwOUJFIgorICAgICAgICAgICsgIlxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERlxcdTBBMzNcXHUwQTM2XFx1MEEzQyIKKyAgICAgICAgICArICJcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQ1xcdTBCM0VcXHUwQjQ3IgorICAgICAgICAgICsgIlxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI5MlxcdTBCQkVcXHUwQkM2XFx1MEJDNyIKKyAgICAgICAgICArICJcXHUwQkNEXFx1MEJEN1xcdTBDNDZcXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQ0JDXFx1MENCRlxcdTBDQzIiCisgICAgICAgICAgKyAiXFx1MENDNlxcdTBDQ0FcXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwRDNFXFx1MEQ0NlxcdTBENDdcXHUwRDREIgorICAgICAgICAgICsgIlxcdTBENTdcXHUwRENBXFx1MERDRlxcdTBERDlcXHUwRERDXFx1MERERlxcdTBFMzNcXHUwRTM4LVxcdTBFM0EiCisgICAgICAgICAgKyAiXFx1MEU0OC1cXHUwRTRCXFx1MEVCM1xcdTBFQjhcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEVEQyIKKyAgICAgICAgICArICJcXHUwRUREXFx1MEYwQ1xcdTBGMThcXHUwRjE5XFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEY0M1xcdTBGNEQiCisgICAgICAgICAgKyAiXFx1MEY1MlxcdTBGNTdcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3RFxcdTBGODAtXFx1MEY4NCIKKyAgICAgICAgICArICJcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzYiCisgICAgICAgICAgKyAiXFx1MTAyNVxcdTEwMkVcXHUxMDM3XFx1MTAzOVxcdTEwRkNcXHUxMTAwLVxcdTExMTJcXHUxMTYxLSIKKyAgICAgICAgICArICJcXHUxMTc1XFx1MTFBOC1cXHUxMUMyXFx1MTM1RlxcdTE3MTRcXHUxNzM0XFx1MTdEMlxcdTE3RERcXHUxOEE5IgorICAgICAgICAgICsgIlxcdTE5MzktXFx1MTkzQlxcdTFBMTdcXHUxQTE4XFx1MUIwNVxcdTFCMDdcXHUxQjA5XFx1MUIwQlxcdTFCMEQiCisgICAgICAgICAgKyAiXFx1MUIxMVxcdTFCMzRcXHUxQjM1XFx1MUIzQVxcdTFCM0NcXHUxQjNFXFx1MUIzRlxcdTFCNDJcXHUxQjQ0IgorICAgICAgICAgICsgIlxcdTFCNkItXFx1MUI3M1xcdTFEMkMtXFx1MUQyRVxcdTFEMzAtXFx1MUQzQVxcdTFEM0MtXFx1MUQ0RCIKKyAgICAgICAgICArICJcXHUxRDRGLVxcdTFENkFcXHUxRDc4XFx1MUQ5Qi1cXHUxRENBXFx1MURGRS1cXHUxRTAzXFx1MUUwQS0iCisgICAgICAgICAgKyAiXFx1MUUwRlxcdTFFMTItXFx1MUUxQlxcdTFFMjAtXFx1MUUyN1xcdTFFMkEtXFx1MUU0MVxcdTFFNDQtIgorICAgICAgICAgICsgIlxcdTFFNTNcXHUxRTU4LVxcdTFFN0RcXHUxRTgwLVxcdTFFODdcXHUxRThFLVxcdTFFOTFcXHUxRTk2LSIKKyAgICAgICAgICArICJcXHUxRTlCXFx1MUVBMC1cXHUxRUYzXFx1MUVGNi1cXHUxRUY5XFx1MUYwMC1cXHUxRjExXFx1MUYxOCIKKyAgICAgICAgICArICJcXHUxRjE5XFx1MUYyMC1cXHUxRjMxXFx1MUYzOFxcdTFGMzlcXHUxRjQwXFx1MUY0MVxcdTFGNDhcXHUxRjQ5IgorICAgICAgICAgICsgIlxcdTFGNTBcXHUxRjUxXFx1MUY1OVxcdTFGNjAtXFx1MUY3MVxcdTFGNzMtXFx1MUY3NVxcdTFGNzciCisgICAgICAgICAgKyAiXFx1MUY3OVxcdTFGN0ItXFx1MUY3RFxcdTFGODBcXHUxRjgxXFx1MUY4OFxcdTFGODlcXHUxRjkwXFx1MUY5MSIKKyAgICAgICAgICArICJcXHUxRjk4XFx1MUY5OVxcdTFGQTBcXHUxRkExXFx1MUZBOFxcdTFGQTlcXHUxRkIzXFx1MUZCNlxcdTFGQkItIgorICAgICAgICAgICsgIlxcdTFGQzFcXHUxRkMzXFx1MUZDNlxcdTFGQzlcXHUxRkNCLVxcdTFGQ0ZcXHUxRkQzXFx1MUZEQlxcdTFGREQiCisgICAgICAgICAgKyAiLVxcdTFGREZcXHUxRkUzXFx1MUZFQlxcdTFGRUQtXFx1MUZFRlxcdTFGRjNcXHUxRkY2XFx1MUZGOSIKKyAgICAgICAgICArICJcXHUxRkZCLVxcdTFGRkVcXHUyMDAwLVxcdTIwMEFcXHUyMDExXFx1MjAxN1xcdTIwMjQtXFx1MjAyNiIKKyAgICAgICAgICArICJcXHUyMDJGXFx1MjAzM1xcdTIwMzRcXHUyMDM2XFx1MjAzN1xcdTIwM0NcXHUyMDNFXFx1MjA0Ny1cXHUyMDQ5IgorICAgICAgICAgICsgIlxcdTIwNTdcXHUyMDVGXFx1MjA3MFxcdTIwNzFcXHUyMDc0LVxcdTIwOEVcXHUyMDkwLVxcdTIwOTQiCisgICAgICAgICAgKyAiXFx1MjBBOFxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUZcXHUyMTAwLVxcdTIxMDMiCisgICAgICAgICAgKyAiXFx1MjEwNS1cXHUyMTA3XFx1MjEwOS1cXHUyMTEzXFx1MjExNVxcdTIxMTZcXHUyMTE5LVxcdTIxMUQiCisgICAgICAgICAgKyAiXFx1MjEyMC1cXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi0iCisgICAgICAgICAgKyAiXFx1MjEzMVxcdTIxMzMtXFx1MjEzOVxcdTIxM0ItXFx1MjE0MFxcdTIxNDUtXFx1MjE0OVxcdTIxNTMtIgorICAgICAgICAgICsgIlxcdTIxN0ZcXHUyMTkwXFx1MjE5MlxcdTIxOTRcXHUyMUQwXFx1MjFEMlxcdTIxRDRcXHUyMjAzXFx1MjIwOCIKKyAgICAgICAgICArICJcXHUyMjBCXFx1MjIyM1xcdTIyMjVcXHUyMjJDXFx1MjIyRFxcdTIyMkZcXHUyMjMwXFx1MjIzQ1xcdTIyNDMiCisgICAgICAgICAgKyAiXFx1MjI0NVxcdTIyNDhcXHUyMjREXFx1MjI2MVxcdTIyNjRcXHUyMjY1XFx1MjI3MlxcdTIyNzNcXHUyMjc2IgorICAgICAgICAgICsgIlxcdTIyNzdcXHUyMjdBLVxcdTIyN0RcXHUyMjgyXFx1MjI4M1xcdTIyODZcXHUyMjg3XFx1MjI5MVxcdTIyOTIiCisgICAgICAgICAgKyAiXFx1MjJBMlxcdTIyQThcXHUyMkE5XFx1MjJBQlxcdTIyQjItXFx1MjJCNVxcdTIzMjlcXHUyMzJBXFx1MjQ2MCIKKyAgICAgICAgICArICItXFx1MjRFQVxcdTJBMENcXHUyQTc0LVxcdTJBNzZcXHUyQURDXFx1MkQ2RlxcdTJFOUZcXHUyRUYzIgorICAgICAgICAgICsgIlxcdTJGMDAtXFx1MkZENVxcdTMwMDBcXHUzMDJBLVxcdTMwMkZcXHUzMDM2XFx1MzAzOC1cXHUzMDNBIgorICAgICAgICAgICsgIlxcdTMwNDZcXHUzMDRCXFx1MzA0RFxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OSIKKyAgICAgICAgICArICJcXHUzMDVCXFx1MzA1RFxcdTMwNUZcXHUzMDYxXFx1MzA2NFxcdTMwNjZcXHUzMDY4XFx1MzA2RlxcdTMwNzIiCisgICAgICAgICAgKyAiXFx1MzA3NVxcdTMwNzhcXHUzMDdCXFx1MzA5OS1cXHUzMDlEXFx1MzA5RlxcdTMwQTZcXHUzMEFCXFx1MzBBRCIKKyAgICAgICAgICArICJcXHUzMEFGXFx1MzBCMVxcdTMwQjNcXHUzMEI1XFx1MzBCN1xcdTMwQjlcXHUzMEJCXFx1MzBCRFxcdTMwQkYiCisgICAgICAgICAgKyAiXFx1MzBDMVxcdTMwQzRcXHUzMEM2XFx1MzBDOFxcdTMwQ0ZcXHUzMEQyXFx1MzBENVxcdTMwRDhcXHUzMERCIgorICAgICAgICAgICsgIlxcdTMwRUYtXFx1MzBGMlxcdTMwRkRcXHUzMEZGXFx1MzEzMS1cXHUzMThFXFx1MzE5Mi1cXHUzMTlGIgorICAgICAgICAgICsgIlxcdTMyMDAtXFx1MzIxRVxcdTMyMjAtXFx1MzI0M1xcdTMyNTAtXFx1MzI3RVxcdTMyODAtXFx1MzJGRSIKKyAgICAgICAgICArICJcXHUzMzAwLVxcdTMzRkZcXHVBODA2XFx1QUMwMFxcdUFDMUNcXHVBQzM4XFx1QUM1NFxcdUFDNzBcXHVBQzhDIgorICAgICAgICAgICsgIlxcdUFDQThcXHVBQ0M0XFx1QUNFMFxcdUFDRkNcXHVBRDE4XFx1QUQzNFxcdUFENTBcXHVBRDZDXFx1QUQ4OCIKKyAgICAgICAgICArICJcXHVBREE0XFx1QURDMFxcdUFERENcXHVBREY4XFx1QUUxNFxcdUFFMzBcXHVBRTRDXFx1QUU2OFxcdUFFODQiCisgICAgICAgICAgKyAiXFx1QUVBMFxcdUFFQkNcXHVBRUQ4XFx1QUVGNFxcdUFGMTBcXHVBRjJDXFx1QUY0OFxcdUFGNjRcXHVBRjgwIgorICAgICAgICAgICsgIlxcdUFGOUNcXHVBRkI4XFx1QUZENFxcdUFGRjBcXHVCMDBDXFx1QjAyOFxcdUIwNDRcXHVCMDYwXFx1QjA3QyIKKyAgICAgICAgICArICJcXHVCMDk4XFx1QjBCNFxcdUIwRDBcXHVCMEVDXFx1QjEwOFxcdUIxMjRcXHVCMTQwXFx1QjE1Q1xcdUIxNzgiCisgICAgICAgICAgKyAiXFx1QjE5NFxcdUIxQjBcXHVCMUNDXFx1QjFFOFxcdUIyMDRcXHVCMjIwXFx1QjIzQ1xcdUIyNThcXHVCMjc0IgorICAgICAgICAgICsgIlxcdUIyOTBcXHVCMkFDXFx1QjJDOFxcdUIyRTRcXHVCMzAwXFx1QjMxQ1xcdUIzMzhcXHVCMzU0XFx1QjM3MCIKKyAgICAgICAgICArICJcXHVCMzhDXFx1QjNBOFxcdUIzQzRcXHVCM0UwXFx1QjNGQ1xcdUI0MThcXHVCNDM0XFx1QjQ1MFxcdUI0NkMiCisgICAgICAgICAgKyAiXFx1QjQ4OFxcdUI0QTRcXHVCNEMwXFx1QjREQ1xcdUI0RjhcXHVCNTE0XFx1QjUzMFxcdUI1NENcXHVCNTY4IgorICAgICAgICAgICsgIlxcdUI1ODRcXHVCNUEwXFx1QjVCQ1xcdUI1RDhcXHVCNUY0XFx1QjYxMFxcdUI2MkNcXHVCNjQ4XFx1QjY2NCIKKyAgICAgICAgICArICJcXHVCNjgwXFx1QjY5Q1xcdUI2QjhcXHVCNkQ0XFx1QjZGMFxcdUI3MENcXHVCNzI4XFx1Qjc0NFxcdUI3NjAiCisgICAgICAgICAgKyAiXFx1Qjc3Q1xcdUI3OThcXHVCN0I0XFx1QjdEMFxcdUI3RUNcXHVCODA4XFx1QjgyNFxcdUI4NDBcXHVCODVDIgorICAgICAgICAgICsgIlxcdUI4NzhcXHVCODk0XFx1QjhCMFxcdUI4Q0NcXHVCOEU4XFx1QjkwNFxcdUI5MjBcXHVCOTNDXFx1Qjk1OCIKKyAgICAgICAgICArICJcXHVCOTc0XFx1Qjk5MFxcdUI5QUNcXHVCOUM4XFx1QjlFNFxcdUJBMDBcXHVCQTFDXFx1QkEzOFxcdUJBNTQiCisgICAgICAgICAgKyAiXFx1QkE3MFxcdUJBOENcXHVCQUE4XFx1QkFDNFxcdUJBRTBcXHVCQUZDXFx1QkIxOFxcdUJCMzRcXHVCQjUwIgorICAgICAgICAgICsgIlxcdUJCNkNcXHVCQjg4XFx1QkJBNFxcdUJCQzBcXHVCQkRDXFx1QkJGOFxcdUJDMTRcXHVCQzMwXFx1QkM0QyIKKyAgICAgICAgICArICJcXHVCQzY4XFx1QkM4NFxcdUJDQTBcXHVCQ0JDXFx1QkNEOFxcdUJDRjRcXHVCRDEwXFx1QkQyQ1xcdUJENDgiCisgICAgICAgICAgKyAiXFx1QkQ2NFxcdUJEODBcXHVCRDlDXFx1QkRCOFxcdUJERDRcXHVCREYwXFx1QkUwQ1xcdUJFMjhcXHVCRTQ0IgorICAgICAgICAgICsgIlxcdUJFNjBcXHVCRTdDXFx1QkU5OFxcdUJFQjRcXHVCRUQwXFx1QkVFQ1xcdUJGMDhcXHVCRjI0XFx1QkY0MCIKKyAgICAgICAgICArICJcXHVCRjVDXFx1QkY3OFxcdUJGOTRcXHVCRkIwXFx1QkZDQ1xcdUJGRThcXHVDMDA0XFx1QzAyMFxcdUMwM0MiCisgICAgICAgICAgKyAiXFx1QzA1OFxcdUMwNzRcXHVDMDkwXFx1QzBBQ1xcdUMwQzhcXHVDMEU0XFx1QzEwMFxcdUMxMUNcXHVDMTM4IgorICAgICAgICAgICsgIlxcdUMxNTRcXHVDMTcwXFx1QzE4Q1xcdUMxQThcXHVDMUM0XFx1QzFFMFxcdUMxRkNcXHVDMjE4XFx1QzIzNCIKKyAgICAgICAgICArICJcXHVDMjUwXFx1QzI2Q1xcdUMyODhcXHVDMkE0XFx1QzJDMFxcdUMyRENcXHVDMkY4XFx1QzMxNFxcdUMzMzAiCisgICAgICAgICAgKyAiXFx1QzM0Q1xcdUMzNjhcXHVDMzg0XFx1QzNBMFxcdUMzQkNcXHVDM0Q4XFx1QzNGNFxcdUM0MTBcXHVDNDJDIgorICAgICAgICAgICsgIlxcdUM0NDhcXHVDNDY0XFx1QzQ4MFxcdUM0OUNcXHVDNEI4XFx1QzRENFxcdUM0RjBcXHVDNTBDXFx1QzUyOCIKKyAgICAgICAgICArICJcXHVDNTQ0XFx1QzU2MFxcdUM1N0NcXHVDNTk4XFx1QzVCNFxcdUM1RDBcXHVDNUVDXFx1QzYwOFxcdUM2MjQiCisgICAgICAgICAgKyAiXFx1QzY0MFxcdUM2NUNcXHVDNjc4XFx1QzY5NFxcdUM2QjBcXHVDNkNDXFx1QzZFOFxcdUM3MDRcXHVDNzIwIgorICAgICAgICAgICsgIlxcdUM3M0NcXHVDNzU4XFx1Qzc3NFxcdUM3OTBcXHVDN0FDXFx1QzdDOFxcdUM3RTRcXHVDODAwXFx1QzgxQyIKKyAgICAgICAgICArICJcXHVDODM4XFx1Qzg1NFxcdUM4NzBcXHVDODhDXFx1QzhBOFxcdUM4QzRcXHVDOEUwXFx1QzhGQ1xcdUM5MTgiCisgICAgICAgICAgKyAiXFx1QzkzNFxcdUM5NTBcXHVDOTZDXFx1Qzk4OFxcdUM5QTRcXHVDOUMwXFx1QzlEQ1xcdUM5RjhcXHVDQTE0IgorICAgICAgICAgICsgIlxcdUNBMzBcXHVDQTRDXFx1Q0E2OFxcdUNBODRcXHVDQUEwXFx1Q0FCQ1xcdUNBRDhcXHVDQUY0XFx1Q0IxMCIKKyAgICAgICAgICArICJcXHVDQjJDXFx1Q0I0OFxcdUNCNjRcXHVDQjgwXFx1Q0I5Q1xcdUNCQjhcXHVDQkQ0XFx1Q0JGMFxcdUNDMEMiCisgICAgICAgICAgKyAiXFx1Q0MyOFxcdUNDNDRcXHVDQzYwXFx1Q0M3Q1xcdUNDOThcXHVDQ0I0XFx1Q0NEMFxcdUNDRUNcXHVDRDA4IgorICAgICAgICAgICsgIlxcdUNEMjRcXHVDRDQwXFx1Q0Q1Q1xcdUNENzhcXHVDRDk0XFx1Q0RCMFxcdUNEQ0NcXHVDREU4XFx1Q0UwNCIKKyAgICAgICAgICArICJcXHVDRTIwXFx1Q0UzQ1xcdUNFNThcXHVDRTc0XFx1Q0U5MFxcdUNFQUNcXHVDRUM4XFx1Q0VFNFxcdUNGMDAiCisgICAgICAgICAgKyAiXFx1Q0YxQ1xcdUNGMzhcXHVDRjU0XFx1Q0Y3MFxcdUNGOENcXHVDRkE4XFx1Q0ZDNFxcdUNGRTBcXHVDRkZDIgorICAgICAgICAgICsgIlxcdUQwMThcXHVEMDM0XFx1RDA1MFxcdUQwNkNcXHVEMDg4XFx1RDBBNFxcdUQwQzBcXHVEMERDXFx1RDBGOCIKKyAgICAgICAgICArICJcXHVEMTE0XFx1RDEzMFxcdUQxNENcXHVEMTY4XFx1RDE4NFxcdUQxQTBcXHVEMUJDXFx1RDFEOFxcdUQxRjQiCisgICAgICAgICAgKyAiXFx1RDIxMFxcdUQyMkNcXHVEMjQ4XFx1RDI2NFxcdUQyODBcXHVEMjlDXFx1RDJCOFxcdUQyRDRcXHVEMkYwIgorICAgICAgICAgICsgIlxcdUQzMENcXHVEMzI4XFx1RDM0NFxcdUQzNjBcXHVEMzdDXFx1RDM5OFxcdUQzQjRcXHVEM0QwXFx1RDNFQyIKKyAgICAgICAgICArICJcXHVENDA4XFx1RDQyNFxcdUQ0NDBcXHVENDVDXFx1RDQ3OFxcdUQ0OTRcXHVENEIwXFx1RDRDQ1xcdUQ0RTgiCisgICAgICAgICAgKyAiXFx1RDUwNFxcdUQ1MjBcXHVENTNDXFx1RDU1OFxcdUQ1NzRcXHVENTkwXFx1RDVBQ1xcdUQ1QzhcXHVENUU0IgorICAgICAgICAgICsgIlxcdUQ2MDBcXHVENjFDXFx1RDYzOFxcdUQ2NTRcXHVENjcwXFx1RDY4Q1xcdUQ2QThcXHVENkM0XFx1RDZFMCIKKyAgICAgICAgICArICJcXHVENkZDXFx1RDcxOFxcdUQ3MzRcXHVENzUwXFx1RDc2Q1xcdUQ3ODhcXHVGOTAwLVxcdUZBMERcXHVGQTEwIgorICAgICAgICAgICsgIlxcdUZBMTJcXHVGQTE1LVxcdUZBMUVcXHVGQTIwXFx1RkEyMlxcdUZBMjVcXHVGQTI2XFx1RkEyQS0iCisgICAgICAgICAgKyAiXFx1RkEyRFxcdUZBMzAtXFx1RkE2QVxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtIgorICAgICAgICAgICsgIlxcdUZCMTdcXHVGQjFELVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDEiCisgICAgICAgICAgKyAiXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEYiCisgICAgICAgICAgKyAiXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZDXFx1RkUxMC1cXHVGRTE5XFx1RkUyMC1cXHVGRTIzIgorICAgICAgICAgICsgIlxcdUZFMzAtXFx1RkU0NFxcdUZFNDctXFx1RkU1MlxcdUZFNTQtXFx1RkU2NlxcdUZFNjgtXFx1RkU2QiIKKyAgICAgICAgICArICJcXHVGRTcwLVxcdUZFNzJcXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYwMS1cXHVGRkJFXFx1RkZDMi0iCisgICAgICAgICAgKyAiXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ1xcdUZGRTAtIgorICAgICAgICAgICsgIlxcdUZGRTZcXHVGRkU4LVxcdUZGRUVcXFUwMDAxMEEwRFxcVTAwMDEwQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTAiCisgICAgICAgICAgKyAiQTNBXFxVMDAwMTBBM0ZcXFUwMDAxRDE1RS1cXFUwMDAxRDE2OVxcVTAwMDFEMTZELVxcVTAwMDFEMTcyIgorICAgICAgICAgICsgIlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS0iCisgICAgICAgICAgKyAiXFxVMDAwMUQxQURcXFUwMDAxRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDFEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMSIKKyAgICAgICAgICArICJENDAwLVxcVTAwMDFENDU0XFxVMDAwMUQ0NTYtXFxVMDAwMUQ0OUNcXFUwMDAxRDQ5RVxcVTAwMDFENDlGIgorICAgICAgICAgICsgIlxcVTAwMDFENEEyXFxVMDAwMUQ0QTVcXFUwMDAxRDRBNlxcVTAwMDFENEE5LVxcVTAwMDFENEFDXFxVMDAwMUQiCisgICAgICAgICAgKyAiNEFFLVxcVTAwMDFENEI5XFxVMDAwMUQ0QkJcXFUwMDAxRDRCRC1cXFUwMDAxRDRDM1xcVTAwMDFENEM1LSIKKyAgICAgICAgICArICJcXFUwMDAxRDUwNVxcVTAwMDFENTA3LVxcVTAwMDFENTBBXFxVMDAwMUQ1MEQtXFxVMDAwMUQ1MTRcXFUwMDAxIgorICAgICAgICAgICsgIkQ1MTYtXFxVMDAwMUQ1MUNcXFUwMDAxRDUxRS1cXFUwMDAxRDUzOVxcVTAwMDFENTNCLVxcVTAwMDFENTNFIgorICAgICAgICAgICsgIlxcVTAwMDFENTQwLVxcVTAwMDFENTQ0XFxVMDAwMUQ1NDZcXFUwMDAxRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDEiCisgICAgICAgICAgKyAiRDU1Mi1cXFUwMDAxRDZBNVxcVTAwMDFENkE4LVxcVTAwMDFEN0NCXFxVMDAwMUQ3Q0UtXFxVMDAwMUQ3RkYiCisgICAgICAgICAgKyAiXFxVMDAwMkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworICAgCisgICAgICAgIHJldHVybiBza2lwU2V0czsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2tpcHBhYmxlKCkgeworICAgICAgIFVuaWNvZGVTZXQgc3RhcnRzOworICAgICAgIFVuaWNvZGVTZXRbXSBza2lwU2V0cyA9IG5ldyBVbmljb2RlU2V0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwgLy9ORkQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLCAvL05GQworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vTkZLQworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vTkZLRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vRkNECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwgLy9OT05FCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgVW5pY29kZVNldFtdIGV4cGVjdFNldHMgPSBuZXcgVW5pY29kZVNldFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgIFN0cmluZ0J1ZmZlciBzLCBwYXR0ZXJuOworICAgICAgIGludCBzdGFydCwgbGltaXQsIHJhbmdlRW5kOworICAgICAgIGludCBpLCByYW5nZSwgY291bnQ7CisgICAgICAgc3RhcnRzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAvKgorICAgICAgIC8vW1x1MDM1MC1cdTAzNTdcdTAzNUQtXHUwMzVGXHUwNjEwLVx1MDYxNVx1MDY1Ni1cdTA2NThcdTBDQkNcdTE3RERcdTE5MzktXHUxOTNCXQorICAgICAgIGZvcihpbnQgY2g9MDtjaDw9MHgxMEZGRkY7Y2grKyl7CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTkZEKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0RdLmFkZChjaCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTkZLRCkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tLRF0uYWRkKGNoKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjaCwgTm9ybWFsaXplci5ORkMpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbQ10uYWRkKGNoKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjaCwgTm9ybWFsaXplci5ORktDKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0tDXS5hZGQoY2gpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNoLCBOb3JtYWxpemVyLkZDRCkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tGQ0RdLmFkZChjaCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTk9ORSkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tOT05FXS5hZGQoY2gpOworICAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAqLworICAgICAgIC8vIGJ1aWxkIE5GKlNraXBwYWJsZSBzZXRzIGZyb20gcnVudGltZSBkYXRhIAorICAgICAgIE5vcm1hbGl6ZXJJbXBsLmFkZFByb3BlcnR5U3RhcnRzKHN0YXJ0cyk7CisgICAgICAgY291bnQ9c3RhcnRzLmdldFJhbmdlQ291bnQoKTsKKyAgIAorICAgICAgIHN0YXJ0PWxpbWl0PTA7CisgICAgICAgcmFuZ2VFbmQ9MDsKKyAgICAgICByYW5nZT0wOworICAgICAgIGZvcig7OykgeworICAgICAgICAgICBpZihzdGFydDxsaW1pdCkgeworICAgICAgICAgICAgICAgLy8gZ2V0IHByb3BlcnRpZXMgZm9yIHN0YXJ0IGFuZCBhcHBseSB0aGVtIHRvIFtzdGFydC4ubGltaXRbIAorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5GRCkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tEXS5hZGQoc3RhcnQsIGxpbWl0LTEpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5GS0QpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbS0RdLmFkZChzdGFydCwgbGltaXQtMSk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoc3RhcnQsIE5vcm1hbGl6ZXIuTkZDKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0NdLmFkZChzdGFydCwgbGltaXQtMSk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoc3RhcnQsIE5vcm1hbGl6ZXIuTkZLQykpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tLQ10uYWRkKHN0YXJ0LCBsaW1pdC0xKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShzdGFydCwgTm9ybWFsaXplci5GQ0QpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbRkNEXS5hZGQoc3RhcnQsIGxpbWl0LTEpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5PTkUpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbTk9ORV0uYWRkKHN0YXJ0LCBsaW1pdC0xKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICB9CisgICAKKyAgICAgICAgICAgLy8gZ28gdG8gbmV4dCByYW5nZSBvZiBzYW1lIHByb3BlcnRpZXMgCisgICAgICAgICAgIHN0YXJ0PWxpbWl0OworICAgICAgICAgICBpZigrK2xpbWl0PnJhbmdlRW5kKSB7CisgICAgICAgICAgICAgICBpZihyYW5nZTxjb3VudCkgeworICAgICAgICAgICAgICAgICAgIGxpbWl0PXN0YXJ0cy5nZXRSYW5nZVN0YXJ0KHJhbmdlKTsKKyAgICAgICAgICAgICAgICAgICByYW5nZUVuZD1zdGFydHMuZ2V0UmFuZ2VFbmQocmFuZ2UpOworICAgICAgICAgICAgICAgICAgICsrcmFuZ2U7CisgICAgICAgICAgICAgICB9IGVsc2UgaWYocmFuZ2U9PWNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgLy8gYWRkaXRpb25hbCByYW5nZSB0byBjb21wbGV0ZSB0aGUgVW5pY29kZSBjb2RlIHNwYWNlIAorICAgICAgICAgICAgICAgICAgIGxpbWl0PXJhbmdlRW5kPTB4MTEwMDAwOworICAgICAgICAgICAgICAgICAgICsrcmFuZ2U7CisgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgfQorICAgCisgICAgICAgZXhwZWN0U2V0cyA9IGluaXRTa2lwcGFibGVzKGV4cGVjdFNldHMpOworICAgICAgIGlmKGV4cGVjdFNldHNbRF0uY29udGFpbnMoMHgwMzUwKSl7CisgICAgICAgICAgICBlcnJsbigiZXhwZWN0U2V0c1tEXSBjb250YWlucyAweDAzNTAiKTsKKyAgICAgICB9CisgICAgICAgLy9leHBlY3RTZXRzLmxlbmd0aCBmb3Igbm93IGRvIG5vdCB0ZXN0IEZDRCBhbmQgTk9ORSBzaW5jZSB0aGVyZSBpcyBubyBkYXRhCisgICAgICAgZm9yKGk9MDsgaTwgNDsgKytpKSB7CisKKyAgICAgICAgICAgaWYoIXNraXBTZXRzW2ldLmVxdWFscyhleHBlY3RTZXRzW2ldKSkgeworICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBUZXN0U2tpcHBhYmxlIHNraXBTZXRzWyIraSsiXSE9ZXhwZWN0ZWRTZXRzWyIraSsiXVxuIisKKyAgICAgICAgICAgICAgICAgICAgICJNYXkgbmVlZCB0byB1cGRhdGUgaGFyZGNvZGVkIFVuaWNvZGVTZXQgcGF0dGVybnMgaW4gY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplci5CYXNpY1Rlc3QuamF2YVxuIisKKyAgICAgICAgICAgICAgICAgICAgICJTZWUgSUNVNEogLSB1bmljb2RldG9vbHMuY29tLmlibS50ZXh0LlVDRC5ORlNraXBwYWJsZVxuIiArCisgICAgICAgICAgICAgICAgICAgICAiUnVuIGNvbS5pYm0udGV4dC5VQ0QuTWFpbiB3aXRoIHRoZSBvcHRpb24gTkZTa2lwcGFibGUuIik7CisgICAKKyAgICAgICAgICAgICAgIHM9bmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBzLmFwcGVuZCgiXG5cbnNraXA9ICAgICAgICIpOworICAgICAgICAgICAgICAgcy5hcHBlbmQoc2tpcFNldHNbaV0udG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuIik7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJza2lwLWV4cGVjdD0iKTsgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBwYXR0ZXJuID0gbmV3IFN0cmluZ0J1ZmZlcigoKFVuaWNvZGVTZXQpc2tpcFNldHNbaV0uY2xvbmUoKSkucmVtb3ZlQWxsKGV4cGVjdFNldHNbaV0pLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICBzLmFwcGVuZChwYXR0ZXJuKTsKKyAgIAorICAgICAgICAgICAgICAgcGF0dGVybi5kZWxldGUoMCxwYXR0ZXJuLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuZXhwZWN0LXNraXA9Iik7CisgICAgICAgICAgICAgICBwYXR0ZXJuID0gbmV3IFN0cmluZ0J1ZmZlcigoKFVuaWNvZGVTZXQpZXhwZWN0U2V0c1tpXS5jbG9uZSgpKS5yZW1vdmVBbGwoc2tpcFNldHNbaV0pLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICBzLmFwcGVuZChwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuIik7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIHBhdHRlcm4uZGVsZXRlKDAscGF0dGVybi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICBzLmFwcGVuZCgiXG5cbmludGVyc2VjdGlvbihleHBlY3Qsc2tpcCk9Iik7CisgICAgICAgICAgICAgICBVbmljb2RlU2V0IGludGVyc2VjdGlvbiAgPSAoKFVuaWNvZGVTZXQpIGV4cGVjdFNldHNbaV0uY2xvbmUoKSkucmV0YWluQWxsKHNraXBTZXRzW2ldKTsKKyAgICAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgU3RyaW5nQnVmZmVyKGludGVyc2VjdGlvbi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgICAgcy5hcHBlbmQocGF0dGVybik7CisgICAgICAgICAgICAgICBzLmFwcGVuZCgiXG5cbiIpOworICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgZXJybG4ocy50b1N0cmluZygpKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgfQorICAgICAKKyAgICAgcHVibGljIHZvaWQgVGVzdEJ1Z0oyMDY4KCl7CisgICAgICAgIFN0cmluZyBzYW1wbGUgPSAiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2ciOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzYW1wbGUpOworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcih0ZXh0LE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICB0ZXh0LnNldEluZGV4KDQpOworICAgICAgICBpZih0ZXh0LmN1cnJlbnQoKSA9PSBub3JtLmN1cnJlbnQoKSl7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBpcyBub3QgY2xvbmluZyB0aGUgVUNoYXJhY3Rlckl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICAgfSAgIAorICAgICBwdWJsaWMgdm9pZCBUZXN0R2V0Q29tYmluaW5nQ2xhc3MoKXsKKyAgICAgICAgZm9yKGludCBpPTA7aTwweDEwRkZGRjtpKyspeworICAgICAgICAgICAgaW50IGNjID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhpKTsKKyAgICAgICAgICAgIGlmKDB4RDgwMDw9IGkgJiYgaTw9MHhERkZGICYmIGNjID4wICl7CisgICAgICAgICAgICAgICAgY2MgPSBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGkpOworICAgICAgICAgICAgICAgIGVycmxuKCJDQzogIisgY2MgKyAiIGZvciBjb2RlcG9pbnQ6ICIgK1V0aWxpdHkuaGV4KGksOCkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIH0gIAorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXROWCgpeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IE5vcm1hbGl6ZXJJbXBsLmdldE5YKDEgLypOb3JtYWxpemVySW1wbC5OWF9IQU5HVUwqLyk7CisgICAgICAgIGlmKCFzZXQuY29udGFpbnMoMHhhYzAxKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0TlggZGlkIG5vdCByZXR1cm4gY29ycmVjdCBzZXQgZm9yIE5YX0hBTkdVTCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzZXQgPSBOb3JtYWxpemVySW1wbC5nZXROWCgyLypOb3JtYWxpemVySW1wbC5OWF9DSktfQ09NUEFUKi8pOworICAgICAgICBpZighc2V0LmNvbnRhaW5zKCdcdUZBMjAnKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0TlggZGlkIG5vdCByZXR1cm4gY29ycmVjdCBzZXQgZm9yIE5YX0NKS19DT01QQVQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2VyaWFsaXplZFNldCgpeworICAgICAgICBVU2VyaWFsaXplZFNldCBzc2V0PW5ldyBVU2VyaWFsaXplZFNldCgpOworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBzdGFydCwgZW5kOworICAgIAorICAgICAgICAvLyBjb2xsZWN0IGFsbCBzZXRzIGludG8gb25lIGZvciBjb250aWd1b3VzIG91dHB1dAorICAgICAgICBpbnRbXSBzdGFydEVuZCA9IG5ldyBpbnRbMl07CisKKyAgICAgICAgaWYoTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldCgweDAxMzAsIHNzZXQpKSB7CisgICAgICAgICAgICBpbnQgY291bnQ9c3NldC5jb3VudFJhbmdlcygpOworICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8Y291bnQ7ICsraikgeworICAgICAgICAgICAgICAgIHNzZXQuZ2V0UmFuZ2Uoaiwgc3RhcnRFbmQpOworICAgICAgICAgICAgICAgIHNldC5hZGQoc3RhcnRFbmRbMF0sIHN0YXJ0RW5kWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgIAorCisgICAgICAgIC8vIHRlc3QgYWxsIG9mIHRoZXNlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgICAgICB3aGlsZShpdC5uZXh0UmFuZ2UoKSAmJiBpdC5jb2RlcG9pbnQhPVVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgIHN0YXJ0PWl0LmNvZGVwb2ludDsKKyAgICAgICAgICAgIGVuZD1pdC5jb2RlcG9pbnRFbmQ7CisgICAgICAgICAgICB3aGlsZShzdGFydDw9ZW5kKSB7CisgICAgICAgICAgICAgICAgaWYoIXNzZXQuY29udGFpbnMoc3RhcnQpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVTZXJpYWxpemVkU2V0LmNvbnRhaW5zIGZhaWxlZCBmb3IgIitVdGlsaXR5LmhleChzdGFydCw4KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXR1cm5GYWlsdXJlKCl7CisgICAgICAgIGNoYXJbXSB0ZXJtID0geydyJywnXHUwMGU5JywncycsJ3UnLCdtJywnXHUwMGU5JyB9OworICAgICAgICBjaGFyW10gZGVjb21wb3NlZF90ZXJtID0gbmV3IGNoYXJbMTAgKyB0ZXJtLmxlbmd0aCArIDJdOworICAgICAgICBpbnQgcmMgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh0ZXJtLDAsdGVybS5sZW5ndGgsIGRlY29tcG9zZWRfdGVybSwwLGRlY29tcG9zZWRfdGVybS5sZW5ndGgsdHJ1ZSwgMCk7CisgICAgICAgIGludCByYzEgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh0ZXJtLDAsdGVybS5sZW5ndGgsIGRlY29tcG9zZWRfdGVybSwxMCxkZWNvbXBvc2VkX3Rlcm0ubGVuZ3RoLHRydWUsIDApOyAKKyAgICAgICAgaWYocmMhPXJjMSl7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBkZWNvbXBvc2UgZGlkIG5vdCByZXR1cm4gY29ycmVjdCBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGNsYXNzIFRlc3RDb21wb3NpdGlvbkNhc2UgeworICAgICAgICBwdWJsaWMgTm9ybWFsaXplci5Nb2RlIG1vZGU7CisgICAgICAgIHB1YmxpYyBpbnQgb3B0aW9uczsKKyAgICAgICAgcHVibGljIFN0cmluZyBpbnB1dCwgZXhwZWN0OworICAgICAgICBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTW9kZSBtb2RlLCBpbnQgb3B0aW9ucywgU3RyaW5nIGlucHV0LCBTdHJpbmcgZXhwZWN0KSB7CisgICAgICAgICAgICB0aGlzLm1vZGU9bW9kZTsKKyAgICAgICAgICAgIHRoaXMub3B0aW9ucz1vcHRpb25zOworICAgICAgICAgICAgdGhpcy5pbnB1dD1pbnB1dDsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0PWV4cGVjdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3NpdGlvbigpIHsKKyAgICAgICAgZmluYWwgVGVzdENvbXBvc2l0aW9uQ2FzZSBjYXNlc1tdPW5ldyBUZXN0Q29tcG9zaXRpb25DYXNlW117CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc3BlY2lhbCBjYXNlcyBmb3IgVUFYICMxNSBidWcKKyAgICAgICAgICAgICAqIHNlZSBVbmljb2RlIFB1YmxpYyBSZXZpZXcgSXNzdWUgIzI5CisgICAgICAgICAgICAgKiBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCNwcmkyOQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgMCwgIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyNyIsICAgICAgIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyNyIpLAorICAgICAgICAgICAgbmV3IFRlc3RDb21wb3NpdGlvbkNhc2UoTm9ybWFsaXplci5ORkMsIDAsICJcdTExMDBcdTAzMDBcdTExNjFcdTAzMjdcdTExYTgiLCJcdTExMDBcdTAzMDBcdTExNjFcdTAzMjdcdTExYTgiKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCAwLCAiXHVhYzAwXHUwMzAwXHUwMzI3XHUxMWE4IiwgICAgICAiXHVhYzAwXHUwMzI3XHUwMzAwXHUxMWE4IiksCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgMCwgIlx1MGI0N1x1MDMwMFx1MGIzZSIsICAgICAgICAgICAgIlx1MGI0N1x1MDMwMFx1MGIzZSIpLAorCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplckltcGwuQkVGT1JFX1BSSV8yOSwgIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyNyIsICAgICAgICJcdWFjMDBcdTAzMDBcdTAzMjciKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVySW1wbC5CRUZPUkVfUFJJXzI5LCAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3XHUxMWE4IiwgIlx1YWMwMVx1MDMwMFx1MDMyNyIpLAorICAgICAgICAgICAgbmV3IFRlc3RDb21wb3NpdGlvbkNhc2UoTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXJJbXBsLkJFRk9SRV9QUklfMjksICJcdWFjMDBcdTAzMDBcdTAzMjdcdTExYTgiLCAgICAgICAiXHVhYzAxXHUwMzI3XHUwMzAwIiksCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplckltcGwuQkVGT1JFX1BSSV8yOSwgIlx1MGI0N1x1MDMwMFx1MGIzZSIsICAgICAgICAgICAgICJcdTBiNGJcdTAzMDAiKQorCisgICAgICAgICAgICAvKiBUT0RPOiBhZGQgdGVzdCBjYXNlcyBmb3IgVU5PUk1fRkNDIGhlcmUgKGoyMTUxKSAqLworICAgICAgICB9OworCisgICAgICAgIFN0cmluZyBvdXRwdXQ7CisgICAgICAgIGludCBpLCBsZW5ndGg7CisKKyAgICAgICAgZm9yKGk9MDsgaTxjYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgb3V0cHV0PU5vcm1hbGl6ZXIubm9ybWFsaXplKGNhc2VzW2ldLmlucHV0LCBjYXNlc1tpXS5tb2RlLCBjYXNlc1tpXS5vcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCFvdXRwdXQuZXF1YWxzKGNhc2VzW2ldLmV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidW5leHBlY3RlZCByZXN1bHQgZm9yIGNhc2UgIitpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0NvbmZvcm1hbmNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQ29uZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTk0MGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0NvbmZvcm1hbmNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworcHVibGljIGNsYXNzIENvbmZvcm1hbmNlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIE5vcm1hbGl6ZXIgbm9ybWFsaXplcjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29uZm9ybWFuY2VUZXN0KCkgeworICAgICAgICAvLyBEb2Vzbid0IG1hdHRlciB3aGF0IHRoZSBzdHJpbmcgYW5kIG1vZGUgYXJlOyB3ZSdsbCBjaGFuZ2UKKyAgICAgICAgLy8gdGhlbSBsYXRlciBhcyBuZWVkZWQuCisgICAgICAgIG5vcm1hbGl6ZXIgPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkMsIDApOworICAgIH0KKyAgICAvLyBtb3JlIGludGVyZXN0aW5nIGNvbmZvcm1hbmNlIHRlc3QgY2FzZXMsIG5vdCBpbiB0aGUgdW5pY29kZS5vcmcgTm9ybWFsaXphdGlvblRlc3QudHh0CisgICAgc3RhdGljICBTdHJpbmdbXSBtb3JlQ2FzZXMgPXsKKyAgICAgICAgLy8gTWFya3VzIDIwMDFhdWczMAorICAgICAgICAiMDA2MSAwMzMyIDAzMDg7MDBFNCAwMzMyOzAwNjEgMDMzMiAwMzA4OzAwRTQgMDMzMjswMDYxIDAzMzIgMDMwODsgIyBNYXJrdXMgMCIsCisgICAgCisgICAgICAgIC8vIE1hcmt1cyAyMDAxb2N0MjYgLSB0ZXN0IGVkZ2UgY2FzZSBmb3IgaXRlcmF0aW9uOiBVKzBmNzMuY2M9PTAgYnV0IGRlY29tcG9zaXRpb24ubGVhZC5jYz09MTI5CisgICAgICAgICIwMDYxIDAzMDEgMEY3MzswMEUxIDBGNzEgMEY3MjswMDYxIDBGNzEgMEY3MiAwMzAxOzAwRTEgMEY3MSAwRjcyOzAwNjEgMEY3MSAwRjcyIDAzMDE7ICMgTWFya3VzIDEiCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNvbmZvcm1hbmNlIG9mIE5vcm1hbGl6ZXIgdG8KKyAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1L2NvbmZvcm1hbmNlL0RyYWZ0LVRlc3RTdWl0ZS50eHQuKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9VTklEQVRBL05vcm1hbGl6YXRpb25UZXN0LnR4dAorICAgICAqIFRoaXMgZmlsZSBtdXN0IGJlIGxvY2F0ZWQgYXQgdGhlIHBhdGggc3BlY2lmaWVkIGFzIFRFU1RfU1VJVEVfRklMRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uZm9ybWFuY2UoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBydW5Db25mb3JtYW5jZSgidW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC50eHQiLDApOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uZm9ybWFuY2VfM18yKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgcnVuQ29uZm9ybWFuY2UoInVuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QtMy4yLjAudHh0IixOb3JtYWxpemVyLlVOSUNPREVfM18yKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcnVuQ29uZm9ybWFuY2UoU3RyaW5nIGZpbGVOYW1lLCBpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW5wdXQgPSBudWxsOworICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgIFN0cmluZ1tdIGZpZWxkcyA9IG5ldyBTdHJpbmdbNV07CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBwYXNzQ291bnQgPSAwOworICAgICAgICBpbnQgZmFpbENvdW50ID0gMDsKKyAgICAgICAgVW5pY29kZVNldCBvdGhlciA9IG5ldyBVbmljb2RlU2V0KDAsIDB4MTBmZmZmKTsKKyAgICAgICAgaW50IGM9MDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlucHV0ID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcihmaWxlTmFtZSk7CisgICAgICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7OysrY291bnQpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW5wdXQucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vcmVhZCB0aGUgZXh0cmEgdGVzdCBjYXNlcworICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA+IG1vcmVDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGNvdW50ID09IG1vcmVDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbW9yZUNhc2VzW2NvdW50KytdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIEV4cGVjdCA1IGNvbHVtbnMgb2YgdGhpcyBmb3JtYXQ6CisgICAgICAgICAgICAgICAgLy8gMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsgIyA8Y29tbWVudHM+CisKKyAgICAgICAgICAgICAgICAvLyBTa2lwIGNvbW1lbnRzCisgICAgICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09ICcjJyAgfHwgbGluZS5jaGFyQXQoMCk9PSdAJykgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBQYXJzZSBvdXQgdGhlIGZpZWxkcworICAgICAgICAgICAgICAgIGhleHNwbGl0KGxpbmUsICc7JywgZmllbGRzLCBidWYpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20gdGhlICJvdGhlciIgVW5pY29kZVNldAorICAgICAgICAgICAgICAgIGlmKGZpZWxkc1swXS5sZW5ndGgoKT09VVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChmaWVsZHNbMF0sMCwgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQoZmllbGRzWzBdLDApOyAKKyAgICAgICAgICAgICAgICAgICAgaWYoMHhhYzIwPD1jICYmIGM8PTB4ZDczZikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IGFuIGV4aGF1c3RpdmUgdGVzdCBydW46IHNraXAgbW9zdCBIYW5ndWwgc3lsbGFibGVzCisgICAgICAgICAgICAgICAgICAgICAgICBpZihjPT0weGFjMjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5yZW1vdmUoMHhhYzIwLCAweGQ3M2YpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3RoZXIucmVtb3ZlKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2hlY2tDb25mb3JtYW5jZShmaWVsZHMsIGxpbmUsb3B0aW9ucykpIHsKKyAgICAgICAgICAgICAgICAgICAgKytwYXNzQ291bnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgKytmYWlsQ291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoY291bnQgJSAxMDAwKSA9PSA5OTkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkxpbmUgIiArIChjb3VudCsxKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpbnB1dC5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4MikgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb3VsZG4ndCByZWFkIGZpbGUgIgorICAgICAgICAgICAgICArIGV4LmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiAiICsgZXguZ2V0TWVzc2FnZSgpCisgICAgICAgICAgICAgICsgIiBsaW5lID0gIiArIGxpbmUKKyAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWlsQ291bnQgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlRvdGFsOiAiICsgZmFpbENvdW50ICsgIiBsaW5lcyBmYWlsZWQsICIgKworICAgICAgICAgICAgICAgICAgcGFzc0NvdW50ICsgIiBsaW5lcyBwYXNzZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUb3RhbDogIiArIHBhc3NDb3VudCArICIgbGluZXMgcGFzc2VkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBjb25mb3JtYW5jZSBvZiB0aGUgZ2l2ZW4gbGluZSBvZiB0aGUgVW5pY29kZQorICAgICAqIG5vcm1hbGl6YXRpb24gKFVUUiAxNSkgdGVzdCBzdWl0ZSBmaWxlLiAgRm9yIGVhY2ggbGluZSwKKyAgICAgKiB0aGVyZSBhcmUgZml2ZSBjb2x1bW5zLCBjb3JyZXNwb25kaW5nIHRvIGZpZWxkWzBdLi5maWVsZFs0XS4KKyAgICAgKgorICAgICAqIFRoZSBmb2xsb3dpbmcgaW52YXJpYW50cyBtdXN0IGJlIHRydWUgZm9yIGFsbCBjb25mb3JtYW50IGltcGxlbWVudGF0aW9ucworICAgICAqICBjMiA9PSBORkMoYzEpID09IE5GQyhjMikgPT0gTkZDKGMzKQorICAgICAqICBjMyA9PSBORkQoYzEpID09IE5GRChjMikgPT0gTkZEKGMzKQorICAgICAqICBjNCA9PSBORktDKGMxKSA9PSBORktDKGMyKSA9PSBORktDKGMzKSA9PSBORktDKGM0KSA9PSBORktDKGM1KQorICAgICAqICBjNSA9PSBORktEKGMxKSA9PSBORktEKGMyKSA9PSBORktEKGMzKSA9PSBORktEKGM0KSA9PSBORktEKGM1KQorICAgICAqCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSA1IGNvbHVtbnMKKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgc291cmNlIGxpbmUgZnJvbSB0aGUgdGVzdCBzdWl0ZSBmaWxlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IHBhc3NlcworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja0NvbmZvcm1hbmNlKFN0cmluZ1tdIGZpZWxkLCBTdHJpbmcgbGluZSwgaW50IG9wdGlvbnMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7IC8vIHNjcmF0Y2gKKyAgICAgICAgU3RyaW5nIG91dCxmY2Q7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIGZvciAoaT0wOyBpPDU7ICsraSkgeworICAgICAgICAgICAgaWYgKGk8MykgeworICAgICAgICAgICAgICAgIG91dCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GQywgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZDLCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkMoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMV0sICJjMiE9QyhjIiArIChpKzEpKTsKKworICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShmaWVsZFtpXSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GRCwgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzJdLCAiYzMhPUQoYyIgKyAoaSsxKSk7CisKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZELCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjcm9zcyhmaWVsZFsyXSAvKk5GRCBTdHJpbmcqLywgZmllbGRbMV0vKk5GQyBTdHJpbmcqLywgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIGNyb3NzKGZpZWxkWzFdIC8qTkZDIFN0cmluZyovLCBmaWVsZFsyXS8qTkZEIFN0cmluZyovLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShmaWVsZFtpXSwgTm9ybWFsaXplci5ORktDLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0MiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFszXSwgImM0IT1LQyhjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORktDLCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbM10sICJjNCE9S0MoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLQywgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZLQywgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZLQywgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAKKworICAgICAgICAgICAgb3V0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLRCxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEIiwgZmllbGRbaV0sIG91dCwgZmllbGRbNF0sICJjNSE9S0QoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLRCwgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY3Jvc3MoZmllbGRbNF0gLypORktEIFN0cmluZyovLCBmaWVsZFszXS8qTkZLQyBTdHJpbmcqLywgTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIGNyb3NzKGZpZWxkWzNdIC8qTkZLQyBTdHJpbmcqLywgZmllbGRbNF0vKk5GS0QgU3RyaW5nKi8sIE5vcm1hbGl6ZXIuTkZLRCk7CisgIAorICAgICAgICB9CisgICAgICAgIGNvbXBhcmUoZmllbGRbMV0sZmllbGRbMl0pOworICAgICAgICBjb21wYXJlKGZpZWxkWzBdLGZpZWxkWzFdKTsKKyAgICAgICAgY29tcGFyZShmaWVsZFswXSxmaWVsZFsyXSk7CisgICAgICAgICAvLyB0ZXN0IHF1aWNrIGNoZWNrcworICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFsxXSwgTm9ybWFsaXplci5ORkMsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GQyhzKSwgTm9ybWFsaXplci5ORkMpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFsyXSwgTm9ybWFsaXplci5ORkQsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GRChzKSwgTm9ybWFsaXplci5ORkQpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFszXSwgTm9ybWFsaXplci5ORktDLG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhORktDKHMpLCBOb3JtYWxpemVyLk5GS0MpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFs0XSwgTm9ybWFsaXplci5ORktELG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhORktEKHMpLCBOb3JtYWxpemVyLk5GS0QpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZighTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmllbGRbMV0sIE5vcm1hbGl6ZXIuTkZDLCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IGlzTm9ybWFsaXplZChORkMocyksIE5vcm1hbGl6ZXIuTkZDKSBpcyBmYWxzZSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKCFmaWVsZFswXS5lcXVhbHMoZmllbGRbMV0pICYmIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzBdLCBOb3JtYWxpemVyLk5GQywgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQocywgTm9ybWFsaXplci5ORkMpIGlzIFRSVUUiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZighTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmllbGRbM10sIE5vcm1hbGl6ZXIuTkZLQywgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQoTkZLQyhzKSwgTm9ybWFsaXplci5ORktDKSBpcyBmYWxzZSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKCFmaWVsZFswXS5lcXVhbHMoZmllbGRbM10pICYmIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzBdLCBOb3JtYWxpemVyLk5GS0MsIG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKHMsIE5vcm1hbGl6ZXIuTkZLQykgaXMgVFJVRSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgYXBpIHRoYXQgdGFrZXMgYSBjaGFyW10KKyAgICAgICAgaWYoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzFdLnRvQ2hhckFycmF5KCksMCxmaWVsZFsxXS5sZW5ndGgoKSwgTm9ybWFsaXplci5ORkMsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQoTkZDKHMpLCBOb3JtYWxpemVyLk5GQykgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IGFwaSB0aGF0IHRha2VzIGEgY29kZXBvaW50CisgICAgICAgIGlmKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChVVEYxNi5jaGFyQXQoZmllbGRbMV0sMCksIE5vcm1hbGl6ZXIuTkZDLG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKE5GQyhzKSwgTm9ybWFsaXplci5ORkMpIGlzIGZhbHNlIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBGQ0QgcXVpY2sgY2hlY2sgYW5kICJtYWtlRkNEIgorICAgICAgICBmY2Q9Tm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbMF0sIE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgaWYoTm9ybWFsaXplci5OTyA9PSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmNkLCBOb3JtYWxpemVyLkZDRCxvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soRkNEKHMpLCBOb3JtYWxpemVyLkZDRCkgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIEZDRCByZXR1cm4gbGVuZ3RoCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBmY2QyID0gbmV3IGNoYXJbIGZjZC5sZW5ndGgoKSAqIDIgXTsKKyAgICAgICAgICAgIGNoYXJbXSBzcmMgPSBmaWVsZFswXS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgaW50IGZjZExlbiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNyYywgMCwgc3JjLmxlbmd0aCwgZmNkMiwgZmNkLmxlbmd0aCgpLCBmY2QyLmxlbmd0aCxOb3JtYWxpemVyLkZDRCwgMCk7CisgICAgICAgICAgICBpZihmY2RMZW4gIT0gZmNkLmxlbmd0aCgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigibWFrZUZDRCBkaWQgbm90IHJldHVybiB0aGUgY29ycmVjdCBsZW5ndGgiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmY2QsIE5vcm1hbGl6ZXIuRkNELCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soRkNEKHMpLCBOb3JtYWxpemVyLkZDRCkgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzJdLCBOb3JtYWxpemVyLkZDRCwgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GRChzKSwgTm9ybWFsaXplci5GQ0QpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzRdLCBOb3JtYWxpemVyLkZDRCwgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GS0QocyksIE5vcm1hbGl6ZXIuRkNEKSBpcyBOb3JtYWxpemVyLk5PIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzBdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzBdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgIAorICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFsyXSksIE5vcm1hbGl6ZXIuRkNELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFsyXSksIE5vcm1hbGl6ZXIuRkNELCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAKKyAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbNF0pLCBOb3JtYWxpemVyLkZDRCwgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbNF0pLCBOb3JtYWxpemVyLkZDRCwgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgCisgICAgICAgIG91dD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShmY2QsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgaWYoIW91dC5lcXVhbHMoZmllbGRbMl0pKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogTkZEKEZDRChzKSkhPU5GRChzKSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9ICAgIAorICAgICAgICBpZiAoIXBhc3MpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbGluZSk7CisgICAgICAgIH0gICAgIAorICAgICAgICBpZihmaWVsZFswXSE9ZmllbGRbMl0pIHsKKyAgICAgICAgICAgIC8vIHR3byBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgbXVzdCB0ZXN0CisgICAgICAgICAgICAvLyBlcXVhbCB1bmRlciBhIGNhbm9uaWNhbCBjYXNlbGVzcyBtYXRjaAorICAgICAgICAgICAgLy8gc2VlIFVBWCAjMjEgQ2FzZSBNYXBwaW5ncyBhbmQgSml0dGVyYnVnIDIwMjEgYW5kCisgICAgICAgICAgICAvLyBVbmljb2RlIFRlY2huaWNhbCBDb21taXR0ZWUgbWVldGluZyBjb25zZW5zdXMgOTItQzMxCisgICAgICAgICAgICBpbnQgcmM7CisgICAgICAgICAgICBpZigocmMgPSBOb3JtYWxpemVyLmNvbXBhcmUoZmllbGRbMF0sIGZpZWxkWzJdLCAob3B0aW9uczw8Tm9ybWFsaXplci5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCl8Tm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSkhPTApeworICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIuY29tcGFyZShvcmlnaW5hbCwgTkZELCBjYXNlLWluc2Vuc2l0aXZlKSByZXR1cm5lZCAiK3JjKyIgaW5zdGVhZCBvZiAwIGZvciBlcXVhbCIpOworICAgICAgICAgICAgICAgcGFzcz1mYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHBhc3M7CisgICAgfQorICAgIC8vIHR3byBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgbXVzdCB0ZXN0CisgICAgLy8gZXF1YWwgdW5kZXIgYSBjYW5vbmljYWwgY2FzZWxlc3MgbWF0Y2gKKyAgICAvLyBzZWUgVUFYICMyMSBDYXNlIE1hcHBpbmdzIGFuZCBKaXR0ZXJidWcgMjAyMSBhbmQKKyAgICAvLyBVbmljb2RlIFRlY2huaWNhbCBDb21taXR0ZWUgbWVldGluZyBjb25zZW5zdXMgOTItQzMxCisgICAgcHJpdmF0ZSB2b2lkIGNvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIpeworICAgICAgICBpZihzMS5sZW5ndGgoKT09MSAmJiBzMi5sZW5ndGgoKT09MSl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUoVVRGMTYuY2hhckF0KHMxLDApLFVURjE2LmNoYXJBdChzMiwwKSxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKGludCxpbnQpIGZhaWxlZCBmb3IgczE6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICtVdGlsaXR5LmhleChzMSkgKyAiIHMyOiAiICsgVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgICAgIH0gICAgCisgICAgICAgIH0KKyAgICAgICAgaWYoczEubGVuZ3RoKCk9PTEgJiYgczIubGVuZ3RoKCk+MSl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUoVVRGMTYuY2hhckF0KHMxLDApLHMyLE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoaW50LFN0cmluZykgZmFpbGVkIGZvciBzMTogIgorICAgICAgICAgICAgICAgICAgICAgICAgK1V0aWxpdHkuaGV4KHMxKSArICIgczI6ICIgKyBVdGlsaXR5LmhleChzMikpOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgfQorICAgICAgICBpZihzMS5sZW5ndGgoKT4xICYmIHMyLmxlbmd0aCgpPjEpeworICAgICAgICAgICAgLy8gVE9ETzogUmUtZW5hYmxlIHRoaXMgdGVzdHMgYWZ0ZXIgVVRDIGZpeGVzIFVBWCAyMQorICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHMxLnRvQ2hhckFycmF5KCksczIudG9DaGFyQXJyYXkoKSxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKGNoYXJbXSxjaGFyW10pIGZhaWxlZCBmb3IgczE6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICtVdGlsaXR5LmhleChzMSkgKyAiIHMyOiAiICsgVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgICAgIH0gICAgCisgICAgICAgIH0gICAgCisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjcm9zcyhTdHJpbmcgczEsIFN0cmluZyBzMixOb3JtYWxpemVyLk1vZGUgbW9kZSl7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzMSxtb2RlKTsKKyAgICAgICAgaWYoIXJlc3VsdC5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgIGVycmxuKCJjcm9zcyB0ZXN0IGZhaWxlZCBzMTogIiArIFV0aWxpdHkuaGV4KHMxKSArICIgczI6ICIgCisgICAgICAgICAgICAgICAgICAgICAgICArVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEbyBhIG5vcm1hbGl6YXRpb24gdXNpbmcgdGhlIGl0ZXJhdGl2ZSBBUEkgaW4gdGhlIGdpdmVuIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gYnVmIHNjcmF0Y2ggYnVmZmVyCisgICAgICogQHBhcmFtIGRpciBlaXRoZXIgKzEgb3IgLTEKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpdGVyYXRpdmVOb3JtKFN0cmluZyBzdHIsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiwgaW50IGRpciAsaW50IG9wdGlvbnMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5vcm1hbGl6ZXIuc2V0VGV4dChzdHIpOworICAgICAgICBub3JtYWxpemVyLnNldE1vZGUobW9kZSk7CisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIG5vcm1hbGl6ZXIuc2V0T3B0aW9uKC0xLCBmYWxzZSk7ICAgICAgLy8gcmVzZXQgYWxsIG9wdGlvbnMKKyAgICAgICAgbm9ybWFsaXplci5zZXRPcHRpb24ob3B0aW9ucywgdHJ1ZSk7ICAvLyBzZXQgZGVzaXJlZCBvcHRpb25zCisKKyAgICAgICAgaW50IGNoOworICAgICAgICBpZiAoZGlyID4gMCkgeworICAgICAgICAgICAgZm9yIChjaCA9IG5vcm1hbGl6ZXIuZmlyc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgICBjaCA9IG5vcm1hbGl6ZXIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChVVEYxNi52YWx1ZU9mKGNoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGNoID0gbm9ybWFsaXplci5sYXN0KCk7IGNoICE9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAgICAgICAgICAgICAgY2ggPSBub3JtYWxpemVyLnByZXZpb3VzKCkpIHsKKyAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KDAsIFVURjE2LnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERvIGEgbm9ybWFsaXphdGlvbiB1c2luZyB0aGUgaXRlcmF0aXZlIEFQSSBpbiB0aGUgZ2l2ZW4gZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBzdHIgYSBKYXZhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHBhcmFtIGJ1ZiBzY3JhdGNoIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBkaXIgZWl0aGVyICsxIG9yIC0xCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgaXRlcmF0aXZlTm9ybShTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBzdHIsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiwgaW50IGRpcixpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbm9ybWFsaXplci5zZXRUZXh0KHN0cik7CisgICAgICAgIG5vcm1hbGl6ZXIuc2V0TW9kZShtb2RlKTsKKyAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgbm9ybWFsaXplci5zZXRPcHRpb24oLTEsIGZhbHNlKTsgICAgICAvLyByZXNldCBhbGwgb3B0aW9ucworICAgICAgICBub3JtYWxpemVyLnNldE9wdGlvbihvcHRpb25zLCB0cnVlKTsgIC8vIHNldCBkZXNpcmVkIG9wdGlvbnMKKworICAgICAgICBpbnQgY2g7CisgICAgICAgIGlmIChkaXIgPiAwKSB7CisgICAgICAgICAgICBmb3IgKGNoID0gbm9ybWFsaXplci5maXJzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7CisgICAgICAgICAgICAgICAgIGNoID0gbm9ybWFsaXplci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFVURjE2LnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoY2ggPSBub3JtYWxpemVyLmxhc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgICBjaCA9IG5vcm1hbGl6ZXIucHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoMCwgVVRGMTYudmFsdWVPZihjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gb3AgbmFtZSBvZiBub3JtYWxpemF0aW9uIGZvcm0sIGUuZy4sICJLQyIKKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgYmVpbmcgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBnb3QgdmFsdWUgcmVjZWl2ZWQKKyAgICAgKiBAcGFyYW0gZXhwIGV4cGVjdGVkIHZhbHVlCisgICAgICogQHBhcmFtIG1zZyBkZXNjcmlwdGlvbiBvZiB0aGlzIHRlc3QKKyAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGdvdCA9PSBleHAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYXNzZXJ0RXF1YWwoU3RyaW5nIG9wLCBTdHJpbmcgcywgU3RyaW5nIGdvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cCwgU3RyaW5nIG1zZykgeworICAgICAgICBpZiAoZXhwLmVxdWFscyhnb3QpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigoIiAgICAgICIgKyBtc2cgKyAiKSAiICsgb3AgKyAiKCIgKyBzICsgIik9IiArIGhleChnb3QpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwLiAiICsgaGV4KGV4cCkpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gcGllY2VzIGJhc2VkIG9uIHRoZSBnaXZlbiBkZWxpbWl0ZXIKKyAgICAgKiBjaGFyYWN0ZXIuICBUaGVuLCBwYXJzZSB0aGUgcmVzdWx0YW50IGZpZWxkcyBmcm9tIGhleCBpbnRvCisgICAgICogY2hhcmFjdGVycy4gIFRoYXQgaXMsICIwMDQwIDA0MDA7MEMwMDswODk5IiAtPiBuZXcgU3RyaW5nW10geworICAgICAqICJcdTAwNDBcdTA0MDAiLCAiXHUwQzAwIiwgIlx1MDg5OSIgfS4gIFRoZSBvdXRwdXQgaXMgYXNzdW1lZCB0bworICAgICAqIGJlIG9mIHRoZSBwcm9wZXIgbGVuZ3RoIGFscmVhZHksIGFuZCBleGFjdGx5IG91dHB1dC5sZW5ndGgKKyAgICAgKiBmaWVsZHMgYXJlIHBhcnNlZC4gIElmIHRoZXJlIGFyZSB0b28gZmV3IGFuIGV4Y2VwdGlvbiBpcworICAgICAqIHRocm93bi4gIElmIHRoZXJlIGFyZSB0b28gbWFueSB0aGUgZXh0cmFzIGFyZSBpZ25vcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZiBzY3JhdGNoIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaGV4c3BsaXQoU3RyaW5nIHMsIGNoYXIgZGVsaW1pdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gb3V0cHV0LCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGludCBpOworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgZm9yIChpPTA7IGk8b3V0cHV0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgZGVsaW0gPSBzLmluZGV4T2YoZGVsaW1pdGVyLCBwb3MpOworICAgICAgICAgICAgaWYgKGRlbGltIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1pc3NpbmcgZmllbGQgaW4gIiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gT3VyIGZpZWxkIGlzIGZyb20gcG9zLi5kZWxpbS0xLgorICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHRvSGV4ID0gcy5zdWJzdHJpbmcocG9zLGRlbGltKTsKKyAgICAgICAgICAgIHBvcyA9IGRlbGltOworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBsZW4gPSB0b0hleC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlKGluZGV4PCBsZW4peworICAgICAgICAgICAgICAgIGlmKHRvSGV4LmNoYXJBdChpbmRleCk9PScgJyl7CisgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGludCBzcGFjZVBvcyA9IHRvSGV4LmluZGV4T2YoJyAnLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHNwYWNlUG9zPT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmLHRvSGV4LnN1YnN0cmluZyhpbmRleCxsZW4pLHMpOworICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2VQb3MgPSBsZW47CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1Zix0b0hleC5zdWJzdHJpbmcoaW5kZXgsIHNwYWNlUG9zKSxzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHNwYWNlUG9zKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpIDwgMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IGZpZWxkICIgKyBpICsgIiBpbiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRwdXRbaV0gPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICsrcG9zOyAvLyBTa2lwIG92ZXIgZGVsaW0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kSW50KFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzdHJUb0hleCwgU3RyaW5nIHMpeworICAgICAgICBpbnQgaGV4ID0gSW50ZWdlci5wYXJzZUludChzdHJUb0hleCwxNik7CisgICAgICAgIGlmIChoZXggPCAwICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT3V0IG9mIHJhbmdlIGhleCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleCArICIgaW4gIiArIHMpOworICAgICAgICB9ZWxzZSBpZiAoaGV4ID4gMHhGRkZGKXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpKChoZXg+PjEwKSsweGQ3YzApKTsgCisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSgoaGV4JjB4M2ZmKXwweGRjMDApKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSBoZXgpOworICAgICAgICB9CisgICAgfQorICAgICAgICAgICAgCisgICAgLy8gU3BlY2lmaWMgdGVzdHMgZm9yIGRlYnVnZ2luZy4gIFRoZXNlIGFyZSBnZW5lcmFsbHkgZmFpbHVyZXMKKyAgICAvLyB0YWtlbiBmcm9tIHRoZSBjb25mb3JtYW5jZSBmaWxlLCBidXQgY3VsbGVkIG91dCB0byBtYWtlCisgICAgLy8gZGVidWdnaW5nIGVhc2llci4gIFRoZXNlIGNhbiBiZSBlbGltaW5hdGVkIHdpdGhvdXQgYWZmZWN0aW5nCisgICAgLy8gY292ZXJhZ2UuCisKKyAgICBwdWJsaWMgdm9pZCBfaGlkZVRlc3RDYXNlNihpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgX3Rlc3RPbmVMaW5lKCIwMzg1OzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOyIsb3B0aW9ucyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgX3Rlc3RPbmVMaW5lKFN0cmluZyBsaW5lLGludCBvcHRpb25zKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdbXSBmaWVsZHMgPSBuZXcgU3RyaW5nWzVdOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvLyBQYXJzZSBvdXQgdGhlIGZpZWxkcworICAgICAgICBoZXhzcGxpdChsaW5lLCAnOycsIGZpZWxkcywgYnVmKTsKKyAgICAgICAgY2hlY2tDb25mb3JtYW5jZShmaWVsZHMsIGxpbmUsb3B0aW9ucyk7CisgICAgfQorICAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRIYXNodGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludEhhc2h0YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4OWJlNmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRIYXNodGFibGUuamF2YQpAQCAtMCwwICsxLDM4IEBACitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSW50ZWdlciBoYXNoIHRhYmxlLiBVc2VzIEphdmEgSGFzaHRhYmxlIGZvciBub3cuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqLworIAorcHVibGljIGNsYXNzIEludEhhc2h0YWJsZSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisgICAgCisgICAgcHVibGljIEludEhhc2h0YWJsZSAoaW50IGRlZmF1bHRWYWx1ZSkgeworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcHV0KGludCBrZXksIGludCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gZGVmYXVsdFZhbHVlKSB7CisgICAgICAgICAgICB0YWJsZS5yZW1vdmUobmV3IEludGVnZXIoa2V5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0YWJsZS5wdXQobmV3IEludGVnZXIoa2V5KSwgbmV3IEludGVnZXIodmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldChpbnQga2V5KSB7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IHRhYmxlLmdldChuZXcgSW50ZWdlcihrZXkpKTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgICAgIHJldHVybiAoKEludGVnZXIpdmFsdWUpLmludFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IGRlZmF1bHRWYWx1ZTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRTdHJpbmdIYXNodGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludFN0cmluZ0hhc2h0YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmN2RlMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRTdHJpbmdIYXNodGFibGUuamF2YQpAQCAtMCwwICsxLDM4IEBACitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSW50ZWdlci1TdHJpbmcgaGFzaCB0YWJsZS4gVXNlcyBKYXZhIEhhc2h0YWJsZSBmb3Igbm93LgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKi8KKyAKK3B1YmxpYyBjbGFzcyBJbnRTdHJpbmdIYXNodGFibGUgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoQykgMTk5OC0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIFVuaWNvZGUsIEluYy4iOworICAgIAorICAgIHB1YmxpYyBJbnRTdHJpbmdIYXNodGFibGUgKFN0cmluZyBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHB1dChpbnQga2V5LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlID09IGRlZmF1bHRWYWx1ZSkgeworICAgICAgICAgICAgdGFibGUucmVtb3ZlKG5ldyBJbnRlZ2VyKGtleSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGFibGUucHV0KG5ldyBJbnRlZ2VyKGtleSksIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldChpbnQga2V5KSB7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IHRhYmxlLmdldChuZXcgSW50ZWdlcihrZXkpKTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgICAgIHJldHVybiAoU3RyaW5nKXZhbHVlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBkZWZhdWx0VmFsdWU7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTG9uZ0hhc2h0YWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTG9uZ0hhc2h0YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNWViMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Mb25nSGFzaHRhYmxlLmphdmEKQEAgLTAsMCArMSw0MCBAQAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIFVuaWNvZGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEhhc2h0YWJsZSBzdG9yaW5nIGludHMgYWRkcmVzc2VkIGJ5IGxvbmdzLiBVc2VkCisgKiBmb3Igc3RvcmluZyBvZiBjb21wb3NpdGlvbiBkYXRhLiBVc2VzIEphdmEgSGFzaHRhYmxlCisgKiBmb3Igbm93LgorICogQGF1dGhvciBWbGFkaW1pciBXZWluc3RlaW4KKyAqLworcHVibGljIGNsYXNzIExvbmdIYXNodGFibGUgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoQykgMjAwMi0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIFVuaWNvZGUsIEluYy4iOworICAgIAorICAgIHB1YmxpYyBMb25nSGFzaHRhYmxlIChpbnQgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwdXQobG9uZyBrZXksIGludCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gZGVmYXVsdFZhbHVlKSB7CisgICAgICAgICAgICB0YWJsZS5yZW1vdmUobmV3IExvbmcoa2V5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0YWJsZS5wdXQobmV3IExvbmcoa2V5KSwgbmV3IEludGVnZXIodmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldChsb25nIGtleSkgeworICAgICAgICBPYmplY3QgdmFsdWUgPSB0YWJsZS5nZXQobmV3IExvbmcoa2V5KSk7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXZhbHVlKS5pbnRWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBkZWZhdWx0VmFsdWU7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6YXRpb25Nb25rZXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemF0aW9uTW9ua2V5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNmJhYzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemF0aW9uTW9ua2V5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitwdWJsaWMgY2xhc3MgTm9ybWFsaXphdGlvbk1vbmtleVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgaW50IGxvb3BDb3VudCA9IDEwMDsKKyAgICBpbnQgbWF4Q2hhckNvdW50ID0gMjA7CisgICAgaW50IG1heENvZGVQb2ludCA9IDB4MTBmZmZmOworICAgIFJhbmRvbSByYW5kb20gPSBudWxsOyAvLyBpbml0aWFsaXplZCBpbiBnZXRUZXN0U291cmNlCisgICAgVW5pY29kZU5vcm1hbGl6ZXIgdW5pY29kZV9ORkQ7CisgICAgVW5pY29kZU5vcm1hbGl6ZXIgdW5pY29kZV9ORkM7CisgICAgVW5pY29kZU5vcm1hbGl6ZXIgdW5pY29kZV9ORktEOworICAgIFVuaWNvZGVOb3JtYWxpemVyIHVuaWNvZGVfTkZLQzsKKyAgICAKKyAgICBwdWJsaWMgTm9ybWFsaXphdGlvbk1vbmtleVRlc3QoKSB7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgTm9ybWFsaXphdGlvbk1vbmtleVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemUoKSB7CisgICAgICAgIGlmICh1bmljb2RlX05GRCA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHVuaWNvZGVfTkZEID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLkQsIHRydWUpOworICAgICAgICAgICAgICAgIHVuaWNvZGVfTkZDID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLkMsIHRydWUpOworICAgICAgICAgICAgICAgIHVuaWNvZGVfTkZLRCA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5LRCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdW5pY29kZV9ORktDID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLktDLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiTm9ybWFsaXphdGlvbiB0ZXN0cyBjb3VsZCBub3QgYmUgcnVuOiAiICsgZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICAgICAgaWYgKGlzTW9kdWxhckJ1aWxkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKG1zZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB3aGlsZSAoaSA8IGxvb3BDb3VudCkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IGdldFRlc3RTb3VyY2UoKTsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHNvdXJjZToiICsgc291cmNlKTsKKyAgICAgICAgICAgIC8vTkZECisgICAgICAgICAgICBTdHJpbmcgdW5jb2RlTm9ybSA9IHVuaWNvZGVfTkZELm5vcm1hbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgU3RyaW5nIGljdU5vcm0gPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GRChVbmljb2RlKTogIiArIHVuY29kZU5vcm0pOworICAgICAgICAgICAgbG9nbG4oIlx0TkZEKGljdTRqKSAgOiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICBpZiAoIXVuY29kZU5vcm0uZXF1YWxzKGljdU5vcm0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk5GRDogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9ORkMKKyAgICAgICAgICAgIHVuY29kZU5vcm0gPSB1bmljb2RlX05GQy5ub3JtYWxpemUoc291cmNlKTsKKyAgICAgICAgICAgIGljdU5vcm0gPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GQyhVbmljb2RlKTogIiArIHVuY29kZU5vcm0pOworICAgICAgICAgICAgbG9nbG4oIlx0TkZDKGljdTRqKSAgOiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICBpZiAoIXVuY29kZU5vcm0uZXF1YWxzKGljdU5vcm0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk5GQzogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9ORktECisgICAgICAgICAgICB1bmNvZGVOb3JtID0gdW5pY29kZV9ORktELm5vcm1hbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgaWN1Tm9ybSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0QoVW5pY29kZSk6ICIgKyB1bmNvZGVOb3JtKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0QoaWN1NGopICA6ICIgKyBpY3VOb3JtKTsKKyAgICAgICAgICAgIGlmICghdW5jb2RlTm9ybS5lcXVhbHMoaWN1Tm9ybSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTkZLRDogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9ORktDCisgICAgICAgICAgICB1bmNvZGVOb3JtID0gdW5pY29kZV9ORktDLm5vcm1hbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgaWN1Tm9ybSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0MoVW5pY29kZSk6ICIgKyB1bmNvZGVOb3JtKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0MoaWN1NGopICA6ICIgKyBpY3VOb3JtKTsKKyAgICAgICAgICAgIGlmICghdW5jb2RlTm9ybS5lcXVhbHMoaWN1Tm9ybSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTkZLQzogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIGdldFRlc3RTb3VyY2UoKSB7CisgICAgaWYgKHJhbmRvbSA9PSBudWxsKSB7CisgICAgICAgIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgIH0KKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICIiOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlIChpIDwgKHJhbmRvbS5uZXh0SW50KG1heENoYXJDb3VudCkgKyAxKSkgeworICAgICAgICAgICAgaW50IGNvZGVwb2ludCA9IHJhbmRvbS5uZXh0SW50KG1heENvZGVQb2ludCk7CisgICAgICAgICAgICAvL0VsaW1hdGUgdW5hc3NpZ25lZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICB3aGlsZSAoVUNoYXJhY3Rlci5nZXRUeXBlKGNvZGVwb2ludCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQpIHsKKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSByYW5kb20ubmV4dEludChtYXhDb2RlUG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlID0gc291cmNlICsgVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpOworICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplckJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI4ZmY5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJCdWlsZGVyLmphdmEKQEAgLTAsMCArMSw1MDcgQEAKKy8qKgorICogQnVpbGRzIHRoZSBub3JtYWxpemF0aW9uIHRhYmxlcy4gVGhpcyBpcyBhIHNlcGFyYXRlIGNsYXNzIHNvIHRoYXQgaXQKKyAqIGNhbiBiZSB1bmxvYWRlZCBvbmNlIG5vdCBuZWVkZWQuPGJyPgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIFVuaWNvZGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48YnI+CisgKiBUaGUgVW5pY29kZSBDb25zb3J0aXVtIG1ha2VzIG5vIGV4cHJlc3NlZCBvciBpbXBsaWVkIHdhcnJhbnR5IG9mIGFueQorICoga2luZCwgYW5kIGFzc3VtZXMgbm8gbGlhYmlsaXR5IGZvciBlcnJvcnMgb3Igb21pc3Npb25zLgorICogTm8gbGlhYmlsaXR5IGlzIGFzc3VtZWQgZm9yIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcworICogaW4gY29ubmVjdGlvbiB3aXRoIG9yIGFyaXNpbmcgb3V0IG9mIHRoZSB1c2Ugb2YgdGhlIGluZm9ybWF0aW9uIGhlcmUuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqIFVwZGF0ZXMgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHM6CisgKiBWbGFkaW1pciBXZWluc3RlaW4gJiBNYXJrdXMgU2NoZXJlcgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS51dGlsLkJpdFNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlVURjE2VXRpbDsKKworY2xhc3MgTm9ybWFsaXplckJ1aWxkZXIgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoQykgMTk5OC0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIFVuaWNvZGUsIEluYy4iOworCisgICAgLyoqCisgICAgICogVGVzdGluZyBmbGFncworICAgICAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gR0VORVJBVElORyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnRzIGZvciB0aGUgZGF0YSBmaWxlIHZlcnNpb24gdG8gdXNlLgorICAgICAqLworICAgIC8qc3RhdGljIGZpbmFsIGJvb2xlYW4gTkVXX1ZFUlNJT04gPSB0cnVlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBESVIgPSAiRDpcXFVuaWNvZGVEYXRhXFwiICsgKE5FV19WRVJTSU9OID8gIldvcmtpbmdHcm91cHNcXCIgOiAiIik7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFVOSURBVEFfVkVSU0lPTiA9IE5FV19WRVJTSU9OID8gIjMuMC4wZDEyIiA6ICIyLjEuOSI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBFWENMVVNJT05TX1ZFUlNJT04gPSBORVdfVkVSU0lPTiA/ICIxZDQiIDogIjEiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5JQ09ERV9EQVRBID0gRElSICsgIlVuaWNvZGVEYXRhLSIgKyBVTklEQVRBX1ZFUlNJT04gKyAiLnR4dCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NUE9TSVRJT05fRVhDTFVTSU9OUyA9IERJUiArICJDb21wb3NpdGlvbkV4Y2x1c2lvbnMtIiArIEVYQ0xVU0lPTlNfVkVSU0lPTiArIi50eHQiOworICAgICovCisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgZXhhY3RseSBvbmNlIGJ5IE5vcm1hbGl6ZXJEYXRhIHRvIGJ1aWxkIHRoZSBzdGF0aWMgZGF0YQorICAgICAqLworCisgICAgc3RhdGljIE5vcm1hbGl6ZXJEYXRhIGJ1aWxkKGJvb2xlYW4gZnVsbERhdGEpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEludEhhc2h0YWJsZSBjYW5vbmljYWxDbGFzcyA9IG5ldyBJbnRIYXNodGFibGUoMCk7CisgICAgICAgICAgICBJbnRTdHJpbmdIYXNodGFibGUgZGVjb21wb3NlID0gbmV3IEludFN0cmluZ0hhc2h0YWJsZShudWxsKTsKKyAgICAgICAgICAgIExvbmdIYXNodGFibGUgY29tcG9zZSA9IG5ldyBMb25nSGFzaHRhYmxlKE5vcm1hbGl6ZXJEYXRhLk5PVF9DT01QT1NJVEUpOworICAgICAgICAgICAgQml0U2V0IGlzQ29tcGF0aWJpbGl0eSA9IG5ldyBCaXRTZXQoKTsKKyAgICAgICAgICAgIEJpdFNldCBpc0V4Y2x1ZGVkID0gbmV3IEJpdFNldCgpOworICAgICAgICAgICAgaWYgKGZ1bGxEYXRhKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkJ1aWxkaW5nIE5vcm1hbGl6ZXIgRGF0YSBmcm9tIGZpbGUuIik7CisgICAgICAgICAgICAgICAgcmVhZEV4Y2x1c2lvbkxpc3QoaXNFeGNsdWRlZCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oaXNFeGNsdWRlZC5nZXQoMHgwMEMwKSk7CisgICAgICAgICAgICAgICAgYnVpbGREZWNvbXBvc2l0aW9uVGFibGVzKGNhbm9uaWNhbENsYXNzLCBkZWNvbXBvc2UsIGNvbXBvc2UsCisgICAgICAgICAgICAgICAgICBpc0NvbXBhdGliaWxpdHksIGlzRXhjbHVkZWQpOworICAgICAgICAgICAgfSBlbHNlIHsgICAgLy8gZm9yIHVzZSBpbiBBcHBsZXRzCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkJ1aWxkaW5nIGFicmlkZ2VkIGRhdGEuIik7CisgICAgICAgICAgICAgICAgc2V0TWluaW1hbERlY29tcChjYW5vbmljYWxDbGFzcywgZGVjb21wb3NlLCBjb21wb3NlLAorICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmlsaXR5LCBpc0V4Y2x1ZGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXcgTm9ybWFsaXplckRhdGEoY2Fub25pY2FsQ2xhc3MsIGRlY29tcG9zZSwgY29tcG9zZSwKKyAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJpbGl0eSwgaXNFeGNsdWRlZCk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEuaW8uSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDYW4ndCBsb2FkIGRhdGEgZmlsZS4iICsgZSArICIsICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQnVpbGRpbmcgRGVjb21wb3NpdGlvbiBUYWJsZXMKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJlYWRzIGV4Y2x1c2lvbiBsaXN0IGFuZCBzdG9yZXMgdGhlIGRhdGEKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHJlYWRFeGNsdXNpb25MaXN0KEJpdFNldCBpc0V4Y2x1ZGVkKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJSZWFkaW5nIEV4Y2x1c2lvbnMiKTsKKworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoInVuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLnR4dCIpOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyByZWFkIGEgbGluZSwgZGlzY2FyZGluZyBjb21tZW50cyBhbmQgYmxhbmsgbGluZXMKKworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICBpbnQgY29tbWVudCA9IGxpbmUuaW5kZXhPZignIycpOyAgICAgICAgICAgICAgICAgICAgLy8gc3RyaXAgY29tbWVudHMKKyAgICAgICAgICAgIGlmIChjb21tZW50ICE9IC0xKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMCxjb21tZW50KTsKKyAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDApIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgYmxhbmtzCisgICAgICAgICAgICBpZihsaW5lLmluZGV4T2YoJyAnKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBsaW5lLmluZGV4T2YoJyAnKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBzdG9yZSAtMSBpbiB0aGUgZXhjbHVkZWQgdGFibGUgZm9yIGVhY2ggY2hhcmFjdGVyIGhpdAorCisgICAgICAgICAgICBpbnQgdmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KGxpbmUsMTYpOworICAgICAgICAgICAgaXNFeGNsdWRlZC5zZXQodmFsdWUpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkV4Y2x1ZGluZyAiICsgaGV4KHZhbHVlKSk7CisgICAgICAgIH0KKyAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUgcmVhZGluZyBFeGNsdXNpb25zIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQnVpbGRzIGEgZGVjb21wb3NpdGlvbiB0YWJsZSBmcm9tIGEgVW5pY29kZURhdGEgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYnVpbGREZWNvbXBvc2l0aW9uVGFibGVzKAorICAgICAgSW50SGFzaHRhYmxlIGNhbm9uaWNhbENsYXNzLCBJbnRTdHJpbmdIYXNodGFibGUgZGVjb21wb3NlLAorICAgICAgTG9uZ0hhc2h0YWJsZSBjb21wb3NlLCBCaXRTZXQgaXNDb21wYXRpYmlsaXR5LCBCaXRTZXQgaXNFeGNsdWRlZCkKKyAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWRpbmcgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UiKTsKKyAgICAgICAgLy9CdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgRmlsZVJlYWRlcihVTklDT0RFX0RBVEEpLCA2NCoxMDI0KTsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKCJ1bmljb2RlL1VuaWNvZGVEYXRhLnR4dCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJGYWlsZWQgdG8gcmVhZCBVbmljb2RlRGF0YS50eHQiKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHZhbHVlOworICAgICAgICBsb25nIHBhaXI7CisgICAgICAgIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKworICAgICAgICAgICAgLy8gcmVhZCBhIGxpbmUsIGRpc2NhcmRpbmcgY29tbWVudHMgYW5kIGJsYW5rIGxpbmVzCisKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaW50IGNvbW1lbnQgPSBsaW5lLmluZGV4T2YoJyMnKTsgICAgICAgICAgICAgICAgICAgIC8vIHN0cmlwIGNvbW1lbnRzCisgICAgICAgICAgICBpZiAoY29tbWVudCAhPSAtMSkgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsY29tbWVudCk7CisgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ZXIgJiAweEZGKSA9PSAwKSBTeXN0ZW0ub3V0LnByaW50bG4oIkF0OiAiICsgbGluZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGZpbmQgdGhlIHZhbHVlcyBvZiB0aGUgcGFydGljdWxhciBmaWVsZHMgdGhhdCB3ZSBuZWVkCisgICAgICAgICAgICAvLyBTYW1wbGUgbGluZTogMDBDMDtMQVRJTiAuLi5BIEdSQVZFO0x1OzA7TDswMDQxIDAzMDA7Ozs7TjtMQVRJTiAuLi4gR1JBVkU7OzswMEUwOworCisgICAgICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAgICAgaW50IGVuZCA9IGxpbmUuaW5kZXhPZignOycpOyAvLyBjb2RlCisgICAgICAgICAgICB2YWx1ZSA9IEludGVnZXIucGFyc2VJbnQobGluZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSwxNik7CisgICAgICAgICAgICBpZiAodHJ1ZSAmJiB2YWx1ZSA9PSAnXHUwMGMwJykgeworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkZWJ1ZzogIiArIGxpbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kID0gbGluZS5pbmRleE9mKCc7JyxzdGFydD1lbmQrMSk7IC8vIG5hbWUKKyAgICAgICAgICAgIC8qU3RyaW5nIG5hbWUgPSBsaW5lLnN1YnN0cmluZyhzdGFydCxlbmQpOyovCisgICAgICAgICAgICBlbmQgPSBsaW5lLmluZGV4T2YoJzsnLHN0YXJ0PWVuZCsxKTsgLy8gZ2VuZXJhbCBjYXRlZ29yeQorICAgICAgICAgICAgZW5kID0gbGluZS5pbmRleE9mKCc7JyxzdGFydD1lbmQrMSk7IC8vIGNhbm9uaWNhbCBjbGFzcworCisgICAgICAgICAgICAvLyBjaGVjayBjb25zaXN0ZW5jeTogY2Fub25pY2FsIGNsYXNzZXMgbXVzdCBiZSBmcm9tIDAgdG8gMjU1CisKKyAgICAgICAgICAgIGludCBjYyA9IEludGVnZXIucGFyc2VJbnQobGluZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgICAgICAgICAgICBpZiAoY2MgIT0gKGNjICYgMHhGRikpIFN5c3RlbS5lcnIucHJpbnRsbigiQmFkIGNhbm9uaWNhbCBjbGFzcyBhdDogIiArIGxpbmUpOworICAgICAgICAgICAgY2Fub25pY2FsQ2xhc3MucHV0KHZhbHVlLGNjKTsKKyAgICAgICAgICAgIGVuZCA9IGxpbmUuaW5kZXhPZignOycsc3RhcnQ9ZW5kKzEpOyAvLyBCSURJCisgICAgICAgICAgICBlbmQgPSBsaW5lLmluZGV4T2YoJzsnLHN0YXJ0PWVuZCsxKTsgLy8gZGVjb21wCisKKyAgICAgICAgICAgIC8vIGRlY29tcCByZXF1aXJlcyBtb3JlIHByb2Nlc3NpbmcuCisgICAgICAgICAgICAvLyBzdG9yZSB3aGV0aGVyIGl0IGlzIGNhbm9uaWNhbCBvciBjb21wYXRpYmlsaXR5LgorICAgICAgICAgICAgLy8gc3RvcmUgdGhlIGRlY29tcCBpbiBvbmUgdGFibGUsIGFuZCB0aGUgcmV2ZXJzZSBtYXBwaW5nIChmcm9tIHBhaXJzKSBpbiBhbm90aGVyCisKKyAgICAgICAgICAgIGlmIChzdGFydCAhPSBlbmQpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc2VnbWVudCA9IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gY29tcGF0ID0gc2VnbWVudC5jaGFyQXQoMCkgPT0gJzwnOworICAgICAgICAgICAgICAgIGlmIChjb21wYXQpIGlzQ29tcGF0aWJpbGl0eS5zZXQodmFsdWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBmcm9tSGV4KHNlZ21lbnQpOworCisgICAgICAgICAgICAgICAgLy8gYSBzbWFsbCBzbmlwcGV0IG9mIGNvZGUgdG8gZ2VuZXJhdGUgdGhlIEFwcGxldCBkYXRhCisKKyAgICAgICAgICAgICAgICAvKmlmIChHRU5FUkFUSU5HKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IDB4RkYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCJcXHUiICsgaGV4KChjaGFyKXZhbHVlKSArICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlwiXFx1IiArIGhleChkZWNvbXAsICJcXHUiKSArICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGNvbXBhdCA/ICJcIktcIiwiIDogIlwiXCIsIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIvLyAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Ki8KKworICAgICAgICAgICAgICAgIC8vIGNoZWNrIGNvbnNpc3RlbmN5OiBhbGwgY2Fub24gZGVjb21wcyBtdXN0IGJlIHNpbmdsZXMgb3IgcGFpcnMhCisgICAgICAgICAgICAgICAgaW50IGRlY29tcExlbiA9IFVURjE2VXRpbC5jb3VudENvZGVQb2ludChkZWNvbXApOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXBMZW4gPCAxIHx8IGRlY29tcExlbiA+IDIgJiYgIWNvbXBhdCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkJhZCBkZWNvbXAgYXQ6ICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVjb21wb3NlLnB1dCh2YWx1ZSwgZGVjb21wKTsKKworICAgICAgICAgICAgICAgIC8vIG9ubHkgY29tcG9zaXRpb25zIGFyZSBjYW5vbmljYWwgcGFpcnMKKyAgICAgICAgICAgICAgICAvLyBza2lwIGlmIHNjcmlwdCBleGNsdXNpb24KKworICAgICAgICAgICAgICAgIGlmICghY29tcGF0ICYmICFpc0V4Y2x1ZGVkLmdldCh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZpcnN0ID0gJ1x1MDAwMCc7CisgICAgICAgICAgICAgICAgICAgIGludCBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsIDApOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVjb21wTGVuID4gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBzZWNvbmQ7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTZVdGlsLmNvZGVQb2ludExlbmd0aChmaXJzdCkpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gc3RvcmUgY29tcG9zaXRpb24gcGFpciBpbiBzaW5nbGUgaW50ZWdlcgorCisgICAgICAgICAgICAgICAgICAgIHBhaXIgPSAoKGxvbmcpZmlyc3QgPDwgMzIpIHwgc2Vjb25kOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcgJiYgdmFsdWUgPT0gJ1x1MDBDMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGVidWcyOiAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29tcG9zZS5wdXQocGFpciwgdmFsdWUpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGNsdWRpbmc6ICIgKyBkZWNvbXApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSByZWFkaW5nIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlIik7CisKKyAgICAgICAgLy8gYWRkIGFsZ29yaXRobWljIEhhbmd1bCBkZWNvbXBvc2l0aW9ucworICAgICAgICAvLyB0aGlzIGlzIG1vcmUgY29tcGFjdCBpZiBkb25lIGF0IHJ1bnRpbWUsIGJ1dCBmb3Igc2ltcGxpY2l0eSB3ZQorICAgICAgICAvLyBkbyBpdCB0aGlzIHdheS4KKworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nIEhhbmd1bCIpOworCisgICAgICAgIGZvciAoaW50IFNJbmRleCA9IDA7IFNJbmRleCA8IFNDb3VudDsgKytTSW5kZXgpIHsKKyAgICAgICAgICAgIGludCBUSW5kZXggPSBTSW5kZXggJSBUQ291bnQ7CisgICAgICAgICAgICBjaGFyIGZpcnN0LCBzZWNvbmQ7CisgICAgICAgICAgICBpZiAoVEluZGV4ICE9IDApIHsgLy8gdHJpcGxlCisgICAgICAgICAgICAgICAgZmlyc3QgPSAoY2hhcikoU0Jhc2UgKyBTSW5kZXggLSBUSW5kZXgpOworICAgICAgICAgICAgICAgIHNlY29uZCA9IChjaGFyKShUQmFzZSArIFRJbmRleCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpcnN0ID0gKGNoYXIpKExCYXNlICsgU0luZGV4IC8gTkNvdW50KTsKKyAgICAgICAgICAgICAgICBzZWNvbmQgPSAoY2hhcikoVkJhc2UgKyAoU0luZGV4ICUgTkNvdW50KSAvIFRDb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYWlyID0gKChsb25nKWZpcnN0IDw8IDMyKSB8IHNlY29uZDsKKyAgICAgICAgICAgIHZhbHVlID0gU0luZGV4ICsgU0Jhc2U7CisgICAgICAgICAgICBkZWNvbXBvc2UucHV0KHZhbHVlLCBTdHJpbmcudmFsdWVPZihmaXJzdCkgKyBzZWNvbmQpOworICAgICAgICAgICAgY29tcG9zZS5wdXQocGFpciwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIGFkZGluZyBIYW5ndWwiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5ndWwgY29tcG9zaXRpb24gY29uc3RhbnRzCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludAorICAgICAgICBTQmFzZSA9IDB4QUMwMCwgTEJhc2UgPSAweDExMDAsIFZCYXNlID0gMHgxMTYxLCBUQmFzZSA9IDB4MTFBNywKKyAgICAgICAgTENvdW50ID0gMTksIFZDb3VudCA9IDIxLCBUQ291bnQgPSAyOCwKKyAgICAgICAgTkNvdW50ID0gVkNvdW50ICogVENvdW50LCAgIC8vIDU4OAorICAgICAgICBTQ291bnQgPSBMQ291bnQgKiBOQ291bnQ7ICAgLy8gMTExNzIKKworICAgIC8qKgorICAgICAqIEZvciB1c2UgaW4gYW4gYXBwbGV0OiBqdXN0IGxvYWQgYSBtaW5pbWFsIHNldCBvZiBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgc2V0TWluaW1hbERlY29tcChJbnRIYXNodGFibGUgY2Fub25pY2FsQ2xhc3MsIEludFN0cmluZ0hhc2h0YWJsZSBkZWNvbXBvc2UsCisgICAgICBMb25nSGFzaHRhYmxlIGNvbXBvc2UsIEJpdFNldCBpc0NvbXBhdGliaWxpdHksIEJpdFNldCBpc0V4Y2x1ZGVkKSB7CisgICAgICAgIFN0cmluZ1tdIGRlY29tcG9zZURhdGEgPSB7CisgICAgICAgICAgICAiXHUwMDVFIiwgIlx1MDAyMFx1MDMwMiIsICJLIiwKKyAgICAgICAgICAgICJcdTAwNUYiLCAiXHUwMDIwXHUwMzMyIiwgIksiLAorICAgICAgICAgICAgIlx1MDA2MCIsICJcdTAwMjBcdTAzMDAiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEEwIiwgIlx1MDAyMCIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQTgiLCAiXHUwMDIwXHUwMzA4IiwgIksiLAorICAgICAgICAgICAgIlx1MDBBQSIsICJcdTAwNjEiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEFGIiwgIlx1MDAyMFx1MDMwNCIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQjIiLCAiXHUwMDMyIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCMyIsICJcdTAwMzMiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEI0IiwgIlx1MDAyMFx1MDMwMSIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQjUiLCAiXHUwM0JDIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCOCIsICJcdTAwMjBcdTAzMjciLCAiSyIsCisgICAgICAgICAgICAiXHUwMEI5IiwgIlx1MDAzMSIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQkEiLCAiXHUwMDZGIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCQyIsICJcdTAwMzFcdTIwNDRcdTAwMzQiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEJEIiwgIlx1MDAzMVx1MjA0NFx1MDAzMiIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQkUiLCAiXHUwMDMzXHUyMDQ0XHUwMDM0IiwgIksiLAorICAgICAgICAgICAgIlx1MDBDMCIsICJcdTAwNDFcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzEiLCAiXHUwMDQxXHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEMyIiwgIlx1MDA0MVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBDMyIsICJcdTAwNDFcdTAzMDMiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzQiLCAiXHUwMDQxXHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEM1IiwgIlx1MDA0MVx1MDMwQSIsICIiLAorICAgICAgICAgICAgIlx1MDBDNyIsICJcdTAwNDNcdTAzMjciLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzgiLCAiXHUwMDQ1XHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEM5IiwgIlx1MDA0NVx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBDQSIsICJcdTAwNDVcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQ0IiLCAiXHUwMDQ1XHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMENDIiwgIlx1MDA0OVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBDRCIsICJcdTAwNDlcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQ0UiLCAiXHUwMDQ5XHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMENGIiwgIlx1MDA0OVx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBEMSIsICJcdTAwNEVcdTAzMDMiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRDIiLCAiXHUwMDRGXHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEQzIiwgIlx1MDA0Rlx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBENCIsICJcdTAwNEZcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRDUiLCAiXHUwMDRGXHUwMzAzIiwgIiIsCisgICAgICAgICAgICAiXHUwMEQ2IiwgIlx1MDA0Rlx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBEOSIsICJcdTAwNTVcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwREEiLCAiXHUwMDU1XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMERCIiwgIlx1MDA1NVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBEQyIsICJcdTAwNTVcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwREQiLCAiXHUwMDU5XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEUwIiwgIlx1MDA2MVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBFMSIsICJcdTAwNjFcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTIiLCAiXHUwMDYxXHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMEUzIiwgIlx1MDA2MVx1MDMwMyIsICIiLAorICAgICAgICAgICAgIlx1MDBFNCIsICJcdTAwNjFcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTUiLCAiXHUwMDYxXHUwMzBBIiwgIiIsCisgICAgICAgICAgICAiXHUwMEU3IiwgIlx1MDA2M1x1MDMyNyIsICIiLAorICAgICAgICAgICAgIlx1MDBFOCIsICJcdTAwNjVcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTkiLCAiXHUwMDY1XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEVBIiwgIlx1MDA2NVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBFQiIsICJcdTAwNjVcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRUMiLCAiXHUwMDY5XHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEVEIiwgIlx1MDA2OVx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBFRSIsICJcdTAwNjlcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRUYiLCAiXHUwMDY5XHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEYxIiwgIlx1MDA2RVx1MDMwMyIsICIiLAorICAgICAgICAgICAgIlx1MDBGMiIsICJcdTAwNkZcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRjMiLCAiXHUwMDZGXHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEY0IiwgIlx1MDA2Rlx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBGNSIsICJcdTAwNkZcdTAzMDMiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRjYiLCAiXHUwMDZGXHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEY5IiwgIlx1MDA3NVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBGQSIsICJcdTAwNzVcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRkIiLCAiXHUwMDc1XHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMEZDIiwgIlx1MDA3NVx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBGRCIsICJcdTAwNzlcdTAzMDEiLCAiIiwKKy8vIEVYVFJBUywgb3V0c2lkZSBvZiBMYXRpbiAxCisgICAgICAgICAgICAiXHUxRUE0IiwgIlx1MDBDMlx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MUVBNSIsICJcdTAwRTJcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTFFQTYiLCAiXHUwMEMyXHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUxRUE3IiwgIlx1MDBFMlx1MDMwMCIsICIiLAorICAgICAgICB9OworCisgICAgICAgIGludFtdIGNsYXNzRGF0YSA9IHsKKyAgICAgICAgICAgIDB4MDMwMCwgMjMwLAorICAgICAgICAgICAgMHgwMzAxLCAyMzAsCisgICAgICAgICAgICAweDAzMDIsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwMywgMjMwLAorICAgICAgICAgICAgMHgwMzA0LCAyMzAsCisgICAgICAgICAgICAweDAzMDUsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwNiwgMjMwLAorICAgICAgICAgICAgMHgwMzA3LCAyMzAsCisgICAgICAgICAgICAweDAzMDgsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwOSwgMjMwLAorICAgICAgICAgICAgMHgwMzBBLCAyMzAsCisgICAgICAgICAgICAweDAzMEIsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwQywgMjMwLAorICAgICAgICAgICAgMHgwMzBELCAyMzAsCisgICAgICAgICAgICAweDAzMEUsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwRiwgMjMwLAorICAgICAgICAgICAgMHgwMzEwLCAyMzAsCisgICAgICAgICAgICAweDAzMTEsIDIzMCwKKyAgICAgICAgICAgIDB4MDMxMiwgMjMwLAorICAgICAgICAgICAgMHgwMzEzLCAyMzAsCisgICAgICAgICAgICAweDAzMTQsIDIzMCwKKyAgICAgICAgICAgIDB4MDMxNSwgMjMyLAorICAgICAgICAgICAgMHgwMzE2LCAyMjAsCisgICAgICAgICAgICAweDAzMTcsIDIyMCwKKyAgICAgICAgICAgIDB4MDMxOCwgMjIwLAorICAgICAgICAgICAgMHgwMzE5LCAyMjAsCisgICAgICAgICAgICAweDAzMUEsIDIzMiwKKyAgICAgICAgICAgIDB4MDMxQiwgMjE2LAorICAgICAgICAgICAgMHgwMzFDLCAyMjAsCisgICAgICAgICAgICAweDAzMUQsIDIyMCwKKyAgICAgICAgICAgIDB4MDMxRSwgMjIwLAorICAgICAgICAgICAgMHgwMzFGLCAyMjAsCisgICAgICAgICAgICAweDAzMjAsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyMSwgMjAyLAorICAgICAgICAgICAgMHgwMzIyLCAyMDIsCisgICAgICAgICAgICAweDAzMjMsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyNCwgMjIwLAorICAgICAgICAgICAgMHgwMzI1LCAyMjAsCisgICAgICAgICAgICAweDAzMjYsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyNywgMjAyLAorICAgICAgICAgICAgMHgwMzI4LCAyMDIsCisgICAgICAgICAgICAweDAzMjksIDIyMCwKKyAgICAgICAgICAgIDB4MDMyQSwgMjIwLAorICAgICAgICAgICAgMHgwMzJCLCAyMjAsCisgICAgICAgICAgICAweDAzMkMsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyRCwgMjIwLAorICAgICAgICAgICAgMHgwMzJFLCAyMjAsCisgICAgICAgICAgICAweDAzMkYsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzMCwgMjIwLAorICAgICAgICAgICAgMHgwMzMxLCAyMjAsCisgICAgICAgICAgICAweDAzMzIsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzMywgMjIwLAorICAgICAgICAgICAgMHgwMzM0LCAxLAorICAgICAgICAgICAgMHgwMzM1LCAxLAorICAgICAgICAgICAgMHgwMzM2LCAxLAorICAgICAgICAgICAgMHgwMzM3LCAxLAorICAgICAgICAgICAgMHgwMzM4LCAxLAorICAgICAgICAgICAgMHgwMzM5LCAyMjAsCisgICAgICAgICAgICAweDAzM0EsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzQiwgMjIwLAorICAgICAgICAgICAgMHgwMzNDLCAyMjAsCisgICAgICAgICAgICAweDAzM0QsIDIzMCwKKyAgICAgICAgICAgIDB4MDMzRSwgMjMwLAorICAgICAgICAgICAgMHgwMzNGLCAyMzAsCisgICAgICAgICAgICAweDAzNDAsIDIzMCwKKyAgICAgICAgICAgIDB4MDM0MSwgMjMwLAorICAgICAgICAgICAgMHgwMzQyLCAyMzAsCisgICAgICAgICAgICAweDAzNDMsIDIzMCwKKyAgICAgICAgICAgIDB4MDM0NCwgMjMwLAorICAgICAgICAgICAgMHgwMzQ1LCAyNDAsCisgICAgICAgICAgICAweDAzNjAsIDIzNCwKKyAgICAgICAgICAgIDB4MDM2MSwgMjM0CisgICAgICAgIH07CisKKyAgICAgICAgLy8gYnVpbGQgdGhlIHNhbWUgdGFibGVzIHdlIHdvdWxkIG90aGVyd2lzZSBnZXQgZnJvbSB0aGUKKyAgICAgICAgLy8gVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UsIGp1c3Qgd2l0aCBsaW1pdGVkIGRhdGEKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcG9zZURhdGEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBjaGFyIHZhbHVlID0gZGVjb21wb3NlRGF0YVtpXS5jaGFyQXQoMCk7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gZGVjb21wb3NlRGF0YVtpKzFdOworICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQgPSBkZWNvbXBvc2VEYXRhW2krMl0uZXF1YWxzKCJLIik7CisgICAgICAgICAgICBpZiAoY29tcGF0KSBpc0NvbXBhdGliaWxpdHkuc2V0KHZhbHVlKTsKKyAgICAgICAgICAgIGRlY29tcG9zZS5wdXQodmFsdWUsIGRlY29tcCk7CisgICAgICAgICAgICBpZiAoIWNvbXBhdCkgeworICAgICAgICAgICAgICAgIGludCBmaXJzdCA9ICdcdTAwMDAnOworICAgICAgICAgICAgICAgIGludCBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsIDApOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXAubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gc2Vjb25kOworICAgICAgICAgICAgICAgICAgICBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsCisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGZpcnN0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvbmcgcGFpciA9IChmaXJzdCA8PCAxNikgfCBzZWNvbmQ7CisgICAgICAgICAgICAgICAgY29tcG9zZS5wdXQocGFpciwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGFzc0RhdGEubGVuZ3RoOykgeworICAgICAgICAgICAgY2Fub25pY2FsQ2xhc3MucHV0KGNsYXNzRGF0YVtpKytdLCBjbGFzc0RhdGFbaSsrXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5OiBQYXJzZXMgYSBzZXF1ZW5jZSBvZiBoZXggVW5pY29kZSBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBzcGFjZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBmcm9tSGV4KFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICBjYXNlICcgJzogYnJlYWs7IC8vIGlnbm9yZQorICAgICAgICAgICAgICBjYXNlICcwJzogY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOiBjYXNlICc2JzogY2FzZSAnNyc6CisgICAgICAgICAgICAgIGNhc2UgJzgnOiBjYXNlICc5JzogY2FzZSAnQSc6IGNhc2UgJ0InOiBjYXNlICdDJzogY2FzZSAnRCc6IGNhc2UgJ0UnOiBjYXNlICdGJzoKKyAgICAgICAgICAgICAgY2FzZSAnYSc6IGNhc2UgJ2InOiBjYXNlICdjJzogY2FzZSAnZCc6IGNhc2UgJ2UnOiBjYXNlICdmJzoKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoaSwgaSArIDQpICsgIioqKioqKioqKioqKiIgKyBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBlbmQgPSBzb3VyY2UuaW5kZXhPZignICcsaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KHNvdXJjZS5zdWJzdHJpbmcoaSwgZW5kKSwxNik7CisgICAgICAgICAgICAgICAgICAgIFVURjE2VXRpbC5hcHBlbmRDb2RlUG9pbnQocmVzdWx0LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpOiAiICsgaSArICI7ZW5kOiIgKyBlbmQgKyAic291cmNlOiIgKyBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKGksIGkgKyA0KSArICIqKioqKioqKioqKioiICsgc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vaSs9IDM7IC8vIHNraXAgcmVzdCBvZiBudW1iZXIKKyAgICAgICAgICAgICAgICBpID0gZW5kOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlICc8JzogaW50IGogPSBzb3VyY2UuaW5kZXhPZignPicsaSk7IC8vIHNraXAgPC4uLj4KKyAgICAgICAgICAgICAgICBpZiAoaiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaSA9IGo7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gLy8gZWxzZSBmYWxsIHRocm91Z2gtLWVycm9yCisgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIGhleCB2YWx1ZSBpbiAiICsgc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eTogU3VwcGxpZXMgYSB6ZXJvLXBhZGRlZCBoZXggcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciAod2l0aG91dCAweCkKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBoZXgoaW50IGkpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IExvbmcudG9TdHJpbmcoaSAmIDB4RkZGRkZGRkZMLCAxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmV0dXJuICIwMDAwMDAwMCIuc3Vic3RyaW5nKHJlc3VsdC5sZW5ndGgoKSw4KSArIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5OiBTdXBwbGllcyBhIHplcm8tcGFkZGVkIGhleCByZXByZXNlbnRhdGlvbiBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyICh3aXRob3V0IDB4LCBcXHUpCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgaGV4KGNoYXIgaSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gSW50ZWdlci50b1N0cmluZyhpLCAxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmV0dXJuICIwMDAwIi5zdWJzdHJpbmcocmVzdWx0Lmxlbmd0aCgpLDQpICsgcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHk6IFN1cHBsaWVzIGEgemVyby1wYWRkZWQgaGV4IHJlcHJlc2VudGF0aW9uIG9mIGEgVW5pY29kZSBjaGFyYWN0ZXIgKHdpdGhvdXQgMHgsIFxcdSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMsIFN0cmluZyBzZXApIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoc2VwKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KHMuY2hhckF0KGkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemVyRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxODI4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemVyRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTM1IEBACitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuQml0U2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVVRGMTZVdGlsOworCisvKioKKyAqIEFjY2Vzc2VzIHRoZSBOb3JtYWxpemF0aW9uIERhdGEgdXNlZCBmb3IgRm9ybXMgQyBhbmQgRC48YnI+CisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLjxicj4KKyAqIFRoZSBVbmljb2RlIENvbnNvcnRpdW0gbWFrZXMgbm8gZXhwcmVzc2VkIG9yIGltcGxpZWQgd2FycmFudHkgb2YgYW55CisgKiBraW5kLCBhbmQgYXNzdW1lcyBubyBsaWFiaWxpdHkgZm9yIGVycm9ycyBvciBvbWlzc2lvbnMuCisgKiBObyBsaWFiaWxpdHkgaXMgYXNzdW1lZCBmb3IgaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzCisgKiBpbiBjb25uZWN0aW9uIHdpdGggb3IgYXJpc2luZyBvdXQgb2YgdGhlIHVzZSBvZiB0aGUgaW5mb3JtYXRpb24gaGVyZS4KKyAqIEBhdXRob3IgTWFyayBEYXZpcworICogVXBkYXRlcyBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50czoKKyAqIFZsYWRpbWlyIFdlaW5zdGVpbiAmIE1hcmt1cyBTY2hlcmVyCisgKi8KK3B1YmxpYyBjbGFzcyBOb3JtYWxpemVyRGF0YSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisKKyAgICAvKioKKyAgICAqIENvbnN0YW50IGZvciB1c2UgaW4gZ2V0UGFpcndpc2VDb21wb3NpdGlvbgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9UX0NPTVBPU0lURSA9ICdcdUZGRkYnOworCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgYSBjaGFyYWN0ZXIgZnJvbSB0aGUKKyAgICAqIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlLgorICAgICogQHBhcmFtICAgY2ggICAgICB0aGUgc291cmNlIGNoYXJhY3RlcgorICAgICogQHJldHVybiAgICAgICAgICB2YWx1ZSBmcm9tIDAgdG8gMjU1CisgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENhbm9uaWNhbENsYXNzKGludCBjaCkgeworICAgICAgICByZXR1cm4gY2Fub25pY2FsQ2xhc3MuZ2V0KGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybnMgdGhlIGNvbXBvc2l0ZSBvZiB0aGUgdHdvIGNoYXJhY3RlcnMuIElmIHRoZSB0d28KKyAgICAqIGNoYXJhY3RlcnMgZG9uJ3QgY29tYmluZSwgcmV0dXJucyBOT1RfQ09NUE9TSVRFLgorICAgICogQHBhcmFtICAgZmlyc3QgICBmaXJzdCBjaGFyYWN0ZXIgKGUuZy4gJ2MnKQorICAgICogQHBhcmFtICAgc2Vjb25kICBzZWNvbmQgY2hhcmFjdGVyIChlLmcuIFx1MDMyNyBjZWRpbGxhKQorICAgICogQHJldHVybiAgICAgICAgICBjb21wb3NpdGUgKGUuZy4gXHUwMEM3IGMgY2VkaWxsYSkKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UGFpcndpc2VDb21wb3NpdGlvbihpbnQgZmlyc3QsIGludCBzZWNvbmQpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBvc2UuZ2V0KCgobG9uZylmaXJzdCA8PCAzMikgfCBzZWNvbmQpOworICAgIH0KKworCisgICAgLyoqCisgICAgKiBHZXRzIHJlY3Vyc2l2ZSBkZWNvbXBvc2l0aW9uIG9mIGEgY2hhcmFjdGVyIGZyb20gdGhlCisgICAgKiBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS4KKyAgICAqIEBwYXJhbSAgIGNhbm9uaWNhbCAgICBJZiB0cnVlCisgICAgKiAgICAgICAgICAgICAgICAgIGJpdCBpcyBvbiBpbiB0aGlzIGJ5dGUsIHRoZW4gc2VsZWN0cyB0aGUgcmVjdXJzaXZlCisgICAgKiAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBvdGhlcndpc2Ugc2VsZWN0cworICAgICogICAgICAgICAgICAgICAgICB0aGUgcmVjdXJzaXZlIGNvbXBhdGliaWxpdHkgYW5kIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLgorICAgICogQHBhcmFtICAgY2ggICAgICB0aGUgc291cmNlIGNoYXJhY3RlcgorICAgICogQHBhcmFtICAgYnVmZmVyICBidWZmZXIgdG8gYmUgZmlsbGVkIHdpdGggdGhlIGRlY29tcG9zaXRpb24KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIGdldFJlY3Vyc2l2ZURlY29tcG9zaXRpb24oYm9vbGVhbiBjYW5vbmljYWwsIGludCBjaCwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBTdHJpbmcgZGVjb21wID0gZGVjb21wb3NlLmdldChjaCk7CisgICAgICAgIGlmIChkZWNvbXAgIT0gbnVsbCAmJiAhKGNhbm9uaWNhbCAmJiBpc0NvbXBhdGliaWxpdHkuZ2V0KGNoKSkpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wLmxlbmd0aCgpOyBpKz1VVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGNoKSkgeworICAgICAgICAgICAgICAgIGNoID0gVVRGMTZVdGlsLm5leHRDb2RlUG9pbnQoZGVjb21wLCBpKTsKKyAgICAgICAgICAgICAgICBnZXRSZWN1cnNpdmVEZWNvbXBvc2l0aW9uKGNhbm9uaWNhbCwgY2gsIGJ1ZmZlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAvLyBpZiBubyBkZWNvbXAsIGFwcGVuZAorICAgICAgICAgICAgVVRGMTZVdGlsLmFwcGVuZENvZGVQb2ludChidWZmZXIsIGNoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyAgICAgICAgICAgICAgICAgICBQUklWQVRFUworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIE9ubHkgYWNjZXNzZWQgYnkgTm9ybWFsaXplckJ1aWxkZXIuCisgICAgICovCisgICAgTm9ybWFsaXplckRhdGEoSW50SGFzaHRhYmxlIGNhbm9uaWNhbENsYXNzLCBJbnRTdHJpbmdIYXNodGFibGUgZGVjb21wb3NlLAorICAgICAgTG9uZ0hhc2h0YWJsZSBjb21wb3NlLCBCaXRTZXQgaXNDb21wYXRpYmlsaXR5LCBCaXRTZXQgaXNFeGNsdWRlZCkgeworICAgICAgICB0aGlzLmNhbm9uaWNhbENsYXNzID0gY2Fub25pY2FsQ2xhc3M7CisgICAgICAgIHRoaXMuZGVjb21wb3NlID0gZGVjb21wb3NlOworICAgICAgICB0aGlzLmNvbXBvc2UgPSBjb21wb3NlOworICAgICAgICB0aGlzLmlzQ29tcGF0aWJpbGl0eSA9IGlzQ29tcGF0aWJpbGl0eTsKKyAgICAgICAgdGhpcy5pc0V4Y2x1ZGVkID0gaXNFeGNsdWRlZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEp1c3QgYWNjZXNzaWJsZSBmb3IgdGVzdGluZy4KKyAgICAqLworICAgIGJvb2xlYW4gZ2V0RXhjbHVkZWQgKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGlzRXhjbHVkZWQuZ2V0KGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEp1c3QgYWNjZXNzaWJsZSBmb3IgdGVzdGluZy4KKyAgICAqLworICAgIFN0cmluZyBnZXRSYXdEZWNvbXBvc2l0aW9uTWFwcGluZyAoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gZGVjb21wb3NlLmdldChjaCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBGb3Igbm93LCBqdXN0IHVzZSBJbnRIYXNodGFibGUKKyAgICAqIFR3by1zdGFnZSB0YWJsZXMgd291bGQgYmUgdXNlZCBpbiBhbiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb24uCisgICAgKi8KKyAgICBwcml2YXRlIEludEhhc2h0YWJsZSBjYW5vbmljYWxDbGFzczsKKworICAgIC8qKgorICAgICogVGhlIG1haW4gZGF0YSB0YWJsZSBtYXBzIGNoYXJzIHRvIGEgMzItYml0IGludC4KKyAgICAqIEl0IGhvbGRzIGVpdGhlciBhIHBhaXI6IHRvcCA9IGZpcnN0LCBib3R0b20gPSBzZWNvbmQKKyAgICAqIG9yIHNpbmdsZXRvbjogdG9wID0gMCwgYm90dG9tID0gc2luZ2xlLgorICAgICogSWYgdGhlcmUgaXMgbm8gZGVjb21wb3NpdGlvbiwgdGhlIHZhbHVlIGlzIDAuCisgICAgKiBUd28tc3RhZ2UgdGFibGVzIHdvdWxkIGJlIHVzZWQgaW4gYW4gb3B0aW1pemVkIGltcGxlbWVudGF0aW9uLgorICAgICogQW4gb3B0aW1pemF0aW9uIGNvdWxkIGFsc28gbWFwIGNoYXJzIHRvIGEgc21hbGwgaW5kZXgsIHRoZW4gdXNlIHRoYXQKKyAgICAqIGluZGV4IGluIGEgc21hbGwgYXJyYXkgb2YgaW50cy4KKyAgICAqLworICAgIHByaXZhdGUgSW50U3RyaW5nSGFzaHRhYmxlIGRlY29tcG9zZTsKKworICAgIC8qKgorICAgICogTWFwcyBmcm9tIHBhaXJzIG9mIGNoYXJhY3RlcnMgdG8gc2luZ2xlLgorICAgICogSWYgdGhlcmUgaXMgbm8gZGVjb21wb3NpdGlvbiwgdGhlIHZhbHVlIGlzIE5PVF9DT01QT1NJVEUuCisgICAgKi8KKyAgICBwcml2YXRlIExvbmdIYXNodGFibGUgY29tcG9zZTsKKworICAgIC8qKgorICAgICogVGVsbHMgd2hldGhlciBkZWNvbXBvc2l0aW9uIGlzIGNhbm9uaWNhbCBvciBub3QuCisgICAgKi8KKyAgICBwcml2YXRlIEJpdFNldCBpc0NvbXBhdGliaWxpdHkgPSBuZXcgQml0U2V0KCk7CisKKyAgICAvKioKKyAgICAqIFRlbGxzIHdoZXRoZXIgY2hhcmFjdGVyIGlzIHNjcmlwdC1leGNsdWRlZCBvciBub3QuCisgICAgKiBVc2VkIG9ubHkgd2hpbGUgYnVpbGRpbmcsIGFuZCBmb3IgdGVzdGluZy4KKyAgICAqLworCisgICAgcHJpdmF0ZSBCaXRTZXQgaXNFeGNsdWRlZCA9IG5ldyBCaXRTZXQoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NThlNjc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplclJlZ3Jlc3Npb25UZXN0cy5qYXZhCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKKworcHVibGljIGNsYXNzIE5vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOb3JtYWxpemVyUmVncmVzc2lvblRlc3RzKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQ0NzIoKSB7CisgICAgICAgIC8vIHN1Ym1pdHRlcidzIHRlc3QgY2FzZQorICAgICAgICBTdHJpbmcgdGFtaWwgPSAiXHUwYjg3XHUwYmE4XHUwYmNkXHUwYmE0XHUwYmJmXHUwYmFmXHUwYmJlIjsKKyAgICAgICAgbG9nbG4oIk5vcm1hbGl6ZWQ6ICIgKyBOb3JtYWxpemVyLmlzTm9ybWFsaXplZCh0YW1pbCwgTm9ybWFsaXplci5ORkMsIDApKTsKKworICAgICAgICAvLyBtYXJrdXMncyB0ZXN0IGNhc2UKKyAgICAgICAgLy8gdGhlIGNvbWJpbmluZyBjZWRpbGxhIGNhbid0IGJlIGFwcGxpZWQgdG8gJ2InLCBzbyB0aGlzIGlzIGluIG5vcm1hbGl6ZWQgZm9ybS4KKyAgICAgICAgLy8gYnV0IHRoZSBpc05vcm1hbGl6ZWQgdGVzdCBpZGVudGlmaWVzIHRoZSBjZWRpbGxhIGFzIGEgJ21heWJlJyBhbmQgc28gdHJpZXMKKyAgICAgICAgLy8gdG8gbm9ybWFsaXplIHRoZSByZWxldmFudCBzdWJzdHJpbmcgKCJiXHUwMzI3IilhbmQgY29tcGFyZSB0aGUgcmVzdWx0IHRvIHRoZQorICAgICAgICAvLyBvcmlnaW5hbC4gIHRoZSBvcmlnaW5hbCBjb2RlIHdhcyBwYXNzaW5nIGluIHRoZSBzdGFydCBhbmQgbGVuZ3RoIG9mIHRoZQorICAgICAgICAvLyBzdWJzdHJpbmcgKDMsIDUtMyA9IDIpIGJ1dCB0aGUgY2FsbGVkIGNvZGUgd2FzIGV4cGVjdGluZyBzdGFydCBhbmQgbGltaXQuCisgICAgICAgIC8vIGl0IHN1YnRyYWN0ZWQgdGhlIHN0YXJ0IGFnYWluIHRvIGdldCB3aGF0IGl0IHRob3VnaHQgd2FzIHRoZSBsZW5ndGgsIGJ1dAorICAgICAgICAvLyBlbmRlZCB1cCB3aXRoIC0xLiAgdGhlIGxvb3Agd2FzIGluY3JlbWVudGluZyBhbiBpbmRleCBmcm9tIDAgYW5kIHRlc3RpbmcKKyAgICAgICAgLy8gYWdhaW5zdCBsZW5ndGgsIGJ1dCAwIHdhcyBuZXZlciA9PSAtMSBiZWZvcmUgaXQgd2Fsa2VkIG9mZiB0aGUgYXJyYXkgZW5kLgorCisgICAgICAgIC8vIGEgd29ya2Fyb3VuZCBpbiBsaWV1IG9mIHRoaXMgcGF0Y2ggaXMgdG8gY2F0Y2ggdGhlIGV4Y2VwdGlvbiBhbmQgYWx3YXlzCisgICAgICAgIC8vIG5vcm1hbGl6ZS4KKworICAgICAgICAvLyB0aGlzIHNob3VsZCByZXR1cm4gdHJ1ZSwgc2luY2UgdGhlIHN0cmluZyBpcyBub3JtYWxpemVkIChhbmQgaXQgc2hvdWxkCisgICAgICAgIC8vIG5vdCB0aHJvdyBhbiBleGNlcHRpb24hKQorICAgICAgICBTdHJpbmcgc2FtcGxlID0gImFhYWJcdTAzMjciOworICAgICAgICBsb2dsbigiTm9ybWFsaXplZDogIiArIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKHNhbXBsZSwgTm9ybWFsaXplci5ORkMsIDApKTsKKworICAgICAgICAvLyB0aGlzIHNob3VsZCByZXR1cm4gZmFsc2UsIHNpbmNlIHRoZSBzdHJpbmcgaXMgX25vdF8gbm9ybWFsaXplZCAoYW5kIGl0IHNob3VsZAorICAgICAgICAvLyBub3QgdGhyb3cgYW4gZXhjZXB0aW9uISkKKyAgICAgICAgU3RyaW5nIHNhbXBsZTIgPSAiYWFhY1x1MDMyNyI7CisgICAgICAgIGxvZ2xuKCJOb3JtYWxpemVkOiAiICsgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoc2FtcGxlMiwgTm9ybWFsaXplci5ORkMsIDApKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAxZWU5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIG5vcm1hbGl6ZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJCYXNpY1Rlc3QiLAorICAgICAgICAgICAgIkNvbmZvcm1hbmNlVGVzdCIsCisgICAgICAgICAgICAiVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJIiwKKyAgICAgICAgICAgICJUZXN0Q2Fub25pY2FsSXRlcmF0b3IiLAorICAgICAgICAgICAgIk5vcm1hbGl6YXRpb25Nb25rZXlUZXN0IiwKKwkgICAgIk5vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMiLAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJOb3JtYWxpemVyIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RDYW5vbmljYWxJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdENhbm9uaWNhbEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmExY2VhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RDYW5vbmljYWxJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjc2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Tb3J0ZWRTZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2Fub25pY2FsSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKworLy8gVE9ETzogZml0IGludG8gdGVzdCBmcmFtZXdvcmsKKworcHVibGljIGNsYXNzIFRlc3RDYW5vbmljYWxJdGVyYXRvciBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XX05BTUVTID0gZmFsc2U7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RDYW5vbmljYWxJdGVyYXRvcigpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyB0ZXN0QXJyYXlbXVtdID0geworICAgICAgICB7Ilx1MDBDNWRcdTAzMDdcdTAzMjciLCAiQVx1MDMwQWRcdTAzMDdcdTAzMjcsIEFcdTAzMEFkXHUwMzI3XHUwMzA3LCBBXHUwMzBBXHUxRTBCXHUwMzI3LCAiCisgICAgICAgICAgICArICJBXHUwMzBBXHUxRTExXHUwMzA3LCBcdTAwQzVkXHUwMzA3XHUwMzI3LCBcdTAwQzVkXHUwMzI3XHUwMzA3LCAiCisgICAgICAgICAgICArICJcdTAwQzVcdTFFMEJcdTAzMjcsIFx1MDBDNVx1MUUxMVx1MDMwNywgXHUyMTJCZFx1MDMwN1x1MDMyNywgIgorICAgICAgICAgICAgKyAiXHUyMTJCZFx1MDMyN1x1MDMwNywgXHUyMTJCXHUxRTBCXHUwMzI3LCBcdTIxMkJcdTFFMTFcdTAzMDcifSwKKyAgICAgICAgeyJcdTAxMGRcdTAxN0UiLCAiY1x1MDMwQ3pcdTAzMEMsIGNcdTAzMENcdTAxN0UsIFx1MDEwRHpcdTAzMEMsIFx1MDEwRFx1MDE3RSJ9LAorICAgICAgICB7InhcdTAzMDdcdTAzMjciLCAieFx1MDMwN1x1MDMyNywgeFx1MDMyN1x1MDMwNywgXHUxRThCXHUwMzI3In0sCisgICAgfTsKKyAgICAKKyAgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEV4aGF1c3RpdmUoKSB7CisgICAgICAgIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgaW50IG1peGVkQ291bnRlciA9IDA7CisgICAgICAgIGludCBsYXN0TWl4ZWRDb3VudGVyID0gLTE7CisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGl0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKCIiKTsKKyAgICAgICAgLyoKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3Igc2xvd0l0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKCIiKTsKKyAgICAgICAgc2xvd0l0LlNLSVBfWkVST1MgPSBmYWxzZTsKKyAgICAgICAgKi8KKyAgICAgICAgLy9UcmFuc2xpdGVyYXRvciBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFx1MDAyMC1cXHUwMDdGXSBuYW1lIik7CisgICAgICAgIC8vU2V0IGl0U2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgLy9TZXQgc2xvd0l0U2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gc2tpcCBjaGFyYWN0ZXJzIHdlIGtub3cgZG9uJ3QgaGF2ZSBkZWNvbXBzCisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IENoYXJhY3Rlci5VTkFTU0lHTkVEIHx8IHR5cGUgPT0gQ2hhcmFjdGVyLlBSSVZBVEVfVVNFCisgICAgICAgICAgICAgICAgfHwgdHlwZSA9PSBDaGFyYWN0ZXIuU1VSUk9HQVRFKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICgoKytjb3VudGVyICUgNTAwMCkgPT0gMCkgbG9nbG4oIlRlc3RpbmcgIiArIFV0aWxpdHkuaGV4KGksMCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgcyA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghIHNraXBJZkJlZm9yZUlDVSgzLCA0KSkgeworICAgICAgICAgICAgICAgIGNoYXJhY3RlclRlc3QocywgaSwgaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyYWN0ZXJUZXN0KHMgKyAiXHUwMzQ1IiwgaSwgaXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgVGVzdFNwZWVkKCkgeworICAgICAgICAgLy8gc2tpcCB1bmxlc3MgdmVyYm9zZQorICAgICAgICBpZiAoIWlzVmVyYm9zZSgpKSByZXR1cm4gMDsKKworICAgICAgICAgICBTdHJpbmcgcyA9ICJcdUFDMDFcdTAzNDUiOworICAgICAgICAgICAKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3Iocyk7CisgICAgICAgIGRvdWJsZSBzdGFydCwgZW5kOworICAgICAgICBpbnQgeCA9IDA7IC8vIGp1c3QgdG8ga2VlcCBjb2RlIGZyb20gb3B0aW1pemluZyBhd2F5LgorICAgICAgICBpbnQgaXRlcmF0aW9ucyA9IDEwMDAwOworICAgICAgICBkb3VibGUgc2xvd0RlbHRhID0gMDsKKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIHNsb3dJdCA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcihzKTsKKyAgICAgICAgc2xvd0l0LlNLSVBfWkVST1MgPSBmYWxzZTsKKworICAgICAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICAgICAgc2xvd0l0LnNldFNvdXJjZShzKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSBzbG93SXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIHggKz0gaXRlbS5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZG91YmxlIHNsb3dEZWx0YSA9IChlbmQtc3RhcnQpIC8gaXRlcmF0aW9uczsKKyAgICAgICAgbG9nbG4oIlNsb3cgaXRlcmF0aW9uOiAiICsgc2xvd0RlbHRhKTsKKyAgICAgICAgKi8KKworICAgICAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICAgICAgaXQuc2V0U291cmNlKHMpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICB4ICs9IGl0ZW0ubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGRvdWJsZSBmYXN0RGVsdGEgPSAoZW5kLXN0YXJ0KSAvIGl0ZXJhdGlvbnM7CisgICAgICAgIGxvZ2xuKCJGYXN0IGl0ZXJhdGlvbjogIiArIGZhc3REZWx0YSArIChzbG93RGVsdGEgIT0gMCA/ICIsICIgKyAoZmFzdERlbHRhL3Nsb3dEZWx0YSkgOiAiIikpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHJldHVybiB4OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWMoKSB7CisvLyAgICAgIFRoaXMgaXMgbm90IGludGVyZXN0aW5nIGFueW1vcmUgYXMgdGhlIGRhdGEgaXMgYWxyZWFkeSBidWlsdCAKKy8vICAgICAgYmVmb3JlaGFuZAorCisvLyAgICAgICAgY2hlY2sgYnVpbGQKKy8vICAgICAgICBVbmljb2RlU2V0IHNzID0gQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U2FmZVN0YXJ0KCk7CisvLyAgICAgICAgbG9nbG4oIlNhZmUgU3RhcnQ6ICIgKyBzcy50b1BhdHRlcm4odHJ1ZSkpOworLy8gICAgICAgIHNzID0gQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U3RhcnRzKCdhJyk7CisvLyAgICAgICAgZXhwZWN0RXF1YWwoIkNoYXJhY3RlcnMgd2l0aCAnYScgYXQgdGhlIHN0YXJ0IG9mIHRoZWlyIGRlY29tcG9zaXRpb246ICIsICIiLCBDYW5vbmljYWxJdGVyYXRvci5nZXRTdGFydHMoJ2EnKSwKKy8vICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTAwRTAtXHUwMEU1XHUwMTAxXHUwMTAzXHUwMTA1XHUwMUNFXHUwMURGXHUwMUUxXHUwMUZCIgorLy8gICAgICAgICAgICArICJcdTAyMDFcdTAyMDNcdTAyMjdcdTFFMDFcdTFFQTFcdTFFQTNcdTFFQTVcdTFFQTdcdTFFQTlcdTFFQUJcdTFFQURcdTFFQUZcdTFFQjFcdTFFQjNcdTFFQjVcdTFFQjddIikKKy8vICAgICAgICAgICAgICAgICk7CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayBwZXJtdXRlCisgICAgICAgIC8vIE5PVEU6IHdlIHVzZSBhIFRyZWVTZXQgYmVsb3cgdG8gc29ydCB0aGUgb3V0cHV0LCB3aGljaCBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBzb3J0ZWQhCisgICAgICAgIAorICAgICAgICBTZXQgcmVzdWx0cyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLnBlcm11dGUoIkFCQyIsIGZhbHNlLCByZXN1bHRzKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlNpbXBsZSBwZXJtdXRhdGlvbiAiLCAiIiwgY29sbGVjdGlvblRvU3RyaW5nKHJlc3VsdHMpLCAiQUJDLCBBQ0IsIEJBQywgQkNBLCBDQUIsIENCQSIpOworICAgICAgICAKKyAgICAgICAgLy8gdHJ5IHNhbXBsZXMKKyAgICAgICAgU29ydGVkU2V0IHNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdEFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvL2xvZ2xuKCJSZXN1bHRzIGZvcjogIiArIG5hbWUudHJhbnNsaXRlcmF0ZSh0ZXN0QXJyYXlbaV0pKTsKKyAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGl0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKHRlc3RBcnJheVtpXVswXSk7CisgICAgICAgICAgIC8vIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICAgICAgU3RyaW5nIGZpcnN0ID0gbnVsbDsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZihmaXJzdD09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIHNldC5hZGQocmVzdWx0KTsgLy8gc29ydCB0aGVtCisgICAgICAgICAgICAgICAgLy9sb2dsbigrK2NvdW50ZXIgKyAiOiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgLy9sb2dsbigiID0gIiArIG5hbWUudHJhbnNsaXRlcmF0ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGVjdEVxdWFsKGkgKyAiOiAiLCB0ZXN0QXJyYXlbaV1bMF0sIGNvbGxlY3Rpb25Ub1N0cmluZyhzZXQpLCB0ZXN0QXJyYXlbaV1bMV0pOworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGlmKCFpdC5uZXh0KCkuZXF1YWxzKGZpcnN0KSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhbm9uaWNhbEl0ZXJhdG9yLnJlc2V0KCkgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZighaXQuZ2V0U291cmNlKCkuZXF1YWxzKE5vcm1hbGl6ZXIubm9ybWFsaXplKHRlc3RBcnJheVtpXVswXSxOb3JtYWxpemVyLk5GRCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U291cmNlKCkgZG9lcyBub3QgcmV0dXJuIE5GRCBvZiBpbnB1dCBzb3VyY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBleHBlY3RFcXVhbChTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGl0ZW0sIE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1lc3NhZ2UgKyBnZXRSZWFkYWJsZShpdGVtKSk7CisgICAgICAgICAgICBlcnJsbigiXHQiICsgZ2V0UmVhZGFibGUoYSkpOworICAgICAgICAgICAgZXJybG4oIlx0IiArIGdldFJlYWRhYmxlKGIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDaGVja2VkOiAiICsgbWVzc2FnZSArIGdldFJlYWRhYmxlKGl0ZW0pKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBnZXRSZWFkYWJsZShhKSk7CisgICAgICAgICAgICBsb2dsbigiXHQiICsgZ2V0UmVhZGFibGUoYikpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vVHJhbnNsaXRlcmF0b3IgbmFtZSA9IG51bGw7CisgICAgLy9UcmFuc2xpdGVyYXRvciBoZXggPSBudWxsOworICAgICAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlYWRhYmxlKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gIm51bGwiOworICAgICAgICBTdHJpbmcgcyA9IG9iai50b1N0cmluZygpOworICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gIiI7CisgICAgICAgIC8vIHNldCB1cCBmb3IgcmVhZGFibGUgZGlzcGxheQorICAgICAgICAvL2lmIChuYW1lID09IG51bGwpIG5hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXCAtXFx1MDA3Rl0gbmFtZSIpOworICAgICAgICAvL2lmIChoZXggPT0gbnVsbCkgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFwgLVxcdTAwN0ZdIGhleCIpOworICAgICAgICByZXR1cm4gIlsiICsgKFNIT1dfTkFNRVMgPyBoZXgocykgKyAiOyAiIDogIiIpICsgaGV4KHMpICsgIl0iOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjaGFyYWN0ZXJUZXN0KFN0cmluZyBzLCBpbnQgY2gsIENhbm9uaWNhbEl0ZXJhdG9yIGl0KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ZXIgPSAwOworICAgICAgICBpbnQgbWl4ZWRDb3VudGVyID0gMDsKKyAgICAgICAgaW50IGxhc3RNaXhlZENvdW50ZXIgPSAtMTsKKyAgICAgICAgYm9vbGVhbiBnb3REZWNvbXAgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBnb3RDb21wID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZ290U291cmNlID0gZmFsc2U7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzLCBmYWxzZSk7CisgICAgICAgIFN0cmluZyBjb21wID0gTm9ybWFsaXplci5jb21wb3NlKHMsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNraXAgY2hhcmFjdGVycyB0aGF0IGRvbid0IGhhdmUgZWl0aGVyIGRlY29tcC4KKyAgICAgICAgLy8gbmVlZCBxdWljayB0ZXN0IGZvciB0aGlzIQorICAgICAgICBpZiAocy5lcXVhbHMoZGVjb21wKSAmJiBzLmVxdWFscyhjb21wKSkgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgaXQuc2V0U291cmNlKHMpOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaWYgKGl0ZW0uZXF1YWxzKHMpKSBnb3RTb3VyY2UgPSB0cnVlOworICAgICAgICAgICAgaWYgKGl0ZW0uZXF1YWxzKGRlY29tcCkpIGdvdERlY29tcCA9IHRydWU7CisgICAgICAgICAgICBpZiAoaXRlbS5lcXVhbHMoY29tcCkpIGdvdENvbXAgPSB0cnVlOworICAgICAgICAgICAgaWYgKChtaXhlZENvdW50ZXIgJiAweDdGKSA9PSAwICYmIChjaCA8IDB4QUQwMCB8fCBjaCA+IDB4QUMwMCArIDExMTcyKSkgeworICAgICAgICAgICAgICAgIGlmIChsYXN0TWl4ZWRDb3VudGVyICE9IG1peGVkQ291bnRlcikgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgICAgICAgICAgICAgIGxhc3RNaXhlZENvdW50ZXIgPSBtaXhlZENvdW50ZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBtaXhlZENvdW50ZXIgKyAiXHQiICsgaGV4KGl0ZW0pCisgICAgICAgICAgICAgICAgKyAoaXRlbS5lcXVhbHMocykgPyAiXHQoKm9yaWdpbmFsKikiIDogIiIpCisgICAgICAgICAgICAgICAgKyAoaXRlbS5lcXVhbHMoZGVjb21wKSA/ICJcdCgqZGVjb21wKikiIDogIiIpCisgICAgICAgICAgICAgICAgKyAoaXRlbS5lcXVhbHMoY29tcCkgPyAiXHQoKmNvbXAqKSIgOiAiIikKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGNoZWNrIHRoYXQgemVyb3Mgb3B0aW1pemF0aW9uIGRvZXNuJ3QgbWVzcyB1cC4KKyAgICAgICAgLyoKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgICAgICBpdFNldC5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICBpdFNldC5hZGQoaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzbG93SXQuc2V0U291cmNlKHMpOworICAgICAgICAgICAgc2xvd0l0U2V0LmNsZWFyKCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gc2xvd0l0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICBzbG93SXRTZXQuYWRkKGl0ZW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpdFNldC5lcXVhbHMoc2xvd0l0U2V0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJaZXJvIG9wdGltaXphdGlvbiBmYWlsdXJlIHdpdGggIiArIGdldFJlYWRhYmxlKHMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgbWl4ZWRDb3VudGVyKys7CisgICAgICAgIGlmICghZ290U291cmNlIHx8ICFnb3REZWNvbXAgfHwgIWdvdENvbXApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIENhbm9uaWNhbEl0ZXJhdG9yOiAiICsgcyArICIgZGVjb21wOiAiICtkZWNvbXArIiBjb21wOiAiK2NvbXApOworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGZvcihTdHJpbmcgaXRlbT1pdC5uZXh0KCk7aXRlbSE9bnVsbDtpdGVtPWl0Lm5leHQoKSl7CisgICAgICAgICAgICAgICAgZXJyKGl0ZW0gKyAiICAgICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIiIpOyAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgY29sbGVjdGlvblRvU3RyaW5nKENvbGxlY3Rpb24gY29sKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gY29sLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgIT0gMCkgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDc5MTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJLmphdmEKQEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db21wb3NlZENoYXJJdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworCitwdWJsaWMgY2xhc3MgVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJIGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgU3RyaW5nW10gdGVtcEFyZ3MgPSBuZXcgU3RyaW5nW2FyZ3MubGVuZ3RoXTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAvLyBBbGxvdyB0aGUgdGVzdCB0byBiZSBwb2ludGVkIGF0IGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgVW5pY29kZSBkYXRhYmFzZQorICAgICAgICAvL2ZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykKKyAgICAgICAgLy97CisgICAgICAgIC8vICAgIGlmIChhcmdzW2ldLmVxdWFscygiLWRhdGEiKSkgeworICAgICAgICAvLyAgICAgICAgdGVtcEluZm8gPSBuZXcgVUluZm8oYXJnc1srK2ldLCBhcmdzWysraV0pOworICAgICAgICAvLyAgICB9IGVsc2UgeworICAgICAgICAvLyAgICAgICAgdGVtcEFyZ3NbY291bnQrK10gPSBhcmdzW2ldOworICAgICAgICAvLyAgICB9CisgICAgICAgIC8vfQorCisgICAgICAgIGFyZ3MgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wQXJncywgMCwgYXJncywgMCwgY291bnQpOworCisKKworICAgICAgICBuZXcgVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemVyQVBJKCl7CisgICAgICAgICAvLyBpbnN0YW50aWF0ZSBhIE5vcm1hbGl6ZXIgZnJvbSBhIENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICAgIFN0cmluZyBzPVV0aWxpdHkudW5lc2NhcGUoImFcdTAzMDhcdWFjMDBcXFUwMDAyZjgwMCIpOworICAgICAgICAvLyBtYWtlIHMgYSBiaXQgbG9uZ2VyIGFuZCBtb3JlIGludGVyZXN0aW5nCisgICAgICAgIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHMrcyk7CisgICAgICAgIC8vdGVzdCBkZXByZWNhdGVkIGNvbnN0cnVjdG9ycworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcihpdGVyLCBOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgTm9ybWFsaXplciBub3JtMiA9IG5ldyBOb3JtYWxpemVyKHMsTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgIGlmKG5vcm0ubmV4dCgpIT0weGU0KSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikubmV4dCgpIik7CisgICAgICAgIH0gICAgICAgCisgICAgICAgIC8vIHRlc3QgY2xvbmUoKSwgPT0sIGFuZCBoYXNoQ29kZSgpCisgICAgICAgIE5vcm1hbGl6ZXIgY2xvbmU9KE5vcm1hbGl6ZXIpbm9ybS5jbG9uZSgpOworICAgICAgICBpZihjbG9uZS5nZXRCZWdpbkluZGV4KCkhPSBub3JtLmdldEJlZ2luSW5kZXgoKSl7CisgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmdldEJlZ2luSW5kZXgoKSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZihjbG9uZS5nZXRFbmRJbmRleCgpIT0gbm9ybS5nZXRFbmRJbmRleCgpKXsKKyAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuZ2V0RW5kSW5kZXgoKSIpOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3Qgc2V0T3B0aW9uKCkgYW5kIGdldE9wdGlvbigpCisgICAgICAgIGNsb25lLnNldE9wdGlvbigweGFhMDAwMCwgdHJ1ZSk7CisgICAgICAgIGNsb25lLnNldE9wdGlvbigweDIwMDAwLCBmYWxzZSk7CisgICAgICAgIGlmKGNsb25lLmdldE9wdGlvbigweDg4MDAwMCkgPT0wfHwgY2xvbmUuZ2V0T3B0aW9uKDB4MjAwMDApPT0xKSB7CisgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpzZXRPcHRpb24oKSBvciBOb3JtYWxpemVyOjpnZXRPcHRpb24oKSIpOworICAgICAgICB9CisgICAgICAgIC8vdGVzdCBkZXByZWNhdGVkIG5vcm1hbGl6ZSBtZXRob2QKKyAgICAgICAgTm9ybWFsaXplci5ub3JtYWxpemUocyxOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgY29tcG9zZSBtZXRob2QKKyAgICAgICAgTm9ybWFsaXplci5jb21wb3NlKHMsZmFsc2UsMCk7CisgICAgICAgIC8vdGVzdCBkZXByZWNhdGVkIGRlY29tcG9zZSBtZXRob2QKKyAgICAgICAgTm9ybWFsaXplci5kZWNvbXBvc2UocyxmYWxzZSwwKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biB0aHJvdWdoIGFsbCBvZiB0aGUgY2hhcmFjdGVycyByZXR1cm5lZCBieSBhIGNvbXBvc2VkLWNoYXIgaXRlcmF0b3IKKyAgICAgKiBhbmQgbWFrZSBzdXJlIHRoYXQ6CisgICAgICogPHVsPgorICAgICAqIDxsaT5hKSBUaGV5IGRvIGluZGVlZCBoYXZlIGRlY29tcG9zaXRpb25zLgorICAgICAqIDxsaT5iKSBUaGUgZGVjb21wb3NpdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGl0ZXJhdG9yIGlzIHRoZSBzYW1lIGFzCisgICAgICogICAgICAgICAgcmV0dXJuZWQgYnkgTm9ybWFsaXplci5kZWNvbXBvc2UoKS4KKyAgICAgKiA8bGk+YykgQWxsIGNoYXJhY3RlcnMgPGVtPm5vdDwvZW0+IHJldHVybmVkIGJ5IHRoZSBpdGVyYXRvciBkbyBub3QKKyAgICAgKiAgICAgICAgICBoYXZlIGRlY29tcG9zaXRpb25zLgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2VkQ2hhckl0ZXIoKSB7CisgICAgICAgIGRvVGVzdENvbXBvc2VkQ2hhcnMoZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRvVGVzdENvbXBvc2VkQ2hhcnMoYm9vbGVhbiBjb21wYXQpIHsKKyAgICAgICAgaW50IG9wdGlvbnMgPSBOb3JtYWxpemVyLklHTk9SRV9IQU5HVUw7CisgICAgICAgIENvbXBvc2VkQ2hhckl0ZXIgaXRlciA9IG5ldyBDb21wb3NlZENoYXJJdGVyKGNvbXBhdCwgb3B0aW9ucyk7CisKKyAgICAgICAgY2hhciBsYXN0Q2hhciA9IDA7CisKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gaXRlci5uZXh0KCk7CisKKyAgICAgICAgICAgIC8vIFRlc3QgYWxsIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUgbGFzdCBvbmUgYW5kIHRoaXMgb25lIHRvIG1ha2UKKyAgICAgICAgICAgIC8vIHN1cmUgdGhhdCB0aGV5IGRvbid0IGhhdmUgZGVjb21wb3NpdGlvbnMKKyAgICAgICAgICAgIGFzc2VydE5vRGVjb21wKGxhc3RDaGFyLCBjaCwgY29tcGF0LCBvcHRpb25zKTsKKyAgICAgICAgICAgIGxhc3RDaGFyID0gY2g7CisKKyAgICAgICAgICAgIC8vIE5vdyBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb21wb3NpdGlvbnMgZm9yIHRoaXMgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBtYWtlIHNlbnNlCisgICAgICAgICAgICBTdHJpbmcgY2hTdHJpbmcgICA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoY2gpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBTdHJpbmcgaXRlckRlY29tcCA9IGl0ZXIuZGVjb21wb3NpdGlvbigpOworICAgICAgICAgICAgU3RyaW5nIG5vcm1EZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZShjaFN0cmluZywgY29tcGF0KTsKKworICAgICAgICAgICAgaWYgKGl0ZXJEZWNvbXAuZXF1YWxzKGNoU3RyaW5nKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogIiArIGhleChjaCkgKyAiIGhhcyBpZGVudGljYWwgZGVjb21wIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICghaXRlckRlY29tcC5lcXVhbHMobm9ybURlY29tcCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IE5vcm1hbGl6ZXIgZGVjb21wIGZvciAiICsgaGV4KGNoKSArICIgKCIgKyBoZXgobm9ybURlY29tcCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiICE9IGl0ZXIgZGVjb21wICgiICsgaGV4KGl0ZXJEZWNvbXApICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0Tm9EZWNvbXAobGFzdENoYXIsICdcdUZGRkYnLCBjb21wYXQsIG9wdGlvbnMpOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0Tm9EZWNvbXAoY2hhciBzdGFydCwgY2hhciBsaW1pdCwgYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgZm9yIChjaGFyIHggPSArK3N0YXJ0OyB4IDwgbGltaXQ7IHgrKykgeworICAgICAgICAgICAgU3RyaW5nIHhTdHJpbmcgICA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoeCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh4U3RyaW5nLCBjb21wYXQpOworICAgICAgICAgICAgaWYgKCFkZWNvbXAuZXF1YWxzKHhTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiAiICsgaGV4KHgpICsgIiBoYXMgZGVjb21wb3NpdGlvbiAoIiArIGhleChkZWNvbXApICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgd2FzIG5vdCByZXR1cm5lZCBieSBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRUcmlwKCkgeworICAgICAgICBpbnQgb3B0aW9ucyA9IE5vcm1hbGl6ZXIuSUdOT1JFX0hBTkdVTDsKKyAgICAgICAgYm9vbGVhbiBjb21wYXQgPSBmYWxzZTsKKworICAgICAgICBDb21wb3NlZENoYXJJdGVyIGl0ZXIgPSBuZXcgQ29tcG9zZWRDaGFySXRlcihmYWxzZSwgb3B0aW9ucyk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgY2hhciBjaCA9IGl0ZXIubmV4dCgpOworCisgICAgICAgICAgICBTdHJpbmcgY2hTdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCkuYXBwZW5kKGNoKS50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGNoU3RyLCBjb21wYXQpOworICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBOb3JtYWxpemVyLmNvbXBvc2UoZGVjb21wLCBjb21wYXQpOworCisgICAgICAgICAgICBpbnQgY0NsYXNzID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhkZWNvbXAuY2hhckF0KDApKTsKKyAgICAgICAgICAgIGNDbGFzcyA9IDA7CisKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVySW1wbC5pc0Z1bGxDb21wb3NpdGlvbkV4Y2x1c2lvbihjaCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiU2tpcHBlZCBleGNsdWRlZCBjaGFyICIgKyBoZXgoY2gpICsgIiAoIiArIFVDaGFyYWN0ZXIuZ2V0TmFtZShjaCkgKyAiKSIgKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQXZvaWQgZGlzcGFyYWdlZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpZiAoZ2V0RGVjb21wb3NpdGlvbihjaCxjb21wYXQpLmxlbmd0aCgpID09IDQpIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoIWNvbXAuZXF1YWxzKGNoU3RyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmQgdHJpcCBpbnZhbGlkOiAiICsgaGV4KGNoU3RyKSArICIgLS0+ICIgKyBoZXgoZGVjb21wKQorICAgICAgICAgICAgICAgICAgICArICIgLS0+ICIgKyBoZXgoY29tcCkpOworCisgICAgICAgICAgICAgICAgZXJybG4oIiAgY2hhciBkZWNvbXAgaXMgJyIgKyBnZXREZWNvbXBvc2l0aW9uKGNoLGNvbXBhdCkgKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nIGdldERlY29tcG9zaXRpb24oY2hhciBjaCwgYm9vbGVhbiBjb21wYXQpeworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyWzEwXTsgICAKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmdldERlY29tcG9zaXRpb24oY2gsY29tcGF0LGRlc3QsMCxkZXN0Lmxlbmd0aCk7ICAgCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRlc3QsMCxsZW5ndGgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1NjBkYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplci5qYXZhCkBAIC0wLDAgKzEsMTg1IEBACisvKioKKyAqIEltcGxlbWVudHMgVW5pY29kZSBOb3JtYWxpemF0aW9uIEZvcm1zIEMsIEQsIEtDLCBLRC48YnI+CisgKiBTZWUgVVRSIzE1IGZvciBkZXRhaWxzLjxicj4KKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBVbmljb2RlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPGJyPgorICogVGhlIFVuaWNvZGUgQ29uc29ydGl1bSBtYWtlcyBubyBleHByZXNzZWQgb3IgaW1wbGllZCB3YXJyYW50eSBvZiBhbnkKKyAqIGtpbmQsIGFuZCBhc3N1bWVzIG5vIGxpYWJpbGl0eSBmb3IgZXJyb3JzIG9yIG9taXNzaW9ucy4KKyAqIE5vIGxpYWJpbGl0eSBpcyBhc3N1bWVkIGZvciBpbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMKKyAqIGluIGNvbm5lY3Rpb24gd2l0aCBvciBhcmlzaW5nIG91dCBvZiB0aGUgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBoZXJlLgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKiBVcGRhdGVzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzOgorICogVmxhZGltaXIgV2VpbnN0ZWluICYgTWFya3VzIFNjaGVyZXIKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5VVEYxNlV0aWw7CisKK3B1YmxpYyBjbGFzcyBVbmljb2RlTm9ybWFsaXplciB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBub3JtYWxpemVyIGZvciBhIGdpdmVuIGZvcm0uCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVOb3JtYWxpemVyKGJ5dGUgZm9ybSwgYm9vbGVhbiBmdWxsRGF0YSkgeworICAgICAgICB0aGlzLmZvcm0gPSBmb3JtOworICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSBkYXRhID0gTm9ybWFsaXplckJ1aWxkZXIuYnVpbGQoZnVsbERhdGEpOyAvLyBsb2FkIDFzdCB0aW1lCisgICAgfQorCisgICAgLyoqCisgICAgKiBNYXNrcyBmb3IgdGhlIGZvcm0gc2VsZWN0b3IKKyAgICAqLworICAgIHN0YXRpYyBmaW5hbCBieXRlCisgICAgICAgIENPTVBBVElCSUxJVFlfTUFTSyA9IDEsCisgICAgICAgIENPTVBPU0lUSU9OX01BU0sgPSAyOworCisgICAgLyoqCisgICAgKiBOb3JtYWxpemF0aW9uIEZvcm0gU2VsZWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZQorICAgICAgICBEID0gMCAsCisgICAgICAgIEMgPSBDT01QT1NJVElPTl9NQVNLLAorICAgICAgICBLRCA9IENPTVBBVElCSUxJVFlfTUFTSywKKyAgICAgICAgS0MgPSAoYnl0ZSkoQ09NUEFUSUJJTElUWV9NQVNLICsgQ09NUE9TSVRJT05fTUFTSyk7CisKKyAgICAvKioKKyAgICAqIE5vcm1hbGl6ZXMgdGV4dCBhY2NvcmRpbmcgdG8gdGhlIGNob3NlbiBmb3JtLAorICAgICogcmVwbGFjaW5nIGNvbnRlbnRzIG9mIHRoZSB0YXJnZXQgYnVmZmVyLgorICAgICogQHBhcmFtICAgc291cmNlICAgICAgdGhlIG9yaWdpbmFsIHRleHQsIHVubm9ybWFsaXplZAorICAgICogQHBhcmFtICAgdGFyZ2V0ICAgICAgdGhlIHJlc3VsdGluZyBub3JtYWxpemVkIHRleHQKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgbm9ybWFsaXplKFN0cmluZyBzb3VyY2UsIFN0cmluZ0J1ZmZlciB0YXJnZXQpIHsKKworICAgICAgICAvLyBGaXJzdCBkZWNvbXBvc2UgdGhlIHNvdXJjZSBpbnRvIHRhcmdldCwKKyAgICAgICAgLy8gdGhlbiBjb21wb3NlIGlmIHRoZSBmb3JtIHJlcXVpcmVzLgorCisgICAgICAgIGlmIChzb3VyY2UubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgaW50ZXJuYWxEZWNvbXBvc2Uoc291cmNlLCB0YXJnZXQpOworICAgICAgICAgICAgaWYgKChmb3JtICYgQ09NUE9TSVRJT05fTUFTSykgIT0gMCkgeworICAgICAgICAgICAgICAgIGludGVybmFsQ29tcG9zZSh0YXJnZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBOb3JtYWxpemVzIHRleHQgYWNjb3JkaW5nIHRvIHRoZSBjaG9zZW4gZm9ybQorICAgICogQHBhcmFtICAgc291cmNlICAgICAgdGhlIG9yaWdpbmFsIHRleHQsIHVubm9ybWFsaXplZAorICAgICogQHJldHVybiAgdGFyZ2V0ICAgICAgdGhlIHJlc3VsdGluZyBub3JtYWxpemVkIHRleHQKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbm9ybWFsaXplKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzb3VyY2UsIG5ldyBTdHJpbmdCdWZmZXIoKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vICAgICAgICAgICAgICAgICAgUFJJVkFURVMKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGhlIGN1cnJlbnQgZm9ybS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgZm9ybTsKKworICAgIC8qKgorICAgICogRGVjb21wb3NlcyB0ZXh0LCBlaXRoZXIgY2Fub25pY2FsIG9yIGNvbXBhdGliaWxpdHksCisgICAgKiByZXBsYWNpbmcgY29udGVudHMgb2YgdGhlIHRhcmdldCBidWZmZXIuCisgICAgKiBAcGFyYW0gICBmb3JtICAgICAgICB0aGUgbm9ybWFsaXphdGlvbiBmb3JtLiBJZiBDT01QQVRJQklMSVRZX01BU0sKKyAgICAqICAgICAgICAgICAgICAgICAgICAgIGJpdCBpcyBvbiBpbiB0aGlzIGJ5dGUsIHRoZW4gc2VsZWN0cyB0aGUgcmVjdXJzaXZlCisgICAgKiAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24sIG90aGVyd2lzZSBzZWxlY3RzCisgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVjdXJzaXZlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLgorICAgICogQHBhcmFtICAgc291cmNlICAgICAgdGhlIG9yaWdpbmFsIHRleHQsIHVubm9ybWFsaXplZAorICAgICogQHBhcmFtICAgdGFyZ2V0ICAgICAgdGhlIHJlc3VsdGluZyBub3JtYWxpemVkIHRleHQKKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbnRlcm5hbERlY29tcG9zZShTdHJpbmcgc291cmNlLCBTdHJpbmdCdWZmZXIgdGFyZ2V0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gY2Fub25pY2FsID0gKGZvcm0gJiBDT01QQVRJQklMSVRZX01BU0spID09IDA7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgY2ggPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChzb3VyY2UsIGkpOworICAgICAgICAgICAgaSs9VVRGMTZVdGlsLmNvZGVQb2ludExlbmd0aChjaCk7CisgICAgICAgICAgICBkYXRhLmdldFJlY3Vyc2l2ZURlY29tcG9zaXRpb24oY2Fub25pY2FsLCBjaCwgYnVmZmVyKTsKKworICAgICAgICAgICAgLy8gYWRkIGFsbCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgZGVjb21wb3NpdGlvbi4KKyAgICAgICAgICAgIC8vIChtYXkgYmUganVzdCB0aGUgb3JpZ2luYWwgY2hhcmFjdGVyLCBpZiB0aGVyZSB3YXMKKyAgICAgICAgICAgIC8vIG5vIGRlY29tcG9zaXRpb24gbWFwcGluZykKKworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBidWZmZXIubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICAgICAgY2ggPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChidWZmZXIsIGopOworICAgICAgICAgICAgICAgIGorPVVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoY2gpOworICAgICAgICAgICAgICAgIGludCBjaENsYXNzID0gZGF0YS5nZXRDYW5vbmljYWxDbGFzcyhjaCk7CisgICAgICAgICAgICAgICAgaW50IGsgPSB0YXJnZXQubGVuZ3RoKCk7IC8vIGluc2VydGlvbiBwb2ludAorICAgICAgICAgICAgICAgIGlmIChjaENsYXNzICE9IDApIHsKKworICAgICAgICAgICAgICAgICAgICAvLyBidWJibGUtc29ydCBjb21iaW5pbmcgbWFya3MgYXMgbmVjZXNzYXJ5CisKKyAgICAgICAgICAgICAgICAgICAgaW50IGNoMjsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7IGsgPiAwOyBrIC09IFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoY2gyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2gyID0gVVRGMTZVdGlsLnByZXZDb2RlUG9pbnQodGFyZ2V0LCBrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmdldENhbm9uaWNhbENsYXNzKGNoMikgPD0gY2hDbGFzcykgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVRGMTZVdGlsLmluc2VydENvZGVQb2ludCh0YXJnZXQsIGssIGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogQ29tcG9zZXMgdGV4dCBpbiBwbGFjZS4gVGFyZ2V0IG11c3QgYWxyZWFkeQorICAgICogaGF2ZSBiZWVuIGRlY29tcG9zZWQuCisgICAgKiBAcGFyYW0gICB0YXJnZXQgICAgICBpbnB1dDogZGVjb21wb3NlZCB0ZXh0LgorICAgICogICAgICAgICAgICAgICAgICAgICAgb3V0cHV0OiB0aGUgcmVzdWx0aW5nIG5vcm1hbGl6ZWQgdGV4dC4KKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbnRlcm5hbENvbXBvc2UoU3RyaW5nQnVmZmVyIHRhcmdldCkgeworCisgICAgICAgIGludCBzdGFydGVyUG9zID0gMDsKKyAgICAgICAgaW50IHN0YXJ0ZXJDaCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KHRhcmdldCwwKTsKKyAgICAgICAgaW50IGNvbXBQb3MgPSBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKHN0YXJ0ZXJDaCk7CisgICAgICAgIGludCBsYXN0Q2xhc3MgPSBkYXRhLmdldENhbm9uaWNhbENsYXNzKHN0YXJ0ZXJDaCk7CisgICAgICAgIGlmIChsYXN0Q2xhc3MgIT0gMCkgbGFzdENsYXNzID0gMjU2OyAvLyBmaXggZm9yIGlycmVndWxhciBjb21iaW5pbmcgc2VxdWVuY2UKKworICAgICAgICAvLyBMb29wIG9uIHRoZSBkZWNvbXBvc2VkIGNoYXJhY3RlcnMsIGNvbWJpbmluZyB3aGVyZSBwb3NzaWJsZQorCisgICAgICAgIGZvciAoaW50IGRlY29tcFBvcyA9IFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoc3RhcnRlckNoKTsgZGVjb21wUG9zIDwgdGFyZ2V0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KHRhcmdldCwgZGVjb21wUG9zKTsKKyAgICAgICAgICAgIGRlY29tcFBvcyArPSBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGNoKTsKKyAgICAgICAgICAgIGludCBjaENsYXNzID0gZGF0YS5nZXRDYW5vbmljYWxDbGFzcyhjaCk7CisgICAgICAgICAgICBpbnQgY29tcG9zaXRlID0gZGF0YS5nZXRQYWlyd2lzZUNvbXBvc2l0aW9uKHN0YXJ0ZXJDaCwgY2gpOworICAgICAgICAgICAgaWYgKGNvbXBvc2l0ZSAhPSBOb3JtYWxpemVyRGF0YS5OT1RfQ09NUE9TSVRFCisgICAgICAgICAgICAmJiAobGFzdENsYXNzIDwgY2hDbGFzcyB8fCBsYXN0Q2xhc3MgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICBVVEYxNlV0aWwuc2V0Q29kZVBvaW50QXQodGFyZ2V0LCBzdGFydGVyUG9zLCBjb21wb3NpdGUpOworICAgICAgICAgICAgICAgIHN0YXJ0ZXJDaCA9IGNvbXBvc2l0ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGNoQ2xhc3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydGVyUG9zID0gY29tcFBvczsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnRlckNoICA9IGNoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0Q2xhc3MgPSBjaENsYXNzOworICAgICAgICAgICAgICAgIGRlY29tcFBvcyArPSBVVEYxNlV0aWwuc2V0Q29kZVBvaW50QXQodGFyZ2V0LCBjb21wUG9zLCBjaCk7CisgICAgICAgICAgICAgICAgY29tcFBvcyArPSBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0YXJnZXQuc2V0TGVuZ3RoKGNvbXBQb3MpOworICAgIH0KKworICAgIC8qKgorICAgICogQ29udGFpbnMgbm9ybWFsaXphdGlvbiBkYXRhIGZyb20gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlLgorICAgICogdXNlIGZhbHNlIGZvciB0aGUgbWluaW1hbCBzZXQsIHRydWUgZm9yIHRoZSByZWFsIHNldC4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE5vcm1hbGl6ZXJEYXRhIGRhdGEgPSBudWxsOworCisgICAgLyoqCisgICAgKiBKdXN0IGFjY2Vzc2libGUgZm9yIHRlc3RpbmcuCisgICAgKi8KKyAgICBib29sZWFuIGdldEV4Y2x1ZGVkIChjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBkYXRhLmdldEV4Y2x1ZGVkKGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEp1c3QgYWNjZXNzaWJsZSBmb3IgdGVzdGluZy4KKyAgICAqLworICAgIFN0cmluZyBnZXRSYXdEZWNvbXBvc2l0aW9uTWFwcGluZyAoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gZGF0YS5nZXRSYXdEZWNvbXBvc2l0aW9uTWFwcGluZyhjaCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyQ29uZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NTk2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworCitwdWJsaWMgY2xhc3MgVW5pY29kZU5vcm1hbGl6ZXJDb25mb3JtYW5jZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBVbmljb2RlTm9ybWFsaXplciBub3JtYWxpemVyX0MsIG5vcm1hbGl6ZXJfRCwgbm9ybWFsaXplcl9LQywgbm9ybWFsaXplcl9LRDsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVW5pY29kZU5vcm1hbGl6ZXJDb25mb3JtYW5jZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdCgpIHsKKyAgICAgICAgLy8gRG9lc24ndCBtYXR0ZXIgd2hhdCB0aGUgc3RyaW5nIGFuZCBtb2RlIGFyZTsgd2UnbGwgY2hhbmdlCisgICAgICAgIC8vIHRoZW0gbGF0ZXIgYXMgbmVlZGVkLgorICAgICAgICBub3JtYWxpemVyX0MgPSBuZXcgVW5pY29kZU5vcm1hbGl6ZXIoVW5pY29kZU5vcm1hbGl6ZXIuQywgdHJ1ZSk7CisgICAgICAgIG5vcm1hbGl6ZXJfRCA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5ELCBmYWxzZSk7CisgICAgICAgIG5vcm1hbGl6ZXJfS0MgPSBuZXcgVW5pY29kZU5vcm1hbGl6ZXIoVW5pY29kZU5vcm1hbGl6ZXIuS0MsIGZhbHNlKTsKKyAgICAgICAgbm9ybWFsaXplcl9LRCA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5LRCwgZmFsc2UpOworICAgICAgICAKKyAgICB9CisgICAgLy8gbW9yZSBpbnRlcmVzdGluZyBjb25mb3JtYW5jZSB0ZXN0IGNhc2VzLCBub3QgaW4gdGhlIHVuaWNvZGUub3JnIE5vcm1hbGl6YXRpb25UZXN0LnR4dAorICAgIHN0YXRpYyAgU3RyaW5nW10gbW9yZUNhc2VzID17CisgICAgICAgIC8vIE1hcmt1cyAyMDAxYXVnMzAKKyAgICAgICAgIjAwNjEgMDMzMiAwMzA4OzAwRTQgMDMzMjswMDYxIDAzMzIgMDMwODswMEU0IDAzMzI7MDA2MSAwMzMyIDAzMDg7ICMgTWFya3VzIDAiLAorICAgIAorICAgICAgICAvLyBNYXJrdXMgMjAwMW9jdDI2IC0gdGVzdCBlZGdlIGNhc2UgZm9yIGl0ZXJhdGlvbjogVSswZjczLmNjPT0wIGJ1dCBkZWNvbXBvc2l0aW9uLmxlYWQuY2M9PTEyOQorICAgICAgICAiMDA2MSAwMzAxIDBGNzM7MDBFMSAwRjcxIDBGNzI7MDA2MSAwRjcxIDBGNzIgMDMwMTswMEUxIDBGNzEgMEY3MjswMDYxIDBGNzEgMEY3MiAwMzAxOyAjIE1hcmt1cyAxIgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBjb25mb3JtYW5jZSBvZiBOZXdOb3JtYWxpemVyIHRvCisgICAgICogaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS9jb25mb3JtYW5jZS9EcmFmdC1UZXN0U3VpdGUudHh0LgorICAgICAqIFRoaXMgZmlsZSBtdXN0IGJlIGxvY2F0ZWQgYXQgdGhlIHBhdGggc3BlY2lmaWVkIGFzIFRFU1RfU1VJVEVfRklMRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uZm9ybWFuY2UoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbnB1dCA9IG51bGw7CisgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgU3RyaW5nW10gZmllbGRzID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHBhc3NDb3VudCA9IDA7CisgICAgICAgIGludCBmYWlsQ291bnQgPSAwOworICAgICAgICBVbmljb2RlU2V0IG90aGVyID0gbmV3IFVuaWNvZGVTZXQoMCwgMHgxMGZmZmYpOworICAgICAgICBpbnQgYz0wOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKCJ1bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dCIpOworICAgICAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOzsrK2NvdW50KSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvL3JlYWQgdGhlIGV4dHJhIHRlc3QgY2FzZXMKKyAgICAgICAgICAgICAgICAgICAgaWYoY291bnQgPiBtb3JlQ2FzZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb3VudCA9PSBtb3JlQ2FzZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgZG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IG1vcmVDYXNlc1tjb3VudCsrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBFeHBlY3QgNSBjb2x1bW5zIG9mIHRoaXMgZm9ybWF0OgorICAgICAgICAgICAgICAgIC8vIDFFMEM7MUUwQzswMDQ0IDAzMjM7MUUwQzswMDQ0IDAzMjM7ICMgPGNvbW1lbnRzPgorCisgICAgICAgICAgICAgICAgLy8gU2tpcCBjb21tZW50cworICAgICAgICAgICAgICAgIGlmIChsaW5lLmNoYXJBdCgwKSA9PSAnIycgIHx8IGxpbmUuY2hhckF0KDApPT0nQCcpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gUGFyc2Ugb3V0IHRoZSBmaWVsZHMKKyAgICAgICAgICAgICAgICBoZXhzcGxpdChsaW5lLCAnOycsIGZpZWxkcywgYnVmKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSZW1vdmUgYSBzaW5nbGUgY29kZSBwb2ludCBmcm9tIHRoZSAib3RoZXIiIFVuaWNvZGVTZXQKKyAgICAgICAgICAgICAgICBpZihmaWVsZHNbMF0ubGVuZ3RoKCk9PVVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoZmllbGRzWzBdLDAsIDEpKSB7CisgICAgICAgICAgICAgICAgICAgIGM9VVRGMTYuY2hhckF0KGZpZWxkc1swXSwwKTsgCisgICAgICAgICAgICAgICAgICAgIGlmKDB4YWMyMDw9YyAmJiBjPD0weGQ3M2YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBhbiBleGhhdXN0aXZlIHRlc3QgcnVuOiBza2lwIG1vc3QgSGFuZ3VsIHN5bGxhYmxlcworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09MHhhYzIwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIucmVtb3ZlKDB4YWMyMCwgMHhkNzNmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG90aGVyLnJlbW92ZShjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoZWNrQ29uZm9ybWFuY2UoZmllbGRzLCBsaW5lKSkgeworICAgICAgICAgICAgICAgICAgICArK3Bhc3NDb3VudDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICArK2ZhaWxDb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChjb3VudCAlIDEwMDApID09IDk5OSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiTGluZSAiICsgKGNvdW50KzEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvdWxkbid0IHJlYWQgZmlsZSAiCisgICAgICAgICAgICAgICsgZXguZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyBleC5nZXRNZXNzYWdlKCkKKyAgICAgICAgICAgICAgKyAiIGxpbmUgPSAiICsgbGluZQorICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhaWxDb3VudCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVG90YWw6ICIgKyBmYWlsQ291bnQgKyAiIGxpbmVzIGZhaWxlZCwgIiArCisgICAgICAgICAgICAgICAgICBwYXNzQ291bnQgKyAiIGxpbmVzIHBhc3NlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlRvdGFsOiAiICsgcGFzc0NvdW50ICsgIiBsaW5lcyBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvbmZvcm1hbmNlIG9mIHRoZSBnaXZlbiBsaW5lIG9mIHRoZSBVbmljb2RlCisgICAgICogbm9ybWFsaXphdGlvbiAoVVRSIDE1KSB0ZXN0IHN1aXRlIGZpbGUuICBGb3IgZWFjaCBsaW5lLAorICAgICAqIHRoZXJlIGFyZSBmaXZlIGNvbHVtbnMsIGNvcnJlc3BvbmRpbmcgdG8gZmllbGRbMF0uLmZpZWxkWzRdLgorICAgICAqCisgICAgICogVGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQgaW1wbGVtZW50YXRpb25zCisgICAgICogIGMyID09IE5GQyhjMSkgPT0gTkZDKGMyKSA9PSBORkMoYzMpCisgICAgICogIGMzID09IE5GRChjMSkgPT0gTkZEKGMyKSA9PSBORkQoYzMpCisgICAgICogIGM0ID09IE5GS0MoYzEpID09IE5GS0MoYzIpID09IE5GS0MoYzMpID09IE5GS0MoYzQpID09IE5GS0MoYzUpCisgICAgICogIGM1ID09IE5GS0QoYzEpID09IE5GS0QoYzIpID09IE5GS0QoYzMpID09IE5GS0QoYzQpID09IE5GS0QoYzUpCisgICAgICoKKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIDUgY29sdW1ucworICAgICAqIEBwYXJhbSBsaW5lIHRoZSBzb3VyY2UgbGluZSBmcm9tIHRoZSB0ZXN0IHN1aXRlIGZpbGUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgcGFzc2VzCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrQ29uZm9ybWFuY2UoU3RyaW5nW10gZmllbGQsIFN0cmluZyBsaW5lKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBib29sZWFuIHBhc3MgPSB0cnVlOworICAgICAgIC8vIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7IC8vIHNjcmF0Y2gKKyAgICAgICAgU3RyaW5nIG91dDsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgZm9yIChpPTA7IGk8NTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaTwzKSB7CisgICAgICAgICAgICAgICAgb3V0ID0gbm9ybWFsaXplcl9DLm5vcm1hbGl6ZShmaWVsZFtpXSk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IG5vcm1hbGl6ZXJfRC5ub3JtYWxpemUoZmllbGRbaV0pOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ID0gbm9ybWFsaXplcl9LQy5ub3JtYWxpemUoZmllbGRbaV0pOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0MiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFszXSwgImM0IT1LQyhjIiArIChpKzEpKTsKKworICAgICAgICAgICAgb3V0ID0gbm9ybWFsaXplcl9LRC5ub3JtYWxpemUoZmllbGRbaV0pOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghcGFzcykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsaW5lKTsKKyAgICAgICAgfSAgICAgCisgICAgICAgCisgICAgICAgIHJldHVybiBwYXNzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gb3AgbmFtZSBvZiBub3JtYWxpemF0aW9uIGZvcm0sIGUuZy4sICJLQyIKKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgYmVpbmcgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBnb3QgdmFsdWUgcmVjZWl2ZWQKKyAgICAgKiBAcGFyYW0gZXhwIGV4cGVjdGVkIHZhbHVlCisgICAgICogQHBhcmFtIG1zZyBkZXNjcmlwdGlvbiBvZiB0aGlzIHRlc3QKKyAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGdvdCA9PSBleHAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYXNzZXJ0RXF1YWwoU3RyaW5nIG9wLCBTdHJpbmcgcywgU3RyaW5nIGdvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cCwgU3RyaW5nIG1zZykgeworICAgICAgICBpZiAoZXhwLmVxdWFscyhnb3QpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigoIiAgICAgICIgKyBtc2cgKyAiKSAiICsgb3AgKyAiKCIgKyBzICsgIik9IiArIGhleChnb3QpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwLiAiICsgaGV4KGV4cCkpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gcGllY2VzIGJhc2VkIG9uIHRoZSBnaXZlbiBkZWxpbWl0ZXIKKyAgICAgKiBjaGFyYWN0ZXIuICBUaGVuLCBwYXJzZSB0aGUgcmVzdWx0YW50IGZpZWxkcyBmcm9tIGhleCBpbnRvCisgICAgICogY2hhcmFjdGVycy4gIFRoYXQgaXMsICIwMDQwIDA0MDA7MEMwMDswODk5IiAtPiBuZXcgU3RyaW5nW10geworICAgICAqICJcdTAwNDBcdTA0MDAiLCAiXHUwQzAwIiwgIlx1MDg5OSIgfS4gIFRoZSBvdXRwdXQgaXMgYXNzdW1lZCB0bworICAgICAqIGJlIG9mIHRoZSBwcm9wZXIgbGVuZ3RoIGFscmVhZHksIGFuZCBleGFjdGx5IG91dHB1dC5sZW5ndGgKKyAgICAgKiBmaWVsZHMgYXJlIHBhcnNlZC4gIElmIHRoZXJlIGFyZSB0b28gZmV3IGFuIGV4Y2VwdGlvbiBpcworICAgICAqIHRocm93bi4gIElmIHRoZXJlIGFyZSB0b28gbWFueSB0aGUgZXh0cmFzIGFyZSBpZ25vcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZiBzY3JhdGNoIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaGV4c3BsaXQoU3RyaW5nIHMsIGNoYXIgZGVsaW1pdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gb3V0cHV0LCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGludCBpOworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgZm9yIChpPTA7IGk8b3V0cHV0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgZGVsaW0gPSBzLmluZGV4T2YoZGVsaW1pdGVyLCBwb3MpOworICAgICAgICAgICAgaWYgKGRlbGltIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1pc3NpbmcgZmllbGQgaW4gIiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gT3VyIGZpZWxkIGlzIGZyb20gcG9zLi5kZWxpbS0xLgorICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHRvSGV4ID0gcy5zdWJzdHJpbmcocG9zLGRlbGltKTsKKyAgICAgICAgICAgIHBvcyA9IGRlbGltOworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBsZW4gPSB0b0hleC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlKGluZGV4PCBsZW4peworICAgICAgICAgICAgICAgIGlmKHRvSGV4LmNoYXJBdChpbmRleCk9PScgJyl7CisgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGludCBzcGFjZVBvcyA9IHRvSGV4LmluZGV4T2YoJyAnLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHNwYWNlUG9zPT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmLHRvSGV4LnN1YnN0cmluZyhpbmRleCxsZW4pLHMpOworICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2VQb3MgPSBsZW47CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1Zix0b0hleC5zdWJzdHJpbmcoaW5kZXgsIHNwYWNlUG9zKSxzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHNwYWNlUG9zKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpIDwgMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IGZpZWxkICIgKyBpICsgIiBpbiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRwdXRbaV0gPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICsrcG9zOyAvLyBTa2lwIG92ZXIgZGVsaW0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kSW50KFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzdHJUb0hleCwgU3RyaW5nIHMpeworICAgICAgICBpbnQgaGV4ID0gSW50ZWdlci5wYXJzZUludChzdHJUb0hleCwxNik7CisgICAgICAgIGlmIChoZXggPCAwICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT3V0IG9mIHJhbmdlIGhleCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleCArICIgaW4gIiArIHMpOworICAgICAgICB9ZWxzZSBpZiAoaGV4ID4gMHhGRkZGKXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpKChoZXg+PjEwKSsweGQ3YzApKTsgCisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSgoaGV4JjB4M2ZmKXwweGRjMDApKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSBoZXgpOworICAgICAgICB9CisgICAgfQorICAgICAgICAgICAgCisgICAgLy8gU3BlY2lmaWMgdGVzdHMgZm9yIGRlYnVnZ2luZy4gIFRoZXNlIGFyZSBnZW5lcmFsbHkgZmFpbHVyZXMKKyAgICAvLyB0YWtlbiBmcm9tIHRoZSBjb25mb3JtYW5jZSBmaWxlLCBidXQgY3VsbGVkIG91dCB0byBtYWtlCisgICAgLy8gZGVidWdnaW5nIGVhc2llci4gIFRoZXNlIGNhbiBiZSBlbGltaW5hdGVkIHdpdGhvdXQgYWZmZWN0aW5nCisgICAgLy8gY292ZXJhZ2UuCisKKyAgICBwdWJsaWMgdm9pZCBfaGlkZVRlc3RDYXNlNigpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIF90ZXN0T25lTGluZSgiMDM4NTswMzg1OzAwQTggMDMwMTswMDIwIDAzMDggMDMwMTswMDIwIDAzMDggMDMwMTsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBfdGVzdE9uZUxpbmUoU3RyaW5nIGxpbmUpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIGZpZWxkcyA9IG5ldyBTdHJpbmdbNV07CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIFBhcnNlIG91dCB0aGUgZmllbGRzCisgICAgICAgIGhleHNwbGl0KGxpbmUsICc7JywgZmllbGRzLCBidWYpOworICAgICAgICBjaGVja0NvbmZvcm1hbmNlKGZpZWxkcywgbGluZSk7CisgICAgfQorICAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDdhOTI3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgTm9ybWFsaXplci4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTM3MGJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitTaGFyZWQgdXRpbGl0aWVzIGZvciB0ZXN0cy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL0NvbGxhdGlvblBlcmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczZjY4MzE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0LmphdmEKQEAgLTAsMCArMSwxMjYyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0IHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIHVzYWdlU3RyaW5nID0gCisgICAgICAgICJ1c2FnZTogIGNvbGxwZXJmIG9wdGlvbnMuLi5cbiIKKyAgICAgICAgKyAiLWhlbHAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSB0aGlzIG1lc3NhZ2UuXG4iCisgICAgICAgICsgIi1maWxlIGZpbGVfbmFtZSAgICAgICAgICAgIHV0Zi0xNiBmb3JtYXQgZmlsZSBvZiBuYW1lcy5cbiIKKyAgICAgICAgKyAiLWxvY2FsZSBuYW1lICAgICAgICAgICAgICAgSUNVIGxvY2FsZSB0byB1c2UuICBEZWZhdWx0IGlzIGVuX1VTXG4iCisgICAgICAgICsgIi1ydWxlcyBmaWxlX25hbWUgICAgICAgICAgIENvbGxhdGlvbiBydWxlcyBmaWxlIChvdmVycmlkZXMgbG9jYWxlKVxuIgorICAgICAgICAvLysgIi1sYW5naWQgMHgxMjM0ICAgICAgICAgICAgIFdpbmRvd3MgTGFuZ3VhZ2UgSUQgbnVtYmVyLiAgRGVmYXVsdCB0byB2YWx1ZSBmb3IgLWxvY2FsZSBvcHRpb25cbiIKKyAgICAgICAgLy8rICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9saWJyYXJ5L3BzZGsvd2luYmFzZS9ubHNfOHhvMy5odG1cbiIKKyAgICAgICAgLy8rICItd2luICAgICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdCB1c2luZyBXaW5kb3dzIG5hdGl2ZSBzZXJ2aWNlcy4gIChJQ1UgaXMgZGVmYXVsdClcbiIKKyAgICAgICAgLy8rICItdW5peCAgICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdCB1c2luZyBVbml4IHN0cnhmcm0sIHN0cmNvbGwgc2VydmljZXMuXG4iCisgICAgICAgIC8vKyAiLXVzZWxlbiAgICAgICAgICAgICAgICAgICAgVXNlIEFQSSB3aXRoIHN0cmluZyBsZW5ndGhzLiAgRGVmYXVsdCBpcyBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nc1xuIgorICAgICAgICArICItdXNla2V5cyAgICAgICAgICAgICAgICAgICBSdW4gdGVzdHMgdXNpbmcgc29ydGtleXMgcmF0aGVyIHRoYW4gc3RyY29sbFxuIgorICAgICAgICArICItc3RyY21wICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdHMgdXNpbmcgdV9zdHJjbXAgcmF0aGVyIHRoYW4gc3RyY29sbFxuIgorICAgICAgICArICItc3RyY21wQ1BPICAgICAgICAgICAgICAgICBSdW4gdGVzdHMgdXNpbmcgdV9zdHJjbXBDb2RlUG9pbnRPcmRlciByYXRoZXIgdGhhbiBzdHJjb2xsXG4iCisgICAgICAgICsgIi1sb29wIG5ubm4gICAgICAgICAgICAgICAgIExvb3Bjb3VudCBmb3IgdGVzdC4gIEFkanVzdCBmb3IgcmVhc29uYWJsZSB0b3RhbCBydW5uaW5nIHRpbWUuXG4iCisgICAgICAgICsgIi1pbG9vcCBuICAgICAgICAgICAgICAgICAgIElubmVyIExvb3AgQ291bnQuICBEZWZhdWx0ID0gMS4gIE51bWJlciBvZiBjYWxscyB0byBmdW5jdGlvblxuIgorICAgICAgICArICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXIgdGVzdCBhdCBlYWNoIGNhbGwgcG9pbnQuICBGb3IgbWVhc3VyaW5nIHRlc3Qgb3ZlcmhlYWQuXG4iCisgICAgICAgICsgIi10ZXJzZSAgICAgICAgICAgICAgICAgICAgIFRlcnNlIG51bWJlcnMtb25seSBvdXRwdXQuICBJbnRlbmRlZCBmb3IgdXNlIGJ5IHNjcmlwdHMuXG4iCisgICAgICAgICsgIi1mcmVuY2ggICAgICAgICAgICAgICAgICAgIEZyZW5jaCBhY2NlbnQgb3JkZXJpbmdcbiIKKyAgICAgICAgKyAiLWZyZW5jaG9mZiAgICAgICAgICAgICAgICAgTm8gRnJlbmNoIGFjY2VudCBvcmRlcmluZyAoZm9yIHVzZSB3aXRoIEZyZW5jaCBsb2NhbGVzLilcbiIKKyAgICAgICAgKyAiLW5vcm0gICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXppbmcgbW9kZSBvblxuIgorICAgICAgICArICItc2hpZnRlZCAgICAgICAgICAgICAgICAgICBTaGlmdGVkIG1vZGVcbiIKKyAgICAgICAgKyAiLWxvd2VyICAgICAgICAgICAgICAgICAgICAgTG93ZXIgY2FzZSBmaXJzdFxuIgorICAgICAgICArICItdXBwZXIgICAgICAgICAgICAgICAgICAgICBVcHBlciBjYXNlIGZpcnN0XG4iCisgICAgICAgICsgIi1jYXNlICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBzZXBhcmF0ZSBjYXNlIGxldmVsXG4iCisgICAgICAgICsgIi1sZXZlbCBuICAgICAgICAgICAgICAgICAgIFNvcnQgbGV2ZWwsIDEgdG8gNSwgZm9yIFByaW1hcnksIFNlY25kYXJ5LCBUZXJ0aWFyeSwgUXVhdGVybmFyeSwgSWRlbnRpY2FsXG4iCisgICAgICAgICsgIi1rZXloaXN0ICAgICAgICAgICAgICAgICAgIFByb2R1Y2UgYSB0YWJsZSBzb3J0IGtleSBzaXplIHZzLiBzdHJpbmcgbGVuZ3RoXG4iCisgICAgICAgICsgIi1iaW5zZWFyY2ggICAgICAgICAgICAgICAgIEJpbmFyeSBTZWFyY2ggdGltaW5nIHRlc3RcbiIKKyAgICAgICAgKyAiLWtleWdlbiAgICAgICAgICAgICAgICAgICAgU29ydCBLZXkgR2VuZXJhdGlvbiB0aW1pbmcgdGVzdFxuIgorICAgICAgICArICItcXNvcnQgICAgICAgICAgICAgICAgICAgICBRdWlja3NvcnQgdGltaW5nIHRlc3RcbiIKKyAgICAgICAgKyAiLWl0ZXIgICAgICAgICAgICAgICAgICAgICAgSXRlcmF0aW9uIFBlcmZvcm1hbmNlIFRlc3RcbiIKKyAgICAgICAgKyAiLWR1bXAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBzdHJpbmdzLCBzb3J0IGtleXMgYW5kIENFcy5cbiIKKyAgICAgICAgKyAiLWphdmEgICAgICAgICAgICAgICAgICAgICAgUnVuIHRlc3QgdXNpbmcgamF2YS50ZXh0LkNvbGxhdG9yLlxuIjsKKyAgICAKKyAgICAvL2VudW0ge0ZMQUcsIE5VTSwgU1RSSU5HfSB0eXBlOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfZk5hbWUgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfbG9jYWxlICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoImVuX1VTIik7CisgICAgLy9zdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2xhbmdpZCAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIwIik7ICAgICAgICAgLy8gRGVmYXVsdHMgdG8gdmFsdWUgY29ycmVzcG9uZGluZyB0byBvcHRfbG9jYWxlLgorICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfcnVsZXMgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfaGVscCAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfbG9vcENvdW50ICA9IG5ldyBTdHJpbmdCdWZmZXIoIjEiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2lMb29wQ291bnQgPSBuZXcgU3RyaW5nQnVmZmVyKCIxIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF90ZXJzZSAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiZmFsc2UiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3Fzb3J0ICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2JpbnNlYXJjaCAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2ljdSAgICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCJ0cnVlIik7CisgICAgLy9zdGF0aWMgU3RyaW5nQnVmZmVyIG9wdF93aW4gICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7ICAgICAgLy8gUnVuIHdpdGggV2luZG93cyBuYXRpdmUgZnVuY3Rpb25zLgorICAgIC8vc3RhdGljIFN0cmluZ0J1ZmZlciBvcHRfdW5peCAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOyAgICAgIC8vIFJ1biB3aXRoIFVOSVggc3RyY29sbCwgc3RyeGZybSBmdW5jdGlvbnMuCisgICAgLy9zdGF0aWMgU3RyaW5nQnVmZmVyIG9wdF91c2VsZW4gICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF91c2VrZXlzICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9zdHJjbXAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9zdHJjbXBDUE8gID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9ub3JtICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9rZXlnZW4gICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9mcmVuY2ggICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9mcmVuY2hvZmYgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9zaGlmdGVkICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9sb3dlciAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF91cHBlciAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9jYXNlICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9sZXZlbCAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiMCIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfa2V5aGlzdCAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfaXRlcnRlc3QgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfZHVtcCAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfamF2YSAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIAorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgICBvcHRfZk5hbWUgICAgICA9ICIiOworICAgIHN0YXRpYyBTdHJpbmcgICBvcHRfbG9jYWxlICAgICA9ICJlbl9VUyI7CisgICAgLy9zdGF0aWMgaW50ICAgICAgb3B0X2xhbmdpZCAgICAgPSAwOyAgICAgICAgIC8vIERlZmF1bHRzIHRvIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gb3B0X2xvY2FsZS4KKyAgICBzdGF0aWMgU3RyaW5nICAgb3B0X3J1bGVzICAgICAgPSAiIjsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2hlbHAgICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgaW50ICAgICAgb3B0X2xvb3BDb3VudCAgPSAxOworICAgIHN0YXRpYyBpbnQgICAgICBvcHRfaUxvb3BDb3VudCA9IDE7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF90ZXJzZSAgICAgID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9xc29ydCAgICAgID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9iaW5zZWFyY2ggID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9pY3UgICAgICAgID0gdHJ1ZTsKKyAgICAvL3N0YXRpYyBib29sZWFuICBvcHRfd2luICAgICAgICA9IGZhbHNlOyAgICAgIC8vIFJ1biB3aXRoIFdpbmRvd3MgbmF0aXZlIGZ1bmN0aW9ucy4KKyAgICAvL3N0YXRpYyBib29sZWFuICBvcHRfdW5peCAgICAgICA9IGZhbHNlOyAgICAgIC8vIFJ1biB3aXRoIFVOSVggc3RyY29sbCwgc3RyeGZybSBmdW5jdGlvbnMuCisgICAgLy9zdGF0aWMgYm9vbGVhbiAgb3B0X3VzZWxlbiAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3VzZWtleXMgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3N0cmNtcCAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3N0cmNtcENQTyAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X25vcm0gICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2tleWdlbiAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2ZyZW5jaCAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2ZyZW5jaG9mZiAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3NoaWZ0ZWQgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2xvd2VyICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3VwcGVyICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2Nhc2UgICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgaW50ICAgICAgb3B0X2xldmVsICAgICAgPSAwOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfa2V5aGlzdCAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfaXRlcnRlc3QgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfZHVtcCAgICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfamF2YSAgICAgICA9IGZhbHNlOworCisgICAgc3RhdGljIE9wdGlvblNwZWNbXSBvcHRpb25zID0geworICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWZpbGUiLCAyLCB0ZW1wX29wdF9mTmFtZSksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItbG9jYWxlIiwgMiwgdGVtcF9vcHRfbG9jYWxlKSwKKyAgICAgICAgLy9uZXcgT3B0aW9uU3BlYygiLWxhbmdpZCIsIDEsIHRlbXBfb3B0X2xhbmdpZCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItcnVsZXMiLCAyLCB0ZW1wX29wdF9ydWxlcyksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItcXNvcnQiLCAwLCB0ZW1wX29wdF9xc29ydCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItYmluc2VhcmNoIiwgMCwgdGVtcF9vcHRfYmluc2VhcmNoKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1pdGVyIiwgMCwgdGVtcF9vcHRfaXRlcnRlc3QpLAorICAgICAgICAvL25ldyBPcHRpb25TcGVjKCItd2luIiwgMCwgdGVtcF9vcHRfd2luKSwKKyAgICAgICAgLy9uZXcgT3B0aW9uU3BlYygiLXVuaXgiLCAwLCB0ZW1wX29wdF91bml4KSwKKyAgICAgICAgLy9uZXcgT3B0aW9uU3BlYygiLXVzZWxlbiIsIDAsIHRlbXBfb3B0X3VzZWxlbiksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItdXNla2V5cyIsIDAsIHRlbXBfb3B0X3VzZWtleXMpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLXN0cmNtcCIsIDAsIHRlbXBfb3B0X3N0cmNtcCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItc3RyY21wQ1BPIiwgMCwgdGVtcF9vcHRfc3RyY21wQ1BPKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1ub3JtIiwgMCwgdGVtcF9vcHRfbm9ybSksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItZnJlbmNoIiwgMCwgdGVtcF9vcHRfZnJlbmNoKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1mcmVuY2hvZmYiLCAwLCB0ZW1wX29wdF9mcmVuY2hvZmYpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLXNoaWZ0ZWQiLCAwLCB0ZW1wX29wdF9zaGlmdGVkKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1sb3dlciIsIDAsIHRlbXBfb3B0X2xvd2VyKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi11cHBlciIsIDAsIHRlbXBfb3B0X3VwcGVyKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1jYXNlIiwgMCwgdGVtcF9vcHRfY2FzZSksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItbGV2ZWwiLCAxLCB0ZW1wX29wdF9sZXZlbCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCIta2V5aGlzdCIsIDAsIHRlbXBfb3B0X2tleWhpc3QpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWtleWdlbiIsIDAsIHRlbXBfb3B0X2tleWdlbiksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItbG9vcCIsIDEsIHRlbXBfb3B0X2xvb3BDb3VudCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItaWxvb3AiLCAxLCB0ZW1wX29wdF9pTG9vcENvdW50KSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi10ZXJzZSIsIDAsIHRlbXBfb3B0X3RlcnNlKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1kdW1wIiwgMCwgdGVtcF9vcHRfZHVtcCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItaGVscCIsIDAsIHRlbXBfb3B0X2hlbHApLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLT8iLCAwLCB0ZW1wX29wdF9oZWxwKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1qYXZhIiwgMCwgdGVtcF9vcHRfamF2YSksCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgamF2YS50ZXh0LkNvbGxhdG9yIGphdmFDb2wgPSBudWxsOworICAgIHN0YXRpYyBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yIGljdUNvbCA9IG51bGw7CisgICAgc3RhdGljIE51bWJlckZvcm1hdCBuZiA9IG51bGw7CisgICAgc3RhdGljIE51bWJlckZvcm1hdCBwZXJjZW50ID0gbnVsbDsKKyAgICBBcnJheUxpc3QgbGlzdCA9IG51bGw7CisgICAgU3RyaW5nW10gdGVzdHMgPSBudWxsOworICAgIGludCBnbG9iYWxDb3VudCA9IDA7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBDb2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgY29sbFBlcmYgPSBuZXcgQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0KCk7CisgICAgICAgIGlmICggIUNvbGxhdGlvblBlcmZvcm1hbmNlVGVzdC5wcm9jZXNzT3B0aW9ucyhhcmdzKSB8fCBvcHRfaGVscCB8fCBvcHRfZk5hbWUubGVuZ3RoKCk9PTApIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih1c2FnZVN0cmluZyk7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDIpOworICAgICAgICBwZXJjZW50ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgICAgICAKKyAgICAgICAgY29sbFBlcmYuc2V0T3B0aW9ucygpOworICAgICAgICBjb2xsUGVyZi5yZWFkRGF0YUxpbmVzKCk7CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2R1bXApIHsKKyAgICAgICAgICAgIGNvbGxQZXJmLmRvRHVtcCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X3Fzb3J0KSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb1FTb3J0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfYmluc2VhcmNoKSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb0JpbmFyeVNlYXJjaCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2tleWdlbikgeworICAgICAgICAgICAgY29sbFBlcmYuZG9LZXlHZW4oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9rZXloaXN0KSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb0tleUhpc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9pdGVydGVzdCkgeworICAgICAgICAgICAgY29sbFBlcmYuZG9JdGVyVGVzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvL0R1bXAgZmlsZSBsaW5lcywgQ0VzLCBTb3J0IEtleXMgaWYgcmVxdWVzdGVkCisgICAgdm9pZCBkb0R1bXAoKSB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAvL3ByaW50IHRoZSBsaW5lCisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUoKFN0cmluZylsaXN0LmdldChpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGluZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgQ0VzOiAgIik7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgQ0VpdGVyID0gKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGxpbmUpOworICAgICAgICAgICAgaW50IGNlOworICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgY2UgPSBDRWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3V0U3RyID0gSW50ZWdlci50b0hleFN0cmluZyhjZSk7IAorICAgICAgICAgICAgICAgIGZvciAoaW50IGxlbiA9IDA7IGxlbiA8IDggLSBvdXRTdHIubGVuZ3RoKCk7IGxlbisrKSB7CisgICAgICAgICAgICAgICAgICAgIG91dFN0ciA9JzAnICsgb3V0U3RyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG91dFN0ciArICIgICIpOworICAgICAgICAgICAgICAgIGlmKCsraiA+OCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiAgICAgICAgIik7CisgICAgICAgICAgICAgICAgICAgIGogPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuICAgSUNVIFNvcnQgS2V5OiAiKTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBjayA9ICgoY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLmdldENvbGxhdGlvbktleShsaW5lKTsKKyAgICAgICAgICAgIGJ5dGVbXSBja3MgPSBjay50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgaiA9IDA7CisgICAgICAgICAgICBmb3IoaW50IGsgPSAwOyBrIDwgY2tzLmxlbmd0aDsgaysrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG91dFN0ciA9IEludGVnZXIudG9IZXhTdHJpbmcoY2tzW2tdKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG91dFN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgMTogICAgIG91dFN0ciA9ICcwJyArIG91dFN0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDg6ICAgICBvdXRTdHIgPSBvdXRTdHIuc3Vic3RyaW5nKDYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChvdXRTdHIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIik7CisgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgIGlmKGogPiAwICYmIGogJSAyMCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuICAgICAgICAgICAgICAgICAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiAgIGRvUVNvcnQoKSAgICBUaGUgcXVpY2sgc29ydCB0aW1pbmcgdGVzdC4KKyAgICAgKgorICAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICovCisgICAgdm9pZCBkb1FTb3J0KCkgeworICAgICAgICBjYWxsR0MoKTsKKyAgICAgICAgLy9TdHJpbmdbXSBzb3J0VGVzdHMgPSAoU3RyaW5nW10pIHRlc3RzLmNsb25lKCk7CisgICAgICAgIC8vQWRqdXN0IGxvb3AgY291bnQgdG8gY29tcGVuc2F0ZSBmb3IgZmlsZSBzaXplLiBRU29ydCBzaG91bGQgYmUgbmxvZyhuKSAKKyAgICAgICAgZG91YmxlIGRMb29wQ291bnQgPSBvcHRfbG9vcENvdW50ICogMzAwMCAvICgoTWF0aC5sb2codGVzdHMubGVuZ3RoKSAvIE1hdGgubG9nKDEwKSogdGVzdHMubGVuZ3RoKSk7CisgCisgICAgICAgIGlmKG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICBkTG9vcENvdW50ICo9IDU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBhZGpfbG9vcENvdW50ID0gKGludClkTG9vcENvdW50OworICAgICAgICBpZihhZGpfbG9vcENvdW50IDwgMSkgeworICAgICAgICAgICAgYWRqX2xvb3BDb3VudCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGdsb2JhbENvdW50ID0gMDsKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSAwOworICAgICAgICBsb25nIGVuZFRpbWUgPSAwOworICAgICAgICBpZiAob3B0X2ljdSAmJiBvcHRfdXNla2V5cykgeworICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBxU29ydEltcGxfaWN1X3VzZWtleXModGVzdHMsIDAsIHRlc3RzLmxlbmd0aCAtMSwgaWN1Q29sKTsKKyAgICAgICAgICAgIGVuZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob3B0X2ljdSAmJiAhb3B0X3VzZWtleXMpeworICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBxU29ydEltcGxfbm9rZXlzKHRlc3RzLCAwLCB0ZXN0cy5sZW5ndGggLTEsIGljdUNvbCk7CisgICAgICAgICAgICBlbmRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9wdF9qYXZhICYmIG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHFTb3J0SW1wbF9qYXZhX3VzZWtleXModGVzdHMsIDAsIHRlc3RzLmxlbmd0aCAtMSwgamF2YUNvbCk7CisgICAgICAgICAgICBlbmRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9wdF9qYXZhICYmICFvcHRfdXNla2V5cyl7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHFTb3J0SW1wbF9ub2tleXModGVzdHMsIDAsIHRlc3RzLmxlbmd0aCAtMSwgamF2YUNvbCk7CisgICAgICAgICAgICBlbmRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBlbGFwc2VkVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAgIGludCBucyA9IChpbnQpKDEwMDAwMDAgKiBlbGFwc2VkVGltZSAvIChnbG9iYWxDb3VudCArIDAuMCkpOworICAgICAgICBpZiAoIW9wdF90ZXJzZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJxc29ydDogIHRvdGFsICMgb2Ygc3RyaW5nIGNvbXBhcmVzID0gIiArIGdsb2JhbENvdW50KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicXNvcnQ6ICB0aW1lIHBlciBjb21wYXJlID0gIiArIG5zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihucyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiAgICBkb0JpbmFyeVNlYXJjaCgpICAgIEJpbmFyeSBTZWFyY2ggdGltaW5nIHRlc3QuICBFYWNoIG5hbWUgZnJvbSB0aGUgbGlzdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgaXMgbG9va2VkIHVwIGluIHRoZSBmdWxsIHNvcnRlZCBsaXN0IG9mIG5hbWVzLgorICAgICAqCisgICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKi8KKyAgICB2b2lkIGRvQmluYXJ5U2VhcmNoKCkgeworICAgICAgICBjYWxsR0MoKTsKKyAgICAgICAgaW50IGdDb3VudCA9IDA7CisgICAgICAgIGludCBsb29wcyA9IDA7CisgICAgICAgIGRvdWJsZSBkTG9vcENvdW50ID0gb3B0X2xvb3BDb3VudCAqIDMwMDAgLyAoTWF0aC5sb2codGVzdHMubGVuZ3RoKSAvIE1hdGgubG9nKDEwKSogdGVzdHMubGVuZ3RoKTsKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSAwOworICAgICAgICBsb25nIGVsYXBzZWRUaW1lID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmKG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICBkTG9vcENvdW50ICo9IDU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGFkal9sb29wQ291bnQgPSAoaW50KWRMb29wQ291bnQ7CisgICAgICAgIGlmKGFkal9sb29wQ291bnQgPCAxKSB7CisgICAgICAgICAgICBhZGpfbG9vcENvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9pbnQgb3B0MiA9IDA7CisgICAgICAgIAorICAgICAgICBmb3IoOzspIHsgICAvL25vdCByZWFsbHkgYSBsb29wLCBqdXN0IGFsbG93cyAiYnJlYWsiIHRvIHdvcmssIHRvIHNpbXBsaWZ5IAorICAgICAgICAgICAgICAgICAgICAvL2luYWR2ZXJ0YW50bHkgcnVubmluZyBtb3JlIHRoYW4gb25lIHRlc3QgdGhyb3VnaCBoZXJlCisgICAgICAgICAgICBpZihvcHRfc3RyY21wKSB7CisgICAgICAgICAgICAgICAgaW50IHIgPSAwOworICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgICAgIGZvcihsb29wcyA9IDA7IGxvb3BzIDwgYWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGkgPSB0ZXN0cy5sZW5ndGgtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZ3Vlc3MgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdHdWVzcyA9IChoaSArIGxvKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobmV3R3Vlc3MgPT0gZ3Vlc3MpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3MgPSBuZXdHdWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gdGVzdHNbal0uY29tcGFyZVRvKHRlc3RzW2d1ZXNzXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYociA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGkgPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbyA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAob3B0X3N0cmNtcENQTykgeworICAgICAgICAgICAgICAgIGludCByID0gMDsKKyAgICAgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBmb3IobG9vcHMgPSAwOyBsb29wcyA8IGFkal9sb29wQ291bnQ7IGxvb3BzKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0cy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhpID0gdGVzdHMubGVuZ3RoLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGd1ZXNzID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3R3Vlc3MgPSAoaGkgKyBsbykgLyAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG5ld0d1ZXNzID09IGd1ZXNzKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXNzID0gbmV3R3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5jb21wYXJlKHRlc3RzW2pdLCB0ZXN0c1tndWVzc10sIE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaSA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvID0gZ3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvcHRfaWN1KSB7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgciA9IDA7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgZm9yIChsb29wcyA9IDA7IGxvb3BzIDwgYWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGkgPSB0ZXN0cy5sZW5ndGggLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBndWVzcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdHdWVzcyA9IChoaSArIGxvKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0d1ZXNzID09IGd1ZXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzcyA9IG5ld0d1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRfdXNla2V5cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleSBzb3J0S2V5MSA9IGljdUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleSBzb3J0S2V5MiA9IGljdUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbZ3Vlc3NdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gaWN1Q29sLmNvbXBhcmUodGVzdHNbal0sIHRlc3RzW2d1ZXNzXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGkgPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbyA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9wdF9qYXZhKSB7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgciA9IDA7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgZm9yIChsb29wcyA9IDA7IGxvb3BzIDwgYWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGkgPSB0ZXN0cy5sZW5ndGggLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBndWVzcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdHdWVzcyA9IChoaSArIGxvKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0d1ZXNzID09IGd1ZXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzcyA9IG5ld0d1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRfdXNla2V5cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IHNvcnRLZXkxID0gamF2YUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IHNvcnRLZXkyID0gamF2YUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbZ3Vlc3NdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gamF2YUNvbC5jb21wYXJlKHRlc3RzW2pdLCB0ZXN0c1tndWVzc10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpID0gZ3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG8gPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgfQorICAgICAgICBpbnQgbnMgPSAoaW50KSgoZmxvYXQpKDEwMDAwMDApICogKGZsb2F0KWVsYXBzZWRUaW1lIC8gKGZsb2F0KWdDb3VudCk7CisgICAgICAgIGlmICghb3B0X3RlcnNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImJpbmFyeSBzZWFyY2g6ICB0b3RhbCAjIG9mIHN0cmluZyBjb21wYXJlcyA9ICIgKyBnQ291bnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiaW5hcnkgc2VhcmNoOiAgY29tcGFyZXMgcGVyIGxvb3AgPSAiICsgZ0NvdW50IC8gbG9vcHMpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiaW5hcnkgc2VhcmNoOiAgdGltZSBwZXIgY29tcGFyZSA9ICIgKyBucyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obnMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogICBkb0tleUdlbigpICAgICBLZXkgR2VuZXJhdGlvbiBUaW1pbmcgVGVzdAorICAgICAqCisgICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKi8KKyAgICB2b2lkIGRvS2V5R2VuKCkgeworICAgICAgICBjYWxsR0MoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEFkanVzdCBsb29wIGNvdW50IHRvIGNvbXBlbnNhdGUgZm9yIGZpbGUgc2l6ZS4gICBTaG91bGQgYmUgb3JkZXIgbgorICAgICAgICBkb3VibGUgZExvb3BDb3VudCA9IG9wdF9sb29wQ291bnQgKiAoMTAwMC4wIC8gIChkb3VibGUpbGlzdC5zaXplKCkpOworICAgICAgICBpbnQgYWRqX2xvb3BDb3VudCA9IChpbnQpZExvb3BDb3VudDsKKyAgICAgICAgaWYgKGFkal9sb29wQ291bnQgPCAxKSBhZGpfbG9vcENvdW50ID0gMTsKKworICAgICAgICBsb25nIHN0YXJ0VGltZSA9IDA7CisgICAgICAgIGxvbmcgdG90YWxLZXlMZW4gPSAwOworICAgICAgICBsb25nIHRvdGFsQ2hhcnMgPSAwOworICAgICAgICBpZiAob3B0X2phdmEpIHsKKyAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgZm9yIChpbnQgbG9vcHM9MDsgbG9vcHM8YWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGxpbmU9MDsgbGluZSA8IHRlc3RzLmxlbmd0aDsgbGluZSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlMb29wPTA7IGlMb29wIDwgb3B0X2lMb29wQ291bnQ7IGlMb29wKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgKz0gdGVzdHNbbGluZV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gc29ydEtleSA9IGphdmFDb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3RzW2xpbmVdKS50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxLZXlMZW4gKz0gc29ydEtleS5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGxvb3BzPTA7IGxvb3BzPGFkal9sb29wQ291bnQ7IGxvb3BzKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBsaW5lPTA7IGxpbmUgPCB0ZXN0cy5sZW5ndGg7IGxpbmUrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpTG9vcD0wOyBpTG9vcCA8IG9wdF9pTG9vcENvdW50OyBpTG9vcCsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzICs9IHRlc3RzW2xpbmVdLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIHNvcnRLZXkgPSBpY3VDb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3RzW2xpbmVdKS50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxLZXlMZW4gKz0gc29ydEtleS5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvbmcgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgbG9uZyBucyA9IChsb25nKSgxMDAwMDAwICogZWxhcHNlZFRpbWUgLyAoYWRqX2xvb3BDb3VudCAqIHRlc3RzLmxlbmd0aCArIDAuMCkpOworICAgICAgICBpZiAoIW9wdF90ZXJzZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTb3J0IEtleSBHZW5lcmF0aW9uOiAgdG90YWwgIyBvZiBrZXlzID0iICsgYWRqX2xvb3BDb3VudCAqIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvcnQgS2V5IEdlbmVyYXRpb246ICB0aW1lIHBlciBrZXkgPSAiICsgbnMgKyAiIG5zIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIktleSBMZW5ndGggLyBjaGFyYWN0ZXIgPSAiICsgbmYuZm9ybWF0KHRvdGFsS2V5TGVuIC8gKHRvdGFsQ2hhcnMgKyAwLjApKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG5zICsgIiwgICIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG5mLmZvcm1hdCh0b3RhbEtleUxlbiAvICh0b3RhbENoYXJzICsgMC4wKSkgKyAiLCAiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKgorICAgICAqICAgIGRvS2V5SGlzdCgpICAgICAgIE91dHB1dCBhIHRhYmxlIG9mIGRhdGEgZm9yIGF2ZXJhZ2Ugc29ydCBrZXkgc2l6ZSB2cy4gc3RyaW5nIGxlbmd0aC4KKyAgICAgKgorICAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICovCisgICAgdm9pZCBkb0tleUhpc3QoKSB7CisgICAgICAgIGNhbGxHQygpOworICAgICAgICBpbnQgICAgIG1heExlbiA9IDA7CisKKyAgICAgICAgLy8gRmluZCB0aGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0ZXN0c1tpXS5sZW5ndGgoKSA+IG1heExlbikgbWF4TGVuID0gdGVzdHNbaV0ubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludFtdIGFjY3VtdWxhdGVkTGVuICA9IG5ldyBpbnRbbWF4TGVuICsgMV07CisgICAgICAgIGludFtdIG51bUtleXNPZlNpemUgICA9IG5ldyBpbnRbbWF4TGVuICsgMV07CisgICAgICAgIAorICAgICAgICAvLyBGaWxsIHRoZSBhcnJheXMuLi4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50IGxlbiA9IHRlc3RzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgYWNjdW11bGF0ZWRMZW5bbGVuXSArPSBpY3VDb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3RzW2ldKS50b0J5dGVBcnJheSgpLmxlbmd0aDsKKyAgICAgICAgICAgIG51bUtleXNPZlNpemVbbGVuXSAgKz0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQW5kIHdyaXRlIG91dCBhdmVyYWdlcworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyBMZW5ndGgsICBBdmcgS2V5IExlbmd0aCwgIEF2ZyBLZXkgTGVuIHBlciBjaGFyIik7CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1heExlbjsgaSsrKSB7CisgICAgICAgICAgICBpZiAobnVtS2V5c09mU2l6ZVtpXSA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSArICIsICIgKyBuZi5mb3JtYXQoYWNjdW11bGF0ZWRMZW5baV0gLyAobnVtS2V5c09mU2l6ZVtpXSsgMC4wKSkgKyAiLCAiIAorICAgICAgICAgICAgICAgICAgICArIG5mLmZvcm1hdChhY2N1bXVsYXRlZExlbltpXSAvIChudW1LZXlzT2ZTaXplW2ldICogaSArIDAuMCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgdm9pZCBkb0ZvcndhcmRJdGVyVGVzdCgpIHsKKyAgICAgICAgY2FsbEdDKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuXG5QZXJmb3JtaW5nIGZvcndhcmQgaXRlcmF0aW9uIHBlcmZvcm1hbmNlIHRlc3Qgd2l0aCAiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwZXJmb3JtYW5jZSB0ZXN0IG9uIHN0cmluZ3MgZnJvbSBmaWxlIC0tLS0tLS0tLS0tIik7CisgICAgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gKChSdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIAorICAgICAgICBpbnQgZ0NvdW50ID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeworICAgICAgICAgICAgaW50IGxpbmVjb3VudCA9IDA7CisgICAgICAgICAgICB3aGlsZSAobGluZWNvdW50IDwgdGVzdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHRlc3RzW2xpbmVjb3VudF07CisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXIubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZ0NvdW50Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb25nIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lICsgIiBtcyIpOworICAgICAgICAKKyAgICAgICAgLy8gZW1wdHkgbG9vcCByZWNhbGN1bGF0aW9uCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsgCisgICAgICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChsaW5lY291bnQgPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgICAgICBsaW5lY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBlbGFwc2VkVGltZSAtPSAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVsYXBzZWRUaW1lICIgKyBlbGFwc2VkVGltZSArICIgbXMiKTsKKworICAgICAgICBpbnQgbnMgPSAoaW50KSgxMDAwMDAwICogZWxhcHNlZFRpbWUgLyAoZ0NvdW50ICsgMC4wKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgbnVtYmVyIG9mIHN0cmluZ3MgY29tcGFyZWQgIiArIHRlc3RzLmxlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJpbiAiICsgb3B0X2xvb3BDb3VudCArICIgbG9vcHMiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBdmVyYWdlIHRpbWUgcGVyIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5uZXh0KCkgbmFubyBzZWNvbmRzICIgKyBucyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicGVyZm9ybWFuY2UgdGVzdCBvbiBza2lwcGVkLTUgY29uY2F0ZW5hdGVkIHN0cmluZ3MgZnJvbSBmaWxlIC0tLS0tLS0tLS0tIik7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdG90YWxTdHIgPSAiIjsKKyAgICAgICAgaW50ICAgIHN0cmxlbiA9IDA7CisgICAgICAgIC8vIGFwcGVuZGluZyBhbGwgdGhlIHN0cmluZ3MKKyAgICAgICAgaW50IGxpbmVjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChsaW5lY291bnQgPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRvdGFsU3RyICs9IHRlc3RzW2xpbmVjb3VudF07CisgICAgICAgICAgICBzdHJsZW4gKz0gdGVzdHNbbGluZWNvdW50XS5sZW5ndGgoKTsKKyAgICAgICAgICAgIGxpbmVjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIHNpemUgb2Ygc3RyaW5ncyAiICsgc3RybGVuKTsKKyAgICAgICAgCisgICAgICAgIGdDb3VudCA9IDA7CisgICAgICAgIGNvdW50ICA9IDA7CisgICAgICAgIGl0ZXIgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRvdGFsU3RyKTsKKyAgICAgICAgc3RybGVuIC09IDU7IC8vIGFueSBsZWZ0IG92ZXIgY2hhcmFjdGVycyBhcmUgbm90IGl0ZXJhdGVkLAorICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhlIGJhY2t3YXJkcyBhbmQgZm9yd2FyZHMgaXRlcmF0b3JzCisgICAgICAgICAgICAgICAgICAgICAvLyBnZXRzIHRoZSBzYW1lIHBvc2l0aW9uCisgICAgICAgIGludCBzdHJpbmRleCA9IDA7CisgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB3aGlsZSAoY291bnQgPCBvcHRfbG9vcENvdW50KSB7CisgICAgICAgICAgICBpbnQgY291bnQ1ID0gNTsKKyAgICAgICAgICAgIHN0cmluZGV4ID0gMDsKKyAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHN0cmluZGV4KTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0ZXIubmV4dCgpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdDb3VudCsrOworICAgICAgICAgICAgICAgIGNvdW50NSAtLTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5kZXggKz0gMTA7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmRleCA+IHN0cmxlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBjb3VudDUgPSA1OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgCisgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgCisgICAgICAgIC8vIGVtcHR5IGxvb3AgcmVjYWxjdWxhdGlvbgorICAgICAgICBpbnQgdGVtcGdDb3VudCA9IDA7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBjb3VudDUgPSA1OworICAgICAgICAgICAgc3RyaW5kZXggPSAwOworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICB0ZW1wZ0NvdW50ICsrOworICAgICAgICAgICAgICAgIGNvdW50NSAtLTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5kZXggKz0gMTA7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmRleCA+IHN0cmxlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBjb3VudDUgPSA1OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIGVsYXBzZWRUaW1lIC09IChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJnQ291bnQgIiArIGdDb3VudCk7CisgICAgICAgIG5zID0gKGludCkoMTAwMDAwMCAqIGVsYXBzZWRUaW1lIC8gKGdDb3VudCArIDAuMCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgdGltZSBwZXIgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLm5leHQoKSBuYW5vIHNlY29uZHMgIiArIG5zKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBkb0JhY2t3YXJkSXRlclRlc3QoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuXG5QZXJmb3JtaW5nIGJhY2t3YXJkIGl0ZXJhdGlvbiBwZXJmb3JtYW5jZSB0ZXN0IHdpdGggIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicGVyZm9ybWFuY2UgdGVzdCBvbiBzdHJpbmdzIGZyb20gZmlsZSAtLS0tLS0tLS0tLVxuIik7CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIiIpOworICAgICAgICAKKyAgICAgICAgaW50IGdDb3VudCA9IDA7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBsaW5lY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUgKGxpbmVjb3VudCA8IHRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSB0ZXN0c1tsaW5lY291bnRdOworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLnByZXZpb3VzKCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGluZWNvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVsYXBzZWRUaW1lICIgKyBlbGFwc2VkVGltZSArICIgbXMiKTsKKyAgICAgICAgCisgICAgICAgIC8vIGVtcHR5IGxvb3AgcmVjYWxjdWxhdGlvbgorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB3aGlsZSAoY291bnQgPCBvcHRfbG9vcENvdW50KSB7CisgICAgICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChsaW5lY291bnQgPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgICAgICBsaW5lY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBlbGFwc2VkVGltZSAtPSAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVsYXBzZWRUaW1lICIgKyBlbGFwc2VkVGltZSArICIgbXMiKTsKKyAgICAgICAgCisgICAgICAgIGludCBucyA9IChpbnQpKDEwMDAwMDAgKiBlbGFwc2VkVGltZSAvIChnQ291bnQgKyAwLjApKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCBudW1iZXIgb2Ygc3RyaW5ncyBjb21wYXJlZCAiICsgdGVzdHMubGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImluICIgKyBvcHRfbG9vcENvdW50ICsgIiBsb29wcyIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgdGltZSBwZXIgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByZXZpb3VzKCkgbmFubyBzZWNvbmRzICIgKyBucyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicGVyZm9ybWFuY2UgdGVzdCBvbiBza2lwcGVkLTUgY29uY2F0ZW5hdGVkIHN0cmluZ3MgZnJvbSBmaWxlIC0tLS0tLS0tLS0tIik7CisgICAgCisgICAgICAgIFN0cmluZyB0b3RhbFN0ciA9ICIiOworICAgICAgICBpbnQgICAgc3RybGVuID0gMDsKKyAgICAgICAgLy8gYXBwZW5kaW5nIGFsbCB0aGUgc3RyaW5ncworICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGxpbmVjb3VudCA8IHRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgdG90YWxTdHIgKz0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgIHN0cmxlbiArPSB0ZXN0c1tsaW5lY291bnRdLmxlbmd0aCgpOworICAgICAgICAgICAgbGluZWNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgc2l6ZSBvZiBzdHJpbmdzICIgKyBzdHJsZW4pOworICAgICAgICAKKyAgICAgICAgZ0NvdW50ID0gMDsKKyAgICAgICAgY291bnQgID0gMDsKKyAgICAKKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodG90YWxTdHIpOworICAgICAgICBpbnQgc3RyaW5kZXggPSAwOworICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeworICAgICAgICAgICAgaW50IGNvdW50NSA9IDU7CisgICAgICAgICAgICBzdHJpbmRleCA9IDU7CisgICAgICAgICAgICBpdGVyLnNldE9mZnNldChzdHJpbmRleCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGlmIChpdGVyLnByZXZpb3VzKCkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgY291bnQ1IC0tOworICAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZGV4ICs9IDEwOworICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZGV4ID4gc3RybGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHN0cmluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgIGNvdW50NSA9IDU7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgCisgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgCisgICAgICAgIC8vIGVtcHR5IGxvb3AgcmVjYWxjdWxhdGlvbgorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGludCB0ZW1wZ0NvdW50ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBjb3VudDUgPSA1OworICAgICAgICAgICAgc3RyaW5kZXggPSA1OworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgdGVtcGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgY291bnQ1IC0tOworICAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZGV4ICs9IDEwOworICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZGV4ID4gc3RybGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHN0cmluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgIGNvdW50NSA9IDU7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIGVsYXBzZWRUaW1lIC09IChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJnQ291bnQgIiArIGdDb3VudCk7CisgICAgICAgIG5zID0gKGludCkoMTAwMDAwMCAqIGVsYXBzZWRUaW1lIC8gKGdDb3VudCArIDAuMCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgdGltZSBwZXIgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByZXZpb3VzKCkgbmFubyBzZWNvbmRzICIgKyBucyk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogICAgZG9JdGVyVGVzdCgpICAgICAgIEl0ZXJhdGlvbiB0ZXN0CisgICAgICoKKyAgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqLworICAgIHZvaWQgZG9JdGVyVGVzdCgpIHsKKyAgICAgICAgZG9Gb3J3YXJkSXRlclRlc3QoKTsKKyAgICAgICAgZG9CYWNrd2FyZEl0ZXJUZXN0KCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0T3B0aW9ucygpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfamF2YSkgeworICAgICAgICAgICAgb3B0X2ljdSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X3J1bGVzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWN1Q29sID0gbmV3IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IoZ2V0Q29sbGF0aW9uUnVsZXMob3B0X3J1bGVzKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2Fubm90IG9wZW4gcnVsZXM6IiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGljdUNvbCA9IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUob3B0X2xvY2FsZSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBqYXZhQ29sID0gamF2YS50ZXh0LkNvbGxhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKG9wdF9sb2NhbGUpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfbm9ybSkgeworICAgICAgICAgICAgamF2YUNvbC5zZXREZWNvbXBvc2l0aW9uKGphdmEudGV4dC5Db2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICBpY3VDb2wuc2V0RGVjb21wb3NpdGlvbihjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9mcmVuY2ggJiYgb3B0X2ZyZW5jaG9mZikgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogc3BlY2lmaWVkIGJvdGggLWZyZW5jaCBhbmQgLWZyZW5jaG9mZiBvcHRpb25zLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2ZyZW5jaCkgeworICAgICAgICAgICAgKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuc2V0RnJlbmNoQ29sbGF0aW9uKHRydWUpOworICAgICAgICB9CisgICAgICAgIGlmIChvcHRfZnJlbmNob2ZmKSB7CisgICAgICAgICAgICAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5zZXRGcmVuY2hDb2xsYXRpb24oZmFsc2UpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2xvd2VyKSB7CisgICAgICAgICAgICAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5zZXRMb3dlckNhc2VGaXJzdCh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF91cHBlcikgeworICAgICAgICAgICAgKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuc2V0VXBwZXJDYXNlRmlyc3QodHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfc2hpZnRlZCkgeworICAgICAgICAgICAgKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2xldmVsICE9IDApIHsKKyAgICAgICAgICAgIHN3aXRjaCAob3B0X2xldmVsKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmFDb2wuc2V0U3RyZW5ndGgoamF2YS50ZXh0LkNvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWN1Q29sLnNldFN0cmVuZ3RoKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDIgOgorICAgICAgICAgICAgICAgICAgICAgICAgamF2YUNvbC5zZXRTdHJlbmd0aChqYXZhLnRleHQuQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGljdUNvbC5zZXRTdHJlbmd0aChjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDMgOgorICAgICAgICAgICAgICAgICAgICAgICAgamF2YUNvbC5zZXRTdHJlbmd0aChqYXZhLnRleHQuQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWN1Q29sLnNldFN0cmVuZ3RoKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGljdUNvbC5zZXRTdHJlbmd0aChjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA1IDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmFDb2wuc2V0U3RyZW5ndGgoamF2YS50ZXh0LkNvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpY3VDb2wuc2V0U3RyZW5ndGgoY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCItbGV2ZWwgcGFyYW0gbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDVcbiIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBsb2FkIGNsYXNzZXMgYXQgbGVhc3Qgb25jZSBiZWZvcmUgc3RhcnRpbmcKKyAgICAgICAgamF2YUNvbC5jb21wYXJlKCJhIiwgImIiKTsKKyAgICAgICAgaWN1Q29sLmNvbXBhcmUoImEiLCAiYiIpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbGVhbiBwcm9jZXNzT3B0aW9ucyhTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGludCBhcmdOdW07CisgICAgICAgIGZvciAoYXJnTnVtID0wOyBhcmdOdW0gPCBhcmdzLmxlbmd0aDsgYXJnTnVtKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChhcmdzW2FyZ051bV0uZXF1YWxzSWdub3JlQ2FzZShvcHRpb25zW2ldLm5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uc1tpXS50eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbaV0udmFsdWUuZGVsZXRlKDAsIG9wdGlvbnNbaV0udmFsdWUuY2FwYWNpdHkoKSkuYXBwZW5kKCJ0cnVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdOdW0rKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChhcmdOdW0gPj0gYXJncy5sZW5ndGgpIHx8IChhcmdzW2FyZ051bV0uY2hhckF0KDApPT0nLScpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oInZhbHVlIGV4cGVjdGVkIGZvciIrIG9wdGlvbnNbaV0ubmFtZSArIm9wdGlvbi5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGludCB2YWx1ZSA9Ki8gSW50ZWdlci5wYXJzZUludChhcmdzW2FyZ051bV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1tpXS52YWx1ZS5kZWxldGUoMCwgb3B0aW9uc1tpXS52YWx1ZS5jYXBhY2l0eSgpKS5hcHBlbmQoYXJnc1thcmdOdW1dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhwZWN0ZWQ6IGEgbnVtYmVyIHZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdOdW0rKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChhcmdOdW0gPj0gYXJncy5sZW5ndGgpIHx8IChhcmdzW2FyZ051bV0uY2hhckF0KDApPT0nLScpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oInZhbHVlIGV4cGVjdGVkIGZvciIrIG9wdGlvbnNbaV0ubmFtZSArIm9wdGlvbi5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbaV0udmFsdWUuZGVsZXRlKDAsIG9wdGlvbnNbaV0udmFsdWUuY2FwYWNpdHkoKSkuYXBwZW5kKGFyZ3NbYXJnTnVtXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJPcHRpb24gdHlwZSBlcnJvcjoge0ZMQUc9MCwgTlVNPTEsIFNUUklORz0yfSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG9wdF9mTmFtZSAgICAgID0gdGVtcF9vcHRfZk5hbWUudG9TdHJpbmcoKTsKKyAgICAgICAgb3B0X2xvY2FsZSAgICAgPSB0ZW1wX29wdF9sb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgICAgb3B0X3J1bGVzICAgICAgPSB0ZW1wX29wdF9ydWxlcy50b1N0cmluZygpOworICAgICAgICBpZiAodGVtcF9vcHRfaGVscC50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2hlbHAgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG9wdF9sb29wQ291bnQgID0gSW50ZWdlci5wYXJzZUludCh0ZW1wX29wdF9sb29wQ291bnQudG9TdHJpbmcoKSk7CisgICAgICAgIG9wdF9pTG9vcENvdW50ID0gSW50ZWdlci5wYXJzZUludCh0ZW1wX29wdF9pTG9vcENvdW50LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAodGVtcF9vcHRfdGVyc2UudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF90ZXJzZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X3Fzb3J0LnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfcXNvcnQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9iaW5zZWFyY2gudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9iaW5zZWFyY2ggPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9pY3UudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9pY3UgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF91c2VrZXlzLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfdXNla2V5cyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X3N0cmNtcC50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3N0cmNtcCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X3N0cmNtcENQTy50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3N0cmNtcENQTyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2tleWdlbi50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2tleWdlbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X25vcm0udG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9ub3JtID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfZnJlbmNoLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfZnJlbmNoID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfZnJlbmNob2ZmLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfZnJlbmNob2ZmID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfc2hpZnRlZC50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3NoaWZ0ZWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9sb3dlci50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2xvd2VyID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfdXBwZXIudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF91cHBlciA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2Nhc2UudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9jYXNlID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBvcHRfbGV2ZWwgICAgICA9IEludGVnZXIucGFyc2VJbnQodGVtcF9vcHRfbGV2ZWwudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICh0ZW1wX29wdF9rZXloaXN0LnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfa2V5aGlzdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2l0ZXJ0ZXN0LnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfaXRlcnRlc3QgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9kdW1wLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfZHVtcCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2phdmEudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9qYXZhID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEludm9rZSB0aGUgcnVudGltZSdzIGdhcmJhZ2UgY29sbGVjdGlvbiBwcm9jZWR1cmUgcmVwZWF0ZWRseQorICAgICAqIHVudGlsIHRoZSBhbW91bnQgb2YgZnJlZSBtZW1vcnkgc3RhYmlsaXplcyB0byB3aXRoaW4gMTAlLgorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2FsbEdDKCkgeworICAgICAgICAvLyBGcm9tICJKYXZhIFBsYXRmb3JtIFBlcmZvcm1hbmNlIi4gIFRoaXMgaXMgdGhlIHByb2NlZHVyZQorICAgICAgICAvLyByZWNvbW1lbmRlZCBieSBKYXZhc29mdC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN5c3RlbS5nYygpOworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgICAgICBTeXN0ZW0ucnVuRmluYWxpemF0aW9uKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIFN5c3RlbS5ydW5GaW5hbGl6YXRpb24oKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDApOworICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7fQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBuZWVkQ1JMRiA9IGZhbHNlOworICAgIAorICAgIHB1YmxpYyBpbnQgRE9UTUFTSyA9IDB4N0ZGOworIAorICAgIHZvaWQgZG90KGludCBpKSB7CisgICAgICAgIGlmICgoaSAlIERPVE1BU0spID09IDApIHsKKyAgICAgICAgICAgIG5lZWRDUkxGID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIEkgZG8gbm90IGtub3cgd2h5IHByaW50IHRoZSBkb3QgaGVyZQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50KCcuJyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIHJlYWREYXRhTGluZShCdWZmZXJlZFJlYWRlciBicikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBvcmlnaW5hbExpbmUgPSAiIjsKKyAgICAgICAgU3RyaW5nIGxpbmUgPSAiIjsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsaW5lID0gb3JpZ2luYWxMaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHJldHVybiBudWxsOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPiAwICYmIGxpbmUuY2hhckF0KDApID09IDB4RkVGRikgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgaW50IGNvbW1lbnRQb3MgPSBsaW5lLmluZGV4T2YoJyMnKTsKKyAgICAgICAgICAgIGlmIChjb21tZW50UG9zID49IDApIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBjb21tZW50UG9zKTsKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkxpbmUgXCJ7MH1cIiwgIFwiezF9XCIiICsgb3JpZ2luYWxMaW5lICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGluZSArICIgIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorICAgIAorICAgIHZvaWQgcmVhZERhdGFMaW5lcygpIHsKKyAgICAgICAgLy8gUmVhZCBpbiAgdGhlIGlucHV0IGZpbGUuCisgICAgICAgIC8vICAgRmlsZSBhc3N1bWVkIHRvIGJlIHV0Zi0xNi4KKyAgICAgICAgLy8gICBMaW5lcyBnbyBvbnRvIGhlYXAgYnVmZmVycy4gIEdsb2JhbCBpbmRleCBhcnJheSB0byBsaW5lIHN0YXJ0cyBpcyBjcmVhdGVkLgorICAgICAgICAvLyAgIExpbmVzIHRoZW1zZWx2ZXMgYXJlIG51bGwgdGVybWluYXRlZC4KKyAgICAgICAgLy8KKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG51bGw7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG51bGw7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0ob3B0X2ZOYW1lKTsKKyAgICAgICAgICAgIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMsICJVVEYtOCIpOworICAgICAgICAgICAgYnI9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IsIDMyKjEwMjQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogRmlsZSBhY2Nlc3MgZXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkgKyAiISIpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgCisgICAgICAgIGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxpbmUgPSByZWFkRGF0YUxpbmUoYnIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlYWQgRmlsZSBFcnJvciIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICBkb3QoY291bnRlcisrKTsKKyAgICAgICAgICAgIGxpc3QuYWRkKGxpbmUpOworICAgICAgICB9CisgICAgICAgIGlmICghb3B0X3RlcnNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWQgIiArIGNvdW50ZXIgKyAiIGxpbmVzIGluIGZpbGUiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHNpemUgPSBsaXN0LnNpemUoKTsKKyAgICAgICAgdGVzdHMgPSBuZXcgU3RyaW5nIFtzaXplXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICB0ZXN0c1tpXSA9IChTdHJpbmcpIGxpc3QuZ2V0KGkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgQ29sbGF0b3IgUnVsZXMKKyAgICAgKiBUaGUgUnVsZSBGaWxlIGZvcm1hdDoKKyAgICAgKiAxLiBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlcyB3aWxsIGJlIG9taXR0ZWQKKyAgICAgKiAyLiBsaW5lcyB3aXRoIHRoZSBsZWFkaW5nIGNoYXJhY3RlciAnIycgd2lsbCBiZSB0cmVhdGVkIGFzIGNvbW1lbnRzCisgICAgICogMy4gRmlsZSBlbmNvZGluZyBpcyBJU08tODg1OS0xCisgICAgICovCisgICAgU3RyaW5nIGdldENvbGxhdGlvblJ1bGVzKFN0cmluZyBydWxlRmlsZU5hbWUpIHsKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG51bGw7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG51bGw7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0ob3B0X3J1bGVzKTsKKyAgICAgICAgICAgIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMsIklTTy04ODU5LTEiKTsKKyAgICAgICAgICAgIGJyPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6IEZpbGUgYWNjZXNzIGV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpICsgIiEiKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlcyA9ICIiOworICAgICAgICBTdHJpbmcgbGluZSA9ICIiOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBsaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlYWQgRmlsZSBFcnJvciIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgY29tbWVudFBvcyA9IGxpbmUuaW5kZXhPZignIycpOworICAgICAgICAgICAgaWYgKGNvbW1lbnRQb3MgPj0gMCkgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbW1lbnRQb3MpOworICAgICAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpOworICAgICAgICAgICAgcnVsZXMgPSBydWxlcyArIGxpbmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVzOworICAgIH0KKyAgICAKKyAgICAvL0ltcGxlbWVudGluZyBxc29ydAorICAgIHZvaWQgcVNvcnRJbXBsX2phdmFfdXNla2V5cyhTdHJpbmcgc3JjW10sIGludCBmcm9tSW5kZXgsIGludCB0b0luZGV4LCBqYXZhLnRleHQuQ29sbGF0b3IgYykgeworICAgICAgICBpbnQgbG93ID0gZnJvbUluZGV4OworICAgICAgICBpbnQgaGlnaCA9IHRvSW5kZXg7CisgICAgICAgIFN0cmluZyBtaWRkbGUgPSAiIjsKKyAgICAgICAgaWYgKGhpZ2ggPiBsb3cpIHsKKyAgICAgICAgICAgIG1pZGRsZSA9IHNyY1sgKGxvdyArIGhpZ2gpIC8gMiBdOworICAgICAgICAgICAgd2hpbGUobG93IDw9IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSgobG93IDwgdG9JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2xvd10pLCBjLmdldENvbGxhdGlvbktleShtaWRkbGUpKSA8IDApKSB7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSgoaGlnaCA+IGZyb21JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2hpZ2hdKSwgYy5nZXRDb2xsYXRpb25LZXkobWlkZGxlKSkgPiAwKSkgeworICAgICAgICAgICAgICAgICAgICAtLWhpZ2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxvdyA8PSBoaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzd2FwID0gc3JjW2xvd107CisgICAgICAgICAgICAgICAgICAgIHNyY1tsb3ddID0gc3JjW2hpZ2hdOworICAgICAgICAgICAgICAgICAgICBzcmNbaGlnaF0gPSBzd2FwOworICAgICAgICAgICAgICAgICAgICArK2xvdzsKKyAgICAgICAgICAgICAgICAgICAgLS1oaWdoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGZyb21JbmRleCA8IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfamF2YV91c2VrZXlzKHNyYywgZnJvbUluZGV4LCBoaWdoLCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYobG93IDwgdG9JbmRleCkgeworICAgICAgICAgICAgICAgIHFTb3J0SW1wbF9qYXZhX3VzZWtleXMoc3JjLCBsb3csIHRvSW5kZXgsIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgcVNvcnRJbXBsX2ljdV91c2VrZXlzKFN0cmluZyBzcmNbXSwgaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgsIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IgYykgeworICAgICAgICBpbnQgbG93ID0gZnJvbUluZGV4OworICAgICAgICBpbnQgaGlnaCA9IHRvSW5kZXg7CisgICAgICAgIFN0cmluZyBtaWRkbGUgPSAiIjsKKyAgICAgICAgaWYgKGhpZ2ggPiBsb3cpIHsKKyAgICAgICAgICAgIG1pZGRsZSA9IHNyY1sgKGxvdyArIGhpZ2gpIC8gMiBdOworICAgICAgICAgICAgd2hpbGUobG93IDw9IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSgobG93IDwgdG9JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2xvd10pLCBjLmdldENvbGxhdGlvbktleShtaWRkbGUpKSA8IDApKSB7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSgoaGlnaCA+IGZyb21JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2hpZ2hdKSwgYy5nZXRDb2xsYXRpb25LZXkobWlkZGxlKSkgPiAwKSkgeworICAgICAgICAgICAgICAgICAgICAtLWhpZ2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxvdyA8PSBoaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzd2FwID0gc3JjW2xvd107CisgICAgICAgICAgICAgICAgICAgIHNyY1tsb3ddID0gc3JjW2hpZ2hdOworICAgICAgICAgICAgICAgICAgICBzcmNbaGlnaF0gPSBzd2FwOworICAgICAgICAgICAgICAgICAgICArK2xvdzsKKyAgICAgICAgICAgICAgICAgICAgLS1oaWdoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGZyb21JbmRleCA8IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfaWN1X3VzZWtleXMoc3JjLCBmcm9tSW5kZXgsIGhpZ2gsIGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihsb3cgPCB0b0luZGV4KSB7CisgICAgICAgICAgICAgICAgcVNvcnRJbXBsX2ljdV91c2VrZXlzKHNyYywgbG93LCB0b0luZGV4LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIHFTb3J0SW1wbF9ub2tleXMoU3RyaW5nIHNyY1tdLCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwgQ29tcGFyYXRvciBjKSB7CisgICAgICAgIGludCBsb3cgPSBmcm9tSW5kZXg7CisgICAgICAgIGludCBoaWdoID0gdG9JbmRleDsKKyAgICAgICAgU3RyaW5nIG1pZGRsZSA9ICIiOworICAgICAgICBpZiAoaGlnaCA+IGxvdykgeworICAgICAgICAgICAgbWlkZGxlID0gc3JjWyAobG93ICsgaGlnaCkgLyAyIF07CisgICAgICAgICAgICB3aGlsZShsb3cgPD0gaGlnaCkgeworICAgICAgICAgICAgICAgIHdoaWxlKChsb3cgPCB0b0luZGV4KSAmJiAoY29tcGFyZShzcmNbbG93XSwgbWlkZGxlLCBjKSA8IDApKSB7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSgoaGlnaCA+IGZyb21JbmRleCkgJiYgKGNvbXBhcmUoc3JjW2hpZ2hdLCBtaWRkbGUsIGMpID4gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1oaWdoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsb3cgPD0gaGlnaCkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3dhcCA9IHNyY1tsb3ddOworICAgICAgICAgICAgICAgICAgICBzcmNbbG93XSA9IHNyY1toaWdoXTsKKyAgICAgICAgICAgICAgICAgICAgc3JjW2hpZ2hdID0gc3dhcDsKKyAgICAgICAgICAgICAgICAgICAgKytsb3c7CisgICAgICAgICAgICAgICAgICAgIC0taGlnaDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihmcm9tSW5kZXggPCBoaWdoKSB7CisgICAgICAgICAgICAgICAgcVNvcnRJbXBsX25va2V5cyhzcmMsIGZyb21JbmRleCwgaGlnaCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGxvdyA8IHRvSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfbm9rZXlzKHNyYywgbG93LCB0b0luZGV4LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpbnQgY29tcGFyZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb21wYXJhdG9yIGMpIHsKKyAgICAgICAgZ2xvYmFsQ291bnQrKzsKKyAgICAgICAgcmV0dXJuIGMuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgfQorICAgIAorICAgIGludCBjb21wYXJlKGphdmEudGV4dC5Db2xsYXRpb25LZXkgc291cmNlLCBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IHRhcmdldCkgeworICAgICAgICBnbG9iYWxDb3VudCsrOworICAgICAgICByZXR1cm4gc291cmNlLmNvbXBhcmVUbyh0YXJnZXQpOworICAgIH0KKyAgICAKKyAgICBpbnQgY29tcGFyZShjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleSBzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5IHRhcmdldCkgeworICAgICAgICBnbG9iYWxDb3VudCsrOworICAgICAgICByZXR1cm4gc291cmNlLmNvbXBhcmVUbyh0YXJnZXQpOworICAgIH0gCisgICAgCisgICAgLy9DbGFzcyBmb3IgY29tbWFuZCBsaW5lIG9wdGlvbgorICAgIHN0YXRpYyBjbGFzcyBPcHRpb25TcGVjIHsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIGludCB0eXBlOworICAgICAgICBTdHJpbmdCdWZmZXIgdmFsdWU7CisgICAgICAgIHB1YmxpYyBPcHRpb25TcGVjKFN0cmluZyBuYW1lLCBpbnQgdHlwZSwgU3RyaW5nQnVmZmVyIHZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9EYXRhc2V0LnBtIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvRGF0YXNldC5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTA4ZWZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvRGF0YXNldC5wbQpAQCAtMCwwICsxLDg2IEBACisjLyoqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKi8KK3BhY2thZ2UgRGF0YXNldDsKK3VzZSBTdGF0aXN0aWNzOjpEZXNjcmlwdGl2ZTsKK3VzZSBTdGF0aXN0aWNzOjpEaXN0cmlidXRpb25zOwordXNlIHN0cmljdDsKKworIyBDcmVhdGUgYSBuZXcgRGF0YXNldCB3aXRoIHRoZSBnaXZlbiBkYXRhLgorc3ViIG5ldyB7CisgICAgbXkgKCRjbGFzcykgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IGJsZXNzIHsKKyAgICAgICAgX2RhdGEgPT4gXEBfLAorICAgICAgICBfc2NhbGUgPT4gMS4wLAorICAgICAgICBfbWVhbiA9PiAwLjAsCisgICAgICAgIF9lcnJvciA9PiAwLjAsCisgICAgfSwgJGNsYXNzOworCisgICAgbXkgJG4gPSBAXzsKKyAgICAKKyAgICBpZiAoJG4gPj0gMSkgeworICAgICAgICBteSAkc3RhdHMgPSBTdGF0aXN0aWNzOjpEZXNjcmlwdGl2ZTo6RnVsbC0+bmV3KCk7CisgICAgICAgICRzdGF0cy0+YWRkX2RhdGEoQHskc2VsZi0+e19kYXRhfX0pOworICAgICAgICAkc2VsZi0+e19tZWFufSA9ICRzdGF0cy0+bWVhbigpOworCisgICAgICAgIGlmICgkbiA+PSAyKSB7CisgICAgICAgICAgICAjIFVzZSBhIHQgZGlzdHJpYnV0aW9uIHJhdGhlciB0aGFuIEdhdXNzaWFuIGJlY2F1c2UgKGEpIHdlCisgICAgICAgICAgICAjIGFzc3VtZSBhbiB1bmRlcmx5aW5nIG5vcm1hbCBkaXN0LCAoYikgd2UgZG8gbm90IGtub3cgdGhlCisgICAgICAgICAgICAjIHN0YW5kYXJkIGRldmlhdGlvbiAtLSB3ZSBlc3RpbWF0ZSBpdCBmcm9tIHRoZSBkYXRhLCBhbmQgKGMpCisgICAgICAgICAgICAjIHdlIE1BWSBoYXZlIGEgc21hbGwgc2FtcGxlIHNpemUgKGFsc28gd29ya3MgZm9yIGxhcmdlIG4pLgorICAgICAgICAgICAgbXkgJHQgPSBTdGF0aXN0aWNzOjpEaXN0cmlidXRpb25zOjp0ZGlzdHIoJG4tMSwgMC4wMDUpOworICAgICAgICAgICAgJHNlbGYtPntfZXJyb3J9ID0gJHQgKiAkc3RhdHMtPnN0YW5kYXJkX2RldmlhdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgJHNlbGY7Cit9CisKKyMgU2V0IGEgc2NhbGluZyBmYWN0b3IgZm9yIGFsbCBkYXRhOyAxLjAgbWVhbnMgbm8gc2NhbGluZy4KKyMgU2NhbGUgbXVzdCBiZSA+IDAuCitzdWIgc2V0U2NhbGUgeworICAgIG15ICgkc2VsZiwgJHNjYWxlKSA9IEBfOworICAgICRzZWxmLT57X3NjYWxlfSA9ICRzY2FsZTsKK30KKworIyBNdWx0aXBseSB0aGUgc2NhbGluZyBmYWN0b3IgYnkgYSB2YWx1ZS4KK3N1YiBzY2FsZUJ5IHsKKyAgICBteSAoJHNlbGYsICRhKSA9IEBfOworICAgICRzZWxmLT57X3NjYWxlfSAqPSAkYTsKK30KKworIyBSZXR1cm4gdGhlIG1lYW4uCitzdWIgZ2V0TWVhbiB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntfbWVhbn0gKiAkc2VsZi0+e19zY2FsZX07Cit9CisKKyMgUmV0dXJuIGEgOTklIGVycm9yIGJhc2VkIG9uIHRoZSB0IGRpc3RyaWJ1dGlvbi4gIFRoZSBkYXRhc2V0CisjIGlzIGRlc3JpYmVkIGFzIGdldE1lYW4oKSArLy0gZ2V0RXJyb3IoKS4KK3N1YiBnZXRFcnJvciB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntfZXJyb3J9ICogJHNlbGYtPntfc2NhbGV9OworfQorCisjIERpdmlkZSB0d28gRGF0YXNldHMgYW5kIHJldHVybiBhIG5ldyBvbmUsIG1haW50YWluaW5nIHRoZQorIyBtZWFuKy8tZXJyb3IuICBUaGUgbmV3IERhdGFzZXQgaGFzIG5vIGRhdGEgcG9pbnRzLgorc3ViIGRpdmlkZSB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkcmhzID0gc2hpZnQ7CisgICAgCisgICAgbXkgJG1pbnJhdGlvID0gKCRzZWxmLT57X21lYW59IC0gJHNlbGYtPntfZXJyb3J9KSAvCisgICAgICAgICAgICAgICAgICAgKCRyaHMtPntfbWVhbn0gKyAkcmhzLT57X2Vycm9yfSk7CisgICAgbXkgJG1heHJhdGlvID0gKCRzZWxmLT57X21lYW59ICsgJHNlbGYtPntfZXJyb3J9KSAvCisgICAgICAgICAgICAgICAgICAgKCRyaHMtPntfbWVhbn0gLSAkcmhzLT57X2Vycm9yfSk7CisKKyAgICBteSAkcmVzdWx0ID0gRGF0YXNldC0+bmV3KCk7CisgICAgJHJlc3VsdC0+e19tZWFufSA9ICgkbWlucmF0aW8gKyAkbWF4cmF0aW8pIC8gMjsKKyAgICAkcmVzdWx0LT57X2Vycm9yfSA9ICRyZXN1bHQtPntfbWVhbn0gLSAkbWlucmF0aW87CisgICAgJHJlc3VsdC0+e19zY2FsZX0gPSAkc2VsZi0+e19zY2FsZX0gLyAkcmhzLT57X3NjYWxlfTsKKyAgICAkcmVzdWx0OworfQorCisxOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvTm9ybWFsaXplclBlcmZvcm1hbmNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvTm9ybWFsaXplclBlcmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OTk2MzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Ob3JtYWxpemVyUGVyZm9ybWFuY2VUZXN0LmphdmEKQEAgLTAsMCArMSw2NTEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGNsYXNzIE5vcm1hbGl6ZXJQZXJmb3JtYW5jZVRlc3QgZXh0ZW5kcyBQZXJmVGVzdCB7CisgICAgCisgICAgU3RyaW5nW10gTkZERmlsZUxpbmVzOworICAgIFN0cmluZ1tdIE5GQ0ZpbGVMaW5lczsKKyAgICBTdHJpbmdbXSBmaWxlTGluZXM7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOb3JtYWxpemVyUGVyZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXR1cChTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGlmKGJ1bGtfbW9kZSA9PSBsaW5lX21vZGUpeworICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICB9CisgICAgICAgIGlmIChmaWxlTmFtZS5lcXVhbHNJZ25vcmVDYXNlKCIiKSl7CisgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZmlsZUxpbmVzID0gcmVhZExpbmVzKGZpbGVOYW1lLCBlbmNvZGluZywgYnVsa19tb2RlKTsKKyAgICAgICAgTkZERmlsZUxpbmVzID0gbm9ybWFsaXplSW5wdXQoZmlsZUxpbmVzLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgIE5GQ0ZpbGVMaW5lcyA9IG5vcm1hbGl6ZUlucHV0KGZpbGVMaW5lcywgTm9ybWFsaXplci5ORkMpOworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IE5GQyBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfTkZDX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9ORkNfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKE5GQ0ZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SUNVX05GQ19PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IE5GRCBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9ORkRfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKE5GQ0ZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SUNVX05GRF9PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKy8qKiBJIHJlYWxseSB3aXNoIHRoZXJlIHdhcyBjb25kaXRpb25hbCBjb21waWxhdGlvbiBpbiBKYXZhICAgICAgCisgICAgICAgIC8vIFRlc3QgTkZDIFBlcmZvcm1hbmNlCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEpES19ORkNfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuQ09NUE9TRSwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RKREtfTkZDX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmZjID0gc3VuLnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoTkZDRmlsZUxpbmVzW2ldLCBzdW4udGV4dC5Ob3JtYWxpemVyLkNPTVBPU0UsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RKREtfTkZDX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5mYyA9IHN1bi50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgc3VuLnRleHQuTm9ybWFsaXplci5DT01QT1NFLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IE5GRCBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RKREtfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmZjID0gc3VuLnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoTkZERmlsZUxpbmVzW2ldLCBzdW4udGV4dC5Ob3JtYWxpemVyLkRFQ09NUCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEpES19ORkRfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShORkNGaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuREVDT01QLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SkRLX05GRF9PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShmaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuREVDT01QLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAvLyBUZXN0IEZDRCBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfRkNEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmZjID0gTm9ybWFsaXplci5ub3JtYWxpemUoTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorKiovICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfRkNEX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9GQ0RfT3JpZ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgZmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgLy8gVGVzdCBRdWljayBDaGVjayBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19ORkNfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZDX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX05GQ19PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX05GRF9ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfRkNEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5xdWlja0NoZWNrKE5GREZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5GQ0QsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19GQ0RfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX0ZDRF9PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgZmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgLy8gVGVzdCBpc05vcm1hbGl6ZWQgUGVyZm9ybWFuY2UKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SXNOb3JtYWxpemVkX05GQ19ORkRfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKE5GREZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMsIDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SXNOb3JtYWxpemVkX05GQ19ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQywgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZDX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQywgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZEX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfRkNEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfRkNEX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfRkNEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5GQ0QsIDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAgIAorICAgIHByaXZhdGUgdm9pZCBwcmludFVzYWdlKCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOiAiICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIgW09QVElPTlNdIGZpbGVOYW1lXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQtZiBvciAtLWZpbGVOYW1lICBcdGZpbGUgdG8gYmUgdXNlZCBhcyB0ZXN0IGRhdGFcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdC1zIG9yIC0tc291cmNlRGlyIFx0c291cmNlIGRpcmVjdG9yeSBmb3IgZmlsZXMgZm9sbG93ZWQgYnkgcGF0aFxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0LWUgb3IgLS1lbmNvZGluZyAgXHRlbmNvZGluZyBvZiBzb3VyY2UgZmlsZXNcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdC1iIG9yIC0tYnVsa01vZGUgIFx0bm9ybWFsaXplIHdob2xlIGZpbGUgYXQgb25jZVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0LWwgb3IgLS1saW5lTW9kZSAgXHRub3JtYWxpemUgZmlsZSBvbmUgbGluZSBhdCBhIHRpbWVcbiIKKyAgICAgICAgICAgICk7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KKyAgICBTdHJpbmdbXSBub3JtYWxpemVJbnB1dChTdHJpbmdbXSBzcmMsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlKSB7CisgICAgICAgIFN0cmluZ1tdIGRlc3QgPSBuZXcgU3RyaW5nW3NyYy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNyYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZGVzdFtpXSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNyY1tpXSwgbW9kZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1BlcmZUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9QZXJmVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjZTEzODkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9QZXJmVGVzdC5qYXZhCkBAIC0wLDAgKzEsNzU0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmY7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50b29sLlVPcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworCisvKioKKyAqIEJhc2UgY2xhc3MgZm9yIHBlcmZvcm1hbmNlIHRlc3RpbmcgZnJhbWV3b3JrLiBUbyB1c2UsIHRoZSBzdWJjbGFzcyBjYW4gc2ltcGx5CisgKiBkZWZpbmUgb25lIG9yIG1vcmUgaW5zdGFuY2UgbWV0aG9kcyB3aXRoIG5hbWVzIGJlZ2lubmluZyB3aXRoICJ0ZXN0IiAoY2FzZQorICogaWdub3JlZCkuIFRoZSBwcm90b3R5cGUgb2YgdGhlIG1ldGhvZCBpcworICogCisgKiBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0VGhlTmFtZSgpCisgKiAKKyAqIFRoZSBhY3R1YWwgcGVyZm9ybWFuY2UgdGVzdCB3aWxsIGV4ZWN1dGUgb24gdGhlIHJldHVybmVkIENvbW1vbmQgb2JqZWN0CisgKiAocmVmZXIgdG8gQ29tbWFuZCBQYXR0ZXJuKS4gVG8gY2FsbCBhIHRlc3QgZnJvbSBjb21tYW5kIGxpbmUsIHRoZSAndGVzdCcKKyAqIHByZWZpeCBvZiB0aGUgdGVzdCBtZXRob2QgbmFtZSBjYW4gYmUgaWdub3JlZC9yZW1vdmVkLgorICogCisgKiBJbiBhZGRpdGlvbiwgdGhlIHN1YmNsYXNzIHNob3VsZCBkZWZpbmUgYSBtYWluKCkgbWV0aG9kIHRoYXQgY2FsbHMKKyAqIFBlcmZUZXN0LnJ1bigpIGFzIGRlZmluZWQgaGVyZS4KKyAqIAorICogSWYgdGhlIHN1YmNsYXNzZXMgdXNlcyBhbnkgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyAoYmV5b25kIHRob3NlIGhhbmRsZWQKKyAqIGF1dG9tYXRpY2FsbHkgYnkgdGhpcyBjYWxzcykgdGhlbiBpdCBzaG91bGQgb3ZlcnJpZGUgUGVyZlRlc3Quc2V0dXAoKSB0bworICogaGFuZGxlIGl0cyBhcmd1bWVudHMuIElmIHRoZSBzdWJjbGFzc2UgbmVlZHMgbW9yZSBzb3BoaXN0aWNhdGVkIG1hbmFnZW1lbnQKKyAqIGZvciBjb250cm9sbGluZyBmaW5kaW5nL2NhbGxpbmcgdGVzdCBtZXRob2QsIGl0IGNhbiByZXBsYWNlIHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBmb3IgUGVyZlRlc3QudGVzdFByb3ZpZGVyIGJlZm9yZSBjYWxsaW5nIFBlcmZUZXN0LnJ1bigpLgorICogCisgKiBFeGFtcGxlIGludm9jYXRpb246IGphdmEgLWNwIGNsYXNzZXMgLXZlcmJvc2U6Z2MKKyAqIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuVW5pY29kZVNldFBlcmYgLS1nYyAtLXBhc3NlcyA0IC0taXRlcmF0aW9ucyAxMDAKKyAqIFVuaWNvZGVTZXRBZGQgW1s6bDpdWzpjOl1dCisgKiAKKyAqIEV4YW1wbGUgb3V0cHV0OiBbR0MgNTExSy0+MTkySygxOTg0SyksIDAuMDA4NjE3MCBzZWNzXSBbR0MgNzA0Sy0+MzUzSygxOTg0SyksCisgKiAwLjAwNTk2MTkgc2Vjc10gW0Z1bGwgR0MgNjE4Sy0+MzcxSygxOTg0SyksIDAuMDI0Mjc3OSBzZWNzXSBbRnVsbCBHQworICogMzcxSy0+MzcxSygxOTg0SyksIDAuMDIyODY0OSBzZWNzXSA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTE5NzcgMTEwOTA0NCA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTIwNDcgMTEwOTA0NCA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTE5ODcgMTEwOTA0NCA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTE5NzggMTEwOTA0NAorICogCisgKiBUaGUgW10gbGluZXMgYXJlIGVtaXR0ZWQgYnkgdGhlIEpWTSBhcyBhIHJlc3VsdCBvZiB0aGUgLXZlcmJvc2U6Z2Mgc3dpdGNoLgorICogCisgKiBMaW5lcyBiZWdpbm5pbmcgd2l0aCAnPScgYXJlIGVtaXR0ZWQgYnkgUGVyZlRlc3Q6ID0gdGVzdFVuaWNvZGVTZXRBZGQgYmVnaW4KKyAqIDEwMCBBICdiZWdpbicgc3RhdGVtZW50IGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBzZXR1cCBtZXRob2QsIHdoaWNoCisgKiBkZXRlcm1pbmVzIHdoYXQgdGVzdCBmdW5jdGlvbiBpcyBtZWFzdXJlcywgYW5kIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB0aGF0CisgKiB3aWxsIGJlIHRpbWVzLiA9IHRlc3RVbmljb2RlU2V0QWRkIGVuZCAxMjA0NyAxMTA5MDQ0IEFuICdlbmQnIHN0YXRlbWVudCBnaXZlcworICogdGhlIG5hbWUgb2YgdGhlIHNldHVwIG1ldGhvZCBhZ2FpbiwgYW5kIHRoZW4gdHdvIGludGVnZXJzLiBUaGUgZmlyc3QgaXMgdGhlCisgKiB0b3RhbCBlbGFwc2VkIHRpbWUgaW4gbWlsbGlzZWNvbmRzLCBhbmQgdGhlIHNlY29uZCBpcyB0aGUgbnVtYmVyIG9mIGV2ZW50cworICogcGVyIGl0ZXJhdGlvbi4gSW4gdGhpcyBleGFtcGxlLCB0aGUgdGltZSBwZXIgZXZlbnQgaXMgMTIwNDcgLyAoMTAwICogMTEwOTA0NCkKKyAqIG9yIDEwOC42IG5zL2V2ZW50LgorICogCisgKiBSYXcgdGltZXMgYXJlIGdpdmVuIGFzIGludGVnZXIgbXMsIGJlY2F1c2UgdGhpcyBpcyB3aGF0IHRoZSBzeXN0ZW0gbWVhc3VyZXMuCisgKiAKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBQZXJmVGVzdHsKKyAgICAvLyBDb21tYW5kLWxpbmUgb3B0aW9ucyBzZXQgdGhlc2U6CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIHZlcmJvc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyAgICAgICAgIHNvdXJjZURpcjsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgZmlsZU5hbWU7CisgICAgLy9wcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgcmVzb2x2ZWRGaWxlTmFtZTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgZW5jb2Rpbmc7CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIHVzZWxlbjsKKyAgICBwcm90ZWN0ZWQgaW50ICAgICAgICAgICAgaXRlcmF0aW9uczsKKyAgICBwcm90ZWN0ZWQgaW50ICAgICAgICAgICAgcGFzc2VzOworICAgIHByb3RlY3RlZCBpbnQgICAgICAgICAgICB0aW1lOworICAgIHByb3RlY3RlZCBib29sZWFuICAgICAgICBsaW5lX21vZGU7CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIGJ1bGtfbW9kZTsKKyAgICBwcm90ZWN0ZWQgTG9jYWxlICAgICAgICAgbG9jYWxlOworICAgIHByb3RlY3RlZCBib29sZWFuICAgICAgICBkb1ByaW9yR0M7CisgICAgcHJvdGVjdGVkIFRlc3RDbWRQcm92aWRlciB0ZXN0UHJvdmlkZXIgPSBuZXcgVGVzdFByZWZpeFByb3ZpZGVyKHRoaXMpOworICAgIAorICAgIHN0YXRpYyBpbnRlcmZhY2UgVGVzdENtZFByb3ZpZGVyIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEByZXR1cm4gVGhlIG5hbWVzIGZvciBhbGwgYXZhaWxhYmxlIHRlc3QuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2V0IGdldEFsbFRlc3RDbWROYW1lcygpOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSBuYW1lCisgICAgICAgICAqIEByZXR1cm4gV2hldGhlciB0aGUgZ2l2ZW4gbmFtZSBpcyBhIHRlc3QgbmFtZS4gVGhlIGltcGxlbWVudGF0aW9uIG1heQorICAgICAgICAgKiAgICAgICAgIGhhdmUgbW9yZSBzb3BoaXN0aWNhdGVkIG5hbWluZyBjb250cm9sIGhlcmUuCisgICAgICAgICAqICAgICAgICAgVGVzdENtZFByb3ZpZGVyLmlzVGVzdENtZCgpICE9IFNldC5jb250YWlucygpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1Rlc3RDbWQoU3RyaW5nIG5hbWUpOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSBuYW1lCisgICAgICAgICAqIEByZXR1cm4gdGhlIHRlc3QgQ29tbWFuZCBvciBudWxsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUGVyZlRlc3QuRnVuY3Rpb24gZ2V0VGVzdENtZChTdHJpbmcgbmFtZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRyZWF0IGFsbCBtZXRob2QgYmVnaW5uaW5nIHdpdGggJ3Rlc3QnIHByZWZpeCAoaWdub3JpbmcgY2FzZSkKKyAgICAgKiBmb3IgZ2l2ZW4gb2JqZWN0IGFzIHRoZSB0ZXN0IG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFRlc3RQcmVmaXhQcm92aWRlciBpbXBsZW1lbnRzIFRlc3RDbWRQcm92aWRlcnsKKyAgICAgICAgcHJpdmF0ZSBNYXAgdGhlVGVzdHMgPSBudWxsOyAvLyBNYXA8c3RyaW5nKG5vIGNhc2UpLCBzdHJpbmcod2l0aCBjYXNlKT4gCisgICAgICAgIHByaXZhdGUgU2V0IG9yZ05hbWVzID0gbnVsbDsgLy8gc2hhZG93IHJlZmVyZW5jZSwgPT10aGVUZXN0cywgZm9yIGJldHRlciBvdXRwdXQKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgcmVmZXI7CisgICAgICAgIAorICAgICAgICBUZXN0UHJlZml4UHJvdmlkZXIoT2JqZWN0IHRoZVByb3ZpZGVyKXsKKyAgICAgICAgICAgIHJlZmVyID0gdGhlUHJvdmlkZXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTZXQgZ2V0QWxsVGVzdENtZE5hbWVzKCkgeworICAgICAgICAgICAgaWYgKHRoZVRlc3RzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aGVUZXN0cyA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAgICAgb3JnTmFtZXMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIE1ldGhvZFtdIG1ldGhvZHMgPSByZWZlci5nZXRDbGFzcygpLmdldERlY2xhcmVkTWV0aG9kcygpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvcmcgPSBtZXRob2RzW2ldLmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBvcmcudG9Mb3dlckNhc2UoKTsgICAgLy8gaWdub3JpbmcgY2FzZQorICAgICAgICAgICAgICAgICAgICAvLyBiZWdpbm5pbmcgd2l0aCAndGVzdCcKKyAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogbWV0aG9kcyBuYW1lZCAndGVzdCgpJyBhcmUgaWdub3JlZAorICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDQgJiYgbmFtZS5zdGFydHNXaXRoKCJ0ZXN0IikpIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhlVGVzdHMuY29udGFpbnNLZXkobmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkR1cGxpY2F0ZSBtZXRob2QgbmFtZSBpZ25vcmluZyBjYXNlOiAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0aGVUZXN0cy5wdXQobmFtZSxvcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgb3JnTmFtZXMuYWRkKG9yZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb3JnTmFtZXM7IC8vIGJlZ2dpbmluZyB3aXRoICd0ZXN0Jywga2VlcGluZyBjYXNlCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZ2l2ZW4gbmFtZSB3aWxsIG1hcCB0byBhIG1ldGhvZCBvZiB0aGUgc2FtZSBuYW1lLCBvciBhIG1ldGhvZAorICAgICAgICAgKiBuYW1lZCAidGVzdCIgKyBuYW1lLiBDYXNlIGlzIGlnbm9yZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFN0cmluZyBpc1Rlc3RDbWRfaW1wbChTdHJpbmcgbmFtZSl7CisgICAgICAgICAgICBnZXRBbGxUZXN0Q21kTmFtZXMoKTsKKyAgICAgICAgICAgIFN0cmluZyB0bjEgPSBuYW1lLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBTdHJpbmcgdG4yID0gInRlc3QiICsgdG4xOworICAgICAgICAgICAgaWYgKHRoZVRlc3RzLmNvbnRhaW5zS2V5KHRuMSkpeworICAgICAgICAgICAgICAgIHJldHVybiB0bjE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRoZVRlc3RzLmNvbnRhaW5zS2V5KHRuMikpeworICAgICAgICAgICAgICAgIHJldHVybiB0bjI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNUZXN0Q21kKFN0cmluZyBuYW1lKXsKKyAgICAgICAgICAgIHJldHVybiBpc1Rlc3RDbWRfaW1wbChuYW1lKSE9bnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIEZ1bmN0aW9uIGdldFRlc3RDbWQoU3RyaW5nIGFuYW1lKXsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgdGhlVGVzdHMuZ2V0KGlzVGVzdENtZF9pbXBsKGFuYW1lKSk7CisgICAgICAgICAgICBpZiAobmFtZSA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBNZXRob2QgbSA9IHJlZmVyLmdldENsYXNzKCkuZ2V0RGVjbGFyZWRNZXRob2QobmFtZSxudWxsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKEZ1bmN0aW9uKSBtLmludm9rZShyZWZlciwgbmV3IE9iamVjdFtde30pOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3RQcmVmaXhQcm92aWRlciBpbXBsZW1lbnRhdGlvbiBlcnJvci4gRmluZGluZzogIiArIG5hbWUsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworICAgIAorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBvZiBQZXJmVGVzdCB3aWxsIG5lZWQgdG8gY3JlYXRlIHN1YmNsYXNzZXMgb2YKKyAgICAgKiBGdW5jdGlvbiB0aGF0IGRlZmluZSBhIGNhbGwoKSBtZXRob2Qgd2hpY2ggY29udGFpbnMgdGhlIGNvZGUgdG8KKyAgICAgKiBiZSB0aW1lZC4gIFRoZXkgdGhlbiBjYWxsIHNldFRlc3RGdW5jdGlvbigpIGluIHRoZWlyICJUZXN0Li4uIgorICAgICAqIG1ldGhvZCB0byBlc3RhYmxpc2ggdGhpcyBhcyB0aGUgY3VycmVudCB0ZXN0IGZ1bmN0b3IuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBGdW5jdGlvbiB7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gZG8gdGhlIGFjdGlvbiB0byBiZQorICAgICAgICAgKiBtZWFzdXJlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGNhbGwoKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3ViY2xhc3NlcyBtYXkgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIHJldHVybiBwb3NpdGl2ZQorICAgICAgICAgKiBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiBvcGVyYXRpb25zIGluIGEgc2luZ2xlCisgICAgICAgICAqIGNhbGwgdG8gdGhpcyBvYmplY3QncyBjYWxsKCkgbWV0aG9kLiAgSWYgc3ViY2xhc3NlcyBkbyBub3QKKyAgICAgICAgICogb3ZlcnJpZGUgdGhpcyBtZXRob2QsIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgMS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTdWJjbGFzc2VzIG1heSBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gcmV0dXJuIGVpdGhlciBwb3NpdGl2ZQorICAgICAgICAgKiBvciBuZWdhdGl2ZSBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiBldmVudHMgaW4gYSBzaW5nbGUKKyAgICAgICAgICogY2FsbCB0byB0aGlzIG9iamVjdCdzIGNhbGwoKSBtZXRob2QuICBJZiBzdWJjbGFzc2VzIGRvIG5vdAorICAgICAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyAtMSwKKyAgICAgICAgICogaW5kaWNhdGluZyB0aGF0IGV2ZW50cyBhcmUgbm90IGFwcGxpY2FibGUgdG8gdGhpcyB0ZXN0LgorICAgICAgICAgKiBlLmc6IE51bWJlciBvZiBicmVha3MgLyBpdGVyYXRpb25zIGZvciBicmVhayBpdGVyYXRvcgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGxvbmcgZ2V0RXZlbnRzUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhbGwgY2FsbCgpIG4gdGltZXMgaW4gYSB0aWdodCBsb29wIGFuZCByZXR1cm4gdGhlIGVsYXBzZWQKKyAgICAgICAgICogbWlsbGlzZWNvbmRzLiAgSWYgbiBpcyBzbWFsbCBhbmQgY2FsbCgpIGlzIGZhc3QgdGhlIHJldHVybgorICAgICAgICAgKiByZXN1bHQgbWF5IGJlIHplcm8uICBTbWFsbCByZXR1cm4gdmFsdWVzIGhhdmUgbGltaXRlZAorICAgICAgICAgKiBtZWFuaW5nZnVsbmVzcywgZGVwZW5kaW5nIG9uIHRoZSB1bmRlcmx5aW5nIFZNIGFuZCBPUy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBsb25nIHRpbWUobG9uZyBuKSB7CisgICAgICAgICAgICBsb25nIHN0YXJ0LCBzdG9wOworICAgICAgICAgICAgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChuLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgY2FsbCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RvcCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgcmV0dXJuIHN0b3AgLSBzdGFydDsgLy8gbXMKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4Y2VwdGlvbiBpbmRpY2F0aW5nIGEgdXNhZ2UgZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBVc2FnZUV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgICAgIHB1YmxpYyBVc2FnZUV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICAgICAgc3VwZXIobWVzc2FnZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVXNhZ2VFeGNlcHRpb24oKSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHJvdGVjdGVkIFBlcmZUZXN0KCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyYW1ld29yayBtZXRob2QuICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHBhcnNlIGFueQorICAgICAqIGV4dHJhIGFyZ3VtZW50cy4gIFN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHRoaXMgdG8gcGFyc2UgZXh0cmEKKyAgICAgKiBhcmd1bWVudHMuICBTdWJjbGFzcyBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIE5PVCBjYWxsIHRoZSBiYXNlCisgICAgICogY2xhc3MgaW1wbGVtZW50YXRpb24uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRXh0cmEgYXJndW1lbnRzIHJlY2VpdmVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIGdldE9wdGlvbnMoKS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IEhFTFAxID0gMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IEhFTFAyID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IFZFUkJPU0UgPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU09VUkNFRElSID0gMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IEVOQ09ESU5HID0gNDsKKyAgICBzdGF0aWMgZmluYWwgaW50IFVTRUxFTiA9IDU7CisgICAgc3RhdGljIGZpbmFsIGludCBGSUxFX05BTUUgPSA2OworICAgIHN0YXRpYyBmaW5hbCBpbnQgUEFTU0VTID0gNzsKKyAgICBzdGF0aWMgZmluYWwgaW50IElURVJBVElPTlMgPSA4OworICAgIHN0YXRpYyBmaW5hbCBpbnQgVElNRSA9IDk7CisgICAgc3RhdGljIGZpbmFsIGludCBMSU5FX01PREUgPSAxMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IEJVTEtfTU9ERSA9IDExOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTE9DQUxFID0gMTI7CisgICAgLy8gT3B0aW9ucyBhYm92ZSBoZXJlIGFyZSBpZGVudGljYWwgdG8gdGhvc2UgaW4gQzsga2VlcCBpbiBzeW5jIHdpdGggQworICAgIC8vIE9wdGlvbnMgYmVsb3cgaGVyZSBhcmUgdW5pcXVlIHRvIEphdmE7IHNoaWZ0IGRvd24gYXMgbmVjZXNzYXJ5CisgICAgc3RhdGljIGZpbmFsIGludCBHQVJCQUdFX0NPTExFQ1QgPSAxMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IExJU1QgPSAxNDsKKworICAgIFVPcHRpb25bXSBnZXRPcHRpb25zKCkgeworICAgICAgICByZXR1cm4gbmV3IFVPcHRpb25bXSB7CisgICAgICAgICAgICBVT3B0aW9uLkhFTFBfSCgpLAorICAgICAgICAgICAgVU9wdGlvbi5IRUxQX1FVRVNUSU9OX01BUksoKSwKKyAgICAgICAgICAgIFVPcHRpb24uVkVSQk9TRSgpLAorICAgICAgICAgICAgVU9wdGlvbi5TT1VSQ0VESVIoKSwKKyAgICAgICAgICAgIFVPcHRpb24uRU5DT0RJTkcoKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAidXNlbGVuIiwgICAgICAgICd1JywgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJmaWxlLW5hbWUiLCAgICAgJ2YnLCBVT3B0aW9uLlJFUVVJUkVTX0FSRyksCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggInBhc3NlcyIsICAgICAgICAncCcsIFVPcHRpb24uUkVRVUlSRVNfQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAiaXRlcmF0aW9ucyIsICAgICdpJywgVU9wdGlvbi5SRVFVSVJFU19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJ0aW1lIiwgICAgICAgICAgJ3QnLCBVT3B0aW9uLlJFUVVJUkVTX0FSRyksCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggImxpbmUtbW9kZSIsICAgICAnbCcsIFVPcHRpb24uTk9fQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAiYnVsay1tb2RlIiwgICAgICdiJywgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJsb2NhbGUiLCAgICAgICAgJ0wnLCBVT3B0aW9uLlJFUVVJUkVTX0FSRyksCisKKyAgICAgICAgICAgIC8vIE9wdGlvbnMgYWJvdmUgaGVyZSBhcmUgaWRlbnRpY2FsIHRvIHRob3NlIGluIEM7IGtlZXAgaW4gc3luYworICAgICAgICAgICAgLy8gT3B0aW9ucyBiZWxvdyBoZXJlIGFyZSB1bmlxdWUgdG8gSmF2YQorCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggImdjIiwgICAgICAgICAgICAnZycsIFVPcHRpb24uTk9fQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAibGlzdCIsICAgICAoY2hhciktMSwgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2QgaW4gdGhlaXIgbWFpbigpLiAgcnVuKCkgd2lsbAorICAgICAqIGluIHR1cm4gY2FsbCBzZXR1cCgpIHdpdGggYW55IGFyZ3VtZW50cyBpdCBkb2VzIG5vdCBwYXJzZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBwYXJzZXMgdGhlIGNvbW1hbmQgbGluZSBhbmQgcnVucyB0aGUgdGVzdHMgZ2l2ZW4gb24KKyAgICAgKiB0aGUgY29tbWFuZCBsaW5lLCB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAgU2VlIHRoZSBjbGFzcworICAgICAqIGRlc2NyaXB0aW9uIGZvciBkZXRhaWxzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHJ1bihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU2V0IHRlc3RMaXN0ID0gcGFyc2VPcHRpb25zKGFyZ3MpOworCisgICAgICAgIC8vIFJ1biB0aGUgdGVzdHMKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdGVyID0gdGVzdExpc3QuaXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBTdHJpbmcgbWV0aCA9IChTdHJpbmcpIGl0ZXIubmV4dCgpOworCisgICAgICAgICAgICAvLyBDYWxsIG1ldGggdG8gc2V0IHVwIHRoZSB0ZXN0CisgICAgICAgICAgIC8vIGxvbmcgZXZlbnRzUGVyQ2FsbCA9IC0xOworICAgICAgICAgICAgRnVuY3Rpb24gdGVzdEZ1bmN0aW9uID0gdGVzdFByb3ZpZGVyLmdldFRlc3RDbWQobWV0aCk7CisgICAgICAgICAgICBpZiAodGVzdEZ1bmN0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihtZXRoICsgIiBmYWlsZWQgdG8gcmV0dXJuIGEgdGVzdCBmdW5jdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRlc3RGdW5jdGlvbi5nZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgPCAxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obWV0aCArICIgcmV0dXJuZWQgYW4gaWxsZWdhbCBvcGVyYXRpb25zL2l0ZXJhdGlvbigpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvbmcgdDsKKyAgICAgICAgICAgIC8vbG9uZyBiID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBsb25nIGxvb3BzID0gZ2V0SXRlcmF0aW9uKG1ldGgsIHRlc3RGdW5jdGlvbik7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVGhlIGd1ZXNzIGNvc3Q6ICIgKyAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBiKS8xMDAwLiArICIgcy4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHBhc3NlczsgKytqKSB7CisgICAgICAgICAgICAgICAgbG9uZyBldmVudHMgPSAtMTsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlcmF0aW9ucyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPSAiICsgbWV0aCArICIgYmVnaW4gIiArIGl0ZXJhdGlvbnMpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoICsgIiBiZWdpbiAiICsgdGltZSArICIgc2Vjb25kcyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoICsgIiBiZWdpbiAiICk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdCA9IHRlc3RGdW5jdGlvbi50aW1lKGxvb3BzKTsgICAvL21zCisgICAgICAgICAgICAgICAgZXZlbnRzID0gdGVzdEZ1bmN0aW9uLmdldEV2ZW50c1Blckl0ZXJhdGlvbigpOworCisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50cyA9PSAtMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGggKyAiIGVuZCAiICsgKHQvMTAwMC4wKSArICIgbG9vcHM6ICIgKyBsb29wcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG9wZXJhdGlvbnM6ICIgKyB0ZXN0RnVuY3Rpb24uZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPSAiICsgbWV0aCArICIgZW5kICIgKyAodC8xMDAwLjApICsgIiBsb29wczogIiArIGxvb3BzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgb3BlcmF0aW9uczogIiArIHRlc3RGdW5jdGlvbi5nZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgKyIgZXZlbnRzOiAiICsgZXZlbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudHMgPT0gLTEpeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoICsgIiBlbmQgIiArICh0LzEwMDAuMCkgKyAiICIgKyBsb29wcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyB0ZXN0RnVuY3Rpb24uZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPSAiICsgbWV0aCArICIgZW5kICIgKyAodC8xMDAwLjApICsgIiAiICsgbG9vcHMgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgdGVzdEZ1bmN0aW9uLmdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSArICIgIiArIGV2ZW50cyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcmdzCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgICAgIHRoZSBtZXRob2QgbGlzdCB0byBjYWxsCisgICAgICogQHRocm93cyBVc2FnZUV4Y2VwdGlvbgorICAgICAqLworICAgIHByaXZhdGUgU2V0IHBhcnNlT3B0aW9ucyhTdHJpbmdbXSBhcmdzKSB0aHJvd3MgVXNhZ2VFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgZG9QcmlvckdDID0gZmFsc2U7CisgICAgICAgIGVuY29kaW5nID0gIiI7CisgICAgICAgIHVzZWxlbiA9IGZhbHNlOworICAgICAgICBmaWxlTmFtZSA9IG51bGw7CisgICAgICAgIHNvdXJjZURpciA9IG51bGw7CisgICAgICAgIC8vbGluZXMgPSBudWxsOworICAgICAgICBsaW5lX21vZGUgPSBmYWxzZTsKKyAgICAgICAgLy9idWZmZXIgPSBudWxsOworICAgICAgICAvL2J1ZmZlckxlbiA9IDA7CisgICAgICAgIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAgICAgYnVsa19tb2RlID0gZmFsc2U7CisgICAgICAgIHBhc3NlcyA9IGl0ZXJhdGlvbnMgPSB0aW1lID0gLTE7CisgICAgICAgIGxvY2FsZSA9IG51bGw7CisKKyAgICAgICAgVU9wdGlvbltdIG9wdGlvbnMgPSBnZXRPcHRpb25zKCk7CisgICAgICAgIGludCByZW1haW5pbmdBcmdjID0gVU9wdGlvbi5wYXJzZUFyZ3MoYXJncywgb3B0aW9ucyk7CisKKyAgICAgICAgaWYoYXJncy5sZW5ndGg9PTAgfHwgb3B0aW9uc1tIRUxQMV0uZG9lc09jY3VyIHx8IG9wdGlvbnNbSEVMUDJdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVzYWdlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1ZFUkJPU0VdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdmVyYm9zZSA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1NPVVJDRURJUl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBzb3VyY2VEaXIgPSBvcHRpb25zW1NPVVJDRURJUl0udmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0VOQ09ESU5HXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGVuY29kaW5nID0gb3B0aW9uc1tFTkNPRElOR10udmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1VTRUxFTl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB1c2VsZW4gPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYob3B0aW9uc1tGSUxFX05BTUVdLmRvZXNPY2N1cil7CisgICAgICAgICAgICBmaWxlTmFtZSA9IG9wdGlvbnNbRklMRV9OQU1FXS52YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpb25zW1RJTUVdLmRvZXNPY2N1ciAmJiBvcHRpb25zW0lURVJBVElPTlNdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVzYWdlRXhjZXB0aW9uKCJDYW5ub3Qgc3BlY2lmeSBib3RoICctdCB0aW1lJyBhbmQgJy1pIGl0ZXJhdGlvbnMnIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9wdGlvbnNbVElNRV0uZG9lc09jY3VyICYmICFvcHRpb25zW0lURVJBVElPTlNdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVzYWdlRXhjZXB0aW9uKCJFaXRoZXIgJy10IHRpbWUnIG9yICctaSBpdGVyYXRpb24nIG11c3QgYmUgc3BlY2lmaWVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKG9wdGlvbnNbUEFTU0VTXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIHBhc3NlcyA9IEludGVnZXIucGFyc2VJbnQob3B0aW9uc1tQQVNTRVNdLnZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVc2FnZUV4Y2VwdGlvbigiJy1wIHBhc3MnIG11c3QgYmUgc3BlY2lmaWVkIik7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0lURVJBVElPTlNdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgaXRlcmF0aW9ucyA9IEludGVnZXIucGFyc2VJbnQob3B0aW9uc1tJVEVSQVRJT05TXS52YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1RJTUVdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGltZSA9IEludGVnZXIucGFyc2VJbnQob3B0aW9uc1tUSU1FXS52YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW9uc1tMSU5FX01PREVdLmRvZXNPY2N1ciAmJiBvcHRpb25zW0JVTEtfTU9ERV0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVXNhZ2VFeGNlcHRpb24oIkNhbm5vdCBzcGVjaWZ5IGJvdGggbGluZSBtb2RlIGFuZCBidWxrIG1vZGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbTElORV9NT0RFXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGxpbmVfbW9kZSA9IHRydWU7CisgICAgICAgICAgICBidWxrX21vZGUgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbQlVMS19NT0RFXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGJ1bGtfbW9kZSA9IHRydWU7CisgICAgICAgICAgICBsaW5lX21vZGUgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbTE9DQUxFXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUob3B0aW9uc1tMT0NBTEVdLnZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbR0FSQkFHRV9DT0xMRUNUXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGRvUHJpb3JHQyA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW9uc1tMSVNUXS5kb2VzT2NjdXIpeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJBdmFpbGFibGUgdGVzdHM6Iik7CisgICAgICAgICAgICBTZXQgdGVzdE5hbWVzID0gdGVzdFByb3ZpZGVyLmdldEFsbFRlc3RDbWROYW1lcygpOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdGVyID0gdGVzdE5hbWVzLml0ZXJhdG9yKCk7IGl0ZXIuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgIiArIG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKworICAgICAgICBTZXQgdGVzdExpc3QgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgZm9yIChpPTA7IGk8cmVtYWluaW5nQXJnYzsgKytpKSB7CisKKyAgICAgICAgICAgIC8vIGlzIGFyZ3NbaV0gYSBtZXRob2QgbmFtZT8KKyAgICAgICAgICAgIGlmICh0ZXN0UHJvdmlkZXIuaXNUZXN0Q21kKGFyZ3NbaV0pKXsKKyAgICAgICAgICAgICAgICB0ZXN0TGlzdC5hZGQoYXJnc1tpXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFyZ3NbaV0gaXMgbmVpdGhlciBhIG1ldGhvZCBuYW1lIG5vciBhIG51bWJlci4gIFBhc3MKKyAgICAgICAgICAgICAgICAvLyBldmVyeXRoaW5nIGZyb20gaGVyZSBvbiB0aHJvdWdoIHRvIHRoZSBzdWJjbGFzcyB2aWEKKyAgICAgICAgICAgICAgICAvLyBzZXR1cCgpLgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RMaXN0LnNpemUoKSA8IDEpIHsgLy8gcnVuIGFsbCB0ZXN0cworICAgICAgICAgICAgU2V0IHRlc3ROYW1lcyA9IHRlc3RQcm92aWRlci5nZXRBbGxUZXN0Q21kTmFtZXMoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IHRlc3ROYW1lcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpIGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIHRlc3RMaXN0LmFkZChuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFBhc3MgcmVtYWluaW5nIGFyZ3VtZW50cywgaWYgYW55LCB0aHJvdWdoIHRvIHRoZSBzdWJjbGFzcworICAgICAgICAvLyB2aWEgc2V0dXAoKSBtZXRob2QuCisgICAgICAgIFN0cmluZ1tdIHN1YmNsYXNzQXJncyA9IG5ldyBTdHJpbmdbcmVtYWluaW5nQXJnYyAtIGldOworICAgICAgICBmb3IgKGo9MDsgaTxyZW1haW5pbmdBcmdjOyArK2opIHsKKyAgICAgICAgICAgIHN1YmNsYXNzQXJnc1tqXSA9IGFyZ3NbaSsrXTsKKyAgICAgICAgfQorICAgICAgICBzZXR1cChzdWJjbGFzc0FyZ3MpOworCisgICAgICAgIGlmIChkb1ByaW9yR0MpIHsKKyAgICAgICAgICAgIC8vIFB1dCB0aGUgaGVhcCBpbiBhIGNvbnNpc3RlbnQgc3RhdGUKKyAgICAgICAgICAgIGdjKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlc3RMaXN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGF0ZSAnLXQgdGltZScgdG8gaXRlcmF0aW9ucyAob3IganVzdCByZXR1cm4gJy1pIGl0ZXJhdGlvbicpCisgICAgICogCisgICAgICogQHBhcmFtIG1ldGgKKyAgICAgKiBAcGFyYW0gZm4KKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGdldEl0ZXJhdGlvbihTdHJpbmcgbWV0aE5hbWUsIEZ1bmN0aW9uIGZuKSB7CisgICAgICAgIGxvbmcgaXRlciA9IDA7CisgICAgICAgIGlmKHRpbWUgPCAwKSB7IC8vICYmIGl0ZXJhdGlvbnMgPiAwCisgICAgICAgICAgICBpdGVyID0gaXRlcmF0aW9uczsKKyAgICAgICAgfSBlbHNlIHsgIC8vICYmIGl0ZXJhdGlvbnMgPCAwCisgICAgICAgICAgICAvLyBUcmFuc2xhdGUgdGltZSB0byBpdGVyYXRpb24KKyAgICAgICAgICAgIC8vIEFzc3VtaW5nIHRoZXJlIGlzIGEgbGluZWFyIHJlbGF0aW9uIGJldHdlZW4gdGltZSBhbmQgaXRlcmF0aW9ucworCisgICAgICAgICAgICBpZih2ZXJib3NlKXsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGhOYW1lICsgIiBjYWxpYnJhdGluZyAiICsgdGltZSArICIgc2Vjb25kcyIgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9uZyBiYXNlID0gdGltZSAqIDEwMDA7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYmFzZSA6IiArIGJhc2UpOworICAgICAgICAgICAgbG9uZyBzZWVkID0gMTsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvbmcgdD0wOworICAgICAgICAgICAgd2hpbGUgKHQgPCBiYXNlICogMC45IHx8IGJhc2UgKiAxLjEgPCB0KSB7IC8vICsgLSAxMCUgIAorICAgICAgICAgICAgICAgIGlmIChpdGVyID09IDAgfHwgdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIgPSBzZWVkOyAgICAvLyBzdGFydCB1cCBmcm9tIDEKKyAgICAgICAgICAgICAgICAgICAgc2VlZCAqPSAxMDA7ICAgIC8vIGlmIHRoZSBtZXRob2QgaXMgdG9vIGZhc3QgKHQgPT0gMCksIG11bHRpcGx5IDEwMCB0aW1lcworICAgICAgICAgICAgICAgICAgICAvLyAxMDAgaXMgcmF0aW9uYWwgYmVjYXVzZSAnYmFzZScgaXMgYWx3YXlzIGxhcmdlciB0aGFuIDEwMDAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiAndCcgaXMgbGFyZ2UgZW5vdWdoLCB1c2UgbGluZWFyIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBuZXcgaXRlcmF0aW9uCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIC8vIG5ldyBpdGVyKGJhc2UpICAgIG9sZCBpdGVyCisgICAgICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tID0gLS0tLS0tLS0gPSBrCisgICAgICAgICAgICAgICAgICAgIC8vIG5ldyB0aW1lICAgICAgICAgIG9sZCB0aW1lCisgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiZWZvcmUgZ3Vlc3MgdDogIiArIHQpOworLy8gICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYmVmb3JlIGd1ZXNzIGl0ZXI6ICIgKyBpdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlciA9IChsb25nKSAoKGRvdWJsZSlpdGVyIC8gdCAqIGJhc2UpIDsgIC8vIGF2b2lkIGxvbmcgY3V0LCBlZy4gMS8xMCA9PSAwCisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJVbmFibGUgdG8gY29udmVyZ2Ugb24gZGVzaXJlZCBkdXJhdGlvbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHQgPSBmbi50aW1lKGl0ZXIpOworICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbmFsIHQgOiAiICsgdCk7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmluYWwgaSA6ICIgKyBpdGVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlcjsgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogSW52b2tlIHRoZSBydW50aW1lJ3MgZ2FyYmFnZSBjb2xsZWN0aW9uIHByb2NlZHVyZSByZXBlYXRlZGx5CisgICAgICogdW50aWwgdGhlIGFtb3VudCBvZiBmcmVlIG1lbW9yeSBzdGFiaWxpemVzIHRvIHdpdGhpbiAxMCUuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZ2MoKSB7CisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgbG9uZyBsYXN0OworICAgICAgICAgICAgbG9uZyBmcmVlID0gMTsKKyAgICAgICAgICAgIFJ1bnRpbWUgcnVudGltZSA9IFJ1bnRpbWUuZ2V0UnVudGltZSgpOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIHJ1bnRpbWUuZ2MoKTsKKyAgICAgICAgICAgICAgICBsYXN0ID0gZnJlZTsKKyAgICAgICAgICAgICAgICBmcmVlID0gcnVudGltZS5mcmVlTWVtb3J5KCk7CisgICAgICAgICAgICB9IHdoaWxlICgoKGRvdWJsZSlNYXRoLmFicyhmcmVlIC0gbGFzdCkpIC8gZnJlZSA+IDAuMSk7CisgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgY2hhbmdlIGluIGZyZWUgbWVtb3J5IHRvIGRyb3AgdW5kZXIgMTAlCisgICAgICAgICAgICAvLyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgY2FsbHMuCisgICAgICAgIH0KKworICAgICAgICAvLyBGcm9tICJKYXZhIFBsYXRmb3JtIFBlcmZvcm1hbmNlIi4gIFRoaXMgaXMgdGhlIHByb2NlZHVyZQorICAgICAgICAvLyByZWNvbW1lbmRlZCBieSBKYXZhc29mdC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN5c3RlbS5nYygpOworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgICAgICBTeXN0ZW0ucnVuRmluYWxpemF0aW9uKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKworICAgICAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIFN5c3RlbS5ydW5GaW5hbGl6YXRpb24oKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDApOworICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7fQorICAgIH0KKworCisgICAgLyoqCisgICAgICogUHJpdmF0ZSB1dGlsaXR5IHRvIGNvbnZlcnQgYSBMaXN0IG9mIEludGVnZXIgb2JqZWN0cyB0byBpbnRbXS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSB0b0ludEFycmF5KExpc3QgbGlzdCkgeworICAgICAgICBpbnRbXSByZXN1bHQgPSBuZXcgaW50W2xpc3Quc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9ICgoSW50ZWdlcikgbGlzdC5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBjaGFyW10gcmVhZFRvRU9TKElucHV0U3RyZWFtUmVhZGVyIHN0cmVhbSkgeworICAgICAgICBBcnJheUxpc3QgdmVjID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgZmluYWwgaW50IE1BWExFTkdUSCA9IDB4ODAwMDsgLy8gbWF4IGJ1ZmZlciBzaXplIC0gMzJLCisgICAgICAgIGludCBsZW5ndGggPSAweDgwOyAvLyBzdGFydCB3aXRoIHNtYWxsIGJ1ZmZlcnMgYW5kIHdvcmsgdXAKKyAgICAgICAgZG8geworICAgICAgICAgICAgcG9zID0gMDsKKyAgICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aCA+PSBNQVhMRU5HVEggPyBNQVhMRU5HVEggOiBsZW5ndGggKiAyOworICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG4gPSBzdHJlYW0ucmVhZChidWZmZXIsIHBvcywgbGVuZ3RoIC0gcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IG47CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocG9zIDwgbGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ZWMuYWRkKGJ1ZmZlcik7CisgICAgICAgICAgICBjb3VudCArPSBwb3M7CisgICAgICAgIH0gd2hpbGUgKHBvcyA9PSBsZW5ndGgpOworCisgICAgICAgIGNoYXJbXSBkYXRhID0gbmV3IGNoYXJbY291bnRdOworICAgICAgICBwb3MgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlYy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgY2hhcltdIGJ1ZiA9IChjaGFyW10pdmVjLmdldChpKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBNYXRoLm1pbihidWYubGVuZ3RoLCBjb3VudCAtIHBvcyk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZiwgMCwgZGF0YSwgcG9zLCBsZW4pOworICAgICAgICAgICAgcG9zICs9IGxlbjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBieXRlW10gcmVhZFRvRU9TKElucHV0U3RyZWFtIHN0cmVhbSkgeworCisgICAgICAgIEFycmF5TGlzdCB2ZWMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICBmaW5hbCBpbnQgTUFYTEVOR1RIID0gMHg4MDAwOyAvLyBtYXggYnVmZmVyIHNpemUgLSAzMksKKyAgICAgICAgaW50IGxlbmd0aCA9IDB4ODA7IC8vIHN0YXJ0IHdpdGggc21hbGwgYnVmZmVycyBhbmQgd29yayB1cAorICAgICAgICBkbyB7CisgICAgICAgICAgICBwb3MgPSAwOworICAgICAgICAgICAgbGVuZ3RoID0gbGVuZ3RoID49IE1BWExFTkdUSCA/IE1BWExFTkdUSCA6IGxlbmd0aCAqIDI7CisgICAgICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbbGVuZ3RoXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IHN0cmVhbS5yZWFkKGJ1ZmZlciwgcG9zLCBsZW5ndGggLSBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwb3MgKz0gbjsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChwb3MgPCBsZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZlYy5hZGQoYnVmZmVyKTsKKyAgICAgICAgICAgIGNvdW50ICs9IHBvczsKKyAgICAgICAgfSB3aGlsZSAocG9zID09IGxlbmd0aCk7CisKKworICAgICAgICBieXRlW10gZGF0YSA9IG5ldyBieXRlW2NvdW50XTsKKyAgICAgICAgcG9zID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGJ5dGVbXSBidWYgPSAoYnl0ZVtdKXZlYy5nZXQoaSk7CisgICAgICAgICAgICBpbnQgbGVuID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgY291bnQgLSBwb3MpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWYsIDAsIGRhdGEsIHBvcywgbGVuKTsKKyAgICAgICAgICAgIHBvcyArPSBsZW47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZ1tdIHJlYWRMaW5lcyhTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyBlbmNvZGluZywgYm9vbGVhbiBidWxrTW9kZSkgeworICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbnVsbDsKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbnVsbDsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlTmFtZSk7CisgICAgICAgICAgICBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlzLCBlbmNvZGluZyk7CisgICAgICAgICAgICBicj0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiBGaWxlIGFjY2VzcyBleGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgfQorICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbGluZSA9IHJlYWREYXRhTGluZShicik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiUmVhZCBGaWxlIEVycm9yIiArIGUuZ2V0TWVzc2FnZSgpICsgIiEiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICBsaXN0LmFkZChsaW5lKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBzaXplID0gbGlzdC5zaXplKCk7CisgICAgICAgIFN0cmluZ1tdIGxpbmVzID0gbnVsbDsKKworICAgICAgICBpZiAoYnVsa01vZGUpIHsKKyAgICAgICAgICAgIGxpbmVzID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoU3RyaW5nKSBsaXN0LmdldChpKSk7CisgICAgICAgICAgICAgICAgLyppZiAoaSA8IChzaXplIC0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXHJcbiIpOworICAgICAgICAgICAgICAgIH0qLworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGluZXNbMF0gPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVzID0gbmV3IFN0cmluZyBbc2l6ZV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgICAgIGxpbmVzW2ldID0gKFN0cmluZykgbGlzdC5nZXQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZXM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZWFkRGF0YUxpbmUoQnVmZmVyZWRSZWFkZXIgYnIpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgb3JpZ2luYWxMaW5lID0gIiI7CisgICAgICAgIFN0cmluZyBsaW5lID0gIiI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsaW5lID0gb3JpZ2luYWxMaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHJldHVybiBudWxsOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPiAwICYmIGxpbmUuY2hhckF0KDApID09IDB4RkVGRikgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgaW50IGNvbW1lbnRQb3MgPSBsaW5lLmluZGV4T2YoJyMnKTsKKyAgICAgICAgICAgIGlmIChjb21tZW50UG9zID49IDApIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBjb21tZW50UG9zKTsKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkxpbmUgXCJ7MH1cIiwgIFwiezF9XCIiICsgb3JpZ2luYWxMaW5lICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGluZSArICIgIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9SQkJJUGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvUkJCSVBlcmYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjAzMjg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvUkJCSVBlcmYuamF2YQpAQCAtMCwwICsxLDE1NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKKworLyoqCisgKiBBIGNsYXNzIGZvciB0ZXN0aW5nIFVuaWNvZGVTZXQgcGVyZm9ybWFuY2UuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHNpbmNlIElDVSAyLjQKKyAqLworcHVibGljIGNsYXNzIFJCQklQZXJmIGV4dGVuZHMgUGVyZlRlc3QgeworCisgICAgU3RyaW5nICAgICAgICAgICAgICAgICAgZGF0YUZpbGVOYW1lOworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgIGJpOworICAgIEJyZWFrSXRlcmF0b3IgICAgICAgICAgIGpka2JpOworICAgIFN0cmluZyAgICAgICAgICAgICAgICAgIHRlc3RTdHJpbmc7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFJCQklQZXJmKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldHVwKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gV2Ugb25seSB0YWtlIG9uZSBhcmd1bWVudCwgdGhlIHBhdHRlcm4KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJSQkJJVGVzdCBwYXJhbXM6ICBkYXRhX2ZpbGVfbmFtZSBicmVha19pdGVyYXRvcl90eXBlICIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRhdGFGaWxlTmFtZSA9IGFyZ3NbMF07CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgIHRlc3RGaWxlQnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGRhdGFGaWxlTmFtZSk7CisgICAgICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsICJVVEYtOCIpOyAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgYzsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBjID0gaXNyLnJlYWQoKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZCh0ZXN0RmlsZUJ1ZiwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0U3RyaW5nID0gdGVzdEZpbGVCdWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS50b1N0cmluZygpKTsgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIGlmIChhcmdzWzFdLmVxdWFscygiY2hhciIpKSB7CisgICAgICAgICAgICAgICAgYmkgID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7ICAKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHMoIndvcmQiKSkgeworICAgICAgICAgICAgICAgIGJpICA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKWNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHMoImxpbmUiKSkgeworICAgICAgICAgICAgICAgIGJpICA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKWNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHMoImpka2xpbmUiKSkgeworICAgICAgICAgICAgICAgIGpka2JpICA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJpIT1udWxsICkgeworICAgICAgICAgICAgYmkuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoamRrYmkgIT0gbnVsbCkgeworICAgICAgICAgICAgamRrYmkuc2V0VGV4dCh0ZXN0U3RyaW5nKTsgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAgICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0UkJCSU5leHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IG47CisgICAgICAgICAgICAgICAgaWYgKGJpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbiA9IGJpLmZpcnN0KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1iaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG4gPSBqZGtiaS5maXJzdCgpOworICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbiAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IG49amRrYmkubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIH0gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCBuOworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgaWYgKGJpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChuPWJpLmZpcnN0KCk7IG4gIT0gQnJlYWtJdGVyYXRvci5ET05FOyBuPWJpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAobj1qZGtiaS5maXJzdCgpOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1qZGtiaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0UkJCSVByZXZpb3VzKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGJpLmZpcnN0KCk7CisgICAgICAgICAgICAgICAgaW50IG49MDsKKyAgICAgICAgICAgICAgICBmb3IgKG49YmkubGFzdCgpOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1iaS5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IG47CisgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKG49YmkubGFzdCgpOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1iaS5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgICAgIHJldHVybiBjb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RSQkJJSXNCb3VuZGFyeSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBpbnQgbj10ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPG47IGkrKykgeworICAgICAgICAgICAgICAgICAgICBiaS5pc0JvdW5kYXJ5KGkpOworICAgICAgICAgICAgICAgIH0gICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgbiA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisKKyAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1Jlc291cmNlQnVuZGxlUGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvUmVzb3VyY2VCdW5kbGVQZXJmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJhZTgwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1Jlc291cmNlQnVuZGxlUGVyZi5qYXZhCkBAIC0wLDAgKzEsMzY3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmY7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgUmVzb3VyY2VCdW5kbGVQZXJmIGV4dGVuZHMgUGVyZlRlc3QgeworICAgIAorICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgaWN1UmVzICA9IG51bGw7CisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSBqYXZhUmVzID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBvcmdfYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICBuZXcgUmVzb3VyY2VCdW5kbGVQZXJmKCkucnVuKG9yZ19hcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICBpY3VSZXMgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsICJ0ZXN0dHlwZXMiKTsKKyAgICAgICAgamF2YVJlcyA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3R0eXBlcyIpOworICAgIH0gICAgCisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UmVzb3VyY2VCdW5kbGVDb25zdHJ1Y3Rpb25KYXZhKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJjb20uaWJtLmljdS5kZXYuZGF0YSIsIlRlc3REYXRhRWxlbWVudHMiLCJ0ZXN0dHlwZXMiKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH07CisgICAgfQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RSZXNvdXJjZUJ1bmRsZUNvbnN0cnVjdGlvbklDVSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsICJ0ZXN0dHlwZXMiKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgIAorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0RW1wdHlBcnJheUphdmEoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKXsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKXsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBzID0gamF2YVJlcy5nZXRTdHJpbmdBcnJheSgiZW1wdHlhcnJheSIpOworICAgICAgICAgICAgICAgIGlmIChzLmxlbmd0aCAhPSAwKSB0aHJvdyBuZXcgRXJyb3IgKCJub3QgemVybyIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eUFycmF5SUNVKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCl7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCl7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gcyA9IGljdVJlcy5nZXRTdHJpbmdBcnJheSgiZW1wdHlhcnJheSIpOworICAgICAgICAgICAgICAgIGlmIChzLmxlbmd0aCAhPSAwKSB0aHJvdyBuZXcgRXJyb3IgKCJub3QgemVybyIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBjbGFzcyBHZXRTdHJpbmdKYXZhIGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ7CisgICAgICAgIEdldFN0cmluZ0phdmEoU3RyaW5nIGtleSwgU3RyaW5nIGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBqYXZhUmVzLmdldFN0cmluZyhrZXkpOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhleHBlY3RlZCkpIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgY2xhc3MgR2V0U3RyaW5nSWN1IGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ7CisgICAgICAgIEdldFN0cmluZ0ljdShTdHJpbmcga2V5LCBTdHJpbmcgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5leHBlY3RlZCA9IGV4cGVjdGVkOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGljdVJlcy5nZXRTdHJpbmcoa2V5KTsKKyAgICAgICAgICAgIGlmICghcy5lcXVhbHMoZXhwZWN0ZWQpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RaZXJvVGVzdEphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRTdHJpbmdKYXZhKCJ6ZXJvdGVzdCIsICJhYmNcdTAwMDBkZWYiKTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0WmVyb1Rlc3RJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRTdHJpbmdJY3UoInplcm90ZXN0IiwgImFiY1x1MDAwMGRlZiIpOworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eUV4cGxpY2l0U3RyaW5nSmF2YSgpeworICAgICAgICByZXR1cm4gbmV3IEdldFN0cmluZ0phdmEoImVtcHR5ZXhwbGljaXRzdHJpbmciLCAiIik7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eUV4cGxpY2l0U3RyaW5nSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0U3RyaW5nSWN1KCJlbXB0eWV4cGxpY2l0c3RyaW5nIiwgIiIpOworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eVN0cmluZ0phdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRTdHJpbmdKYXZhKCJlbXB0eXN0cmluZyIsICIiKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEVtcHR5U3RyaW5nSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0U3RyaW5nSWN1KCJlbXB0eXN0cmluZyIsICIiKTsKKyAgICB9CisKKyAgICBjbGFzcyBHZXRJbnRKYXZhIGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBpbnQgZXhwZWN0ZWQ7CisgICAgICAgIEdldEludEphdmEoU3RyaW5nIGtleSwgaW50IGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgSW50ZWdlciB0ID0gKEludGVnZXIpIGphdmFSZXMuZ2V0T2JqZWN0KGtleSk7CisgICAgICAgICAgICBpZiAodC5pbnRWYWx1ZSgpICE9IGV4cGVjdGVkKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIEdldEludEljdSBleHRlbmRzIFBlcmZUZXN0LkZ1bmN0aW9uIHsKKyAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgaW50IGV4cGVjdGVkOworICAgICAgICBHZXRJbnRJY3UoU3RyaW5nIGtleSwgaW50IGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGVtcCA9IGljdVJlcy5nZXQoa2V5KTsKKyAgICAgICAgICAgIGludCB0ID0gdGVtcC5nZXRJbnQoKTsKKyAgICAgICAgICAgIGlmICh0ICE9IGV4cGVjdGVkKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldDEyM0phdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJvbmVodW5kcmVkdHdlbnR5dGhyZWUiLCAxMjMpOworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0MTIzSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SW50SWN1KCJvbmVodW5kcmVkdHdlbnR5dGhyZWUiLCAxMjMpOworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRFbXB0eUludEphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJlbXB0eWludCIsIDApOworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlJbnRJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRJY3UoImVtcHR5aW50IiwgMCk7CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE9uZUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJvbmUiLCAxKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE9uZUlDVSgpeworICAgICAgICByZXR1cm4gbmV3IEdldEludEljdSgib25lIiwgMSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRNaW51c09uZUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJtaW51c29uZSIsIC0xKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE1pbnVzT25lSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SW50SWN1KCJtaW51c29uZSIsIC0xKTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0UGx1c09uZUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJwbHVzb25lIiwgMSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRQbHVzT25lSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SW50SWN1KCJwbHVzb25lIiwgMSk7CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE1pbnVzT25lVWludEphdmEoKXsgLy8gVE9ETzogbm8gZXF1aXZhbGVuY2U/CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKXsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKXsKKyAgICAgICAgICAgICAgICBJbnRlZ2VyIHQgPSAoSW50ZWdlcikgamF2YVJlcy5nZXRPYmplY3QoIm1pbnVzb25lIik7CisgICAgICAgICAgICAgICAgaWYgKHQuaW50VmFsdWUoKSAhPSAtMSApIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRNaW51c09uZVVpbnRJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGljdVJlcy5nZXQoIm1pbnVzb25lIik7CisgICAgICAgICAgICAgICAgaW50IHQgPSBzdWIuZ2V0VUludCgpOworICAgICAgICAgICAgICAgIGlmICh0ICE9IDB4RkZGRkZGRikgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisKKyAgICBjbGFzcyBHZXRJdkphdmEgIGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBpbnRbXSBleHBlY3RlZDsKKyAgICAgICAgR2V0SXZKYXZhKFN0cmluZyBrZXksIGludFtdIGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgSW50ZWdlcltdIGl2ID0gKEludGVnZXJbXSkgamF2YVJlcy5nZXRPYmplY3Qoa2V5KTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXYubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZFtpXSAhPSBpdltpXS5pbnRWYWx1ZSgpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjbGFzcyBHZXRJdkljdSAgZXh0ZW5kcyBQZXJmVGVzdC5GdW5jdGlvbiB7CisgICAgICAgIFN0cmluZyBrZXk7CisgICAgICAgIGludFtdIGV4cGVjdGVkOworICAgICAgICBHZXRJdkljdShTdHJpbmcga2V5LCBpbnRbXSBleHBlY3RlZCkgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmV4cGVjdGVkID0gZXhwZWN0ZWQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRlbXAgPSBpY3VSZXMuZ2V0KGtleSk7CisgICAgICAgICAgICBpbnRbXSBpdiA9IHRlbXAuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl2Lmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRbaV0gIT0gaXZbaV0pIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7IAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldEludGVnZXJBcnJheUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJdkphdmEoImludGVnZXJhcnJheSIsIG5ldyBpbnRbXXsxLDIsMywtMyw0LDUsNiw3fSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRJbnRlZ2VyQXJyYXlJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJdkljdSgiaW50ZWdlcmFycmF5IiwgbmV3IGludFtdezEsMiwzLC0zLDQsNSw2LDd9KTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlJbnRlZ2VyQXJyYXlKYXZhKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SXZKYXZhKCJlbXB0eWludHYiLCBuZXcgaW50WzBdKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldEVtcHR5SW50ZWdlckFycmF5SUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SXZJY3UoImVtcHR5aW50diIsIG5ldyBpbnRbMF0pOworICAgIH0KKworICAgIAorICAgIGNsYXNzIEdldEJpbmFyeUljdSBleHRlbmRzIFBlcmZUZXN0LkZ1bmN0aW9uIHsKKyAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgaW50IGV4cGVjdGVkX2xlbjsKKyAgICAgICAgR2V0QmluYXJ5SWN1KFN0cmluZyBrZXksIGludCBleHBlY3RlZF9sZW4pIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5leHBlY3RlZF9sZW4gPSBleHBlY3RlZF9sZW47CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRlbXAgPSBpY3VSZXMuZ2V0KGtleSk7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGdvdCA9IHRlbXAuZ2V0QmluYXJ5KCk7CisgICAgICAgICAgICBpZihnb3QucmVtYWluaW5nKCkgIT0gZXhwZWN0ZWRfbGVuKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCB0aGUgZXhwZWN0ZWQgbGVuIik7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgZ290LnJlbWFpbmluZygpOyBpKyspeworICAgICAgICAgICAgICBieXRlIGIgPSBnb3QuZ2V0KCk7CisgICAgICAgICAgICAgIGlmIChpICE9IGIpIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldEJpbmFyeVRlc3RJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRCaW5hcnlJY3UoImJpbmFyeXRlc3QiLCAxNSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRCaW5hcnlUZXN0SmF2YSgpeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCl7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCl7CisgICAgICAgICAgICAgICAgYnl0ZVtdIHQgPSAoYnl0ZVtdKSBqYXZhUmVzLmdldE9iamVjdCgiYmluYXJ5dGVzdCIpOworICAgICAgICAgICAgICAgIGlmICh0Lmxlbmd0aCE9MTUgKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlCaW5hcnlJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRCaW5hcnlJY3UoImVtcHR5YmluIiwgMCk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRFbXB0eUJpbmFyeUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpeworICAgICAgICAgICAgICAgIGJ5dGVbXSB0ID0gKGJ5dGVbXSkgamF2YVJlcy5nZXRPYmplY3QoImVtcHR5YmluIik7CisgICAgICAgICAgICAgICAgaWYgKHQubGVuZ3RoIT0wICkgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBjbGFzcyBHZXRNZW51SmF2YSBleHRlbmRzIFBlcmZUZXN0LkZ1bmN0aW9uIHsKKyAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQ7CisgICAgICAgIEdldE1lbnVKYXZhKFN0cmluZyBrZXksIFN0cmluZ1tdIGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgT2JqZWN0W11bXSBtZW51cyA9IChPYmplY3RbXVtdKSBqYXZhUmVzLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgaW50IHNpemVpID0gbWVudXMubGVuZ3RoOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNpemVpOyBpKyspeworICAgICAgICAgICAgICAgIFN0cmluZyBtZW51X25hbWUgPSAoU3RyaW5nKSBtZW51c1tpXVswXTsKKyAgICAgICAgICAgICAgICBPYmplY3RbXVtdIG1lbnVfaXRlbXMgPSAoT2JqZWN0W11bXSkgbWVudXNbaV1bMV07CisgICAgICAgICAgICAgICAgaWYgKCFleHBlY3RlZFtwKytdLmVxdWFscyhtZW51X25hbWUpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBzaXplaiA9IG1lbnVfaXRlbXMubGVuZ3RoOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwgc2l6ZWo7IGorKyl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBtZW51X2l0ZW1zW2pdWzBdOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSBtZW51X2l0ZW1zW2pdWzFdOworICAgICAgICAgICAgICAgICAgICBpZighZXhwZWN0ZWRbcCsrXS5lcXVhbHMoa2V5KSkgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIWV4cGVjdGVkW3ArK10uZXF1YWxzKHZhbHVlKSkgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjbGFzcyBHZXRNZW51SWN1IGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBTdHJpbmdbXSBleHBlY3RlZDsKKyAgICAgICAgR2V0TWVudUljdShTdHJpbmcga2V5LCBTdHJpbmdbXSBleHBlY3RlZCkgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmV4cGVjdGVkID0gZXhwZWN0ZWQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG1lbnVzID0gaWN1UmVzLmdldChrZXkpOworICAgICAgICAgICAgaW50IHNpemVpID0gbWVudXMuZ2V0U2l6ZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNpemVpOyBpKyspeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG1lbnUgPSBtZW51cy5nZXQoaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1lbnVfbmFtZSA9IG1lbnUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgaWYgKCFleHBlY3RlZFtwKytdLmVxdWFscyhtZW51X25hbWUpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBzaXplaiA9IG1lbnUuZ2V0U2l6ZSgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwgc2l6ZWo7IGorKyl7CisgICAgICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG1lbnVfaXRlbSA9IG1lbnUuZ2V0KGopOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gbWVudV9pdGVtLmdldEtleSgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBtZW51X2l0ZW0uZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmKCFleHBlY3RlZFtwKytdLmVxdWFscyhrZXkpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgICAgICBpZighZXhwZWN0ZWRbcCsrXS5lcXVhbHModmFsdWUpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE1lbnVKYXZhKCl7CisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkID0gbmV3IFN0cmluZ1tdeyJmaWxlIiwgImV4aXQiLCAiRXhpdCIsICJvcGVuIiwgIk9wZW4iLCAic2F2ZSIsICJTYXZlIn07CisgICAgICAgIHJldHVybiBuZXcgR2V0TWVudUphdmEoIm1lbnUiLCBleHBlY3RlZCk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRNZW51SUNVKCl7CisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkID0gbmV3IFN0cmluZ1tdeyJmaWxlIiwgImV4aXQiLCAiRXhpdCIsICJvcGVuIiwgIk9wZW4iLCAic2F2ZSIsICJTYXZlIn07CisgICAgICAgIHJldHVybiBuZXcgR2V0TWVudUljdSgibWVudSIsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlNZW51SmF2YSgpeworICAgICAgICByZXR1cm4gbmV3IEdldE1lbnVKYXZhKCJlbXB0eXRhYmxlIiwgbmV3IFN0cmluZ1tde30pOworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlNZW51SUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0TWVudUljdSgiZW1wdHl0YWJsZSIsIG5ldyBTdHJpbmdbXXt9KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9VQ2hhcmFjdGVyUGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVUNoYXJhY3RlclBlcmYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWFiNTZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVUNoYXJhY3RlclBlcmYuamF2YQpAQCAtMCwwICsxLDUzMyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworLyoqCisgKiBCYXNlIHBlcmZvcm1hbmNlIHRlc3QgdGhhdCB0YWtlcyBpbiBhIG1ldGhvZCBuYW1lIGZvciB0ZXN0aW5nIHdpdGggSkRLLgorICogVG8gdXNlIAorICogPGNvZGU+CisgKiBqYXZhIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuVUNoYXJhY3RlclBlcmYgJE1ldGhvZE5hbWUgJExvb3BDb3VudCAtIAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNUQVJUX1RFU1RfQ0hBUkFDVEVSICRFTkRfVEVTVF9DSEFSQUNURVIKKyAqIDwvY29kZT4KKyAqIHdoZXJlICQqX1RFU1RfQ0hBUkFDVEVSIGFyZSBpbiBoZXggZGVjaW1hbHMgd2l0aCBhIGxlYWRpbmcgMHgKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJQZXJmIGV4dGVuZHMgUGVyZlRlc3QgCit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsgICAKKyAgICAgICAgbmV3IFVDaGFyYWN0ZXJQZXJmKCkucnVuKGFyZ3MpOworICAgICAgICAvLyBuZXcgVUNoYXJhY3RlclBlcmYoKS5UZXN0UGVyZm9ybWFuY2UoKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICAvLyBXZSBvbmx5IHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgcGF0dGVybgorICAgICAgICBNSU5fID0gQ2hhcmFjdGVyLk1JTl9WQUxVRTsKKyAgICAgICAgTUFYXyA9IENoYXJhY3Rlci5NQVhfVkFMVUU7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAxKSB7CisgICAgICAgICAgICBNSU5fID0gSW50ZWdlci5wYXJzZUludChhcmdzWzBdLCAxNik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIE1BWF8gPSBJbnRlZ2VyLnBhcnNlSW50KGFyZ3NbMV0sIDE2KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0RGlnaXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmRpZ2l0KGNoLCAxMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtEaWdpdCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuZGlnaXQoY2gsIDEwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEdldE51bWVyaWNWYWx1ZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLR2V0TnVtZXJpY1ZhbHVlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAKKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtHZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNEZWZpbmVkKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0RlZmluZWQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzRGVmaW5lZCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNEZWZpbmVkKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzRGlnaXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzRGlnaXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNJZGVudGlmaWVySWdub3JhYmxlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzSWRlbnRpZmllcklnbm9yYWJsZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzSVNPQ29udHJvbCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzSVNPQ29udHJvbCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNJU09Db250cm9sKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzTGV0dGVyKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0xldHRlcihjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc0xldHRlcigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNMZXR0ZXIoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNMZXR0ZXJPckRpZ2l0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLSXNMZXR0ZXJPckRpZ2l0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc0xvd2VyQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzTG93ZXJDYXNlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNTcGFjZUNoYXIoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9IAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc1NwYWNlQ2hhcigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1RpdGxlQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLSXNUaXRsZUNhc2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzVGl0bGVDYXNlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1VuaWNvZGVJZGVudGlmaWVyUGFydCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzVW5pY29kZUlkZW50aWZpZXJQYXJ0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzVW5pY29kZUlkZW50aWZpZXJTdGFydCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9IAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1VwcGVyQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzVXBwZXJDYXNlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc1VwcGVyQ2FzZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAgICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1doaXRlU3BhY2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc1doaXRlU3BhY2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNaW5pbXVtIGNvZGVwb2ludCB0byBkbyB0ZXN0LiBUZXN0IGlzIHJhbiBmcm9tIE1JTl8gdG8gTUFYXworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBNSU5fOworICAgIC8qKgorICAgICAqIE1pbmltdW0gY29kZXBvaW50IHRvIGRvIHRlc3QuIFRlc3QgaXMgcmFuIGZyb20gTUlOXyB0byBNQVhfCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IE1BWF87Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Vbmljb2RlU2V0UGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVW5pY29kZVNldFBlcmYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjlmYTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVW5pY29kZVNldFBlcmYuamF2YQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKKy8qKgorICogQSBjbGFzcyBmb3IgdGVzdGluZyBVbmljb2RlU2V0IHBlcmZvcm1hbmNlLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0UGVyZiBleHRlbmRzIFBlcmZUZXN0IHsKKworICAgIFN0cmluZyBwYXR0ZXJuOworICAgIFVuaWNvZGVTZXQgdGVzdENoYXJzOworICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdDsKKyAgICBVbmljb2RlU2V0IHVzOworICAgIEhhc2hTZXQgaHM7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFVuaWNvZGVTZXRQZXJmKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldHVwKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gV2Ugb25seSB0YWtlIG9uZSBhcmd1bWVudCwgdGhlIHBhdHRlcm4KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJQbGVhc2Ugc3VwcGx5IFVuaWNvZGVTZXQgcGF0dGVybiIpOworICAgICAgICB9CisKKyAgICAgICAgcGF0dGVybiA9IGFyZ3NbMF07CisgICAgICAgIHRlc3RDaGFycyA9IG5ldyBVbmljb2RlU2V0KHBhdHRlcm4pOworICAgICAgICBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IodGVzdENoYXJzKTsKKyAgICAgICAgdXMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBocyA9IG5ldyBIYXNoU2V0KCk7CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdFVuaWNvZGVTZXRBZGQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIHVzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBpbnQgbj0wOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjcCA9IGl0LmNvZGVwb2ludDsgY3AgPD0gaXQuY29kZXBvaW50RW5kOyArK2NwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1cy5hZGQoY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0Q2hhcnMuc2l6ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RIYXNoU2V0QWRkKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBocy5jbGVhcigpOworICAgICAgICAgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgICAgICAgICAgaW50IG49MDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSBpdC5jb2RlcG9pbnQ7IGNwIDw9IGl0LmNvZGVwb2ludEVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaHMuYWRkKG5ldyBJbnRlZ2VyKGNwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RDaGFycy5zaXplKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdFVuaWNvZGVTZXRDb250YWlucygpIHsKKyAgICAgICAgdXMuY2xlYXIoKTsKKyAgICAgICAgdXMuc2V0KHRlc3RDaGFycyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSAweDEwRkZGRjsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodXMuY29udGFpbnMoY3ApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wICs9IGNwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiAweDExMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SGFzaFNldENvbnRhaW5zKCkgeworICAgICAgICBocy5jbGVhcigpOworICAgICAgICBpdC5yZXNldCgpOworICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICBocy5hZGQobmV3IEludGVnZXIoaXQuY29kZXBvaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhzLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKGNwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgKz0gY3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDB4MTEwMDAwOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RVbmljb2RlU2V0SXRlcmF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAwOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB1aXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHRlc3RDaGFycyk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHVpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCArPSB1aXQuY29kZXBvaW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVzdENoYXJzLnNpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SGFzaFNldEl0ZXJhdGUoKSB7CisgICAgICAgIGhzLmNsZWFyKCk7CisgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgIGhzLmFkZChuZXcgSW50ZWdlcihpdC5jb2RlcG9pbnQpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcCA9IDA7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBocy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCArPSAoKEludGVnZXIpaXQubmV4dCgpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVzdENoYXJzLnNpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9jb2xsYXRpb25wZXJmLnBsIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvY29sbGF0aW9ucGVyZi5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjA1NDhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvY29sbGF0aW9ucGVyZi5wbApAQCAtMCwwICsxLDEyNiBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisjCisjICBJQ1UgYW5kIFdpbmRvd3MgQ29sbGF0aW9uIHBlcmZvcm1hbmNlIHRlc3Qgc2NyaXB0CisjICAgICAgVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBjb2xscGVyZiB0ZXN0IHByb2dyYW0uCisjICAgICAgVGhpcyBzY3JpcHQgZGVmaW5lcyB0aGUgbG9jYWxlcyBhbmQgZGF0YSBmaWxlcyB0byBiZSB0ZXN0ZWQsCisjICAgICAgICBydW5zIHRoZSBjb2xscGVyZiBwcm9ncmFtLCBhbmQgZm9ybWF0cyBhbmQgcHJpbnRzIHRoZSByZXN1bHRzLgorIworIyAgICAgICAgNyBKdW5lIDIwMDEgICBBbmR5IEhlbmluZ2VyCisjCisjICBJQ1U0SiBhbmQgSmF2YSBDb2xsYXRvciBwZXJmb3JtYW5jZSB0ZXN0IHNjcmlwdAorIyAgMjAwMi0wOS0yNSBtb2RpZmllZCBieSBSaWNoYXJkIExpYW5nCisKK3ByaW50ICJUbyBydW4gdGhpcyBwZXJmb3JtYW5jZSB0ZXN0XG4iOworcHJpbnQgImNkIHRvIHRoZSBJQ1U0SiByb290IGRpcmVjdG9yeSwgb25lIGRpcmVjdG9yeSBiZWxvdyBzcmNcbiI7CitwcmludCAicnVuIHBlcmwgc3JjXFxjb21cXGlibVxcaWN1XFxkZXZcXHRlc3RcXHBlcmZcXGNvbGxhdGlvbnBlcmYucGxcbiI7CisKKyMKKyMgTWFwIGRlZmluZXMgdGhlIHNldCBvZiBkYXRhIGZpbGVzIHRvIHJ1biBpbiBlYWNoIGxvY2FsZQorIworJWRhdGFGaWxlcyA9ICgKKyAgICJlbl9VUyIsICAgICAgICAgIlRlc3ROYW1lc19MYXRpbi50eHQiLAorICAgImRhX0RLIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCIsCisgICAiZGVfREUiLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IiwKKyAgICJkZV9fUEhPTkVCT09LIiwgIlRlc3ROYW1lc19MYXRpbi50eHQiLAorICAgImZyX0ZSIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCIsCisgICAiamFfSlAiLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19KYXBhbmVzZV9oLnR4dCBUZXN0TmFtZXNfSmFwYW5lc2Vfay50eHQgVGVzdE5hbWVzX0FzaWFuLnR4dCIsCisgICAiemhfQ04iLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19DaGluZXNlLnR4dCIsCisgICAiemhfVFciLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19DaGluZXNlLnR4dCIsCisgICAiemhfX1BJTllJTiIsICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19DaGluZXNlLnR4dCIsCisgICAicnVfUlUiLCAJICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19SdXNzaWFuLnR4dCIsCisgICAidGgiLCAgICAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19UaGFpLnR4dCIsCisgICAia29fS1IiLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19Lb3JlYW4udHh0IiwKKyAgICk7CisKKworIworIyAgT3V0ZXIgbG9vcCBydW5zIHRocm91Z2ggdGhlIGxvY2FsZXMgdG8gdGVzdAorIyAgICAgKEVkaXQgdGhpcyBsaXN0IGRpcmN0bHkgdG8gbWFrZSBjaGFuZ2VzKQorIworICAgZm9yZWFjaCAkbG9jYWxlICgKKwkgICAiZW5fVVMiLAorCSAgICJkYV9ESyIsCisJICAgImRlX0RFIiwKKwkgICAiZGVfX1BIT05FQk9PSyIsCisJICAgImZyX0ZSIiwKKwkgICAiamFfSlAiLAorICAgICAgICJ6aF9DTiIsCisJICAgInpoX1RXIiwKKwkgICAiemhfX1BJTllJTiIsCisgICAgICAgImtvX0tSIiwKKwkgICAicnVfUlUiLAorCSAgICJ0aCIsCisgICAgICAgICAgICAgICAgICAgKQorICAgICAgIHsKKyAgICAgICAjCisgICAgICAgIyBJbm5lciBsb29wIHJ1bnMgb3ZlciB0aGUgc2V0IG9mIGRhdGEgZmlsZXMgc3BlY2lmaWVkIGZvciBlYWNoIGxvY2FsZS4KKyAgICAgICAjICAgIChFZGl0IHRoZSAlZGF0YWZpbGVzIGluaXRpYWxpemF0aW9uLCBhYm92ZSwgdG8gbWFrZSBjaGFuZ2VzLgorICAgICAgICMKKyAgICAgICAkZmYgPSAkZGF0YUZpbGVzeyRsb2NhbGV9OworICAgICAgIEBmZiA9IHNwbGl0KC9bXHNdKy8sICRmZik7CisgICAgICAgZm9yZWFjaCAkZGF0YSAoQGZmKSB7CisKKyAgICAgICAgICAjCisgICAgICAgICAgIyBSdW4gSUNVIFRlc3QgZm9yIHRoaXMgKGxvY2FsZSwgZGF0YSBmaWxlKSBwYWlyLgorICAgICAgICAgICMKKyAgICAgICAgICAkaVN0ckNvbCA9IGBqYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLkNvbGxhdGlvblBlcmZvcm1hbmNlVGVzdCAtdGVyc2UgLWZpbGUgc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vJGRhdGEgLWxvY2FsZSAkbG9jYWxlIC1sb29wIDEwMDAgLWJpbnNlYXJjaGA7CisgICAgICAgICAgJGlTdHJDb2wgPX5zL1ssXHNdKi8vZzsgICMgd2hhY2sgb2ZmIHRoZSBsZWFkaW5nICIgICwiIGluIHRoZSByZXR1cm5lZCByZXN1bHQuCisgICAgICAgICAgZG9LZXlUaW1lcygiamF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgLXRlcnNlIC1maWxlIHNyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uLyRkYXRhIC1sb2NhbGUgJGxvY2FsZSAtbG9vcCAxMDAwIC1rZXlnZW4iLAorICAgICAgICAgICAgICAgICAgICAgJGlLZXlHZW4sICRpS2V5TGVuKTsKKworCisgICAgICAgICAgIworICAgICAgICAgICMgUnVuIFdpbmRvd3MgdGVzdCBmb3IgdGhpcyAobG9jYWxlLCBkYXRhIGZpbGUpIHBhaXIuICBPbmx5IGRvIGlmCisgICAgICAgICAgIyAgICB3ZSBhcmUgbm90IG9uIFdpbmRvd3MgOTgvTUUgYW5kIHdlIGhhdmEgYSB3aW5kb3dzIGxhbmdJRAorICAgICAgICAgICMgICAgZm9yIHRoZSBsb2NhbGUuCisgICAgICAgICAgIworICAgICAgICAgICR3U3RyQ29sID0gJHdLZXlHZW4gPSAkd0tleUxlbiA9IDA7CisgICAgICAgICAgJHdTdHJDb2wgPSBgamF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgLXRlcnNlIC1maWxlIHNyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uLyRkYXRhIC1sb2NhbGUgJGxvY2FsZSAtbG9vcCAxMDAwIC1iaW5zZWFyY2ggLWphdmFgOworICAgICAgICAgICR3U3RyQ29sID1+cy9bLFxzXSovL2c7ICAjIHdoYWNrIG9mZiB0aGUgbGVhZGluZyAiICAsIiBpbiB0aGUgcmV0dXJuZWQgcmVzdWx0LgorICAgICAgICAgIGRvS2V5VGltZXMoImphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0IC10ZXJzZSAtZmlsZSBzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi8kZGF0YSAtbG9jYWxlICRsb2NhbGUgLWxvb3AgMTAwMCAta2V5Z2VuIC1qYXZhIiwKKyAgICAgICAgICAgICAgICAgICAgICR3S2V5R2VuLCAkd0tleUxlbik7CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAkY29sbERpZmYgPSAka2V5R2VuRGlmZiA9ICRrZXlMZW5EaWZmID0gMDsKKyAgICAgICAgICBpZiAoJHdLZXlMZW4gPiAwKSB7CisgICAgICAgICAgICAgICRjb2xsRGlmZiAgID0gKCgkd1N0ckNvbCAtICRpU3RyQ29sKSAvICRpU3RyQ29sKSAqIDEwMDsKKyAgICAgICAgICAgICAgJGtleUdlbkRpZmYgPSAoKCR3S2V5R2VuIC0gJGlLZXlHZW4pIC8gJGlLZXlHZW4pICogMTAwOworICAgICAgICAgICAgICAka2V5TGVuRGlmZiA9ICgoJHdLZXlMZW4gLSAkaUtleUxlbikgLyAkaUtleUxlbikgKiAxMDA7CisgICAgICAgICAgfQorCisgICAgICAgICAjCisgICAgICAgICAjICBXcml0ZSB0aGUgbGluZSBvZiByZXN1bHRzIGZvciB0aGlzIChsb2NhbGUsIGRhdGEgZmlsZSkuCisgICAgICAgICAjCisgICAgICAgICB3cml0ZTsKKyAgICB9CisgfQorCisjCisjICBkb0tleUdlblRpbWVzKCRDb21tYW5kX3RvX3J1biwgJHRpbWUsICRrZXlfbGVuZ3RoKQorIyAgICAgICBEbyBhIGtleS1nZW5lcmF0aW9uIHRlc3QgYW5kIHJldHVybiB0aGUgdGltZSBhbmQga2V5IGxlbmd0aC9jaGFyIHZhbHVlcy4KKyMKK3N1YiBkb0tleVRpbWVzKCQkJCkgeworICAgIyBwcmludCAiJF9bMF0iOworICAgbG9jYWwoJHgpID0gYCRfWzBdYDsgICAgICAgICAgICAgICAgICAjIGV4ZWN1dGUgdGhlIGNvbGxwZXJmIGNvbW1hbmQuCisgICAoJF9bMV0sICRfWzJdKSA9IHNwbGl0KC9cLC8sICR4KTsgICAgICMgY29sbHBlcmYgcmV0dXJucyAidGltZSwga2V5bGVuZ3RoIiBzdHJpbmcuCit9CisKKworIworIyAgT3V0cHV0IEZvcm1hdHMgLi4uCisjCisjCitmb3JtYXQgU1RET1VUX1RPUCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tIElDVSAtLS0tLS0tLSAgIC0tLS0tLSBKQVZBIC0tLS0tLS0gICAgICAoSkFWQSAtIElDVSkvSUNVCitMb2NhbGUgICAgIERhdGEgZmlsZSAgICAgICAgICAgICAgICAgIHN0cmNvbGwga2V5Z2VuICBrZXlsZW4gIHN0cmNvbGwga2V5Z2VuICBrZXlsZW4gICAgY29sbCAga2V5Z2VuICBrZXlsZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLgorCitmb3JtYXQgU1RET1VUID0KK0A8PDw8PDw8PDwgQDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PHwgQCMjIyMjIyAgQCMjIyMgICBAIy4jIyAgfEAjIyMjIyBAIyMjIyMgICBAIy4jIyB8IEAjIyMlICBAIyMjJSAgIEAjIyMlCiskbG9jYWxlLCAkZGF0YSwgJGlTdHJDb2wsICRpS2V5R2VuLCAkaUtleUxlbiwgJHdTdHJDb2wsICR3S2V5R2VuLCAkd0tleUxlbiwgJGNvbGxEaWZmLCAka2V5R2VuRGlmZiwgJGtleUxlbkRpZmYKKy4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Bc2lhbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQXNpYW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYjhmODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQXNpYW4udHh0CkBAIC0wLDAgKzEsMTAwMDggQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor44GC44GN44KC44GoLOOChOOBmeOBig0KK+OBguOBhOOBi+OCjyzjga7jgorjgYoNCivjgYLjgYvjgaTjgYss44GL44Ga44Gy44GTDQor44GC44KP44GaLOOBguOBjeOCiQ0KK+OBguOBleOBrizjgojjgZfjgoQNCivjgYLjgonjgY0s44KI44GX44GL44GaDQor44GE44Gu44GG44GILOOBsuOCjeOBsuOBqA0KK+OBi+OBqOOBhizjgb7jgZXjgajjgZcNCivjgarjgYvjgoDjgoks44GR44GE44Ge44GGDQor44G144GY44KP44KJLOOBn+OBi+OBkw0KK+OChOOBquOBjuOBr+OCiSzjgb/jganjgooNCivjgYvjgo/jgaAs44Gq44GK44GTDQor44GE44GX44GuLOOBjeOCiOOBquOBjA0KK+OBlOOBqOOBhizjgYvjgaTjga7jgooNCivjgYTjgZfjgZjjgb4s44KK44KH44GG44G444GEDQor44GC44Go44GGLOOBvuOBleOBruOCig0KK+OBv+OBl+OBvizjgZ/jgYvjgobjgY0NCivjgb/jgojjgZcs44Gu44G244G+44GVDQor44Gf44Gh44GuLOOBmOOCheOCkw0KK+OBiuOBiuOBrizjgYvjgZrjgYoNCivjgY3jgZ/jgYzjgo8s44KI44GX44Gf44GLDQor44G144KL44GV44KPLOOBleOBqOOBlw0KK+OBiuOBiuOBr+OBlyzjgbLjgajjgZcNCivjgojjgZfjgYvjgo8s44Go44GX44KG44GNDQor44GL44KP44GELOOBqOOBl+OBig0KK+OBhOOBl+OBqCzjgZPjgYbjgY0NCivjgYTjgb7jgYQs44Gf44GL44KG44GNDQor44KE44G+44Gq44GLLOOBleOBpOOBvw0KK+OBu+OCiuOBi+OCjyzjgYvjgaTjgb8NCivjgZnjgZrjgY0s44GX44KF44KT44GYDQor44GC44KP44GILOOBguOBpOOBlw0KK+OBquOBjOOBmyzjgZ/jgYvjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GE44GhDQor44G+44GI44GgLOOBsuOCjeOBlw0KK+OBi+OBqOOBhizjgb7jgZXjgYvjgZoNCivjgZnjgb/jgZ8s44GL44GK44KLDQor44Gb44GN44GQ44GhLOOBn+OBi+OChuOBjQ0KK+OBn+OBquOBiyzjgabjgovjgbLjgZUNCivjgbLjgonjga4s44Gf44GL44GXDQor44Gv44G+44GQ44GhLOOBl+OCk+OBmA0KK+OBleOBi+OBjOOBvyzjga7jgorjgYvjgZoNCivjgZPjgbDjgoTjgZcs44KE44GZ44GXDQor44Gf44GN44KC44GoLOOBruOCiuOBkw0KK+OBu+OBlyzjgbLjgo3jgbXjgb8NCivjgYrjgYrjgZ/jgYss44KG44GG44GTDQor44GZ44GO44KA44KJLOOBl+OBkuOBig0KK+OBguOBiuOBjSzjgb7jgZXjgosNCivjgarjgYvjga/jgoks44KG44GG44Ge44GGDQor44GL44Go44GGLOOBiuOBleOCgA0KK+OBvuOBiOOBleOBiyzjgajjgoLjgb/jgaQNCivjgbXjgZjjgZ/jgass44GL44Ga44Gy44GTDQor44G744Gj44GfLOOBl+OBkuOBsuOBqA0KK+OBguOBjeOChOOBvizjgobjgZ/jgYsNCivjgbXjgZjjgZ8s44G+44GV44KG44GNDQor44Go44KI44Gq44GMLOOChOOBmeOBsuOCjQ0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgYoNCivjga7jgoDjgoks44GX44GS44GKDQor44GL44KP44GX44G+LOOBn+OBi+OBkw0KK+OCgOOCjeOChCzjgabjgaTjgYoNCivjgYLjgZfjgYvjgo8s44KE44GZ44GX44GSDQor44Gv44KE44GXLOOBn+OBi+OBig0KK+OBv+OChOOBjOOCjyzjgbXjgb/jga7jgooNCivjgYrjgZDjgoks44KE44GZ44Gy44KNDQor44KI44GX44GgLOOBqOOBl+OBsuOBkw0KK+OBj+OBqeOBhizjgbLjgo3jgZcNCivjgY/jgb7jgYzjgYQs44Gf44GL44KG44GNDQor44Gr44GX44GKLOOBsuOBp+OBjQ0KK+OBiuOBiuOBhOOChOOBvizjga7jgbzjgosNCivjgZ/jgZHjgZ/jgass44G144Go44GXDQor44GE44GX44GgLOOBi+OBpOOChA0KK+OBiuOBhOOBi+OCjyzjga7jgbbjgYLjgY0NCivjgZ/jgYvjga/jgZcs44Gb44GE44GYDQor44KA44KJ44GfLOOBqOOBiuOCiw0KK+OBmeOBmuOBjSzjgZnjgZnjgoANCivjga/jgoTjgZcs44GX44KT44Gh44KH44GGDQor44GP44KN44GL44KPLOOBvuOBleOBguOBjQ0KK+OChOOBmOOBvizjgajjgYrjgosNCivjgYvjgaTjgonjgYQs44KP44Gf44KLDQor44GC44GL44KKLOOCiuOCh+OBhuOBmA0KK+OBguOBmuOBvizjga7jgbbjgobjgY0NCivjgYLjgaTjgb8s44GX44KF44GG44GYDQor44G+44KL44GKLOOCiOOBl+OChuOBjQ0KK+OBhOOBkeOBiizjgb/jga7jgosNCivjgajjgorjgoTjgb4s44KK44Gk44GKDQor44Gv44G+44GuLOOCiOOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZ/jgo3jgYYNCivjgZPjgYbjgaEs44KG44GG44GZ44GRDQor44Gq44GL44GY44G+LOOBruOCiuOBsuOBkw0KK+OBguOCiSzjgbLjgo3jgZcNCivjgbvjgZ3jgYvjgo8s44G+44GV44Gy44KNDQor44GE44Ga44G/LOOBi+OBreOBv+OBpA0KK+OBguOCj+OBmCzjgYLjgaTjgYoNCivjgb/jgZrjgbLjgY0s44KI44GX44GKDQor44GK44Gg44GY44G+LOOBquOBu+OBvw0KK+OBteOCi+OBi+OCjyzjgZfjgZLjgYoNCivjgb/jgZrjgZDjgaEs44GY44KN44GGDQor44GE44Go44GGLOOBsuOCjeOBlw0KK+OBteOBj+OBhCzjgZXjgajjgZcNCivjgbXjgZjjga/jgoks44Gf44GR44Gy44GoDQor44KE44GuLOOChuOBhuOBmA0KK+OBr+OChOOBl+OBkOOBoSzjgbLjgo3jgZcNCivjgbvjgoos44Go44GX44KG44GNDQor44KI44GX44GELOOBn+OBi+OBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjga/jgZ8s44GT44GG44GE44GhDQor44GT44Gw44KKLOOBsuOBp+OChuOBjQ0KK+OBiuOBoOOBl+OBvizjgYvjgaTjgo3jgYYNCivjgYbjgYjjgoTjgb4s44G/44Gk44Gq44KKDQor44KA44GfLOOBvuOBquOBtg0KK+OBn+OBquOBiyzjgZfjgZLjgYoNCivjgZPjgpPjga4s44KG44GG44GTDQor44G144GY44KP44KJLOOBqOOBl+OBr+OCiw0KK+OBv+OChOOBjSzjgobjgZ/jgYsNCivjga/jgarjgo8s44G+44GV44Gy44KNDQor44Gm44GY44G+LOOBguOBjeOCiQ0KK+OBj+OBvCzjgYLjgaTjgZcNCivjgYrjgYrjgbAs44GX44KT44GUDQor44GT44KT44GuLOOBn+OBj+OChA0KK+OBvuOBpOOBsOOCiSzjgbLjgafjgYoNCivjga/jgZfjgoLjgags44GZ44G/44GTDQor44KP44Gf44Gq44G5LOOBi+OBmuOBsuOCjQ0KK+OBk+OBn+OBjSzjgabjgaTjgoQNCivjgbXjgYvjgoQs44KC44KC44GNDQor44G+44Gk44GG44KJLOOBpuOBo+OBuuOBhA0KK+OBteOBquOBoCzjgYvjgZrjgbLjgZMNCivjgbLjgYzjgZfjgaAs44Go44GX44KG44GNDQor44GE44Gu44G+44GfLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgYTjgajjgYYs44Gf44Gk44GXDQor44G/44Gf44KA44KJLOOBvuOChuOBvw0KK+OBmeOBjOOBr+OCiSzjgb/jgaTjgosNCivjgZ/jgYvjgb/jgoQs44Gy44Gn44Gu44G2DQor44KE44G+44GQ44GhLOOBk+OBmeOBkQ0KK+OBiuOBnyzjgaTjgojjgZcNCivjgZvjga7jgYos44Gv44GY44KBDQor44GX44Gw44GW44GNLOOBguOBpOOBlw0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgbXjgZjjgYvjgo8s44Gy44KN44KG44GNDQor44GC44KJ44GELOOCiuOCheOBhuOBmA0KK+OBiuOBiuOBj+OCiSzjgbLjgZXjga7jgooNCivjgb7jgaTjgbAs44GX44GS44KLDQor44Gf44KB44Gy44KNLOOCguOBqOOBkw0KK+OBvuOCk+OBvSzjgYvjgaTjgb8NCivjgZPjgZDjgaEs44Gf44GL44GXDQor44Gf44Gr44GQ44GhLOOBquOBiuOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgbLjgonjgoLjgags44Gy44Gn44GC44GNDQor44GC44KT44KJ44GPLOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjga7jgorjgZMNCivjgaHjgoPjgY0s44GX44GS44Gy44GnDQor44GV44GL44GELOOBoeOBr+OCiw0KK+OBhOOBquOBiuOBiyzjgbLjgo3jgYvjgZoNCivjgYbjgZfjgZjjgb4s44GX44KT44GE44GhDQor44GT44GR44GkLOOBguOBjeOBsuOBlQ0KK+OCgOOCieOBnyzjgbLjgajjgZcNCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44GX44KT44Gf44GrLOOCiuOCheOBhuOBmA0KK+OBiuOBiuOBr+OBnyzjga7jgbbjgYLjgY0NCivjgZ/jgbbjgaEs44KG44Gf44GLDQor44GZ44G/44GgLOOBjeOCiOOBlw0KK+OBv+OBhuOCiSzjgarjgarjgZMNCivjgorjgoXjgYbjgags44Gy44KN44G/DQor44GE44GR44GgLOOBsuOCjeOBquOCig0KK+OBn+OBi+OChOOBquOBjizjgbLjgo3jgbXjgb8NCivjgYjjgpPjgaks44GR44KT44GE44GhDQor44GK44GX44GL44KPLOOBl+OCk+OBmA0KK+OBk+OBsOOChOOBlyzjgbLjgafjgobjgY0NCivjgoTjgb7jgaAs44GE44KP44GKDQor44GK44GgLOOBvuOBleOBig0KK+OBn+OBjeOBluOCjyzjgYLjgaTjgZcNCivjgoLjgoos44KE44GZ44Gu44KKDQor44GL44Gq44GW44KPLOOBn+OBpOOChuOBjQ0KK+OBiuOBiuOBnyzjgZ/jgYvjgYLjgY0NCivjgYrjgYrjgaQs44Gm44Gk44KN44GGDQor44G144GY44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OCguOCiuOBi+OCjyzjgb7jgZXjga7jgbYNCivjgYTjgajjgYYs44GT44GG44GYDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBhuOBiOOBrizjgojjgZfjgbLjgZMNCivjgYrjgYrjgYvjgo8s44GV44GL44GIDQor44G+44KL44GELOOBmOOCheOCk+OBkw0KK+OBhOOCj+OBiizjgZfjgoXjgYbjgZgNCivjgYbjgoHjgaAs44GL44Ga44KEDQor44KB44GL44GfLOOBvuOBleOCiw0KK+OBpOOBmCzjgaTjgZDjgbLjgZMNCivjgZ/jgZQs44Gy44KN44GXDQor44KE44G+44GX44GfLOOBvuOBleOBqA0KK+OBmeOBjuOChOOBvizjgbLjgo3jgobjgY0NCivjgbXjgZ/jgbAs44Go44GX44GC44GNDQor44G/44KE44Gy44KJLOOBv+OBoeOBguOBjQ0KK+OBq+OBl+OBluOBjSzjgZnjgZnjgoANCivjgZ/jgarjgYss44GP44Gr44GTDQor44KA44KJ44KC44GoLOOBqOOCguOBguOBjQ0KK+OBvuOBiOOBoCzjgbLjgZXjgYvjgZoNCivjgb/jgoTjgZEs44GC44Gk44GXDQor44Go44GG44GY44G+LOOBn+OBpOOBsuOCjQ0KK+OBiuOBiuOChCzjgb7jgZXjgosNCivjgYbjgYjjga4s44Go44KC44Gy44KNDQor44Gf44GL44GV44GNLOOChOOBmeOBsuOBlQ0KK+OBk+OCk+OBrizjgojjgZfjgbLjgZUNCivjgZ/jgZHjgYos44Gu44KK44GL44GaDQor44GL44Gq44KE44G+LOOChOOBmeOBsuOBkw0KK+OBiuOBiuOBiuOBiyzjgajjgZfjgo3jgYYNCivjgZPjgbDjgoTjgZcs44GX44KF44GGDQor44Gr44GX44GW44GLLOOBv+OBiw0KK+OBvuOBmeOBv+OBoCzjgajjgoLjgbLjgZMNCivjgaTjgbzjgYQs44KE44GZ44GKDQor44Gf44GM44G/LOOBvuOBleOCiw0KK+OBiuOBi+OBoCzjgabjgovjgYoNCivjgYvjgZ/jgY7jgoos44GV44Go44GXDQor44GL44KP44GmLOOBn+OBi+OBlw0KK+OBv+OBmuOBhCzjgYLjgoTjgYoNCivjgYvjgZXjgYrjgYss44Go44GX44Gy44GTDQor44Gy44GM44GX44Gf44GrLOOBsuOBp+OBteOBvw0KK+OBhuOBl+OBjSzjgYvjgZrjgYTjgaENCivjgbLjgonjgZXjgo8s44Gq44GM44GTDQor44Gq44KK44GfLOOBl+OCheOBhuOBhOOBoQ0KK+OBk+OBoOOBvizjgYvjgZrjgbLjgo0NCivjgYTjga7jgb7jgZ8s44Gy44KN44G/DQor44GN44KA44KJLOOBl+OCh+OBhuOBlA0KK+OBhOOBqOOBhizjgbXjgb/jgYoNCivjgo/jgZ/jgarjgbks44Gm44KL44GC44GNDQor44Gm44KJ44GV44KPLOOBv+OBpOOBig0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgYLjgZXjgY/jgoks44GX44KT44KEDQor44KE44G+44GNLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYjjga7jgoLjgags44Gy44KN44G/44GhDQor44GL44G+44GfLOOBn+OBi+OBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgarjgYrjgY0NCivjgYLjgonjgYQs44KI44GX44G/DQor44GL44KK44KELOOBn+OBi+OBsuOBkw0KK+OBk+OCk+OBqSzjgojjgZfjgY0NCivjgb7jgZnjgaAs44Gy44KN44GKDQor44GE44Go44GGLOOBkeOBhOOBmeOBkQ0KK+OBiuOBiyzjgb/jgaHjga/jgosNCivjgYrjgYrjgaTjgYss44Gy44Gn44GNDQor44G+44Gk44GKLOOBk+OBhuOBmA0KK+OBguOBnSzjgabjgovjgYvjgZoNCivjgYvjgb/jgoDjgoks44Gy44KN44KG44GNDQor44Gf44GL44Gw44Gf44GRLOOBl+OBkuOBruOCig0KK+OBteOBj+OBoCzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga/jgZcs44GR44KT44GoDQor44GE44KP44GNLOOBvuOBk+OBqA0KK+OBmeOCkyzjgajjgojjgobjgY0NCivjgYLjgpPjganjgYYs44KI44GX44GKDQor44Gv44GX44KC44GoLOOBi+OBqg0KK+OChOOBr+OBnyzjgbLjgafjgYoNCivjgbXjgZjjgY0s44GR44KT44GYDQor44G+44Gk44GKLOOBleOBqOOBlw0KK+OBguOBiuOBjSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgZTjgajjgYYs44GX44KT44GYDQor44Gr44GX44GL44KPLOOBsuOBqOOBlw0KK+OBmeOBv+OBqCzjgb7jgZXjgbXjgb8NCivjgbLjgonjga4s44GT44GG44GYDQor44GE44Go44GGLOOBkeOBhA0KK+OBk+OBhOOBmuOBvyzjga7jgorjgZMNCivjgYvjgo/jgbDjgZ8s44Gu44Ge44G/DQor44KA44Go44GGLOOBi+OBpOOBruOCig0KK+OBguOBoOOBoSzjgb7jgZXjgZcNCivjgY3jgoks44G+44GV44GXDQor44GC44KE44GuLOOBk+OBhuOBjQ0KK+OBn+OCi+OBhCzjgojjgZfjgYoNCivjga/jgoTjgZcs44GN44KH44GG44GTDQor44GE44GR44GgLOOBmOOCheOCkw0KK+OBu+OCiuOBv+OBnizjgZHjgYTjgZnjgZENCivjgbXjgovjgarjgYws44Gv44KL44Gy44GTDQor44GK44GX44G+LOOBquOBmeOBig0KK+OBr+OChOOBlyzjgbLjgajjgZcNCivjgavjgZcs44KG44GN44G/44GkDQor44GT44KA44KNLOOBi+OBquOCgQ0KK+OBsuOCjeOBn+OBqyzjgojjgZfjgYoNCivjgZnjgYws44Gy44KN44GXDQor44Gk44KL44G/LOOBguOBjeOBsuOBlQ0KK+OBqOOBv+OChOOBvizjgYvjgZrjgb/jgaQNCivjgoTjgb7jgZbjgY0s44KI44GG44GTDQor44GE44GX44GgLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBhuOBoeOBqOOBvyzjgYLjgY3jgokNCivjgYrjgYrjgZXjgo8s44KI44GX44GL44GaDQor44KE44Gq44GOLOOBsuOBp+OBsuOCjQ0KK+OBv+OChOOBl+OBnyzjgbLjgafjgY0NCivjgZ/jgYvjga/jgZcs44GT44GG44GYDQor44Go44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgZfjgZLjgosNCivjgYbjgYjjgoDjgoks44Gf44GR44GXDQor44GC44GV44GuLOOChuOBhuOBhOOBoQ0KK+OBiuOBiuOChOOBvizjgZHjgpPjgZgNCivjgYvjgo/jga4s44GI44GE44GTDQor44Gw44GwLOOBsuOBqOOBlw0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYbjgYjjga4s44Gu44G244KG44GNDQor44GX44KJ44GELOOBkeOCk+OBl+OCkw0KK+OBhOOBi+OBvyzjga/jgovjgYoNCivjgYvjgo/jgZfjgb4s44Go44KC44KG44GNDQor44G/44KE44GRLOOBn+OBi+OBsuOCjQ0KK+OBleOBj+OCieOBhCzjgZHjgpPjgZgNCivjgZ/jgZHjga7jgZfjgZ8s44GX44KF44GG44G444GEDQor44Gr44GX44GK44GLLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBj+OCjeOBjSzjgb7jgZXjgojjgZcNCivjgZ/jgarjgYss44G/44Gu44KLDQor44GE44GE44GY44G+LOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgbLjgo3jgYLjgY0NCivjgZXjgY/jgonjgYQs44GL44Ga44GX44GSDQor44KE44Gq44GO44GV44KPLOOBruOBtuOBig0KK+OBhuOBoeOChOOBvizjgZfjgZLjgojjgZcNCivjgYrjgY/jgaQs44GL44Ga44Go44GXDQor44Gr44GX44KE44G+LOOBm+OBhOOBmA0KK+OBn+OBkeOBoCzjgZ/jgYvjgZMNCivjgbXjgorjga/jgoks44GL44Ga44GKDQor44KE44G244GNLOOBvuOBleOBsuOCjQ0KK+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgojjgZfjgYrjgYss44GL44Ga44KEDQor44KC44Gh44Ga44GNLOOBn+OBi+OChuOBjQ0KK+OBmeOBjuOChOOBvizjgbLjgafjgbLjgo0NCivjgYTjgo/jgarjgYws44GR44GE44GE44GhDQor44G/44KPLOOBr+OCi+OBi+OBmg0KK+OBu+OCiuOBi+OCjyzjgYvjgaTjgY0NCivjgZ/jgYvjgaAs44GT44GG44GYDQor44GE44GX44G+44KLLOOBl+OBkuOChOOBmQ0KK+OBiuOCgOOCiSzjgbLjgafjgYoNCivjgY3jgZ/jgoDjgoks44KK44GLDQor44GZ44GO44GNLOOBn+OBi+OBjQ0KK+OBq+OBl+OCgOOCiSzjgaHjgYjjgZMNCivjgarjgYvjga/jgoks44GT44GG44GE44GhDQor44G+44Gk44KC44GoLOOBguOBjeOCiQ0KK+OBteOBj+OBl+OBvizjgb7jgZXjgosNCivjgYvjgZjjgYrjgYss44GC44GN44Gy44GoDQor44Gq44GL44GW44KPLOOBruOBvOOCiw0KK+OBvuOBmeOBluOBjSzjgZ/jgYvjgZcNCivjgarjgYss44Go44GX44Gf44GLDQor44GK44GV44GgLOOBr+OBmOOCgQ0KK+OBi+OCj+OBnyzjgarjgYrjgb8NCivjgojjgZfjgaAs44GT44GG44GYDQor44Gq44GLLOOBqOOBl+OBsuOCjQ0KK+OBiOOBhOOBqeOCgSzjgbLjgafjgYvjgZoNCivjgb7jgaTjgoLjgags44KI44GX44G+44GVDQor44Gq44GM44GV44GLLOOCiOOBl+OBguOBjQ0KK+OBteOBmOOBleOCjyzjgYvjgaTjgbLjgZMNCivjgY3jgojjgZ/jgass44Gk44Go44KADQor44GC44KK44KC44GoLOOBm+OBhOOBkw0KK+OBiOOBnuOBiCzjgZHjgYTjgYTjgaENCivjgaTjgaHjgoQs44GL44Ga44KEDQor44G144GY44GK44GLLOOChOOBmeOBkw0KK+OBpOOBi+OCguOBqCzjgbXjgb/jgYoNCivjgZ/jgYvjga/jgZcs44Go44KI44Gy44GTDQor44GV44GL44GE44GgLOOChOOBmeOBsuOCjQ0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgYrjgZfjgb4s44KE44GZ44Go44GXDQor44G+44GN44GG44GhLOOBn+OBj+OChA0KK+OBr+OCieOBoCzjgbLjgZXjgYvjgZoNCivjgb7jgZXjgY0s44GC44GN44KJDQor44GK44GM44KPLOOBruOBtuOBguOBjQ0KK+OBhuOBl+OBvuOCiyzjgZHjgpMNCivjgYTjgZfjgaAs44Gu44G244Gf44GLDQor44Gv44Gq44G244GVLOOBguOBpOOBkw0KK+OCiOOBl+OCgOOCiSzjgojjgZfjgbLjgZUNCivjgZ/jgavjgYzjgo8s44G+44KK44GKDQor44GV44Go44GGLOOBn+OBpOOBlw0KK+OBi+OBpCzjgZ/jgYvjgZcNCivjgoTjgb7jgZDjgaEs44Gy44KN44GNDQor44Gv44GP44Gh44KH44GGLOOBhOOBleOBig0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgYvjgYQs44GL44Ga44Gu44KKDQor44Gf44KT44GULOOBsuOBp+OBig0KK+OBk+OBhOOBmuOBvyzjgZHjgpPjgZnjgZENCivjgo/jgYvjgZnjgY4s44Gf44Gg44Gf44GLDQor44GG44GI44GuLOOBl+OCk+OBhOOBoQ0KK+OBhuOBiOOBoCzjgajjgoLjgY0NCivjgZnjgZrjgY0s44Gy44GV44GIDQor44GK44GK44GuLOOCiOOBl+OBruOCig0KK+OBguOBuSzjgZHjgpPjgYTjgaENCivjgZfjgYTjgY0s44Gy44KN44GXDQor44GC44KJ44GNLOOBjeOCiOOBr+OCiw0KK+OBguOBmuOBvizjgbLjgo3jgojjgZcNCivjgafjgZDjgaEs44Gy44KN44Gu44KKDQor44GI44KK44GL44KPLOOChuOBhuOBkw0KK+OBteOBi+OChOOBvizjga7jgbbjgobjgY0NCivjgbXjgarjgY0s44GV44GL44GIDQor44GE44Gh44KA44KJLOOBvuOBk+OBqA0KK+OBr+OBl+OCguOBqCzjga7jgorjgYLjgY0NCivjgbLjgYzjgZcs44GN44KI44Gf44GLDQor44Gy44KN44GV44KPLOOBguOBpOOBlw0KK+OBu+OCiuOBkOOBoSzjgobjgYbjgYTjgaENCivjgYTjgbDjgonjgY0s44KG44GG44GE44GhDQor44GE44Gq44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBi+OCjyzjgb/jgY3jgYoNCivjgYTjgajjgYQs44Gf44Gg44GXDQor44GL44Gq44GW44GXLOOBruOCiuOBkw0KK+OBi+OBn+OBjuOBlyzjgb7jgZXjgZcNCivjgYvjgajjgYYs44KE44GZ44GXDQor44GL44KP44GgLOOBkeOCk+OBmeOBkQ0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GL44Gk44Gu44KKDQor44GT44G+44GkLOOChOOBmeOBn+OBiw0KK+OBk+OBn+OBqyzjgbLjgafjgY0NCivjgY/jgo3jgZss44GK44GV44KADQor44G+44GI44GgLOOChuOBhuOBmA0KK+OBvuOCk+OBn+OBqyzjgojjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44KE44GZ44GC44GNDQor44G/44KA44KJLOOBl+OBkuOBruOBtg0KK+OBv+OCjyzjgb7jgZXjgbLjgo0NCivjgoLjgorjgZ8s44GC44GN44Gy44GTDQor44KA44Gt44KA44KJLOOBqOOBl+OBv+OBpA0KK+OBquOBjOOBnyzjgZHjgpPjgZgNCivjgarjgYvjgZPjgZgs44Gf44Gk44KEDQor44Gq44GL44KA44KJLOOCiOOBhuOBhOOBoQ0KK+OBquOBi+OChOOBvizjgZ/jgYvjgZcNCivjgavjgoDjgoks44GZ44GZ44KADQor44KE44GY44G+LOOCiOOBl+OBiA0KK+OBruOBvizjgajjgojjgb8NCivjgazjgY3jgYQs44GL44Gk44G/DQor44GK44GM44GV44KP44KJLOOBl+OCheOBhuOBmA0KK+OBiuOBiuOBleOCjyzjgbLjgafjgZ/jgYsNCivjgb7jgaTjgarjgYws44KI44GX44GC44GNDQor44GK44GL44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBleOBoCzjgoDjgaTjgb8NCivjgZXjgYTjgajjgYYs44GC44GN44Gy44KNDQor44GV44GP44KJ44GELOOBl+OBkuOBruOCig0KK+OBleOBqOOBhizjgojjgZfjga7jgooNCivjgZvjgZbjgYQs44GL44Ga44KE44GZDQor44GX44G/44GaLOOBguOBjeOBqOOBlw0KK+OBl+OCh+OBhuOBv+OBpCzjgojjgZfjgbLjgo0NCivjgZnjgY7jgZXjgo8s44Gu44G244KG44GNDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgobjgYbjgZMNCivjgZ/jgYvjga/jgZcs44Gf44GL44KG44GNDQor44Gf44GL44GV44GLLOOBr+OBmOOCgQ0KK+OBteOBmOOBhCzjgYLjgaTjgZMNCivjgZ/jgb7jgY0s44GV44Go44GTDQor44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBqOOBjeOBnuOBrizjgZfjgZLjgYoNCivjgajjgorjgZbjgo8s44GI44G/DQor44Gk44KL44GL44KPLOOBiOOBhOOBmA0KK+OBhuOBoCzjgbLjgZXjgojjgZcNCivjgYbjgoHjgoDjgoks44GN44G/44Gy44KNDQor44KP44Gf44KKLOOChOOBmeOCiOOBlw0KK+OChOOBvuOCguOBqCzjgabjgaTjgoQNCivjgoTjgb7jgoLjgags44G+44GV44KI44GXDQor44KE44GuLOOChuOBjeOBig0KK+OCiOOBoCzjgYTjgZXjgYoNCivjgoTjgb7jgZDjgaEs44GL44Ga44KI44GXDQor44G7LOOBguOBjeOCiQ0KK+OBvuOBpOOBv+OChCzjgobjgYbjgYTjgaENCivjgZXjgo/jgaAs44Gy44KN44GXDQor44GT44Gv44KJLOOBvuOBleOBruOCig0KK+OBleOBhOOBqOOBhizjgb/jgaTjgosNCivjgoTjga4s44G/44Gk44GKDQor44G144GY44KC44KKLOOBruOCiuOBkw0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgaAs44Gf44GL44GXDQor44G144GY44GfLOOBqOOBl+OBjQ0KK+OBjeOCgOOCiSzjgZ/jgZHjgYoNCivjga/jgoTjgZcs44G+44GV44Gy44KNDQor44G+44GI44GW44KPLOOBhOOBmuOBvw0KK+OBl+OBtuOBi+OCjyzjgY3jgojjgbLjgZUNCivjgb/jgbss44G+44GV44Gu44KKDQor44GZ44GO44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBteOCi+OBi+OCjyzjgojjgZfjgbXjgb8NCivjga7jgaHjgZss44GL44Ga44Gy44GTDQor44G+44Gk44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBiuOBj+OBrizjgobjgY3jgYoNCivjgoTjgb7jgZbjgY0s44KE44GZ44Gy44KNDQor44GE44GX44GSLOOBguOBjeOBkw0KK+OBv+OBhuOCiSzjgorjgoXjgYbjgZ7jgYYNCivjgbDjgbAs44Gf44GP44KEDQor44KC44Gh44Ga44GNLOOBiOOBv+OBkw0KK+OBqOOBj+OBquOBjCzjgbXjgb/jgbLjgagNCivjgY/jgo3jgYvjgo8s44Gy44KN44GXDQor44GE44GR44GuLOOCgeOBkOOBvw0KK+OChOOBvuOBi+OBkizjgojjgYbjgZgNCivjgoTjgY7jga/jgZcs44GX44KF44GG44GE44GhDQor44GN44KI44G/44GkLOOBkeOCk+OBmA0KK+OCgOOCieOChOOBvizjgYjjgYTjgZjjgoUNCivjgYrjgYrjgaTjgYss44Gy44Gn44Gy44GTDQor44GK44KE44G+44GgLOOBn+OBi+OBlw0KK+OBguOBkuOBnyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgoLjgYYs44GC44GN44GKDQor44GC44KJ44GL44KPLOOBsuOBp+OBlw0KK+OBsOOCk+OBrizjgb7jgZXjgY3jgogNCivjgYjjgZXjgY0s44GX44KT44GE44GhDQor44G144GL44GW44KPLOOBqOOCguOBsuOBqA0KK+OBteOBquOBsOOBlyzjgb7jgZXjgobjgY0NCivjga/jgarjgaAs44GL44Gk44Gu44KKDQor44Gv44GX44KC44GoLOOBiOOBv+OBkw0KK+OBsuOBmOOBj+OCjSzjgarjgYrjgobjgY0NCivjgbvjgYbjgoQs44GL44Ga44Gy44GTDQor44G744Gd44GgLOOBoeOBiOOBvw0KK+OBhOOBkeOBluOCjyzjga7jgbbjgoTjgZkNCivjgYTjgazjgaTjgYss44Gq44GK44GNDQor44GL44GY44Gf44GrLOOBiuOBleOCgA0KK+OBhOOBqOOBhizjgaHjgY/jgZUNCivjgYTjgo/jgZfjgZ8s44GX44GTDQor44GL44G/44KELOOBj+OBq+OBguOBjQ0KK+OBi+OBmeOChCzjgYLjgY3jgokNCivjgYvjgo/jgbDjgZ8s44Gg44GEDQor44GL44KP44GP44G8LOOBi+OBmuOBqOOBlw0KK+OBjeOBsOOBlyzjgbLjgafjgbLjgZMNCivjgY3jgorjgZXjgo8s44GE44Gh44KN44GGDQor44GT44Gg44G+LOOBiuOBleOCgA0KK+OBqOOBhuOBqeOBhizjgZPjgYbjgZgNCivjgZPjgoTjgYTjgZcs44G/44GLDQor44GP44KJ44GfLOOBk+OBmeOBkQ0KK+OBj+OCj+OBrizjgbLjgo3jgZ/jgYsNCivjgb7jgZnjgaAs44GY44KF44KTDQor44G+44Gk44GX44GfLOOBn+OBoOOBlw0KK+OBv+OChOOBkSzjgYLjgaTjgZcNCivjgb/jgojjgaAs44Gf44GL44Gy44GVDQor44G/44Ga44Gf44GrLOOBpOOCiOOBlw0KK+OCguOCiuOCj+OBjSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoDjgajjgYYs44GL44Gk44GNDQor44Gq44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBl+OBvizjgbLjgZXjgojjgZcNCivjgavjgZfjgaAs44Gy44KN44KI44GXDQor44Gr44GX44GKLOOBvuOBleOBqA0KK+OBruOCgOOCiSzjgabjgaTjgoQNCivjgYrjgaDjgYrjgYrjga/jgoks44GX44KT44GUDQor44GK44GK44Gy44KJLOOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBrOOBvizjgarjgovjgZcNCivjgYrjgYrjgoTjgY4s44G+44GV44Gy44KNDQor44GK44GL44GtLOOBn+OBi+OBlw0KK+OBiuOBj+OBrizjgYvjgaTjgZcNCivjgZXjgYTjgajjgYYs44KI44GX44G/DQor44GV44GL44GG44GILOOChOOBmeOChuOBjQ0KK+OBleOBqOOBhizjgZ/jgZHjgZcNCivjgZvjgY3jgoLjgags44Go44GX44KG44GNDQor44GX44GE44GqLOOBteOBv+OBr+OCiw0KK+OBl+OBv+OBmizjgbLjgafjgajjgZcNCivjgZfjgonjgZXjgY0s44KI44GG44GTDQor44GZ44Gp44GGLOOBleOBqOOBkw0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgbvjgZ3jgYvjgo8s44KG44KKDQor44KE44G+44GW44GNLOOBquOBiuOBjQ0KK+OBn+OBi+OBmSzjgYvjgZrjgogNCivjgZ/jgZHjgaAs44Gy44KN44KG44GNDQor44Gf44G+44Gf44GrLOOBi+OBmuOBguOBjQ0KK+OBn+OBq+OCguOBqCzjgZfjgpPjgYTjgaENCivjgajjgb/jgarjgYws44Gy44KN44Gy44GVDQor44Gk44GL44GgLOOBsuOBp+OBjQ0KK+OBhuOCieOBi+OCjyzjgobjgYbjgZgNCivjgo/jgZ/jgoos44GT44GG44GYDQor44KE44G+44KC44GoLOOBguOBpOOBlw0KK+OChOOBvuOBl+OBnyzjgajjgZfjgbLjgacNCivjgoTjgZbjgY0s44Gf44GR44GXDQor44KI44GT44GfLOOChuOBhuOBkw0KK+OCiOOBl+OBi+OCjyzjgb/jgaTjgbLjgo0NCivjgYLjgZXjga4s44G/44Gh44GTDQor44GK44GP44GgLOOBsuOBleOBkw0KK+OBhOOBquOBoCzjgb7jgZXjgaTjgaoNCivjgZfjgoLjgYvjgo8s44G144G/44Gy44GTDQor44Gk44G844GfLOOBruOCiuOBig0KK+OBiuOBiuOBj+OBvCzjgZ/jgZHjgZcNCivjgZXjgYTjgajjgYYs44GX44KF44GG44GE44GhDQor44G144GY44GfLOOBpOOBreOBig0KK+OBvuOBjeOCgOOCiSzjgZ/jgZHjgYoNCivjgavjga7jgb/jgoQs44GL44Ga44GKDQor44Gf44Gw44GfLOOCiOOBl+OBn+OBiw0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgY0NCivjgYTjgb7jgavjgZcs44Gf44GR44GKDQor44Gf44GN44GM44KPLOOBl+OBkuOCiOOBlw0KK+OBiuOCk+OBmuOBiyzjgbLjgo3jgZcNCivjgajjga7jgYvjgo8s44Gf44GR44GXDQor44GE44GR44GgLOOBqOOBjeOBig0KK+OBlOOBqOOBhizjgYvjgZrjgoQNCivjgZ3jgaAs44GR44KT44GYDQor44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OBn+OCk+OBrizjgYjjgYTjgYTjgaENCivjgZTjgYbjgaAs44GN44KH44GG44GTDQor44KE44G+44GQ44GhLOOBsuOCjeOBi+OBmg0KK+OBiuOBleOBquOBhCzjgYLjgaTjgZcNCivjgbLjgYzjgZcs44GX44KH44GG44GTDQor44KE44G+44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjgYoNCivjgb/jgZ7jgZDjgaEs44Go44GX44KG44GNDQor44GN44Gf44GM44KPLOOBsuOCjeOBlw0KK+OBiuOBiuOBq+OBlyzjgZ3jgYbjgYTjgaENCivjgYLjgYTjga/jgoks44Gy44Gn44GKDQor44GC44GN44GwLOOBpOOBqOOCgA0KK+OBguOBvuOBrizjgajjgYrjgosNCivjgYLjgYrjgoTjgY4s44Gf44GL44GKDQor44GC44KJLOOBguOBjeOBig0KK+OBguOBleOBrizjgojjgZfjgbLjgo0NCivjgbDjgpMs44GT44GG44Gf44KN44GGDQor44GI44Gz44Gs44G+LOOBguOBkeOBvw0KK+OBteOBmOOBiOOBoCzjgZjjgoXjgpMNCivjgbXjgZjjgYQs44GX44GS44Gu44KKDQor44GK44GQ44KJLOOBguOChOOBkw0KK+OBteOBi+OBiizjgb/jgaTjgbLjgo0NCivjgbXjgY/jgaAs44G/44GLDQor44G144GP44GK44GLLOOBl+OCk+OBlA0KK+OBlOOBhuOBoCzjgojjgorjgZMNCivjga/jgY7jgo/jgoks44GN44GP44GKDQor44Gv44Gq44G/44GkLOOCiOOBl+OBn+OBiw0KK+OBr+OCiSzjgb/jgobjgY0NCivjga/jgaTjgZfjgb4s44GR44KTDQor44Gv44Gj44Go44KKLOOCiOOBl+OBruOCig0KK+OBr+OChOOBlyzjgYvjgaTjgb8NCivjgbLjgarjgZ8s44GY44KF44KTDQor44Gy44KJ44GV44KPLOOBi+OBmuOBsuOCjQ0KK+OBsuOCjeOBmyzjgbLjgZXjgobjgY0NCivjgZnjgY7jgoLjgags44Gb44GE44GE44GhDQor44G744KKLOOBi+OBmuOBig0KK+OBu+OBnSzjgYvjgZrjgb8NCivjgYTjgafjgYQs44G+44GV44GL44GaDQor44GE44GE44KA44KJLOOCiOOBl+OBruOBtg0KK+OBhOOBkeOBoCzjgY/jgavjgbLjgo0NCivjgYTjgb7jgYQs44Gf44Gg44GXDQor44GE44Gu44GG44GILOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OBkOOCjSzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44KI44GG44GTDQor44GE44GX44KP44GfLOOBquOBiuOBsuOBlQ0KK+OBhOOBqOOBhizjgabjgaTjgoQNCivjgYTjgajjgYYs44Gf44GL44GXDQor44GE44KP44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OBleOBjSzjgZ/jgaTjgbLjgZMNCivjgYvjgYzjgb8s44GX44GS44KI44GXDQor44GL44G+44KC44GoLOOBn+OBiOOBkw0KK+OBi+OBvyzjgb7jgZPjgagNCivjgYvjgarjgZbjgo8s44GV44Gg44GE44GhDQor44GL44Gt44GTLOOChOOBiA0KK+OBi+OBl+OCj+OBjizjgbLjgo3jgZcNCivjgYvjgZ/jgYrjgYss44GC44Gk44GXDQor44GU44Go44GGLOOBsuOCjeOBi+OBmg0KK+OBi+OCj+OBr+OCiSzjgbLjgo3jgYLjgY0NCivjgYvjgo/jgY3jgZ8s44KE44GZ44GTDQor44GN44GgLOOCiOOBl+OBteOBvw0KK+OBjeOCgOOCiSzjgb/jga7jgosNCivjgYrjgYvjgZbjgY0s44Gf44GR44GKDQor44GN44Gf44KA44KJLOOBguOBjeOBig0KK+OBk+OBsOOChOOBlyzjgb/jgojjgZMNCivjgbLjgo3jgZss44Gv44KL44GKDQor44GT44GV44GLLOOCiOOBl+OChuOBjQ0KK+OBk+OBj+OBvuOBhCzjgb/jgYjjgZMNCivjgZPjgoLjgYrjgYss44G144G/44GKDQor44GT44KT44Gp44GGLOOBn+OBpOOBqA0KK+OBj+OBvCzjgZ/jgYvjgobjgY0NCivjgY/jgb7jgoLjgags44GC44GN44Gy44GTDQor44GP44KK44KE44G+LOOChuOBjeOBiA0KK+OBj+OBl+OBoCzjgo/jgZ/jgosNCivjgb7jgYjjgYvjgo8s44Gy44Gn44Gf44GLDQor44G+44GZ44GgLOOBv+OBjeOBig0KK+OBvuOBpOOBoCzjgZfjgZLjgYoNCivjgYvjga7jgYYs44Gy44KN44KG44GNDQor44G+44Gk44Gq44G/LOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBluOBjSzjgZ/jgaDjgZcNCivjgb/jgoLjgoos44Gy44KN44GXDQor44G/44GG44KJLOOCiOOBhuOBhOOBoQ0KK+OBv+OChOOBr+OBlyzjgY3jgofjgYbjgZMNCivjgb/jgoTjgZ/jgZEs44GX44GS44G/DQor44G/44Ga44GT44GXLOOBqOOBl+OBig0KK+OCguOCiuOBjSzjgoTjgZnjgbLjgo0NCivjgoLjgoos44GV44Go44KLDQor44KA44GL44GELOOBn+OBpOOBvw0KK+OCgOOCieOBnyzjgZXjgajjgZcNCivjgoDjgaTjgZfjgYss44GI44GE44GE44GhDQor44Gq44GM44GV44KPLOOBi+OBmuOBqA0KK+OBquOBjOOBiCzjgZ/jgYvjgobjgY0NCivjgarjgYvjgZjjgb4s44GL44Gk44Go44KCDQor44Gq44GL44G+44GfLOOBruOCiuOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjga/jgZjjgoENCivjgYrjgYrjgavjgZcs44G+44GV44Gu44KKDQor44Gq44GL44GuLOOCguOBiOOBkw0KK+OBquOBi+OBnyzjgZfjgZLjgZMNCivjgarjgYvjgoTjgb4s44GL44Gk44Gy44GTDQor44Gq44Gk44KE44G+LOOChuOBhuOBkw0KK+OCguOCiizjgobjgY3jgZMNCivjgavjgo8s44G+44GV44GNDQor44Gu44G+LOOBleOBqOOBlw0KK+OBruOCiuOBi+OBrSzjgb7jgZXjgosNCivjgYrjgaDjga0s44KI44GX44GL44GaDQor44GK44GK44Gw44KE44GXLOOChOOBmeOChuOBjQ0KK+OBiuOBjSzjgojjgZfjgobjgY0NCivjgYrjgonjgYQs44GZ44GZ44KADQor44GK44GK44Go44KCLOOBguOBjeOBig0KK+OBiuOBsuOCgyzjgY/jgavjgbLjgZMNCivjgYrjgYvjgoLjgags44KI44GX44GKDQor44GG44GI44GgLOOBqOOCiOOBi+OBmg0KK+OBq+OBlyzjgYLjgaTjgY0NCivjgZ/jgaAs44Gf44GL44KG44GNDQor44KE44G+44GX44GfLOOBkeOCk+OBmA0KK+OBleOBleOCguOCiizjgobjgZ/jgYsNCivjga/jgZvjgYzjgo8s44Go44KC44KG44GNDQor44GE44G+44GELOOBv+OChuOBjQ0KK+OCiOOBk+OChOOBvizjgZHjgpPjgZgNCivjgZnjgY7jgoTjgb4s44KI44GX44G+44GVDQor44GC44KJ44GELOOBqOOCguOBkw0KK+OBguOBvuOBjOOChCzjgobjgoHjga4NCivjgaTjgoss44G/44Gu44KLDQor44KE44GE44GfLOOBvuOBjQ0KK+OBm+OBjSzjgb7jgooNCivjga/jgoks44KI44GX44Gu44KKDQor44G/44GG44KJLOOBmeOBmeOCgA0KK+OBleOBlSzjgobjgY3jgZMNCivjgZ/jgYvjgZXjgY0s44G+44GN44GTDQor44Gv44KJ44GgLOOBiOOBv+OBkw0KK+OBj+OCieOBnyzjgoTjgZnjgbLjgo0NCivjgYLjgZLjgb7jgaQs44Gy44KN44G/44GhDQor44G144GP44KC44GoLOOBv+OBjeOBig0KK+OBiuOBj+OCgOOCiSzjgaDjgYQNCivjgYrjgZ3jgYjjgYzjgo8s44KE44GZ44Gq44KKDQor44GV44GE44GfLOOBvuOBleOBsuOCjQ0KK+OBleOBi+OBhCzjgbLjgo3jgb8NCivjgZXjgYvjgoos44Gu44G244Gy44KNDQor44GV44GuLOOChuOBn+OBiw0KK+OBleOBqOOBhizjgojjgZfjgbLjgZMNCivjgZXjgajjgYYs44GC44GN44GKDQor44GV44Go44GGLOOBleOBqOOBlw0KK+OBm+OBjeOBi+OCjyzjgYLjgY3jgokNCivjgZvjgZfjgoIs44GT44GG44GYDQor44GX44G244KELOOBvuOBleOBruOCig0KK+OBl+OBvuOCguOCiizjgb7jgZXjgbLjgZMNCivjgZfjgoLjgaAs44GR44GE44G/44KTDQor44GX44KT44Gf44GrLOOChuOBhuOBmA0KK+OBl+OCieOBhCzjgZfjgZLjgY0NCivjgZfjgoXjgYYs44GU44GE44GhDQor44GZ44GgLOOBquOBiuOBjQ0KK+OBmeOBjuOBnyzjgobjgYbjgYTjgaHjgo0NCivjgZnjgZbjgY0s44Gm44Gk44KEDQor44GZ44Ga44GNLOOBqOOBl+OChA0KK+OBmeOBmuOBjSzjga7jgorjgobjgY0NCivjgZ/jgYzjgYQs44KE44GZ44GXDQor44Gf44GL44GOLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgZMNCivjgZ/jgYvjgYTjgZcs44Go44KC44GC44GNDQor44Gf44GL44GK44GLLOOBn+OBi+OBjQ0KK+OBn+OBi+OChOOBvizjgZfjgpPjgYTjgaENCivjgZ/jgZHjgoLjgags44Gu44Ge44G/DQor44Gf44G+44GhLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgbLjgo3jgbXjgb8NCivjgZ/jgass44Gy44KN44G244G/DQor44Gm44KJ44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBjizjga7jgorjgbLjgZUNCivjgajjgojjgZXjgags44Gy44KN44GXDQor44Gk44GY44KC44GoLOOChuOBjeOBig0KK+OBpOOCi+OBnyzjgZfjga7jgbYNCivjgYbjgaHjgoTjgb4s44Gf44GR44GXDQor44GN44GN44KH44GGLOOCiOOBl+OBn+OBiw0KK+OBhuOBiOOBrizjgojjgZfjgZMNCivjgarjgYzjgZ8s44Gu44KK44GTDQor44KP44GgLOOBl+OBmuOBig0KK+OBhOOBqOOBhCzjgojjgZfjgbLjgZUNCivjgo/jgZ/jgarjgbks44Gy44Gn44Go44GXDQor44KE44G244GG44GhLOOBl+OCh+OBhuOBuOOBhA0KK+OChOOBvuOBoCzjgYLjgY3jgYoNCivjgoTjgb7jgoLjgags44GC44GN44Gy44KNDQor44KE44G+44KC44GoLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBl+OBnyzjgaTjgajjgoANCivjgoTjgb7jgZfjgZ8s44GC44GN44KJDQor44KE44GuLOOBqOOCguOChuOBjQ0KK+OCiOOBk+OBnyzjgb/jgarjgZMNCivjgojjga3jgoDjgoks44Gf44Gg44GXDQor44KI44GX44KA44KJLOOBsuOCjeOBvw0KK+OBvuOBpOOBoCzjgojjgZfjgaTjgZANCivjgbvjgZ3jgoQs44GX44KH44GG44GYDQor44G/44KE44GX44GfLOOBl+OBkuOBqOOCgg0KK+OBl+OBjCzjgb7jgZXjgb/jgaQNCivjgoTjgb7jgaAs44KG44GG44GE44GhDQor44Gv44KE44GXLOOBleOBu+OCig0KK+OBhOOBkeOBoCzjgaTjgojjgZcNCivjgYbjgYjjga4s44GL44Ga44Gf44GLDQor44GV44GE44Go44GGLOOBpuOCi+OCiOOBlw0KK+OBquOBjOOChOOBmSzjgZPjgYbjgZgNCivjga/jgY7jgYos44Go44KC44Gy44GTDQor44Gv44G+44GgLOOBvuOBleOBmA0KK+OCgOOCieOBi+OBvyzjga7jgorjgbLjgo0NCivjgYLjgbks44GX44KF44KT44GYDQor44GC44GN44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBguOCk+OBqeOBhizjgabjgpPjgZvjgYQNCivjgYLjgonjgY0s44GX44GS44G/44GkDQor44GC44GdLOOBj+OBq+OBi+OBmg0KK+OBsOOBsCzjgobjgYbjgZnjgZENCivjgYjjgbPjgZXjgo8s44Gy44KN44GXDQor44G144GY44GELOOCiOOBl+OBruOCig0KK+OBteOBmOOBhCzjgZ/jgaTjgoQNCivjgbXjgZjjgZ8s44Gy44KN44GXDQor44G144GY44KP44KJLOOBsuOCjeOCgA0KK+OBteOBj+OBoCzjgZjjgoXjgpMNCivjgbXjgY/jgYrjgYss44GE44GV44GKDQor44G144KL44KELOOBqOOBl+OChuOBjQ0KK+OBjOOBqSzjgbLjgZXjgZcNCivjga/jgYws44GC44Gk44GXDQor44Gv44G+44GX44G+LOOChuOBvw0KK+OBr+OBmyzjgobjgZ/jgYsNCivjga/jgZfjgZrjgoEs44Gq44GK44GNDQor44Gk44GgLOOBsuOCjeOBkw0KK+OBr+OChOOBlyzjgajjgZfjgo3jgYYNCivjgbLjgonjgYQs44KG44GG44GE44GhDQor44Gy44KJ44GV44GLLOOBsuOCjeOChuOBjQ0KK+OBsuOCjeOCj+OBn+OCiizjgZ/jgYvjgbLjgo0NCivjgZnjgZrjgY0s44Gy44Gn44GNDQor44G744Gd44G/LOOBsuOCjeOBguOBjQ0KK+OBhOOBoCzjgaHjga/jgosNCivjgYTjgYzjgonjgZcs44KG44GN44KEDQor44GE44GE44GY44G+LOOBn+OBkeOBlw0KK+OBhOOBvuOCgOOCiSzjgZPjgYbjgYTjgaENCivjgYTjgozjgYQs44G+44GV44KLDQor44GE44GX44GELOOBqOOCguOChuOBjQ0KK+OBhOOBneOBrizjgb/jgaTjgajjgZcNCivjgYTjgajjgYYs44KI44GX44G+44GVDQor44GE44KP44GVLOOBqOOBl+OBvw0KK+OBhOOBmuOBv+OBleOCjyzjgZvjgYTjgZgNCivjgYvjgYTjgaAs44GT44GG44GYDQor44GL44G+44GfLOOBqOOBl+OBiA0KK+OBi+OCk+OBuSzjgZ/jgYvjgbLjgo0NCivjgYvjga3jgZMs44GC44GN44KJDQor44KI44Gt44KC44GhLOOBquOBiuOBlw0KK+OBi+OBn+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjgYvjgajjgYYs44KE44GZ44Gy44KNDQor44GL44Go44GGLOOChuOBhuOBmA0KK+OBn+OBvuOBjOOCjyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgovjgZEs44Gf44GL44GXDQor44GN44GpLOOBn+OBi+OBteOBvw0KK+OBjeOBj+OCiSzjgYvjgaTjgb8NCivjgY3jgoDjgoks44G+44GV44GNDQor44GN44Gu44GX44GfLOOChOOBmeOBsuOCjQ0KK+OBjeOBn+OBguOBjSzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44GT44Gw44KE44GXLOOBqOOBl+OBjQ0KK+OBk+OCk+OBrizjgojjgYYNCivjgZPjgb/jgoTjgb4s44KI44GX44Gy44KNDQor44GT44Gr44GXLOOBguOBjeOBruOCig0KK+OBk+OChOOBvizjgbLjgo3jgb8NCivjgY/jganjgYYs44GY44KF44KTDQor44GP44KK44KELOOChuOBhuOBhOOBoQ0KK+OCiOOBl+OBoCzjgZXjgajjgosNCivjgb7jgY3jga4s44Go44GX44GKDQor44G+44GV44GNLOOBsuOBp+OCiA0KK+OBvuOBpOOBhCzjgoTjgZnjgbLjgo0NCivjgb7jgaTjgoLjgags44Gf44GR44GXDQor44G+44Gk44KE44G+LOOBmOOCheOCkw0KK+OBv+OBn+OCgOOCiSzjgZjjgoXjgpMNCivjgb/jgo/jgZ8s44Gq44GK44GNDQor44G/44KE44KC44GoLOOBsuOBqOOBvw0KK+OCguOBoeOBmuOBjSzjgZfjgoXjgYbjgYTjgaENCivjgoLjgoos44G+44GV44KG44GNDQor44G+44Gk44GgLOOBkeOCk+OBmA0KK+OCguOCiuOCj+OBjSzjga7jgbbjgobjgY0NCivjgoDjgonjgYvjgb8s44Gf44GR44GKDQor44KA44KJ44KE44G+LOOBleOBqOOBlw0KK+OBquOBjOOBl+OBvizjgb/jgaHjga7jgooNCivjgYbjgaHjgZ7jga4s44Gf44GL44GXDQor44Gq44GL44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44KI44GX44Gy44GTDQor44Gq44GL44GX44G+LOOBruOCiuOBig0KK+OBquOCieOBr+OCiSzjgZXjgajjgZcNCivjgavjgZfjgbYs44GC44KE44GTDQor44Gr44GX44KC44GoLOOBquOBiuOBkw0KK+OBq+OBl+OBluOCjyzjgaDjgYTjgZnjgZENCivjga7jgZjjgb4s44Gu44KK44GKDQor44Gs44KPLOOBn+OBkeOBlw0KK+OBiuOBjOOCjyzjgZHjgpPjgYTjgaENCivjgYrjgYrjgYzjgY0s44GL44Ga44Gy44KNDQor44GK44GNLOOBvuOBleOBsuOBkw0KK+OBiuOBiuOCguOCiizjgbLjgo3jgYLjgY0NCivjgYrjgYrjgazjgb4s44G+44GV44GKDQor44GK44GK44Gf44GRLOOBleOBiOOBkw0KK+OBleOBk+OBoCzjgZfjgoXjgYbjgYTjgaENCivjgYrjgYvjgaAs44Gm44Gk44GYDQor44GK44GN44GfLOOBleOBqOOBkw0KK+OBiuOBiuOBrizjgZ/jgYvjgZcNCivjgYrjgorjgYQs44GX44KF44KT44GYDQor44GK44GW44KPLOOChOOBmeOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgZHjgYTjgZgNCivjgZXjgYvjgoLjgags44KI44GX44GKDQor44GV44GL44GfLOOBvuOBleOBsuOCjQ0KK+OBleOBquOBjizjgojjgZfjgY0NCivjgZXjgZXjgY0s44Gq44GM44G+44GVDQor44GV44Go44GGLOOBvuOCguOCiw0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZvjgY3jga4s44Gu44KK44Gy44KNDQor44GX44G+44GgLOOBguOBpOOBlw0KK+OBl+OBv+OBmizjgZ/jgYvjgYLjgY0NCivjgZfjgoLjgaAs44Gy44KN44KG44GNDQor44GX44Gu44GW44GNLOOBguOBpOOBlw0KK+OBl+OCh+OBhuOBoCzjgZHjgpPjgZgNCivjgZnjgYzjga4s44Gy44KN44KG44GNDQor44GZ44GO44GV44GNLOOCiOOBhuOBkw0KK+OBmeOBjuOChOOBvizjgZ/jgZHjgZcNCivjgZnjgZrjgY0s44Gy44Gn44KG44GNDQor44GZ44Ga44GNLOOBvuOBleOBruOCig0KK+OBn+OBkOOBoSzjgZfjgpMNCivjgZ/jgYvjga/jgZcs44GL44Ga44Gu44KKDQor44Gf44GL44Gv44GXLOOBiuOBleOCgA0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjgoTjgarjgY4s44GX44GS44KLDQor44Gf44GR44GELOOBruOBtuOBig0KK+OBn+OBkeOBl+OBvizjgYvjgaTjgZfjgo3jgYYNCivjgZ/jgoDjgoks44GX44KH44GG44GE44GhDQor44Gf44Gq44GLLOOChOOBmeOBmA0KK+OBleOBrizjgbLjgo3jgbXjgb8NCivjgabjgonjgb7jgYgs44G+44GNDQor44Go44GQ44GhLOOBn+OBkeOBlw0KK+OBqOOBv+OBhCzjgb7jgZXjgbLjgo0NCivjgajjgaPjgajjgoos44GC44GN44Gy44GTDQor44Gk44GYLOOBvuOBleOBsuOBkw0KK+OBpOOBjeOBluOCjyzjgZPjgYbjgZgNCivjgaTjgovjgZ8s44Gu44KK44GTDQor44GG44Gh44GgLOOBl+OCh+OBhuOBkw0KK+OBhuOBiOOBoCzjgojjgYbjgZnjgZENCivjgYbjgYjjga4s44GY44KF44KT44GYDQor44GI44GM44GX44KJLOOBn+OBoOOBlw0KK+OBjeOBn+OCj+OBjSzjgZvjgYTjgY0NCivjgo/jgZ/jgarjgbks44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OCieOBhCzjgZjjgo3jgYYNCivjgoTjgb7jgaAs44GC44Gk44GXDQor44G144GY44GfLOOBvuOBleOBqOOBlw0KK+OChOOBvuOCguOBqCzjgoTjgZnjgZcNCivjgoTjgb7jga0s44G/44Gh44KLDQor44KE44G+44GX44GfLOOBl+OBkuOBvw0KK+OChOOBvuOBluOBjSzjgZ/jgaDjgZcNCivjgojjgaAs44GX44KF44KT44GZ44GRDQor44KI44GX44GgLOOBi+OBmuOCiOOBlw0KK+OCiOOBl+OCgOOCiSzjgZXjgajjgosNCivjgYrjgZbjgo8s44GL44Gk44KG44GNDQor44KE44G+44GgLOOBjeOCiOOBlw0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgYLjgZzjgYzjgb8s44GX44GS44GL44GaDQor44G144GP44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgojjgZfjgbLjgo0NCivjgYTjgZ3jgaAs44GT44GG44GE44GhDQor44GL44G+44GfLOOBn+OBpOOChA0KK+OBjeOCgOOCiSzjgojjgZfjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GS44KTDQor44GP44G+44GV44GNLOOCiOOBl+OBguOBjQ0KK+OBv+OBj+OBqyzjgajjgb/jgYoNCivjgYjjgaAs44Gf44GL44GXDQor44Gt44KC44GoLOOBvuOBleOChuOBjQ0KK+OBiuOBrizjgZ/jgY/jgZgNCivjgZXjgYjjgY0s44Gu44KK44KG44GNDQor44Gb44GNLOOChuOBjeOBig0KK+OBmeOChOOBvizjgbLjgo3jgZMNCivjgZ/jgarjgYss44GR44KT44GUDQor44Gf44GW44KPLOOBv+OBjeOBig0KK+OBiOOCk+OBqSzjgZjjgoXjgpPjgZMNCivjgoTjgb7jgZDjgaEs44Gu44KK44GKDQor44KE44GZ44GgLOOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgbLjgo3jga/jgZcs44KE44GZ44GKDQor44GL44Go44GGLOOBsuOCjeOCiOOBlw0KK+OBhuOBiOOBr+OBvizjgb/jga7jgosNCivjgb7jgajjgbAs44Gh44Gy44KNDQor44KP44Gf44Gq44G5LOOBqOOBiuOCiw0KK+OBi+OCj+OBl+OBvizjgabjgaTjgYoNCivjgbXjgZjjgYvjgZ8s44G/44Gk44GKDQor44GT44GE44GRLOOBiuOBleOCgA0KK+OBn+OBquOBiyzjgorjgofjgYbjgZ7jgYYNCivjgaDjgZHjgoTjgb4s44Gy44KN44KG44GNDQor44GP44GX44Gz44GNLOOBmeOBkeOBsuOBpw0KK+OBmeOBjOOBr+OCiSzjgabjgaTjgYoNCivjgbLjgYzjgZcs44G144G/44Gy44KNDQor44G744GLLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOCj+OBnyzjgZ/jgYvjgobjgY0NCivjgZnjgYzjgo/jgoks44G+44GZ44GTDQor44GZ44GoLOOBvuOBleOBvw0KK+OBvuOBpOOBluOBjSzjgb7jgZXjga7jgooNCivjgYLjgYvjgb7jgoss44GK44GV44KADQor44GC44G544GL44KPLOOCjOOBhOOBmA0KK+OCiOOBreOBoCzjgb7jgZXjgYoNCivjgZ3jgYzjgbks44KG44GN44GKDQor44KP44GL44Gw44KE44GXLOOBr+OCjOOBig0KK+OBmeOBv+OBnyzjgabjgaTjgoQNCivjgYTjga7jgYbjgYgs44Gf44GL44KI44GXDQor44G/44KE44KC44GoLOOBpOOBqOOCgA0KK+OBteOBmOOBi+OCjyzjgarjgYrjgagNCivjgZXjgYTjgajjgYYs44G144G/44GKDQor44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjga7jgZDjgaEs44GX44GS44GC44GNDQor44GL44KP44Gq44G/LOOBvuOBleOBguOBjQ0KK+OBteOBj+OBl+OBvizjgYLjgY3jgokNCivjgYrjgaDjgo/jgoks44G/44Gh44GKDQor44GK44GK44GfLOOCiOOBhuOBmA0KK+OBi+OCj+OBrizjgZ/jgaDjgojjgZcNCivjgY/jgavjgobjgY0s44KE44GZ44Gy44KNDQor44GX44G+44GgLOOBv+OBpOOCiw0KK+OBn+OBi+OBl+OBvizjgb/jgaTjgY4NCivjgaTjgoQs44G+44GT44GoDQor44Gq44GL44GX44G+LOOBvuOBleOBig0KK+OChOOBjuOBl+OBnyzjgajjgZfjgYoNCivjgY3jgZfjgoLjgags44G+44GT44GoDQor44GP44GSLOOBkeOCk+OBmA0KK+OBguOBleOBrizjgojjgZfjgYLjgY0NCivjgYvjgo/jgYvjgb8s44Gk44Gt44GKDQor44GX44G+44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBteOBmOOBhCzjgZfjgoXjgpPjgYTjgaENCivjgbLjgYws44GY44KF44KT44GNDQor44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OBj+OCieOChCzjgY3jgbjjgYQNCivjgarjgYvjgZbjgo8s44G+44GV44Gy44GoDQor44GC44KP44GfLOOBl+OBkuOCiw0KK+OBmOOBoCzjgYLjgY3jgYoNCivjgbvjgZ3jgYvjgo8s44Go44GX44GKDQor44GX44G244KELOOCiOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBlyzjgY3jgojjgZcNCivjgY3jgZ/jgYzjgo8s44KI44GX44Gm44KLDQor44G/44Ga44Gf44GrLOOBguOBjeOCiQ0KK+OBn+OBi+OBmyzjgajjgZfjgYoNCivjgb/jgoTjgoDjgoks44Go44GK44KLDQor44KI44GT44Gv44GfLOOBqOOBl+OBsuOBkw0KK+OBquOCiuOBnyzjgb/jgaTjgojjgZcNCivjgYLjgbks44GV44Gg44Gy44KNDQor44Gq44G+44GILOOBkeOCk+OBmA0KK+OBjeOCgOOCiSzjgobjgZ/jgYsNCivjgarjgZTjgZcs44Gy44Gn44GC44GNDQor44Go44G/44Gq44GLLOOCiOOBl+OBig0KK+OBquOBi+OBrizjgaTjgoLjgosNCivjgYrjgYrjgZXjgY8s44GL44Ga44GKDQor44Gv44KE44GXLOOBl+OBkuOBguOBjQ0KK+OBiuOBiuOBlSzjgZ/jgYvjgZcNCivjgoTjgb7jgYbjgaEs44GYDQor44GK44GgLOOCiuOCh+OBhuOBmA0KK+OCgeOBkOOCjSzjgbLjgo3jgojjgZcNCivjgYvjgarjgZXjgY0s44Go44G/44GKDQor44GK44GL44GuLOOChOOBmeOBig0KK+OBj+OBleOBi+OCjyzjgarjgYrjgY0NCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44KE44GgLOOBi+OBmuOBiuOBvw0KK+OBvuOBpOOBiuOBiyzjgobjgY3jgYoNCivjgZnjgZrjgY0s44KG44GG44GYDQor44Gf44GN44KC44GoLOOBj+OBq+OBig0KK+OBsuOBjOOBl+OBsOOBnyzjgbLjgafjgYoNCivjgYTjgYTjgaAs44GR44KT44GXDQor44GL44KT44GuLOOBvuOBleOBsuOCjQ0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgYTjgY/jgZ8s44KE44GZ44Gy44GVDQor44GV44GuLOOBsuOBp+OBvuOBlQ0KK+OBmeOBjOOCj+OCiSzjgoTjgZnjgbLjgo0NCivjgarjgYzjgZ8s44KG44GN44GKDQor44GG44KJ44GuLOOBleOBqOOBlw0KK+OBmeOBjuOChOOBvizjgYvjgaTjgobjgY0NCivjgYrjgYvjgbks44G144G/44GKDQor44GT44GE44GnLOOBn+OBi+OBlw0KK+OBhOOBl+OBn+OBqyzjgZXjgajjgZcNCivjgoLjgoos44GI44GE44GYDQor44GN44Gf44KA44KJLOOBn+OBi+OBlw0KK+OBhOOCj+OBvyzjgoTjgZnjgYoNCivjgbXjgYvjgaAs44Gf44GL44GXDQor44GG44GI44GgLOOChuOBhuOBmA0KK+OBteOCi+OBn+OBqyzjgZ/jgYvjgb7jgZUNCivjganjgYQs44Gf44GL44GXDQor44Gq44GM44GuLOOBqOOBl+OBruOCig0KK+OBjeOCgOOCiSzjgYLjgY3jgokNCivjgYvjganjgoQs44KG44GG44GUDQor44GK44GK44GfLOOBj+OBq+OBig0KK+OBn+OBkeOBhuOBoSzjgZHjgpPjgYTjgaHjgo0NCivjgajjgY/jgoLjgags44Gf44GL44GC44GNDQor44GE44Go44GGLOOBl+OBteOBvw0KK+OChOOBvuOBluOBjSzjgajjgY3jgYoNCivjgYLjgYrjgY0s44KI44GX44G/DQor44Gh44GO44KKLOOBiOOBhOOBmOOCjeOBhg0KK+OCiOOBl+OBquOBjCzjgaHjgYvjgYgNCivjgbLjgonjgbDjgoTjgZcs44Gy44KN44GL44GaDQor44Gq44GL44Gv44KJLOOBkeOCk+OBmA0KK+OBsuOCjeOChCzjga7jgorjgbLjgo0NCivjgYvjgarjgYQs44GL44KT44Gb44GEDQor44Go44GK44KE44G+LOOBn+OBi+OBlw0KK+OBhuOBrizjgY3jgpPjgZQNCivjgZfjgbDjgZ8s44Go44GX44GKDQor44GN44Gf44GM44KPLOOBjeOBr+OBoeOCjeOBhg0KK+OBr+OCieOBoCzjgbLjgafjgobjgY0NCivjgoTjgb7jgoDjgoks44GR44KT44GYDQor44GP44G+44G/LOOChuOBhuOBnuOBhg0KK+OBhOOBl+OBsOOBlyzjgajjgZfjgobjgY0NCivjgZfjgbDjgZ8s44Gv44KL44GNDQor44GV44GP44KE44G+LOOBi+OBmuOBig0KK+OBhOOBkeOBoCzjgZvjgYTjgYTjgaENCivjgZ/jgZHjgoLjgags44GL44Ga44GKDQor44Gf44KC44GoLOOBqOOBv+OBig0KK+OBk+OCgOOCjSzjgorjgofjgYbjgYTjgaENCivjgZ/jgarjgYss44G+44GV44Go44GXDQor44GL44G+44GgLOOBsuOCjeOBlw0KK+OBn+OBsOOBnyzjgZHjgYTjgYTjgaENCivjgbLjgonjgYvjgZ8s44GL44Ga44GKDQor44Gf44GR44GG44GhLOOBpuOBpOOBig0KK+OBhOOBvuOBmizjgoTjgZnjgZ/jgaANCivjgbXjgZjjgZ8s44Go44GX44G/44GhDQor44KE44G+44KC44GoLOOBpOOBqOOCgA0KK+OChOOBvuOBjSzjgobjgYbjgZgNCivjgZfjgonjgYTjgaEs44G+44GV44KLDQor44GV44GV44GNLOOCgOOBpOOBvw0KK+OBv+OChOOBi+OCjyzjgb7jgZXjgZ/jgYsNCivjgY/jganjgYYs44GR44GE44GTDQor44GC44KJ44G+44GNLOOBruOBtuOBig0KK+OBjeOBr+OCiSzjgarjgYrjgY0NCivjgYrjgYss44GN44KH44GGDQor44GT44Gr44GXLOOBl+OBkuOBvw0KK+OBn+OBkeOBhuOBoSzjgZXjgaHjgZMNCivjgZ/jgarjgYss44GX44KT44GE44Gh44KN44GGDQor44GV44GL44KC44GoLOOBvuOCguOCiw0KK+OBvuOBpOOBoOOBhOOCiSzjgYjjgYTjgZgNCivjgYTjga4s44Gf44Gk44KN44GGDQor44GK44Gw44GqLOOBl+OBkuOChOOBmQ0KK+OBiuOBiuOBj+OCjyzjgY3jgojjgZcNCivjgZTjgajjgYYs44GX44KT44GYDQor44GZ44Ga44GNLOOBjeOCiOOBlw0KK+OBq+OBl+OBiuOBiyzjgZXjgbbjgo3jgYYNCivjgZXjgZXjgY0s44Gy44Gn44GKDQor44Gv44KJLOOBhOOBj+OBig0KK+OBm+OBjSzjgbLjgo3jgZcNCivjgZXjgYTjgajjgYYs44Gy44Go44GXDQor44G144GY44GfLOOBl+OCheOCk+OBmeOBkQ0KK+OBleOBi+OBnyzjgZPjgYbjgYTjgaENCivjgb7jgYjjgZbjgY0s44GE44GV44GKDQor44GX44GK44G/LOOBv+OBpOOBig0KK+OBn+OBi+OBj+OCjyzjgb7jgZXjga7jgbYNCivjgYTjgZfjga/jgoks44Gh44GI44GTDQor44GT44GP44G8LOOBkeOBhOOBkw0KK+OBv+OChOOBluOBjSzjgZfjgZLjgYoNCivjgYLjgorjgb4s44GR44GE44GTDQor44GG44Gh44KE44G+LOOBn+OBi+OBlw0KK+OBquOBl+OBjSzjgYvjgYrjgosNCivjgbXjgZjjgZ8s44KG44G/44GTDQor44Gf44GL44GO44KPLOOBhOOBleOCgA0KK+OBq+OBl+OBoCzjgbLjgajjgZcNCivjgY3jgY/jgaEs44Gy44Gn44G144G/DQor44Gq44GL44GELOOBvuOBleOBvw0KK+OBhOOBhOOBoCzjgoTjgZnjgZcNCivjgoTjgb7jgZDjgaEs44Gu44G244Gy44KNDQor44KE44GuLOOChuOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgbLjgZXjgZcNCivjgbvjgorjgoDjgY0s44KI44GX44G+DQor44GC44Gg44GhLOOBteOBv+OBruOCig0KK+OBhuOCieOBrizjgZPjgYbjgYTjgaENCivjgZ/jgZHjgaAs44G/44Gh44GTDQor44GV44GE44Go44GGLOOBsuOCjeOBpOOBkA0KK+OBl+OBvuOCgOOCiSzjgZPjgYbjgZgNCivjgbXjgY/jgaAs44Gk44KI44GXDQor44GN44KA44KJLOOBiOOBhOOBkw0KK+OChOOBvuOCguOBqCzjgYjjgorjgZMNCivjgZfjgZLjgoTjgZks44GI44GE44GE44GhDQor44GL44Gu44GGLOOBsuOCjeOBguOBjQ0KK+OBmeOCjyzjgbXjgb/jgYoNCivjgYrjgYvjgZbjgY0s44Gu44KK44GKDQor44G144GL44KELOOBvuOBleOBsuOCjQ0KK+OBk+OBluOBhCzjgb/jgaTjgosNCivjgbvjganjgoTjgb4s44Gy44Gn44GKDQor44GP44G844GfLOOBjeOCiOOBlw0KK+OBhOOBhOOBmuOBiyzjgorjgofjgYbjgZMNCivjgZ/jgYvjgY4s44Gf44GR44Gu44KKDQor44GE44KP44GKLOOBvuOBleOBlw0KK+OBhOOBl+OBhCzjgYTjgZXjgoANCivjgo/jgYvjgbDjgoTjgZcs44Go44GX44Gy44GnDQor44Gc44KT44GRLOOBqOOBl+OBig0KK+OCj+OBn+OBuSzjgojjgZfjgb8NCivjgb7jgaTjgoLjgags44Gy44KN44GX44GSDQor44G+44KL44KE44G+LOOBkeOBhOOBmA0KK+OBquOBi+OBrizjgbLjgafjga7jgooNCivjgYrjgYrjgY/jgbws44GL44Ga44Gv44KLDQor44GP44G844GfLOOBvuOBleOBqA0KK+OBq+OBl+OBi+OCjyzjgbLjgo3jgZcNCivjgavjgaPjgZ8s44G144G/44GTDQor44GE44GX44GgLOOBsuOBp+OBsuOBkw0KK+OBi+OBvuOBmSzjgZHjgpPjgZ7jgYYNCivjgYvjgZLjgoTjgb4s44G/44Gu44KLDQor44G+44Gk44KA44KJLOOBqOOBl+OBv+OBoQ0KK+OBleOBleOBjSzjgZnjgZnjgoANCivjgbLjgonjga4s44KI44GX44GL44GaDQor44GZ44Ga44GNLOOBhOOBoeOCjeOBhg0KK+OBq+OBl+OBr+OCiSzjgZHjgYQNCivjgY/jgo3jgYTjgo8s44Gf44GL44GXDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBkeOBhuOBoSzjgbLjgafjgYLjgaQNCivjgZfjgb/jgZos44GC44GN44Gy44GnDQor44GV44Gf44GRLOOBl+OCk+OBmA0KK+OBk+OBn+OBqyzjgZ/jgY/jgoLjgooNCivjgZPjgafjgoks44G+44GV44GoDQor44Gv44G+44GuLOOBv+OBoeOBig0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgobjgYLjgZUs44GR44KT44GYDQor44GK44GL44GgLOOCiOOBl+OBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjga/jgosNCivjgbXjgY/jgaAs44GY44KF44KT44GE44GhDQor44GL44G/44KA44KJLOOBn+OBi+OBlw0KK+OBhOOBvuOBoCzjgb7jgZXjgbLjgo0NCivjgZ3jga0s44G144G/44GKDQor44G/44Gu44GQ44GhLOOCiOOBl+OBruOCig0KK+OBj+OBoOOBquOBvyzjgb7jgZXjgobjgY0NCivjgYTjga7jgYbjgYgs44G/44Gp44KKDQor44GG44GI44KA44KJLOOBruOBvOOCiw0KK+OBv+OBhuOCiSzjgYrjgZXjgoANCivjgZnjgYzjgo/jgoks44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBquOBiuOChuOBjQ0KK+OBq+OBl+OCj+OBjSzjgojjgYbjgZgNCivjgYrjgYrjgZ/jgass44G+44GV44GC44GNDQor44GP44KN44GL44KPLOOBjeOCiOOBlw0KK+OBj+OBvOOBnyzjga7jgbbjgYoNCivjgZ/jgoDjgoks44Gy44KN44Gy44GTDQor44GI44Gz44Gv44KJLOOBjeOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgojjgYbjgZMNCivjgoTjgb7jga0s44KI44GX44GoDQor44GC44GV44G+LOOBvuOBleOBsuOCjQ0KK+OBv+OBhuOCiSzjgoTjgZnjga7jgbYNCivjgYLjgonjgYvjgo8s44GX44KT44GYDQor44GT44GY44G+LOOCiOOBl+OBguOBjQ0KK+OBleOBi+OBnyzjgZPjgYbjgbjjgYQNCivjgZPjgbDjgoTjgZcs44GK44GV44G144G/DQor44GK44GM44KPLOOCiOOBl+OBig0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgb/jgaTjgYQs44GR44GE44GE44GhDQor44Gm44GX44G+LOOBi+OBmuOBvuOBlQ0KK+OBguOBnSzjgbLjgo3jgYTjgaENCivjgoLjgorjgoQs44Gy44Go44GXDQor44KE44GqLOOBi+OBmuOBig0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgaHjgY0s44Gy44KN44GXDQor44GK44GK44GfLOOBsuOCjeOBlw0KK+OBu+OCiuOBhuOBoSzjgZHjgYTjgYTjgaENCivjgZ/jgavjgZDjgaEs44KI44GX44GKDQor44Gr44GX44GuLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBteOCi+OBr+OBlyzjgZPjgYbjgZ7jgYYNCivjgYLjgY3jgZ8s44Go44GX44GKDQor44GK44GP44GX44G+LOOBn+OBi+OBlw0KK+OBiuOBiuOBn+OBqyzjgZ/jgaDjgbLjgo0NCivjgYvjgoHjgYrjgYss44KI44GX44GKDQor44Gv44KJ44GK44GLLOOBi+OBpOOChOOBmQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgYLjgonjgZfjgb4s44KG44GN44GKDQor44Gq44GM44GV44KPLOOCiOOBl+OCjeOBhg0KK+OChOOBvuOBiuOBiyzjgY3jgojjgZcNCivjga/jgZss44G+44GV44GL44GkDQor44GN44GX44KC44GoLOOBj+OBq+OBig0KK+OBmeOBmuOBjSzjgojjgZfjgYoNCivjgYvjgoHjgoQs44GL44Gk44G/DQor44G+44GZ44GgLOOBvuOBleOBr+OCiw0KK+OBiOOCk+OBqSzjgZHjgpPjgYTjgaENCivjgZXjgY/jgonjgYQs44Gf44GL44GC44GNDQor44G144KL44GX44KH44GGLOOBteOBmOOBig0KK+OBhuOBl+OBjSzjgYvjgZrjgb8NCivjgZPjgYTjgZEs44Gy44KN44GXDQor44Go44GG44G+LOOBleOBoeOBsuOCjQ0KK+OBquOBi+OBluOBqCzjgbLjgo3jgZcNCivjgoTjgb7jgYrjgYss44KI44GX44Gu44G2DQor44Gq44GL44GtLOOBruOBtuOBr+OCiw0KK+OBqOOBv+OBnyzjga7jgorjgYvjgZoNCivjgZXjgajjgoDjgoks44GR44GE44GYDQor44Gy44GV44G+44GkLOOBqOOCiOOBqOOBlw0KK+OBiuOBjOOCjyzjgb7jgZXjgagNCivjgZXjgYvjgYQs44Gf44GR44GXDQor44Gq44GL44GOLOOChuOBvw0KK+OBleOCj+OBkOOBoSzjgb7jgZXjgY/jgasNCivjgb7jgaTjgoLjgags44Go44GX44GKDQor44G144KL44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBteOBn+OBvyzjgY3jgojjgZcNCivjgZ/jgarjgYss44G144GP44KADQor44Gy44Gz44GuLOOBsuOCjeOBlw0KK+OBmeOBquOBr+OCiSzjgZfjgofjgYbjgZgNCivjgYTjgZHjgaAs44Gf44GL44GXDQor44GU44Go44GGLOOBruOBtuOChuOBjQ0KK+OBhOOBl+OBrizjgaTjgajjgoANCivjgY3jgoDjgoks44GX44GS44KLDQor44KE44G+44GgLOOBv+OBpOOBig0KK+OCguOCiuOCguOBqCzjgb7jgZXjgosNCivjgYrjgYvjgoLjgags44G+44Gk44GKDQor44Gq44GL44GY44G+LOOBleOBi+OBiA0KK+OBjeOBn+OCgOOCiSzjgb7jgZnjgb8NCivjgarjgYvjgYTjgZcs44Gf44GR44KG44GNDQor44KP44GVLOOBsuOBp+OBig0KK+OBk+OBl+OCgOOCiSzjgb7jgZXjgZcNCivjgbLjgarjgZ8s44GN44KH44GG44G444GEDQor44Gq44GL44KA44KJLOOBruOBtuOBig0KK+OBteOBj+OBhCzjgZ/jgaTjgbLjgZMNCivjgZ/jgYvjgaAs44GL44Ga44GKDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBq+OBl+OChOOBvizjgb7jgZXjgbLjgo0NCivjgarjgYvjgoTjgb4s44Gf44GL44KE44GZDQor44Gv44KK44GM44KELOOBsuOCjeOBguOBjQ0KK+OBvuOBmeOCguOBqCzjgojjgZfjgYoNCivjgabjgonjgavjgZcs44G+44GV44Gu44G2DQor44Gq44GM44GP44G8LOOBiuOBleOCgA0KK+OCiOOBl+OBrizjgZ/jgYvjgZcNCivjgoLjgorjgZ8s44Gu44G844KLDQor44Gm44KJ44GKLOOBv+OBpOOBsuOCjQ0KK+OCiOOBl+OCgOOCiSzjgY3jgojjgZgNCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44G+44Gk44KC44GoLOOBjeOCiOOBlw0KK+OBiuOBluOBjSzjgojjgZfjgYLjgY0NCivjgbLjgZDjgaEs44G144GY44GNDQor44G/44KE44KC44GoLOOBv+OBleOBig0KK+OChOOBvuOBkOOBoSzjgb7jgZnjgb8NCivjgoTjgb7jgoLjgags44GI44Gk44GTDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OBhCzjgYvjgZrjgb8NCivjgbXjgZjjgZ8s44Gy44KN44GXDQor44GZ44GM44KP44KJLOOBk+OBhuOBmOOCh+OBhg0KK+OBhOOBl+OBluOBjSzjgZ/jgYvjgobjgY0NCivjgZ/jgaTjgb8s44KI44GX44GC44GNDQor44Gq44GL44GX44GfLOOBvuOBk+OBqA0KK+OBiuOBmOOBvizjgbLjgo3jgYLjgY0NCivjgYLjgZXjgZfjgZ8s44G+44GV44G144G/DQor44G744KK44GELOOBv+OCiOOBlw0KK+OBhOOCiizjgZHjgpPjgYTjgaENCivjgbXjgZjjgb7jgY0s44Gf44Gg44GC44GNDQor44GL44GY44KP44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgYoNCivjgbXjgarjgoTjgb4s44GI44Gk44GKDQor44GN44Gv44KJLOOBn+OBi+OBlw0KK+OBn+OBkeOBoCzjgZHjgYTjgZMNCivjgYTjgYTjgaAs44GL44Gq44GIDQor44G144KL44GpLOOBvuOBleOBig0KK+OCguOCiizjgZfjgoXjgYbjgYTjgaENCivjgbXjgY/jgags44Gq44GK44KEDQor44GK44GK44Gv44GXLOOBguOBjeOBsuOBqA0KK+OBguOBiuOBjSzjgbLjgafjgZcNCivjgZ/jgZjjgb4s44Gy44KN44GXDQor44GK44GK44Gk44GLLOOBqOOCguOBsuOCjQ0KK+OBguOBiuOBrizjgZjjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44Gy44Go44GXDQor44GI44KT44GpLOOBvuOBleOBsuOCjQ0KK+OBsuOCjeOBmyzjgojjgZfjgYvjgaQNCivjgYjjgpPjgaks44GC44GN44GKDQor44GL44KP44GELOOBv+OBoeOCiw0KK+OBguOBhOOBluOCjyzjgbXjgajjgZcNCivjgZPjgYTjgZ/jgbDjgZcs44GN44KI44Gy44KNDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBi+OBruOBhizjgZfjgZLjgY0NCivjgYbjgYjjgoDjgoks44G+44GV44Go44GXDQor44GZ44G/44KI44GXLOOBsuOBp+OBig0KK+OBsuOCjeOBnyzjgZXjgajjgosNCivjgYTjgarjgajjgb8s44GL44Ga44KI44GXDQor44GE44Go44GGLOOBruOCiuOBi+OBpA0KK+OBj+OBvCzjgbLjgafjgYLjgY0NCivjgYvjgbbjgonjgY4s44Go44GX44Gy44KNDQor44GE44GR44GgLOOCiOOBl+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgZXjgYvjgYQs44G+44GV44Gy44KNDQor44GL44Go44GGLOOChOOBmeOBj+OBqw0KK+OBn+OBkeOBhCzjgoTjgZnjgobjgY0NCivjga/jgpPjgaAs44Go44GK44KLDQor44Gq44GM44KELOOBi+OBpOOBvw0KK+OBr+OBo+OBqOOCiizjgbLjgo3jga7jgooNCivjgZfjgb/jgZos44KI44GX44Gq44GKDQor44GE44G+44Gr44GXLOOBvuOBleOBqA0KK+OBj+OBvuOBuSzjgb7jgZXjgYoNCivjgb7jgaHjgaAs44Gk44GL44GVDQor44KE44GOLOOBoeOBr+OCiw0KK+OBiuOBoOOBvizjgobjgY3jgYoNCivjgY3jgZ/jgZjjgb4s44GY44KF44KT44GTDQor44Gf44Gh44Gw44GqLOOBn+OBj+OCjeOBhg0KK+OBteOBmOOCguOBqCzjgZfjgoXjgYbjgZgNCivjgb/jgZrjga4s44GE44GP44GKDQor44GI44GQ44GhLOOBi+OBpOOBvw0KK+OBi+OCj+OBuSzjgZXjgaTjgZMNCivjgarjgYvjgoDjgoks44Gh44GC44GNDQor44GC44GZ44G+LOOBjeOCiOOBi+OBmg0KK+OBr+OCgOOCiSzjgaTjgajjgoANCivjgYTjgajjgYYs44KG44GG44GYDQor44GE44GR44GW44GNLOOBn+OBkeOBlw0KK+OChOOBvuOBleOBjSzjga7jgorjgobjgY0NCivjgavjgZfjgZbjgo8s44Gd44GG44GYDQor44Gr44KPLOOBiOOBhOOBsuOBkw0KK+OBv+OBhuOCiSzjgbLjgZXjgZcNCivjgYvjgZ/jgYrjgYss44GC44GR44G/DQor44Gv44KE44GXLOOBvuOBjeOBkw0KK+OBv+OBleOBjSzjgZ/jgZHjgZcNCivjgYrjgaDjgY/jgoks44Gy44KN44G/44GhDQor44G144GX44G/LOOBoeOBi+OBqA0KK+OBsuOCjeOBnyzjgZ/jgYvjgZcNCivjga/jgZ/jgoQs44Go44GX44KG44GNDQor44GV44GL44GELOOChuOBhuOBmA0KK+OBhOOBoCzjgYTjgaHjgo3jgYYNCivjgZXjgajjgYYs44Gf44Gg44GXDQor44G744GX44GuLOOBruOBvOOCiw0KK+OBiuOBjOOCjyzjgarjgaTjgYLjgY0NCivjgbXjgY/jgZbjgags44KK44KF44GG44GE44GhDQor44Gf44Gq44GLLOOBm+OBhOOBmA0KK+OBleOBleOBjSzjgY3jgofjgYbjgZMNCivjgYrjgZrjgaEs44G/44Gk44GKDQor44G144KN44KC44GoLOOBv+OBruOCiw0KK+OBq+OBl+OCgOOCiSzjgZfjgpPjgoQNCivjgZ/jgZHjgaAs44Go44G/44GTDQor44Gf44GR44Go44G/LOOBk+OBhuOBhOOBoQ0KK+OBiuOBi+OBoCzjgb/jgaHjgYoNCivjgb7jgags44GL44Ga44KG44GNDQor44GZ44Ga44GNLOOBguOBjeOCiOOBlw0KK+OCgOOBi+OBhCzjgojjgYbjgYTjgaENCivjgZPjgYws44KE44GZ44GKDQor44GL44Go44GGLOOBi+OBmuOBvw0KK+OCiOOBk+OBhCzjgbXjgb/jgajjgZcNCivjgYbjgZfjgZTjgoEs44G+44GV44Gf44GLDQor44GT44G+44GkLOOCiOOBl+OBn+OBiw0KK+OBhOOBqOOBhizjgbLjgZXjgYLjgY0NCivjgZXjgajjgYYs44GX44KF44KT44GZ44GRDQor44Gy44KN44GbLOOBruOCiuOCiOOBlw0KK+OBlOOBvyzjgZjjgoXjgpMNCivjgZ/jgarjgYss44Gf44Gk44GKDQor44G+44Gk44KC44GoLOOBn+OBhOOBhOOBoQ0KK+OBr+OChOOBlyzjgZvjgYTjgZgNCivjgZ/jgYvjga/jgZcs44GL44Gk44Gy44KNDQor44GC44KJ44GELOOBqOOBl+OChuOBjQ0KK+OBu+OBlyzjgY3jgojjgZcNCivjgabjgonjgaAs44GX44GS44KLDQor44GE44Ga44GvLOOBr+OCi+OBig0KK+OBmeOBquOBoCzjgoTjgZnjgZjjgo3jgYYNCivjgYTjgZjjgb4s44G144G/44GKDQor44Gf44GL44GgLOOBqOOBl+OBr+OCiw0KK+OCj+OBi+OBvuOBpCzjgZPjgYbjgZgNCivjgaTjgaAs44Go44GX44KG44GNDQor44G744GX44GP44G+LOOBvuOBleOBr+OCiw0KK+OBu+OCk+OBoCzjgbLjgo3jgb8NCivjgYvjgb7jgaAs44GI44GE44GYDQor44Gv44KE44GXLOOBv+OBpOOBsuOCjQ0KK+OBhOOBvuOBhCzjgZ/jgaTjgosNCivjgaTjgaHjgoQs44GE44Ga44G/DQor44KP44GgLOOBhOOBj+OBqA0KK+OCiOOBl+OBoCzjgY3jgb/jgbLjgo0NCivjgaDjgaYs44GY44KF44KTDQor44Gv44GZ44GTLOOCiOOBl+OBruOCig0KK+OBn+OBkeOBquOBiyzjgbLjgo3jgYLjgY0NCivjgYrjgY/jgaAs44GL44Ga44GKDQor44G744GXLOOChuOBhuOBmeOBkQ0KK+OBi+OCgeOBoCzjgYvjgYrjgosNCivjgbLjgZfjgazjgb4s44Gy44KN44G144G/DQor44GK44GK44Gr44GXLOOBsuOCjeOBguOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgYLjgY0NCivjgbvjgZ3jgYvjgo8s44GC44GN44KJDQor44KI44GX44GW44KPLOOBsuOBp+OBig0KK+OBr+OCieOBoCzjgojjgZfjgZ/jgYsNCivjgZXjgZXjgY0s44Go44KC44KG44GNDQor44GE44GE44GgLOOBsuOBp+OBvw0KK+OBjeOBjOOCjyzjgZPjgYbjgYTjgaENCivjgYTjgZHjgYos44Gy44KN44KG44GNDQor44GC44KJ44GELOOChOOBmeOBig0KK+OBi+OBjeOBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgZTjgajjgYYs44GP44Gr44Go44GXDQor44G/44KE44GT44GXLOOChOOBmeOBiA0KK+OBteOBmOOBnyzjgYLjgaTjgb8NCivjgY/jgonjgZ8s44Gy44KN44KG44GNDQor44KC44KK44GK44GLLOOChuOBv+OBkw0KK+OChOOBvuOBhuOCiSzjgoTjgZnjgojjgZcNCivjgY/jgo3jga8s44KI44GG44GTDQor44GE44Ga44Gv44KJLOOBquOBiuOBi+OBmg0KK+OBl+OBkuOBqOOCgSzjgojjgZfjgYLjgY0NCivjgavjgZcs44KE44GZ44G144G/DQor44GC44GN44KE44G+LOOBqOOBv+OBig0KK+OBhOOBkeOBoCzjgYvjgZrjgY3jgaENCivjgoLjgoos44KE44GZ44G/DQor44Gy44KN44GL44KPLOOChuOBhuOBmA0KK+OBneOCgeOChCzjgYLjgY3jgYoNCivjgZXjgY/jgonjgYQs44GI44G/44GTDQor44G/44Ga44GuLOOBhOOBleOCgA0KK+OBpuOCieOBoCzjgajjgZfjgYvjgZoNCivjgbLjgonjgb7jgaQs44GX44GS44KLDQor44GK44GK44GfLOOBlOOCjeOBhg0KK+OBsuOCieOBvuOBpCzjgYjjgaTjgYoNCivjgavjgZfjgaAs44KG44GN44GKDQor44KA44KJ44GfLOOBsuOBp+OChuOBjQ0KK+OBv+OBmuOBk+OBlyzjgZHjgpPjgYTjgaENCivjgajjgb/jgZ8s44Gf44GL44GKDQor44GL44KP44G/LOOBm+OBhOOBhOOBoQ0KK+OBl+OBhOOBrizjgZfjgZLjgYoNCivjgarjgYvjgoDjgoks44Gu44G244GKDQor44GE44GX44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBi+OBreOBn+OBkSzjgYvjgarjgoENCivjgYrjgZfjgZIs44Gf44GE44GhDQor44GT44GY44G+LOOChuOBhuOBnuOBhg0KK+OBqOOBsCzjgb7jgZPjgagNCivjgYTjgo/jgZ8s44Gy44Gn44GC44GNDQor44GK44GuLOOBkeOCk+OBmA0KK+OBk+OBleOBiyzjgbLjgZXjgZ/jgZENCivjgYvjgpPjga4s44GC44GN44GKDQor44GE44Go44GGLOOBqOOBl+OBpOOBkA0KK+OBn+OBi+OBjizjgb/jgaHjgZMNCivjgZ/jgYvjga4s44GX44KT44GE44GhDQor44GE44Gq44GM44GNLOOBpuOBpOOBig0KK+OBruOBluOBjSzjgZjjgoXjgpMNCivjgZ/jgZHjgaAs44G144G/44GTDQor44GU44Go44GGLOOBl+OCk+OBmA0KK+OBu+OCiuOBi+OCjyzjgYvjgZrjgbLjgo0NCivjgZnjgY7jgoLjgags44KK44KH44GGDQor44GC44KJ44GELOOBm+OBhOOBmA0KK+OBteOBmOOCj+OCiSzjgbLjgafjgZnjgY4NCivjgojjgZfjgaAs44GX44KF44GG44GE44GhDQor44GK44GX44G+LOOBn+OBkeOBlw0KK+OBlOOBqOOBhizjgaDjgYTjgZjjgo3jgYYNCivjgYTjgZrjgb/jgZXjgo8s44KI44GX44Go44KCDQor44GE44KP44G244GhLOOBvuOBleOBpOOBkA0KK+OBhOOBvuOBjeOBnyzjgZfjgofjgYbjgZgNCivjgoDjgonjgZ8s44GX44KH44GG44GTDQor44GX44KC44GuLOOBi+OBmuOBsuOCjQ0KK+OBlOOBi+OBhOOBoSzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44Gu44G844KLDQor44Gq44GM44GX44G+LOOBmOOCjeOBhg0KK+OBv+OBl+OBvizjgojjgZfjgbLjgo0NCivjgoTjgZnjgarjgYws44GL44Gk44G/DQor44GK44G144GhLOOBmOOCjeOBhg0KK+OBk+OCgOOBi+OBhCzjgY3jgojjgb8NCivjgarjgYzjgZXjgo8s44Gf44GE44Gb44GEDQor44GN44Gf44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBr+OCiSzjgYvjgZrjgoQNCivjgbXjgYvjgaAs44Gu44KK44G144G/DQor44GN44Gf44GM44KPLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOCguOCiizjgozjgYTjgZMNCivjga/jgbbjgaEs44Gy44Gn44GL44GaDQor44G/44KE44GW44GNLOOBsuOCjeOCgA0KK+OBl+OCjeOBnyzjgb7jgZXjgobjgY0NCivjgZPjgb/jgoQs44GT44GG44GYDQor44Gm44KJ44GKLOOBmOOCjeOBhg0KK+OBq+OBl+OBkOOBoSzjgajjgZfjgYLjgY0NCivjgYvjga3jgZrjgYss44Gy44KN44GC44GNDQor44GZ44GO44KE44G+LOOBpuOBpOOBmA0KK+OBn+OBoeOBsOOBquOBjSzjga/jgovjgYLjgY0NCivjgoLjgorjgYrjgYss44G+44GV44GL44GaDQor44KI44Gu44KC44GoLOOBsuOBp+OBjQ0KK+OBj+OBmeOBoCzjgYvjgZrjgYTjgaENCivjgYLjgorjgoTjgZks44GI44Gk44GKDQor44Gk44GY44KC44GoLOOBsuOBleOBqA0KK+OBteOBi+OBvyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgY3jgoTjgb4s44GN44KI44GXDQor44KC44Gh44Ga44GNLOOCiOOBl+OBn+OBiw0KK+OBruOCgOOCiSzjgZfjgoXjgpPjgZgNCivjgo/jgaAs44GN44KI44GXDQor44GK44GhLOOBsuOCjeOBlw0KK+OCgOOCieOBvuOBpCzjgaHjgYjjgZMNCivjgoTjga4s44GK44GV44KADQor44KC44Gh44Ga44GNLOOBjeOCiOOBlw0KK+OBsuOCieOBnyzjgarjgYrjgY0NCivjgo/jgYvjgb7jgaQs44Go44GX44GV44GgDQor44GV44GL44KC44KKLOOBi+OCiOOBkw0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgbLjgZMNCivjgYTjgb7jgoDjgoks44KI44GX44Gy44KNDQor44GK44GK44GZ44GMLOOBi+OBiOOBpw0KK+OBn+OBi+OChOOBvizjgZ/jgYvjgajjgokNCivjgY3jgZ/jgb8s44Gy44KN44Gy44GnDQor44G+44GI44GgLOOBn+OBiOOBkw0KK+OBqOOCguOBrizjgZHjgpPjgYTjgaENCivjgYvjgbbjgonjgY4s44G+44GV44KG44GNDQor44Gt44GO44GXLOOBkeOBhOOBnuOBhg0KK+OCj+OBoCzjgobjgb/jgZMNCivjgZnjgZrjgY0s44KE44GZ44KG44GNDQor44GV44Gq44GILOOBi+OBmuOBvuOBlQ0KK+OBrizjgZ/jgaTjgoQNCivjgYTjgZfjgbDjgZcs44Gy44KN44KG44GNDQor44KE44G+44GX44GfLOOBpOOBreOBig0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgo0NCivjgb/jgoTjgo/jgY0s44Go44GX44Gy44GTDQor44G+44Gk44GG44KJLOOCiOOBl+OBguOBjQ0KK+OBjeOBn+OChOOBvizjgojjgZfjgbLjgo0NCivjgoTjgb7jgZDjgaEs44GY44KF44KT44GYDQor44Gr44GX44KE44G+LOOBi+OBpOOBmA0KK+OBi+OCj+OBsOOBnyzjgb7jgZXjgbLjgZMNCivjgb/jgYvjgb8s44GY44KF44KTDQor44GZ44GO44KE44G+LOOBhOOBleOBig0KK+OBjeOBmOOBvizjga7jgorjgYoNCivjgbLjgYzjgZcs44GX44KF44GG44GYDQor44GC44G5LOOBvuOBleOBqA0KK+OBhOOBruOBhuOBiCzjgojjgYbjgZMNCivjgbXjgYvjgaAs44GC44GN44GKDQor44KA44KJ44G+44GkLOOBmOOCheOCkw0KK+OBsuOCieOBsOOCiyzjgZ/jgZHjgYoNCivjgaHjgofjgYbjgarjgpMs44KI44GX44G+44KNDQor44GL44KP44KA44KNLOOBleOBqOOBlw0KK+OBpOOBj+OBoCzjgb/jga7jgosNCivjgb/jgoTjgoLjgags44Go44GX44Gy44KNDQor44GZ44GI44Gy44KNLOOBmOOCheOCk+OBhOOBoQ0KK+OBl+OCieOBi+OCjyzjgZPjgYbjgZgNCivjgZ/jgarjgYss44GR44GE44GXDQor44KE44GZ44GELOOCiOOBl+OBruOBtg0KK+OBjeOCgOOCiSzjgYvjgaTjgZMNCivjgarjgYvjgYzjgo8s44GL44Gk44KI44GXDQor44GP44GV44GuLOOBqOOBl+OBsuOCjQ0KK+OBguOBoOOBoSzjgojjgZfjgbLjgo0NCivjgarjgYvjgajjgoIs44KA44Gk44G/DQor44G+44GZ44KC44GoLOOBpOOBqOOCgA0KK+OCj+OBn+OBrOOBjSzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GL44Gk44GYDQor44GT44G844KKLOOBv+OBjeOBig0KK+OBiuOBjOOCjyzjgZPjgYbjgYTjgaENCivjgbXjgZjjgoLjgoos44G/44GN44GKDQor44GE44Gv44KJLOOBiOOBvw0KK+OCj+OBn+OBquOBuSzjgobjgYbjgZMNCivjgYbjgonjgbks44GE44GV44KADQor44G/44GG44KJLOOBv+OBpOOCiw0KK+OBquOBi+OBhCzjgZHjgYTjgYTjgaENCivjgo/jgonjgZfjgaos44GX44GS44KLDQor44G144GP44Gq44GMLOOCiOOBl+OBi+OBmg0KK+OBiuOBiuOBpOOBvCzjgojjgZfjgYLjgY0NCivjgojjgZfjgaAs44G/44Gu44KLDQor44Gv44KE44G/LOOBi+OBpOOBsuOBkw0KK+OBruOCgOOCiSzjgb7jgZXjgYvjgZoNCivjgbLjgonjgYQs44KI44GX44KG44GNDQor44GX44G+44GgLOOBvuOBleOBiA0KK+OBmeOBmuOBjSzjgarjgYrjgajjgZcNCivjgabjgonjgZfjgb4s44GN44G/44Gy44GTDQor44GX44Ga44Gv44KJLOOCjOOBhOOBkw0KK+OChOOBvuOBqOOChCzjgYvjgZrjgbLjgZMNCivjgYrjgY7jga4s44Gy44KN44GKDQor44G+44Gk44GQ44G+LOOBl+OBkuOBuw0KK+OBjeOBn+OBhCzjgajjgZfjgbLjgZMNCivjgYLjgYvjgaAs44GX44Ga44GKDQor44Gf44GR44KI44GXLOOBm+OBhOOBruOBmeOBkQ0KK+OBsuOCjeOBrizjgZ3jgYrjgZjjgoMNCivjgZfjgb7jgoDjgoks44Go44G+44GVDQor44KK44KF44GG44GULOOBl+OCheOCk+OBhOOBoQ0KK+OBj+OBq+OBiOOBoCzjgb7jgY3jgYoNCivjgYrjgYrjgaTjgYss44G744GT44GPDQor44GE44GR44GM44G/LOOBsuOBp+OBqOOBlw0KK+OBi+OBreOBvuOBpCzjgYvjga3jgbLjgacNCivjgYrjgYrjgYzjgo/jgoks44KI44GX44Gu44G2DQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBpuOCieOBoCzjgZvjgaTjgZMNCivjgYvjgo/jgZXjgY0s44Gm44Gk44GYDQor44GK44GX44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBi+OCj+OBi+OBvyzjgZfjgZLjgY0NCivjgarjgYvjgoDjgoks44Go44GX44GC44GNDQor44G/44Gf44GrLOOBqOOBl+OBsuOBkw0KK+OBk+OBvuOBpCzjgbLjgo3jgZ/jgYsNCivjgYLjgYvjgYTjgo8s44Go44GX44Gy44GTDQor44GE44Gh44GELOOBteOBv+OChA0KK+OBteOBj+OChOOBvizjgb7jgZXjgYLjgY0NCivjgY/jganjgYYs44KI44GX44Gm44KLDQor44G+44Gk44GX44GfLOOBl+OCk+OBmA0KK+OBq+OBl+OBi+OCjyzjgobjgY3jgbLjgo0NCivjgYLjgb7jgYzjgb8s44GX44KTDQor44KE44GX44GNLOOBguOBhOOBhOOBoeOCjeOBhg0KK+OCj+OBoCzjgYLjgaTjgZMNCivjgb7jgZnjgaAs44Go44KC44GTDQor44KI44GX44KA44KJLOOChuOBhuOBmA0KK+OBiuOBoCzjgZfjgpPjgZgNCivjgojjgZPjgoTjgb4s44Gf44GL44G144G/DQor44GE44Go44GELOOChuOCiuOBkw0KK+OBmeOBmuOBjSzjgYvjgaTjgbLjgo0NCivjgarjgYzjga/jgb4s44Gy44KN44KG44GNDQor44KE44GW44GNLOOBpuOBhOOBnuOBhg0KK+OChOOBmOOBvizjgY3jgojjgZcNCivjgoDjgYvjgYjjgaAs44GV44Go44KLDQor44Gq44GL44KA44KJLOOBn+OBpOOBguOBjQ0KK+OChOOBvuOCgOOCiSzjgZPjgYbjgYTjgaENCivjga7jgoLjgags44Go44GX44KG44GNDQor44KE44G+44GW44GNLOOBqOOBl+OBsuOBkw0KK+OBleOBqOOBhizjgajjgZfjgoQNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GK44GL44GuLOOBsuOBp+OBig0KK+OBquOBi+OBq+OBlyzjga/jgovjgbLjgZUNCivjgYbjgYjjgaAs44Gy44KN44G/DQor44GC44GE44GW44KPLOOBguOBjeOBig0KK+OBguOCieOBhCzjgajjgoLjgarjgooNCivjgarjgYzjgYTjgZcs44GL44Gk44G/DQor44Gv44GT44GELOOBvuOBleOBig0KK+OBj+OBmeOCguOBqCzjgZ/jgYvjgojjgZcNCivjgYLjgorjgajjgb8s44GY44Gk44KN44GGDQor44Gv44KJLOOBn+OBv+OBig0KK+OBu+OCk+OBvizjgb7jgZXjga/jgosNCivjga/jgZfjgoLjgags44G/44Gh44Gv44KLDQor44Gv44GX44KC44GoLOOBvuOBleOBig0KK+OBiuOBiuOBrOOBvizjgYTjgZXjgYoNCivjga/jgarjgY0s44GX44KT44GE44Gh44KN44GGDQor44Gv44GX44KC44GoLOOBguOBjeOBkw0KK+OBleOBj+OCieOBluOCjyzjgbLjgafjgajjgZcNCivjgYLjgYvjgY4s44KE44GZ44Gy44GoDQor44GC44GN44Ga44GNLOOBvuOBleOBqOOBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgY0NCivjgYLjgonjgYQs44Gf44G+44GKDQor44GC44GV44KA44KJLOOBi+OBpOOBvw0KK+OBoeOBsCzjgYLjgZMNCivjgYjjgZDjgaEs44KG44GN44Gf44GLDQor44G144Gh44GuLOOBqOOBiuOCiw0KK+OBteOBmOOBvuOCiyzjgbLjgZXjgagNCivjgbXjgZjjgZXjgo8s44Gu44KK44GKDQor44G144GL44GgLOOBteOBv+OBsuOCjQ0KK+OBteOBj+OBhCzjgbLjgo3jgZcNCivjgbXjgY/jgajjgb8s44KK44KF44GG44GV44GPDQor44GO44G+LOOBi+OBmuOCiOOBlw0KK+OBr+OBjuOCj+OCiSzjgYTjgaHjgo3jgYYNCivjga/jgoks44GN44KI44Gf44GLDQor44Gv44KL44GqLOOBn+OBi+OBguOBjQ0KK+OBr+OBpOOBvyzjgYLjgZrjgZUNCivjga/jgoTjgZss44GX44KT44GUDQor44Gv44KE44GkLOOBsuOCjeOBlw0KK+OBsuOCieOBiuOBiyzjgb7jgobjgb8NCivjgbLjgo3jgZcs44Gu44G244GTDQor44G744GX44GTLOOBvuOBleOBsuOCjQ0KK+OBhOOBoeOBi+OCjyzjgb7jgZXjgosNCivjgYTjgYzjgo8s44GN44KI44GXDQor44GE44GE44Ga44GLLOOBguOCiuOBlQ0KK+OBv+OBpOOCguOBqCzjgbLjgo3jgZ/jgYsNCivjgYTjgb7jgoDjgoks44Gy44KN44KG44GNDQor44GE44Gq44G/LOOBsuOCjeOBv+OBoQ0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgZcNCivjgYTjgZss44KG44GN44GKDQor44GZ44GO44Gv44KJLOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OCguOBqCzjgZHjgpPjgZgNCivjgYTjgZfjgZrjgYss44Go44GK44KLDQor44GE44Go44GGLOOCiOOBhuOBmA0KK+OBi+OBv+OBi+OCjyzjgZ/jgaDjgb/jgaQNCivjgYTjgo/jgZXjgY0s44GR44GE44GTDQor44GE44Ga44G/LOOBv+OCjw0KK+OBi+OBvuOBoCzjgZ/jgYvjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44G/44GNDQor44Gu44KA44KJLOOBiOOBv+OBkw0KK+OBi+OBn+OBrizjgabjgovjgbLjgZUNCivjgYvjgajjgYYs44Gf44GL44GXDQor44GL44KP44GgLOOBsuOCjeOChuOBjQ0KK+OBhOOBl+OBhCzjgoTjgZnjgY0NCivjgYvjgo/jgZfjgb4s44GI44GE44GTDQor44GN44GP44GL44KPLOOChuOBi+OCig0KK+OBjeOBlyzjgZ/jgY/jgZcNCivjgZPjgbDjgoTjgZcs44Gm44Gk44KEDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOBkw0KK+OBk+OChOOBvizjgYLjgY3jgokNCivjgZPjgY/jgbws44KI44GG44GTDQor44GT44KT44GpLOOBv+OBiA0KK+OBk+OBl+OBiizjgb7jgZXjgajjgZcNCivjgY/jgbws44Gk44Go44KADQor44G744GX44GuLOOBqOOBl+OChA0KK+OBj+OBleOBi+OCjyzjgZHjgYTjgYTjgaENCivjgY/jgZnjgb8s44KG44Gf44GLDQor44G+44GN44GuLOOBoeOBsuOCjQ0KK+OBvuOCi+OChOOBvizjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44Gh44Go44GbDQor44G+44Gk44KC44GoLOOBguOBpOOBlw0KK+OCgeOBluOCjyzjgbLjgajjgZcNCivjgb/jga0s44G+44GV44KE44GZDQor44G/44GoLOOBruOBtuOBig0KK+OBv+OChOOCguOBqCzjgZfjgZLjgosNCivjgb/jgoTjgZbjgo8s44GL44Gk44G/DQor44G/44Ga44GfLOOBkeOCk+OBmA0KK+OCguOCiizjga/jgZrjgY0NCivjgoLjgorjgoLjgags44G+44Gq44G2DQor44KC44KN44GK44GLLOOBv+OBpOOBsuOCjQ0KK+OBguOCk+OBqeOBhizjgYTjgo/jgYoNCivjgb/jgofjgYbjgYws44Gf44GL44KG44GNDQor44Gq44GM44GKLOOBguOBjeOBsuOCjQ0KK+OBquOBjOOBmyzjgZnjgZnjgoANCivjgarjgYTjgajjgYYs44GV44Gg44G/44GkDQor44Gq44GL44GY44G+LOOBqOOBiuOCiw0KK+OBquOBi+OBvuOCiyzjgajjgZfjgZMNCivjgarjgYvjgoDjgoks44KK44KF44GG44GE44GhDQor44Gq44GL44Gr44GXLOOBsuOBp+OBqA0KK+OBquOBi+OBrizjgaTjgYvjgZUNCivjgZfjgarjgaAs44GC44GN44KJDQor44Gq44KK44GfLOOBn+OBj+OBmA0KK+OBq+OBhOOChOOBvizjgbLjgo3jgZcNCivjgavjgZfjgYvjgo8s44GC44GN44KJDQor44Gr44GX44Ga44GLLOOBqOOBl+OChA0KK+OBsuOBrizjgYvjgZrjgobjgY0NCivjga/jgZvjgYzjgo8s44G/44Gk44GC44GNDQor44GK44GM44GfLOOBsuOBqOOBlw0KK+OCgOOBleOBlyzjgb/jgaTjgosNCivjgYrjgYrjgY/jgbws44Gv44KL44GXDQor44GK44GK44GV44KPLOOBsuOBp+OBjQ0KK+OBiuOBiuOBnyzjgZfjgpPjgZgNCivjgYrjgYrjgo/jgaAs44Gy44KN44Gu44KKDQor44GK44GL44GgLOOBn+OBi+OCiOOBlw0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgZcNCivjgYrjgY3jgoLjgags44G+44GV44Gy44GTDQor44GK44Gr44Gk44GLLOOBvuOBleOBguOBjQ0KK+OBiuOBleOBjSzjgZ/jgYvjgZcNCivjgZXjgYjjgY0s44KI44GX44Gy44KNDQor44GV44GL44GELOOCiuOCh+OBhuOBmA0KK+OBleOBi+OBjSzjgY3jgofjgYbjgZMNCivjgZXjgYvjgYbjgYgs44Gf44GL44KG44GNDQor44GV44GuLOOBqOOBl+OBteOBvw0KK+OBleOBqOOBhizjgoTjgZnjgZcNCivjgZXjgajjgYYs44GV44Go44GXDQor44GV44KP44GELOOBv+OBoeOBsuOCjQ0KK+OBm+OBjeOBr+OCiSzjgYLjgY3jgokNCivjgZvjgZfjgoIs44GX44KF44GG44GE44GhDQor44GX44Gw44GfLOOBpuOBpOOCjeOBhg0KK+OCgOOCieOBnyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZfjgb/jgZos44Gv44KE44Go44GXDQor44GX44KC44GK44GVLOOBn+OBkeOBlw0KK+OBl+OBruOBoCzjga/jgaTjgYgNCivjgZfjgonjgYQs44GL44Ga44Gy44GTDQor44GZ44Gp44GGLOOCguOBqOOChuOBjQ0KK+OBmeOBjuOBl+OBvizjgb7jgZXjgosNCivjgZnjgoTjgb4s44Go44KC44Gu44KKDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OBl+OCheOBj+OChCzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgZDjgaEs44Gq44GK44KG44GNDQor44G/44KE44KC44GoLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgorjgoXjgYYNCivjgZ/jgYvjga/jgZcs44KG44GN44GIDQor44Gf44GL44Gv44GXLOOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBmyzjgZfjgZLjgY0NCivjgb/jgYvjgb8s44GR44GE44GZ44GRDQor44Gf44GR44KE44G+LOOBqOOBl+OBguOBjQ0KK+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44Gy44KN44GTDQor44Gf44Gq44GLLOOBruOCiuOBguOBjQ0KK+OBn+OBq+OBkOOBoSzjgZjjgoXjgpPjgZMNCivjgZ/jgabjgYTjgZcs44Gq44GK44KEDQor44Gm44KL44GN44GqLOOBguOBjeOCiA0KK+OBqOOBv+OBiuOBiyzjgarjgYrjgY0NCivjgajjgojjgaAs44G+44GV44Gy44GTDQor44Gk44Gh44KELOOCiOOBl+OBsuOCjQ0KK+OBpOOBmCzjgbLjgo3jgZcNCivjgaTjga7jgYzjgYQs44KE44GZ44Gu44KKDQor44GG44Gh44GgLOOBvuOBleOBteOBvw0KK+OBhuOBoCzjgZHjgYTjgZgNCivjgYbjgYjjga/jgoks44GX44KT44GYDQor44GG44GI44GuLOOChuOBhuOBmA0KK+OBhuOCgeOBr+OCiSzjgb7jgZPjgagNCivjgYbjgZnjgYQs44GT44GG44G444GEDQor44KP44GgLOOCiOOBl+OBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZXjgajjgZcNCivjgoTjga/jgY4s44Gq44GK44G144G/DQor44KE44G+44GgLOOBqOOBl+OBig0KK+OChOOBvuOBkOOBoSzjgajjgoLjgYvjgZoNCivjgoTjgb7jgoLjgags44GR44KT44GY44KN44GGDQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OChOOBvuOBl+OBnyzjgorjgpPjgZjjgoUNCivjgoTjgb7jgZbjgY0s44Gy44Go44GXDQor44KE44GZ44GgLOOBvuOBleOBvw0KK+OCiOOBqeOBjOOCjyzjga7jgorjgYoNCivjgojjgo3jgZrjgoQs44Gq44GK44Gy44GVDQor44KI44GX44G+44GkLOOBoeOBr+OCiw0KK+OBiOOBoOOBsuOCjSzjgb/jganjgooNCivjgZPjgZjjgb4s44KE44GZ44Gy44GVDQor44GK44GM44KPLOOCgeOBkOOBvw0KK+OBn+OBi+OBmyzjgb7jgb/jgZMNCivjgbXjgY/jgZ8s44GL44Ga44G/DQor44Gf44GQ44GhLOOBsuOCjeOCgA0KK+OBguOBleOBrizjgajjgZfjgbLjgZMNCivjgbXjgZjjgYQs44GR44KT44GYDQor44G144GY44KP44KJLOOBk+OBhuOBmA0KK+OBlOOBqOOBhizjgbLjgo3jgYvjgZoNCivjga/jgoTjgZcs44Go44GX44GC44GNDQor44Gy44KJ44GELOOBsuOCjeOBn+OBiw0KK+OBhOOBoeOBhCzjgZfjgZLjgobjgY0NCivjgYTjgZHjgaAs44GE44GP44GY44KN44GGDQor44GE44GX44G+44KLLOOBv+OCjw0KK+OBhOOBqOOBhizjgabjgaTjgoQNCivjgYvjgZLjgoTjgb4s44Gk44KI44GXDQor44GL44GV44G+LOOBruOCiuOBvuOBlQ0KK+OBi+OBqOOBhizjgZPjgYbjgZ8NCivjgY3jgY/jgaEs44Go44KC44GC44GNDQor44GN44Gf44GM44KPLOOBv+OBoeOBr+OCiw0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZ/jgo3jgYYNCivjgZPjgpPjgaks44Gu44KK44GTDQor44GP44Gp44GGLOOBr+OChOOBqA0KK+OBj+OBleOBteOBiyzjgZfjga7jgbYNCivjgb7jgaTjgaDjgYTjgoks44G+44GNDQor44G/44GP44GrLOOChOOBmeOBlw0KK+OBv+OChOOBoSzjgZ/jgYvjgbXjgb8NCivjgb/jgoTjgZbjgo8s44Gy44KN44GNDQor44KC44KK44GfLOOBj+OCi+OBvw0KK+OCgOOCjeOBnuOBrizjgbLjgo3jgYLjgY0NCivjgarjgYvjgb/jgaEs44GX44KH44GGDQor44Gr44GX44KA44KJLOOBl+OCk+OChA0KK+OBiuOBjOOCjyzjgZ/jgYvjgZcNCivjgYrjgYrjgYgs44G+44GV44G/44GhDQor44GK44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBi+OChOOBvizjgb/jgaTjgojjgooNCivjgZXjgYTjgajjgYYs44Gf44GL44Gu44G2DQor44GV44GuLOOBn+OBj+OChA0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZfjgYQs44G/44GV44GTDQor44GX44KT44GN44KF44GGLOOBvuOBleOChuOBjQ0KK+OBmeOBjuOChOOBvizjgY3jgojjgZ/jgYsNCivjgZ/jgYvjgY4s44KI44GX44GKDQor44Gf44GR44GG44GhLOOBi+OBu+OCiw0KK+OBn+OBquOBiyzjga7jgbbjgZMNCivjgZ/jgovjgZXjgo8s44GC44GN44GTDQor44Go44KC44GuLOOBi+OBmuOBvw0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgajjgZcNCivjgoTjgb7jgoLjgags44Gy44Gn44GoDQor44KE44G+44GW44GNLOOBteOBv+OBrg0KK+OCiOOBreOBv+OBpCzjgb7jgZPjgagNCivjgobjgoos44Go44KC44GKDQor44G+44Gk44GQ44G+LOOBteOBv+OBkw0KK+OBguOBmOOBvizjgoTjgZnjgYLjgY0NCivjgYLjgb7jga4s44Gh44GC44GNDQor44GC44GK44GNLOOCiOOBl+OBkw0KK+OBguOBiuOBjSzjgarjgYrjgbLjgZUNCivjgYLjgonjgY0s44GL44Gk44GYDQor44GC44GV44GP44KJLOOBn+OBpOOBig0KK+OBguOBmuOBvizjgorjgYgNCivjgZXjgZ/jgZEs44GR44GE44GTDQor44Gg44GE44GKLOOBsuOBp+OBjQ0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgZMNCivjgbXjgZjjgYQs44Gf44Gk44Gu44KKDQor44G144GY44GK44GLLOOBpuOBpOOCjeOBhg0KK+OBteOBj+OBhCzjgZPjgYbjgZgNCivjgbXjgarjgaAs44KG44GG44GTDQor44GU44Go44GGLOOBi+OBhOOBoeOCjeOBhg0KK+OBr+OBvuOBoCzjgojjgZfjgb8NCivjgZXjgajjgYYs44Gb44GE44GUDQor44Gv44KK44G+LOOBquOBiuOBjQ0KK+OBr+OBm+OBjOOCjyzjgYLjgY3jgbLjgZMNCivjga/jgZ8s44GX44KT44GE44Gh44KN44GGDQor44Gv44Gj44Go44KKLOOChuOBjQ0KK+OBr+OChOOBvyzjgZnjgb/jgbLjgagNCivjga/jgoTjgZcs44G+44GV44Gu44KKDQor44Gy44GI44GgLOOBv+OBoeOBi+OBmg0KK+OBsuOBiuOBjSzjgajjgYbjgoHjgYQNCivjgbvjgaAs44Gy44KN44GNDQor44Gy44KN44GZ44GILOOBmOOCheOCk+OBkw0KK+OBsuOBl+OBoCzjgbLjgo3jgZcNCivjgbvjgpPjgZTjgYYs44G+44GV44GoDQor44G744KK44GILOOBguOBjeOBruOCig0KK+OBu+OBl+OBqizjgZPjgYbjgYTjgaENCivjgYTjgaHjgYvjgo8s44Gy44Go44GXDQor44GE44GM44GfLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBhOOBhOOBmuOBiyzjgb7jgZPjgagNCivjgYTjgZHjgaAs44Gf44GL44KG44GNDQor44G744Gd44GELOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBrizjgZjjgoXjgpMNCivjgYTjga7jgYbjgYgs44G144G/44Gu44KKDQor44GK44GK44KC44KKLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBl+OBhCzjgZHjgYTjgZjjgo3jgYYNCivjgYTjgZfjgYQs44KE44GZ44GXDQor44GE44GX44Gk44GLLOOBqOOBl+OChuOBjQ0KK+OBhOOBneOBjOOBhCzjgobjgYbjgZMNCivjgYTjgajjgYYs44GV44Go44GXDQor44GE44KP44Gv44GXLOOChuOBhuOBkw0KK+OBhOOCj+OBleOBjSzjgbLjgo3jgobjgY0NCivjgYvjgYzjgbYs44GX44KT44GY44KN44GGDQor44GL44G+44G744KKLOOBqOOCguOBsuOBkw0KK+OBi+OBv+OChCzjga7jgbbjgobjgY0NCivjgYvjgarjgYQs44Gu44KK44GTDQor44GL44KT44GgLOOBoeOBiA0KK+OBi+OBruOBhizjgZ/jgZHjgZcNCivjgZ/jgb7jgZ/jgass44GX44G+DQor44GL44Go44GGLOOBsuOCjeOBjQ0KK+OBi+OBqOOBhizjgZjjgoXjgpPjgZMNCivjgYvjgo/jgZDjgaEs44GT44GG44GYDQor44GL44KP44KA44KJLOOBl+OCheOBhuOBmA0KK+OBi+OCj+OBl+OBvizjga7jgbbjgZMNCivjgY3jgY/jgaEs44GE44Gh44KN44GGDQor44GN44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBjeOBlyzjgarjgYrjgY0NCivjgY3jgZ/jgYzjgo8s44Gq44GK44G/DQor44GN44KI44Gv44KJLOOBpOOBqOOCgA0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZPjgaDjgb4s44KE44GZ44Gy44KNDQor44GT44GE44KPLOOBqOOCguOChuOBjQ0KK+OBk+OBmOOBvizjgZXjgajjgZcNCivjgZPjgpPjgaks44GR44KT44GE44GhDQor44GP44G8LOOBquOBiuOBjQ0KK+OBj+OBvuOBj+OCiSzjgZHjgpPjgYTjgaENCivjgbLjgonjgYQs44GT44GG44GYDQor44GP44KN44GgLOOBguOBpOOBlw0KK+OBj+OCjeOBleOCjyzjgYjjgYTjgZjjgo3jgYYNCivjgb7jgYjjgaAs44GV44Go44GXDQor44GX44G244Gf44GrLOOBk+OBhuOBmA0KK+OBvuOBmeOBoCzjgobjgYbjgZMNCivjga/jgoks44GR44KT44GYDQor44G+44Gk44GELOOBl+OCk+OBmA0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZcNCivjgb7jgaTjgarjgb8s44KI44GX44GTDQor44G+44Gk44GK44GLLOOBl+OCk+OBlA0KK+OBvuOBpOOChOOBvizjgYLjgY3jgokNCivjgb/jgYvjgb8s44Gy44Gn44GKDQor44G/44Gq44G/LOOBguOBjeOCiQ0KK+OBv+OBn+OCgOOCiSzjgb7jgZXjgajjgZcNCivjgb/jgaTjgb4s44GL44Ga44Gy44GoDQor44G/44KE44GX44GfLOOBsuOCjeOChuOBjQ0KK+OBr+OBl+OBkOOBoSzjgZfjgZLjgY0NCivjgb/jgZrjga4s44Go44GX44KG44GNDQor44KC44KKLOOBvuOBleOBlw0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoLjgorjgoQs44KA44Gk44GKDQor44KA44Gt44GL44GfLOOBi+OBmuOCiOOBlw0KK+OCgOOCieOBnyzjgobjgY3jgoLjgagNCivjgb/jgofjgYbjgZjjgpMs44G/44Gh44GKDQor44Gq44GM44GX44G+LOOCiOOBl+OBi+OBmg0KK+OBquOBhOOBqOOBhizjgb7jgZXjgY0NCivjgarjgYvjgZjjgb4s44Gm44KL44G/DQor44Gq44GL44KC44GoLOOBsuOCjeOBi+OBmg0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZgNCivjgarjgYvjgoDjgoks44GR44KT44GfDQor44Gq44GL44KELOOCj+OBn+OCiw0KK+OBquOCkyzjgZHjgYTjgZnjgZENCivjgarjgajjgoos44GR44KT44KEDQor44Gr44GE44GW44KPLOOCiOOBl+OBruOCig0KK+OBq+OBl+OBoCzjgoTjgZnjgYoNCivjgavjgZfjgaos44GN44KI44GXDQor44Gr44GX44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OBruOBjOOCjyzjgbLjgo3jgoQNCivjga7jgoDjgoks44G+44GV44Gy44KNDQor44GK44GM44GV44KP44KJLOOBi+OBmuOBpuOCiw0KK+OBiuOBjOOCjyzjgoTjgZnjga7jgooNCivjgYrjga/jgZcs44GV44Go44GXDQor44GK44GK44GuLOOBsuOCjeOChOOBmQ0KK+OBiuOBl+OBvizjgaTjgajjgoANCivjgYrjgYrjgZ/jgY0s44G144Go44GXDQor44GK44GK44Gk44GLLOOBiOOBhOOBjQ0KK+OBiuOBiuOChCzjgoDjga3jgYoNCivjgYrjgYvjgaAs44Gy44KN44KG44GNDQor44GK44GL44GW44GNLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBiuOBvyzjgYLjgoTjgZMNCivjgYrjga7jgafjgoks44G+44GV44Gy44GTDQor44GK44GuLOOBn+OBi+OBguOBjQ0KK+OBiuOBluOBjSzjgojjgZfjgb7jgZUNCivjgZXjgYTjgaAs44KC44KC44GTDQor44GV44GL44GQ44GhLOOBk+OBhuOBmA0KK+OBleOBi+OBhCzjgarjgYrjgY0NCivjgZXjgZMs44GC44GL44GXDQor44GV44KT44G5LOOBvuOBk+OBqA0KK+OBleOBleOBjSzjgobjgZ/jgYsNCivjgZXjgZ/jgZEs44Go44GX44GNDQor44GV44Go44GGLOOChuOBjeOBn+OBiw0KK+OBsuOCieOBrizjgbLjgo3jgYLjgY0NCivjgZXjgo/jgoDjgoks44Gy44KN44GXDQor44Gb44GN44GtLOOBi+OBmuOBguOBjQ0KK+OBl+OBsOOBr+OCiSzjgYvjgZrjga4NCivjgZfjgbDjgZbjgY0s44G+44GV44GTDQor44GX44G+LOOBk+OBmeOBkQ0KK+OBl+OBv+OBmizjgZHjgYTjgZnjgZENCivjgZfjgoLjgYvjgo/jgbks44GC44GN44Gy44KNDQor44GX44Gu44GW44GNLOOBsuOCjeOBlw0KK+OBl+OCieOBr+OBvizjgb/jgaHjgbLjgZUNCivjgZfjgofjgYbjgarjgZQs44Gf44GL44GX44GSDQor44GZ44GgLOOCgeOBhOOBmOOCjeOBhg0KK+OBmeOBjuOCguOBqCzjgb/jgYsNCivjgZnjgY7jgZ8s44Gf44GL44KG44GNDQor44GZ44G/44GgLOOBguOBpOOBlw0KK+OBmeOBmuOBjSzjgb7jgZXjgbXjgb8NCivjgZnjgZrjgY0s44GX44GS44KLDQor44GZ44Ga44GuLOOBi+OBpOOBteOBvw0KK+OBn+OBkOOBoSzjgb/jgobjgY0NCivjgZ/jgYvjgY4s44Go44GX44GL44GaDQor44Gf44GL44Gv44GXLOOBsuOCjeOBv+OBoQ0KK+OBn+OBi+OBr+OBlyzjgbLjgafjga7jgooNCivjgZ/jgYvjga/jgZcs44GR44KT44GE44GhDQor44Gf44GL44GuLOOBv+OBjeOBkw0KK+OBn+OBi+OBl+OBvizjgZ/jgaDjgZcNCivjgZ/jgZHjgaAs44GE44Ga44G/DQor44Gf44GR44Gq44GLLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOChOOBmSzjgozjgYTjgZgNCivjgZ/jgoDjgoks44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgZ/jgYvjgojjgZcNCivjgZ/jgarjgYss44Go44GK44KLDQor44Gf44Gr44GQ44GhLOOBi+OBpOOBsuOBkw0KK+OBpuOCieOBvuOBiCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgajjgY3jgo8s44Gh44GI44GTDQor44Go44KK44GU44GILOOBleOBoOOChuOBjQ0KK+OBpOOBoeOBn+OBqyzjgbLjgafjgY0NCivjgaTjgZjjgoDjgoks44Gf44GL44GXDQor44Gk44GL44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBpOOBpOOBvyzjgb7jgZXjga7jgooNCivjgYbjgaHjga4s44GV44Go44GXDQor44Gt44GaLOOBqOOBl+OBguOBjQ0KK+OBhuOBiOOBpOOBvCzjgojjgZfjgZ/jgYsNCivjgYbjgYrjgZrjgb8s44GV44KT44G644GEDQor44KP44GgLOOBv+OBpOOBruOCig0KK+OCj+OBn+OBquOBuSzjgojjgZfjgY0NCivjgoTjgbYs44GT44GG44GYDQor44KE44G+44GgLOOChuOBhuOBkw0KK+OBsuOBleOBrizjgorjgYsNCivjgoTjgb7jgZDjgaEs44Gu44KK44KG44GNDQor44KE44G+44GL44KPLOOChuOBjeOBkw0KK+OChOOBvuOCguOBqCzjgarjgYrjgagNCivjgoTjgb7jgoLjgags44GX44KT44GE44GhDQor44KE44G+44GG44GhLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OChOOBvuOBluOBjSzjgZ/jgYvjgYoNCivjga/jgY7jgo/jgoks44G/44GN44GKDQor44KI44Gt44GW44KPLOOBiOOCig0KK+OCiOOBl+OBoCzjgZXjgaHjgZMNCivjgojjgZfjgb7jgaQs44GR44KT44Gf44KN44GGDQor44Ga44GXLOOChuOBjeOBig0KK+OBhOOCj+OBi+OCjyzjgZ3jgYbjgZ/jgo3jgYYNCivjgYTjgZfjgb7jgaQs44Gy44KN44KE44GZDQor44GC44G5LOOBiOOBhOOBhOOBoQ0KK+OBguOBi+OBhOOBlyzjgYjjgYTjgaENCivjgYLjgb7jgYzjgZ8s44Gf44GL44GXDQor44GC44KT44GW44GELOOBvuOBleOBsuOBpw0KK+OBguOCieOBjSzjgajjgZfjgb/jgaQNCivjgYLjgZfjgaAs44GV44Go44GXDQor44Gh44KH44GGLOOBiOOBhOOBmA0KK+OBqeOBhCzjgZHjgpPjgYTjgaENCivjgYjjga7jgoLjgags44GN44KI44G/DQor44G144GY44GELOOBleOBpOOBjQ0KK+OBteOBmOOBnyzjgZ/jgYvjgZcNCivjgbXjgY/jgoDjgo0s44Gf44GL44GXDQor44G144Gq44GNLOOBquOBiuOBjQ0KK+OBteOCi+OChCzjgajjgoLjgoQNCivjgYTjgo/jgZXjgY0s44GV44GI44GTDQor44GE44Go44GGLOOBl+OCjeOBhg0KK+OBr+OBoCzjgbLjgafjgYLjgY0NCivjga/jgarjgaks44G/44Gu44KLDQor44Gv44KJ44GgLOOBn+OBkeOBlw0KK+OBr+OCieOBnuOBrizjga7jgbbjgbLjgo0NCivjga/jgZfjgoLjgags44GV44Go44GXDQor44Gv44Gj44Go44KKLOOBvuOBk+OBqA0KK+OBr+OChOOBlyzjgZ/jgYvjgojjgZcNCivjgbLjgYzjgZcs44GL44Ga44GKDQor44Gy44KJ44GuLOOBsuOCjeOBkw0KK+OBsuOCiuOBjSzjgZHjgpPjgYTjgaHjgo0NCivjgbvjgpPjgaAs44GV44Gq44GIDQor44G744GX44KE44G+LOOBv+OBjuOBteOBvw0KK+OBhOOBoeOBr+OCiSzjgZ/jgYvjgZcNCivjgYTjgYzjgonjgZcs44GL44Gk44Gu44G2DQor44GE44GR44GgLOOCiuOCh+OBhg0KK+OBhOOBvuOCgOOCiSzjgYrjgZXjgoANCivjgYTjgarjgoDjgoks44Go44KC44Gu44KKDQor44GE44Gu44GG44GILOOChOOBmeOBsuOCjQ0KK+OBhOOBleOBiyzjgZfjgZLjgosNCivjgYTjgZfjgaAs44GR44GE44GE44GhDQor44GE44GX44GELOOBruOBvOOCiw0KK+OBhOOBl+OBmuOBiyzjgobjgY3jgYoNCivjgYTjgajjgYYs44GX44KH44GG44GTDQor44GE44Go44GGLOOBvuOBleOBvw0KK+OBhOOBqOOBhizjgYjjgYTjgZgNCivjgYTjgo/jgarjgYws44Gq44GK44GTDQor44GY44KT44GwLOOBpOOBreOBruOCig0KK+OBi+OBmOOCguOBqCzjgZ/jgY/jgoQNCivjgYvjgZMs44Go44GX44Gy44GTDQor44GL44KTLOOBn+OBj+OChA0KK+OBi+OBruOBhizjgb7jgobjgb8NCivjgYvjgZnjgoQs44G+44GV44Gq44KKDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OCj+OBuSzjgojjgZfjgobjgY0NCivjgYvjgo/jgYvjgb8s44GR44KT44GE44GhDQor44GL44KP44GuLOOBvuOBleOBsuOBkw0KK+OBi+OCj+OBl+OBvizjgoTjgZnjga7jgbYNCivjgY3jgY/jgaEs44G+44KC44KLDQor44GN44KA44KJLOOBguOBpOOBlw0KK+OBjeOBrizjgYLjgY0NCivjgY3jgZ/jgYzjgo8s44GK44GV44KADQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOCjQ0KK+OBhOOBqOOBhizjgZfjgpPjgZgNCivjgZPjgY/jgZfjgofjgYYs44G+44GV44KLDQor44GT44KT44GpLOOBvuOBleOChuOBjQ0KK+OBk+OChOOBvizjgbLjgo3jgZ/jgYsNCivjgY/jgozjgb7jgaQs44Gf44GL44Gy44GnDQor44GP44KK44KF44GGLOOCiOOBl+OBiA0KK+OBvuOBoeOBnyzjgb7jgZXjgY0NCivjgb7jgovjgYTjgaEs44G+44GV44KG44GNDQor44G+44GZ44GgLOOChuOBjeOBkw0KK+OBvuOBpOOBhCzjgbLjgafjgZcNCivjgb7jgaTjgoLjgags44KI44GX44GNDQor44Gq44GL44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBiuOBiyzjgZ/jgZHjgZcNCivjgb7jgaTjgoTjgb4s44GT44GG44Gf44KN44GGDQor44G/44GX44G+LOOBi+OBmuOBvw0KK+OBv+OBpOOCguOBqCzjgY3jgojjgb8NCivjgb/jgoTjgoLjgags44Go44GX44GC44GNDQor44GG44Gh44KE44G+LOOBv+OBjeOBkw0KK+OBv+OBmuOBrizjgb7jgZXjgojjgZcNCivjgoLjgY4s44KC44KG44KLDQor44KC44KKLOOBvuOBleOBsuOCjQ0KK+OCguOCiuOBnyzjgYvjgZrjgbLjgZUNCivjgoLjgajjgbDjgoTjgZcs44GV44Go44KLDQor44KA44KJ44GL44G/LOOBsuOCjeOBguOBjQ0KK+OCgOOCieOBnyzjgajjgoLjga7jgooNCivjgarjgbAs44Gy44KN44KG44GNDQor44Gq44GM44GK44GRLOOBleOBqOOBlw0KK+OBquOBjOOBnyzjgZfjgofjgYbjgbjjgYQNCivjgarjgYvjgYzjgo8s44KI44GX44KG44GNDQor44Gq44GL44GY44G+LOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgoQNCivjgarjgYvjgavjgZcs44GE44Ga44KLDQor44Gq44GL44GKLOOBguOBjeOBkw0KK+OBquOBi+OChOOBvizjgbXjgb/jgYoNCivjga3jgoLjgags44G/44Gk44GC44GNDQor44Gr44GX44GgLOOCiOOBl+OChA0KK+OBq+OBl+OCgOOCiSzjgY3jgo/jgoANCivjga7jgbbjga/jgoks44GT44GG44GYDQor44Gu44Ge44GILOOBr+OBmOOCgQ0KK+OBiuOBiuOBjizjgZ/jgZHjgZcNCivjgYrjgYrjgYgs44KI44GG44GE44GhDQor44GK44GK44GP44G8LOOBsuOCjeOBteOBvw0KK+OBiuOBiuOCguOCiizjgarjgYrjgY0NCivjgYrjga4s44GC44GN44KJDQor44GK44GK44GfLOOBguOBleOBkw0KK+OBiuOBiuOBn+OBqyzjgoTjgZnjgbLjgo0NCivjgYrjgYss44G144G/44GTDQor44GK44GL44G+44GkLOOBn+OBi+OBsuOCjQ0KK+OBiuOBi+OCguOBqCzjga7jgorjgYoNCivjgYrjgYrjga4s44Gq44GK44GNDQor44Go44GP44G/44KELOOBpuOBpOOChA0KK+OBleOBhOOBqOOBhizjgobjgZ/jgYsNCivjgZXjgYvjgY3jgbDjgoks44Gf44GL44GKDQor44G/44Gf44GrLOOBkeOCk+OBhOOBoQ0KK+OBleOBrizjgZfjgoXjgYbjgZ7jgYYNCivjgZXjgZXjgY0s44Gb44GE44GYDQor44GV44Go44GGLOOBn+OBi+OBi+OBmg0KK+OBleOBqOOBhizjga7jgbzjgosNCivjgZXjgajjgYYs44Go44KC44GNDQor44GV44KE44GuLOOBhOOBj+OChA0KK+OBm+OCk+OBqizjgajjgZfjgb/jgaQNCivjgZfjgbbjgZ/jgass44GN44KH44GG44GTDQor44GX44G+44KA44KJLOOCiOOBl+OBv+OBpA0KK+OBl+OBquOBoCzjgYvjgaTjgb8NCivjgZfjgonjga/jgb4s44Gf44KN44GGDQor44GX44KF44Go44GGLOOChuOBv+OBkw0KK+OBmeOBoCzjgarjgYrjgbLjgo0NCivjgZnjgY7jgoTjgb4s44Gy44Gn44G+44GVDQor44GZ44G/44GK44GLLOOBqOOCguOChA0KK+OBmeOBmuOBjSzjgbLjgafjgbLjgo0NCivjgZ/jgbDjgZMs44GP44G/44GTDQor44Gf44GM44KPLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgoQNCivjgo/jgZ/jgarjgbks44G+44GNDQor44Gf44GL44GP44KJLOOBkeOCk+OBmeOBkQ0KK+OBn+OBi+OBiuOBiyzjgZTjgYYNCivjgZ/jgZHjga/jgaos44G+44GV44GL44GkDQor44Gf44GR44GG44GhLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgarjgYss44Gb44GE44GYDQor44Gf44Gq44GLLOOBruOCiuOBsuOCjQ0KK+OBn+OBq+OBhCzjgobjgorjgZMNCivjgZ/jgZfjgo0s44GR44KT44GE44GhDQor44Gm44KJ44KC44GoLOOBiOOBhOOBmA0KK+OBqOOBjeOBiuOBiyzjgZ/jgYvjgZfjgZINCivjgajjgb/jgYvjgo8s44Gu44KK44GTDQor44Go44KK44GL44GELOOBquOBiuOBjQ0KK+OBpOOBoCzjgZPjgYbjgYTjgaENCivjgZXjgYvjgYQs44G/44G744GTDQor44GG44GgLOOBguOBpOOBkw0KK+OBhuOBiOOBrizjgYrjgZXjgoANCivjgYbjgoHjga/jgoks44Go44GX44GKDQor44GG44GX44GwLOOBv+OBruOCiw0KK+OCj+OBi+OBiizjgZHjgYTjgZgNCivjgo/jgZ/jgbks44G+44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBoOOBhOOBoQ0KK+OBqOOBv+OChOOBmSzjgajjgZfjgbLjgZUNCivjgoTjgb7jgaAs44G+44GNDQor44KE44G+44GT44GXLOOBoOOBhOOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpMNCivjgoTjgb7jgZfjgZ8s44Gq44GK44GTDQor44KE44Gq44GOLOOBqOOBl+OBguOBjQ0KK+OCiOOBk+OBleOCjyzjgZ/jgY/jgoQNCivjgojjgZPjgoTjgb4s44GL44Ga44Gu44G2DQor44KI44GX44GgLOOBquOBiuOBqA0KK+OCiOOBl+OBvyzjgZ/jgYTjgY0NCivjgojjgZfjgZbjgo8s44Go44GX44GL44GkDQor44GE44G+LOOBvuOBleOBsuOCjQ0KK+OBj+OBvCzjgb7jgZXjgbLjgZMNCivjgarjgYvjga/jgoks44Gf44GP44KEDQor44GK44GQ44KJLOOBqOOBiuOCiw0KK+OBn+OBi+OBvuOBpCzjgZHjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44KA44Gt44Gy44KNDQor44GC44GE44GwLOOBleOBqOOBlw0KK+OBguOBvuOBrizjgarjgYrjgZMNCivjgYLjgorjgZ8s44Gy44Gn44GC44GNDQor44GC44Gf44GQ44GhLOOBsuOCjeOBlw0KK+OBoOOBpizjgZfjgZLjgbLjgZMNCivjgYjjgZbjgo8s44Gq44KK44Gy44GnDQor44G144GY44KC44GoLOOBv+OBjeOBig0KK+OBteOBj+OBqeOCgSzjgZ/jgYvjgZcNCivjgbXjgovjgYvjgo8s44GC44GR44G/DQor44Gv44GO44KP44KJLOOCiuOCheOBhuOBnw0KK+OBr+OBquOBnyzjgbLjgonjgY8NCivjga/jgZvjgYzjgo8s44KG44Gf44GLDQor44GL44GY44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBo+OBqOOCiizjgZ/jgYvjgobjgY0NCivjgbLjgYzjgZcs44KK44KF44GG44GZ44GRDQor44Gy44KJ44GKLOOBvuOBleOChuOBjQ0KK+OBsuOCjeOBmyzjgb/jgaTjgosNCivjgbvjgpPjgb4s44Gf44GR44GXDQor44G144GP44KN44GELOOBkeOCk+OBmA0KK+OBhOOBoeOBruOBm+OBjSzjgajjgZfjgbLjgo0NCivjgYTjgZHjgaAs44KG44Gf44GLDQor44GE44G+44KA44KJLOOBkeOCk+OBmeOBkQ0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgYoNCivjgYTjgZfjgaAs44GT44GG44GYDQor44GE44GX44GL44KPLOOBguOBjeOCiQ0KK+OBhOOCj+OBleOBjSzjgZ/jgZHjgZcNCivjgYvjgYTjgZrjgYss44Gy44KN44GTDQor44GL44G/44GM44GNLOOBruOCiuOBsuOBpw0KK+OBi+OBreOBkyzjgY/jgavjgbLjgZMNCivjgYvjgZ/jgY7jgoos44Gq44GK44KG44GNDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OCj+OBi+OBvyzjgZPjgYbjgZgNCivjgYvjgaTjgY0s44GC44GN44Go44KCDQor44GN44KA44KJLOOBleOBqOOCiw0KK+OBjeOBruOBl+OBnyzjgobjgYvjgooNCivjgY3jgZ/jgoTjgb4s44Gh44Gy44KNDQor44GC44KB44GX44GfLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgbLjgo0NCivjgZPjgYws44Gu44KK44KG44GNDQor44GT44GE44GRLOOBguOBjeOBig0KK+OBk+OCk+OBqSzjgajjgoLjga7jgooNCivjgY/jgbzjgY0s44GE44GP44GTDQor44GP44KJ44GX44GqLOOBi+OBpOOBsuOBqA0KK+OBj+OCjeOBjSzjgaTjgojjgZcNCivjgb7jgYjjgaAs44KE44GZ44Gy44KNDQor44G+44GV44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBoCzjgarjgYrjgb8NCivjgb7jgaTjgoLjgags44GX44KF44GG44GE44GhDQor44KB44GL44GfLOOBsuOCjeOBjQ0KK+OBv+OChOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgoLjgoos44KG44GLDQor44KC44KK44GfLOOBi+OBmuOCiOOBlw0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgYLjgY0NCivjgoDjgZ8s44Gy44GV44GXDQor44Gq44GM44KE44G+LOOBpuOBpOOChA0KK+OBquOBi+OBr+OCiSzjgZ/jgYvjgZMNCivjgarjgYvjgoDjgoks44GC44GN44Gu44G2DQor44Gq44GL44KA44KJLOOBvuOCig0KK+OBquOBi+OBnyzjgZPjgYbjgYTjgaENCivjgarjgYvjgZbjgo8s44GR44GE44GZ44GRDQor44Gr44GXLOOBi+OBreOBruOBtg0KK+OBq+OBl+OChOOBvizjgb/jgarjgZMNCivjga7jgags44GY44KF44KT44GE44GhDQor44GK44GM44KPLOOCiOOBhuOBmA0KK+OBiuOBiuOBsCzjgb7jgZXjgbLjgacNCivjgYrjgoDjgoks44G+44KGDQor44GE44GR44G+44GkLOOBn+OBi+OBkw0KK+OBiuOBhOOBoCzjgbLjgajjgZcNCivjgYrjgYvjgZbjgo8s44Gy44Go44GXDQor44GK44GuLOOBquOBiuOBvw0KK+OBleOBhOOBqOOBhizjgYLjgY3jgbLjgZUNCivjgZXjgYvjgYQs44Gu44G244KE44GZDQor44GV44GP44GfLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgbLjgZMNCivjgZXjgajjgYYs44GT44GG44GYDQor44GV44KP44Gv44GXLOOBn+OBpOOChuOBjQ0KK+OBl+OBsOOBnyzjgYLjgoTjgZMNCivjgZfjgb/jgZos44GL44Gk44KG44GNDQor44GX44GK44G/LOOBl+OCk+OBmA0KK+OBl+OBn+OCiSzjgbLjgZXjgZcNCivjgZnjgY7jgZ8s44GL44Gk44Gy44GTDQor44GZ44GR44GM44KPLOOBruOBtuOCiOOBlw0KK+OBmeOBmuOBjSzjgYLjgY3jgbLjgo0NCivjgZfjgofjgYYs44GX44KH44GG44Gf44KN44GGDQor44Gf44GELOOBvuOBleOBpuOCiw0KK+OBn+OBi+OBjizjgabjgaTjgo3jgYYNCivjgZ/jgYvjga/jgZcs44Go44GX44GKDQor44Gf44GL44KE44G+LOOBsuOBp+OBpOOBkA0KK+OBn+OBkeOBl+OBnyzjgZfjgofjgYbjgZ7jgYYNCivjgZ/jgZMs44KI44GX44GNDQor44Gf44Gq44GLLOOBjeOCh+OBhuOBuOOBhA0KK+OBn+OBqyzjgYvjgZrjgarjgooNCivjgZ/jgZrjgZEs44Gb44GE44GE44GhDQor44Go44KC44Go44GXLOOBkeOCk+OBmA0KK+OBpOOBoeOCguOBqCzjgbXjgb/jgYoNCivjgaTjga7jgaAs44GX44KH44GG44GYDQor44GG44Gh44GgLOOBleOBqOOCiw0KK+OBhuOBiOOBoCzjgYLjgY3jga7jgooNCivjgYbjga7jgY0s44Gu44G244Gy44GTDQor44KP44GgLOOBsuOCjeOBn+OBpA0KK+OCj+OBl+OBmizjgZfjgofjgYYNCivjgo/jgZ/jgarjgbks44GT44GG44Gb44GEDQor44KE44G+44GgLOOBn+OBi+OBqA0KK+OChOOBvuOBkOOBoSzjgojjgYbjgZgNCivjgoTjgb7jgoLjgags44G/44Gk44Ge44GGDQor44KE44G+44GqLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OChOOBl+OCjSzjgZ/jgZHjgZcNCivjgojjgZPjgoTjgb4s44G+44GV44Gy44GTDQor44KI44GX44GgLOOBqOOCguOBvw0KK+OChuOBjSzjgZvjgaTjgZMNCivjgbLjgonjgYvjgo8s44G+44Gq44G2DQor44KC44KK44GE44GhLOOBiOOBhOOBmOOCjeOBhg0KK+OBl+OBv+OBmizjgZHjgYQNCivjgbXjgZjjgoXjgYYs44GX44KT44GE44GhDQor44Gv44GM44KPLOOBn+OBi+OBlw0KK+OBr+OBm+OBjOOCjyzjgbLjgafjgYLjgY0NCivjgbLjgonjga4s44Gf44GP44KEDQor44G744KT44GU44GGLOOBpuOCi+OBsuOBkw0KK+OBhOOBkeOBoCzjgajjgZfjgobjgY0NCivjgYTjgZfjgYvjgo8s44Gy44KN44GNDQor44GE44Go44GGLOOCiOOBl+OBvw0KK+OBi+OBquOChOOBvizjgZPjgYbjgZgNCivjgYvjgZ/jgY7jgoos44GX44KT44GZ44GRDQor44GN44KC44GoLOOBn+OBj+OChA0KK+OBjeOChOOBvizjgZvjgYTjgZgNCivjgZPjgZjjgaos44GR44KTDQor44GT44KT44GpLOOBsuOCjeOBsuOBkw0KK+OBj+OCiuOBnyzjgZXjgajjgZcNCivjgb7jgZnjgaAs44Gg44GE44GhDQor44G/44GL44G/LOOBv+OBpOOBig0KK+OBv+OCjyzjgZ/jgYvjga7jgbYNCivjgoLjgaHjgZrjgY0s44Gu44G244KG44GNDQor44KC44KK44KE44G+LOOBqOOBl+OBig0KK+OBquOBjOOBteOBmCzjgY3jgb/jgbLjgagNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44GTDQor44Gq44GL44KA44KJLOOBsuOBleOBqA0KK+OBquOBmeOBrizjgarjgYrjgY0NCivjga7jgaAs44KG44GG44GTDQor44GK44GM44KPLOOCiuOCh+OBhuOBkw0KK+OBiuOBiuOBi+OCjyzjgZjjgoXjgpPjgZMNCivjgYrjgYrjgZ/jgass44GR44KTDQor44GK44GP44KA44KJLOOBvuOBquOBvw0KK+OBhOOBjizjgYLjgY3jga7jgooNCivjgZXjgarjgaAs44KI44GX44Gy44KNDQor44GV44Go44GGLOOBsuOBp+OBsuOBlQ0KK+OBm+OBjSzjgojjgYbjgYTjgaENCivjgZfjgbDjgZ8s44KG44GN44Gu44KKDQor44GX44G+44GL44KPLOOBl+OBkuOCiw0KK+OBl+OBiuOBmOOCiizjgbLjgo3jgZcNCivjgZnjgaAs44Go44KC44Gv44KLDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBn+OBi+OBoCzjgZ/jgYvjga7jgooNCivjgZ/jgYvjga/jgZcs44GN44KH44GG44GTDQor44Gf44GL44GZLOOBpOOCiOOBlw0KK+OBn+OBq+OBkOOBoSzjgarjgYrjgY0NCivjgaTjga3jgYvjgo8s44Gy44KN44G144G/DQor44GG44GI44Gv44KJLOOBsuOBp+OBguOBjQ0KK+OChOOBjuOCguOBqCzjgbLjgo3jgZcNCivjgoTjgb7jgZDjgaEs44Go44KC44GTDQor44KE44G+44GX44GfLOOBi+OBmuOBjQ0KK+OChOOBluOBjSzjgarjgYrjgY0NCivjgojjgZfjgaAs44Gv44KL44Gy44GTDQor44GC44GE44GL44KPLOOBsuOCjeOBteOBvw0KK+OBoeOBi+OBr+OCiSzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44Gf44GL44GIDQor44Gu44GW44GNLOOBpuOCi+OBguOBjQ0KK+OBguOBi+OBq+OBlyzjgarjgYrjgbLjgo0NCivjgZfjgb7jgoLjgags44GC44Go44KADQor44GC44Gq44GW44KPLOOBv+OBruOCiw0KK+OBhOOBhuOBoSzjgb7jgZPjgagNCivjgYTjgZfjgYvjgo8s44GT44GG44GE44GhDQor44GE44Gh44GL44KPLOOBneOCiA0KK+OBhOOBvuOBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgYbjgaHjgoTjgb4s44KI44GX44Gf44GLDQor44GK44GG44GV44GLLOOBvuOBleOBn+OBiw0KK+OBiuOBiuOBn+OBqyzjgbLjgafjgY0NCivjgYrjgYrjgbDjgoTjgZcs44GX44KT44GYDQor44GK44GQ44KJLOOBsuOCjeOBkw0KK+OBi+OBjeOCguOBqCzjgbLjgo3jgZcNCivjgYvjgajjgYYs44GX44GS44Gu44KKDQor44GL44G/44KE44G+LOOBsuOCjeOBi+OBmg0KK+OBi+OCj+OBmyzjgarjgYrjgY0NCivjgY3jgZ/jgZjjgb4s44GC44GN44Gy44KNDQor44GP44GV44GL44G5LOOBvuOBiOOBkw0KK+OBk+OBhOOBpyzjgbLjgafjgY0NCivjgZPjgb7jgaQs44GR44GE44GE44GhDQor44GV44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBleOBqOOBhizjgZjjgoXjgpMNCivjgZfjgoXjgYYs44G+44GV44KEDQor44GX44Gu44GgLOOBvuOBmeOBvw0KK+OBl+OBv+OBmizjgZXjgajjgZcNCivjgZnjgYzjgo/jgoks44GX44GS44G144G/DQor44GZ44G/44GL44KPLOOBi+OBpOOBguOBjQ0KK+OBn+OBi+OBmyzjgY3jgojjgZ/jgYsNCivjgZ/jgZHjgaAs44GR44GE44GE44GhDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OBn+OBsOOBnyzjgb/jgo/jgZMNCivjgaTjgaHjga/jgZcs44KA44Gt44Gy44KNDQor44Go44KA44KNLOOBquOBpOOBsuOBkw0KK+OBquOBi+OBjOOCjyzjgZ/jgYvjgZMNCivjgarjgZks44Gy44KN44GXDQor44Gr44GX44Gv44KJLOOBquOBiuOBjQ0KK+OBruOCgOOCiSzjgYvjgZrjgbLjgZMNCivjga/jgZvjgYzjgo8s44GR44KT44GE44GhDQor44Gv44KJ44GgLOOBqOOCguOBkw0KK+OBsuOBmOOCiizjgYjjgooNCivjgbXjgZjjgZ8s44Gu44G244GTDQor44G744Gd44GL44KPLOOBn+OBpOOBig0KK+OBvuOBmeOBtuOBoSzjgZ/jgYvjgZcNCivjgb7jgaTjgarjgYws44KG44GNDQor44G+44Gk44KE44G+LOOBpuOBpOOChA0KK+OBv+OBnyzjgb/jga7jgosNCivjgb/jgojjgZcs44KI44GG44GTDQor44KA44KJ44KE44G+LOOBvuOBk+OBqA0KK+OCguOCiuOBl+OBnyzjgYvjgZrjgbLjgo0NCivjgoTjgZjjgb4s44Gq44GK44GTDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjgY0NCivjgojjgZPjgoTjgb4s44KI44GG44GTDQor44KP44Gf44Gq44G5LOOCiOOBl+OBsuOBqA0KK+OBj+OCj+OBl+OBvizjgZnjgZDjgosNCivjgZXjgYvjgoLjgags44Gy44Gn44Gu44G2DQor44GE44Go44GGLOOBn+OBoOOBsuOCjQ0KK+OBhuOCgeOBquOBhCzjgZnjgZnjgoANCivjgYrjgYvjgZfjgo0s44GX44KN44GGDQor44GL44KP44GK44GLLOOBsuOBp+OBjQ0KK+OBj+OBsCzjgZ/jgYvjgZcNCivjgZPjgYbjgaAs44G+44GV44Gf44GRDQor44GV44Go44GGLOOBvuOChuOBvw0KK+OBguOBuSzjgb7jgZXjga/jgosNCivjgZ/jgYvjga/jgZcs44Gy44GV44G/DQor44Gf44Gw44GfLOOBi+OBpOOChuOBjQ0KK+OBquOBi+OBjOOCjyzjgZPjgYbjgYTjgaENCivjga/jgZfjgoLjgags44Go44GK44KLDQor44Gy44KJ44GuLOOBvuOBleOBn+OBiw0KK+OBu+OBneOBrizjgYLjgY3jgbLjgagNCivjgoDjgonjgYvjgb8s44GR44GE44GTDQor44KI44GX44KA44KJLOOBiOOCig0KK+OBguOBvuOChCzjgb7jgZXjgosNCivjgaHjgofjgYYs44Gg44GE44GZ44GRDQor44GU44GG44GgLOOBjeOCiOOBruOBtg0KK+OBr+OChOOBi+OCjyzjgbLjgo3jgY0NCivjgbXjgovjgZ8s44Gq44KL44GNDQor44GE44GE44GgLOOBn+OBi+OBsuOCjQ0KK+OBhOOBl+OCj+OBn+OCiizjgbLjgo3jgYvjgaQNCivjgYvjgbDjgoTjgb4s44G+44GV44GNDQor44GL44KT44GgLOOChOOBmeOBsuOBqA0KK+OBjeOBn+OCgOOCiSzjgojjgZfjgYoNCivjgZPjgpPjga4s44GT44GG44GE44GhDQor44G+44Gh44GgLOOBr+OCi+OBvw0KK+OBvuOBpOOBhCzjgZ/jgZHjgZcNCivjgb/jgYbjgoks44GR44GE44GUDQor44Gf44Gv44KJLOOBruOCiuOBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgaTjgbLjgZMNCivjgarjgYvjgb/jga0s44G+44KC44KLDQor44Gq44GL44GW44KPLOOBjeOCiOOBlw0KK+OBiuOBiuOBnyzjgZfjgZLjgYLjgY0NCivjgYTjgZfjgYvjgo8s44KI44GGDQor44GE44Go44GGLOOBqOOCguOChA0KK+OBleOBqOOBhizjgaTjgZDjgbLjgacNCivjgZfjgbDjgZ8s44Gq44GK44GNDQor44Gd44KB44KELOOBguOBjeOBsuOBkw0KK+OBn+OBkeOBoCzjgYLjgY3jgokNCivjgZ/jgarjgYss44GT44GG44GE44Gh44KN44GGDQor44Gf44Gr44GX44GfLOOBteOBv+OBrg0KK+OBpOOBoeOChCzjgojjgZfjgZMNCivjgo/jgZjjgb4s44KK44GTDQor44KE44G+44GgLOOBsuOCjeOBjQ0KK+OChOOBvuOBluOBjSzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44G+44GV44GNDQor44GC44KT44Gp44GGLOOChuOBjQ0KK+OBhOOBl+OCguOBqCzjgorjgofjgYbjgZnjgZENCivjgYTjgo/jgZXjgY0s44G/44Ga44G+44GVDQor44GG44KB44Gv44KJLOOBn+OBi+OBlw0KK+OBiuOBjOOBnyzjgoTjgZnjgZcNCivjgYrjgavjgZbjgo8s44GX44GS44GNDQor44GL44GYLOOBiuOBleOCgA0KK+OBi+OBreOBkyzjga7jgbbjgYvjgaQNCivjgYvjgo/jgb7jgZ8s44Gy44KN44GNDQor44GP44G8LOOBqOOCguOBruOCig0KK+OBk+OBhuOBleOBjSzjgZPjgYbjgYTjgaENCivjgZXjgYTjgbss44Gq44KL44Gy44KNDQor44GV44Gq44GgLOOBiuOBleOCgA0KK+OBl+OBl+OBqSzjgY/jgavjgYoNCivjgZnjgY7jga/jgoks44GN44KI44GX44GSDQor44Gf44GL44GK44GLLOOChuOBvw0KK+OBhOOBqOOBhizjgZjjgoXjgpPjgZgNCivjgarjgYvjgYos44GX44KT44GYDQor44Gq44GL44GuLOOBmA0KK+OBq+OBl+OBi+OBhCzjgajjgZfjgb/jgaQNCivjga3jgo3jgoEs44Gy44KN44GXDQor44Gv44G2LOOBvuOBk+OBqA0KK+OBsuOCieOBhCzjgYvjgYrjgooNCivjgbXjgZjjgo/jgoks44Go44GK44KLDQor44G744KT44G+LOOChuOBjeOBruOBtg0KK+OBvuOBpOOBluOCjyzjgaHjgYvjgokNCivjgb/jgoTjgoLjgags44KE44GZ44GYDQor44KC44KK44KELOOBu+OBvuOCjA0KK+OChOOBrizjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44G+44GE44GTDQor44KI44GgLOOBn+OBi+OBsuOCjQ0KK+OCj+OBn+OBuSzjgZ/jgYvjgZcNCivjgYLjgY3jgbAs44GR44GE44GE44GhDQor44GC44G5LOOBvuOChuOBvw0KK+OBhOOBqOOBhizjgojjgYbjgZgNCivjgYTjgZfjgoDjgoks44KG44G/44GTDQor44GE44Go44GGLOOBvuOBleOCiw0KK+OBhOOBvuOBhCzjgZ/jgZHjgZcNCivjgYbjgYjjga/jgoks44KC44Go44GTDQor44GG44KB44GkLOOBguOBjeOBsuOBkw0KK+OBhOOBvuOBq+OBlyzjgbLjgo3jgobjgY0NCivjgYrjgYrjgYTjgZcs44G+44GV44Gv44KLDQor44GK44GL44GuLOOChuOBjQ0KK+OBiuOBjOOCjyzjgajjgYrjgosNCivjgYvjgYzjgb8s44GI44KK44GLDQor44GL44Gf44KE44G+LOOBv+OBpOOBkw0KK+OBi+OBvyzjgojjgZfjgabjgosNCivjgYvjgo/jgZXjgY0s44Gy44Go44GXDQor44GL44KP44KC44GoLOOBv+OBoeOBig0KK+OBjeOBn+OCguOBqCzjgaTjgajjgoANCivjgY7jgofjgYbjgbYs44Gy44KN44GTDQor44GT44GE44GR44GgLOOBn+OBpOOCjeOBhg0KK+OBk+OBoOOBvizjgZ/jgYTjgaHjgo3jgYYNCivjgZPjgbDjgoTjgZcs44Gy44Gn44Gy44GoDQor44GV44GE44GU44GGLOOBv+OCj+OBkw0KK+OBleOBi+OBjOOBvyzjgYTjgaHjgo3jgYYNCivjgZXjgZXjgY0s44Gq44Gq44GIDQor44GV44KPLOOBkeOCk+OBlA0KK+OBl+OBv+OBmizjgobjgY3jgYoNCivjgZfjgofjgYbjgaAs44GX44GS44Gu44KKDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCiQ0KK+OBhOOBl+OBr+OBvizjgZHjgpPjgagNCivjgZ/jgYvjga/jgZcs44G+44GN44GTDQor44Gf44GR44KPLOOBl+OCk+OBmA0KK+OBn+OBr+OCiSzjgZXjgajjgZcNCivjgaTjgaTjgb8s44G+44GT44GoDQor44Gq44GE44Go44GGLOOBk+OBhuOBmA0KK+OBquOBi+OBmOOBvizjga7jgZ7jgoANCivjgarjgYvjgoDjgoks44Gd44GG44GE44Gh44KN44GGDQor44GE44GR44GgLOOBvuOBleOBn+OBiw0KK+OBq+OBlyzjgaTjga3jgYLjgY0NCivjga7jga7jgYTjgaHjgoQs44G+44GZ44GKDQor44Gv44GX44Ga44KBLOOChuOBhuOBkw0KK+OBr+OBo+OBqOOCiizjgobjgYYNCivjgYTjga7jgZDjgaEs44GL44Gk44G144G/DQor44Gy44G+44GNLOOBqOOCguOBruOCig0KK+OBteOBi+OBluOCjyzjgorjgYgNCivjgbXjgZjjgarjgYws44G144G/44GTDQor44G144KL44KELOOBvuOCiuOBkw0KK+OBu+OCiuOBi+OCjyzjgajjgoLjgbLjgo0NCivjgYTjgZDjgaEs44Gf44GL44Gy44KNDQor44G/44Gk44Gv44GXLOOBiOOBhOOBhOOBoQ0KK+OBv+OChOOBl+OBnyzjgojjgYbjgZMNCivjgoDjgonjgb7jgaQs44G+44GV44KG44GNDQor44GE44Gu44GG44GILOOBguOBjeOBruOCig0KK+OChOOBrizjgZ/jgaDjgZ/jgYsNCivjgoTjgb7jgaAs44Gf44Gk44GKDQor44KE44G+44KC44GoLOOCgOOBreOBn+OBiw0KK+OCiOOBl+OBoCzjgorjgofjgYYNCivjgo/jgZ/jgarjgbks44Gy44Gn44KG44GNDQor44KP44Gf44Gq44G5LOOBqOOBl+OBiA0KK+OBk+OBhuOBoCzjgZXjgajjgosNCivjgYrjgYzjgo8s44Gy44KN44GC44GNDQor44GC44GN44KC44GoLOOBmeOBmeOCgA0KK+OBguOBleOBrizjgajjgoLjgbLjgZMNCivjgYLjgbks44G+44GV44GK44G/DQor44GE44Gk44GuLOOBv+OBjeOBig0KK+OBhOOBoeOBruOBmyzjgZPjgZrjgYgNCivjgYTjgorjgZ8s44KE44GZ44GC44GNDQor44GE44GX44GK44GLLOOBl+OCk+OBhOOBoQ0KK+OBhOOBoeOBjSzjgb7jgZXjgagNCivjgYTjga/jgoks44GN44KI44Gf44GLDQor44GE44G+44GaLOOBpOOCiOOBlw0KK+OBhOOCj+OBmeOBjizjgb/jgYsNCivjgYbjgZnjgYQs44G+44GV44Gy44KNDQor44GI44Go44GGLOOBkeOCk+OBmA0KK+OBiuOBhizjgojjgZfjgbLjgo0NCivjgYTjgo/jgY3jgoos44KP44Gf44KLDQor44GK44GK44Gk44GNLOOBmOOCheOCkw0KK+OBiuOCgOOCiSzjgY/jgb8NCivjgYrjgYvjgZbjgY0s44Go44KC44G/44GhDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBjeOBn+OCgOOCiSzjgb7jgorjgZMNCivjgYrjgYrjgoTjgb4s44Gh44Ga44KLDQor44GL44GV44GW44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OBpOOBrizjgZ/jgYvjga7jgooNCivjgYvjgajjgoos44GR44KT44GYDQor44GM44G/LOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgb7jgZXjgb8NCivjgYvjgo/jgb8s44GX44KT44GYDQor44GN44Gf44GX44KNLOOBi+OBmuOCiOOBlw0KK+OBjeOCgOOCiSzjgZfjgZLjgosNCivjgY/jgZjjgonjgYrjgYss44Gg44GE44GNDQor44GE44GX44GQ44KNLOOBn+OCjeOBhg0KK+OBhOOBquOBqOOBvyzjgaDjgYTjgZnjgZENCivjgZPjgZrjgb4s44G+44GE44GTDQor44GT44GX44GELOOBqOOCguOBsuOCjQ0KK+OBk+OBq+OBlyzjgZ/jgaDjgZcNCivjgZPjgbDjgoTjgZcs44KI44GX44GKDQor44GV44GE44Go44GGLOOBqOOCguOBiA0KK+OBleOBi+OBhCzjgb/jga3jgYoNCivjgZXjgYvjgoLjgags44GY44KF44KT44GTDQor44GV44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBhOOBl+OBkOOCjSzjgbLjgafjgZ/jgYsNCivjgZfjgarjgaAs44KI44GX44GTDQor44GX44G+44GgLOOCiOOBl+OBleOBoA0KK+OBhOOBqOOBhizjgY3jgofjgYbjgZMNCivjgZnjgY7jgoTjgb4s44GL44Ga44GqDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBm+OBjeOBkOOBoSzjgZHjgYTjgZMNCivjgYvjgb/jgoQs44GL44GZ44G/DQor44Gf44GL44GuLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZ/jgYvjgb/jgZbjgo8s44KK44KF44GG44GNDQor44Gf44GR44GG44GhLOOBn+OBi+OBjeOCiA0KK+OBn+OBkeOCguOBqCzjgYvjgZrjgbLjgZMNCivjgZ/jgaHjgbDjgaos44GC44KE44GTDQor44Gf44Gq44GLLOOBquOBiuOBkw0KK+OBn+OBquOBvyzjgaTjga3jgYoNCivjgZ/jga7jgYrjgYss44G/44GI44GTDQor44Gh44KF44GGLOOBleOChOOBiw0KK+OBpOOBoeOChCzjgZvjgozjgaoNCivjgajjgZgs44G+44GV44GTDQor44Go44KI44GgLOOBn+OBj+OChA0KK+OBquOBi+OBmOOBvizjgajjgoLjgZMNCivjgarjgYzjgZ8s44KI44GX44Gy44GTDQor44Gq44GM44Gv44KJLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgYvjgaQNCivjgavjgZfjgYvjgo8s44GE44KP44GKDQor44Gr44KPLOOChuOBjeOBiA0KK+OBruOBjOOBvyzjgobjgYsNCivjga/jgZfjgZrjgoEs44Gf44GL44GXDQor44Gv44Gb44G5LOOCiOOBhuOBuOOBhA0KK+OBr+OBquOBtuOBlSzjgYrjgZXjgoANCivjga/jgoTjgZcs44G+44GT44GoDQor44Gv44KL44Gf44GrLOOBn+OBi+OBsuOCjQ0KK+OBsuOCh+OBhuOBiCzjgajjgoLjgbLjgo0NCivjgbLjgonjgazjgb4s44GL44Ga44GKDQor44G144GP44GgLOOBn+OBi+OBsuOCjQ0KK+OBteOBmOOBiizjgZ/jgYvjgobjgY0NCivjgYTjga7jgYbjgYgs44Gu44KK44GKDQor44G144KL44GL44KPLOOBvuOBleOBv+OBpA0KK+OBteOCjyzjgb/jgYoNCivjgb7jgYjjgYvjgo8s44KL44G/DQor44G+44GN44GfLOOBi+OBpOOChuOBjQ0KK+OBvuOBpOOBhuOCiSzjgYjjgorjgZMNCivjgb7jgaTjgaAs44Gf44GL44GXDQor44G+44Gk44G/44KELOOBkeOCk+OBhOOBoQ0KK+OBvuOBquOBuSzjgorjgofjgYbjgZnjgZENCivjgb/jgarjgags44Gy44KN44KG44GNDQor44KA44KJ44GL44G/LOOBvuOBleOBvw0KK+OCguOBqOOCiOOBlyzjgb7jgZPjgagNCivjgoLjgorjgZ8s44GR44KT44GYDQor44KE44GOLOOBkeOBhOOBmeOBkQ0KK+OBjOOCkyzjga/jgarjgYgNCivjgoTjgb7jgZDjgaEs44KE44GZ44G+44GVDQor44KE44G+44GV44GNLOOBmOOCheOCkw0KK+OChOOBvuOBoCzjgZ/jgaTjgZgNCivjgoTjgb7jgavjgZcs44Gq44GK44GNDQor44KI44GT44GfLOOBqOOCguOBteOBvw0KK+OCiOOBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgojjgZfjgoDjgoks44GP44Gr44Gy44GTDQor44KP44GN44GfLOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjgZ3jgYYNCivjgYLjgb7jgZMs44KI44GX44GKDQor44G+44GuLOOBguOBjQ0KK+OBhuOBoeOCgOOCiSzjgaHjgarjgaQNCivjgZXjgY/jgonjgYQs44G+44G/DQor44GX44KJ44GELOOChuOBn+OBiw0KK+OBpuOCieOBj+OCiSzjgojjgYbjgZgNCivjgYrjgYvjgaAs44Gf44Gk44GXDQor44GU44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBpOOBsOOBjSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYTjgarjgYzjgY0s44Gy44Gn44Go44GXDQor44G744KK44G5LOOCguOBqOOBmA0KK+OBi+OBhCzjgojjgZfjgYgNCivjgZ/jgYvjgaAs44Go44GP44Gy44GTDQor44GT44Gf44GrLOOBteOBv+OBsuOBkw0KK+OBhOOBr+OCiSzjgZHjgYTjgZMNCivjgYLjgY3jga/jgoks44GX44KF44KT44GZ44GRDQor44GC44G5LOOChuOBjQ0KK+OBguOCieOBjSzjgbLjgo3jgZcNCivjgYTjgZfjgYQs44Gu44G244KE44GZDQor44GE44GX44Gc44GNLOOBoOOBhOOBmeOBkQ0KK+OBhOOBn+OBqyzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GX44Ga44GTDQor44GE44GuLOOBv+OBjQ0KK+OBhOOCj+OBluOBjSzjgbLjgo3jgZ/jgYsNCivjgYbjgYjjga4s44GR44KT44GYDQor44GG44KB44Gv44KJLOOBquOBpOOBkw0KK+OBiuOBiuOBiCzjgaDjgYTjgZnjgZENCivjgYrjgYrjgaQs44Gh44GIDQor44GK44GK44Gk44G8LOOBvuOBleOBv+OBpA0KK+OBiuOBi+OBoCzjgZ/jgaTjgoQNCivjgYrjgYvjgoLjgags44Gy44GV44GXDQor44GK44GP44Gq44GLLOOBm+OBhOOBlw0KK+OBiuOBsOOCiSzjgobjgorjgZMNCivjgYvjgZjjgarjgYws44KG44Gf44GLDQor44GL44Go44GGLOOCiuOCh+OBhg0KK+OBi+OBqOOBhizjgo/jgZ/jgosNCivjgYvjgo/jgYQs44GT44GG44GYDQor44GL44KP44GQ44GhLOOBmeOBmeOCgA0KK+OBjeOBlyzjgozjgYTjgZMNCivjgY3jganjgZPjgo0s44GC44Gk44GXDQor44GP44G844GfLOOBvuOChuOBvw0KK+OBj+OCj+OBsOOCiSzjgobjgYvjgooNCivjgZPjgY/jgbws44KC44KC44GIDQor44GU44Go44GGLOOBkeOBhOOBkw0KK+OBk+OBv+OChOOBvizjgb7jgZXjgojjgZcNCivjgZXjgYTjgajjgYYs44GX44GS44KLDQor44GV44GL44KC44GoLOOBoeOBi+OCiQ0KK+OBleOBleOBrizjgYLjgYvjgY4NCivjgZXjgarjgaAs44G+44GV44KG44GNDQor44GX44G+44GgLOOBn+OBkeOBlw0KK+OBl+OCguOBteOBmCzjga7jgbbjgbLjgZMNCivjgZfjgo8s44GR44KT44GE44GhDQor44GZ44GO44Gv44KJLOOBsuOCjeOBruOBtg0KK+OBmeOBmuOBjSzjgb7jgZXjgoQNCivjgZvjgY0s44GC44Gk44Gq44KKDQor44Gf44GL44GOLOOBi+OCiA0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgarjgYoNCivjgZ/jgY3jgZbjgo8s44GV44Go44GXDQor44Gf44GR44GgLOOChuOBhuOBhOOBoeOCjQ0KK+OBn+OBquOBiyzjgZvjgYTjgZgNCivjgZ/jgavjgYvjgo8s44KI44GX44Gk44GQDQor44Gf44Gw44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBpOOBi+OBoCzjgorjgYgNCivjgaTjgbzjgZ8s44G+44GV44KEDQor44Go44GG44GL44GE44KK44KTLOOChuOBvw0KK+OBqOOBruOBhCzjgYLjgY3jgZMNCivjgarjgYvjgYzjgo8s44KI44GX44Gu44KKDQor44Gq44GM44GuLOOCiuOCh+OBhuOBnw0KK+OBquOBi+OChOOBvizjgajjgoLjgbLjgo0NCivjgavjgZfjgYrjgYss44GX44KT44GE44GhDQor44Gt44GO44GXLOOCiuOBiw0KK+OBruOBluOBjSzjgaDjgYTjgZnjgZENCivjga/jgZfjgZDjgaEs44Go44GX44Gy44KNDQor44Gv44Gj44Go44KKLOOChuOBhuOBhOOBoQ0KK+OBr+OBvuOBoCzjgaDjgYTjgZgNCivjgbLjgZfjgazjgb4s44GC44Gk44GXDQor44Gy44KJ44GfLOOBvuOBv+OBkw0KK+OBteOBj+OBoCzjgZ/jgYvjgZcNCivjgbXjgZjjgYjjgaAs44Gy44GV44GL44GaDQor44G144GY44KP44KJLOOBn+OBj+OBqA0KK+OBu+OCiuOBi+OCjyzjgZfjgoXjgYbjgZgNCivjgb7jgaTjgYos44Gy44Gn44Gu44KKDQor44G+44Gk44KE44G+LOOBv+OBpOOBpuOCiw0KK+OBv+OChCzjgYLjgY3jgokNCivjgb/jgoTjgoLjgags44GP44Gr44GTDQor44KA44KJ44GL44G/LOOBn+OBpOOBsuOCjQ0KK+OCguOCiuOBnyzjgb7jgb8NCivjgoTjgZDjgoks44GX44KT44GYDQor44KE44G+44GgLOOBv+OBmuOBuw0KK+OChuOCiSzjgZHjgpPjgYTjgaENCivjgojjgZfjgZbjgo8s44KG44GG44GTDQor44KN44GPLOOBguOBjeOBkw0KK+OCj+OCieOBsyzjgbLjgo3jga7jgooNCivjgb/jgbLjgoks44KK44KH44GG44G444GEDQor44G/44GO44GfLOOBvuOBqg0KK+OBn+OBkeOBhuOBoSzjgorjgofjgYYNCivjgYrjga7jgafjgoks44GP44Gr44Gy44KNDQor44GC44GL44GM44KPLOOCguOBqOOBkw0KK+OBguOBleOBrOOBvizjgYLjgoQNCivjgYLjgonjgYQs44Gk44KI44GXDQor44GE44GW44KPLOOBoeOBr+OCiw0KK+OBhOOBl+OBsOOBlyzjgajjgZfjgobjgY0NCivjgYTjgacs44Gq44KL44G/DQor44GE44Gu44GG44GILOOBvuOBk+OBqA0KK+OBhOOBvuOBnOOBjSzjgY/jgb/jgZMNCivjgYTjgo/jgZ8s44GT44GG44GYDQor44GG44GV44G/LOOBvuOCiuOBkw0KK+OBiOOBruOBjeOBqSzjgojjgorjgZMNCivjgYrjgY3jgZ8s44KG44GN44Gu44KKDQor44GK44GK44Gk44GLLOOCguOBqOOBhA0KK+OBiuOBrizjgbLjgo3jgZcNCivjgYrjgYvjgaAs44GL44Ga44Gy44KNDQor44GK44GP44GP44G8LOOBn+OBi+OBlw0KK+OBi+OBquOBhCzjgZHjgpPjgYTjgaENCivjgYvjgb/jgoQs44GV44Gh44GTDQor44GL44KP44GV44GNLOOBsuOCjeOBjQ0KK+OBjeOBoCzjgYjjgYTjgZnjgZENCivjgY3jgoDjgoks44G144G/44GoDQor44GP44KB44GG44GhLOOBkeOCk+OBmA0KK+OBj+OCj+OBr+OCiSzjgZfjga4NCivjgZPjgYws44Gf44GP44GYDQor44GT44Gw44KE44GXLOOBguOCk+OBqg0KK+OBleOBhOOBqOOBhizjgZHjgpPjgYTjgaENCivjgZXjgZXjgY0s44Gv44Gq44GTDQor44GV44Go44GGLOOBv+OBjQ0KK+OBleOBr+OCiSzjgZ/jgYvjgbXjgb8NCivjgZfjgaAs44KI44GX44Gy44KNDQor44GX44G/44GaLOOBn+OBpOOBig0KK+OBl+OCguOBluOBjSzjgZ/jgaTjgbLjgZMNCivjgZnjgY7jgYbjgoks44G+44GV44Gu44G2DQor44GZ44GoLOOBleOBqOOBlw0KK+OBm+OBqCzjgZHjgYTjgZgNCivjgZ/jgYvjgY4s44Gu44KK44KG44GNDQor44Gf44GL44Gv44GXLOOBv+OBiw0KK+OBn+OBkeOBoCzjgobjgYbjgZgNCivjgZ/jgaAs44KI44GX44Gf44GLDQor44Gf44Gr44GQ44GhLOOBn+OBi+OBruOCig0KK+OBn+OCgOOCiSzjgZHjgYTjgZMNCivjgaTjgYvjga/jgoks44G/44Ga44G7DQor44Gk44G844GG44GhLOOBguOBjeOBteOBvw0KK+OBpuOCieOBoCzjgojjgZfjgY0NCivjgajjgb/jgYQs44GY44KF44KT44GTDQor44Gq44GE44Go44GGLOOBn+OBi+OBig0KK+OBquOBjOOBleOBiyzjgZPjgYbjgZgNCivjgarjgYzjga4s44KE44GZ44GKDQor44Gq44GL44KA44KJLOOBiOOBhOOBmA0KK+OBq+OBlyzjgarjgYrjgobjgY0NCivjgavjgZfjgaAs44KK44KH44GG44G444GE44GfDQor44Gu44GQ44GhLOOBi+OBmuOCiOOBlw0KK+OBruOCgOOCiSzjgYvjgZrjgYoNCivjga/jgaPjgajjgoos44GV44Go44G/DQor44Gv44KE44GL44KPLOOChuOBjQ0KK+OBr+OCieOBoCzjgb/jgYgNCivjgbLjgafjgZfjgb4s44G/44GN44GTDQor44G144GL44GKLOOBv+OChuOBjQ0KK+OBteOBj+OBr+OCiSzjgobjgY3jgZMNCivjgbXjgZjjgoLjgags44GI44KK44GTDQor44G744GX44GuLOOBmeOBv+OBig0KK+OBu+OCiuOBkOOBoSzjgZjjgoXjgpPjgYTjgaENCivjgb7jgY3jga4s44Gf44GR44GKDQor44GT44G/44KELOOBruOBvOOCiw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgYvjgb/jgY/jgbws44GR44KT44GYDQor44G+44Gk44GKLOOBjeOCiOOBlw0KK+OBquOBi+OBoSzjgY3jgojjgZcNCivjgZPjgZnjgY4s44KI44GX44G/DQor44GL44Gk44G+44GfLOOBqOOBl+OBi+OBmg0KK+OBi+OBjOOChOOBvizjgb7jgZXjga/jgosNCivjgY/jgZws44G/44GN44GKDQor44GP44G+44GgLOOBvuOBleOBguOBjQ0KK+OBk+OBmOOCh+OBhizjgZXjgarjgYgNCivjgYvjgZfjgY/jgb4s44GR44KT44Ge44GGDQor44GN44GP44GhLOOCiOOBl+OBsuOBlQ0KK+OBj+OBvuOBrizjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GX44KF44KT44GYDQor44GT44Gw44KE44GXLOOBruOBtuOBkw0KK+OBk+OBq+OBlyzjgZHjgpPjgYTjgaENCivjgZPjgbDjgZfjgYzjgo8s44Gy44Go44GXDQor44GL44GE44GpLOOBv+OBuw0KK+OBj+OCjeOBjSzjgZjjgoXjgpMNCivjgYvjgarjgZ/jgass44KK44GIDQor44GN44Gf44GM44KPLOOBquOBiuOBn+OBiw0KK+OBv+OBmuOCguOBqCzjgarjgovjgY0NCivjgb/jgoTjgYrjgYss44GR44KT44KN44GGDQor44KA44KJ44GfLOOBkeOCk+OBmA0KK+OCguOCiuOBnyzjgbLjgafjgajjgoINCivjgoTjgarjgY7jgaAs44GI44KK44GTDQor44KE44G+44GW44GNLOOBkeOCkw0KK+OChOOBvuOCguOBqCzjgoTjgZnjga7jgooNCivjgojjgZQs44Go44KC44Gu44KKDQor44KI44Gt44GgLOOChuOBv+OBkw0KK+OCj+OBkyzjgorjgYgNCivjgYLjgYvjga/jga0s44Gy44KN44GC44GNDQor44GC44GV44G5LOOBi+OCiA0KK+OBguOCieOBhCzjgbLjgafjgYoNCivjgYTjgZHjgaAs44KI44GX44Gf44GLDQor44GE44GX44GpLOOChuOBjeOBkw0KK+OBhOOBmuOBrizjgb/jgaTjgbLjgo0NCivjgYTjgajjgYYs44Gf44GR44GXDQor44GE44Gu44GG44GILOOBruOBtuOBn+OBiw0KK+OBhOOCj+OBnyzjgojjgZfjgbLjgo0NCivjgYbjgYvjgYQs44Gy44GV44Gq44GMDQor44GI44Go44GGLOOBsuOCjeOBjQ0KK+OBiuOBiuOBleOBiyzjgZ/jgabjgY0NCivjgYrjgYrjgavjgZcs44G/44Gk44KLDQor44GK44KA44KJLOOBqOOCguOBkw0KK+OBiuOBi+OBrizjgoTjgZnjgbXjgb8NCivjgYrjgYzjgo8s44Gf44GP44KEDQor44GK44GW44GNLOOBn+OBi+OChuOBjQ0KK+OBiuOBqOOBjOOCjyzjgorjgofjgYbjgZMNCivjgYvjgZXjgYQs44Gq44GK44GTDQor44GL44GZ44GMLOOBleOBquOBkw0KK+OBi+OBqOOBhizjgZHjgpPjgYTjgaHjgo0NCivjgYvjgoHjgZ/jgYss44Gf44GE44GZ44GRDQor44GL44KP44GQ44GhLOOBguOChuOBvw0KK+OBi+OCj+OBsOOBnyzjgYLjgobjgb8NCivjgY3jgZ/jgYzjgo8s44Gf44GR44GXDQor44GN44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBjeOCiuOBleOBkyzjgabjgaPjgbrjgYQNCivjgY/jgonjga/jgZcs44Gf44GL44GC44GNDQor44GU44GG44GgLOOBn+OBkeOBsuOCjQ0KK+OBk+OBpuOCiSzjgY3jgb/jgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gq44Gk44GTDQor44GT44G+44Gk44Gw44KJLOOBqOOCguOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgabjgovjgbLjgZUNCivjgZXjgYvjgYQs44Gf44GL44KG44GNDQor44GV44GP44KJ44GELOOBleOBoOOCiOOBlw0KK+OBleOBqOOBhizjgYLjgY0NCivjgZXjgo/jgZXjgY0s44Gf44GL44GXDQor44GX44G+44GuLOOBqOOBl+OBguOBjQ0KK+OBl+OCh+OBhuOBoCzjgY/jgb8NCivjgZfjgpPjgZ/jgass44GR44KT44GfDQor44GZ44GO44KE44G+LOOBn+OBi+OBrQ0KK+OBm+OBjeOCguOBqCzjgYvjgaTjgYLjgY0NCivjgZ/jgYvjga/jgZcs44KM44GEDQor44Gf44GQ44GhLOOCj+OBn+OCiw0KK+OBn+OBoeOBsOOBqizjgarjgYrjgagNCivjgZ/jgarjgYss44GV44Gh44GIDQor44Gf44G+44GNLOOBquOBiuOBkw0KK+OBpOOBi+OBoCzjgabjgaTjgoQNCivjgaTjgbzjgY/jgoks44Gf44GP44KEDQor44Gp44GELOOBruOBtuOBn+OBiw0KK+OBqOOBoCzjgZfjgoXjgpPjgZnjgZENCivjgarjgYzjgZXjgYss44G/44Gh44GTDQor44Gq44GL44GX44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBi+OBq+OBlyzjgb/jganjgooNCivjgarjgYvjgoDjgoks44G+44KGDQor44Gq44GL44KE44G+LOOBn+OBkeOBlw0KK+OBq+OBl+OBrizjgobjgYsNCivjga7jgY/jgYos44GL44GK44KKDQor44Gw44GT44GXLOOBl+OCk+OBlA0KK+OBr+OBn+OBrizjgojjgYbjgZMNCivjga/jgoTjgZcs44GV44Go44GTDQor44Gv44KJ44GgLOOBguOBpOOBlw0KK+OBsuOCieOBhCzjgobjgYbjgZnjgZENCivjgbLjgo3jgYgs44GC44Gk44GXDQor44G144GP44GgLOOBleOChOOBiw0KK+OBteOBmOOCgOOCiSzjgYLjgY3jgZMNCivjgbXjgovjgYvjgo8s44Gy44KN44GTDQor44G744Gd44GgLOOBl+OCheOCk+OBlA0KK+OBvuOBiOOBi+OCjyzjgb/jgo8NCivjgb7jgZXjgajjgYbjgb8s44G+44GE44GTDQor44G+44Gk44GK44GLLOOBqOOCguOBkw0KK+OBvuOBpOOBsOOCiSzjgYLjgY3jgZMNCivjgb/jgYbjgoks44GN44KI44G+44GVDQor44G/44Ge44Gv44GfLOOBoeOBiA0KK+OBv+OBr+OCiSzjgb7jgZXjgY0NCivjgb/jgoTjgoDjgoks44GC44KEDQor44KA44KJ44GfLOOBj+OBv+OBkw0KK+OCguOCiizjgY/jgb/jgZMNCivjgoLjgo3jgYgs44Gy44KN44GL44GaDQor44KE44Gq44GO44GV44KPLOOBkeOBhOOBmeOBkQ0KK+OChOOBvuOBjOOBnyzjgb7jgZPjgagNCivjgoTjgb7jgaAs44Gu44G244GTDQor44KE44G+44KC44GoLOOBpuOCi+OBsuOBkw0KK+OChOOBvuOCguOBqCzjgo/jgZ/jgosNCivjgojjgZPjgoTjgb4s44GC44KG44G/DQor44KI44GX44GgLOOBquOBiuOBkw0KK+OCiOOBl+OCgOOCiSzjgaDjgYTjgZnjgZENCivjgo/jgaAs44GE44GV44KADQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBleOBleOBrizjgZnjgZnjgoANCivjgZPjgaDjgb4s44Gf44GL44Gy44GTDQor44GL44KP44GX44G+LOOBvuOBleOBquOCig0KK+OBi+OCj+OBrizjgZPjgYbjgYTjgaENCivjgYvjgb/jgYbjgoks44GL44Ga44Gy44GnDQor44GT44KT44GuLOOBsuOBp+OBjQ0KK+OBj+OChOOBvizjgZ/jgZHjgZcNCivjgZPjgYQs44Gb44GE44GE44Gh44KN44GGDQor44GL44GV44GY44G+LOOBsuOCjeOBteOBvw0KK+OBi+OBqOOBhizjgajjgoLjgb8NCivjgY/jgbzjgZ8s44Gy44KN44KG44GNDQor44GR44GM44GV44KPLOOBsuOBleOBlw0KK+OBi+OCj+OBjuOBlyzjgbLjgo3jgZcNCivjgYvjgb7jgaAs44Gf44GL44GXDQor44GN44GP44GhLOOBiuOBleOCgA0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgZMNCivjgb7jgaHjgaAs44GL44Ga44GKDQor44KA44KJ44GV44GNLOOBqOOBl+OBig0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgYTjgaENCivjgb7jgZXjgY0s44GN44GP44GKDQor44G/44Ga44Gf44GrLOOBquOBiuOBsuOBkw0KK+OBvuOCi+OChOOBvizjgZvjgYTjgZgNCivjgoDjgonjgZfjgb4s44Gf44Gg44GKDQor44G/44Ga44GfLOOCiOOBl+OBig0KK+OCguOCiuOBhCzjgY7jgofjgZgNCivjgb/jgoTjgZbjgo8s44KI44GX44GKDQor44G/44Ga44GuLOOChuOCiuOBkw0KK+OCgOOCieOBhOOBlyzjgb7jgoLjgosNCivjgoDjgonjgYvjgb8s44GL44Ga44GKDQor44KA44KJ44G+44GkLOOBguOBpOOBlw0KK+OBv+OBn+OBjyzjgZHjgYTjgZ7jgYYNCivjgb7jgYjjgaAs44GC44GN44GKDQor44KA44KJ44GELOOBqOOCiOOBvw0KK+OBvuOBpOOBoCzjgZXjgajjgZcNCivjgb/jgabjgoks44KE44GZ44GKDQor44KC44KKLOOBpOOBqOOCgA0KK+OBvuOBpOOBhCzjgZ/jgYvjgZcNCivjgb/jgYbjgoks44GP44Gr44GKDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBvuOBpOOBluOCjyzjgojjgZfjgYoNCivjgb/jgYvjgb8s44Gv44KL44GNDQor44Gf44G244GhLOOBkeOCk+OBmA0KK+OBquOBi+OBmOOBvizjgb7jgZXjgbLjgo0NCivjgarjgYTjgajjgYYs44Gf44GR44GKDQor44Gr44GX44GqLOOBjeOBv+OBsuOBqA0KK+OBquOBi+OBjOOBvyzjgZfjgoXjgYbjgYTjgaENCivjgarjgYvjga/jgZ8s44GL44Ga44Go44GXDQor44Gr44GX44GK44GLLOOBsuOCjeOBlw0KK+OBq+OBl+OBoCzjgojjgZfjgo3jgYYNCivjga7jgoDjgoks44GP44Gr44Gy44GTDQor44Gq44GL44KA44KJLOOBsuOBp+OChuOBjQ0KK+OBquOBhOOBqOOBhizjgYvjgZrjgYLjgY0NCivjgavjgaPjgZ8s44KG44Gf44GLDQor44Gq44GL44GY44G+LOOBi+OBpOOBig0KK+OBquOBi+OBmyzjgajjgZfjgYLjgY0NCivjgarjgYvjgYzjgo8s44Gu44G244GKDQor44Gq44GL44GY44G+LOOCgOOBreOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgbvjgZrjgb8NCivjgarjgYzjgZfjgb4s44Gq44GK44GYDQor44GK44GNLOOBmeOBv+OBig0KK+OBiuOBj+OBoCzjgajjgZfjgYoNCivjgYrjgYrjga/jgZcs44Gy44KN44GXDQor44GK44GM44KPLOOBqOOBiuOCiw0KK+OBiuOBluOCjyzjgbLjgo3jgZcNCivjgYrjgYrjga/jgZcs44KG44Gf44GLDQor44GK44GK44GuLOOBv+OBpOOBig0KK+OBiuOBiuOBhOOBlyzjgZgNCivjgYrjgYrjgYvjgo8s44GL44GK44KLDQor44GK44KK44GM44GVLOOChOOBmeOBn+OBkQ0KK+OBiuOBiuOBnyzjgojjgZfjgbLjgZMNCivjgYrjgZbjgY0s44GY44KF44KT44GE44GhDQor44GK44Gg44GX44G+LOOBn+OBoOOBlw0KK+OBiuOBiuOBsuOCiSzjgZvjgaTjgZgNCivjgYrjgYrjgoQs44Gy44Gn44G7DQor44GK44GL44GuLOOBguOBjeOBkw0KK+OBiuOBkOOBlyzjgYLjgZHjgb8NCivjgYrjgYrjgYTjgYzjgo8s44Gf44GL44Gv44KLDQor44Gq44GL44Gf44GrLOOBl+OCk+OBhOOBoQ0KK+OBl+OCieOBiuOBjOOCjyzjgonjgYTjgZ8NCivjgarjgYvjgoDjgoks44Go44GX44G/44GkDQor44GC44G5LOOBiOOBv+OBkw0KK+OBi+OCj+OBhuOBoSzjgb7jgorjgYgNCivjgYTjgajjgYYs44GR44KT44Gd44GGDQor44GT44GE44Ga44G/LOOBn+OBj+OChA0KK+OBi+OBquOBiuOBiyzjgbLjgo3jgZcNCivjgYLjgorjgb4s44KE44KI44GEDQor44GG44G+44KE44Gv44KJLOOChOOBmeOBvw0KK+OBi+OBreOBvuOBpCzjgZXjgY3jgZMNCivjgbXjgYvjgoQs44GP44Gr44GC44GNDQor44GU44Go44GGLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBmeOBjuOCguOBqCzjgY/jgavjgYoNCivjgY/jgorjga/jgoks44Go44KI44Gy44GTDQor44GK44GK44GfLOOChuOBjeOBkw0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgojjgZfjgaAs44GL44Ga44Go44GXDQor44Gv44Gj44Go44KKLOOBsuOCjeOBlw0KK+OBi+OBqeOBnyzjgYLjgY3jgbLjgo0NCivjgYTjgZfjgZbjgo8s44KG44Ga44GNDQor44G/44KE44KC44GoLOOBv+OBqeOCig0KK+OBiuOBmCzjgoTjgZnjgbLjgo0NCivjgYLjgonjgYQs44Go44GX44GC44GNDQor44GN44Gf44KA44KJLOOCiuOBi+OBkw0KK+OBleOBhOOBqOOBhizjgojjgZfjgbLjgagNCivjgZPjgbDjgoTjgZcs44GN44KH44GG44Ge44GGDQor44Gr44GX44GL44KPLOOBqOOCguOBvw0KK+OBn+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgZrjgZcs44KE44GZ44GKDQor44GC44KJ44GELOOBl+OCh+OBhuOBuOOBhA0KK+OBvuOBiOOBp+OCiSzjgabjgovjgobjgY0NCivjgZPjgpPjgaks44Gq44GKDQor44Gq44GM44G744KKLOOChuOBjeOBkw0KK+OBhOOCj+OBleOBjSzjgb/jgoTjgbMNCivjgarjgYvjgZ/jgass44Gf44GL44GXDQor44Gq44GL44GM44GNLOOBkeOBhOOBkw0KK+OBj+OCj+OBr+OCiSzjgb7jgZPjgagNCivjgZnjgZrjgY0s44KG44GNDQor44Gf44GgLOOBiOOBhOOBjQ0KK+OCj+OBoCzjgarjgYrjgZMNCivjgZXjga4s44Gy44KN44GXDQor44Go44GN44GfLOOBquOBpOOBkw0KK+OBk+OBleOBhCzjgobjgYbjgZMNCivjgZvjgZTjgYgs44GV44Go44GTDQor44Gq44GL44GELOOBguOBpOOBvw0KK+OBr+OCieOBoCzjgajjgZfjgb7jgZUNCivjgY3jga7jgZfjgZ8s44G/44Gh44GKDQor44G/44KE44GW44GNLOOBi+OBmuOBvw0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgYLjgY0NCivjgZXjgajjgYYs44GT44GG44GE44Gh44KN44GGDQor44G/44Ga44GX44G+LOOBn+OBkeOCiw0KK+OBn+OBq+OBkOOBoSzjga/jgovjgb8NCivjgb7jgaTjgZfjgZ8s44Gf44GL44GXDQor44GZ44GO44GG44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBq+OBjOOBjSzjgZvjgYTjgZMNCivjgZXjgajjgYYs44GX44GS44GKDQor44KE44G+44GL44KPLOOBleOBoOOBr+OCiw0KK+OBmeOBmuOBjSzjgZfjgZLjgbLjgo0NCivjgajjgY/jgaAs44G+44KT44Gq44KKDQor44GE44KP44G+LOOBruOBtuOBguOBjQ0KK+OBiuOBiuOBr+OCiSzjgobjgY3jgarjgYoNCivjgZfjgYrjgazjgb4s44Gy44Gn44Go44GXDQor44GZ44Ga44GNLOOBguOBjeOCiOOBlw0KK+OBmeOBmuOBjSzjgojjgZfjgZMNCivjgZnjgZrjgY0s44Gu44G244GC44GNDQor44Gb44GNLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgaTjgajjgoANCivjgZnjgYzjgYos44Gm44Gk44GYDQor44GZ44Ga44GNLOOBkeOBhOOBn+OCjeOBhg0KK+OBleOBqeOBqOOCgizjgYLjgY3jgokNCivjgZfjgb4s44G/44Gu44KLDQor44GV44GE44Go44GGLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZXjgYTjgajjgYYs44KG44GN44GKDQor44Gd44G+LOOBiuOBleOCgA0KK+OBleOBqOOBhizjgZHjgpPjgZgNCivjgZfjgo3jgZXjgY0s44KI44GG44GE44GhDQor44GZ44Ga44GNLOOCiOOBhuOBmOOCjeOBhg0KK+OBmeOBmuOBjSzjgabjgaTjgo3jgYYNCivjgZnjgY7jgoLjgags44G+44GV44GKDQor44GV44GL44GELOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgYvjgZrjgobjgY0NCivjgZXjgajjgYYs44Gf44Gk44GYDQor44GX44GK44GfLOOBqOOCiOOBig0KK+OBneOBvizjgYvjgpPjgZgNCivjgZfjgoXjganjgYYs44Gf44GL44GKDQor44GV44GP44KJ44GELOOBqOOBl+OBig0KK+OBneOBhuOChCzjgZvjgYTjgZgNCivjgZXjgo/jgoDjgoks44Gq44KL44G/DQor44Gb44GKLOOChuOBhuOBmA0KK+OBl+OBv+OBmizjgajjgZfjgYoNCivjgZXjgY3jgoLjgoos44GE44KP44GKDQor44GV44GE44Go44GGLOOBsuOBleOBig0KK+OBl+OBv+OBmizjgYjjgYTjgZ7jgYYNCivjgZfjgYrjga7jgoQs44GN44KI44GL44GaDQor44Gf44GL44GOLOOBsuOBp+OBig0KK+OBn+OBjeOBhOOBlyzjgorjgofjgYbjgZgNCivjgajjgbAs44G+44GV44GXDQor44Gf44GQ44GhLOOBvuOBleOBig0KK+OBn+OBi+OBrizjgoDjga3jgYoNCivjgZ/jgYvjgoTjgZks44Go44KI44G/DQor44Gf44Gq44GLLOOBl+OBkuOCiw0KK+OBn+OBi+OBr+OBvizjgojjgZfjgYLjgY0NCivjgaTjgaHjgaAs44G+44KC44KLDQor44Gf44GL44GKLOOBvuOBmeOBvw0KK+OBn+OBq+OBkOOBoSzjgb/jgaHjgYLjgY0NCivjgaTjgZjjgYvjgo8s44KG44GG44GE44GhDQor44KI44GX44GW44KPLOOBvuOBleOBr+OCiw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZ7jgYYNCivjgZ/jgb7jgoss44G+44GV44G/DQor44Gf44GL44GOLOOBjeOCh+OBhuOBkw0KK+OBpOOBreOBsuOCjSzjgZjjgoXjgpPjgZgNCivjgZ/jgYvjga/jgZcs44Go44GX44GC44GNDQor44GC44GV44GELOOChuOBhuOBmA0KK+OBn+OBi+OBleOBjSzjgYLjgY3jgokNCivjgZ/jgYvjgarjgb8s44G+44GV44KLDQor44Go44KC44Gq44GMLOOBpOOBreOBi+OBmg0KK+OBn+OBi+OBjizjgYTjgaTjgYoNCivjgaTjgYvjgoLjgags44GC44GN44GKDQor44Gm44KJ44GG44GhLOOBleOBoOOChuOBjQ0KK+OBn+OBruOBiuOBiyzjgZnjgZnjgoANCivjgYbjgZnjgY4s44GL44Ga44Gy44KNDQor44GG44Gk44GNLOOBpuOBpOOBig0KK+OBhuOBoeOBoCzjgZHjgpPjgZnjgZENCivjgYbjgoHjgoDjgoks44Go44GX44GKDQor44GG44GuLOOBqOOBl+OBsuOBpw0KK+OCj+OBn+OBquOBuSzjgbLjgZXjgobjgY0NCivjgo/jgZ/jgarjgbks44GL44Gk44Gq44KKDQor44KP44Gf44Gq44G5LOOBk+OCk+OBlOOBhg0KK+OCj+OBoCzjgZ/jgZHjgb/jgaQNCivjgYrjgYrjgZ8s44G+44GT44GoDQor44Gq44GL44GY44G+LOOBkeOBhOOBhOOBoQ0KK+OBteOCi+OBleOCjyzjgaTjgojjgZcNCivjgYvjgZfjgo/jgY4s44GTDQor44Gv44GfLOOBl+OCh+OBhuOBmeOBkQ0KK+OBhuOBl+OBmOOBvizjgb7jgZXjgYvjgZoNCivjgb7jgaTjgYQs44GC44GN44KJDQor44GL44KP44GqLOOBoOOBhOOBmOOCjeOBhg0KK+OBv+OChOOCguOBqCzjgZ/jgYvjgbLjgZUNCivjgojjgZfjgaAs44GZ44G/44KG44GNDQor44GK44GK44GL44KP44KJLOOBkuOCk+OBn+OCjeOBhg0KK+OBmeOChOOBvizjgY/jgpPjgo3jgYYNCivjgZnjgZrjgY0s44KG44GG44GYDQor44GP44Gr44GO44GfLOOCiOOBhuOBhOOBoQ0KK+OBjeOBqSzjgb7jgZXjgZcNCivjgYTjgZfjgYQs44Gh44GL44Go44GXDQor44GG44GI44GgLOOBn+OBi+OBlw0KK+OBhOOBoeOBi+OCjyzjgYvjgZrjgYoNCivjgYrjgZXjgZjjgb4s44Go44GX44KEDQor44GG44GI44KA44KJLOOBqOOBl+OBsuOBpw0KK+OBjeOCgOOCiSzjgajjgY3jgaENCivjgojjgZPjgoTjgb4s44Gy44GV44GKDQor44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OBv+OChOOBuSzjgYvjgZrjgagNCivjgZ/jgb7jgYQs44GL44Ga44G/44GhDQor44GT44KKLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBhOOCj+OBleOCjyzjgb7jgarjgbYNCivjgojjgZfjgoTjgZks44GU44GGDQor44G+44Gf44GNLOOBl+OCk+OBlA0KK+OChOOBvuOCguOCiizjgYvjgaTjgYoNCivjgZ/jgYvjgZ8s44Gu44KK44GKDQor44GZ44Gp44GGLOOBl+OCh+OBhuOBkw0KK+OBhuOBiOOCgOOCiSzjgobjgZ/jgYsNCivjgZnjgZrjgY0s44G/44Gu44KLDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBguOCieOBjSzjgZvjgY3jga0NCivjgYvjgaAs44GC44GN44KJDQor44Gr44GX44KI44KKLOOBv+OBruOCiw0KK+OBhOOBquOBsCzjgYvjgZrjgagNCivjgbvjgorjgYQs44Gk44Gt44GKDQor44GZ44Gp44GGLOOBvuOBleOBsuOBkw0KK+OBl+OCjeOChOOBvizjgZMNCivjgabjgonjgYQs44GC44GN44GTDQor44G+44Gk44KC44GoLOOBquOBiuOBn+OBkQ0KK+OBhOOBqOOBhizjgZvjgYTjgZgNCivjgZ3jgajjgoTjgb4s44GL44Gk44Gu44KKDQor44Gy44KJ44GK44GLLOOChOOBmeOBlw0KK+OBsuOCieOBjSzjgZ/jgoLjgaQNCivjgZ/jgarjgbks44KG44GG44GY44KN44GGDQor44Gf44KB44Gh44GLLOOBn+OBpuOBig0KK+OCiOOBreOBoCzjgajjgZfjgbLjgacNCivjgYjjgZjjgb4s44Go44KC44Gu44KKDQor44Gf44GL44Gv44GXLOOBv+OBleOBkw0KK+OBpuOCieOBiizjgbLjgo3jgbLjgZUNCivjgbvjgpPjgaAs44KG44G/DQor44GK44Gh44KKLOOChOOBmeOBsuOCjQ0KK+OBiuOBiuOBhCzjgarjgYrjgb8NCivjgYvjgo/jgYQs44G/44Gu44KLDQor44KA44KJ44GL44G/LOOBv+OCiOOBlw0KK+OBquOBi+OBmOOBvizjgbLjgajjgZcNCivjgYTjgZfjga/jgoks44G144G/44Gf44GLDQor44GC44GL44G744KKLOOBv+OBpOOBruOBtg0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgojjgZPjgZss44Go44KC44GX44GSDQor44KI44GX44GL44KPLOOBqOOBl+OCjeOBhg0KK+OChOOBvuOBkOOBoSzjgb/jga7jgosNCivjgojjgZfjgoDjgoks44G+44GV44Gy44GTDQor44KI44Gt44GgLOOBi+OBiuOCiw0KK+OChOOBvuOBl+OBnyzjgZfjgofjgYbjgZ7jgYYNCivjgoTjgb7jgaAs44GI44GE44Ge44GGDQor44KE44G+44GW44GNLOOBmeOBmeOCgA0KK+OCiOOBl+OBoCzjgbLjgo3jgZcNCivjgoTjgb7jgZ/jgass44Gy44KN44Gk44GQDQor44KE44G+44GtLOOCiOOBreOBn+OBiw0KK+OChOOBvuOBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgojjgZfjgaAs44Gf44GL44GKDQor44KE44G+44GV44GNLOOBruOCiuOBig0KK+OChOOBvuOCguOBqCzjgabjgovjgYoNCivjgojjgZPjgZ8s44GI44GE44GE44GhDQor44KE44G+44GgLOOBi+OBpOOBsuOCjQ0KK+OCiOOBl+OBrizjgaDjgYTjgZnjgZENCivjgojjgZfjgaAs44KA44Gk44GKDQor44Gu44KA44KJLOOBvuOBleOBn+OBiw0KK+OChOOBvuOBoCzjgZXjgajjgosNCivjgYTjgZfjgYvjgo8s44Gh44KI44Gf44GRDQor44GZ44Ga44GNLOOBsuOCjeOBteOBvw0KK+OBvuOBmeOBoCzjgZHjgpPjgZgNCivjgYTjgb7jgYQs44G+44GV44Ge44GGDQor44GN44KF44GG44Gd44GY44KTLOOBkeOCk+OBmeOBkQ0KK+OChOOBvuOBoCzjgYLjgY3jgokNCivjgbLjgonjga4s44Gf44GE44GNDQor44Gq44GL44Gr44GXLOOBi+OBmuOBl+OBkg0KK+OBn+OBpOOBnyzjgZfjgZLjgosNCivjgb/jgoDjgoks44G+44GV44GKDQor44Gy44KJ44G+44GkLOOBleOBoOOBig0KK+OBqOOBv+OBnyzjgb7jgZXjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GX44KT44GE44Gh44KN44GGDQor44Gf44GR44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBguOBvuOBrizjga7jgorjgZMNCivjgYTjgZfjgYQs44GN44KH44GG44GTDQor44GE44GnLOOBleOBjeOBkw0KK+OBiuOBi+OBoCzjgorjgYjjgZMNCivjgbLjgonjgYTjgZcs44G+44KKDQor44KI44GX44KC44GoLOOBsuOCjeOBkw0KK+OBi+OCj+OBl+OBvizjgb7jgobjgb8NCivjgajjgbDjgZ8s44Gu44KK44GL44GaDQor44Gf44Gq44GLLOOBsuOBi+OCiw0KK+OBguOCk+OBuSzjgb7jgarjgb8NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44KNDQor44Go44G/44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBn+OBi+OChOOBvizjgajjgZfjgobjgY0NCivjgb/jgoTjgZfjgZ8s44G/44Gu44KLDQor44Gv44GX44KC44GoLOOBv+OBjeOBig0KK+OBqOOBjOOCgSzjgb/jgo/jgZMNCivjga7jgZDjgaEs44GL44Ga44G+44GVDQor44Gu44GQ44GhLOOBguOBjeOCiQ0KK+OBneOBhuOBv+OChCzjgZHjgpPjgZgNCivjgY3jgoDjgoks44KI44GG44GYDQor44GL44Go44GGLOOBqOOCguOChuOBjQ0KK+OBmeOBmuOBjSzjgZHjgpPjgZgNCivjgYrjgYvjgaAs44Gy44KN44G/DQor44KE44GuLOOBmOOCheOCk+OBkw0KK+OBiuOBruOBleOBqCzjga/jgpMNCivjgb7jgaTjgaAs44KI44GX44GC44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBn+OCgOOCiSzjgajjgoLjga7jgooNCivjgYvjgajjgYYs44Go44GX44KEDQor44GE44Gs44G+44KLLOOBsuOCjeOBmA0KK+OBiuOBruOBp+OCiSzjgarjgYrjgZMNCivjgZnjgZrjgY0s44Gh44Gv44KLDQor44Gf44Gr44GL44KPLOOBu+OBmuOBiA0KK+OBleOBj+OBvizjgZfjgb4NCivjgYTjgb7jgoDjgoks44KL44KK44GTDQor44GI44GE44Gp44KBLOOChuOBjQ0KK+OCiOOBl+OBhCzjgZ/jgaDjgbLjgo0NCivjgYrjgYrjgZ/jgY0s44KG44G/44GTDQor44GP44GZ44KC44GoLOOBhOOBleOBig0KK+OBv+OChOOBl+OBnyzjgobjgY3jgYoNCivjgb7jgaHjgYQs44GL44Ga44Gy44KNDQor44Gv44KE44GX44GgLOOBn+OBi+OBqOOBlw0KK+OBr+OCi+OBr+OCiSzjgZ/jgYvjgZcNCivjgabjgonjgoLjgags44KG44GG44GY44KN44GGDQor44G+44Gk44KC44KKLOOBi+OBmuOBig0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgYvjga3jgZMs44KE44GZ44GXDQor44GK44KK44GM44GVLOOBvuOBpOOBruOCig0KK+OBpOOBi+OCguOBqCzjgbLjgo3jgb/jgaENCivjgojjgZfjgaAs44G/44GqDQor44Gr44GX44GgLOOBsuOBleOBiA0KK+OBteOCi+OBi+OCjyzjgorjgYgNCivjgoDjgonjgYvjgb8s44Gf44GL44GKDQor44GK44GK44Gw44KE44GXLOOBk+OBhuOBjeOBoQ0KK+OBleOBqOOBhizjgZHjgYTjgZMNCivjgoTjgb4s44G144G/44GTDQor44G/44KE44GfLOOBn+OBi+OBpuOCiw0KK++XvuiZueWmgg0KK+S4geW/g+W1kA0KK+S4geW/l+Wujw0KK+S4geW7uuaWhw0KK+S4geWBieawkQ0KK+S4geeUpuWNlw0KK+S4gee2uuaFpw0KK+S4geitveeQsw0KK+S6juengOe+jg0KK+S6juauv+iBlg0KK+WwueWxheaJjQ0KK+WwueabieaBqQ0KK+WtlOe5gemclg0KK+WwpOiJrw0KK+WwpOaYn+etlg0KK+WwpOebn+iytA0KK+WwpOiSlOiQsQ0KK+aWh+WEgOipoA0KK+aWueaWh+mLkg0KK+aWueW/l+aYjg0KK+aWueW5uOWunA0KK+aWueS/iumbhA0KK+aWueW9peeoiw0KK+aWueiLpeePig0KK+aWueWBpeWJmw0KK+aWuea3keWEkg0KK+aWueetluawkQ0KK+aWueijleasvQ0KK+aWueaFp+eQtA0KK+aWuem6l+mbhQ0KK+avm+S9qeWonw0KK+avm+a8ouaihQ0KK+eOi+S4gOePjQ0KK+eOi+S4iue2rQ0KK+eOi+Wkp+aYjA0KK+eOi+WtkOeGmQ0KK+eOi+S4reaGkw0KK+eOi+S7geWulw0KK+eOi+WPi+W/lw0KK+eOi+W/g+W/oA0KK+eOi+aWh+W5sw0KK+eOi+aWh+mDgQ0KK+eOi+aWh+m0uw0KK+eOi+S4luWuhw0KK+eOi+S4luW7ow0KK+eOi+W8mOavhQ0KK+eOi+awuOS7gQ0KK+eOi+eOieaWhw0KK+eOi+eUn+WLsw0KK+eOi+WFiem6gw0KK+eOi+Wuh+a4hQ0KK+eOi+acieasig0KK+eOi+S8r+mAuA0KK+eOi+WtneWQmw0KK+eOi+Wuj+WYiQ0KK+eOi+W/l+aWhw0KK+eOi+W/l+WzsA0KK+eOi+W/l+asvQ0KK+eOi+W/l+mKmA0KK+eOi+engOiKrA0KK+eOi+iCsuW+tw0KK+eOi+S+nemfuw0KK+eOi+S9qQ0KK+eOi+WdpOizog0KK+eOi+WyoemZtQ0KK+eOi+aAoeaWhw0KK+eOi+aAoea4hQ0KK+eOi+aAoeiYiw0KK+eOi+aYjuePig0KK+eOi+aso+S5iw0KK+eOi+ayu+mCpg0KK+eOi+mHkeiPrw0KK+eOi+S/oeS7gQ0KK+eOi+S/oeijlQ0KK+eOi+S/iuW9pQ0KK+eOi+S/iuWHsQ0KK+eOi+S/iui2hQ0KK+eOi+S/nuaWhw0KK+eOi+WJh+WLnQ0KK+eOi+WllemIng0KK+eOi+WogeiDvQ0KK+eOi+W7uuaWhw0KK+eOi+W7uumbhA0KK+eOi+W9peaZug0KK+eOi+aAnea9lA0KK+eOi+aYreS6ug0KK+eOi+aYseWHsQ0KK+eOi+afj+Wgrw0KK+eOi+eCuuiSqA0KK+eOi+ebiOWCkQ0KK+eOi+e0gA0KK+eOi+e+jua3kQ0KK+eOi+e+juaHvw0KK+eOi+iLseiTiQ0KK+eOi+mDgeasow0KK+eOi+mDgeePug0KK+eOi+WTsuiBsA0KK+eOi+aCheWmgg0KK+eOi+aZguiUmg0KK+eOi+a1qeWAqw0KK+eOi+e0oOWNvw0KK+eOi+WBieW3ng0KK+eOi+WBpeawkQ0KK+eOi+Wci+W9pQ0KK+eOi+Wft+S/oQ0KK+eOi+W0kem+jQ0KK+eOi+WVn+Wulw0KK+eOi+aVj+mKkw0KK+eOi+a4hem0uw0KK+eOi+a3keeciQ0KK+eOi+a3kembrw0KK+eOi+a3qOeRqQ0KK+eOi+iOieaxtg0KK+eOi+WCkeeriw0KK+eOi+WHseiSgg0KK+eOi+WNmuaWhw0KK+eOi+WvjOaYjA0KK+eOi+aDoOeOsg0KK+eOi+aVpuatow0KK+eOi+aZr+aziQ0KK+eOi+aZuumztA0KK+eOi+acnemNtQ0KK+eOi+eQqg0KK+eOi+e/lOWvpw0KK+eOi+iPgeiYrQ0KK+eOi+mAuOS/rg0KK+eOi+mbheS8tg0KK+eOi+mbhembrw0KK+eOi+mbrw0KK+eOi+WLpOWWhA0KK+eOi+aEm+WYiQ0KK+eOi+avk+iPgQ0KK+eOi+eRnuWQnw0KK+eOi+eRnumgpA0KK+eOi+iBlg0KK+eOi+iBluajiw0KK+eOi+ijleatow0KK+eOi+ipqeWptw0KK+eOi+mJhee/lA0KK+eOi+WYieWQmw0KK+eOi+WYiei+sg0KK+eOi+WYiem9oQ0KK+eOi+edv+WQmw0KK+eOi+e2reWmgg0KK+eOi+e/oOiPrw0KK+eOi+mKmOaihQ0KK+eOi+W+t+eakw0KK+eOi+aFp+iLsQ0KK+eOi+aFp+mdnA0KK+eOi+WEkumahg0KK+eOi+abiembrw0KK+eOi+iIiOmCpg0KK+eOi+mMpuaFpw0KK+eOi+eIteaakA0KK+eOi+ismee2rQ0KK+eOi+emruismQ0KK+eOi+eTiuePrg0KK+eOi+mfu+a3kQ0KK+eOi+m6l+iKrA0KK+eOi+m6l+mbrw0KK+eOi+iAgOaaiQ0KK+eOi+mQmOmKmA0KK+eOi+m9oeaikw0KK+eOi+i6jemclg0KK+eOi+a1n+e+jg0KK+eOi+ajqOW+tw0KK+eOi+Wrhuajuw0KK+eOi+etseiQsQ0KK+eOi+iWj+mbrw0KK+S4mOecn+e2ug0KK+WMheWurue2rQ0KK+WPpOeOiemzsw0KK+WPpOaYjuaZnw0KK+WPpOahguiPig0KK+WPpOaZuuWBiQ0KK+WPpOS/tue2ug0KK+WPsuaYjuWOnw0KK+WPsuabnOW9sA0KK+eUmOawuOijlQ0KK+eUmOmciOmclg0KK+eUsOaykOaBqQ0KK+eUsOiKs+iMuQ0KK+eUsOa3keWQmw0KK+eUsOeSp+iPgA0KK+eZveWkp+WwuQ0KK+eZveS9s+a4nQ0KK+eZveaMr+a6kA0KK+eZveWWnOaWhw0KK+eZveamruS/rg0KK+efs+S5g+Wmgg0KK+efs+iCsueOnw0KK+efs+aYjuWRqA0KK+efs+Wzu+W5sw0KK+efs+WCkeWuhw0KK+efs+mMpuiIqg0KK+S8jeS4luaPmg0KK+S8jeWutuiqvA0KK+S7u+aJjeS/ig0KK+S7u+aWsOiYrQ0KK+WQkeilv+mZvQ0KK+aIkOS4ueeOsg0KK+acseaWh+eipw0KK+acseeOieaxtg0KK+acseWmjeWmgg0KK+acseaym+aAoQ0KK+acseWul+iUmg0KK+acseadseaHiQ0KK+acseS/iuelpQ0KK+acseW7uuazsA0KK+acseePjeaFpw0KK+acsemDgeW6rQ0KK+acseWutuasow0KK+acseWzsOiqvA0KK+acseePruWEgA0KK+acseWBieWCkQ0KK+acseW6t+mKmA0KK+acseWvk+eQhg0KK+acsembhemItA0KK+acsemBlOaYjg0KK+acsemzs+iWhw0KK+acsemdnOaWhw0KK+acseiKruWunA0KK+axn+S4reWBpQ0KK+axn+aWh+eTig0KK+axn+eri+WzsA0KK+axn+WRiOmZvQ0KK+axn+engOeOsg0KK+axn+S9s+mclg0KK+axn+WNlOWLhw0KK+axn+Wul+WTsg0KK+axn+WyqemBlA0KK+axn+aYjOm0uw0KK+axn+aYjueSiw0KK+axn+aso+WuuQ0KK+axn+mVt+WjvQ0KK+axn+S/iuiIiA0KK+axn+W7uumKmA0KK+axn+aUv+WEkg0KK+axn+eOsuaFpw0KK+axn+ihjem+jQ0KK+axn+aMr+Wuhw0KK+axn+e0lOeOqw0KK+axn+WVn+S7sg0KK+axn+ebm+m+jQ0KK+axn+aZuue2rQ0KK+axn+mbheaDoA0KK+axn+WYieWAqw0KK+axn+WvrOaFiA0KK+axn+aGtumbrw0KK+axn+iVvg0KK+axn+Wqng0KK+eJn+aYlQ0KK+S9leS7geeUsA0KK+S9leS4lumbhA0KK+S9leS6meW9rA0KK+S9leWQm+iQjQ0KK+S9leiCsuadsA0KK+S9leS9s+iejQ0KK+S9leWFtua+pA0KK+S9leWto+enpg0KK+S9leWul+empw0KK+S9leaAoeWQmw0KK+S9leaYjuWulw0KK+S9leaYh+WEkg0KK+S9leenieasow0KK+S9leS/iuW7tw0KK+S9leWGoOmclg0KK+S9leW9pemnkg0KK+S9leeCs+izog0KK+S9leiLpeeRnA0KK+S9leWzu+adsA0KK+S9lee0oOWQmw0KK+S9leaVj+iPgQ0KK+S9lea2tQ0KK+S9leaDoOmIug0KK+S9lembheeQqg0KK+S9leWYieWxlQ0KK+S9lemKmOWujw0KK+S9leWtuOWOmg0KK+S9lemdnOWEgA0KK+S9leaXu+mcnA0KK+S9meW/g+i+sg0KK+S9meWQieelpQ0KK+S9meS9s+mfsw0KK+S9meWdquiKsw0KK+S9meWum+WEkg0KK+S9meaYjuWonw0KK+S9memHkeWFuA0KK+S9meS/iuWEkg0KK+S9meW9pemclg0KK+S9meebiOmLkg0KK+S9meazsOeUtw0KK+S9meWpieiQjQ0KK+S9meaDoOaWhw0KK+S9meeRnuiQjQ0KK+S9mem9iuWogQ0KK+S9meisnei8nQ0KK+WIqeengOiYrQ0KK+WQs+Wkp+e2rQ0KK+WQs+S7geS9kQ0KK+WQs+WFg+WriA0KK+WQs+aWh+eOiQ0KK+WQs+aWh+eZvA0KK+WQs+aWh+aWjA0KK+WQs+S4lumBlA0KK+WQs+W5s+WSjA0KK+WQs+awuOaYjA0KK+WQs+eOieiMuQ0KK+WQs+eri+awkQ0KK+WQs+WFhuaWhw0KK+WQs+WuiemCpg0KK+WQs+ihjOS4rQ0KK+WQs+WmmeWAqw0KK+WQs+W/l+Wujw0KK+WQs+W/l+a8og0KK+WQs+aym+aZgw0KK+WQs+engOe0iw0KK+WQs+iCsumclg0KK+WQs+S+neiTkw0KK+WQs+S9s+WNlw0KK+WQs+S9s+WuuQ0KK+WQs+S9s+iTiQ0KK+WQs+S9s+epjg0KK+WQs+S9s+m0uw0KK+WQs+S9qeePig0KK+WQs+S9qee0lA0KK+WQs+S9qeirrQ0KK+WQs+WFtumclg0KK+WQs+WdpOm0uw0KK+WQs+Wtn+Wulw0KK+WQs+Wtn+Wonw0KK+WQs+Wtn+aGsg0KK+WQs+Wul+WysQ0KK+WQs+Wul+mahg0KK+WQs+Wul+e/sA0KK+WQs+WunOiKsw0KK+WQs+WunOephg0KK+WQs+Wum+e4iA0KK+WQs+WyoeWEkg0KK+WQs+W5uOecnw0KK+WQs+W/oOmclg0KK+WQs+aAoeiQjQ0KK+WQs+aAoeaGsg0KK+WQs+aJv+eSiw0KK+WQs+aYjOW6rQ0KK+WQs+aYjg0KK+WQs+aYjuWTsg0KK+WQs+aYjumBlA0KK+WQs+aYjuabhA0KK+WQs+aYleWnvw0KK+WQs+adsemclg0KK+WQs+aso+aAoQ0KK+WQs+aso+WEkg0KK+WQs+ayu+iLsQ0KK+WQs+enieWLsw0KK+WQs+iKs+eRnA0KK+WQs+mHkeeOiQ0KK+WQs+mbqOWTsg0KK+WQs+S6reiqvA0KK+WQs+S/oei8nQ0KK+WQs+S/iuWlhw0KK+WQs+S/iuWEgA0KK+WQs+S/iue3rw0KK+WQs+S/iuirug0KK+WQs+WGoOe+pA0KK+WQs+WTgeiTiQ0KK+WQs+Wnv+WEgA0KK+WQs+Wuo+mLkg0KK+WQs+W7uuiKnQ0KK+WQs+W7uuWLsw0KK+WQs+W+i+mKmA0KK+WQs+aAneepjg0KK+WQs+aUv+W9rA0KK+WQs+aUv+epjg0KK+WQs+aYpee3qQ0KK+WQs+aYrem+jQ0KK+WQs+afj+WEgA0KK+WQs+eCq+Wulw0KK+WQs+eah+asow0KK+WQs+eni+e+jg0KK+WQs+e+jueOsg0KK+WQs+e+juaFpw0KK+WQs+iHtOmKmA0KK+WQs+iLsem0uw0KK+WQs+mHjeavhQ0KK+WQs+WOn+Wuhw0KK+WQs+WutuaYjg0KK+WQs+WutuaFpw0KK+WQs+aMr+aIkA0KK+WQs+aZj+W5sw0KK+WQs+azsOaYjA0KK+WQs+ePruemjg0KK+WQs+e0lOasow0KK+WQs+WBieiqoA0KK+WQs+Wci+WBiQ0KK+WQs+WgheeRiw0KK+WQs+Wpieathg0KK+WQs+aCoA0KK+WQs+aVj+ecnw0KK+WQs+a3keWmgg0KK+WQs+a3keaVjw0KK+WQs+a2teWunA0KK+WQs+mbquWmrg0KK+WQs+WLneelug0KK+WQs+aDoOWQmw0KK+WQs+aWr+eHuw0KK+WQs+eKgOmdiA0KK+WQs+ipoOWuuA0KK+WQs+mInuWptw0KK+WQs+mbheW1kA0KK+WQs+mbsumppQ0KK+WQs+avk+ecnw0KK+WQs+eRnuWTsg0KK+WQs+iBluWogQ0KK+WQs+m8juWBiQ0KK+WQs+WYieWLnQ0KK+WQs+Wvp+eRhA0KK+WQs+emj+mHjw0KK+WQs+iCh+mosA0KK+WQs+mKk+WPiw0KK+WQs+aFtuaWhw0KK+WQs+aFp+aVjw0KK+WQs+iznOW/oA0KK+WQs+abiemdkg0KK+WQs+abieiWhw0KK+WQs+iVmee0iw0KK+WQs+mMpumOsA0KK+WQs+mdnOiKsw0KK+WQs+e4veaIkA0KK+WQs+m0u+aYjA0KK+WQs+ixkOWQiQ0KK+WQs+mfu+WNiQ0KK+WQs+mmqOaAoQ0KK+WQs+S9vOS9vA0KK+WQs+aYtuiRsw0KK+WQs+eRi+eQsw0KK+WRguWtkOixqg0KK+WRguaWh+WwiA0KK+WRguato+WuiQ0KK+WRguiHqumBlA0KK+WRguiCsuiKsw0KK+WRguS9s+WuuQ0KK+WRguS9qee0lA0KK+WRguWul+mKmA0KK+WRguWunOmclg0KK+WRguaAoeaFpw0KK+WRguaYjuazsA0KK+WRguiKs+S/ig0KK+WRguS/neWyuA0KK+WRguWNl+eVvw0KK+WRguW7uumLkg0KK+WRguaYreWEgA0KK+WRgueni+mbsg0KK+WRguiLseeRiw0KK+WRguagvOixqg0KK+WRguWci+WfuQ0KK+WRgua3keWNvw0KK+WRgue0ueamrg0KK+WRguipoOecnw0KK+WRgumbr+athg0KK+WRguWYieWFgw0KK+WRgumKmOaZug0KK+WRguWtuOWPoQ0KK+WRgumdnOiTiQ0KK+WRguW7s+WatA0KK+Wui+W/g+aFpw0KK+Wui+S8r+eRnA0KK+Wui+S9qeePig0KK+Wui+aYjOmclg0KK+Wui+WlleWEkg0KK+Wui+emueeRqQ0KK+Wui+iIq+iHow0KK+Wui+WWrOeOiQ0KK+Wui+eip+eQsw0KK+Wui+erhA0KK+W3q+aIjuaAoQ0KK+W3q+aYjue/sA0KK+W3q+aMr+WYiQ0KK+W3q+WYieiIiA0KK+adjuS5g+aWhw0KK+adjuS4reS7uw0KK+adjuS7geWHsQ0KK+adjuWFg+ijlQ0KK+adjuW/g+S7gQ0KK+adjuaWh+W/lw0KK+adjuaWh+aDoA0KK+adjuaWh+mBlA0KK+adjuaciOaYnw0KK+adjuS4luWvrA0KK+adjuW3p+eQsw0KK+adjuato+W9pQ0KK+adjuawuOaYjA0KK+adjueOieWNvw0KK+adjueri+S7gQ0KK+adjuS7sueOhA0KK+adjuWFhuaWjA0KK+adjuWmguePjQ0KK+adjuWuieeQsw0KK+adjue+vQ0KK+adjuWQm+W9pQ0KK+adjuWuj+aWhw0KK+adjuW/l+aIkA0KK+adjuW/l+WBiQ0KK+adjuaym+adsA0KK+adjuengOeOsg0KK+adjuengOiYhQ0KK+adjuiCsueRqQ0KK+adjuS6nuWAqw0KK+adjuS+neaBgg0KK+adjuS9s+iKsw0KK+adjuS9s+ePjQ0KK+adjuS9s+aZgw0KK+adjuS9s+mbrw0KK+adjuS9s+WEkg0KK+adjuS9s+mclg0KK+adjuS9s+iTgQ0KK+adjuS9qeiKnQ0KK+adjuS9qeeOsg0KK+adjuS9qeWEgA0KK+adjuS9qeWsrA0KK+adjuWHveiKrA0KK+adjuWdpOa6kA0KK+adjuWlh+e/sA0KK+adjuWtn+WTsg0KK+adjuWtn+epjg0KK+adjuWul+WdpA0KK+adjuWul+e+qQ0KK+adjuWul+epjg0KK+adjuWul+m0uw0KK+adjuWunOa0sg0KK+adjuWunOWzuw0KK+adjuWunOaoug0KK+adjuWum+eOsg0KK+adjuWwmuizog0KK+adjuWys+WzsA0KK+adjuW5uOWonw0KK+adjuW/oOepjg0KK+adjuaAoeeOsg0KK+adjuaAoeaFpw0KK+adjuaAoeaXuw0KK+adjuaYk+S/rg0KK+adjuaYhuWujw0KK+adjuaYjuWIqQ0KK+adjuaYjuW9pQ0KK+adjuaYjumHlw0KK+adjuaYjuWLsw0KK+adjuaYjumcng0KK+adjuaYh+e/sA0KK+adjuadsem+jQ0KK+adjuaso+aAoQ0KK+adjuaso+mBlA0KK+adjuazlea8og0KK+adjueOpeeRqQ0KK+adjuiKs+Wcuw0KK+adjuiKnee2vg0KK+adjumHkemItA0KK+adjumVt+amrg0KK+adjumdkumZvQ0KK+adjuS/oeW+tw0KK+adjuS/iuWujw0KK+adjuS/iuW9pQ0KK+adjuS/iuW+tw0KK+adjuS/iuizog0KK+adjuS/nuaFpw0KK+adjuWGoOeRqQ0KK+adjuWNl+WsjA0KK+adjuWnv+WEgA0KK+adjuWogeW+tw0KK+adjuW7uuawkQ0KK+adjuW7uuaYjg0KK+adjuW7uuizog0KK+adjuW7uuiIiA0KK+adjuW9peWunA0KK+adjuW9pemclg0KK+adjuaAneiQsQ0KK+adjuaAneirrQ0KK+adjuaUv+WTsg0KK+adjuaUv+m+jQ0KK+adjuaYree+jg0KK+adjuaYseaYpQ0KK+adjuafj+iTiQ0KK+adjuePiuePig0KK+adjuebiOa9lA0KK+adjueni+aihQ0KK+adjue+jueOiQ0KK+adjue+juWEgA0KK+adjuiDpOeRpA0KK+adjuiLseW/lw0KK+adjuiynuWunA0KK+adjumDgeWBiQ0KK+adjuWAqQ0KK+adjuWTsue3rw0KK+adjuWutuixqg0KK+adjuWuueWptw0KK+adjuaMr+aYjA0KK+adjuaZieixqg0KK+adjuazsOmclg0KK+adjuePrueQsw0KK+adjuelluePjQ0KK+adjuiok+WEhA0KK+adjuWBieaEtw0KK+adjuWBpea6kA0KK+adjuWci+W8tw0KK+adjuWci+e2rQ0KK+adjuWfuuW8mA0KK+adjuWpieeRng0KK+adjuW6t+atow0KK+adjuaVj+WQiQ0KK+adjua4heWQnw0KK+adjua3keiyng0KK+adjua3keiPrw0KK+adjuelpeeRng0KK+adjumAo+WzsA0KK+adjuWHsealqA0KK+adjuaDoOiKrA0KK+adjuaDoOmbrw0KK+adjuaZuuW8tw0KK+adjua5mOaoug0KK+adjuipoOeniw0KK+adjumAsuemjw0KK+adjumbheeOsg0KK+adjumbheaDoA0KK+adjumbheeHlQ0KK+adjuaEj+mbrw0KK+adjuavk+ecnw0KK+adjueRnuiPrw0KK+adjuiBlueQsA0KK+adjumBk+aelw0KK+adjuWYieWHjA0KK+adjuWYiem0uw0KK+adjuamrummsw0KK+adjuemj+iTiQ0KK+adjue2realqA0KK+adjumKmOavkw0KK+adjuW7o+elgQ0KK+adjuaFtuiPrw0KK+adjuaFp+ePoA0KK+adjuizoua3pg0KK+adjuabieWmrg0KK+adjuabieiPgQ0KK+adjueSn+mDgQ0KK+adjuiVmeWmgg0KK+adjumMpuaYhw0KK+adjumdnOaAoQ0KK+adjum+jeeUnw0KK+adjuiBsOWysw0KK+adjum0u+mBlA0KK+adjumOlOmYoQ0KK+adjum6l+ePoA0KK+adjummqOaAoQ0KK+adjuWKrei7jQ0KK+adjuiLueaFiA0KK+adjue1nA0KK+adjumIuumbrw0KK+adjuaBkuWQmw0KK+adnOW/l+izog0KK+adnOWum+irrQ0KK+adnOiKs+aUvw0KK+adnOW9pemclg0KK+adnOePruipqQ0KK+adnOmZveWckw0KK+adnOeHleiPrw0KK+ayiOWjq+WCkQ0KK+ayiOato+W+tw0KK+ayiOS9kee/sA0KK+ayiOW/l+m+jQ0KK+ayiOS9s+aFpw0KK+ayiOWul+aFtg0KK+ayiOaYjOaYjg0KK+ayiOenieiqvA0KK+ayiOWGoOWujw0KK+ayiOW7uuW+tw0KK+ayiOafj+WvrA0KK+ayiOmDgeW6tw0KK+ayiOebiuaJvw0KK+ayiOaZqOmQmA0KK+ayiOiIkueQsw0KK+ayiOeRnuasvQ0KK+ayiOe2reavkw0KK+ayiOiVmeWQmw0KK+ayiOetsembsg0KK+axquengOeHlQ0KK+axqumdkuiTiQ0KK+axquWutueRqQ0KK+axqumdluWciw0KK+iwt+azk+mBkw0KK+i+m+WlleaIkA0KK+mCouiDveaWhw0KK+mYruS/oeaGsg0KK+mYruaWkOeRnA0KK+mYrum1rOeiqQ0KK+WNk+W/l+W/oA0KK+WNk+iKs+Wmgg0KK+WNk+iLseWTsg0KK+WNk+a3keWqmw0KK+WNk+iqjOmahg0KK+WRqOWjq+WCkQ0KK+WRqOS4reiIiA0KK+WRqOaWh+mbhQ0KK+WRqOS7o+WwiQ0KK+WRqOeOieiTrg0KK+WRqOWQiem+jQ0KK+WRqOS9keemjg0KK+WRqOWtneiKsw0KK+WRqOW/l+a4hQ0KK+WRqOengOaZjw0KK+WRqOS6nuasow0KK+WRqOS9qeWunA0KK+WRqOWlh+iTiQ0KK+WRqOWunOiKsw0KK+WRqOaAoeS8tg0KK+WRqOaYjuW8mA0KK+WRqOadsA0KK+WRqOeOn+iQsQ0KK+WRqOmHkeeHlQ0KK+WRqOS/iuixqg0KK+WRqOWogeWRiA0KK+WRqOW9peWykQ0KK+WRqOafj+eUqw0KK+WRqOeni+iQjQ0KK+WRqOmDgeaWhw0KK+WRqOWon+Wmgg0KK+WRqOaMr+WHsQ0KK+WRqOePruWmgg0KK+WRqOWBieiMuQ0KK+WRqOaVj+mIug0KK+WRqOaDoOiTrg0KK+WRqOipoOiokw0KK+WRqOmbsuajoA0KK+WRqOeFjOiAvw0KK+WRqOijleixkA0KK+WRqOWYieaFtg0KK+WRqOe/oOiKrA0KK+WRqOizouW+tw0KK+WRqOeHleebiA0KK+WRqOiBsOWuhw0KK+WRqOiYreiKsw0KK+WRqOmIuue/lA0KK+Wto+iCsua+pA0KK+WumOiKs+Wmgg0KK+WwmuabuA0KK+aWvOWutuePjQ0KK+aYjOWtn+e/sA0KK+ael+S4iuW/lw0KK+ael+S6juemjg0KK+ael+Wjq+WKmw0KK+ael+Wjq+WCkQ0KK+ael+Wjq+i+sg0KK+ael+Wls+a7vw0KK+ael+WtkOWCkQ0KK+ael+WtkOWLpA0KK+ael+Wwj+eQqg0KK+ael+S5i+iPgQ0KK+ael+S7i+S4gA0KK+ael+WkqeawkQ0KK+ael+aWh+S4rQ0KK+ael+aWh+Wwhw0KK+ael+aWh+aWrw0KK+ael+aWh+W+tw0KK+ael+acqOiIiA0KK+ael+S4luiKsw0KK+ael+S4lua3hw0KK+ael+S4u+aBqQ0KK+ael+WPr+mIng0KK+ael+W5s+iLkQ0KK+ael+ato+S4gA0KK+ael+ato+WBiQ0KK+ael+awuOaYjA0KK+ael+awuOelpQ0KK+ael+awuOaZnw0KK+ael+eOieeOsg0KK+ael+eOieiPgQ0KK+ael+efs+mahg0KK+ael+eri+WBiQ0KK+ael+S7sOacmw0KK+ael+WQjuWUrw0KK+ael+WuiOW+tw0KK+ael+eZvuaPmg0KK+ael+S9keePig0KK+ael+S8r+Wysw0KK+ael+S8tuiyng0KK+ael+WRiOS7uw0KK+ael+WQm+e/sA0KK+ael+WmmeWQmw0KK+ael+WtneWFqA0KK+ael+Wuj+mfiw0KK+ael+Wuj+WEkg0KK+ael+W7t+WQiQ0KK+ael+W/l+aIkA0KK+ael+W/l+adsA0KK+ael+W/l+eahw0KK+ael+W/l+WghQ0KK+ael+W/l+ixqg0KK+ael+W/l+epjg0KK+ael+W/l+m0uw0KK+ael+adkOS/ig0KK+ael+eBvOm+jQ0KK+ael+engOeOsg0KK+ael+engOecnw0KK+ael+engOepjg0KK+ael+iCsuawkQ0KK+ael+iCsuWQjQ0KK+ael+iCsuWujw0KK+ael+iCsumAsg0KK+ael+iCsuaFpw0KK+ael+iCsum6nw0KK+ael+iwt+WzsA0KK+ael+S6q+eHgQ0KK+ael+S9s+eUnw0KK+ael+S9s+aAoQ0KK+ael+S9s+ebiA0KK+ael+S9s+e2ug0KK+ael+S9s+aFtg0KK+ael+S9s+a9lA0KK+ael+S9s+aoug0KK+ael+S9s+m0uw0KK+ael+S9qeaAoQ0KK+ael+S9qembrw0KK+ael+S9qeaFpw0KK+ael+S+kemdkg0KK+ael+WNlOadkQ0KK+ael+WdpOmfiw0KK+ael+Wlh+aooQ0KK+ael+Wtn+iQsQ0KK+ael+Wtn+epjg0KK+ael+Wto+eHgQ0KK+ael+Wul+aFtg0KK+ael+Wul+a+pA0KK+ael+WunOWQmw0KK+ael+WunOiBlg0KK+ael+WunOaoug0KK+ael+WunOiTgQ0KK+ael+Wum+aoug0KK+ael+WyseiTiQ0KK+ael+W5uOiTiQ0KK+ael+W/oOWysw0KK+ael+aAoeaxnQ0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWdhw0KK+ael+aAoeiKsw0KK+ael+aAoeiQsQ0KK+ael+aAoeekvQ0KK+ael+aWvOWmrg0KK+ael+aYjOizog0KK+ael+aYjueUnw0KK+ael+aYjuadsA0KK+ael+aYjualkw0KK+ael+aYjuavhQ0KK+ael+aYjueSsA0KK+ael+aYh+m+jQ0KK+ael+adsOasow0KK+ael+aso+aAoQ0KK+ael+aso+aFiA0KK+ael+aso+avhQ0KK+ael+aso+m6lw0KK+ael+eJp+WPsA0KK+ael+eOq+WQmw0KK+ael+enieeRqQ0KK+ael+iKs+Wmgg0KK+ael+iKs+WEgA0KK+ael+iKrOiKsw0KK+ael+mHkeS7lQ0KK+ael+mHkem+jQ0KK+ael+mdkuW/lw0KK+ael+S6ruS7gQ0KK+ael+S/oeWujw0KK+ael+S/neaIkA0KK+ael+S/iuS9kQ0KK+ael+S/iuWujw0KK+ael+S/iueUtw0KK+ael+S/iumAuA0KK+ael+S/iumtgQ0KK+ael+S/kOS6rQ0KK+ael+WGoOWQnw0KK+ael+WGoOWEkg0KK+ael+WTgeWunA0KK+ael+WlleengA0KK+ael+Wnv+WQvg0KK+ael+WogeWQjQ0KK+ael+WogeiJrw0KK+ael+W7uuS4gA0KK+ael+W7uuWQvg0KK+ael+W7uuW7tw0KK+ael+W7uuiJrw0KK+ael+W7uuiPrw0KK+ael+W9peaWhw0KK+ael+W9peS8tg0KK+ael+W9peeUqw0KK+ael+W9peiIiA0KK+ael+aBhueiqQ0KK+ael+aUv+iJrw0KK+ael+aUv+WEgA0KK+ael+aYpeW5tA0KK+ael+aYreW/lw0KK+ael+aYn+aZqA0KK+ael+afkeadjw0KK+ael+afj+adkQ0KK+ael+afj+e/sA0KK+ael+eCuuaWhw0KK+ael+eOsuiHsw0KK+ael+ebiOWQmw0KK+ael+eliOWdhw0KK+ael+eni+aDoA0KK+ael+e+juWmgg0KK+ael+e+juWQnw0KK+ael+e+jueOsg0KK+ael+e+juiPrw0KK+ael+iHtOWQmw0KK+ael+iLseeUtw0KK+ael+iZueWmgg0KK+ael+iynuW7tg0KK+ael+mDgeaVjw0KK+ael+mDgeiYrQ0KK+ael+mfi+WYiQ0KK+ael+WAqeWmgg0KK+ael+WOn+WQiA0KK+ael+WTsuWujw0KK+ael+Won+Wmgg0KK+ael+WutueUnw0KK+ael+WutuWLhw0KK+ael+WutuiBlg0KK+ael+WutuaFtg0KK+ael+WuueS7nw0KK+ael+Wzu+aaiQ0KK+ael+W6reeRiw0KK+ael+aMr+a1qQ0KK+ael+aZieWFqA0KK+ael+aZj+eomg0KK+ael+abuOaltw0KK+ael+ahguePoA0KK+ael+azsOe2rQ0KK+ael+ePruWmgg0KK+ael+ebiuW8mA0KK+ael+elkOemvg0KK+ael+eqiOaEjw0KK+ael+e0oOiPrw0KK+ael+iAmOW+tw0KK+ael+i1t+e/jg0KK+ael+WBieawkQ0KK+ael+WBieW+tw0KK+ael+Wci+asow0KK+ael+WfueWgrw0KK+ael+WpieeRnA0KK+ael+W6t+Wvpw0KK+ael+aVj+ijlQ0KK+ael+a4hembsg0KK+ael+a3keeOsg0KK+ael+a3keWopQ0KK+ael+a3keiQjQ0KK+ael+a3keWEgA0KK+ael+ebm+WCkQ0KK+ael+mbquiQjQ0KK+ael+WNmumahg0KK+ael+aDoOaWhw0KK+ael+aDoOaVjw0KK+ael+aDoOeQhw0KK+ael+aZuuiDvQ0KK+ael+acnw0KK+ael+a5mOaDoA0KK+ael+e0q+iPgQ0KK+ael+imluWwig0KK+ael+mAuOaYgA0KK+ael+mAuOWEkg0KK+ael+mbheWQmw0KK+ael+mbheWAqw0KK+ael+mbheaDoA0KK+ael+mbheiPrw0KK+ael+mbheismQ0KK+ael+mghuWuiQ0KK+ael+W1qeWxsQ0KK+ael+aVrOaWhw0KK+ael+aWsOWHoQ0KK+ael+aloOajiw0KK+ael+avk+i2hQ0KK+ael+eFjOi7kg0KK+ael+eRnuWutg0KK+ael+eRnuiYrQ0KK+ael+eluuWLmw0KK+ael+e+qeWCkQ0KK+ael+e+pOWzsA0KK+ael+iBluaBqQ0KK+ael+iBlumIng0KK+ael+ijleWghQ0KK+ael+ipqeWHoQ0KK+ael+ipqembrw0KK+ael+mbjee/lA0KK+ael+m8juakjQ0KK+ael+WYieePjQ0KK+ael+WYiee+pA0KK+ael+amruasvQ0KK+ael+edv+aamA0KK+ael+eyvua5mw0KK+ael+e/oOiQjQ0KK+ael+mKmOeFjA0KK+ael+m9iuiUmg0KK+ael+W7o+e+qQ0KK+ael+aFp+WQmw0KK+ael+aFp+e+jg0KK+ael+aFp+iQjQ0KK+ael+aFp+m6lw0KK+ael+eRvuiYrQ0KK+ael+izouW+lw0KK+ael+WtuOmahg0KK+ael+abieWQmw0KK+ael+abieiPrw0KK+ael+a+pOe+qQ0KK+ael+epjg0KK+ael+iIiOmHlw0KK+ael+mMpumahg0KK+ael+mdnOWunA0KK+ael+mdnOiKrA0KK+ael+aHi+W3ng0KK+ael+mnv+mAuA0KK+ael+m0u+mBlA0KK+ael+ixkOiInA0KK+ael+m6l+WQmw0KK+ael+m6l+iPrw0KK+ael+e5vOW5sw0KK+ael+W3jem+jQ0KK+ael+iKiuS6qA0KK+ael+WnneWdhw0KK+ael+WArOS4lg0KK+ael+eQrumWlA0KK+ael+eFkum0uw0KK+ael+etseiPgQ0KK+ael+mIuuWHsQ0KK+ael+mppw0KK+elgee+qeWciw0KK+WIneiLpeWHoQ0KK+mCteWllemIng0KK+mCteaHt+W+tw0KK+mCseWNg+e2ug0KK+mCseWtkOalkw0KK+mCseWkqeWujw0KK+mCseaWh+m0uw0KK+mCseW5vOWqmg0KK+mCseeOieeOsg0KK+mCseWuieWPsA0KK+mCseW/l+WFiQ0KK+mCseengOiLsQ0KK+mCseS9s+advg0KK+mCseW7tum9oQ0KK+mCseaYjOijlQ0KK+mCseazk+W9sA0KK+mCseS/oeebig0KK+mCseS/iuamrg0KK+mCseWTgeiPrw0KK+mCseWlleedvw0KK+mCseW7uuiqoA0KK+mCseaUv+a5pw0KK+mCseafj+eRnA0KK+mCseebiOajoA0KK+mCseiHtOepjg0KK+mCsemHjeaGsg0KK+mCseaMr+WzsA0KK+mCseePrue2ug0KK+mCseWci+aBrQ0KK+mCseWpieWshQ0KK+mCsea4hem+jQ0KK+mCsea3keaFpw0KK+mCseWJteWEiQ0KK+mCseaDoOipqQ0KK+mCsea5mOmbsg0KK+mCsembheiKrA0KK+mCsembheiMnA0KK+mCseavk+eOsg0KK+mCseebn+eQhw0KK+mCseipqeeQgQ0KK+mCseWYieaFpw0KK+mCsemftueRqQ0KK+mCseaFp+Wptw0KK+mCsemdnOWunA0KK+mCseixkOelpQ0KK+mCsemfu+Wvpw0KK+mCsee5vOeRqQ0KK+mCsemhr+ahkw0KK+mCseeQrOa3kQ0KK+mCsemIuuaWkA0KK+mHkeaYjui8nQ0KK+mHkeWLpA0KK+S+r+aWh+WTsg0KK+S+r+Wuj+aYjA0KK+S+r+Wys+Wujw0KK+S+r+S/oeWuhw0KK+S+r+afj+mdkg0KK+S+r+a3temKmA0KK+S+r+mbhembrw0KK+S+r+mdnOaxnQ0KK+S/nuS9s+WHoQ0KK+S/nuiKiuiWiA0KK+WnnOWuj+amrg0KK+WnnOiKneaAoQ0KK+WnnOWHseWCkQ0KK+WnnOWinueCqw0KK+WnnOaXu+WnjQ0KK+Wnmueri+S4iQ0KK+WnmuS9s+aFpw0KK+WnmuWogeWuhw0KK+WnmuWHseaWhw0KK+WnmuW+t+m6nw0KK+W+i+aMr+aPmg0KK+aWveWPr+mahg0KK+aWveWuh+mnvw0KK+aWveWtneW+tw0KK+aWveiCsueRnA0KK+aWveS9qeiPrw0KK+aWveWum+ebtA0KK+aWveaYjuWmjQ0KK+aWveS/iuWQjQ0KK+aWveW7uuWuhw0KK+aWveafj+Wmgg0KK+aWvemDgeiVmQ0KK+aWveaVj+eUtw0KK+aWveWNmuWFgw0KK+aWveaZuuWLhw0KK+aWvembheWonw0KK+aWveWYieeQqg0KK+aWveaFp+WQmw0KK+aWvemdnOaAoQ0KK+aWveeRi+eRnA0KK+afr+aWh+elpQ0KK+afr+WFqOebig0KK+afr+W/l+aYjg0KK+afr+S9qeWQmw0KK+afr+Wum+WQmw0KK+afr+aso+WEgA0KK+afr+S/iumahg0KK+afr+ebiOWmgg0KK+afr+aVj+ebmw0KK+afr+WNmuWFgw0KK+afr+aji+ajow0KK+afr+avk+iQjQ0KK+afr+mzs+WEgA0KK+afr+eTiumOow0KK+afs+S9qeWQmw0KK+afs+aji+WFgw0KK+auteaYjuWujw0KK+a0quWKm+WjuQ0KK+a0quWjq+iCsg0KK+a0quWtkOWptw0KK+a0quaWh+aYjg0KK+a0quS4luWYiQ0KK+a0quawuOaYjA0KK+a0queOieiSqA0KK+a0quWQjeihoQ0KK+a0quWQm+elpQ0KK+a0quW/l+aYjg0KK+a0quadkemKmA0KK+a0quiJr+asow0KK+a0quWdpOmMoQ0KK+a0quWunOiJrw0KK+a0quaAoeecnw0KK+a0quaYjum+jQ0KK+a0quS/iumbhA0KK+a0quaUv+mciA0KK+a0que+juiQjQ0KK+a0qumHjeWNvw0KK+a0quaMr+ebig0KK+a0quePruiKsw0KK+a0quWBieWTsg0KK+a0quabvOePig0KK+a0quWci+e/lA0KK+a0quWpiee0iw0KK+a0quW+oeW9lw0KK+a0qua4heWBpQ0KK+a0qua3kea3qQ0KK+a0qumbquiKsw0KK+a0quaDoOajiw0KK+a0quiPgemahg0KK+a0qumbheiLkw0KK+a0quaFiOS8tg0KK+a0queFjOWHsQ0KK+a0queRnum0uw0KK+a0quiQsemLkg0KK+a0qumdluWHsQ0KK+a0quWYieiTrg0KK+a0quamrui8nQ0KK+a0que2ug0KK+a0quiCh+W9pQ0KK+a0qumKmOmNvg0KK+a0quaFtumKmA0KK+a0queRqeePjQ0KK+a0qumdnOaAoQ0KK+a0quiXneiPgQ0KK+a0que5vOizog0KK+a0quaZouaDhw0KK+a0qumIuuaruw0KK+e0gOaWh+asvQ0KK+e0gOW/l+mclg0KK+e0gOaAoeWptw0KK+e0gOebiOW3ng0KK+e0gOWNmuaVjw0KK+e0gOmghuiIiA0KK+e0gOiYrea9lA0KK+iDoeaWh+eRnA0KK+iDoeeOieaFpw0KK+iDoeW7t+WogQ0KK+iDoeWumuWuhw0KK+iDoeiKs+aFiA0KK+iDoeeOsuWpiQ0KK+iDoeWutuamrg0KK+iDoee0lOiPgQ0KK+iDoea3keWQmw0KK+iDoeWNmuehrw0KK+iDoeaZuumKmA0KK+iDoembheaZug0KK+iDoeeRnua0mQ0KK+iDoeeip+WqnA0KK+iDoemdnOiLkQ0KK+iDoeaHv+W/gw0KK+iMg+aWh+aUvw0KK+iMg+WQieaFtg0KK+iMg+aYjuS4rQ0KK+iMg+WnnOaFp+aAoQ0KK+iMg+WutuiqoA0KK+iMg+iAlemtgQ0KK+iMg+WNmuW9sA0KK+iMg+aZuuasvQ0KK+iMg+eRnuelpQ0KK+iMg+e2seizog0KK+iMg+iAgOiBsA0KK+ioiOerueWuhw0KK+mfi+ahguS7gQ0KK+WAquWogemBoA0KK+WAqueRnuacnw0KK+WHjOaYjuW+tw0KK+WUkOWNg+aDoA0KK+WUkOmCpuazsA0KK+WUkOiLseWonA0KK+WUkOa3keiKrA0KK+WUkOe+qeWgrw0KK+WUkOitveeOqw0KK+Wkj+aYpemmmQ0KK+Wkj+aFp+m9oQ0KK+Wtq+WFg+S/ig0KK+Wtq+awuOS/oQ0KK+Wtq+S8r+S4rQ0KK+Wtq+WNlOijlQ0KK+Wtq+W7uuW0tA0KK+Wtq+aMr+a2vA0KK+Wtq+Wci+abuA0KK+Wtq+a3keiKrA0KK+Wtq+WCs+WHsQ0KK+Wtq+mBk+mahg0KK+Wtq+ixquW/lw0KK+Wtq+WtuOWEgA0KK+Wtq+eRgA0KK+W+kOS5meWPrw0KK+W+kOWjq+WLmw0KK+W+kOS7geS5vg0KK+W+kOaWh+ebig0KK+W+kOS7leazkw0KK+W+kOawuOWFiQ0KK+W+kOeri+mBlA0KK+W+kOWmguaYhw0KK+W+kOWFi+mIng0KK+W+kOW/l+WBiQ0KK+W+kOiCsuaFiA0KK+W+kOS9qemMpg0KK+W+kOaYhue+vw0KK+W+kOadvum0uw0KK+W+kOS/oeS4rQ0KK+W+kOaAnee2rQ0KK+W+kOe+juiPrw0KK+W+kOWutualtw0KK+W+kOa1muWCkQ0KK+W+kOWBieWzuw0KK+W+kOWci+WAqw0KK+W+kOWpieWEgA0KK+W+kOaVj+iKsw0KK+W+kOa3keWonw0KK+W+kOiOieecnw0KK+W+kOaOjOeRmw0KK+W+kOipoOWqmw0KK+W+kOmghuWujw0KK+W+kOeRnuaBrQ0KK+W+kOijleW9rA0KK+W+kOWYieWujw0KK+W+kOWkoum6nw0KK+W+kOe2reaPmg0KK+W+kOmKmOismQ0KK+W+kOaFp+W/gw0KK+W+kOmch+adsQ0KK+W+kOm0u+S7gQ0KK+W+kOe5vOaUvw0KK+W+kOiPoeempw0KK+W+kOmIuue2vg0KK+aftOWtuOiInA0KK+aut+iCh+mZvQ0KK+elluabiemzsw0KK+enpuaik+mKmA0KK+e/geS6jueQqg0KK+e/geaWh+iMuQ0KK+e/geS7suizog0KK+e/geiCsueolA0KK+e/geaYjuWuiQ0KK+e/geafj+iBlg0KK+e/geePruaAoQ0KK+e/geW0h+W6rQ0KK+e/gea3keiPrw0KK+e/gemAuOi7kg0KK+e/gee+qeWulw0KK+e/geWkouWQmw0KK+e/gemKmOmBnA0KK+e/gemdnOeRnA0KK+e/gemdmuaZjw0KK+iigeWmguWyoQ0KK+iigeWBieWAqw0KK+iigeamrueHpg0KK+mmrOS4gOaWhw0KK+mmrOeOieWonw0KK+mmrOS9s+S8tg0KK+mmrOiLseWCkQ0KK+mmrOaZuuWQmw0KK+mmrOe3kuW3nQ0KK+mrmOS4gOmKmA0KK+mrmOWwj+aWhw0KK+mrmOS4luaYjA0KK+mrmOato+Wciw0KK+mrmOS8iuS/ig0KK+mrmOWuj+mKmA0KK+mrmOengOmItA0KK+mrmOWmrueRiw0KK+mrmOaYjg0KK+mrmOWSuOWvpg0KK+mrmOe+juiKsw0KK+mrmOWzsA0KK+mrmOWBpQ0KK+mrmOWfueecnw0KK+mrmOaVj+WoiQ0KK+mrmOesmei8lA0KK+mrmOeQquiIkg0KK+mrmOmbheiFuQ0KK+mrmOeFp+mWlA0KK+mrmOipqeWoiQ0KK+mrmOW9sOmahg0KK+mrmOe/oOe/jg0KK+mrmOmKmOeQhw0KK+mrmOaFp+iQjQ0KK+mrmOitnOWAqw0KK+mrmOaWjOmRqw0KK+WVhuW8mOaYkw0KK+W0lOWAqeiLkw0KK+W6t+S5g+aciA0KK+W6t+aUuOiPrw0KK+W6t+e+jueOsg0KK+W6t+WCkeawkQ0KK+W6t+mbheWptw0KK+W6t+abieiVmQ0KK+W8teS4gOm0uw0KK+W8teWKm+Wkqw0KK+W8teWNg+mHjA0KK+W8teWwj+iQjQ0KK+W8teS7geadsA0KK+W8teWFg+mahg0KK+W8teWkqemzsw0KK+W8teW/g+eRnA0KK+W8teaWh+W9pQ0KK+W8teaWh+asvQ0KK+W8teaWh+ixqg0KK+W8teaWh+mosA0KK+W8teS4luaYjg0KK+W8teS4luWEkg0KK+W8teS7leiCsg0KK+W8teWPr+asow0KK+W8teW8mOazsA0KK+W8teato+W/oA0KK+W8teato+ihmw0KK+W8teawuOS/ig0KK+W8teeOhOm0uw0KK+W8teeOieeQqg0KK+W8teeri+aWhw0KK+W8teS6puWvpw0KK+W8teWFieS7gQ0KK+W8teWMoeadsA0KK+W8teWmgueRqQ0KK+W8teaXreWulw0KK+W8teiHs+edvw0KK+W8teS9kee+pA0KK+W8teWFi+WBiQ0KK+W8teWmmeaFpw0KK+W8teWuj+eRng0KK+W8teW/lw0KK+W8teW/l+aYjg0KK+W8teW/l+elpQ0KK+W8teW/l+mBlA0KK+W8teW/l+ixqg0KK+W8teayheeSvQ0KK+W8teengOeQqg0KK+W8teiCsuW0pw0KK+W8teiCsuiqoA0KK+W8teiCsueRiw0KK+W8teS6numKnA0KK+W8teS9s+aDoA0KK+W8teS9qeeRmw0KK+W8teWtn+Wptw0KK+W8teWunOaWsA0KK+W8teW/teaFiA0KK+W8teaYhueFjA0KK+W8teaYjueFpw0KK+W8teael+iKrA0KK+W8teayu+Wciw0KK+W8teiKneWPiw0KK+W8temHkemzsw0KK+W8teS/iuWBiQ0KK+W8teWGoOiPrw0KK+W8teW7uuixqg0KK+W8teaBhueRiw0KK+W8teaflOaYjg0KK+W8teeVjOiBsA0KK+W8tee0gOWQmw0KK+W8tee+jumbrw0KK+W8teiMgumGkg0KK+W8temmmeeSvQ0KK+W8teWAq+eRiw0KK+W8teWTsuWBpQ0KK+W8teWTsue2rQ0KK+W8teWutuaMrw0KK+W8teWutuiPsQ0KK+W8teWutue+pA0KK+W8teWutue2ug0KK+W8teWutuixqg0KK+W8teWutumKmA0KK+W8teWutueRiw0KK+W8teWzu+WYiQ0KK+W8teW6rea6kA0KK+W8teaMr+a6kA0KK+W8teaZieixqg0KK+W8teabuOe2rQ0KK+W8teabuOmmqA0KK+W8teahgumzsw0KK+W8teePruaAoQ0KK+W8teebiue2rQ0KK+W8teenpuiKuA0KK+W8tee0lOebig0KK+W8teiAv+W0mg0KK+W8temrmOeRng0KK+W8teWBpeiJrw0KK+W8teWci+Wqmw0KK+W8teWpieaahA0KK+W8teaDn+aNtw0KK+W8teaiheWQmw0KK+W8tea4heWHsQ0KK+W8tea3keePjQ0KK+W8tea3keiMuQ0KK+W8tea3kembhQ0KK+W8tea3teWvjA0KK+W8teiOieiMuQ0KK+W8teWHseWuhw0KK+W8teWHseeQsw0KK+W8teWLneWCkQ0KK+W8teWNmuWLmw0KK+W8teWWrOe/lA0KK+W8teWvjOa3sw0KK+W8teaDoOWonw0KK+W8teaDoOiPgQ0KK+W8teaVpue+qQ0KK+W8teaZr+a4vg0KK+W8teaZuua4hQ0KK+W8teaZuue/lA0KK+W8teaZuuismQ0KK+W8tea5mOaAoQ0KK+W8teeZu+e/lA0KK+W8tee0q+mItA0KK+W8teiInOiPrw0KK+W8teiovOiNgw0KK+W8temAuOe+pA0KK+W8temInuiyvQ0KK+W8tembheWnjQ0KK+W8tembheaVjw0KK+W8tembheWptw0KK+W8tembheaDoA0KK+W8tembheeQtA0KK+W8tembhemItA0KK+W8tembr+WEgA0KK+W8teWXo+aWhw0KK+W8teaWsOWujw0KK+W8teavk+WAqw0KK+W8teeRmuePig0KK+W8teeRnuiKuA0KK+W8teeRnuawtg0KK+W8teeluuaYhw0KK+W8teiBluiOiQ0KK+W8teipqeaAoQ0KK+W8temdluaAoQ0KK+W8teWYieatow0KK+W8teWYieiKrA0KK+W8teWYieaZiQ0KK+W8teWYieaDoA0KK+W8teWYieiBsg0KK+W8teamleWuuQ0KK+W8teedv+epjg0KK+W8teeiqeahkw0KK+W8tee2teiKsw0KK+W8tee2reWTsg0KK+W8tee/oOaWhw0KK+W8teiTk+iQsQ0KK+W8temKmOWulw0KK+W8temzs+W5sw0KK+W8teaFtuaAoQ0KK+W8teaFp+Wonw0KK+W8teeRqeePig0KK+W8teaGtuWQmw0KK+W8teabieiPgQ0KK+W8tee/sOaWhw0KK+W8temdnOWmgg0KK+W8teeSsOS8ig0KK+W8tem0u+aZug0KK+W8teewoeaso+iPrw0KK+W8teixkOeSuA0KK+W8teeTiuaWhw0KK+W8teiXnemmqA0KK+W8teWvtuS6kQ0KK+W8teiAgOS6kQ0KK+W8teiAgOiBsg0KK+W8temmqOaWhw0KK+W8teW3jeiAgA0KK+W8teiKgw0KK+W8teeQh+mWlA0KK+W8teeQrOiPgQ0KK+W8teeRi+iKuA0KK+W8teetsembrw0KK+W8teemleWAqw0KK+W8teaBkuS4rQ0KK+abueWjq+aVjw0KK+abueiBv+eUtw0KK+abueaYjOeUtw0KK+abueWTsuWYiQ0KK+abuea3keWqmw0KK+abueeak+mbsg0KK+abueWYieaWhw0KK+abueeSveepoA0KK+aigeaWh+WuiQ0KK+aigeato+W/oA0KK+aigeaxneiInA0KK+aigeW/l+mKmA0KK+aigeadseaelw0KK+aigeW9peixqg0KK+aigeWutuaYjg0KK+aigeaZiemtgQ0KK+aigeWVn+eOhA0KK+aigeWLnemKmA0KK+aigeacneWHsQ0KK+aigeaEt+iKuA0KK+aigeWYieePjQ0KK+aigeaFp+iPrw0KK+aigeeTiuS4uQ0KK+aiheWFieWuhw0KK+ebm+W/gw0KK+iOq+aYn+Wuhw0KK+iOiuWjq+Wciw0KK+iOiuaWh+aYrQ0KK+iOiuW8mOS7uw0KK+iOiueOiem6nw0KK+iOiuW/l+amrg0KK+iOiuS+neWptw0KK+iOiuWdpOWTsg0KK+iOiuWul+WLsw0KK+iOiuaAoei7kg0KK+iOiuadseaYjg0KK+iOiumHkemdnA0KK+iOiuaUv+aGsg0KK+iOiuWAieadsA0KK+iOiuWzu+amlQ0KK+iOiue0lOe0lA0KK+iOiuWfuemRqw0KK+iOiua3keiKrA0KK+iOiua3keePug0KK+iOiuWLneWIqQ0KK+iOiuW+qeiytA0KK+iOiuaDoOiTiQ0KK+iOiuaZuua2tQ0KK+iOiueZu+eZvA0KK+iOiumbheW/gw0KK+iOiumbheaDoA0KK+iOiumbr+mbrw0KK+iOiuijleaWhw0KK+iOiumKmOaZrw0KK+iOiuaoueWujw0KK+iOiumdnOaAoQ0KK+iOiumOlOeSng0KK+iOiuaHv+W8tw0KK+iOiuetseWptw0KK+ioseWPiOS7gQ0KK+ioseWjrOiAgA0KK+ioseaWh+WOmg0KK+ioseaWh+ixqg0KK+ioseS4luawkQ0KK+ioseWKoOWujw0KK+ioseato+W/oA0KK+ioseawuOavhQ0KK+ioseeOieWsiw0KK+ioseWQjeS4lg0KK+ioseaxjuepjg0KK+ioseWFi+S7sg0KK+ioseWuj+W+tw0KK+ioseW/l+W0hw0KK+ioseW/l+mBoA0KK+ioseengOePig0KK+ioseiJrw0KK+ioseS9s+mbrw0KK+ioseWtn+e/lA0KK+ioseaAoeePrg0KK+ioseadvuetiQ0KK+ioseiKs+mKmA0KK+ioseS/oeamrg0KK+ioseaBrOe2vg0KK+ioseePiueRnA0KK+iosee+juiPrw0KK+iosemDgeaVjw0KK+ioseWTsueRng0KK+ioseWTsueRiw0KK+ioseWutuaamA0KK+ioseWutuixqg0KK+ioseWzu+WTsg0KK+ioseW6reeRiw0KK+ioseaZieeGkg0KK+ioseabuOmKkw0KK+ioseePruWYiQ0KK+iosee0oOiPgQ0KK+ioseiyoeW+lw0KK+ioseWpieiMuQ0KK+ioseaiheiPgQ0KK+iosea3keiKrA0KK+iosea3keaDoA0KK+ioseiOieiOiQ0KK+ioseWLneWLmw0KK+ioseWgoeWmgg0KK+ioseaDoOWmgg0KK+ioseaDoOmbrw0KK+ioseaZr+mIng0KK+ioseaZuuWHsQ0KK+ioseaZuuW+tw0KK+ioseero+iDvQ0KK+ioseiPr+WAmg0KK+iosemAuOeroA0KK+iosembheeOsg0KK+iosembheaDoA0KK+iosembhembgQ0KK+iosembr+eQsw0KK+iosealqOelpQ0KK+ioseeRng0KK+ioseeRnuWEgA0KK+ioseiBluadsA0KK+ioseWYieWFgw0KK+ioseWYieePrg0KK+ioseamlQ0KK+ioseeiqeS/rg0KK+iosee2reecnw0KK+iosemKmOS7gQ0KK+iosemWo+aWhw0KK+ioseaFp+iyng0KK+ioseaGtuiKsw0KK+iosemMpuaWhw0KK+ioseW2uOS7gQ0KK+ioseeTiuaWhw0KK+iosem6l+iPrw0KK+iosemmqOS7gQ0KK+ioseaYtuiPrw0KK+ioseetseiQjQ0KK+ioseaBkumBlA0KK+mAo+S9keS7gQ0KK+mAo+W7uuaZug0KK+mAo+ahguWujw0KK+mAo+WVn+aZug0KK+mAo+WYiee0lA0KK+mDreS5g+amrg0KK+mDreS6juemjg0KK+mDreWtkOeriw0KK+mDreS7geWTsg0KK+mDreaWh+aDoA0KK+mDreS4luiYrQ0KK+mDreawuOaYjg0KK+mDreS7sua3tQ0KK+mDreW5tOecnw0KK+mDreWQm+aAoQ0KK+mDreW/l+Wujw0KK+mDreiCsuWFiA0KK+mDremCpuW9pQ0KK+mDreS9s+mRqw0KK+mDreWtn+iTiQ0KK+mDreaAoeS8tg0KK+mDreaAoeengA0KK+mDreaYjuWulw0KK+mDreaYjueRiw0KK+mDreeOpeWmpg0KK+mDreiKneedvw0KK+mDreS/neWQmw0KK+mDreS/iuWEhA0KK+mDreWTgeengA0KK+mDreWogeW/lw0KK+mDreW7uuiJrw0KK+mDreaAneWunA0KK+mDreaYreWuiQ0KK+mDreafj+engA0KK+mDreebiOWQmw0KK+mDree+juWWhA0KK+mDreiynuWtjQ0KK+mDreWHjOW/lw0KK+mDreWutuelpQ0KK+mDreWuuOaYgA0KK+mDreaMr+a8og0KK+mDreahgumzsw0KK+mDree0oOe2vg0KK+mDreWci+atow0KK+mDrea3u+aWsA0KK+mDrea3keaFpw0KK+mDreaDoOmdkg0KK+mDreaZuueRiw0KK+mDremAsuaYjA0KK+mDrembheiPsQ0KK+mDreeRnuasvQ0KK+mDreWYieWBiQ0KK+mDreeip+Wonw0KK+mDreaFtueUnw0KK+mDreWEkuismQ0KK+mDreeHleeOsg0KK+mDremdnOe+jg0KK+mDremOruWFgw0KK+mDreeNu+aWhw0KK+mDreexoOaFtg0KK+mDreaakA0KK+mZs+S4gOiPrw0KK+mZs+S5g+amrg0KK+mZs+WPiOaYlQ0KK+mZs+WNg+mMpg0KK+mZs+WtkOW9pQ0KK+mZs+W3seWNhw0KK+mZs+S7geWulw0KK+mZs+WFg+mdlg0KK+mZs+Wkqeizng0KK+mZs+W/g+a9lA0KK+mZs+aWh+W/oA0KK+mZs+aWh+a2kw0KK+mZs+aWh+asvQ0KK+mZs+aWh+W+tw0KK+mZs+aWh+mIug0KK+mZs+S4luWulw0KK+mZs+S4luaUvw0KK+mZs+S4lueroA0KK+mZs+S4lua+pA0KK+mZs+S7pemdnA0KK+mZs+S7leWPoQ0KK+mZs+WPr+asow0KK+mZs+W3p+ePig0KK+mZs+W5vOasow0KK+mZs+W8mOiokw0KK+mZs+acreWfuQ0KK+mZs+ato+WzsA0KK+mZs+ato+ixqg0KK+mZs+awuA0KK+mZs+awuOmdkg0KK+mZs+awuOiqjA0KK+mZs+eOieaWhw0KK+mZs+eOieiKrA0KK+mZs+eOieePoA0KK+mZs+eOieiPgQ0KK+mZs+eOieeSmA0KK+mZs+efs+iCsg0KK+mZs+eri+WAqw0KK+mZs+eri+e2rQ0KK+mZs+S8iuWAqw0KK+mZs+WFieeUqw0KK+mZs+WQkeamrg0KK+mZs+WmguiYiw0KK+mZs+WuieS9kQ0KK+mZs+axn+eriw0KK+mZs+iHs+WHsQ0KK+mZs+S9keW6rQ0KK+mZs+S8r+iSvA0KK+mZs+WQm+iIqg0KK+mZs+Wdh+eiqQ0KK+mZs+WmjeengA0KK+mZs+Wuj+S7gQ0KK+mZs+Wuj+e+jg0KK+mZs+Wuj+mBlA0KK+mZs+Wuj+eFkg0KK+mZs+W/l+W5sw0KK+mZs+W/l+aymw0KK+mZs+W/l+aYjg0KK+mZs+W/l+W9pQ0KK+mZs+W/l+elpQ0KK+mZs+W/l+a6kA0KK+mZs+W/l+e2rQ0KK+mZs+W/l+ixqg0KK+mZs+W/l+epjg0KK+mZs+aUuOWptw0KK+mZs+axtua0pQ0KK+mZs+engOiKnQ0KK+mZs+engOaDoA0KK+mZs+engOaFpw0KK+mZs+iCsuS9kA0KK+mZs+iCsuipqQ0KK+mZs+iJr+aUvw0KK+mZs+mFieiMuQ0KK+mZs+S+nee/lA0KK+mZs+S9s+WQnw0KK+mZs+S9s+eOpQ0KK+mZs+S9s+aDoA0KK+mZs+S9s+mbrw0KK+mZs+S9s+eSmA0KK+mZs+S+g+Wptw0KK+mZs+S9qeS9qQ0KK+mZs+S9qeeQsw0KK+mZs+WFtumIng0KK+mZs+WdpOS9kA0KK+mZs+WnlOaJvw0KK+mZs+Wtn+WBiQ0KK+mZs+Wtn+i8nQ0KK+mZs+Wul+W/lw0KK+mZs+Wul+aXlw0KK+mZs+WunOW5sw0KK+mZs+WunOWnvw0KK+mZs+WunOeSiw0KK+mZs+WwmuaWhw0KK+mZs+W5uOi2sw0KK+mZs+W/oOiJrw0KK+mZs+aAoeaWhw0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeeruQ0KK+mZs+aAoeS8tg0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeaYjA0KK+mZs+aAoeecnw0KK+mZs+aAoeeQtA0KK+mZs+aAoeiqoA0KK+mZs+aAoea9lA0KK+mZs+aAoemdnA0KK+mZs+aAoeWPoQ0KK+mZs+aYjOaWhw0KK+mZs+aYjuatow0KK+mZs+aYjuadkA0KK+mZs+aYjuePoA0KK+mZs+aYjualtw0KK+mZs+aYjuixkA0KK+mZs+adseiPrw0KK+mZs+aso+Wmgg0KK+mZs+aso+aAoQ0KK+mZs+aso+iYrQ0KK+mZs+azk+e/lA0KK+mZs+aziui+sA0KK+mZs+eOn+eRmw0KK+mZs+eOq+iHuw0KK+mZs+enieaWjA0KK+mZs+iKneWAqQ0KK+mZs+mHkeiJrw0KK+mZs+mVt+aFtg0KK+mZs+S6reWQmw0KK+mZs+S6ruepjg0KK+mZs+S/oeWQnw0KK+mZs+S/oeeUqw0KK+mZs+S/oeijlQ0KK+mZs+S/neWFgw0KK+mZs+S/iuS7sA0KK+mZs+S/iuWuhw0KK+mZs+S/iuaXrQ0KK+mZs+S/iuWujw0KK+mZs+S/iuW7tw0KK+mZs+S/iuiJrw0KK+mZs+S/iumDjg0KK+mZs+S/iuiPrw0KK+mZs+S/iuamlQ0KK+mZs+S/iumKmA0KK+mZs+S/iuaoug0KK+mZs+S/kOWuiQ0KK+mZs+S/nuS7sg0KK+mZs+WGoOWkqw0KK+mZs+WGoOWuhw0KK+mZs+WGoOWujw0KK+mZs+WGoOWCkQ0KK+mZs+WGoOmKmA0KK+mZs+WLh+WcqA0KK+mZs+WLgeWQvg0KK+mZs+WTgeWFiA0KK+mZs+WlleS4rQ0KK+mZs+WlleW7tw0KK+mZs+Wlleepjg0KK+mZs+Wnv+aWhw0KK+mZs+Wnv+WQnw0KK+mZs+Wnv+epjg0KK+mZs+WogeWFqA0KK+mZs+WogeWKqQ0KK+mZs+WogemCkQ0KK+mZs+WogeWEkg0KK+mZs+Wuo+avjw0KK+mZs+W4peWQjQ0KK+mZs+W7uuS7uw0KK+mZs+W7uuWuiQ0KK+mZs+W7uuaXrQ0KK+mZs+W7uuWujw0KK+mZs+W7uuW7tw0KK+mZs+W7uueUqw0KK+mZs+W7uumCpg0KK+mZs+W7uuaPmg0KK+mZs+W7uumBlA0KK+mZs+W7uui8lA0KK+mZs+W7uueSiw0KK+mZs+W7uueDnA0KK+mZs+W9peS7uw0KK+mZs+W9peW4hg0KK+mZs+W9peWQmw0KK+mZs+W9peW7tw0KK+mZs+W9peaYjA0KK+mZs+W9pee2uA0KK+mZs+W9peWLsw0KK+mZs+aAneW5tA0KK+mZs+aAnea6kA0KK+mZs+aAneepjg0KK+mZs+aUv+aWhw0KK+mZs+aUv+ijlQ0KK+mZs+aYpeWmgw0KK+mZs+aYreaWhw0KK+mZs+aYreWBiQ0KK+mZs+aYreeRiw0KK+mZs+aYoOWEkg0KK+mZs+aYseS4ng0KK+mZs+aYseeUqw0KK+mZs+aflOWuiQ0KK+mZs+afj+S7vQ0KK+mZs+afj+W5tA0KK+mZs+afj+W/lw0KK+mZs+afj+WzsA0KK+mZs+afj+Wvpw0KK+mZs+afj+i8rw0KK+mZs+eCq+WQmw0KK+mZs+eCs+mMlQ0KK+mZs+ePjeeRqQ0KK+mZs+ebiOWFqA0KK+mZs+ebiOWuiQ0KK+mZs+ebiOWtnA0KK+mZs+ebiOWptw0KK+mZs+ebiOeShw0KK+mZs+emuem9ig0KK+mZs+eni+W4hg0KK+mZs+eni+iQjQ0KK+mZs+e0gOi2sw0KK+mZs+e+juWmgg0KK+mZs+e+juWQmw0KK+mZs+e+juiKnQ0KK+mZs+e+jue0lA0KK+mZs+e+jueQtA0KK+mZs+e+juaFpw0KK+mZs+e+v+iwtw0KK+mZs+iHtOemjw0KK+mZs+iMgumbhA0KK+mZs+iLseWCkQ0KK+mZs+iZueabsg0KK+mZs+ihjeiHsw0KK+mZs+iynuWmpA0KK+mZs+mDgeaWhw0KK+mZs+mDgeiPgQ0KK+mZs+mHjeW7tw0KK+mZs+mfi+S8tg0KK+mZs+mfsw0KK+mZs+mmmeWQnw0KK+mZs+WAlue/oA0KK+mZs+WTsuW8tw0KK+mZs+WutuePjQ0KK+mZs+Wutumbrw0KK+mZs+WutuaFpw0KK+mZs+WuueiQsQ0KK+mZs+aMr+adsQ0KK+mZs+aZguebnw0KK+mZs+ahgueOiQ0KK+mZs+azsOWzsA0KK+mZs+a1qeiMuQ0KK+mZs+ePruePrg0KK+mZs+ebiuijlQ0KK+mZs+e0oOWopQ0KK+mZs+iAmOWvrA0KK+mZs+S5vua3pg0KK+mZs+WBieiOiQ0KK+mZs+WBpemclg0KK+mZs+Wci+WzsA0KK+mZs+Wci+amrg0KK+mZs+Wfueerrw0KK+mZs+WpieiPgQ0KK+mZs+W0kemKmA0KK+mZs+WVn+WtmA0KK+mZs+aVj+aWsA0KK+mZs+a4heWlhw0KK+mZs+a3keWQmw0KK+mZs+a3keiKrA0KK+mZs+a3keWonw0KK+mZs+a3kee+mg0KK+mZs+a3kembhQ0KK+mZs+a3kemdnA0KK+mZs+e0ueW6rQ0KK+mZs+ioseawkQ0KK+mZs+WCkeijlQ0KK+mZs+WLneWYiQ0KK+mZs+Wpt+eOnw0KK+mZs+aDoOaWhw0KK+mZs+aDoOeOsg0KK+mZs+aDoOiQjQ0KK+mZs+aDoOm9oQ0KK+mZs+aZr+azsA0KK+mZs+aZuuWBiQ0KK+mZs+acneeGmQ0KK+mZs+a5mOeQtA0KK+mZs+eQpueQsw0KK+mZs+iCheasig0KK+mZs+ipoOS6rg0KK+mZs+mAuOW5sw0KK+mZs+mAuOiPgQ0KK+mZs+mAsumahg0KK+mZs+mahuaWjA0KK+mZs+mbheiKrA0KK+mZs+mbheiLkw0KK+mZs+mbheaDoA0KK+mZs+mbheeQtA0KK+mZs+mbhembrw0KK+mZs+mbhemfuw0KK+mZs+mghueZvA0KK+mZs+aEj+mbrw0KK+mZs+aVrOaWhw0KK+mZs+amhua2tQ0KK+mZs+avk+mIng0KK+mZs+eFp+aFiA0KK+mZs+eRnuWIqQ0KK+mZs+eRnueRnA0KK+mZs+eRnOipqQ0KK+mZs+e+qeW/oA0KK+mZs+iBluWunA0KK+mZs+icgueBnQ0KK+mZs+ijleaZug0KK+mZs+ipqeWptw0KK+mZs+mBi+W+tQ0KK+mZs+m8juS7gQ0KK+mZs+WYieWujw0KK+mZs+WYieWzsA0KK+mZs+WYiembgQ0KK+mZs+WYieeRqQ0KK+mZs+aXl+aYjA0KK+mZs+amrueHvw0KK+mZs+eip+e0hQ0KK+mZs+emj+aelw0KK+mZs+e2reWTsg0KK+mZs+iCh+m0uw0KK+mZs+mKmOaziQ0KK+mZs+mKmOiAgA0KK+mZs+WEgA0KK+mZs+W7o+m6nw0KK+mZs+W+t+mBoA0KK+mZs+aFtuiPrw0KK+mZs+aFtum0uw0KK+mZs+aFp+iKnQ0KK+mZs+aFp+e+jg0KK+mZs+aFp+e0lA0KK+mZs+aFp+mbrw0KK+mZs+aFleWEkg0KK+mZs+a9lOmfsw0KK+mZs+eRqeeRhA0KK+mZs+iqvOiKsw0KK+mZs+m7juahgg0KK+mZs+aGsuWEgA0KK+mZs+abiemdkg0KK+mZs+abieetoA0KK+mZs+aoueW5tA0KK+mZs+eHleiPgQ0KK+mZs+epjuelpQ0KK+mZs+iVmeiKsw0KK+mZs+mMpuengA0KK+mZs+mMpum0uw0KK+mZs+mdnOaAoQ0KK+mZs+mdnOa3kQ0KK+mZs+mdnOaFpw0KK+mZs+m+jeWvrA0KK+mZs+iWhw0KK+mZs+mnv+aPmg0KK+mZs+m0u+a4hQ0KK+mZs+eSv+Wmgg0KK+mZs+eTiua3hw0KK+mZs+i0iuS4rQ0KK+mZs+mfu+Wmgg0KK+mZs+mfu+eruQ0KK+mZs+m6kuWFgw0KK+mZs+m6l+Wmgg0KK+mZs+m6l+iKrA0KK+mZs+m6l+Wptw0KK+mZs+WvtueOiQ0KK+mZs+iAgOesmQ0KK+mZs+aru+WuuQ0KK+mZs+iJt+mItA0KK+mZs+aXu+aUvw0KK+mZs+WnteWmgg0KK+mZs+aYtuaYsQ0KK+mZs+WgnA0KK+mZs+eQrOiPgQ0KK+mZs+eRi+WFuA0KK+mZs+etseiKsw0KK+mZs+mIuueOqw0KK+mZs+mKmuiMuQ0KK+mZs+eAheWmgg0KK+mZs+Wsv+S8tg0KK+mZuOato+e+qQ0KK+mZuOa0peiPrw0KK+mZuOmzs+eOsg0KK+eroOaWh+iKnQ0KK+eroOe/lA0KK+m6peebp+WvtuWFqA0KK+WCheaWh+mAsg0KK+WCheS6nuWHoQ0KK+WCheW7uuWciw0KK+WCheePrua3hw0KK+WChea3kembrw0KK+WChemJm+aWhw0KK+WCheeQrg0KK+WWrOWul+Wgrw0KK+W9reS7geW/lw0KK+W9reaWh+aFpw0KK+W9reeOieiPrw0KK+W9reaIkOWCkQ0KK+W9reS9s+WBiQ0KK+W9reaci+mbjQ0KK+W9reS/iuemjw0KK+W9reW7uuamrg0KK+W9reiLpeaFiA0KK+W9rea1qeWAqw0KK+W9reW0h+S/oQ0KK+W9reebmw0KK+W9rea7i+iQjQ0KK+W9rembhee1uQ0KK+W9reiBluiQjQ0KK+W9reaFp+Wmgg0KK+W9remMpueCqw0KK+W9remmqOaFpw0KK+aZr+mbqOeniw0KK+abvuWjq+i7kg0KK+abvuWwj+eOsg0KK+abvuWtlOmIug0KK+abvuaWh+W9rA0KK+abvuS7pOeRnA0KK+abvueOieWmgg0KK+abvuS7suebnw0KK+abvue+veW2ug0KK+abvuW/l+WCkQ0KK+abvuiCsuiPgQ0KK+abvuWto+athg0KK+abvuaJv+W/lw0KK+abvuiKneiYrQ0KK+abvuS/iuaZug0KK+abvuWGoOaoug0KK+abvuW7uuWSjA0KK+abvuW7uumclg0KK+abvuaAnee2rQ0KK+abvuaYoOm9oQ0KK+abvueni+aVjw0KK+abvue+jum9oQ0KK+abvumDgeepjg0KK+abvuePrueQsw0KK+abvuWBiee/lA0KK+abvuWci+abuA0KK+abvuWpieaDoA0KK+abvua3keiKsw0KK+abvua2teWJrw0KK+abvuWHseaCjA0KK+abvuaDoOeOsg0KK+abvuaZuuelug0KK+abvuiPr+m9oQ0KK+abvumbhemdkg0KK+abvuaEj+aWhw0KK+abvua6peWFgw0KK+abvueRm+eQsw0KK+abvuijleWHsQ0KK+abvuWYieiLsQ0KK+abvue2ree+pA0KK+abvuaFtueRhA0KK+abvuaGsuW/oA0KK+abvue5gemdkg0KK+abvueTiuaFpw0KK+abvuWvtuejgQ0KK+abvummqOWEgA0KK+abvuaakOa4hQ0KK+abvueejQ0KK+a4uOWkp+e3rw0KK+a4uOS4luaWjA0KK+a4uOWFhuWQmw0KK+a4uOadjumbhA0KK+a4uOS9qeWLsw0KK+a4uOaYjOe/sA0KK+a4uOmdkumcjw0KK+a4uOeni+aAoQ0KK+a4uOWutuixqg0KK+a4uOWpiemdkg0KK+a4uOa3keaDoA0KK+a4uOWWrOaZug0KK+a4uOaZuui2hQ0KK+a4uOmAsuWvjA0KK+a4uOmbheetoA0KK+a4uOamruiPrw0KK+a4uOmMq+Wulw0KK+a4uOeNu+e+pA0KK+a5r+S4gOePig0KK+a5r+W/l+W/oA0KK+a5r+Wutuixqg0KK+a5r+WvjOajiw0KK+a5r+aFtumMmg0KK+eoi+S5i+Wvpw0KK+eoi+WwmuWJhw0KK+eoi+W7uue/sA0KK+eoi+WBieaUvw0KK+eoi+mbheaDoA0KK+eoi+eTiuiQsQ0KK+erpeW8mA0KK+erpee+jua7vw0KK+erpemfu+Wmgg0KK+iPr+Wci+mLkg0KK+izgOWOmuW5sw0KK+i+nOS/oeemjw0KK+mWlOS7u+mBoA0KK+mgiOS4iuiLkQ0KK+mmruawuOeAhQ0KK+mmrumVt+m+jQ0KK+mmruW9qeWonw0KK+mmrueRnumZvQ0KK+mmruiAgOaWhw0KK+m7g+WKm+iogA0KK+m7g+S6juiKrA0KK+m7g+S6juecnw0KK+m7g+WNg+WHjA0KK+m7g+Wjq+WOnw0KK+m7g+Wjq+WYiQ0KK+m7g+Wkp+WAqw0KK+m7g+WtkOWNvw0KK+m7g+Wwj+Wonw0KK+m7g+S4reWBiQ0KK+m7g+S7geiJrw0KK+m7g+WFg+mahg0KK+m7g+WkqeWBpQ0KK+m7g+W/g+aAoQ0KK+m7g+W/g+Wnrg0KK+m7g+aWh+aAoQ0KK+m7g+aWh+eOsg0KK+m7g+aWh+mahg0KK+m7g+aWh+eSiw0KK+m7g+aciOeRvg0KK+m7g+S4luaciw0KK+m7g+S4luWYiQ0KK+m7g+S7peWWrA0KK+m7g+W3p+Wptw0KK+m7g+W8mOavhQ0KK+m7g+ato+S9qQ0KK+m7g+awuOS7gQ0KK+m7g+awuOa8og0KK+m7g+eOiembqA0KK+m7g+eOieiPgQ0KK+m7g+eri+iKrA0KK+m7g+S6puiQsQ0KK+m7g+S7u+W7tg0KK+m7g+WFhuaVjw0KK+m7g+WkmeaFpw0KK+m7g+Wuh+W7tw0KK+m7g+aXreW8mA0KK+m7g+iBv+WQmw0KK+m7g+S8r+W5tA0KK+m7g+WmmeiKrA0KK+m7g+Wuj+mAsg0KK+m7g+W/l+aIkA0KK+m7g+W/l+W8tw0KK+m7g+W/l+WYiQ0KK+m7g+W/l+m+jQ0KK+m7g+engOWuuQ0KK+m7g+iCsuS/oQ0KK+m7g+S+neaWhw0KK+m7g+S9s+Wqmw0KK+m7g+S9qeS/kA0KK+m7g+WdpOW+tw0KK+m7g+Wul+Wfug0KK+m7g+W5uOWEgA0KK+m7g+aAoeePig0KK+m7g+aAoeiPgQ0KK+m7g+aAoee2rQ0KK+m7g+aYjuW/lw0KK+m7g+aYjueRng0KK+m7g+adsea1tw0KK+m7g+aso+aEiQ0KK+m7g+eOn+eRvg0KK+m7g+iKt+mbsg0KK+m7g+mVt+a+pA0KK+m7g+S/oeaNtw0KK+m7g+S/oeW9sA0KK+m7g+S/oeaWjA0KK+m7g+S/iuWTsg0KK+m7g+S/iuWCkQ0KK+m7g+S/iuiInA0KK+m7g+S/iuWYiQ0KK+m7g+S/iuizog0KK+m7g+S/nuaWkA0KK+m7g+WGoOmbhQ0KK+m7g+WLh+aFpw0KK+m7g+WTgeavhQ0KK+m7g+Wnv+e2vg0KK+m7g+Wuo+WHsQ0KK+m7g+W7uuaWhw0KK+m7g+W7uueoiw0KK+m7g+W7uuW9sA0KK+m7g+W7uuWLsw0KK+m7g+W9peWkqg0KK+m7g+W9peeRnA0KK+m7g+W9peaWjA0KK+m7g+aAneizog0KK+m7g+aUv+aPmg0KK+m7g+aYreaZug0KK+m7g+aYseS4rQ0KK+m7g+afj+WFgw0KK+m7g+afj+e/lA0KK+m7g+afj+e/sA0KK+m7g+eCs+aGsg0KK+m7g+ebiOaDoA0KK+m7g+eni+iQjQ0KK+m7g+e+jueOiQ0KK+m7g+e+jue+mg0KK+m7g+e+juiTiQ0KK+m7g+iLpeiWhw0KK+m7g+iLseWCkQ0KK+m7g+iynuepjg0KK+m7g+mDgeePig0KK+m7g+mDgembrw0KK+m7g+mfi+eQqg0KK+m7g+WAieW9pQ0KK+m7g+Wutumahg0KK+m7g+W6remIug0KK+m7g+aMr+iqoA0KK+m7g+abuOmIug0KK+m7g+a1qemIng0KK+m7g+ePruiIkg0KK+m7g+elluizog0KK+m7g+iDveixkA0KK+m7g+WBieWzsA0KK+m7g+WBiemKmA0KK+m7g+WBpea6og0KK+m7g+Wci+iKsw0KK+m7g+Wci+i7kg0KK+m7g+Wci+ijlQ0KK+m7g+Wci+mQmA0KK+m7g+Wpieiyng0KK+m7g+W0h+iokw0KK+m7g+W9qemKmA0KK+m7g+WVn+S/rg0KK+m7g+aVj+S/rg0KK+m7g+aiheeOsg0KK+m7g+a4hem6nw0KK+m7g+a3keeOsg0KK+m7g+a3keaihQ0KK+m7g+a3keiPrw0KK+m7g+a3kemdnA0KK+m7g+elpeaWjA0KK+m7g+iOieWonw0KK+m7g+mAlOW3lg0KK+m7g+WHseWogQ0KK+m7g+WLneijlQ0KK+m7g+Wgr+WBiQ0KK+m7g+WvjOipsw0KK+m7g+aDoOiKrA0KK+m7g+aDoOeQtA0KK+m7g+aDoOmcng0KK+m7g+aZr+ijlQ0KK+m7g+aZuuW6tw0KK+m7g+acneeQtA0KK+m7g+a5mOW3pw0KK+m7g+eQquWptw0KK+m7g+ero+WNlw0KK+m7g+iIkuW9pQ0KK+m7g+iPiuiLsQ0KK+m7g+mAuA0KK+m7g+mWlOi+sg0KK+m7g+mbhea0pQ0KK+m7g+mbhea3kQ0KK+m7g+mbheeQqg0KK+m7g+mbheiQsQ0KK+m7g+mbhem9oQ0KK+m7g+mghuWQiQ0KK+m7g+aEj+i2hQ0KK+m7g+aVrOaWjA0KK+m7g+amhuWptw0KK+m7g+a6kOeSiw0KK+m7g+eRnuS8tg0KK+m7g+eRnumZvQ0KK+m7g+ebn+WHsQ0KK+m7g+e+qeWQmw0KK+m7g+iBluWTsg0KK+m7g+iBlum0uw0KK+m7g+ijleebmw0KK+m7g+ipqeiKuA0KK+m7g+ipqembrw0KK+m7g+mItOeQqg0KK+m7g+mdluaDoA0KK+m7g+WYieWLhw0KK+m7g+WYieiQsQ0KK+m7g+amrumghg0KK+m7g+edv+S8uA0KK+m7g+e2reaZug0KK+m7g+mKmOWBiQ0KK+m7g+WEgOWQmw0KK+m7g+aFtuiPrw0KK+m7g+aFp+iMuQ0KK+m7g+a+hOWBiQ0KK+m7g+mch+Wuhw0KK+m7g+abieS9qQ0KK+m7g+eHleWopQ0KK+m7g+mMmuaaiQ0KK+m7g+mdnOWunA0KK+m7g+aHieeSvw0KK+m7g+mnv+mBlA0KK+m7g+iWsOeRqQ0KK+m7g+eAmuW+tw0KK+m7g+eTiuWEgA0KK+m7g+eTiuiqvA0KK+m7g+mfu+Wmgg0KK+m7g+m6l+Wmgw0KK+m7g+m6l+iTiQ0KK+m7g+WvtuWEgA0KK+m7g+e5vOWing0KK+m7g+iAgOeRqQ0KK+m7g+mQmOiRpg0KK+m7g+mmqOaFpw0KK+m7g+m9oeiQsQ0KK+m7g+iJt+eOiQ0KK+m7g+aYtuaWjA0KK+m7g+e/iuWuuA0KK+m7g+eQrOWQmw0KK+m7g+iPgOmItA0KK+m7g+eRi+Wvpw0KK+m7g+etsembgQ0KK+m7g+mIuuWptw0KK+m7g+mJpumWlA0KK+m7g+isteiqqg0KK+Whl+aZgumbqA0KK+aliuS4ieizog0KK+aliuWjq+W8mA0KK+aliuWjq+izog0KK+aliuWtkOavhQ0KK+aliuS5i+aFpw0KK+aliuWFgeS4rQ0KK+aliuaWh+Wujw0KK+aliuaWh+eRng0KK+aliuS4luWHsQ0KK+aliuWPr+athg0KK+aliuato+W9rA0KK+aliueOiem8jg0KK+aliuS7suawkQ0KK+aliuWuiOWfjg0KK+aliuS8tuaFpw0KK+aliuW/l+iDvQ0KK+aliuW/l+mbjQ0KK+aliuengOePoA0KK+aliuiCsuWEkg0KK+aliuS9s+iPgQ0KK+aliuS9qeePig0KK+aliuWdpOiLsQ0KK+aliuWtn+iTiQ0KK+aliuWul+Wgrw0KK+aliuWul+e/sA0KK+aliuWunOeSiw0KK+aliuWyseWEkg0KK+aliuaAoeiKsw0KK+aliuaJv+eGuQ0KK+aliuaYhumclg0KK+aliuaYjuWvsA0KK+aliuadseaVjw0KK+aliuaso+ePrg0KK+aliueniemghg0KK+aliumVt+a9lA0KK+aliuS/iui8nQ0KK+aliuaAnembiw0KK+aliuaYrei8nQ0KK+aliue0gOiKuA0KK+aliue+juiXnQ0KK+aliuWTsuWuiQ0KK+aliuWutumKmA0KK+aliuaMr+Wulw0KK+aliuabuOixqg0KK+aliuePrueQpg0KK+aliuiZlOmbhQ0KK+aliuWBpeWciw0KK+aliuWfueaBqQ0KK+aliuaDn+eZvQ0KK+aliua3s+ehrw0KK+aliua3keS9sw0KK+aliua3keaVjw0KK+aliua3keaFpw0KK+aliuebm+aWjA0KK+aliuWHseS7sg0KK+aliuWLneWuhw0KK+aliuWNmuasvQ0KK+aliuWpt+mIng0KK+aliuW+quWptw0KK+aliuaDoOWptw0KK+aliuaWr+WHsQ0KK+aliuaZr+mbrw0KK+aliuaZuuWCkQ0KK+aliuaZuumIng0KK+aliuajrueZvA0KK+aliueak+eRiw0KK+aliuiIkuW4hg0KK+aliuiPgeiKrA0KK+aliuiytOWqmw0KK+aliumWlOe/lA0KK+aliumbheWAqw0KK+aliumbheW1kA0KK+aliumbhee/lA0KK+aliumbhembsg0KK+aliumbsue/lA0KK+aliueFpeeroA0KK+aliuijlQ0KK+aliuWYieeOsg0KK+aliuankOmnkg0KK+aliui2memKmA0KK+aliuaFtumahg0KK+aliueSiw0KK+aliuabieiPgQ0KK+aliuiVmeiKsw0KK+aliumdnOWmgg0KK+aliuaItOW3ng0KK+aliuekjumBoA0KK+aliuixkOmKmA0KK+aliueTiuiPrw0KK+aliuabpueQsw0KK+aliueQh+Wmgg0KK+aliueQrOWptw0KK+aliumOp+S8ig0KK+a6q+iHs+S7uw0KK+a6q+aJv+e/sA0KK+a6q+iLpeWptw0KK+a6q+Wfuemdkg0KK+a6q+mbhea4hQ0KK+a6q+abieiPrw0KK+iQrOS9s+aYlQ0KK+iQrOabieaYjg0KK+iRieWPiOWYiQ0KK+iRieWkp+iRpg0KK+iRieWkqeWwhw0KK+iRieS7o+asig0KK+iRieS6puebmw0KK+iRieWmgumbrw0KK+iRieWuj+WCkQ0KK+iRieengOaihQ0KK+iRieS9s+asow0KK+iRieS9qeecnw0KK+iRieWul+aZug0KK+iRieaAoeWQmw0KK+iRieaYjOWAqw0KK+iRieaYjumRqw0KK+iRieeOn+WQmw0KK+iRiemVt+mdkg0KK+iRieS/iuWujw0KK+iRieS/nuadiQ0KK+iRieW7uuWQmw0KK+iRieaAneWEgA0KK+iRieaYseW/lw0KK+iRieeni+aciA0KK+iRiemDgeiPgQ0KK+iRieWutuWuhw0KK+iRieWzu+izkw0KK+iRieabuOeRiw0KK+iRieiAv+m9ig0KK+iRieW8teW7ug0KK+iRiea3kemItA0KK+iRieaDoOemjg0KK+iRieipoOaZtA0KK+iRiembhembrw0KK+iRiee+qeadvg0KK+iRiemKmOaYjA0KK+iRiea9lOaBqQ0KK+iRieiVmeiKsw0KK+iRiemnv+mAuA0KK+iRiemosOmBoA0KK+iRieeQpOaAoQ0KK+iRm+WAqeWmgg0KK+iRo+W3p+eOsg0KK+iRo+aAoeWQmw0KK+iRo+W9peWujw0KK+iRo+aMr+mbhA0KK+iRo+aFp+e+jg0KK+ijmOWFg+aEtw0KK+ipueWtkOawkQ0KK+ipueS4luWCkQ0KK+ipueWuj+W9rA0KK+ipueS9s+aMrw0KK+ipueWtn+aZgw0KK+ipueW/oOamrg0KK+ipuemdkuiJtw0KK+ipuee+juePjQ0KK+ipuea1muaYhw0KK+ipueiMl+iKuA0KK+ipuea3keiQjQ0KK+ipueWLneasvQ0KK+ipueaZr+Wgrw0KK+ipueiovOWvjA0KK+ipuembhemWlA0KK+ipueWYieeSvw0KK+ipueepjuiQjQ0KK+ipueeOk+eRiw0KK+iziOayu+Wciw0KK+mEkuS4gOS7sg0KK+mEkuadjuaYjA0KK+mEkumHkeW+tw0KK+mEkuaWsOWFqA0KK+mbjeaVpuWFgw0KK+mbt+mbheiPgQ0KK+W7luS6juaWhw0KK+W7luWkp+aonw0KK+W7luWFg+WIqQ0KK+W7luaWh+iplQ0KK+W7luaciOingA0KK+W7luato+WBiQ0KK+W7luS4nuaZng0KK+W7luWQq+a9lA0KK+W7luW/l+WBiQ0KK+W7luiCsuiJrw0KK+W7luS9qeWmgg0KK+W7luaAoeeOsg0KK+W7luaYjuWEgA0KK+W7luiKneWghQ0KK+W7luS/iuasvQ0KK+W7luWnv+avkw0KK+W7luW9peWHsQ0KK+W7luaYseaouQ0KK+W7lue+jueOsg0KK+W7luiLseeUtw0KK+W7lui/sOiMgg0KK+W7luWNv+aDoA0KK+W7luWutueRqQ0KK+W7luaBqeaFiA0KK+W7luabuOePrg0KK+W7luePrueOqw0KK+W7lue0oOWNvw0KK+W7luWBieaIkA0KK+W7luWBiem0uw0KK+W7luWci+WLmw0KK+W7luWfueeRnA0KK+W7luWvhOiQjQ0KK+W7luaDh+ayuw0KK+W7luaik+iMnA0KK+W7lua3keaDoA0KK+W7luiyq+ePrg0KK+W7luaDoOWonw0KK+W7lumAsuW5sw0KK+W7lualt+aWhw0KK+W7luWXvg0KK+W7lumKmOS7gQ0KK+W7lueRqeeShw0KK+W7lumMpueRnA0KK+W7lum6kumWlA0KK+W7luaWjOWCkQ0KK+eGiueri+aWsA0KK+eGiuW0h+e3rw0KK+euoeW5vOS7sg0KK+iHuuaWh+eFpw0KK+ijtOWBieeoiw0KK+ikmuWutuW+tw0KK+i2meS7geS9kQ0KK+i2meaWh+W/oA0KK+i2meW/heaYjA0KK+i2meWQm+adsA0KK+i2meS9qeiKrA0KK+i2meaYjui8nQ0KK+i2meWTgeW9pQ0KK+i2meeCq+WLmw0KK+i2meWutuiJrw0KK+i2meahgumdkg0KK+i2meWBieW7tw0KK+i2meWfuemclg0KK+i2meeajuWQmw0KK+i2memInuW/lw0KK+i2meW7o+WFgw0KK+i2membmemnvw0KK+mEnuixqui8nQ0KK+WKieS5g+iQsQ0KK+WKieWKm+ixqg0KK+WKieWNg+eRnA0KK+WKieWkp+amrg0KK+WKieWtkOmgjg0KK+WKieS7geatow0KK+WKieW/g+WEgA0KK+WKieaWh+WLnQ0KK+WKieaXpemghg0KK+WKieS4luaFtg0KK+WKieato+aysw0KK+WKieeOieaWhw0KK+WKieeOieeQhw0KK+WKieS7sua2tQ0KK+WKieWFqOW9rA0KK+WKieWmguiWsA0KK+WKieaXreiKrA0KK+WKieWQm+elug0KK+WKieW7t+altw0KK+WKieW/l+a6kA0KK+WKieengOmDgQ0KK+WKieiCsuWulw0KK+WKieiCsuepjg0KK+WKieS6nuiKuA0KK+WKieS9s+iKsw0KK+WKieS9s+mBlA0KK+WKieS9qemdkg0KK+WKieWdpOepjg0KK+WKieWul+aAoQ0KK+WKieWunOaYhg0KK+WKieWyoemZtQ0KK+WKieaAoeS8tg0KK+WKieaAoeWSjA0KK+WKieaAoemdnA0KK+WKieaYjOiqoA0KK+WKieaYjuWTsg0KK+WKieaenOePjQ0KK+WKieaso+iMuQ0KK+WKieeOq+Wvpw0KK+WKieiKs+iYrQ0KK+WKiemHkemzsw0KK+WKieS/oeiJrw0KK+WKieS/iuW7tw0KK+WKieS/iuW3lg0KK+WKieWGoOiJrw0KK+WKieWTgeWunA0KK+WKieWnv+WQnw0KK+WKieW7uuWujw0KK+WKieW7uuiJrw0KK+WKieW7uueUug0KK+WKieW9peWNmg0KK+WKieaBquS6ug0KK+WKieaYoOengA0KK+WKieafj+m6nw0KK+WKieebiOWmgg0KK+WKieeni+aIkA0KK+WKiee+juS+lg0KK+WKiee+v+axnQ0KK+WKiei7jeavhQ0KK+WKieS/ruaYjg0KK+WKieWTsueRiw0KK+WKieWutuaYhw0KK+WKieWutumzsw0KK+WKieWzu+S8tg0KK+WKieaMr+S4rQ0KK+WKieabuOWujw0KK+WKiea1mumKmA0KK+WKieebiuemjg0KK+WKiee0lOadjw0KK+WKieWBieiqoA0KK+WKieWci+m+jQ0KK+WKieW6t+alnQ0KK+WKieaVj+eQqg0KK+WKiea3keiOiQ0KK+WKieelpeawkQ0KK+WKieWNmuaWhw0KK+WKieaPmumKmA0KK+WKieacneiTrg0KK+WKieiIkuaFiA0KK+WKiemWlOe1kA0KK+WKiembheiQjQ0KK+WKieWLpOe2kw0KK+WKiea6kOWAqw0KK+WKiee2k+e2uA0KK+WKieWYieiCsg0KK+WKieWYieaoug0KK+WKieeGmeaFpw0KK+WKieiCh+m1rA0KK+WKieW+t+atow0KK+WKieaFp+eOsg0KK+WKieeRqeWonw0KK+WKieabieiKrA0KK+WKieaoueiVmQ0KK+WKieepjuiSqA0KK+WKiemMpuWggg0KK+WKiem+jeWxsQ0KK+WKiem0u+mclg0KK+WKieeAmumZvQ0KK+WKieWvtuWptw0KK+WKieaHv+aFpw0KK+WKieWnteWYiQ0KK+WKieeRi+eOsg0KK+WOsuaWjOS4rQ0KK+atkOWjq+a6kA0KK+atkOW/l+ebiA0KK+atkOaAoeengA0KK+atkOW7uuawkQ0KK+atkOWoieWmpg0KK+atkOmAuOmdkg0KK+atkOmZveaDoOWmgg0KK+atkOepjuWQmw0KK+a9mOWFgeS7gQ0KK+a9mOeOieaDoA0KK+a9mOWuj+Wulw0KK+a9mOS9qeWQmw0KK+a9mOaAoeWQmw0KK+a9mOeOn+aoug0KK+a9mOWGoOWujw0KK+a9mOW7uuaIkA0KK+a9mOaUv+e3rw0KK+a9mOe+jueOsg0KK+a9mOiDveWTsg0KK+a9mOaDoOWonw0KK+a9mOeRnummmQ0KK+a9mOWEgOaBrA0KK+a9mOm0u+mKmA0KK+a9mOmIuuaflA0KK+iUo+S4reihjQ0KK+iUo+ayhuelpQ0KK+iUo+WunOmdnA0KK+iUo+mVt+aXuw0KK+iUo+a3keaFpw0KK+iUo+a/seW3ng0KK+iUoeWjq+aXug0KK+iUoeS7geWBiQ0KK+iUoeWkqeelug0KK+iUoeaWh+WNmg0KK+iUoeaWh+m0uw0KK+iUoeS4lum0uw0KK+iUoeato+Wulw0KK+iUoeeOieeniw0KK+iUoeS6pumbrw0KK+iUoeWQjeabuA0KK+iUoeaXreabnA0KK+iUoeS8r+m0uw0KK+iUoeWuj+WfuQ0KK+iUoeW/l+aYjg0KK+iUoeW/l+m0uw0KK+iUoeaxtum0uw0KK+iUoeiCsuatow0KK+iUoeiCsuWLsw0KK+iUoeS+neWuuQ0KK+iUoeS9s+Wujw0KK+iUoeS9s+iKrA0KK+iUoeS9s+WuuQ0KK+iUoeS9s+iTiQ0KK+iUoeS9s+mclg0KK+iUoeS9qeWQmw0KK+iUoeS9qeePig0KK+iUoeS9qeWopQ0KK+iUoeS9qeepjg0KK+iUoeWFtuePrg0KK+iUoeWdpOmbhA0KK+iUoeWlh+mclg0KK+iUoeWtn+iKsw0KK+iUoeWtn+ecnw0KK+iUoeWtn+irrQ0KK+iUoeWul+W/lw0KK+iUoeWul+mBlA0KK+iUoeWul+e/sA0KK+iUoeWunOW7tw0KK+iUoeWunOWAqQ0KK+iUoeWunOmclg0KK+iUoeWwmuWysw0KK+iUoeWys+abuA0KK+iUoeW5uOa3sw0KK+iUoeW/oOepjg0KK+iUoeaJv+eSiw0KK+iUoeaYk+mZng0KK+iUoeaYjOWEkg0KK+iUoeaYjuaxjg0KK+iUoeaYjuiKsw0KK+iUoeaYjuWzsA0KK+iUoeaYjuiSsg0KK+iUoeaYjum+jQ0KK+iUoeaYh+epjg0KK+iUoeadsOW/lw0KK+iUoeaso+aAoQ0KK+iUoeatpuirug0KK+iUoeenieaYhg0KK+iUoeiKs+a0tQ0KK+iUoemHkem+jQ0KK+iUoeS/oeiJrw0KK+iUoeWTgeWEgA0KK+iUoeaAneaNtw0KK+iUoeaUv+WTsg0KK+iUoeaUv+m+jQ0KK+iUoeeOsua0pQ0KK+iUoee+juiKnQ0KK+iUoemDgeWQmw0KK+iUoeWon+Wonw0KK+iUoeaCheeOnw0KK+iUoeePruaAoQ0KK+iUoeWBieadsA0KK+iUoeWfueitrw0KK+iUoea3u+aWhw0KK+iUoea3keeOsg0KK+iUoea3keiWhw0KK+iUoeWLnembhA0KK+iUoeWvjOiytA0KK+iUoeaDoOeHlQ0KK+iUoeaZuuaakA0KK+iUoeiIkuWuhw0KK+iUoemAuOePig0KK+iUoembheiKrA0KK+iUoembheiPgQ0KK+iUoeWCs+W+tw0KK+iUoeeRnuaWhw0KK+iUoeijleWBpQ0KK+iUoeWYieaBhg0KK+iUoeamruaYjA0KK+iUoeeip+WuuQ0KK+iUoeijtOS8tg0KK+iUoemKmOizog0KK+iUoeaFp+awkQ0KK+iUoeizoueahw0KK+iUoeabieeEtg0KK+iUoee/sOeGig0KK+iUoemdnOWunA0KK+iUoem0u+awkQ0KK+iUoeixkOaWhw0KK+iUoem1keW9jA0KK+iUoem6l+aDoA0KK+iUoemmqOWEgA0KK+iUoeaXu+aGsg0KK+iUoeeRi+erkQ0KK+mEreS4gOWHoQ0KK+mEreWKm+S7gQ0KK+mEreWtkOimiw0KK+mEreS7geWvjA0KK+mEreW/g+Wmgg0KK+mEreaWh+WvjA0KK+mEreS4luaYjA0KK+mEreW3p+mdkg0KK+mEreeOieS8tg0KK+mEreeri+S6qw0KK+mEreS7suWujw0KK+mEreWFiea3sw0KK+mEreWQj+WtnA0KK+mEreWmguasow0KK+mEreWuh+a3qA0KK+mEreaIkOajoA0KK+mEreeZvuWptw0KK+mEreS8r+WNlw0KK+mEreW/l+WKnw0KK+mEreengOWonw0KK+mEreiyneWmgg0KK+mEreS9s+WEgA0KK+mEreWtn+eOsg0KK+mEreaAoeWQmw0KK+mEreaYjuW/oA0KK+mEreaso+amrg0KK+mEreS/iuWujw0KK+mEreW9pemBlA0KK+mEree+jueOiQ0KK+mErei/quWFgQ0KK+mEreaMr+WunA0KK+mEreelkOmYoQ0KK+mEreWBieePig0KK+mEreWfueiBsA0KK+mEreaiheWQmw0KK+mErea3keexsw0KK+mErea3keeHlQ0KK+mEreiOiembrw0KK+mEreWHseaWhw0KK+mEreWLneaXrQ0KK+mEreWWrOmKmA0KK+mEreaDoOaWhw0KK+mEreaDoOmcnA0KK+mEreaZr+aWhw0KK+mEreaZuuWFgw0KK+mEreacneeHnw0KK+mEreeak+S6kQ0KK+mEree/lOm+jQ0KK+mEreiplOismQ0KK+mErembheWPiw0KK+mErembheiKrA0KK+mErembheeUhA0KK+mEreaEj+S4rQ0KK+mEreeRnOeQsw0KK+mEreijleW5tA0KK+mEreWYieaPmg0KK+mEreiCh+W/gw0KK+mEreaFtuWTsg0KK+mEreiUmuifrA0KK+mEreabieiWhw0KK+mEremdnOiKsw0KK+mErem0u+a6kA0KK+mEreeNu+aWhw0KK+mEreWftQ0KK+mEremdiw0KK+mEp+awuOW/oA0KK+mEp+aXreaVpg0KK+mEp+aYjuiKsw0KK+mEp+aMr+iLsQ0KK+mEp+WNmuS7gQ0KK+mEp+e/lOS7gQ0KK+mEp+emj+mahg0KK+mEp+WKpuWRiA0KK+m7juS4luW7iQ0KK+m7juS/kOWdhw0KK+m7jumKmOS7gQ0KK+ebp+S7geadsA0KK+ebp+W8mOa1tw0KK+ebp+WQieWLhw0KK+ebp+iCsuiBlg0KK+ebp+WumuWdhw0KK+ebp+aAoea2tQ0KK+ebp+mbqOa2tQ0KK+ebp+S/iuWEkg0KK+ebp+Wogemclg0KK+ebp+aAnea6kA0KK+ebp+e+juWmgg0KK+ebp+WutumIug0KK+ebp+a3kem6lw0KK+ebp+aEt+iOiQ0KK+ebp+aFp+WunA0KK+ebp+m+jeeUnw0KK+ebp+etseeRqQ0KK+iVreWwueiyng0KK+iVreaWh+ethg0KK+iVreS7peS6rg0KK+iVreeOieiyng0KK+iVreWFhueQsw0KK+iVreWmguePig0KK+iVreacieWujw0KK+iVreWuj+ijlQ0KK+iVreiCsumahg0KK+iVreWto+iWhw0KK+iVreaYhuW7tw0KK+iVremdkuiQjQ0KK+iVree+juWonw0KK+iVreaMr+WuiQ0KK+iVreWci+atow0KK+iVrea4heeHlQ0KK+iVrembquWQnw0KK+iVreWNmuS7sA0KK+iVreaDoOiKsw0KK+iVreaZuuaihQ0KK+iVreipoOaWuQ0KK+iVrembheaWhw0KK+iVreaEm+eOsg0KK+iVreipqeeShw0KK+iVree2reWAqQ0KK+iVreaFp+aAoQ0KK+iVremdnOWunA0KK+iVrem2tOi7kg0KK+iztOS5g+mgjA0KK+iztOWkqem0uw0KK+iztOS4lue2rQ0KK+iztOato+mHjg0KK+iztOeOiemcnA0KK+iztOaXreW9pQ0KK+iztOW7t+emuQ0KK+iztOW/l+e2sQ0KK+iztOiCsuW7tw0KK+iztOS9s+asow0KK+iztOWtn+iPrw0KK+iztOWxheatow0KK+iztOaAoeWQmw0KK+iztOaYjuWujw0KK+iztOaso+WunA0KK+iztOiKs+W7tg0KK+iztOS/oeiqoA0KK+iztOS/iumBlA0KK+iztOWLh+W/lw0KK+iztOWogeWdhw0KK+iztOW7uuS9kQ0KK+iztOW9peS9kA0KK+iztOaAnemclg0KK+iztOaYrem+jQ0KK+iztOafj+m+jQ0KK+iztOe0hemcng0KK+iztOiMguW7tw0KK+iztOmDgembrw0KK+iztOa1qeixkA0KK+iztOWci+aBqQ0KK+iztOa3keaAoQ0KK+iztOiOiembrw0KK+iztOiytOe+qQ0KK+iztOmghuaMrw0KK+iztOiRpuW4hg0KK+iztOamrueSiQ0KK+iztOaFtumKmA0KK+iztOmLkg0KK+iztOmMpuWEhA0KK+iztOm6lw0KK+iztOafiuajiw0KK+mBsuWwmuasig0KK+mMouaso+WunA0KK+mMouW+t+S/ig0KK+mcjeiOmOeRnA0KK+mnseiKs+aipw0KK+mnseWYieaFtg0KK+m+jeaYn+WFhg0KK+aItOS5meiPgQ0KK+aItOaWh+mbhA0KK+aItOWFqOWIqQ0KK+aItOWuj+S4ng0KK+aItOS9s+W5sw0KK+aItOaYjuePoA0KK+aItOaMr+mBoA0KK+aItOiOiQ0KK+aItOWCs+Wutg0KK+aItOWYieWujw0KK+aItOizouelpQ0KK+aItOiWj+ePig0KK+iWm+S4ueahgg0KK+iWm+WFieeoiw0KK+iWm+S+neiSqA0KK+iWm+Wllem+jQ0KK+iWm+WBieS8rw0KK+iWm+aZr+aWhw0KK+iWm+eRnuePjQ0KK+iWm+WEkumcmQ0KK+isneS6juaruw0KK+isneW/g+mbhQ0KK+isneaWh+eRnA0KK+isneW8mOS6rg0KK+isneeOieePoA0KK+isneWmgum0uw0KK+isneS9kOWunA0KK+isneWuj+W/oA0KK+isneW/l+aYjg0KK+isneaJtumMpg0KK+isneiCsuWonw0KK+isneS+neWAqw0KK+isneS9s+WAqQ0KK+isneS9s+epjg0KK+isneS9qeiKsw0KK+isneS9qeecnw0KK+isneWRqOeGvg0KK+isneWtn+iKuA0KK+isneWtn+iKqQ0KK+isneWul+izog0KK+isneWunOiKsw0KK+isneWunOiHuw0KK+isneWwmuWEkg0KK+isneaAoeWptw0KK+isneaYk+mclg0KK+isneaYjuWujw0KK+isneaYjuWAqw0KK+isneaYjuaGsg0KK+isneaYh+WTsg0KK+isneadvuaGsg0KK+isneaso+mHlw0KK+isneenieirug0KK+isnemVt+WOnw0KK+isneS/iuWujw0KK+isneW9peWQjw0KK+isneafj+iInw0KK+isnee+jueOsg0KK+isneWutuiPsQ0KK+isnee0oOiPsQ0KK+isneWci+W9rA0KK+isneaik+m6nw0KK+isnea3keWonw0KK+isneWHseWBiQ0KK+isneW1kOWxjw0KK+isneaZr+S7gQ0KK+isneeak+aZug0KK+isnembhembqg0KK+isnemghumahg0KK+isneiQrOm+jQ0KK+isneWYiemKmA0KK+isnee/oOeSsA0KK+isnemzs+eOsg0KK+isneaFp+eTig0KK+isneeHleeOsg0KK+isnemdnOWunA0KK+isnem0u+mnvw0KK+isneeTiuaWhw0KK+isnemhr+mKmA0KK+isneeFkumguw0KK+mNvuWFg+aMrw0KK+mNvuaciOWckw0KK+mNvuWFhuawkQ0KK+mNvuWtneWFtg0KK+mNvuengOiKsw0KK+mNvuS9s+epjg0KK+mNvuWNk+WEkg0KK+mNvuWunOiIiA0KK+mNvuaJv+eSiw0KK+mNvuaYjuaGsg0KK+mNvuenieirug0KK+mNvuaUv+awkQ0KK+mNvue+jueQsw0KK+mNvuWVhumnvw0KK+mNvua3keiQjQ0KK+mNvuaZuuWCkQ0KK+mNvumbsuWFiQ0KK+mNvuemjuWFgw0KK+mNvuaoguWQnw0KK+mNvuiWsOWrug0KK+meoOWyseeQpg0KK+mfk+S9qeWKrQ0KK+mfk+ebuOWunA0KK+mfk+WYiemnvw0KK+ewoeWjq+ebig0KK+ewoeaWh+S6qA0KK+ewoeW3p+Wptw0KK+ewoeeri+S6ug0KK+ewoeWuh+Wxjw0KK+ewoeS8tuWonw0KK+ewoeWuj+WAqw0KK+ewoeW/l+mbhA0KK+ewoeengOe0lA0KK+ewoeS9qeeQqg0KK+ewoeaYjumbgQ0KK+ewoeaYreiQuA0KK+ewoeWutuaWsA0KK+ewoeWci+aWjA0KK+ewoea3keWptw0KK+ewoeajruS5mQ0KK+ewoemghueriw0KK+ewoeeRnuajuw0KK+ewoeWYieWujw0KK+ewoeemjuS9kQ0KK+ewoemKmOi+sA0KK+ewoeaGtuWmgg0KK+ewoempqua9lA0KK+iBtuadseWNlw0KK+iXjeWFg+eakw0KK+iXjeS7suWBiQ0KK+iXjeaYpeeZvA0KK+iXjeWci+iPrw0KK+iXjembhem9oQ0KK+iXjem7m+eRqQ0KK+mXlemAouavhQ0KK+mhj+Wkp+emjw0KK+mhj+W8mOelpQ0KK+mhj+WmgueOiQ0KK+mhj+WRiOaXrQ0KK+mhj+Wuj+WPoQ0KK+mhj+W/l+m6nw0KK+mhj+Wul+W5sw0KK+mhj+WlleS7gQ0KK+mhj+Wutuelug0KK+mhj+WwieWHsQ0KK+mhj+iPr+aIkA0KK+mhj+eRnuaWhw0KK+mhj+WYieaIkA0KK+mhj+emj+mghg0KK+mhj+a+pOWuhw0KK+mhj+mIuuiKuA0KK+mtj+S7geWogQ0KK+mtj+S7u+W7tw0KK+mtj+eZvuebmw0KK+mtj+WtneWvrA0KK+mtj+engOaBrA0KK+mtj+aYjueroA0KK+mtj+iLsemOrg0KK+mtj+W0h+ahkw0KK+mtj+acneS/oQ0KK+mtj+etoOaWhw0KK+mtj+WrpuWmnQ0KK+mtj+aFleW4hg0KK+mtj+eRhOiqvA0KK+e+heWtkOi7kg0KK+e+heWFg+eUqw0KK+e+heW/g+Wxjw0KK+e+heaciOWHsA0KK+e+heW3p+iOiQ0KK+e+heeOieiQjQ0KK+e+heWFhue2rQ0KK+e+heWuj+S4gA0KK+e+heS6nuWvpw0KK+e+heaAoeaDoA0KK+e+heiKt+mdkg0KK+e+hee+juiTrg0KK+e+heaMr+W7tw0KK+e+hee0oOiKsQ0KK+e+heWci+iPrw0KK+e+heW8tw0KK+e+hea3h+aWhw0KK+e+heWCkQ0KK+e+heaDoOiYrQ0KK+e+heiPr+a/gw0KK+e+hembr+eQtA0KK+e+heiBlueQsw0KK+e+hemam+W3nQ0KK+e+heabieWogQ0KK+e+hemmqOWunA0KK+itmuWFieiPrw0KK+itmuirpg0KK+mXnOa3kembsg0KK+WatOWPr+WQmw0KK+WatOWpieeOsg0KK+WatOe2reW+tw0KK+iXuuW/g+aAoQ0KK+iYh+WtkOe/lA0KK+iYh+aWh+Wonw0KK+iYh+W3p+Wvpw0KK+iYh+eOieS/rg0KK+iYh+erueWuiQ0KK+iYh+W/l+WghQ0KK+iYh+iCsuW8mA0KK+iYh+S9s+i2sw0KK+iYh+aAoeWmgg0KK+iYh+aAoemmqA0KK+iYh+atpum+jQ0KK+iYh+mdkuWmmQ0KK+iYh+S/iumKmA0KK+iYh+WlleWCkQ0KK+iYh+W7uuW/lw0KK+iYh+aBhuiHsw0KK+iYh+afj+W3ng0KK+iYh+eah+WOnw0KK+iYh+e+jueOsg0KK+iYh+iynueHlQ0KK+iYh+WAieawuA0KK+iYh+WutuS/oQ0KK+iYh+W6reeRpA0KK+iYh+ebiuelvw0KK+iYh+i7kuawkQ0KK+iYh+Wgguixqg0KK+iYh+a4heWuiQ0KK+iYh+WNmueOhA0KK+iYh+a5mOaAoQ0KK+iYh+mbheWQmw0KK+iYh+mghuiqoA0KK+iYh+eMt+e/lA0KK+iYh+iBlua2tQ0KK+iYh+mdluW1kA0KK+iYh+iBnuisuQ0KK+iYh+aFp+Wonw0KK+iYh+abieiKgw0KK+iYh+iBsuaMrw0KK+iYh+aXu+WQmw0KK+iYh+eRi+eQsw0KK+mQmOWjq+asvQ0KK+mQmOS9s+e1uQ0KK+mQmOaVj+aEqw0KK+mQmOeip+iYrQ0KK+mlkuS6rg0KK+m7qOS4gOeCug0KK+mhp+WAqeWmgg0KK+m+lOS6juePig0KK+m+lOS9qeWQmw0KK+m+lOabuOiBlg0KK+m+lOmdluipkg0KK+S9mOWwmum0uw0KK+a2guS4luWSjA0KK+a2guaUv+eUtw0KK+a2guWvjOaYnw0KK+a2guaFp+ePjQ0KK+eymOiCsueRiw0KK+mElOW/g+aAoQ0KK+askuWto+W8tw0KK+6AgOmKmOa6kA0KK+OCouOCreODouODiCzjg6TjgrnjgqoNCivjgqLjgqTjgqvjg68s44OO44Oq44KqDQor44Ki44Kr44OE44KrLOOCq+OCuuODkuOCsw0KK+OCouODr+OCuizjgqLjgq3jg6kNCivjgqLjgrXjg44s44Oo44K344OkDQor44Ki44Op44KtLOODqOOCt+OCq+OCug0KK+OCpOODjuOCpuOCqCzjg5Ljg63jg5Ljg4gNCivjgqvjg4jjgqYs44Oe44K144OI44K3DQor44OK44Kr44Og44OpLOOCseOCpOOCvuOCpg0KK+ODleOCuOODr+ODqSzjgr/jgqvjgrMNCivjg6Tjg4rjgq7jg4/jg6ks44Of44OJ44OqDQor44Kr44Ov44OALOODiuOCquOCsw0KK+OCpOOCt+ODjizjgq3jg6jjg4rjgqwNCivjgrTjg4jjgqYs44Kr44OE44OO44OqDQor44Kk44K344K444OeLOODquODp+OCpuODmOOCpA0KK+OCouODiOOCpizjg57jgrXjg47jg6oNCivjg5/jgrfjg54s44K/44Kr44Om44KtDQor44Of44Oo44K3LOODjuODluODnuOCtQ0KK+OCv+ODgeODjizjgrjjg6Xjg7MNCivjgqrjgqrjg44s44Kr44K644KqDQor44Kt44K/44Ks44OvLOODqOOCt+OCv+OCqw0KK+ODleODq+OCteODryzjgrXjg4jjgrcNCivjgqrjgqrjg4/jgrcs44OS44OI44K3DQor44Oo44K344Kr44OvLOODiOOCt+ODpuOCrQ0KK+OCq+ODr+OCpCzjg4jjgrfjgqoNCivjgqTjgrfjg4gs44Kz44Km44KtDQor44Kk44Oe44KkLOOCv+OCq+ODpuOCrQ0KK+ODpOODnuODiuOCqyzjgrXjg4Tjg58NCivjg5vjg6rjgqvjg68s44Kr44OE44OfDQor44K544K644KtLOOCt+ODpeODs+OCuA0KK+OCouODr+OCqCzjgqLjg4TjgrcNCivjg4rjgqzjgrss44K/44Kr44OS44OtDQor44Kz44OQ44Ok44K3LOOCuOODpeODs+OCpOODgQ0KK+ODnuOCqOODgCzjg5Ljg63jgrcNCivjgqvjg4jjgqYs44Oe44K144Kr44K6DQor44K544Of44K/LOOCq+OCquODqw0KK+OCu+OCreOCsOODgSzjgr/jgqvjg6bjgq0NCivjgr/jg4rjgqss44OG44Or44OS44K1DQor44OS44Op44OOLOOCv+OCq+OCtw0KK+ODj+ODnuOCsOODgSzjgrfjg7PjgrgNCivjgrXjgqvjgqzjg58s44OO44Oq44Kr44K6DQor44Kz44OQ44Ok44K3LOODpOOCueOCtw0KK+OCv+OCreODouODiCzjg47jg6rjgrMNCivjg5vjgrcs44OS44Ot44OV44OfDQor44Kq44Kq44K/44KrLOODpuOCpuOCsw0KK+OCueOCruODoOODqSzjgrfjgrLjgqoNCivjgqLjgqrjgq0s44Oe44K144OrDQor44OK44Kr44OP44OpLOODpuOCpuOCvuOCpg0KK+OCq+ODiOOCpizjgqrjgrXjg6ANCivjg57jgqjjgrXjgqss44OI44Oi44Of44OEDQor44OV44K444K/44OLLOOCq+OCuuODkuOCsw0KK+ODm+ODg+OCvyzjgrfjgrLjg5Ljg4gNCivjgqLjgq3jg6Tjg54s44Om44K/44KrDQor44OV44K444K/LOODnuOCteODpuOCrQ0KK+ODiOODqOODiuOCrCzjg6Tjgrnjg5Ljg60NCivjg4/jg4Pjg4jjg6os44Oe44K144KqDQor44OO44Og44OpLOOCt+OCsuOCqg0KK+OCq+ODr+OCt+ODnizjgr/jgqvjgrMNCivjg6Djg63jg6Qs44OG44OE44KqDQor44Ki44K344Kr44OvLOODpOOCueOCt+OCsg0KK+ODj+ODpOOCtyzjgr/jgqvjgqoNCivjg5/jg6Tjgqzjg68s44OV44Of44OO44OqDQor44Kq44Kw44OpLOODpOOCueODkuODrQ0KK+ODqOOCt+ODgCzjg4jjgrfjg5LjgrMNCivjgq/jg4njgqYs44OS44Ot44K3DQor44Kv44Oe44Ks44KkLOOCv+OCq+ODpuOCrQ0KK+ODi+OCt+OCqizjg5Ljg4fjgq0NCivjgqrjgqrjgqTjg6Tjg54s44OO44Oc44OrDQor44K/44Kx44K/44OLLOODleODiOOCtw0KK+OCpOOCt+ODgCzjgqvjg4Tjg6QNCivjgqrjgqTjgqvjg68s44OO44OW44Ki44KtDQor44K/44Kr44OP44K3LOOCu+OCpOOCuA0KK+ODoOODqeOCvyzjg4jjgqrjg6sNCivjgrnjgrrjgq0s44K544K544OgDQor44OP44Ok44K3LOOCt+ODs+ODgeODp+OCpg0KK+OCr+ODreOCq+ODryzjg57jgrXjgqLjgq0NCivjg6Tjgrjjg54s44OI44Kq44OrDQor44Kr44OE44Op44KkLOODr+OCv+ODqw0KK+OCouOCq+ODqizjg6rjg6fjgqbjgrgNCivjgqLjgrrjg54s44OO44OW44Om44KtDQor44Ki44OE44OfLOOCt+ODpeOCpuOCuA0KK+ODnuODq+OCqizjg6jjgrfjg6bjgq0NCivjgqTjgrHjgqos44Of44OO44OrDQor44OI44Oq44Ok44OeLOODquODhOOCqg0KK+ODj+ODnuODjizjg6jjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Kz44Km44K/44Ot44KmDQor44Kz44Km44OBLOODpuOCpuOCueOCsQ0KK+ODiuOCq+OCuOODnizjg47jg6rjg5LjgrMNCivjgqLjg6ks44OS44Ot44K3DQor44Ob44K944Kr44OvLOODnuOCteODkuODrQ0KK+OCpOOCuuODnyzjgqvjg43jg5/jg4QNCivjgqLjg6/jgrgs44Ki44OE44KqDQor44Of44K644OS44KtLOODqOOCt+OCqg0KK+OCquODgOOCuOODnizjg4rjg5vjg58NCivjg5Xjg6vjgqvjg68s44K344Ky44KqDQor44Of44K644Kw44OBLOOCuOODreOCpg0KK+OCpOODiOOCpizjg5Ljg63jgrcNCivjg5Xjgq/jgqQs44K144OI44K3DQor44OV44K444OP44OpLOOCv+OCseODkuODiA0KK+ODpOODjizjg6bjgqbjgrgNCivjg4/jg6TjgrfjgrDjg4Es44OS44Ot44K3DQor44Ob44OqLOODiOOCt+ODpuOCrQ0KK+ODqOOCt+OCpCzjgr/jgqvjgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44K3DQor44OP44K/LOOCs+OCpuOCpOODgQ0KK+OCs+ODkOODqizjg5Ljg4fjg6bjgq0NCivjgqrjg4Djgrfjg54s44Kr44OE44Ot44KmDQor44Km44Ko44Ok44OeLOODn+ODhOODiuODqg0KK+ODoOOCvyzjg57jg4rjg5YNCivjgr/jg4rjgqss44K344Ky44KqDQor44Kz44Oz44OOLOODpuOCpuOCsw0KK+ODleOCuOODr+ODqSzjg4jjgrfjg4/jg6sNCivjg5/jg6Tjgq0s44Om44K/44KrDQor44OP44OK44OvLOODnuOCteODkuODrQ0KK+ODhuOCuOODnizjgqLjgq3jg6kNCivjgq/jg5ws44Ki44OE44K3DQor44Kq44Kq44OQLOOCt+ODs+OCtA0KK+OCs+ODs+ODjizjgr/jgq/jg6QNCivjg57jg4Tjg5Djg6ks44OS44OH44KqDQor44OP44K344Oi44OILOOCueODn+OCsw0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg5Ljg60NCivjgrPjgr/jgq0s44OG44OE44OkDQor44OV44Kr44OkLOODouODouOCrQ0KK+ODnuODhOOCpuODqSzjg4bjg4Pjg5rjgqQNCivjg5Xjg4rjg4As44Kr44K644OS44KzDQor44OS44Ks44K344OALOODiOOCt+ODpuOCrQ0KK+OCpOODjuODnuOCvyzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44OS44Ot44OfDQor44Kk44OI44KmLOOCv+ODhOOCtw0KK+ODn+OCv+ODoOODqSzjg57jg6bjg58NCivjgrnjgqzjg4/jg6ks44Of44OE44OrDQor44K/44Kr44Of44OkLOODkuODh+ODjuODlg0KK+ODpOODnuOCsOODgSzjgrPjgrnjgrENCivjgqrjgr8s44OE44Oo44K3DQor44K744OO44KqLOODj+OCuOODoQ0KK+OCt+ODkOOCtuOCrSzjgqLjg4TjgrcNCivjg4rjgqvjg6Djg6ks44Ok44K544OS44OtDQor44OV44K444Kr44OvLOODkuODreODpuOCrQ0KK+OCouODqeOCpCzjg6rjg6XjgqbjgrgNCivjgqrjgqrjgq/jg6ks44OS44K144OO44OqDQor44Oe44OE44OQLOOCt+OCsuODqw0KK+OCv+ODoeODkuODrSzjg6Ljg4jjgrMNCivjg57jg7Pjg50s44Kr44OE44OfDQor44Kz44Kw44OBLOOCv+OCq+OCtw0KK+OCv+ODi+OCsOODgSzjg4rjgqrjgrnjgrENCivjg6Tjg57jg6Ljg4gs44K/44Kr44OS44OtDQor44OS44Op44Oi44OILOODkuODh+OCouOCrQ0KK+OCouODs+ODqeOCryzjgr/jgqvjgrcNCivjgr/jg4rjgqss44OO44Oq44KzDQor44OB44Oj44KtLOOCt+OCsuODkuODhw0KK+OCteOCq+OCpCzjg4Hjg4/jg6sNCivjgqTjg4rjgqrjgqss44OS44Ot44Kr44K6DQor44Km44K344K444OeLOOCt+ODs+OCpOODgQ0KK+OCs+OCseODhCzjgqLjgq3jg5LjgrUNCivjg6Djg6njgr8s44OS44OI44K3DQor44Kt44Og44OpLOODqOOCt+ODkuODrQ0KK+OCt+ODs+OCv+ODiyzjg6rjg6XjgqbjgrgNCivjgqrjgqrjg4/jgr8s44OO44OW44Ki44KtDQor44K/44OW44OBLOODpuOCv+OCqw0KK+OCueODn+ODgCzjgq3jg6jjgrcNCivjg5/jgqbjg6ks44OK44OK44KzDQor44Oq44Ol44Km44OILOODkuODreODnw0KK+OCpOOCseODgCzjg5Ljg63jg4rjg6oNCivjgr/jgqvjg6Tjg4rjgq4s44OS44Ot44OV44OfDQor44Ko44Oz44OJLOOCseODs+OCpOODgQ0KK+OCquOCt+OCq+ODryzjgrfjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44OS44OH44Om44KtDQor44Ok44Oe44OALOOCpOODr+OCqg0KK+OCquODgCzjg57jgrXjgqoNCivjgr/jgq3jgrbjg68s44Ki44OE44K3DQor44Oi44OqLOODpOOCueODjuODqg0KK+OCq+ODiuOCtuODryzjgr/jg4Tjg6bjgq0NCivjgqrjgqrjgr8s44K/44Kr44Ki44KtDQor44Kq44Kq44OELOODhuODhOODreOCpg0KK+ODleOCuOODouODiCzjgqvjgrrjg5Ljg60NCivjg6Ljg6rjgqvjg68s44Oe44K144OO44OWDQor44Kk44OI44KmLOOCs+OCpuOCuA0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjgqbjgqjjg44s44Oo44K344OS44KzDQor44Kq44Kq44Kr44OvLOOCteOCq+OCqA0KK+ODnuODq+OCpCzjgrjjg6Xjg7PjgrMNCivjgqTjg6/jgqos44K344Ol44Km44K4DQor44Km44Oh44OALOOCq+OCuuODpA0KK+ODoeOCq+OCvyzjg57jgrXjg6sNCivjg4Tjgrgs44OE44Kw44OS44KzDQor44K/44K0LOODkuODreOCtw0KK+ODpOODnuOCt+OCvyzjg57jgrXjg4gNCivjgrnjgq7jg6Tjg54s44OS44Ot44Om44KtDQor44OV44K/44OQLOODiOOCt+OCouOCrQ0KK+ODn+ODpOODkuODqSzjg5/jg4HjgqLjgq0NCivjg4vjgrfjgrbjgq0s44K544K544OgDQor44K/44OK44KrLOOCr+ODi+OCsw0KK+ODoOODqeODouODiCzjg4jjg6LjgqLjgq0NCivjg57jgqjjg4As44OS44K144Kr44K6DQor44Of44Ok44KxLOOCouODhOOCtw0KK+ODiOOCpuOCuOODnizjgr/jg4Tjg5Ljg60NCivjgqrjgqrjg6Qs44Oe44K144OrDQor44Km44Ko44OOLOODiOODouODkuODrQ0KK+OCv+OCq+OCteOCrSzjg6Tjgrnjg5LjgrUNCivjgrPjg7Pjg44s44Oo44K344OS44K1DQor44K/44Kx44KqLOODjuODquOCq+OCug0KK+OCq+ODiuODpOODnizjg6Tjgrnjg5LjgrMNCivjgqrjgqrjgqrjgqss44OI44K344Ot44KmDQor44Kz44OQ44Ok44K3LOOCt+ODpeOCpg0KK+ODi+OCt+OCtuOCqyzjg5/jgqsNCivjg57jgrnjg5/jg4As44OI44Oi44OS44KzDQor44OE44Oc44KkLOODpOOCueOCqg0KK+OCv+OCrOODnyzjg57jgrXjg6sNCivjgqrjgqvjg4As44OG44Or44KqDQor44Kr44K/44Ku44OqLOOCteODiOOCtw0KK+OCq+ODr+ODhizjgr/jgqvjgrcNCivjg5/jgrrjgqQs44Ki44Ok44KqDQor44Kr44K144Kq44KrLOODiOOCt+ODkuOCsw0KK+ODkuOCrOOCt+OCv+ODiyzjg5Ljg4fjg5Xjg58NCivjgqbjgrfjgq0s44Kr44K644Kk44OBDQor44OS44Op44K144OvLOODiuOCrOOCsw0KK+ODiuODquOCvyzjgrfjg6XjgqbjgqTjg4ENCivjgrPjg4Djg54s44Kr44K644OS44OtDQor44Kk44OO44Oe44K/LOODkuODreODnw0KK+OCreODoOODqSzjgrfjg6fjgqbjgrQNCivjgqTjg4jjgqYs44OV44Of44KqDQor44Ov44K/44OK44OZLOODhuODq+OCouOCrQ0KK+ODhuODqeOCteODryzjg5/jg4TjgqoNCivjg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44Ki44K144Kv44OpLOOCt+ODs+ODpA0KK+ODpOODnuOCrSzjgrPjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44K344Oz44Kk44OB44Ot44KmDQor44Ko44OO44Oi44OILOODkuODreODn+ODgQ0KK+OCq+ODnuOCvyzjgr/jgqvjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44OK44Kq44KtDQor44Ki44Op44KkLOODqOOCt+ODnw0KK+OCq+ODquODpCzjgr/jgqvjg5LjgrMNCivjgrPjg7Pjg4ks44Oo44K344KtDQor44Oe44K544OALOODkuODreOCqg0KK+OCpOODiOOCpizjgrHjgqTjgrnjgrENCivjgqrjgqss44Of44OB44OP44OrDQor44Kq44Kq44OE44KrLOODkuODh+OCrQ0KK+ODnuODhOOCqizjgrPjgqbjgrgNCivjgqLjgr0s44OG44Or44Kr44K6DQor44Kr44Of44Og44OpLOODkuODreODpuOCrQ0KK+OCv+OCq+ODkOOCv+OCsSzjgrfjgrLjg47jg6oNCivjg5Xjgq/jg4As44OS44Ot44Om44KtDQor44K/44Kr44OP44K3LOOCseODs+ODiA0KK+OCpOODr+OCrSzjg57jgrPjg4gNCivjgrnjg7Ms44OI44Oo44Om44KtDQor44Ki44Oz44OJ44KmLOODqOOCt+OCqg0KK+ODj+OCt+ODouODiCzjgqvjg4oNCivjg6Tjg4/jgr8s44OS44OH44KqDQor44OV44K444KtLOOCseODs+OCuA0KK+ODnuODhOOCqizjgrXjg4jjgrcNCivjgqLjgqrjgq0s44Oo44Km44Kk44OB44Ot44KmDQor44K044OI44KmLOOCt+ODs+OCuA0KK+ODi+OCt+OCq+ODryzjg5Ljg4jjgrcNCivjgrnjg5/jg4gs44Oe44K144OV44OfDQor44OS44Op44OOLOOCs+OCpuOCuA0KK+OCpOODiOOCpizjgrHjgqQNCivjgrPjgqTjgrrjg58s44OO44Oq44KzDQor44Kr44Ov44OQ44K/LOODjuOCvuODnw0KK+ODoOODiOOCpizjgqvjg4Tjg47jg6oNCivjgqLjg4Djg4Es44Oe44K144K3DQor44Kt44OpLOODnuOCteOCtw0KK+OCouODpOODjizjgrPjgqbjgq0NCivjgr/jg6vjgqQs44Oo44K344KqDQor44OP44Ok44K3LOOCreODp+OCpuOCsw0KK+OCpOOCseODgCzjgrjjg6Xjg7MNCivjg5vjg6rjg5/jgr4s44Kx44Kk44K544KxDQor44OV44Or44OK44KsLOODj+ODq+ODkuOCsw0KK+OCquOCt+ODnizjg4rjgrnjgqoNCivjg4/jg6Tjgrcs44OS44OI44K3DQor44OL44K3LOODpuOCreODn+ODhA0KK+OCs+ODoOODrSzjgqvjg4rjg6ENCivjg5Ljg63jgr/jg4ss44Oo44K344KqDQor44K544KsLOODkuODreOCtw0KK+ODhOODq+ODnyzjgqLjgq3jg5LjgrUNCivjg4jjg5/jg6Tjg54s44Kr44K644Of44OEDQor44Ok44Oe44K244KtLOODqOOCpuOCsw0KK+OCpOOCt+ODgCzjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjgqbjg4Hjg4jjg58s44Ki44Kt44OpDQor44Kq44Kq44K144OvLOODqOOCt+OCq+OCug0KK+ODpOODiuOCrizjg5Ljg4fjg5Ljg60NCivjg5/jg6Tjgrfjgr8s44OS44OH44KtDQor44K/44Kr44OP44K3LOOCs+OCpuOCuA0KK+ODiOOCrOODryzjg5Ljg63jg6bjgq0NCivjg4rjgqvjg6Djg6ks44K344Ky44OrDQor44Km44Ko44Og44OpLOOCv+OCseOCtw0KK+OCouOCteODjizjg6bjgqbjgqTjg4ENCivjgqrjgqrjg6Tjg54s44Kx44Oz44K4DQor44Kr44Ov44OOLOOCqOOCpOOCsw0KK+ODkOODkCzjg5Ljg4jjgrcNCivjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44Km44Ko44OOLOODjuODluODpuOCrQ0KK+OCt+ODqeOCpCzjgrHjg7Pjgrfjg7MNCivjgqTjgqvjg58s44OP44Or44KqDQor44Kr44Ov44K344OeLOODiOODouODpuOCrQ0KK+ODn+ODpOOCsSzjgr/jgqvjg5Ljg60NCivjgrXjgq/jg6njgqQs44Kx44Oz44K4DQor44K/44Kx44OO44K344K/LOOCt+ODpeOCpuODmOOCpA0KK+ODi+OCt+OCquOCqyzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgq/jg63jgq0s44Oe44K144Oo44K3DQor44K/44OK44KrLOODn+ODjuODqw0KK+OCpOOCpOOCuOODnizjgr/jgqvjgrcNCivjgrXjg4jjgqYs44OS44Ot44Ki44KtDQor44K144Kv44Op44KkLOOCq+OCuuOCt+OCsg0KK+ODpOODiuOCruOCteODryzjg47jg5bjgqoNCivjgqbjg4Hjg6Tjg54s44K344Ky44Oo44K3DQor44Kq44Kv44OELOOCq+OCuuODiOOCtw0KK+ODi+OCt+ODpOODnizjgrvjgqTjgrgNCivjgr/jgrHjg4As44K/44Kr44KzDQor44OV44Oq44OP44OpLOOCq+OCuuOCqg0KK+ODpOODluOCrSzjg57jgrXjg5Ljg60NCivjg4rjgqss44Kr44K644OS44OtDQor44Oo44K344Kq44KrLOOCq+OCuuODpA0KK+ODouODgeOCuuOCrSzjgr/jgqvjg6bjgq0NCivjgrnjgq7jg6Tjg54s44OS44OH44OS44OtDQor44Kk44Ov44OK44KsLOOCseOCpOOCpOODgQ0KK+ODn+ODryzjg4/jg6vjgqvjgroNCivjg5vjg6rjgqvjg68s44Kr44OE44KtDQor44K/44Kr44OALOOCs+OCpuOCuA0KK+OCpOOCt+ODnuODqyzjgrfjgrLjg6TjgrkNCivjgqrjg6Djg6ks44OS44OH44KqDQor44Kt44K/44Og44OpLOODquOCqw0KK+OCueOCruOCrSzjgr/jgqvjgq0NCivjg4vjgrfjg6Djg6ks44OB44Ko44KzDQor44OK44Kr44OP44OpLOOCs+OCpuOCpOODgQ0KK+ODnuODhOODouODiCzjgqLjgq3jg6kNCivjg5Xjgq/jgrfjg54s44Oe44K144OrDQor44Kr44K444Kq44KrLOOCouOCreODkuODiA0KK+ODiuOCq+OCtuODryzjg47jg5zjg6sNCivjg57jgrnjgrbjgq0s44K/44Kr44K3DQor44OK44KrLOODiOOCt+OCv+OCqw0KK+OCquOCteODgCzjg4/jgrjjg6ENCivjgqvjg6/jgr8s44OK44Kq44OfDQor44Oo44K344OALOOCs+OCpuOCuA0KK+ODiuOCqyzjg4jjgrfjg5Ljg60NCivjgqjjgqTjg4njg6Es44OS44OH44Kr44K6DQor44Oe44OE44Oi44OILOODqOOCt+ODnuOCtQ0KK+ODiuOCrOOCteOCqyzjg6jjgrfjgqLjgq0NCivjg5XjgrjjgrXjg68s44Kr44OE44OS44KzDQor44Kt44Oo44K/44OLLOODhOODiOODoA0KK+OCouODquODouODiCzjgrvjgqTjgrMNCivjgqjjgr7jgqgs44Kx44Kk44Kk44OBDQor44OE44OB44OkLOOCq+OCuuODpA0KK+ODleOCuOOCquOCqyzjg6TjgrnjgrMNCivjg4Tjgqvjg6Ljg4gs44OV44Of44KqDQor44K/44Kr44OP44K3LOODiOODqOODkuOCsw0KK+OCteOCq+OCpOODgCzjg6Tjgrnjg5Ljg60NCivjgrnjgrrjgq0s44Kz44Km44K4DQor44Kq44K344OeLOODpOOCueODiOOCtw0KK+ODnuOCreOCpuODgSzjgr/jgq/jg6QNCivjg4/jg6njg4As44OS44K144Kr44K6DQor44Oe44K144KtLOOCouOCreODqQ0KK+OCquOCrOODryzjg47jg5bjgqLjgq0NCivjgqbjgrfjg57jg6ss44Kx44OzDQor44Kk44K344OALOODjuODluOCv+OCqw0KK+ODj+ODiuODluOCtSzjgqLjg4TjgrMNCivjg6jjgrfjg6Djg6ks44Oo44K344OS44K1DQor44K/44OL44Ks44OvLOODnuODquOCqg0KK+OCteODiOOCpizjgr/jg4TjgrcNCivjgqvjg4Qs44K/44Kr44K3DQor44Ok44Oe44Kw44OBLOODkuODreOCrQ0KK+ODj+OCr+ODgeODp+OCpizjgqTjgrXjgqoNCivjgqTjg4jjgqYs44K/44Kr44K3DQor44K144Kr44KkLOOCq+OCuuODjuODqg0KK+OCv+ODs+OCtCzjg5Ljg4fjgqoNCivjgrPjgqTjgrrjg58s44Kx44Oz44K544KxDQor44Ov44Kr44K544KuLOOCv+ODgOOCv+OCqw0KK+OCpuOCqOODjizjgrfjg7PjgqTjg4ENCivjgqbjgqjjg4As44OI44Oi44KtDQor44K544K644KtLOODkuOCteOCqA0KK+OCquOCquODjizjg6jjgrfjg47jg6oNCivjgqLjg5ks44Kx44Oz44Kk44OBDQor44K344Kk44KtLOODkuODreOCtw0KK+OCouODqeOCrSzjgq3jg6jjg4/jg6sNCivjgqLjgrrjg54s44OS44Ot44Oo44K3DQor44OH44Kw44OBLOODkuODreODjuODqg0KK+OCqOODquOCq+ODryzjg6bjgqbjgrMNCivjg5Xjgqvjg6Tjg54s44OO44OW44Om44KtDQor44OV44OK44KtLOOCteOCq+OCqA0KK+OCpOODgeODoOODqSzjg57jgrPjg4gNCivjg4/jgrfjg6Ljg4gs44OO44Oq44Ki44KtDQor44OS44Ks44K3LOOCreODqOOCv+OCqw0KK+ODkuODreOCteODryzjgqLjg4TjgrcNCivjg5vjg6rjgrDjg4Es44Om44Km44Kk44OBDQor44Kk44OQ44Op44KtLOODpuOCpuOCpOODgQ0KK+OCpOODiuODoOODqSzjgrPjgqbjgqTjg4ENCivjgqTjgrfjgqvjg68s44Of44Kt44KqDQor44Kk44OI44KkLOOCv+ODgOOCtw0KK+OCq+ODiuOCtuOCtyzjg47jg6rjgrMNCivjgqvjgr/jgq7jgrcs44Oe44K144K3DQor44Kr44OI44KmLOODpOOCueOCtw0KK+OCq+ODr+ODgCzjgrHjg7PjgrnjgrENCivjgq3jg47jgrfjgr8s44Ok44K544OS44OtDQor44Kz44OQ44Ok44K3LOOCq+ODhOODjuODqg0KK+OCs+ODnuODhCzjg6Tjgrnjgr/jgqsNCivjgrPjgr/jg4ss44OS44OH44KtDQor44Kv44Ot44K7LOOCquOCteODoA0KK+ODnuOCqOODgCzjg6bjgqbjgrgNCivjg57jg7Pjgr/jg4ss44Oo44Km44Kk44OBDQor44Oe44OE44Oi44OILOODpOOCueOCouOCrQ0KK+ODn+ODoOODqSzjgrfjgrLjg47jg5YNCivjg5/jg68s44Oe44K144OS44OtDQor44Oi44Oq44K/LOOCouOCreODkuOCsw0KK+ODoOODjeODoOODqSzjg4jjgrfjg5/jg4QNCivjg4rjgqzjgr8s44Kx44Oz44K4DQor44OK44Kr44Kz44K4LOOCv+ODhOODpA0KK+ODiuOCq+ODoOODqSzjg6jjgqbjgqTjg4ENCivjg4rjgqvjg6Tjg54s44K/44Kr44K3DQor44OL44Og44OpLOOCueOCueODoA0KK+ODpOOCuOODnizjg6jjgrfjgqgNCivjg47jg54s44OI44Oo44OfDQor44OM44Kt44KkLOOCq+ODhOODnw0KK+OCquOCrOOCteODr+ODqSzjgrfjg6XjgqbjgrgNCivjgqrjgqrjgrXjg68s44OS44OH44K/44KrDQor44Oe44OE44OK44KsLOODqOOCt+OCouOCrQ0KK+OCquOCq+ODouODiCzjg5Ljg63jg6bjgq0NCivjgqrjgrXjg4As44Og44OE44OfDQor44K144Kk44OI44KmLOOCouOCreODkuODrQ0KK+OCteOCr+ODqeOCpCzjgrfjgrLjg47jg6oNCivjgrXjg4jjgqYs44Oo44K344OO44OqDQor44K744K244KkLOOCq+OCuuODpOOCuQ0KK+OCt+ODn+OCuizjgqLjgq3jg4jjgrcNCivjgrfjg6fjgqbjg5/jg4Qs44Oo44K344OS44OtDQor44K544Ku44K144OvLOODjuODluODpuOCrQ0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjgrnjgrrjgq0s44Om44Km44KzDQor44K/44Kr44OP44K3LOOCv+OCq+ODpuOCrQ0KK+OCv+OCq+OCteOCqyzjg4/jgrjjg6ENCivjg5XjgrjjgqQs44Ki44OE44KzDQor44K/44Oe44KtLOOCteODiOOCsw0KK+OCv+ODiyzjgqvjgrrjg5LjgrMNCivjg4jjgq3jgr7jg44s44K344Ky44KqDQor44OI44Oq44K244OvLOOCqOODnw0KK+ODhOODq+OCq+ODryzjgqjjgqTjgrgNCivjgqbjg4As44OS44K144Oo44K3DQor44Km44Oh44Og44OpLOOCreODn+ODkuODrQ0KK+ODr+OCv+ODqizjg6Tjgrnjg6jjgrcNCivjg6Tjg57jg6Ljg4gs44OG44OE44OkDQor44Ok44Oe44Oi44OILOODnuOCteODqOOCtw0KK+ODpOODjizjg6bjgq3jgqoNCivjg6jjg4As44Kk44K144KqDQor44Ok44Oe44Kw44OBLOOCq+OCuuODqOOCtw0KK+ODmyzjgqLjgq3jg6kNCivjg57jg4Tjg5/jg6Qs44Om44Km44Kk44OBDQor44K144Ov44OALOODkuODreOCtw0KK+OCs+ODj+ODqSzjg57jgrXjg47jg6oNCivjgrXjgqTjg4jjgqYs44Of44OE44OrDQor44Ok44OOLOODn+ODhOOCqg0KK+ODleOCuOODouODqizjg47jg6rjgrMNCivjg6Tjg57jgrDjg4Es44Ok44K544OS44OtDQor44Ok44Oe44OALOOCv+OCq+OCtw0KK+ODleOCuOOCvyzjg4jjgrfjgq0NCivjgq3jg6Djg6ks44K/44Kx44KqDQor44OP44Ok44K3LOODnuOCteODkuODrQ0KK+ODnuOCqOOCtuODryzjgqTjgrrjg58NCivjgrfjg5bjgqvjg68s44Kt44Oo44OS44K1DQor44Of44ObLOODnuOCteODjuODqg0KK+OCueOCruODpOODnizjgrfjg7PjgqTjg4ENCivjg5Xjg6vjgqvjg68s44Oo44K344OV44OfDQor44OO44OB44K7LOOCq+OCuuODkuOCsw0KK+ODnuODhOODouODiCzjg5Ljg4fjgqLjgq0NCivjgqrjgq/jg44s44Om44Kt44KqDQor44Ok44Oe44K244KtLOODpOOCueODkuODrQ0KK+OCpOOCt+OCsizjgqLjgq3jgrMNCivjg5/jgqbjg6ks44Oq44Ol44Km44K+44KmDQor44OQ44OQLOOCv+OCr+ODpA0KK+ODouODgeOCuuOCrSzjgqjjg5/jgrMNCivjg4jjgq/jg4rjgqws44OV44Of44OS44OIDQor44Kv44Ot44Kr44OvLOODkuODreOCtw0KK+OCpOOCseODjizjg6HjgrDjg58NCivjg6Tjg57jgqvjgrIs44Oo44Km44K4DQor44Ok44Ku44OP44K3LOOCt+ODpeOCpuOCpOODgQ0KK+OCreODqOODn+ODhCzjgrHjg7PjgrgNCivjg6Djg6njg6Tjg54s44Ko44Kk44K444OlDQor44Kq44Kq44OE44KrLOODkuODh+ODkuOCsw0KK+OCquODpOODnuODgCzjgr/jgqvjgrcNCivjgqLjgrLjgr8s44K444Ol44Oz44Kk44OBDQor44Ki44Oi44KmLOOCouOCreOCqg0KK+OCouODqeOCq+ODryzjg5Ljg4fjgrcNCivjg5Djg7Pjg44s44Oe44K144Kt44OoDQor44Ko44K144KtLOOCt+ODs+OCpOODgQ0KK+ODleOCq+OCtuODryzjg4jjg6Ljg5Ljg4gNCivjg5Xjg4rjg5Djgrcs44Oe44K144Om44KtDQor44OP44OK44OALOOCq+ODhOODjuODqg0KK+ODj+OCt+ODouODiCzjgqjjg5/jgrMNCivjg5Ljgrjjgq/jg60s44OK44Kq44Om44KtDQor44Ob44Km44OkLOOCq+OCuuODkuOCsw0KK+ODm+OCveODgCzjg4Hjgqjjg58NCivjgqTjgrHjgrbjg68s44OO44OW44Ok44K5DQor44Kk44OM44OE44KrLOODiuOCquOCrQ0KK+OCq+OCuOOCv+ODiyzjgqrjgrXjg6ANCivjgqTjg4jjgqYs44OB44Kv44K1DQor44Kk44Ov44K344K/LOOCt+OCsw0KK+OCq+ODn+ODpCzjgq/jg4vjgqLjgq0NCivjgqvjgrnjg6Qs44Ki44Kt44OpDQor44Kr44Ov44OQ44K/LOODgOOCpA0KK+OCq+ODr+OCr+ODnCzjgqvjgrrjg4jjgrcNCivjgq3jg5Djgrcs44OS44OH44OS44KzDQor44Kt44Oq44K144OvLOOCpOODgeODreOCpg0KK+OCs+ODgOODnizjgqrjgrXjg6ANCivjg4jjgqbjg4njgqYs44Kz44Km44K4DQor44Kz44Ok44Kk44K3LOODn+OCqw0KK+OCr+ODqeOCvyzjgrPjgrnjgrENCivjgq/jg6/jg44s44OS44Ot44K/44KrDQor44Oe44K544OALOOCuOODpeODsw0KK+ODnuODhOOCt+OCvyzjgr/jg4DjgrcNCivjg5/jg6TjgrEs44Ki44OE44K3DQor44Of44Oo44OALOOCv+OCq+ODkuOCtQ0KK+ODn+OCuuOCv+ODiyzjg4Tjg6jjgrcNCivjg6Ljg6rjg6/jgq0s44K344Oz44Kk44OB44Ot44KmDQor44Og44OI44KmLOOCq+ODhOOCrQ0KK+ODiuOCrOODryzjgrfjg7PjgqTjg4ENCivjg4rjgqvjgrfjg54s44OS44K144Oo44K3DQor44OL44K344OALOODkuODreODqOOCtw0KK+ODi+OCt+OCqizjg57jgrXjg4gNCivjg47jg6Djg6ks44OG44OE44OkDQor44Kq44OA44Kq44Kq44OP44OpLOOCt+ODs+OCtA0KK+OCquOCquODkuODqSzjgqTjg4Hjg63jgqYNCivjgqrjgqrjg4zjg54s44OK44Or44K3DQor44Kq44Kq44Ok44KuLOODnuOCteODkuODrQ0KK+OCquOCq+ODjSzjgr/jgqvjgrcNCivjgqrjgq/jg44s44Kr44OE44K3DQor44K144Kk44OI44KmLOODqOOCt+ODnw0KK+OCteOCq+OCpuOCqCzjg6Tjgrnjg6bjgq0NCivjgrXjg4jjgqYs44K/44Kx44K3DQor44K744Kt44Oi44OILOODiOOCt+ODpuOCrQ0KK+OCt+OCpOODiizjg5Xjg5/jg4/jg6sNCivjgrfjg5/jgros44OS44OH44OI44K3DQor44K344Op44K144KtLOODqOOCpuOCsw0KK+OCueODieOCpizjgrXjg4jjgrMNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Ob44K944Kr44OvLOODpuODqg0KK+ODpOODnuOCtuOCrSzjg4rjgqrjgq0NCivjgr/jgqvjgrks44Kr44K644OoDQor44K/44Kx44OALOODkuODreODpuOCrQ0KK+OCv+ODnuOCv+ODiyzjgqvjgrrjgqLjgq0NCivjgr/jg4vjg6Ljg4gs44K344Oz44Kk44OBDQor44OI44Of44OK44KsLOODkuODreODkuOCtQ0KK+ODhOOCq+ODgCzjg5Ljg4fjgq0NCivjgqbjg6njgqvjg68s44Om44Km44K4DQor44Ov44K/44OqLOOCs+OCpuOCuA0KK+ODpOODnuODouODiCzjgqLjg4TjgrcNCivjg6Tjg57jgrfjgr8s44OI44K344OS44OHDQor44Ok44K244KtLOOCv+OCseOCtw0KK+ODqOOCs+OCvyzjg6bjgqbjgrMNCivjg6jjgrfjgqvjg68s44Of44OE44OS44OtDQor44Ki44K144OOLOODn+ODgeOCsw0KK+OCquOCr+ODgCzjg5LjgrXjgrMNCivjgqTjg4rjg4As44Oe44K144OE44OKDQor44K344Oi44Kr44OvLOODleODn+ODkuOCsw0KK+ODhOODnOOCvyzjg47jg6rjgqoNCivjgqrjgqrjgq/jg5ws44K/44Kx44K3DQor44K144Kk44OI44KmLOOCt+ODpeOCpuOCpOODgQ0KK+ODleOCuOOCvyzjg4Tjg43jgqoNCivjg57jgq3jg6Djg6ks44K/44Kx44KqDQor44OL44OO44Of44OkLOOCq+OCuuOCqg0KK+OCv+ODkOOCvyzjg6jjgrfjgr/jgqsNCivjg6Djg6njgqvjg58s44OS44Ot44KtDQor44Kk44Oe44OL44K3LOOCv+OCseOCqg0KK+OCv+OCreOCrOODryzjgrfjgrLjg6jjgrcNCivjgqrjg7Pjgrrjgqss44OS44Ot44K3DQor44OI44OO44Kr44OvLOOCv+OCseOCtw0KK+OCpOOCseODgCzjg4jjgq3jgqoNCivjgrTjg4jjgqYs44Kr44K644OkDQor44K944OALOOCseODs+OCuA0KK+ODouODquOCvyzjg57jgrXjg6bjgq0NCivjgr/jg7Pjg44s44Ko44Kk44Kk44OBDQor44K044Km44OALOOCreODp+OCpuOCsw0KK+ODpOODnuOCsOODgSzjg5Ljg63jgqvjgroNCivjgqrjgrXjg4rjgqQs44Ki44OE44K3DQor44OS44Ks44K3LOOCt+ODp+OCpuOCsw0KK+ODpOODnuODouODiCzjg5Ljg4fjgqLjgq0NCivjgrXjg4jjgqYs44K/44Kr44KqDQor44Of44K+44Kw44OBLOODiOOCt+ODpuOCrQ0KK+OCreOCv+OCrOODryzjg5Ljg63jgrcNCivjgqrjgqrjg4vjgrcs44K944Km44Kk44OBDQor44Ki44Kk44OP44OpLOODkuODh+OCqg0KK+OCouOCreODkCzjg4Tjg4jjg6ANCivjgqLjg57jg44s44OI44Kq44OrDQor44Ki44Kq44Ok44KuLOOCv+OCq+OCqg0KK+OCouODqSzjgqLjgq3jgqoNCivjgqLjgrXjg44s44Oo44K344OS44OtDQor44OQ44OzLOOCs+OCpuOCv+ODreOCpg0KK+OCqOODk+ODjOODnizjgqLjgrHjg58NCivjg5Xjgrjjgqjjg4As44K444Ol44OzDQor44OV44K444KkLOOCt+OCsuODjuODqg0KK+OCquOCsOODqSzjgqLjg6TjgrMNCivjg5Xjgqvjgqos44Of44OE44OS44OtDQor44OV44Kv44OALOODn+OCqw0KK+ODleOCr+OCquOCqyzjgrfjg7PjgrQNCivjgrTjgqbjg4As44Oo44Oq44KzDQor44OP44Ku44Ov44OpLOOCreOCr+OCqg0KK+ODj+ODiuODn+ODhCzjg6jjgrfjgr/jgqsNCivjg4/jg6ks44Of44Om44KtDQor44OP44OE44K344OeLOOCseODsw0KK+ODj+ODg+ODiOODqizjg6jjgrfjg47jg6oNCivjg4/jg6Tjgrcs44Kr44OE44OfDQor44OS44OK44K/LOOCuOODpeODsw0KK+ODkuODqeOCteODryzjgqvjgrrjg5Ljg60NCivjg5Ljg63jgrss44OS44K144Om44KtDQor44K544Ku44Oi44OILOOCu+OCpOOCpOODgQ0KK+ODm+ODqizjgqvjgrrjgqoNCivjg5vjgr0s44Kr44K644OfDQor44Kk44OH44KkLOODnuOCteOCq+OCug0KK+OCpOOCpOODoOODqSzjg6jjgrfjg47jg5YNCivjgqTjgrHjg4As44Kv44OL44OS44OtDQor44Kk44Oe44KkLOOCv+ODgOOCtw0KK+OCpOODjuOCpuOCqCzjg5Ljg63jgr/jgqsNCivjgqTjgrfjgrDjg60s44OS44Ot44K3DQor44Kk44K344Kr44OvLOODqOOCpuOCsw0KK+OCpOOCt+ODr+OCvyzjg4rjgqrjg5LjgrUNCivjgqTjg4jjgqYs44OG44OE44OkDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCpOODr+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgqTjg6/jgrXjgq0s44K/44OE44OS44KzDQor44Kr44Ks44OfLOOCt+OCsuODqOOCtw0KK+OCq+ODnuODouODiCzjgr/jgqjjgrMNCivjgqvjg58s44Oe44Kz44OIDQor44Kr44OK44K244OvLOOCteODgOOCpOODgQ0KK+OCq+ODjeOCsyzjg6TjgqgNCivjgqvjgrfjg6/jgq4s44OS44Ot44K3DQor44Kr44K/44Kq44KrLOOCouODhOOCtw0KK+OCtOODiOOCpizjg5Ljg63jgqvjgroNCivjgqvjg6/jg4/jg6ks44OS44Ot44Ki44KtDQor44Kr44Ov44Kt44K/LOODpOOCueOCsw0KK+OCreODgCzjg6jjgrfjg5Xjg58NCivjgq3jg6Djg6ks44Of44OO44OrDQor44Kq44Kr44K244KtLOOCv+OCseOCqg0KK+OCreOCv+ODoOODqSzjgqLjgq3jgqoNCivjgrPjg5Djg6Tjgrcs44Of44Oo44KzDQor44OS44Ot44K7LOODj+ODq+OCqg0KK+OCs+OCteOCqyzjg6jjgrfjg6bjgq0NCivjgrPjgq/jg57jgqQs44Of44Ko44KzDQor44Kz44Oi44Kq44KrLOODleODn+OCqg0KK+OCs+ODs+ODieOCpizjgr/jg4Tjg4gNCivjgq/jg5ws44K/44Kr44Om44KtDQor44Kv44Oe44Oi44OILOOCouOCreODkuOCsw0KK+OCr+ODquODpOODnizjg6bjgq3jgqgNCivjgq/jgrfjg4As44Ov44K/44OrDQor44Oe44Ko44Kr44OvLOODkuODh+OCv+OCqw0KK+ODnuOCueODgCzjg5/jgq3jgqoNCivjg57jg4Tjg4As44K344Ky44KqDQor44Kr44OO44KmLOODkuODreODpuOCrQ0KK+ODnuODhOODiuODnyzjg5Ljg63jg6bjgq0NCivjg57jg4Tjgrbjgq0s44K/44OA44K3DQor44Of44Oi44OqLOODkuODreOCtw0KK+ODn+OCpuODqSzjg6jjgqbjgqTjg4ENCivjg5/jg6Tjg4/jgrcs44Kt44On44Km44KzDQor44Of44Ok44K/44KxLOOCt+OCsuODnw0KK+ODn+OCuuOCs+OCtyzjg4jjgrfjgqoNCivjg6Ljg6rjgq0s44Ok44K544OS44OtDQor44Oi44OqLOOCteODiOODqw0KK+ODoOOCq+OCpCzjgr/jg4Tjg58NCivjg6Djg6njgr8s44K144OI44K3DQor44Og44OE44K344KrLOOCqOOCpOOCpOODgQ0KK+ODiuOCrOOCteODryzjgqvjgrrjg4gNCivjg4rjgqzjgqgs44K/44Kr44Om44KtDQor44OK44Kr44K444OeLOOCq+ODhOODiOODog0KK+ODiuOCq+ODnuOCvyzjg47jg6rjg5Ljg60NCivjg4rjgqvjg6Djg6ks44OP44K444OhDQor44Kq44Kq44OL44K3LOODnuOCteODjuODqg0KK+ODiuOCq+ODjizjg6LjgqjjgrMNCivjg4rjgqvjgr8s44K344Ky44KzDQor44OK44Kr44Ok44OeLOOCq+ODhOODkuOCsw0KK+ODiuODhOODpOODnizjg6bjgqbjgrMNCivjg6Ljg6os44Om44Kt44KzDQor44OL44OvLOODnuOCteOCrQ0KK+ODjuODnizjgrXjg4jjgrcNCivjg47jg6rjgqvjg40s44Oe44K144OrDQor44Kq44OA44ONLOODqOOCt+OCq+OCug0KK+OCquOCquODkOODpOOCtyzjg6Tjgrnjg6bjgq0NCivjgqrjgq0s44Oo44K344Om44KtDQor44Kq44Op44KkLOOCueOCueODoA0KK+OCquOCquODiOODoizjgqLjgq3jgqoNCivjgqrjg5Ljg6Ms44Kv44OL44OS44KzDQor44Kq44Kr44Oi44OILOODqOOCt+OCqg0KK+OCpuOCqOODgCzjg4jjg6jjgqvjgroNCivjg4vjgrcs44Ki44OE44KtDQor44K/44OALOOCv+OCq+ODpuOCrQ0KK+ODpOODnuOCt+OCvyzjgrHjg7PjgrgNCivjgrXjgrXjg6Ljg6os44Om44K/44KrDQor44OP44K744Ks44OvLOODiOODouODpuOCrQ0KK+OCpOODnuOCpCzjg5/jg6bjgq0NCivjg6jjgrPjg6Tjg54s44Kx44Oz44K4DQor44K544Ku44Ok44OeLOODqOOCt+ODnuOCtQ0KK+OCouODqeOCpCzjg4jjg6LjgrMNCivjgqLjg57jgqzjg6Qs44Om44Oh44OODQor44OE44OrLOODn+ODjuODqw0KK+ODpOOCpOOCvyzjg57jgq0NCivjgrvjgq0s44Oe44OqDQor44OP44OpLOODqOOCt+ODjuODqg0KK+ODn+OCpuODqSzjgrnjgrnjg6ANCivjgrXjgrUs44Om44Kt44KzDQor44K/44Kr44K144KtLOODnuOCreOCsw0KK+ODj+ODqeODgCzjgqjjg5/jgrMNCivjgq/jg6njgr8s44Ok44K544OS44OtDQor44Ki44Ky44Oe44OELOODkuODreODn+ODgQ0KK+ODleOCr+ODouODiCzjg5/jgq3jgqoNCivjgqrjgq/jg6Djg6ks44OA44KkDQor44Kq44K944Ko44Ks44OvLOODpOOCueODiuODqg0KK+OCteOCpOOCvyzjg57jgrXjg5Ljg60NCivjgrXjgqvjgqQs44OS44Ot44OfDQor44K144Kr44OqLOODjuODluODkuODrQ0KK+OCteODjizjg6bjgr/jgqsNCivjgrXjg4jjgqYs44Oo44K344OS44KzDQor44K144OI44KmLOOCouOCreOCqg0KK+OCteODiOOCpizjgrXjg4jjgrcNCivjgrvjgq3jgqvjg68s44Ki44Kt44OpDQor44K744K344OiLOOCs+OCpuOCuA0KK+OCt+ODluODpCzjg57jgrXjg47jg6oNCivjgrfjg57jg6Ljg6os44Oe44K144OS44KzDQor44K344Oi44OALOOCseOCpOODn+ODsw0KK+OCt+ODs+OCv+ODiyzjg6bjgqbjgrgNCivjgrfjg6njgqQs44K344Ky44KtDQor44K344Ol44KmLOOCtOOCpOODgQ0KK+OCueODgCzjg4rjgqrjgq0NCivjgrnjgq7jgr8s44Om44Km44Kk44OB44OtDQor44K544K244KtLOODhuODhOODpA0KK+OCueOCuuOCrSzjg4jjgrfjg6QNCivjgrnjgrrjgq0s44OO44Oq44Om44KtDQor44K/44Ks44KkLOODpOOCueOCtw0KK+OCv+OCq+OCrizjgrHjg7Pjgr/jg63jgqYNCivjgr/jgqvjg4/jgrcs44Oe44K144KzDQor44K/44Kr44Kk44K3LOODiOODouOCouOCrQ0KK+OCv+OCq+OCquOCqyzjgr/jgqvjgq0NCivjgr/jgqvjg6Tjg54s44K344Oz44Kk44OBDQor44K/44Kx44Oi44OILOODjuOCvuODnw0KK+OCv+ODnuODgSzjg5Ljg63jgrcNCivjgr/jg4rjgqss44OS44Ot44OV44OfDQor44K/44OLLOODkuODreODluODnw0KK+ODhuODqeOCteOCrSzjg5Ljg63jg6bjgq0NCivjgrXjgq/jg6njgq4s44OO44Oq44OS44K1DQor44OI44Oo44K144OILOODkuODreOCtw0KK+ODhOOCuOODouODiCzjg6bjgq3jgqoNCivjg4Tjg6vjgr8s44K344OO44OWDQor44Km44OB44Ok44OeLOOCv+OCseOCtw0KK+OCreOCreODp+OCpizjg6jjgrfjgr/jgqsNCivjgqbjgqjjg44s44Oo44K344KzDQor44OK44Ks44K/LOODjuODquOCsw0KK+ODr+ODgCzjgrfjgrrjgqoNCivjgqTjg4jjgqQs44Oo44K344OS44K1DQor44Ov44K/44OK44OZLOODkuODh+ODiOOCtw0KK+ODpOODluOCpuODgSzjgrfjg6fjgqbjg5jjgqQNCivjg6Tjg57jg4As44Ki44Kt44KqDQor44Ok44Oe44Oi44OILOOCouOCreODkuODrQ0KK+ODpOODnuODouODiCzjg57jgrXjg4jjgrcNCivjg6Tjg57jgrfjgr8s44OE44OI44OgDQor44Ok44Oe44K344K/LOOCouOCreODqQ0KK+ODpOODjizjg4jjg6Ljg6bjgq0NCivjg6jjgrPjgr8s44Of44OK44KzDQor44Oo44ON44Og44OpLOOCv+ODgOOCtw0KK+ODqOOCt+ODoOODqSzjg5Ljg63jg58NCivjg57jg4Tjg4As44Oo44K344OE44KwDQor44Ob44K944OkLOOCt+ODp+OCpuOCuA0KK+ODn+ODpOOCt+OCvyzjgrfjgrLjg4jjg6INCivjgrfjgqws44Oe44K144Of44OEDQor44Ok44Oe44OALOODpuOCpuOCpOODgQ0KK+ODj+ODpOOCtyzjgrXjg5vjg6oNCivjgqTjgrHjg4As44OE44Oo44K3DQor44Km44Ko44OOLOOCq+OCuuOCv+OCqw0KK+OCteOCpOODiOOCpizjg4bjg6vjg6jjgrcNCivjg4rjgqzjg6Tjgrks44Kz44Km44K4DQor44OP44Ku44KqLOODiOODouODkuOCsw0KK+ODj+ODnuODgCzjg57jgrXjgrgNCivjg6Djg6njgqvjg58s44OO44Oq44OS44OtDQor44Ki44OZLOOCt+ODpeODs+OCuA0KK+OCouOCreODpOODnizjg4jjgrfjg6bjgq0NCivjgqLjg7Pjg4njgqYs44OG44Oz44K744KkDQor44Ki44Op44KtLOOCt+OCsuODn+ODhA0KK+OCouOCvSzjgq/jg4vjgqvjgroNCivjg5Djg5As44Om44Km44K544KxDQor44Ko44OT44K144OvLOODkuODreOCtw0KK+ODleOCuOOCpCzjg6jjgrfjg47jg6oNCivjg5XjgrjjgqQs44K/44OE44OkDQor44OV44K444K/LOODkuODreOCtw0KK+ODleOCuOODr+ODqSzjg5Ljg63jg6ANCivjg5Xjgq/jg4As44K444Ol44OzDQor44OV44Kv44Kq44KrLOOCpOOCteOCqg0KK+ODleODq+ODpCzjg4jjgrfjg6bjgq0NCivjgqzjg4ks44OS44K144K3DQor44OP44KsLOOCouODhOOCtw0KK+ODj+ODnuOCt+ODnizjg6bjg58NCivjg4/jgrss44Om44K/44KrDQor44OP44K344K644OhLOODiuOCquOCrQ0KK+ODhOODgCzjg5Ljg63jgrMNCivjg4/jg6Tjgrcs44OI44K344Ot44KmDQor44OS44Op44KkLOODpuOCpuOCpOODgQ0KK+ODkuODqeOCteOCqyzjg5Ljg63jg6bjgq0NCivjg5Ljg63jg6/jgr/jg6os44K/44Kr44OS44OtDQor44K544K644KtLOODkuODh+OCrQ0KK+ODm+OCveODnyzjg5Ljg63jgqLjgq0NCivjgqTjg4As44OB44OP44OrDQor44Kk44Ks44Op44K3LOODpuOCreODpA0KK+OCpOOCpOOCuOODnizjgr/jgrHjgrcNCivjgqTjg57jg6Djg6ks44Kz44Km44Kk44OBDQor44Kk44Os44KkLOODnuOCteODqw0KK+OCpOOCt+OCpCzjg4jjg6Ljg6bjgq0NCivjgqTjgr3jg44s44Of44OE44OI44K3DQor44Kk44OI44KmLOODqOOCt+ODnuOCtQ0KK+OCpOODr+OCtSzjg4jjgrfjg58NCivjgqTjgrrjg5/jgrXjg68s44K744Kk44K4DQor44Kr44Kk44OALOOCs+OCpuOCuA0KK+OCq+ODnuOCvyzjg4jjgrfjgqgNCivjgqvjg7Pjg5ks44K/44Kr44OS44OtDQor44Kr44ON44KzLOOCouOCreODqQ0KK+ODqOODjeODouODgSzjg4rjgqrjgrcNCivjgqvjgr/jgqrjgqss44Kr44K644OS44KzDQor44Kr44OI44KmLOODpOOCueODkuODrQ0KK+OCq+ODiOOCpizjg6bjgqbjgrgNCivjgr/jg57jgqzjg68s44Kz44Km44Kk44OB44Ot44KmDQor44OK44Or44KxLOOCv+OCq+OCtw0KK+OCreODiSzjgr/jgqvjg5Xjg58NCivjgq3jgq/jg6ks44Kr44OE44OfDQor44Kt44Og44OpLOODnuOCteOCrQ0KK+OCreODjuOCt+OCvyzjg6Tjgrnjg5Ljg60NCivjgq3jgr/jgqLjgq0s44OS44Ot44Om44KtDQor44Kz44OQ44Ok44K3LOOCq+OCuuODkuODrQ0KK+OCs+ODkOODpOOCtyzjg4jjgrfjgq0NCivjgrPjg7Pjg44s44Oo44KmDQor44Kz44Of44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCs+ODi+OCtyzjgqLjgq3jg47jg6oNCivjgrPjg6Tjg54s44OS44Ot44OfDQor44Kv44OJ44KmLOOCuOODpeODsw0KK+OCr+ODquODpCzjg6bjgqbjgqTjg4ENCivjg6jjgrfjg4As44K144OI44OrDQor44Oe44Kt44OOLOODiOOCt+OCqg0KK+ODnuOCteOCrSzjg5Ljg4fjg6gNCivjg57jg4TjgqQs44Ok44K544OS44OtDQor44Oe44OE44Oi44OILOOCv+OCseOCtw0KK+ODnuODhOODpOODnizjgrjjg6Xjg7MNCivjg5/jgr/jg6Djg6ks44K444Ol44OzDQor44Of44Ov44K/LOODiuOCquOCrQ0KK+ODn+ODpOODouODiCzjg5Ljg4jjg58NCivjg6Ljg4Hjgrrjgq0s44K344Ol44Km44Kk44OBDQor44Oi44OqLOODnuOCteODpuOCrQ0KK+ODnuODhOODgCzjgrHjg7PjgrgNCivjg6Ljg6rjg6/jgq0s44OO44OW44Om44KtDQor44Og44Op44Kr44OfLOOCv+OCseOCqg0KK+ODoOODqeODpOODnizjgrXjg4jjgrcNCivjg4rjgqzjgrfjg54s44Of44OB44OO44OqDQor44Km44OB44K+44OOLOOCv+OCq+OCtw0KK+ODiuOCq+OCuOODnizjg5Ljg63jgqLjgq0NCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOODqOOCt+ODkuOCsw0KK+ODiuOCq+OCt+ODnizjg47jg6rjgqoNCivjg4rjg6njg4/jg6ks44K144OI44K3DQor44OL44K344OWLOOCouODpOOCsw0KK+ODi+OCt+ODouODiCzjg4rjgqrjgrMNCivjg4vjgrfjgrbjg68s44OA44Kk44K544KxDQor44OO44K444OeLOODjuODquOCqg0KK+ODjOODryzjgr/jgrHjgrcNCivjgqrjgqzjg68s44Kx44Oz44Kk44OBDQor44Kq44Kq44Ks44KtLOOCq+OCuuODkuODrQ0KK+OCquOCrSzjg57jgrXjg5LjgrMNCivjgqrjgqrjg6Ljg6os44OS44Ot44Ki44KtDQor44Kq44Kq44OM44OeLOODnuOCteOCqg0KK+OCquOCquOCv+OCsSzjgrXjgqjjgrMNCivjgrXjgrPjg4As44K344Ol44Km44Kk44OBDQor44Kq44Kr44OALOODhuODhOOCuA0KK+OCquOCreOCvyzjgrXjg4jjgrMNCivjgqrjgqrjg44s44K/44Kr44K3DQor44Kq44Oq44KkLOOCt+ODpeODs+OCuA0KK+OCquOCtuODryzjg6Tjgrnjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Kx44Kk44K4DQor44K144Kr44Oi44OILOODqOOCt+OCqg0KK+OCteOCq+OCvyzjg57jgrXjg5Ljg60NCivjgrXjg4rjgq4s44Oo44K344KtDQor44K144K144KtLOODiuOCrOODnuOCtQ0KK+OCteODiOOCpizjg57jg6Ljg6sNCivjgrXjg4jjgqYs44OS44OH44KtDQor44K744Kt44OOLOODjuODquODkuODrQ0KK+OCt+ODnuODgCzjgqLjg4TjgrcNCivjgrfjg5/jgros44K/44Kr44Ki44KtDQor44K344Oi44OALOODkuODreODpuOCrQ0KK+OCt+ODjuOCtuOCrSzjgqLjg4TjgrcNCivjgrfjg6fjgqbjg4As44Kx44Oz44K4DQor44K544Ks44OOLOODkuODreODpuOCrQ0KK+OCueOCruOCteOCrSzjg6jjgqbjgrMNCivjgrnjgq7jg6Tjg54s44K/44Kx44K3DQor44K544K644KtLOODkuODh+ODpuOCrQ0KK+OCueOCuuOCrSzjg57jgrXjg47jg6oNCivjgr/jgrDjg4Es44K344OzDQor44K/44Kr44OP44K3LOOCq+OCuuODjuODqg0KK+OCv+OCq+ODj+OCtyzjgqrjgrXjg6ANCivjgr/jgqvjg4/jgrcs44OS44OH44KtDQor44K/44Kr44Ok44OK44KuLOOCt+OCsuODqw0KK+OCv+OCseOCpCzjg47jg5bjgqoNCivjgr/jgrHjgrfjg54s44Kr44OE44K344Ot44KmDQor44K/44Og44OpLOOCt+ODp+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg6TjgrnjgrgNCivjgrXjg44s44OS44Ot44OV44OfDQor44OG44Op44Oe44KoLOODnuOCrQ0KK+ODiOOCsOODgSzjgr/jgrHjgrcNCivjg4jjg5/jgqQs44Oe44K144OS44OtDQor44OI44OD44OI44OqLOOCouOCreODkuOCsw0KK+ODhOOCuCzjg57jgrXjg5LjgrMNCivjg4Tjgq3jgrbjg68s44Kz44Km44K4DQor44OE44Or44K/LOODjuODquOCsw0KK+OCpuODgeODgCzjgrfjg6fjgqbjgrMNCivjgqbjgqjjg4As44Oo44Km44K544KxDQor44Km44Ko44OOLOOCuOODpeODs+OCuA0KK+OCqOOCrOOCt+ODqSzjgr/jg4DjgrcNCivjgq3jgr/jg6/jgq0s44K744Kk44KtDQor44Ov44K/44OK44OZLOOCv+OCq+OCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg6njgqQs44K444Ot44KmDQor44Ok44Oe44OALOOCouODhOOCtw0KK+ODleOCuOOCvyzjg57jgrXjg4jjgrcNCivjg6Tjg57jg6Ljg4gs44Ok44K544K3DQor44Ok44Oe44ONLOODn+ODgeODqw0KK+ODpOODnuOCt+OCvyzjgrfjgrLjg58NCivjg6Tjg57jgrbjgq0s44K/44OA44K3DQor44Oo44OALOOCt+ODpeODs+OCueOCsQ0KK+ODqOOCt+ODgCzjgqvjgrrjg6jjgrcNCivjg6jjgrfjg6Djg6ks44K144OI44OrDQor44Kq44K244OvLOOCq+ODhOODpuOCrQ0KK+ODpOODnuODgCzjgq3jg6jjgrcNCivjgrXjgrXjgq0s44OO44OW44Om44KtDQor44Ki44K844Ks44OfLOOCt+OCsuOCq+OCug0KK+ODleOCr+ODj+ODqSzjg47jg5bjg6bjgq0NCivjg4/jgrfjg6Ljg4gs44Oo44K344OS44OtDQor44Kk44K944OALOOCs+OCpuOCpOODgQ0KK+OCq+ODnuOCvyzjgr/jg4Tjg6QNCivjgq3jg6Djg6ks44Oo44K344OS44OtDQor44Kz44OQ44Ok44K3LOOCsuODsw0KK+OCr+ODnuOCteOCrSzjg6jjgrfjgqLjgq0NCivjg5/jgq/jg4ss44OI44Of44KqDQor44Ko44OALOOCv+OCq+OCtw0KK+ODjeODouODiCzjg57jgrXjg6bjgq0NCivjgqrjg44s44K/44Kv44K4DQor44K144Ko44KtLOODjuODquODpuOCrQ0KK+OCu+OCrSzjg6bjgq3jgqoNCivjgrnjg6Tjg54s44OS44Ot44KzDQor44K/44OK44KrLOOCseODs+OCtA0KK+OCv+OCtuODryzjg5/jgq3jgqoNCivjgqjjg7Pjg4ks44K444Ol44Oz44KzDQor44Ok44Oe44Kw44OBLOODjuODquOCqg0KK+ODpOOCueODgCzjgrXjg4jjgrcNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44OS44Ot44OP44K3LOODpOOCueOCqg0KK+OCq+ODiOOCpizjg5Ljg63jg6jjgrcNCivjgqbjgqjjg4/jg54s44Of44OO44OrDQor44Oe44OI44OQLOODgeODkuODrQ0KK+ODr+OCv+ODiuODmSzjg4jjgqrjg6sNCivjgqvjg6/jgrfjg54s44OG44OE44KqDQor44OV44K444Kr44K/LOODn+ODhOOCqg0KK+OCs+OCpOOCsSzjgqrjgrXjg6ANCivjgr/jg4rjgqss44Oq44On44Km44K+44KmDQor44OA44Kx44Ok44OeLOODkuODreODpuOCrQ0KK+OCr+OCt+ODk+OCrSzjgrnjgrHjg5Ljg4cNCivjgrnjgqzjg4/jg6ks44OG44OE44KqDQor44OS44Ks44K3LOODleODn+ODkuODrQ0KK+ODm+OCqyzjgrHjg7Pjgr/jg63jgqYNCivjgqTjg6/jgr8s44K/44Kr44Om44KtDQor44K544Ks44Ov44OpLOODnuOCueOCsw0KK+OCueODiCzjg57jgrXjg58NCivjg57jg4Tjgrbjgq0s44Oe44K144OO44OqDQor44Ki44Kr44Oe44OrLOOCquOCteODoA0KK+OCouODmeOCq+ODryzjg6zjgqTjgrgNCivjg6jjg43jg4As44Oe44K144KqDQor44K944Ks44OZLOODpuOCreOCqg0KK+ODr+OCq+ODkOODpOOCtyzjg4/jg6zjgqoNCivjgrnjg5/jgr8s44OG44OE44OkDQor44Kk44OO44Km44KoLOOCv+OCq+ODqOOCtw0KK+ODn+ODpOODouODiCzjg4Tjg4jjg6ANCivjg5Xjgrjjgqvjg68s44OK44Kq44OIDQor44K144Kk44OI44KmLOODleODn+OCqg0KK+OCv+ODiuODmSzjgrHjg7PjgrgNCivjgrfjg5/jgros44K744Kk44K4DQor44OO44Kw44OBLOOCt+OCsuOCouOCrQ0KK+OCq+ODr+ODiuODnyzjg57jgrXjgqLjgq0NCivjg5Xjgq/jgrfjg54s44Ki44Kt44OpDQor44Kq44OA44Ov44OpLOODn+ODgeOCqg0KK+OCquOCquOCvyzjg6jjgqbjgrgNCivjgqvjg6/jg44s44K/44OA44Oo44K3DQor44Kv44OL44Om44KtLOODpOOCueODkuODrQ0KK+OCt+ODnuODgCzjg5/jg4Tjg6sNCivjgr/jgqvjgrfjg54s44Of44OE44KuDQor44OE44OkLOODnuOCs+ODiA0KK+ODiuOCq+OCt+ODnizjg57jgrXjgqoNCivjg6Tjgq7jgrfjgr8s44OI44K344KqDQor44Kt44K344Oi44OILOODnuOCs+ODiA0KK+OCr+OCsizjgrHjg7PjgrgNCivjgqLjgrXjg44s44Oo44K344Ki44KtDQor44Kr44Ov44Kr44OfLOODhOODjeOCqg0KK+OCt+ODnuODgCzjgrfjg6XjgqbjgqTjg4ENCivjg5XjgrjjgqQs44K344Ol44Oz44Kk44OBDQor44OS44KsLOOCuOODpeODs+OCrQ0KK+OCv+ODiuODmSzjgqLjgq3jg6kNCivjgq/jg6njg6Qs44Kt44OY44KkDQor44OK44Kr44K244OvLOODnuOCteODkuODiA0KK+OCouODr+OCvyzjgrfjgrLjg6sNCivjgrjjg4As44Ki44Kt44KqDQor44Ob44K944Kr44OvLOODiOOCt+OCqg0KK+OCt+ODluODpCzjg6jjgrfjgqvjgroNCivjgrPjg5Djg6Tjgrcs44Kt44Oo44K3DQor44Kt44K/44Ks44OvLOODqOOCt+ODhuODqw0KK+ODn+OCuuOCv+ODiyzjgqLjgq3jg6kNCivjgr/jgqvjgrss44OI44K344KqDQor44Of44Ok44Og44OpLOODiOOCquODqw0KK+ODqOOCs+ODj+OCvyzjg4jjgrfjg5LjgrMNCivjg4rjg6rjgr8s44Of44OE44Oo44K3DQor44Ki44OZLOOCteODgOODkuODrQ0KK+ODiuODnuOCqCzjgrHjg7PjgrgNCivjgq3jg6Djg6ks44Om44K/44KrDQor44OK44K044K3LOODkuODh+OCouOCrQ0KK+ODiOODn+ODiuOCqyzjg6jjgrfjgqoNCivjg4rjgqvjg44s44OE44Oi44OrDQor44Kq44Kq44K144KvLOOCq+OCuuOCqg0KK+ODj+ODpOOCtyzjgrfjgrLjgqLjgq0NCivjgqrjgqrjgrUs44K/44Kr44K3DQor44Ok44Oe44Km44OBLOOCuA0KK+OCquODgCzjg6rjg6fjgqbjgrgNCivjg6HjgrDjg60s44OS44Ot44Oo44K3DQor44Kr44OK44K144KtLOODiOODn+OCqg0KK+OCquOCq+ODjizjg6TjgrnjgqoNCivjgq/jgrXjgqvjg68s44OK44Kq44KtDQor44Kk44OO44Km44KoLOOCv+OCseOCtw0KK+ODpOODgCzjgqvjgrrjgqrjg58NCivjg57jg4Tjgqrjgqss44Om44Kt44KqDQor44K544K644KtLOODpuOCpuOCuA0KK+OCv+OCreODouODiCzjgq/jg4vjgqoNCivjg5Ljgqzjgrfjg5Djgr8s44OS44OH44KqDQor44Kk44Kk44OALOOCseODs+OCtw0KK+OCq+ODs+ODjizjg57jgrXjg5Ljg60NCivjgr/jg4rjgqss44K344Ky44OrDQor44Kk44Kv44K/LOODpOOCueODkuOCtQ0KK+OCteODjizjg5Ljg4fjg57jgrUNCivjgrnjgqzjg6/jg6ks44Ok44K544OS44OtDQor44OK44Ks44K/LOODpuOCreOCqg0KK+OCpuODqeODjizjgrXjg4jjgrcNCivjgrnjgq7jg6Tjg54s44Kr44OE44Om44KtDQor44Kq44Kr44OZLOODleODn+OCqg0KK+OCs+OCpOODhyzjgr/jgqvjgrcNCivjgqTjgrfjgr/jg4ss44K144OI44K3DQor44Oi44OqLOOCqOOCpOOCuA0KK+OCreOCv+ODoOODqSzjgr/jgqvjgrcNCivjgqTjg6/jg58s44Ok44K544KqDQor44OV44Kr44OALOOCv+OCq+OCtw0KK+OCpuOCqOODgCzjg6bjgqbjgrgNCivjg5Xjg6vjgr/jg4ss44K/44Kr44Oe44K1DQor44OJ44KkLOOCv+OCq+OCtw0KK+ODiuOCrOODjizjg4jjgrfjg47jg6oNCivjgq3jg6Djg6ks44Ki44Kt44OpDQor44Kr44OJ44OkLOODpuOCpuOCtA0KK+OCquOCquOCvyzjgq/jg4vjgqoNCivjgr/jgrHjgqbjg4Es44Kx44Oz44Kk44OB44OtDQor44OI44Kv44Oi44OILOOCv+OCq+OCouOCrQ0KK+OCpOODiOOCpizjgrfjg5Xjg58NCivjg6Tjg57jgrbjgq0s44OI44Kt44KqDQor44Ki44Kq44KtLOODqOOCt+ODnw0KK+ODgeOCruODqizjgqjjgqTjgrjjg63jgqYNCivjg6jjgrfjg4rjgqws44OB44Kr44KoDQor44OS44Op44OQ44Ok44K3LOODkuODreOCq+OCug0KK+ODiuOCq+ODj+ODqSzjgrHjg7PjgrgNCivjg5Ljg63jg6Qs44OO44Oq44OS44OtDQor44Kr44OK44KkLOOCq+ODs+OCu+OCpA0KK+ODiOOCquODpOODnizjgr/jgqvjgrcNCivjgqbjg44s44Kt44Oz44K0DQor44K344OQ44K/LOODiOOCt+OCqg0KK+OCreOCv+OCrOODryzjgq3jg4/jg4Hjg63jgqYNCivjg4/jg6njg4As44OS44OH44Om44KtDQor44Ok44Oe44Og44OpLOOCseODs+OCuA0KK+OCr+ODnuODnyzjg6bjgqbjgr7jgqYNCivjgqTjgrfjg5Djgrcs44OI44K344Om44KtDQor44K344OQ44K/LOODj+ODq+OCrQ0KK+OCteOCr+ODpOODnizjgqvjgrrjgqoNCivjgqTjgrHjg4As44K744Kk44Kk44OBDQor44K/44Kx44Oi44OILOOCq+OCuuOCqg0KK+OCv+ODouODiCzjg4jjg5/jgqoNCivjgrPjg6Djg60s44Oq44On44Km44Kk44OBDQor44K/44OK44KrLOODnuOCteODiOOCtw0KK+OCq+ODnuODgCzjg5Ljg63jgrcNCivjgr/jg5Djgr8s44Kx44Kk44Kk44OBDQor44OS44Op44Kr44K/LOOCq+OCuuOCqg0KK+OCv+OCseOCpuODgSzjg4bjg4TjgqoNCivjgqTjg57jgros44Ok44K544K/44OADQor44OV44K444K/LOODiOOCt+ODn+ODgQ0KK+ODpOODnuODouODiCzjg4Tjg4jjg6ANCivjg6Tjg57jgq0s44Om44Km44K4DQor44K344Op44Kk44OBLOODnuOCteODqw0KK+OCteOCteOCrSzjg6Djg4Tjg58NCivjg5/jg6Tjgqvjg68s44Oe44K144K/44KrDQor44Kv44OJ44KmLOOCseOCpOOCsw0KK+OCouODqeODnuOCrSzjg47jg5bjgqoNCivjgq3jg4/jg6ks44OK44Kq44KtDQor44Kq44KrLOOCreODp+OCpg0KK+OCs+ODi+OCtyzjgrfjgrLjg58NCivjgr/jgrHjgqbjg4Es44K144OB44KzDQor44K/44OK44KrLOOCt+ODs+OCpOODgeODreOCpg0KK+OCteOCq+ODouODiCzjg57jg6Ljg6sNCivjg57jg4Tjg4DjgqTjg6ks44Ko44Kk44K4DQor44Kk44OOLOOCv+ODhOODreOCpg0KK+OCquODkOODiizjgrfjgrLjg6TjgrkNCivjgqrjgqrjgq/jg68s44Kt44Oo44K3DQor44K044OI44KmLOOCt+ODs+OCuA0KK+OCueOCuuOCrSzjgq3jg6jjgrcNCivjg4vjgrfjgqrjgqss44K144OW44Ot44KmDQor44K144K144KtLOODkuODh+OCqg0KK+ODj+ODqSzjgqTjgq/jgqoNCivjgrvjgq0s44OS44Ot44K3DQor44K144Kk44OI44KmLOODkuODiOOCtw0KK+ODleOCuOOCvyzjgrfjg6Xjg7PjgrnjgrENCivjgrXjgqvjgr8s44Kz44Km44Kk44OBDQor44Oe44Ko44K244KtLOOCpOOCteOCqg0KK+OCt+OCquODnyzjg5/jg4TjgqoNCivjgr/jgqvjgq/jg68s44Oe44K144OO44OWDQor44Kk44K344OP44OpLOODgeOCqOOCsw0KK+OCs+OCr+ODnCzjgrHjgqTjgrMNCivjg5/jg6Tjgrbjgq0s44K344Ky44KqDQor44Ki44Oq44OeLOOCseOCpOOCsw0KK+OCpuODgeODpOODnizjgr/jgqvjgrcNCivjg4rjgrfjgq0s44Kr44Kq44OrDQor44OV44K444K/LOODpuODn+OCsw0KK+OCv+OCq+OCruODryzjgqTjgrXjg6ANCivjg4vjgrfjg4As44OS44OI44K3DQor44Kt44Kv44OBLOODkuODh+ODleODnw0KK+ODiuOCq+OCpCzjg57jgrXjg58NCivjgqTjgqTjg4As44Ok44K544K3DQor44Ok44Oe44Kw44OBLOODjuODluODkuODrQ0KK+ODpOODjizjg6bjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44OS44K144K3DQor44Ob44Oq44Og44KtLOODqOOCt+ODng0KK+OCouODgOODgSzjg5Xjg5/jg47jg6oNCivjgqbjg6njg44s44Kz44Km44Kk44OBDQor44K/44Kx44OALOODn+ODgeOCsw0KK+OCteOCpOODiOOCpizjg5Ljg63jg4TjgrANCivjgrfjg57jg6Djg6ks44Kz44Km44K4DQor44OV44Kv44OALOODhOODqOOCtw0KK+OCreODoOODqSzjgqjjgqTjgrMNCivjg6Tjg57jg6Ljg4gs44Ko44Oq44KzDQor44K344Ky44Ok44K5LOOCqOOCpOOCpOODgQ0KK+OCq+ODjuOCpizjg5Ljg63jgqLjgq0NCivjgrnjg68s44OV44Of44KqDQor44Kq44Kr44K244KtLOODjuODquOCqg0KK+ODleOCq+ODpCzjg57jgrXjg5Ljg60NCivjgrPjgrbjgqQs44Of44OE44OrDQor44Ob44OJ44Ok44OeLOODkuODh+OCqg0KK+OCr+ODnOOCvyzjgq3jg6jjgrcNCivjgqTjgqTjgrrjgqss44Oq44On44Km44KzDQor44K/44Kr44KuLOOCv+OCseODjuODqg0KK+OCpOODr+OCqizjg57jgrXjgrcNCivjgqTjgrfjgqQs44Kk44K144OgDQor44Ov44Kr44OQ44Ok44K3LOODiOOCt+ODkuODhw0KK+OCvOODs+OCsSzjg4jjgrfjgqoNCivjg6/jgr/jg5ks44Oo44K344OfDQor44Oe44OE44Oi44OILOODkuODreOCt+OCsg0KK+ODnuODq+ODpOODnizjgrHjgqTjgrgNCivjg4rjgqvjg44s44OS44OH44OO44OqDQor44Kq44Kq44Kv44OcLOOCq+OCuuODj+ODqw0KK+OCr+ODnOOCvyzjg57jgrXjg4gNCivjg4vjgrfjgqvjg68s44OS44Ot44K3DQor44OL44OD44K/LOODleODn+OCsw0KK+OCpOOCt+ODgCzjg5Ljg4fjg5LjgrMNCivjgqvjg57jgrks44Kx44Oz44K+44KmDQor44Kr44Ky44Ok44OeLOODn+ODjuODqw0KK+ODnuODhOODoOODqSzjg4jjgrfjg5/jg4ENCivjgrXjgrXjgq0s44K544K544OgDQor44OS44Op44OOLOODqOOCt+OCq+OCug0KK+OCueOCuuOCrSzjgqTjg4Hjg63jgqYNCivjg4vjgrfjg4/jg6ks44Kx44KkDQor44Kv44Ot44Kk44OvLOOCv+OCq+OCtw0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrcNCivjgr/jgrHjgqbjg4Es44OS44OH44Ki44OEDQor44K344Of44K6LOOCouOCreODkuODhw0KK+OCteOCv+OCsSzjgrfjg7PjgrgNCivjgrPjgr/jg4ss44K/44Kv44Oi44OqDQor44Kz44OH44OpLOODnuOCteODiA0KK+ODj+ODnuODjizjg5/jg4HjgqoNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44Om44Ki44K1LOOCseODs+OCuA0KK+OCquOCq+ODgCzjg6jjgrfjg5Ljg60NCivjgrPjg5Djg6Tjgrcs44Oo44K344OP44OrDQor44OV44Kv44OALOOCuOODpeODs+OCpOODgQ0KK+OCq+ODn+ODoOODqSzjgr/jgqvjgrcNCivjgqTjg57jg4As44Oe44K144OS44OtDQor44K944ONLOODleODn+OCqg0KK+ODn+ODjuOCsOODgSzjg6jjgrfjg47jg6oNCivjgq/jg4Djg4rjg58s44Oe44K144Om44KtDQor44Kk44OO44Km44KoLOODn+ODieODqg0KK+OCpuOCqOODoOODqSzjg47jg5zjg6sNCivjg5/jgqbjg6ks44Kq44K144OgDQor44K544Ks44Ov44OpLOOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg4rjgqrjg6bjgq0NCivjg4vjgrfjg6/jgq0s44Oo44Km44K4DQor44Kq44Kq44K/44OLLOODnuOCteOCouOCrQ0KK+OCr+ODreOCq+ODryzjgq3jg6jjgrcNCivjgq/jg5zjgr8s44OO44OW44KqDQor44K/44Og44OpLOODkuODreODkuOCsw0KK+OCqOODk+ODj+ODqSzjgq3jgqTjg4ENCivjg4rjgqvjg6Djg6ks44Oo44Km44KzDQor44Ok44Oe44ONLOODqOOCt+ODiA0KK+OCouOCteODnizjg57jgrXjg5Ljg60NCivjg5/jgqbjg6ks44Ok44K544OO44OWDQor44Ki44Op44Kr44OvLOOCt+ODs+OCuA0KK+OCs+OCuOODnizjg6jjgrfjgqLjgq0NCivjgrXjgqvjgr8s44Kz44Km44OY44KkDQor44Kz44OQ44Ok44K3LOOCquOCteODleODnw0KK+OCquOCrOODryzjg6jjgrfjgqoNCivjgqvjg4jjgqYs44K/44Kr44Om44KtDQor44Of44OE44KkLOOCseOCpOOCpOODgQ0KK+ODhuOCt+ODnizjgqvjgrrjg57jgrUNCivjgqLjgr0s44OS44Ot44Kk44OBDQor44Oi44Oq44OkLOODkuODiOOCtw0KK+ODpOODiizjgqvjgrrjgqoNCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kk44OB44KtLOODkuODreOCtw0KK+OCquOCquOCvyzjg5Ljg63jgrcNCivjg5vjg6rjgqbjg4Es44Kx44Kk44Kk44OBDQor44K/44OL44Kw44OBLOODqOOCt+OCqg0KK+ODi+OCt+ODjizjgr3jgqbjgqTjg4Hjg63jgqYNCivjg5Xjg6vjg4/jgrcs44Kz44Km44K+44KmDQor44Ki44Kt44K/LOODiOOCt+OCqg0KK+OCquOCr+OCt+ODnizjgr/jgqvjgrcNCivjgqrjgqrjgr/jg4ss44K/44OA44OS44OtDQor44Kr44Oh44Kq44KrLOODqOOCt+OCqg0KK+ODj+ODqeOCquOCqyzjgqvjg4Tjg6TjgrkNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44Ki44Op44K344OeLOODpuOCreOCqg0KK+ODiuOCrOOCteODryzjg6jjgrfjg63jgqYNCivjg6Tjg57jgqrjgqss44Kt44Oo44K3DQor44OP44K7LOODnuOCteOCq+ODhA0KK+OCreOCt+ODouODiCzjgq/jg4vjgqoNCivjgrnjgrrjgq0s44Oo44K344KqDQor44Kr44Oh44OkLOOCq+ODhOODnw0KK+ODnuOCueODgCzjg57jgrXjg4/jg6sNCivjgqjjg7Pjg4ks44Kx44Oz44Kk44OBDQor44K144Kv44Op44KkLOOCv+OCq+OCouOCrQ0KK+ODleODq+OCt+ODp+OCpizjg5XjgrjjgqoNCivjgqbjgrfjgq0s44Kr44K644OfDQor44Kz44Kk44KxLOODkuODreOCtw0KK+ODiOOCpuODnizjgrXjg4Hjg5Ljg60NCivjg4rjgqvjgrbjg4gs44OS44Ot44K3DQor44Ok44Oe44Kq44KrLOODqOOCt+ODjuODlg0KK+ODiuOCq+ODjSzjg47jg5bjg4/jg6sNCivjg4jjg5/jgr8s44OO44Oq44Kr44K6DQor44K144OI44Og44OpLOOCseOCpOOCuA0KK+ODkuOCteODnuODhCzjg4jjg6jjg4jjgrcNCivjgqrjgqzjg68s44Oe44K144OIDQor44K144Kr44KkLOOCv+OCseOCtw0KK+ODiuOCq+OCrizjg6bjg58NCivjgrXjg6/jgrDjg4Es44Oe44K144Kv44OLDQor44Oe44OE44Oi44OILOODiOOCt+OCqg0KK+ODleODq+OCq+ODryzjgrPjgqbjgqTjg4ENCivjg5Xjgr/jg58s44Kt44Oo44K3DQor44K/44OK44KrLOODleOCr+ODoA0KK+ODkuODk+ODjizjg5Ljg63jgrcNCivjgrnjg4rjg4/jg6ks44K344On44Km44K4DQor44Kk44Kx44OALOOCv+OCq+OCtw0KK+OCtOODiOOCpizjg47jg5bjg6bjgq0NCivjgqTjgrfjg44s44OE44OI44OgDQor44Kt44Og44OpLOOCt+OCsuODqw0KK+ODpOODnuODgCzjg5/jg4TjgqoNCivjg6Ljg6rjg6Ljg4gs44Oe44K144OrDQor44Kq44Kr44Oi44OILOODnuODhOOCqg0KK+ODiuOCq+OCuOODnizjgrXjgqvjgqgNCivjgq3jgr/jg6Djg6ks44Oe44K544OfDQor44OK44Kr44Kk44K3LOOCv+OCseODpuOCrQ0KK+ODr+OCtSzjg5Ljg4fjgqoNCivjgrPjgrfjg6Djg6ks44Oe44K144K3DQor44OS44OK44K/LOOCreODp+OCpuODmOOCpA0KK+ODiuOCq+ODoOODqSzjg47jg5bjgqoNCivjg5Xjgq/jgqQs44K/44OE44OS44KzDQor44K/44Kr44OALOOCq+OCuuOCqg0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjg4vjgrfjg6Tjg54s44Oe44K144OS44OtDQor44OK44Kr44Ok44OeLOOCv+OCq+ODpOOCuQ0KK+ODj+ODquOCrOODpCzjg5Ljg63jgqLjgq0NCivjg57jgrnjg6Ljg4gs44Oo44K344KqDQor44OG44Op44OL44K3LOODnuOCteODjuODlg0KK+ODiuOCrOOCr+ODnCzjgqrjgrXjg6ANCivjg6jjgrfjg44s44K/44Kr44K3DQor44Oi44Oq44K/LOODjuODnOODqw0KK+ODhuODqeOCqizjg5/jg4Tjg5Ljg60NCivjg6jjgrfjg6Djg6ks44Kt44Oo44K4DQor44Ov44K/44OK44OZLOOCseODs+OCuA0KK+ODnuODhOODouODiCzjgq3jg6jjgrcNCivjgqrjgrbjgq0s44Oo44K344Ki44KtDQor44OS44Kw44OBLOODleOCuOOCrQ0KK+ODn+ODpOODouODiCzjg5/jgrXjgqoNCivjg6Tjg57jgrDjg4Es44Oe44K544OfDQor44Ok44Oe44Oi44OILOOCqOODhOOCsw0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjg4rjgqvjgqQs44Kr44K644OfDQor44OV44K444K/LOODkuODreOCtw0KK+OCueOCrOODr+ODqSzjgrPjgqbjgrjjg6fjgqYNCivjgqTjgrfjgrbjgq0s44K/44Kr44Om44KtDQor44K/44OE44OfLOODqOOCt+OCouOCrQ0KK+ODiuOCq+OCt+OCvyzjg57jgrPjg4gNCivjgqrjgrjjg54s44OS44Ot44Ki44KtDQor44Ki44K144K344K/LOODnuOCteODleODnw0KK+ODm+ODquOCpCzjg5/jg6jjgrcNCivjgqTjg6os44Kx44Oz44Kk44OBDQor44OV44K444Oe44KtLOOCv+ODgOOCouOCrQ0KK+OCq+OCuOODr+ODqSzjgrfjg6XjgqbjgqTjg4ENCivjg4/jgrvjgqzjg68s44Of44OE44KqDQor44OV44OK44Ok44OeLOOCqOODhOOCqg0KK+OCreODj+ODqSzjgr/jgqvjgrcNCivjgr/jgrHjg4As44Kx44Kk44KzDQor44Kk44Kk44OALOOCq+ODiuOCqA0KK+ODleODq+ODiSzjg57jgrXjgqoNCivjg6Ljg6os44K344Ol44Km44Kk44OBDQor44OV44Kv44OILOODiuOCquODpA0KK+OCquOCquODj+OCtyzjgqLjgq3jg5Ljg4gNCivjgqLjgqrjgq0s44OS44OH44K3DQor44K/44K444OeLOODkuODreOCtw0KK+OCquOCquODhOOCqyzjg4jjg6Ljg5Ljg60NCivjgqLjgqrjg44s44K444Oz44Kk44OBDQor44Kk44OO44Km44KoLOODkuODiOOCtw0KK+OCqOODs+ODiSzjg57jgrXjg5Ljg60NCivjg5Ljg63jgrss44Oo44K344Kr44OEDQor44Ko44Oz44OJLOOCouOCreOCqg0KK+OCq+ODr+OCpCzjg5/jg4Hjg6sNCivjgqLjgqTjgrbjg68s44OV44OI44K3DQor44Kz44Kk44K/44OQ44K3LOOCreODqOODkuODrQ0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjgqvjg47jgqYs44K344Ky44KtDQor44Km44Ko44Og44OpLOODnuOCteODiOOCtw0KK+OCueODn+ODqOOCtyzjg5Ljg4fjgqoNCivjg5Ljg63jgr8s44K144OI44OrDQor44Kk44OK44OI44OfLOOCq+OCuuODqOOCtw0KK+OCpOODiOOCpizjg47jg6rjgqvjg4QNCivjgq/jg5ws44OS44OH44Ki44KtDQor44Kr44OW44Op44KuLOODiOOCt+ODkuODrQ0KK+OCpOOCseODgCzjg6jjgrfjg47jg6oNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44K144Kr44KkLOODnuOCteODkuODrQ0KK+OCq+ODiOOCpizjg6Tjgrnjgq/jg4sNCivjgr/jgrHjgqQs44Ok44K544Om44KtDQor44OP44Oz44OALOODiOOCquODqw0KK+ODiuOCrOODpCzjgqvjg4Tjg58NCivjg4/jg4Pjg4jjg6os44OS44Ot44OO44OqDQor44K344Of44K6LOODqOOCt+ODiuOCqg0KK+OCpOODnuODi+OCtyzjg57jgrXjg4gNCivjgq/jg57jg5ks44Oe44K144KqDQor44Oe44OB44OALOODhOOCq+OCtQ0KK+ODpOOCrizjg4Hjg4/jg6sNCivjgqrjg4Djg54s44Om44Kt44KqDQor44Kt44K/44K444OeLOOCuOODpeODs+OCsw0KK+OCv+ODgeODkOODiizjgr/jgq/jg63jgqYNCivjg5Xjgrjjg6Ljg4gs44K344Ol44Km44K4DQor44Of44K644OOLOOCpOOCr+OCqg0KK+OCqOOCsOODgSzjgqvjg4Tjg58NCivjgqvjg6/jg5ks44K144OE44KzDQor44OK44Kr44Og44OpLOODgeOCouOCrQ0KK+OCouOCueODnizjgq3jg6jjgqvjgroNCivjg4/jg6Djg6ks44OE44OI44OgDQor44Kk44OI44KmLOODpuOCpuOCuA0KK+OCpOOCseOCtuOCrSzjgr/jgrHjgrcNCivjg6Tjg57jgrXjgq0s44OO44Oq44Om44KtDQor44OL44K344K244OvLOOCveOCpuOCuA0KK+ODi+ODryzjgqjjgqTjg5LjgrMNCivjg5/jgqbjg6ks44OS44K144K3DQor44Kr44K/44Kq44KrLOOCouOCseODnw0KK+ODj+ODpOOCtyzjg57jgq3jgrMNCivjg5/jgrXjgq0s44K/44Kx44K3DQor44Kq44OA44Kv44OpLOODkuODreODn+ODgQ0KK+ODleOCt+ODnyzjg4Hjgqvjg4gNCivjg5Ljg63jgr8s44K/44Kr44K3DQor44OP44K/44OkLOODiOOCt+ODpuOCrQ0KK+OCteOCq+OCpCzjg6bjgqbjgrgNCivjgqTjg4As44Kk44OB44Ot44KmDQor44K144OI44KmLOOCv+ODgOOCtw0KK+ODm+OCt+ODjizjg47jg5zjg6sNCivjgqrjgqzjg68s44OK44OE44Ki44KtDQor44OV44Kv44K244OILOODquODpeOCpuOCpOODgQ0KK+OCv+ODiuOCqyzjgrvjgqTjgrgNCivjgrXjgrXjgq0s44Kt44On44Km44KzDQor44Kq44K644OBLOODn+ODhOOCqg0KK+ODleODreODouODiCzjg5/jg47jg6sNCivjg4vjgrfjg6Djg6ks44K344Oz44OkDQor44K/44Kx44OALOODiOODn+OCsw0KK+OCv+OCseODiOODnyzjgrPjgqbjgqTjg4ENCivjgqrjgqvjg4As44Of44OB44KqDQor44Oe44OILOOCq+OCuuODpuOCrQ0KK+OCueOCuuOCrSzjgqLjgq3jg6jjgrcNCivjg6DjgqvjgqQs44Oo44Km44Kk44OBDQor44Kz44KsLOODpOOCueOCqg0KK+OCq+ODiOOCpizjgqvjgrrjg58NCivjg6jjgrPjgqQs44OV44Of44OI44K3DQor44Km44K344K044OhLOODnuOCteOCv+OCqw0KK+OCs+ODnuODhCzjg6jjgrfjgr/jgqsNCivjgqTjg4jjgqYs44OS44K144Ki44KtDQor44K144OI44KmLOOCt+ODpeODs+OCueOCsQ0KK+ODkuODreOCuyzjg47jg6rjg6jjgrcNCivjgrTjg58s44K444Ol44OzDQor44K/44OK44KrLOOCv+ODhOOCqg0KK+ODnuODhOODouODiCzjgr/jgqTjgqTjg4ENCivjg4/jg6Tjgrcs44K744Kk44K4DQor44K/44Kr44OP44K3LOOCq+ODhOODkuODrQ0KK+OCouODqeOCpCzjg4jjgrfjg6bjgq0NCivjg5vjgrcs44Kt44Oo44K3DQor44OG44Op44OALOOCt+OCsuODqw0KK+OCpOOCuuODjyzjg4/jg6vjgqoNCivjgrnjg4rjg4As44Ok44K544K444Ot44KmDQor44Kk44K444OeLOODleODn+OCqg0KK+OCv+OCq+ODgCzjg4jjgrfjg4/jg6sNCivjg6/jgqvjg57jg4Qs44Kz44Km44K4DQor44OE44OALOODiOOCt+ODpuOCrQ0KK+ODm+OCt+OCr+ODnizjg57jgrXjg4/jg6sNCivjg5vjg7Pjg4As44OS44Ot44OfDQor44Kr44Oe44OALOOCqOOCpOOCuA0KK+ODj+ODpOOCtyzjg5/jg4Tjg5Ljg60NCivjgqTjg57jgqQs44K/44OE44OrDQor44OE44OB44OkLOOCpOOCuuODnw0KK+ODr+ODgCzjgqTjgq/jg4gNCivjg6jjgrfjg4As44Kt44Of44OS44OtDQor44OA44OGLOOCuOODpeODsw0KK+ODj+OCueOCsyzjg6jjgrfjg47jg6oNCivjgr/jgrHjg4rjgqss44OS44Ot44Ki44KtDQor44Kq44Kv44OALOOCq+OCuuOCqg0KK+ODm+OCtyzjg6bjgqbjgrnjgrENCivjgqvjg6Hjg4As44Kr44Kq44OrDQor44OS44K344OM44OeLOODkuODreODleODnw0KK+OCquOCquODi+OCtyzjg5Ljg63jgqLjgq0NCivjgrXjg4jjgqYs44Oe44K144Ki44KtDQor44Ob44K944Kr44OvLOOCouOCreODqQ0KK+ODqOOCt+OCtuODryzjg5Ljg4fjgqoNCivjg4/jg6njg4As44Oo44K344K/44KrDQor44K144K144KtLOODiOODouODpuOCrQ0KK+OCpOOCpOODgCzjg5Ljg4fjg58NCivjgq3jgqzjg68s44Kz44Km44Kk44OBDQor44Kk44Kx44KqLOODkuODreODpuOCrQ0KK+OCouODqeOCpCzjg6TjgrnjgqoNCivjgqvjgq3jgqvjg68s44K444Ol44Oz44Kk44OBDQor44K044OI44KmLOOCr+ODi+ODiOOCtw0KK+ODn+ODpOOCs+OCtyzjg6TjgrnjgqgNCivjg5Xjgrjjgr8s44Ki44OE44OfDQor44Kv44Op44K/LOODkuODreODpuOCrQ0KK+ODouODquOCquOCqyzjg6bjg5/jgrMNCivjg6Tjg57jgqbjg6ks44Ok44K544Oo44K3DQor44Kv44Ot44OPLOODqOOCpuOCsw0KK+OCpOOCuuODj+ODqSzjg4rjgqrjgqvjgroNCivjgrfjgrLjg4jjg6Es44Oo44K344Ki44KtDQor44OL44K3LOODpOOCueODleODnw0KK+OCouOCreODpOODnizjg4jjg5/jgqoNCivjgqTjgrHjg4As44Kr44K644Kt44OBDQor44Oi44OqLOODpOOCueODnw0KK+ODkuODreOCq+ODryzjg6bjgqbjgrgNCivjgr3jg6Hjg6Qs44Ki44Kt44KqDQor44K144Kv44Op44KkLOOCqOODn+OCsw0KK+ODn+OCuuODjizjgqTjgrXjg6ANCivjg4bjg6njg4As44OI44K344Kr44K6DQor44OS44Op44Oe44OELOOCt+OCsuODqw0KK+OCquOCquOCvyzjgrTjg63jgqYNCivjg5Ljg6njg57jg4Qs44Ko44OE44KqDQor44OL44K344OALOODpuOCreOCqg0KK+ODoOODqeOCvyzjg5Ljg4fjg6bjgq0NCivjg5/jgrrjgrPjgrcs44Kx44Oz44Kk44OBDQor44OI44Of44K/LOOCv+OCq+OCqg0KK+OCq+ODr+ODnyzjgrvjgqTjgqTjg4ENCivjgrfjgqTjg44s44K344Ky44KqDQor44OK44Kr44Og44OpLOODjuODluOCqg0KK+OCpOOCt+OCq+ODryzjgrPjgqbjgqTjg4ENCivjgqvjg43jgr/jgrEs44Kr44OK44OhDQor44Kq44K344KyLOOCv+OCpOODgQ0KK+OCs+OCuOODnizjg6bjgqbjgr7jgqYNCivjg4jjg5As44Oe44Kz44OIDQor44Kk44Ov44K/LOODkuODh+OCouOCrQ0KK+OCquODjizjgrHjg7PjgrgNCivjgrPjgrXjgqss44OS44K144K/44KxDQor44Kr44Oz44OOLOOCouOCreOCqg0KK+OCpOODiOOCpizjg4jjgrfjg4TjgrANCivjgr/jgqvjgq4s44Of44OB44KzDQor44K/44Kr44OOLOOCt+ODs+OCpOODgQ0KK+OCpOODiuOCrOOCrSzjg4bjg4TjgqoNCivjg47jgrbjgq0s44K444Ol44OzDQor44K/44Kx44OALOODleODn+OCsw0KK+OCtOODiOOCpizjgrfjg7PjgrgNCivjg5vjg6rjgqvjg68s44Kr44K644OS44OtDQor44K544Ku44Oi44OILOODquODp+OCpg0KK+OCouODqeOCpCzjgrvjgqTjgrgNCivjg5Xjgrjjg6/jg6ks44OS44OH44K544KuDQor44Oo44K344OALOOCt+ODpeOCpuOCpOODgQ0KK+OCquOCt+ODnizjgr/jgrHjgrcNCivjgrTjg4jjgqYs44OA44Kk44K444Ot44KmDQor44Kk44K644Of44K144OvLOODqOOCt+ODiOODog0KK+OCpOODr+ODluODgSzjg57jgrXjg4TjgrANCivjgqTjg57jgq3jgr8s44K344On44Km44K4DQor44Og44Op44K/LOOCt+ODp+OCpuOCsw0KK+OCt+ODouODjizjgqvjgrrjg5Ljg60NCivjgrTjgqvjgqTjg4Es44Kz44Km44K4DQor44Ok44Oe44Oi44OILOODjuODnOODqw0KK+ODiuOCrOOCt+ODnizjgrjjg63jgqYNCivjg5/jgrfjg54s44Oo44K344OS44OtDQor44Ok44K544OK44KsLOOCq+ODhOODnw0KK+OCquODleODgSzjgrjjg63jgqYNCivjgrPjg6DjgqvjgqQs44Kt44Oo44OfDQor44OK44Ks44K144OvLOOCv+OCpOOCu+OCpA0KK+OCreOCv+OCquOCqyzjgqvjgrrjg5LjgrMNCivjg4/jg6ks44Kr44K644OkDQor44OV44Kr44OALOODjuODquODleODnw0KK+OCreOCv+OCrOODryzjgr/jgqvjgqLjgq0NCivjgqrjgqrjg6Ljg6os44Os44Kk44KzDQor44OP44OW44OBLOODkuODh+OCq+OCug0KK+ODn+ODpOOCtuOCrSzjg5Ljg63jg6ANCivjgrfjg63jgr8s44Oe44K144Om44KtDQor44Kz44Of44OkLOOCs+OCpuOCuA0KK+ODhuODqeOCqizjgrjjg63jgqYNCivjg4vjgrfjgrDjg4Es44OI44K344Ki44KtDQor44Kr44ON44K644KrLOODkuODreOCouOCrQ0KK+OCueOCruODpOODnizjg4bjg4TjgrgNCivjgr/jg4Hjg5Djg4rjgq0s44OP44Or44Ki44KtDQor44Oi44Oq44Kq44KrLOODnuOCteOCq+OCug0KK+ODqOODjuODouODiCzjg5Ljg4fjgq0NCivjgq/jgrnjg4As44Kr44K644Kk44OBDQor44Ki44Oq44Ok44K5LOOCqOODhOOCqg0KK+ODhOOCuOODouODiCzjg5LjgrXjg4gNCivjg5Xjgqvjg58s44K444Ol44Oz44Kk44OBDQor44Ki44Kt44Ok44OeLOOCreODqOOCtw0KK+ODouODgeOCuuOCrSzjg6jjgrfjgr/jgqsNCivjg47jg6Djg6ks44K344Ol44Oz44K4DQor44Ov44OALOOCreODqOOCtw0KK+OCquODgSzjg5Ljg63jgrcNCivjg6Djg6njg57jg4Qs44OB44Ko44KzDQor44Ok44OOLOOCquOCteODoA0KK+ODouODgeOCuuOCrSzjgq3jg6jjgrcNCivjg5Ljg6njgr8s44OK44Kq44KtDQor44Ov44Kr44Oe44OELOODiOOCt+OCteODgA0KK+OCteOCq+ODouODqizjgqvjg6jjgrMNCivjgrPjg5Djg6Tjgrcs44Ki44Kt44OS44KzDQor44Kk44Oe44Og44OpLOODqOOCt+ODkuODrQ0KK+OCquOCquOCueOCrCzjgqvjgqjjg4cNCivjgr/jgqvjg6Tjg54s44K/44Kr44OI44OpDQor44Kt44K/44OfLOODkuODreODkuODhw0KK+ODnuOCqOODgCzjgr/jgqjjgrMNCivjg4jjg6Ljg44s44Kx44Oz44Kk44OBDQor44Kr44OW44Op44KuLOODnuOCteODpuOCrQ0KK+ODjeOCruOCtyzjgrHjgqTjgr7jgqYNCivjg6/jg4As44Om44Of44KzDQor44K544K644KtLOODpOOCueODpuOCrQ0KK+OCteODiuOCqCzjgqvjgrrjg57jgrUNCivjg44s44K/44OE44OkDQor44Kk44K344OQ44K3LOODkuODreODpuOCrQ0KK+ODpOODnuOCt+OCvyzjg4Tjg43jgqoNCivjgrnjgrrjgq0s44Kr44K644OS44OtDQor44Of44Ok44Ov44KtLOODiOOCt+ODkuOCsw0KK+ODnuODhOOCpuODqSzjg6jjgrfjgqLjgq0NCivjgq3jgr/jg6Tjg54s44Oo44K344OS44OtDQor44Ok44Oe44Kw44OBLOOCuOODpeODs+OCuA0KK+ODi+OCt+ODpOODnizjgqvjg4TjgrgNCivjgqvjg6/jg5Djgr8s44Oe44K144OS44KzDQor44Of44Kr44OfLOOCuOODpeODsw0KK+OCueOCruODpOODnizjgqTjgrXjgqoNCivjgq3jgrjjg54s44OO44Oq44KqDQor44OS44Ks44K3LOOCt+ODpeOCpuOCuA0KK+OCouODmSzjg57jgrXjg4gNCivjgqTjg47jgqbjgqgs44Oo44Km44KzDQor44OV44Kr44OALOOCouOCreOCqg0KK+ODoOODqeODnuODhCzjgrjjg6Xjg7MNCivjg5Ljg6njg5Djg6ss44K/44Kx44KqDQor44OB44On44Km44OK44OzLOODqOOCt+ODnuODrQ0KK+OCq+ODr+ODoOODrSzjgrXjg4jjgrcNCivjg4Tjgq/jg4As44Of44OO44OrDQor44Of44Ok44Oi44OILOODiOOCt+ODkuODrQ0KK+OCueOCqOODkuODrSzjgrjjg6Xjg7PjgqTjg4ENCivjgrfjg6njgqvjg68s44Kz44Km44K4DQor44K/44OK44KrLOOCseOCpOOCtw0KK+ODpOOCueOCpCzjg6jjgrfjg47jg5YNCivjgq3jg6Djg6ks44Kr44OE44KzDQor44OK44Kr44Ks44OvLOOCq+ODhOODqOOCtw0KK+OCr+OCteODjizjg4jjgrfjg5Ljg60NCivjgqLjg4Djg4Es44Oo44K344OS44OtDQor44OK44Kr44OI44OiLOODoOODhOODnw0KK+ODnuOCueODouODiCzjg4Tjg4jjg6ANCivjg6/jgr/jg4zjgq0s44Ok44K544OS44OtDQor44K/44Kr44OP44K3LOOCq+ODhOOCuA0KK+OCs+ODnOODqizjg5/jgq3jgqoNCivjgqrjgqzjg68s44Kz44Km44Kk44OBDQor44OV44K444Oi44OqLOODn+OCreOCqg0KK+OCpOODj+ODqSzjgqjjg58NCivjg6/jgr/jg4rjg5ks44Om44Km44KzDQor44Km44Op44OZLOOCpOOCteODoA0KK+ODn+OCpuODqSzjg5/jg4Tjg6sNCivjg4rjgqvjgqQs44Kx44Kk44Kk44OBDQor44Ov44Op44K344OKLOOCt+OCsuODqw0KK+ODleOCr+ODiuOCrCzjg6jjgrfjgqvjgroNCivjgqrjgqrjg4Tjg5ws44Oo44K344Ki44KtDQor44Oo44K344OALOODn+ODjuODqw0KK+ODj+ODpOODnyzjgqvjg4Tjg5LjgrMNCivjg47jg6Djg6ks44Oe44K144Kr44K6DQor44OS44Op44KkLOODqOOCt+ODpuOCrQ0KK+OCt+ODnuODgCzjg57jgrXjgqgNCivjgrnjgrrjgq0s44OK44Kq44OI44K3DQor44OG44Op44K344OeLOOCreODn+ODkuOCsw0KK+OCt+OCuuODj+ODqSzjg6zjgqTjgrMNCivjg6Tjg57jg4jjg6Qs44Kr44K644OS44KzDQor44Kq44Ku44OOLOODkuODreOCqg0KK+ODnuODhOOCsOODnizjgrfjgrLjg5sNCivjgq3jgr/jgqQs44OI44K344OS44KzDQor44Ki44Kr44OALOOCt+OCuuOCqg0KK+OCv+OCseODqOOCtyzjgrvjgqTjg47jgrnjgrENCivjg5Ljg63jg44s44K944Kq44K444OjDQor44K344Oe44Og44OpLOODiOODnuOCtQ0KK+ODquODpeOCpuOCtCzjgrfjg6Xjg7PjgqTjg4ENCivjgq/jg4vjgqjjg4As44Oe44Kt44KqDQor44Kq44Kq44OE44KrLOODm+OCs+OCrw0KK+OCpOOCseOCrOODnyzjg5Ljg4fjg4jjgrcNCivjgqvjg43jg57jg4Qs44Kr44ON44OS44OHDQor44Kq44Kq44Ks44Ov44OpLOODqOOCt+ODjuODlg0KK+OCueOCuuOCrSzjgr/jgqvjgrcNCivjg4bjg6njg4As44K744OE44KzDQor44Kr44Ov44K144KtLOODhuODhOOCuA0KK+OCquOCt+ODpOODnizjg6jjgrfjg5LjgrUNCivjgqvjg6/jgqvjg58s44K344Ky44KtDQor44OK44Kr44Og44OpLOODiOOCt+OCouOCrQ0KK+ODn+OCv+ODiyzjg4jjgrfjg5LjgrMNCivjgrPjg57jg4Qs44OS44Ot44K/44KrDQor44Ki44Kr44Kk44OvLOODiOOCt+ODkuOCsw0KK+OCpOODgeOCpCzjg5Xjg5/jg6QNCivjg5Xjgq/jg6Tjg54s44Oe44K144Ki44KtDQor44Kv44OJ44KmLOODqOOCt+ODhuODqw0KK+ODnuODhOOCt+OCvyzjgrfjg7PjgrgNCivjg4vjgrfjgqvjg68s44Om44Kt44OS44OtDQor44Ki44Oe44Ks44OfLOOCt+ODsw0KK+ODpOOCt+OCrSzjgqLjgqTjgqTjg4Hjg63jgqYNCivjg6/jg4As44Ki44OE44KzDQor44Oe44K544OALOODiOODouOCsw0KK+ODqOOCt+ODoOODqSzjg6bjgqbjgrgNCivjgqrjg4As44K344Oz44K4DQor44Oo44Kz44Ok44OeLOOCv+OCq+ODleODnw0KK+OCpOODiOOCpCzjg6bjg6rjgrMNCivjgrnjgrrjgq0s44Kr44OE44OS44OtDQor44OK44Ks44OP44OeLOODkuODreODpuOCrQ0KK+ODpOOCtuOCrSzjg4bjgqTjgr7jgqYNCivjg6Tjgrjjg54s44Kt44Oo44K3DQor44Og44Kr44Ko44OALOOCteODiOODqw0KK+ODiuOCq+ODoOODqSzjgr/jg4TjgqLjgq0NCivjg6Tjg57jg6Djg6ks44Kz44Km44Kk44OBDQor44OO44Oi44OILOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg5LjgrMNCivjgrXjg4jjgqYs44OI44K344OkDQor44Kk44OO44Km44KoLOODkuODreODpuOCrQ0KK+OCquOCq+ODjizjg5Ljg4fjgqoNCivjg4rjgqvjg4vjgrcs44OP44Or44OS44K1DQor44Km44Ko44OALOODkuODreODnw0KK+OCouOCpOOCtuODryzjgqLjgq3jgqoNCivjgqLjg6njgqQs44OI44Oi44OK44OqDQor44OK44Ks44Kk44K3LOOCq+ODhOODnw0KK+ODj+OCs+OCpCzjg57jgrXjgqoNCivjgq/jgrnjg6Ljg4gs44K/44Kr44Oo44K3DQor44Ki44Oq44OI44OfLOOCuOODhOODreOCpg0KK+ODj+ODqSzjgr/jg5/jgqoNCivjg5vjg7Pjg54s44Oe44K144OP44OrDQor44OP44K344Oi44OILOODn+ODgeODj+ODqw0KK+ODj+OCt+ODouODiCzjg57jgrXjgqoNCivjgqrjgqrjg4zjg54s44Kk44K144KqDQor44OP44OK44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+ODj+OCt+ODouODiCzjgqLjgq3jgrMNCivjgrXjgq/jg6njgrbjg68s44OS44OH44OI44K3DQor44Ki44Kr44KuLOODpOOCueODkuODiA0KK+OCouOCreOCuuOCrSzjg57jgrXjg4jjgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44KtDQor44Ki44Op44KkLOOCv+ODnuOCqg0KK+OCouOCteODoOODqSzjgqvjg4Tjg58NCivjg4Hjg5As44Ki44KzDQor44Ko44Kw44OBLOODpuOCreOCv+OCqw0KK+ODleODgeODjizjg4jjgqrjg6sNCivjg5Xjgrjjg57jg6ss44OS44K144OIDQor44OV44K444K144OvLOODjuODquOCqg0KK+ODleOCq+ODgCzjg5Xjg5/jg5Ljg60NCivjg5Xjgq/jgqQs44OS44Ot44K3DQor44OV44Kv44OI44OfLOODquODpeOCpuOCteOCrw0KK+OCruODnizjgqvjgrrjg6jjgrcNCivjg4/jgq7jg6/jg6ks44Kk44OB44Ot44KmDQor44OP44OpLOOCreODqOOCv+OCqw0KK+ODj+ODq+ODiizjgr/jgqvjgqLjgq0NCivjg4/jg4Tjg58s44Ki44K644K1DQor44OP44Ok44K7LOOCt+ODs+OCtA0KK+ODj+ODpOODhCzjg5Ljg63jgrcNCivjg5Ljg6njgqrjgqss44Oe44Om44OfDQor44OS44Ot44K3LOODjuODluOCsw0KK+ODm+OCt+OCsyzjg57jgrXjg5Ljg60NCivjgqTjg4Hjgqvjg68s44Oe44K144OrDQor44Kk44Ks44OvLOOCreODqOOCtw0KK+OCpOOCpOOCuuOCqyzjgqLjg6rjgrUNCivjg5/jg4Tjg6Ljg4gs44OS44Ot44K/44KrDQor44Kk44Oe44Og44OpLOODkuODreODpuOCrQ0KK+OCpOODiuODnyzjg5Ljg63jg5/jg4ENCivjgqTjg47jgqbjgqgs44K/44Kx44K3DQor44Kk44K7LOODpuOCreOCqg0KK+OCueOCruODj+ODqSzjg5Ljg63jgr/jgqsNCivjgqTjgrfjg6Ljg4gs44Kx44Oz44K4DQor44Kk44K344K644KrLOODiOOCquODqw0KK+OCpOODiOOCpizjg6jjgqbjgrgNCivjgqvjg5/jgqvjg68s44K/44OA44Of44OEDQor44Kk44Ov44K144KtLOOCseOCpOOCsw0KK+OCpOOCuuODnyzjg5/jg68NCivjgqvjg57jg4As44K/44Kr44OS44OtDQor44K/44Kx44Km44OBLOODn+OCrQ0KK+ODjuODoOODqSzjgqjjg5/jgrMNCivjgqvjgr/jg44s44OG44Or44OS44K1DQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+OCq+ODr+ODgCzjg5Ljg63jg6bjgq0NCivjgqTjgrfjgqQs44Ok44K544KtDQor44Kr44Ov44K344OeLOOCqOOCpOOCsw0KK+OCreOCr+OCq+ODryzjg6bjgqvjg6oNCivjgq3jgrcs44K/44Kv44K3DQor44Kz44OQ44Ok44K3LOODhuODhOODpA0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5LjgrMNCivjgrPjg6Tjg54s44Ki44Kt44OpDQor44Kz44Kv44OcLOODqOOCpuOCsw0KK+OCs+ODs+ODiSzjg5/jgqgNCivjgrPjgrfjgqos44Oe44K144OI44K3DQor44Kv44OcLOODhOODiOODoA0KK+ODm+OCt+ODjizjg4jjgrfjg6QNCivjgq/jgrXjgqvjg68s44Kx44Kk44Kk44OBDQor44Kv44K544OfLOODpuOCv+OCqw0KK+ODnuOCreODjizjg4Hjg5Ljg60NCivjg57jg6vjg6Tjg54s44Oe44Kz44OIDQor44OK44Kr44Og44OpLOODgeODiOOCuw0KK+ODnuODhOODouODiCzjgqLjg4TjgrcNCivjg6Hjgrbjg68s44OS44OI44K3DQor44Of44ONLOODnuOCteODpOOCuQ0KK+ODn+ODiCzjg47jg5bjgqoNCivjg5/jg6Tjg6Ljg4gs44K344Ky44OrDQor44Of44Ok44K244OvLOOCq+ODhOODnw0KK+ODn+OCuuOCvyzjgrHjg7PjgrgNCivjg6Ljg6os44OP44K644KtDQor44Oi44Oq44Oi44OILOODnuODiuODlg0KK+ODouODreOCquOCqyzjg5/jg4Tjg5Ljg60NCivjgqLjg7Pjg4njgqYs44Kk44Ov44KqDQor44Of44On44Km44KsLOOCv+OCq+ODpuOCrQ0KK+ODiuOCrOOCqizjgqLjgq3jg5Ljg60NCivjg4rjgqzjgrss44K544K544OgDQor44OK44Kk44OI44KmLOOCteODgOODn+ODhA0KK+ODiuOCq+OCuOODnizjg4jjgqrjg6sNCivjg4rjgqvjg57jg6ss44OI44K344KzDQor44OK44Kr44Og44OpLOODquODpeOCpuOCpOODgQ0KK+ODiuOCq+ODi+OCtyzjg5Ljg4fjg4gNCivjg4rjgqvjg44s44OE44Kr44K1DQor44K344OK44OALOOCouOCreODqQ0KK+ODiuODquOCvyzjgr/jgq/jgrgNCivjg4vjgqTjg6Tjg54s44OS44Ot44K3DQor44OL44K344Kr44OvLOOCouOCreODqQ0KK+ODi+OCt+OCuuOCqyzjg4jjgrfjg6QNCivjg5Ljg44s44Kr44K644Om44KtDQor44OP44K744Ks44OvLOODn+ODhOOCouOCrQ0KK+OCquOCrOOCvyzjg5Ljg4jjgrcNCivjg6DjgrXjgrcs44Of44OE44OrDQor44Kq44Kq44Kv44OcLOODj+ODq+OCtw0KK+OCquOCquOCteODryzjg5Ljg4fjgq0NCivjgqrjgqrjgr8s44K344Oz44K4DQor44Kq44Kq44Ov44OALOODkuODreODjuODqg0KK+OCquOCq+ODgCzjgr/jgqvjg6jjgrcNCivjgqrjgqvjg6Ljg4gs44OS44Ot44K3DQor44Kq44Kt44Oi44OILOODnuOCteODkuOCsw0KK+OCquODi+ODhOOCqyzjg57jgrXjgqLjgq0NCivjgqrjgrXjgq0s44K/44Kr44K3DQor44K144Ko44KtLOODqOOCt+ODkuODrQ0KK+OCteOCq+OCpCzjg6rjg6fjgqbjgrgNCivjgrXjgqvjgq0s44Kt44On44Km44KzDQor44K144Kr44Km44KoLOOCv+OCq+ODpuOCrQ0KK+OCteODjizjg4jjgrfjg5Xjg58NCivjgrXjg4jjgqYs44Ok44K544K3DQor44K144OI44KmLOOCteODiOOCtw0KK+OCteODr+OCpCzjg5/jg4Hjg5Ljg60NCivjgrvjgq3jg4/jg6ks44Ki44Kt44OpDQor44K744K344OiLOOCt+ODpeOCpuOCpOODgQ0KK+OCt+ODkOOCvyzjg4bjg4Tjg63jgqYNCivjg6Djg6njgr8s44Oq44Ol44Km44K/44Ot44KmDQor44K344Of44K6LOODj+ODpOODiOOCtw0KK+OCt+ODouOCquOCtSzjgr/jgrHjgrcNCivjgrfjg47jg4As44OP44OE44KoDQor44K344Op44KkLOOCq+OCuuODkuOCsw0KK+OCueODieOCpizjg6Ljg4jjg6bjgq0NCivjgrnjgq7jgrfjg54s44Oe44K144OrDQor44K544Ok44OeLOODiOODouODjuODqg0KK+OCueOCuuOCrSzjg6bjgr/jgqsNCivjgrfjg6Xjgq/jg6Qs44K444Ol44Oz44Kk44OBDQor44K/44Kw44OBLOODiuOCquODpuOCrQ0KK+ODn+ODpOODouODiCzjgr/jgqvjgrcNCivjgr/jgqvjg4/jgrcs44Kx44Oz44Oq44Ol44KmDQor44K/44Kr44OP44K3LOODpuOCreOCqA0KK+OCv+OCq+ODj+OCtyzjgqTjg4Hjg63jgqYNCivjgr/jgqvjgrss44K344Ky44KtDQor44Of44Kr44OfLOOCseOCpOOCueOCsQ0KK+OCv+OCseODpOODnizjg4jjgrfjgqLjgq0NCivjgr/jg4rjg5ks44OS44Ot44Om44KtDQor44K/44OK44KrLOODkuODreOCsw0KK+OCv+ODiuOCqyzjg47jg6rjgqLjgq0NCivjgr/jg4vjgrDjg4Es44K444Ol44Oz44KzDQor44K/44OG44Kk44K3LOODiuOCquODpA0KK+ODhuODq+OCreODiizjgqLjgq3jg6gNCivjg4jjg5/jgqrjgqss44OK44Kq44KtDQor44OI44Oo44OALOODnuOCteODkuOCsw0KK+ODhOODgeODpCzjg6jjgrfjg5Ljg60NCivjg4Tjgrgs44OS44Ot44K3DQor44OE44OO44Ks44KkLOODpOOCueODjuODqg0KK+OCpuODgeODgCzjg57jgrXjg5Xjg58NCivjgqbjg4As44Kx44Kk44K4DQor44Km44Ko44OP44OpLOOCt+ODs+OCuA0KK+OCpuOCqOODjizjg6bjgqbjgrgNCivjgqbjg6Hjg4/jg6ks44Oe44Kz44OIDQor44Km44K544KkLOOCs+OCpuODmOOCpA0KK+ODr+ODgCzjg6jjgrfjgqLjgq0NCivjg6/jgr/jg4rjg5ks44K144OI44K3DQor44Ok44OP44KuLOODiuOCquODleODnw0KK+ODpOODnuODgCzjg4jjgrfjgqoNCivjg6Tjg57jgrDjg4Es44OI44Oi44Kr44K6DQor44Ok44Oe44Oi44OILOOCseODs+OCuOODreOCpg0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjg6Tjg57jgrfjgr8s44Oq44Oz44K444OlDQor44Ok44Oe44K244KtLOODkuODiOOCtw0KK+ODpOOCueODgCzjg57jgrXjg58NCivjg6jjg4njgqzjg68s44OO44Oq44KqDQor44Oo44Ot44K644OkLOODiuOCquODkuOCtQ0KK+ODqOOCt+ODnuODhCzjg4Hjg4/jg6sNCivjgqjjg4Djg5Ljg60s44Of44OJ44OqDQor44Kz44K444OeLOODpOOCueODkuOCtQ0KK+OCquOCrOODryzjg6HjgrDjg58NCivjgr/jgqvjgrss44Oe44Of44KzDQor44OV44Kv44K/LOOCq+OCuuODnw0KK+OCv+OCsOODgSzjg5Ljg63jg6ANCivjgqLjgrXjg44s44OI44K344OS44KzDQor44OV44K444KkLOOCseODs+OCuA0KK+ODleOCuOODr+ODqSzjgrPjgqbjgrgNCivjgrTjg4jjgqYs44OS44Ot44Kr44K6DQor44OP44Ok44K3LOODiOOCt+OCouOCrQ0KK+ODkuODqeOCpCzjg5Ljg63jgr/jgqsNCivjgqTjg4HjgqQs44K344Ky44Om44KtDQor44Kk44Kx44OALOOCpOOCr+OCuOODreOCpg0KK+OCpOOCt+ODnuODqyzjg5/jg68NCivjgqTjg4jjgqYs44OG44OE44OkDQor44Kr44Ky44Ok44OeLOODhOODqOOCtw0KK+OCq+OCteODnizjg47jg6rjg57jgrUNCivjgqvjg4jjgqYs44Kz44Km44K/DQor44Kt44Kv44OBLOODiOODouOCouOCrQ0KK+OCreOCv+OCrOODryzjg5/jg4Hjg4/jg6sNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K/44Ot44KmDQor44Kz44Oz44OJLOODjuODquOCsw0KK+OCr+ODieOCpizjg4/jg6Tjg4gNCivjgq/jgrXjg5Xjgqss44K344OO44OWDQor44Oe44OE44OA44Kk44OpLOODnuOCrQ0KK+ODn+OCr+ODiyzjg6TjgrnjgrcNCivjg5/jg6Tjg4Es44K/44Kr44OV44OfDQor44Of44Ok44K244OvLOODkuODreOCrQ0KK+ODouODquOCvyzjgq/jg6vjg58NCivjg6Djg63jgr7jg44s44OS44Ot44Ki44KtDQor44OK44Kr44Of44OBLOOCt+ODp+OCpg0KK+ODi+OCt+ODoOODqSzjgrfjg7Pjg6QNCivjgqrjgqzjg68s44K/44Kr44K3DQor44Kq44Kq44KoLOODnuOCteODn+ODgQ0KK+OCquOCquOCvyzjgr/jgqvjgrcNCivjgqrjgqvjg6Tjg54s44Of44OE44Oo44OqDQor44K144Kk44OI44KmLOOCv+OCq+ODjuODlg0KK+OCteODjizjgr/jgq/jg6QNCivjgrXjg4jjgqYs44K/44Kr44K3DQor44K344KkLOODn+OCteOCsw0KK+OCt+ODs+OCreODpeOCpizjg57jgrXjg6bjgq0NCivjgrnjgq7jg6Tjg54s44Kt44Oo44K/44KrDQor44K/44Kr44KuLOODqOOCt+OCqg0KK+OCv+OCseOCpuODgSzjgqvjg5vjg6sNCivjgr/jg4rjgqss44OO44OW44KzDQor44K/44Or44K144OvLOOCouOCreOCsw0KK+ODiOODouODjizjgqvjgrrjg58NCivjg6/jgr/jg4rjg5ks44Oe44K144OI44K3DQor44Ok44Oe44Oi44OILOODkuODh+ODiA0KK+ODpOODnuOCtuOCrSzjg5Xjg5/jg44NCivjg6jjg43jg5/jg4Qs44Oe44Kz44OIDQor44Om44OqLOODiOODouOCqg0KK+ODnuODhOOCsOODnizjg5Xjg5/jgrMNCivjgqLjgrjjg54s44Ok44K544Ki44KtDQor44Ki44Oe44OOLOODgeOCouOCrQ0KK+OCouOCquOCrSzjg6jjgrfjgrMNCivjgqLjgqrjgq0s44OK44Kq44OS44K1DQor44Ki44Op44KtLOOCq+ODhOOCuA0KK+OCouOCteOCr+ODqSzjgr/jg4TjgqoNCivjgqLjgrrjg54s44Oq44KoDQor44K144K/44KxLOOCseOCpOOCsw0KK+ODgOOCpOOCqizjg5Ljg4fjgq0NCivjg4rjgqvjg6Djg6ks44K/44Kr44KzDQor44OV44K444KkLOOCv+ODhOODjuODqg0KK+ODleOCuOOCquOCqyzjg4bjg4Tjg63jgqYNCivjg5Xjgq/jgqQs44Kz44Km44K4DQor44OV44OK44OALOODpuOCpuOCsw0KK+OCtOODiOOCpizjgqvjgqTjg4Hjg63jgqYNCivjg4/jg57jg4As44Oo44K344OfDQor44K144OI44KmLOOCu+OCpOOCtA0KK+ODj+ODquODnizjg4rjgqrjgq0NCivjg4/jgrvjgqzjg68s44Ki44Kt44OS44KzDQor44OP44K/LOOCt+ODs+OCpOODgeODreOCpg0KK+ODj+ODg+ODiOODqizjg6bjgq0NCivjg4/jg6Tjg58s44K544Of44OS44OIDQor44OP44Ok44K3LOODnuOCteODjuODqg0KK+ODkuOCqOODgCzjg5/jg4HjgqvjgroNCivjg5Ljgqrjgq0s44OI44Km44Oh44KkDQor44Ob44OALOODkuODreOCrQ0KK+ODkuODreOCueOCqCzjgrjjg6Xjg7PjgrMNCivjg5Ljgrfjg4As44OS44Ot44K3DQor44Ob44Oz44K044KmLOODnuOCteODiA0KK+ODm+ODquOCqCzjgqLjgq3jg47jg6oNCivjg5vjgrfjg4os44Kz44Km44Kk44OBDQor44Kk44OB44Kr44OvLOODkuODiOOCtw0KK+OCpOOCrOOCvyzjgqjjgqTjgqTjg4Hjg63jgqYNCivjgqTjgqTjgrrjgqss44Oe44Kz44OIDQor44Kk44Kx44OALOOCv+OCq+ODpuOCrQ0KK+ODm+OCveOCpCzjgrHjg7Pjgr/jg63jgqYNCivjgqTjg44s44K444Ol44OzDQor44Kk44OO44Km44KoLOODleODn+ODjuODqg0KK+OCquOCquODouODqizjgrHjg7PjgqTjg4Hjg60NCivjgqTjgrfjgqQs44Kx44Kk44K444Ot44KmDQor44Kk44K344KkLOODpOOCueOCtw0KK+OCpOOCt+ODhOOCqyzjg4jjgrfjg6bjgq0NCivjgqTjgr3jgqzjgqQs44Om44Km44KzDQor44Kk44OI44KmLOOCteODiOOCtw0KK+OCpOODr+ODj+OCtyzjg6bjgqbjgrMNCivjgqTjg6/jgrXjgq0s44OS44Ot44Om44KtDQor44Kr44Ks44OWLOOCt+ODs+OCuOODreOCpg0KK+OCq+ODnuODm+ODqizjg4jjg6Ljg5LjgrMNCivjgqvjg5/jg6Qs44OO44OW44Om44KtDQor44Kr44OK44KkLOODjuODquOCsw0KK+OCq+ODs+ODgCzjg4HjgqgNCivjgqvjg47jgqYs44K/44Kx44K3DQor44K/44Oe44K/44OLLOOCt+ODng0KK+OCq+ODiOOCpizjg5Ljg63jgq0NCivjgqvjg4jjgqYs44K444Ol44Oz44KzDQor44Kr44Ov44Kw44OBLOOCs+OCpuOCuA0KK+OCq+ODr+ODoOODqSzjgrfjg6XjgqbjgrgNCivjgqvjg6/jgrfjg54s44OO44OW44KzDQor44Kt44Kv44OBLOOCpOODgeODreOCpg0KK+OCreODoOODqSzjgr/jgqvjg5LjgrUNCivjgq3jgrcs44OK44Kq44KtDQor44Kt44K/44Ks44OvLOODiuOCquODnw0KK+OCreODqOODj+ODqSzjg4Tjg4jjg6ANCivjgrPjg5Djg6Tjgrcs44Kx44Oz44K4DQor44Kz44OA44OeLOODpOOCueODkuODrQ0KK+OCs+OCpOODryzjg4jjg6Ljg6bjgq0NCivjgrPjgrjjg54s44K144OI44K3DQor44Kz44Oz44OJLOOCseODs+OCpOODgQ0KK+OCr+ODnCzjg4rjgqrjgq0NCivjgq/jg57jgq/jg6ks44Kx44Oz44Kk44OBDQor44OS44Op44KkLOOCs+OCpuOCuA0KK+OCr+ODreODgCzjgqLjg4TjgrcNCivjgq/jg63jgrXjg68s44Ko44Kk44K444Ot44KmDQor44Oe44Ko44OALOOCteODiOOCtw0KK+OCt+ODluOCv+ODiyzjgrPjgqbjgrgNCivjg57jgrnjg4As44Om44Km44KzDQor44OP44OpLOOCseODs+OCuA0KK+ODnuODhOOCpCzjgrfjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44OS44Ot44K3DQor44Oe44OE44OK44OfLOODqOOCt+OCsw0KK+ODnuODhOOCquOCqyzjgrfjg7PjgrQNCivjg57jg4Tjg6Tjg54s44Ki44Kt44OpDQor44Of44Kr44OfLOODkuODh+OCqg0KK+ODn+ODiuODnyzjgqLjgq3jg6kNCivjg5/jgr/jg6Djg6ks44Oe44K144OI44K3DQor44Of44OE44OeLOOCq+OCuuODkuODiA0KK+ODn+ODpOOCt+OCvyzjg5Ljg63jg6bjgq0NCivjg4/jgrfjgrDjg4Es44K344Ky44KtDQor44Of44K644OOLOODiOOCt+ODpuOCrQ0KK+ODouODqizjg57jgrXjgrcNCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Oi44Oq44OkLOODoOODhOOCqg0KK+ODoOODjeOCq+OCvyzjgqvjgrrjg6jjgrcNCivjg6Djg6njgr8s44Om44Kt44Oi44OIDQor44Of44On44Km44K444OzLOODn+ODgeOCqg0KK+ODiuOCrOOCt+ODnizjg6jjgrfjgqvjgroNCivjg4rjgqTjg4jjgqYs44Oe44K144KtDQor44OK44Kr44K444OeLOODhuODq+ODnw0KK+ODiuOCq+ODouODiCzjg5Ljg63jgqvjgroNCivjg4rjgqvjg6Djg6ks44Om44Km44K4DQor44OK44Kr44Og44OpLOOCseODs+OCvw0KK+ODiuOCq+ODpCzjg6/jgr/jg6sNCivjg4rjg7Ms44Kx44Kk44K544KxDQor44OK44OI44OqLOOCseODs+ODpA0KK+ODi+OCpOOCtuODryzjg6jjgrfjg47jg6oNCivjg4vjgrfjg4As44Ok44K544KqDQor44OL44K344OKLOOCreODqOOCtw0KK+ODi+OCt+OCtuODryzjg6jjgrfjg5Ljg60NCivjg47jgqzjg68s44OS44Ot44OkDQor44OO44Og44OpLOODnuOCteODkuODrQ0KK+OCquOCrOOCteODr+ODqSzjgqvjgrrjg4bjg6sNCivjgqrjgqzjg68s44Ok44K544OO44OqDQor44Kq44OP44K3LOOCteODiOOCtw0KK+OCquOCquODjizjg5Ljg63jg6TjgrkNCivjgqrjgrfjg54s44OE44OI44OgDQor44Kq44Kq44K/44KtLOODleODiOOCtw0KK+OCquOCquODhOOCqyzjgqjjgqTjgq0NCivjgqrjgqrjg6Qs44Og44ON44KqDQor44Kq44Kr44OALOODkuODreODpuOCrQ0KK+OCquOCq+OCtuOCrSzjgrPjgqbjgr/jg63jgqYNCivjgqrjgqrjg58s44Ki44Ok44KzDQor44Kq44OO44OH44OpLOODnuOCteODkuOCsw0KK+OCquODjizjgr/jgqvjgqLjgq0NCivjgqrjgrbjgq0s44Oo44K344Oe44K1DQor44K144Kk44OALOODouODouOCsw0KK+OCteOCq+OCsOODgSzjgrPjgqbjgrgNCivjgrXjgqvjgqQs44OK44Kq44KtDQor44K144KzLOOCouOCq+OCtw0KK+OCteODs+ODmSzjg57jgrPjg4gNCivjgrXjgrXjgq0s44Om44K/44KrDQor44K144K/44KxLOODiOOCt+OCrQ0KK+OCteODiOOCpizjg6bjgq3jgr/jgqsNCivjg5Ljg6njg44s44OS44Ot44Ki44KtDQor44K144Ov44Og44OpLOODkuODreOCtw0KK+OCu+OCreODjSzjgqvjgrrjgqLjgq0NCivjgrfjg5Djg4/jg6ks44Kr44K644OODQor44K344OQ44K244KtLOODnuOCteOCsw0KK+OCt+ODnizjgrPjgrnjgrENCivjgrfjg5/jgros44Kx44Kk44K544KxDQor44K344Oi44Kr44Ov44OZLOOCouOCreODkuODrQ0KK+OCt+ODjuOCtuOCrSzjg5Ljg63jgrcNCivjgrfjg6njg4/jg54s44Of44OB44OS44K1DQor44K344On44Km44OK44K0LOOCv+OCq+OCt+OCsg0KK+OCueODgCzjg6HjgqTjgrjjg63jgqYNCivjgrnjgq7jg6Ljg4gs44Of44KrDQor44K544Ku44K/LOOCv+OCq+ODpuOCrQ0KK+OCueODn+ODgCzjgqLjg4TjgrcNCivjgrnjgrrjgq0s44Oe44K144OV44OfDQor44K544K644KtLOOCt+OCsuODqw0KK+OCueOCuuODjizjgqvjg4Tjg5Xjg58NCivjgr/jgrDjg4Es44Of44Om44KtDQor44K/44Kr44KuLOODiOOCt+OCq+OCug0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg5/jg4ENCivjgr/jgqvjg4/jgrcs44OS44OH44OO44OqDQor44K/44Kr44OP44K3LOOCseODs+OCpOODgQ0KK+OCv+OCq+ODjizjg5/jgq3jgrMNCivjgr/jgqvjgrfjg54s44K/44OA44K3DQor44K/44Kx44OALOOCpOOCuuODnw0KK+OCv+OCseODiuOCqyzjgrHjg7PjgqTjg4ENCivjgr/jgrHjg6Tjgrks44Os44Kk44K4DQor44K/44Og44OpLOODkuODreODpuOCrQ0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44K/44Kr44Oo44K3DQor44K/44OK44KrLOODiOOCquODqw0KK+OCv+ODi+OCsOODgSzjgqvjg4Tjg5LjgrMNCivjg4bjg6njg57jgqgs44K744Kk44Kk44OB44Ot44KmDQor44OI44Kt44OvLOODgeOCqOOCsw0KK+ODiOODquOCtOOCqCzjgrXjg4Djg6bjgq0NCivjg4Tjg4Hjgr/jg4ss44OS44OH44KtDQor44OE44K444Og44OpLOOCv+OCq+OCtw0KK+ODhOOCq+ODouODiCzjgrHjg7Pjgr/jg63jgqYNCivjg4Tjg4Tjg58s44Oe44K144OO44OqDQor44Km44OB44OOLOOCteODiOOCtw0KK+ODjeOCuizjg4jjgrfjgqLjgq0NCivjgqbjgqjjg4Tjg5ws44Oo44K344K/44KrDQor44Km44Kq44K644OfLOOCteODs+ODmuOCpA0KK+ODr+ODgCzjg5/jg4Tjg47jg6oNCivjg6/jgr/jg4rjg5ks44Oo44K344KtDQor44Ok44OWLOOCs+OCpuOCuA0KK+ODpOODnuODgCzjg6bjgqbjgrMNCivjg5LjgrXjg44s44Oq44KrDQor44Ok44Oe44Kw44OBLOODjuODquODpuOCrQ0KK+ODpOODnuOCq+ODryzjg6bjgq3jgrMNCivjg6Tjg57jg6Ljg4gs44OK44Kq44OIDQor44Ok44Oe44Oi44OILOOCt+ODs+OCpOODgQ0KK+ODpOODnuOCpuODgSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg6Tjg57jgrbjgq0s44K/44Kr44KqDQor44OP44Ku44Ov44OpLOODn+OCreOCqg0KK+ODqOODjeOCtuODryzjgqjjg6oNCivjg6jjgrfjg4As44K144OB44KzDQor44Oo44K344Oe44OELOOCseODs+OCv+ODreOCpg0KK+OCuuOCtyzjg6bjgq3jgqoNCivjgqTjg6/jgqvjg68s44K944Km44K/44Ot44KmDQor44Kk44K344Oe44OELOODkuODreODpOOCuQ0KK+OCouODmSzjgqjjgqTjgqTjg4ENCivjgqLjgqvjgqTjgrcs44Ko44Kk44OBDQor44Ki44Oe44Ks44K/LOOCv+OCq+OCtw0KK+OCouODs+OCtuOCpCzjg57jgrXjg5Ljg4cNCivjgqLjg6njgq0s44OI44K344Of44OEDQor44Ki44K344OALOOCteODiOOCtw0KK+ODgeODp+OCpizjgqjjgqTjgrgNCivjg4njgqQs44Kx44Oz44Kk44OBDQor44Ko44OO44Oi44OILOOCreODqOODnw0KK+ODleOCuOOCpCzjgrXjg4Tjgq0NCivjg5Xjgrjjgr8s44K/44Kr44K3DQor44OV44Kv44Og44OtLOOCv+OCq+OCtw0KK+ODleODiuOCrSzjg4rjgqrjgq0NCivjg5Xjg6vjg6Qs44OI44Oi44OkDQor44Kk44Ov44K144KtLOOCteOCqOOCsw0KK+OCpOODiOOCpizjgrfjg63jgqYNCivjg4/jg4As44OS44OH44Ki44KtDQor44OP44OK44OJLOODn+ODjuODqw0KK+ODj+ODqeODgCzjgr/jgrHjgrcNCivjg4/jg6njgr7jg44s44OO44OW44OS44OtDQor44OP44K344Oi44OILOOCteODiOOCtw0KK+ODj+ODg+ODiOODqizjg57jgrPjg4gNCivjg4/jg6Tjgrcs44K/44Kr44Oo44K3DQor44OS44Ks44K3LOOCq+OCuuOCqg0KK+ODkuODqeODjizjg5Ljg63jgrMNCivjg5Ljg6rjgq0s44Kx44Oz44Kk44OB44OtDQor44Ob44Oz44OALOOCteODiuOCqA0KK+ODm+OCt+ODpOODnizjg5/jgq7jg5Xjg58NCivjgqTjg4Hjg4/jg6ks44K/44Kr44K3DQor44Kk44Ks44Op44K3LOOCq+ODhOODjuODlg0KK+OCpOOCseODgCzjg6rjg6fjgqYNCivjgqTjg57jg6Djg6ks44Kq44K144OgDQor44Kk44OK44Og44OpLOODiOODouODjuODqg0KK+OCpOODjuOCpuOCqCzjg6Tjgrnjg5Ljg60NCivjgqTjgrXjgqss44K344Ky44OrDQor44Kk44K344OALOOCseOCpOOCpOODgQ0KK+OCpOOCt+OCpCzjg47jg5zjg6sNCivjgqTjgrfjgrrjgqss44Om44Kt44KqDQor44Kk44OI44KmLOOCt+ODp+OCpuOCsw0KK+OCpOODiOOCpizjg57jgrXjg58NCivjgqTjg4jjgqYs44Ko44Kk44K4DQor44Kk44Ov44OK44KsLOODiuOCquOCsw0KK+OCuOODs+ODkCzjg4Tjg43jg47jg6oNCivjgqvjgrjjg6Ljg4gs44K/44Kv44OkDQor44Kr44KzLOODiOOCt+ODkuOCsw0KK+OCq+ODsyzjgr/jgq/jg6QNCivjgqvjg47jgqYs44Oe44Om44OfDQor44Kr44K544OkLOODnuOCteODiuODqg0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg6/jg5ks44Oo44K344Om44KtDQor44Kr44Ov44Kr44OfLOOCseODs+OCpOODgQ0KK+OCq+ODr+ODjizjg57jgrXjg5LjgrMNCivjgqvjg6/jgrfjg54s44Ok44K544OO44OWDQor44Kt44Kv44OBLOODnuODouODqw0KK+OCreODoOODqSzjgqLjg4TjgrcNCivjgq3jg44s44Ki44KtDQor44Kt44K/44Ks44OvLOOCquOCteODoA0KK+OCs+ODkOODpOOCtyzjg4jjgrfjg5Ljg60NCivjgqTjg4jjgqYs44K344Oz44K4DQor44Kz44Kv44K344On44KmLOODnuOCteODqw0KK+OCs+ODs+ODiSzjg57jgrXjg6bjgq0NCivjgrPjg6Tjg54s44OS44Ot44K/44KrDQor44Kv44Os44Oe44OELOOCv+OCq+ODkuODhw0KK+OCr+ODquODpeOCpizjg6jjgrfjgqgNCivjg57jg4Hjgr8s44Oe44K144KtDQor44Oe44Or44Kk44OBLOODnuOCteODpuOCrQ0KK+ODnuOCueODgCzjg6bjgq3jgrMNCivjg57jg4TjgqQs44OS44OH44K3DQor44Oe44OE44Oi44OILOODqOOCt+OCrQ0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg6bjgq0NCivjg57jg4Tjgqrjgqss44K/44Kx44K3DQor44Oe44OE44Ok44OeLOOCs+OCpuOCv+ODreOCpg0KK+ODn+OCt+ODnizjgqvjgrrjg58NCivjg5/jg4Tjg6Ljg4gs44Kt44Oo44OfDQor44Of44Ok44Oi44OILOODiOOCt+OCouOCrQ0KK+OCpuODgeODpOODnizjg5/jgq3jgrMNCivjg5/jgrrjg44s44Oe44K144Oo44K3DQor44Oi44KuLOODouODpuODqw0KK+ODouODqizjg57jgrXjg5Ljg60NCivjg6Ljg6rjgr8s44Kr44K644OS44K1DQor44Oi44OI44OQ44Ok44K3LOOCteODiOODqw0KK+ODoOODqeOCq+ODnyzjg5Ljg63jgqLjgq0NCivjg6Djg6njgr8s44OI44Oi44OO44OqDQor44OK44OQLOODkuODreODpuOCrQ0KK+ODiuOCrOOCquOCsSzjgrXjg4jjgrcNCivjg4rjgqzjgr8s44K344On44Km44OY44KkDQor44OK44Kr44Ks44OvLOODqOOCt+ODpuOCrQ0KK+ODiuOCq+OCuOODnizjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44K/44OE44OkDQor44OK44Kr44OL44K3LOOCpOOCuuODqw0KK+ODiuOCq+OCqizjgqLjgq3jgrMNCivjg4rjgqvjg6Tjg54s44OV44Of44KqDQor44ON44Oi44OILOODn+ODhOOCouOCrQ0KK+ODi+OCt+ODgCzjg6jjgrfjg6QNCivjg4vjgrfjg6Djg6ks44Kt44Ov44OgDQor44OO44OW44OP44OpLOOCs+OCpuOCuA0KK+ODjuOCvuOCqCzjg4/jgrjjg6ENCivjgqrjgqrjgq4s44K/44Kx44K3DQor44Kq44Kq44KoLOODqOOCpuOCpOODgQ0KK+OCquOCquOCr+ODnCzjg5Ljg63jg5Xjg58NCivjgqrjgqrjg6Ljg6os44OK44Kq44KtDQor44Kq44OOLOOCouOCreODqQ0KK+OCquOCquOCvyzjgqLjgrXjgrMNCivjgqrjgqrjgr/jg4ss44Ok44K544OS44OtDQor44Kq44KrLOODleODn+OCsw0KK+OCquOCq+ODnuODhCzjgr/jgqvjg5Ljg60NCivjgqrjgqvjg6Ljg4gs44OO44Oq44KqDQor44Kq44Kq44OOLOODiuOCquOCrQ0KK+ODiOOCr+ODn+ODpCzjg4bjg4Tjg6QNCivjgrXjgqTjg4jjgqYs44Om44K/44KrDQor44K144Kr44Kt44OQ44OpLOOCv+OCq+OCqg0KK+ODn+OCv+ODiyzjgrHjg7PjgqTjg4ENCivjgrXjg44s44K344Ol44Km44K+44KmDQor44K144K144KtLOOCu+OCpOOCuA0KK+OCteODiOOCpizjgr/jgqvjgqvjgroNCivjgrXjg4jjgqYs44OO44Oc44OrDQor44K144OI44KmLOODiOODouOCrQ0KK+OCteODpOODjizjgqTjgq/jg6QNCivjgrvjg7Pjg4os44OI44K344Of44OEDQor44K344OW44K/44OLLOOCreODp+OCpuOCsw0KK+OCt+ODnuODoOODqSzjg6jjgrfjg5/jg4QNCivjgrfjg4rjg4As44Kr44OE44OfDQor44K344Op44OP44OeLOOCv+ODreOCpg0KK+OCt+ODpeODiOOCpizjg6bjg5/jgrMNCivjgrnjg4As44OK44Kq44OS44OtDQor44K544Ku44Ok44OeLOODkuODh+ODnuOCtQ0KK+OCueODn+OCquOCqyzjg4jjg6Ljg6QNCivjgrnjgrrjgq0s44OS44OH44OS44OtDQor44K/44OQ44KzLOOCr+ODn+OCsw0KK+OCv+OCrOODryzjg57jgrPjg4gNCivjgr/jgqvjg4/jgrcs44K344Oz44OkDQor44Ov44K/44OK44OZLOODnuOCrQ0KK+OCv+OCq+OCr+ODqSzjgrHjg7PjgrnjgrENCivjgr/jgqvjgqrjgqss44K044KmDQor44K/44Kx44OP44OKLOODnuOCteOCq+ODhA0KK+OCv+OCseOCpuODgSzjgrXjg4jjgrcNCivjgr/jg4rjgqss44Kx44Oz44K/44Ot44KmDQor44K/44OK44KrLOOCu+OCpOOCuA0KK+OCv+ODiuOCqyzjg47jg6rjg5Ljg60NCivjgr/jg4vjgqQs44Om44Oq44KzDQor44K/44K344OtLOOCseODs+OCpOODgQ0KK+ODhuODqeODouODiCzjgqjjgqTjgrgNCivjg4jjgq3jgqrjgqss44K/44Kr44K344KyDQor44OI44Of44Kr44OvLOODjuODquOCsw0KK+ODiOODquOCq+OCpCzjg4rjgqrjgq0NCivjg4Tjg4As44Kz44Km44Kk44OBDQor44K144Kr44KkLOODn+ODm+OCsw0KK+OCpuODgCzjgqLjg4TjgrMNCivjgqbjgqjjg44s44Kq44K144OgDQor44Km44Oh44OP44OpLOODiOOCt+OCqg0KK+OCpuOCt+ODkCzjg5/jg47jg6sNCivjg6/jgqvjgqos44Kx44Kk44K4DQor44Ov44K/44OZLOODnuOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg4DjgqTjg4ENCivjg4jjg5/jg6Tjgrks44OI44K344OS44K1DQor44Ok44Oe44OALOODnuOCrQ0KK+ODpOODnuOCs+OCtyzjg4DjgqTjgrnjgrENCivjg6Tjg57jg6Ljg4gs44K444Ol44OzDQor44Ok44Oe44K344K/LOODiuOCquOCsw0KK+ODpOODiuOCrizjg4jjgrfjgqLjgq0NCivjg6jjgrPjgrXjg68s44K/44Kv44OkDQor44Oo44Kz44Ok44OeLOOCq+OCuuODjuODlg0KK+ODqOOCt+ODgCzjg4rjgqrjg4gNCivjg6jjgrfjg58s44K/44Kk44KtDQor44Oo44K344K244OvLOODiOOCt+OCq+ODhA0KK+OCpOODnizjg57jgrXjg5Ljg60NCivjgq/jg5ws44Oe44K144OS44KzDQor44OK44Kr44OP44OpLOOCv+OCr+ODpA0KK+OCquOCsOODqSzjg4jjgqrjg6sNCivjgr/jgqvjg57jg4Qs44Kx44Oz44Kk44OBDQor44Kk44OO44Km44KoLOODoOODjeODkuODrQ0KK+OCouOCpOODkCzjgrXjg4jjgrcNCivjgqLjg57jg44s44OK44Kq44KzDQor44Ki44Oq44K/LOODkuODh+OCouOCrQ0KK+OCouOCv+OCsOODgSzjg5Ljg63jgrcNCivjg4Djg4Ys44K344Ky44OS44KzDQor44Ko44K244OvLOODiuODquODkuODhw0KK+ODleOCuOODouODiCzjg5/jgq3jgqoNCivjg5Xjgq/jg4njg6Es44K/44Kr44K3DQor44OV44Or44Kr44OvLOOCouOCseODnw0KK+ODj+OCruODr+ODqSzjg6rjg6Xjgqbjgr8NCivjg4/jg4rjgr8s44OS44Op44KvDQor44OP44K744Ks44OvLOODpuOCv+OCqw0KK+OCq+OCuOODr+ODqSzjg6jjgrfjgrMNCivjg4/jg4Pjg4jjg6os44K/44Kr44Om44KtDQor44OS44Ks44K3LOODquODpeOCpuOCueOCsQ0KK+ODkuODqeOCqizjg57jgrXjg6bjgq0NCivjg5Ljg63jgrss44Of44OE44OrDQor44Ob44Oz44OeLOOCv+OCseOCtw0KK+ODleOCr+ODreOCpCzjgrHjg7PjgrgNCivjgqTjg4Hjg47jgrvjgq0s44OI44K344OS44OtDQor44Kk44Kx44OALOODpuOCv+OCqw0KK+OCpOODnuODoOODqSzjgrHjg7PjgrnjgrENCivjgqTjg47jgqbjgqgs44Kr44K644KqDQor44Kk44K344OALOOCs+OCpuOCuA0KK+OCpOOCt+OCq+ODryzjgqLjgq3jg6kNCivjgqTjg6/jgrXjgq0s44K/44Kx44K3DQor44Kr44Kk44K644KrLOODkuODreOCsw0KK+OCq+ODn+OCrOOCrSzjg47jg6rjg5Ljg4cNCivjgqvjg43jgrMs44Kv44OL44OS44KzDQor44Kr44K/44Ku44OqLOODiuOCquODpuOCrQ0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg6/jgqvjg58s44Kz44Km44K4DQor44Kr44OE44KtLOOCouOCreODiOODog0KK+OCreODoOODqSzjgrXjg4jjg6sNCivjgq3jg47jgrfjgr8s44Om44Kr44OqDQor44Kt44K/44Ok44OeLOODgeODkuODrQ0KK+OCouODoeOCt+OCvyzjg4rjgqrjgq0NCivjgrPjg5Djg6Tjgrcs44K/44Kr44OS44OtDQor44Kz44KsLOODjuODquODpuOCrQ0KK+OCs+OCpOOCsSzjgqLjgq3jgqoNCivjgrPjg7Pjg4ks44OI44Oi44OO44OqDQor44Kv44Oc44KtLOOCpOOCr+OCsw0KK+OCr+ODqeOCt+ODiizjgqvjg4Tjg5Ljg4gNCivjgq/jg63jgq0s44OE44Oo44K3DQor44Oe44Ko44OALOODpOOCueODkuODrQ0KK+ODnuOCteODgCzjg5Ljg63jg6bjgq0NCivjg57jg4Tjg4As44OK44Kq44OfDQor44Oe44OE44Oi44OILOOCt+ODpeOCpuOCpOODgQ0KK+ODoeOCq+OCvyzjg5Ljg63jgq0NCivjg5/jg6Tjg6Ljg4gs44Ki44Kt44OS44OtDQor44Oi44OqLOODpuOCqw0KK+ODouODquOCvyzjgqvjgrrjg6jjgrcNCivjg6Djg6njgqvjg58s44Oe44K144Ki44KtDQor44Og44K/LOODkuOCteOCtw0KK+ODiuOCrOODpOODnizjg4bjg4Tjg6QNCivjg4rjgqvjg4/jg6ks44K/44Kr44KzDQor44OK44Kr44Og44OpLOOCouOCreODjuODlg0KK+ODiuOCq+ODoOODqSzjg57jg6oNCivjg4rjgqvjgr8s44Kz44Km44Kk44OBDQor44OK44Kr44K244OvLOOCseOCpOOCueOCsQ0KK+ODi+OCtyzjgqvjg43jg47jg5YNCivjg4vjgrfjg6Tjg54s44Of44OK44KzDQor44OO44OILOOCuOODpeODs+OCpOODgQ0KK+OCquOCrOODryzjg6jjgqbjgrgNCivjgqrjgqrjg5As44Oe44K144OS44OHDQor44Kq44Og44OpLOODnuODpg0KK+OCpOOCseODnuODhCzjgr/jgqvjgrMNCivjgqrjgqTjg4As44OS44OI44K3DQor44Kq44Kr44K244OvLOODkuODiOOCtw0KK+OCquODjizjg4rjgqrjg58NCivjgrXjgqTjg4jjgqYs44Ki44Kt44OS44K1DQor44K144Kr44KkLOODjuODluODpOOCuQ0KK+OCteOCr+OCvyzjg6jjgrfjgqLjgq0NCivjgrXjg4jjgqYs44Oe44K144OS44KzDQor44K144OI44KmLOOCs+OCpuOCuA0KK+OCteODr+ODj+OCtyzjgr/jg4Tjg6bjgq0NCivjgrfjg5Djgr8s44Ki44Ok44KzDQor44K344Of44K6LOOCq+ODhOODpuOCrQ0KK+OCt+OCquODnyzjgrfjg7PjgrgNCivjgrfjgr/jg6ks44OS44K144K3DQor44K544Ku44K/LOOCq+ODhOODkuOCsw0KK+OCueOCseOCrOODryzjg47jg5bjg6jjgrcNCivjgrnjgrrjgq0s44Ki44Kt44OS44OtDQor44K344On44KmLOOCt+ODp+OCpuOCv+ODreOCpg0KK+OCv+OCpCzjg57jgrXjg4bjg6sNCivjgr/jgqvjgq4s44OG44OE44Ot44KmDQor44K/44Kr44OP44K3LOODiOOCt+OCqg0KK+OCv+OCq+ODpOODnizjg5Ljg4fjg4TjgrANCivjgr/jgrHjgrfjgr8s44K344On44Km44K+44KmDQor44K/44KzLOODqOOCt+OCrQ0KK+OCv+ODiuOCqyzjgq3jg6fjgqbjg5jjgqQNCivjgr/jg4ss44Kr44K644OK44OqDQor44K/44K644KxLOOCu+OCpOOCpOODgQ0KK+ODiOODouODiOOCtyzjgrHjg7PjgrgNCivjg4Tjg4Hjg6Ljg4gs44OV44Of44KqDQor44OE44OO44OALOOCt+ODp+OCpuOCuA0KK+OCpuODgeODgCzjgrXjg4jjg6sNCivjgqbjgqjjg4As44Ki44Kt44OO44OqDQor44Km44OO44KtLOODjuODluODkuOCsw0KK+ODr+ODgCzjg5Ljg63jgr/jg4QNCivjg6/jgrfjgros44K344On44KmDQor44Ov44K/44OK44OZLOOCs+OCpuOCu+OCpA0KK+ODpOODnuODgCzjgr/jgqvjg4gNCivjg6Tjg57jgrDjg4Es44Oo44Km44K4DQor44Ok44Oe44Oi44OILOODn+ODhOOCvuOCpg0KK+ODpOODnuODiizjgrvjgqTjgqTjg4Hjg63jgqYNCivjg6Tjgrfjg60s44K/44Kx44K3DQor44Oo44Kz44Ok44OeLOODnuOCteODkuOCsw0KK+ODqOOCt+ODgCzjg4jjg6Ljg58NCivjg6bjgq0s44K744OE44KzDQor44OS44Op44Kr44OvLOODnuODiuODlg0KK+ODouODquOCpOODgSzjgqjjgqTjgrjjg63jgqYNCivjgrfjg5/jgros44Kx44KkDQor44OV44K444Ol44KmLOOCt+ODs+OCpOODgQ0KK+ODj+OCrOODryzjgr/jgqvjgrcNCivjg4/jgrvjgqzjg68s44OS44OH44Ki44KtDQor44OS44Op44OOLOOCv+OCr+ODpA0KK+ODm+ODs+OCtOOCpizjg4bjg6vjg5LjgrMNCivjgqTjgrHjg4As44OI44K344Om44KtDQor44Kk44K344Kr44OvLOODkuODreOCrQ0KK+OCpOODiOOCpizjg6jjgrfjg58NCivjgqvjg4rjg6Tjg54s44Kz44Km44K4DQor44Kr44K/44Ku44OqLOOCt+ODs+OCueOCsQ0KK+OCreODouODiCzjgr/jgq/jg6QNCivjgq3jg6Tjg54s44K744Kk44K4DQor44Kz44K444OKLOOCseODsw0KK+OCs+ODs+ODiSzjg5Ljg63jg5LjgrMNCivjgq/jg6rjgr8s44K144OI44K3DQor44Oe44K544OALOODgOOCpOODgQ0KK+ODn+OCq+ODnyzjg5/jg4TjgqoNCivjg5/jg68s44K/44Kr44OO44OWDQor44Oi44OB44K644KtLOODjuODluODpuOCrQ0KK+ODouODquODpOODnizjg4jjgrfjgqoNCivjg4rjgqzjg5Xjgrgs44Kt44Of44OS44OIDQor44OK44Kr44K444OeLOODnuOCteODkuOCsw0KK+ODiuOCq+ODoOODqSzjg5LjgrXjg4gNCivjg4rjgrnjg44s44OK44Kq44KtDQor44OO44OALOODpuOCpuOCsw0KK+OCquOCrOODryzjg6rjg6fjgqbjgrMNCivjgqrjgqrjgqvjg68s44K444Ol44Oz44KzDQor44Kq44Kq44K/44OLLOOCseODsw0KK+OCquOCr+ODoOODqSzjg57jg4rjg58NCivjgqTjgq4s44Ki44Kt44OO44OqDQor44K144OK44OALOODqOOCt+ODkuODrQ0KK+OCteODiOOCpizjg5Ljg4fjg5LjgrUNCivjgrvjgq0s44Oo44Km44Kk44OBDQor44K344OQ44K/LOODpuOCreODjuODqg0KK+OCt+ODnuOCq+ODryzjgrfjgrLjg6sNCivjgrfjgqrjgrjjg6os44OS44Ot44K3DQor44K544OALOODiOODouODj+ODqw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgr/jgqvjg4As44K/44Kr44OO44OqDQor44K/44Kr44OP44K3LOOCreODp+OCpuOCsw0KK+OCv+OCq+OCuSzjg4Tjg6jjgrcNCivjgr/jg4vjgrDjg4Es44OK44Kq44KtDQor44OE44ON44Kr44OvLOODkuODreODleODnw0KK+OCpuOCqOODj+ODqSzjg5Ljg4fjgqLjgq0NCivjg6Tjgq7jg6Ljg4gs44OS44Ot44K3DQor44Ok44Oe44Kw44OBLOODiOODouOCsw0KK+ODpOODnuOCt+OCvyzjgqvjgrrjgq0NCivjg6Tjgrbjgq0s44OK44Kq44KtDQor44Oo44K344OALOODj+ODq+ODkuOCsw0KK+OCouOCpOOCq+ODryzjg5Ljg63jg5Xjg58NCivjg4Hjgqvjg4/jg6ks44Kq44K144OgDQor44Ov44K/44OK44OZLOOCv+OCq+OCqA0KK+ODjuOCtuOCrSzjg4bjg6vjgqLjgq0NCivjgqLjgqvjg4vjgrcs44OK44Kq44OS44OtDQor44K344Oe44Oi44OILOOCouODiOODoA0KK+OCouODiuOCtuODryzjg5/jg47jg6sNCivjgqTjgqbjg4Es44Oe44Kz44OIDQor44Kk44K344Kr44OvLOOCs+OCpuOCpOODgQ0KK+OCpOODgeOCq+ODryzjgr3jg6gNCivjgqTjg57jg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44Km44OB44Ok44OeLOODqOOCt+OCv+OCqw0KK+OCquOCpuOCteOCqyzjg57jgrXjgr/jgqsNCivjgqrjgqrjgr/jg4ss44OS44OH44KtDQor44Kq44Kq44OQ44Ok44K3LOOCt+ODs+OCuA0KK+OCquOCsOODqSzjg5Ljg63jgrMNCivjgqvjgq3jg6Ljg4gs44OS44Ot44K3DQor44Kr44OI44KmLOOCt+OCsuODjuODqg0KK+OCq+ODn+ODpOODnizjg5Ljg63jgqvjgroNCivjgqvjg6/jgrss44OK44Kq44KtDQor44Kt44K/44K444OeLOOCouOCreODkuODrQ0KK+OCr+OCteOCq+ODmSzjg57jgqjjgrMNCivjgrPjgqTjg4cs44OS44OH44KtDQor44Kz44Oe44OELOOCseOCpOOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Ljg4fjgq0NCivjgrXjg4jjgqYs44K444Ol44OzDQor44K344Ol44KmLOODnuOCteODpA0KK+OCt+ODjuODgCzjg57jgrnjg58NCivjgrfjg5/jgros44K144OI44K3DQor44K544Ks44Ov44OpLOOCt+OCsuODleODnw0KK+OCueODn+OCq+ODryzjgqvjg4TjgqLjgq0NCivjgr/jgqvjgrss44Kt44Oo44K/44KrDQor44K/44Kx44OALOOCseOCpOOCpOODgQ0KK+OCv+ODiuOCqyzjgrHjg7PjgrgNCivjgr/jg5Djgr8s44Of44Ov44KzDQor44OE44OB44OP44K3LOODoOODjeODkuODrQ0KK+ODiOODoOODrSzjg4rjg4Tjg5LjgrMNCivjg4rjgqvjgqzjg68s44K/44Kr44KzDQor44OK44K5LOODkuODreOCtw0KK+ODi+OCt+ODj+ODqSzjg4rjgqrjgq0NCivjg47jg6Djg6ks44Kr44K644OS44KzDQor44OP44K744Ks44OvLOOCseODs+OCpOODgQ0KK+ODj+ODqeODgCzjg4jjg6LjgrMNCivjg5Ljgrjjg6os44Ko44OqDQor44OV44K444K/LOODjuODluOCsw0KK+ODm+OCveOCq+ODryzjgr/jg4TjgqoNCivjg57jgrnjg5bjg4Es44K/44Kr44K3DQor44Oe44OE44OK44KsLOODpuOCrQ0KK+ODnuODhOODpOODnizjg4bjg4Tjg6QNCivjg5/jgr8s44Of44OO44OrDQor44Of44Oo44K3LOODqOOCpuOCsw0KK+ODoOODqeODpOODnizjg57jgrPjg4gNCivjg6Ljg6rjgrfjgr8s44Kr44K644OS44OtDQor44Ok44K444OeLOODiuOCquOCsw0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg6bjgq0NCivjgq/jg6rjg4/jg6ks44Oe44K144KtDQor44Oo44Kz44Ok44OeLOODqOOCpuOCsw0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg5Ljg4gNCivjgq/jg6/jgrfjg54s44K544Kw44OrDQor44K144Kr44Oi44OILOODkuODh+ODjuODlg0KK+OCpOODiOOCpizjgr/jg4Djg5Ljg60NCivjgqbjg6Hjg4rjgqQs44K544K544OgDQor44Kq44Kr44K344OtLOOCt+ODreOCpg0KK+OCq+ODr+OCquOCqyzjg5Ljg4fjgq0NCivjgq/jg5As44K/44Kr44K3DQor44Kz44Km44OALOODnuOCteOCv+OCsQ0KK+OCteODiOOCpizjg57jg6bjg58NCivjgqLjg5ks44Oe44K144OP44OrDQor44K/44Kr44OP44K3LOODkuOCteODnw0KK+OCv+ODkOOCvyzjgqvjg4Tjg6bjgq0NCivjg4rjgqvjgqzjg68s44Kz44Km44Kk44OBDQor44OP44K344Oi44OILOODiOOCquODqw0KK+ODkuODqeODjizjg57jgrXjgr/jgqsNCivjg5vjgr3jg44s44Ki44Kt44OS44OIDQor44Og44Op44Kr44OfLOOCseOCpOOCsw0KK+ODqOOCt+ODoOODqSzjgqjjg6oNCivjgqLjg57jg6Qs44Oe44K144OrDQor44OB44On44KmLOODgOOCpOOCueOCsQ0KK+OCtOOCpuODgCzjgq3jg6jjg47jg5YNCivjg4/jg6Tjgqvjg68s44OS44Ot44KtDQor44OV44Or44K/LOODiuODq+OCrQ0KK+OCpOOCpOODgCzjgr/jgqvjg5Ljg60NCivjgqTjgrfjg6/jgr/jg6os44OS44Ot44Kr44OEDQor44Kr44OQ44Ok44OeLOODnuOCteOCrQ0KK+OCq+ODs+ODgCzjg6Tjgrnjg5Ljg4gNCivjgq3jgr/jg6Djg6ks44Oo44K344KqDQor44Kz44Oz44OOLOOCs+OCpuOCpOODgQ0KK+ODnuODgeODgCzjg4/jg6vjg58NCivjg57jg4TjgqQs44K/44Kx44K3DQor44Of44Km44OpLOOCseOCpOOCtA0KK+OCv+ODj+ODqSzjg47jg6rjgrMNCivjg6Djg6njgqvjg58s44K/44OE44OS44KzDQor44OK44Kr44Of44ONLOODnuODouODqw0KK+ODiuOCq+OCtuODryzjgq3jg6jjgrcNCivjgqrjgqrjgr8s44K344Ky44Ki44KtDQor44Kk44K344Kr44OvLOODqOOCpg0KK+OCpOODiOOCpizjg4jjg6Ljg6QNCivjgrXjg4jjgqYs44OE44Kw44OS44OHDQor44K344OQ44K/LOODiuOCquOCrQ0KK+OCveODoeODpCzjgqLjgq3jg5LjgrMNCivjgr/jgrHjg4As44Ki44Kt44OpDQor44K/44OK44KrLOOCs+OCpuOCpOODgeODreOCpg0KK+OCv+ODi+OCt+OCvyzjg5Xjg5/jg44NCivjg4Tjg4Hjg6Qs44Oo44K344KzDQor44Ov44K444OeLOODquOCsw0KK+ODpOODnuODgCzjg5Ljg63jgq0NCivjg6Tjg57jgrbjgq0s44Om44K/44KrDQor44K/44Kr44OP44K3LOODnuOCteOCrQ0KK+OCouODs+ODieOCpizjg6bjgq0NCivjgqTjgrfjg6Ljg4gs44Oq44On44Km44K544KxDQor44Kk44Ov44K144KtLOODn+OCuuODnuOCtQ0KK+OCpuODoeODj+ODqSzjgr/jgqvjgrcNCivjgqrjgqzjgr8s44Ok44K544K3DQor44Kq44OL44K244OvLOOCt+OCsuOCrQ0KK+OCq+OCuCzjgqrjgrXjg6ANCivjgqvjg43jgrMs44OO44OW44Kr44OEDQor44Kr44Ov44Oe44K/LOODkuODreOCrQ0KK+OCr+ODnCzjg4jjg6Ljg47jg6oNCivjgrPjgqbjgrXjgq0s44Kz44Km44Kk44OBDQor44K144Kk44ObLOODiuODq+ODkuODrQ0KK+OCteODiuODgCzjgqrjgrXjg6ANCivjgrfjgrfjg4ks44Kv44OL44KqDQor44K544Ku44OP44OpLOOCreODqOOCt+OCsg0KK+OCv+OCq+OCquOCqyzjg6bjg58NCivjgqTjg4jjgqYs44K444Ol44Oz44K4DQor44OK44Kr44KqLOOCt+ODs+OCuA0KK+ODiuOCq+ODjizjgrgNCivjg4vjgrfjgqvjgqQs44OI44K344Of44OEDQor44ON44Ot44OhLOODkuODreOCtw0KK+ODj+ODlizjg57jgrPjg4gNCivjg5Ljg6njgqQs44Kr44Kq44OqDQor44OV44K444Ov44OpLOODiOOCquODqw0KK+ODm+ODs+ODnizjg6bjgq3jg47jg5YNCivjg57jg4Tjgrbjg68s44OB44Kr44OpDQor44Of44Ok44Oi44OILOODpOOCueOCuA0KK+ODouODquODpCzjg5vjg57jg6wNCivjg6Tjg44s44OS44Ot44K3DQor44Ok44Oe44K344K/LOODnuOCpOOCsw0KK+ODqOODgCzjgr/jgqvjg5Ljg60NCivjg6/jgr/jg5ks44K/44Kr44K3DQor44Ki44Kt44OQLOOCseOCpOOCpOODgQ0KK+OCouODmSzjg57jg6bjg58NCivjgqTjg4jjgqYs44Oo44Km44K4DQor44Kk44K344Og44OpLOODpuODn+OCsw0KK+OCpOODiOOCpizjg57jgrXjg6sNCivjgqTjg57jgqQs44K/44Kx44K3DQor44Km44Ko44OP44OpLOODouODiOOCsw0KK+OCpuODoeODhCzjgqLjgq3jg5LjgrMNCivjgqTjg57jg4vjgrcs44OS44Ot44Om44KtDQor44Kq44Kq44Kk44K3LOODnuOCteODj+ODqw0KK+OCquOCq+ODjizjg6bjgq0NCivjgqrjgqzjg68s44OI44Kq44OrDQor44Kr44Ks44OfLOOCqOODquOCqw0KK+OCq+OCv+ODpOODnizjg5/jg4TjgrMNCivjgqvjg58s44Oo44K344OG44OrDQor44Kr44Ov44K144KtLOODkuODiOOCtw0KK+OCq+ODr+ODouODiCzjg5/jg4HjgqoNCivjgq3jgr/jg6Ljg4gs44OE44OI44OgDQor44Ku44On44Km44OWLOODkuODreOCsw0KK+OCs+OCpOOCseODgCzjgr/jg4Tjg63jgqYNCivjgrPjg4Djg54s44K/44Kk44OB44Ot44KmDQor44Kz44OQ44Ok44K3LOODkuODh+ODkuODiA0KK+OCteOCpOOCtOOCpizjg5/jg6/jgrMNCivjgrXjgqvjgqzjg58s44Kk44OB44Ot44KmDQor44K144K144KtLOODiuODiuOCqA0KK+OCteODryzjgrHjg7PjgrQNCivjgrfjg5/jgros44Om44Kt44KqDQor44K344On44Km44OALOOCt+OCsuODjuODqg0KK+OCueOCuuOCrSzjgqvjgrrjg5Ljg6kNCivjgqTjgrfjg4/jg54s44Kx44Oz44OIDQor44K/44Kr44OP44K3LOODnuOCreOCsw0KK+OCv+OCseODryzjgrfjg7PjgrgNCivjgr/jg4/jg6ks44K144OI44K3DQor44OE44OE44OfLOODnuOCs+ODiA0KK+ODiuOCpOODiOOCpizjgrPjgqbjgrgNCivjg4rjgqvjgrjjg54s44OO44K+44OgDQor44OK44Kr44Og44OpLOOCveOCpuOCpOODgeODreOCpg0KK+OCpOOCseODgCzjg57jgrXjgr/jgqsNCivjg4vjgrcs44OE44ON44Ki44KtDQor44OO44OO44Kk44OB44OkLOODnuOCueOCqg0KK+ODj+OCt+OCuuODoSzjg6bjgqbjgrMNCivjg4/jg4Pjg4jjg6os44Om44KmDQor44Kk44OO44Kw44OBLOOCq+ODhOODleODnw0KK+ODkuODnuOCrSzjg4jjg6Ljg47jg6oNCivjg5Xjgqvjgrbjg68s44Oq44KoDQor44OV44K444OK44KsLOODleODn+OCsw0KK+ODleODq+ODpCzjg57jg6rjgrMNCivjg5vjg6rjgqvjg68s44OI44Oi44OS44OtDQor44Kk44Kw44OBLOOCv+OCq+ODkuODrQ0KK+ODn+ODhOODj+OCtyzjgqjjgqTjgqTjg4ENCivjg5/jg6Tjgrfjgr8s44Oo44Km44KzDQor44Og44Op44Oe44OELOODnuOCteODpuOCrQ0KK+OCpOODjuOCpuOCqCzjgqLjgq3jg47jg6oNCivjg6Tjg44s44K/44OA44K/44KrDQor44Ok44Oe44OALOOCv+ODhOOCqg0KK+ODpOODnuODouODiCzjg6Djg43jgr/jgqsNCivjg6jjgrfjg4As44Oq44On44KmDQor44Ov44K/44OK44OZLOODkuODh+ODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg4jjgrfjgqgNCivjgrPjgqbjg4As44K144OI44OrDQor44Kq44Ks44OvLOODkuODreOCouOCrQ0KK+OCouOCreODouODiCzjgrnjgrnjg6ANCivjgqLjgrXjg44s44OI44Oi44OS44KzDQor44Ki44OZLOODnuOCteOCquODnw0KK+OCpOODhOODjizjg5/jgq3jgqoNCivjgqTjg4Hjg47jgrss44Kz44K644KoDQor44Kk44Oq44K/LOODpOOCueOCouOCrQ0KK+OCpOOCt+OCquOCqyzjgrfjg7PjgqTjg4ENCivjgqTjg4Hjgq0s44Oe44K144OIDQor44Kk44OP44OpLOOCreODqOOCv+OCqw0KK+OCpOODnuOCuizjg4Tjg6jjgrcNCivjgqTjg6/jgrnjgq4s44Of44KrDQor44Km44K544KkLOODnuOCteODkuODrQ0KK+OCqOODiOOCpizjgrHjg7PjgrgNCivjgqrjgqYs44Oo44K344OS44OtDQor44Kk44Ov44Kt44OqLOODr+OCv+ODqw0KK+OCquOCquODhOOCrSzjgrjjg6Xjg7MNCivjgqrjg6Djg6ks44Kv44OfDQor44Kq44Kr44K244KtLOODiOODouODn+ODgQ0KK+OCquOCrOODryzjgqLjgq3jg6kNCivjgq3jgr/jg6Djg6ks44Oe44Oq44KzDQor44Kq44Kq44Ok44OeLOODgeOCuuODqw0KK+OCq+OCteOCtuOCrSzjg6jjgrfjg5Ljg60NCivjgqvjg4Tjg44s44K/44Kr44OO44OqDQor44Kr44OI44OqLOOCseODs+OCuA0KK+OCrOODnyzjg5Ljg63jgrcNCivjgqvjg6/jgqvjg58s44Oe44K144OfDQor44Kr44Ov44OfLOOCt+ODs+OCuA0KK+OCreOCv+OCt+ODrSzjgqvjgrrjg6jjgrcNCivjgq3jg6Djg6ks44K344Ky44OrDQor44Kv44K444Op44Kq44KrLOODgOOCpOOCrQ0KK+OCpOOCt+OCsOODrSzjgr/jg63jgqYNCivjgqTjg4rjg4jjg58s44OA44Kk44K544KxDQor44Kz44K644OeLOODnuOCpOOCsw0KK+OCs+OCt+OCpCzjg4jjg6Ljg5Ljg60NCivjgrPjg4vjgrcs44K/44OA44K3DQor44Kz44OQ44Ok44K3LOODqOOCt+OCqg0KK+OCteOCpOODiOOCpizjg4jjg6LjgqgNCivjgrXjgqvjgqQs44Of44ON44KqDQor44K144Kr44Oi44OILOOCuOODpeODs+OCsw0KK+OCteODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjgqTjgrfjgrDjg60s44OS44OH44K/44KrDQor44K344OK44OALOODqOOCt+OCsw0KK+OCt+ODnuODgCzjg6jjgrfjgrXjg4ANCivjgqTjg4jjgqYs44Kt44On44Km44KzDQor44K544Ku44Ok44OeLOOCq+OCuuODig0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrvjgq3jgrDjg4Es44Kx44Kk44KzDQor44Kr44Of44OkLOOCq+OCueODnw0KK+OCv+OCq+ODjizjgrHjg7PjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Kz44Km44Kk44OB44Ot44KmDQor44K/44Kr44Of44K244OvLOODquODpeOCpuOCrQ0KK+OCv+OCseOCpuODgSzjgr/jgqvjgq3jg6gNCivjgr/jgrHjg6Ljg4gs44Kr44K644OS44KzDQor44K/44OB44OQ44OKLOOCouODpOOCsw0KK+OCv+ODiuOCqyzjg4rjgqrjgrMNCivjgr/jg4rjg58s44OE44ON44KqDQor44K/44OO44Kq44KrLOODn+OCqOOCsw0KK+ODgeODpeOCpizjgrXjg6TjgqsNCivjg4Tjg4Hjg6Qs44K744Os44OKDQor44OI44K4LOODnuOCteOCsw0KK+ODiOODqOODgCzjgr/jgq/jg6QNCivjg4rjgqvjgrjjg54s44OI44Oi44KzDQor44OK44Ks44K/LOODqOOCt+ODkuOCsw0KK+ODiuOCrOODj+ODqSzjg6jjgrfjg6bjgq0NCivjg4rjgqvjg6Djg6ks44Oe44K144Kr44OEDQor44OL44K344Kr44OvLOOCpOODr+OCqg0KK+ODi+ODryzjg6bjgq3jgqgNCivjg47jgqzjg58s44Om44KrDQor44OP44K344K644OhLOOCv+OCq+OCtw0KK+ODj+OCu+ODmSzjg6jjgqbjg5jjgqQNCivjg4/jg4rjg5bjgrUs44Kq44K144OgDQor44OP44Ok44K3LOODnuOCs+ODiA0KK+ODj+ODq+OCv+ODiyzjgr/jgqvjg5Ljg60NCivjg5Ljg6fjgqbjgqgs44OI44Oi44OS44OtDQor44OS44Op44OM44OeLOOCq+OCuuOCqg0KK+ODleOCr+ODgCzjgr/jgqvjg5Ljg60NCivjg5Xjgrjjgqos44K/44Kr44Om44KtDQor44Kk44OO44Km44KoLOODjuODquOCqg0KK+ODleODq+OCq+ODryzjg57jgrXjg5/jg4QNCivjg5Xjg68s44Of44KqDQor44Oe44Ko44Kr44OvLOODq+ODnw0KK+ODnuOCreOCvyzjgqvjg4Tjg6bjgq0NCivjg57jg4Tjgqbjg6ks44Ko44Oq44KzDQor44Oe44OE44OALOOCv+OCq+OCtw0KK+ODnuODhOODn+ODpCzjgrHjg7PjgqTjg4ENCivjg57jg4rjg5ks44Oq44On44Km44K544KxDQor44Of44OK44OILOODkuODreODpuOCrQ0KK+ODoOODqeOCq+ODnyzjg57jgrXjg58NCivjg6Ljg4jjg6jjgrcs44Oe44Kz44OIDQor44Oi44Oq44K/LOOCseODs+OCuA0KK+ODpOOCrizjgrHjgqTjgrnjgrENCivjgqzjg7Ms44OP44OK44KoDQor44Ok44Oe44Kw44OBLOODpOOCueODnuOCtQ0KK+ODpOODnuOCteOCrSzjgrjjg6Xjg7MNCivjg6Tjg57jg4As44K/44OE44K4DQor44Ok44Oe44OL44K3LOODiuOCquOCrQ0KK+ODqOOCs+OCvyzjg4jjg6Ljg5Xjg58NCivjg6jjgrfjgqvjg68s44K/44Kv44OkDQor44Oo44K344Og44OpLOOCr+ODi+ODkuOCsw0KK+ODr+OCreOCvyzjg4jjgqrjg6sNCivjg6/jgr/jg4rjg5ks44K944KmDQor44Ki44Oe44KzLOODqOOCt+OCqg0KK+ODnuODjizjgqLjgq0NCivjgqbjg4Hjg6Djg6ks44OB44OK44OEDQor44K144Kv44Op44KkLOODnuODnw0KK+OCt+ODqeOCpCzjg6bjgr/jgqsNCivjg4bjg6njgq/jg6ks44Oo44Km44K4DQor44Kq44Kr44OALOOCv+ODhOOCtw0KK+OCtOODiOOCpizjgqLjgq3jg5Ljg60NCivjg4Tjg5Djgq0s44K744Kk44Kk44OB44Ot44KmDQor44Kk44OK44Ks44KtLOODkuODh+ODiOOCtw0KK+ODm+ODquODmSzjg6Ljg4jjgrgNCivjgqvjgqQs44Oo44K344KoDQor44K/44Kr44OALOODiOOCr+ODkuOCsw0KK+OCs+OCv+ODiyzjg5Xjg5/jg5LjgrMNCivjgqTjg4/jg6ks44Kx44Kk44KzDQor44Ki44Kt44OP44OpLOOCt+ODpeODs+OCueOCsQ0KK+OCouODmSzjg6bjgq0NCivjgqLjg6njgq0s44OS44Ot44K3DQor44Kk44K344KkLOODjuODluODpOOCuQ0KK+OCpOOCt+OCvOOCrSzjg4DjgqTjgrnjgrENCivjgqTjgr/jg4ss44K/44Kr44K3DQor44Kk44OI44KmLOOCt+OCuuOCsw0KK+OCpOODjizjg5/jgq0NCivjgqTjg6/jgrbjgq0s44OS44Ot44K/44KrDQor44Km44Ko44OOLOOCseODs+OCuA0KK+OCpuODoeODj+ODqSzjg4rjg4TjgrMNCivjgqrjgqrjgqgs44OA44Kk44K544KxDQor44Kq44Kq44OELOODgeOCqA0KK+OCquOCquODhOODnCzjg57jgrXjg5/jg4QNCivjgqrjgqvjg4As44K/44OE44OkDQor44Kq44Kr44Oi44OILOODkuOCteOCtw0KK+OCquOCr+ODiuOCqyzjgrvjgqTjgrcNCivjgqrjg5Djg6ks44Om44Oq44KzDQor44Kr44K444OK44KsLOODpuOCv+OCqw0KK+OCq+ODiOOCpizjg6rjg6fjgqYNCivjgqvjg4jjgqYs44Ov44K/44OrDQor44Kr44Ov44KkLOOCs+OCpuOCuA0KK+OCq+ODr+OCsOODgSzjgrnjgrnjg6ANCivjgq3jgrcs44Os44Kk44KzDQor44Kt44OJ44Kz44OtLOOCouODhOOCtw0KK+OCr+ODnOOCvyzjg57jg6bjg58NCivjgq/jg6/jg5Djg6ks44Om44Kr44OqDQor44Kz44Kv44OcLOODouODouOCqA0KK+OCtOODiOOCpizjgrHjgqTjgrMNCivjgrPjg5/jg6Tjg54s44Oe44K144Oo44K3DQor44K144Kk44OI44KmLOOCt+OCsuODqw0KK+OCteOCq+ODouODiCzjg4Hjgqvjg6kNCivjgrXjgrXjg44s44Ki44Kr44KuDQor44K144OK44OALOODnuOCteODpuOCrQ0KK+OCt+ODnuODgCzjgr/jgrHjgrcNCivjgrfjg6Ljg5Xjgrgs44OO44OW44OS44KzDQor44K344OvLOOCseODs+OCpOODgQ0KK+OCueOCruODj+ODqSzjg5Ljg63jg47jg5YNCivjgrnjgrrjgq0s44Oe44K144OkDQor44K744KtLOOCouODhOODiuODqg0KK+OCv+OCq+OCrizjgqvjg6gNCivjgr/jgqvjg4/jgrcs44OS44Ot44OK44KqDQor44K/44Kt44K244OvLOOCteODiOOCtw0KK+OCv+OCseODgCzjg6bjgqbjgqTjg4Hjg60NCivjgr/jg4rjgqss44K744Kk44K4DQor44K/44OL44Kr44OvLOODqOOCt+ODhOOCsA0KK+OCv+ODkOOCvyzjgrHjgqTjgr/jg63jgqYNCivjg4Tjgqvjg4As44Oq44KoDQor44OE44Oc44K/LOODnuOCteODpA0KK+ODiOOCpuOCq+OCpOODquODsyzjg6bjg58NCivjg4jjg47jgqQs44Ki44Kt44KzDQor44OK44Kr44Ks44OvLOODqOOCt+ODjuODqg0KK+ODiuOCrOODjizjg6rjg6fjgqbjgr8NCivjg4rjgqvjg6Tjg54s44OI44Oi44OS44OtDQor44OL44K344Kq44KrLOOCt+ODs+OCpOODgQ0KK+ODjeOCruOCtyzjg6rjgqsNCivjg47jgrbjgq0s44OA44Kk44K544KxDQor44OP44K344Kw44OBLOODiOOCt+ODkuODrQ0KK+ODj+ODg+ODiOODqizjg6bjgqbjgqTjg4ENCivjg4/jg57jg4As44OA44Kk44K4DQor44OS44K344OM44OeLOOCouODhOOCtw0KK+ODkuODqeOCvyzjg57jg5/jgrMNCivjg5Xjgq/jg4As44K/44Kr44K3DQor44OV44K444Ko44OALOODkuOCteOCq+OCug0KK+ODleOCuOODr+ODqSzjgr/jgq/jg4gNCivjg5vjg6rjgqvjg68s44K344Ol44Km44K4DQor44Oe44OE44KqLOODkuODh+ODjuODqg0KK+ODnuODhOODpOODnizjg5/jg4Tjg4bjg6sNCivjg5/jg6Qs44Ki44Kt44OpDQor44Of44Ok44Oi44OILOOCr+ODi+OCsw0KK+ODoOODqeOCq+ODnyzjgr/jg4Tjg5Ljg60NCivjg6Ljg6rjgr8s44Oe44OfDQor44Ok44Kw44OpLOOCt+ODs+OCuA0KK+ODpOODnuODgCzjg5/jgrrjg5sNCivjg6bjg6ks44Kx44Oz44Kk44OBDQor44Oo44K344K244OvLOODpuOCpuOCsw0KK+ODreOCryzjgqLjgq3jgrMNCivjg6/jg6njg5Ms44OS44Ot44OO44OqDQor44Of44OS44OpLOODquODp+OCpuODmOOCpA0KK+ODn+OCruOCvyzjg57jg4oNCivjgr/jgrHjgqbjg4Es44Oq44On44KmDQor44Kq44OO44OH44OpLOOCr+ODi+ODkuODrQ0KK+OCouOCq+OCrOODryzjg6Ljg4jjgrMNCivjgqLjgrXjg4zjg54s44Ki44OkDQor44Ki44Op44KkLOODhOODqOOCtw0KK+OCpOOCtuODryzjg4Hjg4/jg6sNCivjgqTjgrfjg5Djgrcs44OI44K344Om44KtDQor44Kk44OHLOODiuODq+ODnw0KK+OCpOODjuOCpuOCqCzjg57jgrPjg4gNCivjgqTjg57jgrzjgq0s44Kv44Of44KzDQor44Kk44Ov44K/LOOCs+OCpuOCuA0KK+OCpuOCteODnyzjg57jg6rjgrMNCivjgqjjg47jgq3jg4ks44Oo44Oq44KzDQor44Kq44Kt44K/LOODpuOCreODjuODqg0KK+OCquOCquODhOOCqyzjg6Ljg4jjgqQNCivjgqrjg44s44OS44Ot44K3DQor44Kq44Kr44OALOOCq+OCuuODkuODrQ0KK+OCquOCr+OCr+ODnCzjgr/jgqvjgrcNCivjgqvjg4rjgqQs44Kx44Oz44Kk44OBDQor44Kr44Of44OkLOOCteODgeOCsw0KK+OCq+ODr+OCteOCrSzjg5Ljg63jgq0NCivjgq3jg4As44Ko44Kk44K544KxDQor44Kt44Og44OpLOODleODn+ODiA0KK+OCr+ODoeOCpuODgSzjgrHjg7PjgrgNCivjgq/jg6/jg4/jg6ks44K344OODQor44Kz44KsLOOCv+OCr+OCuA0KK+OCs+ODkOODpOOCtyzjgqLjg7Pjg4oNCivjgrXjgqTjg4jjgqYs44Kx44Oz44Kk44OBDQor44K144K144KtLOODj+ODiuOCsw0KK+OCteODiOOCpizjg5/jgq0NCivjgrXjg4/jg6ks44K/44Kr44OV44OfDQor44K344OALOODqOOCt+ODkuODrQ0KK+OCt+ODn+OCuizjgr/jg4TjgqoNCivjgrfjg6Ljgrbjgq0s44K/44OE44OS44KzDQor44K544Ku44Km44OpLOODnuOCteODjuODlg0KK+OCueODiCzjgrXjg4jjgrcNCivjgrvjg4gs44Kx44Kk44K4DQor44K/44Kr44KuLOODjuODquODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg5/jgqsNCivjgr/jgrHjg4As44Om44Km44K4DQor44K/44OALOODqOOCt+OCv+OCqw0KK+OCv+ODi+OCsOODgSzjgr/jgqvjg47jg6oNCivjgr/jg6Djg6ks44Kx44Kk44KzDQor44OE44Kr44OP44OpLOODn+OCuuODmw0KK+ODhOODnOOCpuODgSzjgqLjgq3jg5Xjg58NCivjg4bjg6njg4As44Oo44K344KtDQor44OI44Of44KkLOOCuOODpeODs+OCsw0KK+ODiuOCpOODiOOCpizjgr/jgqvjgqoNCivjg4rjgqzjgrXjgqss44Kz44Km44K4DQor44OK44Ks44OOLOODpOOCueOCqg0KK+ODiuOCq+ODoOODqSzjgqjjgqTjgrgNCivjg4vjgrcs44OK44Kq44Om44KtDQor44OL44K344OALOODquODp+OCpuODmOOCpOOCvw0KK+ODjuOCsOODgSzjgqvjgrrjg6jjgrcNCivjg47jg6Djg6ks44Kr44K644KqDQor44OP44OD44OI44OqLOOCteODiOODnw0KK+ODj+ODpOOCq+ODryzjg6bjgq0NCivjg4/jg6njg4As44Of44KoDQor44OS44OH44K344OeLOODn+OCreOCsw0KK+ODleOCq+OCqizjg5/jg6bjgq0NCivjg5Xjgq/jg4/jg6ks44Om44Kt44KzDQor44OV44K444Oi44OILOOCqOODquOCsw0KK+ODm+OCt+ODjizjgrnjg5/jgqoNCivjg5vjg6rjgrDjg4Es44K444Ol44Oz44Kk44OBDQor44Oe44Kt44OOLOOCv+OCseOCqg0KK+OCs+ODn+ODpCzjg47jg5zjg6sNCivjgrPjg5Djg6Tjgrcs44OS44Ot44K3DQor44Kr44Of44Kv44OcLOOCseODs+OCuA0KK+ODnuODhOOCqizjgq3jg6jjgrcNCivjg4rjgqvjg4Es44Kt44Oo44K3DQor44Kz44K544KuLOODqOOCt+ODnw0KK+OCq+ODhOODnuOCvyzjg4jjgrfjgqvjgroNCivjgqvjgqzjg6Tjg54s44Oe44K144OP44OrDQor44Kv44K8LOODn+OCreOCqg0KK+OCr+ODnuODgCzjg57jgrXjgqLjgq0NCivjgrPjgrjjg6fjgqYs44K144OK44KoDQor44Kr44K344Kv44OeLOOCseODs+OCvuOCpg0KK+OCreOCr+ODgSzjg6jjgrfjg5LjgrUNCivjgq/jg57jg44s44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOOCt+ODpeODs+OCuA0KK+OCs+ODkOODpOOCtyzjg47jg5bjgrMNCivjgrPjg4vjgrcs44Kx44Oz44Kk44OBDQor44Kz44OQ44K344Ks44OvLOODkuODiOOCtw0KK+OCq+OCpOODiSzjg5/jg5sNCivjgq/jg63jgq0s44K444Ol44OzDQor44Kr44OK44K/44OLLOODquOCqA0KK+OCreOCv+OCrOODryzjg4rjgqrjgr/jgqsNCivjg5/jgrrjg6Ljg4gs44OK44Or44KtDQor44Of44Ok44Kq44KrLOOCseODs+ODreOCpg0KK+ODoOODqeOCvyzjgrHjg7PjgrgNCivjg6Ljg6rjgr8s44OS44OH44OI44OiDQor44Ok44OK44Ku44OALOOCqOODquOCsw0KK+ODpOODnuOCtuOCrSzjgrHjg7MNCivjg6Tjg57jg6Ljg4gs44Ok44K544OO44OqDQor44Oo44K0LOODiOODouODjuODqg0KK+ODqOODjeODgCzjg6bjg5/jgrMNCivjg6/jgrMs44Oq44KoDQor44Ki44Kr44OP44ONLOODkuODreOCouOCrQ0KK+OCouOCteODmSzjgqvjg6gNCivjgqLjg6njgqQs44OS44OH44KqDQor44Kk44Kx44OALOODqOOCt+OCv+OCqw0KK+OCpOOCt+ODiSzjg6bjgq3jgrMNCivjgqTjgrrjg44s44Of44OE44OS44OtDQor44Kk44OI44KmLOOCv+OCseOCtw0KK+OCpOODjuOCpuOCqCzjg47jg5bjgr/jgqsNCivjgqTjg6/jgr8s44Oo44K344OS44OtDQor44Km44Kr44KkLOODkuOCteODiuOCrA0KK+OCqOODiOOCpizjg5Ljg63jgq0NCivjgqrjgqrjgrXjgqss44K/44OG44KtDQor44Kq44Kq44OL44K3LOODn+ODhOODqw0KK+OCquODoOODqSzjg4jjg6LjgrMNCivjgqrjgqvjg44s44Ok44K544OV44OfDQor44Kq44Ks44OvLOOCv+OCr+ODpA0KK+OCquOCtuOCrSzjgr/jgqvjg6bjgq0NCivjgqrjg4jjgqzjg68s44Oq44On44Km44KzDQor44Kr44K144KkLOODiuOCquOCsw0KK+OCq+OCueOCrCzjgrXjg4rjgrMNCivjgqvjg4jjgqYs44Kx44Oz44Kk44OB44OtDQor44Kr44Oh44K/44KrLOOCv+OCpOOCueOCsQ0KK+OCq+ODr+OCsOODgSzjgqLjg6bjg58NCivjgqvjg6/jg5Djgr8s44Ki44Om44OfDQor44Kt44K/44Ks44OvLOOCv+OCseOCtw0KK+OCreODoOODqSzjg6jjgrfjgqvjgroNCivjgq3jg6rjgrXjgrMs44OG44OD44Oa44KkDQor44Kv44Op44OP44K3LOOCv+OCq+OCouOCrQ0KK+OCtOOCpuODgCzjgr/jgrHjg5Ljg60NCivjgrPjg4bjg6ks44Kt44Of44OS44OtDQor44Kz44OQ44Ok44K3LOODiuODhOOCsw0KK+OCs+ODnuODhOODkOODqSzjg4jjg6Ljg5LjgrUNCivjgrXjgqTjg4jjgqYs44OG44Or44OS44K1DQor44K144Kr44KkLOOCv+OCq+ODpuOCrQ0KK+OCteOCr+ODqeOCpCzjgrXjg4Djg6jjgrcNCivjgrXjg4jjgqYs44Ki44KtDQor44K144Ov44K144KtLOOCv+OCq+OCtw0KK+OCt+ODnuODjizjg4jjgrfjgqLjgq0NCivjgrfjg6fjgqbjg4As44Kv44OfDQor44K344Oz44K/44OLLOOCseODs+OCvw0KK+OCueOCruODpOODnizjgr/jgqvjg40NCivjgrvjgq3jg6Ljg4gs44Kr44OE44Ki44KtDQor44K/44Kr44OP44K3LOODrOOCpA0KK+OCv+OCsOODgSzjg6/jgr/jg6sNCivjgr/jg4Hjg5Djg4os44OK44Kq44OIDQor44K/44OK44KrLOOCteODgeOCqA0KK+OCv+ODnuOCrSzjg4rjgqrjgrMNCivjg4Tjgqvjg4As44OG44OE44OkDQor44OE44Oc44Kv44OpLOOCv+OCr+ODpA0KK+ODieOCpCzjg47jg5bjgr/jgqsNCivjg4jjg4As44K344Ol44Oz44K544KxDQor44OK44Ks44K144KrLOODn+ODgeOCsw0KK+ODiuOCq+OCt+ODnizjgqLjgq3jg5Ljg60NCivjg4rjgqvjg4vjgrcs44Of44OJ44OqDQor44OK44Kr44Og44OpLOODnuODpg0KK+ODiuOCq+ODpOODnizjgr/jgrHjgrcNCivjg4vjgrfjg44s44Om44KrDQor44OO44Kv44KqLOOCq+OCquODqg0KK+ODkOOCs+OCtyzjgrfjg7PjgrQNCivjg4/jgr/jg44s44Oo44Km44KzDQor44OP44Ok44K3LOOCteODiOOCsw0KK+ODj+ODqeODgCzjgqLjg4TjgrcNCivjg5Ljg6njgqQs44Om44Km44K544KxDQor44OS44Ot44KoLOOCouODhOOCtw0KK+ODleOCr+ODgCzjgrXjg6TjgqsNCivjg5Xjgrjjg6Djg6ks44Ki44Kt44KzDQor44OV44Or44Kr44OvLOODkuODreOCsw0KK+ODm+OCveODgCzjgrfjg6Xjg7PjgrQNCivjg57jgqjjgqvjg68s44Of44OvDQor44Oe44K144OI44Km44OfLOODnuOCpOOCsw0KK+ODnuODhOOCquOCqyzjg4jjg6LjgrMNCivjg57jg4Tjg5Djg6ks44Ki44Kt44KzDQor44Of44Km44OpLOOCreODqOODnuOCtQ0KK+ODn+OCvuODj+OCvyzjg4HjgqgNCivjg5/jg4/jg6ks44Oe44K144KtDQor44Of44Ok44Og44OpLOOCouODpA0KK+ODoOODqeOCvyzjgq/jg5/jgrMNCivjg6Ljg6os44Kv44Of44KzDQor44Oi44Ot44KoLOODkuODreOCq+OCug0KK+ODpOODiuOCruOCteODryzjgrHjgqTjgrnjgrENCivjg6Tjg57jgqzjgr8s44Oe44Kz44OIDQor44Ok44Oe44OALOODjuODluOCsw0KK+ODpOODnuODouODiCzjg4bjg6vjg5LjgrMNCivjg6Tjg57jg6Ljg4gs44Ov44K/44OrDQor44Oo44Kz44Ok44OeLOOCouODpuODnw0KK+ODqOOCt+ODgCzjg4rjgqrjgrMNCivjg6jjgrfjg6Djg6ks44OA44Kk44K544KxDQor44Ov44OALOOCpOOCteODoA0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgrXjgrXjg44s44K544K544OgDQor44Kz44OA44OeLOOCv+OCq+ODkuOCsw0KK+OCq+ODr+OCt+ODnizjg57jgrXjg4rjg6oNCivjgqvjg6/jg44s44Kz44Km44Kk44OBDQor44Kr44Of44Km44OpLOOCq+OCuuODkuODhw0KK+OCs+ODs+ODjizjg5Ljg4fjgq0NCivjgq/jg6Tjg54s44K/44Kx44K3DQor44Kz44KkLOOCu+OCpOOCpOODgeODreOCpg0KK+OCq+OCteOCuOODnizjg5Ljg63jg5Xjg58NCivjgqvjg4jjgqYs44OI44Oi44OfDQor44Kv44Oc44K/LOODkuODreODpuOCrQ0KK+OCseOCrOOCteODryzjg5LjgrXjgrcNCivjgqvjg6/jgq7jgrcs44OS44Ot44K3DQor44Kr44Oe44OALOOCv+OCq+OCtw0KK+OCreOCr+ODgSzjgqrjgrXjg6ANCivjgqvjg4jjgqYs44Kr44K644OS44KzDQor44Oe44OB44OALOOCq+OCuuOCqg0KK+ODoOODqeOCteOCrSzjg4jjgrfjgqoNCivjg57jg4Tjg6Ljg4gs44Kx44Oz44Kk44OBDQor44Oe44K144KtLOOCreOCr+OCqg0KK+ODn+OCuuOCv+ODiyzjg4rjgqrjg5LjgrMNCivjg57jg6vjg6Tjg54s44K744Kk44K4DQor44Og44Op44K344OeLOOCv+ODgOOCqg0KK+ODn+OCuuOCvyzjg6jjgrfjgqoNCivjg6Ljg6rjgqQs44Ku44On44K4DQor44Of44Ok44K244OvLOODqOOCt+OCqg0KK+ODn+OCuuODjizjg6bjg6rjgrMNCivjg6Djg6njgqTjgrcs44Oe44Oi44OrDQor44Og44Op44Kr44OfLOOCq+OCuuOCqg0KK+ODoOODqeODnuODhCzjgqLjg4TjgrcNCivjg5/jgr/jgq8s44Kx44Kk44K+44KmDQor44Oe44Ko44OALOOCouOCreOCqg0KK+ODoOODqeOCpCzjg4jjg6jjg58NCivjg57jg4Tjg4As44K144OI44K3DQor44Of44OG44OpLOODpOOCueOCqg0KK+ODouODqizjg4Tjg4jjg6ANCivjg57jg4TjgqQs44K/44Kr44K3DQor44Of44Km44OpLOOCr+ODi+OCqg0KK+ODnuODhOODouODiCzjgr/jgrHjgrcNCivjg57jg4Tjgrbjg68s44Oo44K344KqDQor44Of44Kr44OfLOODj+ODq+OCrQ0KK+OCv+ODluODgSzjgrHjg7PjgrgNCivjg4rjgqvjgrjjg54s44Oe44K144OS44OtDQor44OK44Kk44OI44KmLOOCv+OCseOCqg0KK+ODi+OCt+ODiizjgq3jg5/jg5Ljg4gNCivjg4rjgqvjgqzjg58s44K344Ol44Km44Kk44OBDQor44OK44Kr44OP44K/LOOCq+OCuuODiOOCtw0KK+ODi+OCt+OCquOCqyzjg5Ljg63jgrcNCivjg4vjgrfjg4As44Oo44K344Ot44KmDQor44OO44Og44OpLOOCr+ODi+ODkuOCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg6bjgq0NCivjg4rjgqTjg4jjgqYs44Kr44K644Ki44KtDQor44OL44OD44K/LOODpuOCv+OCqw0KK+ODiuOCq+OCuOODnizjgqvjg4TjgqoNCivjg4rjgqvjgrss44OI44K344Ki44KtDQor44OK44Kr44Ks44OvLOODjuODluOCqg0KK+ODiuOCq+OCuOODnizjg6Djg43jgr/jgqsNCivjg4rjgqvjg6Djg6ks44Ob44K644OfDQor44OK44Ks44K344OeLOODiuOCquOCuA0KK+OCquOCrSzjgrnjg5/jgqoNCivjgqrjgq/jg4As44OI44K344KqDQor44Kq44Kq44OP44K3LOODkuODreOCtw0KK+OCquOCrOODryzjg4jjgqrjg6sNCivjgqrjgrbjg68s44OS44Ot44K3DQor44Kq44Kq44OP44K3LOODpuOCv+OCqw0KK+OCquOCquODjizjg5/jg4TjgqoNCivjgqrjgqrjgqTjgrcs44K4DQor44Kq44Kq44Kr44OvLOOCq+OCquODqw0KK+OCquODquOCrOOCtSzjg6Tjgrnjgr/jgrENCivjgqrjgqrjgr8s44Oo44K344OS44KzDQor44Kq44K244KtLOOCuOODpeODs+OCpOODgQ0KK+OCquODgOOCt+ODnizjgr/jg4DjgrcNCivjgqrjgqrjg5Ljg6ks44K744OE44K4DQor44Kq44Kq44OkLOODkuODh+ODmw0KK+OCquOCq+ODjizjgqLjgq3jgrMNCivjgqrjgrDjgrcs44Ki44Kx44OfDQor44Kq44Kq44Kk44Ks44OvLOOCv+OCq+ODj+ODqw0KK+ODiuOCq+OCv+ODiyzjgrfjg7PjgqTjg4ENCivjgrfjg6njgqrjgqzjg68s44Op44Kk44K/DQor44OK44Kr44Og44OpLOODiOOCt+ODn+ODhA0KK+OCouODmSzjgqjjg5/jgrMNCivjgqvjg6/jgqbjg4Es44Oe44Oq44KoDQor44Kk44OI44KmLOOCseODs+OCveOCpg0KK+OCs+OCpOOCuuODnyzjgr/jgq/jg6QNCivjgqvjg4rjgqrjgqss44OS44Ot44K3DQor44Ki44Oq44OeLOODpOODqOOCpA0KK+OCpuODnuODpOODj+ODqSzjg6Tjgrnjg58NCivjgqvjg43jg57jg4Qs44K144Kt44KzDQor44OV44Kr44OkLOOCr+ODi+OCouOCrQ0KK+OCtOODiOOCpizjg6bjgqbjgqTjg4Hjg63jgqYNCivjgrnjgq7jg6Ljg4gs44Kv44OL44KqDQor44Kv44Oq44OP44OpLOODiOODqOODkuOCsw0KK+OCquOCquOCvyzjg6bjgq3jgrMNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44Oo44K344OALOOCq+OCuuODiOOCtw0KK+ODj+ODg+ODiOODqizjg5Ljg63jgrcNCivjgqvjg4njgr8s44Ki44Kt44OS44OtDQor44Kk44K344K244OvLOODpuOCuuOCrQ0KK+ODn+ODpOODouODiCzjg5/jg4njg6oNCivjgqrjgrgs44Ok44K544OS44OtDQor44Ki44Op44KkLOODiOOCt+OCouOCrQ0KK+OCreOCv+ODoOODqSzjg6rjgqvjgrMNCivjgrXjgqTjg4jjgqYs44Oo44K344OS44OIDQor44Kz44OQ44Ok44K3LOOCreODp+OCpuOCvuOCpg0KK+ODi+OCt+OCq+ODryzjg4jjg6Ljg58NCivjgr/jg4rjgqss44Kr44K644OS44OtDQor44K644K3LOODpOOCueOCqg0KK+OCouODqeOCpCzjgrfjg6fjgqbjg5jjgqQNCivjg57jgqjjg4fjg6ks44OG44Or44Om44KtDQor44Kz44Oz44OJLOODiuOCqg0KK+ODiuOCrOODm+ODqizjg6bjgq3jgrMNCivjgqTjg6/jgrXjgq0s44Of44Ok44OTDQor44OK44Kr44K/44OLLOOCv+OCq+OCtw0KK+ODiuOCq+OCrOOCrSzjgrHjgqTjgrMNCivjgq/jg6/jg4/jg6ks44Oe44Kz44OIDQor44K544K644KtLOODpuOCrQ0KK+OCv+ODgCzjgqjjgqTjgq0NCivjg6/jg4As44OK44Kq44KzDQor44K144OOLOODkuODreOCtw0KK+ODiOOCreOCvyzjg4rjg4TjgrMNCivjgrPjgrXjgqQs44Om44Km44KzDQor44K744K044KoLOOCteODiOOCsw0KK+ODiuOCq+OCpCzjgqLjg4Tjg58NCivjg4/jg6njg4As44OI44K344Oe44K1DQor44Kt44OO44K344K/LOODn+ODgeOCqg0KK+ODn+ODpOOCtuOCrSzjgqvjgrrjg58NCivjgr/jgq3jgrbjg68s44Oe44K144Ki44KtDQor44K144OI44KmLOOCs+OCpuOCpOODgeODreOCpg0KK+ODn+OCuuOCt+ODnizjgr/jgrHjg6sNCivjgr/jg4vjgrDjg4Es44OP44Or44OfDQor44Oe44OE44K344K/LOOCv+OCq+OCtw0KK+OCueOCruOCpuODqSzjgrHjg7Pjgr/jg63jgqYNCivjgr/jg4vjgqzjgq0s44K744Kk44KzDQor44K144OI44KmLOOCt+OCsuOCqg0KK+ODpOODnuOCq+ODryzjgrXjg4Djg4/jg6sNCivjgrnjgrrjgq0s44K344Ky44OS44OtDQor44OI44Kv44OALOODnuODs+ODiuODqg0KK+OCpOODr+ODnizjg47jg5bjgqLjgq0NCivjgqrjgqrjg4/jg6ks44Om44Kt44OK44KqDQor44K344Kq44OM44OeLOODkuODh+ODiOOCtw0KK+OCueOCuuOCrSzjgqLjgq3jg6jjgrcNCivjgrnjgrrjgq0s44Oo44K344KzDQor44K544K644KtLOODjuODluOCouOCrQ0KK+OCu+OCrSzjgqrjgrXjg6ANCivjgrnjgrrjgq0s44OE44OI44OgDQor44K544Ks44KqLOODhuODhOOCuA0KK+OCueOCuuOCrSzjgrHjgqTjgr/jg63jgqYNCivjgrXjg4njg4jjg6Is44Ki44Kt44OpDQor44K344OeLOODn+ODjuODqw0KK+OCteOCpOODiOOCpizjgqrjgrXjg6ANCivjgrnjgrrjgq0s44Oe44K144OS44OtDQor44K144Kk44OI44KmLOODpuOCreOCqg0KK+OCveODnizjgqrjgrXjg6ANCivjgrXjg4jjgqYs44Kx44Oz44K4DQor44K344Ot44K144KtLOODqOOCpuOCpOODgQ0KK+OCueOCuuOCrSzjg6jjgqbjgrjjg63jgqYNCivjgrnjgrrjgq0s44OG44OE44Ot44KmDQor44K544Ku44Oi44OILOODnuOCteOCqg0KK+OCteOCq+OCpCzjgrfjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Kr44K644Om44KtDQor44K144OI44KmLOOCv+ODhOOCuA0KK+OCt+OCquOCvyzjg4jjg6jjgqoNCivjgr3jg54s44Kr44Oz44K4DQor44K344Ol44OJ44KmLOOCv+OCq+OCqg0KK+OCteOCr+ODqeOCpCzjg4jjgrfjgqoNCivjgr3jgqbjg6Qs44K744Kk44K4DQor44K144Ov44Og44OpLOODiuODq+ODnw0KK+OCu+OCqizjg6bjgqbjgrgNCivjgrfjg5/jgros44OI44K344KqDQor44K144Kt44Oi44OqLOOCpOODr+OCqg0KK+OCteOCpOODiOOCpizjg5LjgrXjgqoNCivjgrfjg5/jgros44Ko44Kk44K+44KmDQor44K344Kq44OO44OkLOOCreODqOOCq+OCug0KK+OCv+OCq+OCrizjg5Ljg4fjgqoNCivjgr/jgq3jgqTjgrcs44Oq44On44Km44K4DQor44OI44OQLOODnuOCteOCtw0KK+OCv+OCsOODgSzjg57jgrXjgqoNCivjgr/jgqvjg44s44Og44ON44KqDQor44K/44Kr44Ok44K5LOODiOODqOODnw0KK+OCv+ODiuOCqyzjgrfjgrLjg6sNCivjgr/jgqvjg4/jg54s44Oo44K344Ki44KtDQor44OE44OB44OALOODnuODouODqw0KK+OCv+OCq+OCqizjg57jgrnjg58NCivjgr/jg4vjgrDjg4Es44Of44OB44Ki44KtDQor44OE44K444Kr44OvLOODpuOCpuOCpOODgQ0KK+ODqOOCt+OCtuODryzjg57jgrXjg4/jg6sNCivjgr/jg4rjgqss44K444Ol44Oz44K+44KmDQor44K/44Oe44OrLOODnuOCteODnw0KK+OCv+OCq+OCrizjgq3jg6fjgqbjgrMNCivjg4Tjg43jg5Ljg60s44K444Ol44Oz44K4DQor44K/44Kr44OP44K3LOODiOOCt+OCouOCrQ0KK+OCouOCteOCpCzjg6bjgqbjgrgNCivjgr/jgqvjgrXjgq0s44Ki44Kt44OpDQor44K/44Kr44OK44OfLOODnuOCteODqw0KK+ODiOODouODiuOCrCzjg4Tjg43jgqvjgroNCivjgr/jgqvjgq4s44Kk44OE44KqDQor44OE44Kr44Oi44OILOOCouOCreOCqg0KK+ODhuODqeOCpuODgSzjgrXjg4Djg6bjgq0NCivjgr/jg47jgqrjgqss44K544K544OgDQor44Km44K544KuLOOCq+OCuuODkuODrQ0KK+OCpuODhOOCrSzjg4bjg4TjgqoNCivjgqbjg4Hjg4As44Kx44Oz44K544KxDQor44Km44Oh44Og44OpLOODiOOCt+OCqg0KK+OCpuODjizjg4jjgrfjg5Ljg4cNCivjg6/jgr/jg4rjg5ks44OS44K144Om44KtDQor44Ov44K/44OK44OZLOOCq+ODhOODiuODqg0KK+ODr+OCv+ODiuODmSzjgrPjg7PjgrTjgqYNCivjg6/jg4As44K/44Kx44Of44OEDQor44Kq44Kq44K/LOODnuOCs+ODiA0KK+ODiuOCq+OCuOODnizjgrHjgqTjgqTjg4ENCivjg5Xjg6vjgrXjg68s44OE44Oo44K3DQor44Kr44K344Ov44KuLOOCsw0KK+ODj+OCvyzjgrfjg6fjgqbjgrnjgrENCivjgqbjgrfjgrjjg54s44Oe44K144Kr44K6DQor44Oe44OE44KkLOOCouOCreODqQ0KK+OCq+ODr+ODiizjg4DjgqTjgrjjg63jgqYNCivjg5/jg6Tjg6Ljg4gs44K/44Kr44OS44K1DQor44Oo44K344OALOOCueODn+ODpuOCrQ0KK+OCquOCquOCq+ODr+ODqSzjgrLjg7Pjgr/jg63jgqYNCivjgrnjg6Tjg54s44Kv44Oz44Ot44KmDQor44K544K644KtLOODpuOCpuOCuA0KK+OCr+ODi+OCruOCvyzjg6jjgqbjgqTjg4ENCivjgq3jg4ks44Oe44K144K3DQor44Kk44K344KkLOODgeOCq+ODiOOCtw0KK+OCpuOCqOODgCzjgr/jgqvjgrcNCivjgqTjg4Hjgqvjg68s44Kr44K644KqDQor44Kq44K144K444OeLOODiOOCt+ODpA0KK+OCpuOCqOODoOODqSzjg4jjgrfjg5Ljg4cNCivjgq3jg6Djg6ks44OI44Kt44OBDQor44Oo44Kz44Ok44OeLOODkuOCteOCqg0KK+OCpOODiOOCpizjg57jgrXjg6bjgq0NCivjg5/jg6Tjg5ks44Kr44K644OIDQor44K/44Oe44KkLOOCq+OCuuODn+ODgQ0KK+OCs+ODqizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqTjg6/jgrXjg68s44Oe44OK44OWDQor44Oo44K344Ok44K5LOOCtOOCpg0KK+ODnuOCv+OCrSzjgrfjg7PjgrQNCivjg6Tjg57jg6Ljg6os44Kr44OE44KqDQor44K/44Kr44K/LOODjuODquOCqg0KK+OCueODieOCpizjgrfjg6fjgqbjgrMNCivjgqbjgqjjg6Djg6ks44Om44K/44KrDQor44K544K644KtLOODn+ODjuODqw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgqLjg6njgq0s44K744Kt44ONDQor44Kr44OALOOCouOCreODqQ0KK+ODi+OCt+ODqOODqizjg5/jg47jg6sNCivjgqTjg4rjg5As44Kr44K644OIDQor44Ob44Oq44KkLOODhOODjeOCqg0KK+OCueODieOCpizjg57jgrXjg5LjgrMNCivjgrfjg63jg6Tjg54s44KzDQor44OG44Op44KkLOOCouOCreOCsw0KK+ODnuODhOODouODiCzjg4rjgqrjgr/jgrENCivjgqTjg4jjgqYs44K744Kk44K4DQor44K944OI44Ok44OeLOOCq+ODhOODjuODqg0KK+ODkuODqeOCquOCqyzjg6TjgrnjgrcNCivjg5Ljg6njgq0s44K/44Oi44OEDQor44K/44OK44OZLOODpuOCpuOCuOODreOCpg0KK+OCv+ODoeODgeOCqyzjgr/jg4bjgqoNCivjg6jjg43jg4As44OI44K344OS44OHDQor44Ko44K444OeLOODiOODouODjuODqg0KK+OCv+OCq+ODj+OCtyzjg5/jgrXjgrMNCivjg4bjg6njgqos44OS44Ot44OS44K1DQor44Ob44Oz44OALOODpuODnw0KK+OCquODgeODqizjg6Tjgrnjg5Ljg60NCivjgqrjgqrjgqQs44OK44Kq44OfDQor44Kr44Ov44KkLOODn+ODjuODqw0KK+ODoOODqeOCq+ODnyzjg5/jg6jjgrcNCivjg4rjgqvjgrjjg54s44OS44OI44K3DQor44Kk44K344OP44OpLOODleODn+OCv+OCqw0KK+OCouOCq+ODm+ODqizjg5/jg4Tjg47jg5YNCivjg6Tjgrnjg4As44Ki44Kt44OpDQor44Oo44Kz44K7LOODiOODouOCt+OCsg0KK+ODqOOCt+OCq+ODryzjg4jjgrfjg63jgqYNCivjg6Tjg57jgrDjg4Es44Of44OO44OrDQor44Oo44K344Og44OpLOODnuOCteODkuOCsw0KK+ODqOODjeODgCzjgqvjgqrjg6sNCivjg6Tjg57jgrfjgr8s44K344On44Km44K+44KmDQor44Ok44Oe44OALOOCqOOCpOOCvuOCpg0KK+ODpOODnuOCtuOCrSzjgrnjgrnjg6ANCivjg6jjgrfjg4As44OS44Ot44K3DQor44Ok44Oe44K/44OLLOODkuODreODhOOCsA0KK+ODpOODnuODjSzjg6jjg43jgr/jgqsNCivjg6Tjg57jgqvjg68s44K444Ol44Oz44Kk44OBDQor44Oo44K344OALOOCv+OCq+OCqg0KK+ODpOODnuOCteOCrSzjg47jg6rjgqoNCivjg6Tjg57jg6Ljg4gs44OG44Or44KqDQor44Oo44Kz44K/LOOCqOOCpOOCpOODgQ0KK+ODpOODnuODgCzjgqvjg4Tjg5Ljg60NCivjg6jjgrfjg44s44OA44Kk44K544KxDQor44Oo44K344OALOODoOODhOOCqg0KK+ODjuODoOODqSzjg57jgrXjgr/jgqsNCivjg6Tjg57jg4As44K144OI44OrDQor44Kk44K344Kr44OvLOODgeODqOOCv+OCsQ0KK+OCueOCuuOCrSzjg5Ljg63jg5Xjg58NCivjg57jgrnjg4As44Kx44Oz44K4DQor44Kk44Oe44KkLOODnuOCteOCvuOCpg0KK+OCreODpeOCpuOCveOCuOODsyzjgrHjg7PjgrnjgrENCivjg6Tjg57jg4As44Ki44Kt44OpDQor44OS44Op44OOLOOCv+OCpOOCrQ0KK+ODiuOCq+ODi+OCtyzjgqvjgrrjgrfjgrINCivjgr/jg4Tjgr8s44K344Ky44OrDQor44Of44Og44OpLOODnuOCteOCqg0KK+ODkuODqeODnuODhCzjgrXjg4DjgqoNCivjg4jjg5/jgr8s44Oe44K144OS44OtDQor44Kz44OQ44Ok44K3LOOCt+ODs+OCpOODgeODreOCpg0KK+OCv+OCseODiuOCqyzjg57jgrXjg5Ljg60NCivjgqLjg57jg44s44OO44Oq44KzDQor44Kk44K344KkLOOCreODp+OCpuOCsw0KK+OCpOODhyzjgrXjgq3jgrMNCivjgqrjgqvjg4As44Oq44Ko44KzDQor44OS44Op44Kk44K3LOODnuODqg0KK+ODqOOCt+ODouODiCzjg5Ljg63jgrMNCivjgqvjg6/jgrfjg54s44Oe44Om44OfDQor44OI44OQ44K/LOODjuODquOCq+OCug0KK+OCv+ODiuOCqyzjg5Ljgqvjg6sNCivjgqLjg7Pjg5ks44Oe44OK44OfDQor44K/44Kr44OP44K3LOODnuOCteODkuODrQ0KK+ODiOODn+ODpOODnizjg6jjgrfjgqLjgq0NCivjgr/jgqvjg6Tjg54s44OI44K344Om44KtDQor44Of44Ok44K344K/LOODn+ODjuODqw0KK+ODj+OCt+ODouODiCzjg5/jgq3jgqoNCivjg4jjgqzjg6Es44Of44Ov44KzDQor44OO44Kw44OBLOOCq+OCuuODnuOCtQ0KK+ODjuOCsOODgSzjgqLjgq3jg6kNCivjgr3jgqbjg5/jg6Qs44Kx44Oz44K4DQor44Kt44Og44OpLOODqOOCpuOCuA0KK+OCq+ODiOOCpizjg4jjg6Ljg6bjgq0NCivjgrnjgrrjgq0s44Kx44Oz44K4DQor44Kq44Kr44OALOODkuODreODnw0KK+ODpOODjizjgrjjg6Xjg7PjgrMNCivjgqrjg47jgrXjg4gs44OP44OzDQor44Oe44OE44OALOODqOOCt+OCouOCrQ0KK+OCreODoOODqSzjgr/jgqvjgrcNCivjgr/jg6Djg6ks44OI44Oi44OO44OqDQor44Kr44OI44KmLOODiOOCt+ODpA0KK+OCpOODjOODnuODqyzjg5Ljg63jgrgNCivjgqrjg47jg4fjg6ks44OK44Kq44KzDQor44K544K644KtLOODgeODj+ODqw0KK+OCv+ODi+OCq+ODryzjg5vjgrrjgqgNCivjgrXjgq/jg54s44K344OeDQor44Kk44Oe44Og44OpLOODq+ODquOCsw0KK+OCqOOCpOODieODoSzjg6bjgq0NCivjg6jjgrfjgqQs44K/44OA44OS44OtDQor44Kq44Kq44K/44KtLOODpuODn+OCsw0KK+OCr+OCueODouODiCzjgqTjgrXjgqoNCivjg5/jg6Tjgrfjgr8s44Om44Kt44KqDQor44Oe44OB44KkLOOCq+OCuuODkuODrQ0KK+ODj+ODpOOCt+ODgCzjgr/jgqvjg4jjgrcNCivjg4/jg6vjg4/jg6ks44K/44Kr44K3DQor44OG44Op44Oi44OILOODpuOCpuOCuOODreOCpg0KK+ODnuODhOODouODqizjgqvjgrrjgqoNCivjg6/jgr/jg4rjg5ks44Kz44Km44K4DQor44Kr44ON44KzLOODpOOCueOCtw0KK+OCquODquOCrOOCtSzjg57jg4Tjg47jg6oNCivjg4Tjgqvjg6Ljg4gs44OS44Ot44Of44OBDQor44Oo44K344OALOODn+ODig0KK+ODi+OCt+ODgCzjg5LjgrXjgqgNCivjg5Xjg6vjgqvjg68s44Oq44KoDQor44Og44Op44Kr44OfLOOCv+OCq+OCqg0KK+OCquOCquODkOODpOOCtyzjgrPjgqbjgq3jg4ENCivjgrXjg4jjgqYs44Kx44Kk44KzDQor44Ok44OeLOODleODn+OCsw0KK+ODn+ODpOOCvyzjgr/jgqvjg4bjg6sKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQ2hpbmVzZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQ2hpbmVzZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkzYTBmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19DaGluZXNlLnR4dApAQCAtMCwwICsxLDEwOTAyIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+iZueWmgg0KK+S4geS4gOizog0KK+S4geW3neWBiQ0KK+S4geW/g+W1kA0KK+S4geW8mOWFiQ0KK+S4geS7u+azlQ0KK+S4geW/l+Wujw0KK+S4geW5uOWnrA0KK+S4geS/iuWkqw0KK+S4geW7uuaWhw0KK+S4geaYoOe0lA0KK+S4gee+v+aWhw0KK+S4geWTsg0KK+S4geWBieawkQ0KK+S4geWci+aihQ0KK+S4gea3keeOsg0KK+S4geeUpuWNlw0KK+S4geavk+W9pQ0KK+S4gembjeWTsg0KK+S4gee2uuaFpw0KK+S4geaFp+W1kA0KK+S4geeSn+alkw0KK+S4geitveeQsw0KK+S4gemLkOmOsA0KK+WNnOato+WAqw0KK+S6juW8i+e/lA0KK+S6juengOe+jg0KK+S6juenieW8mA0KK+S6jua4heiPrw0KK+S6juauv+iBlg0KK+WxseWCkQ0KK+WwueWvuOasow0KK+WwueWxheaJjQ0KK+WwueaMr+WogQ0KK+WwueeRnuixkA0KK+WwueabieaBqQ0KK+S7h+WutueQqg0KK+WtlOWuiOS4rQ0KK+WtlOaZuuadsA0KK+WtlOe5gemclg0KK+WwpOW/g+eRnA0KK+WwpOWQn+aWhw0KK+WwpOiJrw0KK+WwpOaYjuS7sg0KK+WwpOS/iumfvw0KK+WwpOaYn+etlg0KK+WwpOWBieS7lQ0KK+WwpOa3qOe6kw0KK+WwpOasveaogg0KK+WwpOebn+iytA0KK+WwpOWvrOWujw0KK+WwpOmfu+eQhw0KK+WwpOiSlOiQsQ0KK+aWh+W/l+W/oA0KK+aWh+ecn+iKsQ0KK+aWh+WEgOipoA0KK+aWueWjq+mKmA0KK+aWueWkqeS4rQ0KK+aWueaWh+mLkg0KK+aWueawuOa4hQ0KK+aWueaxneiCsg0KK+aWueWtneWQmw0KK+aWueW/l+aYjg0KK+aWueengOaVjw0KK+aWueS9s+S/ig0KK+aWueW5uOWunA0KK+aWueaAoea9lA0KK+aWuemVt+aPmg0KK+aWueS/iumbhA0KK+aWueWlleaWjA0KK+aWueW7uuaZug0KK+aWueW9peeoiw0KK+aWueaYoOiKrA0KK+aWueafj+asvQ0KK+aWueeni+mMpg0KK+aWueiLpeePig0KK+aWuemHjeWHsQ0KK+aWueaZieW+tw0KK+aWueWBpeWJmw0KK+aWueW9qeWunA0KK+aWuea3keiKrA0KK+aWuea3keWEkg0KK+aWueWHseeOsg0KK+aWueaZr+W8mA0KK+aWueetluawkQ0KK+aWuembheeQqg0KK+aWueaEm+ePjQ0KK+aWueeRnumBoA0KK+aWueijleasvQ0KK+aWueWYieiIiA0KK+aWuee/oOm0uw0KK+aWueaFp+eQtA0KK+aWuemdnOWunA0KK+aWueeTiuWEgA0KK+aWuem6l+mbhQ0KK+aWuemQmOmLkg0KK+aWueiPgOiQjQ0KK+avm+aWh+WLhw0KK+avm+S9qeWonw0KK+avm+W9peWWrA0KK+avm+a3keiKrA0KK+avm+a8ouaihQ0KK+awtOelpeiLkw0KK+eJm+iytOizog0KK+eOi+S4gOePjQ0KK+eOi+S5g+S/kA0KK+eOi+WKm+W5sw0KK+eOi+S4iue2rQ0KK+eOi+Wjq+W/oA0KK+eOi+Wjq+amrg0KK+eOi+Wjq+ixqg0KK+eOi+Wkp+aYjA0KK+eOi+WtkOaIkA0KK+eOi+WtkOiLsQ0KK+eOi+WtkOeGmQ0KK+eOi+Wwj+iKrA0KK+eOi+S4reW5sw0KK+eOi+S4reaGkw0KK+eOi+WwueiBlg0KK+eOi+S7geWQmw0KK+eOi+S7geWulw0KK+eOi+S7geiInA0KK+eOi+WFg+WKqQ0KK+eOi+WFg+iIiA0KK+eOi+WPi+W/lw0KK+eOi+WkqeaWhw0KK+eOi+WwkeaWhw0KK+eOi+W/g+W/oA0KK+eOi+W/g+aAoQ0KK+eOi+W/g+aZug0KK+eOi+aWh+W5sw0KK+eOi+aWh+WQmw0KK+eOi+aWh+W/lw0KK+eOi+aWh+adsA0KK+eOi+aWh+mDgQ0KK+eOi+aWh+eQqg0KK+eOi+aWh+eRpA0KK+eOi+aWh+m0uw0KK+eOi+aWueaAoQ0KK+eOi+aciOWptw0KK+eOi+S4luWuhw0KK+eOi+S4luaYjg0KK+eOi+S4luWCkQ0KK+eOi+S4luW7ow0KK+eOi+S4lemKkw0KK+eOi+WPr+asow0KK+eOi+W3p+eRqQ0KK+eOi+W8mOavhQ0KK+eOi+ato+WogQ0KK+eOi+ato+mBlA0KK+eOi+awuOS7gQ0KK+eOi+awuOaYhw0KK+eOi+awuOiqoA0KK+eOi+eOieaWhw0KK+eOi+eOieePoA0KK+eOi+eOiembsg0KK+eOi+eUn+WLsw0KK+eOi+eri+aihQ0KK+eOi+eri+eRiw0KK+eOi+S7sueQpg0KK+eOi+WFiem6gw0KK+eOi+WQieS9sw0KK+eOi+WmgueOiQ0KK+eOi+Wuh+a4hQ0KK+eOi+WuieWHsQ0KK+eOi+aXreWFqA0KK+eOi+acieasig0KK+eOi+iHquW8tw0KK+eOi+S9kOi8lA0KK+eOi+S8r+mAuA0KK+eOi+WIqeeUnw0KK+eOi+WQm+eRng0KK+eOi+Wmmee0hQ0KK+eOi+WtneWQmw0KK+eOi+Wuj+S7gQ0KK+eOi+Wuj+WTsg0KK+eOi+Wuj+WYiQ0KK+eOi+W6j+e2uA0KK+eOi+W/l+S7gQ0KK+eOi+W/l+aWhw0KK+eOi+W/l+W8mA0KK+eOi+W/l+WRiA0KK+eOi+W/l+W/oA0KK+eOi+W/l+WzsA0KK+eOi+W/l+WBiQ0KK+eOi+W/l+a4hQ0KK+eOi+W/l+asvQ0KK+eOi+W/l+iqoA0KK+eOi+W/l+ixqg0KK+eOi+W/l+mKmA0KK+eOi+adj+Wmgg0KK+eOi+engOS6kQ0KK+eOi+engOiKrA0KK+eOi+engOePoA0KK+eOi+engOmbrw0KK+eOi+engOakvw0KK+eOi+iCsuW+tw0KK+eOi+iwt+elng0KK+eOi+S6nuW/lw0KK+eOi+S+nemfuw0KK+eOi+S9s+ePjQ0KK+eOi+S9s+eQqg0KK+eOi+S9qQ0KK+eOi+S9qemfsw0KK+eOi+S9qeipqQ0KK+eOi+WdpOizog0KK+eOi+Wtn+ismQ0KK+eOi+Wul+ajiw0KK+eOi+WunOW9pQ0KK+eOi+WyoemZtQ0KK+eOi+W/teaFiA0KK+eOi+aAoeS7gQ0KK+eOi+aAoeaWhw0KK+eOi+aAoeaWuQ0KK+eOi+aAoeePjQ0KK+eOi+aAoea4hQ0KK+eOi+aAoeWptw0KK+eOi+aAoeaZtA0KK+eOi+aAoembhQ0KK+eOi+aAoeiYiw0KK+eOi+aJv+iInA0KK+eOi+aYjuS7gQ0KK+eOi+aYjuePig0KK+eOi+aYjuWvjA0KK+eOi+aYgOePqQ0KK+eOi+aso+S5iw0KK+eOi+aso+aFpw0KK+eOi+azk+e/lA0KK+eOi+ayu+mCpg0KK+eOi+eOq+aoug0KK+eOi+iKs+aFpw0KK+eOi+mCtemDgQ0KK+eOi+mHkeiPrw0KK+eOi+mbqOa5mA0KK+eOi+S6remIng0KK+eOi+S/oeS7gQ0KK+eOi+S/oeazsA0KK+eOi+S/oeWvjA0KK+eOi+S/oeijlQ0KK+eOi+S/iuS7gQ0KK+eOi+S/iueriw0KK+eOi+S/iuW9pQ0KK+eOi+S/iua4hQ0KK+eOi+S/iuWCkQ0KK+eOi+S/iuWHsQ0KK+eOi+S/iuWHsQ0KK+eOi+S/iuWvjA0KK+eOi+S/iuasvQ0KK+eOi+S/iui2hQ0KK+eOi+S/iumBkw0KK+eOi+S/ium+jQ0KK+eOi+S/nuaWhw0KK+eOi+WGoOWAqw0KK+eOi+WGoOeEtg0KK+eOi+WJh+WLnQ0KK+eOi+WLgeWHjA0KK+eOi+WTgea3hw0KK+eOi+WlleWQmw0KK+eOi+WllemIng0KK+eOi+Wnv+S7ig0KK+eOi+Wnv+iQjQ0KK+eOi+WogeiDvQ0KK+eOi+Wuo+WNvw0KK+eOi+W7uuWxsQ0KK+eOi+W7uuaWhw0KK+eOi+W7uuaUvw0KK+eOi+W7uuWHsQ0KK+eOi+W7uuasvQ0KK+eOi+W7uumbhA0KK+eOi+W7uuaWjA0KK+eOi+W9peiDvQ0KK+eOi+W9peaZug0KK+eOi+W+i+S5iw0KK+eOi+aAneaNtw0KK+eOi+aAnea9lA0KK+eOi+aUv+ayuw0KK+eOi+aUv+asig0KK+eOi+aYreS6ug0KK+eOi+aYrea3kQ0KK+eOi+aYreaHvw0KK+eOi+aYn+eakw0KK+eOi+aYseWHsQ0KK+eOi+aYseiYiw0KK+eOi+afj+asow0KK+eOi+afj+Wgrw0KK+eOi+afj+mIng0KK+eOi+a0vui7kg0KK+eOi+eCuuiSqA0KK+eOi+eOsuiLsQ0KK+eOi+ebiOW/gw0KK+eOi+ebiOWCkQ0KK+eOi+ebiOmbhQ0KK+eOi+eliOmIng0KK+eOi+eni+aDoA0KK+eOi+e0gA0KK+eOi+e+jueOiQ0KK+eOi+e+jueOsg0KK+eOi+e+jua3kQ0KK+eOi+e+juaDoA0KK+eOi+e+jumbrw0KK+eOi+e+juaHvw0KK+eOi+iHtOajoA0KK+eOi+iLpeetkQ0KK+eOi+iLseaWhw0KK+eOi+iLseiTiQ0KK+eOi+ihjeaYkw0KK+eOi+iynuaHvw0KK+eOi+mDgeasow0KK+eOi+mDgeWptw0KK+eOi+mDgeiPgQ0KK+eOi+mDgeePug0KK+eOi+mfi+e/lA0KK+eOi+S/ruiYrQ0KK+eOi+WTsuiBsA0KK+eOi+WutuWBiQ0KK+eOi+WutueRnA0KK+eOi+WxleeRiw0KK+eOi+aCheWmgg0KK+eOi+aMr+Wuhw0KK+eOi+aMr+a1qQ0KK+eOi+aZguiUmg0KK+eOi+ahguWykQ0KK+eOi+a1t+WkqQ0KK+eOi+a1qeWAqw0KK+eOi+ePruWAqw0KK+eOi+ePrueShw0KK+eOi+e0oOWNvw0KK+eOi+e0lOe+jg0KK+eOi+iMuemmqA0KK+eOi+WBieawkQ0KK+eOi+WBieW3ng0KK+eOi+WBiei7jQ0KK+eOi+WBieW+tw0KK+eOi+WBpeawkQ0KK+eOi+WBpeWLsw0KK+eOi+Wciw0KK+eOi+Wci+W9pQ0KK+eOi+Wci+mahg0KK+eOi+Wci+m+jQ0KK+eOi+Wft+S/oQ0KK+eOi+Wfueaoug0KK+eOi+WpieeRnA0KK+eOi+W0h+aYjg0KK+eOi+W0kem+jQ0KK+eOi+W9qemcng0KK+eOi+aDh+aFpw0KK+eOi+WVn+Wulw0KK+eOi+WVn+aotQ0KK+eOi+aVj+iyng0KK+eOi+aVj+mKkw0KK+eOi+aZqOabhA0KK+eOi+aiheiYrQ0KK+eOi+a3s+aFpw0KK+eOi+a4hem0uw0KK+eOi+a3keaAoQ0KK+eOi+a3keWGoA0KK+eOi+a3keeciQ0KK+eOi+a3keWonw0KK+eOi+a3keWqmw0KK+eOi+a3kembrw0KK+eOi+a3keaFpw0KK+eOi+a3kemfuw0KK+eOi+a3qOeRqQ0KK+eOi+elpeWuhw0KK+eOi+elpemclg0KK+eOi+e0ueecnw0KK+eOi+iOieaxtg0KK+eOi+iOiembrw0KK+eOi+mbquWmgg0KK+eOi+WCkeeriw0KK+eOi+WHseW8mA0KK+eOi+WHseaAoQ0KK+eOi+WHseiSgg0KK+eOi+WLneW8mA0KK+eOi+WLnembhA0KK+eOi+WNmuaWhw0KK+eOi+WNmuS/rg0KK+eOi+Wgr+W8mA0KK+eOi+Wpt+WEgA0KK+eOi+WvjOaYjA0KK+eOi+W+qei8nQ0KK+eOi+aDoOWQmw0KK+eOi+aDoOeOsg0KK+eOi+aDoOaVjw0KK+eOi+aDoOaFpw0KK+eOi+aVpuatow0KK+eOi+aZtOWnvw0KK+eOi+aZr+WFgw0KK+eOi+aZr+aziQ0KK+eOi+aZuuW8mA0KK+eOi+aZuueriw0KK+eOi+aZuuebig0KK+eOi+aZuumztA0KK+eOi+aZuum+jQ0KK+eOi+acneawuA0KK+eOi+acnemNtQ0KK+eOi+asveW4nQ0KK+eOi+a5mOmbsg0KK+eOi+eQqg0KK+eOi+eQpuaemg0KK+eOi+eak+atow0KK+eOi+e0q+mbrw0KK+eOi+e/lOWvpw0KK+eOi+iIkueRnA0KK+eOi+iInOeUnw0KK+eOi+iPgeiYrQ0KK+eOi+ipoOaFpw0KK+eOi+iytOm+jQ0KK+eOi+mAuOS/rg0KK+eOi+mAsum0uw0KK+eOi+mWlOmfiw0KK+eOi+mbheS8tg0KK+eOi+mbheWnvw0KK+eOi+mbheiyng0KK+eOi+mbheaDoA0KK+eOi+mbhembrw0KK+eOi+mbheWEgA0KK+eOi+mbheaFpw0KK+eOi+mbrw0KK+eOi+mbsueUnw0KK+eOi+mghum0uw0KK+eOi+WLpOWWhA0KK+eOi+aEj+aDoA0KK+eOi+aFiOaFtg0KK+eOi+aEm+WYiQ0KK+eOi+aVrOe/lA0KK+eOi+aWsOaFpw0KK+eOi+amhuWvjA0KK+eOi+avk+iPgQ0KK+eOi+avk+eFhw0KK+eOi+eFp+iIiA0KK+eOi+eRnuWQnw0KK+eOi+eRnueDvQ0KK+eOi+eRnumbsg0KK+eOi+eRnumgpA0KK+eOi+eRnuiWjA0KK+eOi+ebn+S7gQ0KK+eOi+eonOmIng0KK+eOi+iBlg0KK+eOi+iBluWwpA0KK+eOi+iBlua3sw0KK+eOi+iBluajiw0KK+eOi+iBlue2rQ0KK+eOi+iBlueRiw0KK+eOi+ijleatow0KK+eOi+ijleaZug0KK+eOi+ipqemDgQ0KK+eOi+ipqeWptw0KK+eOi+ipqembhQ0KK+eOi+ipqemmqA0KK+eOi+mBk+S7gQ0KK+eOi+mJhee/lA0KK+eOi+mdlumbrw0KK+eOi+m8juWFgQ0KK+eOi+WYieWQmw0KK+eOi+WYiemDgQ0KK+eOi+WYieeQqg0KK+eOi+WYiei+sg0KK+eOi+WYieaFpw0KK+eOi+WYieiIiA0KK+eOi+WYiem9oQ0KK+eOi+W9sOaHiw0KK+eOi+amrueZvA0KK+eOi+a8ouelpQ0KK+eOi+edv+WQmw0KK+eOi+eiqeaFtg0KK+eOi+emj+elpQ0KK+eOi+e2reWmgg0KK+eOi+e2rembrw0KK+eOi+e2reeHpg0KK+eOi+e/oOiPrw0KK+eOi+iSvOm+jQ0KK+eOi+ixquWCkQ0KK+eOi+mKmOaihQ0KK+eOi+mKmOm0uw0KK+eOi+mzs+WunA0KK+eOi+WEgOepjg0KK+eOi+W+t+eakw0KK+eOi+aFtuWggg0KK+eOi+aFp+WQmw0KK+eOi+aFp+iLsQ0KK+eOi+aFp+WHsQ0KK+eOi+aFp+mbrw0KK+eOi+aFp+mdnA0KK+eOi+aomeasvQ0KK+eOi+eRvueRnA0KK+eOi+i8nemKmA0KK+eOi+WEkumahg0KK+eOi+aGsuebnw0KK+eOi+abiemfsw0KK+eOi+abiembrw0KK+eOi+abieeRiw0KK+eOi+eHleW8tw0KK+eOi+iIiOmCpg0KK+eOi+iVmeWuuQ0KK+eOi+mMq+elvw0KK+eOi+mMpuaFpw0KK+eOi+mdnOaAoQ0KK+eOi+mdnOeQqg0KK+eOi+mdnOaFpw0KK+eOi+eIteaakA0KK+eOi+iHhumItA0KK+eOi+iWh+Wqmw0KK+eOi+ismee2rQ0KK+eOi+m0u+W/lw0KK+eOi+m0u+mIng0KK+eOi+emruismQ0KK+eOi+WvteaDoA0KK+eOi+eAmuWfug0KK+eOi+eTiuePrg0KK+eOi+eTiueRpA0KK+eOi+e5quW1kA0KK+eOi+itiembhA0KK+eOi+mfu+a3kQ0KK+eOi+m1rA0KK+eOi+m6kumIng0KK+eOi+m6l+iKrA0KK+eOi+m6l+a3kQ0KK+eOi+m6l+eQpg0KK+eOi+m6l+mbrw0KK+eOi+m6k+aWrw0KK+eOi+Wvtum+jQ0KK+eOi+e5vOWgrw0KK+eOi+iAgOaaiQ0KK+eOi+iAgOaFtg0KK+eOi+iAgOmQuA0KK+eOi+mQmOmKmA0KK+eOi+mmqOaVjw0KK+eOi+mmqOiLuQ0KK+eOi+m9oeaikw0KK+eOi+WEt+epjg0KK+eOi+aru+Wonw0KK+eOi+i6jemclg0KK+eOi+mhr+WNiQ0KK+eOi+iKiumbrw0KK+eOi+Wntembrw0KK+eOi+a1n+e+jg0KK+eOi+eQh+Wnvw0KK+eOi+e/iuieog0KK+eOi+ajqOW+tw0KK+eOi+eQrueRiw0KK+eOi+eQoembrw0KK+eOi+Wrhuajuw0KK+eOi+eRi+mItA0KK+eOi+etseWptw0KK+eOi+etseiQsQ0KK+eOi+mIuuasow0KK+eOi+mIuuakjQ0KK+eOi+iTgeWEgA0KK+eOi+iWj+mbrw0KK+eOi+Wsv+a3kQ0KK+S4lua9k+mdnA0KK+S4mOecn+e2ug0KK+WGieWFhuePjQ0KK+WMheW/l+aWhw0KK+WMheWurue2rQ0KK+WPpOS4gOecnw0KK+WPpOaciOWopQ0KK+WPpOeOiemzsw0KK+WPpOengOmItA0KK+WPpOS9qeeOiQ0KK+WPpOaJv+W8mA0KK+WPpOaYjuaZnw0KK+WPpOS/iue2sQ0KK+WPpOiLseWxsQ0KK+WPpOahguiPig0KK+WPpOaDn+mKmA0KK+WPpOiOiemcnA0KK+WPpOaZuuWBiQ0KK+WPpOmbsuS7gQ0KK+WPpOipqeWEgA0KK+WPpOWtuOa2tQ0KK+WPpOS/tue2ug0KK+WPuOmghuWuiQ0KK+WPsuWFiOm0uw0KK+WPsuaYjuWOnw0KK+WPsuWci+emjw0KK+WPsuiBlum0uw0KK+WPsuabnOW9sA0KK+W3puWul+WFgw0KK+W3puiTjA0KK+eUmOawuOijlQ0KK+eUmOWtn+m+jQ0KK+eUmOaUv+W8mA0KK+eUmOaDoOiPrw0KK+eUmOmciOmclg0KK+eUsOS4luizog0KK+eUsOWFhueQqg0KK+eUsOaykOaBqQ0KK+eUsOS9qeeBnQ0KK+eUsOaAoQ0KK+eUsOiKs+iMuQ0KK+eUsOiLseW/lw0KK+eUsOePruS/gw0KK+eUsOa3keWQmw0KK+eUsOasveaWhw0KK+eUsOWYieeOsg0KK+eUsOabiemIng0KK+eUsOeSp+iPgA0KK+eUs+W/l+aWjA0KK+eUs+WvjOmRqw0KK+eZveWkp+WwuQ0KK+eZveWFqOaIkA0KK+eZveWykeaAoQ0KK+eZveS9s+a4nQ0KK+eZveWunOmMmg0KK+eZveaso+advg0KK+eZveeOsuaFiA0KK+eZveaMr+a6kA0KK+eZveiAv+ihjA0KK+eZvea3keeRnA0KK+eZveWWnOaWhw0KK+eZveiInOWFgw0KK+eZveeFjOm6kg0KK+eZveamruS/rg0KK+eZvemdnOWmgg0KK+eZvem6l+WonA0KK+efs+S5g+Wmgg0KK+efs+S4luWQjQ0KK+efs+eOiemzsw0KK+efs+aXreeUnw0KK+efs+iCsueOnw0KK+efs+S9s+iTiQ0KK+efs+Wul+S7gQ0KK+efs+aYjuWRqA0KK+efs+iKs+ePig0KK+efs+e+jueOsg0KK+efs+Wzu+W5sw0KK+efs+e0lOe2ug0KK+efs+W9qeaFpw0KK+efs+WCkeWuhw0KK+efs+acneWuiQ0KK+efs+mbheaDoA0KK+efs+aFtuWSjA0KK+efs+mMpuiIqg0KK+efs+mmpeeRhA0KK+efs+eRi+mdnA0KK+S8jeS4luaPmg0KK+S8jeengOiTiQ0KK+S8jeW7uuaWhw0KK+S8jeWutuiqvA0KK+S8jeWBpem1rA0KK+S8jeeip+eOsg0KK+S7u+aJjeS/ig0KK+S7u+WQm+aVjw0KK+S7u+S/iuWEkg0KK+S7u+e0lOaFpw0KK+S7u+aWsOiYrQ0KK+S7u+etsea4hQ0KK+WNseaYjuW6tw0KK+WQkeilv+mZvQ0KK+WQkeW+t+WuuQ0KK+WuieW/l+WBiQ0KK+aIkOS4ueeOsg0KK+absuaYjOmahg0KK+acseS5meecnw0KK+acseW/g+aAoQ0KK+acseaWh+eipw0KK+acseS4lumIng0KK+acseato+aWhw0KK+acseeOieaxtg0KK+acseS6puS4uQ0KK+acseeZvuaZnw0KK+acseWmjeWmgg0KK+acseW4jOaMrw0KK+acseW/l+a0iw0KK+acseaym+aAoQ0KK+acseiCsuS9kQ0KK+acseiCsueRqQ0KK+acseS9s+eQqg0KK+acseWul+iUmg0KK+acseW/teiLsQ0KK+acseaAoeiHuw0KK+acseadseaHiQ0KK+acseenieaFpw0KK+acsemCseaYjg0KK+acseS/iuelpQ0KK+acseS/ium+jQ0KK+acseWljuW3ng0KK+acseW7uuazsA0KK+acseW9peWEkg0KK+acseaUv+WTsg0KK+acseafj+iSvA0KK+acseePjeaFpw0KK+acseeni+aFpw0KK+acseiLpeaihQ0KK+acsemDgeW6rQ0KK+acseWOn+Wujw0KK+acseWutuatow0KK+acseWutuasow0KK+acseWutuaFpw0KK+acseWuuee3tA0KK+acseWzsOiqvA0KK+acseaZguW9pQ0KK+acseabuOizog0KK+acseaut+W7tw0KK+acseePruWEgA0KK+acseelkOWRiA0KK+acsee0lOeRqQ0KK+acseWBieWCkQ0KK+acseWBpeiqoA0KK+acseWfueiQsQ0KK+acseW6t+mKmA0KK+acseaVj+mBkw0KK+acsea3keaDoA0KK+acsemZs+WVn+a6kA0KK+acseWvk+eQhg0KK+acseacnem6nw0KK+acseipoOiBrw0KK+acsembhemItA0KK+acseWXo+iKrA0KK+acseeRnuWLhw0KK+acsemBlOaYjg0KK+acseamruWujw0KK+acseemj+WxsQ0KK+acsemzs+iWhw0KK+acseaFp+ecnw0KK+acsei8neiAgA0KK+acseabieaZtA0KK+acsemdnOaWhw0KK+acseeSv+WwuQ0KK+acsem6l+Wptw0KK+acseiKruWunA0KK+acseeQrOiTgQ0KK+asoeiYreiLsQ0KK+axn+S4reWBpQ0KK+axn+WkqeaOiA0KK+axn+aWh+advg0KK+axn+aWh+eTig0KK+axn+S4luiPrw0KK+axn+ato+WCkQ0KK+axn+eOieWNiQ0KK+axn+eri+WzsA0KK+axn+WQieelpQ0KK+axn+aIkOaWjA0KK+axn+WRiOmZvQ0KK+axn+W/l+Wujw0KK+axn+W/l+mahg0KK+axn+engOeOsg0KK+axn+iCsumchg0KK+axn+S9s+iKsw0KK+axn+S9s+e0lA0KK+axn+S9s+mclg0KK+axn+S9qeeOsg0KK+axn+S9qee4iA0KK+axn+WNlOWLhw0KK+axn+Wtn+iKnQ0KK+axn+Wtn+a+pA0KK+axn+Wul+WTsg0KK+axn+WunOiKsw0KK+axn+WunOaoug0KK+axn+WyqemBlA0KK+axn+W/oOmBoA0KK+axn+aAoeiQsQ0KK+axn+aAoeemmw0KK+axn+aYjOm0uw0KK+axn+aYjuadvg0KK+axn+aYjuabuA0KK+axn+aYjueSiw0KK+axn+aYjuiXnQ0KK+axn+adseaHiw0KK+axn+aso+WuuQ0KK+axn+eOqeiQqQ0KK+axn+iKneaVjw0KK+axn+mVt+WjvQ0KK+axn+S/oeadsQ0KK+axn+S/iuaYjg0KK+axn+S/iuWEhA0KK+axn+S/iuiIiA0KK+axn+WTgeWEgA0KK+axn+WogeW+tw0KK+axn+W7uumKmA0KK+axn+W9pei8nQ0KK+axn+aBrA0KK+axn+aUv+WEkg0KK+axn+aYreizog0KK+axn+afj+iRpg0KK+axn+eOsuaFpw0KK+axn+e0gOaYjg0KK+axn+e+juaFpw0KK+axn+iLseS/oQ0KK+axn+ihjem+jQ0KK+axn+miqOmBoA0KK+axn+WutumKmA0KK+axn+aMr+Wuhw0KK+axn+abuOeRqQ0KK+axn+ePruWumQ0KK+axn+e0lOeOqw0KK+axn+WBpeaIkA0KK+axn+Wci+aFtg0KK+axn+WvheeUqw0KK+axn+WVn+S7sg0KK+axn+aineWdhw0KK+axn+a3keiyng0KK+axn+ebm+m+jQ0KK+axn+WHsea9lA0KK+axn+aDoOiPrw0KK+axn+aZuue2rQ0KK+axn+mAuOWuiQ0KK+axn+mbheaWhw0KK+axn+mbheaDoA0KK+axn+WCs+axnw0KK+axn+eRnuelpQ0KK+axn+ijleWciw0KK+axn+WYieWAqw0KK+axn+amlearuw0KK+axn+e/oOiKsw0KK+axn+WvrOaFiA0KK+axn+aFp+iKsw0KK+axn+aFleWxjw0KK+axn+aGtumbrw0KK+axn+epjuaYjg0KK+axn+mMpui8nQ0KK+axn+iVvg0KK+axn+ixkOiJrw0KK+axn+m6l+Wonw0KK+axn+WKreWAqw0KK+axn+Wqng0KK+axn+aqieeahw0KK+axoOazsOWujw0KK+eJn+aYlQ0KK+iJvumdkuiTiQ0KK+S9leWkp+aWsA0KK+S9leS7geeUsA0KK+S9leWkqeaBqQ0KK+S9leaWh+aWhw0KK+S9leaWh+iQsQ0KK+S9leS4lumbhA0KK+S9leawuOeQsw0KK+S9leeOiea9lA0KK+S9leS6meW9rA0KK+S9leWFiearug0KK+S9leaXreW5sw0KK+S9leWQm+iQjQ0KK+S9leW/l+a1qQ0KK+S9leaym+eGmQ0KK+S9leiCsuadsA0KK+S9leS6q+iTiQ0KK+S9leS9s+WNlw0KK+S9leS9s+ecnw0KK+S9leS9s+iejQ0KK+S9leS9qeiKnQ0KK+S9leS9qee0lA0KK+S9leWFtua+pA0KK+S9leWnjeiTiQ0KK+S9leWtn+izog0KK+S9leWto+enpg0KK+S9leWul+W9rA0KK+S9leWul+eGuQ0KK+S9leWul+empw0KK+S9leWunOWAqQ0KK+S9leWunOeShw0KK+S9leWys+ePiA0KK+S9leaAoeWQmw0KK+S9leaJv+S7sg0KK+S9leaYk+WxlQ0KK+S9leaYjuWulw0KK+S9leaYjuabuA0KK+S9leaYjuepjg0KK+S9leaYh+WEkg0KK+S9leadvueRpA0KK+S9leaso+i7kg0KK+S9leenieasow0KK+S9leiKt+eRhA0KK+S9lembqOmbrw0KK+S9leS/oeWulw0KK+S9leS/iuW7tw0KK+S9leS/iumBlA0KK+S9leS/iuizog0KK+S9leWGoOmclg0KK+S9leWogeW+tw0KK+S9leW7uuaogg0KK+S9leW9pemnkg0KK+S9leaAneepjg0KK+S9leaUv+e/sA0KK+S9leaYreizog0KK+S9leeCs+izog0KK+S9leeni+iQsQ0KK+S9lee+jueOsg0KK+S9leiLpeeRnA0KK+S9lemmmeiRiQ0KK+S9leWutuiPgQ0KK+S9leWzu+adsA0KK+S9leaMr+e2rQ0KK+S9lea1mumKmA0KK+S9lee0oOWQmw0KK+S9leWBpee2rQ0KK+S9leWci+aZnw0KK+S9leW0h+e2rQ0KK+S9leaVj+iPgQ0KK+S9lea4hem+jQ0KK+S9lea3keWptw0KK+S9lea2tQ0KK+S9leWLneWQiA0KK+S9leaDoOWQmw0KK+S9leaDoOmIug0KK+S9leiIkuW1kA0KK+S9lemAuOeEtg0KK+S9lembheeQqg0KK+S9leaEj+eRqQ0KK+S9leeRnue+jg0KK+S9leiQseeShw0KK+S9leWYieWxlQ0KK+S9leamruaWhw0KK+S9lee2reiAlQ0KK+S9lemKmOWujw0KK+S9leaFtuiIiA0KK+S9leaFp+WEgA0KK+S9leWtuOWOmg0KK+S9leabieebiA0KK+S9leeHleWxjw0KK+S9lemMpumhjA0KK+S9lemdnOWEgA0KK+S9lee5lA0KK+S9lem6l+WQmw0KK+S9leaXu+mcnA0KK+S9lee/iue2ug0KK+S9meWtkOmKmA0KK+S9meW/g+i+sg0KK+S9meaWh+ijlQ0KK+S9meW8mOWBiQ0KK+S9meWQieelpQ0KK+S9meS8tg0KK+S9meW/l+m+jQ0KK+S9mei/hQ0KK+S9meS9s+mfsw0KK+S9meS9s+iIiA0KK+S9meS9qeWonw0KK+S9meWdquiKsw0KK+S9meWtn+mcjw0KK+S9meWul+WEkg0KK+S9meWum+WEkg0KK+S9meW/oOeHiA0KK+S9meaYjOe/sA0KK+S9meaYjuWonw0KK+S9meaYjua+pA0KK+S9meadseabiQ0KK+S9meazleaYjA0KK+S9memHkeWFuA0KK+S9meS/oeWBiQ0KK+S9meS/iua3tQ0KK+S9meS/iuWEkg0KK+S9meWLgeavhQ0KK+S9meW4neaFtg0KK+S9meW9pemclg0KK+S9meaUv+mahg0KK+S9meaYn+aflA0KK+S9meebiOmLkg0KK+S9meiLpeW4hg0KK+S9meWHjOaYjA0KK+S9meWutueRqQ0KK+S9meazsOeUtw0KK+S9mee0oOiYrQ0KK+S9meWci+WuiQ0KK+S9meWpieiQjQ0KK+S9meaZqOiPrw0KK+S9meebm+asvQ0KK+S9meaDoOaWhw0KK+S9meaZuuWCkQ0KK+S9membhea3kQ0KK+S9meaFiOWutA0KK+S9meeRnuiQjQ0KK+S9meWYieWzsA0KK+S9meemj+a1qQ0KK+S9mem9iuWogQ0KK+S9meaGsuWulw0KK+S9meirpw0KK+S9meisnei8nQ0KK+S9mem6l+eQtA0KK+S9meeQrOeRnA0KK+WIqeengOiYrQ0KK+WIqeW+t+e1gw0KK+WQs+S5g+WFgw0KK+WQs+WNg+aFpw0KK+WQs+Wkp+e2rQ0KK+WQs+WtkOixqg0KK+WQs+S4reWujw0KK+WQs+S7geS9kQ0KK+WQs+S7geiytA0KK+WQs+WFg+W5sw0KK+WQs+WFg+WriA0KK+WQs+WwkemIng0KK+WQs+W/g+aDoA0KK+WQs+aWh+eOiQ0KK+WQs+aWh+aAoQ0KK+WQs+aWh+ebig0KK+WQs+aWh+WCkQ0KK+WQs+aWh+eZvA0KK+WQs+aWh+mItA0KK+WQs+aWh+avhQ0KK+WQs+aWh+aWjA0KK+WQs+eBq+WxsQ0KK+WQs+S4luWBiQ0KK+WQs+S4lumBlA0KK+WQs+S7leW8tw0KK+WQs+S7n+S4gA0KK+WQs+W5s+WSjA0KK+WQs+W/heWLnQ0KK+WQs+ato+Wlhw0KK+WQs+ato+iPrw0KK+WQs+awuOaYjA0KK+WQs+awuOijlQ0KK+WQs+eOieWQnw0KK+WQs+eOieiMuQ0KK+WQs+eOieaZrw0KK+WQs+eOieiTiQ0KK+WQs+eri+awkQ0KK+WQs+eri+WLpA0KK+WQs+S8iuiYiw0KK+WQs+S7suazgg0KK+WQs+WFhuaWhw0KK+WQs+WQiem+jQ0KK+WQs+Wmgualpg0KK+WQs+WuiemCpg0KK+WQs+aXreazsA0KK+WQs+iHs+S7gQ0KK+WQs+ihjOS4rQ0KK+WQs+S8tum6lw0KK+WQs+WQm+iCsg0KK+WQs+WmmeWAqw0KK+WQs+Wuj+S7gQ0KK+WQs+Wuj+Wfug0KK+WQs+W4jOellg0KK+WQs+W/l+Wujw0KK+WQs+W/l+aBhg0KK+WQs+W/l+WBiQ0KK+WQs+W/l+a8og0KK+WQs+W/l+m+jQ0KK+WQs+adj+aXiw0KK+WQs+aym+aZgw0KK+WQs+axtuaxtg0KK+WQs+engOeOsg0KK+WQs+engOe0iw0KK+WQs+engOm1kQ0KK+WQs+iCsuWulw0KK+WQs+iCsueiqQ0KK+WQs+iCsumclg0KK+WQs+S6nuasow0KK+WQs+S+neWmrg0KK+WQs+S+neiTkw0KK+WQs+S9s+WSjA0KK+WQs+S9s+iKsw0KK+WQs+S9s+WNlw0KK+WQs+S9s+eOsg0KK+WQs+S9s+eOsg0KK+WQs+S9s+WAqQ0KK+WQs+S9s+WuuQ0KK+WQs+S9s+ecnw0KK+WQs+S9s+aDoA0KK+WQs+S9s+iTiQ0KK+WQs+S9s+aGrA0KK+WQs+S9s+aoug0KK+WQs+S9s+epjg0KK+WQs+S9s+iVmQ0KK+WQs+S9s+mdnA0KK+WQs+S9s+m0uw0KK+WQs+S9qeWQmw0KK+WQs+S9qeiKsw0KK+WQs+S9qeWfjg0KK+WQs+S9qeePig0KK+WQs+S9qeeOsg0KK+WQs+S9qeWopQ0KK+WQs+S9qee0lA0KK+WQs+S9qeiTiQ0KK+WQs+S9qeWEkg0KK+WQs+S9qeirrQ0KK+WQs+S9qeiTgQ0KK+WQs+S+keW6rQ0KK+WQs+WFtumclg0KK+WQs+WHveiTgQ0KK+WQs+WPlOmOrg0KK+WQs+WdpOelkA0KK+WQs+WdpOm0uw0KK+WQs+Wlh+WTsg0KK+WQs+Wlh+m+jQ0KK+WQs+Wtn+Wulw0KK+WQs+Wtn+iKrA0KK+WQs+Wtn+iyng0KK+WQs+Wtn+Wonw0KK+WQs+Wtn+iMuQ0KK+WQs+Wtn+iTiQ0KK+WQs+Wtn+aGsg0KK+WQs+Wtn+mMqw0KK+WQs+Wtn+iVjg0KK+WQs+Wto+eRvg0KK+WQs+Wul+WysQ0KK+WQs+Wul+eliA0KK+WQs+Wul+ahkw0KK+WQs+Wul+mahg0KK+WQs+Wul+WEkg0KK+WQs+Wul+aGsg0KK+WQs+Wul+e/sA0KK+WQs+Wul+iIiA0KK+WQs+Wul+m+jQ0KK+WQs+WumueWhg0KK+WQs+WunOiKsw0KK+WQs+WunOiyng0KK+WQs+WunOelkA0KK+WQs+WunOephg0KK+WQs+WunOWsqg0KK+WQs+Wum+aAoQ0KK+WQs+Wum+e4iA0KK+WQs+WwmuWAjQ0KK+WQs+WwmuWEkg0KK+WQs+WyoeWEkg0KK+WQs+Wysemclg0KK+WQs+Wys+ahkA0KK+WQs+W5uOaenQ0KK+WQs+W5uOecnw0KK+WQs+W7tuaZgw0KK+WQs+W/oOaUvw0KK+WQs+W/oOmclg0KK+WQs+aAoeWQmw0KK+WQs+aAoeePig0KK+WQs+aAoeiQjQ0KK+WQs+aAoeaFtg0KK+WQs+aAoeeRqQ0KK+WQs+aAoeaGsg0KK+WQs+aAoemdnA0KK+WQs+aAoeWrug0KK+WQs+aJv+WTsg0KK+WQs+aJv+eSiw0KK+WQs+aLmw0KK+WQs+aYk+mBnA0KK+WQs+aYjOW6rQ0KK+WQs+aYhg0KK+WQs+aYhueSiw0KK+WQs+aYjg0KK+WQs+aYjuW/oA0KK+WQs+aYjuiKsw0KK+WQs+aYjuePjQ0KK+WQs+aYjuWTsg0KK+WQs+aYjuaBrQ0KK+WQs+aYjui7kg0KK+WQs+aYjumBlA0KK+WQs+aYjueSiw0KK+WQs+aYjuWLsw0KK+WQs+aYjuabhA0KK+WQs+aYjum+jQ0KK+WQs+aYjumhjw0KK+WQs+aYleWnvw0KK+WQs+aYh+apiw0KK+WQs+adseWSjA0KK+WQs+adseiAvw0KK+WQs+adsemclg0KK+WQs+advuaymw0KK+WQs+aso+S9qQ0KK+WQs+aso+aAoQ0KK+WQs+aso+WAqw0KK+WQs+aso+eiqQ0KK+WQs+aso+WEkg0KK+WQs+aso+m0uw0KK+WQs+azk+eOsw0KK+WQs+ayu+iLsQ0KK+WQs+eOq+WnjQ0KK+WQs+ebtOiAlQ0KK+WQs+enieWAqw0KK+WQs+enieWLsw0KK+WQs+eniemnvw0KK+WQs+iKs+mdkg0KK+WQs+iKs+eRnA0KK+WQs+iKnee3rw0KK+WQs+mHh+iKsw0KK+WQs+mHkeeOiQ0KK+WQs+mHkeabhg0KK+WQs+mVt+afjw0KK+WQs+mbqOWTsg0KK+WQs+mdkuiCsg0KK+WQs+mdkuWzsA0KK+WQs+mdkueSsA0KK+WQs+S6reiqvA0KK+WQs+S/oeW5uA0KK+WQs+S/oeWvrA0KK+WQs+S/oei8nQ0KK+WQs+S+r+eSiw0KK+WQs+S/iuWujw0KK+WQs+S/iuWlhw0KK+WQs+S/iuadsA0KK+WQs+S/iuWCkQ0KK+WQs+S/iumBlA0KK+WQs+S/iuWEgA0KK+WQs+S/iuW+tw0KK+WQs+S/iuavhQ0KK+WQs+S/iue3rw0KK+WQs+S/iuizog0KK+WQs+S/iumLkg0KK+WQs+S/iuirug0KK+WQs+S/iuWPoQ0KK+WQs+S/nueRqQ0KK+WQs+WGoOe+pA0KK+WQs+WGoOizog0KK+WQs+WGoOe/rA0KK+WQs+WLgem+jQ0KK+WQs+WTgeiTiQ0KK+WQs+WlleaIkA0KK+WQs+Wllee+sg0KK+WQs+Wnv+WEgA0KK+WQs+Wnv+aoug0KK+WQs+WogeiKsw0KK+WQs+Wuo+mLkg0KK+WQs+W7uueUnw0KK+WQs+W7uueUtw0KK+WQs+W7uuiKnQ0KK+WQs+W7uumBlA0KK+WQs+W7uuW+tw0KK+WQs+W7uuizog0KK+WQs+W7uuWLsw0KK+WQs+W7uuaXuw0KK+WQs+W9peaFtg0KK+WQs+W+i+mKmA0KK+WQs+aAneiQsQ0KK+WQs+aAneeRqQ0KK+WQs+aAneepjg0KK+WQs+aUvw0KK+WQs+aUv+aXug0KK+WQs+aUv+WOnw0KK+WQs+aUv+W9rA0KK+WQs+aUv+W+tw0KK+WQs+aUv+WLsw0KK+WQs+aUv+epjg0KK+WQs+aUv+mclg0KK+WQs+aYpeeUnw0KK+WQs+aYpee3qQ0KK+WQs+aYreiTiQ0KK+WQs+aYreavhQ0KK+WQs+aYrem+jQ0KK+WQs+aYseWujw0KK+WQs+afhOW+tw0KK+WQs+afj+mdkg0KK+WQs+afj+WEgA0KK+WQs+afj+avhQ0KK+WQs+afj+epjg0KK+WQs+eCq+Wulw0KK+WQs+eCs+W2og0KK+WQs+eOsuWqmw0KK+WQs+eah+asow0KK+WQs+ebiOa9lA0KK+WQs+eliem+jQ0KK+WQs+eni+e+jg0KK+WQs+eni+aFpw0KK+WQs+e0gOWQmw0KK+WQs+e+juWmrg0KK+WQs+e+jueOsg0KK+WQs+e+juaDoA0KK+WQs+e+juemjg0KK+WQs+e+juaFpw0KK+WQs+e+juieog0KK+WQs+e+v+iroA0KK+WQs+iHtOmKmA0KK+WQs+iLpeiPrw0KK+WQs+iLseWujw0KK+WQs+iLsem0uw0KK+WQs+iynuWunA0KK+WQs+iynueRqQ0KK+WQs+mDgeiKsw0KK+WQs+mHjeavhQ0KK+WQs+mjm+m+jQ0KK+WQs+WAqQ0KK+WQs+WOn+Wuhw0KK+WQs+WTsumbrw0KK+WQs+WTsuasig0KK+WQs+WutuaYjg0KK+WQs+WutueQqg0KK+WQs+Wutuamrg0KK+WQs+Wutuixqg0KK+WQs+WutuaFpw0KK+WQs+WuueeRqQ0KK+WQs+W6reeNhA0KK+WQs+aMr+aIkA0KK+WQs+aMr+ixqg0KK+WQs+aMuumLkg0KK+WQs+aZj+W5sw0KK+WQs+abuOamrg0KK+WQs+ahgueukA0KK+WQs+azsOaYjA0KK+WQs+a1t+iKrA0KK+WQs+ePruWQmw0KK+WQs+ePruaFiA0KK+WQs+ePruemjg0KK+WQs+ebiuiKsw0KK+WQs+e0oOiKrA0KK+WQs+e0lOasow0KK+WQs+i7kui7kg0KK+WQs+WBieWAqw0KK+WQs+WBieiqoA0KK+WQs+WBpeawkQ0KK+WQs+WBpemRqw0KK+WQs+Wci+WBiQ0KK+WQs+Wci+eNhQ0KK+WQs+Wci+eGmQ0KK+WQs+Wci+mKmA0KK+WQs+WgheeRiw0KK+WQs+Wfueizog0KK+WQs+WpieWptw0KK+WQs+Wpieathg0KK+WQs+W0h+mKmA0KK+WQs+W9qemCkQ0KK+WQs+aCoA0KK+WQs+WVn+aPmg0KK+WQs+WVn+aWjA0KK+WQs+aVj+ecnw0KK+WQs+aVj+mJhQ0KK+WQs+aik+mAog0KK+WQs+a3u+mLkg0KK+WQs+a3keWmgg0KK+WQs+a3keiKrA0KK+WQs+a3keWNvw0KK+WQs+a3keaVjw0KK+WQs+a3keiPrw0KK+WQs+a3kemzsw0KK+WQs+a2teWunA0KK+WQs+elpee2rQ0KK+WQs+e0ueiPrw0KK+WQs+iOieWptw0KK+WQs+mbquWmrg0KK+WQs+ern+iKsw0KK+WQs+WHsembrw0KK+WQs+WLneelug0KK+WQs+WWrOajrg0KK+WQs+W+qeiIiA0KK+WQs+aDoOWQmw0KK+WQs+aDoOW9qQ0KK+WQs+aDoOmbrw0KK+WQs+aWr+eHuw0KK+WQs+aZuuadsQ0KK+WQs+aZuuixqg0KK+WQs+ajn+mahg0KK+WQs+eKgOmdiA0KK+WQs+WWhOmKmA0KK+WQs+iPgeiPgQ0KK+WQs+ipoOWuuA0KK+WQs+mAuOawkQ0KK+WQs+mAuOe+pA0KK+WQs+mInuWptw0KK+WQs+mbheWdpA0KK+WQs+mbhemDgQ0KK+WQs+mbheW1kA0KK+WQs+mbheiQjQ0KK+WQs+mbhembrw0KK+WQs+mbhee2ug0KK+WQs+mbsumppQ0KK+WQs+Wck+aclw0KK+WQs+aVrOeQqg0KK+WQs+avk+ecnw0KK+WQs+a6kOeroA0KK+WQs+eRng0KK+WQs+eRnuWTsg0KK+WQs+eRnuasvQ0KK+WQs+eRnuaFtg0KK+WQs+eomumchg0KK+WQs+iBluWogQ0KK+WQs+ipqeWptw0KK+WQs+iqoOaYjA0KK+WQs+m8juWBiQ0KK+WQs+WYieS/oQ0KK+WQs+WYieWonw0KK+WQs+WYieWLnQ0KK+WQs+WYieamrg0KK+WQs+WYieiVmQ0KK+WQs+Wvp+eRhA0KK+WQs+amruazsA0KK+WQs+a8oumKmA0KK+WQs+eip+S/kA0KK+WQs+emj+mHjw0KK+WQs+e2reWAqQ0KK+WQs+e2reijlQ0KK+WQs+iCh+mosA0KK+WQs+mBoOiqoA0KK+WQs+mKmOaMrw0KK+WQs+mKk+WPiw0KK+WQs+mzs+iYrQ0KK+WQs+W+t+WFgw0KK+WQs+aFtuaWhw0KK+WQs+aFp+WQmw0KK+WQs+aFp+eOsg0KK+WQs+aFp+iyng0KK+WQs+aFp+aVjw0KK+WQs+aFp+mbrw0KK+WQs+a9lOePig0KK+WQs+iznOW/oA0KK+WQs+aGsuS4rQ0KK+WQs+aGtuWxjw0KK+WQs+abiemdkg0KK+WQs+abiee0lA0KK+WQs+abieiPgQ0KK+WQs+abieiWhw0KK+WQs+eHleiKrA0KK+WQs+epjui7kg0KK+WQs+iVmeWmgg0KK+WQs+iVmee0iw0KK+WQs+mBteWFiA0KK+WQs+mMpuS9sw0KK+WQs+mMpumOsA0KK+WQs+mdnOWunA0KK+WQs+mdnOaAoQ0KK+WQs+mdnOiKsw0KK+WQs+mdnOiMuQ0KK+WQs+mdnOmbrw0KK+WQs+m+jeWvtg0KK+WQs+e4veaIkA0KK+WQs+iBsua6kA0KK+WQs+mCgQ0KK+WQs+m0u+aYjA0KK+WQs+m0u+ajrg0KK+WQs+abnOiHow0KK+WQs+ixkOWQiQ0KK+WQs+mOruWIqQ0KK+WQs+eTiueOiQ0KK+WQs+mfu+WNiQ0KK+WQs+m6l+aYpQ0KK+WQs+m6l+Wptw0KK+WQs+eNu+iJrw0KK+WQs+mmqOaAoQ0KK+WQs+aHv+Wptw0KK+WQs+mhr+Wulw0KK+WQs+S9vOS9vA0KK+WQs+aXu+WEkg0KK+WQs+eOoOiTiQ0KK+WQs+aYtuiRsw0KK+WQs+a3qeWuiQ0KK+WQs+eQruWCkQ0KK+WQs+eRi+eQsw0KK+WQs+etseePiA0KK+WQs+eSgQ0KK+WQs+mfnuW+tw0KK+WRguWtkOixqg0KK+WRguS7geWcmA0KK+WRguWPi+Wptw0KK+WRguaWh+WwiA0KK+WRguaWh+mItA0KK+WRguS4luixqg0KK+WRguato+WuiQ0KK+WRgueOieeniw0KK+WRgueri+WBiQ0KK+WRguWmguiLsQ0KK+WRguiHqumBlA0KK+WRguW/l+Wujw0KK+WRguW/l+mLkg0KK+WRguiCsuiKsw0KK+WRguiCsueRiw0KK+WRguS9s+WunA0KK+WRguS9s+WuuQ0KK+WRguS9s+aoug0KK+WRguS9qeWnjQ0KK+WRguS9qee0lA0KK+WRguWFtumclg0KK+WRguWnjeWnjQ0KK+WRguWto+iKsw0KK+WRguWul+mKmA0KK+WRguWunOiKsw0KK+WRguWunOaZjw0KK+WRguWunOmclg0KK+WRguWxheWLsw0KK+WRguW/oOiCsg0KK+WRguaAoeaFpw0KK+WRguaXuumojw0KK+WRguaYjg0KK+WRguaYjuazsA0KK+WRguaYjum+jQ0KK+WRguadsOe3rw0KK+WRguaso+epjg0KK+WRguiKs+S/ig0KK+WRgumHkeW9pQ0KK+WRgumVt+mmqA0KK+WRguS/neWyuA0KK+WRguS/iuWEgA0KK+WRguS/kA0KK+WRguWNl+eVvw0KK+WRguWogeW+tw0KK+WRguW7uuW9pQ0KK+WRguW7uumLkg0KK+WRguW9peiejQ0KK+WRguaUv+W9pQ0KK+WRguaUv+irrQ0KK+WRguaYreWEgA0KK+WRguafj+Wujw0KK+WRgueah+WFtg0KK+WRgueni+mbsg0KK+WRgue+juaDoA0KK+WRgue+jum9oQ0KK+WRguiLseeRiw0KK+WRgumfi+eutA0KK+WRguWTsuaYjg0KK+WRguW6ree2rQ0KK+WRguagvOixqg0KK+WRguelkOWQiQ0KK+WRguWBieasvQ0KK+WRguWci+WfuQ0KK+WRguWpieiMuQ0KK+WRguaihemfsw0KK+WRgua3keWNvw0KK+WRgua3keemjg0KK+WRgueQhumclg0KK+WRgue0ueamrg0KK+WRgumbqueRnA0KK+WRguaDoOiPgQ0KK+WRguaZuuWCkQ0KK+WRguipoOecnw0KK+WRgumbheeOsg0KK+WRgumbheeQqg0KK+WRgumbr+athg0KK+WRgua7hOWgrw0KK+WRguiBlueroA0KK+WRguWYieWFgw0KK+WRguWYieixkA0KK+WRgue2reeOsg0KK+WRgumKmOaZug0KK+WRguaFp+aDoA0KK+WRguWtuOWQmw0KK+WRguWtuOaZug0KK+WRguWtuOWPoQ0KK+WRgueHleaelw0KK+WRgumMpumghg0KK+WRgumdnOiTiQ0KK+WRgum0u+m6nw0KK+WRgum6l+Wonw0KK+WRguW7s+WatA0KK+WRgue/iuawkQ0KK+Wui+Wkp+i+sA0KK+Wui+S5i+aPhg0KK+Wui+W/g+aFpw0KK+Wui+S4luaWhw0KK+Wui+eOieWptw0KK+Wui+S8r+eRnA0KK+Wui+aym+WLhw0KK+Wui+iCsueRiw0KK+Wui+S9qeePig0KK+Wui+Wtn+eRmw0KK+Wui+W5uOecnw0KK+Wui+aYjOmclg0KK+Wui+adseWogQ0KK+Wui+enieiQsQ0KK+Wui+S/iua0iw0KK+Wui+WlleWEkg0KK+Wui+W7uuasow0KK+Wui+aUv+mahg0KK+Wui+emueeRqQ0KK+Wui+iHtOmBoA0KK+Wui+Wutumclg0KK+Wui+iIq+iHow0KK+Wui+WfueWFgw0KK+Wui+aVj+iPrw0KK+Wui+WWrOeOiQ0KK+Wui+acneaWjA0KK+Wui+mbsuaYjg0KK+Wui+WYieS7gQ0KK+Wui+eip+eQsw0KK+Wui+aFp+a9lA0KK+Wui+eHleWEtw0KK+Wui+erhA0KK+Wui+aXu+ecnw0KK+W3q+WtkOaHvw0KK+W3q+aIjuaAoQ0KK+W3q+S9qeeShw0KK+W3q+WunOWtuA0KK+W3q+aYjue/sA0KK+W3q+iKt+eRiw0KK+W3q+WGoOiqvA0KK+W3q+afj+avhQ0KK+W3q+aMr+WYiQ0KK+W3q+a4heaWhw0KK+W3q+WWhOemjw0KK+W3q+WYieiIiA0KK+W3q+abieiKrA0KK+W3q+aZn+mAuA0KK+adjuS5g+aWhw0KK+adjuWjq+S6qw0KK+adjuWtkOWFgQ0KK+adjuWwj+iKrA0KK+adjuS4reS7uw0KK+adjuS4reaFpw0KK+adjuS7geS/rg0KK+adjuS7geWHsQ0KK+adjuS7ium7mw0KK+adjuWFg+Wcgw0KK+adjuWFg+ijlQ0KK+adjuWPi+a3sw0KK+adjuWkqeaoug0KK+adjuW/g+S7gQ0KK+adjuW/g+W1kA0KK+adjuaWhw0KK+adjuaWh+WQiQ0KK+adjuaWh+W/lw0KK+adjuaWh+aUvw0KK+adjuaWh+iOiQ0KK+adjuaWh+aDoA0KK+adjuaWh+eQpg0KK+adjuaWh+aEjw0KK+adjuaWh+mBlA0KK+adjuaWh+izog0KK+adjuaWh+aWjA0KK+adjuaciOaYnw0KK+adjuS4luWuiQ0KK+adjuS4luWBiQ0KK+adjuS4luWJtA0KK+adjuS4luWvrA0KK+adjuS7peaWsA0KK+adjuWPr+eriw0KK+adjuW3p+eQsw0KK+adjuW8mOaYig0KK+adjuato+WFgw0KK+adjuato+W9pQ0KK+adjuato+WLnQ0KK+adjuato+ixqg0KK+adjuawuOaYjA0KK+adjuawuOasvQ0KK+adjuawuOm0uw0KK+adjueOieS9qQ0KK+adjueOieWNvw0KK+adjueOieeQsw0KK+adjueOiemItA0KK+adjueri+S7gQ0KK+adjueri+W8tw0KK+adjuS6puaZtA0KK+adjuS7sueOhA0KK+adjuWFiQ0KK+adjuWFieelpQ0KK+adjuWFieWAog0KK+adjuWFhuaWjA0KK+adjuWQieaVjw0KK+adjuWQjeWAqw0KK+adjuWmguePjQ0KK+adjuWuh+W8mA0KK+adjuWuiOe2rQ0KK+adjuWuieeQsw0KK+adjuaIkOa8og0KK+adjuacieasvQ0KK+adjue+vQ0KK+adjuiHs+eroA0KK+adjuS9kOWvpw0KK+adjuS8r+avhQ0KK+adjuWQm+W9pQ0KK+adjuWQq+S7gQ0KK+adjuWmjeeRqQ0KK+adjuWuj+aWhw0KK+adjuWuj+a0sg0KK+adjuW7t+WBiQ0KK+adjuW/l+aIkA0KK+adjuW/l+aYjg0KK+adjuW/l+WzsA0KK+adjuW/l+WBiQ0KK+adjuW/l+eroA0KK+adjuW/l+mKmA0KK+adjuW/l+m1rA0KK+adjuaym+adsA0KK+adjuaxquebmw0KK+adjuengOW5tA0KK+adjuengOeOsg0KK+adjuengOWNvw0KK+adjuengOiPrw0KK+adjuengOiYhQ0KK+adjuiCsuaenQ0KK+adjuiCsuW6rQ0KK+adjuiCsue+pA0KK+adjuiCsueRqQ0KK+adjuiCsuiejQ0KK+adjuimi+axtg0KK+adjuS6nuWAqw0KK+adjuS6rOaoug0KK+adjuS+nee0lA0KK+adjuS+neaBgg0KK+adjuS9s+axtg0KK+adjuS9s+aYjg0KK+adjuS9s+iKsw0KK+adjuS9s+iKrA0KK+adjuS9s+eOsg0KK+adjuS9s+eOsg0KK+adjuS9s+ePjQ0KK+adjuS9s+WAqQ0KK+adjuS9s+Wutg0KK+adjuS9s+aZgw0KK+adjuS9s+ecnw0KK+adjuS9s+iokw0KK+adjuS9s+mbrw0KK+adjuS9s+iTiQ0KK+adjuS9s+aFtg0KK+adjuS9s+WEkg0KK+adjuS9s+aoug0KK+adjuS9s+epjg0KK+adjuS9s+iHuw0KK+adjuS9s+mclg0KK+adjuS9s+mcjw0KK+adjuS9s+mNtQ0KK+adjuS9s+iTgQ0KK+adjuS+g+a0iw0KK+adjuS9qeS9qQ0KK+adjuS9qeiKnQ0KK+adjuS9qeWnvw0KK+adjuS9qeePig0KK+adjuS9qeeOsg0KK+adjuS9qeWAqQ0KK+adjuS9qeecnw0KK+adjuS9qemZtQ0KK+adjuS9qeWEgA0KK+adjuS9qeabhA0KK+adjuS9qeirrQ0KK+adjuS9qeWsrA0KK+adjuS+keWurA0KK+adjuWFtua+pw0KK+adjuWHveiKrA0KK+adjuWNk+mBkw0KK+adjuWSjOaYjA0KK+adjuWdpOaYjg0KK+adjuWdpOa6kA0KK+adjuWdpOmclg0KK+adjuWlh+WxlQ0KK+adjuWlh+e/sA0KK+adjuWtn+WdpA0KK+adjuWtn+ePig0KK+adjuWtn+WTsg0KK+adjuWtn+i7kg0KK+adjuWtn+WEkg0KK+adjuWtn+epjg0KK+adjuWtn+eHpg0KK+adjuWtn+eSgQ0KK+adjuWto+iPrw0KK+adjuWul+WdpA0KK+adjuWul+WAqw0KK+adjuWul+aBqQ0KK+adjuWul+e+qQ0KK+adjuWul+izog0KK+adjuWul+aGsg0KK+adjuWul+epjg0KK+adjuWul+e/sA0KK+adjuWul+mclg0KK+adjuWul+m0uw0KK+adjuWumumBoA0KK+adjuWunOaYjg0KK+adjuWunOiKsw0KK+adjuWunOa0sg0KK+adjuWunOeOsg0KK+adjuWunOWTsg0KK+adjuWunOWzuw0KK+adjuWunOe0lA0KK+adjuWunOa9lA0KK+adjuWunOaoug0KK+adjuWunOmclg0KK+adjuWunOmfkw0KK+adjuWunOWcnA0KK+adjuWum+eOsg0KK+adjuWum+iQjQ0KK+adjuWum+mdnA0KK+adjuWwmuizog0KK+adjuWyqeaaiQ0KK+adjuWyseiTgQ0KK+adjuWys+WzsA0KK+adjuWys+aoug0KK+adjuWys+m0uw0KK+adjuW5uOWonw0KK+adjuW5uOmMoA0KK+adjuW/oOWSjA0KK+adjuW/oOe+qQ0KK+adjuW/oOepjg0KK+adjuW/teiSqA0KK+adjuaAoeaYjA0KK+adjuaAoeeOsg0KK+adjuaAoeiQsQ0KK+adjuaAoeWvrA0KK+adjuaAoeaFpw0KK+adjuaAoeeRvg0KK+adjuaAoeepjg0KK+adjuaAoeaXuw0KK+adjuaJv+Wulw0KK+adjuaJv+eSiw0KK+adjuaJv+m+jQ0KK+adjuaYk+S/rg0KK+adjuaYk+irug0KK+adjuaYjOmBlA0KK+adjuaYhuWujw0KK+adjuaYhumBlA0KK+adjuaYhum+jQ0KK+adjuaYjuWIqQ0KK+adjuaYjuaAoQ0KK+adjuaYjuadsA0KK+adjuaYjuW9pQ0KK+adjuaYjuS/rg0KK+adjuaYjuWTsg0KK+adjuaYjuabuA0KK+adjuaYjumHlw0KK+adjuaYjumBlA0KK+adjuaYjua9lA0KK+adjuaYjuWLsw0KK+adjuaYjuaoug0KK+adjuaYjuirrQ0KK+adjuaYjumcng0KK+adjuaYjuWiiQ0KK+adjuaYgOiHuw0KK+adjuaYig0KK+adjuaYh+e/sA0KK+adjuadseW9pQ0KK+adjuadsemahg0KK+adjuadsem+jQ0KK+adjuadsOWmgg0KK+adjuadvuWutg0KK+adjuaso+aAoQ0KK+adjuaso+aAoQ0KK+adjuaso+WTsg0KK+adjuaso+mBlA0KK+adjuaso+WEkg0KK+adjuaso+epjg0KK+adjuaso+mcng0KK+adjuazlea8og0KK+adjuayu+WuiQ0KK+adjueOn+eOnw0KK+adjueOpeeRqQ0KK+adjuenieaclA0KK+adjueniee/sA0KK+adjuiKs+Wcuw0KK+adjuiKs+Wptw0KK+adjuiKs+WEgA0KK+adjuiKnee2vg0KK+adjuiKuOW9pQ0KK+adjuiZjuWzsA0KK+adjumHkeazkw0KK+adjumHkemItA0KK+adjumHkeaoug0KK+adjumVt+aWhw0KK+adjumVt+amrg0KK+adjumVt+e0mA0KK+adjumdkuadvg0KK+adjumdkumZvQ0KK+adjumdnumcjw0KK+adjuS/oeaIkA0KK+adjuS/oeadsA0KK+adjuS/oeW+tw0KK+adjuS/oeepjg0KK+adjuS/neiTgQ0KK+adjuS/iuWujw0KK+adjuS/iuWlhw0KK+adjuS/iuaYgA0KK+adjuS/iuW9pQ0KK+adjuS/iuelug0KK+adjuS/iuWEhA0KK+adjuS/iuW+tw0KK+adjuS/iuavhQ0KK+adjuS/iuizog0KK+adjuS/iuizog0KK+adjuS/iuizog0KK+adjuS/iuWLsw0KK+adjuS/iumMoQ0KK+adjuS/nuaFpw0KK+adjuWGoOaciw0KK+adjuWGoOWEgA0KK+adjuWGoOeRqQ0KK+adjuWGoOiHuw0KK+adjuWLh+Wvpw0KK+adjuWNl+WsjA0KK+adjuWTgeaFpw0KK+adjuWlleaemg0KK+adjuWlj+mKsw0KK+adjuWnv+WEgA0KK+adjuWnv+eRqQ0KK+adjuWogeWujw0KK+adjuWogeW+tw0KK+adjuWogemclg0KK+adjuWuo+eRqQ0KK+adjuW7uuawkQ0KK+adjuW7uuWujw0KK+adjuW7uumCpg0KK+adjuW7uuaYjg0KK+adjuW7uuWogQ0KK+adjuW7uuiRpg0KK+adjuW7uuWvrA0KK+adjuW7uuizog0KK+adjuW7uumLkg0KK+adjuW7uuaoug0KK+adjuW7uuiIiA0KK+adjuW7uuemsg0KK+adjuW9peWujw0KK+adjuW9peWunA0KK+adjuW9peWEgA0KK+adjuW9peeRqQ0KK+adjuW9peWEkg0KK+adjuW9pemclg0KK+adjuW+i+eRiw0KK+adjuaAneaAoQ0KK+adjuaAneiQsQ0KK+adjuaAneWEgA0KK+adjuaAneeRqQ0KK+adjuaAneirrQ0KK+adjuaUvw0KK+adjuaUv+W/oA0KK+adjuaUv+WTsg0KK+adjuaUv+mBlA0KK+adjuaUv+i8nQ0KK+adjuaUv+abhA0KK+adjuaUv+m+jQ0KK+adjuaYpeaenQ0KK+adjuaYpeeHlQ0KK+adjuaYree+jg0KK+adjuaYree3rw0KK+adjuaYoOiQsQ0KK+adjuaYseaYpQ0KK+adjuaYseeHkA0KK+adjuafj+adiQ0KK+adjuafj+iTiQ0KK+adjuafj+izog0KK+adjuafj+eSgQ0KK+adjueCs+WdpA0KK+adjuePiuePig0KK+adjueVjOmLkg0KK+adjuebiOebiA0KK+adjuebiOa9lA0KK+adjuebiOepjg0KK+adjuenkeazrw0KK+adjueni+aihQ0KK+adjueni+WEgA0KK+adjueni+m6nw0KK+adjue+jueOiQ0KK+adjue+juiKsw0KK+adjue+juWAqw0KK+adjue+jueRnA0KK+adjue+juWEgA0KK+adjue+jueRqQ0KK+adjue+jumMoQ0KK+adjuiDpOeRpA0KK+adjuiHtOaFpw0KK+adjuiMguWFqA0KK+adjuiLseW/lw0KK+adjuiLseeRng0KK+adjuiLseeRiw0KK+adjuiZueWEgA0KK+adjuiynuWunA0KK+adjuiynuaFpw0KK+adjui/sOeUsw0KK+adjumDgeWBiQ0KK+adjumHjeizog0KK+adjumfs+aFpw0KK+adjuWAqQ0KK+adjuS/rum9ig0KK+adjuWTsuWuiQ0KK+adjuWTsue3rw0KK+adjuWutuWujw0KK+adjuWutuePjQ0KK+adjuWutuiQsQ0KK+adjuWutuixqg0KK+adjuWutuWEgg0KK+adjuWutuiIiA0KK+adjuWuueWptw0KK+adjuW4q+Wqug0KK+adjuaCheWYiQ0KK+adjuaMr+aYjA0KK+adjuaMr+iqoA0KK+adjuaMr+WEgA0KK+adjuaZieixqg0KK+adjuabuOa2tQ0KK+adjuagueWYiQ0KK+adjuahg+ajrg0KK+adjuazsOmclg0KK+adjua1qeW6rQ0KK+adjuePruWmgg0KK+adjuePrueQsw0KK+adjuePruWYiQ0KK+adjuebiuamrg0KK+adjuelluePjQ0KK+adjue0oOaihQ0KK+adjue0lOaFpw0KK+adjuiDvemBoA0KK+adjuiok+WEhA0KK+adjuS5vuaaiQ0KK+adjuWBieWQiQ0KK+adjuWBieaEtw0KK+adjuWBieWYiQ0KK+adjuWBiemhkg0KK+adjuWBpea6kA0KK+adjuWBpemKmA0KK+adjuWci+WFqA0KK+adjuWci+W8tw0KK+adjuWci+iPrw0KK+adjuWci+eRng0KK+adjuWci+amrg0KK+adjuWci+e2rQ0KK+adjuWci+mKgA0KK+adjuWci+iIiA0KK+adjuWfuuW8mA0KK+adjuWfueiPrw0KK+adjuWpieecnw0KK+adjuWpieeRng0KK+adjuW0h+S7gQ0KK+adjuW0h+ixqg0KK+adjuW6t+atow0KK+adjuW9qeeRqQ0KK+adjuWVn+W8mA0KK+adjuWVn+a7hA0KK+adjuaVj+WQiQ0KK+adjuaVj+WYiQ0KK+adjuaVj+m+jQ0KK+adjua4heWQnw0KK+adjua3keWQmw0KK+adjua3keiKrA0KK+adjua3keiyng0KK+adjua3keiMuQ0KK+adjua3keaDoA0KK+adjua3keiPrw0KK+adjua3keiTiQ0KK+adjua3kemdnA0KK+adjua2teWvjA0KK+adjuelpeeRng0KK+adjue0uee2ug0KK+adjue/juavkw0KK+adjumAo+WzsA0KK+adjumbquiQjQ0KK+adjuWCkeWmgg0KK+adjuWHsealqA0KK+adjuWLnembhA0KK+adjuWWrOmMmg0KK+adjuW1kOeQpg0KK+adjuaDoOiKrA0KK+adjuaDoOePoA0KK+adjuaDoOeQsw0KK+adjuaDoOmbrw0KK+adjuaZtOmbrw0KK+adjuaZuuaAoQ0KK+adjuaZuuW8tw0KK+adjuaZuue2rQ0KK+adjuajrg0KK+adjua5mOaoug0KK+adjuealueOsg0KK+adjuWWhOWQjA0KK+adjuiInOiPrw0KK+adjuipoOeniw0KK+adjumAuOaJjQ0KK+adjumAuOe+pA0KK+adjumAsuemjw0KK+adjumahuiPrw0KK+adjumbheeOqw0KK+adjumbheeOsg0KK+adjumbheaihQ0KK+adjumbheWptw0KK+adjumbheaDoA0KK+adjumbheaDoA0KK+adjumbheiQjQ0KK+adjumbhembrw0KK+adjumbheeHlQ0KK+adjumbr+eHlQ0KK+adjuWCs+WQmw0KK+adjuaEj+mbrw0KK+adjuaDsw0KK+adjuaWsOa+pA0KK+adjuavk+ecnw0KK+adjua6kA0KK+adjueRnuaWhw0KK+adjueRnuiyng0KK+adjueRnuiPrw0KK+adjueRnumojw0KK+adjue+qembhA0KK+adjuiBlueQsA0KK+adjuipqeWBiQ0KK+adjuipqealtw0KK+adjumBk+aelw0KK+adjuWYiQ0KK+adjuWYieaelw0KK+adjuWYieWHjA0KK+adjuWYiei7kg0KK+adjuWYieiPrw0KK+adjuWYiemKmA0KK+adjuWYiem0uw0KK+adjuWvp+iKsw0KK+adjuamruiMgg0KK+adjuamrummsw0KK+adjua8ouelug0KK+adjueip+Wptw0KK+adjuemj+iTiQ0KK+adjue2reS7gQ0KK+adjue2reWAqw0KK+adjue2realqA0KK+adjuiCh+asow0KK+adjuiqjOaYjg0KK+adjumKmOWRqA0KK+adjumKmOavkw0KK+adjumztOWuhw0KK+adjum9iuiKsw0KK+adjuW7o+elgQ0KK+adjuW+t+a1tw0KK+adjuaFtuWujw0KK+adjuaFtuiPrw0KK+adjuaFp+iKrA0KK+adjuaFp+e+jg0KK+adjuaFp+ePoA0KK+adjuaFp+WEgA0KK+adjuavheS/oQ0KK+adjueRqea9lA0KK+adjuizoua3pg0KK+adjuWtuOaYjg0KK+adjuaGsuaWjA0KK+adjuabieWmrg0KK+adjuabieeOsg0KK+adjuabieW1kA0KK+adjuabieiPgQ0KK+adjuabieamlQ0KK+adjua+pOiCsg0KK+adjueHleeOsg0KK+adjueSn+mDgQ0KK+adjue/sOmdkg0KK+adjuiIiOiInA0KK+adjuiVmeWmgg0KK+adjuiVmeiKuA0KK+adjuixq+WHoQ0KK+adjumMpuaYhw0KK+adjumMpuiTrg0KK+adjumdnOWunA0KK+adjumdnOaAoQ0KK+adjumdnOaAoQ0KK+adjumdnOe+jg0KK+adjumdnOiTiQ0KK+adjum+jeeUnw0KK+adjum+jem6nw0KK+adjueIteiHow0KK+adjuiBsOWysw0KK+adjui8v+mRqw0KK+adjum0u+W/lw0KK+adjum0u+mBlA0KK+adjuabnOWtmA0KK+adjuisueW4hg0KK+adjumOlOmYoQ0KK+adjummpeWmgg0KK+adjueTiuiLsQ0KK+adjum6l+aenQ0KK+adjum6l+ePoA0KK+adjuWvtueOiQ0KK+adjuiAgOawkQ0KK+adjummqOaAoQ0KK+adjuaHv+Wmgg0KK+adjuasiuWutg0KK+adjuWKrei7jQ0KK+adjuaXu+aYhw0KK+adjuaXu+eRiw0KK+adjuaYtuasow0KK+adjuiLueaFiA0KK+adjua2tOaxnQ0KK+adjuWgqA0KK+adjue1nA0KK+adjueRi+eQqg0KK+adjuetsembsg0KK+adjumIuumbrw0KK+adjumdmuWuuA0KK+adjumOp+S7uw0KK+adjuaBkuWQmw0KK+adnOaWh+WCkQ0KK+adnOawkeWCkQ0KK+adnOWFqOaelw0KK+adnOW/l+izog0KK+adnOS9s+ixqg0KK+adnOWtn+aUvw0KK+adnOWum+irrQ0KK+adnOaJv+mRqw0KK+adnOaYh+e/sA0KK+adnOiKs+aUvw0KK+adnOS/iuavhQ0KK+adnOWogeW7tw0KK+adnOW9pemclg0KK+adnOeCs+m+jQ0KK+adnOe+juaFpw0KK+adnOWutuaYjA0KK+adnOePruipqQ0KK+adnOWpiembrw0KK+adnOa3kemMmg0KK+adnOmZveWckw0KK+adnOWYieeOsg0KK+adnOe2reS/rg0KK+adnOeHleiPrw0KK+adnOiAgOS7gQ0KK+aymeato+aChQ0KK+ayiOWjq+WCkQ0KK+ayiOS7geWCkQ0KK+ayiOaWh+elpQ0KK+ayiOS4lumWlA0KK+ayiOato+W+tw0KK+ayiOeri+S7gQ0KK+ayiOWmguWzsA0KK+ayiOS9kee/sA0KK+ayiOWQm+eSkA0KK+ayiOW/l+W3nQ0KK+ayiOW/l+m+jQ0KK+ayiOaxtuiQjQ0KK+ayiOiCsuaYnw0KK+ayiOS+neepjg0KK+ayiOS9s+aFpw0KK+ayiOS9qembrw0KK+ayiOWdpOaYhw0KK+ayiOWul+aFtg0KK+ayiOWunOiTgQ0KK+ayiOaAoeS8tg0KK+ayiOaYjOaYjg0KK+ayiOaYjuiQsQ0KK+ayiOaso+WtuA0KK+ayiOenieiqvA0KK+ayiOiKuOiQqQ0KK+ayiOS/oeWing0KK+ayiOS/iue/lA0KK+ayiOWGoOWujw0KK+ayiOWnv+aFpw0KK+ayiOW7uuaIkA0KK+ayiOW7uuW+tw0KK+ayiOaBhuWFiQ0KK+ayiOaYreizog0KK+ayiOafj+WvrA0KK+ayiOebiOiPgQ0KK+ayiOe+juWonw0KK+ayiOmDgeW6tw0KK+ayiOWTsuaomQ0KK+ayiOWutuamrg0KK+ayiOaMr+iIiA0KK+ayiOebiuaJvw0KK+ayiOe0lOWmgg0KK+ayiOWci+mKkw0KK+ayiOaZqOmQmA0KK+ayiOa3keiPrw0KK+ayiOaDoOiPgQ0KK+ayiOiIkueQsw0KK+ayiOmbheaDoA0KK+ayiOaaieW6rQ0KK+ayiOeRnuasvQ0KK+ayiOiBluW0kQ0KK+ayiOmBk+irlg0KK+ayiOWYieiVmQ0KK+ayiOe2reavkw0KK+ayiOW+t+WOmg0KK+ayiOWtuOaIkA0KK+ayiOiVmeWQmw0KK+ayiOm0u+a0sg0KK+ayiOWmj+ecnw0KK+ayiOetsembsg0KK+axquWkp+WAqw0KK+axquW3p+eOsg0KK+axqueZvui7kg0KK+axquengOeHlQ0KK+axquWtn+a2tQ0KK+axquaAoeiPrw0KK+axqumdkuiTiQ0KK+axquWGoOWujw0KK+axque+jueOiQ0KK+axquWutueRqQ0KK+axquWVn+aWhw0KK+axqumbheiQjQ0KK+axqumdluWciw0KK+axquaFtuePjQ0KK+axqum6l+Wonw0KK+eLhOWutua6pw0KK+iwt+azk+mBkw0KK+i7iuebiuiPrw0KK+i+m+Wul+a9rQ0KK+i+m+WlleaIkA0KK+i+m+iPgeWopQ0KK+i+m+aXu+S/rg0KK+mCouiDveaWhw0KK+mYruaWh+elpQ0KK+mYruWRguecnw0KK+mYruS/oeaGsg0KK+mYruaYseWujw0KK+mYrumjm+mKmA0KK+mYrua3keiMuQ0KK+mYruaWkOeRnA0KK+mYrumbheWAqw0KK+mYruedv+elpQ0KK+mYrum1rOeiqQ0KK+WNk+Wjq+WLmw0KK+WNk+awuOWggg0KK+WNk+W/l+W/oA0KK+WNk+S9s+aFtg0KK+WNk+Wum+WQmw0KK+WNk+aYjuWEgA0KK+WNk+iKs+Wmgg0KK+WNk+S/iuWujw0KK+WNk+W7uumahg0KK+WNk+iLseWTsg0KK+WNk+WutualoA0KK+WNk+iok+iJrw0KK+WNk+a3keWqmw0KK+WNk+acnemWlA0KK+WNk+eRnuW0hw0KK+WNk+iqjOmahg0KK+WNk+mdnOWmgg0KK+WNk+aBkueUnw0KK+WRqOS4iuasvQ0KK+WRqOWjq+WCkQ0KK+WRqOWkp+mIng0KK+WRqOWtkOaVrA0KK+WRqOS4reiIiA0KK+WRqOW/g+aAoQ0KK+WRqOaWh+aUvw0KK+WRqOaWh+mbhQ0KK+WRqOaciOmcnA0KK+WRqOS4luixkA0KK+WRqOS7o+WwiQ0KK+WRqOW8mOaVjw0KK+WRqOato+Wciw0KK+WRqOawuOmbhA0KK+WRqOeOieiTrg0KK+WRqOeri+WBiQ0KK+WRqOS7suWHsQ0KK+WRqOWQiem+jQ0KK+WRqOW5tOebmw0KK+WRqOiHs+iKrA0KK+WRqOS9keemjg0KK+WRqOS8r+mRqw0KK+WRqOWQm+m0uw0KK+WRqOWtneiKsw0KK+WRqOWuj+eRnA0KK+WRqOW7t+mahg0KK+WRqOW/l+W/oA0KK+WRqOW/l+a4hQ0KK+WRqOW/l+WLsw0KK+WRqOaxtuePig0KK+WRqOengOaZjw0KK+WRqOiCsuS8tg0KK+WRqOiCsua9pA0KK+WRqOS6nuasow0KK+WRqOS9s+aAoQ0KK+WRqOS9s+iTiQ0KK+WRqOS9s+mchw0KK+WRqOS9qeWunA0KK+WRqOS9qeWEgA0KK+WRqOWNlOWIqQ0KK+WRqOWlh+iTiQ0KK+WRqOWtn+iqvA0KK+WRqOWul+W7ug0KK+WRqOWunOiKsw0KK+WRqOWum+iQsQ0KK+WRqOW5uOiTiQ0KK+WRqOaAoeS8tg0KK+WRqOaAoeWQmw0KK+WRqOaAoemCpg0KK+WRqOaAoeWEtw0KK+WRqOaYjuW8mA0KK+WRqOaYjuW+uQ0KK+WRqOaYjui8nQ0KK+WRqOadsA0KK+WRqOaso+iKuA0KK+WRqOaso+eRqQ0KK+WRqOeOn+iQsQ0KK+WRqOiKs+Wmgg0KK+WRqOiKnea2tQ0KK+WRqOmHkeeHlQ0KK+WRqOmdkuiTiQ0KK+WRqOS/oei8nQ0KK+WRqOS/iuWujw0KK+WRqOS/iuixqg0KK+WRqOWGoOS8tg0KK+WRqOWTgeWmjQ0KK+WRqOWogeWRiA0KK+WRqOW7uuWRiA0KK+WRqOW7uumKmA0KK+WRqOW9peWykQ0KK+WRqOaAneW+rg0KK+WRqOaUv+e/sA0KK+WRqOaYn+WQjA0KK+WRqOafj+eUqw0KK+WRqOeOsg0KK+WRqOebiOadiQ0KK+WRqOeni+iQjQ0KK+WRqOe+juaYpQ0KK+WRqOiHtOS4ng0KK+WRqOmDgeaWhw0KK+WRqOmfi+e/sA0KK+WRqOWHjOaCjA0KK+WRqOWon+Wmgg0KK+WRqOWutua1qQ0KK+WRqOWutuaFtg0KK+WRqOWzsOatow0KK+WRqOaMr+WHsQ0KK+WRqOabuOWptw0KK+WRqOazsOWuiQ0KK+WRqOePruWmgg0KK+WRqOelkOaFpw0KK+WRqOiAv+ihjA0KK+WRqOWBieiMuQ0KK+WRqOWci+mdlg0KK+WRqOWpieeQsw0KK+WRqOaVj+mIug0KK+WRqOa3keWonw0KK+WRqOa3keeHlQ0KK+WRqOWHseaFpw0KK+WRqOaDoOiTrg0KK+WRqOaZuuaVjw0KK+WRqOa4neePig0KK+WRqOipoOiokw0KK+WRqOmAuOiYrQ0KK+WRqOmbheWptw0KK+WRqOmbsuajoA0KK+WRqOaVrOaZjw0KK+WRqOalreasvQ0KK+WRqOeFjOiAvw0KK+WRqOeRnualoA0KK+WRqOe+qeWzsA0KK+WRqOiBluaFpw0KK+WRqOijleixkA0KK+WRqOmBk+azkw0KK+WRqOWYieadvg0KK+WRqOWYieaFtg0KK+WRqOa8oua6kA0KK+WRqOemj+mzsw0KK+WRqOe/oOiKrA0KK+WRqOWEhOS/oQ0KK+WRqOaFp+Wnvw0KK+WRqOaoguWkqQ0KK+WRqOizouW+tw0KK+WRqOaGsumCpg0KK+WRqOabieiQjQ0KK+WRqOeHleebiA0KK+WRqOiejemnvw0KK+WRqOmdnOmbrw0KK+WRqOiBsOWuhw0KK+WRqOmOrumCpg0KK+WRqOm6l+eOsg0KK+WRqOiYreiKsw0KK+WRqOaXu+mdnA0KK+WRqOaXhueRnA0KK+WRqOeRiw0KK+WRqOmIuue/lA0KK+Wtn+WkqeelpQ0KK+Wtn+aFtuWuiQ0KK+Wto+iCsua+pA0KK+WumOWkp+W8mA0KK+WumOiCsuiQsQ0KK+WumOiKs+Wmgg0KK+WumOiLkeWCkQ0KK+WumOi+suWTsg0KK+WwmuabuA0KK+WxiOmBk+WJmw0KK+Wys+e2remLjA0KK+aIv+WFhumahg0KK+aWvOWutuePjQ0KK+aYk+i2s+ecnw0KK+aYk+aZuuWBpQ0KK+aYjOWtn+e/sA0KK+adseaFjueQsw0KK+ael+S4gOeFkg0KK+ael+S4iuW/lw0KK+ael+S5heWLuw0KK+ael+S6juatow0KK+ael+S6juWptw0KK+ael+S6juemjg0KK+ael+WNg+Wqmg0KK+ael+WNg+avkw0KK+ael+Wjq+WKmw0KK+ael+Wjq+mDgQ0KK+ael+Wjq+a3tQ0KK+ael+Wjq+WCkQ0KK+ael+Wjq+aPmg0KK+ael+Wjq+i2ig0KK+ael+Wjq+i+sg0KK+ael+Wkp+WFgw0KK+ael+Wkp+elpQ0KK+ael+Wkp+mIng0KK+ael+Wls+a7vw0KK+ael+WtkOeOhA0KK+ael+WtkOWBiQ0KK+ael+WtkOWCkQ0KK+ael+WtkOaDoA0KK+ael+WtkOipoA0KK+ael+WtkOWLpA0KK+ael+WtkOe2ug0KK+ael+WtkOeRhA0KK+ael+Wwj+eQqg0KK+ael+Wxsembsg0KK+ael+aJjeWFgw0KK+ael+S4reW8tw0KK+ael+S5i+iPgQ0KK+ael+S7geW9pQ0KK+ael+S7geWCkQ0KK+ael+S7i+S4gA0KK+ael+WFg+aEtw0KK+ael+WNh+asig0KK+ael+WkqeawkQ0KK+ael+W/g+Wmgg0KK+ael+W/g+W1kA0KK+ael+aWh+S4rQ0KK+ael+aWh+WFqA0KK+ael+aWh+azsw0KK+ael+aWh+enkQ0KK+ael+aWh+Wwhw0KK+ael+aWh+elpQ0KK+ael+aWh+WLnQ0KK+ael+aWh+aWrw0KK+ael+aWh+eQpg0KK+ael+aWh+mbrw0KK+ael+aWh+W+tw0KK+ael+aWh+iBsA0KK+ael+aWh+WqhA0KK+ael+aciOiLsQ0KK+ael+acqOiIiA0KK+ael+S4luW5sw0KK+ael+S4luaYjA0KK+ael+S4luiKsw0KK+ael+S4luWzsA0KK+ael+S4luWBiQ0KK+ael+S4lua3hw0KK+ael+S4lue/lA0KK+ael+S4luWvsA0KK+ael+S4u+aBqQ0KK+ael+S7peaZqA0KK+ael+S7leWBiQ0KK+ael+WKoOWGoA0KK+ael+WPr+mIng0KK+ael+W3qOa3mQ0KK+ael+W3p+aihQ0KK+ael+W5s+iLkQ0KK+ael+W8mOaYhw0KK+ael+W8mOelpQ0KK+ael+ato+S4gA0KK+ael+ato+Wulw0KK+ael+ato+i7jQ0KK+ael+ato+WBiQ0KK+ael+ato+WHsQ0KK+ael+ato+emjw0KK+ael+awkeWfug0KK+ael+awuOaYjA0KK+ael+awuOS/oQ0KK+ael+awuOa4hQ0KK+ael+awuOelpQ0KK+ael+awuOajrg0KK+ael+awuOaFtg0KK+ael+awuOaZnw0KK+ael+eOieWmgg0KK+ael+eOieiKsw0KK+ael+eOieeOsg0KK+ael+eOieePrg0KK+ael+eOieaVjw0KK+ael+eOieWptw0KK+ael+eOieiPgQ0KK+ael+eOiembsg0KK+ael+eOiem+jQ0KK+ael+efs+mahg0KK+ael+eri+S7uw0KK+ael+eri+WAqw0KK+ael+eri+WBiQ0KK+ael+eri+e+pA0KK+ael+eri+mRqw0KK+ael+S7suWogQ0KK+ael+S7sOacmw0KK+ael+WFhuebiA0KK+ael+WQieS8rw0KK+ael+WQjuWUrw0KK+ael+WmguaVjw0KK+ael+Wuh+aYnw0KK+ael+WuiOW+tw0KK+ael+Wuiee3uQ0KK+ael+acieS/ig0KK+ael+eZvuaPmg0KK+ael+iHs+aJvw0KK+ael+ihjOismQ0KK+ael+S9keWuiQ0KK+ael+S9keePig0KK+ael+S9keWEkg0KK+ael+S9kemNvg0KK+ael+S8r+Wysw0KK+ael+S8r+Wzuw0KK+ael+S8r+WLsw0KK+ael+S8tuiyng0KK+ael+WFi+WogQ0KK+ael+WFi+WvsA0KK+ael+WRiOS7uw0KK+ael+WQm+WunA0KK+ael+WQm+eOsg0KK+ael+WQm+eRnA0KK+ael+WQm+e/sA0KK+ael+WQn+Wnvw0KK+ael+Wdh+mDgQ0KK+ael+WmmeWQmw0KK+ael+WmmeWopQ0KK+ael+WmjeWmpA0KK+ael+WtneWFqA0KK+ael+WtneaGsg0KK+ael+Wuj+WdpA0KK+ael+Wuj+S6rg0KK+ael+Wuj+mfiw0KK+ael+Wuj+S5vg0KK+ael+Wuj+mBlA0KK+ael+Wuj+WEkg0KK+ael+Wuj+mMoQ0KK+ael+WykOebig0KK+ael+W7t+WQiQ0KK+ael+W7t+i8nQ0KK+ael+W/l+awkQ0KK+ael+W/l+aIkA0KK+ael+W/l+iJrw0KK+ael+W/l+W/oA0KK+ael+W/l+aYjg0KK+ael+W/l+adsA0KK+ael+W/l+iKrA0KK+ael+W/l+WLhw0KK+ael+W/l+eahw0KK+ael+W/l+WzsA0KK+ael+W/l+WBiQ0KK+ael+W/l+WghQ0KK+ael+W/l+aPmg0KK+ael+W/l+aFjg0KK+ael+W/l+ixqg0KK+ael+W/l+ixqg0KK+ael+W/l+mKmA0KK+ael+W/l+WEkg0KK+ael+W/l+epjg0KK+ael+W/l+isgA0KK+ael+W/l+m+jQ0KK+ael+W/l+m0uw0KK+ael+W/l+m0uw0KK+ael+adjumKmA0KK+ael+adkOS/ig0KK+ael+aym+WQmw0KK+ael+aym+iTgQ0KK+ael+eBvOm+jQ0KK+ael+engOWdqg0KK+ael+engOiKsQ0KK+ael+engOS/kA0KK+ael+engOeOsg0KK+ael+engOe+jg0KK+ael+engOWNvw0KK+ael+engOecnw0KK+ael+engOmbrw0KK+ael+engOmzsw0KK+ael+engOepjg0KK+ael+engOmmqA0KK+ael+iCsuS7lQ0KK+ael+iCsuatow0KK+ael+iCsuawkQ0KK+ael+iCsueUnw0KK+ael+iCsueriw0KK+ael+iCsuWQjQ0KK+ael+iCsuWmgg0KK+ael+iCsuaIkA0KK+ael+iCsuWujw0KK+ael+iCsuaYgA0KK+ael+iCsuePig0KK+ael+iCsumAsg0KK+ael+iCsue+pA0KK+ael+iCsuiQsQ0KK+ael+iCsuiTkw0KK+ael+iCsuaFpw0KK+ael+iCsuizog0KK+ael+iCsumLkg0KK+ael+iCsum6nw0KK+ael+iJr+S/ig0KK+ael+imi+aYjg0KK+ael+iwt+WzsA0KK+ael+iyneePig0KK+ael+mHjOeHlQ0KK+ael+S6q+eHgQ0KK+ael+S+neebiA0KK+ael+S+nea9lA0KK+ael+S+neeShw0KK+ael+S9s+eUnw0KK+ael+S9s+Wujw0KK+ael+S9s+iJrw0KK+ael+S9s+aAoQ0KK+ael+S9s+asow0KK+ael+S9s+S6rQ0KK+ael+S9s+ebiA0KK+ael+S9s+iyng0KK+ael+S9s+mZtQ0KK+ael+S9s+mZvQ0KK+ael+S9s+e2ug0KK+ael+S9s+iTiQ0KK+ael+S9s+WEhA0KK+ael+S9s+aFtg0KK+ael+S9s+aFpw0KK+ael+S9s+aFpw0KK+ael+S9s+a9lA0KK+ael+S9s+eRqQ0KK+ael+S9s+izog0KK+ael+S9s+aoug0KK+ael+S9s+eHlQ0KK+ael+S9s+iHuw0KK+ael+S9s+mdnA0KK+ael+S9s+m0uw0KK+ael+S9s+a9kw0KK+ael+S9qeWQmw0KK+ael+S9qeaAoQ0KK+ael+S9qeiKrA0KK+ael+S9qeiyng0KK+ael+S9qembrw0KK+ael+S9qeiTiQ0KK+ael+S9qeiTiQ0KK+ael+S9qeaFpw0KK+ael+S9qeaoug0KK+ael+S9qemMpg0KK+ael+S9qeeShw0KK+ael+S+kemdkg0KK+ael+WFtuS+rw0KK+ael+WFtumLkg0KK+ael+WNlOadkQ0KK+ael+WSjOengA0KK+ael+WdpOeUnw0KK+ael+WdpOmfiw0KK+ael+WdpOaokQ0KK+ael+WdpOmcgg0KK+ael+Wlh+aooQ0KK+ael+Wtn+S7lQ0KK+ael+Wtn+WQmw0KK+ael+Wtn+S6rQ0KK+ael+Wtn+iQsQ0KK+ael+Wtn+W+tw0KK+ael+Wtn+izog0KK+ael+Wtn+epjg0KK+ael+Wtn+iRsw0KK+ael+Wto+iLlw0KK+ael+Wto+eHgQ0KK+ael+Wul+W7tw0KK+ael+Wul+mghg0KK+ael+Wul+WEhA0KK+ael+Wul+aFtg0KK+ael+Wul+izog0KK+ael+Wul+i8nQ0KK+ael+Wul+a+pA0KK+ael+Wul+isqA0KK+ael+WumOmAuA0KK+ael+WunOWQmw0KK+ael+WunOeOqw0KK+ael+WunOePjQ0KK+ael+WunOiBlg0KK+ael+WunOiTiQ0KK+ael+WunOaFpw0KK+ael+WunOizog0KK+ael+WunOaoug0KK+ael+WunOmMmg0KK+ael+WunOmdnA0KK+ael+WunOiTgQ0KK+ael+WunOWrug0KK+ael+Wum+eRnA0KK+ael+Wum+aoug0KK+ael+WwmuiJrw0KK+ael+Wwmuepjg0KK+ael+WyseiTiQ0KK+ael+WyseiejQ0KK+ael+Wys+WEgA0KK+ael+Wys+W2mQ0KK+ael+W5uOiTiQ0KK+ael+W6mueriw0KK+ael+W+geihmw0KK+ael+W/oOWysw0KK+ael+W/oOaFtg0KK+ael+aAoQ0KK+ael+aAoeaxnQ0KK+ael+aAoeS8tg0KK+ael+aAoeWIqQ0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWdhw0KK+ael+aAoeengA0KK+ael+aAoei+sA0KK+ael+aAoeiKsw0KK+ael+aAoemdkg0KK+ael+aAoeiOiQ0KK+ael+aAoeiPgQ0KK+ael+aAoeiQsQ0KK+ael+aAoeWvrA0KK+ael+aAoeWEkg0KK+ael+aAoeekvQ0KK+ael+aJv+Wysw0KK+ael+aJv+avhQ0KK+ael+aWvOWmrg0KK+ael+aYk+ePig0KK+ael+aYjOW8mA0KK+ael+aYjOizog0KK+ael+aYhueUsA0KK+ael+aYhuaooQ0KK+ael+aYhueFhw0KK+ael+aYjueUnw0KK+ael+aYjuW/lw0KK+ael+aYjuWulw0KK+ael+aYjuadsA0KK+ael+aYjuW9pQ0KK+ael+aYjuiOiQ0KK+ael+aYjualkw0KK+ael+aYjuiqjA0KK+ael+aYjuW+tw0KK+ael+aYjuavhQ0KK+ael+aYjue3rw0KK+ael+aYjui8nQ0KK+ael+aYjuWLsw0KK+ael+aYjueSsA0KK+ael+aYgOm+jQ0KK+ael+aYh+awuA0KK+ael+aYh+m+jQ0KK+ael+adseiMgg0KK+ael+adseavhQ0KK+ael+adsOasow0KK+ael+advuWgrw0KK+ael+aso+eriw0KK+ael+aso+aAoQ0KK+ael+aso+aAoQ0KK+ael+aso+aAoQ0KK+ael+aso+aUvw0KK+ael+aso+aFiA0KK+ael+aso+WEgA0KK+ael+aso+WEgA0KK+ael+aso+avhQ0KK+ael+aso+iqvA0KK+ael+aso+epjg0KK+ael+aso+m6lw0KK+ael+atpuirug0KK+ael+azk+WQmw0KK+ael+azseengA0KK+ael+eJp+WPsA0KK+ael+eOn+WQmw0KK+ael+eOn+Wmjw0KK+ael+eOq+WQmw0KK+ael+eOq+iTiQ0KK+ael+enieazkw0KK+ael+enieeRqQ0KK+ael+iKs+S4gA0KK+ael+iKs+Wmgg0KK+ael+iKs+Wmgg0KK+ael+iKs+W3ng0KK+ael+iKs+iKsw0KK+ael+iKs+aWsA0KK+ael+iKs+WEgA0KK+ael+iKneWNiQ0KK+ael+iKneWvpw0KK+ael+iKrOiKsw0KK+ael+iKuOaaiQ0KK+ael+iKt+etoA0KK+ael+mHkeS7lQ0KK+ael+mHkeaYjg0KK+ael+mHkeiTrg0KK+ael+mHkem+jQ0KK+ael+mVt+W/lw0KK+ael+mVt+aFtg0KK+ael+mbqOi+sg0KK+ael+mdkuW/lw0KK+ael+mdkuaFpw0KK+ael+mdkumcng0KK+ael+S6ruS7gQ0KK+ael+S/oeWFqA0KK+ael+S/oeS9kQ0KK+ael+S/oeWujw0KK+ael+S/oeW7tw0KK+ael+S/oeW7tg0KK+ael+S/oee+qQ0KK+ael+S/neaIkA0KK+ael+S/iuS7sg0KK+ael+S/iuWuhw0KK+ael+S/iuS9kQ0KK+ael+S/iuS8rw0KK+ael+S/iuWujw0KK+ael+S/iuWujw0KK+ael+S/iuW7tw0KK+ael+S/iueUqw0KK+ael+S/iueUtw0KK+ael+S/iuiogA0KK+ael+S/iuadsA0KK+ael+S/iuWCkQ0KK+ael+S/iumAuA0KK+ael+S/iumBlA0KK+ael+S/iuixqg0KK+ael+S/iumtgQ0KK+ael+S/iuizog0KK+ael+S/ium6nw0KK+ael+S/kOS6rQ0KK+ael+S/nuWing0KK+ael+WGoOWuhw0KK+ael+WGoOWQnw0KK+ael+WGoOWujw0KK+ael+WGoOengA0KK+ael+WGoOeRmw0KK+ael+WGoOWEkg0KK+ael+WLh+aIkA0KK+ael+WNl+Wujw0KK+ael+WTgeWunA0KK+ael+WlleaIkA0KK+ael+WlleS8tg0KK+ael+WlleengA0KK+ael+WlleW1kA0KK+ael+WljuWQmw0KK+ael+Wnv+S8tg0KK+ael+Wnv+WQvg0KK+ael+Wnv+WmmQ0KK+ael+Wnv+Wptw0KK+ael+WogeWQjQ0KK+ael+WogeWIqQ0KK+ael+WogeW7tw0KK+ael+WogeiJrw0KK+ael+Wuo+S7uw0KK+ael+Wuo+mwsg0KK+ael+W7uuS4gA0KK+ael+W7uuS7sg0KK+ael+W7uuWuhw0KK+ael+W7uuaIkA0KK+ael+W7uuWQvg0KK+ael+W7uuWujw0KK+ael+W7uuWujw0KK+ael+W7uuW7tw0KK+ael+W7uuW/lw0KK+ael+W7uueUtw0KK+ael+W7uuiJrw0KK+ael+W7uumCpg0KK+ael+W7uuaYhw0KK+ael+W7uuiPrw0KK+ael+W7uuW9sA0KK+ael+W7uueRqQ0KK+ael+W7uuWLsw0KK+ael+W9peaWhw0KK+ael+W9peWQjQ0KK+ael+W9peS6qA0KK+ael+W9peS8tg0KK+ael+W9peWtnQ0KK+ael+W9peWujw0KK+ael+W9peeUqw0KK+ael+W9peS6qw0KK+ael+W9peWYiQ0KK+ael+W9peiIiA0KK+ael+aAneWQnw0KK+ael+aAneiPrw0KK+ael+aAneimqg0KK+ael+aBhueiqQ0KK+ael+aBque+pA0KK+ael+aUv+S9jQ0KK+ael+aUv+iJrw0KK+ael+aUv+a1qQ0KK+ael+aUv+ijlQ0KK+ael+aUv+WEgA0KK+ael+aUv+e3rw0KK+ael+aUv+mLkg0KK+ael+aUv+e/sA0KK+ael+aYpeW5tA0KK+ael+aYpee+jg0KK+ael+aYreWuhw0KK+ael+aYreW/lw0KK+ael+aYremKmA0KK+ael+aYoOaxnQ0KK+ael+aYn+aZqA0KK+ael+aYseWQmw0KK+ael+aYseWBiQ0KK+ael+afkeadjw0KK+ael+afj+W3ng0KK+ael+afj+S8uA0KK+ael+afj+Wujw0KK+ael+afj+adkQ0KK+ael+afj+Wfjg0KK+ael+afj+amrg0KK+ael+afj+e/sA0KK+ael+aziea0iw0KK+ael+a0qumchA0KK+ael+eCuuaWhw0KK+ael+eCs+eFjA0KK+ael+ePiuWmgg0KK+ael+eOsuiHsw0KK+ael+ePjeWmgg0KK+ael+eah+WIqQ0KK+ael+ebiOaIkA0KK+ael+ebiOWQmw0KK+ael+ebiOW/lw0KK+ael+ebiOiQsQ0KK+ael+eliOWdhw0KK+ael+enkeWujw0KK+ael+eni+iJrw0KK+ael+eni+aDoA0KK+ael+eni+iPig0KK+ael+eni+iTrg0KK+ael+e0gOWFgw0KK+ael+e+juWmgg0KK+ael+e+juS8tg0KK+ael+e+juWQmw0KK+ael+e+juWQnw0KK+ael+e+juengA0KK+ael+e+juaAoQ0KK+ael+e+jueOsg0KK+ael+e+juePoA0KK+ael+e+juaZug0KK+ael+e+juiPrw0KK+ael+e+juaFpw0KK+ael+e+jum9oQ0KK+ael+e+v+Wmjw0KK+ael+iHtOWQmw0KK+ael+iHtOepjg0KK+ael+iMguebmw0KK+ael+iLseeUtw0KK+ael+iLseWCkQ0KK+ael+iLsemKmA0KK+ael+iZueWmgg0KK+ael+iZueWujw0KK+ael+iyng0KK+ael+iynuW7tg0KK+ael+mDgeaWhw0KK+ael+mDgeasow0KK+ael+mDgeiKrA0KK+ael+mDgeaVjw0KK+ael+mDgeajrg0KK+ael+mDgembhA0KK+ael+mDgeiYrQ0KK+ael+mfi+S4ng0KK+ael+mfi+W7tw0KK+ael+mfi+WYiQ0KK+ael+mmmeWQmw0KK+ael+WAjeS8ig0KK+ael+WAqeWmgg0KK+ael+WAqeaFpw0KK+ael+S/ruawkQ0KK+ael+WAq+aXrQ0KK+ael+WOn+WQiA0KK+ael+WTsuawkQ0KK+ael+WTsuS7uw0KK+ael+WTsuWujw0KK+ael+WTsuijlQ0KK+ael+WTsui8nQ0KK+ael+Won+Wmgg0KK+ael+WoieWtnA0KK+ael+WutuW8mA0KK+ael+WutuW8mA0KK+ael+WutueUnw0KK+ael+WutuWmgg0KK+ael+WutuS6qA0KK+ael+WutuWLhw0KK+ael+WutuaDoA0KK+ael+WutuaaiQ0KK+ael+WutuiBlg0KK+ael+Wutuemjg0KK+ael+WutumKmA0KK+ael+WutuaFtg0KK+ael+Wutuizog0KK+ael+WutuiVmQ0KK+ael+WutuaWjA0KK+ael+WuueS7nw0KK+ael+WuueiBlg0KK+ael+WxleiBlg0KK+ael+Wzu+aaiQ0KK+ael+WzsOW5tA0KK+ael+W4q+e+pA0KK+ael+W6reeRiw0KK+ael+aBqeWFiQ0KK+ael+aBqemciA0KK+ael+aMr+a1qQ0KK+ael+aMr+aamA0KK+ael+aMr+a/sQ0KK+ael+aZguaWsA0KK+ael+aZieWFqA0KK+ael+aZieeVvw0KK+ael+aZj+Wmgg0KK+ael+aZj+eomg0KK+ael+abuOW8mA0KK+ael+abuOiBvw0KK+ael+abuOaltw0KK+ael+abuOavhQ0KK+ael+abuOa+pA0KK+ael+ahk+izpg0KK+ael+ahguePoA0KK+ael+agvOWmgw0KK+ael+azsOWuiQ0KK+ael+azsOe2rQ0KK+ael+a1muWCkQ0KK+ael+a1qee+pA0KK+ael+ePruWmgg0KK+ael+ePruiPgQ0KK+ael+ePruWEkg0KK+ael+ebiuW8mA0KK+ael+ebiuWmgg0KK+ael+ebiumBiw0KK+ael+ecn+e2ug0KK+ael+elkOemvg0KK+ael+elkOamhg0KK+ael+elkOeRhA0KK+ael+eqiOaEjw0KK+ael+e0oOWmgg0KK+ael+e0oOiyng0KK+ael+e0oOiPrw0KK+ael+e0lOWmgg0KK+ael+e0lOa5mA0KK+ael+iAmOW+tw0KK+ael+iAv+W8mA0KK+ael+iAv+ecnw0KK+ael+iMtQ0KK+ael+i1t+e/jg0KK+ael+i7kumgoQ0KK+ael+mrmOa6kA0KK+ael+WBieawkQ0KK+ael+WBieW9rA0KK+ael+WBiealqA0KK+ael+WBieW+tw0KK+ael+WBpemdkg0KK+ael+WUr+WHsQ0KK+ael+Wci+asow0KK+ael+Wci+elpQ0KK+ael+Wci+mahg0KK+ael+Wci+WLsw0KK+ael+WfueWgrw0KK+ael+WpieWQmw0KK+ael+WpieWptw0KK+ael+WpieeRnA0KK+ael+W0h+Wuhw0KK+ael+W0h+avhQ0KK+ael+W6t+Wvpw0KK+ael+WVn+S6ug0KK+ael+WVn+iIqg0KK+ael+WVn+ixkA0KK+ael+aVj+ijlQ0KK+ael+aihematA0KK+ael+a4heWQiQ0KK+ael+a4hembsg0KK+ael+a3keWQmw0KK+ael+a3keiKrA0KK+ael+a3keeOsg0KK+ael+a3keiyng0KK+ael+a3keWonw0KK+ael+a3keWopQ0KK+ael+a3keaihQ0KK+ael+a3keWqmw0KK+ael+a3keaDoA0KK+ael+a3keiQjQ0KK+ael+a3keiPrw0KK+ael+a3kembrw0KK+ael+a3keWEgA0KK+ael+a3kemMmg0KK+ael+a2teeRnA0KK+ael+ebm+WCkQ0KK+ael+iOmOaAoQ0KK+ael+iNt+iKsw0KK+ael+mbquiQjQ0KK+ael+WCkeiBlg0KK+ael+WJtQ0KK+ael+WLneWCkQ0KK+ael+WNmumahg0KK+ael+Wptw0KK+ael+WvjOe+jg0KK+ael+aDoOaWhw0KK+ael+aDoOaAoQ0KK+ael+aDoOe+jg0KK+ael+aDoOaVjw0KK+ael+aDoOiQjQ0KK+ael+aDoOmbrw0KK+ael+aDoOeQhw0KK+ael+aVpueFjA0KK+ael+aZr+awkQ0KK+ael+aZr+mbsA0KK+ael+aZuuiDvQ0KK+ael+aZuua4hQ0KK+ael+aZuualrQ0KK+ael+acnw0KK+ael+ajrueUsA0KK+ael+a4r+iytA0KK+ael+a5mOaDoA0KK+ael+a5suiIkg0KK+ael+eQpuWciw0KK+ael+eZu+WxsQ0KK+ael+e0q+iPgQ0KK+ael+iIkuaFpw0KK+ael+iPr+S4gA0KK+ael+imluWwig0KK+ael+ipoOe/lA0KK+ael+i2hQ0KK+ael+mAuOaYgA0KK+ael+mAuOWzsA0KK+ael+mAuOiPgQ0KK+ael+mAuOWEkg0KK+ael+mAsuebig0KK+ael+mInumZtg0KK+ael+mbgeaVjw0KK+ael+mbheWQmw0KK+ael+mbheiKrA0KK+ael+mbheeOsg0KK+ael+mbheWAqw0KK+ael+mbhea3sw0KK+ael+mbheWNmg0KK+ael+mbheaDoA0KK+ael+mbheeQqg0KK+ael+mbheiQjQ0KK+ael+mbheiPrw0KK+ael+mbhembrw0KK+ael+mbheaFpw0KK+ael+mbheaFpw0KK+ael+mbheismQ0KK+ael+mbr+Wuow0KK+ael+mbsuatow0KK+ael+mghuWuiQ0KK+ael+mghuiIiA0KK+ael+WLpOa3mQ0KK+ael+W1qeWxsQ0KK+ael+aEj+WAqw0KK+ael+aEj+mosA0KK+ael+aEm+aDoA0KK+ael+aVrOaWhw0KK+ael+aVrOa3tQ0KK+ael+aVrOe/lA0KK+ael+aWsOWHoQ0KK+ael+aWsOeZvA0KK+ael+aaieeakw0KK+ael+aloOajiw0KK+ael+auv+S4gA0KK+ael+avk+ePig0KK+ael+avk+i2hQ0KK+ael+a6kOaysw0KK+ael+eFp+eUtw0KK+ael+eFnOW6rQ0KK+ael+eFjOi7kg0KK+ael+eFpeasvQ0KK+ael+eRnuaYjg0KK+ael+eRnuWutg0KK+ael+eRnumbqg0KK+ael+eRnuW+tw0KK+ael+eRnuiYrQ0KK+ael+eRnOiOiQ0KK+ael+ebn+WCkQ0KK+ael+eluuWLmw0KK+ael+eomuaPmg0KK+ael+e2k+e2rQ0KK+ael+e+qeWzsA0KK+ael+e+qeWCkQ0KK+ael+e+qeaZug0KK+ael+e+qembhA0KK+ael+e+pOWzsA0KK+ael+e+pOiAgA0KK+ael+iBluaAoQ0KK+ael+iBluaBqQ0KK+ael+iBluWCkQ0KK+ael+iBluaZug0KK+ael+iBlumIng0KK+ael+iBluiAgA0KK+ael+iRpuiQjQ0KK+ael+ijleaYlQ0KK+ael+ijleWghQ0KK+ael+ijleWLnQ0KK+ael+ijleiInA0KK+ael+ipqeWHoQ0KK+ael+ipqeWAqQ0KK+ael+ipqea3tQ0KK+ael+ipqembrw0KK+ael+ipqeiLuQ0KK+ael+mBi+a1qQ0KK+ael+mJieaZug0KK+ael+mbjee/lA0KK+ael+mdluS/rg0KK+ael+mgjOWNmg0KK+ael+m8juakjQ0KK+ael+WYieemvg0KK+ael+WYieS/oQ0KK+ael+WYieePjQ0KK+ael+WYieWBiQ0KK+ael+WYieeQqg0KK+ael+WYiee+pA0KK+ael+WYieaFpw0KK+ael+WYiem0uw0KK+ael+aRkeW9pQ0KK+ael+amruasvQ0KK+ael+a8og0KK+ael+a8ouaWjA0KK+ael+edv+aamA0KK+ael+eip+aDoA0KK+ael+eiqeWEkg0KK+ael+eyvua5mw0KK+ael+e2reePig0KK+ael+e2reiOiQ0KK+ael+e/oOiQjQ0KK+ael+iTk+e+mg0KK+ael+ixquW9pQ0KK+ael+mKmOa0sg0KK+ael+mKmOeFjA0KK+ael+mKmOeGmw0KK+ael+mzs+ePjQ0KK+ael+m9iuiUmg0KK+ael+WEgOiZuQ0KK+ael+WinuWogQ0KK+ael+W7o+e+qQ0KK+ael+W+t+aZiQ0KK+ael+aFtuaYhw0KK+ael+aFtuiTiQ0KK+ael+aFp+WQmw0KK+ael+aFp+aAoQ0KK+ael+aFp+ePig0KK+ael+aFp+e+jg0KK+ael+aFp+ePoA0KK+ael+aFp+a3sw0KK+ael+aFp+iQjQ0KK+ael+aFp+iPrw0KK+ael+aFp+mbrw0KK+ael+aFp+m6lw0KK+ael+aGrOiJrw0KK+ael+a+hOa+pA0KK+ael+eRqeiKsw0KK+ael+eRvuiYrQ0KK+ael+iUmueOsg0KK+ael+ihm+iBlg0KK+ael+izouW+lw0KK+ael+mBqeS5iw0KK+ael+WEkuawkQ0KK+ael+WtuOmahg0KK+ael+aGsuaUvw0KK+ael+aGtua3sw0KK+ael+abieWQmw0KK+ael+abieiKsw0KK+ael+abieeOsg0KK+ael+abieWptw0KK+ael+abieiPrw0KK+ael+abieWYiQ0KK+ael+abieWouA0KK+ael+a+pOe+qQ0KK+ael+eHleaihQ0KK+ael+eSnw0KK+ael+epjg0KK+ael+epjuiOiQ0KK+ael+epjuiBsA0KK+ael+iIiOmHlw0KK+ael+iVmea3hw0KK+ael+ixq+S6rQ0KK+ael+mMpuS8tg0KK+ael+mMpumahg0KK+ael+mMpum0uw0KK+ael+mdnOWQnw0KK+ael+mdnOWunA0KK+ael+mdnOaAoQ0KK+ael+mdnOaAoQ0KK+ael+mdnOiKrA0KK+ael+mdnOmbrw0KK+ael+mdnOWEgA0KK+ael+m+jeeUnw0KK+ael+aHi+W3ng0KK+ael+iBsOS7gQ0KK+ael+ismeWmmQ0KK+ael+mnv+mAuA0KK+ael+m0u+WQmw0KK+ael+m0u+W9rA0KK+ael+m0u+mBlA0KK+ael+m0u+mMoQ0KK+ael+emruW8tw0KK+ael+ixkOiInA0KK+ael+eAm+aWhw0KK+ael+eTiuiKsw0KK+ael+mfu+Wonw0KK+ael+m6l+WQmw0KK+ael+m6l+e+jg0KK+ael+m6l+ePoA0KK+ael+m6l+iPrw0KK+ael+m6l+iTiQ0KK+ael+WvtuengA0KK+ael+e5vOW5sw0KK+ael+iAgOWNlw0KK+ael+iXueaWhw0KK+ael+W3jem+jQ0KK+ael+aHv+WQmw0KK+ael+m6nw0KK+ael+Wkhuizkw0KK+ael+iKiuS6qA0KK+ael+aXu+mAuA0KK+ael+eCheW2lA0KK+ael+WnneWdhw0KK+ael+aYtuWuiQ0KK+ael+ePiOWmpA0KK+ael+WArOS4lg0KK+ael+e0k+eRiw0KK+ael+eQh+mbrw0KK+ael+ajqOS7uw0KK+ael+eQrumWlA0KK+ael+eQrOeRnA0KK+ael+aakOW6rQ0KK+ael+eFkum0uw0KK+ael+eRi+erow0KK+ael+etseeOsg0KK+ael+etseiPgQ0KK+ael+iQqeeHlQ0KK+ael+mIuuW6rQ0KK+ael+mIuuWHsQ0KK+ael+mIuuaFpw0KK+ael+eSh+aAoQ0KK+ael+mcmeecnw0KK+ael+mppw0KK+atpuiJr+aWhw0KK+atpuaVrOWSjA0KK+elgee+qeWciw0KK+iKsee+veiWhw0KK+iKsembheaWkA0KK+WIneiLpeWHoQ0KK+mCteaWh+azsA0KK+mCteW/l+ixkA0KK+mCteWllemIng0KK+mCtemDgeaDoA0KK+mCteWLnea3uw0KK+mCteaEm+eOnw0KK+mCteaHt+W+tw0KK+mCseS4gOecnw0KK+mCseS6juWAqQ0KK+mCseWNg+e2ug0KK+mCseWjq+aBrQ0KK+mCseWkp+WJmw0KK+mCseWtkOalkw0KK+mCseWwj+Wrmg0KK+mCseS7geWCkQ0KK+mCseWkqeWujw0KK+mCseaWh+eOiQ0KK+mCseaWh+afjw0KK+mCseaWh+asvQ0KK+mCseaWh+m0uw0KK+mCseS4luawkQ0KK+mCseS7leWCkQ0KK+mCseW5vOWqmg0KK+mCseato+elpQ0KK+mCseawuOWYiQ0KK+mCseeOieeOsg0KK+mCseeri+Wciw0KK+mCseS7sumfuw0KK+mCseWQjeS7lQ0KK+mCseWuieWPsA0KK+mCseacieirkg0KK+mCseWQm+a4hQ0KK+mCseW/l+WFiQ0KK+mCseW/l+W8tw0KK+mCseW/l+aWjA0KK+mCseengOiLsQ0KK+mCseengOmdnA0KK+mCseiJr+avhQ0KK+mCseS9s+advg0KK+mCseS9s+a9gQ0KK+mCseWtn+aciA0KK+mCseWumumCpg0KK+mCseW7tum9oQ0KK+mCseaAoeWWrA0KK+mCseaAoeemjg0KK+mCseaYjOijlQ0KK+mCseaYjueQqg0KK+mCseaso+aAoQ0KK+mCseazk+W9sA0KK+mCseiKs+WunA0KK+mCsemHkeeUnw0KK+mCseS/oeebig0KK+mCseS/oei8nQ0KK+mCseS/iuaYjA0KK+mCseS/iuaZug0KK+mCseS/iuamrg0KK+mCseS/iumclg0KK+mCseWGoOeRnA0KK+mCseWTgeiPrw0KK+mCseWegueroA0KK+mCseWlleaYjg0KK+mCseWlleedvw0KK+mCseWnv+aDoA0KK+mCseW7uuS4rQ0KK+mCseW7uuiqoA0KK+mCseW7uumLkA0KK+mCseW9peeRmw0KK+mCseaAneWYiQ0KK+mCseaUv+a5pw0KK+mCseaYreasvQ0KK+mCseaYseiHuw0KK+mCseafj+eRnA0KK+mCseafj+mclg0KK+mCseePgOelpQ0KK+mCseebiOajoA0KK+mCsee0gOiPrw0KK+mCsee+juaDoA0KK+mCsee+juaFpw0KK+mCseiHtOepjg0KK+mCsei7jea1qQ0KK+mCsemDgea3kQ0KK+mCsemHjeaGsg0KK+mCseWTsueQsw0KK+mCseWutuizog0KK+mCseaMr+WzsA0KK+mCseahgumItA0KK+mCsea1qeW9sA0KK+mCseePrue2ug0KK+mCsee0lOeRiw0KK+mCseWBieWAqw0KK+mCseWBpembhA0KK+mCseWci+aBrQ0KK+mCseWci+a9lA0KK+mCseWfueeRnA0KK+mCseWpieWshQ0KK+mCseWVn+e/lA0KK+mCseaVj+iVmQ0KK+mCsea4hem+jQ0KK+mCsea3keWonw0KK+mCsea3keeQtA0KK+mCsea3keaFpw0KK+mCsee0uea6og0KK+mCseiOieWptw0KK+mCseWHsQ0KK+mCseWJteWEiQ0KK+mCseWvjOa6kA0KK+mCseaDoOWopQ0KK+mCseaDoOipqQ0KK+mCseaZr+iQjQ0KK+mCseaZuuWCkQ0KK+mCsea5mOmbsg0KK+mCsee1kA0KK+mCseipoOa3sw0KK+mCsemAuOe+pA0KK+mCsembheiKrA0KK+mCsembheiOiQ0KK+mCsembhembrw0KK+mCsembheiMnA0KK+mCseWck+aDoA0KK+mCseaVrOmbrw0KK+mCseavk+eOsg0KK+mCseeFpeaWhw0KK+mCseeRnuaihQ0KK+mCseebn+eQhw0KK+mCseiBluaWhw0KK+mCseiBluaWjA0KK+mCseipqea3tQ0KK+mCseipqeeQgQ0KK+mCsemdlumbrw0KK+mCseWYieWCkQ0KK+mCseWYieaFpw0KK+mCseeip+aWvQ0KK+mCsee2reWpiQ0KK+mCsemftueRqQ0KK+mCseW+t+WHsQ0KK+mCseaFp+Wmgg0KK+mCseaFp+Wptw0KK+mCsee3r+W5sw0KK+mCseabieeOsg0KK+mCseaoueWciw0KK+mCsemdnOWunA0KK+mCsemdnOmbrw0KK+mCsemNvuS7gQ0KK+mCseixkOelpQ0KK+mCseeTiuaDoA0KK+mCseeTiuaFpw0KK+mCsemfu+Wvpw0KK+mCsem6l+iLsQ0KK+mCseWvtuiQsQ0KK+mCsee5vOeRqQ0KK+mCseiYiumdnA0KK+mCsemmqOWEgA0KK+mCsem9oemgpA0KK+mCsemhr+ahkw0KK+mCsemhr+mclg0KK+mCseWntee2vg0KK+mCseeQrOa3kQ0KK+mCseakv+WHsQ0KK+mCseetsembrw0KK+mCsemIuuaWkA0KK+mCseeejQ0KK+mHkeWjq+eCug0KK+mHkeS6rOamrg0KK+mHkeaYjui8nQ0KK+mHkeaUv+irug0KK+mHkeePnueQsw0KK+mHkeWLpA0KK+mHkeejig0KK+S+r+WKm+e2rQ0KK+S+r+aWh+WTsg0KK+S+r+ato+m0uw0KK+S+r+WmguiKrA0KK+S+r+Wuj+aYjA0KK+S+r+engOWmgg0KK+S+r+S9s+WFuA0KK+S+r+WHveengA0KK+S+r+Wys+Wujw0KK+S+r+aYhuWKqQ0KK+S+r+aso+e/sA0KK+S+r+S/oeWuhw0KK+S+r+WSuOS7sA0KK+S+r+W9peS8uA0KK+S+r+afj+mdkg0KK+S+r+iHtOS4rQ0KK+S+r+e0oOmbsg0KK+S+r+a3temKmA0KK+S+r+WNmuWFgw0KK+S+r+aZr+WLmw0KK+S+r+iytOm9oQ0KK+S+r+mbhembrw0KK+S+r+WYieePjQ0KK+S+r+aFtui+sA0KK+S+r+mdnOaxnQ0KK+S+r+m6l+aFpw0KK+S+r+mciOmdkg0KK+S/nuS9s+WHoQ0KK+S/nuaziumclg0KK+S/nuiDveaWuQ0KK+S/numbheWptw0KK+S/nuiKiuiWiA0KK+WnnOWFg+mIng0KK+WnnOWQjuaAoQ0KK+WnnOWuj+amrg0KK+WnnOS9qeS8tg0KK+WnnOaYjuWujw0KK+WnnOiKneaAoQ0KK+WnnOW7uumKmA0KK+WnnOWgiea9gQ0KK+WnnOWHseWCkQ0KK+WnnOaZuumIng0KK+WnnOmbheWptw0KK+WnnOe+qeaEtw0KK+WnnOWinueCqw0KK+WnnOaouemMpg0KK+WnnOemruixqg0KK+WnnOaXu+WnjQ0KK+WnmuWPiOaWhw0KK+WnmuaWuea9lA0KK+Wnmueri+S4iQ0KK+WnmuWFi+mIng0KK+WnmuW/l+aGsg0KK+WnmuS9s+aFpw0KK+WnmuWul+aouA0KK+WnmuaAoeiYrQ0KK+WnmumHkea6kA0KK+WnmuWogeWuhw0KK+WnmuebiOS7uw0KK+Wnmue0oOiYrQ0KK+WnmuWHseaWhw0KK+WnmueQm+WvjA0KK+WnmueRnuizog0KK+WnmuW+t+m6nw0KK+Wnmum6l+S6ug0KK+Wuo+W/l+WHjA0KK+W+i+aMr+aPmg0KK+aWveWkp+e2rQ0KK+aWveaWhw0KK+aWveaWh+ixqg0KK+aWveWPr+mahg0KK+aWveeOieWTgQ0KK+aWveWQjeeOpQ0KK+aWveWuh+mnvw0KK+aWveeZvuaoug0KK+aWveS8r+WunA0KK+aWveWtneW+tw0KK+aWveWuj+a+pA0KK+aWveW/l+ixqg0KK+aWveengOWumw0KK+aWveiCsueRnA0KK+aWveS9s+WQmw0KK+aWveS9qeWQmw0KK+aWveS9qeiPrw0KK+aWveWtn+Wujw0KK+aWveWunOWRiA0KK+aWveWum+ebtA0KK+aWveaAoeWmgg0KK+aWveaAoemItA0KK+aWveaYjuWmjQ0KK+aWveadsOadvg0KK+aWveeOq+WQmw0KK+aWvembqOS9kA0KK+aWveS/iuWQjQ0KK+aWveS/iuizog0KK+aWveWllea2tQ0KK+aWveW7uuWuhw0KK+aWveW9peeUqw0KK+aWveaUv+ixqg0KK+aWveafj+Wmgg0KK+aWveeah+aXrQ0KK+aWvee+jueRmw0KK+aWvemDgeiVmQ0KK+aWveaMr+WdpA0KK+aWvee0oOWNvw0KK+aWveWBpem0uw0KK+aWveaVj+eUtw0KK+aWvea3keaDoA0KK+aWvembquWnvw0KK+aWveWNmuWFgw0KK+aWveWvjOa1qQ0KK+aWveaDoOeQqg0KK+aWveaZuuWLhw0KK+aWveeoi+WHsQ0KK+aWveipoOeEtg0KK+aWvemInuWAqw0KK+aWvembheWonw0KK+aWvembr+eQqg0KK+aWvee+qea7hA0KK+aWveWYieeQqg0KK+aWvea8ouW2uA0KK+aWveiqjOixqg0KK+aWveaFp+WQmw0KK+aWveeRvuWAqw0KK+aWveabiembrw0KK+aWvemdnOaAoQ0KK+aWveeTiuWmgg0KK+aWvemmqOiytA0KK+aWveaXu+WunA0KK+aWveeRi+eRnA0KK+afr+WKm+ixqg0KK+afr+WFg+WHsQ0KK+afr+aWh+elpQ0KK+afr+S4luizog0KK+afr+awuOW/oA0KK+afr+WFqOebig0KK+afr+S8r+W9pQ0KK+afr+Wuj+WogQ0KK+afr+W/l+aYjg0KK+afr+aym+W/lw0KK+afr+iJr+iVmQ0KK+afr+S9s+engA0KK+afr+S9qeWQmw0KK+afr+WdpOaYjg0KK+afr+Wul+S8rw0KK+afr+Wum+WQmw0KK+afr+aAoeeOnw0KK+afr+aYjue/sA0KK+afr+aso+WEgA0KK+afr+mHkeadjw0KK+afr+S/iuWQiQ0KK+afr+S/iumahg0KK+afr+Wuo+Wuhw0KK+afr+W9peaXrQ0KK+afr+aYreeUnw0KK+afr+ebiOWmgg0KK+afr+iZueWmgg0KK+afr+azsOWQjQ0KK+afr+aVj+ebmw0KK+afr+a3keaDoA0KK+afr+mAo+eUsA0KK+afr+WNmuWFgw0KK+afr+WvjOitsA0KK+afr+aDoOiPsQ0KK+afr+aZuuS7gQ0KK+afr+aji+ajow0KK+afr+mWlOaWhw0KK+afr+mbheiPrw0KK+afr+avk+iQjQ0KK+afr+WYieaxtg0KK+afr+eip+aYrQ0KK+afr+mzs+WEgA0KK+afr+aGsuiSvA0KK+afr+mMpueUtw0KK+afr+eTiumOow0KK+afr+aXu+iJrw0KK+afpeaFp+eQsw0KK+afs+WmguW6rQ0KK+afs+S9qeWQmw0KK+afs+W7uuiJrw0KK+afs+iMueiQjQ0KK+afs+aji+WFgw0KK+afs+WYiei7kg0KK+afs+m2tOadvg0KK+auteaYjuWujw0KK+autemAuOi7kg0KK+a0quS4gOS4rQ0KK+a0quWKm+WjuQ0KK+a0quS6jumWlA0KK+a0quWNg+aDoA0KK+a0quWNg+eQpg0KK+a0quWjq+iCsg0KK+a0quWjq+WCkQ0KK+a0quWkp+eCug0KK+a0quWtkOWptw0KK+a0quWwj+aDoA0KK+a0quWFg+aWjA0KK+a0quaWh+aYjg0KK+a0quaWh+WHsQ0KK+a0quaWh+izog0KK+a0quS4luaYhw0KK+a0quS4luWYiQ0KK+a0quWKoOmBlA0KK+a0quato+WFiQ0KK+a0quawuOaYjA0KK+a0queOieiKsw0KK+a0queOieWptw0KK+a0queOieiSqA0KK+a0quS6pua9lA0KK+a0quWFieWEhA0KK+a0quWQjeihoQ0KK+a0quWuieS/kA0KK+a0queZvuizog0KK+a0quS9keaYhw0KK+a0quWQm+elpQ0KK+a0quWuj+aUvw0KK+a0quW/l+eUnw0KK+a0quW/l+aYjg0KK+a0quW/l+mbhA0KK+a0quW/l+mKmA0KK+a0quadkemKmA0KK+a0quengOiKsw0KK+a0quengOeRqQ0KK+a0quiJr+asow0KK+a0quS+neeQqg0KK+a0quS9s+eQsw0KK+a0quS9qeS8tg0KK+a0quWdpOmMoQ0KK+a0quWtn+eRpA0KK+a0quWul+a8og0KK+a0quWunOiJrw0KK+a0quWwmumKmA0KK+a0quW/oOiBlg0KK+a0quaAoeecnw0KK+a0quaYjuWMlg0KK+a0quaYjuWBiQ0KK+a0quaYjum+jQ0KK+a0quaso+aYhw0KK+a0quiKt+a8qg0KK+a0quS/oeWYiQ0KK+a0quS/iumbhA0KK+a0quWuo+eruQ0KK+a0quaAneeQqg0KK+a0quaUv+mciA0KK+a0quafj+Wvpw0KK+a0queni+iPrw0KK+a0que+juiQjQ0KK+a0quiMgumbhA0KK+a0quiLseWCkQ0KK+a0qumDgeW6rQ0KK+a0qumHjeWNvw0KK+a0quWutueQqg0KK+a0quaCheeOsg0KK+a0quaMr+ebig0KK+a0quaMr+mKmA0KK+a0quagueiPrw0KK+a0quePruiKsw0KK+a0quePrue2ug0KK+a0quiAv+aZug0KK+a0quWBieWTsg0KK+a0quWBieWCkQ0KK+a0quWBieirrQ0KK+a0quWBpeWzsA0KK+a0quabvOePig0KK+a0quWci+WTsg0KK+a0quWci+aDnw0KK+a0quWci+e/lA0KK+a0quWci+iAgA0KK+a0quWfueWAqw0KK+a0quWpiee0iw0KK+a0quW0h+aBqQ0KK+a0quW0keWBpQ0KK+a0quW+oeW9lw0KK+a0quWVn+WBiQ0KK+a0quaVj+iKsw0KK+a0quaVj+mbhA0KK+a0qua4heWBpQ0KK+a0qua3keiyng0KK+a0qua3keaDoA0KK+a0qua3kea3qQ0KK+a0que0ueaWhw0KK+a0que/juizkw0KK+a0qumbquiKsw0KK+a0quWLneWHsQ0KK+a0quaDoOaWhw0KK+a0quaDoOajiw0KK+a0quaZtOaZtA0KK+a0quaZuuizog0KK+a0queQpuaDoA0KK+a0quiPgemahg0KK+a0quiPsee0qw0KK+a0qumahuaZug0KK+a0qumbheiLkw0KK+a0qumbhembrw0KK+a0qumghueUtw0KK+a0quaFiOS8tg0KK+a0quaEt+W7tw0KK+a0qualqOmCpg0KK+a0quavk+Wsqg0KK+a0queFjOWHsQ0KK+a0queRnuWggg0KK+a0queRnuiTiQ0KK+a0queRnum0uw0KK+a0quiQrOW+lw0KK+a0quiBluaBqQ0KK+a0quiQsemLkg0KK+a0quijleeEnA0KK+a0quipqembhQ0KK+a0qumdluWHsQ0KK+a0quWYieWcuw0KK+a0quWYieePig0KK+a0quWYieeQsw0KK+a0quWYieiTrg0KK+a0quWYiemnvw0KK+a0quWvpw0KK+a0quamrui8nQ0KK+a0queUhOiLoQ0KK+a0queiqeWBiQ0KK+a0que2ug0KK+a0que2reiJrw0KK+a0que2rea+pA0KK+a0quiCh+W9pQ0KK+a0quiqjOW8tw0KK+a0qumKmOS9kA0KK+a0qumKmOmZvQ0KK+a0qumKmOmNvg0KK+a0qumtgeempw0KK+a0quWvrOazsA0KK+a0quaFtumKmA0KK+a0quaFp+eOsg0KK+a0quaFp+iQjQ0KK+a0queRqeePjQ0KK+a0quWEkuaYjg0KK+a0quabieW1kA0KK+a0quiVmeW/gw0KK+a0qumdnOaAoQ0KK+a0quiBsumKkw0KK+a0quemruWQmw0KK+a0quiXneiPgQ0KK+a0qum6l+Wnvw0KK+a0qum6l+mIng0KK+a0que5vOizog0KK+a0quWEt+mzsw0KK+a0quWKreWFgw0KK+a0quaZouaDhw0KK+a0quaWjOWHsQ0KK+a0quathuaAoQ0KK+a0quetseS9qQ0KK+a0qumIuuaruw0KK+ebuOWtn+ixqg0KK+e0gOS6uueRiw0KK+e0gOaWh+asvQ0KK+e0gOWQieWmgg0KK+e0gOS8r+eSgQ0KK+e0gOW/l+mclg0KK+e0gOS9s+WunA0KK+e0gOWul+mclg0KK+e0gOaAoeWptw0KK+e0gOazk+Wgrw0KK+e0gOmVt+iIiA0KK+e0gOWogee+vQ0KK+e0gOebiOW3ng0KK+e0gOelluixqg0KK+e0gOa3keiKsw0KK+e0gOWNmuaVjw0KK+e0gOaZuuS7gQ0KK+e0gOmInumWjg0KK+e0gOmghuiIiA0KK+e0gOmKmOWdpA0KK+e0gOabieaBqQ0KK+e0gOiYrea9lA0KK+iDoeS4geWFgw0KK+iDoeWwj+iQjQ0KK+iDoeW/g+aFpw0KK+iDoeaWh+eRnA0KK+iDoeS4luiejQ0KK+iDoeato+e/sA0KK+iDoeeOieaFpw0KK+iDoeWQjOS6rg0KK+iDoeaIkOeroA0KK+iDoeW7t+WogQ0KK+iDoeW/l+mKmA0KK+iDoeiCsue2rQ0KK+iDoeS9s+emjg0KK+iDoeWumuWuhw0KK+iDoeaAoeiKsw0KK+iDoeadseaYhw0KK+iDoeiKs+aFiA0KK+iDoemHkeeBnQ0KK+iDoeW4nQ0KK+iDoeeOsuWpiQ0KK+iDoeiLpeeUtw0KK+iDoeS/rueRgA0KK+iDoeWutuamrg0KK+iDoeWxlemKmA0KK+iDoeaMr+S4rQ0KK+iDoeabuOe2vw0KK+iDoee0lOiPgQ0KK+iDoeS5vumLkg0KK+iDoeaOiOa3sw0KK+iDoea3keWQmw0KK+iDoea3kembhQ0KK+iDoeWHseaZug0KK+iDoeWNmuehrw0KK+iDoeaDoOWptw0KK+iDoeaZr+mbrw0KK+iDoeaZuumKmA0KK+iDoeero+ehrw0KK+iDoeiytOaciA0KK+iDoembheWmjQ0KK+iDoembheaZug0KK+iDoemghumahg0KK+iDoeavk+eZvA0KK+iDoeeRnua0mQ0KK+iDoeipqeiPgQ0KK+iDoeWYieecnw0KK+iDoeeip+WqnA0KK+iDoei1q+W7tw0KK+iDoeaFp+Wmgg0KK+iDoeaGsumclg0KK+iDoemdnOiLkQ0KK+iDoeeTiuaWhw0KK+iDoeiAgOS7gQ0KK+iDoeaHv+W/gw0KK+iDoeeFkuePjQ0KK+iMg+S4reWogQ0KK+iMg+aWh+aUvw0KK+iMg+S4lueSiw0KK+iMg+eOieiQsQ0KK+iMg+WQieaFtg0KK+iMg+Wdh+aymw0KK+iMg+eUq+Wulw0KK+iMg+S9s+mbrw0KK+iMg+aYjuS4rQ0KK+iMg+WGoOWBiQ0KK+iMg+WnnOW9peWmgg0KK+iMg+WnnOaFp+aAoQ0KK+iMg+eni+mcng0KK+iMg+mDgeWmgg0KK+iMg+WutuiqoA0KK+iMg+aMr+aWhw0KK+iMg+aMr+m6nw0KK+iMg+iAlemtgQ0KK+iMg+Wci+Wfug0KK+iMg+a3keeOsg0KK+iMg+iOieiLkw0KK+iMg+WNmuW9sA0KK+iMg+aPmuWunA0KK+iMg+aPmumosA0KK+iMg+aZuuasvQ0KK+iMg+mInuWCkQ0KK+iMg+avk+iyng0KK+iMg+eRnuelpQ0KK+iMg+ipqea8qg0KK+iMg+a8ouWQmw0KK+iMg+e2seizog0KK+iMg+aFp+Wmgg0KK+iMg+abieaAoQ0KK+iMg+eAmuaWhw0KK+iMg+iAgOiBsA0KK+iMg+eQh+eShw0KK+iLl+W+jOWCkQ0KK+ioiOerueWuhw0KK+mfi+S6uueRnA0KK+mfi+W/l+m0uw0KK+mfi+ahguS7gQ0KK+WAmeaYuui+sA0KK+WAqueOiem+jQ0KK+WAquW/l+m0uw0KK+WAquWogemBoA0KK+WAquWBieaZug0KK+WAqua3keWptw0KK+WAqueRnuacnw0KK+WAquaFp+ePig0KK+WHjOS4luiKsw0KK+WHjOaYjuW+tw0KK+WHjOmbquaDoA0KK+WHjOaFp+iQjQ0KK+WUkOWNg+aDoA0KK+WUkOaWh+izog0KK+WUkOawuOiIiA0KK+WUkOS9nOixqg0KK+WUkOmCpuazsA0KK+WUkOaYjuW/lw0KK+WUkOaAnee2rQ0KK+WUkOiLseWonA0KK+WUkOePruePig0KK+WUkOWci+W/oA0KK+WUkOa3keiKrA0KK+WUkOacnee3rw0KK+WUkOmbheeHlQ0KK+WUkOe+qeWgrw0KK+WUkOWYiee+mg0KK+WUkOmftumcmQ0KK+WUkOabieW+rg0KK+WUkOitveeOqw0KK+Wkj+ato+mCpg0KK+Wkj+iJr+eOiQ0KK+Wkj+aYpemmmQ0KK+Wkj+a3keiTiQ0KK+Wkj+mBlOWBiQ0KK+Wkj+aFp+m9oQ0KK+Wkj+e/iuWAqw0KK+Wtq+S4iumbrw0KK+Wtq+Wjq+eDmA0KK+Wtq+WFg+S/ig0KK+Wtq+aWueWEgA0KK+Wtq+WPr+eCug0KK+Wtq+awuOS/oQ0KK+Wtq+eri+awkQ0KK+Wtq+WmguW9rA0KK+Wtq+S8r+S4rQ0KK+Wtq+W/l+WLhw0KK+Wtq+iCsuiKnQ0KK+Wtq+WNlOijlQ0KK+Wtq+W/oOWHsQ0KK+Wtq+aYjumnvw0KK+Wtq+mHh+iWhw0KK+Wtq+W7uuW0tA0KK+Wtq+e+juiLsQ0KK+Wtq+mDgeWptw0KK+Wtq+aMr+a2vA0KK+Wtq+ePruiKsw0KK+Wtq+WBieWAqw0KK+Wtq+Wci+abuA0KK+Wtq+W0h+WTsg0KK+Wtq+aDn+atow0KK+Wtq+a3keiKrA0KK+Wtq+WCkQ0KK+Wtq+eQpg0KK+Wtq+mAuOeHlQ0KK+Wtq+WCs+WHsQ0KK+Wtq+a6ouWggg0KK+Wtq+edpuWCkQ0KK+Wtq+mBk+mahg0KK+Wtq+WYieiUrQ0KK+Wtq+e2sQ0KK+Wtq+ixquW/lw0KK+Wtq+mKmOm0uw0KK+Wtq+aFp+a0pQ0KK+Wtq+WtuOWEgA0KK+Wtq+m+jee/lA0KK+Wtq+m6l+Wonw0KK+Wtq+eCmOWunA0KK+Wtq+eRgA0KK+WuruWnjeWnjQ0KK+W4q+WunOmdkg0KK+W+kOS5meWPrw0KK+W+kOWNg+elkA0KK+W+kOWNg+mbhQ0KK+W+kOWjq+WLmw0KK+W+kOWtkOW5sw0KK+W+kOWtkOW8tw0KK+W+kOWwj+iQjQ0KK+W+kOS7geS5vg0KK+W+kOW/g+WunA0KK+W+kOaWh+WQmw0KK+W+kOaWh+ebig0KK+W+kOaciOWopQ0KK+W+kOS4luWfug0KK+W+kOS7leazkw0KK+W+kOW3p+WHjA0KK+W+kOato+aAoQ0KK+W+kOawuOWFiQ0KK+W+kOawuOmztA0KK+W+kOeOieiKrA0KK+W+kOeOieaFiA0KK+W+kOeri+mBlA0KK+W+kOWFieW5sw0KK+W+kOWMoeW5sw0KK+W+kOWmguaYhw0KK+W+kOacieaFtg0KK+W+kOiJvuS8tg0KK+W+kOWFi+mIng0KK+W+kOWuj+Wuhw0KK+W+kOW/l+Wuhw0KK+W+kOW/l+WBiQ0KK+W+kOW/l+ixqg0KK+W+kOadjuWFqA0KK+W+kOengOeOsg0KK+W+kOiCsuaFiA0KK+W+kOS9s+Wmgg0KK+W+kOS9qeWmgg0KK+W+kOS9qemMpg0KK+W+kOWul+a6kA0KK+W+kOW/oOe+qQ0KK+W+kOaYhue+vw0KK+W+kOaYjuiPrw0KK+W+kOaYjum0uw0KK+W+kOadvum0uw0KK+W+kOaso+Wmjw0KK+W+kOefpeacrA0KK+W+kOmHh+iWhw0KK+W+kOS/oeS4rQ0KK+W+kOS/iuWCkQ0KK+W+kOWlleaaiQ0KK+W+kOaAnee2rQ0KK+W+kOafj+mfnA0KK+W+kOe+jueOiQ0KK+W+kOe+juiPrw0KK+W+kOiLpemmqA0KK+W+kOiLseeiqQ0KK+W+kOmDgeaoug0KK+W+kOWutualtw0KK+W+kOaMr+a0sg0KK+W+kOabuOaUvw0KK+W+kOa1muWCkQ0KK+W+kOePruemjg0KK+W+kOWBieWHoQ0KK+W+kOWBieWzuw0KK+W+kOWBiemghg0KK+W+kOWBpemghg0KK+W+kOWci+WAqw0KK+W+kOWci+aZug0KK+W+kOWci+iAgA0KK+W+kOWfuea6tg0KK+W+kOWpieWEgA0KK+W+kOW0keW0mQ0KK+W+kOW+nuiqpQ0KK+W+kOaVj+iKsw0KK+W+kOaVj+iPrw0KK+W+kOaiheWHjA0KK+W+kOa3keWonw0KK+W+kOa3keWsqg0KK+W+kOelpeeEtg0KK+W+kOiOieecnw0KK+W+kOmbqueTig0KK+W+kOWvjOW6tw0KK+W+kOaDoOePjQ0KK+W+kOaOjOeRmw0KK+W+kOacneW6tw0KK+W+kOiIkuS6ng0KK+W+kOipoOWqmw0KK+W+kOmAsuWvtg0KK+W+kOmbheajiw0KK+W+kOmghuWujw0KK+W+kOaEm+Wptw0KK+W+kOavk+iJrw0KK+W+kOeRmumOgg0KK+W+kOeRnuaBrQ0KK+W+kOeRnuiBsA0KK+W+kOeRnOaVjw0KK+W+kOijleW9rA0KK+W+kOizh+iovA0KK+W+kOmdluaDoA0KK+W+kOWYieWujw0KK+W+kOWYieeQsw0KK+W+kOWYiemnkg0KK+W+kOWkoum6nw0KK+W+kOamrui+sA0KK+W+kOeUhOm0uw0KK+W+kOemj+elpQ0KK+W+kOe2reaPmg0KK+W+kOe/oOmBmQ0KK+W+kOmKmOS9mw0KK+W+kOmKmOismQ0KK+W+kOmzs+aGtg0KK+W+kOW+t+izog0KK+W+kOaFp+W/gw0KK+W+kOaFp+Wptw0KK+W+kOavheWujw0KK+W+kOmch+adsQ0KK+W+kOabieetoA0KK+W+kOiIiOa3pg0KK+W+kOmdnOWEgA0KK+W+kOm0u+S7gQ0KK+W+kOi0iueZuw0KK+W+kOm6l+ePjQ0KK+W+kOe5vOaUvw0KK+W+kOaru+iKsw0KK+W+kOa3rw0KK+W+kOiPoeempw0KK+W+kOeRi+iKrA0KK+W+kOetseiKuA0KK+W+kOmIuue2vg0KK+W+kOmRq+ixqg0KK+abuOeZvuW3nQ0KK+ahkeaAoeeniw0KK+aftOWtuOiInA0KK+aut+iKt+iLpQ0KK+aut+e0uemWlA0KK+aut+iCh+mZvQ0KK+a1puabiemzsw0KK+eVmeS5vueEnA0KK+elluabiemzsw0KK+enpuS4gOW5sw0KK+enpuWuieeriw0KK+enpuW7uueRiw0KK+enpuaik+mKmA0KK+enpuiBluWCkQ0KK+enpum6l+mbhQ0KK+e/geS6jueQqg0KK+e/geWjq+i7kg0KK+e/geWtkOWptw0KK+e/geaWh+iMuQ0KK+e/geS7peWTsg0KK+e/geeOieWonw0KK+e/geS7suizog0KK+e/geWuh+mnvw0KK+e/geWuj+mclg0KK+e/geW/l+ixqg0KK+e/geiCsueolA0KK+e/geS9s+mfuw0KK+e/geWul+ijlQ0KK+e/geaYjuWuiQ0KK+e/geael+mLjA0KK+e/geS/oeiHug0KK+e/geafj+iBlg0KK+e/geiLseaWjA0KK+e/geaMr+iKsw0KK+e/geePruaAoQ0KK+e/geWBieWAqw0KK+e/geWBpee3rw0KK+e/geWfuua4hQ0KK+e/geW0h+W6rQ0KK+e/geWVn+S/oQ0KK+e/geaZqOiAgA0KK+e/gea3keiPrw0KK+e/geWjueWnvw0KK+e/gea7i+ePrg0KK+e/gemAuOi7kg0KK+e/gembheaDoA0KK+e/geavk+e/jg0KK+e/geeRnue+mg0KK+e/gee+qeWulw0KK+e/gem8juaYjA0KK+e/geWYiee/jg0KK+e/geWkouWQmw0KK+e/geeip+WjlQ0KK+e/gee2reiJrw0KK+e/gemKmOmBnA0KK+e/geW+t+WNvw0KK+e/geabieiKrA0KK+e/gemdnOeRnA0KK+e/gem6kuaYjA0KK+e/geWEt+WAqQ0KK+e/geeRi+Wonw0KK+e/gemdmuaZjw0KK+iNiuWBieaUvw0KK+iigeWkqeiLsQ0KK+iigeWmguWyoQ0KK+iigeaAoeiMuQ0KK+iigeafj+WBiQ0KK+iigeWBieWAqw0KK+iigeWVn+mRqw0KK+iigembheaDoA0KK+iigeamrueHpg0KK+iigemdnOiPrw0KK+iomOS9s+mbrw0KK+mDneaUv+m0uw0KK+mmrOS4gOaWhw0KK+mmrOS4rempig0KK+mmrOWNoOWzsA0KK+mmrOeOieWonw0KK+mmrOWuieWmrg0KK+mmrOW/l+aYjg0KK+mmrOS9s+S8tg0KK+mmrOWys+Wujw0KK+mmrOWNl+asow0KK+mmrOiLseWCkQ0KK+mmrOePruWptw0KK+mmrOWci+iVvg0KK+mmrOa3keWNvw0KK+mmrOaZuuWQmw0KK+mmrOeFjOWdpA0KK+mmrOWYiemahg0KK+mmrOe3kuW3nQ0KK+mmrOaGtuWptw0KK+mmrOaru+iPgQ0KK+mrmOS4gOmKmA0KK+mrmOWNg+aDoA0KK+mrmOWjq+aYjg0KK+mrmOWtkOa3hw0KK+mrmOWwj+aWhw0KK+mrmOWPi+aFpw0KK+mrmOaWh+W9rA0KK+mrmOS4luaYjA0KK+mrmOS4u+W8tw0KK+mrmOW8mOW3ng0KK+mrmOato+Wciw0KK+mrmOeOieWmgg0KK+mrmOeOiemmqA0KK+mrmOS8iuS/ig0KK+mrmOWQiOWKqQ0KK+mrmOaXreaFtg0KK+mrmOiHs+WvrA0KK+mrmOWuj+mKmA0KK+mrmOW/l+WBiQ0KK+mrmOW/l+mtgQ0KK+mrmOengOmItA0KK+mrmOS6nuiYrQ0KK+mrmOS9qeWQnw0KK+mrmOWmrueRiw0KK+mrmOWul+eFkg0KK+mrmOW5uOeRnA0KK+mrmOaYjg0KK+mrmOaYjueRiw0KK+mrmOaso+a9lA0KK+mrmOmHkeW/lw0KK+mrmOWSuOWvpg0KK+mrmOW9peWLmw0KK+mrmOafj+ixqg0KK+mrmOe+juiKsw0KK+mrmOiLseWHsQ0KK+mrmOmDgeWHsQ0KK+mrmOWzsA0KK+mrmOagqQ0KK+mrmOePrue2ug0KK+mrmOWBieWAqw0KK+mrmOWBpQ0KK+mrmOWci+WTsg0KK+mrmOWci+Wvpw0KK+mrmOWfueecnw0KK+mrmOW9rOWOnw0KK+mrmOWVn+elkA0KK+mrmOaVj+WoiQ0KK+mrmOa3keiKsw0KK+mrmOa3keaDoA0KK+mrmOesmei8lA0KK+mrmOmbquWNvw0KK+mrmOWptw0KK+mrmOaZr+aAoQ0KK+mrmOeQquiIkg0KK+mrmOipoOW9pQ0KK+mrmOmbheiKsw0KK+mrmOmbheiFuQ0KK+mrmOaEj+emjg0KK+mrmOavk+i+sA0KK+mrmOeFp+mWlA0KK+mrmOeRnueRpA0KK+mrmOe+qeW/oA0KK+mrmOipqeWoiQ0KK+mrmOmgjOa4hQ0KK+mrmOWYieiJrw0KK+mrmOWYieW2vA0KK+mrmOW9sOmahg0KK+mrmOedv+iYrQ0KK+mrmOerr+eOqw0KK+mrmOe/oOe/jg0KK+mrmOmKgOeplw0KK+mrmOmKmOWCkQ0KK+mrmOmKmOeQhw0KK+mrmOWEgOmKmA0KK+mrmOaFtuaWjA0KK+mrmOaFp+iQjQ0KK+mrmOaGtuWmgg0KK+mrmOmdnOawkQ0KK+mrmOiWh+iWhw0KK+mrmOitnOWAqw0KK+mrmOm6l+iVmQ0KK+mrmOmhpeWTsg0KK+mrmOaWjOmRqw0KK+mrmOetseaFpw0KK+mrmOiWj+a2tQ0KK+WVhuW8mOaYkw0KK+WVhumzs+iLsQ0KK+Wvh+m6l+mbrw0KK+W0lOS9kee2rQ0KK+W0lOWAqeiLkw0KK+W0lOeQpuawkQ0KK+W4uOaso+eOiQ0KK+W6t+S5g+aciA0KK+W6t+S7leWulw0KK+W6t+Wuh+Wvpw0KK+W6t+aUuOiPrw0KK+W6t+Wtn+aEjw0KK+W6t+mHkemLkg0KK+W6t+e+jueOsg0KK+W6t+WutuW9sA0KK+W6t+W6reeRng0KK+W6t+mFjeWuuQ0KK+W6t+WCkeawkQ0KK+W6t+aZuuaYhw0KK+W6t+eZu+WCkQ0KK+W6t+mbheWptw0KK+W6t+eomuaamA0KK+W6t+WYieiYrQ0KK+W6t+abieiVmQ0KK+W6t+m6l+iyng0KK+W8tQ0KK+W8teS4gOm0uw0KK+W8teS5g+aWhw0KK+W8teS5g+WBiQ0KK+W8teWKm+S7gQ0KK+W8teWKm+Wkqw0KK+W8teWPiOWNgw0KK+W8teWPiOeJmQ0KK+W8teWNg+mHjA0KK+W8teWjq+izog0KK+W8teWtkOaYjA0KK+W8teWwj+iQjQ0KK+W8teS4reiWhw0KK+W8teWwuemmqA0KK+W8teS7geadsA0KK+W8teS7geWCkQ0KK+W8teS7geiBsA0KK+W8teWFgw0KK+W8teWFg+mahg0KK+W8teWFg+m0uw0KK+W8teWPiw0KK+W8teWkqemzsw0KK+W8teWwpOWtkA0KK+W8teW/g+aAoQ0KK+W8teW/g+eRnA0KK+W8teW/g+mmqA0KK+W8teaWh+iCsg0KK+W8teaWh+aYjg0KK+W8teaWh+W9pQ0KK+W8teaWh+eOsg0KK+W8teaWh+i7kg0KK+W8teaWh+asvQ0KK+W8teaWh+mbrw0KK+W8teaWh+amrg0KK+W8teaWh+ixqg0KK+W8teaWh+aotQ0KK+W8teaWh+eIkA0KK+W8teaWh+mosA0KK+W8teaciOWuuQ0KK+W8teS4luS4rQ0KK+W8teS4luWysw0KK+W8teS4luaYjg0KK+W8teS4luiKrA0KK+W8teS4lumbrw0KK+W8teS4luWEkg0KK+W8teS4luWjjg0KK+W8teS7peWFqA0KK+W8teS7leiCsg0KK+W8teS7leaXuw0KK+W8teWKoOaYhw0KK+W8teWPr+asow0KK+W8teWkruaYjA0KK+W8teW3p+eOsg0KK+W8teW5vOeRiw0KK+W8teW8mOazsA0KK+W8teW/heaYjg0KK+W8teato+S9mQ0KK+W8teato+W/oA0KK+W8teato+adsA0KK+W8teato+mahg0KK+W8teato+ihmw0KK+W8teato+eOlw0KK+W8teawuOadkA0KK+W8teawuOaYhg0KK+W8teawuOS/ig0KK+W8teawuOajiw0KK+W8teawuOWLsw0KK+W8teeOhOm0uw0KK+W8teeOieasow0KK+W8teeOieeOsg0KK+W8teeOieeQqg0KK+W8teeOieiTiQ0KK+W8teeOieaXuw0KK+W8teeri+aWhw0KK+W8teeri+asow0KK+W8teeri+mIng0KK+W8teeri+e3rw0KK+W8teS6puWvpw0KK+W8teS7suW5sw0KK+W8teS7sumKkw0KK+W8teWFieS7gQ0KK+W8teWFieWBiQ0KK+W8teWFhuWfnw0KK+W8teWMoeadsA0KK+W8teWQieixkA0KK+W8teWlveemrg0KK+W8teWmgueRqQ0KK+W8teWuh+erow0KK+W8teWuieWmrg0KK+W8teW8j+iJrw0KK+W8teaXreWulw0KK+W8teaxjumojw0KK+W8tee+vea9lA0KK+W8teiHs+edvw0KK+W8teiJvumItA0KK+W8teS9keawkQ0KK+W8teS9kee+pA0KK+W8teS9nOaIkA0KK+W8teS8r+mnvw0KK+W8teWFi+WBiQ0KK+W8teWQm+Wmgg0KK+W8teWQm+eRnA0KK+W8teWQn+aFiA0KK+W8teWmmeaFpw0KK+W8teWui+iQjQ0KK+W8teWuj+aYpQ0KK+W8teWuj+eRng0KK+W8teWuj+mKmA0KK+W8teW4jOiBlg0KK+W8teW/lw0KK+W8teW/l+S7sA0KK+W8teW/l+Wuhw0KK+W8teW/l+iInw0KK+W8teW/l+aYjg0KK+W8teW/l+WBiQ0KK+W8teW/l+WghQ0KK+W8teW/l+elpQ0KK+W8teW/l+eQsw0KK+W8teW/l+a6kA0KK+W8teW/l+mBlA0KK+W8teW/l+ixqg0KK+W8teW/l+ixqg0KK+W8teW/l+ixqg0KK+W8teW/l+mKmA0KK+W8teW/l+m0uw0KK+W8teW/l+eRhA0KK+W8teayheeSvQ0KK+W8teengOeOiQ0KK+W8teengOePjQ0KK+W8teengOeQqg0KK+W8teengOiTiQ0KK+W8teiCsuW5sw0KK+W8teiCsuW0pw0KK+W8teiCsuiPgQ0KK+W8teiCsuaFjg0KK+W8teiCsuiqoA0KK+W8teiCsuW9sA0KK+W8teiCsue2uA0KK+W8teiCsumKkw0KK+W8teiCsueRiw0KK+W8teiJr+a6kA0KK+W8temCkeWmgg0KK+W8teS6numKnA0KK+W8teS9s+aWhw0KK+W8teS9s+mfsw0KK+W8teS9s+aDoA0KK+W8teS9s+mbrw0KK+W8teS9s+iTiQ0KK+W8teS9qeW4hg0KK+W8teS9qeeRmw0KK+W8teWPlOe+jg0KK+W8teWtn+eOiQ0KK+W8teWtn+Wptw0KK+W8teWul+S7gQ0KK+W8teWul+izog0KK+W8teWunOaWsA0KK+W8teWwmumIng0KK+W8teW7tuS7uw0KK+W8teW/teaFiA0KK+W8teaAoeasow0KK+W8teaAoeiOiQ0KK+W8teaAoeaFpw0KK+W8teaYhueFjA0KK+W8teaYjuWIqQ0KK+W8teaYjuelpQ0KK+W8teaYjueFpw0KK+W8teaYjueSiw0KK+W8teaYh+asvQ0KK+W8teael+iKrA0KK+W8teaso+aAoQ0KK+W8teaso+iVmQ0KK+W8teayu+Wciw0KK+W8teenieelug0KK+W8teiKs+iPgQ0KK+W8teiKs+e2vg0KK+W8teiKneWPiw0KK+W8teiKuOaFpw0KK+W8temHkeWxsQ0KK+W8temHkemzsw0KK+W8tembqOetkQ0KK+W8teS/oeeZvA0KK+W8teS/iuWBiQ0KK+W8teS/iuWgrw0KK+W8teS/iuizog0KK+W8teWGoOiPrw0KK+W8teWnv+Wqmg0KK+W8teW7uumCpg0KK+W8teW7uuelpQ0KK+W8teW7uuixqg0KK+W8teW9peiPgQ0KK+W8teaAneWEgA0KK+W8teaBhueRiw0KK+W8teaUv+WCkQ0KK+W8teaYreWFgw0KK+W8teaflOaYjg0KK+W8tea0suacnw0KK+W8teeCuuajnw0KK+W8teeOsuWpiQ0KK+W8teeVjOiBsA0KK+W8teebiOm0uw0KK+W8teeni+Wptw0KK+W8tee0gOWQmw0KK+W8tee+jueOsg0KK+W8tee+jue+mg0KK+W8tee+jumbrw0KK+W8tee+jumcng0KK+W8teiHtOiSqA0KK+W8teiMgumGkg0KK+W8teiLseeQpg0KK+W8temDgeiKrA0KK+W8temDgeWptw0KK+W8temmmeeSvQ0KK+W8teWAlueipw0KK+W8teS/ruixqg0KK+W8teWAq+eRiw0KK+W8teWJm+e2rQ0KK+W8teWOn+isgA0KK+W8teWTsuWBpQ0KK+W8teWTsueRng0KK+W8teWTsuamlQ0KK+W8teWTsue2rQ0KK+W8teWTsumKmA0KK+W8teWon+iPrw0KK+W8teWutuaYjg0KK+W8teWutuaMrw0KK+W8teWutua3pg0KK+W8teWutuajnw0KK+W8teWutuiPsQ0KK+W8teWutua6kA0KK+W8teWutueRnA0KK+W8teWutue+pA0KK+W8teWutuamlQ0KK+W8teWutuamrg0KK+W8teWutueiqQ0KK+W8teWutue2ug0KK+W8teWutuixqg0KK+W8teWutuixqg0KK+W8teWutuixqg0KK+W8teWutui1qw0KK+W8teWutumKmA0KK+W8teWutumKmA0KK+W8teWutua9pA0KK+W8teWutuaHtw0KK+W8teWutueRiw0KK+W8teWuueiPsQ0KK+W8teWuuOWulw0KK+W8teWzu+adsA0KK+W8teWzu+WYiQ0KK+W8teWzu+WatA0KK+W8teWzsOamrg0KK+W8teW6rea6kA0KK+W8teW6reeRiw0KK+W8teaBqeeTig0KK+W8teaMr+a6kA0KK+W8teaMr+mOsA0KK+W8teaZiemAmg0KK+W8teaZieixqg0KK+W8teaZj+iqoA0KK+W8teaZj+m9oQ0KK+W8teabuOiIqg0KK+W8teabuOe2rQ0KK+W8teabuOixqg0KK+W8teabuOmKmA0KK+W8teabuOmmqA0KK+W8teaguea6kA0KK+W8teahguiPrw0KK+W8teahgumzsw0KK+W8teazsOmdkg0KK+W8tea1qeWggg0KK+W8teePruaAoQ0KK+W8teePrueQqg0KK+W8teebiuW3ng0KK+W8teebiuiPrw0KK+W8teebiue2rQ0KK+W8teelkOaFiA0KK+W8teelkOe2rQ0KK+W8teenpuiKuA0KK+W8tee0oOeniw0KK+W8tee0oOiPrw0KK+W8tee0lOebig0KK+W8tee0lOeRiw0KK+W8teiAvw0KK+W8teiAv+e2rQ0KK+W8teiAv+W0mg0KK+W8teiok+e+qQ0KK+W8tei7kuixqg0KK+W8temrmOeRng0KK+W8teWBieWAqw0KK+W8teWBiemIng0KK+W8teWBpeiJrw0KK+W8teWci+W/lw0KK+W8teWci+a1qQ0KK+W8teWci+Wqmw0KK+W8teWci+eSvQ0KK+W8teWgguWHoQ0KK+W8teWpieWQmw0KK+W8teWpieaahA0KK+W8teW0h+WBiQ0KK+W8teW6t+iZlA0KK+W8teaDn+aNtw0KK+W8teWVn+aYjg0KK+W8teaVj+iKnQ0KK+W8teaiheWQmw0KK+W8tea3s+aDoA0KK+W8tea4heaWhw0KK+W8tea4heWHsQ0KK+W8tea3keWQmw0KK+W8tea3keiKsw0KK+W8tea3keiKrA0KK+W8tea3keePjQ0KK+W8tea3keiyng0KK+W8tea3keWonw0KK+W8tea3keiMuQ0KK+W8tea3keWptw0KK+W8tea3keeQpg0KK+W8tea3kembhQ0KK+W8tea3keWruw0KK+W8tea3keisuQ0KK+W8tea3teWvjA0KK+W8tea2tei7kg0KK+W8teebm+e2sQ0KK+W8tee0ueaaiQ0KK+W8teiOieiMuQ0KK+W8temAouaZgg0KK+W8tembqumbsg0KK+W8teWHseWuhw0KK+W8teWHsea3sw0KK+W8teWHseW1kA0KK+W8teWHseeQsw0KK+W8teWHsei2hQ0KK+W8teWHsee2rQ0KK+W8teWLneS7gQ0KK+W8teWLneWCkQ0KK+W8teWLnembhA0KK+W8teWNmuWSjA0KK+W8teWNmuWLmw0KK+W8teWNmumIng0KK+W8teWWuw0KK+W8teWWrOe/lA0KK+W8teWjueiDvQ0KK+W8teWpt+mfuw0KK+W8teWvjOa3sw0KK+W8teWvjOemjg0KK+W8teaDoOWmgg0KK+W8teaDoOePig0KK+W8teaDoOWonw0KK+W8teaDoOWptw0KK+W8teaDoOeQqg0KK+W8teaDoOiPgQ0KK+W8teaDoOmbrw0KK+W8teaDoOiYrQ0KK+W8teaVpue+qQ0KK+W8teaZtOaZtA0KK+W8teaZr+WAqw0KK+W8teaZr+a4vg0KK+W8teaZr+mWjg0KK+W8teaZuuWuiQ0KK+W8teaZuuWJmw0KK+W8teaZuua4hQ0KK+W8teaZuuWCkQ0KK+W8teaZuuW0tA0KK+W8teaZuue/lA0KK+W8teaZuumIng0KK+W8teaZuuixqg0KK+W8teaZuuismQ0KK+W8teacneWHsQ0KK+W8teacnem+jQ0KK+W8teaji+mbrw0KK+W8tea5mOaAoQ0KK+W8teeQquiPrw0KK+W8teeQpue0uQ0KK+W8teeZu+e/lA0KK+W8teeak+W0tA0KK+W8teeoi+mghg0KK+W8tee0q+mItA0KK+W8tee/lOaZug0KK+W8teiIkueQpg0KK+W8teiInOiPrw0KK+W8teiPgeiMuQ0KK+W8teiPr+WAqQ0KK+W8teipoOiMtQ0KK+W8teiovOiNgw0KK+W8teiytOeQsw0KK+W8temAuOWHoQ0KK+W8temAuOe+pA0KK+W8temHj+eEtg0KK+W8temInuWvjA0KK+W8temInuiyvQ0KK+W8temWlOWvjA0KK+W8tembgeWptw0KK+W8tembheWnjQ0KK+W8tembheiKrA0KK+W8tembheeOsg0KK+W8tembheWNvw0KK+W8tembheaVjw0KK+W8tembheWptw0KK+W8tembheWptw0KK+W8tembheWptw0KK+W8tembheWptw0KK+W8tembheW1kA0KK+W8tembheaDoA0KK+W8tembheaDoA0KK+W8tembheeQqg0KK+W8tembheeQtA0KK+W8tembheiQjQ0KK+W8tembhembrw0KK+W8tembhembrw0KK+W8tembhemItA0KK+W8tembheeRqQ0KK+W8tembr+iMtQ0KK+W8tembr+WEgA0KK+W8temghuWQiQ0KK+W8temghuemjw0KK+W8teWXo+aWhw0KK+W8teaEj+iqoA0KK+W8teaFiOeBkQ0KK+W8teaEt+aZjw0KK+W8teaWsOWujw0KK+W8teavkw0KK+W8teavk+iKrA0KK+W8teavk+WAqw0KK+W8teavk+a9lA0KK+W8tea6kOmRqw0KK+W8teeRmuePig0KK+W8teeRnuWQmw0KK+W8teeRnuadsA0KK+W8teeRnuiKuA0KK+W8teeRnuWonw0KK+W8teeRnuaZrw0KK+W8teeRnuaoug0KK+W8teeRnuawtg0KK+W8teeRnOWQmw0KK+W8teeRnOWonw0KK+W8teeluuaYhw0KK+W8tee+qeW/oA0KK+W8tee+pOaciw0KK+W8teiBluiOiQ0KK+W8teijleaYjA0KK+W8teijlembrw0KK+W8teipqeaAoQ0KK+W8teipqembrw0KK+W8teizh+aYig0KK+W8temBk+aZug0KK+W8temdluaAoQ0KK+W8tem8jumJiQ0KK+W8teWYieWFgw0KK+W8teWYieatow0KK+W8teWYieWujw0KK+W8teWYieasow0KK+W8teWYieiKrA0KK+W8teWYieeOsg0KK+W8teWYieeOsg0KK+W8teWYieWTsg0KK+W8teWYieaZiQ0KK+W8teWYieecnw0KK+W8teWYieiokw0KK+W8teWYieaDoA0KK+W8teWYiembhA0KK+W8teWYiee2rQ0KK+W8teWYieiBsg0KK+W8teWYieePow0KK+W8teWvp+mmqA0KK+W8teamleWuuQ0KK+W8teamruebiA0KK+W8teamruaGsg0KK+W8teeGkuePig0KK+W8teedv+epjg0KK+W8teeip+Wonw0KK+W8teeiqeWFgw0KK+W8teeiqeahkw0KK+W8teemj+aUvw0KK+W8tee2semCkQ0KK+W8tee2teiKsw0KK+W8tee2reWFqA0KK+W8tee2reePig0KK+W8tee2reWTsg0KK+W8tee2reecnw0KK+W8tee2rea3sw0KK+W8tee2rea9lA0KK+W8tee/oOaWhw0KK+W8tee/oOeQqg0KK+W8teiCh+aokQ0KK+W8teiTk+iQsQ0KK+W8teixquaWhw0KK+W8temKgOiKsw0KK+W8temKmOWulw0KK+W8temKmOWzsA0KK+W8temKmOe/sA0KK+W8temzs+W5sw0KK+W8temzs+WEgA0KK+W8teW7o+a1qQ0KK+W8teW+t+amhg0KK+W8teaFtuaAoQ0KK+W8teaFtuixkA0KK+W8teaFp+aAoQ0KK+W8teaFp+Wonw0KK+W8teaFp+iQjQ0KK+W8teaFp+eutA0KK+W8teeRqeePig0KK+W8teihm+W4hg0KK+W8temBqeaBhg0KK+W8teWtuOWAqw0KK+W8teaGtuWQmw0KK+W8teabieaYgA0KK+W8teabieWptw0KK+W8teabieiPgQ0KK+W8teabiemzsw0KK+W8teeHleWmrg0KK+W8tee/sOaWhw0KK+W8temGkuS4lg0KK+W8temMpuWptw0KK+W8temdnOWmgg0KK+W8temdnOaAoQ0KK+W8temdnOiMuQ0KK+W8tem+jeS7gQ0KK+W8teeSsOS8ig0KK+W8teismemBlA0KK+W8tem0u+Wmgg0KK+W8tem0u+aZug0KK+W8teabnOmKkw0KK+W8teewoeato+WBiQ0KK+W8teewoeaso+iPrw0KK+W8teewoeWYieS6ug0KK+W8teiXjeWwuQ0KK+W8teixkOeSuA0KK+W8teaHt+aBqQ0KK+W8teeTiuS5iw0KK+W8teeTiuaWhw0KK+W8teeTiuaWhw0KK+W8teeTiuaWuQ0KK+W8teeTiuaDoA0KK+W8teiXnemmqA0KK+W8tem6l+WQmw0KK+W8tem6l+a3kQ0KK+W8teWvtuS6kQ0KK+W8teeNu+WjrA0KK+W8tee5veaWhw0KK+W8tee5vOaYjA0KK+W8teiAgOS6kQ0KK+W8teiAgOWFgQ0KK+W8teiAgOatow0KK+W8teiAgOiBsg0KK+W8temHi+aWhw0KK+W8temmqOaWhw0KK+W8temmqOaWhw0KK+W8temosOWFgw0KK+W8teWEt+iWsA0KK+W8teW3jeiAgA0KK+W8teitvemmqA0KK+W8tem2tOiAgA0KK+W8temcveaciA0KK+W8teiKgw0KK+W8teWAmw0KK+W8teiMnOiMuQ0KK+W8teeQh+mWlA0KK+W8teWqnOWqnA0KK+W8teeQrOWunA0KK+W8teeQrOiPgQ0KK+W8teiPgOWAqQ0KK+W8teeFkuWvpw0KK+W8teeRi+iKuA0KK+W8teeRi+WAqw0KK+W8teeRi+Wptw0KK+W8teetseWQmw0KK+W8teetsembrw0KK+W8temEkOaGmw0KK+W8temIuuW9qQ0KK+W8teemleWAqw0KK+W8teeSgeaWhw0KK+W8temQmeWwuQ0KK+W8teaBkuS4rQ0KK+aImuS5heaZug0KK+aVluawuOm+jQ0KK+abueWjq+aVjw0KK+abueaWh+W9pQ0KK+abueS4lua1qQ0KK+abueeri+ihjA0KK+abueiBv+eUtw0KK+abueW/l+W8tw0KK+abueS9s+WuiQ0KK+abueaYjOeUtw0KK+abueaso+iJrw0KK+abueaYpeaWhw0KK+abueWTsuWYiQ0KK+abueWzu+aYjA0KK+abueePruaAoQ0KK+abueWBieiMuQ0KK+abuea3keWqmw0KK+abueWLneixkA0KK+abueaZuuasow0KK+abueeak+mbsg0KK+abuembheaDoA0KK+abueaWsOW9pQ0KK+abueWYieaWhw0KK+abuee2reWAqw0KK+abueavheWLhw0KK+abueeSveepoA0KK+abueiOqOizog0KK+aigeS5g+WBpQ0KK+aigeS7geiPrw0KK+aigeaWh+WuiQ0KK+aigeaWh+izkw0KK+aigeS4luixqg0KK+aigeato+W/oA0KK+aigeeOieeOsg0KK+aigeS7u+S4rQ0KK+aigeaxneiInA0KK+aigeWQm+mcmQ0KK+aigeW/l+W9rA0KK+aigeW/l+mKmA0KK+aigeiCsuiPrw0KK+aigeS9s+mAsg0KK+aigeaAoeiKrA0KK+aigeadseaelw0KK+aigeS/oeWFgw0KK+aigeS/kOeQpg0KK+aigeW9peixqg0KK+aigeeCs+mRhA0KK+aigemDgeiTgQ0KK+aigeWutuaYjg0KK+aigeWutuixqg0KK+aigeWzu+mKmA0KK+aigeaZiemtgQ0KK+aigeePruePrg0KK+aigeenpuWunA0KK+aigeWBpeW/oA0KK+aigeWVn+eOhA0KK+aigea3keWonw0KK+aigeiOieWonw0KK+aigeWLnemKmA0KK+aigeaDoOWptw0KK+aigeaZr+Wgrw0KK+aigeacneWHsQ0KK+aigeiIkuaAoQ0KK+aigemAuOiKrA0KK+aigembheiIkg0KK+aigeaEt+iKuA0KK+aigeeRnui7kg0KK+aigeiBluaYjA0KK+aigeWYieePjQ0KK+aigeeip+aFpw0KK+aigee/oOePig0KK+aigeaFp+iPrw0KK+aigeabiee2rQ0KK+aigemdnOWunA0KK+aigeeTiuS4uQ0KK+aigee5vOS7gQ0KK+aigeaHv+W+tw0KK+aigeeRi+ecnw0KK+aiheWFieWuhw0KK+aihembheWptw0KK+eVouW/l+iPrw0KK+ebm+W/gw0KK+ebm+elpQ0KK+espuiCh+S4rQ0KK+iOq+aYn+Wuhw0KK+iOiuS4gOWHoQ0KK+iOiuS6jueRqQ0KK+iOiuWjq+Wciw0KK+iOiuWtkOWHsQ0KK+iOiuS7geWujw0KK+iOiuW/g+iQjQ0KK+iOiuaWh+aYrQ0KK+iOiuaWh+ixqg0KK+iOiuS4luadsA0KK+iOiuW8mOS7uw0KK+iOiuato+aPmg0KK+iOiuawuOemjw0KK+iOiueOiem6nw0KK+iOiuWmgui7kg0KK+iOiuWFi+WBiQ0KK+iOiuW/l+aYjg0KK+iOiuW/l+amrg0KK+iOiuengOmItA0KK+iOiuiCsuamlQ0KK+iOiuS+neWptw0KK+iOiuS9s+amrg0KK+iOiuS9qembrw0KK+iOiuWdpOWTsg0KK+iOiuWtn+eOsg0KK+iOiuWtn+e0kw0KK+iOiuWul+WLsw0KK+iOiuWumOeShw0KK+iOiuWunOeShw0KK+iOiuW/oOebig0KK+iOiuaAoei7kg0KK+iOiuaYjOabhA0KK+iOiuaYjumBlA0KK+iOiuadseaYjg0KK+iOiuaso+WTsg0KK+iOiueOpeWsmw0KK+iOiumHkemdnA0KK+iOiuS/iuWCkQ0KK+iOiuW7ug0KK+iOiuaUv+aGsg0KK+iOiueni+WtkA0KK+iOiue+jummqA0KK+iOiuiLseeQtA0KK+iOiuWAieadsA0KK+iOiuWutuaYhw0KK+iOiuWutumKmA0KK+iOiuWzu+amlQ0KK+iOiuahk+WYiQ0KK+iOiuePrumItA0KK+iOiue0lOe0lA0KK+iOiuWBieS7gQ0KK+iOiuWci+i+sA0KK+iOiuWfuemRqw0KK+iOiuWVn+aWhw0KK+iOiuaiqOmdkg0KK+iOiua4heWvjA0KK+iOiua3keiKrA0KK+iOiua3keWptw0KK+iOiua3kemWlA0KK+iOiua3keePug0KK+iOiuiOieiOiQ0KK+iOiuWHseiMtQ0KK+iOiuWLneWIqQ0KK+iOiuWNmua4hQ0KK+iOiuWgr+S7uw0KK+iOiuWvjOWCkQ0KK+iOiuW+qeiytA0KK+iOiuaDoOiMuQ0KK+iOiuaDoOiQjQ0KK+iOiuaDoOiTiQ0KK+iOiuaZtOmbsg0KK+iOiuaZr+eQhw0KK+iOiuaZuua2tQ0KK+iOiuaZuumIng0KK+iOiuacnemIng0KK+iOiueZu+eZvA0KK+iOiuWWhOiKsw0KK+iOiuizgOWWrA0KK+iOiumWlOaXrQ0KK+iOiumbheW/gw0KK+iOiumbheeOsg0KK+iOiumbheWptw0KK+iOiumbheaDoA0KK+iOiumbheiQjQ0KK+iOiumbhembsg0KK+iOiumbr+mbrw0KK+iOiuW1qee3rw0KK+iOiueRnuWNlw0KK+iOiuijleaWhw0KK+iOiuWYieeOsg0KK+iOiua8oua4hQ0KK+iOiue2remKmA0KK+iOiumKmOaZrw0KK+iOiuaFp+W/gw0KK+iOiueRqeWnvw0KK+iOiuaoueWujw0KK+iOiuiVmeiQjQ0KK+iOiumMpuW5sw0KK+iOiumdnOaAoQ0KK+iOiua/see2ug0KK+iOiuabnOaXrQ0KK+iOiuifrOWmgw0KK+iOiumOlOeSng0KK+iOiummpee2sQ0KK+iOium6l+i2sw0KK+iOiuaHv+W8tw0KK+iOiuaNg+WoiQ0KK+iOiuaWjOaZug0KK+iOiuetseWptw0KK+ioseS4gOS5iw0KK+ioseS5g+epjQ0KK+ioseWPiOS7gQ0KK+ioseWkp+WuuQ0KK+ioseS7geWFqA0KK+ioseWFg+mKmA0KK+ioseWjrOiAgA0KK+ioseW/g+ebiA0KK+ioseaWh+W/oA0KK+ioseaWh+WOmg0KK+ioseaWh+ahkA0KK+ioseaWh+iPrw0KK+ioseaWh+ixqg0KK+ioseaWh+iXjQ0KK+ioseaXpeaYpQ0KK+ioseS4luawkQ0KK+ioseS4luaYjA0KK+ioseS4luaBrA0KK+ioseS4luizog0KK+ioseWKoOWujw0KK+ioseW5sw0KK+ioseW8mOavhQ0KK+ioseato+W/oA0KK+ioseato+iqvA0KK+ioseawuOaYjg0KK+ioseawuOavhQ0KK+ioseeOieiKsw0KK+ioseeOieWonw0KK+ioseeOieWsiw0KK+ioseeUsg0KK+ioseeri+e+pA0KK+ioseS7suizog0KK+ioseWQjeS4lg0KK+ioseWuh+adsA0KK+ioseaIjuWykQ0KK+ioseaxjuepjg0KK+ioseiHs+WFqA0KK+ioseS9kemKkw0KK+ioseWFi+S7sg0KK+ioseWQm+ixqg0KK+ioseWmjeW4jA0KK+ioseWuj+WBiQ0KK+ioseWuj+W+tw0KK+ioseW/l+WQjA0KK+ioseW/l+Wujw0KK+ioseW/l+W0hw0KK+ioseW/l+mbhA0KK+ioseW/l+e2rQ0KK+ioseW/l+mBoA0KK+ioseW/l+m1rA0KK+ioseaxtuW3ng0KK+ioseengOePig0KK+ioseengOiTiQ0KK+ioseiCsuiPgQ0KK+ioseiCsuiqoA0KK+ioseiJrw0KK+ioseiyneWmgg0KK+ioseS9s+aUvw0KK+ioseS9s+mbrw0KK+ioseS9qeiMuQ0KK+ioseWNk+WhtQ0KK+ioseWtn+e/lA0KK+ioseWul+amrg0KK+ioseW5uOmbrw0KK+ioseaAoeePrg0KK+ioseaJv+iokw0KK+ioseaYjuWCkQ0KK+ioseaYjuW+tw0KK+ioseadvuetiQ0KK+ioseazk+eQrg0KK+ioseiKs+aFiA0KK+ioseiKs+mKmA0KK+ioseiKmeeRsg0KK+iosemHkeeZvA0KK+ioseS/oeamrg0KK+ioseS/iumbhA0KK+ioseWnv+aAoQ0KK+ioseW9peeEtg0KK+ioseaBrOe2vg0KK+ioseaYreWFgw0KK+ioseafj+aoug0KK+ioseePiueRnA0KK+ioseeni+eOsg0KK+iosee+juiKsw0KK+iosee+juiPrw0KK+ioseiHtOe2rQ0KK+ioseiLseWCkQ0KK+iosemDgeaVjw0KK+ioseS/uOaYjA0KK+ioseS/rumKmA0KK+ioseWOn+mKmA0KK+ioseWTsueRng0KK+ioseWTsuW9sA0KK+ioseWTsuixqg0KK+ioseWTsueRiw0KK+ioseWutuWuow0KK+ioseWutuWCkQ0KK+ioseWutuaamA0KK+ioseWutuW9sA0KK+ioseWutuamrg0KK+ioseWutuixqg0KK+ioseWutuixqg0KK+ioseWutuaFtg0KK+ioseWuuOixqg0KK+ioseWzu+WTsg0KK+ioseWzu+eRiw0KK+ioseWzsOmKmA0KK+ioseW6reeRiw0KK+ioseaMr+a5lg0KK+ioseaZguWYiQ0KK+ioseaZieeGkg0KK+ioseabuA0KK+ioseabuOamrg0KK+ioseabuOmKkw0KK+ioseagueWunA0KK+ioseagk+ixqg0KK+iosea1qeeRiw0KK+ioseePruWYiQ0KK+ioseebiui7kg0KK+ioseelkOiQig0KK+iosee0oOiPgQ0KK+iosee0lOeRnA0KK+ioseiAv+ixqg0KK+ioseiyoeW+lw0KK+ioseWBieW/oA0KK+ioseWci+WuiQ0KK+ioseWci+izog0KK+ioseWpieiMuQ0KK+ioseW9qeecnw0KK+ioseWVn+aPmg0KK+ioseaiheiPgQ0KK+iosea3s+eQhw0KK+iosea4healkw0KK+iosea3keiKrA0KK+iosea3keiyng0KK+iosea3keiMuQ0KK+iosea3keaDoA0KK+iosea3keiPrw0KK+iosea3keiTrg0KK+ioseebm+aYjA0KK+ioseiOieiOiQ0KK+ioseWHseaDhw0KK+ioseWHseWYiQ0KK+ioseWLneWLmw0KK+ioseWNmueCug0KK+ioseWNmuajrg0KK+ioseWgoeWmgg0KK+ioseWvjOW/oA0KK+ioseWvjOmbhA0KK+ioseaDoOWmgg0KK+ioseaDoOePjQ0KK+ioseaDoOiMuQ0KK+ioseaDoOeQsw0KK+ioseaDoOmbrw0KK+ioseaDoOeAhQ0KK+ioseaZtOaWkA0KK+ioseaZr+mIng0KK+ioseaZuueOsg0KK+ioseaZuuaDnw0KK+ioseaZuuWHsQ0KK+ioseaZuue/lA0KK+ioseaZuumbhA0KK+ioseaZuuW+tw0KK+ioseacneWvjA0KK+ioseasveixqg0KK+ioseeZu+a3tQ0KK+ioseero+iDvQ0KK+ioseWWhOWHsQ0KK+ioseiIkuiMnA0KK+ioseiPr+WAmg0KK+ioseipoOWLnQ0KK+ioseiytOW9sA0KK+iosemAuOeroA0KK+iosemAsuiIiA0KK+iosemWlOmbhA0KK+iosembheasow0KK+iosembheeOsg0KK+iosembhea3kQ0KK+iosembheWptw0KK+iosembheaDoA0KK+iosembheaDoA0KK+iosembheiQjQ0KK+iosembhembgQ0KK+iosembhembrw0KK+iosembheaFpw0KK+iosembr+eQsw0KK+iosemghua4hQ0KK+ioseaEj+iLuQ0KK+ioseaEt+e/lA0KK+iosealqOelpQ0KK+ioseavk+Wonw0KK+iosea6kOaziQ0KK+ioseeRng0KK+ioseeRnuiKuA0KK+ioseeRnuaBqQ0KK+ioseeRnuWEgA0KK+ioseeRnOiKsw0KK+ioseeon+abvA0KK+ioseiBluadsA0KK+ioseijleWEhA0KK+ioseipqeetoA0KK+iosemItOiLsQ0KK+ioseWYieWFgw0KK+ioseWYieiKsw0KK+ioseWYieWAqQ0KK+ioseWYieePrg0KK+ioseWYieaDoA0KK+ioseWYieepjg0KK+ioseamlQ0KK+ioseamrumahg0KK+ioseeRpOmmqA0KK+ioseeip+ePoA0KK+ioseeiqeS/rg0KK+ioseeulOa2tQ0KK+iosee2reiCsg0KK+iosee2reecnw0KK+iosee/oOerrw0KK+ioseiqmA0KK+iosemKmOS7gQ0KK+iosemKmOWTsg0KK+iosemKmOiyoQ0KK+iosemWo+aWhw0KK+iosemzs+mbhQ0KK+ioseaFtuaWhw0KK+ioseaFp+WQmw0KK+ioseaFp+iyng0KK+ioseaFleiyng0KK+iosemBqealkw0KK+ioseaGtuiKsw0KK+ioseabieiPgQ0KK+ioseeHleiQjQ0KK+iosemMpuaWhw0KK+iosemdnOWunA0KK+iosemdnOmbqg0KK+ioseW2uOS7gQ0KK+iosem0u+aWhw0KK+ioseiWsOaWhw0KK+ioseaHt+aWhw0KK+ioseeTiuaWhw0KK+ioseeTiuaciA0KK+iosematOelug0KK+iosem6l+iPrw0KK+iosee5veWmgg0KK+ioseiAgOaWhw0KK+iosemmqOS7gQ0KK+iosemosOWFgw0KK+iosei6jeitsA0KK+ioseaYtuiPrw0KK+ioseeQh+Wptw0KK+ioseeQrumCpg0KK+ioseWriOeOiQ0KK+ioseetseiQjQ0KK+iosemIuuiMuQ0KK+iosemLkem0uw0KK+ioseaBkumBlA0KK+mAo+S7geiBlg0KK+mAo+S4luWSjA0KK+mAo+S9keS7gQ0KK+mAo+engOS7gQ0KK+mAo+S9qeazoA0KK+mAo+iKuOWHsA0KK+mAo+W7uuaZug0KK+mAo+eni+aXug0KK+mAo+WuueeQqg0KK+mAo+ahguWujw0KK+mAo+WBieWCkQ0KK+mAo+WpieWEgA0KK+mAo+WVn+aZug0KK+mAo+WLneelpQ0KK+mAo+mbheiyng0KK+mAo+WYiee0lA0KK+mAo+aFtuixkA0KK+mAo+mdnOiMuQ0KK+mDreS4gOaoug0KK+mDreS5g+amrg0KK+mDreS6uuixqg0KK+mDreWKm+eRiw0KK+mDreS6juemjg0KK+mDreWjq+iPrw0KK+mDreWjq+mzsw0KK+mDreWtkOeriw0KK+mDreWtkOeGkg0KK+mDreWtkOemlQ0KK+mDreS7geWTsg0KK+mDreWkqeeriw0KK+mDreaWh+WQjA0KK+mDreaWh+W9pQ0KK+mDreaWh+aDoA0KK+mDreaWh+mKkw0KK+mDreawtOWxsQ0KK+mDreS4luiYrQ0KK+mDreWNiembrw0KK+mDreato+Wulw0KK+mDreawuOaYjg0KK+mDreeOieePjQ0KK+mDreeriw0KK+mDreeri+mBlA0KK+mDreS7sua3tQ0KK+mDreWFhumbrw0KK+mDreWkmeWQnw0KK+mDreW5tOecnw0KK+mDreaciemOrg0KK+mDreiHs+WTsg0KK+mDreWQm+aAoQ0KK+mDreWuj+aWhw0KK+mDreWuj+mnvw0KK+mDreW/l+Wujw0KK+mDreW/l+elpQ0KK+mDreadjw0KK+mDreayguadkQ0KK+mDreiCsuWFiA0KK+mDreiCsuaYjA0KK+mDreiCsue2rQ0KK+mDremCpuW9pQ0KK+mDreS9s+asow0KK+mDreS9s+mbrw0KK+mDreS9s+mRqw0KK+mDreS9qeeQpg0KK+mDreWlh+aWhw0KK+mDreWtn+iTiQ0KK+mDreWul+aFtg0KK+mDreWwmuWLsw0KK+mDreW/oOWSjA0KK+mDreaAoeS8tg0KK+mDreaAoeWQmw0KK+mDreaAoeWQmw0KK+mDreaAoeengA0KK+mDreaAoemItA0KK+mDreaJv+WEgA0KK+mDreaYjuWulw0KK+mDreaYjuWzsA0KK+mDreaYjumBkw0KK+mDreaYjueRiw0KK+mDreadvuepjg0KK+mDreatpuWuiQ0KK+mDreeOn+eOnw0KK+mDreeOpeWmpg0KK+mDreiKs+WQmw0KK+mDreiKs+mbrw0KK+mDreiKneedvw0KK+mDremVt+aouQ0KK+mDreS/oeWujw0KK+mDreS/neWQmw0KK+mDreS/iuWujw0KK+mDreS/iueUtw0KK+mDreS/iuS/oQ0KK+mDreS/iuWEhA0KK+mDreS/kOS6qA0KK+mDreWGoOW7tw0KK+mDreWTgeengA0KK+mDreWnv+S8tg0KK+mDreWnv+asow0KK+mDreWogeW/lw0KK+mDreW7uuWujw0KK+mDreW7uuW7tw0KK+mDreW7uuiJrw0KK+mDreW7uua6kA0KK+mDreW9peWQmw0KK+mDreW9peeUqw0KK+mDreaAneWunA0KK+mDreaUv+W/oA0KK+mDreaUv+eSiw0KK+mDreaYreWuiQ0KK+mDreaYremhrw0KK+mDreaYseaXuw0KK+mDreafj+engA0KK+mDreeCs+aIkA0KK+mDreeOsuaFiA0KK+mDreebiOWQmw0KK+mDreecgeiQsQ0KK+mDree+juWQmw0KK+mDree+juWnjQ0KK+mDree+juWWhA0KK+mDree+juiYrQ0KK+mDreiMguiZlA0KK+mDreiynuWtjQ0KK+mDreWAjeWuiQ0KK+mDreWAlumKkw0KK+mDreWHjOW/lw0KK+mDreWTsuaIkA0KK+mDreWTsueRiw0KK+mDreWutuWujw0KK+mDreWutuelpQ0KK+mDreWutuixqg0KK+mDreWutuaFpw0KK+mDreWuuOaYgA0KK+mDreWzsOaYhw0KK+mDreW6reiTiQ0KK+mDreaMr+a8og0KK+mDreaZj+S9kQ0KK+mDreabuOixqg0KK+mDreahgumzsw0KK+mDrea1qeW/lw0KK+mDreebiuWFgw0KK+mDreelluS9kQ0KK+mDree0oOe2vg0KK+mDreiAv+S7uw0KK+mDrei7kg0KK+mDreWci+atow0KK+mDreWpieeOsg0KK+mDreWVn+aykA0KK+mDrea3u+aWsA0KK+mDrea3keiKrw0KK+mDrea3keaVjw0KK+mDrea3keaFpw0KK+mDremAouelpQ0KK+mDreWLnQ0KK+mDreWWrOW5tA0KK+mDreaDoOmdkg0KK+mDreaDoOaXuw0KK+mDreaZuuaYjg0KK+mDreaZuueRiw0KK+mDreeQquWqpw0KK+mDreipoOePrg0KK+mDremAsuaYjA0KK+mDrembheaxnQ0KK+mDrembheWptw0KK+mDrembheiPsQ0KK+mDrembheiWhw0KK+mDreaFiOebiA0KK+mDreeFnOW0hw0KK+mDreeRnuasvQ0KK+mDree+qeajoA0KK+mDreipqeWxjw0KK+mDreWYieWBiQ0KK+mDreWkoueruQ0KK+mDreamruaFtg0KK+mDreeip+Wonw0KK+mDree2uOebig0KK+mDreiCh+W8tw0KK+mDremKmOWCkQ0KK+mDreaFtueUnw0KK+mDreaFp+ePjQ0KK+mDreaFp+iWhA0KK+mDreWEkuismQ0KK+mDreabieWNiQ0KK+mDreabiembrw0KK+mDreeHleeOsg0KK+mDreiVmeiQjQ0KK+mDremMlemclg0KK+mDremdnOe+jg0KK+mDrea/n+e2rQ0KK+mDremnvw0KK+mDreabnOW9sA0KK+mDremOruWFgw0KK+mDreeTiuWqmw0KK+mDrem6l+eniw0KK+mDreeNu+aWhw0KK+mDreiYiuW/sQ0KK+mDremmqOmOgg0KK+mDreexoOaFtg0KK+mDreaXu+eRnA0KK+mDreaZn+Wuhw0KK+mDreaakA0KK+mDremIuuiKsw0KK+mDreaBkuWmmQ0KK+mZs+S4gOaIkA0KK+mZs+S4gOiPrw0KK+mZs+S4gOeRiw0KK+mZs+S5g+mHpw0KK+mZs+S5g+amrg0KK+mZs+S6uueUhA0KK+mZs+WKm+WHoQ0KK+mZs+WPiOaYlQ0KK+mZs+WPiOiBlg0KK+mZs+S4iuWAqw0KK+mZs+WNg+mMpg0KK+mZs+Wjq+WCkQ0KK+mZs+Wkp+WQjA0KK+mZs+WtkOS7gQ0KK+mZs+WtkOW9pQ0KK+mZs+WtkOmIng0KK+mZs+Wwj+iQjQ0KK+mZs+W3seWNhw0KK+mZs+S4remKmA0KK+mZs+S5i+irrQ0KK+mZs+S7geWulw0KK+mZs+S7geWCkQ0KK+mZs+S7iuWHoQ0KK+mZs+WFg+WtnQ0KK+mZs+WFg+mdlg0KK+mZs+WFrg0KK+mZs+WkqeS7gQ0KK+mZs+Wkqeizng0KK+mZs+W/g+aAoQ0KK+mZs+W/g+aAoQ0KK+mZs+W/g+a9lA0KK+mZs+aWh+W3nQ0KK+mZs+aWh+aIkA0KK+mZs+aWh+W/oA0KK+mZs+aWh+S6rg0KK+mZs+aWh+aYrQ0KK+mZs+aWh+mDjg0KK+mZs+aWh+a2kw0KK+mZs+aWh+W9rA0KK+mZs+aWh+eroA0KK+mZs+aWh+asvQ0KK+mZs+aWh+iPrw0KK+mZs+aWh+iTiQ0KK+mZs+aWh+W+tw0KK+mZs+aWh+WtuA0KK+mZs+aWh+m0uw0KK+mZs+aWh+mIug0KK+mZs+aciOWmrg0KK+mZs+awtOaziQ0KK+mZs+S4luWuhw0KK+mZs+S4luWulw0KK+mZs+S4luaYjg0KK+mZs+S4luadsA0KK+mZs+S4luaUvw0KK+mZs+S4luW6rQ0KK+mZs+S4luWBiQ0KK+mZs+S4lueroA0KK+mZs+S4luajuw0KK+mZs+S4luebnw0KK+mZs+S4luixqg0KK+mZs+S4lua+pA0KK+mZs+S4lum0uw0KK+mZs+S4u+asow0KK+mZs+S7pemdnA0KK+mZs+S7leiKsw0KK+mZs+S7lea6kA0KK+mZs+S7leWPoQ0KK+mZs+WKoOaYjg0KK+mZs+WKn+mclg0KK+mZs+WPr+asow0KK+mZs+WPs+awkQ0KK+mZs+WPs+irrQ0KK+mZs+W3qOm2oA0KK+mZs+W3p+ePig0KK+mZs+W3p+aDoA0KK+mZs+W3p+mgpA0KK+mZs+W5vOasow0KK+mZs+W8mOaWhw0KK+mZs+W8mOasow0KK+mZs+W8mOiokw0KK+mZs+W8mOavhQ0KK+mZs+W8mOmOpw0KK+mZs+acreWfuQ0KK+mZs+ato+Wujw0KK+mZs+ato+aYjA0KK+mZs+ato+iKsw0KK+mZs+ato+WzsA0KK+mZs+ato+WCkQ0KK+mZs+ato+mbhA0KK+mZs+ato+ixqg0KK+mZs+ato+iIiA0KK+mZs+awkQ0KK+mZs+awuA0KK+mZs+awuOWulw0KK+mZs+awuOaYjA0KK+mZs+awuOmdkg0KK+mZs+awuOWHjA0KK+mZs+awuOW6tw0KK+mZs+awuOWvjA0KK+mZs+awuOiqjA0KK+mZs+awuOephg0KK+mZs+awuOePqQ0KK+mZs+eOieaWhw0KK+mZs+eOieWlhw0KK+mZs+eOieiKsw0KK+mZs+eOieiKrA0KK+mZs+eOieePig0KK+mZs+eOieePjQ0KK+mZs+eOieWonw0KK+mZs+eOieePoA0KK+mZs+eOieaihQ0KK+mZs+eOieeQsw0KK+mZs+eOieiPgQ0KK+mZs+eOiembsg0KK+mZs+eOieWsjA0KK+mZs+eOieeSmA0KK+mZs+eOiemmqA0KK+mZs+eUn+advg0KK+mZs+efs+iCsg0KK+mZs+eri+WHoQ0KK+mZs+eri+iogA0KK+mZs+eri+asow0KK+mZs+eri+WAqw0KK+mZs+eri+WBiQ0KK+mZs+eri+e/jg0KK+mZs+eri+e2rQ0KK+mZs+eri+e/sA0KK+mZs+S6puWHoQ0KK+mZs+S8iuWAqw0KK+mZs+S7suW/lw0KK+mZs+S7suizog0KK+mZs+WFieeUqw0KK+mZs+WFieiPrw0KK+mZs+WFhuWllQ0KK+mZs+WQieWIqQ0KK+mZs+WQkeamrg0KK+mZs+WcqOaYjg0KK+mZs+WmguiKrA0KK+mZs+WmguiYiw0KK+mZs+Wuh+adsA0KK+mZs+Wuh+i2hQ0KK+mZs+WuieS9kQ0KK+mZs+WuieaouA0KK+mZs+aXrA0KK+mZs+acieW/lw0KK+mZs+axn+eriw0KK+mZs+eZvuWCkQ0KK+mZs+e+veePig0KK+mZs+iHs+WHsQ0KK+mZs+S6qOaIkA0KK+mZs+S9keS7uw0KK+mZs+S9keW6rQ0KK+mZs+S8uOeUsA0KK+mZs+S8r+adsA0KK+mZs+S8r+iSvA0KK+mZs+WFi+Wuhw0KK+mZs+WFi+mKmA0KK+mZs+WQm+Wmgw0KK+mZs+WQm+iIqg0KK+mZs+WQm+amrg0KK+mZs+WQm+WEkg0KK+mZs+Wdh+eiqQ0KK+mZs+WmmealqA0KK+mZs+WmjeS8tg0KK+mZs+WmjeengA0KK+mZs+WmpOiVmQ0KK+mZs+WtnemKkw0KK+mZs+Wuj+S7gQ0KK+mZs+Wuj+WuiQ0KK+mZs+Wuj+aYjA0KK+mZs+Wuj+azog0KK+mZs+Wuj+e+jg0KK+mZs+Wuj+W9rA0KK+mZs+Wuj+mahg0KK+mZs+Wuj+mBlA0KK+mZs+Wuj+mKmA0KK+mZs+Wuj+izog0KK+mZs+Wuj+eFkg0KK+mZs+W7t+S/ig0KK+mZs+W/l+WxsQ0KK+mZs+W/l+W5sw0KK+mZs+W/l+S7sg0KK+mZs+W/l+WuiQ0KK+mZs+W/l+Wujw0KK+mZs+W/l+aymw0KK+mZs+W/l+Wysw0KK+mZs+W/l+aAoQ0KK+mZs+W/l+aYjg0KK+mZs+W/l+aYhw0KK+mZs+W/l+asow0KK+mZs+W/l+W9pQ0KK+mZs+W/l+a1qQ0KK+mZs+W/l+WBiQ0KK+mZs+W/l+W8tw0KK+mZs+W/l+elpQ0KK+mZs+W/l+e/lA0KK+mZs+W/l+mbhA0KK+mZs+W/l+a6kA0KK+mZs+W/l+mBlA0KK+mZs+W/l+amrg0KK+mZs+W/l+e2rQ0KK+mZs+W/l+ixqg0KK+mZs+W/l+ixqg0KK+mZs+W/l+ixqg0KK+mZs+W/l+mBoA0KK+mZs+W/l+mKmA0KK+mZs+W/l+WvrA0KK+mZs+W/l+epjg0KK+mZs+W/l+m0uw0KK+mZs+W/l+aWjA0KK+mZs+aUuOWptw0KK+mZs+adkem+jQ0KK+mZs+aym+WQnw0KK+mZs+axtua0pQ0KK+mZs+eUuA0KK+mZs+engOWQmw0KK+mZs+engOiKnQ0KK+mZs+engOeOsg0KK+mZs+engOWonw0KK+mZs+engOaVjw0KK+mZs+engOaDoA0KK+mZs+engOmbhQ0KK+mZs+engOmItA0KK+mZs+engOaFpw0KK+mZs+engOiYrQ0KK+mZs+iCsuatow0KK+mZs+iCsuS9kA0KK+mZs+iCsuWlhw0KK+mZs+iCsueroA0KK+mZs+iCsuW7iQ0KK+mZs+iCsuipqQ0KK+mZs+iCsueRqQ0KK+mZs+iCsuaWjA0KK+mZs+iJr+aUvw0KK+mZs+imi+eniw0KK+mZs+i+sOaPmg0KK+mZs+mFieiMuQ0KK+mZs+S6numItA0KK+mZs+S+nei+sA0KK+mZs+S+nee/lA0KK+mZs+S9sw0KK+mZs+S9s+axnQ0KK+mZs+S9s+S8tg0KK+mZs+S9s+WQnw0KK+mZs+S9s+Wujw0KK+mZs+S9s+Wmrg0KK+mZs+S9s+eOpQ0KK+mZs+S9s+ebiA0KK+mZs+S9s+ecnw0KK+mZs+S9s+aDoA0KK+mZs+S9s+eQqg0KK+mZs+S9s+eQpg0KK+mZs+S9s+mbrw0KK+mZs+S9s+e+pA0KK+mZs+S9s+mzsw0KK+mZs+S9s+aFpw0KK+mZs+S9s+eSmA0KK+mZs+S9s+mnvw0KK+mZs+S9s+aAnA0KK+mZs+S+g+Wptw0KK+mZs+S9qeWQmw0KK+mZs+S9qeWQmw0KK+mZs+S9qeS9qQ0KK+mZs+S9qeiKuA0KK+mZs+S9qeecnw0KK+mZs+S9qeeQsw0KK+mZs+S9qeeRnA0KK+mZs+S9qeeRqQ0KK+mZs+S+keWopQ0KK+mZs+WFtumIng0KK+mZs+WNlOaYjA0KK+mZs+WSjOaIkA0KK+mZs+WdpOS9kA0KK+mZs+WdpOWCkQ0KK+mZs+WdpOmNvg0KK+mZs+WnlOaJvw0KK+mZs+Wtn+S8tg0KK+mZs+Wtn+iJrw0KK+mZs+Wtn+WogQ0KK+mZs+Wtn+WBiQ0KK+mZs+Wtn+eQqg0KK+mZs+Wtn+mItA0KK+mZs+Wtn+i8nQ0KK+mZs+Wto+S9kQ0KK+mZs+Wul+S7gQ0KK+mZs+Wul+W/lw0KK+mZs+Wul+ebiA0KK+mZs+Wul+mbhA0KK+mZs+Wul+aXlw0KK+mZs+Wul+e3rw0KK+mZs+Wul+m+jQ0KK+mZs+WumuiHsw0KK+mZs+WunOW5sw0KK+mZs+WunOWQmw0KK+mZs+WunOengA0KK+mZs+WunOWnvw0KK+mZs+WunOWfuQ0KK+mZs+WunOe+pA0KK+mZs+WunOeSiw0KK+mZs+WunOaXuw0KK+mZs+Wum+WnjQ0KK+mZs+WwmuaWhw0KK+mZs+WwmueRnA0KK+mZs+WxheS7gQ0KK+mZs+Wys+WQmw0KK+mZs+W5uOi2sw0KK+mZs+W5uOa7vw0KK+mZs+W7tumBkw0KK+mZs+W/oOiJrw0KK+mZs+W/oOe+qQ0KK+mZs+aAoQ0KK+mZs+aAoeaWhw0KK+mZs+aAoeWNiQ0KK+mZs+aAoeWGsA0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWuiQ0KK+mZs+aAoeeruQ0KK+mZs+aAoeS8tg0KK+mZs+aAoeS8tg0KK+mZs+aAoeS8tg0KK+mZs+aAoeWIqQ0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeW7tw0KK+mZs+aAoeengA0KK+mZs+aAoeaYjA0KK+mZs+aAoeiKsw0KK+mZs+aAoeePig0KK+mZs+aAoemmmQ0KK+mZs+aAoeecnw0KK+mZs+aAoeWptw0KK+mZs+aAoeWptw0KK+mZs+aAoeeQtA0KK+mZs+aAoeiPgQ0KK+mZs+aAoembrw0KK+mZs+aAoeiqoA0KK+mZs+aAoeeiqQ0KK+mZs+aAoeiTiQ0KK+mZs+aAoea9lA0KK+mZs+aAoeWEkg0KK+mZs+aAoeepjg0KK+mZs+aAoemdnA0KK+mZs+aAoemdnA0KK+mZs+aAoeiYiw0KK+mZs+aAoeiTgQ0KK+mZs+aAoeWPoQ0KK+mZs+aLm+iqoA0KK+mZs+aYk+adkQ0KK+mZs+aYjOaWhw0KK+mZs+aYjOa4rw0KK+mZs+aYhuadsA0KK+mZs+aYguS9kQ0KK+mZs+aYjuatow0KK+mZs+aYjuS8uA0KK+mZs+aYjuWujw0KK+mZs+aYjuadkA0KK+mZs+aYjuaYjA0KK+mZs+aYjuaUvw0KK+mZs+aYjuePoA0KK+mZs+aYjuiOiQ0KK+mZs+aYjuWptw0KK+mZs+aYjualtw0KK+mZs+aYjuijlQ0KK+mZs+aYjuW+tw0KK+mZs+aYjuizog0KK+mZs+aYjuixkA0KK+mZs+aYleaWuQ0KK+mZs+aYh+avhQ0KK+mZs+adseiPrw0KK+mZs+adsOebmw0KK+mZs+advuiQjQ0KK+mZs+aso+Wmgg0KK+mZs+aso+Wujw0KK+mZs+aso+WunA0KK+mZs+aso+aAoQ0KK+mZs+aso+aAoQ0KK+mZs+aso+azsA0KK+mZs+aso+eRnA0KK+mZs+aso+iYrQ0KK+mZs+azs+S7uw0KK+mZs+azleWFiQ0KK+mZs+azk+e/lA0KK+mZs+azk+mclg0KK+mZs+ayu+Wuhw0KK+mZs+aziui+sA0KK+mZs+eOn+WFiQ0KK+mZs+eOn+S8tg0KK+mZs+eOn+eRmw0KK+mZs+eOq+Wmgg0KK+mZs+eOq+WQmw0KK+mZs+eOq+iKsw0KK+mZs+eOq+iHuw0KK+mZs+eOpeeHlQ0KK+mZs+eniea3sw0KK+mZs+enieaWjA0KK+mZs+iKs+ePjQ0KK+mZs+iKs+iQsQ0KK+mZs+iKneWAqQ0KK+mZs+iKneevhA0KK+mZs+iKr+aAoQ0KK+mZs+mCtemRqw0KK+mZs+mHkeiJrw0KK+mZs+mHkeWgpA0KK+mZs+mHkeiBsg0KK+mZs+mVt+aFtg0KK+mZs+mbqOaWsA0KK+mZs+mdkueRnA0KK+mZs+S6reWQmw0KK+mZs+S6ruS4ng0KK+mZs+S6ruWQmw0KK+mZs+S6ruepjg0KK+mZs+S/oeS8ig0KK+mZs+S/oeWuhw0KK+mZs+S/oeaXrQ0KK+mZs+S/oeWQnw0KK+mZs+S/oeWujw0KK+mZs+S/oeWujw0KK+mZs+S/oeeUqw0KK+mZs+S/oeW/oA0KK+mZs+S/oeaZug0KK+mZs+S/oeijlQ0KK+mZs+S/oeixqg0KK+mZs+S/oeWtuA0KK+mZs+S/neWFgw0KK+mZs+S/neW9sA0KK+mZs+S/iuS7gQ0KK+mZs+S/iuaWhw0KK+mZs+S/iuS7sA0KK+mZs+S/iuWQiQ0KK+mZs+S/iuWmgg0KK+mZs+S/iuWuhw0KK+mZs+S/iuWuiQ0KK+mZs+S/iuaIkA0KK+mZs+S/iuaXrQ0KK+mZs+S/iuS9kQ0KK+mZs+S/iuWRiA0KK+mZs+S/iuWujw0KK+mZs+S/iuWujw0KK+mZs+S/iuWujw0KK+mZs+S/iuWujw0KK+mZs+S/iuW7tw0KK+mZs+S/iueUtw0KK+mZs+S/iueUtw0KK+mZs+S/iuiJrw0KK+mZs+S/iuWSjA0KK+mZs+S/iuadsA0KK+mZs+S/iumDjg0KK+mZs+S/iuW9rA0KK+mZs+S/iuWCkQ0KK+mZs+S/iuWHsQ0KK+mZs+S/iuiPrw0KK+mZs+S/iua6kA0KK+mZs+S/iumBlA0KK+mZs+S/iuamlQ0KK+mZs+S/iue2rQ0KK+mZs+S/iuixqg0KK+mZs+S/iumKmA0KK+mZs+S/iumKmA0KK+mZs+S/iueSiw0KK+mZs+S/iuaoug0KK+mZs+S/iuirug0KK+mZs+S/ium+jQ0KK+mZs+S/iueRiw0KK+mZs+S/kOWuiQ0KK+mZs+S/kOengA0KK+mZs+S/kOa9lA0KK+mZs+S/nuS7sg0KK+mZs+S/nuWmmQ0KK+mZs+S/numdnA0KK+mZs+WGoOWkqw0KK+mZs+WGoOS7sA0KK+mZs+WGoOWmgg0KK+mZs+WGoOWuhw0KK+mZs+WGoOW3ng0KK+mZs+WGoOiInw0KK+mZs+WGoOWQqw0KK+mZs+WGoOWujw0KK+mZs+WGoOW7tw0KK+mZs+WGoOeUtw0KK+mZs+WGoOWCkQ0KK+mZs+WGoOWXmg0KK+mZs+WGoOe2rQ0KK+mZs+WGoOmKmA0KK+mZs+WGoOaoug0KK+mZs+WGoOWmjw0KK+mZs+WJh+asvQ0KK+mZs+WLh+WcqA0KK+mZs+WLh+W/lw0KK+mZs+WLh+mBlA0KK+mZs+WLgeWQvg0KK+mZs+WNl+WxhQ0KK+mZs+WOmumKmA0KK+mZs+WTgeWFiA0KK+mZs+WTgeengA0KK+mZs+WTgei8nQ0KK+mZs+WlleS4rQ0KK+mZs+WlleS7uw0KK+mZs+WlleW4hg0KK+mZs+WlleWIqQ0KK+mZs+WlleW7tw0KK+mZs+WlleebiA0KK+mZs+WllemBlA0KK+mZs+Wlleepjg0KK+mZs+WlleiTgQ0KK+mZs+Wljuavjw0KK+mZs+Wnv+aWhw0KK+mZs+Wnv+eZvg0KK+mZs+Wnv+WIqQ0KK+mZs+Wnv+WQnw0KK+mZs+Wnv+WykA0KK+mZs+Wnv+ePig0KK+mZs+Wnv+iTiQ0KK+mZs+Wnv+epjg0KK+mZs+Wnv+eShw0KK+mZs+WogeS4ng0KK+mZs+WogeWFqA0KK+mZs+WogeWuhw0KK+mZs+WogeaIkA0KK+mZs+WogeWKqQ0KK+mZs+WogeW7tw0KK+mZs+WogeW/lw0KK+mZs+WogeW/lw0KK+mZs+WogemCkQ0KK+mZs+Wogee/lA0KK+mZs+Wogeixqg0KK+mZs+WogeWEkg0KK+mZs+Wogemclg0KK+mZs+Wuo+S7uw0KK+mZs+Wuo+avjw0KK+mZs+WupeS7uw0KK+mZs+WupeirrQ0KK+mZs+W4peWQjQ0KK+mZs+W7uuS4rQ0KK+mZs+W7uuWFgw0KK+mZs+W7uuaWhw0KK+mZs+W7uuS7uw0KK+mZs+W7uuWQjA0KK+mZs+W7uuWuhw0KK+mZs+W7uuWuiQ0KK+mZs+W7uuW3ng0KK+mZs+W7uuaIkA0KK+mZs+W7uuaXrQ0KK+mZs+W7uuihjA0KK+mZs+W7uuWRiA0KK+mZs+W7uuWujw0KK+mZs+W7uuWujw0KK+mZs+W7uuWujw0KK+mZs+W7uuWujw0KK+mZs+W7uuW7tw0KK+mZs+W7uuW/lw0KK+mZs+W7uuW/lw0KK+mZs+W7uueUqw0KK+mZs+W7uueUtw0KK+mZs+W7uuiJrw0KK+mZs+W7uumCpg0KK+mZs+W7uuaYjg0KK+mZs+W7uuWciw0KK+mZs+W7uuaPmg0KK+mZs+W7uuiPrw0KK+mZs+W7uuiplQ0KK+mZs+W7uua6kA0KK+mZs+W7uumBlA0KK+mZs+W7uuamrg0KK+mZs+W7uuiTiQ0KK+mZs+W7uui8lA0KK+mZs+W7uumKmA0KK+mZs+W7uumKmA0KK+mZs+W7uueSiw0KK+mZs+W7uuWLsw0KK+mZs+W7uuaoug0KK+mZs+W7uum+jQ0KK+mZs+W7uueDnA0KK+mZs+W9peWkqw0KK+mZs+W9peaWhw0KK+mZs+W9peS7uw0KK+mZs+W9peWQiA0KK+mZs+W9peWuhw0KK+mZs+W9peW4hg0KK+mZs+W9peeruQ0KK+mZs+W9peS8uA0KK+mZs+W9peWQmw0KK+mZs+W9peWjrw0KK+mZs+W9peWujw0KK+mZs+W9peWujw0KK+mZs+W9peW7tw0KK+mZs+W9peeUqw0KK+mZs+W9peiJrw0KK+mZs+W9peaYjA0KK+mZs+W9peWHsQ0KK+mZs+W9peaEtw0KK+mZs+W9pee2uA0KK+mZs+W9peixqg0KK+mZs+W9peaFsA0KK+mZs+W9peWLsw0KK+mZs+W9pemclg0KK+mZs+W+i+WFgw0KK+mZs+aAneWFiA0KK+mZs+aAneW5tA0KK+mZs+aAneWmpA0KK+mZs+aAneS6rg0KK+mZs+aAnea6kA0KK+mZs+aAneiTiQ0KK+mZs+aAneaouA0KK+mZs+aAneepjg0KK+mZs+aAnee/sA0KK+mZs+aAneeShw0KK+mZs+aUv+aWhw0KK+mZs+aUv+Wujw0KK+mZs+aUv+aYlQ0KK+mZs+aUv+Wgrw0KK+mZs+aUv+ijlQ0KK+mZs+aUv+avhQ0KK+mZs+aUv+ismQ0KK+mZs+aYpeWmgw0KK+mZs+aYpeaYjg0KK+mZs+aYpeeHlQ0KK+mZs+aYreaWhw0KK+mZs+aYreWuhw0KK+mZs+aYreS8tg0KK+mZs+aYreW/lw0KK+mZs+aYreWBiQ0KK+mZs+aYreamrg0KK+mZs+aYremKmA0KK+mZs+aYreeRiw0KK+mZs+aYoOaXrQ0KK+mZs+aYoOW/lw0KK+mZs+aYoOWEkg0KK+mZs+aYn+Wuhw0KK+mZs+aYn+eGuQ0KK+mZs+aYseS4ng0KK+mZs+aYseWFqA0KK+mZs+aYseaxnQ0KK+mZs+aYseWujw0KK+mZs+aYseeUqw0KK+mZs+aYsemBlA0KK+mZs+aYseaoug0KK+mZs+aflOWuiQ0KK+mZs+afhOaWuQ0KK+mZs+afj+WFgw0KK+mZs+afj+S7vQ0KK+mZs+afj+Wuhw0KK+mZs+afj+W3ng0KK+mZs+afj+W5tA0KK+mZs+afj+iInw0KK+mZs+afj+WQqw0KK+mZs+afj+Wujw0KK+mZs+afj+W/lw0KK+mZs+afj+ayhQ0KK+mZs+afj+Wysw0KK+mZs+afj+WzsA0KK+mZs+afj+WHsQ0KK+mZs+afj+eRng0KK+mZs+afj+Wvpw0KK+mZs+afj+iTiQ0KK+mZs+afj+eSiw0KK+mZs+afj+e/sA0KK+mZs+afj+i8rw0KK+mZs+afj+eRiw0KK+mZs+a0suaYnw0KK+mZs+eCq+WQmw0KK+mZs+eCs+S7sg0KK+mZs+eCs+i+sA0KK+mZs+eCs+mMlQ0KK+mZs+eCr+mMpg0KK+mZs+ePiuePig0KK+mZs+ePjeeRqQ0KK+mZs+eahuiIiA0KK+mZs+eah+aXrQ0KK+mZs+eah+m+jQ0KK+mZs+ebiOWFqA0KK+mZs+ebiOWmgg0KK+mZs+ebiOWmgg0KK+mZs+ebiOWuiQ0KK+mZs+ebiOeruQ0KK+mZs+ebiOWQmw0KK+mZs+ebiOWtnA0KK+mZs+ebiOadiQ0KK+mZs+ebiOiynQ0KK+mZs+ebiOWptw0KK+mZs+ebiOe2ug0KK+mZs+ebiOeSiw0KK+mZs+ebiOirrQ0KK+mZs+ebiOeShw0KK+mZs+ebuOmBlA0KK+mZs+eliOizkw0KK+mZs+emuem9ig0KK+mZs+enkemghg0KK+mZs+eni+aWuQ0KK+mZs+eni+W4hg0KK+mZs+eni+engA0KK+mZs+eni+e0lA0KK+mZs+eni+iQjQ0KK+mZs+eni+mbrw0KK+mZs+eni+eHlQ0KK+mZs+e0heeOiQ0KK+mZs+e0gOi2sw0KK+mZs+e+juS6kQ0KK+mZs+e+jueOiQ0KK+mZs+e+juWmgg0KK+mZs+e+juW5tA0KK+mZs+e+juS8tg0KK+mZs+e+juWQmw0KK+mZs+e+juWQnw0KK+mZs+e+juW7tw0KK+mZs+e+juengA0KK+mZs+e+juiKnQ0KK+mZs+e+jueOsg0KK+mZs+e+juWonw0KK+mZs+e+jue0lA0KK+mZs+e+juWWrA0KK+mZs+e+juaDoA0KK+mZs+e+jueQtA0KK+mZs+e+juiPsQ0KK+mZs+e+jumItA0KK+mZs+e+juaFpw0KK+mZs+e+juWEkg0KK+mZs+e+jumdnA0KK+mZs+e+jumIug0KK+mZs+e+v+iwtw0KK+mZs+iHtOS7sA0KK+mZs+iHtOWujw0KK+mZs+iHtOemjw0KK+mZs+iHtOWPoQ0KK+mZs+iLpeabpg0KK+mZs+iMgumbhA0KK+mZs+iLseadsA0KK+mZs+iLseaMrw0KK+mZs+iLseWCkQ0KK+mZs+iLseiTkw0KK+mZs+iLsem0uw0KK+mZs+iLk+Wonw0KK+mZs+iZueabsg0KK+mZs+iZueWQnw0KK+mZs+iZuea9lA0KK+mZs+ihjeiHsw0KK+mZs+ihjemclg0KK+mZs+iynuaXrQ0KK+mZs+iynuWmpA0KK+mZs+iynuiTiQ0KK+mZs+iynueRiw0KK+mZs+mDgeS7gQ0KK+mZs+mDgeaWhw0KK+mZs+mDgeiKrA0KK+mZs+mDgeWCkQ0KK+mZs+mDgeiPgQ0KK+mZs+mDgealkw0KK+mZs+mHjeWFiQ0KK+mZs+mHjeW7tw0KK+mZs+mHjeWEkg0KK+mZs+mfi+WcqA0KK+mZs+mfi+S8tg0KK+mZs+mfi+W7tw0KK+mZs+mfi+aJvw0KK+mZs+mfi+ixqg0KK+mZs+mfsw0KK+mZs+mjm+iJrw0KK+mZs+mmmeWmgg0KK+mZs+mmmeWQnw0KK+mZs+mmmeWptw0KK+mZs+WAjeeUhA0KK+mZs+WAlue/oA0KK+mZs+WHjOehrw0KK+mZs+WTsuawkQ0KK+mZs+WTsuW8tw0KK+mZs+WTsuizog0KK+mZs+Wutuatow0KK+mZs+WutuWlhw0KK+mZs+WutuePjQ0KK+mZs+WutuelpQ0KK+mZs+Wutua5lg0KK+mZs+Wutumbrw0KK+mZs+Wutua8og0KK+mZs+WutuWEgA0KK+mZs+WutuaFpw0KK+mZs+WutuiIiA0KK+mZs+WutueQrg0KK+mZs+WuueiQsQ0KK+mZs+WzsOW3ng0KK+mZs+aBlQ0KK+mZs+aBqeamrg0KK+mZs+aMr+adsQ0KK+mZs+aMr+a5pw0KK+mZs+aMr+mKmA0KK+mZs+aZguebnw0KK+mZs+abuOWFiQ0KK+mZs+abuOavkw0KK+mZs+ahgueOiQ0KK+mZs+ahguaFpw0KK+mZs+azsOWFqA0KK+mZs+azsOS8tg0KK+mZs+azsOWzsA0KK+mZs+azsOmKmA0KK+mZs+a1muasvQ0KK+mZs+a1qeiMuQ0KK+mZs+ePruS6kQ0KK+mZs+ePruaAoQ0KK+mZs+ePruePrg0KK+mZs+ePrueRnA0KK+mZs+ePrueRiw0KK+mZs+ebiuijlQ0KK+mZs+elkOaCjA0KK+mZs+e0oQ0KK+mZs+e0oOePjQ0KK+mZs+e0oOWopQ0KK+mZs+e0oOeRnA0KK+mZs+e0lOaAoQ0KK+mZs+iAmOWvrA0KK+mZs+iNg+ixqg0KK+mZs+mDoeaAoQ0KK+mZs+S5vua3pg0KK+mZs+WBieawkQ0KK+mZs+WBieS/oQ0KK+mZs+WBieiOiQ0KK+mZs+WBieijlQ0KK+mZs+WBpeS4ig0KK+mZs+WBpeWwgQ0KK+mZs+WBpemclg0KK+mZs+Wci+WFgw0KK+mZs+Wci+aYjg0KK+mZs+Wci+WzsA0KK+mZs+Wci+aigQ0KK+mZs+Wci+ajiw0KK+mZs+Wci+amrg0KK+mZs+Wci+mLkg0KK+mZs+WgheawkQ0KK+mZs+WfueiCsg0KK+mZs+Wfueerrw0KK+mZs+WpieiCsg0KK+mZs+WpieWNvw0KK+mZs+WpieiPgQ0KK+mZs+Wpiea9lA0KK+mZs+W0h+WOnw0KK+mZs+W0kemKmA0KK+mZs+W9qee0lA0KK+mZs+aNtw0KK+mZs+WVn+WtmA0KK+mZs+WVn+a4hQ0KK+mZs+WVn+mKmA0KK+mZs+aVj+aYnw0KK+mZs+aVj+aWsA0KK+mZs+aik+eRiw0KK+mZs+aihemmqA0KK+mZs+a4heWlhw0KK+mZs+a4hea6kA0KK+mZs+a3kQ0KK+mZs+a3keWQmw0KK+mZs+a3keaAoQ0KK+mZs+a3keiKrA0KK+mZs+a3keiKrA0KK+mZs+a3keeOsg0KK+mZs+a3keeniw0KK+mZs+a3keiyng0KK+mZs+a3keWonw0KK+mZs+a3keWonw0KK+mZs+a3keecnw0KK+mZs+a3kee+mg0KK+mZs+a3keaDoA0KK+mZs+a3keiQjQ0KK+mZs+a3kembhQ0KK+mZs+a3kemItA0KK+mZs+a3keaFpw0KK+mZs+a3kemdnA0KK+mZs+a3teeniw0KK+mZs+eMm+Wulw0KK+mZs+elpemIng0KK+mZs+e0ueW6rQ0KK+mZs+iOiuWBiQ0KK+mZs+iOieWptw0KK+mZs+ioseawkQ0KK+mZs+mbquiKrA0KK+mZs+mbquiPrw0KK+mZs+WCkeijlQ0KK+mZs+WHseeOsg0KK+mZs+WHsemIvw0KK+mZs+WLneWmgg0KK+mZs+WLneWYiQ0KK+mZs+WNmuW6tw0KK+mZs+WWrOWuhw0KK+mZs+Wpt+eOnw0KK+mZs+WvjOawkQ0KK+mZs+WvjOamrg0KK+mZs+aDoOaWhw0KK+mZs+aDoOWQmw0KK+mZs+aDoOiKrA0KK+mZs+aDoOeOsg0KK+mZs+aDoOe+jg0KK+mZs+aDoOWonw0KK+mZs+aDoOWptw0KK+mZs+aDoOiQjQ0KK+mZs+aDoOmbrw0KK+mZs+aDoOmbrw0KK+mZs+aDoOm9oQ0KK+mZs+aPmuWTsg0KK+mZs+aZtuaZtg0KK+mZs+aZr+azsA0KK+mZs+aZr+mRqw0KK+mZs+aZuuS6rg0KK+mZs+aZuuWBiQ0KK+mZs+aZuumZvQ0KK+mZs+aZuuWvrA0KK+mZs+acneaWhw0KK+mZs+acneeGmQ0KK+mZs+aji+ePjQ0KK+mZs+a5mOS6jg0KK+mZs+a5mOeQtA0KK+mZs+a4neaWhw0KK+mZs+eQqumbrw0KK+mZs+eQpueQsw0KK+mZs+eZu+mahg0KK+mZs+etkeetoA0KK+mZs+iCheasig0KK+mZs+iIkuaGmw0KK+mZs+iPgQ0KK+mZs+iPr+WBiQ0KK+mZs+ipoOS6rg0KK+mZs+izgOmIug0KK+mZs+i+nOS6rg0KK+mZs+mAuOW5sw0KK+mZs+mAuOaYjg0KK+mZs+mAuOebiA0KK+mZs+mAuOiPgQ0KK+mZs+mAuOe2rQ0KK+mZs+mAuOm0uw0KK+mZs+mAsuW/lw0KK+mZs+mAsumahg0KK+mZs+mInuWxjw0KK+mZs+mWlOmahg0KK+mZs+mahuaWjA0KK+mZs+mbheWQmw0KK+mZs+mbheeOqw0KK+mZs+mbheiKrA0KK+mZs+mbheeOsg0KK+mZs+mbheeOsg0KK+mZs+mbheiLkw0KK+mZs+mbheePrg0KK+mZs+mbhembqg0KK+mZs+mbheWptw0KK+mZs+mbheaDoA0KK+mZs+mbheaDoA0KK+mZs+mbheeQqg0KK+mZs+mbheeQtA0KK+mZs+mbheiPgQ0KK+mZs+mbhembrw0KK+mZs+mbhembrw0KK+mZs+mbhemItA0KK+mZs+mbheaFpw0KK+mZs+mbhemfuw0KK+mZs+mbrw0KK+mZs+mbr+aDoA0KK+mZs+mbsuaouA0KK+mZs+mghueZvA0KK+mZs+WCs+iIiA0KK+mZs+aEj+aWhw0KK+mZs+aEj+mbrw0KK+mZs+aFiOmbhQ0KK+mZs+aEm+eUhA0KK+mZs+aVrOaWhw0KK+mZs+aVrOWCkQ0KK+mZs+aWsOeDiA0KK+mZs+alree1sQ0KK+mZs+amhua2tQ0KK+mZs+avk+iJrw0KK+mZs+avk+iMuQ0KK+mZs+avk+mIng0KK+mZs+a6kOatow0KK+mZs+a6q+iQjQ0KK+mZs+eFp+aFiA0KK+mZs+eFpua3kQ0KK+mZs+eFpeajrg0KK+mZs+eRnuWIqQ0KK+mZs+eRnuaYjA0KK+mZs+eRnuiKrA0KK+mZs+eRnumHpw0KK+mZs+eRnueRnA0KK+mZs+eRnumclg0KK+mZs+eRnum6nw0KK+mZs+eRnOipqQ0KK+mZs+eluuWvjA0KK+mZs+e2k+Wciw0KK+mZs+e+qeW/oA0KK+mZs+e+qee3rw0KK+mZs+iBluWwuQ0KK+mZs+iBluWunA0KK+mZs+iBluWCkQ0KK+mZs+iBluaGsg0KK+mZs+iQseiUkw0KK+mZs+icgueBnQ0KK+mZs+ijleWNhw0KK+mZs+ijleW7tw0KK+mZs+ijleaZug0KK+mZs+ipqeW5sw0KK+mZs+ipqeaziQ0KK+mZs+ipqeWptw0KK+mZs+ipqeipqQ0KK+mZs+ipqeiYiw0KK+mZs+mBi+W+tQ0KK+mZs+mBlOijlQ0KK+mZs+mbjQ0KK+mZs+mdluaAoQ0KK+mZs+m8juS7gQ0KK+mZs+WYieS7gQ0KK+mZs+WYieS6qA0KK+mZs+WYieWujw0KK+mZs+WYieaAoQ0KK+mZs+WYieeOsg0KK+mZs+WYieWzsA0KK+mZs+WYieiMtQ0KK+mZs+WYiea3pg0KK+mZs+WYieaDoA0KK+mZs+WYiembgQ0KK+mZs+WYieWLpA0KK+mZs+WYieW+tw0KK+mZs+WYieeRqQ0KK+mZs+WYieeHnw0KK+mZs+WYieeQrg0KK+mZs+aXl+aYjA0KK+mZs+amruadsA0KK+mZs+amrumAsg0KK+mZs+amrueHvw0KK+mZs+a8ouePjQ0KK+mZs+a8ouiUmg0KK+mZs+eRpOecnw0KK+mZs+eip+e0hQ0KK+mZs+eip+mbsg0KK+mZs+eiqeWBiQ0KK+mZs+emj+aelw0KK+mZs+e2uuiPrw0KK+mZs+e2remCpg0KK+mZs+e2reWTsg0KK+mZs+e2reWEgA0KK+mZs+e/oOWptw0KK+mZs+iCh+m0uw0KK+mZs+iTk+eOsg0KK+mZs+iqjOedvw0KK+mZs+mKmA0KK+mZs+mKmOaziQ0KK+mZs+mKmOW8tw0KK+mZs+mKmOmbhA0KK+mZs+mKmOiAgA0KK+mZs+mzs+eOsg0KK+mZs+mzs+mztA0KK+mZs+WEgA0KK+mZs+WEgOePig0KK+mZs+WEgOa9lA0KK+mZs+WvrOWmgg0KK+mZs+W7o+m6nw0KK+mZs+W+t+WSjA0KK+mZs+W+t+Wggg0KK+mZs+W+t+mBoA0KK+mZs+W+teWulw0KK+mZs+aFtuaYnw0KK+mZs+aFtuiPrw0KK+mZs+aFtue2rQ0KK+mZs+aFtue/sA0KK+mZs+aFtum0uw0KK+mZs+aFp+eOiQ0KK+mZs+aFp+Wmgg0KK+mZs+aFp+WQmw0KK+mZs+aFp+iKnQ0KK+mZs+aFp+ePig0KK+mZs+aFp+eOsg0KK+mZs+aFp+e+jg0KK+mZs+aFp+WNvw0KK+mZs+aFp+ecnw0KK+mZs+aFp+e0lA0KK+mZs+aFp+aVjw0KK+mZs+aFp+iQjQ0KK+mZs+aFp+mbrw0KK+mZs+aFp+iTiQ0KK+mZs+aFp+aotQ0KK+mZs+aFp+iYrQ0KK+mZs+aFleWEkg0KK+mZs+avheatow0KK+mZs+avhem0uw0KK+mZs+a9lOmfsw0KK+mZs+eRqeiKsw0KK+mZs+eRqeiTiQ0KK+mZs+eRqeeRhA0KK+mZs+e3r+aBqQ0KK+mZs+iUmumdkg0KK+mZs+iqvOiKsw0KK+mZs+izouWFuA0KK+mZs+i8neWQiQ0KK+mZs+mch+Wuhw0KK+mZs+m7juahgg0KK+mZs+WtuOaYjg0KK+mZs+aGsuS7gQ0KK+mZs+aGsuWEgA0KK+mZs+aGtumbrw0KK+mZs+abieWnjQ0KK+mZs+abiemdkg0KK+mZs+abiemiqA0KK+mZs+abieW1kA0KK+mZs+abieiPgQ0KK+mZs+abieetoA0KK+mZs+abieaFpw0KK+mZs+abiem6lw0KK+mZs+aoueW5tA0KK+mZs+a+pOePig0KK+mZs+eHleS8tg0KK+mZs+eHleiPgQ0KK+mZs+eHleaAnA0KK+mZs+epjuWQmw0KK+mZs+epjuelpQ0KK+mZs+epjuaFpw0KK+mZs+ephuiTiQ0KK+mZs+e/sOeSiw0KK+mZs+iVmeiKsw0KK+mZs+iVmeiLuQ0KK+mZs+mMq+iPrw0KK+mZs+mMpuengA0KK+mZs+mMpuWggg0KK+mZs+mMpuaFpw0KK+mZs+mMpum0uw0KK+mZs+mdnOWmgg0KK+mZs+mdnOWunA0KK+mZs+mdnOaAoQ0KK+mZs+mdnOaAoQ0KK+mZs+mdnOaAoQ0KK+mZs+mdnOiKsw0KK+mZs+mdnOa3kQ0KK+mZs+mdnOWvpw0KK+mZs+mdnOWEgA0KK+mZs+mdnOaFpw0KK+mZs+mdnOizog0KK+mZs+m+jeeUnw0KK+mZs+m+jeWvrA0KK+mZs+abmeadsQ0KK+mZs+iBsOS7gQ0KK+mZs+iHhuS7gQ0KK+mZs+iWhw0KK+mZs+iWh+Wmgg0KK+mZs+ismeavhQ0KK+mZs+mnv+aPmg0KK+mZs+m0u+aWhw0KK+mZs+m0u+W/lw0KK+mZs+m0u+a4hQ0KK+mZs+m0u+ijlQ0KK+mZs+m0u+mclg0KK+mZs+eSv+Wmgg0KK+mZs+ixkOaMrw0KK+mZs+aHt+WTsg0KK+mZs+eSveeIrQ0KK+mZs+eTiua3hw0KK+mZs+eTiuaoug0KK+mZs+iXneW/gw0KK+mZs+i0iuS4rQ0KK+mZs+mPl+S7uw0KK+mZs+mfu+WkmQ0KK+mZs+mfu+Wmgg0KK+mZs+mfu+Wmgg0KK+mZs+mfu+Wmgg0KK+mZs+mfu+eruQ0KK+mZs+mfu+Wptw0KK+mZs+mfu+mdnA0KK+mZs+m1rOemvg0KK+mZs+m6kuWFgw0KK+mZs+m6kuWFqA0KK+mZs+m6l+aWhw0KK+mZs+m6l+Wmgg0KK+mZs+m6l+Wuhw0KK+mZs+m6l+iAjA0KK+mZs+m6l+iKrA0KK+mZs+m6l+WNvw0KK+mZs+m6l+ePoA0KK+mZs+m6l+Wptw0KK+mZs+m6l+iQjQ0KK+mZs+m6l+mbrw0KK+mZs+m6l+iTrg0KK+mZs+WvtueOiQ0KK+mZs+WvtuiTrg0KK+mZs+iAgOS7gQ0KK+mZs+iAgOesmQ0KK+mZs+mmqOaAoQ0KK+mZs+WEt+aWhw0KK+mZs+aru+WuuQ0KK+mZs+itvem9oQ0KK+mZs+m2tOS4rQ0KK+mZs+aHv+aYoA0KK+mZs+iJt+mItA0KK+mZs+iKiuengA0KK+mZs+aAnOWQmw0KK+mZs+aXu+aUvw0KK+mZs+eOoOa6kA0KK+mZs+Wnrumcjw0KK+mZs+WnteWmgg0KK+mZs+WnteWQnw0KK+mZs+WnteeRsQ0KK+mZs+aYtuaYsQ0KK+mZs+ePiOeQpg0KK+mZs+W9p+mmqA0KK+mZs+eQh+Wmgg0KK+mZs+WgnA0KK+mZs+eQrumWlA0KK+mZs+eQrOWptw0KK+mZs+eQrOiPgQ0KK+mZs+akuOa2kw0KK+mZs+eRiw0KK+mZs+eRi+WFuA0KK+mZs+eRi+iAmA0KK+mZs+eRi+aYtg0KK+mZs+etseiKsw0KK+mZs+etseWptw0KK+mZs+etseetoA0KK+mZs+iQqeiKuA0KK+mZs+mIuueOqw0KK+mZs+mIuuWptw0KK+mZs+mIuueSvQ0KK+mZs+mKmuiMuQ0KK+mZs+mciOWuhw0KK+mZs+iWj+mbrw0KK+mZs+eAheWmgg0KK+mZs+eAhea3kQ0KK+mZs+Wsv+WboA0KK+mZs+Wsv+S8tg0KK+mZs+mhl+aWhw0KK+mZs+mRq+m6nw0KK+mZuOWwj+eHlQ0KK+mZuOato+e+qQ0KK+mZuOWto+Wujw0KK+mZuOS/oem+jQ0KK+mZuOa0peiPrw0KK+mZuOaiheWptw0KK+mZuOmbsuazsA0KK+mZuOmzs+eOsg0KK+mZuOa3r+mItA0KK+mZtuiCsuWdhw0KK+mZtuaDn+iQsQ0KK+eroOaWh+iKnQ0KK+eroOS9s+mbsg0KK+eroOaguea6kA0KK+eroOe/lA0KK+eroOeTiuaWuQ0KK+m6peS9qembrw0KK+m6peebp+WvtuWFqA0KK+WCheS4gOmbhA0KK+WCheWtkOaBkg0KK+WCheaWh+mAsg0KK+WCheato+W4jA0KK+WCheWFieaZug0KK+WCheWuj+aWjA0KK+WCheS6nuWHoQ0KK+WCheaAoeiKsw0KK+WChemHkeWujw0KK+WCheW7uuWciw0KK+WCheaYoOWFiA0KK+WChee+juiTiQ0KK+WCheePrua3hw0KK+WCheWci+ajnw0KK+WCheWVn+eahw0KK+WChea3kembrw0KK+WCheaWr+W5sw0KK+WChembheWNvw0KK+WCheeFjOmMpg0KK+WChemJm+aWhw0KK+WCheW+t+aUvw0KK+WChemNrOa3vA0KK+WCheeQrg0KK+WWruS6puS/oA0KK+WWu+iHs+WWhA0KK+WWrOWul+Wgrw0KK+WvjOW6t+e/lA0KK+W9reS4iuWQiQ0KK+W9reWjq+aBkg0KK+W9reS7geW/lw0KK+W9reWPiui+sA0KK+W9reaWh+Wujw0KK+W9reaWh+aFpw0KK+W9reS7peS/oQ0KK+W9reato+iJrw0KK+W9reeOieiPrw0KK+W9reS8iuiKrA0KK+W9reWmguaVjw0KK+W9reaIkOWCkQ0KK+W9reaXreWInQ0KK+W9reWuj+WQmw0KK+W9reW/l+ixqg0KK+W9reS9s+WBiQ0KK+W9reWul+aEjw0KK+W9reaAoeiVmQ0KK+W9reaci+mbjQ0KK+W9reenieatow0KK+W9reS/neasow0KK+W9reS/iuemjw0KK+W9reWGoOeRmw0KK+W9reWogee/lA0KK+W9reW7uuamrg0KK+W9reW+i+WHoQ0KK+W9reafj+WogQ0KK+W9reeni+iQjQ0KK+W9reiLpeaFiA0KK+W9remDgeS7gQ0KK+W9reWTsuS7gQ0KK+W9rea1qeWAqw0KK+W9reWBieWQmw0KK+W9reWci+WzsA0KK+W9reW0h+S/oQ0KK+W9reWVn+mIng0KK+W9rea3keePjQ0KK+W9reebmw0KK+W9rembqueQpg0KK+W9reWWnOa1qQ0KK+W9reaZtuiBsg0KK+W9rea7i+iQjQ0KK+W9reiIkuW9pQ0KK+W9remWi+aYjg0KK+W9rembhee1uQ0KK+W9reaEm+iYiw0KK+W9reeRnuiLkw0KK+W9reiBluiQjQ0KK+W9reWYieWQmw0KK+W9reamruahgg0KK+W9remKmOa3hw0KK+W9reaFp+Wmgg0KK+W9reizouS4gA0KK+W9reabieeQqg0KK+W9remMpueCqw0KK+W9remnv+a0gQ0KK+W9rem6l+aFpw0KK+W9remmqOaFpw0KK+W9reeRi+W9pQ0KK+W9remgjuiYiw0KK+aZr+mbqOeniw0KK+abvuWHoeWTsg0KK+abvuS6juaFiA0KK+abvuWNg+ixqg0KK+abvuWjq+i7kg0KK+abvuWjq+aBkg0KK+abvuWtkOW6rQ0KK+abvuWwj+eOsg0KK+abvuS7geS9kQ0KK+abvuWFg+W/lw0KK+abvuWtlOmIug0KK+abvuaWhw0KK+abvuaWh+W/oA0KK+abvuaWh+W9rA0KK+abvuaWh+aFpw0KK+abvuaWh+mhlw0KK+abvuS4lueFjA0KK+abvuS7pOeRnA0KK+abvuW5s+iqpQ0KK+abvuato+iAgA0KK+abvueOieWmgg0KK+abvueOieiPgQ0KK+abvueri+W+tw0KK+abvuS7suebnw0KK+abvuWQieWujw0KK+abvuWmguWQmw0KK+abvuWuieeQqg0KK+abvue+veW2ug0KK+abvuWQm+ixqg0KK+abvuW/l+eOhA0KK+abvuW/l+WCkQ0KK+abvuW/l+m6nw0KK+abvuengOaihQ0KK+abvuiCsuiPgQ0KK+abvuS9s+eOsg0KK+abvuS9s+eRsQ0KK+abvuWto+athg0KK+abvuWwmuW/lw0KK+abvuaAoeWonw0KK+abvuaAoeWYiQ0KK+abvuaJv+W/lw0KK+abvuaYjuW+tw0KK+abvuazk+mclg0KK+abvuiKneiYrQ0KK+abvuS/oeWCkQ0KK+abvuS/iuW9pQ0KK+abvuS/iuaZug0KK+abvuS/iuixqg0KK+abvuS/iueRiw0KK+abvuWGoOaoug0KK+abvuWTgeW9sA0KK+abvuWnv+e2ug0KK+abvuWogeirrQ0KK+abvuW7uuWSjA0KK+abvuW7uuWNmg0KK+abvuW7uuamrg0KK+abvuW7uumclg0KK+abvuW9pemWlA0KK+abvuW9pee/sA0KK+abvuaAnee2rQ0KK+abvuaUv+ixqg0KK+abvuaYree/lA0KK+abvuaYoOm9oQ0KK+abvuafj+a2tQ0KK+abvuafj+iIiA0KK+abvueah+m+jQ0KK+abvueni+aVjw0KK+abvue+juaAoQ0KK+abvue+juiPrw0KK+abvue+jum9oQ0KK+abvuiLseWzsA0KK+abvumDgeaWhw0KK+abvumDgeepjg0KK+abvuWutuaMrw0KK+abvuWxleWFtg0KK+abvuabuOaFpw0KK+abvuePrueQsw0KK+abvue0oOmItA0KK+abvui7kuW9rA0KK+abvuWBiee/lA0KK+abvuWBpemAog0KK+abvuWci+W/lw0KK+abvuWci+abuA0KK+abvuWci+ijlQ0KK+abvuWci+mLhg0KK+abvuWpieaDoA0KK+abvuW6uOWTsg0KK+abvuWVn+W8tw0KK+abvuaiheeOiQ0KK+abvua3keiKsw0KK+abvua3keaVjw0KK+abvua3keiQjQ0KK+abvua2teWJrw0KK+abvuelpemBlA0KK+abvuiyq+aZug0KK+abvuWHseaCjA0KK+abvuWNmuW9pQ0KK+abvuWvjOmIug0KK+abvuaDoOeOsg0KK+abvuaDoOmbrw0KK+abvuaWkOe0hQ0KK+abvuaZuuW8mA0KK+abvuaZuuelug0KK+abvua5mOmbsg0KK+abvuiIkuW5sw0KK+abvuiPr+m9oQ0KK+abvuiytOemjg0KK+abvumInum8jg0KK+abvumbhemdkg0KK+abvumbheaDoA0KK+abvumbhemJiQ0KK+abvumbsuaykA0KK+abvuaEj+aWhw0KK+abvuaFiOaDoA0KK+abvuaaiea0uA0KK+abvua6peWFgw0KK+abvueFpeWCkQ0KK+abvueRnuaZgw0KK+abvueRm+eQsw0KK+abvuetoOWHig0KK+abvuiBlueEtg0KK+abvuijleWHsQ0KK+abvuipqee/sA0KK+abvumdluWonw0KK+abvum8juWFgw0KK+abvuWYieiLsQ0KK+abvuamrg0KK+abvueip+iTrg0KK+abvue2ree+pA0KK+abvumKmOmKnA0KK+abvuW+t+m+jQ0KK+abvuaFtueRhA0KK+abvuaFp+ecnw0KK+abvua+hOWgiQ0KK+abvuaGsuW/oA0KK+abvuabieeQqg0KK+abvuiVmeiPgQ0KK+abvumdnOaAoQ0KK+abvue5gemdkg0KK+abvum0u+Wutg0KK+abvuaHt+izog0KK+abvueTiuaFpw0KK+abvumfu+ecnw0KK+abvum6l+Wonw0KK+abvuWvtuejgQ0KK+abvue5vOWing0KK+abvuiAgOizog0KK+abvummqOWEgA0KK+abvum9oeaFpw0KK+abvumDhee1nA0KK+abvueQruW9pQ0KK+abvuaakOa4hQ0KK+abvuetseWptw0KK+abvumIuuiKrA0KK+abvueejQ0KK+a4uOWKm+ihjA0KK+a4uOWjq+a8og0KK+a4uOWkp+e3rw0KK+a4uOS5i+Wruw0KK+a4uOaWh+W/lw0KK+a4uOaWh+iBsA0KK+a4uOS4luaWjA0KK+a4uOacrOWogQ0KK+a4uOeOieWnvw0KK+a4uOWFhuWQmw0KK+a4uOWQm+iLuQ0KK+a4uOW/l+WBiQ0KK+a4uOadjumbhA0KK+a4uOS6nuS/kA0KK+a4uOS9s+aVjw0KK+a4uOS9qeWLsw0KK+a4uOWul+aGsg0KK+a4uOWunOe+pA0KK+a4uOaAoeelpQ0KK+a4uOaYjOe/sA0KK+a4uOaYjuWEgA0KK+a4uOasow0KK+a4uOmdkumcjw0KK+a4uOWllemclg0KK+a4uOaUv+eSiw0KK+a4uOeni+aAoQ0KK+a4uOiLseWmgg0KK+a4uOWon+Wonw0KK+a4uOWutuixqg0KK+a4uOaBqeaUvw0KK+a4uOePruetoA0KK+a4uOmrmOadsA0KK+a4uOWpiemdkg0KK+a4uOWVn+i8nQ0KK+a4uOa3keWmgg0KK+a4uOa3keaDoA0KK+a4uOelpeadsA0KK+a4uOWHseWqnA0KK+a4uOWWrOaZug0KK+a4uOaDoOeOsg0KK+a4uOaZr+e/lA0KK+a4uOaZuui2hQ0KK+a4uOacneiInA0KK+a4uOero+ebmw0KK+a4uOiInOWCkQ0KK+a4uOmAsuWvjA0KK+a4uOmbheiKsw0KK+a4uOmbheWptw0KK+a4uOmbheetoA0KK+a4uOeRnuiTrg0KK+a4uOijleW+tw0KK+a4uOamruiPrw0KK+a4uOaFtuiKsw0KK+a4uOi8neelpQ0KK+a4uOabieiKuA0KK+a4uOmMq+Wulw0KK+a4uOmnv+WBiQ0KK+a4uOmOrumCpg0KK+a4uOeNu+e+pA0KK+a4uOaXu+aGsg0KK+a4uOefnueahw0KK+a5r+S4gOePig0KK+a5r+S7iuiYrQ0KK+a5r+eOieeQtA0KK+a5r+W/l+W/oA0KK+a5r+S9s+e/sA0KK+a5r+Wys+ixig0KK+a5r+ayu+mCpg0KK+a5r+Wutuixqg0KK+a5r+WBpeaWhw0KK+a5r+a3teWvjA0KK+a5r+WvjOajiw0KK+a5r+ipoOeRnA0KK+a5r+mbhealkw0KK+a5r+aFtumMmg0KK+a5r+m0u+izog0KK+eEpuS/oeelpQ0KK+eoi+S5i+Wvpw0KK+eoi+aWh+mNvg0KK+eoi+eri+i8nQ0KK+eoi+W/l+aWhw0KK+eoi+WwmuWJhw0KK+eoi+eniemRqw0KK+eoi+Wlleasow0KK+eoi+W7uue/sA0KK+eoi+afj+eroA0KK+eoi+eni+iYrQ0KK+eoi+WBieaUvw0KK+eoi+Wpieasow0KK+eoi+a3keeOsg0KK+eoi+aWkOaWhw0KK+eoi+mbheaDoA0KK+eoi+ipqeWptw0KK+eoi+a9lOiPoQ0KK+eoi+eTiuiQsQ0KK+eoi+iYiumcng0KK+erpeWjq+iKrA0KK+erpeW8mA0KK+erpeWuieS6qA0KK+erpeS/oeWSjA0KK+erpee+jua7vw0KK+erpeaDn+aWsA0KK+erpea5mOiKuA0KK+erpeiBluWCkQ0KK+erpemfu+Wmgg0KK+erpeeAheiTiQ0KK+iIkuWpt+Wptw0KK+iPr+Wci+mLkg0KK+img+aAnem9ig0KK+iyu+moj+iRsw0KK+izgOWOmuW5sw0KK+izgOeRnum6lw0KK+iyt+iPgeiPrw0KK+i+nOS/oeemjw0KK+i+nOmDgeS7gQ0KK+i+nOaDoOe+pA0KK+i+nOmdnOaAoQ0KK+mWlOS7u+mBoA0KK+mZveato+WFiQ0KK+mbsuaZuuWLhw0KK+mgiOS4iuiLkQ0KK+mmruWFgeS4rQ0KK+mmruaWh+aUvw0KK+mmruawuOeAhQ0KK+mmruS9kembhA0KK+mmruS9s+eQpg0KK+mmrumVt+m+jQ0KK+mmruW7uuetjA0KK+mmrue+juePig0KK+mmruaZieWYiQ0KK+mmruW9qeWonw0KK+mmruWNmuWBiQ0KK+mmrue/lOeRnA0KK+mmrueRnumZvQ0KK+mmruiqjOmBtQ0KK+mmrueGvueFkg0KK+mmruiAgOaWhw0KK+m7g+S4gA0KK+m7g+S4gOWAqw0KK+m7g+S5meS4ig0KK+m7g+WKm+iogA0KK+m7g+S4iuiKsw0KK+m7g+WHoee2rQ0KK+m7g+S6juiKrA0KK+m7g+S6juePig0KK+m7g+S6juWTsg0KK+m7g+S6juecnw0KK+m7g+S6juemjg0KK+m7g+WNg+iKsw0KK+m7g+WNg+WHjA0KK+m7g+WNg+iPrw0KK+m7g+Wjqw0KK+m7g+Wjq+asow0KK+m7g+Wjq+WOnw0KK+m7g+Wjq+WzsA0KK+m7g+Wjq+mHlw0KK+m7g+Wjq+WYiQ0KK+m7g+Wjq+ixqg0KK+m7g+Wjq+izog0KK+m7g+Wkp+WAqw0KK+m7g+WtkOaJjQ0KK+m7g+WtkOW7ug0KK+m7g+WtkOWNvw0KK+m7g+WtkOi7kg0KK+m7g+WtkOephg0KK+m7g+Wwj+S9qQ0KK+m7g+Wwj+Wonw0KK+m7g+WxseWzsA0KK+m7g+aJjeaXug0KK+m7g+S4reWBiQ0KK+m7g+S5i+S6rQ0KK+m7g+S7geW8mA0KK+m7g+S7geiJrw0KK+m7g+S7geafjw0KK+m7g+S7geeSiw0KK+m7g+WFg+WxsQ0KK+m7g+WFg+mahg0KK+m7g+WFg+mnvw0KK+m7g+WPi+ismQ0KK+m7g+WkqeWBpQ0KK+m7g+WwkembqA0KK+m7g+W/g+aAoQ0KK+m7g+W/g+aAoQ0KK+m7g+W/g+aAoQ0KK+m7g+W/g+WEgA0KK+m7g+W/g+Wnrg0KK+m7g+aWh+atow0KK+m7g+aWh+WtnQ0KK+m7g+aWh+adkQ0KK+m7g+aWh+aAoQ0KK+m7g+aWh+S/oQ0KK+m7g+aWh+W9pQ0KK+m7g+aWh+eOsg0KK+m7g+aWh+ebig0KK+m7g+aWh+WLnQ0KK+m7g+aWh+mahg0KK+m7g+aWh+elug0KK+m7g+aWh+amrg0KK+m7g+aWh+eSiw0KK+m7g+aWh+m+jQ0KK+m7g+aWh+m6kg0KK+m7g+aXpemdkg0KK+m7g+aciOeRvg0KK+m7g+S4luWuiQ0KK+m7g+S4luWunA0KK+m7g+S4luaciw0KK+m7g+S4luWghQ0KK+m7g+S4lua5pw0KK+m7g+S4luWYiQ0KK+m7g+S4luWing0KK+m7g+S4luepjg0KK+m7g+S7peWWrA0KK+m7g+S7lemBlA0KK+m7g+WKoOasow0KK+m7g+WPr+eUhA0KK+m7g+W3p+Wptw0KK+m7g+W5s+Wuhw0KK+m7g+W8mOWQiQ0KK+m7g+W8mOavhQ0KK+m7g+ato+S4gA0KK+m7g+ato+WuiQ0KK+m7g+ato+S9qQ0KK+m7g+ato+WBiQ0KK+m7g+ato+mghg0KK+m7g+ato+mMlQ0KK+m7g+awuOS7gQ0KK+m7g+awuOaYhw0KK+m7g+awuOaZug0KK+m7g+awuOa8og0KK+m7g+axgOa7vw0KK+m7g+eOieWQmw0KK+m7g+eOiembqA0KK+m7g+eOieWonw0KK+m7g+eOieWptw0KK+m7g+eOieiPgQ0KK+m7g+eOieeRqQ0KK+m7g+eOieiYrQ0KK+m7g+eri+aWhw0KK+m7g+eri+iKrA0KK+m7g+eri+mBlA0KK+m7g+eri+e3rw0KK+m7g+S6puiQsQ0KK+m7g+S7suatow0KK+m7g+S7sueFpg0KK+m7g+S7u+W7tg0KK+m7g+WFieeOiQ0KK+m7g+WFiea7vw0KK+m7g+WFhuaVjw0KK+m7g+WFqOWvjA0KK+m7g+WQieW7tw0KK+m7g+WQjeaxoA0KK+m7g+WkmeaFpw0KK+m7g+Wmguecnw0KK+m7g+Wmgue/sA0KK+m7g+Wuh+W7tw0KK+m7g+WuiOeUsA0KK+m7g+WuieW+tw0KK+m7g+aXreW8mA0KK+m7g+aXrei8nQ0KK+m7g+axn+eRnA0KK+m7g+eZvueHpg0KK+m7g+iBv+WQmw0KK+m7g+iHs+aesA0KK+m7g+iHs+m1rA0KK+m7g+S8r+W5tA0KK+m7g+WFi+S7uw0KK+m7g+WQm+aAoQ0KK+m7g+WmmeiKrA0KK+m7g+WtneW9sA0KK+m7g+Wuj+S6rg0KK+m7g+Wuj+mAsg0KK+m7g+Wuj+mnvw0KK+m7g+W/l+S7gQ0KK+m7g+W/l+W5sw0KK+m7g+W/l+aIkA0KK+m7g+W/l+aYjg0KK+m7g+W/l+WBiQ0KK+m7g+W/l+W8tw0KK+m7g+W/l+aPmg0KK+m7g+W/l+mbhA0KK+m7g+W/l+WYiQ0KK+m7g+W/l+ixqg0KK+m7g+W/l+mKmA0KK+m7g+W/l+m+jQ0KK+m7g+adj+Wmgg0KK+m7g+aym+iBsg0KK+m7g+engOeOsg0KK+m7g+engOWuuQ0KK+m7g+engOiPrw0KK+m7g+engOiTiQ0KK+m7g+iCsuS/oQ0KK+m7g+iJrw0KK+m7g+mCpuW9pQ0KK+m7g+S+neaWhw0KK+m7g+S9s+WFgw0KK+m7g+S9s+aYpQ0KK+m7g+S9s+Wqmw0KK+m7g+S9s+iPrw0KK+m7g+S9s+Wruw0KK+m7g+S9s+iVmQ0KK+m7g+S9qeS/kA0KK+m7g+S9qeiQsQ0KK+m7g+WNk+WQmw0KK+m7g+WdpOW+tw0KK+m7g+Wtn+WwiA0KK+m7g+Wtn+aotQ0KK+m7g+Wul+Wfug0KK+m7g+Wul+izog0KK+m7g+WunOeOsg0KK+m7g+Wum+iyng0KK+m7g+W5uOWEgA0KK+m7g+W/teiKuQ0KK+m7g+aAoeWQmw0KK+m7g+aAoeePig0KK+m7g+aAoeiMuQ0KK+m7g+aAoeiQjQ0KK+m7g+aAoeiPgQ0KK+m7g+aAoembrw0KK+m7g+aAoeWYiQ0KK+m7g+aAoee2rQ0KK+m7g+aAoem9oQ0KK+m7g+aJv+W+tw0KK+m7g+aYjOm8jg0KK+m7g+aYjuW/lw0KK+m7g+aYjuW9pQ0KK+m7g+aYjueQhg0KK+m7g+aYjueRng0KK+m7g+aYjuaFpw0KK+m7g+aYleW1kA0KK+m7g+adsea1tw0KK+m7g+advuetoA0KK+m7g+aso+aAoQ0KK+m7g+aso+aEiQ0KK+m7g+aso+iVmQ0KK+m7g+ays+mghg0KK+m7g+ayu+W5sw0KK+m7g+eOn+eRvg0KK+m7g+eniemIng0KK+m7g+iKneiPrw0KK+m7g+iKt+mbsg0KK+m7g+mHkea5rw0KK+m7g+mHkeaouQ0KK+m7g+mVt+a+pA0KK+m7g+S6reiQjQ0KK+m7g+S6ruWHsQ0KK+m7g+S/oeaWhw0KK+m7g+S/oeaNtw0KK+m7g+S/oeajoA0KK+m7g+S/oeaEtw0KK+m7g+S/oeW9sA0KK+m7g+S/oemKmA0KK+m7g+S/oeepjg0KK+m7g+S/oeaWjA0KK+m7g+S/neeSgQ0KK+m7g+S/iueUnw0KK+m7g+S/iuWTsg0KK+m7g+S/iua3hw0KK+m7g+S/iuWCkQ0KK+m7g+S/iuWCkQ0KK+m7g+S/iuWCkQ0KK+m7g+S/iuWHsQ0KK+m7g+S/iuajiw0KK+m7g+S/iuiInA0KK+m7g+S/iumahg0KK+m7g+S/iuelug0KK+m7g+S/iuWYiQ0KK+m7g+S/iue2rQ0KK+m7g+S/iuixqg0KK+m7g+S/iuizog0KK+m7g+S/iuepjg0KK+m7g+S/ium+jQ0KK+m7g+S/iueHgQ0KK+m7g+S/nuaWkA0KK+m7g+WGoOaAoQ0KK+m7g+WGoOeoiw0KK+m7g+WGoOmbhQ0KK+m7g+WGoOizkw0KK+m7g+WGoOm+jQ0KK+m7g+WLh+aFpw0KK+m7g+WOmuebmw0KK+m7g+WTgeWCkQ0KK+m7g+WTgeavhQ0KK+m7g+WlleaPhg0KK+m7g+Wllemclg0KK+m7g+Wnv+Wptw0KK+m7g+Wnv+e2vg0KK+m7g+WogeWHsQ0KK+m7g+WogemKmA0KK+m7g+Wuo+WHsQ0KK+m7g+Wuo+ephg0KK+m7g+W7uuS4rQ0KK+m7g+W7uuaWhw0KK+m7g+W7uumdkg0KK+m7g+W7uuWHsQ0KK+m7g+W7uuaZug0KK+m7g+W7uueoiw0KK+m7g+W7uumIng0KK+m7g+W7uua6kA0KK+m7g+W7uuW9sA0KK+m7g+W7uuixqg0KK+m7g+W7uumKmA0KK+m7g+W7uuWLsw0KK+m7g+W7uuepjg0KK+m7g+W7uum+jQ0KK+m7g+W9peWkqg0KK+m7g+W9peW8tw0KK+m7g+W9peWNmg0KK+m7g+W9peeakw0KK+m7g+W9peeRnA0KK+m7g+W9peizkw0KK+m7g+W9peaotQ0KK+m7g+W9peaWjA0KK+m7g+aAneWHsQ0KK+m7g+aAneWYiQ0KK+m7g+aAneizog0KK+m7g+aAneeRiw0KK+m7g+aUv+WOnw0KK+m7g+aUv+aPmg0KK+m7g+aUv+m+jQ0KK+m7g+aYpeWgpA0KK+m7g+aYreS7gQ0KK+m7g+aYreaZug0KK+m7g+aYree2rQ0KK+m7g+aYoOeRhA0KK+m7g+aYseS4rQ0KK+m7g+aYseaEtw0KK+m7g+aYsem+jQ0KK+m7g+afj+WFgw0KK+m7g+afj+W8tw0KK+m7g+afj+WWrA0KK+m7g+afj+e/lA0KK+m7g+afj+eRng0KK+m7g+afj+e2ug0KK+m7g+afj+eSiw0KK+m7g+afj+e/sA0KK+m7g+afj+emsg0KK+m7g+eCuuajnw0KK+m7g+eCs+aGsg0KK+m7g+ePiuiQjQ0KK+m7g+ePgOmQmA0KK+m7g+ebiOaDoA0KK+m7g+ebiOW9sA0KK+m7g+ebuOW/lw0KK+m7g+eni+iKsw0KK+m7g+eni+iQjQ0KK+m7g+eni+eRmw0KK+m7g+eni+mcng0KK+m7g+e+jueOiQ0KK+m7g+e+jueOsg0KK+m7g+e+juWonw0KK+m7g+e+jue+mg0KK+m7g+e+juetkQ0KK+m7g+e+jumbrw0KK+m7g+e+juiTiQ0KK+m7g+e+jueHlQ0KK+m7g+iHtOaBhg0KK+m7g+iHtOmBoA0KK+m7g+iLpeiWhw0KK+m7g+iMgua6kA0KK+m7g+iLseW9pQ0KK+m7g+iLseWCkQ0KK+m7g+iLsemKmA0KK+m7g+ihjeasvQ0KK+m7g+iynuepjg0KK+m7g+mDgeS7gQ0KK+m7g+mDgeeOqw0KK+m7g+mDgeePig0KK+m7g+mDgeiMlw0KK+m7g+mDgeWptw0KK+m7g+mDgeajoA0KK+m7g+mDgembrw0KK+m7g+mDgemdnA0KK+m7g+mHjeWHsQ0KK+m7g+mfi+eQqg0KK+m7g+mfi+WLsw0KK+m7g+mmmeamlQ0KK+m7g+WAieW9pQ0KK+m7g+WTsualkw0KK+m7g+Wtq+Wuhw0KK+m7g+WutuePjQ0KK+m7g+Wutumahg0KK+m7g+Wutue3rw0KK+m7g+Wzu+W0og0KK+m7g+W6remIug0KK+m7g+aMr+eUqw0KK+m7g+aMr+W6rQ0KK+m7g+aMr+iqoA0KK+m7g+aMr+eRsg0KK+m7g+abuOWvhQ0KK+m7g+abuOmIug0KK+m7g+azsOW0kQ0KK+m7g+azsOmclg0KK+m7g+a1qeWkqQ0KK+m7g+a1qemIng0KK+m7g+ePruiKuA0KK+m7g+ePruWonw0KK+m7g+ePruiIkg0KK+m7g+ePrueRnA0KK+m7g+ebiuW7ug0KK+m7g+elluizog0KK+m7g+e0oOecnw0KK+m7g+e0lOe+jg0KK+m7g+iDveixkA0KK+m7g+mHl+S/ig0KK+m7g+WBieWumQ0KK+m7g+WBieS/rg0KK+m7g+WBieWzsA0KK+m7g+WBieWCkQ0KK+m7g+WBieiqoA0KK+m7g+WBiemKmA0KK+m7g+WBpeWlhw0KK+m7g+WBpeaZjw0KK+m7g+WBpea6og0KK+m7g+WHsOaFiA0KK+m7g+Wci+WFqA0KK+m7g+Wci+iKsw0KK+m7g+Wci+WAqw0KK+m7g+Wci+WxlQ0KK+m7g+Wci+aZiQ0KK+m7g+Wci+i7kg0KK+m7g+Wci+ajnw0KK+m7g+Wci+mIng0KK+m7g+Wci+ijlQ0KK+m7g+Wci+amrg0KK+m7g+Wci+ixqg0KK+m7g+Wci+mQmA0KK+m7g+Wggui7kg0KK+m7g+WfueWzuw0KK+m7g+WfuemKmA0KK+m7g+Wpieiyng0KK+m7g+WpieiPgQ0KK+m7g+Wwiee/lA0KK+m7g+W0h+iokw0KK+m7g+W0h+mKmA0KK+m7g+W4uOaouQ0KK+m7g+W9qemKmA0KK+m7g+aDn+iBlg0KK+m7g+WVn+Wujw0KK+m7g+WVn+S/rg0KK+m7g+WVn+abuA0KK+m7g+WVn+W9sA0KK+m7g+aVjw0KK+m7g+aVj+S/rg0KK+m7g+aVj+iPrw0KK+m7g+aVj+aFpw0KK+m7g+aiheeOsg0KK+m7g+a3u+iZjg0KK+m7g+a4heazsA0KK+m7g+a4hem6nw0KK+m7g+a3keWykQ0KK+m7g+a3keiKrA0KK+m7g+a3keeOsg0KK+m7g+a3keiyng0KK+m7g+a3keWNvw0KK+m7g+a3keahgw0KK+m7g+a3keaihQ0KK+m7g+a3keWqmw0KK+m7g+a3keeQqg0KK+m7g+a3keiPrw0KK+m7g+a3kembrw0KK+m7g+a3keeUhA0KK+m7g+a3kemdnA0KK+m7g+a3teizog0KK+m7g+eajg0KK+m7g+elpeaBqQ0KK+m7g+elpeaWjA0KK+m7g+e0ueiQsQ0KK+m7g+iOiQ0KK+m7g+iOieWonw0KK+m7g+iOieeQqg0KK+m7g+iOieWYiQ0KK+m7g+mAlOW3lg0KK+m7g+mbqumzsw0KK+m7g+WCkeaWhw0KK+m7g+WHseWogQ0KK+m7g+WHseeQqg0KK+m7g+WHsem6nw0KK+m7g+WLneW/lw0KK+m7g+WLneijlQ0KK+m7g+WNmuazsA0KK+m7g+WWnOm6nw0KK+m7g+Wgr+WBiQ0KK+m7g+Wpt+Wptw0KK+m7g+WvjA0KK+m7g+WvjOipsw0KK+m7g+W+qeiBsA0KK+m7g+aDoOWQmw0KK+m7g+aDoOiKrA0KK+m7g+aDoOePjQ0KK+m7g+aDoOWopQ0KK+m7g+aDoOaVjw0KK+m7g+aDoOeQtA0KK+m7g+aDoOWLpA0KK+m7g+aDoOipqQ0KK+m7g+aDoOmcng0KK+m7g+aPmuWQjQ0KK+m7g+aWr+mnvw0KK+m7g+aZr+ijlQ0KK+m7g+aZuuWLhw0KK+m7g+aZuuWBiQ0KK+m7g+aZuuW6tw0KK+m7g+aZuumahg0KK+m7g+aZuumKmA0KK+m7g+aZuueRiw0KK+m7g+acneeQtA0KK+m7g+acneaokQ0KK+m7g+akjeaHiw0KK+m7g+a5mOW3pw0KK+m7g+a5mOWptw0KK+m7g+a4neiKsw0KK+m7g+eQquWptw0KK+m7g+eQs+mIng0KK+m7g+eQpuajuw0KK+m7g+eZu+mNtQ0KK+m7g+ero+WNlw0KK+m7g+etkemIug0KK+m7g+WWhOaaiQ0KK+m7g+iIkuW9pQ0KK+m7g+iInOW/oA0KK+m7g+iPgeiWhw0KK+m7g+iPiuiLsQ0KK+m7g+ipoOeRng0KK+m7g+iytOWggg0KK+m7g+mAuA0KK+m7g+mAuOe0lA0KK+m7g+mAuOeRiw0KK+m7g+mInuaygQ0KK+m7g+mWlOi+sg0KK+m7g+mbheWQmw0KK+m7g+mbheiKsw0KK+m7g+mbhea0pQ0KK+m7g+mbheeOsg0KK+m7g+mbheWNvw0KK+m7g+mbhea3kQ0KK+m7g+mbhembqg0KK+m7g+mbheaDoA0KK+m7g+mbheeQqg0KK+m7g+mbheeQtA0KK+m7g+mbheiQjQ0KK+m7g+mbhembrw0KK+m7g+mbheiQsQ0KK+m7g+mbhemItA0KK+m7g+mbheaFpw0KK+m7g+mbhem9oQ0KK+m7g+mbr+eOiQ0KK+m7g+mbr+etoA0KK+m7g+mghuWQiQ0KK+m7g+WCs+WcjQ0KK+m7g+W7ieaZug0KK+m7g+aEj+iMuQ0KK+m7g+aEj+i2hQ0KK+m7g+aFiOWrug0KK+m7g+aVrOWFgw0KK+m7g+aVrOaWjA0KK+m7g+aaieaWhw0KK+m7g+alt+elug0KK+m7g+amhuWptw0KK+m7g+avk+e/jg0KK+m7g+avk+iPrw0KK+m7g+a6kOeSiw0KK+m7g+eFp+WHsQ0KK+m7g+eFpumbsA0KK+m7g+eRn+iKuA0KK+m7g+eRnuS8tg0KK+m7g+eRnuWxjw0KK+m7g+eRnuelpQ0KK+m7g+eRnumZvQ0KK+m7g+eRnuiIiA0KK+m7g+eRnOa3kQ0KK+m7g+ebn+WHsQ0KK+m7g+eluuiKrA0KK+m7g+etoOecnw0KK+m7g+e+qeWQmw0KK+m7g+e+qemKmA0KK+m7g+e+pOmbhA0KK+m7g+iBluWcsw0KK+m7g+iBluWTsg0KK+m7g+iBluWCkQ0KK+m7g+iBluajuw0KK+m7g+iBlum0uw0KK+m7g+ijleS4rQ0KK+m7g+ijleWunA0KK+m7g+ijleebmw0KK+m7g+ijlee/lA0KK+m7g+ijleaYtg0KK+m7g+ipqeiKuA0KK+m7g+ipqeiMuQ0KK+m7g+ipqea2tQ0KK+m7g+ipqeaDoA0KK+m7g+ipqembrw0KK+m7g+ipqeiYiw0KK+m7g+mBk+WFqA0KK+m7g+mItOeQqg0KK+m7g+mbi+eQpg0KK+m7g+mdluiKuA0KK+m7g+mdluaDoA0KK+m7g+mdlumbrw0KK+m7g+m8juiDvQ0KK+m7g+WYieawkQ0KK+m7g+WYieWLhw0KK+m7g+WYieWAqw0KK+m7g+WYiembqg0KK+m7g+WYieiQsQ0KK+m7g+WYieizog0KK+m7g+amruWxsQ0KK+m7g+amrumghg0KK+m7g+a8ouWFiQ0KK+m7g+a8oui8nQ0KK+m7g+edv+S8uA0KK+m7g+eip+mbsg0KK+m7g+emjuaFtg0KK+m7g+e2rQ0KK+m7g+e2reaZug0KK+m7g+iCh+Wujw0KK+m7g+mBoOWujw0KK+m7g+mKmOWBiQ0KK+m7g+mKmOi8nQ0KK+m7g+mtgeW9rA0KK+m7g+WEgOWQmw0KK+m7g+W+t+engA0KK+m7g+W+t+eFkg0KK+m7g+aFtuiPrw0KK+m7g+aFp+eOiQ0KK+m7g+aFp+iKrA0KK+m7g+aFp+Wonw0KK+m7g+aFp+iMuQ0KK+m7g+aFp+iPgQ0KK+m7g+aFp+emjg0KK+m7g+a+hOWBiQ0KK+m7g+iUmuS7gQ0KK+m7g+izoueroA0KK+m7g+mch+Wuhw0KK+m7g+aGsuW+lw0KK+m7g+aGtuiPgQ0KK+m7g+abieS9qQ0KK+m7g+abiemfsw0KK+m7g+abieiPsQ0KK+m7g+abieiWhw0KK+m7g+eHleWopQ0KK+m7g+iIiOWFgw0KK+m7g+iVmeiQjQ0KK+m7g+mMmuaaiQ0KK+m7g+mMpueroA0KK+m7g+mdnOWtkA0KK+m7g+mdnOWunA0KK+m7g+mdnOaAoQ0KK+m7g+mdnOiOiQ0KK+m7g+m+jeS4gA0KK+m7g+aHieeSvw0KK+m7g+iBsOeQqg0KK+m7g+iWh+eTig0KK+m7g+mnv+mBlA0KK+m7g+m0u+aZug0KK+m7g+emruS8uA0KK+m7g+iWsOeRqQ0KK+m7g+mbmeeOiQ0KK+m7g+aHt+aFtg0KK+m7g+eAmuW+tw0KK+m7g+eTiuWmgw0KK+m7g+eTiuiPrw0KK+m7g+eTiuWEgA0KK+m7g+eTiuWEgA0KK+m7g+eTiuaFpw0KK+m7g+eTiuaFpw0KK+m7g+eTiuiqvA0KK+m7g+eTiuWrug0KK+m7g+mPoeeUnw0KK+m7g+mfu+Wmgg0KK+m7g+mfu+mfuw0KK+m7g+m1rOWclg0KK+m7g+m6l+Wmgw0KK+m7g+m6l+iKrA0KK+m7g+m6l+mmmQ0KK+m7g+m6l+WuuQ0KK+m7g+m6l+iTiQ0KK+m7g+m6l+mMmg0KK+m7g+WvtueOiQ0KK+m7g+WvtuWEgA0KK+m7g+WvtueouQ0KK+m7g+eNu+irhA0KK+m7g+e5vOWing0KK+m7g+iAgOaWhw0KK+m7g+iAgOS/ig0KK+m7g+iAgOW+tw0KK+m7g+iAgOeRqQ0KK+m7g+iAgOi8nQ0KK+m7g+itsOW+tw0KK+m7g+mQmOiRpg0KK+m7g+mmqOaAoQ0KK+m7g+mmqOWEgA0KK+m7g+mmqOaFpw0KK+m7g+mmqOavhQ0KK+m7g+mmqOmciA0KK+m7g+m9oeiQsQ0KK+m7g+iYreeOiQ0KK+m7g+mQteixqg0KK+m7g+mhr+Wptw0KK+m7g+iJt+eOiQ0KK+m7g+eOoOaZnw0KK+m7g+WnteeRhA0KK+m7g+aYtuaWjA0KK+m7g+WLlui7kg0KK+m7g+eQh+iLkw0KK+m7g+e/iuWuuA0KK+m7g+ajluWQiQ0KK+m7g+eQruWvjA0KK+m7g+eQrOWQmw0KK+m7g+eQrOWptw0KK+m7g+eQrOmbrw0KK+m7g+eQrOeRgg0KK+m7g+iPgOmItA0KK+m7g+aakOedvw0KK+m7g+eRi+asow0KK+m7g+eRi+Wvpw0KK+m7g+etseiKuA0KK+m7g+etseWWrA0KK+m7g+etsembgQ0KK+m7g+etseiYiw0KK+m7g+mIuuWonw0KK+m7g+mIuuWptw0KK+m7g+mIuuWptw0KK+m7g+mIuuaWkA0KK+m7g+mIuumbrw0KK+m7g+mJpumWlA0KK+m7g+eejQ0KK+m7g+iWj+a+hA0KK+m7g+isteiqqg0KK+m7g+m9oA0KK+Whl+W3p+aGtg0KK+Whl+aZgumbqA0KK+Whl+WqhOmbsg0KK+alig0KK+aliuS6uuepjg0KK+aliuS4ieizog0KK+aliuWNg+mHjA0KK+aliuWNg+aFpw0KK+aliuWjq+W8mA0KK+aliuWjq+aciw0KK+aliuWjq+avhQ0KK+aliuWjq+izog0KK+aliuWkp+avhQ0KK+aliuWtkOaBhg0KK+aliuWtkOavhQ0KK+aliuWtkOeRog0KK+aliuWwj+aFpw0KK+aliuS4reWtmg0KK+aliuS5i+aFpw0KK+aliuS7geiPrw0KK+aliuS7i+aWhw0KK+aliuWFgeS4rQ0KK+aliuW/g+aAoQ0KK+aliuW/g+W+tw0KK+aliuaWh+Wujw0KK+aliuaWh+adsA0KK+aliuaWh+Wqmw0KK+aliuaWh+eRng0KK+aliuaWh+WEgA0KK+aliuaWh+eRiw0KK+aliuS4luW5sw0KK+aliuS4luWHsQ0KK+aliuS4lum1rA0KK+aliuS7lemmqA0KK+aliuWPr+athg0KK+aliuW8mOWFiA0KK+aliuacrOiBlg0KK+aliuato+W9rA0KK+aliuawuOatow0KK+aliuawuOeQpg0KK+aliueOieWQmw0KK+aliueOiem8jg0KK+aliueZvemvqA0KK+aliueri+e+pA0KK+aliuS7suawkQ0KK+aliuWFhuasvQ0KK+aliuWmg+Wptw0KK+aliuWuiOWfjg0KK+aliuaXqOelpQ0KK+aliuiHqumbhA0KK+aliuS8tuaFpw0KK+aliuWmmeaBqQ0KK+aliuWuj+elpQ0KK+aliuW/l+W5sw0KK+aliuW/l+iDvQ0KK+aliuW/l+WBiQ0KK+aliuW/l+elpQ0KK+aliuW/l+mbjQ0KK+aliuW/l+WtuA0KK+aliuaym+iSlA0KK+aliuengOePoA0KK+aliuengOaFpw0KK+aliuiCsuecnw0KK+aliuiCsuWEkg0KK+aliuS6nueQpg0KK+aliuS9s+asow0KK+aliuS9s+WxlQ0KK+aliuS9s+iPgQ0KK+aliuS9s+aSsA0KK+aliuS9s+ieog0KK+aliuS9qeePig0KK+aliuS9qeWEkg0KK+aliuWFtueAmg0KK+aliuWdpOiLsQ0KK+aliuWlh+aDoA0KK+aliuWtn+S/rg0KK+aliuWtn+iTiQ0KK+aliuWtn+e/sA0KK+aliuWulw0KK+aliuWul+WAjQ0KK+aliuWul+Wgrw0KK+aliuWul+WEkg0KK+aliuWul+epjg0KK+aliuWul+e/sA0KK+aliuWul+eDnA0KK+aliuWunOaWhw0KK+aliuWunOeSiw0KK+aliuWunOiTgQ0KK+aliuWwmuiokw0KK+aliuWwmuiejQ0KK+aliuWyseWEkg0KK+aliuW/oOS7gQ0KK+aliuW/oOaGsg0KK+aliuaAoeiKsw0KK+aliuaAoeiQjQ0KK+aliuaJvw0KK+aliuaJv+eGuQ0KK+aliuaYk+WAqw0KK+aliuaYjOizkw0KK+aliuaYhumclg0KK+aliuaYjuadsA0KK+aliuaYjue0lA0KK+aliuaYjuiqoA0KK+aliuaYjuWvsA0KK+aliuaYjuempw0KK+aliuaYh+aoug0KK+aliuadseaVjw0KK+aliuadvumKmA0KK+aliuaso+aAoQ0KK+aliuaso+ePrg0KK+aliuaso+eHlQ0KK+aliuazk+ikmA0KK+aliueniemghg0KK+aliuiKs+mbhA0KK+aliuiKuA0KK+aliumHkeeSiw0KK+aliumVt+a9lA0KK+aliumdkuWzsA0KK+aliuS/iuWujw0KK+aliuS/iui8nQ0KK+aliuWlleaYtg0KK+aliuW7uuW9pQ0KK+aliuaAnembiw0KK+aliuaUv+W9rA0KK+aliuaUv+WLsw0KK+aliuaUv+mclg0KK+aliuaYrei8nQ0KK+aliueCuuiInA0KK+aliueni+eUtw0KK+aliue0gOiKuA0KK+aliue+jueOsg0KK+aliue+juaDoA0KK+aliue+juiXnQ0KK+aliuiLkeWIqQ0KK+aliuWAqQ0KK+aliuWTsuWuiQ0KK+aliuWTsumKmA0KK+aliuWutuaYjg0KK+aliuWutuelug0KK+aliuWutumKmA0KK+aliuWutueRiw0KK+aliuaBreaymw0KK+aliuaMr+Wulw0KK+aliuaMr+a8og0KK+aliuaZj+iPgQ0KK+aliuabuOixqg0KK+aliua2k+aruw0KK+aliuePruWQmw0KK+aliuePrueQpg0KK+aliuecn+ePoA0KK+aliue0oOWNvw0KK+aliuiNkOe/lA0KK+aliuiZlOmbhQ0KK+aliuWBieaWhw0KK+aliuWBieeQqg0KK+aliuWBpeWciw0KK+aliuWci+advg0KK+aliuWci+m8jg0KK+aliuWfueaBqQ0KK+aliuWpieiOiQ0KK+aliuW0h+mRqw0KK+aliuaDn+eZvQ0KK+aliuWVn+Wujw0KK+aliuaVj+iKsw0KK+aliuaiteWtmw0KK+aliua3s+ehrw0KK+aliua4heahgw0KK+aliua3keWFgw0KK+aliua3keS9sw0KK+aliua3keiKrA0KK+aliua3kee+jg0KK+aliua3keaVjw0KK+aliua3keaDoA0KK+aliua3keiQjQ0KK+aliua3kembhQ0KK+aliua3keaFpw0KK+aliua3teWLnQ0KK+aliua3qOiKnQ0KK+aliuebm+aWjA0KK+aliuiOieiKsw0KK+aliumbqumbhQ0KK+aliuWHseS7sg0KK+aliuWHseWCkQ0KK+aliuWHsemIng0KK+aliuWLneWuhw0KK+aliuWLneaWkA0KK+aliuWLm+WHsQ0KK+aliuWNmuWuhw0KK+aliuWNmuasvQ0KK+aliuWWu+mWlA0KK+aliuWjueiIkg0KK+aliuWpt+mIng0KK+aliuWvjOWuiQ0KK+aliuWvjOeQmw0KK+aliuW+quWptw0KK+aliuaDoOWuhw0KK+aliuaDoOecnw0KK+aliuaDoOWptw0KK+aliuaDoOeQsw0KK+aliuaDoOmbrw0KK+aliuaVpuWCkQ0KK+aliuaWr+WHsQ0KK+aliuaZr+WFgw0KK+aliuaZr+Wgrw0KK+aliuaZr+mbrw0KK+aliuaZuuWFgw0KK+aliuaZuuWujw0KK+aliuaZuuWCkQ0KK+aliuaZuuWgrw0KK+aliuaZuuWWhA0KK+aliuaZuumIng0KK+aliuaZuum+jQ0KK+aliuacneaVjw0KK+aliuacneiInA0KK+aliuajrueZvA0KK+aliua5p+iplQ0KK+aliueZu+WuiQ0KK+aliueak+eRiw0KK+aliuetluiIqg0KK+aliuWWhOaDoA0KK+aliuiIkuW4hg0KK+aliuiIkuWqmw0KK+aliuiIkumbrw0KK+aliuiInOasvQ0KK+aliuiPgeiKrA0KK+aliuiPsembhQ0KK+aliuipoOiPmA0KK+aliuiytOWqmw0KK+aliumAuOiOiQ0KK+aliumInueZvg0KK+aliumWlOe/lA0KK+aliumbheeOiQ0KK+aliumbheiKsw0KK+aliumbheWAqw0KK+aliumbhea3kQ0KK+aliumbheWptw0KK+aliumbheWptw0KK+aliumbheW1kA0KK+aliumbheaDoA0KK+aliumbheaZtg0KK+aliumbhee/lA0KK+aliumbhei2hQ0KK+aliumbhembrw0KK+aliumbhembsg0KK+aliumbheiMnA0KK+aliumbr+aDoA0KK+aliumbsue/lA0KK+aliumghuajiw0KK+aliuaFiOWEgA0KK+aliuavk+eOsg0KK+aliueFpeeroA0KK+aliueRnuWCkQ0KK+aliuiQrOW4hg0KK+aliuijlQ0KK+aliuipqei7kg0KK+aliumBk+W/oA0KK+aliuWYieeOsg0KK+aliuWYieeRnA0KK+aliuWYieixkA0KK+aliuamruWQiQ0KK+aliuankOmnkg0KK+aliueip+mbrw0KK+aliue2reiPrw0KK+aliui2memKmA0KK+aliumKmOmhpw0KK+aliuW+t+W/lw0KK+aliuaFtumahg0KK+aliuaFp+eOsg0KK+aliuaFp+eTig0KK+aliueSiw0KK+aliumch+WBiQ0KK+aliuaGsuaYhw0KK+aliuabiemdkg0KK+aliuabieiPgQ0KK+aliuapi+mclg0KK+aliueHlembsg0KK+aliuiVmeiKsw0KK+aliuiVmeWYiQ0KK+aliumMq+aGsg0KK+aliumdnOWmgg0KK+aliumdnOaAoQ0KK+aliumdnOmbrw0KK+aliuaItOW3ng0KK+aliueItemnvw0KK+aliumnv+awkQ0KK+aliuabnOa6lg0KK+aliuekjumBoA0KK+aliue5oee2vg0KK+aliuixkOWFqA0KK+aliuixkOmKmA0KK+aliumOrumBoA0KK+aliummpeiqoA0KK+aliueTiuiPrw0KK+alium6l+WGoA0KK+alium6l+eQtA0KK+aliuabpueQsw0KK+aliumQmOmJiQ0KK+aliumdiOiLkw0KK+aliuiMnOWNiQ0KK+aliueQh+Wmgg0KK+aliueQh+Wqmw0KK+aliue/iuePrg0KK+aliueQrOWptw0KK+aliueRi+eQpg0KK+aliuiTgeiTgQ0KK+aliumOp+S8ig0KK+a6q+S4iOe3rw0KK+a6q+W/g+W1kA0KK+a6q+ato+m+jQ0KK+a6q+iHs+S7uw0KK+a6q+engOaAoQ0KK+a6q+Wulw0KK+a6q+aJv+e/sA0KK+a6q+mHkeeRng0KK+a6q+W7uuiBsg0KK+a6q+iLpeWptw0KK+a6q+WxleiPrw0KK+a6q+e0oOaihQ0KK+a6q+Wfuemdkg0KK+a6q+a3keaAoQ0KK+a6q+WHsQ0KK+a6q+aZuumAow0KK+a6q+mbhea4hQ0KK+a6q+iBluW7tg0KK+a6q+mKmOWTsg0KK+a6q+abieiPrw0KK+a6q+mmpemBoA0KK+a6q+iPmOa4nQ0KK+iQrOS9s+aYlQ0KK+iQrOW7uuaYjg0KK+iQrOaVj+WpiQ0KK+iQrOabieaYjg0KK+iRieS4gea6kA0KK+iRieS5g+emjg0KK+iRieS6uuizkw0KK+iRieWPiOWYiQ0KK+iRieWNg+iPig0KK+iRieWjq+aWsA0KK+iRieWkp+iRpg0KK+iRieWtkOixqg0KK+iRieWxseiPrw0KK+iRieWkqeWwhw0KK+iRieaWh+WBiQ0KK+iRieaWh+m+jQ0KK+iRieS4luawkQ0KK+iRieS7o+asig0KK+iRieato+iBlg0KK+iRieeOieeOsg0KK+iRieS6puebmw0KK+iRieWFieaEiQ0KK+iRieWQkemZvQ0KK+iRieWmgumbrw0KK+iRieerueiCsg0KK+iRieS9kOmnvw0KK+iRieWuj+WCkQ0KK+iRieW/l+W9pQ0KK+iRieW/l+WNmg0KK+iRieatpeaXuw0KK+iRieengOaihQ0KK+iRieiCsuWzsA0KK+iRieS+nemdkg0KK+iRieS9s+asow0KK+iRieS9s+iPgQ0KK+iRieS9s+WLsw0KK+iRieS9qeecnw0KK+iRieWlieadsA0KK+iRieWtn+Wgrw0KK+iRieWul+aZug0KK+iRieWul+mRqw0KK+iRieWum+i7kg0KK+iRieW/oOasow0KK+iRieaAoeWQmw0KK+iRieaAoeiKsw0KK+iRieaJv+azkw0KK+iRieaYjOWAqw0KK+iRieaYjuaYhw0KK+iRieaYjuaXiw0KK+iRieaYjumRqw0KK+iRieadvueCqw0KK+iRieaso+avkw0KK+iRieeOn+WQmw0KK+iRieiKs+S8tg0KK+iRieiKs+iQjQ0KK+iRieiKt+WmmA0KK+iRiemVt+mdkg0KK+iRieS6reW/lw0KK+iRieS/oeW7tw0KK+iRieS/iuWujw0KK+iRieS/iueUqw0KK+iRieS/iuaFtg0KK+iRieS/nuadiQ0KK+iRieWGoOaFpw0KK+iRieWllee2rQ0KK+iRieWnv+Wmjw0KK+iRieW7uuWQmw0KK+iRieW7uuaYhw0KK+iRieW9peW/lw0KK+iRieaAneWEgA0KK+iRieaUv+i8nQ0KK+iRieaYreS8tg0KK+iRieaYseW/lw0KK+iRieafj+e2sQ0KK+iRieeOsuWykQ0KK+iRieeni+aciA0KK+iRiee+juWonw0KK+iRieiHtOW/oA0KK+iRieihjeWtnA0KK+iRiemDgeiPgQ0KK+iRieWAqQ0KK+iRieWTsuWFqA0KK+iRieWutuWuhw0KK+iRieWutumItA0KK+iRieWutuWEkg0KK+iRieWzu+izkw0KK+iRieaMr+emjw0KK+iRieaZieWYiQ0KK+iRieabuOeRiw0KK+iRiea2k+a2kw0KK+iRieebiuaYhw0KK+iRiee0oOe2vg0KK+iRieiAv+m9ig0KK+iRieWBpeWBiQ0KK+iRieWci+izog0KK+iRieW8teW7ug0KK+iRieassuaBkg0KK+iRiea3keePjQ0KK+iRiea3kemItA0KK+iRiee0ueS7uw0KK+iRieWLneeOhA0KK+iRieaDoOaWhw0KK+iRieaDoOemjg0KK+iRieaZuuS7gQ0KK+iRieajrua4nQ0KK+iRieipoOaZtA0KK+iRiembgeeUhA0KK+iRiembheWptw0KK+iRiembhembrw0KK+iRiembsum1rA0KK+iRieavk+WzsA0KK+iRiee+qeadvg0KK+iRiemItOePig0KK+iRieWYieiPrw0KK+iRieedv+WTsg0KK+iRiemKmOaYjA0KK+iRieWEgOiKsw0KK+iRieaFp+asow0KK+iRiea9lOaBqQ0KK+iRieabieiKrA0KK+iRieaouemWiw0KK+iRieiVmeiKsw0KK+iRiemMpumzsw0KK+iRieabmeaFtg0KK+iRiemnv+mAuA0KK+iRieemrue2rQ0KK+iRieeTiuaWhw0KK+iRieWvtuWjrA0KK+iRiemosOmBoA0KK+iRiemppQ0KK+iRieeOtOixqg0KK+iRieeQpOaAoQ0KK+iRieaHjOmmqA0KK+iRm+S4luiQsQ0KK+iRm+WAqeWmgg0KK+iRo+S6uuWujw0KK+iRo+WtkOmdkg0KK+iRo+W3p+eOsg0KK+iRo+WQiOaBqQ0KK+iRo+W/l+S7gQ0KK+iRo+S9s+ixqg0KK+iRo+aAoeWQmw0KK+iRo+iKs+mKmA0KK+iRo+Wnv+WIqQ0KK+iRo+W9peWujw0KK+iRo+eni+eRvg0KK+iRo+S/rumKmA0KK+iRo+aMr+mbhA0KK+iRo+iDveeRng0KK+iRo+aDoOiKsw0KK+iRo+iBlue3ow0KK+iRo+aFp+e+jg0KK+iRo+m0u+aloA0KK+iRo+W2ouazkw0KK+ijmOWFg+aEtw0KK+ino+e+jumItA0KK+ipueS6juiKsw0KK+ipueWtkOawkQ0KK+ipueS7geWYiQ0KK+ipueaWh+elpQ0KK+ipueS4luWCkQ0KK+ipueawuOelpQ0KK+ipueeri+aIkA0KK+ipueWmgumIkA0KK+ipueWuj+W9rA0KK+ipueW/l+m0uw0KK+ipueiCsumbrw0KK+ipueS9s+aMrw0KK+ipueS9s+iIiA0KK+ipueS9qeepjg0KK+ipueWtn+aZgw0KK+ipueWul+aGsg0KK+ipueWunOe0iw0KK+ipueW/oOamrg0KK+ipueaYjOWQiQ0KK+ipueaYjua9lA0KK+ipueaso+WunA0KK+ipuemdkuiJtw0KK+ipueWJjeazsA0KK+ipueaUv+WzsA0KK+ipuee+juePjQ0KK+ipueWNv+iLuQ0KK+ipueWutumKkw0KK+ipuea1muaYhw0KK+ipueebiuWBiQ0KK+ipueebiumKmA0KK+ipueiMl+iKuA0KK+ipueWpieWQmw0KK+ipueWVn+e3rw0KK+ipuea3keWmgw0KK+ipuea3keiQjQ0KK+ipuea3keiKqQ0KK+ipueWHseaNtw0KK+ipueWLneasvQ0KK+ipueWvjOaZug0KK+ipueaDoOWqmw0KK+ipueaZr+Wgrw0KK+ipueaZuuWCkQ0KK+ipueajrg0KK+ipuee/lOS7uw0KK+ipueiovOWvjA0KK+ipuemInue2rQ0KK+ipuembheWptw0KK+ipuembhemWlA0KK+ipuembr+eRqQ0KK+ipuee+pOavhQ0KK+ipueWYieeSvw0KK+ipueW+t+mmqA0KK+ipueWLs+aYjg0KK+ipueepjuiQjQ0KK+ipueeSqOW2uA0KK+ipueixkOWuhw0KK+ipuem1keW5tA0KK+ipueeOk+eRiw0KK+ipueeQrOa4nQ0KK+izh+WQm+WEgA0KK+iziOayu+Wciw0KK+iziOaEm+eOqw0KK+iziOmrkOaGmw0KK+mEkuS4gOS7sg0KK+mEkuaWh+mahg0KK+mEkueri+W9pQ0KK+mEkuadjuaYjA0KK+mEkuS9s+iPrw0KK+mEkuWul+iPrw0KK+mEkuaYjuWOnw0KK+mEkumHkeW+tw0KK+mEkuWci+m+jQ0KK+mEkuaZuuS7gQ0KK+mEkuaWsOWFqA0KK+mEkue2reWJmw0KK+mEkumdnOePrg0KK+mbjeaVpuWFgw0KK+mbt+WunOW6rQ0KK+mbt+ihjeiIiA0KK+mbt+aDoOeQpg0KK+mbt+mbheiPgQ0KK+mbt+m1rOeoiw0KK+W7luS4gemAuA0KK+W7luS6juaWhw0KK+W7luWNg+aFpw0KK+W7luWjq+Wgrw0KK+W7luWkp+aonw0KK+W7luWwj+iPrw0KK+W7luS7geemvg0KK+W7luWFg+WIqQ0KK+W7luWFgemdlg0KK+W7luaWh+W5sw0KK+W7luaWh+iMuQ0KK+W7luaWh+iplQ0KK+W7luaWh+eUhA0KK+W7luaWh+a9lA0KK+W7luaciOingA0KK+W7luS7lee2ug0KK+W7luacrOWFgw0KK+W7luato+WBiQ0KK+W7lueOiQ0KK+W7lueOieiQjQ0KK+W7luS4nuaZng0KK+W7luWFiei8nQ0KK+W7luWuiOatow0KK+W7luS8r+eSiw0KK+W7luWQq+a9lA0KK+W7luWuj+aFiA0KK+W7luW/l+awkQ0KK+W7luW/l+WBiQ0KK+W7luW/l+mBoA0KK+W7luengOWNvw0KK+W7luiCsuiJrw0KK+W7luiJr+a3rg0KK+W7luS9s+eOpQ0KK+W7luS9qeWmgg0KK+W7luS9qemzsw0KK+W7luWul+WxsQ0KK+W7luWunOe+pA0KK+W7luaAoeeOsg0KK+W7luaAoeaZrw0KK+W7luaJv+aFtg0KK+W7luaYjuWEgA0KK+W7luaso+WEgA0KK+W7luiKs+eOsg0KK+W7luiKneWghQ0KK+W7lumdkuadvg0KK+W7luS/oeWvrA0KK+W7luS/iuWCkQ0KK+W7luS/iuasvQ0KK+W7luWGoOe+jg0KK+W7luWlleS7uw0KK+W7luWnv+avkw0KK+W7luW7uuWfjg0KK+W7luW7uumIng0KK+W7luW9peWHsQ0KK+W7luaBhuavhQ0KK+W7luaYpeiPig0KK+W7luaYseaouQ0KK+W7lueCs+eEnA0KK+W7luebiOWlhw0KK+W7lueni+aAoQ0KK+W7lue+jueOsg0KK+W7lue+jueQsw0KK+W7luiMguiJrw0KK+W7luiLseeUtw0KK+W7luiLseWCkQ0KK+W7luiLkeWQmw0KK+W7lui/sOiMgg0KK+W7lumDgeWptw0KK+W7luWAqeWunA0KK+W7luWNv+aDoA0KK+W7luWTsuirlg0KK+W7luWutueOsg0KK+W7luWutuWvpw0KK+W7luWutueRqQ0KK+W7luWutuWppw0KK+W7luWzu+avhQ0KK+W7luaBqeaFiA0KK+W7luaMr+iJrw0KK+W7luaMuuW0tA0KK+W7luabuOePrg0KK+W7luahguWQmw0KK+W7lua1muWujw0KK+W7luePruWQmw0KK+W7luePrueOqw0KK+W7luePruaEmw0KK+W7luebiue+pA0KK+W7lue0oOWNvw0KK+W7luiAlei8nQ0KK+W7luS5vuaIkA0KK+W7luWBieaIkA0KK+W7luWBiei+sA0KK+W7luWBieaWrw0KK+W7luWBiem0uw0KK+W7luWBpeaYjg0KK+W7luWBpemKmA0KK+W7luWci+Wujw0KK+W7luWci+WLmw0KK+W7luWci+iPrw0KK+W7luWfuuWujw0KK+W7luWfueeRnA0KK+W7luWpieWIqQ0KK+W7luWpieasow0KK+W7luWvhOiQjQ0KK+W7luW0h+eiqQ0KK+W7luW6t+mclg0KK+W7luaDh+ayuw0KK+W7luWVn+iJrw0KK+W7luaVj+axnQ0KK+W7luaVj+eOsg0KK+W7luaik+iMnA0KK+W7lua3keWQmw0KK+W7lua3keiyng0KK+W7lua3keaDoA0KK+W7lua3kem6lw0KK+W7luelpemBlA0KK+W7luiyq+ePrg0KK+W7lueroOajiw0KK+W7luWvjOeUsA0KK+W7luaDoOWonw0KK+W7luaZuui8nQ0KK+W7lueQque+jg0KK+W7luiIkuWEgA0KK+W7lumAsuW5sw0KK+W7lumbheWAqQ0KK+W7lumghuW4hg0KK+W7lualt+aWhw0KK+W7luetoOaAoQ0KK+W7luiQseiKuQ0KK+W7luWXvg0KK+W7luWYiemZvQ0KK+W7lua8oum8jg0KK+W7lue2reePjQ0KK+W7lumKmOS7gQ0KK+W7luaFtuizgA0KK+W7luaFp+mbrw0KK+W7lueRqeeShw0KK+W7luaGsuWggg0KK+W7luabieaFpw0KK+W7lumMpueRnA0KK+W7luaTjuW4hg0KK+W7luabnOeRqQ0KK+W7lum6kumWlA0KK+W7luiAgOadsQ0KK+W7lumhr+aFtg0KK+W7luWBsuWmpA0KK+W7luaWjOWCkQ0KK+W7lumIuumKmA0KK+a8oui/sOS7gQ0KK+eGiueri+aWsA0KK+eGiuadseWing0KK+eGiuWHjOmchg0KK+eGiuW0h+e3rw0KK+eGiuWLpOS6kQ0KK+eUhOaFp+aYjg0KK+euoeW5vOS7sg0KK+euoemHkeeOsg0KK+euoeeQquiKuA0KK+e/n+aVpuaVjw0KK+iHuuaWh+eFpw0KK+iSsuS/oeWFqA0KK+iSsumnv+avhQ0KK+ijtOWBieeoiw0KK+ikmuW/g+aAoQ0KK+ikmuS/iuWBiQ0KK+ikmuWutuW+tw0KK+izk+aVrOaWhw0KK+i2meWjq+m9ig0KK+i2meWtkOe2rQ0KK+i2meS7geS9kQ0KK+i2meWFg+Wujw0KK+i2meWPi+W0pw0KK+i2meaWh+W/oA0KK+i2meaWueaEtw0KK+i2meS4luijlQ0KK+i2meW/heaYjA0KK+i2meeOieiTrg0KK+i2meWuieeQqg0KK+i2meWQm+adsA0KK+i2meWuj+mIng0KK+i2meW/l+ixqg0KK+i2meiCsueQsw0KK+i2meS9qeiKrA0KK+i2meWunOWQmw0KK+i2meaAoeWptw0KK+i2meaYjui8nQ0KK+i2meiKt+iPgQ0KK+i2meS/iuWHsQ0KK+i2meWTgeW9pQ0KK+i2meW7uuWLnQ0KK+i2meaBrOWEgA0KK+i2meeCq+WLmw0KK+i2meeni+mzsw0KK+i2meiLsem+jQ0KK+i2meS/rumclg0KK+i2meWutuiJrw0KK+i2meWutuizog0KK+i2meaMr+Wujw0KK+i2meahgumdkg0KK+i2meePruaxmw0KK+i2meelkOeUhA0KK+i2meWBieW7tw0KK+i2meWBiee/lA0KK+i2meWci+W/lw0KK+i2meWfuemclg0KK+i2meW0h+mWlA0KK+i2meaVj+Wmgg0KK+i2mea3keiKsw0KK+i2meeajuWQmw0KK+i2meWpt+WujA0KK+i2mea5mOWQmw0KK+i2memInuW/lw0KK+i2meeRnuaYjA0KK+i2meWYieaVrA0KK+i2meW7o+WFgw0KK+i2meaFlee+pA0KK+i2meaoueWEgA0KK+i2mem+jeWfug0KK+i2membmemnvw0KK+i2meeOuee+sg0KK+mBoOiXpOawuOW6tw0KK+mEnuixqui8nQ0KK+m9iumbquaxnQ0KK+WKieS5meiQsQ0KK+WKieS5g+iQsQ0KK+WKieS6uuixqg0KK+WKieWHoOiQjQ0KK+WKieWKm+ixqg0KK+WKieWPiOaFiA0KK+WKieS4iuaXlw0KK+WKieS6juiPgQ0KK+WKieWNg+eRnA0KK+WKieWjq+iPrw0KK+WKieWjq+ixqg0KK+WKieWkp+amrg0KK+WKieWtkOeUsQ0KK+WKieWtkOWYiQ0KK+WKieWtkOmgjg0KK+WKieWxseixqg0KK+WKieS4reeQqg0KK+WKieS7geatow0KK+WKieS7geijlQ0KK+WKieWFg+mzsw0KK+WKieWwkee2rQ0KK+WKieW/g+WEgA0KK+WKieaWh+eOiQ0KK+WKieaWh+eOsg0KK+WKieaWh+WLnQ0KK+WKieaWh+i2hQ0KK+WKieaWh+emjw0KK+WKieaXpemghg0KK+WKieS4luaWhw0KK+WKieS4lua4hQ0KK+WKieS4luaFtg0KK+WKieS7peetoA0KK+WKieWPsA0KK+WKieW8mOWBiQ0KK+WKieato+aysw0KK+WKieato+mbhA0KK+WKieawuOWBpQ0KK+WKieeOieaWhw0KK+WKieeOieWutg0KK+WKieeOieiQjQ0KK+WKieeOieeQhw0KK+WKieeri+WBiQ0KK+WKieS6puaYhw0KK+WKieS8iuS/rg0KK+WKieS7sua2tQ0KK+WKieWFieadsA0KK+WKieWFhuWuuQ0KK+WKieWFqOW9rA0KK+WKieWQjeWonw0KK+WKieWmguiKsw0KK+WKieWmguiWsA0KK+WKieWuh+iWhw0KK+WKieWuieelpQ0KK+WKieaXreiKrA0KK+WKieaxneWonw0KK+WKieiHs+WuiQ0KK+WKieS8r+W9pQ0KK+WKieWQm+elug0KK+WKieWtneWAqw0KK+WKieWuj+WBiQ0KK+WKieW7t+altw0KK+WKieW/l+WLhw0KK+WKieW/l+a1qQ0KK+WKieW/l+a6kA0KK+WKieW/l+eRiw0KK+WKieayguaYgA0KK+WKieengOmDgQ0KK+WKieengOmbrw0KK+WKieiCsuaIkA0KK+WKieiCsuW/lw0KK+WKieiCsuWulw0KK+WKieiCsua0uA0KK+WKieiCsuiqoA0KK+WKieiCsuepjg0KK+WKiemCpuW5sw0KK+WKiemCpuebuA0KK+WKieS6nuiKuA0KK+WKieS+neaWhw0KK+WKieS9s+aykA0KK+WKieS9s+aAoQ0KK+WKieS9s+iKsw0KK+WKieS9s+a0pw0KK+WKieS9s+eQqg0KK+WKieS9s+mBlA0KK+WKieS9s+epjg0KK+WKieS+g+Wmgg0KK+WKieS9qemdkg0KK+WKieS9qee2vg0KK+WKieWSjOW+tw0KK+WKieWdpOepjg0KK+WKieWtn+S9sw0KK+WKieWtn+WGoA0KK+WKieWtn+e/sA0KK+WKieWul+aAoQ0KK+WKieWul+iRhg0KK+WKieWumuWuhw0KK+WKieWunOaYhg0KK+WKieWunOWptw0KK+WKieWum+Wmgg0KK+WKieWyoemZtQ0KK+WKieW5uOmbqg0KK+WKieW/oOWLsw0KK+WKieaAoeS8tg0KK+WKieaAoeWQmw0KK+WKieaAoeWQmw0KK+WKieaAoeWQmw0KK+WKieaAoeWSjA0KK+WKieaAoeiKrA0KK+WKieaAoeaDoA0KK+WKieaAoemdnA0KK+WKieaJv+aoug0KK+WKieaYjA0KK+WKieaYjOiqoA0KK+WKieaYjuWQiA0KK+WKieaYjuadsA0KK+WKieaYjuWTsg0KK+WKieaYjumBlA0KK+WKieaYjum6lw0KK+WKieaYh+mRqw0KK+WKieaenOePjQ0KK+WKieaso+WdpA0KK+WKieaso+aAoQ0KK+WKieaso+iMuQ0KK+WKieatpua1mg0KK+WKieeOn+aIkA0KK+WKieeOq+Wvpw0KK+WKieepueaelw0KK+WKieiKs+WQnw0KK+WKieiKs+eOsg0KK+WKieiKs+iYrQ0KK+WKieiKrOiKsw0KK+WKiemHh+ecnw0KK+WKiemHkemzsw0KK+WKiemdkuiYiw0KK+WKieS/oeWujw0KK+WKieS/oeiJrw0KK+WKieS/oem0uw0KK+WKieS/iuWujw0KK+WKieS/iuW7tw0KK+WKieS/iuiJrw0KK+WKieS/iuadsA0KK+WKieS/iuavhQ0KK+WKieS/iuW3lg0KK+WKieS/kOaihQ0KK+WKieWGoOWmjQ0KK+WKieWGoOiJrw0KK+WKieWGoOmhrw0KK+WKieWLg+W9pQ0KK+WKieWTgeWunA0KK+WKieWlleW/lw0KK+WKieWnvw0KK+WKieWnv+WQnw0KK+WKieWogeaxlw0KK+WKieWogeaYjA0KK+WKieW7uuawkQ0KK+WKieW7uuWujw0KK+WKieW7uuWujw0KK+WKieW7uuadkQ0KK+WKieW7uuiJrw0KK+WKieW7uuaYjg0KK+WKieW7uuW+tw0KK+WKieW7uueUug0KK+WKieW9peWQmw0KK+WKieW9peW7tw0KK+WKieW9peiJrw0KK+WKieW9peWNmg0KK+WKieW+i+aYjg0KK+WKieaAnea9lA0KK+WKieaBquS6ug0KK+WKieaUv+WLsw0KK+WKieaYreWmgg0KK+WKieaYoOengA0KK+WKieaYsei+sA0KK+WKieafj+Wujw0KK+WKieafj+m6nw0KK+WKieeCuuaYjg0KK+WKieePiuWmrg0KK+WKieePjeS9kQ0KK+WKieebiOWmgg0KK+WKieebiOengA0KK+WKieebiOiYrQ0KK+WKieeni+aIkA0KK+WKieeni+eHlQ0KK+WKiee+juWQmw0KK+WKiee+juS+lg0KK+WKiee+jueOsg0KK+WKiee+juiPrw0KK+WKiee+v+axnQ0KK+WKieiLpeisuQ0KK+WKieiLsem+jQ0KK+WKieiynuS8tg0KK+WKiei7jeavhQ0KK+WKiemfi+aIkA0KK+WKieWAjeWmgg0KK+WKieS/ruaYjg0KK+WKieWTsuWuhw0KK+WKieWTsumDjg0KK+WKieWTsueRiw0KK+WKieWutuaIkA0KK+WKieWutuWujw0KK+WKieWutuaYhw0KK+WKieWutueQsw0KK+WKieWutuWDlg0KK+WKieWutuixqg0KK+WKieWutumzsw0KK+WKieWutummqA0KK+WKieWuueaHvw0KK+WKieWzu+S8tg0KK+WKieWzsOmDoQ0KK+WKieaBqeWQiQ0KK+WKieaMr+S4rQ0KK+WKieaMr+ixqg0KK+WKieaZieiCsg0KK+WKieaZj+iqoA0KK+WKieabuOWujw0KK+WKieagueixqg0KK+WKieahkOebmw0KK+WKiea1mumKmA0KK+WKieePruaAoQ0KK+WKieebiuS8uA0KK+WKieebiuemjg0KK+WKieelluWvpw0KK+WKiee0oOeOsg0KK+WKiee0lOadjw0KK+WKieiAlee2rQ0KK+WKiei7kuWuhw0KK+WKieWBieeriw0KK+WKieWBieiqoA0KK+WKieWci+W5sw0KK+WKieWci+ajnw0KK+WKieWci+m+jQ0KK+WKieWpieeOsg0KK+WKieW0h+eQhg0KK+WKieW6t+alnQ0KK+WKieW+l+WFiQ0KK+WKieWVn+W5sw0KK+WKieaVj+eQqg0KK+WKiea3s+mbhQ0KK+WKiea3keiKrA0KK+WKiea3keiyng0KK+WKiea3keiOiQ0KK+WKiea3keiPrw0KK+WKiea3keaFpw0KK+WKieelpeawkQ0KK+WKieiOieeHlQ0KK+WKieWHseiMuQ0KK+WKieWNmuaWhw0KK+WKieWvjOaYjg0KK+WKieaDoOaAoQ0KK+WKieaDoOe0iw0KK+WKieaPmumKmA0KK+WKieaZuuS7gQ0KK+WKieaZuumIng0KK+WKieacneiTrg0KK+WKiea5mOeQqg0KK+WKieeak+Wvpw0KK+WKieiIkuaFiA0KK+WKieipoOiWhw0KK+WKiemAuOeruQ0KK+WKiemWlOe1kA0KK+WKiembheWQmw0KK+WKiembheeOsg0KK+WKiembheaDoA0KK+WKiembheiQjQ0KK+WKiembheaFpw0KK+WKiembsumcng0KK+WKieWLpOe2kw0KK+WKieaVrOawkQ0KK+WKieavk+azog0KK+WKiea6kOWAqw0KK+WKieeRnuiKsw0KK+WKieeRnuixqg0KK+WKiee2k+e2uA0KK+WKieijleWujw0KK+WKieipqemfuw0KK+WKiemdlg0KK+WKieWYieiCsg0KK+WKieWYiea3sw0KK+WKieWYiembrw0KK+WKieWYieaoug0KK+WKieW9sA0KK+WKieamruW+tw0KK+WKieeGmeaFpw0KK+WKieeiqeepqQ0KK+WKiee2reazsA0KK+WKieiCh+m1rA0KK+WKiemKmOadkQ0KK+WKiemKmOi8nQ0KK+WKiemzs+iIiA0KK+WKieW+t+atow0KK+WKieW+t+iqoA0KK+WKieaFtumOrg0KK+WKieaFp+eOsg0KK+WKieaFp+Wptw0KK+WKieaFp+eTjw0KK+WKieeRqeWonw0KK+WKieizoueGkg0KK+WKiemch+m0uw0KK+WKieaGtg0KK+WKieabieiKrA0KK+WKieabieeQqg0KK+WKieabieaoug0KK+WKieaoueiVmQ0KK+WKieeHleiQjQ0KK+WKieeSn+mLkg0KK+WKieepjuiSqA0KK+WKieiIiOWutg0KK+WKieiVmeeRhA0KK+WKiemMpuWggg0KK+WKiemMpum0uw0KK+WKiemdnOiKsw0KK+WKiemdnOiPrw0KK+WKiem+jeWxsQ0KK+WKieeItee2rQ0KK+WKiemNvumclg0KK+WKiem0u+mclg0KK+WKieeSp+eRqQ0KK+WKiemOruWYiQ0KK+WKieeAmumZvQ0KK+WKiemfu+eQpg0KK+WKiem6l+aDoA0KK+WKieWvtuWptw0KK+WKieiAgOWNhw0KK+WKieitr+iBsA0KK+WKieeBjOi8nQ0KK+WKieaHv+aFpw0KK+WKieiumuWYuw0KK+WKieaXu+ePig0KK+WKieWnteWYiQ0KK+WKieaMkA0KK+WKiee/iumCoQ0KK+WKieeRi+eOsg0KK+WKieetseaFpw0KK+WKieeAhemovw0KK+WOsuaWjOS4rQ0KK+aoiuS5g+WYiQ0KK+aoiuS/rum+jQ0KK+aoguWtkOmnvw0KK+atkOWjq+a6kA0KK+atkOS4lua0iw0KK+atkOWmgueoiw0KK+atkOW/l+ebiA0KK+atkOmCpuiPrw0KK+atkOWul+WOnw0KK+atkOaAoeengA0KK+atkOaYgOS/rg0KK+atkOmVt+aZjw0KK+atkOS/iuW9pQ0KK+atkOW7uuawkQ0KK+atkOaUv+iJtw0KK+atkOe+jueRqQ0KK+atkOWoieWmpg0KK+atkOabuOixqg0KK+atkOa3keWnvw0KK+atkOmAuOmdkg0KK+atkOmZveacieaFpw0KK+atkOmZveeOqw0KK+atkOmZveaDoOWmgg0KK+atkOmZvemKmOaWhw0KK+atkOmZveW/u+aGtg0KK+atkOamruadsA0KK+atkOepjuWQmw0KK+atkOe5leWYiQ0KK+a9mA0KK+a9mOWFgeS7gQ0KK+a9mOaWh+iPrw0KK+a9mOato+WFgw0KK+a9mOeOieaDoA0KK+a9mOS6puiVvg0KK+a9mOaIkOWvjA0KK+a9mOWuj+Wulw0KK+a9mOW/l+WBiQ0KK+a9mOengOebiA0KK+a9mOS9s+WmpA0KK+a9mOS9qeWQmw0KK+a9mOWul+ijlQ0KK+a9mOW7tui8nQ0KK+a9mOaAoeWQmw0KK+a9mOaAoeeRvg0KK+a9mOaYjualtw0KK+a9mOeOn+aoug0KK+a9mOS6ruWmgg0KK+a9mOS/oee/sA0KK+a9mOS/iuiJrw0KK+a9mOWGoOWujw0KK+a9mOWTgea9lA0KK+a9mOWogeattw0KK+a9mOW7uuaIkA0KK+a9mOW7uuW9sA0KK+a9mOW9peiTiQ0KK+a9mOaUv+e3rw0KK+a9mOaflOiAgw0KK+a9mOePjeeQqg0KK+a9mOe+jueOsg0KK+a9mOi/sOadsQ0KK+a9mOWutumKmA0KK+a9mOazsOWFqA0KK+a9mOiDveWTsg0KK+a9mOWpieiQjQ0KK+a9mOa3kembrw0KK+a9mOaDoOWonw0KK+a9mOmAsuebig0KK+a9mOmbhemmqA0KK+a9mOeRnummmQ0KK+a9mOijleaZug0KK+a9mOedv+WTsg0KK+a9mOWEgOaBrA0KK+a9mOaFp+aVjw0KK+a9mOWEkueRqQ0KK+a9mOmMpuaYjA0KK+a9mOm0u+mKmA0KK+a9mOm6l+iQjQ0KK+a9mOWnteWmgg0KK+a9mOmIuuaflA0KK+a7leaGtumbrw0KK+e3tOW7uuS8uA0KK+iUo+S4reihjQ0KK+iUo+ato+emjw0KK+iUo+axneWuiQ0KK+iUo+ayhuelpQ0KK+iUo+S9s+ePig0KK+iUo+S9qemkmA0KK+iUo+Wtn+WEkg0KK+iUo+WunOmdnA0KK+iUo+aAoeaFpw0KK+iUo+aYjuWEkg0KK+iUo+mVt+aXuw0KK+iUo+aUv+epjg0KK+iUo+ePruazoA0KK+iUo+a3keaFpw0KK+iUo+iQjQ0KK+iUo+iRpueriw0KK+iUo+W+t+aJjQ0KK+iUo+a/seW3ng0KK+iUo+iAgOavhQ0KK+iUoeS4gee2k+WTsg0KK+iUoeWjq+aXug0KK+iUoeWtkOaAoQ0KK+iUoeS4remIng0KK+iUoeS7geWBiQ0KK+iUoeWFg+atow0KK+iUoeWFg+mbhA0KK+iUoeWkqeelug0KK+iUoeaWh+S7gQ0KK+iUoeaWh+W9pQ0KK+iUoeaWh+WBiQ0KK+iUoeaWh+WNmg0KK+iUoeaWh+asvQ0KK+iUoeaWh+WYiQ0KK+iUoeaWh+m0uw0KK+iUoeaciOePoA0KK+iUoeS4luadsA0KK+iUoeS4lum0uw0KK+iUoeW3p+Wmgg0KK+iUoeW8mOWOnw0KK+iUoeato+Wulw0KK+iUoeato+aaiQ0KK+iUoeawuOW9rA0KK+iUoeawuOeRqQ0KK+iUoeeOieeniw0KK+iUoeeOieiPgQ0KK+iUoeeri+iKrA0KK+iUoeS6pumbrw0KK+iUoeS7suWvpw0KK+iUoeWFhumpig0KK+iUoeWQjeabuA0KK+iUoeWmguWptw0KK+iUoeWuh+WAqw0KK+iUoeWuieWWrA0KK+iUoeaXreabnA0KK+iUoee+veWuuQ0KK+iUoeihjOecnw0KK+iUoeS8r+m0uw0KK+iUoeWQm+avhQ0KK+iUoeWuj+aWhw0KK+iUoeWuj+WfuQ0KK+iUoeW7t+epjg0KK+iUoeW/l+Wujw0KK+iUoeW/l+aYjg0KK+iUoeW/l+aZgw0KK+iUoeW/l+aPmg0KK+iUoeW/l+e2rQ0KK+iUoeW/l+m0uw0KK+iUoeaygeeOsg0KK+iUoeaym+Wptw0KK+iUoeaxtum0uw0KK+iUoeengOeOsg0KK+iUoeengOaDoA0KK+iUoeiCsuatow0KK+iUoeiCsuW9pQ0KK+iUoeiCsuecnw0KK+iUoeiCsuWLsw0KK+iUoeiyneePig0KK+iUoeS6q+e/sA0KK+iUoeS+neePig0KK+iUoeS+neWuuQ0KK+iUoeS+nem9oQ0KK+iUoeS9s+S8tg0KK+iUoeS9s+Wujw0KK+iUoeS9s+iJrw0KK+iUoeS9s+asow0KK+iUoeS9s+iKrA0KK+iUoeS9s+eOsg0KK+iUoeS9s+ePjQ0KK+iUoeS9s+WuuQ0KK+iUoeS9s+ecnw0KK+iUoeS9s+iIqg0KK+iUoeS9s+eQsw0KK+iUoeS9s+iTiQ0KK+iUoeS9s+aoug0KK+iUoeS9s+epjg0KK+iUoeS9s+mclg0KK+iUoeS9s+ekvQ0KK+iUoeS9qeWmgg0KK+iUoeS9qeWQmw0KK+iUoeS9qeWmpA0KK+iUoeS9qeiKsw0KK+iUoeS9qeiKrA0KK+iUoeS9qeePig0KK+iUoeS9qeePig0KK+iUoeS9qeeOsg0KK+iUoeS9qeWopQ0KK+iUoeS9qee0iw0KK+iUoeS9qeiTiQ0KK+iUoeS9qeepjg0KK+iUoeS9qemdnA0KK+iUoeS+keW7tw0KK+iUoeWFtuePrg0KK+iUoeWNlOeUqw0KK+iUoeWPl+WLsw0KK+iUoeWdpOS9kQ0KK+iUoeWdpOmbhA0KK+iUoeWdpOmMpg0KK+iUoeWlh+Wdhw0KK+iUoeWlh+mclg0KK+iUoeWtn+WQmw0KK+iUoeWtn+iCsg0KK+iUoeWtn+iKsw0KK+iUoeWtn+eniw0KK+iUoeWtn+WTsg0KK+iUoeWtn+ecnw0KK+iUoeWtn+mbhA0KK+iUoeWtn+WEkg0KK+iUoeWtn+aoug0KK+iUoeWtn+irrQ0KK+iUoeWto+eOsg0KK+iUoeWul+S9kQ0KK+iUoeWul+W/lw0KK+iUoeWul+eOqw0KK+iUoeWul+ebig0KK+iUoeWul+mBlA0KK+iUoeWul+WEkg0KK+iUoeWul+aGsg0KK+iUoeWul+epjg0KK+iUoeWul+e/sA0KK+iUoeWul+mclg0KK+iUoeWunOWQmw0KK+iUoeWunOW7tw0KK+iUoeWunOiKsw0KK+iUoeWunOePig0KK+iUoeWunOWAqQ0KK+iUoeWunOecnw0KK+iUoeWunOiTiQ0KK+iUoeWunOmclg0KK+iUoeWunOiTgQ0KK+iUoeWum+eOsg0KK+iUoeWum+irrQ0KK+iUoeWwmuWysw0KK+iUoeWwmuepjg0KK+iUoeWyseWLsw0KK+iUoeWys+abuA0KK+iUoeW5uOWmgg0KK+iUoeW5uOaBhg0KK+iUoeW5uOa3sw0KK+iUoeW8puixqg0KK+iUoeW/oOS/oQ0KK+iUoeW/oOepjg0KK+iUoeaAoeWQmw0KK+iUoeaAoeiQjQ0KK+iUoeaJv+aYig0KK+iUoeaJv+eSiw0KK+iUoeaJv+e/sA0KK+iUoeaYk+S6qA0KK+iUoeaYk+mZng0KK+iUoeaYk+aGsg0KK+iUoeaYjOWuhw0KK+iUoeaYjOWEkg0KK+iUoeaYhuS9kQ0KK+iUoeaYjg0KK+iUoeaYjuaxjg0KK+iUoeaYjuWujw0KK+iUoeaYjuadiQ0KK+iUoeaYjuWulw0KK+iUoeaYjuiKsw0KK+iUoeaYjuWAqw0KK+iUoeaYjuWTsg0KK+iUoeaYjuWzsA0KK+iUoeaYjuiMtQ0KK+iUoeaYjuasvQ0KK+iUoeaYjuiSsg0KK+iUoeaYjuiznA0KK+iUoeaYjuaGsg0KK+iUoeaYjuepjg0KK+iUoeaYjum+jQ0KK+iUoeaYgOeUqw0KK+iUoeaYh+S8rw0KK+iUoeaYh+epjg0KK+iUoeadseaYjg0KK+iUoeadseepjg0KK+iUoeadsOW/lw0KK+iUoeadvuafjw0KK+iUoeadvumclg0KK+iUoeaso+aAoQ0KK+iUoeaso+WAqw0KK+iUoeaso+mBlA0KK+iUoeaso+epjg0KK+iUoeatpuirug0KK+iUoeeJp+WLsw0KK+iUoeebtOWLsw0KK+iUoeenieaYhg0KK+iUoeenieeSiw0KK+iUoeenieirrQ0KK+iUoeiKs+a0tQ0KK+iUoemHh+iKsw0KK+iUoemHkeWzsA0KK+iUoemHkem+jQ0KK+iUoemVt+amrg0KK+iUoembqOa9lA0KK+iUoemdkuWzsA0KK+iUoeS/oeiJrw0KK+iUoeS/iuaZjw0KK+iUoeS/iuizog0KK+iUoeWTgeWEgA0KK+iUoeWupeWumg0KK+iUoeW7uuijlQ0KK+iUoeaAneaNtw0KK+iUoeaUv+Wujw0KK+iUoeaUv+iogA0KK+iUoeaUv+WTsg0KK+iUoeaUv+e+pA0KK+iUoeaUv+WLsw0KK+iUoeaUv+e/sA0KK+iUoeaUv+m+jQ0KK+iUoeaYrem+jQ0KK+iUoeafj+avhQ0KK+iUoeeOsua0pQ0KK+iUoeemueathg0KK+iUoee0gOa6kA0KK+iUoee+juiKnQ0KK+iUoee+juiOiQ0KK+iUoee+juaFpw0KK+iUoeiLseWulw0KK+iUoemDgeWQmw0KK+iUoemfi+W/lw0KK+iUoeWHjOmzsw0KK+iUoeWon+Wonw0KK+iUoeWutuiPrw0KK+iUoeWuueeRmw0KK+iUoeaCheeOnw0KK+iUoeaMr+itsA0KK+iUoeagqee2rQ0KK+iUoeePruaAoQ0KK+iUoeecn+emlQ0KK+iUoee0oOeipw0KK+iUoeiMueiMtQ0KK+iUoeWBieadsA0KK+iUoeWci+aJiw0KK+iUoeWci+iBlg0KK+iUoeWfueitrw0KK+iUoeW0h+awkQ0KK+iUoeWVn+Wggg0KK+iUoea3u+aWhw0KK+iUoea3keWmgw0KK+iUoea3keaAoQ0KK+iUoea3keeOsg0KK+iUoea3keecnw0KK+iUoea3keaDoA0KK+iUoea3keeRnA0KK+iUoea3keiWhw0KK+iUoeebm+WLsw0KK+iUoembquWNvw0KK+iUoeWLnembhA0KK+iUoeWNmuWFqA0KK+iUoeWWrOWuiQ0KK+iUoeWvjOiytA0KK+iUoeaDoOWmgg0KK+iUoeaDoOe+jg0KK+iUoeaDoOeQqg0KK+iUoeaDoOeHlQ0KK+iUoeaZr+a3kQ0KK+iUoeaZuuWujw0KK+iUoeaZuuaakA0KK+iUoea5mOaAoQ0KK+iUoeeak+aYjg0KK+iUoeiIkuWuhw0KK+iUoeiPgeiPgQ0KK+iUoeipoOe/lA0KK+iUoemAuOePig0KK+iUoemAsuaYjA0KK+iUoemahuazsA0KK+iUoembheWQmw0KK+iUoembheiKrA0KK+iUoembheiMuQ0KK+iUoembheaDoA0KK+iUoembheiPgQ0KK+iUoembheaFpw0KK+iUoembr+a3hw0KK+iUoeWCs+W+tw0KK+iUoealqOeRnA0KK+iUoeavk+mclg0KK+iUoeeRnuaWhw0KK+iUoeeRnuWzsA0KK+iUoeeRnum6kg0KK+iUoee+qeebig0KK+iUoeijleWBpQ0KK+iUoeipqeiWjw0KK+iUoeWYieS7gQ0KK+iUoeWYieaBhg0KK+iUoeWYieeroA0KK+iUoeWYieaFtg0KK+iUoeamruaYjA0KK+iUoeamruizog0KK+iUoea8oue+qQ0KK+iUoeeip+WuuQ0KK+iUoeemj+aZjw0KK+iUoee2reeOsg0KK+iUoee2reiTgQ0KK+iUoeijtOS8tg0KK+iUoemKmA0KK+iUoemKmOWzsA0KK+iUoemKmOizog0KK+iUoemzs+WEgA0KK+iUoeW+temclg0KK+iUoeaFp+awkQ0KK+iUoeaFp+iyng0KK+iUoeaFp+iQsQ0KK+iUoeavhei7kg0KK+iUoeizoueahw0KK+iUoeWtuOaWhw0KK+iUoeaGtumItA0KK+iUoeabieeEtg0KK+iUoea+pOmKmA0KK+iUoeepjueutA0KK+iUoee/sOeGig0KK+iUoeiVmeWptw0KK+iUoemMpuWdoQ0KK+iUoemdnOWunA0KK+iUoemdnOaDoA0KK+iUoem+jeWEgA0KK+iUoee/vOWmgg0KK+iUoem0u+awkQ0KK+iUoem0u+aWjA0KK+iUoeeSp+WFiQ0KK+iUoeixkOaWhw0KK+iUoeixkOadsA0KK+iUoemOruW2vQ0KK+iUoem1keW9jA0KK+iUoeeTiuWEgA0KK+iUoem6l+iKsw0KK+iUoem6l+aDoA0KK+iUoeeNu+avhQ0KK+iUoeiAgOe+pA0KK+iUoeiAgOmnkg0KK+iUoemmqOWEgA0KK+iUoeS9tuiIiA0KK+iUoeaXu+iKsw0KK+iUoeaXu+aGsg0KK+iUoeeQhOeruQ0KK+iUoeathuaAoQ0KK+iUoeeRi+erkQ0KK+iUoee3tg0KK+iUoemRq+W7tw0KK+irh+aYreiYrQ0KK+mEreS4gOWHoQ0KK+mEreS5g+S9sw0KK+mEreS6uuWFgw0KK+mEreWKm+S7gQ0KK+mEreWPiOS7gQ0KK+mEreWjq+mfiw0KK+mEreWtkOimiw0KK+mEreWwj+W1kA0KK+mEreWwueaWrw0KK+mEreS7geWvjA0KK+mEreWFg+WtnQ0KK+mEreWFg+eRnA0KK+mEreWPi+iqoA0KK+mEreW/g+Wmgg0KK+mEreaWh+atow0KK+mEreaWh+W9rA0KK+mEreaWh+WvjA0KK+mEreaWh+WYiQ0KK+mEreaciOaenQ0KK+mEreS4luaYjA0KK+mEreS4lua5mA0KK+mEreS7lemRqw0KK+mEreW3p+mdkg0KK+mEreW8mOWBiQ0KK+mEreato+iqoA0KK+mEreawuOa0pQ0KK+mEreeOieS8tg0KK+mEreeOieiLsQ0KK+mEreeOieiPgQ0KK+mEreeri+S6qw0KK+mEreS6meWQnw0KK+mEreS8iuecnw0KK+mEreS7suWujw0KK+mEreS7suizog0KK+mEreWFieS9kQ0KK+mEreWFiea3sw0KK+mEreWFhuWdhw0KK+mEreWFiOiQjA0KK+mEreWQieS9kQ0KK+mEreWQj+WtnA0KK+mEreWQiOS/rg0KK+mEreWkmea2tQ0KK+mEreWmguasow0KK+mEreWmgue0lA0KK+mEreWuh+Wujw0KK+mEreWuh+a3qA0KK+mEreWuiOadsQ0KK+mEreWuieiKuA0KK+mEreWuiee/lA0KK+mEreaIkOajoA0KK+mEreaXreebmw0KK+mEreacieiyoQ0KK+mEreeZvuWptw0KK+mEree+veaZtA0KK+mEreiHs+WJmw0KK+mEreS8r+WNlw0KK+mEreWQm+mBlA0KK+mEreWuj+aYjg0KK+mEreW/l+WKnw0KK+mEreW/l+WBiQ0KK+mEreW/l+m+jQ0KK+mEreengOaAoQ0KK+mEreengOWonw0KK+mEreengOaFpw0KK+mEreiCsuaYhw0KK+mEreiyneWmgg0KK+mEreS9s+WunA0KK+mEreS9s+elpQ0KK+mEreS9s+WEgA0KK+mEreS9qeePig0KK+mEreWFtumbrw0KK+mEreWtn+eOsg0KK+mEreWul+adsA0KK+mEreWunOiKsw0KK+mEreW5uOWunA0KK+mEreaAoeWQmw0KK+mEreaAoeWptw0KK+mEreaYjOWysw0KK+mEreaYjuW/oA0KK+mEreaYjumKkw0KK+mEreaso+Wmgg0KK+mEreaso+amrg0KK+mEreenieazkw0KK+mEreiKuOiKuA0KK+mEremVt+W/lw0KK+mEreS/iuWujw0KK+mEreWLh+eMmw0KK+mEreW7uuS9sw0KK+mEreW9pemBlA0KK+mEreaYpeiPig0KK+mEreecgeadkQ0KK+mEree+jueOiQ0KK+mEree+jueQtA0KK+mEreiLpeeQpA0KK+mErei/quWFgQ0KK+mEreWAqeWmgg0KK+mEreWutuWFuA0KK+mEreWutumKmA0KK+mEreaMr+WunA0KK+mEreabuOmIug0KK+mEreePruWQmw0KK+mEreelkOmYoQ0KK+mEree0oOW9rA0KK+mEreiMl+iBsA0KK+mEreWBieePig0KK+mEreWci+atow0KK+mEreWci+elpQ0KK+mEreWfueiBsA0KK+mEreW0h+S9kQ0KK+mEreaDn+W/gw0KK+mEreWVn+amrg0KK+mEreaiheWQmw0KK+mErea4heS/ig0KK+mErea3keS6kQ0KK+mErea3keexsw0KK+mErea3keeOsg0KK+mErea3keWptw0KK+mErea3keeHlQ0KK+mErea3teiXpA0KK+mEreelpeWmgg0KK+mEreiOiembrw0KK+mEreWCkeWFgw0KK+mEreWHseS7gQ0KK+mEreWHseWFgw0KK+mEreWHseaWhw0KK+mEreWHseiCsg0KK+mEreWHsem0uw0KK+mEreWLneaXrQ0KK+mEreWNmuS7gQ0KK+mEreWNmuaWhw0KK+mEreWWrOmKmA0KK+mEreWpt+aWhw0KK+mEreWvjOS7gQ0KK+mEreWwiuWtnQ0KK+mEreaDoOaWhw0KK+mEreaDoOWQmw0KK+mEreaDoOe0iw0KK+mEreaDoOmcnA0KK+mEreaWr+WwuQ0KK+mEreaZr+S7gQ0KK+mEreaZr+aWhw0KK+mEreaZr+mahg0KK+mEreaZuuS7gQ0KK+mEreaZuuWFgw0KK+mEreaZuuaYjA0KK+mEreaZuuixqg0KK+mEreacneWFgw0KK+mEreacneeHnw0KK+mEreakjeWvsA0KK+mErea5mOaYgA0KK+mEreeak+S6kQ0KK+mEreeoi+itsA0KK+mEree1sumbrw0KK+mEree/lOm+jQ0KK+mEreiIkuiVig0KK+mEreipoOS7gQ0KK+mEreiplOismQ0KK+mEremAuOWruw0KK+mEremWlOm0uw0KK+mErembheS6kQ0KK+mErembheWPiw0KK+mErembheaWhw0KK+mErembheWmgw0KK+mErembheiKrA0KK+mErembheWonw0KK+mErembheeQqg0KK+mErembheeUhA0KK+mErembhem7mw0KK+mErembsum1rA0KK+mEreaEj+S4rQ0KK+mEreaVrOaoug0KK+mEreavk+m9oQ0KK+mEreeRnue+jg0KK+mEreeRnOeQsw0KK+mEree+qeaGsg0KK+mEreiBluizog0KK+mEreijleW5tA0KK+mEreipqeaFpw0KK+mEreWYieS7gQ0KK+mEreWYieaPmg0KK+mEreWYieaXuw0KK+mEreamruWonw0KK+mEreemj+WSjA0KK+mEreiCh+W/gw0KK+mEremKmOazsA0KK+mEremzs+m9oQ0KK+mEreaFtuWTsg0KK+mEreaFp+iKsw0KK+mEreaFp+mOgg0KK+mEreiUmuifrA0KK+mEreaGsuWtmA0KK+mEreabieaAoQ0KK+mEreabieiWhw0KK+mEreepjumKkw0KK+mEreiVmeeQpg0KK+mEremclumnvw0KK+mEremdnOiKsw0KK+mEreaHi+WCkQ0KK+mEreisneWGoA0KK+mErem0u+a6kA0KK+mEreixkOWYiQ0KK+mErem6l+WQmw0KK+mEreeNu+aWhw0KK+mEreaXu+i7kg0KK+mEreeQh+S7gQ0KK+mEreWftQ0KK+mEree1nOW/gw0KK+mEreeRi+mahg0KK+mEremIuumQmA0KK+mEremdiw0KK+mEp+WNh+aVpg0KK+mEp+aWh+WEgA0KK+mEp+awuOW/oA0KK+mEp+S8iuWuuQ0KK+mEp+WQjueQmw0KK+mEp+aXreaVpg0KK+mEp+W/l+eFjA0KK+mEp+S9s+eOsg0KK+mEp+WunOasow0KK+mEp+aYjuiKsw0KK+mEp+mHkem0uw0KK+mEp+eni+aDoA0KK+mEp+aMr+iLsQ0KK+mEp+WBieizog0KK+mEp+a3keeOsg0KK+mEp+WNmuS7gQ0KK+mEp+aDoOaWhw0KK+mEp+aZr+m+jQ0KK+mEp+e/lOS7gQ0KK+mEp+mbheW/gw0KK+mEp+mghuWxlQ0KK+mEp+ijlemmqA0KK+mEp+emj+mahg0KK+mEp+mch+Wuhw0KK+mEp+epjumnvw0KK+mEp+WKpuWRiA0KK+mtr+W/oOixqg0KK+mtr+aGsumbsg0KK+m7juS4luW7iQ0KK+m7juWuh+WuuQ0KK+m7juaYjuWAqw0KK+m7juS/kOWdhw0KK+m7juWutuS8tg0KK+m7juWpieWEgA0KK+m7jueFpeWFgw0KK+m7jumKmOS7gQ0KK+m7juemruaZug0KK+ebp+S4ieS7gQ0KK+ebp+S7geadsA0KK+ebp+aWh+W/oA0KK+ebp+aWh+aZnw0KK+ebp+W8mOa1tw0KK+ebp+awuOaYhw0KK+ebp+eUs+azsA0KK+ebp+WQieWLhw0KK+ebp+WRiOiKsw0KK+ebp+W/l+W/oA0KK+ebp+W/l+iejQ0KK+ebp+iCsuiBlg0KK+ebp+S9s+aDoA0KK+ebp+WPlOasow0KK+ebp+WumuWdhw0KK+ebp+W7tuiPrw0KK+ebp+aAoeS8tg0KK+ebp+aAoea2tQ0KK+ebp+aJv+alrQ0KK+ebp+aso+WunA0KK+ebp+eOq+Wmjw0KK+ebp+mbqOa2tQ0KK+ebp+S/neWFqA0KK+ebp+S/iuiogA0KK+ebp+S/iuWEkg0KK+ebp+WGoOabhA0KK+ebp+WljuS8rw0KK+ebp+Wogemclg0KK+ebp+W7uuWujw0KK+ebp+W7uumKmA0KK+ebp+aAnea6kA0KK+ebp+aYn+WFqA0KK+ebp+afj+iJrw0KK+ebp+ebiOWujw0KK+ebp+e+juWmgg0KK+ebp+iLseS7gQ0KK+ebp+mfi+S7gQ0KK+ebp+WutumIug0KK+ebp+ellue/lA0KK+ebp+WpieeRnA0KK+ebp+a3kem6lw0KK+ebp+aDoOWCkQ0KK+ebp+i2hee+pA0KK+ebp+aEt+iOiQ0KK+ebp+e+pOiCsg0KK+ebp+WYieaMrw0KK+ebp+W+t+iKsw0KK+ebp+aFp+WunA0KK+ebp+i8neWxlQ0KK+ebp+epjuW/lw0KK+ebp+m+jeeUnw0KK+ebp+mfu+WykQ0KK+ebp+itveWFgQ0KK+ebp+etseeRqQ0KK+ephue+juiVmQ0KK+iVreS6uuixqg0KK+iVreWjq+azsA0KK+iVreWwueiyng0KK+iVreWFgeazsA0KK+iVreaWh+asow0KK+iVreaWh+ethg0KK+iVreaWh+mtgQ0KK+iVreS4luawkQ0KK+iVreS7peS6rg0KK+iVreato+W5sw0KK+iVreawuOazkw0KK+iVreeOieiyng0KK+iVreeri+mfiw0KK+iVreS6pue2rQ0KK+iVreS7suW/lw0KK+iVreWFhueQsw0KK+iVreWQjeaygg0KK+iVreWcreWmmQ0KK+iVreWmguePig0KK+iVreWuh+S8rw0KK+iVreWuieW7tw0KK+iVreacieWujw0KK+iVreiBv+Wujw0KK+iVreWQm+aAoQ0KK+iVreWuj+ijlQ0KK+iVreW/l+e+vQ0KK+iVreW/l+ixqg0KK+iVreengOaDoA0KK+iVreiCsumahg0KK+iVreS9s+aCjA0KK+iVreS9qeePig0KK+iVreWto+iWhw0KK+iVreWwmuaWhw0KK+iVreaAoeiKsw0KK+iVreaYhuW7tw0KK+iVreaso+aAoQ0KK+iVreiKs+ebiA0KK+iVremdkuiQjQ0KK+iVreS/iuizog0KK+iVreW9peW9sA0KK+iVreafj+i7kg0KK+iVree+juWonw0KK+iVrei/sOS7gQ0KK+iVreWkj+aVjw0KK+iVreaMr+WuiQ0KK+iVreePruWmgg0KK+iVreiok+Wciw0KK+iVreWci+atow0KK+iVreWci+Wvtg0KK+iVreW0h+irlg0KK+iVreaVj+W9pQ0KK+iVrea4heeHlQ0KK+iVrea3keePjQ0KK+iVrea3keepjg0KK+iVrembquWQnw0KK+iVreWHseaHiw0KK+iVreWNmuS7gQ0KK+iVreWNmuS7sA0KK+iVreWvjOWFgw0KK+iVreaDoOWFgw0KK+iVreaDoOiKsw0KK+iVreaDoOmEiQ0KK+iVreaWkOWmgg0KK+iVreaZr+iBsA0KK+iVreaZuuaihQ0KK+iVreaji+WFgw0KK+iVreero+m0uw0KK+iVreipoOaWuQ0KK+iVremAuOW5sw0KK+iVrembheS4uQ0KK+iVrembheaWhw0KK+iVrembheiOiQ0KK+iVrembr+W/gw0KK+iVreaEm+eOsg0KK+iVreeFpee3rw0KK+iVreeRm+aXlw0KK+iVreiBluaoug0KK+iVreipqeeShw0KK+iVreWYieeQqg0KK+iVreWvp+WQmw0KK+iVree2reWAqQ0KK+iVrei8lOW9pQ0KK+iVremKmOasig0KK+iVreaFp+aAoQ0KK+iVreeRqeecnw0KK+iVreaGtuiYrQ0KK+iVree/sOiLsQ0KK+iVremdnOWunA0KK+iVreixkOaZug0KK+iVrem6l+Wonw0KK+iVrem2tOi7kg0KK+iVreeQrue/sA0KK+iVreaqieitgQ0KK+iztOS5g+mgjA0KK+iztOWjq+i2hQ0KK+iztOS7geelkA0KK+iztOWkqem0uw0KK+iztOaWh+iLsQ0KK+iztOaWh+iPrw0KK+iztOS4luaYjA0KK+iztOS4lue2rQ0KK+iztOWPr+aBqQ0KK+iztOW8mOeSmA0KK+iztOato+mHjg0KK+iztOawuOmItA0KK+iztOeOieWUkA0KK+iztOeOiemcnA0KK+iztOS6puiyng0KK+iztOWmg+WQmw0KK+iztOaXreW9pQ0KK+iztOS8r+WogQ0KK+iztOWmmeWuow0KK+iztOWuj+aYjA0KK+iztOW7t+emuQ0KK+iztOW/l+aYjA0KK+iztOW/l+WBiQ0KK+iztOW/l+e2sQ0KK+iztOadj+WEkg0KK+iztOengOaYpQ0KK+iztOiCsuW7tw0KK+iztOiCsum6nw0KK+iztOS9s+S8tg0KK+iztOS9s+asow0KK+iztOS9s+aFpw0KK+iztOS9qeWQmw0KK+iztOWFtuS6rg0KK+iztOWtn+iPrw0KK+iztOWul+iqoA0KK+iztOWunOS9sw0KK+iztOWxheatow0KK+iztOaAoeaWhw0KK+iztOaAoeS8tg0KK+iztOaAoeWQmw0KK+iztOaAoeasow0KK+iztOaAoeaoug0KK+iztOaYjOW9pQ0KK+iztOaYjuWujw0KK+iztOaYjuW+tw0KK+iztOadseW7tg0KK+iztOaso+WunA0KK+iztOatpua6qg0KK+iztOeOq+Wmgg0KK+iztOiKs+W7tg0KK+iztOmVt+S9kQ0KK+iztOS/oeWFiQ0KK+iztOS/oeiqoA0KK+iztOS/iuWFhg0KK+iztOS/iuWujw0KK+iztOS/iuadsA0KK+iztOS/iumBlA0KK+iztOS/kOWNiQ0KK+iztOWGoOWujw0KK+iztOWLh+W/lw0KK+iztOWlleW4hg0KK+iztOWnv+Wdhw0KK+iztOWogeWdhw0KK+iztOWuo+WmpA0KK+iztOW7uuWQiA0KK+iztOW7uuS9kQ0KK+iztOW7uuW/lw0KK+iztOW7uumbhA0KK+iztOW7uuiejQ0KK+iztOW9peS9kA0KK+iztOW9peiJrw0KK+iztOW9peaoug0KK+iztOaAnemclg0KK+iztOaUv+WvrA0KK+iztOaYreWFiQ0KK+iztOaYrem+jQ0KK+iztOaYseWLmw0KK+iztOafj+S8uA0KK+iztOafj+m+jQ0KK+iztOePgOizog0KK+iztOebiOmdkg0KK+iztOenkeWNsA0KK+iztOe0hemcng0KK+iztOe+juWGoA0KK+iztOe+jumMtQ0KK+iztOiMguW7tw0KK+iztOiZueS8tg0KK+iztOi7jeiIiQ0KK+iztOmDgembrw0KK+iztOmfi+mBlA0KK+iztOWutuW8mA0KK+iztOaMr+eUnw0KK+iztOa1qeixkA0KK+iztOenqeWFiQ0KK+iztOmrmOW/lw0KK+iztOWci+aBqQ0KK+iztOWfuua3pQ0KK+iztOWVn+a6kA0KK+iztOa3keaAoQ0KK+iztOa3keiyng0KK+iztOa3keiQjQ0KK+iztOiOiembrw0KK+iztOaDoOWQmw0KK+iztOaEieiKsw0KK+iztOasveiprg0KK+iztOiytOe+qQ0KK+iztOmahuW5sw0KK+iztOmbheeQtA0KK+iztOmghuaMrw0KK+iztOa6kOa3sw0KK+iztOe+qeS4rQ0KK+iztOiRpuW4hg0KK+iztOmdluWunA0KK+iztOWYieaFpw0KK+iztOamrueSiQ0KK+iztOe2reW7tw0KK+iztOmKmOebuA0KK+iztOWinuiBsA0KK+iztOaFtumKmA0KK+iztOaFp+Wonw0KK+iztOa9lOiKsw0KK+iztOmLkg0KK+iztOabiealkw0KK+iztOepjui8nQ0KK+iztOmMpuWEhA0KK+iztOmdnOeShw0KK+iztOm0u+mKmA0KK+iztOmfu+Wmgg0KK+iztOm6lw0KK+iztOm6l+mbrw0KK+iztOiKg+WQmw0KK+iztOafiuajiw0KK+iztOeRi+aYgA0KK+iztOmciOWEkg0KK+mBsuWwmuasig0KK+mMouS7peaBrA0KK+mMouiJr+iVmQ0KK+mMouaso+WunA0KK+mMouWogeiejQ0KK+mMoumDgeiYiw0KK+mMoumAuOmclg0KK+mMouW+t+S/ig0KK+mMoeaDoOmbrw0KK+mWu+aDoOeOsg0KK+mcjeiOmOeRnA0KK+mnseawuOW7ug0KK+mnseWto+W5sw0KK+mnseiKs+aipw0KK+mnseW7uuWRiA0KK+mnseihjem+jQ0KK+mnseWYieaFtg0KK+mukeihjOS7gQ0KK+mukeWci+WzsA0KK+m+jeengOiyng0KK+m+jeaYn+WFhg0KK+WEsuS6jui2hQ0KK+aHieW/l+Wujw0KK+aItOS5meiPgQ0KK+aItOWkp+mIng0KK+aItOWFg+WIqQ0KK+aItOaWh+mbhA0KK+aItOato+W5sw0KK+aItOeri+S6ug0KK+aItOWFqOWIqQ0KK+aItOWuiOatow0KK+aItOS9kea0sg0KK+aItOWRiOWuiQ0KK+aItOWuj+S4ng0KK+aItOW/l+aYhw0KK+aItOadj+iKsw0KK+aItOS9s+W5sw0KK+aItOWto+WFqA0KK+aItOaAoeiyng0KK+aItOaYjuePoA0KK+aItOS/iue3rw0KK+aItOeni+mmmQ0KK+aItOmDgeiKsw0KK+aItOaMr+mBoA0KK+aItOWci+iJrw0KK+aItOaDn+aciQ0KK+aItOiOiQ0KK+aItOajruWcsA0KK+aItOmbheWmgg0KK+aItOWCs+Wutg0KK+aItOeRnuWQmw0KK+aItOe+pOWzsA0KK+aItOWYieWujw0KK+aItOWYieaGsg0KK+aItOe2reS8uA0KK+aItOWinueRnA0KK+aItOizouelpQ0KK+aItOmdnOWEgA0KK+aItOW/nuiHuw0KK+aItOiWj+ePig0KK+e5huS/oeWuhw0KK+iWm+S5g+WFgQ0KK+iWm+S4ueahgg0KK+iWm+S4lueFjA0KK+iWm+eOiemLkg0KK+iWm+WFieeoiw0KK+iWm+WmguWQmw0KK+iWm+eZvuaDoA0KK+iWm+W/l+Wujw0KK+iWm+S+neiSqA0KK+iWm+W5uOWYiQ0KK+iWm+aYh+aXrQ0KK+iWm+Wllem+jQ0KK+iWm+e+juiKsw0KK+iWm+Wxleeriw0KK+iWm+WBieS8rw0KK+iWm+a3kemdlg0KK+iWm+WHseaWhw0KK+iWm+WcjeS4rQ0KK+iWm+aZr+aWhw0KK+iWm+ero+e2uA0KK+iWm+mbheiQjQ0KK+iWm+eRnuePjQ0KK+iWm+WYiembhA0KK+iWm+iTk+iKsw0KK+iWm+WEkumcmQ0KK+iWm+mfu+Wptw0KK+iWm+mIuuecnw0KK+isneS6juaruw0KK+isneWwj+aihQ0KK+isneS7geWTsg0KK+isneWFg+iytA0KK+isneW/g+mbhQ0KK+isneaWh+Wonw0KK+isneaWh+Wgrw0KK+isneaWh+eRnA0KK+isneaWh+aWjA0KK+isneS7peasow0KK+isneW8mOS6rg0KK+isneato+ebig0KK+isneawuOS/oQ0KK+isneeOieePoA0KK+isneeri+e+pA0KK+isneWFieS4rQ0KK+isneWQieixkA0KK+isneWmgum0uw0KK+isneaIjOWYiQ0KK+isneiBvw0KK+isneS9kOWunA0KK+isneWFi+W8tw0KK+isneWdh+avhQ0KK+isneWuj+W/oA0KK+isneWuj+e3rw0KK+isneW/l+Wujw0KK+isneW/l+aYjg0KK+isneW/l+WBiQ0KK+isneW/l+mAuA0KK+isneW/l+W+tw0KK+isneaJtumMpg0KK+isneengOmdkg0KK+isneengOiTrg0KK+isneiCsuWonw0KK+isneiCsumclg0KK+isneS6nuW1kA0KK+isneS+neWAqw0KK+isneS9s+aWhw0KK+isneS9s+Wujw0KK+isneS9s+iKsw0KK+isneS9s+WAqQ0KK+isneS9s+e0lA0KK+isneS9s+mbrw0KK+isneS9s+epjg0KK+isneS9s+aruw0KK+isneS9qeWQmw0KK+isneS9qeiKsw0KK+isneS9qeePig0KK+isneS9qeePjQ0KK+isneS9qeecnw0KK+isneS9qeiTiQ0KK+isneS+keabuA0KK+isneWFtuaWjA0KK+isneWRqOeGvg0KK+isneWdpOaGsg0KK+isneWtn+WQmw0KK+isneWtn+iKuA0KK+isneWtn+ecnw0KK+isneWtn+aoug0KK+isneWtn+iKqQ0KK+isneWul+S9kQ0KK+isneWul+WuuQ0KK+isneWul+izog0KK+isneWul+aGsg0KK+isneWul+e/sA0KK+isneWunA0KK+isneWunOiKsw0KK+isneWunOWAqw0KK+isneWunOWptw0KK+isneWunOiHuw0KK+isneWum+eOsg0KK+isneWum+irrg0KK+isneWwmuWEkg0KK+isneW5uOWunA0KK+isneW6mue/sA0KK+isneW/oOWLpA0KK+isneaAoeWptw0KK+isneaJv+mBlA0KK+isneaWvOWPoQ0KK+isneaYk+mclg0KK+isneaYjOeRvg0KK+isneaYjg0KK+isneaYjuWujw0KK+isneaYjuadkQ0KK+isneaYjuiKsw0KK+isneaYjuWAqw0KK+isneaYjuabuA0KK+isneaYjuaDoA0KK+isneaYjuaGrA0KK+isneaYjuaGsg0KK+isneaYjue/sA0KK+isneaYjuirtA0KK+isneaYh+WTsg0KK+isneadseaYhw0KK+isneadseabiQ0KK+isneadvuaGsg0KK+isneaso+Wujw0KK+isneaso+aAoQ0KK+isneaso+mHlw0KK+isneaso+mclg0KK+isneeJp+mYrg0KK+isneenieWuuQ0KK+isneenieirug0KK+isneiKnemdkg0KK+isnemHkeiyng0KK+isnemVt+WOnw0KK+isnembqOmdkg0KK+isnemdkuaoug0KK+isneS/iuWujw0KK+isneS/nuaesA0KK+isneWlleWnnQ0KK+isneW9peWQjw0KK+isneaUv+eUtw0KK+isneaUv+mBlA0KK+isneaUv+e/sA0KK+isneafj+iInw0KK+isneeah+e/lA0KK+isneeni+eHlQ0KK+isnee+jueOsg0KK+isneiHtOe+pA0KK+isnemDgeeRhA0KK+isneWutuiPsQ0KK+isneW6reaBqQ0KK+isneaZieizog0KK+isnea1qeeEtg0KK+isnee0oOiPsQ0KK+isneS5vumnvw0KK+isneabvOebiA0KK+isneWci+W9rA0KK+isneWpieeOsg0KK+isneWVn+aWhw0KK+isneaik+m6nw0KK+isnea4hea0sg0KK+isnea3keiKrA0KK+isnea3keWonw0KK+isnea3kemIng0KK+isneeajuebiA0KK+isneesoOWFgw0KK+isneWHseWBiQ0KK+isneWNmueakw0KK+isneWqm+eQqg0KK+isneW1kOWxjw0KK+isneaDoOiKrA0KK+isneaDoOiQjQ0KK+isneaZr+S7gQ0KK+isneaZuua1qQ0KK+isneakjeWyoQ0KK+isneeak+aZug0KK+isneiPiuiVmQ0KK+isnemAsuW/oA0KK+isnembheWmgg0KK+isnembhembqg0KK+isnembheiQjQ0KK+isnembr+WHsQ0KK+isnemghumahg0KK+isneavk+eOsg0KK+isneeRnuaihQ0KK+isneiQrOm+jQ0KK+isneipqeaFpw0KK+isneWYieePig0KK+isneWYiemKmA0KK+isneamruWTsg0KK+isneeip+iPgQ0KK+isnee2reS7gQ0KK+isnee/oOeSsA0KK+isnemKmOW/oA0KK+isnemKmOaZug0KK+isnemzs+eOsg0KK+isneW+t+mIng0KK+isneaFp+ePjQ0KK+isneaFp+eTig0KK+isneiUmuWEkg0KK+isneWtuOe2sQ0KK+isneabieW1kA0KK+isneeHleeOsg0KK+isneiVmQ0KK+isneiejem9ig0KK+isnemdnOWunA0KK+isnemdnOWEgA0KK+isneeSpuWmgg0KK+isnem0u+mnvw0KK+isneemruaIkA0KK+isnemOruWuhw0KK+isneeTiuaWhw0KK+isnemfu+WEkg0KK+isneWvtueRog0KK+isneiAgOmkig0KK+isnemhr+mKmA0KK+isneaXu+iOiQ0KK+isneaZn+mKmA0KK+isneeFkumguw0KK+isneeHv+iBsA0KK+mNvuS5meawkQ0KK+mNvuWFg+aMrw0KK+mNvuaWh+Wuhw0KK+mNvuaWh+asvQ0KK+mNvuaciOWckw0KK+mNvuW5vOWHjA0KK+mNvuawuOmbhA0KK+mNvueOieaDoA0KK+mNvuWFhuawkQ0KK+mNvuaIkOWlhw0KK+mNvuS8r+WQmw0KK+mNvuWtneWFtg0KK+mNvuW/l+Wujw0KK+mNvuW/l+ixqg0KK+mNvuengOiKsw0KK+mNvuiCsuirug0KK+mNvuS+nemdnA0KK+mNvuS9s+ecnw0KK+mNvuS9s+epjg0KK+mNvuS9qeiKuA0KK+mNvuS9qeWptw0KK+mNvuWNk+WEkg0KK+mNvuWtn+aGrA0KK+mNvuWunOWFqA0KK+mNvuWunOiIiA0KK+mNvuWwmuWEkg0KK+mNvuW7tuiPrw0KK+mNvuaJv+eSiw0KK+mNvuaYk+mBlA0KK+mNvuaYjuengA0KK+mNvuaYjuaZjw0KK+mNvuaYjuaGsg0KK+mNvuaYh+epjg0KK+mNvuaso+e/sA0KK+mNvuenieirug0KK+mNvumHkeeSiw0KK+mNvuS/iueUqw0KK+mNvuaUv+awkQ0KK+mNvuaUv+mMpg0KK+mNvuebiOaFpw0KK+mNvue+jueQsw0KK+mNvumDgee/jg0KK+mNvuaMr+azkw0KK+mNvue0i+aYkw0KK+mNvuWVhumnvw0KK+mNvuW0h+aihQ0KK+mNvua3keiKrA0KK+mNvua3keiQjQ0KK+mNvuWHseS+nQ0KK+mNvuaDoOWmgg0KK+mNvuaZuuWCkQ0KK+mNvue1ouWmgg0KK+mNvumAuOefsw0KK+mNvumbsuWFiQ0KK+mNvua6kOW+tw0KK+mNvuijleaWhw0KK+mNvuWYiemzsw0KK+mNvuemjuWFgw0KK+mNvumKmOaZug0KK+mNvuW+t+mclg0KK+mNvuaoguWQnw0KK+mNvuabieW1kA0KK+mNvumMpueQsw0KK+mNvuiWsOWrug0KK+mNvum1rOmjmw0KK+mNvuaHv+iPrw0KK+mNvuaXu+WcnA0KK+meoOWyseeQpg0KK+mfk+aWh+ixkA0KK+mfk+WFi+WEiQ0KK+mfk+S9qeWKrQ0KK+mfk+WunOa9lA0KK+mfk+aYjuWAqw0KK+mfk+ebuOWunA0KK+mfk+aihQ0KK+mfk+mbheiAjA0KK+mfk+WYiemnvw0KK+mfk+WvtueRqQ0KK+WPoua3keiPrw0KK+ewoeS4iuWTsg0KK+ewoeWjq+ebig0KK+ewoeWjq+a/oA0KK+ewoeWwj+iVmQ0KK+ewoeaWh+S6qA0KK+ewoeaWh+iytA0KK+ewoeS4luijlQ0KK+ewoeW3p+Wptw0KK+ewoeawkem+jQ0KK+ewoeeOieePjQ0KK+ewoeeri+S6ug0KK+ewoeS8iuWplQ0KK+ewoeS7sOWjrw0KK+ewoeWQieiBsA0KK+ewoeWuh+Wxjw0KK+ewoeeZvuaHiQ0KK+ewoeiHs+mchg0KK+ewoeS8tuWonw0KK+ewoeWQm+eOsg0KK+ewoeWmpOeOsg0KK+ewoeWuj+WAqw0KK+ewoeW7t+WuiQ0KK+ewoeW/l+WuiQ0KK+ewoeW/l+WzsA0KK+ewoeW/l+mbhA0KK+ewoeW/l+epjg0KK+ewoeengOadjw0KK+ewoeengOe0lA0KK+ewoeiyneePig0KK+ewoeS9s+eQqg0KK+ewoeS9qeeQqg0KK+ewoeWul+W+tw0KK+ewoeaAoeWptw0KK+ewoeaYjumbgQ0KK+ewoeeOq+eOiQ0KK+ewoembqOiUrQ0KK+ewoeW7uuS4gA0KK+ewoeaYreiQuA0KK+ewoee+juWonw0KK+ewoeiZueeQqg0KK+ewoeWutuaWsA0KK+ewoeePrumbhQ0KK+ewoeWBpeS/ig0KK+ewoeWci+aWjA0KK+ewoeWVn+aBhg0KK+ewoea3keiKrA0KK+ewoea3keWptw0KK+ewoeiOiemdnA0KK+ewoeWNmuW9rA0KK+ewoeaDoOa5mA0KK+ewoeajruS5mQ0KK+ewoeiPr+ecnw0KK+ewoembheWmgg0KK+ewoemghueriw0KK+ewoeaVrOW6rQ0KK+ewoea6ouWdhw0KK+ewoeeRnuajuw0KK+ewoeiBluixqg0KK+ewoeipqeWzsA0KK+ewoeWYieWujw0KK+ewoeWYieW9rA0KK+ewoeWYiem9oQ0KK+ewoea8oueSiw0KK+ewoeemjuS9kQ0KK+ewoee2reiQsQ0KK+ewoemBoOecnw0KK+ewoemKmOi+sA0KK+ewoemzs+WEgA0KK+ewoeaFp+Wonw0KK+ewoeaGtuWmgg0KK+ewoemMq+a3tQ0KK+ewoemnv+iyvw0KK+ewoeiXneWzsA0KK+ewoempqua9lA0KK+ewoeeRi+WAqw0KK+ewoeaBkuiBlg0KK+iBtuadseWNlw0KK+iBtuaakOWzuw0KK+iXjeWtkOahkw0KK+iXjeWFg+eakw0KK+iXjeaWh+WtnQ0KK+iXjeW8mOWBiQ0KK+iXjeS7suWBiQ0KK+iXjeW/l+eZvA0KK+iXjeaAoeW5sw0KK+iXjeaYlee3rw0KK+iXjeaYpeeZvA0KK+iXjeWzu+W9rA0KK+iXjeWBieS7gQ0KK+iXjeWci+iPrw0KK+iXjeaik+S+lg0KK+iXjeaDoOiQjQ0KK+iXjembhem9oQ0KK+iXjeWYieWTsg0KK+iXjeaFp+ePig0KK+iXjem7m+eRqQ0KK+mXleWwkeiKsw0KK+mXleWQn+WkmQ0KK+mXleaYjuaFpw0KK+mXlemAouavhQ0KK+mXleeAheiKrA0KK+mhj+Wjq+W9rA0KK+mhj+Wkp+emjw0KK+mhj+Wwj+WHoQ0KK+mhj+aciA0KK+mhj+W8mOelpQ0KK+mhj+awuOiKsw0KK+mhj+eOieeRiw0KK+mhj+WFieeOlw0KK+mhj+WmgueOiQ0KK+mhj+acieeUtw0KK+mhj+S8r+Wlhw0KK+mhj+WRiOaXrQ0KK+mhj+WmmeiKsw0KK+mhj+Wuj+WTsg0KK+mhj+Wuj+WPoQ0KK+mhj+W/l+aIkA0KK+mhj+W/l+aPmg0KK+mhj+W/l+m6nw0KK+mhj+engOecnw0KK+mhj+iJr+a+pA0KK+mhj+S9s+aFpw0KK+mhj+Wul+W5sw0KK+mhj+aJv+WBiQ0KK+mhj+enieW+tw0KK+mhj+WlleS7gQ0KK+mhj+eni+eQtA0KK+mhj+iLpeW6rQ0KK+mhj+Wutuelug0KK+mhj+ePruW1kA0KK+mhj+Wci+abuA0KK+mhj+WwieWHsQ0KK+mhj+aZqOaakA0KK+mhj+a3kembsg0KK+mhj+Wpt+eOsg0KK+mhj+iPr+aIkA0KK+mhj+mbheWNiQ0KK+mhj+mbr+mfuw0KK+mhj+eRnuaWhw0KK+mhj+eRnOaFpw0KK+mhj+iBlum0uw0KK+mhj+WYieaIkA0KK+mhj+WYieeQsw0KK+mhj+Wvp+S9kQ0KK+mhj+emj+mghg0KK+mhj+mKgOahkA0KK+mhj+mztOaFtg0KK+mhj+eRqem1rA0KK+mhj+a+pOWuhw0KK+mhj+m0u+asvQ0KK+mhj+eNu+S9kQ0KK+mhj+mIuuiKuA0KK+mtj+Wjq+WCkQ0KK+mtj+WtkOaZtA0KK+mtj+S7geWogQ0KK+mtj+aWh+e2ug0KK+mtj+W3p+aZtA0KK+mtj+eOiembrw0KK+mtj+S7u+W7tw0KK+mtj+WQjeaxjg0KK+mtj+Wuh+mBlA0KK+mtj+eZvuebmw0KK+mtj+S8tuWonw0KK+mtj+WQm+a9lA0KK+mtj+WtneWvrA0KK+mtj+WykeiKrA0KK+mtj+W/l+WAqw0KK+mtj+engOaBrA0KK+mtj+iJr+S9kQ0KK+mtj+S9s+WNvw0KK+mtj+WunOWvrA0KK+mtj+aYjueroA0KK+mtj+S/iuaXug0KK+mtj+aYpeeUnw0KK+mtj+iLsemOrg0KK+mtj+aZieS4gA0KK+mtj+WBiQ0KK+mtj+W0h+ahkw0KK+mtj+a3keeOqw0KK+mtj+mAouavhQ0KK+mtj+acneS/oQ0KK+mtj+mAuOeOsg0KK+mtj+aEm+a0pQ0KK+mtj+a7h+S9kQ0KK+mtj+etoOaWhw0KK+mtj+mItOiKnQ0KK+mtj+WYieiJrw0KK+mtj+WrpuWmnQ0KK+mtj+eiqeepjg0KK+mtj+mKmOa8og0KK+mtj+aFleW4hg0KK+mtj+i2qOWQiQ0KK+mtj+m6kuWuuQ0KK+mtj+eRhOiqvA0KK+m+kOawuOWfuQ0KK+aboOWpieWQmw0KK+e+heWNg+mbrw0KK+e+heWtkOi7kg0KK+e+heWwueS8tg0KK+e+heS7geWLhw0KK+e+heWFg+eUqw0KK+e+heWFgeS4rQ0KK+e+heWPi+iBsg0KK+e+heW/g+Wxjw0KK+e+heaWh+WunA0KK+e+heaWh+W9rA0KK+e+heaWh+m9ig0KK+e+heaciOWHsA0KK+e+heS4lumKmA0KK+e+heS7leajiw0KK+e+heW3p+iOiQ0KK+e+heato+mCpg0KK+e+heawuOaZug0KK+e+heeOieiQjQ0KK+e+heS6puaXiw0KK+e+heS7sOecnw0KK+e+heWFhue2rQ0KK+e+heWuh+S7uw0KK+e+heaXreWQmw0KK+e+heiHs+WWhA0KK+e+heWuj+S4gA0KK+e+heW/l+mbhA0KK+e+heengOeOsg0KK+e+heS6nuWvpw0KK+e+heS9s+eQpg0KK+e+heWunOWQmw0KK+e+heaAoeaDoA0KK+e+heaYjueroA0KK+e+heaso+aFiA0KK+e+heiKt+mdkg0KK+e+heS/iuW9pQ0KK+e+heW9pQ0KK+e+heeOsueOsg0KK+e+hee+juiTrg0KK+e+heiLkeamlQ0KK+e+heWutuasow0KK+e+heaMr+W7tw0KK+e+heazsOWAqw0KK+e+heePruWonw0KK+e+hee0oOiKsQ0KK+e+heWBieWTsg0KK+e+heWBpeW/lw0KK+e+heWUr+eRhA0KK+e+heWci+iPrw0KK+e+heWci+aakA0KK+e+heWpieWopQ0KK+e+heW8tw0KK+e+heaVj+aWhw0KK+e+heaVj+WEgA0KK+e+hea3h+aWhw0KK+e+hea3keiTiQ0KK+e+hee0ueaWhw0KK+e+heWCkQ0KK+e+heWHsemgpA0KK+e+heWNmuS/ig0KK+e+heaDoOaWuQ0KK+e+heaDoOiYrQ0KK+e+heaZuuiDvQ0KK+e+hee0q+iPgQ0KK+e+heiPr+a/gw0KK+e+hemInuiAgA0KK+e+hembheaVjw0KK+e+hembr+eQtA0KK+e+heavk+WCkQ0KK+e+heeRnuamrg0KK+e+heiBlueQsw0KK+e+hemBlA0KK+e+heWYieeOsg0KK+e+heamrui8nQ0KK+e+hemam+W3nQ0KK+e+heaFtuWCkQ0KK+e+heeRqeajuw0KK+e+heabieWogQ0KK+e+heiIiOWuiQ0KK+e+hem0u+Wfug0KK+e+hemmqOWunA0KK+e+heeFkueoiw0KK+itmuWPiOawkQ0KK+itmuWFieiPrw0KK+itmuS9qeW1kA0KK+itmuaChemmqA0KK+itmuaZuuS7gQ0KK+itmuirpg0KK+mXnOS4gOW/gw0KK+mXnOW/l+Wuhw0KK+mXnOa3kembsg0KK+WatOWtkOetkQ0KK+WatOW/g+WFgw0KK+WatOWPr+WQmw0KK+WatOW/l+WTsg0KK+WatOaYpemzsw0KK+WatOaMr+iIiA0KK+WatOWpieeOsg0KK+WatOa3keiPgQ0KK+WatOipoOiBlg0KK+WatOe2reW+tw0KK+WatOmmpQ0KK+erh+eRnumcng0KK+iXuuW/g+aAoQ0KK+iYh+WNg+S7ow0KK+iYh+Wjq+ixqg0KK+iYh+WtkOe/lA0KK+iYh+S4reaAoQ0KK+iYh+WFg+S5mQ0KK+iYh+aWhw0KK+iYh+aWh+Wonw0KK+iYh+aWh+i8nQ0KK+iYh+S4luW6rQ0KK+iYh+W3p+Wvpw0KK+iYh+ato+Wutg0KK+iYh+awuOWCkQ0KK+iYh+eOieS/rg0KK+iYh+eri+WHsQ0KK+iYh+WmguiVmQ0KK+iYh+erueWuiQ0KK+iYh+WQm+mcjw0KK+iYh+Wuj+azsA0KK+iYh+W/l+Wtnw0KK+iYh+W/l+WghQ0KK+iYh+W/l+m0uw0KK+iYh+engOeOsg0KK+iYh+iCsuW8mA0KK+iYh+iCsuS/ng0KK+iYh+iCsueRsQ0KK+iYh+S9s+i2sw0KK+iYh+S9qeeRnA0KK+iYh+Wul+S4gA0KK+iYh+WwmueRvg0KK+iYh+aAoeWmgg0KK+iYh+aAoeWQmw0KK+iYh+aAoeiPgQ0KK+iYh+aAoemmqA0KK+iYh+aYjuS/ig0KK+iYh+aYjum0uw0KK+iYh+atpum+jQ0KK+iYh+iKs+atow0KK+iYh+iKs+eRqQ0KK+iYh+mdkuWmmQ0KK+iYh+S/oea6kA0KK+iYh+S/iuWkqw0KK+iYh+S/iuelpQ0KK+iYh+S/iumKmA0KK+iYh+S/nuWmgg0KK+iYh+WLh+iqoA0KK+iYh+WlleWCkQ0KK+iYh+WogemBlA0KK+iYh+W7uuS4rQ0KK+iYh+W7uuW/lw0KK+iYh+W7uuixqg0KK+iYh+W9peeGkg0KK+iYh+aBhuiHsw0KK+iYh+aUv+ismQ0KK+iYh+aYreWQmw0KK+iYh+aYseS7uw0KK+iYh+afj+W3ng0KK+iYh+afj+aoug0KK+iYh+ePiueRqQ0KK+iYh+eah+WOnw0KK+iYh+ebiOeplw0KK+iYh+e0gOaVjw0KK+iYh+e+jueOsg0KK+iYh+iHtOS7gQ0KK+iYh+iLseeakw0KK+iYh+iynueHlQ0KK+iYh+mDgeWAqw0KK+iYh+mDgembhQ0KK+iYh+mmmeeQqg0KK+iYh+WAieawuA0KK+iYh+WTsuWEhA0KK+iYh+Wutg0KK+iYh+WutuS/oQ0KK+iYh+WutueRqQ0KK+iYh+Wzu+awkQ0KK+iYh+W6reeRpA0KK+iYh+aMr+mKmA0KK+iYh+ahk+aFtg0KK+iYh+a1qeeCug0KK+iYh+ebiuelvw0KK+iYh+eqiOeRsQ0KK+iYh+e0lOaFpw0KK+iYh+i7kuawkQ0KK+iYh+WBieiqoA0KK+iYh+Wci+WFuA0KK+iYh+Wgguixqg0KK+iYh+WpieaDoA0KK+iYh+aVjw0KK+iYh+a4heWuiQ0KK+iYh+a3keWptw0KK+iYh+eajuaFpw0KK+iYh+iOieaDoA0KK+iYh+WNmueOhA0KK+iYh+aDoOiyng0KK+iYh+aZtuaWsA0KK+iYh+a5mOaAoQ0KK+iYh+iInOWNvw0KK+iYh+mAuOecnw0KK+iYh+mbheWQmw0KK+iYh+mbheaDoA0KK+iYh+mbheaFpw0KK+iYh+mghuiqoA0KK+iYh+aEj+W1kA0KK+iYh+aVrOiPsQ0KK+iYh+avk+W9rA0KK+iYh+eMt+e/lA0KK+iYh+edpuS7gQ0KK+iYh+e+pOWCkQ0KK+iYh+iBlua2tQ0KK+iYh+ijleaWhw0KK+iYh+ipqeWptw0KK+iYh+mdluW1kA0KK+iYh+WYieWujw0KK+iYh+WYiem0uw0KK+iYh+eip+aYrQ0KK+iYh+iBnuisuQ0KK+iYh+WEhOePjQ0KK+iYh+aFp+aWhw0KK+iYh+aFp+Wonw0KK+iYh+avhQ0KK+iYh+abieWmgg0KK+iYh+abieiKgw0KK+iYh+mMpuaYhw0KK+iYh+mdnOiKsw0KK+iYh+iBsuaMrw0KK+iYh+m0u+WEgA0KK+iYh+m1rOe/sA0KK+iYh+m6l+iPrw0KK+iYh+aXu+WQmw0KK+iYh+eDnOavhQ0KK+iYh+eQoeiplQ0KK+iYh+eRi+eQsw0KK+iYh+ixiuajiw0KK+iYh+mIuuiPgQ0KK+mQmOWjq+asvQ0KK+mQmOaWh+engA0KK+mQmOeOieWmgg0KK+mQmOS9s+e1uQ0KK+mQmOebiOWHsQ0KK+mQmOaMuuixqg0KK+mQmOWci+mKmA0KK+mQmOaVj+aEqw0KK+mQmOaDoOWuhw0KK+mQmOmghuemuQ0KK+mQmOeip+iYrQ0KK+mQmOmmqOiqvA0KK+mlkuW/l+ixqg0KK+mlkuS6rg0KK+mlkuePrum9oQ0KK+mlkuaVrOWciw0KK+m7qOS4gOeCug0KK+mhp+aWh+e1og0KK+mhp+eri+iYiw0KK+mhp+Wul+aymw0KK+mhp+WAqeWmgg0KK+mhp+W0h+W+tw0KK+mhp+e/oOiPrw0KK+m+lOS6juePig0KK+m+lOaWh+epjg0KK+m+lOWFhuelug0KK+m+lOS9qeWQmw0KK+m+lOmdkumbsg0KK+m+lOW9peWQjQ0KK+m+lOiynuWmgg0KK+m+lOabuOiBlg0KK+m+lOa3keiLlw0KK+m+lOmbheasow0KK+m+lOmdluipkg0KK+m+lOixq+aFpw0KK+S6k+mahuelpQ0KK+S9mOWwmum0uw0KK+S9mOiBr+aWjA0KK+mCvuS6puWNlw0KK+a2guS4luWSjA0KK+a2guWQm+iTiQ0KK+a2guiCsuamrg0KK+a2guaso+Wujw0KK+a2guaUv+eUtw0KK+a2guaMr+awkQ0KK+a2guWVn+WOnw0KK+a2guWvjOaYnw0KK+a2gumbheeHlQ0KK+a2guWYieWOnw0KK+a2guaFp+ePjQ0KK+a2guiAgOWNhw0KK+eymOW8mOWQiQ0KK+eymOiCsueRiw0KK+eymOe0lOWmgg0KK+eymOiBlumRqw0KK+eymOiAgOS7gQ0KK+mElOW/g+aAoQ0KK+mds+eri+WBiQ0KK+mEuuWFieWvpw0KK+askuWto+W8tw0KK+6AgOiKs+eQpg0KK+6AgOWpieWptw0KK+6AgOmKmOa6kA0KK+6JvuaWh+WLsw0KK+6Jvumzs+eQqg0KK+6Lp+S/oee+qQ0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZWNlMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2UudHh0CkBAIC0wLDAgKzEsMjI4MzMgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor44GC44GN44KC44GoLOOBsuOCjeOBlw0KK+OBguOBjeOBsCzjgbLjgo3jgZcNCivjgYLjgonjgYQs44KI44GX44Gy44KNDQor44GC44KJ44GELOOBsuOBqOOBlw0KK+OBguOBi+OBjOOCjyzjgYjjgYTjgZgNCivjgYLjgonjgY0s44GN44KI44G/DQor44GC44GE44GL44KPLOOCiOOBl+OBsuOCjQ0KK+OBguOBjeOBrizjgb/jgaHjgYoNCivjgYLjgY3jgoTjgb4s44Gy44KN44GXDQor44GC44GV44GELOOBi+OBmuOBvuOBlQ0KK+OBguOBuSzjgY3jgojjgZ/jgYsNCivjgYLjgorjgYws44Gy44KN44GXDQor44GC44GN44GfLOOBsuOCjeOBlw0KK+OBguOBi+OBpOOBiyzjgajjgosNCivjgYLjgonjgYQs44GL44Ga44GKDQor44GC44GV44Gv44KJLOOBpOOBqOOCgA0KK+OBguOBpOOBvyzjgZHjgpPjgYTjgaENCivjgYLjgo/jgoQs44GL44Ga44KEDQor44GC44GV44GL44KPLOOCiOOBl+OChuOBjQ0KK+OBguOBiuOBjSzjgbLjgo3jgZcNCivjgYLjgo/jgZos44KE44GZ44GKDQor44GC44GN44GP44GVLOOBl+OBkuOCiw0KK+OBguOBiuOChOOBjizjgbLjgafjgYLjgY0NCivjgYLjgZjjgZXjgo8s44GR44KT44GE44GhDQor44GC44GE44GdLOOBqOOBl+OBig0KK+OBguOBiuOBl+OBvizjgZvjgYTjgZQNCivjgYLjgags44Gu44KK44GKDQor44GC44GV44GuLOOChuOBjeOBig0KK+OBguOCiuOBjCzjgaTjgojjgZcNCivjgYLjgYrjgY0s44Gy44Go44GXDQor44GC44GE44GL44KPLOOBvuOCguOCiw0KK+OBguOBjeOBnyzjgaTjgajjgoANCivjgYLjgZXjga4s44KI44GX44Gm44KLDQor44GC44GV44GoLOOBi+OBmuOBsuOBkw0KK+OBguOCieOBjSzjgb7jgZXjga/jgosNCivjgYLjgpPjganjgYYs44GL44Ga44GKDQor44GC44GV44GL44KPLOOBvuOBleOBguOBjQ0KK+OBhOOBhOOBoCzjgbLjgajjgZcNCivjgYTjgo/jgZXjgo8s44Go44GX44GC44GNDQor44GE44GX44GL44KPLOOBiuOBleOCgA0KK+OBhOOBruOBhuOBiCzjgYLjgY3jgokNCivjgYTjgZfjga/jgoks44KI44GZ44GRDQor44GG44GL44GYLOOBr+OBpOOBi+OBmg0KK+OBhuOCgeOBn+OBqyzjgZfjgoXjgbLjgaENCivjgYrjgZHjgZ/jgass44KE44GZ44GXDQor44GK44GZ44GOLOOBoeOCiOOBi+OBmg0KK+OBiuOBi+OCjyzjgb7jgZXjgbLjgZMNCivjgYvjgajjgYYs44KI44GX44KEDQor44GL44KCLOOBneOBsuOBoQ0KK+OBj+OBvuOBjOOBhCzjgorjgofjgbjjgYQNCivjgZPjgpPjgaks44KG44GN44GKDQor44GZ44GO44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBr+OBvuOBleOBjSzjga7jgorjgYLjgY0NCivjgaHjgaAs44Gy44Gn44GXDQor44Gq44GL44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBquOBjOOBnyzjgoTjgZnjgZcNCivjgZXjgo/jgoDjgoks44Gy44KN44GXDQor44Gq44KL44GKLOOBvuOBk+OBqA0KK+OBquOCiuOBnyzjgb7jgZXjgY0NCivjga/jgZvjgYzjgo8s44G+44GV44GKDQor44G144GY44GfLOOBsuOCjeOBsuOBqA0KK+OBteOBmOOCj+OCiSzjgojjgZfjga7jgooNCivjgbbjgogs44GV44Gh44GTDQor44G744KKLOOBi+OBpOOBsuOBkw0KK+OBv+OBquOBv+OCgOOCiSzjgZHjgpPjgZgNCivjgb/jgoTjgZjjgb4s44GC44GN44Gy44KNDQor44KE44G+44GgLOOBv+OBjeOBsuOBkw0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgajjgZcNCivjgoTjgarjgY7jga/jgoks44G+44GV44GC44GNDQor44KI44GX44GuLOOBvuOBleOBlw0KK+OBq+OBhOOBoCzjgYLjgY3jgokNCivjgYrjgbLjgoPjgb4s44GK44GV44KADQor44GL44Gq44GM44KPLOOCiOOBl+OBruOCig0KK+OBjeOCgOOCiSzjgZfjgoXjgpPjgZgNCivjgaTjgYvjgZbjgY0s44GR44GE44GeDQor44GL44KP44GgLOOBoeOBiOOBkw0KK+OBguOBleOBi+OCjyzjgYvjgaHjgZMNCivjgZfjgoLjgaQs44KI44GX44Gu44G2DQor44GK44GLLOOChuOBv+OBkw0KK+OBiuOBjOOCjyzjgbLjgo3jgZMNCivjgZ/jgYTjgoks44GR44GE44GTDQor44GE44GX44GuLOOBn+OBi+OBkw0KK+OBjeOBv+OBl+OBvizjgabjgaTjgYoNCivjgZXjgajjgYYs44GT44GG44GYDQor44KE44G+44GgLOOBoeOBguOBjQ0KK+OBiuOBnyzjgaHjgojjgooNCivjgb7jgYjjgaAs44G+44KKDQor44GL44GW44KJ44GXLOOBn+OBi+OBlw0KK+OBlOOBqCzjgb/jganjgooNCivjgbvjgZcs44GX44KT44GE44GhDQor44GP44KN44GgLOOBj+OBq+OBsuOBkw0KK+OBpOOBi+OCj+OBjSzjgobjgYbjgZMNCivjgYTjgarjgYzjgY0s44GE44Gh44KN44GGDQor44GE44KP44KC44GoLOOCiuOBiOOBkw0KK+OBpOOCi+OBnyzjgb/jgbsNCivjgYTjgZfjgZjjgb4s44Gq44GK44GTDQor44KE44G+44Gq44GLLOOBv+OBleOBkw0KK+OBhuOBiOOBjSzjgb7jgZXjgYLjgY0NCivjgavjgZfjgoDjgoks44Gf44GL44Gy44GoDQor44KP44GE44GgLOOBk+OBmeOBkQ0KK+OCiOOBl+OBoCzjgZfjgofjgbLjgaENCivjgZfjgbbjgoQs44GN44KI44Gq44GMDQor44GC44GoLOOBguOBjeOCiQ0KK+OBv+OChOOBnyzjgabjgaTjgoQNCivjgYrjgZ/jgY0s44GK44GV44KADQor44GN44KI44GK44GLLOOBquOBiuOBv+OBoQ0KK+OBiuOBn+OBqyzjgbLjgafjgajjgZcNCivjgavjgZfjgo/jgY0s44G/44Gk44KLDQor44Gr44GX44KE44G+LOOBi+OBpOOBruOCig0KK+OBv+OBl+OBvizjgb7jgoLjgosNCivjgYvjgajjgYYs44GX44KT44KEDQor44GE44G+44GKLOOBqOOBl+OChA0KK+OBiuOBluOBjSzjgb7jgZXjgbLjgo0NCivjgZvjgY3jgoQs44Gf44KC44GkDQor44Gk44GP44GgLOOBn+OBi+OBlw0KK+OBv+OCiOOBlyzjgorjgofjgbjjgYQNCivjgojjgZfjgb8s44Gy44KN44Go44GXDQor44GV44GV44GK44GLLOOBguOBjeOBkw0KK+OBiuOBl+OBvizjgYLjgaTjgZMNCivjgY/jgbzjgZ8s44Gf44Gg44GXDQor44GX44Gw44KE44G+LOOCi+OBvw0KK+OBiuOBj+OBvCzjgobjgZ/jgYsNCivjgZ/jgaHjga4s44G+44GV44Gu44KKDQor44KP44GgLOOBi+OBiuOCiw0KK+OBvuOBpOOBl+OBnyzjgaTjgY7jgYoNCivjgZPjgoDjgoks44G+44GT44GoDQor44G+44GN44GX44GfLOOBn+OBi+OBlw0KK+OBguOBi+OBiizjgarjgYrjgb8NCivjga/jgZfjgoLjgags44Gf44GL44GXDQor44GK44GuLOOBn+OBi+OChuOBjQ0KK+OBm+OBjeOCguOBqCzjgbLjgo3jgZcNCivjgb7jgYjjgaAs44G/44Ga44G7DQor44G/44Gk44G744KKLOOBk+OBhuOBmA0KK+OBv+OBquOBv+OBnuOBrizjgb7jgZXjgobjgY0NCivjgZvjgYzjgo8s44Gu44G244KG44GNDQor44GZ44Ga44GNLOOBruOBtuOBvuOBlQ0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgobjgY0NCivjgojjgZfjgoTjgZks44Gf44GL44GXDQor44KE44G+44KC44GoLOOBoeOBr+OCiw0KK+OBi+OBqOOBhizjgaHjgZrjgZMNCivjgYvjgo/jgYvjgb8s44GX44KF44GeDQor44G+44GN44GuLOOBqOOBquOBvw0KK+OBmeOBmuOBjSzjgZjjgoXjgpMNCivjgbXjgovjgZXjgo8s44G/44Gh44KIDQor44Gv44KE44GXLOOBvuOBleOCguOCig0KK+OBhOOBvuOBq+OBlyzjgoTjgZnjgbLjgZMNCivjgb/jgoTjgoLjgags44GR44GE44GTDQor44G+44GNLOOChOOBmeOBsuOCjQ0KK+OBk+OBhOOBpyzjgbLjgajjgZcNCivjgo/jgZ/jgarjgbks44GL44Ga44GKDQor44GK44Gv44GXLOOCiOOBl+OBig0KK+OBguOBi+OBiizjgaHjgYvjgokNCivjgYLjgZXjgYQs44Gq44GK44GNDQor44GE44G+44GELOOBvuOBleOBjQ0KK+OBjeOCiSzjgYvjgYrjgooNCivjgavjgZfjgoDjgoks44Go44KI44GYDQor44KI44GX44GL44KPLOOCiOOBl+OBn+OBiw0KK+OBv+OBquOBvyzjgZjjgo0NCivjgaTjgovjgZ8s44G+44KKDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgogNCivjgb7jgaTjgYbjgoks44Gq44GK44GNDQor44GZ44GO44GfLOOBvuOBleOBig0KK+OBi+OCj+OBhCzjgZXjgajjgZcNCivjgZPjgY/jgbws44GY44KH44GYDQor44Gk44GgLOOBqOOBl+OBsuOBkw0KK+OBv+OChOOBn+OBkSzjgobjgYsNCivjgY/jgo3jgZXjgo8s44GP44Gr44GC44GNDQor44GZ44G/44Gy44KJLOOBleOBuw0KK+OBn+OBi+OBjSzjgb7jgZXjgZMNCivjgYTjgZfjgags44Gy44Go44GXDQor44KE44G+44GgLOOBguOBjeOBig0KK+OBq+OBhOOBpCzjgYvjgZrjgZMNCivjgYTjgo/jgoDjgoks44Gf44GL44GXDQor44GL44KP44Gq44G5LOOBvuOBleOBsuOBkw0KK+OBquOBjOOBhCzjgabjgovjgY0NCivjgoTjgb7jga0s44Go44GX44KG44GNDQor44GE44G+44GELOOBkeOCk+OBmA0KK+OBquOBi+OBiizjga7jgorjgYoNCivjgYrjgZfjgY3jgoos44GY44KF44Gr44GhDQor44GE44GX44GL44KPLOOBkeOCk+OBmA0KK+OBiuOBi+OBmOOBvizjgZ/jgZHjgZcNCivjgYrjgavjgZcs44GY44KH44GYDQor44GZ44Ga44GNLOOBqOOBl+OBig0KK+OChOOBvuOBquOBiyzjgZXjgaTjgY0NCivjgZ/jgavjgZDjgaEs44G+44GT44GoDQor44GL44KP44G5LOOBqOOBl+OBn+OBiw0KK+OBk+OCk+OBrizjgojjgZfjgYvjgZoNCivjgZXjgajjgYYs44G+44GV44Gy44GTDQor44Gf44GL44KE44G+LOOBvuOBleOBig0KK+OCguOCiuOBv+OBoSzjgZPjgY0NCivjgbvjgorjgYvjgo8s44KC44Go44GL44GaDQor44G144GP44GELOOBruOBtuOBguOBjQ0KK+OBjeOBn+OCgOOCiSzjgYvjgpPjgZgNCivjgarjgYvjga/jgoks44KI44GX44Gy44KNDQor44GE44Gh44GELOOBsuOCjeOChuOBjQ0KK+OBhOOCj+OBlSzjgaHjgYLjgY0NCivjgZnjgZrjgY0s44Gf44GL44KG44GNDQor44KI44Gt44Gf44GrLOOBhOOBleOBig0KK+OBn+OBrizjgbXjgb/jga/jgosNCivjgZfjgbDjgZ8s44GY44KF44KTDQor44GE44Gu44GG44GILOOBmOOCheOCkw0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjga/jgosNCivjgY3jgZcs44Gm44Gk44GY44KHDQor44GC44KP44GILOOBleOBpOOBvw0KK+OBn+OBkeOBiizjgYvjgZrjgbLjgo0NCivjgY3jga7jgZfjgZ8s44Go44GN44GKDQor44Gk44GL44GgLOOBv+OBjQ0KK+OBguOCiuOBqeOCgSzjgoTjgZnjgbLjgo0NCivjgY3jgaPjgYvjgo8s44GX44KT44GE44GhDQor44GK44GM44GV44KP44KJLOOBhOOBn+OCiw0KK+OBquOBjOOBmyzjgYvjgaTjgb8NCivjga/jgovjgoTjgb4s44Gf44G+44GTDQor44GK44GaLOOBguOBjeOCiQ0KK+OBk+OBleOBiyzjgbLjgo3jgb8NCivjgZfjgonjgZXjgY0s44Gy44Gn44Gu44KKDQor44Gf44Gq44G5LOOBi+OCiOOBkw0KK+OBhOOBkeOBjOOBvyzjgZfjgoXjgpPjgZgNCivjgZPjgbDjgoTjgZcs44GL44Gk44G144G/DQor44G+44Gk44Gw44KJLOOBn+OBkeOBlw0KK+OBquOBi+OBjOOCjyzjgbLjgafjgogNCivjgYrjgYzjgo8s44G+44GV44Gu44KKDQor44KI44GX44GgLOOBqOOBl+OBig0KK+OBhOOBkSzjgb7jgZXjgb8NCivjgZ/jgavjgZDjgaEs44GC44Gk44GXDQor44G+44GI44GgLOOCiOOBl+OBguOBjQ0KK+OBsuOCieOBrizjgYvjgZrjgbLjgZMNCivjgZfjgb/jgZos44G144G/44GC44GNDQor44KE44G+44GgLOOBqOOBl+OChuOBjQ0KK+OBn+OBquOBiyzjgajjgZfjgYLjgY0NCivjgZPjgb7jgaTjgZbjgY0s44Gy44GV44GL44GaDQor44GL44Go44GGLOOBn+OBi+OBsuOCjQ0KK+OBiuOCjyzjgYLjgaTjgbLjgZMNCivjgYTjgo/jgoDjgoks44KE44GZ44GKDQor44GE44KK44GILOOBqOOBl+OBi+OBmg0KK+OBguOBi+OChOOBvizjgajjgosNCivjgYLjgY3jgoLjgags44Gk44Go44KADQor44GL44G/44KA44KJLOOBpOOCiOOBlw0KK+OBmeOBv+OBnyzjgZjjgoXjgavjgaENCivjga/jgb7jgZXjgY0s44Gq44GK44GoDQor44KE44GZ44GgLOOCguOCiuOBsuOCjQ0KK+OBn+OBkeOCgOOCiSzjgZvjgYTjgZgNCivjgoDjgonjgYvjgb8s44G+44GV44Gu44G2DQor44Gq44GL44GY44G+LOOBleOBoOOBruOBtg0KK+OCguOCiuOCguOBqCzjgb7jgZXjgb/jgaENCivjgZvjgY3jgZDjgaEs44Gy44KN44GXDQor44Gq44GL44GY44G+LOOBn+OBi+OChuOBjQ0KK+OBjeOBjOOCjyzjgY3jgb/jgZMNCivjgZ/jgYvjgbLjgoks44GC44GN44Go44GXDQor44KC44Gh44GgLOOBsuOCjeOBguOBjQ0KK+OBi+OCgeOChOOBvizjgb7jgoLjgosNCivjgYrjgoTjgb7jgaAs44G+44GV44GL44GaDQor44Gf44Gq44GLLOOBruOCiuOBkw0KK+OBu+OCk+OBvizjgbLjgo3jgZ/jgaANCivjgY3jga7jgZfjgZ8s44GL44Ga44KG44GNDQor44GX44Gu44Gk44GLLOOBvuOBleOChuOBjQ0KK+OBguOBhOOBr+OCiSzjgbLjgo3jgYLjgY0NCivjgarjgYzjgb7jgaQs44GC44GN44Gy44GTDQor44Go44KI44KA44KJLOOBi+OBiuOCiw0KK+OBsuOCieOBrizjgYLjgaTjgZcNCivjgY3jgoDjgoks44G+44KC44KLDQor44GE44GR44GgLOOBv+OBjeOChA0KK+OBhOOBl+OBr+OCiSzjgajjgb/jgaTjgZANCivjga7jgZDjgaEs44Gy44GV44Go44KCDQor44GT44GR44GkLOOBk+OBhuOBmA0KK+OBiuOBj+OChOOBvizjgZ/jgYvjgobjgY0NCivjga/jgb7jgZDjgaEs44G+44GV44Gy44GTDQor44Gk44GY44GV44GLLOOBsuOCjeOBsuOBlQ0KK+OBhOOBoeOBi+OCjyzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44GC44Gk44GXDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgb7jgZXjgbLjgZUNCivjgZXjgYvjgYzjgb8s44Gm44KL44Gy44GVDQor44GT44GZ44GOLOOBl+OCk+OBmA0KK+OBq+OBl+OBoCzjgoTjgZnjgbLjgZMNCivjgYTjgYTjgaAs44Gu44G244GX44GSDQor44GG44Gh44GgLOOChOOBmeOBteOBvw0KK+OCguOBqOOChOOBvizjgYjjgYTjgZgNCivjgb/jgoTjgoLjgags44G+44GV44GC44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OBlw0KK+OBi+OBqOOBhizjgZjjgoXjgpMNCivjgZfjgonjgYQs44Gb44GE44GYDQor44Gv44GO44KP44KJLOOChuOBhuOBkw0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgosNCivjgb/jgaTjga/jgZcs44G/44Gk44G+44GVDQor44KC44KT44GYLOOBguOBpOOBsuOBkw0KK+OBn+OBjeOCguOBqCzjgZfjgpPjgZgNCivjgYrjgY/jgaAs44Gy44Gn44GC44GNDQor44Gk44GL44KC44GoLOOBleOBqOOCiw0KK+OCgOOBk+OBr+OCiSzjgZvjgYTjgZQNCivjgZXjgovjgoQs44KI44Gy44GhDQor44GK44GL44GY44G+LOOChOOBmeOBlw0KK+OBu+OBl+OBrizjga7jgorjgYvjgZoNCivjgbvjgZcs44Gy44GV44Gy44GTDQor44G144GX44G/LOOBm+OBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgokNCivjgavjgZfjgoTjgb4s44KE44GZ44G/DQor44Gk44KL44G+44GhLOOBoeOBr+OChA0KK+OBqOOBv+OBnyzjgYTjgY/jgogNCivjgYbjgaHjgaAs44KE44GZ44GXDQor44GK44Gf44GLLOOBsuOCjeOChuOBjQ0KK+OBleOBi+OBhCzjgZXjgajjgZcNCivjgZ3jgYzjgbks44GT44GG44GYDQor44KP44GgLOOChuOBjeOBsuOBpw0KK+OBk+OBleOBiyzjgYvjgYrjgooNCivjgYLjgZ0s44KI44Gy44GhDQor44GC44KJ44GELOOBruOCiuOBkw0KK+OBmeOBjuOCgOOCiSzjgZfjgoXjgZgNCivjgYLjgY3jgojjgZcs44GX44KF44GYDQor44GC44GV44GL44KPLOOChOOBmeOBhOOBjw0KK+OCj+OBoCzjgb/jgaHjgYoNCivjgYTjgZHjgaAs44Go44GX44Gy44GTDQor44GK44GL44KC44GoLOOBsuOBleOBqA0KK+OBguOBiuOBjSzjgbLjgo3jgbXjgb8NCivjgYbjgYjjgZXjgo8s44GT44GG44GE44GhDQor44GG44KE44G+LOOBn+OBpOOChA0KK+OBquOBi+OBr+OBvizjgZfjgpPjgZgNCivjgYvjgo/jgoLjgags44GX44KH44Gy44GhDQor44GX44KH44Gy44KD44G+LOOBquOCi+OBqA0KK+OBmeOBiOOBvuOBpCzjgajjgosNCivjgarjgYzjgYQs44KG44GG44GTDQor44Gq44GL44Gv44KJLOOBn+OBi+OBsuOBlQ0KK+OBquOCj+OBnyzjgYvjgaTjgb8NCivjgYvjgaTjgZbjgo8s44GR44KT44GYDQor44KE44G+44GG44GhLOOBvuOBleOBvw0KK+OBguOBi+OBjuOBlyzjgYLjgZHjgb8NCivjgY/jgZXjgZrjgb8s44Go44GX44Gv44KLDQor44G744GL44KKLOOBl+OBkuOBig0KK+OBi+OBqOOBhizjgYvjgZrjgYoNCivjgY3jgorjgYYs44Gk44Go44KADQor44GK44GM44KPLOOBleOBi+OBiA0KK+OBn+OBquOBiyzjgZPjgYbjgYTjgaENCivjgYLjgYTjgoDjgoks44KK44KH44GYDQor44GE44GM44KJ44GXLOOBvuOBleOCiw0KK+OBi+OCj+OCj+OBjSzjgaTjgojjgZcNCivjgb7jgYjjgZXjgYss44Gy44Gn44GC44GNDQor44G+44Gk44GX44G+LOOBmeOBmeOCgA0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgobjgY0NCivjgYvjgZ/jgYQs44Gy44KN44GNDQor44GT44GY44G+LOOBmOOCheOCk+OBmA0KK+OBpOOBmOOCguOBqCzjgZXjgajjgZcNCivjgarjgo/jgZ8s44KG44GeDQor44G144GY44Gf44GrLOOBquOCiuOBguOBjQ0KK+OBjeOBmyzjgbLjgo3jgZcNCivjgZXjgYvjgZDjgaEs44G/44KG44GNDQor44GZ44Ga44GNLOOBpOOCiOOBlw0KK+OBr+OBvuOBleOBjSzjgajjgZfjgbLjgZMNCivjgojjgZfjgaAs44Gy44KN44GXDQor44G744Gj44GfLOOBiuOBleOCgA0KK+OBvuOBmeOBkyzjgbLjgo3jgY0NCivjgZ/jgZHjgarjgYss44G+44GV44GoDQor44GE44GX44GELOOBvuOBleOCiOOBlw0KK+OBn+OBleOBiyzjgaTjgajjgoANCivjgb7jgaTjgaAs44G+44GV44GoDQor44Gv44GfLOOBn+OBi+OBv+OBoQ0KK+OBguOBjeOChOOBvizjgajjgoLjgb/jgaQNCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44KE44G+44GL44KPLOOBsuOBp+OBqA0KK+OCiOOBk+OBoSzjgb7jgZXjgbLjgo0NCivjgojjga3jgZ/jgass44G+44GV44GC44GNDQor44G144GY44GuLOOBqOOCiw0KK+OBr+OBm+OBjOOCjyzjgZXjgajjgZcNCivjgbXjgZjjgZ8s44GL44Ga44Gy44GTDQor44GC44KT44KJ44GPLOOBpuOBpOOCjQ0KK+OBr+OBl+OCguOBqCzjgZjjgoXjgavjgaENCivjgYTjgarjgaAs44Go44GX44KG44GNDQor44KG44GSLOOBvuOBleOBsuOCjQ0KK+OBhOOBvuOBoCzjgbLjgajjgZcNCivjgZXjgYvjgoLjgags44GX44GS44Gy44GoDQor44Go44KI44Gq44GMLOOBsuOBleOBig0KK+OBr+OBl+OCguOBqCzjgZPjgZnjgZENCivjga/jgarjgYQs44Gv44KL44GNDQor44GX44G/44GaLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYvjgZjjgoDjgoks44Gf44GL44GXDQor44GE44GX44GM44GNLOOChuOBn+OBiw0KK+OBr+OBo+OBqOOCiizjgoTjgZnjgbLjgagNCivjgYLjgb7jga4s44GX44KH44GYDQor44G/44GL44G/LOOBvuOBleOBsuOCjQ0KK+OBteOCi+OBpuOCiSzjgY3jgYTjgaHjgo3jgYYNCivjgb7jgb/jgoQs44KG44GZ44GRDQor44Gk44KL44GuLOOBi+OBpOOBqOOBlw0KK+OBguOBleOBhCzjgb7jgZXjgobjgY0NCivjga7jgoDjgoks44G+44GV44GTDQor44KI44GT44KE44G+LOOBruOBtuOChuOBjQ0KK+OBhOOBkeOBoCzjgozjgYTjgZMNCivjgYLjgpPjganjgYYs44G+44GV44KI44GXDQor44GK44GL44KE44GZLOOBhOOBmuOBvw0KK+OBlOOBqCzjgYvjgZrjgbLjgZUNCivjgYvjgo/jgZfjgb4s44KE44GZ44Gy44KNDQor44Gv44GO44KP44KJLOOBpuOBpOOBig0KK+OBguOBn+OCieOBlyzjgojjgZfjga7jgooNCivjgZ/jgYvjgoTjgb4s44Gf44Gk44GKDQor44Gr44GX44KE44G+LOOCiOOBl+OBr+OCiw0KK+OBiOOBoeOBlCzjgojjgZfjgbLjgZMNCivjgoTjgb7jgZbjgY0s44GR44KT44GeDQor44KA44KN44KELOOBvuOBleOBig0KK+OBjeOCgOOCiSzjgorjgocNCivjgarjgYvjga/jgoks44GL44GK44KLDQor44GG44GI44GuLOOBvuOChuOBvw0KK+OCiOOBl+OBoCzjgbLjgafjgY0NCivjgaTjgYvjgoLjgags44KA44Gk44GTDQor44GK44GW44GNLOOChOOBmeOBjQ0KK+OBguOBl+OBi+OCjyzjgZfjgZLjgYoNCivjga3jgY7jgZcs44GX44KT44GYDQor44GN44KF44GuLOOChuOBn+OBiw0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgYTjga7jgYbjgYgs44KE44GZ44GTDQor44GN44GP44Ga44G/LOOBsuOBp+OBguOBjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgZMNCivjga/jgoTjgZcs44GI44KKDQor44G144GP44GK44GYLOOChuOBv+OBkw0KK+OBquOCi+OBmyzjgajjgZfjgbLjgagNCivjgb7jgaTjgoLjgags44Go44GX44KG44GNDQor44KC44KKLOOBl+OCk+OBhOOBoQ0KK+OBv+OBjSzjgojjgZfjgbLjgo0NCivjgarjgYvjgZ/jgass44Gm44Gk44GKDQor44G/44KE44GM44KPLOOChuOBjeOBig0KK+OBguOCiuOCiOOBlyzjgbXjgb/jgYoNCivjgZfjgonjgYQs44Gf44GL44GXDQor44G/44Gq44G/LOOBkeOCk+OBnw0KK+OBqOOCiuOBlOOBiCzjgZ/jgaDjgZcNCivjgZPjgZnjgYws44Go44GK44KLDQor44Gk44GY44GuLOOChOOBmeOBl+OBkg0KK+OBiuOBkOOCiSzjgajjgoLjga7jgooNCivjgYrjgorjgZ8s44GX44KF44Gy44GhDQor44GC44G/44KC44GoLOOCiOOBl+OBsuOBpw0KK+OBiuOBleOBiyzjgYvjgZrjgbLjgZMNCivjga/jgoTjgZcs44G+44GV44KLDQor44G/44Gq44G/LOOBoOOBhOOBleOBjw0KK+OCiOOBl+OBoCzjgZ/jgYvjgYoNCivjgavjgZfjga/jgoks44GL44KT44GYDQor44GK44GP44GM44KPLOOBkeOCk+OBn+OCjeOBhg0KK+OBpOOBmCzjgb7jgZXjgY0NCivjgarjgYvjgYQs44G+44GV44GXDQor44Gr44GX44KA44KJLOOBruOBtuOBig0KK+OBq+OBn+OBquOBhCzjgojjgZfjgYLjgY0NCivjgY/jganjgYYs44G144G/44Gu44KKDQor44GV44GELOOBhOOBj+OBig0KK+OBl+OChyzjgojjgZfjgobjgY0NCivjgYTjga7jgYbjgYgs44G+44GV44KI44GXDQor44Gf44Gr44GQ44GhLOOBteOBmOOBig0KK+OBquOBi+OBq+OBlyzjgZ/jgaDjgZcNCivjgYrjgoLjgoos44GL44Ga44Gy44KNDQor44GP44G+44GM44GELOOChOOBmeOBsuOCjQ0KK+OBhOOBl+OBguOBhCzjgaHjgYvjgZcNCivjga/jgY7jga/jgoks44GY44KF44Gr44GhDQor44Gf44GM44GfLOOBqOOCiw0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgY/jgbws44G/44Gu44KLDQor44GL44Gq44GG44GhLOOBqOOBl+OBsuOBkw0KK+OBq+OBl+OBiizjgojjgZfjgYoNCivjgYTjgarjgaAs44G+44GV44Go44KCDQor44Gf44GR44GE44GhLOOBpuOCi+OChuOBjQ0KK+OBguOCk+OBqeOBhizjgZ/jgYvjgZcNCivjgb7jgaTjgarjgb8s44Gk44GQ44GKDQor44G/44Gq44GP44GhLOOBkeOCk+OBlA0KK+OBi+OBquOBhuOBoSzjgbLjgo3jgZcNCivjgYrjgbLjgoPjgb4s44Gf44GL44GKDQor44G+44GZ44GgLOOBvuOBquOBtg0KK+OChOOBjuOBr+OCiSzjgYvjgYrjgosNCivjgb/jgZrjga4s44Gy44KN44Gf44GtDQor44Gu44G244GP44G/LOOBl+OCk+OBmA0KK+OBquOBoCzjgbLjgo3jgobjgY0NCivjgZ/jgZHjgZ/jgass44Gf44GL44KG44GNDQor44GE44G+44GE44Ga44G/LOOBqOOCiOOBi+OBmg0KK+OBhOOBquOBoCzjgYvjgZrjga7jgooNCivjgYTjgb7jgass44GR44KT44GYDQor44GK44GNLOOBv+OBoeOBig0KK+OBteOBj+OBl+OBvizjgZzjgpPjgZXjgY8NCivjgYTjgYTjgYos44GX44KT44KEDQor44GE44GX44GgLOOBsuOBp+OBjQ0KK+OBsuOCieOBnyzjgbLjgafjga7jgbYNCivjgYTjgZ/jgYzjgY0s44GX44KT44GYDQor44KE44G+44G144GPLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgZfjgofjgbLjgaENCivjgarjgYvjgYzjgo8s44GX44KF44GV44GPDQor44GK44GV44GLLOOBquOBiuOBjQ0KK+OBiuOBhOOBi+OCjyzjga7jgbzjgosNCivjgYvjgZfjgYos44GX44KH44GYDQor44G744GX44GW44GNLOOBqOOBl+OBig0KK+OBm+OBjeOBmOOBvizjgZHjgpPjgZgNCivjgYrjgYvjgb7jgYgs44Go44KLDQor44GV44Go44GGLOOBn+OBi+OBguOBjQ0KK+OBk+OBhOOBpyzjgbXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GE44Gh44KN44GGDQor44GK44GM44KPLOOBhOOBleOBig0KK+OBpuOCieOBl+OBvizjgZ/jgYvjgbXjgb8NCivjgoTjgb7jgZfjgZ8s44G+44GV44Gy44KNDQor44Gu44GbLOOCiOOBmeOBkQ0KK+OBvuOBpOOBvuOBiCzjgbLjgo3jgajjgoINCivjgojjgZfjgZ8s44GL44Gk44KEDQor44KA44KJ44GfLOOBk+OBhuOBmA0KK+OBr+OCiSzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgYbjgaEs44GV44Go44GXDQor44GL44G/44GY44KHLOOBruOCiuOBig0KK+OBmeOBjOOBhCzjgorjgocNCivjgZ/jgYvjga4s44GX44KF44Gy44GhDQor44Go44GT44KNLOOBruOBtuOBguOBjQ0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgZXjgZXjgY0s44GX44GS44GNDQor44Gk44Gu44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBleOBjSzjga7jgorjgbLjgo0NCivjgb/jgYbjgoks44Gf44GL44GXDQor44GK44Gg44GO44KKLOOBn+OBi+OBquOBig0KK+OBr+OChOOBlyzjgZvjgYTjgZgNCivjgajjgb/jgYrjgYss44GT44GG44GE44GhDQor44GE44GQ44GhLOOBn+OBj+OBig0KK+OBk+OCk+OBqSzjgb7jgZXjgYLjgY0NCivjgY/jgbws44Gy44Gn44KG44GNDQor44GP44KJ44Gs44GNLOOBguOChuOBvw0KK+OBqOOBv+OBvuOBpCzjga7jgorjgYLjgY0NCivjgY/jgo3jgYvjgo8s44Go44KLDQor44Gu44GW44KPLOOBruOCiuOBsuOBkw0KK+OBi+OCj+OBleOBjSzjgZHjgpPjgZgNCivjgZ/jgZHjgaAs44GL44Gk44KG44GNDQor44GX44Gu44Gv44KJLOOBn+OBpOOChuOBjQ0KK+OBteOCi+OChCzjgojjgZfjga7jgbYNCivjgarjgYvjgoDjgoks44KI44GX44GX44KNDQor44KE44GY44G+LOOBmeOBmeOCgA0KK+OBq+OBl+OBjOOBjSzjgYLjgaTjgobjgY0NCivjgarjgYvjgYzjgo8s44Gm44Gk44KNDQor44Gy44KJ44KE44G+LOOBpuOBpOOChA0KK+OChOOBvuOBkOOBoSzjgYvjgaTjgb8NCivjgojjgZfjgoDjgoks44GC44Gk44GTDQor44Gk44GgLOOBl+OCk+OBoeOChw0KK+OBi+OBpOOCieOBhCzjgbLjgajjgZcNCivjgb/jgarjgYQs44Gb44GE44GE44GhDQor44Gf44GN44GQ44GhLOOBn+OBi+OBlw0KK+OCj+OBkeOBuSzjgbLjgafjgYoNCivjgavjgZfjgYvjgo8s44GN44KH44GTDQor44GX44KJ44GM44GNLOOBquOBiuOBkw0KK+OBsOOBsCzjgb7jgZXjgYLjgY0NCivjgYLjgYvjgoos44GZ44G/44GKDQor44GC44G5LOOBj+OBq+OBguOBjQ0KK+OBi+OBhCzjgYvjgaTjgoQNCivjgYrjgoLjgoos44GC44GN44Gy44KNDQor44GZ44Ga44GNLOOBl+OBkuOCiw0KK+OBquOBjOOBleOCjyzjgZXjgajjgosNCivjgZXjgo/jgaAs44Go44KLDQor44GC44Ga44G+LOOBjeOCiOOBlw0KK+OBiuOBrizjgZ0NCivjgYvjgo/jgavjgZcs44GX44KF44Gr44GhDQor44G+44Gq44G5LOOCgOOBpOOBsuOCjQ0KK+OBguOCiuOChOOBvizjgobjgYbjgZgNCivjgavjgZfjgYvjgo8s44Gf44GL44KG44GNDQor44GC44Gk44G/LOOCj+OBn+OCiw0KK+OBhOOBqOOBhizjgajjgZfjgYvjgZoNCivjgbLjgo3jgZ8s44GL44Ga44GKDQor44G744GL44Ge44GuLOOCiOOBl+OBsuOCjQ0KK+OBu+OBl+OBrizjgb7jgZXjgoQNCivjgoTjgb7jgZDjgaEs44Gy44KN44GC44GNDQor44GC44GM44GfLOOBvuOBleOBi+OBmg0KK+OBvuOCi+OBiizjgorjgofjgZgNCivjgZPjgYTjgacs44Gf44GP44KEDQor44GL44G/44KA44KJLOOBj+OBq+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgYvjgaQNCivjgbXjgY/jgb/jgaQs44Gf44GL44GXDQor44Gy44KJ44KE44G+LOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgYjjgb/jgZMNCivjgYTjgZHjgYos44Gu44G244KG44GNDQor44G144KL44GL44KPLOOBsuOBp+OBjQ0KK+OBhOOBhOOBoCzjga7jgbbjgbLjgacNCivjgb/jgoTjgZbjgY0s44GL44Ga44Gy44KNDQor44KI44GX44GgLOOChuOBhuOBmA0KK+OBjeOBj+OBnyzjgY3jgojjgZcNCivjgaHjgbAs44GX44KF44GYDQor44Go44KK44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBiOOBluOCjyzjgajjgZfjgoQNCivjgYrjgbAs44GL44Ga44GoDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBq+OBl+OBi+OCjyzjgb7jgZPjgagNCivjgYjjgpPjgaks44GT44GG44GYDQor44G144GP44GELOOCiOOBl+OChuOBjQ0KK+OBr+OBvuOBrizjgbLjgo3jgYLjgY0NCivjgY3jgZ/jga/jgoks44G+44GV44Gy44GnDQor44GV44Go44GGLOOBquOBiuOBjQ0KK+OBvuOBpOOBiizjgYLjgaTjgZcNCivjgajjgojjgZ8s44Gy44GL44KLDQor44Gy44KJ44KC44GoLOOBpuOBpOOChA0KK+OChOOBvuOCguOBqCzjgb/jga7jgosNCivjga/jgb7jgaAs44GY44KF44Gr44GhDQor44GE44KP44GL44G/LOOBsuOCjeOBguOBjQ0KK+OBj+OBvCzjgoLjgajjgbLjgo0NCivjgYjjgpPjgaks44KE44GZ44KG44GNDQor44GL44GS44KE44G+LOOBiOOCiuOBkw0KK+OBq+OBhOOChCzjgabjgaTjgYoNCivjgZPjgaEs44KK44Gk44GKDQor44GC44Gg44GhLOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBr+OChOOBlyzjgojjgZfjgZ/jgb8NCivjgarjgYvjga4s44GK44GV44KADQor44GE44GX44Gv44G+LOOBvuOBleOBruOBtg0KK+OBk+OBj+OBvCzjgb7jgZXjga/jgosNCivjgYvjgo/jga4s44GK44GV44KADQor44Gq44GL44GY44G+LOOCiOOBhOOBoQ0KK+OBn+OBhOOCiSzjgZHjgpPjgZjjgocNCivjgZ/jgZHjgY4s44KG44GN44Gy44KNDQor44KC44KK44GX44G+LOOBvuOBleOBteOBvw0KK+OBquOBi+OCgOOCiSzjgbLjgafjgoQNCivjga7jgZDjgaEs44Go44GX44Gy44GnDQor44GC44KJ44GNLOOBk+OBhuOBn+OCjeOBhg0KK+OBguOCiSzjgb7jgobjgb8NCivjgYTjgajjgYYs44G/44Gu44KLDQor44Gv44KE44GV44GLLOOBpuOBpOOBig0KK+OBk+OBpOOBiyzjgYvjgZrjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44G+44GV44Gu44KKDQor44GE44KP44GfLOOBqOOCguOChuOBjQ0KK+OBvuOBiOOBoCzjgobjgZnjgZENCivjgbvjgZ3jgYvjgo8s44GX44GS44KG44GNDQor44GC44KJ44GELOOBl+OCheOCk+OBmA0KK+OBiuOBj+OCiSzjgb7jgZPjgagNCivjgZ/jgZHjgZPjgZcs44G+44GV44Gy44KNDQor44KE44G+44GQ44GhLOOCiuOCheOBsuOBoQ0KK+OBl+OBv+OBmizjga/jgZjjgoENCivjgYTjgajjgYYs44Gu44KK44Gy44GTDQor44GE44Ga44G/LOOBpOOCiOOBlw0KK+OBlOOBqCzjgorjgaTjgYoNCivjgYrjgaTjgbws44Go44KC44GTDQor44GL44G/44GT44GM44KPLOOBsuOCjeOBguOBjQ0KK+OBn+OBkeOBhCzjgbLjgo3jgY0NCivjgb/jgoTjga/jgoks44KE44GZ44Gm44KLDQor44GC44KP44GYLOOBsuOCjeOBlw0KK+OBhuOBl+OCjeOBoCzjgarjgYrjgZMNCivjgoLjgorjgYTjgZrjgb8s44G144Go44GXDQor44Gq44GM44GuLOOBvuOBleOBi+OBmg0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgbXjgYvjgYgs44Gf44GL44GXDQor44G144KL44KELOOCiOOBl+OBig0KK+OBv+OBmuOBsuOBjSzjgb7jgZXjgbLjgo0NCivjgY/jgbws44KE44GZ44Gy44KNDQor44Gf44GQ44GhLOOBi+OCk+OBmA0KK+OBquOBi+OBiizjgYLjgaTjgZcNCivjgoTjgb7jgZfjgZ8s44GR44KT44GYDQor44GP44KN44GNLOOBi+OBpOOBqOOBlw0KK+OBvuOBpOOBoCzjgojjgZfjgaTjgZANCivjgYrjgaDjgZjjgb4s44GL44Gt44G/44GkDQor44G744KKLOOBneOBhuOBn+OCjeOBhg0KK+OBn+OBq+OBkOOBoSzjgYvjgZrjgb8NCivjgYLjgonjgYQs44GX44KT44GE44GhDQor44GU44GoLOOBleOBqOOBkw0KK+OBqOOBreOBjOOCjyzjgb7jgZXjgZcNCivjgoLjgorjgZ8s44GC44Gk44GKDQor44G144KL44GL44KPLOOBi+OBiuOCiw0KK+OChuOBjSzjga/jgZjjgoENCivjgZfjgonjgYTjgZcs44GC44Gk44GXDQor44GE44GR44KELOOCgOOBreOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgZ/jgavjgZDjgaEs44G/44GV44GKDQor44G+44GZ44GgLOOCiOOBl+OBig0KK+OBv+OBmuOBkOOBoSzjgb/jgaTjgojjgZcNCivjga/jgoTjgb/jgZos44G144G/44GC44GNDQor44G744GL44KKLOOBpOOBjuOBqA0KK+OBhOOBl+OBhCzjgobjgbLjgaENCivjgZfjgonjgYTjgZcs44GX44KH44GUDQor44GX44KC44GL44KP44KJLOOBkeOCk+OBhOOBoQ0KK+OCguOCiuOCguOBqCzjgarjgbvjgb8NCivjgYTjgajjgYYs44KG44GN44GKDQor44GK44Gy44KDLOOBpOOBreOChOOBmQ0KK+OBv+OCiOOBlyzjgajjgZfjga7jgooNCivjgZfjgbDjgZ8s44Gm44Gk44GYDQor44Gf44KT44GW44KTLOOBruOCiuOChuOBjQ0KK+OBhOOCj+OBleOBjSzjgZ/jgYvjgZMNCivjgbXjgY/jgYQs44GX44GS44GKDQor44KC44KK44Gw44KE44GXLOOCiOOBl+OBruOCig0KK+OChOOBvuOBoCzjgZ/jgYvjgbLjgo0NCivjgbXjgZjjgo/jgoks44GV44Gh44GTDQor44Gq44Gk44KBLOOBn+OBpOOBiuOBjQ0KK+OBl+OBruOBr+OCiSzjgZPjgYbjgYTjgaENCivjgYrjgZXjgaAs44GX44Gu44G2DQor44G144GY44Gv44KJLOOBmOOCjQ0KK+OBteOBmOOCguOBqCzjgobjgb8NCivjgY3jga4s44GC44GN44Gy44GTDQor44KE44G+44KC44GoLOOBruOCiuOBsuOBkw0KK+OBhOOBl+OBmOOBvizjgb7jgZXjgbLjgZMNCivjgYTjgYws44GX44GS44Gy44KNDQor44Gq44GL44GILOOBqOOCguOBkw0KK+OChOOBrizjgbLjgo3jgZcNCivjgYvjgarjgb/jgaQs44GR44GE44GYDQor44GZ44Ga44GNLOOBv+OBruOCiw0KK+OBn+OBi+OBoCzjga7jgorjgbLjgo0NCivjgYTjgZfjgbDjgZcs44Go44KC44Gy44GTDQor44GK44Gk44G8LOOBsuOBp+OBi+OBmg0KK+OBmeOBjizjgZXjgajjgZcNCivjga/jgoTjgZfjgZDjgaEs44GL44Ga44KEDQor44Gm44KJ44GX44GfLOOBsuOBp+OBvw0KK+OBl+OCguOChOOBvizjgZXjgajjgZcNCivjgb/jgoTjgZbjgY0s44KE44GZ44GoDQor44KC44KKLOOBsuOCjeOBlw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgZcNCivjgafjgYLjgYQs44Gf44GR44Gy44GoDQor44G744KKLOOBsuOCjeOBvw0KK+OBguOBreOBluOBjSzjgojjgZfjgYoNCivjgY/jgbzjgZ8s44KC44Go44GNDQor44GU44GY44KHLOOCguOCiuOBsuOCjQ0KK+OBsuOBjeOBoCzjgYLjgY3jgokNCivjgZXjgYvjgZDjgaEs44Gg44GE44GYDQor44KI44GX44GELOOChuOBhuOBmA0KK+OBjeOBn+OBr+OCiSzjgYrjgZXjgoANCivjgbXjgZjjgYQs44Gm44KL44GKDQor44Gq44KB44GNLOOCiuOCh+OBkw0KK+OCiOOBl+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgZ/jgoDjgoks44G/44Gk44Gv44KLDQor44GG44G/44GuLOOBn+OBi+OBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjgojjgZfjgoLjgags44GL44Ga44GKDQor44Gt44KC44GoLOOCiOOBl+OBteOBvw0KK+OBv+OChOOBluOBjSzjgb/jgaTjgosNCivjgZ/jgYvjgoLjgoos44KE44GZ44Gy44KNDQor44GP44G+44GM44GELOOBsuOBqOOBlw0KK+OBlOOBoCzjgY3jgojjgbLjgo0NCivjga/jgZ8s44Go44GX44KG44GNDQor44GP44Ga44G/LOOBi+OBmuOBig0KK+OBquOBpOOBhCzjgZ/jgYvjgbLjgo0NCivjgZfjgb7jgaAs44G+44GV44Go44GXDQor44GK44Gk44GNLOOBsuOCjeOBlw0KK+OBvuOBv+OChCzjga7jgorjgYLjgY0NCivjgZXjgajjgYYs44Gf44GL44GXDQor44GT44Gw44KKLOOBi+OBpOOBqA0KK+OBleOBleOBjSzjgb/jganjgooNCivjgYvjga3jgZMs44KE44GZ44GTDQor44GK44GuLOOBqOOBl+OBig0KK+OBiuOBsuOCg+OBvizjgaDjgYTjgZnjgZENCivjgb7jgajjgbAs44Gy44KN44GXDQor44GE44Gf44GP44KJLOOBsuOCjeOBlw0KK+OBiuOBoOOBl+OBvizjgZ/jgZHjgZcNCivjgZfjgYTjgY0s44KI44GX44G144G/DQor44GX44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBi+OBpOOCiSzjgaHjgYjjgZMNCivjgYLjgonjgYQs44GP44Gr44GKDQor44GV44GE44Go44GGLOOBk+OBhuOBn+OCjeOBhg0KK+OBvuOBpOOCguOBqCzjgZPjgYbjgYTjgaENCivjgYbjgYjjgoTjgb4s44GV44Gh44GTDQor44G+44GuLOOBhOOBj+OBig0KK+OBv+OBleOBiizjgbLjgafjgYoNCivjgZ3jga7jgbks44GL44Ga44Gy44KNDQor44GZ44Ga44GNLOOBsuOCjeOBi+OBmg0KK+OChOOBn+OBqyzjgZHjgpPjgZgNCivjgoDjgZ8s44Gy44Gn44KG44GNDQor44G+44KL44KE44G+LOOChOOBmeOChuOBjQ0KK+OBteOBoCzjgb7jgZXjgY0NCivjgZPjgbDjgoTjgZcs44Go44GK44KLDQor44KP44Gf44Gq44G5LOOCiOOBl+OBiA0KK+OBiuOBoCzjgb7jgZXjga/jgosNCivjgYrjgbXjgaEs44GY44KF44Gr44GhDQor44Gf44Gq44GLLOOBi+OBpOOCjQ0KK+OBleOCj+OBjSzjga7jgorjgZMNCivjgZXjgYTjgajjgYYs44GL44Ga44Gy44KNDQor44Gv44GO44GuLOOBoeOBi+OBkw0KK+OBhuOBl+OChOOBvizjgojjgZfjga7jgooNCivjgYrjgY/jgbLjgoks44Gk44KI44GXDQor44KI44GX44GE44GRLOOBvuOBleOBruOCig0KK+OBk+OCk+OBrizjgb/jgaTjgarjgooNCivjga7jgaAs44GX44KT44GE44GhDQor44GI44KT44GpLOOBquOBiuOBjQ0KK+OBmeOBmuOBjSzjgY3jgb/jgobjgY0NCivjgZ/jgarjgYss44GC44GN44GKDQor44GN44GpLOOBjeOCh+OBkw0KK+OBhOOBqOOBhizjgb7jgarjgbYNCivjgbXjgZjjgo/jgoks44G144G/44GC44GNDQor44Gv44Gb44GM44KPLOOBn+OBi+OCiOOBlw0KK+OBvuOBmeOCguOBqCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgYvjgYQs44GL44GK44KLDQor44Gf44GL44Gv44GfLOOBvuOBk+OBqA0KK+OBsuOBp+OBl+OBvizjgb7jgZXjgYoNCivjgZ/jgYvjgoTjgb4s44GX44GS44GKDQor44G/44KE44GNLOOBvuOBleOBlw0KK+OBteOBmyzjgbLjgo3jgZcNCivjgoLjgoLjgYQs44Gu44G844KLDQor44Gk44KG44GNLOOBn+OBi+OBlw0KK+OBi+OCj+OBr+OCiSzjga7jgbbjgbLjgo0NCivjgb7jgaTjgYQs44GV44Gq44GIDQor44Gv44Gq44KPLOOChuOBhuOBkw0KK+OBsuOCj+OBoCzjgajjgZfjgYoNCivjgb7jgZnjgYQs44Go44GX44KG44GNDQor44GL44Go44GGLOOBv+OBpOOBig0KK+OBn+OBkeOBvizjgojjgZfjgbLjgo0NCivjgZfjgonjgYTjgZcs44GR44GE44GYDQor44G144KL44GL44KPLOOBvuOBleOBruOBtg0KK+OBpuOBmOOBvizjgajjgZfjga/jgosNCivjgYLjgY3jgoLjgags44GC44GN44KJDQor44GZ44GO44KE44G+LOOBkeOBhOOBmA0KK+OBquOCk+OBtizjgbLjgajjgZcNCivjgaTjgZjjga4s44Go44KC44GTDQor44Gm44KJ44GV44GLLOOBi+OBmuOBruOCig0KK+OBleOBi+OBhCzjgZfjgZLjgY0NCivjgY/jgbws44KG44Gf44GLDQor44G+44KL44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgoTjgZkNCivjgb7jgaTjgYbjgoks44G/44Gk44GQDQor44Gf44Gq44GLLOOBl+OBkuOCiw0KK+OChuOBluOCjyzjgYLjgY3jgbLjgo0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44KNDQor44GK44GwLOOBpuOBpOOChA0KK+OBvuOBiOOBi+OCjyzjgZ/jgYvjgZcNCivjgavjgo8s44Gf44Gg44Gk44GQDQor44GL44KP44KA44KJLOOBteOBv+OBig0KK+OBk+OBhOOBkSzjgojjgZfjgYoNCivjgY/jgorjgZfjgZ8s44GX44KH44GE44GhDQor44Gy44KN44GbLOOBguOBjeOCiQ0KK+OBk+OBrizjgZXjgajjgZcNCivjga/jgZvjgYzjgo8s44Gy44KN44GC44GNDQor44GE44Go44GGLOOChuOBjeOBsuOCjQ0KK+OBjeOBluOBjSzjgZHjgpMNCivjgYjjgarjgb8s44GE44Gj44GX44KTDQor44Gk44GL44Gq44GLLOOBsuOBp+OBguOBjQ0KK+OBleOBi+OCguOBqCzjgYLjgaTjgZcNCivjgb7jgaTjgbDjgoks44G+44GV44KEDQor44Gm44KJ44GELOOBv+OBruOCiw0KK+OBiuOBl+OBnyzjgZfjgpPjgoQNCivjgZ/jgarjgYss44Gb44KT44GYDQor44KE44G+44KC44GoLOOBn+OBi+OBguOBjQ0KK+OBhOOBl+OBkOOCjSzjgYvjgZrjgoQNCivjga/jgZfjgoLjgags44GX44KT44GUDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgbXjgovjgYvjgo8s44G+44GV44GNDQor44KE44G+44GgLOOBi+OBmuOBiA0KK+OBhOOBj+OBnyzjgajjgZfjgobjgY0NCivjgZXjgajjgYYs44GK44GV44KADQor44KP44Gf44Gq44G5LOOBn+OBj+OChA0KK+OBi+OBkyzjgbLjgo3jgbLjgZMNCivjgb7jgZnjgaAs44Gy44KN44GXDQor44GL44G/44GYLOOBguOBpOOBlw0KK+OBhOOBr+OCiSzjga7jgorjgYLjgY0NCivjgYLjgZXjgb8s44G144G/44GC44GNDQor44Gq44GL44GY44G+LOOBsuOCjeOBvw0KK+OBk+OBn+OBjSzjgbLjgafjgYoNCivjgYvjgo/jgoLjgags44GX44GS44GC44GNDQor44GL44KP44GX44G+LOOBn+OBi+OCiOOBlw0KK+OBguOBmuOBvizjgojjgZfjgYLjgY0NCivjgarjgYvjga4s44G+44Gq44G2DQor44Gy44KJ44GuLOOCiOOBl+OBqA0KK+OBn+OBi+OBr+OBlyzjgZnjgb/jgZMNCivjgbXjgYvjgoQs44KE44GZ44Gy44KNDQor44GK44GwLOOBqOOBiuOCiw0KK+OBleOBj+OCieOBhCzjgajjgZfjga7jgbYNCivjgZXjgYvjgYQs44Gy44KN44GoDQor44GC44GK44GNLOOBl+OCh+OBkw0KK+OCiOOBl+OBoCzjgobjgbLjgaENCivjgZPjga/jgZcs44GL44Ga44Gy44KNDQor44G+44Gk44GG44KJLOOBn+OBpOOBmA0KK+OBleOBqOOBhizjgbLjgo3jga7jgooNCivjgavjgZfjgY3jgYrjgoos44Gf44GL44KG44GNDQor44G/44KI44GXLOOBi+OBmuOBsuOCjQ0KK+OBk+OBmeOBjizjgYvjgZrjgbLjgo0NCivjgZXjgajjgYYs44Gf44GL44GXDQor44G144GY44GELOOBpuOBpOOChA0KK+OBteOBquOBoCzjgYjjgYTjgYTjgaENCivjgZnjgY7jgZ8s44GL44Ga44Gy44GTDQor44GX44KH44GgLOOCiuOCheOBmA0KK+OCguOCiuOBl+OBnyzjgZfjgoXjgYTjgaENCivjgbLjgoks44GV44Go44GXDQor44GX44KT44Gf44GPLOOBvuOBleOCiw0KK+OBsuOBjOOBl+OBoCzjgoLjgoLjgY0NCivjgY/jgorjgZ8s44Gf44GR44GXDQor44GE44Gq44GgLOOBsuOCjeOBguOBjQ0KK+OBq+OBl+OBrizjgYTjgaPjgZvjgYQNCivjgYTjgZHjgZjjgoos44Gf44GP44GKDQor44Gq44GL44KA44KJLOOChOOBmeOBlw0KK+OBquOBi+OBi+OBqSzjgb7jgZXjga7jgooNCivjgYTjga7jgb7jgZ8s44Gm44Gj44G644GEDQor44Gk44KL44G/LOOBiuOBleOCgA0KK+OBsuOCieOCguOBqCzjgajjgoLjgZMNCivjgb/jgojjgZcs44KI44GX44Gy44GVDQor44GC44KP44GuLOOBpOOBi+OBlQ0KK+OBguOBjeOBnyzjgZ/jgYvjgYTjgaENCivjgbLjgYzjgZfjgoTjgb4s44KI44GX44Gy44KNDQor44GV44Go44GGLOOBi+OBmuOBsuOBkw0KK+OBi+OCj+OBleOBjSzjgajjgYrjgosNCivjgb7jgovjgoTjgb4s44GL44Ga44Gy44KNDQor44GZ44Gq44GMLOOBqOOBl+OBig0KK+OBhOOBvuOBhCzjgbLjgajjgZcNCivjgbXjgZjjgYQs44Gy44KN44KG44GNDQor44G+44GN44GfLOOBqOOBl+OChuOBjQ0KK+OBhOOBqOOBhizjgb7jgZXjgojjgZcNCivjgZ/jgYvjga/jgZcs44KG44GV44GPDQor44GN44KK44G+LOOBqOOBl+OChA0KK+OBiuOBq+OBlyzjga7jgorjgYLjgY0NCivjgb/jga7jgZfjgb4s44Gq44GK44Gy44KNDQor44GV44Go44GGLOOCiOOBsuOBoQ0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgb/jgZ/jgoDjgoks44Gy44KN44KI44GXDQor44GV44Go44GGLOOBl+OBkuOBjQ0KK+OBqOOBvuOBpCzjgbXjgb/jgYLjgY0NCivjgYjjgbPjgZfjgb4s44Gf44GL44GXDQor44KP44GgLOOCiOOBl+OBiA0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgZnjgYzjga/jgoks44Gy44KN44G/DQor44Gf44GQ44GhLOOBkeOBhOOBhOOBoQ0KK+OBqOOBjOOBlyzjga/jgaTjgYoNCivjgarjgYzjga/jgoks44Gy44Gn44GNDQor44KE44G+44KC44GoLOOBn+OBv+OBkw0KK+OBn+OBkeOBoCzjgobjgY3jgYoNCivjgZXjgajjgYYs44G/44Gk44GKDQor44Gf44GL44G/44KELOOBn+OBpOOBlw0KK+OBguOBiuOBjSzjgorjgoXjgbLjgaENCivjgZPjgoTjgY4s44GX44KT44GYDQor44GK44Gu44GW44GNLOOBqOOCguOChuOBjQ0KK+OCguOCiuOBnyzjgZ/jgZHjgbLjgagNCivjgZXjgY/jgonjgY4s44GL44Ga44Gf44GLDQor44GK44GL44GV44GLLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgb7jgobjgb8NCivjgYvjgo/jgZfjgb4s44GX44GS44KLDQor44GE44KP44GuLOOBn+OBvuOBvw0KK+OBlOOBkyzjgoTjgZnjgobjgY0NCivjgoLjgorjgZ8s44GL44Ga44KEDQor44GX44GS44Gf44GLLOOBjeOCiOOBn+OBiw0KK+OBpuOBmuOBiyzjgb/jgaTjgosNCivjgYrjgZ8s44Gy44KN44KADQor44KE44G+44GgLOOBvuOBleOBsuOBkw0KK+OBteOBi+OBoCzjgZXjgajjgosNCivjga/jgZvjgbks44GR44GE44GTDQor44G+44Gk44GuLOOBvuOBleOChuOBjQ0KK+OBpOOBmOOBi+OCjyzjgb/jga7jgosNCivjgb7jgaTjgoLjgags44Gy44Gn44Gu44G2DQor44Gb44Gu44GKLOOBn+OBi+OBsuOCjQ0KK+OBruOCgOOCiSzjgZnjgb/jgZ/jgYsNCivjgYLjgonjgYQs44KK44KH44GZ44GRDQor44GK44GQ44KKLOOBruOCiuOBkw0KK+OBmOOCk+OBrizjgobjgb/jgZMNCivjgbLjgo3jgZrjgb8s44Gy44KN44Gu44KKDQor44G+44Gk44GELOOBk+OBmeOBkQ0KK+OBl+OBsOOBluOBjSzjgojjgZfjga7jgooNCivjgYTjga7jgYbjgYgs44GL44Ga44Gu44KKDQor44Gf44Gq44GLLOOChOOBmeOBr+OCiw0KK+OBleOBnSzjgoTjgZnjgZgNCivjgZfjgonjga/jgb4s44Gq44GK44GNDQor44Gf44Gq44GLLOOBiOOBhOOBleOBjw0KK+OBquOBi+OCgOOCiSzjgaTjgojjgZcNCivjgYTjgZfjgYzjgb8s44G+44GV44Gv44KLDQor44GX44Gw44GfLOOBsuOBleOChuOBjQ0KK+OBruOBkOOBoSzjgoLjgajjgYLjgY0NCivjgYTjgaHjgbAs44GC44Gk44GXDQor44GL44KP44GQ44GhLOOBkeOCk+OBhOOBoeOCjQ0KK+OCiOOBl+OBvyzjgYvjgaTjgb8NCivjgbXjgZjjgYvjgo8s44Gv44GY44KBDQor44GL44Go44GGLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgajjgojjgZfjgZINCivjgbXjgZjjgZXjgo8s44GZ44G/44GIDQor44G/44Ga44Gf44GrLOOBvuOBleOBsuOCjQ0KK+OBm+OBjeOBkOOBoSzjgb/jga7jgosNCivjgb7jgYjjgYvjgo8s44GZ44GZ44KADQor44GC44KJ44GELOOBguOBpOOBlw0KK+OCguOCiizjgbLjgafjgYoNCivjgZXjgajjgYYs44Gy44Gn44GL44GaDQor44GP44KP44GfLOOBquOBiuOBteOBvw0KK+OBiuOBkOOCiizjgYLjgY3jgbLjgZMNCivjgbLjgonjgYQs44Gq44GK44GNDQor44Gr44GX44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBiuOBj+OCiSzjgojjgZfjgYLjgY0NCivjgZ3jga7jgbks44Gm44Gj44G644GEDQor44GE44GE44GgLOOBguOChuOBvw0KK+OBk+OBkOOBoSzjgZPjgYbjgZgNCivjgoLjgo3jgbvjgZcs44Gy44Gn44GTDQor44Gv44G+44GgLOOBsuOBp+OBvw0KK+OBi+OBquOBluOCjyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgbAs44Gk44KI44GXDQor44GE44KP44GfLOOBhOOBleOCgA0KK+OBguOBmuOBoSzjgYvjgZrjgYoNCivjgZPjgpPjgaks44Go44KC44G144G/DQor44Gf44GL44Gv44GXLOOCiOOBl+OCjQ0KK+OBguOBvuOBrizjgoDjgaTjgb8NCivjgYvjgZ/jgaAs44KK44KF44GYDQor44Gf44KB44Gy44KNLOOBkeOBhOOBn+OCjeOBhg0KK+OBvuOBpOOBoCzjgarjgYrjgZMNCivjgarjgorjgYTjgZcs44GX44KH44Gy44GhDQor44GK44GN44GfLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgYvjgaTjgbLjgZMNCivjgZnjgZrjgY0s44G144G/44Go44GXDQor44G+44KT44G9LOOBsuOBleOBruOCig0KK+OBhOOBoeOBhCzjgYLjgY3jgZMNCivjgZPjgYTjgacs44KE44GZ44GC44GNDQor44Gf44GL44Gv44GXLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBquOBi+OBjOOCjyzjgbLjgafjgYvjgZoNCivjgYrjga/jgb4s44Gu44KK44GL44GkDQor44Gf44GL44Gv44GfLOOBi+OBmuOChuOBjQ0KK+OBk+OBkOOBoSzjgZfjgZLjgosNCivjgb/jgoTjgYzjgo8s44Gy44Gn44Go44GXDQor44GX44Gw44KE44G+LOOBvuOBleOCiw0KK+OBguOCieOBhCzjgYTjgZXjgYoNCivjgo/jgZ/jgarjgbks44KI44GX44GKDQor44Gq44GL44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBteOCi+OBr+OBnyzjgYrjgZXjgoANCivjgZ/jgavjgZDjgaEs44KC44Go44GTDQor44G744KT44GgLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgoTjgZnjgojjgZcNCivjgZ/jgYvjgY0s44KC44KK44G/44GhDQor44GN44GP44GhLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgobjgYbjgZgNCivjga/jgoks44GL44Gk44G/DQor44KE44G+44KC44GoLOOBkeOCk+OBmA0KK+OCgOOCieOBi+OBvyzjgajjgoLjgZMNCivjgbDjgbAs44Gq44GK44GTDQor44Gv44Gb44GM44KPLOOBi+OBmuOBig0KK+OBleOBleOBjSzjgZ/jgYvjgZcNCivjgYLjgaTjgZ8s44Gy44KN44G/DQor44Gf44Gh44GL44KPLOOBn+OBi+OBlw0KK+OBsuOCieOCguOBqCzjgYvjgZrjgoQNCivjgarjgYvjgoDjgoks44Gv44GY44KBDQor44Gk44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgZnjgZnjgoANCivjgojjgZPjgoTjgb4s44KG44Gf44GLDQor44GT44Gf44GRLOOBvuOBleOBquOCig0KK+OBguOCk+OCieOBjyzjgarjgYrjgZnjgZENCivjgb/jgZrjga4s44GZ44GZ44KADQor44GK44Gs44GNLOOBguOBjeOBsuOCjQ0KK+OBleOBi+OBhCzjga/jgovjgb/jgaQNCivjgYrjgZ8s44GX44KT44KEDQor44Gv44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgb7jgZXjgYoNCivjgZ/jgarjgYss44Gf44GL44Gy44KNDQor44Gv44KL44Gv44KJLOOBqOOCguOChOOBmQ0KK+OBiuOBpOOBiyzjgb7jgZXjgbLjgZMNCivjgY3jgZ/jgYzjgo8s44Go44GX44Gy44GTDQor44KI44GT44GfLOOBguOBjeOBteOBvw0KK+OCiOOBl+OCgOOCiSzjgbLjgajjgb8NCivjgYrjgbLjgoks44Gy44KN44Gk44GQDQor44Gh44KD44GNLOOBsuOBp+OBguOBjQ0KK+OBleOBi+OBkOOBoSzjgajjgZfjgoQNCivjgZnjgZrjgY0s44Gf44GL44GKDQor44Gh44GL44GW44KPLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OBmOOBvizjgb/jga7jgosNCivjgo/jgZ/jgarjgbks44G/44Gk44GKDQor44GX44GwLOOBn+OBi+OBlw0KK+OBleOBi+OBhCzjgZfjgpPjgYTjgaENCivjgoTjgb7jgb/jgZXjgYss44GC44GN44KJDQor44KI44GX44GM44G/LOOBr+OBmOOCgQ0KK+OBsuOCieOBpizjgZfjgofjgZ4NCivjgo/jgY/jgZfjgb4s44Gu44KK44GKDQor44GC44GV44G+LOOBguOBjeOBsuOCjQ0KK+OBguOBmuOBvyzjga7jgorjgZMNCivjgYTjgarjgYrjgYss44Go44GUDQor44GV44Gq44GELOOBvuOBleOChuOBjQ0KK+OChOOBvuOBhuOBoSzjgbLjgafjgb8NCivjgYTjga/jgoks44GL44Gj44G644GEDQor44Gf44KE44G+LOOBguOBpOOBkw0KK+OBleOBleOBjSzjgZfjgpPjgYTjgaENCivjgbXjgZjjgYbjgaEs44GX44GS44Gy44GnDQor44GG44GX44GY44G+LOOBk+OBhuOBhOOBoQ0KK+OBruOBruOCgOOCiSzjgYLjgY3jgbLjgo0NCivjgavjgZcs44G+44KG44G/DQor44GE44GR44GgLOOBvuOBleOBruOCig0KK+OBmeOBjuOBn+OBqyzjgZ/jgaDjgYoNCivjgYrjgZbjgY0s44GY44KF44KT44GTDQor44GT44GR44GkLOOBoeOBr+OCiw0KK+OBleOBqOOBhizjgabjgaTjgYoNCivjgZvjgpPjgbAs44GC44GN44KJDQor44GC44Ga44G+LOOBvuOBleOChuOBjQ0KK+OBquOBiuOBhCzjgZ/jgaDjgZcNCivjgbvjgZfjga4s44Gh44GL44KJDQor44GL44G/44KELOOBn+OBoOOBlw0KK+OCgOOCieOBnyzjgbLjgo3jgYvjgZoNCivjgYTjgaHjgb/jgoQs44Gy44KN44GXDQor44Gf44KL44GELOOChOOBmeOBsuOCjQ0KK+OBr+OBjuOBr+OCiSzjgajjgZfjgbLjgZMNCivjgZ/jgYvjga/jgZcs44GK44GV44KADQor44GK44Gh44GC44GELOOBl+OCk+OChA0KK+OBguOBjeOChOOBvizjgajjgZfjgYLjgY0NCivjgY3jgoDjgoks44GX44KT44GE44GhDQor44Gv44KE44GXLOOBvuOBleOBn+OBiw0KK+OChOOBvuOBkOOBoSzjgZ/jgZHjgbLjgo0NCivjgajjgZPjgo0s44Gy44KN44G/DQor44GL44GZ44KELOOBsuOCjeOBlw0KK+OBhOOCiuOBiCzjgZ/jgZHjgZcNCivjgoDjgonjgYTjgZcs44GC44GN44Gy44GVDQor44GX44KT44Gf44GrLOOCiOOBmeOBkQ0KK+OBhuOBiOOBrizjgYLjgaTjgZcNCivjgYbjgaHjgaAs44Gy44Gn44GoDQor44Gv44Gb44GM44KPLOOBhOOBoeOCjeOBhg0KK+OBj+OCjeOBoCzjgojjgZfjgY0NCivjgYTjgajjgYYs44KE44GZ44Gy44KNDQor44G744KK44GG44GhLOOBsuOBqOOBlw0KK+OBiuOBr+OBnyzjgZHjgYTjgZMNCivjgbvjgpPjgaAs44KE44GZ44GC44GNDQor44Gq44GL44KA44KJLOOBv+OCj+OBkw0KK+OBleOBiOOBjSzjgZ/jgYvjgZcNCivjgYLjgbks44Gy44Go44GXDQor44GG44KB44GgLOOBkeOBhOOBmeOBkQ0KK+OBrOOBvizjgojjgZfjgbLjgo0NCivjgZ/jgbbjgaEs44Gy44Gn44GKDQor44GN44KA44KJLOOBv+OBpOOCiw0KK+OBhuOBoCzjgarjgYrjgZ/jgYsNCivjgYLjgYrjgY0s44GI44Gk44GTDQor44Gq44GL44KA44KJLOOBl+OCheOBmA0KK+OBteOBmOOBk+OBlyzjgb/jgarjgZMNCivjgZnjgb/jgaAs44KK44KF44GYDQor44GP44Ga44Gv44KJLOOBv+OBuw0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgYLjgonjgZ8sDQor44KN44Gj44GL44GP44KG44GN44Gy44KNLOOCi+OCiuOBkw0KK+OBhOOBruOBhuOBiCzjgYvjgaTjgbLjgo0NCivjgaTjgZjjgoLjgags44G+44KEDQor44G/44GG44KJLOOBruOBtuOBguOBjQ0KK+OBreOCguOBqCzjgbLjgafjgobjgY0NCivjgYLjgoHjgb/jgoQs44GZ44GZ44KADQor44Gq44GL44KA44KJLOOBiuOBjeOCguOCig0KK+OBguOBhOOBsCzjgabjgovjgbLjgZUNCivjgojjga3jgZbjgo8s44Gf44GL44Gy44KNDQor44G144GY44KA44KJLOOBvuOBleOChuOBjQ0KK+OCiuOCheOBqCzjgobjgZ/jgYsNCivjgo/jgZ/jgarjgbks44G/44Gk44KLDQor44GN44Gf44GM44KPLOOBn+OBi+OBvw0KK+OBguOBn+OCieOBlyzjga7jgorjgZMNCivjgY3jgY/jgaEs44G+44GV44GoDQor44GZ44Ga44GNLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgY3jgojjgZcNCivjgYTjgZHjgaAs44Gu44G844KLDQor44KI44GT44GL44KPLOOBsuOCjeOBlw0KK+OBj+OBleOBpOOBkCzjgZXjgajjgb8NCivjgb/jgZrjga4s44G+44KG44G/DQor44Gq44GM44G744KKLOOBv+OBpOOBvuOBlQ0KK+OBmeOBjuOCguOBqCzjgb7jgZXjgb8NCivjgYLjgpPjganjgYYs44Gq44Gq44GTDQor44Gf44GL44KE44Gq44GOLOOCiOOBl+OBig0KK+OBl+OBsCzjgojjgZfjgYvjgZoNCivjgYvjgb/jgoTjgb4s44Gy44KN44KG44GNDQor44GK44Gy44KJLOOBruOBtuOBn+OBiw0KK+OBu+OCk+OBvizjgZfjgpPjgoQNCivjgZ/jgbDjgZ8s44GX44KFDQor44GI44KT44GpLOOBsuOCjeOBvw0KK+OBhOOBl+OBjOOBjSzjgajjgoLjgb8NCivjgZfjgbAs44GX44KT44GYDQor44KE44G+44GgLOOBqOOCguOBquOBig0KK+OBn+OBi+OBrizjgZjjgoXjgpMNCivjgojjgZfjgaAs44GC44GN44KJDQor44GC44G+44GV44GNLOOBsuOCjeOBlw0KK+OBiuOBl+OBi+OCjyzjgbLjgo3jgarjgooNCivjgavjgZfjga4s44G/44Gk44Gy44GTDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBr+OBvuOBiuOBiyzjgZHjgpPjgZgNCivjgZXjga4s44GT44GG44GE44GhDQor44GZ44GI44GX44GSLOOBk+OBhuOBmA0KK+OBquOBi+OBnyzjgaTjga3jgYoNCivjgZPjgbDjgoTjgZcs44Gy44KN44G144G/DQor44GZ44Gp44GGLOOBvuOBleOBkw0KK+OBpOOBpOOBvyzjgYvjgZrjgbLjgo0NCivjgb/jgZ/jgass44Gy44KN44G/DQor44GE44GX44GgLOOBr+OCi+OChuOBjQ0KK+OBhOOBhOOBmuOBiyzjga7jgbbjgojjgZcNCivjgZfjgonjgYQs44GR44KT44GE44GhDQor44KE44G+44GgLOOBm+OBhOOBmA0KK+OBpOOBmOOBi+OBqSzjgobjgbLjgaHjgo0NCivjgb7jgaTjgarjgYws44G+44GV44Gy44GoDQor44Gf44Gq44GLLOOBi+OBpOOBig0KK+OBv+OBquOBvyzjgZ/jgaTjgoQNCivjgZXjgYvjgYQs44Go44GX44Gy44GTDQor44GG44GI44GNLOOBl+OCk+OBmA0KK+OBiuOBoCzjgb/jgbvjgZMNCivjgb7jgYjjgaAs44GK44GV44KADQor44Gn44GN44Gf44GrLOOBqOOCguOBkw0KK+OBguOBvuOBrizjgZ/jgYvjgYvjgZoNCivjgb/jgoTjgZPjgZcs44GP44Gr44Gm44KLDQor44GC44KT44GW44GELOOBsuOCjeOBvw0KK+OBhuOCgeOBoCzjgbLjgafjgobjgY0NCivjgZ/jgY3jgZbjgo8s44KE44GZ44GXDQor44KA44KJ44Gr44GXLOOBjeOCiOOBsuOBqA0KK+OBj+OCiuOBr+OCiSzjgZPjgYbjgZgNCivjgoTjgb7jgZXjgY0s44KE44GZ44G144G/DQor44GK44Gk44GLLOOChuOBn+OBiw0KK+OBguOBv+OBrizjgobjgb8NCivjgoLjgoos44GE44KP44GKDQor44Gr44GX44KC44KKLOOBi+OBmuOBkw0KK+OBn+OBkeOBrizjgZPjgYbjgYTjgaENCivjgZfjgpPjgYzjgY0s44GL44Ga44GIDQor44G+44Gk44GKLOOBsuOCjeOBlw0KK+OBteOBmOOBrSzjgb7jgZXjgobjgY0NCivjgYvjgarjgb7jgoss44GX44GK44KKDQor44GL44Gq44GW44KPLOOBvuOBleOBig0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjgo/jgaAs44GY44KF44KTDQor44GE44GX44GP44KJLOOBn+OBi+OBsuOCjQ0KK+OBteOBj+OBoCzjgZfjgZLjgYvjgZoNCivjgYbjgYvjgYQs44Go44GX44G/44GhDQor44GC44KK44G+LOOChuOBjeOBig0KK+OBiuOBnyzjgYLjgaTjgZcNCivjgoLjgorjgZ/jgass44GN44KI44GXDQor44GC44Gg44GhLOOBqOOBl+OBsuOBkw0KK+OBj+OBvuOBpyzjgb7jgooNCivjgYLjgoks44G/44Gk44Gy44KNDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBqOOCiOOBiuOBiyzjgoTjgZnjga7jgooNCivjgYrjgaQs44GX44KT44GYDQor44G/44KE44GNLOOBvuOBleOBig0KK+OBhOOBl+OBi+OCjyzjgojjgZfjgYvjgZoNCivjgYTjgYzjgonjgZcs44KI44GX44GNDQor44GK44Gr44GXLOOBvuOBleOBjQ0KK+OBl+OCieOBhOOBlyzjgbLjgo3jgojjgZcNCivjgojjgZPjgoEs44Gf44Gk44KG44GNDQor44G144GY44KC44GoLOOCiuOCheOBmA0KK+OBi+OCk+OBrizjgYTjgaTjgZMNCivjgZ/jgaHjgbDjgaos44Gf44GR44GXDQor44KE44G+44GgLOOBguOBjeOBsuOCjQ0KK+OBguOBleOBvyzjgojjgZfjgZMNCivjgb/jgYbjgoks44GK44GV44KADQor44Go44GP44Gy44KNLOOBn+OBi+OBguOBjQ0KK+OCguOCiuOBi+OCjyzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44KI44GX44Gy44KNDQor44GV44GuLOOBvuOBleOBruOCig0KK+OBmeOBmuOBjSzjgZnjgZnjgoANCivjgZfjgoLjgajjga4s44Go44GK44KLDQor44G+44GL44G5LOOBvuOBk+OBqA0KK+OBhOOBqOOBhizjgabjgaTjgo0NCivjgaTjgY/jgaAs44GR44GE44GE44GhDQor44KI44GX44GL44KPLOOBmOOCheOBq+OBoQ0KK+OBn+OBi+OChOOBquOBjizjgarjgYrjgaTjgZANCivjgbvjgpPjgaAs44GN44KT44KEDQor44Gr44GX44GuLOOBk+OBhuOBhOOBoQ0KK+OBjeOCgOOCiSzjgojjgZfjgYLjgY0NCivjgYvjgajjgYYs44GL44Ga44Gy44KNDQor44GK44Gv44GfLOOCguOCiuOChOOBmQ0KK+OBhuOBpOOBvyzjgb/jgaHjgYoNCivjgYLjgpPjganjgYYs44Gh44Gq44G/DQor44Gv44G+44Gf44GrLOOBl+OBkuOBig0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgZcNCivjgYvjgo/jgZss44Gy44KN44Gu44G2DQor44GG44GI44GuLOOBvuOBleOBruOBtg0KK+OBl+OBi+OBvizjgb/jgY3jgbLjgZUNCivjgZnjgZrjgY0s44Go44KC44G/44GkDQor44G144GY44GK44GLLOOBvuOBk+OBqA0KK+OBhOOBruOBhuOBiCzjgb7jgarjgbYNCivjgY3jgZ/jgZbjgY0s44GV44Go44G/DQor44GC44GE44G5LOOBk+OBhuOBmA0KK+OBiuOBi+OCjyzjgZjjgoXjgpPjgZgNCivjgZ/jgZHjgYQs44G/44Gk44GQDQor44GL44KJ44Gv44GXLOOBsuOCjeOBjQ0KK+OBmeOBmuOBjSzjgZ/jgYvjgojjgZcNCivjgYLjgonjgYQs44KG44GG44GYDQor44GE44Gu44GgLOOCiOOBl+OBsuOCjQ0KK+OBiuOBj+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgb7jgovjgYQs44GY44KF44KTDQor44Gy44KN44Ga44G/LOOBi+OBmuOBsuOBkw0KK+OCj+OBl+OBmizjgYvjgZrjgbLjgZUNCivjgojjgZfjgoDjgoks44G/44Gu44KLDQor44GL44Gk44G+44GfLOOBn+OBi+OBteOBvw0KK+OBvuOBmeOBi+OCjyzjgajjgZfjgZ/jgYsNCivjgYTjgo/jgYos44KI44GX44Gy44GTDQor44KE44G+44KC44GoLOOCiuOCh+OBmA0KK+OBn+OBquOBiyzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYbjgaEs44G+44GV44Gy44KNDQor44Gu44Gv44KJLOOBqOOCguOBsuOCjQ0KK+OBteOBquOBr+OBlyzjgoTjgZnjgobjgY0NCivjgarjgZTjgZcs44Gy44KN44GXDQor44GG44KB44GgLOOBleOBi+OBiA0KK+OBguOBjeOChOOBvizjgoTjgZnjga/jgosNCivjgarjgYvjgaAs44Gy44KN44GXDQor44GV44GE44Go44GGLOOBvuOChuOBvw0KK+OBn+OBr+OCiSzjgbLjgo3jgZcNCivjgavjgZfjgb7jgaQs44Gu44KK44KG44GNDQor44Gy44KJ44G/44GkLOOBiOOCig0KK+OCgeOBi+OBnyzjgZjjgoXjgpPjgZMNCivjgZ/jgYvjgb8s44GC44GN44Gy44GVDQor44Gd44Gu44GgLOOBn+OBj+OChA0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgbLjgZUNCivjgb7jgovjgoTjgb4s44Gf44GL44GXDQor44Gk44Gu44GL44KPLOOBi+OBpOOCiQ0KK+OBr+OCieOBoCzjgZfjgoXjgZgNCivjgaTjgZgs44KI44GX44Gy44GoDQor44GE44GM44KJ44GXLOOBleOBqOOCiw0KK+OCiOOBl+OBoCzjga7jgorjgobjgY0NCivjgZ/jgZHjgYzjgZ8s44GX44KF44GeDQor44GC44G5LOOBi+OBmuOBruOCig0KK+OBguOBi+OBrOOBvizjgZHjgpPjgZgNCivjgYvjgo/jgaAs44GL44Ga44KEDQor44Gf44GULOOBsuOBqOOBlw0KK+OBi+OBv+OCgOOCiSzjgb7jgZXjgagNCivjgb7jgaTjgoQs44KB44GQ44G/DQor44GE44KP44GfLOOBmOOCheOBq+OBoeOCjQ0KK+OBvuOBiOOBi+OCjyzjgojjgZfjgbLjgo0NCivjgoTjgb7jgZDjgaEs44G+44GT44GoDQor44GX44KN44GX44GfLOOBvuOBleOCiw0KK+OChOOBvuOBl+OBnyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgaTjgZjjgYvjgo8s44Gy44Gn44KG44GNDQor44Gf44Gq44GLLOOChuOBhuOBmA0KK+OBv+OBquOBvyzjgbLjgafjgYLjgY0NCivjgZXjgajjgYYs44G+44GV44GXDQor44GG44GK44Ga44G/LOOBi+OBpOOBvw0KK+OBmeOBjuOChOOBvizjgaTjgZDjgbLjgZMNCivjgaHjgbAs44Go44GX44GKDQor44GL44Gq44GELOOBi+OBiuOCig0KK+OBvuOBpOOChOOBvizjgZPjgY0NCivjgZ/jgYvjga4s44KK44KH44GYDQor44GP44G+44GM44GELOOBqOOBj+OBsuOCjQ0KK+OBn+OBkeOBk+OBlyzjgbLjgo3jgYLjgY0NCivjgbXjgZ/jgbAs44Gy44KN44GXDQor44GG44KB44GW44GNLOOBvuOBleOBlw0KK+OBiuOBhOOCj+OBkSzjgZLjgpMNCivjgarjgYzjgaTjgYss44GC44GN44Gy44GTDQor44GE44G+44GM44KPLOOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgozjgYTjgZMNCivjgYrjgbLjgoks44Go44KC44Gy44KNDQor44G/44KE44Gy44KJLOOBvuOBleOBqA0KK+OBruOBkOOBoSzjgZjjgoXjgavjgaENCivjgZnjgY7jgoLjgags44KI44GX44G144G/DQor44GL44KP44GQ44GhLOOBqOOCguOBsuOCjQ0KK+OBl+OBruOBmyzjgojjgZfjgYLjgY0NCivjgarjgorjgZXjgo8s44GC44GN44KJDQor44Gy44KN44GbLOOBsuOCjeOChuOBjQ0KK+OBq+OBl+OBluOBjSzjgb7jgZXjgobjgY0NCivjgoLjgoos44GV44Go44GXDQor44G144GL44GKLOOBpOOCiOOBlw0KK+OBv+OChOOBmOOBvizjgYLjgY3jgokNCivjgb7jgaTjga4s44GT44GG44GE44GhDQor44GE44KP44GELOOCgOOBpOOBsuOBlQ0KK+OBi+OBhCzjgajjgZfjgYLjgY0NCivjgZ/jgarjgYss44GL44Ga44Gf44GgDQor44Gh44GwLOOCiOOBmeOBkQ0KK+OBneOBrizjgb7jgarjgbYNCivjgojjgZPjgoTjgb4s44Gy44Go44G/DQor44Gf44GL44GX44G+LOOBguOBjeOCiQ0KK+OBiuOBi+OCguOBqCzjgobjgZ/jgo3jgYYNCivjgb/jgoTjgYvjgo8s44G/44Gh44GC44GNDQor44KA44KJ44KC44GoLOOBkeOBhOOBng0KK+OBjeOCgOOCiSzjgYvjgZrjgbXjgb8NCivjgb7jgaTjgarjgYws44GL44Gk44Gu44KKDQor44G144GP44GgLOOBpOOCiOOBlw0KK+OBiuOBq+OBlyzjgojjgZfjgbLjgagNCivjgYLjgYQs44GC44GN44Gy44KNDQor44G+44GI44GgLOOBmeOBmeOCgA0KK+OBhOOBruOBhuOBiCzjga7jgbbjgobjgY0NCivjgYTjgYTjgaAs44KI44GX44GTDQor44G144GY44GELOOBkeOBhOOBng0KK+OBleOBj+OCieOBhCzjgYvjgZrjgZfjgZINCivjgb7jgaTjgYQs44GX44GS44Gu44G2DQor44GE44G+44GgLOOBv+OBqeOCig0KK+OBv+OChOOBkSzjgY/jgavjgZMNCivjgZXjgYvjgYQs44G+44GV44G/DQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBhOOCj+OBnyzjgYLjgY3jgbLjgZUNCivjgYrjga4s44GY44KF44KTDQor44GE44Gd44G5LOOBk+OBhuOBmA0KK+OBiuOChOOBvuOBoCzjgaDjgYTjgZnjgZENCivjgajjgZjjgb4s44Go44KC44GC44GNDQor44Gf44GR44GG44GhLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OChOOBvizjgobjgb/jgZMNCivjgZfjgonjgYTjgZcs44Gk44Go44KADQor44GL44Gu44G+44GfLOOBvuOBleOBlw0KK+OBmeOBqeOBhizjgbLjgafjgYvjgZoNCivjgZfjgonjgoTjgb4s44Gy44GV44GL44GaDQor44GK44Gy44KDLOOCiOOBl+OBvw0KK+OBv+OBquOBjOOCjyzjgZ/jgYvjgbLjgZUNCivjgY3jgoDjgoks44Gy44KN44KG44GNDQor44Gf44GL44GOLOOBn+OBj+OChA0KK+OBleOBqOOBhizjgYbjgYTjgooNCivjgbXjgZjjgo/jgoks44GX44KT44GYDQor44GE44KC44GoLOOBguOBpOOBlw0KK+OBhuOBiOOBrizjgbLjgo3jgbLjgZUNCivjgY3jgofjga4s44GK44GV44KADQor44GN44KK44GGLOOBquOBiuOBqA0KK+OBj+OBvOOBnyzjgb7jgZXjgoQNCivjgZPjgZvjgY0s44Gf44GL44KI44GXDQor44GZ44GW44GNLOOBpOOBqOOCgA0KK+OBn+OBi+OBleOBjSzjgZ/jgaTjgbLjgo0NCivjgaTjgYvjgoLjgags44GL44Ga44Gy44GTDQor44Gq44GE44Go44GGLOOBvuOBmeOBig0KK+OBquOBi+OBlOOCgSzjgYrjgZXjgoANCivjgarjgYvjgoDjgoks44GC44Gk44GXDQor44Gv44GO44KP44KJLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgZPjga4s44G+44GV44KLDQor44GV44GE44GQ44GVLOOBqOOCguOBsuOCjQ0KK+OBu+OCk+OBoCzjgZ/jgaTjgoQNCivjgZ/jgarjgYss44Gg44GE44GeDQor44G+44Gk44Go44G/LOOChuOBjeOBig0KK+OBguOBi+OBleOBiyzjgb/jgaTjgosNCivjgZvjgpPjgYzjgpMs44KI44GG44GfDQor44Gf44GR44GKLOOBqOOCguOBsuOCjQ0KK+OCgOOCieOBnyzjgZHjgpPjgZQNCivjgYvjgo/jgZss44KI44GX44Gf44GgDQor44Gr44GX44GW44GNLOOBpOOBreOBig0KK+OBuOOBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYrjgZXjgo8s44G+44GV44Gy44KNDQor44GG44GI44GgLOOChOOBmeOBsuOBlQ0KK+OBi+OBquOChOOBvizjgZfjgpPjgYTjgaENCivjga/jgonjgaAs44GR44KT44GYDQor44Gq44GL44GM44KPLOOBsuOCjeOBi+OBmg0KK+OBv+OChOOCguOCiizjgbLjgafjgoTjgZkNCivjgYvjgYQs44GL44Gk44G/DQor44GN44GQ44GhLOOBi+OCiOOBkw0KK+OBleOBn+OBkSzjgojjgZfjgbLjgZUNCivjgYrjgbvjgYss44Gf44KC44GkDQor44Gq44GL44GW44KPLOOChuOBjeOBig0KK+OChOOBmeOBiuOBiyzjgbLjgo3jgZcNCivjgY/jgo3jgb/jgaQs44GL44KI44GTDQor44GL44Gq44GgLOOBsuOCjeOBguOBjQ0KK+OBvuOCi+OBi+OCjyzjgYLjgY3jgbLjgacNCivjgarjgYzjgZXjgo8s44Gu44KK44GL44GaDQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBiOOCk+OBqSzjgajjgoLjgbLjgo0NCivjgYTjgpPjgarjgb8s44Gf44Gk44KG44GNDQor44KE44G+44KC44GoLOOBiOOBhOOBhOOBoQ0KK+OBquOBjOOBj+OCiSzjgb7jgZXjga/jgosNCivjgYbjgYjjga4s44KI44Gy44GhDQor44Gr44GX44GW44GLLOOChOOBmeOBsuOBkw0KK+OBleOBqOOBhizjgajjgoLjgobjgY0NCivjgoLjgorjgoTjgb4s44GC44Gk44GXDQor44GT44Gv44KE44GbLOOBvuOBk+OBqA0KK+OBqeOBhOOBnyzjgZHjgpPjgZgNCivjgbvjgZ3jgYvjgo8s44GX44KF44GYDQor44GC44GK44GNLOOBkeOCk+OBmA0KK+OBvuOBmeOBv+OBoCzjgajjgZfjgo0NCivjgYrjgaEs44GT44GG44GYDQor44GZ44Ga44GNLOOBvuOBleOBsuOBpw0KK+OBmeOBjuOChOOBvizjgoTjgZnjgZ/jgYsNCivjgbXjgZjjgo/jgoks44Gy44Gn44GNDQor44Gf44Gq44G5LOOBsuOBp+OBjQ0KK+OBqOOBoCzjgZ/jgZHjgobjgY0NCivjgaTjgbzjgYQs44GX44KFDQor44GZ44GO44GfLOOBvuOBleOBruOCig0KK+OBguOBoOOBoSzjga/jgovjgYoNCivjgbXjgZjjgYQs44GN44KI44Gf44GLDQor44GZ44GM44KC44KKLOOBleOBqOOBlw0KK+OChOOBmeOBoCzjgb7jgaHjgZMNCivjgZ/jgYvjga/jgZcs44G/44GLDQor44Gf44GM44G/LOOBpuOBpOOCjQ0KK+OBqOOBv+OChOOBvizjgZ/jgaTjgYoNCivjga/jga3jgaAs44GX44GS44GKDQor44GK44GW44GNLOOBsuOCjeOBlw0KK+OBiuOBkOOCiSzjga7jgbbjgYoNCivjgabjgonjgZXjgY0s44G/44Gk44GEDQor44Gk44Gh44KELOOBqOOCguOBsuOBkw0KK+OBiuOBi+OBoCzjgb7jgZXjgYTjgaENCivjgYLjgbks44GR44KT44GYDQor44GC44G5LOOBkeOCk+OBhOOBoQ0KK+OCguOCiuOCj+OBjSzjgZvjgYTjgoQNCivjga/jgoTjga4s44G/44Gk44KG44GNDQor44Go44G/44Gq44GMLOOBguOBpOOBlw0KK+OBmeOBmuOBjSzjgoTjgZnjgYoNCivjgYvjgZ/jgY7jgoos44G+44GV44Gu44KKDQor44GC44Gv44KJLOOBkeOBhOOBnw0KK+OBu+OBlyzjgb7jgZXjgY0NCivjgYTjgZfjgYvjgo8s44Gy44KN44GXDQor44GX44KC44KA44KJLOOBquOBiuOBsuOBkw0KK+OCj+OBjeOCguOBqCzjgbLjgo3jgobjgY0NCivjgYvjgo/jgaYs44G+44GV44KLDQor44GC44G244KJ44GL44KPLOOChuOBhuOBmA0KK+OCiOOBl+OBn+OBkSzjgoTjgZnjgobjgY0NCivjgYTjgZfjgaAs44Gf44GR44GXDQor44G744KT44GgLOOChOOBmeOChuOBjQ0KK+OBl+OBn+OBvizjga7jgbbjgoQNCivjga7jgZDjgaEs44GI44Gk44GTDQor44G/44Ga44GELOOBpuOCi+OBig0KK+OBguOCk+OBqeOBhizjga7jgbbjgobjgY0NCivjgojjga3jgZfjgb4s44G/44Gk44GIDQor44GC44GN44GfLOOBk+OBhuOBhOOBoeOCjQ0KK+OBhuOBiCzjgZHjgpPjgZ8NCivjgZnjgY4s44GY44KF44KTDQor44Gq44GL44GY44G+LOOBv+OBjQ0KK+OBi+OBleOBiuOBiyzjgZXjgajjgZcNCivjga7jgaAs44Gv44KE44GoDQor44G+44Gk44GW44KPLOOBquOBquOBkw0KK+OCj+OBn+OBuSzjgZ/jgaTjgoQNCivjgYLjgYTjgZbjgo8s44KI44GX44Gy44GVDQor44GE44KP44GVLOOBv+OChuOBjQ0KK+OBk+OBjCzjgZ/jgYvjgZcNCivjgbLjgYzjgZfjgZ/jgass44GL44Ga44GK44G/DQor44GE44GR44GgLOOBn+OBi+OBlw0KK+OBguOBjeOBquOBiyzjgb7jgZXjgobjgY0NCivjgbXjgZjjgZ8s44Go44GX44KNDQor44KE44G+44GK44GLLOOCiOOBl+OBig0KK+OCj+OBoSzjgZ/jgZHjgZcNCivjgYbjgYjjga4s44GC44KE44GKDQor44GG44GX44GNLOOBquOBiuOBteOBvw0KK+OChOOBvuOCguOBqCzjgarjgaTjgb8NCivjgYvjgajjgYYs44GY44KF44KT44GTDQor44Gq44GM44GELOOBguOBpOOBlw0KK+OBteOBj+OBoCzjgZPjgYbjgYTjgaENCivjgarjgYvjgZ/jgass44G+44KKDQor44Gy44KJ44GV44KPLOOBqOOBl+OBsuOBkw0KK+OBv+OChOOBluOBjSzjgabjgaTjgbXjgb8NCivjgabjgonjgZfjgb4s44GT44GG44GE44Gh44KNDQor44GC44KJ44GELOOBn+OBpOOBig0KK+OBn+OBquOBiyzjgZHjgYTjgZjjgo0NCivjgYvjga3jgZMs44GX44KTDQor44GV44Go44GGLOOBguOBjeOBsuOBkw0KK+OBquOCiuOBnyzjgbLjgafjgbXjgb8NCivjgarjgYzjgZfjgb4s44Go44GX44KEDQor44GV44GL44GuLOOChOOBmeOBr+OCiw0KK+OBv+OBhuOCiSzjgYvjgZrjgoQNCivjgoTjgb7jgZDjgaEs44Gy44GV44Gf44GLDQor44GK44Gn44KJLOOBm+OBpOOChA0KK+OBguOBuSzjgZHjgpPjgZ/jgo3jgYYNCivjgZPjgaDjgb4s44GL44Ga44GE44GhDQor44KE44G+44KC44GoLOOBr+OCi+OBsuOBkw0KK+OBiuOBl+OBvizjgb7jgZXjgajjgZcNCivjgYTjgZfjgZos44Gf44Gg44Gy44KNDQor44GL44KT44Gw44KE44GXLOOBguOChOOBkw0KK+OBiuOBi+OCjyzjgYjjgb8NCivjgbLjgYjjgaAs44Gq44GM44GTDQor44GE44Gu44G+44GfLOOBvuOBleOCiw0KK+OBvuOBjeOBnyzjgoDjga3jgYvjgZoNCivjgYzjgarjga8s44Gh44GMDQor44Gv44KE44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBguOBi+OBrOOBvizjgZ/jgYvjgYLjgY0NCivjgoDjgo3jgYvjgo8s44Gm44Gk44GYDQor44GK44GuLOOBl+OCheOBsuOBoQ0KK+OBjeOCgOOCiSzjgZjjgoXjgavjgaHjgo0NCivjga/jgZ/jgZbjgo8s44Go44GX44GKDQor44G144GY44GfLOOBleOBqOOBlw0KK+OBhuOBiOOBoCzjgZHjgYQNCivjgoTjgb7jga7jgYbjgaEs44Gq44GK44Go44GXDQor44G144KL44GfLOOBguOBpOOBlw0KK+OBiuOBj+OChOOBvizjgYvjgZrjgbLjgo0NCivjgYTjgajjgYYs44Gy44KN44KG44GNDQor44GK44GV44Gq44GELOOBqOOBiuOCiw0KK+OBk+OBn+OBqyzjgaTjgajjgoANCivjgYrjgaTjgYss44KG44GN44GKDQor44G144GP44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBhOOBhOOBmuOBiyzjgZ/jgZHjgbLjgZMNCivjgo/jgZ/jgarjgbks44Gy44KN44G/DQor44KC44KK44GfLOOBqOOBl+OChA0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgbvjgpPjgaAs44Gy44KN44KG44GNDQor44GL44Go44GGLOOBpuOBpOOChA0KK+OBguOBleOBrOOBvizjgb7jgZXjga7jgooNCivjgYLjgZrjgb4s44GR44GE44GZ44GRDQor44Gm44KJ44GV44KPLOOBl+OCh+OBlA0KK+OBguOBi+OBlyzjgoTjgZnjgZMNCivjgYvjgajjgYYs44G+44GV44GNDQor44GK44Gu44GV44GoLOOBoOOBhOOBmeOBkQ0KK+OBquOBi+OCgOOCiSzjgYTjgZXjgYoNCivjga7jgoDjgoks44KI44GX44Gy44KNDQor44GE44Gu44GG44GILOOBkeOCk+OBhOOBoeOCjQ0KK+OBr+OChOOBlyzjgbXjgb/jgYoNCivjgZ/jgoDjgoks44Gb44GE44GE44GhDQor44GV44GL44GELOOBn+OBkeOBlw0KK+OBmeOBjuOCgOOCiSzjgZ/jgaDjgYLjgY0NCivjgajjgb/jgoTjgb4s44GT44GZ44GRDQor44GL44GN44GW44KPLOOBkeOCkw0KK+OBq+OBl+OBn+OBqyzjgabjgovjgYLjgY0NCivjgYLjgZXjgY/jgoks44GR44KT44GE44Gh44KNDQor44GE44GX44GW44GNLOOBsuOCjeOBjQ0KK+OBvuOBpOOCguOBqCzjgajjgZfjgYLjgY0NCivjgarjgYzjgYos44GC44GN44Gu44KKDQor44GN44GuLOOChOOBmeOBsuOCjQ0KK+OBguOBuSzjgb7jgZXjgYoNCivjgajjgZjjgocs44G/44Gk44GKDQor44KE44G+44GNLOOBpOOBreOBig0KK+OBguOCieOBhCzjgarjgYrjgagNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44GK44GP44KA44KJLOOBsuOCjeOBpOOBkA0KK+OBr+OCiSzjgbLjgafjgb8NCivjgoTjgb7jgoLjgags44GI44GE44GE44GhDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBguOCieOBhCzjgYzjgY8NCivjgYTjgZHjgaks44GZ44GI44Gu44G2DQor44GE44Go44GGLOOCiuOChw0KK+OBhOOBqOOBhizjgZHjgYQNCivjgYbjgorjgoUs44Go44GX44GC44GNDQor44GG44Gh44KE44G+LOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBiOOBruOCguOBqCzjgZfjgpPjgoQNCivjgYjjgZrjgoks44GV44Go44GXDQor44GK44Gk44GLLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiOOBq+OCgyzjgajjgZfjgYoNCivjgYLjgYvjgYos44KK44GIDQor44GK44Gr44GXLOOBn+OBmeOBjw0KK+OBi+OBjOOChCzjgZPjgYbjgZgNCivjgYvjgb7jgZ8s44GT44GG44GE44GhDQor44GL44KP44GL44G/LOOBkuOCkw0KK+OBleOBleOBjSzjgZHjgYTjgZgNCivjgZ/jgYvjga/jgZcs44GL44Ga44GIDQor44Gf44GgLOOBl+OCh+OBn+OCjeOBhg0KK+OBq+OBl+OBrizjgYvjgaTjgbLjgZUNCivjgYLjgZXjgYos44GX44KT44GE44Gh44KN44GGDQor44Gv44GX44KC44GoLOOBi+OBmuOChA0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgZ/jgYsNCivjgbvjgZcs44GR44GE44GYDQor44G744KK44GfLOOChuOBhuOBmA0KK+OBvuOBiOOBnuOBrizjgYLjgY3jgokNCivjgb7jgYjjgZjjgb4s44Gf44Gg44GXDQor44G/44KE44GW44GNLOOBsuOCjeOBv+OBoQ0KK+OBguOCieOBhCzjgajjgYrjgosNCivjgoLjgoos44GR44GE44GZ44GRDQor44G+44GI44GgLOOBmeOBmeOCgA0KK+OBiuOBoSzjgZHjgYTjgZnjgZENCivjgYLjgZXjgY/jgoks44GX44KH44GYDQor44GG44GV44G/LOOBhOOBquOCkw0KK+OBiuOBj+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgYvjgorjgoQs44Gu44G244Gy44GVDQor44GG44GI44GgLOOChOOBmeOCiOOBlw0KK+OBiuOBn+OBuSzjgarjgYrjgbLjgZMNCivjgY3jgoDjgoks44GT44GG44GE44GhDQor44GP44GX44GgLOOBvuOBleOCiOOBlw0KK+OBguOBvuOBryzjgarjgYrjgY0NCivjgZPjgpPjgaks44Gq44GK44GNDQor44GX44G/44GaLOOBn+OBi+OBkw0KK+OBmeOBmuOBjSzjgZ/jgYoNCivjgZnjgpMs44GX44KT44GE44GhDQor44Gf44Gp44GT44KNLOOBquOCi+OBsuOBpw0KK+OBqOOBreOBleOBjyzjgb/jga7jgosNCivjgarjgYvjgoDjgoks44KG44G/44GTDQor44G+44GZ44GgLOOCiOOBl+OBvw0KK+OBv+OChOOBluOBjSzjgZPjgZnjgZENCivjgojjgZfjgarjgYws44Gy44KN44GXDQor44KI44GT44GL44KPLOOBkeOCkw0KK+OBpOOBoeOChCzjga7jgorjgYoNCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44Gf44Gq44G5LOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgZ/jgYvjgbLjgZMNCivjgarjgYzjgYos44Gy44Gn44KG44GNDQor44GV44Go44GGLOOBkeOBhOOBng0KK+OBn+OBoCzjgYTjgZXjgoANCivjgYLjgY3jgoLjgags44KI44GX44Gv44KLDQor44Gf44KA44KJLOOBk+OBhuOBmA0KK+OBn+OCgOOCiSzjgojjgZfjgY0NCivjgYrjgYss44GX44KH44GG44GE44Gh44KN44GGDQor44GV44GP44KJ44GOLOOBl+OCheOBk+OBhg0KK+OBmeOBmuOBjSzjgZnjgb/jgYoNCivjgoLjgorjgYrjgYss44Gy44Go44GXDQor44KE44GQ44GhLOOBhOOBleOCgA0KK+OBv+OChOOCguOBqCzjgbLjgo3jgZcNCivjgZfjgonjgYvjgo8s44Gy44KN44GKDQor44GK44Gk44GLLOOBv+OBr+OCiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jgbLjgZUNCivjgarjgYvjgb7jgaEs44Gf44GP44G+DQor44KP44GL44Gv44KJLOOBvuOChuOBvw0KK+OBguOBjSzjgb7jgZXjga7jgooNCivjgZ/jgY3jgZ8s44G+44GV44GYDQor44GC44KJ44GL44KPLOOBkeOBhOOBmeOBkQ0KK+OBvuOBpOOBiizjgZfjgpPjgYTjgaENCivjgaHjgocs44Gf44GR44GXDQor44GP44KN44GgLOOBqOOCguOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgZfjgoXjgpPjgZnjgZENCivjgajjgoLjgYrjgYss44G+44KC44KLDQor44Gq44GL44GKLOOBi+OBmuOChuOBjQ0KK+OBguOBnSzjgb/jgaHjga/jgosNCivjgbXjgY/jgaAs44GR44KT44GE44GhDQor44GC44GK44GNLOOBsuOCjeOBlw0KK+OBj+OCiyzjgZ/jgaDjgZcNCivjgoDjgonjgYvjgb8s44KG44GXDQor44GP44KN44GgLOOBleOBqOOBlw0KK+OBv+OBi+OBvyzjgbLjgafjgY0NCivjgYvjgb/jgoDjgoks44Gy44Gn44GNDQor44GN44Gf44GY44G+LOOBqOOCguOChOOBmQ0KK+OBvuOCi+OChOOBvizjgoTjgZnjgbXjgb8NCivjgZXjgZ/jgZEs44KE44GZ44GKDQor44KC44Gm44GNLOOBn+OBi+OBlw0KK+OBqOOBv+OBnyzjgYvjgZrjgbLjgo0NCivjgavjgo8s44GR44GE44GE44GhDQor44Gf44GL44Gw44Gf44GRLOOBk+OBhuOBmA0KK+OBguOBmuOBvizjgobjgYbjgYTjgaENCivjgbXjgovjgoQs44GX44GS44KLDQor44Gq44GZLOOBn+OCjeOBhg0KK+OBk+OCiizjgYjjgb/jgZMNCivjgYTjgZHjgaAs44KP44Gf44KLDQor44GU44GoLOOBpuOCi+OBi+OBmg0KK+OBvuOCiyzjga7jgbbjgZ/jgYsNCivjgbXjgY/jgaAs44Gy44Go44GXDQor44GZ44GM44Gv44KJLOOBsuOBleOBqA0KK+OBjeOCgOOCiSzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjgZss44Gf44GP44KEDQor44Gr44GX44GK44GLLOOBguOBjeOBsuOCjQ0KK+OBteOCi+OBi+OCjyzjgbLjgo3jgobjgY0NCivjgY/jganjgYYs44Gq44GK44GNDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBlQ0KK+OChOOBvuOCguOBqCzjgZHjgpPjgYTjgaENCivjgb/jgoTjgoLjgags44Gf44GR44GXDQor44Gu44GfLOOBteOBjQ0KK+OBquOBi+OCgOOCiSzjgbXjgb/jgZMNCivjgYLjgY3jgbAs44GX44GS44Gu44KKDQor44GE44KP44GNLOOBvuOBleOCiw0KK+OBi+OBqOOBhizjgZXjgaHjgZMNCivjgoLjgorjgoLjgags44KI44GX44Gy44KNDQor44Gq44GL44KA44KJLOOBvuOCig0KK+OBquOBi+OChOOBvizjgb7jgZXjgbLjgo0NCivjgYrjgZ/jgass44GT44GG44GYDQor44GZ44GO44KE44G+LOOBmOOBguOBg+OCkw0KK+OBmeOCkyzjgbLjgo3jgobjgY0NCivjgoTjgb7jgoLjgags44GY44KF44KT44GYDQor44G744KT44GpLOOBqOOBl+OBsuOBkw0KK+OBr+OBjCzjgb7jgooNCivjgZfjgYrjgZbjgY0s44KK44KHDQor44G144GY44GuLOOBpuOBpOOBig0KK+OBiuOBrizjgZHjgpPjgYTjgaENCivjgYLjgpPjganjgYYs44GR44KT44GoDQor44KE44G+44GQ44GhLOOCiOOBl+OBsuOCjQ0KK+OBj+OCjeOBoCzjgorjgofjgbjjgYQNCivjgYLjgpPjganjgYYs44KG44GN44Gy44KNDQor44GG44GuLOOBl+OBruOBtg0KK+OBhOOBqOOBhuOBn+OBqyzjgb/jgoQNCivjgYrjgYss44G+44GT44GoDQor44G/44GG44KJLOOBl+OBuw0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgYvjgZoNCivjgYjjgoLjgags44GL44Ga44Go44GXDQor44GT44GMLOOBi+OBmuOChA0KK+OBjeOBr+OCiSzjgZfjgZLjgbLjgo0NCivjgb7jgaTjgaAs44G/44Gu44KLDQor44KE44G+44GgLOOBqOOCiOOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgZcNCivjgoTjga/jgZ8s44KG44Gf44GLDQor44Gf44GW44GNLOOBi+OBj+OBmA0KK+OChOOBvuOCguOBqCzjgYvjgZrjgbLjgZMNCivjgZ/jgYvjgaAs44G/44Gu44KLDQor44Gu44GgLOOBkeOCk+OBmA0KK+OBleOBhOOBv+OChyzjgojjgZfjgYoNCivjgZPjgbDjgoTjgZcs44Go44GX44GC44GNDQor44G144GY44GNLOOBn+OBi+OBlw0KK+OBl+OCieOBleOBiyzjgZjjgYcNCivjgaHjgYfjgpMs44KK44KH44Gy44GhDQor44Gf44GL44Gv44GXLOOBn+OBkeOBsuOBkw0KK+OChOOBpCzjgYjjgaTjgb8NCivjgYbjgYrjgZ/jgass44Gu44G244KG44GNDQor44Gf44KA44KJLOOBi+OBqg0KK+OBvuOBpOOBiizjgb7jgZPjgagNCivjgarjgYvjgZbjgo8s44Gy44KN44GXDQor44GN44GgLOOBsuOCjeOBlw0KK+OBn+OCk+OBkizjgbXjgb/jgZ/jgaANCivjgbLjgo3jgZss44GC44GN44GTDQor44G+44Gk44GX44G+LOOCiOOBsuOBoQ0KK+OBiuOBi+OBrizjgbLjgafjgYoNCivjgYLjgYrjgY0s44GR44GE44GfDQor44Gv44Gb44GM44KPLOOCiuOCheOBsuOBoQ0KK+OBq+OBl+OBu+OCiizjgbLjgo3jgb8NCivjgYTjgZfjgZrjgYss44G+44GV44Gk44GQDQor44Gk44G844GELOOBi+OBiuOCiw0KK+OBhOOBl+OBoCzjgYLjgonjgZ8NCivjga/jgZfjgoLjgags44GR44KT44GYDQor44GU44GoLOOBteOBv+OBig0KK+OBguOBjeOChOOBvizjga7jgbbjgbLjgo0NCivjgb/jgaTjga/jgZcs44Go44GK44KLDQor44GU44GX44G+LOOBguOBpOOBig0KK+OBteOBj+OBoCzjgbXjgb/jgbLjgZMNCivjgoTjgb7jgZfjgZ8s44Go44GX44Gy44GTDQor44Gq44GL44GW44KPLOOBleOBqOOBlw0KK+OBq+OBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgYTjgZHjgYbjgaEs44KG44GN44GTDQor44Gf44GM44G/LOOBpuOBpOOCjQ0KK+OBi+OCj+OBjeOBnyzjgZnjgZnjgoANCivjgarjgYvjgoDjgoks44G/44Gh44KEDQor44GT44G+44GELOOBleOBqOOCiw0KK+OBu+OBl+OChCzjgojjgbLjgaHjgo0NCivjgZnjgb/jgags44KK44KF44GYDQor44G744GX44GuLOOBoeOBi+OCiQ0KK+OBquOBi+OChCzjgZ/jgYvjgoQNCivjga/jgoks44Gy44Gn44KG44GNDQor44KA44KN44KE44G+LOOBvuOBleOCiw0KK+OBl+OBruOBoCzjgZXjgajjgosNCivjgoLjgoos44GX44KT44GYDQor44GX44KJ44GE44GXLOOBsuOCjeOBjQ0KK+OBsuOCieOBrizjgZfjgZLjgosNCivjga/jgZfjgoLjgags44GL44Ga44GKDQor44GC44G5LOOBsuOCjeOBlw0KK+OBhOOBl+OBi+OCjyzjgarjgYrjgbXjgb8NCivjgYLjgZrjgb4s44Gy44GV44GXDQor44GK44Gk44GLLOOBsuOBqOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjgobjgY0NCivjgYrjgZfjgb4s44Gf44GL44GKDQor44GT44GW44GELOOBkeOCk+OBmOOCjQ0KK+OBi+OCj+OBi+OBvyzjgYzjgY8NCivjgarjgYvjga4s44GT44GZ44GRDQor44GG44GY44KC44GoLOOBguOChuOCgA0KK+OBjeOBl+OBoCzjgb7jgZXjgbXjgb8NCivjgZPjgYTjgZrjgb8s44GL44Ga44GKDQor44Gq44GE44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OCiOOBl+OBmuOBvyzjgb/jgZrjgbsNCivjgZnjgY7jgoLjgoos44GL44Ga44Gy44GTDQor44GC44GK44GNLOOBi+OBl+OCheOBjw0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgYTjgYws44G+44GV44Gy44KNDQor44GL44KP44Gw44GfLOOBk+OBhuOBmA0KK+OBl+OBsOOBnyzjgobjgYbjgZMNCivjgaDjgpPjgZjjgocs44GY44KF44KT44GYDQor44Gf44GQ44GhLOOBguOCiuOBi+OBpA0KK+OBvuOBoeOBoCzjgojjgZfjgb8NCivjgYLjgZfjgaAs44Gu44G244GKDQor44GC44KT44Gp44GGLOOBkeOBhA0KK+OCgOOBqCzjgaHjgYvjgYoNCivjgZPjgoTjgb4s44GN44KI44Gy44KNDQor44GZ44Ga44GNLOOBvuOBleOBqOOBlw0KK+OBruOCgOOCiSzjgoDjga3jgbLjgZMNCivjgYTjgajjgoQs44G+44GV44Gy44GTDQor44Gh44GL44GK44GLLOOBsuOBqOOBlw0KK+OBmOOCk+OBtizjga7jgorjgZMNCivjgYLjgaDjgaEs44Go44GX44Gy44KNDQor44GL44KP44GELOOCiOOBl+OBjQ0KK+OBv+OBruOCjyzjgajjgZfjgbLjgo0NCivjgYLjgZXjgbIs44Go44KC44Gv44KLDQor44GK44GfLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjga7jgorjgYvjga0NCivjgY3jgoks44Gu44Ge44G/DQor44KE44G+44GW44GNLOOBsuOCjeOBsuOBpw0KK+OChOOBvuOBhuOBoSzjgb7jgarjgb8NCivjgbvjgaPjgZ8s44GL44Ga44Gy44KNDQor44GC44KJ44GL44KPLOOBqOOCguOBig0KK+OBiuOBj+OCgOOCiSzjgobjgYbjgZMNCivjgYvjga3jgZMs44Gm44GE44GYDQor44GC44KE44GuLOOBi+OBpOOBruOCig0KK+OBr+OChOOBi+OCjyzjgY3jgojjgagNCivjgYTjgajjgYYs44GR44GE44GE44GhDQor44GK44GP44KA44KJLOOBmOOCheOCkw0KK+OBn+OCk+OBluOCjyzjgb7jgZXjgajjgZcNCivjgZXjgY3jga4s44Gk44Go44KADQor44GL44KP44Gv44KJLOOBv+OBoeOChOOBmQ0KK+OBn+OCi+OBhCzjgb7jgZXjgZcNCivjgYLjgorjgoLjgags44KE44GZ44GXDQor44GI44Gz44GTLOOBk+OBhuOBhOOBoQ0KK+OBsuOBrizjgajjgZfjgYLjgY0NCivjgoTjgb7jgaAs44KI44GX44GC44GNDQor44GK44GuLOOBjeOCiOOBlw0KK+OBn+OBkeOBl+OBnyzjgb7jgZXjgZcNCivjga/jgoTjgZcs44G/44GLDQor44GE44GX44GgLOOBv+OBpOOCiw0KK+OBl+OBiuOChCzjgojjgZfjga7jgooNCivjgYLjgpPjganjgYYs44GX44GS44GKDQor44G+44Gk44Gw44KJLOOBmOOCheOCkw0KK+OBq+OBl+OBoCzjgYTjgZ/jgosNCivjgarjgYvjgoDjgoks44GT44GNDQor44GE44GR44GgLOOBqOOCguOBquOCig0KK+OBr+OChOOBvyzjgb7jgZXjgbLjgZMNCivjgZnjgZrjgY0s44Gy44GV44Gu44KKDQor44GK44GM44KPLOOBn+OBpOOBig0KK+OBhOOBl+OBi+OCjyzjgojjgZfjgbLjgo0NCivjgYLjgZXjgb8s44Go44GK44KLDQor44Gv44Gf44GR44KE44G+LOOCiOOBl+OBig0KK+OBu+OCiuOBv+OBnizjgYLjgaTjgZcNCivjgb7jgovjgZ/jgass44Go44KC44Gq44KKDQor44GV44Go44GGLOOBi+OBpOOChA0KK+OBleOBi+OBquOBiyzjgZfjgofjgogNCivjgarjgYvjgoDjgoks44GP44G/DQor44GE44Go44GGLOOChuOCiuOBkw0KK+OBteOCi+OBquOBjCzjgY3jgofjgZMNCivjgbXjgY/jgZfjgb4s44GR44KTDQor44G/44Ga44GM44G/LOOBn+OBkeOBlw0KK+OBn+OBkeOBhuOBoSzjga7jgbzjgosNCivjgajjgorjgYbjgb8s44G+44GV44G144G/DQor44Gt44GO44GXLOOBvuOBleOCiw0KK+OBk+OChOOBvizjgb7jgZXjga7jgooNCivjgYrjgZfjgb4s44GY44KF44KTDQor44GL44Gf44GK44GLLOOBsuOBp+OBig0KK+OBn+OBjeOBkOOBoSzjgZfjgofjgZ4NCivjgZPjgb7jgaQs44GC44GN44KJDQor44KE44GOLOOBqOOBl+OBguOBjQ0KK+OBn+OBi+OBjizjgZHjgpPjgZgNCivjgb7jgZnjgYQs44Gf44GL44GXDQor44Gv44KE44GXLOOBkeOBhOOBmeOBkQ0KK+OBguOBreOBn+OBhCzjgaHjgbLjgo0NCivjgY3jga/jgoks44GC44GN44GKDQor44GV44GE44Go44GGLOOBi+OBmuOBig0KK+OBjeOBn+OCj+OBjSzjgajjgoLjgbLjgZMNCivjga7jgZDjgaEs44GL44GK44KLDQor44GV44GL44GQ44GhLOOBr+OCi+OBsuOBkw0KK+OBq+OBlyzjgb7jgZXjgagNCivjgYTjgZHjgaAs44KI44GX44KG44GNDQor44GV44Go44GGLOOBv+OBoeOBig0KK+OBhOOBvuOBhCzjgb/jga7jgosNCivjgoTjgb7jgaAs44GX44GS44GNDQor44Gf44Gq44GLLOOBguOBjeOBruOCig0KK+OBiuOBleOBkyzjgarjgZnjgYoNCivjgZPjgoDjgo0s44Gf44GL44GXDQor44GV44GE44Go44GGLOOBsuOBp+OBteOBvw0KK+OBmeOBmuOBjSzjgYvjgZrjgYoNCivjgbXjgarjgajjgYzjgo8s44Gf44GL44GXDQor44GE44GX44GELOOCiOOBl+OBig0KK+OBvuOBpOOBhCzjgabjgaTjgo0NCivjgZnjgYjjgbLjgoks44Gy44Go44GXDQor44Gy44KN44Gf44GrLOOBvuOBleOChuOBjQ0KK+OBsuOBjOOBlyzjgZHjgpPjgYTjgaENCivjgYTjgoDjgoks44GX44GS44GKDQor44GC44G5LOOBv+OBoeOBsuOBkw0KK+OCiOOBreOBj+OCiSzjgbLjgo3jgb/jgaENCivjgo/jgZ/jgarjgbks44KC44Go44GEDQor44GZ44GMLOOChuOBjeOBv+OBpA0KK+OBleOBrizjgabjgaTjgYoNCivjgZfjgbAs44Gf44GL44GXDQor44KE44G+44GQ44GhLOOBvuOBleOBsuOBqA0KK+OBjeOBluOCjyzjgZfjgZLjgYTjgY8NCivjgYvjgZXjgb7jgY0s44KE44GZ44Gy44GVDQor44GN44KA44KJLOOBvuOBk+OBqA0KK+OBpOOCi+OBvyzjgYvjgarjgoENCivjgYLjgYrjgY0s44Gy44Gn44GNDQor44GE44GX44GgLOOBkeOCk+OBhOOBoQ0KK+OCguOCjSzjgobjgYvjgooNCivjgYrjgY/jgoDjgoks44Gm44KL44GC44GNDQor44Gf44GL44GOLOOBruOBvOOCiw0KK+OBhOOBkeOChCzjgbLjgajjgZcNCivjgajjgb/jgoTjgb4s44KI44GX44GKDQor44KE44GOLOOBjeOCiOOBlw0KK+OBqOOBv+OBjSzjgYLjgaTjgZMNCivjgajjga7jgoDjgoks44KE44GZ44Gu44KKDQor44KE44Gk44Ga44GLLOOBruOBtuOBqOOBlw0KK+OBtuOBvizjgojjgZfjgb/jgaQNCivjgarjgYvjgZbjgo8s44Gy44KN44GXDQor44KE44G+44GW44GNLOOBsuOCjeOBlw0KK+OBvuOBpOOBl+OBnyzjgajjgoLjgZgNCivjgYTjgaAs44GX44KF44KT44GYDQor44GZ44Ga44GNLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OBrizjgojjgZfjgo0NCivjgYvjgo/jgZDjgaEs44GR44GE44GZ44GRDQor44Gf44GL44Gv44GXLOOBguOBjeOBsuOBlQ0KK+OBhOOBl+OBoCzjgZfjgofjgZMNCivjgYbjgaAs44KC44Go44GXDQor44G144GY44KP44KJLOOBguOBjeOBig0KK+OBk+OBhOOBpyzjgbLjgo3jgobjgY0NCivjgaTjgYvjgaAs44GT44GG44GYDQor44Gy44KJ44KE44G+LOOBv+OBoeOBig0KK+OBhuOBoeOBqOOBvyzjgYvjgZrjgb/jgaQNCivjgYTjgb7jga/jgoks44Gf44GL44GKDQor44GG44GI44GgLOOBpuOBpOOCjQ0KK+OBleOBleOBi+OCjyzjgb/jga7jgosNCivjgYLjgYTjgYvjgo8s44Go44GX44Gy44KNDQor44GG44GI44GNLOOBkeOCk+OBl+OChw0KK+OBquOBi+OChOOBvizjgbXjgb/jgajjgoINCivjgYrjgZXjgo8s44KI44GG44GTDQor44Gf44GL44GK44GLLOOBl+OBruOBtg0KK+OCj+OBoCzjgZfjgpMNCivjgYTjgazjgZrjgYss44KI44GX44Gy44KNDQor44Gf44Gq44GLLOOChOOBmeOBsuOCjQ0KK+OBn+OBkeOBoCzjgb7jgZXjgYoNCivjgoTjgb7jgaAs44Gk44Go44KADQor44KE44Gq44GOLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBkeOBl+OBnyzjgZXjgajjgosNCivjgavjgZcs44KK44KF44GYDQor44GK44Gf44GRLOOBqOOBl+OBn+OBkQ0KK+OBq+OBn+OBquOBhCzjgbjjgYTjga/jgaENCivjgbvjgpPjgb4s44Gy44KN44GXDQor44Gq44GL44GuLOOBguOBjeOCiQ0KK+OBv+OChOOBl+OBnyzjgbLjgo3jgojjgZcNCivjgYbjgYjjga4s44Gy44Go44GXDQor44Gw44GwLOOCiOOBl+OBsuOCjQ0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgYLjgY0NCivjgY/jgavjgYQs44Gf44GL44KI44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBvw0KK+OBvuOBmeOBoCzjgojjgZfjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Go44GX44KG44GNDQor44Gk44GL44GKLOOBpOOBjuOBig0KK+OBi+OCj+OCgOOCiSzjgY/jgavjgbLjgZUNCivjgYvjgo/jgbDjgZ8s44GT44GG44GN44GhDQor44GC44GL44GV44GLLOOBjeOCiOOBn+OBiw0KK+OBhOOBhOOBoCzjga7jgbzjgosNCivjgZfjgonjga/jgb4s44Gy44Gn44Gy44KNDQor44Go44GM44KPLOOCiOOBl+OBn+OBkQ0KK+OBhOOBqOOBhizjgZ/jgaTjgbLjgZMNCivjgYrjgYvjgbks44KG44Gy44GhDQor44KP44Gf44Gq44G5LOOBl+OBkuOBig0KK+OBleOBi+OBsCzjga7jgbbjgbLjgZMNCivjgbLjgo3jgZXjgo8s44KI44GX44Gu44KKDQor44Gq44GL44KA44KJLOOBsuOBp+OBjQ0KK+OChOOBmeOBhCzjgZjjgoXjgpPjgZjjgo0NCivjgbLjgonjgZ8s44GV44Gg44KADQor44GN44Gf44GM44KPLOOBvuOBleOBig0KK+OBguOBvuOBrizjgaTjgajjgoANCivjgaTjgZjjgoDjgoks44GR44GE44GYDQor44GL44KP44GV44GNLOOBsuOCjeOBlw0KK+OBhuOBiOOCgOOCiSzjgZPjgYbjgZgNCivjgoDjgonjgYvjgb8s44Gy44KN44GNDQor44GE44Gu44GG44GILOOBn+OBi+OChuOBjQ0KK+OBr+OBnCzjgZPjgZ4NCivjgajjgZfjgbLjgo0s44GY44KF44KT44GTDQor44GT44Gw44KE44GXLOOBpuOBpOOChA0KK+OBhOOBrizjgZ/jgaDjgZcNCivjgYLjgZXjga4s44Gy44KN44KG44GNDQor44KC44KKLOOBsuOBp+OBhOOBoQ0KK+OBhOOBquOBluOCjyzjgb7jgZXjgZcNCivjgZPjgbDjgoTjgZcs44Gy44KN44GKDQor44GV44GL44GNLOOBqOOBl+OBsuOCjQ0KK+OBhuOBoeOChOOBvizjgbLjgajjgZcNCivjgb7jgarjgbks44GX44GS44KLDQor44GK44Gy44KD44G+LOOBleOBqOOBlw0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgZUNCivjgojjga3jgoDjgoks44GX44KT44GE44GhDQor44Gw44KJ44GgLOOBpuOBpOOChA0KK+OBteOCi+OBnuOBrizjgYjjgaTjgo0NCivjgbXjgZjjgoLjgags44GT44GG44GE44GhDQor44GV44GuLOOBn+OBkeOBlw0KK+OBi+OCj+OBrizjgZfjgZLjgaoNCivjgbvjgZfjgYvjgo8s44GN44KI44GXDQor44GV44GV44KC44GoLOOBkeOCkw0KK+OBmeOBqeOBhizjgY3jgb/jgbLjgo0NCivjgZXjgajjgYYs44GX44GS44KG44GNDQor44Gv44KE44GXLOOBn+OBoOOBruOCig0KK+OBsOOBsCzjgobjgbLjgaENCivjgbDjgbAs44GT44GG44GYDQor44GK44KE44GtLOOBk+OCiA0KK+OBquOBjOOBleOCjyzjgabjgovjgbLjgo0NCivjgZXjgYvjgoLjgags44KI44GX44Gy44GTDQor44GC44GK44GNLOOBm+OBhOOBmA0KK+OCgOOBquOBi+OBnyzjgoTjgZnjgY0NCivjgYTjgajjgYYs44GR44KT44GYDQor44GL44KP44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBmeOBjuOCguOBqCzjgbLjgo3jgobjgY0NCivjgbDjgpPjgaks44GC44GN44Gy44GTDQor44Gu44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBk+OBrizjgYvjgZrjgYLjgY0NCivjgYvjgo/jgYQs44G+44KC44KLDQor44GG44GI44GuLOOBiOOBhOOBkw0KK+OBr+OCieOBoCzjgZPjgYbjgZgNCivjgYvjga4s44KC44Go44Gk44GQDQor44GK44GK44Gv44GfLOOBvuOBleOBqA0KK+OBmeOBqeOBhizjgZ/jgYvjgYoNCivjgb7jgaTjgaAs44Gy44KN44GXDQor44GE44GR44GM44G/LOOBsuOBp+OBruOCig0KK+OBl+OCieOBhCzjgbLjgajjgZcNCivjgZXjgajjgYYs44Gy44Gn44GKDQor44GV44GL44GELOOChOOBmeOChuOBjQ0KK+OBiuOBjSzjgb7jgZXjga/jgosNCivjgYvjgo/jgoDjgoks44Gb44GE44GYDQor44KE44G+44GgLOOBvuOBleOBr+OCiw0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYTjgYvjgb8s44Gy44KN44KG44GNDQor44GC44Ga44G+44GKLOOBv+OBoeOBig0KK+OBteOBmOOCgOOCiSzjgZjjgoXjgpMNCivjgY3jgZ/jgoDjgoks44GC44GN44Gy44GTDQor44Go44GM44G/LOOCiOOBl+OBv+OBoQ0KK+OBk+OBmeOBkizjgYvjgZrjga7jgooNCivjgZvjgY0s44Gu44G244KG44GNDQor44GL44KP44GX44G+LOOBsuOCjeOBlw0KK+OBn+OBi+OBhCzjgYLjgY3jgokNCivjgYLjgY3jgoTjgb4s44G/44GN44GKDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgbLjgajjgZcNCivjgavjgZfjga4s44G+44GT44GoDQor44G/44KE44GRLOOBkeOCk+OBl+OCkw0KK+OCiOOBreOCguOBoSzjgZ/jgYvjgYLjgY0NCivjgZ/jgYvjgZfjgb4s44Gf44GR44GXDQor44GV44GL44GELOOBqOOBl+OChuOBjQ0KK+OBiuOBpOOBjSzjgZHjgpPjgZgNCivjgYvjgo/jgZXjgY0s44Gy44KN44GKDQor44Gr44GX44GL44KPLOOBguOBjeOBsuOBlQ0KK+OBleOBj+OCieOBhCzjga/jgovjgYoNCivjgZnjgY4s44Gy44Gn44GoDQor44G744KK44GT44GXLOOBqOOBiuOCiw0KK+OCguOCiizjgobjgYbjgZgNCivjga/jgZHjgaAs44Go44GX44G/DQor44Gr44GE44GgLOOBvuOBleOBig0KK+OBjeOBj+OBn+OBqyzjgbLjgo3jgobjgY0NCivjgZ/jgZHjga7jgZfjgZ8s44Go44KC44KG44GNDQor44Gf44GL44Gv44GXLOOChuOBlA0KK+OBn+OBquOBuSzjgobjgY3jgYoNCivjgYTjgZHjgoLjgags44Go44GX44G144G/DQor44G+44Gk44KE44G+LOOBl+OCheOBhOOBoQ0KK+OCiOOBl+OBluOCjyzjgZ/jgYvjgobjgY0NCivjgYLjgYvjgYQs44Gf44GL44Gy44KNDQor44Gr44GX44GK44GLLOOCguOBqOOBmA0KK+OBn+OBkeOCguOBqCzjgZfjgZLjgYoNCivjgajjgY/jgaAs44Go44GX44Gu44KKDQor44GK44KC44KKLOOBguOBjeOBqOOBlw0KK+OBi+OBqOOBhizjgb/jgY0NCivjgYvjgo/jgags44Gf44GN44GKDQor44G+44GI44GgLOOBkeOCk+OBmA0KK+OBj+OCjeOBjSzjgbLjgafjgYLjgY0NCivjgYTjgYTjgaAs44Go44GK44KLDQor44GT44KE44Gq44GOLOOBi+OBpOOChA0KK+OBvuOBpOOBquOBjCzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GX44KT44GE44GhDQor44KE44G+44KC44GoLOOBleOBqOOBlw0KK+OBpOOBpOOBhCzjgZfjgoXjgbjjgYQNCivjgZ/jgarjgYss44Gy44KN44G/DQor44G144GP44GX44G+LOOBvuOBleOBkw0KK+OBk+OBmOOBvizjga7jgorjgZMNCivjgavjgZfjgaAs44KG44GN44GTDQor44Gr44GX44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjgYTjgYTjgZjjgb4s44Gb44GE44GE44Gh44KN44GGDQor44Gf44G+44GELOOBruOBtuOBig0KK+OBk+OBrizjgojjgZfjgYoNCivjgb/jgb7jgZks44KE44GZ44Gy44KNDQor44KI44Gt44Gv44KJLOOBn+OBpOOBlw0KK+OCiOOBl+OBoCzjgbXjgb/jgYoNCivjgbXjgY/jgaAs44Gd44Gy44GhDQor44GV44Go44GGLOOBvuOBleOCiOOBlw0KK+OChOOBvuOCguOBqCzjgY/jgb/jgZMNCivjgY3jgZ/jgZQs44Gv44GY44KBDQor44GV44KT44GuLOOBguOBpOOBlw0KK+OChOOBleOBiyzjgoTjgZnjgYLjgY0NCivjgoDjgonjgZ8s44Gf44Gk44GKDQor44Gq44GL44KC44GoLOOBqOOBl+OBguOBjQ0KK+OBleOBj+OCieOBhCzjgb/jga7jgosNCivjga/jgonjgaAs44GX44KF44Gr44GhDQor44GV44Go44GGLOOCiOOBl+OBsuOBkw0KK+OBleOBhOOBqOOBhizjgb/jgaTjgZANCivjgZ3jga0s44GY44KF44KT44GTDQor44Gv44GZ44G/LOOBoOOBhOOBmeOBkQ0KK+OBsuOCieOBnyzjgZ/jgYvjgZcNCivjgoTjgarjgY7jgZXjgo8s44GZ44GZ44KADQor44Gf44Gh44Gw44GqLOOBiuOBleOCgA0KK+OBhOOBqOOBhizjgajjgZfjgb/jgaQNCivjga/jgoks44Gb44GE44GE44GhDQor44GV44GE44Go44GGLOOBi+OBmuOBvw0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44GG44Gh44KE44G+LOOBsuOCjeOBlw0KK+OBi+OBjOOCjyzjga7jgbzjgosNCivjgZ/jgY3jgZbjgo8s44Go44KC44Go44GXDQor44GX44Gq44GM44KPLOOBqOOBl+OBig0KK+OBi+OBjeOBr+OCiSzjgZfjgZLjgb8NCivjgZnjgYzjgazjgb4s44GC44GN44GXDQor44GL44KB44GELOOBi+OBmuOBl+OBkg0KK+OBiuOBj+OBpCzjgojjgZfjgoLjgagNCivjgYTjgZfjgYvjgo8s44GC44Gk44GKDQor44GZ44GO44GG44KJLOOBv+OBpOOBig0KK+OBhuOCgeOBoCzjgZHjgYTjgZMNCivjgb/jgarjgZDjgaEs44GC44GN44Gy44KNDQor44G744GX44GuLOOBi+OBmuOBsuOCjQ0KK+OBq+OBl+OChOOBvizjga7jgbbjgYoNCivjgZ/jgZHjgaAs44KI44GG44GTDQor44GV44GL44GELOOBvuOBleOBmuOBvw0KK+OChOOBpOOBoCzjgYLjgY3jgokNCivjgoLjgorjgZ8s44Go44GX44Gy44KNDQor44GV44GN44G+LOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBhCzjgYvjgZrjgoQNCivjgZ/jgZHjgaAs44GX44GS44KI44GXDQor44Gf44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBiuOBi+OBoCzjgobjgYbjgZjjgpMNCivjgoTjgb7jga0s44GP44Gr44Gy44GTDQor44Gq44GL44KA44KJLOOBl+OCjQ0KK+OBguOBiuOBrizjgZjjgoXjgavjgaENCivjgZnjgY7jgoTjgb4s44Go44GX44KEDQor44G144KK44Gv44KJLOOBi+OBmuOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgZfjgofjgZfjgoXjgpMNCivjgYvjgaQs44KC44KK44GKDQor44GV44Gv44KJLOOBsuOBleOBlw0KK+OBi+OBj+OBnyzjgYTjgaHjgo3jgYYNCivjgYjjga7jgoLjgags44Gf44GR44Gy44GTDQor44KP44Gf44Gq44G5LOOBm+OBhOOBmA0KK+OChOOBtuOBjSzjgZ/jgaTjgoQNCivjgYLjgb7jgZXjgY0s44GN44GE44Gh44KN44GGDQor44KI44GT44GfLOOBn+OBkeOBlw0KK+OBu+OCiuOBruOBhuOBoSzjgZHjgYTjgZ4NCivjgY3jga/jgoks44Gq44GK44Gy44KNDQor44Gf44GR44GgLOOChuOBn+OBiw0KK+OBhOOBreOBqizjgZ/jgYvjgZMNCivjgarjgYvjgZjjgocs44KI44GX44GTDQor44GE44Gh44KE44Gq44GOLOOBr+OCi+OBvw0KK+OBmeOBmuOBjSzjgaHjga/jgosNCivjgarjgovjgZfjgb4s44KG44Gy44GhDQor44GX44KJ44GE44GXLOOBn+OBpOOBig0KK+OBiuOBrizjgYvjga3jgojjgZcNCivjgojjgZfjgYrjgYss44GL44Ga44GKDQor44G+44Gk44GG44KJLOOBruOBtuOBqA0KK+OBteOBmOOBnyzjgaTjgYvjgZUNCivjgYTjgo/jgb8s44Gy44KN44G/DQor44Go44GP44GX44GSLOOBguOBjeOBsuOBkw0KK+OBn+OBquOBoCzjgZ/jgYvjgZcNCivjgYrjgYvjga4s44G+44GT44GoDQor44KC44Gh44Ga44GNLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBl+OBvizjgZPjgYbjgYTjgaENCivjgajjgorjgYbjgb8s44G+44GV44Gy44GnDQor44Gf44GL44G/LOOBqOOBl+OBguOBjQ0KK+OBr+OChOOBmyzjgaTjga3jgYoNCivjgZ/jgYvjga/jgoks44Gk44KL44G+44GkDQor44GN44KTLOOBvuOBleOBsuOBkw0KK+OBmeOBjuOChOOBvizjgYvjgZrjgbLjgo0NCivjgY3jgZ/jgZjjgb4s44Gf44Gg44GXDQor44Gr44Gj44GfLOOBl+OCh+OBkeOBhA0KK+OBtuOCkyzjgarjgYrjgY3jgaENCivjgZfjgoMs44Gf44GL44GXDQor44GK44GLLOOBqOOBiuOCiw0KK+OBiuOBr+OBlyzjgYvjgZrjgoQNCivjga/jgonjgaAs44Gy44KN44GL44GaDQor44KP44GN44GV44GLLOOBpuOBpOOBmA0KK+OBhOOCj+OBquOBjCzjgajjgojjga/jgosNCivjgYvjgo/jgZfjgoos44GR44GE44GYDQor44GE44Gq44KC44GoLOOBjeOBv+OBsuOBkw0KK+OBleOCjyzjgYvjgZrjgb7jgZUNCivjgZ/jgZHjgaAs44Gf44GL44KG44GNDQor44GE44GE44GgLOOBk+OBhuOBhOOBoQ0KK+OBi+OBmOOBrizjgYvjgZrjgYoNCivjgb/jgo8s44KI44GX44Gf44GLDQor44G144GP44GELOOBqOOCguOChuOBjQ0KK+OBmeOBiOOBquOBjCzjgYjjgYTjgZgNCivjgY/jgavjgYjjgaAs44G+44GV44KG44GNDQor44GN44Gf44GK44GLLOOBsuOBp+OBsuOCjQ0KK+OBhOOBqSzjgZPjgYbjgZgNCivjgYrjgY/jgaAs44KI44GX44Gu44G2DQor44G744KK44GL44KPLOOBleOBqOOCiw0KK+OBmeOBiOOCguOBqCzjgbLjgo3jgYvjgZoNCivjgojjgZPjgoTjgb4s44KG44GN44Gu44G2DQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBjeOBmyzjgY3jga/jgaHjgo0NCivjgavjgZfjgoDjgoks44Gy44KN44GXDQor44Gf44GL44GgLOOBkeOBhOOBhOOBoQ0KK+OBpOOBi+OBoCzjgb/jgaTjgYoNCivjgajjgojjgaAs44G+44GV44GL44GaDQor44GV44GuLOOBsuOCjeOChuOBjQ0KK+OBq+OBl+OBoCzjgZ/jgZHjgbLjgZMNCivjgYrjgoLjgoos44KI44GX44Gy44GoDQor44GK44GW44GNLOOBvuOCguOCiw0KK+OBhOOBl+OBvuOCiyzjga/jgovjgYvjgZoNCivjgZ/jgarjgYss44GR44GE44GE44GhDQor44GL44GX44KP44Gw44KJLOOBqOOBiuOCiw0KK+OBguOBleOBrizjgobjgZ/jgYsNCivjgbLjgonjga4s44GL44Ga44Gy44GTDQor44Gf44Gr44KE44G+LOOBqOOBiuOCiw0KK+OBhuOCgeOBsOOChOOBlyzjgorjgofjgZnjgZENCivjgYrjgoDjgoks44GL44Gk44GNDQor44GV44GL44GQ44GhLOOBpuOBpOOChA0KK+OBiuOBi+OCgOOCiSzjgajjgZfjgbLjgo0NCivjgoTjgb7jgoLjgags44Go44G/44GKDQor44GI44Gh44GULOOBl+OCh+OBmA0KK+OBleOCj+OBoCzjgbLjgafjgbLjgZMNCivjgojjgZPjgYQs44GT44GG44GYDQor44GN44Gf44KA44KJLOOBvuOBleOBi+OBmg0KK+OChOOBmSzjgYjjgYTjgZgNCivjgZ/jgYvjgYos44Go44GK44KLDQor44GL44Gk44KJ44GK44GLLOOBvuOBleOBsuOBkw0KK+OBpOOBvOOBhCzjgYTjgaHjgo3jgYYNCivjgaTjgZgs44Go44GK44KLDQor44Gf44GL44Gv44GXLOOBl+OBkuOChOOBmQ0KK+OBmeOBjuOBjSzjgZPjgYbjgYTjgaENCivjgZ/jgZHjgYbjgaEs44Gu44G844KLDQor44GL44G/44GY44KHLOOChOOBmeOBi+OBmg0KK+OBk+OBsOOChOOBi+OCjyzjgZfjgpPjgZgNCivjgYLjgYrjgags44Gm44Gk44KNDQor44Gf44GgLOOBkeOCk+OBmA0KK+OBsuOBoOOBiyzjgbLjgafjgYoNCivjgavjgZfjgoDjgoks44GN44KI44GL44GaDQor44GI44Gw44KJLOOBl+OCh+OBlA0KK+OBv+OBmuOCguOBqCzjgYLjgY3jgokNCivjgZnjgZrjgY0s44GT44KM44GC44GNDQor44GX44GE44GqLOOChOOBmeOBsuOBkw0KK+OBl+OBiuOBnyzjgYvjgZrjgobjgY0NCivjgarjgYvjga/jgoks44KK44GLDQor44GU44GgLOOBi+OBiuOCiw0KK+OBteOCi+OBnyzjgZjjgoXjgpPjgZMNCivjgb7jgZnjgoLjgags44GX44KT44GeDQor44Gq44GL44GM44KPLOOBvuOBleOBsuOBkw0KK+OBhOOBqSzjgZfjgZLjgYoNCivjgojjgorjgbXjgZgs44GC44GN44GKDQor44G+44Gk44KC44GoLOOBn+OBi+OBjQ0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgarjgaTjgYQs44Go44GX44GL44GaDQor44GG44GK44GuLOOChOOBmeOBsuOBkw0KK+OBn+OBquOBlCzjgZjjgaTjgZgNCivjgZ/jgb7jgYzjgo8s44KI44KK44GTDQor44GK44GLLOOBruOCiuOBkw0KK+OBteOBj+OBl+OBvizjgaHjgYjjgZMNCivjgYrjgYvjgaAs44Gk44Gt44GKDQor44GN44Gu44GX44GfLOOBi+OBmuOChA0KK+OBl+OBv+OBmizjgY3jgojjgZcNCivjgZPjgbDjgoTjgZcs44Gv44KL44KI44GXDQor44Gu44GgLOOBv+OBpOOBsuOBkw0KK+OBi+OBrizjgZPjgYbjgYTjgaENCivjgYvjgZjjgYrjgYss44GN44KI44GXDQor44GK44GuLOOBvuOBleOBsuOBlQ0KK+OBiuOBr+OBlyzjgZjjgoXjgavjgaENCivjgZPjgbDjgoTjgZcs44GN44GE44GhDQor44GT44GE44Ga44G/LOOBn+OBi+OChuOBjQ0KK+OBn+OBquOBiyzjga7jgbzjgosNCivjgbXjgY/jgaAs44GC44GN44KJDQor44Gq44GL44GW44KPLOOBj+OBq+OBguOBjQ0KK+OBu+OCiuOBi+OCjyzjgbLjgafjgY0NCivjgYbjgaHjgoTjgb4s44GL44GK44KKDQor44GE44Ga44Gf44GrLOOBkeOBhOOBkw0KK+OBn+OBjeOBhCzjga7jgorjgbLjgagNCivjgZ/jgYvjgZss44Gf44GL44GXDQor44G+44GZ44GW44GNLOOBvuOBleOCiw0KK+OBguOCk+OBqeOBhizjgobjgYbjgZMNCivjgYvjgZ/jgY7jgoos44Gy44Gn44Gy44GTDQor44KC44KK44KE44G+LOOBguOBjeOCiQ0KK+OBleOBqOOBhizjgY3jgojjgZ/jgYsNCivjgbLjgovjgYvjgo8s44G+44GV44GXDQor44GG44GI44GgLOOBpOOBkOOBsuOCjQ0KK+OBquOBiyzjgYLjgY3jgbLjgagNCivjgb/jgoTjgZbjgY0s44Gf44GL44GXDQor44GK44GP44G8LOOBvuOBleOChuOBjQ0KK+OBn+OBoeOBi+OCjyzjgobjgbLjgaENCivjgo/jgZ/jgarjgbks44GE44GP44GKDQor44GC44GV44GL44KPLOOBsuOBqOOBlw0KK+OBi+OCj+OBr+OCiSzjgajjgZfjgoQNCivjgYrjgZXjgaAs44Gu44G844KLDQor44GV44GL44GELOOBleOBqOOBlw0KK+OBj+OCiuOChOOBvizjgoLjgorjgbLjgo0NCivjgZXjgYTjgajjgYYs44GY44KF44Gr44GhDQor44GZ44GN44GM44KJLOOBqOOBl+OBkw0KK+OBguOBkeOBsizjga7jgbbjgaTjgZANCivjga/jgoTjgZcs44Gf44GL44GXDQor44GL44KP44GfLOOBqOOBiuOCiw0KK+OBl+OBvuOBjOOBjSzjgZfjgZLjgYTjgaHjgo3jgYYNCivjgbvjgoos44Go44GX44KEDQor44Gu44KA44KJLOOBguOBjeOBsuOCjQ0KK+OBqOOCgOOCiSzjgZXjgajjgZcNCivjgY/jgbws44G+44GV44GKDQor44Gr44GX44KC44GoLOOBqOOBl+OBn+OBiw0KK+OCiOOBl+OBoCzjgbLjgo3jgZcNCivjgZXjgY4s44G+44GV44Gf44GLDQor44GL44KT44GuLOOBvuOBk+OBqA0KK+OChOOBtuOBrizjgb/jgaHjgarjgYoNCivjgoTjgZnjgarjgYws44Gb44GE44GYDQor44Gy44GM44GX44GG44GILOOBvuOBleOChA0KK+OBk+OBleOBjSzjga/jgZjjgoENCivjgarjgYvjgZjjgocs44Gv44KL44GKDQor44GK44GuLOOBleOBquOBiA0KK+OCgOOCieOBnyzjgZPjgZrjgYgNCivjgZfjgofjgZgs44KI44GX44GTDQor44GL44KP44KC44GoLOOBj+OBv+OBkw0KK+OBiOOBleOBjSzjgY3jgojjgb8NCivjgYjjgYTjganjgoEs44Gq44GK44G/DQor44GZ44Ga44GNLOOBv+OBleOBiA0KK+OCguOBqOOChOOBvizjgYvjgZrjgogNCivjga/jgb7jgaAs44KI44GX44GTDQor44GT44GX44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBr+OChOOBlyzjgY3jgojjgZMNCivjgoTjgb7jgZbjgY0s44Gu44KK44Gy44GoDQor44G+44Gk44KC44GoLOOBk+OBhuOBmA0KK+OBiuOBrizjgZ/jgYvjgojjgZcNCivjga/jgarjgo8s44GR44GE44GTDQor44Gv44Gb44GM44KPLOOBvuOBleOBjQ0KK+OBv+OChOOBnyzjgbLjgo3jgobjgY0NCivjgY3jgZ/jgZbjgo8s44Gy44KN44Gy44GoDQor44GI44KT44GpLOOBvuOBleOChuOBjQ0KK+OBquOBjOOBleOBiyzjgajjgZfjgbLjgo0NCivjgojjgZfjgoLjgags44Go44GK44KLDQor44GP44KN44GV44KPLOOBk+OBng0KK+OBvuOCi+OChOOBvizjgbLjgafjgYLjgY0NCivjgarjgYvjgavjgZcs44GC44GN44Gy44KNDQor44KI44GX44GgLOOBvuOBleOCiw0KK+OBteOBj+OBnyzjgbLjgafjgYvjgZoNCivjgbXjgZjjgZXjgo8s44KG44Gf44GLDQor44GV44GP44G+LOOChOOBmeOBi+OBmg0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgokNCivjgo/jgaAs44Go44GX44GKDQor44Gr44GX44GW44GNLOOBvuOBleOBr+OCiw0KK+OBteOBi+OBjOOCjyzjgobjgY3jgoQNCivjgYLjgYrjgoTjgb4s44KI44GX44G+44GVDQor44GN44KI44Gf44GrLOOBl+OCk+OBhOOBoQ0KK+OBqOOCiuOBr+OCiSzjgZ/jgaDjgZcNCivjgarjgYzjga4s44GR44GE44GYDQor44GK44GMLOOBvuOBleOBguOBjQ0KK+OBleOBi+OBrizjgb7jgZXjgYvjgZoNCivjgb/jgaTjga/jgZcs44KE44GZ44Gy44GTDQor44GC44KK44KC44GoLOOCiOOBl+OBguOBjQ0KK+OCiOOBl+OBvuOBpCzjgbLjgo3jgb/jgaQNCivjgYLjgYrjgoTjgY4s44GR44KT44GV44GPDQor44KE44G+44GgLOOCiOOBl+OBr+OCiw0KK+OCgOOCieOBnyzjgYvjgZrjgobjgY0NCivjgYTjgorjgYgs44GR44GE44GE44GhDQor44KE44G+44GW44GNLOOBsuOBp+OChA0KK+OBiOOBnuOBiCzjgYvjgaTjgbLjgZMNCivjgZXjgajjgYYs44KI44GX44Gv44KLDQor44GK44GfLOOBi+OBpOOBvw0KK+OBhOOBruOBhizjgb7jgZXjgYrjgb8NCivjgYvjgaks44Gu44G244GKDQor44GV44GV44GNLOOBiOOBpOOBkw0KK+OBi+OBkeOBsizjgb7jgZXjgYvjgZoNCivjgaTjgaHjgoQs44Gk44Go44KADQor44G+44GV44GK44GLLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgajjga0s44KG44Gf44GLDQor44GK44KP44GgLOOBn+OBi+OBlw0KK+OBhuOBiOOBjSzjgb7jgZXjgbLjgo0NCivjgb7jgYjjgaAs44Gb44GE44GTDQor44G144GY44GK44GLLOOBn+OBi+OBguOBjQ0KK+OBhuOCieOBuSzjgYLjgY3jgYoNCivjgarjgYvjgoDjgoks44G+44GV44Gy44GTDQor44GE44GV44GLLOOChuOBv+OBkw0KK+OBq+OBl+OBleOBiyzjgZfjgpPjgYTjgaENCivjgYTjgo/jgZUs44G+44GV44Gu44KKDQor44Gf44GP44GX44G+LOOBkeOBhOOBhOOBoQ0KK+OBpOOBi+OCguOBqCzjgaTjgojjgZcNCivjgZXjgY/jgb4s44GN44KI44GXDQor44Gy44KH44GpLOOCguOCiuOBsuOBqA0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgoQNCivjgZXjgZXjgY0s44KI44GX44Gy44KNDQor44G144GP44KP44GNLOOCiOOBl+OBsuOCjQ0KK+OBiuOBj+OCgOOCiSzjgYvjgZrjgoQNCivjgZ/jgYvjga/jgZcs44GX44KH44GeDQor44GX44KN44GELOOChOOBmeOBig0KK+OBk+OBi+OBtizjgajjgb/jgbLjgo0NCivjga7jgZDjgaEs44Gu44KK44GC44GNDQor44Gf44GL44GkLOOBvuOBleOBqA0KK+OCiOOBreOBluOCjyzjgYvjgZrjga7jgooNCivjgZXjgYvjgYTjgaAs44KE44GZ44GTDQor44GT44GE44Ga44G/LOOBquOBiuOBkw0KK+OBvuOBiOOBoCzjgobjgbLjgaENCivjgb7jgpPjgaAs44G+44GV44GC44GNDQor44GT44GQ44KMLOOBruOBtuOBig0KK+OBguOBjeOCguOBqCzjgYjjgYTjgYTjgaENCivjgZ/jgZHjgoDjgoks44KI44GX44GKDQor44GZ44Ga44GNLOOBteOBv+OBig0KK+OChOOBvuOBhuOBoSzjgZ/jgZHjgbLjgZMNCivjgZXjgYjjgY0s44Gy44KN44GXDQor44KP44GL44Gw44KE44GXLOOBk+OBhuOBhOOBoeOCjQ0KK+OBguOBjeOCguOBqCzjgb7jgZXjgYoNCivjgojjgZfjgaAs44Go44GX44KEDQor44GV44Go44GGLOOBvuOBleOCiOOBlw0KK+OBiuOBl+OBvizjgajjgojjgbLjgZMNCivjgZXjgZXjgY0s44KE44GZ44GXDQor44GC44KJ44GELOOBn+OBoOOBig0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgY0NCivjgYTjgZHjgoLjgags44Gy44KN44GL44GaDQor44GN44GP44GELOOBpuOBpOOChA0KK+OBsuOCieOBnyzjgoTjgZnjgbLjgo0NCivjgb7jgY3jgYbjgaEs44G/44Gk44KEDQor44GT44Gb44GNLOOBi+OBpOOChuOBjQ0KK+OBq+OBl+OBi+OCjyzjgZ/jgaDjgZcNCivjgYTjgYzjgonjgZcs44GE44Gh44KN44GGDQor44Gf44Gq44GLLOOCiOOBl+OBqA0KK+OBu+OCk+OBoCzjgajjgoLjgYLjgY0NCivjga/jgaPjgZ8s44GT44GG44GYDQor44Gv44KJ44GgLOOBmOOCheOBq+OBoQ0KK+OCiOOBl+OBoCzjgobjgYbjgZgNCivjgo/jgZ/jgarjgbks44Gu44G244KG44GNDQor44GT44GE44Ga44G/LOOBvuOBleOBsuOBkw0KK+OBk+OBmeOBoCzjgbLjgo3jgYLjgY0NCivjgb/jgoTjgZEs44Gk44Gt44GKDQor44G144GY44KELOOChOOBmeOBqOOBlw0KK+OBvuOBleOBjSzjgb7jgZXjgbLjgacNCivjgZXjgY/jgonjgYQs44GC44GN44Gy44GnDQor44Gr44GX44KE44G+LOOBpuOBpOOBmA0KK+OBi+OCj+OBmyzjgobjgY3jgYoNCivjgYrjgYvjgZbjgo8s44GT44GG44GE44GhDQor44GC44GV44GLLOOBsuOCjeOBvw0KK+OBiuOBjOOCjyzjgZ/jgY/jgoQNCivjgarjgYzjgZXjgo8s44GX44KNDQor44GN44Gf44KP44GNLOOChOOBmeOBsuOCjQ0KK+OBl+OBv+OBmizjgbXjgb/jgYoNCivjgZPjgbDjgoTjgZcs44Gf44Gg44Gk44GtDQor44Gf44Gh44Gw44GqLOOBiOOBhOOBhOOBoQ0KK+OBhOOBvuOBquOBiyzjgbLjgo3jgb8NCivjgYbjgZfjgb7jgoss44Gy44GV44GL44GaDQor44GK44GL44KA44KJLOOBiuOBleOCgA0KK+OChOOBvuOBrizjgbLjgo3jgZcNCivjgY3jgZ/jgoDjgoks44KK44KH44Gy44GhDQor44Gf44GL44G+44GkLOOBquOBiuOBsuOBlQ0KK+OBqOOBjeOBi+OCjyzjgb7jgZXjgYLjgY0NCivjgYTjgZHjgaAs44Gf44GR44GXDQor44GE44GX44GgLOOBguOBjeOCiQ0KK+OBn+OBq+OBr+OCiSzjgbLjgafjgY0NCivjgYrjgYzjgo8s44KI44GX44GKDQor44Gf44Gq44GLLOOBn+OBi+OBruOBtg0KK+OBquOBi+OBmOOChyzjgZfjgpPjgoQNCivjgajjgoLjgZbjgo8s44Go44GX44KG44GNDQor44Gv44KJ44GgLOOBruOBtuOBguOBjQ0KK+OBr+OBquOBtuOBlSzjga/jgZjjgoENCivjgajjgY/jgYrjgYss44G+44GV44GKDQor44G544Gj44GX44KHLOOBvuOBleOBruOCig0KK+OBquOBi+OBl+OBvizjgb7jgZXjga/jgosNCivjgYLjgZXjgY/jgoks44GX44GS44GTDQor44G/44KE44Gn44KJLOOBleOBqOOBvw0KK+OBmeOBmuOBjSzjgZHjgpMNCivjgojjgZfjgoDjgoks44GR44KT44GE44GhDQor44GV44KPLOOChuOBhuOBhOOBoQ0KK+OBquOBi+OChOOBvizjgb/jgaHjgYvjgZoNCivjgbLjgonjgZbjgo8s44Gy44Gn44GNDQor44G144GY44KP44KJLOOBi+OBmuOBsuOBpw0KK+OBmeOBjOOCj+OCiSzjgajjgZfjgoQNCivjgZ/jgavjgYzjgo8s44Gu44G244Gf44GLDQor44G744KT44GgLOOBv+OBpOOBjg0KK+OBr+OBquOBhCzjgbLjgajjgZcNCivjgYjjgZDjgaEs44GX44KH44GZ44GRDQor44GL44GV44GELOOBkeOBhOOBkw0KK+OBj+OCjeOBleOCjyzjga7jgbbjgZMNCivjgZ/jgZjjgb4s44Gb44Gk44GTDQor44GV44Go44GGLOOBguOBpOOBkw0KK+OBsuOBs+OBrizjgYLjgaTjgZcNCivjgZnjgYzjgoQs44G+44GV44Gy44KNDQor44GP44KJ44GfLOOBi+OBpOOBsuOBkw0KK+OBvuOBmeOBoCzjgoTjgZnjgbLjgZMNCivjgZnjgY7jga/jgoks44Gy44KN44GXDQor44GL44Gt44GTLOOBquOBiuOBjQ0KK+OBi+OBpCzjgojjgZfjgbLjgZUNCivjgb7jgoss44G+44GV44KG44GNDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBqOOBl+OBiuOBiyzjgojjgZfjgbLjgo0NCivjgZfjgZLjga4s44G+44GV44GC44GNDQor44KE44G+44KC44GoLOOBqOOBiuOCiw0KK+OBquOBi+OBjOOCjyzjgb7jgorjgYoNCivjgoTjgb7jgZDjgaEs44KE44GZ44GoDQor44GL44KP44KC44KKLOOBk+OBhuOBhOOBoQ0KK+OCgOOCieOChOOBvizjgZXjgY/jgoHjgYQNCivjgZfjgoUs44KI44Gy44GhDQor44GE44GR44GgLOOBsuOCjeOBlw0KK+OBk+OBoOOBvizjgZfjgpMNCivjgYvjgajjgYYs44Gf44Gk44GXDQor44Gv44GP44Gh44KHLOOBpOOBreOBig0KK+OBi+OBkuOCkyzjgZfjgoUNCivjgabjgZrjgYss44GT44GG44GE44GhDQor44Gf44Gr44GQ44GhLOOBr+OCi+OBjQ0KK+OBpuOCieOBoCzjgZHjgYTjgZMNCivjgYvjgajjgYYs44KI44GX44KG44GNDQor44Gq44GE44Go44GGLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgbLjgo3jgoQNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GL44GaDQor44Gf44Gq44GLLOOBguOBjeOCiQ0KK+OBleOBleOBjSzjgorjgofjgZgNCivjgbvjgpPjgaAs44GV44Go44G/DQor44Gy44GI44GgLOOBi+OBpOOBvw0KK+OBleOBi+OBhCzjgbLjgo3jgY0NCivjgYvjgaTjgb8s44KI44GX44Gy44KNDQor44Gf44GR44G5LOOBvuOBleOCiw0KK+OBruOBkOOBoSzjgarjgYrjgoQNCivjgo/jgaAs44Gy44KN44KG44GNDQor44GG44GI44KE44G+LOOBn+OBpOOBig0KK+OBhuOBiOOBrizjgZXjgajjgosNCivjgZ/jgpPjgZQs44GE44GV44GKDQor44KA44KJ44GL44G/LOOBi+OBiuOCiw0KK+OBguOCieOBjSzjgZPjgYbjgZgNCivjgYLjgonjgZss44G+44GV44Gf44GRDQor44KE44G+44KC44GoLOOBquOBiuOBjQ0KK+OCj+OBl+OBiizjgZ/jgYvjgY0NCivjgo/jgZHjgZjjgb4s44Gf44GR44GKDQor44GT44GE44Ga44G/LOOBn+OBi+OBlw0KK+OBqOOBj+OChOOBvizjgZHjgpPjgZgNCivjgajjgb/jgarjgYws44Gy44Gn44Go44GXDQor44GN44GX44GgLOOCj+OBn+OCiw0KK+OBmOOCh+OBkeOCkyzjgb/jgaHjgagNCivjgbLjgo3jgZss44GC44GN44GKDQor44GG44Gh44KE44G+LOOBi+OBmuOBruOCig0KK+OCj+OBi+OBmeOBjizjgZ/jgYvjgZcNCivjgYTjgZfjgZDjgo0s44Gf44GL44GXDQor44Gr44GX44KA44KJLOOBpOOCiOOBlw0KK+OBhOOBruOBvuOBnyzjgYjjgYTjgZgNCivjgaTjgaTjgb8s44GR44KT44GYDQor44GE44KK44GILOOBn+OBi+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgYoNCivjgYbjgYjjga4s44GL44Gk44G/DQor44G744KT44GgLOOBk+OBng0KK+OBjeOBn+OCgOOCiSzjgb7jgZnjgbLjgo0NCivjgoTjgb7jgYzjgb8s44GX44KNDQor44Gq44GL44Gr44GXLOOBsuOCjeOChuOBjQ0KK+OBhuOBiOOBoCzjgojjgZfjgbXjgb8NCivjgbLjgo3jgZ8s44GR44KT44GZ44GRDQor44GG44GI44GgLOOBqOOBl+OBteOBvw0KK+OBhOOBkeOBoCzjgZHjgpPjgZgNCivjga/jgarjgbbjgZUs44Gb44GE44GYDQor44GT44Gg44G+LOOBv+OBoeOBsuOCjQ0KK+OBiuOBi+OCguOBqCzjgojjgZfjgobjgY0NCivjgZnjgZrjgY0s44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBn+OBoOOBn+OBiw0KK+OBq+OBhOOBj+OCiSzjgYvjgaTjga7jgooNCivjgavjgZfjgaAs44Gy44KN44GL44GaDQor44GK44GV44G5LOOBi+OBiuOCiw0KK+OBu+OBneOBi+OCjyzjgajjgZfjgbLjgZMNCivjgYTjgb7jgYos44GC44Gk44GXDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBiuOBrizjgZfjgpPjgYTjgaENCivjgarjgYvjgoTjgb4s44GK44GV44KADQor44Gv44KE44GXLOOBi+OCiOOBkw0KK+OBmeOBjOOBr+OCiSzjgarjgb8NCivjga/jgonjgaAs44G+44GV44Gy44KNDQor44GC44G5LOOBn+OBi+OBlw0KK+OBguOBuSzjgo/jgZ/jgosNCivjgYLjgbks44Go44KC44GNDQor44GC44Gg44GhLOOBsuOCjeOBlw0KK+OBguOBhOOBsCzjgojjgorjga7jgbYNCivjgYLjgYvjgbDjga0s44Gy44KN44GC44GNDQor44GC44KT44Gp44GGLOOBquOBiuOBjQ0KK+OBguOCk+OBqeOBhizjgbLjgo3jgb/jgaQNCivjgYLjgYrjgY0s44Gy44GV44GIDQor44GX44GE44GNLOOBguOBjeOBsuOCjQ0KK+OBguOCieOBhCzjgbLjgo3jgbLjgZUNCivjgYLjgonjgYQs44GY44KF44Gr44GhDQor44GC44KJ44GELOOBkeOCk+OBhOOBoQ0KK+OBguOCieOBi+OCjyzjgojjgbLjgaENCivjgYLjgonjgY0s44KI44GX44Gu44G2DQor44GC44KJ44GNLOOCiOOBl+OBruOCig0KK+OBguOCieOBjSzjgojjgZfjgYoNCivjgYLjgonjgY0s44GR44GE44GYDQor44GC44KJ44G+44GNLOOBi+OBmuOBruOCig0KK+OBguOCieOCgSzjgYTjgaHjgo3jgYYNCivjgYLjgorjgoDjgoks44GX44KF44Gr44GhDQor44GC44GV44G/LOOBkeOBhOOBhOOBoQ0KK+OBguOBmuOBvizjgZHjgpPjgYTjgaENCivjgbDjgbAs44Gf44Gg44Gy44KNDQor44Gw44GwLOOBoOOBhOOBmeOBkQ0KK+OBoeOBsCzjgYvjgZrjgYoNCivjgaHjgbAs44GI44GE44G7DQor44Gh44KTLOOBqOOCguOChuOBjQ0KK+OBoOOBhOOBk+OBjyzjgb7jgZXjgZcNCivjgafjgZDjgaEs44Gy44KN44GXDQor44Gn44GNLOOBl+OCh+OBsuOBoQ0KK+OBqeOBhCzjgajjgYrjgosNCivjgYjjgaDjgZXjgo8s44Gf44GR44GXDQor44GI44GQ44GhLOOBhOOBleOBig0KK+OBiOOCk+OBqSzjgZ/jgaTjgoQNCivjgYjjgpPjgaks44Gf44GL44KG44GNDQor44GI44KK44GL44KPLOOBjeOCiOOBr+OCiw0KK+OBteOBmOOBhCzjgYvjgZrjgYLjgY0NCivjgbXjgZjjgoLjgags44G+44GN44GKDQor44G144GY44KC44GoLOOBn+OBi+OBrQ0KK+OBteOBmOOBrizjgZ/jgZHjgZcNCivjgbXjgYvjga/jgoks44GX44KF44Gy44GhDQor44G144GL44G/LOOBsuOCjeOCiOOBlw0KK+OBteOBi+OChOOBvizjgbLjgafjgYvjgZoNCivjgbXjgY/jgaAs44KC44Go44GTDQor44G144GP44GELOOBruOBtuOBguOBjQ0KK+OBteOBj+OCguOBqCzjgZPjgYbjgYTjgaENCivjgbXjgY/jgarjgYws44Go44KC44KG44GNDQor44G144GP44GX44G+LOOCiOOBl+OBruOBtg0KK+OBteOBj+OBl+OBvizjgbLjgo3jga7jgooNCivjgbXjgarjgY0s44KI44GX44GC44GNDQor44G144Gq44GNLOOBruOBtuOBsuOBkw0KK+OBteOCi+OChCzjgbLjgafjgY0NCivjgZTjga/jgoks44KI44GX44Gq44KKDQor44GU44GoLOOBi+OBmuOCjQ0KK+OBr+OBjCzjgb7jgZXjgYoNCivjga/jgY7jga4s44KG44GG44GTDQor44GE44Gh44KA44KJLOOBsuOCjeOBlw0KK+OBr+OBvizjgbLjgafjgagNCivjga/jgarjgaAs44G+44KG44G/DQor44GE44GwLOOCiOOBl+OBguOBjQ0KK+OBr+OBm+OBuSzjgYLjgY3jgokNCivjga/jgZvjgYzjgo8s44Gq44GK44GNDQor44Gv44GX44KC44GoLOOBruOBtuOChuOBjQ0KK+OBr+OBlyzjgb7jgZXjgobjgY0NCivjga/jgZ/jga4s44G+44GV44Gy44GTDQor44Gv44Go44KKLOOBsuOCjeOBlw0KK+OBr+OChOOBlyzjgb7jgZXjgbLjgZMNCivjga/jgoTjgZcs44Gu44G244GKDQor44Gy44Gg44GLLOOBi+OBmuOBn+OBiw0KK+OBsuOBjOOBlyzjgZXjgYvjgYgNCivjgb7jga4s44KE44GZ44G144G/DQor44Gy44KJ44GELOOBhOOBleOBig0KK+OBi+OBv+OBleOBjSzjgojjgZfjgbLjgZUNCivjgbLjgonjga4s44GX44KT44GE44Gh44KN44GGDQor44Gy44KN44GELOOBn+OBoOOBlw0KK+OBsuOCjeOCguOCiizjgYvjgZrjgo0NCivjgbLjgo3jgZXjgo8s44G+44GT44GoDQor44Gy44KN44GV44KPLOOBquOBiuOBjQ0KK+OBsuOCjeOBmyzjgb7jgZXjgojjgZcNCivjgbvjgpPjgaAs44GN44KI44GV44GgDQor44G744KT44G+LOOBi+OBpOOBuOOBhA0KK+OBu+OCiuOBuSzjgajjgZfjgo0NCivjgbvjgorjgYgs44Gu44KK44GC44GNDQor44G744KK44GQ44GhLOOBquOBiuOBguOBjQ0KK+OBvuOBpOOCguOBqCzjga7jgbbjgbLjgo0NCivjgbvjgoos44GX44KT44Gf44KN44GGDQor44G744KKLOOBguOBjeOBsuOBkw0KK+OBu+OBl+OBi+OCjyzjgZPjgYbjgZgNCivjgbvjgZ3jgYvjgo8s44GL44Ga44GTDQor44Gy44KH44GpLOOBjeOCiOOBn+OBiw0KK+OBhOOBsOOCieOBjSzjgojjgZfjgYvjgZoNCivjgYTjgaHjgYrjgYss44KI44GX44Gf44GLDQor44GE44GR44GgLOOBqOOBl+OBsuOBkw0KK+OBhOOBvuOBhCzjgb7jgZXjgbLjgZMNCivjgYTjgb7jgoDjgoks44Gy44Gn44GKDQor44GE44G+44Gq44GLLOOCiOOBl+OBr+OCiw0KK+OBhOOBquOBoCzjgYLjgaTjgZcNCivjgYTjgarjgoDjgoks44GK44GV44KADQor44GE44Gu44GG44GILOOBl+OCk+OBhOOBoQ0KK+OBguOCieOBhCzjgogNCivjgYTjga7jgYbjgYgs44Gy44KN44KE44GZDQor44GE44GX44GELOOBl+OBkuOCiw0KK+OBhOOBl+OBhCzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44KG44Gy44GhDQor44GE44GX44GL44KPLOOBqOOBl+OBsuOBpw0KK+OBhOOBl+OBiuOBiyzjga/jgZjjgoENCivjgYTjgZ3jgaAs44Gy44KN44G/DQor44GE44Go44GGLOOBruOCiuOChuOBjQ0KK+OBhOOBqOOBhizjgZnjgZnjgoANCivjgYTjgajjgYYs44G+44GV44Gv44KLDQor44GE44Go44GELOOChuOBsuOBoQ0KK+OBhOOBqOOBhizjgYLjgaTjgbXjgb8NCivjgYTjgo/jgYQs44Gf44GL44Gy44GoDQor44GE44Ga44G/44KELOOCiOOBl+OBn+OBiw0KK+OBi+OBmOOBnyzjgZ/jgYvjgYLjgY0NCivjgYvjgoHjgYQs44Go44KC44KEDQor44GL44Gq44GELOOBsuOCjeOBlw0KK+OBi+OBquOBluOBlyzjgZPjgYbjgYTjgaENCivjgYvjga3jgZMs44GV44Go44KLDQor44GL44Gt44GTLOOBqOOBl+OBvw0KK+OBi+OBrizjgYjjgYTjgZgNCivjgYvjgorjgYYs44GN44KI44G/DQor44Gk44GN44GYLOOBsuOCjeOBlw0KK+OBi+OBleOBvuOBpCzjgb/jgY3jgYoNCivjgYvjgZ/jgY7jgZcs44GC44GN44KJDQor44GL44Gf44KE44G+LOOBvuOBk+OBqA0KK+OBi+OBn+OChOOBvizjgb7jgorjgZMNCivjgYTjgZ3jgaAs44G+44GV44Gy44KNDQor44GL44Gf44KE44G+LOOBoeOBmuOBkw0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgagNCivjgYvjgajjgYYs44Gf44Gg44GXDQor44GL44Go44GGLOOBl+OCk+OBmA0KK+OBi+OBqOOBhizjgYLjgY3jgokNCivjgYvjgaTjgb7jgZ8s44G+44GV44Gu44KKDQor44GL44KP44G5LOOBleOBqOOBlw0KK+OBi+OCj+OBuSzjgZfjgpPjgZgNCivjgYvjgo/jgbks44G+44GV44Gy44KNDQor44GL44KP44GgLOOBruOCiuOBkw0KK+OBi+OCj+OBoCzjgZ/jgZHjgZcNCivjgYvjgo/jgoLjgags44G+44GT44GoDQor44GL44KP44Gf44GrLOOBhOOBj+OBig0KK+OBjeOBv+OBmuOBiyzjgZfjgZLjgZgNCivjgY3jgoDjgoks44Gf44GL44Gu44KKDQor44GN44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBjeOBruOBl+OBnyzjgb7jgZXjgZcNCivjgY3jgZXjgYss44GC44GN44KJDQor44GN44GX44GgLOOBpuOBpOOCgeOBhA0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgYoNCivjgY3jgZ/jgoDjgoks44GT44GG44GYDQor44GN44GfLOOBleOBpOOBig0KK+OBjeOCiOOBrizjgb7jgZPjgagNCivjgZPjgbDjgoTjgZcs44KE44GZ44GXDQor44GT44Gg44G+LOOBoeOBiA0KK+OBqeOBsizjgZ/jgY/jgoQNCivjgZPjga/jgoks44KG44GN44Gu44G2DQor44GT44GE44GnLOOBguOBpOOBlw0KK+OBk+OBhOOCjyzjgoDjga3jgbLjgagNCivjgZPjgYTjgZrjgb8s44GR44KT44GZ44GRDQor44GT44G+44GkLOOBguOBjeOBsuOBkw0KK+OBk+OCgeOBoCzjgYLjgY3jgYoNCivjgZPjgpPjgaks44Gb44GE44GNDQor44GT44KT44GpLOOBv+OBoeOCjQ0KK+OBk+OBq+OBlyzjgYvjgZrjgoQNCivjgZPjgZXjgYss44KK44KH44Gf44KN44GGDQor44GT44Gf44GNLOOChOOBmeOBsuOCjQ0KK+OBk+OBn+OBqyzjgbLjgafjgYoNCivjgZPjgajjgbbjgY0s44Gf44GL44GTDQor44Gf44GX44KNLOOBjeOCh+OBsuOBoQ0KK+OBj+OBvOOBnyzjgojjgZfjgbLjgo0NCivjgY/jgbws44Gy44Gn44GoDQor44GP44Gp44GGLOOBvuOBleOChuOBjQ0KK+OBj+OBvuOBjOOBhCzjgYvjgaTjga7jgooNCivjgY/jgo3jgZss44GL44Ga44Gq44KKDQor44GP44GX44G+LOOBsuOCieOChOOBmQ0KK+OBj+OBl+OBv+OChCzjgb7jgZXjgY0NCivjgY/jgaTjgYvjgZEs44Go44GX44KEDQor44GP44KP44GuLOOBsuOCh+OBmA0KK+OBh+OBiCzjga/jgovjgZMNCivjgb7jgaTjgarjgYws44KE44GZ44Gf44GLDQor44G+44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBiOOBr+OCiSzjgb/jgY0NCivjgYjjga7jgY0s44Go44GK44KLDQor44G+44GI44GL44KPLOOBmOOCheOCk+OBmA0KK+OBvuOBiOOBjSzjgbLjgo3jgYLjgY0NCivjgb7jgpPjga4s44GY44KF44KTDQor44G+44GuLOOBsuOBp+OBjQ0KK+OBvuOCk+OBn+OBqyzjgbLjgo3jgZcNCivjgb7jgovjgoTjgb4s44GL44Ga44Gu44KKDQor44G+44GbLOOChuOBjeOBvuOBlQ0KK+OBvuOBmeOBluOCjyzjgabjgaTjgoQNCivjgb7jgaTjgaAs44G+44GV44GoDQor44G+44Gk44GELOOChOOBmeOBsuOCjQ0KK+OBvuOBpOOBhCzjgYrjgZXjgoANCivjgb7jgaTjgoLjgags44KE44GZ44GTDQor44G+44Gk44KA44KJLOOBk+OBjQ0KK+OBvuOBpOOBrizjgZfjgpPjgYTjgaENCivjgb7jgaTjgZbjgY0s44GX44KF44GeDQor44G/44GNLOOBi+OBmuOBsuOCjQ0KK+OBv+OBk+OBoCzjgbLjgafjgY0NCivjgb/jgoDjgoks44KG44GG44GYDQor44G/44KA44KJLOOBleOBqOOBlw0KK+OBv+OBquOBvyzjgajjgZfjgoQNCivjgb/jgarjgb8s44GT44GG44GY44KNDQor44G/44Gq44GoLOOBguOChOOBkw0KK+OBv+OBreOBvuOBpCzjgZfjgpPjgY4NCivjgb/jga0s44GI44GE44GYDQor44G/44GX44G+LOOCiOOBsuOBoQ0KK+OBv+OCjyzjgoTjgZnjgbLjgo0NCivjgb/jgoTjgZDjgaEs44GL44Ga44Gy44GTDQor44G/44KI44GXLOOBvuOBleOBig0KK+OBv+OBmuOBnyzjgb/jgaTjga7jgooNCivjgoLjgoLjga7jgYQs44GE44Gk44GTDQor44G744KT44GgLOOBvuOBleOBqA0KK+OCguOCiuOBnyzjgoTjgZnjgYLjgY0NCivjgoLjgorjgZ8s44GL44Ga44GC44GNDQor44KC44KKLOOBruOCiuOChuOBjQ0KK+OCguOCiizjgozjgYTjgZMNCivjgoLjgoos44GX44GS44KLDQor44KC44KKLOOBpuOCi+OChuOBjQ0KK+OCguOCiizjgYvjgZrjgZ/jgYsNCivjgoDjga3jgoDjgoks44GX44GS44Gu44G2DQor44KA44KJ44GL44G/LOOBleOBqOOBlw0KK+OCgOOCieOBiuOBiyzjga7jgbbjgbLjgo0NCivjgb/jgofjgYws44KE44GZ44GXDQor44Gq44GM44G/44GtLOOBruOCiuOBkw0KK+OChOOBvuOBoCzjgb7jgZXjgZ/jgYsNCivjgarjgYzjgYos44Gy44KN44KG44GNDQor44Gq44GM44GfLOOBvuOBleOBsuOCjQ0KK+OBquOBhOOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgarjgYvjgYzjgo8s44KG44GG44GTDQor44Gq44GL44GE44GhLOOBmOOCheOCk+OBkw0KK+OBleOBleOBjSzjgZHjgYTjgZnjgZENCivjgarjgYvjgZjjgb4s44Gf44GR44GXDQor44Gq44GL44GX44G+LOOChOOBmeOBlw0KK+OBquOBi+OBk+OBmCzjgYLjgY3jgbLjgZMNCivjgarjgYvjgoDjgoks44GC44GN44KJDQor44Gq44GL44KA44KJLOOBguOBpOOBlw0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgbLjgo0NCivjgarjgYvjgoDjgoks44G/44Gu44KLDQor44Gq44GL44KA44KJLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgajjgZfjgb/jgaQNCivjgarjgYvjgoDjgoks44KI44GYDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OBquOBi+OBq+OBlyzjgbLjgo3jgY0NCivjgarjgYvjga4s44G+44GV44GXDQor44Gq44GL44GuLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBl+OBiizjgajjgZfjgYvjgZoNCivjgarjgYvjgZ8s44GR44KT44GYDQor44Gq44GL44KE44G+LOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBquOCk+OBkSzjgZ/jgo3jgYYNCivjgarjgonjgZbjgY0s44Gy44KN44Gu44KKDQor44Gq44KK44GbLOOBpOOBi+OBlQ0KK+OBquOCi+OBiuOBiyzjgbLjgo3jgZcNCivjga3jgoLjgags44Gd44GG44Gf44KN44GGDQor44Gr44KA44KJLOOBn+OBpOOChA0KK+OBq+OCgOOCiSzjgb7jgZXjgbXjgb8NCivjgavjgZfjgoDjgoks44GV44Go44GXDQor44Gr44GX44GuLOOBqOOBiuOCiw0KK+OBq+OBl+OBl+OBnyzjgZjjgoXjgpMNCivjgavjgZfjgYbjgaEs44Gg44GE44GZ44GRDQor44Gr44GX44KE44G+LOOChuOBhuOBkw0KK+OChOOBmOOBvizjgojjgbLjgaENCivjgavjgZfjgZbjgo8s44GP44G/44GTDQor44Gr44KPLOOBqOOBl+OChuOBjQ0KK+OBruOBtuOBquOBjCzjgabjgaTjgoQNCivjga7jgYzjgb8s44GN44KT44KEDQor44Gu44GQ44GhLOOBk+OBhuOBhOOBoeOCjQ0KK+OBruOBkOOBoSzjgYvjgarjgZMNCivjga7jgb4s44Gf44GL44GXDQor44Gu44G+LOOBguOBpOOBlw0KK+OBruOCgOOCiSzjgZ/jgYTjgaHjgo3jgYYNCivjga7jgoDjgoks44KG44GN44Gy44KNDQor44Gu44KA44KJLOOBhOOBleOCgA0KK+OBruOBmyzjgZ/jgaDjgZcNCivjga7jgZbjgo8s44GZ44GZ44KADQor44Gs44GN44GELOOBvuOBleOChuOBjQ0KK+OBrOOBvuOBiizjgaTjgajjgoANCivjgazjgb7jgZ8s44GL44Ga44G+44GVDQor44GK44Gh44GC44GELOOBpuOBpOOBruOCig0KK+OBiuOBoeOBguOBhCzjgZfjgoXjgbLjgaENCivjgYrjgaDjga/jgoks44Gq44GK44Gy44GoDQor44GK44GgLOOCiOOBl+OBiA0KK+OBiuOBjOOBleOCj+OCiSzjgobjgZ/jgYsNCivjgYrjganjgb7jgoos44GC44GN44KJDQor44GK44GL44GpLOOBv+OBpOOBlw0KK+OBiuOBvuOBlSzjgb7jgZPjgagNCivjgYrjgarjgYws44GX44KT44GE44GhDQor44GK44GuLOOBv+OChuOBjQ0KK+OBiuOBleOBjSzjgajjgojjgb8NCivjgYrjgZXjgo8s44GT44GG44GE44GhDQor44GK44GZ44G/LOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjga7jgorjgYoNCivjgYrjgZ8s44GX44KF44Gr44Gh44KNDQor44GK44GfLOOBn+OBoOOBguOBjQ0KK+OBiuOBpOOBiyzjgojjgbLjgaENCivjgb7jgaTjgarjgYws44GL44Gk44G/DQor44GK44Gy44KD44G+LOOBguOBjeOCiQ0KK+OBiuOBi+OBoCzjgYvjgZrjgbLjgo0NCivjgYrjgYvjgaAs44Gf44GL44KG44GNDQor44GK44GL44GgLOOCiOOBl+OBig0KK+OBiuOBi+OBoCzjgYTjgY/jgYoNCivjgYrjga7jgafjgoks44G/44Gu44KLDQor44GK44GL44KC44GoLOOBl+OCheOBmA0KK+OBiuOBi+OBluOBjSzjgajjgbLjgaHjgo0NCivjgYrjgY/jgaAs44G144G/44GKDQor44GK44GPLOOBguOBjeOCiQ0KK+OBiuOBrizjgbLjgo3jgobjgY0NCivjgYrjga4s44Gy44Gn44KG44GNDQor44GK44KK44GmLOOBguOBpOOBlw0KK+OBiuOBleOBoCzjgbLjgafjgZ/jgYsNCivjgZXjgYTjgajjgYYs44GL44Ga44KG44GNDQor44GV44GE44Go44GGLOOBvuOBleOCiw0KK+OBleOBhOOBqOOBhizjgarjgpPjgabjgaQNCivjgZXjgYTjgajjgYYs44Gf44GL44GXDQor44GV44GE44Go44GGLOOBn+OBpOOChA0KK+OBleOBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgZXjgYTjgajjgYYs44Gu44KK44KG44GNDQor44GV44GL44GELOOCiuOBiA0KK+OBhOOBl+OBluOBjSzjgZ/jgZHjgZcNCivjgZXjgYvjgoLjgags44Gy44KN44G144G/DQor44GV44GL44Gu44GG44GILOOCiOOBl+OBruOCig0KK+OBleOBi+OBhuOBiCzjgZ/jgYvjgYoNCivjgZXjgZPjgaAs44Gy44KN44KG44GNDQor44GV44GP44KJ44GELOOBn+OBi+OBguOBjQ0KK+OBleOBj+OCieOBhCzjgajjgZfjgobjgY0NCivjgZXjgazjgY0s44Gu44G244KG44GNDQor44GV44GV44GNLOOBleOBoeOBkw0KK+OBqOOBv+OBnyzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZXjgajjgYYs44GR44KT44GE44GhDQor44GV44Go44GGLOOCgOOBpOOBvw0KK+OBleOBqOOBhizjgoDjgaTjgYoNCivjgZXjgajjgYYs44GX44KT44GUDQor44GV44Go44GGLOOBl+OCheOBmA0KK+OBleOBqOOBhizjgojjgYTjgaENCivjgZXjgajjgYYs44KG44Gf44GLDQor44GV44KP44GgLOOBi+OBmuOBsuOCjQ0KK+OBm+OBiizjgYLjgY3jgbLjgo0NCivjgZvjgZbjgYQs44GE44Gh44KN44GGDQor44GX44Gw44GfLOOChuOBjeOBruOCig0KK+OBl+OBsOOBnyzjgbLjgo3jgZcNCivjgZfjgYzjgY0s44Gy44Gn44GKDQor44GX44G/44GaLOOBi+OBmuOBvuOBlQ0KK+OBl+OBv+OBmizjga7jgbbjgYoNCivjgZfjgb/jgZos44GX44GS44Gu44KKDQor44GX44G/44GaLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZfjgoLjgoDjgoks44GC44GN44GoDQor44GX44Gu44Gv44KJLOOBqOOCguOBquOCig0KK+OBl+OCieOBpCzjgabjgaTjgYoNCivjgZfjgo3jgZfjgZ8s44Gq44GK44GNDQor44GX44KH44GYLOOCiOOBl+OBruOCig0KK+OBl+OCh+OBv+OBpCzjgb7jgZXjgobjgY0NCivjgZ3jgaAs44Go44GX44KEDQor44Gd44KC44KKLOOBi+OBjeOChw0KK+OBnSzjgYLjgaTjgZMNCivjgarjgYss44G+44GV44GoDQor44GZ44GO44KA44KJLOOBkeOCk+OBleOBjw0KK+OBmeOBjuOBrizjgYvjgZrjgoTjgZkNCivjgZnjgY7jgZXjgo8s44Gf44GR44Gy44GTDQor44GZ44GO44GfLOOCiA0KK+OBmeOBjuOBhuOBoSzjgYLjgY3jgbLjgZMNCivjgZnjgY7jgoTjgb4s44Gy44KN44KADQor44GZ44GO44KE44G+LOOCiOOBl+OBvw0KK+OBmeOBjuOChOOBvizjgYLjgY3jgokNCivjgZnjgZrjgY0s44GC44GN44Go44GXDQor44GZ44Ga44GNLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GL44Ga44Gy44KNDQor44GZ44Ga44GNLOOBvuOBk+OBqA0KK+OBmeOBmuOBjSzjgZXjgajjgZcNCivjgZnjgZrjgY0s44KG44GG44GTDQor44GZ44Ga44GNLOOCiOOBl+OBsuOCjQ0KK+OBn+OBoeOBsOOBqizjgYvjgaTjgZnjgZENCivjgZ/jgYTjgoks44Gf44Gk44GKDQor44Gf44GE44KJLOOBi+OBmuOBsuOBkw0KK+OBn+OBi+OBoCzjgobjgYbjgZgNCivjgZ/jgYvjgY4s44GR44GE44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjga7jgbbjgobjgY0NCivjgZ/jgYvjga/jgZcs44GV44KG44KKDQor44G+44GZ44GW44KPLOOBl+OCk+OBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jga7jgooNCivjgZ/jgYvjgb4s44G+44GV44Gu44KKDQor44Gf44GL44GuLOOBi+OBmuOBvw0KK+OBn+OBi+OBrizjgZfjgpPjgoQNCivjgZ/jgYvjgZXjgYss44KG44GG44GYDQor44Gf44GL44GbLOOBl+OCkw0KK+OBn+OBi+OBnyzjgbLjgo3jgYLjgY0NCivjgZ/jgYvjgoTjgb4s44Go44GX44GC44GNDQor44Gf44GL44KE44Gq44GOLOOBsuOBp+OBqA0KK+OBn+OBkeOBoCzjgZPjgYbjgYTjgaENCivjgZ/jgZHjgaAs44KG44GG44GTDQor44G144GY44GELOOBn+OBi+OBlw0KK+OBn+OBkeOBruOCiizjgYLjgY3jgokNCivjgZ/jgZHjgZfjgZ8s44Gy44Gn44GC44GNDQor44Gf44GR44GG44GhLOOBsuOCjeOChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgb7jgZXjgYvjgZoNCivjgZ/jgY3jgZbjgo8s44Gu44KK44GE44GkDQor44Gf44GN44GW44KPLOOBn+OBi+OChuOBjQ0KK+OBn+OBvuOBjSzjga/jgZjjgoENCivjgZ/jgoDjgoks44Gy44Go44GXDQor44Gf44KA44KJLOOBvuOBleOBguOBjQ0KK+OBn+OCgOOCiSzjgbLjgZXjgagNCivjgZ/jgarjgYss44G/44GI44GTDQor44KP44Gf44Gq44G5LOOBi+OBmuOCiOOBlw0KK+OBn+OBq+OChOOBvizjga/jgZjjgoENCivjgZ/jgass44GL44Gk44GYDQor44Gm44KJ44GN44GfLOOBj+OBv+OBkw0KK+OBpuOBmuOBiyzjgYLjgaTjgZcNCivjgajjgbDjgoos44GC44KK44Gy44KNDQor44Go44GM44GXLOOBiOOCig0KK+OChOOBvuOBoCzjgYLjgY3jgokNCivjgajjgY3jgZ7jga4s44GC44Gk44GTDQor44Go44G/44Gq44GMLOOBhOOBj+OBlw0KK+OBqOOBv+OBquOBjCzjgbLjgo3jgYvjgZoNCivjgajjgb/jgZ8s44KG44GG44GYDQor44Go44G/44GfLOOBn+OBi+OBqOOBlw0KK+OBqOOCguOBiuOBiyzjgb7jgZXjgYLjgY0NCivjgajjga7jgZXjgY0s44Gk44KI44GXDQor44Go44KK44GW44KPLOOBleOBqOOBkw0KK+OBk+OBhOOBkSzjgYLjgY3jgbLjgo0NCivjgajjgojjgYvjgo8s44Gm44Gk44GtDQor44Go44KI44GL44KPLOOBruOBtuOBig0KK+OBpOOBvOOBhCzjgZfjgofjgZQNCivjgaTjgYvjgaAs44GC44GN44Gy44KNDQor44Gk44GP44GELOOBruOBvOOCiw0KK+OBpOOCi+OBi+OCjyzjgYvjgZrjgbLjgZMNCivjgaTjgaTjgYQs44Gq44GM44Gu44KKDQor44Gk44Gk44GELOOBl+OCk+OBhOOBoQ0KK+OBhuOBoeOBoCzjgZnjgZnjgoANCivjgYbjgaHjgaAs44GY44KF44Gr44GhDQor44GG44Gh44G+LOOBkeOCk+OBhOOBoQ0KK+OBhuOBoeOChOOBvizjgZfjgZLjgYoNCivjgYbjgaAs44KC44Go44Gy44GVDQor44GG44GI44GgLOOBl+OCk+OBmA0KK+OBhuOBiOOBrizjgZfjgpPjgZgNCivjgYbjgYjjga4s44Gm44Gk44GKDQor44GG44GI44GuLOOBsuOBqOOBlw0KK+OBhuOBkeOBjOOCjyzjgojjgZfjga7jgooNCivjgYbjgb7jgZrjgoEs44GI44G/DQor44GG44KB44KA44KJLOOBsuOCjeOBkw0KK+OCj+OBoCzjgb7jgZXjgojjgZcNCivjgo/jgaAs44Gy44GV44KI44GXDQor44KP44Gf44Gq44G5LOOBn+OBoOOBlw0KK+OBhOOBhOOBoCzjgajjgYrjgosNCivjgo/jgZ/jgarjgbks44Gy44GV44GXDQor44KP44Gf44KKLOOBiOOBhOOBmA0KK+OChOOBjizjgajjgZfjgYvjgZoNCivjgoTjgb7jgaAs44KG44GG44GYDQor44KE44G+44GMLOOBsuOCjeOBjQ0KK+OChOOBvuOBkOOBoSzjgZjjgoXjgavjgaENCivjgoTjgb7jgZDjgaEs44GX44KF44Gr44GhDQor44KE44G+44GQ44GhLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgZXjgojjgZcNCivjgoTjgb7jgoLjgags44GL44Ga44Gu44KKDQor44KE44G+44KC44GoLOOBjeOCiOOBlw0KK+OChOOBvuOCguOBqCzjga7jgorjgYoNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44KC44GoLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOCguOBqCzjgojjgZfjgbLjgo0NCivjgoTjgb7jgoLjgags44GN44G/44Gy44KNDQor44KE44G+44Gq44GLLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgoTjgZnjgbLjgZMNCivjgoTjgb7jgYbjgaEs44KK44KHDQor44KE44G+44GW44GNLOOBleOBqOOBlw0KK+OChOOBvuOBluOBjSzjgZ/jgYvjgZcNCivjgoTjgb7jgZbjgY0s44KE44GZ44KI44GXDQor44KE44GuLOOCiOOBl+OChuOBjQ0KK+OChOOBrizjgbLjgo3jgobjgY0NCivjgoTjgZnjgaAs44Gy44Gn44GKDQor44KE44GZ44G+44GkLOOBvuOBleOBruOCig0KK+OChOOBmeOCguOBqCzjgbLjgafjgYoNCivjgoTjgZnjgavjgo8s44G+44GV44GXDQor44KI44GgLOOBpuOBpOOChA0KK+OCiOOBoCzjgb7jgZXjgobjgY0NCivjgojjgZfjgaAs44GL44Ga44KG44GNDQor44KI44GX44GELOOBsuOBp+OBlw0KK+OCiOOBl+OBquOBjCzjgb7jgZXjga7jgooNCivjgojjgZfjga4s44GL44Ga44GoDQor44KI44GX44Gf44GRLOOBi+OBiuOCiw0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgojjgZcNCivjgoTjgb7jgZDjgaEs44GI44GE44GYDQor44GL44Gw44GX44G+LOOBleOBqOOCiw0KK+OBleOBj+OCiSzjgYvjgZrjgYLjgY0NCivjgoDjgonjgoTjgb4s44Gv44KL44Gy44GTDQor44Gy44GN44GgLOOBvuOBleOBqOOBlw0KK+OCgOOCieOBhCzjgZHjgpPjgZgNCivjgZjjgofjgbss44KG44GN44GKDQor44GI44KT44GpLOOBk+OBhuOBhOOBoQ0KK+OBpuOCieOCgOOCiSzjgZ/jgZHjgZcNCivjgo/jgZ/jgarjgbks44GL44Gk44Gq44KKDQor44GE44G+44GELOOBk+OBhuOBmA0KK+OCguOCiuOCguOBqCzjgZ/jgYvjgobjgY0NCivjgZPjgoTjgoos44GK44GV44KADQor44G+44Gk44G/44KELOOBhOOBleOBig0KK+OBl+OBsOOBnyzjgojjgZfjgbLjgo0NCivjgaHjgZfjgo0s44Gf44Gk44KEDQor44GE44Gf44G/LOOChuOBv+OBkw0KK+OBiuOBluOBjSzjgZ/jgaTjgb8NCivjgbXjgY/jgoLjgags44GC44GN44Gy44KNDQor44GK44GL44GgLOOBn+OBi+OBlw0KK+OBleOCj+OBoCzjgYvjgZrjgojjgZcNCivjgZXjgY/jgonjgYQs44GL44Ga44Gy44GVDQor44Gv44KE44GXLOOChuOBmeOBkQ0KK+OBvuOBpOOBiuOBiyzjgbLjgo3jgobjgY0NCivjgb/jgojjgZcs44GL44Ga44G/DQor44KE44G+44Gq44GLLOOBj+OBq+OBsuOCjQ0KK+OBl+OBv+OBmizjgYLjgY3jgokNCivjgZPjga/jgoks44Gb44GE44GYDQor44Gr44GX44GL44KPLOOBn+OBpOOBig0KK+OBhOOBvuOBhCzjgZ/jgYvjgbLjgZMNCivjgbXjgZjjgoDjgoks44GX44GS44KEDQor44GT44GY44G+LOOBqOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBlyzjgZvjgYTjgZgNCivjgY3jgY/jgaEs44KG44Gy44GhDQor44GV44GE44Go44GGLOOBi+OBmuOBig0KK+OChOOBvuOBl+OBnyzjgojjgZfjgbLjgo0NCivjgYLjgbks44Gy44Gn44GKDQor44Gm44Ga44GLLOOBsuOBqOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgaTjgZANCivjgavjgo8s44Gy44KN44GXDQor44GL44KB44GELOOBsuOCjeOBlw0KK+OChOOBrizjgZ/jgYvjgZcNCivjgarjgYvjgb7jgoss44KI44GX44Gu44KKDQor44GK44Gv44GfLOOChOOBmeOBruOCig0KK+OChOOBmeOChOOBvizjga7jgorjgojjgZcNCivjgYvjgZnjgYws44GT44GG44GY44KNDQor44GE44GX44GELOOBsuOBqOOBlw0KK+OBteOBmOOCguOCiizjgb7jgZXjga7jgooNCivjgYTjgo/jgoLjgags44Gy44KN44GXDQor44KE44G+44GX44GfLOOChOOBmeOBig0KK+OBjeOBnyzjgbLjgo3jgobjgY0NCivjgoDjgonjgYrjgYss44KE44GZ44KG44GNDQor44GE44GQ44GVLOOBsuOCjeOBlw0KK+OBquOBjOOBleOCjyzjgYvjgaTjgbLjgZMNCivjgoTjgb7jgZDjgaEs44G/44Gk44KLDQor44GK44Gg44GY44G+LOOBsuOBp+OBguOBjQ0KK+OBiuOBnyzjgZfjgpPjgZgNCivjga/jgY7jga4s44Gf44GL44GXDQor44KE44G244GNLOOCj+OBn+OCiw0KK+OBhOOBjSzjgb/jga7jgosNCivjgZXjgYTjgajjgYYs44G/44Ga44G7DQor44KE44G+44GgLOOBv+OBpOOBig0KK+OBquOBi+OChOOBvizjgoTjgZnjgZcNCivjgoDjgonjgb7jgaQs44G+44GV44Gu44KKDQor44Gf44GX44KNLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBr+OCiSzjgb/jgaTjgYoNCivjgZfjgbDjgYrjgYss44GC44GN44Gy44GTDQor44Gq44GL44GKLOOBruOCiuOBkw0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgZXjgY/jgZ8s44KL44G/44GTDQor44Gv44GfLOOBqOOCguOBvw0KK+OBiuOBsuOCg+OBvizjgobjgYbjgZMNCivjgZ/jgZQs44KI44GX44Ga44G/DQor44G+44Gk44KA44KJLOOBsuOCjeOBmA0KK+OBhOOBqOOBhizjgoTjgZnjgbLjgo0NCivjgY3jgoDjgoks44KG44Gf44GLDQor44GC44GK44GNLOOBvuOBvw0KK+OBk+OBvuOBjOOBnyzjgarjgYrjgYTjgaHjgo3jgYYNCivjgarjgonjgoDjgoks44Go44GX44GC44GNDQor44G144GY44KC44GoLOOCiOOBl+OBqOOBlw0KK+OBv+OChOOBleOBiyzjgb7jgZXjgagNCivjga/jgoTjgZcs44Gf44GL44GXDQor44GV44GE44Go44GGLOOBvuOCiuOBkw0KK+OBiuOBjOOBleOCj+OCiSzjgYvjgYrjgosNCivjgYrjgaTjgYss44GX44KH44Gy44GhDQor44GL44KP44GELOOBvuOBleOChuOBjQ0KK+OBl+OBvuOBmizjgZ/jgaTjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gu44KKDQor44G+44GI44GW44KPLOOBqOOBl+OBjQ0KK+OBr+OBoCzjgb7jgZXjgobjgY0NCivjgb7jgaTjgbLjgoks44GZ44GZ44KADQor44GZ44GO44Gv44KJLOOBn+OBoOOBlw0KK+OBquOBi+OBmOOBvizjgY3jgofjgZMNCivjga/jgZ/jgZHjgoTjgb4s44GL44Ga44GKDQor44GC44GK44GNLOOBvuOBleOChuOBjQ0KK+OBl+OBtuOBi+OCjyzjgZ/jgZHjgYoNCivjgYTjgZfjgaAs44G/44Gk44Gf44GLDQor44GK44GL44GgLOOBsuOBp+OBqOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjgZMNCivjgYvjgajjgYYs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOBkw0KK+OCgOOCieOBleOCjyzjgb7jgZXjgbLjgo0NCivjgb/jgbss44GL44Ga44Gy44GTDQor44GZ44GM44GtLOOBl+OCh+OBmA0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgobjgY0NCivjgYrjgYss44Go44KC44KG44GNDQor44GE44KP44G/LOOCiOOBsuOBoQ0KK+OBquOBi+OChOOBvizjgY3jgZfjgZMNCivjgYTjgajjgYYs44GE44Ga44G/DQor44GZ44GO44KE44G+LOOBi+OBiuOCiw0KK+OBi+OBl+OCguOBqCzjgYjjgooNCivjgarjgYvjgoDjgoks44Gu44G844KLDQor44GC44GK44KE44G+LOOCiOOBl+OBruOBtg0KK+OBl+OBsOOBnyzjgabjgaTjgoQNCivjgb7jgaTjgYos44G+44GV44Gy44GTDQor44GX44Gu44KA44KJLOOBjeOCiOOBsuOBlQ0KK+OBteOCi+OBi+OCjyzjgZfjgZLjgosNCivjgoLjgajjgY0s44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OBguOCk+OBqeOBhizjgb7jgZXjgbLjgo0NCivjgZ/jgZHjgbIs44Gq44GK44G/44GkDQor44GE44GX44GELOOBv+OBruOCiw0KK+OBruOBoeOBmyzjgb7jgZXjga7jgooNCivjgb/jgoTjgarjgYws44KI44GX44Gu44G2DQor44GX44KT44GpLOOCiOOBl+OBsuOBkw0KK+OBiuOBnyzjgoTjgZnjgbLjgo0NCivjgZ/jgass44KG44G/44GTDQor44GT44KA44KNLOOBsuOCjeOBlw0KK+OBhOOCj+OBlSzjgYvjgZrjgY0NCivjgb7jgaTjgoLjgags44GX44KT44GE44GhDQor44GN44KA44KJLOOCiOOBl+OBkw0KK+OBguOBiuOBjSzjgb7jgZXjgobjgY0NCivjgb7jgaTjgbDjgoTjgZcs44Gy44Gn44Gu44KKDQor44GU44GoLOOBkeOCk+OBhOOBoQ0KK+OBiuOBjOOCjyzjgojjgZfjga7jgooNCivjgZnjgY7jgZ/jgass44GC44GK44GEDQor44GK44GP44GuLOOCiOOBl+OBteOBvw0KK+OBleOBj+OCieOBoCzjgZfjgoXjgbLjgaENCivjgoDjgZPjgbLjgoPjgb4s44Gh44GKDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZXjgaHjgZMNCivjgoTjgb7jgoLjgags44GC44GN44G144G/DQor44GL44Gt44GTLOOBi+OBmuOBsuOBkw0KK+OChOOBvuOBluOBjSzjgajjgZfjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44G/DQor44G/44KPLOOBv+OCiOOBkw0KK+OBleOCgOOBi+OCjyzjgojjgZfjgYLjgY0NCivjgarjgYvjgaAs44G144G/44Gu44KKDQor44KI44GX44Go44G/LOOBsuOCjeOBv+OBoQ0KK+OBn+OBi+OBl+OBvizjgbLjgafjgYLjgY0NCivjgYTjgZfjgZIs44Gy44GV44GoDQor44GZ44GI44Gv44KJLOOBguOBjeOBsuOBkw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZcNCivjga7jgZjjgb4s44G144G/44KG44GNDQor44GV44GP44G+LOOBguOBjeOCiQ0KK+OBleOBrizjga/jgovjgYoNCivjgoDjgonjgYrjgYss44KG44GN44GKDQor44G/44GG44KJLOOBl+OCk+OBuuOBhA0KK+OBleOBi+OCguOBqCzjga7jgorjgZMNCivjgarjgovjgYos44GV44Go44GXDQor44Gv44Gb44GM44KPLOOBn+OBoOOBlw0KK+OBiuOBi+OBoCzjgb7jgZXjgajjgZcNCivjgoTjgbLjgo0s44GX44KF44G444GEDQor44Gw44GwLOOChOOBmeOBsuOCjQ0KK+OBguOBnyzjgajjgoINCivjgarjgYzjgZss44GK44GV44KADQor44GL44KP44GILOOBl+OCjQ0KK+OBv+OBhuOCiSzjgajjgZfjgobjgY0NCivjgbXjgZjjgZ8s44GR44KT44GE44GhDQor44Gk44KL44G/LOOBpOOBreOBmA0KK+OCguOBoeOBmuOBjSzjgYLjgY3jgZMNCivjgojjgZfjgaAs44Gy44KN44KG44GNDQor44GK44GL44KC44GoLOOBsuOBp+OBvw0KK+OChOOBmeOCguOBqCzjgb7jgorjgZMNCivjga3jgoLjgags44GV44Gh44GIDQor44Gy44Gg44GLLOOCiOOBl+OBv+OBoQ0KK+OBvuOBmeOBoCzjgYvjgaTjgZgNCivjgajjgY/jgarjgYws44KK44KF44GeDQor44Gq44GL44GW44KPLOOBmOOCheOCkw0KK+OBteOBmOOBquOCjyzjgZvjgYTjgZMNCivjgojjgbPjgYvjgo8s44G/44Gk44Gy44KNDQor44GN44Gf44GgLOOBpuOBpOOBig0KK+OCiOOBl+OBrizjga7jgbbjgobjgY0NCivjgbDjgbAs44Gf44GP44KEDQor44GP44KN44GL44KPLOOBguOChOOBrg0KK+OBi+OBqOOBhizjgY3jgojjgZcNCivjgo/jgZ/jgarjgbks44GE44Ga44G/DQor44Gk44Gh44GgLOOBvuOBjeOCiA0KK+OBmeOBmuOBjSzjgZXjgajjgZMNCivjgb/jgZrjga4s44KI44GX44GKDQor44Gf44Gr44KC44GoLOOBiOOBv+OBkw0KK+OBhOOBkeOBrizjgYvjgZrjgYLjgY0NCivjgYTjgajjgYYs44G+44GV44G144G/DQor44Gf44GR44GgLOOBv+OBpOOBr+OCiw0KK+OBvuOBiOOBoCzjgZ/jgY/jgZgNCivjgY/jganjgYYs44GG44GI44G/44GkDQor44GL44GS44KE44G+LOOBj+OBv+OBkw0KK+OChOOBvuOBi+OBkizjgbXjgb/jgbLjgagNCivjgZXjgYjjgZDjgZUs44GZ44GZ44KADQor44G/44Ga44Gf44GrLOOCiOOBl+OBr+OCiw0KK+OBj+OBqeOBhizjgYvjgZrjgbLjgo0NCivjgZPjgYrjgorjgoTjgb4s44Gf44GR44GXDQor44GL44Gf44KI44GbLOOChOOBmeOBsuOCjQ0KK+OBiuOBleOBoCzjgojjgZfjgagNCivjgoTjgY7jga/jgZcs44Gy44KN44GXDQor44GZ44G/LOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjgajjgZfjgYoNCivjgY/jganjgYYs44GC44Gk44GTDQor44Gf44GR44GyLOOBv+OChuOBjQ0KK+OBguOCgeOBv+OChCzjgYLjgY3jgokNCivjgarjgYvjgoDjgoks44Gf44GP44G/DQor44GN44KI44G/44GkLOOCgeOBkOOBvw0KK+OBhOOBmuOBv+OBoCzjgZfjgofjgZMNCivjgbXjgarjgY0s44Go44GK44KLDQor44Gf44GR44GX44GfLOOBk+OBuOOBhA0KK+OBv+OBhuOCiSzjgYvjgaTjgb8NCivjgYTjgZfjgbDjgZcs44G/44Gt44GKDQor44KC44KK44GC44GELOOCiOOBmA0KK+OCgOOCieOChOOBvizjgozjgYTjgZMNCivjgYrjgZXjgo8s44Gq44GK44GTDQor44G144GL44GgLOOBqOOBl+OBsuOBkw0KK+OChOOBvuOBoCzjgb/jgZrjgbsNCivjgYTjgajjgYYs44KI44GX44GIDQor44GK44Gu44Gn44KJLOOBkeOBhOOBkw0KK+OBr+OChOOBleOBiyzjgZfjgoXjgbLjgaENCivjgYrjgaTjgYss44Gf44Gk44GKDQor44Go44Gy44KD44G+LOOBguOBpOOBlw0KK+OBi+OCj+OBr+OCiSzjgobjgY3jgYoNCivjgYjjgbPjgZXjgo8s44GC44GN44KJDQor44KE44G+44GL44KPLOOBv+OBoeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgZnjgZrjgY0s44GR44KT44GYDQor44GK44KE44G+44GgLOOCiOOBl+OBiw0KK+OBvuOBpOOChOOBvizjgbLjgo3jgYLjgY0NCivjgYLjgbks44GL44Ga44Gy44GTDQor44GC44G5LOOBjeOBj+OBig0KK+OBguOBuSzjga7jgbbjgZMNCivjgYLjgbks44GR44GE44GYDQor44GC44GS44GfLOOBiOOBhOOBmOOChQ0KK+OBguOBi+OBr+OBrSzjgoTjgZnjga7jgooNCivjgYLjgZHjgarjgYws44KI44GX44GL44GaDQor44GC44GN44KE44G+LOOBsuOBp+OBsuOBkw0KK+OBguOBjeOBluOCjyzjgYLjgY3jgokNCivjgYLjgb7jgaAs44Go44G/44GKDQor44GC44G+44GuLOOBvuOBleOBv+OBoQ0KK+OBguOCgizjgbLjgafjgbLjgZMNCivjgYLjgpPjganjgYYs44Gy44KN44Gf44GLDQor44GC44KT44Gp44GGLOOBv+OBpOOCiw0KK+OBguOCk+OBqeOBhizjgb7jgZXjgY0NCivjgYLjgYrjga4s44Gm44Gk44KEDQor44GC44GK44KE44G+LOOChOOBmeOBqOOCgg0KK+OBguOCieOBhCzjgajjgYrjgosNCivjgYLjgonjgYvjgo8s44Gf44GL44GXDQor44GC44KK44KC44GoLOOCiuOCheOBsuOBoQ0KK+OBguOCiuOBiizjga7jgbbjgbLjgo0NCivjgYLjgZXjgYQs44KE44GZ44GKDQor44GC44GV44GL44KPLOOBi+OBmuOBvuOBlQ0KK+OBj+OCjeOBjSzjgobjgY3jgYoNCivjgYLjgZrjgb4s44GY44KF44Gr44GhDQor44Gw44KT44GuLOOBsuOBp+OBsuOCjQ0KK+OBueOBpOOChOOBjyzjgZjjgoXjgpMNCivjgbPjgags44GX44GS44GKDQor44Gh44GwLOOBsuOBp+OBi+OBmg0KK+OBoeOCheOBmOOChyzjgb/jgY3jgYoNCivjgYjjgaAs44G+44GV44GXDQor44GI44KT44GpLOOBguOBjeOBig0KK+OBiOOBleOBjSzjgbLjgafjgYLjgY0NCivjgbXjgZjjgYQs44Gq44GK44GNDQor44G144GY44GELOOBqOOBl+OBteOBvw0KK+OBteOBmOOCguOBqCzjgbLjgo3jgY0NCivjgbXjgZjjgZ8s44GE44KP44GKDQor44G144GY44GfLOOBi+OBmuOBsuOCjQ0KK+OBteOBmOOCj+OCiSzjgbLjgafjgZcNCivjgbXjgYvjgZbjgo8s44Gy44Gn44GNDQor44G144GP44GgLOOBvuOBk+OBqA0KK+OBteOBj+OBr+OCiSzjgYLjgY3jgokNCivjgbXjgY/jgZfjgb4s44KI44GX44Gy44GoDQor44G144GP44Gp44KBLOOChuOBjeOBruOCig0KK+OBteOBj+OChOOBvizjgZfjgpPjgZgNCivjgbXjgarjgbDjgZcs44G+44GV44GN44KIDQor44G144KL44Gg44GmLOOBkeOCk+OBlA0KK+OBteOCi+OBleOCjyzjgZjjgpMNCivjgbXjgovjgZ8s44Gy44KN44GXDQor44G144KL44KELOOBi+OBpOOBjQ0KK+OBteOBl+OBjSzjgZHjgpPjgYTjgaHjgo0NCivjga/jgb7jgaAs44Gq44GK44G/DQor44Gv44Gq44GgLOOBl+OCk+OBhOOBoQ0KK+OBr+OBquOBvyzjgbLjgo3jgZcNCivjga/jgonjgaAs44G144G/44GKDQor44Gv44KL44GL44KPLOOBguOBjeOCiQ0KK+OBr+OBm+OBjOOCjyzjgY3jgojjgarjgYoNCivjgYrjgaQs44GC44GN44Gy44KNDQor44Gv44GX44KC44GoLOOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgajjgoLjgbLjgagNCivjga/jgZnjgoLjgags44GZ44GZ44KADQor44Gv44Gj44Go44KKLOOChOOBmeOBsuOBkw0KK+OBr+OChOOBleOBiyzjgYvjgZrjgojjgZcNCivjgbLjgaDjgYss44GL44Ga44Gy44GVDQor44Gy44GQ44GhLOOBleOBqOOBlw0KK+OBsuOBkOOBoSzjgb7jgZXjgobjgY0NCivjgbLjgZjjgY/jgo0s44GC44GN44Gy44GTDQor44Gy44KJ44GL44KPLOOBl+OCk+OBmA0KK+OBsuOCieOBrizjgorjgY3jgoQNCivjgbLjgonjgZ8s44GX44KT44GE44GhDQor44Gy44KN44GbLOOChuOBsuOBoQ0KK+OBsuOBleOBoCzjgZPjgYbjgYTjgaHjgo0NCivjgbvjgoos44GL44Gk44Gu44KKDQor44G744Gy44KDLOOBsuOBp+OBig0KK+OBu+OCk+OBoCzjgYLjgY3jgokNCivjgbvjgpPjgb4s44GE44Ga44G/DQor44Gf44Gq44GLLOOCiOOBsuOBoQ0KK+OBu+OBl+OBmOOBvizjgoDjga3jgbLjgo0NCivjgbvjgZfjgYss44GC44Gk44GXDQor44G744Gd44GgLOOBiOOBv+OBkw0KK+OBhOOBoeOBi+OCjyzjgYLjgaTjgZcNCivjgYTjgaHjgoDjgoks44Gk44KI44GXDQor44GE44GM44GuLOOBn+OBi+OBig0KK+OBhOOBhOOBoCzjgZHjgZXjgYoNCivjgYTjgYTjgYrjgYss44GR44GE44GTDQor44Gq44GM44GuLOOBteOBleOChuOBjQ0KK+OBhOOBkeOBluOCjyzjgarjgYrjgobjgY0NCivjgYTjgoLjgags44GY44KF44Gr44GhDQor44GE44Gq44Ga44G/LOOBsuOCjeOCiA0KK+OBj+OBl+OBv+OChCzjgb7jgZXjgbLjgo0NCivjgYTjga7jgYbjgYgs44GV44Gh44GTDQor44GE44Gu44GG44GILOOBn+OBi+OBlw0KK+OBhOOBruOBhuOBiCzjga7jgorjgoTjgZkNCivjgYTjgazjgaTjgYss44GL44Ga44Gy44GTDQor44GE44GV44GYLOOBl+OBkuOChuOBjQ0KK+OBhOOBl+OBoCzjgZ/jgaTjgoQNCivjgYTjgZfjgaAs44Gk44KI44GXDQor44GE44GX44GgLOOBn+OBpOOBig0KK+OBhOOBl+OBjOOBjSzjgZ/jgZHjgZcNCivjgYTjgZfjgYzjgb8s44Gh44GI44G/DQor44GL44GY44Gf44GrLOOChOOBmeOBsuOCjQ0KK+OBhOOBl+OBr+OCiSzjgZHjgYTjgZQNCivjgYTjgZfjgoDjgoks44G/44Gp44KKDQor44GE44GX44KE44G+LOOBvuOBleOChuOBjQ0KK+OBhOOBl+OBluOBjSzjgbLjgo3jgZcNCivjgYTjgZ3jgbks44GV44Go44KLDQor44GE44Gd44GW44GNLOOBruOBtuOChOOBmQ0KK+OBhOOBqOOBhizjgZnjgb/jgowNCivjgYTjgajjgYYs44KE44GZ44Gv44KLDQor44GE44KP44GC44GVLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBhCzjgZfjgpPjgoQNCivjgYTjgo/jgb4s44GC44GN44KJDQor44GE44KP44KC44GoLOOBqOOCguOChuOBjQ0KK+OBhOOCj+OBquOBjCzjgarjgYrjgY0NCivjgYTjgo/jgZfjgZ8s44Gy44Gn44GoDQor44GE44KP44GfLOOBl+OCheOBsuOBoQ0KK+OBhOOCj+OBnyzjgYTjgZXjgYoNCivjgYvjganjgo/jgY0s44GP44Gr44GC44GNDQor44GL44GS44KE44G+LOOBiOOCiuOBkw0KK+OCj+OBn+OBquOBuSzjgZjjgoXjgavjgaENCivjgYvjgb/jgoQs44GK44GV44KADQor44GL44G/44KELOOBsuOCjeOChuOBjQ0KK+OBi+OCk+OBsOOChOOBlyzjgb7jgZXjgbLjgZMNCivjgYvjga4s44GX44KF44Gy44GhDQor44GL44KK44KELOOBruOBtuOBig0KK+OBi+OBleOBjSzjgojjgZfjgbLjgZMNCivjgYvjgZfjgb4s44G+44GV44GC44GNDQor44GL44GZ44KELOOBoeOBj+OBlQ0KK+OBi+OBqOOBhizjgbLjgZXjgagNCivjgYvjgajjgYYs44GR44KT44Gf44KN44GGDQor44GL44Go44GGLOOBquOBiuOBn+OBiw0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgYvjgajjgYYs44KI44Gy44GhDQor44GL44Go44GGLOOBsuOCjeOBruOCig0KK+OBi+OCj+OBsOOBnyzjgZfjgZMNCivjgYvjgo/jgbDjgZ8s44GL44Ga44G+44GVDQor44GL44KP44GQ44GhLOOBiOOBhOOBmA0KK+OBi+OCj+OBr+OCiSzjgZXjgajjgZcNCivjgYvjgo/jga/jgoks44GR44KT44GE44GhDQor44GL44KP44GY44KKLOOBhOOBmuOBvw0KK+OBi+OCj+OBi+OBvyzjgY/jgavjgYLjgY0NCivjgYvjgo/jgY/jgbws44GR44KT44GE44GhDQor44GL44KP44G+44GfLOOBjeOCk+OBmA0KK+OBi+OCj+OCgOOCiSzjgbLjgo3jgZcNCivjgYvjgo/jga4s44Gq44KK44KE44GZDQor44GL44KP44GV44GNLOOBmOOCheOCkw0KK+OBi+OCj+OBl+OBvizjgb7jgZXjgYoNCivjgYvjgo/jgZos44GC44GN44KJDQor44GN44Gw44GXLOOBn+OBi+OBjQ0KK+OBjeOBvuOBoSzjgYvjgZrjgbLjgo0NCivjgY3jgoLjgags44GR44KT44GYDQor44GN44KA44KJLOOBv+OBpOOBkA0KK+OBjeOCk+OBsOOCiSzjgbLjgafjga7jgooNCivjgY3jga7jgZfjgZ8s44Gy44KN44KG44GNDQor44GN44Gu44GX44GfLOOBoOOBhA0KK+OBjeOCiuOBleOCjyzjgYLjgaTjgZcNCivjgZPjgbDjgoTjgZcs44Gy44Gn44G/44GhDQor44GT44Gw44KE44GXLOOBsuOCjeOBvw0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbXjgb8NCivjgZPjgbDjgoTjgZcs44G/44Gh44GKDQor44GT44Gg44G+LOOBpuOBpOOBig0KK+OBk+OBoOOBvizjgYvjgZrjgajjgZcNCivjgZ/jgYvjgoDjgoks44Gf44GL44Gu44G2DQor44GT44Gy44Gq44GfLOOBsuOBqOOBlw0KK+OBk+OBrizjga7jgorjgYLjgY0NCivjgZPjga4s44G+44GV44Gy44GoDQor44GT44Gy44KD44G+LOOBqOOBl+OBsuOBlQ0KK+OBk+OBmuOBjSzjgb7jgZXjga7jgooNCivjgajjgaks44Gy44Gn44Gy44GTDQor44GT44GY44G+LOOBvuOBleOBjQ0KK+OBk+OCk+OBqSzjgZ/jgZHjgZcNCivjgZPjgpPjgaks44Gf44GP44KEDQor44GT44KT44GpLOOCiOOBl+OBv+OBoQ0KK+OBk+OCk+OBrizjgoTjgZnjgZcNCivjgZPjgZ/jgY0s44Gy44KN44GNDQor44GT44KE44GE44GXLOOBhOOBoeOCjeOBhg0KK+OBk+OChOOBquOBjizjgZjjgoXjgavjgaENCivjgY/jgbws44Gy44KN44GC44GNDQor44GP44Gp44GGLOOBvuOBleOBig0KK+OBj+OBvuOBjOOBhCzjgbXjgZjjgbLjgZMNCivjgY/jgb7jgY0s44GT44GG44GYDQor44GP44KJ44GhLOOBiuOBleOCgA0KK+OBj+OCieOBnyzjgoLjgajjgbLjgZMNCivjgY/jgorjgZ8s44KG44GZ44GRDQor44GP44KK44KE44G+LOOBsuOCjeOBlw0KK+OBj+OCjeOBoCzjgZ/jgYvjgbLjgo0NCivjgY/jgo3jgYvjgY4s44GT44GG44GYDQor44GP44KN44GV44KPLOOBqOOBl+OBig0KK+OBj+OCjeOBleOCjyzjgZPjgYbjgZgNCivjgY/jgo/jga4s44GX44KT44GYDQor44G+44GI44Gw44GXLOOBguOBjeOCiQ0KK+OBvuOBiOOBluOCjyzjgZ/jgYvjgZcNCivjgb7jga4s44G+44GV44Go44GXDQor44G+44KL44KP44GLLOOBi+OBiuOCiw0KK+OBhuOBoeOChOOBvizjgbLjgajjgZcNCivjgb7jgZnjgaAs44G/44GLDQor44G+44Gk44GELOOBruOBvOOCiw0KK+OBvuOBpOOBhCzjgZHjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgoLjgags44GN44G/44Gy44GoDQor44G+44Gk44KC44GoLOOBquOBiuOChuOBjQ0KK+OBvuOBpOOBquOBjCzjgZfjgpPjgZgNCivjgb7jgaTjgZfjgb4s44Gf44GL44KG44GNDQor44G+44Gk44GX44GfLOOBk+OBmeOBkQ0KK+OBvuOBpOOBluOBjSzjgb/jgY0NCivjgYTjgarjgYTjgZcs44GX44KF44KT44GYDQor44G/44GL44G/LOOBk+OBmeOBkQ0KK+OBv+OBquOBjizjgb7jgZXjga7jgbYNCivjgb/jgaTjgoTjgb4s44GX44KT44GYDQor44G/44GG44KJLOOBm+OBhOOBjQ0KK+OBv+OChOOBkSzjgbLjgo3jgZ/jgYsNCivjgb/jgoTjgoLjgags44Go44GX44GC44GNDQor44G/44KE44GfLOOBruOBtuOChuOBjQ0KK+OBv+OChOOBhuOBoSzjgojjgZfjgYoNCivjgb/jgoTjgYbjgaEs44Gy44Gn44Gq44GKDQor44G/44KE44GW44KPLOOBn+OBpOOBig0KK+OBv+OChOOBluOCjyzjgZjjgoXjgpMNCivjgb/jgojjgaAs44GX44GS44GNDQor44G/44Ge44G244GhLOOBleOBqOOBlw0KK+OBv+OBnuOBnyzjgZfjgpPjgYTjgaENCivjgaHjgbAs44Gy44GV44GoDQor44G/44Ga44Gv44GXLOOBvuOBleOBqOOBlw0KK+OBv+OBmuOBvuOBoSzjgoLjgorjgbLjgo0NCivjgb/jgZrjgZ/jgass44Gf44Gg44GXDQor44G/44Ga44Gf44GrLOOBn+OBkeOBlw0KK+OBv+OBmuOBn+OBqyzjgojjgZfjgYoNCivjgoLjgaHjgZrjgY0s44GR44GE44GE44GhDQor44KC44KK44KC44GoLOOBguOBjeOBv+OBpA0KK+OCguOCiuOBn+OBqyzjgZPjgYbjgYTjgaHjgo0NCivjgoLjgorjgZ8s44GX44GS44GNDQor44KC44KK44GfLOOBguOBpOOBlw0KK+OCguOCiuOCj+OBjSzjgYLjgaTjgZMNCivjgYrjgY/jgYQs44GT44GG44GYDQor44KC44KKLOOBvuOBleOBjQ0KK+OCguOCiizjgYTjgaHjgo3jgYYNCivjgoDjgZPjgbLjgoPjgb4s44GC44GN44KJDQor44KA44KJ44GmLOOBn+OBi+OBlw0KK+OCgOOBqCzjgZ/jgYvjgbLjgZUNCivjgarjgYzjgYQs44GR44KT44GYDQor44Gq44GM44GuLOOBn+OBkeOBig0KK+OBquOBjOOBiuOBiyzjgbLjgo3jgbLjgZUNCivjgarjgYzjgZss44G+44GT44GoDQor44Gq44GM44GfLOOBm+OBhOOBmA0KK+OBquOBjOOBnyzjgZXjgajjgZcNCivjgarjgYzjgo8s44Gk44KI44GXDQor44Gq44GL44G+44KLLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgb/jga7jgosNCivjgarjgYvjgoDjgoks44Gq44Gq44GTDQor44GC44G5LOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgajjgojjgbLjgZMNCivjgarjgYvjgoDjgoks44Gf44GL44GXDQor44Gq44GL44GX44G+LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OBl+OBiizjgZ/jgZHjgbLjgZMNCivjgarjgYss44Gf44GR44G/DQor44Gq44G/44GNLOOBn+OBi+OChuOBjQ0KK+OBquOCk+OBtizjgbLjgo3jgobjgY0NCivjgoTjgb7jgZDjgaEs44GX44KT44GE44GhDQor44Gr44GE44G/LOOBi+OBpOOBjQ0KK+OBq+OBl+OBoCzjgb/jgaTjgbLjgo0NCivjgavjgZfjgaAs44G/44Gk44Go44GXDQor44Gr44GX44GgLOOBn+OBi+OBsuOCjQ0KK+OBq+OBl+OBoCzjgYvjgaTjgb8NCivjgavjgZfjgY/jgbws44Gy44KN44KG44GNDQor44Gr44GX44KA44KJLOOCguOBqOOBjQ0KK+OBq+OBl+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgavjgZfjgYos44KI44GX44GNDQor44Gr44GX44GKLOOBguOBjeOCiQ0KK+OBq+OBl+OChOOBvizjgajjgoLjgZMNCivjgoTjgYzjgo8s44KI44Gy44Gh44KNDQor44Gr44Gj44GfLOOBqOOBl+OChA0KK+OBruOBueOBiuOBiyzjgYLjgY3jgokNCivjga7jgZjjgoos44Gy44GV44KI44GXDQor44Gu44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBruOBquOBiyzjga7jgorjgZMNCivjgYrjgbDjgaos44Gu44KK44GL44GaDQor44GK44Gh44GC44GELOOBsuOCjeOBl+OBkg0KK+OBiuOBoeOBv+OBmizjgZfjgpPjgZgNCivjgYrjgaEs44GX44GS44G144G/DQor44GK44Gg44GK44Gv44KJLOOBsuOCjeOCiOOBlw0KK+OBiuOBoCzjgYjjgYTjgZgNCivjgYrjgYzjgZ8s44G+44GV44GC44GNDQor44GK44GM44KPLOOBmeOBmeOCgA0KK+OBiuOBjOOCjyzjgYLjgY3jgbLjgo0NCivjgYrjgZDjgoks44Gf44GL44GC44GNDQor44GK44Gy44KJLOOBpOOCiOOBlw0KK+OBiuOBsuOCiSzjgb7jgZXjgagNCivjgYrjgbLjgZcs44GX44KT44GYDQor44GK44Gy44GXLOOBn+OBi+OBlw0KK+OBiuOBjSzjgZHjgYTjgZgNCivjgYrjgY/jgbws44Gy44KN44G/DQor44GK44GuLOOBguOBjeOBuw0KK+OBiuOBrOOBvizjgojjgZfjga7jgbYNCivjgYrjgazjgb4s44Gm44Gk44KEDQor44GK44Gf44GNLOOBi+OBpOOBlw0KK+OBiuOBnyzjgb/jga7jgosNCivjgYrjgZ8s44Go44GX44KG44GNDQor44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBqCzjgb/jgaTjga7jgooNCivjgYrjgaTjgbws44GX44KT44GUDQor44GK44Gy44KD44GOLOOBsuOCjeOBi+OBmg0KK+OBiuOBsuOCg+OBvizjgb7jgZXjgY0NCivjgYrjgYTjgYgs44G+44GV44Go44GXDQor44GK44GY44G+LOOBiOOBpOOBkw0KK+OBiuOBi+OBuSzjgarjgYrjgobjgY0NCivjgYrjgYvjgaAs44Gu44G244KG44GNDQor44GK44GL44KC44GoLOOBhOOBoeOCjeOBhg0KK+OBiuOBi+OBrSzjgYLjgY3jgokNCivjgYrjgYvjga4s44G+44GT44GoDQor44GK44GL44GuLOOBi+OChg0KK+OBiuOBi+OBluOBjSzjgYvjgZrjgZMNCivjgo/jgZ/jgarjgbks44GR44GE44GTDQor44GK44GP44GgLOOBl+OBkuOBruOBtg0KK+OBiuOBj+OBrizjgarjgovjgZcNCivjgYrjgarjgoQs44G+44GV44Gy44GnDQor44GK44GuLOOBqOOBiuOCiw0KK+OBiuOBrizjgojjgZfjgarjgYwNCivjgYrjga4s44GT44GG44GE44GhDQor44GK44GV44Gq44GELOOBvuOBleOBmuOBvw0KK+OBiuOBluOBjSzjgbLjgo3jgbXjgb8NCivjgZXjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOBguOBpOOBlw0KK+OBleOBmCzjgYvjgZrjgoQNCivjgZXjgZgs44GC44GN44KJDQor44GV44GL44GELOOBhOOBoeOCjeOBhg0KK+OBleOBi+OBhCzjgajjgYrjgosNCivjgZXjgYvjgY/jgoks44G+44GV44GNDQor44GV44GL44GG44GILOOBn+OBi+OBlw0KK+OBleOBleOBuSzjgbLjgafjgYoNCivjgZXjgZXjgY0s44G+44GV44GTDQor44Gq44G/44GNLOOBr+OCi+OBsuOBkw0KK+OBleOBn+OBkSzjgb7jgZXjgajjgZcNCivjgZXjgZ/jgZEs44GC44Gk44Gy44KNDQor44GV44Go44GGLOOBi+OBpOOBlw0KK+OBleOBqOOBhizjgYvjgZrjgZMNCivjgZXjgajjgYYs44GN44KI44GXDQor44GV44Go44GGLOOBl+OCk+OChA0KK+OBleOBqOOBhizjgobjgZ/jgYsNCivjgZXjgajjgYYs44GN44KI44GC44GNDQor44GV44KP44GgLOOBsuOBp+OBig0KK+OBm+OBjeOBkOOBoSzjgojjgZfjgb8NCivjgZvjgY3jgoLjgags44GY44KF44KTDQor44Gb44GN44GtLOOChOOBmeOBsuOBpw0KK+OBm+OBjeOBiuOBiyzjgYvjgZrjgYoNCivjgZvjgY3jgoQs44GL44Ga44Gy44GTDQor44Gb44GNLOOBqOOCguOBmeOBkQ0KK+OBm+OCk+OBnyzjgZ/jgYvjgbLjgo0NCivjgZfjgbDjgZ8s44KE44GZ44KG44GNDQor44GX44GE44GqLOOBvuOBk+OBqA0KK+OBl+OBhOOChCzjgbLjgafjgYvjgZoNCivjgZfjgb7jgbDjgoTjgZcs44Gy44KN44GXDQor44GX44G+44GgLOOBi+OBpOOBsuOCjQ0KK+OBl+OBvuOBoCzjgo/jgY0NCivjgZfjgb7jgoDjgoks44GX44KF44Gy44GhDQor44GX44G/44GaLOOBn+OBkeOBlw0KK+OBl+OBv+OBmizjgarjgYrjgY0NCivjgZfjgoLjgoDjgoks44KG44GeDQor44GX44Gu44GgLOOBl+OBkuOBjQ0KK+OBl+OBruOBr+OCiSzjgbLjgo3jgZcNCivjgZfjgYrjgZbjgo8s44Gv44GY44KBDQor44GX44KJ44GE44GXLOOBsuOCjeOBguOBjQ0KK+OBl+OCieOBleOBjSzjgajjgZfjgobjgY0NCivjgZfjgonjgajjgoos44GN44GE44GhDQor44GX44GV44GELOOBvuOCguOCiw0KK+OBl+OCh+OBoCzjgbLjgo3jgYLjgY0NCivjgZ3jgYYs44GY44KF44Gr44Gh44KNDQor44Gd44Gu44G5LOOBruOCiuOBguOBjQ0KK+OBmeOBqeOBhizjgZXjgajjgZcNCivjgZnjganjgYYs44G144G/44Gv44KLDQor44GZ44GO44GG44KJLOOBsuOBp+OBjQ0KK+OBmeOBjuOChOOBvizjgb7jgoLjgosNCivjgZnjgY7jgoTjgb4s44GX44KT44GE44Gh44KN44GGDQor44GZ44G/44GgLOOBv+OBoeOBqOOBlw0KK+OBmeOBv+OBi+OCjyzjgYLjgY3jgbLjgagNCivjgZnjgZrjgY0s44Gy44Gn44Go44GXDQor44GZ44Ga44GNLOOBhOOBn+OCiw0KK+OBmeOBmuOBjSzjgYvjgaTjgYLjgY0NCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44Ga44GNLOOCguOBqOOChuOBjQ0KK+OBmeOBmuOBjSzjga7jgbbjgobjgY0NCivjgZnjgZrjgY0s44KG44GG44GYDQor44GZ44Ga44GNLOOCiOOBhuOBkw0KK+OBu+OBneOBi+OCjyzjgbLjgafjgZgNCivjgZ/jgbbjgZcs44G+44GV44Gy44KNDQor44Gf44Gh44GW44KPLOOBkeOBhOOBmeOBkQ0KK+OBn+OBoCzjgarjgYrjgY0NCivjgZ/jgaAs44Go44GK44KLDQor44Gf44GL44GfLOOBl+OCheOBq+OBoQ0KK+OBn+OBi+OBjOOBjSzjgZXjgajjgZMNCivjgoTjgb7jgZbjgY0s44Gq44GK44GNDQor44Gf44GL44Gv44GXLOOCiuOCh+OBsuOBoQ0KK+OBn+OBi+OBr+OBlyzjgajjgoLjgZgNCivjgZ/jgYvjga/jgZcs44Gy44KN44GNDQor44Gf44GL44GuLOOBsuOBqOOBlw0KK+OBn+OBi+OBleOBjSzjgb/jga3jgYvjgZoNCivjgZ/jgYvjgZks44Gy44KN44GXDQor44Gf44GL44Go44KKLOOBguOBpOOBlw0KK+OBn+OBi+OChOOBvizjgajjgZfjgarjgooNCivjgZ/jgYvjgoTjgb4s44KI44GX44KG44GNDQor44Gf44GL44KE44G+LOOChOOBmeOBng0KK+OBn+OBi+OChCzjga/jgZjjgoENCivjgZ/jgZHjgaAs44GL44Ga44GC44GNDQor44Gf44GR44GgLOOChuOCig0KK+OBvuOBpOOBiuOBiyzjgYTjgY/jgZ8NCivjgZ/jgZHjgYQs44Gu44KK44G144G/DQor44Gf44GR44GG44GhLOOBn+OBi+OBguOBjQ0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgajjgZcNCivjgZ/jgZEs44KG44GZ44GRDQor44Gf44GN44G/44KELOOBsuOBp+OBi+OBmg0KK+OBn+OBvuOBn+OBqyzjgarjgYrjgY0NCivjgZ/jgoDjgoks44KI44GX44Gk44GQDQor44Gf44KA44KJLOOBsuOCjeOBjQ0KK+OBn+OBquOBiyzjgb7jgZXjgoTjgZkNCivjgZ/jgarjgYss44Gf44GL44Gy44KNDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjgYvjgZrjgogNCivjgZ/jgavjgoLjgags44GT44GG44GYDQor44Gf44Gr44KE44G+LOOBvuOBleOBvw0KK+OBn+OCk+OBrizjgZfjgZLjgosNCivjgZ/jga4s44KG44GG44GYDQor44Gm44KJ44GW44KPLOOCiOOBl+OBi+OBmg0KK+OBqOOBj+OBl+OBkizjgZ/jgYjjgZMNCivjgZTjgags44Gy44KN44KG44GNDQor44Go44G/44Gq44GMLOOCiOOBl+OBsuOCjQ0KK+OBqOOCk+OBl+OChyzjga7jgbbjgbLjgZMNCivjgaTjgbzjgYQs44Go44KC44GK44GNDQor44Gk44G844GfLOOBruOCiuOBqOOBlw0KK+OBpOOBmOOCgOOCiSzjgZHjgYTjgZMNCivjgb7jgaTjgoDjgoks44Go44KC44Gy44KNDQor44Gk44GL44GgLOOBi+OBmuOBguOBjQ0KK+OBpOOBreOCiOOBlyzjgojjgZfjgbLjgo0NCivjgaTjgovjgYrjgYss44GR44KT44GYDQor44Gk44KLLOOBi+OBmuOBsuOBlQ0KK+OBhuOBoeOBoCzjgajjgoLjgoTjgZkNCivjgYbjgYjjgaAs44GC44KE44GTDQor44GG44KB44GV44GNLOOBruOCiuOBsuOCjQ0KK+OBhuOCieOBi+OCjyzjgZfjgpPjgYTjgaENCivjgYbjgonjgYvjgo8s44GC44GN44Gy44GTDQor44KP44GgLOOBiuOBleOCgA0KK+OCj+OBi+OBsOOChOOBlyzjgbLjgZXjgYoNCivjgo/jgYvjgb7jgaQs44GC44GN44KJDQor44KP44Gf44Gq44G5LOOBleOBqOOCiw0KK+OCj+OBn+OBquOBuSzjgarjgYrjgY0NCivjgo/jgZ/jgoos44Gy44KN44Gy44GVDQor44KE44G5LOOBsuOBp+OChuOBjQ0KK+OChOOBr+OBjizjgZfjgofjgbLjgaENCivjgoTjgb7jgaAs44GX44KH44GYDQor44KE44G+44GgLOOBquOBiuOBjQ0KK+OChOOBvuOBk+OBlyzjgYLjgY3jgokNCivjgoTjgb7jgoLjgags44Gy44Gn44GNDQor44KE44G+44KC44GoLOOBleOBqOOBvw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgoQNCivjgoTjgb7jgoLjgags44KI44GX44GKDQor44KE44G+44KC44GoLOOBsuOBp+OChuOBjQ0KK+OChOOBvuOBhuOBoSzjgZ/jgoLjgaQNCivjgoTjgb7jga4s44GN44KI44GXDQor44KE44G+44GK44GLLOOChuOBhuOBmA0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgZcNCivjgoTjgb7jgYbjgaEs44GY44KF44KTDQor44KE44G+44GW44GNLOOBkeOCk+OBmA0KK+OChOOBvuOBluOBjSzjgojjgZfjgYvjgZoNCivjgoTjgarjgY7jgZfjgb4s44GC44Gk44GTDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OChOOBrizjgZPjgYbjgZgNCivjgoTjgZbjgY0s44GT44GG44GE44GhDQor44KI44GULOOBl+OCk+OBmA0KK+OCiOOBk+OBhCzjgYvjgZrjgbLjgo0NCivjgojjgZPjgb/jgZ4s44GL44Ga44Gy44KNDQor44KI44GT44GfLOOBvuOBleOChuOBjQ0KK+OCiOOBk+OBnyzjgZ3jgbLjgaENCivjgojjgZPjgZ8s44GC44Gk44GXDQor44KI44GX44GgLOOCiOOBhOOBoQ0KK+OCiOOBl+OBoCzjgZXjgaENCivjgojjgZfjgbXjgZUs44G+44GV44G/DQor44KI44GX44Gv44KJLOOBqOOBiuOCiw0KK+OCiOOBl+OBhOOBiCzjgbLjgo3jgbXjgb8NCivjgojjgZfjgYvjgo8s44Go44KC44Gf44GLDQor44KI44GX44GL44KPLOOBqOOBl+OBsuOBpw0KK+OCiOOBl+OBiizjgZ/jgZHjgZcNCivjgobjgYLjgZUs44Gy44KN44G+44GVDQor44KG44GNLOOChuOBi+OCig0KK+OBguOBoOOBoSzjgb7jgZnjgb8NCivjgYrjgavjgZcs44G/44GL44GTDQor44GK44GfLOOBn+OBi+OBsuOBkw0KK+OBguOBleOBrizjgZ/jgZHjgZcNCivjgavjgZfjgoDjgoks44KE44GZ44Gv44KLDQor44KE44G+44GgLOOBi+OBpOOBvuOBlQ0KK+OBleOBhCzjgajjgZfjgY0NCivjgb/jgoTjgoLjgags44KG44GG44GYDQor44GZ44Ga44GNLOOBsuOBleOBig0KK+OBteOBj+OBhCzjgobjgYbjgZMNCivjgYrjgY/jgaAs44GX44KT44GE44Gh44KN44GGDQor44GV44GE44Go44GGLOOBvuOBoeOBkw0KK+OBteOCi+OChCzjgYTjgY/jgbXjgb8NCivjgoLjgajjgoTjgb4s44Go44KC44G+44GVDQor44KI44GX44GW44GNLOOBr+OBmOOCgQ0KK+OBquOBi+OCgOOCiSzjgaHjgYgNCivjgajjgY3jgo8s44G/44Gk44Gy44KNDQor44GE44Gq44GgLOOChuOBhuOBmA0KK+OBqOOBjeOCjyzjgb7jgZXjgojjgZcNCivjgojjgZfjgaAs44GC44GN44KJDQor44Gf44GL44GuLOOBqOOBl+OChuOBjQ0KK+OBhuOBiOOBoCzjgYvjgZrjgYoNCivjgaTjgaHjgoQs44G/44KP44GTDQor44GX44KC44GL44KPLOOBv+OBoeOBkw0KK+OBvuOBpOOBhCzjgb/jgaTjgojjgZcNCivjgZnjgYzjgoQs44Gy44KN44Gu44KKDQor44G/44Gu44GQ44GhLOOBj+OBq+OBig0KK+OBhuOBiOOBoCzjgYvjgZrjgYoNCivjgYTjga4s44GL44Ga44Gy44GTDQor44G+44GI44GgLOOBj+OBq+OChA0KK+OBpOOBvOOBnyzjgbLjgZXjgZMNCivjgojjgZfjgb8s44Gf44GL44GKDQor44GE44Gh44GL44KPLOOBi+OBpOOBvw0KK+OBu+OCiizjgarjgYrjgbLjgo0NCivjga/jgoTjgZcs44KG44Gy44GhDQor44GX44Gw44GfLOOBguOBpOOCjQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgbLjgaENCivjgYrjgY/jgbws44G+44GV44Gk44GqDQor44GE44KP44GfLOOBruOCiuOChuOBjQ0KK+OBteOBmOOBnyzjgZ/jgYvjgobjgY0NCivjgY3jgZ/jgoDjgoks44GR44GE44GTDQor44GP44KN44GNLOOBqOOCguOBkw0KK+OChOOBvuOCguOBqCzjgobjgYbjgZMNCivjgoTjgb7jgbDjgZ8s44G144G/44Gy44GTDQor44GV44GE44Go44GGLOOBi+OBpOOBvw0KK+OBteOBmOOCj+OCiSzjgojjgZfjgYoNCivjgYTjgajjgYYs44KE44GZ44GTDQor44GE44GE44GRLOOBsuOBi+OCiw0KK+OBleOCgOOBi+OCjyzjgajjgoLjgZgNCivjgYLjgZrjgb4s44G+44GT44GoDQor44GC44GK44GNLOOBruOCiuOBig0KK+OBteOBmOOBnyzjgYTjgY/jgYoNCivjgb/jgojjgZcs44GX44GS44Gy44KNDQor44Gb44GN44KE44G+LOOBsuOBp+OChA0KK+OBpuOCieOBoCzjgobjgZ/jgYsNCivjgYjjgpPjgaks44GE44GP44GTDQor44GL44GN44KC44GoLOOBvuOBmeOBsuOBkw0KK+OBteOCi+OChCzjgZ/jgZHjgZcNCivjgb7jgY3jgoDjgoks44Gu44G244KG44GNDQor44GT44KT44GuLOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOBleOBjSzjgYvjgZrjgYoNCivjgojjgZfjgaAs44GR44GE44GTDQor44Gv44GO44KP44KJLOOBn+OBi+OBlw0KK+OChOOBluOBjSzjgobjgY3jgZMNCivjgavjga7jgb/jgoQs44GX44KF44Gy44GhDQor44GT44GV44GLLOOBn+OBoOOBlw0KK+OBleOBrizjgYvjgZrjgagNCivjgZXjgYTjgajjgYYs44Go44GK44KLDQor44GX44KC44GbLOOBguOBjeOBruOCig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgY0NCivjgZ/jgaTjgYrjgYss44GC44Gk44GXDQor44Gf44Gw44GfLOOBpOOBreOBig0KK+OBquOBiuOBhCzjgajjgZfjgYvjgZoNCivjgarjgYzjgZ8s44KI44GX44GKDQor44Gr44GX44GK44GLLOOBpuOCi+OBsuOBlQ0KK+OBvuOBpOOBi+OCjyzjgZ/jgZHjgZcNCivjgb/jgZrjga4s44GR44KT44GY44KN44GGDQor44Go44GP44Gq44GMLOOBhOOCj+OBig0KK+OCgOOCieOBi+OBvyzjgZ/jgZHjgYoNCivjgoTjgZnjgYvjgo8s44Gy44KN44GXDQor44KE44G+44GQ44GhLOOBqOOBl+OChuOBjQ0KK+OCiOOBk+OBhuOBiCzjgZfjgZLjgYoNCivjgYLjgZrjgb4s44Gy44KN44GXDQor44GE44Gq44GgLOOChuOBhuOBmA0KK+OBhOOBl+OBhCzjgYvjgZrjgYoNCivjgYTjgb7jgavjgZcs44Gy44KN44KE44GZDQor44GK44GL44GuLOOBl+OCk+OBlA0KK+OBjeOBlyzjgaDjgYTjgZnjgZENCivjgY/jgbzjgZ8s44Gf44GL44KI44GXDQor44GT44G/44Gq44G/LOOBi+OBmuOBsuOBqA0KK+OBguOBhOOChOOBvizjgb7jgZXjgY0NCivjgZXjga4s44KI44GX44Gf44GLDQor44Gf44GN44GM44KPLOOBvuOBleOBkw0KK+OBk+OCk+OBrizjgb7jgZXjgYoNCivjgZvjgpPjgaDjgYQs44GX44GS44KLDQor44Gr44KP44GuLOOBguOBpOOBlw0KK+OBl+OBmOOChyzjgobjgYbjgZMNCivjgYvjgajjgYYs44GR44GE44GTDQor44GC44GL44GV44GLLOOBsuOCjeOBjQ0KK+OBiuOCk+OBmuOBiyzjgajjgZfjga7jgooNCivjgZPjgYws44KG44GN44GKDQor44Gv44KE44GL44KPLOOBn+OBoOOBlw0KK+OBr+OBm+OBjOOCjyzjga7jgbzjgosNCivjgbXjgovjgYvjgo8s44G/44Gk44KG44GNDQor44G144GY44GL44GpLOOBruOBvOOCiw0KK+OBqOOBruOBi+OCjyzjgZ/jgZHjgYoNCivjgb7jgaTjgYos44GL44Gt44G/44GkDQor44GN44G/44Ga44GLLOOBqOOBl+OBkw0KK+OBiuOBoSzjgb7jgZXjga7jgooNCivjgYTjgaHjgZPjga/jgoks44G+44KG44G/DQor44GE44GR44GgLOOBl+OCh+OBmOOCjQ0KK+OBguOCieOBn+OBkSzjgaHjgYvjgokNCivjgYTjgZHjgaAs44GX44GS44KI44GXDQor44GE44Go44GGLOOBsuOCjeOChOOBmQ0KK+OBhOOBkeOBoCzjgZ/jgYvjgZcNCivjgYTjgYTjgaAs44Gy44Gn44GZ44GRDQor44GK44GP44G+LOOBquOBiuOCiOOBlw0KK+OBj+OBleOBsCzjgYvjgZrjgarjgooNCivjgZPjgbDjgoTjgZcs44GP44Gr44GKDQor44GU44GoLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgZPjgYbjgYTjgaENCivjgZvjgY3jga0s44Go44KC44G/DQor44Gf44GL44GgLOOBvuOBleOCiOOBlw0KK+OBk+OCk+OBqSzjgZ/jgZHjgZcNCivjgZ/jgZHjgoTjgb4s44KG44GG44GYDQor44Gf44GL44GE44GhLOOBn+OBkeOBlw0KK+OBneOBoCzjgojjgZfjgYoNCivjgZ/jga4s44G+44GV44Gu44KKDQor44GX44Gu44GW44GNLOOBvuOBk+OBqA0KK+OBr+OCieOBoCzjgb7jgZXjgoTjgZkNCivjgY/jganjgYYs44GC44GN44GTDQor44Gk44Gu44GgLOOBhOOBj+OBig0KK+OBteOCi+OBi+OCjyzjgajjgY3jgYoNCivjgoLjgorjgZ8s44KI44Gy44GhDQor44KE44G+44KC44GoLOOBiOOBpA0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgagNCivjgobjgYvjgo8s44GL44Ga44GIDQor44KI44GX44GgLOOBvuOBleOBjQ0KK+OBr+OChOOBlyzjgZXjgojjgZMNCivjgZ/jgpPjga4s44GL44Ga44KEDQor44Gf44GL44Gv44GXLOOCguOBqOOBruOCig0KK+OBquOCiuOBguOBhCzjgbLjgo3jgZcNCivjgZ/jgYvjgoDjgoks44Go44GX44KG44GNDQor44Gf44KT44GuLOOCiOOBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgZHjgYTjgZfjgo0NCivjgZTjgags44GK44GV44KADQor44GU44GgLOOBkeOCk+OBmA0KK+OBquOBi+OBl+OBvizjgb7jgZPjgagNCivjgbvjgZfjga4s44GV44Go44GXDQor44KP44GTLOOBguOChA0KK+OBmeOBmuOBjSzjgYvjgaTjgZMNCivjgojjgZfjgb7jgaQs44GY44KF44GtIOOBquOBiuOBkw0KK+OBquOBv+OBiuOBiyzjgajjgZfjgYLjgY0NCivjgoTjgb7jgZDjgaEs44G+44GV44KG44GNDQor44GE44GX44Gw44GXLOOBqOOBiuOCiw0KK+OBhOOBl+OBoCzjgojjgZfjga/jgosNCivjgYbjgaHjgoTjgb4s44KI44GX44GKDQor44GI44KT44GpLOOBiOOBhOOBkw0KK+OBquOBi+OBrizjgajjgZfjgZ/jgYsNCivjgYTjgb7jgYQs44GI44GE44GE44GhDQor44GK44GV44Gq44GELOOBvuOBk+OBqA0KK+OBleOBi+OCguOBqCzjgojjgZfjga7jgooNCivjgZfjgYrjgb8s44GC44GN44GKDQor44GX44G+44GW44GNLOOBpuOBpOOBig0KK+OBpuOCi+OChCzjgZPjgYbjgYTjgaENCivjgarjgYvjgZ/jgass44Go44GK44KLDQor44Gv44GO44KP44KJLOOBjeOCh+OBkw0KK+OBsuOBjOOBlyzjgb/jgaTjgYoNCivjgbvjgorjgYbjgaEs44G144G/44Gf44GgDQor44G/44Ge44KN44GOLOOBquOBiuOBjQ0KK+OCguOCiizjgZfjgZLjgYoNCivjgYTjga7jgYbjgYgs44G+44GV44GP44GrDQor44GX44GgLOOBl+OCk+OBmA0KK+OChOOBvuOCguOBqCzjgbLjgo3jgYvjgZoNCivjgoTjgb7jgoLjgags44G+44GT44GoDQor44GK44Gf44GNLOOBm+OCk+OChA0KK+OBteOBmCzjgZvjgYTjgZgNCivjgYLjgY3jgoLjgags44GX44GS44KLDQor44GE44GE44GY44G+LOOBvuOBleOBteOBvw0KK+OBiuOBkOOBvizjgYvjgZrjgYoNCivjgZXjgajjgYYs44GC44Gk44GXDQor44Gk44Gh44KELOOBjeOCiOOBlw0KK+OBleOBhOOBqOOBhizjgaHjgYvjgZcNCivjga/jgoks44Gq44GK44GNDQor44G144GY44G+44GNLOOBqOOBl+OChA0KK+OCgOOCjeOBnyzjgarjgYrjgY0NCivjgoLjgoos44GN44KI44GL44GaDQor44G/44Ge44GQ44GhLOOBl+OCh+OBkw0KK+OBhOOBkeOBr+OBnyzjgojjgZfjgYoNCivjgYrjgYzjgo8s44Gq44GK44GNDQor44GG44GI44GuLOOBn+OCguOBpA0KK+OBn+OBquOBiyzjgZ/jgZHjgbLjgZMNCivjgZPjgbDjgoTjgZcs44G/44Gh44KIDQor44GP44KN44GZLOOBv+OBoeOBkw0KK+OBjeOBn+OBjOOCjyzjgbLjgafjgYLjgY0NCivjgZfjga7jgb8s44GL44Ga44KEDQor44Gv44GbLOOBleOBquOBiA0KK+OBpuOCi+OBrOOBvizjgb7jgoLjgosNCivjgY3jgY/jgaEs44GC44GN44GTDQor44Gv44GX44KC44GoLOOChuOBv+OBkw0KK+OBiuOBi+OCjyzjgZ/jgYvjgYoNCivjgYrjgavjgZcs44KI44GX44Gy44KNDQor44GC44G5LOOBi+OBmuOCiOOBlw0KK+OBguOBoOOBoSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYLjgaDjgaEs44GX44KT44KEDQor44GC44Gg44GhLOOBv+OBpOOBvuOBlQ0KK+OBguOBlCzjgajjgYrjgosNCivjgYLjgYTjga/jgoks44Go44GX44KG44GNDQor44GC44GE44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBguOBhOOBluOCjyzjgbLjgo3jgZ/jgYsNCivjgYLjgYvjgb7jgaQs44G+44GV44Go44GXDQor44GC44GL44G+LOOBi+OBmuOBsuOCjQ0KK+OBguOBi+OBmyzjgb7jgZXjgYvjgZoNCivjgYLjgYvjgoTjgb4s44KE44GZ44GYDQor44G144GP44GX44G+LOOBsuOCjeOBlw0KK+OBguOBjeOBsCzjgb7jgZXjgobjgY0NCivjgYLjgY3jga4s44KG44GeDQor44GC44GN44GX44GLLOOCiOOBhuOBkw0KK+OBquOCgeOBjSzjgZXjgajjgZcNCivjgYLjgY3jgZrjgY0s44Gu44KK44KG44GNDQor44GC44G+44GgLOOBl+OCk+OBqA0KK+OBguOBvuOBrizjgZ3jgbLjgaENCivjgYLjgb/jga4s44G+44GV44Gy44GoDQor44GC44KT44G5LOOBsuOBp+OBjQ0KK+OBguOCk+OBqeOBhizjgb7jgZXjgagNCivjgYLjgpPjgZbjgYQs44Go44GX44KG44GNDQor44GC44KT44GW44GELOOBi+OBiuOCig0KK+OBguOBiuOBjSzjgYLjgY3jgbLjgZMNCivjgYLjgYrjgoTjgY4s44Gy44Gn44GKDQor44GC44GK44KE44GOLOOBmOOCheOBq+OBoQ0KK+OBguOBiuOChOOBjizjgZ/jgaTjgYoNCivjgYLjgonjgYvjgo8s44Go44KC44G/DQor44GC44KJ44GL44KPLOOBvuOBleOChuOBjQ0KK+OBguOCieOBjSzjgZfjgpPjgZLjgpMNCivjgYLjgonjgoTjgZks44Go44KC44GuDQor44GC44KJLOOBpOOBqOOCgA0KK+OBguOCiuOBnyzjga/jgovjgY0NCivjgYLjgZXjgaAs44KG44GG44GYDQor44GC44GV44GgLOOBquOBiuOBvw0KK+OBguOBleOBi+OCjyzjgZfjgpPjgYTjgaENCivjgYLjgZXjgY/jgoks44KG44GN44GKDQor44Gq44GL44GV44GoLOOBqOOBiuOCiw0KK+OBguOBleOBrizjga7jgbbjga/jgosNCivjgYLjgZXjgoos44KE44GZ44GXDQor44GC44Gk44G/LOOBsuOCjeOBqOOBlw0KK+OBguOCj+OBiyzjgZ/jgYvjgojjgZcNCivjgbDjgbAs44Gy44KN44GXDQor44Gw44KTLOOBleOBqOOBlw0KK+OBsOOCkyzjgZ/jgYvjgYoNCivjgbDjgpMs44Gy44KN44KG44GNDQor44Gh44KH44GVLOOBsuOBleOBlw0KK+OBoOOBhOOBqSzjgZ/jgYTjgZnjgZENCivjgaDjgYTjgoLjgpMs44G+44GV44KG44GNDQor44Gn44KA44KJLOOBqOOBl+OChuOBjQ0KK+OBqeOBhCzjgbLjgajjgZcNCivjgYjjgbPjgazjgb4s44GC44GN44GKDQor44GI44GQ44GhLOOBjeOCh+OBkw0KK+OBiOOBr+OCiSzjgY/jgavjgYoNCivjgYjjgarjgb8s44Gy44KN44GC44GNDQor44GI44GoLOOBruOCiuOBiA0KK+OBhOOCj+OBleOBjSzjgajjgoLjgobjgY0NCivjgYjjgZbjgY0s44GC44GN44KJDQor44G144GY44GI44GgLOOCiOOBl+OBsuOCjQ0KK+OBteOBmOOBiCzjgYvjgZrjgY0NCivjgbXjgZjjgYzjgY0s44GC44GN44KI44GXDQor44G144GY44GELOOBi+OBpOOBvw0KK+OBteOBmOOBhCzjgYvjgZrjgbLjgo0NCivjgbXjgZjjgYQs44GR44KT44GeDQor44G144GY44GELOOCj+OBn+OCiw0KK+OBteOBmOOBhCzjgZPjgYbjgZ/jgo3jgYYNCivjgbXjgZjjgYvjgo8s44G+44GV44GXDQor44G144GY44KC44KKLOOBkeOBhOOBl+OCkw0KK+OBteOBmOOCguOBqCzjgarjgYrjgbLjgZMNCivjgbXjgZjjgoLjgags44KI44GX44GoDQor44G144GY44GuLOOBn+OBi+OBlw0KK+OBteOBmOOBiuOBiyzjgYLjgZHjgb8NCivjgYrjgZDjgoks44GY44KF44KTDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBteOBmOOBnyzjgarjgaTjgZMNCivjgbXjgZjjgZ8s44KI44GX44Gq44KLDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBteOBmOOCj+OCiSzjgobjgYbjgZgNCivjgbXjgYvjgaAs44GY44KF44KTDQor44G144GL44GKLOOBk+OBhuOBhOOBoQ0KK+OBteOBi+OBiizjgojjgZfjgaHjgYsNCivjgbXjgYvjgZss44Go44GX44KG44GNDQor44G144GP44GhLOOBguOBjeOCiQ0KK+OBteOBj+OBoCzjgZjjgoXjgavjgaENCivjgbXjgY/jgaAs44G/44KG44GNDQor44G+44Gk44GL44KPLOOBl+OBkuOBruOCig0KK+OBteOBj+OBoCzjgZfjgpPjgYTjgaENCivjgbXjgY/jgaAs44Go44KC44GuDQor44G144GP44GgLOOBl+OCh+OBlA0KK+OBteOBj+OBr+OCiSzjgZfjga4NCivjgbXjgY/jgYQs44Gf44GL44GXDQor44G144GP44GELOOChOOBmeOBlw0KK+OBteOBj+OBiuOBiyzjgYLjgoTjgZMNCivjgZfjgYws44G+44GV44GoDQor44G144GP44GX44G+LOOBleOBqOOCiw0KK+OBteOBj+OBl+OBvizjgobjgY3jgYoNCivjgbXjgY/jgZfjgb4s44GX44KH44GYDQor44GK44GuLOOBsuOCjeOBlw0KK+OBteOBquOBpCzjgYLjgaTjgZcNCivjgZTjgaAs44G/44Gk44Gy44KNDQor44GU44GgLOOBv+OBleOBjQ0KK+OBlCzjgb7jgorjgZMNCivjgZPjgZDjgows44KI44GX44Gy44KNDQor44GU44GoLOOChuOBhuOBkw0KK+OBlOOBqCzjgbXjgb/jgbLjgZMNCivjga/jgYws44Gy44Gn44GKDQor44Gv44GO44KP44KJLOOBv+OBiw0KK+OBr+OBvuOBoCzjgobjgY3jgZMNCivjgb7jgYjjgaAs44GR44KT44GYDQor44Gv44G+44Gv44GfLOOChuOBjeOBig0KK+OBr+OBvuOBrizjgbLjgo3jgZcNCivjga/jgarjgbbjgZUs44GY44KF44Gr44GhDQor44Gv44Gq44GfLOOBl+OCk+OBlA0KK+OBr+OBquOBv+OBpCzjgarjgYrjgagNCivjga/jgpPjgaAs44GC44Gk44GXDQor44Gv44KJ44GgLOOBoeOBi+OBkw0KK+OBr+OCieOBoCzjgarjgYrjgY0NCivjga/jgonjgaAs44Gq44GK44GNDQor44Gv44KJ44GgLOOBqOOBl+OChuOBjQ0KK+OBr+OCiSzjgojjgorjgZMNCivjga/jgoks44Gy44Gn44GC44GNDQor44Gv44Gb44GM44KPLOOBi+OBhOOCjQ0KK+OBr+OBl+OBkOOBoSzjgY3jgpPjgoQNCivjga/jgZfjgoLjgags44Gf44GL44GXDQor44Gv44GX44KC44GoLOOChuOBjeOCiA0KK+OBr+OBn+OBkeOChOOBvizjgorjgofjgYTjgaENCivjga/jgZ/jgarjgYss44GN44GP44GKDQor44Gv44Gk44GX44G+LOOBguOBjeOBig0KK+OBr+OBo+OBqOOCiizjgZHjgpPjgYTjgaENCivjga/jgaPjgajjgoos44Gu44G844KLDQor44Gv44Gj44Go44KKLOOBruOBtuOBsuOCjQ0KK+OBr+OBo+OBqOOCiizjgorjgoXjgbLjgaHjgo0NCivjga/jgaPjgajjgoos44KI44GX44GYDQor44Gv44Gj44Go44KKLOOCiOOBl+OBn+OBiw0KK+OBr+OChOOBi+OCjyzjgZnjgb/jgagNCivjga/jgoTjgZfjgaAs44GC44KE44GTDQor44GL44KT44GgLOOBteOBv+OBig0KK+OBr+OChOOBlyzjgZjjgoXjgavjgaENCivjga/jgoTjgZcs44G+44GV44Gu44KKDQor44Gv44KE44GXLOOBvuOBleOChuOBjQ0KK+OBr+OChOOBlyzjgb/jgobjgY0NCivjgajjgbPjgYvjgo8s44G+44GT44GoDQor44Gy44GS44GfLOOBhOOBleOBig0KK+OBsuOBkOOBoSzjgb7jgZXjgajjgZcNCivjgbLjgZDjgaEs44Gu44KK44GNDQor44Gy44GY44GL44KPLOOBleOBqOOBlw0KK+OBsuOBi+OBhCzjgY3jgojjgZcNCivjgbLjgarjgZ8s44GR44KTDQor44Gy44GuLOOCiOOBl+OBsuOBlQ0KK+OBsuOBrizjgaTjga3jgbLjgZUNCivjgbLjgonjgY4s44G+44GV44GTDQor44KI44KC44GgLOOBteOBv+OBig0KK+OBsuOCieOBrizjgobjgY3jgbLjgZMNCivjgbLjgonjga4s44KI44GX44Gu44KKDQor44Gy44KJ44GV44KPLOOBguOBjeOCiQ0KK+OBsuOCieOBnyzjgb7jgZXjgoQNCivjgYLjgZXjga4s44GR44KT44GYDQor44Gy44KJ44GfLOOBk+OBhuOBmA0KK+OBsuOCieOBpOOBiyzjgaTjgojjgZcNCivjgbLjgo3jgYvjgo8s44Gy44KN44GXDQor44Gy44KN44Gq44GLLOOBi+OBpOOBvw0KK+OBsuOCjeOBmyzjgb/jgobjgY0NCivjgZ/jgZfjgo0s44KI44Gy44GhDQor44Gy44KN44GbLOOBv+OBpOOBsuOCjQ0KK+OBsuOBl+OBrOOBvizjgobjgYbjgZMNCivjgYTjgo/jgoLjgags44KI44GX44Gu44KKDQor44Gy44GG44KJLOOBvuOBqeOBiw0KK+OBmeOBjuOCguOBqCzjgZjjgoXjgpMNCivjgbvjgpPjgb4s44GX44KH44Gy44GhDQor44G744KT44G+LOOBn+OBi+OChuOBjQ0KK+OBu+OCk+OBvizjgoTjgZnjgZcNCivjgbvjgpPjgb4s44GL44Ga44GoDQor44G744KK44GL44KPLOOBvuOBleOBruOBtg0KK+OBu+OCiuOBiizjgbLjgo3jgobjgY0NCivjgbvjgoos44GL44Ga44Gy44KNDQor44G744KKLOOBvuOBleOBsuOCjQ0KK+OBu+OCiizjgbLjgo3jgZcNCivjgbvjgZfjga4s44Gy44GV44GKDQor44G744GX44GuLOOBn+OBkeOBlw0KK+OBu+OBl+OBrizjgbXjgb/jgYLjgY0NCivjgbvjgZcs44GL44Ga44Gy44GVDQor44G744GdLOOBsuOBleOChuOBjQ0KK+OBu+OBn+OBpizjgY3jgb/jgZMNCivjgYTjgaHjgYvjgo8s44G+44GT44GoDQor44GE44Gh44GL44KPLOOBsuOCjeOBruOBtg0KK+OBhOOBoeOBjSzjgZjjgoXjgpMNCivjgYTjgaHjga7jgZss44Gy44Go44GXDQor44GE44GgLOOBm+OBhOOBhOOBoQ0KK+OBhOOBp+OBhCzjgoTjgZnjgobjgY0NCivjgYTjgYzjgonjgZcs44Gk44KI44GXDQor44GE44GQ44GhLOOBn+OBhOOCiQ0KK+OBhOOBhOOBoCzjgZ/jgaTjgo0NCivjgYTjgYTjgaAs44GY44KF44Gr44GhDQor44GE44GE44GY44G+LOOBi+OBpOOCiOOBlw0KK+OBhOOBhOOBmOOBvizjgYvjgZrjgYoNCivjgYTjgYTjgoDjgoks44GC44Gk44GXDQor44GE44GE44GuLOOBk+OBhuOBhOOBoQ0KK+OBhOOBhOOBmuOBiyzjgZfjgpPjgZgNCivjgYTjgYTjgZrjgYss44GC44GN44GTDQor44Gv44KL44GfLOOBteOBqOOBlw0KK+OBhOOBkeOBoCzjgbLjgo3jgZMNCivjgZnjgZrjgY0s44GL44Ga44G/DQor44GE44GR44GgLOOChuOBiw0KK+OBhOOBneOBuSzjgobjgb/jgZMNCivjgYTjgZHjgoTjgb4s44GV44Go44GXDQor44GE44GP44GfLOOBn+OBkeOBlw0KK+OBhOOBvuOBhOOBmuOBvyzjgYLjgooNCivjgoLjgorjgZfjgZ8s44Gq44GK44GNDQor44GE44G+44GELOOBvuOBleOBi+OBmg0KK+OBhOOBvuOCgOOCiSzjgobjgYbjgZgNCivjgYTjgb7jgoDjgoks44GUDQor44GE44Gq44G/LOOBiOOBhOOBluOBtuOCjQ0KK+OBhOOBruOBhuOBiCzjgbXjgZjjgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GE44Gu44GG44GILOOBi+OBmuOBruOCig0KK+OBhOOBruOBhuOBiCzjgojjgZfjga7jgbYNCivjgYTjga7jgYbjgYgs44Gy44Gn44GNDQor44GE44Gs44GELOOBsuOCjeOBlw0KK+OBhOOBl+OBoCzjgYvjgaTjgbLjgZMNCivjgYTjgZfjgaAs44Go44GX44GTDQor44GE44GX44GgLOOBquOBiuOBsuOCjQ0KK+OBhOOBl+OBkOOCjSzjgajjgYrjgosNCivjgYTjgZfjgZDjgo0s44GP44Gr44Gy44KNDQor44GE44GX44Gv44KJLOOBk+OBhuOBmA0KK+OBhOOBl+OBhCzjgZnjgY7jgYoNCivjgYTjgZfjgYQs44Go44GX44GC44GNDQor44GE44GX44GELOOBoeOBmuOBkw0KK+OChuOBjeOBvuOBlSzjgZfjgZLjgY0NCivjgYTjgZfjgYvjgo8s44Gf44Gg44GXDQor44GE44GX44GL44KPLOOBvuOBquOBtg0KK+OBhOOBl+OBj+OCiSzjga7jgorjgobjgY0NCivjgYTjgZfjgoLjgoos44GR44KT44KEDQor44GE44GX44KC44GoLOOChOOBmeOBsuOBpw0KK+OBhOOBl+OCguOBqCzjgbLjgo3jgZcNCivjgYTjgZfjgYrjgYss44Gy44KN44GXDQor44GE44GX44GK44GLLOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OCj+OBnyzjgb/jgaTjgZMNCivjgYvjgpMs44KG44GN44Go44GXDQor44GE44GX44GW44GLLOOBvuOBquOBtg0KK+OBhOOBneOBjOOBhCzjgajjgZfjgbLjgo0NCivjgYTjgZ/jgbDjgZcs44KG44Gf44GLDQor44GE44Gf44Gw44GXLOOBvuOCig0KK+OBleOBjuOChCzjgbLjgo3jgZcNCivjgYTjgajjgYYs44GY44KF44Gr44GhDQor44GE44Go44GGLOOBi+OBiuOCiw0KK+OBhOOBqOOBhizjgZHjgYTjgYTjgaENCivjgYTjgajjgYYs44GT44GG44GYDQor44GE44Go44GGLOOBvuOBleOBqOOBlw0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYTjgajjgYYs44KI44GG44GTDQor44GV44GL44GELOOChuOBn+OBiw0KK+OBhOOBqOOBhizjgbLjgo3jgYLjgY0NCivjgYTjgo/jgYQs44KK44GIDQor44GX44G+44KA44KJLOOBleOBoeOBkw0KK+OBhOOCj+OBhCzjgobjgYsNCivjgYvjgo/jgarjgYss44Gu44G244GKDQor44GE44KP44GP44G8LOOBquOBiuOBsuOBlQ0KK+OBhOOCj+OCguOBqCzjgojjgbLjgaHjgo0NCivjgYTjgo/jgoLjgags44GL44KI44GTDQor44Gf44GR44GgLOOBn+OBi+OBsuOCjQ0KK+OBhOOCj+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgYTjgo/jgarjgYws44GX44GS44GNDQor44GE44KP44GKLOOBsuOBp+OBguOBjQ0KK+OBhOOCj+OBleOBjSzjgabjgaTjgoQNCivjgYTjgo/jgZXjgY0s44GC44GR44G/DQor44Gb44GM44KPLOOBruOBnuOCgA0KK+OBhOOCj+OBl+OCjSzjgarjgYrjgojjgZcNCivjgYTjgZrjgb8s44GL44Ga44GX44GSDQor44GL44GI44KK44KE44G+LOOBquOBiuOChuOBjQ0KK+OBi+OBjOOBvyzjgZ/jgYvjgZcNCivjgYvjgYzjgb8s44GT44GG44GE44GhDQor44GL44GY44Gf44GrLOOBi+OBmuOChuOBjQ0KK+OChOOBvuOCguOBqCzjgYvjgYrjgosNCivjgYvjgY3jgazjgb4s44G144GV44Gh44GLDQor44GL44GPLOOBjeOCh+OBkw0KK+OBi+OBvuOBoCzjgYvjgZrjgb8NCivjgYTjgarjgYzjgY0s44Gf44GL44KG44GNDQor44GL44G+44KC44GoLOOBleOChOOBiw0KK+OBi+OBvuOBn+OBqyzjgbLjgafjgYLjgY0NCivjgYvjgb7jgZ8s44GV44Gh44GTDQor44KE44G+44GgLOOBsuOCjeOChuOBjQ0KK+OBi+OCgeOBoCzjgbLjgafjgYoNCivjgYvjgoHjgoQs44GT44GG44GE44GhDQor44GL44G/44GY44KHLOOBn+OBpOOBsuOBkw0KK+OBi+OBv+OBiizjgajjgonjgbLjgZMNCivjgYvjgb/jgoQs44G+44GV44Gf44GLDQor44GL44KC44GoLOOCiOOBl+OBsuOBlQ0KK+OBi+OBquOBoCzjgb7jgZPjgagNCivjgYvjgarjgYQs44Gq44GK44GNDQor44GL44Gq44GELOOBhOOBj+OBig0KK+OBi+OBquOBluOCjyzjgZfjgZLjgojjgZcNCivjgYvjgpPjgaAs44GL44Ga44Gy44GTDQor44GL44Gt44GE44GhLOOBiOOBhOOBhOOBoQ0KK+OBi+OBreOBkyzjgbLjgo3jgYLjgY0NCivjgYvjga3jgZMs44Gy44KN44KG44GNDQor44GL44Gt44GTLOOBvuOBk+OBqA0KK+OBi+OBreOBkyzjgb7jgZXjgYgNCivjgYvjga3jgZMs44Gf44GI44GTDQor44GL44Gt44GTLOOBquOBiuOBteOBvw0KK+OBi+OBreOBvuOCiyzjgajjgoLjgZMNCivjgYvjgorjgoQs44GI44GE44GYDQor44GL44KL44G5LOOBguOBjeOBkw0KK+OBi+OBl+OBvizjgbLjgafjgY0NCivjgYvjgZfjgo/jgY4s44G+44GT44GoDQor44GL44GX44KP44GOLOOBvuOBquOBvw0KK+OBi+OBmeOChCzjgb7jgZXjga7jgooNCivjgYvjgZnjgoQs44KI44KK44GTDQor44GL44GZ44KELOOBvuOBleOBn+OBiw0KK+OBi+OBn+OBrizjgY3jgofjgZMNCivjgZfjgonjgY0s44KK44GI44GTDQor44GL44Gf44GK44GLLOOBleOBoOOBhOOBoQ0KK+OBi+OBn+OBiuOBiyzjgZ/jgYvjgbLjgo0NCivjgYvjgZ/jgoTjgb4s44GC44GN44GKDQor44GL44Go44GGLOOBsuOCjeOBtuOBvw0KK+OBi+OBqOOBhizjgb7jgZnjgYoNCivjgYvjgajjgYYs44GX44KF44GYDQor44GL44Go44GGLOOBn+OBkeOBsuOBkw0KK+OBi+OBqOOBhizjgoTjgYgNCivjgZTjgags44Gy44GV44GXDQor44GL44Gk44KELOOBguOBpOOBlw0KK+OBi+OCj+OBoCzjgojjgZfjga7jgbYNCivjgYvjgo/jgaAs44GN44KH44GYDQor44GL44KP44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBi+OCj+OBr+OCiSzjgojjgZfjgobjgY0NCivjgYvjgo/jga/jgoks44Gy44KN44GXDQor44GL44KP44Gv44GfLOOBkeOBhOOBlA0KK+OBi+OCj+OBhCzjgZfjgofjgZMNCivjgYvjgo/jgYQs44Gf44GL44GXDQor44GL44KP44GELOOBkeOCk+OBhOOBoQ0KK+OBi+OCj+OBi+OBvyzjgYvjgaTjgYoNCivjgYvjgo/jgY3jgZ8s44KI44Gy44Gh44KNDQor44GL44KP44GN44GfLOOBguOBpOOBlw0KK+OBi+OCj+OCgOOCiSzjgb7jgorjgZMNCivjgYvjgo/jgoDjgoks44Gf44Gm44GKDQor44GL44KP44KA44KJLOOBsuOCjeOBlw0KK+OBi+OCj+OBnuOBiCzjgbLjgo3jgZMNCivjgbXjgZ/jgY/jgaEs44Gy44KN44KEDQor44GN44GgLOOBn+OBkeOBlw0KK+OBjeOBoCzjgbLjgo3jgYvjgZoNCivjgY3jgaks44Gy44KN44GXDQor44GN44Gv44KJLOOBv+OBoeOBig0KK+OBjeOBj+OBoSzjgZXjgaHjgZMNCivjgY3jgY/jgaEs44GV44Go44GXDQor44GN44GP44GfLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBjeOCguOBqCzjgbLjgo3jgYLjgY0NCivjgY3jgoDjgoks44Gy44KN44KG44GNDQor44GN44KA44KJLOOBmOOCheOBq+OBoQ0KK+OBjeOCgOOCiSzjgYvjgojjgZMNCivjgY3jgoDjgoks44G/44G7DQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBjeOCgOOCiSzjgajjgoLjgYLjgY0NCivjgY3jgoDjgoks44KE44GZ44GTDQor44GK44GL44GW44GNLOOChuOBjeOBvuOBlQ0KK+OBjeOCgOOCiSzjgobjgY0NCivjgY3jgoDjgoks44G+44GV44KG44GNDQor44GN44Gu44GX44GfLOOBv+OBqg0KK+OBjeOBlyzjgZ/jgaDjgZcNCivjgY3jgZks44KE44GZ44Gy44KNDQor44GN44Gf44GL44GcLOOCiOOBl+OBteOBvw0KK+OBjeOBn+OCgOOCiSzjgYLjgY3jgYoNCivjgY3jgYbjgaEs44GL44Gk44Go44GXDQor44GN44GG44GhLOOBk+OBhuOBmA0KK+OBjeOCiOOBnyzjgYLjgYTjgZMNCivjgZPjgbDjgoTjgZcs44GE44GV44GKDQor44GT44Gw44KE44GXLOOBi+OBmuOBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgb/jga7jgosNCivjgZPjgbDjgoTjgZcs44Gq44G744G/DQor44GT44Gw44KE44GXLOOBl+OCheOBq+OBoQ0KK+OBk+OBsOOChOOBlyzjgZnjgb/jgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gf44GP44KNDQor44GT44Gw44KE44GXLOOBqOOBl+OBig0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgZMNCivjgbLjgo3jgZss44Gf44GR44GKDQor44GT44Gn44KJLOOChuOBiw0KK+OBk+OBjOOBhCzjgYLjgaTjgZcNCivjgZPjgZDjgows44GR44GE44GTDQor44KC44KK44GfLOOBjeOBv+OBsuOBkw0KK+OBk+OCguOBqCzjgZjjgoXjgpPjgZMNCivjgZPjga4s44Gu44G244GNDQor44GT44GV44GLLOOBguOBjeOBig0KK+OBk+OBhOOBkSzjgarjgYrjgagNCivjgZPjgYTjgZEs44Gf44GL44GeDQor44GT44GE44GXLOOBoOOBhOOBmeOBkQ0KK+OBk+OBmOOBvizjgb7jgZXjga/jgosNCivjgZPjgZjjgb4s44GR44KT44GYDQor44GT44GP44G7LOOBv+OCiOOBkw0KK+OBk+OBj+OBvuOBhCzjgojjgZfjgobjgY0NCivjgZPjgb7jgYzjgZ8s44Gf44GL44GXDQor44GT44G+44GNLOOBsuOBp+OBguOBjQ0KK+OBk+OBvuOBpCzjgobjgbLjgaENCivjgZPjgb7jgaQs44KI44GX44GKDQor44GT44G/44GtLOOBsuOCjeOBsuOBpw0KK+OBk+OBv+OChOOBvizjga/jgovjgYoNCivjgZPjgoLjgYrjgYss44GC44GN44Gy44KNDQor44GT44KC44KKLOOBsuOBleOBn+OBiw0KK+OBk+OCk+OBqSzjgYvjgZrjgYoNCivjgZPjgpPjgaks44G/44Gh44Gy44GTDQor44GT44KT44GpLOOCiOOBmeOBkQ0KK+OBk+OCk+OBqSzjgYLjgY3jgbLjgo0NCivjgZPjgpPjganjgYYs44KI44GX44KG44GNDQor44GT44KT44GuLOOBjeOCiOOBlw0KK+OBk+OBmeOBjizjgojjgbLjgaENCivjgZPjgaAs44GC44GN44GKDQor44GT44KE44Gq44GOLOOBi+OBmuOBn+OBiw0KK+OBj+OBvOOBnyzjgabjgaQNCivjgY/jgbzjgZ8s44GL44Gk44KEDQor44GP44G8LOOBv+OBiOOBkw0KK+OBj+OBqeOBhizjgb7jgZPjgagNCivjgY/jgYws44GL44Ga44KG44GNDQor44GP44GY44G+LOOCiOOBsuOBoQ0KK+OBj+OBvuOBoCzjgYLjgaTjgZcNCivjgY/jgb7jgY0s44GL44Gk44Gu44KKDQor44GP44G+44GP44KJLOOCiOOBl+OBruOBtg0KK+OBj+OBvuOCguOBqCzjgbXjgb/jgYoNCivjgY/jgoLjgYvjgo8s44GX44GS44Gu44KKDQor44GP44KJ44GX44G+LOOBsuOCjeOBlw0KK+OBj+OCiuOBr+OCiSzjgb/jgY3jgYoNCivjgY/jgorjga/jgoks44KI44GX44GeDQor44GP44KK44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBj+OCiuOBmSzjgZ/jgaTjgagNCivjgY/jgorjgoTjgb4s44Gm44Gk44GKDQor44GP44KK44KE44G+LOOCiOOBsuOBoQ0KK+OBj+OCjeOBoCzjgajjgZfjgobjgY0NCivjgY/jgo3jgYvjgo8s44Gu44G244Gy44GTDQor44GP44KN44GNLOOBsuOCjeOChuOBjQ0KK+OBj+OCjeOBleOBjSzjgarjgYrjgY0NCivjgY/jgo3jgZks44Gf44GL44KG44GNDQor44GP44GX44GgLOOBlA0KK+OBj+OBmeOBoCzjgZfjgZLjgosNCivjgY/jgo/jgbDjgoks44GI44KKDQor44GG44Gh44GgLOOBsuOCjeOBlw0KK+OBvuOBiOOBoCzjgb7jgY0NCivjgavjgo8s44GL44Gk44GoDQor44G+44GI44Gy44KJLOOBguOBjeOBsuOBkw0KK+OBvuOBiOOBi+OCjyzjgbLjgo3jga7jgooNCivjgb7jgY3jgoDjgoks44GT44GG44GE44GhDQor44G+44GN44GuLOOBk+OBhuOBmA0KK+OBvuOBjeOBrizjgobjgb/jgZMNCivjgojjgYbjgZPjgZ8s44GX44KF44GYDQor44G+44KL44KE44G+LOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgobjgY3jgYgNCivjgb7jgZnjgaAs44GY44KF44Gr44GhDQor44G+44GZ44Gy44KNLOOBguOBjeOCiQ0KK+OBvuOBmeOChOOBvizjgbLjgo3jgZcNCivjgb7jgaTjgbDjgoks44Gu44G244KEDQor44G+44Gk44Gw44KJLOOBruOBtuOBguOBjQ0KK+OBvuOBpOOBoOOBhOOCiSzjgbLjgo3jgZcNCivjgb7jgaTjgaAs44KP44Gf44KLDQor44GV44GV44KC44GoLOOCiOOBl+OBkw0KK+OBvuOBpOOBoCzjgYTjgaHjgo3jgYYNCivjgb7jgaTjgbXjgZUs44GR44GE44GE44GhDQor44G+44Gk44GELOOChOOBmeOBsuOBkw0KK+OBvuOBpOOBhCzjgZfjgZLjgb/jgaQNCivjgb7jgaTjgY0s44G+44GV44GoDQor44GL44GuLOOBsuOBp+OBn+OBiw0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgb/jgaQNCivjgb7jgaTjgoLjgags44KG44GG44GYDQor44G+44Gk44KC44GoLOOBvuOCig0KK+OBr+OBl+OCguOBqCzjgb/jgaHjgoTjgZkNCivjgb7jgaTjgoDjgoks44Gf44Gg44GXDQor44G+44Gk44KA44KJLOOBv+OBjeOBig0KK+OBvuOBpOOBquOBvyzjgabjgovjgYLjgY0NCivjgb7jgaTjgarjgb8s44GN44G/DQor44Gh44GwLOOBn+OBj+OBmA0KK+OBvuOBpOOBl+OBsCzjgZPjgYbjgZgNCivjgb7jgaTjgZfjgZ8s44KE44GZ44Gq44KKDQor44G+44Gk44GX44GfLOOBvuOBleOBqA0KK+OBvuOBpOOBhuOCiSzjgZfjgZLjgYoNCivjgb7jgaTjgZbjgY0s44GV44KG44KKDQor44GE44G+44GELOOBqOOBl+OBvw0KK+OBvuOChuOChOOBvizjgYvjgaTjgZgNCivjgoHjgpPjgZjjgocs44Go44GK44KLDQor44G/44Gh44GM44G/LOOBmOOCheOBq+OBoQ0KK+OBv+OBr+OCiSzjgYLjgY3jgbLjgZMNCivjgb/jgY0s44Gy44KN44KG44GNDQor44G/44KC44KKLOOChuOBsuOBoQ0KK+OBv+OBquOBv+OBkOOBoSzjgajjgZfjgobjgY0NCivjgb/jgarjgZrjgY0s44G144GY44GKDQor44G/44Gt44KA44KJLOOBl+OCh+OBmA0KK+OBv+OBl+OBqizjgY3jgavjgaENCivjgb/jgaTjgYQs44Gy44KN44KG44GNDQor44G/44GG44KJLOOBsuOCjeOChuOBjQ0KK+OBv+OBhuOCiSzjgobjgY3jgYoNCivjgoDjgonjgYvjgb8s44Gm44Gk44KEDQor44G/44KPLOOBk+OBhuOBhOOBoQ0KK+OBv+OChOOBjOOCjyzjgbLjgo3jgZcNCivjgb/jgoTjgY4s44GI44GE44GE44GhDQor44G/44KE44Gv44KJLOOBhOOBoeOCjeOBhg0KK+OBv+OChOOBr+OBlyzjgZ/jgaDjgZcNCivjgb/jgoTjgYvjgo8s44G+44GV44KG44GNDQor44G/44KE44GNLOOBguOBpOOBlw0KK+OBv+OChOOCguOBqCzjgb7jgZXjgagNCivjgb/jgoTjgoLjgags44Gu44KK44GKDQor44G/44KE44KC44GoLOOBr+OCi+OBkw0KK+OBv+OChOOBleOBiyzjgYLjgaTjgZcNCivjgb/jgoTjgZ/jgZEs44Gy44KN44GXDQor44G/44KE44GfLOOBi+OBquOCgQ0KK+OBv+OChOOBnyzjgarjgYrjgobjgY0NCivjgb/jgoTjgZ8s44KG44GL44KKDQor44GP44KN44GgLOOBi+OBmuOBsuOCjQ0KK+OBv+OCiOOBlyzjgZ/jgZHjga/jgosNCivjgb/jgZrjgZPjgZcs44KI44Gy44GhDQor44G/44Ga44GT44GXLOOBkeOCk+OBhOOBoQ0KK+OBv+OBmuOBrizjgb7jgZXjga/jgosNCivjgb/jgZrjga4s44GX44GS44KG44GNDQor44G/44Ga44Gf44GrLOOBvuOBleOBig0KK+OCguOCiizjgb/jgaHjgZMNCivjgoLjgoos44Go44GX44GKDQor44KC44KK44GL44KPLOOBjeOCh+OBkw0KK+OCguOCiuOBjSzjgb7jgZXjgajjgZcNCivjgoLjgorjgZfjgZ8s44G+44GV44Ga44G/DQor44KC44KK44GfLOOBm+OBhOOBmA0KK+OCguOCiuOBnyzjgbLjgo3jgZcNCivjgoLjgorjgoTjgb4s44G+44GV44Gy44KNDQor44KC44KK44Ge44GuLOOBquOBiuOBjQ0KK+OCguOCiizjgZfjgZLjgb8NCivjgoLjgoos44Go44GX44Gy44KNDQor44KC44KKLOOChuOBhuOBmA0KK+OCguOCiizjgb7jgZXjgb/jgaENCivjgoLjgo3jgZrjgb8s44GR44GE44GTDQor44GE44Gu44Gv44GqLOOBquOBiuOBkw0KK+OBk+OBmOOBvizjgb7jgY3jgYoNCivjgoDjgYvjgYQs44Go44GX44GKDQor44KA44GL44GELOOBn+OBpOOChA0KK+OCgOOCieOBhCzjga7jgbbjga/jgosNCivjgoDjgonjgYvjgb8s44GX44KT44GYDQor44KA44KJ44GL44G/LOOBl+OCh+OBmA0KK+OCgOOCieOBvuOBpCzjga7jgorjgZMNCivjgavjgo8s44GC44GN44GTDQor44KA44KJ44GfLOOChOOBmeOBsuOCjQ0KK+OCgOOCieOBnyzjgojjgZfjgb8NCivjgYrjga4s44Gf44Gg44GXDQor44KA44KJ44KE44G+LOOBi+OBmuOBsuOCjQ0KK+OCgOOBqCzjgajjgZfjgYoNCivjgoDjgags44Gk44KI44GXDQor44KA44GoLOOBleOBqOOCiw0KK+OCgOOBpOOBl+OBiyzjgYvjgaTjgajjgb8NCivjgarjgYzjgYQs44KE44GZ44GKDQor44Gq44GM44GELOOBsuOCjeOBruOCig0KK+OBquOBjOOCguOBqCzjga7jgbzjgosNCivjgYLjgonjgYQs44GL44Ga44GKDQor44Gq44GM44GKLOOBl+OCk+OBlA0KK+OBquOBjOOBleOCjyzjgZ/jgaTjgb8NCivjgarjgYzjgZXjgo8s44GV44Gh44GKDQor44Gq44GM44KE44G+LOOBoeOBquOBpA0KK+OBquOBhOOBqOOBhizjgajjgYrjgosNCivjgarjgYTjgajjgYYs44Gh44Gv44KLDQor44Gq44GL44Gw44KE44GXLOOBvuOBleOBi+OBmg0KK+OBquOBi+OBoOOBpizjgYvjgaTjgbLjgo0NCivjgarjgYvjgYzjgY0s44GV44Go44GXDQor44Gq44GM44GILOOBhOOBoeOCjeOBhg0KK+OBquOBi+OBjOOCjyzjgZ/jgYvjgZcNCivjgarjgYvjgYzjgo8s44Gh44Gv44KLDQor44Gq44GL44GU44KBLOOBsuOCjeOChA0KK+OBquOBi+OBsuOCiSzjgZ/jgYvjgZcNCivjgarjgYvjgYQs44GC44G+44GtDQor44Gq44GL44GY44G+LOOBiOOBhOOBhOOBoQ0KK+OBquOBi+OBmOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZjjgb4s44GL44Gk44KG44GNDQor44Gq44GL44GY44G+LOOBkeOCk+OBhOOBoQ0KK+OBquOBi+OBmOOBvizjgZ/jgZHjgajjgZcNCivjgarjgYvjgZjjgb4s44KE44GZ44Gq44KKDQor44Gq44GL44GY44G+LOOBguOBpOOBlw0KK+OBquOBi+OBvuOBnyzjgYvjgZrjgagNCivjgarjgYvjgb/jgaEs44GC44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBteOBleOBruOBtg0KK+OBquOBi+OCgOOCiSzjgYvjgaTjgYoNCivjgarjgYvjgoDjgoks44GL44Ga44Gy44GVDQor44Gq44GL44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgarjgYvjgoDjgoks44Gf44GL44KG44GNDQor44Gq44GL44KA44KJLOOBpuOCi+OBmA0KK+OBquOBi+OCgOOCiSzjgajjgZfjgobjgY0NCivjgarjgYvjgoDjgoks44KI44GX44Gq44KKDQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgYjjgb/jgZMNCivjgarjgYvjgavjgZcs44GL44Gk44Go44KCDQor44GK44GK44Gr44GXLOOBv+OBiOOBkw0KK+OBquOBi+OBq+OBlyzjgarjgYrjgoQNCivjgarjgYvjgavjgZcs44GI44KKDQor44Gq44GL44GuLOOBpOOBreOBguOBjQ0KK+OBiuOBi+OBluOCjyzjgZHjgYTjgYTjgaENCivjgarjgYvjga4s44Gq44GK44Gy44GnDQor44Gq44GL44GuLOOBruOCiuOBsuOCjQ0KK+OBquOBi+OBrizjgZfjgoXjgavjgaHjgo0NCivjgarjgYvjgYrjgYss44G+44GV44GNDQor44Gq44GL44GKLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBiizjgb7jgZPjgagNCivjgarjgYvjgZss44Gm44KL44Gy44KNDQor44Gq44GL44Gd44GOLOOBl+OCk+OBmA0KK+OBquOBi+OBnyzjga/jgZjjgoENCivjgarjgYvjgaTjgYss44Gu44KK44GC44GNDQor44Gq44GL44Gk44GLLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OChOOBvizjgYvjgZrjgbLjgZMNCivjgarjgYvjgoTjgb4s44G+44GV44KG44GNDQor44Gq44GL44KE44G+LOOBquOBiuOBjQ0KK+OBquOBi+OChOOBvizjgajjgZfjgYLjgY0NCivjgarjgYvjgoTjgb4s44G+44GV44Gu44KKDQor44Gq44GL44GW44KPLOOBqOOBl+OChuOBjQ0KK+OBquOBv+OBjSzjga7jgbbjgoTjgZkNCivjgarjgonjgZfjgb4s44GN44KI44Gf44GLDQor44Gq44KJLOOBi+OCiOOBkw0KK+OBj+OBqeOBhizjga7jgZ7jgb8NCivjgarjgaTjga4s44KI44GX44G144G/DQor44Gq44Gk44KE44G+LOOCguOBiOOBkw0KK+OBiOOBqCzjgabjgaTjgoQNCivjgavjgbjjgYQs44G144G/44GTDQor44GK44GP44GuLOOBiOOBhOOBmA0KK+OBvuOBiOOBu+OCiizjgZPjgZcNCivjgavjgZfjgaAs44G+44GV44Go44G/DQor44Gr44GX44GQ44GhLOOBl+OBkuOBkw0KK+OCguOCiizjgZ/jgYvjgZcNCivjgavjgZfjgYvjgo8s44G+44GT44GoDQor44Gr44GX44GP44KJLOOBsuOBp+OBjQ0KK+OBq+OBl+OCguOBqCzjgYLjgaTjgZcNCivjgavjgZfjgYos44Gf44Gk44KEDQor44Gr44GX44KP44GNLOOBk+OBuOOBhA0KK+OBq+OBlyzjgYvjgaTjgbLjgZMNCivjgavjgo8s44G/44Gk44GQDQor44Gu44G244G+44GVLOOBj+OBq+OBig0KK+OBruOBoCzjgb7jgZXjgYLjgY0NCivjga7jgZDjgaEs44Gf44GR44Gy44GTDQor44Gu44GQ44GhLOOBsuOBleOBlw0KK+OBruOBu+OCiizjgb/jgaHjga/jgosNCivjga7jgZ/jgass44KG44GG44GTDQor44Gu44G+LOOBsuOCjeOBlw0KK+OBruOBv+OChOOBvizjgZ/jgYvjgZcNCivjga7jgoLjgags44GV44KG44KKDQor44Gf44KT44GW44KTLOOBsuOCjeOBvw0KK+OBiuOBi+OCjyzjgbLjgajjgZcNCivjga7jga7jgoTjgb4s44Gf44Gk44GKDQor44Gu44KK44GL44GtLOOChuOBjeOBkw0KK+OBruOCjSzjgb7jgZXjgZcNCivjga4s44GX44GS44KLDQor44GK44Gw44GqLOOBvuOBleOBjQ0KK+OBiuOBs+OBquOBnyzjgajjgZfjgbLjgZMNCivjgYrjgaHjgYLjgYQs44GR44GE44GTDQor44GX44G+44KA44KJLOOBvuOBleOCiw0KK+OBiuOBoOOBrSzjgb7jgZXjgY0NCivjgYrjgYzjgo8s44G/44GV44GoDQor44GK44GQ44KJLOOCguOBqOOBsuOBkw0KK+OBiuOBkOOCiSzjgZ/jgYvjgZcNCivjgYrjgZDjgoks44GR44KTDQor44GK44GQ44KNLOOBsuOBp+OChuOBjQ0KK+OBiuOBsOOChOOBlyzjgb7jgZXjgZ/jgZENCivjgYrjgbDjgoTjgZcs44GV44Go44GXDQor44GK44GwLOOBqOOBl+OCjQ0KK+OBiuOBoSzjgajjgZfjgYLjgY0NCivjgYrjgacs44G/44Gh44GKDQor44GK44G744KKLOOBi+OBmuOBsuOBkw0KK+OBiuOBuyzjgb7jgZXjgY0NCivjgYrjgbLjgZcs44G+44GV44KLDQor44GK44GNLOOBm+OBhOOBhOOBoQ0KK+OBiuOBj+OBvCzjgZfjgpPjgYTjgaENCivjgYrjgY/jgbws44Gy44KN44GXDQor44GK44G/44GhLOOBguOBjeOBsuOBkw0KK+OBiuOCgOOCiSzjgojjgZfjga7jgooNCivjgYrjgYrjgavjgZcs44Gy44KN44GXDQor44GK44GuLOOCiOOBl+OBi+OBmg0KK+OBiuOCieOBhCzjgarjgYrjgb8NCivjgYrjgZXjgY0s44Gy44Gn44Go44GXDQor44GK44GV44KPLOOBm+OBhOOBmA0KK+OBiuOBleOCjyzjgZfjgpPjgZnjgZENCivjgYrjgZXjgo8s44GE44KP44GKDQor44GK44Gf44GrLOOBkeOBhOOBng0KK+OBiuOBnyzjgoTjgZnjgobjgY0NCivjgYrjgajjgoIs44GI44KK44GTDQor44GK44GW44GNLOOBl+OCk+OBlA0KK+OBiuOBpOOBiyzjgajjgZfjgbLjgZMNCivjgYrjgaTjgYss44Gu44KK44GKDQor44GK44Gk44GNLOOBk+OBmeOBkQ0KK+OBiuOBsuOCgyzjgoLjgajjgYTjgaENCivjgYrjgbLjgoMs44KI44GX44KG44GNDQor44GK44Gy44KDLOOBvuOBleOBsuOCjQ0KK+OBiuOBi+OBoCzjgb7jgZXjgY/jgasNCivjgYrjgYvjgaAs44Gf44GR44Gu44KKDQor44GK44GL44GgLOOBpOOBreOBguOBjQ0KK+OBiuOBi+OBoCzjgYTjgZXjgYoNCivjgYrjgYvjga/jgoks44GT44GG44GE44Gh44KNDQor44GK44GL44KC44GoLOOBmeOBmeOCgA0KK+OBj+OBleOBsCzjgZXjgajjgZcNCivjgYrjgYvjgoDjgoks44Gd44GG44GE44Gh44KN44GGDQor44GK44GL44KA44KJLOOBn+OBoOOBlw0KK+OBiuOBi+OBrizjgorjgoXjgZgNCivjgajjgbPjgZ8s44GR44KT44GYDQor44G744Gd44GL44KPLOOBquOBiuOBjQ0KK+OBhuOBiOOBoCzjgYLjgY3jgYoNCivjgZPjgZvjgY0s44GT44GG44GYDQor44Gf44GW44KPLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgajjgZfjgo0NCivjgYjjgZDjgaEs44Gm44Gk44KEDQor44KC44Gh44GgLOOBvuOBleOBsuOCjQ0KK+OBguOBjeOCguOBqCzjgY/jgavjgbLjgZMNCivjgavjgZcs44GZ44GQ44KLDQor44GE44G+44GE44GXLOOBpOOBkOOBig0KK+OBn+OBi+OChOOBmSzjgojjgZfjgbLjgo0NCivjga/jgZ8s44Go44GX44Gy44KNDQor44G144GY44GV44KPLOOBl+OCk+OBhOOBoQ0KK+OCgOOBqCzjgbLjgo3jgY0NCivjgoLjgZ/jgYQs44KI44GX44GKDQor44Gf44GgLOOBsuOCjeOBlw0KK+OBk+OBhOOBmuOBvyzjgb7jgZXjgYvjgZoNCivjgaTjgbzjgY/jgoks44G+44GV44GNDQor44Gy44KJ44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBpOOBmOOBi+OCjyzjgZfjgoXjgbjjgYQNCivjgb/jgaTjgYTjgZcs44GT44GG44GYDQor44KE44G+44GX44GfLOOBqOOCiOOBi+OBmg0KK+OBvuOCi+OBiuOBiyzjgobjgb8NCivjgbXjgYvjgYos44GX44KF44KT44GYDQor44Gk44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBvuOChuOBvyzjgbLjgo3jgobjgY0NCivjgYLjgonjgYvjgo8s44GZ44GZ44KADQor44GK44G144GhLOOBjeOBiOOBhA0KK+OBleOBleOCguOCiizjgYLjgaTjgY0NCivjgZXjgajjgYYs44GX44GS44Go44GXDQor44Gf44GL44GOLOOBruOBtuOCiOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgobjgY0NCivjgaTjgbzjgZQs44GC44GN44KJDQor44Go44KK44GV44KPLOOBsuOBleOBlw0KK+OBquOBi+OBkOOBjSzjgZfjgpPjgYTjgaENCivjga/jgZvjgYzjgo8s44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBi+OBmuOCiOOBlw0KK+OBsuOCieOChOOBvizjgZPjgZ4NCivjgbXjgY/jgZfjgb4s44Gy44KN44GYDQor44G+44Gk44GX44G+LOOBsuOCjeOBi+OBmg0KK+OCiOOBl+OBhCzjgZvjgYTjgYTjgaENCivjgYTjgZfjgYQs44GR44KT44GYDQor44GE44G+44GELOOBruOBtuOBn+OBiw0KK+OBquOBi+OBpOOBmCzjgajjgYrjgosNCivjgbvjgYTjgaAs44GL44Gq44GTDQor44GV44KP44Gv44GfLOOBqOOBl+OBiA0KK+OBn+OBr+OCiSzjgb/jganjgooNCivjgZ/jgYvjga/jgZcs44GY44KF44KTDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OCiOOBk+OChOOBvizjgYLjgY3jgokNCivjgYTjgZfjgYvjgo8s44G+44GT44GoDQor44GC44GV44GuLOOBvuOBleOBv+OBpA0KK+OBi+OBreOBkyzjgbXjgb/jgbLjgZMNCivjgY/jgo3jgZss44Gy44KN44KG44GNDQor44GV44GL44GN44Gw44KJLOOBkeOBhOOBlA0KK+OBi+OBleOBvizjgajjgoLjgobjgY0NCivjgZnjgY7jgoTjgb4s44GT44GG44GYDQor44GZ44GgLOOBl+OBkuOCiw0KK+OBn+OBquOBiyzjgajjgZfjgY0NCivjgaTjgbzjgYQs44GL44Ga44Gy44KNDQor44Gv44GX44KC44GoLOOBsuOBp+OBjQ0KK+OBteOBj+OBoSzjga7jgorjgZMNCivjgYLjgonjgYQs44G/44KG44GNDQor44Gf44Gq44GLLOOChuOBjeOBiA0KK+OChOOBl+OBvizjgaTjga3jgYoNCivjgYvjgo/jgb7jgZ8s44G/44Gk44KLDQor44GZ44KT44GgLOOBl+OCh+OBhuOBmA0KK+OBv+OBmuOBn+OBqyzjgb/jga3jgb7jgZUNCivjgoTjgb7jgZPjgZcs44Gy44Gn44GC44GNDQor44GC44G+44GM44KELOOBkeOCk+OBmA0KK+OBguOCieOBjSzjgZHjgpPjgZgNCivjgYTjgb7jgYQs44KI44GX44Gf44GLDQor44GE44G+44GW44GNLOOBl+OCheOBhuOBmA0KK+OBjeOCgOOCiSzjgojjgYbjgZnjgZENCivjgZnjgY7jgoTjgb4s44GC44KJ44GfDQor44GZ44Ga44GNLOOBkeOBhOOBkw0KK+OBpOOCiyzjgojjgZfjgb7jgZUNCivjga/jgZPjgZbjgY0s44Gm44Gk44KEDQor44Gf44GN44GW44KPLOOBguOChA0KK+OBhOOBqOOBhizjgYjjgaTjgZMNCivjgb7jgZnjgaAs44Gh44GI44GTDQor44Gk44Gw44GNLOOBleOBqOOBvw0KK+OBv+OBmeOBvyzjgajjgoLjgZMNCivjgoTjgYTjgZ8s44GR44KT44GYDQor44GL44KP44GkLOOBquOBiuOChuOBjQ0KK+OBpOOBi+OBoCzjgZ/jgZHjga7jgooNCivjgarjgYvjgoLjgags44GC44Gk44KEDQor44G144Gq44Gz44GNLOOBv+OBruOCiw0KK+OCiOOBl+OBluOCjyzjga7jgorjgobjgY0NCivjgajjgb4s44KG44KB44GuDQor44Gb44GNLOOBsuOBleOCiA0KK+OCgOOCieOBnyzjgajjgZfjga/jgosNCivjgYvjgZ/jgoTjgb4s44Gf44GL44Gy44GVDQor44GN44GpLOOBi+OBpOOBsuOBpw0KK+OBk+OBsOOChOOBlyzjgYTjgZXjgYoNCivjgZfjga7jgb/jgoQs44Gg44GE44GZ44GRDQor44Gf44Gq44GLLOOBv+OBruOCiw0KK+OBr+OCiSzjgYLjgY3jgokNCivjgoLjgorjgZ/jgass44Gk44KI44GXDQor44GE44Gh44Gu44GbLOOBi+OBmuOBruOBtg0KK+OBteOBmOOCguOBqCzjgojjgZfjga7jgooNCivjgYbjgYjjga4s44Gh44GC44GNDQor44GX44GX44GpLOOBoeOBi+OBkw0KK+OBv+OBhuOCiSzjgb7jgY0NCivjgYbjgaHjgaAs44Gy44Go44GXDQor44Gp44GELOOBn+OBkeOBsuOBkw0KK+OBneOBmeOBvyzjgbXjgb/jgZMNCivjgojjgZfjgaAs44GV44Gq44GIDQor44Gf44GL44Gv44GXLOOBjeOCh+OBkw0KK+OChOOBvuOBkOOBoSzjgojjgYbjgZMNCivjgZXjgZUs44G+44KKDQor44Gv44Gb44GM44KPLOOBquOBiuOBjQ0KK+OBguOBpOOBnyzjgb7jgZXjgbLjgo0NCivjgYTjgaHjgYvjgo8s44GX44KF44GYDQor44GG44GuLOOBk+OBhuOBmA0KK+OBiuOBjOOCjyzjgajjgoLjgYvjgZoNCivjgYrjgaAs44GL44Ga44KG44GNDQor44Gf44GL44GV44GNLOOCiOOBl+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgZfjgofjgbjjgYQNCivjgZ/jgaAs44GL44Ga44KG44GNDQor44Gf44Gq44GLLOOBi+OBpOOChuOBjQ0KK+OBqOOBj+OBquOBjCzjgZPjgYbjgZgNCivjgajjgb/jgZ8s44Go44GX44Gu44KKDQor44Gq44GE44Go44GGLOOBmeOBmeOCgA0KK+OBr+OCieOBoCzjgovjgb/jgZMNCivjgbLjgonjgYvjgo8s44GT44GG44GE44GhDQor44G144Gq44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBqeOBsOOBlyzjgb7jgZXjgobjgY0NCivjgb/jgYbjgoks44Go44GX44GKDQor44KI44GX44GgLOOBquOBiOOBkw0KK+OBiuOBn+OBkSzjgobjgY3jgZMNCivjgY/jgonjgZ8s44GL44GK44KKDQor44GP44KK44GfLOOCiOOBl+OBig0KK+OBoOOCk+OBmOOChyzjgb7jgZXjgYLjgY0NCivjgoLjgorjgZfjgb4s44GV44Go44G/DQor44KI44GX44GgLOOChuOBjeOBkw0KK+OCj+OBi+OBsOOChOOBlyzjgbLjgo3jgYvjgZoNCivjgYLjgZLjgb7jgaQs44G+44GN44GTDQor44GE44GX44GQ44KNLOOBpOOCiOOBlw0KK+OBi+OBqOOBhizjgZ/jgaDjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44Gq44GE44Go44GGLOOBsuOCjeOBlw0KK+OBv+OChOOBvuOBiCzjgZjjgoXjgpPjgZMNCivjgYvjganjgo/jgY0s44KK44GIDQor44G144GP44KC44GoLOOBiOOBv+OBkw0KK+OBq+OBl+OBr+OCiSzjgajjgoLjgZMNCivjgYrjgYvjgoTjgb4s44Gy44KN44Gf44GLDQor44GK44GL44KE44GZLOOChuOBjQ0KK+OBj+OCjeOBi+OCjyzjgaHjgZMNCivjgYrjgY3jgZ8s44Gy44KN44GC44GNDQor44GK44GP44G/44KELOOBmOOCheOCk+OBmA0KK+OBiuOBj+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgYrjga7jgaAs44GV44Go44GXDQor44GK44Gu44Gn44KJLOOBvuOBk+OBqA0KK+OBiuOBrizjgZfjgpPjgZgNCivjgYrjga4s44KI44GYDQor44GK44GuLOOChuOBv+OBkw0KK+OBvuOBpOOBhCzjgbLjgo3jgb/jgaENCivjgYrjgZ3jgYjjgYzjgo8s44GT44GZ44GRDQor44GK44GW44GNLOOBi+OBmuOBsuOCjQ0KK+OBiuOBnOOBjSzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga4s44G/44Gh44KIDQor44KK44KH44GL44GELOOBqOOBl+OChA0KK+OBleOBkuOBleOBiyzjgYLjgaTjgZcNCivjgZXjgY7jgoQs44G/44GN44GKDQor44GV44GE44GfLOOBguOBjeOCiQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgarjgooNCivjgZXjgYTjgajjgYYs44G/44GI44GTDQor44GV44GE44Go44GGLOOBqOOBiuOCiw0KK+OBleOBhOOBqOOBhizjgojjgZfjgbLjgZUNCivjgZXjgYTjgajjgYYs44G+44GV44GL44GaDQor44GV44GL44GQ44GhLOOBoOOBhA0KK+OBleOBi+OBhCzjgarjgovjgb8NCivjgZfjgb7jgaAs44Gy44Go44GXDQor44GV44GL44GN44Gw44KJLOOBr+OCi+OChuOBjQ0KK+OBleOBi+OCguOBqCzjgarjgYrjgbXjgb8NCivjgZXjgYvjgoLjgags44KI44GX44G144G/DQor44GV44GL44KC44GoLOOBpuOCi+OBig0KK+OBleOBi+OCiizjgoTjgZnjgarjgooNCivjgZXjgYvjgZ8s44Gu44G244KG44GNDQor44GV44GP44G+LOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBhCzjgYTjgZXjgYoNCivjgZXjgY/jgonjgYQs44KI44GX44GNDQor44GV44GP44KJ44GELOOCiuOCheOBsuOBoQ0KK+OBleOCk+OBruOBvuOCiyzjgY3jgofjgbLjgaENCivjgZXjga4s44G+44GV44Gy44KNDQor44GV44GV44G5LOOBguOBjeOBv+OBpA0KK+OBleOBleOBjSzjgZTjgo0NCivjgZXjgZXjgY0s44Gy44KN44KG44GNDQor44GV44GV44GNLOOBpOOBreOBig0KK+OBleOBleOBjSzjgorjgYsNCivjgojjgZfjgaAs44Gy44Gn44GC44GNDQor44GV44Go44GGLOOBsuOCjeOBvw0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZXjgajjgYYs44GE44Gk44KNDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBqOOBhizjgb7jgZXjgY0NCivjgZXjgajjgYYs44KA44Gt44Gy44KNDQor44GV44Go44GGLOOBruOBtuOBsuOCjQ0KK+OBleOBqOOBhizjgZXjgajjgosNCivjgZXjgajjgYYs44GX44KT44GYDQor44GV44Go44GGLOOBn+OBi+OBruOBtg0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44KI44GX44Gy44KNDQor44GV44Go44GGLOOChuOBjeOBig0KK+OBleOBqOOBhizjgobjgZ/jgYsNCivjgZXjgajjgYYs44Gf44Gk44KNDQor44GV44KP44GE44GnLOOBl+OCk+OBlA0KK+OBleOCj+OBhCzjgajjgoLjgbLjgo0NCivjgZXjgoTjgarjgY4s44Gf44GR44GXDQor44Gb44GM44KPLOOBquOBiuOBqA0KK+OBm+OBhOOBv+OChCzjgbLjgo3jgZcNCivjgZvjgYTjgoTjgb4s44KI44GX44Gy44GTDQor44Gb44GN44GL44KPLOOBi+OBmuOBruOCig0KK+OBm+OBjSzjgZ/jgYvjga7jgooNCivjgZvjgY0s44Gv44KE44GoDQor44Gb44KT44GgLOOChOOBmeOBsuOBkw0KK+OBm+OCk+OBlOOBjyzjgojjgZfjgobjgY0NCivjgZvjga4s44KI44GX44GoDQor44Gb44GX44KCLOOBguOBjeOBig0KK+OBm+OBn+OBiyzjgb7jgZXjgZMNCivjgZnjgYws44Go44KC44GTDQor44G/44Gq44G/LOOChuOBsuOBoQ0KK+OBl+OBsOOBnyzjgaHjgYLjgY0NCivjgZfjgbbjgoQs44GL44Ga44KEDQor44GX44G244KELOOBvuOBleOBvw0KK+OBl+OBtuOChCzjgZXjgajjgZcNCivjgZfjgYTjga4s44KG44Gy44GhDQor44GX44GL44GfLOOBk+OBhuOBhOOBoeOCjQ0KK+OBl+OBjeOBtizjgb7jgooNCivjgZfjgb7jgaAs44KI44GX44Gy44KNDQor44GX44G+44GgLOOBsuOCjeOBlw0KK+OBl+OBvuOBjOOBvyzjgZfjgZLjgY0NCivjgZfjgb7jgoLjgoos44GC44GN44KJDQor44GX44G+44KA44KJLOOBk+OBhuOBmA0KK+OBl+OBvuOBluOBjSzjgZ/jgZHjgZcNCivjgZfjgb7jgZbjgY0s44Gy44KN44Gf44GLDQor44GX44G/44GaLOOBjeOCh+OBkw0KK+OBl+OBv+OBmizjgajjgZfjgYLjgY0NCivjgZfjgb/jgZos44GT44GG44GYDQor44GX44KC44GgLOOBkeOBhA0KK+OBl+OCguOBsuOCiSzjgorjgofjgbLjgaENCivjgZfjga7jga/jgoks44KE44GZ44GXDQor44GX44Gu44Gv44KJLOOBoeOBguOBjQ0KK+OBl+OBruOBluOBjSzjgbLjgo3jgb/jgaENCivjgZfjga7jgZbjgY0s44Gk44KI44GXDQor44GX44KT44G9LOOBvuOBleOBruOCig0KK+OBl+OCk+OBn+OBqyzjgbLjgo3jgZMNCivjgYrjgY3jgaks44Gf44GL44Gy44KNDQor44GX44GK44Gs44G+LOOBsuOCjeOBlw0KK+OBl+OBiuOBnyzjgb7jgZXjgbLjgo0NCivjgZfjgYrjgoQs44Gy44KN44GXDQor44GX44GK44GW44KPLOOBqOOBl+OBguOBjQ0KK+OBl+OCieOBhCzjgb7jgZXjgbLjgZMNCivjgZfjgonjgZXjgY0s44KG44GN44Gu44KKDQor44GX44KJ44GV44GNLOOBkw0KK+OBl+OCieOBqOOCiizjgZ/jgYvjgYLjgY0NCivjgZfjgonjgajjgoos44GI44GE44GeDQor44GX44KN44GNLOOCiuOBiA0KK+OBl+OCjeOBl+OBnyzjgbLjgo3jgZcNCivjgYvjgZfjgb4s44GR44GE44G/44KTDQor44GX44KFLOOBk+OBhuOBn+OCjeOBhg0KK+OBhOOBvuOBhCzjgYLjgY3jgbLjgo0NCivjgZ3jgYjjgaAs44G+44Gq44G2DQor44Gd44GMLOOBruOBtuOBkw0KK+OBneOCjyzjgbLjgo3jgY0NCivjgZnjgaAs44GL44GZ44G/DQor44GZ44GgLOOChuOBhuOBmA0KK+OBmeOBoCzjgZ3jgajjgbLjgo0NCivjgZnjgYjjgaAs44GN44KI44G/DQor44GZ44GI44KC44KKLOOBj+OBq+OBguOBjQ0KK+OBmeOBiOOBiuOBiyzjgb7jgZXjgbLjgo0NCivjgZnjgYzjgo/jgoks44GE44GV44GKDQor44GZ44GS44GuLOOBl+OBkuOBjQ0KK+OBmeOBjuOCguOBqCzjgbLjgo3jgZcNCivjgZnjgY7jgZ8s44GT44Gy44KHDQor44GZ44GO44KE44G+LOOBvuOBleOBqOOBlw0KK+OBmeOBjuOChOOBvizjgZ/jgYvjgbLjgo0NCivjgZnjgY7jgoTjgb4s44Gy44Go44GXDQor44GZ44G/44Go44KCLOOBl+OBkuOBjQ0KK+OBmeOBvyzjgojjgZfjgYoNCivjgZnjgarjgYws44GU44GE44GhDQor44GZ44GW44GNLOOBsuOBp+OBr+OCiw0KK+OBmeOBmuOBjSzjgbLjgo3jgZMNCivjgZnjgZrjgY0s44GE44Ga44KLDQor44GZ44Ga44GNLOOBi+OBmuOBquOCig0KK+OBmeOBmuOBjSzjgZPjgYbjgYTjgaENCivjgZnjgZrjgY0s44G+44GV44KLDQor44GZ44Ga44GNLOOBquOBiuOBjQ0KK+OBmeOBmuOBjSzjga7jgorjgojjgZcNCivjgZnjgZrjgY0s44GV44GN44GTDQor44GZ44Ga44GNLOOBl+OCh+OBsuOBoQ0KK+OBmeOBmuOBjSzjgZfjgpPjgZgNCivjgYrjgYrjgavjgZcs44KE44GZ44Gy44KNDQor44GZ44Ga44GNLOOChOOBmeOBig0KK+OBmeOBmuOBjSzjgobjgbLjgaHjgo0NCivjgZnjgZrjgY0s44G/44Gk44GKDQor44Gf44G8LOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBn+OBtuOBoSzjgYjjgYTjgZgNCivjgZ/jgbbjgZUs44Gu44G844KLDQor44Gf44Gh44GL44KPLOOChuOBjQ0KK+OBsuOCieOBjSzjgbLjgafjgobjgY0NCivjgZ/jgYzjgYQs44Gm44Gk44KEDQor44Gf44GM44KPLOOBpuOCi+OBvw0KK+OBn+OBjCzjgYLjgY3jgokNCivjgZ/jgZDjgaEs44KE44GZ44GXDQor44Gf44GQ44GhLOOChuOBjeOBig0KK+OBn+OBkOOBoSzjgZfjga7jgbYNCivjgZ/jgYvjgbDjgZ/jgZEs44GX44KT44GE44GhDQor44Gf44GL44GOLOOBqOOBl+OChA0KK+OBn+OBi+OBr+OCiSzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44GL44Ga44GC44GNDQor44Gf44GL44Gv44GXLOOBkeOBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjga/jgosNCivjgZ/jgYvjga/jgZcs44Gu44G244GKDQor44Gf44GL44Gv44GXLOOBruOCiuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgorjgofjgZnjgZENCivjgZ/jgYvjga/jgZcs44GX44KTDQor44Gf44GL44Gv44GXLOOBn+OBpOOChA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgbXjgb8NCivjgZ/jgYvjga/jgZcs44KE44GZ44KG44GNDQor44Gf44GL44Gv44GXLOOChuOBsuOBoQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgZcNCivjgZ/jgYvjgYTjgZcs44G/44G7DQor44GT44Gw44KE44GXLOOBruOBtuOBn+OBiw0KK+OBn+OBi+OBvyzjgb/jgZXjgYoNCivjgZ/jgYvjgoDjgoks44GX44KTDQor44Gf44GL44Gq44GXLOOBv+OBquOBkw0KK+OBr+OBm+OBjOOCjyzjgojjgYTjgaENCivjgZ/jgYvjga4s44GR44KT44Gf44KN44GGDQor44Gf44GL44GK44GLLOOBqOOBl+OChA0KK+OBn+OBi+OBiuOBiyzjgajjgZfjgobjgY0NCivjgZ/jgYvjgZ/jgass44Gy44KN44GXDQor44Gf44GL44Gk44GYLOOBm+OBhOOBhOOBoQ0KK+OBn+OBi+OBpOOBiyzjgojjgZfjgbLjgZUNCivjgZ/jgYvjgaQs44Gv44KL44GV44GgDQor44Gf44GL44KE44G+LOOBvuOBleOBkw0KK+OBn+OBi+OChOOBvizjgb7jgZXjgobjgY0NCivjgZ/jgYvjgoTjgb4s44Gy44Gn44GKDQor44Gf44GR44GgLOOBi+OBmuOBl+OBkg0KK+OBn+OBkeOBoCzjga7jgorjgbLjgZMNCivjgZ/jgZHjgaAs44Go44KI44G/DQor44Gf44GR44GgLOOBv+OBruOCiw0KK+OBn+OBkeOCguOBqCzjgajjgoLjgYLjgY0NCivjgZ/jgZHjgoLjgags44GL44Ga44Gy44KNDQor44Gf44GR44GG44GhLOOBv+OBruOCiw0KK+OBn+OBkeOBhuOBoSzjgZfjgo0NCivjgZ/jgZHjgYbjgaEs44KI44GX44Gu44KKDQor44Gf44GR44GG44GhLOOBsuOCjeOChuOBjQ0KK+OBn+OBjeOCguOBqCzjgY3jgofjgZMNCivjgZ/jgb7jgaEs44Gf44GL44GNDQor44Gf44KA44KJLOOBruOBtuOChuOBjQ0KK+OBn+OBquOBuSzjgYLjgY3jgokNCivjgZ/jgarjgYss44GL44Gk44GYDQor44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgb8NCivjgZ/jgarjgYss44GX44KT44GE44GhDQor44Gf44Gq44GLLOOBqOOBiuOCiw0KK+OBn+OBquOBiyzjgoTjgZnjgZcNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44Gf44KT44GgLOOChOOBmeOBruOCig0KK+OBn+OBq+OBoCzjgZ/jgYvjgYvjgZoNCivjgZ/jgavjgYzjgo8s44Gq44GK44Gy44GoDQor44Gf44Gr44KA44KJLOOBruOBnuOBvw0KK+OBn+OBqyzjgYvjgaTjgZcNCivjgZ/jgZfjgo0s44Gf44GL44GTDQor44Gy44KJ44GV44GLLOOBsuOCjeOBi+OBmg0KK+OBn+OCj+OBoCzjgobjgbLjgaENCivjgZ/jgo/jgoks44Go44GK44KLDQor44Gm44KJ44GgLOOBn+OBi+OBsuOCjQ0KK+OBpuOCieOBleOBjSzjgbLjgo3jgZcNCivjgabjgonjgZfjgb4s44Go44GX44Gy44KNDQor44GT44Gw44KE44GXLOOBpOOBi+OBlQ0KK+OBpuOCieOBhuOBoSzjgZHjgYTjgZMNCivjgo/jgZ/jgarjgbks44Gq44GO44GVDQor44Go44GN44Go44KCLOOBn+OBi+OChuOBjQ0KK+OBqOOBj+OBoCzjgb7jgY0NCivjgZXjgY/jgonjgY4s44Gy44KN44G144G/DQor44Go44G/44KC44GoLOOBj+OBq+OBsuOBkw0KK+OBqOOBv+OBnyzjgYvjgYrjgooNCivjgajjgoLjgb8s44G/44GN44GTDQor44Go44KT44GQLOOBjeOBv+OBuw0KK+OBqOOCiuOBhuOBvyzjgojjgZfjgZ/jgYsNCivjgajjgojjgaAs44KI44GX44Gq44KKDQor44Go44KI44GV44GoLOOBsuOCjeOBtuOBvw0KK+OBqOOCiOOBl+OBvizjgobjgY3jgYoNCivjgaTjgaHjgaAs44Gu44G244KG44GNDQor44Gk44Gh44KC44GoLOOBiOOBhOOBiOOBpA0KK+OBpOOBoeOChCzjgZfjgpPjgZgNCivjgaTjgaAs44Go44KI44Gy44GVDQor44Gk44GgLOOBsuOCjeOChuOBjQ0KK+OBpOOBmOOCguOBqCzjgbLjgafjgZMNCivjgaTjgZgs44Gf44GE44GeDQor44Gk44GYLOOChOOBmeOBv+OBpA0KK+OBpOOBi+OBlOOBlyzjgZfjgpPjgYTjgaENCivjgaTjgYvjgoLjgags44G+44GV44Gu44KKDQor44Gk44GN44Gg44GmLOOBn+OBi+OChuOBjQ0KK+OCguOCiuOBnyzjga7jgorjgbLjgZUNCivjgaTjgovjgZ8s44G+44GV44Gy44GTDQor44Gk44GX44G+LOOBsuOBp+OBig0KK+OBpOOBlyzjgbLjgo3jgb/jgaQNCivjgaTjgaTjgb8s44G+44GV44GXDQor44Gk44KE44G+LOOBsuOCjeOBmeOBkQ0KK+OBhuOBoeOBoCzjgYvjgaTjgbLjgZUNCivjgYbjgaHjgaAs44Gy44KN44GXDQor44GG44Gh44KE44G+LOOBpuOBpOOChA0KK+OBhuOBoCzjgZjjgoXjgpMNCivjgYbjgYjjgaAs44G+44GT44GoDQor44GG44GI44GgLOOCgeOBkOOBvw0KK+OBpOOBi+OCguOBqCzjgZ/jgaTjgo0NCivjgYbjgYjjgaAs44KG44GLDQor44GN44GN44KHLOOChuOBjeOBig0KK+OBhuOBiOOBoCzjga7jgorjgYoNCivjgYbjgYjjgZDjgoos44Gy44KN44GXDQor44GG44GI44Gv44KJLOOBqOOBl+OBi+OBmg0KK+OBhuOBiOOBvuOBpCzjgZHjgYTjgZgNCivjgZXjgajjgYYs44Gy44KN44GXDQor44GG44GI44GuLOOBk+OBng0KK+OBhuOBiOOBrizjgZfjga7jgbYNCivjgYbjgYjjga4s44Go44KC44GC44GNDQor44GG44GI44GuLOOBqOOBl+OBsuOBkw0KK+OBhuOBiOOBrizjgZnjgb/jgagNCivjgYbjgYjjgoTjgb4s44KE44GZ44GNDQor44GG44KB44GgLOOChuOBjeOBig0KK+OBhuOCgeOBi+OCjyzjgojjgYbjgZMNCivjgarjgYzjgZ8s44Gf44GR44GXDQor44GG44KJ44GULOOChuOBi+OCig0KK+OBhuOCi+OBl+OBluOBiyzjgZXjgYrjgooNCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44GG44Gk44Gu44G/44KELOOBoeOBiOOBvw0KK+OCj+OBoCzjgbLjgafjgYoNCivjgo/jgaAs44KI44GX44Gf44GLDQor44KP44GgLOOBhOOBj+OBiA0KK+OCj+OBi+OBsOOChOOBlyzjgajjgYrjgosNCivjgo/jgYvjgbDjgoTjgZcs44Gy44KN44KG44GNDQor44KP44GL44G+44GkLOOBi+OBpOOChA0KK+OCj+OBi+OBvuOBpCzjgYvjgZrjgbLjgZMNCivjgo/jgY3jgoLjgags44Gy44Gn44Gf44GLDQor44KP44GP44GELOOCiOOBl+OBkw0KK+OBhOOBqOOBhCzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgbks44GX44GS44GNDQor44KP44Gf44G5LOOBsuOBp+OBjQ0KK+OCj+OBn+OBquOBuSzjgbLjgo3jga7jgooNCivjgo/jgZ/jgarjgbks44GL44Gq44GGDQor44KP44Gf44Gq44G5LOOBi+OCiA0KK+OCj+OBn+OBquOBuSzjga7jgorjgZMNCivjgo/jgZ/jgarjgbks44Go44KI44Gy44KNDQor44KP44Gf44Gq44G5LOOChuOBjeOBig0KK+OCj+OBn+OBquOBuSzjgZfjgofjgbLjgaENCivjgo/jgZ/jgazjgY0s44GX44KT44G644GEDQor44KE44G244GX44GfLOOBi+OBmuOBsuOCjQ0KK+OChOOBtuOBnyzjgb/jgY3jgYgNCivjgoTjgbbjgYbjgaEs44GX44Ga44GKDQor44KE44GY44G+LOOChuOBv+OBkw0KK+OChOOBj+OBl+OBmCzjgYvjgZrjgbLjgZMNCivjgoTjgb7jgaAs44GL44Ga44GNDQor44KE44G+44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgarjgorjgagNCivjgoTjgb7jgaAs44GX44KF44GYDQor44KE44G+44GgLOOCiOOBl+OBsuOBlQ0KK+OChOOBvuOBoCzjgYvjgaTjgoQNCivjgoTjgb7jgYzjgb8s44Gq44GK44Gf44GLDQor44KE44G+44GQ44GhLOOBl+OCheOBq+OBoQ0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgZcNCivjgoTjgb7jgYvjgo8s44Gf44Gg44GXDQor44KE44G+44GT44GXLOOBiOOBhOOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgbLjgafjgajjgZcNCivjgoTjgb7jgoLjgags44Gy44KN44KG44GNDQor44KE44G+44KC44GoLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOCguOBqCzjgb7jgZXjgosNCivjgoTjgb7jgoLjgags44G/44Gp44KKDQor44KE44G+44KC44GoLOOBv+OBpOOCiOOBlw0KK+OChOOBvuOCguOBqCzjgZfjgofjgbjjgYQNCivjgoTjgb7jgoLjgags44KI44GG44GTDQor44GL44KP44GQ44GhLOOBteOBv+OBsuOCjQ0KK+OChOOBvuOCgOOCjSzjgobjgY3jgZMNCivjgYTjgo/jgZ8s44Gy44KN44GIDQor44KE44G+44GK44GLLOOBsuOBlQ0KK+OChOOBvuOBleOBjSzjgYLjgY3jga7jgbYNCivjgoTjgb7jgZfjgZ8s44GC44GN44GKDQor44KE44G+44GX44GfLOOBiOOBhOOBmeOBkQ0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgbXjgb8NCivjgoTjgb7jgZfjgZ8s44GY44KNDQor44KE44G+44GX44GfLOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjgZfjgpMNCivjgoTjgb7jgZfjgZ8s44Gf44GL44GXDQor44KE44G+44GX44GfLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBluOBjSzjgZHjgYQNCivjgoTjgb7jgZbjgY0s44G+44GV44G/44GhDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OChOOBquOBjOOCjyzjgYjjgYTjgZgNCivjgZ/jgYvjgYrjgYss44Gy44KN44G144G/DQor44KE44Gq44GbLOOBvuOBleOBruOCig0KK+OChOOBrizjgb7jgZXjgajjgZcNCivjgoTjgYos44GC44GN44KJDQor44KE44GZ44GgLOOBsuOCjeOBv+OBoQ0KK+OChOOBmeOBi+OCjyzjgZ/jgZHjgZcNCivjgojjgYzjgYQs44GL44Ga44Gy44KNDQor44KI44GT44GM44KPLOOBsuOBp+OBj+OBqw0KK+OCiOOBk+OBleOCjyzjgbLjgo3jgZcNCivjgojjgZPjgZ8s44Gk44Go44KADQor44KI44GT44GfLOOBqOOBl+OBguOBjQ0KK+OCiOOBk+OBhuOBoSzjgYLjgY3jgZMNCivjgarjgYvjgoTjgb4s44Gy44KN44KG44GNDQor44KI44GT44KE44G+LOOBi+OBmuOBsuOBpw0KK+OCiOOBk+OChOOBvizjgYvjgaTjgobjgY0NCivjgojjga3jga/jgoks44GC44GN44KJDQor44KI44Gt44KA44KJLOOBsuOCjeOChuOBjQ0KK+OCiOOBl+OBoCzjgYvjgYrjgosNCivjgb/jgoTjgoDjgoks44GT44GG44GYDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OCiOOBl+OBoCzjgbLjgYvjgosNCivjgarjgYss44KK44KH44Gy44GhDQor44KI44GX44KA44KJLOOBqOOCguOChuOBjQ0KK+OCiOOBl+OCgOOCiSzjgYjjgorjgZMNCivjgazjgb7jgYos44Go44GX44G144G/DQor44KI44GX44GW44GNLOOBsuOBqOOBvw0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgobjgYLjgZUs44Gb44GE44GYDQor44KG44GSLOOBvuOBleOChuOBjQ0KK+OChuOBi+OCjyzjgb/jgarjgZMNCivjgb7jgaTjgaAs44KE44GZ44GXDQor44GC44G5LOOBpOOBqOOCgA0KK+OBr+OBm+OBjOOCjyzjgYLjgaTjgZcNCivjga/jgZfjgoLjgags44Gv44KL44Gy44GTDQor44Gy44KJ44Gk44GLLOOBvuOBleOBig0KK+OBu+OBl+OBi+OCjyzjgajjgZfjgobjgY0NCivjgbvjgZ3jgoQs44Gf44Gg44GXDQor44GE44GX44Gv44KJLOOBvuOBleOBqOOBlw0KK+OBhOOCj+OBjSzjgaTjgajjgoANCivjgYvjga3jgaAs44GN44G/44GC44GNDQor44GN44KA44KJLOOBvuOBleOBi+OBpA0KK+OBk+OCk+OBrizjgojjgZfjgbLjgo0NCivjgb7jgaTjgaAs44KI44Gy44GhDQor44G/44KE44GX44GfLOOBsuOCjeOBvw0KK+OBleOBi+OCguOBqCzjgb/jga3jgYoNCivjga7jgoDjgoks44GI44GE44GYDQor44GK44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBleOBhOOBqOOBhizjgorjgofjgZ8NCivjgZXjgZXjgYzjgo8s44Gf44GL44Gy44KNDQor44GV44Go44GGLOOCiOOBl+OBn+OBiw0KK+OBl+OBjCzjgojjgZfjgaTjgZANCivjgZfjga7jga/jgoks44KE44GZ44Gy44KNDQor44GX44KHLOOBi+OBpOOBvuOBlQ0KK+OBn+OBkeOBjOOCjyzjgbLjgajjgZcNCivjgZ/jgaTjgb8s44Gf44KC44GkDQor44Go44G/44GILOOBv+OBruOCiw0KK+OCj+OBn+OBquOBuSzjgZfjgofjgZgNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44KE44G+44GgLOOBn+OBoeOBr+OCiw0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZgNCivjgoTjgb7jgZbjgY0s44Gf44GR44GXDQor44GT44G+44Gk44GW44GNLOOBvuOBk+OBqA0KK+OBteOBoeOBoCzjgojjgZfjgbLjgZUNCivjgZ/jgarjgYss44GX44GS44Go44KCDQor44Gv44KE44GXLOOBvuOCig0KK+OBquOBjOOBnyzjgZfjgpPjgYTjgaENCivjgbDjgbAs44GI44Gk44GTDQor44GC44GL44G+LOOChuOBjeOBiA0KK+OBi+OBluOBvizjgobjgYbjgZMNCivjgZnjgZrjgY0s44KE44KI44GEDQor44KC44KKLOOBvuOBleOBv+OBpA0KK+OBhOOBkeOBoCzjgb7jgZXjgZcNCivjgo/jgZ/jgarjgbks44KB44GQ44G/DQor44G/44G+LOOBv+OBiOOBkw0KK+OBguOCk+OBqeOBhizjgobjgZ/jgYsNCivjgb7jgYjjgZ7jga4s44Gu44KK44Gy44GTDQor44GK44Gf44GLLOOBvuOCguOCiw0KK+OBr+OChOOBlyzjgobjgYbjgYTjgaENCivjgYbjgYjjga4s44Go44G/44Gy44KNDQor44Gk44Gu44GgLOOBn+OBkeOBlw0KK+OBmeOBqeOBhizjgb7jgZXjgYoNCivjgZXjgYvjgoLjgags44Gh44GC44GNDQor44Gf44Gq44GLLOOBvuOBleOBsuOBkw0KK+OBk+OBqOOBhuOBoCzjgYvjgZrjgobjgY0NCivjgYvjgovjgbks44GV44G744KKDQor44GV44GE44Go44GGLOOBm+OBhOOBhOOBoQ0KK+OBsuOCieOBrizjgb7jgZPjgagNCivjgZXjgajjgYYs44Gf44GL44GXDQor44Gq44GL44KE44G+LOOBi+OBmuOBl+OBkg0KK+OBruOBoCzjgZjjgoXjgYQt44Gh44GH44KTDQor44G+LOOBsuOCjeOBguOBjQ0KK+OBl+OBquOBjOOCjyzjgaTjgojjgZcNCivjgarjgYzjgoTjgZks44GL44Gk44GoDQor44GC44GK44GNLOOBteOBv+OBig0KK+OBquOBi+OBnyzjgajjgoLjgbLjgo0NCivjgb/jgY/jgorjgoQs44G/44Gk44Gy44KNDQor44G+44KL44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBiOOBoeOBnOOCkyzjgb7jgZXjgbLjgo0NCivjgarjgYvjgavjgZcs44GL44Ga44Gf44GLDQor44Gv44GO44GKLOOBkeOBhOOBhOOBoQ0KK+OBn+OCgOOCiSzjgZ/jgYvjgajjgZcNCivjgZ/jgZDjgaEs44G/44Gk44GC44GNDQor44GK44GW44KPLOOCguOCiuOBl+OBkg0KK+OChOOBiuOBhOOBnyzjgobjgY3jga7jgooNCivjgYLjgZXjga4s44G144G/44Gy44KNDQor44GP44GV44GuLOOBpuOCi+OCiOOBlw0KK+OBr+OBvuOBoCzjgbLjgo3jgZMNCivjgYTjgorjgoTjgb4s44Gy44KN44G+44GVDQor44KA44KJ44GfLOOBkeOCk+OBhOOBoQ0KK+OBguOBleOBrizjgobjgorjgZMNCivjgZ/jgYvjga4s44KE44GZ44Gy44KNDQor44KE44G+44GQ44GhLOOBoeOBi+OCiQ0KK+OCgOOCieOBi+OBvyzjgZPjgYbjgZgNCivjgZ/jgarjgYss44GT44GG44GYDQor44Gf44GL44GK44GLLOOBr+OChOOBqA0KK+OBmeOBmuOBjSzjgabjgovjgobjgY0NCivjgb/jga3jgY7jgZcs44Gy44Gn44Go44GXDQor44GC44G5LOOBsuOBleOBlw0KK+OBguOBuSzjgZfjgofjgbLjgaENCivjgYLjgbks44Go44KC44Gy44GTDQor44GC44G5LOOBvuOBleOBguOBjQ0KK+OBguOBjOOBpOOBvizjgojjgZfjgajjgZcNCivjgYLjgYTjgZbjgo8s44GK44GV44KADQor44GC44GL44GE44GRLOOBqOOBl+OBsuOCjQ0KK+OBguOBjeOCguOBqCzjga7jgorjgoTjgZkNCivjgYLjgY3jgZ/jgoQs44Gm44KL44Gy44KNDQor44GC44GN44KE44G+LOOBvuOBleOBmA0KK+OBguOBj+OBpCzjga/jgarjgZMNCivjgYLjgb7jga4s44Gq44GK44KEDQor44GC44G+44GuLOOCiOOBmA0KK+OBguOBvuOBrizjgZHjgpPjgYTjgaENCivjgYLjgoHjgb/jgoQs44GC44GN44Go44GXDQor44GC44KT44Gp44GGLOOBruOCiuOBsuOCjQ0KK+OBguOCk+OBqeOBhizjgYvjgaTjgZgNCivjgYLjgpPjgZbjgYQs44GY44KF44Gr44GhDQor44GC44GK44GNLOOBv+OBleOBuw0KK+OBguOBiuOBjSzjgarjgYrjgoQNCivjgYLjgYrjgY0s44Gu44KK44GC44GNDQor44GC44KJ44GELOOBv+OBmuOBuw0KK+OBguOCieOBjSzjgZfjgoXjgpPjgZgNCivjgYLjgonjgY0s44Gy44Gn44GNDQor44GC44KJ44KELOOBguOBjeOCiQ0KK+OBguOCiuOCiOOBlyzjgZ/jgYvjgZcNCivjgYLjgZXjgbLjgaos44GY44KF44KT44GTDQor44GC44GV44GELOOCiOOBl+OBruOBtg0KK+OBguOBleOBvyzjgobjgY3jgYoNCivjgYLjgZXjgaTjgZEs44Go44GX44KG44GNDQor44GC44GdLOOBl+OBkuOBjQ0KK+OBguOBmuOBvizjgZ/jgaDjgYvjgaQNCivjgYLjgZrjgb4s44GC44Gk44Gu44KKDQor44Gw44GwLOOBteOBv+OBiA0KK+OBsOOBsCzjgYvjgZrjgb8NCivjgYvjgYws44G+44GV44Gy44KNDQor44Gw44GwLOOBpuOCk+OBm+OBhA0KK+OBsOOCkyzjgobjgYbjgZgNCivjgbPjgovjgYvjgo8s44KK44Gk44GTDQor44G8LOOBn+OBi+OChuOBjQ0KK+OBoOOBhOOBlCzjgZXjgaDjga/jgosNCivjgaDjgYTjgZTjgY8s44Gv44KL44Gy44GoDQor44Gp44Gw44GXLOOCiOOBsuOBoQ0KK+OBiOOBs+OBleOCjyzjgZfjgZLjgb/jgaQNCivjgYjjga/jgoks44KI44GX44Gf44GLDQor44GI44KT44Gr44KFLOOBqOOCguOBruOBtg0KK+OBteOBoeOBjOOBvyzjgojjgbLjgaENCivjgbXjgZjjgbDjgoTjgZcs44Gq44KK44GoDQor44G144GY44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBteOBmOOBhCzjgYvjgZrjgobjgY0NCivjgbXjgZjjgYQs44GP44Gr44GL44GaDQor44G144GY44GELOOBvuOBk+OBqA0KK+OBteOBmOOBhCzjgZXjgajjgZMNCivjgbXjgZjjgYQs44GZ44G/44GTDQor44GV44GL44KC44GoLOOBqOOCguOBkw0KK+OBjeOBn+OBoCzjgojjgZfjgY0NCivjgbXjgZjjgYQs44KG44GZ44GRDQor44G144GY44GELOOChuOBiw0KK+OBteOBmOOBhCzjgozjgYTjgZMNCivjgbXjgZjjgYvjgo8s44G144GP44GKDQor44G144GY44KC44KKLOOBl+OCheOCk+OBmeOBkQ0KK+OBteOBmOOCguOBqCzjgZjjgoXjgavjgaENCivjgbXjgZjjga4s44Go44GK44KLDQor44G144GY44GV44KPLOOBsuOCjeOBlw0KK+OBteOBmOOBnyzjgbLjgo3jgajjgZcNCivjgbXjgZjjgZ8s44GV44Go44GTDQor44G144GY44GfLOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBj+OBmeOCguOBqCzjgbLjgo3jgZcNCivjgbXjgZjjgo/jgoks44KK44KH44Gy44GhDQor44G144GY44KP44KJLOOBm+OBhOOBlA0KK+OBteOBmOOCj+OCiSzjgZfjgpPjgZgNCivjgbXjgZjjgo/jgoks44KI44GX44Gu44KKDQor44G144GY44KP44KJLOOBvuOBleOChA0KK+OBteOBi+OBvOOCiizjgbLjgafjgYLjgY0NCivjgbXjgYvjgb8s44GX44KF44G444GEDQor44G144GL44G/LOOBiOOBhOOBhOOBoQ0KK+OBteOBj+OBoCzjgYvjgYrjgosNCivjgbXjgY/jgaAs44GX44KT44GE44GhDQor44G144GP44GgLOOBn+OBpOOChA0KK+OBteOBj+OBoCzjgYvjgZrjgbLjgZMNCivjgbXjgY/jgYQs44GN44KH44GTDQor44G144GP44GELOOBsuOCjeOBlw0KK+OBteOBj+OBquOBjCzjgZvjgYTjgZgNCivjgbXjgY/jgarjgYws44Gy44KN44Gf44GLDQor44G144GP44GK44GLLOOBqOOBl+OChA0KK+OBteOBj+OBiuOBiyzjgbLjgo3jgZcNCivjgbXjgY/jgZcs44GR44GE44GYDQor44G144GP44GX44G+LOOBsuOCjeOBteOBvw0KK+OBteOBj+OBqOOCgSzjgbLjgo3jgZcNCivjgbXjgY/jgoTjgb4s44GR44GEDQor44G144Gq44Gw44GXLOOBvuOBk+OBqA0KK+OBteOCi+OBrizjgbLjgo3jgoANCivjgbXjgovjgoQs44Go44GX44GNDQor44G144KL44KELOOBsuOBp+OBig0KK+OBteOCi+OChOOBvizjgZXjgarjgYgNCivjgbXjgZ/jgbAs44Gy44GV44GTDQor44GC44Gq44G/LOOChuOBhuOBkw0KK+OBteOBn+OBvyzjgZXjgajjgb8NCivjgbXjgZ/jgoDjgoks44GY44KF44KTDQor44GM44GpLOOChuOBiw0KK+OBlCzjga7jgorjgaHjgYsNCivjgZTjgaAs44Go44KC44GYDQor44GU44GLLOOBkeOCk+OBmA0KK+OBlOOBqCzjgb7jgZXjgoTjgZkNCivjgZTjgags44G/44Gu44KLDQor44Gv44G2LOOBhOOBleOBig0KK+OBr+OBjCzjgoTjgZnjga7jgooNCivjga/jgY4s44Go44GX44KG44GNDQor44Gv44G+LOOBm+OBhOOBmA0KK+OBr+OBvuOBoCzjgYvjgaTjgbLjgagNCivjga/jgb7jga4s44Go44GK44KLDQor44Gv44G+44GuLOOBguOBjeOCiQ0KK+OBr+OBvuOBl+OBvizjgajjgZfjgobjgY0NCivjga/jgb7jgZfjgb4s44Gy44KN44KG44GNDQor44Gv44Gq44GELOOBv+OBruOCiw0KK+OBr+OCiSzjgobjgb/jgZMNCivjgYrjgZ8s44Gy44GV44Gu44KKDQor44Gv44KJ44GgLOOBteOBmOOBig0KK+OBr+OCieOBkyzjgajjgoLjgZMNCivjga/jgZss44Gy44GV44GXDQor44Gv44Gb44GM44KPLOOCiuOCh+OBkw0KK+OBr+OBm+OBjOOCjyzjgZfjgpMNCivjga/jgZfjgoLjgags44Gf44Gk44KEDQor44Gv44GX44KC44GoLOOBqOOBl+OBn+OBiw0KK+OBr+OBl+OCguOBqCzjgZfjga7jgbYNCivjga/jgZfjgZrjgoEs44GX44KH44GYDQor44Gv44GX44Ga44KBLOOBguOBpOOBlw0KK+OBr+OBnyzjgZHjgpPjgZgNCivjga/jgZ8s44Gf44Gg44Gy44KNDQor44Gv44GfLOOBvuOBleOCiw0KK+OBr+OBn+OBrizjgYrjgZXjgoANCivjga/jgZ/jga4s44Gf44Gk44KEDQor44Gv44Gf44GuLOOChuOBvw0KK+OBpOOBoCzjgZXjgaDjgb/jgaQNCivjga/jgoTjgYvjgo8s44Gm44Gk44GKDQor44Gv44KE44GuLOOBn+OBpOOBjQ0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaENCivjga/jgoTjgZcs44Gq44GK44GNDQor44Gv44KE44GXLOOBn+OBpOOBsuOCjQ0KK+OBr+OChOOBlyzjgobjgZ/jgYsNCivjga/jgoTjgZcs44Gy44KN44GXDQor44Gv44KE44GX44Gf44GrLOOBl+OCh+OBmA0KK+OBsuOBjOOBl+OBrizjgZXjgajjgZcNCivjgbLjgZDjgaEs44Gb44Gk44GKDQor44Gy44GQ44GhLOOBguOBkeOBvw0KK+OBsuOCgeOBrizjgb7jgZXjgY0NCivjgbLjgonjgbDjgoTjgZcs44Gq44GK44GNDQor44Gy44KJ44GELOOBl+OCk+OBhOOBoQ0KK+OBsuOCieOBi+OCjyzjgojjgZfjgbLjgZMNCivjgbLjgonjgY0s44Gf44GR44Gy44GTDQor44Gy44KJ44GuLOOBjeOCh+OBkw0KK+OBguOBiuOBjSzjgoTjgZnjgobjgY0NCivjgbLjgonjgYrjgYss44KI44GX44Gy44KNDQor44Gy44KJ44GV44GLLOOBsuOCjeOBkw0KK+OBsuOCieOChOOBvizjgojjgZfjga7jgooNCivjgbLjgo3jga/jgZ8s44GL44Gq44GTDQor44G+44GI44GL44KPLOOBleOBiuOCig0KK+OBsuOCjeOBmyzjgZnjgZnjgoANCivjgbLjgo3jgZss44Gu44G244KG44GNDQor44Gy44KN44GfLOOBsuOCjeOChuOBjQ0KK+OBsuOCjeOCj+OBn+OCiizjgajjgZfjgo0NCivjgbLjgo3jgb/jgaQs44GC44GN44KJDQor44Gy44GG44KJLOOBjeOBv+OBn+OBkQ0KK+OBu+OBvCzjgYvjgZrjgbLjgZMNCivjgbvjgY/jgoks44GX44KT44GE44Gh44KN44GGDQor44G744KT44GgLOOChOOBmeOBlw0KK+OBu+OCk+OBoCzjgobjgYbjgZMNCivjgZnjgZrjgY0s44KG44Gy44GhDQor44G744KT44GULOOBsuOCjeOBlw0KK+OBu+OCiuOBkOOBoSzjgbLjgo3jgZcNCivjgbvjgorjgYQs44Gb44GE44KK44KHDQor44G744KK44GL44KPLOOBv+OBoeOBkw0KK+OBu+OBl+OBrizjgb7jgZXjgoQNCivjgbvjgZ3jgYvjgo8s44Gy44KN44KG44GNDQor44G744Gd44G/LOOCiOOBl+OBruOCig0KK+OBu+OBo+OBnyzjgobjgbLjgaHjgo0NCivjgYTjgbbjgYss44KE44GZ44Gy44KNDQor44GE44G244GNLOOBvuOBquOBtg0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jgojjgZcNCivjgYTjgaHjgoDjgoks44G+44GV44Gu44G2DQor44GE44GgLOOBn+OBi+OBsuOCjQ0KK+OBhOOBoCzjgbLjgo3jgZcNCivjgYTjgacs44G+44KC44KLDQor44GE44GnLOOBn+OBhOOBmeOBkQ0KK+OBhOOBpyzjgb7jgZPjgagNCivjgYTjgafjgZ8s44GE44GV44GKDQor44GE44GM44KJ44GXLOOCiOOBhuOBkw0KK+OBhOOBjOOCieOBlyzjgbLjgafjgY0NCivjgYTjgZIs44GL44Ga44Gf44GLDQor44GE44GE44GgLOOBjeOBhOOBoeOCjeOBhg0KK+OBhOOBhOOBoCzjgY3jgavjgaENCivjgYTjgYTjgaAs44Gm44KL44GKDQor44GE44GE44GgLOOChOOBmeOBsuOCjQ0KK+OBhOOBhOOBr+OCiSzjgbLjgafjgobjgY0NCivjgYTjgYTjgZjjgb4s44Gy44KN44GC44GNDQor44GE44GR44GgLOOBi+OBmuOBguOBjQ0KK+OBhOOBkeOBoCzjga7jgbbjgb/jgaENCivjgYTjgZPjgb4s44Gy44Gn44KG44GNDQor44GE44G+44GELOOBsuOCjeOBlw0KK+OBhOOBvuOBhCzjgY3jgb/jgYgNCivjgZ/jgarjgYss44GL44Gq44KBDQor44GE44G+44KA44KJLOOBoeOBr+OCiw0KK+OBhOOBvuOBquOCiizjgoTjgZnjgbLjgacNCivjgYTjgb7jgZzjgY0s44GN44KI44Gf44GLDQor44GE44Gq44GgLOOBquOBiuOChuOBjQ0KK+OBhOOBquOBvuOBmSzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44GR44GE44GTDQor44GE44GnLOOChuOBjeOChA0KK+OBhOOCjOOBhCzjgZXjgaTjgY0NCivjgYTjgZfjga/jgoks44GX44KH44GeDQor44GE44GX44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBhOOBl+OBr+OCiSzjgZ/jgb7jgb8NCivjgYTjgZfjga/jgoks44KI44GX44Gy44GVDQor44GE44GX44Gv44KJLOOBsuOCjeOBlw0KK+OBhOOBl+OBhCzjgZ/jgZHjgZcNCivjgYTjgZfjgYQs44GL44Gk44KEDQor44GE44GX44GL44KPLOOBvuOBleOBguOBjQ0KK+OBhOOBl+OBi+OCjyzjga7jgbbjgb7jgZUNCivjgYTjgZfjgoDjgoks44GN44KI44Gy44GoDQor44GE44GX44KP44Gf44KKLOOBvuOBk+OBqA0KK+OBhOOBl+OBluOBjSzjgY3jgofjgZMNCivjgYTjgZfjgZrjgYss44GT44GG44GE44GhDQor44GE44Gd44GuLOOBn+OBpOOChA0KK+OBhOOBneOChOOBvizjgZjjgoXjgpPjgZgNCivjgYTjgZnjgaAs44G+44KG44G/DQor44GE44Gf44GP44KJLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOBvuOBleOCiw0KK+OBhOOBqOOBhizjgb/jgaTjgb8NCivjgb7jgaTjgYQs44G/44KG44GNDQor44GE44Go44GGLOOBquOBiuOBjQ0KK+OBhOOBqOOBhizjgZnjgZnjgoANCivjgYTjgajjgYYs44GY44KF44Gr44GhDQor44GE44KP44GL44G/LOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OBlSzjgajjgoLjgobjgY0NCivjgYTjgo/jgZXjgY0s44KG44GG44GYDQor44GE44KP44GV44GNLOOBquOBiuOBteOBvw0KK+OBhOOCj+OBl+OBnyzjgbLjgo3jgobjgY0NCivjgYTjgZrjgb8s44G+44GZ44G/DQor44GE44Go44GGLOOBruOCiuOCiOOBlw0KK+OBhOOBmuOBvyzjgarjgYrjgajjgY8NCivjgYTjgZrjgb/jgZXjgo8s44G/44Gk44Go44GXDQor44GY44KT44GuLOOBv+OBpOOBruOBtg0KK+OBmOOCh+OBv+OBqSzjgZfjgZLjgYoNCivjgYvjgYws44G+44GV44Gy44KNDQor44GL44GM44G/LOOBvuOBleOBsuOCjQ0KK+OBi+OBkuOChOOBvizjgbLjgo3jgbXjgb8NCivjgYvjgYQs44KI44GX44G+44GVDQor44GL44GE44GgLOOBr+OCi+OBig0KK+OBi+OBhOOBmizjgZ/jgZHjgbLjgZMNCivjgYvjgZjjgZ8s44Gf44GR44Gy44GTDQor44GL44GR44GyLOOBvuOBleOBoeOBiw0KK+OBi+OBjeOCguOBqCzjgb7jgZXjgbLjgZMNCivjgYvjgY3jgazjgb4s44Gk44Go44KADQor44GL44GN44Gs44G+LOOBqOOBl+OBvw0KK+OBi+OBvuOBnyzjgobjgYbjgZgNCivjgYvjgb7jgZ8s44Gq44GK44KG44GNDQor44GL44G/44GQ44GhLOOBv+OBoeOBn+OBiw0KK+OBi+OBv+OCgOOCiSzjgajjgYrjgosNCivjgYvjga3jgZMs44GC44Gk44GXDQor44GL44Gq44G+44KLLOOBqOOBuOOBhA0KK+OBi+OBquOBluOCjyzjgZvjgYTjgZgNCivjgYvjgpPjgbks44KE44GZ44GXDQor44GL44KT44GgLOOCiuOCheOBmA0KK+OBi+OBreOBr+OCiSzjgYLjgZHjgb8NCivjgZTjgags44G144GV44GKDQor44GL44Gt44GTLOOBsuOBleOBquOBjA0KK+OBi+OBreOBkyzjgbLjgajjgZcNCivjgYvjga3jgZMs44GT44GG44GYDQor44GL44Gt44GTLOOBn+OBkeOBsuOBqA0KK+OBi+OBreOBkyzjgZjjgofjgZgNCivjgYvjga3jgb/jgaQs44GC44GR44G/DQor44GL44Gt44KA44KJLOOBqOOCguOBsuOCjQ0KK+OBi+OBreOBnyzjgZXjgaHjgZMNCivjgZ/jgarjgYss44GX44Ga44GLDQor44KI44Gt44KC44GhLOOBqOOBl+OBiA0KK+OBi+OCk+OBrizjgZHjgpPjgYTjgaENCivjgYvjgZXjgYQs44G/44GI44GTDQor44GL44GX44G+LOOCiOOBl+OBig0KK+OBn+OBi+OBjizjgb7jgZXjga7jgooNCivjgY3jgZ/jgoDjgoks44GY44KH44GYDQor44GL44Gf44GK44GLLOOBvuOCguOCiw0KK+OBi+OBn+OBiuOBiyzjgZ/jgYvjgbLjgo0NCivjgYvjgZ/jgYrjgYss44GT44GeDQor44GL44Gf44GbLOOBkeOCkw0KK+OBi+OBn+OChOOBvizjgZfjgZLjgYvjgZoNCivjgYvjgZ/jgoTjgb4s44Gf44GR44GXDQor44GL44Gf44KE44G+LOOChOOBmeOBquOBig0KK+OBi+OBn+OChOOBvizjgYLjgY3jgokNCivjgYvjgajjgYYs44Gy44Gn44Go44GXDQor44GL44Go44GGLOOBsuOCjeOBteOBvw0KK+OBi+OBqOOBhizjgbLjgo3jgb/jgaQNCivjgYvjgajjgYYs44GL44Ga44GKDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBi+OBqOOBhizjgb7jgZXjgojjgZcNCivjgYvjgajjgYYs44Gq44GK44GXDQor44GL44Go44GGLOOChOOBmeOBvuOBlQ0KK+OBi+OBqOOBhizjgobjgYvjgooNCivjgZ3jgoHjgoQs44GT44GG44GY44KNDQor44GL44KP44Gw44GfLOOBsuOBp+OBjQ0KK+OBi+OCj+OBkOOBoSzjgb7jgZXjgb8NCivjgYvjgo/jgZDjgaEs44KE44GZ44KG44GNDQor44Gf44G+44GM44KPLOOBi+OBmuOBsuOBkw0KK+OBi+OCj+OBr+OCiSzjgZfjgZLjgobjgY0NCivjgYvjgo/jga/jgoks44KE44GZ44Gq44KKDQor44GL44KP44Gy44GoLOOBv+OBoeOBkw0KK+OBi+OCj+OBhCzjgarjgYrjgobjgY0NCivjgYvjgo/jgYQs44KG44GG44GTDQor44Gv44GO44KP44KJLOOBjeOCh+OBkw0KK+OBquOCi+OBkSzjgoTjgZnjgbLjgo0NCivjgYvjgo/jgZXjgY0s44Gy44KN44GC44GNDQor44GL44KP44GX44G+LOOBl+OCk+OBhOOBoQ0KK+OBi+OCj+OBl+OBvizjgaTjgajjgoANCivjgYvjgo/jgZ8s44Gy44KN44KG44GNDQor44GL44KE44G+LOOBqOOBl+OBsuOCjQ0KK+OBi+OBluOBvuOBpOOCiizjgojjgZfjgb8NCivjgY3jgaks44KG44GG44GYDQor44GN44GM44G/LOOBpOOBqOOCgA0KK+OBjeOBlOOBlyzjgZjjgoXjgpPjgZMNCivjgoLjgorjgZXjgo8s44G+44GT44GoDQor44GN44GP44GhLOOBvuOBleOBhOOBoQ0KK+OBjeOBj+OBoSzjgZfjgpPjgoQNCivjgY3jgY/jgaEs44GT44GG44GE44Gh44KNDQor44GN44GP44KJLOOBsuOBleOBlw0KK+OBjeOCgOOCiSzjgZjjgoXjgpPjgZgNCivjgY3jgoDjgoks44GL44Gk44Gy44GVDQor44GN44KA44KJLOOBruOCiuOBsuOBlQ0KK+OBjeOCgOOCiSzjga7jgorjgZMNCivjgY3jgoDjgoks44GX44GS44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgojjgZfjgbLjgo0NCivjgY3jgoDjgoks44KG44GL44KKDQor44GN44KA44KJLOOChuOBjeOBkw0KK+OBjeOCgOOCiSzjgobjgZ/jgYsNCivjgY3jgoDjgoks44Gy44KN44GL44GaDQor44GN44Gu44GX44GfLOOBsuOCjeOBkw0KK+OBjeOBruOBl+OBnyzjgZ/jgYvjgbXjgb8NCivjgY3jga7jgZfjgZ8s44G+44Gq44G2DQor44GN44GX44G5LOOBsuOBleOChA0KK+OBjeOBl+OBoCzjgY3jgojjgZcNCivjgY3jgZfjgoLjgags44G/44Gk44GQDQor44GN44GX44KC44GoLOOBjeOBhOOBoQ0KK+OBjeOBnyzjga7jgorjgYoNCivjgY3jgZ/jgYLjgY0s44GL44Gk44G/DQor44GN44Gf44GgLOOBpOOBreOBig0KK+OBjeOBn+OBjOOCjyzjgbLjgo3jgY0NCivjgY3jgZ/jgbvjgoos44GC44GR44G/DQor44GN44Gf44GY44G+LOOBqOOCguOBsuOBlQ0KK+OBjeOBn+OCgOOCiSzjgYvjgaTjga7jgooNCivjgZPjgbDjgoTjgZcs44GR44GE44GE44GhDQor44GT44Gw44KE44GXLOOBvuOBleOBjQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GR44KT44GE44GhDQor44GX44KJ44GELOOBruOCiuOBkw0KK+OBk+OBsOOChOOBlyzjgZfjgpPjgY3jgaENCivjgZPjgbDjgoTjgZcs44Gf44GE44GTDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOBkw0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gy44KN44GNDQor44GT44Gg44G+LOOCiOOBl+OBruOCig0KK+OBk+OBjuOBnyzjgZ/jgZHjgZcNCivjgZPjgZDjgows44Gf44Gk44KEDQor44GT44Gv44GXLOOBn+OBi+OBv+OBoQ0KK+OBk+OBlCzjgbLjgo3jgobjgY0NCivjgZPjga4s44Gy44KN44KG44GNDQor44GT44GuLOOBqOOBl+OChuOBjQ0KK+OBk+OBrizjgbLjgo3jgobjgY0NCivjgZPjga7jgZks44Gf44Gk44KEDQor44GT44GE44GnLOOBsuOCjeOBlw0KK+OBk+OBvuOBpOOBsOOCiSzjgZfjgZLjgojjgZcNCivjgZPjgb/jgoQs44GL44Ga44Gy44KNDQor44GT44G/44KE44G+LOOBoeOBteOChg0KK+OBk+OCguOBoCzjgoTjgZnjgobjgY0NCivjgZPjgpPjgaks44Gg44GE44GZ44GRDQor44GT44KT44GpLOOBsuOCjeOChuOBjQ0KK+OBk+OCk+OBqSzjgZfjgpPjgYTjgaENCivjgZPjgpPjgaks44Go44GX44KEDQor44GT44KT44GpLOOBqOOBl+OBjQ0KK+OBk+OBq+OBlyzjgarjgYrjgbXjgb8NCivjgZPjgZUs44Gy44KN44KG44GNDQor44GT44GZ44GOLOOBkeOBhOOBhOOBoQ0KK+OBk+OBn+OBjSzjgojjgZfjgYvjgZoNCivjgZPjgZ/jgass44Gu44KK44GX44GSDQor44GT44KE44G+LOOBn+OBi+OBsuOBpw0KK+OBk+OChOOBvizjgogNCivjgZPjgoTjgb4s44GN44KT44KEDQor44GT44GW44KPLOOChOOBmeOBsuOCjQ0KK+OBk+OBmuOCiyzjgbLjgo3jgYvjgZoNCivjgY/jgbzjgZ8s44GT44GG44GYDQor44GP44G844GfLOOBsuOBp+OBqOOBlw0KK+OBj+OBvOOChCzjgYrjgZXjgoANCivjgY/jganjgYYs44KI44GX44Gy44KNDQor44Gb44Gu44GKLOOBn+OBi+OBlw0KK+OBj+OBvuOBjOOBhCzjgYvjgZrjgb7jgZUNCivjgY/jgonjganjgb8s44G+44GV44GoDQor44GP44KJ44KC44GoLOOBsuOBqOOBlw0KK+OBj+OCieOBqOOBvyzjgYvjgaTjgoQNCivjgY/jgorjga4s44GL44Ga44Go44GXDQor44GP44KK44KELOOBguOBjeOBruOCig0KK+OBj+OCjeOBoCzjgb7jgZXjgagNCivjgY/jgo3jgYvjgo8s44GR44KT44GE44Gh44KNDQor44GP44GV44GL44KPLOOBvuOBleOChuOBjQ0KK+OBj+OBleOBrizjgZHjgYTjgYTjgaENCivjgY/jgo/jgbDjgoks44G/44GNDQor44GP44KP44GuLOOBsuOCjeOBvw0KK+OCiOOBl+OBoCzjgYvjgaTjgbLjgZMNCivjgY/jgZrjga4s44G+44GV44Gu44KKDQor44G+44Gh44GgLOOCiOOBl+OBguOBjQ0KK+OBvuOBiOOBoCzjgbLjgo3jgZcNCivjgb7jgYjjgYvjgo8s44GY44KF44KT44GTDQor44GK44Gf44GrLOOBqOOCguOBkw0KK+OBvuOBjSzjgZjjgoXjgpMNCivjgb7jgY3jga4s44Gy44Go44GXDQor44G+44KL44GK44GLLOOBi+OBmuOBruOCig0KK+OBvuOCi+OChOOBvizjgY3jgojjgbXjgb8NCivjgb7jgovjgoTjgb4s44Gu44KK44KG44GNDQor44G+44KL44KE44G+LOOBkeOBhOOBmeOBkQ0KK+OBvuOBleOBhCzjgoTjgZnjgbLjgo0NCivjgb7jgZXjgY0s44KG44Gy44GhDQor44G+44GbLOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgb/jgaTjgYLjgY0NCivjgb7jgajjgbAs44Gu44G244G/44GkDQor44G+44Go44GwLOOBleOBqOOBlw0KK+OBvuOBpOOBsOOCiSzjgajjgZfjgbLjgo0NCivjgb7jgaTjgYQs44KE44GZ44Gy44KNDQor44G+44Gk44GELOOBleOBqOOCiw0KK+OBvuOBpOOBi+OCjyzjgbLjgo3jgYvjgZoNCivjgb7jgaTjgoLjgoos44Gy44KN44GXDQor44G+44Gk44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgb/jga3jgYvjgZoNCivjgb7jgaTjgoLjgags44Gf44Gg44GX44GSDQor44G+44Gk44KC44GoLOOBn+OBj+OChA0KK+OBvuOBpOOCguOBqCzjgajjgZfjgYoNCivjgb7jgaTjgoLjgags44KE44GZ44Gy44KNDQor44G+44Gk44KC44GoLOOBmOOCheOCk+OBk+OBhg0KK+OBh+OBiCzjga7jgorjgbLjgo0NCivjgb7jgaTjgYos44G/44Gu44KLDQor44G+44Gk44GK44GLLOOBl+OCk+OBlA0KK+OBvuOBpOOBl+OBvizjgbLjgafjgogNCivjgarjgYvjgavjgo8s44Gf44GL44GXDQor44G+44Gk44KE44G+LOOChuOBn+OBiw0KK+OBvuOBpOOChOOBvizjgZ/jgYvjgajjgZcNCivjgb7jgaTjgZbjgo8s44GP44Gr44Gy44GTDQor44G/44KA44KJLOOBn+OBi+OBguOBjQ0KK+OBv+OBq+OChSzjgbLjgZXjgZcNCivjgb/jgZ8s44KE44GZ44Gy44KNDQor44G/44GfLOOBm+OBhOOBhOOBoQ0KK+OBv+OBn+OCgOOCiSzjgZfjgofjgZ4NCivjgb/jgaTjgaAs44Gf44GL44GXDQor44G/44Gk44GgLOOBvuOBleOCiOOBlw0KK+OBv+OBpOOBvuOBnyzjgZfjgZLjgosNCivjgb/jgaTjgYrjgYss44GY44KF44KT44GTDQor44G/44GG44KJLOOBn+OBkeOBlw0KK+OBv+OBhuOCiSzjgajjgYrjgosNCivjgb/jgo/jgZ8s44GV44Gg44GKDQor44Gq44GM44GbLOOBiOOBhOOBhOOBoQ0KK+OBv+OChOOBkSzjgYvjgZrjgojjgZcNCivjgb/jgoTjgZEs44Gf44GR44Go44GXDQor44G/44KE44G+LOOBn+OBi+OBsuOCjQ0KK+OBv+OChOOCguOBqCzjgajjgZfjgo0NCivjgb/jgoTjgoLjgags44GY44KF44KTDQor44G/44KE44Gq44GMLOOBmOOCheOCk+OBmA0KK+OBv+OChOOBluOBjSzjgbLjgafjgogNCivjgb/jgZrjgbAs44GX44KF44Gr44GhDQor44G/44Ga44Gs44G+LOOBk+OBhuOBhOOBoQ0KK+OBv+OBmuOBleOBjSzjgb7jgarjgbYNCivjgb/jgZrjgZ8s44Gy44KN44GL44GaDQor44KC44Gh44Ga44GNLOOBmOOCheOCkw0KK+OCguOBoeOBmuOBjSzjgYrjgZXjgoANCivjgoLjgaHjgZrjgY0s44GY44KF44Gr44GhDQor44KC44GOLOOCiOOBl+OBruOCig0KK+OCguOCguOBmyzjgYLjgoTjgZMNCivjgbLjgonjga4s44GN44KH44GTDQor44KC44KKLOOBv+OBqeOCig0KK+OCguOCiizjgarjgYrjgY0NCivjgoLjgoos44Gf44GL44GXDQor44KC44KKLOOBguOBjeOBig0KK+OCguOCiuOBi+OCjyzjgobjgYvjgooNCivjgoTjgY7jgZfjgZ8s44Gb44GE44GYDQor44KC44KK44KC44GoLOOBpuOBpOOBig0KK+OCguOCiuOCguOBqCzjgbLjgajjgb8NCivjgb7jgaTjgaAs44G+44GV44GL44GkDQor44KC44KK44GK44GLLOOCguOBqOOBteOBvw0KK+OCguOCiuOBl+OBnyzjgbLjgo3jgZcNCivjgoLjgorjgZ8s44GL44Gk44G/DQor44KC44KK44GfLOOBv+OCjw0KK+OBi+OBreOBkyzjga7jgorjgYLjgY0NCivjgoLjgorjgZ8s44GX44KF44Gy44GhDQor44KC44KK44KP44GNLOOBguOBpOOBjQ0KK+OCguOCjeOBqeOBvyzjgaHjgYvjgokNCivjgoLjgajjga/jgZcs44Gy44KN44GXDQor44KC44Go44GY44G+LOOBpOOCiOOBlw0KK+OCguOBqOOBjSzjgYLjgY3jgbLjgacNCivjgoLjgoos44KG44GG44GNDQor44GG44GZ44GELOOBvuOBleOChuOBjQ0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgobjgY0NCivjgoDjgonjgYvjgb8s44GX44GS44GKDQor44KA44KJ44GL44G/LOOBl+OCk+OBmA0KK+OCgOOCieOBi+OBvyzjgYTjgZXjgYoNCivjgoDjgonjgZ8s44GT44GG44GE44Gh44KNDQor44KA44KJ44GfLOOBk+OBhuOBmA0KK+OCgOOCieOChOOBvizjgZHjgpPjgZgNCivjgoDjgags44GC44GN44Gy44GTDQor44Gq44Gg44GQ44GhLOOCiuOBiA0KK+OBquOBjOOBr+OBlyzjgY/jgavjgbLjgo0NCivjgarjgYzjgYQs44GN44KI44GI44GEDQor44Gq44GM44KA44KJLOOBi+OBmuOBguOBjQ0KK+OBquOBjOOBiizjgb7jgZXjgobjgY0NCivjgarjgYzjgZfjgb4s44Gu44G244KG44GNDQor44Gq44GM44GX44G+LOOCiOOBsuOBoQ0KK+OBquOBjOOBnyzjgojjgZfjgbLjgacNCivjgarjgYzjgZ8s44Gm44Gk44GKDQor44Gq44GM44Gk44GLLOOBkeOBhOOBkw0KK+OBquOBjOOChOOBvizjgb/jgo8NCivjgYbjgaHjgaAs44GL44GK44KLDQor44GG44Gh44Ge44GuLOOBn+OBkeOBig0KK+OBquOBi+OBoCzjgaDjgYTjgZvjgYQNCivjgarjgYvjgYzjgo8s44Gy44Gn44GXDQor44Gq44GL44GM44KPLOOBsuOBqOOBlw0KK+OBquOBi+OBjOOCjyzjgojjgZfjgYoNCivjgarjgYvjgYzjgo8s44GN44KI44Gy44GTDQor44Gq44GL44GY44G+LOOBleOBqOOBlw0KK+OBquOBi+OBmOOBvizjgojjgZfjgbLjgo0NCivjgarjgYvjgZjjgb4s44GZ44G/44GoDQor44Gq44GL44G/44GhLOOBhOOBleOBig0KK+OBquOBi+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgarjgYvjgoLjgags44G+44GT44GoDQor44Gq44GL44KA44KJLOOBvuOBleOBvw0KK+OBquOBi+OCgOOCiSzjgb/jgaHjga7jgooNCivjgarjgYvjgoDjgoks44G/44KI44GTDQor44GC44GN44KE44G+LOOBquOBiuOCig0KK+OBquOBi+OCgOOCiSzjga7jgbzjgosNCivjgarjgYvjgoDjgoks44Gu44KK44KG44GNDQor44Gq44GL44KA44KJLOOBleOBquOBiA0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgbLjgacNCivjgarjgYvjgoDjgoks44Gf44GL44GXDQor44Gq44GL44KA44KJLOOBqOOBl+OChA0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgarjgYvjgoDjgoks44KG44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBoeOBr+OCiw0KK+OBquOBi+OBrizjgarjgYrjgobjgY0NCivjgarjgYvjga4s44GT44GG44GE44Gh44KNDQor44Gq44GL44GX44G+LOOBsuOCjeOBguOBjQ0KK+OBquOBi+OBpOOBvCzjgY3jgofjgZMNCivjgarjgYvjgaTjgYss44KK44KF44Gy44GhDQor44Gq44GL44KE44G+LOOChOOBmeOBqOOCgg0KK+OBquOBi+OChOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZbjgo8s44Gy44KN44GXDQor44Gq44GK44Gk44GLLOOChuOBv+OBkw0KK+OBquOCieOBr+OCiSzjgbLjgo3jgZcNCivjgarjgovjgZfjgb4s44Gf44GL44GYDQor44Gq44Go44KKLOOBsuOBp+OBqA0KK+OBq+OBhOOBmOOBvizjgaTjgajjgoANCivjgavjgYTjgoQs44Gf44GL44GTDQor44Gr44GXLOOChuOBjeOBkw0KK+OBq+OBlyzjgojjgZfjgbLjgZMNCivjgavjgZfjgbYs44Gb44GE44GYDQor44Gr44GX44GgLOOChuOBsuOBoQ0KK+OBq+OBl+OBr+OCiSzjgbLjgo3jgb8NCivjgavjgZfjgYvjgo8s44GV44Go44GXDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBq+OBl+OBi+OCjyzjgZHjgYTjgZgNCivjgavjgZfjgoLjgags44Gu44KK44GKDQor44Gr44GX44KC44GoLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgabjgaTjgo0NCivjgavjgZfjgoDjgoks44G+44GT44GoDQor44Gr44GX44GuLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OBrizjgYrjgZXjgoANCivjgavjgZfjgYrjgYss44GC44GN44GTDQor44Gr44GX44GW44GNLOOBleOBqOOBlw0KK+OBq+OBl+OBluOCjyzjgb7jgZXjgZMNCivjgavjgo8s44Gy44KN44Gf44GLDQor44Gu44G2LOOChuOBiw0KK+OBruOBjOOBhOOBqCzjgorjgYsNCivjga7jgZDjgaEs44Go44GX44Gy44GVDQor44Gu44GYLOOBvuOBleOBsuOCjQ0KK+OBruOBmOOBvizjgYLjgoTjgZMNCivjga7jgoDjgoks44Gf44Gk44KEDQor44Gu44KA44KJLOOBn+OBi+OBguOBjQ0KK+OBruOBquOBiyzjgb7jgZXjgZMNCivjgarjgYvjgZjjgb4s44GE44GV44GKDQor44Gu44GW44GNLOOBvuOBleOBqA0KK+OBruOBluOBjSzjgbLjgafjgYLjgY0NCivjgazjgo8s44Gq44GK44GTDQor44GK44GhLOOBn+OBi+OBlw0KK+OBiuOBoeOBguOBhCzjgZPjgZ4NCivjgYrjgaAs44GR44KT44GYDQor44GK44GM44GV44KP44KJLOOBl+OCk+OChA0KK+OBiuOBjOOBleOCj+OCiSzjgb7jgZXjga7jgbYNCivjgYrjgYzjgZ8s44GR44KT44GYDQor44GK44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OBiuOBjuOBr+OCiSzjgoLjgorjgojjgZcNCivjgYrjga/jgoks44G/44Gu44KLDQor44GK44GwLOOBruOBtuOChuOBjQ0KK+OBiuOBsCzjgojjgYbjgZMNCivjgb7jgaTjgaAs44Gy44KN44KG44GNDQor44GK44G4LOOBruOCiuOBig0KK+OBiuOBjOOBjSzjgYLjgY3jgZMNCivjgZfjgofjgZjjgb4s44GX44KT44GE44GhDQor44GK44Gv44G+LOOChuOBjeOBruOCig0KK+OBiuOBr+OBlyzjgaHjgbXjgoYNCivjgYrjgY7jga4s44G/44GN44GKDQor44GK44GL44KPLOOCiOOBl+OChuOBjQ0KK+OBiuOBi+OCj+OCiSzjgZ/jgZHjgZcNCivjgYrjgY0s44Gf44GL44GXDQor44Gt44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBiuOBj+OBvCzjgYLjgaTjgZcNCivjgYrjgY/jgoks44KI44GX44KG44GNDQor44GK44G+LOOBqOOBv+OBig0KK+OBiuOBv+OBiyzjgYvjgZrjga/jgosNCivjgYrjgoLjgoos44GR44KT44GE44GhDQor44GK44KC44KKLOOBsuOCjeOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgb8NCivjgYrjgYrjgavjgZcs44KG44G/44GTDQor44GK44GK44Gr44GXLOOBiOOBhOOBmA0KK+OBiuOBrizjgZfjgZLjgobjgY0NCivjgYrjga4s44KG44GG44GYDQor44GK44Gs44G+LOOBi+OBmuOBsuOCjQ0KK+OBiuOBl+OBvizjgajjgZfjgbLjgacNCivjgYrjgZfjgb4s44Gy44KN44KG44GNDQor44GK44GfLOOBkeOBhOOBkw0KK+OBiuOBnyzjgZfjgZLjgY0NCivjgYrjgZ8s44GT44GG44GE44GhDQor44GK44Gf44GLLOOBvuOBquOBtg0KK+OBiuOBn+OBkSzjgb7jgZXjgbLjgZMNCivjgYrjgZ/jgZEs44GY44KF44KTDQor44GK44Gf44GrLOOBruOBtuOChuOBjQ0KK+OBiuOBpOOBvCzjgajjgoLjgbLjgZMNCivjgYrjgaTjgYss44Go44KC44Gy44GVDQor44GK44Gk44GLLOOBpuOBpOOBlw0KK+OBiuOBpOOBjSzjgbLjgafjgb8NCivjgZXjgZPjgaAs44Gy44KN44GC44GNDQor44GK44KPLOOBi+OBmuOBguOBjQ0KK+OBiuOBsuOCgyzjgb/jgaTjgosNCivjgYrjgYTjgYvjgo8s44G+44GV44Gy44GnDQor44GK44GL44G5LOOBleOBquOBiA0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgZMNCivjgYrjgYvjgaAs44G+44GV44GKDQor44GK44GL44GgLOOBn+OBi+OChuOBjQ0KK+OBiuOBi+OBoCzjgb7jgZXjgZcNCivjgYrjgYvjgoLjgags44G+44GV44KG44GNDQor44GK44GL44KC44GoLOOCguOBqOOBhA0KK+OCgeOCiSzjgYvjgYrjgosNCivjgYrjgYvjga4s44Go44GX44GC44GNDQor44GK44GL44GW44GNLOOBleOBiOOBkw0KK+OBiuOBjeOBnyzjgbLjgafjgbXjgb8NCivjgYrjgY/jgaAs44GP44Gr44GKDQor44GK44GP44Gs44GNLOOBguOBpOOChuOBjQ0KK+OBiuOCk+OBoCzjgabjgaTjgYoNCivjgYrjgpPjgaAs44Go44GX44Gy44GTDQor44GG44Gk44G/LOOBhOOBmuOBvw0KK+OBiuOBrizjgZfjgoXjgbLjgaENCivjgYrjga4s44GV44Go44GXDQor44GL44KP44KC44GoLOOBmOOCheOCk+OBm+OBhA0KK+OBi+OBqSzjgb7jgZXjgY0NCivjgYrjgZfjgb4s44G+44Gq44G2DQor44GK44GZ44G/LOOBnQ0KK+OBiuOBnyzjgoTjgZnjgb/jgaQNCivjgYrjgorjgYQs44Gm44Gk44GYDQor44GK44KK44GfLOOBpuOBpOOChA0KK+OBiuOBleOBiyzjgbLjgafjgYLjgY0NCivjgYrjgZ3jga7jgYQs44Gy44Gn44Gu44G2DQor44GK44GW44GVLOOBsuOCjeOChuOBjQ0KK+OBiuOBluOCjyzjgYvjgZrjga7jgooNCivjgYrjgZbjgo8s44GL44Ga44KG44GNDQor44GK44GW44KPLOOBleOBqOOBkw0KK+OBl+OCieOBqOOCiizjgYjjgYTjgYTjgaHjgo3jgYYNCivjgYrjgZ7jga0s44G+44GV44GL44GaDQor44GV44GuLOOBoeOBmuOBkw0KK+OBleOBhOOBqOOBhizjgbLjgonjgZ/jgYsNCivjgZXjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgobjgY3jgbLjgo0NCivjgZXjgYTjgajjgYYs44Gy44Gn44KG44GNDQor44GV44GL44GELOOBj+OBq+OBsuOCjQ0KK+OBleOBi+OBhCzjgZfjgo0NCivjgZXjgYvjgYQs44GC44GN44KJDQor44GV44GL44GN44Gw44KJLOOBi+OBmuOChuOBjQ0KK+OBleOBi+OCguOBqCzjgZfjgoXjgpPjgZgNCivjgZXjgYvjgoLjgags44GX44KF44Gy44GhDQor44GV44GL44KC44GoLOOBqOOCiOOBsuOBpw0KK+OBleOBi+OCguOBqCzjgobjgY3jgYoNCivjgZXjgYvjgoLjgags44KG44GN44Gu44G2DQor44GV44GL44KA44KJLOOBn+OBpOOBmA0KK+OBleOBi+OBrSzjgarjgYrjga7jgooNCivjgZXjgYvjgZ8s44KE44GZ44Gy44KNDQor44GV44GL44GfLOOBmOOCheOCkw0KK+OBguOBj+OBn+OBjOOCjyzjgYLjgY3jgYoNCivjgZXjgY/jgonjgYQs44Gy44KN44Gy44GVDQor44GV44GP44KJ44GELOOBvuOBleOBvw0KK+OBvuOBpOOBsOOCiSzjgarjgYrjgY0NCivjgZXjgY/jgonjgYQs44G/44GI44GTDQor44GV44Gq44GOLOOBkeOBhOOBmA0KK+OBleOBrizjgaHjgYvjgZMNCivjgYrjgYzjgY0s44Gy44KN44G/DQor44GV44GV44GNLOOBkeOCk+OBmA0KK+OBleOBleOBjSzjgb7jgZPjgagNCivjgZXjgZXjgY0s44G/44Gk44GC44GNDQor44GV44GV44GNLOOCjOOBhOOBkw0KK+OBleOBleOBjSzjgojjgZfjgYoNCivjgZXjgZXjgY0s44Go44KC44GTDQor44GV44Gf44GRLOOBmOOCheOCk+OBuuOBhA0KK+OBk+OBoOOBvizjgYvjgYrjgosNCivjgZXjgajjgYYs44GR44KT44GYDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgb7jgZXjgbLjgZMNCivjgZXjgajjgYYs44G+44GV44Gy44KNDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgZXjgajjgYYs44KL44KK44GTDQor44GV44Go44GGLOOCiuOCh+OBkw0KK+OBleOBqOOBhizjgZXjgajjgosNCivjgZXjgajjgYYs44KI44GX44GNDQor44GV44Go44GGLOOChuOBjeOBkw0KK+OBleOBi+OBhCzjgaHjgbLjgo0NCivjgZXjgo/jgaAs44G144G/44Gy44KNDQor44Gb44GM44KPLOOBqOOBiuOCiw0KK+OBm+OBhOOBrizjgbLjgafjgobjgY0NCivjgZvjgY0s44GE44GP44G144G/DQor44Gb44GN44GpLOOBquOBjOOBvuOBlQ0KK+OBm+OBjeOBrizjgajjgoLjgZMNCivjgZvjgYos44Gf44GL44KG44GNDQor44Gb44KK44GL44KPLOOBvuOBleOBsuOCjQ0KK+OBl+OBsOOBleOBjSzjgajjgYrjgosNCivjgZfjgYws44G144GY44GKDQor44GX44GS44KLLOOBsuOBp+OBr+OCiw0KK+OBl+OBvuOBoCzjgb7jgoLjgosNCivjgZfjgb7jgaAs44G+44KG44G/DQor44GX44G+44GgLOOBl+OCjQ0KK+OBl+OBvuOBoCzjgZHjgpPjgZgNCivjgZfjgb7jgoLjgags44Gy44Gn44Gu44KKDQor44GX44G+44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBl+OBvuOBrizjgYLjgY3jgbLjgo0NCivjgZfjgb/jgZos44Gy44Gn44GNDQor44GX44G/44GaLOOBkeOCk+OBmA0KK+OBl+OBv+OBmizjgZPjgYbjgZ/jgo3jgYYNCivjgZfjgb/jgZos44GV44Go44KLDQor44GX44G/44GaLOOBl+OCh+OBmA0KK+OBl+OBv+OBmizjgaTjgajjgoANCivjgZfjgb/jgZos44GX44KT44GYDQor44GX44KC44GgLOOBruOCiuOBsuOCjQ0KK+OBl+OCguOBjOOBjSzjgZ/jgYvjgobjgY0NCivjgZfjgoLjga/jgZ8s44GK44GV44KADQor44GX44KC44KA44KJLOOBsuOCjeOBruOCig0KK+OBl+OCguOBiuOBiyzjgYvjgarjgb8NCivjgZfjgoDjgoks44KI44GX44GTDQor44KE44GI44GM44GXLOOBguOBpOOBlw0KK+OBl+OBruOBluOBjSzjgb/jgaTjgYgNCivjga/jgY7jgo/jgoks44G+44GT44GoDQor44GX44GK44GgLOOBi+OBiuOCiw0KK+OBl+OBiuOBnyzjgb/jgaTjgoTjgZkNCivjgZfjgYrjgZbjgo8s44Gf44Gk44KEDQor44GX44KJ44GELOOBn+OBi+OBlw0KK+OBl+OCieOBhOOBlyzjgZ/jgYvjgYLjgY0NCivjgZfjgofjgaAs44Go44GX44Gy44KNDQor44GX44KFLOOBn+OBoOOBlw0KK+OBneOCgeOChCzjgaTjgajjgoANCivjgZnjgaAs44GT44GG44GY44KNDQor44GZ44GILOOBleOBqOOCiw0KK+OBmeOBiOOBnyzjgb/jgZrjgY0NCivjgZfjgbbjgYTjgaEs44Gy44KN44KG44GNDQor44GZ44GM44GuLOOBkeOCk+OChA0KK+OBmeOBjOOCj+OCiSzjgbLjgo3jgobjgY0NCivjgZnjgY7jgYgs44Gu44G244Gy44KNDQor44GZ44GO44G+44GVLOOBqOOBl+OBguOBjQ0KK+OBmeOBjuOCguOCiizjgZfjgofjgbLjgaENCivjgZnjgY7jgoLjgags44GC44Gk44GTDQor44GZ44GO44GV44GNLOOBguOBpOOBlw0KK+OBmeOBjuOBhuOCiSzjgbLjgafjgYoNCivjgZnjgY7jgYbjgoks44G+44GV44Gy44GoDQor44G/44Ga44GK44GhLOOBsuOBleOCiOOBlw0KK+OBmeOBjuOChOOBvizjgZHjgpPjgYTjgaENCivjgZnjgY7jgoTjgb4s44Gf44GR44GXDQor44GZ44GO44KE44G+LOOBqOOCguOBsuOBlQ0KK+OBmeOBjuOChOOBvizjgZHjgpPjgZgNCivjgZnjgb8s44Go44KC44GTDQor44Gf44G544GELOOBvuOBleOBlw0KK+OBmeOBquOBvyzjgY/jgb/jgZMNCivjgZnjgZXjgo8s44Gy44Gn44GKDQor44GZ44Ga44GNLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgbLjgafjgobjgY0NCivjgZnjgZrjgY0s44Gy44KN44KG44GNDQor44GZ44Ga44GNLOOBsuOBleOBn+OBiw0KK+OBmeOBmuOBjSzjgYvjgaTjgajjgZcNCivjgZnjgZrjgY0s44GR44GE44GfDQor44GZ44Ga44GNLOOBruOBtuOChuOBjQ0KK+OBmeOBmuOBjSzjgajjgYrjgosNCivjgZnjgZrjgY0s44KI44GG44GTDQor44GZ44Ga44GNLOOChuOBjeOBig0KK+OBmeOBmuOBjSzjgZjjgoXjgavjgaENCivjgZ/jgbks44Gf44GL44GXDQor44Gf44Gh44Gv44KJLOOBvuOBleOChA0KK+OBn+OBkizjgb7jgarjgbYNCivjgZ/jgZDjgaEs44GR44KTDQor44Gq44GL44GfLOOBn+OBkeOBlw0KK+OBn+OBkOOBoSzjgb7jgZXjgoLjgagNCivjgZ/jgZjjgb4s44KI44GX44Gu44KKDQor44Gf44GY44G+LOOBsuOCjeOBkw0KK+OBn+OBi+OBoCzjgYrjgZXjgoANCivjgZ/jgYvjgY7jgo8s44GC44GN44GTDQor44Gf44GL44Gv44GXLOOBiOOBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GC44GNDQor44Gf44GL44Gv44GXLOOBi+OBquOBkw0KK+OBn+OBi+OBj+OCiSzjgYvjgarjgZMNCivjgZ/jgYvjgY/jgoks44GL44Ga44KI44GXDQor44Gf44GL44Gv44GXLOOBkeOCk+OBnw0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZgNCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44GL44Gv44GXLOOBquOCiuOBvuOBlQ0KK+OBn+OBi+OBr+OBlyzjgorjgoXjgbLjgaHjgo0NCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44Gf44GL44Gv44GXLOOBqOOBl+OBjQ0KK+OBn+OBi+OBr+OBlyzjgo/jgZ/jgosNCivjgZ/jgYvjga/jgZcs44KP44Gf44KLDQor44Gf44GL44Gv44GXLOOBl+OCkw0KK+OBn+OBi+OBj+OCiSzjgYLjgY3jgokNCivjgZ/jgYvjgb/jgoQs44G+44GT44GoDQor44Gf44GL44GV44GULOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBleOBjSzjgb/jgaTjgbLjgo0NCivjgZ/jgYvjgZss44GL44Ga44KI44GXDQor44Gf44GL44Gk44GLLOOBsuOCjeOChOOBmQ0KK+OBn+OBi+OChOOBquOBjizjgYvjgZrjga7jgooNCivjgZ/jgYvjgoTjgarjgY4s44G/44Gk44Go44GXDQor44Gf44GR44GhLOOBk+OBhuOBmA0KK+OBn+OBkeOBoCzjgoTjgZnjgb7jgZUNCivjgZ/jgZHjgaAs44KE44Gy44KNDQor44Gf44GR44GM44G/LOOBguOBjeOBteOBvw0KK+OBn+OBkeOBsuOBlSzjgYrjgZXjgoANCivjgZ/jgZHjgYQs44KG44GG44GYDQor44Gf44GR44GELOOBsuOCjeOChuOBjQ0KK+OBn+OBkeOBi+OCjyzjgaTjgYvjgZUNCivjgZ/jgZHjgoDjgoks44GX44KT44GE44GhDQor44Gf44GR44Gq44GLLOOChuOBhuOBkw0KK+OBhOOBvuOBhCzjgb7jgZPjgagNCivjgZ/jgZHjgZXjgZMs44Gy44Gn44GNDQor44Gf44GR44GX44G+LOOBpOOBqOOCgA0KK+OBn+OBkeOBhuOBoSzjgZ/jgb7jgb8NCivjgbLjgaDjgYss44GP44Gr44Gy44GTDQor44Gf44GN44KC44GoLOOBvuOBleOBqA0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgbLjgagNCivjgZ/jgb7jgYQs44GX44KT44GE44GhDQor44Gf44KA44KJLOOBl+OBkuOCiw0KK+OBn+OBquOBuSzjgoTjgYjjgY3jgaENCivjgZ/jgarjgbks44Gy44Gn44GC44GNDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgYTjgaTjgbLjgagNCivjgZ/jgarjgYss44GL44Gk44G/DQor44Gf44Gq44GLLOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjga7jgbbjgYoNCivjgZ/jgarjgYss44Gf44Gg44KG44GNDQor44Gf44Gq44GLLOOBn+OBkeOBsuOBkw0KK+OBn+OBquOBiyzjgajjgZfjgbLjgacNCivjgZ/jgarjgYss44Go44GX44Gy44KNDQor44Gf44Gq44GLLOOCiOOBsuOBoQ0KK+OBn+OBquOBiyzjgojjgbLjgaENCivjgZXjga4s44GL44Gk44GX44KNDQor44Gf44GrLOOBsuOCjeOBqOOBlw0KK+OBn+OBq+OCgOOCiSzjgajjgYrjgosNCivjgZ/jgavjgoTjgb4s44G/44Gp44KKDQor44Gf44GV44GLLOOBjeOBj+OBvw0KK+OBi+OBqOOBhizjgb7jgZXjgosNCivjgabjgonjgaAs44GX44KH44Gy44GhDQor44Gm44KJ44G+44GILOOBiOOBhOOBmA0KK+OBpuOCieOBq+OBlyzjgojjgbjjgYQNCivjgabjgonjgavjgZcs44GC44GN44GoDQor44Gm44KJ44Ge44GuLOOBhOOBleOCgA0KK+OBqOOBs+OBnyzjgb/jganjgooNCivjgYTjgZrjgb/jgZXjgo8s44KI44GX44Gq44KKDQor44Go44GgLOOChOOBmeOBmA0KK+OBqOOBkOOBoSzjgZ/jgYvjgZcNCivjgajjgb7jgaQs44GC44KK44Gy44GoDQor44GC44GN44KA44KJLOOBl+OCk+OBlA0KK+OBqOOBjeOBn+OBkSzjgZfjgoXjgbLjgaENCivjgajjgY/jgb7jgZks44Gy44KN44KG44GNDQor44Go44GP44Gf44GRLOOBn+OBi+OBlw0KK+OBqOOBvuOBjSzjgbLjgo3jgbXjgb8NCivjgajjgb/jgYQs44GI44GE44GE44Gh44KN44GGDQor44Go44G/44GfLOOCiOOBl+OBteOBvw0KK+OBqOOBv+OChOOBvizjgaDjgYTjgZnjgZENCivjgajjgoLjgaAs44KE44GZ44G+44GVDQor44Go44KC44Gq44GMLOOBiOOBhOOBmA0KK+OBqOOBleOBiyzjgojjgZfjgobjgY0NCivjgajjgaPjgajjgoos44G+44GNDQor44G+44Gk44GKLOOBruOBtuOChuOBjQ0KK+OBqOOCiOOBoCzjgbLjgo3jgb/jgaQNCivjgaTjgbzjgYQs44GL44GK44KKDQor44GL44Go44GGLOOBvuOBleOBvw0KK+OBpOOBoeOChCzjgbLjgafjgY0NCivjgaTjgaAs44GV44Go44GXDQor44Gk44GYLOOBn+OBkeOBlw0KK+OBpOOBmCzjgajjgoLjgYLjgY0NCivjgaTjgZjjga4s44Gu44G244KG44GNDQor44Gk44GL44GT44GXLOOBn+OBkeOBlw0KK+OBpOOBi+OCguOBqCzjgYLjgY3jgbLjgo0NCivjgaTjgYvjgZbjgY0s44GC44GN44Gy44GTDQor44Gk44GN44GC44GXLOOBi+OBmuOChA0KK+OBpOOBjeOBluOCjyzjgb7jgZXjgbLjgo0NCivjgaTjgb/jgZ8s44GN44G/44GKDQor44GI44KT44GpLOOBvuOBleOBqA0KK+OBpOOBqCzjgY/jgb/jgZMNCivjgaTjgoDjgoks44G+44GV44Gu44KKDQor44Gk44Gt44GL44KPLOOBquOBiuOBqA0KK+OBpOOCi+OBiuOBiyzjgYLjgY3jgbLjgZMNCivjgaTjgovjgZ8s44KI44GX44KG44GNDQor44Gk44KL44GfLOOCiOOBl+OChuOBjQ0KK+OBpOOCi+OBnyzjgYLjgY3jgokNCivjgaTjgaTjgb8s44Go44GX44Gy44KNDQor44Gk44Gk44G/LOOBi+OBmuOBlw0KK+OBpOOCj+OBkyzjgZfjgpPjgZQNCivjgaTjgoTjgb4s44G+44GV44Gy44GTDQor44GG44Gh44GgLOOCiOOBsuOBoQ0KK+OBhuOBoeOBoCzjgojjgZnjgZENCivjgYbjgaHjgaAs44GC44GN44KJDQor44GG44Gh44KE44G+LOOBl+OBkuOBsuOCjQ0KK+OBhuOBoeOChOOBvizjgbXjgb/jgbLjgo0NCivjgYbjgaks44GC44GN44KJDQor44GG44GI44GgLOOBk+OBhuOBmA0KK+OBhuOBiOOBoCzjgYjjgYTjgYTjgaENCivjgb7jgaTjgoDjgoks44Gf44Gg44Gy44GTDQor44GG44GI44GgLOOBqOOBl+OBsuOCjQ0KK+OBhuOBiOOBoCzjgojjgZfjgYoNCivjgYbjgYjjgb7jgaQs44Gd44Gu44GZ44GRDQor44GG44GI44GuLOOCiOOBl+OBsuOBkw0KK+OBhuOBiOOBrizjga7jgorjgZMNCivjgYTjgZfjgaAs44KC44Go44KG44GNDQor44GG44KB44GgLOOBn+OBpOOChuOBjQ0KK+OBhuOCgeOBjOOBjSzjgZfjgoXjgpPjgoQNCivjgYbjga4s44GL44Gk44G/DQor44GG44KJ44Gv44GXLOOChuOBiw0KK+OBl+OBv+OBmizjgY3jgojjgbXjgZUNCivjgYjjgYzjgZfjgoks44GX44KH44GTDQor44GZ44GI44GL44GtLOOBvuOBleOBsuOCjQ0KK+OBhuOBpCzjgZvjgaTjgZMNCivjgYbjgaTjga/jgZcs44GX44KT44GUDQor44GG44Gk44G/LOOBsuOBp+OBig0KK+OCj+OBoCzjgY3jgojjgb8NCivjgo/jgaAs44Gv44KL44GNDQor44GN44Gf44KP44GNLOOCiOOBmeOBkQ0KK+OCj+OBl+OBmizjgaDjgYTjgZjjgo0NCivjgo/jgZ/jgbks44GC44GR44G/DQor44KP44Gf44Gq44G5LOOBguOBjeOBig0KK+OCj+OBn+OBquOBuSzjgbLjgafjgYoNCivjgo/jgZ/jgarjgbks44Gy44KN44G/DQor44KP44Gf44Gq44G5LOOBmOOCheOCk+OBmA0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgZMNCivjgo/jgZ/jgarjgbks44GT44Gb44GEDQor44KP44Gf44Gq44G5LOOBj+OBq+OBkw0KK+OCj+OBn+OBquOBuSzjgb7jgoLjgosNCivjgo/jgZ/jgarjgbks44G+44KK44GTDQor44KP44Gf44Gq44G5LOOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgaDjgZcNCivjgo/jgZ/jgarjgbks44Gm44KL44KG44GNDQor44KP44Gf44Gq44G5LOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjgajjgZfjgbLjgo0NCivjgo/jgZ/jgarjgbks44GR44GE44GE44GhDQor44GI44Gv44KJLOOBpOOBreOBteOBvw0KK+OCj+OBn+OBquOBuSzjgZ/jgaTjgb8NCivjgo/jgZ/jgonjgYQs44Gb44GE44GNDQor44KE44GI44GM44GXLOOBr+OCi+OBquOBjA0KK+OChOOBr+OBjizjgbXjgb/jgogNCivjgoTjgb7jgaAs44Gy44KN44GXDQor44KE44G+44GgLOOBvuOBleOChA0KK+OChOOBvuOBoCzjgZXjgajjgb8NCivjgZPjgpPjgaks44GX44KT44GE44GhDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgaTjgajjgoANCivjgoTjgb7jgaAs44KI44GX44GC44GNDQor44KE44G+44GgLOOBpOOBreOBig0KK+OBiOOBruOCguOBqCzjgb7jgZXjgogNCivjgZXjgYTjgajjgYYs44GI44GE44GYDQor44KE44G+44GQ44GhLOOBsuOCjeOBkw0KK+OBteOBmOOBnyzjgbLjgo3jgobjgY0NCivjgoTjgb7jgZDjgaEs44GL44Gk44GXDQor44KE44G+44GQ44GhLOOChuOBhuOBmOOCjQ0KK+OBiOOBluOBjSzjgoTjgZnjgYoNCivjgoTjgb7jgZDjgaEs44GC44Gk44GXDQor44KE44G+44KC44GoLOOBsuOBp+OBguOBjQ0KK+OChOOBvuOCguOBqCzjgZjjgo0NCivjgoTjgb7jgoLjgags44GK44GV44KADQor44KE44G+44KC44GoLOOBl+OBruOBtg0KK+OChOOBvuOCguOBqCzjgZfjgoXjgbLjgaENCivjgoTjgb7jgoLjgags44Gf44GR44GXDQor44KE44G+44KC44GoLOOCiOOBmA0KK+OChOOBvuOCguOBqCzjgajjgZfjgoQNCivjgoTjgb7jgarjgYss44GC44Gk44GXDQor44KE44G+44GtLOOBiuOBleOCgA0KK+OChOOBvuOBruOBj+OBoSzjgb/jgY0NCivjgoTjgb7jgZXjgY0s44GC44GN44Gy44KNDQor44KE44G+44GX44GfLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgobjgY0NCivjgoTjgb7jgZfjgZ8s44GN44KT44KEDQor44KE44G+44GX44GfLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBl+OBnyzjgZXjgajjgZMNCivjgZfjgZXjgYQs44KE44GZ44Gy44KNDQor44KE44G+44GX44GfLOOBsuOBqOOBlw0KK+OChOOBvuOBhuOBoSzjgZXjgajjgosNCivjgoTjgb7jgYbjgaEs44GV44Go44GXDQor44KE44G+44GW44GNLOOBqOOBiuOCiw0KK+OChOOBvuOBluOBjSzjgoTjgZnjgZcNCivjgoTjgb7jgZbjgY0s44Gf44GR44GXDQor44KE44Gq44GO44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OChOOBrizjgZPjgY0NCivjgoTjga4s44Go44GX44KG44GNDQor44KE44GX44KNLOOBvuOBleOCiw0KK+OChOOBluOCjyzjgbLjgo3jgZcNCivjgojjgaAs44G/44Gh44KLDQor44KI44GOLOOBleOBqOOBlw0KK+OCiOOBk+OBhCzjgZ/jgYvjgZcNCivjgojjgZPjgoTjgb4s44G+44GV44GL44GaDQor44KI44Gt44GW44GNLOOBsuOCjeOBjQ0KK+OCiOOBl+OBoCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgojjgZfjgaAs44GT44GNDQor44KI44GX44GgLOOBl+OBkuOBvw0KK+OCiOOBl+OBoCzjgb7jgZXjgobjgY0NCivjgYjjgbPjgaos44Go44GX44Gy44KNDQor44KI44GX44GgLOOBqOOBl+OChuOBjQ0KK+OCiOOBl+OBoCzjgb7jgZPjgagNCivjgojjgZfjgYTjgZEs44Gy44Gn44GKDQor44KI44GX44KA44KJLOOBn+OBoOOBlw0KK+OCiOOBl+OCgOOCiSzjgoDjgaTjgb8NCivjgojjgZfjga4s44Gf44GR44GXDQor44KI44GX44GKLOOCiuOCh+OBmA0KK+OCiOOBl+OBn+OBkSzjgbLjgo3jgY0NCivjgobjgYLjgZUs44KE44GZ44GXDQor44GK44KP44GgLOOBvuOBk+OBqA0KK+OBiOOBkOOBoSzjgZfjgoXjgpPjgZnjgZENCivjgYrjgZbjgo8s44G144G/44KG44GNDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBl+OCk+OBn+OBqyzjgZHjgpPjgZfjgocNCivjgZnjgY7jgZ/jgass44G144Go44GXDQor44Gf44GL44Gv44GXLOOBmOOCheOCkw0KK+OBn+OBjeOBluOCjyzjgorjgYjjgZMNCivjgb/jgojjgaAs44GL44Ga44KI44GXDQor44KE44G+44GgLOOBmOOCheOCk+OBkw0KK+OChOOBr+OBjizjgZvjgYTjgYTjgaENCivjgY3jgoQs44Gf44Gg44GXDQor44G/44Gb44GNLOOBn+OBpOOBig0KK+OBiOOBruOCguOBqCzjgoTjgZnjga7jgooNCivjgZXjgY/jgonjgaAs44G/44Gk44KG44GNDQor44GV44GV44GNLOOBleOBqOOCiw0KK+OBsOOBsCzjgZfjgpPjgYTjgaENCivjgYLjgbws44Gu44G844KLDQor44GC44Gg44GhLOOBl+OBkuOCiOOBlw0KK+OBguOBi+OBleOBiyzjgabjgaTjgZgNCivjgYLjgb7jgZXjgY0s44GX44KH44GYDQor44GC44GK44GNLOOBleOBqOOCiw0KK+OBguOBnOOBjOOBvyzjgYvjgaTjgobjgY0NCivjgYjjganjga4s44G/44Gk44GC44GNDQor44Gp44GELOOBn+OBkeOBvw0KK+OBteOBmOOBhCzjgojjgZfjgbLjgZMNCivjgbXjgZjjgYQs44GE44Ga44G/DQor44G144GY44KC44GoLOOBquOBiuOBjQ0KK+OBteOBmOOCguOBqCzjgZHjgpPjgZgNCivjgbXjgY/jga/jgoks44GN44KI44GXDQor44G144GP44GK44GLLOOBleOBqOOBlw0KK+OBteOBj+OBl+OBvizjgZ/jgaDjgZcNCivjgbXjgZXjgoTjgb4s44Gu44KK44GL44GaDQor44GU44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBr+OBvuOBuSzjgb7jgZXjgY0NCivjga/jgarjgaAs44Gu44G244KG44GNDQor44Gv44GX44KC44GoLOOBn+OBkeOBig0KK+OBsuOBsyzjgYvjgYrjgooNCivjgbLjgonjgaTjgYss44GT44G444GEDQor44GE44GL44KKLOOBvuOBleOBsuOCjQ0KK+OBhOOBj+OBnyzjgbLjgafjgagNCivjgYTjgb7jgYQs44GL44KT44GYDQor44GE44GX44Gv44KJLOOBl+OBkuOBi+OBmg0KK+OBhOOBneOBoCzjgbXjgb/jgbLjgo0NCivjgYTjgZ3jgZbjgY0s44GL44Ga44GKDQor44GY44KT44GQLOOBqOOCguOBsuOBqA0KK+OBmOOCh+OBquOBhCzjgZXjgobjgooNCivjgZjjgofjgavjgZcs44Gy44KN44GNDQor44GL44GY44Gv44KJLOOBn+OBkeOBlw0KK+OBi+OBvuOBnyzjga7jgbbjgobjgY0NCivjgYvjgoHjgYQs44Gm44Gk44KEDQor44GL44G/44KE44G+LOOBkeOCk+OBhOOBoQ0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgYvjgajjgYYs44KI44GX44Gy44KNDQor44GI44G/LOOBiOOBhOOBmA0KK+OBi+OCj+OCguOCiizjgZHjgYTjgZnjgZENCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44GN44KA44KJLOOBleOBi+OBiA0KK+OBjeOBl+OBuSzjgYvjgZrjgobjgY0NCivjgY3jgZfjgYvjgo8s44Gf44GL44KG44GNDQor44GN44Gf44GM44KPLOOBguOBjeOBsuOBkw0KK+OBjeOBn+OBquOBiyzjgabjgaTjgZcNCivjgZPjgbDjgoTjgZcs44KE44GZ44Gy44KNDQor44GT44Gw44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBk+OBhOOBkSzjgojjgZfjgZ/jgYsNCivjgZPjgYTjgZrjgb8s44KI44GX44GC44GNDQor44GT44GY44G+LOOBv+OBruOCiw0KK+OBk+OBq+OBlyzjgYrjgZXjgb8NCivjgZPjgoTjgb4s44KI44GX44GC44GNDQor44GP44Gp44GGLOOBn+OBpOOChA0KK+OBj+OBvuOBleOBjSzjgYLjgY3jgokNCivjgY/jgo3jgaAs44Gm44Gk44KEDQor44GP44GV44GLLOOBn+OBpOOBmA0KK+OBiOOCk+OBqSzjgajjgZfjgobjgY0NCivjgb7jgYjjgYvjgo8s44Gy44Gn44GC44GNDQor44G+44KL44GfLOOBvuOCguOCiw0KK+OBvuOBpOOBl+OBnyzjgojjgZfjgbLjgo0NCivjgb/jgY/jgass44GL44Ga44GKDQor44GI44KT44GpLOOBj+OBq+OBsuOBkw0KK+OBv+OBrSzjgYvjgZrjgojjgZcNCivjgb/jgYbjgoks44GX44KT44GE44GhDQor44G/44Ge44GQ44GhLOOCgeOBkOOBvw0KK+OBu+OCk+OBmOOChyzjgb7jgZXjgobjgY0NCivjgb/jgZrjgZfjgb4s44GS44KTDQor44GI44GgLOOBqOOBnw0KK+OBquOBjOOBiizjgYvjgZrjgoQNCivjgarjgYvjgoDjgoks44Gf44GL44Gy44GVDQor44Gq44GL44Gr44GXLOOBjeOCiOOBi+OBmg0KK+OBquOBi+OBrizjgZ/jgY/jgoQNCivjgarjgYvjgYos44GL44Ga44KEDQor44Gt44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBq+OBl+OBi+OCjyzjgbLjgo3jgYvjgZoNCivjgavjgZfjgo/jgY0s44GX44KT44GUDQor44Gu44GgLOOBkeOCk+OBmA0KK+OBruOBkOOBoSzjgb7jgZXjgbLjgo0NCivjgYrjgaHjgYLjgYQs44Gy44Gn44GNDQor44GK44Gv44GXLOOBl+OCk+OBlA0KK+OBiuOBrizjgajjgb/jgYoNCivjgYjjgb8s44KI44GX44Gu44KKDQor44GK44GP44KA44KJLOOChOOBmeOBn+OBiw0KK+OBiuOBj+OBrizjgZfjgoXjgbLjgaENCivjgYjjgpPjgaks44GX44KH44GYDQor44GK44GK44Gr44GXLOOCiOOBl+OBguOBjQ0KK+OBiuOBluOBjSzjgZfjgZLjgosNCivjgZXjgYjjgY0s44Gf44GL44GXDQor44GV44GM44KPLOOBguOBpOOBlw0KK+OBleOBj+OBvizjgajjgYrjgosNCivjgZXjgajjgYYs44KG44GG44GYDQor44GV44Go44GGLOOCiOOBhuOBkw0KK+OBleOCjyzjgYvjgaTjgoQNCivjgZvjgYzjgo8s44G+44GV44KG44GNDQor44Gb44GNLOOBk+OBhuOBmA0KK+OBm+OCk+OBoCzjgZHjgpPjgYTjgaENCivjgZfjgbbjgoQs44Gf44GL44GTDQor44GX44G/44GaLOOBv+OBqOOBlw0KK+OBl+OCk+OBp+OCkyzjgZPjgYbjgZgNCivjgZfjgYrjgZ8s44KE44GZ44KI44GXDQor44GX44KF44GP44Gf44GrLOOBn+OBj+OBmA0KK+OBmeOChOOBvizjgbLjgafjgYoNCivjgZnjgZrjgoDjgoks44G+44GV44Gy44KNDQor44Gf44GL44GK44GLLOOBsuOBp+OBv+OBpA0KK+OBn+OBkeOBhuOBoSzjgojjgZfjgZ/jgaANCivjgZ/jgZHjgYbjgaEs44GC44GN44KJDQor44Gf44G+44GELOOBj+OBq+OBr+OCiw0KK+OBn+OCkyzjga7jgorjgobjgY0NCivjgZ/jgarjgYss44Gu44G844KLDQor44GI44GoLOOBvuOBleOBuw0KK+OBn+OBq+OBsuOCiSzjgZfjgZLjgYLjgY0NCivjgZ/jgavjgoTjgb4s44G/44Gk44Gy44KNDQor44Gf44GK44GLLOOBjeOCiOOBn+OBiw0KK+OBn+OBl+OBvizjgZPjgYbjgZgNCivjgZ/jgZbjgo8s44KG44GN44GKDQor44Go44GN44GfLOOBkeOCk+OBmA0KK+OBqOOBv+OBnyzjgZfjgoXjgbLjgaENCivjgajjgb/jgZ8s44KI44GX44Gv44KLDQor44Go44G/44GfLOOBguOBjeOCiOOBlw0KK+OBpOOBmOOBuSzjgbLjgajjgZcNCivjgaTjgZjjgYvjgo8s44Go44GX44GKDQor44GI44KT44GpLOOBsuOCjeOBkw0KK+OBv+OChOOBluOBjSzjgYTjgZXjgYoNCivjgo/jgaAs44KI44GX44KG44GNDQor44KP44Gf44Gq44G5LOOBi+OBpOOBruOCig0KK+OChOOBvuOBoCzjgYvjgZrjgZcNCivjgoTjgb7jgaAs44G+44GV44Gy44KNDQor44KE44G+44GgLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgZHjgpPjgZQNCivjgoTjgb7jgoLjgags44Gm44KL44GC44GNDQor44KE44G+44GK44GLLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgY3jgY/jgYoNCivjgoTjgb7jgZfjgZ8s44GX44GS44GNDQor44KE44G+44Ge44GILOOBvuOBleOChuOBjQ0KK+OChOOBiizjgb/jgY3jgYoNCivjgoTjgZnjgaAs44GL44Gk44KI44GXDQor44KI44Gk44Gf44GrLOOBl+OBkuOBjQ0KK+OCiOOBl+OBr+OCiSzjgZHjgpPjgZgNCivjgojjgZPjgYbjgoks44GC44GN44GKDQor44Gy44KJ44GbLOOBsuOCjeOBkw0KK+OBvuOBpOOBhCzjgZHjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GTDQor44GZ44Ga44GNLOOBvuOBjeOBkw0KK+OBi+OBqOOBhizjgojjgZfjgZ/jgYsNCivjgY/jgavjgajjgoIs44Gy44KN44G/DQor44GI44KT44GpLOOBquOBiuOChA0KK+OBhOOBqOOBhizjgZ/jgaDjgZcNCivjgYrjgYvjgZbjgY0s44GV44KE44GLDQor44Gy44KN44Gv44GXLOOBruOCiuOBig0KK+OBleOBi+OBjSzjgZ/jgYvjgZMNCivjgb/jgY0s44GL44Gk44Gu44KKDQor44GP44G+44GNLOOBruOBtuOBig0KK+OBn+OChOOBvizjgYvjgZrjgbLjgZUNCivjgYrjgo/jgY0s44Gy44KN44G+44GVDQor44G/44KH44GpLOOChOOBmeOBr+OCiw0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgbDjgbAs44KI44GX44GKDQor44GL44Gt44GTLOOBsuOBp+OBig0KK+OBk+OBkOOCjCzjgb7jgZXjgYoNCivjgZ/jgZHjgaAs44GX44GS44GKDQor44GE44Gh44KA44KJLOOBhOOBoeOBn+OCjeOBhg0KK+OBhOOBqOOBhizjgYvjgZrjgbLjgZUNCivjgYbjgYjjga/jgb4s44Gf44GR44GXDQor44Gq44GL44GELOOBqOOBl+OBj+OBqw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgobjgY0NCivjgZfjgb7jgaAs44GUDQor44KB44GQ44KNLOOBleOBqOOCiw0KK+OChOOBvuOChCzjgbLjgafjgYoNCivjgbXjgZjjgZ8s44KE44GZ44GKDQor44G+44Go44GwLOOCiOOBhuOBkw0KK+OBhOOBqOOBhizjgajjgY3jgZMNCivjgarjgYvjgYQs44G+44GV44GKDQor44GK44GL44GgLOOBpuOBpOOBig0KK+OBruOCguOBqCzjgY3jga/jgaENCivjgarjgYzjgZfjgb4s44G+44GV44GoDQor44KI44Gt44GL44KPLOOBsuOCjeOCiOOBlw0KK+OCj+OBn+OBquOBuSzjgb/jgY3jgYoNCivjgoDjgonjgb7jgaQs44Gv44KL44Gy44GTDQor44GN44Gf44GrLOOBsuOCjeOBguOBjQ0KK+OBv+OBi+OBvyzjgojjgZfjga7jgooNCivjgYLjgaDjgaEs44G+44KC44KLDQor44GE44Gu44GG44GILOOBruOBvOOCiw0KK+OBiuOBi+OBoCzjgb/jga7jgosNCivjgYvjgo/jgZfjgb4s44GT44GG44GYDQor44Gb44GNLOOBvuOBleOBig0KK+OBn+OBi+OBr+OBlyzjgb7jgarjgYoNCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44GP44KK44Gv44KJLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgb/jgaTjgZANCivjgbXjgZjjgYvjgZ8s44Gh44Gy44KNDQor44KI44GX44GoLOOCguOBqOOBi+OBmg0KK+OBi+OCj+OBmyzjgZfjgZrjgYoNCivjgZ/jgarjgYss44G+44GV44Gy44GoDQor44GE44G+44GELOOBqOOBl+OBjQ0KK+OBk+OCgOOCjSzjgojjgZgNCivjgb7jgYjjgaAs44Gf44KC44GkDQor44GT44GE44GRLOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjgajjgoLjgaHjgYsNCivjgZPjgpPjgaks44KG44Gy44Gh44KNDQor44GE44GX44GELOOBsuOCjeOBlw0KK+OBv+OBl+OBvizjgb/jgaTjgYoNCivjgZPjgbDjgoTjgZcs44G+44GV44GC44GNDQor44KE44G+44GX44GfLOOBn+OBi+OBguOBjQ0KK+OBn+OBquOBiyzjgabjgaTjgYoNCivjgoTjgb7jgaAs44GC44GN44KJDQor44GL44G/44KELOOCiOOBl+OBmA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgosNCivjgZfjgYrjgZbjgY0s44Gh44Gv44KLDQor44Gq44GL44KA44KJLOOBkeOBhOOBmeOBkQ0KK+OBn+OBkeOCguOBqCzjgb/jgaTjgYoNCivjgaDjgZHjgoTjgb4s44Gu44KK44GKDQor44GC44KJ44GL44KPLOOBiuOBleOCgA0KK+OCiOOBk+OBnyzjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44GR44KT44GYDQor44GC44KJ44GL44KPLOOChuOBjeOBqOOBlw0KK+OBiuOBv+OBoSzjgYjjgYTjgZQNCivjgb7jgaTjgY0s44GK44GV44KADQor44GP44GX44Gz44GNLOOBv+OBoeOBguOBjQ0KK+OBq+OBo+OBnyzjgbLjgZXjgajjgZcNCivjgaTjgbzjgYbjgaEs44Gy44GV44KEDQor44GV44GE44Go44GGLOOBn+OBi+OBlw0KK+OBn+OBkeOCgOOCiSzjgojjgZfjgYvjgZoNCivjgZ/jgarjgbks44GR44KT44GYDQor44G+44GI44GgLOOCiuOCh+OBng0KK+OBmeOBjOOBr+OCiSzjgb7jgZXjgajjgZcNCivjgYvjga3jgZMs44G/44Gh44KE44GZDQor44KE44G+44GG44GhLOOCiuOBjeOBig0KK+OBi+OBv+OBluOCjyzjgajjgYrjgosNCivjgZPjgYws44Gh44GL44GXDQor44Gk44KL44GV44GNLOOBleOBoeOBig0KK+OBsuOBjOOBlyzjgbLjgo3jgobjgY0NCivjgYTjgZfjgaAs44Gc44KT44GYDQor44Gq44GL44GM44KPLOOBvuOBleOChuOBjQ0KK+OBpuOCieOBl+OBvizjgYvjgZrjgbLjgZMNCivjgY3jgZ/jgoDjgoks44Go44GX44GKDQor44Gv44Gj44Go44KKLOOBvuOBk+OBqA0KK+OBleOBleOBjSzjgYjjgYTjgY0NCivjgbvjgYss44GZ44GR44Gy44GnDQor44Gu44KA44KJLOOBpuOCi+OBsuOBkw0KK+OBr+OChOOBrizjgb/jgY3jgYoNCivjgYLjgpPjgZbjgYQs44Gy44KN44KG44GNDQor44G144KL44GuLOOBqOOBl+OBsuOCjQ0KK+OBq+OBl+OCj+OBjSzjgYvjgZrjgYoNCivjga/jgZvjgYzjgo8s44KC44Go44GP44GrDQor44GE44KP44GfLOOBpuOBpOOBig0KK+OBqOOBoCzjgZfjgofjgZgNCivjgarjgYvjgoDjgoks44G+44GV44Gy44GTDQor44G144KL44GE44GXLOOBsuOCjeOBteOBvw0KK+OBquOBi+OCgOOCiSzjgajjgY/jgbLjgo0NCivjgarjgYvjgYzjgo8s44GZ44Gq44GKDQor44Gq44GL44G+LOOBteOBv+OBsuOCjQ0KK+OBmeOBjOOCj+OCiSzjgoTjgZnjgbLjgo0NCivjgb7jgaTjgoLjgags44Gv44KL44GKDQor44Gv44GX44KC44GoLOOBsuOBleOBr+OCiw0KK+OBquOBi+OBpCzjgZfjgoXjgpPjgZgNCivjgZXjgajjgYbjgoos44Gy44Gn44G/DQor44GE44GN44GfLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBoCzjgZHjgpPjgZ/jgo3jgYYNCivjgY3jgY/jgaEs44Gm44KL44GKDQor44GZ44GoLOOBi+OBmuOBig0KK+OBl+OBsOOBnyzjgZfjgpPjgYTjgaENCivjgarjgYTjgajjgYYs44GN44KI44Gy44GnDQor44KC44KKLOOBj+OBqw0KK+OBhOOBqOOBhCzjgb7jgZXjgYoNCivjgYTjgajjgYYs44Gf44GL44KG44GNDQor44G+44Gk44GW44GNLOOBsuOCjeOBguOBjQ0KK+OBhuOBiOOBrizjgb7jgZXjgagNCivjgYvjgZ/jgYrjgYss44G+44GZ44G/DQor44Gw44KT44GpLOOBteOBmOOBig0KK+OBleOBhOOBqOOBhizjgbLjgafjgYoNCivjgYTjgo/jgYQs44Gf44Gk44KEDQor44GX44KC44KE44G+LOOBvuOBmeOBkw0KK+OBguOBi+OBvuOCiyzjgaTjgajjgoANCivjgZTjgags44KI44GG44Gf44KN44GGDQor44G+44Gk44GgLOOChOOBmeOBi+OBmg0KK+OBreOBjOOBvyzjgYLjgY3jgokNCivjgoTjgb7jgZfjgZ8s44KG44GN44Gu44G2DQor44KI44Gt44KE44G+LOOBl+OCh+OBuOOBpA0KK+OBhOOBl+OChOOBvizjgZ/jgZHjgZcNCivjgYLjgbnjgYvjgo8s44G+44GV44G/DQor44GE44G+44KA44KJLOOBsuOBleOBruOCig0KK+OBhOOCj+OBquOBjCzjgZPjgYbjgZgNCivjgYbjgYjjgaAs44GL44Ga44GTDQor44G144GY44GL44KPLOOBguOBjeOCiQ0KK+OBn+OCgOOCiSzjgZHjgpPjgZgNCivjgYvjgZfjgYQs44G+44GV44Gu44KKDQor44KI44Gt44GgLOOBv+OBpOOBruOCig0KK+OCiOOBk+OBpCzjgY3jgojjgYvjgZoNCivjgYLjgZXjgYos44Gf44Gk44GKDQor44Gf44Gq44GLLOOBmOOCheOCk+OBmA0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgoTjgZfjgY0s44G/44Gu44KLDQor44GL44GE44GM44GELOOBiuOBleOCgA0KK+OBneOBjOOBuSzjga/jgZjjgoENCivjgbXjgovjgYvjgo8s44GZ44GZ44KADQor44GL44KP44GG44GhLOOBqOOBl+OBig0KK+OBteOBmOOBhCzjgb7jgZXjgYrjgb8NCivjgYTjgZHjga7jgoQs44KK44KF44G444GEDQor44GK44GhLOOBsuOBleOBig0KK+OBquOBi+OCguOBqCzjgozjgYTjgZgNCivjgo/jgYvjgbDjgoTjgZcs44GX44GS44KLDQor44GC44KJ44GNLOOBv+OBruOCiw0KK+OChOOBuSzjgY/jgavjgbLjgZMNCivjgZ/jgYvjga/jgZcs44KG44GN44GKDQor44GX44Gw44GuLOOCiOOBl+OBsuOBlQ0KK+OBn+OBjOOBl+OCiSzjgb7jgZXjgagNCivjgZnjgb/jgZ8s44G+44GV44GKDQor44GV44Go44GGLOOBguOBjeOBig0KK+OBoeOBrizjgobjgYbjgZgNCivjgoTjgb7jgaAs44GR44GE44GYDQor44GE44GM44KJ44GXLOOBn+OBoOOBvw0KK+OBhOOBkeOBjOOBvyzjgoTjgZnjgobjgY0NCivjgbXjgarjgaAs44Gf44GR44GXDQor44GE44Gu44GG44GILOOChuOBjeOBig0KK+OBq+OBl+OChOOBvizjgZHjgpPjgZgNCivjgYTjgZfjga/jgoks44KG44Gy44GhDQor44GZ44Ga44GNLOOBruOCiuOChuOBjQ0KK+OBk+OCguOCiuOChCzjgZ/jgaTjgYoNCivjgaHjgoXjgZQs44Gu44KK44GKDQor44GT44Gw44KE44GXLOOBquOBiuOBr+OCiw0KK+OBv+OChOOCguOBqCzjga/jgozjgYoNCivjgarjgYvjgZ8s44G144G/44GKDQor44GE44KK44Gf44GrLOOBsuOBp+OBig0KK+OBiuOBjOOCjyzjgoTjgZnjgbLjgo0NCivjgYrjga0s44G/44Gk44GKDQor44GT44G+44GkLOOBqOOBl+OBig0KK+OBv+OBruOCjyzjgabjgaTjgoQNCivjgbXjgZjjgYvjgo8s44GT44GG44GY44KNDQor44GL44KP44GQ44GhLOOBl+OBkuOBqA0KK+OBoeOBsCzjgoTjgZnjgbLjgo0NCivjgarjgYvjgavjgZcs44Gu44KK44KI44GXDQor44GV44GP44G+LOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOBvuOBlSzjgZ/jgYvjgobjgY0NCivjgZvjgY0s44Gf44GL44KI44GXDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBteOBmOOCguOBqCzjgajjgZfjgZ/jgYsNCivjgYrjgZDjgoos44Gf44GE44GhDQor44GE44GX44Gw44GXLOOBi+OBmuOBig0KK+OBguOBluOBvyzjgbLjgo3jgZcNCivjgYrjgYzjgZXjgo/jgoks44GK44GV44KADQor44GV44GE44Go44GGLOOBpOOBqOOCgA0KK+OBn+OBquOBuSzjgZ/jgYvjgobjgY0NCivjgoLjgorjgoTjgb4s44Gf44GP44GKDQor44GN44Gf44GW44KPLOOChuOBjeOBoQ0KK+OBi+OBquOBluOCjyzjgZHjgpPjgZgNCivjga/jgonjgaAs44G+44GV44GC44GNDQor44GK44GP44KE44G+LOOBsuOCjeOBlw0KK+OBl+OBv+OBmizjgarjgYrjgagNCivjgYTjga7jgb7jgZ8s44KE44GZ44Gy44KNDQor44G144KL44GV44KPLOOBqOOBl+OBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgZXjgaDjgYoNCivjgYrjga4s44Gy44Go44GXDQor44KC44KN44GK44GLLOOBqOOBl+OChuOBjQ0KK+OBl+OBruOBluOBjSzjgojjgbLjgaENCivjga7jgZDjgaEs44G144G/44GKDQor44GX44G+44GgLOOChOOBmeOBig0KK+OBi+OCj+OBleOBjSzjgZ/jgaTjgZgNCivjgYrjgYvjgo8s44GN44KI44GXDQor44GV44KB44GX44G+LOOBl+OBkuOCiw0KK+OBu+OBneOBmOOBvizjgarjgYrjgYTjgaENCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44GL44KP44Gq44G/LOOBkeOCk+OBmA0KK+OBj+OBleOBrizjgZfjgoXjgbjjgYQNCivjgaTjgaHjgZ8s44Gy44Gn44Go44GXDQor44GK44Gv44GXLOOBi+OBpOOBig0KK+OBruOBoCzjgb7jgZXjgagNCivjgo/jgZ/jgarjgbks44GV44Go44GXDQor44KI44GX44Gf44GRLOOBm+OBhOOBmA0KK+OBteOBj+OBl+OBvizjgobjgY3jgYoNCivjgYTjgo/jgoQs44Gb44GE44GNDQor44GV44GL44KC44GoLOOBl+OCjQ0KK+OBj+OBvOOBnyzjgaTjgajjgoANCivjgYTjgZ3jgoTjgb4s44GR44KT44GYDQor44GK44GuLOOBteOBv+OBguOBjQ0KK+OBguOBuSzjgZfjgZLjgYLjgY0NCivjgYrjgaDjgo/jgoks44GT44GG44GYDQor44GN44GG44GhLOOChuOBn+OBiw0KK+OBhOOBl+OBi+OCjyzjgb7jgZPjgagNCivjgojjgZfjgaAs44G+44GV44Gy44KNDQor44Gh44KD44Gw44Gf44GRLOOBi+OBmuOBsuOBkw0KK+OBleOBi+OBhCzjgajjgb/jgYoNCivjgYrjgZ8s44G+44GV44GC44GNDQor44Gq44GL44GuLOOBkeOBhOOBleOBjw0KK+OBr+OBoCzjgajjgoLjgYLjgY0NCivjgarjgYvjgoTjgb4s44GT44GG44GYDQor44GV44GL44GQ44GhLOOBv+OBjeOBig0KK+OBquOBjOOBl+OBvizjgbLjgZXjgYoNCivjgZXjgYzjgoks44KE44GZ44Gy44KNDQor44GL44KP44GuLOOBguOBjeOCiQ0KK+OBi+OBreOBkyzjgZ/jgYvjgYoNCivjgarjgYvjgaAs44KC44Go44Gv44KLDQor44GC44G+44GuLOOBl+OCh+OBmA0KK+OChOOBluOBjSzjgZPjgYbjgYTjgaENCivjgbLjgonjgY7jga4s44G/44Gk44GC44GNDQor44Gf44Gw44GfLOOBn+OBpOOBig0KK+OBj+OBq+OChuOBjSzjgb/jgaHjgYoNCivjgYrjgY/jgYbjgaEs44GR44KT44GYDQor44GZ44GO44KC44GoLOOBqOOBl+OBteOBvw0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgYoNCivjgZnjgY7jgZXjgY0s44G+44GV44G144G/DQor44KE44G+44GX44GfLOOCiOOBl+OBig0KK+OBruOCgOOCiSzjgojjgZgNCivjgZfjgb7jgaAs44G+44GV44G/DQor44G144GP44GgLOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgZjjgoXjgpPjgZgNCivjgYrjgY/jgbzjgoos44GR44KT44GYDQor44KI44GT44GL44KPLOOChOOBmeOBig0KK+OBp+OCk+OBoCzjgajjgZfjgbLjgo0NCivjgbXjgY/jgarjgYws44Gf44Gg44KI44GXDQor44Gf44GL44GX44G+LOOBhOOBleOBig0KK+OBi+OBqOOBhizjgb/jgaTjgosNCivjgYTjgZfjgZDjgo0s44Gf44GL44GXDQor44GE44GR44G5LOOBl+OCheOBmA0KK+OBiuOBpOOBiyzjgYvjgZrjgYoNCivjgZfjgb/jgZos44GE44Gh44GKDQor44GZ44Ga44GNLOOChOOBmeOBsuOCjQ0KK+OBpOOChCzjgbLjgo3jga7jgooNCivjgYbjgaHjgaAs44Gy44Gn44GYDQor44GK44GhLOOCiuOCh+OBmA0KK+OBguOCiuOBjCzjgo/jgZ/jgosNCivjgarjgYvjgZfjgb4s44Gf44GL44Gm44KLDQor44G+44GV44GNLOOBi+OBmuOBvw0KK+OBquOBi+OBl+OBvizjgb/jgaTjgosNCivjgYLjgZXjga/jgoks44GL44Ga44Gu44KKDQor44GU44GoLOOBsuOBp+OBig0KK+OBhuOBiOOBvuOBpCzjgbLjgo3jgZcNCivjgZXjgY3jgoLjgoos44G+44GV44G/DQor44KI44GX44GgLOOBjeOCiOOBlw0KK+OBteOBmOOBnyzjgZnjgZnjgoANCivjgoTjgY7jgZfjgZ8s44G/44Gk44GODQor44KA44KN44G144GXLOOBpuOBpOOBig0KK+OBi+OCgeOBoCzjgYLjgY3jga7jgooNCivjgYTjgYvjgo8s44GP44Gr44KG44GNDQor44KE44G+44GW44GNLOOBmeOBmeOCgA0KK+OBpOOCi+OBr+OBlyzjgojjgZfjga7jgooNCivjgb/jga7jgZfjgb4s44Gf44GL44GKDQor44GN44GX44KC44GoLOOBvuOBk+OBqA0KK+OBn+OBkeOBl+OBnyzjgb7jgZXjgZ/jgYsNCivjgarjgYvjgZ8s44GR44KT44GE44GhDQor44GI44KT44GpLOOBn+OBkeOBlw0KK+OCguOCiuOChCzjgYvjgaTjgZgNCivjgY/jgbzjgZ8s44G+44Gk44G/DQor44Gq44GK44Gv44KJLOOBvuOBleOBig0KK+OBj+OBkizjgb7jgZXjgojjgZcNCivjgYvjgZXjga4s44Gy44GV44GKDQor44GE44GE44KA44KJLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgojjgZfjgYLjgY0NCivjgYrjgZ8s44Gk44Go44KADQor44Gf44GR44GTLOOChOOBmeOCiOOBlw0KK+OCgOOCieOBk+OBlyzjgajjgZfjgYoNCivjgojjgZfjgaAs44G+44GV44Gy44KNDQor44GC44GV44GuLOOBiOOBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgbLjgo3jgZ/jgaANCivjga/jgoTjgZcs44Gy44KN44GXDQor44GZ44Ga44GNLOOBvuOBk+OBqA0KK+OBiuOBoCzjga7jgorjgYoNCivjgoTjgb7jgYbjgaEs44G+44GT44GoDQor44GL44KP44GL44G/LOOBvuOBleOBlw0KK+OBhuOBmeOBoCzjgZfjgpPjgYTjgaENCivjgZXjgajjgYYs44GN44KI44GXDQor44GP44KJ44GX44G+LOOBkeOBhOOCgeOBhA0KK+OBvuOBmyzjgZnjgb/jgYoNCivjgZPjga4s44Gy44KN44GXDQor44G+44Gk44GW44KPLOOBkeOCk+OBmA0KK+OBl+OBvuOBoCzjgb7jgZXjga/jgosNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44GK44GP44G8LOOBkeOBq+OBpA0KK+OBiuOBkOOCiSzjgb7jgZXjgobjgY0NCivjgZXjgY/jgb4s44Gy44KN44G144G/DQor44Gu44GQ44GhLOOBqOOBl+OBig0KK+OBsuOBquOBnyzjgZHjgpPjgZgNCivjgbXjgZjjgYQs44KI44GX44GC44GNDQor44GZ44GO44KC44GoLOOBvuOBleOBqOOBlw0KK+OBpOOBi+OBr+OCiSzjgabjgaTjgo0NCivjgb/jgaTjgarjgYws44Gf44Gk44KEDQor44Gq44GL44KA44KJLOOCiuOCh+OBsuOBoQ0KK+OChOOBmOOBvizjgY3jgojjgZcNCivjgYvjgb/jgZ8s44Gk44Gt44GKDQor44Gy44GMLOOBk+OBhuOBmA0KK+OBv+OBquOBjOOCjyzjgZfjgpPjgYTjgaENCivjgajjgb8s44GX44KT44GYDQor44GV44GL44GN44Gw44KJLOOBruOBvOOCiw0KK+OBi+OBj+OBnyzjgbLjgo3jgZcNCivjgaTjgaHjgoQs44GC44GN44KJDQor44KA44KJ44GfLOOBl+OCheOBsuOBoQ0KK+OBn+OBquOBuSzjgojjgZfjga7jgooNCivjgZfjgoLjgaAs44GR44KT44GYDQor44Gk44GL44KC44GoLOOBi+OBmuOBruOCig0KK+OBr+OBquOBr+OBnyzjgYjjgYTjgZgNCivjgYvjgpPjgaAs44Gy44KN44Gu44KKDQor44GL44KP44GgLOOBk+OBhuOBhOOBoQ0KK+OCiOOBl+OBhCzjgZfjgoXjgavjgaENCivjgY/jgonjgoQs44G+44GV44GXDQor44Gm44KJ44GX44G+LOOBlOOCjQ0KK+OBjeOBn+OBjOOCjyzjgb7jgZXjgYLjgY0NCivjgYTjgacs44G+44GV44KI44GXDQor44Gk44KLLOOBn+OBkeOBlw0KK+OBhuOBpOOBruOBv+OChCzjgZnjgZnjgoANCivjgarjgYvjgZbjgo8s44GY44KF44KT44GNDQor44Gy44GgLOOCiOOBl+OBpuOCiw0KK+OBu+OBneOBi+OCjyzjgZ/jgYvjgYoNCivjgaHjgZDjgZUs44Gy44KN44GXDQor44Gd44Gy44KDLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgbLjgafjgobjgY0NCivjgZXjgYvjgaYs44GR44KTDQor44GC44KP44GfLOOBguOBjeOCiQ0KK+OCj+OBi+OBsOOChOOBlyzjgojjgZfjga7jgooNCivjgYjjgpPjgZjjgoXjgZgs44GP44KJ44GYDQor44Gu44GQ44GhLOOBsuOBp+OBig0KK+OBi+OCj+OCgOOCiSzjgZfjgpPjgZgNCivjgoLjgorjgoLjgags44KG44GN44GKDQor44KI44Gt44Gv44GqLOOBpOOBreOBig0KK+OBmOOBoCzjgY3jgbjjgYQNCivjgYbjgYjjgaAs44Gy44Gn44KG44GNDQor44GX44Gu44Gv44KJLOOCiOOBl+OBig0KK+OBn+OBi+OChOOBvizjgajjgZfjgbLjgo0NCivjgoTjgb7jgoDjgo0s44Gy44GV44GKDQor44KP44GNLOOBqOOBl+OBi+OBmg0KK+OBguOBvuOBrizjgb7jgZXjgbLjgagNCivjgbvjgZ3jgYvjgo8s44KI44GX44Gu44G2DQor44Go44GULOOBsuOBp+OBmA0KK+OBquOBiyzjgZvjgYTjgZgNCivjga7jgaAs44Gy44KN44G/DQor44KE44G+44GX44GfLOOBk+OBuOOBhA0KK+OBquOBi+OBmOOBvizjgbXjgb/jgYoNCivjgarjgYzjgYrjgYss44GX44GS44KLDQor44GX44G244KELOOBi+OBmuOBsuOBkw0KK+OBm+OCiuOBluOCjyzjgb7jgZPjgagNCivjgbXjgZjjgoLjgoos44GT44GG44GE44GhDQor44G144GP44GgLOOBvuOBleOBig0KK+OBteOBmOOBnyzjgb/jgY3jgYoNCivjgoTjgb7jgZgs44Gf44Gg44Gy44KNDQor44GT44Gw44KE44GXLOOBguOBjeOBig0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZfjgZfjgY/jgoks44GE44GV44KADQor44GT44GQ44KMLOOBvuOBleOBi+OBmg0KK+OCguOCiizjgb7jgZXjga7jgbYNCivjgarjgYvjgoDjgoks44GY44KF44KT44GTDQor44GE44GE44GY44G+LOOBvuOBpOOBig0KK+OBjeOBn+OBjOOCjyzjgajjgZfjgYoNCivjgZ/jgoDjgoks44Gy44KN44Gy44GVDQor44Gq44GM44GX44G+LOOBqOOBv+OBig0KK+OBiOOBruOBjSzjgZ/jgYvjga7jgooNCivjgZXjgajjgYYs44Gh44GI44GTDQor44G+44Gk44KC44GoLOOBsuOCjeOBlw0KK+OBhuOBiOOBoCzjgZPjgYbjgZgNCivjgb/jgZrjgZ/jgass44KI44GX44GL44GaDQor44GY44KF44GuLOOBk+OBng0KK+OBguOBi+OBlyzjgZvjgYTjgZgNCivjgarjgYvjgoLjgags44Gf44Gk44Gy44KNDQor44Gq44GL44KE44G+LOOBn+OBi+OBsuOBlQ0KK+OBteOBmOOBhCzjgbLjgafjgYLjgY0NCivjgarjgYvjgoTjgb4s44GE44Ga44G/DQor44KI44Gt44G/44GkLOOBjeOCiOOBlw0KK+OBn+OBi+OBmyzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44G+44GV44Gv44KLDQor44G144GL44GW44KPLOOCiOOBsuOBoQ0KK+OBi+OBkuOBhuOCiSzjga7jgorjgZ/jgYsNCivjgZfjgpPjgaks44Gu44KK44KG44GNDQor44GX44G/44GaLOOCiOOBl+OBpuOCiw0KK+OBleOBi+OBl+OBnyzjgZ/jgaDjgojjgZcNCivjgb/jgoTjgoDjgoks44KE44GZ44GIDQor44Gf44Gq44GLLOOBhOOBmuOBvw0KK+OBn+OBi+OBhOOBlyzjgojjgZfjga7jgbYNCivjgYTjgZfjgYzjgY0s44KI44GX44GKDQor44Gf44GL44GgLOOBsuOCjeOBig0KK+OBn+OBpuOBhOOBlyzjgYLjgY3jgokNCivjgZXjgYvjgZ8s44Go44GP44KI44GXDQor44KI44GT44Gv44GfLOOBn+OBpOOBig0KK+OBj+OChCzjgYrjgZXjgoANCivjgojjgZfjgaAs44Gy44KN44Gu44G2DQor44GN44Gf44GgLOOChOOBmeOBsuOCjQ0KK+OCiOOBl+OBoCzjgZfjgofjgbLjgaENCivjgZPjgbDjgoTjgZcs44Gm44Gk44GKDQor44Gq44KK44GfLOOBqOOBl+OBig0KK+OBhOOBrOOBhCzjgbLjgajjgZcNCivjgoTjgZnjgYvjgo8s44Go44GX44Gu44G2DQor44Gu44GQ44GhLOOBvuOBleOBvw0KK+OBl+OCh+OBoCzjgYvjgaTjgZgNCivjgoTjgb7jgaAs44Gf44Gk44G/DQor44KP44GP44GgLOOCiOOBl+OBrg0KK+OBguOBuSzjgajjgYrjgosNCivjgZ/jgZHjgYvjgo8s44G+44GV44Go44GXDQor44GV44Go44GGLOOBmeOBmeOCgA0KK+OBr+OBquOBiuOBiyzjgZHjgpPjgZgNCivjgYrjga4s44KI44GX44GL44GaDQor44Gf44Gq44GLLOOBi+OBmuOBquOBiw0KK+OBpOOBruOBoCzjgbLjgafjgYoNCivjgarjgb7jgYgs44Go44GX44Gy44GTDQor44Gf44GL44Gv44GXLOOBn+OCguOBpA0KK+OBquOBi+OBmOOBvizjgb7jgZXjgbLjgacNCivjgarjgYvjgoDjgoks44Gv44KL44GKDQor44GG44KK44GGLOOBl+OCk+OBmOOCjQ0KK+OBteOBmOOBhOOCjyzjgYvjgZrjgb8NCivjgZXjgZXjgY0s44G/44Gk44KI44GXDQor44GN44KA44KJLOOBvuOBleOCiOOBlw0KK+OBn+OBi+OBjizjgbXjgb/jgYoNCivjgYvjgZ/jgoTjgb4s44GZ44Gq44GKDQor44GE44GQ44GhLOOBhOOBoeOBng0KK+OBguOBuSzjgabjgovjgbLjgZUNCivjgZnjgZrjgY0s44Gk44Go44KADQor44Gy44KJLOOBleOBoOOBsuOCjQ0KK+OBquOBlOOBlyzjgZ/jgYvjgYoNCivjgYLjgaDjgaEs44Gy44Gn44GNDQor44KA44KJ44KE44G+LOOCiOOBl+OBig0KK+OBj+OBq+OBi+OBnyzjgbLjgafjgYoNCivjgb7jgaTjgYQs44GR44KT44GeDQor44GT44GE44GnLOOBguOBjeOBig0KK+OBsuOCjeOBnyzjgZHjgpPjgZgNCivjgajjgb/jgarjgYss44Gf44Gg44Gy44GVDQor44KP44GN44GfLOOBl+OBkuOCiw0KK+OBhuOCgeOCgOOCiSzjgY3jgb/jgZMNCivjgbXjgZEs44Gv44KL44Gf44GRDQor44GG44GI44G+44GkLOOBteOBv+OBsuOBkw0KK+OBvuOBpOOBluOBjSzjgZ/jgYvjgZcNCivjgarjgYvjga4s44KG44Gf44GLDQor44GT44Gg44GLLOOBl+OCheOBsuOBoQ0KK+OBsuOCjeOBn+OBqyzjgbLjgo3jgagNCivjgZ/jgYvjga/jgZcs44GK44GV44KADQor44GV44GuLOOBpuOCi+OBig0KK+OBl+OBv+OBmizjgZ/jgYvjgbLjgo0NCivjgYvjgpPjgZbjgY0s44GL44Ga44Gy44KNDQor44GK44GV44GPLOOBsuOBp+OBguOBjQ0KK+OCj+OBl+OBoCzjgZHjgpPjgZgNCivjgY/jgavjgoLjgags44G+44KC44KLDQor44GX44KN44GL44KPLOOBmeOBmeOCgA0KK+OBi+OCj+OBr+OCiSzjgb7jgZPjgagNCivjgYrjgYss44G/44Gk44GKDQor44GT44KC44KKLOOBsuOCjeOChOOBmQ0KK+OBr+OChOOBlyzjgojjgZfjgYoNCivjgYvjga3jgZMs44G144GY44GKDQor44GL44Gp44GE44GRLOOBl+OCh+OBmA0KK+OBiuOBi+OCgOOCiSzjgojjgbLjgaENCivjgYrjgYvjgoDjgo0s44GL44Gk44G/DQor44Gf44G244GhLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgaTjgoLjgosNCivjgYrjgZUs44Gf44GR44GKDQor44GE44KK44GILOOBkeOCk+OBmA0KK+OBn+OBi+OBryzjgZPjgYbjgYTjgaENCivjgZ/jgYTjgoks44GY44KF44Gr44Gh44KNDQor44G/44Gq44G/LOOCiOOBl+OBi+OBmg0KK+OBhOOBkeOBoCzjgabjgovjgojjgZcNCivjgYLjgYrjgY0s44GL44Ga44GKDQor44KE44G+44GG44GhLOOBvuOBleOBsuOBpw0KK+OCiOOBl+OBr+OCiSzjgoTjgZnjgb7jgZUNCivjgZXjgZXjgY0s44G+44GT44GoDQor44G/44Ga44Gf44GrLOOBkeOCk+OBhOOBoQ0KK+OBsuOCieOBrizjgaTjga3jgYvjgZoNCivjgarjgYzjgZ8s44KI44GX44GC44GNDQor44GL44Gf44KE44G+LOOBl+OBkuOBguOBjQ0KK+OBiuOBoCzjgYTjgY/jgYoNCivjgYjjga7jgoLjgags44Gq44GK44G/44GhDQor44Gf44GR44Gq44GLLOOBmOOCheOBq+OBoQ0KK+OBvuOBpOOBluOBjSzjgZjjgoXjgavjgaHjgo0NCivjgb7jgaTjgbDjgoks44Gq44GK44GTDQor44KE44G+44GX44GfLOOBguOBjeOBruOCig0KK+OCgeOBkOOCjSzjgZ/jgYvjgZcNCivjgYrjgZbjgY0s44GX44KT44GE44Gh44KN44GGDQor44GK44GM44G/LOOBi+OBmuOBsuOBkw0KK+OBiuOBvuOBiCzjga/jgovjgYoNCivjgY3jgaAs44KE44GZ44G+44GVDQor44GG44GI44GuLOOBl+OBkuOCiw0KK+OBiuOBi+OBoCzjgbXjgb/jgYoNCivjgYvjgarjgZXjgY0s44GY44KH44GYDQor44KE44GL44G5LOOBvuOBleOBteOBvw0KK+OBquOCgOOCiSzjgYLjgY3jgbLjgagNCivjgYTjgYTjgZjjgb4s44Go44GX44GE44GhDQor44GV44GV44GNLOOBi+OBpOOChuOBjQ0KK+OCguOBoeOBmuOBjSzjgYLjgY3jgokNCivjgbbjgpPjgoQs44GR44GEDQor44GK44GL44GuLOOCiuOCh+OBmA0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgY0NCivjgYbjgYjjga4s44GV44GL44GIDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBi+OCj+OBkOOBoSzjgZPjgYbjgZgNCivjgZ/jgY3jgoLjgags44Gb44Gk44GTDQor44GL44Gf44GK44GLLOOBsuOCjeOCiOOBlw0KK+OBj+OBleOBi+OCjyzjgbLjgafjgobjgY0NCivjgYLjgZXjgYQs44GT44GG44GE44GhDQor44KC44KKLOOBl+OCk+OBhOOBoQ0KK+OBj+OBvCzjgYvjgpPjgZgNCivjgYLjgpPjganjgYYs44GK44GV44KADQor44GG44KJ44KE44G+LOOBi+OBpOOChuOBjQ0KK+OBj+OCiuOBnyzjgajjgb/jgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GL44Gt44GL44KPLOOChuOBv+OBkw0KK+OBhuOBiOOCguOBqCzjgoLjgajjgYLjgY0NCivjgarjgYvjgYos44Gu44G244KG44GNDQor44GK44GL44KC44GoLOOCiOOBl+OBruOBtg0KK+OBq+OBl+OCgOOCiSzjgajjgZfjgYoNCivjgoTjgaAs44KE44GZ44GKDQor44GN44GpLOOBleOBqOOBlw0KK+OBiuOBi+OBsOOChOOBlyzjgajjgYrjgosNCivjgYvjgo/jgZfjgb4s44Gy44Gn44GoDQor44Gv44GX44GNLOOBv+OBpOOBr+OCiw0KK+OBv+OChOOCguOBqCzjgb7jgZXjga7jgooNCivjgarjgYvjgYos44GX44GS44KLDQor44G+44Gk44GK44GLLOOBquOBiuOBjQ0KK+OBsuOBs+OBrizjgbLjgajjgZcNCivjgavjgZfjgYvjgo8s44GI44GE44GE44GhDQor44GL44G244GfLOOCiOOBl+OBj+OBqw0KK+OCj+OBn+OBquOBuSzjgYTjgaHjgo3jgYYNCivjgoTjgb7jga4s44GK44GV44KADQor44GV44GE44Go44GGLOOCiOOBl+OBig0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgY/jgo/jga/jgoks44Gy44Gn44GKDQor44KC44KK44GfLOOCiuOCh+OBng0KK+OBteOBmOOBhCzjgZHjgpPjgYTjgaENCivjgarjgYzjgZfjgb4s44Gv44KL44GKDQor44GE44Gq44KA44KJLOOBjeOCiOOBlw0KK+OBiuOBluOCjyzjgYvjgZrjgYrjgb8NCivjgZ/jgY3jgoLjgags44GK44GV44KADQor44G/44KE44GX44GfLOOBv+OBpOOBsuOCjQ0KK+OCguOBhuOCiizjgZjjgoXjgpPjgZ4NCivjgYTjga7jgYbjgYgs44Gf44GL44G/44GhDQor44Gq44GM44GuLOOBhOOBoeOCjeOBhg0KK+OBr+OCieOBqCzjgZ/jgYvjgbLjgZMNCivjgb7jgb/jgoQs44KG44GN44GKDQor44Gy44GM44GX44Gw44GfLOOBsuOCjeOBvw0KK+OBq+OBl+OBn+OBqyzjgYvjgYrjgosNCivjgZ/jgYvjgY8s44GR44KT44GYDQor44Gv44Gq44GgLOOBjeOCiOOBlw0KK+OBguOBleOBrizjgZPjgYbjgYTjgaENCivjgbDjgbAs44GX44GS44G/44GkDQor44GE44Go44GGLOOChuOBhuOBmA0KK+OBhOOBhOOBoCzjgZXjgajjgZcNCivjgZPjga/jgoTjgYvjgo8s44Go44GX44Gy44KNDQor44G144GY44KP44KJLOOBmeOBv+OCiOOBlw0KK+OBl+OCheOBj+OCiizjgaTjga3jgobjgY0NCivjgobjgZ/jgass44G+44GV44Gy44KNDQor44KA44Gt44GL44KPLOOBsuOBqOOBlw0KK+OBi+OCk+OBrizjgY/jgavjgYoNCivjgavjgags44Gy44GV44GXDQor44Gf44KA44KJLOOBvuOBleOChuOBjQ0KK+OBquOBi+OBl+OBvizjgb/jgaTjgYoNCivjgYrjgZ8s44KC44Go44GC44GNDQor44GE44Gu44GG44GILOOCiOOBl+OBig0KK+OBj+OBvuOBvuOCiyzjgajjgZfjgYvjgZoNCivjgZ/jgarjgYss44Gy44Gn44GKDQor44G+44GI44GgLOOBleOBqOOBlw0KK+OBguOBvyzjga7jgbbjgobjgY0NCivjgb/jgarjgags44G/44Gu44KLDQor44Gr44GX44GgLOOBv+OBoeOBig0KK+OBhOOBl+OBr+OCiSzjgbLjgo3jgZcNCivjgarjgYvjgZfjgb4s44GX44KT44GN44GhDQor44GE44GP44GfLOOBkeOCk+OBlw0KK+OBiuOBjSzjgZ/jgZHjgbLjgZMNCivjgYvjgYzjgo8s44GL44Gk44G/DQor44Gy44KJ44GL44KPLOOChOOBmeOBsuOBkw0KK+OChOOBvuOBluOBjSzjgZHjgpMNCivjgY/jgb7jgYzjgYQs44GE44GP44GTDQor44Gf44GX44KNLOOBvuOBleOBsuOCjQ0KK+OBleOBrizjgYvjgaTjgb8NCivjgb/jganjgorjgYvjgo8s44KI44GX44GC44GNDQor44Gq44GL44KA44KJLOOBleOBqOOBlw0KK+OCiOOBl+OBvyzjgaHjgYvjgZMNCivjgYTjgarjgb8s44KI44GX44GTDQor44KP44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OBk+OBjCzjgZfjgZLjgosNCivjgZnjgYzjgo/jgoks44G+44GV44GC44GNDQor44Gf44GR44GG44GhLOOBruOBtuOBig0KK+OBiOOBoCzjgYLjgY3jgokNCivjgYLjgpPjganjgYYs44GL44Ga44GKDQor44Gf44KL44GELOOBleOBtuOCjQ0KK+OBlOOBqCzjgajjgZfjgYoNCivjgZfjgoLjgYzjgY0s44KE44GZ44Gy44GVDQor44Gq44GM44GfLOOBn+OBoOOBig0KK+OBu+OBl+OBi+OCjyzjgZfjgoXjgbLjgaHjgo0NCivjgZPjgb/jgarjgb8s44Go44GX44GKDQor44GL44GMLOOBqOOBl+OBruOCig0KK+OBr+OBnOOBi+OCjyzjgZPjgYbjgZjjgo0NCivjgaHjgbAs44G/44Gk44GX44GSDQor44GG44KJ44GuLOOBsuOBp+OBvuOBlQ0KK+OBk+OBrizjgbXjgb/jgbLjgZMNCivjgZPjgbDjgoTjgZcs44G+44GV44Gu44KKDQor44KC44KC44GbLOOBsuOCjeOBkw0KK+OBpOOBkizjgbLjgafjgagNCivjgoTjgZnjgZPjgaEs44GN44KI44GXDQor44G744Gd44GW44KPLOOBqOOCguOBsuOBpw0KK+OBmeOBjuOChOOBvizjgoTjgZnjgbLjgo0NCivjgYLjgbks44KI44Gy44GhDQor44Gf44Gq44GLLOOCiOOBl+OCjQ0KK+OBm+OBhOOBkSzjgbLjgo3jgYoNCivjgaTjgZIs44KG44Gf44GLDQor44KP44GL44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBiuOBj+OBvCzjgZfjgZLjgosNCivjgYrjgYvjgbks44KG44GN44GKDQor44GE44KP44GELOOBmOOCheOBq+OBoQ0KK+OBn+OBquOBiyzjgb7jgZXjgYoNCivjgoTjgb7jgoLjgags44KIDQor44Gf44GL44KE44G+LOOBruOBtuOBig0KK+OBn+OBmOOBvizjgZfjgZrjgYsNCivjgYvjgZrjgZfjgo0s44GV44Go44GXDQor44GT44GE44GnLOOBqOOBl+OBjQ0KK+OBi+OCgizjgYvjgZrjgojjgZcNCivjgY3jgZ/jgZjjgb4s44KG44GG44GTDQor44Gv44G+44GuLOOBmOOCheOCk+OBmA0KK+OBhOOBhOOChOOBvizjgoTjgZnjgZ/jgYsNCivjgoTjgb7jgZfjgZ8s44GX44KH44Gy44GhDQor44GN44GfLOOBi+OBpOOChuOBjQ0KK+OBhOOBl+OBn+OBqyzjgZ/jgZHjgobjgY0NCivjgY/jgZjjgoEs44Gu44G244KG44GNDQor44GN44GX44GL44KPLOOChOOBmeOBsuOCjQ0KK+OBquOBjOOBrizjgb7jgZXjga7jgbYNCivjgojjgoDjgoks44GC44GN44GKDQor44Gq44GL44GX44G+LOOBn+OBi+OBig0KK+OCguOCiizjgbXjgb/jgYoNCivjgoTjgb7jgZgs44Gy44GV44GKDQor44GK44Gc44GNLOOBpuOCi+OChuOBjQ0KK+OBhOOBquOBoCzjgb/jgaTjgYoNCivjga/jgoTjgZss44Gq44GK44GNDQor44G744KT44G9LOOBsuOBp+OBruOCig0KK+OBiuOBsuOCgyzjgb7jgZXjga/jgosNCivjgY3jgZ/jgoDjgoks44Gf44GL44GXDQor44Go44GX44KTLOOBn+OBpOOBruOCig0KK+OBn+OBkeOBhCzjgojjgZfjgobjgY0NCivjgYrjgYvjgoTjgb4s44GX44GS44KLDQor44GE44GX44Ga44GLLOOBqOOBl+OChuOBjQ0KK+OBr+OBnyzjgZfjgofjgbLjgaENCivjgZnjgYzjga/jgoks44GX44GS44KG44GNDQor44GE44KP44G/LOOBleOBqOOBlw0KK+OChuOCguOBqCzjgZXjgaDjgYoNCivjgY3jgZ/jgYzjgo8s44GL44Ga44GKDQor44GE44Gv44KJLOOBvuOBleOBsuOCjQ0KK+OBruOCgOOCiSzjgZ/jgaDjga7jgooNCivjgb/jgoTjgZXjgYss44Go44GX44KG44GNDQor44KI44GX44GgLOOBiOOBhOOBmA0KK+OBteOBi+OBoCzjgojjgZfjgYvjgZoNCivjgbXjgZjjgo/jgoks44G+44GV44Gf44GLDQor44GN44GoLOOChOOBmeOBlw0KK+OBhuOBiOOCguOCiizjgZ/jgYvjgZcNCivjgoTjgb7jgYvjgo8s44GZ44GZ44KADQor44GP44KN44GgLOOBi+OCk+OBmA0KK+OBiuOBpOOBiyzjgZ/jgYvjgZcNCivjgYbjgYjjgaAs44GV44Go44GK44KLDQor44Gd44GuLOOChOOBmeOBteOBvw0KK+OBmOOCh+OBoOOBhCzjga7jgbbjgYoNCivjgZfjgpPjgZ4s44GT44GG44Gf44KN44GGDQor44GG44GI44GgLOOBqOOBl+OBguOBjQ0KK+OCj+OBi+OBv+OChCzjgobjgYbjgZgNCivjgYvjgoDjgoks44KE44GZ44GKDQor44G144KL44Gf44GrLOOBsuOBp+OBig0KK+OBi+OBpOOBhuOCiSzjgobjgZ/jgYsNCivjgY/jgb7jgYQs44KG44GeDQor44Gw44GwLOOBhOOBoeOCjeOBhg0KK+OBi+OBreOBqOOCgizjgZHjgpPjgZgNCivjgoDjgonjga/jgZcs44Go44KC44KI44GXDQor44Gp44GELOOBn+OBi+OBlw0KK+OBquOBv+OBi+OCjyzjgYvjgZrjgb/jgaQNCivjgZ/jgYvjgYrjgYss44Go44GX44GC44GNDQor44G+44Gk44KC44GoLOOBhOOBleOBig0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgb8NCivjgZ/jgaAs44G/44Gh44KNDQor44GC44KK44G+LOOBsuOCjeOBlw0KK+OBquOBjOOBrizjgobjgYbjgZgNCivjgoTjga4s44G/44GN44GKDQor44GE44GV44GLLOOBqOOCguOBv+OBoQ0KK+OBhOOBqOOBhizjgbLjgo3jgYvjgZoNCivjgoTjgb7jgZbjgY0s44KG44Gf44GLDQor44GP44GuLOOBi+OBmuOBvw0KK+OBl+OBsCzjgbXjgb/jgaTjgZANCivjgY3jgoDjgoks44Gf44GL44G+44GVDQor44GZ44G/44GgLOOBi+OBpOOBvw0KK+OCguOBqOOBjOOBhOOBqCzjgZvjgYTjgZgNCivjgavjgo8s44Gv44KL44Gk44GQDQor44Gf44GR44GG44GhLOOBn+OBpOOBvw0KK+OBn+OCgOOCiSzjgajjgYrjgosNCivjgbzjgZ8s44Gf44GL44GXDQor44GL44Gp44KELOOBl+OBkuOBr+OCiw0KK+OBr+OCieOBoCzjgZHjgpPjgZgNCivjgb/jgaTjgYTjgZcs44KK44KF44Gy44Gh44KNDQor44GE44Gu44GG44GILOOCiOOBng0KK+OCgOOCieOBr+OBlyzjgb7jgZXjgbLjgo0NCivjgavjgZfjgYvjgo8s44KI44GX44Gm44KLDQor44G+44GZ44GgLOOBqOOBl+OBruOCig0KK+OBiuOBnyzjgabjgovjgobjgY0NCivjgbXjgY/jgYQs44KG44GN44Gy44KNDQor44GL44GS44KE44G+LOOBqOOBj+OBhOOBoQ0KK+OBquOBjOOBpOOBiyzjgZnjgb/jgYoNCivjgY/jgZXjga4s44GL44Ga44GKDQor44GT44GY44G+LOOBkeOCk+OBmA0KK+OBj+OCieOBnyzjgYLjgY3jgokNCivjgZ/jgZHjgYbjgaEs44GL44Ga44GKDQor44GE44GR44GgLOOBsuOCjeOBi+OBmg0KK+OBn+OBi+OBrizjgZfjgZLjgZMNCivjgY/jgonjgoQs44KG44GG44GYDQor44GK44GuLOOBi+OBmuOCiOOBlw0KK+OBquOBi+OBoCzjgZHjgYTjgZnjgZENCivjgajjgY/jgoLjgags44KG44GUDQor44GK44Gv44GXLOOCiOOBl+OBruOBtg0KK+OChOOBvuOBoCzjgbLjgo3jgZcNCivjga/jgpPjgaAs44GR44GE44GZ44GRDQor44GE44GX44Gv44KJLOOBvuOBk+OBqA0KK+OCiOOBl+OBr+OCiSzjgZfjgpPjgYTjgaENCivjgZ/jgabjgYTjgZcs44GT44GG44GYDQor44GE44Go44GGLOOBj+OBq+OBig0KK+OBleOBqOOBhizjgb7jgZXjgYoNCivjgYrjgY/jgoks44GR44KT44GYDQor44Gq44GL44GZ44GYLOOBn+OBoOOChuOBjQ0KK+OBn+OBhOOCiSzjgZfjgZLjgYoNCivjgY3jgbLjgoks44Gy44KN44KG44GNDQor44Gq44GL44GY44G+LOOBn+OBoOOBlw0KK+OChOOBvuOBluOBjSzjgZHjgpPjgYTjgaHjgo0NCivjgajjgbPjgZ8s44GC44Gk44GKDQor44Gq44GL44GW44KPLOOChuOBn+OBiw0KK+OBq+OBl+OBr+OCiSzjgZfjgpPjgYTjgaENCivjgoHjgZDjgo0s44Gk44Go44KADQor44G+44KL44KE44G+LOOBmOOCheOCk+OBng0KK+OBjeOBj+OBoSzjgZ/jgYvjgYLjgY0NCivjgYLjgYrjgY0s44Go44GX44G144G/DQor44GN44Gj44Gf44GLLOOBguOBjeOCiQ0KK+OChOOBmeOBhCzjgabjgaTjgYoNCivjgYTjgaHjgb7jgoss44Gb44GE44GYDQor44KE44G+44GW44GNLOOBleOBqOOBlw0KK+OBmeOBjOOBr+OCiSzjgajjgZfjgbLjgZMNCivjgajjgb/jgarjgYws44GX44G144G/DQor44Gh44GO44KKLOOBn+OBi+OBig0KK+OBiuOBsCzjgZfjgofjgZjjgo0NCivjgb7jgaTjgYQs44KI44Gy44GhDQor44Gy44KJ44KE44G+LOOBsuOCjeOBlw0KK+OChOOBvuOCgOOCiSzjga/jgovjgbLjgZMNCivjgYrjgacs44Gy44Gn44Gk44GtDQor44KI44GX44Gq44GMLOOBqOOBjeOBig0KK+OBk+OBmOOBvizjgYLjgY3jgokNCivjgajjgb/jgarjgYws44Gv44KL44GKDQor44GV44GMLOOBi+OBmuOBig0KK+OBr+OCiSzjgZjjgoXjgpPjgZgNCivjgajjgb/jgojjgZcs44GT44GeDQor44KI44GX44GgLOOBsuOBleOBruOCig0KK+OBsuOCieOBsOOChOOBlyzjgojjgZfjgb8NCivjgb7jgaTjgaks44Gf44G/44GKDQor44GE44G+44G144GPLOOChuOBjeOBkw0KK+OBjeOCiOOBmyzjgojjgZfjgYLjgY0NCivjga/jgarjgbbjgZUs44Go44GX44KG44GNDQor44Gh44GwLOOBmOOCheOBq+OBoQ0KK+OChOOBvuOBluOBjSzjgojjgZfjgbLjgZMNCivjgarjgYvjga/jgoks44GI44GE44GY44KNDQor44GK44GuLOOChuOCiuOBkw0KK+OBhuOBiOOBvuOBpCzjgbXjgY/jgb8NCivjgYLjgY3jgoTjgb4s44G+44GV44Gy44KNDQor44Go44Gf44GrLOOBv+OBpOOBruOBtg0KK+OCiOOBreOBoCzjgb7jgZXjgb8NCivjgbXjgovjgY/jgZUs44Gh44GL44GIDQor44Gy44KN44KELOOBn+OBkeOBruOCig0KK+OCiOOBl+OBoCzjgaHjgYjjgZMNCivjgYvjga3jgZMs44Gm44Gk44KEDQor44Gq44GM44GfLOOChuOBhuOBmOOCjQ0KK+OBhOOBuSzjgZ/jgYvjgZcNCivjgZvjgY3jga0s44Gd44Gu44GIDQor44GK44GL44GgLOOBsuOCjeOBi+OBmg0KK+OBi+OBquOBhCzjgbLjgafjgYoNCivjgZXjgajjgYYs44KG44GXDQor44GV44GL44GN44Gw44KJLOOBl+OCk+OChA0KK+OBhOOBvuOBhCzjgZnjgZnjgoANCivjgbLjgoHjgZgs44Go44GX44Gu44KKDQor44GK44GO44Gv44KJLOOCiuOCheOBmA0KK+OBn+OBkeOCgOOCiSzjgZHjgpPjgZgNCivjgajjgbLjgoPjgb4s44GT44G444GEDQor44GN44Gf44Gv44KJLOOBi+OCiOOBkw0KK+OBiuOBleOBiyzjgb7jgZXjgYLjgY0NCivjgYrjgZPjgaEs44KI44GE44GhDQor44Gf44GL44GKLOOBvuOBleOBsuOCjQ0KK+OBhuOBqSzjgZXjgYvjgYgNCivjgYbjga4s44Gu44KK44Gy44KNDQor44G144GY44GNLOOBl+OCk+OBleOBjw0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgYTjgZ3jgYzjgYQs44G+44GV44Gv44KLDQor44GL44KJ44GV44GNLOOBl+OCk+OBmA0KK+OChOOBvuOBoCzjgb7jgZXjgobjgY0NCivjgo/jgaAs44G+44GV44Gv44KLDQor44GX44Gw44GfLOOBi+OCk+OBm+OBhA0KK+OBl+OBiuOBluOBjSzjgbLjgajjgZcNCivjgZfjgYws44KI44GX44GKDQor44GP44KK44GfLOOBv+OBr+OCiw0KK+OBr+OBl+OCguOBqCzjgZfjgpPjgZ4NCivjgojjgZfjgoDjgoks44G+44GV44KI44GXDQor44G/44KE44GW44GNLOOBn+OBi+OBruOCig0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgZcNCivjgYrjgaDjgZEs44Gf44GL44Gy44GVDQor44GZ44Ga44GNLOOBi+OBpOOBsuOBkw0KK+OChOOBvuOBhOOBlyzjgYvjgZrjgb7jgZUNCivjgYrjgZzjgY0s44Gu44KK44GTDQor44Gf44GL44GELOOBqOOBl+OCjQ0KK+OBi+OBreOBkyzjgY3jgpPjgZQNCivjga/jgonjgaAs44Gy44KN44G/DQor44GX44G+44GgLOOBqOOBl+OBig0KK+OChOOBquOBjizjgb7jgZXjgb8NCivjgZnjgZrjgY0s44KI44GX44GKDQor44Gf44GL44Gv44GXLOOBn+OCguOBpA0KK+OBiuOBkOOCiuOChOOBvizjgYjjgaTjgYoNCivjgo/jgZ/jgarjgbks44Go44GX44GKDQor44KE44G+44KA44KJLOOBn+OBpOOBig0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjga7jgbYNCivjgZfjgYrjgZjjgb4s44G/44Gh44GKDQor44Gk44KL44GK44GLLOOCiOOBl+OCjQ0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgb7jgaTjgYbjgoks44Gy44KN44Gu44KKDQor44KE44G+44KC44GoLOOBjeOBr+OBoeOCjQ0KK+OBj+OBvuOBvyzjgaHjgYvjgokNCivjgZHjgpPjgojjgZcs44GC44GN44KJDQor44KE44G+44GL44GSLOOBjeOCiOOBguOBjQ0KK+OBlOOBqCzjgbLjgo3jgZcNCivjgZ/jgZHjgYbjgaEs44GV44Go44G/DQor44Gv44KE44GXLOOBkeOCk+OBmA0KK+OBhOOBl+OBsOOBlyzjgbLjgafjgobjgY0NCivjgYTjgaos44GR44KT44GV44GPDQor44GE44Gu44GG44GILOOBn+OBkeOBig0KK+OBq+OBl+OBi+OCjyzjgZ/jgYvjgbLjgagNCivjga/jgpPjgaAs44KE44GZ44GKDQor44Gf44Gm44Gw44KE44GXLOOBqOOBiuOCiw0KK+OBiuOBl+OBvizjga7jgbbjgobjgY0NCivjgZfjgbDjgZ8s44GR44KT44GYDQor44G/44GG44KJLOOBn+OBoOOBsuOBpw0KK+OBk+OBi+OBlCzjgYvjgYrjgosNCivjgYTjgYTjgaAs44Go44GK44KLDQor44Gf44GR44GZ44GILOOBqOOBl+OBv+OBoQ0KK+OBhOOBjOOCieOBlyzjgZvjgYTjgY0NCivjgb7jgZnjgoTjgb4s44Gf44GL44GKDQor44GV44GP44KE44G+LOOChuOBng0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgZcNCivjgZ/jgb7jgoos44KI44GX44GC44GNDQor44GE44G+44Gr44GXLOOBsuOCjeOBig0KK+OBiuOBjOOCjyzjgb7jgZXjgajjgZcNCivjga/jgY7jgo/jgoks44GL44Ga44KG44GNDQor44GK44GP44GrLOOBqOOBl+OChuOBjQ0KK+OBhOOBkeOBoCzjgorjgocNCivjgb7jgYjjgZjjgb4s44Gf44GL44KG44GNDQor44GE44KP44GELOOBsuOBp+OBig0KK+OChOOBvuOBoCzjgY3jgojjgZgNCivjgZnjgaAs44GL44Ga44KI44GXDQor44Go44GN44KPLOOBj+OBq+OBsuOBkw0KK+OBr+OChOOBlyzjga/jgovjgY0NCivjgZ/jgZHjgoLjgags44GC44Gk44GXDQor44GL44KT44Gw44KE44GXLOOBi+OBmuOBruOCig0KK+OBqOOBluOCjyzjgobjgZ/jgYsNCivjgZ/jgabjga4s44GL44Ga44G/DQor44GL44KT44G5LOOBpuOBpOOChA0KK+OBiuOBj+OBoCzjgojjgZfjgYoNCivjgZ/jgoLjgags44GL44Ga44GKDQor44Gq44GM44GELOOBkeOCkw0KK+OBiuOBluOCjyzjgb7jgZXjgYoNCivjgZXjgajjgYYs44G/44Gu44KLDQor44GT44KT44GpLOOBvuOBleOBsuOBqA0KK+OBreOBjuOBlyzjgY3jgojjgZcNCivjgZ/jgarjgYss44Gy44Gn44Gy44GTDQor44GT44KA44KNLOOBm+OBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgYLjgY3jgokNCivjgYTjgYTjgZjjgb4s44GL44Gk44G/DQor44Gr44GE44G744KKLOOBvuOBleOBjQ0KK+OBk+OCguOCiuOChCzjgb7jgZXjgagNCivjgZfjgpPjgaks44GK44GV44KADQor44KE44GuLOOChuOBsuOBoQ0KK+OBn+OBquOBiyzjgYvjgZrjgYoNCivjga/jgY7jgZ/jgass44G+44GV44GKDQor44GT44GZ44GOLOOBpOOBqOOCgA0KK+OBhOOBuSzjgZfjgpPjgZQNCivjgYvjgarjgZbjgo8s44GR44GE44GTDQor44Gf44GgLOOCiOOBl+OBqA0KK+OBquOBjOOBnyzjgajjgb/jgYoNCivjgYvjgb7jgaAs44Gu44G244Gf44GLDQor44Gf44GL44Gv44GXLOOBl+OCk+OBhOOBoQ0KK+OBiuOBhOOBpyzjgoTjgZnjgarjgooNCivjgZ/jgYvjgY/jgoks44GC44GN44GKDQor44KE44GZ44G+44GkLOOBn+OBoOOBlw0KK+OBvuOCiyzjgabjgaTjgYoNCivjgY/jgbzjgZ8s44KK44KH44Gy44GhDQor44Gf44Gw44GfLOOBqOOCiOOBteOBvw0KK+OCguOCiuOBnyzjgbLjgo3jgb8NCivjgY/jgavjgajjgoIs44GL44Ga44GKDQor44GC44GV44Gs44G+LOOCiOOBl+OBn+OBiw0KK+OBu+OBl+OBqizjgbLjgafjgZrjgb8NCivjga7jgZbjgo8s44KI44Gy44GhDQor44G+44Gk44KA44KJLOOBvuOBleOBqOOBlw0KK+OBsuOCieOBi+OBnyzjgo3jgY/jgo0NCivjgbLjgonjgb4s44Gg44GE44GN44GhDQor44GX44G/44GaLOOBruOCiuOBig0KK+OCiOOBk+OBi+OCjyzjgbLjgo3jgZcNCivjgY3jgY/jgaEs44Gf44Gg44Gy44GVDQor44GP44KN44GV44KPLOOCiuOCheOBmeOBkQ0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgZcNCivjgbLjgonjgYws44KI44GX44GKDQor44GV44GE44Go44GGLOOBvuOBk+OBqA0KK+OBhuOBoeOBvOOCiizjgbLjgo3jgZcNCivjgYTjgarjgoDjgoks44GZ44GZ44KADQor44GK44GV44GgLOOCiOOBl+OBsuOBlQ0KK+OBmeOBjuOChOOBvizjga7jgbzjgosNCivjgYTjgb7jgZos44GR44GE44GE44GhDQor44GG44KJ44GuLOOBruOCiuOBig0KK+OCguOBoeOBmuOBjSzjgaTjga3jgZgNCivjgZnjgYzjgo8s44Gy44KN44GL44GaDQor44GE44GR44GgLOOChOOBmeOBig0KK+OBn+OBquOBiyzjga/jgovjgbLjgZUNCivjgZXjgYTjgajjgYYs44GX44KT44GE44GhDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBv+OChOOBrSzjga/jgovjgYoNCivjgYvjgb7jgaAs44Gf44GL44GXDQor44Gt44GO44GXLOOCj+OBn+OCiw0KK+OBiuOBj+OBjOOCjyzjgYLjgaTjgZcNCivjga/jgoTjgZcs44GE44GV44KADQor44Gw44GwLOOBpuOBpOOBig0KK+OChOOBvuOCguOBqCzjgojjgZgNCivjgYjjgpPjgaks44Gu44KK44GKDQor44Gd44KB44KELOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBhCzjgojjgZfjga/jgosNCivjgYLjgbks44Gf44GL44GXDQor44Gh44GwLOOBn+OBi+OBqOOBlw0KK+OBn+OBi+OChOOBvizjgoTjgZnjgZ/jgaANCivjgoTjgb7jgY0s44G+44GV44KI44GXDQor44Gf44GR44GG44GhLOOBi+OBmuOBig0KK+OBn+OBkeOBuSzjgZfjgZLjgosNCivjgYLjgaDjgaEs44Go44GX44GKDQor44Gf44GL44GX44G+LOOBr+OCi+OBig0KK+OCiOOBk+OChOOBvizjgZ/jgaTjgZgNCivjgZfjgonjgYTjgaEs44Go44GX44G/44GhDQor44GP44Gp44GGLOOBpOOBqOOCgA0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjgZ/jgYvjgZfjgb4s44KI44GX44Gu44KKDQor44KE44G+44GM44GfLOOChuOBjeOBig0KK+OCiOOBl+OBoCzjgbLjgZXjgZcNCivjgb/jgoTjgYvjgo8s44Gu44G244Gy44GTDQor44GV44GV44GNLOOBpOOBqOOCgA0KK+OBhOOBp+OBhuOCiSzjga7jgbzjgosNCivjgZ/jgarjgYss44GK44GV44KADQor44GE44Go44GGLOOCiOOBl+OChuOBjQ0KK+OBiuOBpCzjgYLjgY3jgokNCivjgbXjgYjjgY0s44Gf44Gk44GKDQor44GX44KC44G144GVLOOBv+OBruOCiw0KK+OBv+OChOOBi+OCjyzjgobjgYbjgZgNCivjga/jgZfjgoLjgags44GX44GS44G144GVDQor44KE44G+44Ge44GILOOBn+OBi+OBig0KK+OBq+OBhOOBj+OCiSzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44GC44GN44KJDQor44KA44KN44G144GXLOOBruOCiuOBquOBig0KK+OBi+OCk+OBoCzjgb7jgZXjgosNCivjgY/jganjgYYs44GX44GS44GKDQor44Gf44GL44Gv44KJLOOBjeOCiOOBlw0KK+OBiuOBi+OBoCzjgZ/jgYvjgZcNCivjganjgYQs44G/44Gu44KLDQor44Gf44Gq44G5LOOBn+OBj+OBig0KK+OBk+OCgOOCjSzjgZHjgpPjgZgNCivjgoLjgorjgoTjgb4s44KA44Gk44G/DQor44GC44KJ44G+44GNLOOBi+OBmuOBkw0KK+OBk+OBl+OBuSzjgbLjgo3jgZcNCivjgZXjga4s44GC44Gk44Gy44GTDQor44GK44GL44GgLOOBn+OBkeOBlw0KK+OBteOBmOOCj+OCiSzjgajjgZfjgYvjgZoNCivjgb7jgaTjgYos44GC44Gk44GXDQor44Gf44Gq44GLLOOBvuOBleOBn+OBiw0KK+OBjeOBr+OCiSzjgZ/jgYvjgZcNCivjgavjgZfjga/jgZ8s44GT44GG44GYDQor44Gr44GX44KP44GNLOOBruOBtuOBig0KK+OBiuOBi+OBluOBjSzjgajjgZfjga7jgooNCivjgbXjgZjjgo/jgoks44GL44GqDQor44KE44GZ44GgLOOBi+OBpOOBvuOBlQ0KK+OBiuOBiyzjgZHjgYTjgZMNCivjgbvjgZ3jga4s44KP44Gf44KLDQor44GC44GL44GXLOOBkeOBhOOBmA0KK+OBquOBi+OBhCzjgZXjgajjgosNCivjgoTjgZnjgaAs44G+44KC44KLDQor44Gm44KJ44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBj+OBvOOBnyzjgbXjgb/jgZMNCivjgZPjgavjgZcs44Gu44G244GKDQor44Gu44KA44KJLOOBi+OBmuOCjQ0KK+OBhOOBruOBmyzjga7jgbbjgbLjgo0NCivjgo/jgZ/jgarjgbks44KI44GX44G+44GVDQor44Gr44GX44GKLOOBjeOCh+OBkw0KK+OCguOBv+OBjSzjgYvjgZrjgb8NCivjgZnjgarjgaAs44G/44Gt44GKDQor44Gf44GR44GG44GhLOOBquOBiuOBjQ0KK+OBguOBjeOBmyzjgoYNCivjgZfjgYrjgZ8s44KI44GX44Gf44GLDQor44GN44GpLOOBsuOCjeOBi+OBmg0KK+OBhOOBl+OCj+OBn+OCiizjgYrjgZXjgoANCivjgZfjgonjgYzjgb8s44KG44GL44GTDQor44GG44Gh44Gq44GMLOOBjeOChw0KK+OBn+OBquOBiyzjgZfjgZLjgYoNCivjgY/jgo3jgZXjgY0s44Gf44GP44G+DQor44GK44Go44GXLOOBk+OBhuOBhOOBoQ0KK+OBleOBqOOBhizjgY3jgY/jgZgNCivjgZnjgZrjgY0s44G144G/44Gf44GLDQor44Gy44KN44GfLOOCiOOBl+OChuOBjQ0KK+OChOOBruOBi+OCjyzjgZfjgZLjgb8NCivjgZXjgYvjgoLjgags44GC44GN44KJDQor44GT44KA44KNLOOBj+OBq+OBkw0KK+OBhOOBvuOBnyzjgoTjgZnjgbLjgZMNCivjgbvjgZ3jgoQs44GL44Ga44Gy44GVDQor44Gm44KJ44GV44GLLOOBk+OBmeOBkQ0KK+OBu+OCk+OBvizjgbLjgo3jgZ/jgYsNCivjgYvjgZnjgYws44GV44Gh44GTDQor44G+44Gk44Gg44GE44KJLOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgojjgZfjgbLjgZMNCivjga3jgZTjgo0s44KI44GX44GC44GNDQor44G144GP44GgLOOBqOOBl+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgo0NCivjgajjgb7jgaQs44Gy44Gn44KEDQor44GE44GuLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBmeOBmuOBjSzjgabjgaTjgYoNCivjgYLjgZXjgYQs44KG44Gy44GhDQor44Gv44KJLOOBvuOBleOBig0KK+OBu+OBlyzjgb7jgZXjgobjgY0NCivjgarjgovjgYvjgo8s44GV44GE44GYDQor44GK44GgLOOBmOOCheOBq+OBoQ0KK+OBiuOBsOOBqizjgb7jgoLjgosNCivjgZ/jgavjgZbjgo8s44G+44GV44GoDQor44G144GY44GK44GLLOOCiOOBsuOBoQ0KK+OBlOOBqCzjgYvjgZrjgZ/jgYsNCivjgZPjgozjgarjgYws44G+44GV44KG44GNDQor44Gf44GL44Gv44GXLOOBi+OBmuOBiA0KK+OBn+OBi+OCiSzjgbLjgo3jgZfjgZINCivjgYrjgY/jgo8s44GI44GE44GYDQor44Gf44Gq44GLLOOBl+OCheOBmA0KK+OBleOBqOOBhizjgZfjgpPjgZgNCivjgZfjgb7jgazjgY0s44GI44GE44GeDQor44Gd44GtLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgojjgZfjgZgNCivjgbXjgZjjgoDjgoks44Gf44Gk44KNDQor44GU44GoLOOBmOOCheOCk+OBmA0KK+OBr+OBl+OCguOBqCzjgYvjgZrjgYoNCivjgbLjgovjgb4s44Gf44GL44Gu44KKDQor44G744GX44GwLOOBj+OBq+OBi+OBpA0KK+OBi+OCgeOCj+OCiizjgYvjgZrjga7jgooNCivjgYrjgY/jgYQs44Gf44GL44GC44GNDQor44Gy44GV44KC44GoLOOBl+OBkuOChOOBmQ0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgbLjgonjgZXjgo8s44Gf44GL44GXDQor44GN44Gf44GnLOOBn+OBi+OBmA0KK+OBteOBj+OBoCzjgajjgZfjgYLjgY0NCivjgZfjgYrjgZbjgY0s44Gg44GE44GZ44GRDQor44KA44GoLOOBv+OBpOOBr+OCiw0KK+OBq+OBl+OBiuOBiyzjgY3jgojjgZcNCivjgaTjgbzjga4s44Gy44Gn44GL44GaDQor44Gq44Gk44GG44KBLOOBruOCiuOBig0KK+OBn+OBq+OBjOOBjSzjgZHjgpMNCivjgYrjgZnjgYws44Gy44KN44GXDQor44GG44Gh44GgLOOBi+OBmuOBig0KK+OBi+OBqOOBhizjgZPjgYbjgZgNCivjgZXjgZXjgY0s44GX44KT44GYDQor44GL44GX44G+LOOChOOBmeOBn+OBiw0KK+OBguOBi+OBleOBiyzjgYLjgY3jgokNCivjgYvjgo/jgYvjgb8s44Gy44Gn44KIDQor44GX44GpLOOBsuOCjeOBvw0KK+OChOOBvuOBhuOBoSzjgbLjgo3jgZcNCivjgYvjga4s44GK44GV44KADQor44Gv44KJLOOBjeOCiOOBlw0KK+OBvuOBpOOBsOOCiSzjgojjgZfjgZ/jgYsNCivjgabjgonjgYvjgaks44Gu44KK44GC44GNDQor44GX44GK44GfLOOBi+OBmuOBsuOBlQ0KK+OBiuOBi+OBoCzjgZHjgYTjgZgNCivjgY/jgo3jgaAs44KG44Gf44GLDQor44KC44KK44KC44GoLOOBleOBtuOCjQ0KK+OBm+OBjSzjgbLjgo3jgbLjgZUNCivjgZnjgZrjgY0s44Go44GX44G+44GVDQor44Gf44GR44GP44GVLOOBsuOCjeOBguOBjQ0KK+OBn+OBjOOBl+OCiSzjgYvjgZrjgYoNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GKDQor44GV44GI44GNLOOBiOOBhOOBmA0KK+OBn+OBpOOBluOCjyzjgbLjgafjgYoNCivjgZXjgYTjgajjgYYs44Gu44KK44GKDQor44G144KL44GL44KPLOOBi+OBmuOBig0KK+OBn+OCgOOCiSzjgojjgbLjgaENCivjgaTjgorjgoQs44Gf44Gk44KEDQor44GV44GL44GQ44GhLOOCiOOBl+OBsuOBpw0KK+OBteOBj+OBl+OBvizjgobjgZ/jgYsNCivjgYrjgYvjgo8s44GE44GP44GKDQor44G144GY44GfLOOBkeOCk+OBmA0KK+OBi+OCj+OBkOOBoSzjgYvjgZrjgbLjgo0NCivjgajjgY3jgYrjgYss44KI44GX44Gu44KKDQor44Gq44GL44GuLOOBsuOBqOOBlw0KK+OBhOOBruOBhuOBiCzjgorjgocNCivjgY/jgavjgajjgZcs44G144GY44GKDQor44GV44GL44GfLOOBsuOCjeOBlw0KK+OCguOCiuOBi+OCjyzjgYLjgY3jgokNCivjga7jgZDjgaEs44Gy44KN44GXDQor44GP44G844GfLOOBruOBtuOBig0KK+OBquOBi+OBiuOBiyzjgYrjgZXjgoANCivjga7jgbXjgZgs44GR44GE44GYDQor44KC44GM44KKLOOBjeOBv+OBguOBjQ0KK+OBvuOBiOOBluOBjSzjgbLjgajjgZcNCivjgYrjgaTjgYss44GN44KI44GXDQor44G/44Ga44GfLOOBteOBv+OBqA0KK+OBmeOBjuOChOOBvizjgb7jgaHjgYoNCivjgYvjgYzjgo8s44G144G/44Go44GXDQor44Gr44GX44Gv44KJLOOCiOOBsuOBoQ0KK+OBpuOBmuOBiyzjgbLjgo3jgZcNCivjgZfjgYrjgb8s44GX44KF44KT44GZ44GRDQor44GK44Gv44KJLOOBi+OBpOOBruOCig0KK+OBguOBleOBj+OCiSzjgabjgovjgYoNCivjgZfjgb7jgaAs44Go44G/44GKDQor44GX44G+44GL44KPLOOBvuOBleOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgZ/jgY/jgo0NCivjgYbjgZos44GT44GG44GE44GhDQor44Gf44GL44GP44KPLOOBpOOBreOBig0KK+OBv+OBoeOBnyzjgbLjgo3jgZcNCivjgYbjgYjjgaAs44KA44Gk44G/DQor44GX44GMLOOBn+OBpOOBig0KK+OBhOOBkeOBvyzjgZHjgYTjgZgNCivjgoLjgoos44GI44GE44GYDQor44GL44GX44KC44GoLOOBhOOBleOBig0KK+OBhOOBl+OBr+OCiSzjgZfjgZLjgojjgZcNCivjgYvjga3jgZMs44GR44KT44Gu44GZ44GRDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBlQ0KK+OCguOBqOOBhCzjgojjgZfjgZ/jgYsNCivjgZPjgZ/jgZEs44KI44GX44G144G/DQor44GL44GV44GELOOBl+OCk+OBhOOBoQ0KK+OBi+OBqOOBhizjgb/jgaTjgYoNCivjgZPjgY/jgbws44Gf44Gg44GC44GNDQor44KP44GL44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBleOBquOBoCzjgabjgaTjgoQNCivjgZXjgYvjgZ8s44GZ44GZ44KADQor44Gu44KA44KJLOOBsuOBqOOBlw0KK+OBr+OChOOBi+OCjyzjgZfjgZrjgYoNCivjgb/jgoTjgZbjgY0s44G+44GV44Gu44G2DQor44GK44Gr44Gk44GLLOOBl+OCheOBq+OBoQ0KK+OBhOOBpyzjgYbjgYTjgooNCivjgarjgYzjgZXjgZMs44Gf44GL44Gk44GQDQor44GE44Go44GGLOOBv+OBpOOBkA0KK+OBi+OBreOBn+OBkSzjgb7jgZXjgYLjgY0NCivjgY/jgbzjgZ8s44G+44GZ44G/DQor44GC44KK44G+LOOBoeOBiOOBkw0KK+OCj+OBi+OBiizjgaHjgYjjgZMNCivjgYTjgZfjgZbjgYss44Go44GX44GKDQor44GK44GfLOOBvuOBleOBig0KK+OBleOBi+OCguOBqCzjgb/jgaHjgYoNCivjgYrjgbvjgoos44GZ44GI44GTDQor44GX44KT44Gf44GrLOOBruOCiuOBkw0KK+OBhuOBoeOChOOBvizjgZHjgYTjgZMNCivjgbLjgonjgZ8s44GX44GS44KEDQor44GC44KK44Ge44GuLOOBvuOBleOBsuOBkw0KK+OBhOOBqOOBhizjgajjgb/jgojjgZcNCivjgYLjgYrjgoTjgY4s44G/44Gk44GKDQor44Gq44GL44KA44KJLOOBi+OBmuOBvw0KK+OBhOOBhOOBoCzjgZfjgZLjgYoNCivjgarjgZfjgY0s44GR44KT44GYDQor44KA44KJ44GbLOOBiuOBleOCgA0KK+OBvuOBpOOBiizjgZ/jgYvjga7jgooNCivjgZXjgajjgYYs44G/44Gh44Gf44GLDQor44GC44GV44Gs44G+LOOBpuOCi+OBguOBjQ0KK+OBteOBn+OBvyzjgY3jgojjgobjgY0NCivjgbXjgarjgags44GR44GE44GTDQor44G144GY44GfLOOBsuOCjeOBlw0KK+OBteOCi+OBi+OCjyzjgZ/jgYvjgobjgY0NCivjgbXjgarjga/jgZcs44Gc44KT44Gv44Gh44KNDQor44G244GoLOOBkeOBhOOBlA0KK+OBi+OBrizjgobjgY3jgYoNCivjgYrjgY3jgaQs44Go44GX44GC44GNDQor44Gf44GL44GO44KPLOOBn+OBi+OBlw0KK+OBu+OBl+OBrizjgb/jgarjgZMNCivjgavjgZfjgZjjgb4s44GV44Go44GTDQor44GL44G+44GfLOOBn+OBi+OBlw0KK+OBpOOBmOOCguOBqCzjgb7jgZXjgYLjgY0NCivjga/jgarjgaAs44GV44Gg44GKDQor44Gy44KN44GbLOOBv+OBoeOBig0KK+OBq+OBl+OBoCzjgYvjgYrjgosNCivjgYbjgYjjgY0s44GL44Ga44GKDQor44KI44GX44GuLOOBkeOBhOOBlA0KK+OBjeOBn+OCgOOCiSzjgZfjgo0NCivjgZfjgb/jgZos44GX44KT44GE44Gh44KN44GGDQor44GE44GX44GW44GNLOOChOOBmeOBvuOBlQ0KK+OBr+OChOOBlyzjgY/jgavjgb8NCivjgY3jgY/jgaEs44KG44G/44GTDQor44GK44GL44GpLOOBn+OBkeOBig0KK+OBk+OCgOOCiSzjgbLjgZXjgoQNCivjga/jgZfjgoLjgags44Gy44KN44KG44GNDQor44Gq44GL44Gk44GLLOOBi+OBpOOBsuOCjQ0KK+OBiuOBsuOBlyzjgbLjgo3jgZ/jgYsNCivjgY/jgo3jgaAs44GE44GV44KADQor44Gq44GL44GELOOBoeOBiOOBkw0KK+OBjeOBn+OBluOCjyzjgY/jgavjgbLjgo0NCivjgY3jgZfjgaAs44Gh44GC44GNDQor44GL44Gq44G+44KLLOOBqOOBl+OBhOOBoQ0KK+OBguOCieOBhCzjgZfjgpPjgZgNCivjgbXjgZ/jgaTjgY4s44G+44GV44GKDQor44GN44GP44GhLOOBsuOBqOOBlw0KK+OBhOOBhOOBoCzjgajjgZfjgYvjgZoNCivjgarjgYvjgYgs44GN44KI44GKDQor44Gy44KJ44G+44GkLOOBm+OBhOOBhOOBoQ0KK+OBq+OBl+OBiuOBiyzjgb/jgaHjgZMNCivjgZXjgajjgYYs44Gy44GV44GXDQor44KC44KKLOOBv+OBpOOBruOBtg0KK+OBu+OBl+OBrizjgbLjgafjgbXjgb8NCivjgoTjgb7jgZDjgaEs44Gk44GQ44GKDQor44GG44GZ44GELOOBl+OBkuOCiw0KK+OBvuOBpOOBsOOCiSzjgaTjgajjgoANCivjgYLjgorjgZXjgYss44Gf44GR44GXDQor44Gr44GX44GKLOOBvuOBmeOCiOOBlw0KK+OBjeOBoCzjgb7jgZXjgojjgZcNCivjgoTjga4s44G+44GV44G/DQor44GL44Go44GGLOOBruOCiuOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgosNCivjga/jgoTjgZcs44G+44GT44GoDQor44KP44Gf44G5LOOBl+OBmuOBig0KK+OCj+OBn+OBquOBuSzjga/jgovjgYoNCivjgobjgZDjgaEs44Go44GX44GKDQor44KE44G+44KC44GoLOOChOOBmeOBlw0KK+OBleOBhOOBqOOBhizjgYLjgY3jgYoNCivjgYvjgYTjgZos44G/44Gu44KLDQor44G744GX44GuLOOBmOOCheOCk+OBng0KK+OBl+OBruOBr+OCiSzjgZHjgYTjgY0NCivjgYrjgazjgb4s44Gv44KL44GKDQor44G/44KPLOOBhOOBleOBig0KK+OBu+OCiuOCgOOBjSzjga7jgbbjgbLjgo0NCivjgYTjgZfjgZ/jgaYs44KI44Gy44GhDQor44G/44G144GtLOOBiOOBhOOBhOOBoQ0KK+OCguOBv+OBjSzjgb7jgZXjgY0NCivjga/jgZvjgYzjgo8s44GI44GE44GYDQor44GZ44GO44KE44G+LOOBpuOBpOOBig0KK+OBpOOBj+OBoCzjgobjgbLjgaENCivjgYLjgaDjgaEs44GR44KT44GfDQor44Gn44GW44KPLOOBoeOBsuOCjQ0KK+OBiuOBnyzjgoTjgZnjgYoNCivjgZXjgajjgYYs44KI44Gy44GhDQor44Gb44GN44GQ44GhLOOBvuOBleOBig0KK+OBk+OBj+OBtuOCkyzjgbLjgo3jgZMNCivjgbvjgZfjgaos44Gy44GV44GXDQor44GG44KJ44GuLOOBteOBv+OBig0KK+OBn+OBkeOCgOOCiSzjgZHjgpPjgYTjgaENCivjgajjgY/jgarjgYws44Gy44Gn44GKDQor44GP44KK44Gv44KJLOOBruOBtuOBsuOCjQ0KK+OBiuOBj+OCgOOCiSzjgb7jgoLjgosNCivjgZXjgYTjgajjgYYs44Gf44GR44GXDQor44G+44Gk44GX44GfLOOCiOOBl+OBvg0KK+OBn+OBkeOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgavjgZfjgY0s44GN44KI44GXDQor44GG44KB44GgLOOBvuOBk+OBqA0KK+OBu+OCk+OBoCzjgabjgovjgYoNCivjgYvjgoIs44GX44KF44KT44GYDQor44GG44GX44GgLOOBn+OBoOOBlw0KK+OBleOBhOOBqOOBhizjgbXjgb/jga7jgooNCivjga/jgZnjgaAs44Gf44Gg44KI44GXDQor44G/44GL44KPLOOBjeOCiOOBlw0KK+OBhuOBoeOBoCzjgYLjgY3jgokNCivjgavjgZfjgZbjgY0s44G/44Gk44Gu44KKDQor44GE44GM44KJ44GXLOOCiOOBl+OBjQ0KK+OCj+OBn+OBquOBuSzjgobjgY3jgbXjgb8NCivjgZfjgb7jgoDjgoks44GT44GG44GE44GhDQor44GL44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBuSzjgbLjgajjgZcNCivjgZXjgYvjgoLjgags44Gy44Gn44GoDQor44KC44KK44GX44GfLOOBmOOCheOBq+OBoQ0KK+OBmeOBjOOBr+OCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgajjgb/jgoTjgb4s44GR44GE44GeDQor44G144GP44GgLOOBv+OBoeOBkw0KK+OBiuOBqOOBluOBjSzjgoLjgajjgojjgZcNCivjgbXjgZjjgoLjgoos44GV44GL44GIDQor44GT44KC44KKLOOBhOOBj+OBig0KK+OBteOBj+OBquOBjCzjgYvjgZrjgYbjgb8NCivjgb/jgoTjga/jgoks44Gk44KI44GXDQor44GY44KT44GuLOOBsuOCjeOBpOOBkA0KK+OBjeOCgOOCiSzjgb7jgZnjgYoNCivjgYTjgarjgYzjgY0s44KI44GG44GTDQor44KC44KKLOOBj+OBq+OBsuOBkw0KK+OCj+OBn+OBquOBuSzjgZfjgofjgbLjgaENCivjgaTjgZjjgoLjgags44GX44KH44GYDQor44KC44KT44Gc44KTLOOBguOBleOBkw0KK+OBquOCgOOCiSzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44Gu44KK44GTDQor44Gv44GX44KC44GoLOOBl+OCh+OBkw0KK+OChOOBvuOBhuOBoSzjgojjgZgNCivjgYLjgonjgYQs44KC44Go44KI44GXDQor44G144GY44GELOOCiuOChw0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgbLjgZMNCivjga/jgZvjgYzjgo8s44Gk44KI44GXDQor44GX44GS44KE44GZLOOBguOBpOOBsuOBkw0KK+OChOOBvuOBruOBhCzjgZ/jgYvjgYoNCivjgZPjgbDjgoTjgZcs44GN44KI44KG44GNDQor44Gq44GM44GELOOBvuOBleOBguOBjQ0KK+OBleOCjyzjgYvjgaTjga7jgooNCivjgb7jgaTjgojjgZcs44G/44Gk44GKDQor44GV44GE44Go44GGLOOBiOOBhOOBkw0KK+OBi+OBrizjgobjgY3jgZMNCivjgYbjgZfjgZTjgoEs44Gu44KK44GKDQor44GE44GX44GELOOBi+OBpOOBruOCig0KK+OBhuOBmeOBjSzjgYLjgY3jgYoNCivjgZnjganjgYYs44Gy44KN44KG44GNDQor44GL44GY44KE44G+LOOBvuOCiuOBkw0KK+OBiuOBsCzjgYjjgorjgZMNCivjgZnjgo8s44Gy44KN44GNDQor44GE44KP44GfLOOBhuOCkw0KK+OBqCzjgoTjgZnjga7jgooNCivjgYrjgYTjgYvjgo8s44Gy44KN44GXDQor44Gy44KJ44GELOOBpuOBpA0KK+OBn+OBi+OBl+OBvizjgajjgojjgYvjgZoNCivjgbXjgb/jga4s44GI44GE44GE44GhDQor44GK44GL44GW44GNLOOBn+OBj+OBvg0KK+OBl+OCieOBjSzjgb7jgZXjgosNCivjgZ/jgZHjgoLjgags44KI44GX44GC44GNDQor44G+44Gk44KC44GoLOOBruOBtuOBig0KK+OBvuOBpOOBsOOCiSzjgb/jgaHjgYoNCivjgYjjgbPjga/jgoks44GL44GK44KLDQor44G144GY44GuLOOBsuOCjeOBguOBjQ0KK+OBteOBi+OChCzjgoTjgZnjgYoNCivjgbvjgZfjga4s44GT44GG44GYDQor44GL44Gf44KE44G+LOOBhOOBmuOCiw0KK+OBguOCieOBi+OCjyzjgojjgZfjgYoNCivjgZ/jgYvjga4s44Gf44GL44GN44G/DQor44GP44KN44GgLOOBsuOBp+OBjQ0KK+OBhOOBqOOBhizjgbXjgb/jgYoNCivjgZPjgZbjgYQs44KE44GZ44GoDQor44GG44GI44KE44G+LOOBr+OBmOOCgQ0KK+OBr+OBo+OBqOOCiizjgbLjgajjgZcNCivjgavjgZfjgoDjgoks44GI44GE44GTDQor44G144KL44GL44KPLOOBqOOBl+OBig0KK+OChOOBl+OBjSzjgbLjgo3jgZcNCivjgbvjganjgoTjgb4s44Gu44KK44GKDQor44GI44GoLOOBvuOBleOBpOOBrQ0KK+OChOOBvuOCguOBqCzjgobjgYbjgZgNCivjgZvjgY3jgZDjgaEs44Gu44KK44Gy44GTDQor44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBn+OBkeOBoCzjgZPjgYbjgZgNCivjgZfjgpPjgZ/jgass44KE44GZ44GKDQor44GP44G844GfLOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOBiuOBiyzjgZ/jgYvjgZcNCivjgoTjgb7jgZbjgY0s44GV44Gh44GTDQor44GV44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OBhuOBiOOBrizjgYvjgZrjgYoNCivjgZfjgb7jgoLjgags44KE44GZ44Gy44KNDQor44GN44Gf44GuLOOBmOOCheOCk+OBkw0KK+OBhOOBhOOBmuOBiyzjgb/jgaTjgosNCivjgYTjgZrjgb8s44GN44KI44GXDQor44Gv44KJ44GgLOOBqOOBl+OBjQ0KK+OBiuOBoeOBguOBhCzjgajjgZfjgZ/jgYsNCivjgoTjgb7jgYbjgaEs44Gf44GL44GKDQor44GI44GQ44GhLOOBl+OBkuOBjQ0KK+OBr+OBjuOCj+OCiSzjgbLjgafjgYoNCivjgZ/jgYvjgY4s44Go44KC44Gy44GTDQor44GK44GP44KC44GoLOOBvuOBleOBqOOBlw0KK+OBvuOBpOOBluOBjSzjgYTjgZXjgoANCivjgYTjgaHjgoDjgoks44Gy44Gn44Go44GXDQor44G/44KE44GV44GLLOOBqOOBl+OChuOBjQ0KK+OBv+OChOOBnyzjgYvjgZ/jgZcNCivjgarjgYzjgYos44GN44KI44GXDQor44GE44KP44GKLOOBleOBqOOBvw0KK+OBteOBi+OBluOCjyzjgZXjgaDjga7jgooNCivjgZ/jgoDjgoks44Gy44Gn44GNDQor44GN44KK44KFLOOBqOOBl+OBn+OBkQ0KK+OBvuOBpOOBluOBjSzjgZPjgZnjgZENCivjgYvjgajjgYYs44G+44GV44G/DQor44G/44GfLOOCiuOCh+OBkw0KK+OBhOOBl+OBhCzjgY3jgofjgZgNCivjgYrjgYvjgoLjgags44Gf44GL44KG44GNDQor44GG44GI44GK44GLLOOBleOBqOOBlw0KK+OBjeOCh+OBrizjgYLjgY3jgbLjgo0NCivjgYvjga3jgZMs44Gy44Gn44Gk44GtDQor44GV44GP44KJ44GELOOBn+OBkeOBlw0KK+OCj+OBi+OBsOOChOOBlyzjgZ/jgZHjga7jgooNCivjgo/jgZ/jgarjgbks44G+44Gq44G2DQor44GC44GV44GELOOCiuOCh+OBsuOBoQ0KK+OBi+OBqeOBrizjgobjgorjgZMNCivjgoTjgb7jgZbjgY0s44Go44KC44GTDQor44GC44KP44GuLOOBm+OBhOOBhOOBoQ0KK+OBiuOBjOOCjyzjgZfjgofjgY3jgaENCivjgZzjgpPjgZEs44G+44GV44GXDQor44G144GP44KC44GoLOOBl+OBkuOCiw0KK+OBiuOBqSzjgb7jgZXjgYoNCivjgoLjgorjgoLjgags44Gf44Gg44GKDQor44Go44G8LOOCiOOBl+OBig0KK+OBi+OBn+OChOOBvizjgabjgovjgb/jgaQNCivjgarjgYzjgb7jgaQs44Gq44GK44GoDQor44KP44Gf44G5LOOBhOOBleOCgA0KK+OBhOOBl+OBjSzjgabjgaTjgYoNCivjgYTjgarjgYzjgo8s44Gu44G244GKDQor44Gq44GL44GuLOOBvuOBleOBqA0KK+OBq+OBl+OChOOBvizjgobjgZ4NCivjgZfjgoLjgaAs44GN44KH44GTDQor44GX44GS44GfLOOBqOOBl+OBsuOBpw0KK+OBvuOBpOOCguOBqCzjgojjgZfjgbLjgo0NCivjgYvjgZ/jgoTjgb4s44Gr44GZ44GRDQor44Gd44GuLOOChuOBhuOBmA0KK+OBhOOBm+OBjSzjgajjgojjgbLjgo0NCivjgYTjgajjgYYs44Go44GX44KG44GNDQor44Gb44GN44GtLOOBn+OBi+OBruOCig0KK+OCgOOCieOChOOBvizjgajjgZfjgYoNCivjgb7jgovjgoTjgb4s44Go44KC44Gy44GTDQor44GP44KN44GV44KPLOOBi+OBmuOBruOCig0KK+OBmeOBvyzjgZ/jgYvjgYoNCivjga7jgZDjgaEs44GL44Ga44G/DQor44GV44Go44GG44G/LOOBvuOBleOBlw0KK+OBiuOBi+OCjyzjgZ/jgYvjgYLjgY0NCivjgarjgYvjga4s44KI44GX44G/DQor44GK44Gy44GXLOOChg0KK+OBr+OBtizjgobjgYbjgZMNCivjgYbjgaHjgaAs44Gf44GL44Gv44KLDQor44G/44GNLOOChOOBmeOCiOOBlw0KK+OBmeOBmuOBjSzjgb/jgojjgZMNCivjgYvjgZXjga/jgoks44Gf44GL44GKDQor44GK44GP44G8LOOBsuOCjeOBl+OBkg0KK+OBi+OBn+OBi+OBvyzjgoYNCivjgZ/jgYvjga/jgZcs44GL44Gk44G/DQor44GE44GX44GL44KPLOOChuOBjeOBig0KK+OBn+OBi+OBqOOCiizjgojjgZfjgYvjgZoNCivjgZ/jgavjgZDjgaEs44G+44GV44GKDQor44Gb44GNLOOBteOBmOOBig0KK+OBj+OBvOOBnyzjgZHjgYTjgZgNCivjgYLjgbnjgYvjgo8s44KI44GX44G144G/DQor44G144GY44G+44GNLOOBqOOBiuOCiw0KK+OBi+OBn+OChOOBvizjgobjgYbjgZgNCivjgZPjgoTjgb4s44Gy44Gn44GNDQor44Gv44GX44KC44GoLOOBpOOBkOOBsuOBqA0KK+OBmeOBvyzjgbLjgafjga7jgooNCivjgavjgZfjgYvjgo8s44GY44KH44GYDQor44GV44KP44G+LOOBguOBjeOCiQ0KK+OBr+OBl+OCguOBqCzjga7jgorjgb7jgZUNCivjgarjgYvjgZ8s44G144G/44Gu44G2DQor44GG44Gh44KE44G+LOOBpOOBreOChuOBjQ0KK+OBleOBleOBjSzjgYTjgZrjgb8NCivjgYLjgZXjga/jgoks44GL44Ga44Gv44KLDQor44Gr44Gj44GfLOOBruOCiuOBi+OBmg0KK+OBoOOCkyzjgajjgZfjgbLjgZMNCivjgZnjgY7jgZ8s44GL44Ga44KEDQor44KE44G+44KC44GoLOOBn+OBi+OBig0KK+OBiuOBteOBoSzjgZfjgpPjgZgNCivjgZPjgbDjgoTjgZcs44KG44GN44G+44GVDQor44G/44KI44GXLOOBvuOBleOBqA0KK+OBhOOBl+OBoCzjgoDjgaTjgYoNCivjgYrjgavjgY0s44Gf44GR44GXDQor44GP44KK44Gv44KJLOOBvuOBleOChuOBjQ0KK+OBl+OCieOBhCzjgZHjgpPjgZgNCivjgZXjgYvjgavjgZcs44GC44GR44G/DQor44GK44GgLOOBv+OBoeOBig0KK+OBi+OBvuOBmSzjgbLjgo3jgZcNCivjgarjgYvjgYzjgo8s44GC44KE44GTDQor44GL44GX44KC44GoLOOChuOBhuOBkw0KK+OBsOOCk+OBqSzjgoTjgZnjgb7jgZUNCivjgbXjgZ/jgb8s44Gy44KN44GXDQor44KE44G+44GX44GfLOOBvuOCig0KK+OBr+OChOOBlyzjgb/jgaTjgbLjgo0NCivjgYvjgZLjgoTjgb4s44G144G/44GTDQor44GC44GZ44G+LOOCi+OCiuOBkw0KK+OBl+OCguOCgOOCiSzjgabjgaTjgZcNCivjgoTjgb7jgZDjgaEs44GX44KT44GE44GhDQor44KE44G+44GoLOOBv+OBjQ0KK+OBleOBqOOBhizjgb/jgo/jgZMNCivjgb7jgaTjgaDjgYTjgoks44GT44GG44GN44GhDQor44G+44Gk44KA44KJLOOBsuOBp+OBsuOBkw0KK+OBk+OBrizjga7jgbzjgosNCivjgYrjga/jgZcs44Gf44G/44GKDQor44GN44GP44GfLOOBpOOBi+OBlQ0KK+OCiOOBl+OBiuOBiyzjgZHjgpPjgYTjgaENCivjgZXjga4s44Gy44GV44GXDQor44Gf44Gq44GLLOOBkeOCk+OBng0KK+OBleOBleOBjSzjgb7jgZXjgojjgZcNCivjgYvjgo/jgZDjgaEs44GN44KH44Gy44GhDQor44KE44G+44GX44GfLOOChuOBmuOCiw0KK+OBn+OBkeOCgOOCiSzjgb7jgZXjgZcNCivjgbXjgY/jgaEs44Gf44GL44GXDQor44G+44Gq44GLLOOChuOBhuOBmA0KK+OBguOCieOBjSzjgb/jga7jgosNCivjgbLjgonjga4s44Gu44G244GKDQor44Gq44GL44KA44KJLOOChuOBsuOBoQ0KK+OBr+OBl+OCguOBqCzjgZ/jgaDjgZcNCivjgYvjgajjgYYs44Gy44KN44GXDQor44Gv44G+44GL44KPLOOBl+OBkuOCiw0KK+OBr+OChOOBlyzjgYvjgZrjgoQNCivjgYTjgajjgYYs44Go44GX44G/44GhDQor44GZ44Ga44GNLOOCiOOBl+OChA0KK+OBn+OBkeOBhuOBoSzjgoTjgZXjgbbjgo0NCivjgavjgZcs44GX44GS44GNDQor44GE44KP44G744KKLOOBsuOCjeOBlw0KK+OBhOOBvuOBhCzjgojjgZfjgYoNCivjgoLjgorjga4s44KG44GN44Gu44KKDQor44Gr44GX44Gv44KJLOOBmeOBmeOCgA0KK+OBjeOCiuOChCzjgYLjgaTjgZcNCivjgZXjgajjgYYs44Gf44Gk44GKDQor44G744Gd44GgLOOBteOBv+OBig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYgNCivjgarjgYvjgZjjgb4s44Go44G/44GIDQor44KE44GZ44Gv44KJLOOBn+OBi+OBruOBtg0KK+OBj+OCjeOBhOOCjyzjgojjgZfjgYvjgZoNCivjgYvjgoIs44Gk44Go44KADQor44GC44GL44G+44GkLOOBqOOBl+OBi+OBpA0KK+OBjeOBn+OCgOOCiSzjgYTjgY/jgZMNCivjgavjgZfjgaAs44GP44Gr44GKDQor44GK44GL44GgLOOBkeOBhOOBkw0KK+OBleOBleOBjSzjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44GE44Gh44KN44GGDQor44GX44G/44GaLOOBi+OBmuOBsuOBkw0KK+OBiOOCk+OBqSzjgZPjgYbjgYTjgaENCivjgYbjgaDjgYzjgo8s44Go44GX44G+44GVDQor44GX44G/44GaLOOBj+OBv+OBkw0KK+OBguOBiuOChOOBjizjgZ/jgYvjgZcNCivjga/jgZfjgoLjgags44GR44GEDQor44Gf44GR44GG44GhLOOBsuOBleOBqA0KK+OBguOCieOBhCzjgajjgojjgZMNCivjgYTjgZfjgZjjgb4s44Gy44GV44GTDQor44GT44GM44GtLOOBn+OBoOOBlw0KK+OBleOCj+OBl+OBvizjgZfjgZLjgosNCivjgZ/jgYvjgoTjgarjgY4s44Gq44KL44KG44GNDQor44G+44GV44GgLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgbLjgo3jgZcNCivjgYrjga7jgafjgoks44GP44Gr44GC44GNDQor44Gf44Gq44GLLOOBvuOChuOBvw0KK+OBruOCgOOCiSzjgobjgY3jgZMNCivjgojjgZfjgaAs44GX44KT44GE44GhDQor44KI44GX44GgLOOBqOOBl+OChuOBjQ0KK+OBleOBn+OBkSzjgbLjgo3jgZcNCivjgZXjgYTjgajjgYYs44GE44GV44KADQor44G/44KE44GOLOOBl+OCk+OBmeOBkQ0KK+OBn+OBi+OBl+OBvizjgabjgovjgYoNCivjgYvjgbDjgoQs44Gu44KK44G144G/DQor44GE44GX44GW44GNLOOBm+OBhOOBng0KK+OBi+OBjOOChCzjgYvjgZrjgYoNCivjgZPjgZ/jgass44Gy44Gn44GC44GkDQor44GT44GZ44GgLOOChOOBmeOBlw0KK+OBhOOBmOOCiizjgYTjgZXjgYoNCivjgb7jgovjgoTjgb4s44Gy44Gn44GKDQor44GL44Gq44GELOOBl+OCk+OBhOOBoQ0KK+OChOOBjizjgb/jga7jgosNCivjgbXjgZjjga4s44Gy44KN44G/44GhDQor44GT44Gn44KJLOOBguOBjeOBsuOBpw0KK+OBmeOBjuOBiizjgZ/jgYvjgYoNCivjgZnjgYzjga/jgoks44G/44Gk44KLDQor44GV44GE44Go44GGLOOBruOBtuOBig0KK+OBiuOBiyzjgbLjgo3jgZcNCivjgYTjgZfjgb7jgoss44Go44GX44GZ44GRDQor44G/44KE44GW44GNLOOBl+OCk+OBmA0KK+OBr+OBvuOBrizjgb7jgoLjgosNCivjgZPjgZ/jgZjjgb4s44Gy44KN44GXDQor44Gf44GL44GX44G+LOOBkeOBhOOBmA0KK+OBpOOBi+OBoCzjgbLjgo3jgbXjgb8NCivjgarjgYvjgoDjgoks44GX44KT44GE44GhDQor44Gf44GR44GgLOOCiOOBsuOBoQ0KK+OChOOBmeOCgOOCjSzjgZ/jgY/jgoLjgooNCivjgarjgYvjgoDjgoks44KE44GZ44GC44GNDQor44G144GY44GX44G+LOOChuOBn+OBiw0KK+OBiuOBi+OBoCzjgZ/jgb/jgoQNCivjgYLjgoQs44KI44GX44GKDQor44Gq44GL44KA44KJLOOBv+OBpOOBkA0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZcNCivjgZnjgYzjga/jgoks44G+44GV44GoDQor44KG44GC44GVLOOBvuOBleOChuOBjQ0KK+OBhOOBl+OBhCzjgZPjgYbjgYTjgaENCivjgYrjgY/jgbws44G/44Gk44KE44GZDQor44GK44GV44KPLOOBr+OCi+OChOOBmQ0KK+OChOOBvuOCguOBqCzjgYrjgZXjgoANCivjgYTjgb7jgYTjgZrjgb8s44GT44GeDQor44GK44GL44GgLOOBv+OBoeOBig0KK+OBquOBi+OCgOOCiSzjgojjgZfjga7jgooNCivjgZ/jgarjgYss44GC44GR44G144G/DQor44Gq44GL44GuLOOBm+OBhOOBhOOBoQ0KK+OBiuOCguOCiizjgYvjgaTjgbXjgb8NCivjgoTjgb7jgoLjgags44G+44GV44Gu44KKDQor44Gq44GM44GELOOBr+OCi+OBsuOBkw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgbLjgY3jgaEs44GX44GS44G+44GVDQor44KE44G+44GgLOOBn+OBkeOBlw0KK+OBpOOBi+OCguOBqCzjgb/jgaTjgb7jgosNCivjgYTjga7jgYbjgYgs44G/44Gk44G+44KLDQor44GE44Gu44GG44GILOOBn+OBkeOBsuOCjQ0KK+OBmeOBv+OBi+OCjyzjgZfjgZLjgZ/jgaANCivjgbXjgY/jgaAs44GR44KT44GYDQor44KE44G+44KC44GoLOOCgOOBreOCiOOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgajjgZcNCivjgYvjgpPjgbAs44G+44GV44Gf44GRDQor44GV44KJ44GELOOBv+OBjeOBig0KK+OBleOBi+OBjSzjgYvjgZrjgbLjgZMNCivjgoTjgZnjgYQs44KI44GX44Gy44KNDQor44GL44G/44KA44KJLOOBj+OBq+OBig0KK+OBm+OBuSzjgY3jgojjgZcNCivjgojjgZfjgaAs44Gf44GP44GKDQor44Gq44GM44GbLOOBi+OBmuOBsuOBkw0KK+OBteOBj+OBoSzjgYvjgZrjgYoNCivjgbXjgY/jgaAs44KG44GN44G+44GVDQor44Gu44Gq44GLLOOCiOOBl+OBr+OCiw0KK+OBhOOBvuOBoCzjgbLjgZXjgZcNCivjgavjgZfjgYvjgo8s44Go44GX44GKDQor44GT44KE44GuLOOBpOOBqOOCgA0KK+OBquOBi+OBluOCjyzjgb7jgZXjgagNCivjgYrjgYzjgo8s44GC44GN44KJDQor44Gq44GL44KE44G+LOOBi+OBiuOCiw0KK+OBrOOBruOBi+OCjyzjgZjjgoXjgavjgaENCivjgZ3jga0s44Gb44Gk44GTDQor44G/44Ge44GQ44GhLOOChuOBhuOBkw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgb/jgaQNCivjgojjgZfjgb7jgaQs44G+44GV44GC44GNDQor44GK44Gv44KJLOOBl+OCh+OBmA0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgb/jga7jgZDjgaEs44Gf44GL44GXDQor44GX44KT44KB44KTLOOCiOOBl+OBn+OBiw0KK+OBruOBmyzjgajjgZfjgYvjgZoNCivjgYTjgo/jga/jgZcs44Gf44Gg44GXDQor44GC44GL44GELOOBhOOBmuOBvw0KK+OBpOOBn+OCguOBqCzjgZjjgofjgZgNCivjgarjgYvjgoLjgags44Gu44G244Gy44GTDQor44GP44Gg44Gq44G/LOOBvuOBleOBsuOCjQ0KK+OBhOOBoeOBoCzjgb7jgZnjgZMNCivjgoTjga4s44Gy44Gn44GKDQor44G+44Gk44GNLOOBguOBjeOBig0KK+OBleOBleOBjSzjgZ/jgYvjgZcNCivjgbXjgovjga4s44Gv44KL44Gy44GVDQor44G144GY44GfLOOBkeOBhOOBkw0KK+OBhOOBruOBhuOBiCzjgbXjgb/jgYoNCivjgZ/jgoQs44KG44GN44GKDQor44G/44KE44GW44KPLOOBhOOCj+OBig0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgYoNCivjgYLjgY/jga0s44G+44GV44GK44G/DQor44G744GX44GuLOOBl+OCk+OBmA0KK+OCiOOBl+OBoCzjgojjgZfjga7jgooNCivjgYbjgYjjgoDjgoks44Gf44GL44G144G/DQor44GL44G/44KELOOBvuOBleOBig0KK+OBmeOBmuOBjSzjgorjgofjgbLjgaENCivjgYLjgpPjganjgYYs44Gf44GR44GXDQor44Go44KI44GE44Ga44G/LOOBvuOBleOBr+OCiw0KK+OBj+OCj+OBqizjgb/jga7jgosNCivjgavjgYTjgb8s44G+44GV44KG44GNDQor44G/44GG44KJLOOBn+OBi+OBlw0KK+OBruOCgOOCiSzjgYjjgYTjgZgNCivjgYrjgYvjgaAs44GN44G/44GKDQor44GC44GV44Gs44G+LOOCiOOBl+OBl+OBkg0KK+OBleOBleOBiizjgYvjgYrjgosNCivjgYTjgarjgYzjgY0s44GC44GN44KJDQor44GZ44GM44KP44KJLOOBv+OBqeOCig0KK+OBl+OCh+OBmCzjgb/jgaTjgoTjgZkNCivjgZ/jgYzjgo8s44Gf44KN44GGDQor44Gd44GMLOOCiOOBhuOBkw0KK+OBl+OCh+OCjyzjgajjgZfjgo0NCivjgb7jgaTjgYvjgo8s44GX44KT44GE44GhDQor44GX44KC44KA44KJLOOBi+OBmuOBig0KK+OCj+OBn+OBquOBuSzjga7jgbzjgosNCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GE44GE44GgLOOBn+OBkeOBlw0KK+OBteOBj+OCguOBqCzjgZ/jgYvjga/jgosNCivjgoDjgonjgoTjgb4s44Go44GX44GKDQor44G744KKLOOBruOCiuOBkw0KK+OChOOBvuOBrizjgYvjgaTjgZcNCivjgavjgZfjgo/jgY0s44GK44GV44KADQor44G+44Gk44GKLOOBguOBjeOCiQ0KK+OBiuOBi+OCguOBqCzjgZjjgoXjgpMNCivjgYrjgZXjgY0s44GL44Ga44Gy44KNDQor44GG44KB44KC44GoLOOBsuOBp+OChuOBjQ0KK+OBiuOBi+OCgOOCiSzjgb7jgZXjgagNCivjgZPjgYTjgZEs44GV44Go44GXDQor44GK44Gf44GrLOOBn+OBkeOBleOBoA0KK+OBi+OBn+OBiuOBiyzjgb/jga7jgosNCivjgYrjgYvjgaAs44Gu44G244Go44KCDQor44G144GP44GX44G+LOOBjeOCiOOBvw0KK+OBiOOBoOOBquOBiyzjgbLjgo3jgobjgY0NCivjgZnjgZrjgY0s44KG44GG44GYDQor44GE44Gh44GL44KPLOOBquOBiuOChuOBjQ0KK+OBj+OCjeOBi+OCjyzjgZfjgpPjgZgNCivjgZXjgajjgYYs44GT44GG44GE44GhDQor44GK44GV44KPLOOBkeOCk+OBhOOBoQ0KK+OCguOBoeOBmuOBjSzjgbLjgo3jgY0NCivjgoTjgb7jgZfjgZ8s44G+44GV44GC44GNDQor44GE44Gh44GL44KPLOOBsuOBp+OBig0KK+OBteOBi+OBluOCjyzjgojjgZgNCivjgY/jgbzjgZ8s44G+44GV44GqDQor44Gr44GX44KA44KJLOOBvuOBk+OBqA0KK+OBreOBjuOBlyzjgZHjgpPjgYTjgaENCivjgZPjgpPjgaks44Gq44GK44G144G/DQor44G144KL44KELOOBguOBn+OCiw0KK+OBk+OBsOOChOOBlyzjgZPjgZvjgYQNCivjgZ/jgoDjgoks44G+44GV44GC44GNDQor44G/44Gk44Gv44GXLOOBvuOBleOBjQ0KK+OBj+OBvuOBluOCjyzjgZfjgaHjgo0NCivjgoTjgb7jgaAs44KI44GX44GKDQor44Gy44KN44GkLOOChOOBmeOBruOCig0KK+OBi+OBreOBoCzjgZfjgZLjgosNCivjgYLjgZ0s44Gb44GE44GE44GhDQor44GI44Gz44Gv44KJLOOBjeOCiOOBlw0KK+OChOOBmeOBhCzjgY3jgojjgbLjgZUNCivjgZnjganjgYYs44GL44Ga44Gy44GTDQor44KE44Gv44GfLOOBmeOBiOOBsuOCjQ0KK+OBleOBi+OBhCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZXjgYws44Gf44GL44GXDQor44KE44G+44GW44GNLOOBi+OBmuOBuw0KK+OBquOBi+OCgOOCiSzjga7jgbbjgYoNCivjgYTjgZbjgo8s44GT44GG44GYDQor44GC44KJ44GELOOBsuOBleOChuOBjQ0KK+OBhuOBtuOBi+OBnyzjgZHjgpPjgZgNCivjgo/jgZ/jgazjgY0s44G/44Gk44GODQor44Gy44GX44GfLOOBn+OBpOOBig0KK+OBi+OBqOOBhizjgbLjgo3jgbLjgZMNCivjgoTjgb7jga0s44Gg44GE44Gv44Gh44KNDQor44KE44G+44GX44GfLOOBi+OBpOOBvw0KK+OBruOCgOOCiSzjgojjgZfjgYoNCivjgoTjgarjgYQs44GL44Ga44G/44GkDQor44KA44KJ44GL44G/LOOChuOBn+OBiw0KK+OBguOBiuOBjSzjgobjgY3jgYoNCivjgoTjgZfjgo0s44GN44GE44GhDQor44GC44GV44G+LOOBj+OBq+OBig0KK+OBiuOBj+OBoCzjgbLjgo3jgZMNCivjgYTjgZfjgbDjgZcs44G+44GV44Gu44KKDQor44G/44Gq44G/44GnLOOBqOOCguOBsuOCjQ0KK+OBhOOBrOOBmuOBiyzjgojjgZfjgYoNCivjgajjgY3jgo8s44GI44G/44GTDQor44G/44GG44KJLOOCiOOBhuOBkw0KK+OBvuOBtuOBoSzjgbLjgo3jgaHjgYsNCivjgYrjgbDjgoks44GR44KT44GE44GhDQor44G+44Gk44GNLOOBleOBoOOBvw0KK+OBiOOBkOOBoSzjgZ/jgaDjgobjgY0NCivjgYrjgb8s44Gu44G844KLDQor44KP44Gf44Gq44G5LOOChuOBhuOBkw0KK+OBguOCieOBi+OCjyzjgojjgZfjgagNCivjgZnjgYzjga4s44Gy44KN44GXDQor44KE44GZ44GELOOCiOOBl+OCjQ0KK+OBv+OChOOCguOBqCzjgb7jgZXjgobjgY0NCivjgbXjgZjjgY7jgo8s44G+44GV44G/44GhDQor44GN44Gf44GM44KPLOOBguOBjeOCiQ0KK+OBn+OBq+OBkOOBoSzjgZnjgZnjgoANCivjgZPjgZjjgb4s44G+44GV44Gy44KNDQor44GC44G+44GL44KPLOOBteOBv+OBig0KK+OBiuOBrOOBjSzjgobjgYbjgZgNCivjgZ/jgarjgbks44Gy44Gn44GC44GNDQor44G+44KL44Gv44GXLOOBk+OBuOOBhA0KK+OChOOBqeOChCzjgojjgZfjga/jgosNCivjgYrjgYzjgY8s44KE44GZ44Gu44G2DQor44GV44GL44GfLOOBqOOBl+OBr+OCiw0KK+OBr+OCiSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjgY4s44Gy44KN44GXDQor44GC44GE44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBiuOBnyzjgZ/jgZHjgZcNCivjgYLjgY3jgoTjgb4s44Gf44GR44GXDQor44GX44G/44GaLOOBl+OCk+OBmA0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgokNCivjga/jgZ/jgoLjgags44GT44G444GEDQor44GG44GZ44GgLOOBsuOCjeOChOOBmQ0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaENCivjgarjgYvjgYzjgo8s44G/44GN44GKDQor44G+44Gk44Gw44KJLOOBv+OBpOOCiw0KK+OBj+OBrOOBjizjgojjgZfjgYLjgY0NCivjgYrjgYzjgo8s44KG44Gf44GLDQor44Gk44GYLOOChuOBn+OBiw0KK+OBi+OCj+OBhCzjgZPjgYbjgZgNCivjgZnjgYzjgo/jgoks44GE44GV44GKDQor44KA44GoLOOBmOOCheOBq+OBoQ0KK+OBiuOBsOOCiSzjgojjgZfjgbLjgo0NCivjgYvjgajjgYYs44GT44G444GEDQor44GL44G244KJ44GNLOOBsuOBp+OBvw0KK+OCj+OBi+OBn+OBuSzjgbLjgafjgYoNCivjgYrjgYzjgo8s44GC44GN44KJDQor44GE44KP44GV44GNLOOBqOOBiuOCiw0KK+OBquOCiuOBnyzjgojjgZfjgbLjgo0NCivjgYLjgY3jgoTjgb4s44Gf44GL44GKDQor44G/44Gk44GELOOBiuOBleOBteOBvw0KK+OBiOOCk+OBqSzjgZHjgpPjgZgNCivjgojjga3jgZ8s44Gf44GL44Gu44G2DQor44GC44GK44GELOOBi+OBmuOBig0KK+OBiuOBi+OCguOBqCzjgabjgaTjgYoNCivjgYrjgaTjgYss44Gv44KL44GKDQor44G144GP44KC44KKLOOChuOBn+OBiw0KK+OBpuOBl+OBvizjgojjgZfjgYoNCivjga/jgb4s44GL44Ga44Gf44GLDQor44KI44GX44GgLOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBi+OCj+OBuSzjgZfjgoXjgbLjgaENCivjgZ/jgarjgYss44GL44Ga44GKDQor44Gf44GL44Gv44GXLOOChOOBmeOBqOOBlw0KK+OBn+OBquOBuSzjgZ/jgYvjgobjgY0NCivjgYLjgZ0s44KG44GN44GKDQor44Gf44GL44GgLOOBpOOBqOOCgA0KK+OBv+OChOOBrizjgZPjgZfjgo0NCivjgYbjgYjjgZrjgb8s44Gy44KN44KG44GNDQor44GE44Gh44GL44KPLOOBiuOBleOCgA0KK+OBguOBleOCjyzjgZ/jgYvjgZcNCivjgYTjgarjgoLjgags44GR44GE44GE44GhDQor44KC44KK44KELOOChuOBn+OBiw0KK+OBquOBi+OBn+OBqyzjgYLjgY3jgYoNCivjgb/jgoTjgoLjgags44GN44KI44GXDQor44G/44GP44GrLOOCiOOBl+OBsuOBlQ0KK+OBjeOBn+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgoTjgZ/jgbks44GV44GL44GIDQor44Gq44GM44GL44KPLOOBi+OBmuOBvuOBlQ0KK+OChOOBqizjgbLjgafjgY0NCivjgZXjgY/jgb4s44Gv44GY44KBDQor44GC44KJ44GELOOCiOOBl+OBr+OCiw0KK+OBl+OBvuOBoCzjgoTjgZnjga7jgooNCivjgabjgZrjgYss44GN44KH44Gy44GhDQor44GG44GI44GuLOOBteOBv+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgYTjgaENCivjgYrjgY/jgo/jgaAs44Gy44KN44GXDQor44KI44GT44KE44G+LOOBqOOBl+OBig0KK+OCj+OBn+OBquOBuSzjgbLjgajjgZcNCivjgavjgZfjgoDjgoks44KE44GZ44GC44GNDQor44Gf44GL44G+44GkLOOBqOOCguOBteOBvw0KK+OBq+OBl+OCgOOCiSzjgYvjgZrjgYoNCivjgYTjgaHjgY0s44Gy44Go44GXDQor44GE44KP44GX44GfLOOBkeOCkw0KK+OBiuOBrizjgYTjgaHjgZ4NCivjgavjgZfjgY0s44GI44GE44GE44GhDQor44GV44KPLOOBn+OBoOOBvuOBlQ0KK+OBn+OBi+OBvyzjgb7jgZXjgbLjgacNCivjgoTjgZnjgbXjgY8s44KK44KH44Gy44GhDQor44GK44GfLOOBi+OBmuOBig0KK+OBiuOBi+OCguOBqCzjgb/jgaTjgosNCivjgZXjgYvjgYQs44Go44GX44GKDQor44G144GY44KC44GoLOOBquOBiuOBkw0KK+OBvuOBpOOCguOBqCzjgZfjgoXjgavjgaENCivjgYrjgbLjgoPjgbYs44GX44KF44Gr44GhDQor44Gr44GX44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBu+OCiuOBhuOBoSzjgb7jgarjgbYNCivjgYTjgZfjgoLjgags44KI44GX44GK44G/DQor44G+44Gk44KC44GoLOOCiOOBsuOBoQ0KK+OBn+OBkeOBhuOBoSzjgYLjgY3jga7jgooNCivjgoLjgajjgoTjgb4s44GT44GG44GE44GhDQor44KI44GX44Gq44GMLOOBn+OBpOOBvg0KK+OBteOCi+OBi+OCjyzjgbLjgo3jgZcNCivjgZ/jgavjgZDjgaEs44Gu44G244Gk44GqDQor44Gf44GR44GT44GXLOOBqOOBl+OBig0KK+OBpOOCgOOCiSzjgZ/jgaTjgYoNCivjgYrjga4s44GL44Ga44GKDQor44GK44GL44KC44GoLOOBiuOBleOCgA0KK+OBteOCi+OBnyzjgZHjgpPjgZgNCivjgavjgZfjga4s44Gy44KN44GXDQor44G/44Ga44Gf44GrLOOBsuOCjeOBvuOBlQ0KK+OBk+OChOOBvizjgoTjgZnjgYoNCivjgY3jgY/jgaEs44Go44GN44GKDQor44GK44GT44GG44GhLOOBl+OBkuOBruOCig0KK+OBi+OCj+OBnyzjgYvjgZrjgoQNCivjgY/jga/jgoks44GX44KF44Gy44GhDQor44G144KL44Gv44GXLOOBkeOBhOOBhOOBoQ0KK+OBn+OBi+OCiOOBlyzjgZfjgoXjgbLjgaENCivjgYvjgZks44Gq44KK44GKDQor44GC44G/44KC44GoLOOBl+OCk+OBhOOBoeOCjeOBhuOBhg0KK+OCgOOBreOBqOOBhizjgZPjgZfjgo0NCivjgb7jgaTjgoLjgags44GT44GG44GYDQor44Gf44GL44Gq44GXLOOBv+OBoeOBig0KK+OBguOBjeOBnyzjgojjgZfjgYoNCivjgZ/jgYvjga/jgZcs44G+44GV44Go44GXDQor44Gq44GM44GELOOBk+OBm+OBhA0KK+OCiOOBl+OBoCzjgZfjgZLjgYoNCivjgb7jgaTjgoLjgags44GV44Go44GXDQor44Go44GP44GgLOOBvuOBleOBsuOCjQ0KK+OBsuOCieOBhCzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgYrjgY/jgZfjgb4s44Gy44KN44KG44GNDQor44G+44GX44GfLOOBsuOBleOBlw0KK+OChOOBvuOBoCzjgZHjgpPjgYTjgaENCivjgZXjgY/jgonjgYQs44G+44GV44GC44GNDQor44Gf44GN44GW44KPLOOBn+OBi+OBlw0KK+OBvuOBmeOBkyzjgojjgZfjgobjgY0NCivjgZfjgpPjgYvjgo8s44GT44GeDQor44GK44Gf44GrLOOBteOBv+OBqOOCiA0KK+OBi+OCj+OBrizjga7jgbbjgobjgY0NCivjgYLjgonjgYvjgo8s44GZ44GZ44KADQor44GC44Gg44GhLOOBqOOBl+OBig0KK+OBhuOBoeOBoCzjgZnjgZnjgoANCivjgZPjga/jgoks44G+44GV44GC44GNDQor44GK44Gv44GXLOOBqOOBl+OBig0KK+OBi+OCgeOBiuOBiyzjgoTjgZnjgb/jgaENCivjgb/jgoDjgoks44Gf44GL44GXDQor44GE44GNLOOBpOOBi+OBlQ0KK+OBguOBl+OBmuOBiyzjgoTjgZnjgYLjgY0NCivjgoTjgb7jgoLjgags44G/44Gh44GKDQor44KI44GX44GgLOOBruOBnuOCgA0KK+OBr+OCieOBiuOBiyzjgZ/jgYvjgZcNCivjgYbjgovjgo/jgZcs44GX44GS44GKDQor44GK44KT44GgLOOBjeOBv+OBsuOCjQ0KK+OBhOOCk+OBqSzjgajjgoLjgYoNCivjgZ/jgZHjgarjgYss44GV44Go44GXDQor44G144GY44GV44KPLOOChuOBhuOBmA0KK+OBiuOCguOCiizjgbLjgo3jgYgNCivjgarjgYvjgoDjgoks44Gf44Gg44Gy44KNDQor44GX44KH44GYLOOCiOOBl+OBv+OBpA0KK+OBjeOBn+OBmOOBvizjgabjgaTjgYoNCivjgYTjgajjgYYs44Gf44GL44KG44GNDQor44Gy44KJ44GKLOOBkeOCk+OBmA0KK+OBmeOBv+OCguOBqCzjgajjgZfjgbLjgZMNCivjgarjgYvjgZ/jgass44GL44Ga44Gy44GTDQor44GC44KJ44GX44G+LOOCiOOBl+OBig0KK+OBi+OBn+OChOOBvizjgajjgb/jgYoNCivjgYbjgYjjgaAs44KI44GeDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OChOOBvuOBr+OBnyzjgbLjgo3jga7jgooNCivjgYrjgZ/jgass44GK44GV44KADQor44GE44GE44Gs44G+LOOBi+OBpOOChOOBmQ0KK+OBquOBjOOBleOCjyzjgbLjgo3jgZcNCivjgoTjgZnjgaAs44GR44KT44GYDQor44G144GP44GX44G+LOOBvuOBleOBig0KK+OBleOBi+OBjeOBsOOCiSzjgb7jgZXjgajjgZcNCivjgYvjgajjgYYs44G+44KC44KLDQor44KI44GT44GW44KPLOOBvuOBleOChuOBjQ0KK+OBi+OBqeOBrizjgbLjgo3jgZcNCivjgoTjgb7jgYrjgYss44KI44GX44Gu44KKDQor44GL44G/44Gf44GrLOOCiOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgYLjgY3jgokNCivjga7jgoLjgags44GL44Ga44Gf44GLDQor44GZ44GO44KC44GoLOOBruOBtuOChA0KK+OBteOBmOOBrizjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44KG44GN44GKDQor44Gv44GbLOOChuOBjeOBruOBtg0KK+OCguOCiizjgb7jgZXjgbLjgo0NCivjgYvjgo/jgbDjgZ8s44Gy44KN44G144G/DQor44GL44KP44Ge44GILOOCiuOCheOBmA0KK+OBr+OBl+OCguOBqCzjgaTjgajjgoANCivjgbLjgo3jgb7jgZUs44KI44GX44Gy44KNDQor44GN44GX44KC44GoLOOCiOOBl+OCjQ0KK+OBsuOCieOBpOOBiyzjgZfjgoXjgZgNCivjgYbjgYjjgaAs44KK44KH44Gy44GhDQor44GC44KJ44GELOOBguOChOOBkw0KK+OBhOOBhOOBoCzjgZ/jgYvjgZcNCivjgbLjgo3jgZfjgb4s44G144G/44Gf44GLDQor44GE44GV44GLLOOBi+OBmuOBvw0KK+OBmeOBmuOBjSzjgY3jgojjgZcNCivjgY/jgonjgoLjgaEs44Gy44KN44GNDQor44GV44GE44Go44GGLOOBiOOBpOOCjQ0KK+OBmeOBmuOBjSzjgajjgZfjgYvjgZoNCivjgbXjgYvjgoQs44Gb44GE44GE44GhDQor44GV44GL44GELOOBk+OBhuOBmA0KK+OBiuOCj+OBoCzjgZfjgofjgZgNCivjgYvjgoHjgoQs44G+44GV44GL44GkDQor44GP44GV44GG44KJLOOBiOOCieOBtg0KK+OCj+OBoCzjgbLjgafjgYoNCivjgZTjgags44GX44KH44Gy44GhDQor44Gy44KJ44G144GPLOOBoOOBhOOBl+OCkw0KK+OCguOCjeOChCzjgoTjgZnjgbLjgo0NCivjgYTjgZHjgaAs44GP44Gr44GKDQor44G+44GZ44GgLOOBv+OBruOCiw0KK+OBv+OBmuOBrizjgojjgZfjgobjgY0NCivjga/jgoTjgZcs44Go44GX44Gy44GTDQor44GC44GK44GNLOOBvuOBleOChuOBjQ0KK+OBk+OBsOOCiizjgZfjgofjgZ4NCivjgb/jgZXjgo8s44GL44Gk44Gy44KNDQor44Gf44GL44GOLOOCiOOBl+OBig0KK+OBiOOCk+OBqSzjgZ/jgYvjgYoNCivjgZnjgYzjgZXjgo8s44G+44GV44GKDQor44GK44KK44Gv44KJLOOBv+OBpOOBkA0KK+OBvuOBpOOBquOBjCzjgabjgaTjgZgNCivjgYvjgZXjgYQs44Go44GX44KNDQor44Gb44KA44KJLOOBqOOBl+OBig0KK+OBleOBj+OCieOBhCzjgYvjgaTjgb8NCivjgabjgonjgYvjgaks44Go44GX44GKDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBi+OCj+OBruOBuSzjgY3jgofjgbLjgaENCivjgYLjgYrjgbAs44GC44GN44KJDQor44KA44KJ44KC44GoLOOBsuOBp+OBqOOBlw0KK+OBpOOBvOOBhuOBoSzjgZXjgaDjgobjgY0NCivjgbXjgovjgZfjgocs44G+44GV44Gv44KLDQor44GX44Gw44KE44G+LOOBqOOBl+OBn+OBiw0KK+OChOOBvuOCguOBqCzjgY3jgojjgajjgZcNCivjgYbjgaHjgaAs44Go44GX44Gy44GTDQor44G+44GI44GW44KPLOOBvuOBleOChuOBjQ0KK+OBk+OCgOOCiSzjgZXjgbbjgo0NCivjgoTjgb7jgZXjgY0s44Gm44Gk44GKDQor44GG44GX44GNLOOBkeOCk+OBhOOBoQ0KK+OBvuOBoeOChOOBvizjgZvjgYTjgZgNCivjgbXjgZjjgazjgY0s44Go44KI44G/DQor44Gq44GL44KA44KJLOOBn+OBi+OBteOBvw0KK+OBj+OBmeOCguOBqCzjgY3jgojjgYLjgY0NCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GG44GI44KE44G+LOOBn+OBi+OBguOBjQ0KK+OBk+OBhOOBkSzjgojjgZfjgobjgY0NCivjga/jgZvjgYzjgo8s44KE44GZ44GC44GNDQor44G144KL44GL44KPLOOBi+OBhOOBoQ0KK+OChOOBvuOBoCzjgb7jgZXjgosNCivjgobjga/jgonjgY4s44KG44GN44KI44GXDQor44GK44GX44G+LOOBn+OBi+OBlw0KK+OBneOBrSzjgbXjgZjjgYoNCivjgajjgb4s44G144G/44GKDQor44Gf44GL44Gv44GXLOOBn+OBi+OBsuOCjQ0KK+OBi+OBkeOBr+OBnyzjgbLjgo3jgbXjgb8NCivjgYTjgZfjgYQs44Go44G/44GKDQor44GV44Go44GGLOOBguOBjeOBruOBtg0KK+OCgOOCieOChOOBvizjgojjgZfjgZgNCivjgbvjgorjgZDjgaEs44GL44Ga44G/DQor44Gq44GL44GW44GoLOOBl+OCh+OBmA0KK+OBleOBqOOBhizjgZnjgZnjgoANCivjgYvjga3jgZMs44G+44Gk44G/DQor44GL44GX44G+LOOBpuOCi+OBig0KK+OBqOOBkOOBoSzjgojjgZfjgYoNCivjgZPjgb/jgoTjgb4s44Go44GX44KG44GNDQor44KE44G+44GK44GLLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgYLjgY0NCivjgoLjgorjgZ8s44KE44GZ44Gy44KNDQor44KI44GT44GELOOBguOBjeOBig0KK+OBsuOCieOBhCzjgb/jgaTjgojjgZcNCivjgZfjgYTjgbDjgZcs44Gu44KK44KG44GNDQor44GL44Gt44GTLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBrSzjgZXjgaHjgbLjgo0NCivjgZvjgY3jgZDjgaEs44GX44Ga44GKDQor44G/44KC44KKLOOBvuOBleOBig0KK+OBjeOBj+OBoSzjgZfjgZLjgosNCivjgoTjgb7jgoLjgags44Gu44KK44KG44GNDQor44GC44KJ44GL44KPLOOBkeOCk+OBmA0KK+OBqOOCguOBj+OBqyzjgb7jgZPjgagNCivjgajjgb/jgZ8s44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBqOOBjOOBlyzjgorjgoXjgZ4NCivjgYvjgo/jgoDjgoks44Go44GX44Gu44G2DQor44G144GP44Gq44GMLOOBsuOCjeOCgA0KK+OBvuOBjeOBnyzjgY3jgb/jgYLjgY3jgokNCivjgZXjga4s44KI44GX44Gu44G2DQor44GV44Go44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBleOBi+OBrizjgZHjgYTjgYTjgaENCivjgaTjgaHjga/jgZcs44KI44GX44Gu44G2DQor44GG44GI44GuLOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgZ/jgZENCivjgajjgY/jgarjgYws44G+44GV44G144G/DQor44GE44Go44GGLOOBruOBtuOBr+OCiw0KK+OBsuOBleOBvuOBpCzjgabjgaTjgYoNCivjgYrjgaTjgYss44Gf44GL44Gy44GTDQor44GL44KP44KC44GoLOOBvuOBleOBn+OBiw0KK+OBruOCgOOCiSzjgYvjgaTjgZgNCivjgYvjga4s44Gf44GL44GKDQor44GG44GI44GV44GLLOOBvuOBleOBjQ0KK+OBteOBmOOCj+OCiSzjga7jgorjgYvjgZoNCivjgYrjgYzjgo8s44GX44KF44G444GEDQor44GP44KJ44GfLOOBruOBtuOBig0KK+OBr+OBquOBneOBqCzjgajjgZfjgbLjgo0NCivjgavjgZfjgYvjgo8s44GR44GE44GYDQor44GI44Gz44GZLOOBqOOBj+OBvw0KK+OChOOBmeOBruOCiizjgb/jga7jgosNCivjgZXjgYvjgYQs44GR44GE44GYDQor44G+44GI44GgLOOBmOOCheOCk+OChA0KK+OBteOBj+OBoCzjgZfjgZLjgYLjgY0NCivjgoTjgb7jgoLjgags44GR44KT44GeDQor44GX44GK44GfLOOBsuOBp+OBguOBjQ0KK+OCgOOCieOBi+OBvyzjgZHjgpPjgZgNCivjgYTjgY/jgb8s44GL44Ga44GKDQor44Gq44GL44GOLOOBqOOCiOOBqOOBlw0KK+OBqOOBj+OBvuOBpCzjgYvjgoHjgYoNCivjgZ/jgavjgYQs44GX44GS44GNDQor44GK44Gy44KD44G+LOOCiOOBl+OBhOOBoQ0KK+OBn+OBrizjgobjgZ/jgYsNCivjgYrjgZ8s44KG44GG44GYDQor44GP44G+44GuLOOBsuOCieOBig0KK+OBleOCj+OBkOOBoSzjgb7jgZXjgagNCivjgYLjgZXjga4s44Go44KC44G144G/DQor44GV44GL44GQ44GhLOOBqOOCiOOBteOBvw0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgojjgZcNCivjgYvjgajjgYYs44Gy44Gn44GKDQor44G+44GI44GL44KPLOOCiOOBl+OBr+OCiw0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgZcNCivjgb7jgaTjgoLjgags44KI44GX44GC44GNDQor44KE44G+44Gq44GLLOOBl+OBkuOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgZrjgb8NCivjgbXjgZjjgZ8s44KE44GZ44G+44GVDQor44KE44GOLOOBqOOCguOCiA0KK+OBhOOCj+OBhCzjgZ/jgYvjgZcNCivjgbXjgY/jgZfjgb4s44KG44G/DQor44G144KL44GL44KPLOOBn+OBi+OBig0KK+OBiuOBjOOBnyzjgajjgZfjgobjgY0NCivjgZnjgZrjgY0s44GR44KT44GYDQor44GX44GL44G+LOOBn+OBi+OBoeOBuw0KK+OBjeOBl+OCguOBqCzjgbLjgo3jga7jgbYNCivjgZPjgo3jgY4s44GC44GN44GKDQor44G144Gf44G/LOOBvuOBleOBj+OBqw0KK+OChOOBl+OCjSzjgYvjgZrjgYoNCivjga/jgorjgYTjgZEs44Gu44KK44KG44GNDQor44GX44KA44KJLOOBpOOBqOOCgA0KK+OBquOBjOOBj+OCiSzjgYvjgZrjgYoNCivjgb/jgarjgb8s44Gf44GL44GXDQor44Go44GP44Gq44GMLOOBi+OBmuOBig0KK+OBn+OBquOBiyzjgajjgZfjgYoNCivjgabjgonjgZXjgY0s44GI44GE44GYDQor44GL44Go44GGLOOBk+OBhuOBmA0KK+OBv+OBmuOBrizjgZ/jgaTjgYoNCivjgZ/jgoLjgags44G+44GV44G/DQor44GG44Gh44GgLOOBvuOBleOBn+OBiw0KK+OBn+OBkeOBhOOBoSzjgbLjgafjgb8NCivjgbLjgbPjga4s44GT44GG44GE44GhDQor44GT44Gw44KE44GXLOOBvuOBleOBruOCig0KK+OCj+OBn+OBquOBuSzjgZ/jgaDjgbLjgZMNCivjgbXjgYvjgaAs44Gf44GL44GXDQor44GE44GX44Gf44GrLOOBl+OCheOBq+OBoQ0KK+OBhOOBpyzjgYvjgaTjgb8NCivjgavjgYTjgZXjgags44GN44KI44GXDQor44GZ44Gq44Gv44KJLOOBqOOBl+OBig0KK+OBl+OBv+OBmizjgojjgZfjga/jgosNCivjgYvjgajjgYYs44GC44KK44G+44GVDQor44Gq44GE44Go44GGLOOBhOOBoeOCjeOBhg0KK+OBk+OBhOOBkSzjgZPjgYbjgZgNCivjgY3jgZ/jgoDjgoks44GN44KI44GXDQor44GL44GM44KPLOOBteOBj+OCgA0KK+OBhOOBkeOBoCzjgZfjgo0NCivjgYvjga4s44Go44GK44KLDQor44GK44GL44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBk+OBsOOChOOBlyzjgbLjgajjgZcNCivjgYTjgZfjgYQs44Gy44KN44GL44GaDQor44GV44GI44GNLOOCiOOBl+OChuOBjQ0KK+OBleOCj+OBoCzjgbLjgo3jgZcNCivjgZTjgags44KK44KH44G444GEDQor44GK44GuLOOBsuOCjeOBn+OBoA0KK+OBteOBquOBiuOBiyzjgb7jgZXjgbLjgo0NCivjgZfjgpPjgoQs44GL44Ga44Gy44GVDQor44G744KT44GW44KPLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgobjgY0NCivjgYTjgZfjga4s44GX44KH44GYDQor44GE44GK44GPLOOBvuOBleOBig0KK+OBguOCieOBjSzjga7jgorjgobjgY0NCivjgbXjgZjjgo/jgY0s44GY44KF44KT44GYDQor44GE44Gh44KA44KJLOOBqOOBmeOBkQ0KK+OBr+OChOOBlyzjgajjgojjgbLjgZMNCivjgoLjgoos44Go44GX44KG44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OChuOBjeOBteOBjSzjgZ/jgYvjgZcNCivjga/jgY7jgoLjgags44Gd44GYDQor44Gv44GX44KC44GoLOOBleOBoOOBsuOCjQ0KK+OBjeOBn+OChOOBvizjgb7jgZXjgbLjgo0NCivjgbXjgZjjgoLjgoos44G+44GZ44KG44GNDQor44GK44GP44GuLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjga7jgbbjgobjgY0NCivjgZ/jgZQs44G+44GV44Gy44KNDQor44GC44GV44GELOOBvuOBleOBguOBjQ0KK+OCguOCiuOBrizjgb7jgZXjgYvjgZoNCivjgb/jgarjgYQs44Gy44GL44KLDQor44KC44KK44GV44KPLOOBl+OBkuOBmA0KK+OBquOCiuOBleOCjyzjgaTjgajjgoANCivjgoLjgorjgoLjgags44Gy44Gn44Go44GXDQor44GT44Gw44KE44GXLOOCiOOBhuOBkw0KK+OBl+OBvuOBoCzjgb/jga7jgosNCivjgZnjgZrjgY0s44G+44GV44GNDQor44G144GP44GgLOOCiOOBl+OBleOBoA0KK+OBguOCieOBhCzjgZ/jgY/jgZgNCivjgZ/jgavjgoTjgb4s44GX44GS44KLDQor44GK44GL44KC44GoLOOBvuOBleOBsuOBlQ0KK+OBoOOBhOOCguOCkyzjgYTjgo/jgYoNCivjga/jgoTjgZcs44Gy44Gn44GKDQor44GE44GX44GgLOOCiOOBl+OBpuOCiw0KK+OBsuOCjeOBleOCjyzjgZHjgpPjgZgNCivjgojjgZfjgYrjgYss44GK44GV44KADQor44G+44Gk44KC44GoLOOBv+OBpOOBig0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgZcNCivjgY3jgZ8s44KI44GX44Gy44KNDQor44Gr44GX44KA44KJLOOBsuOCjeOBlw0KK+OBr+OBo+OBqOOCiizjgZHjgYTjgZMNCivjgoTjgb7jgoLjgags44Go44KI44GTDQor44GE44Go44GGLOOBteOBv+OBkw0KK+OBjeOBn+OCgOOCiSzjgb7jgZXjgosNCivjgZ/jgarjgYss44KI44GX44Gu44KKDQor44GE44GK44GNLOOBsuOBp+OBjQ0KK+OBi+OBvuOBnyzjgb/jgZXjgZMNCivjgZfjgb/jgZos44GR44GEDQor44G+44GZ44GK44GLLOOBguOBjeOBruOBtg0KK+OBleOCj+OBoCzjgZfjgoXjgbLjgaENCivjgarjgYvjgYTjgZcs44G+44Gk44GKDQor44KP44Gf44Gq44G5LOOBv+OBruOCiw0KK+OCiOOBl+OBluOCjyzjgojjgZfjgarjgYoNCivjgZXjgZXjgYrjgYss44G144GP44GKDQor44Gf44GL44G/LOOCiOOBl+OBv+OBoQ0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgZrjgb8NCivjgYTjgb7jgbXjgY8s44GX44KT44GE44GhDQor44GL44G/44KELOOBleOBi+OBiA0KK+OCj+OBlSzjgZXjgarjgYgNCivjgY3jgY/jgaEs44GX44GS44GL44GaDQor44GG44GL44GELOOBsuOBp+OBig0KK+OBhOOCj+OBvizjgYvjgZrjgYoNCivjgaTjgZgs44GC44GN44KJDQor44Gf44GR44GgLOOBvuOBmeOBvw0KK+OBm+OBqOOBjOOCjyzjgajjgb/jgYoNCivjgZPjgZfjgoDjgoks44Go44G/44KE44GZDQor44KP44Gf44Gq44G5LOOBk+OBhuOBmA0KK+OBhuOBleOBvyzjgbLjgo3jgZcNCivjgYrjgYvjgaAs44Gy44Gn44GKDQor44G144GY44KP44KJLOOBl+OCh+OBkw0KK+OBi+OBqOOBhizjgZ/jgZHjgobjgY0NCivjgYTjgZfjga/jgoks44G+44GV44Gy44KNDQor44Gy44Gq44GfLOOBguOBjeOBig0KK+OBhuOBiOOBmeOBjizjga7jgorjgYLjgY0NCivjgZfjgbDjgZ8s44GX44KH44Gy44KHDQor44GK44GP44GgLOOBqOOBl+OBig0KK+OBmeOBquOChOOBvizjgZ/jgaDjgZcNCivjgYTjgb7jgYQs44Go44G/44GIDQor44Gq44GL44KA44KJLOOBsuOBp+OBig0KK+OBquOBi+OCguOCiizjgYLjgY3jgbLjgZMNCivjgbXjgYvjgZXjgo8s44G/44GN44GKDQor44G/44Ga44GfLOOBm+OBhOOBhOOBoQ0KK+OBiuOBrizjgbbjgpPjgZgNCivjgZXjgYTjgajjgYYs44GV44Gg44Gk44GQDQor44GX44KF44GpLOOBl+OBkuOBqOOBlw0KK+OBteOBj+OBhCzjgb7jgZXjgZcNCivjga7jgaAs44GY44KF44Gr44GhDQor44GK44GuLOOBv+OBpOOBruOBtg0KK+OBk+OBjOOBvyzjgajjgZfjgbLjgZMNCivjgb/jgY0s44GX44KH44GYDQor44GE44GR44GgLOOChOOBmeOChuOBjQ0KK+OBteOBmOOCguOCiizjgb7jgZXjgosNCivjgZ/jgYvjgaAs44GN44KH44G444GEDQor44GE44GR44GgLOOBl+OBkuOBsuOCjQ0KK+OBhOOBqOOBhizjga7jgbbjgYvjgZoNCivjgo/jgZ/jgarjgbks44G+44GV44KLDQor44GV44KP44GgLOOCiOOBl+OBig0KK+OBvuOBiOOBmOOBvizjgYLjgY3jgbLjgZMNCivjgYTjgarjgoDjgoks44Gu44G244GKDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OBquOBi+OBmOOBvizjgoDjga3jgbLjgZUNCivjgYTjgo/jgb4s44GX44KT44GE44GhDQor44KP44GL44Gk44GNLOOBi+OBmuOBlw0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44G/44Gu44KLDQor44GL44GV44Gv44KJLOOBn+OBpOOBsuOBkw0KK+OBq+OBl+OChOOBvizjgYvjgarjgYgNCivjgZnjganjgYYs44Gv44KL44GNDQor44GK44GL44G5LOOCiOOBl+OBvuOBlQ0KK+OBteOBj+OBsCzjgb7jgZXjgobjgY0NCivjgb7jgaTjgarjgYws44G144G/44GKDQor44GV44GL44GELOOBqOOBl+OBsuOBkw0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgarjgYvjgoTjgb4s44Gu44G244GeDQor44KI44Gt44GgLOOBruOBtuOBn+OBiw0KK+OBj+OBvuOBnyzjgYvjgZrjgbLjgo0NCivjgZPjgoTjgb4s44G+44GV44G144G/DQor44KI44Gt44KE44G+LOOBvuOBk+OBqA0KK+OBteOBmOOBi+OCjyzjgZnjgZnjgoANCivjga/jgorjgYzjgoQs44Gy44KN44GXDQor44Gv44Gb44GM44KPLOOBl+OBruOBtg0KK+OCiOOBl+OBoCzjgojjgZfjgobjgY0NCivjgY/jgZnjga7jgY0s44Gy44Gn44GNDQor44Gf44GL44Gv44GXLOOCiOOBl+OCjQ0KK+OBquOBjOOBnyzjgZ/jgYvjgZcNCivjgZ3jga7jgY/jgoks44GT44GG44GYDQor44G+44GZ44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBiuOBjuOBr+OCiSzjgZjjgoXjgbLjgaENCivjgojjgZfjgaAs44Go44GX44Gy44KNDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OBiOOBoCzjgoTjgZnjgYoNCivjgarjgYvjgZjjgocs44Gy44KN44Gy44GTDQor44GE44GE44Ga44GLLOOChuOBjeOBig0KK+OBpuOCieOBq+OBlyzjgZ/jgYvjgoTjgZkNCivjgbXjgY/jgYQs44GR44KT44GeDQor44Gn44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBleOBiOOBjSzjgbLjgo3jgobjgY0NCivjgYbjgaHjgaAs44Gf44GR44GXDQor44GX44GE44GqLOOBkeOCk+OBmA0KK+OBteOCi+OChCzjgbLjgo3jgYLjgY0NCivjgarjgYzjgY/jgbws44GL44Ga44Gy44GoDQor44Gm44KJ44GG44GhLOOBn+OBoOOBlw0KK+OBiuOBn+OBiyzjgojjgZfjgbXjgb8NCivjgbXjgZjjgojjgZcs44GV44Gh44GTDQor44GV44GE44Go44GGLOOBl+OCk+OBmA0KK+OBj+OCjeOBleOCjyzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44KI44GX44GKDQor44KI44GX44GuLOOBsuOCjeOBlw0KK+OBk+OBv+OChCzjgb7jgarjgbYNCivjgoTjgb7jgYzjgZ8s44G+44GV44Gy44GTDQor44Gk44KELOOBm+OBhOOBhOOBoQ0KK+OBq+OBl+OBrizjgZ/jgoLjgaQNCivjgYbjgaHjgaAs44Gu44G844KLDQor44KP44Gf44Gq44G5LOOBvuOBleOBruOBtg0KK+OCguOCiuOBnyzjgZvjgYTjgZgNCivjgZPjgZfjgaAs44GL44Ga44Gy44GTDQor44Gy44KN44GbLOOBl+OBkuOBr+OCiw0KK+OCiOOBl+OCgOOCiSzjgbLjgafjga7jgooNCivjgb/jgYbjgoks44Gu44G244GKDQor44GT44GE44Ga44G/LOOCiOOBl+OBr+OCiw0KK+OBpuOCieOBiizjgYrjgZXjgoANCivjgZvjgYzjgo8s44Gy44Gn44GC44GNDQor44GL44GE44Ga44GLLOOBvuOBleOBguOBjQ0KK+OBteOBj+OBvuOBmSzjgajjgYrjgosNCivjgYTjgajjgYbjgZos44G+44GV44GKDQor44Gb44GN44GM44G/LOOBteOBleOBiA0KK+OBteOBmCzjgZHjgpPjgZ0NCivjgojjgZfjgoDjgoks44Gf44GL44GXDQor44G144KL44KC44GoLOOBi+OBmuOCiOOBlw0KK+OBn+OBjeOBnyzjgajjgZfjgYoNCivjgYrjgYvjgaAs44GL44GK44KLDQor44Gf44GL44Gv44GXLOOBruOCiuOChuOBjQ0KK+OBn+OBq+OBteOBmCzjgbLjgZXjgYoNCivjgYTjgb7jgYrjgYss44GL44Ga44G/44GhDQor44KP44Gf44Gq44G5LOOBruOBvOOCiw0KK+OChOOBvuOCguOBqCzjgZPjgZ4NCivjgojjgaAs44KK44KH44G444GEDQor44G144GL44KE44G+LOOBi+OBpOOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgojjgZfjgYvjgZoNCivjgZXjga4s44Gy44Gn44Gu44G2DQor44Gf44GL44Gv44GXLOOBv+OBpOOBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgb/jgaHjgYoNCivjgoTjga4s44GC44GN44KJDQor44GC44GN44GwLOOBmeOBmuOCiA0KK+OBv+OBqeOCiuOBi+OCjyzjgZjjgofjgZgNCivjgZ/jgYvjgZcs44Gy44KN44GXDQor44G144KL44GL44KPLOOBhOOBmuOBvw0KK+OBsuOBjeOBnyzjgY3jgojjgZgNCivjgYrjgZbjgY0s44KI44GX44KG44GNDQor44GC44GK44GNLOOBvuOBquOBtg0KK+OBleOBiOOBkOOBlSzjgbLjgo3jgbLjgZUNCivjgbXjgZjjgoLjgags44GC44GN44KJDQor44GT44Gr44GXLOOBvuOBleOBguOBjQ0KK+OBiuOBq+OBlyzjgYvjgZrjgbLjgo0NCivjgbLjgZDjgaEs44GR44KT44GYDQor44GP44G844GfLOOBi+OBiuOCiw0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgYoNCivjgbXjgovjgYvjgo8s44Gy44KN44GXDQor44Gq44KK44GfLOOBsuOBleOBig0KK+OBn+OBquOBiyzjgY3jgb8NCivjga/jgZ/jgZHjgoTjgb4s44KG44KKDQor44G/44KE44KC44GoLOOBjeOCiOOBlw0KK+OBruOBluOBjSzjgbLjgZXjgZcNCivjga/jgZvjgYzjgo8s44GL44Ga44KI44GXDQor44GX44KJ44GL44KPLOOBsuOCjeOBv+OBpA0KK+OBguOBhOOBoCzjgb/jgojjgZMNCivjgbLjgo3jgYvjgo8s44G/44Gu44KLDQor44KK44KF44GL44KPLOOBiOOBhOOBmA0KK+OChOOBvuOBkOOBoSzjgojjgZfjgYLjgY0NCivjgY/jgorjgZXjgY0s44GX44GS44GK44G/DQor44KC44KK44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBj+OBvOOBnyzjgbLjgo3jgZcNCivjgY/jgb7jgZXjgZMs44KG44GG44GYDQor44GC44Gg44GhLOOBl+OCheOCk+OBmeOBkQ0KK+OBk+OBrizjgbXjgZjjgY0NCivjgoTjgb7jgoLjgags44GY44KF44Gr44GhDQor44GE44KP44GELOOBl+OCjQ0KK+OBiuOBr+OCiSzjgb7jgZXjgagNCivjgYTjgZfjga/jgoks44GE44Gh44KN44GGDQor44GC44GK44GNLOOBteOBleOBhOOBoQ0KK+OCguOCiizjgabjgaTjgYoNCivjgo3jgaPjgb3jgpPjgY4s44G/44GV44GKDQor44GL44Go44GGLOOChOOBmeOBr+OCiw0KK+OBleOBqOOBhizjgaHjgofjgZfjgo0NCivjgb7jgYjjgZ7jga4s44KI44GX44Gy44GTDQor44G144GY44KC44GoLOOBk+OBuOOBhA0KK+OBn+OBq+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgavjgZcs44Gk44KI44KADQor44Gf44GL44Gv44GXLOOBvuOBmeOBvw0KK+OBquOBi+OBhCzjgbLjgafjgYoNCivjgZ/jgYvjga/jgZcs44KI44GX44G/44GhDQor44GX44KCLOOBvuOBleOBguOBjQ0KK+OBl+OBsOOBnyzjgoLjgorjgZfjgZINCivjgbXjgovjgb/jgaEs44GR44KT44GfDQor44Gf44GR44GgLOOBsuOCjeOBguOBjQ0KK+OBteOBmOOBnyzjgYjjgaTjgZMNCivjgYvjgY7jgoTjgb4s44KK44KH44GfDQor44KP44GhLOOBsuOBp+OBig0KK+OBteOBmOOBnyzjgajjgoLjga7jgooNCivjgZPjgpPjgaks44Gf44GR44GXDQor44G+44Gk44KC44GoLOOCiOOCiuOBkw0KK+OBteOBj+OBhCzjgb7jgZXjgYLjgY0NCivjgZnjgYzjgo/jgoks44GT44GG44GE44GhDQor44G144GL44KE44G+LOOChOOBmeOBig0KK+OBhOOBvuOBhCzjgYjjgYTjgZjjgo0NCivjgZXjgajjgYYs44Gy44Gn44Gu44G2DQor44GL44Gq44GW44KPLOOBsuOCjeOBlw0KK+OBteOBoeOBluOBjSzjgobjgZ/jgYsNCivjgaTjgYvjgaAs44GX44KT44GYDQor44GE44GX44GW44GNLOOBi+OBmuOBvw0KK+OBqOOBj+OCiSzjgZ/jgZHjgbXjgb8NCivjgajjga7jgZXjgY0s44KG44Gy44Gh44KNDQor44Gf44GL44GNLOOBhOOBleOCgA0KK+OBteOBmOOBnyzjgojjgZfjgYoNCivjgarjgYzjgZss44GC44GN44KJDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBn+OBpOOBvyzjgabjgaTjgoQNCivjgoTjgb7jgoLjgags44G+44GV44Gu44KKDQor44G144GP44GfLOOBsuOBqOOBlw0KK+OBj+OCj+OBr+OCiSzjgZfjgZLjga7jgooNCivjgbXjgZjjgZ8s44Gf44GL44GXDQor44GE44Gq44GP44G+LOOBsuOBp+OChuOBjQ0KK+OBv+OBleOBiizjgZPjgYbjgZjjgocNCivjgarjgYvjgZfjgZ8s44GC44GN44KJDQor44GK44GP44KE44G+LOOBvuOBleOBn+OBiw0KK+OBquOBjOOBiCzjgY/jgavjgbLjgZMNCivjgarjgYzjgYQs44GL44Ga44GKDQor44KE44G+44GW44GNLOOBiuOBleOCgA0KK+OBl+OCieOBhOOBlyzjgZfjgofjgbLjgaENCivjgYbjgYjjgaAs44Gf44GL44KG44GNDQor44GK44GY44G+LOOBv+OBjeOBig0KK+OBsuOCjeOBmyzjgoLjgajjgojjgZcNCivjgbLjgonjga4s44Gy44Gn44GKDQor44G144KL44GfLOOBsuOCjeOChuOBjQ0KK+OBk+OBrOOBvizjgozjgYTjgZMNCivjgZ/jgYvjgoTjgb4s44Gy44KN44KG44GNDQor44GC44GV44GX44GfLOOCiOOBl+OBguOBjQ0KK+OCiOOBpOOBr+OBlyzjgobjgbLjgaENCivjgaTjgaHjgoQs44Gf44GL44Gq44GKDQor44GK44Gr44GXLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgYjjgYTjgZ4NCivjgZfjgZrjga4s44Go44GX44GTDQor44Gv44GX44G5LOOBk+OBng0KK+OBu+OCiuOBhCzjgb7jgZPjgagNCivjgarjgYzjgYrjgYss44KG44GG44GYDQor44GP44KK44GfLOOBi+OBmuOBsuOCjQ0KK+OBjeOBsCzjgZfjgofjgZQNCivjgYTjgaAs44G+44GV44KLDQor44G144GP44Go44G/LOOBl+OCh+OBsuOBoQ0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgosNCivjgYTjgoos44Gy44KN44GC44GNDQor44GV44GfLOOBvuOBleOBruOBtg0KK+OBvuOCi+OChOOBvizjgb7jgZXjgosNCivjgYLjgYrjgoTjgb4s44Gf44GL44GKDQor44GX44KT44GpLOOBi+OBiuOCiw0KK+OBguOBhOOBi+OCjyzjgajjgoLjga/jgosNCivjgZXjgYvjga7jgYbjgYgs44G+44GV44G144G/DQor44G144GY44G+44GNLOOBsuOCjeOBlw0KK+OBi+OCj+OBr+OCiSzjgZ/jgYvjgb8NCivjgoDjgonjgZ8s44GE44GV44GKDQor44KI44GX44GgLOOBl+OCh+OBmA0KK+OBhOOBn+OBj+OCiSzjgYTjgZXjgoANCivjgZjjgZ7jgbDjgoks44KK44KH44Gy44GhDQor44Gf44Gq44GLLOOBv+OCiOOBlw0KK+OBi+OBmOOCj+OCiSzjga7jgorjgZMNCivjgZ/jgarjgYss44GX44KH44G444GEDQor44Gv44GZ44GE44GRLOOBleOBquOBiA0KK+OBqOOBvizjgb7jgaHjgZMNCivjgYvjgo/jgY3jgZ8s44GL44Ga44G/DQor44G+44Gk44KC44GoLOOBruOBvOOCiw0KK+OBr+OBm+OBjOOCjyzjgZHjgpPjgYTjgaENCivjgbXjgZjjgYQs44G+44GZ44GQDQor44Gu44KA44KJLOOBsuOCjeOBteOBvw0KK+OCiOOBhuOBk+OBnyzjgZfjgZLjgosNCivjgYvjgarjgZbjgo8s44KE44GZ44GKDQor44G+44GZ44KE44G+LOOBjeOCh+OBmA0KK+OBi+OBrizjgZHjgpPjgYTjgaENCivjgbXjgarjgoTjgb4s44Gf44Gg44GC44GNDQor44KE44G+44GX44GfLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgbLjgafjgobjgY0NCivjgYvjgoHjgoLjgags44KG44Gy44GhDQor44GE44Go44GGLOOBpuOBpOOChA0KK+OBiuOBj+OCgOOCiSzjgogNCivjgbXjgZjjgYQs44Go44GX44GKDQor44GN44Gv44KJLOOBl+OCheOBsuOBoQ0KK+OBruOCgOOCiSzjgYrjgZXjgoANCivjgYLjgY/jgZ/jgYzjgo8s44GX44KF44GYDQor44GE44GX44GgLOOChuOBv+OBkw0KK+OBhuOCgeOBr+OCiSzjgYLjgY3jgokNCivjgYrjgY4s44KE44GZ44Gy44GTDQor44GT44KT44GpLOOBv+OBpOOBig0KK+OBn+OBkeOBoCzjgajjgYrjgosNCivjgb7jgaTjgYQs44G/44Gh44Gf44GLDQor44GL44G/44GK44GLLOOBsuOBp+OBig0KK+OBi+OCguOBl+OBnyzjgZPjgZ4NCivjgoTjgarjgY7jgZXjgo8s44GX44KT44GE44GhDQor44Gf44GR44GG44GhLOOBsuOCjeOBlw0KK+OCguOCk+OBvizjgYjjgaTjgYoNCivjgYTjgYTjgaAs44GN44Gh44Gy44GTDQor44Gv44Gb44GM44KPLOOBvuOBleOBi+OBmg0KK+OBquOBjOOBu+OCiizjgojjgZfjgbXjgb8NCivjgoLjgorjgYrjgYss44GN44KI44GXDQor44Gr44GX44KE44G+LOOBl+OBkuOBig0KK+OChOOBvuOCguOBqCzjgabjgovjgYoNCivjgYTjgZfjgaAs44Gf44GL44GXDQor44G144KL44GpLOOCiuOBleOBjw0KK+OBi+OCk+OBoCzjgaTjgajjgoANCivjgYTjgZfjgaAs44GP44Gr44GKDQor44GV44GE44Go44GGLOOBl+OBkuOCiw0KK+OBjeOCgOOCiSzjgarjgYrjgobjgY0NCivjgYTjgo/jgb8s44Gv44KL44GKDQor44KC44KKLOOBkeOBhOOBkw0KK+OBn+OBi+OChOOBvizjgbXjgb/jgYjjgYQNCivjga/jgoTjgZfjgZDjgaEs44G+44GV44KLDQor44GV44GE44Go44GGLOOBsuOCjeOBvw0KK+OBl+OBsOOBn+OBjSzjgZ/jgZHjgbLjgo0NCivjgYrjgY7jga/jgoks44G+44KC44KLDQor44GL44Go44GGLOOBv+OBruOCiw0KK+OBteOBj+OBqCzjgYvjgarjgYgNCivjgYrjgaAs44Go44GX44GYDQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaDjga7jgooNCivjga/jgb7jgaAs44GC44GN44GKDQor44GK44GM44GV44KP44KJLOOChOOBmeOBig0KK+OCgOOCieOBjSzjgajjgZfjgYoNCivjgYrjga/jgZcs44G+44GV44GKDQor44Gf44GL44GuLOOBvuOBleOBguOBjQ0KK+OBquOBi+OBluOCjyzjgZfjgZLjgosNCivjgb/jgoTjgZgs44Gf44GL44Gy44KNDQor44GZ44GI44Gq44GMLOOBsuOBqOOBlw0KK+OBn+OBn+OBjSzjgoTjgZnjga7jgbYNCivjgojjgZfjgaAs44GX44KF44GE44GhDQor44GC44GK44GNLOOBl+OCh+OBng0KK+OBmeOBjuOCgOOCiSzjgYLjgY3jgbLjgZMNCivjgYTjgajjgYYs44KE44GZ44GKDQor44Gf44GL44Gv44GXLOOBj+OBq+OBguOBjQ0KK+OBmeOBmuOBjSzjgojjgZfjga/jgosNCivjgYvjgZ/jgoTjgb4s44GE44GV44G/DQor44GV44GE44Go44GGLOOBquOBiuOChA0KK+OBn+OBmOOBvizjgbLjgafjgYLjgY0NCivjgYLjgbks44G+44GV44Gy44KNDQor44Gq44GL44GY44G+LOOChuOBn+OBiw0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgbLjgo0NCivjgo/jgY3jgZbjgYss44Gm44Gk44KEDQor44GV44GTLOOBi+OBmuOBsuOBkw0KK+OBiuOBpOOBiyzjgYLjgY3jgbLjgagNCivjgaTjgYvjgoLjgags44Gf44GL44GXDQor44GE44Gu44GG44GILOOBi+OBmuOBqOOBlw0KK+OBquOBjOOBiizjgYLjgY3jgbLjgo0NCivjgYbjgonjgbAs44KE44GZ44GKDQor44GT44GY44G+LOOBguOBjeOCiQ0KK+OBn+OBkeOBoCzjgYTjgo/jgYoNCivjgYLjgYrjga4s44Gy44Gn44GXDQor44GE44Ga44GL44KPLOOBi+OBiuOCiw0KK+OBj+OBqeOBhizjgb7jgZXjgajjgZcNCivjgarjgYvjgoDjgoks44GX44KT44GE44GhDQor44G+44Gk44GKLOOBhOOBleOCgA0KK+OBhOOBquOBjOOBjSzjgajjgZfjgbLjgZMNCivjgavjgZfjgoLjgags44G+44GV44GXDQor44GE44Gu44GG44GILOOBsuOCjeOBlw0KK+OBiuOBruOBp+OCiSzjgojjgbLjgaHjgo0NCivjgYTjgZfjgZbjgYss44GX44GS44GNDQor44Gv44GO44KP44KJLOOBvuOBk+OBqA0KK+OBteOCi+OBnyzjgb7jgZXjgbLjgZMNCivjgYbjgYjjgZjjgb4s44GV44Gg44GoDQor44Gs44G+44GfLOOBqOOCguOBsuOCjQ0KK+OBiOOCk+OBqSzjgZnjgZnjgoANCivjgYvjgYzjgoTjgb4s44G144G/44GKDQor44KG44KK44KC44GoLOOBqOOBiuOCiw0KK+OBteOBoSzjgb7jgZXjgYoNCivjgbXjgZjjgYrjgY0s44KE44GZ44Gy44KNDQor44GV44GE44Go44GGLOOChuOBhuOBmA0KK+OBvuOBpOOCguOBqCzjgZjjgavjgaENCivjgbLjgo3jgZss44Gu44G244GKDQor44Gw44GwLOOBi+OBmuOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgajjgZfjgobjgY0NCivjgZnjgZrjgY0s44G+44GV44G144G/DQor44Gq44GL44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBjeOBlyzjgZfjgofjgbLjgaENCivjgYLjgZXjga4s44Gy44Go44GXDQor44GI44KT44GpLOOBpuOBpOOChA0KK+OBhOOBl+OBsOOBlyzjgajjgZfjgbLjgZMNCivjgYvjgYTjgaAs44GR44KT44GeDQor44GE44GR44GY44G+LOOBvuOBleOCiw0KK+OBr+OCieOBoCzjgajjgb/jgYoNCivjga/jgb7jga4s44GX44KF44Gy44GhDQor44GL44KP44GELOOBvuOBleOBsuOCjQ0KK+OCj+OBoCzjgZfjgpPjgoQNCivjgZXjgajjgYYs44Gy44Go44GXDQor44Gf44Gq44GLLOOBn+OBoOOBig0KK+OBguOBj+OBpCzjgbLjgo3jga7jgbYNCivjgYTjgajjgYYs44G+44GV44Go44GXDQor44GC44KT44Gp44GGLOOBv+OBpOOBguOBjQ0KK+OBguOBhOOBluOCjyzjgojjgZfjgYvjgaQNCivjgY/jgbzjgZ8s44GY44KF44Gy44Gh44KNDQor44G144GL44GG44G/LOOBsuOCjeOChuOBjQ0KK+OBl+OBv+OBmizjgb7jgZXjgb8NCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44Gq44G/44GNLOOBsuOCjeOBlw0KK+OBruOBluOCjyzjgb7jgZXjgYvjgZoNCivjgZPjgYTjgZ/jgbDjgZcs44GC44GN44GKDQor44Gf44Gm44GE44GXLOOBoOOBhOOBlA0KK+OBi+OCj+OBi+OBvyzjgb/jgaTjgYoNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GC44GNDQor44GK44Gu44Ga44GLLOOBqOOBl+OBig0KK+OBn+OBkOOBoSzjgZPjga7jgoANCivjgZ/jgYvjga/jgZcs44G/44Gh44KLDQor44GV44Go44GGLOOBqOOBl+OBvuOBlQ0KK+OBj+OCj+OBr+OCiSzjgbLjgo3jgZcNCivjgZvjgags44Gb44GE44GYDQor44GU44GRLOOCiOOBl+OBruOCig0KK+OCiOOBl+OCgOOCiSzjgY3jgojjgb8NCivjgZ/jgYvjgoTjgb4s44GE44KP44GYDQor44GV44GV44GNLOOBteOBqOOBlw0KK+OBi+OBrizjgY3jgojjgZcNCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gq44GM44GK44GLLOOBsuOBqOOBlw0KK+OBmeOBmuOBjSzjgZXjgajjgZcNCivjgoTjgb7jgZDjgaEs44Gm44Gk44KNDQor44KC44KKLOOChOOBmeOBlw0KK+OBmeOBmuOBjSzjgY3jgojjgbLjgo0NCivjgYbjgYjjgoDjgoks44Gy44KN44G/DQor44KE44G244Gv44KJLOOBi+OBmuOBig0KK+OBl+OCieOBhOOBlyzjgYvjgZrjga7jgooNCivjgY3jgY/jgZ8s44Gy44Gn44GKDQor44Gq44GL44GELOOBv+OBpOOBkA0KK+OBj+OCieOCguOBqCzjgb7jgZXjgYLjgY0NCivjgZnjgb/jgojjgZcs44KE44GZ44Gy44KNDQor44Gf44GL44GOLOOBl+OCjQ0KK+OBl+OCh+OBmCzjgZXjgajjgZcNCivjgYrjgZXjgaAs44Gy44Gn44GNDQor44GC44GV44GuLOOBjeOCiOOBlw0KK+OBhOOCj+OBlSzjga7jgbbjgobjgY0NCivjgbDjgbAs44KG44GN44GKDQor44Gy44KN44GfLOOBl+OBkuOBjQ0KK+OBteOBmOOCguOBqCzjgZfjgZLjga/jgosNCivjgZXjga4s44Go44KC44KG44GNDQor44KC44Go44GNLOOBsuOBp+OBjQ0KK+OBhOOBqOOBhizjgYLjgY3jgokNCivjgYbjgZHjgYzjgo8s44GV44Go44KLDQor44GG44KB44Gw44KE44GXLOOBhOOBpOOBig0KK+OBhOOBquOBqOOBvyzjgb7jgZXjgajjgZcNCivjgZ/jgYvjgoTjgarjgY4s44G/44Gk44KI44GXDQor44Gv44KJLOOBi+OBmuOBjQ0KK+OBquOBi+OBr+OCiSzjgb7jgZXjga7jgbYNCivjgZXjgYTjgZ/jgZEs44G/44Gk44Gu44KKDQor44GL44GX44KE44G+LOOChuOBn+OBiw0KK+OBleOBi+OBhCzjgbLjgafjgYoNCivjgYTjgajjgYYs44Gy44KN44Gy44GVDQor44Gq44GL44KA44KJLOOBruOCiuOBig0KK+OBiuOBruOBjizjgb7jgZXjgobjgY0NCivjgYTjgYvjgb8s44GV44Go44GXDQor44Gf44GL44Gv44GXLOOBjeOCiOOBlw0KK+OBl+OBhOOBqizjgobjgZ/jgYsNCivjgZ/jgb7jga7jgYQs44GV44Go44GK44KLDQor44GP44G8LOOBv+OBleOBkw0KK+OBjeOCgOOCiSzjgb7jgZXjgosNCivjgbvjgaPjgZ8s44KE44GZ44KG44GNDQor44G744GL44KKLOOBvuOBleOBruOCig0KK+OBleOBqOOBhizjgbXjgb/jgYoNCivjgbvjgZfjga4s44GE44GV44GKDQor44GL44G244KJ44GOLOOBi+OBmuOCiOOBlw0KK+OBiuOBleOBoCzjgb7jgZXjgYLjgY0NCivjgZnjgYjjgbLjgo0s44GE44GV44GKDQor44KA44KJ44GL44KPLOOBtuOCk+OCjQ0KK+OBhOOCj+OBleOBjSzjgZvjgYTjgZgNCivjgoTjgb7jgoDjgoks44Gy44KN44GXDQor44KC44KK44GfLOOBqOOCguOChuOBjQ0KK+OBhOOBkeOBoCzjga7jgorjgYvjgaQNCivjgoTjgYbjgaEs44KI44GX44Gu44G2DQor44KE44G+44GX44GfLOOBn+OBkeOBlw0KK+OCj+OBn+OBquOBuSzjgobjgZ/jgYsNCivjgYLjgarjgpMs44GX44KT44GE44GhDQor44Gr44GX44GuLOOBqOOBv+OBig0KK+OBk+OBl+OBv+OBmizjgZfjgofjgbLjgaENCivjgZ/jgYvjga/jgZcs44Gy44Gn44GC44GNDQor44GI44GM44KPLOOBn+OBi+OBlw0KK+OChOOBvuOBluOBjSzjgbLjgajjgZcNCivjgYTjgb7jgZzjgY0s44Gf44GL44KG44GNDQor44GZ44Ga44GNLOOBguOBjeOBig0KK+OBq+OBl+OBr+OCiSzjgZfjgoXjgbLjgaENCivjgYrjgYvjgbks44Go44GX44Gy44KNDQor44GV44GL44GELOOBqOOBl+OBteOBvw0KK+OBn+OBoCzjgZ/jgYvjgYoNCivjgZnjgYjjgojjgZcs44KI44GX44G/DQor44Gv44KE44GXLOOBkeOCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgZgNCivjgZPjgYLjgZcs44Gf44Gk44GKDQor44KC44KK44GL44KPLOOCiOOBl+OBruOCig0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgb7jgYjjgbAs44GL44Ga44Gy44GnDQor44KE44GuLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgYjjgaTjgZgNCivjgarjgYvjgYQs44Gf44Gk44KNDQor44GK44Gg44GO44KKLOOChOOBmeOBig0KK+OBiOOCk+OBqSzjgYvjgZrjgYoNCivjgZ/jgZHjgYQs44Go44GX44GKDQor44Gq44GL44Gf44GrLOOBn+OBpOOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgojjgZfjgbXjgoYNCivjgYvjgonjgYvjgZUs44Gy44Gn44GNDQor44GC44GV44GuLOOChuOBsuOBoQ0KK+OBhOOCj+OBtuOBoSzjgYTjgZXjgoANCivjga/jgpPjgaAs44G+44GV44Gy44KNDQor44Gm44KJ44GKLOOBqOOBl+OBig0KK+OBn+OBkeOBhCzjgb/jgY3jgYoNCivjga/jgZfjgoLjgags44GE44Gf44KLDQor44G/44KE44GV44GLLOOBkeOCk+OBmA0KK+OBpuOCieOBoCzjga/jgZjjgoENCivjgZXjgYvjgZ8s44GI44GE44GXDQor44Gq44GM44KELOOChOOBmeOBj+OBqw0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgYrjgY/jgoks44Gf44Gk44GKDQor44Gq44GL44GV44GNLOOCiOOBl+OBr+OCiw0KK+OBjeOCiuOBr+OCiSzjgbLjgo3jgZcNCivjgYLjgonjgYQs44GL44Ga44GKDQor44GE44KP44GuLOOBpuOBpOOBig0KK+OBr+OBo+OBqOOCiizjgoTjgZnjgobjgY0NCivjgZnjgZrjgY0s44G/44Gh44Gu44KKDQor44Gr44GX44Gv44KJLOOBqOOCguOBsuOCjQ0KK+OBleOBleOBjSzjgYLjgY3jgbLjgo0NCivjga/jgarjgbXjgZUs44GR44KT44GE44GhDQor44Gu44Gp44GuLOOBvuOBleOCiw0KK+OBi+OCj+OBsOOBnyzjgajjgYrjgosNCivjgZfjgb/jgZos44KI44GX44KG44GNDQor44Gq44GM44GX44G+LOOCiOOBl+OCguOBqA0KK+OCguOCiizjgojjgZfjgb8NCivjgZfjgb/jgZos44Gk44Go44KADQor44Gy44GV44KE44GZLOOBhOOBoeOCjeOBhg0KK+OBi+OBn+OBhuOCiSzjgoTjgZnjgobjgY0NCivjgZ/jgZHjgoDjgoks44GL44Gk44G/DQor44GE44G+44Gr44GXLOOBkeOCk+OBmA0KK+OBiuOBi+OBoCzjgaTjgajjgoANCivjgarjgYvjgYgs44G/44Gk44GQDQor44GX44KN44GuLOOBqOOBl+OChuOBjQ0KK+OCiOOBk+OChOOBvizjgZfjgoXjgpPjgZgNCivjgYrjgYvjgZbjgo8s44Gy44KN44KG44GNDQor44GL44G/44GY44KHLOOBsuOCjeOBruOCig0KK+OBj+OBvuOBuSzjgajjgYrjgosNCivjgZfjgb/jgZos44Gy44KN44GXDQor44KE44Gq44GO44GV44KPLOOBl+OBmuOBig0KK+OBvuOBjeOBrizjgaTjgajjgoANCivjgZXjgo8s44Gf44Gk44KG44GNDQor44GG44GX44KN44GgLOOBj+OBq+OBig0KK+OBvuOBoeOBoCzjgojjgZfjgarjgYoNCivjgZPjgbDjgoTjgZcs44Gk44GQ44Gy44GTDQor44GX44GS44KA44KJLOOBi+OBmuOBig0KK+OBsuOBkOOBoSzjgZfjgZLjgYLjgY0NCivjgYTjgYTjgazjgb4s44GR44GE44GeDQor44GE44Ga44G/LOOBl+OBkuOChuOBjQ0KK+OBr+OChOOBlyzjgYLjgY3jgb/jgaQNCivjgoTjgY4s44G+44GV44GoDQor44GK44GL44KP44KJLOOBguOBjeOBsuOBkw0KK+OBteOBj+OBiuOBmCzjgYrjgZXjgoANCivjgYbjgYzjgZjjgpMs44GY44KF44Gr44GhDQor44Gf44Gq44G5LOOBruOBtuOBig0KK+OBlOOBl+OBvizjgb7jgZXjgbLjgZMNCivjgYLjgpPjganjgYYs44Gu44KK44Go44GXDQor44GK44Gg44G+LOOBvuOBleOBig0KK+OBiuOBi+OBluOBjSzjgZ/jgaTjgo0NCivjgYTjgZfjgYvjgo8s44GX44KH44Gy44GhDQor44KA44KJ44KE44G+LOOChuOBhuOBmA0KK+OBr+OChOOBleOBiyzjgo/jgZ/jgosNCivjgarjgYvjgZjjgb4s44GP44Gr44GKDQor44Gf44GR44KC44GoLOOBpOOBi+OBlQ0KK+OBjeOBn+OBmOOBvizjgZ/jgYvjgYoNCivjgb/jgYvjgb8s44Go44GX44Gv44KLDQor44KP44KJ44GX44GqLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgb7jgZXjgobjgY0NCivjgYrjgZbjgo8s44G/44Gu44KLDQor44KE44G+44KA44KJLOOBsuOCjeOBqOOBlw0KK+OCiOOBl+OBoCzjgaHjga/jgosNCivjgZ/jgaHjgbDjgaos44GN44KI44Gf44GRDQor44G+44Gk44KC44GoLOOBiuOBleOCgA0KK+OBv+OBl+OBvizjgb7jgZXjgb8NCivjgZvjgY0s44GX44KTDQor44Gn44GQ44GhLOOBvuOBleOBsuOBpw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgZcNCivjgYrjgbLjgZEs44KG44GN44GKDQor44G144GY44KC44GoLOOBhOOCj+OBig0KK+OCiOOBl+OCgOOCiSzjgbXjgb/jgobjgY0NCivjgZPjgbDjgoTjgZcs44G+44GV44GTDQor44GK44GM44G/LOOBkeOBhOOBmA0KK+OBi+OBhCzjgZ/jgY8NCivjgYvjgYjjgaQs44KI44GX44G/DQor44KC44KN44GELOOBmOOCheOCk+OBkw0KK+OBv+OBmuOBrizjgarjgb8NCivjgYrjgaTjgYss44GY44KF44KT44KEDQor44GK44GfLOOBl+OCkw0KK+OBm+OBjeOBrSzjgojjgZfjgYvjgZoNCivjgb/jgoTjgZDjgaEs44Gy44Go44GXDQor44KI44Gt44GgLOOBl+OBkuOBjQ0KK+OBu+OCiuOBhuOBoSzjgZ/jgY/jgo0NCivjgYjjgZDjgaEs44Gu44KK44Gu44GZ44GRDQor44GG44GX44KN44G+44GkLOOBsuOBp+OBguOBjQ0KK+OBhOOBhOOBoCzjgbLjgo3jgZcNCivjgojjgZfjgaAs44GY44KF44KT44GpDQor44Gq44GL44GbLOOChOOBmeOBsuOBlQ0KK+OBmeOBmuOBjSzjgb7jgZXjgZcNCivjgYrjgYTjgYvjgo8s44GX44KF44GYDQor44GL44KP44G5LOOBruOBtuOBsuOBkw0KK+OBn+OBq+OBluOCjyzjgoHjgYTjgZgNCivjgYvjga3jgZMs44KI44GX44KG44GNDQor44G144GY44GK44GLLOOBl+OCh+OBn+OCjeOBhg0KK+OCgOOCieOBiuOBiyzjgb7jgZXjga/jgosNCivjgYbjgazjgb4s44Gf44GL44Gy44KNDQor44G/44KE44GRLOOBhOOBj+OBig0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgbLjgZMNCivjgYrjgo8s44GL44GK44KLDQor44Gt44KC44GoLOOCiuOCheOBmA0KK+OBq+OBl+OCgOOCiSzjgYvjgZrjgZ/jgYsNCivjgZ/jgaTjgb8s44Gq44G744GTDQor44GV44Go44GGLOOBvuOBleOBkw0KK+OBmeOBruOBr+OCiSzjgYvjgaTjgb8NCivjgYLjgZnjgb4s44GL44Ga44G/DQor44Gf44GL44GwLOOChuOBjeOBsuOCjQ0KK+OCiOOBl+OCgOOCiSzjgojjgZfjgb8NCivjgYLjgbks44GC44GN44GKDQor44GN44GP44GhLOOChuOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgYjjgYTjgZMNCivjga/jgoDjgoks44GV44Gk44GTDQor44GZ44Ga44GNLOOBn+OBi+OBig0KK+OBi+OCj+OCgOOCiSzjga/jgovjgogNCivjgbLjgbPjga4s44GR44GE44GTDQor44GN44Gf44GgLOOBpOOCiOOBlw0KK+OBleOBqOOBhizjgZHjgYTjgZMNCivjgYvjgajjgYYs44G144GN44GTDQor44GE44Go44GGLOOBoeOBguOBjQ0KK+OBteOBj+OBqOOBvyzjgb7jgZXjga/jgosNCivjgoDjgo3jgZrjgb8s44GE44Gh44KN44GGDQor44KE44G+44Gq44GLLOOBqOOCguOBsuOBlQ0KK+OBiuOBi+OBoCzjgYTjgo/jgYoNCivjgajjgZQs44GC44GN44GKDQor44Gq44KK44GfLOOBqOOBl+OBsuOBkw0KK+OBhOOBkeOBluOBjSzjgY3jgojjgYvjgZoNCivjgYvjgo/jgbDjgZ8s44Gu44G244GC44GNDQor44G+44Gk44GK44GLLOOBleOBqOOBlw0KK+OBquOBi+OBoCzjgarjgYrjgagNCivjgZXjgajjgYYs44GR44GE44GYDQor44Gf44GR44GW44KPLOOBi+OBmuOBvuOBlQ0KK+OChOOBquOBjOOCjyzjgaTjgajjgoANCivjgoTjgb7jgZXjgY0s44Gu44G244Gy44GoDQor44GX44GM44GNLOOBqOOBl+OChA0KK+OChuOBvyzjgbLjgZXjgYgNCivjgYrjgZbjgY0s44G+44GV44Gy44KNDQor44Gq44GM44GX44G+LOOBpOOBreOBig0KK+OChOOBtuOBhuOBoSzjgYvjgZrjgYoNCivjgbvjgZ3jgoQs44KG44GG44GYDQor44Gr44GX44GW44KPLOOBvuOBleOCiw0KK+OBr+OChOOBvyzjgb7jgZXjgbLjgo0NCivjga/jgZvjgYzjgo8s44GY44KF44Gr44GhDQor44GL44KP44GV44GNLOOBkeOCk+OBhOOBoQ0KK+OBqOOCiOOBhOOBmuOBvyzjgZ/jgZHjgZcNCivjgYrjgY/jgoDjgoks44Gf44GL44GXDQor44KE44G+44GgLOOBn+OBkeOBlw0KK+OBq+OCjyzjgZfjgo0NCivjgavjgZfjgZbjgY0s44Gu44G244GKDQor44GZ44GO44KC44GoLOOBsuOCjeOBlw0KK+OBiuOBleOCjyzjgZfjgpPjgoQNCivjgajjgaAs44KI44GX44Gy44KNDQor44Gq44GL44GuLOOBsuOCjeOBlw0KK+OBv+OBhuOCiSzjga7jgorjgobjgY0NCivjgoTjgb7jgZbjgY0s44Gu44KK44GC44GNDQor44GV44GL44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOBoCzjgaTjgajjgoANCivjgYTjga7jgYbjgYgs44Gf44GE44GZ44GRDQor44KE44GZ44GELOOBsuOBleOBig0KK+OBvuOBpOOBoCzjgbLjgZXjgZcNCivjgYvjgZ/jgYrjgYss44Gd44GYDQor44GZ44Ga44GNLOOCiOOBl+OBig0KK+OBr+OChOOBlyzjgarjgYrjgb8NCivjga/jgb7jgb7jgaQs44GL44Gk44Gy44GTDQor44Gv44G+44GuLOOBn+OBi+OChuOBjQ0KK+OBv+OBmuOBn+OBqyzjgb7jgZXjgagNCivjgZnjgb/jgZ8s44Gu44G244Gy44KNDQor44Gv44KE44GXLOOBiOOBhOOBsuOBkw0KK+OBqOOBj+OBquOBjCzjgbLjgo3jgZcNCivjgYvjgajjgYYs44GX44GS44KLDQor44G+44Gk44GG44KJLOOBqOOCguOBquOBig0KK+OBsuOCg+OBj+OBqizjgajjgZfjgYLjgY0NCivjgYLjgpPjgZbjgYQs44KI44GX44GL44GkDQor44G144GL44G+44GhLOOBsuOBleOBlw0KK+OBv+OBleOBjSzjgarjgYrjgobjgY0NCivjgoLjgaHjgZrjgY0s44Gy44KJ44GPDQor44GC44GK44KE44GOLOOBv+OBoeOBkw0KK+OBn+OBi+OBr+OBlyzjgYvjgojjgZMNCivjgY3jgZss44G+44GV44KIDQor44GG44GI44KC44KKLOOChuOBvw0KK+OBguOBmuOBvizjgYLjgZHjgb8NCivjgYrjgaDjgY/jgoks44GR44GE44GTDQor44Gf44Gq44GLLOOBkeOBhOOBkw0KK+OBqOOBhOOBn+OBqyzjgoTjgZnjgZMNCivjgoTjgb7jgZbjgY0s44GI44KKDQor44Gv44GX44KC44GoLOOBv+OCiOOBkw0KK+OBvuOBpOOBv+OChCzjgoLjgajjgaHjgYsNCivjgbXjgZfjgb8s44G+44GN44GTDQor44GN44KH44Gy44KD44G+LOOChuOBv+OBkw0KK+OCiOOBl+OBoCzjga7jgbbjgZMNCivjgYbjgovjgZfjgaks44G/44GI44GTDQor44Gb44GKLOOBsuOBp+OBkw0KK+OBv+OBquOBi+OCjyzjgojjgYbjgZMNCivjgbXjgZjjga4s44GZ44G/44GKDQor44Gy44KN44GfLOOBn+OBkeOBlw0KK+OBiuOBnyzjgajjgojjgbLjgZMNCivjgYrjgYws44GC44GN44KJDQor44Gq44GM44Gv44G+LOOChuOBjeOBsuOBpw0KK+OBmOOCk+OBrizjgYLjgY3jgokNCivjgYTjgaHjgYvjgo8s44GX44GS44KLDQor44Gv44KE44GXLOOBv+OBiOOBkw0KK+OBr+OBn+OChCzjgbLjgo3jgb/jgaENCivjgbvjgorjgZPjgZcs44Gy44GV44GKDQor44GL44GrLOOBi+OBpOOCjQ0KK+OBu+OCk+OBoCzjgZHjgpPjgYTjgaENCivjgaTjgaHjgoQs44Gf44GL44GXDQor44Gf44G+44GmLOOBvuOBleOBsuOBkw0KK+OChuOBi+OCjyzjgaHjgYvjgagNCivjgZXjgYvjgYQs44Gm44KL44GKDQor44G/44KE44GYLOOBkeOBhOOBkw0KK+OBn+OCgOOCiSzjgYLjgaTjgZMNCivjgYvjgo/jgZDjgaEs44G/44GI44GTDQor44GV44GuLOOBpOOBjeOBkw0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgobjgY0NCivjgZPjgbDjgoTjgZcs44Gf44GL44GXDQor44GE44GgLOOCiOOBl+OBvw0KK+OBm+OBjeOCguOBqCzjgb7jgZXjga7jgooNCivjgYvjgo/jgb7jgZ8s44Gf44Gk44GKDQor44GP44G8LOOChOOBmeOBjQ0KK+OBn+OBi+OBrizjga/jgZjjgoENCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44GE44GL44KL44GOLOOBqOOBl+OChuOBjQ0KK+OBleOBqOOBhizjga7jgbbjgbLjgZMNCivjgbLjgaDjgYss44GC44GN44GKDQor44KI44GX44GELOOCguOBqOOBsuOBlQ0KK+OBl+OBvuOCgOOCiSzjgajjgb/jgYoNCivjgYrjgbMs44G/44Gk44KLDQor44Gq44GL44GY44G+LOOBiOOBhOOBmA0KK+OBu+OBl+OBrizjgobjgYbjgZgNCivjgYvjgo/jgoLjgags44KG44Gy44GhDQor44Gr44GX44GgLOOBsuOBqOOBlw0KK+OBl+OBv+OBmizjgbLjgafjgb7jgosNCivjgZ/jgoDjgoks44G+44GV44GL44GaDQor44Go44KI44GX44G+LOOChuOBsuOBoQ0KK+OBiOOCk+OBqSzjgobjgY3jgYoNCivjgYrjgYzjgo8s44GE44Gh44KN44GGDQor44GN44Gf44Gv44KJLOOCiOOBl+OBsuOCjQ0KK+OBiuOBkOOBqyzjgYvjgZrjgYoNCivjgYrjgbbjgaEs44Gy44KN44GXDQor44G/44KI44GXLOOChOOBmeOBsuOCjQ0KK+OBhOOBkeOBrizjgoTjgojjgYQNCivjgYbjgYjjgb7jgaQs44G/44Gu44KLDQor44G144GP44GW44GoLOOBn+OBoOOBlw0KK+OBguOBiuOBjSzjgojjgZfjgbLjgZMNCivjgZXjgoHjgZjjgb4s44GT44GeDQor44GN44Gp44G+LOOBiOOBhOOCjQ0KK+OBk+OBoOOBhOOCiSzjgajjgZfjgYoNCivjgbLjgZDjgaEs44Go44GP44Gu44G2DQor44G+44GI44GX44KNLOOBruOBvOOCiw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZgNCivjgarjgYvjgYzjgo8s44KE44GZ44Gy44GnDQor44GE44Gu44GG44GILOOBvuOBleOBguOBjQ0KK+OBqOOCiuOBhizjgZjjgoXjgpMNCivjgb7jgovjgoTjgb4s44KI44GX44G/44GkDQor44G+44Gk44GG44KJLOOBn+OBi+OBig0KK+OBn+OCgeOBoeOBiyzjgarjgaTjgYLjgY0NCivjgZXjgZXjgY0s44G144G/44GKDQor44GK44Gf44GNLOOBkeOCk+OBmA0KK+OBiuOBjOOCjyzjgZHjgYTjgZ4NCivjgb7jgaTjgb8s44GL44Ga44GKDQor44GC44KK44G+44GkLOOBl+OCk+OBhOOBoQ0KK+OBk+OCieOBjyzjgYvjgaTjgYLjgY0NCivjgb/jgoTjgZfjgZ8s44KK44KF44Gy44GhDQor44GK44Ga44GhLOOBn+OBi+OBlw0KK+OBleOBi+OBjeOBsOOCiSzjgZXjgaHjgYoNCivjgZXjgajjgYYs44GR44KT44GYDQor44Gy44KN44GbLOOBjeOBj+OBig0KK+OBpOOBoeOBoCzjgZ/jgaTjgYoNCivjga/jgZfjgoks44GL44Ga44Gy44KNDQor44G144KN44KC44GoLOOBm+OBhOOBmA0KK+OBk+OBleOBiyzjgojjgZnjgZENCivjgZ/jgZHjgYTjgaEs44KE44GZ44Gy44GnDQor44Gm44KJ44GgLOOBvuOBleOBguOBjQ0KK+OBk+OBhOOBpyzjgarjgYrjgY0NCivjgZXjgYTjgajjgYYs44GR44KT44GYDQor44G/44KE44Gq44GMLOOBi+OBiuOCiw0KK+OBq+OBl+OCgOOCiSzjgY3jgofjgZMNCivjgZ/jgarjgYss44GX44KT44GZ44GRDQor44GY44KHLOOBvuOBk+OBqA0KK+OChuOBj+OBsuOCjSzjgb7jgZnjgYgNCivjgojjgZfjgo/jgoks44GX44GS44GKDQor44GC44GK44GNLOOChuOBng0KK+OBn+OBpuOBhOOBlyzjgb/jga7jgosNCivjgZ/jgZHjgaAs44G/44Gk44GKDQor44KE44GZ44GgLOOBn+OBi+OBkw0KK+OBguOBiuOBjSzjgYLjgY3jgokNCivjgojjgZfjgaAs44Go44KC44GTDQor44GC44Gg44GhLOOBqOOBl+OBguOBjQ0KK+OBruOBkOOBoSzjgaHjgogNCivjgo/jgZ/jgarjgbks44G/44Gu44KLDQor44Gf44GR44Go44G/LOOBguOBjeOBsuOCjQ0KK+OBj+OCiuOCj+OBjSzjgojjgYTjgaENCivjgY3jgZ/jgZrjgoEs44KI44GX44GL44GaDQor44G144Gq44Gw44GXLOOBsuOBp+OBjQ0KK+OBiuOBleOBoCzjgZfjgofjgbLjgaENCivjgYLjgZfjgYzjgYQs44Gu44KK44Gy44GTDQor44GV44GL44GX44GfLOOBl+OCk+OChA0KK+OBpOOBoeOBoCzjgobjgYbjgZ4NCivjgYrjgYvjgaAs44KG44G/44GTDQor44Gf44Gq44GLLOOCjOOBhOOBkw0KK+OBiuOBn+OBlOOBlyzjgZjjgoXjgpMNCivjgY/jgo3jgZXjgYss44KL44G/44GTDQor44GZ44GW44GNLOOChuOCiuOBkw0KK+OBi+OBreOBv+OBpCzjgajjgb/jgZMNCivjgb7jgags44G144GY44GTDQor44Go44KI44G144GPLOOBsuOBp+OChuOBjQ0KK+OBguOCieOBhCzjgarjgYrjgZMNCivjgbXjgZjjgYvjgo8s44GC44GN44GTDQor44KI44GT44GKLOOCiOOBl+OBruOBtg0KK+OBguOBvuOBrizjgZfjgZLjgobjgY0NCivjgYrjga4s44GT44GG44GE44GhDQor44GZ44Ga44GNLOOBvuOBleOBjQ0KK+OBi+OBqOOBhizjgoLjgajjgbLjgZMNCivjgZXjgYTjgajjgYYs44GX44KF44KM44GEDQor44GK44GGLOOBqOOBl+OBig0KK+OBv+OChOOBluOBjSzjgojjgZfjgZ/jgYsNCivjgY3jgoQs44GN44KI44GXDQor44G144GY44GfLOOBl+OCheOBq+OBoQ0KK+OCgOOBi+OBhCzjgb/jgaHjgYoNCivjgb7jgaTjgoLjgags44Gy44Gn44Gh44GLDQor44GL44KP44GELOOBk+OBng0KK+OBvuOBpOOCguOBqCzjgYjjgYTjgZgNCivjgZ/jgZHjgYbjgaEs44GC44Gk44GXDQor44GT44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgobjgY0NCivjgZPjgYws44G+44GV44GKDQor44KE44G+44GgLOOBsuOCjeOBi+OBmg0KK+OBiuOBnyzjga7jgbbjgYLjgY0NCivjgoTjgb7jgoLjgags44Gf44GL44KI44GXDQor44GV44GP44KJ44KC44GoLOOBr+OCi+OBig0KK+OChOOBquOBjuOBleOCjyzjgZ/jgYvjgbXjgb8NCivjgbXjgY/jgYQs44GC44GN44KI44GXDQor44GL44Go44GGLOOBvuOBleOChuOBjQ0KK+OBhOOCj+OBnyzjgb/jgaTjgYoNCivjgbXjgZjjgoLjgags44GL44Gk44G/DQor44GN44Gu44GX44GfLOOBhOOBleOBig0KK+OChOOBvuOBoCzjgbXjgb/jgZ/jgb4NCivjgY/jgonjgb7jgYgs44GL44Ga44Gy44GTDQor44GP44KJ44GfLOOCiOOBsuOBoQ0KK+OCiOOBk+OBhCzjgYvjgYrjgosNCivjgZPjgbDjgoTjgZcs44KG44GN44GKDQor44GL44Go44GGLOOBjeOCiOOBn+OBiw0KK+OBvuOBmeOBhCzjgorjgofjgZgNCivjgYbjgonjgZ8s44Gy44Gn44GKDQor44Gf44GL44Gv44GXLOOBn+OBpOOBig0KK+OBhuOBl+OBlOOCgSzjgoTjgZnjgYoNCivjga/jgonjgYQs44GT44GG44GE44GhDQor44GG44Gg44GM44KPLOOBv+OBruOCiw0KK+OBn+OBi+OBjizjgZfjgpPjgZnjgZENCivjgb/jgoTjgZbjgY0s44G144GY44GoDQor44KE44G+44KA44KJLOOBj+OBq+OBig0KK+OChOOBvuOBjuOBlyzjgZPjgYbjgZgNCivjgZPjgb7jgaQs44GL44Ga44G/DQor44Gv44G+44GQ44GhLOOChOOBmeOChuOBjQ0KK+OCguOCiizjgZ/jgaDjgbXjgZUNCivjgoTjgb7jgaAs44GC44GN44Gy44GTDQor44GL44GM44KPLOOBmOOCjQ0KK+OBjeOBj+OBoSzjgZPjgYbjgZgNCivjgY/jgZgs44Gf44GL44GXDQor44GE44Go44GGLOOBteOBv+OBqOOBlw0KK+OBi+OCj+OBkOOBoSzjgbLjgafjgoQNCivjgYLjgonjgY0s44KC44KK44KI44GXDQor44GK44GL44G5LOOBsuOBqOOBlw0KK+OBk+OBvOOCiizjgabjgovjgYLjgY0NCivjgYrjgaEs44G+44GV44Gy44KNDQor44G+44KL44GKLOOBvuOBleOBn+OBiw0KK+OBleOBqOOBhizjgZfjgpPjgZgNCivjgZ/jgarjgYss44Go44GX44KNDQor44G+44Gk44KE44G+LOOBi+OBmuOChuOBjQ0KK+OBiuOBpOOBiyzjgZXjgajjgb8NCivjgoTjgb7jgoLjgags44G+44GV44Gy44KNDQor44G144GY44GKLOOCiuOCheOBsuOBoQ0KK+OBruOCgOOCiSzjgojjgZfjgZ/jgYsNCivjgbLjgo3jgZss44KG44GLDQor44GC44KT44GW44GELOOBsuOCjeOBi+OBmg0KK+OBiuOBpOOBvCzjgoTjgZnjga7jgooNCivjgZXjgYTjgajjgYYs44G/44Gh44GKDQor44GE44Go44GGLOOBteOBv+OBjQ0KK+OCj+OCieOBleOCjyzjgoTjgZnjgZcNCivjgYLjgonjgYvjgo8s44Gy44GV44GC44GNDQor44GU44G/LOOCiOOBl+OBi+OBmg0KK+OBiOOCk+OBqSzjgZfjgpPjgZnjgZENCivjgojjgZfjgaAs44Gy44KN44G/DQor44GG44Gh44GgLOOBl+OCk+OBhOOBoQ0KK+OBguOBleOBhOOBrSzjgYrjgZXjgoANCivjgYrjgZfjgb4s44Gv44GY44KBDQor44Gf44Gq44GLLOOBl+OCheOCk+OBmeOBkQ0KK+OBiuOBkyzjgbLjgafjga7jgooNCivjgYTjgZrjgaQs44Go44GX44GKDQor44Gv44KE44GXLOOBj+OBq+OBig0KK+OBteOBmOOBjSzjgZHjgpPjgZgNCivjgZfjgYrjgYvjgYQs44G/44Gk44GIDQor44Gq44GM44G144GhLOOBsuOBleOBn+OBiw0KK+OBvuOBpOOCguOBqCzjga7jgorjgojjgZcNCivjgYvjgajjgYYs44GX44GS44Gu44KKDQor44KP44Gf44Gq44G5LOOBv+OBoeOCjQ0KK+OBr+OBvuOBkOOBoSzjgorjgoXjgZgNCivjgYvjga3jgZMs44GV44Go44GXDQor44GV44Go44GGLOOBjeOBj+OBig0KK+OBiuOBsizjgoTjgZnjgarjgooNCivjga/jgoTjgZcs44GY44KF44KTDQor44GN44G/44Gk44GLLOOBleOBoeOBig0KK+OBteOBj+OBoCzjgb7jgZXjga/jgosNCivjgarjgYvjgoDjgoks44Gy44Gn44GKDQor44KE44Gw44GXLOOBpuOBpOOChA0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgYoNCivjgajjgY/jgaAs44Gf44Gk44GKDQor44Gf44GL44Gv44GXLOOBvuOBleOCjQ0KK+OBhOOBqOOBhizjgarjgYrjgosNCivjga7jgZDjgaEs44G+44GV44KG44GNDQor44GL44KP44GqLOOBqOOBiuOCiw0KK+OBquOBi+OBrizjgYvjgZrjgbLjgZMNCivjgoTjgb7jgaAs44GN44KI44Gk44GQDQor44Gy44KJ44G+44GkLOOBn+OBhOOBhOOBoQ0KK+OBguOCieOBhCzjgbLjgo3jgZcNCivjgojjgZfjga4s44GR44GE44GYDQor44Gv44G+44GgLOOCiuOCheOBsuOBoQ0KK+OBiuOBnyzjgobjgZ/jgYsNCivjgZfjgbDjgZ8s44Go44GX44GKDQor44KP44GL44KE44G+LOOBvuOBleOBjQ0KK+OBu+OBlyzjgZvjgYTjgZgNCivjgb/jgo8s44G+44GV44GKDQor44Gf44Gq44GLLOOBvuOCguOCiw0KK+OBi+OBquOChCzjgZ/jgaDjgZcNCivjgZ/jgZHjgarjgYss44GR44KT44GYDQor44GV44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBv+OBmuOBl+OBvizjgajjgoLjgYvjgZoNCivjgabjgonjgaAs44GL44Gk44Gy44KNDQor44KC44KK44KELOOBv+OBpOOBig0KK+OBmeOBjuOChOOBvizjgojjgbLjgaHjgo0NCivjgYbjgb8s44Gu44KK44GKDQor44GN44GQ44GhLOOBpOOChOOBkw0KK+OBhuOCi+OCj+OBlyzjgb7jgZXjgZMNCivjgbLjgonjgb7jgaQs44Gd44GG44Gf44KN44GGDQor44GE44Ga44GvLOOBqOOBl+OChuOBjQ0KK+OBhOOBqOOBhizjgYvjgYrjgooNCivjgZXjgajjgYYs44GL44Ga44GKDQor44GX44GS44Gu44G2LOOBqOOBl+OBsuOBkw0KK+OCiOOBl+OCguOBqCzjgb7jgZnjgYLjgY0NCivjgZfjgbDjgZ8s44GC44GN44Gy44KNDQor44G144Gq44GT44GXLOOBjeOCiOOBlw0KK+OBmeOBquOBoCzjgb7jgZXjgYoNCivjgb7jgorjgZMs44KG44GG44GYDQor44GN44GP44G+LOOBruOCiuOBsuOBkw0KK+OBmeOBqCzjgZjjgpMNCivjgavjgZfjgZbjgo8s44Go44GX44KG44GNDQor44GT44Gw44KE44GXLOOBqOOCiOOBhOOBoQ0KK+OBi+OCj+OBlOOBiCzjgZfjgZLjgosNCivjgYTjgZjjgb4s44Gf44Gg44KG44GNDQor44Gr44GX44GKLOOCguOBqOOBr+OCiw0KK+OBq+OBl+OChOOBvizjga/jgovjgYoNCivjgZXjgYTjgajjgYYs44KI44Gy44Gh44KNDQor44GL44Gp44KP44GNLOOBn+OBkeOBlw0KK+OBsuOCjeOBmyzjgb/jgaHjgYrjgY0NCivjgZ/jgZDjgaEs44Gv44KL44GKDQor44Gf44GL44GgLOOBvuOBk+OBqA0KK+OCj+OBn+OBquOBuSzjgb7jgZnjgYoNCivjgYvjgajjgYYs44GR44KT44GYDQor44Gq44GL44Gv44KJLOOBi+OBmuOBig0KK+OBhOOBl+OBj+OBvCzjgaTjgojjgZcNCivjgoTjgb7jgaAs44GE44Gh44GeDQor44KP44GL44G+44GkLOOChOOBmeOBmOOCjQ0KK+OBi+OCj+OBl+OBvizjgoTjgZnjgYoNCivjgYvjgZ/jgoLjgags44Gq44GK44Gy44GTDQor44Gf44GL44KE44G+LOOBleOBqOOBlw0KK+OBpOOBoeOBoCzjgbLjgafjgYoNCivjgZ/jgaHjgbDjgaos44G/44Gk44GTDQor44GT44Gw44KE44GXLOOBvuOBleOBsuOBkw0KK+OBpOOBoCzjgbXjgb/jgYoNCivjgoLjgorjgYvjgo8s44Gy44KN44GXDQor44GK44GP44GuLOOBruOBtuOChuOBjQ0KK+OBhOOBvuOBhCzjgojjgZfjgYLjgY0NCivjgoDjgonjgYos44Gy44KN44G/DQor44GX44KC44KA44KJLOOBn+OBi+OBig0KK+OBiOOCk+OBqSzjgZ/jgYvjgojjgZcNCivjgbvjgZfjgY/jgb4s44Go44GX44Gv44KLDQor44GL44KP44GbLOOBkeOCk+OBmA0KK+OBvuOBoeOBoCzjgZfjgZLjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GP44Gr44GKDQor44Gv44GgLOOCiuOCheOBsuOBoQ0KK+OBpOOBj+OBoCzjgojjgZfjgYoNCivjgavjgZfjgYvjgo8s44GT44GG44GYDQor44G744KT44GgLOOBsuOCjeOChuOBjQ0KK+OCj+OBl+OBiuOBiyzjgZHjgpPjgZgNCivjgoDjgo3jgYQs44GN44G/44Gy44GTDQor44KE44GZ44GgLOOBn+OBpOOBlw0KK+OCiOOBl+OBoCzjgbLjgafjgYoNCivjgbvjgoos44GC44GN44KJDQor44GT44GgLOOBqOOBl+OChuOBjQ0KK+OBi+OBvuOBoCzjgobjgY3jgYoNCivjgYbjgYjjgoDjgoks44KI44GX44GKDQor44G+44Gk44Gw44KJLOOBvuOCguOCiw0KK+OBv+OBquOBqOOBkOOBoSzjgZ/jgaDjgZcNCivjgY/jgYzjgabjgpMs44GY44KNDQor44GE44KP44GbLOOBqOOBl+OBruOBtg0KK+OBr+OChOOBlyzjgb7jgZXjga/jgosNCivjgYTjgY/jgarjgb8s44GX44KT44GV44GPDQor44GE44Go44GGLOOCgOOBreOBlw0KK+OBk+OChOOBvizjgZ/jgaTjgYoNCivjgYrjgajjgb7jgoss44Gy44KN44GXDQor44Gq44GM44GELOOBvuOBleOBr+OCiw0KK+OBhOOBqOOBhizjgZfjgocNCivjgYTjgb7jgYQs44Gy44KN44G/DQor44G+44GZ44GgLOOBqOOBl+OBsuOCjQ0KK+OBi+OCj+OBuSzjgogNCivjgZXjgajjgYYs44G+44GV44GXDQor44GV44GTLOOBsuOCjeOChuOBjQ0KK+OCgOOBi+OBhCzjgYLjgaTjgZMNCivjgYrjgZfjgb4s44GT44GG44GIDQor44Gk44Gh44KELOOBiOOBhOOBmA0KK+OBr+OChOOBl+OBkOOBoSzjgbLjgo3jgb8NCivjgZXjgajjgYYs44GL44Ga44KEDQor44KA44KJ44GV44GoLOOBl+OBkuOCiw0KK+OBr+OCi+OChOOBvizjgoTjgZnjgZcNCivjgZfjgZLjgoLjgoos44Gu44G244Gy44KNDQor44G144Gq44GNLOOBv+OBpOOBsuOCjQ0KK+OCj+OBoCzjgZfjgpPjgZgNCivjgaTjgbzjgYss44Gf44GL44GXDQor44Go44GgLOOBsuOCjeOBv+OBoQ0KK+OChOOBvuOCgOOCiSzjgojjgZfjgbLjgagNCivjgYTjgZfjgZDjgo0s44KC44Go44Gv44KLDQor44G144Gq44Gv44GXLOOBvuOBk+OBqA0KK+OBmeOBmuOBjSzjgZ/jgaTjgosNCivjgojjgZfjgaAs44Gf44GL44Gy44KNDQor44KP44Gf44Gq44G5LOOCiuOCh+OBnw0KK+OBquOBi+OBq+OBlyzjgZHjgYTjgZgNCivjgoTjgb7jgoLjgags44G+44GV44Gv44KLDQor44GE44GX44GL44KPLOOBmOOCheOBq+OBoQ0KK+OBn+OBkeOBhuOBoSzjgY/jgZnjgZ/jgYsNCivjgYrjgY/jga4s44GE44Ga44G/DQor44Gg44GmLOOBqOOBl+OBguOBjQ0KK+OBn+OBuSzjgZvjgYTjgYTjgaENCivjgoTjgY4s44KG44GN44Gy44GTDQor44KI44GX44GgLOOBvuOBleOBig0KK+OBteOCi+OBnyzjgZfjgoXjgavjgaENCivjgYvjgo/jgZDjgaEs44Gy44GV44GKDQor44Gv44GZ44GTLOOBhOOBj+OBqA0KK+OBquOBjOOBv+OBrSzjgZfjgpPjgZnjgZENCivjgZ/jgZHjgZfjgZ8s44GY44KF44Gr44Gh44KNDQor44GC44GL44GKLOOBn+OBoOOBguOBjQ0KK+OCj+OBjeOCguOBqCzjgZfjgpPjgYTjgaENCivjgZ/jgZXjgYss44KG44GNDQor44Gq44GL44GX44G+LOOCiOOBl+OBig0KK+OBn+OBkeOBquOBiyzjgY3jgb/jgbLjgo0NCivjgoTjgb7jgZfjgZ8s44Gk44GO44GKDQor44GP44G844GILOOBn+OBi+OBv+OBpA0KK+OBiuOBkOOBlyzjgZjjgoXjgpPjgZgNCivjgYLjgZXjgYss44G+44GV44KG44GNDQor44GI44GQ44GhLOOBk+OBhuOBhOOBoQ0KK+OBiuOBleOBjSzjgZXjgajjgZcNCivjgYrjgY/jgaAs44GY44KF44KTDQor44GK44GP44KA44KJLOOBvuOBleOBqOOBlw0KK+OBi+OBquOBvuOCiyzjgorjgofjgbLjgaENCivjgY3jga7jgZfjgZ8s44GL44Ga44GKDQor44GV44GV44GNLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBrizjgorjgoXjgYbjgZ/jgo3jgYYNCivjga/jgZfjgaAs44KI44GX44Gu44KKDQor44G744GXLOOBl+OCheOCk+OBmA0KK+OBv+OBmuOBrizjgZXjgajjgZcNCivjgb/jgaTjga/jgZcs44GL44Ga44KG44GNDQor44KC44Go44Gv44GXLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgZHjgpPjgZgNCivjgarjgYzjga4s44KE44GZ44KI44GXDQor44GE44GX44GELOOBsuOCjeOBguOBjQ0KK+OBi+OCgeOBoCzjgarjgYrjgbLjgZMNCivjgY3jga/jgZ8s44Gm44KL44GKDQor44GT44Gw44KE44GXLOOBl+OCh+OBsuOBoQ0KK+OBl+OCieOBteOBrSzjgZfjgZLjgajjgZcNCivjgarjgaTjga/jgoks44Gy44KN44KI44GXDQor44Gr44GX44Gv44KJLOOBvuOBk+OBqA0KK+OBr+OBl+OBsCzjgYvjgZrjgYoNCivjgbLjgZfjgazjgb4s44GL44Ga44KNDQor44Gy44Gz44KELOOCiOOBl+OBsuOBkw0KK+OBv+OChCzjgYrjgZXjgoANCivjgoDjgonjgYvjgb8s44GN44KI44Gy44GnDQor44KA44KJ44GfLOOBn+OBpOOBig0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgosNCivjgYrjgavjgZcs44KG44GZ44GRDQor44Gf44GR44GX44GfLOOBi+OBpOOBsuOBkw0KK+OBpOOBsOOBjeOCguOBqCzjgZ/jgaTjgoQNCivjga/jgb7jgYrjgYss44G+44GV44GXDQor44G/44Ga44GuLOOBpuOBpOOBmA0KK+OBguOBuSzjgb7jgZXjgobjgY0NCivjgYLjgonjgYTjgZcs44KG44GN44Gy44KNDQor44GV44Go44GGLOOBi+OBiuOCiw0KK+OBleOCj+OBrizjgZ/jgZHjgbLjgacNCivjgZfjgoLjgZjjgofjgYYs44GK44GV44KADQor44Gf44GL44GgLOOBn+OBi+OCiOOBlw0KK+OBquOBjOOBnyzjgbLjgo3jgYLjgY0NCivjgavjgZfjga/jgZ8s44KE44GZ44Gy44GVDQor44Gv44KE44GXLOOBn+OBj+OBig0KK+OBu+OBneOBi+OCjyzjgbLjgo3jgbXjgb8NCivjgYLjgYrjgY0s44GX44KT44Gf44KN44GGDQor44KI44GX44GgLOOBsuOBp+OBr+OCiw0KK+OCj+OBn+OBquOBuSzjgbXjgb/jgYoNCivjgYTjgo/jgZXjgo8s44Gv44GY44KBDQor44Gu44GbLOOBl+OCh+OBsuOBoQ0KK+OBsuOCieOBl+OBnyzjgbLjgo3jgYLjgY0NCivjgojjgZfjgZbjgo8s44Gy44KN44GXDQor44KA44GoLOOChOOBmeOBlw0KK+OBv+OCj+OBhuOCiSzjgZ/jgZHjgYoNCivjgY3jgY/jgaEs44Go44KI44Gf44GLDQor44GI44Ge44GILOOBsuOCjeOBvw0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgb8NCivjgYTjgaHjgYvjgo8s44G+44GV44GC44GNDQor44Gv44KJ44GgLOOBm+OBhOOBluOBtuOCjQ0KK+OCgOOCieOBnyzjgZ/jgaDjgb8NCivjgYTjgajjgYYs44GL44Ga44Gy44GnDQor44G744GX44GqLOOChOOBmeOBsuOCjQ0KK+OBqOOBj+OBoCzjgb7jgZXjgbXjgb8NCivjgZ/jgZDjgoos44Gd44Gy44GhDQor44GV44GV44GNLOOBguOBjeOCiQ0KK+OBn+OBvuOCiyzjgb/jgY3jgajjgZcNCivjgavjgZfjga/jgZcs44Gy44KN44Go44GXDQor44GY44Gk44GL44KPLOOBn+OBi+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjga/jgosNCivjgYrjgavjgZcs44GZ44GI44GKDQor44Gq44GM44GV44GNLOOBsuOCjeOChOOBmQ0KK+OBhOOBhOOBoCzjgbLjgafjgYoNCivjgZ/jgYvjga4s44GR44GE44GeDQor44Gy44GV44GuLOOBsuOBp+OBguOBjQ0KK+OBhOOBruOBhuOBiCzjga/jgZjjgoENCivjgYTjgZfjgY/jgoks44Gy44KN44G/DQor44GC44GN44KE44G+LOOBn+OBkeOBlw0KK+OBhOOBoeOBi+OCjyzjgZ/jgYvjgZcNCivjgY3jgYzjgo8s44KI44GX44Gf44GLDQor44GV44GE44Go44GGLOOCiOOBl+OBqA0KK+OCiOOBoCzjgb/jgY3jgYoNCivjgYLjgonjgY0s44GR44GE44KEDQor44GZ44GO44Gv44KJLOOBruOCiuOBig0KK+OBi+OCj+OBkOOBoSzjgYvjgZrjgojjgZcNCivjgb/jgoQs44Go44KC44KG44GNDQor44GE44GR44GKLOOBr+OCi+OBig0KK+OBleOBj+OCieOBhCzjgZfjgZLjgYoNCivjgZPjgZfjga4s44GL44Ga44Gy44GTDQor44GN44GP44GL44KPLOOBleOBhOOBoQ0KK+OChuOBguOBlSzjgY3jgb/jgZMNCivjgZnjgZrjgY0s44KG44GG44GTDQor44G+44GZ44GgLOOBsuOBp+OBvw0KK+OBguOCieOBhCzjgb7jgZXjgbLjgo0NCivjgYTjgZHjgaAs44Go44GX44Gk44GQDQor44GN44GZLOOBsuOBp+OBjQ0KK+OBhuOBl+OChOOBvizjgb7jgZXjgobjgY0NCivjgYvjgb7jgZ8s44GT44GG44GYDQor44GG44GV44G/LOOBm+OCk+OCig0KK+OBquOBi+OBrizjgZPjgYbjgYTjgaENCivjgYvjgY3jgYvjgo8s44Gy44KN44KG44GNDQor44GN44GY44G+LOOBv+OBjeOBig0KK+OCgOOBi+OBhCzjgobjgYbjgZgNCivjgarjgYzjgoTjgb4s44Gy44Gn44Gy44GVDQor44Gv44Gj44Go44KKLOOBpuOBhOOBmA0KK+OBv+OBl+OBvizjgb7jgZXjgbLjgZMNCivjgZTjgags44Gy44KN44KG44GNDQor44GE44Go44GGLOOBteOBmOOBig0KK+OBiuOBjOOBnyzjgojjgZnjgZENCivjgY/jgZXjgbAs44GL44Ga44GKDQor44Gm44KJ44GILOOBn+OBi+OBlw0KK+OBu+OCk+OBoCzjgobjgYbjgZgNCivjgYLjgY/jgZ/jgYzjgo8s44GX44KT44Gf44KN44GGDQor44G/44KE44GT44GXLOOChOOBmeOBig0KK+OBteOBj+OBl+OBvizjgajjgZfjgYoNCivjgZfjga7jgZrjgYss44GC44GN44KJDQor44GK44Gf44GNLOOCjOOBhA0KK+OBquOBjOOBvuOBpCzjgYjjgaTjgZcNCivjgYLjgonjgYQs44GN44KI44GXDQor44G+44Gk44GgLOOBn+OBkeOBlw0KK+OBteOBmOOBnyzjgZjjgoXjgavjgaENCivjgYvjgb/jgZDjgaEs44Gy44KN44KG44GNDQor44GL44Go44GGLOOBvuOBleOCiOOBlw0KK+OChOOBvuOBluOBjSzjgb7jgZXjgZMNCivjgYbjgoHjgZ/jgass44G+44GV44GKDQor44Gq44KL44GbLOOBpOOCiOOBlw0KK+OBj+OBvCzjgY/jgavjgajjgZcNCivjgY/jgonjgZ8s44Gy44KN44KG44GNDQor44GT44KT44GpLOOBi+OCiOOBkw0KK+OBn+OBkeOBhuOBoSzjga/jgovjgobjgY0NCivjgYTjga7jgYbjgYgs44Gy44GV44GoDQor44Gf44GL44GgLOOBruOCiuOBig0KK+OBguOBj+OBpCzjgb/jga7jgosNCivjgajjgorjgYQs44KE44GZ44GIDQor44KC44KK44GK44GLLOOBkeOBhOOBmeOBkQ0KK+OBi+OBj+OBn+OBqyzjgajjgoLjgZMNCivjgZ/jgZHjgYTjgaEs44GX44KH44GYDQor44Gf44GELOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBpOOBoeOChCzjgb7jgZXjgosNCivjgb7jgZnjgaAs44GV44Gh44KIDQor44GL44KT44GgLOOBguOBpOOBvw0KK+OChOOBvuOBhuOCiSzjgbLjgo3jgYLjgY0NCivjgY3jga7jgZfjgZ8s44Gy44Go44GXDQor44G744GV44GLLOOBn+OBkeOBruOCig0KK+OBvuOCi+OBiuOBiyzjgYLjgaTjgZMNCivjgYvjgb7jgZ8s44GY44KF44KT44GTDQor44Gv44Gf44Gq44GLLOOBj+OBq+OBig0KK+OBj+OCjeOBryzjgbLjgo3jgobjgY0NCivjgajjgaTjgYss44Gm44KL44GKDQor44GE44GX44GELOOBv+OBjeOChA0KK+OCguOCiuOBnyzjga7jgorjgYoNCivjgbvjgpPjgb4s44KI44GX44GL44GaDQor44GC44KJ44GL44GNLOOBi+OBpOOChuOBjQ0KK+OBn+OBkSzjgbLjgo3jgb8NCivjgYTjgZrjga/jgoks44KG44G/44GTDQor44Gy44GV44Go44G/LOOBvuOBquOBtg0KK+OBmeOBmuOBjSzjgaHjgYjjgZMNCivjgavjgZfjgarjgYss44GR44GE44GTDQor44G/44Ga44GuLOOBvuOBleOBteOBvw0KK+OCguOCiuOCgOOCiSzjgb7jgZXjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44Gy44GV44GKDQor44GX44GS44Go44KBLOOChOOBmeOCiOOBlw0KK+OBsuOCjeOBi+OCjyzjgZfjgZLjgb/jgaQNCivjgZXjgajjgYYs44GP44Gr44GKDQor44G+44GI44GL44KPLOOBsuOBp+OChuOBjQ0KK+OCiOOBl+OBhCzjgbLjgo3jgZcNCivjgbvjgZ3jgoQs44G+44GV44G/DQor44GV44GL44KC44GoLOOCiOOBhuOBkw0KK+OBk+OBhOOBmuOBvyzjgojjgYbjgZMNCivjgavjgZcs44G144KIDQor44GL44Gt44GTLOOBvuOBoQ0KK+OBmeOBv+OBj+OCiSzjgZfjgZLjgosNCivjgojjgZPjgYos44KI44GX44Go44KCDQor44GV44GV44GNLOOBn+OBkeOBsuOBkw0KK+OBr+OChOOBlyzjgarjgYrjgYvjgZoNCivjgZ/jgarjgYss44Gf44KN44GGDQor44GC44GN44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBleOBhOOBmSzjgbLjgZXjga7jgooNCivjga7jgYzjgb8s44GT44GeDQor44Go44KI44GX44G+LOOBguOBjeOCiQ0KK+OBl+OCk+OBmOOChyzjgajjgZfjgYvjgZoNCivjgbXjgY3jga4s44KI44GX44GC44GNDQor44GE44GR44GgLOOBkeOBrg0KK+OBiuOBoOOCj+OCiSzjgobjgYbjgZgNCivjgZ/jgYvjga/jgZcs44G+44GV44G/DQor44GR44GE44G+LOOBqOOBl+OBruOCig0KK+OBl+OBv+OBmizjgbLjgafjgbLjgZMNCivjgYTjgb7jgYTjgZrjgb8s44GL44Ga44GKDQor44KC44KK44GfLOOBl+OBkuOBvw0KK+OCguOCiizjgoTjgZnjgbXjgb8NCivjgb7jgYjjgYvjgo8s44GC44GN44KJDQor44KE44Gq44GO44GgLOOBl+OCh+OBuOOBhA0KK+OCgOOCieOCguOBqCzjgZ/jgYvjgYoNCivjgZnjgZrjgY0s44GL44Ga44GKDQor44G744Gd44GILOOBguOBjeOCiQ0KK+OBhOOBl+OBj+OCiSzjgY3jgojjgZcNCivjgbLjgo3jgYvjgo8s44Go44G/44GKDQor44GL44KJ44GX44G+LOOCiOOBl+OBi+OBmg0KK+OBvuOBoeOBoCzjgZvjgYTjgZgNCivjgoLjgorjgoTjgb4s44GX44KF44GE44Gh44KN44GGDQor44Gf44GR44KA44KJLOOBn+OBi+OBlw0KK+OBpOOBi+OCguOBqCzjgoLjgorjgojjgZcNCivjgoTjgb7jgZDjgaEs44GL44Ga44GN44GhDQor44Gd44KB44KELOOCiuOBpA0KK+OBquOBi+OBlOOCgSzjgajjgZfjgYvjgaQNCivjgYTjgo/jgarjgYws44GY44KF44KTDQor44Gb44GN44KELOOBk+OBhuOBmA0KK+OBpuOCieOBhCzjgajjgoLjgZgNCivjgZ/jgarjgYss44KG44G/44GTDQor44Gb44GN44KELOOChOOBmeOBvw0KK+OBleOBj+OCieOBhCzjgoTjgZnjgYvjgZoNCivjgYTjgZ3jgbks44GZ44GZ44KADQor44G+44Gk44GK44GLLOOBsuOCjeOBlw0KK+OBhOOBoeOBmOOChyzjgbLjgo3jgZcNCivjgoTjgb7jgoLjgags44G+44GV44Gy44GTDQor44Gn44GQ44GhLOOBm+OBhOOBmA0KK+OBsuOCieOBvuOBpCzjgobjgYbjgZgNCivjgb/jgZrjga4s44Gf44GL44GXDQor44Go44G/44Gq44GMLOOBl+OCk+OBhOOBoQ0KK+OBn+OBi+OBl+OBvizjgbLjgZXjga7jgooNCivjga7jgYzjgb8s44Gm44Gk44GeDQor44GK44GkLOOBguOBjeOBteOBvw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgbLjgagNCivjgabjgonjgaAs44GC44GN44GKDQor44GV44GE44Go44GGLOOBsuOBp+OBig0KK+OBguOBleOBrizjgZHjgYTjgZnjgZENCivjgZfjgoLjgoDjgoks44GR44KT44GYDQor44GK44Gy44GXLOOBi+OBmuOBsuOCjQ0KK+OBn+OBquOBiyzjgbLjgafjgYoNCivjgb7jgaTjgoLjgags44GY44KF44KT44KNDQor44Gy44KJ44G+44GkLOOBiOOBv+OBkw0KK+OBn+OBkeOBhuOBoSzjgb7jgaTjgZ/jgo3jgYYNCivjgZfjgZLjga/jgoks44Gf44GL44Gy44GTDQor44GK44GL44KC44GoLOOBvuOBleOBruOCig0KK+OCgOOCieOChOOBvizjgZfjgo0NCivjgZPjgb7jgaTjgbDjgoks44Gf44GL44Go44GXDQor44GI44Gw44GfLOOCiOOBl+OBig0KK+OBiuOBnyzjgYTjgZXjgoANCivjgabjgonjgYos44G+44GV44Gy44KNDQor44GK44GV44KPLOOBsuOBqOOBlw0KK+OBi+OCj+OBl+OBvizjgbLjgo3jgZcNCivjgYLjgonjgYQs44Gy44KN44G144G/DQor44Gv44GX44Ga44KBLOOBkeOCk+OBhOOBoQ0KK+OBv+OBmuOBl+OBvizjgajjgZfjgYvjgZoNCivjgbLjgonjgb7jgaQs44Gf44Gk44KEDQor44GK44GP44KA44KJLOOBn+OBi+OChA0KK+OBv+OBmuOBquOBiyzjga7jgorjgajjgZcNCivjgbvjgorjgYbjgaEs44Gu44KK44KI44GXDQor44Gf44GN44KC44GoLOOBpOOBreOBig0KK+OChOOBmeOBsCzjgY3jgojjgZcNCivjgY3jgZ/jga4s44GX44GS44KLDQor44Gr44GX44GgLOOBv+OBruOCiw0KK+OBhOOBl+OBi+OCjyzjgabjgovjgb7jgZUNCivjgYrjgbAs44Gv44GY44KBDQor44GL44GX44KP44GOLOOCguOBqOOBkw0KK+OBleOBqOOBhizjgZfjgZrjgYoNCivjgb7jgaTjgaAs44GR44KT44GYDQor44GT44KA44KNLOOBlOOCjQ0KK+OCgOOCieOBnyzjgbLjgo3jgobjgY0NCivjgZXjgZXjgYzjgo8s44G+44GV44KLDQor44GV44Gf44GRLOOBn+OBpOOBvw0KK+OBj+OCj+OBrizjgb7jgZXjgZcNCivjgZTjgags44GC44GN44KJDQor44G144GY44GELOOBk+OBhuOBmA0KK+OBv+OBmuOBk+OBlyzjgYjjgaTjgYoNCivjgbXjgZjjgb7jgY0s44KI44GX44GTDQor44GE44Gn44GfLOOBk+OBlw0KK+OBquOBi+OBpOOBiyzjgZfjgoXjgbLjgaENCivjgYbjgpPjga4s44Go44GX44GKDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBr+OBvizjgoLjgajjga7jgbYNCivjgajjgb/jgZ8s44KG44GN44GKDQor44Gf44Gr44GkLOOBqOOBl+OBvw0KK+OBmeOBmuOBjSzjgbLjgZXjgYoNCivjgYrjgY/jgoDjgoks44GL44Ga44KG44GNDQor44G144GP44GX44G+LOOBiuOBleOCgA0KK+OBiuOBr+OBlyzjgYLjgY3jgYoNCivjgoTjgb7jgZfjgZ8s44Gq44GK44GNDQor44GL44KP44G/LOOBsuOBp+OChuOBjQ0KK+OBr+OCi+OBnyzjgYvjgZrjgYoNCivjgb/jgoTjgoLjgags44Gv44KL44Go44GXDQor44Gk44GY44GfLOOBsuOBleOBig0KK+OBhOOBvuOCgOOCiSzjgYvjgaTjgb8NCivjgZXjgajjgYYs44GX44KT44GE44GhDQor44Gq44GL44GY44G+LOOBkeOCk+OBhOOBoQ0KK+OBl+OBhOOBrizjgYvjgZrjgoQNCivjgZTjgags44Gy44Go44GXDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBquOBjOOBhCzjgZ/jgZHjgb8NCivjgYbjgaHjga4s44GL44Ga44Gy44KNDQor44GI44GE44GY44G+LOOBsuOCjeOBlw0KK+OChOOBvuOBquOBiyzjgZ/jgYvjgYoNCivjgarjgYvjgoDjgoks44KG44GUDQor44GZ44Ga44GNLOOBvuOBleOBv+OBoQ0KK+OBm+OCgOOCiSzjgaHjgojjgZgNCivjgarjgYvjgYzjgo8s44GL44Ga44Gy44GTDQor44Gf44KELOOBsuOBi+OCiw0KK+OCgOOCieOBi+OBvyzjgZ/jgYvjgYoNCivjgYTjgZfjgYvjgo8s44Gb44GE44GE44GhDQor44Gb44GN44GQ44GhLOOBkeOCk+OBhOOBoeOCjQ0KK+OBiuOBrizjgbLjgo3jgZcNCivjgYrjgYTjgYvjgo8s44KG44GG44GTDQor44GE44KP44GELOOBvuOBleOBig0KK+OBguOBleOBsizjgZXjgbbjgo0NCivjgZTjgags44KG44GN44GTDQor44GL44Gt44Gf44GRLOOBl+OBkuOBig0KK+OBhuOBiOOBvuOBpCzjgb/jga7jgosNCivjgbXjgY/jgZfjgb4s44KC44Go44Gv44KLDQor44G144GP44GgLOOBoeOBiOOBkw0KK+OBmeOBmuOBjSzjgYLjgaTjgZcNCivjgYrjgZDjgoks44GK44GV44KADQor44Gy44KJ44GnLOOBk+OBhuOBmA0KK+OBiuOBl+OBkizjga7jgbbjgYoNCivjgb7jgaTjgoLjgags44KE44GZ44KG44GNDQor44GV44GV44GNLOOCiuOCheOBsuOBoQ0KK+OBlOOCk+OBoCzjgYvjgaTjgbLjgo0NCivjgb7jgaTjgYrjgYss44Gf44GL44GXDQor44GG44KB44GW44KPLOOBsuOCjeOBruOCig0KK+OBq+OBl+OBiizjgZPjgYbjgYTjgaENCivjgZPjgZjjgb4s44GX44KH44GG44GE44Gh44KN44GGDQor44Gf44Gr44GQ44GhLOOCiOOBl+OChuOBjQ0KK+OBiuOBjuOBmSzjgajjgZfjgoQNCivjgZXjgaDjgbLjgZUs44GP44Gr44KE44GZDQor44G144GY44KP44KJLOOBkeOCk+OBmA0KK+OBr+OBo+OBqOOCiizjgYvjgYrjgosNCivjgYvjgb7jgZ8s44GL44Gq44KBDQor44Go44GwLOOBqOOBl+OBruOCig0KK+OChOOBvuOBoCzjgbLjgo3jgZgNCivjgoTjgb7jgoLjgags44Gf44GL44KG44GNDQor44Gf44GR44GG44GhLOOBjeOCh+OBkw0KK+OBguOCieOBjSzjgobjgY3jgbLjgZMNCivjgavjgZfjgYos44Gu44G244GL44GaDQor44KC44KK44GG44GhLOOBn+OBhOOBoQ0KK+OBhOOCj+OBnyzjgYjjgorjgZMNCivjgZXjgZXjgY0s44GI44Gk44GKDQor44G+44GI44GM44KPLOOBvuOBleOCiw0KK+OBteOBj+OBq+OBlyzjgZvjgYTjgZgNCivjgYbjgYjjgaAs44G+44GV44Gk44GQDQor44KE44G+44GO44GXLOOBi+OBmuOBquOCig0KK+OBiuOBrizjgobjgZ4NCivjgbXjgZjjgZ8s44KI44GX44Gk44GQDQor44GN44Gf44KA44KJLOOBsuOCjeOBlw0KK+OCiOOBl+OBr+OCiSzjgZPjgYbjgYTjgaENCivjgYTjgo/jgZXjgo8s44KC44KK44GKDQor44GT44G+44GkLOOBquOBiuOChuOBjQ0KK+OBn+OBq+OCgOOCiSzjgajjgZfjgYoNCivjgZPjgZXjgYss44G+44GT44GoDQor44Gf44GX44G+LOOBn+OBoOOBsuOCjQ0KK+OBq+OBl+OBiuOBiyzjgb/jgY3jgYoNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GU44GoLOOBsuOBp+OBteOBvw0KK+OBi+OCj+OBr+OCiSzjgZvjgaTjgZMNCivjgZ/jgZjjgb4s44GV44Gq44GIDQor44GL44KT44GuLOOBsuOBp+OBguOBjQ0KK+OBi+OBn+OBl+OBvizjgb7jgZXjgo0NCivjga/jgZfjgoLjgags44KE44GZ44Gk44GQDQor44Gq44GL44GgLOOBi+OBmuOBruOBtg0KK+OBi+OBleOBr+OCiSzjgajjgoLjgogNCivjgabjgonjgoLjgags44G+44GT44GoDQor44KP44GL44G+44GkLOOBkeOCk+OBmA0KK+OBhOOBqOOBhizjgbXjgY/jgY3jgaENCivjgo/jgaAs44KI44GX44G/44GkDQor44Gf44KT44GYLOOChuOCiuOBkw0KK+OBiuOBpOOBiyzjgZ/jgY/jgb8NCivjgaTjgZjjgoLjgags44Gf44Gk44KI44GXDQor44Gb44KK44GW44KPLOOBsuOCjeOBguOBjQ0KK+OBqOOBruOBleOBjSzjgbLjgZXjgZ/jgZENCivjgZ/jgYvjgY4s44G+44GV44KG44GNDQor44GK44G144GhLOOBi+OBpOOChuOBjQ0KK+OBguOBvuOBrizjgajjgZfjgYoNCivjgarjgYvjgoDjgoks44KE44GZ44Gy44KJDQor44Gf44Gw44GfLOOBmOOCheOBq+OBoQ0KK+OBqOOCiOOBmuOBvyzjgZfjgofjgZgNCivjgZfjgoXjgY/jgoQs44GC44GN44GKDQor44Gf44GL44GuLOOBl+OCk+OChA0KK+OCgOOCieOBi+OBvyzjgb/jgZnjgZoNCivjgYTjgZfjgZrjgYss44Gy44KN44GXDQor44GE44GE44Ga44GLLOOBm+OBhOOBhOOBoQ0KK+OBl+OCieOBhCzjgZ/jgYvjgYLjgY0NCivjgbXjgY/jga/jgoks44G+44Gq44G/DQor44GE44Gq44GM44GNLOOBqOOBl+OBpOOBkA0KK+OBsuOCieOBl+OBvizjgbLjgafjgb8NCivjgaTjgZjjgbDjgoTjgZcs44Gy44KN44GC44GNDQor44G+44Gk44GKLOOCgeOBkOOBvw0KK+OChOOBvuOCguOBqCzjgZHjgYTjgYTjgaENCivjgoLjgorjga4s44Gu44G244Gv44KLDQor44Gf44GY44G+LOOBteOBv+OBiA0KK+OBruOBluOBjSzjgb/jgaHjgZMNCivjgYLjgaDjgaEs44GL44Gk44Gq44KKDQor44Gf44GL44KELOOBv+OBoeOBig0KK+OBiuOBrizjgYLjgY3jgokNCivjgb7jgaTjgoLjgags44KG44GG44GYDQor44Gv44GX44KC44GoLOOBvuOBleOBguOBjQ0KK+OBi+OBrizjgojjgZfjgo0NCivjgZ/jgZHjgaAs44GX44KT44GE44GhDQor44GN44KK44Gv44KJLOOBsuOBqOOBlw0KK+OBn+OBquOBiyzjga7jgbbjgojjgZcNCivjgajjgorjgYQs44Go44GX44Gy44GTDQor44Gq44GL44GX44G+LOOBguOBjeOCiQ0KK+OBm+OBmeOBvyzjgZnjgYjjga/jgosNCivjgb7jgYjjga7jgZ3jga4s44Gm44Gk44GKDQor44GU44GoLOOBsuOBqOOBlw0KK+OBu+OCiizjgYLjgaTjgZcNCivjgZ/jgYvjgYTjgoks44G+44GV44G/DQor44Gf44Gr44GgLOOBvuOBquOBtg0KK+OBteOCi+OBqeOBhCzjgZ/jgYvjgYoNCivjgYrjgY7jgoQs44Go44GX44GKDQor44Gq44GL44GY44G+LOOBmOOCheOCkw0KK+OBu+OCiuOBi+OCjyzjga7jgbbjgZ/jgYsNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GC44GK44GNLOOBvuOBleOBig0KK+OBiuOBj+OBr+OBnyzjgYvjgaTjgYLjgY0NCivjgY/jgo/jgbDjgoks44GL44Ga44Gy44GnDQor44GL44KT44GgLOOChOOBmeOBlw0KK+OBmeOBjuOCguOBqCzjgbXjgb/jgZMNCivjgoTjgb7jgoLjgags44GR44GE44GTDQor44GL44Gt44GTLOOChOOBmeOBsuOBkw0KK+OBquOCiuOBnyzjgYLjgY3jga7jgbYNCivjgavjgZfjgYos44G+44GV44GKDQor44GE44GL44KKLOOBmOOCheOCkw0KK+OBteOCi+OBi+OCjyzjgYvjgZrjgarjgooNCivjgYLjgonjgYQs44GX44KT44GYDQor44GP44Ga44GL44G/LOOChuOBjeOCiOOBlw0KK+OBlOOBqCzjgY3jgofjgbLjgaENCivjgoTjgb7jga/jgoks44GC44GN44Gy44KNDQor44KE44G+44GgLOOBl+OCheOBsuOBoeOCjQ0KK+OBhOOBmCzjgb7jgZXjgarjgYoNCivjgY/jgonjgoLjgaEs44Gu44G244KI44GXDQor44G144GY44KP44KJLOOBi+OBmuOBsuOCjQ0KK+OBn+OBkeOBoCzjgb7jgZPjgagNCivjgZ/jgYvjga7jgZss44Gu44G244KG44GNDQor44Go44KC44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBleOBqOOBhizjgobjgZnjgZENCivjgZXjgYvjgY3jgbDjgoks44Gy44KN44G/44GkDQor44G/44KE44GW44GNLOOCiuOChw0KK+OCiOOBl+OBoCzjgbLjgafjgYLjgY0NCivjgZ/jgarjgYss44G+44GV44KLDQor44GU44GoLOOCguOBqOOChuOBjQ0KK+OBq+OBl+OBoCzjgZ/jgZHjgbLjgo0NCivjgarjgYvjgZfjgb4s44Gv44KL44GKDQor44GN44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgZvjgYTjgZgNCivjgYrjgZfjgb4s44Gy44KN44GXDQor44GK44Gy44KDLOOBl+OCheOBsuOBoQ0KK+OBv+OChOOCguOBqCzjgb7jgZnjgb8NCivjgoTjgb7jgZfjgZ8s44GX44GS44KLDQor44Gf44Gq44GLLOOBqOOBl+OCjQ0KK+OCguOCiizjgb/jgY3jgYoNCivjgarjgovjgb8s44Gy44Gn44GZ44GODQor44GU44GoLOOBleOBqOOBlw0KK+OChOOBvuOBoeOBiyzjgYjjgaTjgYoNCivjgZXjgZXjgY0s44GX44GS44G144G/DQor44GN44GX44GgLOOBr+OBmOOCgQ0KK+OBiuOBsuOCg+OBvizjgb7jgZXjgobjgY0NCivjgZfjgYTjga4s44KG44GG44GYDQor44GE44Ga44G/44GV44KPLOOBl+OCheOBsuOBoQ0KK+OBi+OBv+OCgOOCiSzjgojjgZfjgbLjgZMNCivjgZXjgYvjgYQs44G/44Gh44GKDQor44GU44GoLOOBkeOBhOOBhOOBoQ0KK+OBi+OBqOOBhizjgb/jgaTjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GX44GS44KG44GNDQor44GP44GuLOOBvuOBleOBqOOBlw0KK+OBhOOCj+OBtuOBoSzjgZ/jgZHjgZcNCivjgbvjgpPjgbYs44G+44KC44KLDQor44KC44KK44GfLOOBvuOBleOBruOCig0KK+OBm+OBjeOChCzjgYrjgZXjgoANCivjgazjgb7jgZ8s44G+44GZ44G/DQor44GU44GoLOOBguOBpOOBlw0KK+OBvuOBquOBuSzjgYrjgZXjgoANCivjgYTjgb7jgY3jgZ8s44Gg44GE44GY44KNDQor44GT44Gg44GLLOOBguOBjeOCiQ0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgagNCivjgZXjgajjgYYs44G/44Gh44GKDQor44GP44GZ44G/LOOCiOOBmeOBkQ0KK+OBr+OBjuOCj+OCiSzjgYvjgaTjgoQNCivjgbXjgovjgZss44KI44GX44Go44KCDQor44KA44KJ44GfLOOBoOOBhOOBqw0KK+OBiuOBj+OCgOOCiSzjgZHjgpPjgYTjgaENCivjgZ/jgavjgYzjgb8s44GL44Ga44GKDQor44Gq44GL44KA44KJLOOBjeOBhOOBoeOCjeOBhg0KK+OBk+OBhOOBmuOBvyzjgZPjgYbjgZgNCivjgZnjganjgYYs44Gf44Gk44Gy44GTDQor44GE44GnLOOBvuOBleOBpOOBkA0KK+OBl+OCguOBrizjgb7jgZXjgbXjgb8NCivjgZ/jgYvjgY4s44GY44KF44KTDQor44GV44GL44GELOOBkw0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgoQNCivjgbXjgovjgZ8s44KB44GE44GV44GEDQor44GC44GV44GELOOBvuOBleOCiw0KK+OBteOBi+OBleOCjyzjgZfjgofjgZgNCivjgZTjgYvjgYTjgaEs44GR44KT44GYDQor44GK44Gk44GLLOOBn+OBkeOBsuOBlQ0KK+OBleOBqOOBhizjgZ/jgZHjgZcNCivjgYTjga7jgYbjgYgs44GL44Ga44KG44GNDQor44Gf44GR44GgLOOBqOOBl+OBi+OBmg0KK+OBvuOBmeOBoCzjgabjgovjgbLjgZMNCivjgoTjgb7jgoLjgags44GX44KH44GTDQor44GK44Gv44KJLOOBvuOBleOBsuOBkw0KK+OBteOBquOBpCzjgZ/jgYTjgaENCivjgZPjgoTjgb4s44GX44KT44GYDQor44KE44G+44GW44GNLOOBvuOBleOBsuOBkw0KK+OBn+OBmOOCiizjgbLjgo3jgZcNCivjgZXjgajjgYYs44Gm44Gk44KEDQor44Gq44GM44GX44G+LOOBi+OBmuOBsuOCjQ0KK+OBpOOBoCzjgojjgZfjgYLjgY0NCivjgarjgYzjgYos44GC44Gk44GXDQor44GK44GZ44GOLOOBi+OBmuOBig0KK+OBhOOBqOOBhizjgb/jgaHjga7jgbYNCivjgZ/jgb7jgYQs44GN44KI44GXDQor44G/44KE44GX44GfLOOBj+OBq+OBsuOBkw0KK+OBv+OBl+OBvizjgZPjgYbjgZgNCivjgbvjgorjgYQs44KE44GZ44Gu44KKDQor44GU44GoLOOBleOBqOOBlw0KK+OChOOBiizjgZfjgZLjgosNCivjgbLjgZjjgoQs44G+44GV44KG44GNDQor44G744KK44GELOOCiOOBl+OBsuOBkw0KK+OBn+OBkeOBoCzjga7jgbzjgosNCivjgoTjgZnjgarjgYws44G+44Gq44G2DQor44KE44G+44GW44GNLOOBi+OBmuOBsuOBkw0KK+OChOOBrizjgZjjgoXjgpPjgZ4NCivjgZfjgo/jgY8s44Go44GX44Gy44KNDQor44GL44G/44GuLOOBv+OBreOBr+OCiw0KK+OBquOBi+OBmOOBvizjgaTjgojjgZcNCivjgb7jgZnjgaAs44GY44KNDQor44GK44G144GhLOOBn+OBi+OBlw0KK+OBteOBj+OBluOBjSzjgajjgoLjgb8NCivjgYTjgZ/jgYzjgY0s44Gy44KN44KG44GNDQor44GX44KCLOOBqOOCguOBquOCig0KK+OBteOBj+OBhCzjgobjgZ/jgYsNCivjgYTjgbMs44KI44Gy44Gh44KNDQor44GT44KA44GL44GELOOCiOOBl+OBsuOCjQ0KK+OBteOBmOOBiCzjgarjgYrjgYLjgY0NCivjgb7jgaTjgY0s44G+44GT44GoDQor44GT44Gw44KE44GXLOOBmOOCheOBhOOBoQ0KK+OBlOOBoSzjgZ/jgaTjgoQNCivjga/jgZvjgYzjgo8s44Gy44Gn44GYDQor44GL44KP44GU44GILOOBn+OBi+OCiOOBlw0KK+OBquOBjOOBleOCjyzjgYvjgaTjgb8NCivjgoTjgb7jgZfjgZ8s44Gy44Gn44Gy44GoDQor44GE44GX44GW44GNLOOBguOBjeOCiQ0KK+OBiuOBoCzjgb/jga7jgosNCivjgZfjgpPjgaks44GC44GN44KJDQor44GX44KC44GV44GTLOOBn+OBhOOBmOOCjQ0KK+OBpOOBpOOBvyzjgY/jgavjgbLjgZMNCivjgY3jgZ/jgYrjgYss44GY44KNDQor44GN44Gf44GW44KPLOOCjOOBhOOBkw0KK+OBquOBi+OBiuOBiyzjgZfjgZLjgY0NCivjgYTjgZfjgbDjgZcs44Gh44GIDQor44Gv44GX44GQ44GhLOOBruOBtuOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZjjgavjgaENCivjgYrjgbAs44GN44KI44G/DQor44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgZMNCivjgYTjgZbjgo8s44GL44Ga44KI44GXDQor44KI44GX44KE44G+LOOBi+OBmuOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgZHjgpMNCivjgZPjgb7jgaQs44Go44KC44G144G/DQor44G444KT44G/LOOBn+OBhOOBm+OBhA0KK+OBteOBi+OBoCzjgZXjgYvjgYgNCivjgZPjgbDjgoTjgZcs44GX44KT44GE44Gh44KN44GGDQor44GZ44GO44KC44GoLOOBv+OBoeOBsuOCjQ0KK+OCiOOBk+OChOOBvizjgZ/jgYvjgYLjgY0NCivjgZ/jgarjgYss44Gv44KL44Gy44GVDQor44G/44KE44Gf44GrLOOBjeOCiOOBlw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgbLjgZMNCivjgY3jgZ/jgYzjgo8s44GT44GG44GYDQor44G144GP44GK44GLLOOBiOOBhOOBmA0KK+OBiuOCgOOCiSzjgb/jgobjgY0NCivjgYTjgZDjgaEs44G/44KP44GTDQor44Gv44KE44GXLOOBguOBjeOBsuOCjQ0KK+OBsuOCieOBhCzjgYvjgarjgoENCivjgYrjgoLjgoos44GL44Ga44KEDQor44GK44GO44GuLOOBk+OBv+OBqg0KK+OBn+OCgOOCiSzjgojjgZfjgbLjgZMNCivjgZ/jgZHjgaAs44GC44GN44KJDQor44G/44KE44Gq44GMLOOBsuOCjeOChuOBjQ0KK+OBsuOCieOBhCzjgZPjgYbjgYTjgaENCivjgavjgZfjgoDjgoks44GT44GeDQor44Gv44G244GhLOOBruOCiuOBteOBvw0KK+OBiuOBj+OCiSzjgojjgZfjgbLjgZUNCivjga/jgaPjgZ8s44GR44KT44GYDQor44GE44GT44G+LOOBpOOBqOOCgA0KK+OBguOBleOBsuOBqizjga7jgorjgbLjgZMNCivjgYvjga4s44GV44Go44KLDQor44Gq44GL44Gr44GXLOOBguOBpOOBlw0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgYLjgY0NCivjgYTjgaHjgYvjgaks44Gy44KN44KG44GNDQor44Gq44GM44GV44KPLOOBleOBqOOCiw0KK+OBr+OBvuOBkOOBoSzjgb7jgZPjgagNCivjgoTjgZfjgo0s44G+44KK44GTDQor44KA44KJ44GKLOOBi+OBiOOBkw0KK+OBiuOBjuOBvuOBoSzjgozjgYTjgZMNCivjgZfjgo3jgZ8s44GE44Gh44KN44GGDQor44Gm44GX44G+LOOBv+OBpOOBig0KK+OBi+OCj+OBleOBjSzjgbLjgafjgYLjgY0NCivjgoTjgb7jgaAs44GT44GG44GE44Gh44KNDQor44G744KT44GgLOOBruOCiuOBvuOBlQ0KK+OBi+OBreOBkyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgZfjgb4s44Gy44Gn44GL44GaDQor44GT44G/44KELOOCiOOBl+OBguOBjQ0KK+OCj+OBoCzjgYjjgYTjgZgNCivjgojjgZfjgaAs44Gy44KN44KG44GNDQor44KC44KK44GV44GNLOOBn+OBi+OBlw0KK+OBhOOBvuOBsuOBjOOBlyzjgZfjgpPjgZQNCivjgY/jgonjgoLjgaEs44GX44KF44GYDQor44KG44GL44KPLOOBsuOCjeOCgA0KK+OBpuOCieOBiizjgajjgojjgYLjgY0NCivjgZPjgpPjgaks44GC44GN44Gu44G2DQor44GV44GE44Go44GGLOOBr+OCi+OBig0KK+OCiOOBl+OBquOBjCzjgbLjgo3jga7jgooNCivjgobjgYLjgZUs44G+44GNDQor44Go44G544Gj44GoLOOBguOBjeOCiQ0KK+OBm+OCk+OBjCzjgb7jgZXjgobjgY0NCivjgavjgZfjgZDjgaEs44G/44Gk44GKDQor44GG44GI44GgLOOChOOBmeOChuOBjQ0KK+OChOOBvuOBiuOBiyzjgYrjgZXjgoANCivjgoTjgb7jgoLjgags44G+44GV44Gy44GnDQor44G144GY44GL44KPLOOBl+OBkuOCiw0KK+OBiuOBkOOCiSzjgbLjgo3jgZrjgb8NCivjgYvjgo/jga4s44GT44GG44GYDQor44GL44Gt44Ga44GLLOOBpOOCiOOBlw0KK+OBiuOBi+OCguOBqCzjgZ/jgYvjgZcNCivjgYvjgo/jgaTjgY0s44KG44GG44GYDQor44GZ44GI44KI44GXLOOBsuOBp+OBig0KK+OBi+OCj+OBuSzjgo/jgZ/jgosNCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44KC44KKLOOBmOOCjQ0KK+OBmeOBjuOChOOBvizjgb7jgY0NCivjgb7jgYjjgoTjgb4s44G+44GV44KG44GNDQor44GT44KB44Gf44GrLOOBsuOCjeOBlw0KK+OBteOBmOOCj+OCiSzjga/jgovjgobjgY0NCivjgYLjgafjgYzjgo8s44GL44Ga44G+DQor44Go44G/44GW44KPLOOCiOOBl+OBig0KK+OBquOBi+OBnyzjgajjgZfjgYLjgY0NCivjgZ/jgaHjgbDjgarjgY0s44Gq44GK44GNDQor44GT44Gg44G+LOOBqOOBl+OBig0KK+OBr+OBquOBhCzjgYvjgZrjgYoNCivjgaHjga7jga0s44Go44GX44Gf44GRDQor44GX44G/44GaLOOBn+OBi+OBlw0KK+OBn+OBjeOBluOCjyzjgbLjgafjgYoNCivjgY/jganjgYYs44Gy44KN44GC44GNDQor44KC44KK44GK44GLLOOChuOBmeOBkQ0KK+OBi+OBreOBsuOCiSzjgYvjgZrjgYoNCivjgZXjgajjgYYs44Gf44Gk44KEDQor44KE44Gw44GqLOOBl+OBkuOChuOBjQ0KK+OBleOBi+OBmuOCgSzjgZ/jgYvjgobjgY0NCivjga/jgZfjgoLjgags44GX44KT44GZ44GRDQor44KI44Gu44KC44GoLOOBpuOBpOOBmA0KK+OBsOOCk+OBl+OChyzjgY3jgojjgZcNCivjgbXjgaHjgYgs44KG44GG44GYDQor44GZ44Ga44GNLOOBjeOCiOOBlw0KK+OBmeOBmuOBjSzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44GK44GV44KADQor44GL44Go44GGLOOBvuOBleOBguOBjQ0KK+OBj+OBmeOBoCzjga/jgovjgYLjgY0NCivjgb/jgoTjgZ/jgZEs44GX44KH44GUDQor44GV44GuLOOBoeOBuw0KK+OBvuOCi+OBnyzjgYvjgZrjgYoNCivjgb7jgY3jgZ8s44GT44GG44GE44GhDQor44GL44GX44KP44GOLOOBvuOBleOBqA0KK+OBn+OBqyzjgZHjgpPjgZgNCivjgYLjgorjgoTjgZks44G+44GV44GL44GaDQor44GL44Go44GGLOOBguOBjeOBig0KK+OBn+OBquOBiyzjgbLjgo3jga7jgbYNCivjgaTjgZjjgZ8s44Go44GX44GKDQor44GK44GM44KP44KJLOOBsuOCjeOChuOBjQ0KK+OCgOOCieOBleOCjyzjgY3jgogNCivjgZvjgY3jgoLjgags44Gy44Gn44GNDQor44Gk44GY44KC44GoLOOBj+OBq+OBig0KK+OBl+OBiuOBn+OBqyzjgYvjgZrjgYoNCivjgb/jgo8s44GE44GP44GKDQor44Gq44GM44GV44GLLOOChuOBjeOBruOCig0KK+OBk+OBhOOBpyzjgYvjgZrjgbLjgo0NCivjgYrjgZDjgoks44Gf44GL44Gk44GQDQor44Gk44Gk44G/LOOBi+OBmuOBhOOBoQ0KK+OBteOBi+OBvyzjgojjgZfjgbLjgo0NCivjgojjgZfjgaAs44Gy44Gn44GYDQor44KC44KN44G744GXLOOBqOOBl+OBguOBjQ0KK+OBl+OBiuOBrizjgb7jgorjgZMNCivjgoTjgb7jgZDjgaEs44Gv44GY44KBDQor44G+44G/44KELOOCiOOBl+OBvw0KK+OBleOBhOOBqOOBhizjgYjjgaTjgYoNCivjgYLjgY3jgoTjgb4s44GX44KF44GYDQor44GC44Gg44GhLOOBvuOBleOBsuOBqA0KK+OBi+OCj+OBrizjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44Gf44Gg44GKDQor44KE44G+44GQ44GhLOOBqOOBl+OBsuOCjQ0KK+OBleOBj+OBvizjgbLjgZXjgZcNCivjgoLjgaHjgZrjgY0s44Gy44GV44GoDQor44KP44Gf44Gq44G5LOOCiOOBsuOBoeOCjQ0KK+OBk+OBsOOChOOBlyzjgajjgZfjgYoNCivjgY3jgZcs44Gb44GE44GYDQor44Gv44KE44GV44GLLOOBguOBjeOCiQ0KK+OBk+OBteOBmCzjgaTjgajjgoANCivjgZXjgYTjgajjgYYs44Gf44GL44Gu44KKDQor44Gu44KA44KJLOOBmOOCheOBq+OBoQ0KK+OBvuOBpOOBhCzjgZ/jgYvjgZcNCivjga/jgoTjgZfjgaAs44GZ44GZ44KADQor44GK44GM44KPLOOBn+OBoOOBsuOBpw0KK+OBu+OCk+OBoCzjga7jgbbjgb/jgaENCivjgZPjgZbjgo8s44Gk44GL44GVDQor44GV44GV44GNLOOBl+OBkuOChuOBjQ0KK+OCj+OBoCzjgY3jgojjgZcNCivjgoTjgb7jgo/jgY0s44GL44Ga44Gy44KNDQor44G144GY44GELOOBqOOBl+OBv+OBpA0KK+OBn+OBjeOBluOCjyzjgYLjgY3jgbLjgo0NCivjgZXjgajjgYYs44Go44GX44GNDQor44G/44GL44G/LOOBsuOBp+OBvw0KK+OBv+OCjyzjgojjgZfjgZ/jgYsNCivjgYrjgaEs44KI44GYDQor44G144GY44GfLOOBm+OBhOOBmA0KK+OBquOBjOOBnyzjgb/jgozjgYQNCivjgY/jgbzjgZ8s44G/44Gh44KIDQor44GC44GK44GM44GNLOOBvuOBleOBruOBtg0KK+OBi+OCiuOChOOBqSzjgYLjgY3jgZMNCivjgb/jga/jgZcs44GX44KF44KT44GYDQor44KA44KJ44G+44GkLOOChuOBjeOBig0KK+OBi+OBn+OChOOBvizjgb7jgZXjgYgNCivjgoTjgb7jgZbjgY0s44Gf44GL44GXDQor44GK44GO44GdLOOBn+OBi+OBlw0KK+OBsOOBsCzjgojjgZfjgoLjgagNCivjgb/jgZfjgb4s44Gy44Gn44GC44GNDQor44KE44GuLOOBjeOCiOOBlw0KK+OBquOBi+OBmOOBvizjgZ/jgb8NCivjgZ/jgZHjgZfjgZ8s44Gv44KL44KIDQor44Gq44GL44GuLOOChOOBmeOBsuOBkw0KK+OBn+OBi+OBrizjgZPjgYbjgZgNCivjgYvjgo/jgaAs44GV44Go44GXDQor44Gf44GY44G+LOOBruOBvOOCiw0KK+OCguOBoeOBmuOBjSzjgbLjgo3jgZcNCivjgY3jgoDjgoks44GR44GE44GYDQor44GC44GN44G7LOOBhOOBoeOCjeOBhg0KK+OChOOBvuOCguOBqCzjgojjgYbjgZMNCivjgYvjgo/jgZss44GS44KTDQor44GV44GVLOOBquOBiuOBkw0KK+OBruOBmyzjgZfjgpPjgYTjgaENCivjgbLjgonjgZ8s44Gh44GI44GTDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBguOBjOOCjyzjgajjgZfjgbLjgZMNCivjgabjgonjgoLjgags44GN44KI44Gf44GLDQor44GK44GW44GNLOOBvuOBleOBi+OBmg0KK+OCguOCiizjgb7jgZXjgbLjgZMNCivjgYbjgaQs44GK44GV44KADQor44KP44GL44G+44GkLOOBguOBjeOBsuOBkw0KK+OBhOOBvuOBhCzjgY3jgofjgZMNCivjgY/jgbws44G/44Gu44KLDQor44Gf44GL44GuLOOChuOBjQ0KK+OBsuOBs+OBrizjgYvjgZrjgb7jgZUNCivjgZnjgZrjgY0s44GT44GG44Gf44KN44GGDQor44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBleOBi+OCguOCiizjgYvjgaTjgb8NCivjgZ/jgY3jgZbjgo8s44Go44G/44KC44GoDQor44KI44GX44GL44KPLOOBguOBjQ0KK+OBqOOCiOOBoCzjgobjgZ/jgYsNCivjgYbjgonjgZfjgb4s44Gy44GV44GKDQor44GT44KT44GuLOOBi+OBmuOBquOCig0KK+OBpuOCieOBi+OCjyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44GX44KF44Gy44GhDQor44GN44KA44KJLOOChuOBmeOBkQ0KK+OBi+OBv+OBiizjgbLjgo3jgbXjgb8NCivjgY/jgozjgbDjgoTjgZcs44GV44GL44GIDQor44GL44Gt44GgLOOBjeOCh+OBkw0KK+OBi+OCj+OCguOBqCzjgbLjgajjgZcNCivjgYTjgb7jgoDjgoks44Go44GX44GV44GgDQor44GT44Gv44GO44GW44KPLOOBteOBv+OBkw0KK+OBl+OBruOBluOBjSzjgZ/jgYvjgbLjgo0NCivjgoHjgZDjgo0s44GY44KF44KT44GYDQor44GP44Gr44GV44GgLOOBsuOBp+OBig0KK+OCguOCiizjga/jgovjgY0NCivjgYvjgo/jgY7jgZcs44Gf44GL44Gv44KLDQor44GK44GZ44GMLOOBi+OCiOOBkw0KK+OBmeOBoCzjgabjgaQNCivjgarjgYvjgoDjgoks44Gf44GI44GTDQor44GE44GX44GTLOOCiuOCheOBsuOBoQ0KK+OBmeOBmuOBjSzjgobjgYbjgZgNCivjgY3jgY/jgaEs44KC44Go44Gy44KNDQor44GK44GO44GfLOOBn+OBkeOBquOBjA0KK+OBn+OBi+OChOOBvizjgYLjgY3jgbLjgZMNCivjgarjgYvjgZfjgb4s44Gf44GL44GTDQor44Gk44GY44KC44GoLOOCjOOBhA0KK+OBr+OChOOBvizjgY3jgojjgb8NCivjgYTjgZ/jgYzjgY0s44Gy44KN44GTDQor44KE44G+44KC44GoLOOBk+OBuOOBhA0KK+OBguOBoOOBoSzjgojjgZfjgbLjgo0NCivjgY3jgZ/jgb8s44G/44Gu44KLDQor44Gf44G+44GNLOOBl+OCheOBsuOBoeOCjQ0KK+OBvuOBiOOBoCzjgZXjgajjgZcNCivjgYLjgaDjgaEs44G+44GV44Gv44KLDQor44Gf44G+44GgLOOBjeOCiA0KK+OCguOCiuOBkOOBoSzjgZ/jgYvjgobjgY0NCivjgojjgZfjgarjgYws44GL44GI44GnDQor44G+44GI44GgLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgY3jgojjgYvjgZoNCivjgZ/jgYvjga/jgZcs44GY44KF44KTDQor44GE44GX44GTLOOBquOBiuOChA0KK+OBiuOBmOOBvizjgYvjgZrjgbLjgZMNCivjgZfjgbDjgoTjgb4s44GC44GN44KJDQor44GX44GwLOOBn+OBi+OBqOOCiQ0KK+OBqOOCguOBrizjgY3jgojjgZcNCivjgZnjgb8s44Gy44KN44GXDQor44G/44Gk44Gq44GMLOOBj+OBq+OBsuOCjQ0KK+OBhuOCieOBrizjgb7jgZXjgYLjgY0NCivjgojjgZPjgZrjgYss44Gy44KN44GC44GNDQor44G144GY44GL44KPLOOBsuOCjeOBlw0KK+OBi+OBtuOCieOBjizjgbLjgo3jgbLjgacNCivjgojjgZfjgaAs44G/44Gh44GKDQor44GV44GE44Go44GGLOOChuOBhuOBmA0KK+OChOOBrizjgZfjgofjgZ4NCivjgojjgZPjgZ8s44GQ44KT44GYDQor44Gq44GL44KA44KJLOOChuOBhuOBmA0KK+OBquOBv+OBleOBqCzjga7jgorjgZMNCivjga3jgY7jgZcs44Gf44GI44GTDQor44GN44GuLOOBn+OBvuOBjQ0KK+OBquOBi+OBmOOBvizjgojjgorjgZ/jgYsNCivjgaTjgaTjgb8s44Gm44Gk44KNDQor44GT44GgLOOBi+OBpOOBmA0KK+OBu+OCiizjgojjgZfjgYLjgY0NCivjgZPjga4s44Gf44GR44Gy44GTDQor44KP44GgLOOBkeOCk+OBhOOBoQ0KK+OBvuOBpOOBquOBjCzjgb7jgZXjgbXjgb8NCivjgavjgZfjgoDjgoks44GC44GN44GTDQor44GE44GELOOBvuOBleOBjQ0KK+OChOOBmeOBhCzjgZXjgajjgZcNCivjgZPjgbDjgoTjgZcs44Gv44KL44Gy44KNDQor44KE44G+44GV44GNLOOBvuOBleOChuOBjQ0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgYTjgo/jgZ8s44KI44GX44GC44GNDQor44GX44GS44KC44KKLOOBn+OBi+OBsuOBlQ0KK+OBhOOBvuOCgOOCiSzjgarjgYrjgb8NCivjgaTjgYvjgoLjgags44GC44Gk44GXDQor44GE44Go44GGLOOBvuOBleOBi+OBmg0KK+OBj+OBvCzjgZHjgYTjgZ4NCivjgZXjgarjgYgs44Gu44G844KLDQor44GT44Gg44G+LOOBguOBjeOCiQ0KK+OBhOOBqOOBhizjgZfjgoXjgbLjgaENCivjgYLjgY/jgaQs44KE44GZ44Gy44GTDQor44GC44Gf44KJ44GXLOOBv+OChuOBjQ0KK+OBn+OBkOOCiizjgYvjgZrjgoQNCivjgZjjgofjga4s44KG44G/44GTDQor44GC44GL44G+44GkLOOBleOBoOOBig0KK+OBguOBleOBrizjgajjgZfjgobjgY0NCivjgarjgYvjgYzjgo8s44KE44GZ44Gy44KNDQor44GL44KP44GX44G+LOOBquOBiuOBjQ0KK+OBleOBqOOBhizjgZfjgoXjgbLjgaENCivjgYrjgZDjgoks44G+44GV44Gy44KNDQor44GE44GX44Gw44GXLOOChOOBmeOChuOBjQ0KK+OBvuOBpOOBiuOBiyzjga/jgovjgbLjgZMNCivjgZ/jgY3jgZbjgo8s44Gf44GL44GXDQor44GE44Gf44GP44KJLOOBruOBtuOBn+OBiw0KK+OBu+OCk+OBlCzjgYLjgY3jgogNCivjgarjgYzjgoTjgZks44GX44KT44GZ44GEDQor44GG44Gh44GgLOOBmOOCjQ0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgb7jgZUNCivjgYTjgZfjgZDjgo0s44GC44GN44GKDQor44KC44KKLOOBi+OBpOOBlw0KK+OBn+OBquOBiyzjgojjgYbjgZMNCivjgbLjgZDjgaEs44G/44GI44GTDQor44GN44GoLOOBmOOCheOCk+OBkw0KK+OBn+OBquOBiyzjgZ/jgaTjgoQNCivjgZnjgZrjgY0s44GR44KT44GY44KNDQor44GZ44GM44GELOOBkeOCk+OBmA0KK+OCiOOBreOBluOCjyzjgb7jgZXjgYLjgY0NCivjgYLjgonjgYvjgo8s44GC44GV44GTDQor44GE44Gu44GgLOOBsuOBp+OBig0KK+OBi+OBqOOBhizjgZvjgYTjgZgNCivjgYvjgZLjgoTjgb4s44Gy44KN44KG44GNDQor44G/44KE44KP44GNLOOBn+OBi+OCiOOBlw0KK+OBv+OBoeOChOOBvizjgb7jgZXjgojjgZcNCivjgoLjgoos44GV44Go44GXDQor44KC44KK44GV44KPLOOCiOOBl+OBi+OBmg0KK+OBq+OBl+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44KE44G+44KC44GoLOOBpOOBreOBig0KK+OBvuOBpOOBhuOCiSzjgbLjgo3jgZcNCivjga/jgZvjgYzjgo8s44Go44KI44Gy44GTDQor44GG44Gh44GgLOOBk+OBhuOBhOOBoQ0KK+OChOOBmeOBoCzjgZfjgZLjgagNCivjgYTjgZfjgaAs44GX44KT44GE44GhDQor44KC44KK44GuLOOBi+OBmuOChuOBjQ0KK+OBjeOBn+OChOOBvizjgYvjgZrjgbLjgo0NCivjgZXjgYvjgoLjgags44GR44KT44GYDQor44Gd44GG44G/44KELOOCiOOBl+OBi+OBmg0KK+OBjeOBj+OBoSzjgorjgoXjgZgNCivjgZfjgbbjgYQs44KE44GZ44Gy44GVDQor44Go44G/44GfLOOBvuOBleOBig0KK+OCguOCiizjgb7jgZXjgZcNCivjgoTjgb7jgZDjgaEs44Go44GX44Gy44GTDQor44GN44Gf44KE44G+LOOBn+OBoOOChOOBmQ0KK+OBvuOCk+OCguOBqCzjgajjgZfjgYLjgY0NCivjgZ/jgarjgYss44GX44KT44GE44Gh44KN44GGDQor44KC44KKLOOBi+OBpOOChuOBjQ0KK+OBhOOBn+OBj+OCiSzjgoTjgZnjga7jgooNCivjgYTjgaHjgb/jgoQs44KI44GZ44GRDQor44Gr44GX44KE44G+LOOCiOOBl+OBguOBjQ0KK+OCj+OBn+OBquOBuSzjgaTjgajjgoANCivjga/jgpPjgYzjgYQs44GY44KF44Gr44GhDQor44Gq44GM44GuLOOBk+OBhuOBhOOBoQ0KK+OBl+OBsCzjgajjgYrjgosNCivjgZPjgZjjgb4s44GL44Gk44G+44GVDQor44Gf44Gf44GuLOOCiOOBl+OBsuOCjQ0KK+OBi+OCj+OBsOOBnyzjgojjgZfjga7jgooNCivjgZ/jgZHjgaAs44Gy44KN44KG44GNDQor44GK44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBleOBkyzjgZPjgYbjgZgNCivjgYTjgZfjga/jgoks44GC44Gk44GXDQor44GE44Gh44Gu44GbLOOBk+OBhuOBmA0KK+OBjeOBl+OBoCzjgZjjgoXjgpPjgZgNCivjgb/jgYvjgb8s44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBguOBjeOCiQ0KK+OBleOBleOBjSzjgobjgZ/jgYsNCivjgojjga3jgb/jgaQs44GL44Ga44Gy44KNDQor44Gb44GN44GtLOOBhOOBleOCgA0KK+OBhOOBvuOBq+OBlyzjgb7jgZXjgZcNCivjgYLjgYrjgY0s44GL44Gk44GYDQor44GZ44GO44KE44G+LOOBsuOCjeOBlw0KK+OBquOBi+OCguOCiizjga/jgovjgYoNCivjgZfjgb7jgaAs44GR44GE44GE44Gh44KN44GGDQor44G+44GZ44GgLOOBkeOCk+OBmA0KK+OBpOOBvOOBhCzjgZnjgZnjgoANCivjgZvjgY3jgoQs44GV44Go44GXDQor44GN44GY44G+LOOBvuOBleOBsuOBkw0KK+OCiOOBl+OBmuOBvyzjgZ/jgo3jgYYNCivjgoTjgarjgY7jgaDjgaYs44GE44GP44KNDQor44GX44GS44G+44GkLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgb/jga7jgosNCivjgZ/jgZHjgYbjgaEs44GZ44GZ44KADQor44Gf44Gq44GLLOOCiOOBl+OBvw0KK+OBsuOBjOOBlyzjgZjjgoXjgpMNCivjgZ/jgYvjgZ8s44Gf44GP44GYDQor44Gq44GL44GELOOBguOChuOBvw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgarjgooNCivjgZ/jgass44KI44GX44Gq44KKDQor44GT44Gw44KE44GXLOOBjeOCiOOBn+OBoA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaDjgZcNCivjgYLjgbks44GE44GV44GKDQor44GT44Gw44KE44GXLOOCiOOBl+OBteOBvw0KK+OBiuOBrizjgb7jgZXjgbLjgZMNCivjgZ/jgYvjga/jgZcs44G144GV44GKDQor44GP44KN44GgLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgZnjgZnjgoANCivjgYLjgbks44Gu44KK44GKDQor44GE44Gu44GG44GILOOBsuOBp+OBn+OBiw0KK+OBiOOCk+OBqSzjgZfjgpPjgoQNCivjga7jga7jgZfjgZ8s44Gv44KL44KE44GZDQor44GL44Gq44GELOOBquOBiuOBjQ0KK+OBk+OBn+OBjSzjgZHjgYTjgZMNCivjgZ/jgYvjga/jgZcs44Gf44GR44GXDQor44GX44GS44KE44G+LOOBl+OCheOBmA0KK+OBteOBi+OBoCzjgarjgYrjgbLjgo0NCivjgZfjgYrjgZgs44Gk44GO44GKDQor44KC44KK44KELOOBmOOCheOBq+OBoQ0KK+OBiuOBpOOBiyzjgZ/jgYvjgZcNCivjgYLjgbks44G/44GN44Go44KIDQor44Gy44KJ44GELOOBguOBleOBkw0KK+OCgOOCieOBvuOBpCzjgb7jgZXjgagNCivjgb/jgZrjgZ8s44KI44GX44GeDQor44G744KK44GILOOBhOOBj+OChA0KK+OBsuOBi+OBlSzjgobjgY3jgbLjgo0NCivjgYrjgZfjgZ/jgass44GC44Gk44GXDQor44GT44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBj+OCieOBr+OBlyzjgZfjgpPjgZgNCivjgbLjgonjgbDjgoss44KI44GG44GTDQor44G144GY44GI44GgLOOCiOOBl+OBig0KK+OBqOOBluOCjyzjgZfjgZLjgbXjgb8NCivjgoTjgarjgZss44GP44G/44GTDQor44GP44G844GfLOOBmOOCh+OBmA0KK+OBvuOBv+OChCzjgojjgYbjgZMNCivjgobjga/jgonjgY4s44Go44G/44GKDQor44Gh44KH44Gq44KTLOOBguOBjeOBig0KK+OBv+OCiOOBlyzjgYvjgaTjgobjgY0NCivjga7jgZjjgb4s44G144G/44Gy44KNDQor44KC44KK44GV44GNLOOBvuOBleOChA0KK+OBk+OChOOBvizjgb7jgZXjgZ/jgYsNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GN44Gu44GX44GfLOOBmOOCheOCkw0KK+OBi+OCj+OCgOOCjSzjgb7jgZXjgb8NCivjgoLjgoos44GL44Ga44KG44GNDQor44Gy44KJ44GX44GfLOOBvuOBleOBn+OBiw0KK+OBi+OCj+OBl+OBvizjgb7jgZPjgagNCivjgbXjgovjgYvjgo8s44GL44Gk44G/DQor44GE44KT44Gn44KTLOOBsuOBp+OChuOBjQ0KK+OChOOBvuOBoCzjgZ/jgZHjgYoNCivjgaTjgY/jgaAs44G+44GT44GoDQor44GE44KP44GV44GNLOOBi+OBpOOBvw0KK+OBiuOBvuOBiCzjgZfjgZLjgosNCivjgZnjgZrjgY0s44KI44GX44GKDQor44Gv44KJLOOBvuOBleOBjQ0KK+OBleOBi+OBhCzjgb7jgZXjgb8NCivjgoLjgorjgoQs44KI44GX44G+44KNDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OBl+OBkuOBnyzjgojjgZfjga7jgooNCivjgYTjgZfjgYvjgo8s44G+44GT44GoDQor44Gf44GW44GNLOOBqOOBl+OBguOBjQ0KK+OBmeOBiOOBsuOCjSzjgbLjgo3jgY0NCivjgYvjga3jgaAs44KE44Gh44KIDQor44GZ44GI44Gy44KNLOOBleOBqOOBlw0KK+OBleOBleOBjSzjgZHjgYTjgYTjgaENCivjgbLjgoTjgb4s44GV44Gg44GNDQor44GN44Gp44GQ44GhLOOCiuOChw0KK+OBl+OBvuOBoCzjgYLjgY3jgagNCivjgb/jgoTjgZEs44G+44GV44Gy44GTDQor44KC44KKLOOChOOBmeOChuOBjQ0KK+OBl+OCieOBi+OCjyzjgb/jga7jgosNCivjgo/jgYvjgbDjgoTjgZcs44G+44GV44Gy44GoDQor44KE44G+44GX44GfLOOBiuOBleOCgA0KK+OBguOBvuOBrizjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYTjgaEs44G+44GV44Gy44GTDQor44GX44KT44GY44KHLOOBn+OBpOOCgOOBrQ0KK+OBi+OBleOBr+OCiSzjgYvjgZrjgb7jgZUNCivjgZ/jgarjgYss44Go44GX44Gy44KNDQor44GK44GP44GgLOOBvuOBleOBsuOCjQ0KK+OBi+OBqOOBhizjgbLjgafjga7jgooNCivjgYvjgo/jgZXjgY0s44GV44Gg44KADQor44GL44Go44GGLOOCgOOBreOChA0KK+OBhOOBoeOBmyzjgZPjgYbjgYTjgaENCivjgY3jgZ/jgYzjgo8s44GY44KF44Gr44GhDQor44KE44GZ44GELOOCiuOCheOBleOBjw0KK+OBiOOBoCzjgZ/jgaTjga/jgosNCivjga/jgoTjgZcs44KI44GX44Gy44KNDQor44Gq44GM44GELOOBqOOBl+OChuOBjQ0KK+OBqOOBruOCgOOCiSzjgbLjgajjgb8NCivjgZ/jgarjgYss44GY44KNDQor44GP44KK44Gw44KE44GXLOOBk+OBhuOBmA0KK+OBjeOCgOOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjga/jgZzjgY0s44GL44Ga44GKDQor44GC44KT44GuLOOBmOOCheOCk+OBmA0KK+OBn+OBi+OCiOOBlyzjgbLjgo3jgZ/jgYsNCivjgYLjgpPjgZbjgYQs44GR44GE44GTDQor44Gf44GL44Gv44GXLOOBpuOBpOOChA0KK+OBr+OCieOBrizjgZHjgYTjgZcNCivjgarjgYvjgYzjgo8s44GC44GN44KJDQor44Gr44GX44GL44KPLOOBqOOCguOBkw0KK+OBl+OBtuOChCzjgb7jgZXjgZMNCivjgYvjgajjgYYs44GL44Ga44GKDQor44GC44Gg44GhLOOBvuOBleOBguOBjQ0KK+OBleOBj+OCieOBhCzjgZLjgpPjgbjjgYQNCivjgY/jgZXjga4s44KI44GX44Gu44G2DQor44G/44Gq44G/44Ge44GuLOOBqOOBv+OBi+OBmg0KK+OBpOOBmOOCgOOCiSzjgZ/jgaTjgZgNCivjgoTjgb7jgaAs44GV44Go44GXDQor44GL44Gk44GX44G+LOOBvuOBleOBruOCig0KK+OBk+OChOOBquOBiyzjga7jgbbjgobjgY0NCivjgZ/jgbDjgZ8s44KI44GX44Gu44KKDQor44GC44Gg44GhLOOBi+OBpOOBkw0KK+OBsuOCjeOBrizjga7jgbbjgobjgY0NCivjgaTjgZbjgY0s44GC44Gk44GXDQor44Gf44Gh44Gw44GqLOOCiOOBl+OBleOBqA0KK+OBueOBo+OBl+OChyzjgZfjgofjgZjjgo0NCivjgb7jgaTjgZfjgZ8s44GK44GV44KADQor44Gf44Gr44GQ44GhLOOBpOOBreOBig0KK+OBquOBi+OBqOOCgizjgYvjgaTjgojjgZcNCivjgavjgZfjgoDjgoks44KG44GN44GKDQor44G/44GG44KJLOOBi+OBmuOBsuOCjQ0KK+OBk+OCk+OBqSzjga7jgbbjgbLjgo0NCivjgb7jgaTjgYQs44Go44GX44Gy44KNDQor44G+44Gk44KC44GoLOOChOOBmeOBn+OBiw0KK+OBu+OCiuOBhCzjgajjgZfjgbLjgo0NCivjgb7jgZnjgoLjgags44G/44Gu44KLDQor44Gq44GL44GY44G+LOOBguOBjeOBqOOBlw0KK+OBjeOCgOOCiSzjgYTjgZXjgoANCivjgb/jgo8s44GX44GS44G/DQor44GE44GX44Gw44GXLOOBsuOCjeOChuOBjQ0KK+OBiOOBkOOBoSzjgYLjgY3jgokNCivjgYTjgarjgbXjgY8s44KI44GX44Gy44KNDQor44KP44Gf44Gs44GNLOOBm+OBhOOBhOOBoQ0KK+OBsuOBkOOBoSzjgbLjgo3jgYLjgY0NCivjgYTjgZHjga4s44GX44GS44GC44GNDQor44GG44KB44Gv44KJLOOBi+OBmuOBvw0KK+OBruOBluOCjyzjgaHjgoXjgZ4NCivjgYTjgb7jgYQs44GR44KT44GX44KFDQor44Gf44GL44Gv44GXLOOCgOOBpOOBvw0KK+OBhOOBhOOBoCzjgbLjgo3jgZcNCivjgbXjgZjjgYvjgo8s44G+44GT44GoDQor44Gr44GX44GILOOBiuOBleOCgA0KK+OBk+OBmeOBkizjgb7jgZXjgY0NCivjgYrjgZ8s44Gy44KN44GL44GaDQor44Gu44GYLOOBsuOCjeOBlw0KK+OBk+OBvOOCiizjgaTjgajjgoANCivjgZnjgY7jgoTjgb4s44Gh44GL44GXDQor44GL44KP44GfLOOBkeOCk+OBhOOBoQ0KK+OBleOCgeOBl+OBvizjgbLjgo3jgobjgY0NCivjgZPjgoTjgb4s44KE44GZ44GXDQor44GI44KT44GL44GELOOBruOCiuOBsuOBlQ0KK+OBk+OCguOBoCzjgZjjgoXjgpMNCivjgYrjgYzjgo8s44KE44GZ44Gy44KNDQor44KE44G+44KA44KJLOOCiOOBl+OBsuOBkw0KK+OBiOOBruOCguOBqCzjgY3jgY/jgYoNCivjgZ/jgYvjgaAs44G+44Gq44G2DQor44Gq44GL44G/44GeLOOBn+OBoOOBlw0KK+OBiuOBi+OCgOOCiSzjgb7jgZXjgY0NCivjgYvjgb/jgbDjgoTjgZcs44GL44Gk44GYDQor44G144GY44KC44KKLOOBr+OCi+OBsuOBlQ0KK+OBj+OCjeOBoCzjgYvjgYrjgosNCivjgZXjgajjgYYs44Gf44Gg44Gy44GTDQor44KI44GX44KA44KJLOOBsuOCjeOBlw0KK+OCguOBn+OBhCzjgZjjgoXjgpPjgZMNCivjgoDjgonjgZ8s44GP44Gr44Gy44GTDQor44G/44KPLOOBv+OBjeOBig0KK+OBhOOBr+OCiSzjgojjgZfjgYLjgY0NCivjgYTjgb7jgYQs44Gm44Gk44Gy44GTDQor44Gy44GuLOOBv+OBreOBig0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZ/jgYsNCivjgZvjgags44Gf44GL44GXDQor44GP44G+44GM44GELOOBpOOBqOOCgA0KK+OChOOBvuOBoCzjgZPjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44GL44Ga44G+44GVDQor44KE44GV44GLLOOCjOOBhOOBmA0KK+OBleOBqOOBhizjgbLjgZXjgZ/jgaANCivjgb/jgoTjgZ/jgZEs44KG44G/44GTDQor44G+44Gk44GG44KJLOOBsuOCjeOBlw0KK+OBvuOBpOOBl+OBnyzjgZvjgYTjgZgNCivjgYbjgonjgbks44G/44GN44GKDQor44GX44GM44GNLOOBl+OCk+OBhOOBoQ0KK+OBpuOCieOBoCzjgojjgorjgYgNCivjgYTjgo/jgoLjgags44Gf44GN44GKDQor44GE44Gu44GG44GILOOBn+OBj+OBmA0KK+OCguOBoeOBmuOBjSzjgajjgYrjgosNCivjgojjgZfjgZrjgb8s44Gq44GK44GoDQor44G/44GG44KJLOOBiOOBvw0KK+OBv+OBmuOBrizjgZ/jgYvjgZcNCivjgojjgZfjgYQs44GL44Ga44GKDQor44G144KL44GELOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgojjgZgNCivjgZfjgonjgYTjgZcs44KE44GZ44Gy44KNDQor44GZ44GM44KP44KJLOOCiOOBl+OBig0KK+OBquOBi+OBhCzjgobjgYbjgZMNCivjga7jgbXjgZgs44Gy44KN44GXDQor44GV44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBj+OCjeOBoCzjgbLjgo3jga7jgbYNCivjgYTjgZHjgaAs44Gy44Go44GXDQor44GV44GMLOOBvuOBk+OBqA0KK+OBv+OChOOBi+OCjyzjgYTjgZXjgoANCivjgo/jgonjgZfjgaos44G+44GV44KI44GXDQor44GN44Gf44GM44KPLOOCiOOBl+OBsuOBqA0KK+OBhOOBvuOBhCzjgojjgZfjgYLjgY0NCivjgb/jgZXjgY0s44GY44KNDQor44GE44GX44GgLOOChuOBjeOBig0KK+OCiuOBj+OCiSzjgYjjgYTjgYTjgaENCivjgZfjgofjgZgs44G/44Gk44KLDQor44G144GP44Gq44GMLOOBn+OBi+OChuOBjQ0KK+OBj+OCjeOBjSzjgZjjgoXjgavjgaENCivjgb7jgZ/jgY0s44KI44GX44Gy44KNDQor44Gb44GN44GtLOOBl+OBkuOBguOBjQ0KK+OChOOBvuOBl+OBnyzjgbLjgafjgYoNCivjgZ/jgarjgYss44Gf44Gk44GKDQor44GK44GK44Gv44G+LOOBkeOBhOOBhOOBoQ0KK+OBiuOBpOOBvCzjgojjgZfjga/jgosNCivjgZ/jgYQs44Gy44KN44GL44GaDQor44Gk44KL44KELOOBjeOBhOOBoQ0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgb7jgZnjgb/jgaQs44GR44GE44GXDQor44GL44GZ44KELOOBhOOBj+OBsuOBlQ0KK+OCiOOBl+OBoCzjgZfjgZLjgosNCivjgYvjgo/jgoDjgoks44Gu44G244KG44GNDQor44Gv44KE44GXLOOBteOBv+OBguOBjQ0KK+OBj+OBq+OCguOBqCzjgbLjgo3jga7jgbYNCivjgYLjgonjgYvjgo8s44Gf44GR44GXDQor44Gq44GL44KA44KJLOOBsuOBp+OBguOBjQ0KK+OBhOOBl+OBkOOCjSzjgZPjgYbjgYTjgaHjgo0NCivjga/jgoTjgb8s44KI44GX44GL44GaDQor44G/44Gq44G/44Ge44GuLOOBn+OBi+OBig0KK+OBleOBi+OBnyzjgZfjgofjgZbjgpMNCivjgYvjgo/jgoLjgags44G+44GV44Gv44KLDQor44KA44KJ44GK44GLLOOBv+OBpOOBsuOCjQ0KK+OBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44G+44GV44Gy44KNDQor44Gu44KA44KJLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgbLjgZXjga/jgosNCivjgo/jgZ/jgarjgbks44G+44GV44Gu44KKDQor44GT44Gw44KE44GXLOOCiOOBsuOBoQ0KK+OBrOOCi+OBjSzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44GX44GS44GKDQor44GV44GE44Go44GGLOOBv+OBruOCiw0KK+OBsuOCieOBhCzjgbLjgafjgY0NCivjgY3jgoDjgoks44GP44Gr44Gy44GTDQor44GK44GPLOOBvuOBleOChuOBjQ0KK+OBr+OChOOBleOBiyzjgbLjgarjgZMNCivjgYLjgZXjga4s44G+44GV44Gu44KKDQor44G144GY44GV44GNLOOBm+OBhOOBmA0KK+OBguOBjeOCguOBqCzjgYvjgaTjgbLjgZMNCivjgZfjgb7jgaAs44GN44KT44GYDQor44G/44Ga44GL44G/LOOBv+OBruOCiw0KK+OBquOBi+OBjOOCjyzjgbXjgb/jgYvjgZoNCivjgZXjgajjgYYs44KE44GZ44Gu44KKDQor44GT44Gw44GX44KKLOOCiOOBl+OBig0KK+OBguOCieOBjSzjgb/jgaHjgYoNCivjgZnjgZrjgY0s44G+44GV44GL44GaDQor44Gr44GX44GnLOOBr+OCi+OBqg0KK+OBiuOBoeOBguOBhCzjgbLjgo3jgZcNCivjga7jgarjgYss44G+44GV44GL44GkDQor44KE44GZ44GELOOBsuOBp+OBsuOBkw0KK+OBk+OBr+OBnyzjgojjgbLjgaENCivjgb/jga7jgZfjgb4s44Gy44KN44GXDQor44Gm44KJ44GX44G+LOOCiOOBl+OChuOBjQ0KK+OChOOBj+OCjyzjgZ/jgYvjgZcNCivjgZnjgYzjgo/jgoks44KNDQor44G/44Gk44Gv44GXLOOChOOBmeOBkw0KK+OBruOCgOOCiSzjgZHjgpPjgZgNCivjgaHjgocs44GX44KT44KEDQor44GV44Go44GGLOOCiuOBiw0KK+OBl+OBmuOBr+OCiSzjgb7jgZXjgYgNCivjga/jgoTjgZfjgYvjgo8s44G+44GV44Gv44KLDQor44Gr44KPLOOBqOOBiuOCiw0KK+OBv+OBiOOBrizjgabjgaTjgoQNCivjgZfjgb7jgaAs44GR44KT44GYDQor44Gq44GL44KA44KJLOOCiOOBl+OBig0KK+OBsuOCieOBrizjgarjgYrjgajjgZcNCivjgoTjgb7jgajjgoQs44Gb44GkDQor44Gk44Gu44GgLOOCiOOBl+OBsuOBlQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgZcNCivjgZXjgYvjgY/jgoks44KK44KF44GYDQor44G+44Gk44GgLOOBkeOCk+OBhOOBoQ0KK+OBhOOBvuOCgOOCiSzjgYLjgaTjgYoNCivjgoTjgY7jga/jgZcs44GN44G/44Gy44GTDQor44GK44GO44GuLOOCiOOBl+OBig0KK+OBn+OBquOBiyzjgb/jgaHjgYoNCivjgbLjgYws44Gm44Gk44KNDQor44GV44GTLOOBruOCiuOBkw0KK+OBn+OBluOBjSzjgYLjgZrjgb8NCivjgYTjgYTjgaAs44KK44KH44GTDQor44GE44GE44GgLOOCjOOBhOOBkw0KK+OBvuOBpOOBkOOBvizjgZHjgpPjgZgNCivjgoDjgonjgZ8s44KI44GX44GKDQor44KE44GZ44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBl+OBv+OBmizjgbLjgafjgagNCivjgo/jgY/jgYQs44Go44GX44GKDQor44Gf44GL44Gv44GXLOOCiuOCh+OBsuOBoQ0KK+OBjeOBn+OBhCzjgYvjgZrjgbLjgZMNCivjgYLjgaDjgaEs44KE44GZ44Gu44KKDQor44Gv44Gq44G244GhLOOBruOBtuOBguOBjQ0KK+OBleOBqOOBhizjgY3jgofjgZMNCivjgYLjgonjgYQs44G+44GV44GC44GNDQor44Gf44GR44Gq44GLLOOBm+OBhOOBlw0KK+OBi+OBhCzjgarjgYrjgZMNCivjgYLjgYvjgaAs44Gy44KN44GKDQor44GP44Gr44GZ44GILOOCiOOBl+OBvuOBlQ0KK+OBvuOBiOOBi+OCjyzjgojjgZfjgYvjgZoNCivjgb/jgarjgb8s44Gk44Go44KADQor44Gf44GN44GM44G/LOOBn+OCguOBpA0KK+OBvuOBpOOBhCzjgb7jgZXjga/jgosNCivjgZfjgonjgYQs44KK44KH44GZ44GRDQor44Gf44GR44KI44GXLOOBl+OBkuOBuw0KK+OBn+OBi+OBoCzjgZHjgpMNCivjgZ/jgYvjgY4s44G+44GT44GoDQor44GP44Gp44GGLOOBsuOCjeOBlw0KK+OBl+OBvuOBoCzjgojjgZfjgZ/jgYsNCivjgYvjgajjgYYs44KI44GX44GKDQor44GX44GO44KHLOOBqOOBl+OBsuOBkw0KK+OBsuOCjeOBrizjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgY3jga7jgZfjgZ8s44Gv44GY44KBDQor44GX44G/44GaLOOBj+OBq+OBsuOCjQ0KK+OBl+OCgOOCiSzjgajjgZfjgbLjgZMNCivjgY/jgZXjgYvjgoos44GV44Go44GXDQor44GL44KL44G5LOOBv+OBu+OBkw0KK+OBvuOBpOOCguOBqCzjgZfjgZrjgYoNCivjgZfjgb7jgoDjgoks44Gy44KN44GC44GNDQor44GL44Gk44GL44KPLOOBguOBjeOCiQ0KK+OBhOOBmizjgb/jgaTjgZcNCivjgZXjgY/jgonjgoLjgags44Gy44Gn44KG44GNDQor44KC44KK44GfLOOBvuOBk+OBqA0KK+OBn+OBquOBuSzjgb7jgZXjgb/jgaENCivjga/jgaPjgajjgoos44Gb44GE44Gu44GZ44GRDQor44KK44KF44GULOOBjeOCiOOBn+OBiw0KK+OBiuOBvuOBpOOBluOCjyzjgZ/jgYvjgbLjgZMNCivjgYrjgajjgo8s44GN44KI44Gf44GLDQor44GT44Gg44G+LOOBruOBtuOBkw0KK+OBi+OChOOBl+OBvizjgYvjgZrjgYoNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GC44GNDQor44GP44Gr44GI44GgLOOBneOBiuOBmOOCgw0KK+OBkyzjgojjgZfjgYgNCivjgavjgZfjgoTjgb4s44GX44KH44GeDQor44KP44GgLOOBsuOCjeOBguOBjQ0KK+OBq+OBl+OCguOBqCzjgb/jgbsNCivjgZXjgYTjgajjgYYs44Go44GX44Gv44KLDQor44Go44GX44G+LOOBquOBiuOChuOBjQ0KK+OBiuOBpOOBiyzjgajjgb7jgZUNCivjgYrjga4s44Gf44GL44GKDQor44GZ44Ga44GNLOOBhOOBleOBig0KK+OBleOBj+OCieOBhCzjgYTjgaTjgZgNCivjgYrjgZzjgY0s44GY44KNDQor44GK44GL44GgLOOBj+OBq+OBhOOBoQ0KK+OBiuOBjOOCjyzjgbXjgb/jgagNCivjgYTjgZHjgYzjgb8s44GX44KF44Gr44GhDQor44GT44G+44GkLOOBvuOBleOBr+OCiw0KK+OCiOOBl+OBhCzjgobjgY3jgojjgZcNCivjgbLjgonjga4s44Gb44GE44GE44GhDQor44Gf44GL44GZ44GLLOOChuOBhuOBmA0KK+OBr+OBl+OCguOBqCzjgZfjgZLjgosNCivjgY/jgo/jgYgs44G+44GN44GKDQor44GL44Gt44G+44GkLOOBi+OBmuOBquOCig0KK+OBvuOBpOOBiizjgbLjgajjgb8NCivjgYTjgaks44Gy44KN44KEDQor44GE44GuLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgYvjgaTjga7jgooNCivjgYvjgb/jgoTjgb4s44KI44Gy44GhDQor44GT44GX44KC44GoLOOBu+OBk+OBjw0KK+OBiuOBjOOCj+OCiSzjgb7jgZXjgosNCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44Gq44GM44G+44GkLOOBn+OBi+OBlw0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgabjgonjgYos44G+44GV44G/44GkDQor44G744KK44GRLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgbLjgafjgajjgZcNCivjgYrjgYzjgo8s44Gf44GL44Gu44KKDQor44G/44KE44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBiuOBmeOBvyzjgZfjgofjgYTjgaENCivjgYTjgo/jgbbjgaEs44Gy44KN44GXDQor44G+44Gk44GG44KJLOOChOOBmeOChuOBjQ0KK+OBleOCj+OBoSzjgY3jgY/jgYoNCivjgabjgonjgaAs44GL44Gt44Gy44GnDQor44GE44Gw44KE44GXLOOBkeOBhOOBhOOBoQ0KK+OBhOOCj+OBmyzjgZ/jgYvjgbLjgZMNCivjgYrjgYzjgo8s44GY44KF44Gr44GhDQor44GC44GdLOOBn+OBkeOBlw0KK+OBteOBj+OCguOBqCzjgZPjgYbjgZgNCivjgYTjgacs44GT44GG44GE44GhDQor44GL44KP44GV44GNLOOCiOOBl+OBruOBtg0KK+OBr+OCi+OBqizjgb7jgZPjgagNCivjgZ/jgZjjgb4s44GX44KT44GE44GhDQor44GL44Gq44KE44G+LOOBlOOCjQ0KK+OBn+OBquOBiyzjgojjgZgNCivjgb7jgaTjgZbjgY0s44GL44GK44KLDQor44GE44Gu44GV44GLLOOBn+OBi+OBlw0KK+OBiuOBl+OChOOBvizjgZPjgYbjgYTjgaENCivjgZ/jgZHjgYbjgaEs44Gu44G244GKDQor44GV44GV44GK44GLLOOBsuOCjeOChuOBjQ0KK+OBk+OCguOCiizjga7jgbbjgoTjgZkNCivjgZ/jgZjjgb4s44Gf44Gk44GKDQor44GE44GR44GM44G/LOOBoeOBi+OBig0KK+OChOOBvuOBkOOBoSzjgZvjgaTjgZMNCivjgYvjgo/jgYvjgb8s44KG44Gf44GLDQor44GE44Gb44GNLOOBmOOCheOBq+OBoeOCjQ0KK+OBn+OBkeOBoCzjgZvjgYTjgZgNCivjgZ/jgYvjgoTjgZks44KE44GZ44Go44KCDQor44GL44KB44GgLOOBleOChuOCig0KK+OBteOBmOOBrizjgbXjgb/jgZ/jgYsNCivjgb/jgZXjgY0s44Gm44Gk44GYDQor44Gq44GL44KA44KJLOOBvuOBleOBruOCig0KK+OBiuOBjOOCjyzjgobjgY3jgbXjgb8NCivjgarjgYvjgZbjgo8s44KI44GYDQor44Gb44GNLOOCj+OBn+OCiw0KK+OCiOOBl+OBi+OCjyzjgb7jgZXjgYoNCivjgZ/jgYzjgo8s44GT44GG44GYDQor44G/44Gf44GrLOOCiOOBl+OBsuOBlQ0KK+OBmeOBiOOBnyzjgZ/jgYvjgZcNCivjgYTjgazjgYQs44Go44GX44KG44GNDQor44GK44GV44GgLOOBvuOBleOBguOBjQ0KK+OBteOCi+OBi+OCjyzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GR44KT44GYDQor44GN44Gf44KA44KJLOOBvuOBleOBguOBjQ0KK+OBk+OBvuOBpCzjgZfjgZLjgY0NCivjgYLjgZXjgaAs44GI44GE44GZ44GRDQor44GL44KT44GW44GNLOOBsuOBp+OChuOBjQ0KK+OBhuOBmeOBhCzjgb7jgarjgbYNCivjgbXjgovjgoQs44Gf44GR44Go44GXDQor44KI44GR44KA44KJLOOBvuOBk+OBqA0KK+OCiOOBk+OBiCzjgoTjgZnjga7jgooNCivjgYLjgYvjgYTjgo8s44Go44GX44GC44GNDQor44G144GP44GX44G+LOOBk+OBhuOBmA0KK+OChOOBmOOBvizjgbLjgafjgajjgZcNCivjga/jgoks44KE44GZ44GP44GrDQor44GN44GX44GgLOOBn+OBj+OChA0KK+OBj+OBvCzjgZ/jgYvjgZcNCivjgYvjgZ/jgY7jgoos44Go44GX44Gy44GTDQor44GE44Gh44GELOOBguOBjeOBsuOBqA0KK+OBvuOBpOOBjSzjgZHjgpMNCivjgo/jgZHjgbks44GV44Go44GXDQor44G+44KL44KE44G+LOOBi+OBpOOBig0KK+OBpOOBsOOBjSzjgb7jgZPjgagNCivjgZXjga4s44KK44KH44GZ44GRDQor44G/44KE44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBteOBj+OChOOBvizjgojjgbLjgaHjgo0NCivjgYbjgYjjgoDjgoks44KE44GZ44G+44GVDQor44GP44KP44GL44GpLOOCiOOBl+OBteOBvw0KK+OBj+OBq+OBvuOBpCzjgajjgZfjgbLjgZMNCivjgYvjgZ/jgYrjgYss44G144G/44KI44GXDQor44Go44G/44GfLOOCiOOBl+OBjQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgbLjgZMNCivjgY/jganjgYYs44Gy44KN44KE44GZDQor44GK44G244GhLOOChOOBmeOBlw0KK+OCiOOBl+OBi+OCjyzjgb/jgobjgY0NCivjgYvjgZLjgoTjgb4s44KG44GeDQor44Go44GgLOOBv+OBpOOCiw0KK+OBn+OBi+OBr+OCiSzjgoTjgZnjga7jgooNCivjgb7jgaTjgZfjgZ8s44G144G/44KEDQor44GT44Gg44GE44KJLOOBqOOBl+OBguOBjQ0KK+OBl+OCk+OBi+OBhCzjgZHjgpPjgZgNCivjgabjgonjgaAs44Gy44Gn44GKDQor44GL44KP44GN44GfLOOBl+OBkuOCiw0KK+OBv+OBhuOCiSzjgbLjgo3jgZcNCivjgYLjgbks44G+44GV44Go44GXDQor44Gr44GX44GL44KPLOOBvuOBleOBguOBjQ0KK+OBu+OBneOBoCzjgb7jgZXjgosNCivjgb7jgZnjgaAs44KK44GNDQor44GL44GW44G+LOOBvuOBleOCiw0KK+OBguOCieOBvuOBjSzjga7jgorjgobjgY0NCivjgo/jgZ/jgazjgY0s44GL44Ga44Gu44KKDQor44GV44GL44KC44GoLOOBguOBpOOBsuOBkw0KK+OBguOBvuOBjOOBvyzjgojjgZfjgabjgosNCivjgZPjga4s44Gm44KL44Gy44GTDQor44GK44GP44GgLOOBqOOBiuOCiw0KK+OBiuOBr+OBjyzjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44GR44GE44GE44GhDQor44Gq44GL44KA44KJLOOBleOBqOOBlw0KK+OBhuOBl+OChOOBvizjgZfjgpPjgZgNCivjgoTjgZfjgY0s44Gy44Gn44GXDQor44GN44Gu44GbLOOCguOBqOOBig0KK+OCj+OBi+OChOOBvizjgb7jgZXjgbLjgagNCivjgYTjgb7jgYQs44Gv44GY44KBDQor44G+44GI44GgLOOBleOBquOBiA0KK+OBvuOBpOOBl+OBnyzjgbLjgajjgZcNCivjgbLjgonjgZDjgaEs44KG44GN44Gy44KNDQor44KP44GgLOOBhOOCj+OBig0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYoNCivjgb7jgaTjgYQs44Gf44GR44GXDQor44G+44Gk44KC44GoLOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgY4NCivjgZ/jgY3jgZ8s44Gk44KI44GXDQor44G+44GZ44GgLOOBl+OCkw0KK+OBv+OChOOBhuOBoSzjgYTjgZXjgYoNCivjgZfjgoDjgoks44KI44GX44Gu44KKDQor44G+44Gk44GELOOBv+OBpOOBig0KK+OBr+OCieOBr+OBnyzjgojjgZfjgbXjgb8NCivjgbLjgZXjgZ/jgass44KG44Gy44GhDQor44GL44GM44G/LOOChuOBjeOBig0KK+OCiOOBl+OCgOOCiSzjgYLjgYTjgYTjgaHjgo3jgYYNCivjgYrjgaTjgYss44GX44KF44Gr44GhDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBsuOCieOBrizjgb7jgZXjgobjgY0NCivjgZ/jgZHjgZnjgYgs44GN44KI44GXDQor44Gr44GX44GuLOOBiOOBhOOBmA0KK+OBiuOBpOOBiyzjgbLjgo3jgZcNCivjgYrjgaAs44GC44Gk44GTDQor44GX44G/44GaLOOBneOBsuOBoQ0KK+OBr+OBvuOCguOBqCzjgZfjgpPjgYTjgaENCivjgb/jgoTjgb7jgYgs44G/44GN44GKDQor44Gq44GM44GX44G+LOOBmOOCheOBq+OBoeOCjQ0KK+OBv+OBpOOCgSzjgojjgZfjgagNCivjgYvjgZTjgZ/jgass44Go44KC44GTDQor44KI44GT44KE44G+LOOBvuOChuOBvw0KK+OBleOBi+OBnyzjgZXjgYvjgYgNCivjgYrjgYTjgY/jgbws44Gf44GN44GTDQor44GP44KJ44KC44GhLOOBqOOBv+OBn+OCjeOBhg0KK+OBguOCk+OBluOBhCzjgYLjgaTjgZcNCivjgbXjgY/jgZfjgb4s44G+44GV44Gk44GQDQor44Gq44GL44KA44KJLOOChuOBhuOBmA0KK+OBhOOBqOOBhCzjgZHjgYTjgZQNCivjgbvjgZfjga4s44GX44KT44GE44GhDQor44GT44GE44GnLOOBl+OChQ0KK+OBiuOBluOBjSzjgabjgaTjgoQNCivjgZvjgZjjgoIs44KI44GX44KG44GNDQor44GZ44Gp44GGLOOCgeOBkOOBvw0KK+OBi+OBmOOCj+OCiSzjgZfjgpPjgZgNCivjgZnjgZrjgY0s44KG44Gf44GLDQor44G744GX44GuLOOBn+OBi+OCiOOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgarjgooNCivjgoLjgorjgZ8s44GI44GE44GYDQor44KE44G+44GW44GNLOOBk+OBhuOBmA0KK+OBiuOBj+OBjOOCjyzjgojjgZfjgYvjgZoNCivjgarjgYzjga/jgb4s44Gf44GL44G144G/DQor44KI44GX44KA44KJLOOBkeOCk+OBmA0KK+OBvuOBpOOBoCzjgYLjgY3jgbLjgacNCivjgbvjgYvjgZ7jga4s44Gy44KN44KEDQor44GC44G5LOOBvuOBleOChuOBjQ0KK+OBquOBjOOBhCzjgorjgYgNCivjgajjgYzjgZcs44Gy44Go44G/DQor44KE44GW44GNLOOChuOCiuOBkw0KK+OChOOBvuOBhuOBoSzjgb/jgaHjgZMNCivjgb/jgZXjgY0s44Gy44KN44Gy44GTDQor44KI44GX44GgLOOBmOOCheOCkw0KK+OBquOBi+OCguOBqCzjgb7jgZXjgb/jgaENCivjgZfjga7jga/jgoks44G+44GV44G/44GkDQor44Gq44GL44Gr44GXLOOBv+OBqeOCig0KK+OChOOBmOOBvizjgYvjgaTjgbLjgo0NCivjgajjgojjgbXjgY8s44Gv44KL44GTDQor44Gf44GL44GX44G+LOOCiOOBl+OBguOBjQ0KK+OBteOBl+OBq+OBlyzjgYLjgY3jgYvjgZoNCivjgoDjgYvjgYQs44Go44GX44Gy44GTDQor44Gr44GX44KA44KJLOOBvuOBleOBsuOBkw0KK+OBi+OCj+OBsOOBnyzjgbLjgo3jgobjgY0NCivjgoDjgYvjgYjjgaAs44GC44GN44G/44GkDQor44GX44Gb44GNLOOBn+OBi+OBqOOBlw0KK+OBi+OBn+OBiuOBiyzjgYLjgaTjgbLjgZUNCivjgarjgYTjgajjgYYs44Go44GX44Gk44GQDQor44G/44GoLOOBk+OBhuOBmA0KK+OBiuOBq+OBlyzjgajjgZfjgbLjgagNCivjgojjgZPjgoTjgb4s44Gm44GE44GeDQor44Gq44GL44KA44KJLOOBsuOBp+OBjQ0KK+OBhOOBluOCjyzjgarjgYrjgY0NCivjgZ/jgavjgYzjgo8s44GX44KT44GYDQor44GZ44GO44GfLOOBl+OBkuOCiw0KK+OBiuOBl+OBnyzjgaTjga3jgYvjgZoNCivjgZfjgb7jgaAs44GC44GN44KJDQor44KE44G+44KA44KJLOOBjeOCiOOBlw0KK+OBteOBj+OBiuOBiyzjgobjgYbjgZgNCivjgoTjgarjgoos44GL44Gk44GYDQor44GZ44Ga44GNLOOBjeOBv+OBiA0KK+OBleOBi+OBhCzjgabjgaTjgoQNCivjgoTjgb7jgaAs44Gy44KN44KG44GXDQor44KE44G+44GT44GXLOOBleOBqOOBlw0KK+OBruOCguOBqCzjgZXjgajjgosNCivjgZ/jgZHjgZfjgZ8s44GE44Gj44GX44KTDQor44G/44Gu44GgLOOCiOOBl+OBsuOBpw0KK+OBguOBleOBhCzjgbLjgo3jgY0NCivjgoDjga3jgoTjgZks44KE44GZ44GoDQor44GL44KP44Gr44GXLOOBqOOBl+OCjQ0KK+OBleOBi+OBkOOBoSzjgZ/jgYvjgZcNCivjgoTjgb7jgZbjgY0s44Gf44Gk44GC44GNDQor44GC44GV44GK44GLLOOBsuOBleOBruOCig0KK+OBjeOBruOBl+OBnyzjgajjgb/jgYgNCivjgb/jgb4s44KG44GLDQor44G144GP44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OBi+OBmOOChOOBvizjgajjgoLjgZMNCivjgoTjgb7jgZbjgY0s44GT44GG44GE44GhDQor44GV44Go44GGLOOBvuOBleOBlw0KK+OBi+OCj+OBuSzjgbLjgo3jgYLjgY0NCivjgb7jgovjgoTjgb4s44GX44KT44GYDQor44GK44GM44KJ44GtLOOBleOBqOOCiw0KK+OBqeOBhCzjgobjgY3jgbLjgo0NCivjgZ/jgarjgYss44GX44GS44KLDQor44GK44GO44GX44G+LOOBqOOBl+OChuOBjQ0KK+OBhOOBruOBhuOBiCzjgoLjgajjgY0NCivjgbXjgovjgoQs44GX44GS44KG44GNDQor44G144GP44GELOOBl+OBuw0KK+OBvuOBmeOBoCzjgbLjgafjgobjgY0NCivjgbvjgpPjgaAs44G+44GT44GoDQor44Gq44GL44Gr44GXLOOChOOBmeOBsuOBlQ0KK+OBv+OChOOBvuOBiCzjgajjgZfjgbLjgZMNCivjgYrjgYvjga4s44Gy44Gn44Gu44G2DQor44Gw44GwLOOBv+OBjeOBng0KK+OBoOOBkeOChOOBvizjgY3jgojjgb8NCivjgoTjgb7jgZDjgaEs44GX44GS44GKDQor44Gv44KE44GXLOOCiOOBl+OBkw0KK+OBqOOBv+OBmuOBiyzjgZjjgoXjgavjgaENCivjgarjgYvjgavjgZcs44Go44GX44KEDQor44GC44G5LOOBv+OBpOOBsuOBkw0KK+OBguOBiuOChOOBjizjga7jgbbjgojjgZcNCivjgabjgonjgo/jgY0s44Gu44G244GTDQor44GL44Gf44GO44KKLOOChuOBng0KK+OBquOBi+OBjOOCjyzjgb/jgaTjgYoNCivjgZPjgbDjgoTjgZcs44GK44GV44KADQor44GG44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBteOBmOOCj+OCiSzjgbLjgo3jga7jgooNCivjga/jgoTjgZXjgYss44Gk44KI44GXDQor44GN44KA44KJLOOBn+OBi+OBsuOCjQ0KK+OBlOOBqCzjgobjgb/jgZMNCivjgZfjgoDjgoks44Gq44GK44Gf44GLDQor44Gb44GNLOOBquOBiuOBsuOBkw0KK+OBguOBhOOBluOCjyzjgbLjgafjgYoNCivjga7jgoDjgoks44KI44Gy44Gh44KNDQor44GL44KT44GgLOOBleOBj+OBkw0KK+OBhuOCieOBhCzjgoTjgZnjgYoNCivjgoLjgajjgoTjgb4s44Go44GX44KNDQor44GL44G/44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBsuOCieOBhCzjga/jgovjgbLjgZUNCivjgYLjgonjgYQs44Gv44GY44KBDQor44GV44GE44Go44GGLOOBsuOCjeOBkw0KK+OBvuOBjeOBr+OCiSzjgY3jgojjgZMNCivjgYrjgo/jgY8s44Gu44G844KLDQor44KC44Gh44Ga44GNLOOBvuOBleOBig0KK+OBr+OCk+OBjOOBhCzjgYvjgZrjgbLjgo0NCivjgYTjga7jgYbjgYgs44Gy44KN44G/DQor44Gq44GM44GE44GXLOOBguOBjeOBsuOCjQ0KK+OBq+OBl+OCguOBqCzjgZ/jgaTjgb8NCivjgaTjgaHjgoQs44Gy44KN44GXDQor44G+44Gk44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBu+OCk+OBmOOChyzjgZHjgYTjgZ4NCivjgYTjgo/jgYQs44Go44GX44GL44GaDQor44GP44G8LOOBguOBjeOBig0KK+OBr+OBk+OBhCzjgZPjgZnjgZENCivjgo/jgZ/jgarjgbks44GX44KF44GYDQor44GZ44GO44GfLOOBvuOBmeOBvw0KK+OBquOBi+OCgOOCiSzjgojjgZfjga/jgosNCivjgYvjgonjgZXjgY0s44Gm44Gk44GKDQor44Gu44KK44G+44GkLOOBvuOBleOChuOBjQ0KK+OBj+OBmeOCguOBqCzjgajjgoLjgarjgooNCivjgavjgZfjgoDjgoks44KI44Gy44GhDQor44GT44GZ44GSLOOBvuOBleOBlw0KK+OBteOBj+OBv+OBpCzjgYrjgZXjgoANCivjgoTjgb7jgZDjgaEs44G+44GV44Gy44KNDQor44GE44GX44GQ44KNLOOCiOOBl+OBsuOCjQ0KK+OBqOOBj+OBoCzjgYvjgZrjgbLjgagNCivjgYLjgorjgajjgb8s44GL44Gk44G/DQor44Gy44KE44G+LOOBguOBjeOCiQ0KK+OBsuOCjeOBmyzjgZfjgofjgbLjgaENCivjgavjgZfjgaAs44Gf44GL44GXDQor44Gv44Gj44Go44KKLOOBl+OCh+OBlA0KK+OBsuOCieOBsOOChOOBlyzjgZ/jgaTjgoQNCivjga/jgonjgZfjgb4s44G+44GV44GKDQor44Gv44KJLOOBvuOBleOBig0KK+OBr+OBvuOBrizjga7jgorjgYoNCivjga/jgb7jgaAs44Go44GX44G/44GkDQor44Gv44GX44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaENCivjgbLjgZDjgaEs44G/44Gk44Gy44GTDQor44Gy44KJ44GuLOOBn+OBi+OCiOOBlw0KK+OBu+OCk+OBvizjgZXjgajjgZcNCivjga/jgovjgb7jgZcs44G+44GV44GqDQor44Gv44GX44KC44GoLOOChOOBmeOBvw0KK+OBsuOBoCzjgZXjgbbjgo0NCivjgbLjgonjgZnjgYss44GL44Ga44G/DQor44Gv44GO44KP44KJLOOBquOBiuOChA0KK+OBr+OBvuOBoCzjgZjjgaTjgo0NCivjga/jgZfjgoLjgags44GX44KT44GE44GhDQor44G744KT44G+LOOBvuOBleOBqOOBlw0KK+OBu+OBi+OCiizjgajjgYrjgosNCivjga/jgonjgaAs44KI44GX44G/DQor44Gv44KE44GXLOOBkeOCk+OBhOOBoQ0KK+OBu+OCiuOBuSzjgYjjgYTjgZgNCivjga/jgZfjgoLjgags44Gf44G/44GKDQor44Gv44Gb44GM44KPLOOBi+OBmuOChuOBjQ0KK+OBsuOCjeOBuSzjgb7jgZXjgajjgZcNCivjga/jgZfjgoLjgags44GL44Gk44Gy44GTDQor44Gy44KJ44GuLOOBsuOBleOBmA0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgb8NCivjgbLjgZjjgYvjgZ8s44KG44Gf44GLDQor44GK44Gs44G+LOOBvuOBleOBr+OCiw0KK+OBr+OBtuOBpCzjgojjgZfjgb7jgZUNCivjgbLjgaDjgYss44KE44GZ44GKDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBr+OBvuOBrizjgaHjgofjgZgNCivjgbLjgZfjgazjgb4s44GT44GG44GE44GhDQor44Gv44KJLOOBjeOBv+OBiA0KK+OBr+OBquOBjSzjgb/jgaHjga/jgosNCivjga/jgoks44G/44KI44GXDQor44Gv44GMLOOChOOBmeOBsuOCjQ0KK+OBr+OBquOBoCzjgb/jgaHjgZMNCivjgbLjgonjgoTjgarjgY4s44GR44KT44GYDQor44G744KK44GL44KPLOOBi+OBmuOBig0KK+OBu+OCiuOBi+OCjyzjgb7jgZXjgYoNCivjga/jgZfjgoLjgags44Gf44Gg44GL44GaDQor44Gv44GfLOOBv+OBjeOBig0KK+OBsuOCieOBhCzjgYvjgZrjgb8NCivjga/jgonjgZDjgaEs44G+44GV44KG44GNDQor44Gy44KJ44GKLOOBkeOCkw0KK+OBr+OBl+OBmuOCgSzjgaTjgY7jgYgNCivjgaTjgZgs44GE44GV44GKDQor44GV44GP44KJ44GW44KPLOOBsuOCjeOChuOBjQ0KK+OBguOBuSzjgYvjgZrjgbLjgo0NCivjgYLjgbks44GN44KT44KEDQor44GC44G5LOOBquOBiuOBjQ0KK+OBguOBuSzjga7jgbbjgobjgY0NCivjgYLjgbks44KI44GX44G/DQor44GC44G5LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBguOBi+OBjizjgZHjgpPjgZgNCivjgYrjgYvjgoLjgags44Gf44GR44GKDQor44GI44KT44GpLOOBvuOBleOBruOCig0KK+OBguOBi+OBhOOBlyzjga7jgbbjgZ/jgYsNCivjgavjgZfjgaos44G/44Gk44Gu44KKDQor44GC44GN44KC44GoLOOBkeOCkw0KK+OBguOBjeOBmuOBjSzjgYLjgY3jgZMNCivjgbLjgonjgbDjgoTjgZcs44Go44GX44Gy44GTDQor44GC44KB44G/44KELOOBmOOCheOCkw0KK+OBguOBv+OBrizjgoTjgZnjgb7jgZUNCivjgYLjgarjgb8s44KG44Gy44GhDQor44GC44Gq44GW44KPLOOBi+OCk+OBnw0KK+OBguOCk+OBqeOBhizjgb7jgarjgbYNCivjgYLjgpPjganjgYYs44Gy44Gn44Go44GXDQor44GC44GK44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBguOBiuOChOOBvizjgb7jgZXjgbLjgo0NCivjgYLjgYrjgoTjgb4s44Gy44KN44GfDQor44GC44KJ44GELOOBk+OBhuOBmA0KK+OBguOCieOBhCzjgYrjgZXjgoANCivjgYLjgonjgYQs44Gf44GL44GKDQor44GC44KJ44GELOOChOOBmeOBsuOBqA0KK+OBguOCieOBhCzjgZfjgZrjgYoNCivjgYLjgonjgY0s44G/44Gh44GTDQor44GZ44GM44KP44KJLOOBpOOBreOBr+OCiw0KK+OBguOBleOBsizjgb7jgZPjgagNCivjgYLjgZXjgY/jgoks44Go44GX44GKDQor44GC44GV44G/LOOBvuOBleOBqOOBlw0KK+OBguOBleOCgOOCiSzjgZfjgZLjgb7jgZUNCivjgoTjgb7jgZfjgaos44GC44GN44KJDQor44GC44GV44KKLOOBguOBjeOBsuOCjQ0KK+OBguOBleOBmizjgb7jgZXjgYvjgZoNCivjgYLjgaTjgb8s44GL44GK44KLDQor44Gw44KTLOOChuOBhuOBnuOBhg0KK+OBueOBo+OBl+OChyzjgbLjgo3jgY0NCivjgaHjgbAs44G+44GV44GNDQor44Gh44GL44GN44KILOOBk+OBhuOBmA0KK+OBoeOCgOOCiSzjgZfjgpPjgYTjgaENCivjganjgbDjgZcs44GT44GG44GE44GhDQor44GI44Gw44GXLOOBvuOBleOBlw0KK+OBiOOBs+OBr+OCiSzjgb7jgZPjgagNCivjgYjjgYzjgb8s44Gf44G+44GKDQor44GI44GQ44GhLOOBvuOBleOChOOBmQ0KK+OBiOOBkOOBoSzjgb/jgobjgY0NCivjgYjjgZjjgoos44Go44KC44G/DQor44GI44KT44GpLOOBl+OBkuOCiw0KK+OBiOOCk+OBqSzjgZ/jgYvjgZcNCivjgYjjga7jgoLjgags44G144G/44Go44GXDQor44G144Gh44GuLOOBi+OBpOOBvw0KK+OBteOBmOOBhCzjgYvjgZrjgYoNCivjgbXjgZjjgYQs44G+44GV44GTDQor44GE44GX44GELOOBqOOCguOBkw0KK+OCgOOCieOChOOBvizjgojjgZfjgobjgY0NCivjgbXjgZjjgYvjgZ8s44Gy44KN44KE44GZDQor44G144GY44GL44KPLOOBkeOBhOOBhOOBoQ0KK+OBteOBmOOBvuOCiyzjgYLjgZMNCivjgbXjgZjjgoLjgags44Gq44GK44Gy44GVDQor44G144GY44KC44GoLOOBn+OBv+OBiA0KK+OBteOBmOOCguOBqCzjgZ/jgZHjgYoNCivjgbXjgZjjga4s44GX44KH44G444GEDQor44G144GY44GKLOOCiOOBl+OBteOBvw0KK+OBteOBmOOBleOBiyzjgobjgY3jgYoNCivjgbXjgZjjgZXjgo8s44KG44GN44Gf44GLDQor44G144GY44GV44KPLOOBleOBqOOBlw0KK+OBteOBmOOBnyzjgZnjgZDjgosNCivjgbXjgZjjgZ8s44G+44KG44G/DQor44G144GY44KP44KJLOOBn+OBpOOBig0KK+OBteOBmOOCj+OCiSzjgojjgZfjgaTjgZANCivjgbXjgZjjgo/jgoks44Go44GK44KLDQor44G144GL44GgLOOBiuOBleOCgA0KK+OBteOBi+OBjOOCjyzjgabjgaQNCivjgbXjgYvjga4s44GY44KF44KTDQor44G144GL44KPLOOBqOOBl+OBsuOBlQ0KK+OBteOBi+OChCzjgZ/jgaTjgoQNCivjgbXjgYvjgZbjgo8s44GL44Ga44Go44KCDQor44G144GP44GgLOOBsuOBleOBqA0KK+OBteOBj+OBhCzjgY/jgavjgbLjgo0NCivjgbXjgY/jgoLjgags44Gf44Gg44KI44GXDQor44G144GP44KC44GoLOOBqOOBl+OBi+OBmg0KK+OBteOBj+OCguOBqCzjgoTjgZnjgajjgoINCivjgbXjgY/jgoLjgags44Go44GX44GC44GNDQor44G144GP44GX44G+LOOBleOBqOOBlw0KK+OBteOBj+OBqOOBvyzjga7jgorjgYoNCivjgbXjgarjgY0s44Gf44GL44Gy44KNDQor44G144KL44GV44KPLOOBvuOBleOChuOBjQ0KK+OBguOBs+OBkyzjgb7jgZXjgobjgY0NCivjgbXjgZss44Go44GK44KLDQor44G144Gb44GM44KPLOOBvuOBleOChuOBjQ0KK+OBteOBl+OBvyzjgZfjgpPjgZfjgocNCivjgY7jgb4s44G144G/44Gy44KNDQor44GU44G/LOOBguOBpOOBsuOCjQ0KK+OBlOOBqCzjgZHjgYQNCivjgZTjgags44Gb44GE44GYDQor44GU44GoLOOBqOOBl+OBi+OBmg0KK+OBkOOCk+OBmCzjgbLjgajjgZcNCivjga/jgY7jgo/jgoks44GT44GG44GYDQor44Gv44GO44KP44KJLOOBsuOCjeOBlw0KK+OBr+OBhOOBrizjgbLjgo3jgZ/jgYsNCivjga/jgYvjgb7jgaAs44Gy44KN44GC44GNDQor44Gv44G+44GgLOOBvuOBleOBsuOBkw0KK+OBr+OBvuOBoCzjgZnjgZnjgoANCivjga/jgb7jgZDjgaEs44Gy44KN44KG44GNDQor44Gv44KJLOOCiuOCheOBleOBjw0KK+OBr+OCiSzjgZfjgpPjgZgNCivjga/jgoks44Gf44KN44GGDQor44Gv44KJLOOBvuOBleOChuOBjQ0KK+OBr+OCieOBoCzjga7jgorjgYoNCivjga/jgonjgaAs44KI44GX44Gq44GKDQor44Gv44KJ44GgLOOBquOBiuOBsuOBlQ0KK+OBr+OCieOBkyzjgYvjgZrjgojjgZcNCivjga/jgovjgaos44G+44GT44GoDQor44Gv44Gb44GM44KPLOOBruOCiuOBkw0KK+OBiuOBl+OBvizjgajjgoLjgYLjgY0NCivjga/jgZfjgoLjgags44Gy44GV44Gu44KKDQor44Gv44Gf44GuLOOBv+OCiA0KK+OBr+OBn+OBluOCjyzjgojjgZfjgZMNCivjga/jgags44GE44Gh44KN44GGDQor44Gv44Gk44G/LOOBsuOBleOCiOOBlw0KK+OBr+OBo+OBqOOCiizjga7jgorjgobjgY0NCivjga/jgoTjgYvjgo8s44KG44GNDQor44Gv44KE44GL44KPLOOChuOBjeOBig0KK+OBr+OChOOBi+OCjyzjgZHjgpPjgZgNCivjga/jgoTjga4s44GX44KT44GE44GhDQor44Gv44KE44GbLOOBjeOCiOOBn+OBiw0KK+OBr+OChOOBlyzjgY/jgavjgbLjgZMNCivjga/jgoTjgZcs44G+44GV44Gq44KKDQor44Gv44KE44GXLOOBvuOBmeOBvw0KK+OBr+OChOOBlyzjgb/jgarjgZMNCivjga/jgoTjgZcs44Gu44KK44GTDQor44GE44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBr+OChOOBpCzjgZ/jgYvjgYLjgY0NCivjgbLjgYzjgY0s44Gf44GP44KEDQor44Gy44GM44GXLOOBguOBjeOCiQ0KK+OBsuOBrizjgZ/jgYvjgZcNCivjgbLjgonjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44Gy44KJ44GuLOOBi+OBmuOBv+OBoQ0KK+OBsuOCieOBrizjgb7jgZXjgZcNCivjgbLjgonjgYrjgYss44GC44Ga44GVDQor44Gv44KJ44GV44GNLOOBqOOCguOChuOBjQ0KK+OBsuOCieOBpizjgajjgZfjgbLjgo0NCivjgbLjgonjgoTjgb4s44GC44Gk44KNDQor44Gy44KN44GILOOBqOOBl+OBsuOBkw0KK+OBsuOCjeOBi+OCjyzjgYLjgaTjgZcNCivjgbLjgo3jgZss44GX44KT44GUDQor44Gy44KN44GXLOOBn+OBi+OBr+OCiw0KK+OBsuOBleOCgOOBrSzjgYvjgYrjgooNCivjgbvjgpPjgaAs44KI44GX44Gy44KNDQor44G744KK44GL44KPLOOBkeOBhOOBmA0KK+OBu+OCiuOBk+OBlyzjgZvjgYTjgZ8NCivjgbvjgorjgZPjgZcs44G+44GV44KI44GXDQor44G744GXLOOBsuOCjeOBlw0KK+OBu+OBl+OBkyzjgbLjgafjgYLjgY0NCivjgbLjgonjgZXjgo8s44GZ44G/44GTDQor44G744Gd44GELOOBkeOCk+OBmA0KK+OBsuOCh+OBqSzjgarjgYrjgagNCivjgbLjgofjgaks44GL44Ga44Gy44KNDQor44GE44G5LOOBkeOBhOOBhOOBoQ0KK+OBhOOBoeOBi+OCjyzjgb7jgobjgb8NCivjgYTjgaHjgYvjgo8s44Gf44Gk44KEDQor44GE44Gh44GL44KPLOOBsuOBp+OBig0KK+OBhOOBoeOBruOBv+OChCzjgajjgYrjgosNCivjgYTjgacs44KI44GX44GL44GaDQor44GE44GnLOOBl+OCheOBsuOBoQ0KK+OBhOOBjOOCieOBlyzjgbLjgafjgZ/jgYsNCivjgYTjgYzjgo8s44Gu44G244GTDQor44GE44GQ44GhLOOBkeOBhOOBkw0KK+OBhOOBhOOBoCzjgZPjgYbjgYTjgaENCivjgYTjgYTjgaAs44Gu44KK44GC44GNDQor44GE44GE44GY44G+LOOBl+OCk+OBhOOBoQ0KK+OBhOOBhOOBpOOBiyzjgbLjgo3jgobjgY0NCivjgYTjgYTjgZrjgYss44KG44GN44GKDQor44GE44GE44Ga44GLLOOBvuOBleOBsuOCjQ0KK+OBhOOBi+OCieOBlyzjgZXjgaDjgobjgY0NCivjgYTjgZHjgaAs44GX44KT44GE44GhDQor44GE44GR44GgLOOBn+OBi+OBlw0KK+OBhOOBkeOBoCzjgobjgZnjgZENCivjgYTjgZHjgaAs44GX44KT44GE44GhDQor44GE44GR44Gq44GMLOOBvuOBleOBsuOCjQ0KK+OBv+OBpOOCguOBqCzjgb7jgZXjgosNCivjgYTjgZHjgoTjgb4s44KG44G/DQor44GE44GR44GWLOOBv+OBpOOCiw0KK+OBhOOBkeOBluOBjSzjgb/jgaTjgobjgY0NCivjgYTjgY/jgZ8s44KG44KKDQor44GE44G+44GELOOChOOBmeOChuOBjQ0KK+OBhOOBvuOBhOOBmuOBvyzjgY3jgojjgZcNCivjgYTjgb7jgoDjgoks44GX44KT44KEDQor44GE44G+44KA44KJLOOBl+OCheOBsuOBoQ0KK+OBhOOBvuOBq+OBlyzjgbLjgo3jgZcNCivjgYTjgarjgYzjgY0s44GT44GG44GE44GhDQor44GE44Gq44GM44GNLOOBruOBtuOBig0KK+OBhOOBquOBjOOCjyzjgYvjgZrjga7jgooNCivjgYTjgarjgbss44GC44KK44GVDQor44GE44Gq44G/LOOBqOOCguOBjQ0KK+OBhOOBquOBpOOBkCzjgarjgYrjgY0NCivjgYTjgarjgojjgZcs44G+44GV44G144G/DQor44GE44GuLOOBmOOCheOCkw0KK+OBhOOBruOBiuOBiyzjgbLjgafjgagNCivjgYTjga7jgYbjgYgs44Gy44KN44GKDQor44GE44Gu44GG44GILOOBsuOCjeOBn+OBiw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgobjgY0NCivjgYTjga7jgYbjgYgs44Gy44Go44GXDQor44GE44Gu44GG44GILOOBiuOBleOCgA0KK+OBhOOBruOBhuOBiCzjgabjgovjgobjgY0NCivjgYTjga7jgYbjgYgs44KI44GX44Gu44KKDQor44GE44KK44GV44KPLOOBruOCiuOBsuOCjQ0KK+OBhOOBmyzjgbLjgo3jgobjgY0NCivjgYTjgZvjgY0s44GI44GE44KKDQor44GE44GX44GgLOOBqOOCguOBsuOCjQ0KK+OBhOOBl+OBoCzjgYvjgYrjgooNCivjgYrjgYvjgaAs44GL44Gk44KG44GNDQor44GE44GX44GELOOBn+OBpOOChA0KK+OChOOBvuOBoCzjgb7jgZXjgosNCivjgZnjgY7jga/jgoks44Gy44KN44G/44GhDQor44GE44GX44GL44KPLOOBv+OBleOBig0KK+OBhOOBl+OBi+OCjyzjgZ/jgaTjgYoNCivjgYTjgZfjgYvjgo8s44GL44Ga44GoDQor44GE44GX44G+44KLLOOBl+OCk+OChA0KK+OBhOOBl+OCguOBqCzjgZ/jgYvjgobjgY0NCivjgYTjgZfjgoLjgags44Gf44GR44GXDQor44GE44GX44KC44GoLOOBsuOBp+OBi+OBmg0KK+OBhOOBl+OBrizjgZ/jgYvjgZcNCivjgYTjgZfjgaTjgYss44Gf44GL44GC44GNDQor44GE44GX44KP44GfLOOChuOBsuOBoQ0KK+OBhOOBl+OCj+OBnyzjgY3jgY/jgYoNCivjgbLjgonjgbDjgoTjgZcs44GC44GN44Gy44GTDQor44GE44GX44GW44GNLOOChuOBjeOBig0KK+OBhOOBl+OBmuOBiyzjgYvjgaTjgoQNCivjgYTjgZ3jgaAs44KE44GZ44Gu44KKDQor44Go44GK44GLLOOBpOOCiOOBlw0KK+OBj+OCiuOBr+OCiSzjga/jgovjgb8NCivjgYTjgajjgYYs44GI44GE44GYDQor44GE44Go44GGLOOBsuOCjeOBtuOBvw0KK+OBhOOBqOOBhizjgbLjgo3jgZ/jgYsNCivjgYTjgajjgYYs44GL44Gk44KJDQor44GE44Go44GGLOOBvuOBleOBkw0KK+OBhOOBoeOChOOBquOBjizjgb7jgZXjgb8NCivjgYTjgajjgYYs44Gu44KK44GTDQor44Gq44GM44GfLOOBn+OBpOOBig0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYvjgb/jgYvjgo8s44GR44KT44GYDQor44GE44KP44GELOOBi+OBj+OBhOOBoeOCjeOBhg0KK+OBhOOCj+OBi+OCjyzjgZXjgajjgZcNCivjgYTjgo/jgb8s44Gf44GP44KEDQor44GE44KP44G/LOOChuOBhuOBmA0KK+OBhOOCj+OCguOBqCzjgYjjgYTjgZgNCivjgYTjgo/jgarjgYws44KC44Go44Gu44KKDQor44GE44KP44GV44GNLOOBqOOBiuOCiw0KK+OBhOOCj+OBleOBjSzjgZ/jgZHjgZcNCivjgYTjgo/jgZss44Go44GX44KG44GNDQor44GE44KP44GX44GfLOOBkeOBhOOBmA0KK+OBhOOCj+OBnyzjgZHjgpPjgYTjgaENCivjgYTjgo/jgZ8s44KI44GX44GC44GNDQor44GE44KP44Gf44GmLOOBiOOBpOOBjQ0KK+OBhOOBmuOBvyzjgojjgYbjgZgNCivjgZjjgpPjga4s44GV44Go44GXDQor44GL44GM44KPLOOBl+OBkuOBsuOBqA0KK+OBi+OBhOOBrOOBvizjgaTjga3jgbLjgo0NCivjgYvjgZjjgZ8s44GL44Gk44G/DQor44GL44GR44GM44KPLOOBn+OBi+OBr+OCiw0KK+OBi+OBjeOBrOOBvizjgZ/jgaDjgb/jgaQNCivjgYvjgb7jgaAs44Gu44G844KLDQor44GL44G+44GfLOOBpuOCi+OBsuOBlQ0KK+OBi+OCgeOBn+OBqyzjgajjgZfjgbLjgZMNCivjgYvjgb/jgZjjgocs44Gf44GL44GXDQor44GL44G/44KA44KJLOOBqOOCguOBkw0KK+OBi+OBv+OChOOBvizjgb7jgZXjgbLjgo0NCivjgYvjgarjgYbjgaEs44GR44GE44GTDQor44Gf44GR44GG44GhLOOBteOBv+OBi+OBmg0KK+OBi+OBreOBkyzjgbLjgo3jgobjgY0NCivjgYvjga3jgZMs44GK44GV44KADQor44GL44KT44Gs44GNLOOBk+OBm+OBhA0KK+OBi+OBrizjgZXjgajjgZcNCivjgYvjgonjga/jgZcs44Gy44Gn44GNDQor44GL44GV44GELOOBv+OCjw0KK+OBruOCgOOCiSzjgZ/jgYvjgoTjgZkNCivjgYvjgZXjgYQs44Gy44Gn44GKDQor44GL44GbLOOBruOBtuOBig0KK+OBi+OBl+OBj+OCiSzjgZ/jgYvjgb/jgaENCivjgYvjgZfjgoDjgoks44GL44Ga44Gf44GLDQor44GL44GX44KP44GOLOOBquOBiuOBjQ0KK+OBi+OBn+OBrizjgZ/jgYvjgbLjgo0NCivjgYvjgZ/jgYrjgYss44Gy44KN44GNDQor44GL44Go44GGLOOBj+OBq+OBguOBjQ0KK+OBi+OBqOOBhizjgb7jgZXjga7jgooNCivjgYvjgajjgYYs44G+44GV44GXDQor44GL44Go44GGLOOBvuOBleOChuOBjQ0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgYvjgajjgYYs44G/44GNDQor44GL44Go44GG44GK44GLLOOChOOBmeOBruOBtg0KK+OBi+OBpOOBhCzjgoTjgZnjgY0NCivjgYvjgaTjgb7jgZ8s44Gb44GE44GE44GhDQor44GL44KP44Gw44GfLOOBjeOCiOOBj+OBqw0KK+OBi+OCj+OBoeOChCzjgbLjgo3jgYLjgY0NCivjgYvjgo/jgaAs44G/44Gu44KLDQor44GL44KP44GgLOOBiOOBv+OBkw0KK+OBhOOCiuOBleOCjyzjgoLjgoLjgZMNCivjgYvjgo/jgYQs44GY44KF44Gr44GhDQor44GL44KP44GL44G/LOOCiOOBl+OCjQ0KK+OBi+OCj+OBi+OBvyzjgZXjgajjgZcNCivjgYvjgo/jgb8s44GL44KI44GTDQor44GL44KP44KA44KJLOOBpuOCi+OBsuOBlQ0KK+OBhOOBl+OBhCzjgoTjgZnjgZcNCivjgYvjgo/jga4s44GK44GV44KADQor44GL44KP44KA44KJLOOBquOBiuOBjQ0KK+OBi+OCj+OBleOBjSzjgZHjgYQNCivjgYvjgo/jgZss44G+44GV44Gv44KLDQor44GL44KP44GbLOOBn+OBi+OBguOBjQ0KK+OBi+OCj+OBmyzjgZ/jgYvjgZcNCivjgYvjgo/jgZfjgb4s44KG44GL44KKDQor44GL44KP44Gf44GrLOOBmOOCh+OBmA0KK+OBkeOBhOOBoCzjgb/jga7jgosNCivjgY3jgaAs44Gf44GL44GKDQor44GN44Gg44GhLOOBqOOBl+OBguOBjQ0KK+OBjeOBr+OCiSzjgorjgZvjgYQNCivjgY3jgY/jgYvjgo8s44Gy44KN44KG44GNDQor44GN44KC44GoLOOBteOBv+OBig0KK+OBjeOCgOOCiSzjgb/jgo8NCivjgYvjgb7jgZ8s44GR44KT44GYDQor44GE44GP44G/LOOBv+OBruOCiw0KK+OBjeOBruOBl+OBnyzjgYLjgY3jgokNCivjgY3jga7jgYbjgaEs44GR44KT44GYDQor44GN44GXLOOChOOBmeOBjQ0KK+OBjeOBl+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgY3jgYbjgaEs44GN44KI44Gy44KNDQor44GT44GwLOOBruOBtuOChuOBjQ0KK+OCguOCiizjgarjgYrjgY0NCivjgZPjgbDjgoTjgYvjgo8s44Gy44KN44GXDQor44GP44G844GfLOOBiOOBhOOBmA0KK+OBk+OBsOOChOOBlyzjgYjjgYTjgZMNCivjgYrjgYvjgo8s44GP44Gr44Gy44GTDQor44GT44Gw44KE44GXLOOBvuOBleOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgZMNCivjgZPjgb7jgZ8s44GX44GS44GKDQor44GT44Gw44KE44GXLOOBqOOCguOBiA0KK+OBk+OBsOOChOOBlyzjgobjgYvjgooNCivjgZPjgbDjgoTjgZcs44G+44GV44Gy44GnDQor44GT44Gg44G+LOOBkeOCk+OBhOOBoQ0KK+OBk+OBiOOBmCzjgbLjgo3jgobjgY0NCivjgZPjgZDjgaEs44G+44KG44G/DQor44GT44Gv44GfLOOBl+OBkuOBi+OBmg0KK+OBk+OBsuOCiSzjgb7jgY0NCivjgarjgYvjgYzjgo8s44Gf44GP44GXDQor44GT44Gy44KD44G+LOOBi+OBmuOBsuOCjQ0KK+OBk+OBhOOBpyzjgajjgojjgYLjgY0NCivjgZPjgYTjgacs44Gy44KN44KG44GNDQor44GT44GE44GRLOOBsuOBp+OBjQ0KK+OBk+OBhOOBmuOBvyzjgZ/jgZHjgZcNCivjgZPjgZjjgb4s44Gy44Go44GXDQor44GT44GR44GQ44GhLOOBpuOBpOOChA0KK+OBk+OBj+OBvCzjgZfjgpMNCivjgZPjgb7jgaQs44Gm44Gk44GYDQor44GT44G+44GkLOOBjeOCiOOBruOCig0KK+OBk+OBv+OChCzjgYjjgYTjgZ/jgaQNCivjgZPjgpPjgaks44GL44Gk44G/DQor44GT44KT44GpLOOBi+OBpOOChuOBjQ0KK+OBk+OCk+OBqSzjgYvjgZrjgbLjgZMNCivjgZPjgpPjgaks44KE44GZ44GXDQor44GT44KT44GpLOOBpOOBqOOCgA0KK+OBk+OBq+OBlyzjgZHjgpPjgZgNCivjgZPjgZXjgYss44Go44GX44Gy44GTDQor44GT44Gb44GNLOOBjeOBv+OBig0KK+OBk+OBl+OBhOOBlyzjgorjgYjjgZMNCivjgZPjgZfjgYos44GC44GN44KJDQor44GT44GZ44GSLOOCiOOBl+OCjQ0KK+OBk+OBsuOCgyzjgZjjgoXjgpMNCivjgZPjgoTjgb4s44GX44GS44KLDQor44GT44KE44G+LOOCguOBqOOBkw0KK+OBn+OBkeOBoSzjgZ/jgY/jgoQNCivjgY/jgbws44KE44GZ44G+44GVDQor44GP44G8LOOCiOOBhuOBkw0KK+OBj+OBvCzjgZ/jgYvjgZMNCivjgY/jgYzjgYQs44KG44G/44GTDQor44GE44GL44KJ44GXLOOCiOOBmA0KK+OBj+OBvuOBluOCjyzjgYvjgZrjgajjgZcNCivjgY/jgavjgb/jgaQs44GC44GN44KJDQor44GP44GuLOOBv+OBiA0KK+OBu+OBl+OBrizjgZ/jgYvjgobjgY0NCivjgY/jgonjgZfjgZIs44Gf44Gk44GKDQor44GP44KK44Gv44KJLOOBn+OBi+OBkw0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgbLjgo0NCivjgoTjgarjgY7jgaAs44Go44GX44Gy44GTDQor44GP44KK44KE44G+LOOBn+OBpOOChA0KK+OBj+OCjeOBi+OCjyzjgb7jgZXjgajjgZcNCivjgY/jgZXjgYvjgo8s44Go44GX44GC44GNDQor44GP44GV44Gq44GOLOOBvuOBleOBruOCig0KK+OBj+OBleOBrizjgYvjgZrjgZcNCivjgY/jgZss44GK44GV44KADQor44GP44GX44GgLOOBl+OCheOBng0KK+OBj+OBmeOBoCzjgajjgZfjgoQNCivjgY/jgZnjgY0s44Gk44Go44KADQor44GP44GZ44G/LOOBteOBv+OBjQ0KK+OBvuOBiOOBoCzjgZ/jgYvjgobjgY0NCivjgb7jgYjjgaAs44GL44Ga44Gy44KNDQor44G+44GI44GL44KPLOOBruOBtuOBkw0KK+OBvuOBiOOBi+OCjyzjgbLjgZXjgojjgZcNCivjgb7jgYzjgorjgbXjgaEs44Gb44GE44GXDQor44G+44GN44GuLOOBqOOBl+OChA0KK+OBvuOBjeOBrizjgZPjgYbjgZgNCivjgb7jgarjgbks44G/44GLDQor44GC44GM44Gk44G+LOOBl+OCh+OBsuOBoQ0KK+OBvuOCi+OBiizjgobjgY3jgYoNCivjgb7jgovjgZ8s44Gy44Gn44GC44GNDQor44G+44KL44KE44G+LOOBsuOBp+OChuOBjQ0KK+OBvuOCi+OChOOBvizjgZHjgYTjgYTjgaENCivjgb7jgovjgoTjgb4s44GK44GV44KADQor44G+44KL44KE44G+LOOBsuOBp+OBsuOBkw0KK+OBvuOBmeOBoCzjgZXjgajjgosNCivjgb7jgZnjgaAs44Gh44GIDQor44GL44KT44Gw44KJLOOBk+OBhuOBhOOBoeOCjQ0KK+OBvuOBpOOBsOOCiSzjgaHjgYjjgZMNCivjgarjgYvjgoDjgoks44KG44Gf44GLDQor44G+44Gk44GgLOOBn+OBpOOChA0KK+OBvuOBpOOBoCzjgYLjgY3jgYoNCivjgb7jgaTjgYQs44Gy44KN44GTDQor44G+44Gk44GELOOBn+OBi+OBig0KK+OBvuOBpOOBhCzjgojjgZfjgYoNCivjgb7jgaTjgYQs44Gh44Gy44KNDQor44G+44Gk44KC44GoLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgogNCivjgb7jgaTjgoLjgags44Gf44Gk44KG44GNDQor44G+44Gk44KC44GoLOOBl+OBkuOCiw0KK+OBvuOBpOOBiuOBiyzjgarjgYrjgY0NCivjgarjgovjgZss44KG44GLDQor44G+44Gk44KELOOBvuOBk+OBqA0KK+OCgeOBluOCjyzjgZ/jgYvjgbLjgo0NCivjgb/jgYjjga4s44KG44GG44GYDQor44G/44GO44GfLOOBpuOCi+OBv+OBpA0KK+OBv+OBi+OBvyzjgajjgZfjgoQNCivjgb/jgoDjgoks44GE44Ga44G/DQor44KE44Gq44GOLOOBsuOCjeOBlw0KK+OBv+OBquOBi+OBnyzjgaHjgajjgZsNCivjgb/jga0s44GP44Gr44Gu44KKDQor44G/44GtLOOBvuOBleOChuOBjQ0KK+OBv+OBruOCjyzjgbLjgo3jgobjgY0NCivjgb/jgZXjgo8s44KI44GX44Gu44KKDQor44G/44GV44KPLOOBl+OCheOBsuOBoeOCjQ0KK+OBv+OBl+OBvizjgaHjgojjgZMNCivjgb/jgZ/jgoDjgoks44GC44Gk44GXDQor44G/44GoLOOBkeOCk+OBmA0KK+OBv+OBpOOBsuOCiSzjgb7jgZXjgYvjgaQNCivjgb/jgaTjgYTjgZcs44GX44KT44KEDQor44G/44Gk44Gq44KKLOOBv+OBuw0KK+OBv+OBhuOCiSzjgorjgoXjgZgNCivjgb/jgoTjgbks44Gu44G244Gy44GTDQor44G/44KE44GY44G+LOOBsuOBqOOBlw0KK+OBv+OChOOCguOBqCzjgY3jgoXjgbLjgoMNCivjgb/jgoTjgoLjgags44G+44KG44G/DQor44G/44KE44GV44GLLOOBl+OCh+OBmA0KK+OBv+OChOOBleOBiyzjgYvjgZrjgoQNCivjgb/jgoTjgZfjgZ8s44GT44GG44GE44GhDQor44G/44KE44GX44GfLOOBvuOBleOChuOBjQ0KK+OBv+OChOOBluOBjSzjgb7jgZXjgoTjgZkNCivjgb/jgoTjgZbjgo8s44KE44GZ44GI44GEDQor44G/44KE44GW44KPLOOBjeOCiOOBiA0KK+OBv+OBnuOBr+OBlyzjgb7jgY3jgZMNCivjgZXjgYvjgYQs44Gf44GL44Gy44KNDQor44G/44Ga44GuLOOBpOOCiOOBlw0KK+OBv+OBmuOBiuOBoSzjgajjgoLjgbLjgo0NCivjgb/jgZrjgZfjgb4s44Gu44G244GKDQor44G/44Ga44GfLOOBvuOCiuOBkw0KK+OCguOBoeOBr+OCiSzjgb7jgZXjgbXjgb8NCivjgoLjgaHjgZrjgY0s44Gf44GL44GIDQor44KC44KC44GbLOOBsuOCjeOBi+OBmg0KK+OCguOCiizjgZHjgpPjgZgNCivjgoLjgoos44GX44GS44GNDQor44KC44KKLOOBl+OBkuOCiw0KK+OCguOCiizjgajjgoLjgb8NCivjgoLjgoos44KG44Gy44Gh44KNDQor44KC44KKLOOBkeOCk+OBhOOBoeOCjQ0KK+OCguOCiuOBi+OCjyzjgbLjgo3jgYsNCivjgoLjgorjgoLjgags44GY44KF44KT44GTDQor44KC44KK44KC44GoLOOBruOCiuOBl+OBkg0KK+OCguOCiuOCguOBqCzjgYvjgaTjgb8NCivjgoLjgorjgoDjgoks44Gf44GL44KG44GNDQor44KC44KK44GuLOOBn+OBkeOBsuOBkw0KK+OCguOCiuOBleOCjyzjgbLjgo3jgZcNCivjgZfjgb7jgYrjgYss44Gy44KN44GC44GNDQor44KC44KK44GX44GfLOOBn+OBi+OBig0KK+OCguOCiuOChOOBvizjgZHjgpPjgZgNCivjgoLjgo3jgYrjgYss44GR44KT44GYDQor44KC44KN44Go44G/LOOBj+OBqw0KK+OCguOBqOOBjSzjgZPjgYbjgYTjgaENCivjgoLjgajjga4s44GX44KF44Gy44GhDQor44KC44Go44Gf44GLLOOBsuOCjeOBjQ0KK+OCgOOBkOOCi+OBvizjgYLjgY3jgbLjgo0NCivjgoDjgYvjgYQs44Gh44GIDQor44GC44KT44Gp44GGLOOBr+OBmuOBjQ0KK+OBr+OBrSzjgbLjgafjgY0NCivjgoDjgonjgYvjgb8s44G+44KC44KLDQor44KA44KJ44G+44GkLOOBvuOBleOCiA0KK+OCgOOCieOBl+OBkizjgoTjgZnjgbLjgo0NCivjgZfjgoLjgoDjgoks44GT44GG44GE44GhDQor44KA44KJ44GfLOOBvuOBquOBtg0KK+OBv+OCh+OBjCzjgZfjgpPjgYTjgaENCivjgarjgYzjga/jgoks44GL44Ga44G/DQor44GE44Go44GGLOOBj+OBq+OBi+OBmg0KK+OBquOBjOOBhCzjgYrjgZXjgoANCivjgarjgYzjgYQs44KG44GLDQor44GE44KP44GoLOOBsuOCjeOBkw0KK+OBn+OBkeOBl+OBkizjgb/jgaTjgbLjgo0NCivjgarjgYzjgYos44Gq44GK44GNDQor44Gq44GM44GKLOOBn+OBoOOBqOOBlw0KK+OBquOBjOOBiizjgYvjgaTjgobjgY0NCivjgbXjgY/jgaTjgYss44Gy44Gn44GNDQor44Gq44GM44GV44KPLOOBn+OBj+OBmA0KK+OBquOBjOOBleOCjyzjgojjgZfjgb8NCivjgarjgYzjgZss44GE44KP44GKDQor44Gq44GM44GX44G+LOOBk+OBjQ0KK+OBquOBjOOBn+OBqyzjgajjgZfjgYvjgZoNCivjgarjgYzjgo/jgY0s44Gk44Go44KADQor44Gq44GM44KE44G+LOOBi+OBmuOChuOBjQ0KK+OBquOBlOOChCzjgZjjgoXjgpMNCivjgarjgYTjgajjgYYs44G+44GT44GoDQor44Gq44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBquOBi+OBoCzjgbLjgo3jgZcNCivjgarjgYvjgYzjgY0s44GL44Gk44G/DQor44Gq44GL44GM44KPLOOBkeOBhOOBnw0KK+OBquOBi+OBjOOCjyzjgajjgYrjgosNCivjgarjgYvjgYzjgo8s44KI44GX44GNDQor44Gq44GL44GM44KPLOOBoeOBu+OBkw0KK+OBquOBi+OBmOOBvizjgYLjgY3jgbLjgo0NCivjgbvjgorjgYbjgaEs44G/44Gh44Gu44KKDQor44Gq44GL44Gv44KJLOOBhOOBleOBiA0KK+OBquOBi+OBmOOBvizjgZHjgYTjgZMNCivjgarjgYvjgZjjgb4s44Gy44Gn44GNDQor44GN44GP44GfLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZnjgZnjgoANCivjgarjgYvjgb7jgoss44GC44GN44GKDQor44Gq44GL44KA44KJLOOBteOBv+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgoTjgZkNCivjgarjgYvjgoDjgoks44G+44GV44Gy44GnDQor44Gq44GL44KA44KJLOOCguOCiuOBig0KK+OBquOBi+OCgOOCiSzjga7jgbbjgobjgY0NCivjgarjgYvjgoDjgoks44GV44Gg44G/44GkDQor44Gq44GL44KA44KJLOOBn+OBj+OChA0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgYLjgY0NCivjga/jgaPjgajjgoos44Gm44KL44Gu44G2DQor44Gq44GL44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgarjgYvjgoDjgoks44G+44GV44GXDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OBquOBi+OBq+OBlyzjgajjgojjgZgNCivjgarjgYvjgavjgZcs44GL44Ga44Gy44GoDQor44Gq44GL44GuLOOBi+OBmuOChuOBjQ0KK+OBquOBi+OBrizjgZPjgYbjgZgNCivjgarjgYvjga4s44G/44GLDQor44Gq44GL44GuLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBrizjgajjgZfjgZMNCivjgarjgYvjga4s44KI44GXDQor44Gq44GL44GuLOOBvuOBk+OBqA0KK+OBquOBi+OBiizjgaHjgYgNCivjgarjgYvjgYrjgYss44Gu44KK44GTDQor44Gq44GL44GX44G+LOOBn+OBi+OBig0KK+OBquOBi+OBl+OBvizjgZ/jgYvjgZcNCivjgZfjgarjgaAs44KK44KF44Gy44GhDQor44Gq44GL44GfLOOBl+OBkuOBi+OBmg0KK+OBquOBi+OChCzjgb7jgarjgbYNCivjgZXjgYTjgYvjgo8s44GV44G244KNDQor44Gv44Gb44GM44KPLOOBqOOBiuOCiw0KK+OBquOBi+OBluOCjyzjgZ/jgaTjgZgNCivjgarjgb7jgaQs44GE44Ga44KLDQor44Gq44KK44GfLOOBsuOBp+OBqA0KK+OBquOBmeOBrizjgZnjgarjgYoNCivjga3jgoLjgags44KI44GX44GC44GNDQor44Gt44GK44GELOOBoeOChuOBjQ0KK+OBreOBmizjgoTjgZnjgbLjgacNCivjgavjgYTjgoDjgoks44GK44GV44KADQor44Gr44GE44KE44G+LOOBpOOBi+OBlQ0KK+OBq+OBhOOChOOBvizjgZHjgYQNCivjgavjga7jgb/jgoQs44KI44GX44Gu44G2DQor44Gr44Gu44G/44KELOOBn+OBi+OBsuOCjQ0KK+OBq+OBlyzjgb7jgZXjgYvjgaQNCivjgavjgZfjgaAs44GX44KT44GE44GhDQor44Gr44GX44GgLOOBi+OBmuOBquOCig0KK+OBq+OBl+OBqeOBrizjgYLjgY3jgokNCivjgavjgZfjgYvjgo8s44GL44Ga44Gq44KKDQor44Gr44GX44GN44GpLOOBn+OBj+OBmA0KK+OBq+OBl+OCgOOCiSzjgbLjgajjgZcNCivjgavjgZfjgaos44Gy44KN44GXDQor44Gr44GX44GKLOOBvuOBvw0KK+OBhOOBruOBhuOBiCzjgb7jgb8NCivjgavjgZfjgZbjgo8s44Gf44GP44GYDQor44Gr44GX44Ga44GLLOOBn+OBi+OBguOBjQ0KK+OBq+OBo+OBnyzjgb/jga3jgYLjgY0NCivjga7jgaAs44G+44GT44GoDQor44Gu44KA44KJLOOBquOBiuOBjQ0KK+OBruOBruOCgOOCiSzjgYvjgZrjgb7jgZUNCivjga7jgorjga/jgZcs44Gh44GL44GSDQor44Gy44GuLOOBsuOCjeOBlw0KK+OBruOBluOBjSzjgbLjgo3jgZcNCivjga7jgZbjgo8s44GL44Ga44GC44GNDQor44Gs44G+44GuLOOBn+OBi+OBig0KK+OBiuOBs+OBmyzjgb7jgZXjga7jgooNCivjgYrjgbzjgYvjgZ8s44G+44GV44GXDQor44GK44GhLOOCiOOBl+OBruOCig0KK+OBr+OBm+OBjOOCjyzjgYLjgY3jgokNCivjgb7jgarjgbks44GC44GN44Gy44GTDQor44GK44GgLOOBguOBjeOCiQ0KK+OBiuOBoCzjgaDjgYTjgYTjgaQNCivjgYrjgaAs44GY44KF44KT44GYDQor44GK44GgLOOBi+OBmuOBqOOBlw0KK+OBiuOBoOOBj+OCiSzjgZ/jgYvjgYLjgY0NCivjgYrjgYzjgZ8s44Go44GX44KEDQor44GK44GM44KPLOOBsuOBqOOBvw0KK+OBguOBuSzjgo/jgYvjgZMNCivjgYrjgZDjgaEs44GV44Go44GXDQor44GK44GQ44G+LOOBsuOCjeOChuOBjQ0KK+OBiuOBkOOCiSzjgYTjgZXjgYoNCivjgYrjgZDjgoks44GL44Ga44KG44GNDQor44KA44GV44GXLOOBl+OCkw0KK+OBiuOBkOOCiSzjgb7jgZXjgbLjgo0NCivjgYrjgZDjgoos44Gu44G244GTDQor44GK44GwLOOBsuOCjeOBjQ0KK+OBiuOBr+OBlyzjgZHjgpPjgZnjgZENCivjgYrjgbIs44GC44GN44Gy44KNDQor44GK44Gy44GILOOBv+OBpOOBguOBjQ0KK+OBiuOBj+OBvCzjgbLjgo3jgobjgY0NCivjgYrjgY/jgb4s44GL44Gk44G/DQor44GK44GP44G+LOOBl+OCk+OBmeOBkQ0KK+OBiuOBrizjgbLjgafjgbLjgo0NCivjgYrjgazjgb4s44GY44KF44KT44GTDQor44Gf44GL44GbLOOBjuOChw0KK+OBiuOBleOCjyzjgbLjgajjgZcNCivjgYrjgZXjgo8s44Go44GX44Gy44GTDQor44GK44GV44KPLOOCiOOBmeOBkQ0KK+OBiuOBleOCjyzjgZPjgY0NCivjgYrjgZfjgb4s44G+44GV44KI44GXDQor44GK44GX44G+LOOBn+OBvuOBjQ0KK+OBiuOBl+OBvizjgbLjgafjgYoNCivjgYrjgZ8s44G/44Gk44KLDQor44GK44Gf44GLLOOBvuOBleOBsuOBkw0KK+OBiuOBn+OBjSzjgb7jgZPjgagNCivjgYrjgZ/jgass44GR44KT44GYDQor44GK44Gk44GLLOOCiOOBsuOBoQ0KK+OBiuOBpOOBiyzjgbLjgo3jgYvjgZoNCivjgYrjgo8s44GR44KT44GYDQor44GK44KP44GgLOOBr+OCi+OBlw0KK+OBiuOBsuOCg+OBvizjgYTjgZXjgoANCivjgYrjgZ7jga0s44Gy44KN44GXDQor44GK44GLLOOBi+OBpOOBvw0KK+OBiuOBiyzjgYvjgojjgZMNCivjgYrjgYss44KI44GX44Gy44GnDQor44GK44GLLOOBsuOBp+OBjQ0KK+OBiuOBi+OBoCzjgbLjgo3jgZcNCivjgYrjgYvjgaAs44GR44KT44GYDQor44GK44GL44GgLOOBneOBmeOBkQ0KK+OBiuOBi+OBoCzjgb7jgorjgZMNCivjgYrjgYvjganjgoEs44Gy44KN44GKDQor44GK44GL44KC44GoLOOBv+OBpOOBsuOCjQ0KK+OBiuOBi+OCguOBqCzjgZfjgpPjgZgNCivjgYrjgYvjgoLjgags44Gy44KN44KG44GNDQor44GK44GL44KA44KJLOOBn+OBkeOBlw0KK+OBiuOBi+OBrizjgojjgZgNCivjgYrjgYvjga7jgoQs44Gy44KN44Gu44G2DQor44GK44GL44GKLOOBpuOBpOOBig0KK+OBiuOBi+OBluOBjSzjgb7jgZPjgagNCivjgYrjgY0s44Gy44KN44Gu44KKDQor44GK44GN44KC44GoLOOBsuOBqOOBlw0KK+OBiuOBj+OCgOOCiSzjga7jgbbjgobjgY0NCivjgYrjgY/jgoDjgoks44KE44GZ44GXDQor44GK44GP44GuLOOBsuOCjeOBguOBjQ0KK+OBiuOBvuOBnyzjgYvjgZrjgZfjgZINCivjgYrjgavjgY0s44Gf44GL44Gu44KKDQor44GK44Gr44Gk44GLLOOBn+OBi+OCiOOBlw0KK+OBiuOBruOBp+OCiSzjgbLjgajjgZcNCivjgYrjga7jgZbjgo8s44G+44GV44KG44GNDQor44GK44Gr44GXLOOBqOOCiOOBguOBjQ0KK+OBiuOBq+OBlyzjgY3jgojjgYvjgaQNCivjgYrjgaTjgYss44KE44GZ44GXDQor44GK44GV44GgLOOBk+OBhuOBmA0KK+OBiuOBleOBjSzjgbLjgo3jgZcNCivjgYrjgZXjgarjgb8s44KK44GLDQor44GK44KE44G+44GgLOOBguOBjeOCiQ0KK+OBiuOBluOCjyzjgb/jgaTjgosNCivjgYrjgZbjgo8s44KE44GZ44GYDQor44GK44GW44KPLOOBsuOBp+OBig0KK+OCjSzjgbLjgo3jgobjgY0NCivjgZXjgYjjgZDjgZUs44G+44GV44Gy44GTDQor44GV44GI44GNLOOBqOOCguOBkw0KK+OBquOBi+OBmOOBvizjgobjgY3jgbLjgZMNCivjgZXjgYTjgZ8s44GC44GEDQor44GK44GM44KPLOOBguOBjeOCiOOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgYTjgajjgYYs44G+44GV44GC44GNDQor44GV44GE44Go44GGLOOBguOBjeOCiQ0KK+OBleOBi+OBhCzjgbLjgafjgaTjgZANCivjgZXjgYvjgYQs44GR44KTDQor44GV44GL44GELOOBj+OBq+OCiOOBlw0KK+OBleOBi+OBhCzjgarjgYrjgbLjgZUNCivjgZXjgYvjgYQs44Go44KC44Gu44G2DQor44GV44GL44GELOOBn+OBi+OBlw0KK+OBleOBi+OBhOOCiizjgZfjgZrjgojjgZcNCivjgZXjgYvjgY0s44KE44GZ44Gu44KKDQor44GV44GL44G+LOOBk+OBhuOBmOOCjQ0KK+OBleOBi+OBvuOBjSzjgZfjgo0NCivjgZXjgYvjgoLjgags44KE44GZ44Gu44KKDQor44GV44GL44KC44GoLOOCiOOCiuOBqA0KK+OBleOBi+OCguOBqCzjgoTjgZnjga7jgooNCivjgZXjgYvjgZ8s44KI44GX44Gy44KNDQor44GV44GL44GG44GILOOBn+OBkeOBlw0KK+OBleOBi+OBmuOCgSzjgaHjgYjjgZMNCivjgarjgYvjga4s44KE44GZ44Gv44KLDQor44GV44GP44G+LOOBi+OBmuOBsuOBlQ0KK+OBleOCk+OBvOOCk+OBvuOBpCzjgZ/jgYvjgbLjgZMNCivjgZXjga4s44KI44GX44Gu44KKDQor44GV44GuLOOCiuOCh+OBmA0KK+OBleOBleOBjOOCjyzjgbLjgafjga7jgooNCivjgZXjgZXjgY0s44GR44GE44GYDQor44GV44GV44GNLOOBn+OBkeOBlw0KK+OBleOBleOBjSzjgZ/jgY8NCivjgZXjgZXjgY0s44GX44KH44GUDQor44GV44GV44GW44KPLOOBsuOCjeOChuOBjQ0KK+OBleOBqOOBhizjgY3jgofjgZMNCivjgZXjgajjgYYs44G+44GV44Gu44KKDQor44GV44Go44GGLOOBvuOBleOBqOOCgg0KK+OBleOBqOOBhizjgb7jgZXjgajjgZcNCivjgZXjgajjgYYs44GV44Go44KLDQor44GV44Go44GGLOOBl+OCheOBsuOBoQ0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44Gf44GL44KG44GNDQor44GV44Go44GGLOOBn+OBj+OBvw0KK+OBleOBqOOBhizjgajjgoLjgbLjgo0NCivjgZXjgajjgYYs44KI44GX44Gy44GTDQor44GV44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBleOBpOOBvizjgZ/jgZHjgZcNCivjgZXjgo/jgZDjgaEs44Go44GX44G144G/DQor44GV44KP44GELOOChuOBn+OBiw0KK+OBleOCj+OCieOBjizjgobjgorjgZMNCivjgZXjgo/jgZ/jgass44KE44GZ44KG44GNDQor44Gb44GE44GfLOOBi+OBmuOCiOOBlw0KK+OBm+OBjSzjgZPjgYbjgZgNCivjgZvjgY0s44Go44GX44KG44GNDQor44Gb44GNLOOChOOBmeOBlw0KK+OBm+OBjeOBr+OCiSzjgYvjgaTjgbLjgagNCivjgZvjgY3jga0s44KI44GX44Gf44GLDQor44Gb44GN44GtLOOBn+OBi+OChuOBjQ0KK+OBl+OCieOBhOOBlyzjga7jgbbjgZ/jgYsNCivjgZvjgpPjgYws44KG44GZ44GRDQor44Gb44GuLOOBsuOBp+OChuOBjQ0KK+OBm+OBl+OCgizjgZXjgajjgZcNCivjgZvjgags44GK44GV44KADQor44Gb44Go44GQ44GhLOOBvuOChuOBvw0KK+OBpuOCi+OChCzjga7jgbbjgYoNCivjgZfjgYTjgbAs44Gy44Gn44Gu44KKDQor44GX44Gw44GuLOOBv+OCj+OBkw0KK+OBl+OBsOOBleOBjSzjgarjgYrjgagNCivjgZfjgbDjgZ8s44G/44Gh44Gy44KNDQor44GX44G244GV44KPLOOChOOBmeOBig0KK+OBl+OBtuOBleOCjyzjgY/jgavjgYoNCivjgZfjgaEs44GC44Gk44GXDQor44GX44Gh44GfLOOBvuOBleOBvuOCjQ0KK+OBl+OBkuOBsuOBlSzjga7jgbbjgbLjgo0NCivjgZfjgZLjgZXjgo8s44Gu44KK44KE44GZDQor44KA44KJ44GfLOOBguOBjeOCiQ0KK+OBl+OBvuOBmizjgobjgZnjgZENCivjgZfjgb7jgZos44Gy44KN44KG44GNDQor44GN44GX44GgLOOBvuOBleOBsuOCjQ0KK+OBl+OBv+OBmizjga7jgbbjgYoNCivjgZfjgb/jgZos44Gu44KK44KG44GNDQor44GX44G/44GaLOOBl+OCheOBsuOBoQ0KK+OBl+OBv+OBmizjgZ/jgaTjgYoNCivjgZfjgb/jgZos44Gf44Gk44KEDQor44GX44G/44GaLOOChuOBsuOBoQ0KK+OBl+OBv+OBmizjgorjgYsNCivjgb/jgoTjgZPjgZcs44Go44KC44KG44GNDQor44GX44KC44G/44GhLOOBhOOBj+OBkw0KK+OBquOBi+OBsOOChOOBlyzjgabjgaTjgo0NCivjgZfjgoLjgYrjgZUs44G+44GV44G144G/DQor44GX44KC44Gk44GYLOOCiOOBl+OBsuOCjQ0KK+OBl+OBquOBoCzjgaDjgYTjgYjjgYQNCivjgZfjgarjgYzjgo8s44Gf44GL44KG44GNDQor44GX44KT44KC44GoLOOBqOOBiuOCiw0KK+OBl+OBrizjgb/jgobjgY0NCivjgZfjga7jgaAs44KK44KF44GG44Gf44KN44GGDQor44GX44Gu44GgLOOBn+OBi+OBpOOBkA0KK+OBl+OBruOBluOBjSzjgZ/jgaTjgZcNCivjgZfjgYrjgZ/jgass44Gf44GL44GXDQor44GX44GK44KELOOBv+OBoeOBig0KK+OBl+OCieOBuSzjgYjjgYTjgYTjgaENCivjgZfjgonjgYzjgY0s44Gy44KN44GXDQor44GX44KJ44GELOOBr+OChOOBqOOBlw0KK+OBl+OCieOBhOOBlyzjgY/jgpPjgZgNCivjgZfjgonjgYTjgZcs44GR44GE44GTDQor44GX44KJ44GNLOOBsuOCjeOBl+OBkg0KK+OBl+OBmuOBnyzjgajjgZfjgbLjgo0NCivjgZfjgofjgZgs44G+44KK44GTDQor44Gd44Gu44GgLOOBi+OBiuOCiw0KK+OBmeOBqeOBhizjgZ/jgZHjgZcNCivjgZnjgYjjgaAs44GX44KT44GYDQor44GZ44GI44Gk44GQLOOBoeOBi+OBlw0KK+OBmeOBjOOBnyzjga7jgbbjgYoNCivjgZnjgYzjgo/jgoks44G+44GV44Gy44KNDQor44GZ44GO44GuLOOCiOOBl+OBruOCig0KK+OBmeOBjuOBleOBjSzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZnjgY7jgZfjgb4s44Gv44Gk44GIDQor44Gq44GM44GELOOBl+OCh+OBmA0KK+OBmeOBjuOChOOBvizjgabjgaTjgbLjgo0NCivjgZnjgb8s44Gk44GL44GVDQor44GZ44G/44Gf44GrLOOBhOOBo+OBm+OBhA0KK+OBmeOBleOBjSzjgojjgZfjga/jgosNCivjgZnjgZnjgY0s44GL44Ga44Gy44GTDQor44GZ44KE44G+LOOBiOOBpOOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GL44Ga44Gy44KNDQor44GZ44Ga44GNLOOBkeOBhOOBkw0KK+OBn+OBmOOBvizjgZHjgYTjgZ8NCivjgZnjgZrjgY0s44G/44Gp44KKDQor44GZ44Ga44GNLOOCguOBqOOChuOBjQ0KK+OBmeOBmuOBjSzjgZvjgYTjgZMNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GZ44Ga44GNLOOChOOBmeOBmeOBkQ0KK+OBmeOBmuOBjSzjgojjgZfjgYLjgY0NCivjgZnjgZrjgY0s44KI44GX44Gu44G2DQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgb7jgZXjgosNCivjgZfjgoXjgY/jgoQs44G+44KK44GTDQor44Gf44Gh44Gw44GqLOOBqOOBl+OBsuOCjQ0KK+OBn+OBoeOChOOBvizjgYvjgaTjgbLjgo0NCivjgZ/jganjgZPjgo0s44GX44KT44GE44GhDQor44Gf44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBkOOBoSzjgZPjgYbjgYTjgaENCivjgZ/jgZDjgaEs44Go44KC44Gu44KKDQor44Gf44GQ44GhLOOBv+OBoeOBig0KK+OBn+OBhCzjgZHjgpPjgYTjgaENCivjgZ/jgZjjgb4s44GT44GG44GE44GhDQor44Gf44GL44GgLOOBleOBqOOBjQ0KK+OBn+OBi+OBoCzjgZ/jgY/jgoQNCivjgZ/jgYvjgY4s44KE44GZ44GTDQor44G/44KE44KC44GoLOOChuOBn+OBiw0KK+OBn+OBi+OBr+OBvizjgYLjgY3jgZMNCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44Gf44GL44Gv44GXLOOBsuOBp+OBqOOCgg0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgajjgZcNCivjgZ/jgYvjga/jgZcs44Gy44Gn44Go44GXDQor44Gf44GL44Gv44GXLOOBsuOCjeOBjQ0KK+OBn+OBi+OBr+OBlyzjgZjjgoXjgavjgaENCivjgZ/jgYvjga/jgZcs44GL44KIDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44GoDQor44Gf44GL44Gv44GXLOOCguOBqOOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgarjgYrjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gu44G244Gy44GVDQor44Gf44GL44Gv44GXLOOBruOCiuOBig0KK+OBn+OBi+OBr+OBlyzjgZXjgaHjgYgNCivjgZ/jgYvjga/jgZcs44GV44Go44KLDQor44Gf44GL44Gv44GXLOOBl+OBkuOBruOBtg0KK+OBn+OBi+OBr+OBlyzjgZnjgZnjgoANCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44Gf44GL44Gv44GXLOOBpuOBpOOBig0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44GL44Gq44GXLOOBpOOBqOOCgA0KK+OBn+OBi+OBrizjgb7jgZXjgobjgY0NCivjgZ/jgYvjgYrjgYss44G+44GT44GoDQor44Gf44GL44GbLOOBkeOCk+OCiuOChQ0KK+OBn+OBi+OBl+OBqizjgajjgZfjgbLjgZUNCivjgZ/jgYvjgZfjgaos44KE44GZ44GXDQor44Gf44GL44GfLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OChOOBvizjgoTjgZnjga7jgooNCivjgZ/jgYvjgoTjgarjgY4s44Gy44KN44GXDQor44Gf44GR44Gw44KE44GXLOOCguOBqOOChOOBmQ0KK+OBv+OBi+OBvyzjgobjgY3jgYgNCivjgZ/jgZHjgYQs44KE44GZ44GTDQor44Gf44GR44GNLOOBn+OBi+OBlw0KK+OBn+OBkeOCguOCiizjgojjgZfjgbLjgZUNCivjgZ/jgZHjgoDjgoks44Go44GX44KG44GNDQor44Gf44GR44GG44GhLOOBleOBqOOBkw0KK+OBn+OBkeOChCzjgbLjgafjgY0NCivjgZ/jgZHjgoTjgb4s44GE44Gh44KN44GGDQor44Gf44GN44GQ44GhLOOBruOBtuOBguOBjQ0KK+OBn+OBjeOBl+OBnyzjgb/jgaTjgosNCivjgZ/jgY3jgZbjgo8s44GX44KTDQor44Gf44G+44GELOOBi+OBpOOBruOCig0KK+OBn+OBv+OChCzjgabjgaTjgoQNCivjgZ/jgoDjgoks44GX44GS44GNDQor44Gf44Gq44G5LOOBk+OBm+OBhA0KK+OBn+OBquOBr+OBlyzjgaDjgYTjgZXjgY8NCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgZjjgoXjgpMNCivjgZ/jgarjgYss44GL44Gk44G/DQor44Gf44Gq44GLLOOBkeOBhOOBmeOBkQ0KK+OBn+OBquOBiyzjgb7jgZPjgagNCivjgZ/jgarjgYss44G+44GX44KFDQor44Gf44Gq44GLLOOBruOBtuOBsuOBkw0KK+OBn+OBquOBiyzjgYrjgZXjgoANCivjgZ/jgarjgYss44GR44KTDQor44GT44Gg44G+LOOBl+OCh+OBsuOBoQ0KK+OBn+OBquOBiyzjgajjgZfjgYLjgY0NCivjgZ/jgarjgYss44Go44GX44GL44GaDQor44Gf44Gq44GLLOOBqOOBl+OChuOBjQ0KK+OBn+OBquOBiyzjgYLjgY3jgokNCivjgZ/jgarjgoDjgoks44GX44GS44KLDQor44Gf44KT44GwLOOBguOBjeOBkw0KK+OBn+OBq+OBkOOBoSzjgojjgZnjgZENCivjgZ/jgavjgZDjgaEs44Gy44KN44KG44GNDQor44Gf44Gr44GELOOCiOOBl+OChuOBjQ0KK+OBn+OBq+OCgOOCiSzjgZfjgZLjgagNCivjgZ/jgavjgo/jgY0s44Gy44Gn44Gu44KKDQor44Gf44KL44GELOOBsuOCjeOChuOBjQ0KK+OBn+OBleOBjSzjgbLjgo3jgY0NCivjgZ/jgZfjgo0s44KG44GN44GTDQor44Gf44Gm44GE44GXLOOBsuOCjeOBkw0KK+OBn+OBhuOBoSzjgZjjgoXjgavjgaENCivjgZ/jgYbjgoks44GX44KTDQor44Gm44KJ44GgLOOBvuOBleOBi+OBmg0KK+OBleOBqOOBhizjgZjjgoXjgpPjgZMNCivjgabjgonjgavjgZcs44KI44GX44Gy44GTDQor44Gm44KJ44GX44GfLOOBguOBleOBig0KK+OBpuOCi+OBjeOBqizjga7jgorjgYLjgY0NCivjgajjgbks44GV44Go44GXDQor44Go44GULOOBiuOBleOCgA0KK+OBqOOBkOOBoSzjgZXjgajjgZcNCivjgajjgZgs44GL44Ga44Gq44KKDQor44Go44G/44Gq44GMLOOBkeOBhOOBmA0KK+OBqOOBv+OBquOBjCzjgZjjgoXjgpPjgZMNCivjgajjgb/jgYrjgYss44GS44KTDQor44Go44G/44GfLOOBqOOCguOBruOCig0KK+OBqOOBv+OChOOBvizjgYrjgZXjgoANCivjgajjga3jgYzjgo8s44GX44KH44GYDQor44Go44GX44Gq44KKLOOBi+OBmuOChuOBjQ0KK+OBqOOCiOOBoCzjgb7jgZXjgoQNCivjgajjgojjgaAs44Gq44GK44KEDQor44Go44KI44GgLOOCiuOCh+OBkw0KK+OBiuOCguOCiizjgbLjgo3jgYLjgY0NCivjgajjgZrjgYss44KI44GX44GKDQor44KE44G+44GL44KPLOOBguOBjeOCiQ0KK+OBpOOBvOOBhCzjgoLjgorjgobjgY0NCivjgaTjgaHjga/jgZcs44Gy44KN44GXDQor44Gk44Gh44GuLOOBguOBjeOCiA0KK+OBpOOBoeOChCzjgYjjgorjgZMNCivjgb7jgY0s44Gf44GL44Gv44KLDQor44Gk44GgLOOBiOOBhOOBmA0KK+OBpOOBjOOCjyzjgYvjgaTjga7jgooNCivjgaTjgZgs44G+44GV44GoDQor44Gk44GYLOOChOOBmeOBvuOBlQ0KK+OBpOOBmCzjgarjgYrjgY0NCivjgaTjgYvjgaAs44GZ44GQ44KLDQor44Gk44GL44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBpOOCgOOCiSzjgYLjgY3jgokNCivjgaTjgarjgZfjgb4s44GY44KF44KT44GTDQor44GK44GP44KE44G+LOOBk+OBhuOBmA0KK+OBpOOBruOBoCzjgYvjgaTjgoQNCivjgaTjga7jgYzjgYQs44G+44GV44Gy44GTDQor44Gk44GX44G+LOOCiOOBsuOBoeOCjQ0KK+OBpOOBpOOBvyzjgbLjgafjgYoNCivjgaTjgZrjgY0s44KK44KF44G444GEDQor44Gk44KL44GK44GLLOOBmOOCheOCk+OBkw0KK+OBhuOBoeOBoCzjgYvjgaTjgb8NCivjgYbjgaHjgaAs44G/44Gu44KLDQor44GG44Gh44GgLOOCiOOBl+OBsuOCjQ0KK+OBhuOBoeOBoCzjgbLjgafjga7jgooNCivjgYbjgaHjga4s44G/44Gk44Gu44G2DQor44GG44Gh44Gu44GP44KJLOOBkeOCk+OBmA0KK+OBhuOBoeOChOOBvizjgZXjgajjgZcNCivjgYbjgaHjgoTjgb4s44Go44KI44GL44GaDQor44GG44Gh44KE44G+LOOBsuOCjeOBlw0KK+OBhuOBoCzjgbLjgo3jgobjgY0NCivjgYbjgYjjgaAs44GN44KI44GXDQor44GG44GI44GgLOOBn+OBi+OChuOBjQ0KK+OBhuOBiOOBoCzjgobjgY3jgYoNCivjgYbjgYjjgaAs44G+44KC44KLDQor44GG44GI44Gv44KJLOOBleOBoOOBr+OCiw0KK+OBhuOBiOOBr+OCiSzjgoTjgZnjga7jgooNCivjgYbjgYjjga/jgoks44Gu44G844KLDQor44GG44GI44GY44G+LOOBsuOCjeOBlw0KK+OBhuOBiOOBjSzjgYvjgaTjgb8NCivjgYbjgYjjgoDjgoks44Gy44Gn44GoDQor44GG44GI44GuLOOBsuOBleOBlw0KK+OBhuOBiOOBrizjgb7jgZXjgosNCivjgYbjgYjjga4s44G+44GV44G144G/DQor44GG44GI44KE44G+LOOChOOBmeOBlw0KK+OBhuOBhCzjgYLjgY3jgbLjgZMNCivjgYbjgoHjgaAs44KB44GQ44G/DQor44GG44KB44GgLOOBv+OBoeOBr+OCiw0KK+OBhuOCgeOBoCzjgZ/jgYvjga7jgooNCivjgYbjgoHjgaAs44Gu44G244Gy44KNDQor44GG44KB44Gv44KJLOOBkeOBhOOBmA0KK+OBhuOCgeOBi+OCjyzjgZfjgZLjgosNCivjgYbjgovjgZfjgaDjgass44Gq44Gk44GTDQor44GE44Gu44GG44GILOOCiOOBl+OBqA0KK+OBhuOBleOBvyzjgajjgZfjga/jgosNCivjgYbjgZfjgb7jgoss44GX44GS44KLDQor44GG44GX44KE44G+LOOBvuOBleOBig0KK+OBhuOBmeOBhCzjgZfjgpPjgZgNCivjgYbjgZnjgYQs44Gy44KN44KG44GNDQor44GG44Gk44G/LOOBiOOCiuOBkw0KK+OBleOBleOBjOOCjyzjgY/jgavjgbLjgo0NCivjgZ3jgoHjgoQs44Gf44GL44Gy44GnDQor44KP44GgLOOBqOOBj+OBsuOCjQ0KK+OCj+OBoCzjgobjgYbjgZgNCivjgo/jgaAs44KI44GX44GTDQor44Gf44Gu44GG44GILOOBkeOBhOOBmeOBkQ0KK+OCj+OBl+OBoCzjgZfjgofjgbLjgaENCivjgo/jgZ/jgYQs44GC44Gk44GXDQor44KP44Gf44Gq44G5LOOBoeOBr+OCiw0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgo/jgZ/jgarjgbks44G+44GT44GoDQor44KP44Gf44Gq44G5LOOBvuOBleOBruOCig0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgobjgY0NCivjgo/jgZ/jgarjgbks44Gf44GR44GXDQor44KP44Gf44Gq44G5LOOChuOBhuOBkw0KK+OCj+OBn+OBquOBuSzjgZ/jgaTjgbLjgo0NCivjgoTjgY4s44GL44Gk44KG44GNDQor44KE44GULOOBk+OBuOOBhA0KK+OChOOBr+OBjizjgYrjgZXjgoANCivjgoTjgY/jgZcs44GY44KNDQor44KE44G+44GgLOOBi+OBmuOBguOBjQ0KK+OChOOBvuOBoCzjgZHjgpPjgZgNCivjgoTjgb7jgaAs44G+44GV44GKDQor44KE44G+44GgLOOBvuOBleOCiOOBlw0KK+OChOOBvuOBoCzjgojjgZfjgYLjgY0NCivjgoTjgb7jgaAs44KG44Gy44GhDQor44KE44G+44GgLOOBsuOBp+OBguOBjQ0KK+OChOOBvuOBjOOBnyzjgb/jgaHjgYLjgY0NCivjgoTjgb7jgY7jgZcs44G+44GV44KG44GNDQor44Gv44KKLOOBguOBjeOBig0KK+OChOOBvuOBkOOBoSzjgYvjgZrjgbLjgZUNCivjgoTjgb7jgZDjgaEs44GV44Go44GXDQor44KE44G+44GQ44GhLOOBsuOBp+OBjQ0KK+OBguOBiuOBpOOBiyzjgajjgYrjgosNCivjgoTjgb7jgZDjgaEs44Gy44KN44KG44GNDQor44KE44G+44GYLOOBguOBjeOCiQ0KK+OChOOBvuOCguOBqCzjgYvjgZrjgYoNCivjgoTjgb7jgoLjgags44G+44GV44Gy44GTDQor44KE44G+44KC44GoLOOBquOBiuOBteOBvw0KK+OChOOBvuOCguOBqCzjgYrjgZXjgoANCivjgoTjgb7jgoLjgags44KM44GE44GNDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OChOOBvuOCguOBqCzjgajjgb/jgoTjgZkNCivjgoTjgb7jgoLjgags44Go44GX44Gy44KNDQor44KE44G+44KC44GoLOOBqOOBl+OBig0KK+OChOOBvuOCguOBqCzjgojjgZfjgYoNCivjgoTjgb7jgoLjgags44KG44GLDQor44KE44G+44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOCgOOCiSzjgb7jgZXjgYgNCivjgoTjgb7jgarjgYss44G+44GV44KG44GNDQor44KE44G+44GX44GqLOOBi+OBpOOBlw0KK+OChOOBvuOBl+OBnyzjgajjgoLjgYvjgZoNCivjgoTjgb7jgZfjgZ8s44Go44KC44G/DQor44KE44G+44GX44GfLOOCiOOBl+OBleOBqA0KK+OChOOBvuOBl+OBnyzjgb7jgZXjga7jgooNCivjgoTjgb7jgaYs44G/44Gh44GKDQor44KE44G+44GG44GhLOOBsuOCjeOBruOCig0KK+OChOOBvuOBluOBjSzjgZjjgoXjgavjgaENCivjgoTjgb7jgZbjgY0s44GR44KT44GY44KNDQor44KE44G+44GW44GNLOOBi+OBmuOBsuOCjQ0KK+OChOOBquOBjizjgbLjgo3jgbXjgb8NCivjgoTjgarjgY7jgaAs44Gf44GL44KG44GNDQor44KE44Gq44GO44GgLOOBguOBjeOBsuOBpw0KK+OChOOBquOBhCzjgajjgZfjga7jgooNCivjgoTjgarjgYss44GI44GE44GYDQor44KE44GZ44GgLOOBvuOBquOBtg0KK+OChOOBmeOBoCzjgajjgZfjgobjgY0NCivjgoTjgZnjgaAs44Gq44GK44G144G/DQor44KE44GZ44KC44GoLOOBqOOCguOBi+OBmg0KK+OChOOBpOOBiyzjgobjgZ/jgYsNCivjgoTjgZbjgo8s44GX44KT44GYDQor44KI44GgLOOChuOBjeOBsuOCjQ0KK+OCiOOBqeOBjOOCjyzjgorjgpPjgZjjgoUNCivjgojjgaAs44GR44KT44GYDQor44KI44GT44Gv44GfLOOBsuOBqOOBlw0KK+OCiOOBk+OChOOBvizjgZHjgYQNCivjgojjgZPjgoTjgb4s44GC44GN44KJDQor44KI44KC44KKLOOChuOBjeOBsuOBlQ0KK+OCiOOBreOCguOBoSzjga7jgbzjgosNCivjgojjgo3jgZrjgoQs44Gy44Go44GXDQor44KI44GX44GgLOOBi+OBmuOBig0KK+OCiOOBl+OBoCzjgZPjgYbjgYTjgaHjgo0NCivjgojjgZfjgaAs44G/44G7DQor44G144GY44GV44GNLOOBleOBqOOBlw0KK+OCiOOBl+OBoCzjgZ/jgaDjgZcNCivjgojjgZfjgaAs44G+44GV44G/DQor44KI44GX44G+44GkLOOBhOOCj+OBig0KK+OCiOOBl+OCguOBqCzjgZvjgY3jgZMNCivjgojjgZfjgoDjgoks44GL44Ga44KEDQor44GE44GX44Gw44GXLOOBquOBiuOBjQ0KK+OCiOOBl+OBrizjgb/jgZrjgbsNCivjgZ/jgYvjga4s44Gm44Gk44KEDQor44KG44Gv44GXLOOBruOCiuOBig0KK+OBiOOBoOOBsuOCjSzjgbLjgo3jga7jgooNCivjga/jgonjgaAs44Gy44KN44KEDQor44Gv44KE44GV44GLLOOBhOOCj+OBig0KK+OBhOOBquOBjOOBjSzjgZfjgZLjgosNCivjgYTjga7jgYbjgYgs44GC44GN44KI44GXDQor44GE44GX44Gv44KJLOOCiOOBl+OBpOOBkA0KK+OBk+OBmOOBvizjgarjgYrjgbLjgZUNCivjgZPjgZnjgY4s44Gf44Gk44GeDQor44GP44G844GfLOOBn+OBi+OBlw0KK+OCguOCiizjga7jgorjgYoNCivjgarjgYvjgbDjgoTjgZcs44GT44GG44GE44GhDQor44Gt44KC44GoLOOBsuOBqOOBlw0KK+OBq+OBruOBv+OChCzjgabjgaTjgYoNCivjgYrjgYzjgo8s44Gh44Gv44KLDQor44GK44Gf44GrLOOChuOBmeOBkQ0KK+OBm+OBjSzjgYvjgaTjgoQNCivjgZfjgbbjgZ/jgass44Gf44Gg44GXDQor44GX44KT44GoLOOBn+OBpOOChA0KK+OBneOBtuOBiCzjgZHjgYTjgZQNCivjgZ/jgYvjga/jgZcs44GX44KH44GTDQor44Gf44GL44GbLOOBv+OBqeOCig0KK+OBqOOCiOOBoCzjgb7jgZXjgobjgY0NCivjgYbjgYjjgaAs44KK44KF44Gb44GEDQor44KE44G+44KC44GoLOOBvuOBleOBjQ0KK+OChOOBvuOBmuOBvyzjgZXjgajjgZcNCivjgojjgZfjgaAs44Gf44GL44GXDQor44GC44GV44GL44GELOOChOOBmeOBsuOBlQ0KK+OBteOBj+OBnyzjgZfjgpPjgZQNCivjgYvjgo/jgZXjgY0s44Gq44KL44G/DQor44Gy44KN44GbLOOBn+OBi+OBlw0KK+OBr+OCiSzjgarjgYrjgbLjgZUNCivjgYvjgZXjga/jgoks44Gf44GL44GXDQor44GK44GW44KPLOOBkeOBhA0KK+OBi+OBqOOBhizjgoHjgZDjgb8NCivjgarjgYvjgoDjgoks44G+44GV44GTDQor44Gf44GQ44GhLOOBj+OBvw0KK+OBguOBoOOBoSzjgaTjgajjgoANCivjgYLjgYvjgZcs44Gy44KN44KG44GNDQor44GC44GN44KE44G+LOOBsuOBqOOBlw0KK+OBguOBiuOBjSzjgZ/jgZHjgZcNCivjgYLjgonjgY0s44G+44G/44GTDQor44GC44GV44GyLOOBsuOCjeOBsuOBpw0KK+OBguOBleOBrizjgZfjgpPjgZ/jgo3jgYYNCivjgYLjgo/jga4s44KE44GZ44KG44GNDQor44GC44KP44GuLOOBsuOCjeOBlw0KK+OBqeOBmCzjgZPjgYbjgZgNCivjganjgZ7jga4s44Gq44KL44Go44GXDQor44G144Gh44GL44G/LOOBi+OBmuOBvw0KK+OBteOBmOOBhCzjgYvjgZrjgYoNCivjgbXjgZjjgYQs44KI44GX44GL44GaDQor44G144GY44GE44GILOOBi+OBjA0KK+OBk+OCjyzjgZvjgaTjgZMNCivjgbXjgZjjgZfjgo0s44GR44GE44GE44GhDQor44G144GY44GfLOOBkeOBhOOBhOOBoQ0KK+OBteOBmOOBnyzjgZvjgYTjgYjjgYQNCivjgbXjgZjjgo/jgoks44Gy44KN44KADQor44G144GP44GgLOOCiuOCh+OBm+OBhA0KK+OBteOBj+OBoCzjgojjgZfjgbLjgZUNCivjgbXjgY/jgaAs44GI44G/DQor44GV44GE44Go44GGLOOBl+OCh+OBmA0KK+OBteOBj+OChOOBvizjgajjgoLjgZ/jgZENCivjgbXjgovjga/jgZ8s44G144G/44Gu44KKDQor44GU44GoLOOBqOOBl+OBsuOBkw0KK+OBr+OCgOOCjSzjgYrjgZXjgoANCivjga/jgZss44GY44KF44KT44GY44KNDQor44Gv44GX44KC44GoLOOBquOBiuOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgZvjgYTjgoQNCivjga/jgaPjgajjgoos44GL44Gk44KNDQor44Gv44KE44GXLOOBkeOCk+OBmA0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaENCivjga/jgoTjgZcs44Gu44G244KEDQor44Gv44KE44GXLOOBl+OCheOBq+OBoQ0KK+OBr+OChOOBlyzjgb7jgZXjgYoNCivjga/jgoTjgZcs44KI44GG44GTDQor44Gy44GzLOOBsuOCjeOChuOBjQ0KK+OBsuOBkOOBvizjgZPjgYbjgZgNCivjgbLjgonjgYQs44Gq44GK44KG44GNDQor44Gy44KJ44GL44KPLOOBn+OBpOOBig0KK+OBsuOCieOBrizjgZHjgpMNCivjgbLjgo3jgarjgYss44GK44GV44G/DQor44G744KK44GQ44GhLOOBmOOCheOBq+OBoQ0KK+OBu+OBleOBiyzjgZPjgYbjgZgNCivjgbvjgZ3jgoQs44Gy44KN44GL44GaDQor44GE44Gh44GELOOBiuOBleOCgA0KK+OBhOOBoeOBi+OCjyzjgZ/jgY/jgbLjgZUNCivjgYTjgZDjgb4s44G+44GV44Gy44KNDQor44GE44GE44GV44GLLOOBmOOCheOBq+OBoQ0KK+OBhOOBi+OCjyzjgZjjgoXjgpMNCivjgYTjgZHjgaAs44GL44Gk44Gy44GTDQor44GE44GR44GgLOOBqOOBl+OBguOBjQ0KK+OBhOOBkeOBjOOBvyzjgb7jgZXjgYvjgZoNCivjgYTjga7jgYbjgYgs44GX44GS44G/44GkDQor44GE44Gu44GG44GILOOCgeOBhA0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgaTjgZANCivjgYTjgZfjgbDjgZcs44Gy44KN44KG44GNDQor44GE44GX44GgLOOBn+OBj+OChA0KK+OBhOOBl+OBvuOCiyzjgbLjgo3jgZ/jgYsNCivjgYTjgZfjgZrjgYss44Gk44Gt44Go44KCDQor44GE44GdLOOBi+OBmuOBsuOBkw0KK+OBhOOBqOOBhizjgb/jga7jgosNCivjgYTjgajjgYYs44Gu44G244GC44GNDQor44GE44Go44GGLOOBleOBqOOBlw0KK+OBhOOBqOOBhizjgZvjgYTjgZgNCivjgYTjgajjgYYs44GX44GS44KG44GNDQor44GE44Go44GGLOOCguOBqOOBsuOCjQ0KK+OBhOOBqOOBhizjgYjjgYTjgYTjgaENCivjgYTjgo/jgZ8s44G+44KG44G/DQor44GL44KK44KELOOBhOOCj+OBig0KK+OBmOOCh+OBjOOBleOBjSzjgYLjgobjgZMNCivjgYvjgYws44GE44GP44GY44KNDQor44GL44GS44KE44G+LOOBvuOCguOCiw0KK+OBi+OBmOOBquOBvyzjgZfjgo0NCivjgYvjgb/jgbLjgonjgZ8s44Gy44GV44GC44GNDQor44GL44Gq44KC44KKLOOBqOOBj+OBmOOCjQ0KK+OBi+OBreOBkyzjgoTjgZnjgbLjgZUNCivjgYvjga3jgZMs44KI44GX44KG44GNDQor44GL44Gr44KPLOOBv+OCjw0KK+OBi+OBleOBvizjgajjgZfjgobjgY0NCivjgYvjgZss44Gy44Gn44GC44GNDQor44GL44GX44KA44KJLOOBsuOBp+OBguOBjQ0KK+OBi+OBn+OBiuOBiyzjgYLjgY3jgbLjgZMNCivjgYvjgajjgYYs44G+44GV44Gy44KNDQor44GL44Go44GGLOOBleOCj+OBkw0KK+OBi+OBqOOBhizjgabjgaTjgoQNCivjgYvjgajjgYYs44KI44GX44G/44GtDQor44GL44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBi+OCj+OBoSzjgZXjgajjgZcNCivjgYvjgo/jgZDjgaEs44Gb44GE44GE44GhDQor44GL44KP44GuLOOBl+OBkuOBig0KK+OBi+OCj+OBl+OBvizjgYvjgZrjgbLjgZUNCivjgY3jgY/jgaEs44Gk44KI44GXDQor44GN44KC44GoLOOBn+OBi+OChuOBjQ0KK+OBjeOCgOOCiSzjgbLjgo3jgobjgY0NCivjgY3jga7jgZfjgZ8s44Gf44Gk44KEDQor44GN44GX44Gv44KJLOOBpuOCi+OBig0KK+OBjeOBl+OBi+OCjyzjgojjgZfjgYoNCivjgY3jgZ8s44GC44GN44KJDQor44GN44Gf44GM44KPLOOBruOCiuOBvuOBlQ0KK+OBjeOBn+OBrizjgbLjgo3jgobjgY0NCivjgY3jgZ/jgoTjgb4s44G144G/44Go44GXDQor44GN44KI44GK44GLLOOBkeOCk+OBmA0KK+OBjeOCiOOBmyzjgZjjgoXjgpPjgZMNCivjgZPjgbDjgoos44GR44GE44GYDQor44GT44Gw44KE44GXLOOBk+OBnw0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgbLjgZMNCivjgZPjgbzjgoos44Gu44G244Gy44GnDQor44GT44GE44KPLOOBkeOBhOOBkw0KK+OBk+OBmOOBvizjgaHjgZXjgagNCivjga/jgZfjgoLjgags44G/44Gk44GKDQor44GT44G/44KE44G+LOOBpuOBpOOBmA0KK+OBk+OCk+OBqSzjgajjgoLjgYLjgY0NCivjgZPjgpPjgaks44KI44GX44Gy44KNDQor44GT44KT44GpLOOBi+OBpOOChA0KK+OBk+OBl+OBi+OCjyzjgabjgaQNCivjgZPjgabjgYzjgo8s44Gk44GQ44GC44GNDQor44GT44KPLOOBsuOBp+OChuOBjQ0KK+OBj+OBvOOBnyzjgorjgYgNCivjgY/jgbzjgZ8s44G/44Gh44Gv44KLDQor44GP44Gp44GGLOOCiuOBiOOBkw0KK+OBj+OBjCzjgZvjgYTjgZMNCivjgoLjgoos44G+44GV44KIDQor44GP44Gr44Gf44GRLOOBpOOBi+OBlQ0KK+OBj+OCieOBi+OBkSzjgZ/jgabjgY0NCivjgY/jgoos44GL44GK44KLDQor44GP44GV44G144GLLOOBk+OBhuOBn+OCjeOBhg0KK+OBj+OCj+OBsOOCiSzjgZ/jgb7jgb8NCivjgb7jgaHjgaAs44Gf44GR44GXDQor44G+44KL44KE44G+LOOBteOBv+OCiA0KK+OBn+OBkeOBhuOBoSzjgZPjgYbjgYTjgaENCivjgb7jgaTjgbAs44Gf44GL44Gy44KNDQor44G+44Gk44Gw44KJLOOBqOOCguOChuOBjQ0KK+OBvuOBpOOBoOOBhOOCiSzjga7jgorjgZMNCivjgb7jgaTjgoLjgags44KI44GZ44GRDQor44G+44Gk44KC44GoLOOBguOBjeOBteOBvw0KK+OBvuOBpOOBquOBjCzjgZHjgpPjgZgNCivjgb7jgaTjgYos44Gu44G244KG44GNDQor44G+44Gk44GKLOOBl+OCh+OBsuOBoQ0KK+OBvuOBpOOBiizjgbLjgo3jgobjgY0NCivjgb/jgY/jgass44Gv44KE44GoDQor44G/44Gq44GM44KPLOOCiOOBl+OBsuOCjQ0KK+OBv+OBquOBjOOCjyzjgobjgY3jgbLjgo0NCivjgb/jga7jgaYs44Gv44GY44KBDQor44G/44GfLOOBsuOCjeOBi+OBmg0KK+OBv+OBqOOCgSzjgb7jgZXjgbLjgagNCivjgb/jgaTjgoTjgb4s44GX44Gu44G2DQor44G/44KE44GhLOOBqOOBiuOCiw0KK+OBv+OChOOBmCzjgbLjgo3jgobjgY0NCivjgb/jgoTjgZjjgb4s44KG44GNDQor44G/44KE44GfLOOBguOBjeOBig0KK+OBv+OChOOBluOBjSzjgYLjgaTjgZcNCivjgb/jgoTjgZbjgY0s44Gf44GR44KNDQor44G/44KE44GW44GoLOOBvuOBjQ0KK+OBv+OChOOBluOCjyzjgojjgorjgZMNCivjgb/jgZ7jgZDjgaEs44KI44GX44GC44GNDQor44G/44Ga44GELOOBv+OBuw0KK+OCguOCk+OBrizjgb7jgZXjgoQNCivjgoLjgoos44Gu44KK44KG44GNDQor44KC44KKLOOBl+OCk+OChA0KK+OCguOCiuOBnyzjgoTjgZnjgZcNCivjgoLjgorjgZ8s44KP44Gf44KLDQor44KC44KK44KE44G+LOOBl+OBkuOCiw0KK+OCgOOCieOBi+OBvyzjgajjgoLjgYLjgY0NCivjgoDjgonjgYvjgb8s44KI44GX44GP44GrDQor44KA44KJ44GL44G/LOOBn+OBkeOBlw0KK+OCgOOCieOBvuOBpCzjgZfjgoXjgYTjgaENCivjgoDjgo3jgZ7jga4s44Gf44GL44G144G/DQor44Gq44GM44G244GhLOOBk+OBhuOBmA0KK+OBquOBjOOBrizjgb/jgaTjgYoNCivjgarjgYzjgZss44GR44GE44GTDQor44Gq44GM44Gf44GrLOOBjeOCiOOBguOBjQ0KK+OBquOBlOOChCzjgb7jgZPjgagNCivjgarjgYvjgYzjgo8s44KI44GX44Gq44KKDQor44Gq44GL44G/44GhLOOBsuOCjeOBjQ0KK+OBquOBi+OCgOOCiSzjgoLjgajjgZMNCivjgarjgYvjgoDjgoks44G+44GV44KI44GXDQor44Gq44GL44GuLOOBiOOBhOOBmA0KK+OBquOBi+OBl+OBvizjgb/jgaTjgbLjgo0NCivjgavjgZfjgaAs44Gu44KK44GZ44G/DQor44Gr44GX44Gv44KJLOOBj+OCi+OBvw0KK+OBq+OBl+OCgOOCiSzjgajjgZfjgYLjgY0NCivjgavjgZfjgYrjgYss44G+44KK44GTDQor44Gu44GQ44GhLOOCiuOCheOBsuOBoQ0KK+OBruOBmyzjgZPjgYbjgYTjgaHjgo0NCivjgYrjgbDjgZ8s44G/44Gu44KLDQor44GK44Gh44GC44GELOOBl+OCk+OBmeOBkQ0KK+OBiuOBoeOBguOBhCzjgbLjgo3jgYLjgY0NCivjgYrjgYzjgo8s44Gy44KN44GXDQor44GK44GM44KPLOOBv+OBpOOCiw0KK+OBiuOBjOOCjyzjgorjgoXjgbLjgaENCivjgYrjgYzjgo8s44GX44G7DQor44GK44GO44GuLOOBsuOCjeOBguOBjQ0KK+OBiuOBkOOCiSzjgYvjgYrjgooNCivjgZPjgpPjgaks44GX44KHDQor44GK44G4LOOBmOOCheOBq+OBoeOCjQ0KK+OBiuOBjOOBjSzjgb7jgZXjga7jgooNCivjgYrjgavjgZcs44Gy44KN44GXDQor44GK44GuLOOBsuOCjeOBruOCig0KK+OBiuOBnyzjgZjjgoXjgpMNCivjgYrjgZfjgo0s44GC44Gk44GoDQor44GK44GfLOOBl+OCk+OChA0KK+OBiuOBn+OBl+OCjSzjgYvjgZrjgbLjgZMNCivjgYrjgaQs44Gu44G844KLDQor44GK44GkLOOBvuOBleOBmuOBvw0KK+OBiuOBsuOCg+OBjizjgobjgYbjgZgNCivjgYrjgbLjgoPjgb4s44GE44GP44GTDQor44GK44GL44KC44GoLOOBsuOBp+OBsuOBkw0KK+OBiuOBi+OChOOBvizjgZ/jgYvjgZcNCivjgYrjgZHjgZ/jgass44G+44GV44GoDQor44GK44GP44KE44G+LOOBn+OBv+OChA0KK+OBiuOBruOBp+OCiSzjgYvjgaTjgajjgZcNCivjgYrjgZbjgo8s44G+44KG44G/DQor44GV44GE44Go44GGLOOBn+OBi+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgoTjgZnjgobjgY0NCivjgZXjgYTjgajjgYYs44G+44GV44G/44GhDQor44GV44GL44GQ44GhLOOBmOOCjQ0KK+OBleOBi+OBquOBiyzjga7jgorjgYLjgY0NCivjgZXjgYvjgavjgo8s44G+44GV44G/44GhDQor44GV44GL44GG44GhLOOBsuOCjeOBlw0KK+OBleOBj+OCieOBhCzjgYvjgZrjgZfjgZINCivjgZXjgY/jgonjgYQs44Gf44GL44GXDQor44GV44GuLOOBsuOBp+OBjQ0KK+OBleOBleOBjSzjgb7jgZXjgYvjgZoNCivjgZXjgZXjgY0s44KB44GQ44G/DQor44GV44GV44GNLOOBiOOBhOOBmA0KK+OBleOBleOBvizjgaHjga/jgosNCivjgZXjgajjgYYs44Gy44KN44G244G/DQor44GV44Go44GGLOOBv+OBpOOCiOOCig0KK+OBleOBqOOBhizjgZ/jgaTjgZMNCivjgZXjgajjgYYs44GP44G/44GTDQor44Gr44GX44G+44GfLOOBsuOBp+OBqOOBlw0KK+OBleOCj+OBoCzjgb/jga7jgosNCivjgZvjgpPjgbAs44GL44Ga44Gy44GnDQor44Gb44GoLOOBpuOCi+OBig0KK+OBl+OBtuOChCzjgZ/jgYvjga7jgbYNCivjgZfjgYQs44Gy44KN44GL44GaDQor44GX44G+44GgLOOCguOBqOOCgA0KK+OBl+OBvuOBoCzjgojjgorjgZMNCivjgYrjgYvjgoLjgags44Go44GX44Gf44GLDQor44GX44Gq44GM44KPLOOBpOOBqOOCgA0KK+OBl+OCk+OBi+OCjyzjgb7jgZXjgobjgY0NCivjgZfjgpPjgY3jgoUs44Gf44GP44KEDQor44GX44Gu44GgLOOBvuOBleOBvw0KK+OBl+OBruOBr+OCiSzjgYjjgooNCivjgYLjgZXjgYvjgo8s44KK44GIDQor44GX44GK44Gv44KJLOOBvuOBleOBi+OBmg0KK+OBl+OCjeOBnyzjgZ/jgZHjgoQNCivjgZnjgY7jgoLjgags44Gy44KN44KG44GNDQor44GZ44GO44KE44G+LOOBn+OBi+OBlw0KK+OBmeOBkOOBoSzjgb/jgo8NCivjgoLjgo3jgajjgb8s44Gm44Gk44GKDQor44GZ44Ga44GNLOOBvuOBleOBsuOBlQ0KK+OBn+OBkOOBoSzjgobjgbLjgaENCivjgZ/jgZDjgaEs44KI44GX44Gu44KKDQor44Gf44Gv44KJLOOChuOBjeOBig0KK+OBn+OBi+OBjizjgb/jgZXjgZMNCivjgZ/jgYvjga/jgZcs44GT44G444GEDQor44Gf44GL44GELOOBv+OBiA0KK+OBn+OBi+OChOOBvizjgb7jgZXjgajjgZcNCivjgZ/jgZEs44GV44Gh44GIDQor44Gf44GR44Gw44KE44GXLOOBsuOBleOChA0KK+OBn+OBkeOBi+OCjyzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYbjgaEs44Gm44KL44GIDQor44KP44Gf44Gq44G5LOOBm+OBhOOBhOOBoQ0KK+OBn+OBkeOBhuOBoSzjgYvjgYrjgosNCivjgZ/jgb/jgoQs44G+44GV44GoDQor44Gf44KA44KJLOOBi+OBpOOBsuOCjQ0KK+OBn+OBquOBuSzjgYvjgZrjgbLjgacNCivjgZ/jgarjgYss44GN44KI44Gf44GLDQor44Gf44Gq44GLLOOBruOBtuOBkw0KK+OBn+OBquOBiyzjga/jgovjgZMNCivjgZ/jgavjgZDjgaEs44G+44GV44G144G/DQor44Gf44Gr44GQ44GhLOOBguOBjeOBig0KK+OBn+OBq+OCgOOCiSzjgobjgYbjgZgNCivjgZ/jga7jgYbjgYgs44Gy44KN44KG44GNDQor44Gf44KL44GV44KPLOOCiOOBl+OBig0KK+OBn+OBl+OCjSzjgYvjgZrjgYoNCivjgabjgonjgaAs44GR44KT44GYDQor44Go44GMLOOBi+OBmuOBkw0KK+OBqOOBjOOBlyzjgarjgYrjgY0NCivjgajjgZQs44KK44KF44GYDQor44Go44GP44Gq44GMLOOBmOOCheOCk+OBkw0KK+OBqOOCguOBrizjgYvjgbvjgosNCivjgajjgojjgaAs44GT44GG44GYDQor44Gk44Gh44KELOOBsuOBp+OBjQ0KK+OBpOOBi+OBr+OCiSzjgb7jgZXjgYvjgZoNCivjgYbjgonjgZXjgY0s44Gy44KN44GXDQor44KP44GgLOOBvuOBleOBsuOCjQ0KK+OCj+OBoCzjgZHjgYTjgZMNCivjgo/jgZ/jgarjgbks44Gu44G244GTDQor44KP44Gf44Gq44G5LOOBpOOCiOOBlw0KK+OChOOBjuOBrOOBvizjgYLjgaTjgZcNCivjgoTjgb7jgaAs44GL44Ga44Gy44KNDQor44KE44G+44GgLOOBn+OBpOOBig0KK+OChOOBvuOBoCzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgoLjgags44GC44GN44GTDQor44KE44G+44KC44GoLOOBqOOBl+OBr+OCiw0KK+OChOOBvuOCguOBqCzjgobjgY3jgbLjgZMNCivjgoTjgb7jgoLjgags44Gy44Gn44G/44GtDQor44KE44G+44Gq44GLLOOBl+OBkuOBig0KK+OChOOBvuOBquOBiyzjgZfjgpPjgoQNCivjgoTjgb7jgZfjgZ8s44GC44KE44GTDQor44Gy44GQ44GhLOOBi+OBmuOBvw0KK+OChOOBvuOBluOBjSzjgojjgZjjgo0NCivjgoTjgarjgY4s44Gy44KN44GC44GNDQor44KE44GZ44GgLOOBruOBtuOBsuOCjQ0KK+OChOOBmeOBiCzjgobjgYbjgZgNCivjgojjgZPjgYgs44Go44KC44KE44GZDQor44KI44GT44KE44G+LOOCjOOBhOOBkw0KK+OCiOOBreOBr+OCiSzjgb7jgZXjgajjgZcNCivjgojjga3jgb/jgaQs44G144G/44GKDQor44KI44KK44G+44GkLOOBkeOBhOOBkw0KK+OCiOOBl+OBoCzjgajjgZfjgYLjgY0NCivjgojjgZfjga4s44Gy44GV44GXDQor44KI44GX44Gf44GNLOOBkeOBhOOBmA0KK+OChuOBi+OCjyzjgb7jgZXjgYLjgY0NCivjgobjgoos44Gy44Gn44GoDQor44KC44KKLOOBn+OBpOOChA0KK+OBleOBleOBjSzjgobjgY3jgbLjgo0NCivjgZfjgonjga/jgb4s44Gh44Gy44KNDQor44Gm44KT44Gx44GPLOOBi+OBiuOCiw0KK+OBhuOBoeOBoCzjgb7jgZXjgbLjgo0NCivjgoTjgb7jgYbjgoks44GY44KF44KT44GYDQor44G+44Gk44GQ44G+LOOBteOBv+OBrg0KK+OBguOBuSzjgbLjgo3jgZcNCivjgYLjgbks44Gu44G244KG44GNDQor44GC44G5LOOBqOOBl+OChA0KK+OBguOBuSzjga7jgbbjgYLjgY0NCivjgYLjgaDjgaEs44KK44GI44GTDQor44GC44GE44Gv44KJLOOBk+OBhuOBhOOBoQ0KK+OBguOBmOOBvizjgb7jgZPjgagNCivjgYLjgYvjgZXjgYss44Go44KC44GTDQor44GC44GN44KC44GoLOOBteOBv+OBsuOCjQ0KK+OBguOBjeOChOOBvizjgb/jgaTjgbLjgo0NCivjgYLjgY3jgoTjgb4s44GK44GV44KADQor44GC44GP44GtLOOBmOOCheOCk+OChA0KK+OBguOBvuOBrizjgajjgoLjgYoNCivjgYLjgb7jga4s44Gf44GL44Gy44GVDQor44GC44KB44G/44KELOOBi+OBpOOBsuOBkw0KK+OBguOCk+OBqeOBhizjgZ/jgZHjgbLjgo0NCivjgYLjgpPjganjgYYs44KG44Gy44Gh44KNDQor44GC44KT44Gp44GGLOOBquOBiuOChA0KK+OBguOCk+OBmOOBjSzjgajjgosNCivjgYLjgpPjgbrjgYTjgZgs44G144G/44GTDQor44GC44GK44GNLOOBsuOCjeOChuOBjQ0KK+OBguOBiuOBjSzjgYvjgaTjgb8NCivjgYLjgYrjgY0s44GL44Ga44GKDQor44GC44GK44GNLOOBquOBiuOBguOBjQ0KK+OBguOBiuOBjSzjgarjgarjgYoNCivjga/jgonjgZfjgb4s44Gk44KI44GXDQor44GC44GK44GNLOOChOOBmeOBguOBjQ0KK+OBguOBiuOBjSzjgajjgYrjgosNCivjgYLjgYrjgoTjgY4s44GT44GeDQor44GC44GK44KE44G+LOOBn+OBi+OBlw0KK+OBguOBiuOChOOBvizjgZ/jgaTjgoQNCivjgYLjgonjgYQs44Gy44KN44GXDQor44GC44KJ44GNLOOBvuOBquOBtg0KK+OBguOCieOBjSzjgaHjgYLjgY0NCivjgYLjgonjgZ8s44G+44GV44Gk44GQDQor44GC44KJ44KELOOBv+OBjQ0KK+OBk+OBsOOChOOBi+OCjyzjgb/jgo8NCivjgYLjgorjgZ8s44GL44Ga44GKDQor44GC44GV44GwLOOChuOBhuOBkw0KK+OBguOBleOBiOOBoCzjgZfjgoXjgavjgaENCivjgYLjgZXjgYss44KI44GX44GTDQor44GC44GV44GP44KJLOOBl+OBkuOBr+OCiw0KK+OBguOBleOBrizjgobjgY3jgZMNCivjgYLjgZXjga4s44GY44KF44KTDQor44GC44GX44G5LOOBqOOBl+OBguOBjQ0KK+OBguOCj+OBv+OChCzjgorjgYsNCivjgYLjgZbjgb8s44Gk44Go44KADQor44GC44Gc44KE44Gq44GOLOOBquOBiuOBsuOBlQ0KK+OBguOBmuOBvizjgZ/jgYvjgobjgY0NCivjgYLjgZrjgb4s44KI44Gy44GhDQor44GC44Ga44G+LOOBkeOBhOOBmeOBkQ0KK+OBsOOBsCzjgZPjgYbjgYTjgaENCivjgbDjgbAs44G+44GT44GoDQor44Gw44GwLOOBi+OBpOOBmA0KK+OBsOOBquOBiyzjgb/jgY0NCivjgZXjgZ/jgZEs44GX44KT44GE44GhDQor44Gh44GwLOOChOOBmeOBsuOCjQ0KK+OBoeOBjuOCiSzjgarjgovjgbLjgagNCivjgaHjga/jgoks44KI44GX44KG44GNDQor44Gh44GL44GELOOBquOCgOOBmQ0KK+OBoeOCh+OCkyzjgajjgoLjgaHjgYsNCivjgaHjgoXjgb4s44Gf44Gk44GKDQor44Gg44GELOOBl+OCheOBmA0KK+OBoOOBhOOBiizjgajjgoLjgYLjgY0NCivjgaDjgaYs44G+44GV44Gy44GTDQor44Gn44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBp+OCjyzjgaTjgajjgoANCivjganjgYQs44Gy44KN44G/DQor44GI44Gz44GV44KPLOOCiuOBiA0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgYjjgYTjgoLjgoos44Gq44GK44KG44GNDQor44GI44KT44GpLOOCiOOBl+OBi+OBmg0KK+OBiOOCk+OBqSzjgYvjgaTjgobjgY0NCivjgYjjga7jgoLjgags44Gg44GE44GZ44GRDQor44G144GY44GELOOBi+OBmuOChA0KK+OBteOBmOOBhCzjgZHjgYTjgZMNCivjgbXjgZjjgYQs44KC44Go44Gv44KLDQor44G144GY44GELOOBruOBtuOBsuOBkw0KK+OBteOBmOOBhCzjgZ/jgYvjgbXjgb8NCivjgbXjgZjjgYvjgo8s44GC44Gk44GXDQor44G144GY44KC44KKLOOBguOBpOOBkw0KK+OBguOBiuOBjSzjgZ/jgZHjgZcNCivjgbXjgZjjgoLjgags44G+44GV44Gy44KNDQor44G144GY44GK44GLLOOBsuOBp+OBjQ0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgbXjgZjjgZ8s44GT44GG44GYDQor44G144GL44GKLOOBiOOBv+OBkw0KK+OBteOBj+OBoCzjgZ/jgYTjgZ4NCivjgbXjgY/jgaAs44Gy44KN44G/44GkDQor44G144GP44GELOOBn+OBi+OBkw0KK+OBteOBj+OBhCzjga/jgovjgb8NCivjgbXjgY/jgoLjgags44Gq44GK44GNDQor44G144GP44GX44G+LOOBn+OBi+OBig0KK+OBteOBj+OBl+OBvizjgZHjgYTjgZMNCivjgbLjga4s44Gy44KN44GL44GaDQor44G144GP44GW44KPLOOBkeOCk+OBhOOBoeOCjQ0KK+OBteOBj+OBluOCjyzjgZ/jgaTjga7jgooNCivjgbXjgarjgaAs44G/44Gk44KI44GXDQor44G144KL44Gg44GmLOOBqOOBl+OBguOBjQ0KK+OBteOCi+OChCzjgZfjga7jgbYNCivjgbXjgZ/jgoDjgoks44GC44GN44GTDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBlOOBqCzjgarjgYrjgoQNCivjgZTjgags44Gm44Gk44KNDQor44GU44GoLOOChOOBmeOBsuOBlQ0KK+OBlOOBqCzjgoDjgaTjgYoNCivjga/jgbAs44GX44KT44GE44GhDQor44Gv44Gh44KE44G+LOOBi+OBpOOBsuOBkw0KK+OBr+OBjuOCj+OCiSzjgbLjgo3jgZcNCivjga/jgb7jgbks44Gy44Gn44GKDQor44Gv44G+44GgLOOBk+OBhuOBmA0KK+OBr+OBvuOBoCzjgbLjgafjgZ/jgYsNCivjgb7jgYjjgYrjgYss44Gy44Gn44Gu44G2DQor44Gv44Gq44G/LOOBruOBtuOBkw0KK+OBr+OBquOBiuOBiyzjgZXjgaENCivjgZvjgZbjgYQs44GN44KH44GTDQor44Gv44KJLOOBv+OBjeOBkw0KK+OBleOBqOOBhizjgobjgYbjgZMNCivjga/jgoks44GR44GE44GTDQor44Gv44KJ44GgLOOBkeOBhOOBmeOBkQ0KK+OBr+OCieOBoCzjgb/jgY3jgoQNCivjga/jgonjgaAs44KC44Go44Gy44GVDQor44Gv44KJ44GgLOOBl+OBkuOBjQ0KK+OBr+OCieOBoCzjgYvjgZrjgoQNCivjga/jgorjgb4s44GL44GE44Gh44KN44GGDQor44G744KT44G+LOOCiOOBhuOBkw0KK+OBr+OCi+OChOOBvizjgojjgYbjgZMNCivjga/jgZss44G+44GV44G/DQor44Gv44Gb44GM44KPLOOBl+OCkw0KK+OBr+OBm+OBjOOCjyzjgZ/jgYvjgobjgY0NCivjga/jgZvjgYzjgo8s44KI44GX44G/DQor44Gv44Gb44GM44KPLOOBn+OBi+OBsuOBpw0KK+OBr+OBl+OBkOOBoSzjgbLjgajjgZcNCivjga/jgZfjgoLjgags44KE44GZ44Gy44GnDQor44Gv44GX44KC44GoLOOBguOBjeOBkw0KK+OBr+OBl+OBmuOCgSzjgarjgYrjgY0NCivjga/jgZfjgZrjgoEs44KK44KH44GYDQor44Gv44GX44Ga44KBLOOBm+OBhOOBlA0KK+OBr+OBnyzjgYLjgaTjgZcNCivjga/jgZ/jga4s44Gq44Gk44G/DQor44Gv44Gf44GuLOOBiOOBhOOBhOOBoQ0KK+OBr+OBqOOCiizjgYvjgZrjgbLjgZMNCivjga/jgaPjgajjgoos44G+44GV44GC44GNDQor44Gv44Gj44Go44KKLOOBv+OBpOOBruOCig0KK+OBr+OBo+OBqOOCiizjgarjgYrjgY0NCivjga/jgaPjgajjgoos44Gu44G244GC44GNDQor44Gv44Gj44Go44KKLOOBl+OBkuOCiw0KK+OBr+OBo+OBqOOCiizjgojjgbLjgaENCivjga/jgaPjgajjgoos44Gf44Gk44GKDQor44Gv44KE44GL44KPLOOChOOCiOOBhA0KK+OBr+OChOOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgoTjgb8s44GC44GN44Gy44GTDQor44Gv44KE44GXLOOBsuOBqOOBlw0KK+OBr+OChOOBlyzjgYvjgaTjgZMNCivjga/jgoTjgZcs44GL44Ga44KEDQor44Gv44KE44GXLOOBk+OBhuOBn+OCjeOBhg0KK+OBr+OChOOBlyzjgb/jgo8NCivjgZXjgZXjgZ/jgass44GX44KF44KT44GZ44GRDQor44Gv44KE44GXLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBluOBvizjgaHjgYvjgokNCivjgbjjgpPjgb8s44GL44Ga44Go44KCDQor44Gy44GzLOOBquOBiuOBjQ0KK+OBsuOBoOOBiyzjgZ/jgZHjgZcNCivjgbLjgaDjgYss44KI44GE44GhDQor44Gy44Gg44GLLOOBguOBjeOBsuOBkw0KK+OBsuOBiOOBoCzjgobjgY0NCivjgbLjgYzjgY0s44GV44Go44GXDQor44Gy44GM44GXLOOBvuOBleOBjQ0KK+OBsuOBhOOBqeOCgSzjgo/jgZ/jgosNCivjgbLjgZjjgY/jgo0s44GR44GE44GTDQor44G144GP44GELOOBquOBiuOBvw0KK+OBsuOBvizjgZnjgb/jgbLjgagNCivjgbLjgYrjgY0s44Gy44Gn44GC44GNDQor44Gy44KJ44GELOOChuOBv+OBkw0KK+OBv+OBjSzjgb7jgZXjgZ/jgYsNCivjgbLjgonjga4s44G+44KG44G/DQor44Gy44KJ44GuLOOChOOBmeOBsuOCjQ0KK+OBsuOCieOBnyzjgYLjgY3jgokNCivjgbLjgonjgaTjgYss44G+44GV44Gu44KKDQor44G744GgLOOBm+OBhOOBhOOBoQ0KK+OBsuOCieOChOOBvizjgYvjgarjgZMNCivjgbLjgo3jgbks44Go44KC44G/DQor44Gy44KN44GELOOBqOOBkw0KK+OBsuOCjeOBleOCjyzjgobjgYbjgZMNCivjgbLjgo3jgZXjgo8s44Gf44KN44GGDQor44Gy44KN44GZ44GILOOBv+OBoeOBi+OBmg0KK+OBsuOCjeOBnyzjgZfjgofjgZgNCivjga/jgoTjgb4s44KI44GX44Gy44GVDQor44Gy44KN44KP44Gf44KKLOOBsuOCjeOBv+OBoQ0KK+OBsuOBleOCguOBqCzjgZvjgYTjgYTjgaENCivjgbLjgZXjga4s44GE44GV44GKDQor44Gy44GV44KG44GNLOOCiOOBl+OBjQ0KK+OBsuOBl+OBoCzjgajjgoHjgYQNCivjgbLjgZfjgZ/jgass44G+44KKDQor44KP44GgLOOBvuOBleOChuOBjQ0KK+OBsuOChOOBvizjgbXjgY3jgogNCivjgYLjgorjgY/jgoks44GL44Ga44Gy44KNDQor44G744KT44GgLOOBl+OCjQ0KK+OBu+OCk+OBoCzjgbXjgb/jgYvjgZoNCivjgbvjgpPjgZQs44Gy44KN44GNDQor44G744KT44G+LOOBquOBiuOBkw0KK+OBu+OCk+OBvizjgY3jgY/jgb8NCivjgb7jgaTjgoLjgags44G+44GV44Gy44KNDQor44G744KKLOOBvuOBleOBsuOCjQ0KK+OBu+OCiizjgarjgYrjgZMNCivjgbvjgorjgbks44GY44KF44KT44GTDQor44G744KK44GILOOBiuOBleOCgA0KK+OBu+OCiuOBiCzjgobjgYbjgZMNCivjgbvjgorjgYgs44GV44KG44KKDQor44G744KK44GG44GhLOOBv+OBi+OBkw0KK+OBu+OBl+OBsCzjgojjgZfjgYLjgY0NCivjgbvjgZfjgYvjgo8s44KG44GL44KKDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBu+OBl+OBqizjgoTjgZnjgZcNCivjgbvjgoos44G144G/44GIDQor44G744GX44GuLOOBruOBtuOBsuOBkw0KK+OBu+OBneOBoCzjgobjgZ/jgYsNCivjgbvjgaPjgZ8s44G/44Gu44KLDQor44G744Gh44GpLOOBkeOBhOOBmeOBkQ0KK+OBhOOBtuOBiyzjgb7jgZXjgagNCivjgYTjgaHjgYvjgo8s44KG44Gy44GhDQor44GE44Gh44GL44KPLOOBguOBjeOBruOBtg0KK+OBhOOBoeOBvuOBmSzjgZHjgpPjgZ8NCivjgYTjgaHjga7jgZss44G+44Gq44G2DQor44GE44GnLOOBguOBjeOBqA0KK+OBhOOBjOOCieOBlyzjgajjgZfjgobjgY0NCivjgYTjgYzjgZ8s44GC44GN44Gu44KKDQor44GE44GELOOBvuOBleOBsuOBkw0KK+OBhOOBhOOBoCzjgZ/jgaDjgZcNCivjgYTjgYTjgaAs44KI44GX44G144G/DQor44GE44GE44GgLOOBqOOBiuOCiw0KK+OBhOOBhOOBrizjgbLjgafjgYoNCivjgYTjgYTjgojjgoos44Gq44GK44GNDQor44GE44GE44Ga44GLLOOBk+OBhuOBhOOBoQ0KK+OBhOOBi+OCi+OBjizjga7jgorjgobjgY0NCivjgYTjgYvjgo8s44Gf44GL44GXDQor44GE44GR44GhLOOBruOBtuOBig0KK+OBhOOBkeOBoCzjgZXjgYrjgooNCivjgYTjgZHjgaAs44Gf44GL44KEDQor44GE44GR44GgLOOCiOOBl+OBpuOCiw0KK+OBhOOBkeOBoCzjgbLjgajjgZcNCivjgYTjgZHjgYzjgb8s44G+44KK44GTDQor44GE44GR44GY44KKLOOBpOOBqOOCgA0KK+OBhOOBkeOBn+OBjSzjgYvjgaTjgb8NCivjgYTjgY/jgoLjgags44G+44GV44Gy44GTDQor44GE44G+44GELOOBvuOBleOBqA0KK+OBhOOBvuOBhCzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgbvjgZ3jgYQs44KG44KK44GTDQor44GE44G+44GELOOBvuOBleOCiOOBlw0KK+OBhOOBvuOBq+OBlyzjgb7jgZXjgobjgY0NCivjgYTjgarjgaAs44GX44KT44GYDQor44GE44Gq44GM44GNLOOBhOOBoeOCjeOBhg0KK+OBhOOBquOBkizjgb/jgaHjga/jgosNCivjga/jgZbjgb4s44G+44GT44GoDQor44GE44GuLOOBi+OBpOOChA0KK+OBhOOBruOBvuOBnyzjgZHjgYTjgZnjgZENCivjgYTjga7jgYbjgYgs44G+44G/DQor44KE44GZ44GL44KPLOOBk+OBhuOBhOOBoeOCjQ0KK+OBr+OCiyzjgoLjgajjga/jgosNCivjgYTjga7jgYbjgYgs44Gf44GL44GTDQor44GE44Gu44GG44GILOOBn+OBi+OChuOBjQ0KK+OBhOOBruOBhuOBiCzjgajjgoLjgbLjgo0NCivjgYTjga7jgYbjgYgs44GL44Ga44KEDQor44GE44GK44GNLOOBj+OBq+OBiuOBvw0KK+OBhOOCiuOBiCzjgZfjgpMNCivjgYTjgZXjgYss44Gf44GR44GXDQor44GE44GV44GLLOOCjOOBhOOBkw0KK+OBiuOCguOCiizjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgZfjgbDjgZcs44GV44G244KNDQor44GE44GX44GgLOOBn+OBkeOBlw0KK+OBhOOBl+OBoCzjga/jgZjjgoENCivjgYTjgZfjga/jgoks44G+44Gq44G2DQor44GE44GX44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBsuOCieOBqCzjgbLjgZXjgoLjgagNCivjgYTjgZfjgYQs44GY44KF44KTDQor44GE44GX44GELOOBkeOBhOOBn+OCjeOBhg0KK+OBhOOBl+OBhCzjgorjgYgNCivjgYTjgZfjgYQs44Gf44GL44Gy44GoDQor44GE44GX44GELOOBqOOBiuOCiw0KK+OBhOOBl+OBhCzjgabjgovjgYoNCivjga/jga3jgYTjgZcs44Gk44Go44KADQor44GE44GX44GELOOBteOBv+OBruOCig0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgbLjgZUNCivjgYTjgZfjgYvjgo8s44G+44GV44G/44GhDQor44GE44GX44GL44KPLOOBruOBtuOChuOBjQ0KK+OBhOOBl+OBi+OCjyzjgajjgYrjgosNCivjgYTjgZfjgYvjgo8s44KP44Gf44KLDQor44GE44GX44GK44GLLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBl+OBpOOBiyzjgb7jgarjgbYNCivjgYTjgZfjgo/jgZ8s44GR44GE44GE44GhDQor44GE44GX44GW44GLLOOBhuOCieOCiQ0KK+OBhOOBl+OBluOBiyzjgojjgZfjgagNCivjgYTjgZfjgZbjgY0s44Gv44KL44GKDQor44GE44GX44Ga44GNLOOBsuOBp+OBig0KK+OBhOOBnSzjgZHjgYTjgZjjgo0NCivjgYTjgZ3jgYzjgYQs44G/44GN44GKDQor44GE44Gf44GwLOOBguOBpOOBlw0KK+OBhOOBqOOBhizjga/jgovjgYoNCivjgYTjgajjgYYs44GR44GE44GYDQor44GE44Go44GGLOOBvuOBleOBkw0KK+OBhOOBqOOBhizjgZfjgpPjgZnjgZENCivjgYTjgajjgYYs44KE44GZ44GXDQor44GE44Go44GGLOOCiOOBhuOBkw0KK+OBsuOBoOOBiyzjgojjgZnjgZENCivjgYTjgajjgYYs44KI44GX44Gy44GTDQor44GE44Go44GGLOOChuOBiw0KK+OBq+OBlyzjga7jgorjgZMNCivjgYTjgo/jgaDjgows44KI44GX44KG44GNDQor44GE44KP44Gv44GXLOOBqOOBl+OChuOBjQ0KK+OBhOOCj+OBjSzjgYLjgorjgbLjgo0NCivjgYTjgo/jgoLjgags44GT44GG44GYDQor44GE44KP44GV44GNLOOBiOOBhOOBhOOBoQ0KK+OBsuOCieOBpOOBiyzjgZPjgYbjgZgNCivjgYTjgo/jgZXjgY0s44Gq44GK44GoDQor44GE44KP44GV44GNLOOBl+OBkuOBsuOBqA0KK+OBhOOCj+OBleOBjSzjgobjgYbjgZMNCivjgZjjgpPjgZAs44KG44GG44GYDQor44GE44KP44GX44GSLOOBhOOBruOCig0KK+OBhOOCj+OBnyzjgb7jgZXjgbLjgo0NCivjgZjjgpPjgZAs44G+44GV44Gy44KNDQor44GY44KH44GULOOBsOOCkw0KK+OBi+OBjCzjgZXjgajjgZcNCivjgYvjgYzjgbYs44GC44Gk44GXDQor44GL44GO44KE44G+LOOBsuOBp+OBpOOBkA0KK+OBi+OBhCzjgb7jgZXjgbLjgo0NCivjgYvjgYTjgaAs44KG44GNDQor44GL44GE44GgLOOBl+OCk+OBhOOBoQ0KK+OBi+OBvuOBoSzjgojjgZfjga7jgooNCivjgYvjgb7jgaAs44KG44GG44GTDQor44GL44G+44G744KKLOOBv+OBmuOBuw0KK+OBi+OBvuOBnyzjgojjgZfjga7jgooNCivjgYvjgoHjgaAs44Gu44G244GL44GaDQor44GL44KB44GELOOBsuOCjeOBlw0KK+OBi+OBv+OBrizjgbLjgo3jgobjgY0NCivjgYvjgb/jga4s44G+44GV44KG44GNDQor44GL44G/44Go44GuLOOBsuOCjeOChuOBjQ0KK+OBi+OBv+OChCzjgZXjgajjgZMNCivjgYvjgb/jgoQs44G+44GT44GoDQor44GL44G/44KE44G+LOOBsuOCjeOBlw0KK+OBi+OCguOCkyzjgojjgZfjga7jgooNCivjgYvjgoLjgpMs44KE44GZ44GL44GaDQor44GL44KTLOOBi+OBpOOChA0KK+OBi+OBquOBhCzjgZfjgpPjgZjjgo0NCivjgYvjgarjgYQs44Gy44Gn44GKDQor44GL44Gq44GYLOOChuOBng0KK+OBi+OBquOBiuOBiyzjga7jgorjgobjgY0NCivjgYvjgarjgZbjgo8s44Gu44KK44G+44GVDQor44GL44KT44G5LOOBsuOCjeOChuOBjQ0KK+OBi+OCk+OBoCzjgb7jgZXjgZMNCivjgYvjgpPjgaAs44Go44KC44Gy44GTDQor44GL44Gt44GNLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OBreOBjeOCiCzjgb7jgobjgb8NCivjgYvjga3jgZMs44G144G/44Gy44GTDQor44GL44Gt44GX44GfLOOBn+OBkeOBlw0KK+OBi+OBreOChOOBmSzjgbLjgajjgZcNCivjgYvjga4s44KK44KF44GYDQor44GL44GuLOOBruOBtuOChuOBjQ0KK+OBi+OCk+OBmuOBhCzjgaHjgYLjgY0NCivjgYvjgZXjga/jgoks44GR44KT44GODQor44GL44GV44Gv44KJLOOBsuOBp+OBjQ0KK+OBi+OBleOBhCzjgYjjgYTjgZ/jgo3jgYYNCivjgYvjgZXjgb7jgaQs44Go44KC44Gu44KKDQor44GL44GV44KCLOOBruOCiuOBkw0KK+OBn+OBvuOBn+OBqyzjgZnjgb/jgZMNCivjgYvjgZfjgo/jgY4s44G+44GV44KG44GNDQor44GL44GX44KP44GQ44KJLOOBn+OBv+OBig0KK+OBi+OBn+OBoCzjgYvjgaTjgbLjgZUNCivjgYvjgZ/jgYrjgYss44GV44GK44KKDQor44G744GXLOOChOOBmeOBn+OBiw0KK+OBi+OBn+OBiuOBiyzjgaHjgYgNCivjgYvjgajjgYYs44GI44GE44GZ44GRDQor44GL44Go44GGLOOBsuOCjeOBqA0KK+OBi+OBqOOBhizjgbLjgo3jgobjgY0NCivjgYvjgajjgYYs44GL44Ga44Gy44KNDQor44GL44Go44GGLOOBquOBiuOChA0KK+OBi+OBqOOBhizjgZfjgpPjgZgNCivjgYvjgajjgYYs44Gf44GR44GXDQor44GL44Go44GGLOOBn+OBv+OChuOBjQ0KK+OBi+OBqOOBhizjgarjgarjgZMNCivjgYvjgajjga4s44Gy44Gn44Gy44GVDQor44GL44Gk44KA44KJLOOBiOOBhOOBhOOBoQ0KK+OBi+OCj+OBsOOBnyzjgY/jgavjgajjgZcNCivjgYvjgo/jgZTjgYgs44GR44KT44GE44Gh44KNDQor44GL44KP44GQ44GhLOOBl+OBvg0KK+OBi+OCj+OBr+OCiSzjgobjgorjgb8NCivjgYvjgZfjgoDjgoks44Gy44Gn44KG44GNDQor44GL44KP44GELOOBleOBoeOBkw0KK+OBi+OCj+OBhCzjgarjgYrjgY0NCivjgYvjgo/jgoLjgags44Gy44KN44GoDQor44GL44KP44KA44KJLOOBl+OCheOBmA0KK+OBi+OCj+OCgOOCiSzjgbLjgo3jgY0NCivjgYvjgo/jgaos44KE44GZ44KG44GNDQor44GL44KP44GqLOOCguOCiuOBsuOCjQ0KK+OBi+OCj+OBquOBvyzjgZfjgpPjgYTjgaENCivjgYvjgo/jga4s44KK44KH44GfDQor44GL44KP44GbLOOBkeOBhOOBkw0KK+OBr+OCieOBoCzjgabjgovjgbLjgZMNCivjgYvjgo/jgZfjgb4s44GY44KF44KT44GTDQor44GL44GW44G/LOOBv+OBoeOChA0KK+OBi+OBmuOBleOCjyzjgY3jgojjgZcNCivjgY3jgbDjgoTjgZcs44Gy44Gn44GNDQor44GN44GgLOOBhOOBoeOCjeOBhg0KK+OBjeOBr+OCiSzjgYLjgY3jgokNCivjgY3jgY/jgaEs44GT44GG44GYDQor44GN44GP44GhLOOBvuOBmeOBvw0KK+OBleOBhOOBqOOBhizjgobjgYbjgZMNCivjgY3jgY/jgYQs44Gq44GK44G/DQor44GN44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBjeOCgOOCiSzjgb7jgarjgbYNCivjgY3jgoDjgoks44GV44Go44KLDQor44GN44KA44KJLOOBl+OCheOBmA0KK+OBjeOCgOOCiSzjgobjgY3jgbLjgagNCivjgY3jgoDjgoks44G+44GV44GL44GaDQor44GN44GuLOOBsuOBp+OBsuOBkw0KK+OBjeOCiuOBrizjgZfjgpPjgZgNCivjgY3jgZXjgazjgY0s44GY44KF44Gr44Gh44KNDQor44GN44GXLOOBl+OCheOBkw0KK+OBjeOBlyzjga7jgbbjgZMNCivjgY3jgZfjgaAs44Gq44GK44GoDQor44GN44GX44GL44KPLOOChOOBmeOBsuOCjQ0KK+OBsuOCieOBpizjgobjgbLjgaENCivjgY3jgZfjgarjgb8s44Gf44GR44GXDQor44GN44GdLOOCiOOBl+OBsuOBkw0KK+OBjeOBnyzjgbLjgo3jgZcNCivjgY3jgZ/jgYzjgo8s44GE44Gh44KN44GGDQor44GN44Gf44GY44G+LOOBkeOCk+OBmA0KK+OBjeOBn+OBmOOBvizjgaTjgojjgZcNCivjgY3jgZ/jgoDjgoks44KI44GG44GTDQor44GN44Gf44GuLOOBruOBtuOChuOBjQ0KK+OBjeOBn+OBluOBjSzjgaTjgojjgZcNCivjgY3jgZ/jgZbjgo8s44Go44GX44Gk44GQDQor44GN44KI44Gv44KJLOOBn+OBi+OBsuOBlQ0KK+OBr+OBl+OCguOBqCzjga/jgovjgb8NCivjga7jgZbjgY0s44GL44Ga44G+44GVDQor44GT44Gw44KE44GXLOOBi+OBmuOChA0KK+OBk+OBsOOChOOBlyzjgb7jgZPjgagNCivjgZPjgbDjgoTjgZcs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZXjgajjgZcNCivjgZPjgbDjgoTjgZcs44GX44KTDQor44GT44Gw44KE44GXLOOBl+OCk+OBmA0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgb7jgZUNCivjgZPjgbDjgoTjgZcs44KI44GX44GKDQor44GT44Gw44KE44GXLOOBsuOBp+OBguOBjQ0KK+OBk+OBoSzjgarjgYrjgb8NCivjgZPjgaDjgb4s44Gy44KN44KG44GNDQor44GT44GMLOOBm+OBhOOBiw0KK+OBqOOBqSzjga7jgorjgZMNCivjgZPjga/jgoks44Go44GX44KG44GNDQor44GT44GyLOOBn+OBoOOBlw0KK+OBk+OBrizjgZ/jgaTjgZcNCivjgZPjgYTjgZEs44Gk44Go44KADQor44GT44GE44KPLOOBiuOBleOCgA0KK+OBk+OBhOOBmuOBvyzjgbXjgb/jgY3jgogNCivjgZPjgZjjgYss44G144G/44GKDQor44GT44GY44G+LOOBvuOBleOChuOBjQ0KK+OBk+OBmOOBvizjgarjgYrjgY0NCivjgZPjgZjjgb4s44Gf44GL44Gv44KLDQor44GT44GY44G+LOOBkeOCk+OBmA0KK+OBk+OBvuOBpOOBsOOCiSzjgYLjgaTjgZcNCivjgZPjgb/jgoQs44GI44GE44GYDQor44GT44KC44GgLOOBleOBoeOBkw0KK+OBk+OCgOOCjSzjgZfjgofjgZgNCivjgZPjgpPjgaks44Go44KC44Gy44KNDQor44GT44KT44GpLOOChuOBjQ0KK+OBk+OCk+OBqSzjgoTjgZnjgbLjgo0NCivjgZPjgZXjgZEs44GC44GN44Gy44KNDQor44GT44GbLOOBl+OCheOBsuOBoQ0KK+OBk+OBmeOBjizjgarjgYrjgZnjgb8NCivjgZPjgZrjgYss44Gv44KL44G/DQor44GP44G8LOOBsuOCjeOBteOBvw0KK+OBj+OBvCzjgajjgYrjgosNCivjgY/jgbws44Go44KC44KG44GNDQor44GP44G8LOOBl+OCheOBlA0KK+OBj+OBvOOBmOOChyzjgb/jgYjjgZMNCivjgY/jganjgYYs44Gq44GM44GKDQor44GP44Gp44GGLOOCiuOBoeOBkw0KK+OBj+OBqeOBhizjgYvjgZrjgbLjgZMNCivjgY/jgb7jgYvjgo8s44GV44Go44GXDQor44GP44G+44GP44KJLOOCiuOCheOBnw0KK+OBj+OBvuOBl+OCjSzjgY3jgojjgZcNCivjgY/jgb7jgZ8s44GC44GN44KI44GXDQor44GP44Gr44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBj+OCieOCguOBoSzjgarjgaTjgb8NCivjgY/jgonjgZfjgb4s44GR44KT44GYDQor44GP44KK44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBsuOCieOBhCzjgZPjgYbjgYTjgaENCivjgY/jgorjga/jgoks44Gf44GL44GXDQor44GP44KK44Gv44KJLOOBn+OBkeOBlw0KK+OBj+OCiuOBr+OCiSzjgoTjgZnjga7jgooNCivjgY/jgorjga/jgoks44Gv44KL44G/DQor44GP44KK44Gv44GXLOOBn+OBkeOBsuOCjQ0KK+OBj+OCiuOBmSzjgarjgYrjgY0NCivjgY/jgo3jgaAs44GX44GS44GKDQor44GP44KN44GgLOOBsuOCjeOBlw0KK+OBj+OCjeOBjSzjgb7jgooNCivjgY/jgo3jgY0s44Gb44GE44GE44GhDQor44GP44KN44GNLOOBvuOBleOBjQ0KK+OBj+OCjeOCgSzjgZHjgpPjgZgNCivjgY/jgo3jgZXjgo8s44GR44KT44GE44GhDQor44GP44KL44G/44KELOOBm+OBhOOBhOOBoQ0KK+OBj+OBleOChOOBquOBjizjgZfjgo0NCivjgY/jgZnjga7jgZss44GY44KF44KT44GYDQor44GP44KP44Gv44KJLOOBl+OCheOBsuOBoQ0KK+OBvuOBoeOBoCzjgbLjgo3jgZcNCivjgb7jgaDjgonjgoEs44GL44Ga44Gy44KNDQor44G+44GI44GgLOOBk+OBhuOBmA0KK+OBvuOBiOOBoCzjgojjgZfjgobjgY0NCivjgb7jgYjjgaAs44GL44Gk44KIDQor44G+44GI44GM44KPLOOChuOBhuOBmA0KK+OBvuOBiOOBr+OCiSzjgabjgaTjgYoNCivjgb7jgYjjgY3jgZ8s44G/44Gk44Gu44G2DQor44G+44GN44GuLOOCiOOBhuOBkw0KK+OBl+OBtuOBn+OBqyzjgYLjgaTjgZcNCivjgb7jgarjgbks44Gy44KN44KG44GNDQor44G+44KL44KE44G+LOOBn+OBi+OBsuOCjQ0KK+OBvuOCi+OChOOBvizjgajjgoLjgZMNCivjgb7jgovjgoTjgb4s44GI44GE44GYDQor44G+44GV44GK44GLLOOBvuOBk+OBqA0KK+OBvuOBmeOBtuOBoSzjgYjjgYTjgZjjgo0NCivjgb7jgZnjgaAs44GT44GNDQor44G+44GZ44GgLOOBvuOBleOBqOOBlw0KK+OBvuOBmeOBoCzjgarjgYrjgYrjgb8NCivjgb7jgZnjgaAs44GX44KT44GYDQor44G+44GZ44GgLOOCiOOBhuOBkw0KK+OBvuOBmeOBoCzjgajjgZfjgZ/jgYsNCivjgb7jgaTjgbAs44GV44Go44GXDQor44Gv44KJLOOBleOBqOOCiw0KK+OBvuOBpOOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgb7jgaTjgaAs44G144G/44Gy44GnDQor44G+44Gk44G144GYLOOBjuOCk+OBmA0KK+OBvuOBpOOBteOBmCzjgYvjgZrjgZMNCivjgZ/jgaHjgY/jgYQs44Gf44GL44Gy44KNDQor44G+44Gk44GELOOBk+OBhuOBmA0KK+OBvuOBpOOBi+OCjyzjgojjgZfjga7jgooNCivjgb7jgaTjgb7jgoss44GC44GN44KJDQor44G+44Gk44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZHjgYTjgYTjgaENCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44G+44Gk44KC44GoLOOCiOOBl+OBruOCig0KK+OBvuOBpOOCguOBqCzjgobjgYbjgZMNCivjgb7jgaTjgoLjgags44KI44GX44Gv44KLDQor44GX44GK44Gw44KJLOOBn+OBi+OBqOOBlw0KK+OBvuOBpOOCgOOCiSzjgZ/jgY/jgoQNCivjgb7jgaTjgoDjgoks44Gy44KN44GL44GaDQor44G+44Gk44Gq44GMLOOBsuOCjeOBjQ0KK+OBvuOBpOOBquOBjCzjga7jgZ7jgb8NCivjgb7jgaTjgarjgb8s44GR44KT44GYDQor44G+44Gk44GKLOOBkeOCk+OBmA0KK+OBvuOBpOOBiizjgaDjgYTjgZnjgZENCivjgb7jgaTjgYrjgYss44GC44GN44GKDQor44Gv44KE44GX44GgLOOBi+OBmuOBquOCig0KK+OBvuOBpOOBiuOBiyzjgb/jgY0NCivjgYLjgZzjgoTjgarjgY4s44GX44KT44GYDQor44G+44Gk44GK44GLLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOBiuOBiyzjgZfjgoXjgZXjgY8NCivjgb7jgaTjgZss44GC44GN44GKDQor44G+44Gk44GX44G+LOOBi+OBmuOBruOCig0KK+OBvuOBpOOBl+OBnyzjgYLjgY3jgbLjgZMNCivjgb7jgaTjgZ/jgass44Gu44KK44GTDQor44G+44Gk44KP44GLLOOBsuOCjeOBlw0KK+OBvuOBpOOChOOBvizjgaTjgajjgoANCivjgb7jgaTjgZbjgY0s44GX44KT44GE44GhDQor44G+44Gk44Gq44GMLOOBl+OCheOBq+OBoQ0KK+OBu+OCk+OBqizjgojjgZfjga7jgooNCivjgoHjgYvjgZ8s44KG44GN44GTDQor44G/44GL44GY44KKLOOBvuOBleOBsuOCjQ0KK+OBv+OBi+OBvyzjgojjgZfjgZMNCivjgb/jgYvjgb8s44Go44GX44KEDQor44G/44GNLOOBqOOCguOBsuOCjQ0KK+OBv+OBv+OBnyzjgYjjgYTjgZMNCivjgb/jgarjgY/jgaEs44GL44Ga44Gy44KNDQor44G/44Gq44G/LOOBm+OBhOOBhOOBoQ0KK+OBv+OBquOBvyzjgZvjgYTjgZgNCivjgb/jgarjgb8s44GX44KT44GUDQor44G/44Gq44GoLOOBsuOCjeOBguOBjQ0KK+OBv+OBrSzjgZ/jgYvjgobjgY0NCivjgb/jga0s44GR44KT44GYDQor44G/44GX44G+LOOBk+OBhuOBmA0KK+OBv+OBl+OBvizjgZfjgpPjgZgNCivjgb/jgZ3jga4s44GV44Go44GXDQor44G/44Gf44KA44KJLOOBguOBjeOCiQ0KK+OBv+OBn+OCk+OBoCzjgY3jgY/jgYoNCivjgb/jgaTjgbws44G+44GT44GoDQor44G/44Gk44G844GXLOOBjeOCj+OCgA0KK+OBr+OBmeOCgOOCiSzjgZHjgpPjgZgNCivjgb/jgaTjga/jgZcs44GN44KH44GTDQor44GX44Gq44GgLOOBl+OCk+OBmeOBkQ0KK+OBv+OBpOOBvizjgbLjgafjgYoNCivjgb/jgoTjga/jgoks44G+44GV44KG44GNDQor44G/44KE44Gv44KJLOOBv+OBoeOCjQ0KK+OBv+OChOOBhCzjgbXjgb/jga/jgosNCivjgb/jgoTjgZjjgb4s44GV44Go44GXDQor44G/44KE44KC44GoLOOBqOOCguOChuOBjQ0KK+OBv+OChOOCguOBqCzjgYLjgY3jgokNCivjgb/jgoTjgZfjgZ8s44GX44KH44GYDQor44G/44KE44GfLOOCiOOBl+OBn+OBiw0KK+OBv+OChOOBnyzjgYLjgaTjgZcNCivjgb/jgoTjgYbjgaEs44GT44GG44GYDQor44G/44KE44GG44GhLOOBiuOBleOCgA0KK+OBv+OChOOBhuOCiSzjgbLjgo3jgbLjgZUNCivjgb/jgoTjgZbjgY0s44G+44GV44Go44GXDQor44Gv44GX44GQ44GhLOOBkeOCk+OBhOOBoQ0KK+OBv+OChOOBluOCjyzjgojjgZfjgYvjgZoNCivjgb/jgoTjgZbjgo8s44Go44GX44Gy44KNDQor44G/44KE44GaLOOBqOOBl+OBteOBvw0KK+OBv+OBnuOBi+OBvyzjgbLjgo3jgb/jgaQNCivjgb/jgZrjga4s44Gy44KN44KG44GNDQor44G/44Ga44GuLOOBi+OBmuOBsuOBqA0KK+OBv+OBmuOBn+OBqyzjgZjjgaTjgoQNCivjgoLjgaHjgaAs44Gy44Gn44Gv44KLDQor44KC44Gh44Ga44GNLOOBv+OBiOOBkw0KK+OCguOBoeOBmuOBjSzjgobjgYvjgZMNCivjgb/jgojjgZcs44GL44Ga44Gq44KKDQor44KC44KKLOOBsuOBp+OBruOCig0KK+OCguOCiizjgbLjgo3jgobjgY0NCivjgoLjgoos44Gy44KN44KG44GNDQor44KC44KKLOOBi+OBiuOCiw0KK+OCguOCiizjgZHjgpPjgZgNCivjgoLjgoos44GK44GV44KADQor44KC44KKLOOBn+OBkeOBsuOBlQ0KK+OCguOCiizjgZ/jgZHjgZcNCivjgoLjgoos44GX44GS44GNDQor44KC44KK44GQ44GhLOOBk+OBhuOBmA0KK+OCguOCiuOBi+OCjyzjgYLjgY3jgYoNCivjgoLjgorjgarjgYws44KE44GZ44Gy44GoDQor44KC44KK44GV44GNLOOBmOOCheOBq+OBoQ0KK+OCguOCiuOBnyzjgabjgaTjgbLjgZMNCivjgoLjgorjgZ8s44Go44GX44KG44GNDQor44KC44KK44KELOOBruOBtuOChuOBjQ0KK+OCguOCiuOChOOBvizjgYLjgY3jgbLjgo0NCivjgoLjgabjgY4s44GC44GN44GKDQor44KC44Go44GNLOOBmOOCjQ0KK+OBr+OBjuOCj+OCiSzjgZ/jgYvjgZcNCivjgoDjgYvjgYTjgaAs44G+44GV44GNDQor44KA44Gt44Gy44KNLOOBvuOBleOBlw0KK+OCgOOBreOBi+OBnyzjgaDjgYTjgYTjgaENCivjgoDjgonjgYvjgb8s44G+44GV44KG44GNDQor44KA44KJ44GL44G/LOOBpuOBpOOChA0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgYvjgZoNCivjgoDjgonjgZPjgZcs44Gk44Gt44GC44GNDQor44KA44KJ44G+44GkLOOBhOOBmuOBvw0KK+OCgOOCieOBrOOBjSzjgbLjgo3jgYvjgZoNCivjgoDjgonjgZ8s44Gy44KN44GNDQor44KA44KJ44GfLOOBk+OBhuOBmA0KK+OCgOOCieOBnyzjgb7jgZXjgZcNCivjgoDjgonjgoTjgb4s44GC44GR44G/DQor44KE44G+44GX44GfLOOCiOOBsuOBoQ0KK+OCgOOCjeOBnyzjgYjjgYTjgZgNCivjgb/jgofjgZjjgpMs44KA44Gk44GKDQor44Gq44GM44GELOOBsuOBp+OBig0KK+OBr+OBl+OCguOBqCzjgb/jgaTjgbLjgo0NCivjgarjgYzjgazjgb4s44GP44Gr44Gy44KNDQor44Gq44GM44GKLOOBruOBtuOCiOOBlw0KK+OBquOBjOOBiuOBiyzjgZfjgZMNCivjgarjgYzjgZXjgo8s44Gy44Gn44KG44GNDQor44Gq44GM44GX44G+LOOBi+OBmuOCiOOBlw0KK+OBquOBjOOBl+OBvizjgaTjgojjgZcNCivjgarjgYzjgZ8s44KE44GZ44Gy44KNDQor44Gq44GM44GfLOOChOOBmeOBig0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgZMNCivjgYTjgYzjgonjgZcs44G+44GV44GoDQor44Gq44GM44KE44G+LOOBkeOBhOOBmA0KK+OBquOBjOOCiOOBlyzjgobjgY3jgoLjgagNCivjgarjgYTjgajjgYYs44G+44GV44GNDQor44Gq44GL44Gw44KE44GXLOOBm+OBhOOBmA0KK+OBquOBi+OBjOOCjyzjgojjgZfjga/jgosNCivjgarjgYvjgZTjgoEs44GC44GN44Gy44KNDQor44Gq44GL44GX44G+LOOBsuOCjeOBi+OBmg0KK+OBquOBi+OBmOOBvizjgb/jgaHjgYoNCivjgarjgYvjgZjjgb4s44Gu44KK44GTDQor44Gq44GL44GY44G+LOOBiuOBkw0KK+OBquOBi+OBmOOBvizjgobjgY3jgYoNCivjgarjgYvjgZjjgb4s44GI44KKDQor44Gq44GL44GP44GNLOOBv+OBuw0KK+OBquOBi+OBvuOCiyzjgYvjgYrjgosNCivjgarjgYvjgb/jgaEs44Gf44GL44GXDQor44Gq44GL44KC44GoLOOCiOOBl+OBi+OBmg0KK+OBquOBi+OCguOBqCzjgojjgZfjgoTjgZkNCivjgarjgYvjgoLjgags44Gh44GI44GTDQor44KP44Gf44Gq44G5LOOBsuOCjeOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgbLjgo0NCivjgarjgYvjgoDjgoks44GR44KT44GYDQor44Gq44GL44KA44KJLOOBvuOBleOBi+OBpA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgY0NCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBr+OBjuOCj+OCiSzjgZXjgajjgZcNCivjgarjgYvjgoDjgoks44Go44GX44GC44GNDQor44Gq44GL44KA44KJLOOChOOBmeOBvuOBlQ0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZMNCivjgarjgYvjgoDjgoks44Gm44KL44G/DQor44Gq44GL44GuLOOBj+OCieOBqA0KK+OBquOBi+OBiizjgobjgYbjgZgNCivjgarjgYvjgYos44GX44KT44GE44Gh44KN44GGDQor44Gq44GL44GK44GLLOOCiuOBiw0KK+OBquOBi+OBl+OBvizjgb/jgYsNCivjgavjgZfjgZjjgb4s44KG44GN44Gy44KNDQor44Gq44GL44KELOOBsuOCjeOBi+OBmg0KK+OBquOBi+OChOOBvizjgbLjgo3jgobjgY0NCivjgarjgYvjgZbjgags44Gy44KN44G144G/DQor44Gq44G+44Gf44KBLOOBvuOBleOBquOCig0KK+OBquOCgeOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgarjgb8s44Gb44GE44GYDQor44Gq44KT44GwLOOBi+OBmuOBruOCig0KK+OBquOCk+OBmOOChyzjgobjgYbjgZgNCivjgarjgpPjgb0s44Gm44KL44KG44GNDQor44Gq44KJ44G2LOOBleOBqOOBkw0KK+OBquOCiuOBr+OCiSzjgb7jgY3jgZMNCivjgarjgorjgajjgb8s44Gy44Gn44KG44GNDQor44Gq44KL44GX44G+LOOBpuOBpOOChA0KK+OBquOBmeOBi+OCjyzjgZHjgpPjgZ8NCivjgarjgajjgoos44KE44GZ44GXDQor44Gt44GO44GXLOOChuOBhuOBkw0KK+OBreOCguOBqCzjgbLjgo3jgobjgY0NCivjgavjgYjjgaAs44Go44KC44KG44GNDQor44Gr44GE44GY44G+LOOBleOBqOOBlw0KK+OBq+OBhOOBj+OCiSzjgZ/jgYvjgZcNCivjgavjgYTjgaTjgb4s44KP44Gf44KLDQor44Gr44GE44GW44KPLOOBsuOCjeOBlw0KK+OBq+OBl+OBoCzjgYvjgaTjgYLjgY0NCivjgavjgZfjgaAs44G+44KC44KLDQor44Gr44GX44GgLOOCguOCiuOBsuOBqA0KK+OBq+OBl+OBoCzjgZ/jgaDjgajjgZcNCivjgbLjgaDjgYss44Gf44GL44GKDQor44Gr44GX44GgLOOBkeOBhOOBmeOBkQ0KK+OBq+OBl+OBi+OBqSzjgYLjgY3jgokNCivjgavjgZfjgYvjgo8s44Gy44Gn44GNDQor44Gr44GX44GL44KPLOOBsuOCjeOBvw0KK+OBq+OBl+OBi+OCjyzjgarjgYrjgY0NCivjgavjgZfjgoLjgags44G+44GT44GoDQor44Gr44GX44KA44KJLOOBmOOCheOCk+OChA0KK+OBq+OBl+OBqizjgZHjgpPjgoQNCivjgavjgZfjga4s44GI44G/44GTDQor44Gr44GX44GfLOOBhOOBmuOBvw0KK+OBteOBi+OBvyzjgajjgYrjgosNCivjgavjgZfjgo/jgY0s44G+44GT44GoDQor44Gr44GX44KE44G+LOOBvuOBleOCiw0KK+OBq+OBl+OChOOBvizjgZHjgpPjgZgNCivjgavjgZfjgZbjgo8s44KI44GX44Gu44KKDQor44Gr44Gj44GfLOOBsuOCjeOBsuOBqA0KK+OBq+OCj+OBnyzjgZ/jgZHjgZcNCivjgavjgo/jgoTjgb4s44GI44GE44GYDQor44Gu44GC44G/LOOBsuOBp+OBqA0KK+OBruOBvOOCiuOBn+OBpizjgobjgY3jgb7jgZUNCivjga7jgaAs44KE44GZ44GKDQor44Gu44GM44KPLOOBguOBpOOBlw0KK+OBruOBkOOBoSzjgYjjgYTjgZjjgoUNCivjga7jgZDjgaEs44Go44KC44GC44GNDQor44Gu44GY44KKLOOBvuOBleOBruOBtg0KK+OBruOCguOBqCzjgbLjgafjgoQNCivjga7jgoDjgoks44G+44GV44Gu44KKDQor44Gv44KE44GV44GLLOOBjeOCiOOBlw0KK+OBruOCgOOCiSzjgbLjgo3jgYvjgZoNCivjga7jgags44G/44GNDQor44Gu44GW44GNLOOBi+OBmuOCiA0KK+OBk+OBleOBiyzjgZ/jgZHjgbLjgZMNCivjgYrjgbDjgaos44GL44Gk44GXDQor44GK44GhLOOBsuOBqOOBlw0KK+OBiuOBoCzjgojjgZfjgbLjgo0NCivjgYrjgYzjgZXjgo/jgoks44Gy44KN44KI44GXDQor44GK44GM44GfLOOBu+OBmuOBvw0KK+OBj+OBjSzjgaHjgZoNCivjgYrjgYvjgaAs44GP44Gr44GTDQor44GK44GM44KPLOOBvuOBquOBtg0KK+OBiuOBjOOCjyzjgZ/jgYvjgobjgY0NCivjgYrjgYzjgo8s44Gy44KN44KEDQor44GK44GO44Gv44KJLOOBqOOCguOBguOBjQ0KK+OBiuOBjuOBrizjgZ/jgYvjgZcNCivjgYrjgbYs44Gy44KN44KG44GNDQor44GK44Gv44KJLOOChuOBhuOBkw0KK+OBr+OBvuOCguOBqCzjgb/jgY3jgZMNCivjgYrjga/jgoks44GL44Ga44Gy44KNDQor44GK44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBiuOBi+OCjyzjgZ3jga7jgb8NCivjgYrjgY/jgbws44Go44GX44KEDQor44GK44G/44KELOOChOOBmeOBlw0KK+OBiuOCguOCiizjgYLjgoTjgZMNCivjgYrjgoDjgoks44G+44GV44Gm44KLDQor44GK44Gr44GXLOOBr+OCi+OBruOBtg0KK+OBiuOBrizjgYvjgZrjgabjgosNCivjgYrjgazjgY0s44Gy44KN44KE44GZDQor44GK44GV44GNLOOChuOBn+OBiw0KK+OBiuOBleOBjSzjgbLjgo3jgYLjgY0NCivjgYrjgZXjgo8s44Gy44KN44KG44GNDQor44GK44GX44G+LOOBvuOBleOChuOBjQ0KK+OBiuOBl+OBvizjgoTjgZnjga7jgooNCivjgYrjgZfjgb4s44GL44Ga44Go44GXDQor44GK44GfLOOBk+OBhuOBhOOBoQ0KK+OBiuOBnyzjgb/jgYsNCivjgYrjgZ8s44Gf44Gg44Gy44GTDQor44GK44GfLOOChOOBmeOBkw0KK+OBguOCk+OBqeOBhizjgobjgYbjgZgNCivjgYrjgZ8s44GV44Go44GXDQor44GK44Gf44GLLOOBvuOBleOBqA0KK+OBiuOBn+OBjSzjgb7jgZXjgYLjgY0NCivjgYrjgZ/jgass44Gb44GE44GYDQor44GK44Gf44GrLOOBpuOBpOOChA0KK+OBiuOBn+OBqyzjgorjgofjgbLjgaENCivjga/jgoTjgZcs44G+44GV44Gf44GLDQor44GK44Gk44G8LOOBsuOCjeOChOOBmQ0KK+OBiuOBpOOBiyzjgYvjgZrjgYoNCivjgYrjgaTjgYss44GV44Go44GXDQor44GK44Gk44GLLOOChuOBhuOBkw0KK+OBr+OChOOBlyzjgZfjgo0NCivjgYrjgaTjgoss44Gf44GR44GXDQor44GK44G144GhLOOBn+OBi+OBig0KK+OBiuOCjyzjgaTjgajjgoANCivjgYrjgbLjgoMs44KE44GZ44GKDQor44GK44GY44GKLOOBruOBtuOBsuOCjQ0KK+OBiuOBiyzjgb/jgYsNCivjgYrjgYvjgbks44Gy44KN44GXDQor44GK44GL44GgLOOBkeOCk+OBhOOBoQ0KK+OBiuOBi+OBoCzjgYrjgZ8NCivjgYrjgYvjgaAs44Gf44GL44GC44GNDQor44GK44GL44GgLOOBteOBqOOBlw0KK+OBiuOBi+OCguOBqCzjgYvjgZrjgbLjgZMNCivjgYrjgYvjgoLjgags44Gu44KK44Gy44GVDQor44GK44GL44KC44GoLOOBvuOBleOBi+OBmg0KK+OBiuOBi+OCgOOCiSzjgobjgY3jgZMNCivjgYrjgYvjgoDjgoks44Gf44GR44Gy44GVDQor44GK44GL44GW44GNLOOCiOOBl+OBruOCig0KK+OBiuOBi+OBluOBjSzjgYjjgYTjgY0NCivjgYrjgY3jga4s44GC44Gk44GXDQor44GK44GP44GgLOOBiOOBv+OBkw0KK+OBiuOBj+OBoCzjgb/jgaHjgYgNCivjgYrjgY/jgYzjgo8s44Go44GX44GTDQor44Gv44GO44Gv44KJLOOBn+OBkeOBlw0KK+OBiuOBj+OBhuOBoSzjgoDjga3jgYoNCivjgYrjgb8s44G144G/44Gu44G2DQor44GK44KA44KJLOOBvuOBleOBqOOBlw0KK+OBiuOCk+OBoCzjgYLjgobjgoANCivjgYrjga4s44G+44GV44GNDQor44GK44GuLOOBn+OBi+OChA0KK+OBiuOBrizjgajjgYrjgosNCivjgYrjga4s44Gy44KN44KG44GNDQor44GK44Gu44Gn44KJLOOBn+OBi+OChuOBjQ0KK+OBiuOBruOBp+OCiSzjgoYNCivjgYrjga7jgafjgoks44Go44KC44KG44GNDQor44GK44Gu44KA44KJLOOBsuOCjeOBj+OBqw0KK+OBiuOBruOBluOCjyzjgZHjgYTjgYTjgaENCivjgYrjgazjgY0s44Gy44KN44Go44GXDQor44GK44GuLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBsuOCg+OBvizjgYvjgYrjgosNCivjgYrjgorjgaks44Gv44GY44KBDQor44GK44KK44GX44GN44GgLOOBvuOBleOBruOCig0KK+OBiuOBleOBiyzjgZjjgoXjgavjgaENCivjgYrjgoTjgb4s44GR44KT44GYDQor44GK44GW44GNLOOCgOOBreOBlw0KK+OBiuOBluOBjSzjgYLjgoTjgZMNCivjgYrjgZbjgo8s44Gy44Go44GXDQor44GT44GW44KPLOOBi+OBmuOBsuOCjQ0KK+OBiuOBluOCjyzjgobjgZ/jgYsNCivjgYrjgZbjgo8s44Gy44KH44Gd44GKDQor44GH44GILOOBv+OBruOCiw0KK+OBr+OBn+OBquOBiyzjgZfjgoXjgpPjgZnjgZENCivjgZXjgYjjgY0s44G+44GV44Gy44GTDQor44GV44GE44GgLOOCiOOBl+OBruOCig0KK+OBleOBhOOBkOOBlSzjgajjgZfjgYoNCivjga/jgpPjgaAs44G/44Gu44KLDQor44GV44GE44Go44GGLOOBl+OCk+OChA0KK+OBleOBhOOBqOOBhizjgabjgaTjgo0NCivjgZXjgYTjgajjgYYs44Gf44GL44GC44GNDQor44GV44GL44GhLOOBsuOBqOOBlw0KK+OBleOBi+OBkOOBoSzjgbLjgafjgYLjgY0NCivjgZXjgYvjgYQs44GT44GG44GE44GhDQor44GV44GL44GELOOBn+OBoOOBig0KK+OBsuOCieOBrizjgZ/jgYTjgaENCivjgZXjgYvjgYQs44Gf44Gk44KEDQor44GV44GL44GELOOCiOOBl+OBvuOBlQ0KK+OBleOBi+OBhCzjgobjgZnjgZENCivjgZXjgYvjgYQs44Gy44KN44GXDQor44GV44GL44KC44GoLOOBvuOBleOBr+OCiw0KK+OBleOBi+OCguOBqCzjgZ/jgZHjgZcNCivjgbLjgo3jgZss44G+44GV44GXDQor44GV44GL44KC44GoLOOBv+OBpOOBsuOCjQ0KK+OBleOBi+OBnyzjgorjgofjgZMNCivjgY3jgZfjgaAs44KC44KC44GTDQor44GV44GTLOOBsuOCjeOBlw0KK+OBleOBj+OBvizjgZ/jgZHjgZcNCivjgZXjgY/jgonjgbAs44KE44GZ44Go44KCDQor44GV44GP44KJ44GELOOBvuOBleOBsuOBlQ0KK+OBleOBj+OCieOChOOBvizjgZfjgZLjgbLjgagNCivjgZXjgoHjgZfjgb4s44G+44GV44GKDQor44GV44KT44G5LOOBk+OBhuOBmA0KK+OBleOCi+OCj+OBn+OCiizjgb/jga7jgosNCivjga/jgZvjgYzjgo8s44GT44GeDQor44GV44GV44GILOOBguOBjeOBsuOCjQ0KK+OBleOBleOBr+OCiSzjgYLjgY3jgokNCivjgZXjgZXjgY0s44Gy44KN44G/DQor44GV44GV44GNLOOBv+OBjeOBig0KK+OBleOBleOBjSzjgarjgYrjgY0NCivjgZXjgZXjgY0s44Gf44GL44GXDQor44Gv44Gz44KNLOOChOOBmeOBsuOCjQ0KK+OBleOBleOBiizjgojjgZfjgYLjgY0NCivjgZXjgZXjgYrjgYss44KI44GN44GhDQor44GV44GV44Gf44GrLOOBqOOCguOBmA0KK+OBleOBnyzjgbLjgo3jgYLjgY0NCivjgZXjgZ/jgZEs44GC44GL44GXDQor44GV44Go44GGLOOBvuOBleOCiw0KK+OBu+OBl+OBrizjgYjjgb8NCivjgZXjgajjgYYs44Gv44KL44G/DQor44Gv44Gj44Go44KKLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgYvjgZrjgojjgZcNCivjgZXjgajjgYYs44G+44GT44GoDQor44GV44Go44GGLOOBvuOBleOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgZXjgajjgYYs44Gq44GK44GNDQor44GV44Go44GGLOOCiuOCh+OBmA0KK+OBleOBqOOBhizjgZ/jgYvjgb7jgZUNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOChuOBn+OBiw0KK+OBsuOCieOBrizjgobjgY3jgZMNCivjgZXjgajjgYYs44KG44Gf44GLDQor44GV44Go44GGLOOBi+OBmuOBl+OBkg0KK+OBleOCj+OBoCzjgajjgoLjgZMNCivjgZXjgo/jgaAs44KI44GX44G/DQor44GV44KP44G144GYLOOBqOOCguOBvw0KK+OBleOCj+OBjSzjgajjgZfjgY0NCivjgZXjgo/jgoDjgoks44GY44KF44KTDQor44Gb44GM44KPLOOBkeOBhOOBmA0KK+OBm+OBjOOCjyzjgb7jgZXjga/jgosNCivjgZvjgY0s44GX44KT44KEDQor44Gb44GNLOOBqOOBiuOCiw0KK+OBm+OBjeOBkOOBoSzjgZfjgZLjgY0NCivjgZvjgY3jga0s44KG44GN44Gf44GLDQor44Gb44GN44GtLOOCiuOCh+OBsuOBoQ0KK+OBsuOCieOBrizjgZ/jgaTjgY0NCivjgZvjgpPjgZTjgY8s44GR44GE44GYDQor44Gb44GKLOOBvuOCiuOBig0KK+OBm+OCiSzjgajjgZfjgYLjgY0NCivjgZvjgoks44GR44GE44GE44GhDQor44GX44Gw44Gv44KJLOOBsuOCjeOBguOBjQ0KK+OBl+OBsOOBnyzjgbLjgo3jgobjgY0NCivjgZfjgbDjgZ8s44KE44GZ44Gu44KKDQor44Gv44Gb44GM44KPLOOBkeOBhOOBhOOBoQ0KK+OBl+OBsOOBnyzjgZPjgbjjgYQNCivjgZfjgbDjgZ8s44Gf44GL44Gy44KNDQor44GX44Gw44GfLOOBk+OBuOOBhA0KK+OBl+OBsOOBluOBjSzjgbLjgo3jgZcNCivjgZfjgbbjgZ/jgass44GX44KT44Gf44KN44GGDQor44GX44G244KELOOBi+OBmuOBjQ0KK+OBl+OBoeOBsuOChyzjgorjgaTjgZMNCivjgZfjgY0s44Gf44GE44GhDQor44GX44GN44GX44G+LOOBsuOBleOBlw0KK+OBl+OBvizjgYvjgZrjgYLjgY0NCivjgZfjgb4s44GL44Gk44G/DQor44GX44G+44GgLOOBiOOBhOOBhOOBoQ0KK+OBl+OBvuOBrOOBjSzjgoTjgZnjgZcNCivjgZfjgb7jgYrjgYss44Gy44KN44GXDQor44GX44G+44GX44GfLOOBn+OBoOOBlw0KK+OBl+OBvuOBmizjgbLjgo3jgYvjgaQNCivjgZfjgb/jgZos44GL44Ga44GuDQor44GX44G/44GaLOOBi+OBmuOBsuOBkw0KK+OBr+OBm+OBjOOCjyzjgajjgoLjgbLjgo0NCivjgZfjgb/jgZos44Go44KC44G/44GkDQor44GX44G/44GaLOOChuOBn+OBiw0KK+OBl+OBv+OBmizjgb7jgZXjgZ/jgZENCivjgZfjgoLjgYzjgYQs44G+44GV44KG44GNDQor44GX44KC44GL44KP44G5LOOBvuOBleOBkw0KK+OBl+OCguOBiuOBiyzjgajjgoLjga/jgosNCivjgZfjgoLjgZXjgYss44Go44KC44GL44GkDQor44GX44KC44KE44G+LOOBjeOBv+OBguOBjQ0KK+OBl+OCk+OBvOOCiizjgb7jgZXjgosNCivjgZfjga7jga/jgoks44Gf44GR44GXDQor44GX44Gu44Gv44KJLOOBguOBjeOBkw0KK+OBl+OBruOBluOBjSzjgZPjgZnjgZENCivjgZfjga7jgZbjgY0s44GL44Gk44Gy44KNDQor44GX44Gu44Ga44GLLOOBn+OBi+OBlw0KK+OBl+OCk+OChCzjgoTjgZnjgZ/jgYsNCivjgZfjgYrjgZ8s44Gq44GK44Gy44KNDQor44GX44GK44Gf44GrLOOBkeOBhOOBhOOBoQ0KK+OBl+OBiuOChCzjgbLjgafjgY0NCivjgZfjgonjga/jgb4s44GR44GE44GZ44GRDQor44GX44KJ44GELOOBoeOBiOOBkw0KK+OBl+OCieOBhOOBlyzjgb7jgZXjgYoNCivjgZfjgonjgYTjgZcs44KG44KK44GTDQor44GX44KJ44GE44GXLOOBi+OBmuOBsuOBlQ0KK+OBl+OCieOBjSzjgajjgZfjgZMNCivjgZfjgonjgZXjgY0s44GC44GN44Gy44KNDQor44GX44KH44Gq44GULOOBguOBjeOBsuOCjQ0KK+OBiuOBsuOCg+OBvizjgbLjgafjgobjgY0NCivjgZfjgoXjgags44Gm44Gk44KEDQor44GX44KC44GE44GaLOOBsuOCjeOBiA0KK+OBneOBiOOBoCzjgarjgYrjgZ/jgYsNCivjgbvjgorjga4s44Gy44GV44Go44GXDQor44Gd44Go44GY44G+LOOBsuOCjeOBlw0KK+OBmeOBoCzjgojjgZfjgZMNCivjgZnjgaAs44GR44KT44GE44GhDQor44GZ44Gp44GGLOOBsuOBp+OBkw0KK+OBmeOBjCzjgZjjgoXjgpPjgY3jgaENCivjgZnjgYzjgazjgb4s44GR44KT44GYDQor44GZ44GM44KP44KJLOOBqOOBiuOCiw0KK+OBmeOBjuOBsOOChOOBlyzjgb/jgaHjgbLjgZUNCivjgZnjgY7jgoLjgags44G/44GLDQor44GZ44GO44KC44GoLOOBv+OBlQ0KK+OBmeOBjuOCgOOCiSzjgoTjgZnjgbLjgagNCivjgZnjgY7jga4s44Gk44Go44KADQor44GZ44GO44GV44GNLOOBkeOBhOOBmeOBkQ0KK+OBmeOBjuOBleOCjyzjgYvjgZrjgobjgY0NCivjgZnjgY7jgZ8s44Gf44GL44GX44GSDQor44Gv44KE44GXLOOBv+OBiw0KK+OBmeOBjuOBhuOCiSzjgbLjgo3jgY0NCivjgZnjgY7jgoTjgb4s44KI44KK44GoDQor44GZ44GO44KE44G+LOOBn+OBj+OBvw0KK+OBmeOBlCzjgbLjgo3jgYvjgaQNCivjgZnjgYTjgZ8s44G144Go44GXDQor44GZ44G/44GgLOOCgeOBhOOBmOOCjQ0KK+OBmeOBv+OBi+OCjyzjgZPjgZMNCivjgZnjgarjgYws44Gy44Gn44Gy44GoDQor44GZ44Gu44Gv44KJLOOBr+OBmOOCgQ0KK+OBmeOBmuOBjSzjgbLjgo3jgYvjgZoNCivjgZnjgZrjgY0s44GR44GEDQor44GZ44Ga44GNLOOBvuOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgb/jgYsNCivjgZnjgZrjgY0s44Gu44G244GTDQor44GZ44Ga44GNLOOBruOCiuOBsuOBkw0KK+OBmeOBmuOBjSzjgZXjgajjgosNCivjgZnjgZrjgY0s44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBn+OBi+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgobjgY0NCivjgZnjgZrjgY0s44Gf44G/DQor44KE44G+44GL44KPLOOBqOOBiuOCiw0KK+OBmeOBmuOBjSzjgajjgZfjgoQNCivjgZnjgZrjgY0s44GX44KT44GYDQor44Gv44GMLOOChOOBmeOBig0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgZUNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GZ44Ga44GuLOOBleOBqOOBlw0KK+OBl+OCheOBqCzjgajjgYrjgosNCivjgZ/jgbDjgoks44G+44GV44G/DQor44Gf44GgLOOBguOBjeOCiQ0KK+OBr+OCiuOBjOOBhCzjgajjgoLjgobjgY0NCivjgZ/jgaAs44KI44GX44KG44GNDQor44Gf44GM44GX44KJLOOBvuOBleOBteOBvw0KK+OBn+OBkOOBoSzjgZfjgofjgZQNCivjgZ/jgZDjgaEs44Gf44GR44Gy44KNDQor44Gf44GY44G+LOOCiOOBl+OBruOCig0KK+OBn+OBmOOBvizjgYvjgZrjgbUNCivjgbvjgaPjgZ8s44GC44GN44GTDQor44Gf44GL44GgLOOBi+OBpOOBsuOBkw0KK+OBn+OBi+OBjizjgZfjgZLjgosNCivjgZ/jgYvjgY4s44Gf44Gk44GKDQor44Gf44GL44GOLOOBguOBleOBkw0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgbLjgZMNCivjga/jgZfjgZDjgaEs44Gy44KN44GL44GaDQor44Gf44GL44Gv44GXLOOBhOOBleOBqA0KK+OBn+OBi+OBr+OBlyzjgYvjgYrjgooNCivjgZ/jgYvjga/jgZcs44GL44Gk44G144G/DQor44Gf44GL44Gv44GXLOOBj+OBq+OBsuOBpw0KK+OBn+OBi+OBr+OBlyzjgb7jgZMNCivjgZ/jgYvjga/jgZcs44G+44GV44KLDQor44Gf44GL44Gv44GXLOOBn+OBi+OBruOBtg0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga/jgZcs44G/44Gq44GTDQor44Gf44GL44Gv44GXLOOBv+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjga7jgbbjgYLjgY0NCivjgZ/jgYvjga/jgZcs44GX44KT44GYDQor44Gf44GL44Gv44GXLOOBl+OCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZfjgoXjgavjgaENCivjgZ/jgYvjga/jgZcs44Go44KC44Gu44KKDQor44Gf44GL44Gv44GXLOOBqOOBl+OBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgojjgbLjgaENCivjgZ/jgYvjga/jgZcs44KG44GG44GTDQor44GK44G/LOOBiOOBhOOBkw0KK+OBn+OBi+OBsuOCiSzjgbLjgo3jgYLjgY0NCivjgZ/jgYvjgYQs44Gy44KN44GXDQor44Gf44GL44G/44KELOOBquOBiuOBvw0KK+OBn+OBi+OBquOBlyzjgbLjgo3jgb/jgaENCivjgZ/jgYvjga4s44GL44Gk44Go44GXDQor44Gf44GL44GuLOOBi+OBmuOBkw0KK+OBn+OBi+OBrizjgYvjgZrjgYoNCivjgZ/jgYvjga4s44Go44KC44Gy44KNDQor44Gf44GL44GuLOOBpuOCi+OBig0KK+OBr+OChOOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgYvjgYos44Gy44Gn44Gu44KKDQor44Gf44GL44GX44G+LOOBi+OBpOOBvw0KK+OBn+OBi+OBmSzjgZfjgpPjgYTjgaENCivjgZ/jgYvjgajjgYbjgoos44KI44GX44G/44GkDQor44Gf44GL44Go44KKLOOBi+OBmuOBsuOCjQ0KK+OBn+OBi+OChCzjgYTjgaHjgZ/jgo3jgYYNCivjgZ/jgZEs44GC44Gk44Gu44KKDQor44Gf44GR44GgLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOBoCzjgbXjgZXjgbLjgZMNCivjgbvjgoos44GR44KT44GYDQor44Gf44GR44GgLOOBv+OBruOCiw0KK+OBn+OBkeOBr+OCiSzjgojjgZfjgajjgoINCivjgZ/jgZHjgYQs44GT44GG44GYDQor44Gf44GR44KC44GoLOOCiuOBuw0KK+OBn+OBkeOCguOBqCzjgb/jgY3jgZMNCivjgZ/jgZHjgarjgYss44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBn+OBvuOCiA0KK+OBn+OBi+OBjizjgojjgZfjgbLjgagNCivjgZ/jgZHjgajjgb8s44GC44GN44Gy44KNDQor44Gf44GR44GG44GhLOOCguOBqOOBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgZfjgoXjgbLjgoMNCivjgZ/jgZHjgYbjgaEs44Gf44Gg44GXDQor44Gf44GR44KE44GZLOOBi+OBpOOBruOCig0KK+OBn+OBkeOBluOCjyzjgbLjgafjgbLjgZMNCivjgZ/jgY3jgbAs44G144GV44G/DQor44Gf44GP44G8LOOBruOCiuOBguOBjQ0KK+OBr+OBq+OCheOBhizjgYLjgY3jgbLjgo0NCivjgZ/jgb7jgojjgoos44Gb44GE44GYDQor44Gf44KC44GkLOOBhOOBmuOBvw0KK+OBn+OCgOOCiSzjgZPjgZ4NCivjgZ/jgoDjgoks44GX44KT44GE44GhDQor44Gf44KA44KJLOOBsuOBi+OCiw0KK+OBn+OBquOBuSzjgZfjgpPjgYTjgaENCivjgZ/jgarjgbks44GC44GNDQor44Gf44Gq44GLLOOBguOBjeOBmeOBkQ0KK+OBn+OBquOBiyzjgZHjgpPjgYTjgaENCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44Gf44Gq44GLLOOBvuOBleOBjQ0KK+OBn+OBkeOBoCzjgb7jgZXjga7jgooNCivjgZ/jgarjgYss44G/44G7DQor44Gv44Gb44GM44KPLOOBv+OBpOOBig0KK+OBn+OBquOBiyzjga7jgbbjgojjgZcNCivjgZ/jgarjgYss44KM44GE44GYDQor44Gf44Gq44GLLOOCiuOCh+OBmA0KK+OBn+OBquOBiyzjgZXjgajjgZcNCivjgZ/jgarjgYss44Gf44GL44Gu44KKDQor44Gf44Gq44GLLOOBpOOCiOOBlw0KK+OBn+OBquOBiyzjgobjgYbjgZMNCivjgZ/jgarjgYss44KG44GfDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBqyzjgYLjgZHjgb8NCivjgb/jgZ/jgass44GC44GN44KJDQor44Gf44Gr44GQ44GhLOOChOOBmeOBruOCig0KK+OBr+OBo+OBqOOCiizjgbLjgafjgbLjgZMNCivjgZ/jgavjgZDjgaEs44Gy44KN44KG44GNDQor44Gf44Gr44GQ44GhLOOCiOOBl+OChuOBjQ0KK+OBn+OBq+OBkOOBoSzjgZPjgYbjgYTjgaENCivjgZ/jgavjgYvjgo8s44GC44Gk44GXDQor44Gf44GV44GLLOOCiOOBl+OBkw0KK+OBn+OBl+OBvizjgZ/jgaDjgZcNCivjgZ/jgabjgYvjgo8s44G+44GV44KLDQor44Gf44Gm44GuLOOBsuOBp+OChuOBjQ0KK+OBpuOCieOBmOOBvizjgZ/jgYvjgojjgZcNCivjgabjgonjgb7jgYgs44G+44Gq44G2DQor44Gm44KJ44GV44KPLOOBi+OBpOOBjQ0KK+OBpuOCieOChOOBvizjgb7jgZPjgagNCivjgabjgZfjgb4s44KG44GG44GTDQor44Go44GgLOOBk+OBhuOBhOOBoQ0KK+OBqOOBqOOBvyzjgojjgZfjgYoNCivjgajjgbLjgoPjgb4s44Go44GK44KLDQor44Go44GN44KPLOOBsuOCjeOBkw0KK+OBteOBj+OChOOBvizjgbjjgYTjgZQNCivjgajjgY/jgZbjgo8s44Gy44Gn44GC44GNDQor44Go44G/44Gq44GMLOOBsuOCjeOBkw0KK+OBqOOBv+OBnyzjgZHjgpPjgYTjgaENCivjgajjgb/jgoTjgb4s44KG44GG44GTDQor44GV44KP44KA44KJLOOBi+OBpOOBsuOBkw0KK+OBqOOCiuOBlOOBiCzjgZHjgpPjgZcNCivjgajjgorjgZ/jgass44G+44GT44GoDQor44Go44GV44GLLOOBkeOBhOOBmeOBkQ0KK+OBpOOBvOOBhCzjgb7jgZXjgosNCivjgbLjgonjgbDjgoTjgZcs44GT44GG44GYDQor44Gk44Gh44GgLOOBr+OBmOOCgQ0KK+OBpOOBoeOBn+OBqyzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgaTjgaHjgoQs44G+44GT44GoDQor44Gk44GgLOOBv+OCiOOBkw0KK+OBpOOBoCzjgYjjgaTjgb7jgZUNCivjgaTjgZgs44KC44Go44KG44GNDQor44Gk44GY44GELOOBn+OBkeOBsuOBkw0KK+OBpOOBmOOCgOOCiSzjgobjgY3jgbLjgZMNCivjgaTjgZjjgoDjgoks44Gh44GI44GTDQor44Gk44GY44GuLOOBkeOCk+OBmA0KK+OBpOOBmOOBleOCjyzjgb7jgZXjgosNCivjgaTjgYvjgaAs44GT44GG44GYDQor44Gk44GL44Gv44KJLOOBsuOBp+OBlw0KK+OBpOOBi+OCguOBqCzjgYvjgZrjga7jgooNCivjgaTjgYvjgoLjgags44Gf44Gk44G/DQor44Gk44GL44KC44GoLOOBleOBoOOChuOBjQ0KK+OBpOOBreOBoCzjgbLjgafjga7jgooNCivjgaTjga7jgaAs44GX44KF44GYDQor44Gk44Gu44GgLOOBvuOBleOBsuOBkw0KK+OBpOOCi+OBvuOCiyzjgajjgoLjgarjgooNCivjgaTjgZXjgYss44Gy44KN44KG44GNDQor44Gk44Gk44GELOOBsuOBp+OBjQ0KK+OBpOOBpOOBvyzjgZfjgZLjgagNCivjgaTjgaTjgb8s44Gy44KN44GXDQor44Gk44Gk44G/44Gv44KJLOOBguOBpOOCiOOBlw0KK+OBhuOBoeOBoCzjgbLjgo3jgZcNCivjgYbjgaHjgaAs44GL44Ga44GKDQor44Gv44KE44GXLOOBquOCi+OBqA0KK+OBhuOBoeOBoCzjgZ/jgYvjgZcNCivjgYbjgaHjga4s44GX44KF44Gy44GhDQor44GG44Gh44KE44G+LOOChuOBvw0KK+OBhuOBoOOBjOOCjyzjgZ/jgYTjgZ4NCivjgYbjgYjjgaAs44Gm44Gk44GKDQor44GG44GI44GgLOOChOOBmeOBjQ0KK+OBhuOBiOOBoCzjgojjgZfjgb8NCivjga3jgZos44GR44KT44Gf44KN44GGDQor44GG44GI44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBhuOBiOOCgOOCiSzjgZ/jgZHjgZcNCivjgYbjgYjjgoDjgoks44GR44KT44GE44Gh44KNDQor44GG44GI44GuLOOBn+OBi+OBlw0KK+OBhuOBiOOBrizjgZHjgpMNCivjgYbjgYjjgZXjgo8s44Gf44GL44GX44GSDQor44GG44GI44Gk44G8LOOBvuOBleOBruOCig0KK+OBhuOBiOOBpOOBjSzjgb7jgZXjga/jgosNCivjgYbjgZHjga4s44Gf44GL44GKDQor44GG44G+44Gv44GXLOOBvuOBk+OBqA0KK+OBhuOCgeOBoCzjgZXjgaDjgobjgY0NCivjgYbjgoHjgoDjgoks44Gf44GL44KG44GNDQor44GG44G/44GgLOOBn+OBpOOChA0KK+OBhuOBiuOBmuOBvyzjgZXjgajjgZcNCivjgYbjgonjgZ8s44GC44KE44GuDQor44GG44GX44GP44GVLOOBl+OCk+OBhOOBoQ0KK+OBhuOBmeOBquOBvyzjgbLjgo3jgobjgY0NCivjgo/jgaAs44GR44KT44GYDQor44KP44GgLOOBn+OBkeOBlw0KK+OCj+OBoCzjgajjgZfjgYLjgY0NCivjgo/jgaAs44GV44Go44GXDQor44KP44GL44GbLOOBl+OCh+OBnw0KK+OCj+OBjSzjgZHjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44GX44KT44KEDQor44KP44Gf44Gq44G5LOOBqOOCguOBteOBvw0KK+OCj+OBn+OBquOBuSzjgajjgZfjgbLjgo0NCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44KP44Gf44Gq44G5LOOCiOOBl+OBpuOCiw0KK+OCj+OBn+OBquOBuSzjgobjgZnjgZENCivjgo/jgZ/jgarjgbks44Gy44Gn44G144G/DQor44KP44Gf44Gs44GNLOOChOOBmeOBn+OBiw0KK+OCj+OBn+OBrOOBjSzjgYvjgYrjgosNCivjgo/jgZ/jgoos44GT44GG44GN44GhDQor44Gv44GX44GQ44GhLOOBleOCk+OBuuOBhA0KK+OChOOBtizjgZvjgpPjgZ8NCivjgoTjgY7jgazjgb4s44Go44GX44KG44GNDQor44KE44GY44G+LOOBmOOCheOCkw0KK+OChOOBvuOBoCzjgZjjgoXjgavjgaENCivjgoTjgb7jgaAs44GL44GK44KKDQor44KE44G+44GgLOOBv+OBjQ0KK+OChOOBvuOBoCzjgb/jgaTjga7jgooNCivjgoTjgb7jgaAs44GV44Go44KI44GXDQor44KE44G+44GgLOOBn+OBoOOBlw0KK+OChOOBvuOBoCzjgZ/jgZHjgZcNCivjgoTjgb7jgaAs44Go44KC44GC44GNDQor44KE44G+44GgLOOCiOOBl+OBsuOBlQ0KK+OChOOBvuOBoCzjgabjgYTjgZgNCivjgbLjgZXjga4s44KI44GX44GNDQor44KE44G+44GgLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBoCzjgYvjgZrjgagNCivjgoTjgb7jgbXjgZgs44KI44GX44Gy44GVDQor44KE44G+44GO44KPLOOBsuOBp+OBig0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgb/jgaQNCivjgoTjgb7jgZDjgaEs44GY44KF44KT44KEDQor44KE44G+44GQ44GhLOOBk+OBhuOBmA0KK+OChOOBvuOBkOOBoSzjgb/jgaTjgYLjgY0NCivjgoTjgb7jgZDjgaEs44Gq44GK44GNDQor44KE44G+44GQ44GhLOOBl+OBkuOBteOBvw0KK+OChOOBvuOBkOOBoSzjgojjgZfjgZ/jgYsNCivjgoTjgb7jgZDjgaEs44KG44GZ44GRDQor44KE44G+44GQ44GhLOOChuOBhuOBkw0KK+OChOOBvuOBi+OCjyzjgYLjgY3jgYLjgaQNCivjgoTjgb7jgoLjgags44GC44GN44KJDQor44KE44G+44KC44GoLOOBoeOBiA0KK+OBv+OBmuOBn+OBqyzjgbLjgo3jgZMNCivjgoTjgb7jgoLjgags44GL44Ga44G/DQor44KE44G+44KC44GoLOOBvuOBleOCiOOBlw0KK+OChOOBvuOCguOBqCzjgorjgYsNCivjgoTjgb7jgoLjgags44GV44Go44GXDQor44KE44G+44KC44GoLOOBleOChOOBiw0KK+OChOOBvuOCguOBqCzjgZ/jgaTjgoQNCivjgoTjgb7jgoLjgags44KE44GZ44Gy44GTDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgojjgZfjgbLjgo0NCivjgoTjgb7jgoLjgags44Gu44KK44KG44GNDQor44KE44G+44GtLOOChuOBhA0KK+OChOOBvuOBrSzjgYTjgZXjgYoNCivjgoTjgb7jgZfjgZ8s44Gm44Gk44KEDQor44KE44G+44GX44GfLOOBn+OBkeOBr+OCiw0KK+OBr+OCk+OBoCzjgYLjgY3jgokNCivjgoTjgb7jgYbjgaEs44Gf44GL44Gy44KNDQor44KE44G+44GG44GhLOOChuOBjeOBkw0KK+OChOOBvuOBhuOCiSzjgbLjgo3jgZcNCivjgoTjgb7jgZbjgY0s44GL44Gq44GTDQor44KE44G+44GW44GNLOOBjeOBv+OBig0KK+OChOOBvuOBluOBjSzjgb/jganjgooNCivjgZ/jgoDjgoks44G/44Gk44Gy44KNDQor44KE44G+44GW44GNLOOCiOOBruOBmeOBkQ0KK+OChOOBvuOBluOBjSzjgarjgYrjgagNCivjgoTjgb7jgZ7jgYgs44Gf44GL44GXDQor44KE44Gq44GO44GV44KPLOOBi+OBpOOBmA0KK+OChOOBrizjgYvjgZoNCivjgoTjgZnjgaAs44GL44Ga44GC44GNDQor44KE44GZ44Gv44KJLOOBsuOBquOBkw0KK+OBk+OBl+OCguOBqCzjgZfjgpPjgYTjgaENCivjga/jgY7jgo/jgoks44G+44GT44GoDQor44KI44GT44GfLOOChOOBmeOBsuOBlQ0KK+OCiOOBk+OChOOBvizjgajjgZfjgYoNCivjgojjgoLjgaAs44GL44Ga44Gy44GVDQor44KI44Gq44GMLOOBhOOBleOBig0KK+OCiOOBreOBoCzjgojjgZfjgoQNCivjgojjga3jgoTjgb4s44GX44KT44GE44Gh44KN44GGDQor44KI44Gt44GW44KPLOOBn+OBi+OBlw0KK+OCiOOBreOBluOCjyzjgbLjgo3jgagNCivjgojjgZfjgaAs44GL44Ga44KI44GXDQor44KI44GX44GgLOOBkeOCk+OBhOOBoQ0KK+OCiOOBl+OBoCzjgb7jgZXjgajjgZcNCivjgojjgZfjgaAs44GV44Go44GXDQor44KI44GX44GgLOOBn+OBi+OBig0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44KG44G/44GTDQor44KI44GX44GgLOOBn+OBkeOBlw0KK+OCiOOBl+OBkOOBoSzjgbLjgafjgY0NCivjgojjgZfjgYQs44GR44GE44GTDQor44KI44GX44GE44GRLOOCguOBqA0KK+OCiOOBl+OBvuOBpCzjgb/jgY3jgYoNCivjgojjgZfjga4s44Gm44KL44Gy44GVDQor44KI44GX44GuLOOBn+OBkeOBlw0KK+OCiOOBl+OBluOCjyzjgYLjgY3jgokNCivjgojjgaTjgZ/jgass44GV44Go44GXDQor44KG44GN44GW44GtLOOBsuOCjeOBn+OBkQ0KK+OChuOChOOBvizjgZXjgaHjgogNCivjgZrjgZcs44GI44KKDQor44GC44KJ44GELOOBqOOCguOBsuOBlQ0KK+OBteOBmOOBjSzjgb7jgobjgb8NCivjgbLjgonjga4s44Gm44KL44KE44GZDQor44GL44KB44KE44G+LOOBi+OBpOOBsuOCjQ0KK+OBk+OBmOOBvizjgb7jgZXjgagNCivjgarjgYvjgYos44GC44GN44Gy44GVDQor44GE44KP44GL44KPLOOBleOBoeOBkw0KK+OBpOOBoeOChCzjgZHjgpPjgZQNCivjgYTjgZjjgo0s44GN44KI44Gy44GoDQor44GP44Gp44GGLOOBruOBtuOBkw0KK+OBquOBjOOBl+OBvizjgobjgY3jgYoNCivjga/jgZfjgZDjgaEs44GN44KI44KG44GNDQor44Gk44Gh44KELOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBl+OBvuOBpCzjgbLjgZXjgojjgZcNCivjga/jgonjgaAs44GX44GS44GKDQor44G/44Ga44GuLOOBiuOBleOCgA0KK+OBu+OBl+OBrizjgb/jgaTjgbLjgo0NCivjgYLjgbks44Gb44GE44GYDQor44GC44G5LOOCiOOBl+OBsuOBlQ0KK+OBguOBuSzjgobjgY3jgYoNCivjgYLjgbks44G+44GV44GoDQor44GC44G244GL44KPLOOChuOBsuOBoQ0KK+OBguOBoOOBoSzjgZfjgZLjgosNCivjgYLjgYTjgZbjgo8s44Gy44Gn44Gu44G2DQor44GC44GY44KNLOOBi+OBmuOBig0KK+OBguOBi+OBhCzjgoHjgZDjgb8NCivjgZ/jgoLjgags44Gd44GG44Gf44KN44GGDQor44GC44GL44GE44GXLOOBn+OBpOOChA0KK+OBguOBi+OBlyzjgZPjgYbjgZgNCivjgYLjgY3jgYTjgZEs44Go44KC44GTDQor44GC44GN44GfLOOBi+OBmuOBsuOBqA0KK+OBguOBjeOChOOBvizjgYvjgaTjgobjgY0NCivjgYLjgb7jgYzjgYQs44GR44GE44GTDQor44GC44G+44GM44GfLOOBsuOCjeOChOOBmQ0KK+OBguOBvuOBrizjgbLjgo3jgZ/jgYsNCivjgYLjgoHjgb/jgoQs44G144G/44GKDQor44GC44KT44Gp44GGLOOBr+OCi+OBig0KK+OBguOCk+OBqeOBhizjgZfjgZLjga7jgooNCivjgYLjgpPjganjgYYs44Gf44GL44GTDQor44GC44KT44Gp44GGLOOChuOBn+OBiw0KK+OBguOCk+OBluOBhCzjgYjjgYTjgYTjgaENCivjgYLjgYrjgY0s44G/44GVDQor44GC44GK44GNLOOBkeOCk+OBn+OCjeOBhg0KK+OBguOBiuOChOOBjizjgY3jgorjgZMNCivjgYLjgYrjgoTjgb4s44G+44GV44KG44GNDQor44GC44KJ44GELOOBqOOBl+OBguOBjQ0KK+OBguOCieOBhCzjgb/jgY3jgYoNCivjgYLjgonjgY0s44GI44GE44GhDQor44GC44KJ44KELOOBvuOChuOBvw0KK+OBguOCiuOBvizjgoTjgZnjgbLjgo0NCivjgYLjgorjgZ/jgZEs44Gu44KK44Gh44GLDQor44GC44GV44GgLOOCgOOBpOOBvw0KK+OBguOBleOBsizjgbLjgafjgbXjgb8NCivjgYLjgZXjga4s44Gf44GL44GXDQor44GC44GX44GgLOOBv+OBuw0KK+OBguOBl+OBi+OCjyzjgYvjgaTjgb8NCivjgbDjgbAs44GL44Ga44Gy44KNDQor44Gw44GwLOOBn+OBi+OChuOBjQ0KK+OBsOOBsCzjgaDjgYTjgZQNCivjgaHjgbAs44GX44KT44GUDQor44GU44GoLOOBvuOBleOBsuOBpw0KK+OBoeOChyzjgb7jgZXjgajjgZcNCivjgaDjgYTjgaks44GC44GN44G144G/DQor44Gp44GC44GELOOBguOBpOOBqA0KK+OBqeOBhCzjgobjgYbjgZMNCivjgbvjgZ3jgYQs44G+44GV44GXDQor44Gp44GELOOBqOOCguOBquOCig0KK+OBqeOBhCzjgajjgZfjgb/jgaQNCivjgYjjgYzjgZfjgoks44Gy44KN44GC44GNDQor44GI44GQ44GhLOOBl+OCk+OBhOOBoQ0KK+OBiOOBsOOCiSzjgZvjgYTjgZgNCivjgYjjgpPjgaks44Gf44GR44GKDQor44GI44KT44GpLOOChuOBhuOBmA0KK+OBguOBvuOCiizjgZjjgoXjgpPjgZMNCivjgYjjga7jgoLjgags44GV44Go44GXDQor44GI44Gu44KC44GoLOOBleOBqOOBlw0KK+OBiOOBruOCguOBqCzjgoTjgZnjgobjgY0NCivjgYjjga7jgoLjgags44Gf44GL44Gv44KLDQor44GI44GW44GNLOOBkeOCk+OBmA0KK+OBteOBmOOBr+OCiSzjgZjjgoXjgpPjgZMNCivjgbXjgZjjgYQs44G+44GV44Gy44GTDQor44G144GY44GELOOBiOOBhOOBmA0KK+OBsuOCi+OBi+OCjyzjgobjgYbjgZMNCivjgbXjgZjjgYQs44GT44GG44GYDQor44G144GY44GV44KPLOOBqOOCguOBsuOCjQ0KK+OBteOBmOOBleOCjyzjgZ/jgY/jgZgNCivjgbLjgZQs44GE44GV44GKDQor44G144GY44GfLOOBkeOCk+OBhOOBoQ0KK+OBteOBmOOBnyzjgbLjgafjgZ/jgYsNCivjgbXjgZjjgo/jgoks44KE44GZ44Gy44KNDQor44G144GL44G/LOOBpOOBqOOCgA0KK+OBteOBi+OBluOCjyzjgZfjgpPjgYTjgaENCivjga/jgZvjgYzjgo8s44GV44Go44GXDQor44G144GP44GgLOOBkeOCk+OBmA0KK+OBteOBj+OCguOBqCzjgY3jgojjgb8NCivjgbXjgY/jgoDjgo0s44G+44GV44G/DQor44G144GP44KNLOOBguOBjeOCiQ0KK+OBteOBj+OBlyzjgaHjgYvjgokNCivjgbXjgY/jgZfjgb4s44GL44Ga44Gy44GoDQor44G144GP44GX44G+LOOBvuOBleOBr+OCiw0KK+OBr+OBjuOCj+OCiSzjgZ/jgYvjgZcNCivjgbXjgY/jgZfjgb4s44GV44Gk44GNDQor44G144Gq44GNLOOBkeOCkw0KK+OBteOBquOBj+OBvCzjgb7jgZXjgbLjgZMNCivjga/jgonjgaAs44Gv44KL44G/DQor44G144KL44Gv44GfLOOBsuOCjeOChuOBjQ0KK+OBteOCi+OBi+OCjyzjgYvjgaTjgobjgY0NCivjgbXjgovjgoLjgags44Gk44KI44GXDQor44G144KL44KELOOBn+OBi+OBlw0KK+OBteOBl+OBvyzjgajjgYrjgosNCivjgZTjgaAs44KE44GZ44KG44GNDQor44GE44KK44GILOOBn+OBkeOBlw0KK+OBhOOBl+OBr+OCiSzjgojjgZnjgZENCivjgYTjgaHjgYvjgo8s44GY44KF44KT44GTDQor44GE44GwLOOBv+OBpOOBig0KK+OBhOOCj+OBleOBjSzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44KE44GZ44GTDQor44GE44GE44KC44KKLOOBsuOCjeOBvw0KK+OBhOOBr+OCiSzjgZ/jgYvjgb8NCivjgYTjgo/jgoDjgoks44GX44KT44GE44GhDQor44GE44Gq44GM44GNLOOBqOOBl+OBig0KK+OBhOOBl+OBmOOBvizjgYLjgY3jgokNCivjgYTjgajjgYYs44Gq44GK44GNDQor44GU44KT44GpLOOBteOBv+OBig0KK+OBlOOBqCzjgb/jga7jgosNCivjgYTjgZfjgYvjgo8s44KC44Go44G144G/DQor44GE44Go44GGLOOBvuOBoeOBkw0KK+OBhOOBm+OBjSzjgZ/jgYvjgZcNCivjgZTjgags44Go44KC44KEDQor44Gv44GgLOOBsuOCjeOBvw0KK+OBr+OBjuOCj+OCiSzjgb/jgY3jgYoNCivjga/jgY7jgo/jgoks44GX44KT44GYDQor44Gv44GE44GY44G+LOOBguOBjeOCiQ0KK+OBr+OBvuOBoCzjgb7jgZXjgobjgY0NCivjga/jgb7jga4s44G+44G/DQor44Gv44G+44GK44GLLOOBleOBiOOBkw0KK+OBr+OBquOBqSzjgYLjgoTjgZMNCivjga/jgarjgZ8s44G+44GV44Gy44KNDQor44Gv44KJLOOBm+OBhOOBmA0KK+OBr+OCiSzjgZfjgofjgZ8NCivjga/jgoks44KG44GN44GKDQor44Gv44KJLOOBi+OBmuOBsuOCjQ0KK+OBr+OCieOBoCzjgZfjgo0NCivjga/jgonjgaAs44GX44KF44GYDQor44Gv44KJ44GgLOOBmeOBv+OCjA0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgZMNCivjga/jgonjgYws44G+44GV44Gu44G2DQor44Gv44KJ44G/LOOCiuOBkw0KK+OBr+OCieOChOOBvizjgbLjgo3jgobjgY0NCivjga/jgonjgZ7jga4s44Gy44Gn44GC44GNDQor44Gv44Gb44G5LOOBv+OCj+OBkw0KK+OBi+OBreOBkyzjgajjgoLjgZMNCivjgaTjgaHjgaAs44GC44GE44GTDQor44Gv44GX44KC44GoLOOBsuOCjeOBlw0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgaTjgZANCivjga/jgZfjgoLjgags44GT44GZ44GRDQor44Gv44GX44KC44GoLOOBv+OBruOCiw0KK+OBr+OBl+OCguOBqCzjgabjgaTjgoQNCivjga/jgZfjgoLjgags44Go44KC44Gy44GTDQor44Gv44GX44KC44GoLOOChuOBhuOBmA0KK+OBr+OBl+OCguOBqCzjgZ/jgZHjgZcNCivjga/jgZ8s44GN44KH44GTDQor44Gv44Gj44Go44KKLOOBl+OCkw0KK+OBr+OBo+OBqOOCiizjgZ/jgZHjgZcNCivjga/jgaPjgajjgoos44GC44GN44Gy44GoDQor44Gv44KE44GL44KPLOOBn+OBkeOCjQ0KK+OBr+OChOOBi+OCjyzjgZ/jgaTjgoQNCivjga/jgoTjgZXjgYss44GR44KT44Gf44KN44GGDQor44Gv44KE44GV44GNLOOBruOBtuOBsuOBkw0KK+OBr+OChOOBlyzjga7jgbbjgbLjgo0NCivjga/jgoTjgZcs44Gf44GP44GYDQor44Gv44KE44GXLOOBqOOCguOBguOBjQ0KK+OBr+OChOOBlyzjgojjgbLjgaENCivjga/jgoTjgZcs44KK44GIDQor44Gv44KE44GX44GgLOOBteOBv+OBsuOCjQ0KK+OBsuOBsyzjgYvjgarjgYgNCivjgbLjgYzjgZcs44GV44Go44GXDQor44Gy44GM44GXLOOBn+OBi+OBguOBjQ0KK+OBsuOBkOOBoSzjgbLjgafjgY0NCivjgbLjgZjjgYvjgZ8s44Gy44Gn44GNDQor44Gy44GY44KELOOCiOOBl+OBsuOBkw0KK+OBsuOBquOBjCzjgZHjgYTjgZMNCivjgbLjgonjgYvjgo8s44Gy44Gn44GC44GNDQor44Gy44KJ44GuLOOBvuOBk+OBqA0KK+OBsuOCieOBrizjgZvjgYTjgZgNCivjgbLjgonjga4s44GN44KI44GXDQor44Gy44KJ44GKLOOBsuOBp+OBr+OCiw0KK+OBsuOCieOBl+OBvizjgojjgZfjgYvjgZoNCivjgbLjgonjgoTjgb4s44Gb44GE44GUDQor44Gy44KJ44KE44GZLOOBqOOBl+OBsuOBkw0KK+OBsuOCiuOBjSzjgZ/jgYvjgojjgZcNCivjgbLjgo3jgb7jgZUs44Gf44GL44Gq44KKDQor44Gy44KN44KC44GoLOOChOOBmeOBjQ0KK+OBsuOCjeOBiuOBiyzjgYLjgY3jgokNCivjgbLjgo3jgZss44GR44KT44GeDQor44Gy44KN44GbLOOBi+OBmuOBruOBtg0KK+OBhuOCgeOBoCzjgoTjgZnjgbLjgo0NCivjgbvjgpPjgaAs44GL44Ga44GKDQor44G744KT44GpLOOBk+OBhuOBhOOBoeOCjQ0KK+OBu+OCiuOCguOBqCzjgZHjgpPjgZgNCivjgbvjgorjga4s44KI44GX44GKDQor44G744KK44GG44GhLOOBn+OBkeOBlw0KK+OBu+OBleOBiyzjgbLjgafjgYLjgY0NCivjgbvjgZfjga4s44Gy44KN44GTDQor44G744GX44KE44G+LOOBhOOBn+OCiw0KK+OBu+OBneOBi+OCjyzjgZ/jgaDjgYoNCivjgbvjgZ3jgYvjgo8s44Gf44GL44Gy44GoDQor44G744Gd44GL44KPLOOBquOBiuOBjQ0KK+OBu+OBneOChCzjgajjgZfjgo0NCivjgYTjgbDjgonjgY0s44Gy44Go44GXDQor44GE44Gh44Gv44KJLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBoeOBr+OCiSzjgo/jgZ/jgosNCivjgYTjgaHjga/jgoks44GX44KT44GYDQor44GE44Gh44GL44KPLOOBvuOBquOBtg0KK+OBhOOBoeOBruOBmyzjgobjgb/jgZMNCivjgYTjgaAs44G+44Gk44Gf44KN44GGDQor44GE44Gn44GQ44GhLOOCiuOCh+OBsuOBoQ0KK+OBhOOBqSzjgZXjgarjgYgNCivjgYTjgYzjgonjgZcs44Gf44GR44GXDQor44GE44GM44KJ44GXLOOChOOBmeOChuOBjQ0KK+OBhOOBjOOCieOBlyzjgYvjgZrjgZfjgZINCivjgYTjgYTjgaAs44Gf44GL44GtDQor44GE44GE44GgLOOBguOBjeOBkw0KK+OBhOOBhOOBmOOBvizjgb7jgZPjgagNCivjgYTjgZHjgaAs44G/44GO44G144G/DQor44GE44GR44GgLOOBpuOBpOOChA0KK+OBhOOBkeOBoCzjgojjgZfjgbLjgo0NCivjgYTjgZHjgaAs44GX44GS44GKDQor44GE44G+44GELOOBsuOCjeOBlw0KK+OBhOOBvuOBhOOBmuOBvyzjga7jgbbjgYoNCivjgYTjgb7jgYTjgZrjgb8s44Gy44GV44G/44GkDQor44GE44G+44KA44KJLOOBn+OBi+OBlw0KK+OBhOOBvuOCgOOCiSzjga7jgbbjgZMNCivjgYTjgoLjgpMs44GR44KT44GE44GhDQor44GE44Gq44GgLOOBleOBqOOBlw0KK+OBhOOBquOBjOOBjSzjgZ/jgZHjgZcNCivjgYTjgarjgYzjgY0s44GL44Ga44Gy44GoDQor44GE44Gq44KA44KJLOOBvuOBleOBlw0KK+OBhOOBquOCgOOCiSzjgYvjgaTjga7jgbYNCivjgYTjga4s44KG44GN44Gy44GTDQor44GE44Gu44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBruOBvuOBnyzjgbLjgo3jgYoNCivjgYTjga7jgYbjgYgs44GL44Gk44Go44GXDQor44GE44Gu44GG44GILOOBk+OBhuOBmA0KK+OBhOOBruOBhuOBiCzjgorjgocNCivjgYTjga7jgYbjgYgs44Go44KC44G/DQor44GE44Gu44GG44GILOOBqOOCguOBvw0KK+OBhOOBruOBhuOBiCzjgojjgYbjgZMNCivjgYTjga7jgYbjgYgs44GT44GNDQor44GE44Gs44GELOOBkeOBhOOBkw0KK+OBhOOBrOOBl+OBvizjgb/jgo8NCivjgYTjgorjgYgs44GK44GV44KADQor44GE44GV44GLLOOBv+OBruOCiw0KK+OBhOOBl+OBsCzjgYvjgZrjgobjgY0NCivjgYTjgZfjgbDjgZcs44G+44GZ44G/DQor44GE44GX44Gw44GXLOOBi+OBmuOChA0KK+OBhOOBl+OBoCzjgb/jgaTjgoQNCivjgYTjgZfjgaAs44Gf44GL44GXDQor44GE44GX44GgLOOBqOOCguOBruOCig0KK+OBhOOBl+OBoCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYTjgZfjgYzjgb8s44GC44GZ44GTDQor44GE44GX44GQ44KNLOOBi+OBmuOBsuOBqA0KK+OBhOOBl+OBr+OCiSzjgbLjgo3jgYvjgZoNCivjgYTjgZfjgYQs44GV44Go44GXDQor44GE44GX44GELOOBl+OBuw0KK+OBhOOBl+OBhCzjgoTjgZnjgbLjgo0NCivjgYTjgZfjgYQs44KG44GG44GYDQor44GE44GX44GELOOChuOBhuOBnw0KK+OBhOOBl+OBhCzjgZPjgYbjgYTjgaHjgo0NCivjgYTjgZfjgYvjgo8s44GX44KT44GE44Gh44KN44GGDQor44GE44GX44G+44KLLOOBvuOChuOBvw0KK+OBi+OCj+OBmizjgb7jgZXjga7jgooNCivjgYTjgZfjgZrjgYss44GX44GS44KLDQor44GE44Gf44KELOOBoeOBsuOCjQ0KK+OBhOOBhOOBoCzjgaDjgYTjgZnjgZENCivjgYTjgajjgYYs44Gy44Gn44GNDQor44GE44Go44GGLOOBsuOCjeOBv+OBpA0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgYTjgajjgYYs44GL44Gk44Gy44KNDQor44GE44Go44GGLOOBkeOBhOOBhOOBoQ0KK+OBhOOBqOOBhizjgZPjgYbjgYTjgaENCivjgYTjgajjgYYs44GT44GG44GYDQor44GE44Go44GGLOOBvuOCiuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44Gq44GK44G/DQor44GE44Go44GGLOOBruOBvOOCiw0KK+OBhOOBqOOBhizjgZvjgaTjgZMNCivjgYTjgajjgYYs44Gf44Gg44GXDQor44GE44Go44GGLOOBn+OBi+OBr+OCiw0KK+OBhOOBqOOBhizjgajjgZfjgYoNCivjgYTjgajjgYYs44Gk44KI44GXDQor44GE44Go44GGLOOCiOOBsuOBoQ0KK+OBhOOBqOOBhizjgobjgY3jgYoNCivjgYTjgajjgYYs44Gu44KK44Gy44GVDQor44GE44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBhOOCj+OBhCzjgbLjgo3jgb/jgaENCivjgYTjgo/jgYQs44Gy44KN44GXDQor44GE44KP44G/LOOBhOOBj+OBig0KK+OBhOOCj+OCgOOCiSzjgYvjgZrjgoQNCivjgYTjgo/jgarjgYws44GX44KH44GTDQor44GE44KP44GKLOOBi+OBmuOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgZjjgoXjgpMNCivjgYTjgo/jgZ8s44G+44GT44GoDQor44GE44KP44GfLOOBiuOBleOCgA0KK+OBhOOCj+OBnyzjgojjgZfjgb7jgZUNCivjgYTjgZrjgb8s44G+44GV44KG44GNDQor44GY44KT44GwLOOBvuOBleOBvw0KK+OBmOOCh+OBruOBhuOBoSzjgbLjgo3jgYLjgY0NCivjgZjjgofjgonjgY8s44Gf44G+44GNDQor44GL44GM44G/LOOBjeOCiOOBn+OBiw0KK+OBi+OBjOOCjyzjgb7jgZXjgbXjgb8NCivjgYvjgZLjgoTjgb4s44Gy44KN44GL44GaDQor44GL44GELOOChuOBjeOBig0KK+OBi+OBmOOCguOBqCzjgYjjgYTjgZgNCivjgYvjgZjjgo/jgoks44G/44G744GTDQor44GP44KK44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBi+OBjeOCgOOCiSzjgYvjgZrjgZfjgZINCivjgYvjgY3jga7jgY0s44GN44KI44GXDQor44GL44GN44GG44GhLOOCiOOBl+OBn+OBiw0KK+OBi+OBjeOBluOBjSzjgarjgYrjgZMNCivjgYvjgZMs44GL44Ga44GC44GNDQor44GL44KB44GX44G+LOOCiuOCheOBkw0KK+OBi+OBv+OBiOOBmSzjgY3jgojjgZMNCivjgYvjgb/jgY/jgoks44G/44Gk44Gy44KNDQor44GL44G/44KA44KJLOOBl+OCk+OBmA0KK+OBi+OBv+OBn+OBjSzjga7jgZ7jgoANCivjgYvjgb/jgojjgZfjgYvjgo8s44Gk44Gt44Gu44KKDQor44GL44KTLOOCiuOBiA0KK+OBi+OBquOBhCzjgojjgZfjga7jgooNCivjgYvjgpPjgbDjgoTjgZcs44Gy44KN44GXDQor44GL44KT44GgLOOBkeOBhOOBnw0KK+OBi+OBreOBkyzjgZ/jgb7jgY0NCivjgYvjga3jgZMs44GY44KF44KTDQor44GL44Gt44GfLOOBn+OBj+OChA0KK+OBi+OBrizjgZvjgYTjgZgNCivjgYvjgorjga4s44GI44GE44GYDQor44GL44GV44G/LOOBmOOCheOCkw0KK+OBi+OBleOBquOBvyzjgZ/jgYvjgYLjgY0NCivjgYvjgZss44Gy44KN44KG44GNDQor44GL44GZ44GMLOOBk+OBhuOBmA0KK+OBi+OBmeOChCzjgajjgZfjgbLjgZMNCivjgYvjgZ/jgYrjgYss44Gg44GE44GZ44GRDQor44GL44Go44GGLOOBiOOBhOOBhOOBoQ0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYvjgajjgYYs44GT44GG44GE44Gh44KN44GGDQor44GL44Go44GGLOOBvuOBleOBmA0KK+OBi+OBqOOBhizjgb7jgZXjgobjgY0NCivjgYvjgajjgYYs44Gf44GP44KEDQor44GL44Go44GGLOOBqOOBl+OBi+OBmg0KK+OBi+OBqOOBhizjgYTjgaHjgo3jgYYNCivjgYvjgajjgYYs44KI44GX44Gy44GoDQor44GL44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBi+OBpOOBvuOBnyzjgoTjgZnjgobjgY0NCivjgYvjgaTjgoks44Gf44GL44GXDQor44GL44KP44G5LOOBvuOChuOBvw0KK+OBi+OCj+OBoCzjgbLjgo3jgZcNCivjgYvjgo/jgZDjgaEs44GL44Gq44GIDQor44GV44GE44Go44GGLOOBn+OBi+OBqA0KK+OBi+OCj+OBkOOBoSzjgb7jgoLjgosNCivjgYvjgo/jga/jgZ8s44Gy44KN44GXDQor44GL44KP44GL44G/LOOBvuOBleOBquOCig0KK+OBi+OCj+OBi+OBvyzjga7jgorjgZMNCivjgoTjgZjjgb4s44Gq44GK44GTDQor44GL44KP44KC44GoLOOBsuOCjeOBlw0KK+OBi+OCj+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgYvjgo/jgoDjgoks44Gu44KK44GC44GNDQor44GL44KP44KA44KJLOOBn+OBoOOBguOBjQ0KK+OBi+OCj+OCgOOCiSzjgZHjgpPjgZgNCivjgYvjgo/jga4s44GR44KT44GYDQor44GL44KP44GuLOOBn+OBi+OChuOBjQ0KK+OBi+OCj+OBleOBjSzjgYLjgY3jgbLjgagNCivjgYvjgo/jgZss44GY44KNDQor44GL44KP44GX44G+LOOBj+OBvw0KK+OBi+OCj+OBl+OBvizjgb7jgZXjgY0NCivjgYvjgo/jgZfjgb4s44KI44GX44KG44GNDQor44GL44KP44GX44G+LOOBn+OBkeOBlw0KK+OBjeOBoCzjgbLjgafjgY0NCivjgY3jgY/jgaEs44Gy44Gn44Gf44GLDQor44GN44GP44GhLOOBhOOBj+OBkw0KK+OChOOBvuOCguOBqCzjgYvjgYrjgooNCivjgYLjgY3jgojjgZcs44GL44Ga44KI44GXDQor44GN44GP44GhLOOBkeOCk+OBhOOBoQ0KK+OBjeOBj+OBoSzjgb/jgaTjgogNCivjgY3jgY/jgaEs44Gk44KI44GXDQor44GN44GP44GhLOOBsuOBp+OBguOBjQ0KK+OBjeOCgOOCiSzjgbLjgo3jgZcNCivjgY3jgoDjgoks44GY44KF44Gr44GhDQor44GN44KA44KJLOOBvuOCig0KK+OBjeOCgOOCiSzjgb7jgZXjgbLjgZMNCivjgY3jgoDjgoks44G+44GV44GL44GkDQor44GN44KA44KJLOOBl+OBkuOChuOBjQ0KK+OBjeOCgOOCiSzjgZHjgpPjgZgNCivjgYvjgajjgYYs44Go44GX44KEDQor44GN44Gq44GbLOOCiOOBl+OBr+OCiw0KK+OBjeOBrSzjgbLjgafjgY0NCivjgY3jga4s44KE44GZ44Gu44G2DQor44GN44GuLOOBv+OBruOCiw0KK+OBjeOBruOBl+OBnyzjgYvjgZrjgoQNCivjgY3jgoks44Gf44GL44Gy44GnDQor44GN44GX44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBjeOBn+OBsOOBn+OBkSzjgoTjgZnjgbLjgo0NCivjgY3jgZ/jgbDjgZ/jgZEs44G+44KC44KLDQor44GN44Gf44GM44KPLOOBn+OBpOOChA0KK+OBjeOBn+OBjOOCjyzjgb/jgaTjgosNCivjgY3jgZ/jgoDjgoks44GC44GN44GTDQor44Gf44GL44Gv44GXLOOBteOBv+OBsuOBkw0KK+OBjeOBn+OChOOBvizjgb7jgZXjgbLjgZMNCivjgY3jgojjgarjgoos44GC44GN44Gy44GTDQor44GT44Gw44KE44GXLOOBguOBpOOBlw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBv+OBruOCiw0KK+OBk+OBsOOChOOBlyzjgZfjgofjgZgNCivjgZPjgbDjgoTjgZcs44KG44GG44GYDQor44GT44Gw44KE44GXLOOBvuOBleOBkw0KK+OBhOOBqOOBhizjgYLjgY0NCivjgZPjga4s44GL44Ga44Gy44KNDQor44GT44GuLOOBkeOBhOOBnw0KK+OBk+OBrizjgojjgYbjgZMNCivjgZPjga4s44Go44GK44KLDQor44GT44GE44GRLOOBguOBjeOBig0KK+OBk+OBmOOBvizjgZ/jgYvjgbLjgZMNCivjgZPjgY/jgZfjgocs44GK44GV44KADQor44GT44G+44GNLOOBoeOBi+OBkw0KK+OBvuOBi+OBuSzjgbLjgo3jgYLjgY0NCivjgZPjgb7jgaQs44KB44GQ44G/DQor44GT44G+44GkLOOBiOOBhOOBmA0KK+OBk+OCk+OBqSzjgbLjgo3jgZcNCivjgZPjgpPjgaks44GN44KI44GXDQor44GT44KT44GpLOOBqOOBl+OBsuOCjQ0KK+OBk+OBl+OBsCzjgYLjgY3jgZMNCivjgojjgZPjgYgs44Gf44GL44GXDQor44GT44Gm44GM44KPLOOBsuOCjeOBlw0KK+OBk+OBrizjgbLjgo3jgYLjgY0NCivjgZPjgoTjgb4s44Gq44GK44GNDQor44GT44KE44G+LOOBl+OCk+OBmA0KK+OBk+OChOOBvizjgojjgbLjgaENCivjgZPjgZbjgZks44Gf44GL44G/44GkDQor44GP44Gh44GE44GXLOOBsuOCjeOBlw0KK+OBj+OBjuOBv+OChCzjgYvjgZrjgYLjgY0NCivjgY/jgZjjgonjgYQs44Go44KC44G144G/DQor44GP44G+44Gu44G/44GpLOOCj+OBn+OCiw0KK+OBj+OBvuOBluOBjSzjgb7jgZXjgosNCivjgY/jgozjgb7jgaQs44GL44Ga44KEDQor44GP44KK44GNLOOBleOBtuOCjQ0KK+OBj+OCiuOChOOBvizjgZ/jgZHjgZcNCivjgY/jgorjgoTjgb4s44Gy44KN44GIDQor44GP44KN44G5LOOBl+OCkw0KK+OBj+OCjeOBleOCjyzjgZ/jgY/jgb8NCivjgY/jgo3jgZXjgo8s44G+44GV44KG44GNDQor44GP44KK44KFLOOBv+OBjQ0KK+OBj+OBleOBrizjgoTjgZnjga7jgooNCivjgY/jgo/jga/jgoks44G+44GV44Gu44KKDQor44GP44Ga44GuLOOBi+OBmuOBguOBjQ0KK+OBjeOCheOBoCzjgozjgYTjgZMNCivjgb7jgbbjgaEs44KC44Go44GP44GrDQor44G+44Gh44GfLOOBsuOCjeOBn+OBiw0KK+OBvuOBiOOBoCzjgajjgZfjga7jgooNCivjgb7jgYjjgYTjgYgs44GL44Ga44Go44GXDQor44G+44GI44GL44KPLOOCiuOCheOBmeOBkQ0KK+OBvuOBvuOBoCzjgYLjgaTjgZcNCivjgb7jgarjgbks44Gy44KN44GXDQor44G+44Gq44G5LOOBqOOCguOBjQ0KK+OBvuOCi+OBhOOBoSzjgZ/jgYvjgbLjgacNCivjgb7jgovjgZ/jgass44G+44GV44KG44GNDQor44G+44KL44KE44G+LOOBqOOBl+OCjQ0KK+OBvuOBleOBiuOBiyzjgbLjgo3jgZcNCivjgb7jgZnjgaAs44Gq44GK44GoDQor44G+44GZ44GgLOOBqOOCguOBguOBjQ0KK+OBvuOBmeOBoCzjgoTjgZnjgobjgY0NCivjgb7jgZnjgaAs44KI44GX44GIDQor44G+44GZ44GgLOOBi+OBpOOChuOBjQ0KK+OBvuOBpOOBsOOCiSzjgZjjgoXjgpMNCivjgb7jgaTjgaAs44KI44GX44Gf44GLDQor44G+44Gk44GgLOOBn+OBj+OChA0KK+OBvuOBpOOBoOOBhOOCiSzjgZHjgpPjgYTjgaENCivjgb7jgaTjgYjjgaAs44G+44GV44GNDQor44G+44Gk44GELOOCiOOBsuOBoQ0KK+OBvuOBpOOBhCzjgYLjgY3jgbXjgb8NCivjgb7jgaTjgoLjgags44Gh44GC44GNDQor44G+44Gk44KC44GoLOOBsuOCjeOBlw0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZ/jgYsNCivjgb7jgaTjgoLjgags44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgbLjgacNCivjgb7jgaTjgoLjgags44Gf44GL44GTDQor44G+44Gk44KC44GoLOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgaTjgb8NCivjgb7jgaTjgoLjgags44Gk44KI44GXDQor44G+44Gk44KC44GoLOOCiOOBl+OBtuOBvw0KK+OBvuOBpOOCguOBqCzjgobjgY3jgZMNCivjgarjgYvjgoDjgoks44Gy44KN44GL44GaDQor44G+44Gk44KA44KJLOOBk+OBng0KK+OBvuOBpOOBquOBjCzjgYvjgaTjgoQNCivjgb7jgaTjga4s44Gy44KN44KG44GNDQor44G+44Gk44GKLOOBqOOBl+OBteOBvw0KK+OBvuOBpOOBiizjgYLjgobjgb8NCivjgb7jgaTjgYrjgYss44Gy44Gn44GXDQor44G+44Gk44GK44GLLOOBsuOCjeOBjQ0KK+OBvuOBpOOBiuOBiyzjga7jgbbjgYoNCivjgb7jgaTjgYrjgYss44Gb44GE44GE44GhDQor44G+44Gk44GK44GLLOOBi+OBmuOBsuOCjQ0KK+OBvuOBpOOBl+OBvizjgY3jgojjgYvjgZoNCivjgb7jgaTjgZ/jgass44GN44KH44GTDQor44G+44Gk44KE44G+LOOCiOOBl+OBjQ0KK+OBv+OBoeOCguOBqCzjgarjgorjgYLjgY0NCivjgb/jgYjjgY0s44GC44GN44Gu44KKDQor44G/44GL44G/LOOBkeOCkw0KK+OBv+OBi+OBvyzjgajjgZfjgYvjgZoNCivjgb/jgarjgYzjgo8s44GR44KTDQor44G/44Gq44GL44KPLOOBoOOBhA0KK+OBv+OBl+OBvizjgbLjgo3jgobjgY0NCivjgb/jgZfjgb4s44GP44G/DQor44G/44GX44G+LOOBkeOCk+OBmOOCjQ0KK+OBv+OBn+OBoSzjgYvjgZrjgagNCivjgb/jgaTjgaAs44KK44KF44GE44GhDQor44G/44Gk44Gv44GXLOOBn+OBi+OBig0KK+OBv+OBpOOBhCzjgZ/jgZHjgZcNCivjgb/jgaTjgoLjgags44GL44Ga44Gu44KKDQor44G/44GG44KJLOOBn+OBoOOBguOBjQ0KK+OBv+OBhuOCiSzjgbLjgo3jgZcNCivjgb/jgoTjgbks44GC44Gk44GXDQor44G/44KE44GhLOOBjeOBv+OBig0KK+OBv+OChOOBmOOBvizjgYLjgoQNCivjgbDjgpMs44GT44GG44Gf44KN44GGDQor44G/44KE44KC44GoLOOBvuOChuOBvw0KK+OCiOOBk+OBiCzjgZ/jgY/jgo0NCivjgb/jgoTjgZXjgYss44GL44Ga44G/DQor44G/44KE44GfLOOCiOOBl+OBn+OBiw0KK+OBv+OChOOBnyzjgaTjgojjgZcNCivjgb/jgoTjgYbjgaEs44GX44KH44GTDQor44GG44Gh44KE44G+LOOBi+OBmuOBvw0KK+OBleOBi+OBhCzjgZfjga7jgbYNCivjgb/jgoTjgZbjgo8s44Gy44KN44GC44GNDQor44G/44Ge44G244GhLOOBk+OBhuOBmA0KK+OBv+OBnuOBkOOBoSzjgarjgYrjgY0NCivjgb/jgZ7jgZDjgaEs44GY44KF44KTDQor44G/44Ga44KC44GoLOOBsuOCjeOBlw0KK+OBv+OBmuOBrizjgY3jgojjgb8NCivjgb/jgZrjga4s44GN44KH44GYDQor44G/44Ga44GuLOOBvuOBleOBsuOCjQ0KK+OBv+OBmuOBl+OBvizjgYLjgY3jgokNCivjgb/jgZrjgZ8s44G+44GV44KG44GNDQor44G/44Ga44Gf44GrLOOBguOBjeOBruOCig0KK+OCguOBjizjgb7jgarjgbYNCivjgoLjgY4s44Go44GX44GC44GNDQor44KC44GOLOOBk+OBng0KK+OCguOCguOBmyzjgZHjgYTjgYTjgaENCivjgoLjgpPjgb4s44Gy44KN44KG44GNDQor44KC44KKLOOBi+OBmuOBig0KK+OCguOCiizjgb7jgZXjgbLjgo0NCivjgoLjgoos44G/44GN44GTDQor44KC44KKLOOCiuOCh+OBmeOBkQ0KK+OCguOCiizjgajjgZfjgYLjgY0NCivjgoLjgoos44GI44GE44GTDQor44KC44KK44KC44GoLOOBguOBjeOCiQ0KK+OCguOCiuOBrizjgYTjgZrjgb8NCivjgojjgZfjgaAs44GC44Gk44Gy44GTDQor44KC44KK44GfLOOBvuOBleOCiOOBlw0KK+OCguOCiuOBnyzjgb7jgZXjgobjgY0NCivjgoLjgorjgZ8s44KG44GG44GYDQor44KC44KK44GfLOOChuOBjeOBig0KK+OCguOCiuOBnyzjgobjgZ/jgYsNCivjgoLjgorjgo/jgY0s44Gy44GV44GoDQor44KC44KNLOOBi+OBmuOBruOCig0KK+OCguOBn+OBhCzjgoLjgobjgosNCivjgoLjgajjgbDjgoTjgZcs44Gy44KN44GXDQor44KC44Go44Gv44GXLOOBoOOBhOOBmeOBkQ0KK+OCguOBqOOChOOBvizjgobjgYbjgZgNCivjgoLjgajjgZbjgo8s44KM44GE44GTDQor44KA44GL44KPLOOBkeOBhOOBmeOBkQ0KK+OCgOOBquOBi+OBnyzjgZHjgpPjgYTjgaENCivjgoDjgonjgYvjgb8s44G+44GV44Gy44KNDQor44KA44KJ44GL44G/LOOCiuOBiw0KK+OCgOOCieOBi+OBvyzjgaTjgajjgoANCivjgoDjgonjgYvjgb8s44KG44GN44Gy44KNDQor44KA44KJ44GL44G/LOOCiOOBmeOBkQ0KK+OCgOOCieOBi+OCjyzjgarjgYrjgbXjgb8NCivjgoDjgonjgarjgYss44Gy44Gn44Gu44G2DQor44KA44KJ44GfLOOBi+OBmuOBsuOBlQ0KK+OCgOOCieOBnyzjgYvjgaTjgb8NCivjgoDjgonjgoTjgb4s44KI44GX44KEDQor44KA44KJ44KE44G+LOOBl+OBkuOBig0KK+OCgOOCjeOBr+OBlyzjgZ/jgY/jgYoNCivjgoDjgags44KI44GX44KNDQor44KA44GoLOOBsuOCjeOBlw0KK+OBquOBsCzjgZXjgajjgosNCivjgarjgYzjgYQs44GX44GS44G+44GVDQor44Gq44GM44GELOOBvuOBleOBruOCig0KK+OBquOBjOOBrizjgobjgYbjgZgNCivjgarjgYzjga4s44GE44Gk44GTDQor44Gq44GM44GKLOOBteOBv+OBkw0KK+OChOOBvuOCguOBqCzjgbLjgo3jgYLjgY0NCivjgarjgYzjgYrjgZEs44KI44GX44GNDQor44Gq44GM44GK44GVLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBl+OBvizjgoTjgZnjgZMNCivjgarjgYzjgZfjgb4s44GC44GN44Gy44GVDQor44Gq44GM44GfLOOBvuOBleOBkw0KK+OBiuOBsCzjgb7jgobjgZMNCivjgarjgYzjgZ8s44Go44KC44Gu44KKDQor44Gq44GM44GfLOOBsuOCjeOBjQ0KK+OBquOBjOOBn+OBqyzjgZHjgpPjgZgNCivjgarjgYTjgajjgYYs44Gy44KN44GXDQor44Gq44GL44GhLOOBk+OBhuOBmA0KK+OBquOBi+OBoCzjgYvjgYrjgosNCivjgarjgYvjgaDjgYQs44GC44GN44GTDQor44Gq44GL44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgosNCivjgarjgYvjgYzjgo8s44Gq44GK44GC44GNDQor44Gq44GL44GM44KPLOOBi+OBpOOChA0KK+OBquOBi+OBr+OCiSzjgZ/jgb7jgb8NCivjgarjgYvjgYQs44KE44GZ44Gy44KNDQor44Gq44GL44GELOOBi+OBmuOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZXjgajjgZcNCivjgarjgYvjgZjjgb4s44GC44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBi+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgY/jgb8NCivjgY3jgb/jgbLjgoks44G/44GNDQor44GE44Go44GGLOOBleOBqOOBlw0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZgNCivjgarjgYvjgoDjgoks44GX44KH44G444GEDQor44Gq44GL44KA44KJLOOBpOOCiOOBlw0KK+OBquOBi+OCgOOCiSzjgoTjgZnjga7jgooNCivjgarjgYvjgoDjgoks44KI44GX44Gv44KLDQor44Gq44GL44KA44KJLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OCgOOCiSzjgobjgbLjgaENCivjgarjgYvjgoDjgoks44Gq44GK44KG44GNDQor44Gq44GL44Gr44GXLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OBq+OBlyzjgYLjgaTjgZcNCivjgarjgYvjga4s44Gy44KN44KG44GNDQor44Gq44GL44GuLOOBmOOCheOCkw0KK+OBquOBi+OBrizjgZHjgYTjgYTjgaENCivjgarjgYvjga4s44GX44GuDQor44Gq44GL44GuLOOBn+OBi+OBlw0KK+OBquOBi+OBiizjgZPjgYbjgZgNCivjgarjgYvjgZXjgY8s44GX44KF44GUDQor44Gq44GL44GbLOOBvuOBleOChuOBjQ0KK+OBquOBi+OBnyzjgb/jgYsNCivjgarjgYvjgZ8s44Gf44GL44Gy44GVDQor44Gq44GL44GfLOOBk+OBhuOBmA0KK+OBquOBi+OBn+OBkSzjgZ/jgaTjgoQNCivjgarjgYvjgoTjgb4s44GL44Ga44KG44GNDQor44Gq44G/44GNLOOBr+OBmOOCgQ0KK+OBquOBquOBleOCjyzjgb7jgZXjgYLjgY0NCivjgarjgpPjgbAs44Gy44KN44GNDQor44Gq44KT44KC44GPLOOBv+OBjQ0KK+OBreOCguOBqCzjgajjgoLjgYoNCivjga3jgoLjgags44GE44Ga44KLDQor44Gr44GELOOBn+OBi+OBsuOCjQ0KK+OBq+OBhOOBpyzjgobjgYbjgZMNCivjgavjgYTjgY/jgoks44KE44GZ44GC44GNDQor44Gr44GE44Ga44G+LOOBpuOBpOOChA0KK+OBq+OBi+OBvyzjgYvjgZrjga7jgooNCivjgavjgZfjgbDjgoTjgZcs44GC44Gk44GXDQor44Gr44GX44GgLOOBguOBjeOBkw0KK+OBq+OBl+OBr+OCiSzjgZfjgofjgZ/jgaQNCivjgavjgZfjga/jgoks44Gy44KN44Gf44GLDQor44Gr44GX44GL44KPLOOBj+OCi+OBvw0KK+OBq+OBl+OBi+OBnCzjgbLjgo3jgb8NCivjgavjgZfjgb/jgoQs44KE44GZ44Gy44KNDQor44Gr44GX44KA44KJLOOBn+OBj+OBig0KK+OBq+OBl+OCgOOCiSzjgbXjgb/jgYoNCivjgavjgZfjgoTjgb4s44GR44GE44GXDQor44Gr44GX44KE44G+LOOBquOBv+OBmA0KK+OBq+OBo+OBnyzjgaDjgYTjgZnjgZENCivjgavjgo8s44GI44G/44GTDQor44Go44GULOOBquOBpOOBkw0KK+OBq+OCjyzjgb/jgaTjgYLjgY0NCivjga7jgbbjga/jgoks44KI44GX44GTDQor44GK44GM44KPLOOBsuOBp+OBpOOBkA0KK+OBruOBjOOBvyzjgbLjgafjgoQNCivjga7jgYzjgb8s44Gf44GE44Gh44KN44GGDQor44Gu44KC44GoLOOBguOBjeOCiQ0KK+OBruOCgOOCiSzjgb7jgZXjgbLjgZMNCivjga7jgoDjgoks44KI44GX44KEDQor44Gu44Ge44GILOOBl+OBjeOBkw0KK+OBrOOBvuOBnyzjgZXjgajjgZcNCivjgYrjgaDjgZjjgb4s44Gf44GL44Gy44KNDQor44GK44GM44GI44KKLOOBi+OBmuOBruOCig0KK+OBiuOBjOOBnyzjgZXjgajjgZcNCivjgYrjgYzjgo8s44GX44KT44GE44GhDQor44GK44GM44KPLOOBjeOCj+OCgA0KK+OBiuOBjizjgbLjgajjgZcNCivjgYrjgY7jgY/jgbws44KC44Go44GC44GNDQor44GK44GULOOBi+OBpOOBguOBjQ0KK+OBiuOBkOOCiSzjgY3jgojjgZcNCivjgYrjgbAs44G+44Gq44G2DQor44GK44Gw44KE44GXLOOBi+OBpOOChA0KK+OBiuOBuCzjgZPjgYbjgZgNCivjgYrjgYzjgb4s44KG44GG44GTDQor44GK44Gv44GXLOOBiuOBleOCgA0KK+OBiuOBsuOBlyzjgZjjgoXjgavjgaENCivjgYrjgYvjgo8s44G/44GLDQor44GK44GN44GpLOOBvuOBquOBtg0KK+OBiuOBj+OBvCzjgZ/jgYvjgbLjgo0NCivjgYrjgY/jgbws44Gv44GY44KBDQor44GK44GP44G+LOOBpuOBpA0KK+OBiuOBvizjgYjjgooNCivjgYrjgb7jgYgs44Go44GK44KLDQor44GK44G+44GILOOBsuOBp+OBjQ0KK+OBiuOCguOCiizjgZfjgZLjgosNCivjgYrjgoLjgoos44Gf44GR44GKDQor44GK44KC44KKLOOBn+OBkeOBlw0KK+OBiuOCguOCiizjgojjgZjjgo0NCivjgYrjgoLjgoos44Go44KC44GNDQor44GK44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBq+OBlyzjgajjgoLjgbLjgo0NCivjgYrjgavjgZcs44KI44KK44GTDQor44GK44Gr44GXLOOCiOOBsuOBoQ0KK+OBiuOBrizjgZPjgYbjgYTjgaENCivjgYrjgazjgb4s44Gq44GK44GNDQor44GK44GV44GLLOOBkeOCk+OBmA0KK+OBiuOBleOCjyzjgoTjgZnjgbLjgZMNCivjgYrjgZXjgo8s44G+44GV44GKDQor44GK44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBiuOBl+OCjSzjgbLjgo3jgbXjgb8NCivjgYrjgZ8s44G+44GT44GoDQor44GK44GfLOOBvuOCguOCiw0KK+OBiuOBnyzjgoDjgaTjgo0NCivjgYrjgZ8s44Gf44GL44GXDQor44GK44GfLOOBqOOCguOBsuOCjQ0KK+OBiuOBnyzjgb/jgaTjgojjgZcNCivjgYrjgZ/jgass44Gq44GK44GNDQor44GK44GkLOOBsuOCjeOBjQ0KK+OBiuOBpOOBiyzjgb7jgZXjgoTjgZkNCivjgYrjgaTjgY0s44G/44Gk44KLDQor44GK44GE44GL44KPLOOBguOBhOOBkw0KK+OBiuOBiyzjgZHjgpPjgZgNCivjgYrjgYss44G+44GV44Gm44KLDQor44GK44GLLOOBguOBjeOCiQ0KK+OBiuOBi+OBoCzjgbLjgo3jgY0NCivjgYrjgYvjgaAs44KK44GVDQor44GK44GL44GgLOOBn+OBi+OBsuOCjQ0KK+OBiuOBi+OBoCzjgZnjgb/jgZMNCivjgYrjgYvjgZDjgaEs44Gf44GL44GXDQor44GK44GL44GELOOBl+OCk+OBhOOBoQ0KK+OBiuOBi+OBvuOBpCzjgYLjgZXjgZMNCivjgYrjgYvjgoLjgags44GC44Gk44GKDQor44GK44GL44KC44GoLOOBsuOBp+OChuOBjQ0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgb8NCivjgYrjgYvjgoLjgags44KA44Gt44KE44GZDQor44GK44GL44KC44GoLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiuOBi+OCguOBqCzjgoTjgZnjgbLjgo0NCivjgYrjgYvjgoLjgags44Gy44KN44KG44GNDQor44GK44GL44GuLOOBn+OBi+OBlw0KK+OBiuOBi+OBluOBjSzjgYLjgY3jgbLjgo0NCivjgYrjgY3jgoLjgags44G/44Gh44GKDQor44GK44GP44GuLOOCiOOBl+OBsuOBlQ0KK+OBiuOBj+OChOOBvizjgbLjgafjgY0NCivjgYrjgb8s44G144G/44GTDQor44GK44GuLOOBv+OBjQ0KK+OBiuOBrizjgoTjgZnjgZcNCivjgYrjga4s44KG44Gy44GhDQor44GK44Gu44GbLOOBleOBqOOCiw0KK+OBiuOBruOBluOBjSzjga7jgbbjgbLjgo0NCivjgYrjgorjgYgs44KG44Gf44GLDQor44GK44GW44GNLOOBn+OBi+OBsuOCjQ0KK+OBqOOBj+OBv+OChCzjgojjgZfjgYLjgY0NCivjgZXjgYTjgaEs44GI44GE44GE44GhDQor44GV44GE44Go44GGLOOBsuOBp+OBig0KK+OBleOBhOOBqOOBhizjgb7jgZXjgbbjgb8NCivjgZXjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOBv+OBoeOBr+OCiw0KK+OBleOBhOOBqOOBhizjga7jgorjgYoNCivjgZXjgYTjgajjgYYs44Go44KC44Gy44KNDQor44GV44GE44Go44GGLOOChuOBjeOBqA0KK+OBleOBhOOBqOOBhizjgYjjgaTjgZMNCivjga/jgYvjgb7jgaAs44KI44GX44Gf44G/DQor44GV44GL44GQ44GhLOOChOOBmeOBig0KK+OBleOBi+OBhCzjgZfjgZLjgosNCivjgZXjgYvjgY3jgbDjgoks44Gq44GK44GNDQor44GV44GL44GN44KC44GoLOOBsuOCjeOBteOBvw0KK+OBleOBi+OCguOBqCzjgbLjgo3jgZcNCivjgZXjgYvjgoLjgags44GY44KF44KT44GTDQor44GV44GL44KC44GoLOOBn+OBi+OBlw0KK+OBleOBi+OCguOBqCzjgojjgZfjgZMNCivjgZXjgYvjgoLjgags44G+44GV44GTDQor44G/44Gf44GrLOOBpuOBpOOChA0KK+OBleOBi+OBhuOBoSzjgYvjgYrjgooNCivjgZXjgY3jgoLjgags44GX44KT44GE44GhDQor44GV44GP44G+LOOBsuOBqOOBjQ0KK+OBleOBj+OCieOBhCzjgbLjgafjgYLjgY0NCivjgZXjga4s44Gy44KN44Gf44GLDQor44GV44GuLOOChuOBn+OBiw0KK+OBleOBrizjgoTjgZnjgbLjgZMNCivjgZXjgZXjgaAs44Gf44GE44GXDQor44GV44GV44Gv44KJLOOBi+OBiuOCiw0KK+OBleOBleOBjSzjgYvjgogNCivjgZXjgZXjgY0s44GT44GG44GYDQor44GV44GV44GNLOOBvuOCiuOBkw0KK+OBqOOBoOOBqyzjgZ/jgYvjgYoNCivjgZXjgZXjgY0s44KI44GX44GIDQor44GV44Gf44GRLOOBiOOBhOOBmA0KK+OBleOBqOOBhizjgYjjgooNCivjgZXjgajjgYYs44Gy44Gn44Gy44KNDQor44GV44Go44GGLOOBhOOBmuOBvw0KK+OBleOBqOOBhizjgZHjgYTjgYTjgaENCivjgZXjgajjgYYs44GR44KT44GE44GhDQor44GV44Go44GGLOOBj+OBq+OBsuOBkw0KK+OBleOBqOOBhizjgb7jgZXjgbLjgZMNCivjgZXjgajjgYYs44G/44Gk44KLDQor44GV44Go44GGLOOCguOBqOOBruOCig0KK+OBleOBqOOBhizjgorjgY3jgoQNCivjgZXjgajjgYYs44KK44KF44Gy44GhDQor44GV44Go44GGLOOBl+OCheOBng0KK+OBleOBqOOBhizjgZfjgoXjgpPjgZnjgZENCivjgZXjgajjgYYs44GZ44GZ44KADQor44GV44Go44GGLOOBn+OBi+OBsuOBqA0KK+OBleOBqOOBhizjgajjgZfjgbLjgZMNCivjgZXjgajjgYYs44KE44GZ44G144G/DQor44GV44Go44GGLOOBpOOCiOOBlw0KK+OBleOBqOOBhizjgZvjgYTjgZgNCivjgZXjgo/jgaAs44Gk44Gt44Gu44KKDQor44GV44KP44GgLOOChOOBmeOBsuOCjQ0KK+OBleOCj+OBoCzjgZfjgpPjgZQNCivjgYTjgo/jgZ8s44Gy44GV44Gv44KLDQor44GV44KP44GELOOChuOBsuOBoQ0KK+OBleOCj+OBhCzjgojjgZfjgYLjgY0NCivjgZXjgoTjga4s44Gf44GL44GL44GaDQor44Gb44GNLOOCiuOBiOOBkw0KK+OBm+OBjeOBkOOBoSzjgajjgYrjgosNCivjgZvjgY3jgZDjgaEs44KG44Gy44GhDQor44Gb44GN44GQ44GhLOOBr+OCi+OBig0KK+OBm+OBjeOBrSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZvjgY3jga4s44Gu44G844KLDQor44Gb44KT44GqLOOBk+OBhuOBmA0KK+OBm+OCiuOBluOCjyzjgaDjgYTjgZnjgZENCivjgZvjgags44GC44GN44KJDQor44GX44Gw44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBl+OBsOOBnyzjgajjgoLjgZMNCivjgZfjgbDjgZ8s44GY44KF44KT44GYDQor44GX44Gw44Gf44GrLOOBqOOCguOBjQ0KK+OBl+OBtuOBn+OBqyzjgZHjgYTjgZ/jgo3jgYYNCivjgZfjgYws44G+44GTDQor44GX44GS44Gu44G2LOOBv+OBoeOCiA0KK+OBl+OBvizjgb7jgobjgb8NCivjgZfjgb7jgaAs44Go44GX44Gy44GTDQor44GX44G+44GgLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBl+OBvuOCgOOCiSzjgYTjgY/jgoQNCivjgZfjgb/jgZos44Gf44GR44GXDQor44GX44G/44GaLOOBvuOBleOCiOOBlw0KK+OBl+OCguOBsOOChOOBlyzjgb/jgYsNCivjgZfjgoLjgYzjgo8s44GC44GN44KJDQor44GX44KC44Gy44GU44GXLOOBguOBjeOBsuOCjQ0KK+OBl+OCguOBhOOBpyzjgZ/jgYvjgZcNCivjgZfjgarjgaAs44Go44GX44G/44GkDQor44GX44Gt44GELOOBsuOCjeOChuOBjQ0KK+OBl+OCk+OBjOOBhCzjgYvjgaTjgoQNCivjgZfjga7jgaAs44GT44GG44GE44GhDQor44GX44Gu44Gv44KJLOOBvuOBleOBsuOBpw0KK+OBl+OBruOBluOBjSzjgZHjgYTjgZnjgZENCivjgZfjgYrjgoQs44GV44Go44GXDQor44GX44KJ44Gv44G+LOOBjeOCh+OBkw0KK+OBl+OCieOBhOOBlyzjgZXjgajjgosNCivjgZfjgonjgYTjgZcs44GL44Ga44KI44GXDQor44GX44Gf44KJLOOBv+OBjeOBkw0KK+OBl+OCh+OBmCzjgozjgYTjgZjjgo0NCivjgZfjgofjgZgs44GV44Go44GTDQor44G+44GZ44KE44G+LOOCiOOBl+OBv+OBpA0KK+OBl+OCheOBqCzjgZ/jgZHjgYvjgZoNCivjgZ3jgYjjgaAs44GV44Gg44G/44GhDQor44Gd44GtLOOBjeOCiOOBlw0KK+OBneOBreOBoCzjgZPjgYbjgZgNCivjgZ3jga7jgbks44Gm44Gk44Gy44GVDQor44Gd44Gu44G5LOOBn+OBhOOBlw0KK+OBneOCieOBrizjgYvjgaTjgb8NCivjgZnjgaAs44KG44GLDQor44GZ44GM44GELOOBn+OBoOOBlw0KK+OBmeOBjOOCj+OCiSzjgZPjgYbjgZgNCivjgZnjgY7jgoLjgags44Gf44GL44Gy44KNDQor44GZ44GO44KC44GoLOOBqOOCguOCiOOBlw0KK+OBmeOBjuOBhuOCiSzjgZ/jgY/jgoQNCivjgZnjgY7jgoTjgb4s44Gf44KN44GGDQor44GZ44GO44KE44G+LOOChuOBsuOBoQ0KK+OBmeOBjuOChOOBvizjgZ/jgYvjgZcNCivjgZnjgZjjgoPjgY8s44Gf44GR44GXDQor44GZ44GLLOOBsuOCjeOChuOBjQ0KK+OBmeOBkeOBjOOCjyzjgZfjgpMNCivjgZnjgb/jgarjgYws44G+44GV44Gy44GnDQor44GZ44G/44GK44GLLOOChuOBv+OBkw0KK+OBmeOBquOChOOBvizjgbLjgafjgYvjgZoNCivjgZnjgZrjgY0s44Gy44Gn44GNDQor44GZ44Ga44GNLOOBn+OBj+OBig0KK+OBhOOBl+OBhCzjgb7jgZXjgbLjgo0NCivjgZnjgZrjgY0s44G+44GV44GXDQor44GZ44Ga44GNLOOBv+OBuw0KK+OBmeOBmuOBjSzjgarjgYrjgbLjgo0NCivjgoTjgb7jgZfjgo0s44Gu44KK44KG44GNDQor44GZ44Ga44GNLOOBm+OBhOOBvg0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgo0NCivjgZnjgZrjgY0s44Gf44GL44G+44GVDQor44GZ44Ga44GNLOOCiOOBl+OBruOCig0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZ/jgbDjgZMs44Gy44Gn44G+44GVDQor44Gf44Gw44GfLOOCjOOBhOOBkw0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgoTjgZkNCivjgZ/jgbDjgZ8s44Go44GK44KLDQor44Gf44Gh44Gw44GqLOOBsuOCjeOChuOBjQ0KK+OBn+OBjOOBvyzjgY3jgb/jgZMNCivjgb7jgb7jgaAs44Go44KC44KEDQor44Gf44GM44KPLOOBkeOCk+OBhOOBoQ0KK+OBn+OBmOOBvizjgb7jgZXjgoQNCivjgZ/jgYvjgbDjgoTjgZcs44Gy44KN44GXDQor44Gf44GL44GgLOOChOOBmeOBsuOBkw0KK+OBn+OBi+OBoCzjgZfjgZLjgosNCivjgZ/jgYvjgY4s44Gf44GL44KG44GNDQor44Gf44GL44GOLOOBsuOBp+OBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBmOOChw0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgobjgY0NCivjgZ/jgYvjga/jgZcs44GL44Ga44Gu44KKDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgY/jgb/jgZMNCivjgo/jgZ/jgarjgbks44G+44GV44GNDQor44Gf44GL44Gv44GXLOOBpuOCi+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgaTjgZANCivjgZ/jgYvjga/jgZcs44Go44GX44KG44GNDQor44Gf44GL44Gv44GXLOOBn+OBhOOBm+OBhA0KK+OBn+OBi+OBhCzjgZHjgpPjgZgNCivjgZ/jgYvjgY/jgoks44G+44GT44GoDQor44Gf44GL44GP44KJLOOCguOBqOOBsuOCjQ0KK+OBn+OBi+OBvuOBoSzjgobjgY0NCivjgZ/jgYvjgb7jgaQs44Go44KC44KIDQor44G+44Gk44Gq44GMLOOBn+OBi+OBsuOCjQ0KK+OBn+OBi+OCguOBqCzjgYjjgb8NCivjgZ/jgYvjgoDjgoks44Gg44GE44GZ44GRDQor44Gf44GL44GK44GLLOOBl+OCk+OChA0KK+OBn+OBi+OBmeOBjizjgobjgY3jgYoNCivjgZ/jgYvjgoQs44Gy44KN44GNDQor44Gf44GL44KE44G+LOOBsuOCjeOBkw0KK+OBjeOBn+OBr+OCiSzjgYTjgZrjgosNCivjgZ/jgZHjgaAs44G+44GV44GNDQor44Gf44GR44GgLOOBv+OBl+OChw0KK+OBn+OBkeOBr+OBqizjgb7jgY0NCivjgZ/jgZHjgb7jgaQs44KE44GZ44GXDQor44Gf44GR44GK44GLLOOChuOBn+OBiw0KK+OBhOOBl+OBi+OCjyzjgZPjgbjjgYQNCivjgZ/jgZHjgZfjgZ8s44G+44GV44G144G/DQor44Gf44GR44Gf44GrLOOBsuOBp+OBjQ0KK+OBn+OBkeOBhuOBoSzjgZHjgpPjgZnjgZENCivjgZ/jgZHjgYbjgaEs44GX44G7DQor44Gf44GR44KE44G+LOOBi+OBpOOBruOCig0KK+OBn+OBkeOBluOCjyzjgYLjgY3jgojjgZcNCivjgZ/jgY3jgZbjgo8s44KE44GZ44Gy44KNDQor44Gf44GN44GW44KPLOOCiOOBl+OBjQ0KK+OBn+OBvuOBhCzjga7jgbbjgYvjgaQNCivjgZ/jgarjga/jgZcs44GUDQor44Gf44Gq44GLLOOBr+OCi+OBkw0KK+OBn+OBquOBiyzjgbLjgafjgYLjgY0NCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBkeOCk+OBhOOBoQ0KK+OBn+OBquOBiyzjgY/jgavjgbLjgacNCivjgZ/jgarjgYss44G+44GV44Gy44KNDQor44Gf44Gq44GLLOOBvuOBleOBi+OBpA0KK+OBn+OBquOBiyzjgb7jgZXjgb8NCivjgZ/jgarjgYss44G/44Gu44KLDQor44Gf44Gq44GLLOOCguOBqOOBteOBvw0KK+OBn+OBquOBiyzjgarjgYrjgY0NCivjgZ/jgarjgYss44Gu44G244KG44GNDQor44Gf44Gq44GLLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgZXjgajjgZcNCivjgZ/jgarjgYss44Gf44GR44GXDQor44Gf44Gq44GLLOOBjeOCiOOBmA0KK+OBhOOBl+OBoCzjgaTjgajjgoANCivjgZ/jgarjgYss44Gh44GL44KJDQor44Gf44Gr44GQ44GhLOOBqOOCguOChuOBjQ0KK+OBn+OBq+OBkOOBoSzjga7jgbbjgobjgY0NCivjgZ/jgavjgYQs44GR44KT44Gf44KN44GGDQor44Gf44Gr44KA44KJLOOBk+OBmeOBkQ0KK+OBn+OBq+OBiuOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgpPjga4s44Gy44KN44GXDQor44Gf44Gs44G+LOOBkeOBhOOBkw0KK+OCiOOBk+OChOOBvizjgoLjgajjgY0NCivjgZ/jgZfjgo0s44Gb44GE44GYDQor44Gf44GX44KNLOOBi+OBmuOBsuOBqA0KK+OBn+OBpizjgobjgYbjgZMNCivjgZ/jgYbjgoks44GI44GE44GE44GhDQor44Gf44Ge44GILOOBiOOBhOOBmA0KK+OBn+OBmuOBkSzjgaTjga3jgbLjgo0NCivjgabjgpPjgoIs44G+44GV44Gy44KNDQor44Gm44KJ44GgLOOBruOCiuOBsuOCjQ0KK+OBpuOCieOCguOBqCzjgYvjgZrjgarjgYoNCivjgabjgonjgYrjgYss44Gu44G844KLDQor44Gm44Ga44GLLOOBkeOCk+OChA0KK+OBqOOBkOOBoSzjgYvjgZrjgYoNCivjgajjgb4s44GX44GS44KLDQor44Go44G+LOOBkeOCk+OBhOOBoQ0KK+OBqOOBsuOCg+OBvizjgobjgorjgZMNCivjgajjgY3jgYrjgYss44G/44Gh44KIDQor44Gf44Gr44KE44G+LOOBqOOCguOBkw0KK+OBv+OBhuOCiSzjgobjgY3jgYoNCivjgajjgY/jgoks44G+44KC44KLDQor44Go44GP44KE44G+LOOCj+OBn+OCiw0KK+OBqOOBv+OBhOOBlyzjgYLjgY3jgokNCivjgajjgb/jgYvjgo8s44GR44KT44GE44GhDQor44Go44G/44Gq44GMLOOBsuOBp+OBqA0KK+OBqOOBv+OBnyzjgb7jgZPjgagNCivjgajjgb/jgZ8s44KG44GG44GTDQor44GK44KC44KKLOOBvuOBk+OBqA0KK+OBqOOCguOBnyzjgYvjgojjgZMNCivjgajjgoLjga4s44Gh44GI44GTDQor44Go44KK44GL44GELOOBiOOBhOOBmA0KK+OBqOOCiuOBhuOBvyzjgZHjgYQNCivjgajjgaTjgYss44Gy44KN44KG44GNDQor44Go44KI44GgLOOBmOOCheOCk+OBkw0KK+OBqOOCiOOBoCzjgZPjgYbjgYTjgaENCivjgajjgojjgYrjgYss44Gy44KN44KE44GZDQor44Gk44Gh44GgLOOBi+OBmuOChuOBjQ0KK+OBpOOBoCzjgZ/jgYvjgZfjgZINCivjgaTjgZjjgZ/jgass44Gy44Gn44GC44GNDQor44Gk44GL44KC44GoLOOBneOBsuOBoQ0KK+OBpOOBi+OCguOBqCzjgYvjgZrjgYoNCivjgaTjgYvjgo/jgY0s44Gy44KN44KEDQor44Gk44KL44G+44GNLOOBj+OBq+OBsuOBkw0KK+OBhOOBoeOBsOOCk+OBjOOBmyzjga7jgorjgZMNCivjgZXjgYvjgYQs44GC44Gk44GXDQor44GG44Gh44GgLOOBteOBv+OBiA0KK+OBi+OBquOBiuOBiyzjgoLjgajjgojjgZcNCivjgYbjgaHjgaAs44G+44GV44KG44GNDQor44GG44Gh44GG44G/LOOBsuOBp+OBsuOBkw0KK+OBhuOBoeOChOOBvizjgZHjgYTjgZgNCivjgYbjgaHjgoTjgb4s44Gq44GK44GNDQor44GG44GgLOOCiOOBl+OBruOBtg0KK+OBhuOBoOOBjOOCjyzjgYLjgoTjgZMNCivjgYrjgZfjgb4s44GR44GE44GE44GhDQor44GG44GI44GgLOOBv+OBjeOBsuOCjQ0KK+OBhuOBiOOBoCzjgZ/jgY/jga7jgbYNCivjgYbjgYjjga/jgoks44GT44GG44GYDQor44GG44GI44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBhuOBiOOBrizjgb7jgZXjgaTjgZANCivjgYbjgYjjga4s44KI44GX44Gm44KLDQor44GG44GI44GZ44GOLOOBsuOCjeOBguOBjQ0KK+OBhuOBiOOBpOOBjSzjgb7jgZXjgZ/jgYsNCivjgYbjgYvjgo8s44KI44GG44GTDQor44GG44G+44Ga44KBLOOChuOBjeOBkw0KK+OBhuOCgeOBr+OCiSzjgb/jgbvjgZMNCivjgYbjgoHjgoDjgoks44GL44Ga44Gy44KNDQor44GG44KB44GW44KPLOOBk+OBuOOBhA0KK+OBhuOBrizjgZ/jgaTjgoQNCivjgYbjga4s44Gq44GK44Gy44GTDQor44GG44KJ44KC44GoLOOBteOBv+OBn+OBiw0KK+OBhuOCi+OBvizjgobjgY0NCivjgYbjgZfjgbAs44GC44Gk44GTDQor44Gq44GM44GfLOOBn+OCjeOBhg0KK+OBhuOBl+OBkOOBlSzjgYLjgaTjgZMNCivjga/jgZvjgYzjgo8s44GI44GE44GLDQor44GV44GL44G+44GNLOOCiOOBl+OBv+OBpA0KK+OBhuOCj+OBuSzjgbLjgafjgobjgY0NCivjgo/jgaAs44G+44GV44GNDQor44KP44GL44GKLOOBiuOBleOCgA0KK+OCj+OBi+OBiizjgbLjgo3jga7jgooNCivjgo/jgY3jgZ8s44G+44GV44G/DQor44GE44Gu44G+44GfLOOBn+OBhOOBoQ0KK+OCj+OBj+OBhCzjgb7jgZXjgbLjgacNCivjgo/jgZfjgZbjgo8s44GX44KT44KEDQor44KP44GX44Ga44GLLOOBqOOBl+OBig0KK+OCj+OBn+OBuSzjgbLjgo3jgbXjgb8NCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgbLjgZXjgoQNCivjgo/jgZ/jgarjgbks44GR44GEDQor44KP44Gf44Gq44G5LOOBvuOBleOBteOBvw0KK+OCj+OBn+OBquOBuSzjgb/jga7jgosNCivjgo/jgZ/jgarjgbks44KK44KF44GfDQor44KP44Gf44Gq44G5LOOBqOOBl+OBguOBjQ0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44KG44KKDQor44Go44KI44GfLOOBvuOBleOChuOBjQ0KK+OCj+OBn+OCiizjgYLjgY3jgZMNCivjgajjgb/jgoTjgZks44GR44GE44GYDQor44KE44GI44GM44GNLOOCjOOBhOOBkw0KK+OChOOBjizjgojjgYbjgZMNCivjgoTjgY4s44Gy44KN44G/DQor44KE44GO44Gs44G+LOOBvuOBleOChA0KK+OChOOBjyzjgZHjgYTjgZMNCivjgoTjgb7jgaAs44GT44GG44GYDQor44KE44G+44GgLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBoCzjga7jgorjgobjgY0NCivjgoTjgb7jgY7jgZcs44GL44Ga44Gy44KNDQor44KE44G+44GQ44GhLOOBl+OBkuOCiw0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgYoNCivjgoTjgb7jgZDjgaEs44Gk44KI44GXDQor44KE44G+44GQ44GhLOOBqOOCguOChuOBjQ0KK+OChOOBvuOBk+OBlyzjgaDjgYTjgaENCivjgoTjgb7jgoLjgags44Gy44Gn44GNDQor44KE44G+44KC44GoLOOBsuOCjeOBi+OBmg0KK+OChOOBvuOCguOBqCzjgbLjgo3jgb8NCivjgoTjgb7jgoLjgags44Gy44Go44GXDQor44KE44G+44KC44GoLOOBkeOBhOOBkw0KK+OBn+OBoeOBsOOBqizjgajjgZfjgbLjgZUNCivjgoTjgb7jgoLjgags44KI44GX44GC44GNDQor44KE44G+44KC44GoLOOBv+OCiOOBkw0KK+OBr+OCieOBn+OBqyzjgojjgZfjgb7jgZUNCivjgoTjgb7jgarjgYss44Gg44GE44GZ44GRDQor44KE44G+44GtLOOBguOBjeOBqA0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgbLjgZMNCivjgoTjgb7jgZfjgZ8s44G+44GNDQor44KE44G+44GX44GfLOOCiOOBhuOBkw0KK+OChOOBvuOBn+OBqyzjgYLjgaTjgZcNCivjgoTjgb7jgYbjgaEs44GT44GG44GE44GhDQor44KE44G+44GW44GNLOOBqOOBl+OChuOBjQ0KK+OChOOBqizjgYvjgYrjgosNCivjgoTjgarjgbks44GC44GN44KJDQor44KE44Gq44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OChOOBquOBjizjgb7jgZXjgbLjgo0NCivjgoTjgarjgY7jgaAs44GR44KT44GYDQor44KE44GV44GLLOOBn+OBkeOBig0KK+OChOOBmeOBoCzjgZvjgYTjgYTjgaENCivjgoTjgZnjgbXjgY8s44GX44KF44GYDQor44KE44GZ44GL44KPLOOBvuOBleOBqOOBlw0KK+OCiOOBk+OBleOCjyzjgZjjgoXjgpMNCivjgojjgZPjgZ8s44GR44KT44GE44GhDQor44KI44GT44GfLOOBqOOCguOBkw0KK+OBr+OCieOBoCzjgZ/jgYvjgZcNCivjgojjgZPjgYbjgaEs44KI44GX44G144G/DQor44KI44GT44GG44GhLOOBguOBjeOBsuOBkw0KK+OCiOOBk+OChOOBvizjgbLjgo3jgZcNCivjgojjgZPjgoTjgb4s44Gq44GK44GTDQor44KI44Gt44GgLOOBn+OBi+OBlw0KK+OCiOOBreOBrizjgajjgoLjgZMNCivjgYvjgZXjga/jgoks44GC44GN44KJDQor44KI44GX44GgLOOBsuOCjeOBguOBjQ0KK+OCiOOBl+OBoCzjgbLjgo3jgY0NCivjgojjgZfjgaAs44KK44KHDQor44KI44GX44GgLOOBqOOBl+OBguOBjQ0KK+OCiOOBl+OBoCzjgorjgoXjgbLjgaENCivjgojjgZfjganjgoEs44GL44Ga44Gy44GnDQor44KI44GX44Gv44KJLOOBvuOBleOBv+OBpA0KK+OCiOOBl+OBhCzjgobjgZ/jgYsNCivjgojjgZfjgYQs44GN44KI44GL44GaDQor44KI44GX44GL44KPLOOBn+OBj+OChA0KK+OCiOOBl+OBvyzjgbLjgo3jgZcNCivjgojjgZfjga4s44GL44Ga44Gy44KNDQor44KI44GX44GuLOOBk+OBmeOBkQ0KK+OCiOOBl+OBrizjgb7jgZXjgbLjgo0NCivjgojjgZfjgYrjgYss44GX44KT44GZ44GRDQor44KI44GX44GK44GLLOOBvuOBk+OBqA0KK+OCiOOBl+OBn+OBkSzjgYvjgZrjga7jgbYNCivjgojjgZfjgZbjgo8s44Gq44GK44GNDQor44KG44Ga44Gv44KJLOOBquOBiuOBvw0KK+OBnOOCk+OBkizjgZXjgajjgb8NCivjgZrjgZcs44Gy44Gn44GKDQor44GU44G/LOOBmOOCheOCkw0KK+OBlOOBqCzjgbLjgo3jgZcNCivjgYTjgZHjgaAs44Gq44GK44GoDQor44GE44G+44GY44KHLOOBsuOCjeOBlw0KK+OBguOBuSzjgZfjgZrjgYsNCivjgYvjgajjgYYs44Gf44GL44Gy44KNDQor44GL44KP44Gw44GfLOOBleOBqOOCiw0KK+OBk+OBsOOChOOBlyzjgb7jgZPjgagNCivjgZPjgpPjgaks44GX44GK44KKDQor44GP44G8LOOBn+OBhOOBjQ0KK+OBj+OCieOCguOBoSzjgbXjgb/jgYoNCivjgb7jgovjgoTjgb4s44KE44GZ44GXDQor44KC44KK44GL44GPLOOBqOOCguOBkw0KK+OCgOOCieOBiuOBiyzjgZHjgpPjgYTjgaENCivjgarjgYzjgZfjgb4s44GT44GG44GE44Gh44KNDQor44Gq44GLLOOBn+OBoOOBlw0KK+OBquOBi+OBr+OCiSzjgajjgZfjgYvjgaQNCivjgarjgYvjgoDjgoks44GT44GG44GYDQor44Gq44GL44GbLOOBi+OBmuOBn+OBiw0KK+OBquOCiuOBnyzjgb/jgYoNCivjgavjgZfjgoDjgoks44Gy44KN44GNDQor44Gu44Gq44GLLOOBsuOCjeOBlw0KK+OBiuOBjOOCjyzjgZ/jgZHjga/jgosNCivjgYrjgZDjgoks44G+44GV44Gy44KNDQor44GK44G/LOOBvuOBquOBtg0KK+OBiuOBi+OBrizjgZfjgZLjgosNCivjgZfjgb7jgaAs44GX44GS44KLDQor44GX44G/44GaLOOChuOBjeOBsuOBkw0KK+OBl+OCgOOCiSzjgY/jgavjgoDjga0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44GTDQor44Gf44GL44G+44GkLOOCiOOBhuOBkw0KK+OBhuOBiOOBoCzjgojjgZfjgYLjgY0NCivjgYbjgZgs44KG44GN44GKDQor44GG44Gk44G/LOOBsuOCjeOChuOBjQ0KK+OBguOBuSzjgojjgYbjgZMNCivjgZPjgpPjgaks44Go44GX44KEDQor44Gf44GL44Gu44GG44GhLOOBn+OBj+OChA0KK+OBhOOBruOBhuOBiCzjgaTjgojjgZcNCivjgarjgYvjga/jgoks44Go44G/DQor44GC44Gg44GhLOOBsuOBleOBiA0KK+OBquOBi+OBrizjgYjjgb/jgZMNCivjgYLjgYTjgbAs44Gy44Gn44Gq44GKDQor44GC44GE44GwLOOCiOOBl+OBig0KK+OBguOBhOOBsCzjgajjgYrjgosNCivjgYLjgYTjgaAs44G+44GT44GoDQor44GC44GE44Gv44KJLOOBvuOBleOChA0KK+OBguOBi+OBhOOBlyzjgZjjgoXjgpPjgZgNCivjgYLjgYvjgYTjgo8s44GL44Ga44Gu44GX44KTDQor44GC44GL44GK44GOLOOBsuOBp+OChuOBjQ0KK+OBguOBjeOBnyzjgb/jgaTjgb7jgZUNCivjgYLjgb7jga4s44GR44KT44GE44GhDQor44GC44GK44GNLOOCgOOBpOOBig0KK+OBguOBiuOBjSzjgZQNCivjgYLjgYrjgazjgb4s44GX44KF44Gy44GhDQor44GC44GK44KE44GOLOOCiOOBsuOBoQ0KK+OBguOCieOBjSzjgZ/jgYvjgZcNCivjgYLjgorjgb7jgaEs44GR44KT44GV44GPDQor44GC44KK44GfLOOCgOOBreOBsuOCjQ0KK+OBguOBleOBoCzjgbLjgajjgZcNCivjgYLjgZXjgYjjgaAs44KG44Gf44GLDQor44GC44GV44Gv44KJLOOBsuOCjeOBjQ0KK+OBguOBleOBi+OCjyzjga7jgorjgYLjgY0NCivjgYLjgZXjgoLjgags44Gf44GR44GXDQor44GC44GV44GuLOOBleOBqOOBlw0KK+OBguOBn+OBkOOBoSzjgb7jgZXjgbLjgo0NCivjgYLjgoTjgY0s44GC44Gk44GXDQor44Gw44GwLOOBvuOBleOBiuOBvw0KK+OBsOOBsCzjgojjgZfjgbLjgo0NCivjgbDjgbAs44Go44GX44Gy44GnDQor44Gw44KTLOOBpOOCiOOBlw0KK+OBoOOBhOOBk+OBjyzjgarjgYrjgZMNCivjgaDjgaYs44Gy44KN44GTDQor44GV44GuLOOChuOBjeOBkw0KK+OBv+OBpOOBiuOBiyzjgbLjgajjgZcNCivjgafjgpPjgaAs44GI44GE44GYDQor44Gp44GELOOBguOBjeOCiQ0KK+OBiOOCk+OBqSzjgajjgZfjga7jgbYNCivjgYjjgpPjgaks44Gy44Gn44GC44GNDQor44GI44GW44KPLOOBpuOBpOOChA0KK+OBteOBmOOBiCzjgZ/jgYvjgbLjgo0NCivjgbXjgZjjgYQs44KI44GX44Gv44KLDQor44G144GY44GELOOBi+OBmuOBsuOBkw0KK+OBteOBmOOBvuOBjSzjgaTjgajjgoANCivjgbXjgZjjgoLjgags44KG44Gf44GLDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBteOBmOOCgOOCjSzjga/jgovjgZMNCivjgoLjgo3jgZrjgb8s44GX44KF44KT44GZ44GRDQor44G144GY44GV44KPLOOBi+OBiuOCiw0KK+OBteOBmOOBnyzjgarjgarjgZMNCivjgbXjgYvjgZss44Gf44GR44GXDQor44G144GP44GgLOOBv+OBoeOCiA0KK+OBteOBj+OBqeOCgSzjgZfjgZLjgbLjgZMNCivjgbXjgY/jgYQs44GY44KF44Gr44GhDQor44G144GP44Gq44GMLOOBl+OBkuOBjQ0KK+OBteOBj+OBl+OBvizjgYvjgZrjgbLjgZMNCivjgbXjgY/jgZbjgo8s44GI44G/DQor44G144KL44Gw44KE44GXLOOBqOOCguOBsuOBkw0KK+OBteOCi+OBi+OCjyzjgojjgbLjgaHjgo0NCivjgbXjgovjgYvjgo8s44Gq44KK44Gy44GnDQor44GULOOBn+OBkeOBteOBvw0KK+OBlOOBvuOCiyzjgYvjgZrjgbLjgo0NCivjgZTjgags44G+44GV44GC44GNDQor44GU44GoLOOBvuOBleOBi+OBpA0KK+OBlOOBqCzjgb/jgo8NCivjga7jgoLjgags44G/44GN44GKDQor44Gv44GO44KP44KJLOOBk+OBhuOBmA0KK+OBr+OBhOOChOOBvizjgYvjgpPjgZgNCivjga/jgb4s44GR44KT44GYDQor44Gv44G+44GhLOOBsuOCjeOChuOBjQ0KK+OBr+OBvuOBoCzjgZ/jgaTjgoQNCivjga/jgb7jgZ/jgass44GX44Gb44GEDQor44Gv44Gq44GELOOBn+OBi+OBlw0KK+OBr+OBquOBnyzjgbLjgZXjgZcNCivjga/jga3jgZgs44G144G/44Gy44GVDQor44Gv44KT44GW44KPLOOBsuOBp+OBig0KK+OBr+OCiSzjgb7jgorjgYsNCivjga/jgoks44GC44GN44KJDQor44Gv44KJ44GgLOOBsuOBp+OBjQ0KK+OBr+OCieOBoCzjgYLjgZHjgb8NCivjga/jgZvjgYzjgo8s44Gv44GqDQor44Gv44Gb44GM44KPLOOBmeOBmeOCgA0KK+OBr+OBm+OBjOOCjyzjgZfjgocNCivjga/jgZfjgZDjgaEs44Gf44Gk44KEDQor44Gv44GX44KC44GoLOOBoeOBmuOBiw0KK+OBlOOBqCzjgYvjgYrjgosNCivjgYvjgZjjgo/jgoks44KK44KF44GfDQor44Gv44GZ44G/LOOBjeOCh+OBkw0KK+OBi+OBn+OChOOBquOBjizjgYvjgZrjgb/jgaENCivjga/jgZ/jgZHjgoTjgb4s44GX44KF44Gy44GhDQor44KA44KJ44GELOOBquOBiuOBsuOBlQ0KK+OBr+OBn+OBqyzjgZfjgZLjgYoNCivjga/jgaPjgajjgoos44KE44GZ44Gy44GoDQor44Gv44Gj44Go44KKLOOBsuOCieOBjw0KK+OBr+OChOOBlyzjgbLjgo3jgZMNCivjgYrjgZnjgb8s44G+44GV44Gy44GTDQor44Gv44KE44GXLOOBv+OBuw0KK+OBr+OChOOBlyzjgZfjgpPjgZgNCivjga/jgoTjgZfjgaAs44GL44Ga44Gy44GnDQor44Gy44GMLOOBjeOCiOOBlw0KK+OBsuOBjOOBlyzjgobjgZ/jgYsNCivjgbLjgYzjgZfjgaAs44Gq44GK44GTDQor44Go44KI44GgLOOBpuOBpOOChA0KK+OBsuOBrizjgb7jgZXjgojjgZcNCivjgbLjgoks44KE44GZ44KG44GNDQor44Gy44KJ44KC44GoLOOBkeOBhA0KK+OBsuOCieOBiizjgojjgZfjgZMNCivjgbLjgonjgYos44Gk44GQ44Gu44KKDQor44Gy44KJ44GfLOOBiOOBhOOBhOOBoQ0KK+OBsuOCieOChOOBvizjgZfjgpPjgYTjgaENCivjgbLjgo3jgYQs44G/44Gk44KG44GNDQor44Gy44KN44GL44KPLOOCiuOCheOBsuOBoQ0KK+OBsuOCjeOBi+OCjyzjgoTjgZnjga7jgbYNCivjgbLjgo3jgb7jgZks44Gf44GL44KG44GNDQor44Gy44KN44GbLOOBn+OBi+OChuOBjQ0KK+OBsuOCjeOBmyzjgb7jgZXjgZMNCivjgbLjgZfjgoQs44GL44Ga44Gq44KKDQor44G744GX44KHLOOCiOOBl+OBruOBtg0KK+OBu+OCk+OBoCzjgZXjgY0NCivjga/jgoTjgZcs44Gf44GR44GKDQor44G744KT44G+LOOCiuOCheOBmeOBkQ0KK+OBu+OCiuOBkOOBoSzjgZfjgoXjgbLjgaENCivjgbvjgorjgYQs44KG44Gy44Gh44KNDQor44G744GXLOOBn+OBkeOBsuOBkw0KK+OBu+OBneOBhCzjgabjgaTjgoQNCivjgbvjgZ3jgb8s44GY44KF44KT44GTDQor44G744Gj44GfLOOBvuOBleOBqA0KK+OBteOBj+OCjeOBhCzjgb7jgZXjgobjgY0NCivjgbXjgovjgoQs44Gq44GK44G/DQor44GE44G244GLLOOBn+OBkeOBlw0KK+OBhOOBoeOBsCzjgZ/jgYvjgZcNCivjgYTjgaHjga/jgoks44Gu44KK44GL44GaDQor44GE44Gh44GL44KPLOOCiOOBn+OCjeOBhg0KK+OBhOOBoeOCgOOCiSzjgYvjgZrjgobjgY0NCivjgYTjgaHjga7jgZvjgY0s44G/44Gk44KLDQor44GE44GE44GgLOOBn+OBi+OBig0KK+OBhOOBhOOBoCzjgZXjgajjgZcNCivjgYTjgYTjgZjjgb4s44GC44GN44GTDQor44GX44Gu44Gv44KJLOOBv+OBu+OBkw0KK+OBhOOBkeOBoCzjga7jgZ7jgoANCivjgYTjgZHjgaAs44Gf44GR44GXDQor44GE44GR44GgLOOBpuOCi+OBig0KK+OBhOOBkeOBoCzjgbLjgo3jgb8NCivjgYTjgZHjgZbjgo8s44GC44GN44Gy44GTDQor44GE44G+44GELOOBi+OBpOOChA0KK+OBhOOBvuOBhCzjgoTjgZnjgYoNCivjgYTjgb7jgYQs44G+44GV44Gy44GnDQor44GE44G+44GNLOOBkeOCk+OBmA0KK+OBhOOBvuOCgOOCiSzjgYLjgY3jgbLjgagNCivjgYTjgoLjgags44Gd44Gy44GhDQor44GC44G5LOOBn+OBi+OBlw0KK+OBhOOBquOBoCzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44Gy44KN44GXDQor44GE44Gu44GG44GILOOBmOOCheOBq+OBoeOCjQ0KK+OBhOOBruOBhuOBiCzjgajjgZfjgbLjgo0NCivjgYTjga7jgYbjgYgs44Go44GX44KEDQor44GE44KK44GILOOBmOOCheOCk+OBkw0KK+OBpOOCi+OBiuOBiyzjgojjgYbjgZMNCivjgYrjga/jgZcs44Gv44GY44KBDQor44GE44GX44GgLOOCiuOBiA0KK+OBhOOBl+OBoCzjgobjgY0NCivjgYTjgZfjgaAs44KG44Gf44GLDQor44GE44GX44GgLOOCiOOBhuOBkw0KK+OBhOOBl+OBkOOCjSzjgYvjgZrjgZ/jgYsNCivjgYTjgZfjga/jgoks44G+44KG44G/DQor44GE44GX44Gv44KJLOOBkeOBhOOBnw0KK+OBhOOBl+OBhCzjgY/jgavjgbLjgZMNCivjgYTjgZfjgYvjgo8s44G/44Gu44KLDQor44GE44GX44GL44KPLOOBkeOCk+OBmeOBkQ0KK+OBhOOBl+OCj+OBnyzjgZfjgofjgbLjgaENCivjgYTjgajjgYYs44KI44GX44KE44GZDQor44GE44Go44GGLOOChuOBjeOBkw0KK+OBhOOBqOOChOOBvizjgajjgoLjgbLjgo0NCivjgYTjgaTjgY0s44Gf44GL44GXDQor44GE44KP44GNLOOBvuOBleOBsuOBkw0KK+OBhOOCj+OBleOBjSzjgYvjgZrjgYoNCivjgYTjgZrjgaQs44KI44GX44Gy44GTDQor44GY44G2LOOBsuOBqOOBlw0KK+OBi+OBqeOBhCzjgbLjgZXjgajjgZcNCivjgYLjgaDjgaEs44KG44GG44GYDQor44GL44GELOOBkeOCk+OBmA0KK+OBi+OBhOOBmyzjgZPjgYbjgZgNCivjgYvjgYTjgZrjgYss44Gv44GY44KBDQor44GL44GY44KP44KJLOOCiOOBl+OBjQ0KK+OBi+OBjSzjgZfjgZLjgYoNCivjgYvjgY3jgb8s44GY44KF44KT44GTDQor44GZ44GO44GfLOOBv+OBpOOBsuOBkw0KK+OBi+OBj+OBn+OBqyzjgb7jgZXjga7jgooNCivjgYvjgb/jgbDjgoTjgZcs44GC44GN44KJDQor44GL44G/44GM44GNLOOBvuOBleOBruOCig0KK+OBi+OBv+OChCzjgZ/jgYvjgZcNCivjgYvjgoLjgaAs44GC44GN44GTDQor44GL44KC44GoLOOBqOOBl+OBig0KK+OBi+OCk+OBsOOChOOBlyzjgYvjgZrjgbLjgo0NCivjgYvjga3jgZMs44GT44GG44Gf44KN44GGDQor44GL44Gt44GTLOOBn+OBkeOBlw0KK+OBi+OBreOBkyzjgobjgYbjgZgNCivjgYvjga3jgZMs44GI44G/44GTDQor44GL44Gr44GV44KPLOOBpuOCi+OChOOBmQ0KK+OBi+OCiyzjgZHjgpPjgZgNCivjgYvjgZfjgo/jgY4s44Gf44GL44KG44GNDQor44GL44GZ44G/LOOBsuOCjeOBguOBjQ0KK+OBi+OBn+OBjuOCiizjgbLjgo3jgZMNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBi+OBpOOBqOOBlw0KK+OBi+OBqOOBhizjgZPjgYbjgZgNCivjgYvjgajjgYYs44KM44GE44GNDQor44GL44Go44GGLOOChOOBmeOBkw0KK+OBn+OBkOOBoSzjgYvjgaTjgbLjgZMNCivjgYvjgajjgYYs44Gu44KK44Gy44GnDQor44GL44Go44GGLOOBleOBqOOBlw0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgYvjgaTjgoks44Gf44KC44GkDQor44Gd44GULOOCguOBqOOBsuOCjQ0KK+OBi+OCj+OBsuOBqCzjgZfjgpPjgZQNCivjgYvjgo/jgYQs44G/44Gk44KEDQor44GL44KP44GL44G/LOOBj+OBq+OBsuOBkw0KK+OBi+OCj+OBvyzjgb/jgaTjgYoNCivjgYvjgo/jgoDjgoks44Gf44Gk44KEDQor44GL44KP44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBi+OCj+OBleOBjSzjgabjgaTjgoQNCivjgYvjgo/jgZXjgY0s44KI44Gy44Gh44KNDQor44GL44KP44GG44GhLOOBquOBiuOChuOBjQ0KK+OBi+OBpOOBjSzjgb/jgaTjgbLjgo0NCivjgY3jgaAs44GC44Gk44GXDQor44GN44Gp44GT44KNLOOChuOBhuOBkw0KK+OCguOCiizjga7jgbbjgYoNCivjgY3jgY/jgaEs44Gf44Gk44KNDQor44GN44GP44GM44KPLOOBmOOCheOCk+OBkw0KK+OBjeOCgOOCiSzjgZHjgpPjgZgNCivjgY3jgoDjgoks44GT44GGDQor44GN44KA44KJLOOBl+OCky3jgYTjgaENCivjgY3jgoDjgoks44GC44GN44KJDQor44GN44Gu44GX44GfLOOBkeOCkw0KK+OBjeOBruOBl+OBnyzjgb7jgZPjgagNCivjgY3jga7jgZfjgZ8s44KK44GI44GTDQor44GN44Gu44GX44GfLOOBk+OBhuOBmA0KK+OBjeOBl+OBoCzjgZfjgZLjgosNCivjgY3jgZfjgYvjgo8s44GX44KT44GYDQor44GN44GfLOOBpuOCi+OBjQ0KK+OBjeOBn+OBkOOBoSzjgbLjgo3jgZcNCivjgYLjgb7jga4s44Go44KC44GL44GaDQor44GN44Gf44KA44KJLOOBvuOBleOBguOBjQ0KK+OBjeOBn+OChOOBvizjgYLjgY3jgajjgoINCivjgZPjgbDjgoTjgZcs44G444GE44GYDQor44GT44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZPjgbDjgoTjgZcs44G+44GT44GoDQor44GT44Gw44KE44GXLOOBv+OBiA0KK+OBk+OBsOOChOOBlyzjgb/jgaTjgbLjgo0NCivjgYLjgoHjgZfjgZ8s44GV44Go44KLDQor44GT44Gw44KE44GXLOOBn+OBkeOBlw0KK+OBk+OBsOOChOOBlyzjgZ/jgY/jgb8NCivjgZPjgbDjgoTjgZcs44Go44KI44GNDQor44GT44Gw44KE44GXLOOCiOOBl+OBguOBjQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjga/jgosNCivjgZPjgbDjgoTjgZcs44KG44GL44KKDQor44GT44Gw44KE44GXLOOChuOBjeOBkw0KK+OBiuOBoCzjgb7jgZXjgbLjgZMNCivjgZPjgbzjgoos44Go44GX44GKDQor44GT44Gg44GE44KJLOOBkeOBhOOBmeOBkQ0KK+OBk+OBoOOBvizjgb/jgaHjgogNCivjgYvjgo/jgZDjgaEs44G+44Gq44G2DQor44GT44Gg44GmLOOBoeOBsuOCjQ0KK+OBk+OBjCzjgarjgYrjgagNCivjgZPjgYws44KC44Go44Gu44KKDQor44GT44GM44Gt44G+44KLLOOBsuOCjeOChuOBjQ0KK+OBk+OBr+OCiSzjgoTjgZnjgabjgosNCivjgZPjgaAs44Go44KC44GC44GNDQor44GT44GuLOOBmOOCheOCk+OBmA0KK+OBk+OBluOBhCzjgarjgYrjgY0NCivjgZPjgYTjgZEs44GT44GG44GE44GhDQor44GT44GE44Ga44G/LOOBsuOCjeOBvw0KK+OBk+OBmOOBvizjgZHjgpPjgZgNCivjgZPjgZjjgb4s44GN44KI44Gf44GLDQor44GT44G+44GkLOOBvuOChuOBvw0KK+OBk+OCguOCiizjgaDjgYTjgZnjgZENCivjgZPjgpPjgaks44Gf44GL44Gy44KNDQor44GT44KT44GpLOOBvuOBleOBsuOBkw0KK+OBk+OCk+OBnyzjgbLjgafjgb8NCivjgZPjgZ/jgYss44Gu44G244Gy44KNDQor44GT44Gf44GRLOOBm+OBhOOBmA0KK+OBk+OChOOBvizjgYLjgaTjgZcNCivjgY/jgbws44G/44Gk44KLDQor44GP44G844GNLOOBruOCiuOChuOBjQ0KK+OBj+OBvOOBnyzjgYLjgY3jgokNCivjgY/jgYws44G+44GV44G/DQor44GP44G+44GM44GELOOBqOOCguOBquOCig0KK+OBj+OBq+OCguOCiizjgZHjgpPjgYTjgaENCivjgY/jgonjgoLjgags44G+44Gq44G2DQor44GP44KJ44GV44KPLOOBk+OBhuOBhOOBoQ0KK+OBj+OCieOBl+OBqizjgYLjgY3jgYoNCivjgY/jgonjgZ8s44G+44GV44GKDQor44GP44KK44KC44GoLOOChOOBmeOCjQ0KK+OBj+OCiuOBnyzjgZHjgpMNCivjgY/jgo3jgaAs44Gf44GL44GXDQor44GP44KN44GgLOOCiOOBl+OBn+OBiw0KK+OBj+OCjeOBi+OCjyzjgajjgoLjga7jgooNCivjgY/jgo3jgY0s44GE44GV44KADQor44GP44KN44GV44GNLOOBkeOCk+OBhOOBoQ0KK+OBj+OCjeOBleOCjyzjgb/jgaTjga7jgooNCivjgY/jgorjgoUs44G+44GV44GNDQor44GP44KP44GfLOOBqOOCjeOBjw0KK+OBj+OBmuOBvyzjgbLjgo3jgZcNCivjgb7jgbbjgaEs44GE44GP44GTDQor44G+44GI44GgLOOCiOOBsuOBoQ0KK+OBvuOBiOOBoCzjgZ/jgaTjgZgNCivjgb7jgYjjgYzjgo8s44KE44GZ44Gq44KKDQor44G+44GI44GL44KPLOOCiOOBsuOBoQ0KK+OBvuOBjeOBiizjgZjjgoXjgpMNCivjgb7jgoHjga/jgoks44GC44Gk44GXDQor44G+44GV44GgLOOBi+OBpOOBsuOBqA0KK+OBvuOBmeOBoCzjgZXjgajjgZcNCivjgb7jgZnjgaAs44Gf44GR44GKDQor44G+44GZ44GgLOOCiOOBl+OBvuOBlQ0KK+OBvuOBmeOBoCzjgajjgZfjgYvjgZoNCivjgb7jgZnjgoTjgb4s44Gy44Gn44GC44GNDQor44G+44Gk44GgLOOBl+OCk+OBlA0KK+OBvuOBpOOBoCzjgaTjgojjgZcNCivjgb7jgaTjgYjjgaAs44KK44KH44Gy44GhDQor44G+44Gk44GELOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZgNCivjgb7jgaTjgoLjgags44G+44GV44Gy44GTDQor44G+44Gk44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgY/jgb8NCivjgb7jgaTjgoLjgags44KE44GZ44Gy44KNDQor44G+44Gk44KC44GoLOOBkeOBhOOBlw0KK+OBvuOBpOOBquOBjCzjgYLjgY3jgbLjgZMNCivjgb7jgaTjga4s44KE44GZ44Go44GXDQor44G+44Gk44GuLOOBm+OBhOOBhOOBoQ0KK+OBvuOBpOOBiuOBiyzjgYLjgY3jgbLjgo0NCivjgb7jgobjgb8s44Gy44KN44KG44GNDQor44KB44GL44GfLOOCiOOBmeOBkQ0KK+OCgeOCiSzjgbLjgo3jgZcNCivjgb/jgZ/jgass44Gf44GL44GXDQor44G/44Gf44GrLOOBqOOCguOBkw0KK+OBv+OBqCzjgorjgaTjgZMNCivjgb/jgoTjgYzjgb8s44KA44Gk44G/DQor44GE44GK44GNLOOBquOBiuOBvw0KK+OBv+OChOOCguOBqCzjgaTjgojjgZcNCivjgb/jgoTjgoDjgoks44Gf44GL44G+44GVDQor44G/44KE44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBv+OChOOBhuOBoSzjgZHjgYTjgZgNCivjgb/jgoTjgZbjgY0s44Gb44GE44GE44GhDQor44KC44Gh44Ga44GNLOOChuOBsuOBoQ0KK+OCguOCguOBhCzjgZfjgoXjgbLjgaENCivjgoLjgoos44KI44GG44Gf44KN44GGDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiuOCguOBqCzjgoTjgZnjgbLjgZMNCivjgoLjgorjgoLjgags44GX44KT44GE44GhDQor44KC44KK44GK44GLLOOBv+OBoeOBkw0KK+OCguOCiuOBleOCjyzjgYLjgY3jgokNCivjgoLjgorjgZ8s44Gy44KN44GNDQor44KC44KK44GfLOOBk+OBhuOBmA0KK+OCguOCiuOBnyzjgZ/jgo3jgYYNCivjgoLjgorjgZ8s44G/44Gh44Gy44GoDQor44KC44KK44KE44G+LOOChuOBv+OBkw0KK+OCguOCiuOChOOBvizjgZfjgZLjgbLjgZUNCivjgoLjgabjgY4s44G+44GV44GC44GNDQor44KA44KJ44GL44G/LOOBguOBjeOBsuOCjQ0KK+OBguOBleOBrizjgajjgoLjgobjgY0NCivjgYLjgobjgYvjgo8s44Gf44GL44GC44GNDQor44KA44KJ44GKLOOBvuOBleOBr+OCiw0KK+OCgOOCieOBiuOBiyzjgb7jgZXjgYvjgaQNCivjgoDjgonjgZ8s44KG44GNDQor44KA44GX44GC44GRLOOBsuOBp+OBvuOBlQ0KK+OCgOOBnyzjgobjgYsNCivjgarjgbnjgYQs44GP44G/44GTDQor44Gq44GM44GELOOCiOOBsuOBoQ0KK+OBquOBjOOBhCzjgoDjgaTjgZMNCivjgarjgYzjgb/jga0s44GR44KT44GYDQor44Gq44GM44GV44KPLOOBqOOCguOBsuOCjQ0KK+OBquOBjOOBnyzjgYvjgZrjgojjgZcNCivjgarjgYzjgoTjgb4s44Gy44KN44Gu44G2DQor44Gq44GQ44KJLOOBguOBjeOBsuOBkw0KK+OBquOBhOOBqOOBhizjgZfjgpPjgoQNCivjgarjgYvjgYzjgo8s44Gf44GL44GXDQor44Gq44GL44GM44KPLOOBn+OBpOOBsuOBkw0KK+OBquOBi+OBjOOCjyzjgajjgYrjgosNCivjgarjgYvjgYzjgo8s44G+44GV44GC44GNDQor44Gq44GL44Gv44KJLOOBkeOCk+OBlA0KK+OBquOBi+OBhCzjgZXjgajjgZcNCivjgarjgYvjgYQs44Gg44GE44GZ44GRDQor44Gq44GL44GY44G+LOOBl+OBkuOCiw0KK+OBquOBi+OBmOOBvizjgajjgoLjgYvjgZoNCivjgarjgYvjgZjjgb4s44GI44G/44GTDQor44GV44KP44GgLOOBsuOBleOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgbLjgo0NCivjgbDjgpPjgbAs44GT44GG44GE44GhDQor44Gq44GL44KA44KJLOOBvuOBleOBkw0KK+OBquOBi+OCgOOCiSzjgZXjgobjgooNCivjgarjgYvjgoDjgoks44Gf44Gg44GXDQor44Gq44GL44KA44KJLOOBpuOBpOOBig0KK+OBquOBi+OCgOOCiSzjgabjgaTjgoQNCivjgarjgYvjgoDjgoks44KG44G/44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBquOBi+OBrizjgorjgoXjgZgNCivjgarjgYvjga4s44KG44G/44GTDQor44Gq44GL44GKLOOChOOBmeOBlw0KK+OBquOBi+OBl+OBvizjgb7jgZXjgbLjgo0NCivjgarjgYvjgZ8s44Gf44GL44GTDQor44Gq44GL44GfLOOBl+OBkuOCiw0KK+OBquOBi+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgarjgYvjgoTjgb4s44Go44GK44KLDQor44Gq44GL44KE44G+LOOChuOBv+OBkw0KK+OBquOBi+OChOOBvizjgYvjgaTjgoQNCivjgarjgYvjgZbjgo8s44G/44GI44GTDQor44Gq44GL44GW44KPLOOBguOBjeOBruOBtg0KK+OBquOBjOOBiuOBiyzjgabjgaTjgoQNCivjgarjgarjgZfjgoMs44Gy44Gn44Gy44GoDQor44Gq44KK44GfLOOBk+OBhuOBhOOBoQ0KK+OBquOCiuOBnyzjgb7jgZXjga7jgooNCivjgarjgZks44GL44Ga44GKDQor44Gq44GZ44GfLOOBvuOCig0KK+OBq+OBlyzjgZ/jgZHjgZcNCivjgavjgZfjgaAs44GC44GN44Gy44KNDQor44Gr44GX44KA44KJLOOBteOBv+OBkw0KK+OBvuOBleOBoCzjgbLjgo3jgYvjgZoNCivjgavjgZfjgoDjgoks44Gu44G244KG44GNDQor44Gr44GX44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBq+OBl+OBiizjgZPjgYbjgYTjgaENCivjgavjgZfjgoTjgb4s44GC44GN44GTDQor44Gr44Gj44GfLOOBquOBiuOChOOBmQ0KK+OBruOBjOOBvyzjgbLjgo3jgbXjgb8NCivjga7jgarjgYss44GC44GN44Gy44KNDQor44Gu44GbLOOBkeOBhOOBkw0KK+OBruOBn+OBuSzjgYvjgaTjgoQNCivjga7jgags44GR44GE44GZ44GRDQor44Gu44GmLOOChuOBn+OBiw0KK+OBrOOBj+OBhCzjgojjgZfjgbLjgo0NCivjgYrjgaEs44Gk44KI44GXDQor44GK44Gh44GC44GELOOBvuOBk+OBqA0KK+OBiuOBoCzjgZ/jgZHjgZcNCivjgYrjgYzjgZXjgo/jgoks44Gy44KN44GXDQor44GK44GM44KPLOOBi+OBreOBruOBtg0KK+OBiuOBjOOCjyzjga7jgbbjgobjgY0NCivjgYrjgYzjgo8s44GV44Gh44GKDQor44GK44GM44KPLOOBn+OBkeOBsuOBkw0KK+OBiuOBjOOCjyzjgajjgoLjgZMNCivjgYrjgYzjgo8s44G+44GV44KG44GNDQor44GK44GO44GuLOOCiOOBl+OBn+OBoA0KK+OBiuOBsCzjgb/jgarjgZMNCivjgZ/jgY3jgb/jgoQs44GL44GK44KKDQor44GK44Gv44GXLOOChOOBmeOBsuOCjQ0KK+OBiuOBr+OBlyzjgZ/jgYvjgbLjgo0NCivjgYrjgbIs44Gy44Gn44GKDQor44GK44GL44KPLOOBl+OCk+OBlA0KK+OBiuOCguOCiizjgZjjgoXjgavjgaENCivjgYrjgoDjgoks44Gy44KN44GNDQor44GK44Gq44GL44Gv44KJLOOBvuOBleOBsuOCjQ0KK+OBiuOBq+OBlyzjgYLjgY3jgbLjgZMNCivjgYrjga4s44Go44GX44KG44GNDQor44GK44G744GLLOOCiOOBl+OBi+OBmg0KK+OBiuOBl+OBvizjgobjgYbjgZgNCivjgYrjgZfjgb4s44KI44GYDQor44GE44GR44G+44GkLOOBk+OBhuOBmA0KK+OBiuOBnyzjgb7jgZXjgbLjgZMNCivjgYrjgZ8s44G+44GV44KEDQor44GK44GfLOOBquOBiuOBn+OBkQ0KK+OBiuOBnyzjgajjgoLjgb8NCivjgbXjgY/jgaAs44G+44GT44GoDQor44GK44Gc44GNLOOBvuOBleOBsuOBpw0KK+OBiuOBhOOBoCzjgobjgY3jgYoNCivjgYrjgYTjgZgs44Gf44Gg44KG44GNDQor44GK44GL44GgLOOBn+OBj+OBv+OCkw0KK+OBmeOBjuOCguOBqCzjgaHjgZXjgagNCivjgYrjgYvjgZbjgY0s44GI44G/DQor44GK44GL44GW44GNLOOBmOOCheOCk+OBiw0KK+OBiuOBi+OBluOCjyzjgb7jgoYNCivjgYrjgY/jgaAs44Gf44GR44Gk44GQDQor44GK44GP44GgLOOCiOOBl+OBruOCig0KK+OBiuOBj+OBoCzjgYLjgY3jgZMNCivjgYrjgY/jgoDjgoks44Gf44GL44GXDQor44GK44GP44KA44KJLOOBruOBtg0KK+OBiuOBj+OBrizjgZHjgpPjgYTjgaENCivjgYrjgY/jgoTjgb4s44Gf44GL44GTDQor44GK44GuLOOBn+OBkeOBlw0KK+OBiuOBrOOBjSzjgZ/jgYvjgZcNCivjgYrjga/jgZcs44GV44Gh44GTDQor44Go44Gy44KDLOOBn+OBv+OBkw0KK+OBiuOBqOOBkOOCjSzjgb/jgYgNCivjgYfjgYgs44GR44GE44GE44GhDQor44GV44GE44GULOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgY/jgavjgbLjgo0NCivjgZXjgYTjgajjgYYs44GX44KT44GYDQor44GV44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBleOBhOOBqOOBhizjgoTjgZnjgbLjgo0NCivjgZXjgYTjgajjgYYs44KE44GZ44GXDQor44GV44GE44Go44GGLOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgabjgaTjgoQNCivjgZXjgYvjgYjjgaDjgass44Gh44KF44KT44GB44KTDQor44Gh44GH44KTLOOBvuOBleOBjQ0KK+OBleOBi+OBhCzjgZfjgZLjgosNCivjgZXjgYvjgYQs44Gy44Gn44Gy44GoDQor44GV44GL44GfLOOBk+OBhuOBn+OCjeOBhg0KK+OBleOBi+OBnyzjgYLjgY3jgbLjgo0NCivjgZXjgY/jgb4s44Gq44GK44G/DQor44GV44GP44KJ44Gw44KE44GXLOOBsuOBp+OBruOCig0KK+OBleOBj+OCieOBhCzjgajjgZfjgYoNCivjgZXjgY/jgZ8s44G+44GV44Gy44KNDQor44GV44GV44GNLOOBruOBtuOChuOBjQ0KK+OBleOBleOBjSzjgZ/jgYvjgYLjgY0NCivjgZXjgZXjgY0s44Gf44GR44Gy44KNDQor44GV44GV44GNLOOCiOOBl+OBn+OCjeOBhg0KK+OBleOBleOCgSzjgYLjgY3jgbLjgZUNCivjgZXjgajjgYYs44G144G/44Gy44GTDQor44GV44Go44GGLOOBsuOCjeOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZXjgajjgYYs44GY44KF44KTDQor44GV44Go44GGLOOBi+OCk+OBmA0KK+OBleOBqOOBhizjgb/jgYsNCivjgZXjgajjgYYs44KC44Go44KG44GNDQor44GV44Go44GGLOOBruOBtuOChOOBmQ0KK+OBleOBqOOBhizjgajjgY/jgZjjgo0NCivjgZXjgajjgYYs44Gk44KI44GXDQor44GV44Go44GGLOOBi+OBmuOBsuOBkw0KK+OBleOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgZXjgajjgYYs44GC44Gk44GXDQor44GV44KP44GgLOOBvuOBpOOBig0KK+OBleOCj+OBr+OBlyzjgojjgZfjgYLjgY0NCivjgZXjgo/jga4s44G+44GV44GL44GaDQor44Gb44GQ44GhLOOBguOBjeOCiQ0KK+OBm+OBjSzjgZXjgaHjgZMNCivjgZvjgY3jgZDjgaEs44KI44GX44KG44GNDQor44Gb44GN44GQ44GhLOOCiOOBsuOBoQ0KK+OBl+OBsCzjgYvjgZrjga7jgooNCivjgZfjgbDjgZ8s44G+44GV44Gy44GTDQor44GX44Gw44GfLOOCiOOBl+OBsuOCjQ0KK+OBl+OBtuOChCzjgojjgZfjgo0NCivjgZfjgb7jgaAs44Gv44GY44KBDQor44GX44G/44GaLOOBsuOCjeOBvw0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgZcNCivjgZfjgb/jgZos44GT44GG44GYDQor44GX44G/44GaLOOBl+OCh+OBmA0KK+OBl+OBv+OBmizjgoTjgYgNCivjgZfjgb/jgZos44GP44G/44GTDQor44G144GY44GI44GgLOOBsuOCjeOChOOBmQ0KK+OBl+OCguOChOOBvuOBoCzjgorjgYgNCivjgZfjgarjgYzjgo8s44Gf44GL44GtDQor44GX44KT44KELOOBn+OBpOOChuOBjQ0KK+OBl+OBiuOBvyzjgYvjgZrjgbLjgo0NCivjgZfjgYrjgaQs44GX44KF44G444GEDQor44Gb44GN44GQ44GhLOOBqOOCguOBkw0KK+OBpOOBruOBoCzjgojjgZfjgbLjgo0NCivjgZfjgonjgZXjgYss44GV44Go44GXDQor44GX44KN44GX44GfLOOBi+OBiuOCig0KK+OBl+OBn+OCiSzjgYLjgoTjgZMNCivjgZfjgocs44G+44GV44Gv44KLDQor44GZ44GM44KP44KJLOOBn+OBi+OBlw0KK+OBmeOBjOOCj+OCiSzjgZfjgoXjgZgNCivjgZnjgY7jgoLjgags44GL44Gk44KG44GNDQor44GZ44GO44GfLOOBn+OBi+OChuOBjQ0KK+OBmeOBjuOBnyzjgajjgoLjgbLjgo0NCivjgZnjgY7jgZ8s44GL44Gk44KG44GNDQor44GZ44GO44GG44KJLOOBkeOCk+OBmA0KK+OBmeOBjuOBhuOCiSzjgZHjgpPjgZ/jgo3jgYYNCivjgZnjgY7jgoTjgb4s44GT44GG44GE44Gh44KNDQor44GE44GR44Ge44GILOOBl+OCk+OBhOOBoQ0KK+OBmeOBjuOChOOBvizjgajjgoLjgbLjgacNCivjgZnjgYss44G/44Gk44Gu44KKDQor44GZ44GR44GM44KPLOOBl+OCk+OBmA0KK+OBmeOBv+OBruOBhuOBiCzjgYvjgaTjgbLjgZMNCivjgZnjgb/jgojjgZcs44Go44GK44KLDQor44GZ44G/44KI44GXLOOBn+OBi+OBlw0KK+OBmeOBquOBvyzjgYLjgaTjgYoNCivjgZnjgZrjgY0s44Gy44KN44KG44GNDQor44GZ44Ga44GNLOOBsuOBleOBlw0KK+OBmeOBmuOBjSzjgZjjgobjgavjgaENCivjgZnjgZrjgY0s44G/44G7DQor44GZ44Ga44GNLOOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgZfjgofjgbLjgaENCivjgZnjgZrjgY0s44Go44KC44GL44GaDQor44GZ44Ga44GNLOOBvuOBleOCiOOCig0KK+OBl+OCh+OBmCzjgYvjgaTjgbLjgZMNCivjgZfjgofjgZjjgocs44GV44Go44GTDQor44Gf44Gw44GfLOOBqOOCiOOBsuOBlQ0KK+OBn+OBoCzjgb/jgZrjgbsNCivjgZ/jganjgZPjgo0s44G+44GV44Go44GXDQor44Gf44GM44G/LOOBsuOCjeOBguOBjQ0KK+OBn+OBkOOBoSzjgajjgoLjgobjgY0NCivjgZ/jgZDjgaEs44Gu44G244KI44GXDQor44Gf44GELOOBsuOBp+OBjQ0KK+OBn+OBhOOCiSzjgZ/jga3jgYvjgZoNCivjgZ/jgYTjgZUs44Go44GX44G/44GkDQor44Gf44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBoCzjgoTjgaHjgogNCivjgZ/jgYvjgaAs44G+44KC44KLDQor44Gf44GL44GOLOOBguOBjeOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44Gy44KN44GC44GNDQor44Gf44GL44Gv44GXLOOBhOOBo+OBuuOBhA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgagNCivjgZ/jgYvjga/jgZcs44Gu44G244GC44GNDQor44Gf44GL44Gv44GXLOOBl+OBmg0KK+OBn+OBi+OBr+OBlyzjgZfjgofjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44Gd44GG44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLOOBqOOBl+OBig0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgobjgY0NCivjgZ/jgYvjgYQs44GT44GG44GYDQor44Gf44GL44GuLOOBn+OBi+OBlw0KK+OBn+OBi+OBl+OBvizjgbLjgo3jgYLjgY0NCivjgZ/jgYvjgoTjgb4s44G+44GV44Gm44KLDQor44Gf44GR44GgLOOBguOBpOOBlw0KK+OBn+OBkeOBhOOBoSzjgb/jgaTjgbLjgo0NCivjgZ/jgZHjgb7jgZUs44GN44KI44GXDQor44Gf44GR44KA44KJLOOBn+OBoOOBquOBig0KK+OBn+OBkeOCgOOCiSzjgYjjgaTjgo0NCivjgZ/jgZHjgarjgYss44Gm44Gk44KNDQor44Gf44GR44GX44GfLOOBguOBpOOChA0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgZcNCivjgZ/jgZHjgYbjgaEs44Go44GK44KLDQor44Gf44GR44GG44GhLOOBquOBiuOBjQ0KK+OBn+OBjeOBi+OCjyzjgZXjgajjgZcNCivjgZ/jgY3jgY3jgZ8s44KG44GG44GYDQor44Gf44GN44GW44KPLOOBqOOBl+OBig0KK+OBn+OBkyzjgobjgZnjgZENCivjgZ/jgYvjga4s44Gq44GK44GNDQor44Gf44G+44GM44KPLOOCiOOBl+OBteOBvw0KK+OBn+OBvuOBjSzjgZfjga7jgbYNCivjgZ/jgoDjgoks44GL44KT44GTDQor44Gf44Gq44G5LOOBquOBiuOChA0KK+OBn+OBquOBuSzjgbLjgafjgaTjgZANCivjgZ/jgarjgYss44GL44Ga44KI44GXDQor44Gf44Gq44GLLOOBkeOBhOOBmeOBkQ0KK+OBn+OBquOBiyzjgZHjgpPjgYTjgaENCivjgZ/jgarjgYss44GX44G7DQor44Gf44Gq44GLLOOBl+OCheOCk+OBmeOBkQ0KK+OBn+OBquOBiyzjgarjgYrjgagNCivjgZ/jgass44GX44KH44GeDQor44Gf44Gr44GQ44GhLOOBguOBpOOBqA0KK+OBn+OBq+OBl+OChyzjgbLjgajjgZcNCivjgZ/jgabjgoTjgb4s44GI44GE44GE44Gh44KN44GGDQor44Gf44Gk44G/LOOBguOBpOOBlw0KK+OBn+OBhuOCiSzjgZ/jgYvjgZcNCivjgZ/jgZbjgo8s44Gy44Gn44GoDQor44Gf44Ga44GRLOOCiOOBl+OBjQ0KK+OBpuOCieOBoCzjgoLjgajjgobjgY0NCivjgajjgb4s44Gy44KN44KG44GNDQor44Go44Gy44KD44G+LOOBiuOBleOCgA0KK+OBqOOCgeOBiuOBjyzjgYvjgZrjgZ/jgYsNCivjgajjgb/jgYTjgYgs44Gy44KN44Gu44G2DQor44G144Gf44Gk44GOLOOBteOBv+OBig0KK+OBqOOCguOBqOOBlyzjgY3jgofjgbjjgYQNCivjgajjga3jgYzjgo8s44GN44KH44GTDQor44GK44GP44KA44KJLOOBv+OBuw0KK+OBqOOBl+OBl+OBkizjgojjgZfjgbLjgZUNCivjgajjgojjgaAs44KI44GG44GTDQor44Go44KI44Gq44GLLOOBvuOBleOCiOOBlw0KK+OBpOOBsOOBjSzjgYvjgZrjgarjgooNCivjgaTjgaHjgoLjgags44Gu44G244Gy44KNDQor44Gk44GgLOOBl+OCk+OBlA0KK+OBpOOBoCzjgojjgZfjgbXjgb8NCivjgaTjgaAs44G+44GZ44G/DQor44Gk44GY44GELOOBn+OBi+OBqOOBlw0KK+OBpOOBmOOCgOOCiSzjgajjgoLjgobjgY0NCivjgaTjgYvjga/jgoks44Gb44GE44GE44GhDQor44Gk44Gu44GgLOOBkeOBhOOBkw0KK+OBpOOCi+OBjizjgYvjgZrjgbLjgo0NCivjgaTjgovjgZ8s44GL44Ga44Gy44KNDQor44Gk44GX44G+LOOBguOBjeOBig0KK+OBpOOBpOOBhCzjga/jgoTjgagNCivjgaTjgaHjgaAs44Gy44KN44GXDQor44GG44Gh44GgLOOBkeOCk+OBmA0KK+OBhuOBoeOBoCzjgYLjgY3jgZMNCivjgYbjgaHjgY/jgoks44Gu44KK44Gy44GTDQor44GG44Gh44Gf44GrLOOBsuOCjeOBlw0KK+OBhuOBiOOBoCzjgYvjgZrjgarjgooNCivjgYbjgYjjgaAs44G+44GV44KEDQor44GG44GI44GgLOOBpuOBpOOChA0KK+OBhuOBiOOBoCzjgbXjgb/jgYoNCivjgYbjgYjjgoDjgoks44GV44Go44GXDQor44GG44GI44GuLOOBi+OCiA0KK+OBhuOBiOOBpOOBjSzjgajjgZfjgYgNCivjgYTjgZEs44Go44KC44Gf44GLDQor44GG44KB44GgLOOBruOCiuOBkw0KK+OBhuOCgeOCgOOCiSzjgajjgZfjgo0NCivjgYbjga7jgY0s44GX44KH44GYDQor44GG44KJ44GX44GfLOOBr+OCi+OBsuOBkw0KK+OBhuOCieOBnyzjgabjgovjgbLjgZMNCivjgYbjgZfjgYos44GN44Gs44KIDQor44GG44Gf44GM44KPLOOBsuOCjeOChuOBjQ0KK+OCj+OBoCzjgYvjgaTjgobjgY0NCivjgo/jgaAs44GV44Go44KLDQor44KP44GgLOOBn+OBj+OBmA0KK+OCj+OBoCzjgZ/jgZHjgZcNCivjgo/jgYzjgaTjgb4s44GL44Gk44GTDQor44KP44GL44G+44GkLOOBleOBjeOBkw0KK+OCj+OBjeOBnyzjgaHjgYgNCivjgo/jgZMs44GM44GPDQor44KP44KK44GL44GfLOOBguOBjeOBruOCig0KK+OCj+OBl+OBmizjgbLjgo3jgZMNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBvuOBjQ0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgosNCivjgo/jgZ/jgarjgbks44G/44G7DQor44KP44Gf44Gq44G5LOOBquOBpOOBkw0KK+OBiuOCgOOCiSzjga7jgbbjgbLjgZMNCivjgo/jgZ/jgarjgbks44Go44KC44GTDQor44KP44Gf44Gq44G5LOOBqOOCguOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYoNCivjgo/jgZ/jgarjgbks44Gm44Gk44KEDQor44KE44GOLOOBqOOCguOBkw0KK+OChOOBjizjgYLjgY3jgbLjgagNCivjgoTjgb7jgaAs44Gy44KN44Gf44GkDQor44KE44G+44GgLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBoCzjgZfjgofjgbLjgaENCivjgoTjgb7jgaAs44KG44GG44GYDQor44KE44G+44GgLOOBsuOCjeOBguOBjQ0KK+OChOOBvuOBteOBjyzjgbLjgo3jgYvjgZoNCivjgoTjgb7jgZDjgaEs44Gq44GK44KG44GNDQor44KE44G+44GQ44GhLOOBl+OChw0KK+OChOOBvuOBkOOBoSzjgZfjgoXjgpPjgZgNCivjgoTjgb7jgZDjgaEs44KI44GX44KG44GNDQor44KE44G+44GYLOOBqOOBl+OBig0KK+OChOOBvuOBi+OCjyzjgYzjgY8NCivjgoTjgb7jgoLjgags44Gy44KN44G144G/DQor44KE44G+44KC44GoLOOBsuOCjeOBsuOBpw0KK+OChOOBvuOCguOBqCzjgZPjgZvjgYQNCivjgoTjgb7jgoLjgags44Gq44GK44GTDQor44KE44G+44KC44GoLOOCiuOCheOBsuOBoQ0KK+OChOOBvuOCguOBqCzjgabjgaTjgo0NCivjgoTjgb7jgoLjgags44Go44KC44G/DQor44KE44G+44KC44GoLOOChuOBhuOBkw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgagNCivjgoTjgb7jgaos44Gu44KK44Go44GXDQor44KE44G+44GV44GNLOOBsuOBp+OBteOBvw0KK+OChOOBvuOBl+OBnyzjgZfjgZLjgYoNCivjgoTjgb7jgZfjgZ8s44Gf44GR44Gy44KNDQor44KE44G+44GW44GNLOOBsuOBp+OBig0KK+OChOOBquOBjizjgb7jgorjgZMNCivjgoTjga4s44KI44GYDQor44KE44GX44KNLOOCiOOBhuOBkw0KK+OChOOBmeOBhCzjgbLjgo3jgYvjgZoNCivjgoTjgZnjgoDjgo0s44Go44GK44KLDQor44KE44GZ44GG44GYLOOBk+OBhuOBmA0KK+OCiOOBk+OBiCzjgZ/jgYvjga7jgooNCivjgojjgZPjgYQs44GR44KT44GE44GhDQor44KI44GT44G/44GeLOOBv+OBpOOBng0KK+OCiOOBk+OChOOBvizjgobjgY3jgZMNCivjgojjga3jgZbjgo8s44Gy44KN44KE44GZDQor44KI44GX44GgLOOBk+OBhuOBmA0KK+OCiOOBl+OBoCzjgb7jgZXjgY0NCivjgojjgZfjgaAs44KG44GG44GYDQor44KI44GX44GgLOOChuOBn+OBiw0KK+OCiOOBl+OBoCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgojjgZfjgYQs44GL44Gk44G/DQor44KI44GX44KA44KJLOOBruOCiuOBqOOBlw0KK+OCiOOBl+OChOOBvizjgajjgYrjgosNCivjgojjgZfjgZbjgo8s44Gy44KN44GXDQor44G144GY44GX44G+LOOCiuOChw0KK+OChuOBguOBlSzjgZHjgpPjgZ/jgo3jgYYNCivjgobjgY0s44Gf44GR44GXDQor44KG44GNLOOBteOBqOOBlw0KK+OChuOBhCzjgZ/jgYvjgZcNCivjgYLjgaDjgaEs44KI44GX44KG44GNDQor44Gw44KTLOOBsuOBp+OBruOCig0KK+OBteOCi+OBhCzjgb7jgoQNCivjga/jgZvjgYzjgo8s44GN44KI44GX44GSDQor44Gy44KJ44GL44KPLOOBvuOBleOBsuOBkw0KK+OBhOOBqOOBhizjgYvjgZrjgbLjgZMNCivjgYTjgo/jgZXjgY0s44GR44KT44KEDQor44GL44Go44GGLOOBruOBtuOBsuOCjQ0KK+OBi+OCj+OBr+OCiSzjgYvjgaTjgoQNCivjgb7jgYjjga/jgoks44GL44Ga44GC44GNDQor44G+44Gk44Gf44GrLOOBqOOCguOBvw0KK+OCguOCiuOBhOOBoSzjgZfjgZLjgagNCivjgavjgZfjgYbjgaEs44Gm44KL44GL44GaDQor44G144GY44G+44GNLOOBiOOBhOOBmA0KK+OBiuOBr+OCiSzjgZXjgaHjgZMNCivjgZXjgarjgaAs44GR44KT44Gf44KN44GGDQor44Gd44GtLOOBkeOBhA0KK+OBqOOBruOCgOOCiSzjgZvjgaTjgZMNCivjgZfjgb/jgZos44GC44GN44KIDQor44G/44GX44G+LOOBoOOBhOOBmeOBkQ0KK+OBteOBmOOBnyzjgarjgYrjgZ/jgZENCivjgbXjgZjjgZ8s44Gf44GL44GXDQor44G144GY44GfLOOCiOOBl+OBruOCig0KK+OBteOBmOOCj+OCiSzjga/jgZjjgoENCivjgbXjgZjjgoUs44G+44Gq44G2DQor44G144GL44GgLOOBqOOBl+OBsuOBkw0KK+OBteOBj+OBoCzjgorjgofjgZgNCivjgbXjgY/jgbLjgZUs44GR44KT44GYDQor44G144GP44GW44GoLOOCiOOBl+OBv+OBpA0KK+OBteOBj+OBluOCjyzjgYrjgZXjgoANCivjgbXjgovjgZXjgo8s44GX44GS44GKDQor44Gv44GM44KPLOOBiOOBhOOBmOOCjQ0KK+OBr+OBjizjga7jgbbjgobjgY0NCivjga/jgonjgaAs44Gf44GE44GeDQor44Gv44KJ44GgLOOBn+OBi+OBlw0KK+OBr+OCieOBoCzjgbLjgafjgYLjgY0NCivjga/jgonjgb7jgY0s44Gk44Go44KADQor44Gv44Gb44GM44KPLOOCiOOBl+OChuOBjQ0KK+OBr+OBm+OBjOOCjyzjgZHjgYQNCivjga/jgZfjgYos44G+44KK44GTDQor44Gv44GZ44G/LOOBn+OCjeOBhg0KK+OBr+OBmeOBvyzjgbLjgafjgY0NCivjga/jgaPjgajjgoos44KIDQor44GE44GX44GL44KPLOOBk+OBhuOBmOOCjQ0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgbLjgonjga4s44Gf44GP44KEDQor44Gy44KJ44GuLOOChuOBn+OBiw0KK+OBsuOCieOBrizjgarjgYrjgZ/jgYsNCivjgbLjgo3jgbks44GC44KEDQor44GX44Gu44GgLOOBn+OBi+OBlw0KK+OBsuOBleOBoCzjgY3jga/jgosNCivjgbvjgZjjgocs44Gf44GL44GXDQor44G744KT44GULOOBsuOCjeOBn+OBiw0KK+OBu+OBlyzjgb/jgaTjgosNCivjgbvjgZfjga4s44Gu44G244Gy44KNDQor44G744Gd44GL44KPLOOBvuOBjQ0KK+OBu+OBneOBrizjgarjgYrjgZMNCivjgYvjgajjgYYs44KK44GIDQor44GE44GOLOOBsuOBp+OBguOBjQ0KK+OBhOOBkeOBoCzjgobjgYsNCivjgYTjgY/jgo0s44Gy44KN44GXDQor44GE44G+44GELOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBquOBoCzjgojjgorjgZMNCivjgYTjga7jgZDjgaEs44G244KT44G644GEDQor44GE44GX44GQ44KNLOOBn+OBi+OBkw0KK+OBhOOBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgYTjgZfjgYvjgo8s44GL44Ga44GC44GNDQor44GE44GX44GW44GNLOOBqOOBl+OBguOBjQ0KK+OBhOOBl+OBnOOBjSzjgbLjgafjgY0NCivjgYTjgajjgYYs44GR44KT44GYDQor44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBhOOBqOOBhizjgZ/jgZHjgZcNCivjgYTjgajjgYYs44Gm44KL44Gy44GTDQor44GE44G+44GM44KPLOOBv+OBoeOBkw0KK+OBhOOBluOCjyzjgb7jgZXjgY0NCivjgYTjgZrjgb8s44Gy44KN44GL44GaDQor44GE44Ga44G/44Gg44GmLOOChuOBvw0KK+OBi+OBtuOCieOBjizjgojjgZfjgo0NCivjgYvjgb/jgoTjgb4s44KI44GG44GTDQor44GL44Gq44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBi+OBquOBluOCjyzjga7jgorjgbLjgo0NCivjgYvjgpPjgbDjgoks44GL44Ga44KI44GXDQor44GL44KT44GgLOOBk+OBuOOBhA0KK+OBi+OCk+OBoCzjgZ/jgYvjgobjgY0NCivjgYvjga3jgZMs44Gk44GQ44GL44GaDQor44GL44GX44KA44KJLOOBsuOCjeOBjQ0KK+OBi+OBn+OBjuOCiizjgZHjgpPjgZgNCivjgYvjgajjgYYs44KG44GL44KKDQor44GL44Go44GGLOOCiOOBl+OBqA0KK+OBi+OCj+OBoCzjgabjgaTjgoQNCivjgYvjgo/jgZnjgb8s44G+44GV44KI44GXDQor44GN44GpLOOBquOBiuOBjQ0KK+OBjeOBj+OBoSzjgojjgZfjgb8NCivjgY3jgoLjgags44GR44GEDQor44GN44KA44KJLOOBk+OBhuOBmA0KK+OBjeOCk+OBqSzjgZfjgofjgZgNCivjgY3jgZ/jgoDjgoks44Gu44KK44Go44GXDQor44GN44Gf44GuLOOBi+OBiuOCig0KK+OBjeOBn+OCj+OBn+OBmyzjgajjgYrjgosNCivjgY3jgaPjgZ8s44GT44GG44GYDQor44GN44KE44G+LOOBmOOCjQ0KK+OBjeOCiOOBnyzjgYvjgaTjgojjgZcNCivjgZPjgbDjgoTjgZcs44KG44GG44GTDQor44GT44Gw44KE44GXLOOBv+OBmeOBvuOCiw0KK+OBk+OBjCzjgarjgorjgajjgoINCivjgZPjga/jgoks44Gy44KN44GXDQor44GT44GY44GqLOOBl+OCk+OBmeOBkQ0KK+OBk+OBrizjgbLjgo3jga7jgooNCivjgZPjgZrjgYss44Gu44G244Gy44GVDQor44GT44GE44GnLOOBr+OCi+OBvw0KK+OBk+OBvuOBpCzjgojjgYbjgZMNCivjgZPjgb/jgarjgags44GX44KF44Gr44GhDQor44GT44KC44KKLOOBruOBtuOBsuOCjQ0KK+OBk+OCk+OBqSzjgZ/jgY/jgoQNCivjgZPjgavjgZcs44GR44KT44GfDQor44GP44G844KE44G+LOOBv+OBoeOBr+OCiw0KK+OBj+OBvuOBjOOBhCzjgb/jgbsNCivjgY/jgb7jgZ8s44GV44Gg44GKDQor44GP44KK44Gv44KJLOOBmeOBmeOCgA0KK+OBj+OCiuOBr+OCiSzjgoTjgZnjgZMNCivjgY/jgorjgZ8s44Gb44GE44GYDQor44GP44GV44GuLOOBsuOCjeOChuOBjQ0KK+OBj+OBl+OBoCzjgZjjgoXjgpPjgZgNCivjgb7jgYjjgaAs44KI44GG44GTDQor44G+44GNLOOBguOBpOOChA0KK+OBvuOBjeOBnyzjgZ/jgYvjgobjgY0NCivjgb7jgovjgoTjgb4s44GR44KTDQor44G+44GZ44GgLOOBkeOBhOOBlA0KK+OBvuOBpOOBsOOCiSzjgb7jgZXjgY0NCivjgb7jgaTjgbDjgoks44GX44KT44GYDQor44G+44Gk44GELOOCiuOCheOBmeOBkQ0KK+OBvuOBpOOCguOBqCzjgZfjgoXjgYbjgZgNCivjgb7jgaTjgoDjgoks44GV44Go44GTDQor44G+44Gk44GKLOOBsuOCjeOBsuOBkw0KK+OBv+OBi+OBvyzjga7jgorjgZMNCivjgb/jgY0s44Gf44Gg44GC44GNDQor44G/44Gu44GG44KJLOOCiuOCh+OBmA0KK+OBv+OBl+OBvizjgZ/jgYvjgZMNCivjgb/jgaTjgarjgYws44Gf44GR44GXDQor44G/44GG44KJLOOBkeOBhOOBkw0KK+OBv+OCjyzjgZXjgajjgZcNCivjgb/jgoTjgYos44Gy44KN44G144G/DQor44G/44KE44GfLOOBguOBjeOBsuOBkw0KK+OBv+OBmuOBn+OBqyzjgobjgY0NCivjgb/jgZrjgZ/jgass44GR44GE44GZ44GRDQor44KC44Gh44Ga44GNLOOBl+OCk+OBmA0KK+OCguOBoeOBmuOBjSzjgaTjga3jgYoNCivjgoLjgaHjgZrjgY0s44Gg44GE44GhDQor44KC44GOLOOBoeOBi+OCiQ0KK+OCguOCiizjgbLjgafjgajjgZcNCivjgoLjgoos44GR44GE44GTDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiizjgZfjgpPjgZ/jgo3jgYYNCivjgoLjgoos44GL44Ga44Gy44KNDQor44KC44KK44KE44G+LOOBv+OBpOOBig0KK+OCguOCjeOBiuOBiyzjgZ/jgYvjgYLjgY0NCivjgoLjgajjgbAs44Gb44GE44GYDQor44KA44Gt44GoLOOBkeOCk+OBhOOBoQ0KK+OCgOOCieOBhCzjgojjgZfjgobjgY0NCivjgoDjgonjgYrjgYss44G+44GV44Gu44KKDQor44KA44KN44GELOOBn+OBi+OBruOBtg0KK+OBquOBjOOBteOBmCzjgoTjgZnjga/jgosNCivjgarjgYzjgYQs44GL44Gq44GGDQor44Gq44GE44Go44GGLOOBi+OBmuOBsuOBkw0KK+OBquOBhOOBqOOBhizjgbLjgafjga7jgbYNCivjgarjgYvjgYzjgo8s44G/44Gk44KLDQor44Gq44GL44Gv44KJLOOBj+OBv+OBkw0KK+OBquOBi+OBmOOBvizjga7jgbbjgobjgY0NCivjgarjgYvjgZjjgb4s44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBleOBqOOCiw0KK+OBquOBi+OCgOOCiSzjgZ/jgaDjgbLjgZMNCivjgarjgYvjgoDjgoks44Gf44Gg44KG44GNDQor44Gq44GL44KA44KJLOOBqOOCguOBsuOBlQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgY0NCivjgarjgYvjgoDjgoks44Go44GX44GKDQor44Gq44GL44KA44KJLOOChuOBjQ0KK+OChOOBvuOBoCzjgaDjgYTjgZXjgY8NCivjgarjgYvjgYos44GL44Gk44G+44GVDQor44Gq44GL44Gk44GL44GVLOOCiOOBl+OBkw0KK+OBquOBi+OChOOBvizjgZHjgpMNCivjgarjgoDjgoks44Gy44Gn44Gy44KNDQor44Gq44GZ44GuLOOBjeOBv+OBsuOBqA0KK+OBq+OBhOOBnOOBjSzjgYLjgY3jgokNCivjgavjgZfjgYvjgo8s44KG44GN44GTDQor44Gr44GX44GN44GK44KKLOOBn+OCjeOBhg0KK+OBq+OBl+OBluOCjyzjgb/jga7jgosNCivjga7jgYLjgY0s44G/44KE44GTDQor44Gu44GgLOOChuOBn+OBiw0KK+OBruOBoCzjgb7jgZXjgbLjgZMNCivjga7jgZDjgaEs44Gf44GR44GXDQor44Gu44KA44KJLOOBsuOCjeOBlw0KK+OBiuOBoeOBguOBhCzjgYLjgoQNCivjgoLjgoos44GC44GN44KJDQor44GK44GM44GV44KP44KJLOOBguOBjeOCiQ0KK+OBiuOBjOOBleOCj+OCiSzjgYLjgaTjgZcNCivjgYrjgYzjgo8s44Gy44GV44GoDQor44GK44GM44KPLOOBn+OBi+OBlw0KK+OBiuOBjOOCjyzjgYjjgYTjgZgNCivjgYrjgZDjgoks44GN44KI44GXDQor44GK44GQ44KJLOOBvuOCig0KK+OBiuOBsuOBlyzjgoDjga3jgobjgY0NCivjgYrjgYvjgo8s44Gq44GK44GNDQor44GK44GL44KPLOOBqOOBl+OBr+OCiw0KK+OBiuOBi+OBnCzjgZPjgZ4NCivjgYrjgY0s44KI44GX44GC44GNDQor44GK44KA44KJLOOBi+OBpOOBruOCig0KK+OBiuOBmeOBvyzjgojjgYbjgZMNCivjgYrjgZ8s44GR44KT44Gf44KN44GGDQor44GK44Gf44GRLOOChuOBhuOBkw0KK+OBiuOBn+OBqyzjgbLjgZXjgZcNCivjgYrjgbLjgoPjgb4s44Gy44Gn44GNDQor44GK44Gc44GNLOOBk+OBmeOBkQ0KK+OBiuOBi+OCguOBqCzjgb7jgorjgZMNCivjgYrjgYvjgoDjgoks44G/44Gk44Gy44GVDQor44GK44GL44KA44KJLOOBn+OBpOOBlw0KK+OBiuOBj+OCgOOCiSzjgorjgofjgZMNCivjgYrjgpPjgaAs44Gf44GL44Gy44KNDQor44GK44Gu44Gn44KJLOOChOOBmeOBsuOBlQ0KK+OBiuOChOOBuSzjgbXjgb/jga7jgooNCivjgZXjgYws44G+44GV44GNDQor44GV44GE44Go44GGLOOBsuOCjeOChA0KK+OBleOBi+OBhCzjgajjgZfjgYLjgY0NCivjgYTjgY4s44GY44KF44KT44GTDQor44GV44GL44KC44GoLOOBquOBiuOBjQ0KK+OBleOBi+OCguOBqCzjgabjgaTjgoQNCivjgZXjgYvjgaTjgY4s44GC44Gk44GXDQor44GV44GL44GG44GILOOBvuOBleOBsuOCjQ0KK+OBleOBj+OBvizjgbXjgb/jgbLjgZMNCivjgZXjgY/jgoks44Gm44Gk44GYDQor44GV44Gq44GgLOOBkeOCkw0KK+OBleOBleOBjSzjgZHjgpPjgZgNCivjgZXjgZXjgY0s44Gy44KN44GXDQor44GV44Go44GGLOOBmOOCheOCkw0KK+OBleOBqOOBhizjgZPjgZfjgpMNCivjgZXjgajjgYYs44G+44KC44KLDQor44GV44Go44GGLOOBvuOBquOBvw0KK+OBleOBqOOBhizjga7jgorjgbLjgZMNCivjgZXjgajjgYYs44Gu44KK44KG44GNDQor44GV44Go44GGLOOBn+OBi+OBruOCig0KK+OBleOBqOOBhizjgajjgZfjgYLjgY0NCivjgZXjgajjgYYs44KG44GG44GTDQor44GV44Go44GGLOOBleOBquOBiA0KK+OBm+OBhOOBkSzjgYLjgY3jga7jgooNCivjgZvjgY0s44Gy44GV44GtDQor44Gb44GNLOOCiOOBl+OBsuOCjQ0KK+OBm+OBjSzjgYvjgZrjgYoNCivjgZvjgY3jgZDjgaEs44GR44KT44GYDQor44Gb44GfLOOBvuOCiuOBkw0KK+OBl+OCk+OBjOOBhCzjgYjjgYTjgY0NCivjgZfjgbDjgZ8s44KI44GX44Gy44KNDQor44GX44Gw44GfLOOBn+OBkeOBig0KK+OBl+OBtuOBjSzjgarjgYrjgoQNCivjgZfjgZLjgajjgb8s44GL44Gk44KG44GNDQor44GX44GMLOOBn+OBi+OBsuOCjQ0KK+OBl+OBhOOBsCzjgajjgZfjgYLjgY0NCivjgZfjgb7jgaAs44GX44KF44GG44GE44GhDQor44GX44G+44GL44KPLOOBsuOBp+OBsuOBlQ0KK+OBl+OBv+OBmizjgYvjgaTjgbLjgo0NCivjgZfjgb/jgZos44GN44KH44GTDQor44GX44G/44GaLOOChOOBmeOBsuOBqA0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgacNCivjgZfjgoLjgoDjgoks44GV44Go44G/DQor44GX44KC44KA44KJLOOBvuOBleOBruOCig0KK+OBl+OBiuOBmOOCiizjgojjgYbjgYTjgaENCivjgZfjgYrjgZbjgo8s44Gm44Gk44KEDQor44GX44KJ44GELOOBpuOBpA0KK+OBl+OCieOBi+OCjyzjgZ/jgZHjgZcNCivjgZ3jgb7jgpMs44Go44GX44GKDQor44Gd44Gy44KDLOOBguOBjeOBkw0KK+OBneOBruOBoCzjgojjgZfjgZMNCivjgZnjgaAs44KG44GN44Gu44KKDQor44GZ44GM44GuLOOBmOOCjQ0KK+OBmeOBjOOBrOOBvizjgYvjgZrjgb/jgaQNCivjgZnjgYzjgo8s44Gy44KN44GXDQor44GZ44GO44GG44KJLOOBv+OBiw0KK+OBmeOBjuOChOOBvizjgYTjgaHjgo3jgYYNCivjgZnjgZrjgY0s44GX44GS44KLDQor44GZ44Ga44GNLOOBmeOBmeOCgA0KK+OBmeOBmuOBjSzjgZ/jgYvjgaTjgaoNCivjgZnjgZrjgY0s44GK44GV44KADQor44GX44KH44GYLOOBn+OBi+OBlw0KK+OBn+OBkOOBoSzjgZ/jgYvjgZcNCivjgZ/jgYTjgoks44GC44GN44KJDQor44Gf44GY44G+LOOBsuOCjeOBlw0KK+OBn+OBi+OBoCzjgYLjgoTjgZMNCivjgYrjgYvjgoTjgb4s44KG44GG44GTDQor44Gf44GL44GO44GXLOOBteOBv+OBiA0KK+OBn+OBi+OBr+OBlyzjgZjjgpMNCivjgZ/jgYvjga/jgZcs44G+44GV44GoDQor44Gf44GL44Gv44GXLOOBvuOChuOBvw0KK+OBn+OBi+OBr+OBlyzjgajjgoLjga/jgosNCivjgZ/jgYvjga/jgZcs44GR44KT44GE44GhDQor44Gf44GL44GNLOOBleOBqOOBlw0KK+OBn+OBi+OBiuOBiyzjgZvjgYTjgYTjgaENCivjgZ/jgYvjgYrjgYss44GN44KH44GZ44GRDQor44GE44G+44GE44Ga44G/LOOBqOOCguOBsuOCjQ0KK+OBn+OBi+OBleOCjyzjgZHjgpMNCivjgZ/jgYvjgZks44GT44GG44GYDQor44Gf44GR44GELOOBguOBpOOBlw0KK+OBn+OBkeOBquOBiyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgZHjgZbjgY0s44Gm44Gk44KEDQor44Gf44G+44GE44GXLOOBi+OBpOOChA0KK+OBn+OBvuOBjSzjgZ/jgaDjgagNCivjgZ/jgarjgYss44KK44GIDQor44Gf44Gr44GQ44GhLOOBn+OBi+OBruOCig0KK+OBn+OBhuOBoSzjgYLjgZXjgZMNCivjgabjgonjgb/jgaQs44G/44GL44GTDQor44Go44GgLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBqOOBv+OBquOBjCzjgoTjgZnjgZcNCivjgajjgb/jgZ8s44G+44GV44KI44GXDQor44Go44KT44GQLOOBqOOBiuOCiw0KK+OBpOOBreOBi+OCjyzjgY3jgofjgZMNCivjgaTjgaTjgYQs44KI44GE44GhDQor44GG44Gh44GgLOOBn+OBj+OChA0KK+OBhuOBoeOBr+OBlyzjgbLjgo3jgobjgY0NCivjgYbjgYjjgaAs44KI44GX44GKDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBhuOBiOOBoCzjgaTjgojjgZcNCivjgYbjgYjjga/jgoks44Gb44Gk44GTDQor44G144GY44GfLOOBn+OBkeOBlw0KK+OBhuOCgeOBoCzjgojjgZfjgZMNCivjgYbjgoHjga/jgoks44Gy44Gn44GC44GNDQor44GG44KJ44G5LOOBl+OBkuOCiw0KK+OCj+OBn+OBuSzjgYLjgY3jgokNCivjgoTjgYzjgZXjgY0s44Gq44GK44GNDQor44KE44GO44KC44GoLOOBsuOCjeOBquOBig0KK+OChOOBmOOBvizjgaDjgYTjgZnjgZENCivjgoTjgb7jgaAs44G+44KEDQor44KE44G+44GgLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OChOOBvuOBoCzjgYLjgY3jgogNCivjgoTjgb7jgZDjgaEs44Gy44Gn44Go44GXDQor44KE44G+44GQ44GhLOOBsuOCjeOBteOBvw0KK+OChOOBvuOCguOBqCzjgYvjgaTjgojjgZcNCivjgoTjgb7jgoLjgags44Gf44GR44GXDQor44KE44G+44KC44GoLOOBn+OBj+OBig0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgZMNCivjgoTjgb7jga0s44KI44Gy44GhDQor44KE44G+44GV44GNLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgbLjgafjgYLjgY0NCivjgoTjgb7jgZbjgY0s44GX44G7DQor44KE44G+44GV44GNLOOBpuOBpOOChA0KK+OChOOBquOBjOOCjyzjgoTjgojjgYQNCivjgoTjgarjgY7jgaAs44Gy44GV44GTDQor44GK44GuLOOChOOBmeOBlw0KK+OChOOBquOBjuOBleOCjyzjgZnjgb/jgYsNCivjgoTjgZbjgY0s44Gy44KN44GXDQor44KE44GW44KPLOOBi+OBpOOBvw0KK+OCiOOBk+OChOOBvizjgb/jgaHjgZMNCivjgojjgZPjgoTjgb4s44Gf44GL44GXDQor44KI44KCLOOBv+OBi+OBkw0KK+OCiOOBl+OBoCzjgZXjgajjgZMNCivjgojjgZfjgaAs44Go44KC44GTDQor44KI44GX44GgLOOChOOBmeOBsuOCjQ0KK+OCiOOBl+OBr+OCiSzjgoTjgZnjgbLjgo0NCivjgojjgZfjga/jgoks44Gq44GK44GNDQor44KI44GX44KC44KKLOOBk+OBhuOBmA0KK+OBnOOBo+OBpCzjgYvjgZrjgbLjgo0NCivjgYLjgbks44Gv44KL44Gu44KKDQor44GC44Gg44GhLOOBi+OBmuOBjQ0KK+OBguOBhOOBi+OCjyzjgb7jgZXjgobjgY0NCivjgYLjgYvjgYgs44Go44GX44KEDQor44GC44KT44Gp44GGLOOBn+OBkeOBlw0KK+OBguOBleOBvyzjgoTjgZnjgYoNCivjgYTjgb7jgarjgYss44Gy44Gn44Gu44G2DQor44G544Gj44G3LOOChOOBmeOBlw0KK+OBueOBo+OBtyzjgarjgYrjgY0NCivjgaHjgYvjga/jgoks44Gb44GE44GYDQor44G144GY44GELOOBsuOCjeOBkw0KK+OBteOBmOOBleOBjSzjgZ/jgZHjgZcNCivjgbXjgY/jgZfjgb4s44GN44KH44GYDQor44GP44KN44GgLOOBsuOBp+OBig0KK+OCguOCiizjgobjgYbjgZgNCivjgarjgYvjgoDjgoks44Gv44KL44Gy44GTDQor44KP44Gf44Gq44G5LOOBguOChuOBvw0KK+OBj+OCjeOBoCzjgb7jgZXjgbLjgacNCivjgb/jgoTjgYbjgaEs44Gf44GL44GXDQor44GE44Go44GGLOOBsuOBp+OCiA0KK+OBhOOBhOOBoCzjgojjgZfjgZ/jgaANCivjgYvjgo/jga4s44GT44GG44GYDQor44GC44GE44GG44KJLOOBsuOCjeOBteOBvw0KK+OBruOBluOBjSzjgb/jgaHjgZMNCivjgbPjgZ/jgass44G+44GNDQor44Gf44Gr44GC44GELOOBv+OBlQ0KK+OBguOBiuOBjSzjga/jgovjgogNCivjgYrjgY0s44KG44GZ44GRDQor44GC44GK44GNLOOBsuOCjeOBguOBjQ0KK+OBguOBiuOChOOBjizjgYrjgZXjgoANCivjgYLjgYvjgavjgZcs44G/44Gk44Go44GXDQor44GC44GV44GKLOOBn+OBi+OChuOBjQ0KK+OBguOBleOBj+OCiSzjgYLjgZrjgZUNCivjgYLjgZfjgZbjgo8s44Go44GX44G/DQor44GC44Gf44GPLOOBvuOBleOBsuOBpw0KK+OBguOBoOOBoSzjgZfjgoXjgbLjgocNCivjgYTjgajjgYYs44Gf44GL44GIDQor44GX44G+44KC44GoLOOBguOBleOBkw0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpPjgZMNCivjgZfjga7jga/jgoks44GN44GP44GTDQor44GK44GL44GuLOOBvuOChuOBvw0KK+OBiuOBi+OCguOBqCzjgb7jgYQNCivjgbLjgonjgYvjgo8s44Go44GX44GKDQor44GZ44GM44Gs44G+LOOBpuOCi+OBguOBjQ0KK+OBguOBquOBluOCjyzjgYLjgoTjgb8NCivjgYLjgonjgYQs44Gg44GE44GZ44GRDQor44GC44KJ44GELOOBmOOCheOBq+OBoQ0KK+OBguOCieOBi+OCjyzjgY3jgZXjgY8NCivjgYLjgonjgYvjga0s44GL44Ga44KG44GNDQor44GC44KJ44GNLOOBkeOCk+OBnw0KK+OBguOCk+OBqeOBhizjgarjgYrjgbLjgo0NCivjgYTjgYbjgaEs44G+44GV44Gy44GTDQor44GE44GR44GgLOOBi+OBiA0KK+OBhOOBkeOChCzjgYvjgZrjgY0NCivjgYTjgZfjgYvjgo8s44Gy44KN44GXDQor44GE44GX44GL44KPLOOChuOBhuOBkw0KK+OBhOOBl+OBi+OCjyzjgobjgooNCivjgYTjgZfjgYvjgo8s44GC44Go44KADQor44GE44GX44GM44GNLOOBvuOBleOCiw0KK+OBhOOBl+OBkOOCjSzjgYvjgaTjgb8NCivjgYTjgZfjga/jgoks44Gy44Gn44GTDQor44GE44Gd44KA44KJLOOBsuOCjeOBlw0KK+OBhOOBn+OBjOOBjSzjgojjgZTjgo0NCivjgYTjgYTjgaAs44Go44KC44G/44GhDQor44GE44Gh44GL44KPLOOBv+OBruOCiw0KK+OBhOOBoeOBi+OCjyzjgajjgZfjgYvjgZoNCivjgYTjgacs44GN44KT44KEDQor44GE44Go44GGLOOChuOBv+OBkw0KK+OBhOOBrOOBhCzjgYLjgY3jgZMNCivjgYTjga7jgYbjgYgs44GX44GS44Gu44KKDQor44GE44G+44Gr44GXLOOBsuOCjeOBsuOBlQ0KK+OBhOOBvuOBr+OChOOBlyzjgb7jgZPjgagNCivjgYTjgo/jgZXjgY0s44KE44GZ44Gy44KNDQor44GE44KP44GV44GNLOOBvuOBleOBjQ0KK+OBhOOCj+OCguOBqCzjgbLjgo3jgZcNCivjgYbjgYjjga4s44G+44GV44G/DQor44GG44GI44GuLOOBsuOCjeOBlw0KK+OBhuOBoeOBhOOBkSzjgZPjgYbjgYTjgaENCivjgYbjgaHjgoTjgb4s44Gy44KN44GXDQor44GG44KB44GgLOOBi+OBiuOCiw0KK+OBhuOCgeOCgOOCiSzjgb7jgZXjgY0NCivjgYbjgoHjgoLjgags44GP44G/44GTDQor44GG44KL44GX44Gw44KJLOOBjeOCiOOBvw0KK+OBiOOBkOOBvizjgZfjgo0NCivjgYjjgoks44Gd44KIDQor44GK44GG44GV44GLLOOCiOOBl+OBqOOBlw0KK+OBiuOBi+OCjyzjgYTjgZ/jgosNCivjgYrjgZXjgo8s44Gy44KN44G144G/DQor44GK44GX44G+LOOBvuOBjeOBqA0KK+OBiuOBl+OBvizjga7jgbbjgbLjgo0NCivjgYrjgZnjgYws44KA44Gt44Gf44GLDQor44GK44Gf44GrLOOBl+OCk+OBhOOBoQ0KK+OBiuOBpCzjgb7jgZXjgaTjgZANCivjgYrjgaTjgYss44G+44KG44G/DQor44GK44GtLOOBkeOBhOOBhOOBoQ0KK+OBiuOBrizjgYjjgYTjgZgNCivjgYrjga/jgZcs44GL44Ga44Gu44KKDQor44GK44Gv44GXLOOCiOOBl+OBguOBjQ0KK+OBiuOBsOOChOOBlyzjgojjgZfjgZ/jgYsNCivjgYrjgbLjgofjgZcs44GX44KF44GYDQor44GK44GL44KC44GoLOOBleOCiA0KK+OBiuOBjOOBleOCj+OCiSzjgaHjgbvjgZMNCivjgYrjgYzjgo8s44KI44GX44Gy44GTDQor44GK44GP44Gf44GrLOOBiOOCig0KK+OBiuOBj+OCgOOCiSzjgarjgYrjgoQNCivjgYrjgZDjgoks44G+44GV44Gf44GLDQor44GE44GE44GL44KPLOOBvuOBleOBv+OBpA0KK+OBiuOBkOOCiSzjgb7jgZXjgbLjgZMNCivjgYrjgZbjgo8s44KI44GX44Gf44GLDQor44GK44GW44KPLOOBvuOBquOBtg0KK+OBiuOBrizjgZ/jgaTjgbLjgZMNCivjgYvjgY3jgoLjgags44Gy44Gn44GNDQor44GL44GN44KC44GoLOOBvuOBleOBteOBvw0KK+OBi+OBkuOChOOBvizjgZ/jgaDjgbLjgZUNCivjgYTjgZfjgYvjgo8s44G+44GV44KG44GNDQor44GL44Gd44KKLOOBguOBjeOCiQ0KK+OBi+OBpOOBvyzjgZHjgpPjgYTjgaENCivjgYvjgajjgYYs44GR44KT44GUDQor44GL44Go44GGLOOBl+OCk+OBmA0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgYvjgajjgYYs44Gf44Gg44KG44GNDQor44GL44Go44GGLOOCiOOBl+OBkw0KK+OBkeOBmuOBiyzjgbLjgafjga7jgooNCivjgYvjganjgo/jgY0s44GUDQor44GL44Gt44GTLOOChuOBhuOBkw0KK+OBi+OBrizjgbLjgo3jgZMNCivjgYvjgb/jgoTjgb4s44GR44KT44GE44Gh44KNDQor44GL44KP44GX44G+LOOBleOBqOOBlw0KK+OBi+OCj+OBmyzjgZ/jgYvjga7jgooNCivjgYvjgo/jga4s44Gy44Gn44Gy44GTDQor44GL44KP44KC44GoLOOChOOBmeOBruOCig0KK+OBi+OCj+OCguOBqCzjgozjgYTjgZMNCivjgYvjgo/jgZss44Gy44KN44GXDQor44GL44KT44GgLOOBqOOCguOBvw0KK+OBjeOBj+OBoSzjgbLjgo3jgZcNCivjgY3jgY/jgaEs44KE44GZ44Gy44GoDQor44GN44GP44GhLOOBquOBiuOBjQ0KK+OBjeOBn+OBguOCieOBlyzjgarjgYrjgZMNCivjgY3jgZ/jgYrjgYss44Gu44KK44GTDQor44GN44Gf44GY44G+LOOBl+OBkuOBruOCig0KK+OBjeOBn+OCgOOCiSzjgaDjgYTjgZnjgZENCivjgY3jgZ/jgoDjgoks44GR44GE44GYDQor44GN44Gm44KJLOOBguOBjeOCiQ0KK+OBjeOBruOBl+OBnyzjgb/jgaTjgZfjgo0NCivjgY3jgoDjgoks44GC44GN44Gy44KNDQor44GN44KK44GGLOOBruOCiuOBkw0KK+OBj+OBleOBi+OBuSzjgbLjgo3jgYvjgZoNCivjgY/jgbzjgZ8s44Gy44KN44KG44GNDQor44GP44G+44GM44GELOOBleOBqOOCiw0KK+OBj+OBvuOBrizjgYvjgZrjgY0NCivjgY/jgorjga/jgoks44G+44GV44Gf44GLDQor44GP44KL44GX44G+LOOBl+OCkw0KK+OBquOBi+OBjOOCjyzjgarjgYrjgY0NCivjgZPjgYTjgacs44Gy44Gn44Go44GXDQor44GT44GuLOOBsuOBleOChuOBjQ0KK+OBk+OCguOBqCzjgYLjgY3jgZMNCivjgZPjgYws44Gu44G244GKDQor44GT44GY44G+LOOBvuOBhOOBkw0KK+OBk+OBq+OBlyzjgb/jgobjgY0NCivjgZPjgbDjgoTjgZcs44GC44GN44Gy44KNDQor44GT44G+44GkLOOBn+OBkeOBvw0KK+OBk+OBv+OChCzjgYLjgaTjgZcNCivjgZPjgpPjgaks44GV44Go44GXDQor44GT44KT44GpLOOBmOOCheOCk+OBkw0KK+OBlOOBqCzjgZ/jgYvjgbLjgo0NCivjgZXjgYTjgajjgYYs44Gf44GR44GXDQor44GV44GE44Go44GGLOOBvuOBiOOBkw0KK+OBleOBhOOBqOOBhizjgZPjgZnjgZENCivjgZXjgYvjgoLjgags44GR44KT44GY44KNDQor44GV44GP44G+LOOBleOCig0KK+OBl+OBv+OBmizjgb7jgZXjgagNCivjgZXjgaDjgaHjgYss44GC44GN44KI44GXDQor44GV44GoLOOBoeOBiw0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZXjgajjgYYs44G+44GV44GXDQor44GV44Go44GGLOOChuOBhuOBkw0KK+OBleOBqOOBhizjgY/jgavjga/jgosNCivjgZXjgo/jgaAs44Gf44GE44GYDQor44GE44Gd44KPLOOBi+OCiOOBkw0KK+OBl+OCguOBmOOChyzjgZvjgYTjgYYNCivjgZfjgoUs44GR44GE44GE44GhDQor44GX44GK44GL44KPLOOBl+OCk+OChA0KK+OBl+OBiuOBluOCjyzjgZXjgajjgZcNCivjgZfjgYvjgYbjgaEs44Gk44Go44KADQor44GX44Ga44KKLOOBoOOBhOOBmeOBkQ0KK+OBl+OBrizjgZ/jgaTjgoQNCivjgZfjga7jgZbjgY0s44GT44GG44GYDQor44GX44Gu44GgLOOBsuOBp+OBjQ0KK+OBl+OBruOBoCzjgZ/jgZHjgYoNCivjgZfjgbDjgZbjgY0s44Go44GX44GL44GaDQor44GX44Gw44GfLOOBquOBiuOBjQ0KK+OBl+OBvuOCgOOCiSzjgZHjgYTjgZjjgoUNCivjgZfjgb/jgZos44GV44KI44GTDQor44GX44G/44GaLOOBmOOCheOCkw0KK+OBl+OBv+OBmizjgbLjgajjgb8NCivjgZfjgb/jgZos44G/44GLDQor44Gf44GN44Gf44GrLOOBi+OBpOOChuOBjQ0KK+OBl+OCieOBrizjgZjjgoXjgpPjgZgNCivjgZnjgYjjgbLjgo0s44G+44GV44Gy44GTDQor44GZ44GM44GELOOBn+OBi+OBguOBjQ0KK+OBmeOBjOOCiOOBlyzjgb7jgZXjgoQNCivjgZnjgYzjgo/jgoks44GC44KE44GuDQor44GZ44GO44GG44KJLOOBvuOBleOBsuOBkw0KK+OBmeOBjuOBl+OBvizjgb/jgaTjgosNCivjgZnjgY7jgoLjgags44Gf44GR44GXDQor44GZ44Ga44GL44KPLOOBpuOBpOOBmA0KK+OBmeOBoCzjgZjjgoXjgpPjgZjjgo0NCivjgZnjgb/jgYvjgo8s44G+44GZ44G/DQor44GZ44G/44GuLOOChuOBjeOBkw0KK+OBm+OBjeOBkOOBoSzjgYLjgY3jgbLjgagNCivjgZ3jgYjjgZjjgb4s44GV44GK44KKDQor44Gf44GK44GLLOOBruOBvOOCiw0KK+OBn+OBi+OBjSzjgb/jgb7jgZMNCivjgZ/jgYvjgZfjgb4s44KG44GG44GYDQor44Gf44GL44GbLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44KG44Gy44GhDQor44Gf44GL44Gv44GXLOOBn+OBi+OChuOBjQ0KK+OBn+OBjeOBn+OBqyzjgZHjgpMNCivjgZ/jgZHjgYbjgaEs44G/44GN44GKDQor44Gf44GR44GG44GhLOOBkeOCk+OBmA0KK+OBn+OBkeOBoCzjgZfjgZLjgbXjgb8NCivjgZ/jgZHjgaAs44Gu44KK44GC44GNDQor44Gf44GR44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OBn+OBkeOCgOOCiSzjgbLjgZXjgZcNCivjgZ/jgZQs44KI44GX44GIDQor44Gf44GN44GW44KPLOOBguOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgYvjgaTjgYLjgY0NCivjgZ/jgarjgYss44GT44GG44GYDQor44Gf44Gq44GLLOOBl+OBkuOBvw0KK+OBhOOCj+OBrizjgoTjgZnjgarjgooNCivjgZ/jgarjgYss44Gf44Gg44GXDQor44Gf44Gr44GILOOBjeOCh+OBkw0KK+OBn+OBq+OBkOOBoSzjgZfjgpPjgYTjgaENCivjgZ/jgavjgZDjgaEs44GN44KI44Gf44GLDQor44Gf44Gr44G+44GkLOOBi+OBpOOChA0KK+OBn+OBsOOBnyzjgZ/jgaTjgoQNCivjgZ/jgb7jgY0s44GI44GE44GE44GhDQor44GE44Gb44KC44GoLOOBquOBqg0KK+OBn+OBv+OChCzjgbLjgo3jgbbjgb8NCivjgaHjgoPjgoLjgags44GR44KT44KPDQor44Gh44KTLOOBn+OBoOOChuOBjQ0KK+OBpOOBi+OCguOBqCzjgZHjgYTjgYTjgaENCivjgaTjgaHjga/jgZcs44GE44GP44Gy44GTDQor44Gm44KJ44GV44KPLOOBquOBiuOBsuOBlQ0KK+OBqOOBmOOChyzjgb7jgZXjgZMNCivjgbXjgY/jgZfjgb4s44Gh44GL44GTDQor44Go44GwLOOCiOOBhuOBkw0KK+OBqOOBv+OCiOOBlyzjgorjgofjgZnjgZENCivjgajjgoDjgo0s44GR44KT44GYDQor44Go44KI44GX44G+LOOBi+OBmuOBl+OBkg0KK+OBqOOCiuOChOOBvizjgbLjgo3jgZcNCivjgarjgYTjgajjgYYs44GV44Gg44KI44GXDQor44GE44GnLOOBi+OBmuOBiA0KK+OBr+OBnyzjgZjjgofjgZgNCivjgarjgYvjgYzjgY0s44Gy44KN44GXDQor44Gq44GL44GM44KPLOOBv+OCj+OBkw0KK+OBquOBi+OBluOCjyzjgZ/jgaTjgoQNCivjgarjgYvjgacs44GY44KHDQor44Gq44GL44Gv44KJLOOBguOBjQ0KK+OBn+OBkeOBhuOBoSzjgbXjgZXjgZcNCivjgarjgYvjgoDjgoks44KI44Gy44Gh44KNDQor44Gq44GL44KA44KJLOOCiOOBhuOBkw0KK+OBquOBmSzjgoDjga3jgbLjgo0NCivjgavjgYTjgoDjgoks44Gf44Gk44KEDQor44Gr44GX44GK44GLLOOBv+OBoeOBkw0KK+OBq+OBl+OBi+OCjyzjgarjgYrjgZcNCivjgavjgZfjgZbjgo8s44GN44KH44GTDQor44Gr44GX44GoLOOBsuOBqOOBjQ0KK+OBq+OBl+OBrizjgarjgaTjgbLjgZMNCivjgavjgZfjga/jgoks44GY44KF44Gr44GhDQor44Gr44GX44KA44KJLOOBquOBiuOChuOBjQ0KK+OBreOCguOBqCzjgbLjgo3jgobjgY0NCivjga7jgZDjgaEs44G/44Gh44GL44GaDQor44Gu44GQ44GhLOOBteOBleOBig0KK+OBruOBmOOCiizjgb/jgY0NCivjga7jgZjjgoos44Gf44GL44GTDQor44Gu44KA44KJLOOCiOOBl+OBkw0KK+OBr+OBo+OBnyzjgZfjgofjgZMNCivjga/jgZfjgbAs44GC44Gk44GXDQor44Gv44GX44KC44GoLOOBi+OBpOOBsuOBlQ0KK+OBr+OBl+OCguOBqCzjgZXjgajjgZcNCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44Gv44GX44KC44GoLOOBsuOCjeOBlw0KK+OBr+OBm+OBjOOCjyzjgajjgZfjgbLjgo0NCivjga/jgZ8s44Gy44Gn44GC44GNDQor44Gv44GfLOOBguOBjeOCiQ0KK+OBr+OBn+OBrizjgZfjgZLjgosNCivjga/jgoTjgZcs44KE44GZ44GTDQor44Gv44KE44GXLOOBk+OBhuOBmA0KK+OBr+OCieOBoCzjgarjgYrjgY0NCivjga/jgonjgaAs44GP44Gr44KC44KKDQor44Gw44GwLOOBleOBoeOCiA0KK+OBsOOBsCzjgYjjgb8NCivjgbLjgZDjgaEs44G+44GV44KEDQor44Gy44GQ44GhLOOCiOOBl+OBquOBig0KK+OBsuOBleOBjSzjgZ/jgYvjgbLjgo0NCivjgbLjgZjjgoos44GL44Ga44Gy44GTDQor44Gy44KJ44KE44G+LOOBguOBjeOBkw0KK+OBteOBj+OBoCzjgaHjgYvjgZMNCivjgbXjgZjjgYQs44KG44GLDQor44GZ44GM44GELOOBhOOBoeOCjeOBhg0KK+OBteOBmOOBnyzjgY3jgojjgZcNCivjgbXjgZjjgZ8s44Gf44GL44GTDQor44G144GY44GfLOOBkeOCk+OBhOOBoQ0KK+OBteOBmOOBn+OBqyzjgYvjgZrjgY0NCivjgbXjgZjjgarjgb8s44KI44GX44GL44GkDQor44G144GY44GuLOOBvuOBhOOBkw0KK+OBruOBruOCgOOCiSzjgbLjgo3jgobjgY0NCivjgbXjgZss44GP44G/44GTDQor44GZ44GO44KC44GoLOOBqOOCguOBkw0KK+OBu+OBneOBi+OCjyzjgZHjgpPjgYTjgaENCivjgbvjgorjgYbjgaEs44Gy44KN44G144G/DQor44G744KK44GL44KPLOOBguOBmeOBiw0KK+OBvuOBjeOBrizjga7jgbbjgbLjgZMNCivjgb7jgY3jga4s44GN44KH44GTDQor44G+44GX44GTLOOBlOOBmA0KK+OBvuOBmeOBoCzjgYjjgooNCivjgb7jgZnjgbbjgaEs44Gf44GL44KG44GNDQor44G+44GZ44G244GhLOOBvuOChuOBvw0KK+OBvuOBpOOBhCzjgbLjgo3jgbXjgb8NCivjgb7jgaTjgZbjgo8s44GV44Go44G/DQor44Go44G/44Gq44GMLOOBi+OBmuOChA0KK+OBvuOBpOOBquOBjCzjgobjgY3jgZMNCivjgb7jgaTjgarjgYws44Gu44G244GTDQor44GZ44Ga44GNLOOBleOBqOOBlw0KK+OBvuOBpOOCgOOCiSzjgZfjgZLjgobjgY0NCivjgb7jgaTjgoLjgags44Gf44Gk44KG44GNDQor44G+44Gk44KC44GoLOOBi+OBpOOBmA0KK+OBvuOBpOOChOOBvizjgZ/jgabjgosNCivjgb7jgaTjgoTjgb4s44KI44Gy44Gh44KNDQor44G+44Gk44KE44G+LOOBn+OBpOOBig0KK+OBvuOBpOOCiOOBlyzjgarjgYrjgb8NCivjgb7jga4s44Gy44KN44GC44GNDQor44G+44KL44GK44GLLOOBhOOBj+OBkw0KK+OBv+OBi+OBvyzjga7jgorjgbLjgZMNCivjgb/jgY0s44Go44GX44Gy44GTDQor44G/44Ge44GQ44GhLOOBi+OBmuOChA0KK+OBv+OBnyzjgZ/jgYvjgZcNCivjgb/jga0s44GC44GN44Gy44KNDQor44G/44Gt44GKLOOBvuOBjeOBkw0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgYTjgY/jgZ8s44Gf44GL44GXDQor44G/44KE44GW44GNLOOCiOOBl+OBkw0KK+OBn+OBi+OBjuOCjyzjgobjgY0NCivjgb/jgojjgZcs44KE44GZ44GYDQor44KA44GL44GELOOBkeOBhOOBhOOBoQ0KK+OCgOOCieOBi+OBvyzjgbLjgafjgbXjgb8NCivjgYTjgZfjgaAs44Go44KC44Gy44GVDQor44KA44KJ44GL44G/LOOBruOCiuOBkw0KK+OCgOOCieOBi+OBvyzjgZPjgYbjgZgNCivjgoDjgonjgoTjgb4s44Gm44Gk44KEDQor44KA44KJ44KE44G+LOOBguOBjeOBkw0KK+OCgOOCjeOBhCzjgZvjgYTjgZgNCivjgoLjgZ/jgYQs44Go44GX44KE44GZDQor44KC44Go44GNLOOCiOOBhuOBkw0KK+OCguOBqOOCgOOCiSzjgbLjgo3jgY0NCivjgoLjgoos44G+44GV44G/DQor44GL44GbLOOBv+OBruOCiw0KK+OCguOCiuOBl+OBnyzjgaHjgYLjgY0NCivjgoLjgorjgZ8s44GV44Go44KLDQor44KC44KN44Go44G/LOOBi+OBpOOBruOCig0KK+OCguOCjeOBr+OBlyzjgYLjgoQNCivjgYvjgo/jgoLjgags44Gy44Gn44GNDQor44KE44GQ44GhLOOBl+OBkuOCiw0KK+OChOOBmOOBvizjgojjgYbjgZMNCivjgoTjgZnjgYvjgo8s44G/44Gk44Gf44GLDQor44KE44GZ44GgLOOBvuOBleOBguOBjQ0KK+OChOOBpOOBmuOBiyzjgaTjgYvjgZUNCivjgoTjgarjgY7jgZXjgo8s44GV44Go44GXDQor44KE44G+44GQ44GhLOOBi+OBmuOBn+OBiw0KK+OChOOBvuOBleOBjSzjgZPjgYbjgZgNCivjgoTjgb7jgZbjgY0s44G+44GT44GoDQor44KE44G+44GW44GNLOOBvuOBleOBn+OBiw0KK+OChOOBvuOBluOBjSzjgYvjgZrjgb7jgZUNCivjgoTjgb7jgaAs44GL44Ga44KEDQor44KE44G+44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgYvjgaTjgbLjgo0NCivjgoTjgb7jgarjgYss44GC44GN44KI44GXDQor44GP44KK44Gv44KJLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgarjgYrjgY0NCivjgoTjgb7jgoLjgags44Gy44Gn44Gu44G2DQor44KE44G+44KC44GoLOOChuOBjeOBkw0KK+OBvuOBpOOBiizjgbLjgo3jga7jgooNCivjgojjgY4s44Gm44KL44Gy44GTDQor44KI44GT44KE44G+LOOBquOBiuOBkw0KK+OCiOOBk+OChOOBvizjgbLjgo3jgZcNCivjgojjgZfjgYvjgo8s44G+44GV44Gy44GoDQor44KI44GX44GL44KPLOOBvuOCiuOBkw0KK+OCiOOBl+OBoCzjgobjgY0NCivjgo/jgY/jgYQs44GN44KT44KEDQor44KP44Gf44Gq44G5LOOBn+OBi+OChA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44GTDQor44KP44Gf44Gq44G5LOOBm+OBhOOBmOOCjQ0KK+OBr+OChOOBlyzjgZHjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgaAs44Gq44GK44GNDQor44KP44GL44Gw44KE44GXLOOBn+OBi+OBruOCig0KK+OBhOOCj+OCgOOCiSzjgZfjgoXjgbLjgaENCivjgo/jgZ/jgarjgbks44G+44GV44GNDQor44GP44KP44GX44G+LOOBvuOBleOBkw0KK+OBiuOBsOOBnyzjgZfjgpPjgZ/jgo3jgYYNCivjgYLjgarjgZbjgo8s44KE44GZ44GXDQor44KE44GOLOOBvuOBmeOBvw0KK+OBguOBi+OBiizjgaHjgajjgZsNCivjgZfjgb/jgZos44Gy44Gn44GNDQor44GV44GL44KC44GoLOOCiOOBhuOBkw0KK+OBguOBiuOBjSzjgarjgYrjgbLjgacNCivjgYLjgZrjgb4s44KI44GX44GTDQor44GE44GE44GgLOOBk+OBhuOBmA0KK+OBhOOBkeOBhuOBoSzjgabjgaTjgoQNCivjgYTjgZfjgYvjgo8s44GR44KT44Gf44KN44GGDQor44GE44Gd44GM44GELOOBl+OBuw0KK+OBhOOBqOOBhizjgojjgZfjgbLjgagNCivjgYTjgbAs44G+44Gq44G2DQor44GE44KP44KC44GoLOOBn+OBi+OBlw0KK+OBhuOBiOOBleOBiyzjga7jgbbjgoQNCivjgYbjgYjjga4s44GV44Go44GXDQor44GG44GI44Gy44KJLOOBruOCiuOBvuOBlQ0KK+OBhuOBoeOChOOBvizjga7jgbzjgosNCivjgYbjgoHjgarjgYQs44GZ44GQ44KLDQor44GI44KA44KJLOOBleOBqOOBvw0KK+OBiuOBjeOBnyzjgbLjgYvjgosNCivjgYrjgY/jgbws44GT44GZ44GRDQor44GK44Gf44GrLOOBqOOCguOBi+OBmg0KK+OBiuOBpCzjgarjgaTjgZMNCivjgYrjgaTjgYss44Gy44Gn44Gu44G2DQor44GK44GL44GX44KNLOOBl+OBkuOBguOBjQ0KK+OBiuOBoCzjgZPjgYbjgYTjgaENCivjgYrjga4s44GI44GqDQor44GL44Go44GGLOOCgeOBsOOBiA0KK+OBi+OBreOBsuOBlSzjgabjgaTjgYoNCivjgYvjgb/jgoQs44G+44GT44GoDQor44GL44KP44GELOOBn+OBoOOBsuOCjQ0KK+OBi+OCj+OBiuOBiyzjgYLjgZrjgZUNCivjgY3jgZ/jga4s44GX44KT44GYDQor44GN44G244GXLOOBn+OBkeOBsuOCjQ0KK+OBjeOCgOOCiSzjgb7jgoLjgosNCivjgY3jgoDjgoks44GR44KT44GUDQor44GP44GV44GLLOOBkeOCk+OBmA0KK+OBj+OBsCzjgZnjgZnjgoANCivjgY/jgbzjgZ8s44Gf44GL44Gy44KNDQor44GP44KN44GE44KPLOOBmOOCheOBq+OBoQ0KK+OBj+OCj+OBsOOCiSzjgbLjgo3jgZcNCivjgZPjgYTjgZEs44GC44KEDQor44GT44GE44Gf44Gw44GXLOOBsuOCjeOBkw0KK+OBk+OBoCzjgojjgZfjgb8NCivjgZPjgaAs44GX44KNDQor44GT44GX44KA44KJLOOBguOBpOOBlw0KK+OBk+OChOOBquOBjizjgbLjgo3jgb8NCivjga/jgajjgoos44KI44GX44KG44GNDQor44GV44GL44GG44GILOOBquOBiuOBkw0KK+OBguOBuSzjgYrjgZXjgoANCivjgZXjgajjgYYs44Gf44GP44KI44GXDQor44GV44Go44GGLOOBsuOBp+OBjQ0KK+OBleOBqOOBhizjgZjjgoXjgavjgaENCivjgZfjgb7jgaAs44Gk44G4DQor44GE44G+44GELOOBvuOBleOBn+OBiw0KK+OBmeOBjOOBrOOBvizjgb7jgZXjgZMNCivjgZvjgY0s44GV44Go44G/DQor44Gb44GuLOOBn+OBi+OBlw0KK+OBguOBuSzjgZfjgo0NCivjgZ/jgYvjgZnjgYws44GX44KT44GYDQor44Gf44GL44GZ44GOLOOBiOOBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgZnjgb/jgYoNCivjgZ/jgYvjga/jgZcs44Gk44GL44GVDQor44Gf44GL44Gv44GXLOOBsuOBp+OBig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgZ/jgZENCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44Gf44GN44KC44GoLOOBsuOBleOBkw0KK+OBn+OBj+OBvCzjgobjgYbjgZMNCivjgZ/jgZHjgYbjgaEs44GV44KPDQor44Gf44GR44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgoTjgZnjgb/jgaQNCivjgZ/jgarjgYss44G+44KG44G/DQor44Gf44Gw44GfLOOCiOOBl+OBig0KK+OBn+OBv+OChCzjgorjgYgNCivjgZ/jgoDjgoks44GL44Gk44GC44GNDQor44Gh44KF44G+LOOBoeOCiA0KK+OBu+OCk+OBlCzjgYLjgY3jgbLjgo0NCivjgarjgYvjgYos44Gf44GL44KE44GZDQor44Gq44GL44GM44KPLOOBvuOBleOBr+OCiw0KK+OBquOBi+OBnuOBrizjgb7jgobjgb8NCivjgarjgYvjga4s44Gu44G244GTDQor44Gr44Gj44GfLOOBqOOCguOBvw0KK+OBq+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga7jgZgs44GC44GN44Gy44GoDQor44Gv44GW44GuLOOBk+OBhuOBmA0KK+OBr+OBl+OCguOBqCzjgbLjgZXjgb8NCivjga/jgZfjgoLjgags44KG44GG44GfDQor44Gv44KE44GXLOOCiOOBl+OChuOBjQ0KK+OBr+OChOOBlyzjgajjgoLjgZMNCivjga/jgonjgZDjgaEs44KG44GN44Gy44GTDQor44Gv44KL44GQ44GhLOOCguOBqOOBhOOBoQ0KK+OBsuOCieOBpyzjgaHjgZrjgosNCivjgbLjgonjga4s44GL44Gk44KG44GNDQor44Gy44KJ44KE44G+LOOBn+OBkeOBlw0KK+OBteOBi+OBluOCjyzjgozjgYTjgZMNCivjgbXjgY/jgb7jgZks44Gy44KN44Gf44GLDQor44G144GP44KC44KKLOOChuOBhuOBkw0KK+OBteOBmOOBi+OCjyzjga7jgbbjgYLjgY0NCivjgbvjgZfjga4s44GT44GG44GE44GhDQor44G744Gd44GuLOOBsuOBp+OBruOCig0KK+OBvuOBpOOBiuOBiyzjgb/jgaTjgbLjgo0NCivjgb7jgaTjgoDjgoks44Gv44GqDQor44G/44Ga44GL44G/LOOCiuOCh+OBsuOBoQ0KK+OBv+OBpOOBhCzjgbLjgo3jgYLjgY0NCivjgb/jga7jgYvjgb8s44Gf44GL44GXDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OCgOOCieOBi+OBvyzjgobjgYbjgZMNCivjgoDjgonjgYvjgb8s44Gh44GK44KKDQor44KE44GfLOOBqOOBkw0KK+OChOOBquOBjuOBnyzjgZ/jgYvjgZcNCivjgoTjgb7jgZDjgaEs44Go44GX44GKDQor44KE44G+44GX44GfLOOBhOOBleOCgA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgZ/jgYsNCivjgojjgZfjgZ/jgZEs44KG44GNDQor44KI44GX44KA44KJLOOBsuOCjeOBvw0KK+OBsuOBkOOBoSzjgYvjgogNCivjga/jgZfjgoLjgags44G+44GV44KLDQor44KP44Gf44Gq44G5LOOBl+OBkuOCiw0KK+OBguOBjeOBsCzjga7jgorjgZMNCivjgYLjgY3jgoLjgags44GC44GN44Gy44GoDQor44GC44G+44KELOOCiOOBl+OBquOCig0KK+OBguOCk+OBqeOBhizjgarjgb/jgZMNCivjgYLjgpPjgZbjgo8s44Gm44Gk44KNDQor44GC44GV44Gv44GfLOOBn+OBhOOBmeOBkQ0KK+OBsOOBsCzjgajjgZfjgobjgY0NCivjgbnjgaPjgZfjgocs44Gf44Gk44GXDQor44Gh44GL44KC44GoLOOBjeOCh+OBsuOChw0KK+OBoeOChyzjgZHjgYTjgZMNCivjgbXjgZjjgbLjgoks44Gq44GK44GTDQor44G144GY44GELOOBv+OBruOCiw0KK+OBteOBmOOBn+OBqyzjgZPjgYbjgZgNCivjgbXjgYvjgaAs44G/44Gh44GKDQor44G144KL44Gg44GmLOOChuOBsuOBoeOCjQ0KK+OBteOCi+OChOOBvizjgbLjgafjga7jgooNCivjgZTjgaAs44GI44KKDQor44GT44GE44GRLOOBn+OBkeOBlw0KK+OBr+OBi+OBvuOBoCzjgYLjgaTjgZcNCivjga/jgZvjgYzjgo8s44KG44GNDQor44Gv44GX44KC44GoLOOBn+OBkeOBsuOBkw0KK+OBr+OBo+OBnyzjgb/jgaTjgogNCivjga/jgaPjgajjgoos44G+44GV44KLDQor44Gv44KE44GL44KPLOOBpuOBpOOCjQ0KK+OBr+OChOOBi+OCjyzjga7jgbbjgbLjgo0NCivjgbLjgazjgb4s44GL44Ga44Gy44GoDQor44Gy44KN44GNLOOBv+OBoeOBsuOBqA0KK+OBu+OCiuOBruOBhuOBoSzjgabjgovjgbLjgagNCivjgbvjgZ3jga4s44GV44GK44KKDQor44G144GY44GK44GLLOOBoOOBhOOBmeOBkQ0KK+OBteOCi+OBnyzjgb/jgo/jgZMNCivjgbXjgZXjga4s44GR44GE44GTDQor44G144GX44G/LOOCiOOBl+OBi+OBpA0KK+OBhOOBn+OBqSzjgb7jgZXjgYLjgY0NCivjgYTjgaAs44Gq44GK44GNDQor44GE44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBhOOBhOOBoCzjgY3jgojjga7jgbYNCivjgYTjgarjgoTjgb4s44KI44GX44KG44GNDQor44GE44GuLOOBk+OBng0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgYoNCivjgYTjgZfjgaAs44GT44GG44GE44GhDQor44GE44GX44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBhOOBl+OCjyzjgZ/jgYvjgbLjgo0NCivjgYTjgZfjgo/jgZ/jgoos44Gy44KN44GNDQor44GE44Gf44GP44KJLOOBquOCi+OBpOOBkA0KK+OBhOOBqOOBhizjgZ/jgY/jgoQNCivjgYTjgajjgYYs44Go44KC44Gy44GnDQor44GE44KP44GELOOChuOBhuOBmA0KK+OBhOOBluOCjyzjgYLjgaTjgZMNCivjgZjjgbYs44Gy44Gn44GNDQor44GL44Gw44KE44G+LOOBquOCi+OBjQ0KK+OBi+OBhCzjgZHjgpMNCivjgYvjgY3jgazjgb4s44GK44GV44KADQor44GL44GN44GW44GNLOOBsuOBqOOBlw0KK+OBi+OBj+OBoCzjgb7jgZXjgbLjgo0NCivjgYvjgarjgYzjgo8s44GR44GEDQor44GL44KT44G5LOOBn+OBi+OBsuOCjQ0KK+OBi+OCk+OBoCzjgbLjgo3jgYvjgZoNCivjgYvjgZXjgaAs44GY44KF44Gr44GhDQor44GL44KP44GELOOCgeOBkOOBvw0KK+OBleOBleOBjSzjgojjgZfjgaTjgZANCivjgYvjgo/jgZss44KE44GZ44KI44GXDQor44GN44KC44GoLOOBv+OBpOOCiw0KK+OBjeOBn+OBr+OCiSzjgbLjgo3jgYvjgaQNCivjgY3jgZ/jgoDjgoks44Gq44G744GTDQor44GT44Gw44KE44GXLOOBn+OBi+OBsuOCjQ0KK+OBk+OBtuOBkSzjgZfjgoXjgbLjgaENCivjgZPjgYTjgZrjgb8s44Gq44Gq44GTDQor44GT44G/44KE44G+LA0KK+OBk+OCk+OBruOBi+OBmuOBsuOCjSzjgZnjgZDjgosNCivjgZPjgZfjgYvjgo8s44G+44GV44GNDQor44GT44GuLOOChuOBhuOBkw0KK+OBj+OBvCzjgZjjgoXjgpMNCivjgY/jgbzjgYvjgo8s44G+44GV44GNDQor44GP44Gp44GGLOOBl+OCheOBmeOBkQ0KK+OBj+OCiuOBr+OCiSzjgZfjgpMNCivjgY/jgo3jgY4s44Gf44GR44GKDQor44G+44Gh44GgLOOChOOBmeOBsuOBqA0KK+OBvuOBmOOBvizjgb/jgaHjgZ/jgYsNCivjgYTjgZfjgZos44Go44KC44GTDQor44G+44GL44G5LOOBhOOBj+OBiA0KK+OBvuOCi+OChOOBvizjgZXjgbsNCivjgb7jgZnjgaAs44G/44GN44GtDQor44G+44Gk44GM44GV44GNLOOBruOBtuOBig0KK+OBvuOBpOOBhCzjgojjgZfjgYoNCivjgb7jgaTjgYQs44Gy44KN44GIDQor44G+44Gk44KC44GoLOOChuOBhuOBkw0KK+OBvuOCj+OBn+OCiizjgYvjgarjgZMNCivjgb/jgaHjgoLjgags44G+44KK44GTDQor44G/44GNLOOChOOBmeOBsuOBqA0KK+OBv+OBpOOBvizjgZ/jgYvjgobjgY0NCivjgb/jgYbjgoks44GT44GG44GE44GhDQor44G/44KPLOOBvuOBleOBruOBtg0KK+OBv+OChOOCguOBqCzjgarjgaTjgY0NCivjgb/jgoTjgoLjgags44Go44KC44GLDQor44G/44KE44KC44GoLOOBi+OBpOOBhOOBoQ0KK+OBv+OChOOBnyzjgZXjgYjjgZMNCivjgoDjgonjgYvjgb8s44Gv44KL44G/DQor44Gf44Gv44KJLOOChOOBmeOBkw0KK+OBv+OBmuOBn+OBqyzjga7jgorjgobjgY0NCivjgoLjgoos44Gy44KN44KIDQor44KC44KK44GQ44GhLOOBsuOBp+OBguOBjQ0KK+OCguOCiuOBi+OCjyzjgYvjgogNCivjgoLjgorjgoLjgags44GC44GN44KJDQor44KC44KK44GfLOOBn+OBkeOBlw0KK+OCgOOCieOBi+OBvyzjgZXjgYrjgooNCivjgYLjgafjgYzjgo8s44GR44KT44GYDQor44Gq44GM44GV44GLLOOBi+OCk+OBmA0KK+OBquOBjOOBnyzjgajjgZfjgbLjgo0NCivjgarjgYzjgZ8s44GZ44G/44GTDQor44GE44GW44KPLOOBn+OBi+OBruOCig0KK+OBquOBi+OBv+OBrSzjgZHjgYTjgZQNCivjgarjgYvjgoDjgoks44G+44GT44GoDQor44Gq44GL44KA44KJLOOBi+OBpOOBsuOBlQ0KK+OBhOOCguOBqCzjgoTjgZnjga7jgbYNCivjgarjgYvjgoDjgoks44Gf44GR44Gu44G2DQor44Gq44GL44GKLOOBvuOBleOBlw0KK+OBquOBi+OChOOBvizjgajjgYrjgosNCivjgarjgYvjgZbjgo8s44Gu44KK44GTDQor44Gq44G/44GNLOOBqOOCguOBiw0KK+OBq+OBhOOBvyzjgobjgY0NCivjgavjgYTjgZzjgY0s44G+44GV44Gy44GTDQor44Gr44GX44GnLOOBsuOCjeOBlw0KK+OBq+OCjyzjgYvjgZrjgb8NCivjga7jgbks44KM44GE44GTDQor44GK44GfLOOBn+OBpOOBsuOBkw0KK+OBiuOBjOOCjyzjgYLjgYQNCivjgYrjgZDjgZks44Gy44GL44KLDQor44GK44KC44GoLOOBmOOCheOCig0KK+OBiuOBl+OBvizjgYvjgaTjga7jgbYNCivjgYrjgZ8s44GL44GK44KKDQor44GK44Gy44KDLOOBvuOCguOCiw0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jga7jgooNCivjgYrjgYvjgaAs44Gf44Gk44KEDQor44GK44GPLOOBk+OBhuOBhOOBoeOCjQ0KK+OBiuOBj+OBoCzjgZ/jgZHjgZcNCivjgYrjgZfjgY/jgbws44KG44GG44GYDQor44GK44Gc44GNLOOBhuOBl+OCkw0KK+OCieOBhCzjgY3jgojjgZcNCivjgYTjgajjgYYs44Gv44KL44KI44GXDQor44GV44GE44GNLOOBguOBjeOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYvjgYrjgooNCivjgojjgZfjgaAs44Gy44Gn44GC44GNDQor44GV44GTLOOBsuOBp+OBjQ0KK+OBleOBleOBmOOBvizjgb/jgZUNCivjgZXjgZXjgY0s44GX44GS44GC44GNDQor44GV44Go44GGLOOBvuOBleOCiOOBlw0KK+OBhOOCj+OCguOBqCzjgobjgZnjgZENCivjgZXjgajjgYYs44GX44KH44GYDQor44GV44KP44GgLOOBn+OBi+OBruOCig0KK+OBm+OBjeOBi+OCjyzjgZHjgpPjgYTjgaENCivjgZvjgY3jga0s44Gy44G/44GTDQor44GX44Gw44GfLOOCiA0KK+OBl+OBkuOBr+OCiSzjgZ/jgZHjgZcNCivjgZfjgb7jgYrjgYss44G144G/44KG44GNDQor44GX44G/44GaLOOBvuOBleOBjQ0KK+OBl+OCguOBmOOChyzjgZHjgpPjgYTjgaENCivjgZfjgoLjgoDjgoks44GL44Gk44Gy44GTDQor44GX44KA44KJLOOChuOBhuOBmA0KK+OBneOCgeOChCzjgajjgoLjgoQNCivjgZnjgYjjgojjgZcs44Gy44KN44GXDQor44GZ44Ga44GNLOOBn+OBpOOChA0KK+OBmeOBmuOBjSzjgb/jgaHjgoTjgZkNCivjgZ/jgYvjgaAs44GX44GS44G/44GkDQor44Gf44GL44Gv44GXLOOBmOOCheOCk+OChA0KK+OBn+OBi+OBmyzjgobjgY3jgZMNCivjgZ/jgZHjgaAs44Gk44GQ44Gy44GnDQor44Gf44GR44GELOOBi+OBmuOBsuOBkw0KK+OBn+OBkeOCguOBqCzjgaHjgYjjgZMNCivjgZ/jgb7jgYQs44Gy44Gn44KE44GZDQor44Gf44KA44KJLOOBhOOBmuOBvw0KK+OBn+OCgOOCiSzjgb/jgaTjgYoNCivjgYTjgZfjgYvjgo8s44Gq44GK44GNDQor44Gf44Gq44GLLOOBl+OCk+OChA0KK+OBn+OBquOBiyzjgYLjgY3jgbLjgZMNCivjgZ/jgavjgZDjgaEs44GL44Ga44Gy44KNDQor44Gf44Gr44GQ44GhLOOBvuOBleOBguOBjQ0KK+OBn+OBq+OBkOOBoSzjgZ/jgYvjgZcNCivjgZ/jgavjgZDjgaEs44Gf44GL44Gy44GVDQor44GE44GX44GgLOOBguOBjeOBsuOBkw0KK+OBn+OBq+OBl+OBnyzjgZHjgpPjgYTjgaENCivjgabjgonjgavjgZcs44Gy44Gn44KG44GNDQor44Go44Gy44KD44G+LOOBquOBiuOBjQ0KK+OBqOOBv+OBnyzjgYTjgaHjgo3jgYYNCivjgajjga3jgYzjgo8s44GY44KHDQor44Go44KI44GgLOOBvuOBquOBtg0KK+OBqOOCiOOBnyzjgYLjgY3jgokNCivjgaTjgaHjgoQs44Gy44GV44KI44GXDQor44GE44GX44GL44KPLOOBr+OBmOOCgQ0KK+OBpOOCgOOCiSzjgajjgZfjgbLjgZMNCivjgaTjga7jgYvjgo8s44Gf44GL44KG44GNDQor44GG44Gh44GgLOOBleOBqOOCiw0KK+OBhuOBleOBvyzjgbLjgajjgZcNCivjgo/jgZjjgb4s44GT44GG44GE44Gh44KNDQor44KP44Gf44Gq44G5LOOBvuOBleOBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgZ/jgZHjga7jgooNCivjgo/jgZ/jgarjgbks44Gy44KN44Gf44GLDQor44KE44GOLOOBkeOCk+OBmA0KK+OChOOBjizjgZHjgpMNCivjgoTjgY/jgo8s44GC44Gk44GXDQor44KE44G+44GgLOOBteOBv+OBrg0KK+OChOOBvuOBoCzjgaTjgojjgZcNCivjgoTjgb7jgZDjgaEs44GN44KH44GTDQor44KE44G+44Gu44GP44GhLOOBv+OCjw0KK+OChOOBvuOBl+OBnyzjgZ/jgY8NCivjgoTjgb7jgZfjgZ8s44Gu44KK44GTDQor44KE44G+44GW44GNLOOBl+OCheOBmA0KK+OChOOBvuOBluOBjSzjgojjgZfjgZMNCivjgoTjgarjgYzjgo8s44Gq44GK44GNDQor44KE44GZ44GgLOOBqOOBl+OBguOBjQ0KK+OChOOBmeOBiCzjgojjgZfjgb8NCivjgYTjgZ3jgYzjgYQs44Gy44Go44GXDQor44KE44Gf44GM44GELOOBn+OBkeOBlw0KK+OCiOOBl+OBoCzjgorjgZMNCivjgZ/jgYvjga/jgZcs44G+44GNDQor44GK44GL44GgLOOCiOOBsuOBoQ0KK+OBguOBiuOBjSzjgoTjgojjgYQNCivjgYLjgY3jgbAs44GR44GE44GE44GhDQor44GC44G5LOOBjeOCh+OBkw0KK+OBguOBvuOBrizjgbLjgo3jgbXjgb8NCivjgYLjgorjgoLjgags44Gy44KN44GNDQor44GC44KT44Gp44GGLOOBn+OBi+OChuOBjQ0KK+OBhOOBi+OCjyzjgajjgZfjgobjgY0NCivjgYTjgZfjgYQs44G+44GV44GTDQor44GE44GX44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBmuOBiyzjgarjgYrjgobjgY0NCivjgYTjgZfjgbDjgZcs44Gy44Gn44KG44GNDQor44GE44GX44KC44GoLOOChuOBn+OBiw0KK+OBhOOBpyzjgZ/jgaTjgo0NCivjgYTjgaHjga7jgZss44Go44KI44GC44GNDQor44GE44Gq44GgLOOBqOOCguOChuOBjQ0KK+OBhOOBrOOBhCzjgZ/jgaDjga7jgbYNCivjgYTjga7jgYbjgYgs44GI44KKDQor44GE44KE44G+LOOCiuOCh+OBkw0KK+OBhOOCj+OBleOBjSzjgb7jgZXjgY0NCivjgYTjgo/jgb4s44GX44KF44Gy44GhDQor44GE44KP44G+44GkLOOBvuOBleOCiw0KK+OBhuOBiOOBoCzjgYLjgY3jgZMNCivjgYbjgYjjga4s44GC44GN44GTDQor44GG44Gh44GgLOOBvuOBleOBig0KK+OBhuOBqSzjgZfjgoXjgZgNCivjgYbjgoHjga/jgoks44KG44GNDQor44GI44GQ44GhLOOBn+OBhOOBuOOBhA0KK+OBiOOBruOBjSzjga7jgorjgbLjgo0NCivjgYjjgoLjgags44Gq44GK44GTDQor44GI44KC44KKLOOChuOBvw0KK+OBquOBi+OBjOOCjyzjgZfjgoXjgpPjgZnjgZENCivjgYrjgZ8s44KK44KH44GZ44GRDQor44GK44GM44GfLOOBleOBqOOBkw0KK+OBiuOBjOOCjyzjgZXjgajjgZcNCivjgYrjgYzjgo8s44G+44Gq44G2DQor44GK44GP44GELOOChOOBmeOCiA0KK+OBiuOBj+OCgOOCiSzjgb7jgb/jgZMNCivjgYrjgZ/jgass44GT44GG44GYDQor44GK44Gk44Go44KCLOOBv+OBmuOBvuOBlQ0KK+OBiuOBq+OBluOCjyzjgYvjgZrjgZMNCivjgYrjga4s44GK44GV44Gq44GKDQor44GK44Gw44GqLOOBsuOCjeOBkw0KK+OBiuOBvuOBjOOCiizjgbLjgo3jgY0NCivjgYvjgY3jgZbjgo8s44Gf44GL44GKDQor44GL44GR44GyLOOBkeOCk+OBmA0KK+OBi+OBleOBr+OCiSzjgZ/jgYvjgZcNCivjgYvjgZgs44Go44G/44GV44G2DQor44GL44GY44GfLOOCiOOBl+OBkw0KK+OBi+OBmOOBnyzjgb/jgaTjgoLjgagNCivjgYvjgZjjgoTjgb4s44Gb44GE44KEDQor44GL44Go44GGLOOBquOBiuOBguOBjQ0KK+OBi+OBquOBoCzjgbLjgafjgobjgY0NCivjgYvjga3jgZMs44KE44GZ44GXDQor44GL44Gt44GTLOOBruOBtuOBn+OBiw0KK+OBhOOBn+OBrizjgozjgYTjgZMNCivjgarjgYzjgaTjgb4s44Gf44GP44GYDQor44GL44GuLOOCguOBqOOBkw0KK+OBi+OBvuOBiCzjgabjgovjgYLjgY0NCivjgYvjgo/jgYQs44KG44GN44GTDQor44GL44KP44G+44GfLOOBl+OBkuOBjQ0KK+OBi+OCk+OBrizjga7jgorjgYLjgY0NCivjgY3jgYbjgaEs44Gb44GE44GE44Gh44KN44GG44GGDQor44GN44GXLOOBvuOBleOChA0KK+OBjeOBn+OBjOOCjyzjgabjgaTjgbLjgo0NCivjgY3jga7jgZfjgZ8s44GI44KK44GTDQor44GN44KH44GM44GPLOOBvuOBqeOBiw0KK+OBj+OBvCzjgYrjgZXjgoANCivjgY/jgbzjgZ8s44Gf44GL44GKDQor44GP44G844GfLOOBn+OBi+OBig0KK+OBj+OCiuOBr+OCiSzjgb/jga7jgosNCivjgY/jgorjgoTjgb4s44KI44GX44Gu44G2DQor44GE44GX44GM44GNLOOBkeOBhA0KK+OBj+OCjeOBhCzjga7jgbbjgYvjgaQNCivjgZPjgYbjgZXjgY0s44KK44KH44GfDQor44GT44GgLOOBkeOCk+OBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgbjjgYQNCivjgZPjgbDjgoTjgZcs44Gb44GE44GYDQor44GT44Gw44KE44GXLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgabjgaTjgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44GNDQor44GV44GE44G7LOOBvuOBhOOBkw0KK+OBleOBi+OBjOOCjyzjgYTjgZrjgb8NCivjgYvjgo/jgoDjgoks44KI44GG44GTDQor44GV44GV44GK44GLLOOBqOOCguOBruOBtg0KK+OBleOBleOBjSzjgarjgorjgajjgZcNCivjgZXjgajjgYYs44G+44GT44GoDQor44GV44Go44GGLOOBqOOCguOBruOCig0KK+OBleOBquOBoCzjgZ/jgY/jgoQNCivjgZXjgovjgoTjgb4s44GX44KT44G644GEDQor44GX44GK44GkLOOCiuOBiA0KK+OBl+OBiuOBruOChCzjgZHjgYTjgZMNCivjgZfjgYrjgoTjgb4s44Go44GX44G144GVDQor44GX44GO44Gv44KJLOOBhOOBpOOCjQ0KK+OBl+OBl+OBqSzjgZPjgYbjgYTjgaENCivjgZfjga7jgZbjgY0s44GC44Gk44GXDQor44GX44Gw44GfLOOBruOBtuOBguOBjQ0KK+OBl+OBv+OBmizjgabjgaTjgoQNCivjgZfjgofjga4s44KG44GZ44GRDQor44GX44KJ44GNLOOBk+OBhuOBmA0KK+OBmeOBjuOBiuOBiyzjga7jgbbjgYLjgY0NCivjgZnjgY7jga/jgoks44Gq44KL44Gy44KNDQor44GZ44Ga44GNLOOCiOOBhuOBuOOBhA0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgZnjgb/jgoTjgb4s44KI44GG44GTDQor44Gb44Gj44GfLOOBruOBvOOCiw0KK+OBhOOBl+OCj+OBnyzjga7jgorjgYvjgZoNCivjgZvjgpPjgZTjgY8s44G+44Gq44G2DQor44Gf44GL44GK44GLLOOBiuOBleOCgA0KK+OBn+OBi+OBluOCjyzjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44GI44GE44GZ44GRDQor44Gf44GL44KA44KJLOOBl+OBruOBtg0KK+OBn+OBjeOBqCzjga7jgbzjgosNCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBj+OBq+OBig0KK+OBhOOBqOOBhizjgYvjgZrjgbLjgagNCivjgZ/jgarjgbks44G/44Gu44KLDQor44Gf44Gr44GQ44GhLA0KK+OBoeOCg+OCj+OCk+OChOOBn+OBkeOBlyzjgZfjgpPjgYTjgaENCivjgabjgonjgZXjgYss44Gy44KN44KG44GNDQor44Go44GT44KNLOOBv+OBpOOBi+OBmg0KK+OBquOBi+OBhCzjgY3jgojjgZfjgZINCivjgarjgYvjgYos44Gy44GV44Gm44KLDQor44Gq44GM44GK44GLLOOBl+OBkuOChuOBjQ0KK+OBquOBi+OBjOOCjyzjgZvjgYTjgZgNCivjgarjgYvjgZjjgb4s44G+44GV44GNDQor44Gq44GM44GbLOOBoOOBhOOBmOOChQ0KK+OBquOBi+OBrizjgb/jga7jgosNCivjgarjgYvjga4s44KG44G/DQor44Gq44GM44GuLOOBn+OBi+OBl+OBkg0KK+OBhOOBkeOBoCzjgYLjgoTjgZMNCivjgarjgYvjgoDjgoks44Gf44GL44KG44GNDQor44Gq44GL44KE44G+LOOBsuOBp+OBjQ0KK+OBq+OBiizjgYvjgZoNCivjgavjgZfjgYos44GC44GN44GTDQor44Gr44GX44GL44GELOOBmOOCheOCk+OBmA0KK+OBq+OBl+OBluOBiyzjgZHjgpPjgZgNCivjgavjgZfjgaAs44G+44Gq44G2DQor44Gr44GX44GgLOOCiOOBl+OBr+OCiw0KK+OBhOOBhOOBmOOBvizjgbLjgo3jgY0NCivjgavjgZfjga/jgoks44GY44KF44Gr44GhDQor44Gr44GX44KA44KJLOOBn+OBi+OBlw0KK+OBreOCjeOCgSzjgZfjgpPjgZgNCivjga7jgZjjgb4s44G/44G7DQor44Gu44Gq44GLLOOCguOBqOOBguOBjQ0KK+OBr+OBl+OBsCzjgZnjgbLjgaENCivjga/jgaHjgoQs44Gf44Gk44KEDQor44Gv44Gj44Go44KKLOOBm+OBhOOBnw0KK+OBhOOBhOOBoCzjgZjjgofjgZgNCivjga/jgbYs44KG44GG44GTDQor44Gv44KE44GL44KPLOOBguOBjeOBkw0KK+OBr+OChOOBlyzjgb7jgorjgZMNCivjga/jgoTjgZfjgb4s44GL44Gk44Go44GXDQor44Gv44KJLOOBmOOCheOBq+OBoQ0KK+OBsuOBjOOBl+OBoCzjga7jgorjgZMNCivjgZvjgY3jgZDjgaEs44Go44GX44G/44GkDQor44Gy44KJ44GELOOCiOOBl+OBkw0KK+OBsuOCjeOBmeOBiCzjgaDjgYTjgZnjgZENCivjgbLjgo3jga/jgZ8s44Gf44GL44GXDQor44G144GP44GX44G+LOOBvuOBleOBjQ0KK+OBteOBmOOBiizjgYvjgZrjgobjgY0NCivjgbXjgZjjgZ8s44GL44Ga44KEDQor44G144GY44G+44GNLOOBsuOCjeOBlw0KK+OBteOBmOOCj+OCiSzjgZXjga3jgbLjgo0NCivjgbXjgovjgYTjgaEs44Gg44GE44GZ44GRDQor44G744GV44GLLOOBruOCiuOBi+OBmg0KK+OBu+OBl+OBrizjgZ/jgYvjgbLjgo0NCivjgbvjgoos44GTDQor44G744KK44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBu+OCk+OBvizjgb7jgZPjgagNCivjgb7jgYjjgYvjgo8s44Gm44Gk44KNDQor44G+44GI44GgLOOBquOBiuOBkw0KK+OBvuOBiOOBoCzjgbLjgafjgZcNCivjgb7jgYjjgaAs44Gf44GP44G/DQor44G+44GV44GELOOBvuOBleOCiw0KK+OBvuOBpOOBhCzjgY3jgofjgbLjgaENCivjgb7jgaTjgZbjgo8s44GL44GK44KKDQor44G+44Gk44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBqOOCgizjgZ/jgY/jgoQNCivjgb7jgaTjgarjgYws44G/44Gk44GKDQor44G+44Gk44KC44GoLOOBpuOCk+OBuuOBhA0KK+OBv+OBmuOBkOOBoSzjgobjgYbjgYTjgaHjgo3jgYYNCivjgb/jgoTjgoLjgags44KG44GN44Gy44GTDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OCgOOCieOBi+OBvyzjgobjgZnjgZENCivjgoDjgonjgYvjgb8s44Gf44GR44GXDQor44KA44KJ44Gq44GLLOOBk+OBhuOBmA0KK+OCguOBoeOBmuOBjSzjgobjgY3jgZMNCivjgoLjgajjgY/jgoks44KG44GG44GYDQor44KC44KKLOOChuOBjeOBruOBtg0KK+OCguOCiuOChCzjgZ/jgZHjga/jgosNCivjgoTjgZnjgYQs44Gf44GL44Gy44GoDQor44KE44GZ44GgLOOBv+OBjeOBig0KK+OChOOBmeOBoCzjgZ/jgaTjgoQNCivjgoTjgZ8s44GP44G/DQor44KE44Gf44GNLOOBsuOBp+OBruOBtg0KK+OChOOBoSzjgaHjgYvjgokNCivjgoTjga4s44Gf44GL44KG44GNDQor44KE44G+44GE44Ga44G/LOOBvuOBleOBquOBig0KK+OChOOBvuOBiuOBiyzjgZHjgpPjgZgNCivjgoTjgb7jgZDjgaEs44KI44GZ44GRDQor44KE44G+44GQ44GhLOOBqOOCguOBn+OBiw0KK+OChOOBvuOBluOBjSzjgb7jgobjgb8NCivjgoTjgb7jgZbjgY0s44KE44GZ44GYDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOBpw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgo0NCivjgojjgZPjgZzjgY0s44GV44Go44GXDQor44KI44GX44GgLOOBn+OBj+OChA0KK+OCiOOBl+OBrizjgajjgoLjgZMNCivjgojjgZfjgb8s44GP44Gr44GL44GaDQor44KI44GgLOOBu+OBvuOCjA0KK+OCiOOBoCzjgZ/jgYTjgZLjgpMNCivjgoks44G/44GN44GTDQor44KN44GYLOOBjeOCiOOBsuOBqA0KK+OCj+OBoCzjgYvjgZrjgbLjgo0NCivjgo/jgZ/jgarjgbks44Gu44G244GKDQor44KP44Gf44Gq44G5LOOBteOBv+OBsuOBkw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgbks44KI44GX44GC44GNDQor44GL44GuLOOBvuOBleOBjQ0KK+OBq+OBo+OBnyzjgoTjgZnjgbLjgo0NCivjgYLjgYrjgY0s44KI44GX44Gu44KKDQor44GC44GK44GNLOOBguOBjeOBig0KK+OBguOBiuOChOOBvizjgarjgaoNCivjgYLjgYrjgoTjgb4s44G+44GE44GTDQor44GC44GN44GwLOOBkeOCkw0KK+OBguOBleOBoCzjgZ/jgYTjgaENCivjgYLjgaDjgaEs44Gq44GK44GoDQor44GC44Gg44GhLOOChOOBmeOBig0KK+OBguOBqOOBuSzjgZ/jgYvjgZcNCivjgYLjgbks44Gf44GL44Gy44KNDQor44GC44G5LOOBsuOCjeOBguOBjQ0KK+OBguOBuSzjgajjgoLjgY0NCivjgYLjgb7jga4s44G144G/44GC44GNDQor44GC44G+44GuLOOBvuOBvw0KK+OBguOCieOBi+OCjyzjgobjgY3jgYoNCivjgYLjgorjgZ8s44Gy44Gn44GNDQor44GC44KK44Go44KCLOOBi+OBmuOBig0KK+OBguOCk+OBluOBhCzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44Gf44GL44Go44GXDQor44GC44KT44Gp44GGLOOBiuOBleOCgA0KK+OBhOOBjOOCieOBlyzjgZfjgoXjgYYNCivjgYTjgZHjgaAs44Gv44Gq44GTDQor44Gf44GL44Gv44GXLOOBvuOBleOBguOBjQ0KK+OBhOOBl+OBsOOBlyzjgazjgYQNCivjgYTjgZfjgoDjgoks44GR44GE44GE44GhDQor44GE44GX44KC44GoLOOBvuOCiuOBkw0KK+OBhOOBoeOBhCzjgajjgoLjgb8NCivjgYTjgaHjgYvjgo8s44KG44GG44GTDQor44GE44Gh44GL44KPLOOBr+OCi+OBqA0KK+OBhOOBoeOBruOBmyzjgYvjgaTjgbLjgZMNCivjgYTjgajjgYYs44Gu44G244GKDQor44GE44Go44GGLOOBvuOChuOBvw0KK+OBhOOBqOOBhizjgb7jgY0NCivjgYTjgarjgYrjgYss44GY44KF44Gr44Gh44KNDQor44GE44Gq44GwLOOCiuOCh+OBhuOBmeOBkQ0KK+OBhOOBrOOBmuOBiyzjgojjgYbjgbjjgYQNCivjgYTjga7jgYbjgYgs44Gy44KN44GXDQor44GE44Gu44GL44KPLOOBsuOBp+OBguOBjQ0KK+OBhOOBvuOBhCzjgojjgZgNCivjgYTjgb7jgZfjgoXjgY8s44KK44GI44GTDQor44GE44KP44GELOOBv+OBiuOBkw0KK+OBhOOCj+OBl+OBvizjgYTjgZrjgb8NCivjgYbjgYjjgZ7jga4s44GC44Gk44GKDQor44GG44GI44GgLOOBn+OBoOOBlw0KK+OBhuOBiOOBr+OCiSzjgobjgb/jgZMNCivjgYbjgYjjga/jgoks44G+44KK44GTDQor44GL44GN44GfLOOBkeOBhOOBkw0KK+OBhuOBleOBvyzjgbLjgo3jgagNCivjgYbjgaHjgaAs44G+44GN44GTDQor44GG44Gh44GgLOOBjeOCiOOBlw0KK+OBhuOBoeOBvOOCiizjgYLjgY3jgbLjgo0NCivjgYbjgoHjgYzjgYQs44G+44GV44KLDQor44GG44KB44GkLOOCiuOBlQ0KK+OBhuOCgeOBrizjgb7jgZXjgbXjgb8NCivjgYbjgonjgYvjgo8s44Gy44KN44Gf44GRDQor44GG44KJ44G5LOOBvuOChuOBvw0KK+OBiOOBkOOBoSzjgbLjgafjgYrjgb8NCivjgYjjgZrjgb8s44GX44KF44KT44GZ44GRDQor44GI44Gu44KC44GoLOOBn+OBkeOBlw0KK+OBhOOBvuOBq+OBlyzjgorjgocNCivjgYjjga7jgoLjgags44Go44KC44Gy44GTDQor44GI44KT44GpLOOBl+OCheOBhOOBoQ0KK+OBiuOBhOOBi+OCjyzjgoHjgZDjgb8NCivjgYrjgYTjgYvjgo8s44Gf44GL44Gy44KNDQor44GK44GyLOOBn+OBi+OChuOBjQ0KK+OBiuOBsuOBlyzjgoLjgajjgZMNCivjgYrjgZ8s44GR44KTDQor44GK44Gk44GLLOOBsuOBmOOCig0KK+OBiuOBq+OBlyzjgbLjgo3jgY0NCivjgYrjgavjgZcs44GC44KE44GTDQor44GK44GL44GgLOOBv+OBleOBqA0KK+OBiuOBi+OBoCzjgYvjgZrjgYgNCivjgYrjgYvjga4s44GC44GN44Gy44GTDQor44GK44GL44G5LOOBn+OBkeOBlw0KK+OBiuOBi+OBuSzjgobjgY0NCivjgYrjgYvjgoDjgoks44GX44GS44Gy44GVDQor44GK44GL44KC44GoLOOBn+OBoOOBlw0KK+OBiuOBi+OCguOBqCzjgYTjgY/jgogNCivjgYrjgYzjgo8s44Gf44KN44GGDQor44GK44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBiuOBj+OBoCzjgbXjgb/jgZMNCivjgYrjgY/jgaAs44KI44GX44GNDQor44GK44GW44GNLOOBvuOBleOBjQ0KK+OBiuOBrizjgobjgY3jgbXjgb8NCivjgYrjgoTjgb4s44KI44GYDQor44GL44GE44Ga44GLLOOBvuOBleOBr+OCiw0KK+OBi+OBjOOBvyzjgbXjgb/jgYvjgZoNCivjgYvjgY3jgZ8s44GX44KT44GZ44GRDQor44GL44GPLOOBi+OBpOOBguOBjQ0KK+OBi+OBleOBhCzjgb/jgaHjgYgNCivjgYvjgZjjgYQs44KE44GZ44GKDQor44GL44GY44GfLOOBvuOBleOCiw0KK+OBi+OBn+OBiCzjgobjgY0NCivjgYvjgZ/jgoTjgb4s44KI44GX44Gy44KNDQor44GL44GkLOOBsuOBp+OBguOBjQ0KK+OBi+OBqOOBhizjgorjgofjgYYNCivjgYvjgajjgYYs44G/44GNDQor44GL44G/44GY44KHLOOBv+OChuOBjQ0KK+OBi+OBreOBkyzjgZ/jgYjjgZMNCivjgYvjgb7jgaAs44Go44GK44KLDQor44GL44G/44GY44KHLOOBkeOCkw0KK+OBi+OBv+OBsuOBlSzjgabjgaTjgoQNCivjgYvjgb/jgoLjgags44G+44G/44GTDQor44GL44G/44KELOOBquOBiuOBkw0KK+OBi+OBv+OChOOBvizjgZ/jgYvjgZcNCivjgYvjgo/jgYvjgb8s44Go44GX44G144G/DQor44GL44KP44GV44GNLOOBiOOCiuOBiw0KK+OBi+OCj+OBmyzjgYvjgYrjgosNCivjgYvjgo/jga/jgZ8s44GT44GG44GYDQor44GL44KP44Gv44KJLOOChuOBjeOBruOCig0KK+OBi+OCj+OCgOOCiSzjgYLjgYvjga0NCivjgYvjgo/jgoLjgags44Gq44GK44KEDQor44GL44KP44KC44GoLOOChuOBhuOBmOOCkw0KK+OBi+OCj+OCguOBqCzjgb/jgaTjgZMNCivjgYvjgpPjgaAs44Go44GK44KLDQor44GN44GP44GhLOOBn+OBjw0KK+OBjeOBn+OBjOOCjyzjgaDjgYTjgZnjgZENCivjgY3jgZ/jgarjgYws44GC44Gk44GTDQor44GN44Gf44GuLOOBj+OBq+OBsuOBqA0KK+OBjeOBn+OCgOOCiSzjgYvjgZrjgbLjgo0NCivjgY3jgZ/jgoLjgags44KI44GX44Gm44KLDQor44GN44Gu44GILOOChuOBhuOBmA0KK+OBjeOBtuOBmyzjgYvjgYrjgooNCivjgY3jgoDjgoks44GL44Ga44GKDQor44GN44KA44KJLOOBvuOBjQ0KK+OBjeOCguOBqCzjgb7jgZnjgb8NCivjgY3jgoLjgags44Gy44Go44GXDQor44GO44KH44GG44G2LOOBsuOCjeOBi+OBmg0KK+OBj+OBqyzjgZ/jgZHjgaHjgYsNCivjgY/jgavjgb7jgZUs44GY44KF44KT44GTDQor44GP44G+44GV44GLLOOBi+OBmuOBsuOCjQ0KK+OBj+OCieOBl+OBkizjgZHjgYTjgZnjgZENCivjgY/jgorjgZ8s44Gy44KN44GXDQor44GP44KK44Gv44KJLOOBv+OBoeOBig0KK+OBk+OBhOOBkSzjgZ/jgZHjgZcNCivjgZPjgYTjgZHjgaAs44GI44KKDQor44GT44GE44Ga44G/LOOBvuOBleOBtuOBvw0KK+OBk+OBhOOBrOOBvizjgZXjgYvjgYgNCivjgZPjgaTjgYss44GX44KT44GUDQor44GT44GMLOOBn+OBpOOChA0KK+OBk+OBl+OCguOBqCzjgaTjgajjgoANCivjgZPjgaDjgb4s44Gy44KN44GXDQor44GT44Gg44G+LOOBn+OBi+OBiA0KK+OBlOOBqCzjgZjjgoXjgavjgaENCivjgZPjgavjgZcs44Go44KC44GNDQor44GT44Gw44KE44GXLOOBsuOBp+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgobjgooNCivjgZPjgbDjgoTjgZcs44Gy44KN44GTDQor44GT44Gw44KE44GXLOOBv+OBuw0KK+OBk+OBvuOBjSzjgb/jgYjjgZMNCivjgZPjgb7jgbAs44Gf44GE44Gb44GkDQor44GT44G/44KELOOBguOBjeOBig0KK+OBk+OChOOBvizjgZPjgbLjgoMNCivjgZPjgoTjgb4s44Gf44GR44GXDQor44GV44GE44GNLOOCgeOBkOOBvw0KK+OBleOBhOOBlCzjgZ/jgaTjgo0NCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44GV44GE44Go44GGLOOBv+OBoeOBkw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgYLjgY0NCivjgYTjgYzjgonjgZcs44GX44GS44GNDQor44GV44GI44GQ44GVLOOBsuOCjeOBv+OBpA0KK+OBleOBi+OBhCzjgZ/jgYTjgaHjgo3jgYbjgYYNCivjgZXjgYvjgYzjgb8s44G+44GV44GL44GaDQor44GV44GL44GtLOOBguOCiuOCiOOBlw0KK+OBleOBi+OCguOBqCzjgajjgoLjgZMNCivjgZXjgYvjgoLjgags44KI44GX44GYDQor44GV44GP44KJ44GELOOBvuOBleOBjQ0KK+OBleOBj+OCieOBoCzjgoTjgZnjgZ/jgYsNCivjgZXjgZPjgpMs44Gy44Gn44Gy44GoDQor44GV44GV44GNLOOBn+OBpOOChA0KK+OBleOBleOBr+OCiSzjgYvjgZrjga7jgooNCivjgZXjgajjgYYs44GL44Gk44Gy44GTDQor44GV44Go44GGLOOBvuOBleOBruOCig0KK+OBleOBqOOBhizjgoTjgZnjga7jgooNCivjgZXjgajjgYYs44Go44KC44Gy44GVDQor44GV44GuLOOBv+OCj+OBkw0KK+OBleOCjyzjgZHjgpPjgZgNCivjgZfjgbbjgoQs44Gm44Gk44GKDQor44GX44G244KELOOBhOOBleOCgA0KK+OBl+OBvuOBoCzjgZfjgofjgYbjgZQNCivjgZfjgb7jgaAs44Gq44G/DQor44GX44G+44GgLOOBguOBjeOCiQ0KK+OBl+OBv+OBmizjgYTjgaHjgo3jgYYNCivjgZfjgb/jgZos44Gg44GE44GNDQor44GX44G/44GaLOOBqOOCguOBruOCig0KK+OBl+OBv+OBmizjgb7jgZPjgagNCivjgZfjgb/jgZos44Gy44KN44G/DQor44GE44Gu44GG44GILOOCiuOCh+OBhuOBmA0KK+OBl+OCgizjgb7jgZXjgbLjgo0NCivjgZfjgofjgaAs44Gq44Gq44GIDQor44GY44KT44GuLOOCj+OBi+OBkw0KK+OBmOOCk+OBrizjgZLjgpMNCivjgZfjgpPjgb7jgaEs44GY44KF44Gr44GhDQor44GZ44GO44GELOOBkeOCk+OBlA0KK+OBmeOBjuOBiuOBiyzjgarjgYrjgagNCivjgZnjgY7jgoLjgags44Gy44Gn44GC44GNDQor44GZ44Ga44GNLOOBkeOCk+OBlA0KK+OBmeOBmuOBjSzjgZ/jgaDjgZcNCivjgZnjgZrjgY0s44Gy44Gn44GKDQor44GZ44Ga44GNLOOBvuOBquOBiA0KK+OBmeOBmuOBjSzjgbLjgafjgZ/jgZENCivjgZvjgYos44KE44KI44GEDQor44Gb44GNLOOChuOBjeOBig0KK+OBhOOBl+OBr+OBvizjgaDjgYTjgZnjgZENCivjgZ3jga7jgaAs44Gy44Gn44GNDQor44Gf44GELOOBguOBjeOBrg0KK+OBn+OBi+OBhOOCjyzjgarjgYrjgobjgY0NCivjgZ/jgYvjgY4s44GR44GE44GZ44GRDQor44Gf44GL44Gv44GXLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjga7jgooNCivjgZ/jgYvjga/jgZcs44G+44GT44GoDQor44Gf44GL44Gv44GXLOOCiuOCheOBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgZcNCivjgZ/jgYvjgoDjgY8s44G+44GV44Gq44GKDQor44Gf44GQ44GhLOOBn+OBi+OBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgb/jgaHjga7jgooNCivjgZ/jgZHjgYvjgo8s44GL44Ga44Gy44KJDQor44Gf44GR44KPLOOBoOOBhOOBmeOBkQ0KK+OBn+OBoOOBvuOBpCzjgYvjgZrjgbLjgo0NCivjgZ/jgZ/jgoks44Gy44KN44GX44GSDQor44Gf44Gq44GLLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBq+OCguOBqCzjga7jgorjgZMNCivjgZ/jga3jgoDjgoks44Gd44GGDQor44Gf44Gv44KJLOOBkeOCk+OBqA0KK+OBn+OCgOOCiSzjgZPjgYbjgZ/jgo3jgYYNCivjgaDjgpMs44KI44GX44GC44GNDQor44GE44GE44GgLOOBjeOCiOOBlw0KK+OBoeOBsCzjgobjgYbjgZgNCivjgaHjgofjgajjgY8s44G+44GN44GTDQor44Gk44GL44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBpOOBpOOBvyzjgb7jgY3jgZMNCivjgaTjgoLjgoos44Gf44GR44GXDQor44Gm44KJ44GX44GfLOOBguOBjeOBsuOBkw0KK+OBqeOBhCzjgZHjgpPjgZcNCivjganjgYQs44Gy44KN44GTDQor44Gp44GELOOCiOOBl+OBkw0KK+OBqOOBl+OBvizjgb7jgZXjgZcNCivjgarjgYTjgajjgYYs44GX44KT44GYDQor44Gq44GL44GELOOBsuOBp+OBjQ0KK+OBquOBi+OBhCzjgZPjgYbjgZgNCivjgarjgYvjgYos44Gf44GL44GXDQor44Gq44GL44GM44KPLOOChuOBhuOBmA0KK+OBquOBjOOBleOBjSzjgYLjgY3jgbXjgb8NCivjgarjgYvjgZjjgb4s44GV44Go44GXDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OBquOBi+OBl+OBvizjgZ/jgYvjgobjgY0NCivjgarjgYvjgaAs44KA44Gt44Gu44KKDQor44Gq44GL44Gv44KJLOOBiOOBhOOBmeOBkQ0KK+OBquOBi+OCgOOCiSzjgbLjgafjgobjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44KG44GNDQor44Gq44GL44KA44KJLOOBvuOBk+OBqA0KK+OBquOBi+OCgOOCiSzjgb7jgorjgZMNCivjgarjgYvjgoDjgoks44KG44GG44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgojjgZfjgYgNCivjgbvjgZfjga4s44KI44GG44GE44GhDQor44Gq44GL44KC44GoLOOBk+OBuOOBhA0KK+OBhOOBkeOBoCzjgZPjgYbjgZgNCivjgarjgYvjgoLjgoos44G+44GV44Gy44KNDQor44Gq44GM44KI44GXLOOBl+OCheOBuOOBhA0KK+OBquOBp+OBr+OCiSzjgY3jgbvjgZMNCivjgarjgarjgoLjgoos44Gh44GC44GNDQor44Gq44KJ44GV44GLLOOBi+OBiuOCig0KK+OBquOCk+OBsCzjgZ/jgYvjgbXjgb8NCivjgavjgZcs44Gu44Ge44KADQor44Gr44GX44GL44KPLOOBleOBquOBiA0KK+OBq+OBl+OBoCzjgY3jgojjgZMNCivjgavjgZfjgoDjgoks44G/44Gq44GTDQor44Gu44GQ44GhLOOBmOOCheOCk+OBnuOBhg0KK+OBruOBoCzjgZfjgoXjgYbjgZ/jgo3jgYYNCivjga7jgarjgb8s44KG44KKDQor44Gu44Gu44GE44Gh44KELOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBruOCgOOCiSzjgb/jgaTjgbLjgo0NCivjga7jgoLjgags44GL44Gk44Gy44GTDQor44Gv44GM44KELOOBsuOBp+OChA0KK+OBr+OBjuOCj+OCiSzjgajjgZfjga/jgosNCivjga/jgY8s44GC44GN44GTDQor44Gv44GXLOOBvuOBleOBn+OBiw0KK+OBr+OBl+OBmuOCgSzjgajjgYrjgosNCivjga/jgZfjgbAs44Gf44GL44G+44GVDQor44Gv44Gb44G5LOOBsuOCjeOBlw0KK+OBr+OBnyzjgaTjgajjgoANCivjga/jgZ/jgYgs44Gy44KN44GXDQor44Gv44Gf44GuLOOChuOBjQ0KK+OBr+OBoeOBrizjgaTjga3jgYLjgY0NCivjga/jgaPjgajjgoos44Gy44Gn44GC44GNDQor44Gv44KE44GXLOOBkeOCk+OBlw0KK+OBr+OChOOBl+OBoCzjgobjgY0NCivjga/jgoTjgbXjga0s44GV44Go44GXDQor44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBr+OCieOBoCzjgZnjgZDjgosNCivjga/jgonjgaAs44G+44GZ44GKDQor44GE44Gu44GQ44GhLOOBqOOCguOBsuOBkw0KK+OBr+OCieOBoCzjgobjgYbjgYTjgaENCivjgbLjgYzjgZfjgoTjgb4s44Gq44GK44KG44GNDQor44Gy44GQ44GhLOOChOOBmeOChuOBjQ0KK+OBsuOBlCzjgajjgoLjgbLjgagNCivjgbLjgaDjga4s44Gf44GL44GXDQor44Gy44G+44GNLOOChuOBhuOBkw0KK+OBj+OCieOBl+OBkizjgb7jgZPjgagNCivjgYTjgZfjga/jgoks44Gf44GL44G+44GVDQor44Gy44KJ44GfLOOBvuOBleOBv+OBoQ0KK+OBsuOCjeOBleOCjyzjgb/jgY3jgagNCivjgbLjgo3jgZ8s44GC44GN44KI44GXDQor44G144GL44GV44KPLOOBmeOBmeOCgA0KK+OBteOBi+OBluOCjyzjgobjgYYNCivjgbXjgYvjgZbjgo8s44KM44GE44GTDQor44G144GP44KA44KNLOOBguOBjeOCiQ0KK+OBteOBmOOBhCzjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44Gf44Gk44GYDQor44G144GY44GELOOBj+OBv+OBkw0KK+OBteOBmOOBquOBjCzjgb7jgZXjgZMNCivjgbXjgZjjgarjgYws44GL44Gk44G144G/DQor44G144GY44KP44KJLOOBn+OBi+OChuOBjQ0KK+OBteOBmOOCj+OCiSzjgojjgYbjgZMNCivjgbXjgZjjgo/jgoks44Gy44Gn44GNDQor44G144Gf44Gk44GOLOOBsuOCjeOBlw0KK+OBteOBn+OBpOOCguOCiizjgajjgoLjgoQNCivjgbXjgovjga/jgZ8s44Go44KC44Gu44KKDQor44G144KL44KELOOBi+OBmuOChuOBjQ0KK+OBuOOCk+OBvyzjgozjgYTjgZMNCivjgbvjgZcs44GX44GS44GKDQor44G744GX44GuLOOChuOBjeOBkw0KK+OBu+OCiizjgZHjgYTjgZMNCivjgbvjgorjgYgs44G/44GN44GTDQor44G744KK44GK44GLLOOCiuOBiA0KK+OBu+OCiuOBi+OCjyzjgZ/jgYvjgZcNCivjgb7jgYjjgbXjga0s44G+44GV44Go44KCDQor44G+44GN44GuLOOBpuOBpOOChA0KK+OBvuOBmeOBoCzjgZHjgYTjgZMNCivjgb7jgaTjgYbjgoks44G/44GK44GTDQor44G+44Gk44GX44GfLOOBkeOBhOOBmA0KK+OBvuOBpOOCguOBqCzjgbXjgb/jgZMNCivjgYTjgZDjgaEs44Gu44KK44Gy44KNDQor44G+44Gk44KE44G+LOOCiuOBiA0KK+OBvuOBquOBuSzjgarjgYrjgobjgY0NCivjgb7jgovjgoTjgb4s44Gk44KI44GXDQor44G/44GG44KJLOOBl+OBmuOBiw0KK+OBv+OBjSzjga7jgbbjgYLjgY0NCivjgb/jgaTjga/jgZcs44G+44KK44GTDQor44G/44Gk44G5LOOBvuOBleOCiw0KK+OBv+OBqOOBuSzjgb7jgYTjgZMNCivjgaHjgofjgajjgY8s44GL44Gk44GC44GNDQor44GE44GR44G144GYLOOBjeOBv+OBsuOCjQ0KK+OBv+OChOOBluOBjSzjgZfjgpPjgZgNCivjgb/jgoTjgZbjgY0s44GC44Gk44GTDQor44G/44KE44GX44GfLOOBqOOCguOBsuOCjQ0KK+OBv+OChOOBnyzjgarjgb/jgZMNCivjgoDjgZPjgYbjgoTjgb4s44KE44GZ44Gu44KKDQor44KA44KJ44GELOOBiuOBj+OBqA0KK+OCgOOCieOBi+OBvyzjgZ/jgZHjgZcNCivjgoDjgonjgYvjgb8s44GC44GN44GXDQor44KA44KJ44GfLOOBsuOBp+OBn+OBiw0KK+OCgOOCieOBvuOBpCzjgZ/jgYvjgbLjgo0NCivjgoLjgajjgY0s44G+44GV44Gy44KNDQor44KC44Go44KI44GXLOOBoeOBrg0KK+OCguOBv+OChOOBvizjgarjgYrjgobjgY0NCivjgoLjgoos44G/44Gh44KLDQor44KC44KKLOOBn+OBi+OChuOBjQ0KK+OCguOCiuOBhuOBiCzjgYjjgYTjgYTjgaENCivjgYTjga7jgYbjgYgs44G+44GV44GoDQor44KC44KK44GG44GhLOOBsuOBleOChA0KK+OCguOCiuOBnyzjgZ/jgb7jgY0NCivjgoTjgY7jgZXjgo8s44Gu44G244KI44GXDQor44KE44GX44G+LOOBvuOBleOBr+OCiw0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgoTjga4s44KI44GG44GTDQor44KE44GuLOOBn+OBi+OBlw0KK+OChOOBvuOBkOOBoSzjgb/jgaHjgbLjgacNCivjgoTjgb7jgZXjgY0s44G/44G7DQor44KE44G+44GW44GNLOOBvuOBvw0KK+OChOOBvuOBl+OBnyzjgb/jgaTjgYLjgY0NCivjgoTjgb7jgZfjgZ8s44Go44KC44KG44GNDQor44KE44G+44GgLOOBvuOBleOChuOBjQ0KK+OChOOBvuOBqizjgZjjgoXjgpPjgZ8NCivjgoTjgb7jgb/jgaEs44Gb44GE44GE44GhDQor44GE44Gq44GLLOOBiOOBhOOBmA0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgoTjgb7jgoLjgags44Gf44GR44KEDQor44KE44G+44KC44GoLOOCiOOBl+OBn+OBiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jga7jgooNCivjgobjgbAs44GX44KT44Gf44KN44GGDQor44KI44GT44Gf44GrLOOChuOBhuOBjQ0KK+OCiOOBk+OChOOBvizjgYvjgZrjgb8NCivjgojjgZfjgaAs44GT44GG44GYDQor44KI44GX44GgLOOBteOBv+OBsuOBkw0KK+OBhOOCj+OBleOBjSzjgb/jgY0NCivjgojjgZfjgaAs44Gf44Gg44Gf44GLDQor44KI44GgLOOBmOOCheOCkw0KK+OBheOBiizjgbXjgb/jgbLjgZMNCivjgo/jgYvjgb7jgaQs44Gu44G244Gy44GTDQor44KP44GVLOOBkeOBhOOBmA0KK+OCj+OBoCzjgYLjgaTjgZcNCivjgo/jgZ/jgarjgbks44Gf44Gk44GKDQor44GE44KP44GP44KJLOOBi+OBqg0KK+OCj+OBn+OBquOBuSzjgZHjgYTjgZnjgZENCivjgo/jgZ/jgarjgbks44GS44KT44GfDQor44KP44Gf44Gq44G5LOOBk+OBhuOBmA0KK+OCj+OBn+OBquOBuSzjgZ/jgY/jgoQNCivjgo/jgZ/jgarjgbks44Gy44Gn44GKDQor44KP44Gf44Gq44G5LOOCgOOBreOBn+OBiw0KK+OCj+OBn+OBquOBuSzjgobjgZ/jgYsNCivjgo/jgZ/jgarjgbks44G+44GT44GoDQor44GK44GyLOOCiOOBl+OBig0KK+OBhOOBhOOBoCzjgYvjgZrjgbLjgo0NCivjgoDjgYvjgYQs44Go44GX44GL44GaDQor44G144G/44Gv44KJLOOBqOOBl+OBi+OBmg0KK+OBi+OCj+OBlOOBiCzjgorjgofjgYYNCivjgY/jgo3jgYvjgo8s44GI44G/DQor44GT44GG44GgLOOBguOBjeOBsuOBkw0KK+OBteOBmOOBnyzjgb/jgaHjgYgNCivjgZPjgbDjgoTjgZcs44KK44KH44GTDQor44Gv44G+44KA44KJLOOBi+OBiuOCiw0KK+OBhOOCj+OBmyzjgZHjgYTjgZ4NCivjgZ/jgZHjgaAs44GI44GE44GE44GhDQor44GK44GM44KPLOOBsuOBp+OChuOBjQ0KK+OBv+OBmuOBnyzjgYvjgZrjgb/jga0NCivjgYTjgYTjgaAs44GX44KH44Gf44KN44GGDQor44GC44GE44Gv44KJLOOChuOBjQ0KK+OBguOBiuOBhizjgZfjgZLjgosNCivjgYLjgYrjgY0s44Gy44KN44KG44GNDQor44GC44GK44GwLOOBjeOCiOOBi+OBmg0KK+OBguOBjeOCguOBqCzjgajjgZfjgYgNCivjgYLjgZXjgYQs44Gu44G244Gy44KNDQor44GE44GX44KE44G+LOOChuOBjeOBkw0KK+OBguOBleOBiizjgZ/jgYvjgZcNCivjgYLjgZXjgaAs44GL44GK44KKDQor44GC44GV44GgLOOBvuOBleOBr+OCiw0KK+OBguOBleOBrizjgbLjgo3jgb8NCivjgYLjgZXjga4s44GV44Go44KLDQor44GC44GW44G/LOOChuOBhuOBkw0KK+OBguOBmeOBvizjgZ/jgZHjgZcNCivjgYLjgZ3jgYYs44GL44KIDQor44GC44Gg44GhLOOChOOBmeOBsuOCjQ0KK+OBguOBqOOBvyzjgb7jgZXjgosNCivjgYLjgarjgb8s44Gy44KN44GC44GNDQor44GC44G5LOOBleOBqOOCiw0KK+OBguOBuSzjgYLjgaTjgZcNCivjgYLjgbks44KE44GZ44GTDQor44GC44G+44GuLOOBqOOBl+OBjQ0KK+OBguOChOOBuSzjgZfjgpPjgZMNCivjgZ/jgZHjgY3jgZ8s44Gy44KN44KI44GXDQor44GC44KJ44GELOOBmeOBmeOCgA0KK+OBhOOBpOOBrizjgobjgYbjgZMNCivjgYLjgorjgYvjgo8s44GX44KF44KT44GZ44GRDQor44GC44KK44GfLOOBiOOBv+OBkw0KK+OBguOCk+OBmOOChSzjgajjgZfjgY0NCivjgYLjgpPjganjgYYs44GR44KT44Gf44KN44GGDQor44GC44KT44Gp44GGLOOBteOBmOOBig0KK+OBhOOBoeOBruOBmyzjgajjgoLjgbLjgZMNCivjgYTjgYTjgazjgb4s44Go44GX44KG44GNDQor44GE44GG44GILOOBl+OCheOBuOOBhA0KK+OBhOOBjOOCieOBlyzjgobjgYsNCivjgYTjgZHjgYbjgaEs44GN44KH44GG44GE44GhDQor44GE44GR44GM44G/LOOBruOCiuOBsuOCjQ0KK+OBhOOBkeOBoCzjgoTjgZnjgbLjgZUNCivjgYTjgorjgZ8s44G+44GV44GK44G/DQor44GE44GR44GgLOOBvuOBk+OBqA0KK+OBhOOBkeOBoCzjgb7jgZPjgagNCivjgYTjgZHjgaAs44G+44GV44Go44GXDQor44GE44GX44GELOOBn+OCjeOBhg0KK+OBhOOBl+OBhCzjgb7jgarjgbYNCivjgYTjgZfjgYQs44G+44GNDQor44GE44GX44GK44GLLOOBv+OBjeOBig0KK+OBhOOBvuOBhCzjgojjgZfjga7jgbYNCivjgYTjgZfjgYvjgo8s44GT44GG44GE44GhDQor44GE44GX44GL44KPLOOBpOOCiOOBlw0KK+OBhOOBl+OBkOOCjSzjgb7jgZXjgY0NCivjgYTjgZfjgaAs44KK44KF44GfDQor44GE44Gb44GNLOOBk+OBmuOBiA0KK+OBhOOBoeOBjSzjgbLjgo3jgobjgY0NCivjgYTjgaHjga7jgZss44KI44GX44GC44GNDQor44GE44Gh44Gu44G/44KELOOBguOBjeOBkw0KK+OBhOOBqOOBhizjgYrjgorjgYsNCivjgYTjgajjgYYs44G/44Gu44KLDQor44GE44Gq44GgLOOBn+OBkeOBlw0KK+OBhOOBquOBsCzjgoTjgZnjgYLjgY0NCivjgYTjga/jgoks44GX44KF44Gy44GhDQor44GE44Gu44GG44GILOOBl+OCh+OBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgZjjgo0NCivjgYTjga7jgYbjgYgs44GY44KF44Gr44GhDQor44GE44G+44GE44Ga44G/LOOBqOOCguOBkw0KK+OBhOOBvuOBmOOChyzjgarjgYrjgb8NCivjgYTjgb7jgaAs44GX44KT44GE44GhDQor44GE44G+44GaLOOBn+OBkeOBlw0KK+OBhOOBvuOCgOOCiSzjgorjgofjgbjjgYQNCivjgYTjgorjgZ/jgass44Go44KC44Gu44G2DQor44GE44KP44GNLOOChuOBjeOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgZ/jgaTjgobjgY0NCivjgYTjgo/jgZXjgY0s44Gf44GR44GXDQor44GE44KP44GZ44GOLOOBvuOBleOBqA0KK+OBhOOCj+OBnyzjgajjgoLjgbLjgo0NCivjgYTjgo/jga/jgZcs44G144G/44Gf44GRDQor44GE44KP44G244GhLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBu+OCiizjga7jgorjgZMNCivjgYbjgYjjgaAs44KI44GX44Gf44GLDQor44GG44GI44G+44GkLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBhuOBmeOBhCzjgY3jgojjgZ/jgYsNCivjgYbjgZnjgYQs44GK44GV44KADQor44GG44Gh44GgLOOBruOCiuOBkw0KK+OBhuOBpOOBvyzjgajjgoLjgobjgY0NCivjgYbjgoHjgaAs44GC44Gk44GXDQor44GG44KJ44GuLOOBleOBqOOBkw0KK+OBiOOBjOOCjyzjgb/jgYoNCivjgYjjgZbjgY0s44Gk44KI44GXDQor44GI44GoLOOBv+OBpOOBqOOBlw0KK+OBiOOBruOCguOBqCzjgZ/jgY/jgZgNCivjgYjjga7jgoLjgags44Gf44Gk44KEDQor44GI44G+LOOBvuOCig0KK+OBiOOCk+OBqSzjgb7jgaoNCivjgYjjgpPjgaks44G/44GLDQor44GK44GE44Gf44GrLOOBl+OCh+OBl+OChQ0KK+OBiizjgYTjgaHjgo3jgYYNCivjgYrjgbIs44Gq44G7DQor44GK44G4LOOBguOBjeOBsuOBkw0KK+OBiuOBjSzjga7jgbbjgYgNCivjgYrjgY/jgbws44Gf44GL44GXDQor44GK44GV44KPLOOBqOOCguOBhOOBoQ0KK+OBiuOBleOCjyzjgb7jgZXjgbLjgo0NCivjgYTjgo/jgY3jgoos44GL44GK44KKDQor44GK44GZ44G/LOOBvuOBjeOBkw0KK+OBiuOBnyzjgbLjgafjga7jgbYNCivjgYrjgZ8s44KE44GZ44Gy44KNDQor44GK44Gk44GLLOOBn+OBkeOBlw0KK+OBiuOBpOOBiyzjgYLjgaTjgZMNCivjgYrjgaTjgYss44GR44KT44GYDQor44GK44Gk44GNLOOBr+OCi+OBsuOCiQ0KK+OBiuOBquOBiyzjgYLjgY3jgokNCivjgYrjgavjgZcs44GC44GN44GTDQor44GK44G8LOOBsuOBleOBruOCig0KK+OBiuOBvizjgojjgZfjgb7jgZUNCivjgYrjgoDjgoks44KG44GNDQor44GK44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBhOOBl+OBhCzjgYvjgYrjgosNCivjgYrjgoLjgoos44GC44GN44Gy44KNDQor44GK44KC44KKLOOBguOChA0KK+OBiuOCguOCiizjgbXjgb/jga7jgooNCivjgYrjgo/jgaAs44GE44GV44GKDQor44GK44GL44GELOOBsuOBleOBlw0KK+OBiuOBi+OBluOBjSzjgo/jgZ/jgosNCivjgYrjgYvjgZbjgY0s44KC44Go44Gy44GTDQor44GE44GR44GgLOOBv+OBpOOBsuOCjQ0KK+OBiuOBi+OBrizjgZ/jgYvjgZcNCivjgYrjgYvjgbks44GC44GN44Gu44KKDQor44GK44GL44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBiuOBjOOCjyzjgajjgoLjgbLjgo0NCivjgYrjgYzjgo8s44GY44KF44KTDQor44GK44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OBiuOBjOOCjyzjgojjgYbjgZMNCivjgYrjgYzjgo/jgoks44G+44GV44GTDQor44GK44GP44Gv44KJLOOBjeOCiOOBlw0KK+OBiuOBj+OChOOBvizjgZfjga7jgbYNCivjgYrjgZDjgoks44GP44G/DQor44GN44Gf44KA44KJLOOBquOBiuOBkw0KK+OBiuOBluOCjyzjgojjgZfjgbLjgo0NCivjgYrjgaEs44Gy44KN44GL44GaDQor44GK44GuLOOBruOBtuOBsuOBlQ0KK+OBiuOBrizjgZ/jgYvjgbXjgb8NCivjgYrjga7jgafjgoks44KM44GEDQor44GK44Gw44GfLOOBqOOCguOBv+OBoQ0KK+OBiuOChOOBvizjgYvjgZrjgbLjgagNCivjgYrjgpPjgZ8s44GC44GN44GKDQor44GE44KP44GfLOOBiOOBhOOBhOOBoQ0KK+OBi+OBhOOBtuOBjSzjgYbjgonjgokNCivjgYvjgY3jgoLjgags44GI44Gk44GTDQor44GL44GW44GQ44GhLOOChuOBhuOBkw0KK+OBi+OBleOBluOBjSzjgYLjgY3jgokNCivjgYvjgZgs44KK44KH44Gy44GhDQor44GL44GY44KA44KJLOOBjeOCiOOBrg0KK+OBi+OBl+OCj+OBhCzjgY/jgavjga/jgosNCivjgYvjgZfjgo/jgbDjgoks44GV44Go44GXDQor44GL44Gf44GP44KJLOOBvuOBkw0KK+OBi+OBn+OChOOBvizjgoTjgZnjga/jgosNCivjgYvjgaTjga4s44G+44KK44GTDQor44GL44GpLOOBl+OBkuOBv+OBpA0KK+OBi+OBqOOBhizjgoLjgajjgbLjgo0NCivjgYTjgZ3jga4s44Gf44GL44GXDQor44GL44Go44GGLOOBoeOBiw0KK+OBi+OBqOOBhizjgZHjgpPjgZcNCivjgYvjgajjgYYs44GL44Gk44KI44GXDQor44GL44Go44KKLOOBoeOBmuOCiw0KK+OBi+OBquOBleOBiyzjgoHjgZDjgb8NCivjgYvjgarjgZbjgo8s44Gf44GR44GXDQor44GL44Gq44KE44G+LOOChuOBvw0KK+OBi+OBreOBkyzjgb7jgaHjgZMNCivjgYvjga3jgZMs44G+44GV44Gu44KKDQor44GL44Gt44GgLOOCiOOBl+OBsuOCjQ0KK+OBjOOBvyzjgZXjgYrjgooNCivjgYvjgoHjgYrjgYss44Gv44KL44GqDQor44GL44KJ44GV44KPLOOBruOCiuOBkw0KK+OBi+OCieOBl+OBvizjgarjgYrjgoQNCivjgYvjgovjgYTjgZcs44KI44GX44KG44GNDQor44GL44KP44GELOOBvuOBhOOBkw0KK+OBi+OCj+OBhCzjgZ/jgYvjga7jgooNCivjgYvjgo/jgYvjgb8s44Gh44GI44GTDQor44GL44KP44GL44G/LOOBruOBtuOChuOBjQ0KK+OBi+OCj+OBmizjgb/jganjgooNCivjgYvjgo/jgarjgYss44Gf44GL44GXDQor44GL44KP44GuLOOBl+OBuw0KK+OBi+OCj+OBsOOBnyzjgYLjgY3jgojjgZcNCivjgYvjgo/jgbks44GR44KT44GYDQor44GL44KP44G/LOOCguOBqOOBsuOCjQ0KK+OBi+OCk+OBsOOBlyzjgb/jgaHjgZMNCivjgYvjgpPjgbDjgoks44GL44Gq44GTDQor44GN44GX44GELOOChuOBjeOBig0KK+OBjeOBl+OBoCzjgajjgoLjgZMNCivjgY3jgZ/jgYzjgo8s44KC44Go44GNDQor44GN44Gf44GX44KNLOOBsuOCjeOBlw0KK+OBjeOBn+OBr+OCiSzjgb7jgarjgb8NCivjgY3jgZ/jgoDjgoks44GC44GN44Gm44KLDQor44GN44GpLOOBjeOCiOOBteOBvw0KK+OBjeOBruOBl+OBnyzjgYTjgZrjgb8NCivjgYjjgaAs44Gq44GK44KG44GNDQor44GN44KA44KJLOOBn+OBi+OBiuOBvw0KK+OBjeOCgOOCiSzjgb7jgZXjgb8NCivjgY3jgoDjgoks44GR44KT44GfDQor44GN44KI44Gq44GMLOOBguOBpOOBlw0KK+OBjeOCiOOBv+OChCzjgYjjgYTjgZnjgZENCivjgY3jgorjgoQs44Gf44GL44GXDQor44GE44Go44GGLOOBquOBiuOChA0KK+OBj+OBl+OBoCzjgZfjgbsNCivjgY/jgZjjgonjgYrjgYss44GX44KT44GYDQor44GP44Gr44KC44GoLOOBv+OBoeOBkw0KK+OBj+OBrOOBjizjgYLjgaTjgZcNCivjgY/jgbws44KE44GZ44GIDQor44GP44G844GV44KPLOOBguOBjeOBsuOCjQ0KK+OBj+OBvOOBnyzjgb7jgZXjgY0NCivjgY/jgoHjga4s44GL44Ga44KI44GXDQor44GE44GX44GQ44KNLOOCiOOBl+OBi+OBmg0KK+OBj+OCiSzjgojjgbLjgaENCivjgY/jgonjgZXjgo8s44Gh44GI44GTDQor44GP44KJ44GfLOOCj+OBi+OBkw0KK+OBj+OCjeOBi+OCjyzjgYjjgYQNCivjgY/jgo3jgZks44Gq44Gk44GTDQor44GP44KN44KE44Gq44GOLOOBl+OBkuOCiw0KK+OBhOOBquOBqOOBvyzjgYLjgaTjgZcNCivjgZPjgYTjgZEs44Gu44KK44G/44GkDQor44GT44GE44GRLOOBn+OBi+OBig0KK+OBk+OBhOOBl+OBi+OCjyzjgb7jgZXjgY0NCivjgZPjgYTjgZrjgb8s44Go44KC44KEDQor44GT44GE44Ga44G/LOOBjeOCh+OBkw0KK+OBk+OBhOOBpyzjgaDjgYTjgY0NCivjgZPjgZrjgb4s44Gf44GR44Go44GXDQor44GT44GuLOOBqOOBiuOCiw0KK+OBk+OBsuOCg+OBvizjgYLjgaTjgZcNCivjgZPjgoos44G+44GV44GNDQor44GL44Gk44GL44KPLOOBn+OBi+OBsuOCjQ0KK+OBk+OBjOOBrizjga7jgbbjgYoNCivjgZPjgZfjgYQs44Gf44KN44GGDQor44GT44GX44G+44KLLOOBqOOCguOBguOBjQ0KK+OBk+OBmeOBjizjgbXjgb/jga/jgosNCivjgZPjgZvjgY0s44KK44KH44GTDQor44GT44Gf44GrLOOBn+OBi+OBsuOBlQ0KK+OBk+OBoOOBvizjgb7jgb/jgZMNCivjgZPjgavjgZcs44GV44KT44GX44KNDQor44GT44Gr44GXLOOBoOOBhOOBmeOBkQ0KK+OBk+OBsCzjgb7jgobjgZMNCivjgZPjgbDjgZ/jgZEs44KP44Gf44KLDQor44GT44Gw44KE44GXLOOBsuOBp+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgabjgovjgb8NCivjgZPjgbDjgoTjgZcs44Gu44KK44G+44GVDQor44GT44Gw44KE44GXLOOBvuOBqeOBiw0KK+OBk+OBsOOChOOBlyzjgb7jgYTjgZMNCivjgarjgYvjgoDjgoks44GC44Gk44GTDQor44GT44Gw44KE44GXLOOBoOOBhOOBjQ0KK+OBk+OBvOOCiizjgZ/jgYvjgbLjgacNCivjgZPjgb7jgaQs44Gb44GE44GE44Gh44KN44GGDQor44GT44KE44G+LOOBguOBjeOBteOBvw0KK+OBk+OCk+OBqSzjgajjgoLjgbLjgo0NCivjgZPjgpPjga4s44Gg44GE44Go44GPDQor44GV44GE44Go44GGLOOBvuOBleOBlw0KK+OBleOBhOOBqOOBhizjgb7jgarjgbYNCivjgZXjgYTjgajjgYYs44KE44GE44GhDQor44GV44GE44Go44GGLOOBm+OCk+OBmA0KK+OBhOOBqOOBhizjgZ/jgb/jgZMNCivjgZXjgYvjgYQs44Gf44Gg44GXDQor44GV44GL44GELOOBqOOCguOBjQ0KK+OBleOBi+OBhCzjgZHjgYTjgYTjgaENCivjgZXjgYvjgY3jgbDjgoks44GC44GN44GTDQor44GV44GL44GQ44GhLOOChOOBmeOChuOBjQ0KK+OBhOOCj+OBleOBjSzjgojjgZgNCivjgZXjgYvjgoLjgags44G+44GV44KEDQor44GV44GL44KC44GoLOOCiOOBl+OBig0KK+OBleOBi+OCguOBqCzjgojjgbjjgYQNCivjgZXjgZXjgY0s44Gy44KN44GTDQor44GV44GV44GNLOOBj+OBq+OBsuOBkw0KK+OBleOBleOBjSzjgaTjgojjgZcNCivjgZXjgZXjgY0s44Gk44GO44GKDQor44GE44G+44Gv44GXLOOBjeOCh+OBuw0KK+OBleOBpOOBvyzjgZ/jgYvjgZMNCivjgZXjgajjgYYs44Go44KC44GIDQor44GV44Go44GGLOOBguOBpOOBkw0KK+OBleOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgajjgYYs44Gy44KN44KG44GNDQor44GV44Go44GGLOOBteOBjeOBkw0KK+OBleOBqOOBhizjgaHjgbLjgo0NCivjgZXjga4s44GN44KI44GXDQor44GE44GX44GQ44KNLOOBv+OBreOBig0KK+OBleOCj+OChOOBquOBjizjgajjgZfjgY0NCivjgZfjgYrjgZ8s44GE44Gh44KN44GGDQor44GX44GNLOOCjOOBhOOBkw0KK+OBl+OBkuOBiuOBiyzjga7jgorjgYoNCivjgZfjgZLjgZ8s44KI44GYDQor44GX44GX44GpLOOBmOOCheOCk+OBkw0KK+OBl+OBquOBoCzjgYvjgaTjgajjgZcNCivjgYTjgacs44GT44GV44GPDQor44GX44Gw44GfLOOBmOOCheOCk+OBkw0KK+OBl+OBsOOBnyzjgozjgaoNCivjgZfjgbDjgZ8s44Gy44KN44G/DQor44GX44Gw44GfLOOBn+OBi+OChuOBjQ0KK+OBl+OBvuOBmizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZfjgb7jgaAs44KG44GG44GYDQor44GX44G+44GaLOOBqOOCguOBj+OBqw0KK+OBl+OBv+OBmizjgb7jgorjgZMNCivjgZfjgb/jgZos44GT44GNDQor44GX44KC44Gv44GXLOOChuOBv+OBkw0KK+OBl+OCguOChOOBvizjgZfjga4NCivjgZjjgofjgZjjgocs44Gy44Gn44Gf44GLDQor44GE44Go44GGLOOBv+OBpOOBsuOCjQ0KK+OBmeOBjOOBnyzjgZHjgYTjgZnjgZENCivjgZnjgYzjgoQs44KG44GG44GTDQor44GZ44GO44GfLOOCjOOBhA0KK+OBmeOBjuOBquOBiyzjgb7jgoLjgosNCivjgZnjgY7jgoLjgags44KK44GLDQor44GZ44GO44KE44G+LOOCiOOBl+OBkw0KK+OBmeOBjuOChOOBvizjgojjgZfjgbXjgb8NCivjgZnjgY7jgoTjgb4s44KI44GG44GTDQor44GZ44GS44GuLOOBguOCiuOBsuOBqA0KK+OBmeOBmuOBjSzjgorjgocNCivjgZnjgZrjgY0s44GX44KF44GE44GhDQor44GZ44Ga44GNLOOCguOBquOBvw0KK+OBmeOBmuOBjSzjgojjgZfjgZXjgaANCivjgZnjgZrjgY0s44Gk44Gt44GKDQor44GE44KP44GV44GNLOOBsuOBp+OBn+OBoA0KK+OBmeOBmuOBjSzjgY/jgavjgYgNCivjgZnjgZrjgY0s44Gy44KN44Gu44G2DQor44GE44Gh44GL44KPLOOBi+OBiuOCig0KK+OBm+OBjSzjgZ/jgYvjgZcNCivjgZvjgY3jgZDjgaEs44GN44KH44GTDQor44Gb44GN44KELOOBruOBtuOBiA0KK+OBm+OBkyzjgYLjgY3jgbLjgo0NCivjgZvjgoks44Gf44GL44Gy44KNDQor44Gd44GMLOOBiOOBhOOBmA0KK+OBneOBjCzjgbXjgb/jgYoNCivjgYTjgajjgYYs44GL44Ga44GqDQor44GL44G/44KELOOChuOBhuOBmA0KK+OBneOCk+OBjyzjgajjgYrjgosNCivjgZ/jgYvjgY0s44GUDQor44Gf44GL44GOLOOBk+OBhuOBmA0KK+OBn+OBi+OBleOBjSzjgb7jgZXjgbLjgo0NCivjgYTjgZHjgaAs44Gy44Gn44GC44GNDQor44Gf44GL44GX44G+LOOBk+OBhuOBmA0KK+OBn+OBi+OBrizjgobjgYbjgZMNCivjgZ/jgYvjga4s44Go44KC44G144G/DQor44Gf44GL44GuLOOCiOOBhuOBkw0KK+OBn+OBi+OBrizjgZPjgYbjgZgNCivjgZ/jgYvjga4s44KK44GLDQor44Gf44GL44Gv44GXLOOBvuOBleOCiOOBlw0KK+OBn+OBi+OBr+OBlyzjgZHjgYTjgZMNCivjgZ/jgYvjga/jgZcs44GR44KT44GYDQor44Gf44GL44Gv44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga/jgZcs44KG44GLDQor44Gf44GL44G+44GkLOOBiOOBhOOBkw0KK+OBn+OBjOOBvyzjgYLjgY3jgokNCivjgZ/jgYvjgb/jgZbjgo8s44GL44GZ44G/DQor44Gf44GL44KJ44GgLOOBqOOBl+OBi+OBmg0KK+OBn+OBjeOBi+OCjyzjgobjgb/jgZMNCivjgZ/jgY3jgZbjgo8s44KI44GX44Gv44KLDQor44GE44GE44GuLOOChOOBmeOBig0KK+OBn+OBkeOBhCzjgbLjgajjgZcNCivjgZ/jgZHjgYbjgaEs44KE44GZ44Gy44GoDQor44Gf44GR44GG44GhLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOBjeOBnyzjgbLjgafjgY0NCivjgZ/jgZHjgarjgYss44G+44GN44GTDQor44Gf44GR44Gu44GG44GhLOOBquOBiuOBsuOCjQ0KK+OBn+OBkeOBr+OBqizjgojjgZfjgbLjgZUNCivjgYTjgajjgYYs44KI44GX44GKDQor44Gf44GR44KC44GoLOOBk+OBuOOBhA0KK+OBn+OBkeOCguOBqCzjgZPjgYbjgYTjgaHjgo0NCivjgZ/jgZQs44GM44GPDQor44Gf44GV44GLLOOBi+OBqg0KK+OBn+OBmOOBvizjgZ/jgYvjga7jgooNCivjgZ/jgZfjgo0s44Gy44KN44GXDQor44Gf44GX44KNLOOBsuOBqOOBlw0KK+OBn+OBn+OCiSzjgorjgoXjgY0NCivjgZ/jgaHjgbDjgaos44GX44KT44GE44GhDQor44GE44Gh44KA44KJLOOBiOOBv+OBkw0KK+OBn+OBpuOBhOOBlyzjgYTjgo/jgYoNCivjgZ/jgabjga4s44KG44G/DQor44Gf44Gm44GuLOOCiOOBl+OBsuOCjQ0KK+OBn+OBquOBiyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgarjgYss44Gf44GL44GN44KIDQor44Gf44Gq44GLLOOBvuOBjQ0KK+OBn+OBquOBiyzjgbXjgb/jgYoNCivjgZ/jgarjgYss44KK44KH44GYDQor44Gf44Gq44GLLOOBteOBvw0KK+OBn+OBquOBiyzjgajjgY/jgZMNCivjgYzjgb8s44G+44GV44KLDQor44Gf44Gq44G/LOOBi+OBmuOBsuOBkw0KK+OBn+OBqyzjgZnjgZnjgoANCivjgZ/jgavjgZDjgaEs44KI44GX44Gu44G2DQor44Gq44GL44GK44GLLOOBsuOCjeOBi+OBmg0KK+OBn+OBq+OBluOCjyzjgojjgZfjgZMNCivjgZ/jgavjgaAs44GUDQor44Gf44Gr44KC44GoLOOBleOBquOBiA0KK+OBn+OBruOBiuOBiyzjgYLjgoTjgZMNCivjgZ/jgbDjgZ8s44GV44Go44GXDQor44Gf44Gv44KJLOOChuOBjQ0KK+OBn+OCgOOCiSzjgbLjgZXjgZcNCivjgaHjgYvjgZbjgo8s44Gg44GE44GeDQor44Gh44GuLOOBkeOCk+OBhOOBoeOCjQ0KK+OBoeOBr+OCiSzjgb7jgZXjgbLjgo0NCivjgaHjgoXjgZjjgocs44Gq44GK44GTDQor44Gh44KF44G+LOOBqOOBiuOCiw0KK+OBpOOBi+OBoCzjgY3jgofjgZMNCivjgaTjgYvjgoLjgags44KE44GZ44GXDQor44Gk44GL44KC44GoLOOCiOOBhuOBkw0KK+OBpOOBoCzjgb7jgZPjgagNCivjgaTjgaHjgaAs44Gk44Gt44GKDQor44Gk44Gh44KELOOBvuOBvw0KK+OBpOOBoeOChCzjgobjgb/jgZMNCivjgaTjga3jgY0s44KG44GNDQor44Gn44G/44GbLOOCiOOBl+OBruOCig0KK+OBpuOCieOBiuOBiyzjga7jgbbjgobjgY0NCivjgYTjgZrjgb8s44GC44GN44G/DQor44GoLOOBv+OBiOOBkw0KK+OBqOOBmCzjgb7jgZXjgY0NCivjgajjgZfjgYrjgYss44G/44GL44GTDQor44Go44GgLOOChuOBjeOBsuOCjQ0KK+OBqOOBs+OBquOBhCzjga7jgorjgbLjgagNCivjgajjgoLjgYQs44Gf44GL44Gu44G2DQor44Go44KE44G+LOOBsuOBleOBrg0KK+OBqOOCiOOBl+OBvizjgZXjgoTjgYsNCivjgajjgojjgaAs44GR44GE44GE44GhDQor44Go44KI44Gv44G+LOOBsuOBp+OBn+OBkQ0KK+OBquOBjOOBiCzjga7jgbbjgZ/jgYsNCivjgarjgYzjgYgs44KG44Gf44GLDQor44Gq44GL44GKLOOBqOOCguOBruOCig0KK+OBquOBi+OBiizjgb7jgZXjgYoNCivjgarjgYvjgZjjgb4s44Gb44KM44GqDQor44Gq44GL44GY44G+LOOBguOBjQ0KK+OBquOBi+OBmOOBvizjgY/jgb/jgZMNCivjgarjgYzjgZfjgb4s44Gf44GL44GXDQor44Gq44GM44GbLOOBi+OBquOBkw0KK+OBquOBi+OBnuOBrizjgYLjgaTjgZcNCivjgarjgYvjgZ8s44Gb44GE44GYDQor44Gq44GM44GfLOOBvuOBleOBkw0KK+OBquOBjOOBqCzjgb/jgZnjgZoNCivjgarjgYvjgavjgZcs44Gv44Gq44GIDQor44Gq44GL44GuLOOBguOBjeOBkw0KK+OBquOBjOOBrizjgb/jga3jgY0NCivjgarjgYzjga4s44GC44GE44GTDQor44Gq44GM44GuLOOBk+OBhuOBhOOBoQ0KK+OBquOBjOOBr+OCiSzjgZ/jgY/jgoQNCivjgarjgYvjgbLjgYzjgZcs44Go44GX44GKDQor44Gq44GL44KA44KJLOOBkeOCk+OBmA0KK+OBhOOBrOOBmuOBiyzjgZfjgbsNCivjgarjgYvjgoDjgoks44Go44KC44Gy44GnDQor44Gq44GL44KA44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBquOBi+OCgOOCiSzjgajjgoLjgZMNCivjgarjgYvjgoDjgoks44KI44GX44Gf44GLDQor44Gq44GL44KELOOBpOOCiOOBlw0KK+OBquOBi+OChCzjgb7jgooNCivjgarjgonjgZXjgY0s44GT44GG44GE44Gh44KNDQor44Gq44KK44GfLOOBmOOCheOCk+OBkw0KK+OBquOCiuOBnyzjgYLjgZXjgZMNCivjgavjgYTjgaAs44KI44GX44Gy44GTDQor44Gr44GX44GL44KPLOOBvuOCiuOBkw0KK+OBq+OBl+OCgOOCiSzjgZLjgpMNCivjgavjgZfjgoDjgoks44KI44GX44GTDQor44Gr44GX44KA44KJLOOBsuOCjeOBjQ0KK+OBq+OBl+OChOOBvizjgZ/jgYvjgZcNCivjgavjgZfjgoTjgb4s44Gm44Gk44KEDQor44Gr44KA44KJLOOCiOOBl+OChuOBjQ0KK+OBq+OCjyzjgoHjgZDjgb8NCivjgazjgb7jgZ8s44GN44G144G/DQor44Gs44G+44GfLOOBqOOCguOBi+OBmg0KK+OBrOOBvuOBoCzjgbXjgb/jgY0NCivjga3jgY7jgZcs44Gy44Go44GXDQor44Gu44GW44GNLOOBv+OBuw0KK+OBruOBjOOBvyzjgb7jgZXjgYvjgaQNCivjga7jgaAs44KG44Gf44GLDQor44Gu44Gv44KJLOOBkeOBhA0KK+OBruOBtuOBr+OCiSzjga7jgbbjgarjgooNCivjga/jgYws44KK44KF44GfDQor44Gv44GO44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBjuOCj+OCiSzjgajjgoLjgYLjgY0NCivjga/jgZfjgZrjgoEs44GE44KP44GKDQor44Gv44GX44KC44GoLOOBoeOBjuOCig0KK+OBr+OBl+OCguOBqCzjgZ/jgYTjgYTjgaENCivjga/jgZfjgoLjgags44GL44Gk44G/DQor44Gv44Gb44GM44KPLOOBqOOBiuOCiw0KK+OBr+OBm+OBjOOCjyzjga7jgorjgb7jgZUNCivjga/jgZvjgYzjgo8s44Gy44KN44KG44GNDQor44Gv44Gb44G5LOOChuOBjeOBiA0KK+OBr+OBnyzjgarjgYrjgZMNCivjga/jgZ/jgZHjgoTjgb4s44Gf44GL44Gy44KNDQor44Gv44Gf44Gq44GLLOOBpOOCiOOBlw0KK+OBr+OBn+OBrizjgYTjgZXjgYoNCivjga/jgaPjgajjgoos44Gf44GL44Gq44GKDQor44Gv44Gq44GW44GNLOOChuOBiw0KK+OBr+OBquOBtuOBlSzjgZ/jgaTjgoQNCivjga/jgarjgoDjgoks44Gk44KI44GXDQor44Gw44GwLOOChuOBhuOBkw0KK+OBr+OBvuOBleOBjSzjgb7jgZXjgagNCivjga/jgb7jgaAs44Gf44Gg44GL44GaDQor44Gv44KE44GXLOOBi+OBpOOCiQ0KK+OBr+OChOOBlyzjgZ/jgYvjgZcNCivjga/jgoTjgZcs44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBneOCiOOBiw0KK+OBr+OCiSzjgYLjgY3jgokNCivjga/jgonjgZfjgb4s44G+44GT44GoDQor44Gv44KJ44GgLOOBvuOChuOBvw0KK+OBr+OCieOBoCzjgYvjgZrjgZ/jgYsNCivjga/jgovjgZ/jgass44KI44GG44G444GEDQor44Gy44GM44GX44GuLOOBvuOBleOBsuOCjQ0KK+OBsuOBjOOBl+OChOOBvizjga/jgZrjgY0NCivjgbLjgZDjgaEs44GE44GP44GeDQor44GE44GX44Gv44KJLOOBguOBpOOCiA0KK+OBsuOBmOOBi+OBnyzjgYLjgY3jgojjgZcNCivjgbLjgbMs44Gf44Gk44KEDQor44Gy44KH44G4LOOBiuOBleOCgA0KK+OBsuOCieOBhCzjgZQNCivjgbLjgonjgYvjgo8s44GC44GN44GTDQor44Gy44KJ44GPLOOCiOOBl+OChuOBjQ0KK+OBsuOCieOBleOCjyzjgaTjgZDjgY0NCivjgYTjga7jga/jgoks44G+44Gq44G2DQor44Gy44KJ44GfLOOBn+OBkeOBsuOCjQ0KK+OBsuOCieOBrOOBvizjgb7jgZPjgagNCivjgbLjgonjga4s44KK44KHDQor44Gy44KJ44KE44G+LOOBvuOBleOBsuOBpw0KK+OBsuOCjeOBhuOBoSzjgYrjgZXjgoANCivjgbLjgo3jgYrjgYss44Gq44GK44KEDQor44Gy44KN44GL44KPLOOCiuOBiA0KK+OBteOBj+OBhCzjgZ/jgYvjgbLjgo0NCivjgbXjgY/jgaAs44G+44GNDQor44G144GP44GgLOOChg0KK+OBk+OCiizjgZfjgZLjgb/jgaQNCivjgbXjgZjjgYQs44Gf44GR44KI44GXDQor44G144GY44GELOOBsuOCjeOBguOBjQ0KK+OBhOOBpyzjgZ/jgaTjgagNCivjgbXjgZjjgYQs44Go44KC44Gy44KNDQor44G144GY44GKLOOBsuOBp+OBruOCig0KK+OBteOBmOOBiuOBiyzjgZjjgoXjgpPjgoQNCivjgbXjgZjjgY/jgoks44GX44GS44GNDQor44G144GY44GV44KPLOOBkeOCk+OBmA0KK+OBteOBmOOBleOCjyzjgZ/jgY/jgbLjgo0NCivjgbXjgZjjgZfjgZIs44GP44Gr44Gk44GQDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBhOOBruOBhuOBiCzjgZ/jgo3jgYYNCivjgbXjgZjjgags44GX44GS44KLDQor44G144GY44Gq44GMLOOCjOOBhA0KK+OBteOBmOOCj+OCiSzjgobjgYvjgZMNCivjgbXjgZjjgo/jgoks44GR44KT44Gf44KN44GGDQor44G144GbLOOBvuOBleOBjQ0KK+OBteOCi+OBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgbXjgovjgYvjgo8s44GZ44GZ44KADQor44GE44GX44GELOOBjeOCh+OBkw0KK+OBteOCi+OBleOCjyzjgZjjgoXjgavjgaENCivjgbXjgovjgZ8s44Gg44GE44GeDQor44G144KL44GfLOOBoeOBiOOBkw0KK+OBteOCi+OBnyzjgbLjgo3jgYvjgZoNCivjgbXjgo8s44Gf44GL44KG44GNDQor44G744GXLOOBkeOCk+OBhOOBoQ0KK+OBu+OBneOBoCzjgY3jgY/jgZMNCivjgYTjgZfjgYQs44GT44GG44GYDQor44G744KK44GL44KPLOOBkeOCk+OBn+OCjeOBhg0KK+OBu+OCiuOBk+OBlyzjgZHjgYTjgYTjgaENCivjgbvjgpPjgaAs44GR44KT44GE44GhDQor44G+44GI44GL44KPLOOBruOCiuOBig0KK+OBvuOBiOOBoCzjgobjgYsNCivjgb7jgYjjgaAs44Gq44GM44G+44GVDQor44G+44GI44GgLOOBqOOCguOBr+OCiw0KK+OBvuOBiOOBrizjgajjgZfjgY0NCivjgb7jgY0s44GL44GK44KLDQor44G+44GN44Ge44GuLOOBvuOBleOBv+OBpA0KK+OBvuOBjeOBnyzjgobjgYbjgYTjgaENCivjgb7jgY3jga4s44Gg44GE44GZ44GRDQor44G+44GV44GNLOOBsuOCjeOBjQ0KK+OBvuOBmeOBluOBjSzjgZPjgYbjgYTjgaENCivjgb7jgZnjgaAs44KI44GX44GC44GNDQor44G+44GZ44G244GhLOOBquOBiuOBkw0KK+OBvuOBoeOBoCzjgb/jgYoNCivjgb7jgaTjgYbjgoks44G+44KG44G/DQor44G+44Gk44GL44KPLOOBkeOBhOOBmeOBkQ0KK+OBvuOBpOOBluOBjSzjgbLjgo3jgb/jgaENCivjgb7jgaTjgZbjgY0s44Gq44GK44GTDQor44G+44Gk44GX44GfLOOBsuOCjeOBguOBjQ0KK+OBvuOBpOOBl+OBvizjga7jgbzjgosNCivjgb7jgaTjgaAs44KL44G/DQor44G+44Gk44GgLOOBv+OBquOBkw0KK+OBvuOBpOOBoCzjgZ/jgo3jgYYNCivjgb7jgaTjgarjgYws44Gf44GL44GXDQor44G+44Gk44Gq44G/LOOBleOBqOOBlw0KK+OBvuOBpOOBsOOCiSzjgarjgb8NCivjgb7jgaTjgbDjgoks44GV44KE44GLDQor44G+44Gk44G/44KELOOBi+OBpOOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgoDjga3jgY0NCivjgb7jgaTjgoLjgags44KG44Ga44KLDQor44G+44Gk44KC44GoLOOCiOOBl+OBkw0KK+OBvuOBpOOCguOBqCzjgobjgZnjgZENCivjgb7jgaTjgoLjgags44GL44Ga44Gy44KNDQor44G+44Gk44KE44G+LOOBv+OChuOBjQ0KK+OBvuOBquOBuSzjgYjjgorjgZMNCivjgb7jgovjgoTjgb4s44KC44Go44KIDQor44G+44KL44KE44G+LOOBoOOBhOOBmeOBkQ0KK+OBv+OBhuOCiSzjgb7jgY0NCivjgb/jgY/jgass44GT44Ga44GIDQor44G/44Ga44GL44G/LOOBsuOBp+OBig0KK+OBv+OBpOOBr+OBlyzjgZfjgZLjgobjgY0NCivjgb/jgarjgags44Gf44GL44GXDQor44G/44Gq44G/LOOBguOChuOBvw0KK+OBv+OBteOBrSzjgZ/jgYvjgZcNCivjgb/jgoTjgYzjgo8s44GT44GG44GYDQor44G/44KE44GV44GLLOOBruOCiuOBteOBvw0KK+OBv+OChOOBluOCjyzjgZXjgajjgb8NCivjgoDjgonjgYos44GR44KT44GE44GhDQor44KA44KJ44GL44G/LOOBvuOBk+OBqA0KK+OCgOOCieOBnyzjgYvjgZrjgbLjgacNCivjgoDjgonjgb7jgaQs44Gf44GR44G144G/DQor44KA44KJ44KE44G+LOOChuOBmeOBkQ0KK+OCgOOCieOChOOBvizjgbLjgo3jgZMNCivjgoHjgZDjgo0s44Gh44Ga44GTDQor44KC44Gh44Ga44GNLOOCiuOCh+OBmeOBkQ0KK+OCguOBqOOCiOOBlyzjgb7jgZXjgY0NCivjgoLjgoLjgZos44Gy44KN44GNDQor44KC44KKLOOChOOBmeOBv+OBpA0KK+OCguOCiizjgbXjgb/jgarjgooNCivjgoLjgoos44Gy44Gn44GNDQor44KC44KKLOOBruOCiuOCiOOBlw0KK+OCguOCiuOBnyzjgbLjgo3jgobjgY0NCivjgoLjgorjgZ8s44Gf44GL44KG44GNDQor44KC44KK44GuLOOCiOOBl+OBsuOCjQ0KK+OCguOCiuOCguOBqCzjgb7jgZXjgZcNCivjgoLjgorjgoLjgags44GX44Gu44G2DQor44KC44KK44KE44G+LOOBmOOCheOCkw0KK+OCguOCiuOCj+OBjSzjgb7jgZXjgZMNCivjgoTjgY4s44G+44GV44G/DQor44KE44GOLOOBkeOCk+OBmeOBkQ0KK+OChOOBj+OBl+OBmCzjga7jgbbjgobjgY0NCivjgoTjgZMs44Go44GX44GKDQor44KE44GW44KPLOOBi+OBmuOBguOBjQ0KK+OChOOBmeOBvizjgajjgoLjgbLjgZMNCivjgoTjgajjgZQs44GT44GG44GE44GhDQor44GY44KH44GM44KTLOOBvuOBk+OBqA0KK+OChOOBquOBtizjgobjgY3jgZMNCivjgoTjga4s44G+44GV44GNDQor44KE44G244GfLOOChOOBmeOBn+OBiw0KK+OChOOBvuOBhuOBoSzjgb/jgbsNCivjgoTjgb7jgYbjgaEs44Gf44G+44KIDQor44KE44G+44GQ44GhLOOBkeOCk+OBmA0KK+OChOOBvuOBkOOBoSzjgZHjgpPjgYTjgaHjgo0NCivjgoTjgb7jgZDjgaEs44G/44Gh44GKDQor44GY44Gg44GELOOBn+OBi+OBlw0KK+OChOOBvuOBkOOBoSzjgobjgY3jgZMNCivjgoTjgb7jgZDjgaEs44GL44Ga44KG44GNDQor44KE44G+44GQ44GhLOOBteOBv+OBguOBjQ0KK+OChOOBvuOBleOBjSzjgZHjgYTjgZnjgZENCivjgoTjgb7jgZXjgY0s44KG44Gf44GLDQor44KE44G+44GW44GNLOOBiuOBleOCgA0KK+OChOOBvuOBl+OBnyzjgaTjgojjgZcNCivjgoTjgb7jgZfjgZ8s44GR44KT44GE44GhDQor44KE44G+44GX44GfLOOBkeOCk+OBmOOCjQ0KK+OChOOBvuOBoCzjgYLjgYQNCivjgoTjgb7jgaAs44Gv44Gq44GIDQor44KE44G+44GgLOOBleOBqOOBlw0KK+OChOOBvuOBoCzjgZfjgoXjgZMNCivjgoTjgb7jgaAs44Gy44KN44GXDQor44KE44G+44Go44KELOOChuOBjeOBkw0KK+OChOOBvuOBquOBiyzjgb/jgaTjga/jgosNCivjgoTjgb7jgarjgZcs44KK44KHDQor44KE44G+44Gr44GXLOOChOOBmeOBvuOBlQ0KK+OChOOBvuOCguOBqCzjgarjgYrjgZMNCivjgoTjgb7jgoLjgags44Gy44KN44GC44GNDQor44KE44G+44KC44GoLOOBiOOBhOOBnw0KK+OChOOBvuOCguOBqCzjgZvjgYTjgZMNCivjgoTjgb7jgoLjgags44GT44GG44GYDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpMNCivjgojjgZPjgZ8s44GC44Gk44KEDQor44KI44GT44GfLOOBi+OBmuOBsuOCjQ0KK+OCiOOBk+OBnyzjgb7jgZXjgagNCivjgojjgZPjgaYs44Gf44GP44KEDQor44KI44GX44GK44GLLOOBn+OBi+OBlw0KK+OCiOOBl+OBiuOBiyzjgoTjgZnjgYoNCivjgojjgZfjgYrjgYss44Gf44Gk44GYDQor44KI44GX44GL44KPLOOChOOBmeOBsuOBlQ0KK+OCiOOBl+OBi+OCjyzjgY3jgofjgZMNCivjgojjgZfjgaAs44G+44KK44GTDQor44KI44GX44GgLOOBsuOBteOBvw0KK+OCiOOBl+OBoCzjgZjjgoXjgpMNCivjgojjgZfjga4s44Gq44GK44GNDQor44KI44GX44G/LOOBoeOBiw0KK+OCiOOBl+OCgOOCiSzjgYvjgZrjgoQNCivjgojjgaAs44KK44GLDQor44KI44Gt44GW44KPLOOBvuOBquOBvw0KK+OCiuOCheOBqCzjgZDjgYrjgbXjgYQNCivjgYPjgpMs44KI44GZ44GRDQor44KP44GL44Gk44GNLOOBn+OBpOOChA0KK+OCj+OBjeOBluOBiyzjgajjgoLjgbXjgb8NCivjgo/jgY3jgZ8s44GX44GS44KG44GNDQor44KP44GN44GfLOOBi+OCiA0KK+OCj+OBjeOCguOBqCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgo/jgaAs44Gf44GL44GXDQor44KP44GgLOOBguOBpOOBlw0KK+OCj+OBn+OBmyzjgbLjgafjgagNCivjgo/jgZ/jgarjgbks44Gf44GP44KEDQor44KP44Gf44Gq44G5LOOCiuOCh+OBsuOBoQ0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgobjgY0NCivjgo/jgZ/jgarjgbks44GY44KF44KT44GTDQor44KP44Gf44Gq44G5LOOBguOBi+OBrQ0KK+OBjeOBruOBl+OBnyzjgb/jga7jgosNCivjgYLjgYrjgY0s44G+44GV44KG44GNDQor44KE44Gq44GO44Gv44KJLOOBj+OBq+OBsuOBkw0KK+OBguOBvuOBkyzjga7jgorjgbLjgZUNCivjgZPjgpPjganjgYYs44GC44KJ44GfDQor44GX44KJ44GL44KPLOOBkeOBhA0KK+OBk+OChOOBvizjgZQNCivjgZPjgpPjgaks44GX44KT44GZ44GRDQor44KC44KKLOOBl+OCk+OChA0KK+OBiuOBrizjgobjgZnjgZENCivjgb7jga4s44Go44GK44KLDQor44Gq44GM44GuLOOBl+OCh+OBkw0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgb/jgoTjgZbjgY0s44GC44GN44GTDQor44GK44GM44KPLOOBoOOBhA0KK+OBjeOCgOOCiSzjgoTjgZnjga/jgosNCivjgojjgZPjgYos44Gd44GGDQor44GG44Gh44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBlOOBl+OBvizjgarjgYrjgZMNCivjgZXjgYjjgY0s44KI44GX44Gf44GLDQor44Gq44GL44GY44G+LOOChuOBhuOBkw0KK+OBhOOCj+OBvyzjgojjgZfjgbLjgZMNCivjgYjjgZIs44GN44KI44GXDQor44GG44KB44Ge44GuLOOCiOOBl+OBig0KK+OBleOBj+OCieOBhCzjgZfjgYrjgooNCivjgo/jgZ/jgarjgbks44KI44GG44GTDQor44Gq44GM44GELOOBn+OBi+OChuOBjQ0KK+OBiuOBneOBjOOBvyzjgb7jgZPjgagNCivjgY/jgo3jgYvjgo8s44Go44GX44GKDQor44Gf44GL44GZ44GLLOOBsuOBp+OCiOOBlw0KK+OBiuOBsOOBnyzjgYLjgY0NCivjgZfjgonjgYQs44GZ44G/44GTDQor44G+44Gk44GG44KJLOOBiOOCig0KK+OBquOBi+OBluOCjyzjgYLjgoQNCivjgb7jgaTjgYQs44GC44GN44KJDQor44GT44Gb44GNLOOBsuOBp+OBqOOBlw0KK+OBpOOBi+OBoCzjgZHjgpPjgZgNCivjgabjgonjgY/jgoks44Gh44Gq44GkDQor44Gr44G444GELOOCiuOCheOBhOOBoQ0KK+OBi+OCj+OCgOOCiSzjgb/jgY0NCivjgbLjgZQs44Gy44KN44G/DQor44GT44Gw44KE44GXLOOBv+OBuw0KK+OBteOCi+OBnyzjgozjgYQNCivjgoLjgaHjgZrjgY0s44GL44GK44KKDQor44GK44GL44GgLOOBvuOBvw0KK+OBleOBhOOBqOOBhizjgb7jgoQNCivjgYvjgo/jga/jgoks44GX44KH44GUDQor44GZ44Ga44GL44GRLOOBguOBpOOBsuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgojjgZcNCivjgYTjgZfjgZrjgYss44KI44GX44GL44GaDQor44Gf44G544GELOOBvuOBleOBsuOBkw0KK+OBlOOBqCzjgobjgZ/jgYsNCivjgZfjgoLjgZXjgYss44G+44GT44GoDQor44GL44KP44GELOOCiOOBl+OBsuOBlQ0KK+OCj+OBn+OBquOBuSzjgobjgbLjgaENCivjgZnjgZrjgY0s44GT44GG44Gf44KN44GGDQor44G+44Gk44KE44G+LOOBruOCiuOChuOBjQ0KK+OBr+OCiSzjgojjgZgNCivjgaTjgbDjgY0s44GN44KI44GXDQor44KE44GZ44GELOOBn+OBi+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgobjgY0NCivjgYrjgYvjgbks44GN44KI44Gu44KKDQor44GK44GM44KPLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgobjgY0NCivjgbXjgZjjgYvjgo8s44Gf44Gk44GXDQor44GE44Gq44GM44GNLOOChuOBjeOBkw0KK+OBoeOBnizjgobjgY0NCivjga/jgarjgaAs44Gf44GP44KEDQor44GK44GTLOOBguOBpOOBkw0KK+OBiuOBj+OCiSzjgbLjgZXjgagNCivjgb7jgaTjgYos44KE44GZ44G+44GVDQor44GI44KT44GpLOOBguOBjeOBsuOCjQ0KK+OBu+OCiuOBuSzjgajjgYrjgosNCivjgYvjgaQs44GL44Ga44G+DQor44GK44Gf44GLLOOCiOOBl+OBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgYTjgaTjgbXjgb8NCivjgoDjgonjgoTjgb4s44Gy44KN44GXDQor44KI44GX44GK44GLLOOCiuOCh+OBuOOBhA0KK+OBi+OBhCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44Gf44GL44KG44GNDQor44GQ44KT44GSLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBrizjgZXjgobjgooNCivjga/jgoTjgZcs44GX44KH44GTDQor44G/44GG44KJLOOBleOBqOOBlw0KK+OBguOBiuOChOOBjizjgZHjgpPjgZgNCivjgZ/jgYvjgaAs44Gy44Gn44Go44GXDQor44Gs44G+44GfLOOBqOOBl+OBsuOBkw0KK+OBi+OBn+OBiuOBiyzjgZjjgoXjgpPjgoQNCivjgZfjgb/jgZos44KC44Go44GC44GNDQor44GX44G/44GaLOOBmeOBv+OBsuOCjQ0KK+OBvuOBpOOCgOOCiSzjgaTjgajjgoANCivjgYrjgorjgags44G+44KK44GTDQor44GT44Gf44GrLOOCguOBqOOBmA0KK+OBiuOBr+OBlyzjgabjgaTjgbLjgo0NCivjgYvjgpPjgZvjgY0s44G+44GV44Gu44G2DQor44GN44Gf44KA44KJLOOBqOOBl+OChA0KK+OBleOBj+OBnyzjgobjgYbjgZMNCivjgojjgZfjgaAs44GV44KG44KKDQor44GT44Gv44KJLOOCiOOBl+OBiA0KK+OBgyzjgo/jgYvjgZMNCivjgYTjga/jgoks44Gf44G+44KIDQor44Gk44GY44GG44KJLOOBn+OBhA0KK+OBquOBi+OCgOOCiSzjgYLjgoTjgZMNCivjgYLjgYrjgY0s44G+44Gq44G/DQor44GC44GK44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBguOBi+OBhOOBkSzjgajjgY/jgbLjgZMNCivjgYLjgYvjgaQs44GR44KT44GYDQor44GC44GN44Gv44KJLOOBi+OBiuOCiw0KK+OBguOBjeOCguOBqCzjgZXjgaHjgZMNCivjgYLjgZXjgY/jgoks44KG44GG44GTDQor44GC44GV44GuLOOBn+OCjeOBhg0KK+OBguOBs+OCiyzjgZXjgajjgZcNCivjgYLjgbks44G144G/44Gy44GTDQor44GC44G5LOOCiuOChw0KK+OBguOBuSzjgZHjgYTjgZMNCivjgYLjgbnjgYvjgo8s44GT44GG44Gf44KN44GGDQor44GC44KJ44GELOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBguOCieOBhCzjgZ/jgYvjgZcNCivjgYLjgonjgYvjgo8s44Go44GK44KLDQor44GC44KJ44GNLOOBr+OCi+OBqg0KK+OBguOCieOBjSzjgZHjgYTjgZMNCivjgYLjgorjgYgs44GL44Ga44Gy44KNDQor44GC44KT44Gp44GGLOOBpOOCiOOBlw0KK+OBhOOBhOOBoCzjgYLjgY3jgZMNCivjgYTjgZHjgaAs44Gg44GE44GZ44GRDQor44GE44GR44GgLOOBsuOCjeOBvw0KK+OBhOOBkeOBoCzjgZjjgoXjgpMNCivjgYTjgZfjgYQs44GX44KF44KT44GZ44GRDQor44GE44GX44GELOOBvuOCig0KK+OBhOOBl+OBjOOBjSzjgZ/jgYvjgZcNCivjgYTjgZfjgYvjgo8s44KK44KHDQor44GE44GX44GL44KPLOOBguOBhOOBkw0KK+OBhOOBl+OBluOCjyzjga7jgorjgZ/jgYsNCivjgYTjgZfjgZrjgb8s44KG44GNDQor44GE44GX44Gc44GNLOOBn+OBj+OChA0KK+OBhOOBl+OBoCzjgajjgoLjgZMNCivjgYTjgZfjgaAs44Gu44KK44Gy44GoDQor44GE44GX44GgLOOBvuOBleOBqOOBlw0KK+OBhOOBl+OBpSzjgbLjgo3jgY0NCivjgYTjgZfjga/jgoks44Gf44GL44GC44GNDQor44GE44GX44G+44KLLOOBsuOCjeOBlw0KK+OBhOOBn+OBqyzjgb7jgZXjgbXjgb8NCivjgYTjgZ/jga/jgoks44GR44KT44Gf44KN44GGDQor44GE44Gh44G+LOOBmOOCheOBq+OBoQ0KK+OBhOOBqOOBhizjgZfjgoXjgpPjgZnjgZENCivjgYTjgajjgYYs44Gf44GR44GXDQor44GE44Go44GGLOOBquOBiuOBjQ0KK+OBhOOBqOOBhizjga7jgbbjgoTjgZkNCivjgYTjgajjgYYs44Gv44KE44GoDQor44GE44Go44GGLOOBv+OChOOBkw0KK+OBhOOBqOOBhizjgobjgY0NCivjgYTjgajjgYYs44KG44G/44GTDQor44GE44Gq44GM44GNLOOBpuOCi+OBjQ0KK+OBhOOBquOBvyzjgZfjgoXjgbjjgYQNCivjgYTjga4s44Gg44GE44GZ44GRDQor44GE44Gu44GG44GILOOChuOBhuOBmA0KK+OBhOOBruOBhuOBiCzjgozjgYTjgZMNCivjgYTjgb7jgYos44KI44GX44Gf44GLDQor44GE44G+44GgLOOBn+OBi+OBlw0KK+OBhOOCj+OBi+OBvyzjgbXjgb/jgarjgYoNCivjgYTjgo/jgY/jgoks44GX44KF44Gy44GhDQor44GE44KP44GW44GNLOOBn+OBi+OBlw0KK+OBhOOCj+OBnyzjgbLjgZXjgaTjgZANCivjgYTjgo/jgoLjgags44Gq44GK44GoDQor44GG44GI44GZ44GOLOOChuOBhuOBkw0KK+OBhuOBiOOBoCzjgobjgYbjgYTjgaHjgo3jgYYNCivjgYbjgYjjgZ/jgYss44Gy44KN44GL44GaDQor44GG44GI44GhLOOBguOBjeOBkw0KK+OBhuOBiOOBrizjgZfjgZrjgZMNCivjgbLjgorjgoUs44GK44GNDQor44GG44GI44KA44KJLOOBpOOCiOOBlw0KK+OBhuOBoeOBoCzjgbLjgo3jgobjgY0NCivjgYbjgaHjgaAs44GX44GS44GNDQor44GG44Gh44Gv44GXLOOCjOOBig0KK+OBhuOBoeOChOOBvizjgb/jgY0NCivjgYbjgoHjga/jgoks44G+44GV44GNDQor44GG44KK44Gf44GrLOOBn+OBi+OBlw0KK+OBiOOBuSzjgZjjgoXjgpPjgbrjgYQNCivjgYrjgYTjgYvjgo8s44GR44KT44GE44GhDQor44GK44GK44GELOOChuOBmeOBkQ0KK+OBiuOBiuOBhCzjgobjgZ/jgYsNCivjgYrjgYrjgYTjgZcs44Gy44KN44Gf44GLDQor44GK44GG44GhLOOBk+OBhuOBmA0KK+OBiuOBiCzjgbLjgo3jgY0NCivjgYrjgYrjgYrjgYss44GY44KF44KT44GTDQor44GK44GK44GL44KPLOOBvuOBleOChA0KK+OBiuOBiuOBj+OBvCzjgZfjgofjgZgNCivjgYrjgYrjgY/jgb4s44G+44KKDQor44GK44GK44GfLOOBkeOCk+OBmA0KK+OBiuOBn+OBqyzjgZPjgYbjgZgNCivjgYrjgYrjgaQs44G+44GV44Gy44KNDQor44GK44GK44GkLOOBguOChA0KK+OBiuOBiuOBpOOBiyzjgY3jgYTjgaENCivjgYrjgYrjgaTjgYss44GUDQor44GK44GK44Gk44GLLOOCjOOBvw0KK+OBiuOBiuOBpOOBiyzjgarjgaTjgZMNCivjgYrjgYrjgaTjgbws44G+44GZ44G/DQor44GK44GK44Gv44GfLOOChuOBsuOCgw0KK+OBiuOBiuOBvuOBlSzjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgYrjgoQs44Go44KC44KG44GNDQor44GK44KE44G+LOOBi+OCiOOBkw0KK+OBiuOBiyzjgb7jgZXjgbLjgZMNCivjgYrjgYvjgZjjgb4s44GR44KT44GX44KTDQor44GK44GL44GgLOOBoOOBhOOBmeOBkQ0KK+OBiuOBi+OBoCzjgb7jgZXjgbLjgo0NCivjgYrjgYvjgaAs44G+44GV44KEDQor44GK44GL44GgLOOCiuOChw0KK+OBiuOBi+OBoCzjga7jgorjgbLjgo0NCivjgYrjgYvjga/jgZ8s44Gu44G244Gy44KNDQor44GK44GL44G5LOOBl+OBmuOBiw0KK+OBiuOBi+OCguOBqCzjgaHjgYgNCivjgYrjgYvjgoLjgags44Gm44Gk44KEDQor44GK44GL44KC44GoLOOBmOOCheOCkw0KK+OBiuOBjOOCjyzjgabjgovjgbLjgo0NCivjgYrjgYzjgo8s44GC44GN44KJDQor44GK44GP44GgLOOBkeOBhA0KK+OBiuOBj+OBqCzjgb7jgZXjgb/jgaQNCivjgYrjgY/jgarjgYss44GC44GN44GTDQor44GK44GQ44KJLOOBn+OBpOOBig0KK+OBiuOBluOBjSzjgZHjgYTjgZgNCivjgYrjgZXjgaAs44Gf44GE44GZ44GRDQor44GK44GW44KPLOOBn+OCjeOBhg0KK+OBiuOBmOOBvizjgb/jgaTjga7jgbYNCivjgYrjgZjjgb4s44Gf44Gk44KEDQor44GK44Gw44KJLOOBoeOBsuOCjQ0KK+OBi+OBhOOBqOOBhizjga7jgorjgojjgZcNCivjgYvjgY3jgY/jgoks44GV44Go44GXDQor44GL44GN44KC44GoLOOCi+OBvw0KK+OBi+OBjyzjgZ/jgaTjgoQNCivjgYvjgZLjgoTjgb4s44KE44GZ44G+44GVDQor44GL44GY44Gq44GMLOOBsuOBleOBlw0KK+OBi+OBl+OBvizjgojjgZfjga7jgooNCivjgYvjgZ/jgYrjgYss44Gy44Gn44GNDQor44GL44Gf44GO44KKLOOBkeOBhOOBkw0KK+OBi+OBn+OChOOBvizjgaDjgYTjgZnjgZENCivjgYvjgaks44GT44G444GEDQor44GL44Go44GGLOOBleOBoQ0KK+OBi+OBqOOBhizjgZvjgYTjgZcNCivjgYvjgajjgYYs44Gf44KN44GGDQor44GL44Go44GGLOOBruOBtuOBguOBjQ0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYvjgajjgYYs44Gy44KN44G/DQor44GL44Go44GGLOOBvuOBk+OBqA0KK+OBi+OBqOOBhizjgb7jgZXjgZcNCivjgYvjgajjgYYs44KG44KK44GTDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBi+OBquOCguOBqCzjgb7jgZXjgobjgY0NCivjgYvjgarjgoQs44Gm44Gk44KEDQor44GL44Gt44GTLOOBk+OBhuOBmA0KK+OBi+OBreOCguOCiizjgZ/jgaDjgbLjgZUNCivjgYvjgo8s44KG44Gf44GLDQor44GL44KP44GELOOCiOOBl+OBsuOBkw0KK+OBi+OCj+OBhCzjgZ/jgYvjgbLjgo0NCivjgYvjgo/jgYvjgb8s44Gq44Gk44GTDQor44GL44KP44GQ44GhLOOBvuOBsuOBqA0KK+OBi+OCj+OBkOOBoSzjgobjgb/jgZMNCivjgYvjgo/jgZDjgaEs44KK44Gk44GTDQor44GL44KP44GQ44GhLOOCiuOChw0KK+OBi+OCj+OBkOOBoSzjgbXjgb8NCivjgYvjgo/jgZTjgYTjgZcs44KM44GE44GTDQor44GL44KP44GX44G+LOOBmeOBv+OCjA0KK+OBi+OCj+OBqizjgbLjgo3jgZcNCivjgYvjgo/jga7jgbks44Gm44Gk44KEDQor44GL44KT44GuLOOBleOBqOOBlw0KK+OBjeOBj+OBoSzjgo/jgZ/jgosNCivjgY3jgZcs44GT44GG44GE44Gh44KNDQor44GN44GX44KC44GoLOOBguOBjeOBkw0KK+OBjeOBl+OCjSzjgZfjgpPjgoQNCivjgY3jgZ/jgYos44KI44GX44GL44GaDQor44GN44Gf44Gv44G+LOOChg0KK+OBjeOBn+OCgOOCiSzjgojjgZfjgYvjgZoNCivjgY3jganjgZPjgo0s44GT44GG44GYDQor44GN44KA44KJLOOBr+OCi+OBkw0KK+OBjeOCgOOCiSzjgb7jgZXjgYrjgb8NCivjgY3jgoDjgoks44Gh44GL44GTDQor44GN44KK44GC44GRLOOBl+OCheOCk+OBmeOBkQ0KK+OBj+OBjeOCguOBqCzjgajjgZfjgbLjgZMNCivjgY/jgbws44Gy44KN44GNDQor44GP44G844GfLOOBmeOBmeOCgA0KK+OBj+OBvuOBj+OCiSzjgZ/jgYvjgobjgY0NCivjgY/jgb7jgaAs44GU44KNDQor44GP44G+44KC44GoLOOBn+OBkeOBlw0KK+OBj+OCgSzjgobjgY3jgZMNCivjgY/jgonjgoQs44KE44GZ44Gu44G2DQor44GP44KK44KP44GNLOOBruOBnuOBvw0KK+OBj+OCj+OBsOOCiSzjgozjgYTjgZMNCivjgZQs44Gf44GR44GXDQor44GT44GE44GRLOOChOOBmeOBlw0KK+OBk+OBhOOBkSzjgZfjgpMNCivjgZPjgZXjgYss44Gf44GR44Gu44KKDQor44GT44GgLOOCiOOBl+OBruOCig0KK+OBk+OBjCzjgYLjgaTjgZcNCivjgZPjgY/jgbws44GT44GG44GE44GhDQor44GT44GP44KJLOOBvuOBk+OBqA0KK+OBk+OBlCzjgYLjgYTjgZMNCivjgZPjgZXjgY0s44GI44GE44GV44GPDQor44GT44GY44G+LOOBqOOBl+OBjQ0KK+OBk+OBp+OCiSzjgY/jgavjgobjgY0NCivjgZTjgags44G+44KG44G/DQor44GU44GoLOOCiuOBiw0KK+OBlOOBqCzjgobjgZnjgZENCivjgZPjga/jgZ8s44Gy44KN44GC44GNDQor44GT44Gw44KE44GXLOOBvuOBleOBsuOBqA0KK+OBk+OBsOOChOOBlyzjgZPjgbjjgYQNCivjgZPjgb7jgaTjgbDjgoks44G+44GN44GTDQor44GT44G/44KELOOChuOBi+OCig0KK+OBk+OBv+OChOOBvizjgabjgovjgYoNCivjgZPjgoTjgarjgY4s44GV44Go44KLDQor44GT44KE44G+LOOCjOOBiuOBqg0KK+OBk+OCk+OBqSzjgoDjgaTjgb8NCivjgZPjgpPjga4s44GC44KE44GTDQor44GV44GE44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgoLjgoLjgYgNCivjgZXjgYTjgajjgYYs44KK44GIDQor44GV44GE44Go44GGLOOCiuOCheOBmA0KK+OBleOBhOOBqOOBhizjgorjgofjgYbjgZnjgZENCivjgZXjgYvjgYQs44Gy44KN44GTDQor44GV44GL44GuLOOBi+OBmuOBqA0KK+OBleOBi+OCguOBqCzjgaDjgYTjgZnjgZENCivjgZXjgYvjgoLjgags44GR44GE44GTDQor44GV44GP44KJ44GELOOBi+OBmuOBruOCig0KK+OBleOBleOBjSzjgaHjgojjgb8NCivjgZXjgZXjgY0s44Go44GK44KLDQor44GV44GV44GNLOOBquOBu+OBkw0KK+OBleOBleOBjSzjgb/jgbsNCivjgZXjgZXjgY0s44Go44GP44GTDQor44GV44GV44GuLOOBvuOBleOCiOOBlw0KK+OBleOBoOOCguOBqCzjgZfjgpPjgoQNCivjgZXjgajjgYYs44Gf44GL44GTDQor44GV44Go44GGLOOBruOBtuOBiw0KK+OBleOBqOOBhizjga7jgbbjgbsNCivjgZXjgajjgYYs44Gy44KN44Gy44GnDQor44GV44Go44GGLOOBl+OBkuOCiw0KK+OBleOBquOBoCzjgZHjgpPjgYTjgaENCivjgZXjga3jgZfjgZIs44GR44KT44GUDQor44GV44GuLOOBguOBhA0KK+OBl+OBkuOBqOOBvyzjgorjgofjgZnjgZENCivjgZfjga7jga/jgoks44KG44GN44GTDQor44GX44Gw44GL44KPLOOCj+OBn+OCiw0KK+OBl+OBsOOBrizjgaHjgYvjgokNCivjgZfjgb7jgaAs44G+44GV44G144G/DQor44GX44G+44GgLOOCiOOBl+OBkw0KK+OBl+OBv+OBmizjgZ/jgZHjgobjgY0NCivjgZfjgoDjgoks44KG44GN44GKDQor44GX44KA44KJLOOBleOBjQ0KK+OBl+OCguOBi+OCjyzjgoTjgZnjgbLjgo0NCivjgZfjgoLjgbXjgZgs44GC44GL44GODQor44GX44KC44KE44G+LOOBkuOCk+OBkw0KK+OBl+OChyzjgbLjgo3jgY0NCivjgZfjgonjgYQs44KG44Gy44Gh44KNDQor44GX44KJ44GMLOOBn+OBi+OBlw0KK+OBl+OCieOBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgZfjgonjgZks44Go44KC44GTDQor44GX44KPLOOBvuOBleOChuOBjQ0KK+OBl+OCk+OBkSzjgajjgZfjga7jgbYNCivjgZfjgpPjgaks44GL44Ga44Gy44GTDQor44GZ44GM44Gv44KJLOOBleOBqOOBkw0KK+OBmeOBjuOBhuOBoSzjgoLjgorjgbLjgZMNCivjgZnjgY7jgYbjgoks44GR44KT44GY44KNDQor44GZ44GO44GV44KPLOOCiuOChw0KK+OBmeOBjuOBr+OCiSzjgZ/jgZHjgZcNCivjgZnjgY7jgoLjgags44Gf44Gk44KNDQor44GZ44GO44KE44G+LOOBn+OBi+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjga7jgooNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GZ44Ga44GNLOOBqOOCguOChA0KK+OBmeOBmuOBjSzjga7jgbbjgbLjgZMNCivjgZnjgZrjgY0s44Gy44Gn44GL44GaDQor44GZ44Ga44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgorjgYgNCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44GgLOOChOOBmeOBkw0KK+OBmeOBqCzjgb/jgobjgY0NCivjgZnjgb/jgaAs44GR44KT44GE44GhDQor44Gb44GNLOOBquOBhOOBl+OCkw0KK+OBm+OBjSzjgajjgoLjgYvjgZoNCivjgZvjgpPjgaAs44Gy44KN44GL44GaDQor44Gd44KB44G/44KELOOBl+OCh+OBn+OCjeOBhg0KK+OBneOChCzjgaHjgYLjgY0NCivjgaDjgYTjgb7jgoss44KI44GG44GTDQor44Gf44GL44GKLOOBsuOCjeOBruOBtg0KK+OBn+OBi+OBjizjgabjgovjgobjgY0NCivjgZ/jgYvjgZbjgo8s44Gf44Gk44KEDQor44Gf44GL44GbLOOBvuOBleOChuOBjQ0KK+OBn+OBi+OBrSzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44Gf44GE44GZ44GRDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgoQNCivjgZ/jgYvjga/jgZcs44KK44KF44GfDQor44Gf44GL44Gv44GXLOOBruOCiuOBkw0KK+OBn+OBi+OChOOBvizjgb/jgYvjgZMNCivjgZ/jgY3jgYbjgaEs44KK44KT44KEDQor44Gf44GN44GL44KPLOOBpuOBpOOChA0KK+OBn+OBjeOBkOOBoSzjgYLjgY3jgbLjgo0NCivjgZ/jgY3jgZbjgo8s44GC44Gk44Gq44KKDQor44Gf44GN44GW44KPLOOBi+OBmuOBjQ0KK+OBn+OBjeOBluOCjyzjgobjgY3jgZMNCivjgZ/jgY3jgZ8s44Gh44GIDQor44Gf44GQ44GhLOOBsuOCjeOBjQ0KK+OBn+OBkeOBhCzjgYLjgY3jgokNCivjgZ/jgZHjgYbjgaEs44Gv44Gq44GIDQor44Gf44GR44GgLOOBi+OCiA0KK+OBn+OBkeOBr+OCiSzjgaDjgpMNCivjgZ/jgabjga4s44GR44KT44GYDQor44Gf44Gq44GLLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZMNCivjgZ/jgarjgYss44Gf44GL44GXDQor44Gf44Gq44GLLOOBsuOCjeOBquOBig0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44G+44Gq44G2DQor44Gf44Gq44GLLOOChuOBjeOBig0KK+OBn+OBquOBiyzjgorjgYgNCivjgZ/jgarjgYss44GC44GN44KJDQor44Gf44Gq44G5LOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBqyzjgZXjgajjgZcNCivjgZ/jgavjgYvjgo8s44GT44GG44GY44KNDQor44Gf44Gr44GQ44GhLOOBoeOBsuOCjQ0KK+OBn+OBq+OBquOBiyzjgYLjgY3jgokNCivjgZ/jgavjgoLjgags44GR44KT44Gf44KN44GGDQor44Gf44Gs44G+LOOBj+OBq+OBig0KK+OBn+OBsOOBnyzjgZfjgpPjgZQNCivjgZ/jgbDjgZ8s44KG44Gy44Gh44KNDQor44Gf44Gw44GfLOOCiOOBhuOBkw0KK+OBn+OBsOOBnyzjgarjgYrjgZ/jgYsNCivjgZ/jgoDjgoks44Gg44GE44GZ44GRDQor44Gf44KL44GNLOOBmeOBmeOCgA0KK+OBn+OCk+OBmCzjgYLjgY3jgokNCivjgaHjgbAs44Gq44GKDQor44Gh44GwLOOBm+OBhOOBmA0KK+OBpOOBi+OBoCzjgajjgYrjgosNCivjgaTjgY3jgoLjgags44Gq44GK44GTDQor44Gk44GYLOOBiOOCiuOBkw0KK+OBpOOBoCzjgb/jgaTjgYgNCivjgaTjgaHjgoLjgags44GX44KT44GE44Gh44KN44GGDQor44Gk44Gk44G/LOOBoeOBi+OCiA0KK+OBpOOBpOOBvyzjgojjgZfjgaTjgZANCivjgaTjgbzjgZ8s44GR44GkDQor44Gm44GELOOBsuOCjeOBn+OBiw0KK+OBpuOCieOBi+OBqSzjgaHjgZrjgosNCivjgb/jga7jgYbjgoks44G144G/44Gy44GTDQor44Gm44KL44GELOOBmOOCheOCkw0KK+OBqeOBhCzjgZMNCivjgags44KI44GZ44GRDQor44Go44GL44GE44KK44KTLOOBkeOBhOOBn+OCjeOBhg0KK+OBqeOCgeOCkyzjgZPjgYbjgYTjgaENCivjgajjgYvjgYQs44KG44GNDQor44Go44GP44Gq44GMLOOBjeOCiOOBruOCig0KK+OBqOOBj+OChOOBvizjgYvjgZrjgobjgY0NCivjgajjgZfjgb4s44Gy44KN44GL44GaDQor44Gp44GhLOOCiuOBiA0KK+OBqOOBruOBhCzjgYLjgaTjgZcNCivjgajjga7jgoDjgoks44Gy44KN44GXDQor44Go44G/44GfLOOBjeOBv+OBsuOBkw0KK+OBqOOCguOBrizjgZfjgpPjgZQNCivjgajjgorjgYQs44Go44KC44GTDQor44Gq44GM44GELOOBmOOCheOBq+OBoQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgoQNCivjgarjgYvjgYzjgo8s44KP44GL44G/DQor44Gq44GL44GM44KPLOOBv+OBpOOBguOBjQ0KK+OBquOBi+OBluOBqCzjgb7jgarjgbYNCivjgarjgYvjgZfjgb4s44G+44KKDQor44Gq44GM44GfLOOBk+OBhuOBn+OCjeOBhg0KK+OBquOBi+OBrizjgb7jgY3jgZMNCivjgarjgYzjga4s44KG44G/DQor44Gq44GM44GuLOOBiOOBpOOBkw0KK+OBquOBi+OCgOOCiSzjgYvjgYrjgooNCivjgarjgYvjgoDjgoks44GN44G/44Gf44GLDQor44Gq44GL44KA44KJLOOBn+OBhOOBjA0KK+OBquOBi+OCgOOCiSzjgb/jgo/jgZMNCivjgarjgYvjgoLjgoos44Go44KC44KG44GNDQor44Gq44GL44KE44G+LOOBguOBjeOBkw0KK+OBquOCi+OBmyzjgorjgYjjgZMNCivjgarjgpPjgZQs44GP44Gr44GKDQor44Gq44KT44GwLOOBsuOBp+OBi+OBmg0KK+OBquOCk+OBsCzjgb7jgoLjgosNCivjgavjgYTjgb8s44Go44KC44Gu44KKDQor44Gr44GX44GKLOOBhOOBj+OBvg0KK+OBq+OBl+OBiuOBiyzjgojjgZfjga7jgooNCivjgavjgZfjgYrjgYss44Gg44GE44GZ44GRDQor44Gr44GX44GV44GLLOOCguOBqOOBruOBtg0KK+OBq+OBl+OBluOBjSzjgaHjgYvjgZMNCivjgavjgZfjgZbjgo8s44KG44GLDQor44Gr44GX44GuLOOBi+OBqg0KK+OBrOOBvuOBn+OBjSzjgorjgofjgZ8NCivjga3jgY7jgZcs44KK44KHDQor44Gt44KE44G+LOOCiOOBhuOBkw0KK+OBruOBoCzjgZXjgajjgZcNCivjga7jgZDjgaEs44Gf44GR44GXDQor44Gu44GQ44GhLOOBpuOBpOOChA0KK+OBruOBkOOBoSzjgajjgY/jgZMNCivjga7jgZDjgaEs44Go44KC44Gy44KNDQor44Gu44GW44GNLOOBn+OBi+OBlw0KK+OBruOBoCzjgb7jgZXjgY0NCivjga7jgbzjgoos44GR44KTDQor44Gu44KA44KJLOOBk+OBhuOBmA0KK+OBruOCgOOCiSzjgZPjgbjjgYQNCivjga7jgoDjgoks44KI44GYDQor44Gv44GO44KP44KJLOOBl+OCk+OBhOOBoQ0KK+OBr+OBl+OBkOOBoSzjgajjgoLjgZMNCivjga/jgZfjgoLjgags44G+44G/DQor44G+44GNLOOBn+OBj+OBvg0KK+OBr+OBm+OBjOOCjyzjgarjgYrjgY0NCivjga/jgZvjgYzjgo8s44GV44Go44GXDQor44Gv44GgLOOCguOBqOOBjQ0KK+OBr+OBo+OBqOOCiizjgorjgYsNCivjga/jgaPjgajjgoos44Gf44GR44GXDQor44Gw44GwLOOBoeOBguOBjQ0KK+OBsOOBsCzjga7jgorjgZMNCivjgbDjgbAs44KI44GZ44GRDQor44Gw44GwLOOBkeOBhOOBmA0KK+OBr+OBvuOBoCzjgZfjgpPjgY3jgaENCivjga/jgb7jgaAs44Gg44GE44GZ44GRDQor44Gv44G+44GgLOOBsuOCjeOBkw0KK+OBr+OBvuOBoCzjgojjgZfjgbLjgo0NCivjga/jgb7jga4s44GX44KF44Gy44GhDQor44Gv44KE44GXLOOBv+OBleOBkw0KK+OBsuOBkOOBoSzjgZHjgpPjgZgNCivjgbLjgZXjgaTjga0s44GX44KH44Gf44KN44GGDQor44Gy44GX44Gs44G+LOOBqOOBl+OBsuOCjQ0KK+OBs+OCh+OBqSzjgZ/jgYvjgbXjgb8NCivjgbLjgonjgYQs44GL44Ga44GoDQor44Gy44KJ44GK44GLLOOBn+OBkeOBig0KK+OBsuOCieOBi+OCjyzjgYrjgZXjgoANCivjgbLjgonjgZXjgo8s44GC44KE44GTDQor44Gy44KJ44GX44G+LOOChuOBsuOBoQ0KK+OBsuOCieOBnyzjgb7jgobjgZMNCivjgbLjgonjga4s44G+44GV44GNDQor44Gy44KL44G+LOOBkeOCk+OBmA0KK+OBsuOCjeOBmyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgbLjgo3jgZss44KK44GL44GTDQor44Gy44KN44GfLOOBj+OBv+OBkw0KK+OBteOBj+OBhCzjgaDjgYTjgZgNCivjgbXjgY/jgaAs44KK44GVDQor44G144GP44GwLOOBteOBv+OBsuOCjQ0KK+OBteOBj+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgbXjgY/jgoLjgags44GC44GN44Gu44KKDQor44G144GY44GELOOBk+OBjQ0KK+OBteOBmOOBhCzjgb7jgZPjgagNCivjgbXjgZjjgYQs44GC44Gk44GXDQor44G144GY44GI44GgLOOBsuOCjeOBkw0KK+OBteOBmOOBnyzjgb7jgZXjgYvjgZoNCivjgbXjgZjjgZ8s44G/44GNDQor44G144GY44GkLOOBqOOCguOBsuOCjQ0KK+OBteOBmOOBrizjgZ/jgY/jgZgNCivjgbXjgZjjgoLjgags44GY44KNDQor44G144GY44KP44KJLOOBvuOBv+OBkw0KK+OBteOBmOOCj+OCiSzjgoTjgojjgYQNCivjgbXjgZjjgo/jgoks44KG44Gy44GhDQor44G144KL44GL44KPLOOBsuOBp+OBjQ0KK+OBu+OBmOOChyzjgYvjgaTjgojjgZcNCivjgbvjgZfjga4s44Gy44KN44GXDQor44G744Gd44GL44KPLOOBguOBmuOBlQ0KK+OBu+OCiuOBi+OCjyzjgZ/jgYvjgZcNCivjgbvjgpPjgZQs44GL44Gq44KBDQor44G+44GI44GgLOOChuOBv+OBkw0KK+OBvuOBiuOBiyzjgaDjgYTjgZnjgZENCivjgb7jgZnjgbbjgaEs44GR44KTDQor44G+44GZ44G/44GkLOOChuOBjQ0KK+OBvuOBpOOBhCzjgb/jgo8NCivjgb7jgaTjgYos44Gy44GV44GL44GaDQor44G+44Gk44GK44GLLOOBsuOBp+OBi+OBmg0KK+OBvuOBpOOBiuOBiyzjgobjgY3jgZMNCivjgb7jgaTjgaAs44Gf44GR44GXDQor44G+44Gk44Gw44KJLOOBn+OBi+OBuw0KK+OCj+OBn+OBquOBuSzjgZXjgajjgZMNCivjgb7jgaTjgoTjgb4s44Gf44GP44GoDQor44G+44Gk44KE44G+LOOCiuOBqg0KK+OBvuOBpOOChOOBvizjgY/jgb8NCivjgb7jgajjgbAs44KK44KHDQor44G/44GG44KJLOOBvuOBleOBruOCig0KK+OBv+OBpOOBjizjgoDjga3jgajjgoINCivjgb/jgags44Gm44KL44Gy44GTDQor44G/44Gu44GG44KJLOOBl+OCheOBmA0KK+OBv+OChCzjgojjgZfjgYLjgY0NCivjgb/jgoTjgZEs44GC44Gk44GXDQor44G/44KE44GX44GfLOOBpOOBqOOCgA0KK+OBv+OChOOBl+OBnyzjgaTjgojjgZcNCivjgb/jgoTjgZ8s44GN44KH44G444GEDQor44G/44KE44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBv+OChOOCguOBqCzjgbLjgafjga7jgooNCivjgb/jgoTjgoLjgags44GN44KH44GZ44GRDQor44KA44GP44GgLOOBleOBoeOBkw0KK+OCgOOBl+OBiyzjgorjgocNCivjgoDjgags44GC44GN44GTDQor44KA44KJ44GL44G/LOOBoOOBhOOBmeOBkQ0KK+OCgOOCieOBi+OBvyzjgZ/jgZHjgZcNCivjgoDjgonjgYvjgb8s44G/44Gk44Gm44KLDQor44KA44KJ44GL44G/LOOCiOOBl+OBjQ0KK+OCgOOCieOBn+OBqyzjgajjgoLjgbLjgo0NCivjgoDjgonjgb7jgaQs44G+44GV44GNDQor44KA44KJ44KE44G+LOOBn+OBkeOBlw0KK+OCguOBoeOBmuOBjSzjgZfjgoXjgbLjgaENCivjgoLjgorjgZDjgaEs44KE44GZ44Gy44GVDQor44KC44KK44GfLOOBguOBjeOCiQ0KK+OCguOCiuOBsOOChOOBlyzjgbLjgafjgb7jgZUNCivjgoLjgo3jgags44GC44GEDQor44KE44GI44GM44GXLOOChuOBjeOBig0KK+OChOOBiuOChOOBvizjgYLjgY3jgbLjgo0NCivjgoTjgYzjgb8s44Gf44Gk44KEDQor44KE44GOLOOBj+OBq+OBkw0KK+OChOOBkOOCiSzjgb7jgZXjgbLjgo0NCivjgoTjgZnjgZPjgaEs44Go44KC44GC44KKDQor44KE44GZ44GgLOOChuOBjeOBkw0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgoTjgb7jgZDjgaEs44KG44GLDQor44KE44G+44GQ44GhLOOBi+OBquOBkw0KK+OChOOBvuOBoCzjgZ/jgaTjgbLjgo0NCivjgoTjgb7jgaAs44Gy44Gn44Gk44GQDQor44KE44G+44GgLOOCguOBqOOBsuOCjQ0KK+OChOOBvuOBv+OBoSzjgb7jgZXjgZMNCivjgoTjgb7jgoLjgags44KI44GX44GC44GNDQor44KE44G+44KC44GoLOOBqOOBl+OBsuOBkw0KK+OChuOBjSzjgb/jgZXjgagNCivjgobjgb/jgbAs44G+44G/DQor44KG44KJLOOBk+OCgeOBhA0KK+OCiOOBk+OBmeOBiyzjgbLjgo3jgZ/jgaQNCivjgojjgZPjgZ8s44Gy44Gn44KG44GNDQor44KI44GT44KE44G+LOOBkuOCk+OBnw0KK+OCiOOBl+OBiuOBiyzjgojjgZfjgbLjgo0NCivjgojjgZfjgYrjgYss44GR44GE44GYDQor44KI44GX44GW44KPLOOBl+OCk+OBmA0KK+OCiOOBl+OBoCzjga7jgbzjgosNCivjgojjgZfjgaAs44KG44GZ44GRDQor44KI44GX44GgLOOBruOCiuOBkw0KK+OCiOOBl+OBrizjgobjgZnjgZENCivjgojjgZfjgoDjgoks44GX44KH44GX44KTDQor44KK44KFLOOCj+OBhOOBkeOCkw0KK+OCjeOBjyzjgb/jgZrjgbsNCivjgZXjgYvjgoLjgags44GC44GN44KJDQor44KP44Gf44Gq44G5LOOBi+OBpOOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgZjjgoXjgpPjgZMNCivjgo/jgZ/jgarjgbks44Gy44KN44G/DQor44KP44Gf44Gq44G5LOOBvuOBv+OBkw0KK+OCj+OBn+OBquOBuSzjgZHjgYTjgYTjgaENCivjgo/jgonjgbMs44GR44KT44GE44GhDQor44Gu44GW44KPLOOBr+OCi+OBruOBtg0KK+OBj+OBvCzjgYLjgYQNCivjgojjgZfjgoLjgags44GC44KE44GTDQor44KE44G+44KC44GoLOOBquOBiuOBkw0KK+OChOOBvuOCguOBqCzjgYvjgZrjgbLjgo0NCivjgbLjgo3jgZXjgo8s44KG44GG44GTDQor44G/44Gy44KJLOOBv+OBpOOCiw0KK+OBiuOBrizjgYLjgYvjgooNCivjgYrjgaAs44Gf44GL44GXDQor44GK44Gw44Gf44GRLOOBi+OBmuOBvw0KK+OBi+OBqeOBiCzjgobjgYbjgZMNCivjgavjgZfjgaAs44GI44GE44GYDQor44G+44Gk44KC44GoLOOBguOBjeOBkw0KK+OBv+OBjuOBnyzjgZHjgYTjgZMNCivjgb/jgoTjgoLjgoos44KM44GE44GqDQor44KE44G+44GX44GfLOOChuOBteOBkw0KK+OChOOBvuOBoCzjgoYNCivjga7jgorjgajjgb8s44Gf44GL44GTDQor44GE44GR44GgLOOChOOCiOOBhA0KK+OCguOCiuOBnyzjgbLjgo3jga7jgooNCivjgZ/jgZHjgYbjgaEs44KG44GG44GTDQor44G/44GfLOOChOOBmeOBkw0KK+OBhOOBrOOBhCzjgZMNCivjgags44Gf44GL44GXDQor44G+44GN44GuLOOBn+OBi+OBlw0KK+OBquOBpOOCgSzjgorjgYgNCivjgYrjga7jgafjgoks44KK44KH44G444GEDQor44GK44GfLOOBsuOCjeOChuOBjQ0KK+OBhuOCi+OBl+OBleOBkyzjgYvjgZrjgbLjgZMNCivjgZXjgYvjgY3jgbDjgoks44G/44G744GTDQor44GC44GK44GNLOOBguOBhA0KK+OBguOBiuOBjSzjgajjgojjgbLjgo0NCivjgYLjgYrjgY0s44KI44GX44GC44GNDQor44GC44GL44GM44KPLOOBvuOBqg0KK+OBguOBi+OBpOOBiyzjgb/jgYoNCivjgYLjgYvjgbvjgoos44G+44Gp44GLDQor44GC44GN44KE44G+LOOBl+OCk+OBlA0KK+OBguOBleOBhCzjgaHjgYgNCivjgYLjgZXjgYQs44KG44GZ44GRDQor44GC44GV44GK44GLLOOCiuOCh+OBmA0KK+OBguOBleOBrOOBvizjgorjgocNCivjgYLjgZ0s44KI44GX44Gu44KKDQor44GC44Gf44GRLOOBkeOCkw0KK+OBguOBoOOBoSzjga7jgorjgobjgY0NCivjgYLjgbks44G+44KKDQor44GC44G5LOOBl+OCk+OChA0KK+OBguOBuSzjgY/jgavjgbLjgo0NCivjgYLjgonjgYQs44G/44GN44GTDQor44GC44KK44G+LOOCiuOBpOOBkw0KK+OBhOOBhOOBmuOBiyzjgZfjgZLjga7jgooNCivjgYTjgYzjgonjgZcs44GI44GE44GZ44GRDQor44GE44GR44GgLOOBquOBiuOBqA0KK+OBhOOBkeOBoCzjgobjgYbjgZMNCivjgYTjgZHjga/jgZ8s44KC44Go44GTDQor44GE44GW44KPLOOBi+OBmuOBsuOBqA0KK+OBhOOBl+OBhCzjgZHjgYTjgZjjgo0NCivjgYTjgZfjgYvjgo8s44GL44Ga44Gy44KNDQor44GE44GX44GQ44KNLOOBpuOCi+OBvw0KK+OBhOOBl+OBoCzjgZfjgpPjgbrjgYQNCivjgYTjgZfjgaAs44GR44KT44GYDQor44GE44GX44Gw44GXLOOBguOChA0KK+OBhOOBl+OBr+OCiSzjgarjgYrjgbXjgb8NCivjgYTjgZfjgoLjgags44Go44GX44GNDQor44GE44Gd44Gv44GfLOOBl+OCk+OBlA0KK+OBhOOBn+OBvyzjgZ/jgYvjgb/jgaENCivjgYTjgaHjgYvjgo8s44Gu44G244KE44GZDQor44GE44Gj44GX44GNLOOChuOBjeOBiA0KK+OBhOOBpyzjgaTjgojjgZcNCivjgYTjgacs44Go44KC44GTDQor44GE44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBhOOBqOOBhizjgobjgZ/jgYsNCivjgYTjgajjgYYs44GT44Ga44GIDQor44GE44Go44GGLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBqOOBhizjgbLjgo3jgY0NCivjgYTjga7jgYbjgYgs44Gh44Gv44KLDQor44GE44Gu44GG44GILOOChOOBmeOBlw0KK+OBhOOBruOBhuOBiCzjgorjgofjgZMNCivjgYTjga7jgYbjgYgs44GC44GN44Gy44KNDQor44GE44Gu44GP44GhLOOBk+OBhuOBn+OCjeOBhg0KK+OBhOOBvuOBhCzjgZ/jgaTjgYoNCivjgYTjgb7jgY3jgoXjgozjgYQs44Go44GX44KG44GNDQor44GE44G+44Gc44GNLOOBn+OBi+OBsuOCjQ0KK+OBhOOBvuOCgOOCiSzjgb7jgobjgZMNCivjgYTjgb7jgoDjgoks44GC44GV44GTDQor44GE44KP44GELOOBn+OBi+OBguOBjQ0KK+OBhOOCj+OBhCzjgarjgovjgZ/jgYsNCivjgYTjgo/jgZXjgY0s44Gf44Gk44KEDQor44GE44KP44GbLOOBquOCi+OBvw0KK+OBhOOCj+OBnyzjgZPjgYbjgZgNCivjgYTjgo/jgacs44G+44KG44G/DQor44GE44KP44KA44KJLOOBmOOCheOCk+OBuuOBhA0KK+OBhuOBiOOBoCzjgb7jgZXjgYoNCivjgYbjgYjjga4s44Gq44Gk44GTDQor44GG44GI44GuLOOBvuOBhA0KK+OBhuOBi+OBhCzjgb7jgZPjgagNCivjgYbjgZXjgb8s44KI44GZ44GRDQor44GG44Gh44GG44G/LOOBquOBiuOBjQ0KK+OBhuOBoeOChOOBvizjgYvjgaTjgY0NCivjgYbjgonjga/jgoks44Gu44KK44KG44GNDQor44GI44GOLOOCiuOBuw0KK+OBiOOBmOOCiizjgozjgYTjgZMNCivjgYjjga7jgY3jgaks44GP44G/44GTDQor44GI44KC44KKLOOBvuOBmeOBvw0KK+OBiOOCk+OBqSzjgZHjgpPjgYTjgaHjgo0NCivjgYrjgbIs44GV44Go44KLDQor44GK44Gy44GRLOOBn+OBi+OBlw0KK+OBiuOBteOCiSzjgajjgoLjgZMNCivjgYrjgYvjgo8s44GZ44GZ44KADQor44GK44GN44GfLOOBk+OBhuOBmA0KK+OBiuOBleOCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgZ8s44G+44GV44Gy44GoDQor44GK44GfLOOBteOBv+OBig0KK+OBiuOBnyzjgb7jgZXjgbXjgb8NCivjgYrjgZ/jgass44GX44KT44GYDQor44GK44Gf44GrLOOBsuOCjeOBjQ0KK+OBiuOBpOOBiyzjgb7jgorjgZMNCivjgYrjgaTjgYss44KK44GI44GTDQor44GK44Gk44GLLOOBvuOBleOBteOBvw0KK+OBiuOBpOOBjSzjgZ/jgYTjgZgNCivjgYrjgaks44Gf44GL44Gy44GTDQor44GK44Go44KT44G5LOOBsuOCjeOBlw0KK+OBiuOBrizjgojjgorjgZMNCivjgYrjga4s44GE44Gk44GNDQor44GK44Gv44GXLOOBr+OBmOOCgQ0KK+OBiuOBr+OBnyzjgarjgaTjgZMNCivjgYrjgb/jgaEs44Go44KC44GL44GaDQor44GK44Gy44KD44G+LOOBoOOBhOOBmeOBkQ0KK+OBiuOBi+OBluOBjSzjgojjgZfjgZMNCivjgYrjgYvjgZjjgb4s44KG44GN44Gu44KKDQor44GK44GL44GgLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OBoCzjgajjgoLjgZMNCivjgYrjgYvjgoLjgags44GC44GN44Gq44GKDQor44GK44GL44KC44GoLOOCiOOBuOOBhA0KK+OBiuOBjOOCjyzjgZ/jgYvjgYLjgY0NCivjgYrjgY7jgZ8s44KG44GN44Gy44GnDQor44GK44GP44GP44G8LOOCguOBqOOBhA0KK+OBiuOBoeOBguOBhCzjgojjgZfjga7jgooNCivjgYrjgb7jgZ8s44Gg44GE44GY44KNDQor44GL44GVLOOBleOBqOOCiw0KK+OBi+OBl+OCjyzjgZ/jgY/jgb8NCivjgYvjgajjgYYs44Gf44Gk44KEDQor44GL44Go44GGLOOBvuOBleOBsuOBkw0KK+OBi+OBquOBhCzjgbLjgo3jgZcNCivjgYvjgarjgoTjgb4s44Gf44Gk44KEDQor44GL44Gt44GTLOOBguOBjeOCiQ0KK+OBi+OBreOBpOOBjSzjgb/jgbsNCivjgYvjga3jgb7jgoss44G/44GN44Gy44GoDQor44GL44G544GG44GhLOOBn+OBpOOBteOBvw0KK+OBi+OBv+OCgOOCiSzjgb/jgarjgZMNCivjgYvjgb/jgoQs44GL44Ga44Gy44KNDQor44GL44G/44KELOOBn+OBj+OBvg0KK+OBi+OCj+OBhCzjgZ/jgZHjgZcNCivjgYvjgo/jgYQs44Gg44GE44GZ44GRDQor44GL44KP44GL44G/LOOBmOOCheOCkw0KK+OBi+OCj+OBkOOBoSzjgajjgZfjgbXjgb8NCivjgYvjgo/jgZXjgY0s44Gf44GL44GXDQor44GL44KP44GV44GNLOOBqOOCguOBruOCig0KK+OBi+OCj+OBleOBjSzjgZHjgpMNCivjgYvjgo/jgZfjgb4s44KG44GN44GTDQor44GL44KP44GfLOOBoOOBhOOBmeOBkQ0KK+OBi+OCj+OBvuOBnyzjgZPjgbjjgYQNCivjgYvjgo/jgoLjgags44Gf44Gg44GXDQor44GN44GX44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBjeOBl+OCjSzjgaDjgYTjgZnjgZENCivjgY3jgaAs44G144G/44KEDQor44GN44Gf44GK44GLLOOBmOOCheOCk+OChA0KK+OBjeOBn+OBoCzjgYLjgZrjgZUNCivjgY3jgZ/jga4s44Gq44GK44GoDQor44GN44Gf44Gv44KJLOOBi+OBiuOCig0KK+OBjeOBn+OCgOOCiSzjgZXjgaHjgZMNCivjgY3jgZ/jgoLjgags44GT44GG44GE44Gh44KNDQor44GN44KA44KJLOOChuOBv+OBkw0KK+OBjeOCgOOCiSzjgbLjgo3jgZcNCivjgY3jgoLjgags44KJ44GEDQor44GN44KTLOOBv+OCkyDjgaHjgoPjgYYNCivjgpPjgZDjgYTjgYfjgpMs44KE44GZ44Gy44KNDQor44GP44GX44KE44G+LOOBpuOBpOOBguOBjQ0KK+OBj+OBqeOBhizjgbLjgo3jgY0NCivjgY/jganjgYYs44Gf44GL44GKDQor44GP44KB44GG44GhLOOBkeOBhOOBhOOBoQ0KK+OBj+OCieOBl+OBkizjgZPjgZ8NCivjgY/jgonjgaEs44GR44GE44GZ44GRDQor44GP44KJ44Gq44GLLOOBguOBjeOCiOOBlw0KK+OBj+OCiuOBr+OCiSzjgZHjgYTjgZ8NCivjgY/jgo3jgY0s44GI44GE44GZ44GRDQor44GP44KN44GV44GLLOOBmOOCheOCkw0KK+OBj+OCj+OBr+OCiSzjgYYNCivjgobjgYgs44G+44GV44Gy44GTDQor44GT44GE44Ga44G/LOOBneOBhuOBuOOBhA0KK+OBk+OBhuOBmOOBvizjgZ/jgo3jgYYNCivjgZPjgaAs44G/44G7DQor44GT44GuLOOBn+OBkeOBsuOCjQ0KK+OBk+OBjCzjgbXjgb/jgagNCivjgZPjgYws44GR44GE44GTDQor44GT44GP44G244KTLOOCiOOBl+OChuOBjQ0KK+OBk+OBleOBiyzjgaDjgYTjgZnjgZENCivjgZPjgaPjgaYs44GC44GN44KIDQor44Gv44Gf44Gq44GLLOOBqOOCguOBruOCig0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgpPjgZnjgZENCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GT44Gw44KE44GXLOOBk+OBhuOBmA0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gf44GR44GXDQor44GT44G+44GkLOOCiOOBmeOBkQ0KK+OBk+OBvuOBpOOBsOOCiSzjgb7jgZXjgY0NCivjgZPjgoHjgaDjgass44KI44GG44GTDQor44GV44GE44GNLOOBl+OBrg0KK+OBleOBhOOBqOOBhizjgYvjgaTjga7jgooNCivjgZXjgYvjgYQs44GX44KT44KEDQor44GV44GL44GQ44GhLOOCiOOBl+OBsuOBkw0KK+OBleOBi+OBvuOBjSzjgYvjgaTjgobjgY0NCivjgZXjgY/jgb4s44GR44KT44GE44GhDQor44GV44GTLOOBl+OCh+OBsuOBoQ0KK+OBleOBleOBhCzjgZ/jgY/jgZgNCivjgZXjgZXjgYos44Gh44GL44GTDQor44GV44GV44GNLOOBguOBjeOBkw0KK+OBleOBleOBjSzjgb7jgYTjgZMNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOChuOBiw0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZXjgajjgYYs44GC44KT44GqDQor44GV44Go44GGLOOBruOCiuOBguOBjQ0KK+OBleOBqOOBhizjgY3jgb/jgbLjgZMNCivjgZXjgajjgYYs44GX44KT44GZ44GRDQor44GV44Go44GGLOOBteOBvw0KK+OBleOBqOOBhizjgabjgaTjgo0NCivjgZXjga4s44GC44Gk44GXDQor44GV44GuLOOBkeOCk+OBhOOBoQ0KK+OBleOBr+OCiSzjgbLjgo3jgYLjgY0NCivjgZXjgovjgoTjgb4s44Gf44KN44GGDQor44GV44KP44GQ44GhLOOBgeOCkw0KK+OBlyzjgobjgY3jgZMNCivjgZfjgYrjgZbjgY0s44G+44KEDQor44GX44GK44GgLOOBquOBiuOChA0KK+OBl+OBjSzjgYvjgZrjgY3jgb8NCivjgZfjgaAs44Gv44Gq44GTDQor44GX44Gu44Gv44KJLOOBvuOBleOBig0KK+OBl+OBruOBr+OCiSzjgYvjgaTjgbLjgZMNCivjgZfjgbbjgZXjgo8s44GL44Ga44KG44GNDQor44GX44G+44GgLOOBsuOCjeOBsuOBqA0KK+OBl+OBvuOBoCzjgb7jgZXjgY0NCivjgZfjgb7jgaAs44G/44GNDQor44GX44G/44GaLOOBvuOBleOBkw0KK+OBl+OBv+OBmizjgb/jgY0NCivjgZfjgb/jgZos44Gu44G244KG44GNDQor44GX44G/44GaLOOCiuOCh+OBleOBjw0KK+OBl+OBv+OBmizjgb7jgZXjgZMNCivjgZfjgb/jgZos44Gq44GO44GVDQor44GX44KCLOOBn+OBi+OBteOBvw0KK+OBl+OCguOBluOBjSzjgZ/jgYvjgobjgY0NCivjgZfjgoLjgZjjgb4s44GC44KEDQor44GX44KC44GkLOOBiOOBvw0KK+OBl+OCguOBrizjgbLjgafjgYLjgY0NCivjgZfjgoLjgoQs44GI44GE44GYDQor44GX44KJ44GZLOOBvuOBleOCiw0KK+OBmeOBjuOBhuOCiSzjgojjgZfjgbLjgo0NCivjgZnjgY7jgYbjgoks44Gy44Go44GXDQor44GZ44Ga44GNLOOBsuOBleOBlw0KK+OBmeOBmuOBjSzjgojjgZnjgZENCivjgZnjgZrjgY0s44KK44KF44GfDQor44GZ44Ga44GNLOOBv+OBu+OBkw0KK+OBmeOBmuOBjSzjgZHjgpPjgZ/jgo3jgYYNCivjgZnjgags44Gf44Gk44GKDQor44GZ44Gq44GgLOOCj+OBn+OCiw0KK+OBmeOChOOBvizjgajjgoLjgZMNCivjgZvjgYos44GV44Go44GTDQor44Gb44GNLOOBmOOCheOBq+OBoQ0KK+OBm+OBjeOBrSzjgZjjgo0NCivjgZvjgY3jgbAs44GN44Gs44GIDQor44Gb44GoLOOBn+OBpOOBsuOBkw0KK+OBm+OCk+OBlOOBjyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgZvjgpPjgaAs44Gf44GL44Gy44KNDQor44Gb44KT44GwLOOBguOBjeOBsuOBkw0KK+OBneOCgeOChCzjgojjgorjgZMNCivjgZ/jgYvjgY4s44GX44KT44GUDQor44Gf44GL44GOLOOBvuOBleOBruOBtg0KK+OBn+OBi+OBjizjgajjgZfjgo0NCivjgZ/jgYvjgZss44Go44KC44G/DQor44Gf44GL44GgLOOBiOOCiuOBkw0KK+OBn+OBi+OBr+OBlyzjgobjgZnjgZENCivjgZ/jgYvjga/jgZcs44KI44GX44Gu44KKDQor44Gf44GL44Gv44GXLOOCiOOBl+OBjQ0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gf44GL44Gv44GXLOOBoOOBhOOBmeOBkQ0KK+OBn+OBi+OBv+OBluOCjyzjgYvjgYrjgooNCivjgZ/jgY3jgZbjgo8s44GT44G444GEDQor44Gf44GQ44GhLOOBv+OBpOOCiw0KK+OBn+OBkeOBl+OBnyzjgb7jgY0NCivjgZ/jgZHjgaAs44GR44GE44GYDQor44Gf44GR44GgLOOBruOCiuOBsuOBlQ0KK+OBn+OBkeOBoCzjgobjgYbjgZMNCivjgZ/jgZHjgarjgYss44G/44Ga44G7DQor44Gf44GR44Gv44KJLOOBkeOBhOOBlA0KK+OBn+OBkeOChOOBvizjgbLjgafjgY0NCivjgZ/jgZgs44GC44GEDQor44Gf44GgLOOBruOCiuOChuOBjQ0KK+OBoOOBpizjgojjgbLjgaHjgo0NCivjgZ/jgarjgYss44KI44GZ44GRDQor44Gf44Gq44GLLOOChOOBmeOChuOBjQ0KK+OBn+OBquOBiyzjgojjgZfjga7jgooNCivjgZ/jgarjgYss44Gf44GL44Gu44KKDQor44Gf44Gq44GLLOOBvuOBleOBqA0KK+OBn+OBq+OBkOOBoSzjgb/jgYsNCivjgZ/jgavjgZPjgZcs44KE44GZ44Gy44KNDQor44Gf44Gr44GuLOOBk+OBmuOBiA0KK+OBn+OBtuOBjSzjgZHjgYTjgZ4NCivjgZ/jgbbjgaEs44GN44KH44GTDQor44Gf44G+44GK44GNLOOBkeOCkw0KK+OBn+OBvuOBjOOCjyzjgYvjgZrjgb4NCivjgZ/jgoDjgoks44KG44GG44GYDQor44Gf44KB44Gu44KKLOOBk+OBhuOBmA0KK+OBn+OCk+OBrizjgZ/jgYvjgbLjgo0NCivjgZ/jgpPjgbws44G/44GN44GTDQor44Gh44GgLOOBv+OBpOOCiw0KK+OBoeOBreOCkyzjgb/jgYsNCivjgaTjgYzjga3jgZbjgo8s44KI44GX44Gf44GLDQor44Gk44GL44Gv44KJLOOBj+OBv+OBkw0KK+OBpOOBoeOChCzjgaHjgYvjgbXjgb8NCivjgaTjgaHjgoQs44Gu44KK44Gy44GTDQor44Gk44Gh44KELOOBn+OBj+OBquOBjA0KK+OBpOOBmuOBjSzjgZ/jgYvjgobjgY0NCivjgaTjgZrjgonjga/jgoks44Gf44GL44KG44GNDQor44Gk44Gt44KI44GXLOOBn+OBi+OBruOCig0KK+OBpOOBvOOBhuOBoSzjgZHjgpPjgZ/jgo3jgYYNCivjgaTjgovjgZfjgb4s44Gf44GL44GC44GNDQor44Gn44GQ44GhLOOBn+OCjeOBhg0KK+OBpuOBmuOBiyzjgojjgZfjgbLjgagNCivjgabjgonjgYvjgo8s44G+44GV44KI44GXDQor44Gm44KJ44GQ44GhLOOBqOOCguOBkw0KK+OBpuOCieOBl+OBvizjgZHjgYTjgZMNCivjgabjgonjgaAs44KI44G444GEDQor44Go44GM44GXLOOBiOOCig0KK+OBqOOBj+OCgOOCiSzjgYLjgY3jgbLjgZMNCivjgajjgZbjgo8s44GL44Gk44Gy44GVDQor44Go44Gz44GK44GLLOOChuOBjQ0KK+OBqOOBvuOCiuOBrizjga7jgbbjgobjgY0NCivjgajjgb/jgYQs44G/44Ga44G7DQor44Go44G/44GW44KPLOOBvuOChuOBvw0KK+OBqOOBv+OBnyzjgojjgZnjgZENCivjgajjgb/jgZ8s44KE44GZ44KG44GNDQor44Go44G/44Gq44GMLOOBvuOBvw0KK+OBqOOCiOOBoCzjgZXjgaHjgZMNCivjgajjgonjgZ/jgass44Gm44KL44Gu44G2DQor44Gq44GE44Go44GGLOOBguOBjeOBteOBvw0KK+OBquOBjOOBhCzjgorjgYgNCivjgarjgYzjgYQs44Gf44GP44KEDQor44Gq44GL44GE44GRLOOBv+OBpOOBruOBtg0KK+OBquOBi+OBhuOBiCzjgZ/jgYvjgZcNCivjgarjgYzjgYos44KA44Gt44Gu44KKDQor44Gq44GL44GT44GYLOOBkeOCk+OBmA0KK+OBquOBjOOBleOBiyzjgojjgZfjgY0NCivjgarjgYvjgZjjgb4s44Gg44GE44GZ44GRDQor44Gq44GL44GY44G+LOOBk+OBhuOBhOOBoQ0KK+OBquOBjOOBnyzjgobjgYbjgZMNCivjgarjgYzjgZ8s44Gf44GR44GXDQor44Gq44GM44GfLOOBmOOCheOCk+OBkw0KK+OBquOBi+OBpOOCiyzjgZjjgoXjgpPjgZMNCivjgarjgYzjga4s44GC44KEDQor44Gq44GL44KA44KJLOOBn+OBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZ8NCivjgarjgYvjgoDjgoks44KI44GG44GTDQor44Gq44GL44KA44KJLOOBneOBhuOBn+OCjeOBhg0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgZMNCivjgarjgYvjgoDjgoks44Gf44GL44GKDQor44Gq44GL44KA44KJLOOBoeOBiA0KK+OBquOBpOOBr+OCiSzjgZjjgoXjgpPjgZMNCivjgarjgorjgZXjgaAs44GX44KT44GUDQor44Gq44KT44G2LOOBoOOBhOOBmeOBkQ0KK+OBq+OBi+OBhOOBqSzjgorjgofjgZMNCivjgavjgZcs44GV44KE44GLDQor44Gr44GXLOOBk+OBhuOBmA0KK+OBq+OBl+OBiizjgobjgY3jgZMNCivjgavjgZfjgYvjgo8s44G+44KKDQor44Gr44GX44GP44KJLOOBi+OBpOOChA0KK+OBq+OBl+OBluOCjyzjgYLjgaTjgbLjgZUNCivjgavjgZfjgZbjgo8s44Gq44GK44GNDQor44Gr44GX44GgLOOBsuOCjeOBguOBjQ0KK+OBq+OBl+OBoCzjgoTjgZnjgYoNCivjgavjgZfjgoTjgb4s44GV44Go44KLDQor44Gs44Gu44KELOOBsuOCjeOBlw0KK+OBrOOBvuOBluOBjSzjgY/jgb/jgZMNCivjgazjgb7jgZ8s44Gy44KN44GXDQor44Gu44Gp44G/LOOChuOBiw0KK+OBruOBvyzjgb7jgZXjgYLjgY0NCivjga7jgZDjgaEs44GI44GE44GYDQor44Gu44GY44G+LOOBleOChOOBiw0KK+OBruOBmOOCiizjgZfjgpPjgZnjgZENCivjga7jgaAs44Gu44G244KG44GNDQor44Gu44GgLOOBqOOCguOChA0KK+OBruOCgOOCiSzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjga7jgoDjgoks44Gq44GK44KG44GNDQor44Gu44KA44KJLOOBqOOBl+OChA0KK+OBr+OBk+OBl+OBvizjgZHjgpPjgZgNCivjga/jgZfjgoLjgags44GV44Go44GTDQor44Gv44GX44KC44GoLOOBhOOBleOCgA0KK+OBr+OBm+OBjOOCjyzjgYjjgorjgaoNCivjga/jgZ/jgZHjgoTjgb4s44GX44KT44GE44GhDQor44Gv44Gj44GfLOOCiuOCh+OBuOOBhOOBnw0KK+OBr+OBo+OBqOOCiizjgbLjgZXjga7jgooNCivjga/jgarjgYQs44GX44GS44GKDQor44Gv44Gq44GgLOOChuOBjeOBig0KK+OBr+OBvuOBkOOBoSzjgZ/jgZHjgZcNCivjga/jgb7jgaAs44KK44GqDQor44Gv44G+44GgLOOBvuOBleOBjQ0KK+OBr+OBvuOBrizjgYvjgZrjgojjgZcNCivjga/jgoTjgYvjgo8s44Gm44KL44GC44GNDQor44Gv44KE44GXLOOBqOOBl+OChuOBjQ0KK+OBr+OChOOBlyzjgb/jgY3jgZMNCivjga/jgoTjgZcs44KG44GN44GTDQor44Gv44KJLOOBl+OCk+OBuOOBhA0KK+OBr+OCiSzjgYvjgZrjgYgNCivjga/jgonjgaAs44GL44Ga44GKDQor44Gy44GI44GL44GfLOOCj+OBn+OCiw0KK+OBsuOBjOOBlSzjgorjgocNCivjgbLjgYzjgb8s44GR44GEDQor44Gy44GN44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBsuOBoCzjgobjgbXjgZMNCivjgbLjgaDjgYss44KG44GyDQor44Gy44Gn44GX44G+LOOBleOBqOOBvw0KK+OBleOBi+OBhCzjgZ/jgZHjga/jgosNCivjgbLjgonjgYQs44GR44GE44GZ44GRDQor44Gy44KJ44GE44KPLOOBkeOCkw0KK+OBsuOCieOBnyzjgb7jgarjgb8NCivjgbLjgonjgbDjgoTjgZcs44GR44GE44GTDQor44Gy44KN44GbLOOBn+OBi+OChuOBjQ0KK+OBteOBi+OBiizjgobjgY0NCivjgbXjgY/jgYQs44Gm44Gk44GKDQor44G144GP44GW44GNLOOBqOOCguOBquOBjA0KK+OBteOBj+OBoCzjgZHjgpPjgZ/jgo3jgYYNCivjgbXjgY/jgaAs44Gh44GL44GTDQor44G144GP44GgLOOChOOBmeOBguOBjQ0KK+OBteOBj+OBoCzjgb/jgYgNCivjgbXjgY/jga/jgoks44GV44Go44GTDQor44G144GP44KA44KNLOOBguOBpOOBlw0KK+OBteOBmOOBhuOCiSzjgZvjgYTjgZgNCivjgbXjgZjjgYrjgYss44Gm44Gk44GYDQor44G144GY44GK44GLLOOBn+OBi+OBlw0KK+OBteOBmOOBnyzjgZfjgpMNCivjgbXjgZjjgoLjgags44G/44GN44GTDQor44G144GY44KC44GoLOOBmOOCheOCk+OChA0KK+OBteOBmOOCj+OCiSzjga/jgoTjgagNCivjgbXjgZ/jgoDjgows44GI44Gk44GTDQor44G144KL44GV44KPLOOBsuOBp+OBjQ0KK+OBteOCi+OBnyzjgarjgYrjgobjgY0NCivjgbXjgovjgoQs44GC44KE44GTDQor44G744GT44KJLOOBv+OChuOBjQ0KK+OBu+OBl+OBrizjgbLjgafjgbLjgZMNCivjgbvjgZfjga4s44G/44KM44GEDQor44G744Gd44GuLOOCiOOBuOOBhA0KK+OBu+OCiizjgoTjgZnjgbLjgo0NCivjgbvjgorjgYbjgaEs44G+44GV44KLDQor44G744KK44GK44GLLOOBmOOCheOBq+OBoQ0KK+OBu+OCiuOBkOOBoSzjgobjgY3jgZMNCivjgbvjgpPjgb4s44Gy44KN44G144G/DQor44G+44GI44GL44KPLOOBguOChA0KK+OBvuOBiOOBmOOBvizjgZPjgYbjgYTjgaHjgo0NCivjgb7jgYjjgaAs44G+44KEDQor44G+44GI44Gv44KJLOOBl+OBkuOCiw0KK+OBvuOBjSzjgobjgYvjgooNCivjgb7jgY3jga4s44GI44KK44GTDQor44G+44GZ44GELOOBguOBjeOBsuOCjQ0KK+OBvuOBmeOBoCzjgYTjgZXjgYoNCivjgb7jgZnjgaAs44GE44Gh44KN44GGDQor44G+44Gk44GELOOBsuOBleOBig0KK+OBj+OBvuOBjOOBhCzjgbLjgafjgYoNCivjgYvjga3jgZMs44G+44Gk44GKDQor44GT44G/44KELOOBmeOBv+OBig0KK+OBk+OBjOOBhOOBqCzjgZ/jgoLjgaQNCivjgYvjgpPjgbDjgoTjgZcs44Gy44KN44G/44GhDQor44GN44Gu44GX44GfLOOBqOOBlw0KK+OBjeOBj+OBoSzjgYjjgaTjgYoNCivjgZPjgb7jgbAs44KE44GZ44GKDQor44GT44GP44G2LOOBmOOCheOBq+OBoQ0KK+OBk+OBsOOChOOBlyzjgYTjgZXjgYoNCivjgZPjgbDjgoTjgZcs44Go44KC44KG44GNDQor44GN44Gk44Gf44GLLOOBk+OBhuOBmA0KK+OBvuOBpOOBiizjgajjgZfjgbLjgo0NCivjgYvjgo/jgYQs44Go44GX44Gy44GTDQor44GP44KK44Gv44KJLOOBl+OBkuOBruOCig0KK+OBi+OBqeOBrizjgZ/jgZHjgYoNCivjgYvjgb/jgY/jgbws44Gy44KN44GXDQor44GL44KP44GQ44GhLOOBjeOCiOOBlw0KK+OBi+OBvuOBnyzjgb7jgZXjgb/jgaQNCivjgYvjgpPjgaAs44GL44KT44GYDQor44GL44KT44GgLOOBi+OBpOOBsuOBkw0KK+OBk+OBl+OCgOOCiSzjgorjgofjgZgNCivjgb7jgaTjgYos44Gu44G844KLDQor44GP44GV44GNLOOBv+OBoeOBkw0KK+OBi+OCguOBr+OCiSzjgabjgovjgb7jgZUNCivjgYvjgZXjgZjjgb4s44Gv44KL44Gy44GTDQor44G+44Gk44GNLOOBv+OBruOCiw0KK+OBi+OBv+OBj+OCiSzjgobjgZ/jgYsNCivjgY/jgorjga/jgoks44G/44Gk44GTDQor44Gq44GL44GhLOOBsuOCjeOBlw0KK+OBi+OBjOOCjyzjgabjgovjgYoNCivjgZPjgbDjgoTjgZcs44Gh44KF44GR44KTDQor44GL44KT44GuLOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOBl+OBnyzjgb7jgarjgbYNCivjgYvjgZfjgo/jgaAs44Go44GK44KLDQor44GT44KT44GuLOOBsuOCjeOCiOOBlw0KK+OBk+OBmeOBjizjgZHjgpPjgZgNCivjgZPjgoLjgoos44Gf44GL44GXDQor44GL44KP44GuLOOBvuOBleOCguOBqA0KK+OBjeOBn+OCgOOCiSzjgYvjgZrjgb8NCivjgYvjgZjjgb4s44G/44Gk44GKDQor44GL44Go44GGLOOBqOOBl+OChuOBjQ0KK+OBk+OChOOBrizjgY3jgojjgZcNCivjgYvjgaTjgb7jgZ8s44GY44KF44KT44GYDQor44GP44KP44GgLOOBvuOBleOBteOBvw0KK+OBk+OBn+OBqyzjgajjgZfjgb7jgZUNCivjgYvjgZjjgYbjgaEs44KI44GX44GL44GaDQor44GT44KT44GpLOOBpOOBreOBig0KK+OBk+OCk+OBqSzjga7jgbbjgYLjgY0NCivjgb7jgaTjgarjgb8s44GN44KI44GXDQor44GL44GM44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBi+OBreOBkyzjgZvjgYTjgZgNCivjgZPjgoTjgb4s44Go44GX44GKDQor44GN44Gk44GL44KPLOOBteOBv+OBig0KK+OBi+OBl+OBj+OCiSzjgYrjgZXjgoANCivjgY/jgo3jgY0s44GL44Ga44GKDQor44GT44GE44Ga44G/LOOCiOOBl+OBvw0KK+OBj+OBnCzjgajjgZfjgo0NCivjgYvjgo/jgYvjgb8s44KG44GN44GKDQor44GL44G/44GY44KHLOOBn+OBkeOBsuOBkw0KK+OBjeOCgOOCiSzjgabjgaTjgoQNCivjgb7jgaTjga4s44Gy44Gn44GKDQor44GN44GP44GfLOOChuOBjeOBig0KK+OBj+OBvuOBoCzjgajjgZfjgYvjgZoNCivjgY/jgavjga/jgoks44GR44GE44GYDQor44GT44GY44G+LOOChOOBvuOBqA0KK+OBj+OCiuOBr+OCiSzjga7jgbbjgZMNCivjgojjga3jgY/jgoks44Gf44GL44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBlyzjgZfjgpPjgoQNCivjgZPjgZjjgofjgYYs44G+44GV44Gv44KLDQor44GN44KA44KJLOOChOOBmeOBsuOBkw0KK+OBk+OBsOOChOOBlyzjgoTjgZnjga/jgosNCivjgZPjgpPjgaks44GT44Gb44GEDQor44GL44KP44GELOOBi+OCk+OBmA0KK+OBj+OBvuOBr+OCiSzjgojjgZfjgobjgY0NCivjgY3jgZss44GX44KF44G444GEDQor44GL44GX44GP44G+LOOBv+OBjeOBig0KK+OBi+OBkyzjgZHjgYTjgZMNCivjgYTjgZfjgYzjgYQs44GV44Gh44GKDQor44GL44G/44GQ44GhLOOBqOOBiuOCiw0KK+OBj+OCguOBoCzjgYvjgZrjgbLjgZUNCivjgZPjgb7jgaQs44GK44GV44KADQor44GL44Gt44GgLOOBvuOBleOBguOBjQ0KK+OBjeOBj+OBoSzjgZfjgoXjgavjgaENCivjgZPjgZ/jgass44KG44Gf44GLDQor44GT44Gw44KE44GXLOOBvuOBleOBruOCig0KK+OBi+OCj+OBkOOBoSzjgojjgZfjgZ/jgb8NCivjgYvjga3jgZMs44Gk44Gt44GKDQor44GL44KCLOOBpuOBpOOBig0KK+OBi+OCj+OCgOOCiSzjgZXjgarjgYgNCivjgY/jgb7jga4s44GY44KF44Gr44GhDQor44GT44Gw44KE44GXLOOBvuOBleOBguOBjQ0KK+OBjeOCgOOCiSzjga7jgbbjgYvjgZoNCivjgY3jgZfjgoLjgags44Go44GX44GL44GkDQor44GN44KA44KJLOOBkeOCk+OBmA0KK+OBi+OBv+OBkOOBoSzjgb/jgaHjgoTjgZkNCivjgY3jgoDjgoks44GR44KT44GeDQor44GT44Gw44KE44GXLOOBmOOCheOBq+OBoQ0KK+OBi+OBqeOBj+OCiSzjgojjgZfjgYLjgY0NCivjgY3jgZ/jgoDjgoks44Gf44Gg44GXDQor44GL44Gk44GNLOOBqOOBl+OBig0KK+OBi+OCk+OBluOBjSzjgZfjgofjgbLjgaENCivjgYvjgZ/jgY7jgoos44G/44Gk44GKDQor44GT44Gw44KE44GXLOOCiOOBl+OBsuOBlQ0KK+OBk+OBvuOBpOOBluOBjSzjgojjgZfjgobjgY0NCivjgY3jgZ8s44KE44GZ44GoDQor44GL44Gk44Gv44KJLOOCiOOBl+OBig0KK+OBk+OBkOOCjCzjgbLjgo3jgYLjgY0NCivjgZPjgZjjgb4s44KI44GX44GC44GNDQor44GT44KB44GgLOOBiOOBhOOBmA0KK+OBk+OBq+OBlyzjgb7jgZXjgobjgY0NCivjgY/jgo/jga/jgoks44KI44GX44GIDQor44GT44KE44G+LOOBi+OBmuOBsuOBlQ0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgbLjgZUNCivjgYvjgZjjgoLjgags44GN44GX44GKDQor44GP44G+44GW44KPLOOBpuOBpOOChA0KK+OBjeOCgOOCiSzjgb7jgZXjga/jgaENCivjgZPjgbDjgZfjgYzjgo8s44GX44KF44KT44GYDQor44GL44G/44KELOOBi+OBquOBkw0KK+OBvuOBpOOCguOBqCzjgbLjgafjgogNCivjgZPjga/jgZcs44Gy44GV44GXDQor44GT44Gg44G+LOOBvuOBleOBruOBtg0KK+OBi+OCj+OBi+OBvyzjgYTjgY/jgb8NCivjgb7jgaTjgoLjgags44Gu44G244GTDQor44GL44GE44GpLOOBk+OBng0KK+OBjeOCgOOCiSzjgbLjgo3jga7jgooNCivjgY/jgZQs44GX44KFDQor44G+44Gk44KC44GoLOOBguOBjeOBiA0KK+OBvuOBpOOChOOBvizjgYLjgaTjgZcNCivjgb7jgovjgoTjgb4s44Gy44GV44GXDQor44GT44GuLOOBkeOCk+OBhOOBoQ0KK+OBj+OCjeOBjSzjgoTjgZnjgb7jgZUNCivjgZPjgb/jgoQs44Gy44Gn44GC44GNDQor44GN44KA44KJLOOBruOCiuOChuOBjQ0KK+OBjeOBrizjgojjgZfjgYLjgY0NCivjgZPjgb7jgaQs44GL44Gk44G/DQor44GL44Gt44Gh44GLLOOBqOOBl+OBig0KK+OBi+OBquOBn+OBqyzjgbLjgajjgZcNCivjgZPjgbDjgoTjgZcs44KGDQor44GN44Gf44KE44G+LOOBl+OCh+OBmA0KK+OBi+OBmCzjgYjjgYTjgZ4NCivjgYvjgo/jgZfjgb4s44Gc44Gr44GhDQor44GN44KA44KJLOOBi+OBmuOBvw0KK+OBk+OBsOOCiSzjga/jgovjgYoNCivjgY3jgZ/jgYzjgo8s44G/44G7DQor44G+44KL44KE44G+LOOBqOOBl+OBig0KK+OBi+OCguOCkyzjgY3jgojjgb8NCivjgb/jgYbjgoks44KI44GX44KG44GNDQor44G/44GX44G+LOOCiuOCh+OBmeOBkQ0KK+OBv+OBmeOBjizjgZXjgaHjgZMNCivjgb/jgZrjgZ8s44GN44KI44GXDQor44G/44Ga44KC44GoLOOBmOOCheOCkw0KK+OBv+OBnuOBkOOBoSzjgorjgofjgZMNCivjgb/jgZrjgYss44Gq44GK44KG44GNDQor44G/44Gq44G/LOOBv+OBgg0KK+OBv+OBquOBv+OBn+OBqyzjgobjgY0NCivjgb/jga3jgZ8s44KK44KH44GZ44GRDQor44G/44KE44GELOOCiuOBiA0KK+OBv+OChOOBiuOBiyzjgojjgZfjgo0NCivjgb/jgoTjgZbjgY0s44GL44Gq44GTDQor44G/44KE44GW44GNLOOBsuOCjeOBkw0KK+OBv+OChOOBr+OCiSzjgarjgYrjgY0NCivjgb/jgojjgZcs44G+44GN44GTDQor44KA44KJ44GL44G/LOOBn+OBj+OBvg0KK+OCgOOCieOBjSzjgarjgYrjgZ/jgYsNCivjgoDjgonjgZ8s44Gq44G744GTDQor44KA44KJ44GfLOOBvuOBleOBlw0KK+OCgOOCieOBnyzjgZ/jgYvjgZcNCivjgoDjgonjgoTjgb4s44GL44Gk44Gy44KNDQor44KC44Go44GuLOOBqOOCguOBguOBjQ0KK+OCguOCiizjgZjjgoXjgpPjgZMNCivjgoLjgoos44Gq44KL44GNDQor44KC44KK44GfLOOBvuOBleOBkw0KK+OCguOCiuOBnyzjgobjgZ/jgYsNCivjgoLjgorjgoTjgb4s44Gf44GR44KLDQor44KC44KK44KE44G+LOOBvuOBleOBqA0KK+OChOOBluOCjyzjgobjgY3jgZMNCivjgoTjgZjjgb4s44GT44GfDQor44KE44Gq44GO44GgLOOBkeOCk+OCjQ0KK+OChOOBvuOBjOOBnyzjgb7jgobjgb8NCivjgoTjgb7jgYvjgo8s44GY44KF44KKDQor44KE44G+44GQ44GhLOOBn+OBpOOBsuOBkw0KK+OChOOBvuOBkOOBoSzjgYLjgY3jga7jgbYNCivjgoTjgb7jgZDjgaEs44G+44GV44Gy44GnDQor44KE44G+44GV44GNLOOBguOBpOOBkw0KK+OChOOBvuOBluOBjSzjgZHjgpPjgZgNCivjgoTjgb7jgZfjgZ8s44G/44Gh44KEDQor44KE44G+44GgLOOCgeOBkOOBvw0KK+OChOOBvuOBoCzjgb7jgZXjgZMNCivjgoTjgb7jgaAs44KE44GZ44G+44GVDQor44KE44G+44Gq44GLLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBrSzjgarjgYoNCivjgoTjgb7jgoLjgags44Gy44Gn44Go44KCDQor44KE44G+44KC44GoLOOCiuOBiA0KK+OChOOBvuOCguOBqCzjgYLjgaTjgZcNCivjgobjgYvjgo8s44GL44GK44KKDQor44KG44GWLOOBi+OBmuOBkw0KK+OChuOBn+OBqyzjgajjgoLjgbLjgo0NCivjgobjgZ/jgass44GI44KK44GTDQor44KI44GULOOBkeOBhOOBhOOBoQ0KK+OCiOOBk+OBvOOCiizjgZfjgpPjgoQNCivjgojjgZfjgYrjgYss44GV44Go44G/DQor44KI44GX44GL44KPLOOChuOBjQ0KK+OCiOOBl+OBoCzjgZ/jgaDjgobjgY0NCivjgojjgZfjgaAs44G+44GV44GNDQor44KI44GX44KC44GoLOOBkeOCkw0KK+OCiOOBreOBoCzjgZfjgoXjgY/jgbsNCivjgoks44KI44GX44GC44GNDQor44KP44GL44GV44KELOOBkeOCk+OBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgZfjgoXjgpMNCivjgo/jgZ/jgarjgbks44G+44GV44GXDQor44G/44Gk44KE44G+LOOBl+OCk+OBlA0KK+OBsuOCieOBiuOBiyzjgoTjgZnjga7jgooNCivjgYvjgpPjga4s44GL44Ga44Gy44KNDQor44KP44GTLOOBsuOBp+OChuOBjQ0KK+OBguOBiuOBjSzjgZXjgajjgZcNCivjgYLjgYvjgYos44GC44GN44GTDQor44GC44GL44GOLOOCiuOBiA0KK+OBguOBi+OBlyzjgaDjgYTjgZnjgZENCivjgYLjgYvjgaTjgYss44Go44KC44Gu44KKDQor44GC44GL44Gv44GtLOOBvuOBleOBn+OBkQ0KK+OBguOBi+OBu+OCiizjgZ/jgaDjgYLjgY0NCivjgYLjgY3jgoLjgags44Gy44KN44G/DQor44GC44GN44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBguOBleOBhCzjgY3jgofjgZMNCivjgYLjgZXjga4s44KC44Go44GKDQor44GC44GV44GyLOOChuOBv+OBkw0KK+OBguOBleOBuSzjgajjgoLjgZMNCivjgYLjga/jgozjgpMs44GX44Ga44GLDQor44GC44G5LOOBmOOCheOBq+OBoeOCjQ0KK+OBguOBuSzjgoTjgZnjgbLjgo0NCivjgYLjgbks44G+44GV44G/DQor44GC44G+44GuLOOCiuOBlQ0KK+OBguOCgeOCguOCiizjgYvjgaTjgagNCivjgYLjgonjgYQs44KK44GIDQor44GC44KJ44GELOOCj+OBn+OCiw0KK+OBguOCieOBhCzjgb7jgZXjga7jgooNCivjgYLjgonjgZ/jgass44KK44KH44G444GEDQor44GC44KK44Gq44GLLOOBsuOCjeOBkw0KK+OBhOOBhOOBlCzjgoTjgZnjgobjgY0NCivjgYTjgYTjgaAs44Gy44KN44GC44GNDQor44GE44GR44GgLOOChuOBhuOBkw0KK+OBhOOBk+OBjCzjgaHjgYgNCivjgYTjgZfjgYQs44G/44G7DQor44GE44GX44GK44GLLOOBvuOBleOBi+OBmg0KK+OBhOOBl+OBluOBiyzjgoTjgZnjgbLjgo0NCivjgYTjgZfjgZjjgb4s44GC44GV44GTDQor44GE44GX44GgLOOBi+OCiA0KK+OBhOOBl+OBqSzjgaDjgYTjgZnjgZENCivjgYTjgZfjga4s44Go44GX44Gy44GTDQor44GE44GX44G+44G244GXLOOBi+OBiuOCiw0KK+OBhOOBm+OCiizjgbLjgo3jgbXjgb8NCivjgYTjgZ3jgbks44G+44GV44G/DQor44GE44Gf44GrLOOBguOCiuOBlQ0KK+OBhOOBmuOBrizjgbLjgafjgYoNCivjgYTjgafjga4s44GI44Gk44GTDQor44GE44Go44GGLOOBi+OBpOOBsuOCjQ0KK+OBhOOBqOOBhizjgZXjgaTjgY0NCivjgYTjgajjgYYs44Go44KC44Gy44KNDQor44GE44Go44GGLOOBruOCiuOBguOBjQ0KK+OBhOOBqOOBhizjgb7jgobjgb8NCivjgYTjgajjgYYs44KI44GX44Gf44GLDQor44GE44Go44KE44G+LOOBiOOBv+OBkw0KK+OBhOOBqizjgYvjgYrjgooNCivjgYTjgarjgZXjgY0s44Gf44GL44GXDQor44GE44Gq44GwLOOChuOBjeOBiA0KK+OBhOOBquOBsCzjgb/jgYoNCivjgYTjga7jgYbjgYgs44KG44GEDQor44GE44Gu44GG44GILOOChuOBjeOBkw0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgYoNCivjgYTjgbks44GC44GN44Gy44GoDQor44GE44G+44GELOOBiuOBqOOBsuOBkw0KK+OBhOOBvuOBiuOBiyzjga/jgovjgYsNCivjgYTjgb7jgoDjgoks44Gf44GL44GC44GNDQor44GE44KP44GfLOOBv+OBpOOBsuOCjQ0KK+OBhOOCj+OBnyzjgojjgbjjgYQNCivjgYTjgo/jgZ8s44KI44GG44GTDQor44GE44KP44G/LOOBv+OBpOOBn+OBiw0KK+OBhOOCj+OCguOBqCzjgojjgZfjgYLjgY0NCivjgYbjgYjjgaAs44KG44GL44KKDQor44GG44GI44GuLOOBvuOBqg0KK+OBhuOBiOOBr+OCiSzjgZ/jgZHjgZcNCivjgYbjgYvjgYQs44GC44Gk44GXDQor44GG44Gg44GM44KPLOOBguOBjeOCiQ0KK+OBhuOBoeOChOOBvizjgoTjgZnjga7jgooNCivjgYbjgaTjgb8s44KI44GZ44GRDQor44GG44Gk44G/LOOBn+OBoOOBlw0KK+OBhuOBrizjgZ/jgZHjgZcNCivjgYjjgYzjgZfjgoks44Gu44G244Gf44GLDQor44GI44GoLOOBvuOCiuOBkw0KK+OBiOOBqOOBvyzjgY3jgofjgZMNCivjgYjjgpPjgaks44KG44GN44GIDQor44GI44KT44GpLOOBl+OCheOBuOOBhA0KK+OBiuOBi+OBqSzjgb7jgZXjgZcNCivjgYrjgY/jgoks44Gf44GR44Gy44KNDQor44GK44GV44GLLOOCiOOBl+OBsuOCjQ0KK+OBiuOBleOBiyzjgYrjgZXjgoANCivjgYrjgZXjgo8s44KG44GG44GTDQor44GK44GZ44G/LOOBkeOCk+OBhOOBoeOCjQ0KK+OBiuOBnyzjgozjgYTjgZMNCivjgYrjgZ/jgass44GV44KJDQor44GK44Gr44GXLOOBn+OBi+OBruOCig0KK+OBiuOBq+OBlyzjgbLjgZXjgarjgYwNCivjgYrjgavjgZcs44KG44Gy44GhDQor44GK44Gr44GXLOOBsuOCjeOBvuOBlQ0KK+OBiuOBrizjgbLjgo3jgobjgY0NCivjgYrjga4s44G+44KK44GTDQor44GK44GuLOOBvuOBk+OBqA0KK+OBiuOBvuOBpCzjgZfjgoXjgpPjgZnjgZENCivjgYrjgoDjgoks44Gy44KN44GNDQor44GK44KELOOBsuOBp+OBvw0KK+OBiuOBiyzjgoHjgZDjgb8NCivjgYrjgYvjgYQs44Gy44KN44GNDQor44GK44GL44GG44GhLOOBn+OBi+OBsuOBlQ0KK+OBiuOBi+OBoCzjgbLjgo3jgZMNCivjgYrjgYvjgaAs44Gf44Gm44GNDQor44GK44GL44GuLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBi+OCgOOCiSzjgZXjgaENCivjgYrjgYvjgoLjgags44GV44Go44GTDQor44GK44GM44KPLOOBoeOBiOOBkw0KK+OBiuOBjOOCjyzjgb7jgZPjgagNCivjgYrjgYzjgo8s44G+44GV44Gy44KNDQor44GK44GM44KPLOOBv+OBpOOCiw0KK+OBiuOBjOOCjyzjgoDjgZXjgZcNCivjgYrjgYzjgo8s44G+44GV44GKDQor44GK44GO44GuLOOBquOBu+OBkw0KK+OBiuOBjyzjgb/jgYvjgZMNCivjgYrjgY/jgYvjgo8s44KI44GG44GTDQor44GK44GP44GgLOOCiOOBmeOBkQ0KK+OBiuOBj+OCgOOCiSzjgajjgoLjgZMNCivjgYrjgZbjgY0s44KG44GN44GIDQor44GK44GY44G+LOOBruOCiuOBsuOBqA0KK+OBiuOBnOOBjSzjgZHjgpPjgYTjgaENCivjgYrjgaAs44Go44KC44Gu44KKDQor44GK44GgLOOChuOBhuOBjQ0KK+OBiuOBoeOBguOBhCzjgb7jgorjgZMNCivjgYrjgajjgYzjgo8s44KE44GZ44G144G/DQor44GK44GuLOOBguOBi+OCig0KK+OBiuOBr+OCiSzjgZ0NCivjgYvjgYTjgZjjgb4s44GE44Ga44G/DQor44GL44GM44KPLOOBk+OBmuOBiA0KK+OBi+OBjeOBiizjgY3jgpPjgoQNCivjgYvjgZHjgbIs44G/44Gh44GTDQor44GL44GV44GELOOBn+OBj+OChA0KK+OBi+OBleOBvyzjgobjgb/jgZMNCivjgYvjgZjjgZ8s44GI44KK44GTDQor44GL44GY44Gf44GrLOOBleOChOOBiw0KK+OBi+OBl+OBvizjgbLjgo3jgYLjgY0NCivjgYvjgZfjgb4s44GC44GN44GKDQor44GL44GY44KC44GoLOOBleOBqOOBkw0KK+OBi+OBmeOBjCzjgZ/jgYvjgobjgY0NCivjgYvjgZss44Gf44GL44GXDQor44GL44Gf44GO44KKLOOBkeOBhOOBhOOBoQ0KK+OBi+OBn+OChOOBvizjgbLjgo3jgobjgY0NCivjgYvjgZ/jgoTjgb4s44GC44Gk44GTDQor44GL44Go44GGLOOBquOBiuOBjQ0KK+OBi+OBqOOBhizjgorjgofjgZMNCivjgYvjgajjgYYs44G/44Ga44GNDQor44GL44Gq44GW44KPLOOBkeOBhOOBkw0KK+OBi+OBreOBv+OBpCzjgZHjgpPjgZ8NCivjgYvjga4s44Go44KC44G/44GkDQor44GL44G+44GfLOOBn+OBi+OChA0KK+OBi+OBv+OBluOBjSzjgajjgoLjgb8NCivjgYvjgb/jgZjjgocs44Gq44GK44GTDQor44GL44KB44Gf44GLLOOCiOOBl+OBteOBvw0KK+OBi+OCgizjgZHjgYTjgYTjgaENCivjgYvjgo/jgYQs44G+44GV44Gq44KKDQor44GL44KP44GELOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBi+OBvyzjgobjgYbjgZMNCivjgYvjgo/jgYvjgb8s44GC44KE44GTDQor44GL44KP44GQ44GhLOOBleOBquOBkw0KK+OBi+OCj+OBkOOBoSzjgozjgYTjgZMNCivjgYvjgo/jgZDjgaEs44GL44Ga44GX44GSDQor44GL44KP44GV44GNLOOCiuOCh+OBkw0KK+OBi+OCj+OBleOBjSzjgobjgYbjgZgNCivjgYvjgo/jgarjgb8s44Gy44Go44GXDQor44GL44KP44GtLOOBj+OBq+OBguOBjQ0KK+OBi+OCj+OBsOOBnyzjgZHjgpPjgYTjgaHjgo0NCivjgYvjgo/jgoDjgoks44Gy44KN44GL44GaDQor44GL44KP44KC44GoLOOBqOOCguOBruOCig0KK+OBi+OCk+OBoCzjgobjgY3jgYgNCivjgYvjgpPjgaAs44Gy44KN44Gf44GLDQor44GL44KT44GuLOOBvuOBleOBqOOBlw0KK+OBjeOBl+OCguOBqCzjgojjgbLjgaENCivjgY3jgZ/jgYzjgo8s44Gf44GE44GZ44GRDQor44GN44Gf44Gv44KJLOOBkeOCk+OChA0KK+OBjeOBn+OCgOOCiSzjgajjgoLjgYvjgZoNCivjgY3jgZ/jgoDjgoks44GY44KF44KKDQor44GN44Gs44KELOOBn+OBi+OBlw0KK+OBjeOBruOBl+OBnyzjgb/jgYoNCivjgY3jga/jgoks44GC44KG44G/DQor44GN44KA44KJLOOBi+OBmuOBsuOBpw0KK+OBjeOCgOOCiSzjgZXjgajjgZcNCivjgY3jgoDjgoks44GY44KTDQor44GN44KA44KJLOOBquOBiuOBjQ0KK+OBjeOCiOOBl+OBvizjgYLjgY3jgZMNCivjgY3jgojjgZrjgYss44GL44Gq44GTDQor44GN44KJLOOBguOChuOBvw0KK+OBjeOCiuOBleOBkyzjgoLjgYYNCivjgY3jgpMs44KGDQor44GN44KTLOOBv+OBqeOCig0KK+OBj+OBq+OBiOOBoCzjgarjgYrjgZcNCivjgY/jgbws44G+44GV44GTDQor44GP44G+44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBj+OCieOBnyzjgZ/jgZHjgZcNCivjgY/jgonjga/jgZcs44Go44KC44Gv44KLDQor44GP44KMLOOBl+OChw0KK+OBj+OCjeOBhCzjgZfjgpPjgZQNCivjgY/jgo3jgY0s44Go44GX44G/DQor44GP44KP44GuLOOBpuOBpOOBmOOChw0KK+OBlCzjgZ/jgaTjgoQNCivjgZTjgaAs44KI44GX44GL44GaDQor44GT44GMLOOBvuOBleOBsuOCjQ0KK+OBk+OBj+OBl+OChyzjgYLjgY3jgojjgZcNCivjgZPjgZXjgYss44GY44KF44KTDQor44GT44GY44G+LOOBr+OCi+OBvw0KK+OBk+OBnuOBrizjgobjgY0NCivjgZPjgaDjgb4s44Gf44GL44GXDQor44GT44Gm44KJLOOBpuOBo+OBuuOBhA0KK+OBk+OBp+OCiSzjgZXjgobjgooNCivjgZTjgags44Gq44GK44GTDQor44GU44GoLOOBi+OBmuOBguOBjQ0KK+OBk+OBq+OBlyzjgZQNCivjgZPjgavjgZcs44Gf44GR44GoDQor44GT44Gr44GXLOOBguOBjeOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Go44GK44KLDQor44GT44Gw44KE44GXLOOCiOOBl+OBn+OBiw0KK+OBk+OBsOOChOOBlyzjgobjgYbjgZMNCivjgZPjgbbjgZss44Gy44KN44Gf44GLDQor44GT44G+44GNLOOBleOBiA0KK+OBk+OBvuOBluOCjyzjgZ/jgZHjgbLjgo0NCivjgZPjgb7jgaTjgbDjgoks44GR44GEDQor44GT44KE44G+LOOBpOOCiOOBlw0KK+OBk+OCk+OBqSzjgZfjgoXjgYTjgaHjgo3jgYYNCivjgZXjgYTjgY0s44KK44KH44GZ44GRDQor44GV44GE44GY44KHLOOBguOBhOOCjw0KK+OBleOBhOOBqOOBhizjgYTjgY/jgYoNCivjgZXjgYTjgajjgYYs44GN44G/44Gy44KNDQor44GV44GE44Go44GGLOOBl+OCk+OBn+OCjeOBhg0KK+OBleOBhOOBqOOBhizjgZ/jgaDjga7jgooNCivjgZXjgYTjgajjgYYs44Gy44KN44GTDQor44GV44GE44Go44GGLOOBv+OBleOBjQ0KK+OBleOBhOOBqOOBhizjgojjgYbjgZMNCivjgZXjgYTjgajjgYYs44Go44KC44KEDQor44GV44GL44GELOOBquOBpOOBkw0KK+OBleOBi+OBvyzjgZPjgYbjgZgNCivjgZXjgYvjgoLjgags44Gh44GIDQor44GV44GL44KC44GoLOOBpOOCiOOBlw0KK+OBleOBi+OCguOBqCzjgbLjgafjgobjgY0NCivjgZXjgYvjgoLjgags44Gy44KN44Gq44GKDQor44GV44GL44KC44GoLOOBn+OBi+OBvuOBlQ0KK+OBleOBj+OCieOBhCzjgajjgoLjgbLjgZUNCivjgZXjgY/jgonjgY4s44GE44Gh44KN44GGDQor44GV44GV44GNLOOBsuOCjeOBkw0KK+OBleOBleOBjSzjgYvjgYrjgosNCivjgZXjgajjgYYs44GL44Ga44KEDQor44GV44Go44GGLOOBjeOCh+OBkw0KK+OBleOBqOOBhizjgZPjgYbjgYTjgaENCivjgZXjgajjgYYs44Gm44KL44Gy44GVDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgZXjgajjgYYs44G144G/44GTDQor44GV44Go44GGLOOBsuOBqOOBlw0KK+OBleOBrizjgb7jgY3jgZMNCivjgZXjga4s44Gf44GL44KG44GNDQor44GV44KP44GV44GNLOOBn+OBi+OBlw0KK+OBleOCj+OBoCzjgZPjgYbjgZgNCivjgZXjgpPjgbrjgYQs44Gy44Gn44GNDQor44GX44GK44Ga44GLLOOBvuOBleOCiOOBlw0KK+OBl+OBrizjgarjgarjgZMNCivjgZfjgbDjgZ8s44KI44Gy44Gh44KNDQor44GX44G+LOOBleOBoOOCiOOBlw0KK+OBl+OBvuOBrizjgarjgbvjgZMNCivjgZfjgb/jgZos44G+44GV44GNDQor44GX44G/44GaLOOChuOBv+OBiA0KK+OBl+OCguOBi+OCjyzjgbXjgY/jgZ/jgo3jgYYNCivjgZfjgoLjgoDjgoks44GX44KF44GV44GPDQor44GX44KF44GP44KKLOOBn+OBi+OBlw0KK+OBl+OCh+OBmOOBvizjgYLjgY0NCivjgZfjgofjgaAs44GR44KT44GE44Gh44KNDQor44GX44KJ44GE44GXLOOBi+OBmuOBv+OBoQ0KK+OBl+OCieOBi+OBnyzjgobjgb8NCivjgZfjgonjgZXjgY0s44KK44KH44GZ44GRDQor44GX44KN44GfLOOBqOOBiuOCiw0KK+OBmOOCk+OBkOOBhuOBmCzjgorjgofjgZnjgZENCivjgZfjgpPjgZ/jgass44Gf44GL44GXDQor44GX44KT44G8LOOBsuOCjeOBkw0KK+OBmOOCk+OBvCzjgZXjgajjgosNCivjgZfjgpPjgoDjgoks44GC44Gk44GXDQor44GZ44GM44GELOOBi+OBmuOBruOCig0KK+OBmeOBjuOCguOBqCzjgYvjgZrjgZ/jgYsNCivjgZnjgY7jgoLjgoos44GY44KF44KTDQor44GZ44GO44KE44G+LOOBqOOBl+OBguOBjQ0KK+OBmeOBjuOChOOBvizjgojjgZfjgZMNCivjgZnjgY7jgoTjgb4s44G+44G/DQor44GZ44Ga44GNLOOCiOOBl+OBiuOBvw0KK+OBm+OBjOOCjyzjgYjjgYTjgbYNCivjgZvjgY0s44G+44Gq44G/DQor44Gb44GN44GtLOOBn+OBpOOBig0KK+OBm+OBjeOCguOBqCzjgY/jgb8NCivjgZvjgags44Gu44KK44GL44GaDQor44Gb44KJLOOBmOOCheOCkw0KK+OBneOBp+OChOOBvizjgoLjgoLjgZMNCivjgZ3jga7jgYQs44G+44GV44Gy44KNDQor44Gf44GE44KJLOOBl+OBkuOBi+OBmg0KK+OBn+OBi+OBjSzjgZHjgpPjgZ8NCivjgZ/jgYvjga/jgZcs44Gu44G244KG44GNDQor44Gf44GL44Gv44GXLOOCguOBqOOBr+OCiw0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgajjgZcNCivjgZ/jgYvjga/jgb4s44Gk44Go44KADQor44Gf44GL44G/44KELOOBv+OBuw0KK+OBn+OBi+OChOOBquOBjizjgbLjgo3jgZMNCivjgZ/jgYvjgoTjgb4s44Gf44GL44GtDQor44Gf44GQ44GhLOOBmOOCheOCkw0KK+OBn+OBkeOBhuOBoSzjgZ/jgY/jgb4NCivjgZ/jgZHjgZbjgY0s44GN44GP44GTDQor44Gf44GR44GX44GfLOOBmOOCheOCkw0KK+OBn+OBkeOCguOBqCzjgZHjgpPjgZgNCivjgZ/jgaAs44Gy44KN44GXDQor44Gf44Gh44GL44KPLOOBi+OBpOOBguOBjQ0KK+OBn+OBoeOBsOOBqizjgYLjgaTjgZcNCivjgZ/jgaTjgYzjgo8s44GL44Ga44KI44GXDQor44Gf44Gq44GLLOOBneOCieOBkw0KK+OBn+OBquOBiyzjgabjgovjgYgNCivjgZ/jgarjgYss44G+44GV44GXDQor44Gf44Gq44GLLOOBv+OBoeOCiw0KK+OBn+OBquOBiyzjgozjgYQNCivjgZ/jgarjgYss44G/44Gt44GTDQor44Gf44Gq44G5LOOBqOOCguOBig0KK+OBn+OBq+OBkOOBoSzjgZPjgY0NCivjgZ/jgavjgo/jgY0s44Gh44Gv44KLDQor44Gf44Gw44GfLOOBi+OBmuOBsuOBkw0KK+OBn+OBr+OCiSzjgZXjgajjgZcNCivjgZ/jgb7jgY0s44KP44Gf44KLDQor44Gf44G+44KA44KJLOOBguOBpOOBlw0KK+OBn+OCi+OBvyzjgb7jgobjgZMNCivjgZ/jgpPjgbDjgoks44GV44Go44G/DQor44Gh44GL44GkLOOBsuOCjeOBqOOCgg0KK+OBoeOBsCzjgYLjgaTjgZMNCivjgaHjgocs44G+44GT44GoDQor44Gk44GL44GgLOOBquOBiuOBqA0KK+OBpOOBi+OCguOBqCzjgajjgoLjgZMNCivjgaTjgZjjgoLjgags44KE44GZ44Gu44KKDQor44Gk44Gh44GgLOOBguOBjeOCiA0KK+OBpOOBoeOChCzjgb7jgZXjgZ/jgYsNCivjgaTjgaHjgoQs44GT44GG44GZ44GRDQor44Gk44Gk44G/LOOBleOBoeOBiA0KK+OBpOOBvOOBj+OCiSzjgZfjgofjgbjjgYQNCivjgaTjgoDjgoks44Gu44KK44GTDQor44Gm44GX44G+LOOBn+OBkeOBlw0KK+OBpuOCieOBleOBjSzjgbLjgo3jgbXjgb8NCivjgabjgonjgZXjgY0s44KI44GX44Gy44GVDQor44Gm44KJ44GgLOOBkeOCk+OBmA0KK+OBqeOBhCzjgarjgYrjgZMNCivjganjgYQs44G+44GT44GoDQor44GoLOOBsuOCjeOBvw0KK+OBqOOBjeOBnyzjgorjgofjgZMNCivjgajjgY3jgags44Gm44Gk44Gy44GTDQor44Go44GP44GgLOOBi+OBu+OCig0KK+OBqOOBl+OBmuOBvyzjgorjgofjgZ8NCivjgajjgaAs44Gm44Gk44KEDQor44Go44KI44GgLOOBleOBoeOBiw0KK+OBquOBhOOBqOOBhizjgb/jgY0NCivjgarjgYvjgYQs44GR44GE44GTDQor44Gq44GL44GKLOOBn+OBi+OBguOBjQ0KK+OBquOBjOOBiizjgaHjgYvjgokNCivjgarjgYvjgYzjgo8s44GV44Go44GXDQor44Gq44GM44GV44GLLOOBn+OBj+OChA0KK+OBquOBi+OBleOBiyzjgajjgoLjgYgNCivjgarjgYzjgZXjgY0s44GC44GN44GTDQor44Gq44GL44GW44KPLOOBvuOBleOBsuOBqA0KK+OBquOBi+OBluOCjyzjgY/jgb8NCivjgarjgYvjgZfjgb4s44Gf44GR44Gv44KLDQor44Gq44GL44GY44G+LOOBqOOCguOBkw0KK+OBquOBi+OBl+OBvizjga7jgbbjgZ/jgYsNCivjgarjgYvjgZjjgb4s44Gy44KN44GTDQor44Gq44GL44GY44G+LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OBoCzjgorjgofjgZnjgZENCivjgarjgYvjgaAs44GI44G/DQor44Gq44GM44Gk44GLLOOBvuOBuw0KK+OBquOBi+OBqCzjgZfjgoXjgpPjgZnjgZENCivjgarjgYvjgavjgZcs44Gy44KN44GC44GNDQor44Gq44GL44Gr44GXLOOCiuOCh+OBnw0KK+OBquOBi+OBq+OBlyzjgb7jgZXjgajjgZcNCivjgarjgYzjgb7jgaQs44GC44GN44Gy44GTDQor44Gq44GL44KA44KJLOOBiOOCiuOBkw0KK+OBquOBi+OCgOOCiSzjgajjgoLjgb8NCivjgarjgYvjgoDjgoks44G/44Gh44GTDQor44Gq44GL44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgobjgbLjgaHjgo0NCivjgarjgYvjgoDjgoks44KG44G444GEDQor44Gq44GL44KA44KJLOOCiOOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgobjgoQNCivjgarjgYvjgoLjgoos44GI44G/44GTDQor44Gq44GL44KELOOBguOBjeOBsuOCjQ0KK+OBquOBi+OChOOBvizjgZfjgoXjgZ/jgo3jgYYNCivjgarjgZks44KK44KH44GZ44GRDQor44Gq44KK44Go44G/LOOBi+OCiOOBkw0KK+OBquOCk+OBtizjgYLjgoTjgZMNCivjgavjgYTjgb8s44GE44GV44GKDQor44Gr44GX44GL44KPLOOBl+OCheOBmA0KK+OBq+OBl+OBrizjgb/jganjgooNCivjgavjgZfjgoTjgb4s44GZ44GZ44KADQor44Gs44GL44GgLOOBhOOBn+OCiw0KK+OBrOOBvuOBnyzjgb7jgZXjgbLjgo0NCivjgazjgb7jgZ8s44GX44GS44Go44GXDQor44Gu44GM44G/LOOBjeOCh+OBkw0KK+OBruOBjizjgYLjgoTjgZMNCivjga7jgY/jgYos44G+44KGDQor44Gu44GQ44GhLOOBkeOBhOOBkw0KK+OBruOBluOBjSzjgarjgYrjgZMNCivjga7jgZgs44Gy44KN44GL44GaDQor44Gu44G+LOOBleOChOOBkw0KK+OBruOCgOOCiSzjgabjgaTjgoQNCivjga7jgoDjgoks44KG44GG44GYDQor44Gw44GT44GXLOOBn+OBkeOBlw0KK+OBr+OBl+OCguOBqCzjgZPjgYbjgZgNCivjga/jgZnjgazjgb4s44GX44KT44Gf44KN44GGDQor44Gv44GbLOOBqOOCguOChA0KK+OBr+OBm+OBjOOCjyzjgoTjgZnjgZ/jgYsNCivjga/jgZ/jgYzjgo8s44Gd44Gu44GTDQor44Gv44Gf44GR44KE44G+LOOChuOBiw0KK+OBr+OBn+OBrizjgZ/jgYvjgbLjgo0NCivjga/jgarjgYQs44KI44GX44GTDQor44Gv44G+44GV44GNLOOChuOBhuOBhOOBoQ0KK+OBr+OBvuOBoCzjgZXjgajjgZcNCivjga/jgb7jgacs44GV44Go44GXDQor44Gv44KE44GL44KPLOOBguOChOOBkw0KK+OBr+OChOOBlyzjgYvjgYrjgooNCivjga/jgoTjgZcs44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBquOBpOOBrQ0KK+OBr+OChOOBlyzjgobjgY0NCivjga/jgoTjgZcs44KM44GE44GTDQor44Gv44KE44GXLOOBvuOBleOBig0KK+OBr+OCiSzjgobjgbLjgaENCivjga/jgonjgZfjgaos44GX44KT44GUDQor44Gv44KJ44GgLOOBquOBiuOBkw0KK+OBr+OCieOBoCzjgaHjgYgNCivjga/jgovjgaos44KI44GE44GhDQor44Gy44GN44GfLOOBsuOCjeOBlw0KK+OBsuOBoOOBhCzjgZjjgoXjgpPjgZMNCivjgbLjgonjgYQs44KG44GG44GTDQor44Gy44KJ44GELOOCiOOBhuOBkw0KK+OBsuOCieOBhCzjgorjgYsNCivjgbLjgonjgYTjgo8s44G+44GT44GoDQor44Gy44KJ44GKLOOBsuOCjeOBn+OBiw0KK+OBsuOCieOBi+OCjyzjgZ/jgYvjgZcNCivjgbLjgonjgZ8s44GC44GNDQor44Gy44KJ44G+44GkLOOBguOChA0KK+OBsuOCjeOBiCzjgZXjgajjgZMNCivjgbLjgo3jgZss44GV44Go44GXDQor44G144GL44GW44KPLOOBmOOCheOCkw0KK+OBteOBi+OBu+OCiizjgojjgYbjgZMNCivjgbXjgY/jgZfjgb4s44GZ44GZ44KADQor44G144GP44GgLOOBqOOCguOBsuOBlQ0KK+OBteOBj+OBoCzjga7jgbbjgY0NCivjgbXjgY/jgaAs44GC44Gk44GXDQor44G144GY44GELOOBv+OBqeOCig0KK+OBteOBmOOBi+OCjyzjgZfjgoXjgZnjgZENCivjgbXjgZjjgZ8s44Gy44Gn44GoDQor44G144GY44GfLOOBvuOChuOBvw0KK+OBteOBmOOBnyzjgY3jgofjgZMNCivjgbXjgZjjgoDjgoks44KG44GZ44GRDQor44G144GY44KA44KJLOOBiOOCiuOBkw0KK+OBteOBmOOCguOBqCzjgY/jgb/jgZMNCivjgbXjgZjjgoLjgags44Gy44Gn44GL44GaDQor44G144GY44KP44KJLOOBvuOBjQ0KK+OBteOBmOOCj+OCiSzjgojjgZfjgYLjgY0NCivjgbXjgZ/jgYvjgZ8s44Gf44GL44GKDQor44G144Gq44GELOOBguOBpOOBlw0KK+OBteOCi+OBi+OCjyzjgbLjgafjga7jgooNCivjgbXjgovjgYvjgo8s44Gy44Gn44KG44GNDQor44G144KL44G+44GfLOOBruOCiuOBsuOCjQ0KK+OBu+OBlyzjgb7jgY3jgYoNCivjgbvjgZfjgYbjgoks44Gy44KN44KG44GNDQor44G744GX44KNLOOBsuOCjeOBteOBvw0KK+OBu+OBneOBoCzjgZXjgoTjgYsNCivjgbvjgoos44KK44GI44GTDQor44G744KKLOOBi+OBmuOBvw0KK+OBu+OCiuOBiCzjgZHjgpPjgZgNCivjgbvjgorjgZDjgaEs44G+44GV44GKDQor44G744KT44GqLOOCiOOBl+OCjQ0KK+OBu+OCk+OBvCzjgajjgoLjgobjgY0NCivjgb7jgYjjgYvjgo8s44GC44GN44GTDQor44G+44GI44GgLOOBl+OCh+OBuOOBhA0KK+OBvuOBiOOBoCzjgorjgoXjgbjjgYQNCivjgb7jgYjjgaAs44GR44GE44GV44GPDQor44G+44GN44GG44GhLOOBleOBqOOBlw0KK+OBvuOBjeOBrizjgZjjgo0NCivjgb7jgY3jgoLjgags44GV44Gh44GTDQor44G+44GV44Go44GG44G/LOOBsuOCjeOBkw0KK+OBvuOBmeOBhCzjgZjjgoXjgavjgaENCivjgb7jgZnjgaAs44Go44KC44KEDQor44G+44GZ44GgLOOChuOBjQ0KK+OBvuOBpOOBhCzjgbLjgo3jgZcNCivjgb7jgaTjgYbjgoks44GE44Gk44G/DQor44G+44Gk44GK44GLLOOBl+OCheOCk+OBlA0KK+OBvuOBpOOBiuOBiyzjga7jgbbjgbLjgacNCivjgb7jgaTjgYrjgYss44KG44GNDQor44G+44Gk44GK44GLLOOBruOBtuOBqA0KK+OBvuOBpOOBi+OBkizjga7jgZ7jgoANCivjgb7jgaTjgZfjgZ8s44GL44GK44KLDQor44G+44Gk44Gq44GMLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBsOOCiSzjgb/jgo8NCivjgb7jgaTjgbDjgoks44GT44GZ44GRDQor44G+44Gk44KC44GoLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgYjjgaTjgZMNCivjgb7jgaTjgoTjgb4s44GR44GE44GYDQor44G/44GG44KJLOOBl+OCh+OBkw0KK+OBv+OBhuOCiSzjgajjgoLjga7jgooNCivjgb/jgYbjgoks44G+44GE44GTDQor44G/44GG44KJLOOCiOOBmeOBkQ0KK+OBv+OBjSzjgb7jgZXjgobjgY0NCivjgb/jgZrjgYvjgo8s44G/44G7DQor44G/44Ga44Gf44GrLOOBv+OBig0KK+OBv+OBmuOBrizjgYvjgZrjgbLjgZUNCivjgb/jgZ3jga4s44GC44GN44Gy44KNDQor44G/44Ge44Gv44GfLOOBqOOCguOBkw0KK+OBv+OBquOBjOOCjyzjgb7jgobjgb8NCivjgb/jgarjgYzjgo8s44Gg44GE44GZ44GRDQor44G/44Gq44G/LOOBsuOBleOBig0KK+OBv+OBquOBvyzjgZXjgajjgZcNCivjgb/jgarjgb/jgYvjgZ8s44KP44Gf44KLDQor44G/44Gq44G/44KA44KJLOOBruOBnuOBvw0KK+OBv+OBr+OCiSzjgYLjgY3jgZMNCivjgb/jgoDjgoks44Gy44KN44G/44GkDQor44G/44KE44GELOOBu+OBj+OBqA0KK+OBv+OChOOBluOBjSzjgb7jgYTjgZMNCivjgb/jgoTjgZbjgo8s44KK44KHDQor44G/44KE44GW44KPLOOBguOBpOOBlw0KK+OBv+OChOOCgOOCiSzjgYLjgaTjgZcNCivjgb/jgoTjgoDjgoks44GN44KI44G+44GVDQor44G/44KE44KC44GoLOOChuOBhuOBmA0KK+OBv+OChOOCguOBqCzjgbLjgo3jgobjgY0NCivjgb/jgojjgZcs44KG44GN44GTDQor44KA44Gt44KA44KJLOOChuOBm+OBhA0KK+OCgOOCieOBi+OBnyzjgZ/jgaDjgb7jgZUNCivjgoDjgonjgZrjgb8s44Gh44GIDQor44KA44KJ44GfLOOBvuOBoeOBkw0KK+OCgOOCieOBnyzjgYLjgoQNCivjgoDjgonjgoLjgags44Gy44KN44KG44GNDQor44KA44KJ44KE44G+LOOBn+OBi+OBlw0KK+OCguOCiizjgZ/jgYvjga7jgbYNCivjgoLjgoos44Gy44Gn44GNDQor44KC44KKLOOBvuOBleOBjQ0KK+OCguOCiizjgb/jgY3jgZMNCivjgoLjgoos44Gu44G244GC44GNDQor44KC44KK44GG44GhLOOBguOBpOOBlw0KK+OCguOCiuOBl+OBnyzjgarjgYrjgoQNCivjgoLjgorjgZ/jgass44GC44GN44KJDQor44KC44KK44KC44GoLOOBi+OBiuOCig0KK+OCguOCiuOChOOBvizjgYLjgoQNCivjgoLjgo3jgYgs44KG44G444GEDQor44KE44GULOOBvuOBleOChA0KK+OChOOBmeOBjOOBjSzjgaTjgYvjgZUNCivjgoTjgZnjgaAs44Gh44GL44G144G/DQor44KE44GZ44KC44GoLOOBqOOCguOChuOBjQ0KK+OChOOBpOOBquOBvyzjgb/jgaTjga7jgooNCivjgoTjgarjgY7jgZXjgo8s44GP44G/44GTDQor44KE44Gq44GO44Gv44KJLOOBvuOBjQ0KK+OChOOBtuOBquOBiyzjgYvjgZrjga7jgbYNCivjgoTjgb7jgYbjgaEs44Gq44GKDQor44KE44G+44GK44GLLOOBquOBiuOBkw0KK+OChOOBvuOBiuOBiyzjgYvjgaTjgb7jgZUNCivjgoTjgb7jgYrjgY0s44GC44Gk44Gy44GTDQor44KE44G+44GM44GfLOOBj+OBv+OBkw0KK+OChOOBvuOBkOOBoSzjgb/jgY0NCivjgoTjgb7jgZDjgaEs44Gu44KK44GTDQor44KE44G+44GX44GfLOOChuOBsuOBoeOCjQ0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgagNCivjgoTjgb7jgaAs44GS44KTDQor44KE44G+44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgbLjgo3jgYvjgZoNCivjgoTjgb7jgaAs44G/44Gu44KLDQor44KE44G+44GgLOOBqOOCguOBteOBvw0KK+OChOOBvuOBquOBiyzjgYLjgoTjgZMNCivjgoTjgb7jgoDjgoks44GC44Gk44GXDQor44KE44G+44KA44KNLOOBguOBjeOBig0KK+OChOOBvuOCguOBqCzjgZHjgYTjgZnjgZENCivjgoTjgb7jgoLjgags44GX44KT44GZ44GRDQor44KE44G+44KC44GoLOOBn+OBhOOBlw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgoLjgags44Gf44Gg44GXDQor44KE44G+44KC44GoLOOBquOBiuOChA0KK+OChOOBvuOCguOBqCzjgbLjgo3jgobjgY0NCivjgoTjgb7jgoLjgags44G+44GT44GoDQor44KE44G+44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OChuOBguOBlSzjgbLjgo3jgZMNCivjgobjgY0s44G+44Gp44GLDQor44KG44KK44KE44G+LOOBoeOBiA0KK+OCiOOBk+OBnyzjgaHjgYgNCivjgojjgZPjga/jgb4s44GY44KF44KT44GYDQor44KI44GT44KE44G+LOOBruOBtuOBkw0KK+OCiOOBk+OChOOBvizjgYLjgoQNCivjgojjgZfjgYrjgYss44G+44GN44GTDQor44KI44GX44GK44GLLOOCgeOBkOOBvw0KK+OCiOOBl+OBiuOBiyzjgYTjgaPjgZvjgYQNCivjgojjgZfjgaAs44GL44Gq44GTDQor44KI44GX44GgLOOBk+OBhuOBuOOBhA0KK+OCiOOBl+OBoCzjgabjgovjgbLjgZMNCivjgojjgZfjgaAs44G+44GV44KG44GNDQor44KI44GX44GgLOOBv+OBpOOCiOOBlw0KK+OCiOOBl+OBoCzjgb/jga7jgosNCivjgojjgZfjga4s44GX44Gu44G2DQor44KI44GX44Gy44KNLOOBqOOBiuOCiw0KK+OCiOOBl+OBvuOBpCzjgYLjgZnjgYsNCivjgojjgZfjgoDjgoks44KP44Gf44KLDQor44KI44GX44KA44KJLOOBj+OBv+OBkw0KK+OCj+OBi+OBvuOBpCzjgarjgYrjgZMNCivjgo/jgY3jgZ8s44Gu44KK44Gy44KNDQor44KP44GN44GfLOOBguOBpOOBsuOBlQ0KK+OCj+OBl+OBiizjgajjgZfjgobjgY0NCivjgo/jgZfjgZbjgo8s44GC44KG44G/DQor44KP44GgLOOBi+OBmuOBjQ0KK+OCj+OBoCzjgY3jgofjgYbjgZMNCivjgo/jgaAs44G+44GE44GTDQor44KP44GgLOOBvuOCiuOBkw0KK+OCj+OBoCzjgZ/jgYvjgajjgZcNCivjgo/jgZ/jgarjgbks44Gq44GK44GTDQor44KP44Gf44Gq44G5LOOBquOBiuOBkw0KK+OCj+OBn+OBquOBuSzjgb7jgorjgYgNCivjgo/jgZ/jgarjgbks44KG44GG44GYDQor44KP44Gf44Gq44G5LOOChuOBhuOBmA0KK+OCj+OBn+OBquOBuSzjgobjgYsNCivjgo/jgZ/jgarjgbks44KG44G/DQor44KE44G+44GQ44GhLOOBqOOBiuOCiw0KK+OBmeOBmuOBjSzjgaDjgYTjgZnjgZENCivjgZXjgZXjga4s44GL44Ga44G144G/DQor44GL44Gt44GTLOOBsuOCjeOChA0KK+OBj+OBvOOBnyzjgYvjgZrjgYoNCivjgZPjgZnjgZHjgYzjgo8s44GR44KT44GX44KNDQor44GL44Gq44GELOOCiOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgaHjgYLjgY0NCivjgZPjgaDjgb4s44GE44GV44KADQor44GT44Gw44KE44GXLOOBqOOBl+OBig0KK+OBk+OBmOOBvizjgYTjgZXjgYoNCivjgYvjgoHjgoTjgb4s44Gf44GR44GXDQor44GP44KJ44Gw44KE44GXLOOBi+OBpOOBiA0KK+OBi+OCk+OBoCzjgYvjgZrjgZfjgpMNCivjgZPjgpPjga4s44Go44GP44GYDQor44GL44KP44GX44G+LOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgY3jgojjgYrjgb8NCivjgYvjgarjgYss44KI44GX44Gy44KNDQor44GL44KP44KA44KJLOOCiOOCiuOBv+OBpA0KK+OBjeOCgOOCiSzjgZHjgYTjgZgNCivjgYvjgZnjgYws44KC44Go44GYDQor44GT44GY44G+LOOBmOOCjQ0KK+OBi+OCj+OBrizjgZnjgZnjgoANCivjgYvjgo/jgaos44Gf44GR44GXDQor44GT44Ga44G+LOOCjOOBhOOBkw0KK+OBi+OCj+OBleOBjSzjgb7jgZXjgarjgYoNCivjgYvjgZ/jga4s44GV44G244KNDQor44GL44Gf44GgLOOBk+OBhuOBhOOBoQ0KK+OBjeOBj+OBoSzjgZ/jgYvjgbLjgZMNCivjgYvjgb/jgYbjgoks44Go44GX44Gy44KNDQor44GL44Gt44GgLOOBqOOBiuOCiw0KK+OBk+OBrizjgYvjgZrjgbLjgZMNCivjgYvjgo/jgoLjgags44Gu44G244GKDQor44GL44Gw44KELOOBi+OBmuOChuOBjQ0KK+OBk+OBtuOBj+OCjSzjgZjjgoXjgpPjgZgNCivjgY/jgb7jgYzjgYQs44G+44GV44Gq44KKDQor44GT44GuLOOBk+OBhuOBmA0KK+OBk+OChOOBvizjgYvjgY/jgZ/jgo3jgYYNCivjgY3jgZ/jgZfjgo0s44Gy44KN44GG44G/DQor44GT44Gg44G+LOOBl+OCheOBq+OBoQ0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgY3jgoDjgoks44KC44Go44KI44GXDQor44GT44GE44GnLOOBk+OBhuOBhOOBoQ0KK+OBj+OChOOBvizjgojjgZfjgb7jgZUNCivjgY3jgorjga/jgoks44Gf44GR44GXDQor44GL44KILOOBvuOBleOBguOBjQ0KK+OBi+OBreOBkyzjgb7jgZXjgYLjgY0NCivjgZPjga/jgoks44GC44GN44GKDQor44GL44Go44GGLOOBvuOBleOBiuOBvw0KK+OBk+OBhCzjgYvjgZrjgbLjgacNCivjgYvjgoTjgb4s44Gm44Gk44GKDQor44GT44GE44GRLOOChOOBmeOBig0KK+OBk+OBmOOBvizjgZfjgZLjgb8NCivjgZPjgb7jgaQs44Gy44KN44GXDQor44GN44Gf44KA44KJLOOBkeOCk+OBjeOBoQ0KK+OBjeOBn+OCj+OBjSzjgobjgYbjgZgNCivjgYvjgZXjgZjjgb4s44Gy44Gn44GNDQor44GN44KA44KJLOOBl+OCh+OBsuOBoQ0KK+OBi+OBv+OBkOOBoSzjgbLjgajjgZcNCivjgYvjgajjgYYs44Gf44GR44GXDQor44GL44KP44KA44KJLOOBiOOBhOOBhOOBoQ0KK+OBi+OBqeOBnyzjgajjgZfjga/jgosNCivjgYrjgZ/jgZEs44GE44GV44GKDQor44GL44Go44GGLOOBn+OBkeOBlw0KK+OBjeOBrizjgoLjgorjgbLjgo0NCivjgYvjgb/jgZjjgocs44G+44GV44Gf44GgDQor44GN44GP44GhLOOBqOOBl+OBig0KK+OBi+OBjeOBhuOBoSzjgYTjgo/jgYoNCivjgZPjgZjjgb4s44KG44GN44GKDQor44GL44Gf44GK44GLLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBj+OBvOOBnyzjgYTjgZXjgYoNCivjgY3jgZ/jgZbjgo8s44GP44Gr44Gy44GTDQor44GT44G/44GtLOOBguOBjeOBqA0KK+OBj+OBvCzjgb7jgZXjgZgNCivjgY3jgZ/jgZrjgoEs44Gu44KK44KI44GXDQor44GT44Gw44KE44GXLOOBnOOBq+OBoeOCjQ0KK+OBi+OCj+OBkOOBoSzjgbLjgo3jgbXjgb8NCivjgZHjgYzjgZXjgo8s44Gm44Gk44KNDQor44GT44GhLOOBleOBoeOBig0KK+OBk+OChOOBvizjgbXjgZjjgYoNCivjgYvjgo/jgY3jgZ8s44Go44GX44Gy44GoDQor44GL44KP44G/44GkLOOBruOBtuOBn+OBiw0KK+OBi+OBn+OBsuOCiSzjgZfjgZLjgosNCivjgYvjgo/jgY7jgZcs44Go44KC44G/DQor44GT44KT44GpLOOBruOBtuOBsuOBlQ0KK+OBjeOCgOOCiSzjgb7jgZXjgb8NCivjgY/jgbzjgoTjgb4s44G+44GV44KG44GNDQor44GP44G+44KC44GoLOOBsuOCjeOBsuOBlQ0KK+OBi+OCj+OBnyzjgb7jgZXjgb8NCivjgY/jgavjga7jgbYs44GX44KF44KT44GZ44GRDQor44GL44G+44GgLOOBsuOCjeOChuOBjQ0KK+OBi+OBjyzjgb7jgZXjgYLjgY0NCivjgYvjga3jgZMs44KC44Go44KG44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OChuOBjQ0KK+OBi+OBl+OBiizjgYvjgZrjgajjgZcNCivjgYvjgarjgYTjgo8s44GL44Gk44GKDQor44GR44KT44KC44GhLOOCiOOBl+OBsuOBkw0KK+OBjeOBj+OBoSzjgbLjgZXjgZcNCivjgYvjgZbjgb4s44G/44Gh44GKDQor44GT44G+44Gk44KC44GoLOOBqOOBiuOCiw0KK+OBk+OCk+OBqSzjgZ/jgYvjgbLjgacNCivjgY3jgY/jgZfjgb4s44GX44KH44GeDQor44GT44Gw44KE44GXLOOBguOBpOOBig0KK+OBj+OBvuOBjOOBhCzjgbLjgo3jgZcNCivjgYvjgajjgYYs44KI44GX44G/44GkDQor44G+44KL44Gw44KE44GXLOOBguOBjeOBsuOBkw0KK+OCgOOBqCzjgZfjgpPjgZ/jgo3jgYYNCivjgb/jgZ/jgass44G+44GV44GNDQor44G/44KPLOOBteOBv+OCiA0KK+OBl+OBv+OBmizjgoTjgZnjgYoNCivjgb/jgZrjga4s44Gf44GL44GXDQor44G+44Gh44GgLOOBiuOBleOCgA0KK+OBvuOBpOOBhCzjgYrjgZXjgoANCivjgb/jgYbjgoks44GC44GN44KJDQor44Gy44GuLOOBkeOCk+OBmA0KK+OCgOOCieOBi+OBvyzjgZHjgYTjgZgNCivjgb/jgoTjga4s44Gf44Gg44GXDQor44G+44KL44GELOOBiuOBleOCgA0KK+OCgOOCieOBleOBjSzjgoTjgZnjgYLjgY0NCivjgb7jgZXjgYss44GI44GE44GTDQor44G/44Gt44GfLOOBi+OBpOOBsuOBkw0KK+OBvuOBpOOBquOBjCzjgYvjgaTjgb7jgZUNCivjgb/jgarjgYzjgo8s44Gb44GE44GTDQor44G/44KE44GRLOOBvuOBleOBqOOBlw0KK+OBvuOBpOOCguOBqCzjgYvjgZrjgbLjgZMNCivjgb/jgZXjgo8s44Gf44GL44GXDQor44G+44GI44GgLOOBi+OBpOOBvw0KK+OBhuOBoOOBjOOCjyzjgZ/jgZHjgZcNCivjgb/jgoTjga/jgoks44G+44GV44GXDQor44KA44KJ44GELOOBpOOBqOOCgA0KK+OBvuOBpOOCguOCiizjgajjgZfjgYoNCivjgb7jgZXjgY0s44GL44Ga44GKDQor44G/44GG44KJLOOBi+OBmuOBn+OBvw0KK+OCguOBqOOBv+OChCzjgorjgoXjgbLjgaENCivjgoDjgonjgYvjgb8s44KK44KH44Gy44GhDQor44G+44Go44GwLOOBvuOBleOBsuOCjQ0KK+OBv+OBhuOCiSzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYvjgo8s44G+44GV44Gu44KKDQor44G/44Ga44Gf44GrLOOBqOOBl+OBig0KK+OBv+OChOOBrizjgbLjgafjga7jgooNCivjgb7jgaTjgaAs44Gf44GR44G/DQor44G/44GZLOOChuOBn+OBiw0KK+OBvuOBpOOChOOBvizjgZvjgYTjgZgNCivjgb/jgoTjgoLjgags44Gq44GK44GC44GNDQor44G/44Ga44GuLOOBkeOCk+OBhOOBoQ0KK+OBvuOCi+OChOOBvizjgajjgZfjgobjgY0NCivjgb7jgovjgZMs44GT44GeDQor44KC44Gh44GgLOOBqOOBl+OBi+OBpA0KK+OCguOBqOOBr+OBlyzjgZPjgYbjgZgNCivjgb/jgZrjgoQs44GX44KH44GYDQor44G/44KE44GW44GNLOOBl+OBkuOBjQ0KK+OBv+OChOOBjOOCjyzjgY3jgY/jgYoNCivjgoDjgonjgZfjgb4s44GI44GE44GYDQor44G+44GZ44GV44GTLOOBjeOCiOOBlw0KK+OCguOCiizjgbLjgo3jgbXjgb8NCivjgoLjgorjgZ8s44G+44GV44GC44GNDQor44G/44Gq44G/LOOBqOOBl+OBig0KK+OBv+OChOOBjSzjgYvjgZrjgbLjgo0NCivjgoLjgorjgoTjgb4s44Gq44GK44Gy44GTDQor44G/44Ga44GfLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOBhCzjgbXjgZXjgaHjgYsNCivjgb7jgaTjgYos44GC44GN44KJDQor44G+44Gk44GX44GfLOOBqOOBl+OBiA0KK+OBk+OBsOOChOOBlyzjgZ/jgaDjgYLjgaQNCivjgoDjgYvjgYgs44G144G/44GKDQor44KC44KK44GELOOBm+OBhOOBmA0KK+OCguOCiuOBnyzjgb/jgaHjgZ/jgYsNCivjgoDjgYvjgYQs44Go44GK44KLDQor44G+44Gk44GKLOOBvuOCguOCiw0KK+OCgOOCieOChOOBvizjgZPjgYbjgZgNCivjgb7jgaTjgoLjgags44G/44Gh44G+44GVDQor44G/44KE44GV44GoLOOBv+OBpOOCiw0KK+OBv+OChOOBluOCjyzjgZ/jgaDjgYoNCivjgoLjgorjgoDjgoks44Gb44GE44GE44GhDQor44KA44KJ44GuLOOBhOOBoeOCjeOBhg0KK+OBvuOBmeOBoCzjgYvjgZrjgYoNCivjgoDjgonjgZ8s44KI44GX44GC44GNDQor44G/44KE44GV44GLLOOBvuOBleOBig0KK+OCguOBqOOBsOOChOOBlyzjgZHjgpPjgZgNCivjgb/jgZrjga4s44KI44GX44GKDQor44KC44KC44GELOOBv+OBpOOBkA0KK+OBvuOBpOOBoCzjgb7jgZXjgogNCivjgZnjgYzjgo/jgoks44KG44Gf44GLDQor44G+44Gk44Gw44KJLOOBi+OBpOOBvw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgZgNCivjgb/jgoTjga/jgoks44GO44KH44GYDQor44KA44KJ44GE44GXLOOBn+OBhOOBng0KK+OBvuOBpOOCgOOCiSzjgb7jgZXjgYoNCivjgb/jgojjgZcs44Go44GN44KPDQor44KC44KK44KC44GoLOOCiOOBl+OBsuOBkw0KK+OBv+OBmuOBn+OBqyzjgajjgZfjgYoNCivjgb7jgaTjgbAs44G/44Gu44KLDQor44G+44Gk44GELOOCiOOBl+OBig0KK+OCgOOCieOBi+OBvyzjgZ/jgYvjgZcNCivjgoLjgorjgZ8s44Gy44Gn44GKDQor44KA44KJ44GfLOOBv+OBruOCiw0KK+OBvuOBleOBjSzjga7jgbbjgYoNCivjgb/jgoTjgZbjgY0s44GR44KT44GYDQor44G+44Gk44Gw44KJLOOBvuOBleOBv+OBpA0KK+OCgOOCieOBvuOBpCzjgobjgorjgZMNCivjgoLjgoos44KI44GX44GKDQor44KC44KK44KA44KJLOOBqOOBj+OBig0KK+OBmeOCjyzjgarjgYrjgYgNCivjgZPjgo/jgZ/jgoos44G+44GT44GoDQor44G+44Gk44GW44GNLOOBv+OBruOCiw0KK+OBvuOBo+OBleOBjSzjgYLjgaTjgojjgZcNCivjgb/jgZ/jgY8s44G+44KC44KLDQor44G+44Gk44GL44KPLOOBvuOCguOCiw0KK+OCguOBjizjgabjgaTjgojjgZcNCivjgb7jgbbjgaEs44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OCguOCiizjgYLjgaTjgZcNCivjgb7jgaTjgYbjgoks44GL44KTDQor44G+44GI44GgLOOBi+OBmuOBig0KK+OBvuOBmeOBoCzjgZfjgZLjga/jgosNCivjgb7jgYjjgavjgZcs44GX44GS44GKDQor44G+44KL44KE44G+LOOBsuOCjeOBlw0KK+OBvuOBpOOBoCzjgojjgZfjgY0NCivjgb7jgY0s44GX44KT44GE44GhDQor44KC44GG44GILOOBguOBpOOBlw0KK+OCgOOCieOBhCzjga7jgbbjgobjgY0NCivjgb7jgaTjgYQs44G+44GV44GL44GaDQor44KC44KK44GfLOOCiOOBl+OBvw0KK+OBvuOBiOOBoCzjgarjgYrjgY0NCivjgoDjgonjgYbjgaEs44KI44GX44Gu44G2DQor44G/44Gk44KE44GZLOOBvuOBleOBsuOCjQ0KK+OCguOCiizjgZHjgYTjgZ4NCivjgb7jgaTjgaAs44GV44Go44GXDQor44G+44Gk44GKLOOBl+OBkw0KK+OBvuOCi+OChOOBvizjgY3jgojjgZcNCivjgb7jgaTjgYzjgYgs44Go44GX44KNDQor44GL44G/44GP44KJLOOCiuOCh+OBsuOBoQ0KK+OBv+OBqeOCiuOBi+OCjyzjgYvjgZrjgarjgooNCivjgb7jgZnjgaAs44GC44GN44GKDQor44G/44Gm44KJLOOBsuOCjeOBlw0KK+OBvuOBpOOBquOBjCzjgbLjgo3jgZcNCivjgoLjgorjgYrjgYss44Gq44GK44KEDQor44G/44Gd44GKLOOBn+OBi+OBig0KK+OCgOOCieOChOOBvizjgajjgZfjgbLjgZMNCivjgoLjgorjgoLjgags44GX44KT44GE44Gh44KN44GGDQor44KC44KKLOOBqOOCiOOBvw0KK+OBvuOBmeOBoCzjgY/jgavjgbLjgZMNCivjgb/jgoTjgoLjgags44G+44GV44KLDQor44KA44KJ44GfLOOBn+OBi+OBtuOBvw0KK+OBv+OBquOBv+OBleOCjyzjgYTjgZXjgoANCivjgb7jgZfjgb4s44GC44GN44KJDQor44KC44KK44GQ44GhLOOBkeOCk+OBmA0KK+OBvuOBpOOBhCzjgZXjgajjgZcNCivjgb7jgYjjgYvjgo8s44G+44GV44G144G/DQor44KC44Gh44Ga44GNLOOBguOBjeOBig0KK+OBvuOBmeOBoCzjgZfjgZLjgbLjgo0NCivjgb7jgaTjgoLjgags44GT44GG44GE44GhDQor44KC44KK44Gq44GMLOOChuOBhuOBmOOCjQ0KK+OBvuOBmeOBoCzjgZfjgZLjga7jgbYNCivjgb/jgYbjgoks44KE44GZ44GKDQor44G+44Gk44GuLOOBguOBjeOCiQ0KK+OBvuOBpOOBiuOBiyzjgojjgZfjgb8NCivjgb7jgaHjgYQs44GI44Gk44GKDQor44G/44Ga44Gf44GrLOOBi+OBpOOCiOOBlw0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgosNCivjgb7jgZXjgY0s44Gk44Go44KADQor44G+44Gk44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBv+OBpOOChCzjgYvjgaTjgb7jgZUNCivjgb/jgZrjga4s44KI44GX44Gm44KLDQor44G+44GI44GgLOOBi+OBmuOBsuOCjQ0KK+OCgOOCieOBvuOBpCzjgZnjgb/jgbLjgo0NCivjgoDjgZXjgZfjga4s44KI44GX44GC44GNDQor44G+44GI44Gv44GfLOOBn+OBi+OBlw0KK+OBvuOBpOOBluOCjyzjgbLjgajjgZcNCivjgb/jgaTjgYQs44GY44KF44KTDQor44KC44KC44GgLOOBl+OCk+OBjeOBoQ0KK+OBvuOBpOOBiizjgZjjgoXjgpPjgZ4NCivjgb/jgo8s44GL44Ga44Gu44KKDQor44KA44KJ44GL44G/LOOBsuOCjeOBn+OBvw0KK+OBv+OBi+OBvyzjgY/jgavjgYoNCivjgazjgYvjgZbjgo8s44Gf44Gg44GKDQor44Gq44GL44KA44KJLOOCiOOBl+OBpuOCiw0KK+OBq+OBl+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgavjgaPjgZ8s44Go44GX44GKDQor44Gq44GM44Gk44KGLOOCiOOBl+OBruOCig0KK+OBq+OBhOOBrizjgbLjgafjgagNCivjgZ/jgbbjgaEs44Gf44GR44GXDQor44Gr44GX44GuLOOBsuOBp+OChOOBmQ0KK+OBrOOBi+OBnyzjgZjjgo0NCivjgavjgZfjgoDjgoks44G144G/44GKDQor44Gq44GM44GuLOOBkeOCk+OBmA0KK+OBquOBi+OBjOOCjyzjgYLjgY3jgokNCivjgavjgZfjgoTjgb4s44G+44GV44Gy44GTDQor44Gq44GL44GY44G+LOOCiOOBl+OBig0KK+OBq+OBl+OBoCzjgojjgZfjgYvjgZoNCivjgarjgYvjgoDjgoks44G/44Gk44GL44GaDQor44Gu44KA44KJLOOBi+OBpOOBvw0KK+OBquOBi+OCguOBqCzjgZfjgoXjgZgNCivjgarjgYvjgYzjgo8s44Gm44Gk44KEDQor44Gq44KL44GV44KPLOOBr+OCi+OBjQ0KK+OBquOBhOOBqOOBhizjgZfjgpPjgZgNCivjga7jgbks44GX44Ga44GIDQor44Gr44GX44GqLOOBj+OBq+OBsuOBkw0KK+OBruOCgOOCiSzjgZHjgpPjgZgNCivjgarjgYvjgoDjgoks44Go44GN44KE44GZDQor44Gr44GL44GE44GpLOOBsuOCjeOBlw0KK+OBquOBi+OBoCzjgZHjgpPjgZgNCivjgavjgZfjgaos44GV44G244KNDQor44Gq44KK44GfLOOBn+OCguOBpA0KK+OBruOBkOOBoSzjgbLjgZXjgYoNCivjga7jgoQs44Gf44GL44KG44GNDQor44Gq44GM44GELOOCiOOBl+OBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgavjgYTjgZrjgb4s44G+44GV44Gy44KNDQor44Gq44GL44GM44G/LOOBv+OBpOOBig0KK+OBquOBjOOBnyzjgbXjgb/jgYoNCivjgavjgZfjgZbjgo8s44KG44GN44GKDQor44Gu44GbLOOBruOCiuOBguOBjQ0KK+OBquOBjOOBhCzjgYvjgZrjgZ/jgb8NCivjgavjgZfjgZbjgo8s44Gk44Gt44GKDQor44Gq44GL44Gv44GfLOOBn+OBkeOBig0KK+OBquOBi+OBmOOBvizjgojjgZfjgbLjgacNCivjgarjgYvjgaAs44KE44GZ44Gu44KKDQor44Gu44Gq44GLLOOBn+OBoOOBlw0KK+OBquOBi+OBjOOCjyzjgZfjgpPjgZjjgo0NCivjgarjgYvjgZfjgb4s44KI44GX44KE44GZDQor44Gq44GL44KC44GoLOOBn+OBpOOBig0KK+OBq+OBl+OBiuOBiyzjgY3jgb/jgbLjgagNCivjgavjgZfjgb7jgYgs44Go44GX44GKDQor44Gq44GL44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OBq+OBlyzjgZPjgY0NCivjga7jgaAs44G+44GV44GoDQor44Gq44GL44KA44KJLOOBjeOCiOOBlw0KK+OBquOBi+OBluOCjyzjgZ/jgYvjgb8NCivjgavjgZfjgaAs44GX44KF44Gy44GhDQor44Gr44GX44GgLOOBjeOBl+OBig0KK+OBq+OBhCzjga/jgaTjgYgNCivjgoTjgb7jgoLjgags44GY44KF44KNDQor44Gq44GL44GG44GhLOOChuOBjeOBig0KK+OBquOBi+OBmOOBvizjgb7jgZXjgYoNCivjgarjgYvjgoDjgoks44GL44Ga44Go44GXDQor44Gu44KA44KJLOOBsuOCjeOBlw0KK+OBq+OBl+OCgOOCiSzjgb7jgaTjgYoNCivjga7jgarjgYss44G+44GV44GNDQor44Gr44GX44KA44KJLOOBvuOBleOBguOBjQ0KK+OBq+OBl+OBiizjgZ/jgb/jgYoNCivjgarjgYzjgYos44G+44GV44KLDQor44Gr44GE44G/LOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZ/jgo3jgYYNCivjga3jgZrjgYss44G+44GV44GKDQor44Gq44GL44KA44KJLOOBi+OBmuOBig0KK+OBquOBi+OBluOBqCzjgoDjgaTjgoQNCivjgYLjgZXjga4s44GC44GN44Gy44GTDQor44Gu44GM44G/LOOCiuOCh+OBsuOBoQ0KK+OBquOBi+OBmOOBvizjgojjgZfjgo0NCivjgarjgYTjgajjgYYs44Gf44Gg44KG44GNDQor44Gq44GL44KA44KJLOOCiuOCh+OBmA0KK+OBquOBi+OBq+OBlyzjgbLjgajjgZcNCivjgarjgYvjgaAs44KE44GZ44GKDQor44Gq44GM44GV44KPLOOBi+OBmuOBn+OBiw0KK+OBquOBjOOBrizjgb7jgZXjgb8NCivjgavjgaPjgZ8s44GP44Gr44Gy44GTDQor44Gq44KT44GwLOOChOOBmeOBsuOCjQ0KK+OBruOBmuOBiCzjgZ/jgaDjgbLjgZMNCivjgarjgYzjgb8s44Go44GX44Gy44GnDQor44Gq44GM44GELOOBjeOCiOOBlw0KK+OBquOBi+OBr+OCiSzjgY3jgojjgZcNCivjgarjgYvjgZjjgb4s44GR44KT44GYDQor44Gq44GL44GY44G+LOOBsuOBp+OChuOBjQ0KK+OBq+OBl+OBoCzjgojjgZfjga7jgooNCivjgarjgYrjgYQs44KG44GN44Go44GXDQor44Gq44G544GX44G+LOOBpuOBpOOChA0KK+OBquOBi+OBrizjgZjjgoXjgpMNCivjgarjgYvjgoDjgoks44GP44Gr44Gy44KNDQor44Gu44GgLOOBi+OBmuOBsuOBkw0KK+OBquOBi+OBmyzjgYvjgZrjgYLjgY0NCivjgarjgYvjgZjjgb4s44KI44GX44Gu44KKDQor44Gq44GM44GV44KPLOOBjeOCiOOBguOBjQ0KK+OBq+OBuOOBhCzjgZ/jgb/jgYoNCivjgarjgYzjgYQs44Gf44GL44GXDQor44Gq44GL44GX44G+LOOBi+OBmuOChuOBjQ0KK+OBquOBi+OBiizjgobjgZ/jgYsNCivjgarjgYvjgYzjgo8s44G/44Gk44Gy44KNDQor44Gq44GE44Go44GGLOOBj+OBq+OBv+OBpA0KK+OBruOBmOOBvizjgbLjgo3jgZcNCivjgarjgYzjga4s44GY44KF44Gr44GhDQor44Gr44GX44GgLOOBv+OBmuOBuw0KK+OBquOBi+OBoCzjgZ/jgZHjgojjgZcNCivjgarjgYvjga/jgoks44GL44Gk44GKDQor44Gq44GL44GY44G+LOOBguOBjeOBsuOBkw0KK+OBreOCguOBqCzjgZfjgaHjgo0NCivjgarjgYvjgoDjgoks44KI44GX44G+44GVDQor44Gq44GM44Go44KCLOOBl+OCh+OBsuOBoQ0KK+OBquOBi+OCgOOCiSzjga/jgovjgYoNCivjgarjgYvjgoTjgb4s44G/44Gk44KI44GXDQor44Gq44GL44KA44KJLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgZfjgZINCivjga7jgZjjgb4s44Gf44Gg44GXDQor44Gq44GM44G144GhLOOBv+OBpOOCiA0KK+OBquOBi+OBrizjgorjgofjgZnjgZENCivjgavjgZfjgoTjgb4s44Gf44GL44GKDQor44Gq44GL44KA44KJLOOBm+OBhA0KK+OBquOBjOOBl+OBvizjga7jgbbjgYoNCivjgavjgo8s44GT44GG44GE44Gh44KNDQor44Gq44GL44GuLOOChuOBmeOBkQ0KK+OBiuOBq+OBluOCjyzjgobjgY3jgYoNCivjgYrjgZfjgYvjgZ8s44GL44Ga44GKDQor44GK44GLLOOBjeOCiOOBlw0KK+OBiuOBj+OChOOBvizjgZ/jgYvjga7jgZnjgZENCivjgYrjgY0s44KA44Gt44Gf44GLDQor44GK44GL44G/44KELOOBjeOCiOOBlw0KK+OBiuOBkOOCiSzjgZHjgpPjgZgNCivjgYrjgacs44G+44GV44G/DQor44GK44Gu44GgLOOBsuOBqOOBvw0KK+OBiuOBq+OBlyzjgojjgZfjgYoNCivjgYrjgY/jgaAs44G744Ga44G/DQor44GK44GP44GgLOOBteOBv+OBruOCig0KK+OBiuOBjOOCjyzjgabjgaTjgo0NCivjgYrjga4s44KE44GZ44KNDQor44GK44GZ44G/LOOBlOOBhOOBoQ0KK+OBiuOBpOOBiyzjgZfjgpPjgYTjgaENCivjgYrjgajjgoIs44G+44GV44KG44GNDQor44GK44GL44GW44GNLOOBquOBiuOBmA0KK+OBiuOBr+OBlyzjgobjgZ/jgYsNCivjgYrjgY7jga4s44KE44GZ44GC44GNDQor44GK44GV44GgLOOChuOBjeOBig0KK+OBiuOBsCzjgb7jgZXjgYoNCivjgYrjgZfjgb4s44GL44Gk44Gy44KNDQor44GK44GL44KPLOOBruOBvOOCiw0KK+OBiuOBi+OCguOBqCzjgZnjgb/jgYoNCivjgYrjgYzjgo8s44GR44KT44GYDQor44GK44GuLOOBvuOBleOBjQ0KK+OBiuOBi+OBrizjgb7jgZXjga7jgooNCivjgYrjgZbjgo8s44G+44GV44Gy44GTDQor44GK44Gv44GPLOOBvuOBleOBjQ0KK+OBiuOBl+OBn+OBqyzjgY3jgofjgYTjgaHjgo3jgYYNCivjgYrjgZbjgo8s44Go44GX44GKDQor44GK44Gv44GXLOOBk+OBhuOBmA0KK+OBiuOBr+OBnyzjgb7jgZXjgYoNCivjgYrjga7jgafjgoks44GT44GG44GYDQor44GK44GuLOOBn+OBi+OBlw0KK+OBiuOBu+OBiyzjgb7jgZXjgYLjgY0NCivjgYrjga4s44KG44GG44GYDQor44GK44Gv44GXLOOBsuOCjeOBlw0KK+OBiuOBnyzjgbXjgb/jgYoNCivjgYrjgoLjgoos44GX44Ga44GC44GNDQor44GK44GX44G+LOOBsuOBleOBlw0KK+OBiuOBi+OCguOBqCzjgYLjgoTjgZMNCivjgbLjgo3jgZss44GL44Ga44KEDQor44GK44G/44GaLOOBsuOCjeOBlw0KK+OBiuOBrizjgajjgYrjgosNCivjgYrjgaHjgYLjgYQs44GN44KI44GoDQor44GK44GL44G5LOOBqOOBiuOCiw0KK+OBiuOBn+OBqyzjgobjgY3jgb7jgZUNCivjgYrjgY/jga4s44Gy44KN44GXDQor44GK44GZ44GMLOOBn+OBi+OBlw0KK+OBiuOBruOBjSzjgbLjgo3jgZcNCivjgYrjgbLjgZcs44Gf44GL44Gu44G2DQor44GK44GL44GgLOOBk+OBqOOBjw0KK+OBiuOBv+OBmOOCgyzjgb/jgoQNCivjgZXjgZ/jgZEs44G144G/44GKDQor44GK44Gg44GOLOOBteOBmOOBkw0KK+OBiuOBnyzjgojjgZfjga7jgooNCivjgYrjgbXjgaEs44KG44Gf44GLDQor44GK44GL44KPLOOBn+OBi+OBlw0KK+OBiuOBi+OBqSzjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgZXjgo8s44GTDQor44GK44GO44GV44KPLOOBk+OBhuOBhOOBoQ0KK+OBiuOBi+OBuSzjgajjgoLjgobjgY0NCivjgYrjgajjgojjgZcs44KE44GZ44GKDQor44GK44GM44KPLOOBv+OBpOOBig0KK+OBiuOCiuOBjOOBlSzjgb7jgZXjgbLjgZUNCivjgYrjgbAs44Gf44GEDQor44GK44Gw44GfLOOBguOBjeOBsuOCjQ0KK+OBiuOBrizjgZfjgZLjgYoNCivjgYrjgZXjgYss44GR44KT44GE44GhDQor44GK44G/44GtLOOBi+OBiuOCiw0KK+OBiuOBnyzjgZjjgofjgZgNCivjgYTjga7jgYbjgYgs44KC44Go44Gk44GQDQor44GK44GT44GXLOOChuOBjeOBsuOCjQ0KK+OBiuOBluOCjyzjgaTjga3jgYoNCivjgYrjgYvjgbks44Gv44Gh44KNDQor44GK44G844KJLOOBleOBqOOCiw0KK+OBiuOBnyzjgZ/jgaDjgojjgZcNCivjgYrjgZbjgY0s44GL44GK44KLDQor44GK44GP44GgLOOBleOBqOOCiw0KK+OBiuOBluOCjyzjgbLjgafjgY0NCivjgYrjgYvjgaAs44KG44GN44Gy44KNDQor44GK44Gk44GLLOOBguOBpOOBlw0KK+OBiuOBruOBp+OCiSzjgbLjgafjgYoNCivjgYrjgZfjgYos44Gf44Gk44KNDQor44GK44Gg44GX44G+LOOChOOBmeOBn+OBkQ0KK+OBiuOBluOBjSzjgobjgY3jgZMNCivjgb7jgYjjgaAs44Gf44GL44GXDQor44GK44GNLOOBn+OBi+OCiOOBlw0KK+OBiuOBruOBoCzjgb7jgZXjgoQNCivjgYrjgarjgY4s44GR44KT44GeDQor44GK44GP44GgLOOCiOOBl+OBsuOBkw0KK+OBiuOBsuOCiSzjgYLjgY3jgYoNCivjgYrjga7jgZbjgo8s44GX44GS44GNDQor44GK44GO44Gv44KJLOOBsuOBp+OBig0KK+OBiuOBj+OBvizjgZHjgYTjgYTjgaENCivjgYrjga/jgoks44GI44GE44GY44KNDQor44GK44GNLOOBmOOCh+OBsuOBoeOCjQ0KK+OBiuOBjOOCjyzjgZjjgoXjgavjgaENCivjgYrjgbLjgoMs44KE44GZ44Gy44KNDQor44GK44GV44KPLOOBpuOCi+OBguOBjQ0KK+OBiuOBr+OCiSzjgZnjgZnjgoANCivjgYrjgaAs44GT44GG44GYDQor44GK44GW44KPLOOBk+OBhuOBhOOBoQ0KK+OBiuOBjOOBnyzjgZ/jgaDjgZfjgZINCivjgYrjgYvjga4s44Gf44Gg44GXDQor44GK44Gy44GXLOOBl+OBkuOCiw0KK+OBiuOBquOBhCzjgb/jgaTjgYoNCivjgYrjgaTjgYss44G+44GV44GKDQor44GK44Gk44GLLOOBqOOBjeOBiA0KK+OBiuOBhOOBpyzjgYLjgY3jgokNCivjgYrjgY3jgoTjgb4s44KI44GX44GN44KIDQor44GK44GQ44GXLOOBm+OBpOOBmA0KK+OBiuOBoCzjgajjgZfjgbLjgZMNCivjgYrjgYvjgbDjgoTjgZcs44GP44Gr44GC44GNDQor44GK44Gf44GrLOOBi+OBmuOBig0KK+OBiuOBpOOBjSzjga7jgbbjgbLjgo0NCivjgYrjgYvjgaAs44GL44Gk44GZ44GRDQor44GK44GZ44G/LOOBn+OBpOOChA0KK+OBiuOBsuOBjOOCjyzjgbLjgafjgbsNCivjgYrjgYvjgaAs44GV44G244KNDQor44GK44GW44KPLOOBsuOCjeOCiOOBlw0KK+OBiuOBn+OBqyzjgZ/jgYvjgZMNCivjgYrjgZbjgY0s44G/44Gk44GKDQor44GK44GfLOOCiuOCh+OBmeOBkQ0KK+OChOOBquOBjuOChCzjgYLjgY3jgZMNCivjgarjgYvjgZ/jgass44GX44G+DQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBv+OBj+OBqyzjgZjjgoXjgpPjgZMNCivjgZnjgZrjgY0s44Gm44Gk44GKDQor44Gv44Gg44GuLOOCiOOBl+OBguOBjQ0KK+OBv+OChOOBvizjgYvjgZrjgZMNCivjgZ/jgYvjga/jgZcs44GC44GR44G/DQor44GX44KJ44GK44GM44KPLOOChOOBmeOBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaDjgbLjgo0NCivjgb7jgaTjgZbjgY0s44GY44KF44KT44GYDQor44KE44G+44GX44GfLOOBguOChuOBvw0KK+OBl+OCguOChOOBvizjgbLjgo3jgZcNCivjgbXjgZ/jgoDjgoks44Gh44Gv44KLDQor44GP44KPLOOBn+OBi+OBr+OCiw0KK+OBquOBi+OCgOOCiSzjgZnjgZnjgoANCivjgojjgZPjgoTjgb4s44GL44Ga44Gy44GTDQor44Gy44KL44G+LOOBpuOBpOOCjQ0KK+OBn+OBoeOBi+OCjyzjgbLjgo3jgobjgY0NCivjgo/jgYvjgbDjgoTjgZcs44G+44GV44GTDQor44Gf44GL44Gv44GfLOOChuOBi+OCig0KK+OBguOBuSzjgZfjgpPjgYTjgaENCivjgZvjgY0s44Gy44Gn44GXDQor44KE44G+44GW44GNLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBrSzjgZjjgoXjgavjgaENCivjgZ/jgZbjgo8s44KG44GN44G+44GVDQor44GL44GY44GL44KPLOOBi+OBiuOCig0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgYvjgo/jgYbjgaEs44KJ44GE44GfDQor44GK44Gy44KD44G+LOOBguOBneOBiw0KK+OBl+OCk+OBv+OChyzjgY3jgYTjgaHjgo3jgYYNCivjgZ/jgaHjgo/jgaAs44Gf44GL44KI44GXDQor44GK44GP44G8LOOBl+OBkuOCiw0KK+OBqOOBlCzjga7jgbbjgobjgY0NCivjgarjgYzjgY/jgoks44Gf44GL44GXDQor44GE44Go44GGLOOBqOOBl+OBv+OBpA0KK+OChOOBvuOBluOBjSzjgbLjgo3jgYLjgY0NCivjgYvjgZbjgb4s44KG44GN44GTDQor44GL44KT44Gw44KE44GXLOOBquOBiuOBvw0KK+OBleOBleOBrizjgabjgovjgb8NCivjgYvjgo/jgZfjgb4s44Go44KCDQor44GX44KT44GQ44GGLOOBiOOBv+OBkw0KK+OBk+OBhOOBmuOBvyzjgorjgoXjgZQNCivjgYvjga3jgZMs44Gy44Go44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBsuOCjQ0KK+OBi+OCguOBl+OBnyzjgZjjgoXjgpPjgZgNCivjgZ/jgoDjgoks44GC44GV44GTDQor44Gv44Gb44GM44KPLOOBvuOBleOBsuOCjQ0KK+OBj+OCiuOBr+OCiSzjgb7jgorjgYgNCivjgYvjgarjgYrjgYss44Gu44G244GTDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBkw0KK+OBsuOBhOOBlyzjgarjgYrjgb8NCivjgavjgbjjgYQs44Gm44Gk44KEDQor44G+44KL44GfLOOBsuOCjeOChuOBjQ0KK+OBqOOBsuOCg+OBvizjgZ/jgYvjga/jgosNCivjgZvjgY3jgZbjgo8s44GR44KT44Gd44GGDQor44GC44KK44G+LOOBm+OBhA0KK+OBj+OCiuOBr+OCiSzjga/jgovjgobjgY0NCivjgZnjgb/jga4s44Gy44Gn44GKDQor44KI44GX44GgLOOCgeOBhOOBkw0KK+OBjeOBruOBl+OBnyzjgb/jgobjgY0NCivjgYrjgaHjgYLjgYQs44Gu44KK44GC44GNDQor44GG44G+44KE44Gv44KJLOOBn+OBj+OChA0KK+OBu+OBneOBi+OCjyzjgojjgZfjgb8NCivjgbXjgYvjgYzjgo8s44GZ44GI44Gk44GQDQor44GL44KP44KA44KJLOOBl+OCheOBhOOBoQ0KK+OBvuOBpOOBhCzjgZXjgaHjgogNCivjgojjgZfjgoLjgags44Gf44GL44GXDQor44GG44Gq44GL44G/LOOBsuOCjeOBteOBvw0KK+OBi+OBreOBvuOBpCzjgbLjgo3jgZcNCivjgYvjgo/jgYvjgb8s44KG44GN44Gf44GLDQor44Go44KI44GgLOOBn+OBi+OChuOBjQ0KK+OChOOBrizjgYTjgY/jgZMNCivjgZvjgY0s44Gq44GK44GTDQor44Gq44GL44Gr44GXLOOBquOBvw0KK+OBr+OBl+OCguOBqCzjgaHjgYsNCivjgbXjgYvjgoQs44KE44KI44GEDQor44G/44KE44KC44GoLOOBqOOCguOBiA0KK+OBn+OBkeOBoCzjgb/jga7jgosNCivjgb/jgoTjgZbjgo8s44Gy44Gn44GNDQor44GE44GR44GgLOOBqOOCguOBkw0KK+OBiuOBl+OBvizjgb/jgobjgY0NCivjgarjgYvjgoDjgoks44KE44GZ44G/DQor44GU44GoLOOBsuOCjeOBkw0KK+OBhuOBl+OBlOOCgSzjgZfjgpPjgZgNCivjgY/jgo/jgoTjgb4s44GI44GE44GeDQor44Gk44GL44GgLOOBkeOBhOOBkw0KK+OCgOOCieOBnyzjgZ/jgYvjgbLjgo0NCivjgZXjgajjgYYs44Go44KC44GTDQor44GP44KN44GgLOOBleOBjeOBkw0KK+OBmeOBjuOCguOBqCzjgb7jgZPjgagNCivjgoTjgZnjgaAs44Gy44Gn44GKDQor44GN44GG44GhLOOBguOBjeOBsuOBkw0KK+OBkeOBqeOBhuOBhOOCkyzjgZ/jgYvjgYLjgY0NCivjgZ/jgarjgYss44Gy44Go44GXDQor44Gq44GL44KA44KJLOOBguOBjQ0KK+OBj+OCiuOBr+OCiSzjgY/jgavjgYLjgY0NCivjgZ/jgY3jgZbjgo8s44Gy44Gn44GP44GrDQor44GG44GI44GgLOOBqOOBl+OBteOBvw0KK+OBk+OBuSzjgb/jgY3jgYoNCivjga7jgZDjgaEs44GL44Ga44Gy44GTDQor44GT44GuLOOBsuOCjeOBlw0KK+OBqOOBv+OBnyzjgYjjgorjgZMNCivjgYrjgZ8s44KG44GG44GE44Gh44KN44GGDQor44G+44GNLOOBsuOCjeOBlw0KK+OBguOBvuOBrizjgbLjgo3jgYLjgY0NCivjgZPjgb/jga0s44Gh44Gv44KLDQor44GV44Go44GGLOOBoeOBi+OBig0KK+OBhOOBvuOBpyzjgojjgZfjgZ/jgYsNCivjgb7jgaTjgarjgYws44GL44GK44KKDQor44GZ44Ga44GNLOOBj+OBq+OBig0KK+OBvuOBpOOBiizjgZPjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44GV44Go44GXDQor44KI44GX44GW44KPLOOBmOOCheOBq+OBoQ0KK+OBhuOChOOBvizjgaHjgYsNCivjgYLjgpPjganjgYYs44Gy44KN44GC44GNDQor44GZ44Ga44GNLOOBqOOCiOOBsuOBkw0KK+OCiOOBl+OBoCzjgYvjgZrjga7jgooNCivjgYvjgo/jgaAs44Gy44Gn44GC44GNDQor44G144GP44GgLOOBsuOBp+OBguOBjQ0KK+OCguOCiuOBl+OBvizjgbXjgb/jgYoNCivjgaTjgaHjgaAs44Go44KC44Gy44GTDQor44GV44GL44GELOOBi+OBquOCgQ0KK+OBpOOBi+OBoCzjgobjgY3jgZMNCivjga/jgaPjgajjgoos44Gy44GL44KLDQor44Gf44KA44KJLOOBkeOCk+OBhOOBoeOCjQ0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgbLjgo0NCivjgZPjgZnjgY4s44Go44KC44KEDQor44Gy44KJ44GfLOOChuOBhuOBmA0KK+OBmeOBjuOChOOBvizjgZ/jgaTjgoQNCivjgoLjgorjgYvjgo8s44Gf44GR44GXDQor44GL44Gp44GfLOOBi+OBiA0KK+OBleOBrizjgY3jgofjgYTjgaENCivjgYrjgZbjgY0s44KP44Gf44KLDQor44KI44GT44G+44GkLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgZMNCivjgYTjgZfjgZXjgYss44GV44Go44GXDQor44GE44GX44GW44KPLOOBi+OBmuOBqOOBlw0KK+OBk+OBsOOChOOBlyzjgYjjgb/jgZMNCivjgojjgZfjgaAs44GR44GEDQor44GN44KA44KJLOOBvuOBleOBlw0KK+OBiuOBpOOBiyzjgajjgYbjgosNCivjgYLjgaDjgaEs44G/44Gh44KE44GZDQor44GC44GL44GV44GLLOOBguOBpOOBlw0KK+OBv+OChOOCguOBqCzjgbLjgo3jgZcNCivjgYTjgaHjgoDjgoks44GT44GG44GYDQor44GK44GX44GfLOOBquOBiuOBjQ0KK+OBu+OCk+OBoCzjgZ/jgYvjgYLjgY0NCivjgYvjgoTjgazjgb4s44GR44GE44GfDQor44Gu44GW44GNLOOCiOOBl+OChuOBjQ0KK+OBi+OBqeOCj+OBjSzjgoLjgajjga/jgosNCivjgYrjgZgs44GC44GN44Gy44KNDQor44Gf44GQ44GhLOOBsuOCjeOBlw0KK+OBn+OBkeOBhOOBlyzjgabjgaTjgYoNCivjgbLjgonjgYQs44GL44Gk44Gy44GVDQor44GL44Gq44GW44KPLOOChuOBv+OBkw0KK+OBteOCi+OBi+OCjyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgoLjgorjgarjgYss44KG44Ga44GNDQor44GC44KJ44GELOOBmOOCheOCkw0KK+OBn+OBquOBiyzjgajjgoLjgYLjgY0NCivjgZfjgb/jgZos44KK44GI44GTDQor44GE44Gh44Gv44KJLOOBn+OBkeOCiw0KK+OBjeOBn+OBruOBr+OCiSzjgZ/jgYvjgZcNCivjgY3jgZ/jgYos44GX44KH44GG44GYDQor44KC44KK44KC44GoLOOBv+OBqeOCig0KK+OBjeOBn+OCgOOCiSzjgYvjgYrjgooNCivjgZXjgZXjgZbjgo8s44Gu44G244KG44GNDQor44G+44Gk44GK44GLLOOBiuOBleOCgA0KK+OBk+OBhuOCiSzjgZPjgYbjgZgNCivjgb/jgo8s44KG44GG44GYDQor44KI44GX44GK44GLLOOBteOBmOOBiA0KK+OBu+OCiizjgoTjgZnjgbLjgo0NCivjgZXjgYTjgajjgYYs44KE44GZ44Gk44GtDQor44Gq44GM44GbLOOBguOBjeOBqA0KK+OCguOCiuOBl+OBvizjgZfjgpPjgZgNCivjgYrjgo/jgoos44GY44KF44Gr44GhDQor44Gf44Gq44GLLOOBiOOCiuOBiw0KK+OBpuOCieOCgOOCiSzjgb7jgZXjgogNCivjgZPjgbDjgoTjgZcs44Go44GX44GC44GNDQor44GV44GE44Go44GGLOOCiOOBl+OBruOCig0KK+OBjeOCgOOCiSzjgojjgZfjgobjgY0NCivjga/jgZfjgoLjgags44G+44GV44KLDQor44Gq44GL44GM44KPLOOBsuOBp+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgajjgoLjgbLjgagNCivjga/jgY7jgo/jgoks44Gy44Gn44GNDQor44Gr44GX44GL44KPLOOCiuOBi+OBkw0KK+OBjeOBn+OBmOOBvizjgZ/jgZHjgZcNCivjgZ/jgYvjgYbjgoks44Gq44GK44GTDQor44GC44GV44GgLOOBn+OBi+OBsuOCjQ0KK+OBjeOBn+OBmuOCgSzjgbLjgo3jgZMNCivjga3jgoLjgags44Gy44KN44GTDQor44Gf44Gq44GLLOOChuOBv+OBkw0KK+OBn+OBquOBiyzjgojjgZfjgbLjgagNCivjgYLjgaDjgaEs44Gy44Gn44Gv44KLDQor44Gv44KJLOOBsuOCjeOBiw0KK+OBguOBi+OBvuOBpCzjgb7jgY3jgZMNCivjgYTjgb7jgoDjgoks44G/44GNDQor44KA44KJ44KE44G+LOOBqOOBl+OBvuOBlQ0KK+OBn+OBkeOBhuOBoSzjgY3jgofjgZ4NCivjgZrjgZcs44Gy44KN44Gu44KKDQor44GT44Gw44KE44GXLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgojjgZfjgbLjgZUNCivjga/jgb7jgZDjgaEs44Gm44Gk44KEDQor44GL44GS44KE44G+LOOBvuOBleOBiuOBjQ0KK+OBi+OBquOCguOCiizjgY/jgavjgbLjgZMNCivjgYvjgajjgoos44Go44KC44G/DQor44GC44KJ44GELOOBk+OBhuOBhOOBoQ0KK+OBv+OChOOBnyzjgoTjgZnjgYoNCivjgZnjgZrjgY0s44Gy44Gn44KIDQor44Gv44KL44GfLOOBguOCieOBnw0KK+OBquOBi+OBluOCjyzjgo/jgYvjgZMNCivjgZnjgYws44G+44GV44Gy44GTDQor44G+44GI44Gn44KJLOOBi+OBmuOBsuOCjQ0KK+OBguOCieOBvuOBjSzjgYvjgZrjgbLjgZMNCivjgY3jgZ/jga4s44G+44GV44KG44GNDQor44KI44GX44GuLOOBkeOCk+OBlA0KK+OBv+OBj+OCiuOChCzjgYLjgaTjgZcNCivjgYrjgY/jga7jgY4s44KI44GYDQor44GV44GP44KJ44GELOOBn+OBi+OChuOBjQ0KK+OBk+OCk+OBqSzjgoTjgZnjgYoNCivjgZnjgZrjgY0s44GL44G7DQor44GP44KK44Gv44KJLOOBguOBpOOBkw0KK+OCgOOBk+OBhuOBkOOBoSzjgZ3jgYTjgaENCivjgbXjgZjjgYQs44Gy44KN44KG44GNDQor44GL44GSLOOBsuOBp+OBjQ0KK+OBvuOBiOOBoCzjgaTjgojjgZcNCivjgarjgYzjgbvjgoos44GX44KH44G444GEDQor44Gk44GYLOOBvuOCiuOBkw0KK+OBjeOCgOOCiSzjgYjjgb/jgZMNCivjgb7jgaTjgYos44Gy44Gn44KEDQor44Gf44Gm44GuLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgb7jgZXjgobjgY0NCivjgZnjgZbjgY0s44Gm44KL44KG44GNDQor44GE44KP44GV44GNLOOBguOBpOOBlw0KK+OBleOBqOOBhizjgZ/jgaTjgoQNCivjgavjgaPjgZ8s44GX44GS44G/44GkDQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBl+OBvuOBoCzjgZHjgpPjgZgNCivjgZ/jgavjgZDjgaEs44KI44GX44GL44GkDQor44G744KT44GgLOOBquOBig0KK+OBquOBi+OBn+OBqyzjga7jgorjgZMNCivjgb/jgoTjgZjjgb4s44GP44G/44GTDQor44GP44GN44KE44G+LOOBvuOBjQ0KK+OBm+OBjeOBrSzjgYLjgY3jgbLjgo0NCivjgojjgZfjga/jgoks44KG44GG44GTDQor44Gy44KJ44GfLOOBruOBtuOChA0KK+OBquOBjOOBleOCjyzjgobjgY3jgZMNCivjgarjgYvjgYzjgY0s44KC44KC44GTDQor44GP44KN44GL44KPLOOBl+OCk+OBn+OCjeOBhg0KK+OBi+OBkeOBn+OCiizjgZPjgYbjgYTjgaENCivjgYTjgajjgYYs44Gu44KK44KI44GXDQor44G+44GI44GL44KPLOOBvuOBk+OBqA0KK+OBvuOBpOOBoCzjgZ/jgaTjgoQNCivjgY/jgo/jga/jgoks44G/44KE44GzDQor44GE44GE44Ga44GLLOOChuOCig0KK+OBvuOBmOOBvizjgaDjgYTjgYvjgpMNCivjgoDjgonjgZ8s44G+44KKDQor44GC44GN44GE44GRLOOBguOBi+OBrQ0KK+OBquOBv+OBjSzjga7jgorjgZMNCivjgojjgZfjga4s44GZ44Gq44GKDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBn+OCgOOCiSzjgZfjgoXjgpMNCivjgYvjgoHjgaAs44GT44GG44GYDQor44Gr44GXLOOCiuOCh+OBn+OCjeOBhg0KK+OBhOOBquOBiuOBiyzjgZXjgajjgosNCivjgYTjgo/jgZXjgY0s44G+44GV44GL44GaDQor44GL44KT44GgLOOBqOOBl+OBig0KK+OBn+OBoCzjgZHjgYTjgZMNCivjgYbjgaQs44KE44GZ44KG44GNDQor44GX44G+44GgLOOBkeOCk+OBmOOCjQ0KK+OCiOOBl+OBoCzjgYvjgojjgZMNCivjgYrjgY/jgYzjgo8s44GY44KF44KT44GYDQor44GZ44Ga44GNLOOBguOBjeOBig0KK+OBn+OCk+OBvSzjgb7jgZPjgagNCivjgo/jgaAs44KP44GL44GTDQor44GG44KL44GX44Gv44KJLOOBsuOBp+OChuOBjQ0KK+OBhOOBhOOBiizjgajjgoLjgZMNCivjgavjgYTjga/jgoks44KG44GG44GE44GhDQor44GK44KA44KJLOOBpuOBpOOChA0KK+OBhOOBruOBhuOBiCzjgb/jgY3jgZMNCivjgoLjgorjgarjgYws44KG44GNDQor44GV44GuLOOBv+OBqeOCig0KK+OBquOBi+OBn+OBqyzjgZfjgpPjgoQNCivjgYLjgbks44KE44GZ44GXDQor44GG44Gh44GgLOOBkeOCk+OBmA0KK+OBsuOCjeOBnyzjgobjgYbjgZgNCivjgYTjgo/jgY/jgoks44Gq44G/DQor44GE44GX44GK44GLLOOBiOOBhOOBjQ0KK+OBqOOBjeOBnyzjgajjgoLjgYLjgY0NCivjgY3jga7jgZfjgZ8s44G+44GV44GKDQor44G/44Ga44GuLOOBsuOCjeOChuOBjQ0KK+OChOOBmeOBiCzjgojjgZfjgbXjgb8NCivjgYTjgo/jgoLjgags44GR44GE44GTDQor44KE44G+44GYLOOBv+OBreOBkw0KK+OBk+OBleOBhCzjgarjgYrjgZMNCivjgY/jgbws44GI44GE44GZ44GRDQor44Gh44GwLOOBn+OCjeOBhg0KK+OChOOBpOOBn+OBqyzjgY3jgofjgZMNCivjgYTjgYzjgonjgZcs44Gf44GP44KEDQor44GC44KJ44GL44KPLOOBnOOCk+OBmOOCjQ0KK+OBpuOCieOBleOBjSzjgajjgZfjgbLjgo0NCivjgZvjgZTjgYgs44Gy44KN44GXDQor44Go44GP44GX44G+LOOBvuOBleOChOOBmQ0KK+OBsOOCk+OBqSzjgb7jgZXjgarjgYoNCivjgZ/jgY3jgZbjgo8s44GR44KT44GYDQor44G/44Ga44GV44GNLOOChuOBleOBjw0KK+OBn+OBjeOBkOOBoSzjgYvjgYTjgZjjgo0NCivjgbLjgYrjgY0s44Gy44Gn44GC44GNDQor44Gq44GL44GELOOBquOBpOOBkw0KK+OBiuOBhOOBi+OCjyzjgarjgYrjgZnjgZENCivjgb7jgaTjgoDjgoks44GC44GE44GTDQor44GI44KT44GpLOOBvuOBleOBvw0KK+OBn+OBmOOBvizjgZXjgajjgosNCivjgoTjgb7jgZbjgY0s44KG44GL44KKDQor44Gb44Gu44GKLOOChuOBhuOBkw0KK+OBr+OCieOBoCzjgajjgZfjgYgNCivjgbXjgY/jgYQs44Gy44GL44KLDQor44G+44Gk44GG44KJLOOBguOBpOOBlw0KK+OBi+OCj+OCgOOCiSzjgZ/jgYvjgZrjgb8NCivjgabjgonjgoLjgags44GC44GL44GtDQor44Gv44GO44KP44KJLOOCguOBqOOBguOBjQ0KK+OBquOBi+OBl+OBvizjgZXjgajjgZMNCivjgY3jga7jgZfjgZ8s44G+44GV44GTDQor44GC44KJ44GELOOBl+OCh+OBkw0KK+OCgOOCieOChOOBvizjgZHjgpPjgZgNCivjgZXjgYjjgZDjgZUs44GR44KT44Gf44KN44GG44GGDQor44Gf44Gq44GLLOOBkeOBhA0KK+OBvuOBiOOBoCzjgb7jgZXjgZcNCivjgb/jgoTjgZbjgY0s44GC44Gk44G/DQor44GE44GR44G5LOOCjOOBhOOBkw0KK+OBj+OCj+OBsOOCiSzjgaHjgZDjgZUNCivjgojjgaAs44KI44GX44GKDQor44Gf44Gh44Gw44GqLOOBleOBqOOBkw0KK+OChOOBvuOBkOOBoSzjgYjjgYTjgZgNCivjgYTjgZfjga/jgoks44GT44GG44GYDQor44Gf44GN44GW44KPLOOBqOOBl+OBvuOBlQ0KK+OBsuOCieOBrizjgajjgoLjgYsNCivjgYvjgo/jgZXjgY0s44GR44GEDQor44KE44G+44KC44GoLOOChuOBhuOBhOOBoQ0KK+OBguOCieOBmyzjgZ/jgYvjgb/jgaENCivjgoTjgarjgY7jgZXjgo8s44Gf44GP44G/DQor44GX44GK44KELOOBiOOBv+OBkw0KK+OBleOBqOOBhizjgb/jgaHjgYoNCivjgYvjgajjgYYs44Gh44Ga44KLDQor44GK44GuLOOBmOOCheOCk+OBkw0KK+OBjeOBn+OBr+OBvizjgajjgoLjgb8NCivjgZTjgags44G/44Gk44GTDQor44Gr44Gu44G/44KELOOBiuOBleOCgA0KK+OBhuOBmeOBhCzjgYvjgZrjgb8NCivjgb/jgZrjgZfjgb4s44GC44GN44KJDQor44GZ44Gp44GGLOOBn+OBi+OBruOCig0KK+OBhOOBkeOBoCzjgZ/jgYvjgYoNCivjgarjgYvjgbLjgYzjgZcs44KE44GZ44GC44GNDQor44GP44KK44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBqOOBoCzjgZHjgYTjgZMNCivjga/jgYvjgb7jgZ8s44G+44GV44GC44GNDQor44Gf44Gr44GQ44GhLOOCiOOBl+OBtuOBvw0KK+OBhOOBvuOBnOOBjSzjgZ/jgYvjgojjgZcNCivjgbvjgorjgYos44Gy44GV44Go44GXDQor44GL44GZ44GMLOOBguOBpOOBlw0KK+OBi+OCj+OBmyzjgb7jgZXjga7jgbYNCivjgZXjgajjgYYs44GC44GN44GIDQor44Gf44GL44Gq44GXLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBvuOBpOOBl+OBnyzjgbLjgajjgb8NCivjgoTjgZDjgaEs44KI44GX44Gf44GLDQor44GL44Gt44GTLOOChOOBmeOBvuOBlQ0KK+OBsuOBoOOBiyzjga7jgorjgZMNCivjgZXjgaPjgZUs44G+44KG44G/DQor44Gd44GMLOOBqOOCguOBruOCig0KK+OBmeOBjuOBhuOCiSzjgZ/jgZHjgosNCivjgZXjgajjgYYs44G+44GT44GoDQor44Gf44Gr44Gw44KE44GXLOOBguOBjeOBkw0KK+OBq+OBl+OBiuOBiyzjgYLjgorjgZfjgZINCivjgajjgoLjgarjgYws44KN44KP44KLDQor44GK44Gv44GXLOOBsuOCjeOBn+OBiw0KK+OBquOBjOOBl+OBvizjgYLjgaTjga7jgbYNCivjgZ/jgavjgYzjgY0s44Gv44KL44G/DQor44GT44GG44GgLOOBhOOBj+OBkw0KK+OBjeOCiOOBrizjgb7jgobjgb8NCivjgoTjgb7jgYvjgo8s44Gk44KI44GXDQor44Gq44GL44GY44G+LOOBquOBiuOBkw0KK+OCguOBpuOBjizjgbLjgo3jgb8NCivjgYrjgazjgb4s44Gu44G244GC44GNDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBteOCi+OBhOOBiCzjgbLjgafjgY0NCivjgYLjgYTjgoLjgags44GL44Ga44KG44GNDQor44KI44GT44GKLOOBv+OBig0KK+OBq+OBl+OBi+OCjyzjgZ/jgYTjgaENCivjgbPjgags44Gf44GP44KEDQor44GN44Gf44KA44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBvuOBi+OCjyzjgYLjgb/jgZMNCivjgajjgb/jgZ8s44GV44Gh44GTDQor44Gk44Gh44GgLOOBn+OBi+OBlw0KK+OBhOOBl+OBkOOCjSzjgarjgYrjgY0NCivjgb7jgaTjgYos44Gy44Gn44GNDQor44GG44GI44KC44GoLOOBm+OBhOOBnw0KK+OBhOOBhOOBoCzjgZvjgYTjgZMNCivjgZnjgZrjgY0s44GT44G/44GqDQor44Gf44KA44KJLOOBleOBqOOBlw0KK+OBiuOBj+OBoCzjgajjgZfjgYoNCivjgbvjgoos44Gy44KN44GXDQor44GP44GV44Gk44GQLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgobjgZ/jgYsNCivjgYLjgZXjga/jgoks44GX44GS44GKDQor44Go44GP44GgLOOCiOOBl+OBkw0KK+OBhOOBp+OBnyzjgoLjgajjgbXjgb8NCivjgYTjgajjgYYs44GP44Gr44GKDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBpOOBmOOBleOCjyzjgojjgZfjgarjgYwNCivjgYrjga4s44GX44KT44KEDQor44GE44KP44G+LOOBleOBoOOBr+OCiw0KK+OBoOOBhOOBlOOBjyzjgZ/jgZHjgZcNCivjgoTjgb7jgoDjgoks44Gy44Gn44GoDQor44Gv44Gb44GM44KPLOOCiuOBiA0KK+OBhOOBjizjgajjgYrjgosNCivjgb7jgYvjgbks44GT44GG44GE44Gh44KNDQor44GK44GL44KC44GoLOOBv+OBjeOBkw0KK+OBiuOBr+OCiSzjgZfjgZLjgbLjgo0NCivjgZvjgY3jgoTjgb4s44GL44Ga44KI44GXDQor44GN44Gf44GY44G+LOOBruOBvOOCiw0KK+OBqOOCiuOBhuOBvyzjgojjgZfjgb8NCivjgb/jgoTjgZbjgY0s44KE44GZ44GXDQor44GG44GELOOBvuOBleOBquOBig0KK+OBj+OCieOCguOBoSzjgZ/jgYvjgbLjgo0NCivjgZfjgYrjgazjgb4s44G+44KT44Gq44KKDQor44KJ44GE44GfLOOCiOOBl+OBsuOCjQ0KK+OBl+OCguOBk+OBuSzjgabjgovjgb/jgaENCivjgZXjgo/jga4s44GN44GE44Gh44KN44GGDQor44GV44GL44Gr44GXLOOBkeOBhA0KK+OBleOBleOBjSzjgZPjgYbjgZgNCivjgZvjgYTjga4s44Gu44G244GC44GNDQor44GZ44Ga44GNLOOBmOOCheOBq+OBoQ0KK+OBleOBi+OCguOBqCzjgojjgZfjgYvjgZoNCivjgZnjgZrjgY0s44Go44GX44GL44GaDQor44GV44KP44GuLOOBn+OBi+OBsuOCjQ0KK+OBl+OBjCzjgb7jgZXjgYvjgaQNCivjgZTjgags44GL44Gk44GKDQor44GZ44GgLOOChuOBjeOBquOBig0KK+OBmeOBmuOBjSzjgYvjgZrjgYoNCivjgZXjgYvjgY3jgbDjgoks44Gy44KN44GC44GNDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBi+OBkOOBoSzjgZ/jgabjgYoNCivjgZnjgY7jgZXjgY0s44KI44GX44Gy44GoDQor44GZ44GI44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgafjgajjgZcNCivjgZfjgbDjgZ8s44GE44GP44GKDQor44GZ44GO44KE44G+LOOBruOBtuOBi+OBmg0KK+OBleOBi+OBhCzjgabjgovjgYoNCivjgZfjgb/jgZos44KG44GG44GYDQor44GZ44GO44KC44GoLOOBqOOBl+OBig0KK+OBleOBqOOBhizjgZHjgYTjgZ4NCivjgZvjgY0s44GC44GN44KI44GXDQor44GV44GP44KJ44GELOOBqOOBl+OBig0KK+OBm+OBjeOBkOOBoSzjgZfjgo0NCivjgZXjgajjgYYs44GL44Gk44KEDQor44GZ44Ga44GNLOOBpuOBpOOChA0KK+OBleOBhOOBqOOBhizjgajjgY/jgb7jgZUNCivjgZvjgY3jga0s44GY44KF44KT44GYDQor44GZ44Ga44GNLOOCiOOBl+OBkw0KK+OBhOOBhOOBoCzjgajjgZfjgYoNCivjgZnjgZrjgY0s44GR44KT44GYDQor44GV44GV44GNLOOCiOOBl+OBruOCig0KK+OBmeOBiOOBquOBjCzjgb/jgaTjgY/jgasNCivjgZXjgYvjgoLjgags44Gf44GL44GXDQor44GV44GE44Go44GGLOOBruOBtuOBguOBjQ0KK+OBmeOBjOOBiizjgZPjgajjgZgNCivjgZfjgb7jgZos44Gf44Gg44GKDQor44GV44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OBl+OBruOBluOBjSzjgZ/jgaDjgZcNCivjgZnjgZrjgY0s44Go44GX44GKDQor44GZ44Gq44GMLOOBn+OBj+OBmA0KK+OBleOBqOOBhizjgYrjgZXjgoANCivjgZnjgZrjgY0s44Gv44KL44KG44GNDQor44Gb44GN44GtLOOBk+OBmeOBkQ0KK+OBleOBleOBjSzjgYjjgYTjgZgNCivjgZXjgo/jgaAs44KG44Gu44GZ44GRDQor44GV44GE44Go44GGLOOBn+OBoOOBig0KK+OBl+OCguOBnuOBrizjgajjgojjgbXjgb8NCivjgZnjgYgs44Gk44Go44KADQor44GV44Gp44Go44KCLOOBjeOCiOOBn+OBiw0KK+OBm+OBjeOBrSzjgbLjgo3jgZcNCivjgZXjgajjgYYs44G/44Gk44GKDQor44GV44KT44GULOOBqOOBl+OBig0KK+OBmeOBqeOBhizjgbLjgafjgYLjgY0NCivjgZ3jga7jgaAs44G+44GV44G/DQor44GX44G+LOOBpuOBpOOBmA0KK+OBleOBqOOBhizjgb/jga7jgosNCivjgZXjgajjgYYs44G144G/44GKDQor44GX44G244KELOOBguOBjeOCiQ0KK+OBleOBqOOBhizjgojjgZfjgobjgY0NCivjgZXjgajjgYYs44GR44KTDQor44GV44GL44GfLOOBiuOBleOCgA0KK+OBleOBhOOBqOOBhizjgZHjgYTjgZ/jgo3jgYYNCivjgZnjgo/jgY0s44GV44Gg44Gu44KKDQor44Gd44KKLOOBqOOBl+OBig0KK+OBleOBi+OCguOBqCzjgYLjgY3jgokNCivjgZfjgonjgYTjgZcs44GL44Ga44GKDQor44GZ44Ga44GNLOOBn+OBoOOBsuOBkw0KK+OBl+OBvuOBoCzjgZ/jgYvjgZcNCivjgZnjgZrjgY0s44GC44GN44KJDQor44GZ44Ga44GNLOOBkeOCk+OBmeOBkQ0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgZnjgZrjgY0s44KI44GX44Gu44G2DQor44GV44Go44GGLOOBj+OBq+OBguOBjQ0KK+OBl+OBkuOBvuOBpCzjgarjgYrjgb8NCivjgZXjgYzjgoks44G/44Gu44KLDQor44GV44GE44Go44GGLOOCiOOBreOBng0KK+OBl+OCk+OBkCzjgajjgb/jgYoNCivjgZnjgYzjgazjgb4s44GL44Ga44GC44GNDQor44Gd44GMLOOBi+OBmuOBig0KK+OBleOBleOBjSzjgabjgovjgbLjgZMNCivjgZXjgajjgYYs44KI44Gt44GKDQor44GV44KP44GgLOOBiuOBleOCgA0KK+OBneOBvizjgZ/jgYvjgZcNCivjgZfjgbDjgZ8s44Gf44GR44GYDQor44GV44Go44GGLOOBl+OCheOBq+OBoQ0KK+OBleOBqOOBhizjgb7jgZXjgajjgZcNCivjgZfjgb7jgaAs44GC44GN44GKDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBleOBqOOBhizjgb7jgZXjgbLjgo0NCivjgZXjgYTjgajjgYYs44KI44GX44GKDQor44GX44KC44GnLOOBr+OBmOOCgQ0KK+OBleOBleOBjSzjgY3jgojjgZcNCivjgZXjgajjgYYs44Gk44Go44KADQor44GV44Go44GGLOOBjeOCiOOBlw0KK+OBleOCj+OBoCzjgZ/jgYvjgajjgZcNCivjgZfjgo3jgZXjgY0s44KG44GN44GKDQor44GX44Gw44GELOOBn+OBi+OBig0KK+OBleOBhOOBqOOBhizjgabjgovjga7jgbYNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44Gd44GM44G5LOOBruOBtuOChuOBjQ0KK+OBm+OBjOOCjyzjgZfjgZLjgosNCivjgZfjgb/jgZos44Gm44Gk44GKDQor44GZ44Ga44GNLOOBiuOBleOCgA0KK+OBl+OCjeOChOOBvizjgZ/jgZHjgYoNCivjgZfjgYTjgaos44G/44Gh44GTDQor44GV44KE44G+LOOBjeOCiOOBlw0KK+OBleOBi+OCguOBqCzjgbLjgafjgYoNCivjgZXjgajjgYYs44Gu44G244GKDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBmeOBmuOBjSzjgZfjgZLjgosNCivjgZXjgZXjgZss44Gy44Gn44GNDQor44GV44GP44KJ44GELOOBqOOBl+OBig0KK+OBl+OBvuOBoCzjgogNCivjgZXjgajjgYYs44Gy44GV44GKDQor44GX44KC44GuLOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgojjgbLjgaENCivjgZnjgY7jgoLjgags44GZ44GZ44KADQor44GX44G/44GaLOOBv+OBoeOBig0KK+OBleOBrizjgajjgZfjgYoNCivjgZnjgZrjgY0s44GE44GV44GKDQor44GX44G+44GgLOOBoeOBsuOCjQ0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjgZnjgY7jgbXjgZgs44KI44GY44KNDQor44GV44GL44GELOOCiOOBl+OBsuOBkw0KK+OBleOBi+OBkOOBoSzjgojjgZfjgYoNCivjgZnjgYzjgo/jgoks44G+44KC44KLDQor44GX44Gu44Ga44GLLOOBvuOBk+OBqA0KK+OBl+OBjCzjgbLjgo3jgZcNCivjgZXjgYvjgYzjgb8s44Gf44Gg44KI44GXDQor44GZ44Ga44GNLOOBpuOBpOOCjQ0KK+OBmeOBjuOBrizjgYvjgaTjgobjgY0NCivjgZnjgY7jgYbjgoks44G+44GV44GNDQor44GX44G/44GaLOOBm+OBhOOBmA0KK+OBmeOBmuOBjSzjgYvjgaTjgbLjgo0NCivjgZXjgZXjgZMs44KI44GZ44GRDQor44Gb44GNLOOCiOOBl+OBquOCig0KK+OBleOBqOOBhizjgb7jgZXjgYoNCivjgZfjgb4s44Gf44GR44GKDQor44GZ44Ga44GNLOOCiOOBl+OBruOBtg0KK+OBleOBi+OCguOBqCzjgZPjgbjjgYQNCivjgZXjgZXjgY0s44GL44Ga44Gy44GTDQor44GX44G+44GgLOOBr+OCi+OBsuOBlQ0KK+OBleOBhOOBqOOBhizjgbLjgajjgZcNCivjgZfjgYrjgZ8s44GX44KT44GE44GhDQor44GX44GK44GgLOOBiOOBhOOBmA0KK+OBmeOBoCzjgaDjgYTjgZXjgY8NCivjgZfjgYTjgaos44GY44KF44Gr44GhDQor44GX44GK44Gu44KELOOBv+OBpOOBig0KK+OBleOBhOOBl+OChyzjgajjgojjgb4NCivjgZ3jgYTjgaAs44GL44Ga44KG44GNDQor44Gd44G+LOOBsuOBp+OBig0KK+OBleOBqOOBhizjgZnjgZnjgoANCivjgZXjgajjgYYs44GL44Ga44G/DQor44GX44GK44Gw44KJLOOBn+OBkeOBl+OBkg0KK+OBleOBleOBiuOBiyzjgZvjgYTjgZ4NCivjgZXjgZXjgY0s44KG44GN44KI44GXDQor44Gb44GoLOOBn+OBpOOBmA0KK+OBl+OCheOBqSzjgbLjgo3jgZcNCivjgZXjgYvjgoLjgags44GN44KI44Gm44KLDQor44GV44GP44G+LOOCiOOBl+OBi+OBmg0KK+OBl+OBruOBluOCjyzjgbLjgo3jgZcNCivjgZfjgYrjgbDjgoks44GE44Gd44GYDQor44GV44GP44KJ44GELOOBn+OBoOOBsuOBlQ0KK+OBleOBqOOBhizjgajjgojjgYoNCivjgZXjgY/jgonjgYQs44GE44GV44KADQor44GV44GV44G5LOOBiOOBhOOBmA0KK+OBleOBqOOBhizjgZHjgpPjgZ4NCivjgZnjgY7jgYbjgoks44Gm44Gk44GKDQor44GV44GL44GELOOChOOBmeOBsuOCjQ0KK+OBneOBvizjgYjjgYTjgYTjgaENCivjgZ3jgbLjgoMs44GL44KT44GYDQor44Gd44Gt44GL44GkLOOBsuOCjeOBlw0KK+OBm+OBjeOBrSzjgZ/jgZHjgb/jgaENCivjgZnjgZrjgY0s44GN44KI44GIDQor44Gb44GN44GtLOOCiOOBl+OBn+OBiw0KK+OBleOBi+OBjeOBsOOCiSzjgb/jgaTjga7jgbYNCivjgZfjgoLjgYvjgo/jgbks44G144G/44GKDQor44GV44KP44KA44KJLOOBn+OBi+OBig0KK+OBm+OBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GV44GL44G+44GNLOOBpOOCiOOBlw0KK+OBleOBjOOCjyzjgbLjgo3jgobjgY0NCivjgZnjgY7jgoTjgb4s44KG44Ga44KLDQor44GZ44GO44KC44GoLOOCgeOBkOOCgA0KK+OBm+OBiizjgajjgZfjgYoNCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44GV44GL44GELOOCiuOCheOBng0KK+OBleOBj+OCieOBhCzjgobjgZ4NCivjgZvjgY3jga0s44G+44GV44GKDQor44GV44Go44GGLOOBruOBtuOBig0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjgZfjgb/jgZos44GC44GN44KJDQor44GV44GE44Go44GGLOOBn+OBkeOBig0KK+OBleOBj+OCieOBhCzjga7jgorjgYoNCivjgZnjgY7jgoTjgb4s44Go44GX44Gk44GQDQor44GX44Ga44GLLOOBi+OBmuOBqOOBlw0KK+OBl+OCieOBi+OCjyzjgZHjgpMNCivjgZXjgYTjgajjgYYs44Gq44KL44G/DQor44GV44GN44KC44KKLOOBmOOCheOBq+OBoQ0KK+OBleOBqOOBhizjgZPjgZrjgYgNCivjgZvjgY3jgZDjgaEs44Gy44Gn44GC44GNDQor44Gb44GN44GtLOOBqOOBl+OBsuOBlQ0KK+OBl+OBsOOBnyzjgZ/jgZHjgobjgY0NCivjgZnjgZrjgY0s44GTDQor44GV44GE44Go44GGLOOChuOBhuOBmA0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZvjgY3jga0s44G/44GN44GKDQor44GV44GL44GELOOBn+OBoOOBsuOCjQ0KK+OBleOBleOBiizjgb7jgZXjga7jgooNCivjgZnjganjgYYs44Gv44Gk44G/DQor44KC44KKLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgajjgZfjgYoNCivjgZXjgajjgYYs44G+44GV44GKDQor44GZ44Ga44GNLOOBvuOBleOBguOBjQ0KK+OBl+OCgOOCiSzjgoTjgZnjgYoNCivjgZfjgbDjgZXjgY0s44Gy44GV44Gq44GKDQor44GZ44GM44G+44GfLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgobjgZrjgosNCivjgZfjgYrjga7jgoQs44GE44KP44GKDQor44Gf44GL44Gv44GXLOOBpuOBpOOBig0KK+OBpOOBjeOChOOBvizjgYrjgY3jgajjgZcNCivjgaTjga7jgaAs44Gu44KK44GTDQor44Gf44GL44Gv44GXLOOBk+OBhuOBmOOCjQ0KK+OBqOOBj+OBluOCjyzjgZ/jgYvjgbLjgo0NCivjgZ/jgZDjgaEs44Gy44GV44GKDQor44Gf44GL44GOLOOBruOCiuOBig0KK+OBn+OBi+OBrizjgYrjgZXjgoANCivjgZ/jga/jgoks44Gv44KL44Gy44GTDQor44Go44KI44GV44KPLOOBl+OCk+OBmA0KK+OBqOOCiOOBvuOBmSzjgb7jgZPjgagNCivjgZ/jgYvjga/jgZcs44GX44KH44GYDQor44Gf44GR44GG44GhLOOBiOOBhOOBng0KK+OBn+OBjeOBhOOBlyzjgabjgovjgYoNCivjgZ/jgYvjgYTjgZcs44GE44GV44GKDQor44Gf44GL44GV44GNLOOBsuOCjeOBqOOBlw0KK+OBn+OBq+OBjOOCjyzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44Gf44Gq44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBvuOBjSzjgY3jgojjgYvjgZoNCivjgajjgbAs44Go44GX44KNDQor44Gf44Gw44GfLOOBjeOBj+OBig0KK+OBpOOBmCzjgojjgZfjgY0NCivjgZ/jgarjgYss44Gq44GK44GoDQor44Gf44GL44Gv44GXLOOCguOCiuOBr+OCiw0KK+OBqOOBj+OBquOBjCzjgb7jgZXjgYoNCivjgZ/jgZDjgaEs44Gy44Gn44GKDQor44Gf44GN44GW44KPLOOBpuOCi+OBv+OBpA0KK+OBqOOBvyzjgY3jgojjgYvjgZoNCivjgaTjgZgs44GT44GG44GE44GhDQor44GG44Gh44GgLOOBkeOBhOOBhOOBoQ0KK+OBn+OBquOBiyzjgb7jgZXjga7jgbYNCivjgaTjga3jgojjgZcs44Gm44GE44GYDQor44Gf44GL44GuLOOCiuOCh+OBmA0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjgYoNCivjgZ/jgYvjgoTjgarjgY4s44GR44KT44GYDQor44Gf44GR44GgLOOBsuOCjeOChuOBjQ0KK+OBn+OBvCzjgb7jgZXjgajjgZcNCivjgZ/jgarjgYss44GT44GG44GYDQor44Gf44GR44GG44GhLOOBsuOCjeOBlw0KK+OBn+OBi+OChOOBmSzjgb7jgZXjgZcNCivjgaTjgaHjgoQs44Gf44GL44GXDQor44Go44GP44Gq44GMLOOBn+OBi+OBig0KK+OBpOOBoeOBoCzjgYLjgaTjgZcNCivjgaTjgbzjgYQs44G+44GV44Gu44KKDQor44Gf44GL44Gv44GXLOOBjeOBv+OBig0KK+OBpOOBi+OCguOBqCzjgb7jgZXjgYoNCivjgZ/jgarjgYss44GL44Gk44GX44GSDQor44Go44KC44Gk44GtLOOBn+OBreOBvuOBlQ0KK+OBoeOBmCzjgZHjgYTjgZMNCivjgZXjgajjgYYs44Go44GX44GKDQor44Gf44GL44GfLOOBhOOCj+OBig0KK+OBqOOBr+OBnyzjga7jgorjgYvjgZoNCivjgZ/jgYvjga/jgZcs44KA44Gt44GKDQor44Gf44GL44Gv44G+LOOChuOBjeOBoQ0KK+OBpuOCieOBleOCjyzjgojjgYTjgaENCivjgZ/jgYvjgbDjgoTjgZcs44GR44GE44GZ44GRDQor44Gm44KJ44GgLOOChuOBn+OBiw0KK+OBpOOBi+OBoCzjgYvjgZrjgYoNCivjgZ/jgarjgYss44G+44GV44GNDQor44Go44KK44G+44KLLOOBqOOCiOOBvw0KK+OBpOOBoeOBoCzjgobjga/jgaQNCivjgZ/jgY3jgoLjgags44GR44KT44GYDQor44Gf44GN44GELOOBquOBiuOBi+OBnw0KK+OBn+OBreOBoCzjgYjjgYTjgYjjgaQNCivjgZ/jgoDjgoks44G+44GV44GX44GSDQor44Gf44Gp44GT44KNLOOBleOBoOOCgA0KK+OBn+OBi+OBiizjgZfjgZLjgosNCivjgZ/jgarjgYss44GZ44GZ44KADQor44Gf44GL44Gv44GXLOOBqOOBl+OBr+OCiw0KK+OBn+OBi+OBr+OBlyzjgZvjgYTjgZgNCivjgZ/jgYvjga/jgZcs44Gk44Gt44GKDQor44Go44G/44GfLOOCiOOBl+OBvw0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgZ/jgavjgZDjgaEs44KI44GX44GC44GNDQor44Gf44Gq44GLLOOBquOBiuOBkw0KK+OBpOOBvOOBhCzjgZfjgofjgZgNCivjgZ/jgZHjgYbjgaEs44GX44KF44GYDQor44Gk44GgLOOBm+OBhOOBmA0KK+OBn+OBkeOBoCzjgbLjgafjgYoNCivjgZ/jgZHjgYQs44Gf44G/44GKDQor44Gk44GY44GL44KPLOOBvuOCguOCiw0KK+OBn+OBkeOCgOOCiSzjgajjgZfjgbLjgZMNCivjgZ/jgY0s44Gy44Gn44GC44GNDQor44Gf44GL44GgLOOBkeOCk+OBmA0KK+OBn+OBjeOBluOCjyzjgojjgZfjga7jgooNCivjgZ/jgarjgYss44Gy44GV44GKDQor44Gf44Gr44KA44KJLOOBvuOBmeOBvw0KK+OCiOOBl+OBluOCjyzjgbLjgYvjgosNCivjgaTjga3jgYvjgo8s44Gv44Gk44GKDQor44Gf44Gq44GLLOOBl+OBkuOChuOBjQ0KK+OBn+OBi+OBoCzjgbXjgZjjgYoNCivjgaTjgoss44Go44GK44KLDQor44Gf44GrLOOBguOBpOOBruOCig0KK+OBn+OBkOOBoSzjgb/jgaHjgYLjgY0NCivjgZ/jgarjgYss44KG44GeDQor44Gf44Gr44GQ44GhLOOBsuOCjeOBvw0KK+OBn+OBquOBiyzjgbvjgbbjgpMNCivjgaTjgZgs44Go44KI44GXDQor44Gf44Gq44GLLOOBvuOBleOChuOBjQ0KK+OBpOOChuOBjSzjgZfjgZLjgYoNCivjgZ/jgb7jgoss44KG44GG44GE44GhDQor44Gk44Gh44KELOOBm+OBhOOBmOOChQ0KK+OBpOOCi+OBiuOBiyzjgb7jgZXjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44GC44GNDQor44Gf44GL44Gv44GXLOOBl+OBkuOCiw0KK+OBqOOBteOBj+OBmCzjgb7jgZXjgZgNCivjgZ/jgarjgYss44Gf44GR44KI44GXDQor44Gf44GL44GOLOOBvuOBleOBr+OCiw0KK+OBn+OBi+OBr+OBlyzjgZ/jgo3jgYYNCivjgZ/jgavjgZDjgaEs44Gy44KN44GXDQor44Go44KI44GgLOOBi+OBpOOBig0KK+OBn+OBi+OBjizjgYLjgY3jgokNCivjgZ/jgZHjgYQs44G+44GV44Gy44KNDQor44Gk44GgLOOBhOOBleOBig0KK+OBpOOBreOBsuOCjSzjgZjjgoXjgpPjgZ4NCivjgZ/jgY3jgZbjgo8s44GL44Ga44Gy44KNDQor44Gf44Gh44Gw44GqLOOBruOCiuOBv+OBpA0KK+OBn+OBi+OBr+OBlyzjgobjgbLjgaENCivjgZ/jgavjgZDjgaEs44GL44Gk44G/DQor44Gf44GR44GgLOOBsuOBleOBig0KK+OBpOOBoeOChCzjgb7jgZXjgb8NCivjgZ/jgYvjga/jgZcs44GR44GE44GYDQor44Gf44Gu44GG44GILOOBruOBtuOBig0KK+OBn+OBi+OBsOOBn+OBkSzjgabjgaTjgYoNCivjgZ/jgYvjga/jgZcs44G/44Gk44GTDQor44G144Gq44GNLOOBqOOBl+OBig0KK+OBn+OBkeOBoCzjgYrjgY3jgaTjgZANCivjgajjgY/jgarjgYws44GN44KH44GTDQor44GC44GV44GELOOCiOOBl+OBsuOBlQ0KK+OBn+OBi+OBr+OBlyzjgorjgofjgZgNCivjgZ/jgYvjga/jgZcs44Gy44Go44GXDQor44Gf44GM44KPLOOBn+OBkeOBlw0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgZ/jgaHjgYvjgo8s44G144G/44GKDQor44Gf44GQ44GhLOOBmOOCheOCk+OBmA0KK+OBn+OBi+OBleOBjSzjgajjgZfjgYoNCivjgZ/jgb7jgYrjgY0s44GU44GE44GhDQor44Gf44Gq44GLLOOBi+OBpOOChuOBjQ0KK+OBn+OBi+OBrizjgZPjgZnjgZENCivjgZ/jgZHjgYbjgaEs44GL44Ga44GoDQor44Gk44GgLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBquOBvyzjgajjgZfjgYLjgY0NCivjgaTjgY3jgarjgo8s44Gy44GT44GV44G244KNDQor44Go44G/44KC44KKLOOBvuOBleOBruOBtg0KK+OBn+OBkeOBoCzjgb7jgZ/jgZXjgbbjgo0NCivjgajjgYzjgZcs44Gm44KL44KE44GZDQor44Gk44Ga44GNLOOBi+OBpOOBvuOBlQ0KK+OBqOOBs+OBnyzjgZ/jgaQNCivjgajjgoLjgarjgYws44KG44GG44GYDQor44Gk44Gk44GELOOBv+OBjeOBkw0KK+OBn+OBi+OBjizjga7jgorjgYoNCivjgZ/jgavjgZDjgaEs44GX44KH44Gy44GhDQor44Gf44GL44GuLOOBruOBtuOChuOBjQ0KK+OBn+OBquOBiyzjgZ/jgZHjgZcNCivjgajjgb7jgaTjgoos44GL44Ga44KI44GXDQor44Gf44GL44GOLOOBguOBjeOCiQ0KK+OBn+OBi+OBl+OBvizjgZfjgZrjgYoNCivjgZ/jga/jgoks44Gb44GE44GE44Gh44KN44GGDQor44Gf44Gq44GLLOOBl+OCkw0KK+OBn+OBi+OBoCzjgZfjgZLjgosNCivjgajjgorjgYQs44Gb44KT44GYDQor44Gf44GR44G5LOOBvuOBleOCiw0KK+OBpOOBi+OCguOBqCzjgojjgZfjgarjgYoNCivjgZ/jgoDjgoks44GZ44GZ44KADQor44Go44G/44Gq44GMLOOBqOOBiuOCiw0KK+OBn+OBi+OBhOOCjyzjgabjgaTjgbLjgZMNCivjgZ/jgbDjgZ8s44GX44GS44Go44GXDQor44Gf44GL44Gv44GXLOOBruOBtuOBguOBjQ0KK+OBpuOCk+OBveOCiuOCkyzjgaTjga3jgYvjgZoNCivjgabjgonjgYbjgaEs44GX44GS44GC44GNDQor44Gf44GL44Gv44GXLOOBmOOCheOCk+OBmA0KK+OBn+OBi+OBmyzjgYvjgZrjgajjgZcNCivjgZ/jgZHjgoDjgoks44Go44GX44Gy44KNDQor44Gf44KA44GL44GELOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZfjgo0NCivjgZ/jgZHjgaQs44GE44Gk44GKDQor44Gf44Gu44GK44GLLOOBteOBv+OBig0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYLjgY0NCivjgajjgbLjgoPjgb4s44GL44Ga44GTDQor44Gf44GR44GG44GhLOOCiOOBl+OBig0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgobjgY0NCivjgYbjgZfjgYos44Gu44G244KG44GNDQor44GG44GZ44GOLOOBguOBjeOBig0KK+OBhuOBoeOChOOBvizjga7jgbbjgbLjgo0NCivjgYbjgoHjgaAs44GV44GL44GIDQor44GG44GR44KC44KKLOOBleOBqOOBlw0KK+OBhuOBoeOBoCzjgZHjgpPjgZgNCivjgYbjgYjjgaAs44GP44Gr44GKDQor44GG44Gh44GgLOOBneOBsuOBoQ0KK+OBhuOBpOOBjSzjgZXjgaDjgobjgY0NCivjgYbjgYjjgaAs44GN44KI44GXDQor44GG44Gh44GgLOOBoeOBi+OCiQ0KK+OBhuOBiOOBr+OCiSzjgoLjgajjgYQNCivjgYbjgYjjgoDjgoks44G144G/44GKDQor44GG44Gh44GgLOOChuOBhuOBmA0KK+OBhuOBoeOCgOOCiSzjgYvjgaTjgZgNCivjgYbjgaHjgaAs44GZ44GZ44KADQor44GG44Gh44GgLOOBn+OBoOOBlw0KK+OBhuOBiOOBjSzjgY3jgojjga7jgbYNCivjgYbjgYvjgZgs44GC44Gk44GXDQor44GG44Gh44GgLOOBvuOBleOBig0KK+OBhuOBiOOCgOOCiSzjgobjgZrjgosNCivjgYbjgZfjgYos44GL44Ga44Gy44KNDQor44GG44KB44KA44KJLOOCiOOBhOOBoQ0KK+OBhuOCgeOBl+OBvizjgYvjgZrjgZnjgZENCivjgYbjgZPjgpMs44G+44GV44GqDQor44GG44Gh44GE44GRLOOBv+OBoeOChA0KK+OBhuOCi+OBl+OBrizjgbLjgZXjgYoNCivjgYbjgaHjgarjgZcs44GR44GE44GYDQor44GG44GQ44GVLOOBpuOBpOOBig0KK+OBhuOBrizjgb/jgY3jgbLjgZMNCivjgYbjgYjjgY0s44Gy44Gn44GNDQor44GG44GI44KC44GoLOOBl+OChQ0KK+OBhuOBiOOCgOOCiSzjga7jgbbjgoQNCivjgYbjgYjjga/jgoks44GV44Gg44KG44GNDQor44GG44GI44GgLOOBkeOBhOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZnjgZENCivjgo/jgZ/jgarjgbks44GR44GE44GE44GhDQor44KP44Gf44Gq44G5LOOBguOBjeOBkw0KK+OCj+OBi+OCgOOCiSzjgb7jgZXjgabjgosNCivjgo/jgZ/jgarjgbks44G+44GV44GC44GNDQor44KP44Gf44Gq44G5LOOBsuOBp+OBig0KK+OCj+OBn+OBquOBuSzjgajjgY/jgZgNCivjgo/jgZ/jgarjgbks44Go44GX44GKDQor44KP44Gf44Gq44G5LOOCiuOBjeOBpOOBkA0KK+OCj+OBn+OBquOBuSzjgYvjgYrjgosNCivjgo/jgZ/jgarjgbks44GY44KF44Gr44GhDQor44KP44Gf44Gq44G5LOOBn+OBi+OBguOBjQ0KK+OCj+OBjeOBnyzjgbjjgYTjgZ8NCivjgo/jgZ/jgarjgbks44G+44GV44KG44GNDQor44KP44Gf44Gq44G5LOOBqOOBl+OBsuOBpw0KK+OCj+OBn+OBquOBuSzjgb/jga7jgosNCivjgo/jgZ/jgarjgbks44GR44KTDQor44KP44Gf44Gq44G5LOOChuOBjeOBig0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgaAs44GX44KT44G644GEDQor44KP44Gf44Gq44G5LOOBsuOBleOChuOBjQ0KK+OCj+OBoCzjgYvjgaTjgb8NCivjgo/jgaAs44GN44KT44KEDQor44KP44Gf44Gq44G5LOOChOOBmeOCjQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgZgNCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44KP44GL44Gw44KE44GXLOOBsuOCjeOBr+OCiw0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgarjgooNCivjgYrjgZ8s44Gy44Gn44GKDQor44G144GY44KP44KJLOOBi+OBpOOBsuOBkw0KK+OBk+OBhOOBkSzjgoTjgZnjgYLjgY0NCivjgYvjgZ/jgYrjgYss44Gf44Gg44GXDQor44Gy44KN44GX44GSLOOBk+OCgeOBhA0KK+OBl+OCk+OBluOCjyzjgajjgY3jgYoNCivjgb/jgZrjgYvjgb8s44GT44KT44GUDQor44Gq44GL44GY44G+LOOBguOBjeOCiQ0KK+OBteOBj+OBl+OBvizjgYrjgZXjgoANCivjgarjgYss44GR44KT44GYDQor44Gy44KJ44KE44G+LOOBmeOBv+OBn+OBoA0KK+OBq+OCj+OChOOBvizjgoTjgZnjgZcNCivjgZfjgb/jgZos44Gf44Gk44Gy44GTDQor44G144KL44GV44KPLOOBn+OBkeOBv+OBpA0KK+OBleOBj+OCieOBhCzjgbvjgb7jgowNCivjgZ/jgZHjgarjgYss44G+44GV44GC44GNDQor44GZ44GO44GG44KJLOOBguOBjeOCiQ0KK+OBi+OBqOOBhizjgZfjgZLjgYLjgY0NCivjgbvjgZfjgYvjgo8s44G/44Gt44GKDQor44GK44GM44KPLOOBsuOBleOBig0KK+OBi+OBl+OCj+OBjizjgb7jgZPjgagNCivjgZXjgYvjgYQs44GZ44G/44GC44GNDQor44KC44KKLOOBv+OBoeOBig0KK+OBu+OCk+OBvCzjgabjgaTjgoQNCivjgYTjgYTjgZjjgb4s44GN44KI44GXDQor44GT44GY44G+LOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgb/jgaQNCivjga/jgZ8s44GR44GE44GE44GhDQor44GK44GM44KPLOOBl+OBkuOBjQ0KK+OBpOOBoeOChCzjgbLjgo3jgZcNCivjgZPjgoTjgb4s44G+44GV44GTDQor44G144KL44G/LOOBi+OBpOOBmA0KK+OBj+OCgSzjgZ3jgZjjgo0NCivjgY/jgonjgZ8s44Gk44KI44GXDQor44GG44GX44GY44G+LOOBv+OBmuOBuw0KK+OBiOOBsOOBqCzjgYLjgaTjga7jgbYNCivjgZXjgajjgYYs44GL44KI44GTDQor44KA44GX44KDLOOBkeOCk+OBmA0KK+OChuOBguOBlSzjgb7jgZXjgYoNCivjgY3jgY/jgaEs44GE44GV44GKDQor44G+44Gk44Gw44KE44GXLOOBkw0KK+OBvuOBpOOBhCzjgbLjgo3jgZMNCivjgZ/jgZHjgoDjgoks44Gv44KL44GKDQor44Gm44KJ44GX44G+LOOBruOBtuOChuOBjQ0KK+OBj+OCiSzjgojjgZfjgYLjgY0NCivjgb7jgaTjgYQs44Gf44GL44GKDQor44GG44GI44GgLOOBruOBvOOCiw0KK+OBr+OChOOBlyzjgZfjgofjgZnjgZENCivjgYvjgo/jgaos44GC44GN44Gu44KKDQor44Gv44KE44GXLOOBi+OBpOOChA0KK+OBp+OCguOBqCzjgYTjgZXjgYoNCivjgZfjgbbjgY0s44Gm44Gk44GKDQor44Gv44G+LOOBpOOBreOBig0KK+OBiOOCk+OBqSzjgZvjgaTjgYoNCivjgb/jgoTjgoLjgags44G+44GV44GL44GaDQor44G+44Gk44GgLOOBi+OBpOOBruOCig0KK+OChOOBvuOCguOBqCzjga7jgbbjgobjgY0NCivjgoDjgonjgYvjgb8s44Gq44GK44Gy44GTDQor44GK44GL44GgLOOBvuOCguOCiw0KK+OCj+OBn+OBquOBuSzjgarjgYrjgY0NCivjgYTjgo/jgZXjgY0s44Gm44KL44KI44GXDQor44KI44GX44GgLOOBguOBjeOCiQ0KK+OBiuOCguOCiizjgbLjgo3jgZcNCivjgb/jgZrjgZ/jgass44KI44GZ44GRDQor44GZ44GO44GG44KJLOOBsuOBp+OBj+OBqw0KK+OBruOBquOBiyzjgojjgZfjgYoNCivjgo/jgZ/jgarjgbks44GE44GV44GKDQor44GV44GE44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBiuOBi+OCj+OCiSzjgaDjgYTjgZjjgo0NCivjgYvjganjgYTjgZEs44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBquOBiyzjgZ/jgZHjgZcNCivjgYvjgajjgYYs44Gf44Gk44GKDQor44GL44KP44GE44GXLOOBk+OBluOBtuOCjQ0KK+OBquOBjOOBleOCjyzjgZ/jgYvjgbLjgZUNCivjgZnjgoTjgb4s44Gy44KN44GXDQor44GP44G+44GX44KNLOOBqOOCguOBkw0KK+OBn+OBi+OBsOOChOOBlyzjgZfjgZLjgYoNCivjgZPjgpPjgaks44Gg44GE44GN44GhDQor44GE44Gq44GwLOOBi+OBmuOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgogNCivjgoTjgb7jgZDjgaEs44GZ44G/44KG44GNDQor44GZ44Ga44GNLOOBvuOBleOBruOCig0KK+OBguOBjeOChOOBvizjgbLjgZXjgYgNCivjgZ/jgYvjgaAs44GL44Ga44GKDQor44GV44KP44GELOOBv+OBpOOBn+OBiw0KK+OBquOBi+OBnyzjgYTjgZXjgoANCivjgYTjgZ/jgbAs44Gf44GR44GKDQor44GP44Gr44GO44GfLOOBkuOCk+OBn+OCjeOBhg0KK+OChOOBvuOBoCzjgZ/jgZHjgZ/jgaANCivjgoTjgb7jgaAs44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOBn+OBi+OBig0KK+OBhuOCgeOCgOOCiSzjgZHjgpPjgZ4NCivjgZPjgbDjgoTjgZcs44KG44GG44GTDQor44GL44Gt44G/44GkLOOBpOOBqOOCgA0KK+OBquOBi+OBjOOCjyzjgY/jgpPjgo0NCivjgY3jgaks44Gy44KN44GXDQor44GL44Gt44GNLOOBsuOBp+OBig0KK+OBk+OCgOOCiSzjgZHjgpPjgZ4NCivjgbXjgZjjgoLjgoos44GV44Go44KLDQor44KE44G+44GX44GfLOOBqOOBl+OBsuOCjQ0KK+OBj+OCiuOChOOBvizjgb/jgYvjgZMNCivjgajjgZbjgo8s44KG44GG44GYDQor44GE44GX44GELOOChuOBn+OBiw0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgokNCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44GE44GX44GW44GNLOOBjeOCiOOChuOBjQ0KK+OBr+OCieOBoCzjgobjgbLjgaENCivjgajjgY/jgbLjgZUs44KI44Gy44GhDQor44GE44GX44KA44KJLOOCiOOBhuOBkw0KK+OBhuOBiOOBoCzjgobjgYbjgZMNCivjgYrjgbXjgaEs44KI44GE44Gh44KN44GGDQor44KE44Gk44KL44GOLOOBruOCiuOBsuOBkw0KK+OBv+OBquOBqCzjga7jgbbjgYLjgY0NCivjgojjgZfjgaAs44Gf44Gg44GKDQor44G/44Gq44G/LOOCiOOBluOBtg0KK+OBiuOBiyzjgb7jgZXjgZcNCivjgYTjgaHjgYvjgo8s44Gf44Gg44GKDQor44GK44GP44G8LOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBoCzjgZHjgpPjgYTjgaENCivjgajjgb/jgZ8s44Gm44KL44Gf44GRDQor44Gy44KJ44GK44GLLOOBvuOBleOBsuOCjQ0KK+OBi+OBqOOBhizjgZ/jgYvjgZcNCivjgYrjgoDjgoks44Gh44GL44Go44GXDQor44GK44GV44GY44G+LOOCiOOBsuOBoQ0KK+OBteOBquOBk+OBlyzjgYvjgZrjgb8NCivjgZPjgaAs44Gm44Gk44GKDQor44GC44GV44GK44GLLOOBvuOBleOBsuOCjQ0KK+OBi+OBmeOBjCzjgZfjgZLjgoTjgZkNCivjgoLjgoLjga/jgoks44Gf44Gg44Gy44KNDQor44GG44GI44KA44KJLOOBn+OBi+OBlw0KK+OBiuOBsOOBnyzjgY/jgavjgbLjgo0NCivjgYrjga7jgaAs44G/44Gk44GKDQor44G/44KE44GX44GfLOOBvuOChuOBvw0KK+OBu+OBneOChCzjgb7jgZXjgbLjgo0NCivjgoTjgZfjgo0s44KE44GZ44GKDQor44KP44Gf44Gq44G5LOOBguOBjeOBig0KK+OBjeOCgOOCiSzjgYvjgZrjgYoNCivjgYvjgb/jgZjjgocs44Gy44Gn44GNDQor44GV44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBl+OBvizjgYTjgZXjgYoNCivjgYvjgZ/jgoTjgb4s44Gy44KN44Gy44GVDQor44Gy44KJ44GuLOOBsuOBp+OBig0KK+OBquOBi+OCieOBhCzjgoDjgaTjgYoNCivjgojjgZPjgoTjgb4s44Go44GX44KEDQor44GK44GM44GtLOOBm+OBpOOBig0KK+OBjeOCgOOCiSzjgbLjgafjgYLjgY0NCivjga7jgZbjgZUs44Gf44Gk44GKDQor44KC44KK44GuLOOBguOBkeOBvw0KK+OBiOOBoeOBlOOChCzjgbbjgavjgaENCivjgbXjgY/jgZfjgb4s44Go44GX44Gy44GnDQor44GE44Go44GGLOOBi+OBmuOBkw0KK+OBhOOBkeOBoCzjgobjgY3jgYoNCivjgajjgY/jgarjgYws44GL44KT44GYDQor44GN44KC44GoLOOChOOBmeOBig0KK+OBiuOBl+OBoCzjgobjgY3jgYoNCivjga/jgZfjgoLjgags44GC44Gk44GXDQor44Gu44GQ44GhLOOBqOOBjeOBoQ0KK+OBv+OChOOBuSzjgbLjgZXjgYgNCivjgY/jgo/jga/jgoks44KI44GX44GK44GNDQor44GN44KA44KJLOOBguOBjeOCiQ0KK+OBiuOBoCzjgojjgYbjgZMNCivjgYLjgYTjgZbjgo8s44GU44G444GEDQor44GG44GI44GuLOOBoOOBhOOBmeOBkQ0KK+OBvuOBpOOBsOOCiSzjgbLjgZXjgYoNCivjgZ/jgb7jgYQs44Go44KC44Gy44KNDQor44GX44KJ44GELOOBvuOBk+OBqA0KK+OBiuOBr+OBlyzjgojjgZfjga7jgooNCivjgZ/jgb/jgoQs44GL44Ga44GX44GSDQor44Gv44KJ44GgLOOBv+OBoeOBsuOBkw0KK+OBhuOBmeOBhCzjgbLjgafjgYoNCivjgZPjgoos44G+44GV44KG44GNDQor44Gu44GgLOOChuOBjeOBkw0KK+OBquOBv+OBjSzjgorjgYgNCivjgarjgYvjgYos44GC44GE44GTDQor44GL44Gp44KELOOBleOBqOOBkw0KK+OBiuOBrizjga7jgorjgYvjgZoNCivjgZfjgbbjgYvjgo8s44Go44GX44Gu44KKDQor44GE44KP44GV44KPLOOBi+OBmuOBqA0KK+OBn+OBtuOBmyzjgoTjgZnjgYgNCivjgYrjgZXjgo8s44Gy44KN44G/DQor44Gq44GL44Gg44GELOOBi+OBmuOChuOBjQ0KK+OBiOOBjOOBl+OCiSzjgZ/jgb/jgYoNCivjgZXjgZXjgY0s44GL44Gk44GKDQor44G144GP44GhLOOBruOCiuOChuOBjQ0KK+OCiOOBl+OChOOBmSzjgYvjgZrjgb/jgaENCivjgo/jgZ/jgarjgbks44KI44GX44GKDQor44GG44GI44GuLOOBk+OBhuOBmA0KK+OBiOOBqCzjgbXjgb/jgoQNCivjgojjgZfjgaAs44KI44GX44GTDQor44Gf44GR44GELOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaHjgo0NCivjgb7jgZ/jgY0s44GX44GS44Gy44GTDQor44KC44KK44KC44GoLOOBvuOBleOBqA0KK+OBhOOBr+OCiSzjgb7jgZXjgb/jgaQNCivjgaTjgYvjga/jgoks44GC44GN44KJDQor44GL44GuLOOBqOOBl+OBsuOBpw0KK+OCgOOBreOChuOBjSzjgZfjgpPjgYTjgaENCivjgYrjgaTjgbws44G+44Gq44G2DQor44KE44G+44KC44KKLOOBhOOBoeOCjeOBhg0KK+OBguOCk+OBqeOBhizjgZ/jgYvjgojjgZcNCivjgoTjgb7jgZbjgY0s44GR44KT44GYDQor44Gf44GN44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBn+OBkeOCgOOCiSzjgYvjgaTjgYoNCivjgoDjgonjgYvjgb8s44GL44Ga44Gy44GTDQor44Gf44GL44GfLOOBlA0KK+OBsuOCjeOBmyzjgZPjgZXjgagNCivjgoTjgY/jgo8s44KM44GE44GTDQor44GX44KT44GQ44KK44KHLOOBvuOBleOBruOCig0KK+OBn+OBoSzjgb7jgZXjgYoNCivjgZXjgajjgYYs44KG44Gy44GhDQor44KE44G+44KC44GoLOOBsuOBleOBlw0KK+OBmeOBqeOBhizjgZfjgpPjgZQNCivjgbvjgpPjgb4s44GE44Gh44KN44GGDQor44GK44Gk44G8LOOBkeOCk+OBmA0KK+OBi+OBluOBvizjgabjgovjgYoNCivjgYLjgYzjgo8s44Go44KC44GTDQor44GE44Gu44GG44GILOOBsuOBp+OBvuOBlQ0KK+OBguOCieOBhCzjgojjgZfjgZ/jgYsNCivjgYbjgYjjgoDjgoks44GL44Gk44GKDQor44Gr44GX44GP44KJLOOBm+OBhOOBjQ0KK+OBv+OChOOBluOBjSzjgojjgZfjgYLjgY0NCivjgbXjgY/jgaAs44KI44Gy44GhDQor44Gk44KK44KELOOBquOBiuOBi+OBmg0KK+OBn+OBquOBiyzjgb7jgZPjgagNCivjgYrjgYzjgo8s44Gu44KK44GKDQor44GZ44Ga44GNLOOBpOOBn+OBsuOCjQ0KK+OBr+OBvuOBkOOBoSzjgZ/jgYvjgZcNCivjgYvjgoHjgaAs44KI44GG44GTDQor44KC44KC44Gv44KJLOOBvuOBleOBlw0KK+OBsuOCieOBiizjgYvjgZrjgYoNCivjgZ/jgYvjgaAs44G+44GV44Gy44KNDQor44GE44GR44GgLOOBl+OCh+OBkw0KK+OBmeOBmuOBjSzjgbLjgo3jgY0NCivjgZ/jgYvjga/jgZcs44Go44GX44GKDQor44Gf44Gq44GLLOOBv+OBpOOBsuOCjQ0KK+OBm+OCiSzjgb/jgbvjgZMNCivjgZ/jgZHjgoDjgoks44KK44KF44Gy44GhDQor44G744KK44GN44KKLOOBvuOBleOBoQ0KK+OBhOOBkeOBoCzjgobjgZ/jgYsNCivjgYLjgonjgY0s44G+44GV44Gy44KNDQor44GK44Gk44GLLOOCiOOBl+OBi+OBmg0KK+OBj+OBq+OBvuOBpCzjgoLjgorjgb7jgZUNCivjgYbjgZfjgbAs44Gf44Gg44GKDQor44Gv44KE44GXLOOBsuOCjeOBi+OBmg0KK+OBhOOBl+OBhCzjgZPjgYbjgZgNCivjgYvjgaAs44G/44Gu44KLDQor44KE44GOLOOBn+OBj+OBmA0KK+OBsuOCieOBhCzjgYvjgaTjgoQNCivjgY/jgo3jgZss44Gy44Gn44GKDQor44GK44GL44G5LOOBn+OBi+OBkw0KK+OBi+OBreOBkyzjgarjgYrjgobjgY0NCivjgZPjgZjjgb4s44KI44GX44Gy44KNDQor44Gr44GX44KI44KKLOOBguOBjeOCiQ0KK+OBquOBi+OBmOOChyzjgYvjgZrjgojjgZcNCivjga/jgZfjgY/jgoks44GY44KNDQor44Gf44GL44Gv44GXLOOBn+OBhOOBoQ0KK+OBhuOBiOOBj+OBlSzjgajjgZfjgYLjgY0NCivjgZfjgbDjgZ8s44G+44KC44KLDQor44Gf44GL44Gv44GXLOOBv+OBruOCiw0KK+OBhOOBquOBsCzjgZvjgY3jga0NCivjgZjjgoXjgavjgaHjgo0s44GL44Ga44GE44Gh44KN44GGDQor44Gv44KE44GL44KPLOOBm+OBhOOBluOBtuOCjQ0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgY3jgoLjgags44G+44GV44GoDQor44GE44GgLOOBv+OBjeOBig0KK+OBu+OBmOOChyzjgYLjgY3jgokNCivjgbvjgorjgYQs44Gf44Gg44GKDQor44GL44GE44GbLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GE44GV44KADQor44GL44Gt44GV44GLLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgZXjgajjgosNCivjgZnjgZrjgY0s44G/44Gu44KLDQor44GZ44Gp44GGLOOBmOOCjQ0KK+OBiuOBsCzjgaTjgajjgoANCivjgoDjgonjgZ8s44Gf44Gk44GKDQor44GC44GN44KE44G+LOOBruOBtuOBguOBjQ0KK+OBguOBmeOBvizjgbLjgo3jgZcNCivjgYvjgo/jgZjjgoos44Gm44KL44GKDQor44G+44Gk44KC44GoLOOBi+OBmuOBqA0KK+OBl+OCjeOChOOBvizjgYLjgY3jga7jgooNCivjgbXjgZjjgYQs44Gy44Gn44GKDQor44GU44GoLOOBn+OBkeOBlw0KK+OBn+OBq+OBguOBhCzjgb7jgZXjgaTjgZANCivjgYvjgaTjgbzjgoos44Gy44KN44GXDQor44Gy44GC44GmLOOBi+OBpOOBsuOBkw0KK+OBpuOCieOBhCzjgaTjga3jgYoNCivjga/jgpPjgaAs44GC44Gk44GXDQor44G/44GX44G+LOOChOOBmeOBguOBjQ0KK+OBn+OBi+OBl+OBvizjgbLjgajjgZcNCivjgb7jgaTjgaAs44KI44GX44GKDQor44GT44KT44GpLOOChuOBhuOBmA0KK+OBhOOBn+OChCzjgb7jgZXjgYvjgZoNCivjgb7jgaTjgoLjgags44G+44GV44Gy44GTDQor44GE44GE44KE44G+LOOBv+OBu+OBkw0KK+OBmOOBo+OBqCzjgajjgZfjgZMNCivjgY/jgbzjgZ8s44G+44GV44GXDQor44GE44GX44GQ44KNLOOBn+OBkeOBig0KK+OCguOCiizjgbLjgafjgYoNCivjgYvjgpPjga4s44GN44KH44GYDQor44GE44Go44GGLOOBkw0KK+OCiOOBl+OBoCzjgYLjgaTjgZMNCivjgb7jgovjgoTjgb4s44Gg44GE44GZ44GRDQor44GV44Go44GGLOOChOOBmeOBvuOBlQ0KK+OBk+OBoCzjgb7jgY0NCivjgo/jgZ/jgass44GP44G/44GTDQor44GV44GbLOOBguOBjeOBkw0KK+OBneOBqOOChOOBvizjgb7jgZXjgZMNCivjgbvjgpPjgaAs44Gy44KN44G/DQor44GE44Gs44GELOOBi+OBmuOBvw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgZPjgavjgZcs44Gu44KK44GTDQor44GZ44GO44GELOOBkeOCk+OBmA0KK+OBguOCieOBjSzjgarjgYrjgZ/jgZENCivjgbLjgonjgYrjgYss44Gy44Gn44GKDQor44GK44Gk44GLLOOBi+OBpOOBsuOCjQ0KK+OBi+OBqOOBhizjgZXjgaHjgZMNCivjgZfjgYrjga4s44GI44GE44GYDQor44GL44Gf44KE44G+LOOBhuOBpOOBvw0KK+OBteOBoeOBi+OBvyzjgZXjgaHjgZMNCivjgbLjgonjgY0s44Gb44GE44GYDQor44GE44KP44GV44GNLOOCiuOCheOBmA0KK+OBiOOBruOBjSzjgY/jgavjgYoNCivjgYTjgo/jgZ8s44Gq44G7DQor44GX44KF44GoLOOCiOOBmA0KK+OBqOOBsuOCg+OBvizjgb7jgoLjgosNCivjgZPjgYTjgacs44GE44GP44GKDQor44Gf44Gq44G5LOOBi+OBpOOBruOCig0KK+OChOOBvuOCguOBqCzjgabjgovjgY/jgasNCivjgYvjgYTjga/jgaQs44KG44Gf44GLDQor44GC44KJ44GELOOCiOOBl+OBruOCig0KK+OBhuOBiOOBoCzjgojjgZfjga7jgbYNCivjgY/jgonjgYrjgYss44KG44GN44Gy44GVDQor44GT44Gw44KE44GXLOOBruOBtuOBig0KK+OBn+OCgeOBoeOBiyzjgoTjgZnjgZcNCivjgojjgZfjgaAs44KA44Gk44GKDQor44G+44Gk44KC44GoLOOBl+OBkuOBig0KK+OBleOBi+OBl+OBnyzjgbLjgo3jgZcNCivjgo/jgaAs44Gy44KN44Gu44KKDQor44GE44Go44GGLOOBn+OBkeOBsuOBkw0KK+OCiOOBl+OBoCzjgZ/jgoLjgaQNCivjgojjga3jgaAs44GN44G/44GKDQor44GK44KA44KJLOOBmOOCheOCkw0KK+OBn+OBi+OBjizjgZvjgYTjgYTjgaENCivjgYbjgaHjgoTjgb4s44Gf44Gg44GXDQor44GL44GX44KP44GOLOOBvuOBpOOBruOCig0KK+OBq+OBl+OBoCzjgZjjgoXjgpPjgZbjgbbjgo0NCivjgYrjgZfjgYss44KG44GG44GY44KNDQor44GI44GY44G+LOOBl+OCheOBq+OBoQ0KK+OBiuOBiyzjgZvjgYTjgZcNCivjgojjgZfjgaAs44GL44Gk44GYDQor44GE44G+44GELOOChuOBng0KK+OChOOBvuOBv+OBoSzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgYLjgYTjgoLjga4s44GI44Gk44Gy44KNDQor44Gy44GuLOOBn+OBpuOBig0KK+OBn+OBi+OBr+OBlyzjgZfjgZrjgYoNCivjgojjgZPjgZ8s44GX44GS44KLDQor44GE44Gu44GGLOOBi+OBreOBig0KK+OCiOOBl+OBoCzjgajjgZfjgYLjgY0NCivjgojjgZfjgYrjgYss44KE44GZ44GKDQor44GG44KB44GW44KPLOOBi+OBpOOBmA0KK+OBpuOCieOBiizjgajjgZfjgbLjgacNCivjgYvjgo/jga/jgoks44G+44GV44G/DQor44Gv44Gb44GM44KPLOOBl+OBoeOCjQ0KK+OBjeOBlyzjgYLjgY3jgZMNCivjga/jgZfjgZrjgoEs44GR44GE44GTDQor44KI44GX44GgLOOBm+OBpOOBig0KK+OBv+OBreOBteOBmCzjgZ/jgZHjgYoNCivjgbvjgpPjgaAs44Go44KC44Gu44KKDQor44Gf44GL44GV44KPLOOBkeOCk+OBhOOBoQ0KK+OBiuOBr+OBlyzjgoTjgZnjgYgNCivjgYvjgYzjgo8s44KE44GZ44GX44KNDQor44Gr44GX44GgLOOBqOOCguOBkw0KK+OBhOOBn+OBjOOBjSzjgYvjgaTjgYoNCivjgYLjgY3jgoTjgb4s44KC44Go44GTDQor44GV44GE44Go44GGLOOBv+OBleOBkw0KK+OBiuOBoeOCiizjgYjjgYTjgZMNCivjga7jgZbjgo8s44Gf44GI44GTDQor44GV44GE44Go44GGLOOBsuOCjeOBkw0KK+OBjeOCgOOCiSzjgYLjgY3jgZMNCivjgYLjgbks44GG44GN44GTDQor44GP44GZ44Gu44GNLOOBsuOCjeOBsuOBlQ0KK+OBr+OChOOBlyzjga/jgovjgYoNCivjgYrjgbIs44G/44Gu44KLDQor44GL44G/44GK44GLLOOBpuOCi+OBkw0KK+OBguOBjeOChOOBvizjgb/jgaTjgbLjgo0NCivjgYLjgorjgZ8s44KB44GQ44G/DQor44GN44Gf44KA44KJLOOBquOBiuOBkw0KK+OBvuOBmeOCgOOCiSzjgobjgb8NCivjgYrjgZXjgo8s44G/44KG44GNDQor44GL44KP44GELOOCiOOBhuOBkw0KK+OBhOOBn+OBjOOBjSzjgaHjgYsNCivjgoLjgoos44G+44KKDQor44GC44GK44GNLOOBguOBjeOBkw0KK+OBteOBmOOBl+OCjSzjga7jgorjgbLjgo0NCivjgZfjgb/jgZos44GT44Gy44KHDQor44KA44KJ44GL44G/LOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZPjgYbjgZgNCivjgoLjgY4s44GR44KT44GYDQor44G/44GG44KJLOOBoeOBiA0KK+OBn+OBi+OBvuOBpCzjgarjgYrjgagNCivjgZ/jgYvjgaAs44Go44KC44GTDQor44GT44KT44GpLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgarjgYrjgb8NCivjga3jgozjgYQs44Gv44KL44KI44GXDQor44GG44GX44GPLOOBhOOBleOBig0KK+OBjeOBn+OBluOCjyzjgYvjgaTjgb8NCivjgZXjgaPjgZUs44G/44Gh44KG44GNDQor44GE44Gj44GX44GNLOOBn+OBi+OBruOCig0KK+OBi+OCj+OBrizjgZHjgpMNCivjgYTjgZfjga/jgoks44G/44Gu44KLDQor44GL44KB44GK44GLLOOBsuOBp+OBig0KK+OBjeOBhuOBoSzjgZ/jgYvjgYoNCivjgarjgYzjgYQs44G/44GN44GKDQor44Gu44GQ44GhLOOBk+OBhuOBmA0KK+OBiuOBl+OBnyzjgoLjgajjgZfjgZINCivjgojjgZfjgoDjgoks44G/44KI44GXDQor44GC44GL44G744KKLOOBpuOBpOOBig0KK+OBvuOCi+OBquOBjCzjgYLjgY3jgYoNCivjgojjgZfjga4s44GL44Ga44GKDQor44KE44GuLOOBkeOCk+OBmA0KK+OChOOBvuOBkOOBoSzjgZfjgofjgbLjgaENCivjgoTjgb7jgZDjgaEs44G+44GV44GTDQor44Gb44KT44Gp44GgLOOBsuOBqOOBlw0KK+OChOOBmeOBoCzjgbLjgo3jgZcNCivjgojjgZPjgYgs44GK44GV44KADQor44KE44G+44GX44GfLOOBkw0KK+OCiOOBl+OBoCzjga7jgbbjgbLjgo0NCivjgoTjgb7jgZfjgZ8s44KI44GX44Gy44KNDQor44KE44GZ44GELOOBruOCiuOBpOOBkA0KK+OChOOBvuOBiuOBiyzjgbXjgb/jgZ/jgYsNCivjgojjgZPjgZss44Gf44Gg44GKDQor44KE44G+44GQ44GhLOOBruOCiuOBi+OBmg0KK+OChOOBr+OBjizjgbLjgajjgZcNCivjgoTjgb7jgYrjgYss44G/44Gh44GKDQor44KI44Gk44KELOOBn+OBi+OBig0KK+OChOOBvuOCguOBqCzjgajjgZfjgb/jgaENCivjgojjgZfjgYvjgo8s44G/44Gk44Gu44G2DQor44KE44G+44GX44GfLOOCiOOBl+OBpOOBkA0KK+OChOOBvuOBiuOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjgojjga3jgb/jgaQs44KI44GX44Gy44KNDQor44KI44GX44GgLOOBvuOBleOBsuOBpw0KK+OChOOBvuOBluOBjSzjgYvjgaTjgajjgZcNCivjgoTjgb7jgoLjgags44G+44GV44KLDQor44KE44G+44GQ44GhLOOBguOBjeOCiQ0KK+OChOOBvuOBhuOBoSzjgZjjgoXjgavjgaENCivjgojjgZfjgZbjgo8s44Gb44GE44GW44G244KNDQor44KI44GX44GK44GLLOOBqOOBv+OBng0KK+OChOOBvuOCguOBqCzjgZnjgZnjgoANCivjgoTjgb7jgYrjgYss44GL44Ga44GKDQor44KE44G+44GW44GNLOOBjeOCh+OBmeOBkQ0KK+OCiOOBl+OCgOOCiSzjgajjgoLjgZfjgZINCivjgoTjgZnjgaAs44GR44KT44GYDQor44KE44G+44GX44GfLOOChOOBmeOBr+OCiw0KK+OChOOBoCzjgbLjgo3jgb7jgosNCivjgojjgZfjgaAs44Go44GK44KLDQor44KE44G+44KC44GoLOOBmOOCheOCk+OBkw0KK+OChOOBvuOBoCzjgajjgZfjgo0NCivjgojjga3jgaAs44GX44KH44GYDQor44KI44GX44GgLOOBsuOCjeOBkw0KK+OChOOBvuOBoCzjgZvjgYTjgZgNCivjgoTjgb7jgZDjgaEs44GR44KT44GE44GhDQor44KE44G+44GQ44GhLOOBpuOBpOOBig0KK+OChOOBvuOCguOBqCzjgbLjgYvjgosNCivjgojjgZfjgaAs44G/44Gu44KLDQor44KE44G+44GX44GfLOOBleOBi+OBiA0KK+OChOOCk+OBuSzjgYvjgaTjgb8NCivjgoTjgb7jgZDjgaEs44GL44Gk44Gy44GoDQor44KE44G+44KC44GoLOOBruOBtuOBig0KK+OChOOBvuOBrSzjgb/jgaHjgajjgZcNCivjgoTjgb7jgZXjgY0s44GC44GN44KJDQor44KE44GZ44GK44GLLOOBvuOBleOBsuOBkw0KK+OChOOBvuOBoCzjgZPjgYbjgZgNCivjgojjgZfjgZbjgo8s44Gb44GE44GE44GhDQor44KE44GY44G+LOOBl+OCk+OChA0KK+OChOOBquOBhCzjgYTjgaHjgo3jgYYNCivjgoTjgb7jgZbjgY0s44Gk44Go44KADQor44KE44G+44GG44GhLOOBlOOCjQ0KK+OChOOBvuOBluOBjSzjgYvjgYrjgosNCivjgojjgZfjga4s44G+44GV44Gy44KNDQor44KE44G+44GL44GSLOOBj+OBmeOBig0KK+OChOOBjizjgZ/jgYvjgbXjgb8NCivjgoTjgZnjgaAs44G144G/44Gy44KNDQor44KE44G+44KELOOBn+OBi+OBkw0KK+OBn+OBi+OBkOOBoSzjgZnjgZnjgoANCivjgojjgZfjgaAs44GX44KH44GeDQor44KI44GX44GuLOOBguOBpOOBsuOCjQ0KK+OChOOBvuOCgOOCiSzjga7jgorjgojjgZcNCivjgoTjgY4s44GY44KF44KT44GYDQor44KE44G+44GgLOOBk+OBhuOBmOOCjQ0KK+OChuOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44KG44GN44GKDQor44KE44G+44Gf44GrLOOBiOOBhOOBng0KK+OChOOBvuOCgOOCjSzjgZjjgo0NCivjgojjgZfjgaAs44GC44GN44KJDQor44KI44GT44GL44KPLOOBpuOBpOOBig0KK+OChOOBvuOBluOBjSzjgYvjgZrjgYoNCivjgoTjgb7jgoLjgags44G144GP44G/44GhDQor44KI44GX44GuLOOBmeOBmeOCgA0KK+OChOOBvuOBrSzjgZ/jgaTjgobjgY0NCivjgoTjgZnjgarjgYws44Gf44Gg44Gu44G2DQor44KE44Gq44GLLOOBmOOBpOOBruOCig0KK+OChOOBvuOBrSzjgb7jgZXjgYoNCivjgoTjgb7jgYbjgaEs44Gu44G244GKDQor44KE44G+44GQ44GhLOOBruOBvOOCiw0KK+OChOOBvuOCj+OBjSzjgbLjgo3jgZcNCivjgoTjgb7jgYvjgo8s44GT44GG44GYDQor44KE44G+44GgLOOBmOOCheOBq+OBoQ0KK+OCiOOBk+OChOOBvizjgYvjgaTjga7jgooNCivjgoTjgb7jgoLjgags44GT44GZ44GRDQor44KE44G+44GQ44GhLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgZjjgofjgZgNCivjgojjgZfjgaAs44Gy44KN44Gk44GQDQor44KE44G+44Gq44GLLOOCiOOBl+OBi+OBrQ0KK+OChOOBvuOCguOBqCzjgajjgZfjgbLjgZMNCivjgojjgZfjgaAs44Go44KC44KI44GXDQor44KE44G+44GgLOOBk+OBhuOBhOOBoQ0KK+OChOOBvuOBiuOBiyzjgZ/jgZHjgYoNCivjgojjgZPjgoTjgb4s44GN44KI44GXDQor44KE44G+44GV44GNLOOCiOOBreOBn+OBiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgYvjgo8s44GR44GE44GE44GhDQor44KE44GG44GhLOOBpuOBpOOBig0KK+OCiOOBl+OBr+OCiSzjgojjgZfjgobjgY0NCivjgojjgZPjgb/jgZ4s44KG44GG44GYDQor44KE44G+44KC44GoLOOBl+OCh+OBn+OCjeOBhg0KK+OChOOBvuOCguOBqCzjgZjjgoXjgavjgaENCivjgoTjgb7jgoLjgags44GL44Ga44G/DQor44KI44GX44GgLOOBl+OCh+OBn+OCjeOBhg0KK+OCiOOBl+OBoCzjgoTjgZ3jgb8NCivjgoTjgZnjgYQs44Gu44G844KLDQor44KE44G+44GQ44GhLOOBn+OBi+OCiOOBlw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgYoNCivjgojjgZPjgZ8s44GL44Ga44G/DQor44KI44GX44GgLOOBn+OBoOOBr+OCiw0KK+OCiOOBk+OChOOBvizjgZ/jgYvjgYoNCivjgoTjgZnjgYQs44GV44Go44KLDQor44KE44G+44GV44GNLOOCiOOBl+OBqOOCgg0KK+OCiOOBl+OBiuOBiyzjgb7jgZXjgbLjgZUNCivjgojjgZfjgaAs44Gu44KK44GKDQor44KE44G+44GgLOOBi+OBpOOBsuOBkw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgojjgZcNCivjgojjgZfjgaAs44Gf44Gg44KI44GXDQor44KE44G+44GW44GNLOOBi+OBpOOBmA0KK+OChOOBvuOBrSzjgZfjgZLjgosNCivjgobjgZ/jgass44GX44KF44GeDQor44KI44Gt44GW44KPLOOBpuOCi+OBig0KK+OCiOOBl+OBrizjgYjjgYTjgYTjgaHjgo3jgYYNCivjgojjgZfjgaAs44G+44GV44Gy44KNDQor44KI44GX44KC44KKLOOBteOBv+OBsuOCjQ0KK+OCiOOBl+OCj+OCiSzjgb/jga7jgosNCivjgoTjgb7jgaAs44GX44GS44KLDQor44KI44GX44GgLOOBguOBjeOCiQ0KK+OCiOOBl+OBoCzjgYjjgYTjgYTjgaENCivjgoTjgb7jgoLjgags44KG44Gf44GLDQor44GT44GY44G+LOOBsuOBp+OBjQ0KK+OBiuOBrizjgYvjgZrjgoLjgagNCivjgb7jgYjjgYvjgo8s44GL44Ga44Gy44KNDQor44GT44GuLOOBruOBtuOBig0KK+OBvuOBjeOBmyzjgZfjgoXjgpPjgo3jgY8NCivjga7jgoDjgoks44GL44Gk44Gy44KNDQor44KE44GZ44Gv44KJLOOCiOOBmA0KK+OBquOBjOOBl+OBvizjgZvjgYTjgZ4NCivjgY3jgZ/jga/jgZcs44Gb44GE44GX44KNDQor44Gk44KLLOOBquOBiuOBmA0KK+OBpOOBj+OBoCzjgZnjgZnjgoANCivjgabjgonjgYbjgaEs44KI44GX44Gy44KNDQor44KE44G+44GgLOOBoOOBhOOBmeOBkQ0KK+OBm+OCk+OBsCzjgZ/jgZHjgYoNCivjgZXjgYjjgY0s44Gy44GV44Go44KIDQor44GK44GL44GgLOOBn+OBkeOBlw0KK+OBv+OChOOBhuOBoSzjgajjgZfjgY0NCivjgZPjgpPjgaks44Go44GX44GL44GaDQor44G144GN44GC44GSLOOCgOOBpOOBig0KK+OBhOOBl+OBi+OCjyzjgoLjgorjgbLjgZMNCivjgYTjgo/jgoLjgags44GP44Gr44GL44GkDQor44GP44G8LOOBl+OBkuOBig0KK+OBn+OBquOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjgo/jgaAs44Gu44G244KG44GNDQor44GE44KP44GKLOOBjeOCiOOBlw0KK+OBj+OBvuOBjOOBhCzjgb7jgZXjgZ/jgYsNCivjgZnjgZrjgY0s44G+44GV44Gy44GTDQor44Gf44GL44KA44KJLOOBguOBpOOCiOOBlw0KK+OBq+OBl+OBhuOCiSzjgb7jgZXjgYoNCivjgb/jgaTjgZgs44GN44KI44G/44GhDQor44Gf44GN44GN44GfLOOBv+OBoeOBig0KK+OBiuOBhuOBoSzjgZ/jgZHjgZcNCivjgZPjgb4s44GV44Go44KLDQor44G+44GZ44GgLOOBmeOBmeOCgA0KK+OBi+OBqOOBhizjga7jgorjgYoNCivjgYTjgYTjgZrjgYss44GX44KH44Gy44GhDQor44G+44KL44KE44G+LOOBsuOBleOBig0KK+OBqOOBl+OBn+OBqyzjgajjgZfjgYoNCivjga/jgarjgbbjgaEs44KE44GZ44GKDQor44GE44G+44GELOOBoeOCiOOBn+OBkQ0KK+OBiuOBi+OBsuOCjSzjgb7jgZXjgYoNCivjgY3jgoDjgoks44GY44KF44Gr44Gh44KNDQor44Gf44GY44G+LOOBsuOCjeOBi+OBpA0KK+OBi+OCk+OBoCzjga7jgorjgYoNCivjganjgYQs44Gk44Gt44Gu44KKDQor44GC44KJ44GM44GNLOOBn+OBi+OBsuOCjQ0KK+OBjeOCheOBneOBmOOCkyzjgbLjgo3jgbXjgb8NCivjgZ/jgZHjgYbjgaEs44Gy44KN44GXDQor44GG44Gs44G+LOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgZcNCivjgojjgoLjgoos44GC44GN44KJDQor44GX44G+44GW44GNLOOBkeOCk+OBmA0KK+OBqOOBj+OChCzjgYLjgY3jgYoNCivjgoTjgb7jgaAs44GR44KT44GYDQor44G144GL44KELOOBqOOBl+OCjQ0KK+OBiOOBkOOBoSzjgYvjgZrjgbLjgZMNCivjgZXjga4s44Gu44G244GC44GNDQor44Go44GP44GuLOOBqOOBiuOCiw0KK+OBiuOBqOOCgizjgb7jgZXjgbLjgo0NCivjgZfjgonjgYrjgYzjgo8s44G+44GV44GeDQor44Gy44KJ44GuLOOBpOOBreOBig0KK+OBiuOBoCzjgajjgZfjgbLjgZMNCivjgZ/jgarjgYss44G+44GV44Gv44KLDQor44G144GY44GfLOOBpOOCieOChuOBjQ0KK+OBguOCieOBhCzjgYrjgZXjgoANCivjgbXjgZjjgZ8s44KE44GZ44Gu44G2DQor44Gq44GL44GM44KPLOOBkeOCk+OBmeOBkQ0KK+OBquOBi+OBq+OBlyzjgaTjga3jgogNCivjga/jgoks44Gy44Gn44Gq44KKDQor44Gh44GwLOOCiOOBl+OBn+OBiw0KK+OBhOOBl+OCj+OBnyzjgoLjgajjgbLjgZUNCivjgoTjgZDjgaEs44GP44Gr44Gy44GTDQor44Gm44GY44G+LOOBqOOBl+OBig0KK+OBn+OBpOOBnyzjgYLjgY3jgokNCivjgY/jgZXjgYss44GX44GS44GKDQor44G144KL44GfLOOBr+OCi+OBig0KK+OBlOOBqCzjgbLjgafjga7jgbYNCivjgYrjgaDjgY7jgoos44GC44GN44KJDQor44GZ44Ga44GNLOOBleOBoOOCgA0KK+OBj+OBvuOBjOOBhCzjgbLjgo3jgZcNCivjgoDjgonjgYvjgb8s44Gf44GE44GNDQor44G/44KA44KJLOOChuOBhuOBmA0KK+OCiOOBk+OBhCzjgorjgofjgZ4NCivjgYTjgarjgZIs44GC44GN44KJDQor44GC44KB44G/44KELOOBguOBjeOBsuOBpw0KK+OBhOOBruOBhuOBiCzjgobjgYbjgZgNCivjgazjgb7jgZ8s44Gy44KN44KG44GNDQor44GV44GL44KC44GoLOOBi+OBmuOBl+OBkg0KK+OBsuOCieOBvuOBpCzjgYLjgY3jgbLjgo0NCivjgarjgorjgZ8s44Go44GX44GTDQor44Gk44Gt44G/LOOBqOOBl+OBsuOBlQ0KK+OBn+OBi+OBl+OBvizjgZ/jgZHjgbLjgo0NCivjgb/jgZks44GL44Ga44GKDQor44GV44GN44KE44G+LOOBl+OBkuOCiw0KK+OBteOBmOOCj+OCiSzjgZ/jgZHjgZcNCivjgajjgb/jgZ8s44Gf44GR44Gv44KLDQor44Gk44Gq44KP44GNLOOBvuOBleOBruOBtg0KK+OBr+OBm+OBjOOCjyzjgZ/jgaDjgZcNCivjgbXjgY/jgZbjgo8s44Gg44GHDQor44GU44GI44GRLOOBn+OBkeOCiw0KK+OBquOBiyzjgb/jgZrjgbsNCivjgYjjgbDjgags44G+44GV44GKDQor44GT44Gw44KE44GXLOOBj+OBq+OBsuOBkw0KK+OBsuOCieOBpOOBiyzjgajjgoLjgobjgY0NCivjgZXjgajjgYYs44G/44Gk44GKDQor44GE44Gu44GG44GILOOBleOBoOOBig0KK+OBr+OBmeOBrOOBvizjgZjjgavjgaENCivjgbXjgovjga/jgZ8s44GU44G444GEDQor44GG44GI44GuLOOBleOBoOOBig0KK+OBn+OBkeOBquOBiyzjgYvjgYrjgosNCivjgY/jgavjgZ/jgZEs44GE44Gh44KN44GGDQor44Gy44KJ44GfLOOBteOBleOBsuOBkw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgb8NCivjgbXjgY/jga/jgoks44KI44GX44Gy44GTDQor44G144Gq44GQ44GhLOOBn+OBoOOBlw0KK+OBguOBvuOBrizjgb7jgZXjgbLjgo0NCivjgYrjga4s44G/44Gt44GKDQor44GZ44KPLOOBn+OBkeOBlw0KK+OBruOBjOOBvyzjgobjgZ4NCivjgYbjgoHjga4s44GC44GN44KJDQor44GE44GR44GuLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZHjgYTjgZMNCivjgYTjgZfjgYQs44GX44KT44GE44Gh44KN44GGDQor44GV44GE44Go44GGLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjga7jgbbjgYoNCivjgZ/jgabjgYTjgZcs44GC44GN44KJIOOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgb7jgZXjgYoNCivjgY3jga7jgZfjgZ8s44GC44GV44GTDQor44GK44GV44KPLOOBguOBpOOBlw0KK+OBhOOBpyzjgb7jgZXjgbLjgo0NCivjgYrjgYzjgo8s44KI44GX44GKDQor44GI44Gu44KC44GoLOOChuOBhuOBkw0KK+OBiuOBluOCjyzjgZLjgpMNCivjga/jgZ/jgZHjgoTjgb4s44GC44Gk44GXDQor44GE44GE44GgLOOBqOOBiuOCiw0KK+OBl+OBruOBluOBjSzjga7jgorjgZMNCivjgYrjgYvjgaAs44G/44Ga44Gu44KKDQor44Gf44GL44G+LOOBruOCiuOBkw0KK+OChOOBjizjgb/jgYsNCivjgZXjgYvjgYQs44KE44GZ44KG44GNDQor44GX44G/44GaLOOChuOBhuOBkw0KK+OBu+OCiuOBi+OCjyzjga/jgarjgZMNCivjgarjgYzjgYos44GN44KH44GTDQor44Gy44KJ44GE44GXLOOBqOOCguOBkw0KK+OBleOBjOOCjyzjgYvjgZrjgobjgY0NCivjga/jgonjgaAs44Go44GX44GL44GaDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBkw0KK+OBn+OBoSzjgbLjgYvjgosNCivjgbLjgYgs44KI44GX44Gy44KNDQor44Go44KA44KJLOOBleOBjeOBkw0KK+OBn+OBoCzjgZfjgbsNCivjgojjgZfjgoLjgags44KP44GN44GTDQor44KC44Gh44Ga44GNLOOBv+OBmuOBuw0KK+OBn+OBquOBiyzjgajjgoLjgbLjgo0NCivjgZ/jgZDjgaEs44G/44Gk44GC44GNDQor44GV44Go44GGLOOBmOOCheOBq+OBoQ0KK+OBleOBi+OBl+OBnyzjgorjgYjjgZMNCivjgYvjgo/jgZfjgb4s44G+44GV44GXDQor44G744KK44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBteOBj+OBvizjgb7jgZXjgogNCivjgYvjgo/jgZ/jgass44GT44GG44GYDQor44GY44Gz44GNLOOCiOOBhuOBkw0KK+OBleOBhOOBqOOBhizjgZPjgbjjgYQNCivjgZfjgYrjgaQs44G+44KKDQor44Go44Gw44GfLOOBn+OCguOBpA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgb8NCivjgYrjgbXjgaEs44KK44KF44GE44GhDQor44GX44Gu44Gv44KJLOOBvuOBleOCiA0KK+OChOOBvuOBi+OCjyzjgY3jgb/jgYoNCivjgZ/jgoDjgoks44G+44KK44Gh44KFDQor44Gv44Gf44GR44KE44G+LOOBv+OBquOBkw0KK+OBn+OBquOBiyzjgbLjgo3jgZMNCivjgYvjgarjgZbjgo8s44Gh44Gy44KNDQor44Gf44GL44Gv44GXLOOBk+OBhuOBmA0KK+OBteOBmOOCgOOCiSzjgb7jgobjgb8NCivjgarjgYzjgZfjgb4s44GE44GP44GKDQor44GN44Gu44GX44GfLOOChuOBjeOBiA0KK+OBk+OCk+OBqSzjgb7jgobjgb8NCivjgYLjgpPjgbks44GL44GK44KKDQor44GV44GE44Go44GGLOOBmeOBv+OBn+OBiw0KK+OBguOBleOBoCzjgYLjgY3jgokNCivjgY3jga7jgZfjgZ8s44GK44GV44KADQor44GL44Gp44KELOOBv+OBpOOCiw0KK+OBhuOBiOOBoCzjgYTjgZXjgYoNCivjgZXjgYTjgajjgYYs44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOBkw0KK+OBhOOBl+OBluOBjSzjgbLjgo3jgb/jgaENCivjgYrjgZbjgo8s44Gu44G244GKDQor44Gv44KE44GXLOOBi+OBmuOBn+OBoA0KK+OChOOBjOOCjyzjgajjgZfjgYoNCivjgZ/jgYvjga/jgZcs44Gf44GL44GTDQor44Go44G/44KE44G+LOOBsuOBi+OCiw0KK+OBguOBoOOBoSzjgbLjgafjgYLjgY0NCivjgYLjgYvjgYTjgo8s44GI44KK44GTDQor44GL44GM44KELOOBv+OBquOBkw0KK+OBguOCieOBhCzjgojjgZfjgobjgY0NCivjgYrjgZfjgY3jgoos44Go44GN44GTDQor44KE44G+44KA44KJLOOBvuOBvw0KK+OBn+OBi+OChOOBvizjgb7jgarjgb8NCivjgojjgZPjgoTjgb4s44GE44Ga44G/DQor44Gw44KTLOOBv+OBjQ0KK+OBhOOBmuOBvyzjgbXjgb/jgYgNCivjgb/jgZrjga4s44GC44GN44GTDQor44G244KT44KELOOBqOOBiuOCiw0KK+OBpuOCieOBiuOBiyzjgoLjgasNCivjgb/jgoTjgZfjgZ8s44G+44GV44Gy44KNDQor44GC44GV44G+LOOBl+OCguOCkw0KK+OBleOBleOBjSzjgabjgovjgbLjgZUNCivjgavjgZfjgYos44GK44GV44KADQor44G144KL44KELOOBv+OBoeOBig0KK+OBhOOBvuOBoCzjgZ/jgb/jgYoNCivjgYTjgZfjga/jgoks44KI44GX44GC44GNDQor44Gv44GX44KC44GoLOOChuOBng0KK+OBvuOCi+OChOOBvizjgZfjgofjgZnjgZENCivjgYvjgZgs44KG44GN44Gu44G2DQor44GL44Gt44GTLOOBleOBiuOCig0KK+OBquOBi+OBoCzjgZ/jgYvjgZcNCivjgaHjgZbjgo8s44GI44GE44GYDQor44GV44KPLOOBqOOBl+OChuOBjQ0KK+OBqOOBjOOCgSzjgYrjgZXjgoANCivjgojjgZfjgaAs44Gk44GQ44GKDQor44GK44GuLOOCiOOBl+OBruOCig0KK+OChOOBkyzjgZ/jgaDjgYoNCivjgYTjgZfjgYvjgo8s44G/44Gu44KLDQor44GT44Go44GgLOOBl+OCh+OBmA0KK+OBleOBjOOCjyzjgb/jga7jgosNCivjga7jgZDjgaEs44GR44GE44GTDQor44Gn44KT44G8LOOBpuOBpOOBig0KK+OBr+OCi+OBjSzjgojjgorjgagNCivjgYTjga0s44Gm44Gk44GKDQor44GK44GuLOOBsuOBp+OChuOBjQ0KK+OBi+OBreOBoCzjgYTjgY/jgYgNCivjga7jgZDjgaEs44G/44GN44GKDQor44GK44GwLOOBqOOCguOChuOBjQ0KK+OBiuOBnyzjgYvjgZrjgZ/jgYsNCivjgZfjgoLjgb7jgY0s44Gv44Gq44GTDQor44KP44Gf44Gy44GNLOOBruOCiuOBsuOBqA0KK+OChOOBvuOCguOBqCzjgarjgbsNCivjgbXjgZjjgoDjgoks44GC44GV44GTDQor44Gd44GG44G/44KELOOBv+OCj+OBkw0KK+OBl+OBvizjgZLjgpMNCivjgZXjgZXjgY0s44Gy44KN44GTDQor44GL44GM44KPLOOBvuOBleOBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgYLjgY3jga7jgooNCivjgZXjgYTjgY0s44Gy44KN44GTDQor44GE44Go44GGLOOBi+OBmuOBvg0KK+OBjeOCgOOCiSzjgYvjgZrjgb7jgZUNCivjgZ/jgbDjgZ8s44Gy44KN44G144G/DQor44GP44KBLOOBguOBjeOBsuOBkw0KK+OBn+OBi+OBoCzjgZfjgofjgYbjgYjjgYQNCivjgZ/jgoDjgoks44GP44Gr44GKDQor44Gf44GL44G+44GkLOOBn+OBpOOBsuOBkw0KK+OBl+OCjeOBl+OBnyzjgYLjgY3jgokNCivjgYvjgajjgYYs44Gy44KN44G/44GkDQor44GC44KP44GELOOBqOOBj+OBhOOBoeOCjeOBhg0KK+OBu+OBleOBiyzjgoTjgZnjgYoNCivjgZ/jgarjgYss44KG44GG44GTDQor44G/44Gy44KJLOOBvuOCig0KK+OBleOBqOOBhizjgb7jgorjgZMNCivjgYrjgZbjgo8s44GR44KT44GYDQor44GZ44Ga44GNLOOBj+OBvw0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgobjgY0NCivjgoLjgorjgZ/jgass44KM44GE44GTDQor44GE44KP44GQ44KNLOOBj+OBv+OBkw0KK+OBhuOBiOOBvizjgb/jgojjgZMNCivjgbXjgYvjgZ8s44Gu44KK44GTDQor44Gy44KN44GbLOOCiOOBmA0KK+OBiuOBi+OBoCzjgZ/jgYvjgbLjgo0NCivjgYvjgajjgYYs44Go44KI44GC44GNDQor44G+44GNLOOBvuOCiuOBkw0KK+OBruOBoCzjgb/jgYgNCivjgY/jgbws44G+44GN44GTDQor44Gr44GX44GN44GK44KKLOOBl+OCheOBleOBjw0KK+OChOOBrizjgajjgoLjgobjgY0NCivjgYvjgo/jgoDjgZPjgYYs44Go44GX44Gu44KKDQor44KE44GZ44KA44KJLOOBruOCiuOBkw0KK+OBqOOBq+OBlyzjgovjgb8NCivjgoTjgb7jgoLjgags44GX44KF44GV44GPDQor44GX44KC44GgLOOBkeOBhOOBkw0KK+OBiuOBn+OBqyzjgobjgY3jgYoNCivjgYrjga7jgZXjgags44GR44KT44GYDQor44GL44Gq44GW44KPLOOCiuOCheOBng0KK+OBiuOBi+OCguOBqCzjgobjgYvjgooNCivjgZXjgYTjgajjgYYs44Gk44Go44KADQor44GL44GX44KP44Gw44KJLOOBl+OCh+OBkw0KK+OBn+OBi+OBr+OBlyzjgaHjgYsNCivjgZXjgYTjgajjgYYs44GC44GN44GTDQor44G+44Gk44GgLOOBsuOCjeOBvw0KK+OBn+OBoeOBluOBjSzjgYLjgorjgYsNCivjgZPjgpPjgaks44GV44KG44KKDQor44GX44G/44GaLOOBqOOCguOBi+OBmg0KK+OBquOBjOOBiuOBiyzjgY3jgofjgZMNCivjgarjgYvjgYzjgo8s44Gk44GO44GKDQor44Gf44GL44GoLOOBmOOCheOCk+OBkw0KK+OBjeOCgOOCiSzjgarjgYrjgY0NCivjgarjgovjgZss44G/44KI44GTDQor44GK44GQ44G+LOOBqOOCguOBkw0KK+OBn+OBi+OBr+OBlyzjgbLjgYvjgosNCivjgY3jgY/jgaEs44Gg44GE44GZ44GRDQor44GV44Go44GGLOOBj+OBq+OBig0KK+OBiOOCk+OBqSzjga/jgpMNCivjgpPjgZDjgYTjgYfjgpMs44Gy44KN44GC44GNDQor44Gf44KA44KJLOOBv+OCj+OBkw0KK+OChOOBvuOCguOBqCzjgb/jgarjgZMNCivjgYLjgZXjgYQs44Gu44G244GTDQor44KC44KKLOOBvuOBleOBruOBtg0KK+OBn+OBi+OBl+OCjSwg44G+44Gq44G2DQor44GK44GLLOOCiOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgo/jgYvjgZMNCivjgYTjgZDjgaEs44Go44KC44GTDQor44Gf44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OCiOOBl+OBoCzjgYvjgYrjgooNCivjgYLjgY3jgoLjgags44GC44Gk44GXDQor44Gr44GX44GELOOBsuOCjeOChuOBjQ0KK+OCj+OBl+OBiuOBiyzjgZ/jgYvjgZcNCivjgYTjgazjgb7jgoss44GN44KI44G/DQor44G744GXLOOBi+OBiA0KK+OCiOOBreOChOOBvizjgb/jgarjgYgNCivjgY/jgo3jgbks44Gb44GE44GTDQor44GE44GX44GELOOBr+OBmOOCgQ0KK+OBsuOBkOOBoSzjgb7jgorjgZMNCivjgarjgYvjgaAs44Gy44KN44GNDQor44GK44Gu44Gn44KJLOOBqOOCguOBruOCig0KK+OBqOOBoCzjgZPjgYbjgZgNCivjgb7jgYjjgaAs44KI44GX44Gy44KNDQor44Gq44GM44GELOOBiuOBleOCgA0KK+OBk+OBrOOBnyzjgoHjgZDjgb8NCivjgZfjgbDjgZXjgY0s44GV44GE44GLDQor44GG44GL44GELOOBqOOBl+OChA0KK+OBmeOBmuOBjSzjgZXjgaHjgZMNCivjgbLjgonjgY0s44GN44KH44GTDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgb7jganjgYsNCivjgYvjganjgY/jgoks44GY44KF44KT44GYDQor44Gf44GL44GV44GNLOOBk+OBhuOBmA0KK+OBquOBi+OBnyzjgbLjgo3jgZgNCivjgZ/jgavjgYvjgo8s44GX44Ga44GLDQor44Gr44GX44KA44KJLOOBvuOBleOBruOBtg0KK+OBv+OBquOBvyzjgobjgYbjgYTjgaENCivjgYrjgazjgY0s44Gy44GV44GIDQor44GV44Go44GGLOOBmOOCheOBq+OBoQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjga/jgosNCivjgbLjgaAs44Gq44GK44GTDQor44GV44GP44G+LOOBqOOBl+OChuOBjQ0KK+OBq+OBiOOBoCzjgbLjgo3jgZMNCivjgojjgZPjgYQs44KG44GN44GTDQor44KI44Gt44GP44KJLOOBsuOBleOCiOOBlw0KK+OBsOOCk+OBsCzjgYvjgaTjgajjgZcNCivjgoTjgb7jgaAs44GC44GN44GLDQor44GE44G+44KA44KJLOOBoeOBr+OCiw0KK+OBhOOBkeOBoCzjga7jgbbjgZMNCivjgarjgYvjgoDjgoks44KG44GG44GTDQor44GZ44Gp44GGLOOBvuOBleOBvw0KK+OBquOBi+OBneOBrSzjgb7jgZXjgZcNCivjgYrjgZXjgo8s44GT44GG44GYDQor44GV44Go44GGLOOBjeOCiOOBvw0KK+OBiOOBhOOBqeOCgSzjgbvjgZrjgYgNCivjgYTjgYzjgonjgZcs44G+44GV44KEDQor44Gf44KELOOBguOChOOBvw0KK+OBiuOBsuOCiSzjgb/jga7jgosNCivjgYTjgZfjgZDjgaEs44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBn+OBi+OBig0KK+OBleOBi+OCguOBqCzjgYrjgZXjgoANCivjgZnjgY7jgoLjgags44GX44G+DQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OCiOOBl+OBhCzjgozjgb8NCivjgYTjgo/jgoQs44Gf44GR44GKDQor44GN44Gu44GX44GfLOOCiuOBiA0KK+OBmeOBjuOBleOCjyzjgYLjgY3jgbLjgacNCivjgo/jgaAs44KL44KK44GTDQor44G/44KE44GX44GfLOOBoeOBguOBjQ0KK+OBhuOBiOOBrizjgb/jgarjgZMNCivjgYrjgZ/jgY0s44KK44GIDQor44GE44GX44Gw44GXLOOBi+OBiuOCig0KK+OBhOOCj+OBl+OBnyzjgaHjgYvjgZMNCivjgYTjgZfjgYvjgo8s44GX44Gh44KNDQor44GN44GXLOOChuOBjQ0KK+OBvuOCi+OChOOBvizjgb/jgYsNCivjgbvjgpPjgb4s44Gf44GL44GTDQor44GP44GZ44KC44GoLOOCiOOBl+OBkw0KK+OBhOOBvuOBrizjgYPjgZUNCivjgZDjgYLjgavjgYos44GD44GVDQor44GS44KM44G/44GCLOOBleOBqOOBlw0KK+OBiuOBq+OBlyzjgZPjgYbjgZgNCivjgoTjgb7jgaAs44G/44Gq44GTDQor44G144GY44GK44GLLOOBn+OBoOOBsuOCjQ0KK+OBr+OBquOBoCzjgojjgYbjgZMNCivjgZfjgbDjgZ8s44GN44KH44GTDQor44G/44KE44GX44GfLOOBi+OBmuOCiA0KK+OBi+OBleOBr+OCiSzjgb/jgojjgZMNCivjgYrjgoTjgZEs44GI44G/44GTDQor44GE44G+44GELOOBruOBtuOBkw0KK+OBk+OBm+OBjSzjgobjgb/jgZMNCivjgYrjgZ8s44GN44KH44GTDQor44G+44Gh44GELOOBvuOBleOBig0KK+OBjeOBj+OBoSzjgbLjgafjgbLjgZMNCivjgbLjgZDjgaEs44Gf44Gm44GKDQor44G/44Gq44KI44GXLOOBsuOBleOBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgYoNCivjgarjgpPjgbAs44GE44GV44GKDQor44GK44Gr44GXLOOBjeOBv+OBsuOBpw0KK+OBr+OChOOBl+OBoCzjgZ/jgYvjgYoNCivjgZ/jgarjgYss44GL44KTDQor44GL44Gt44GTLOOBm+OBhOOBng0KK+OBpOOBoeOChCzjgZfjgocNCivjgYTjgYTjgaAs44Go44KJ44GKDQor44G144KL44KELOOChOOBmeOBi+OBmg0KK+OBquOBi+OCgOOCiSzjgYLjgZXjgYoNCivjga/jgovjga/jgoks44KG44GN44GKDQor44G744KK44GILOOBvuOBleOBig0KK+OBiuOBnyzjga/jgovjgYoNCivjgZnjgZrjgY0s44GP44Gr44GKDQor44GK44GoLOOBvuOCiuOBkw0KK+OBquOBi+OBjOOCjyzjga7jgbzjgosNCivjgYvjgo/jgZfjgb4s44GL44Ga44Gy44KNDQor44Gm44KJ44KC44GoLOOBm+OBpOOBig0KK+OBjeOCgOOCiSzjgYvjgZrjgYgNCivjgojjganjgarjgo8s44GY44KF44KT44GYDQor44GT44Gg44GE44KJLOOBsuOCjeOBi+OBmg0KK+OBi+OBj+OCieOBhCzjgarjgYrjgY0NCivjgYrjgZDjgoos44Gg44GE44GV44GPDQor44Gv44GfLOOBn+OBi+OBqOOBlw0KK+OBvuOBpOOCguOCiizjgbLjgafjgbLjgo0NCivjgojjgZfjgYrjgYss44GL44Ga44Gu44KKDQor44GX44GS44GfLOOBqOOCguOChuOBjQ0KK+OBi+OCj+OBkOOBoSzjgYjjgaTjgYoNCivjgYvjga3jgZMs44GL44Ga44GKDQor44GC44GV44GyLOOBv+OBpOOBkA0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgZcNCivjgYLjgorjgoTjgb4s44KI44KK44GX44GSDQor44Gk44GY44GfLOOBn+OBkeOBlw0KK+OCiOOBl+OBr+OBlyzjgoTjgZnjgaTjgZANCivjgb/jgZfjgb4s44G+44GV44Go44GXDQor44GV44Go44GGLOOBvuOChuOBvw0KK+OBi+OBreOBvuOCiyzjgojjgbjjgYQNCivjgYvjga3jgZMs44KG44GG44GY44KNDQor44GI44GY44G+LOOBguOBjeOCiQ0KK+OBv+OBpOOBj+OBoSzjgobjgYvjgooNCivjgoLjgoos44Gy44Gn44GC44GNDQor44GK44GhLOOCiOOBhuOBkw0KK+OBvuOBiOOBi+OCjyzjgbLjgo3jgojjgZcNCivjgZ/jgarjgYss44GR44KT44GYDQor44GK44KK44GM44GVLOOBi+OBmuOBig0KK+OBk+OBm+OBjSzjgZvjgYTjgZgNCivjgbLjgonjgoTjgb4s44G/44Gh44GC44GNDQor44GT44G844KKLOOBqOOCguOBsuOCjQ0KK+OBquOBi+OBhuOBiCzjgb7jgZXjgYoNCivjgZnjgajjgYYs44Gf44Gg44GC44GNDQor44GU44GoLOOBk+OBhuOBmA0KK+OBpOOBi+OCguOBqCzjgaTjgZDjgYoNCivjgYjjgbPjga/jgoks44Gf44Gk44GKDQor44KC44KK44GuLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgZvjgYTjgZcNCivjgojjgZfjgaAs44GL44Gk44GYDQor44GE44G+44GELOOBiOOBpOOBsuOCjQ0KK+OBsuOBrizjgoTjgZnjgZcNCivjgojjgZfjgaAs44Gy44KN44GC44GNDQor44GK44Gr44Ga44GLLOOBmOOCheOCkw0KK+OBn+OBi+OBjizjgY3jgb/jgYoNCivjgYrjgoDjgoks44Gb44GE44GE44GhDQor44GG44Gh44KE44G+LOOBi+OBmuOBig0KK+OBj+OCjeOBi+OCjyzjgb7jgZXjga7jgooNCivjgoTjgb7jgZfjgZ8s44G+44Gk44Gu44KKDQor44Gr44GX44GgLOOBi+OBiuOCiw0KK+OCj+OBn+OBquOBuSzjgZ/jgaDjgZcNCivjgYvjgZfjgo/jgY4s44GI44Gk44KI44GXDQor44GL44Gt44GTLOOBn+OBpOOBig0KK+OBj+OBvuOBoCzjgb7jgZXjgYoNCivjgZPjgZjjgb4s44GN44KI44Gy44GTDQor44GX44KJ44GELOOBsuOCjeOBv+OBoQ0KK+OBteOCi+OBi+OCjyzjgojjgZfjgYLjgY0NCivjgoDjgZfjgYYs44Gy44Gn44Gu44KKDQor44KI44GX44GuLOOBvuOBleOBguOBjQ0KK+OBmeOBjuOBhuOCiSzjgb7jgZPjgagNCivjgbXjgZjjgZXjgo8s44G+44GV44GNDQor44GV44Go44GGLOOCgOOBreOBn+OBiw0KK+OBiOOBluOBjSzjgb/jgaoNCivjgoDjgonjgYvjgb8s44GZ44G/44Gf44GgDQor44Gr44KP44KE44G+LOOBvuOBleOBsuOBkw0KK+OChOOBmeOBrizjgYvjgaTjgbLjgagNCivjganjgaAs44GI44Gk44GTDQor44GL44GY44GELOOCiOOBl+OBruOBtg0KK+OBn+OBquOBiyzjgZ/jgY3jgYoNCivjgb7jgaTjgarjgoos44Gy44GV44GIDQor44GK44Gw44KE44GXLOOBmeOBleOCkw0KK+OBpOOBguOBnuOCkyzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44KG44GN44GTDQor44G+44Gk44KA44KJLOOBv+OBjeOBig0KK+OBk+OCguOCiizjgarjgYrjgZrjgb8NCivjga7jgZ7jgYgs44Gm44Gk44Gy44GTDQor44GK44GuLOOCiuOBiA0KK+OBi+OCk+OBrizjgZ/jgaDjgYLjgY0NCivjgZXjgajjgYYs44Go44GX44GKDQor44Gu44Gq44GLLOOBm+OBhOOBhOOBoQ0KK+OBi+OCj+OBr+OCiSzjgb7jgooNCivjgarjgYvjgoDjgoks44GC44GN44Gy44KNDQor44KE44G+44GX44GfLOOBn+OBi+OChuOBjQ0KK+OBk+OBhuOBhOOBoSzjgZ/jgYvjgYoNCivjgYTjgZ/jgoQs44G+44Gk44KC44KKDQor44KE44G+LOOBv+OBiw0KK+OChOOBvuOCguOBqCzjgajjgoLjgbLjgZMNCivjgY/jgonjgZ8s44KC44Gq44G/DQor44GL44KP44GaLOOCiOOBhuOBkw0KK+OBv+OBi+OBvyzjgYTjgZXjgYoNCivjgZ/jgY3jgYzjgo8s44GT44GG44GN44GhDQor44Gf44Gq44GLLOOBvuOBquOBtg0KK+OBv+OChOOBnyzjgZ/jgY/jgoQNCivjgarjgYTjgajjgYYs44KE44GZ44G+44GVDQor44G+44KL44GfLOOBvuOBjeOBkw0KK+OCj+OBoCzjgYvjgZrjgYgNCivjgbLjgYjjgaAs44GN44KI44G/DQor44Gf44GR44GgLOOBk+OBmuOBiA0KK+OBi+OBmOOCguOBqCzjgZHjgYTjgZMNCivjga7jgoDjgoks44KP44GL44GTDQor44Gt44KELOOChuOBvw0KK+OBmeOBmuOBjSzjgb7jgobjgb8NCivjgY3jgoDjgoks44Go44GX44GL44GaDQor44KA44KJ44GfLOOCguOCguOBiA0KK+OBhOOBl+OBi+OCjyzjgbLjgafjgYoNCivjgbXjgZjjgo/jgoks44G144G/44GTDQor44KC44KKLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBguOBhOOCguOBrizjgoTjgZnjgZMNCivjgZ/jgYvjgaAs44GE44Gf44KLDQor44GK44GgLOOBk+OBhuOBhOOBoQ0KK+OBjeOBruOBl+OBnyzjgojjgZfjgYvjgZoNCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44GV44GP44G+LOOBn+OBi+OBpuOCiw0KK+OBmOOCh+OBhuOBk+OBhizjgY3jgb/jga7jgooKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2VfaC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2VfaC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA2MTllZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZV9oLnR4dApAQCAtMCwwICsxLDIyNzQ5IEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+OBguOBjeOCguOBqCzjgoTjgZnjgYoNCivjgYLjgY3jgbAs44GX44GS44KLDQor44GC44KJ44GELOOBsuOBp+OBguOBjQ0KK+OBguOCieOBhCzjgZHjgpPjgYTjgaENCivjgYLjgYvjgYzjgo8s44Go44GX44GKDQor44GC44KJ44GNLOOBm+OBhOOBlA0KK+OBguOBhOOBi+OCjyzjga7jgorjgYoNCivjgYLjgY3jga4s44KG44GN44GKDQor44GC44GN44KE44G+LOOBpOOCiOOBlw0KK+OBguOBleOBhCzjgbLjgajjgZcNCivjgYLjgbks44G+44KC44KLDQor44GC44KK44GMLOOBpOOBqOOCgA0KK+OBguOBjeOBnyzjgojjgZfjgabjgosNCivjgYLjgYvjgaTjgYss44GL44Ga44Gy44GTDQor44GC44KJ44GELOOBvuOBleOBr+OCiw0KK+OBguOBleOBr+OCiSzjgYvjgZrjgYoNCivjgYLjgaTjgb8s44G+44GV44GC44GNDQor44GC44KP44KELOOBsuOBqOOBlw0KK+OBguOBleOBi+OCjyzjgajjgZfjgYLjgY0NCivjgYLjgYrjgY0s44GK44GV44KADQor44GC44KP44GaLOOBguOBjeOCiQ0KK+OBguOBjeOBj+OBlSzjgojjgYbjgZnjgZENCivjgYLjgYrjgoTjgY4s44Gv44Gk44GL44GaDQor44GC44GY44GV44KPLOOBl+OCheOBhuOBhOOBoQ0KK+OBguOBhOOBnSzjgoTjgZnjgZcNCivjgYLjgYrjgZfjgb4s44Gh44KI44GL44GaDQor44GC44Go44GGLOOBvuOBleOBsuOBkw0KK+OBguOBleOBrizjgojjgZfjgoQNCivjgYLjgorjgYws44Gd44GG44GE44GhDQor44GC44GK44GNLOOCiuOCh+OBhuOBuOOBhA0KK+OBguOBhOOBi+OCjyzjgobjgY3jgYoNCivjgYLjgY3jgZ8s44G+44GV44Gy44KNDQor44GC44GV44GuLOOBruOCiuOBguOBjQ0KK+OBguOBleOBqCzjgbLjgafjgZcNCivjgYLjgonjgY0s44KI44GX44GL44GaDQor44GC44KT44Gp44GGLOOChOOBmeOBlw0KK+OBguOBleOBi+OCjyzjgbLjgo3jgZcNCivjgYTjgYTjgaAs44G+44GT44GoDQor44GE44KP44GV44KPLOOBvuOBleOBjQ0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44Gy44GoDQor44GE44GX44Gv44KJLOOCiOOBl+OBruOCig0KK+OBhuOBi+OBmCzjgZXjgaHjgZMNCivjgYbjgoHjgZ/jgass44GL44Gk44Gy44GTDQor44GK44GR44Gf44GrLOOBkeOCk+OBmA0KK+OBiuOBiuOBmeOBjizjgYLjgY3jgbLjgo0NCivjgYrjgYrjgYvjgo8s44G/44GN44Gy44GTDQor44GL44Go44GGLOOBvuOBleOBqOOBlw0KK+OBi+OCgizjgb7jgZXjgYLjgY0NCivjgY/jgb7jgYzjgYQs44G+44GV44GXDQor44GT44KT44GpLOOBguOBjeOCiQ0KK+OBmeOBjuOCguOBqCzjgYrjgZXjgoANCivjga/jgb7jgZXjgY0s44KI44GX44Gu44KKDQor44Gh44GgLOOBl+OCheOCk+OBmA0KK+OBquOBi+OCgOOCiSzjgZHjgYTjgZ7jgYYNCivjgarjgYzjgZ8s44Gh44GI44GTDQor44GV44KP44KA44KJLOOBi+OBoeOBkw0KK+OBquOCi+OBiizjgojjgZfjga7jgbYNCivjgarjgorjgZ8s44KG44G/44GTDQor44Gv44Gb44GM44KPLOOBsuOCjeOBkw0KK+OBteOBmOOBnyzjgZHjgYTjgZMNCivjgbXjgZjjgo/jgoks44Gf44GL44GTDQor44G244KI44GGLOOBpuOBpOOBig0KK+OBu+OCiizjgZPjgYbjgZgNCivjgb/jgarjgb/jgoDjgoks44Gh44GC44GNDQor44G/44KE44GY44G+LOOBoeOCiOOCig0KK+OChOOBvuOBoCzjgb7jgooNCivjgoTjgb7jgZDjgaEs44Gf44GL44GXDQor44KE44Gq44GO44Gv44KJLOOBv+OBqeOCig0KK+OCiOOBl+OBrizjgZfjgpPjgYTjgaENCivjgavjgYTjgaAs44GP44Gr44Gy44GTDQor44GK44GK44GE44KE44G+LOOChuOBhuOBkw0KK+OBi+OBquOBjOOCjyzjgYTjgaHjgo3jgYYNCivjgY3jgoDjgoks44KK44GI44GTDQor44Gk44GL44GW44GNLOOBv+OBuw0KK+OBi+OCj+OBoCzjgarjgYrjgZMNCivjgYLjgZXjgYvjgo8s44G/44GV44GTDQor44GX44KC44GkLOOBvuOBleOBguOBjQ0KK+OBiuOBiyzjgZ/jgYvjgbLjgagNCivjgYrjgYzjgo8s44GT44GZ44GRDQor44Gf44GE44KJLOOBl+OCh+OBhuOBhOOBoQ0KK+OBhOOBl+OBrizjgY3jgojjgarjgYwNCivjgY3jgb/jgZfjgb4s44GC44GN44KJDQor44GV44Go44GGLOOBpuOBpOOChA0KK+OChOOBvuOBoCzjgYrjgZXjgoANCivjgYrjgYrjgZ8s44Gq44GK44G/44GhDQor44G+44GI44GgLOOBsuOBp+OBqOOBlw0KK+OBi+OBluOCieOBlyzjgb/jgaTjgosNCivjgZTjgajjgYYs44GL44Gk44Gu44KKDQor44G744GXLOOBvuOCguOCiw0KK+OBj+OCjeOBoCzjgZfjgpPjgoQNCivjgaTjgYvjgo/jgY0s44Go44GX44KEDQor44GE44Gq44GM44GNLOOBvuOBleOBsuOCjQ0KK+OBhOOCj+OCguOBqCzjgZ/jgoLjgaQNCivjgaTjgovjgZ8s44Gf44GL44GXDQor44GE44GX44GY44G+LOOCiuOCh+OBhuOBuOOBhA0KK+OChOOBvuOBquOBiyzjgbLjgo3jgajjgZcNCivjgYbjgYjjgY0s44GC44GN44GTDQor44Gr44GX44KA44KJLOOBguOBpOOBkw0KK+OCj+OBhOOBoCzjgZ/jgaDjgZcNCivjgojjgZfjgaAs44KL44G/DQor44GX44G244KELOOChuOBn+OBiw0KK+OBguOBqOOBhizjgb7jgZXjga7jgooNCivjgb/jgoTjgZ8s44GL44GK44KLDQor44GK44GK44Gf44GNLOOBpOOBjuOBig0KK+OBjeOCiOOBiuOBiyzjgb7jgZPjgagNCivjgYrjgYrjgZ/jgass44Gf44GL44GXDQor44Gr44GX44KP44GNLOOBquOBiuOBvw0KK+OBq+OBl+OChOOBvizjgZ/jgYvjgZcNCivjgb/jgZfjgb4s44Gf44GL44KG44GNDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBhOOBvuOBiizjgb/jgZrjgbsNCivjgYrjgZbjgY0s44GT44GG44GYDQor44Gb44GN44KELOOBvuOBleOChuOBjQ0KK+OBpOOBj+OBoCzjga7jgbbjgobjgY0NCivjgb/jgojjgZcs44Gu44G244G+44GVDQor44KI44GX44G/LOOBn+OBi+OChuOBjQ0KK+OBleOBleOBiuOBiyzjgZ/jgYvjgZcNCivjgYrjgZfjgb4s44Gh44Gv44KLDQor44GP44G844GfLOOBoeOBmuOBkw0KK+OBl+OBsOOChOOBvizjgZfjgoXjgYbjgZ7jgYYNCivjgYrjgYrjgY/jgbws44Go44Gq44G/DQor44Gf44Gh44GuLOOBmOOCheOCkw0KK+OCj+OBoCzjgb/jgaHjgogNCivjgb7jgaTjgZfjgZ8s44G+44GV44KC44KKDQor44GT44KA44KJLOOChOOBmeOBsuOBkw0KK+OBvuOBjeOBl+OBnyzjgZHjgYTjgZMNCivjgYLjgYvjgYos44KE44GZ44Gy44KNDQor44Gv44GX44KC44GoLOOBsuOBqOOBlw0KK+OBiuOBiuOBrizjgYvjgZrjgYoNCivjgZvjgY3jgoLjgags44KI44GX44GKDQor44G+44GI44GgLOOBoeOBi+OCiQ0KK+OBv+OBpOOBu+OCiizjgarjgYrjgY0NCivjgb/jgarjgb/jgZ7jga4s44G+44GV44GNDQor44Gb44GM44KPLOOBi+OBiuOCig0KK+OBmeOBmuOBjSzjgajjgojjgZgNCivjgY3jgZ/jgYzjgo8s44KI44GX44Gf44GLDQor44KI44GX44KE44GZLOOBmOOCjeOBhg0KK+OChOOBvuOCguOBqCzjgb7jgooNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44KP44GL44G/LOOCiOOBhg0KK+OBvuOBjeOBrizjgarjgYrjgY0NCivjgZnjgZrjgY0s44G+44GV44GKDQor44G144KL44GV44KPLOOBleOBqOOBlw0KK+OBr+OChOOBlyzjgZgNCivjgYTjgb7jgavjgZcs44Go44GX44Gy44GTDQor44G/44KE44KC44GoLOOChuOBiw0KK+OBvuOBjSzjgY/jgavjgYLjgY0NCivjgZPjgYTjgacs44GV44G7DQor44KP44Gf44Gq44G5LOOBvuOBleOBkw0KK+OBiuOBiuOBr+OBlyzjgbLjgajjgZcNCivjgYLjgYvjgYos44GC44GN44GKDQor44GC44GV44GELOOBi+OBmuOBkw0KK+OBhOOBvuOBhCzjgZ/jgYvjgZcNCivjgY3jgoks44G+44GV44Gy44GTDQor44Gr44GX44KA44KJLOOBpuOCi+OBjQ0KK+OCiOOBl+OBi+OCjyzjgajjgZfjgobjgY0NCivjgb/jgarjgb8s44GR44KT44GYDQor44Gk44KL44GfLOOBruOCiuOBig0KK+OBquOBi+OCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgarjgYss44GR44KT44GYDQor44G+44Gk44GG44KJLOOBn+OBkeOBlw0KK+OBmeOBjuOBnyzjgZgNCivjgYvjgo/jgYQs44Go44GX44GKDQor44GT44GP44G8LOOBleOBpOOBjQ0KK+OBpOOBoCzjgb7jgZPjgagNCivjgb/jgoTjgZ/jgZEs44Go44GX44Gf44GLDQor44GP44KN44GV44KPLOOCiOOBl+OBi+OBmg0KK+OBmeOBv+OBsuOCiSzjgb7jgZXjgbLjgZMNCivjgZ/jgYvjgY0s44G+44GV44GKDQor44GE44GX44GoLOOBk+OBhuOBjQ0KK+OChOOBvuOBoCzjgoLjgajjgYvjgZoNCivjgavjgYTjgaQs44Gu44G244GC44GNDQor44GE44KP44KA44KJLOOBi+OCk+OBmA0KK+OBi+OCj+OBquOBuSzjgojjgZfjgbLjgo0NCivjgarjgYzjgYQs44Gy44KN44KG44GNDQor44KE44G+44GtLOOBoeOBguOBjQ0KK+OBhOOBvuOBhCzjgZ/jgYvjgobjgY0NCivjgarjgYvjgYos44GE44GV44GKDQor44GK44GX44GN44KKLOOBteOBv+OBr+OCiw0KK+OBhOOBl+OBi+OCjyzjgZjjgoXjgpMNCivjgYrjgYvjgZjjgb4s44GY44KF44KTDQor44GK44GK44Gr44GXLOOBvuOBleOBr+OCiw0KK+OBmeOBmuOBjSzjgabjgaQNCivjgoTjgb7jgarjgYss44GV44Gk44G/DQor44Gf44Gr44GQ44GhLOOBi+OBmuOBsuOCjQ0KK+OBi+OCj+OBuSzjgajjgY3jgYoNCivjgZPjgpPjga4s44G/44GNDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBn+OBi+OChOOBvizjgZfjgpPjgYTjgaENCivjgoLjgorjgb/jgaEs44GE44Gf44KLDQor44G744KK44GL44KPLOOBi+OBpOOBvw0KK+OBteOBj+OBhCzjgZ/jgb7jgZMNCivjgY3jgZ/jgoDjgoks44GC44GN44KJDQor44Gq44GL44Gv44KJLOOBsuOCjeOBvw0KK+OBhOOBoeOBhCzjgbLjgafjga7jgooNCivjgYTjgo/jgZUs44GL44KI44GTDQor44GZ44Ga44GNLOOBl+OCheOCk+OBmA0KK+OCiOOBreOBn+OBqyzjgYvjgaTjgbXjgb8NCivjgZ/jga4s44Gf44GR44GXDQor44GX44Gw44GfLOOBsuOBp+OCiA0KK+OBhOOBruOBhuOBiCzjgb7jgZXjga7jgooNCivjgYTjgZfjgYvjgo8s44Go44GX44GKDQor44GN44GXLOOBvuOBleOBvw0KK+OBguOCj+OBiCzjgYLjgaTjgZcNCivjgZ/jgZHjgYos44KI44GX44GC44GNDQor44GN44Gu44GX44GfLOOBi+OBmuOBsuOBkw0KK+OBpOOBi+OBoCzjgbXjgb/jgYLjgY0NCivjgYLjgorjganjgoEs44Go44GX44KG44GNDQor44GN44Gj44GL44KPLOOBqOOBl+OBguOBjQ0KK+OBiuOBjOOBleOCj+OCiSzjgbLjgZXjgYvjgZoNCivjgarjgYzjgZss44Gf44GL44Gy44KNDQor44Gv44KL44KE44G+LOOBguOBpOOBsuOBkw0KK+OBiuOBmizjgoTjgZnjgYoNCivjgZPjgZXjgYss44Go44GX44GL44GaDQor44GX44KJ44GV44GNLOOBqOOBiuOCiw0KK+OBn+OBquOBuSzjgaTjgajjgoANCivjgYTjgZHjgYzjgb8s44Gk44KI44GXDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBhOOBoQ0KK+OBvuOBpOOBsOOCiSzjgarjgYrjgagNCivjgarjgYvjgYzjgo8s44KC44KK44Gy44KNDQor44GK44GM44KPLOOBm+OBhOOBmA0KK+OCiOOBl+OBoCzjgb7jgZXjga7jgbYNCivjgYTjgZEs44GV44Gg44Gu44G2DQor44Gf44Gr44GQ44GhLOOBvuOBleOBv+OBoQ0KK+OBvuOBiOOBoCzjgbLjgo3jgZcNCivjgbLjgonjga4s44Gf44GL44KG44GNDQor44GX44G/44GaLOOBjeOBv+OBkw0KK+OChOOBvuOBoCzjgYLjgY3jgajjgZcNCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44GT44G+44Gk44GW44GNLOOBvuOCguOCiw0KK+OBi+OBqOOBhizjgb7jgZXjgYvjgZoNCivjgYrjgo8s44Gu44KK44GTDQor44GE44KP44KA44KJLOOBsuOCjeOBn+OBoA0KK+OBhOOCiuOBiCzjgYvjgZrjgobjgY0NCivjgYLjgYvjgoTjgb4s44G+44GV44KG44GNDQor44GC44GN44KC44GoLOOBsuOCjeOBguOBjQ0KK+OBi+OBv+OCgOOCiSzjgYLjgY3jgbLjgZMNCivjgZnjgb/jgZ8s44GL44GK44KLDQor44Gv44G+44GV44GNLOOBguOBpOOBlw0KK+OChOOBmeOBoCzjgb7jgoLjgosNCivjgZ/jgZHjgoDjgoks44G/44GN44KEDQor44KA44KJ44GL44G/LOOBqOOBv+OBpOOBkA0KK+OBquOBi+OBmOOBvizjgbLjgZXjgajjgoINCivjgoLjgorjgoLjgags44GT44GG44GYDQor44Gb44GN44GQ44GhLOOBn+OBi+OChuOBjQ0KK+OBquOBi+OBmOOBvizjgb7jgZXjgbLjgZMNCivjgY3jgYzjgo8s44Gy44KN44Gy44GVDQor44Gf44GL44Gy44KJLOOBn+OBi+OBlw0KK+OCguOBoeOBoCzjgYLjgaTjgZcNCivjgYvjgoHjgoTjgb4s44Gf44GL44GXDQor44GK44KE44G+44GgLOOBvuOBleOBsuOBlQ0KK+OBn+OBquOBiyzjgabjgovjgbLjgZUNCivjgbvjgpPjgb4s44GX44KT44GYDQor44GN44Gu44GX44GfLOOChOOBmeOBsuOBkw0KK+OBl+OBruOBpOOBiyzjga7jgbbjgZfjgZINCivjgYLjgYTjga/jgoks44KE44GZ44G144G/DQor44Gq44GM44G+44GkLOOBiOOBhOOBmA0KK+OBqOOCiOOCgOOCiSzjgb7jgZXjgYLjgY0NCivjgbLjgonjga4s44Gf44GL44GXDQor44GN44KA44KJLOOBmOOCheOCkw0KK+OBhOOBkeOBoCzjgZvjgYTjgZgNCivjgYTjgZfjga/jgoks44KG44GG44GTDQor44Gu44GQ44GhLOOBvuOBleOCiw0KK+OBk+OBkeOBpCzjgb/jgaTjgb7jgZUNCivjgYrjgY/jgoTjgb4s44GC44Gk44Gy44GTDQor44Gv44G+44GQ44GhLOOBl+OCk+OBmA0KK+OBpOOBmOOBleOBiyzjgbLjgafjgYLjgY0NCivjgYTjgaHjgYvjgo8s44GV44Go44KLDQor44KI44GX44GgLOOBm+OBhOOBlA0KK+OChOOBvuOBoCzjgojjgYbjgYTjgaENCivjgZfjgb/jgZos44KE44GZ44GXDQor44GV44GL44GM44G/LOOBruOCiuOBi+OBmg0KK+OBk+OBmeOBjizjgbLjgZXjgbLjgZMNCivjgavjgZfjgaAs44Gb44GE44GYDQor44GE44GE44GgLOOBi+OBpOOCiQ0KK+OBhuOBoeOBoCzjgoTjgZnjgb8NCivjgoLjgajjgoTjgb4s44Gh44Gv44KEDQor44G/44KE44KC44GoLOOBhOOBj+OCiA0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgZcNCivjgYvjgajjgYYs44Gy44KN44KG44GNDQor44GX44KJ44GELOOBleOBqOOBlw0KK+OBr+OBjuOCj+OCiSzjgZPjgYbjgZgNCivjgoTjgb7jgYbjgaEs44KG44GN44Gy44GnDQor44G/44Gk44Gv44GXLOOBi+OBiuOCig0KK+OCguOCk+OBmCzjgojjgYbjgYTjgaENCivjgZ/jgY3jgoLjgags44Gu44KK44GTDQor44GK44GP44GgLOOBl+OCheOBhuOBmA0KK+OBpOOBi+OCguOBqCzjgZfjgoXjgYbjgZgNCivjgoDjgZPjga/jgoks44KE44GZ44GE44GPDQor44GV44KL44KELOOBv+OBoeOBig0KK+OBiuOBi+OBmOOBvizjgajjgZfjgbLjgZMNCivjgbvjgZfjga4s44Gy44GV44GoDQor44G744GXLOOBsuOCjeOBteOBvw0KK+OBteOBl+OBvyzjgZPjgYbjgYTjgaENCivjgZ/jgYvjga/jgZcs44Gf44Gk44KEDQor44Gr44GX44KE44G+LOOBl+OCk+OBmA0KK+OBpOOCi+OBvuOBoSzjgZfjgofjgYbjgYTjgaENCivjgajjgb/jgZ8s44Gq44KL44GoDQor44GG44Gh44GgLOOBqOOBiuOCiw0KK+OBiuOBiuOBn+OBiyzjgobjgYbjgZMNCivjgZXjgYvjgYQs44Gf44GL44Gy44GVDQor44Gd44GM44G5LOOBi+OBpOOBvw0KK+OCj+OBoCzjgZHjgpPjgZgNCivjgZPjgZXjgYss44G+44GV44G/DQor44GC44GdLOOBguOBkeOBvw0KK+OBguOCieOBhCzjgajjgZfjga/jgosNCivjgZnjgY7jgoDjgoks44GX44GS44GKDQor44GC44GN44KI44GXLOOBi+OBmuOBig0KK+OBguOBleOBi+OCjyzjgaTjgajjgoANCivjgo/jgaAs44GV44GL44GIDQor44GE44GR44GgLOOBk+OBhuOBhOOBoQ0KK+OBiuOBi+OCguOBqCzjgorjgofjgYbjgZgNCivjgYLjgYrjgY0s44G+44GV44KLDQor44GG44GI44GV44KPLOOBpOOCiOOBlw0KK+OBhuOChOOBvizjgbLjgafjgYLjgY0NCivjgarjgYvjga/jgb4s44GZ44GZ44KADQor44GL44KP44KC44GoLOOBvuOBleOChuOBjQ0KK+OBmeOBiOOBvuOBpCzjgZjjgoXjgpPjgZgNCivjgarjgYzjgYQs44GV44Go44GXDQor44Gq44GL44Gv44KJLOOChuOBhuOBnuOBhg0KK+OBquOCj+OBnyzjgarjgorjgYLjgY0NCivjgYvjgaTjgZbjgo8s44Gy44KN44GXDQor44KE44G+44GG44GhLOOBv+OChuOBjQ0KK+OBguOBi+OBjuOBlyzjgaTjgojjgZcNCivjgY/jgZXjgZrjgb8s44Go44GX44Gy44GTDQor44G744GL44KKLOOBsuOCjeOBlw0KK+OBi+OBqOOBhizjgYrjgZXjgoANCivjgY3jgorjgYYs44Gy44KN44GNDQor44GK44GM44KPLOOBvuOBleOBqA0KK+OBn+OBquOBiyzjgb7jgZXjgojjgZcNCivjgYLjgYTjgoDjgoks44Gk44Go44KADQor44GE44GM44KJ44GXLOOBvuOBleOBqA0KK+OBi+OCj+OCj+OBjSzjgZ/jgYvjgb/jgaENCivjgb7jgYjjgZXjgYss44Go44KC44G/44GkDQor44G+44Gk44GX44G+LOOBguOBpOOBlw0KK+OBvuOBpOOCguOBqCzjgbLjgafjgagNCivjgYvjgZ/jgYQs44G+44GV44Gy44KNDQor44GT44GY44G+LOOBvuOBleOBguOBjQ0KK+OBpOOBmOOCguOBqCzjgajjgYrjgosNCivjgarjgo/jgZ8s44GV44Go44GXDQor44G144GY44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBjeOBmyzjgabjgaTjgo3jgYYNCivjgZXjgYvjgZDjgaEs44GY44KF44KT44GE44GhDQor44GZ44Ga44GNLOOBqOOBl+OChuOBjQ0KK+OBr+OBvuOBleOBjSzjgb7jgZXjgbLjgo0NCivjgojjgZfjgaAs44Gy44Go44GXDQor44G744Gj44GfLOOBl+OBkuOBsuOBqA0KK+OBvuOBmeOBkyzjgbLjgZXjgYoNCivjgZ/jgZHjgarjgYss44GT44GZ44GRDQor44GE44GX44GELOOBr+OCi+OBjQ0KK+OBn+OBleOBiyzjgbLjgo3jgZcNCivjgb7jgaTjgaAs44G+44GV44Gy44KNDQor44Gv44GfLOOBn+OBi+OBlw0KK+OBguOBjeOChOOBvizjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gy44GoDQor44KE44G+44GL44KPLOOBl+OCh+OBhuOBmA0KK+OCiOOBk+OBoSzjgb7jgZXjgbLjgo0NCivjgojjga3jgZ/jgass44GN44GE44Gh44KN44GGDQor44G144GY44GuLOOChuOBhuOBmeOBkQ0KK+OBr+OBm+OBjOOCjyzjgYvjgaTjgajjgZcNCivjgbXjgZjjgZ8s44G+44GV44KG44GNDQor44GC44KT44KJ44GPLOOBvuOBleOBkw0KK+OBr+OBl+OCguOBqCzjga7jgbbjgobjgY0NCivjgYTjgarjgaAs44KM44GE44GTDQor44KG44GSLOOBvuOBleOCiOOBlw0KK+OBhOOBvuOBoCzjgYTjgZrjgb8NCivjgZXjgYvjgoLjgags44GL44Ga44Gy44GVDQor44Go44KI44Gq44GMLOOChOOBmeOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgabjgaTjgYoNCivjga/jgarjgYQs44KI44GX44Gu44KKDQor44GX44G/44GaLOOBn+OBpOOBig0KK+OBquOBi+OCgOOCiSzjgojjgZfjga/jgosNCivjgYvjgZjjgoDjgoks44KI44GX44Gy44GTDQor44GE44GX44GM44GNLOOBkeOCk+OBnuOBhg0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgYoNCivjgYLjgb7jga4s44KK44KH44GGDQor44G/44GL44G/LOOBi+OBiuOCiw0KK+OBteOCi+OBpuOCiSzjgb7jgobjgb8NCivjgb7jgb/jgoQs44Gy44Gn44GNDQor44Gk44KL44GuLOOCgOOBpOOBkw0KK+OBguOBleOBhCzjgoTjgZnjgY0NCivjga7jgoDjgoks44GX44GS44GKDQor44KI44GT44KE44G+LOOBl+OCk+OBmA0KK+OBhOOBkeOBoCzjgobjgZ/jgYsNCivjgYLjgpPjganjgYYs44GC44GN44GKDQor44GK44GL44KE44GZLOOChOOBmeOBkw0KK+OBlOOBqOOBhizjgbLjgafjgYLjgY0NCivjgYvjgo/jgZfjgb4s44Gf44GL44GTDQor44Gv44GO44KP44KJLOOBiOOCig0KK+OBguOBn+OCieOBlyzjgobjgb/jgZMNCivjgZ/jgYvjgoTjgb4s44Go44GX44Gy44GoDQor44Gr44GX44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBiOOBoeOBlCzjgZfjgpPjgYTjgaENCivjgoTjgb7jgZbjgY0s44KI44GX44Gy44KNDQor44KA44KN44KELOOBpuOBpOOBig0KK+OBjeOCgOOCiSzjgobjgY3jgYoNCivjgarjgYvjga/jgoks44G144G/44GKDQor44GG44GI44GuLOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjgZHjgpPjgZ8NCivjgaTjgYvjgoLjgags44Gf44Gg44GXDQor44GK44GW44GNLOOBqOOBiuOCiw0KK+OBguOBl+OBi+OCjyzjgoTjgZnjgZfjgZINCivjga3jgY7jgZcs44Go44KC44Gu44KKDQor44GN44KF44GG44GuLOOBl+OCheOBhuOBhOOBoQ0KK+OBleOBqOOBhizjgojjgZfjgbLjgacNCivjgYTjga7jgYbjgYgs44GL44Ga44Gy44GTDQor44GN44GP44Ga44G/LOOBvuOBleOCiw0KK+OBvuOBpOOCguOBqCzjgaDjgYTjgZXjgY8NCivjga/jgoTjgZcs44Gf44GL44GKDQor44G144GP44GK44GYLOOBi+OCk+OBmA0KK+OBquOCi+OBmyzjgZHjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgoLjgags44G+44GV44GNDQor44KC44KKLOOBvuOBleOBlw0KK+OBv+OBjSzjga7jgbbjgYoNCivjgarjgYvjgZ/jgass44KI44GX44GC44GNDQor44G/44KE44GM44KPLOOBteOBv+OBruOCig0KK+OBguOCiuOCiOOBlyzjgYTjgY/jgYoNCivjgZfjgonjgYQs44KI44GX44KG44GNDQor44G/44Gq44G/LOOBvuOBleOCiOOBlw0KK+OBqOOCiuOBlOOBiCzjgbXjgZjjgYoNCivjgZPjgZnjgYws44Gf44Gg44GXDQor44Gk44GY44GuLOOBi+OBmuOBsuOCjQ0KK+OBiuOBkOOCiSzjgoTjgZnjgbLjgo0NCivjgYrjgorjgZ8s44Gh44GL44GXDQor44GC44G/44KC44GoLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBleOBiyzjgajjgYrjgosNCivjga/jgoTjgZcs44KI44GX44Gy44KNDQor44G/44Gq44G/LOOBv+OBruOCiw0KK+OCiOOBl+OBoCzjgajjgZfjgbLjgZMNCivjgavjgZfjga/jgoks44KI44GX44GKDQor44GK44GP44GM44KPLOOBvuOBleOBqOOCgg0KK+OBpOOBmCzjgabjgovjgobjgY0NCivjgarjgYvjgYQs44Gf44GL44GXDQor44Gr44GX44KA44KJLOOBpOOBkOOBig0KK+OBq+OBn+OBquOBhCzjgZHjgpPjgZQNCivjgY/jganjgYYs44Gy44KN44GXDQor44GV44GELOOBn+OBi+OBig0KK+OBl+OCh+OBhizjgb7jgarjgbYNCivjgYTjga7jgYbjgYgs44GL44GK44KLDQor44Gf44Gr44GQ44GhLOOBsuOCjeOBn+OBrQ0KK+OBquOBi+OBq+OBlyzjgZfjgpPjgZgNCivjgYrjgYrjgoLjgoos44Gy44KN44KG44GNDQor44GP44G+44GM44GELOOBn+OBi+OChuOBjQ0KK+OBhOOBl+OBguOBhCzjgajjgojjgYvjgZoNCivjga/jgY7jga/jgoks44GL44Ga44Gu44KKDQor44Gf44GM44GfLOOBkeOCk+OBmA0KK+OBmeOBmuOBjSzjgb/jgaHjgYoNCivjgY/jgbws44Gc44KT44GV44GPDQor44GL44Gq44GG44GhLOOBl+OCk+OChA0KK+OBq+OBl+OBiizjgbLjgafjgY0NCivjgYTjgarjgaAs44Gy44Gn44Gu44G2DQor44Gf44GR44GE44GhLOOBl+OCk+OBmA0KK+OBguOCk+OBqeOBhizjgb7jgZPjgagNCivjgb7jgaTjgarjgb8s44GX44KH44GG44GE44GhDQor44G/44Gq44GP44GhLOOBl+OCheOBhuOBleOBjw0KK+OBi+OBquOBhuOBoSzjgarjgYrjgY0NCivjgYrjgYrjgYTjgoTjgb4s44Gu44G844KLDQor44G+44GZ44GgLOOBl+OCh+OBhuOBmA0KK+OChOOBjuOBr+OCiSzjgajjgZfjgYoNCivjgb/jgZrjga4s44GR44KT44GYDQor44Gu44G244GP44G/LOOBqOOBiuOCiw0KK+OBquOBoCzjgZ/jgYvjgYLjgY0NCivjgZ/jgZHjgZ/jgass44G144Go44GXDQor44GE44G+44GE44Ga44G/LOOBhOOBoeOCjeOBhg0KK+OBhOOBquOBoCzjgYTjgZXjgYoNCivjgYTjgb7jgass44Gf44GL44G144G/DQor44GK44GNLOOBvuOBleOBsuOCjQ0KK+OBteOBj+OBl+OBvizjgojjgYbjgZnjgZENCivjgYTjgYTjgYos44Gy44KN44Go44KCDQor44GE44GX44GgLOOBi+OBpOOChA0KK+OBsuOCieOBnyzjgZPjgYbjgZgNCivjgYTjgZ/jgYzjgY0s44GL44Ga44Gy44KNDQor44KE44G+44G144GPLOOBleOBqOOBlw0KK+OBleOBqOOBhizjga7jgorjgYoNCivjgarjgYvjgYzjgo8s44KK44KH44GGDQor44GK44GV44GLLOOBl+OCheOBhuOBhOOBoQ0KK+OBiuOBhOOBi+OCjyzjga7jgbbjgYLjgY0NCivjgYvjgZfjgYos44KI44GX44Gy44KNDQor44G744GX44GW44GNLOOBl+OBkuOBjQ0KK+OBm+OBjeOBmOOBvizjgZPjgYbjgZgNCivjgYrjgYvjgb7jgYgs44Gu44KK44Gy44KNDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBk+OBhOOBpyzjgZ/jgYvjgarjgYoNCivjgZ/jgYvjga/jgZcs44Gb44GE44GYDQor44GK44GM44KPLOOBk+OBhuOBhOOBoQ0KK+OBpuOCieOBl+OBvizjgZ/jgY/jgYoNCivjgoTjgb7jgZfjgZ8s44G+44GV44GC44GNDQor44Gu44GbLOOBsuOBp+OChuOBjQ0KK+OBvuOBpOOBvuOBiCzjgYLjgobjgb8NCivjgojjgZfjgZ8s44Gu44KK44GC44GNDQor44KA44KJ44GfLOOBqOOBiuOCiw0KK+OBr+OCiSzjga7jgorjgbLjgZMNCivjgoTjgb7jgYbjgaEs44GR44KT44GYDQor44GL44G/LOOBi+OBpOOChuOBjQ0KK+OBmeOBjOOBhCzjgZ/jgaTjgobjgY0NCivjgZ/jgYvjga4s44KI44GX44Gu44G2DQor44Go44GT44KNLOOCiOOBl+OBsuOCjQ0KK+OBmeOBmuOBjSzjgZnjgZnjgoANCivjgZXjgZXjgY0s44GC44Gk44KG44GNDQor44Gk44Gu44GgLOOBpuOBpOOCjeOBhg0KK+OChOOBvuOBleOBjSzjgabjgaTjgoQNCivjgb/jgYbjgoks44GL44Gk44G/DQor44GK44Gg44GO44KKLOOBguOBpOOBkw0KK+OBr+OChOOBlyzjgZfjgpPjgaHjgofjgYYNCivjgajjgb/jgYrjgYss44Gy44Go44GXDQor44GE44GQ44GhLOOBm+OBhOOBhOOBoQ0KK+OBk+OCk+OBqSzjgZ/jgYvjgZcNCivjgY/jgbws44Gy44Gn44GKDQor44GP44KJ44Gs44GNLOOBjeOCh+OBhuOBkw0KK+OBqOOBv+OBvuOBpCzjgarjgYrjgZMNCivjgY/jgo3jgYvjgo8s44G+44GV44GC44GNDQor44Gu44GW44KPLOOBmeOBv+OBig0KK+OBi+OCj+OBleOBjSzjgY/jgavjgYLjgY0NCivjgZ/jgZHjgaAs44GL44Gk44KEDQor44GX44Gu44Gv44KJLOOBguOBjeOBsuOCjQ0KK+OBteOCi+OChCzjgZfjgZLjgosNCivjgarjgYvjgoDjgoks44GV44Go44KLDQor44KE44GY44G+LOOBqOOBiuOCiw0KK+OBq+OBl+OBjOOBjSzjgY3jgojjgZcNCivjgarjgYvjgYzjgo8s44Gd44GGDQor44Gy44KJ44KE44G+LOOBl+OCheOCk+OBhOOBoQ0KK+OChOOBvuOBkOOBoSzjgoDjgaTjgbLjgo0NCivjgojjgZfjgoDjgoks44KG44GG44GYDQor44Gk44GgLOOBn+OBi+OChuOBjQ0KK+OBi+OBpOOCieOBhCzjgo/jgZ/jgosNCivjgb/jgarjgYQs44Go44GX44GL44GaDQor44Gf44GN44GQ44GhLOOBi+OBmuOBig0KK+OCj+OBkeOBuSzjgojjgZfjgbLjgo0NCivjgavjgZfjgYvjgo8s44G+44GV44KEDQor44GX44KJ44GM44GNLOOBsuOCjeOBguOBjQ0KK+OBsOOBsCzjgb7jgZXjgYvjgZoNCivjgYLjgYvjgoos44KK44KH44GG44GYDQor44GC44G5LOOBn+OBj+OChA0KK+OBi+OBhCzjgY/jgavjgbLjgo0NCivjgYrjgYrjgoLjgoos44Gy44Gn44GL44GkDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBquOBjOOBleOCjyzjgbLjgajjgZcNCivjgZXjgo/jgaAs44GI44G/44GTDQor44GC44Ga44G+LOOBruOBtuOChuOBjQ0KK+OBiuOBrizjgbLjgafjgY0NCivjgYvjgo/jgavjgZcs44Gu44G244Gy44GnDQor44G+44Gq44G5LOOBi+OBmuOBsuOCjQ0KK+OBguOCiuOChOOBvizjgobjgYbjgZgNCivjgavjgZfjgYvjgo8s44GN44KI44GXDQor44GC44Gk44G/LOOBl+OCheOBhuOBmA0KK+OBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgbLjgo3jgZ8s44Go44GX44KEDQor44G744GL44Ge44GuLOOBi+OBmuOBqA0KK+OBu+OBl+OBrizjgoTjgZnjgbLjgo0NCivjgoTjgb7jgZDjgaEs44G+44GT44GoDQor44GC44GM44GfLOOBk+OBhuOBmA0KK+OBvuOCi+OBiizjgojjgZfjgobjgY0NCivjgZPjgYTjgacs44Gy44KN44GC44GNDQor44GL44G/44KA44KJLOOBvuOBleOBsuOBpw0KK+OBleOBhOOBqOOBhizjgarjgYrjgY0NCivjgbXjgY/jgb/jgaQs44GC44Gk44GXDQor44Gy44KJ44KE44G+LOOBsuOBi+OCiw0KK+OBleOBhOOBqOOBhizjgabjgaTjgoQNCivjgYTjgZHjgYos44G/44Gu44KLDQor44G144KL44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBhOOBoCzjgbLjgo3jgYLjgY0NCivjgb/jgoTjgZbjgY0s44KC44Go44Gy44KNDQor44KI44GX44GgLOOChOOBmeOChuOBjQ0KK+OBjeOBj+OBnyzjgYjjgorjgZMNCivjgaHjgbAs44Gm44Gk44GKDQor44Go44KK44KE44G+LOOCiuOBpOOBig0KK+OBiOOBluOCjyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgYrjgYrjgbAs44KI44GX44Gf44G/DQor44KE44G+44KC44GoLOOBiuOBleOCgA0KK+OBq+OBl+OBi+OCjyzjgb7jgZXjga7jgbYNCivjgYjjgpPjgaks44G+44GV44Gv44KLDQor44G144GP44GELOOBiuOBleOCgA0KK+OBr+OBvuOBrizjgojjgYbjgYTjgaENCivjgY3jgZ/jga/jgoks44GR44KT44GY44KH44GGDQor44GV44Go44GGLOOChuOBjeOBsuOCjQ0KK+OBvuOBpOOBiizjgb7jgZXjgbXjgb8NCivjgajjgojjgZ8s44Gy44Gn44KEDQor44Gy44KJ44KC44GoLOOBqOOBl+OBsuOBpw0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgb7jgaAs44G+44KG44G/DQor44GE44KP44GL44G/LOOBv+OBruOCiw0KK+OBj+OBvCzjgabjgaTjgYoNCivjgYjjgpPjgaks44GL44Ga44Gy44KNDQor44GL44GS44KE44G+LOOBvuOBleOBruOCig0KK+OBq+OBhOOChCzjgajjgoLjgobjgY0NCivjgZPjgYbjgaEs44KG44GG44GZ44GRDQor44GC44Gg44GhLOOBl+OBkuOChuOBjQ0KK+OBr+OChOOBlyzjgZfjgoXjgpPjgZgNCivjgarjgYvjga4s44G+44GT44GoDQor44GE44GX44Gv44G+LOOBvuOBleOBsuOCjQ0KK+OBk+OBj+OBvCzjgorjgoXjgYbjgYTjgaENCivjgYvjgo/jga4s44Gv44GY44KBDQor44Gq44GL44GY44G+LOOBruOCiuOBsuOBkw0KK+OBn+OBhOOCiSzjgaTjgojjgZcNCivjgZ/jgZHjgY4s44KK44Gk44GKDQor44KC44KK44GX44G+LOOBqOOCguOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgYLjgY0NCivjga7jgZDjgaEs44Gy44KN44GNDQor44GC44KJ44GNLOOChOOBmeOBpuOCiw0KK+OBguOCiSzjgbLjgo3jgZcNCivjgYTjgajjgYYs44Gq44GK44GTDQor44Gv44KE44GV44GLLOOBteOBqOOBlw0KK+OBk+OBpOOBiyzjgb7jgZXjgYvjgZoNCivjgZ/jgZHjgYbjgaEs44Gy44KN44GXDQor44GE44KP44GfLOOBn+OBi+OBlw0KK+OBvuOBiOOBoCzjgojjgZfjgYoNCivjgbvjgZ3jgYvjgo8s44G+44GV44Gy44KNDQor44GC44KJ44GELOOChOOBmeOBsuOCjQ0KK+OBiuOBiuOBj+OCiSzjgYvjgpPjgZgNCivjgZ/jgZHjgZPjgZcs44GC44Gk44GXDQor44KE44G+44GQ44GhLOOBkeOCk+OBmA0KK+OBl+OBv+OBmizjgYvjgaTjgajjgZcNCivjgYTjgajjgYYs44KI44GX44Gk44GQDQor44GE44Ga44G/LOOBi+OBreOBv+OBpA0KK+OBlOOBqOOBhizjgZ3jgYbjgZ/jgo3jgYYNCivjgYrjgYrjgaTjgbws44GL44Ga44G/DQor44GL44G/44GT44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBn+OBkeOBhCzjgZXjgajjgZMNCivjgb/jgoTjga/jgoks44G+44GV44GXDQor44GC44KP44GYLOOBguOBpOOBig0KK+OBhuOBl+OCjeOBoCzjgYvjgYrjgosNCivjgoLjgorjgYTjgZrjgb8s44Gv44GY44KBDQor44Gq44GM44GuLOOBguOBpOOBlw0KK+OBn+OBquOBiyzjgoDjga3jgobjgY0NCivjgbXjgYvjgYgs44GR44KT44GYDQor44G144KL44KELOOBv+OBleOBig0KK+OBv+OBmuOBsuOBjSzjgojjgZfjgYoNCivjgY/jgbws44G/44Gk44KI44GXDQor44Gf44GQ44GhLOOBteOBv+OBguOBjQ0KK+OBquOBi+OBiizjgaTjgY7jgagNCivjgoTjgb7jgZfjgZ8s44KG44GG44GE44GhDQor44GP44KN44GNLOOBl+OCh+OBhuOBlA0KK+OBvuOBpOOBoCzjgZHjgpPjgYTjgaENCivjgYrjgaDjgZjjgb4s44Gq44G744G/DQor44G744KKLOOChuOBjeOBig0KK+OBn+OBq+OBkOOBoSzjgaTjga3jgoTjgZkNCivjgYLjgonjgYQs44Go44GX44Gu44KKDQor44GU44Go44GGLOOBpuOBpOOBmA0KK+OBqOOBreOBjOOCjyzjga7jgorjgobjgY0NCivjgoLjgorjgZ8s44Gf44GL44GTDQor44G144KL44GL44KPLOOBl+OBkuOBig0KK+OChuOBjSzjgojjgZfjga7jgooNCivjgZfjgonjgYTjgZcs44Gf44GL44Gy44KNDQor44GE44GR44KELOOBleOBoeOBkw0KK+OCj+OBn+OBquOBuSzjgZ/jgaTjgYrjgY0NCivjgZ/jgavjgZDjgaEs44GT44GG44GE44GhDQor44G+44GZ44GgLOOBl+OBruOBtg0KK+OBv+OBmuOBkOOBoSzjgZjjgo3jgYYNCivjga/jgoTjgb/jgZos44KG44G/DQor44G744GL44KKLOOBguOBjeOBsuOBkw0KK+OBhOOBl+OBhCzjga7jgorjgbLjgZMNCivjgZfjgonjgYTjgZcs44G+44GV44Gy44GTDQor44GX44KC44GL44KP44KJLOOBl+OBkuOBsuOCjQ0KK+OCguOCiuOCguOBqCzjgajjgoLjgZMNCivjgYTjgajjgYYs44Gy44KN44GXDQor44GK44GK44KELOOBkeOBhOOBmA0KK+OBv+OCiOOBlyzjgb/jga7jgosNCivjgZfjgbDjgZ8s44Gu44KK44Gy44KNDQor44Gf44KT44GW44KTLOOBqOOCguOBsuOBkw0KK+OBhOOCj+OBleOBjSzjgbLjgafjgYvjgZoNCivjgbXjgY/jgYQs44GV44Go44GXDQor44KC44KK44Gw44KE44GXLOOBi+OBmuOChA0KK+OChOOBvuOBoCzjgbLjgafjgb8NCivjgbXjgZjjgo/jgoks44GV44Go44GXDQor44Gq44Gk44KBLOOChOOBmeOBqA0KK+OBl+OBruOBr+OCiSzjgbLjgo3jgZcNCivjgYrjgZXjgaAs44G+44GV44GXDQor44G144GY44Gv44KJLOOBn+OBkeOBsuOBqA0KK+OBteOBmOOCguOBqCzjgbLjgo3jgb8NCivjgY3jga4s44KI44GX44GKDQor44KE44G+44KC44GoLOOCguOBqOOBjQ0KK+OBhOOBl+OBmOOBvizjgoLjgorjgbLjgo0NCivjgYTjgYws44GC44GN44KJDQor44Gq44GL44GILOOBoOOBhOOBmA0KK+OChOOBrizjgobjgYbjgZgNCivjgYvjgarjgb/jgaQs44GK44GV44KADQor44GZ44Ga44GNLOOBpuOCi+OBig0KK+OBn+OBi+OBoCzjgorjgofjgYbjgZMNCivjgYTjgZfjgbDjgZcs44Gy44KN44KG44GNDQor44GK44GK44Gk44G8LOOBv+OBpOOBr+OCiw0KK+OBmeOBjizjgZ/jgYvjgZcNCivjga/jgoTjgZfjgZDjgaEs44Gy44KN44GXDQor44Gm44KJ44GX44GfLOOBi+OBmuOBig0KK+OBl+OCguOChOOBvizjgojjgZfjgbXjgb8NCivjgb/jgoTjgZbjgY0s44G/44Gk44KLDQor44KC44KKLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgajjgZcNCivjgafjgYLjgYQs44GN44KI44Gy44KNDQor44G744KKLOOBqOOBl+OChuOBjQ0KK+OBguOBreOBluOBjSzjgYvjgZrjgYoNCivjgY/jgbzjgZ8s44Gf44GL44Gy44KNDQor44GULOOBvuOBleOBqOOBlw0KK+OBsuOBjeOBoCzjgbLjgo3jgZcNCivjgZXjgYvjgZDjgaEs44Gu44KK44GC44GNDQor44KI44GX44GELOOBn+OBi+OBlw0KK+OBjeOBn+OBr+OCiSzjgYvjgaTjgagNCivjgbXjgZjjgYQs44G/44Gp44KKDQor44Gq44KB44GNLOOChOOBmeOBkw0KK+OCiOOBl+OCgOOCiSzjgajjgZfjgYoNCivjgZ/jgoDjgoks44Gg44GE44GZ44GRDQor44GG44G/44GuLOOBsuOCjeOBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjgojjgZfjgoLjgags44Gf44GR44GXDQor44Gt44KC44GoLOOCiOOBl+OBteOBvw0KK+OBv+OChOOBluOBjSzjgb7jgZXjgbLjgZMNCivjgZ/jgYvjgoLjgoos44Gh44GI44GTDQor44GP44G+44GM44GELOOBj+OBq+OBig0KK+OBlOOBhuOBoCzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgZ8s44GT44GG44GE44GhDQor44GP44Ga44G/LOOBleOBoeOBkw0KK+OBquOBpOOBhCzjgYTjgY/jgYoNCivjgZfjgb7jgaAs44Gy44Gn44GKDQor44GK44GK44Gk44GNLOOBi+OBmuOBsuOCjQ0KK+OBvuOBv+OChCzjgbLjgo3jgYvjgZoNCivjgZXjgajjgYYs44GR44KT44GYDQor44GT44Gw44KKLOOBsuOBp+OChuOBjQ0KK+OBleOBleOBjSzjgoTjgZnjgobjgY0NCivjgYvjga3jgZMs44G+44GV44GNDQor44GK44GuLOOBqOOBiuOCiw0KK+OBiuOBiuOChOOBvizjgojjgZfjgYgNCivjgb7jgajjgbAs44G+44GV44Gv44KLDQor44GE44Gf44GP44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBoOOBl+OBvizjgYvjgaTjgo3jgYYNCivjgZfjgYTjgY0s44Gu44KK44GTDQor44GX44Gw44GfLOOBi+OBmuOBsuOCjQ0KK+OBi+OBpOOCiSzjgaHjgYvjgZMNCivjgYLjgonjgYQs44KI44GX44Gu44KKDQor44GV44GE44Go44GGLOOBpOOCiOOBlw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjga7jgooNCivjgYbjgYjjgoTjgb4s44G/44Gk44Gq44KKDQor44G+44GuLOOBl+OCk+OBhOOBoQ0KK+OBv+OBleOBiizjgarjgYrjgY0NCivjgZ3jga7jgbks44GN44G/44KG44GNDQor44GZ44Ga44GNLOOBguOBjeOBig0KK+OChOOBn+OBqyzjgY3jgofjgYbjgZMNCivjgoDjgZ8s44G+44Gq44G2DQor44G+44KL44KE44G+LOOBteOBv+OBguOBjQ0KK+OBteOBoCzjgZ/jgYvjgojjgZcNCivjgZPjgbDjgoTjgZcs44GR44GE44GE44Gh44KN44GGDQor44KP44Gf44Gq44G5LOOBi+OBiuOCiw0KK+OBiuOBoCzjgb7jgZPjgagNCivjgYrjgbXjgaEs44G+44GV44GKDQor44Gf44Gq44GLLOOBl+OBkuOBig0KK+OBleOCj+OBjSzjgb7jgZXjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44Gv44GO44GuLOOBruOBvOOCiw0KK+OBhuOBl+OChOOBvizjgZ/jgYvjgZcNCivjgYrjgY/jgbLjgoks44Gu44G244Gy44KNDQor44KI44GX44GE44GRLOOBleOBquOBiA0KK+OBk+OCk+OBrizjgobjgYbjgZMNCivjga7jgaAs44Go44GX44GKDQor44GI44KT44GpLOOBqOOBl+OChuOBjQ0KK+OBmeOBmuOBjSzjgb/jgaTjgYoNCivjgZ/jgarjgYss44KI44GX44Gy44KNDQor44GN44GpLOOBkeOBhOOBmA0KK+OBhOOBqOOBhizjgb7jgZXjga7jgbYNCivjgbXjgZjjgo/jgoks44Go44GX44Gv44KLDQor44Gv44Gb44GM44KPLOOBguOBjeOCiQ0KK+OBvuOBmeOCguOBqCzjgZHjgYTjgZgNCivjgYvjgYQs44Gy44Go44GXDQor44Gf44GL44Gv44GfLOOBqOOCguOBkw0KK+OBsuOBp+OBl+OBvizjgYvjgZrjga7jgooNCivjgZ/jgYvjgoTjgb4s44GX44GS44GNDQor44G/44KE44GNLOOChuOBn+OBiw0KK+OBteOBmyzjgYvjgZrjgbLjgZMNCivjgoLjgoLjgYQs44Gy44KN44KE44GZDQor44Gk44KG44GNLOOBv+OBpOOBkA0KK+OBi+OCj+OBr+OCiSzjgZfjgZLjgosNCivjgb7jgaTjgYQs44GC44GN44Gy44KNDQor44Gv44Gq44KPLOOBvuOBleOBsuOCjQ0KK+OBsuOCj+OBoCzjgabjgaTjgoQNCivjgb7jgZnjgYQs44Gf44GL44GXDQor44GL44Go44GGLOOBn+OBoOOBpOOBkA0KK+OBn+OBkeOBvizjgbXjgb/jgYoNCivjgZfjgonjgYTjgZcs44KI44GX44GKDQor44G144KL44GL44KPLOOBl+OCh+OBhuOBhOOBoQ0KK+OBpuOBmOOBvizjgYLjgY3jgokNCivjgYLjgY3jgoLjgags44GV44Go44GXDQor44GZ44GO44KE44G+LOOBsuOCjeOBguOBjQ0KK+OBquOCk+OBtizjgobjgY3jgbLjgo0NCivjgaTjgZjjga4s44GR44KTDQor44Gm44KJ44GV44GLLOOBhOOBo+OBl+OCkw0KK+OBleOBi+OBhCzjgbLjgafjgYLjgY0NCivjgY/jgbws44GC44Gk44GXDQor44G+44KL44Gf44GrLOOBvuOBleOChA0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgb7jgaTjgYbjgoks44GX44KT44KEDQor44Gf44Gq44GLLOOBm+OCk+OBmA0KK+OChuOBluOCjyzjgZ/jgYvjgYLjgY0NCivjgZ/jgYvjga/jgZcs44GL44Ga44KEDQor44GK44GK44GwLOOBl+OCk+OBlA0KK+OBvuOBiOOBi+OCjyzjgajjgYrjgosNCivjgavjgo8s44Go44GK44KLDQor44GL44KP44KA44KJLOOBvuOBleOBjQ0KK+OBk+OBhOOBkSzjgYvjgZrjgYgNCivjgY/jgorjgZfjgZ8s44Go44GX44KG44GNDQor44Gy44KN44GbLOOBiuOBleOCgA0KK+OBk+OCk+OBrizjgZ/jgY/jgoQNCivjga/jgZvjgYzjgo8s44Gy44KN44Gy44GTDQor44GE44Go44GGLOOBsuOCjeOBlw0KK+OBjeOBluOBjSzjgYLjgaTjgZcNCivjgYjjgarjgb8s44Gu44KK44GC44GNDQor44Gk44GL44Gq44GLLOOBteOBv+OBguOBjQ0KK+OBleOBi+OCguOBqCzjgbLjgo3jgb8NCivjgb7jgaTjgbDjgoks44Gy44Gn44GKDQor44Gm44KJ44GELOOBl+OBkuOBguOBjQ0KK+OBiuOBl+OBnyzjgZ/jgYvjgojjgZcNCivjgZ/jgarjgYss44KI44GX44GC44GNDQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OBhOOBl+OBkOOCjSzjgojjgZfjgagNCivjga/jgZfjgoLjgags44GZ44G/44GTDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgbXjgovjgYvjgo8s44Go44GX44Gu44G2DQor44KE44G+44GgLOOBsuOCjeOBqA0KK+OBhOOBj+OBnyzjgZfjgofjgYbjgZMNCivjgZXjgajjgYYs44KG44GG44GE44GhDQor44KP44Gf44Gq44G5LOOBi+OBmuOBsuOCjQ0KK+OBi+OBkyzjgZ/jgaTjgZgNCivjgb7jgZnjgaAs44Gy44KN44Gu44KKDQor44GL44G/44GYLOOBn+OBi+OChuOBjQ0KK+OBhOOBr+OCiSzjgYvjgZrjgbLjgo0NCivjgYLjgZXjgb8s44GL44Ga44Gy44KNDQor44Gq44GL44GY44G+LOOBn+OBi+OBlw0KK+OBk+OBn+OBjSzjgabjgaTjgoQNCivjgYvjgo/jgoLjgags44GI44GE44GE44GhDQor44GL44KP44GX44G+LOOBi+OBmuOBsuOBkw0KK+OBguOBmuOBvizjgorjgoXjgYbjgZgNCivjgarjgYvjga4s44GX44KF44GG44GE44GhDQor44Gy44KJ44GuLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgosNCivjgbXjgYvjgoQs44KC44KC44GNDQor44GK44GK44GwLOOBn+OBkeOBlw0KK+OBleOBj+OCieOBhCzjgbLjgo3jgYLjgY0NCivjgZXjgYvjgYQs44GE44Gj44Gb44GEDQor44GC44GK44GNLOOBn+OBj+OBig0KK+OCiOOBl+OBoCzjgoTjgZnjgZcNCivjgZPjga/jgZcs44G+44GV44Gu44KKDQor44G+44Gk44GG44KJLOOBpuOBo+OBuuOBhA0KK+OBleOBqOOBhizjgYrjgZXjgoANCivjgavjgZfjgY3jgYrjgoos44Go44KC44GTDQor44G/44KI44GXLOOCiOOBl+OBsuOBlQ0KK+OBk+OBmeOBjizjgaTjgYvjgZUNCivjgZXjgajjgYYs44Gf44GL44GE44GhDQor44G144GY44GELOOCiOOBl+OBsuOCjQ0KK+OBteOBquOBoCzjgYvjgZrjgbLjgZMNCivjgZnjgY7jgZ8s44Go44GK44KLDQor44GX44KH44GG44GgLOOBi+OBmuOBsuOCjQ0KK+OCguOCiuOBl+OBnyzjgajjgZfjgYoNCivjgbLjgoks44Gy44Go44GXDQor44GX44KT44Gf44GPLOOBsuOCjeOChuOBjQ0KK+OBsuOBjOOBl+OBoCzjgajjgZfjgobjgY0NCivjgY/jgorjgZ8s44G+44GV44KI44GXDQor44GE44Gq44GgLOOChuOBhuOBleOBjw0KK+OBq+OBl+OBrizjgajjgZfjgoQNCivjgYTjgZHjgZjjgoos44Gu44KK44GC44GNDQor44Gq44GL44KA44KJLOOBquOBiuOBsuOCjQ0KK+OBquOBi+OBi+OBqSzjgojjgYbjgYTjgaENCivjgYTjga7jgb7jgZ8s44Gy44KN44GXDQor44Gk44KL44G/LOOBsuOCjeOCiOOBlw0KK+OBsuOCieOCguOBqCzjgZfjgZLjgY0NCivjgb/jgojjgZcs44G144G/44GC44GNDQor44GC44KP44GuLOOBn+OBi+OBlw0KK+OBguOBjeOBnyzjgojjgZfjgYgNCivjgbLjgYzjgZfjgoTjgb4s44Gf44GR44GXDQor44GV44Go44GGLOOBsuOCjeOBvw0KK+OBi+OCj+OBleOBjSzjgZHjgYTjgYTjgaENCivjgb7jgovjgoTjgb4s44Gv44Gk44GKDQor44GZ44Gq44GMLOOBsuOBp+OBjQ0KK+OBhOOBvuOBhCzjgZ/jgb/jgZMNCivjgbXjgZjjgYQs44KG44GN44GKDQor44G+44GN44GfLOOBv+OBpOOBig0KK+OBhOOBqOOBhizjgZ/jgaTjgZcNCivjgZ/jgYvjga/jgZcs44KK44KF44GG44GE44GhDQor44GN44KK44G+LOOBl+OCk+OBmA0KK+OBiuOBiuOBq+OBlyzjgajjgoLjgobjgY0NCivjgb/jga7jgZfjgb4s44Gf44GR44Gy44GoDQor44GV44Go44GGLOOBi+OBmuOBn+OBiw0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgobjgY0NCivjgb/jgZ/jgoDjgoks44G+44KG44G/DQor44GV44Go44GGLOOBl+OBkuOCiw0KK+OBqOOBvuOBpCzjgZ/jgb7jgb8NCivjgYjjgbPjgZfjgb4s44KE44GZ44KG44GNDQor44KP44GgLOOBi+OBmuOChA0KK+OBmeOBmuOBjSzjgY3jgojjgZ/jgYsNCivjgZnjgYzjga/jgoks44G/44Gk44KLDQor44Gf44GQ44GhLOOBsuOCjeOCgA0KK+OBqOOBjOOBlyzjgb7jgZXjgbLjgZMNCivjgarjgYzjga/jgoks44GV44Go44KLDQor44KE44G+44KC44GoLOOBkeOBhOOBkw0KK+OBn+OBkeOBoCzjgb7jgZXjgobjgY0NCivjgZXjgajjgYYs44G/44Gu44KLDQor44Gf44GL44G/44KELOOBsuOBp+OBruOBtg0KK+OBguOBiuOBjSzjgZ/jgYvjgbLjgo0NCivjgZPjgoTjgY4s44GZ44G/44Gf44GLDQor44GK44Gu44GW44GNLOOCiuOCh+OBhuOBmeOBkQ0KK+OCguOCiuOBnyzjga7jgorjgZMNCivjgZXjgY/jgonjgY4s44KG44G/44GTDQor44GK44GL44GV44GLLOOBsuOCjeOBruOCig0KK+OChOOBvuOBkOOBoSzjgZPjgZnjgZENCivjgYvjgo/jgZfjgb4s44KI44GX44Gu44KKDQor44GE44KP44GuLOOBi+OBmuOBruOCig0KK+OBlOOBhuOBkyzjgoTjgZnjga/jgosNCivjgoLjgorjgZ8s44KE44GZ44GYDQor44GX44GS44Gf44GLLOOBquOBiuOBjQ0KK+OBpuOBmuOBiyzjgYjjgYTjgZXjgY8NCivjgYrjgZ8s44Gk44KI44GXDQor44KE44G+44GgLOOBvuOBleOBr+OCiw0KK+OBteOBi+OBoCzjgbLjgZXjgobjgY0NCivjga/jgZvjgbks44KC44Go44GC44GNDQor44G+44Gk44GuLOOBguOBpOOBlw0KK+OBpOOBmOOBi+OCjyzjgZHjgpPjgYTjgaHjgo0NCivjgb7jgaTjgoLjgags44GL44Gk44G/DQor44Gb44Gu44GKLOOBr+OBmOOCgQ0KK+OBruOCgOOCiSzjgZXjgajjgZcNCivjgYLjgonjgYQs44Go44KI44GX44GSDQor44GK44GQ44KKLOOBmeOBv+OBiA0KK+OBmOOCk+OBrizjgb7jgZXjgbLjgo0NCivjgbLjgo3jgZrjgb8s44G/44Gu44KLDQor44G+44Gk44GELOOBmeOBmeOCgA0KK+OBl+OBsOOBluOBjSzjgYLjgaTjgZcNCivjgYTjga7jgYbjgYgs44Gy44Gn44GKDQor44Gf44Gq44GLLOOBsuOBp+OBi+OBmg0KK+OBleOBnSzjgarjgYrjgbXjgb8NCivjgZfjgonjga/jgb4s44GC44GN44Gy44GTDQor44Gf44Gq44GLLOOBquOBiuOBjQ0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgYTjgZfjgYzjgb8s44KI44GX44GC44GNDQor44GX44Gw44GfLOOBpuOBo+OBuuOBhA0KK+OBruOBkOOBoSzjgYLjgobjgb8NCivjgYTjgaHjgbAs44GT44GG44GYDQor44GL44KP44GQ44GhLOOBsuOBp+OBkw0KK+OCiOOBl+OBvyzjgbLjgafjgb8NCivjgbXjgZjjgYvjgo8s44Gy44KN44KG44GNDQor44GL44Go44GGLOOBpOOCiOOBlw0KK+OBn+OBi+OBr+OBlyzjgYTjgZXjgoANCivjgbXjgZjjgZXjgo8s44GL44Ga44GKDQor44G/44Ga44Gf44GrLOOBqOOCguOBteOBvw0KK+OBm+OBjeOBkOOBoSzjgojjgZfjgo3jgYYNCivjgb7jgYjjgYvjgo8s44KA44Gk44G/DQor44GC44KJ44GELOOCiuOCheOBhuOBmA0KK+OCguOCiizjgZHjgYTjgZ/jgo3jgYYNCivjgZXjgajjgYYs44Gq44GK44GTDQor44GP44KP44GfLOOBl+OCh+OBhuOBhOOBoQ0KK+OBiuOBkOOCiizjgbLjgo3jgZcNCivjgbLjgonjgYQs44GL44Gk44Gy44GTDQor44Gr44GX44KA44KJLOOBteOBv+OBqOOBlw0KK+OBiuOBiuOBj+OCiSzjgbLjgZXjga7jgooNCivjgZ3jga7jgbks44GC44GN44GTDQor44GE44GE44GgLOOChOOBmeOBguOBjQ0KK+OBk+OBkOOBoSzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgoLjgo3jgbvjgZcs44Gy44Gn44GL44GaDQor44Gv44G+44GgLOOBruOCiuOBi+OBpA0KK+OBi+OBquOBluOCjyzjgYvjgZrjgobjgY0NCivjgb7jgaTjgbAs44GX44GS44KLDQor44GE44KP44GfLOOBsuOBp+OBqOOBlw0KK+OBguOBmuOBoSzjgb7jgZXjgosNCivjgZPjgpPjgaks44GE44GV44GKDQor44Gf44GL44Gv44GXLOOCiOOBl+OBig0KK+OBguOBvuOBrizjgbLjgo3jgYLjgY0NCivjgYvjgZ/jgaAs44GK44GV44KADQor44Gf44KB44Gy44KNLOOCguOBqOOBkw0KK+OBvuOBpOOBoCzjgZ/jgYvjgZcNCivjgarjgorjgYTjgZcs44KE44GZ44KI44GXDQor44GK44GN44GfLOOCguOCiuOBv+OBoQ0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44KG44GG44GYDQor44G+44KT44G9LOOBi+OBpOOBvw0KK+OBhOOBoeOBhCzjgZHjgpPjgZgNCivjgZPjgYTjgacs44Go44KC44GTDQor44Gf44GL44Gv44GXLOOBquOBiuOBkw0KK+OBquOBi+OBjOOCjyzjgYvjgZrjgYoNCivjgYrjga/jgb4s44Gf44GL44GXDQor44Gf44GL44Gv44GfLOOBsuOCjeOBvw0KK+OBk+OBkOOBoSzjgZ/jgYvjgZcNCivjgb/jgoTjgYzjgo8s44GL44Ga44KEDQor44GX44Gw44KE44G+LOOBr+OBmOOCgQ0KK+OBguOCieOBhCzjgoTjgZnjgbLjgo0NCivjgo/jgZ/jgarjgbks44GZ44GZ44KADQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBteOCi+OBr+OBnyzjgb7jgZXjgarjgooNCivjgZ/jgavjgZDjgaEs44Gq44GK44GZ44GRDQor44G744KT44GgLOOBmeOBmeOCgA0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgZ/jgYvjgY0s44Gv44KL44G/44GkDQor44GN44GP44GhLOOBl+OCk+OChA0KK+OBhOOBruOBhuOBiCzjgZPjgYbjgYTjgaENCivjga/jgoks44G+44GV44GKDQor44KE44G+44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OCgOOCieOBi+OBvyzjgajjgoLjgoTjgZkNCivjgbDjgbAs44G+44GV44Gy44GTDQor44Gv44Gb44GM44KPLOOBqOOBl+OBsuOBkw0KK+OBleOBleOBjSzjgYLjgY3jgbXjgb8NCivjgYLjgaTjgZ8s44Gy44Go44G/DQor44Gf44Gh44GL44KPLOOBsuOCjeOBpOOBkA0KK+OBsuOCieOCguOBqCzjgbLjgafjgYLjgY0NCivjgarjgYvjgoDjgoks44Go44GX44KEDQor44Gk44KA44KJLOOBn+OBi+OBig0KK+OBn+OBi+OBr+OBlyzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgojjgZPjgoTjgb4s44G/44Gu44KLDQor44GT44Gf44GRLOOBv+OBpOOBig0KK+OBguOCk+OCieOBjyzjgZ/jgYvjgZcNCivjgb/jgZrjga4s44GX44KT44GE44GhDQor44GK44GK44Gs44GNLOOBguOBjeOCiQ0KK+OBleOBi+OBhCzjga/jgZjjgoENCivjgYrjgZ8s44GX44KH44GG44Ge44GGDQor44Gv44KE44GXLOOBruOCiuOBig0KK+OBleOBhOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgZ/jgarjgYss44Gu44KK44GTDQor44Gv44KL44Gv44KJLOOBqOOBhuOBlA0KK+OBiuOBiuOBpOOBiyzjgb7jgZXjgobjgY0NCivjgY3jgZ/jgYzjgo8s44Gy44Gn44G/DQor44KI44GT44GfLOOBi+OBo+OBuuOBhA0KK+OCiOOBl+OCgOOCiSzjgYLjgaTjgZMNCivjgYrjgYrjgbLjgoks44GX44KT44GE44GhDQor44Gh44KD44GNLOOBl+OBkuOBsuOBpw0KK+OBleOBi+OBkOOBoSzjgZPjgYbjgYTjgaENCivjgZnjgZrjgY0s44GC44GN44Gy44KNDQor44Gh44GL44GW44KPLOOBvuOChuOBvw0KK+OBquOBi+OBmOOBvizjgb7jgZXjga7jgooNCivjgo/jgZ/jgarjgbks44Gf44Gg44GKDQor44GX44GwLOOBmOOCheOCk+OBkw0KK+OBleOBi+OBhCzjgaHjga/jgosNCivjgoTjgb7jgb/jgZXjgYss44Gm44Gk44GKDQor44KI44GX44GM44G/LOOBguOBjeOCiQ0KK+OBsuOCieOBpizjgb7jgZXjgobjgY0NCivjgo/jgY/jgZfjgb4s44Gf44Gg44GXDQor44GC44GV44G+LOOBoeOBi+OCiQ0KK+OBguOBmuOBvyzjgZ/jgaDjgZcNCivjgYTjgarjgYrjgYss44Gy44KN44GL44GaDQor44GV44Gq44GELOOBsuOCjeOBlw0KK+OChOOBvuOBhuOBoSzjgoTjgZnjgbLjgo0NCivjgYTjga/jgoks44Go44GX44Gy44GTDQor44Gf44KE44G+LOOBiuOBleOCgA0KK+OBleOBleOBjSzjgZfjgpPjgoQNCivjgbXjgZjjgYbjgaEs44Go44GX44GC44GNDQor44GG44GX44GY44G+LOOBl+OCk+OBhOOBoQ0KK+OBruOBruOCgOOCiSzjgb7jgZXjgZ/jgYsNCivjgavjgZcs44Gf44GR44Gy44KNDQor44GE44GR44GgLOOBsuOCjeOBvw0KK+OBmeOBjuOBn+OBqyzjgbLjgo3jgZcNCivjgYrjgZbjgY0s44Gf44GR44GXDQor44GT44GR44GkLOOBguOBjeOBsuOBlQ0KK+OBleOBqOOBhizjgojjgYbjgZnjgZENCivjgZvjgpPjgbAs44GC44Gk44GXDQor44GC44Ga44G+LOOBsuOBp+OBqA0KK+OBquOBiuOBhCzjgYTjgaHjgo3jgYYNCivjgbvjgZfjga4s44KI44GX44GNDQor44GL44G/44KELOOChOOBmeOBsuOCjQ0KK+OCgOOCieOBnyzjgbLjgajjgZcNCivjgYTjgaHjgb/jgoQs44GR44GE44GTDQor44Gf44KL44GELOOChOOBmeOBguOBjQ0KK+OBr+OBjuOBr+OCiSzjgb/jgo/jgZMNCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44GK44Gh44GC44GELOOBsuOBqOOBlw0KK+OBguOBjeOChOOBvizjgZHjgYTjgZnjgZENCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBsuOBp+OBig0KK+OChOOBvuOBkOOBoSzjgb/jgaTjgosNCivjgajjgZPjgo0s44Gq44GK44Gf44GLDQor44GL44GZ44KELOOBiOOBpOOBkw0KK+OBhOOCiuOBiCzjgZfjgoXjgYbjgZgNCivjgoDjgonjgYTjgZcs44G/44Gq44GTDQor44GX44KT44Gf44GrLOOCiuOCheOBhuOBmA0KK+OBhuOBiOOBrizjgb/jgbsNCivjgYbjgaHjgaAs44GT44GG44GYDQor44Gv44Gb44GM44KPLA0KK+OBj+OCjeOBoCzjgovjgorjgZMNCivjgYTjgajjgYYs44GL44Gk44Gy44KNDQor44G744KK44GG44GhLOOBvuOChA0KK+OBiuOBiuOBr+OBnyzjga7jgbbjgYLjgY0NCivjgbvjgpPjgaAs44Gy44Gn44KG44GNDQor44Gq44GL44KA44KJLOOBmeOBmeOCgA0KK+OBleOBiOOBjSzjgYrjgY3jgoLjgooNCivjgYLjgbks44Gm44KL44Gy44GVDQor44GG44KB44GgLOOBn+OBi+OBsuOCjQ0KK+OBrOOBvizjgb7jgZXjgobjgY0NCivjgZ/jgbbjgaEs44KG44Gf44GLDQor44GN44KA44KJLOOBv+OBpOOCiw0KK+OBhuOBoCzjgZ/jgYvjgb8NCivjgYLjgYrjgY0s44Gu44KK44GTDQor44Gq44GL44KA44KJLOOBvuOBleOBqA0KK+OBteOBmOOBk+OBlyzjgZXjgajjgZcNCivjgZnjgb/jgaAs44GN44KI44GXDQor44GP44Ga44Gv44KJLOOBruOBvOOCiw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgYLjgonjgZ8s44GV44Go44G/DQor44KN44Gj44GL44GPLOOBvuOChuOBvw0KK+OBhOOBruOBhuOBiCzjgb/jgaTjgb7jgZUNCivjgaTjgZjjgoLjgags44G+44GV44G/DQor44G/44GG44KJLOOBquOBquOBkw0KK+OBreOCguOBqCzjgojjgZfjgYoNCivjgYLjgoHjgb/jgoQs44KI44GX44GL44GaDQor44Gq44GL44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBguOBhOOBsCzjga7jgbbjgZ/jgYsNCivjgojjga3jgZbjgo8s44GX44KT44KEDQor44G144GY44KA44KJLOOBl+OCheOBhg0KK+OCiuOCheOBhuOBqCzjgbLjgo3jgb8NCivjgo/jgZ/jgarjgbks44Go44KC44G/DQor44GN44Gf44GM44KPLOOBl+OCk+OBmA0KK+OBguOBn+OCieOBlyzjgajjgoLjgarjgYoNCivjgY3jgY/jgaEs44GY44KF44KTDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgYTjgZHjgaAs44Gy44KN44Gq44KKDQor44KI44GT44GL44KPLOOBv+OBpOOBsuOBkw0KK+OBj+OBleOBpOOBkCzjgZ/jgYvjgZcNCivjgb/jgZrjga4s44GR44KT44GYDQor44Gq44GM44G744KKLOOBk+OBhuOBhOOBoQ0KK+OBmeOBjuOCguOBqCzjgZPjgYbjgZgNCivjgYLjgpPjganjgYYs44Gk44Gt44GKDQor44Gf44GL44KE44Gq44GOLOOBsuOCjeOBteOBvw0KK+OBl+OBsCzjgb7jgZXjgZMNCivjgYvjgb/jgoTjgb4s44GL44Ga44Gy44KNDQor44GK44GK44Gy44KJLOOBsuOCjeOBvw0KK+OBu+OCk+OBvizjga/jgovjgobjgY0NCivjgZ/jgbDjgZ8s44Gu44G244KI44GXDQor44GI44KT44GpLOOBkeOCk+OBhOOBoQ0KK+OBhOOBl+OBjOOBjSzjgZvjgYTjgZgNCivjgZfjgbAs44KG44GG44GE44Gh44KNDQor44KE44G+44GgLOOBvuOBleOBsuOBqA0KK+OBn+OBi+OBrizjgYvjgaTjgYoNCivjgojjgZfjgaAs44Gf44Gk44KEDQor44GC44G+44GV44GNLOOBqOOBl+OBsuOBkw0KK+OBiuOBl+OBi+OCjyzjgZfjgpPjgZgNCivjgavjgZfjga4s44G/44G744GTDQor44GL44Go44GGLOOBiuOBleOCgA0KK+OBr+OBvuOBiuOBiyzjgajjgoLjgZMNCivjgZXjga4s44Gf44GL44GL44GaDQor44GZ44GI44GX44GSLOOBj+OBq+OBpuOCiw0KK+OBquOBi+OBnyzjgbLjgo3jgb8NCivjgZPjgbDjgoTjgZcs44Gy44Gn44KG44GNDQor44GZ44Gp44GGLOOChOOBmeOBlw0KK+OBpOOBpOOBvyzjgY3jgojjgbLjgagNCivjgb/jgZ/jgass44GT44GG44GYDQor44GE44GX44GgLOOChOOBmeOBteOBvw0KK+OBhOOBhOOBmuOBiyzjgobjgZ/jgYsNCivjgZfjgonjgYQs44KG44G/DQor44KE44G+44GgLOOBhOOCj+OBig0KK+OBpOOBmOOBi+OBqSzjgYvjgZrjgZMNCivjgb7jgaTjgarjgYws44GT44GG44GE44GhDQor44Gf44Gq44GLLOOBi+OBmuOBiA0KK+OBv+OBquOBvyzjgbLjgo3jgZcNCivjgZXjgYvjgYQs44G+44GV44KG44GNDQor44GG44GI44GNLOOBl+OBiuOCig0KK+OBiuOBoCzjgb7jgZXjgYoNCivjgb7jgYjjgaAs44Gb44GE44GYDQor44Gn44GN44Gf44GrLOOBmOOCheOCkw0KK+OBguOBvuOBrizjgZ/jgYvjgbLjgo0NCivjgb/jgoTjgZPjgZcs44GX44GS44GL44GaDQor44GC44KT44GW44GELOOBqOOBl+OBv+OBoQ0KK+OBhuOCgeOBoCzjgobjgY3jgYoNCivjgZ/jgY3jgZbjgo8s44GC44Gk44GXDQor44KA44KJ44Gr44GXLOOBjeOCiOOBlw0KK+OBj+OCiuOBr+OCiSzjgajjgZfjgbLjgZMNCivjgoTjgb7jgZXjgY0s44G+44KKDQor44GK44GK44Gk44GLLOOBv+OBpOOBsuOCjQ0KK+OBguOBv+OBrizjgZ/jgYvjgZcNCivjgoLjgoos44KE44GZ44Gu44KKDQor44Gr44GX44KC44KKLOOBl+OCk+OBmA0KK+OBn+OBkeOBrizjgb7jgZXjgYoNCivjgZfjgpPjgYzjgY0s44KI44GX44GL44GaDQor44G+44Gk44GKLOOCiOOBl+OBjQ0KK+OBteOBmOOBrSzjgb7jgZXjgY0NCivjgYvjgarjgb7jgoss44Gy44KN44KI44GXDQor44GL44Gq44GW44KPLOOBn+OBpOOChuOBjQ0KK+OBl+OBv+OBmizjgorjgoXjgYbjgZgNCivjgo/jgaAs44GE44Gk44GTDQor44GE44GX44GP44KJLOOBn+OBkeOBlw0KK+OBteOBj+OBoCzjgYLjgY3jgbLjgo0NCivjgYbjgYvjgYQs44KI44GX44GTDQor44GC44KK44G+LOOBiuOBleOCgA0KK+OBiuOBiuOBnyzjgZ/jgYvjgYLjgY0NCivjgoLjgorjgZ/jgass44Gf44GL44GXDQor44GC44Gg44GhLOOCiOOBl+OBsuOCjQ0KK+OBj+OBvuOBpyzjgb7jgZXjga7jgooNCivjgYLjgoks44GZ44GZ44KADQor44Gv44GX44KC44GoLOOBqOOBiuOCiw0KK+OBqOOCiOOBiuOBiyzjgb7jgZPjgagNCivjgYrjgYrjgaQs44Gm44Gk44KN44GGDQor44G/44KE44GNLOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgYTjgYzjgonjgZcs44Gq44GK44Gk44GQDQor44GK44GK44Gr44GXLOOBjeOCk+OChA0KK+OBl+OCieOBhOOBlyzjgZPjgYbjgYTjgaENCivjgojjgZPjgoEs44KI44GX44GC44GNDQor44G144GY44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBi+OCk+OBrizjgoLjgorjgoTjgZkNCivjgZ/jgaHjgbDjgaos44G/44Gh44GKDQor44KE44G+44GgLOOBoeOBquOBvw0KK+OBguOBleOBvyzjgZfjgZLjgYoNCivjgb/jgYbjgoks44KE44GZ44GXDQor44Go44GP44Gy44KNLOOBsuOCjeOBruOBtg0KK+OCguOCiuOBi+OCjyzjgb7jgZXjga7jgbYNCivjgYTjgajjgYYs44G/44GN44Gy44GVDQor44GV44GuLOOBqOOCguOBv+OBpA0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgZfjgoLjgajjga4s44G+44Gq44G2DQor44G+44GL44G5LOOBleOBqOOBvw0KK+OBhOOBqOOBhizjgZPjgYbjgZgNCivjgaTjgY/jgaAs44GY44KF44KT44GYDQor44KI44GX44GL44KPLOOBv+OBpOOBkA0KK+OBn+OBi+OChOOBquOBjizjgbLjgo3jgY0NCivjgbvjgpPjgaAs44Gf44GL44KI44GXDQor44Gr44GX44GuLOOChuOBhuOBmA0KK+OBjeOCgOOCiSzjgojjgZfjgbLjgo0NCivjgYvjgajjgYYs44GT44GG44GE44GhDQor44GK44GK44Gv44GfLOOBmOOCheOCkw0KK+OBhuOBpOOBvyzjgYvjgZrjgbLjgZMNCivjgYLjgpPjganjgYYs44GL44Ga44Gy44GVDQor44Gv44G+44Gf44GrLOOBv+OBruOCiw0KK+OBjeOBruOBl+OBnyzjgZ/jgYvjgbXjgb8NCivjgYvjgo/jgZss44Go44GX44Gf44GLDQor44GG44GI44GuLOOCiOOBl+OBsuOBkw0KK+OBl+OBi+OBvizjgorjgofjgYbjgZgNCivjgZnjgZrjgY0s44G+44GV44KG44GNDQor44G144GY44GK44GLLOOBvuOBleOBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgajjgoLjgbLjgo0NCivjgY3jgZ/jgZbjgY0s44KE44GZ44KG44GNDQor44GC44GE44G5LOOBsuOCjeOBlw0KK+OBiuOBiuOBi+OCjyzjgZXjgYvjgYgNCivjgZ/jgZHjgYQs44KE44GZ44Gv44KLDQor44GL44KJ44Gv44GXLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgb7jgobjgb8NCivjgYLjgonjgYQs44Gy44KN44GXDQor44GE44Gu44GgLOOBruOCiuOChuOBjQ0KK+OBiuOBj+OCgOOCiSzjgYjjgooNCivjgb7jgovjgYQs44GY44KF44KT44GTDQor44Gy44KN44Ga44G/LOOBguOBjeOBsuOBlQ0KK+OCj+OBl+OBmizjgZ/jgY/jgoQNCivjgojjgZfjgoDjgoks44Gf44GL44Gy44GVDQor44GL44Gk44G+44GfLOOBn+OBi+OBlw0KK+OBvuOBmeOBi+OCjyzjgYvjgaTjgokNCivjgYTjgo/jgYos44GX44KF44GG44GYDQor44KE44G+44KC44GoLOOCiOOBl+OBsuOBqA0KK+OBn+OBquOBiyzjgZXjgajjgosNCivjgZ/jgZHjgYbjgaEs44Gu44KK44KG44GNDQor44Gu44Gv44KJLOOBl+OCheOBhuOBnuOBhg0KK+OBteOBquOBr+OBlyzjgYvjgZrjga7jgooNCivjgarjgZTjgZcs44GR44KT44GYDQor44GG44KB44GgLOOBi+OBmuOChA0KK+OBguOBjeOChOOBvizjgbLjgajjgZcNCivjgarjgYvjgaAs44G+44GV44GoDQor44GV44GE44Go44GGLOOCgeOBkOOBvw0KK+OBn+OBr+OCiSzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgavjgZfjgb7jgaQs44KI44GX44Gy44KNDQor44Gy44KJ44G/44GkLOOBvuOBk+OBqA0KK+OCgeOBi+OBnyzjgb7jgZXjgosNCivjgZ/jgYvjgb8s44KK44KF44GG44Gf44KN44GGDQor44Gd44Gu44GgLOOBsuOBp+OChuOBjQ0KK+OBv+OChOOBluOBjSzjgobjgYbjgZgNCivjgb7jgovjgoTjgb4s44Gy44Gn44GC44GNDQor44Gk44Gu44GL44KPLOOBvuOBleOBlw0KK+OBr+OCieOBoCzjgYvjgaTjgb8NCivjgaTjgZgs44Gk44GQ44Gy44GTDQor44GE44GM44KJ44GXLOOBqOOBl+OBig0KK+OCiOOBl+OBoCzjgYvjgYrjgooNCivjgZ/jgZHjgYzjgZ8s44GT44GG44GNDQor44GC44G5LOOCiuOCh+OBhuOBmA0KK+OBguOBi+OBrOOBvizjgajjgY/jgbLjgo0NCivjgYvjgo/jgaAs44Gy44KN44GC44GNDQor44Gf44GULOOBsuOCjeOBlw0KK+OBi+OBv+OCgOOCiSzjgb7jgZXjgZcNCivjgb7jgaTjgoQs44GS44KTDQor44GE44KP44GfLOOBguOBjeOBsuOBkw0KK+OBvuOBiOOBi+OCjyzjgZXjgajjgZcNCivjgoTjgb7jgZDjgaEs44KM44GE44GTDQor44GX44KN44GX44GfLOOBqOOCguOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgagNCivjgaTjgZjjgYvjgo8s44GY44KF44KT44GE44GhDQor44Gf44Gq44GLLOOCiOOBl+OBteOBvw0KK+OBv+OBquOBvyzjgajjgoLjgbLjgo0NCivjgZXjgajjgYYs44KI44GX44GC44GNDQor44GG44GK44Ga44G/LOOBguOBjeOCiQ0KK+OBmeOBjuOChOOBvizjgbLjgo3jgobjgY0NCivjgaHjgbAs44G+44GV44KG44GNDQor44GL44Gq44GELOOBleOBqOOBlw0KK+OBvuOBpOOChOOBvizjgaTjgojjgZcNCivjgZ/jgYvjga4s44GC44GN44KJDQor44GP44G+44GM44GELOOBk+OBhuOBhOOBoQ0KK+OBn+OBkeOBk+OBlyzjgoDjgaTjgbLjgZUNCivjgbXjgZ/jgbAs44Go44GX44GC44GNDQor44GG44KB44GW44GNLOOBi+OBmuOBn+OBoA0KK+OBiuOBhOOCj+OBkSzjgojjgYbjgZnjgZENCivjgarjgYzjgaTjgYss44G+44Gq44G2DQor44GE44G+44GM44KPLOOBsuOBqOOBvw0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgokNCivjgYrjgYrjgbLjgoks44KG44GG44Gf44KN44GGDQor44G/44KE44Gy44KJLOOBv+OBoeOBguOBjQ0KK+OBruOBkOOBoSzjgZHjgYTjgZ7jgYYNCivjgZnjgY7jgoLjgags44GL44Ga44G144G/DQor44GL44KP44GQ44GhLOOBi+OBpOOBruOCig0KK+OBl+OBruOBmyzjgaTjgojjgZcNCivjgarjgorjgZXjgo8s44KI44GX44Gy44GoDQor44Gy44KN44GbLOOBguOBjeOBsuOCjQ0KK+OBq+OBl+OBluOBjSzjgZnjgZnjgoANCivjgoLjgoos44Gu44G244KG44GNDQor44G144GL44GKLOOCiOOBl+OBkw0KK+OBv+OChOOBmOOBvizjgZHjgYTjgZ7jgYYNCivjgb7jgaTjga4s44GL44Ga44GX44GSDQor44GE44KP44GELOOBl+OBkuOBruOBtg0KK+OBi+OBhCzjgb/jganjgooNCivjgZ/jgarjgYss44GP44Gr44GTDQor44Gh44GwLOOBvuOBleOBvw0KK+OBneOBrizjgbLjgo3jgZcNCivjgojjgZPjgoTjgb4s44GC44GN44Gy44GVDQor44Gf44GL44GX44G+LOOBmOOCheOCkw0KK+OBiuOBi+OCguOBqCzjgZPjgYbjgZgNCivjgb/jgoTjgYvjgo8s44Gg44GE44GZ44GRDQor44KA44KJ44KC44GoLOOBqOOCguOBguOBjQ0KK+OBjeOCgOOCiSzjgZPjgYbjgYTjgaENCivjgb7jgaTjgarjgYws44KG44G/44GTDQor44G144GP44GgLOOBpOOBqOOCgA0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgZcNCivjgYLjgYQs44Gy44Gn44GL44GaDQor44G+44GI44GgLOOBsuOBleOBi+OBmg0KK+OBhOOBruOBhuOBiCzjgojjgZfjgb8NCivjgYTjgYTjgaAs44Gf44GL44Gy44GVDQor44G144GY44GELOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBhCzjgZ/jgY/jgoQNCivjgb7jgaTjgYQs44GG44GE44KKDQor44GE44G+44GgLOOBl+OCk+OBmA0KK+OBv+OChOOBkSzjgYLjgaTjgZcNCivjgZXjgYvjgYQs44Gy44KN44Gy44GVDQor44GL44Go44GGLOOBiuOBleOCgA0KK+OBhOOCj+OBnyzjgarjgYrjgagNCivjgYrjgYrjga4s44G+44GV44KEDQor44GE44Gd44G5LOOBn+OBi+OCiOOBlw0KK+OBiuOChOOBvuOBoCzjgaTjgajjgoANCivjgajjgYbjgZjjgb4s44Gf44Gk44Gy44KNDQor44Gf44GR44GG44GhLOOBi+OBmuOBsuOBkw0KK+OBquOBi+OChOOBvizjgb7jgZnjgYoNCivjgZfjgonjgYTjgZcs44GK44GV44KADQor44GL44Gu44G+44GfLOOBguOBpOOBlw0KK+OBmeOBqeOBhizjgZ/jgYvjgbLjgo0NCivjgZfjgonjgoTjgb4s44GC44GN44Gy44KNDQor44GK44GK44KELOOBvuOBleOCiw0KK+OBv+OBquOBjOOCjyzjgajjgoLjgbLjgo0NCivjgY3jgoDjgoks44Gf44Gk44KEDQor44Gf44GL44GOLOOBoOOBhOOBng0KK+OBleOBqOOBhizjgobjgY3jgYoNCivjgbXjgZjjgo/jgoks44G/44Gk44KLDQor44GE44KC44GoLOOCiOOBhuOBnw0KK+OBhuOBiOOBrizjgajjgoLjgbLjgo0NCivjgY3jgofjgYbjga4s44GR44KT44GUDQor44GN44KK44GGLOOCiOOBl+OBn+OBoA0KK+OBj+OBvOOBnyzjgaTjga3jgYoNCivjgZPjgZvjgY0s44Gf44GL44GXDQor44GZ44GW44GNLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBleOBjSzjgoTjgZnjgbLjgZUNCivjgaTjgYvjgoLjgags44GX44KT44GE44GhDQor44Gq44GE44Go44GGLOOBkeOCk+OBmA0KK+OBquOBi+OBlOOCgSzjgbLjgo3jgYvjgZoNCivjgarjgYvjgoDjgoks44Gy44Gn44KE44GZDQor44Gv44GO44KP44KJLOOBi+OBpOOBvw0KK+OBvuOBpOOCguOBqCzjgYvjgojjgZMNCivjgZPjgpPjga4s44KI44GX44Gy44GVDQor44GV44GE44GQ44GVLOOBn+OCguOBpA0KK+OBu+OCk+OBoCzjgobjgY3jgYoNCivjgZ/jgarjgYss44Gy44KN44GXDQor44G+44Gk44Go44G/LOOBi+OCiOOBkw0KK+OBguOBi+OBleOBiyzjgbLjgo3jgYLjgY0NCivjgZvjgpPjgYzjgpMs44GC44GN44Gy44GnDQor44Gf44GR44GKLOOBruOCiuOBi+OBmg0KK+OCgOOCieOBnyzjgbLjgo3jgobjgY0NCivjgYvjgo/jgZss44Go44KC44Gy44KNDQor44Gr44GX44GW44GNLOOBn+OBpOOChuOBjQ0KK+OBuOOBhOOBqOOBhizjgYjjgYTjgYTjgaENCivjgYrjgYrjgZXjgo8s44G+44GV44Gv44KLDQor44GG44GI44GgLOOCiOOBhuOBhOOBoQ0KK+OBi+OBquOChOOBvizjgoTjgZnjgbLjgZMNCivjga/jgonjgaAs44Go44KC44KG44GNDQor44Gq44GL44GM44KPLOOBguOBpOOBlw0KK+OBv+OChOOCguOCiizjgb7jgZPjgagNCivjgYvjgYQs44GR44KT44GYDQor44GN44GQ44GhLOOBl+OCheOBhuOBmA0KK+OBleOBn+OBkSzjgZHjgpPjgZgNCivjgYrjgYrjgYrjgYss44Go44GX44KN44GGDQor44Gq44GL44GW44KPLOOBk+OBhuOBmA0KK+OChOOBmeOBiuOBiyzjgb7jgZXjgbLjgacNCivjgY/jgo3jgb/jgaQs44KE44GZ44Gf44GLDQor44GL44Gq44GgLOOBsuOBp+OBjQ0KK+OBvuOCi+OBi+OCjyzjgbLjgafjgY0NCivjgarjgYzjgZXjgo8s44Gf44GR44KG44GNDQor44GT44Gw44KE44GXLOOBl+OCheOBhg0KK+OBiOOCk+OBqSzjgb7jgZXjga7jgooNCivjgYTjgpPjgarjgb8s44Gv44KL44GKDQor44KE44G+44KC44GoLOOBjeOCiOOBn+OBiw0KK+OBquOBjOOBj+OCiSzjgZXjgajjgZcNCivjgYbjgYjjga4s44G+44Gh44GTDQor44Gr44GX44GW44GLLOOBv+OBiw0KK+OBleOBqOOBhizjgabjgaTjgo3jgYYNCivjgoLjgorjgoTjgb4s44Gf44Gk44GKDQor44GT44Gv44KE44GbLOOBl+OBkuOBig0KK+OBqeOBhOOBnyzjgbLjgo3jgZcNCivjgbvjgZ3jgYvjgo8s44Gu44G244GKDQor44GC44GK44GNLOOBv+OBpOOBhA0KK+OBvuOBmeOBv+OBoCzjgajjgoLjgbLjgZMNCivjgYrjgaEs44G+44GV44GE44GhDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBmeOBjuOChOOBvizjgZHjgpPjgYTjgaENCivjgbXjgZjjgo/jgoks44Gb44GE44KEDQor44Gf44Gq44G5LOOBv+OBpOOChuOBjQ0KK+OBqOOBoCzjgYLjgaTjgZcNCivjgaTjgbzjgYQs44KE44GZ44GKDQor44GZ44GO44GfLOOBvuOBleOBruOCig0KK+OBguOBoOOBoSzjgZHjgYTjgZ8NCivjgbXjgZjjgYQs44G+44GV44GNDQor44GZ44GM44KC44KKLOOBsuOCjeOBlw0KK+OChOOBmeOBoCzjgarjgYrjgbLjgZMNCivjgZ/jgYvjga/jgZcs44Gy44KN44KG44GNDQor44Gf44GM44G/LOOBvuOBleOCiw0KK+OBqOOBv+OChOOBvizjgobjgYbjgZgNCivjga/jga3jgaAs44KE44GZ44KG44GNDQor44GK44GW44GNLOOBn+OBkeOBlw0KK+OBiuOBkOOCiSzjgoTjgZnjgobjgY0NCivjgabjgonjgZXjgY0s44Gu44G244KEDQor44Gk44Gh44KELOOBiOOBpOOBkw0KK+OBiuOBi+OBoCzjgabjgovjgYoNCivjgYLjgbks44Gu44G244KG44GNDQor44GC44G5LOOBv+OBpOOBiA0KK+OCguOCiuOCj+OBjSzjgZPjgYbjgYTjgaHjgo3jgYYNCivjga/jgoTjga4s44GR44KT44GfDQor44Go44G/44Gq44GMLOOBmOOCheOCkw0KK+OBmeOBmuOBjSzjgb/jgY0NCivjgYvjgZ/jgY7jgoos44GV44Go44GXDQor44GC44Gv44KJLOOBr+OChOOBqA0KK+OBu+OBlyzjgarjgarjgZMNCivjgYTjgZfjgYvjgo8s44Gf44Gk44KEDQor44GX44KC44KA44KJLOOCiOOBl+OBsuOBlQ0KK+OCj+OBjeOCguOBqCzjgb/jgobjgY0NCivjgYvjgo/jgaYs44Gf44GL44GXDQor44GC44G244KJ44GL44KPLOOBi+OBmuOBiuOBvw0KK+OCiOOBl+OBn+OBkSzjgZ/jgYvjgZcNCivjgYTjgZfjgaAs44G+44GV44KG44GNDQor44G744KT44GgLOOBqOOBl+OCjeOBhg0KK+OBl+OBn+OBvizjgojjgZfjgYoNCivjga7jgZDjgaEs44Gf44GR44GXDQor44G/44Ga44GELOOBguOChOOBig0KK+OBguOCk+OBqeOBhizjgarjgYrjgbXjgb8NCivjgojjga3jgZfjgb4s44Gq44Gk44G/DQor44GC44GN44GfLOOBmOOCheOCk+OBkw0KK+OBhuOBiCzjgYLjgaTjgZcNCivjgZnjgY4s44GT44GG44GE44GhDQor44Gq44GL44GY44G+LOOBvuOCig0KK+OBi+OBleOBiuOBiyzjgajjgZfjgbLjgZMNCivjga7jgaAs44Gm44Gk44G144G/DQor44G+44Gk44GW44KPLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OCj+OBn+OBuSzjgZ/jgaTjgYoNCivjgYLjgYTjgZbjgo8s44GR44GE44GY44KN44GGDQor44GE44KP44GVLOOBl+OCkw0KK+OBk+OBjCzjgYLjgY3jgbLjgZMNCivjgbLjgYzjgZfjgZ/jgass44Gy44Gn44G144G/DQor44GE44GR44GgLOOBqOOBl+OChA0KK+OBguOBjeOBquOBiyzjgoTjgZnjga/jgosNCivjgbXjgZjjgZ8s44GL44Ga44KEDQor44KE44G+44GK44GLLOOBsuOBleOBn+OBiw0KK+OCj+OBoSzjgZvjgaTjgoQNCivjgYbjgYjjga4s44GR44KT44Gf44KN44GGDQor44GG44GX44GNLOOBi+OBmuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjga/jgovjgbLjgZMNCivjgYvjgajjgYYs44G+44GV44Go44GXDQor44Gq44GM44GELOOBn+OBoOOBsuOCjQ0KK+OBteOBj+OBoCzjgYLjgoTjgZMNCivjgarjgYvjgZ/jgass44GI44G/DQor44Gy44KJ44GV44KPLOOBquOBjOOBkw0KK+OBv+OChOOBluOBjSzjgb7jgZXjgosNCivjgabjgonjgZfjgb4s44KA44Gt44GL44GaDQor44GC44KJ44GELOOBoeOBjA0KK+OBn+OBquOBiyzjgZfjgpPjgYTjgaENCivjgYvjga3jgZMs44Gf44GL44GC44GNDQor44GV44Go44GGLOOBpuOBpOOBmA0KK+OBquOCiuOBnyzjgZfjgoXjgYbjgYTjgaENCivjgarjgYzjgZfjgb4s44GY44KF44KT44GE44Gh44KNDQor44GV44GL44GuLOOBqOOBl+OBig0KK+OBv+OBhuOCiSzjgZXjgajjgZcNCivjgoTjgb7jgZDjgaEs44GR44GEDQor44GK44Gn44KJLOOBquOBiuOBqOOBlw0KK+OBguOBuSzjgYLjgaTjgZcNCivjgZPjgaDjgb4s44GL44Ga44Gy44KNDQor44KE44G+44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBl+OBvizjgajjgYrjgosNCivjgYTjgZfjgZos44Gk44Go44KADQor44GL44KT44Gw44KE44GXLOOChuOBjeOBig0KK+OBiuOBiuOBi+OCjyzjgbLjgo3jgobjgY0NCivjgbLjgYjjgaAs44Gf44GR44Gy44GTDQor44GE44Gu44G+44GfLOOBsuOCjeOBvw0KK+OBvuOBjeOBnyzjgajjgZfjgoQNCivjgYzjgarjga8s44Gf44GL44KG44GNDQor44Gv44KE44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBguOBi+OBrOOBvizjgabjgaTjgoQNCivjgoDjgo3jgYvjgo8s44G+44GV44Gu44KKDQor44GK44GuLOOBkeOBhOOBmeOBkQ0KK+OBjeOCgOOCiSzjgZfjgofjgYbjgZQNCivjga/jgZ/jgZbjgo8s44KE44GZ44GTDQor44G144GY44GfLOOBvuOBleOBjQ0KK+OBhuOBiOOBoCzjgaDjgYTjgZnjgZENCivjgoTjgb7jga7jgYbjgaEs44GE44GV44GKDQor44G144KL44GfLOOCiOOBl+OBsuOCjQ0KK+OBiuOBj+OChOOBvizjgZHjgpPjgYTjgaHjgo0NCivjgYTjgajjgYYs44G144G/44GKDQor44GK44GV44Gq44GELOOBm+OBhOOBhOOBoQ0KK+OBk+OBn+OBqyzjgZ/jgZHjgZcNCivjgYrjgYrjgaTjgYss44Gf44Gg44GC44GNDQor44G144GP44GX44G+LOOBk+OBmeOBkQ0KK+OBhOOBhOOBmuOBiyzjgZHjgpMNCivjgo/jgZ/jgarjgbks44Gm44KL44GC44GNDQor44KC44KK44GfLOOBkeOCk+OBhOOBoeOCjQ0KK+OBi+OBqOOBhizjgbLjgo3jgY0NCivjgbvjgpPjgaAs44Go44GX44GC44GNDQor44GL44Go44GGLOOBguOBjeOBruOCig0KK+OBguOBleOBrOOBvizjgoTjgZnjgbLjgo0NCivjgYLjgZrjgb4s44G+44GV44GKDQor44Gm44KJ44GV44KPLOOBv+OBpOOBig0KK+OBguOBi+OBlyzjgaTjga3jgYoNCivjgYvjgajjgYYs44Gq44GK44GoDQor44GK44Gu44GV44GoLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgaTjgZANCivjga7jgoDjgoks44Gy44Gn44G/DQor44GE44Gu44GG44GILOOBiOOBhOOBhOOBoQ0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgZ/jgoDjgoks44GM44GPDQor44GV44GL44GELOOBmeOBiOOBruOBtg0KK+OBmeOBjuOCgOOCiSzjgorjgofjgYYNCivjgajjgb/jgoTjgb4s44GR44GEDQor44GL44GN44GW44KPLOOBqOOBl+OBguOBjQ0KK+OBq+OBl+OBn+OBqyzjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgYLjgZXjgY/jgoks44GX44KT44KEDQor44GE44GX44GW44GNLOOBleOBqOOBlw0KK+OBvuOBpOOCguOBqCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgYzjgYos44Go44GX44GKDQor44GN44GuLOOCiuOBiA0KK+OBguOBuSzjgZ/jgZnjgY8NCivjgags44GT44GG44GYDQor44KE44G+44GNLOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBhCzjgZLjgpMNCivjgoTjgb7jgaAs44GR44GE44GYDQor44GK44GP44KA44KJLOOBi+OBmuOBiA0KK+OBr+OCiSzjgZfjgofjgYbjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44GL44Gk44Gy44GVDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBguOCieOBhCzjgYvjgZrjgoQNCivjgYTjgZHjgaks44G+44GV44Gf44GLDQor44GE44Go44GGLOOBkeOBhOOBmA0KK+OBhOOBqOOBhizjgobjgYbjgZgNCivjgYbjgorjgoXjgYYs44GC44GN44KJDQor44GG44Gh44KE44G+LOOBn+OBoOOBlw0KK+OBiOOBruOCguOBqCzjgbLjgo3jgb/jgaENCivjgYjjgZrjgoks44Go44GK44KLDQor44GK44GK44Gk44GLLOOBkeOBhOOBmeOBkQ0KK+OBiOOBq+OCgyzjgZnjgZnjgoANCivjgYLjgYvjgYos44GR44GE44GZ44GRDQor44GK44GK44Gr44GXLOOBl+OCh+OBhuOBmA0KK+OBi+OBjOOChCzjgYTjgarjgpMNCivjgYvjgb7jgZ8s44Gf44GL44Gy44KNDQor44GL44KP44GL44G/LOOBruOBtuOBsuOBlQ0KK+OBleOBleOBjSzjgoTjgZnjgojjgZcNCivjgZ/jgYvjga/jgZcs44Gq44GK44Gy44GTDQor44Gf44GgLOOBk+OBhuOBhOOBoQ0KK+OBq+OBl+OBrizjgb7jgZXjgojjgZcNCivjgYLjgZXjgYos44Gq44GK44GNDQor44Gv44GX44KC44GoLOOBquOBiuOBjQ0KK+OBr+OBo+OBqOOCiizjgZ/jgYvjgZMNCivjgbvjgZcs44Gf44GKDQor44G744KK44GfLOOBl+OCk+OBhOOBoQ0KK+OBvuOBiOOBnuOBrizjgarjgovjgbLjgacNCivjgb7jgYjjgZjjgb4s44G/44Gu44KLDQor44G/44KE44GW44GNLOOChuOBv+OBkw0KK+OBguOCieOBhCzjgojjgZfjgb8NCivjgoLjgoos44GT44GZ44GRDQor44G+44GI44GgLOOBsuOCjeOBlw0KK+OBiuOBoSzjgZHjgpMNCivjgYLjgZXjgY/jgoks44Gu44KK44GKDQor44GG44GV44G/LOOBguOBpOOBlw0KK+OBiuOBj+OChOOBvizjgZ/jgYvjgZcNCivjgYvjgorjgoQs44Gf44GL44Gy44GTDQor44GG44GI44GgLOOBsuOBp+OChuOBjQ0KK+OBiuOBn+OBuSzjgZHjgYTjgZ7jgYYNCivjgY3jgoDjgoks44GE44GV44KADQor44GP44GX44GgLOOCiOOBl+OBr+OCiw0KK+OBguOBvuOBryzjgZPjgYbjgZgNCivjgZPjgpPjgaks44KI44GX44GNDQor44GX44G/44GaLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBmeOBmuOBjSzjgZfjgoXjgYbjgZPjgYYNCivjgZnjgpMs44GZ44G/44GKDQor44Gf44Gp44GT44KNLOOBsuOBqOOBlw0KK+OBqOOBreOBleOBjyzjgYTjgZXjgoANCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44G+44GZ44GgLOOBsuOCjeOBig0KK+OBv+OChOOBluOBjSzjgb/jga/jgosNCivjgojjgZfjgarjgYws44GC44GN44Gy44GVDQor44KI44GT44GL44KPLOOBn+OBj+OBvg0KK+OBpOOBoeOChCzjgb7jgobjgb8NCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44Gq44G5LOOBvuOBleOBmA0KK+OBhOOBqOOBhizjgZHjgYTjgZnjgZENCivjgarjgYzjgYos44GX44KT44GE44GhDQor44GV44Go44GGLOOBn+OBkeOBlw0KK+OBn+OBoCzjgajjgoLjgbLjgo0NCivjgYLjgY3jgoLjgags44GX44KF44KT44GZ44GRDQor44Gf44KA44KJLOOBvuOCguOCiw0KK+OBn+OCgOOCiSzjgYvjgZrjgobjgY0NCivjgYrjgYss44G/44Gh44Gv44KLDQor44GV44GP44KJ44GOLOOBkeOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgoLjgorjgYrjgYss44Gf44Gg44GXDQor44KE44GQ44GhLOOChuOBhuOBlw0KK+OBv+OChOOCguOBqCzjgZXjgajjgZcNCivjgZfjgonjgYvjgo8s44Gy44Gn44GNDQor44GK44GK44Gk44GLLOOBsuOBp+OBjQ0KK+OChOOBvuOCguOBqCzjgajjgoLjgoTjgZkNCivjgarjgYvjgb7jgaEs44KE44GZ44G144G/DQor44KP44GL44Gv44KJLOOChOOBmeOBig0KK+OBguOBjSzjgZ/jgYvjgZcNCivjgZ/jgY3jgZ8s44GL44Ga44Gy44KNDQor44GC44KJ44GL44KPLOOBkeOBhOOBhOOBoQ0KK+OBvuOBpOOBiizjgZPjgYbjgZgNCivjgaHjgofjgYYs44KG44GG44GE44GhDQor44GP44KN44GgLOOBl+OBkuOCiw0KK+OChOOBvuOBl+OBnyzjgZ/jgo3jgYYNCivjgajjgoLjgYrjgYss44GI44G/44GTDQor44Gq44GL44GKLOOCj+OBn+OCiw0KK+OBguOBnSzjgabjgovjgYvjgZoNCivjgbXjgY/jgaAs44Gu44G244Gf44GLDQor44GC44GK44GNLOOBsuOBqOOBlw0KK+OBj+OCiyzjgbLjgZXjgagNCivjgoDjgonjgYvjgb8s44KE44GZ44Gy44KNDQor44GP44KN44GgLOOBn+OBj+OChA0KK+OBv+OBi+OBvyzjgYLjgY3jgbLjgo0NCivjgYvjgb/jgoDjgoks44Gy44KN44KG44GNDQor44GN44Gf44GY44G+LOOBquOBiuOBjQ0KK+OBvuOCi+OChOOBvizjgojjgZfjgbLjgZUNCivjgZXjgZ/jgZEs44GR44KT44GE44GhDQor44KC44Gm44GNLOOBn+OBkeOBlw0KK+OBqOOBv+OBnyzjgbXjgY0NCivjgavjgo8s44G144G/44GTDQor44Gf44GL44Gw44Gf44GRLOOBl+OBkuOBruOCig0KK+OBguOBmuOBvizjgb7jgZXjgosNCivjgbXjgovjgoQs44GV44Gh44GTDQor44Gq44GZLOOCiOOBl+OBsuOCjQ0KK+OBk+OCiizjgb7jgooNCivjgYTjgZHjgaAs44G+44GV44Gy44KNDQor44GU44Go44GGLOOBk+OBhuOBmA0KK+OBteOBj+OBoCzjgbLjgo3jgobjgY0NCivjgZnjgYzjga/jgoks44GY44KF44KT44GYDQor44GN44KA44KJLOOBqOOBl+OBsuOBkw0KK+OBn+OBi+OBmyzjgb7jgooNCivjgavjgZfjgYrjgYss44KK44KH44GGDQor44G144KL44GL44KPLOOBpuOBpOOBig0KK+OBj+OBqeOBhizjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44GR44KT44GoDQor44KE44G+44KC44GoLOOCiOOBl+OBsuOCjQ0KK+OBv+OChOOCguOBqCzjgorjgofjgYbjgbjjgYQNCivjga7jgZ8s44KG44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBl+OBruOBtg0KK+OBguOBjeOBsCzjgb/jgoQNCivjgYTjgo/jgY0s44G+44GT44GoDQor44GL44Go44GGLOOBl+OBuw0KK+OCguOCiuOCguOBqCzjgb7jgZXjgYvjgZoNCivjgarjgYvjgoDjgoks44GL44Ga44Go44GXDQor44Gq44GL44KE44G+LOOBi+OBmuOChA0KK+OBiuOBiuOBn+OBqyzjgZfjgZLjgbLjgo0NCivjgZnjgY7jgoTjgb4s44G/44Gu44KLDQor44GZ44KTLOOBqOOCiOOChuOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgZcNCivjgbvjgpPjgaks44KG44Gf44GLDQor44Gv44GMLOOBi+OBj+OBmA0KK+OBl+OBiuOBluOBjSzjgYvjgZrjgbLjgZMNCivjgbXjgZjjga4s44G/44Gu44KLDQor44GK44GuLOOBkeOCk+OBmA0KK+OBguOCk+OBqeOBhizjgojjgZfjgYoNCivjgoTjgb7jgZDjgaEs44Go44GX44GC44GNDQor44GP44KN44GgLOOBn+OBi+OBlw0KK+OBhuOBrizjgorjgofjgYbjgYTjgaENCivjgYTjgajjgYbjgZ/jgass44Gf44GR44Gy44GTDQor44GK44GLLOOBiOOBpOOBvw0KK+OBv+OBhuOCiSzjga7jgbbjgobjgY0NCivjga/jgZfjgoLjgags44GL44GqDQor44GI44KC44GoLOOBvuOBk+OBqA0KK+OBk+OBjCzjgbLjgo3jgZcNCivjgY3jga/jgoks44Gy44KN44GXDQor44G+44Gk44GgLOOBteOBv+OBn+OBoA0KK+OChOOBvuOBoCzjgYLjgY3jgZMNCivjgZ/jgYvjga/jgZcs44KI44GG44GE44GhDQor44KE44Gv44GfLOOBsuOBp+OBig0KK+OBn+OBluOBjSzjgZHjgYTjgZ8NCivjgoTjgb7jgoLjgags44KK44KF44GG44GE44GhDQor44Gf44GL44GgLOOBsuOCjeOBvw0KK+OBruOBoCzjgb7jgZXjgaTjgZANCivjgZXjgYTjgb/jgofjgYYs44GL44GK44KLDQor44GT44Gw44KE44GXLOOBguOCieOBnw0KK+OBteOBmOOBjSzjgZHjgpPjgZgNCivjgZfjgonjgZXjgYss44G144G/44GKDQor44Gf44GL44Gv44GXLOOBqOOBiuOCiw0KK+OChOOBpCzjgYLjgaTjgYoNCivjgYbjgYrjgZ/jgass44G144G/44Gy44GTDQor44Gf44KA44KJLOOBqOOBl+OBsuOBkw0KK+OBvuOBpOOBiizjgZXjgajjgZcNCivjgarjgYvjgZbjgo8s44Gf44GP44KEDQor44GN44GgLOOChuOBjeOBkw0KK+OBn+OCk+OBkizjgabjgaTjgo3jgYYNCivjgbLjgo3jgZss44GZ44GZ44KADQor44G+44Gk44GX44G+LOOBv+OBoeOChA0KK+OBiuOBi+OBrizjgZXjgajjgosNCivjgYLjgYrjgY0s44KI44GG44GE44Gh44KN44GGDQor44Gv44Gb44GM44KPLOOCiuOCheOBhuOBmA0KK+OBq+OBl+OBu+OCiizjgaHjgYvjgokNCivjgYTjgZfjgZrjgYss44Gf44GL44KEDQor44Gk44G844GELOOBsuOBp+OChuOBjQ0KK+OBhOOBl+OBoCzjgb7jgZXjgosNCivjga/jgZfjgoLjgags44GV44Go44KLDQor44GU44Go44GGLOOBl+OCk+OBmA0KK+OBguOBjeOChOOBvizjgbLjgo3jgY0NCivjgb/jgaTjga/jgZcs44GX44GS44KLDQor44GU44GX44G+LOOBi+OBmuOBig0KK+OBteOBj+OBoCzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gq44GK44G144G/DQor44Gq44GL44GW44KPLOOBsuOBleOBlw0KK+OBq+OBl+OBi+OCjyzjgbLjgajjgZcNCivjgYTjgZHjgYbjgaEs44GL44Ga44KG44GNDQor44Gf44GM44G/LOOBn+OBi+OBig0KK+OBi+OCj+OBjeOBnyzjgZHjgpPjgZjjgo3jgYYNCivjgarjgYvjgoDjgoks44GM44GPDQor44GT44G+44GELOOBk+OBmeOBkQ0KK+OBu+OBl+OChCzjgYLjgobjgoANCivjgZnjgb/jgags44G+44GV44G144G/DQor44G744GX44GuLOOBi+OBmuOBig0KK+OBquOBi+OChCzjgZfjgpPjgYTjgaENCivjga/jgoks44G/44Ga44G7DQor44KA44KN44KE44G+LOOBi+OBmuOBsuOBkw0KK+OCguOCiizjgbLjgafjgY0NCivjgZfjgonjgYTjgZcs44G+44GV44Gy44KNDQor44Gy44KJ44GuLOOBk+OBhuOBmA0KK+OBr+OBl+OCguOBqCzjgobjgYbjgZMNCivjgYLjgbks44GY44KF44KT44GYDQor44GE44GX44GL44KPLOOBguOCiuOBi+OBpA0KK+OBguOBmuOBvizjgojjgZfjgb8NCivjgYrjgYrjgaTjgYss44Gu44G244GKDQor44GE44Go44GGLOOBkeOBhA0KK+OBiuOBl+OBvizjgaHjgYvjgYoNCivjgZPjgZbjgYQs44GN44KI44Gy44KNDQor44GL44KP44GL44G/LOOBvuOBleOBqOOBlw0KK+OBquOBi+OBrizjgoDjga3jgbLjgZMNCivjgYbjgZjjgoLjgags44G+44GV44Gy44GTDQor44GN44GX44GgLOOBsuOBqOOBlw0KK+OBk+OBhOOBmuOBvyzjga7jgorjgZMNCivjgarjgYTjgajjgYYs44Go44GX44Gy44KNDQor44KI44GX44Ga44G/LOOCiOOBl+OBjQ0KK+OBmeOBjuOCguOCiizjgajjgZfjgbLjgo0NCivjgYLjgYrjgY0s44Go44KC44Gv44KLDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBhOOBjCzjga7jgorjgYvjga0NCivjgYvjgo/jgbDjgZ8s44Gu44Ge44G/DQor44GX44Gw44GfLOOBsuOCjeOBsuOBpw0KK+OBoOOCkyzjgb7jgarjgb8NCivjgZ/jgZDjgaEs44GL44Ga44Gy44KNDQor44G+44Gh44GgLOOBqOOCguOBig0KK+OBguOBl+OBoCzjgobjgYbjgZMNCivjgYLjgpPjganjgYYs44Gm44GE44GYDQor44KA44Go44GGLOOBi+OBpOOBruOCig0KK+OBk+OChOOBvizjgY3jgojjgagNCivjgZnjgZrjgY0s44GR44GE44GE44GhDQor44Gu44KA44KJLOOBmOOCheOCkw0KK+OBhOOBqOOChCzjgb7jgZXjgajjgZcNCivjgaHjgYvjgYrjgYss44Gk44Go44KADQor44GY44KT44G2LOOBv+OBoeOChOOBmQ0KK+OBguOBoOOBoSzjgb7jgZXjgZcNCivjgYvjgo/jgYQs44KE44GZ44GXDQor44G/44Gu44KPLOOBk+OBhuOBhOOBoQ0KK+OBguOBleOBsizjgajjgZfjgYLjgY0NCivjgYrjgYrjgZ8s44KI44GX44GC44GNDQor44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBjeOCiSzjgb7jgZXjgZcNCivjgoTjgb7jgZbjgY0s44G/44GLDQor44KE44G+44GG44GhLOOBv+OBpOOCiw0KK+OBu+OBo+OBnyzjgojjgZfjga7jgooNCivjgYLjgonjgYvjgo8s44GX44GS44GKDQor44GK44GP44KA44KJLOOBmOOCheOCkw0KK+OBi+OBreOBkyzjgYTjgZ/jgosNCivjgYLjgoTjga4s44GT44GG44GNDQor44Gv44KE44GL44KPLOOBqOOCguOBquOCig0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgZMNCivjgYrjgY/jgoDjgoks44Gy44GV44Gu44KKDQor44Gf44KT44GW44KPLOOBn+OBpOOBig0KK+OBleOBjeOBrizjgojjgZfjgbLjgo0NCivjgYvjgo/jga/jgoks44Go44GK44KLDQor44Gf44KL44GELOOCiOOBl+OBig0KK+OBguOCiuOCguOBqCzjgYLjgaTjgZcNCivjgYjjgbPjgZMs44Go44KC44Gq44KKDQor44Gy44GuLOOBi+OBpOOChA0KK+OChOOBvuOBoCzjgZfjgofjgYbjgojjgYYNCivjgYrjgYrjga4s44GP44G/DQor44Gf44GR44GX44GfLOOChuOCiuOBkw0KK+OBr+OChOOBlyzjgY3jgofjgYbjgZMNCivjgYTjgZfjgaAs44GR44KTDQor44GX44GK44KELOOBn+OBkeOBlw0KK+OBguOCk+OBqeOBhizjga7jgbzjgosNCivjgb7jgaTjgbDjgoks44G+44GV44G144G/DQor44Gr44GX44GgLOOBvuOBleOCiw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgYTjgZHjgaAs44GY44KF44KTDQor44Gv44KE44G/LOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgZfjgofjgYbjgZ7jgYYNCivjgYrjgYzjgo8s44GC44GN44KJDQor44GE44GX44GL44KPLOOBqOOBl+OBguOBjQ0KK+OBguOBleOBvyzjgZHjgpPjgZgNCivjga/jgZ/jgZHjgoTjgb4s44Gf44GL44GXDQor44G744KK44G/44GeLOOBkeOBhOOBmeOBkQ0KK+OBvuOCi+OBn+OBqyzjgaHjgbLjgo0NCivjgZXjgajjgYYs44GC44GN44GKDQor44GV44GL44Gq44GLLOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgajjgoLjgbLjgZMNCivjgYTjgajjgYYs44GL44GK44KLDQor44G144KL44Gq44GMLOOBr+OCi+OBsuOBkw0KK+OBteOBj+OBl+OBvizjgb7jgZXjgagNCivjgb/jgZrjgYzjgb8s44KI44GX44KG44GNDQor44Gf44GR44GG44GhLOOBv+OBoeOBig0KK+OBqOOCiuOBhuOBvyzjgb/jga7jgosNCivjga3jgY7jgZcs44GX44GS44GNDQor44GT44KE44G+LOOBguOBjeOBruOCig0KK+OBiuOBl+OBvizjgarjgZnjgYoNCivjgYvjgZ/jgYrjgYss44Gf44GL44GXDQor44Gf44GN44GQ44GhLOOBsuOBp+OBteOBvw0KK+OBk+OBvuOBpCzjgYvjgZrjgYoNCivjgoTjgY4s44Gf44GL44GXDQor44Gf44GL44GOLOOCiOOBl+OBig0KK+OBvuOBmeOBhCzjgabjgaTjgo3jgYYNCivjga/jgoTjgZcs44Gy44Go44GXDQor44GC44Gt44Gf44GELOOBvuOBleOChuOBjQ0KK+OBjeOBr+OCiSzjgZHjgpPjgYTjgaENCivjgZXjgYTjgajjgYYs44GX44GS44GKDQor44GN44Gf44KP44GNLOOBv+OBoeOBsuOBkw0KK+OBruOBkOOBoSzjgbLjgo3jgb/jgaENCivjgZXjgYvjgZDjgaEs44KC44Go44GEDQor44Gr44GXLOOChuOBjeOBv+OBpA0KK+OBhOOBkeOBoCzjgabjgaTjgYoNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GE44G+44GELOOBvuOBleOBsuOBqA0KK+OChOOBvuOBoCzjgZfjgZLjgYTjgY8NCivjgZ/jgarjgYss44KE44GZ44Gy44GVDQor44GK44GK44GV44GTLOOBvuOBk+OBqA0KK+OBk+OCgOOCjSzjgYvjgarjgoENCivjgZXjgYTjgajjgYYs44Gy44Gn44GNDQor44GZ44Ga44GNLOOBkeOCk+OBhOOBoQ0KK+OBteOBquOBqOOBjOOCjyzjgobjgYvjgooNCivjgYTjgZfjgYQs44Gm44KL44GC44GNDQor44G+44Gk44GELOOBruOBvOOCiw0KK+OBmeOBiOOBsuOCiSzjgbLjgajjgZcNCivjgbLjgo3jgZ/jgass44KI44GX44GKDQor44Gy44GM44GXLOOBjeOCiOOBlw0KK+OBhOOCgOOCiSzjgYLjgaTjgZMNCivjgYLjgbks44KE44GZ44Gu44KKDQor44KI44Gt44GP44KJLOOBruOBtuOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgojjgZfjgb/jgaQNCivjgZnjgYws44Gy44KN44GXDQor44GV44GuLOOBsuOCjeOBlw0KK+OBl+OBsCzjgajjgoLjgZgNCivjgoTjgb7jgZDjgaEs44GX44KF44KT44GYDQor44GN44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OBi+OBleOBvuOBjSzjgojjgZfjgo3jgYYNCivjgY3jgoDjgoks44GR44GE44GZ44GRDQor44Gk44KL44G/LOOBguOBjeOBsuOBlQ0KK+OBguOBiuOBjSzjgZfjgofjgYbjgZMNCivjgYTjgZfjgaAs44KC44Go44GXDQor44KC44KNLOOBguOBjeOBig0KK+OBiuOBj+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjgY4s44GT44GG44GYDQor44GE44GR44KELOOBv+OBoeOBig0KK+OBqOOBv+OChOOBvizjgYvjgZrjgb/jgaQNCivjgoTjgY4s44Gf44GL44GKDQor44Go44G/44GNLOOBpuOBpOOCjeOBhg0KK+OBqOOBruOCgOOCiSzjgb/jga7jgosNCivjgoTjgaTjgZrjgYss44Go44GX44Gy44KNDQor44G244G+LOOBkeOCk+OBl+OCh+OBhg0KK+OBquOBi+OBluOCjyzjgbXjgb/jgajjgoINCivjgoTjgb7jgZbjgY0s44KI44GG44GTDQor44G+44Gk44GX44GfLOOBl+OBruOBtg0KK+OBhOOBoCzjgZfjgpMNCivjgZnjgZrjgY0s44KI44GX44Gy44KNDQor44Gq44GL44GuLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBkOOBoSzjgb7jgZXjgYoNCivjgZ/jgYvjga/jgZcs44Gk44Go44KADQor44GE44GX44GgLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBhuOBoCzjgZXjgajjgosNCivjgbXjgZjjgo/jgoks44KK44KF44GG44GYDQor44GT44GE44GnLOOBqOOBl+OBn+OBkQ0KK+OBpOOBi+OBoCzjgbjjgYTjga/jgaENCivjgbLjgonjgoTjgb4s44Gy44KN44GXDQor44GG44Gh44Go44G/LOOBguOBjeOCiQ0KK+OBhOOBvuOBr+OCiSzjgbLjgo3jgojjgZcNCivjgYbjgYjjgaAs44Gy44Go44GXDQor44GV44GV44GL44KPLOOCiOOBl+OBsuOCjQ0KK+OBguOBhOOBi+OCjyzjgZ/jgYvjgYLjgY0NCivjgYbjgYjjgY0s44Gf44GL44KI44GXDQor44Gq44GL44KE44G+LOOCiOOBl+OBvw0KK+OBiuOBiuOBleOCjyzjgojjgZfjgYvjgZoNCivjgZ/jgYvjgYrjgYss44Go44GX44KG44GNDQor44KP44GgLOOBpOOBjuOBig0KK+OBhOOBrOOBmuOBiyzjgY/jgavjgbLjgZUNCivjgZ/jgarjgYss44GT44GG44GN44GhDQor44Gf44GR44GgLOOBjeOCiOOBn+OBiw0KK+OChOOBvuOBoCzjga7jgbzjgosNCivjgoTjgarjgY4s44Gy44Gn44Gy44KNDQor44Gf44GR44GX44GfLOOCiOOBl+OBn+OBkQ0KK+OBq+OBlyzjgZ/jgaTjgbLjgZMNCivjgYrjgYrjgZ/jgZEs44KG44GG44GE44GhDQor44Gr44Gf44Gq44GELOOBl+OBkuOBig0KK+OBu+OCk+OBvizjga7jgbbjgbLjgZMNCivjgarjgYvjga4s44KI44GX44Gu44KKDQor44G/44KE44GX44GfLOOBsuOBp+OBjQ0KK+OBhuOBiOOBrizjgZjjgoXjgpPjgZjjgo3jgYYNCivjgbDjgbAs44GV44Gg44KADQor44G/44KE44GW44GNLOOBvuOBleOBig0KK+OBj+OBq+OBhCzjgaTjgajjgoANCivjgZPjgbDjgoTjgZcs44GR44GE44GYDQor44G+44GZ44GgLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZgNCivjgaTjgYvjgYos44Gy44KN44GNDQor44GL44KP44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBi+OCj+OBsOOBnyzjgZPjgYbjgZ7jgYYNCivjgYLjgYvjgZXjgYss44GY44KF44KT44GTDQor44GE44GE44GgLOOBpuOBpOOChA0KK+OBl+OCieOBr+OBvizjgZ/jgaDjgZcNCivjgajjgYzjgo8s44Gy44KN44KG44GNDQor44GE44Go44GGLOOBsuOBp+OBhOOBoQ0KK+OBiuOBi+OBuSzjgb7jgZXjgZcNCivjgo/jgZ/jgarjgbks44Gy44KN44GKDQor44GV44GL44GwLOOBqOOBl+OBsuOCjQ0KK+OBsuOCjeOBleOCjyzjgbLjgajjgZcNCivjgarjgYvjgoDjgoks44GX44GS44KLDQor44KE44GZ44GELOOBleOBqOOBlw0KK+OBsuOCieOBnyzjgYvjgZrjgbLjgZUNCivjgY3jgZ/jgYzjgo8s44GX44KT44GE44GhDQor44GC44G+44GuLOOBpuOBpOOChA0KK+OBpOOBmOOCgOOCiSzjgYjjgaTjgo3jgYYNCivjgYvjgo/jgZXjgY0s44GT44GG44GE44GhDQor44GG44GI44KA44KJLOOBn+OBkeOBlw0KK+OCgOOCieOBi+OBvyzjgZfjgZLjgaoNCivjgYTjga7jgYbjgYgs44GN44KI44GXDQor44Gv44GcLOOBkeOCkw0KK+OBqOOBl+OBsuOCjSzjgY3jgb/jgbLjgo0NCivjgZPjgbDjgoTjgZcs44GX44GS44KG44GNDQor44GE44GuLOOBn+OBoOOBruOCig0KK+OBguOBleOBrizjgobjgYbjgYTjgaENCivjgoLjgoos44GT44GG44GYDQor44GE44Gq44GW44KPLOOBk+OBhuOCiOOBhg0KK+OBk+OBsOOChOOBlyzjgabjgovjgbLjgo0NCivjgZXjgYvjgY0s44KI44GX44Gy44GTDQor44GG44Gh44KE44G+LOOBm+OBhOOBmA0KK+OBvuOBquOBuSzjgoTjgZnjgY0NCivjgYrjgYrjgoTjgb4s44GR44KT44GYDQor44GX44G/44GaLOOBvuOBleOBsuOBkw0KK+OCiOOBreOCgOOCiSzjgbLjgo3jgobjgY0NCivjgbDjgonjgaAs44GC44GN44Gy44GTDQor44G144KL44Ge44GuLOOCiOOBl+OBi+OBmg0KK+OBteOBmOOCguOBqCzjgYvjgZrjgYLjgY0NCivjgZXjga4s44G+44KC44KLDQor44GL44KP44GuLOOBiOOBhOOBkw0KK+OBu+OBl+OBi+OCjyzjgZPjgYbjgZgNCivjgZXjgZXjgoLjgags44KC44Go44Gk44GQDQor44GZ44Gp44GGLOOBvuOBleOBqA0KK+OBleOBqOOBhizjgZ/jgYvjgYoNCivjga/jgoTjgZcs44Gy44KN44GXDQor44Gw44GwLOOBsuOBp+OBruOCig0KK+OBsOOBsCzjgbLjgajjgZcNCivjgYrjgYrjgoTjga0s44Gy44Gn44GKDQor44Gq44GM44GV44KPLOOChOOBmeOChuOBjQ0KK+OBleOBi+OCguOBqCzjgb7jgZXjga/jgosNCivjgYLjgYrjgY0s44Gb44GE44GYDQor44KA44Gq44GL44GfLOOBvuOBleOBr+OCiw0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYvjgo/jgbDjgZ8s44Gy44KN44KG44GNDQor44GZ44GO44KC44GoLOOBv+OBoeOBig0KK+OBsOOCk+OBqeOBhizjgZjjgoXjgpMNCivjga7jgoDjgoks44GC44GN44Gy44GTDQor44GT44KT44GuLOOCiOOBl+OBv+OBoQ0KK+OBi+OCj+OBhCzjgYvjgZrjga7jgooNCivjgYbjgYjjga4s44Gu44G244KG44GNDQor44Gv44KJ44GgLOOBsuOCjeOBlw0KK+OBi+OBruOBhizjgYLjgY3jgokNCivjgYrjgYrjga/jgZ8s44G/44GN44GKDQor44GZ44Gp44GGLOOBn+OBi+OBlw0KK+OBvuOBpOOBoCzjgbLjgajjgZcNCivjgYTjgZHjgYzjgb8s44G+44GT44GoDQor44GX44KJ44GELOOBkeOCk+OBl+OCkw0KK+OBleOBqOOBhizjgZ/jgYvjgYLjgY0NCivjgZXjgYvjgYQs44Gf44GR44GXDQor44GK44GNLOOBqOOBl+OChuOBjQ0KK+OBi+OCj+OCgOOCiSzjgZHjgpPjgZgNCivjgoTjgb7jgaAs44Gy44KN44GKDQor44GE44Go44GGLOOBguOBjeOBsuOBlQ0KK+OBhOOBi+OBvyzjga/jgovjgYoNCivjgYLjgZrjgb7jgYos44Gy44Gn44GoDQor44G144GY44KA44KJLOOBqOOBiuOCiw0KK+OBjeOBn+OCgOOCiSzjgobjgYbjgZgNCivjgajjgYzjgb8s44Go44GX44G/DQor44GT44GZ44GSLOOBvuOBleOBig0KK+OBm+OBjSzjgbLjgo3jgobjgY0NCivjgYvjgo/jgZfjgb4s44Go44KC44KG44GNDQor44Gf44GL44GELOOChuOBhuOBlA0KK+OBguOBjeOChOOBvizjgobjgY3jgYoNCivjgZnjgZrjgY0s44Go44GX44G144G/DQor44Gq44GL44KA44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBq+OBl+OBrizjgZ/jgYvjgobjgY0NCivjgb/jgoTjgZEs44Gf44GL44Gy44KNDQor44KI44Gt44KC44GhLOOCguOBqOOBmA0KK+OBn+OBi+OBl+OBvizjgZfjgZLjgYoNCivjgZXjgYvjgYQs44Go44GX44Gu44KKDQor44GK44GK44Gk44GNLOOBguOBjeOBqOOBlw0KK+OBi+OCj+OBleOBjSzjgb/jgY0NCivjgavjgZfjgYvjgo8s44Gf44GN44GKDQor44GV44GP44KJ44GELOOBkeOCk+OBmA0KK+OBmeOBjizjgbLjgafjgYLjgY0NCivjgbvjgorjgZPjgZcs44Go44GK44KLDQor44KC44KKLOOBi+OBpOOChA0KK+OBr+OBkeOBoCzjgZ/jgYvjgZcNCivjgavjgYTjgaAs44GX44KT44GE44GhDQor44GN44GP44Gf44GrLOOBleOBqOOBlw0KK+OBn+OBkeOBruOBl+OBnyzjgZfjgoXjgYbjgbjjgYQNCivjgZ/jgYvjga/jgZcs44Gy44KN44G/DQor44Gf44Gq44G5LOOBvuOBleOBkw0KK+OBhOOBkeOCguOBqCzjga7jgorjgZMNCivjgb7jgaTjgoTjgb4s44KG44GN44GTDQor44KI44GX44GW44KPLOOCiOOBl+OBsuOBlQ0KK+OBguOBi+OBhCzjgb/jga7jgosNCivjgavjgZfjgYrjgYss44Gb44GE44GE44Gh44KN44GGDQor44Gf44GR44KC44GoLOOBruOBtuOBig0KK+OBqOOBj+OBoCzjgojjgZfjgYoNCivjgYrjgYrjgoLjgoos44KE44GZ44Gy44KNDQor44GL44Go44GGLOOBn+OBpOOBlw0KK+OBi+OCj+OBqCzjgbXjgb/jgYoNCivjgb7jgYjjgaAs44Gd44GG44GE44GhDQor44GP44KN44GNLOOBvuOBleOCiOOBlw0KK+OBhOOBhOOBoCzjgY/jgb/jgZMNCivjgZPjgoTjgarjgY4s44Gv44GY44KBDQor44G+44Gk44Gq44GMLOOBguOBpOOBlw0KK+OBhOOBqOOBhizjgoTjgZnjgYLjgY0NCivjgoTjgb7jgoLjgags44Gf44Gk44GKDQor44Gk44Gk44GELOOBqOOBl+OBguOBjQ0KK+OBn+OBquOBiyzjgb/jga7jgosNCivjgbXjgY/jgZfjgb4s44GX44KF44KT44GE44GhDQor44GT44GY44G+LOOCiOOBl+OBsuOBkw0KK+OBq+OBl+OBoCzjgb/jgaTjgZANCivjgavjgZfjgoTjgb4s44GY44KF44KT44GTDQor44GZ44Ga44GNLOOBoOOBhOOBmeOBkQ0KK+OBhOOBhOOBmOOBvizjgZ/jgYvjgZcNCivjgZ/jgb7jgYQs44GZ44GZ44KADQor44GT44KT44GuLOOBiuOBleOCgA0KK+OBv+OBvuOBmSzjgajjgZfjgb/jgaQNCivjgojjga3jga/jgoks44Gb44GE44GE44GhDQor44KI44GX44GgLOOBi+OBmuOBvw0KK+OBteOBj+OBoCzjgbLjgo3jgZcNCivjgZXjgajjgYYs44Gy44KN44GC44GNDQor44KE44G+44KC44GoLOOBsuOCjeOBlw0KK+OBjeOBn+OBlCzjga7jgbzjgosNCivjgZXjgpPjga4s44Go44KC44Go44GXDQor44KE44GV44GLLOOBqOOBl+OBig0KK+OCgOOCieOBnyzjgZfjgZLjgb8NCivjgarjgYvjgoLjgags44GC44GN44GXDQor44GV44GP44KJ44GELOOBi+OBmuOBl+OBkg0KK+OBr+OCieOBoCzjgojjgZfjgoLjgagNCivjgZXjgajjgYYs44GC44Gk44GKDQor44GV44GE44Go44GGLOOBv+OBpOOBig0KK+OBneOBrSzjgZHjgYTjgZMNCivjga/jgZnjgb8s44GC44GN44Gy44KNDQor44Gy44KJ44GfLOOBi+OBmuOBsuOCjQ0KK+OChOOBquOBjuOBleOCjyzjga7jgbbjgYoNCivjgZ/jgaHjgbDjgaos44KI44GG44GTDQor44GE44Go44GGLOOBvuOBleOBmuOBvw0KK+OBr+OCiSzjgYLjgY3jgokNCivjgZXjgYTjgajjgYYs44Go44GX44Gy44KNDQor44GE44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYvjgZrjgoQNCivjgYbjgaHjgoTjgb4s44GX44GS44KI44GXDQor44GL44GM44KPLOOBkeOBhOOBhOOBoQ0KK+OBn+OBjeOBluOCjyzjgobjgYbjgZjjgpMNCivjgZfjgarjgYzjgo8s44GP44Gr44Gy44GTDQor44GL44GN44Gv44KJLOOBl+OCjeOBhg0KK+OBmeOBjOOBrOOBvizjgZjjgoXjgpPjgYTjgaENCivjgYvjgoHjgYQs44Go44GX44KEDQor44GK44GP44GkLOOBi+OBmuOBqOOBlw0KK+OBhOOBl+OBi+OCjyzjgZfjgofjgYbjgZfjgoXjgpMNCivjgZnjgY7jgYbjgoks44KC44KK44GKDQor44GG44KB44GgLOOBsuOBleOBlw0KK+OBv+OBquOBkOOBoSzjgYTjgaHjgo3jgYYNCivjgbvjgZfjga4s44Gf44GR44Gy44GTDQor44Gr44GX44KE44G+LOOBm+OBhOOBmA0KK+OBn+OBkeOBoCzjgZ/jgaTjgoQNCivjgZXjgYvjgYQs44GN44GE44Gh44KN44GGDQor44KE44Gk44GgLOOBn+OBkeOBlw0KK+OCguOCiuOBnyzjgZHjgYTjgZ7jgYYNCivjgZXjgY3jgb4s44Gq44GK44Gy44KNDQor44GC44KJ44GELOOChuOBn+OBiw0KK+OBn+OBkeOBoCzjgZ/jgYvjgZMNCivjgZ/jgoDjgoks44KI44GX44GTDQor44GK44GL44GgLOOBr+OCi+OBvw0KK+OChOOBvuOBrSzjgaHjga/jgosNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44GC44GK44GuLOOBn+OBpOOBig0KK+OBmeOBjuOChOOBvizjgYvjga3jgojjgZcNCivjgbXjgorjga/jgoks44GL44Ga44GKDQor44KP44Gf44Gq44G5LOOBruOBtuOBqA0KK+OBi+OBpCzjgaTjgYvjgZUNCivjgZXjga/jgoks44Gy44KN44G/DQor44GL44GP44GfLOOBguOBjeOBsuOBkw0KK+OBiOOBruOCguOBqCzjgZ/jgYvjgZcNCivjgo/jgZ/jgarjgbks44G+44GT44GoDQor44KE44G244GNLOOBvuOBleOBsuOCjQ0KK+OBguOBvuOBleOBjSzjgZPjgYbjgYTjgaENCivjgojjgZPjgZ8s44G+44GV44Gy44GnDQor44G744KK44Gu44GG44GhLOOBqOOBl+OBguOBjQ0KK+OBjeOBr+OCiSzjgaTjga3jgYoNCivjgZ/jgZHjgaAs44Gk44KL44G+44GkDQor44GE44Gt44GqLOOBvuOBleOBsuOBkw0KK+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgYTjgaHjgoTjgarjgY4s44Gf44Gg44GXDQor44GZ44Ga44GNLOOBl+OCh+OBhuOBkeOBhA0KK+OBquOCi+OBl+OBvizjgarjgYrjgY3jgaENCivjgZfjgonjgYTjgZcs44Gf44GL44GXDQor44GK44GuLOOBqOOBiuOCiw0KK+OCiOOBl+OBiuOBiyzjgYvjgZrjgoQNCivjgb7jgaTjgYbjgoks44Gy44KN44GL44GaDQor44G144GY44GfLOOBpuOBpOOBmA0KK+OBhOOCj+OBvyzjgajjgojjga/jgosNCivjgajjgY/jgZfjgZIs44GR44GE44GYDQor44Gf44Gq44GgLOOBjeOBv+OBsuOBkw0KK+OBiuOBi+OBrizjgYvjgZrjgb7jgZUNCivjgoLjgaHjgZrjgY0s44Gf44GL44KG44GNDQor44Gf44GL44GX44G+LOOBk+OBhuOBhOOBoQ0KK+OBqOOCiuOBhuOBvyzjgYvjgZrjgYoNCivjgZ/jgYvjgb8s44KI44GX44Gf44GLDQor44Gv44KE44GbLOOBqOOCguOChuOBjQ0KK+OBn+OBi+OBr+OCiSzjgYjjgYTjgZgNCivjgY3jgpMs44G+44GV44KG44GNDQor44GZ44GO44KE44G+LOOBsuOBp+OBsuOCjQ0KK+OBjeOBn+OBmOOBvizjgZPjgYbjgZgNCivjgavjgaPjgZ8s44KI44GX44Gu44G2DQor44GK44GLLOOChuOBjeOBruOBtg0KK+OBiuOBiuOBr+OBlyzjgbLjgo3jgZcNCivjga/jgonjgaAs44GN44Gv44Gh44KN44GGDQor44KP44GN44GV44GLLOOBsuOCjeOBlw0KK+OBhOOCj+OBquOBjCzjgZHjgYTjgYTjgaENCivjgYvjgo/jgZfjgoos44G/44Gk44GKDQor44GE44Gq44KC44GoLOOBvuOBleOBi+OBmg0KK+OBleOCjyzjgbLjgo3jgobjgY0NCivjgZ/jgZHjgaAs44Gf44GR44Gy44GTDQor44GE44GE44GgLOOCiOOBl+OBsuOBqA0KK+OBi+OBmOOBrizjgb7jgoLjgosNCivjgb/jgo8s44Gv44KL44GL44GaDQor44G144GP44GELOOBkeOBhOOBhOOBoQ0KK+OBmeOBiOOBquOBjCzjgajjgYrjgosNCivjgY/jgavjgYjjgaAs44KG44Gf44GLDQor44GN44Gf44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBhOOBqSzjgajjgYrjgosNCivjgYrjgY/jgaAs44KK44KH44GG44GZ44GRDQor44G744KK44GL44KPLOOBi+OBpOOBjQ0KK+OBmeOBiOOCguOBqCzjgabjgaTjgoQNCivjgojjgZPjgoTjgb4s44Go44GX44Gy44KNDQor44G144GY44KC44GoLOOBqOOBv+OBig0KK+OBjeOBmyzjgZfjgofjgYbjgZgNCivjgavjgZfjgoDjgoks44Gy44Gn44Gy44GTDQor44Gf44GL44GgLOOBk+OBhuOBmA0KK+OBpOOBi+OBoCzjgb7jgZXjgYvjgZoNCivjgajjgojjgaAs44GI44GE44GYDQor44GV44GuLOOBqOOBiuOCiw0KK+OBq+OBl+OBoCzjgb7jgZXjgbLjgZMNCivjgYrjgYrjgoLjgoos44GE44Gh44KN44GGDQor44GK44GW44GNLOOBqOOBiuOCiw0KK+OBhOOBl+OBvuOCiyzjgZfjgZLjgoTjgZkNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44GL44GX44KP44Gw44KJLOOBruOBvOOCiw0KK+OBguOBleOBrizjgoTjgZnjgYvjgZoNCivjgbLjgonjga4s44GX44KT44GYDQor44Gf44Gr44KE44G+LOOBpuOBpOOCjeOBhg0KK+OBhuOCgeOBsOOChOOBlyzjgZHjgpPjgZgNCivjgYrjgoDjgoks44Gy44Gn44GKDQor44GV44GL44GQ44GhLOOBjeOCiOOBi+OBmg0KK+OBiuOBi+OCgOOCiSzjgZfjgofjgYbjgZQNCivjgoTjgb7jgoLjgags44GC44GN44KJDQor44GI44Gh44GULOOBk+OCjOOBguOBjQ0KK+OBleOCj+OBoCzjgoTjgZnjgbLjgZMNCivjgojjgZPjgYQs44GL44Ga44KG44GNDQor44GN44Gf44KA44KJLOOCiuOBiw0KK+OChOOBmSzjgYvjgYrjgosNCivjgZ/jgYvjgYos44GY44KF44KT44GTDQor44GL44Gk44KJ44GK44GLLOOBl+OCk+OBnuOBhg0KK+OBpOOBvOOBhCzjgb7jgZXjgbLjgZMNCivjgaTjgZgs44GX44GS44GKDQor44Gf44GL44Gv44GXLOOBguOBjeOBig0KK+OBmeOBjuOBjSzjgZ/jgYvjgY0NCivjgZ/jgZHjgYbjgaEs44Gf44GL44Gy44KNDQor44GL44G/LOOBqOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBi+OCjyzjgoTjgZnjgbLjgZMNCivjgYLjgYrjgags44GY44Gk44GYDQor44Gf44GgLOOCiOOCiuOBkw0KK+OBsuOBoOOBiyzjga7jgorjgZMNCivjgavjgZfjgoDjgoks44Gh44GI44GTDQor44GI44Gw44KJLOOBpOOBreOBig0KK+OBv+OBmuOCguOBqCzjgYvjgZrjgoQNCivjgZnjgZrjgY0s44GN44KI44GXDQor44GX44GE44GqLOOBr+OCi+OCiOOBlw0KK+OBl+OBiuOBnyzjgb/jgaTjgbLjgZMNCivjgarjgYvjga/jgoks44GT44GG44GE44GhDQor44GU44GG44GgLOOBjeOCiOOBlw0KK+OBteOCi+OBnyzjgb7jgZXjgbLjgZUNCivjgb7jgZnjgoLjgags44GY44KF44KT44GE44GhDQor44Gq44GL44GM44KPLOOBjeOBhOOBoQ0KK+OBhOOBqSzjgZ/jgYvjgobjgY0NCivjgojjgorjgbXjgZgs44Gu44G844KLDQor44G+44Gk44KC44GoLOOBguOBjeOCiQ0KK+OBleOBhOOBqOOBhizjgY/jgavjgYLjgY0NCivjgarjgaTjgYQs44Gy44Gn44GNDQor44GG44GK44GuLOOBi+OBiuOCig0KK+OBn+OBquOBlCzjgZHjgYTjgZMNCivjgZ/jgb7jgYzjgo8s44Gu44KK44Gy44GoDQor44GK44GLLOOBn+OBi+OBlw0KK+OBteOBj+OBl+OBvizjgb7jgZXjgosNCivjgYrjgYvjgaAs44KG44GG44GTDQor44GN44Gu44GX44GfLOOBsuOBp+OBsuOBkw0KK+OBl+OBv+OBmizjgYLjgY3jgokNCivjgZPjgbDjgoTjgZcs44GN44KI44Gf44GLDQor44Gu44GgLOOBvuOBleOBlw0KK+OBi+OBruOBhizjgaTjgZDjgbLjgo0NCivjgYvjgZjjgYrjgYss44GC44GN44Gy44GoDQor44GK44GK44GuLOOBn+OBi+OBlw0KK+OBiuOBiuOBr+OBlyzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44KG44GG44GE44GhDQor44GT44GE44Ga44G/LOOBhOOBj+OBig0KK+OBn+OBquOBiyzjgbLjgajjgZcNCivjgbXjgY/jgaAs44Go44GX44KEDQor44Gq44GL44GW44KPLOOBruOBvOOCiw0KK+OBu+OCiuOBi+OCjyzjgZXjgajjgZcNCivjgYbjgaHjgoTjgb4s44KC44KK44Gy44KNDQor44GE44Ga44Gf44GrLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBjeOBhCzjgajjgZfjgZMNCivjgZ/jgYvjgZss44Gu44G244Gk44GQDQor44G+44GZ44GW44GNLOOBn+OBi+OBlw0KK+OBguOCk+OBqeOBhizjgajjgYrjgosNCivjgYvjgZ/jgY7jgoos44GX44GS44GE44Gh44KN44GGDQor44KC44KK44KE44G+LOOBqOOBl+OChA0KK+OBleOBqOOBhizjgYLjgY3jgbLjgo0NCivjgbLjgovjgYvjgo8s44GV44Go44GXDQor44GG44GI44GgLOOBvuOBleOBig0KK+OBquOBiyzjgajjgZfjgZ/jgYsNCivjgb/jgoTjgZbjgY0s44Gy44KN44GXDQor44GK44GK44GP44G8LOOBvuOBleOBn+OBiw0KK+OBn+OBoeOBi+OCjyzjgb7jgZPjgagNCivjgo/jgZ/jgarjgbks44G/44Gh44Gq44GKDQor44GC44GV44GL44KPLOOBm+OBhOOBmA0KK+OBi+OCj+OBr+OCiSzjgb7jgZXjgoQNCivjgYrjgZXjgaAs44Gv44GY44KBDQor44GV44GL44GELOOBr+OCi+OBig0KK+OBj+OCiuOChOOBvizjgZXjgarjgYgNCivjgZXjgYTjgajjgYYs44GT44Ga44GIDQor44GZ44GN44GM44KJLOOCiOOBl+OBkw0KK+OBguOBkeOBsizjgY/jgb/jgZMNCivjga/jgoTjgZcs44GN44KI44G/DQor44GL44KP44GfLOOBquOBiuOBvw0KK+OBl+OBvuOBjOOBjSzjgb/jgZXjgYgNCivjgbvjgoos44GL44Ga44KIDQor44Gu44KA44KJLOOCiOOBl+OBkw0KK+OBqOOCgOOCiSzjgZfjgpPjgYTjgaENCivjgY/jgbws44GN44KI44GTDQor44Gr44GX44KC44GoLOOBruOCiuOBsuOBqA0KK+OCiOOBl+OBoCzjgZPjgYbjgZgNCivjgZXjgY4s44Gf44GL44KI44GXDQor44GL44KT44GuLOOBkeOBhOOBkw0KK+OChOOBtuOBrizjgb7jgZXjgY0NCivjgoTjgZnjgarjgYws44Gy44KN44KG44GNDQor44Gy44GM44GX44GG44GILOOBsuOCjeOBsuOBqA0KK+OBk+OBleOBjSzjgb7jgZXjgobjgY0NCivjgarjgYss44Go44GX44Gy44KNDQor44GK44GuLOOBqOOBiuOCiw0KK+OCgOOCieOBnyzjgZPjgYbjgZ7jgYYNCivjgZfjgofjgYbjgZgs44Gy44Gn44GC44GNDQor44GL44KP44KC44GoLOOBguOBjeOBsuOCjQ0KK+OBiOOBleOBjSzjgb7jgZXjgosNCivjgYjjgYTjganjgoEs44Gy44Gn44GL44GaDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OCguOBqOOChOOBvizjgoTjgZnjgYvjgZoNCivjga/jgb7jgaAs44GC44GN44KJDQor44GT44GX44GL44KPLOOBqOOBl+OBig0KK+OBr+OChOOBlyzjgb7jgZXjga/jgosNCivjgoTjgb7jgZbjgY0s44KG44GN44KEDQor44G+44Gk44KC44GoLOOCiOOBl+OBvuOBlQ0KK+OBiuOBrizjgZfjgpPjgYTjgaENCivjga/jgarjgo8s44Gf44Gg44GXDQor44Gv44Gb44GM44KPLOOBkeOBhOOBmA0KK+OBv+OChOOBnyzjgb7jgZXjgYLjgY0NCivjgY3jgZ/jgZbjgo8s44G+44GV44GL44GaDQor44GI44KT44GpLOOChOOBmeOBsuOBkw0KK+OBquOBjOOBleOBiyzjgojjgZfjgYLjgY0NCivjgojjgZfjgoLjgags44Gy44KN44G/44GkDQor44GP44KN44GV44KPLOOBkeOCk+OBleOBjw0KK+OBvuOCi+OChOOBvizjgojjgZfjga/jgosNCivjgarjgYvjgavjgZcs44GL44Ga44KG44GNDQor44KI44GX44GgLOOBkeOBhOOBhOOBoQ0KK+OBteOBj+OBnyzjgbLjgafjgoQNCivjgbXjgZjjgZXjgo8s44GL44Gk44Gy44GTDQor44GV44GP44G+LOOCiOOBl+OBr+OCiw0KK+OBr+OBl+OCguOBqCzjgYvjgaTjgb8NCivjgo/jgaAs44G+44GV44GK44G/DQor44Gr44GX44GW44GNLOOBruOBtuOBig0KK+OBteOBi+OBjOOCjyzjgYjjgaTjgZMNCivjgYLjgYrjgoTjgb4s44G+44GV44GL44GaDQor44GN44KI44Gf44GrLOOBpOOBqOOCgA0KK+OBqOOCiuOBr+OCiSzjgbLjgo3jgobjgY0NCivjgarjgYzjga4s44Gf44GR44GXDQor44GK44GK44GMLOOChuOBn+OBiw0KK+OBleOBi+OBrizjgZ/jgYvjgZcNCivjgb/jgaTjga/jgZcs44G+44GV44Gy44KNDQor44GC44KK44KC44GoLOOBm+OBhOOBkw0KK+OCiOOBl+OBvuOBpCzjgZ/jgYvjgYLjgY0NCivjgYLjgYrjgoTjgY4s44GC44GN44GKDQor44KE44G+44GgLOOBvuOBleOBsuOBkw0KK+OCgOOCieOBnyzjgobjgb/jgZMNCivjgYTjgorjgYgs44GX44KT44GE44GhDQor44KE44G+44GW44GNLOOBvuOBleOBruOCig0KK+OBiOOBnuOBiCzjgZHjgYTjgYTjgaENCivjgZXjgajjgYYs44Gk44KI44GXDQor44GK44GK44GfLOOBjeOCiOOBlw0KK+OBhOOBruOBhizjgoLjgorjgbLjgagNCivjgYvjgaks44Gf44Gk44KEDQor44GV44GV44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OBkeOBsizjgojjgZfjgbLjgo0NCivjgaTjgaHjgoQs44GL44Ga44KEDQor44G+44GV44GK44GLLOOBl+OCh+OBhuOBnuOBhg0KK+OBmeOBmuOBjSzjgoTjgZnjgYoNCivjgajjga0s44Go44G/44Gy44KNDQor44GK44GK44KP44GgLOOBruOCiuOBguOBjQ0KK+OBhuOBiOOBjSzjgb7jgZXjgagNCivjgb7jgYjjgaAs44GL44Ga44Gu44KKDQor44G144GY44GK44GLLOOChOOBmeOBkw0KK+OBhuOCieOBuSzjgarjgYrjgZMNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44GE44GV44GLLOOBvuOBleOBguOBjQ0KK+OBq+OBl+OBleOBiyzjga7jgbbjgYoNCivjgYTjgo/jgZUs44GI44GE44GE44GhDQor44Gf44GP44GX44G+LOOCiOOBl+OBig0KK+OBpOOBi+OCguOBqCzjgbXjgb/jgYoNCivjgZXjgY/jgb4s44Gf44GR44Gy44GTDQor44Gy44KH44GG44Gp44GGLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZXjgZXjgY0s44G+44GV44GKDQor44G144GP44KP44GNLOOBqOOBl+OChA0KK+OBiuOBj+OCgOOCiSzjgb7jgZXjgojjgZcNCivjgZ/jgYvjga/jgZcs44Go44KI44Gy44GTDQor44GX44KN44GELOOChOOBmeOBlw0KK+OBk+OBi+OBtizjgZ/jgaDjgYoNCivjga7jgZDjgaEs44Gy44KN44GNDQor44Gf44GL44GkLOOBsuOCjeOBi+OBmg0KK+OCiOOBreOBluOCjyzjgabjgaTjgoQNCivjgZXjgYvjgYTjgaAs44KE44GZ44Gy44KNDQor44GT44GE44Ga44G/LOOBv+OBpOOChA0KK+OBvuOBiOOBoCzjgYvjgaTjgobjgY0NCivjgb7jgpPjgaAs44Gf44Gg44GXDQor44GT44GQ44KMLOOBhOOBoeOCjeOBhg0KK+OBguOBjeOCguOBqCzjgojjgZfjgagNCivjgZ/jgZHjgoDjgoks44Go44KC44GC44GNDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OChOOBvuOBhuOBoSzjgZjjgoXjgpPjgYTjgaENCivjgZXjgYjjgY0s44KG44GG44GYDQor44KP44GL44Gw44KE44GXLOOBruOBtuOChuOBjQ0KK+OBguOBjeOCguOBqCzjgb7jgZXjgbLjgZMNCivjgojjgZfjgaAs44Gy44KN44GC44GNDQor44GV44Go44GGLOOBpOOBreOBig0KK+OBiuOBl+OBvizjgoTjgZnjgajjgZcNCivjgZXjgZXjgY0s44G+44GV44Gy44GnDQor44GC44KJ44GELOOBguOBjeOBsuOBpw0KK+OCj+OBn+OBquOBuSzjgabjgaTjgZgNCivjgYTjgZHjgoLjgags44KG44GN44GKDQor44GN44GP44GELOOBk+OBhuOBhOOBoQ0KK+OBsuOCieOBnyzjgbLjgo3jgb8NCivjgb7jgY3jgYbjgaEs44Gf44GP44KEDQor44GT44Gb44GNLOOBl+OCjeOBhg0KK+OBq+OBl+OBi+OCjyzjgoTjgZnjgbLjgo0NCivjgYTjgYzjgonjgZcs44G144G/44GKDQor44Gf44Gq44GLLOOBn+OBoOOBpOOBrQ0KK+OBu+OCk+OBoCzjgYjjgYTjgYTjgaENCivjga/jgaPjgZ8s44Gy44KN44G/DQor44Gv44KJ44GgLOOBsuOBleOBi+OBmg0KK+OCiOOBl+OBoCzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44GT44GE44Ga44G/LOOCiuOCh+OBhuOBhOOBoQ0KK+OBk+OBmeOBoCzjgarjgYrjgbLjgZUNCivjgb/jgoTjgZEs44G+44GV44GC44GNDQor44G144GY44KELOOBn+OBkeOBlw0KK+OBvuOBleOBjSzjgYLjgY3jgokNCivjgZXjgY/jgonjgYQs44Gy44Gn44GNDQor44Gr44GX44KE44G+LOOCiOOBl+OBig0KK+OBi+OCj+OBmyzjgZ/jgYvjga7jgbYNCivjgYrjgYvjgZbjgo8s44GX44KT44KEDQor44GC44GV44GLLOOBqOOBl+OChuOBjQ0KK+OBiuOBjOOCjyzjga7jgbbjgYLjgY0NCivjgarjgYzjgZXjgo8s44Gv44GY44KBDQor44GN44Gf44KP44GNLOOBvuOBleOBig0KK+OBl+OBv+OBmizjgb7jgZXjga7jgooNCivjgZPjgbDjgoTjgZcs44G+44GV44Gv44KLDQor44Gf44Gh44Gw44GqLOOBl+OBkuOBkw0KK+OBhOOBvuOBquOBiyzjgZXjgajjgb8NCivjgYbjgZfjgb7jgoss44GR44KTDQor44GK44GL44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBrizjgobjgYbjgYTjgaENCivjgY3jgZ/jgoDjgoks44G/44Gh44GL44GaDQor44Gf44GL44G+44GkLOOBsuOBp+OBjQ0KK+OBqOOBjeOBi+OCjyzjgYvjgZrjgbLjgacNCivjgYTjgZHjgaAs44Go44GX44KEDQor44GE44GX44GgLOOBruOBtuOBn+OBiw0KK+OBn+OBq+OBr+OCiSzjgb/jgaTjgY4NCivjgYrjgYzjgo8s44Gy44Go44GXDQor44Gf44Gq44GLLOOBl+OCh+OBhuOBmeOBkQ0KK+OBquOBiyzjgZHjgYTjgZMNCivjgajjgoLjgZbjgo8s44Gu44G244GTDQor44Gv44KJ44GgLOOBm+OBpOOBkw0KK+OBr+OBquOBtuOBlSzjgYLjgaTjgZMNCivjgajjgY/jgYrjgYss44GC44Gk44GXDQor44G544Gj44GX44KHLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBl+OBvizjgYvjgaTjgbLjgZMNCivjgYLjgZXjgY/jgoks44KE44GZ44Gy44GTDQor44G/44KE44Gn44KJLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgarjgYrjgY0NCivjgojjgZfjgoDjgoks44KI44GX44Gy44GVDQor44GV44KPLOOBvuOBleOChuOBjQ0KK+OBquOBi+OChOOBvizjgZPjgYbjgYTjgaENCivjgbLjgonjgZbjgo8s44KI44GX44Gy44KNDQor44G144GY44KP44KJLOOBvuOBleOBguOBjQ0KK+OBmeOBjOOCj+OCiSzjgajjgYrjgosNCivjgZ/jgavjgYzjgo8s44G+44KK44GKDQor44G744KT44GgLOOChOOBmeOBqA0KK+OBr+OBquOBhCzjgZPjgYbjgYTjgaENCivjgYjjgZDjgaEs44GV44GP44KB44GEDQor44GL44GV44GELOOCiOOBhuOBhOOBoQ0KK+OBj+OCjeOBleOCjyzjgbLjgo3jgZcNCivjgZ/jgZjjgb4s44GX44KTDQor44GV44Go44GGLOOBn+OBpOOBlw0KK+OBsuOBs+OBrizjgaTjga3jgYoNCivjgZnjgYzjgoQs44GX44KF44GGDQor44GP44KJ44GfLOOBk+OBhuOBhOOBoQ0KK+OBvuOBmeOBoCzjga/jgovjgY0NCivjgZnjgY7jga/jgoks44GR44GE44GTDQor44GL44Gt44GTLOOCiOOBl+OChuOBjQ0KK+OBi+OBpCzjgZ/jgYvjgZcNCivjgb7jgoss44Gy44KN44KEDQor44Gf44Gq44GLLOOBsuOBp+OBi+OBmg0KK+OBqOOBl+OBiuOBiyzjgYLjgY3jgokNCivjgZfjgZLjga4s44KK44KH44GG44GYDQor44KE44G+44KC44GoLOOBleOBqOOBvw0KK+OBquOBi+OBjOOCjyzjgYvjgaTjgb8NCivjgoTjgb7jgZDjgaEs44Gy44KN44GNDQor44GL44KP44KC44KKLOOCiOOBl+OBsuOCjQ0KK+OCgOOCieOChOOBvizjgb7jgZXjgosNCivjgZfjgoXjgYYs44Gq44GK44KEDQor44GE44GR44GgLOOBsuOCjeOChuOBjQ0KK+OBk+OBoOOBvizjgZ/jgaTjgYoNCivjgYvjgajjgYYs44GV44Go44KLDQor44Gv44GP44Gh44KH44GGLOOBhOOBleOBig0KK+OBi+OBkuOCkyzjgYvjgYrjgosNCivjgabjgZrjgYss44GT44GG44GYDQor44Gf44Gr44GQ44GhLOOBvuOBleOBn+OBkQ0KK+OBpuOCieOBoCzjgarjgYrjgY0NCivjgYvjgajjgYYs44Gf44GL44GNDQor44Gq44GE44Go44GGLOOBn+OBkeOBig0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44Gf44Gq44GLLOOBsuOBp+OBqOOBlw0KK+OBleOBleOBjSzjgo/jgZ/jgosNCivjgbvjgpPjgaAs44G/44Gh44GoDQor44Gy44GI44GgLOOBguOBjeOBig0KK+OBleOBi+OBhCzjgYvjgZrjga7jgooNCivjgYvjgaTjgb8s44Gf44GL44GXDQor44Gf44GR44G5LOOBn+OBi+OBlw0KK+OBruOBkOOBoSzjgaTjgojjgZcNCivjgo/jgaAs44GI44GE44GYDQor44GG44GI44KE44G+LOOBkeOCk+OBmA0KK+OBhuOBiOOBrizjgZ/jgYvjgbLjgo0NCivjgZ/jgpPjgZQs44Gy44Gn44GKDQor44KA44KJ44GL44G/LOOBi+OBpOOBvw0KK+OBguOCieOBjSzjgZPjgYbjgZ7jgYYNCivjgYLjgonjgZss44G+44GZ44Gy44KNDQor44KE44G+44KC44GoLOOBl+OCjeOBhg0KK+OCj+OBl+OBiizjgbLjgo3jgobjgY0NCivjgo/jgZHjgZjjgb4s44KI44GX44G144G/DQor44GT44GE44Ga44G/LOOBkeOCk+OBmeOBkQ0KK+OBqOOBj+OChOOBvizjgajjgZfjgbXjgb8NCivjgajjgb/jgarjgYws44GR44KT44GYDQor44GN44GX44GgLOOBm+OBhOOBmA0KK+OBkeOCkyzjgb/jgaHjgbLjgo0NCivjgbLjgo3jgZss44KI44GX44KG44GNDQor44GG44Gh44KE44G+LOOBkeOCk+OBhOOBoQ0KK+OCj+OBi+OBmeOBjizjgZ/jgaDjgZ/jgYsNCivjgYTjgZfjgZDjgo0s44GL44Gk44Gu44KKDQor44Gr44GX44KA44KJLOOBsuOCjeOBi+OBmg0KK+OBhOOBruOBvuOBnyzjgYvjgYrjgosNCivjgaTjgaTjgb8s44Go44GX44Gy44GTDQor44GE44KK44GILOOBguOBpOOBlw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgYoNCivjgYbjgYjjga4s44GX44KT44GE44GhDQor44G744KT44GgLOOBiuOBleOCgA0KK+OBjeOBn+OCgOOCiSzjgYvjgojjgZMNCivjgoTjgb7jgYzjgb8s44Gq44G/DQor44Gq44GL44Gr44GXLOOBvuOBleOBsuOCjQ0KK+OBhuOBiOOBoCzjgZ/jgYvjgZcNCivjgbLjgo3jgZ8s44KP44Gf44KLDQor44GG44GI44GgLOOBqOOCguOBjQ0KK+OBhOOBkeOBoCzjgbLjgo3jgZcNCivjga/jgarjgbbjgZUs44KI44KK44Gu44G2DQor44GT44Gg44G+LOOBsuOCjeOBguOBjQ0KK+OBiuOBi+OCguOBqCzjgarjgYrjgY0NCivjgZnjgZrjgY0s44Gy44KN44G/44GkDQor44GZ44Ga44GNLOOBsuOBleOBiA0KK+OBq+OBhOOBj+OCiSzjgYLjgY3jgbLjgo0NCivjgavjgZfjgaAs44Gy44KN44Gy44GVDQor44GK44GV44G5LOOBmOOCheOCk+OBhOOBoQ0KK+OBu+OBneOBi+OCjyzjgZHjgpPjgYTjgaENCivjgYTjgb7jgYos44KI44GG44GE44GhDQor44G144GY44GfLOOCiOOBl+OBruOBtg0KK+OBiuOBiuOBrizjgojjgZfjga7jgooNCivjgarjgYvjgoTjgb4s44KI44GX44GKDQor44Gv44KE44GXLOOBkeOBhOOBmA0KK+OBmeOBjOOBr+OCiSzjgYvjgZrjga7jgooNCivjga/jgonjgaAs44GE44Gh44KN44GGDQor44GC44G5LOOBl+OCheOCk+OBhOOBoQ0KK+OBguOBuSzjgZHjgYTjgYTjgaENCivjgYLjgbks44GR44KT44GE44GhDQor44GC44Gg44GhLOOBn+OBoOOBsuOCjQ0KK+OBguOBhOOBsCzjgaDjgYTjgZnjgZENCivjgYLjgYvjgbDjga0s44GL44Ga44GKDQor44GC44KT44Gp44GGLOOBiOOBhOOBuw0KK+OBguOCk+OBqeOBhizjgajjgoLjgobjgY0NCivjgYLjgYrjgY0s44G+44GV44GXDQor44GX44GE44GNLOOBsuOCjeOBlw0KK+OBguOCieOBhCzjgZfjgofjgYbjgYTjgaENCivjgYLjgonjgYQs44Go44GK44KLDQor44GC44KJ44GELOOBn+OBkeOBlw0KK+OBguOCieOBi+OCjyzjgYTjgZXjgYoNCivjgYLjgonjgY0s44Gf44Gk44KEDQor44GC44KJ44GNLOOBn+OBi+OChuOBjQ0KK+OBguOCieOBjSzjgY3jgojjga/jgosNCivjgYLjgonjgY0s44GL44Ga44GC44GNDQor44GC44KJ44G+44GNLOOBvuOBjeOBig0KK+OBguOCieOCgSzjgZ/jgYvjga0NCivjgYLjgorjgoDjgoks44Gf44GR44GXDQor44GC44GV44G/LOOBl+OCheOBhuOBhOOBoQ0KK+OBguOBmuOBvizjgbLjgo3jgojjgZcNCivjgbDjgbAs44Gy44Gn44GL44GaDQor44Gw44GwLOOCguOBqOOBkw0KK+OBoeOBsCzjga7jgbbjgYLjgY0NCivjgaHjgbAs44GT44GG44GE44GhDQor44Gh44GuLOOBqOOCguOChuOBjQ0KK+OBoOOBhOOBk+OBjyzjgojjgZfjga7jgbYNCivjgafjgZDjgaEs44Gy44KN44Gu44KKDQor44Gn44GNLOOCiOOBl+OBguOBjQ0KK+OBqeOBhCzjga7jgbbjgbLjgZMNCivjgYjjgaDjgZXjgo8s44Gy44Gn44GNDQor44GI44GQ44GhLOOCiOOBl+OBquOCig0KK+OBiOOCk+OBqSzjgYvjgZrjgo0NCivjgYjjgpPjgaks44G+44GV44GKDQor44GI44KK44GL44KPLOOChuOBhuOBkw0KK+OBteOBmOOBhCzjgbLjgo3jgZcNCivjgbXjgZjjgoLjgags44Gy44Gn44GoDQor44G144GY44KC44GoLOOBvuOChuOBvw0KK+OBteOBmOOBrizjgojjgZfjgYLjgY0NCivjgbXjgYvjga/jgoks44GC44GN44KJDQor44G144GL44G/LOOBquOBiuOBjQ0KK+OBteOBi+OChOOBvizjga7jgbbjgobjgY0NCivjgbXjgY/jgaAs44G+44GV44KG44GNDQor44G144GP44GELOOBvuOBleOBsuOBkw0KK+OBteOBj+OCguOBqCzjgbLjgo3jgZcNCivjgbXjgY/jgarjgYws44G+44GV44Gy44GTDQor44G144GP44GX44G+LOOBruOBtuOBig0KK+OBteOBj+OBl+OBvizjgYvjgZrjgZ/jgYsNCivjgbXjgarjgY0s44GV44GL44GIDQor44G144Gq44GNLOOChOOBmeOBteOBvw0KK+OBteOCi+OChCzjgYTjgZXjgYoNCivjgZTjgYbjga/jgoks44KI44GX44Gy44GVDQor44GU44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBjCzjgZ/jgaDjgZcNCivjga/jgY7jga4s44GL44Ga44KNDQor44GE44Gh44KA44KJLOOBvuOBk+OBqA0KK+OBr+OBvizjgarjgYrjgY0NCivjga/jgarjgaAs44G+44GV44KI44GXDQor44GE44GwLOOBjeOCiOOBleOBoA0KK+OBr+OBm+OBuSzjgYvjgaTjgbjjgYQNCivjga/jgZvjgYzjgo8s44Go44GX44KN44GGDQor44Gv44GX44KC44GoLOOBruOCiuOBguOBjQ0KK+OBr+OBlyzjgarjgYrjgYLjgY0NCivjga/jgZ/jga4s44Gu44G244Gy44KNDQor44Gv44Go44KKLOOBl+OCk+OBn+OCjeOBhg0KK+OBr+OChOOBlyzjgYLjgY3jgbLjgZMNCivjga/jgoTjgZcs44GT44GG44GYDQor44Gy44Gg44GLLOOBi+OBmuOBkw0KK+OBsuOBjOOBlyzjgY3jgojjgZ/jgYsNCivjgb7jga4s44KI44GX44GL44GaDQor44Gy44KJ44GELOOCiOOBl+OBn+OBiw0KK+OBi+OBv+OBleOBjSzjgajjgZfjgbLjgZMNCivjgbLjgonjga4s44G+44GV44Gy44GTDQor44Gy44KN44GELOOBsuOBp+OBig0KK+OBsuOCjeOCguOCiizjgojjgZfjga/jgosNCivjgbLjgo3jgZXjgo8s44GC44Gk44GXDQor44Gy44KN44GV44KPLOOBiuOBleOCgA0KK+OBsuOCjeOBmyzjgZfjgpPjgYTjgaENCivjgbvjgpPjgaAs44KI44GGDQor44G744KT44G+LOOBsuOCjeOChOOBmQ0KK+OBu+OCiuOBuSzjgZfjgZLjgosNCivjgbvjgorjgYgs44Gy44KN44GXDQor44G744KK44GQ44GhLOOChuOBhuOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgajjgZfjgbLjgacNCivjgbvjgoos44Gv44GY44KBDQor44G744KKLOOBsuOCjeOBvw0KK+OBu+OBl+OBi+OCjyzjga7jgorjgobjgY0NCivjgbvjgZ3jgYvjgo8s44GZ44GZ44KADQor44Gy44KH44GG44Gp44GGLOOBvuOBleOBr+OCiw0KK+OBhOOBsOOCieOBjSzjgobjgYbjgYTjgaENCivjgYTjgaHjgYrjgYss44GC44Gk44G144G/DQor44GE44GR44GgLOOBn+OBi+OBsuOBqA0KK+OBhOOBvuOBhCzjgojjgZfjgZ/jgYsNCivjgYTjgb7jgoDjgoks44Gf44GL44GC44GNDQor44GE44G+44Gq44GLLOOBqOOCguOChA0KK+OBhOOBquOBoCzjgbLjgo3jgZcNCivjgYTjgarjgoDjgoks44GT44GG44GE44GhDQor44GE44Gu44GG44GILOOBleOBqOOCiw0KK+OBguOCieOBhCzjgajjgZfjgb8NCivjgYTjga7jgYbjgYgs44GI44GE44GYDQor44GE44GX44GELOOBjeOCiOOBvw0KK+OBhOOBl+OBhCzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44G/44GN44GKDQor44GE44GX44GL44KPLOOBguOBjeOCiQ0KK+OBhOOBl+OBiuOBiyzjgb7jgZPjgagNCivjgYTjgZ3jgaAsDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBhOOBqOOBhizjgaHjgZrjgZMNCivjgYTjgajjgYYs44GL44Ga44Gy44GoDQor44GE44Go44GELOOBn+OBoOOBlw0KK+OBhOOBqOOBhizjgZfjgpPjgZgNCivjgYTjgo/jgYQs44GC44GN44KJDQor44GE44Ga44G/44KELOOBvuOBleOBruOCig0KK+OBi+OBmOOBnyzjgZXjgajjgZcNCivjgYvjgoHjgYQs44GX44KT44GYDQor44GL44Gq44GELOOBvuOBleOBsuOCjQ0KK+OBi+OBquOBluOBlyzjga7jgorjgZMNCivjgYvjga3jgZMs44Gf44GR44GXDQor44GL44Gt44GTLOOBvuOBk+OBqA0KK+OBi+OBruOBhizjgYTjgY/jgYoNCivjgYvjgorjgYYs44GX44GS44GYDQor44Gk44GN44GYLOOBn+OBi+OBruOCig0KK+OBi+OBleOBvuOBpCzjgbLjgo3jgobjgY0NCivjgYvjgZ/jgY7jgZcs44G+44GV44GXDQor44GL44Gf44KE44G+LOOBguOBjeOCiQ0KK+OBi+OBn+OChOOBvizjgabjgaTjgoHjgYQNCivjgYTjgZ3jgaAs44Gf44GL44GKDQor44GL44Gf44KE44G+LOOBk+OBhuOBmA0KK+OBi+OBqOOBhizjgZXjgaTjgYoNCivjgYvjgajjgYYs44G+44GT44GoDQor44GL44Go44GGLOOChOOBmeOBlw0KK+OBi+OBqOOBhizjgaHjgYgNCivjgYvjgaTjgb7jgZ8s44Gf44GP44KEDQor44GL44KP44G5LOOChuOBjeOBruOBtg0KK+OBi+OCj+OBuSzjgYLjgaTjgZcNCivjgYvjgo/jgbks44KA44Gt44Gy44GoDQor44GL44KP44GgLOOBkeOCk+OBmeOBkQ0KK+OBi+OCj+OBoCzjgYLjgY3jgbLjgZMNCivjgYvjgo/jgoLjgags44GC44GN44GKDQor44GL44KP44Gf44GrLOOBm+OBhOOBjQ0KK+OBjeOBv+OBmuOBiyzjgb/jgaHjgo0NCivjgY3jgoDjgoks44GL44Ga44KEDQor44GN44KA44KJLOOCiuOCh+OBhuOBn+OCjeOBhg0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgo0NCivjgY3jgZXjgYss44Gy44Gn44GKDQor44GN44GX44GgLOOBn+OBi+OBkw0KK+OBjeOBn+OBjOOCjyzjgY3jgofjgYbjgYTjgaENCivjgY3jgZ/jgoDjgoks44KI44GX44Gy44KNDQor44GN44GfLOOBsuOBp+OBqA0KK+OBjeOCiOOBrizjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GL44Gk44Gu44KKDQor44GT44Gg44G+LOOBi+OBmuOBquOCig0KK+OBqeOBsizjgbLjgonjgoTjgZkNCivjgZPjga/jgoks44G+44GV44GNDQor44GT44GE44GnLOOBqOOBl+OChA0KK+OBk+OBhOOCjyzjgbLjgofjgYbjgZgNCivjgZPjgYTjgZrjgb8s44Gv44KL44GTDQor44GT44G+44GkLOOChOOBmeOBn+OBiw0KK+OBk+OCgeOBoCzjgbLjgo3jgobjgY0NCivjgZPjgpPjgaks44G/44GNDQor44GT44KT44GpLOOBqOOBiuOCiw0KK+OBk+OBq+OBlyzjgZjjgoXjgpPjgZgNCivjgZPjgZXjgYss44Gy44KN44GC44GNDQor44GT44Gf44GNLOOBmOOCheOCkw0KK+OBk+OBn+OBqyzjgbLjgafjgY0NCivjgZPjgajjgbbjgY0s44Gy44KN44GXDQor44Gf44GX44KNLOOBi+OBmuOBruOCig0KK+OBj+OBvOOBnyzjgobjgY3jgb7jgZUNCivjgY/jgbws44Gm44Gk44KEDQor44GP44Gp44GGLOOBvuOBleOBqA0KK+OBj+OBvuOBjOOBhCzjgoTjgZnjgbLjgo0NCivjgY/jgo3jgZss44GK44GV44KADQor44GP44GX44G+LOOChOOBmeOBkw0KK+OBj+OBl+OBv+OChCzjgZPjgYbjgY0NCivjgY/jgaTjgYvjgZEs44GX44KT44GE44GhDQor44GP44KP44GuLOOBl+OCheOBhuOBnuOBhg0KK+OBvuOBpOOBquOBjCzjgbLjgafjgY0NCivjgb7jgYjjgaAs44KG44GG44GYDQor44G+44GI44Gv44KJLOOBleOBqOOBlw0KK+OBiOOBruOBjSzjgajjgZfjgoQNCivjgb7jgYjjgYvjgo8s44GT44GG44GY44KN44GGDQor44G+44GI44GNLOOBguOChOOBkw0KK+OBvuOCk+OBrizjgZfjgpPjgY4NCivjgb7jga4s44GI44GE44GYDQor44G+44KT44Gf44GrLOOCiOOBhuOBhOOBoQ0KK+OBvuOCi+OChOOBvizjgoTjgZnjgbLjgo0NCivjgb7jgZss44GL44Ga44Gy44GTDQor44G+44GZ44GW44KPLOOBvuOBleOBig0KK+OBvuOBpOOBoCzjgb/jgaTjga7jgooNCivjgb7jgaTjgYQs44GE44Gk44GTDQor44G+44Gk44GELOOBvuOBleOBqA0KK+OBvuOBpOOCguOBqCzjgoTjgZnjgYLjgY0NCivjgb7jgaTjgoDjgoks44GL44Ga44GC44GNDQor44G+44Gk44GuLOOBruOCiuOChuOBjQ0KK+OBvuOBpOOBluOBjSzjgozjgYTjgZMNCivjgb/jgY0s44GX44GS44KLDQor44G/44GT44GgLOOBpuOCi+OChuOBjQ0KK+OBv+OCgOOCiSzjgYvjgZrjgZ/jgYsNCivjgb/jgoDjgoks44GX44GS44Gu44G2DQor44G/44Gq44G/LOOBleOBqOOBlw0KK+OBv+OBquOBvyzjga7jgbbjgbLjgo0NCivjgb/jgarjgags44KE44GZ44GXDQor44G/44Gt44G+44GkLOOBruOCiuOBkw0KK+OBv+OBrSzjgb7jgZXjgZ/jgYsNCivjgb/jgZfjgb4s44Gy44KN44KG44GNDQor44G/44KPLOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBkOOBoSzjgZ/jgYvjgbLjgo0NCivjgb/jgojjgZcs44KG44GG44GTDQor44G/44Ga44GfLOOBmOOCheOCk+OBkw0KK+OCguOCguOBruOBhCzjgZHjgYTjgZnjgZENCivjgbvjgpPjgaAs44Gf44GR44GXDQor44KC44KK44GfLOOChOOBmeOBlw0KK+OCguOCiuOBnyzjgYLjgY3jgbLjgZMNCivjgoLjgoos44GC44GN44KJDQor44KC44KKLOOBguOBpOOBlw0KK+OCguOCiizjgYvjgZrjgbLjgo0NCivjgoLjgoos44G/44Gu44KLDQor44KC44KKLOOBn+OBi+OBlw0KK+OCgOOBreOCgOOCiSzjgajjgZfjgb/jgaQNCivjgoDjgonjgYvjgb8s44KI44GG44GYDQor44KA44KJ44GK44GLLOOBk+OBhuOBmA0KK+OBv+OCh+OBhuOBjCzjgbLjgo3jgY0NCivjgarjgYzjgb/jga0s44G+44GV44GXDQor44KE44G+44GgLOOBl+OCk+OBhOOBoQ0KK+OBquOBjOOBiizjgajjgZfjgYvjgZoNCivjgarjgYzjgZ8s44GR44KT44GYDQor44Gq44GE44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OBjOOCjyzjgZ/jgo3jgYYNCivjgarjgYvjgYTjgaEs44Gy44KN44Gu44KKDQor44GV44GV44GNLOOBpOOBi+OBlQ0KK+OBquOBi+OBmOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZfjgb4s44Gd44GG44Gf44KN44GGDQor44Gq44GL44GT44GYLOOBn+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgbXjgb8NCivjgarjgYvjgoDjgoks44GV44Go44GXDQor44Gq44GL44KA44KJLOOBqOOBiuOCiw0KK+OBquOBi+OCgOOCiSzjgZjjgoXjgpMNCivjgarjgYvjgoDjgoks44Gg44GE44GZ44GRDQor44Gq44GL44KA44KJLOOChuOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgojjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44GP44G/44GTDQor44Gq44GL44Gr44GXLOOBqOOBl+OChuOBjQ0KK+OBquOBi+OBrizjgabjgaTjgoQNCivjgarjgYvjga4s44GN44KT44KEDQor44Gq44GL44GX44GKLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OBnyzjgYvjgarjgZMNCivjgarjgYvjgoTjgb4s44Gf44GL44GXDQor44Gq44KT44GRLOOBguOBpOOBlw0KK+OBquOCieOBluOBjSzjgZ/jgYTjgaHjgo3jgYYNCivjgarjgorjgZss44KG44GN44Gy44KNDQor44Gq44KL44GK44GLLOOBhOOBleOCgA0KK+OBreOCguOBqCzjgZ/jgaDjgZcNCivjgavjgoDjgoks44GZ44GZ44KADQor44Gr44KA44KJLOOBvuOBleOChuOBjQ0KK+OBq+OBl+OCgOOCiSzjgaTjgajjgoANCivjgavjgZfjga4s44GL44Ga44G+44GVDQor44Gr44GX44GX44GfLOOBpuOBpOOBruOCig0KK+OBq+OBl+OBhuOBoSzjgZfjgoXjgYbjgYTjgaENCivjgavjgZfjgoTjgb4s44Gq44GK44Gy44GoDQor44KE44GY44G+LOOCiOOBl+OBiA0KK+OBq+OBl+OBluOCjyzjgobjgZ/jgYsNCivjgavjgo8s44GC44GN44KJDQor44Gu44G244Gq44GMLOOBv+OBpOOBlw0KK+OBruOBjOOBvyzjgb7jgZPjgagNCivjga7jgZDjgaEs44GX44KT44GE44GhDQor44Gu44GQ44GhLOOBv+OChuOBjQ0KK+OBruOBvizjgajjgojjgb8NCivjga7jgb4s44GT44GG44GE44GhDQor44Gu44KA44KJLOOBk+OBhuOBmA0KK+OBruOCgOOCiSzjga7jgorjgYoNCivjga7jgoDjgoks44GX44KF44KT44GE44Gh44KN44GGDQor44Gu44GbLOOBn+OBoOOBguOBjQ0KK+OBruOBluOCjyzjgojjgYbjgYTjgaENCivjgazjgY3jgYQs44GL44Gk44G/DQor44Gs44G+44GKLOOBguOBjeOCiQ0KK+OBrOOBvuOBnyzjgYvjgZrjgbLjgo0NCivjgYrjgaHjgYLjgYQs44Gf44GL44KG44GNDQor44GK44Gh44GC44GELOOCiOOBl+OBig0KK+OBiuOBoOOBr+OCiSzjgYTjgY/jgYoNCivjgYrjgaAs44G/44Gu44KLDQor44GK44GM44GV44KP44KJLOOBl+OCheOBhuOBmA0KK+OBiuOBqeOBvuOCiizjgajjgYbjgYTjgaHjgo3jgYYNCivjgYrjgYvjgaks44G144G/44GKDQor44GK44G+44GVLOOBguOBjeOCiQ0KK+OBiuOBquOBjCzjgbLjgo3jgobjgY0NCivjgYrjgYrjga4s44Gy44Gn44KG44GNDQor44GK44GK44GV44GNLOOBguOBpOOBlw0KK+OBiuOBiuOBleOCjyzjgbLjgafjgZ/jgYsNCivjgYrjgYrjgZnjgb8s44GL44Ga44KG44GNDQor44KE44G+44GX44GfLOOBvuOBleOCiw0KK+OBiuOBiuOBnyzjgarjgpPjgabjgaQNCivjgYrjgYrjgZ8s44Gf44GL44GXDQor44GK44GK44Gk44GLLOOBn+OBpOOChA0KK+OBvuOBpOOBquOBjCzjgojjgZfjgYLjgY0NCivjgYrjgYrjgoTjgb4s44Gu44KK44KG44GNDQor44GK44GL44GgLOOCiuOBiA0KK+OBiuOBi+OBoCzjgZ/jgZHjgZcNCivjgYrjgYvjgaAs44Gy44KN44G144G/DQor44GK44GL44GgLOOCiOOBl+OBruOCig0KK+OBiuOBruOBp+OCiSzjgZ/jgYvjgYoNCivjgYrjgYvjgoLjgags44Gy44KN44KG44GNDQor44GK44GL44GW44GNLOOBn+OBi+OBguOBjQ0KK+OBiuOBj+OBoCzjgajjgZfjgobjgY0NCivjgYrjgY8s44Gu44G244KG44GNDQor44GK44GuLOOBleOBoeOBkw0KK+OBiuOBrizjgZHjgYTjgYTjgaHjgo3jgYYNCivjgYrjgorjgaYs44GR44KT44GE44GhDQor44GK44GV44GgLOOCgOOBpOOBvw0KK+OBleOBhOOBqOOBhizjgoDjgaTjgYoNCivjgZXjgYTjgajjgYYs44GX44KT44GUDQor44GV44GE44Go44GGLOOBl+OCheOBhuOBmA0KK+OBleOBhOOBqOOBhizjgojjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44KG44Gf44GLDQor44GV44GE44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgZXjgYvjgYQs44GE44Gh44KN44GGDQor44GE44GX44GW44GNLOOChuOBjeOBruOCig0KK+OBleOBi+OCguOBqCzjgbLjgo3jgZcNCivjgZXjgYvjga7jgYbjgYgs44Gy44Gn44GKDQor44GV44GL44GG44GILOOBi+OBmuOBvuOBlQ0KK+OBleOBk+OBoCzjga7jgbbjgYoNCivjgZXjgY/jgonjgYQs44GX44GS44Gu44KKDQor44GV44GP44KJ44GELOOBn+OBi+OBlw0KK+OBleOBrOOBjSzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZXjgZXjgY0s44GC44GN44GoDQor44Go44G/44GfLOOBqOOCguOBquOCig0KK+OBleOBqOOBhizjgabjgaTjgYoNCivjgZXjgajjgYYs44Gq44GK44GNDQor44GV44Go44GGLOOCiOOBl+OBruOCig0KK+OBleOBqOOBhizjgb7jgZXjgobjgY0NCivjgZXjgajjgYYs44Go44GX44KEDQor44GV44Go44GGLOOBguOBpOOBkw0KK+OBleOCj+OBoCzjgb7jgZXjgagNCivjgZvjgYos44GR44KT44GV44GPDQor44Gb44GW44GELOOBi+OBmuOChOOBmQ0KK+OBl+OBsOOBnyzjgZ/jgZHjgbLjgZMNCivjgZfjgbDjgZ8s44KI44GGDQor44GX44GM44GNLOOBguOBjeOBsuOBkw0KK+OBl+OBv+OBmizjgbLjgo3jgoANCivjgZfjgb/jgZos44KI44GX44G/DQor44GX44G/44GaLOOBguOBjeOCiQ0KK+OBl+OBv+OBmizjgYLjgY3jgajjgZcNCivjgZfjgb/jgZos44Gy44Gn44GKDQor44GX44KC44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBl+OBruOBr+OCiSzjgYvjgZrjgbLjgo0NCivjgZfjgonjgaQs44G+44GT44GoDQor44GX44KN44GX44GfLOOBleOBqOOBlw0KK+OBl+OCh+OBhuOBmCzjgobjgYbjgZMNCivjgZfjgofjgYbjgb/jgaQs44KI44GX44Gy44KNDQor44Gd44GgLOOBi+OBpOOBmeOBkQ0KK+OBneOCguOCiizjgZ/jgaTjgYoNCivjgZ3jgYYs44GL44Ga44Gy44GTDQor44Gq44GLLOOChuOBhuOBmA0KK+OBmeOBjuOCgOOCiSzjgZHjgYTjgZcNCivjgZnjgY7jga4s44G+44GV44Gy44KNDQor44GZ44GO44GV44KPLOOBruOBtuOChuOBjQ0KK+OBmeOBjuOBnyzjgZXjgobjgooNCivjgZnjgY7jgYbjgaEs44GX44KT44GZ44GRDQor44GZ44GO44KE44G+LOOBguOBjeOBruOCig0KK+OBmeOBjuOChOOBvizjgb7jgZXjga7jgooNCivjgZnjgY7jgoTjgb4s44GL44Ga44G/DQor44GZ44Ga44GNLOOBl+OCk+OChA0KK+OBmeOBmuOBjSzjgobjgYbjgZgNCivjgZnjgZrjgY0s44GX44KTDQor44GZ44Ga44GNLOOBsuOCjeOBguOBjQ0KK+OBmeOBmuOBjSzjgajjgZfjgYLjgY0NCivjgZnjgZrjgY0s44Gy44Gn44GoDQor44GZ44Ga44GNLOOBk+OBhuOBhOOBoQ0KK+OBmeOBmuOBjSzjgobjgYbjgZMNCivjgZ/jgaHjgbDjgaos44Gf44GL44GXDQor44Gf44GE44KJLOOBguOBjeOCiQ0KK+OBn+OBhOOCiSzjgbLjgafjgYLjgY0NCivjgZ/jgYvjgaAs44Gy44KN44KG44GNDQor44Gf44GL44GOLOOBvuOBleOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjga7jgorjgYTjgaQNCivjgZ/jgYvjga/jgZcs44Gf44GL44KG44GNDQor44Gf44GL44Gv44GXLOOBr+OBmOOCgQ0KK+OBvuOBmeOBluOCjyzjgbLjgajjgZcNCivjgZ/jgYvjga/jgZcs44G+44GV44GC44GNDQor44Gf44GL44G+LOOBsuOBleOBqA0KK+OBn+OBi+OBrizjgb/jgYjjgZMNCivjgZ/jgYvjga4s44GL44Ga44KI44GXDQor44Gf44GL44GV44GLLOOBr+OBmOOCgQ0KK+OBn+OBi+OBmyzjgYvjgaTjgZgNCivjgZ/jgYvjgZ8s44GP44G/44GTDQor44Gf44GL44KE44G+LOOBguOBpOOBlw0KK+OBn+OBi+OChOOBquOBjizjgYLjgorjgbLjgo0NCivjgZ/jgZHjgaAs44GI44KKDQor44Gf44GR44GgLOOBguOBjeOCiQ0KK+OBteOBmOOBhCzjgYLjgaTjgZMNCivjgZ/jgZHjga7jgoos44GE44GP44GXDQor44Gf44GR44GX44GfLOOBsuOCjeOBi+OBmg0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgZgNCivjgZ/jgZHjgYbjgaEs44Gf44GL44Go44GXDQor44Gf44GN44GW44KPLOOBvuOBleOBguOBjQ0KK+OBn+OBjeOBluOCjyzjgaTjgojjgZcNCivjgZ/jgb7jgY0s44GV44Go44GTDQor44Gf44KA44KJLOOBguOBjeOBsuOCjQ0KK+OBn+OCgOOCiSzjgabjgaTjga0NCivjgZ/jgoDjgoks44Gu44G244GKDQor44Gf44Gq44GLLOOBl+OCh+OBhuOBlA0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgbLjgo0NCivjgZ/jgavjgoTjgb4s44Gu44G844KLDQor44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBpuOCieOBjeOBnyzjgarjgYzjga7jgooNCivjgabjgZrjgYss44GX44KT44GE44GhDQor44Go44Gw44KKLOOBmeOBmeOCgA0KK+OBqOOBjOOBlyzjgZjjgoXjgpPjgYTjgaENCivjgoTjgb7jgaAs44GR44KT44GE44GhDQor44Go44GN44Ge44GuLOOBl+OBkuOBig0KK+OBqOOBv+OBquOBjCzjgoLjgajjgbLjgZUNCivjgajjgb/jgarjgYws44GX44KT44GYDQor44Go44G/44GfLOOBl+OCk+OBmA0KK+OBqOOBv+OBnyzjgabjgaTjgYoNCivjgajjgoLjgYrjgYss44Gy44Go44GXDQor44Go44Gu44GV44GNLOOCiOOBl+OBruOCig0KK+OBqOOCiuOBluOCjyzjgYjjgb8NCivjgZPjgYTjgZEs44Gy44KN44GTDQor44Go44KI44GL44KPLOOBvuOBleOCiOOBlw0KK+OBqOOCiOOBi+OCjyzjgbLjgZXjgojjgZcNCivjgaTjgbzjgYQs44Gf44Gg44GXDQor44Gk44GL44GgLOOBqOOBiuOCiw0KK+OBpOOBj+OBhCzjgbLjgZXjgZcNCivjgaTjgovjgYvjgo8s44GI44GE44GYDQor44Gk44Gk44GELOOBqOOBl+OBi+OBmg0KK+OBpOOBpOOBhCzjgobjgYbjgZgNCivjgYbjgaHjgaAs44Gy44KN44GNDQor44GG44Gh44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OBhuOBoeOBvizjgZfjgoXjgpPjgYTjgaENCivjgYbjgaHjgoTjgb4s44GC44GN44Gy44KNDQor44GG44GgLOOBsuOBleOCiOOBlw0KK+OBhuOBiOOBoCzjgYvjgZrjga7jgooNCivjgYbjgYjjga4s44GN44KI44GXDQor44GG44GI44GuLOOBruOCiuOBig0KK+OBhuOBiOOBrizjgZ/jgYvjgZcNCivjgYbjgZHjgYzjgo8s44Gf44GL44KG44GNDQor44GG44G+44Ga44KBLOOCiOOBl+OBsuOCjQ0KK+OBhuOCgeOCgOOCiSzjgY3jgb/jgbLjgo0NCivjgo/jgaAs44Gy44KN44GXDQor44KP44GgLOOChOOBmeOBsuOBkw0KK+OCj+OBn+OBquOBuSzjgorjgofjgYYNCivjgYTjgYTjgaAs44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBn+OBi+OBlw0KK+OCj+OBn+OCiizjgoTjgZnjgojjgZcNCivjgoTjgY4s44KI44GX44KG44GNDQor44KE44G+44GgLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBjCzjgbLjgafjgYoNCivjgoTjgb7jgZDjgaEs44G+44GV44Gu44KKDQor44KE44G+44GQ44GhLOOBsuOBp+OBig0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgZcNCivjgoTjgb7jgoLjgags44Gm44Gk44KEDQor44KE44G+44KC44GoLOOBvuOBleOChuOBjQ0KK+OChOOBvuOCguOBqCzjgYvjgZrjgobjgY0NCivjgoTjgb7jgoLjgags44Gy44Gn44GXDQor44KE44G+44KC44GoLOOBvuOBleOBruOCig0KK+OChOOBvuOCguOBqCzjgYvjgZrjgagNCivjgoTjgb7jgoLjgags44GL44GK44KLDQor44KE44G+44KC44GoLOOBvuOBleOCiOOBlw0KK+OChOOBvuOBquOBiyzjgYjjgYTjgZgNCivjgoTjgb7jgZfjgZ8s44GV44Go44KLDQor44KE44G+44GG44GhLOOBi+OBmuOBguOBjQ0KK+OChOOBvuOBluOBjSzjga/jgovjgbLjgZMNCivjgoTjgb7jgZbjgY0s44G+44GV44Go44GXDQor44KE44G+44GW44GNLOOBkeOCk+OBmA0KK+OChOOBrizjgobjgY3jgYoNCivjgoTjga4s44GT44GG44GE44GhDQor44KE44GZ44GgLOOBn+OBkeOBlw0KK+OChOOBmeOBvuOBpCzjgYvjgaTjgarjgooNCivjgoTjgZnjgoLjgags44GT44GG44GYDQor44KE44GZ44Gr44KPLOOBn+OBi+OChuOBjQ0KK+OCiOOBoCzjgYrjgZXjgoANCivjgojjgaAs44GE44GV44GKDQor44KI44GX44GgLOOCiOOBl+OBsuOCjQ0KK+OCiOOBl+OBhCzjgZ/jgaTjgoQNCivjgojjgZfjgarjgYws44KG44G/44GTDQor44KI44GX44GuLOOBn+OBpOOBvw0KK+OCiOOBl+OBn+OBkSzjgYLjgY3jgbLjgo0NCivjgZ/jgY3jgZbjgo8s44Gf44GL44GXDQor44KE44G+44GQ44GhLOOBi+OBmuOCiOOBlw0KK+OBi+OBsOOBl+OBvizjgYvjgZrjgbLjgZUNCivjgZXjgY/jgoks44KG44GG44GZ44GRDQor44KA44KJ44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBsuOBjeOBoCzjgYvjgZrjgb8NCivjgoDjgonjgYQs44GP44Gr44Gy44KNDQor44G7LOOBguOBjeOCiQ0KK+OBiOOCk+OBqSzjgZvjgYTjgZgNCivjgabjgonjgoDjgoks44Gf44Gk44GKDQor44KP44Gf44Gq44G5LOOBn+OBi+OBsuOBkw0KK+OBhOOBvuOBhCzjgZfjgZLjgoQNCivjgoLjgorjgoLjgags44Go44GX44GL44GaDQor44GT44KE44KKLOOBm+OBhOOBmA0KK+OBvuOBpOOBv+OChCzjgobjgYbjgYTjgaENCivjgZfjgbDjgZ8s44GL44Ga44GKDQor44Gh44GX44KNLOOCiOOBl+OBsuOCjQ0KK+OBhOOBn+OBvyzjgbLjgafjgYoNCivjgYrjgZbjgY0s44Gy44Go44GXDQor44G144GP44KC44GoLOOBvuOBleOBpOOBkA0KK+OBiuOBi+OBoCzjgbLjgo3jgZcNCivjgZXjgo/jgaAs44Gy44KN44GXDQor44GV44GP44KJ44GELOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgojjgZfjga7jgooNCivjgb7jgaTjgYrjgYss44KE44GZ44Gu44KKDQor44G/44KI44GXLOOBruOCiuOCiOOBlw0KK+OChOOBvuOBquOBiyzjgZPjgYbjgZjjgo3jgYYNCivjgZfjgb/jgZos44Gy44Go44GXDQor44GT44Gv44KJLOOBvuOBleOBruOCig0KK+OBq+OBl+OBi+OCjyzjgbLjgo3jgZcNCivjgYTjgb7jgYQs44KE44GZ44GKDQor44G144GY44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBk+OBmOOBvizjgoTjgZnjgobjgY0NCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44GN44GP44GhLOOBi+OBpOOBsuOBkw0KK+OBleOBhOOBqOOBhizjgb/jgaTjgosNCivjgoTjgb7jgZfjgZ8s44Gy44Gn44GC44GNDQor44GC44G5LOOBl+OCk+OBmA0KK+OBpuOBmuOBiyzjgZ/jgYvjgZcNCivjgZ/jgarjgYss44KP44Gf44KLDQor44Gr44KPLOOBv+OBruOCiw0KK+OBi+OCgeOBhCzjgb/jgZrjgbsNCivjgoTjga4s44G/44Gk44GKDQor44Gq44GL44G+44KLLOOChOOBmeOBlw0KK+OBiuOBiuOBr+OBnyzjgb7jgZXjga7jgooNCivjgoTjgZnjgoTjgb4s44G+44GV44Gy44KNDQor44GL44GZ44GMLOOBv+OBpOOBig0KK+OBhOOBl+OBhCzjgYLjgY3jgbLjgZMNCivjgbXjgZjjgoLjgoos44Gu44KK44GTDQor44GE44KP44KC44GoLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgovjgb/jgZMNCivjgY3jgZ8s44Go44KC44G/DQor44KA44KJ44GK44GLLOOChuOBhuOBkw0KK+OBhOOBkOOBlSzjgojjgZfjgZrjgb8NCivjgarjgYzjgZXjgo8s44Gy44KN44GYDQor44KE44G+44GQ44GhLOOChOOBmeOBsuOCjQ0KK+OBiuOBoOOBmOOBvizjgobjgZ/jgYsNCivjgYrjgYrjgZ8s44G+44G/DQor44Gv44GO44GuLOOBquOBiuOBhOOBoeOCjeOBhg0KK+OChOOBtuOBjSzjgajjgZfjgYLjgY0NCivjgYTjgY0s44KI44GX44Go44GXDQor44GV44GE44Go44GGLOOBvuOBleOBqA0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgarjgYvjgoTjgb4sDQor44KA44KJ44G+44GkLOOBi+OBiuOCiw0KK+OBn+OBl+OCjSzjgZfjgofjgYbjgYTjgaENCivjgYTjgZfjga/jgoks44G+44GV44KG44GNDQor44GX44Gw44GK44GLLOOBn+OBpOOBig0KK+OBquOBi+OBiizjgoTjgZnjga7jgooNCivjgbXjgZjjgZ8s44Go44GX44GNDQor44GV44GP44GfLOOBvuOBleOChuOBjQ0KK+OBr+OBnyzjgZnjgZnjgoANCivjgYrjgYrjgoTjgb4s44Gf44Gg44GXDQor44Gf44GULOOBjeOCh+OBhuOBkw0KK+OBvuOBpOOCgOOCiSzjgYvjgZrjgYoNCivjgYTjgajjgYYs44G+44GV44KG44GNDQor44GN44KA44KJLOOBn+OBkeOBig0KK+OBguOBiuOBjSzjgb/jgaTjgZ/jgYsNCivjgZPjgb7jgYzjgZ8s44Gy44Gn44Go44GXDQor44Gq44KJ44KA44KJLOOBi+OBmuOBkw0KK+OBteOBmOOCguOBqCzjgb7jgZXjgY0NCivjgb/jgoTjgZXjgYss44Go44GX44Gy44GTDQor44Gv44KE44GXLOOBvuOBleOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgbLjgZMNCivjgYrjgYzjgZXjgo/jgoks44GX44KH44GG44GYDQor44GK44GK44Gk44GLLOOBqOOBl+OChuOBjQ0KK+OBi+OCj+OBhCzjgajjgoLjgobjgY0NCivjgZfjgb7jgZos44KI44GG44GE44GhDQor44Gf44GL44Gv44GXLOOBjeOBl+OBkw0KK+OBvuOBiOOBluOCjyzjgYTjgZrjgb8NCivjga/jgaAs44GL44GK44KLDQor44G+44Gk44Gy44KJLOOBiOOCig0KK+OBmeOBjuOBr+OCiSzjga7jgbzjgosNCivjgarjgYvjgZjjgb4s44KI44GX44Gu44G2DQor44Gv44Gf44GR44KE44G+LOOBpuOBpOOChA0KK+OBguOBiuOBjSzjgb7jgZXjgbLjgZMNCivjgZfjgbbjgYvjgo8s44GN44KI44Gy44GVDQor44GE44GX44GgLOOBl+OBkuOCiw0KK+OBiuOBi+OBoCzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GC44GN44KJDQor44GL44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgb/jgaQNCivjgoDjgonjgZXjgo8s44G/44Gu44KLDQor44G/44G7LOOBvuOBleOBruOCig0KK+OBmeOBjOOBrSzjgojjgZfjga7jgbYNCivjgYTjgZfjgYvjgo8s44KI44GX44Gy44GTDQor44GK44GLLOOChOOBmeOBsuOCjQ0KK+OBhOOCj+OBvyzjgobjgb/jgZMNCivjgarjgYvjgoTjgb4s44Gy44KN44GXDQor44GE44Go44GGLOOBi+OBmuOBjQ0KK+OBmeOBjuOChOOBvizjgZfjgpPjgYTjgaENCivjgYvjgZfjgoLjgags44KI44GX44GTDQor44Gq44GL44KA44KJLOOBvuOBleOChuOBjQ0KK+OBguOBiuOChOOBvizjgbLjgafjga7jgooNCivjgZfjgbDjgZ8s44GR44KT44GE44GhDQor44G+44Gk44GKLOOCiOOBl+OBruOCig0KK+OBl+OBruOCgOOCiSzjgYLjgYrjgYQNCivjgbXjgovjgYvjgo8s44KI44GX44G144G/DQor44KC44Go44GNLOOBl+OCheOBhuOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgaHjgYoNCivjgYLjgpPjganjgYYs44G+44GV44Gy44KNDQor44Gf44GR44GyLOOBleOBoeOBkw0KK+OBhOOBl+OBhCzjgYLjgY3jgbXjgb8NCivjga7jgaHjgZss44GL44Ga44Gy44GTDQor44G/44KE44Gq44GMLOOBqOOBl+OBkw0KK+OBl+OCk+OBqeOBhizjgbLjgo3jgb8NCivjgYrjgYrjgZ8s44G/44KI44GTDQor44Gf44GrLOOCiOOBl+OBguOBjQ0KK+OBk+OCgOOCjSzjgbXjgb/jga7jgooNCivjgYTjgo/jgZUs44Gy44KN44G/44GhDQor44G+44Gk44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBjeOCgOOCiSzjgbLjgZXjgagNCivjgYLjgYrjgY0s44GC44GN44Gy44GTDQor44G+44Gk44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBlOOBqOOBhizjgbXjgb/jgobjgY0NCivjgYrjgYzjgo8s44GC44GN44KJDQor44GZ44GO44Gf44GrLOOBr+OCi+OBig0KK+OBiuOBj+OBrizjgobjgY3jgYoNCivjgZXjgY/jgonjgaAs44GX44KT44G644GEDQor44KA44GT44KE44G+LOOBruOCiuOBkw0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgoTjgb7jgoLjgags44Gf44Gg44GXDQor44KE44G+44KC44GoLOOBvuOBleOBqOOBlw0KK+OBi+OBreOBkyzjgZfjgoXjgYbjgbjjgYQNCivjgoTjgb7jgZbjgY0s44KE44GZ44Gy44KNDQor44Gq44GL44KA44KJLOOBqOOCgg0KK+OBv+OCjyzjgYrjgZXjgoANCivjgZXjgoDjgYvjgo8s44GX44KN44GGDQor44Gq44GL44GgLOOBqOOBl+OChuOBjQ0KK+OCiOOBl+OBqOOBvyzjgZHjgpPjgYTjgaENCivjgZ/jgYvjgZfjgb4s44Gk44Gt44GYDQor44GE44GX44GSLOOBguOBjeOBkw0KK+OBmeOBiOOBr+OCiSzjgbLjgo3jgobjgY0NCivjgYTjga7jgYbjgYgs44Gy44Gn44G/DQor44Gu44GY44G+LA0KK+OBleOBj+OBvizjgZXjgaHjgYgNCivjgZXjga4s44KI44GX44G/44GhDQor44KA44KJ44GK44GLLOOBi+OBpOOBmA0KK+OBv+OBhuOCiSzjgorjgoXjgYbjgZ7jgYYNCivjgZXjgYvjgoLjgags44GY44KF44KTDQor44Gq44KL44GKLOOBm+OBhOOBkw0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgbLjgo0NCivjgYrjgYvjgaAs44Gm44Gk44GKDQor44KE44Gy44KNLOOBruOBtuOChuOBjQ0KK+OBsOOBsCzjgZ/jgY/jgoQNCivjgYLjgZ8s44GC44KE44GuDQor44Gq44GM44GbLOOBjeOCiOOBlw0KK+OBi+OCj+OBiCzjgYTjgZrjgb8NCivjgb/jgYbjgoks44G+44GN44KIDQor44G144GY44GfLOOBleOBqOOBkw0KK+OBpOOCi+OBvyzjgojjgZfjgYoNCivjgoLjgaHjgZrjgY0s44GI44G/44GTDQor44KI44GX44GgLOOBi+OBmuOBguOBjQ0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgbXjgb8NCivjgoTjgZnjgoLjgags44G/44Gk44Gv44KLDQor44Gt44KC44GoLOOBn+OBj+OBmA0KK+OBsuOBoOOBiyzjgYbjgYjjgb/jgaQNCivjgb7jgZnjgaAs44GP44G/44GTDQor44Go44GP44Gq44GMLOOBteOBv+OBsuOBqA0KK+OBquOBi+OBluOCjyzjgZnjgZnjgoANCivjgbXjgZjjgarjgo8s44KI44GX44Gv44KLDQor44KI44Gz44GL44KPLOOBi+OBmuOBsuOCjQ0KK+OBjeOBn+OBoCzjgZ/jgZHjgZcNCivjgojjgZfjga4s44KE44GZ44Gy44KNDQor44Gw44GwLOOCiOOBl+OBqA0KK+OBj+OCjeOBi+OCjyzjgbLjgo3jgZcNCivjgYvjgajjgYYs44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBqOOBl+OBig0KK+OBpOOBoeOBoCzjgYLjgaTjgZMNCivjgZnjgZrjgY0s44G/44KG44GNDQor44G/44Ga44GuLOOBguOBjeOCiQ0KK+OBn+OBq+OCguOBqCzjgZ/jgY/jgb8NCivjgYTjgZHjga4s44KB44GQ44G/DQor44GE44Go44GGLOOBl+OCh+OBhuOBkw0KK+OBn+OBkeOBoCzjgajjgYrjgosNCivjgb7jgYjjgaAs44GT44GG44G444GEDQor44GP44Gp44GGLOOBi+OBpOOBvw0KK+OBi+OBkuOChOOBvizjgb/jga3jgYoNCivjgoTjgb7jgYvjgZIs44KI44GG44GYDQor44GV44GI44GQ44GVLOOCjOOBhOOBkw0KK+OBv+OBmuOBn+OBqyzjgarjgYrjgZMNCivjgY/jganjgYYs44Go44GX44Gy44GTDQor44GT44GK44KK44KE44G+LOOBv+OBmuOBuw0KK+OBi+OBn+OCiOOBmyzjgojjgZfjgYgNCivjgYrjgZXjgaAs44GR44GE44GTDQor44KE44GO44Gv44GXLOOBl+OCheOBhuOBhOOBoQ0KK+OBmeOBvyzjgZ/jgaTjgYoNCivjgZ/jgarjgYss44GC44Gk44GXDQor44GP44Gp44GGLOOChuOBjeOBig0KK+OBn+OBkeOBsizjgYLjgY3jgokNCivjgYLjgoHjgb/jgoQs44G/44Gh44Gy44KNDQor44Gq44GL44KA44KJLOOBn+OBi+OBlw0KK+OBjeOCiOOBv+OBpCzjgZHjgpPjgZgNCivjgYTjgZrjgb/jgaAs44KI44GX44GLDQor44G144Gq44GNLOOBsuOCjeOBguOBjQ0KK+OBn+OBkeOBl+OBnyzjgYvjgZrjgbLjgZMNCivjgb/jgYbjgoks44GN44GP44GKDQor44GE44GX44Gw44GXLOOBruOBtuOBkw0KK+OCguOCiuOBguOBhCzjgZHjgYTjgZgNCivjgoDjgonjgoTjgb4s44GI44GE44GY44KFDQor44GK44GV44KPLOOChOOBmeOBruOCig0KK+OBteOBi+OBoCzjgojjgZfjgYvjgZoNCivjgoTjgb7jgaAs44Gy44Gn44Gy44GTDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBiuOBruOBp+OCiSzjgajjgb/jgYoNCivjga/jgoTjgZXjgYss44G+44GV44G/44GhDQor44GK44GK44Gk44GLLOOBsuOBp+OBsuOBkw0KK+OBqOOBiuOChOOBvizjgbLjgo3jgZ/jgYsNCivjgYvjgo/jga/jgoks44G/44Gk44KLDQor44GI44Gz44GV44KPLOOBvuOBleOBjQ0KK+OChOOBvuOBi+OCjyzjgabjgaTjgoQNCivjgoTjgb7jgoLjgags44KE44GZ44Go44KCDQor44GZ44Ga44GNLOOBqOOBiuOCiw0KK+OBiuOChOOBvuOBoCzjgZ/jgYvjgZcNCivjgb7jgaTjgoTjgb4s44KK44KF44GG44GE44GhDQor44GC44G5LOOBruOBtuOBsuOCjQ0KK+OBguOBuSzjgoTjgZnjgYoNCivjgYLjgbks44GL44Ga44G+44GVDQor44GC44G5LOOChuOBjeOBig0KK+OBguOBkuOBnyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgYvjga/jga0s44Gy44Gn44Gy44KNDQor44GC44GR44Gq44GMLOOBmOOCheOCkw0KK+OBguOBjeOChOOBvizjgZfjgZLjgYoNCivjgYLjgY3jgZbjgo8s44Gy44Gn44GL44GaDQor44GC44G+44GgLOOBv+OBjeOBig0KK+OBguOBvuOBrizjgb7jgZXjgZcNCivjgYLjgoLjgYYs44GC44GN44GKDQor44GC44KT44Gp44GGLOOBsuOBp+OBguOBjQ0KK+OBguOCk+OBqeOBhizjgarjgYrjgY0NCivjgYLjgpPjganjgYYs44Go44GX44G144G/DQor44GC44GK44GuLOOBsuOCjeOBjQ0KK+OBguOBiuOChOOBvizjgYTjgo/jgYoNCivjgYLjgonjgYQs44GL44Ga44Gy44KNDQor44GC44KJ44GL44KPLOOBsuOBp+OBlw0KK+OBguOCiuOCguOBqCzjgbLjgafjgY0NCivjgYLjgorjgYos44G+44GT44GoDQor44GC44GV44GELOOBguOBjeOCiQ0KK+OBguOBleOBi+OCjyzjgojjgZfjgbLjgagNCivjgY/jgo3jgY0s44KG44GN44Gu44KKDQor44GC44Ga44G+LOOBl+OCk+OBmA0KK+OBsOOCk+OBrizjgb7jgZXjgY3jgogNCivjgbnjgaTjgoTjgY8s44GR44KT44GUDQor44Gz44Go44GGLOOBmOOCkw0KK+OBoeOBsCzjgbLjgo3jgZcNCivjgaHjgoXjgYYs44GL44Gk44GNDQor44GI44GgLOOBkeOCk+OBhOOBoeOCjQ0KK+OBiOOCk+OBqSzjgarjgYrjgb8NCivjgYjjgZXjgY0s44GX44KT44GE44GhDQor44G144GY44GELOOBsuOCjeOBlw0KK+OBteOBmOOBhCzjgbXjgb/jgYoNCivjgbXjgZjjgoLjgags44GC44GN44KJDQor44G144GY44GfLOOBjeOCiOOBquOBig0KK+OBteOBmOOBnyzjgYLjgY3jgbLjgo0NCivjgbXjgZjjgo/jgoks44GV44Go44GXDQor44G144GL44GW44KPLOOBqOOCguOBsuOBqA0KK+OBteOBj+OBoCzjgZnjgZnjgoANCivjgbXjgY/jga/jgoks44KE44GZ44Gy44GTDQor44G144GP44GX44G+LOOBi+OBmuOCiOOBlw0KK+OBteOBj+OBqeOCgSzjgYvjgZrjgbLjgZUNCivjgbXjgY/jgoTjgb4s44GV44Go44GXDQor44G144Gq44Gw44GXLOOBvuOBleOChuOBjQ0KK+OBteOCi+OBoOOBpizjgYLjgY3jgbLjgZMNCivjgbXjgovjgZXjgo8s44GX44KT44GYDQor44G144KL44GfLOOCiuOBjeOChA0KK+OBteOCi+OChCzjgZfjgpPjgYTjgaENCivjgbXjgZfjgY0s44KG44GG44GE44GhDQor44Gv44G+44GgLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBr+OBquOBoCzjgYvjgaTjga7jgooNCivjga/jgarjgb8s44Gy44Gn44GKDQor44Gv44KJ44GgLOOBguOBjeOCiQ0KK+OBr+OCi+OBi+OCjyzjgYTjgZrjgb8NCivjga/jgZvjgYzjgo8s44KI44GG44GE44GhDQor44GK44GK44GkLOOCgOOBreOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgYLjgaTjgZcNCivjga/jgZfjgoLjgags44GI44G/44GTDQor44Gv44GZ44KC44GoLOOBguOBpOOBlw0KK+OBr+OBo+OBqOOCiizjgaTjgojjgZcNCivjga/jgoTjgZXjgYss44Gf44GL44GKDQor44Gy44Gg44GLLOOBkeOBleOBig0KK+OBsuOBkOOBoSzjgZHjgYTjgZMNCivjgbLjgZDjgaEs44G144GV44KG44GNDQor44Gy44GY44GP44KNLOOBquOBiuOChuOBjQ0KK+OBsuOCieOBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgbLjgonjga4s44Gy44KN44KIDQor44Gy44KJ44GfLOOBvuOBleOBsuOCjQ0KK+OBsuOCjeOBmyzjgZXjgaHjgZMNCivjgbLjgZXjgaAs44Gf44GL44GXDQor44G744KKLOOBruOCiuOChOOBmQ0KK+OBu+OBhuOChCzjgYvjgZrjgbLjgZMNCivjgbvjgpPjgaAs44GX44GS44KG44GNDQor44G744KT44G+LOOBn+OBpOOChA0KK+OBn+OBquOBiyzjgaTjgojjgZcNCivjgbvjgZfjgZjjgb4s44Gf44Gk44GKDQor44G744GX44GLLOOBn+OBkeOBlw0KK+OBu+OBneOBoCzjgaHjgYjjgb8NCivjgYTjgaHjgYvjgo8s44KE44GZ44Gy44KNDQor44GE44Gh44KA44KJLOOBkeOBhOOBlA0KK+OBhOOBjOOBrizjgb/jganjgooNCivjgYTjgYTjgaAs44G+44GV44KG44GNDQor44GE44GE44GK44GLLOOBsuOCjeOBlw0KK+OBquOBjOOBrizjgZXjgajjgosNCivjgYTjgZHjgZbjgo8s44Gu44G244KE44GZDQor44GE44KC44GoLOOBmeOBv+OCjA0KK+OBhOOBquOBmuOBvyzjgoTjgZnjga/jgosNCivjgY/jgZfjgb/jgoQs44GX44KT44GE44GhDQor44GE44Gu44GG44GILOOBl+OCk+OChA0KK+OBhOOBruOBhuOBiCzjgYLjgY3jgokNCivjgYTjga7jgYbjgYgs44Go44KC44KG44GNDQor44GE44Gs44Gk44GLLOOBquOBiuOBjQ0KK+OBhOOBleOBmCzjgbLjgafjgagNCivjgYTjgZfjgaAs44GX44KF44GG44GE44GhDQor44GE44GX44GgLOOBhOOBleOBig0KK+OBhOOBl+OBoCzjgY/jgavjgYLjgY0NCivjgYTjgZfjgYzjgY0s44GI44KK44GTDQor44GE44GX44GM44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBi+OBmOOBn+OBqyzjgYrjgZXjgoANCivjgYTjgZfjga/jgoks44Gy44KN44KG44GNDQor44GE44GX44KA44KJLOOBvuOBleOBsuOBkw0KK+OBhOOBl+OChOOBvizjgZfjgoXjgYbjgYTjgaENCivjgYTjgZfjgZbjgY0s44Gu44G244GKDQor44GE44Gd44G5LOOCiOOBl+OBsuOBkw0KK+OBhOOBneOBluOBjSzjgb7jgZXjgYLjgY0NCivjgYTjgajjgYYs44Gh44GP44GVDQor44GE44Go44GGLOOBsuOBleOBqA0KK+OBhOOCj+OBguOBlSzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgo/jgYQs44Gq44GK44Gf44GLDQor44GE44KP44G+LOOBleOBqOOBlw0KK+OBhOOCj+OCguOBqCzjgojjgYbjgYTjgaENCivjgYTjgo/jgarjgYws44Gy44KN44Gu44KKDQor44GE44KP44GX44GfLOOBl+OBkw0KK+OBhOOCj+OBnyzjgYvjgZrjgb7jgZUNCivjgYTjgo/jgZ8s44GI44GE44GYDQor44GL44Gp44KP44GNLOOBleOBqOOBlw0KK+OBi+OBkuOChOOBvizjgZHjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44GE44Ga44G/DQor44GL44G/44KELOOBj+OBq+OBguOBjQ0KK+OBi+OBv+OChCzjgZHjgpPjgYTjgaENCivjgYvjgpPjgbDjgoTjgZcs44GN44KT44GYDQor44GL44Gu44GGLOOBsuOCjeOBlw0KK+OBi+OCiuOChCzjgarjgorjgoTjgZkNCivjgYvjgZXjgY0s44GY44KF44KTDQor44GL44GX44G+LOOBvuOBleOBig0KK+OBi+OBmeOChCzjgYLjgY3jgokNCivjgYvjgajjgYYs44Gf44GL44GNDQor44GL44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgajjgYYs44G/44Gk44GQDQor44GL44Go44GGLOOBsuOBp+OBruOCig0KK+OBi+OBqOOBhizjgbLjgo3jgobjgY0NCivjgYvjgo/jgbDjgZ8s44Gg44GEDQor44GL44KP44Gw44GfLOOBguOBpOOBlw0KK+OBi+OCj+OBkOOBoSzjgbLjgafjgb/jgaENCivjgYvjgo/jga/jgoks44Gy44KN44G/DQor44GL44KP44Gv44KJLOOBi+OBmuOBteOBvw0KK+OBi+OCj+OBmOOCiizjgb/jgaHjgYoNCivjgYvjgo/jgYvjgb8s44Gm44Gk44GKDQor44GL44KP44GP44G8LOOBi+OBmuOBqOOBlw0KK+OBi+OCj+OBvuOBnyzjgZ/jgYvjga7jgbYNCivjgYvjgo/jgoDjgoks44Gy44Go44GXDQor44GL44KP44GuLOOBruOCiuOBguOBjQ0KK+OBi+OCj+OBleOBjSzjgb7jgZXjgbLjgagNCivjgYvjgo/jgZfjgb4s44Go44GX44Gy44GVDQor44GL44KP44GaLOOBvuOBleOBruOCig0KK+OBjeOBsOOBlyzjgbLjgafjgbLjgZMNCivjgY3jgb7jgaEs44G+44GV44GNDQor44GN44KC44GoLOOBn+OBkeOBlw0KK+OBjeOCgOOCiSzjgZ/jgY/jgoQNCivjgY3jgpPjgbDjgoks44KI44GX44G/44GhDQor44GN44Gu44GX44GfLOOChOOBmeOBlw0KK+OBjeOBruOBl+OBnyzjgbLjgo3jgY0NCivjgY3jgorjgZXjgo8s44GE44Gh44KN44GGDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgYLjgY0NCivjgZPjgbDjgoTjgZcs44G+44GV44GKDQor44GT44Gw44KE44GXLOOBteOBmOOBsuOBkw0KK+OBk+OBoOOBvizjgZPjgYbjgZgNCivjgZPjgaDjgb4s44GK44GV44KADQor44Gf44GL44KA44KJLOOCguOBqOOBsuOBkw0KK+OBk+OBsuOBquOBnyzjgobjgYbjgZnjgZENCivjgZPjgpPjga4s44Gy44KN44GXDQor44GT44KT44GuLOOBn+OBi+OBsuOCjQ0KK+OBk+OChOOBvizjgZPjgYbjgZgNCivjgZPjgZrjgY0s44Go44GX44GKDQor44Go44GG44Gp44GGLOOBk+OBhuOBmA0KK+OBk+OBmOOBvizjgZfjgpPjgZgNCivjgZPjgpPjgaks44GC44GN44KJDQor44GT44KT44GpLOOBn+OBi+OBlw0KK+OBk+OCk+OBqSzjgb7jgZXjgajjgZcNCivjgZPjgpPjga4s44GL44GK44KLDQor44GT44Gf44GNLOOBsuOBqOOBlw0KK+OBk+OChOOBhOOBlyzjgb/jgYsNCivjgZPjgoTjgarjgY4s44Gu44G844KLDQor44GP44G8LOOBkeOCk+OBn+OCjeOBhg0KK+OBj+OBqeOBhizjgY3jgb/jgbLjgagNCivjgY/jgb7jgYzjgYQs44Gq44GK44KG44GNDQor44GP44G+44GNLOOBl+OCk+OBmA0KK+OBj+OCieOBoSzjgZ/jgYvjgobjgY0NCivjgY/jgonjgZ8s44GT44GZ44GRDQor44GP44KK44GfLOOBv+OBjQ0KK+OBj+OCiuOChOOBvizjgZfjgoXjgpPjgZgNCivjgY/jgo3jgaAs44GT44GZ44GRDQor44GP44KN44GL44GOLOOBvuOBleOBruOBtg0KK+OBj+OCjeOBleOCjyzjgZfjgpPjgZgNCivjgY/jgo3jgZXjgo8s44Gb44GE44GNDQor44GP44KP44GuLOOBsuOCjeOBn+OBiw0KK+OBvuOBiOOBsOOBlyzjgajjgZfjgYLjgY0NCivjgb7jgYjjgZbjgo8s44Gu44G244KG44GNDQor44G+44GuLOOCiOOBl+OBig0KK+OBvuOCi+OCj+OBiyzjgbLjgafjgarjgYoNCivjgYbjgaHjgoTjgb4s44Gf44Gk44GKDQor44G+44GZ44GgLOOBmOOCheOCkw0KK+OBvuOBpOOBhCzjgZfjgZLjgY0NCivjgb7jgaTjgYQs44GV44Go44GXDQor44G+44Gk44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgbLjgZXjgagNCivjgb7jgaTjgarjgYws44G+44GV44Go44GXDQor44G+44Gk44GX44G+LOOCguOCiuOBsuOCjQ0KK+OBvuOBpOOBl+OBnyzjgZ/jgaDjgZcNCivjgb7jgaTjgZbjgY0s44Gf44GR44GXDQor44GE44Gq44GE44GXLOOCiOOBl+OBig0KK+OBv+OBi+OBvyzjgZHjgYTjgYTjgaENCivjgb/jgarjgY4s44GC44GN44G/44GkDQor44G/44Gk44KE44G+LOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBv+OBhuOCiSzjgZfjgZLjgY0NCivjgb/jgoTjgZEs44GC44Gk44GXDQor44G/44KE44KC44GoLOOBguOBpOOBkw0KK+OBv+OChOOBnyzjgZPjgYbjgZgNCivjgb/jgoTjgYbjgaEs44G+44GV44GNDQor44G/44KE44GG44GhLOOBhOOBoeOCjeOBhg0KK+OBv+OChOOBluOCjyzjgYLjgY3jgokNCivjgb/jgoTjgZbjgo8s44Gf44GL44GXDQor44G/44KI44GgLOOBn+OBi+OBsuOBlQ0KK+OBv+OBnuOBtuOBoSzjgZHjgpPjgZgNCivjgb/jgZ7jgZ8s44Gf44GR44GKDQor44Gh44GwLOOBsuOCjeOBsuOBlQ0KK+OBv+OBmuOBr+OBlyzjgb7jgZPjgagNCivjgb/jgZrjgb7jgaEs44Gb44GE44GYDQor44G/44Ga44Gf44GrLOOBleOBqOOBlw0KK+OBv+OBmuOBn+OBqyzjgaTjgojjgZcNCivjgb/jgZrjgZ/jgass44Gy44KN44KG44GNDQor44KC44Gh44Ga44GNLOOBv+OBruOCiw0KK+OCguOCiuOCguOBqCzjgarjgarjgZMNCivjgoLjgorjgZ/jgass44Gf44GL44GXDQor44KC44KK44GfLOOBqOOCiOOBsuOBkw0KK+OCguOCiuOBnyzjgZ/jgYvjgZcNCivjgoLjgorjgo/jgY0s44GX44KT44GE44Gh44KN44GGDQor44GK44GP44GELOOBn+OBkeOBsuOBkw0KK+OCguOCiizjgZ/jgZHjgb8NCivjgoLjgoos44Gf44GL44KG44GNDQor44KA44GT44KE44G+LOOBsuOCjeOChuOBjQ0KK+OCgOOCieOBpizjgZfjgpPjgYTjgaENCivjgoDjgajjgYYs44GL44Gk44GNDQor44Gq44GM44GELOOBv+OBpOOBsuOCjQ0KK+OBquOBjOOBrizjgb/jgaTjgajjgZcNCivjgarjgYzjgYrjgYss44Gf44GL44Gy44KNDQor44Gq44GM44GbLOOBi+OBpOOBvw0KK+OBquOBjOOBnyzjgbLjgo3jgobjgY0NCivjgarjgYzjgZ8s44KC44Go44GNDQor44Gq44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBvuOCiyzjgojjgZfjgY0NCivjgarjgYvjgoDjgoks44GC44GN44KJDQor44Gq44GL44KA44KJLOOBqOOCguOBkw0KK+OBguOBuSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgoDjgoks44Go44GX44KEDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBquOBi+OBl+OBvizjgbLjgZXjgojjgZcNCivjgarjgYvjgZfjgYos44Gy44KN44KG44GNDQor44Gq44GLLOOBruOCiuOBkw0KK+OBquOBv+OBjSzjga7jgorjgYvjgZoNCivjgarjgpPjgbYs44Gy44KN44GX44GSDQor44KE44G+44GQ44GhLOOBl+OCk+OBmA0KK+OBq+OBhOOBvyzjgZfjgZLjgbXjgb8NCivjgavjgZfjgaAs44Gy44KN44KI44GXDQor44Gr44GX44GgLOOBiOOBhOOBmA0KK+OBq+OBl+OBoCzjgb7jgZXjgYLjgY0NCivjgavjgZfjgaAs44GZ44GZ44KADQor44Gr44GX44GP44G8LOOBguOBjeOBsuOCjQ0KK+OBq+OBl+OCgOOCiSzjgZ/jgYvjgYLjgY0NCivjgavjgZfjgoDjgoks44Gk44KI44GXDQor44Gr44GX44GKLOOBvuOBleOBqA0KK+OBq+OBl+OBiizjgZfjgpPjgZgNCivjgavjgZfjgoTjgb4s44Gf44GL44GXDQor44KE44GM44KPLOOBkeOBhOOBmA0KK+OBq+OBo+OBnyzjgbLjgo3jgb8NCivjga7jgbnjgYrjgYss44GC44GN44G7DQor44Gu44GY44KKLOOCiOOBl+OBruOBtg0KK+OBruOCgOOCiSzjgabjgaTjgoQNCivjga7jgarjgYss44GL44Gk44GXDQor44GK44Gw44GqLOOBv+OBruOCiw0KK+OBiuOBoeOBguOBhCzjgajjgZfjgobjgY0NCivjgYrjgaHjgb/jgZos44Gf44GL44GXDQor44GK44GhLOOBv+OBpOOBruOCig0KK+OBiuOBoOOBiuOBiuOBr+OCiSzjgZfjgpPjgZQNCivjgYrjgaAs44Gy44KN44GL44GaDQor44GK44GM44GfLOOBvuOBleOBjQ0KK+OBiuOBjOOCjyzjgb7jgZXjgajjgZcNCivjgYrjgYzjgo8s44GI44Gk44GTDQor44GK44GQ44KJLOOBquOBiuOChuOBjQ0KK+OBiuOBiuOBsuOCiSzjga7jgbbjgobjgY0NCivjgYrjgYrjgbLjgoks44GE44Gh44KN44GGDQor44GK44GK44GE44GXLOOBguOBjeOCiQ0KK+OBiuOBiuOBhOOBlyzjgb7jgZPjgagNCivjgYrjgY0s44GL44KGDQor44GK44GK44GP44G8LOOBi+OBmuOBkw0KK+OBiuOBiuOBrizjgZHjgYTjgZMNCivjgYrjgYrjgazjgb4s44GX44GS44Gu44G2DQor44GK44GK44Gs44G+LOOBquOCi+OBlw0KK+OBiuOBiuOBn+OBjSzjgb7jgZXjgbLjgacNCivjgYrjgYrjgZ8s44Go44GK44KLDQor44GK44GK44GfLOOCiOOBl+OBquOBjA0KK+OBiuOBiuOBnyzjgZPjgYbjgYTjgaENCivjgYrjgags44G+44GV44Ga44G/DQor44GK44GK44Gk44G8LOOBsuOCjeOBteOBvw0KK+OBiuOBiuOChOOBjizjgb7jgZXjgbLjgo0NCivjgYrjgYrjgoTjgb4s44GC44Gk44GXDQor44GK44GE44GILOOBi+OBmuOChA0KK+OBiuOBmOOBvizjgYLjgY3jgokNCivjgYrjgYvjgbks44GE44Gh44KN44GGDQor44GK44GL44GgLOOBqOOBiuOCiw0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgY0NCivjgYrjgYvjga0s44Gf44GL44GXDQor44GK44GL44GuLOOBsuOBp+OBig0KK+OBiuOBi+OBrizjgb7jgZXjgZMNCivjgYrjgYvjgZbjgY0s44Gv44KL44Gy44GTDQor44KP44Gf44Gq44G5LOOBvuOBleOBqOOBlw0KK+OBiuOBj+OBoCzjgYLjgaTjgbLjgo0NCivjgYrjgY/jga4s44GL44Gk44GXDQor44GK44Gq44KELOOBi+OBmuOBkw0KK+OBiuOBrizjgY3jgojjgZcNCivjgYrjga4s44GX44KT44KEDQor44GK44GK44GuLOOChuOBn+OBiw0KK+OBiuOBleOBquOBhCzjgY3jgojjgYLjgY0NCivjgYrjgZbjgY0s44Gy44Gn44GKDQor44GV44GE44Go44GGLOOCiOOBl+OBvw0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpMNCivjgZXjgZgs44KE44GZ44Gy44GnDQor44GV44GYLOOBi+OBmuOBig0KK+OBleOBi+OBhCzjgYvjgZrjgbLjgZMNCivjgZXjgYvjgYQs44Go44KC44GZ44GRDQor44GV44GL44GP44KJLOOBn+OBi+OBsuOCjQ0KK+OBleOBi+OBhuOBiCzjgoTjgZnjgobjgY0NCivjgZXjgZXjgbks44G+44GT44GoDQor44GV44GV44GNLOOBsuOBp+OBi+OBmg0KK+OBquOBv+OBjSzjgbLjgo3jgZcNCivjgZXjgZ/jgZEs44GL44Gk44Gy44KNDQor44GV44Gf44GRLOOCj+OBjQ0KK+OBleOBqOOBhizjgZfjgoXjgYbjgYTjgaENCivjgZXjgajjgYYs44Gf44GR44GXDQor44GV44Go44GGLOOBquOBiuOBjQ0KK+OBleOBqOOBhizjgobjgYbjgZ7jgYYNCivjgZXjgajjgYYs44GX44GS44GNDQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBleOCj+OBoCzjga/jgZjjgoENCivjgZvjgY3jgZDjgaEs44Gy44KN44GC44GNDQor44Gb44GN44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBm+OBjeOBrSzjgY3jgYTjgaENCivjgZvjgY3jgYrjgYss44G+44KC44KLDQor44Gb44GN44KELOOBsuOCjeOBguOBjQ0KK+OBm+OBjSzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgZvjgpPjgZ8s44Gu44KK44GC44GNDQor44GX44Gw44GfLOOBleOBqOOBlw0KK+OBl+OBhOOBqizjgbXjgb/jga/jgosNCivjgZfjgYTjgoQs44Gy44Gn44GNDQor44GX44G+44Gw44KE44GXLOOBvuOCguOCiw0KK+OBl+OBvuOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZfjgb7jgaAs44G/44Gh44Go44GXDQor44GX44G+44KA44KJLOOBguOBjeOBsuOBqA0KK+OBl+OBv+OBmizjgbLjgafjgajjgZcNCivjgZfjgb/jgZos44GE44Gf44KLDQor44GX44KC44KA44KJLOOBi+OBpOOBguOBjQ0KK+OBl+OBruOBoCzjgZPjgYbjgZgNCivjgZfjga7jga/jgoks44KC44Go44KG44GNDQor44GX44GK44GW44KPLOOBruOBtuOChuOBjQ0KK+OBl+OCieOBhOOBlyzjgobjgYbjgZgNCivjgZfjgonjgZXjgY0s44KI44GG44GTDQor44GX44KJ44Go44KKLOOBsuOBp+OBmA0KK+OBl+OBleOBhCzjgb7jgZXjgbLjgo0NCivjgZfjgofjgYbjgaAs44GR44GE44GZ44GRDQor44Gd44GGLOOBquOBiuOBjQ0KK+OBneOBruOBuSzjgajjgYrjgosNCivjgZnjganjgYYs44GX44KF44KT44GE44GhDQor44GZ44Gp44GGLOOBleOBqOOBkw0KK+OBmeOBjuOBhuOCiSzjgarjgYrjgY0NCivjgZnjgY7jgoTjgb4s44KK44KH44GG44GE44GhDQor44GZ44GO44KE44G+LOOBqOOCguOBmA0KK+OBmeOBv+OBoCzjgbLjgo3jgY0NCivjgZnjgb/jgYvjgo8s44Gy44Go44GXDQor44GZ44Ga44GNLOOBv+OBreOBi+OBmg0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GZ44Ga44GNLOOBqOOBl+OBquOCig0KK+OBmeOBmuOBjSzjgojjgZfjgobjgY0NCivjgZnjgZrjgY0s44KE44GZ44GeDQor44GZ44Ga44GNLOOBr+OBmOOCgQ0KK+OBmeOBmuOBjSzjgYvjgZrjgYLjgY0NCivjgbvjgZ3jgYvjgo8s44KG44KKDQor44Gf44G244GXLOOBhOOBj+OBnw0KK+OBn+OBoeOBluOCjyzjga7jgorjgbXjgb8NCivjgZ/jgaAs44Gf44GL44GC44GNDQor44Gf44GgLOOBsuOCjeOBqOOBlw0KK+OBn+OBi+OBnyzjgobjgYbjgZnjgZENCivjgZ/jgYvjgYzjgY0s44Gy44Gn44GL44GaDQor44KE44G+44GW44GNLOOBquOBiuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgaTjgZANCivjgZ/jgYvjga/jgZcs44Gy44KN44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOChOOBmQ0KK+OBn+OBi+OBrizjgZ/jgYvjgbLjgo0NCivjgZ/jgYvjgZXjgY0s44Gf44GL44GXDQor44Gf44GL44GZLOOBi+OBmuOCiA0KK+OBn+OBi+OBqOOCiizjgZPjgYbjgZgNCivjgZ/jgYvjgoTjgb4s44G+44GV44G/DQor44Gf44GL44KE44G+LOOBl+OBkuOCiw0KK+OBn+OBi+OChOOBvizjgobjgYbjgZgNCivjgZ/jgYvjgoQs44KI44GX44GL44GaDQor44Gf44GR44GgLOOBn+OBiOOBkw0KK+OBn+OBkeOBoCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYrjgYss44KI44GX44Gy44KNDQor44Gf44GR44GELOOBruOBtuOBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgajjgoLjgYrjgY0NCivjgZ/jgZHjgYbjgaEs44Gu44KK44Go44GXDQor44Gf44GRLOOBkeOBhOOBkw0KK+OBn+OBjeOBv+OChCzjgajjgoLjgbLjgo0NCivjgZ/jgb7jgZ/jgass44GL44Ga44GC44GNDQor44Gf44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBn+OCgOOCiSzjgZHjgpPjgZgNCivjgZ/jgarjgYss44GL44Ga44Gy44GVDQor44Gf44Gq44GLLOOBqOOCguOChOOBmQ0KK+OBn+OBquOBiyzjgYLjgoTjgZMNCivjgZ/jgarjgYss44Gu44KK44Gy44KNDQor44Gf44Gr44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBn+OBq+OChOOBvizjgYLjgY3jgbLjgZMNCivjgZ/jgpPjga4s44GK44GV44KADQor44Gf44GuLOOBsuOBleOBig0KK+OBpuOCieOBluOCjyzjgYLjgY3jgokNCivjgajjgY/jgZfjgZIs44GV44Go44KLDQor44GU44Go44GGLOOBquOBiuOBjQ0KK+OBqOOBv+OBquOBjCzjgbLjgo3jgbLjgZUNCivjgajjgpPjgZfjgofjgYYs44Gy44Gn44KG44GNDQor44Gk44G844GELOOBl+OCh+OBhuOBhOOBoQ0KK+OBpOOBvOOBnyzjgZfjgofjgYbjgZgNCivjgaTjgZjjgoDjgoks44Gq44GK44GNDQor44G+44Gk44KA44KJLOOBguOBjeOCiQ0KK+OBpOOBi+OBoCzjgbLjgafjgY0NCivjgaTjga3jgojjgZcs44GV44Go44G/DQor44Gk44KL44GK44GLLOOBvuOBleOChA0KK+OBpOOCiyzjgojjgZfjgYoNCivjgYbjgaHjgaAs44Gy44Gn44KG44GNDQor44GG44GI44GgLOOBn+OCguOBpA0KK+OBhuOCgeOBleOBjSzjgY3jgojjgZcNCivjgYbjgonjgYvjgo8s44KG44GG44GYDQor44GG44KJ44GL44KPLOOBi+OBmuOBlw0KK+OCj+OBoCzjgZjjgoXjgpMNCivjgo/jgYvjgbDjgoTjgZcs44GR44KT44GYDQor44KP44GL44G+44GkLOOCiOOBl+OBi+OBmg0KK+OCj+OBn+OBquOBuSzjgYLjgaTjgZMNCivjgo/jgZ/jgarjgbks44Gf44GL44GXDQor44KP44Gf44KKLOOBk+OBhuOBmA0KK+OChOOBuSzjgZPjgYbjgYTjgaENCivjgoTjga/jgY4s44GX44KT44GYDQor44KE44G+44GgLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBoCzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgZPjgZcs44G+44GV44KG44GNDQor44KE44G+44KC44GoLOOBneOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgYLjgaTjgZcNCivjgoTjgb7jgoLjgags44KI44GG44GE44GhDQor44KE44G+44KC44GoLOOBleOBoQ0KK+OChOOBvuOCguOBqCzjgb7jgZXjgb8NCivjgoTjgb7jgYbjgaEs44Go44GK44KLDQor44KE44G+44GuLOOBsuOCjeOBteOBvw0KK+OChOOBvuOBiuOBiyzjgajjgoLjgZ/jgYsNCivjgoTjgb7jgZfjgZ8s44Go44GX44Gy44GnDQor44KE44G+44GG44GhLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgbLjgo3jgb7jgZUNCivjgoTjgb7jgZbjgY0s44KG44GL44KKDQor44KE44Gq44GO44GX44G+LOOBvuOBmeOBvw0KK+OChOOBvuOCguOBqCzjgb/jgYvjgZMNCivjgoTjga4s44Gf44GL44Gy44GTDQor44KE44GW44GNLOOBn+OBkeOBlw0KK+OCiOOBlCzjgoTjgZnjga/jgosNCivjgojjgZPjgYQs44GL44Gk44G+44GVDQor44KI44GT44G/44GeLOOBqOOBl+OBjQ0KK+OCiOOBk+OBnyzjgobjgYbjgZgNCivjgojjgZPjgZ8s44Gy44GV44GKDQor44KI44GT44GfLOOChuOBhuOBkw0KK+OCiOOBl+OBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgojjgZfjgaAs44G+44Gh44GTDQor44KI44GX44G144GVLOOBhOOBj+OBteOBvw0KK+OCiOOBl+OBr+OCiSzjgajjgoLjgb7jgZUNCivjgojjgZfjgYTjgYgs44Gv44GY44KBDQor44KI44GX44GL44KPLOOBoeOBiA0KK+OCiOOBl+OBi+OCjyzjgb/jgaTjgbLjgo0NCivjgojjgZfjgYos44KG44GG44GYDQor44KG44GC44GVLOOBvuOBleOCiOOBlw0KK+OChuOBjSzjgYLjgY3jgokNCivjgYLjgaDjgaEs44Go44GX44KG44GNDQor44GK44GK44Gr44GXLOOBi+OBmuOBig0KK+OBiuOBiuOBnyzjgb/jgo/jgZMNCivjgYLjgZXjga4s44G/44Gh44GTDQor44Gr44GX44KA44KJLOOBv+OBpOOCiOOBlw0KK+OChOOBvuOBoCzjgbLjgo3jga7jgooNCivjgZXjgYQs44GP44Gr44GKDQor44G/44KE44KC44GoLOOBi+OBmuOBig0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgZMNCivjgbXjgY/jgYQs44GP44Gr44KEDQor44GK44GP44GgLOOBsuOBleOBkw0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgYoNCivjgbXjgovjgoQs44GL44Gk44G/DQor44KC44Go44KE44G+LOOBquOBiuOBsuOCjQ0KK+OCiOOBl+OBluOBjSzjgobjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44GC44Gk44KN44GGDQor44Go44GN44KPLOOBl+OCheOBhuOBhOOBoQ0KK+OBhOOBquOBoCzjgb7jgZXjgaTjgaoNCivjgajjgY3jgo8s44Gu44KK44KG44GNDQor44KI44GX44GgLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBrizjgZHjgYTjgZMNCivjgYbjgYjjgaAs44Go44KC44GTDQor44Gk44Gh44KELOOChuOBhuOBkw0KK+OBl+OCguOBi+OCjyzjgbXjgb/jgbLjgZMNCivjgb7jgaTjgYQs44GL44Gk44G/DQor44GZ44GM44KELOOCiOOBl+OBig0KK+OBv+OBruOBkOOBoSzjgoTjgZnjgZMNCivjgYbjgYjjgaAs44Gy44GL44KLDQor44GE44GuLOOBqOOCguOBmA0KK+OBvuOBiOOBoCzjgb7jgZPjgagNCivjgaTjgbzjgZ8s44Gu44KK44GKDQor44KI44GX44G/LOOBhOOBj+OBig0KK+OBhOOBoeOBi+OCjyzjgZfjgZLjgbLjgo0NCivjgbvjgoos44Gy44Gn44KEDQor44Gv44KE44GXLOOChuOBn+OBiw0KK+OBl+OBsOOBnyzjgYTjgY/jgZMNCivjgZPjgbDjgoTjgZcs44G+44GZ44Gy44GTDQor44GK44GK44GP44G8LOOBn+OBkeOBlw0KK+OBhOOCj+OBnyzjga7jgbbjgobjgY0NCivjgbXjgZjjgZ8s44G+44GV44Gy44KNDQor44GN44Gf44KA44KJLOOBi+OBmuOBig0KK+OBj+OCjeOBjSzjgZHjgYTjgZMNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44Gw44GfLOOChuOBjeOBkw0KK+OBleOBhOOBqOOBhizjgZfjgoXjgYbjgYTjgaENCivjgbXjgZjjgo/jgoks44Gf44Gg44GXDQor44GE44Go44GGLOOBi+OBmuOBqA0KK+OBhOOBhOOBkSzjgajjgYrjgosNCivjgZXjgoDjgYvjgo8s44GC44GN44Gu44KKDQor44GC44Ga44G+LOOBvuOBleOBjQ0KK+OBguOBiuOBjSzjgYLjgaTjgZcNCivjgbXjgZjjgZ8s44Gk44Gt44GKDQor44G/44KI44GXLOOBqOOBl+OBi+OBmg0KK+OBm+OBjeOChOOBvizjgojjgZfjgYoNCivjgabjgonjgaAs44Gm44KL44Gy44GVDQor44GI44KT44GpLOOBn+OBkeOBlw0KK+OBi+OBjeOCguOBqCzjgZHjgpPjgZjjgo3jgYYNCivjgbXjgovjgoQs44GE44KP44GKDQor44G+44GN44KA44KJLOOBn+OBkeOBig0KK+OBk+OCk+OBrizjgbLjgo3jgZcNCivjgZnjgY7jgZXjgY0s44Go44GX44KG44GNDQor44KI44GX44GgLOOBl+OBkuOBig0KK+OBr+OBjuOCj+OCiSzjgbLjgo3jgZcNCivjgoTjgZbjgY0s44KG44GG44GYDQor44Gr44Gu44G/44KELOOBi+OBmuOBig0KK+OBk+OBleOBiyzjgbLjgo3jgoTjgZkNCivjgZXjga4s44GX44KT44GUDQor44GV44GE44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBl+OCguOBmyzjgZ/jgYvjgojjgZcNCivjgZ/jgYvjga/jgZcs44GL44Ga44Gy44GoDQor44Gf44Gk44GK44GLLOOBvuOBleOBjQ0KK+OBn+OBsOOBnyzjgojjgZfjgZ/jgYsNCivjgarjgYrjgYQs44G+44GV44GTDQor44Gq44GM44GfLOOBvuOBleOBig0KK+OBq+OBl+OBiuOBiyzjgZfjgZLjgosNCivjgb7jgaTjgYvjgo8s44GC44Gk44GXDQor44G/44Ga44GuLOOChuOBhuOBkw0KK+OBqOOBj+OBquOBjCzjgZHjgYTjgZMNCivjgoDjgonjgYvjgb8s44Gy44KN44GNDQor44KE44GZ44GL44KPLOOBqOOBl+OBruOCig0KK+OChOOBvuOBkOOBoSzjgobjgY3jgYoNCivjgojjgZPjgYbjgYgs44Gf44Gg44GXDQor44GC44Ga44G+LOOBruOBvOOCiw0KK+OBhOOBquOBoCzjgb/jgaTjgobjgY0NCivjgYTjgZfjgYQs44Gu44G844KLDQor44GE44G+44Gr44GXLOOBn+OBkeOBig0KK+OBiuOBi+OBrizjgYvjga3jgb/jgaQNCivjgY3jgZcs44Go44GX44GTDQor44GP44G844GfLOOBvuOBleOBruOCig0KK+OBk+OBv+OBquOBvyzjgb7jgobjgb8NCivjgYLjgYTjgoTjgb4s44GX44KH44GG44GY44KN44GGDQor44GV44GuLOOBoeOBi+OCiQ0KK+OBn+OBjeOBjOOCjyzjgZfjgZLjgojjgZcNCivjgZPjgpPjga4s44Gy44KN44KE44GZDQor44Gb44KT44Gg44GELOOBn+OBi+OBlw0KK+OBq+OCj+OBrizjgbLjgafjgZnjgZENCivjgZcs44Gq44GK44KI44GXDQor44GL44Go44GGLOOBi+OBmuOBquOCig0KK+OBguOBi+OBleOBiyzjgY/jgavjgYoNCivjgYrjgpPjgZrjgYss44Gy44KN44GXDQor44GT44GMLOOBk+OBhuOBhOOBoQ0KK+OBr+OChOOBi+OCjyzjgajjgoLjgb8NCivjga/jgZvjgYzjgo8s44G+44GV44KI44GXDQor44G144KL44GL44KPLOOBn+OBkeOBlw0KK+OBteOBmOOBi+OBqSzjgobjgYbjgZgNCivjgajjga7jgYvjgo8s44Gf44GR44GXDQor44G+44Gk44GKLOOCiOOBl+OBig0KK+OBjeOBv+OBmuOBiyzjgb7jgZXjga7jgooNCivjgYrjgaEs44G+44GT44GoDQor44GE44Gh44GT44Gv44KJLOOBvuOBleOChOOBmQ0KK+OBhOOBkeOBoCzjgYLjgY3jgZMNCivjgYLjgonjgZ/jgZEs44GE44GP44GKDQor44GE44GR44GgLOOBqOOBjeOBig0KK+OBhOOBqOOBhizjgojjgYbjgYTjgaENCivjgYTjgZHjgaAs44GI44GkDQor44GE44GE44GgLOOBvuOBleOBqA0KK+OBiuOBiuOBj+OBvizjgYvjgZrjgYgNCivjgY/jgZXjgbAs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBleOCiOOBkw0KK+OBlOOBqOOBhizjgYvjgZrjgoQNCivjgZnjgZrjgY0s44KC44Go44Gu44KKDQor44Gb44GN44GtLOOBsuOCjeOBlw0KK+OBn+OBi+OBoCzjgajjgZfjgobjgY0NCivjgZPjgpPjgaks44KI44GG44GZ44GRDQor44Gf44GR44KE44G+LOOBkeOBhOOBl+OCjeOBhg0KK+OBn+OBi+OBhOOBoSzjgYrjgZXjgoANCivjgZ3jgaAs44GR44KT44GYDQor44Gf44GuLOOBvuOBk+OBqA0KK+OBl+OBruOBluOBjSzjgZXjgajjgZcNCivjga/jgonjgaAs44GC44KEDQor44GP44Gp44GGLOOBi+OBpOOBkw0KK+OBpOOBruOBoCzjgarjgYrjgZMNCivjgbXjgovjgYvjgo8s44Go44GX44GC44GNDQor44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgoTjgb7jgZfjgZ8s44KI44GX44Gv44KLDQor44KG44GL44KPLOOCiOOBl+OBig0KK+OCiOOBl+OBoCzjgYjjgYTjgZMNCivjga/jgoTjgZcs44Go44GX44Gf44GLDQor44Gf44KT44GuLOOBiOOBhOOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZPjgagNCivjgarjgorjgYLjgYQs44KI44GX44Gu44KKDQor44Gf44GL44KA44KJLOOBguOBjeOBig0KK+OBn+OCk+OBrizjgabjgaTjgYoNCivjgZPjgbDjgoTjgZcs44GT44GG44GE44GhDQor44GU44Go44GGLOOBqOOBiuOCiw0KK+OBlOOBhuOBoCzjgY3jgofjgYbjgZMNCivjgarjgYvjgZfjgb4s44G/44Gk44GKDQor44G744GX44GuLOOBteOBv+OBn+OBoA0KK+OCj+OBkyzjgarjgYrjgY0NCivjgZnjgZrjgY0s44GX44GS44GKDQor44KI44GX44G+44GkLOOBvuOBleOBj+OBqw0KK+OBquOBv+OBiuOBiyzjgZfjgpPjgZgNCivjgoTjgb7jgZDjgaEs44Gy44KN44GL44GaDQor44GE44GX44Gw44GXLOOBvuOBk+OBqA0KK+OBhOOBl+OBoCzjgZvjgpPjgoQNCivjgYbjgaHjgoTjgb4s44Gb44GE44GYDQor44GI44KT44GpLOOBl+OBkuOCiw0KK+OBquOBi+OBrizjgb7jgZXjgbXjgb8NCivjgYTjgb7jgYQs44GL44Ga44GKDQor44GK44GV44Gq44GELOOBguOBpOOBlw0KK+OBleOBi+OCguOBqCzjgY3jgojjgZcNCivjgZfjgYrjgb8s44Gh44GL44GXDQor44GX44G+44GW44GNLOOBquOBiuOBjQ0KK+OBpuOCi+OChCzjgajjgZfjgoQNCivjgarjgYvjgZ/jgass44Gq44GK44GNDQor44Gv44GO44KP44KJLOOBjeOCiOOBi+OBmg0KK+OBsuOBjOOBlyzjgZfjgofjgYbjgZMNCivjgbvjgorjgYbjgaEs44KI44GX44GKDQor44G/44Ge44KN44GOLOOBquOBiuOBjQ0KK+OCguOCiizjgZ/jgoLjgaQNCivjgYTjga7jgYbjgYgs44Gf44GR44Gy44GTDQor44GX44GgLOOBv+OBoeOCiA0KK+OChOOBvuOCguOBqCzjgb/jgaHjgZMNCivjgoTjgb7jgoLjgags44Gy44Gn44GC44GNDQor44GK44GK44Gf44GNLOOBi+OBmuOChA0KK+OBteOBmCzjgZXjgarjgYgNCivjgYLjgY3jgoLjgags44G+44KC44KLDQor44GE44GE44GY44G+LOOBguOBjeOBkw0KK+OBiuOBkOOBvizjgobjgb/jgZMNCivjgZXjgajjgYYs44Gf44GL44GKDQor44Gk44Gh44KELOOCiOOBl+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgojjgZcNCivjga/jgoks44Gb44GE44GE44Gh44KN44GGDQor44G144GY44G+44GNLOOBl+OCk+OChA0KK+OCgOOCjeOBnyzjgb/jgaTjgb7jgZUNCivjgoLjgoos44Go44GK44KLDQor44G/44Ge44GQ44GhLOOBqOOBl+OChuOBjQ0KK+OBhOOBkeOBr+OBnyzjgbLjgo3jgobjgY0NCivjgYrjgYzjgo8s44Gy44KN44Gf44GLDQor44GG44GI44GuLOOBvuOBleOBqOOBlw0KK+OBn+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgZPjgbDjgoTjgZcs44G+44GV44GL44GaDQor44GP44KN44GZLOOChOOBmeOBmA0KK+OBjeOBn+OBjOOCjyzjgbLjgo3jgZcNCivjgZfjga7jgb8s44G+44GV44KG44GNDQor44Gv44GbLOOChuOBhuOBnuOBhg0KK+OBpuOCi+OBrOOBvizjgojjgYbjgZMNCivjgY3jgY/jgaEs44GV44Go44GXDQor44Gv44GX44KC44GoLOOBruOCiuOChuOBjQ0KK+OBiuOBiuOBi+OCjyzjgZfjgpPjgagNCivjgYrjgYrjgavjgZcs44Gd44GG44GE44GhDQor44GC44G5LOOBvuOBleOBsuOBqA0KK+OBguOBoOOBoSzjgbLjgafjgY0NCivjgYLjgaDjgaEs44G+44GV44GoDQor44GC44Gg44GhLOOBqOOBl+OChuOBjQ0KK+OBguOBlCzjgYvjgYrjgooNCivjgYLjgYTjga/jgoks44GC44GN44Gy44GTDQor44GC44GE44Gv44KJLOOBsuOBp+OBig0KK+OBguOBhOOBluOCjyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgYvjgb7jgaQs44Gf44Gk44GKDQor44GC44GL44G+LOOBqOOCguOBvw0KK+OBguOBi+OBmyzjgb7jgZXjgobjgY0NCivjgYLjgYvjgoTjgb4s44GX44KT44GS44KTDQor44G144GP44GX44G+LOOBqOOCguOBrg0KK+OBguOBjeOBsCzjgaTjgajjgoANCivjgYLjgY3jga4s44Gv44KL44GNDQor44GC44GN44GX44GLLOOChuOBhuOBmA0KK+OBquOCgeOBjSzjgarjgYrjgb8NCivjgYLjgY3jgZrjgY0s44GX44KT44GE44GhDQor44GC44G+44GgLOOChuOBjeOBig0KK+OBguOBvuOBrizjgajjgYrjgosNCivjgYLjgb/jga4s44Gu44G244Gv44KLDQor44GC44KT44G5LOOChOOBmeOBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgajjgZcNCivjgYLjgpPjgZbjgYQs44Gf44GL44KI44GXDQor44GC44KT44GW44GELOOBsuOCjeOBlw0KK+OBguOBiuOBjSzjgZXjgajjgZcNCivjgYLjgYrjgoTjgY4s44Gf44GL44GKDQor44GC44GK44KE44GOLOOBsuOCjeOChuOBjQ0KK+OBguOBiuOChOOBjizjgbLjgZXjgZcNCivjgYLjgonjgYvjgo8s44Gf44GE44GZ44GRDQor44GC44KJ44GL44KPLOOBvuOBleOChuOBjQ0KK+OBguOCieOBjSzjgajjgZfjgobjgY0NCivjgYLjgonjgoTjgZks44Gy44Go44GXDQor44GC44KJLOOBguOBjeOBig0KK+OBguOCiuOBnyzjgY3jgofjgYbjgZMNCivjgYLjgZXjgaAs44GP44Gr44GKDQor44GC44GV44GgLOOBsuOCjeOBguOBjQ0KK+OBguOBleOBi+OCjyzjga7jgorjgYgNCivjgYLjgZXjgY/jgoks44Go44KC44KG44GNDQor44Gq44GL44GV44GoLOOBguOBjeOCiQ0KK+OBguOBleOBrizjgojjgZfjgbLjgo0NCivjgYLjgZXjgoos44GL44Ga44GNDQor44GC44Gk44G/LOOBguOBjeOCiOOBlw0KK+OBguOCj+OBiyzjgYvjgaTjgb8NCivjgbDjgbAs44GL44Ga44Gy44KNDQor44Gw44KTLOOBkeOCk+OBnuOBhg0KK+OBsOOCkyzjgo/jgZ/jgosNCivjgbDjgpMs44GT44GG44Gf44KN44GGDQor44Gh44KH44GG44GVLOOBvuOBleOBlw0KK+OBoOOBhOOBqSzjgZHjgYTjgZfjgpMNCivjgaDjgYTjgoLjgpMs44Gq44GK44Gy44GTDQor44Gn44KA44KJLOOCiOOBl+OBqA0KK+OBqeOBhCzjgZ/jgYvjgZcNCivjgYjjgbPjgazjgb4s44GC44GR44G/DQor44GI44GQ44GhLOOBmOOCheOCkw0KK+OBiOOBr+OCiSzjgYvjgZrjgYoNCivjgYjjgarjgb8s44Gq44Gk44GTDQor44GI44Go44GGLOOCiOOBl+OBquOCiw0KK+OBhOOCj+OBleOBjSzjgYvjgZrjgYoNCivjgYjjgZbjgY0s44KG44GG44GYDQor44G144GY44GI44GgLOOBmOOCheOCkw0KK+OBteOBmOOBiCzjgZPjgYbjgYTjgaENCivjgbXjgZjjgYzjgY0s44KI44GX44Gh44GLDQor44G144GY44GELOOBqOOBl+OChuOBjQ0KK+OBteOBmOOBhCzjgYLjgY3jgokNCivjgbXjgZjjgYQs44GY44KF44KT44GE44GhDQor44G144GY44GELOOBv+OChuOBjQ0KK+OBteOBmOOBhCzjgZfjgZLjga7jgooNCivjgbXjgZjjgYvjgo8s44GX44KT44GE44GhDQor44G144GY44KC44KKLOOBqOOCguOBrg0KK+OBteOBmOOCguOBqCzjgZfjgofjgYbjgZQNCivjgbXjgZjjgoLjgags44GX44GuDQor44G144GY44GuLOOBn+OBi+OBlw0KK+OBteOBmOOBiuOBiyzjgoTjgZnjgZcNCivjgYrjgZDjgoks44GC44KE44GTDQor44G144GY44GfLOOBvuOBleOBqA0KK+OBteOBmOOBnyzjgZXjgajjgosNCivjgbXjgZjjgZ8s44KG44GN44GKDQor44G144GY44GfLOOBl+OCh+OBhuOBmA0KK+OBteOBmOOCj+OCiSzjgbLjgo3jgZcNCivjgbXjgYvjgaAs44GC44Gk44GXDQor44G144GL44GKLOOBv+OBpOOBsuOCjQ0KK+OBteOBi+OBiizjgb/jgZXjgY0NCivjgbXjgYvjgZssDQor44G144GP44GhLOOCiOOBl+OBsuOCjQ0KK+OBteOBj+OBoCzjgobjgYbjgZMNCivjgbXjgY/jgaAs44G144G/44Gy44GTDQor44G+44Gk44GL44KPLOOBsuOBp+OBig0KK+OBteOBj+OBoCzjgb/jgYsNCivjgbXjgY/jgaAs44KG44GN44GTDQor44G144GP44GgLOOBkeOCk+OBmA0KK+OBteOBj+OBr+OCiSzjgobjgY3jgYoNCivjgbXjgY/jgYQs44Gy44KN44GXDQor44G144GP44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBteOBj+OBiuOBiyzjgZfjgpPjgZQNCivjgZfjgYws44Gq44GK44GoDQor44G144GP44GX44G+LOOBguOBpOOBlw0KK+OBteOBj+OBl+OBvizjgaHjgYvjgZMNCivjgbXjgY/jgZfjgb4s44Gq44GK44GNDQor44GK44GK44GuLOOBquOBiuOBjQ0KK+OBteOBquOBpCzjgajjgZfjgobjgY0NCivjgZTjgYbjgaAs44KI44KK44GTDQor44GU44GG44GgLOOBsuOBp+OBguOBjQ0KK+OBlOOBhizjgYvjgYTjgo3jgYYNCivjgZPjgZDjgows44GN44KT44KEDQor44GU44Go44GGLOOBn+OBi+OBlw0KK+OBlOOBqOOBhizjgobjgY3jgogNCivjga/jgYws44KK44KH44GG44GE44GhDQor44Gv44GO44KP44KJLOOBjeOBj+OBig0KK+OBr+OBvuOBoCzjgYLjgY3jgYoNCivjgb7jgYjjgaAs44GR44KT44GE44GhDQor44Gv44G+44Gv44GfLOOBruOBvOOCiw0KK+OBr+OBvuOBrizjga7jgbbjgbLjgo0NCivjga/jgarjgbbjgZUs44KK44KF44GG44GE44Gh44KN44GGDQor44Gv44Gq44GfLOOCiOOBl+OBmA0KK+OBr+OBquOBv+OBpCzjgojjgZfjgZ/jgYsNCivjga/jgpPjgaAs44GZ44G/44GoDQor44Gv44KJ44GgLOOBguOChOOBkw0KK+OBr+OCieOBoCzjgbXjgb/jgYoNCivjga/jgonjgaAs44GY44KF44KT44GE44GhDQor44Gv44KJ44GgLOOBvuOBleOBruOCig0KK+OBr+OCiSzjgb7jgZXjgobjgY0NCivjga/jgoks44G/44KG44GNDQor44Gv44Gb44GM44KPLOOBvuOBk+OBqA0KK+OBr+OBl+OBkOOBoSzjgYTjgZXjgYoNCivjga/jgZfjgoLjgags44G+44GV44Go44GXDQor44Gv44GX44KC44GoLOOBruOCiuOBjQ0KK+OBr+OBn+OBkeOChOOBvizjgZXjgajjgZcNCivjga/jgZ/jgarjgYss44GN44KI44GXDQor44Gv44Gk44GX44G+LOOBkeOCkw0KK+OBr+OBo+OBqOOCiizjgojjgZfjgbLjgZUNCivjga/jgaPjgajjgoos44Gk44Gt44Gy44GVDQor44Gv44Gj44Go44KKLOOBvuOBleOBkw0KK+OBr+OBo+OBqOOCiizjgbXjgb/jgYoNCivjga/jgaPjgajjgoos44KG44GN44Gy44GTDQor44Gv44Gj44Go44KKLOOCiOOBl+OBruOCig0KK+OBr+OChOOBi+OCjyzjgYLjgY3jgokNCivjga/jgoTjgZfjgaAs44G+44GV44KEDQor44GL44KT44GgLOOBkeOCk+OBmA0KK+OBr+OChOOBlyzjgZPjgYbjgZgNCivjga/jgoTjgZcs44Gk44KI44GXDQor44Gv44KE44GXLOOBsuOCjeOBlw0KK+OBr+OChOOBlyzjgYvjgaTjgb8NCivjgajjgbPjgYvjgo8s44G/44KG44GNDQor44Gy44GS44GfLOOCiOOBhuOBhOOBoQ0KK+OBsuOBkOOBoSzjgb/jgaTjgbLjgo0NCivjgbLjgZDjgaEs44KG44GG44GTDQor44Gy44GY44GL44KPLOOCiOOBl+OBruOCig0KK+OBsuOBi+OBhCzjgb7jganjgYsNCivjgbLjgarjgZ8s44GY44KF44KTDQor44Gy44GuLOOBl+OCh+OBhuOBhOOBoQ0KK+OBsuOBrizjgZ/jgYvjgobjgY0NCivjgbLjgonjgY4s44KE44GZ44GXDQor44KI44KC44GgLOOBi+OBmuOBqA0KK+OBsuOCieOBrizjgb7jgZXjga7jgbYNCivjgbLjgonjga4s44Gy44KN44KG44GNDQor44Gy44KJ44GV44KPLOOBi+OBmuOBsuOCjQ0KK+OBsuOCieOBnyzjgb7jgZXjgbLjgo0NCivjgYLjgZXjga4s44Gy44KN44GXDQor44Gy44KJ44GfLOOBsuOBleOBig0KK+OBsuOCieOBpOOBiyzjgZ/jgZHjgZcNCivjgbLjgo3jgYvjgo8s44G144G/44GC44GNDQor44Gy44KN44Gq44GLLOOBi+OBmuOBsuOBlQ0KK+OBsuOCjeOBmyzjgbLjgZXjgobjgY0NCivjgZ/jgZfjgo0s44GN44G/44GTDQor44Gy44KN44GbLOOBvuOBk+OBqA0KK+OBsuOBl+OBrOOBvizjgbLjgo3jga7jgbYNCivjgYTjgo/jgoLjgags44GY44KF44KTDQor44Gy44GG44KJLOOBsuOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgZvjgYTjgYTjgaENCivjgbvjgpPjgb4s44KE44GZ44KG44GNDQor44G744KT44G+LOOBpOOCiOOBlw0KK+OBu+OCk+OBvizjgZ/jgYTjgokNCivjgbvjgpPjgb4s44Gf44Gk44KN44GGDQor44G744KK44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBu+OCiuOBiizjgYvjgaTjgojjgZcNCivjgbvjgoos44GL44Ga44GKDQor44G744KKLOOBguOBpOOBlw0KK+OBu+OCiizjgZPjgYbjgYTjgaENCivjgbvjgZfjga4s44GX44KT44GYDQor44G744GX44GuLOOBguOBjeOBkw0KK+OBu+OBl+OBrizjgbXjgajjgZcNCivjgbvjgZcs44Gy44KN44GTDQor44G744GdLOOBi+OBmuOBvw0KK+OBu+OBn+OBpizjgobjgYsNCivjgYTjgaHjgYvjgo8s44KG44G/44GTDQor44GE44Gh44GL44KPLOOBleOBqOOBlw0KK+OBhOOBoeOBjSzjgZ/jgZHjgZcNCivjgYTjgaHjga7jgZss44GC44KKDQor44GE44GgLOOBquOBiuOBjQ0KK+OBhOOBp+OBhCzjgb7jgZXjgYvjgZoNCivjgYTjgYzjgonjgZcs44KG44GG44GYDQor44GE44GQ44GhLOOBlOOBhg0KK+OBhOOBhOOBoCzjgYjjgYTjgZbjgbbjgo3jgYYNCivjgYTjgYTjgaAs44G144GY44GKDQor44GE44GE44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBhOOBhOOBmOOBvizjgYvjgZrjga7jgooNCivjgYTjgYTjgoDjgoks44KI44GX44Gu44G2DQor44GE44GE44GuLOOBsuOBp+OBjQ0KK+OBhOOBhOOBmuOBiyzjgbLjgo3jgZcNCivjgYTjgYTjgZrjgYss44GL44Gk44Gy44GTDQor44Gv44KL44GfLOOBqOOBl+OBkw0KK+OBhOOBkeOBoCzjgarjgYrjgbLjgo0NCivjgZnjgZrjgY0s44Go44GK44KLDQor44GE44GR44GgLOOBj+OBq+OBsuOCjQ0KK+OBhOOBneOBuSzjgZPjgYbjgZgNCivjgYTjgZHjgoTjgb4s44GZ44GO44GKDQor44GE44GP44GfLOOBqOOBl+OBguOBjQ0KK+OBhOOBvuOBhOOBmuOBvyzjgaHjgZrjgZMNCivjgoLjgorjgZfjgZ8s44GX44GS44GNDQor44GE44G+44GELOOBn+OBoOOBlw0KK+OBhOOBvuOCgOOCiSzjgb7jgarjgbYNCivjgYTjgb7jgoDjgoks44Gu44KK44KG44GNDQor44GE44Gq44G/LOOBkeOCk+OChA0KK+OBhOOBruOBhuOBiCzjgoTjgZnjgbLjgacNCivjgYTjga7jgYbjgYgs44Gy44KN44GXDQor44GE44Gu44GG44GILOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZ/jgYsNCivjgYTjga7jgYbjgYgs44G/44Gk44GTDQor44GE44Gs44GELOOChuOBjeOBqOOBlw0KK+OBhOOBl+OBoCzjgb7jgarjgbYNCivjgYTjgZfjgaAs44Go44GX44Gy44KNDQor44GE44GX44GgLOOChuOBn+OBiw0KK+OBhOOBl+OBkOOCjSzjgb7jgooNCivjgYTjgZfjgZDjgo0s44Gy44KN44GXDQor44GE44GX44Gv44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBl+OBhCzjgYvjgYrjgosNCivjgYTjgZfjgYQs44GR44GE44GE44GhDQor44GE44GX44GELOOBk+OBhuOBmA0KK+OChuOBjeOBvuOBlSzjgb7jgZXjgajjgZcNCivjgYTjgZfjgYvjgo8s44Gf44GL44GXDQor44GE44GX44GL44KPLOOCiOOBhuOBkw0KK+OBhOOBl+OBj+OCiSzjgobjgZ/jgYsNCivjgYTjgZfjgoLjgoos44Gy44KN44GC44GNDQor44GE44GX44KC44GoLOOCiuOBiA0KK+OBhOOBl+OCguOBqCzjgZXjgaHjgZMNCivjgYTjgZfjgYrjgYss44KG44GLDQor44GE44GX44GK44GLLOOBruOBtuOBig0KK+OBhOOBl+OCj+OBnyzjgarjgYrjgbLjgZUNCivjgYvjgpMs44KI44GG44GE44Gh44KN44GGDQor44GE44GX44GW44GLLOOBi+OCiOOBkw0KK+OBhOOBneOBjOOBhCzjgZ/jgYvjgbLjgo0NCivjgYTjgZ/jgbDjgZcs44GX44KT44GE44GhDQor44GE44Gf44Gw44GXLOOBl+OBkuOBjQ0KK+OBleOBjuOChCzjgbLjgafjgYLjgY0NCivjgYTjgajjgYYs44Gm44Gk44KEDQor44GE44Go44GGLOOBguOBkeOBvw0KK+OBhOOBqOOBhizjga7jgZ7jgoANCivjgYTjgajjgYYs44Gq44GK44KI44GXDQor44GE44Go44GGLOOBi+OBmuOBl+OBkg0KK+OBhOOBqOOBhizjgarjgYrjgobjgY0NCivjgYTjgajjgYYs44Gf44GL44GXDQor44GV44GL44GELOOBk+OBhuOBhOOBoQ0KK+OBhOOBqOOBhizjgYvjgZrjgobjgY0NCivjgYTjgo/jgYQs44GL44GK44KLDQor44GX44G+44KA44KJLOOBteOBleOBoeOBiw0KK+OBhOOCj+OBhCzjgY3jgofjgYbjgZMNCivjgYvjgo/jgarjgYss44GL44Ga44G/DQor44GE44KP44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OCguOBqCzjgZXjgoTjgYsNCivjgYTjgo/jgoLjgags44Gy44Gn44GC44GNDQor44Gf44GR44GgLOOBleOBoeOBkw0KK+OBhOOCj+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgYTjgo/jgarjgYws44Gy44Gn44GKDQor44GE44KP44GKLOOBk+OBhuOBhOOBoQ0KK+OBhOOCj+OBleOBjSzjgZ/jgaTjgbLjgZMNCivjgYTjgo/jgZXjgY0s44Go44KJ44Gy44GTDQor44Gb44GM44KPLOOBvuOBleOBn+OBiw0KK+OBhOOCj+OBl+OCjSzjgojjgZfjgbLjgZUNCivjgYTjgZrjgb8s44G+44GT44GoDQor44GL44GI44KK44KE44G+LOOBquOBiuOBjQ0KK+OBi+OBjOOBvyzjgYTjgY/jgYoNCivjgYvjgYzjgb8s44GX44GS44KI44GXDQor44GL44GY44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OChOOBvuOCguOBqCzjgYjjgYTjgYTjgaENCivjgYvjgY3jgazjgb4s44Gy44KN44GC44GNDQor44GL44GPLOOBsuOCjeOChuOBjQ0KK+OBi+OBvuOBoCzjgb7jgZPjgagNCivjgYTjgarjgYzjgY0s44G+44GV44GIDQor44GL44G+44KC44GoLOOBn+OBiOOBkw0KK+OBi+OBvuOBn+OBqyzjgarjgYrjgbXjgb8NCivjgYvjgb7jgZ8s44Go44KC44GTDQor44KE44G+44GgLOOBiOOBhOOBmA0KK+OBi+OCgeOBoCzjgYLjgY3jgZMNCivjgYvjgoHjgoQs44Gy44Gn44GNDQor44GL44G/LOOBvuOBk+OBqA0KK+OBi+OBv+OBiizjgb7jgarjgb8NCivjgYvjgb/jgoQs44G+44GV44Gu44KKDQor44GL44KC44GoLOOCiOOCiuOBkw0KK+OBi+OBquOBoCzjgb7jgZXjgZ/jgYsNCivjgYvjgarjgYQs44GN44KH44GG44GTDQor44GL44Gq44GELOOCiuOBiOOBkw0KK+OBi+OBquOBluOCjyzjgZXjgaDjgYTjgaENCivjgYvjgpPjgaAs44Gf44GL44Gy44KNDQor44GL44Gt44GE44GhLOOBguOBjeOBig0KK+OBi+OBreOBkyzjgbLjgo3jgbbjgb8NCivjgYvjga3jgZMs44G+44GZ44GKDQor44GL44Gt44GTLOOBl+OCheOBhuOBmA0KK+OBi+OBreOBkyzjgZ/jgZHjgbLjgZMNCivjgYvjga3jgZMs44KE44GIDQor44GL44Gt44GTLOOBsuOBleOBlw0KK+OBi+OBreOBvuOCiyzjgYLjgaTjgZcNCivjgYvjgorjgoQs44KI44GX44Gu44G2DQor44GL44KL44G5LOOBjeOCh+OBhuOBmA0KK+OBi+OBl+OBvizjgbLjgo3jgobjgY0NCivjgYvjgZfjgo/jgY4s44KI44GX44KG44GNDQor44GL44GX44KP44GOLOOBsuOCjeOBlw0KK+OBi+OBmeOChCzjgZHjgYTjgZQNCivjgYvjgZnjgoQs44GX44KH44GG44GTDQor44GL44GZ44KELOOBn+OBi+OBlw0KK+OBi+OBn+OBrizjgZHjgpPjgYTjgaENCivjgZfjgonjgY0s44GL44Gk44GKDQor44GL44Gf44GK44GLLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBi+OBn+OBiuOBiyzjgYLjgaTjgZcNCivjgYvjgZ/jgoTjgb4sDQor44GL44Go44GGLOOBn+OBpuOBig0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYvjgajjgYYs44Gy44KN44GTDQor44GL44Go44GGLOOBsuOCjeOChA0KK+OBi+OBqOOBhizjgZ/jgZHjgZcNCivjgZTjgajjgYYs44Gy44KN44GL44GaDQor44GL44Gk44KELOOBsuOCjeOBlw0KK+OBi+OCj+OBoCzjgb/jgaHjgYoNCivjgYvjgo/jgaAs44GV44Gh44GTDQor44GL44KP44GQ44GhLOOBleOBqOOBlw0KK+OBi+OCj+OBr+OCiSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYvjgo/jga/jgoks44Gy44KN44GC44GNDQor44GL44KP44Gv44GfLOOBsuOCjeOChuOBjQ0KK+OBi+OCj+OBhCzjgZjjgoXjgpPjgYTjgaENCivjgYvjgo/jgYQs44GL44KI44GTDQor44GL44KP44GELOOBv+OBuw0KK+OBi+OCj+OBi+OBvyzjgZ/jgZHjgZcNCivjgYvjgo/jgY3jgZ8s44Go44KC44GC44GNDQor44GL44KP44GN44GfLOOChOOBmeOBkw0KK+OBi+OCj+OCgOOCiSzjgobjgY3jgb7jgZUNCivjgYvjgo/jgoDjgoks44KG44GNDQor44GL44KP44KA44KJLOOBvuOBleOChuOBjQ0KK+OBi+OCj+OBnuOBiCzjgb/jgaoNCivjgbXjgZ/jgY/jgaEs44Gf44Gg44GXDQor44GN44GgLOOChOOBmeOBsuOCjQ0KK+OBjeOBoCzjgojjgZfjgbXjgb8NCivjgY3jgaks44GC44GN44GKDQor44GN44Gv44KJLOOBi+OBpOOBqOOBlw0KK+OBjeOBj+OBoSzjgZPjgYbjgZgNCivjgY3jgY/jgaEs44GC44GE44GTDQor44GN44GP44GfLOOBhOOBleOBig0KK+OBjeOCguOBqCzjgYvjgZrjgb7jgZUNCivjgY3jgoDjgoks44G/44Gu44KLDQor44GN44KA44KJLOOBquOBu+OBvw0KK+OBjeOCgOOCiSzjgZfjgoXjgpPjgYTjgaENCivjgY3jgoDjgoks44GZ44G/44Gy44KNDQor44G+44Gk44KC44GoLOOBn+OBj+OCjeOBhg0KK+OBjeOCgOOCiSzjgajjgZfjgYoNCivjgY3jgoDjgoks44GY44KF44KT44GTDQor44GK44GL44GW44GNLOOBn+OBkeOBig0KK+OBjeOCgOOCiSzjgobjgYsNCivjgY3jgoDjgoks44GC44Gk44GXDQor44GN44Gu44GX44GfLOOBkeOBhOOBkw0KK+OBjeOBlyzjgY3jgb/jgbLjgZMNCivjgY3jgZks44GY44KF44KT44GTDQor44GN44Gf44GL44GcLOOBruOBtuOBjQ0KK+OBjeOBn+OCgOOCiSzjgYLjgY3jgYoNCivjgY3jgYbjgaEs44Gq44GK44GoDQor44GN44GG44GhLOOBn+OBi+OBnuOBhg0KK+OBjeOCiOOBnyzjgaDjgYTjgZnjgZENCivjgZPjgbDjgoTjgZcs44G+44GV44Gv44KLDQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgb/jgojjgZMNCivjgZPjgbDjgoTjgZcs44KI44GX44KG44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OBlw0KK+OBk+OBsOOChOOBlyzjgbLjgafjgYLjgY0NCivjgZPjgbDjgoTjgZcs44KG44GG44GE44GhDQor44GT44Gw44KE44GXLOOCiOOBl+OBig0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgbLjgacNCivjgbLjgo3jgZss44Gv44KL44GKDQor44GT44Gn44KJLOOBguOBjeOBsuOCjQ0KK+OBk+OBjOOBhCzjgbLjgZXjgZ/jgYsNCivjgZPjgZDjgows44GL44Ga44GKDQor44KC44KK44GfLOOBv+OBoeOBsuOBkw0KK+OBk+OCguOBqCzjgojjgYbjgZnjgZENCivjgZPjgpPjga4s44GC44GN44Gy44KNDQor44GT44GV44GLLOOCiOOBl+OChuOBjQ0KK+OBk+OBhOOBkSzjgY3jgojjgZcNCivjgZPjgYTjgZEs44KI44GG44GE44GhDQor44GT44GE44GXLOOBguOBjeOBig0KK+OBk+OBmOOBvizjgYvjgZrjgZ/jgYsNCivjgZPjgZjjgb4s44Gm44GkDQor44GT44GP44G7LOOBi+OBpOOChA0KK+OBk+OBj+OBvuOBhCzjgb/jgYjjgZMNCivjgZPjgb7jgYzjgZ8s44G+44GT44GoDQor44GT44G+44GNLOOBi+OBmuOChuOBjQ0KK+OBk+OBvuOBpCzjgojjgYbjgYTjgaENCivjgZPjgb7jgaQs44GC44Gk44GXDQor44GT44G/44GtLOOBi+OBpOOBruOCig0KK+OBk+OBv+OChOOBvizjgojjgZfjga7jgbYNCivjgZPjgoLjgYrjgYss44G144G/44GKDQor44GT44KC44KKLOOBl+OBkuOBruOCig0KK+OBk+OCk+OBqSzjgbLjgo3jgZcNCivjgZPjgpPjgaks44G/44GN44GKDQor44GT44KT44GpLOOCiOOBl+OBnuOBhg0KK+OBk+OCk+OBqSzjgZ/jgYvjgobjgY0NCivjgZPjgpPjganjgYYs44Gf44Gk44GoDQor44GT44KT44GuLOOBpuOBpOOBig0KK+OBk+OBmeOBjizjgojjgYbjgYTjgaENCivjgZPjgYbjgaAs44Go44GX44KG44GNDQor44GT44KE44Gq44GOLOOBruOBtuOBsuOBkw0KK+OBj+OBvOOBnyzjgbLjgo3jgobjgY0NCivjgY/jgbzjgZ8s44Gq44GK44GNDQor44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBj+OBqeOBhizjgZTjgYYNCivjgY/jgYws44GX44GS44KLDQor44GP44GY44G+LOOBiOOCig0KK+OBj+OBvuOBoCzjgbLjgo3jgZcNCivjgY/jgb7jgY0s44G+44GNDQor44GP44G+44GP44KJLOOBi+OBpOOBqA0KK+OBj+OBvuOCguOBqCzjgYLjgY3jgbLjgZMNCivjgY/jgoLjgYvjgo8s44Gy44KN44Gu44KKDQor44GP44KJ44GX44G+LOOBk+OBhuOBhOOBoQ0KK+OBj+OCiuOBr+OCiSzjgZPjgYbjgZgNCivjgY/jgorjga/jgoks44KG44G/44GTDQor44GP44KK44KA44KJLOOBl+OCheOBhuOBmA0KK+OBj+OCiuOBmSzjgbLjgo3jgZcNCivjgY/jgorjgoTjgb4s44KG44GN44GIDQor44GP44KK44KE44G+LOOBmOOCheOCk+OBhOOBoQ0KK+OBj+OCjeOBoCzjgYLjgY3jgokNCivjgY/jgo3jgYvjgo8s44Gy44KN44GXDQor44GP44KN44GNLOOBruOBtuOChA0KK+OBj+OCjeOBleOBjSzjga7jgbbjgYLjgY0NCivjgY/jgo3jgZks44Gy44KN44GXDQor44GP44GX44GgLOOCj+OBn+OCiw0KK+OBj+OBmeOBoCzjgojjgZfjgZMNCivjgY/jgo/jgbDjgoks44GE44Gh44KN44GGDQor44GG44Gh44GgLOOBkeOBhOOBhOOBoQ0KK+OBvuOBiOOBoCzjgoTjgZnjgbLjgZMNCivjgavjgo8s44GX44GS44G/44GkDQor44G+44GI44Gy44KJLOOBvuOBleOBqA0KK+OBvuOBiOOBi+OCjyzjgbLjgafjgZ/jgYsNCivjgb7jgY3jgoDjgoks44Gy44KN44G/44GkDQor44G+44GN44GuLOOChuOBhuOBmA0KK+OBvuOBjeOBrizjgb7jgooNCivjgojjgYbjgZPjgZ8s44G/44Gh44KE44GZDQor44G+44KL44KE44G+LOOBn+OBoOOBlw0KK+OBvuOBmeOBoCzjgb/jgY3jgYoNCivjgb7jgZnjgaAs44Gm44KL44GC44GNDQor44G+44GZ44Gy44KNLOOBjeOBvw0KK+OBvuOBmeOChOOBvizjgZ/jgY/jgZgNCivjgb7jgaTjgbDjgoks44GT44GG44GYDQor44G+44Gk44Gw44KJLOOChOOBmeOBquOCig0KK+OBvuOBpOOBoOOBhOOCiSzjgb7jgZXjgagNCivjgb7jgaTjgaAs44GX44GS44GKDQor44GV44GV44KC44GoLOOBleOChuOCig0KK+OBvuOBpOOBoCzjgajjgZfjgb8NCivjgb7jgaTjgbXjgZUs44GL44Gk44GYDQor44G+44Gk44GELOOBqOOBiuOCiw0KK+OBvuOBpOOBhCzjgZjjgoXjgpPjgYTjgaENCivjgb7jgaTjgY0s44GC44GN44Gy44GTDQor44GL44Gu44GGLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgobjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44Go44GX44KG44GNDQor44G+44Gk44KC44GoLOOBteOBmOOBig0KK+OBr+OBl+OCguOBqCzjgZfjgofjgYbjgZgNCivjgb7jgaTjgoDjgoks44GN44Gr44GhDQor44G+44Gk44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBquOBvyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgarjgb8s44KG44GN44GKDQor44Gh44GwLOOBpuOBpOOChA0KK+OBvuOBpOOBl+OBsCzjgZPjgYbjgYTjgaENCivjgb7jgaTjgZfjgZ8s44Gy44KN44GXDQor44G+44Gk44GX44GfLOOBiOOBhOOBhOOBoQ0KK+OBvuOBpOOBhuOCiSzjgYTjgaHjgo3jgYYNCivjgb7jgaTjgZbjgY0s44Gf44Gg44GXDQor44GE44G+44GELOOBvuOBleOChuOBjQ0KK+OBvuOChuOChOOBvizjgYLjgaTjgZcNCivjgoHjgpMs44G+44GV44GoDQor44G/44Gh44GM44G/LOOBruOCiuOBig0KK+OBv+OBr+OCiSzjga/jgovjgZMNCivjgb/jgY0s44GC44Gk44GXDQor44G/44KC44KKLOOBsuOCjeOBlw0KK+OBv+OBquOBv+OBkOOBoSzjgYvjgarjgoENCivjgb/jgarjgZrjgY0s44Gq44GK44KG44GNDQor44G/44Gt44KA44KJLOOChuOBi+OCig0KK+OBv+OBl+OBqizjgYvjgZrjgbLjgo0NCivjgb/jgaTjgYQs44Gf44GR44Gv44KLDQor44G/44GG44KJLOOCiOOBhuOBhOOBoQ0KK+OBv+OBhuOCiSzjgZHjgpPjgYTjgaENCivjgoDjgonjgYvjgb8s44G+44GV44Gv44KLDQor44G/44KPLOOBl+OBkuOChuOBjQ0KK+OBv+OChOOBjOOCjyzjgb7jgZXjgYoNCivjgb/jgoTjgY4s44G/44Gh44GTDQor44G/44KE44Gv44KJLOOBqOOBl+OBig0KK+OBv+OChOOBr+OBlyzjgY3jgofjgYbjgZMNCivjgb/jgoTjgYvjgo8s44G+44GV44Go44GXDQor44G/44KE44GNLOOBvuOBleOBmuOBvw0KK+OBv+OChOOCguOBqCzjgZvjgYTjgZgNCivjgb/jgoTjgoLjgags44Gy44KN44GXDQor44G/44KE44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBleOBiyzjgarjgYrjgY0NCivjgb/jgoTjgZ/jgZEs44GX44GS44G/DQor44G/44KE44GfLOOBqOOBl+OBsuOCjQ0KK+OBv+OChOOBnyzjgobjgYbjgZgNCivjgb/jgoTjgZ8s44G+44GV44G/44GhDQor44GP44KN44GgLOOBkeOBhOOBkw0KK+OBv+OCiOOBlyzjgarjgYrjgZMNCivjgb/jgZrjgZPjgZcs44G+44GN44GKDQor44G/44Ga44GT44GXLOOBqOOBl+OBig0KK+OBv+OBmuOBrizjgZ/jgaTjgoQNCivjgb/jgZrjga4s44Gu44G244Gv44KLDQor44G/44Ga44Gf44GrLOOBl+OCk+OBmA0KK+OCguOCiizjgZfjgofjgYbjgZgNCivjgoLjgoos44Gu44KK44GTDQor44KC44KK44GL44KPLOOBguOBjeOBkw0KK+OCguOCiuOBjSzjgoTjgZnjgbLjgo0NCivjgoLjgorjgZfjgZ8s44KI44GX44G/DQor44KC44KK44GfLOOBn+OBoOOBlw0KK+OCguOCiuOBnyzjgYvjgZrjgbLjgo0NCivjgoLjgorjgoTjgb4s44Go44GX44GKDQor44KC44KK44Ge44GuLOOBpOOCiOOBlw0KK+OCguOCiizjgZXjgajjgosNCivjgoLjgoos44GL44Gk44Go44G/DQor44KC44KKLOOChOOBmeOBig0KK+OCguOCiizjgbLjgo3jga7jgooNCivjgoLjgo3jgZrjgb8s44Gu44G844KLDQor44GE44Gu44Gv44GqLOOBi+OBmuOBig0KK+OBk+OBmOOBvizjgZfjgpPjgZQNCivjgoDjgYvjgYQs44Gf44Gk44G/DQor44KA44GL44GELOOBleOBoeOBig0KK+OCgOOCieOBhCzjgaHjgarjgaQNCivjgoDjgonjgYvjgb8s44Go44GK44KLDQor44KA44KJ44GL44G/LOOBoeOBr+OCiw0KK+OCgOOCieOBvuOBpCzjgb7jgZXjgYvjgZoNCivjgavjgo8s44GL44Gk44Gy44KNDQor44KA44KJ44GfLOOBleOBqOOBlw0KK+OCgOOCieOBnyzjgYTjgaHjgo3jgYYNCivjgYrjgYrjga4s44Gf44GL44GXDQor44KA44KJ44KE44G+LOOBoeOBr+OCiw0KK+OCgOOBqOOBhizjgbLjgo3jgoQNCivjgoDjgajjgYYs44Gf44GL44GXDQor44KA44Go44GGLOOBguOBvuOBrQ0KK+OCgOOBpOOBl+OBiyzjgYjjgYTjgYTjgaENCivjgarjgYzjgYQs44Gy44KN44GXDQor44Gq44GM44GELOOBi+OBpOOChuOBjQ0KK+OBquOBjOOCguOBqCzjgZHjgpPjgYTjgaENCivjgYLjgonjgYQs44Gf44GR44Go44GXDQor44Gq44GM44GKLOOChOOBmeOBquOCig0KK+OBquOBjOOBleOCjyzjgYLjgaTjgZcNCivjgarjgYzjgZXjgo8s44GL44Ga44GoDQor44Gq44GM44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBhOOBqOOBhizjgbXjgZXjga7jgbYNCivjgarjgYTjgajjgYYs44GL44Gk44GKDQor44Gq44GL44Gw44KE44GXLOOBi+OBmuOBsuOBlQ0KK+OBquOBi+OBoOOBpizjgZPjgYbjgYTjgaENCivjgarjgYvjgYzjgY0s44G+44GV44Gu44KKDQor44Gq44GM44GILOOBn+OBi+OChuOBjQ0KK+OBquOBi+OBjOOCjyzjgabjgovjgZgNCivjgarjgYvjgYzjgo8s44Go44GX44KG44GNDQor44Gq44GL44GU44KBLOOCiOOBl+OBquOCig0KK+OBquOBi+OBsuOCiSzjgobjgZ/jgYsNCivjgarjgYvjgYQs44GI44G/44GTDQor44Gq44GL44GY44G+LOOBi+OBpOOBqOOCgg0KK+OBquOBi+OBmOOBvizjgb/jgYjjgZMNCivjgarjgYvjgZjjgb4s44Gq44GK44KEDQor44Gq44GL44GY44G+LOOBiOOCig0KK+OBquOBi+OBmOOBvizjgaTjga3jgYLjgY0NCivjgarjgYvjgZjjgb4s44GR44GE44GE44GhDQor44Gq44GL44GY44G+LOOBquOBiuOBsuOBpw0KK+OBquOBi+OBvuOBnyzjga7jgorjgbLjgo0NCivjgarjgYvjgb/jgaEs44GX44KF44KT44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOBvuOBleOBjQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgYLjgY0NCivjgarjgYvjgoDjgoks44G+44GT44GoDQor44Gq44GL44KA44KJLOOBpuOCi+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZgNCivjgarjgYvjgoDjgoks44Gv44GY44KBDQor44Gq44GL44KA44KJLOOBruOCiuOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgarjgYvjgoDjgoks44GL44Ga44Gy44GTDQor44Gq44GL44KA44KJLOOBvuOBleOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgarjgYrjgY0NCivjgarjgYvjgavjgZcs44Go44GX44GC44GNDQor44GK44GK44Gr44GXLOOBvuOBleOBruOCig0KK+OBquOBi+OBq+OBlyzjgajjgZfjgobjgY0NCivjgarjgYvjgavjgZcs44Gu44G244KE44GZDQor44Gq44GL44GuLOOBjeOCiOOBn+OBiw0KK+OBiuOBi+OBluOCjyzjgYvjgojjgZMNCivjgarjgYvjga4s44Gu44Ge44G/DQor44Gq44GL44GuLOOCiOOBl+OBteOBvw0KK+OBquOBi+OBrizjgoLjgYjjgZMNCivjgarjgYvjgYrjgYss44Gm44Gk44KEDQor44Gq44GL44GKLOOBteOBv+OBkw0KK+OBquOBi+OBiizjgYjjgYTjgZgNCivjgarjgYvjgZss44GT44GG44GXDQor44Gq44GL44Gd44GOLOOBvuOBleOBqOOBvw0KK+OBquOBi+OBnyzjgZfjgZLjgZMNCivjgarjgYvjgaTjgYss44Gf44GL44GXDQor44Gq44GL44Gk44GLLOOBvuOBk+OBqA0KK+OBquOBi+OChOOBvizjgbLjgafjgY0NCivjgarjgYvjgoTjgb4s44GC44Gk44GXDQor44Gq44GL44KE44G+LOOBn+OBpOOChA0KK+OBquOBi+OChOOBvizjgZPjgYbjgbjjgYQNCivjgarjgYvjgoTjgb4s44GL44Gk44Gy44GTDQor44Gq44GL44GW44KPLOOBv+OBpOOBkA0KK+OBquOBv+OBjSzjgY/jgavjgYoNCivjgarjgonjgZfjgb4s44G+44GV44GC44GNDQor44Gq44KJLOOBn+OBkeOBsuOBkw0KK+OBj+OBqeOBhizjgbLjgZXjgZcNCivjgarjgaTjga4s44G/44Gh44Gv44KLDQor44Gq44Gk44KE44G+LOOChuOBhuOBkw0KK+OBiOOBqOOBhizjgbLjgo3jgZcNCivjgavjgbjjgYQs44Gf44GL44GXDQor44GK44GP44GuLOOBleOChuOCig0KK+OBvuOBiOOBu+OCiizjgbLjgo3jgb8NCivjgavjgZfjgaAs44Gy44Go44GXDQor44Gr44GX44GQ44GhLOOBn+OBpOOBig0KK+OCguOCiizjgobjgY3jgZMNCivjgavjgZfjgYvjgo8s44G+44GV44GXDQor44Gr44GX44GP44KJLOOBl+OBkuOCiw0KK+OBq+OBl+OCguOBqCzjgb7jgZXjgY0NCivjgavjgZfjgYos44Go44GX44Gy44GTDQor44Gr44GX44KP44GNLOOBkeOBhOOBkw0KK+OBq+OBlyzjgb7jgZXjgosNCivjgavjgo8s44G+44GV44GNDQor44Gu44G244G+44GVLOOBv+OBleOBqA0KK+OBruOBoCzjgoLjgajjgbLjgZMNCivjga7jgZDjgaEs44Gf44GL44GXDQor44Gu44GQ44GhLOOBkeOCkw0KK+OBruOBu+OCiizjgbLjgafjgobjgY0NCivjga7jgZ/jgass44G+44GV44Gf44GRDQor44Gu44G+LOOBleOBqOOBlw0KK+OBruOBv+OChOOBvizjgajjgZfjgo3jgYYNCivjga7jgoLjgags44Go44GX44GC44GNDQor44Gf44KT44GW44KTLOOBv+OBoeOBig0KK+OBiuOBiuOBi+OCjyzjgYvjgZrjgbLjgZMNCivjga7jga7jgoTjgb4s44G+44GV44GNDQor44Gu44KK44GL44GtLOOBvuOBleOCiw0KK+OBruOCjSzjgZvjgYTjgYTjgaENCivjga4s44GX44KT44GE44GhDQor44GK44Gw44GqLOOBsuOCjeOBlw0KK+OBiuOBs+OBquOBnyzjgYLjgY3jgbLjgZMNCivjgYrjgaHjgYLjgYQs44KI44GX44Gu44KKDQor44GX44G+44KA44KJLOOBsuOCjeOBlw0KK+OBiuOBoOOBrSzjgojjgZfjgYvjgZoNCivjgYrjgYzjgo8s44Gq44GK44G/DQor44GK44GQ44KJLOOBsuOBp+OBqOOBlw0KK+OBiuOBkOOCiSzjgZvjgYTjgZgNCivjgYrjgZDjgoks44GX44KT44GZ44GRDQor44GK44GK44GQ44KNLOOBhOOCj+OBig0KK+OBiuOBiuOBsOOChOOBlyzjgZHjgYTjgZ7jgYYNCivjgYrjgYrjgbDjgoTjgZcs44KE44GZ44KG44GNDQor44GK44GK44GwLOOBiOOCiuOBkw0KK+OBiuOBoSzjgZfjgpPjgZQNCivjgYrjgYrjgacs44Go44GX44Gy44GTDQor44GK44GK44G744KKLOOBruOCiuOBig0KK+OBiuOBuyzjgZPjgZnjgZENCivjgYrjgYrjgYTjgZcs44KC44Go44GE44GhDQor44GK44GNLOOCiOOBl+OChuOBjQ0KK+OBiuOBiuOBj+OBvCzjgb7jgZXjgbLjgo0NCivjgYrjgYrjgY/jgbws44G+44GV44GP44GrDQor44GK44GK44G/44GhLOOBn+OBkeOBruOCig0KK+OBiuOCgOOCiSzjgaTjga3jgYLjgY0NCivjgYrjgYrjgavjgZcs44GE44GV44GKDQor44GK44GuLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBiuOCieOBhCzjgZnjgZnjgoANCivjgYrjgZXjgY0s44GV44Go44GXDQor44GK44GK44GV44KPLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBleOCjyzjgZ/jgaDjgZcNCivjgYrjgYrjgZXjgo8s44KK44KF44GG44GYDQor44GK44GK44Gf44GrLOOBkeOCk+OBmA0KK+OBiuOBiuOBnyzjgarjgYrjgY0NCivjgYrjgYrjgajjgoIs44GC44GN44GKDQor44GK44GW44GNLOOBk+OBhuOBmA0KK+OBiuOBiuOBpOOBiyzjgZ/jgZHjgZcNCivjgYrjgYrjgaTjgYss44Go44GX44KN44GGDQor44GK44GK44Gk44GNLOOBpuOBpOOChA0KK+OBiuOBiuOChCzjgb7jgZXjgbLjgo0NCivjgYrjgbLjgoMs44GP44Gr44Gy44GTDQor44GK44GK44KELOOBmeOBkOOCiw0KK+OBiuOBi+OBoCzjgaTjgZDjgYoNCivjgYrjgYvjgaAs44KI44GX44Gy44KNDQor44GK44GL44GgLOOBqOOBl+OBsuOCjQ0KK+OBiuOBi+OBoCzjgZfjgpPjgYTjgaENCivjgYrjgYvjga/jgoks44Gy44KN44GNDQor44GK44GL44KC44GoLOOCiOOBl+OBig0KK+OBj+OBleOBsCzjgbLjgo3jgZcNCivjgYrjgYvjgoDjgoks44G+44GV44GL44GaDQor44GK44GL44KA44KJLOOBvuOBleOBjQ0KK+OBiuOBi+OBrizjgbLjgo3jgZcNCivjgajjgbPjgZ8s44GX44KF44GG44G444GEDQor44G744Gd44GL44KPLOOBk+OBhuOBmA0KK+OBhuOBiOOBoCzjgajjgojjgYvjgZoNCivjgZPjgZvjgY0s44KG44G/DQor44Gf44GW44KPLOOBl+OCheOCk+OBmA0KK+OChOOBvuOBluOBjSzjgojjgZfjgYvjgZoNCivjgYjjgZDjgaEs44Gy44KN44KG44GNDQor44KC44Gh44GgLOOBmeOBmeOCgA0KK+OBguOBjeOCguOBqCzjgY3jgYjjgYQNCivjgavjgZcs44GC44Gk44GNDQor44GE44G+44GE44GXLOOBl+OBkuOBqOOBlw0KK+OBn+OBi+OChOOBmSzjga7jgbbjgojjgZcNCivjga/jgZ8s44G+44GV44KG44GNDQor44G144GY44GV44KPLOOBguOBjeOCiQ0KK+OCgOOBqOOBhizjgbLjgZXjgZcNCivjgoLjgZ/jgYQs44GX44KT44GE44GhDQor44Gf44GgLOOBn+OBi+OChuOBjQ0KK+OBk+OBhOOBmuOBvyzjgYvjgZrjgojjgZcNCivjgaTjgbzjgY/jgoks44GT44GG44Ge44GGDQor44Gy44KJ44Gw44KE44GXLOOBsuOCjeOBmA0KK+OBpOOBmOOBi+OCjyzjgbLjgo3jgYvjgZoNCivjgb/jgaTjgYTjgZcs44Gb44GE44GE44GhDQor44KE44G+44GX44GfLOOBkeOCk+OBmA0KK+OBvuOCi+OBiuOBiyzjga7jgbbjgZ/jgYsNCivjgbXjgYvjgYos44Go44GK44KLDQor44Gk44KA44KJLOOBi+OBquOBkw0KK+OBvuOChuOBvyzjgajjgZfjgYgNCivjgYLjgonjgYvjgo8s44G/44Gp44KKDQor44GK44G144GhLOOBmOOCheOCkw0KK+OBleOBleOCguOCiizjgobjgZ/jgYsNCivjgZXjgajjgYYs44GC44GN44KJDQor44Gf44GL44GOLOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjgb7jgZXjgb/jgaQNCivjgaTjgbzjgZQs44G144G/44Gy44GTDQor44Go44KK44GV44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBkOOBjSzjgZHjgYTjgZQNCivjga/jgZvjgYzjgo8s44Go44KC44KG44GNDQor44Gv44KE44GXLOOBk+OBhuOBmA0KK+OBsuOCieOChOOBvizjgZfjgZLjgosNCivjgbXjgY/jgZfjgb4s44Go44GX44GNDQor44G+44Gk44GX44G+LOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBhCzjgbLjgafjgY0NCivjgYTjgZfjgYQs44Gu44KK44GTDQor44GE44G+44GELOOBv+OChuOBjQ0KK+OBquOBi+OBpOOBmCzjgobjgY3jgYgNCivjgbvjgYTjgaAs44Gk44Gt44GKDQor44GV44KP44Gv44GfLOOBv+OBpOOCiw0KK+OBn+OBr+OCiSzjgZfjgofjgYbjgZgNCivjgZ/jgYvjga/jgZcs44G/44Gt44G+44GVDQor44GZ44Ga44GNLOOBsuOBp+OBguOBjQ0KK+OCiOOBk+OChOOBvizjgZHjgpPjgZgNCivjgYTjgZfjgYvjgo8s44GR44KT44GYDQor44GC44GV44GuLOOCiOOBl+OBn+OBiw0KK+OBi+OBreOBkyzjgZfjgoXjgYbjgZgNCivjgY/jgo3jgZss44KI44GG44GZ44GRDQor44GV44GL44GN44Gw44KJLOOBguOCieOBnw0KK+OBi+OBleOBvizjgZHjgYTjgZMNCivjgZnjgY7jgoTjgb4s44KI44GX44G+44GVDQor44GZ44GgLOOBpuOBpOOChA0KK+OBn+OBquOBiyzjgYLjgoQNCivjgaTjgbzjgYQs44GI44Gk44GTDQor44Gv44GX44KC44GoLOOBoeOBiOOBkw0KK+OBteOBj+OBoSzjgZXjgajjgb8NCivjgYLjgonjgYQs44Go44KC44GTDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OChOOBl+OBvizjgarjgYrjgobjgY0NCivjgYvjgo/jgb7jgZ8s44Gf44GR44Gu44KKDQor44GZ44KT44GgLOOBguOBpOOChA0KK+OBv+OBmuOBn+OBqyzjgb/jga7jgosNCivjgoTjgb7jgZPjgZcs44Gu44KK44KG44GNDQor44GC44G+44GM44KELOOChuOCgeOBrg0KK+OBguOCieOBjSzjgbLjgZXjgogNCivjgYTjgb7jgYQs44Go44GX44Gv44KLDQor44GE44G+44GW44GNLOOBn+OBi+OBsuOBlQ0KK+OBjeOCgOOCiSzjgYvjgaTjgbLjgacNCivjgZnjgY7jgoTjgb4s44GE44GV44GKDQor44GZ44Ga44GNLOOBoOOBhOOBmeOBkQ0KK+OBpOOCiyzjgb/jga7jgosNCivjga/jgZPjgZbjgY0s44GC44GN44KJDQor44Gf44GN44GW44KPLOOBpOOCiOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjga7jgbYNCivjgb7jgZnjgaAs44KI44GX44Gu44KKDQor44Gk44Gw44GNLOOBoeOBguOBjQ0KK+OBv+OBmeOBvyzjgaHjgYvjgZMNCivjgoTjgYTjgZ8s44G+44GNDQor44GL44KP44GkLOOBsuOBqOOBlw0KK+OBpOOBi+OBoCzjgZ/jgZHjgbLjgZMNCivjgarjgYvjgoLjgags44G144G/44GTDQor44G144Gq44Gz44GNLOOBleOBquOBiA0KK+OCiOOBl+OBluOCjyzjgY3jgofjgYbjgZMNCivjgajjgYbjgb4s44KI44GG44GTDQor44Gb44GNLOOBvuOCig0KK+OCgOOCieOBnyzjgarjgYrjgY0NCivjgYvjgZ/jgoTjgb4s44G+44GV44Gy44KNDQor44GN44GpLOOBl+OCheOBhuOBmA0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgZfjga7jgb/jgoQs44Go44KC44GL44GaDQor44Gf44Gq44GLLOOBi+OBmuOChuOBjQ0KK+OBr+OCiSzjgojjgZfjga7jgooNCivjgoLjgorjgZ/jgass44GX44KH44GG44G444GEDQor44GE44Gh44Gu44GbLOOBi+OBmuOChuOBjQ0KK+OBteOBmOOCguOBqCzjgYvjgaTjgobjgY0NCivjgYbjgYjjga4s44GT44GG44GYDQor44GX44GX44GpLOOBqOOBl+OBruOCig0KK+OBv+OBhuOCiSzjgZnjgZnjgoANCivjgYbjgaHjgaAs44KL44G/44GTDQor44Gp44GELOOBk+OBhuOBhOOBoQ0KK+OBneOBmeOBvyzjgajjgZfjgobjgY0NCivjgojjgZfjgaAs44G+44GV44KG44GNDQor44Gf44GL44Gv44GXLOOBqOOBl+OBig0KK+OChOOBvuOBkOOBoSzjgarjgYjjgZMNCivjgZXjgZUs44KG44GN44GTDQor44Gv44Gb44GM44KPLOOBi+OBiuOCig0KK+OBguOBpOOBnyzjgojjgZfjgYoNCivjgYTjgaHjgYvjgo8s44G+44GV44GC44GNDQor44GG44GuLOOBleOBqOOBvw0KK+OBiuOBjOOCjyzjgobjgY3jgZMNCivjgYrjgaAs44Gy44KN44GL44GaDQor44Gf44GL44GV44GNLOOBvuOBjeOBkw0KK+OBn+OBi+OBr+OBlyzjgaTjgojjgZcNCivjgZ/jgaAs44Gf44Gg44GXDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBqOOBj+OBquOBjCzjgbLjgo3jgZcNCivjgajjgb/jgZ8s44GY44KF44KT44GTDQor44Gq44GE44Go44GGLOOCiuOBiA0KK+OBr+OCieOBoCzjgYjjgb/jgZMNCivjgbLjgonjgYvjgo8s44Go44KC44GTDQor44G144Gq44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBqeOBsOOBlyzjgobjgY0NCivjgb/jgYbjgoks44Gh44GTDQor44KI44GX44GgLOOBsuOCjeOBguOBjQ0KK+OBiuOBiuOBn+OBkSzjgZjjgoXjgpPjgZgNCivjgY/jgonjgZ8s44KE44GZ44Gy44KNDQor44GP44KK44GfLOOBleOBqOOBlw0KK+OBoOOCkyzjgb7jgZPjgagNCivjgoLjgorjgZfjgb4s44GX44KT44GYDQor44KI44GX44GgLOOCiOOBhuOBmA0KK+OCj+OBi+OBsOOChOOBlyzjgobjgb/jgZMNCivjgYLjgZLjgb7jgaQs44Gy44KN44G/44GhDQor44GE44GX44GQ44KNLOOBk+OBmeOBkQ0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgo0NCivjgZXjgYTjgajjgYYs44GX44KT44GE44GhDQor44Gq44GE44Go44GGLOOBv+OBoeOCiA0KK+OBv+OChOOBvuOBiCzjgajjgZfjgoQNCivjgYvjganjgo/jgY0s44GC44Gk44GXDQor44G144GP44KC44GoLOOBv+OBjeOBig0KK+OBq+OBl+OBr+OCiSzjgYLjgY3jgokNCivjgYrjgYvjgoTjgb4s44GL44Ga44Gq44KKDQor44GK44GL44KE44GZLOOBv+OBiOOBkw0KK+OBj+OCjeOBi+OCjyzjgajjgYrjgosNCivjgYrjgY3jgZ8s44KI44GX44Gy44GVDQor44GK44GP44G/44KELOOBvuOBleOBi+OBmg0KK+OBiuOBj+OCgOOCiSzjgaDjgYQNCivjgYrjga7jgaAs44Gq44KL44G/DQor44GK44Gu44Gn44KJLOOBsuOBqOOBlw0KK+OBiuOBrizjga/jgovjgobjgY0NCivjgYrjga4s44Gq44GK44G144G/DQor44GK44GuLOOCiOOBl+OBteOBvw0KK+OBvuOBpOOBhCzjgabjgovjgYoNCivjgYrjgZ3jgYjjgYzjgo8s44KE44GZ44Gq44KKDQor44GK44GW44GNLOOBruOBtuOChuOBjQ0KK+OBiuOBnOOBjSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga4s44GE44GV44GKDQor44KK44KH44GG44GL44GELOOCiOOBl+OBjQ0KK+OBleOBkuOBleOBiyzjgorjgoXjgYbjgYTjgaENCivjgZXjgY7jgoQs44GN44KH44GG44GE44GhDQor44GV44GE44GfLOOBvuOBleOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYLjgY3jgb/jgaQNCivjgZXjgYTjgajjgYYs44GU44KN44GGDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBleOBhOOBqOOBhizjgaTjga3jgYoNCivjgZXjgYTjgajjgYYs44KK44GLDQor44GV44GL44GQ44GhLOOBsuOBp+OBguOBjQ0KK+OBleOBi+OBhCzjgbLjgo3jgb8NCivjgZfjgb7jgaAs44Gy44KN44GXDQor44GV44GL44GN44Gw44KJLOOBhOOBpOOCjeOBhg0KK+OBleOBi+OCguOBqCzjgZHjgpPjgZgNCivjgZXjgYvjgoLjgags44G+44GV44GNDQor44GV44GL44KC44GoLOOCgOOBreOBsuOCjQ0KK+OBleOBi+OCiizjga7jgbbjgbLjgo0NCivjgZXjgYvjgZ8s44GV44Go44KLDQor44GV44GP44G+LOOBl+OCk+OBmA0KK+OBleOBj+OCieOBhCzjgZ/jgYvjga7jgbYNCivjgZXjgY/jgonjgYQs44Gf44GL44GXDQor44GV44GP44KJ44GELOOCiOOBl+OBsuOCjQ0KK+OBleOCk+OBruOBhuOBvuOCiyzjgobjgY3jgYoNCivjgZXjga4s44KG44Gf44GLDQor44GV44GV44G5LOOBn+OBpOOCjeOBhg0KK+OBleOBleOBjSzjgZfjgpPjgZQNCivjgZXjgZXjgY0s44Go44KC44Gy44KNDQor44GV44GV44GNLOOBn+OBkeOBlw0KK+OBleOBleOBjSzjgarjgYrjgagNCivjgojjgZfjgaAs44Gy44KN44GXDQor44GV44Go44GGLOOCiOOBl+OBsuOBkw0KK+OBleOBqOOBhizjgYvjgZrjga7jgooNCivjgZXjgajjgYYs44Gf44GL44Gu44KKDQor44GV44Go44GGLOOBr+OChOOBqA0KK+OBleOBqOOBhizjgoTjgZnjgbLjgZMNCivjgZXjgajjgYYs44KI44GX44KG44GNDQor44GV44Go44GGLOOCiOOBl+OBqA0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgZXjgajjgYYs44G+44GV44GTDQor44GV44Go44GGLOOBqOOCguOBkw0KK+OBleOBqOOBhizjgobjgYbjgYTjgaENCivjgZXjgajjgYYs44Gh44GC44GNDQor44GV44Go44GGLOOBi+OBmuOChA0KK+OBleOBqOOBhizjgb7jgZXjgb8NCivjgZXjgajjgYYs44GV44Go44GXDQor44GV44KP44GE44GnLOOChuOBhuOBhOOBoQ0KK+OBleOCj+OBhCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZXjgoTjgarjgY4s44G+44KKDQor44Gb44GM44KPLOOCiOOBl+OBsuOCjQ0KK+OBm+OBhOOBv+OChCzjgbLjgo3jgZcNCivjgZvjgYTjgoTjgb4s44GX44GS44GNDQor44Gb44GN44GL44KPLOOBguOBjeOCiQ0KK+OBm+OBjSzjgZPjgYbjgZgNCivjgZvjgY0s44Gf44GR44GXDQor44Gb44KT44GgLOOBsuOCjeOBn+OBiw0KK+OBm+OCk+OBlOOBjyzjgY3jgofjgYbjgZMNCivjgZvjga4s44Go44GX44GC44GNDQor44Gb44GX44KCLOOBk+OBhuOBmA0KK+OBm+OBn+OBiyzjgZHjgYQNCivjgZnjgYws44KK44KH44GG44GE44GhDQor44G/44Gq44G/LOOChOOBmeOBlw0KK+OBl+OBsOOBnyzjgaHjgYLjgY0NCivjgZfjgbbjgoQs44Gy44KN44G/44GhDQor44GX44G244KELOOBpOOCiOOBlw0KK+OBl+OBtuOChCzjgb7jgZXjga7jgooNCivjgZfjgYTjga4s44Gy44KN44GTDQor44GX44GL44GfLOOBn+OBi+OBsuOCjQ0KK+OBl+OBjeOBtizjgbLjgo3jgZcNCivjgZfjgb7jgaAs44G+44GV44Gy44KNDQor44GX44G+44GgLOOBsuOCjeOBlw0KK+OBl+OBvuOBjOOBvyzjgajjgZfjgYLjgY0NCivjgZfjgb7jgoLjgoos44G+44GV44Gy44GTDQor44GX44G+44KA44KJLOOChuOBjeOBruOCig0KK+OBl+OBvuOBluOBjSzjgZPjgYYNCivjgZfjgb7jgZbjgY0s44Gf44GL44GC44GNDQor44GX44G/44GaLOOBiOOBhOOBnuOBhg0KK+OBl+OBv+OBmizjgorjgYgNCivjgZfjgb/jgZos44Gy44KN44GXDQor44GX44KC44GgLOOBkeOBhOOBv+OCkw0KK+OBl+OCguOBsuOCiSzjgZPjgYbjgZ/jgo3jgYYNCivjgZfjga7jga/jgoks44GC44GN44Gy44KNDQor44GX44Gu44Gv44KJLOOBvuOBquOBtg0KK+OBl+OBruOBluOBjSzjga7jgbbjgZMNCivjgZfjga7jgZbjgY0s44Gy44KN44GNDQor44GX44KT44G9LOOBi+OBmeOBvw0KK+OBl+OCk+OBn+OBqyzjgobjgYbjgZgNCivjgYrjgYrjgY3jgaks44Gd44Go44Gy44KNDQor44GX44GK44Gs44G+LOOBjeOCiOOBvw0KK+OBl+OBiuOBnyzjgY/jgavjgYLjgY0NCivjgZfjgYrjgoQs44G+44GV44Gy44KNDQor44GX44GK44GW44KPLOOBhOOBleOBig0KK+OBl+OCieOBhCzjgZfjgZLjgY0NCivjgZfjgonjgZXjgY0s44Gy44KN44GXDQor44GX44KJ44Go44KKLOOBvuOBleOBqOOBlw0KK+OBl+OCieOBqOOCiizjgZ/jgYvjgbLjgo0NCivjgZfjgo3jgY0s44Gy44Go44GXDQor44GX44KN44GX44GfLOOBl+OBkuOBjQ0KK+OBi+OBl+OBvizjgojjgZfjgYoNCivjgZfjgoXjgYYs44GU44GE44GhDQor44GE44G+44GELOOBsuOBp+OBr+OCiw0KK+OBneOBiOOBoCzjgbLjgo3jgZMNCivjgZ3jgYws44GE44Ga44KLDQor44Gd44KPLOOBi+OBmuOBquOCig0KK+OBmeOBoCzjgZPjgYbjgYTjgaENCivjgZnjgaAs44G+44GV44KLDQor44GZ44GgLOOBquOBiuOBjQ0KK+OBmeOBiOOBoCzjga7jgorjgojjgZcNCivjgZnjgYjjgoLjgoos44GV44GN44GTDQor44GZ44GI44GK44GLLOOBl+OCh+OBhuOBhOOBoQ0KK+OBmeOBjOOCj+OCiSzjgZfjgpPjgZgNCivjgZnjgZLjga4s44KE44GZ44Gy44KNDQor44GZ44GO44KC44GoLOOChOOBmeOBig0KK+OBmeOBjuOBnyzjgobjgYbjgYTjgaHjgo0NCivjgZnjgY7jgoTjgb4s44G/44Gk44GKDQor44GZ44GO44KE44G+LOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBmeOBjuOChOOBvizjgYjjgYTjgZgNCivjgZnjgb/jgajjgoIs44Gu44G844KLDQor44GZ44G/LOOChuOBjQ0KK+OBmeOBquOBjCzjgbLjgafjgobjgY0NCivjgZnjgZbjgY0s44Gm44Gk44KEDQor44GZ44Ga44GNLOOBpuOCi+OBvw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgZnjgZrjgY0s44KE44GZ44GXDQor44GZ44Ga44GNLOOChuOBjeOBig0KK+OBmeOBmuOBjSzjgZfjga7jgbYNCivjgZnjgZrjgY0s44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBqOOBl+OChA0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GL44Ga44GC44GNDQor44GZ44Ga44GNLOOBkeOBhOOBmA0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjga/jgosNCivjgZnjgZrjgY0s44Gu44G244GKDQor44GZ44Ga44GNLOOBruOCiuOChuOBjQ0KK+OBmeOBmuOBjSzjgorjgofjgYbjgZnjgZENCivjgZ/jgbws44GX44KTDQor44Gf44G244GhLOOBn+OBpOOChA0KK+OBn+OBtuOBlSzjgajjgZfjgbXjgb8NCivjgZ/jgaHjgYvjgo8s44KE44GZ44KG44GNDQor44Gy44KJ44GNLOOChuOBhuOBhOOBoQ0KK+OBn+OBjOOBhCzjgoTjgZnjgZcNCivjgZ/jgYzjgo8s44G/44G7DQor44Gf44GMLOOBruOBtuOBn+OBiw0KK+OBn+OBkOOBoSzjgb/jgZXjgYoNCivjgZ/jgZDjgaEs44GX44KTDQor44Gf44GQ44GhLOOBv+OBquOBkw0KK+OBn+OBi+OBsOOBn+OBkSzjgojjgYbjgYTjgaENCivjgZ/jgYvjgY4s44GR44KT44Gf44KN44GGDQor44Gf44GL44Gv44KJLOOBqOOBl+OChA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBm+OBhOOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44Gv44KL44GV44GgDQor44Gf44GL44Gv44GXLOOBvuOBleOBkw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44Gn44GKDQor44Gf44GL44Gv44GXLOOBi+OBmuOBl+OBkg0KK+OBn+OBi+OBr+OBlyzjga7jgorjgbLjgZMNCivjgZ/jgYvjga/jgZcs44Go44KI44G/DQor44Gf44GL44Gv44GXLOOBv+OBruOCiw0KK+OBn+OBi+OBhOOBlyzjgajjgoLjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44Gf44GL44G/LOOBv+OBruOCiw0KK+OBn+OBi+OCgOOCiSzjgZfjgo3jgYYNCivjgZ/jgYvjgarjgZcs44KI44GX44Gu44KKDQor44Gv44Gb44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBrizjgY3jgofjgYbjgZMNCivjgZ/jgYvjgYrjgYss44Gf44GL44GNDQor44Gf44GL44GK44GLLOOBruOBtuOChuOBjQ0KK+OBn+OBi+OBn+OBqyzjgYLjgY3jgokNCivjgZ/jgYvjgaTjgZgs44GL44Gk44GYDQor44Gf44GL44Gk44GLLOOBjeOCiOOBlw0KK+OBn+OBi+OBpCzjgb7jgZXjgb8NCivjgZ/jgYvjgoTjgb4s44GX44KT44GE44GhDQor44Gf44GL44KE44G+LOOBqOOBiuOCiw0KK+OBn+OBi+OChOOBvizjgoTjgZnjgZcNCivjgZ/jgZHjgaAs44GT44GG44GE44GhDQor44Gf44GR44GgLOOChOOBmeOBruOCig0KK+OBn+OBkeOBoCzjgZ/jgYvjgYvjgZoNCivjgZ/jgZHjgaAs44Gq44GK44Gy44GoDQor44Gf44GR44KC44GoLOOBruOBnuOBvw0KK+OBn+OBkeOCguOBqCzjgYvjgaTjgZcNCivjgZ/jgZHjgYbjgaEs44Gf44GL44GTDQor44Gf44GR44GG44GhLOOBsuOCjeOBi+OBmg0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgYTjgaENCivjgZ/jgZHjgYbjgaEs44Go44GK44KLDQor44Gf44GN44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBn+OBvuOBoSzjgbLjgo3jgZcNCivjgZ/jgoDjgoks44Go44GX44Gy44KNDQor44Gf44Gq44G5LOOBpOOBi+OBlQ0KK+OBn+OBquOBiyzjgZHjgYTjgZMNCivjgZ/jgarjgYss44Gq44GO44GVDQor44Gf44Gq44GLLOOBn+OBi+OChuOBjQ0KK+OBn+OBquOBiyzjgb7jgY0NCivjgZ/jgarjgYss44Gy44KN44G144G/DQor44Gf44Gq44GLLOOBj+OBq+OBsuOBkw0KK+OBn+OBquOBiyzjgYvjgYrjgooNCivjgZ/jgpPjgaAs44G/44GN44GTDQor44Gf44Gr44GgLOOBjeOBv+OBuw0KK+OBn+OBq+OBjOOCjyzjgojjgZfjgZ/jgYsNCivjgZ/jgavjgoDjgoks44KI44GX44Gq44KKDQor44Gf44GrLOOBsuOCjeOBtuOBvw0KK+OBn+OBl+OCjSzjgobjgY3jgYoNCivjgbLjgonjgZXjgYss44Gu44G244KG44GNDQor44Gf44KP44GgLOOBiOOBhOOBiOOBpA0KK+OBn+OCj+OCiSzjgZfjgpPjgZgNCivjgabjgonjgaAs44Go44KI44Gy44GVDQor44Gm44KJ44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBpuOCieOBl+OBvizjgbLjgafjgZMNCivjgZPjgbDjgoTjgZcs44Gf44GE44Ge44GGDQor44Gm44KJ44GG44GhLOOChOOBmeOBv+OBpA0KK+OCj+OBn+OBquOBuSzjgZfjgpPjgYTjgaENCivjgajjgY3jgajjgoIs44G+44GV44Gu44KKDQor44Go44GP44GgLOOBn+OBi+OChuOBjQ0KK+OBleOBj+OCieOBjizjga7jgorjgbLjgZUNCivjgajjgb/jgoLjgags44G+44GV44Gy44GTDQor44Go44G/44GfLOOBsuOBp+OBig0KK+OBqOOCguOBvyzjgbLjgo3jgb/jgaQNCivjgajjgpPjgZDjgYYs44G+44GV44GXDQor44Go44KK44GG44G/LOOBsuOCjeOBmeOBkQ0KK+OBqOOCiOOBoCzjgYvjgaTjgbLjgZUNCivjgajjgojjgZXjgags44Gy44KN44GXDQor44Go44KI44GX44G+LOOBpuOBpOOChA0KK+OBpOOBoeOBoCzjgZjjgoXjgpMNCivjgaTjgaHjgoLjgags44G+44GT44GoDQor44Gk44Gh44KELOOCgeOBkOOBvw0KK+OBpOOBoCzjgZ/jgaTjgo3jgYYNCivjgaTjgaAs44KG44GLDQor44Gk44GY44KC44GoLOOChuOBjeOBig0KK+OBpOOBmCzjga7jgorjgYoNCivjgaTjgZgs44Gy44KN44GXDQor44Gk44GL44GU44GXLOOBqOOBl+OBi+OBmg0KK+OBpOOBi+OCguOBqCzjgZHjgYTjgZgNCivjgaTjgY3jgaDjgaYs44Gy44KN44GXDQor44KC44KK44GfLOOBk+OBhuOBnuOBhg0KK+OBpOOCi+OBnyzjgZfjga7jgbYNCivjgaTjgZfjgb4s44Go44KC44GC44GNDQor44Gk44GXLOOBqOOBl+OBsuOBkw0KK+OBpOOBpOOBvyzjgZnjgb/jgagNCivjgaTjgoTjgb4s44KE44GZ44GNDQor44GG44Gh44GgLOOChuOBjeOBig0KK+OBhuOBoeOBoCzjgojjgYbjgZMNCivjgYbjgaHjgoTjgb4s44Gf44GR44GXDQor44GG44GgLOOChuOBi+OCig0KK+OBhuOBiOOBoCzjgZXjgYrjgooNCivjgYbjgYjjgaAs44Gy44KN44GXDQor44Gk44GL44KC44GoLOOBoeOBiOOBvw0KK+OBhuOBiOOBoCzjgbLjgafjgYoNCivjgY3jgY3jgofjgYYs44KI44GX44Gf44GLDQor44GG44GI44GgLOOBhOOBj+OBiA0KK+OBhuOBiOOBkOOCiizjgajjgYrjgosNCivjgYbjgYjjga/jgoks44Gy44KN44KG44GNDQor44GG44GI44G+44GkLOOBi+OBpOOChA0KK+OBleOBqOOBhizjgYvjgZrjgbLjgZMNCivjgYbjgYjjga4s44Gy44Gn44Gf44GLDQor44GG44GI44GuLOOCiOOBl+OBkw0KK+OBhuOBiOOBrizjgbLjgo3jgobjgY0NCivjgYbjgYjjga4s44GX44GS44GNDQor44GG44GI44GuLOOBsuOBp+OBjQ0KK+OBhuOBiOOChOOBvizjgbLjgo3jga7jgooNCivjgYbjgoHjgaAs44GL44Gq44GGDQor44GG44KB44GL44KPLOOBi+OCiA0KK+OBquOBjOOBnyzjga7jgorjgZMNCivjgYbjgonjgZQs44Go44KI44Gy44KNDQor44GG44KL44GX44GW44GLLOOChuOBjeOBig0KK+OBn+OBi+OBr+OBlyzjgZfjgofjgYbjgYTjgaENCivjgYbjgaTjga7jgb/jgoQs44GX44KT44G644GEDQor44KP44GgLOOBi+OBmuOBsuOCjQ0KK+OCj+OBoCzjgb/jgY3jgYgNCivjgo/jgaAs44GX44Ga44GKDQor44KP44GL44Gw44KE44GXLOOChuOBv+OBkw0KK+OCj+OBi+OBsOOChOOBlyzjgYvjgZrjgbLjgZMNCivjgo/jgYvjgb7jgaQs44GL44Ga44GNDQor44KP44GL44G+44GkLOOBk+OBhuOBmA0KK+OCj+OBjeOCguOBqCzjgarjgorjgagNCivjgo/jgY/jgYQs44GX44KF44GG44GYDQor44GE44Go44GELOOCiOOBl+OBsuOBlQ0KK+OCj+OBn+OBuSzjgYvjgaTjgoQNCivjgo/jgZ/jgbks44Gq44GK44Gf44GLDQor44KP44Gf44Gq44G5LOOBl+OCheOCk+OBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44KP44Gf44Gq44G5LOOBiOOBhOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgajjgZcNCivjgo/jgZ/jgarjgbks44Gy44KN44KG44GNDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBrOOBjSzjgb7jgZXjgosNCivjgoTjgbbjgZfjgZ8s44G/44Gp44KKDQor44KE44G244GfLOOBv+OBpOOCiOOBlw0KK+OChOOBtuOBhuOBoSzjgZfjgofjgYbjgbjjgYQNCivjgoTjgZjjgb4s44KI44GG44GTDQor44KE44GP44GX44GYLOOBteOBv+OBsuOCjQ0KK+OChOOBvuOBoCzjgobjgY3jgZMNCivjgoTjgb7jgaAs44Gy44KN44GIDQor44KE44G+44GgLOOBsuOBlQ0KK+OChOOBvuOBoCzjgYLjgY3jga7jgbYNCivjgoTjgb7jgaAs44GC44GN44GKDQor44KE44G+44GgLOOBiOOBhOOBmeOBkQ0KK+OChOOBvuOBjOOBvyzjgbLjgo3jgbXjgb8NCivjgoTjgb7jgZDjgaEs44GY44KN44GGDQor44KE44G+44GQ44GhLOOBk+OBhuOBmA0KK+OChOOBvuOBi+OCjyzjgZfjgpMNCivjgoTjgb7jgZPjgZcs44Gf44GL44GXDQor44KE44G+44KC44GoLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZHjgYQNCivjgoTjgb7jgoLjgags44G+44GV44G/44GhDQor44KE44G+44KC44GoLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOCguOBqCzjgYjjgYTjgZgNCivjgoTjgb7jgoLjgags44Gy44KN44G144G/DQor44KE44G+44KC44GoLOOBvuOBleOBruOCig0KK+OChOOBvuOCguOBqCzjgb7jgZXjgajjgZcNCivjgYvjgo/jgZDjgaEs44GC44GN44KJDQor44KE44G+44KA44KNLOOBsuOCjeOBv+OBoQ0KK+OBhOOCj+OBnyzjgZ/jgZHjgZcNCivjgoTjgb7jgYrjgYss44GL44Ga44Gy44KNDQor44KE44G+44GV44GNLOOBsuOBp+OBj+OBqw0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gk44Go44KADQor44KE44G+44GX44GfLOOBqOOBl+OBguOBjQ0KK+OChOOBvuOBl+OBnyzjgYLjgY3jgZMNCivjgoTjgb7jgZfjgZ8s44Gy44KN44KG44GNDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOBpw0KK+OChOOBvuOBl+OBnyzjgYvjgaTjgobjgY0NCivjgoTjgb7jgZfjgZ8s44GC44GN44KJDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBluOBjSzjgYvjgYrjgosNCivjgoTjgb7jgZbjgY0s44GT44GG44GYDQor44KE44Gq44GM44KPLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBiuOBiyzjgbLjgYvjgosNCivjgoTjgarjgZss44KK44KH44GG44GE44GhDQor44KE44GuLOOBqOOCguOChuOBjQ0KK+OChOOBiizjgYjjgorjgZMNCivjgoTjgZnjgaAs44Go44GX44G144G/DQor44KE44GZ44GL44KPLOOBsuOBqOOBvw0KK+OCiOOBjOOBhCzjgZPjgYbjgYTjgaENCivjgojjgZPjgYzjgo8s44Gb44GE44GYDQor44KI44GT44GV44KPLOOBvuOBleOChuOBjQ0KK+OCiOOBk+OBnyzjgb/jgarjgZMNCivjgojjgZPjgZ8s44KE44GZ44GXDQor44KI44GT44GG44GhLOOBpOOBqOOCgA0KK+OBquOBi+OChOOBvizjgYLjgaTjgZcNCivjgojjgZPjgoTjgb4s44Gv44KL44Gy44GTDQor44KI44GT44KE44G+LOOBvuOBleOBig0KK+OCiOOBreOBr+OCiSzjgajjgZfjgobjgY0NCivjgojjga3jgoDjgoks44Gf44Gg44GXDQor44KI44GX44GgLOOBvuOBleOBqOOBlw0KK+OBv+OChOOCgOOCiSzjgaTjgajjgoANCivjgojjgZfjgaAs44GN44G/44GC44GNDQor44KI44GX44GgLOOBvuOBleOBi+OBpA0KK+OBquOBiyzjgojjgZfjgbLjgo0NCivjgojjgZfjgoDjgoks44KI44GG44GE44GhDQor44KI44GX44KA44KJLOOBsuOCjeOBvw0KK+OBrOOBvuOBiizjgb/jga3jgYoNCivjgojjgZfjgZbjgY0s44GI44GE44GYDQor44Gq44GL44KA44KJLOOBkeOCk+OBmA0KK+OChuOBguOBlSzjgorjgofjgYbjgZ8NCivjgobjgZIs44Gf44GL44Gy44KNDQor44KG44GL44KPLOOCiOOBl+OBn+OBiw0KK+OBvuOBpOOBoCzjgojjgZfjgaTjgZANCivjgYLjgbks44KE44GZ44Gy44KNDQor44Gv44Gb44GM44KPLOOBi+OBpOOBvuOBlQ0KK+OBr+OBl+OCguOBqCzjgbLjgajjgZcNCivjgbLjgonjgaTjgYss44Gf44KC44GkDQor44G744GX44GL44KPLOOBv+OBruOCiw0KK+OBu+OBneOChCzjgZfjgofjgYbjgZgNCivjgYTjgZfjga/jgoks44Gf44GL44GXDQor44GE44KP44GNLOOBn+OBoeOBr+OCiw0KK+OBi+OBreOBoCzjgZPjgYbjgZgNCivjgY3jgoDjgoks44Gf44GR44GXDQor44GT44KT44GuLOOBvuOBk+OBqA0KK+OBvuOBpOOBoCzjgojjgZfjgbLjgZUNCivjgb/jgoTjgZfjgZ8s44GX44GS44Go44KCDQor44GV44GL44KC44GoLOOBvuOCig0KK+OBruOCgOOCiSzjgZfjgpPjgYTjgaENCivjgYrjgYrjgbDjgoTjgZcs44GI44Gk44GTDQor44GV44GE44Go44GGLOOChuOBjeOBiA0KK+OBleOBleOBjOOCjyzjgobjgYbjgZMNCivjgZXjgajjgYYs44KE44KI44GEDQor44GX44GMLOOBvuOBleOBv+OBpA0KK+OBl+OBruOBr+OCiSzjgb7jgZXjgZcNCivjgZfjgofjgYYs44KB44GQ44G/DQor44Gf44GR44GM44KPLOOBv+OBiOOBkw0KK+OBn+OBpOOBvyzjgobjgZ/jgYsNCivjgajjgb/jgYgs44Gu44KK44Gy44GTDQor44KP44Gf44Gq44G5LOOBvuOCguOCiw0KK+OChOOBvuOBoCzjgobjgYbjgYTjgaENCivjgoTjgb7jgaAs44Go44G/44Gy44KNDQor44KE44G+44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgb7jgZXjgYoNCivjgZPjgb7jgaTjgZbjgY0s44Gh44GC44GNDQor44G144Gh44GgLOOBvuOBleOBsuOBkw0KK+OBn+OBquOBiyzjgYvjgZrjgobjgY0NCivjga/jgoTjgZcs44GV44G744KKDQor44Gq44GM44GfLOOBm+OBhOOBhOOBoQ0KK+OBsOOBsCzjgb7jgZPjgagNCivjgYLjgYvjgb4s44Gf44GL44GXDQor44GL44GW44G+LOOBi+OBmuOBl+OBkg0KK+OCguOCiizjgbLjgo3jgYLjgY0NCivjgYTjgZHjgaAs44Gk44KI44GXDQor44KP44Gf44Gq44G5LOOBi+OBpOOBqA0KK+OBv+OBvizjgbXjgb/jgYoNCivjgYLjgpPjganjgYYs44Go44KC44Gy44KNDQor44G+44GI44Ge44GuLOOBv+OBpOOBsuOCjQ0KK+OBiuOBn+OBiyzjgZPjgYbjgYTjgaENCivjga/jgoTjgZcs44G+44GV44Gy44KNDQor44GG44GI44GuLOOBi+OBmuOBn+OBiw0KK+OBpOOBruOBoCzjgZHjgYTjgYTjgaENCivjgZnjganjgYYs44Gf44GL44Go44GXDQor44GV44GL44KC44GoLOOBv+OBpOOBguOBjQ0KK+OBn+OBquOBiyzjgoLjgorjgZfjgZINCivjgZPjgajjgYbjgaAs44KG44GN44Gu44KKDQor44GL44KL44G5LOOBteOBv+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgabjgovjgojjgZcNCivjgbLjgonjga4s44Gy44KN44GTDQor44GV44Go44GGLOOBsuOCjeOBvuOBlQ0KK+OBquOBi+OChOOBvizjgZHjgpPjgYTjgaENCivjga7jgaAs44KG44KK44GTDQor44G+LOOChOOBmeOBsuOCjQ0KK+OBl+OBquOBjOOCjyzjgaHjgYvjgokNCivjgarjgYzjgoTjgZks44GT44GG44GYDQor44GC44GK44GNLOOBk+OBhuOBmA0KK+OBquOBi+OBnyzjga/jgoTjgagNCivjgb/jgY/jgorjgoQs44Gm44KL44KG44GNDQor44G+44KL44KE44G+LOOBsuOBp+OBqOOBlw0KK+OBiOOBoeOBnOOCkyzjgbLjgZXjgZcNCivjgarjgYvjgavjgZcs44GX44KH44GG44GE44GhDQor44Gv44GO44GKLOOBqOOCguOBsuOBkw0KK+OBn+OCgOOCiSzjgb7jgZXjgYLjgY0NCivjgZ/jgZDjgaEs44KI44GX44Go44GXDQor44GK44GW44KPLOOBiuOBleOCgA0KK+OChOOBiuOBhOOBnyzjgajjgZfjgbLjgo0NCivjgYLjgZXjga4s44Gu44KK44KE44GZDQor44GP44GV44GuLOOBpuOCi+OBsuOCjQ0KK+OBr+OBvuOBoCzjgb7jgZXjgZgNCivjgYTjgorjgoTjgb4s44Gv44Gq44GTDQor44KA44KJ44GfLOOBquOBiuOChA0KK+OBguOBleOBrizjgojjgYbjgZgNCivjgZ/jgYvjga4s44GR44KT44GE44GhDQor44KE44G+44GQ44GhLOOBguOBjeOBqOOBlw0KK+OCgOOCieOBi+OBvyzjga7jgorjgbLjgo0NCivjgZ/jgarjgYss44GL44Gk44GYDQor44Gf44GL44GK44GLLOOBmOOCheOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgb/jgZXjgbsNCivjgb/jga3jgY7jgZcs44Gq44GK44KEDQor44GC44G5LOOBruOCiuOBguOBjQ0KK+OBguOBuSzjgb/jgZrjgbsNCivjgYLjgbks44GX44KF44KT44GYDQor44GC44G5LOOBsuOBp+OBjQ0KK+OBguOBjOOBpOOBvizjgYLjgY3jgokNCivjgYLjgYTjgZbjgo8s44Gf44GL44GXDQor44GC44GL44GE44GRLOOBmOOCheOCk+OBkw0KK+OBguOBjeOCguOBqCzjgojjgZfjga7jgbYNCivjgYLjgY3jgZ/jgoQs44KG44GN44GKDQor44GC44GN44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBguOBj+OBpCzjgZfjgZLjgY0NCivjgYLjgb7jga4s44Gf44Gg44GL44GkDQor44GC44G+44GuLOOBguOBpOOBruOCig0KK+OBguOBvuOBrizjgbXjgb/jgYgNCivjgYLjgoHjgb/jgoQs44GL44Ga44G/DQor44GC44KT44Gp44GGLOOBvuOBleOBsuOCjQ0KK+OBguOCk+OBqeOBhizjgabjgpPjgZvjgYQNCivjgYLjgpPjgZbjgYQs44KG44GG44GYDQor44GC44GK44GNLOOCiuOBpOOBkw0KK+OBguOBiuOBjSzjgZ/jgYvjgobjgY0NCivjgYLjgYrjgY0s44GV44Gg44Gv44KLDQor44GC44KJ44GELOOBr+OCi+OBsuOBqA0KK+OBguOCieOBjSzjgojjgYbjgYTjgaENCivjgYLjgonjgY0s44GX44GS44G/44GkDQor44GC44KJ44KELOOCiOOBl+OBn+OBiw0KK+OBguOCiuOCiOOBlyzjgajjgoLjga7jgbYNCivjgYLjgZXjgbLjgaos44KI44GG44GE44GhDQor44GC44GV44GELOOBquOCiuOBqA0KK+OBguOBleOBvyzjgbLjgo3jgobjgY0NCivjgYLjgZXjgaTjgZEs44GL44Ga44KG44GNDQor44GC44GdLOOBj+OBq+OBi+OBmg0KK+OBguOBmuOBvizjgb7jgZPjgagNCivjgYLjgZrjgb4s44GV44Go44GTDQor44Gw44GwLOOBmeOBv+OBkw0KK+OBsOOBsCzjgajjgoLjgZMNCivjgYvjgYws44KI44GX44GNDQor44Gw44GwLOOChuOBhuOBmeOBkQ0KK+OBsOOCkyzjgobjgYsNCivjgbPjgovjgYvjgo8s44KM44GE44GTDQor44G844GGLOOBteOBj+OBig0KK+OBoOOBhOOBlCzjgZfjgoXjgpPjgZnjgZENCivjgaDjgYTjgZTjgY8s44GY44KF44KT44GE44GhDQor44Gp44Gw44GXLOOBqOOBiuOCiw0KK+OBiOOBs+OBleOCjyzjgbLjgo3jgZcNCivjgYjjga/jgoks44Gy44KN44Go44GXDQor44G144Gh44GM44G/LOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBteOBmOOBsOOChOOBlyzjgbLjgo3jgZcNCivjgbXjgZjjgYjjgaAs44KK44KH44GG44GE44GhDQor44G144GY44GELOOBm+OBhOOBlA0KK+OBteOBmOOBhCzjgZfjgpPjgZgNCivjgbXjgZjjgYQs44KI44GX44Gu44KKDQor44G144GY44GELOOBvuOBleOChA0KK+OBteOBmOOBhCzjgbLjgafjgYLjgY0NCivjgZXjgYvjgoLjgags44GX44KF44GG44G444GEDQor44GN44Gf44GgLOOBiOOBhOOBhOOBoQ0KK+OBteOBmOOBhCzjgYvjgYrjgosNCivjgbXjgZjjgYQs44GX44KT44GE44GhDQor44G144GY44GELOOBn+OBpOOChA0KK+OBteOBmOOBi+OCjyzjgYvjgZrjgbLjgZMNCivjgbXjgZjjgoLjgoos44GN44KH44GG44GTDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBteOBmOOBrizjgZvjgYTjgZgNCivjgbXjgZjjgZXjgo8s44Gy44KN44Gf44GLDQor44G144GY44GfLOOBqOOBl+OChA0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgbXjgZjjgZ8s44GR44GE44GYDQor44GP44GZ44KC44GoLOOBsuOCjeOBteOBvw0KK+OBteOBmOOCj+OCiSzjgbLjgo3jgZcNCivjgbXjgZjjgo/jgoks44GR44GEDQor44G144GY44KP44KJLOOBvuOBk+OBqA0KK+OBteOBmOOCj+OCiSzjgbLjgo3jgoANCivjgbXjgZjjgo/jgoks44Go44GX44GNDQor44G144GL44G844KKLOOBsuOBp+OBig0KK+OBteOBi+OBvyzjgZXjgarjgYgNCivjgbXjgYvjgb8s44Gy44GV44GTDQor44G144GP44GgLOOChuOBhuOBkw0KK+OBteOBj+OBoCzjgZXjgajjgb8NCivjgbXjgY/jgaAs44GY44KF44KTDQor44G144GP44GgLOOChuOBiw0KK+OBteOBj+OBhCzjga7jgorjgaHjgYsNCivjgbXjgY/jgYQs44Go44KC44GYDQor44G144GP44Gq44GMLOOBkeOCk+OBmA0KK+OBteOBj+OBquOBjCzjgb7jgZXjgoTjgZkNCivjgbXjgY/jgYrjgYss44G/44Gu44KLDQor44G144GP44GK44GLLOOBhOOBleOBig0KK+OBteOBj+OBlyzjgoTjgZnjga7jgooNCivjgbXjgY/jgZfjgb4s44Go44GX44KG44GNDQor44G144GP44Go44KBLOOBm+OBhOOBmA0KK+OBteOBj+OChOOBvizjgYvjgaTjgbLjgagNCivjgbXjgarjgbDjgZcs44Go44GK44KLDQor44G144KL44GuLOOBguOBjeOCiQ0KK+OBteOCi+OChCzjgajjgZfjgobjgY0NCivjgbXjgovjgoQs44Gy44KN44KG44GNDQor44G144KL44KE44G+LOOBv+OBruOCiw0KK+OBteOBn+OBsCzjgobjgb/jgZMNCivjgYLjgarjgb8s44Gy44GV44Gu44KKDQor44G144Gf44G/LOOBteOBmOOBig0KK+OBteOBn+OCgOOCiSzjgajjgoLjgZMNCivjgYzjgaks44Gy44GV44GXDQor44GU44GGLOOCiuOCh+OBhuOBkw0KK+OBlOOBhuOBoCzjgZfjgpMNCivjgZTjgYss44Gf44Gk44KEDQor44GU44Go44GGLOOBqOOBl+OBn+OBiw0KK+OBlOOBqOOBhizjgZfjga7jgbYNCivjga/jgbYs44GX44KH44GG44GYDQor44Gv44GMLOOBguOBpOOBlw0KK+OBr+OBjizjgZHjgpPjgZgNCivjga/jgb4s44Gf44Gg44Gy44KNDQor44Gv44G+44GgLOOBvuOBleOCiw0KK+OBr+OBvuOBrizjgYrjgZXjgoANCivjga/jgb7jga4s44Gf44Gk44KEDQor44Gv44G+44GX44G+LOOChuOBvw0KK+OBr+OBvuOBl+OBvizjgZXjgaDjgb/jgaQNCivjga/jgarjgYQs44Gm44Gk44GKDQor44Gv44KJLOOBn+OBpOOBjQ0KK+OBiuOBnyzjgZPjgYbjgYTjgaENCivjga/jgonjgaAs44Gq44GK44GNDQor44Gv44KJ44GTLOOBn+OBpOOBsuOCjQ0KK+OBr+OBmyzjgobjgZ/jgYsNCivjga/jgZvjgYzjgo8s44Gy44KN44GXDQor44Gv44Gb44GM44KPLOOBl+OCh+OBhuOBmA0KK+OBr+OBl+OCguOBqCzjgZXjgajjgZcNCivjga/jgZfjgoLjgags44Gb44Gk44GKDQor44Gv44GX44KC44GoLOOBguOBkeOBvw0KK+OBr+OBl+OBmuOCgSzjgb7jgZXjgY0NCivjga/jgZfjgZrjgoEs44Gq44GK44GNDQor44Gv44GfLOOBl+OCk+OBhOOBoQ0KK+OBr+OBnyzjgojjgZfjgbLjgZMNCivjga/jgZ8s44Gf44GR44Gy44GTDQor44Gv44Gf44GuLOOBjeOCh+OBhuOBkw0KK+OBr+OBn+OBrizjgoTjgZnjgobjgY0NCivjga/jgZ/jga4s44KI44GX44Gy44KNDQor44Gk44GgLOOBsuOCjeOBkw0KK+OBr+OChOOBi+OCjyzjgojjgZfjga7jgooNCivjga/jgoTjga4s44GL44Gq44GTDQor44Gv44KE44GXLOOBleOBiuOCig0KK+OBr+OChOOBlyzjgZnjgZnjgoANCivjga/jgoTjgZcs44Gu44G244KG44GNDQor44Gv44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBr+OChOOBlyzjgajjgZfjgo3jgYYNCivjga/jgoTjgZfjgZ/jgass44GC44GN44KJDQor44Gy44GM44GX44GuLOOBjeOBv+OBn+OBkQ0KK+OBsuOBkOOBoSzjgYvjgZrjgbLjgZMNCivjgbLjgZDjgaEs44GX44KT44GE44Gh44KN44GGDQor44Gy44KB44GuLOOChOOBmeOBlw0KK+OBsuOCieOBsOOChOOBlyzjgobjgYbjgZMNCivjgbLjgonjgYQs44KG44GG44GE44GhDQor44Gy44KJ44GL44KPLOOBsuOCjeOBlw0KK+OBsuOCieOBjSzjgbLjgo3jgZcNCivjgbLjgonjga4s44Gb44GE44KK44KH44GGDQor44GC44GK44GNLOOBv+OBoeOBkw0KK+OBsuOCieOBiuOBiyzjgb7jgZXjgoQNCivjgbLjgonjgZXjgYss44Gy44KN44KG44GNDQor44Gy44KJ44KE44G+LOOCiOOBl+OBruOCig0KK+OBsuOCjeOBr+OBnyzjgobjgYbjgYTjgaHjgo0NCivjgb7jgYjjgYvjgo8s44KE44GZ44Gy44KNDQor44Gy44KN44GbLOOBvuOBquOBtg0KK+OBsuOCjeOBmyzjgbLjgo3jgojjgZcNCivjgbLjgo3jgZ8s44G+44GV44Gu44G2DQor44Gy44KN44KP44Gf44KKLOOBn+OBi+OBsuOCjQ0KK+OBsuOCjeOBv+OBpCzjgbLjgo3jgZcNCivjgbLjgYbjgoks44G+44KC44KLDQor44G744G8LOOBn+OBhOOBmeOBkQ0KK+OBu+OBj+OCiSzjgb7jgZPjgagNCivjgbvjgpPjgaAs44GE44GV44GKDQor44G744KT44GgLOOCiOOBhuOBkw0KK+OBmeOBmuOBjSzjgbLjgafjgY0NCivjgbvjgpPjgZTjgYYs44GL44Ga44Gf44GLDQor44G744KK44GQ44GhLOOBjeOBhOOBoeOCjeOBhg0KK+OBu+OCiuOBhCzjgY3jgavjgaENCivjgbvjgorjgYvjgo8s44Gm44KL44GKDQor44G744GX44GuLOOChOOBmeOBsuOCjQ0KK+OBu+OBneOBi+OCjyzjgbLjgafjgobjgY0NCivjgbvjgZ3jgb8s44Gy44KN44GC44GNDQor44G744Gj44GfLOOBi+OBmuOBguOBjQ0KK+OBhOOBtuOBiyzjga7jgbbjgb/jgaENCivjgYTjgbbjgY0s44Gy44Gn44KG44GNDQor44GE44Gh44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBoeOCgOOCiSzjgY3jgb/jgYgNCivjgYTjgaAs44GL44Gq44KBDQor44GE44GgLOOBoeOBr+OCiw0KK+OBhOOBpyzjgoTjgZnjgbLjgacNCivjgYTjgacs44GN44KI44Gf44GLDQor44GE44GnLOOBquOBiuOChuOBjQ0KK+OBhOOBp+OBnyzjgZ/jgYvjgZcNCivjgYTjgYzjgonjgZcs44GR44GE44GTDQor44GE44GM44KJ44GXLOOChuOBjeOChA0KK+OBhOOBkizjgZXjgaTjgY0NCivjgYTjgYTjgaAs44GX44KH44GG44Ge44GGDQor44GE44GE44GgLOOBn+OBi+OChuOBjQ0KK+OBhOOBhOOBoCzjgZ/jgb7jgb8NCivjgYTjgYTjgaAs44KI44GX44Gy44GVDQor44GE44GE44Gv44KJLOOBsuOCjeOBlw0KK+OBhOOBhOOBmOOBvizjgZ/jgZHjgZcNCivjgYTjgZHjgaAs44GL44Gk44KEDQor44GE44GR44GgLOOBvuOBleOBguOBjQ0KK+OBhOOBk+OBvizjga7jgbbjgb7jgZUNCivjgYTjgb7jgYQs44GN44KI44Gy44GoDQor44GE44G+44GELOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjgY3jgofjgYbjgZMNCivjgYTjgb7jgoDjgoks44GT44GG44GE44GhDQor44GE44G+44Gq44KKLOOBn+OBpOOChA0KK+OBhOOBvuOBnOOBjSzjgZjjgoXjgpPjgZgNCivjgYTjgarjgaAs44G+44KG44G/DQor44GE44Gq44G+44GZLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgobjgY0NCivjgYTjgacs44G+44GV44Gy44KNDQor44GE44KM44GELOOBvuOBleOCiw0KK+OBhOOBl+OBr+OCiSzjgb/jgaTjgb8NCivjgYTjgZfjga/jgoks44G/44KG44GNDQor44GE44GX44Gv44KJLOOBquOBiuOBjQ0KK+OBhOOBl+OBr+OCiSzjgZnjgZnjgoANCivjgYTjgZfjga/jgoks44GY44KF44KT44GE44GhDQor44GE44GX44GELOOBn+OBi+OChuOBjQ0KK+OBhOOBl+OBhCzjgajjgoLjgobjgY0NCivjgYTjgZfjgYvjgo8s44KG44GG44GYDQor44GE44GX44GL44KPLOOBquOBiuOBteOBvw0KK+OBhOOBl+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgYTjgZfjgo/jgZ/jgoos44G+44GZ44G/DQor44GE44GX44GW44GNLOOBruOCiuOCiOOBlw0KK+OBhOOBl+OBmuOBiyzjgarjgYrjgajjgY8NCivjgYTjgZ3jga4s44G/44Gk44Go44GXDQor44GE44Gd44KE44G+LOOBv+OBpOOBruOBtg0KK+OBhOOBmeOBoCzjgZfjgZLjgYoNCivjgYTjgZ/jgY/jgoks44G+44GV44Gy44KNDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBhOOBqOOBhizjgbLjgo3jgbXjgb8NCivjgYTjgajjgYYs44KI44GX44G+44GVDQor44GE44Go44GGLOOBr+OCi+OBig0KK+OBvuOBpOOBhCzjgZ/jgZHjgbLjgZMNCivjgYTjgajjgYYs44Gf44GR44Gy44GTDQor44GE44Go44GGLOOBvuOBleOBoeOBiw0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgZMNCivjgYTjgo/jgYvjgb8s44Gk44Go44KADQor44GE44KP44GVLOOBqOOBl+OBvw0KK+OBhOOCj+OBleOBjSzjgobjgYbjgZgNCivjgYTjgo/jgZXjgY0s44Gq44GK44KG44GNDQor44GE44KP44GX44GfLOOBv+OBoeOBn+OBiw0KK+OBhOOBmuOBvyzjgajjgYrjgosNCivjgYTjgajjgYYs44GC44Gk44GXDQor44GE44Ga44G/LOOBqOOBuOOBhA0KK+OBhOOBmuOBv+OBleOCjyzjgZvjgYTjgZgNCivjgZjjgpPjga4s44KE44GZ44GXDQor44G/44GpLOOCiuOCheOBhuOBmA0KK+OBi+OBjCzjgYLjgZHjgb8NCivjgYvjgYzjgb8s44G144GV44GKDQor44GL44GS44KE44G+LOOBsuOBleOBquOBjA0KK+OBi+OBhCzjgbLjgajjgZcNCivjgYvjgYTjgaAs44GT44GG44GYDQor44GL44GE44GaLOOBn+OBkeOBsuOBqA0KK+OBi+OBmOOBnyzjgZgNCivjgYvjgZHjgbIs44GC44GR44G/DQor44GL44GN44KC44GoLOOBqOOCguOBsuOCjQ0KK+OBi+OBjeOBrOOBvizjgZXjgaHjgZMNCivjgYvjgY3jgazjgb4s44GX44Ga44GLDQor44GL44G+44GfLOOBqOOBl+OBiA0KK+OBi+OBvuOBnyzjgZHjgpPjgYTjgaENCivjgYvjgb/jgZDjgaEs44G/44GI44GTDQor44GL44G/44KA44KJLOOCiOOBl+OBig0KK+OBi+OBreOBkyzjgb7jgZXjga7jgooNCivjgYvjgarjgb7jgoss44GYDQor44GL44Gq44GW44KPLOOBvuOCguOCiw0KK+OBi+OCk+OBuSzjgZ/jgYvjgbLjgo0NCivjgYvjgpPjgaAs44GT44GG44Ge44GGDQor44GL44Gt44Gv44KJLOOBkeOCkw0KK+OBlOOBqOOBhizjgZfjgZLjgYvjgZoNCivjgYvjga3jgZMs44Gf44GR44GXDQor44GL44Gt44GTLOOChOOBmeOBquOBig0KK+OBi+OBreOBkyzjgYLjgY3jgokNCivjgYvjga3jgZMs44Gy44Gn44Go44GXDQor44GL44Gt44GTLOOBsuOCjeOBteOBvw0KK+OBi+OBreOBv+OBpCzjgbLjgo3jgb/jgaQNCivjgYvjga3jgoDjgoks44GL44Ga44GKDQor44GL44Gt44GfLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgb7jgZXjgojjgZcNCivjgojjga3jgoLjgaEs44Gq44GK44GXDQor44GL44KT44GuLOOChOOBmeOBvuOBlQ0KK+OBi+OBleOBhCzjgobjgYvjgooNCivjgYvjgZfjgb4s44GT44GG44GY44KN44GGDQor44Gf44GL44GOLOOBsuOBp+OBjQ0KK+OBjeOBn+OCgOOCiSzjgb7jgZXjgb8NCivjgYvjgZ/jgYrjgYss44KE44GZ44KG44GNDQor44GL44Gf44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBi+OBn+OBiuOBiyzjgZfjgZLjgobjgY0NCivjgYvjgZ/jgZss44KE44GZ44Gq44KKDQor44GL44Gf44KE44G+LOOBv+OBoeOBkw0KK+OBi+OBn+OChOOBvizjgarjgYrjgobjgY0NCivjgYvjgZ/jgoTjgb4s44KG44GG44GTDQor44GL44Gf44KE44G+LOOBjeOCh+OBhuOBkw0KK+OBi+OBqOOBhizjgoTjgZnjgbLjgo0NCivjgYvjgajjgYYs44Gy44KN44GC44GNDQor44GL44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBi+OBqOOBhizjgaTjgajjgoANCivjgYvjgajjgYYs44Gy44KN44KG44GNDQor44GL44Go44GGLOOBqOOBl+OBsuOCjQ0KK+OBi+OBqOOBhizjgojjgZfjgb8NCivjgYvjgajjgYYs44KG44GG44GYDQor44GL44Go44GGLOOBpOOBqOOCgA0KK+OBneOCgeOChCzjgZjjgoXjgpPjgZMNCivjgYvjgo/jgbDjgZ8s44G+44GT44GoDQor44GL44KP44GQ44GhLOOBvuOBleOBhOOBoQ0KK+OBi+OCj+OBkOOBoSzjgZfjgpPjgoQNCivjgZ/jgb7jgYzjgo8s44GT44GG44GE44Gh44KN44GGDQor44GL44KP44Gv44KJLOOBsuOBleOBlw0KK+OBi+OCj+OBr+OCiSzjgZjjgoXjgpPjgZgNCivjgYvjgo/jgbLjgags44GL44Gk44Gy44GVDQor44GL44KP44GELOOBruOCiuOBsuOBlQ0KK+OBi+OCj+OBhCzjga7jgorjgZMNCivjga/jgY7jgo/jgoks44GX44GS44GNDQor44Gq44KL44GRLOOBn+OBi+OBlw0KK+OBi+OCj+OBleOBjSzjgojjgZfjgbLjgo0NCivjgYvjgo/jgZfjgb4s44KG44GL44KKDQor44GL44KP44GX44G+LOOChuOBjeOBkw0KK+OBi+OCj+OBnyzjgobjgZ/jgYsNCivjgYvjgoTjgb4s44Gy44KN44GL44GaDQor44GL44GW44G+44Gk44KKLOOBsuOCjeOBkw0KK+OBjeOBqSzjgZ/jgYvjgbXjgb8NCivjgY3jgYzjgb8s44G+44Gq44G2DQor44GN44GU44GXLOOBsuOBleOChA0KK+OCguOCiuOBleOCjyzjgY3jgojjgZcNCivjgY3jgY/jgaEs44G/44Gk44GQDQor44GN44GP44GhLOOBjeOBhOOBoQ0KK+OBjeOBj+OBoSzjga7jgorjgYoNCivjgY3jgY/jgoks44GL44Gk44G/DQor44GN44KA44KJLOOBpOOBreOBig0KK+OBjeOCgOOCiSzjgbLjgo3jgY0NCivjgY3jgoDjgoks44GC44GR44G/DQor44GN44KA44KJLOOBqOOCguOBsuOBlQ0KK+OBjeOCgOOCiSzjgYvjgaTjga7jgooNCivjgY3jgoDjgoks44GR44GE44GE44GhDQor44GN44KA44KJLOOBvuOBleOBjQ0KK+OBjeOCgOOCiSzjgb7jgZXjgobjgY0NCivjgY3jgoDjgoks44GR44KT44GE44GhDQor44GN44KA44KJLOOBruOCiuOBkw0KK+OBjeOCgOOCiSzjgZfjgpPjgY3jgaENCivjgY3jga7jgZfjgZ8s44Gf44GE44GTDQor44GN44Gu44GX44GfLOOBqOOBl+OBsuOBkw0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgo0NCivjgY3jgZfjgbks44Gy44KN44GNDQor44GN44GX44GgLOOCiOOBl+OBruOCig0KK+OBjeOBl+OCguOBqCzjgZ/jgZHjgZcNCivjgY3jgZfjgoLjgags44Gf44Gk44KEDQor44GN44GfLOOBn+OBi+OBv+OBoQ0KK+OBjeOBn+OBguOBjSzjgbLjgo3jgobjgY0NCivjgY3jgZ/jgaAs44Gy44KN44KG44GNDQor44GN44Gf44GM44KPLOOBqOOBl+OChuOBjQ0KK+OBjeOBn+OBu+OCiizjgbLjgo3jgobjgY0NCivjgY3jgZ/jgZjjgb4s44Gf44Gk44KEDQor44GN44Gf44KA44KJLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgojjgZcNCivjgZPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44GT44Gw44KE44GXLOOBoeOBteOChg0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgobjgY0NCivjgZfjgonjgYQs44Gg44GE44GZ44GRDQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44Go44GX44KEDQor44GT44Gw44KE44GXLOOBqOOBl+OBjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgbXjgb8NCivjgZPjgaDjgb4s44Gy44KN44KG44GNDQor44GT44GO44GfLOOBkeOBhOOBhOOBoQ0KK+OBk+OBkOOCjCzjgojjgZfjgYvjgZoNCivjgZPjga/jgZcs44Gu44KK44GX44GSDQor44GT44GULOOBn+OBi+OBsuOBpw0KK+OBk+OCk+OBrizjgojjgYYNCivjgZPjgpPjga4s44GN44KT44KEDQor44GT44KT44GuLOOChOOBmeOBsuOCjQ0KK+OBk+OCk+OBruOBmSzjgbLjgo3jgYvjgZoNCivjgZPjgYTjgacs44GT44GG44GYDQor44GT44G+44Gk44Gw44KJLOOBsuOBp+OBqOOBlw0KK+OBk+OBv+OChCzjgYrjgZXjgoANCivjgZPjgb/jgoTjgb4s44KI44GX44Gy44KNDQor44GT44KC44GgLOOBn+OBi+OBlw0KK+OBk+OCk+OBqSzjgYvjgZrjgb7jgZUNCivjgZPjgpPjgaks44G+44GV44GoDQor44GT44KT44GpLOOBsuOBqOOBlw0KK+OBk+OCk+OBqSzjgYvjgaTjgoQNCivjgZPjgpPjgaks44GL44Ga44Go44GXDQor44GT44Gr44GXLOOBguOBjeOBruOCig0KK+OBk+OBlSzjgb7jgZXjgagNCivjgZPjgZnjgY4s44GR44KT44GE44Gh44KNDQor44GT44Gf44GNLOOBvuOBleOChuOBjQ0KK+OBk+OBn+OBqyzjgZHjgYTjgYTjgaENCivjgZPjgoTjgb4s44G/44GNDQor44GT44KE44G+LOOBsuOCjeOBvw0KK+OBk+OChOOBvizjgYvjgaTjgbLjgZMNCivjgZPjgZbjgo8s44G+44GV44Gu44KKDQor44GT44Ga44KLLOOCiOOBl+OBguOBjQ0KK+OBj+OBvOOBnyzjgbLjgo3jgZcNCivjgY/jgbzjgZ8s44GY44KF44KT44GTDQor44GP44G844KELOOBqOOCguOBkw0KK+OBj+OBqeOBhizjgZjjgoXjgpMNCivjgZvjga7jgYos44Gy44Go44GXDQor44GP44G+44GM44GELOOBi+OBmuOBruOCig0KK+OBj+OCieOBqeOBvyzjgY3jgojjgbXjgb8NCivjgY/jgonjgoLjgags44Gu44KK44KG44GNDQor44GP44KJ44Go44G/LOOBkeOBhOOBmeOBkQ0KK+OBj+OCiuOBrizjgoTjgZnjgbLjgo0NCivjgY/jgorjgoQs44KG44GG44GE44GhDQor44GP44KN44GgLOOBsuOCjeOBlw0KK+OBj+OCjeOBi+OCjyzjgb/jgaTjgYLjgY0NCivjgY/jgZXjgYvjgo8s44Gu44G244G/44GkDQor44GP44GV44GuLOOBleOBqOOBlw0KK+OBj+OCj+OBsOOCiSzjgajjgZfjgbLjgo0NCivjgY/jgo/jga4s44KE44GZ44Gy44KNDQor44KI44GX44GgLOOBleOBqOOCiw0KK+OBj+OBmuOBrizjgbLjgo3jgYvjgZoNCivjgb7jgaHjgaAs44Gy44KN44GXDQor44G+44GI44GgLOOBkeOCk+OBhOOBoQ0KK+OBvuOBiOOBi+OCjyzjgb/jga3jgYvjgZoNCivjgYrjgYrjgZ/jgass44Gf44Gg44GX44GSDQor44G+44GNLOOBn+OBj+OChA0KK+OBvuOBjeOBrizjgajjgZfjgYoNCivjgb7jgovjgYrjgYss44KE44GZ44Gy44KNDQor44G+44KL44KE44G+LOOBmOOCheOCk+OBk+OBhg0KK+OBvuOCi+OChOOBvizjga7jgorjgbLjgo0NCivjgb7jgovjgoTjgb4s44G/44Gu44KLDQor44G+44GV44GELOOBl+OCk+OBlA0KK+OBvuOBleOBjSzjgbLjgafjgogNCivjgb7jgZss44Gf44GL44GXDQor44G+44GZ44GgLOOChuOBn+OBiw0KK+OBvuOBqOOBsCzjgZ/jgYvjgajjgZcNCivjgb7jgajjgbAs44GP44Gr44Gy44GTDQor44G+44Gk44Gw44KJLOOBn+OBi+OBguOBjQ0KK+OBvuOBpOOBhCzjgbLjgZXjgZcNCivjgb7jgaTjgYQs44KE44GZ44Gy44KNDQor44G+44Gk44GL44KPLOOBm+OBhOOBhOOBoQ0KK+OBvuOBpOOCguOCiizjgZfjgofjgYbjgZ4NCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44G+44Gk44KC44GoLOOBvuOBleOCiOOBlw0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgosNCivjgb7jgaTjgoLjgags44GY44KF44KT44GTDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBvuOBpOOCguOBqCzjgajjgYrjgosNCivjgb7jgaTjgoLjgags44GV44Gg44GKDQor44G+44Gk44GKLOOBi+OBmuOCiOOBlw0KK+OBvuOBpOOBiuOBiyzjgZ/jgZHjgajjgZcNCivjgb7jgaTjgZfjgb4s44Gf44GL44Gy44KNDQor44Gq44GL44Gr44KPLOOBqOOBl+OCjeOBhg0KK+OBvuOBpOOChOOBvizjgZjjgoXjgpMNCivjgb7jgaTjgoTjgb4s44GY44KF44KT44GYDQor44G+44Gk44GW44KPLOOBsuOBp+OCiA0KK+OBv+OCgOOCiSzjgZfjgoXjgpPjgYTjgaENCivjgb/jgavjgoXjgYYs44GT44GG44GE44GhDQor44G/44GfLOOBvuOBquOBtg0KK+OBv+OBnyzjgbLjgo3jgYvjgZoNCivjgb/jgZ/jgoDjgoks44GY44KF44KTDQor44G/44Gk44GgLOOBiuOBleOCgA0KK+OBv+OBpOOBoCzjgZjjgoXjgpPjgYTjgaENCivjgb/jgaTjgb7jgZ8s44KI44GX44Gu44KKDQor44G/44Gk44GK44GLLOOBguOChOOBkw0KK+OBv+OBhuOCiSzjgY3jgofjgYbjgZMNCivjgb/jgYbjgoks44G/44Gp44KKDQor44G/44KP44GfLOOBquOBiuOBjQ0KK+OBquOBjOOBmyzjgZ/jgYvjgZcNCivjgb/jgoTjgZEs44GC44GN44GKDQor44G/44KE44GRLOOChuOBi+OCig0KK+OBv+OChOOBvizjgZvjgYTjgZgNCivjgb/jgoTjgoLjgags44Gm44Gk44GKDQor44G/44KE44KC44GoLOOBsuOBqOOBvw0KK+OBv+OChOOBquOBjCzjgb7jgZXjgYvjgaQNCivjgb/jgoTjgZbjgY0s44KC44Go44G144G/DQor44G/44Ga44GwLOOBsuOCjeOBlw0KK+OBv+OBmuOBrOOBvizjgYvjgaTjgb8NCivjgb/jgZrjgZXjgY0s44G/44KPDQor44G/44Ga44GfLOOBruOCiuOBguOBjQ0KK+OCguOBoeOBmuOBjSzjgZfjgoXjgYbjgYTjgaENCivjgoLjgaHjgZrjgY0s44GC44Gk44GNDQor44KC44Gh44Ga44GNLOOBoeOBi+OCiQ0KK+OCguOBjizjgbLjgo3jgZcNCivjgoLjgoLjgZss44Gk44KI44GXDQor44Gy44KJ44GuLOOBguOBjeOBsuOBpw0KK+OCguOCiizjgobjgYbjgY0NCivjgoLjgoos44G+44GV44KG44GNDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiizjgZfjgZLjgYoNCivjgoLjgorjgYvjgo8s44GX44KT44GYDQor44KE44GO44GX44GfLOOBhOOBleOBig0KK+OCguOCiuOCguOBqCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgoLjgorjgoLjgags44GT44GG44GYDQor44G+44Gk44GgLOOBkeOCk+OBmA0KK+OCguOCiuOBiuOBiyzjgYLjgY3jgbLjgZMNCivjgoLjgorjgZfjgZ8s44KK44GIDQor44KC44KK44GfLOOBj+OBq+OBsuOCjQ0KK+OCguOCiuOBnyzjgY3jgojjgYjjgYQNCivjgYvjga3jgZMs44GL44Ga44GC44GNDQor44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OCguOCiuOCj+OBjSzjga7jgbbjgobjgY0NCivjgoLjgo3jganjgb8s44KI44GG44GE44GhDQor44KC44Go44Gv44GXLOOCiOOBl+OBsuOBpw0KK+OCguOBqOOBmOOBvizjgabjgaTjgYoNCivjgoLjgajjgY0s44GR44GE44GTDQor44KC44KKLOOBv+OCjw0KK+OBhuOBmeOBhCzjgYvjgYrjgosNCivjgoDjgonjgYvjgb8s44Gf44GR44GKDQor44KA44KJ44GL44G/LOOBoOOBhOOBm+OBhA0KK+OCgOOCieOBi+OBvyzjgbLjgafjgZcNCivjgoDjgonjgYvjgb8s44Gy44Go44GXDQor44KA44KJ44GfLOOCiOOBl+OBig0KK+OCgOOCieOBnyzjgY3jgojjgbLjgZMNCivjgoDjgonjgoTjgb4s44GV44Go44GXDQor44KA44Go44GGLOOCiOOBl+OBsuOCjQ0KK+OBquOBoOOBkOOBoSzjgZnjgb/jgagNCivjgarjgYzjga/jgZcs44GE44GV44GKDQor44Gq44GM44GELOOBvuOBleOBsuOCjQ0KK+OBquOBjOOCgOOCiSzjgb7jgZPjgagNCivjgarjgYzjgYos44G+44GV44G/DQor44Gq44GM44GX44G+LOOBv+OBoeOBruOCig0KK+OBquOBjOOBl+OBvizjgb/jgojjgZMNCivjgarjgYzjgZ8s44Gq44GK44KKDQor44Gq44GM44GfLOOBruOBvOOCiw0KK+OBquOBjOOBpOOBiyzjga7jgorjgobjgY0NCivjgarjgYzjgoTjgb4s44GV44Gq44GIDQor44GG44Gh44GgLOOBn+OBi+OBsuOBpw0KK+OBhuOBoeOBnuOBrizjgZ/jgYvjgZcNCivjgarjgYvjgaAs44Go44GX44KEDQor44Gq44GL44GM44KPLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBjOOCjyzjgobjgY3jgbLjgo0NCivjgarjgYvjgYzjgo8s44Gh44Gv44KLDQor44Gq44GL44GM44KPLOOBquOBiuOChuOBjQ0KK+OBquOBi+OBmOOBvizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZjjgb4s44Gy44KN44GC44GNDQor44Gq44GL44GY44G+LOOBjeOCh+OBhuOBkw0KK+OBquOBi+OBv+OBoSzjgorjgoXjgYbjgYTjgaENCivjgarjgYvjgoLjgags44KE44GZ44Go44KCDQor44Gq44GL44KC44GoLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44KG44G/44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBguOBjeOChOOBvizjgZ/jgYvjgZgNCivjgarjgYvjgoDjgoks44Gy44Gn44GoDQor44Gq44GL44KA44KJLOOBpOOBqOOCgA0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgZMNCivjgarjgYvjgoDjgoks44KG44GN44GTDQor44Gq44GL44KA44KJLOOCiOOBl+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgZvjgYTjgZgNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44Gq44GL44KA44KJLOOBsuOCjeOBvw0KK+OBquOBi+OCgOOCiSzjgZXjgajjgZcNCivjgarjgYvjga4s44Gf44GL44GXDQor44Gq44GL44GuLOOBkeOBhOOBmA0KK+OBquOBi+OBl+OBvizjga7jgorjgYoNCivjgarjgYvjgaTjgbws44G+44GV44Gy44GTDQor44Gq44GL44Gk44GLLOOBpuOBpOOCjeOBhg0KK+OBquOBi+OChOOBvizjgb7jgZPjgagNCivjgarjgYvjgoTjgb4s44G+44GV44Gy44GTDQor44Gq44GL44GW44KPLOOBiuOBleOCgA0KK+OBquOBiuOBpOOBiyzjgYLjgY3jgZMNCivjgarjgonjga/jgoks44GV44Go44GXDQor44Gq44KL44GX44G+LOOBvuOBleOBkw0KK+OBquOBqOOCiizjgbLjgo3jgZ/jgYsNCivjgavjgYTjgZjjgb4s44KG44GLDQor44Gr44GE44KELOOCiuOBiw0KK+OBq+OBlyzjgajjgZfjgbLjgZUNCivjgavjgZcs44G+44GV44Gy44KNDQor44Gr44GX44G2LOOBguOChOOBkw0KK+OBq+OBl+OBoCzjgZ/jgaTjgoQNCivjgavjgZfjga/jgoks44Gf44GL44GC44GNDQor44Gr44GX44GL44KPLOOBvuOBleOBkw0KK+OBn+OBquOBiyzjgYTjgZXjgYoNCivjgavjgZfjgYvjgo8s44G+44GV44GoDQor44Gr44GX44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBq+OBl+OCguOBqCzjgarjgYrjgZMNCivjgavjgZfjgoDjgoks44Gf44GL44GXDQor44Gr44GX44KA44KJLOOBk+OBhuOBnuOBhg0KK+OBq+OBl+OBrizjgZHjgpPjgZgNCivjgavjgZfjga4s44GX44KT44KEDQor44Gr44GX44GK44GLLOOBvuOBleOBruOBtg0KK+OBq+OBl+OBluOBjSzjgZHjgpPjgZgNCivjgavjgZfjgZbjgo8s44Gg44GE44GZ44GRDQor44Gr44KPLOOCguOCiuOCiOOBlw0KK+OBruOBtizjgb/jga7jgosNCivjga7jgYzjgYTjgags44Gu44G244KG44GNDQor44Gu44GQ44GhLOOCiOOBhuOBkw0KK+OBruOBmCzjgbLjgo3jgobjgY0NCivjga7jgZjjgb4s44Gu44KK44GKDQor44Gu44KA44KJLOOBguOBjeOBkw0KK+OBruOCgOOCiSzjgZfjgpPjgYTjgaENCivjga7jgarjgYss44KG44GN44Gu44KKDQor44Gq44GL44GY44G+LOOBoeOBteOChg0KK+OBruOBluOBjSzjgb/jgY3jgYoNCivjga7jgZbjgY0s44KI44GX44KG44GNDQor44Gs44KPLOOBn+OBkeOBlw0KK+OBiuOBoSzjgZ/jgYvjgZcNCivjgYrjgaHjgYLjgYQs44Go44GX44KG44GNDQor44GK44GgLOOBguOBpOOBlw0KK+OBiuOBjOOBleOCj+OCiSzjgojjgZfjgobjgY0NCivjgYrjgYzjgZXjgo/jgoks44Go44G/44GKDQor44GK44GM44GfLOOBi+OBmuOBr+OCiw0KK+OBiuOBjOOCjyzjgZHjgpPjgYTjgaENCivjgYrjgY7jga/jgoks44Gy44KN44GNDQor44GK44GK44Gv44KJLOOBi+OBpOOBvw0KK+OBiuOBiuOBsCzjgobjgb/jgZMNCivjgYrjgYrjgbAs44GI44GE44GYDQor44G+44Gk44GgLOOBl+OBkuOChuOBjQ0KK+OBiuOBiuOBiCzjgobjgYbjgZgNCivjgYrjgYrjgYzjgY0s44GL44Ga44Gy44KNDQor44GX44KH44GG44GY44G+LOOBqOOBl+OBsuOBpw0KK+OBiuOBr+OBvizjgbLjgo3jgobjgY0NCivjgYrjgYrjga/jgZcs44GR44GE44GTDQor44GK44GO44GuLOOBl+OBkuOBjQ0KK+OBiuOBiuOBi+OCjyzjgZPjgYbjgYTjgaENCivjgYrjgYrjgYvjgo/jgoks44G+44Gq44G2DQor44GK44GNLOOBvuOBleOBsuOBkw0KK+OBreOCguOBqCzjgZjjgoXjgpMNCivjgYrjgYrjgY/jgbws44Gu44G244KG44GNDQor44GK44GK44GP44KJLOOBqOOCguOBsuOBkw0KK+OBiuOBvizjgajjgoLjgbLjgZUNCivjgYrjgYrjgb/jgYss44Gm44Gk44GXDQor44GK44GK44KC44KKLOOBsuOBp+OBvw0KK+OBiuOBiuOCguOCiizjgbLjgo3jgYLjgY0NCivjgo/jgZ/jgarjgbks44GL44Ga44GC44GNDQor44GK44GK44Gr44GXLOOBv+OBpOOCiw0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgbLjgacNCivjgYrjga4s44GV44Gq44GIDQor44GK44GuLOOBmOOCheOCk+OBkw0KK+OBiuOBiuOBrOOBvizjgb7jgZXjgYoNCivjgYrjgZfjgb4s44Gf44GL44KG44GNDQor44GK44GX44G+LOOBvuOBleOBlw0KK+OBiuOBiuOBnyzjgb7jgZXjgobjgY0NCivjgYrjgYrjgZ8s44KC44Go44GEDQor44GK44GK44GfLOOBi+OBiuOCiw0KK+OBiuOBiuOBn+OBiyzjgajjgZfjgYLjgY0NCivjgYrjgYrjgZ/jgZEs44GV44GI44GTDQor44GK44GK44Gf44GRLOOBsuOBp+OBteOBvw0KK+OBiuOBiuOBn+OBqyzjgY/jgavjgYoNCivjgYrjgYrjgaTjgbws44GC44Gk44KG44GNDQor44GK44GK44Gk44GLLOOBpuOBpOOBig0KK+OBiuOBiuOBpOOBiyzjgajjgZfjgbLjgZMNCivjgYrjgYrjgaTjgY0s44GE44Ga44G/DQor44GV44GT44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBiuOBiuOCjyzjgZXjgajjgZcNCivjgYrjgYrjgoQs44GY44KF44KT44Gb44GEDQor44GK44GE44GL44KPLOOBvuOBleOBjQ0KK+OBiuOBi+OBuSzjgb7jgarjgbYNCivjgZPjgbDjgoTjgZcs44Gd44GGDQor44GK44GL44GgLOOChOOBmeOBv+OBpA0KK+OBiuOBi+OBoCzjgabjgaTjgZgNCivjgYrjgYvjgaAs44Gm44Gk44KEDQor44GK44GL44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBiuOBi+OCguOBqCzjgbLjgafjga7jgbYNCivjgoHjgoks44Gy44KN44KG44GNDQor44GK44GL44GuLOOBi+OBmuOBruOCig0KK+OBiuOBi+OBluOBjSzjgYvjgZrjgobjgY0NCivjgYrjgY3jgZ8s44GV44Go44GTDQor44GK44GP44GgLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBiuOBj+OBrOOBjSzjgb7jgZXjgYvjgZoNCivjgYrjgpPjgaAs44Gh44Ga44GTDQor44GK44KT44GgLOOBsuOCieOBn+OBiw0KK+OBhuOBpOOBvyzjgb7jgZXjgbLjgo0NCivjgYrjgYrjga4s44Gf44GL44GXDQor44GK44GK44GuLOOChuOBjeOBsuOCjQ0KK+OBi+OCj+OCguOBqCzjgbLjgafjgobjgY0NCivjgYvjgaks44GP44Gr44Gy44KNDQor44GK44GX44G+LOOBl+OCjeOBhg0KK+OBiuOBiuOBmeOBvyzjgYLjgY3jgokNCivjgYrjgYrjgZ8s44GL44Ga44KG44GNDQor44GK44KK44GELOOBl+OCheOCk+OBmA0KK+OBiuOCiuOBnyzjgZfjgoXjgYbjgYTjgaENCivjgYrjgYrjgZXjgYss44Go44KI44Gy44GnDQor44GK44Gd44Gu44GELOOChuOBjeOBig0KK+OBiuOBluOBlSzjgobjgY3jga7jgbYNCivjgYrjgZbjgo8s44Gf44Gk44GYDQor44GK44GW44KPLOOBquOBiuOBruOCig0KK+OBiuOBluOCjyzjgoTjgZnjgbLjgo0NCivjgZfjgonjgajjgoos44GY44KF44KTDQor44GK44Ge44GtLOOBguOBjeOBig0KK+OBleOBrizjgbLjgo3jgbLjgZUNCivjgZXjgYTjgajjgYYs44G+44GV44G/DQor44GV44GE44Go44GGLOOBquOBiuOBjQ0KK+OBleOBhOOBqOOBhizjgb/jgYjjgZMNCivjgZXjgYTjgajjgYYs44GR44GE44GYDQor44GV44GE44Go44GGLOOBoeOBi+OBkw0KK+OBleOBi+OBhCzjgbLjgo3jgb8NCivjgZXjgYvjgYQs44GR44KT44GYDQor44GV44GL44GELOOBvuOBk+OBqA0KK+OBleOBi+OBjeOBsOOCiSzjgb/jgaTjgYLjgY0NCivjgZXjgYvjgoLjgags44KM44GE44GTDQor44GV44GL44KC44GoLOOCiOOBl+OBig0KK+OBleOBi+OCguOBqCzjgajjgoLjgZMNCivjgZXjgYvjgoLjgags44GY44KF44KT44G644GEDQor44GV44GL44KC44GoLOOBi+OBiuOCiw0KK+OBleOBi+OCgOOCiSzjgZHjgpPjgZgNCivjgZXjgYvjga0s44GT44GG44GYDQor44GV44GL44GfLOOBvuOBleOBsuOBkw0KK+OBleOBi+OBnyzjgb7jgZXjgbLjgo0NCivjgYLjgY/jgZ/jgYzjgo8s44G+44GV44Gy44KNDQor44GV44GP44KJ44GELOOBvuOBleOBqA0KK+OBleOBj+OCieOBhCzjgovjgorjgZMNCivjgb7jgaTjgbDjgoks44KK44KH44GG44GTDQor44GV44GP44KJ44GELOOBleOBqOOCiw0KK+OBleOBquOBjizjgojjgZfjgY0NCivjgZXjga4s44KG44GN44GTDQor44GK44GK44GM44GNLOOBoeOBsuOCjQ0KK+OBleOBleOBjSzjgbXjgb/jgbLjgo0NCivjgZXjgZXjgY0s44Go44GK44KLDQor44GV44GV44GNLOOBsuOBp+OChuOBjQ0KK+OBleOBleOBjSzjgYTjgY/jgbXjgb8NCivjgZXjgZXjgY0s44Gq44GM44G+44GVDQor44GV44GV44GNLOOBqOOCguOBkw0KK+OBleOBn+OBkSzjgZ/jgYvjgobjgY0NCivjgZPjgaDjgb4s44G+44GV44Gy44KNDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OBleOBqOOBhizjgbXjgZjjgYoNCivjgZXjgajjgYYs44Gy44Gn44Gv44KLDQor44GV44Go44GGLOOBvuOCguOCiw0KK+OBleOBqOOBhizjgb7jgobjgb8NCivjgZXjgajjgYYs44GX44KN44GGDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBqOOBhizjgbLjgafjga7jgooNCivjgZXjgajjgYYs44GR44GE44GE44GhDQor44GV44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZXjgYvjgYQs44GR44KT44GYDQor44GV44KP44GgLOOBk+OBhuOBn+OCjeOBhg0KK+OBm+OBjOOCjyzjgZXjgajjgosNCivjgZvjgYTjga4s44GX44KH44GG44GYDQor44Gb44GNLOOBpOOBqOOCgA0KK+OBm+OBjeOBqSzjgZfjgpPjgZgNCivjgZvjgY3jga4s44Gu44KK44Gy44KNDQor44Gb44GKLOOBn+OBi+OChuOBjQ0KK+OBm+OCiuOBi+OCjyzjgYrjgZXjgoANCivjgZfjgbDjgZXjgY0s44Gy44KN44Gu44KKDQor44GX44GMLOOBi+OBquOBvw0KK+OBl+OBkuOCiyzjgojjgZfjgZMNCivjgZfjgb7jgaAs44GC44Gk44GXDQor44GX44G+44GgLOOBv+OBpOOBiA0KK+OBl+OBvuOBoCzjgb7jgZPjgagNCivjgZfjgb7jgaAs44GL44GK44KLDQor44GX44G+44KC44GoLOOBv+OBpOOChOOBmQ0KK+OBl+OBvuOCgOOCiSzjgZ/jgaTjgoQNCivjgZfjgb7jga4s44Gf44GL44GXDQor44GX44G/44GaLOOBn+OBi+OBguOBjQ0KK+OBl+OBv+OBmizjgajjgZfjgbLjgo0NCivjgZfjgb/jgZos44Gf44Gg44GXDQor44GX44G/44GaLOOBpOOBqOOCgA0KK+OBl+OBv+OBmizjgZPjgYbjgZjjgo3jgYYNCivjgZfjgb/jgZos44GV44Go44KLDQor44GX44G/44GaLOOBv+OBmuOBjQ0KK+OBl+OCguOBoCzjgbLjgo3jgobjgY0NCivjgZfjgoLjgYzjgY0s44GR44KT44KEDQor44GX44KC44Gv44GfLOOBsuOCjeOChuOBjQ0KK+OBl+OCguOCgOOCiSzjga7jgbbjgbLjgo0NCivjgZfjgoLjgYrjgYss44Go44GX44GC44GNDQor44GX44KA44KJLOOBl+OCh+OBhuOBhOOBoQ0KK+OChOOBiOOBjOOBlyzjgYLjgaTjgZMNCivjgZfjga7jgZbjgY0s44GC44Gk44GXDQor44Gv44GO44KP44KJLOOBsuOBp+OBig0KK+OBl+OBiuOBoCzjgb7jgZXjgbLjgagNCivjgZfjgYrjgZ8s44Gy44GV44KI44GXDQor44GX44GK44GW44KPLOOBkeOCk+OBhOOBoQ0KK+OBl+OCieOBhCzjgZ/jgZHjgZcNCivjgZfjgonjgYTjgZcs44Go44KC44Gy44GVDQor44GX44KH44GG44GgLOOBkeOCk+OBmA0KK+OBl+OCheOBhizjgajjgoLjgZMNCivjgZ3jgoHjgoQs44G+44GV44GXDQor44GZ44GgLOOBj+OBv+OBkw0KK+OBmeOBiCzjgbLjgafjgYoNCivjgZnjgYjjgZ8s44Gy44Gn44GKDQor44GX44G244GE44GhLOOBsuOBp+OChuOBjQ0KK+OBmeOBjOOBrizjgbLjgo3jgobjgY0NCivjgZnjgYzjgo/jgoks44Gy44GV44Gf44GLDQor44GZ44GO44GILOOBi+OBpOOBqOOBlw0KK+OBmeOBjuOBvuOBlSzjgZHjgYTjgZ8NCivjgZnjgY7jgoLjgoos44Gu44G244KG44GNDQor44GZ44GO44KC44GoLOOBqOOBiuOCiw0KK+OBmeOBjuOBleOBjSzjgojjgYbjgZMNCivjgZnjgY7jgYbjgoks44KG44GN44GKDQor44GZ44GO44GG44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBv+OBmuOBiuOBoSzjgZ/jgYvjgZcNCivjgZnjgY7jgoTjgb4s44G+44GV44KEDQor44GZ44GO44KE44G+LOOBvuOBquOBtg0KK+OBmeOBjuOChOOBvizjgZHjgpMNCivjgZnjgY7jgoTjgb4s44Gf44GR44GXDQor44GZ44G/LOOBvuOBleOCguOBqA0KK+OBn+OBueOBhCzjgojjgZfjga7jgooNCivjgZnjgarjgb8s44Gy44KN44GTDQor44GZ44GV44KPLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgYLjgY3jgZMNCivjgZnjgZrjgY0s44GI44GE44GYDQor44GZ44Ga44GNLOOBsuOBp+OChuOBjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GL44Gq44GTDQor44GZ44Ga44GNLOOBi+OBquOBkw0KK+OBmeOBmuOBjSzjgYvjgZrjgojjgZcNCivjgZnjgZrjgY0s44GR44KT44GfDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgb7jgZXjga7jgooNCivjgZnjgZrjgY0s44Gq44KK44G+44GVDQor44Gf44G5LOOCiuOCheOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBoeOBr+OCiSzjgZ/jgYvjgZcNCivjgZ/jgZIs44Go44GX44GNDQor44Gf44GQ44GhLOOCj+OBn+OCiw0KK+OBquOBi+OBnyzjgo/jgZ/jgosNCivjgZ/jgZDjgaEs44GX44KTDQor44Gf44GY44G+LOOBguOBjeOCiQ0KK+OBn+OBmOOBvizjgb7jgZPjgagNCivjgZ/jgYvjgaAs44GT44GG44GE44GhDQor44Gf44GL44GO44KPLOOBv+OBpOOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgojjgZcNCivjgZ/jgYvjga/jgZcs44Gy44KN44KE44GZDQor44Gf44GL44Gv44GXLOOBi+OBmuOBruOCig0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgajjgZcNCivjgZ/jgYvjgY/jgoks44GT44GG44GYDQor44Gf44GL44GP44KJLOOChOOBmeOBvuOBlQ0KK+OBn+OBi+OBr+OBlyzjgoTjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GC44GN44G144G/DQor44Gf44GL44Gv44GXLOOBiuOBleOCgA0KK+OBn+OBi+OBr+OBlyzjgobjgYbjgZgNCivjgZ/jgYvjga/jgZcs44Gy44KN44KG44GNDQor44Gf44GL44Gv44GXLOOBpOOBi+OBlQ0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44KG44GG44GTDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjgY/jgoks44Gk44Go44KADQor44Gf44GL44G/44KELOOBn+OBvuOBvw0KK+OBn+OBi+OBleOBlCzjgY/jgavjgbLjgZMNCivjgZ/jgYvjgZXjgY0s44G+44GV44GoDQor44Gf44GL44GbLOOBvuOBleOBsuOBqA0KK+OBn+OBi+OBpOOBiyzjgZfjgpPjgYTjgaENCivjgZ/jgYvjgoTjgarjgY4s44GX44GS44KLDQor44Gf44GL44KE44Gq44GOLOOChOOBiOOBjeOBoQ0KK+OBn+OBkeOBoSzjgbLjgafjgYLjgY0NCivjgZ/jgZHjgaAs44Gy44KN44GXDQor44Gf44GR44GgLOOBhOOBpOOBsuOBqA0KK+OBn+OBkeOBjOOBvyzjgYvjgaTjgb8NCivjgZ/jgZHjgbLjgZUs44G+44GT44GoDQor44Gf44GR44GELOOBruOBtuOBig0KK+OBn+OBkeOBhCzjgZ/jgaDjgobjgY0NCivjgZ/jgZHjgYvjgo8s44Gf44GR44Gy44GTDQor44Gf44GR44KA44KJLOOBqOOBl+OBsuOBpw0KK+OBn+OBkeOBquOBiyzjgajjgZfjgbLjgo0NCivjgYTjgb7jgYQs44KI44GG44GE44GhDQor44Gf44GR44GV44GTLOOCiOOBhuOBhOOBoQ0KK+OBn+OBkeOBl+OBvizjgYvjgaTjgZfjgo3jgYYNCivjgZ/jgZHjgYbjgaEs44Gy44KN44Go44GXDQor44Gy44Gg44GLLOOBqOOBiuOCiw0KK+OBn+OBjeOCguOBqCzjgb/jganjgooNCivjgZ/jgY3jgZbjgo8s44GN44GP44G/DQor44Gf44G+44GELOOBvuOBleOCiw0KK+OBn+OCgOOCiSzjgZfjgofjgYbjgYTjgaENCivjgZ/jgarjgbks44GI44GE44GYDQor44Gf44Gq44G5LOOCiOOBhuOBuOOBhA0KK+OBn+OBquOBiyzjgYLjgY3jgagNCivjgZ/jgarjgYss44GE44GV44KADQor44Gf44Gq44GLLOOBv+OBqeOCig0KK+OBn+OBquOBiyzjgojjgZfjgarjgooNCivjgZ/jgarjgYss44KE44GZ44GYDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjgYLjgorjgbLjgagNCivjgZ/jgarjgYss44GX44KT44GUDQor44Gf44Gq44GLLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44Gf44GL44GXDQor44GV44GuLOOBsuOCjeOBteOBvw0KK+OBn+OBqyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgZ/jgavjgoDjgoks44KI44GX44G144G/DQor44Gf44Gr44KE44G+LOOBoOOBhOOBmeOBkQ0KK+OBn+OBleOBiyzjgoTjgZnjgb7jgZUNCivjgYvjgajjgYYs44GI44GE44GYDQor44Gm44KJ44GgLOOCiOOBl+OChuOBjQ0KK+OBpuOCieOBvuOBiCzjgb7jgY0NCivjgabjgonjgavjgZcs44Gu44G244KG44GNDQor44Gm44KJ44Gr44GXLOOBsuOCjeOBv+OBpA0KK+OBpuOCieOBnuOBrizjgYvjgYrjgooNCivjgajjgbPjgZ8s44G+44GV44G/DQor44GE44Ga44G/44GV44KPLOOBsuOBp+OBjQ0KK+OBqOOBoCzjgZXjgajjgZcNCivjgajjgZDjgaEs44Gf44GR44GXDQor44Go44G+44GkLOOBqOOCguOBguOBjQ0KK+OBguOBjeOCgOOCiSzjga7jgbbjgobjgY0NCivjgajjgY3jgZ/jgZEs44Gf44GR44GXDQor44Go44GP44G+44GZLOOBguOBjeOBsuOCjQ0KK+OBqOOBj+OBn+OBkSzjgYLjgY3jgbLjgZMNCivjgajjgb7jgY0s44GL44Ga44KEDQor44Go44G/44GELOOBvuOBleOBsuOCjQ0KK+OBqOOBv+OBnyzjgY3jgb/jgYoNCivjgajjgb/jgoTjgb4s44G+44GV44GoDQor44Go44KC44GgLOOBj+OBv+OBkw0KK+OBqOOCguOBquOBjCzjgb7jgZXjga7jgooNCivjgajjgZXjgYss44Gq44GK44GoDQor44Go44Gj44Go44KKLOOBguOBjeOBsuOBkw0KK+OBvuOBpOOBiizjgojjgZfjgobjgY0NCivjgajjgojjgaAs44KI44GX44KG44GNDQor44Gk44G844GELOOBguOBjeOCiQ0KK+OBi+OBqOOBhizjgajjgZfjgbLjgo0NCivjgaTjgaHjgoQs44GL44Ga44GXDQor44Gk44GgLOOBl+OCk+OBlA0KK+OBpOOBmCzjgb7jgZXjgbLjgZMNCivjgaTjgZgs44KI44GG44GE44GhDQor44Gk44GY44GuLOOCiOOBhuOBmeOBkQ0KK+OBpOOBi+OBk+OBlyzjgYLjgY3jgokNCivjgaTjgYvjgoLjgags44GX44GS44Gy44KNDQor44Gk44GL44GW44GNLOOBteOBv+OBsuOCjQ0KK+OBpOOBjeOBguOBlyzjgYLjgY3jgokNCivjgaTjgY3jgZbjgo8s44GT44GG44GYDQor44Gk44G/44GfLOOBiOOBhOOBhOOBoQ0KK+OBiOOCk+OBqSzjgZ/jgaDjgbLjgZMNCivjgaTjgags44Go44GX44Gy44KNDQor44Gk44KA44KJLOOCiOOBl+OBig0KK+OBpOOBreOBi+OCjyzjgZ3jga7jgZnjgZENCivjgaTjgovjgYrjgYss44KI44GX44Gy44GTDQor44Gk44KL44GfLOOBruOCiuOBkw0KK+OBpOOCi+OBnyzjgoLjgajjgobjgY0NCivjgaTjgovjgZ8s44Gf44Gk44KG44GNDQor44Gk44Gk44G/LOOBl+OCheOCk+OChA0KK+OBpOOBpOOBvyzjgYvjgaTjgb8NCivjgaTjgo/jgZMs44KG44GLDQor44Gk44KE44G+LOOBjeOCiOOBteOBlQ0KK+OBhuOBoeOBoCzjgZfjgofjgYbjgZMNCivjgYbjgaHjgaAs44G+44GV44Gy44KNDQor44GG44Gh44GgLOOBm+OBpOOBkw0KK+OBhuOBoeOChOOBvizjgZfjgpPjgZQNCivjgYbjgaHjgoTjgb4s44Gy44Gn44GKDQor44GG44GpLOOBjeOCiOOBvw0KK+OBhuOBiOOBoCzjga/jgovjgY0NCivjgYbjgYjjgaAs44KI44GG44GZ44GRDQor44G+44Gk44KA44KJLOOBoOOBhOOBmOOCjeOBhg0KK+OBhuOBiOOBoCzjgYLjgZHjgb8NCivjgYbjgYjjgaAs44GC44GN44GKDQor44GG44GI44G+44GkLOOBsuOBp+OBig0KK+OBhuOBiOOBrizjgbLjgo3jgb8NCivjgYbjgYjjga4s44GY44KF44KT44GYDQor44GE44GX44GgLOOBi+OBmuOBsuOBkw0KK+OBhuOCgeOBoCzjgZPjgYbjgZvjgYQNCivjgYbjgoHjgYzjgY0s44GP44Gr44GTDQor44GG44GuLOOBvuOCguOCiw0KK+OBhuOCieOBr+OBlywNCivjgZfjgb/jgZos44GV44Go44GXDQor44GI44GM44GX44KJLOOBn+OBoOOBlw0KK+OBmeOBiOOBi+OBrSzjgabjgovjgobjgY0NCivjgYbjgaQs44Go44GK44KLDQor44GG44Gk44Gv44GXLOOBqOOBl+OBsuOCjQ0KK+OBhuOBpOOBvyzjgZHjgYTjgYTjgaENCivjgo/jgaAs44Gk44Gt44G144G/DQor44KP44GgLOOBn+OBpOOBvw0KK+OBjeOBn+OCj+OBjSzjgZvjgYTjgY0NCivjgo/jgZfjgZos44Gv44KL44Gq44GMDQor44KP44Gf44G5LOOBteOBv+OCiA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44G+44GV44KEDQor44KP44Gf44Gq44G5LOOBleOBqOOBvw0KK+OCj+OBn+OBquOBuSzjgZfjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBpOOBqOOCgA0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44Gk44Gt44GKDQor44KP44Gf44Gq44G5LOOBvuOBleOCiA0KK+OCj+OBn+OBquOBuSzjgYjjgYTjgZgNCivjgo/jgZ/jgarjgbks44Gy44KN44GTDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgZcNCivjgo/jgZ/jgarjgbks44KG44GG44GY44KN44GGDQor44KP44Gf44Gq44G5LOOChOOBmeOBig0KK+OBiOOBr+OCiSzjgYLjgaTjgZcNCivjgo/jgZ/jgarjgbks44Gy44Gn44GC44GNDQor44KP44Gf44KJ44GELOOBmOOCjeOBhg0KK+OChOOBiOOBjOOBlyzjgYrjgZXjgoANCivjgoTjga/jgY4s44GX44Gu44G2DQor44KE44G+44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOBoCzjgZ/jgZHjgZcNCivjgoTjgb7jgaAs44KI44GG44GYDQor44GT44KT44GpLOOBqOOBl+OChA0KK+OChOOBvuOBoCzjgYLjgaTjgZcNCivjgoTjgb7jgaAs44GK44GV44KADQor44KE44G+44GgLOOBv+OBjQ0KK+OChOOBvuOBoCzjgYLjgY3jgbLjgo0NCivjgYjjga7jgoLjgags44Gy44KN44GXDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBkOOBoSzjgY3jgpPjgoQNCivjgbXjgZjjgZ8s44G+44GV44Go44GXDQor44KE44G+44GQ44GhLOOBleOBqOOBkw0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgbLjgo0NCivjgYjjgZbjgY0s44Gy44Go44GXDQor44KE44G+44GQ44GhLOOBleOBqOOCiw0KK+OChOOBvuOCguOBqCzjgZXjgajjgZcNCivjgoTjgb7jgoLjgags44Go44GK44KLDQor44KE44G+44KC44GoLOOChOOBmeOBlw0KK+OChOOBvuOCguOBqCzjgZ/jgZHjgZcNCivjgoTjgb7jgoLjgags44GT44GG44GE44GhDQor44KE44G+44KC44GoLOOBk+OBhuOBjQ0KK+OChOOBvuOCguOBqCzjgajjgZfjgobjgY0NCivjgoTjgb7jgoLjgags44G+44GV44KLDQor44KE44G+44Gq44GLLOOBsuOCjeOBlw0KK+OChOOBvuOBrSzjgb/jgaHjgosNCivjgoTjgb7jga7jgY/jgaEs44GV44Go44GXDQor44KE44G+44GV44GNLOOBn+OBi+OBlw0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgYvjgZoNCivjgoTjgb7jgZfjgZ8s44Gy44KN44GNDQor44KE44G+44GX44GfLOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OChOOBvuOBl+OBnyzjgZPjgYbjgY0NCivjgoTjgb7jgZfjgZ8s44GX44GS44G/DQor44GX44GV44GELOOBvuOBleOChuOBjQ0KK+OChOOBvuOBl+OBnyzjgajjgZfjgbLjgo0NCivjgoTjgb7jgYbjgaEs44Go44GX44KG44GNDQor44KE44G+44GG44GhLOOBvuOBk+OBqA0KK+OChOOBvuOBluOBjSzjgbLjgafjgYoNCivjgoTjgb7jgZbjgY0s44Gf44Gg44GXDQor44KE44G+44GW44GNLOOCgOOBpOOBvw0KK+OChOOBquOBjuOCguOBqCzjgZ/jgZHjgZcNCivjgoTjga4s44KK44KH44GG44GYDQor44KE44GuLOOBsuOCjeOBjQ0KK+OChOOBl+OCjSzjgoTjgZnjgZcNCivjgoTjgZbjgo8s44G+44GT44GoDQor44KI44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OCiOOBjizjgbXjgb/jgobjgY0NCivjgojjgZPjgYQs44GT44GG44GYDQor44KI44GT44KE44G+LOOBkeOCk+OBl+OCh+OBhg0KK+OCiOOBreOBluOBjSzjgbXjgajjgZcNCivjgojjgZfjgaAs44GY44KF44KTDQor44KI44GX44GgLOOCiuOBiOOBkw0KK+OCiOOBl+OBoCzjgYvjgZrjgojjgZcNCivjgojjgZfjgaAs44GY44KF44KT44GTDQor44GI44Gz44GqLOOBm+OBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgZ/jgaDjgZcNCivjgojjgZfjgaAs44Gf44Gk44GKDQor44KI44GX44GE44GRLOOChOOBmeOBruOCig0KK+OCiOOBl+OCgOOCiSzjgb/jgaTjgobjgY0NCivjgojjgZfjgoDjgoks44GV44Go44KLDQor44KI44GX44GuLOOBl+OCk+OBhOOBoQ0KK+OCiOOBl+OBiizjga7jgbzjgosNCivjgojjgZfjgZ/jgZEs44GX44GS44KI44GXDQor44KG44GC44GVLOOBpuOBpOOBmA0KK+OBiuOBiuOCj+OBoCzjgZfjgofjgYbjgZgNCivjgYjjgZDjgaEs44GV44Go44KLDQor44GK44GW44KPLOOBi+OBpOOChuOBjQ0KK+OBleOBqOOBhizjgb/jgaTjgYLjgY0NCivjgZfjgpPjgZ/jgass44Gf44GR44G/DQor44GZ44GO44Gf44GrLOOCiOOBl+OBsuOBkw0KK+OBn+OBi+OBr+OBlyzjgYTjgZrjgb8NCivjgZ/jgY3jgZbjgo8s44Gq44GK44GNDQor44G/44KI44GgLOOBkeOCk+OBmA0KK+OChOOBvuOBoCzjgY3jgojjgZcNCivjgoTjga/jgY4s44GV44Go44GXDQor44GN44KELOOBn+OBoOOBlw0KK+OBv+OBm+OBjSzjga7jgorjgYvjgZoNCivjgYjjga7jgoLjgags44GR44KT44Gf44KN44GGDQor44GV44GP44KJ44GgLOOBvuOBleOBjQ0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgbDjgbAs44Gf44GR44GKDQor44GC44G8LOOBi+OBiuOCig0KK+OBguOBoOOBoSzjgZPjgYbjgbjjgYQNCivjgYLjgYvjgZXjgYss44G+44GV44Gy44KNDQor44GC44G+44GV44GNLOOBsuOBp+OBqA0KK+OBguOBiuOBjSzjgYvjgpPjgZgNCivjgYLjgZzjgYzjgb8s44GX44GS44GL44GaDQor44GI44Gp44GuLOOBteOBv+OBsuOCjQ0KK+OBqeOBhCzjgYvjgZrjgYoNCivjgbXjgZjjgYQs44Go44KC44Gy44GoDQor44G144GY44GELOOBleOChuOCig0KK+OBteOBmOOCguOBqCzjgbLjgo3jgY0NCivjgbXjgZjjgoLjgags44Gf44GR44GXDQor44G144GP44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBteOBj+OBiuOBiyzjgabjgaTjgoQNCivjgbXjgY/jgZfjgb4s44GR44KT44GE44GhDQor44G144GV44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBlOOBqOOBhizjgojjgZfjgbLjgo0NCivjga/jgb7jgbks44GI44GE44GYDQor44Gv44Gq44GgLOOBkeOBhOOBmeOBkQ0KK+OBr+OBl+OCguOBqCzjgojjgZfjgbLjgo0NCivjgbLjgbMs44GV44GL44GIDQor44Gy44KJ44Gk44GLLOOBi+OBmuOChuOBjQ0KK+OBhOOBi+OCiizjgZ/jgYvjgobjgY0NCivjgYTjgY/jgZ8s44GC44GN44Gy44GTDQor44GE44G+44GELOOBpuOBpOOBlw0KK+OBhOOBl+OBr+OCiSzjgoTjgZnjgbLjgo0NCivjgYTjgZ3jgaAs44GT44GG44GE44GhDQor44GE44Gd44GW44GNLOOCiOOBl+OBn+OBiw0KK+OBmOOCk+OBkOOBhizjgojjgZfjgYLjgY0NCivjgarjgYQs44G/44Gu44KLDQor44GY44KH44GG44Gr44GXLOOBiuOBleOBvw0KK+OBi+OBmOOBr+OCiSzjgojjgZfjgYLjgY0NCivjgYvjgb7jgZ8s44Gf44Gk44KEDQor44GL44KB44GELOOBguOBjeOCiQ0KK+OBi+OBv+OChOOBvizjgabjgaTjgoQNCivjgYvjgajjgYYs44Gf44Gk44GYDQor44GL44Go44GGLOOBqOOBl+OChuOBjQ0KK+OBiOOBvyzjgbLjgafjgYLjgY0NCivjgYvjgo/jgoLjgoos44G+44KC44KLDQor44GN44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBjeOCgOOCiSzjgYvjgZrjgYoNCivjgY3jgZfjgbks44GP44Gr44Gy44GTDQor44GN44GX44GL44KPLOOBi+OBmuOCiOOBlw0KK+OBjeOBn+OBjOOCjyzjgZfjgpPjgYTjgaENCivjgY3jgZ/jgarjgYss44KB44GQ44G/DQor44GT44Gw44KE44GXLOOBvuOBleOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZLjgpMNCivjgZPjgYTjgZEs44Go44GG44GfDQor44GT44GE44Ga44G/LOOBi+OBmuOChA0KK+OBk+OBmOOBvizjgZ/jgYvjgbLjgZUNCivjgZPjgavjgZcs44GN44KI44GL44GaDQor44GT44KE44G+LOOBn+OBj+OChA0KK+OBj+OBqeOBhizjgYvjgZrjgoQNCivjgY/jgb7jgZXjgY0s44KI44GX44GC44GNDQor44GP44KN44GgLOOBsuOCjeOBi+OBmg0KK+OBj+OBleOBiyzjgZfjgpPjgZQNCivjgYjjgpPjgaks44GR44KT44GYDQor44G+44GI44GL44KPLOOBvuOBleOBsuOCjQ0KK+OBvuOCi+OBnyzjgbLjgafjgY0NCivjgb7jgaTjgZfjgZ8s44GX44KT44GUDQor44G/44GP44GrLOOBqOOBv+OBig0KK+OBiOOCk+OBqSzjgojjgZfjga7jgooNCivjgb/jga0s44KE44GZ44Gf44GLDQor44G/44GG44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBv+OBnuOBkOOBoSzjgZfjgofjgYbjgZgNCivjgbvjgpMs44KI44GX44GC44GNDQor44G/44Ga44GX44G+LOOBl+OBkuOCiw0KK+OBiOOBoCzjgZ/jgYvjgZcNCivjgarjgYzjgYos44GC44Gk44GXDQor44Gq44GL44KA44KJLOOBqOOBiuOCiw0KK+OBquOBi+OBq+OBlyzjgobjgYbjgZgNCivjgarjgYvjga4s44KI44GG44GTDQor44Gq44GL44GKLOOBi+OBpOOChA0KK+OBreOCguOBqCzjgb7jgZXjgobjgY0NCivjgavjgZfjgYvjgo8s44GT44GG44GYDQor44Gr44GX44KP44GNLOOBkeOCk+OBhOOBoQ0KK+OBruOBoCzjgZ/jgYvjgZMNCivjga7jgZDjgaEs44G/44Go44GXDQor44GK44Gh44GC44GELOOBk+OBhuOBmA0KK+OBiuOBiuOBr+OBlyzjgoTjgZnjgojjgZcNCivjgYrjga4s44Gf44GP44GYDQor44GI44G/LOOBsuOBp+OBig0KK+OBiuOBj+OCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYrjgY/jga4s44Gy44Gn44G/44GkDQor44GI44KT44GpLOOCiOOBl+OBn+OBoA0KK+OBiuOBiuOBq+OBlyzjgYLjgY3jgokNCivjgYrjgZbjgY0s44GP44Gr44Gv44KLDQor44GV44GI44GNLOOBruOCiuOChuOBjQ0KK+OBleOBjOOCjyzjga7jgbzjgosNCivjgZXjgY/jgb4s44G+44GV44G7DQor44GV44Go44GGLOOBl+OBkuOBguOBjQ0KK+OBleOBqOOBhizjgb/jgaTjgbLjgo0NCivjgZXjgo8s44GN44KI44Gf44GLDQor44Gb44GM44KPLOOBk+OBhuOBmA0KK+OBm+OBjSzjgobjgY3jgYoNCivjgZvjgpPjgaAs44GR44KT44GYDQor44GX44G244KELOOBl+OCheOBhuOBhOOBoQ0KK+OBl+OBv+OBmizjgojjgZfjga/jgosNCivjgZfjgpPjgafjgpMs44GC44GN44KI44GXDQor44GX44GK44GfLOOBsuOBqOOBlw0KK+OBl+OCheOBj+OBn+OBqyzjgajjgZfjgYoNCivjgZnjgoTjgb4s44Gy44KN44GTDQor44GZ44Ga44KA44KJLOOBhOOBleOBig0KK+OBn+OBi+OBiuOBiyzjgojjgZfjgobjgY0NCivjgZ/jgZHjgYbjgaEs44GL44Gk44Gu44KKDQor44Gf44GR44GG44GhLOOBi+OBmuOBlw0KK+OBn+OBvuOBhCzjgb7jgZXjgbLjgo0NCivjgZ/jgpMs44GL44Ga44Gy44KNDQor44Gf44Gq44GLLOOBkeOCk+OBlA0KK+OBiOOBqOOBhizjgabjgovjgYLjgY0NCivjgZ/jgavjgbLjgoks44GL44Ga44Gy44KNDQor44Gf44Gr44KE44G+LOOBjeOBj+OBig0KK+OBn+OBiuOBiyzjgZfjgZLjgY0NCivjgZ/jgZfjgb4s44G+44GV44KG44GNDQor44Gf44GW44KPLOOBv+OBjeOBig0KK+OBqOOBjeOBnyzjgYvjgaTjgojjgZcNCivjgajjgb/jgZ8s44GX44GS44GNDQor44Go44G/44GfLOOBkeOCk+OBmA0KK+OBqOOBv+OBnyzjgYLjgY3jgYoNCivjgaTjgZjjgbks44Gy44KN44GTDQor44Gk44GY44GL44KPLOOBkeOCk+OBhOOBoQ0KK+OBiOOCk+OBqSzjgZjjgoXjgpPjgZMNCivjgb/jgoTjgZbjgY0s44G+44GN44GTDQor44KP44GgLOOCiOOBl+OBn+OBiw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgb8NCivjgoTjgb7jgaAs44Gq44GK44KEDQor44KE44G+44GgLOOBn+OBoOOBlw0KK+OChOOBvuOBoCzjgZXjgoTjgYsNCivjgoTjgb7jgZDjgaEs44Gu44KK44GKDQor44KE44G+44KC44GoLOOBn+OBi+OBkw0KK+OChOOBvuOBiuOBiyzjgYvjgaTjga7jgooNCivjgoTjgb7jgZfjgZ8s44Gu44G244GKDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOBlQ0KK+OChOOBvuOBnuOBiCzjgbLjgo3jgb7jgZUNCivjgoTjgYos44KE44GZ44Gv44KLDQor44KE44GZ44GgLOOBleOBqOOBlw0KK+OCiOOBpOOBn+OBqyzjgojjgZfjgYoNCivjgojjgZfjga/jgoks44Gy44Gn44GKDQor44KI44GT44GG44KJLOOBvuOBleOBig0KK+OBsuOCieOBmyzjgZfjgZLjgYoNCivjgb7jgaTjgYQs44GE44Gh44Gf44KN44GGDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOBlQ0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgYvjgajjgYYs44Go44GX44GP44GrDQor44GP44Gr44Go44KCLOOBruOBtuOChuOBjQ0KK+OBiOOCk+OBqSzjgZTjgYYNCivjgYTjgajjgYYs44GV44Go44KLDQor44GK44GL44GW44GNLOOBsuOBp+OBig0KK+OBsuOCjeOBr+OBlyzjgoTjgZnjgYoNCivjgZXjgYvjgY0s44KI44GG44GTDQor44G/44GNLOOBqOOBjeOBkw0KK+OBj+OBvuOBjSzjgb7jgZXjgYoNCivjgZ/jgoTjgb4s44Gm44Gk44GKDQor44GK44GK44KP44GNLOOBjeOBr+OBoQ0KK+OBv+OCh+OBhuOBqeOBhizjgb7jgZXjgagNCivjgYvjgajjgYYs44Gy44KN44KI44GXDQor44Gw44GwLOOBv+OBjeOBig0KK+OBi+OBreOBkyzjga/jgovjgbLjgZMNCivjgZPjgZDjgows44Gy44KN44GC44GNDQor44Gf44GR44GgLOOCiOOBl+OBruOCig0KK+OBhOOBoeOCgOOCiSzjgb7jgoLjgosNCivjgYTjgajjgYYs44Gu44G844KLDQor44GG44GI44Gv44G+LOOBv+OBruOCiw0KK+OBquOBi+OBhCzjgZPjgYbjgZgNCivjgZPjgbDjgoTjgZcs44G+44GV44GKDQor44GX44G+44GgLOOBvuOBquOBig0KK+OCgeOBkOOCjSzjgZfjgZLjgosNCivjgoTjgb7jgoQs44Gy44KN44GXDQor44G144GY44GfLOOBv+OBpOOBkA0KK+OBvuOBqOOBsCzjgaHjgbLjgo0NCivjgYTjgajjgYYs44KC44Go44GL44GaDQor44Gq44GL44GELOOBl+OBmuOBig0KK+OBiuOBi+OBoCzjgb7jgZXjgbLjgagNCivjga7jgoLjgags44Go44GX44GNDQor44Gq44GM44GX44G+LOOCiOOBhuOBmA0KK+OCiOOBreOBi+OCjyzjgZ/jgoLjgaQNCivjgo/jgZ/jgarjgbks44Go44GK44KLDQor44KA44KJ44G+44GkLOOBqOOCguOBoeOBiw0KK+OBjeOBn+OBqyzjgobjgYbjgYTjgaHjgo0NCivjgb/jgYvjgb8s44Gy44KN44GXDQor44GC44Gg44GhLOOBv+OBpOOBig0KK+OBhOOBruOBhuOBiCzjgb7jgZXjgYLjgY0NCivjgYrjgYvjgaAs44Gf44GL44GC44GNDQor44GL44KP44GX44G+LOOBpuOBpOOBig0KK+OBm+OBjSzjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44KI44GX44GYDQor44KP44Gf44Gq44G5LOOBvuOBleOCiw0KK+OBj+OCiuOBr+OCiSzjgaHjga/jgosNCivjgo/jgZ/jgarjgbks44GR44GE44GZ44GRDQor44G144GY44GL44GfLOOBv+OBpOOBig0KK+OCiOOBl+OBqCzjga7jgorjgYoNCivjgYvjgo/jgZss44GK44GV44KADQor44Gf44Gq44GLLOOBvuOBk+OBqA0KK+OBhOOBvuOBhCzjgZHjgpPjgZgNCivjgZPjgoDjgo0s44KG44GN44Go44GXDQor44G+44GI44GgLOOBiOOBhOOBlA0KK+OBk+OBhOOBkSzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44G/44Gh44GC44GNDQor44GT44KT44GpLOOBsuOBleOBqOOBlw0KK+OBhOOBl+OBhCzjgbLjgZXjgoQNCivjgb/jgZfjgb4s44Gf44GL44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBi+OBmg0KK+OChOOBvuOBl+OBnyzjgZHjgpPjgZgNCivjgZ/jgarjgYss44KK44KH44GG44Ge44GGDQor44KE44G+44GgLOOBvuOBleOBqOOBlw0KK+OBi+OBv+OChCzjgb/jgaHjgoTjgZkNCivjgoTjgb7jgoLjgags44KK44GN44GKDQor44GX44GK44GW44GNLOOBqOOBiuOCiw0KK+OBquOBi+OCgOOCiSzjgaHjgYvjgZcNCivjgZ/jgZHjgoLjgags44GV44Gh44GKDQor44Gg44GR44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBguOCieOBi+OCjyzjgZzjgpPjgZgNCivjgojjgZPjgZ8s44G+44GV44KG44GNDQor44Gq44GL44KA44KJLOOBi+OBmuOBsuOBkw0KK+OBguOCieOBi+OCjyzjgajjgZfjgYoNCivjgYrjgYrjgb/jgaEs44G+44GT44GoDQor44G+44Gk44GNLOOBiOOBhOOBjQ0KK+OBj+OBl+OBs+OBjSzjgZnjgZHjgbLjgacNCivjgavjgaPjgZ8s44Gm44KL44Gy44GTDQor44Gk44G844GG44GhLOOBv+OBjeOBig0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgZ/jgZHjgoDjgoks44Go44GX44Gy44KNDQor44Gf44Gq44G5LOOBi+OBmuOBig0KK+OBvuOBiOOBoCzjgoLjgajjgY/jgasNCivjgZnjgYzjga/jgoks44Gm44Gk44GKDQor44GL44Gt44GTLOOBl+OCh+OBhuOBmA0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgbLjgZMNCivjgYvjgb/jgZbjgo8s44Gy44KN44G144G/DQor44GT44GMLOOBqOOBj+OBsuOCjQ0KK+OBpOOCi+OBleOBjSzjgZnjgarjgYoNCivjgbLjgYzjgZcs44G144G/44Gy44KNDQor44GE44GX44GgLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBjOOCjyzjga/jgovjgYoNCivjgabjgonjgZfjgb4s44Gy44GV44Gv44KLDQor44GN44Gf44KA44KJLOOBl+OCheOCk+OBmA0KK+OBr+OBo+OBqOOCiizjgbLjgafjgb8NCivjgZXjgZXjgY0s44KI44GX44Gy44KNDQor44G744GLLOOBkeOCk+OBn+OCjeOBhg0KK+OBruOCgOOCiSzjgabjgovjgYoNCivjga/jgoTjga4s44GL44Ga44GKDQor44GC44KT44GW44GELOOBl+OCk+OBhOOBoQ0KK+OBteOCi+OBrizjgY3jgojjgbLjgacNCivjgavjgZfjgo/jgY0s44GP44GrDQor44Gv44Gb44GM44KPLOOBvuOBleOBig0KK+OBhOOCj+OBnyzjgZ/jgYvjgobjgY0NCivjgajjgaAs44Gy44KN44GC44GNDQor44Gq44GL44KA44KJLOOBvuOBleOBqA0KK+OBteOCi+OBhOOBlyzjgb7jgZnjgb8NCivjgarjgYvjgoDjgoks44G144GY44GKDQor44Gq44GL44GM44KPLOOBsuOBp+OBig0KK+OBquOBi+OBvizjgZ/jgaTjgoQNCivjgZnjgYzjgo/jgoks44G+44GZ44GTDQor44G+44Gk44KC44GoLOOBpOOBqOOCgA0KK+OBr+OBl+OCguOBqCzjgojjgYbjgZ/jgo3jgYYNCivjgarjgYvjgaQs44KE44GZ44GL44GaDQor44GV44Go44GG44KKLOOBguOBjeOCiQ0KK+OBhOOBjeOBnyzjgobjgY3jga7jgbYNCivjgY3jgY/jgaEs44Gf44GR44GXDQor44GZ44GoLOOBvuOBleOBvw0KK+OBl+OBsOOBnyzjgbLjgZXjga7jgooNCivjgarjgYTjgajjgYYs44GT44GG44GYDQor44KC44KKLOOBi+OBmuOBkw0KK+OBhOOBqOOBhCzjgYLjgY3jgokNCivjgYTjgajjgYYs44GR44KT44GYDQor44G+44Gk44GW44GNLOOBvuOBleOBruOCig0KK+OBhuOBiOOBrizjgb/jgaTjga7jgooNCivjgYvjgZ/jgYrjgYss44GN44KI44GL44GaDQor44Gw44KT44Gp44GGLOOBn+OBpOOBig0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpPjgZgNCivjgYTjgo/jgYQs44GX44GS44KLDQor44GX44KC44KE44G+LOOBv+OBruOCiw0KK+OBguOBi+OBvuOCiyzjgYrjgZXjgoANCivjgZTjgajjgYYs44Gv44GY44KBDQor44G+44Gk44GgLOOBmeOBmeOCgA0KK+OBreOBjOOBvyzjgajjgZfjgYoNCivjgoTjgb7jgZfjgZ8s44G+44GV44GK44G/DQor44KI44Gt44KE44G+LOOCiuOCheOBhuOBuOOBhA0KK+OBhOOBl+OChOOBvizjgbLjgZXjgYoNCivjgYLjgbnjgYvjgo8s44KM44GE44GYDQor44GE44G+44KA44KJLOOBl+OBkuOCiw0KK+OBhOOCj+OBquOBjCzjgb/jga7jgosNCivjgYbjgYjjgaAs44GP44Gr44Gy44GTDQor44G144GY44GL44KPLOOChuOBjeOBig0KK+OBn+OCgOOCiSzjgojjgZfjgbLjgZUNCivjgYvjgZfjgYQs44G+44GV44GoDQor44KI44Gt44GgLOOBvuOBleOBig0KK+OCiOOBk+OBpCzjgYLjgY3jgYoNCivjgYLjgZXjgYos44KG44GG44GYDQor44Gf44Gq44GLLOOBkeOBhOOBmA0KK+OBn+OBquOBiyzjgZ/jgaDjgb8NCivjgoTjgZfjgY0s44KE44GZ44KG44GNDQor44GL44GE44GM44GELOOBn+OBkeOBlw0KK+OBneOBjOOBuSzjgobjgY3jgYoNCivjgbXjgovjgYvjgo8s44GR44KT44GYDQor44GL44KP44GG44GhLOOChuOBhuOBhOOBoQ0KK+OBteOBmOOBhCzjga7jgorjgobjgY0NCivjgYTjgZHjga7jgoQs44Gf44Gk44GKDQor44GK44GhLOOBruOCiuOBig0KK+OBquOBi+OCguOBqCzjgarjgYrjga/jgosNCivjgo/jgYvjgbDjgoTjgZcs44Gv44KM44GKDQor44GC44KJ44GNLOOBteOBv+OBig0KK+OChOOBuSzjgbLjgafjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gy44KNDQor44GX44Gw44GuLOOBv+OBpOOBig0KK+OBn+OBjOOBl+OCiSzjgajjgZfjgYoNCivjgZnjgb/jgZ8s44Gm44Gk44KEDQor44GV44Go44GGLOOBk+OBhuOBmOOCjeOBhg0KK+OBoeOBrizjgZfjgZLjgagNCivjgoTjgb7jgaAs44KE44GZ44Gy44KNDQor44GE44GM44KJ44GXLOOBruOCiuOCiOOBlw0KK+OBhOOBkeOBjOOBvyzjgZHjgpPjgYTjgaENCivjgbXjgarjgaAs44Gf44GL44KG44GNDQor44GE44Gu44GG44GILOOBn+OBi+OCiOOBlw0KK+OBq+OBl+OChOOBvizjgbLjgo3jgZcNCivjgYTjgZfjga/jgoks44Go44GX44Gf44GLDQor44GZ44Ga44GNLOOBn+OBhOOBoQ0KK+OBk+OCguOCiuOChCzjgYvjgZrjgYoNCivjgaHjgoXjgYbjgZQs44Gy44KN44GXDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBv+OChOOCguOBqCzjgaTjgajjgoANCivjgarjgYvjgZ8s44Gf44GL44KG44GNDQor44GE44KK44Gf44GrLOOBn+OBj+OBig0KK+OBiuOBjOOCjyzjgobjgY3jgaENCivjgYrjga0s44GR44KT44GYDQor44GT44G+44GkLOOBvuOBleOBguOBjQ0KK+OBv+OBruOCjyzjgbLjgo3jgZcNCivjgbXjgZjjgYvjgo8s44Gq44GK44GoDQor44GL44KP44GQ44GhLOOChOOBmeOBsuOCjQ0KK+OBoeOBsCzjgajjgZfjgbLjgZMNCivjgarjgYvjgavjgZcs44GV44Gg44GKDQor44GV44GP44G+LOOBsuOBqOOBlw0KK+OBn+OBkeOBvuOBlSzjgajjgZfjgobjgY0NCivjgZvjgY0s44KI44GG44GE44GhDQor44GV44GE44Go44GGLOOBteOBv+OBig0KK+OBteOBmOOCguOBqCzjgoTjgZnjgYoNCivjgYrjgZDjgoos44Gf44Gk44GYDQor44GE44GX44Gw44GXLOOBjeOCiOOBlw0KK+OBguOBluOBvyzjgZfjgZLjgosNCivjgYrjgYzjgZXjgo/jgoks44Gq44GK44GE44GhDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgoLjgorjgoTjgb4s44GX44KF44GG44G444GEDQor44GN44Gf44GW44KPLOOBsuOBp+OBqOOBlw0KK+OBi+OBquOBluOCjyzjgYvjgaTjgYoNCivjga/jgonjgaAs44G+44GV44GoDQor44GK44GP44KE44G+LOOBleOBqOOBlw0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjgYTjga7jgb7jgZ8s44KG44GN44GKDQor44G144KL44GV44KPLOOBm+OBhOOBjQ0KK+OBn+OBkeOBhuOBoSzjgZfjgo3jgYYNCivjgYrjgYrjga4s44Gk44Go44KADQor44KC44KN44GK44GLLOOBkeOCk+OBmA0KK+OBl+OBruOBluOBjSzjgbXjgb/jgYLjgY0NCivjga7jgZDjgaEs44GX44GS44GC44GNDQor44GX44G+44GgLOOBk+OBhuOBmA0KK+OBi+OCj+OBleOBjSzjgobjgZ/jgYsNCivjgYrjgYrjgYvjgo8s44G+44GT44GoDQor44GV44KB44GX44G+LOOBvuOBleOBsuOCjQ0KK+OBu+OBneOBmOOBvizjgYvjgZrjgbLjgZMNCivjgo/jgZ/jgarjgbks44Go44G/44GKDQor44GL44KP44Gq44G/LOOBvuOBleOBguOBjQ0KK+OBj+OBleOBrizjgZHjgYTjgZXjgY8NCivjgaTjgaHjgZ8s44Go44KC44GC44GNDQor44GK44GK44Gv44GXLOOBk+OBhuOBmA0KK+OBruOBoCzjgb/jgY3jgYoNCivjgo/jgZ/jgarjgbks44Gy44GV44GKDQor44KI44GX44Gf44GRLOOChOOBmeOBsuOCjQ0KK+OBteOBj+OBl+OBvizjgYLjgY3jgokNCivjgYTjgo/jgoQs44Gf44GL44GKDQor44GV44GL44KC44GoLOOCguOBqOOBr+OCiw0KK+OBj+OBvOOBnyzjgZfjgofjgYbjgZgNCivjgYTjgZ3jgoTjgb4s44GT44GG44GE44GhDQor44GK44GK44GuLOOBv+OBpOOBguOBjQ0KK+OBguOBuSzjgZ/jgaTjgYoNCivjgYrjgaDjgo/jgoks44G/44Gh44GKDQor44GN44GG44GhLOOBkeOCk+OBmA0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgbXjgb8NCivjgojjgZfjgaAs44Gf44Gk44GKDQor44Gh44KD44Gw44Gf44GRLOOBvuOBleOBteOBvw0KK+OBleOBi+OBhCzjgojjgZfjgYoNCivjgYrjgYrjgZ8s44KI44GG44GYDQor44Gq44GL44GuLOOBvuOBleOBvw0KK+OBr+OBoCzjgZ/jgYvjgZcNCivjgarjgYvjgoTjgb4s44GY44KF44KT44GYDQor44GV44GL44GQ44GhLOOBkeOCk+OBmA0KK+OBquOBjOOBl+OBvizjgoTjgZnjgYoNCivjgZXjgYzjgoks44Go44GX44Gy44KNDQor44GL44KP44GuLOOBn+OBoOOCiOOBlw0KK+OBi+OBreOBkyzjgYTjgZXjgYoNCivjgarjgYvjgaAs44G/44Gk44KLDQor44GC44G+44GuLOOBn+OBi+OBlw0KK+OChOOBluOBjSzjgZfjgoXjgYbjgZgNCivjgbLjgonjgY7jga4s44GL44Ga44GKDQor44Gf44Gw44GfLOOBhOOBoeOBig0KK+OBj+OBq+OChuOBjSzjgoTjgZnjgbLjgo0NCivjgYrjgY/jgYbjgaEs44Gy44KN44Gu44KKDQor44GZ44GO44KC44GoLOOBsuOBp+OBmA0KK+OBquOBi+OCgOOCiSzjgorjgofjgYbjgZgNCivjgZnjgY7jgZXjgY0s44KP44Gf44KLDQor44KE44G+44GX44GfLOOBn+OBi+OBpuOCiw0KK+OBruOCgOOCiSzjgYvjgZrjgb8NCivjgZfjgb7jgaAs44G/44Gk44KLDQor44G144GP44GgLOOBi+OBmuOBruOCig0KK+OBleOBqOOBhizjgbLjgafjgYoNCivjgYrjgY/jgbzjgoos44Gy44KN44GXDQor44KI44GT44GL44KPLOOBvuOBleOBvw0KK+OBp+OCk+OBoCzjgY3jgojjgZcNCivjgbXjgY/jgarjgYws44GZ44GZ44KADQor44Gf44GL44GX44G+LOOBv+OBpOOBjg0KK+OBi+OBqOOBhizjgabjgaTjgYoNCivjgYTjgZfjgZDjgo0s44GC44GN44Gu44KKDQor44GE44GR44G5LOOBj+OBq+OChuOBjQ0KK+OBiuOBiuOBpOOBiyzjgZnjgZnjgoANCivjgZfjgb/jgZos44KI44GX44Gu44KKDQor44GZ44Ga44GNLOOBn+OBi+OBig0KK+OBpOOChCzjgb7jgZPjgagNCivjgYbjgaHjgaAs44G+44GV44Gf44GLDQor44GK44GhLOOBkeOCk+OBhOOBoQ0KK+OBguOCiuOBjCzjgZ/jgZHjgZcNCivjgarjgYvjgZfjgb4s44GL44Gk44GYDQor44G+44GV44GNLOOBvuOBpOOBvw0KK+OBquOBi+OBl+OBvizjgb7jgZXjgYoNCivjgYLjgZXjga/jgoks44G+44GV44KI44GXDQor44GU44Go44GGLOOBsuOBleOBig0KK+OBhuOBiOOBvuOBpCzjgbLjgo3jgZcNCivjgZXjgY3jgoLjgoos44KI44GX44GC44GNDQor44KI44GX44GgLOOBpOOBqOOCgA0KK+OBteOBmOOBnyzjgoTjgZnjgojjgZcNCivjgoTjgY7jgZfjgZ8s44Go44GX44GKDQor44KA44KN44G144GXLOOBvuOBleOBsuOCjQ0KK+OBi+OCgeOBoCzjgYjjgYTjgYTjgaENCivjgYTjgYvjgo8s44Gy44KN44Gf44GgDQor44KE44G+44GW44GNLOOBsuOCjeOBlw0KK+OBpOOCi+OBr+OBlyzjgb7jgZPjgagNCivjgb/jga7jgZfjgb4s44Gu44KK44GKDQor44GN44GX44KC44GoLOOBvuOBk+OBqA0KK+OBn+OBkeOBl+OBnyzjgb7jgZXjgZcNCivjgarjgYvjgZ8s44GX44KT44GE44GhDQor44GI44KT44GpLOOBjeOCiOOBlw0KK+OCguOCiuOChCzjgZHjgYTjgoHjgYQNCivjgY/jgbzjgZ8s44GZ44G/44GKDQor44Gq44GK44Gv44KJLOOBsuOCjeOBlw0KK+OBj+OBkizjgZHjgpPjgZgNCivjgYvjgZXjga4s44G+44GV44Gv44KLDQor44GE44GE44KA44KJLOOBn+OBi+OBlw0KK+OBiuOBiuOBnyzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgZMs44Gy44KN44G144G/DQor44KA44KJ44GT44GXLOOBqOOBl+OBig0KK+OCiOOBl+OBoCzjgZHjgpPjgZgNCivjgYLjgZXjga4s44KI44GX44GC44GNDQor44KI44GX44GgLOOBvuOBleOBqOOBlw0KK+OBr+OChOOBlyzjgabjgaTjgo3jgYYNCivjgZnjgZrjgY0s44Gf44Gk44KEDQor44GK44GgLOOCiuOCh+OBhuOBhOOBoQ0KK+OChOOBvuOBhuOBoSzjgY3jgojjgZcNCivjgYvjgo/jgYvjgb8s44Gk44Gt44GKDQor44GG44GZ44GgLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgZfjgpPjgYTjgaENCivjgY/jgonjgZfjgb4s44GX44KT44GYDQor44G+44GbLOOBruOBvOOCiw0KK+OBk+OCk+OBrizjgbLjgo3jgZcNCivjgb7jgaTjgZbjgo8s44GC44GN44KJDQor44GX44G+44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgojjgZfjga7jgooNCivjgYrjgYrjgY/jgbws44GR44KT44GYDQor44GK44GQ44KJLOOBi+OBmuOBruOCig0KK+OBleOBj+OBvizjgYjjgYTjgZgNCivjga7jgZDjgaEs44Gy44KN44Gu44KKDQor44Gy44Gq44GfLOOBk+OBhuOBhOOBoQ0KK+OBteOBmOOBhCzjgZfjgoXjgpPjgYTjgaENCivjgZnjgY7jgoLjgags44G+44GV44GXDQor44Gk44GL44Gv44KJLOOBlOOCjeOBhg0KK+OBv+OBpOOBquOBjCzjgb7jgZXjgYLjgY0NCivjgarjgYvjgoDjgoks44G+44GV44KI44GXDQor44KE44GY44G+LOOBn+OBkeOBlw0KK+OBi+OBv+OBnyzjgZnjgZnjgoANCivjgbLjgYws44GY44KF44KT44GNDQor44G/44Gq44GM44KPLOOCiOOBl+OBpuOCiw0KK+OBqOOBvyzjgZ/jgYvjgYoNCivjgZXjgYvjgY3jgbDjgoks44Gy44KN44GXDQor44GL44GP44GfLOOBguOBjeOBsuOCjQ0KK+OBpOOBoeOChCzjgbLjgafjgobjgY0NCivjgoDjgonjgZ8s44GR44KTDQor44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OBl+OCguOBoCzjgojjgZfjga7jgooNCivjgaTjgYvjgoLjgags44GP44KJ44GYDQor44Gv44Gq44Gv44GfLOOBsuOBp+OBig0KK+OBi+OCk+OBoCzjgZfjgpPjgZgNCivjgYvjgo/jgaAs44KG44GN44GKDQor44KI44GX44GELOOBpOOBreOBig0KK+OBj+OCieOChCzjgY3jgbjjgYQNCivjgabjgonjgZfjgb4s44Gy44Gn44KG44GNDQor44GN44Gf44GM44KPLOOCiOOBl+OBig0KK+OBhOOBpyzjgajjgZfjgbLjgo0NCivjgaTjgoss44Gy44GV44GKDQor44GG44Gk44Gu44G/44KELOOBqOOBl+OBi+OBmg0KK+OBquOBi+OBluOCjyzjgb7jgZXjgbLjgagNCivjgbLjgaAs44KI44GX44Gu44G2DQor44G744Gd44GL44KPLOOBsuOBp+OBmA0KK+OBoeOBkOOBlSzjgZvjgYTjgZgNCivjgZ3jgYbjgoQs44Gy44KN44G/DQor44KE44G+44GQ44GhLOOBk+OBhuOBuOOBhA0KK+OBleOBi+OBpizjgbXjgb/jgYoNCivjgYLjgo/jgZ8s44GX44GS44KLDQor44KP44GL44Gw44KE44GXLOOBi+OBmuOBsuOBkw0KK+OBiOOCk+OBmOOCheOBhuOBmCzjgb7jgZPjgagNCivjga7jgZDjgaEs44GT44GG44GE44GhDQor44GL44KP44KA44KJLOOBvuOBleOBig0KK+OCguOCiuOCguOBqCzjgb/jgY3jgYoNCivjgojjga3jga/jgaos44Gf44Gg44Gy44KNDQor44GY44GgLOOBguOBjeOBig0KK+OBhuOBiOOBoCzjgZHjgpPjgZgNCivjgZfjga7jga/jgoks44GE44GV44KADQor44Gf44GL44KE44G+LOOBvuOBleOBi+OBmg0KK+OChOOBvuOCgOOCjSzjgb7jgZXjga7jgbYNCivjgo/jgY0s44GY44KF44KT44GTDQor44GC44G+44GuLOOBvuOBpOOBig0KK+OBu+OBneOBi+OCjyzjgajjgZfjgYoNCivjgajjgYbjgZTjgYYs44Gy44KN44Gy44GVDQor44Gq44GLLOOBqOOBv+OBig0KK+OBruOBoCzjgZ/jgYvjga7jgooNCivjgoTjgb7jgZfjgZ8s44Gh44GI44GTDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OBquOBjOOBiuOBiyzjgZPjgYbjgZgNCivjgZfjgbbjgoQs44KI44GX44GL44GaDQor44Gb44KK44GW44KPLOOBk+OBhuOBnuOBhg0KK+OBteOBmOOCguOCiizjgZvjgYTjgZgNCivjgbXjgY/jgaAs44Gf44Gk44Gy44KNDQor44G144GY44GfLOOBn+OBi+OBsuOBlQ0KK+OChOOBvuOBmCzjgbLjgafjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GE44Ga44G/DQor44GT44Gw44KE44GXLOOBjeOCiOOBlw0KK+OBl+OBl+OBj+OCiSzjgojjgZfjgYLjgY0NCivjgZPjgZDjgows44G+44GV44Gv44KLDQor44KC44KKLOOCiOOBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjga7jgorjgZ/jgYsNCivjgYTjgYTjgZjjgb4s44Gu44KK44KG44GNDQor44GN44Gf44GM44KPLOOCiOOBl+OBpuOCiw0KK+OBn+OCgOOCiSzjgZ/jgaDjgojjgZcNCivjgarjgYzjgZfjgb4s44KE44GZ44GIDQor44GI44Gu44GNLOOBhOOBmuOBvw0KK+OBleOBqOOBhizjgojjgZfjga7jgbYNCivjgb7jgaTjgoLjgags44KI44GX44GKDQor44GG44GI44GgLOOBsuOCjeOBig0KK+OBv+OBmuOBn+OBqyzjgYLjgY3jgokNCivjgYLjgYvjgZcs44Gf44Gk44GKDQor44Gq44GL44KC44GoLOOBiuOBleOCgA0KK+OBquOBi+OChOOBvizjgbLjgo3jga7jgbYNCivjgbXjgZjjgYQs44KE44GZ44Gy44KNDQor44Gq44GL44KE44G+LOOBl+OCh+OBhuOBhOOBoQ0KK+OCiOOBreOBv+OBpCzjgabjgaTjgYoNCivjgZ/jgYvjgZss44Go44GX44GKDQor44KP44Gf44Gq44G5LOOBsuOBqOOBlw0KK+OBteOBi+OBluOCjyzjgajjgZfjga7jgbYNCivjgYvjgZLjgYbjgoks44G+44GV44G/DQor44GX44KT44Gp44GGLOOBi+OBpOOBmA0KK+OBl+OBv+OBmizjgZ/jgaTjgb8NCivjgZXjgYvjgZfjgZ8s44KI44GX44GuDQor44G/44KE44KA44KJLOOBqOOBiuOCiw0KK+OBn+OBquOBiyzjgb7jgZXjgajjgZcNCivjgZ/jgYvjgYTjgZcs44GZ44GZ44KADQor44GE44GX44GM44GNLOOBkeOCk+OBmA0KK+OBn+OBi+OBoCzjgojjgZfjgYvjgZoNCivjgZ/jgabjgYTjgZcs44GL44Ga44Gq44GLDQor44GV44GL44GfLOOBsuOBp+OBig0KK+OCiOOBk+OBr+OBnyzjgajjgZfjgbLjgZMNCivjgY/jgoQs44Gf44KC44GkDQor44KI44GX44GgLOOBvuOBleOBsuOBpw0KK+OBjeOBn+OBoCzjga/jgovjgYoNCivjgojjgZfjgaAs44GX44KT44GY44KN44GGDQor44GT44Gw44KE44GXLOOBi+OBmuOBvw0KK+OBquOCiuOBnyzjgb/jgaTjgojjgZcNCivjgYTjgazjgYQs44G+44GV44KI44GXDQor44KE44GZ44GL44KPLOOBteOBv+OBig0KK+OBruOBkOOBoSzjgZnjgarjgYoNCivjgZfjgofjgYbjgaAs44GE44Gh44Ge44GGDQor44KE44G+44GgLOOBpuOCi+OBsuOBlQ0KK+OCj+OBj+OBoCzjgaTjgajjgoANCivjgYLjgbks44GV44Gg44Gy44KNDQor44Gf44GR44GL44KPLOOBn+OBi+OBig0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjga/jgarjgYrjgYss44KI44GX44GKDQor44GK44GK44GuLOOBsuOBp+OBig0KK+OBn+OBquOBiyzjgZHjgpPjgZ7jgYYNCivjgaTjga7jgaAs44GC44GN44GKDQor44Gq44G+44GILOOBkeOCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaDjgbLjgZUNCivjgarjgYvjgZjjgb4s44GX44GS44KLDQor44Gq44GL44KA44KJLOOBjeOBv+OBkw0KK+OBhuOCiuOBhizjga/jgovjgZ/jgZENCivjgbXjgZjjgYTjgo8s44G144G/44Gy44GTDQor44GV44GV44GNLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgobjgZ/jgYsNCivjgZ/jgYvjgY4s44GX44KF44GG44GE44GhDQor44GL44Gf44KE44G+LOOBsuOCjeOBqA0KK+OBhOOBkOOBoSzjgYrjgZXjgoANCivjgYLjgbks44Gm44KL44GKDQor44GZ44Ga44GNLOOBn+OBi+OBsuOCjQ0KK+OBsuOCiSzjgYvjgZrjgbLjgo0NCivjgarjgZTjgZcs44Gy44Gn44GC44GNDQor44GC44Gg44GhLOOBkeOCk+OBmA0KK+OCgOOCieOChOOBvizjgb7jgoLjgosNCivjgY/jgavjgYvjgZ8s44GZ44GZ44KADQor44G+44Gk44GELOOBvuOBk+OBqA0KK+OBk+OBhOOBpyzjgb/jgaTjgYoNCivjgbLjgo3jgZ8s44Gy44KN44KE44GZDQor44Go44G/44Gq44GLLOOCiOOBl+OBig0KK+OCj+OBjeOBnyzjgbXjgZjjgYoNCivjgYbjgoHjgoDjgoks44GX44KH44GG44GYDQor44G144GRLOOCiOOBhuOBhOOBoQ0KK+OBhuOBiOOBvuOBpCzjgYvjgaTjgb8NCivjgb7jgaTjgZbjgY0s44KE44GZ44Gy44KNDQor44Gq44GL44GuLOOBpOOCguOCiw0KK+OBk+OBoOOBiyzjgZ/jgZHjgYoNCivjgbLjgo3jgZ/jgass44GR44KT44GYDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBleOBrizjgZjjgoXjgpPjgYTjgaHjgo0NCivjgZfjgb/jgZos44KI44GX44GL44GaDQor44GL44KT44GW44GNLOOBpuOCi+OCiOOBlw0KK+OBiuOBiuOBleOBjyzjgYvjgZrjgYoNCivjgo/jgZfjgaAs44G+44GV44Gy44GnDQor44GP44Gr44KC44GoLOOChOOBmeOBvuOBlQ0KK+OBl+OCjeOBi+OCjyzjgb7jgZPjgagNCivjgYvjgo/jga/jgoks44GR44KT44GE44GhDQor44GK44GLLOOBpOOBreOBi+OBmg0KK+OBk+OCguOCiizjgojjgZfjgYLjgY0NCivjga/jgoTjgZcs44GX44GS44GC44GNDQor44GL44Gt44GTLOOBhOOBj+OBig0KK+OBi+OBqeOBhOOBkSzjgarjgYrjgb/jgaENCivjgYrjgYvjgoDjgoks44GY44KF44KT44GE44GhDQor44GK44GL44KA44KNLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBn+OBtuOBoSzjgarjgYrjgZMNCivjgoTjgb7jgoLjgags44GC44GN44Gu44KKDQor44GK44GK44GVLOOBn+OBi+OBlw0KK+OBhOOCiuOBiCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga8s44GL44Ga44Gy44GTDQor44Gf44GE44KJLOOBr+OCi+OBig0KK+OBv+OBquOBvyzjgoTjgZnjgb7jgZUNCivjgYTjgZHjgaAs44GX44GS44KLDQor44GC44GK44GNLOOBteOBv+OBig0KK+OChOOBvuOBhuOBoSzjgZgNCivjgojjgZfjga/jgoks44G+44GV44G144G/DQor44GV44GV44GNLOOBguOBjeOBsuOBqA0KK+OBv+OBmuOBn+OBqyzjgajjgZfjgYTjgaENCivjgbLjgonjga4s44GL44Gk44KG44GNDQor44Gq44GM44GfLOOBguOBjeOCiQ0KK+OBi+OBn+OChOOBvizjgZHjgYQNCivjgYrjgaAs44KK44KH44GG44GYDQor44GI44Gu44KC44GoLOOChuOBhuOBjQ0KK+OBn+OBkeOBquOBiyzjgZXjgYvjgYgNCivjgb7jgaTjgZbjgY0s44Gy44KN44GXDQor44G+44Gk44Gw44KJLOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjgZvjgaTjgZMNCivjgoHjgZDjgo0s44Gy44KN44KI44GXDQor44GK44GW44GNLOOBsuOBp+OChuOBjQ0KK+OBiuOBiuOBjOOBvyzjgZPjgYbjgYTjgaENCivjgYrjgb7jgYgs44GX44KT44GE44GhDQor44GN44GgLOOBi+OCk+OBmA0KK+OBhuOBiOOBrizjgYrjgZXjgoANCivjgYrjgYvjgaAs44GL44Gk44KG44GNDQor44GL44Gq44GV44GNLOOBqOOBv+OBig0KK+OChOOBi+OBuSzjgbLjgo3jgobjgY0NCivjgarjgoDjgoks44KG44G/44GTDQor44GE44GE44GY44G+LOOCguOBqOOBguOBjQ0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgoLjgaHjgZrjgY0s44KI44GX44Gu44G2DQor44G244KT44KELOOBqOOBl+OBig0KK+OBiuOBi+OBrizjgoTjgZnjgYoNCivjgZ/jgZHjgYbjgaEs44GV44Go44GXDQor44GG44GI44GuLOOBqOOBiuOCiw0KK+OBteOBmOOCguOBqCzjgbLjgafjgagNCivjgYvjgo/jgZDjgaEs44G/44Gk44Gv44KLDQor44Gf44GN44KC44GoLOOBvuOBleOBruOCig0KK+OBi+OBn+OBiuOBiyzjgZfjgZLjgosNCivjgY/jgZXjgYvjgo8s44Gq44GK44GNDQor44GC44GV44GELOOBsuOBqOOBlw0KK+OCguOCiizjgYjjgYTjgYTjgaENCivjgY/jgbws44KI44GX44GP44GrDQor44GC44KT44Gp44GGLOOBhOOBoeOCjeOBhg0KK+OBhuOCieOChOOBvizjgYrjgZXjgoANCivjgY/jgorjgZ8s44KI44GX44GKDQor44GE44Gu44GG44GILOOBn+OBkeOBlw0KK+OBi+OBreOBi+OCjyzjgbLjgafjgYoNCivjgYbjgYjjgoLjgags44KK44KH44GG44Ge44GGDQor44Gq44GL44GKLOOBkeOCk+OBhOOBoQ0KK+OBiuOBi+OCguOBqCzjga/jgovjgYoNCivjgavjgZfjgoDjgoks44GN44KI44GXDQor44KE44GgLOOBi+OBmuOBiuOBvw0KK+OBjeOBqSzjgYrjgZXjgoANCivjgYrjgYvjgbDjgoTjgZcs44G/44Gk44Gy44KNDQor44GL44KP44GX44G+LOOBmOOCheOCk+OBnuOBhg0KK+OBr+OBl+OBjSzjgZ/jgYvjgb/jgaENCivjgb/jgoTjgoLjgags44GE44Gh44KN44GGDQor44Gq44GL44GKLOOBn+OBi+OBsuOBkw0KK+OBvuOBpOOBiuOBiyzjgobjgY3jgYoNCivjgbLjgbPjga4s44Gy44KN44G/DQor44Gr44GX44GL44KPLOOBi+OBiuOCiw0KK+OBi+OBtuOBnyzjgZHjgpPjgZgNCivjgo/jgZ/jgarjgbks44GN44KI44GXDQor44KE44G+44GuLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgZfjgZLjgb/jgaQNCivjgZnjgZrjgY0s44KG44GG44GYDQor44GP44KP44Gv44KJLOOBleOBqOOBlw0KK+OCguOCiuOBnyzjgajjgZfjgbLjgo0NCivjgbXjgZjjgYQs44GZ44G/44KI44GXDQor44Gq44GM44GX44G+LOOBpOOBreOChuOBjQ0KK+OBhOOBquOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYrjgZbjgo8s44Gy44Go44GXDQor44Gf44GN44KC44GoLOOBj+OBq+OBig0KK+OBv+OChOOBl+OBnyzjgbLjgZXjgZcNCivjgoLjgYbjgoos44G+44GV44KG44GNDQor44GE44Gu44GG44GILOOBv+OBpOOBig0KK+OBquOBjOOBrizjgoLjgajjgYLjgY0NCivjga/jgonjgags44KI44GX44GKDQor44G+44G/44KELOOBqOOBl+OBi+OBmg0KK+OBsuOBjOOBl+OBsOOBnyzjgbLjgafjgYoNCivjgavjgZfjgZ/jgass44GV44Go44GXDQor44Gf44GL44GPLOOBruOBtuOChuOBjQ0KK+OBr+OBquOBoCzjgb/jga7jgosNCivjgYLjgZXjga4s44G/44Gh44GKDQor44Gw44GwLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgZfjgpPjgY3jgaENCivjgYTjgYTjgaAs44GR44KT44GXDQor44GT44Gv44KE44GL44KPLOOBn+OBkeOBsuOBkw0KK+OBteOBmOOCj+OCiSzjgYvjgaTjgb8NCivjgZfjgoXjgY/jgoos44KE44GZ44Gy44GTDQor44KG44Gf44GrLOOBkeOCkw0KK+OCgOOBreOBi+OCjyzjgYTjgY/jgZMNCivjgYvjgpPjga4s44G+44GV44Gy44KNDQor44Gr44GoLOOBi+OBpOOBvw0KK+OBn+OCgOOCiSzjgojjgZfjgYLjgY0NCivjgarjgYvjgZfjgb4s44GV44Go44GXDQor44GK44GK44GfLOOBoeOBi+OBkw0KK+OBhOOBruOBhuOBiCzjgojjgZfjgZMNCivjgY/jgb7jgb7jgoss44GR44KT44GYDQor44Gf44Gq44GLLOOBl+OBkuOCiw0KK+OBvuOBiOOBoCzjgb7jgZXjgYLjgY0NCivjgYLjgb8s44Gu44G244GKDQor44G/44Gq44GoLOOBguOBjeOCiQ0KK+OBq+OBl+OBoCzjgYvjgZrjgYoNCivjgYTjgZfjga/jgoks44GV44G244KN44GGDQor44Gq44GL44GX44G+LOOBqOOBl+OBig0KK+OBhOOBj+OBnyzjgoTjgZnjgbLjgZUNCivjgYrjgY0s44Gf44Gg44GKDQor44GL44GM44KPLOOBl+OCheOBhuOBhOOBoeOCjeOBhg0KK+OBsuOCieOBi+OCjyzjgajjgZfjgYoNCivjgoTjgb7jgZbjgY0s44Go44GX44Gu44KKDQor44GP44G+44GM44GELOOBk+OBhuOBmOOCjeOBhg0KK+OBn+OBl+OCjSzjgb/jgaTjgZfjgZINCivjgZXjga4s44Gy44Gn44G+44GVDQor44G/44Gp44KK44GL44KPLOOBteOBv+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgojjgZfjgb8s44Gy44KN44GTDQor44GE44Gq44G/LOOBsuOBp+OBqA0KK+OCj+OBn+OBquOBuSzjgY3jgojjgZcNCivjgZPjgYws44Go44KC44Gy44GnDQor44GZ44GM44KP44KJLOOChOOBmeOBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgojjgYbjgYTjgaENCivjgYjjgaAs44KI44GX44KN44GGDQor44GC44KT44Gp44GGLOOBsuOCjeOBig0KK+OBn+OCi+OBhCzjgobjgZ/jgYsNCivjgZTjgajjgYYs44Gy44KN44GXDQor44GX44KC44GM44GNLOOBl+OBkuOCiw0KK+OBquOBjOOBnyzjgobjgY3jgYoNCivjgbvjgZfjgYvjgo8s44GY44KF44KT44GE44GhDQor44GT44G/44Gq44G/LOOBvuOBleOBig0KK+OBi+OBjCzjgojjgYYNCivjga/jgZzjgYvjgo8s44Gu44G244GKDQor44Gh44GwLOOBl+OBmuOBiw0KK+OBhuOCieOBrizjgZXjgajjgZcNCivjgZPjgpPjga4s44Go44GX44GNDQor44GT44Gw44KE44GXLOOBi+OBmuOCiOOBlw0KK+OCguOCguOBmyzjgobjgYbjgZMNCivjgaTjgZIs44GY44KF44KT44GYDQor44KE44GZ44GT44GhLOOChOOBmeOBn+OBiw0KK+OBu+OBneOBluOCjyzjgZfjgofjgYbjgYTjgaENCivjgZnjgY7jgoTjgb4s44GL44Gk44KG44GNDQor44GC44G5LOOBn+OBkeOChuOBjQ0KK+OBn+OBquOBiyzjga7jgbbjgobjgY0NCivjgZvjgYTjgZEs44KE44GZ44Gy44KNDQor44Gk44GSLOOBvuOBleOBruOBtg0KK+OCj+OBi+OBsOOChOOBlyzjgYLjgY3jgYoNCivjgYrjgYrjgY/jgbws44Gf44GL44GKDQor44GK44GL44G5LOOBteOBv+OBig0KK+OBhOOCj+OBhCzjgbLjgZXjgYoNCivjgZ/jgarjgYss44Gm44KL44KG44GNDQor44KE44G+44KC44GoLOOBv+OBpOOBig0KK+OBn+OBi+OChOOBvizjgarjgYrjgY0NCivjgZ/jgZjjgb4s44Gy44Gn44Gu44KKDQor44GL44Ga44GX44KNLOOBvuOBleOBr+OCiw0KK+OBk+OBhOOBpyzjgZ/jgYvjgZcNCivjgYvjgoIs44Gf44Gk44Gu44KKDQor44GN44Gf44GY44G+LOOCiOOBl+OChuOBjQ0KK+OBr+OBvuOBrizjgZfjgZLjgosNCivjgYTjgYTjgoTjgb4s44Go44GX44KG44GNDQor44KE44G+44GX44GfLOOBl+OCh+OBhuOBhOOBoQ0KK+OBjeOBnyzjgZfjgZLjgobjgY0NCivjgYTjgZfjgZ/jgass44GV44Go44GXDQor44GP44GY44KBLOOBleOBoOOBig0KK+OBjeOBl+OBi+OCjyzjgYvjgZrjgYoNCivjgarjgYzjga4s44G+44GV44Gy44KNDQor44KI44KA44KJLOOBn+OBoOOBruOCig0KK+OBquOBi+OBl+OBvizjgajjgZfjgobjgY0NCivjgoLjgoos44GI44GE44GYDQor44KE44G+44GYLOOCiOOBl+OBi+OBmg0KK+OBiuOBnOOBjSzjgb7jgZXjgZ/jgYsNCivjgYTjgarjgaAs44KE44GZ44GXDQor44Gv44KE44GbLOOBn+OBi+OBlw0KK+OBu+OCk+OBvSzjgZnjgZnjgoANCivjgYrjgYrjgoQs44GL44KT44GYDQor44GN44Gf44KA44KJLOOBn+OBi+OBlw0KK+OBqOOBl+OCkyzjgZXjgajjgosNCivjgZ/jgZHjgYQs44KE44GZ44G144G/DQor44GK44GL44KE44G+LOOBruOBtuOBig0KK+OBhOOBl+OBmuOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgZ8s44Go44GX44GC44GNDQor44GZ44GM44Gv44KJLOOChuOBhuOBmA0KK+OBhOOCj+OBvyzjgoTjgZnjgYoNCivjgobjgoLjgags44Gy44Gn44GKDQor44GN44Gf44GM44KPLOOChuOBn+OBiw0KK+OBhOOBr+OCiSzjgobjgYbjgZ7jgYYNCivjga7jgoDjgoks44GE44Gh44KN44GGDQor44G/44KE44GV44GLLOOBkeOCk+OBmA0KK+OCiOOBl+OBoCzjgajjgoLjgojjgZcNCivjgbXjgYvjgaAs44Gf44GL44GXDQor44G144GY44KP44KJLOOBi+OBmuOBv+OBpA0KK+OBjeOBqCzjgajjgZfjgYLjgY0NCivjgYbjgYjjgoLjgoos44GE44GV44GKDQor44KE44G+44GL44KPLOOBvuOBleOBvw0KK+OBj+OCjeOBoCzjgb/jgaHjgo0NCivjgYrjgYrjgaTjgYss44Gy44KN44GXDQor44GG44GI44GgLOOChuOBhuOBmA0KK+OBneOBrizjgb/jgY3jgYoNCivjgaDjgYQs44Go44KC44G/44GhDQor44GX44KT44Ge44GGLOOBsuOCjeOBi+OBmg0KK+OBhuOBiOOBoCzjgobjgZ/jgYsNCivjgo/jgYvjgb/jgoQs44GL44Ga44G/DQor44GL44KA44KJLOOBteOBv+OBpOOBkA0KK+OBteOCi+OBn+OBqyzjgZ/jgYvjgb7jgZUNCivjgYvjgaTjgYbjgoks44GL44Gk44G/DQor44GP44G+44GELOOBm+OBhOOBmA0KK+OBsOOBsCzjga/jgovjgaTjgZANCivjgYvjga3jgajjgoIs44Gf44Gk44G/DQor44KA44KJ44Gv44GXLOOBqOOBiuOCiw0KK+OBqeOBhCzjgZ/jgYvjgZcNCivjgarjgb/jgYvjgo8s44GX44GS44Gv44KLDQor44Gf44GL44GK44GLLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgorjgoXjgYbjgYTjgaHjgo3jgYYNCivjgo/jgZ/jgarjgbks44KI44GeDQor44Gf44GgLOOBvuOBleOBsuOCjQ0KK+OBguOCiuOBvizjgojjgZfjgabjgosNCivjgarjgYzjga4s44Go44GX44Gu44KKDQor44KE44GuLOOBpuOCi+OChuOBjQ0KK+OBhOOBleOBiyzjgobjgY3jgbLjgo0NCivjgYTjgajjgYYs44Go44GP44GE44GhDQor44KE44G+44GW44GNLOOBmeOBv+OBig0KK+OBj+OBrizjgYvjgZrjgYoNCivjgZfjgbAs44GR44KT44GYDQor44GN44KA44KJLOOBguOBjeOCiQ0KK+OBmeOBv+OBoCzjgYvjgZrjgYoNCivjgoLjgajjgYzjgYTjgags44Gy44KN44GL44GaDQor44Gr44KPLOOBl+OBkuOBkw0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgZgNCivjgZ/jgoDjgoks44GL44Ga44KI44GXDQor44G844GG44GfLOOBkeOBhOOBmeOBkQ0KK+OBi+OBqeOChCzjgobjgYbjgZQNCivjga/jgonjgaAs44KI44GX44Gu44G2DQor44G/44Gk44GE44GXLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgZHjgYTjgZnjgZENCivjgoDjgonjga/jgZcs44G+44GT44GoDQor44Gr44GX44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBvuOBmeOBoCzjgZPjgYbjgZgNCivjgYrjgYrjgZ8s44GP44Gr44GKDQor44G144GP44GELOOBvuOBleOBig0KK+OBi+OBkuOChOOBvizjgZHjgpPjgZgNCivjgarjgYzjgaTjgYss44Gf44Gg44KG44GNDQor44GP44GV44GuLOOBl+OBkuOBig0KK+OBk+OBmOOBvizjgbLjgo3jgobjgY0NCivjgY/jgonjgZ8s44Gf44Gg44GXDQor44Gf44GR44GG44GhLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBkeOBoCzjgYLjgaTjgYoNCivjgZ/jgYvjga4s44KG44Gf44GLDQor44GP44KJ44KELOOBl+OCk+OBhOOBoQ0KK+OBiuOBrizjgaTjgajjgoANCivjgarjgYvjgaAs44GY44KF44KT44Ge44GGDQor44Go44GP44KC44GoLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOBr+OBlyzjgajjgZfjgbXjgb8NCivjgoTjgb7jgaAs44GC44GN44KJDQor44Gv44KT44GgLOOBpuOBpOOBig0KK+OBhOOBl+OBr+OCiSzjgZvjgYTjgZgNCivjgojjgZfjga/jgoks44GV44Go44GXDQor44Gf44Gm44GE44GXLOOBqOOBl+OBsuOBkw0KK+OBhOOBqOOBhizjgZfjgbXjgb8NCivjgZXjgajjgYYs44Gf44GL44GKDQor44GK44GK44GP44KJLOOBl+OCh+OBhuOBmOOCjeOBhg0KK+OBquOBi+OBmeOBmCzjgojjgYbjgYTjgaENCivjgZ/jgYTjgoks44Gy44KN44GXDQor44GN44Gy44KJLOOBr+OCi+OBsuOBkw0KK+OBquOBi+OBmOOBvizjgbLjgafjgaTjga0NCivjgoTjgb7jgZbjgY0s44Go44GN44GKDQor44Go44Gz44GfLOOBguOBjeOCiQ0KK+OBquOBi+OBluOCjyzjga/jgovjgYoNCivjgavjgZfjga/jgoks44GL44Ga44GKDQor44KB44GQ44KNLOOBmOOCheOCk+OBmA0KK+OBvuOCi+OChOOBvizjgZPjgYbjgZ7jgYYNCivjgY3jgY/jgaEs44Gy44GV44Gu44KKDQor44GC44GK44GNLOOCiOOBl+OBvw0KK+OBjeOBo+OBn+OBiyzjgZ/jgb/jgYoNCivjgoTjgZnjgYQs44KG44GN44GTDQor44GE44Gh44G+44KLLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBluOBjSzjgajjgZfjgobjgY0NCivjgZnjgYzjga/jgoks44GY44KF44KT44GE44GhDQor44Go44G/44Gq44GMLOOCiOOBl+OBsuOBkw0KK+OBoeOBjuOCiizjgYjjgYTjgZjjgo3jgYYNCivjgYrjgYrjgbAs44KG44KK44GTDQor44G+44Gk44GELOOBteOBj+OBvw0KK+OBsuOCieOChOOBvizjgb7jgZXjgbLjgo0NCivjgoTjgb7jgoDjgoks44G/44Gk44Gu44G2DQor44GK44GK44GnLOOBvuOBleOBvw0KK+OCiOOBl+OBquOBjCzjgaHjgYvjgYgNCivjgZPjgZjjgb4s44Gf44GR44Gu44KKDQor44Go44G/44Gq44GMLOOBoeOBiOOBkw0KK+OBleOBjCzjgabjgaTjgoQNCivjga/jgoks44KG44GG44GY44KN44GGDQor44Go44G/44KI44GXLOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjgZ3jga7jgYgNCivjgbLjgonjgbDjgoTjgZcs44Gy44KN44GL44GaDQor44G+44Gk44GpLOOBsuOBp+OBig0KK+OBhOOBvuOBteOBjyzjgobjgYbjgZcNCivjgY3jgojjgZss44GX44KT44KEDQor44Gv44Gq44G244GVLOOBmeOBmeOCgA0KK+OBoeOBsCzjgajjgZfjga7jgooNCivjgoTjgb7jgZbjgY0s44KK44KF44GG44GYDQor44Gq44GL44Gv44KJLOOBkeOCk+OBmA0KK+OBiuOBrizjgZPjgYbjgbjjgYQNCivjgYbjgYjjgb7jgaQs44GL44KI44GTDQor44GC44GN44KE44G+LOOBvuOBleOBguOBjQ0KK+OBqOOBn+OBqyzjgojjgYbjgYTjgaENCivjgojjga3jgaAs44G+44GV44Gy44KNDQor44G144KL44GP44GVLOOBleOBi+OBiA0KK+OBsuOCjeOChCzjga7jgorjgbLjgo0NCivjgojjgZfjgaAs44GX44KT44GV44GPDQor44GL44Gt44GTLOOBl+OBkuOCiw0KK+OBquOBjOOBnyzjgb7jgZXjga/jgosNCivjgYTjgbks44GX44KT44GYDQor44Gb44GN44GtLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OBoCzjgb7jgZXjga/jgosNCivjgYvjgarjgYQs44GL44KT44Gb44GEDQor44GV44Go44GGLOOBsuOBqOOBlw0KK+OBleOBi+OBjeOBsOOCiSzjgojjgZfjgYoNCivjgYTjgb7jgYQs44G/44Gv44KLDQor44Gy44KB44GYLOOBl+OCk+OBnuOBhg0KK+OBiuOBjuOBr+OCiSzjgb7jgZXjgojjgZcNCivjgZ/jgZHjgoDjgoks44Gf44GL44Gu44KKDQor44Go44GK44KE44G+LOOBn+OBi+OBlw0KK+OBjeOBn+OBr+OCiSzjgZ/jgYvjgbLjgZUNCivjgYrjgYrjgZXjgYss44GL44Gk44Gy44GTDQor44GK44GK44GT44GG44GhLOOBi+OBmuOBvuOBlQ0KK+OBn+OBi+OBiizjga7jgorjgZMNCivjgYbjgaks44Go44GX44KN44GGDQor44GG44GuLOOBjeOCk+OBlA0KK+OBteOBmOOBjSzjgbLjgo3jgb8NCivjgZXjgajjgYYs44Go44GX44GKDQor44GE44Gd44GM44GELOOBvuOBleOBvw0KK+OBi+OCieOBleOBjSzjgojjgZfjgYoNCivjgoTjgb7jgaAs44Gf44KC44GkDQor44KP44GgLOOBiOOBpOOBig0KK+OBl+OBsOOBnyzjgajjgZfjgYoNCivjgZfjgYrjgZbjgY0s44Gf44Gk44GKDQor44GX44GMLOOBv+OBpOOBruOBtg0KK+OBj+OCiuOBnyzjgb/jgaHjgYoNCivjga/jgZfjgoLjgags44KI44GX44KN44GGDQor44KI44GX44KA44KJLOOBn+OBi+OBlw0KK+OBv+OChOOBluOBjSzjgbLjgo3jga7jgooNCivjgY3jgZ/jgYzjgo8s44GN44Gv44Gh44KN44GGDQor44GK44Gg44GRLOOBoeOBi+OCiQ0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgoTjgb7jgYTjgZcs44GN44KI44GC44GNDQor44GK44Gc44GNLOOBsuOCjeOBlw0KK+OBn+OBi+OBhCzjgZXjgajjgb8NCivjgYvjga3jgZMs44GR44KT44GYDQor44Gv44KJ44GgLOOBsuOBp+OChuOBjQ0KK+OBl+OBvuOBoCzjgZHjgpPjgZXjgY8NCivjgoTjgarjgY4s44Gf44GR44GKDQor44GZ44Ga44GNLOOBn+OBi+OBsuOBqA0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgYoNCivjgYrjgZDjgorjgoTjgb4s44Go44GK44KLDQor44KP44Gf44Gq44G5LOOBruOBtuOChuOBjQ0KK+OChOOBvuOCgOOCiSzjgZHjgpPjgZgNCivjgZ/jgYvjga/jgZcs44Gf44Gg44Gy44GnDQor44GX44GK44GY44G+LOOBi+OBiuOCiw0KK+OBpOOCi+OBiuOBiyzjgajjgYrjgosNCivjgYTjgajjgYYs44Go44GX44G/44GhDQor44G+44Gk44GG44KJLOOBm+OBhOOBjQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgYoNCivjgY/jgb7jgb8s44KG44GG44Ge44GGDQor44GR44KT44KI44GXLOOBn+OBi+OBlw0KK+OChOOBvuOBi+OBkizjgojjgZfjgYLjgY0NCivjgZTjgajjgYYs44Gy44KN44GKDQor44Gf44GR44GG44GhLOOBvuOBleOBqOOBlw0KK+OBr+OChOOBlyzjgYvjgZrjgobjgY0NCivjgYTjgZfjgbDjgZcs44Go44GX44KG44GNDQor44GE44GqLOOCiuOCh+OBhg0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgobjgY0NCivjgavjgZfjgYvjgo8s44Gy44Gn44GKDQor44Gv44KT44GgLOOBjeOCiOOBmA0KK+OBn+OBpuOBsOOChOOBlyzjgYvjgZrjgojjgZcNCivjgYrjgZfjgb4s44GP44Gr44Gy44GTDQor44GX44Gw44GfLOOBr+OCi+OBjQ0KK+OBv+OBhuOCiSzjgYLjgaTjgZcNCivjgZPjgYvjgZQs44GL44Ga44Gu44KKDQor44GE44GE44GgLOOChuOBn+OBiw0KK+OBn+OBkeOBmeOBiCzjgYvjgZrjgb8NCivjgYTjgYzjgonjgZcs44Gm44Gk44KEDQor44G+44GZ44KE44G+LOOCiOOBl+OBig0KK+OBleOBj+OChOOBvizjgYvjgZrjgYoNCivjgZXjgY/jgonjgYQs44GR44KTDQor44Gf44G+44KKLOOBvuOBleOBig0KK+OBhOOBvuOBq+OBlyzjgb/jga7jgosNCivjgYrjgYzjgo8s44G+44GV44Gy44GoDQor44Gv44GO44KP44KJLOOBjeOCiOOBlw0KK+OBiuOBiuOBj+OBqyzjgbLjgafjgbLjgZMNCivjgYTjgZHjgaAs44Gb44GE44GE44GhDQor44G+44GI44GY44G+LOOBguOBjeOCiQ0KK+OBhOOCj+OBhCzjgYvjgaTjgb8NCivjgoTjgb7jgaAs44G+44GV44GNDQor44GZ44GgLOOBvuOBleOBqA0KK+OBqOOBjeOCjyzjgYrjgZXjgoANCivjga/jgoTjgZcs44KG44GG44GE44GhDQor44Gf44GR44KC44GoLOOBi+OBmuOBig0KK+OBi+OCk+OBsOOChOOBlyzjgb7jgZXjgYoNCivjgajjgZbjgo8s44Gk44Go44KADQor44Gf44Gm44GuLOOBl+OCk+OBlA0KK+OBi+OCk+OBuSzjgZHjgYTjgZMNCivjgYrjgY/jgaAs44KI44GX44GoDQor44Gf44KC44GoLOOBqOOBv+OBig0KK+OBquOBjOOBhCzjga7jgbbjgZ/jgYsNCivjgYrjgZbjgo8s44GX44KT44GE44GhDQor44GV44Go44GGLOOChOOBmeOBquOCig0KK+OBk+OCk+OBqSzjgYLjgY3jgYoNCivjga3jgY7jgZcs44Gf44Gg44GXDQor44Gf44Gq44GLLOOBpuOBpOOBig0KK+OBk+OCgOOCjSzjgorjgofjgYbjgYTjgaENCivjgojjgZfjgaAs44Go44KI44G144G/DQor44GE44GE44GY44G+LOOBsuOCjeOBvw0KK+OBq+OBhOOBu+OCiizjgYvjgZrjgYoNCivjgZPjgoLjgorjgoQs44KI44GX44Gf44GLDQor44GX44KT44Gp44GGLOOBsuOBp+OBmuOBvw0KK+OChOOBrizjgojjgYbjgYTjgaENCivjgZ/jgarjgYss44G+44GV44Go44GXDQor44Gv44GO44Gf44GrLOOCjeOBj+OCjeOBhg0KK+OBk+OBmeOBjizjgaDjgYTjgY3jgaENCivjgYTjgbks44Gu44KK44GKDQor44GL44Gq44GW44KPLOOBsuOCjeOBlw0KK+OBn+OBoCzjgZ/jgaDjgbLjgZUNCivjgarjgYzjgZ8s44KK44KF44GG44GZ44GRDQor44GL44G+44GgLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYoNCivjgYrjgYTjgacs44G+44GT44GoDQor44Gf44GL44GP44KJLOOBsuOCjeOBlw0KK+OChOOBmeOBvuOBpCzjgZnjgZnjgoANCivjgb7jgoss44KI44GX44Gy44GVDQor44GP44G844GfLOOBruOBvOOCiw0KK+OBn+OBsOOBnyzjgZHjgYTjgYTjgaENCivjgoLjgorjgZ8s44Gu44KK44GKDQor44GP44Gr44Go44KCLOOBpOOBreOBmA0KK+OBguOBleOBrOOBvizjgbLjgo3jgYvjgZoNCivjgbvjgZfjgaos44KE44GZ44GKDQor44Gu44GW44KPLOOBr+OCi+OBsuOBlQ0KK+OBvuOBpOOCgOOCiSzjgZfjgpPjgYTjgaENCivjgbLjgonjgYvjgZ8s44GL44Ga44GKDQor44Gy44KJ44G+LOOBr+OCi+OBig0KK+OBl+OBv+OBmizjgZ/jgYvjgZcNCivjgojjgZPjgYvjgo8s44KP44Gf44KLDQor44GN44GP44GhLOOBguOBpOOBlw0KK+OBj+OCjeOBleOCjyzjgYTjgZXjgoANCivjgZ/jgZHjgYbjgaEs44Gm44Gk44GKDQor44Gy44KJ44GMLOOCiOOBhuOBmA0KK+OBleOBhOOBqOOBhizjga7jgorjgYoNCivjgYbjgaHjgbzjgoos44GT44GG44GE44GhDQor44GE44Gq44KA44KJLOOCiOOBl+OBr+OCiw0KK+OBiuOBleOBoCzjgZ/jgYvjgZcNCivjgZnjgY7jgoTjgb4s44Gf44GL44Go44GXDQor44GE44G+44GaLOOChOOBmeOBn+OBoA0KK+OBhuOCieOBrizjgb7jgZXjgojjgZcNCivjgoLjgaHjgZrjgY0s44GL44Ga44GKDQor44GZ44GM44KPLOOBl+OBkuOCiw0KK+OBhOOBkeOBoCzjgajjgZfjgYoNCivjgZ/jgarjgYss44Gv44KL44GKDQor44GV44GE44Go44GGLOOBn+OBpOOBmA0KK+OBteOBmOOBnyzjgajjgZfjgb/jgaENCivjgb/jgoTjga0s44Gk44Go44KADQor44GL44G+44GgLOOBv+OBruOCiw0KK+OBreOBjuOBlyzjgojjgZfjga7jgooNCivjgYrjgY/jgYzjgo8s44KG44GN44GKDQor44Gv44KE44GXLOOBsuOBleOBlw0KK+OBsOOBsCzjga7jgbbjgbLjgZMNCivjgoTjgb7jgoLjgags44Gk44Go44KADQor44GI44KT44GpLOOBruOBvOOCiw0KK+OBneOCgeOChCzjgYrjgZXjgoANCivjgYLjgonjgYQs44KI44GX44KG44GNDQor44GC44G5LOOBguOBjeOCiQ0KK+OBoeOBsCzjgZ/jgaTjgYoNCivjgZ/jgYvjgoTjgb4s44G/44Gu44KLDQor44KE44G+44GNLOOChuOBhuOBmA0KK+OBn+OBkeOBhuOBoSzjgZfjgZLjgbXjgZUNCivjgZ/jgZHjgbks44Gf44GL44GKDQor44GC44Gg44GhLOOCiOOBl+OBguOBjQ0KK+OBn+OBi+OBl+OBvizjgYLjgY3jgokNCivjgojjgZPjgoTjgb4s44Gu44KK44Gq44GKDQor44GX44KJ44GE44GhLOOBvuOBleOCiw0KK+OBj+OBqeOBhizjgZfjgZLjgYoNCivjgZnjgZrjgY0s44GN44KI44GXDQor44Gf44GL44GX44G+LOOBn+OBi+OBlw0KK+OChOOBvuOBjOOBnyzjgb/jga7jgosNCivjgojjgZfjgaAs44Gf44GP44GKDQor44G/44KE44GL44KPLOOBkeOCk+OBmA0KK+OBleOBleOBjSzjgoDjgaTjgb8NCivjgYTjgafjgYbjgoks44GL44Ga44GTDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgYLjgaTjgbLjgZMNCivjgYrjgYrjgaQs44Gf44GR44GXDQor44G144GI44GNLOOBqOOBl+OBi+OBmg0KK+OBl+OCguOBteOBlSzjgYLjgaTjgZcNCivjgb/jgoTjgYvjgo8s44G+44GV44Gf44GLDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OChOOBvuOBnuOBiCzjgZPjgYbjgZgNCivjgavjgYTjgY/jgoks44Gu44G244GKDQor44KP44Gf44Gq44G5LOOBqOOBl+OBruOCig0KK+OCgOOCjeOBteOBlyzjgYvjgaoNCivjgYvjgpPjgaAs44GL44Gk44G+44GVDQor44GP44Gp44GGLOOBkeOBhOOBkw0KK+OBn+OBi+OBr+OCiSzjgo/jgZ/jgosNCivjgYrjgYvjgaAs44GR44GE44GYDQor44Gp44GELOOBleOBqOOCiw0KK+OBn+OBquOBuSzjgb7jgoLjgosNCivjgZPjgoDjgo0s44GR44KT44GE44GhDQor44KC44KK44KE44G+LOOBteOBv+OBkw0KK+OBguOCieOBvuOBjSzjga7jgbbjgYoNCivjgZPjgZfjgbks44GL44Ga44KNDQor44GV44GuLOOBruOBtuOBsuOCjQ0KK+OBiuOBi+OBoCzjgojjgZfjgb7jgZUNCivjgbXjgZjjgo/jgoks44GN44KH44GG44GTDQor44G+44Gk44GKLOOBi+OBmuOBvw0KK+OBn+OBquOBiyzjgb/jga3jgYoNCivjgY3jga/jgoks44Gq44GK44GNDQor44Gr44GX44Gv44GfLOOChuOBhg0KK+OBq+OBl+OCj+OBjSzjgojjgZfjgZ/jgYsNCivjgYrjgYvjgZbjgY0s44Gy44KN44GL44GaDQor44G144GY44KP44KJLOOBiuOBleOCgA0KK+OChOOBmeOBoCzjgobjgYvjgZMNCivjgYrjgYss44GN44KH44GGDQor44G744Gd44GuLOOBl+OBkuOBig0KK+OBguOBi+OBlyzjgZ/jgY/jgb4NCivjgarjgYvjgYQs44GT44GG44GE44GhDQor44KE44GZ44GgLOOBjeOBj+OBmA0KK+OBpuOCieOCgOOCiSzjgbXjgb/jgZ/jgYsNCivjgY/jgbzjgZ8s44KI44GX44KG44GNDQor44GT44Gr44GXLOOBl+OBkuOBvw0KK+OBruOCgOOCiSzjgYLjgY3jgokNCivjgYTjga7jgZss44GP44Gr44GTDQor44KP44Gf44Gq44G5LOOChOOBmeOBsuOBkw0KK+OBq+OBl+OBiizjgYvjgZrjgbLjgZUNCivjgoLjgb/jgY0s44GT44GZ44GRDQor44GZ44Gq44GgLOOBsuOCjeOBn+OBiw0KK+OBn+OBkeOBhuOBoSzjgZXjgaHjgZMNCivjgYLjgY3jgZss44Gy44KN44GXDQor44GX44GK44GfLOOCiOOBl+OBsuOBkw0KK+OBjeOBqSzjgojjgZfjgYLjgY0NCivjgYTjgZfjgo/jgZ/jgoos44Go44GX44GKDQor44GX44KJ44GM44G/LOOBn+OBi+OBsuOCjQ0KK+OBhuOBoeOBquOBjCzjgbLjgafjgoQNCivjgZ/jgarjgYss44GX44KT44GE44Gh44KN44GGDQor44GP44KN44GV44GNLOOBpuOBpOOBig0KK+OBiuOBqOOBlyzjgobjgYbjgYTjgaENCivjgZXjgajjgYYs44G+44GV44GKDQor44GZ44Ga44GNLOOBvuOBleOChuOBjQ0KK+OBsuOCjeOBnyzjgZXjgYTjgZgNCivjgoTjga7jgYvjgo8s44GY44KF44KT44GE44GhDQor44GV44GL44KC44GoLOOBvuOCguOCiw0KK+OBk+OCgOOCjSzjgb7jgZXjgagNCivjgYTjgb7jgZ8s44KI44GG44GE44GhDQor44G744Gd44KELOOBi+OBmuOBn+OBiw0KK+OBpuOCieOBleOBiyzjgb7jgZXjgobjgY0NCivjgbvjgpPjgb4s44GL44Ga44GIDQor44GL44GZ44GMLOOBsuOCjeOBl+OBkg0KK+OBvuOBpOOBoOOBhOOCiSzjgYjjgYTjgZgNCivjgYvjgo/jgYvjgb8s44GX44KF44GG44GYDQor44Gt44GU44KNLOOBl+OCk+OBmA0KK+OBteOBj+OBoCzjgYjjgYTjgZ7jgYYNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44Go44G+44GkLOOCiOOBl+OBmA0KK+OBhOOBrizjgZ/jgaTjgo3jgYYNCivjgZnjgZrjgY0s44GY44KF44KT44GYDQor44GC44GV44GELOOBi+OBmuOBig0KK+OBr+OCiSzjgZ/jgYvjga7jgooNCivjgbvjgZcs44GP44Gr44GL44GkDQor44Gq44KL44GL44KPLOOBi+OBmuOBruOCig0KK+OBiuOBoCzjgZ/jgYvjgYLjgY0NCivjgYrjgbDjgaos44GX44GS44KE44GZDQor44Gf44Gr44GW44KPLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOBiuOBiyzjgZ/jgYvjgZcNCivjgZTjgajjgYYs44Gf44GL44GYDQor44GT44KM44Gq44GMLOOBqOOBl+OBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgaDjgYTjgZnjgZENCivjgZ/jgYvjgoks44G/44Gk44Gv44KLDQor44GK44GK44GP44KPLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgbLjgafjgYvjgZoNCivjgZXjgajjgYYs44Gu44KK44GKDQor44GX44G+44Gs44GNLOOBkeOCkw0KK+OBneOBrSzjgbLjgo3jgZcNCivjgZ/jgarjgYss44GL44Ga44GKDQor44G144GY44KA44KJLOOBk+OBhuOBmA0KK+OBlOOBqOOBhizjgZfjgpPjgZgNCivjga/jgZfjgoLjgags44KE44GZ44Gf44GLDQor44Gy44KL44G+LOOBguOBjeOCiQ0KK+OBu+OBl+OBsCzjgbLjgafjgogNCivjgYvjgoHjgo/jgoos44Gy44KN44G/DQor44GK44GP44GELOOBsuOCjeOBlw0KK+OBsuOBleOCguOBqCzjgYrjgZXjgoANCivjgZnjgZrjgY0s44GN44KI44GXDQor44Gy44KJ44GV44KPLOOCiOOBl+OBn+OBiw0KK+OBjeOBn+OBpyzjga7jgorjgYLjgY0NCivjgbXjgY/jgaAs44GL44Ga44Gy44GVDQor44GX44GK44GW44GNLOOBkeOBhOOBmA0KK+OCgOOBqOOBhizjgobjgZ/jgYsNCivjgavjgZfjgYrjgYss44GV44G244KN44GGDQor44Gk44G844GuLOOBsuOCjeOBsuOBlQ0KK+OBquOBpOOBhuOCgSzjgajjgZfjgb7jgZUNCivjgZ/jgavjgYzjgY0s44Gy44KN44GC44GNDQor44GK44GK44GZ44GMLOOBi+OBmuOBig0KK+OBhuOBoeOBoCzjgbLjgafjgYoNCivjgYvjgajjgYYs44GI44GE44GYDQor44GV44GV44GNLOOBsuOBp+OBig0KK+OBi+OBl+OBvizjga7jgorjgYoNCivjgYLjgYvjgZXjgYss44GL44Ga44GKDQor44GL44KP44GL44G/LOOCiOOBhuOBhOOBoQ0KK+OBl+OBqSzjgZ/jgaTjgoQNCivjgoTjgb7jgYbjgaEs44KI44GX44Gy44GnDQor44GL44GuLOOChuOBn+OBiw0KK+OBr+OCiSzjgYTjgY/jgYoNCivjgb7jgaTjgbDjgoks44GR44KT44GYDQor44Gm44KJ44GL44GpLOOBi+OBmuOBsuOCjQ0KK+OBl+OBiuOBnyzjgojjgZfjga7jgooNCivjgYrjgYvjgaAs44Gy44Go44GXDQor44GP44KN44GgLOOCiuOCh+OBhg0KK+OCguOCiuOCguOBqCzjgbXjgZjjgYoNCivjgZvjgY0s44Gy44KN44GXDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBn+OBkeOBj+OBlSzjgbLjgo3jgZcNCivjgZ/jgYzjgZfjgoks44Gu44G244GKDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBleOBiOOBjSzjgZHjgYTjgZgNCivjgZ/jgaTjgZbjgo8s44GN44G/44GC44GNDQor44GV44GE44Go44GGLOOBsuOBqOOBlw0KK+OBteOCi+OBi+OCjyzjgY3jgojjgZcNCivjgZ/jgoDjgoks44G144G/44GoDQor44Gk44KK44KELOOBvuOBoeOBig0KK+OBleOBi+OBkOOBoSzjgbXjgb/jgajjgZcNCivjgbXjgY/jgZfjgb4s44KI44GG44GE44GhDQor44GK44GK44GL44KPLOOBsuOCjeOBlw0KK+OBteOBmOOBnyzjgZfjgoXjgpPjgZnjgZENCivjgYvjgo/jgZDjgaEs44GL44Gk44Gu44KKDQor44Go44GN44GK44GLLOOBpuOCi+OBig0KK+OBquOBi+OBrizjgajjgb/jgYoNCivjgYTjga7jgYbjgYgs44G+44GV44KG44GNDQor44GP44Gr44Go44GXLOOBn+OBj+OCjeOBhg0KK+OBleOBi+OBnyzjgZPjgYbjgYTjgaENCivjgoLjgorjgYvjgo8s44Gk44Gt44GKDQor44Gu44GQ44GhLOOBsuOCjeOBlw0KK+OBj+OBvOOBnyzjgoDjgaTjgb8NCivjgarjgYvjgYrjgYss44Gf44Gk44GKDQor44Gu44G144GYLOOBkeOBhOOBmA0KK+OCguOBjOOCiizjgYjjgYTjgZgNCivjgb7jgYjjgZbjgY0s44GE44GV44GKDQor44GK44GK44Gk44GLLOOBl+OBkuOCiOOBlw0KK+OBv+OBmuOBnyzjgZHjgpPjga7jgZnjgZENCivjgZnjgY7jgoTjgb4s44KI44GX44Gy44GVDQor44GL44GM44KPLOOCiOOBl+OBn+OBiw0KK+OBq+OBl+OBr+OCiSzjgojjgZfjgbXjgb8NCivjgabjgZrjgYss44GX44KT44GE44GhDQor44GX44GK44G/LOOBv+OBpOOBig0KK+OBiuOBiuOBr+OCiSzjgZ/jgaDjgYLjgY0NCivjgYLjgZXjgY/jgoks44GC44GN44Gy44KNDQor44GX44G+44GgLOOBpuOBpOOChA0KK+OBl+OBvuOBi+OCjyzjgZnjgZnjgoANCivjga/jgZfjgoLjgags44Gy44Go44GXDQor44GG44GaLOOBl+OBmuOBig0KK+OBn+OBi+OBj+OCjyzjgb7jgZXjga7jgbYNCivjgb/jgaHjgZ8s44GX44KF44KT44GE44GhDQor44GG44GI44GgLOOBhuOBhOOCig0KK+OBl+OBjCzjgZ/jgYvjgaTjgZANCivjgYTjgZHjgb8s44G/44Gk44GQDQor44KC44KKLOOBvuOBleOBguOBjQ0KK+OBi+OBl+OCguOBqCzjgb7jgZnjgb8NCivjgYTjgZfjga/jgoks44Gh44GI44GTDQor44GL44Gt44GTLOOBoeOBiOOBkw0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYoNCivjgoLjgajjgYQs44G+44GV44GKDQor44GT44Gf44GRLOOBv+OBoeOBig0KK+OBi+OBleOBhCzjgZnjgYjjgZMNCivjgYvjgajjgYYs44Gu44KK44GTDQor44GT44GP44G8LOOBkeOBhOOBkw0KK+OCj+OBi+OChOOBvizjgZfjgZLjgoQNCivjgZXjgarjgaAs44G+44GV44Gy44GTDQor44GV44GL44GfLOOBqOOBv+OCiOOBlw0KK+OBruOCgOOCiSzjgb/jgaTjgYoNCivjga/jgoTjgYvjgo8s44GL44Ga44G/DQor44G/44KE44GW44GNLOOBl+OBkuOBig0KK+OBiuOBq+OBpOOBiyzjgZHjgpPjgZgNCivjgYTjgacs44GK44GV44KADQor44Gq44GM44GV44GTLOOBn+OBi+OBruOCig0KK+OBhOOBqOOBhizjgb/jgaHjgZ/jgYsNCivjgYvjga3jgZ/jgZEs44Gm44KL44GC44GNDQor44GP44G844GfLOOBjeOCiOOChuOBjQ0KK+OBguOCiuOBvizjgZHjgYTjgZMNCivjgo/jgYvjgYos44Gy44KN44GXDQor44GE44GX44GW44GLLOOBn+OBi+OChuOBjQ0KK+OBiuOBnyzjgZzjgpPjga/jgaHjgo3jgYYNCivjgZXjgYvjgoLjgags44GR44GE44GUDQor44GK44GK44G744KKLOOChuOBjeOBig0KK+OBl+OCk+OBn+OBqyzjgajjgZfjgYLjgY0NCivjgYbjgaHjgoTjgb4s44Gf44GL44GXDQor44Gy44KJ44GfLOOBv+OBquOBkw0KK+OBguOCiuOBnuOBrizjgZXjgajjgZMNCivjgYTjgajjgYYs44Gf44GL44GXDQor44GC44GK44KE44GOLOOBvuOBleOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgZXjgaDjgYoNCivjgYTjgYTjgaAs44G/44Gh44GKDQor44Gq44GX44GNLOOBi+OBiuOCiw0KK+OCgOOCieOBmyzjgYvjgZrjgYoNCivjgb7jgaTjgYos44GR44GE44GUDQor44GV44Go44GGLOOBl+OCjeOBhg0KK+OBguOBleOBrOOBvizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgbXjgZ/jgb8s44KE44GZ44G+44GVDQor44G144Gq44GoLOOBj+OBq+OBvw0KK+OBteOBmOOBnyzjgobjgb/jgZMNCivjgbXjgovjgYvjgo8s44Gf44GR44GKDQor44G144Gq44Gv44GXLOOBsuOBleOChA0KK+OBtuOBqOOBhizjgbLjgo3jgobjgY0NCivjgYvjga7jgYYs44GL44Gk44Gy44KNDQor44GK44GN44GkLOOBsuOCjeOBn+OBiw0KK+OBn+OBi+OBjuOCjyzjgYTjgZXjgoANCivjgbvjgZfjga4s44Gh44GI44GTDQor44Gr44GX44GY44G+LOOBj+OBq+OBsuOCjQ0KK+OBi+OBvuOBnyzjgaHjgYLjgY0NCivjgaTjgZjjgoLjgags44Go44GX44GE44GhDQor44Gv44Gq44GgLOOBl+OCk+OBmA0KK+OBsuOCjeOBmyzjgb7jgZXjgYoNCivjgavjgZfjgaAs44Gy44Go44GXDQor44GG44GI44GNLOOBqOOBl+OBi+OBmg0KK+OCiOOBl+OBrizjgY3jgojjgYoNCivjgY3jgZ/jgoDjgoks44Gb44GE44GE44GhDQor44GX44G/44GaLOOBv+OBoeOBkw0KK+OBhOOBl+OBluOBjSzjgbLjgZXjgZcNCivjga/jgoTjgZcs44G/44Gk44Gu44G2DQor44GN44GP44GhLOOBsuOBp+OBteOBvw0KK+OBiuOBi+OBqSzjgaTjgZDjgYoNCivjgZPjgoDjgoks44GX44GS44KLDQor44Gv44GX44KC44GoLOOBpOOBqOOCgA0KK+OBquOBi+OBpOOBiyzjgZ/jgZHjgZcNCivjgYrjgYrjgYTjgZcs44G+44GZ44KI44GXDQor44GP44KN44GgLOOBvuOBleOCiOOBlw0KK+OBquOBi+OBhCzjgb7jgZXjgb8NCivjgY3jgZ/jgZbjgo8s44Gu44KK44GC44GNDQor44GN44GX44GgLOOBl+OBkuOCiw0KK+OBi+OBquOBvuOCiyzjgb7jgZPjgagNCivjgYLjgonjgYQs44GX44Ga44GKDQor44G144Gf44Gk44GOLOOBr+OCi+OBig0KK+OBjeOBj+OBoSzjgajjgZfjgYoNCivjgYTjgYTjgaAs44KE44GZ44GXDQor44Gq44GL44GILOOBguOBjeOBig0KK+OBsuOCieOBvuOBpCzjgb/jga7jgosNCivjgavjgZfjgYrjgYss44GY44KF44KT44Ge44GGDQor44GV44Go44GGLOOBkeOBhOOBjQ0KK+OCguOCiizjga/jgovjgYoNCivjgbvjgZfjga4s44GE44GV44GKDQor44KE44G+44GQ44GhLOOBruOBtuOBsuOCjQ0KK+OBhuOBmeOBhCzjgojjgYbjgYTjgaENCivjgb7jgaTjgbDjgoks44GI44GE44GE44GhDQor44GC44KK44GV44GLLOOBvuOBleOBjQ0KK+OBq+OBl+OBiizjgYjjgYTjgZgNCivjgY3jgaAs44Gm44Gk44GKDQor44KE44GuLOOChuOBhuOBhOOBoQ0KK+OBi+OBqOOBhizjgZHjgpPjgZ8NCivjgo/jgZ/jgarjgbks44Gh44Gy44KNDQor44Gv44KE44GXLOOChOOBmeOBig0KK+OCj+OBn+OBuSzjgojjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44G+44GV44GKDQor44KG44GQ44GhLOOBsuOCjeOBkw0KK+OChOOBvuOCguOBqCzjgbLjgZXjgZcNCivjgZXjgYTjgajjgYYs44G144G/44GKDQor44GL44GE44GaLOOBkeOCk+OBhOOBoQ0KK+OBu+OBl+OBrizjgbLjgafjgYoNCivjgZfjga7jga/jgoks44Gu44G244Gy44KNDQor44GK44GK44Gs44G+LOOBvuOCguOCiw0KK+OBv+OCjyzjgZ/jgZHjgZcNCivjgbvjgorjgoDjgY0s44KI44GX44G+DQor44GE44GX44Gf44GmLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBv+OBteOBrSzjgY3jgojjgZcNCivjgoLjgb/jgY0s44G+44GT44GoDQor44Gv44Gb44GM44KPLOOBpuOCi+OBig0KK+OBmeOBjuOChOOBvizjgZfjgoXjgpPjgZgNCivjgaTjgY/jgaAs44Gf44Gg44GXDQor44GC44Gg44GhLOOBteOBv+OBruOCig0KK+OBp+OBluOCjyzjgZ/jgaDjgojjgZcNCivjgYrjgZ8s44GN44KI44GXDQor44GV44Go44GGLOOBguOBjeOCiQ0KK+OBm+OBjeOBkOOBoSzjgb/jgaTjga7jgooNCivjgZPjgY/jgbbjgpMs44KI44GX44GNDQor44G744GX44GqLOOChuOBjeOBteOBvw0KK+OBhuOCieOBrizjgZPjgYbjgYTjgaENCivjgZ/jgZHjgoDjgoks44KE44GZ44Gy44KNDQor44Go44GP44Gq44GMLOOBsuOBqOOBlw0KK+OBj+OCiuOBr+OCiSzjgbLjgafjgagNCivjgYrjgY/jgoDjgoks44GY44KF44KT44GE44GhDQor44GV44GE44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBvuOBpOOBl+OBnyzjgZHjgYTjgZ7jgYYNCivjgZ/jgZHjgaAs44G/44Gh44GTDQor44Gr44GX44GNLOOCguOBqOOCiOOBlw0KK+OBhuOCgeOBoCzjgZXjgYvjgYgNCivjgbvjgpPjgaAs44GE44GP44GKDQor44GL44KCLOOBi+OBmuOBhuOBvw0KK+OBhuOBl+OBoCzjgaTjgojjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44Gk44GQDQor44Gv44GZ44GgLOOBvuOBmeOBig0KK+OBv+OBi+OCjyzjgojjgYbjgZMNCivjgYbjgaHjgaAs44GP44Gr44Gy44GTDQor44Gr44GX44GW44GNLOOBl+OCh+OBhuOBhOOBoQ0KK+OBhOOBjOOCieOBlyzjgZfjgofjgYbjgZgNCivjgo/jgZ/jgarjgbks44GC44GV44GTDQor44GX44G+44KA44KJLOOBk+OBhuOBmA0KK+OBi+OBqOOBhizjga7jgorjgZMNCivjgYvjgo/jgbks44GX44KH44GG44GTDQor44GV44GL44KC44GoLOOCiOOBhuOBmA0KK+OCguOCiuOBl+OBnyzjgoLjgajjgojjgZcNCivjgZnjgYzjga/jgoks44KK44KH44GGDQor44Go44G/44KE44G+LOOBi+OBpOOBsuOBkw0KK+OBteOBj+OBoCzjgaTjgojjgZcNCivjgYrjgajjgZbjgY0s44GC44Gk44Gy44GTDQor44G144GY44KC44KKLOOBn+OBi+OBig0KK+OBk+OCguOCiizjgY3jgojjgobjgY0NCivjgbXjgY/jgarjgYws44G+44GV44GC44GNDQor44G/44KE44Gv44KJLOOBi+OBpOOBruOCig0KK+OBmOOCk+OBrizjgb/jgaTjgYoNCivjgY3jgoDjgoks44GI44GE44GTDQor44GE44Gq44GM44GNLOOChuOBjeOBkw0KK+OCguOCiizjga7jgorjgYoNCivjgo/jgZ/jgarjgbks44GL44Gk44Gu44KKDQor44Gk44GY44KC44GoLOOBguOBjeOBig0KK+OCguOCk+OBnOOCkyzjgbLjgo3jgobjgY0NCivjgarjgoDjgoksDQor44KE44G+44KC44GoLOOBiOOCiuOBkw0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgY0NCivjgYLjgonjgYQs44KE44GZ44Gu44KKDQor44G144GY44GELOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgabjgaQNCivjga/jgZvjgYzjgo8s44Go44KI44GL44GaDQor44GX44GS44KE44GZLOOBiOOBhOOBhOOBoQ0KK+OChOOBvuOBruOBhCzjgZ/jgY/jgb4NCivjgZPjgbDjgoTjgZcs44G+44GV44KLDQor44Gq44GM44GELOOCiOOBl+OBguOBjQ0KK+OBleOCjyzjga7jgbbjgYoNCivjgb7jgaTjgojjgZcs44G/44Gh44GKDQor44GV44GE44Go44GGLOOBi+OBiuOCiw0KK+OBi+OBruOBhizjgbLjgo3jgYLjgY0NCivjgYbjgZfjgZTjgoEs44KE44GZ44GKDQor44GE44GX44GELOOBk+OBhuOBmA0KK+OBhuOBmeOBjSzjgYTjgZrjgosNCivjgZnjganjgYYs44KI44GX44GKDQor44GL44GY44KE44G+LOOBn+OBi+OBjeOBvw0KK+OBiuOBiuOBsCzjgbLjgafjgY0NCivjgZnjgo8s44G144G/44GKDQor44GE44KP44GfLOOChOOBmeOBqA0KK+OBqOOBhizjga/jgZjjgoENCivjgYrjgYTjgYvjgo8s44Gy44Go44GXDQor44Gy44KJ44GELOOBiOOBhOOBkw0KK+OBn+OBi+OBl+OBvizjgajjgZfjgYoNCivjgbXjgb/jga4s44Gy44KN44GXDQor44GK44GL44GW44GNLOOBruOCiuOBig0KK+OBl+OCieOBjSzjgb7jgZXjgaTjga0NCivjgZ/jgZHjgoLjgags44KG44GG44GYDQor44G+44Gk44KC44GoLOOBruOCiuOBsuOBkw0KK+OBvuOBpOOBsOOCiSzjgbLjgo3jgZcNCivjgYjjgbPjga/jgoks44GT44GG44GYDQor44G144GY44GuLOOChOOBmeOBig0KK+OBteOBi+OChCzjgb7jgZXjgbLjgo0NCivjgbvjgZfjga4s44Gf44GL44GXDQor44GL44Gf44KE44G+LOOBleOBoeOBkw0KK+OBguOCieOBi+OCjyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga4s44GL44Ga44GKDQor44GP44KN44GgLOOChOOBmeOBsuOCjQ0KK+OBhOOBqOOBhizjgZjjgoXjgpPjgZMNCivjgZPjgZbjgYQs44G/44Gk44KLDQor44GG44GI44KE44G+LOOBjeOCiOOBlw0KK+OBr+OBo+OBqOOCiizjgajjgZfjgY0NCivjgavjgZfjgoDjgoks44Go44GX44Gf44GLDQor44G144KL44GL44KPLOOBn+OBi+OBig0KK+OChOOBl+OBjSzjgZfjgZLjgY0NCivjgbvjganjgoTjgb4s44Gy44Gn44GKDQor44GI44Go44GGLOOBqOOCguOBsuOBkw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgajjgZcNCivjgZvjgY3jgZDjgaEs44GE44GV44KADQor44Gf44Gq44G5LOOBsuOBp+OBqOOBlw0KK+OBn+OBkeOBoCzjgajjgZfjgobjgY0NCivjgZfjgpPjgZ/jgass44GL44Gf44GXDQor44GP44G844GfLOOBjeOCiOOBlw0KK+OBmeOBjuOBiuOBiyzjgZXjgajjgb8NCivjgoTjgb7jgZbjgY0s44GV44Gg44Gu44KKDQor44GV44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBhuOBiOOBrizjgajjgZfjgZ/jgZENCivjgZfjgb7jgoLjgags44GT44GZ44GRDQor44GN44Gf44GuLOOBvuOBleOBvw0KK+OBhOOBhOOBmuOBiyzjgorjgofjgYbjgZMNCivjgYTjgZrjgb8s44GN44KH44GG44GYDQor44Gv44KJ44GgLOOBn+OBi+OChuOBjQ0KK+OBiuOBoeOBguOBhCzjgZXjgajjgZcNCivjgoTjgb7jgYbjgaEs44GC44GN44Gy44KNDQor44GI44GQ44GhLOOBsuOBp+OBpOOBrQ0KK+OBr+OBjuOCj+OCiSzjgZ/jgZHjgZcNCivjgZ/jgYvjgY4s44Gf44GR44Gu44KKDQor44GK44GP44KC44GoLOOBvuOBquOBtg0KK+OBvuOBpOOBluOBjSzjgorjgofjgYbjgYTjgaENCivjgYTjgaHjgoDjgoks44KG44KK44GTDQor44G/44KE44GV44GLLOOBqOOCguOBkw0KK+OBv+OChOOBnyzjgZvjgYTjgYTjgaENCivjgarjgYzjgYos44GX44KH44GG44GN44GhDQor44GE44KP44GKLOOBvuOBleOBlw0KK+OBteOBi+OBluOCjyzjgZfjgZLjgosNCivjgZ/jgoDjgoks44G+44GV44GKDQor44GN44KK44KF44GGLOOBn+OBoOOBig0KK+OBvuOBpOOBluOBjSzjgojjgZfjgYoNCivjgYvjgajjgYYs44Gm44KL44G/44GkDQor44G/44GfLOOBquOBiuOBqA0KK+OBhOOBl+OBhCzjgYTjgZXjgoANCivjgYrjgYvjgoLjgags44Gm44Gk44GKDQor44GG44GI44GK44GLLOOBruOBtuOBig0KK+OBjeOCh+OBhuOBrizjgb7jgZXjgagNCivjgYvjga3jgZMs44KG44GG44Ge44GGDQor44GV44GP44KJ44GELOOBjeOCh+OBhuOBkw0KK+OCj+OBi+OBsOOChOOBlyzjgajjgZfjgbLjgacNCivjgo/jgZ/jgarjgbks44KI44GX44Gy44KNDQor44GC44GV44GELOOBq+OBmeOBkQ0KK+OBi+OBqeOBrizjgobjgYbjgZgNCivjgoTjgb7jgZbjgY0s44Go44KI44Gy44KNDQor44GC44KP44GuLOOBqOOBl+OChuOBjQ0KK+OBiuOBjOOCjyzjgZ/jgYvjga7jgooNCivjgZzjgpPjgZEs44Go44GX44GKDQor44G144GP44KC44GoLOOBqOOCguOBsuOBkw0KK+OBiuOBqSzjgYvjgZrjga7jgooNCivjgoLjgorjgoLjgags44Gf44GL44GKDQor44Go44GG44G844GGLOOBi+OBmuOBvw0KK+OBi+OBn+OChOOBvizjgb7jgZXjgZcNCivjgarjgYzjgb7jgaQs44Gf44GL44GC44GNDQor44KP44Gf44G5LOOCiOOBl+OBvw0KK+OBhOOBl+OBjSzjgobjgYYNCivjgYTjgarjgYzjgo8s44KG44GG44GTDQor44Gq44GL44GuLOOBn+OBi+OBr+OCiw0KK+OBq+OBl+OChOOBvizjgoTjgZnjgojjgZcNCivjgZfjgoLjgaAs44G/44KI44GTDQor44GX44GS44GfLOOBn+OBi+OBig0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZfjgZINCivjgYvjgZ/jgoTjgb4s44KG44GGDQor44Gd44GuLOOBi+OBpOOBvw0KK+OBhOOBm+OBjSzjgobjgY3jgYoNCivjgYTjgajjgYYs44KI44GX44GL44GaDQor44Gb44GN44GtLOOBvuOBleOBig0KK+OCgOOCieOChOOBvizjgbXjgZjjgYoNCivjgb7jgovjgoTjgb4s44GR44GE44GYDQor44GP44KN44GV44KPLOOCiOOBl+OBteOBvw0KK+OBmeOBvyzjgajjgYrjgosNCivjga7jgZDjgaEs44KG44GG44GYDQor44GV44Go44GG44G/LOOBsuOBp+OBjQ0KK+OBiuOBiuOBi+OCjyzjgaTjgZDjgbLjgagNCivjgarjgYvjga4s44Gy44Gn44Gu44KKDQor44GK44GK44GE44GXLOOBmA0KK+OBr+OBtizjgYLjgY3jgokNCivjgYbjgaHjgaAs44Gu44KK44G+44GVDQor44G/44GNLOOBteOBv+OBruOBtg0KK+OBmeOBmuOBjSzjgaTjga3jgobjgY0NCivjgYvjgZXjga/jgoks44GE44Ga44G/DQor44GK44GK44GP44G8LOOBi+OBmuOBr+OCiw0KK+OBi+OBn+OBi+OBvyzjga7jgorjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Go44GX44Gy44GTDQor44GE44GX44GL44KPLOOBi+OBmuOChA0KK+OBn+OBi+OBqOOCiizjgZ/jgYvjgYoNCivjgZ/jgavjgZDjgaEs44GX44KT44GYDQor44Gb44GNLOOChuOBjeOBvuOBlQ0KK+OBj+OBvOOBnyzjgb7jgZXjgagNCivjgYLjgbnjgYvjgo8s44KA44Gk44GKDQor44G144GY44G+44GNLOOBn+OBkeOBlw0KK+OBi+OBn+OChOOBvizjgb7jgZXjgobjgY0NCivjgZPjgoTjgb4s44GR44KT44GYDQor44Gv44GX44KC44GoLOOBguOBkeOBvw0KK+OBmeOBvyzjgb/jgaHjgYoNCivjgavjgZfjgYvjgo8s44Gy44KN44GXDQor44GV44KP44G+LOOBguOChOOBkw0KK+OBr+OBl+OCguOBqCzjgobjgYbjgZMNCivjgarjgYvjgZ8s44KE44GZ44G+44GVDQor44GG44Gh44KE44G+LOOBsuOCjeOBlw0KK+OBleOBleOBjSzjgb7jgooNCivjgYLjgZXjga/jgoks44G/44Gk44Gy44KNDQor44Gr44Gj44GfLOOBteOBv+OBkw0KK+OBoOOCkyzjgovjgorjgZMNCivjgZnjgY7jgZ8s44Gm44Gk44GXDQor44KE44G+44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBiuOBteOBoSzjgb/jgY0NCivjgZPjgbDjgoTjgZcs44G/44KP44GTDQor44G/44KI44GXLOOBk+OBhuOBjeOBoQ0KK+OBhOOBl+OBoCzjgbLjgafjgbLjgZMNCivjgYrjgavjgY0s44Gu44G844KLDQor44GP44KK44Gv44KJLOOBn+OBv+OBig0KK+OBl+OCieOBhCzjgaTjgYvjgZUNCivjgZXjgYvjgavjgZcs44GR44KT44GE44GhDQor44GK44GgLOOBsuOBleOBlw0KK+OBi+OBvuOBmSzjgZHjgpPjgZ7jgYYNCivjgarjgYvjgYzjgo8s44G+44GV44KI44GXDQor44GL44GX44KC44GoLOOBjeOCh+OBhuOBhOOBoQ0KK+OBsOOCk+OBqeOBhizjgobjgZrjgosNCivjgbXjgZ/jgb8s44G+44GV44GXDQor44KE44G+44GX44GfLOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgobjgYbjgZgNCivjgYvjgZLjgoTjgb4s44G/44Gu44KLDQor44GC44GZ44G+LOOBruOBtuOBig0KK+OBl+OCguOCgOOCiSzjgobjgYbjgYTjgaENCivjgoTjgb7jgZDjgaEs44Gf44Gg44GXDQor44KE44G+44GoLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgb7jgaTjgaDjgYTjgoks44GL44Ga44KEDQor44G+44Gk44KA44KJLOOBqOOBl+OBv+OBoQ0KK+OBk+OCk+OBrizjgojjgZfjgoQNCivjgYrjgYrjga/jgZcs44KE44GV44G244KN44GGDQor44GN44GP44GfLOOBl+OBkuOBjQ0KK+OCiOOBl+OBiuOBiyzjgbLjgo3jgZcNCivjgZXjga4s44KI44GX44GKDQor44Gf44Gq44GLLOOChuOBjeOBruOCig0KK+OBleOBleOBjSzjgZnjgZnjgoANCivjgYvjgo/jgZDjgaEs44GC44Gk44GXDQor44KE44G+44GX44GfLOOBn+OBpOOBig0KK+OBn+OBkeOCgOOCiSzjgbXjgb/jgYoNCivjgbXjgY/jgaEs44GL44Ga44GIDQor44G+44Gq44GLLOOBqOOBv+OBiA0KK+OBguOCieOBjSzjgZ/jgYvjga7jgbYNCivjgbLjgonjga4s44KI44GX44GL44GaDQor44Gq44GL44KA44KJLOOBpOOBqOOCgA0KK+OBr+OBl+OCguOBqCzjgajjgZfjgYvjgaQNCivjgYvjgajjgYYs44GE44GP44GTDQor44Gv44G+44GL44KPLOOBj+OBq+OBig0KK+OBr+OChOOBlyzjgZHjgYTjgZMNCivjgYTjgajjgYYs44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBhOOBoeOCjeOBhg0KK+OBn+OBkeOBhuOBoSzjgYvjgZrjgbLjgZMNCivjgavjgZcs44GT44GG44GE44GhDQor44GE44KP44G744KKLOOBqOOBl+OBvuOBlQ0KK+OBhOOBvuOBhCzjgY/jgb/jgZMNCivjgoLjgorjga4s44Gf44GL44GXDQor44Gr44GX44Gv44KJLOOBkeOBhA0KK+OBjeOCiuOChCzjgbLjgZXjgagNCivjgZXjgajjgYYs44Go44KI44GTDQor44G744Gd44GgLOOBsuOBleOBkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgaDjgZcNCivjgarjgYvjgZjjgb4s44GX44GS44KLDQor44KE44GZ44Gv44KJLOOBquOCi+OChuOBjQ0KK+OBj+OCjeOBhOOCjyzjgZ/jgYvjgZcNCivjgYvjgoIs44Gy44KN44GXDQor44GC44GL44G+44GkLOOBj+OBq+OBguOBjQ0KK+OBjeOBn+OCgOOCiSzjgb7jgobjgb8NCivjgavjgZfjgaAs44KG44GN44GTDQor44GK44GL44GgLOOBl+OCk+OBhOOBoQ0KK+OBleOBleOBjSzjgajjgZfjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44GX44G/44GaLOOBhOOBleOCgA0KK+OBiOOCk+OBqSzjgZfjgpPjgZnjgZENCivjgYbjgaDjgYzjgo8s44Gm44KL44GKDQor44GX44G/44GaLOOBruOCiuOBteOBvw0KK+OBguOBiuOChOOBjizjgZvjgYTjgZ7jgYYNCivjga/jgZfjgoLjgags44GL44Ga44GKDQor44Gf44GR44GG44GhLOOBsuOBp+OBguOBpA0KK+OBguOCieOBhCzjgoTjgZnjgZcNCivjgYTjgZfjgZjjgb4s44GE44GV44GKDQor44GT44GM44GtLOOBsuOBp+OBig0KK+OBleOCj+OBl+OBvizjgZfjgpPjgYTjgaENCivjgZ/jgYvjgoTjgarjgY4s44G/44Gu44KLDQor44G+44GV44GgLOOBsuOCjeOBv+OBoQ0KK+OBl+OBv+OBmizjgYLjgY3jgbLjgacNCivjgYrjga7jgafjgoks44Gf44GL44GKDQor44Gf44Gq44GLLOOBv+OBpOOCiw0KK+OBruOCgOOCiSzjga7jgbbjgYoNCivjgojjgZfjgaAs44Gy44KN44GXDQor44KI44GX44GgLOOBqOOBl+OBmeOBkQ0KK+OBleOBn+OBkSzjgZfjgpPjgZgNCivjgZXjgYTjgajjgYYs44G+44KC44KLDQor44G/44KE44GOLOOBsuOCjeOBlw0KK+OBn+OBi+OBl+OBvizjgZHjgYTjgZgNCivjgYvjgbDjgoQs44Gy44KN44G144G/DQor44GE44GX44GW44GNLOOBl+OCk+OBhOOBoQ0KK+OBi+OBjOOChCzjgojjgYbjgYTjgaENCivjgZPjgZ/jgass44Gf44GP44KC44KKDQor44GT44GZ44GgLOOChOOBmeOBguOBjQ0KK+OBhOOBmOOCiizjgobjgZ/jgYsNCivjgb7jgovjgoTjgb4s44Gf44G/44KEDQor44GL44Gq44GELOOCiOOBl+OBig0KK+OChOOBjizjgb/jgaTjgZANCivjgbXjgZjjga4s44GV44Go44GXDQor44GT44Gn44KJLOOBvuOBleOBqA0KK+OBmeOBjuOBiizjgb7jgZXjgobjgY0NCivjgZnjgYzjga/jgoks44GT44GG44GE44GhDQor44GV44GE44Go44GGLOOBv+OBpOOChOOBmQ0KK+OBiuOBiyzjga/jgovjgoTjgZkNCivjgYTjgZfjgb7jgoss44GK44GV44KADQor44G/44KE44GW44GNLOOBk+OBhuOBnuOBhg0KK+OBr+OBvuOBrizjgb/jgaHjgYoNCivjgZPjgZ/jgZjjgb4s44KI44GX44Gu44KKDQor44Gf44GL44GX44G+LOOBguOBkeOBteOBvw0KK+OBpOOBi+OBoCzjgZvjgYTjgYTjgaENCivjgarjgYvjgoDjgoks44GL44Gk44G144G/DQor44Gf44GR44GgLOOBvuOBleOBruOCig0KK+OChOOBmeOCgOOCjSzjga/jgovjgbLjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44G144GY44GX44G+LOOBl+OBkuOBvuOBlQ0KK+OBiuOBi+OBoCzjgZ/jgZHjgZcNCivjgYLjgoQs44G/44Gk44G+44KLDQor44Gq44GL44KA44KJLOOBv+OBpOOBvuOCiw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgbLjgo0NCivjgZnjgYzjga/jgoks44GX44GS44Gf44GgDQor44KG44GC44GVLOOBkeOCk+OBmA0KK+OBhOOBl+OBhCzjgoDjga3jgojjgZcNCivjgYrjgYrjgY/jgbws44Gy44KN44Go44GXDQor44GK44GV44KPLOOBvuOBleOBn+OBkQ0KK+OChOOBvuOCguOBqCzjgb/jgY3jgYoNCivjgYTjgb7jgYTjgZrjgb8s44GL44Ga44Gy44GTDQor44GK44GL44GgLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgY/jgavjgYoNCivjgZ/jgarjgYss44GN44KI44GXDQor44Gq44GL44GuLOOBn+OBj+OBig0KK+OBiuOBiuOCguOCiizjgYvjgZrjgbLjgZMNCivjgoTjgb7jgoLjgags44GL44Ga44GKDQor44Gq44GM44GELOOChuOBjeOBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjga/jgosNCivjgbLjgY3jgaEs44Gy44GV44GXDQor44KE44G+44GgLOOBqOOBl+OBig0KK+OBpOOBi+OCguOBqCzjgaTjgajjgoANCivjgYTjga7jgYbjgYgs44G+44GV44GoDQor44GE44Gu44GG44GILOOBguOBjeOCiQ0KK+OBmeOBv+OBi+OCjyzjgYvjgYrjgosNCivjgbXjgY/jgaAs44GY44KF44KT44GE44GhDQor44KE44G+44KC44GoLOOBm+OBpOOBkw0KK+OBleOBhOOBqOOBhizjgobjgYbjgZMNCivjgYvjgpPjgbAs44KI44GX44G/44GkDQor44GV44KJ44GELOOBvuOBleOBguOBjQ0KK+OBleOBi+OBjSzjgZfjgofjgYbjgZgNCivjgoTjgZnjgYQs44Gf44GL44GXDQor44GL44G/44KA44KJLOOBn+OBi+OBlw0KK+OBm+OBuSzjgojjgZfjgZ/jgYsNCivjgojjgZfjgaAs44Go44GX44GL44GaDQor44Gq44GM44GbLOOBn+OBoOOBlw0KK+OBteOBj+OBoSzjgYTjgZrjgb8NCivjgbXjgY/jgaAs44GYDQor44Gu44Gq44GLLOOBruOBtuOBsuOBkw0KK+OBhOOBvuOBoCzjgb7jgZXjgbLjgo0NCivjgavjgZfjgYvjgo8s44G+44GZ44GTDQor44GT44KE44GuLOOBsuOBp+OBig0KK+OBquOBi+OBluOCjyzjgYLjgY3jgYoNCivjgYrjgYzjgo8s44Gf44GL44GXDQor44Gq44GL44KE44G+LOOBr+OCi+OBsuOBlQ0KK+OBrOOBruOBi+OCjyzjgZHjgYTjgZMNCivjgZ3jga0s44G144G/44GKDQor44G/44Ge44GQ44GhLOOChuOBjeOBig0KK+OBk+OBsOOChOOBlyzjgYTjgo/jgYoNCivjgojjgZfjgb7jgaQs44G+44GV44GKDQor44GK44GK44Gv44KJLOOBvuOBleOBiuOBvw0KK+OChOOBvuOBoCzjgZfjgpPjgZgNCivjgb/jga7jgZDjgaEs44KI44GX44Gu44KKDQor44GX44KT44KB44KTLOOBn+OBi+OBteOBvw0KK+OBruOBmyzjgb7jgZXjgYoNCivjgYTjgo/jga/jgZcs44KK44KH44GG44GE44GhDQor44GC44GL44GELOOBn+OBkeOBlw0KK+OBpOOBn+OCguOBqCzjgb7jgZXjga/jgosNCivjgarjgYvjgoLjgags44G/44Gu44KLDQor44GP44Gg44Gq44G/LOOBvuOBleOChuOBjQ0KK+OBhOOBoeOBoCzjgZ/jgYvjgZcNCivjgoTjga4s44GI44GE44GYDQor44G+44Gk44GNLOOBjeOBv+OBig0KK+OBleOBleOBjSzjgojjgZfjgZfjgZINCivjgbXjgovjga4s44GL44GK44KLDQor44G144GY44GfLOOBguOBjeOCiQ0KK+OBhOOBruOBhuOBiCzjgb/jganjgooNCivjgZ/jgoQs44G/44Gk44KE44GZDQor44G/44KE44GW44KPLOOBn+OCjeOBhg0KK+OCj+OBn+OBquOBuSzjgojjgYbjgZMNCivjgYLjgY/jga0s44Go44GX44KN44GGDQor44G744GX44GuLOOBl+OCk+OBhOOBoQ0KK+OCiOOBl+OBoCzjgYvjgZrjgYoNCivjgYbjgYjjgoDjgoks44Gu44G844KLDQor44GL44G/44KELOOBkeOCk+OBmA0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgYLjgpPjganjgYYs44Gf44GL44Gv44KLDQor44Go44KI44GE44Ga44G/LOOBqOOBl+OBig0KK+OBj+OCj+OBqizjga7jgorjgZMNCivjgavjgYTjgb8s44GL44Gk44GXDQor44G/44GG44KJLOOBiuOBleOCgA0KK+OBruOCgOOCiSzjgYLjgY3jgokNCivjgYrjgYvjgaAs44GY44KF44KTDQor44GC44GV44Gs44G+LOOBi+OBmuOBsuOCjQ0KK+OBleOBleOBiizjgbLjgafjgobjgY0NCivjgYTjgarjgYzjgY0s44G+44GV44GoDQor44GZ44GM44KP44KJLOOBleOBqOOBlw0KK+OBl+OCh+OBhuOBmCzjgZ/jgZHjgZXjgaANCivjgZ/jgYzjgo8s44G/44Gu44KLDQor44Gd44GMLOOBruOBtuOBqOOCgg0KK+OBl+OCh+OBhuOCjyzjgY3jgojjgb8NCivjgb7jgaTjgYvjgo8s44Gy44KN44KG44GNDQor44GX44KC44KA44KJLOOChuOBhuOBmA0KK+OCj+OBn+OBquOBuSzjgarjgYrjgobjgY0NCivjgZPjgbDjgoTjgZcs44GX44KT44GYDQor44GE44GE44GgLOOBk+OBhuOBhOOBoQ0KK+OBteOBj+OCguOBqCzjgZHjgpPjgYTjgaENCivjgoDjgonjgoTjgb4s44Gy44KN44GNDQor44G744KKLOOBvuOBleOBguOBjQ0KK+OChOOBvuOBrizjgbLjgafjgYoNCivjgavjgZfjgo/jgY0s44KI44GG44GYDQor44G+44Gk44GKLOOBvuOBleOBqg0KK+OBiuOBi+OCguOBqCzjgb7jgZPjgagNCivjgYrjgYrjgZXjgY0s44GR44KT44GE44GhDQor44GG44KB44KC44GoLOOBquOBiuOBteOBvw0KK+OBiuOBi+OCgOOCiSzjgYLjgZ/jgosNCivjgZPjgYTjgZEs44GT44GG44Gb44GEDQor44GK44GK44Gf44GrLOOBvuOBleOBguOBjQ0KK+OBi+OBn+OBiuOBiyzjgb7jgZXjgY0NCivjgYrjgYvjgaAs44GX44Gh44KN44GGDQor44G144GP44GX44G+LOOCiOOBl+OBig0KK+OBiOOBoOOBquOBiyzjgoTjgZnjga7jgooNCivjgZnjgZrjgY0s44GX44GS44KLDQor44GE44Gh44GL44KPLOOBm+OBhOOBhOOBoQ0KK+OBj+OCjeOBi+OCjyzjgY3jgojjgZcNCivjgZXjgajjgYYs44GN44KI44Gy44GVDQor44GK44GK44GV44KPLOOBi+OBmuOBsuOBkw0KK+OCguOBoeOBmuOBjSzjgZnjgYjjgbLjgo0NCivjgoTjgb7jgZfjgZ8s44GR44GE44GE44Gh44KN44GGDQor44GE44Gh44GL44KPLOOBn+OBi+OBlw0KK+OBteOBi+OBluOCjyzjgYvjgZrjgbsNCivjgY/jgbzjgZ8s44Gu44G244GKDQor44Gr44GX44KA44KJLOOBk+OBhuOBmA0KK+OBreOBjuOBlyzjgbLjgZXjgobjgY0NCivjgZPjgpPjgaks44GR44KT44GYDQor44G144KL44KELOOBv+OBpOOBjg0KK+OBk+OBsOOChOOBlyzjgZ/jgaTjgYoNCivjgZ/jgoDjgoks44Gy44KN44Gy44GTDQor44G/44Gk44Gv44GXLOOBoOOBhOOBr+OBoeOCjeOBhg0KK+OBj+OBvuOBluOCjyzjgYvjgaTjgb8NCivjgoTjgb7jgaAs44KI44GX44GKDQor44Gy44KN44GkLOOBi+OBmuOBv+OBpA0KK+OBi+OBreOBoCzjgobjgZ/jgYsNCivjgYLjgZ0s44KG44GN44GKDQor44GI44Gz44Gv44KJLOOBjeOBhOOBoQ0KK+OChOOBmeOBhCzjgY/jgavjgYoNCivjgZnjganjgYYs44Gy44KN44GTDQor44KE44Gv44GfLOOBvuOBleOBruOCig0KK+OBleOBi+OBhCzjgajjgoLjgbLjgo0NCivjgZXjgYws44KI44GX44GKDQor44KE44G+44GW44GNLOOBiOOBv+OBkw0KK+OBquOBi+OCgOOCiSzjgojjgYbjgZMNCivjgYTjgZbjgo8s44Gy44KN44Gh44GLDQor44GC44KJ44GELOOBkeOCk+OBhOOBoQ0KK+OBhuOBtuOBi+OBnyzjgZXjgaDjgb8NCivjgo/jgZ/jgazjgY0s44Gf44Gg44KG44GNDQor44Gy44GX44GfLOOBruOBvOOCiw0KK+OBi+OBqOOBhizjgobjgYbjgZMNCivjgoTjgb7jga0s44KI44GX44GoDQor44KE44G+44GX44GfLOOBsuOCjeOBlw0KK+OBruOCgOOCiSzjgojjgZfjgo3jgYYNCivjgoTjgarjgYQs44G+44GV44KG44GNDQor44KA44KJ44GL44G/LOOBvuOBleOBv+OBoQ0KK+OBguOBiuOBjSzjgYLjgY3jgokNCivjgoTjgZfjgo0s44GZ44GZ44KADQor44GC44GV44G+LOOBvuOBleOBsuOCjQ0KK+OBiuOBj+OBoCzjgbXjgb/jgYoNCivjgYTjgZfjgbDjgZcs44KG44GG44GYDQor44G/44Gq44G/44GnLOOBsuOBp+OBguOBjQ0KK+OBhOOBrOOBmuOBiyzjgZPjgYbjgbjjgYQNCivjgajjgY3jgo8s44KI44GX44Gv44KLDQor44G/44GG44KJLOOChOOBmeOBruOBtg0KK+OBvuOBtuOBoSzjgajjgZfjga/jgosNCivjgYrjgbDjgoks44Gy44KN44KG44GNDQor44G+44Gk44GNLOOBsuOCjeOBlw0KK+OBiOOBkOOBoSzjgZHjgpPjgYTjgaENCivjgYrjgYrjgb8s44Gf44GR44GXDQor44KP44Gf44Gq44G5LOOBn+OBkeOBlw0KK+OBguOCieOBi+OCjyzjgZfjgpPjgZgNCivjgZnjgYzjga4s44GC44GN44KJDQor44KE44GZ44GELOOBk+OBhuOBuOOBhA0KK+OBv+OChOOCguOBqCzjgbLjgo3jgoTjgZkNCivjgbXjgZjjgY7jgo8s44GT44GG44GE44GhDQor44GN44Gf44GM44KPLOOBv+OBjeOBig0KK+OBn+OBq+OBkOOBoSzjgb/jgaTjgosNCivjgZPjgZjjgb4s44KI44GX44GC44GNDQor44GC44G+44GL44KPLOOChuOBn+OBiw0KK+OBiuOBiuOBrOOBjSzjgobjgZ/jgYsNCivjgZ/jgarjgbks44GT44GG44GYDQor44G+44KL44Gv44GXLOOBhOOBleOBig0KK+OChOOBqeOChCzjgZjjgoXjgpPjgYTjgaENCivjgYrjgYrjgYzjgY8s44KI44GX44Gy44KNDQor44GV44GL44GfLOOBk+OBhuOBuOOBhA0KK+OBr+OCiSzjgbLjgafjgb8NCivjgZ/jgYvjgY4s44Gy44Gn44GKDQor44GC44GE44Gv44KJLOOBguOBjeOCiQ0KK+OBiuOBiuOBnyzjgajjgYrjgosNCivjgYLjgY3jgoTjgb4s44KI44GX44Gy44KNDQor44GX44G/44GaLOOBn+OBi+OBig0KK+OBk+OBsOOChOOBlyzjgYrjgZXjgbXjgb8NCivjga/jgZ/jgoLjgags44GR44KT44GYDQor44GG44GZ44GgLOOBn+OBi+OBruOBtg0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgarjgYvjgYzjgo8s44Gm44Gk44GKDQor44G+44Gk44Gw44KJLOOBr+OCi+OBig0KK+OBj+OBrOOBjizjgobjgZ/jgYsNCivjgYrjgYzjgo8s44KI44GX44GKDQor44Gk44GYLOOBi+OBmuOBn+OBiw0KK+OBi+OCj+OBhCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZnjgYzjgo/jgoks44GX44KF44GG44GE44GhDQor44KA44Go44GGLOOBi+OBmuOBig0KK+OBiuOBsOOCiSzjgoTjgZnjgajjgZcNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GL44G244KJ44GNLOOChuOBjeOBig0KK+OCj+OBi+OBn+OBuSzjgaTjgajjgoANCivjgYrjgYzjgo8s44GT44GG44GX44KN44GGDQor44GE44KP44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBquOCiuOBnyzjgYrjgZXjgoANCivjgYLjgY3jgoTjgb4s44Gf44GL44GXDQor44G/44Gk44GELOOBkeOBhOOBhOOBoQ0KK+OBiOOCk+OBqSzjgobjgZ/jgYsNCivjgojjga3jgZ8s44GC44GN44GKDQor44GC44GK44GELOOBjeOCiOOBlw0KK+OBiuOBi+OCguOBqCzjgojjgZfjgbLjgZUNCivjgYrjgYrjgaTjgYss44GX44KT44GE44GhDQor44G144GP44KC44KKLOOBleOBi+OBiA0KK+OBpuOBl+OBvizjgYvjgZrjgb7jgZUNCivjga/jgb4s44Gy44Gn44GNDQor44KI44GX44GgLOOBr+OBmOOCgQ0KK+OBi+OCj+OBuSzjgojjgZfjga/jgosNCivjgZ/jgarjgYss44KE44GZ44Gu44KKDQor44Gf44GL44Gv44GXLOOBjeOCh+OBhuOBhOOBoQ0KK+OBn+OBquOBuSzjgbXjgb/jgYLjgY0NCivjgYLjgZ0s44Gy44KN44GE44GhDQor44Gf44GL44GgLOOBsuOCjeOBlw0KK+OBv+OChOOBrizjgajjgZfjgYoNCivjgYbjgYjjgZrjgb8s44Gy44Go44GXDQor44GE44Gh44GL44KPLOOChOOBmeOBguOBjQ0KK+OBguOBleOCjyzjgajjgoLjgbXjgb8NCivjgYTjgarjgoLjgags44GL44Ga44GKDQor44KC44KK44KELOOBsuOBqOOBlw0KK+OBquOBi+OBn+OBqyzjgZHjgpMNCivjgb/jgoTjgoLjgags44GE44Gh44Ge44GGDQor44G/44GP44GrLOOBiOOBhOOBhOOBoQ0KK+OBjeOBn+OCgOOCiSzjgZ/jgaDjgb7jgZUNCivjgoTjgZ/jgbks44G+44GV44Gy44GnDQor44Gq44GM44GL44KPLOOCiuOCh+OBhuOBhOOBoQ0KK+OChOOBqizjgYvjgZrjgYoNCivjgZXjgY/jgb4s44G/44Gk44KLDQor44GC44KJ44GELOOBqOOBl+OBig0KK+OBl+OBvuOBoCzjgarjgYrjgZMNCivjgabjgZrjgYss44GX44KF44KT44GE44GhDQor44GG44GI44GuLOOBl+OCheOCk+OBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYrjgYrjgY/jgo/jgaAs44G+44Gq44G2DQor44KI44GT44KE44G+LOOCiOOBl+OBiuOBvw0KK+OCj+OBn+OBquOBuSzjgojjgYbjgYTjgaENCivjgavjgZfjgoDjgoks44GC44GN44Gu44KKDQor44Gf44GL44G+44GkLOOBk+OBhuOBhOOBoQ0KK+OBq+OBl+OCgOOCiSzjgZ/jgaTjgb4NCivjgYTjgaHjgY0s44Gy44KN44GXDQor44GE44KP44GX44GfLOOBruOBtuOBpOOBqg0KK+OBiuOBrizjgajjgZfjgYoNCivjgavjgZfjgY0s44Gf44Gk44GKDQor44GV44KPLOOBi+OBmuOBig0KK+OBn+OBi+OBvyzjgYrjgZXjgoANCivjgoTjgZnjgbXjgY8s44GR44KT44GYDQor44GK44GK44GfLOOBsuOCjeOBlw0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgb7jgZUNCivjgZXjgYvjgYQs44KE44GZ44GKDQor44G144GY44KC44GoLOOBqOOBjeOBig0KK+OBvuOBpOOCguOBqCzjgZfjgZLjga7jgooNCivjgYrjgYrjgoTjgbYs44GL44Ga44KEDQor44Gr44GX44KA44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBu+OCiuOBhuOBoSzjgZHjgYTjgYTjgaENCivjgYTjgZfjgoLjgags44GX44KF44GG44GE44GhDQor44G+44Gk44KC44GoLOOBquOCiuOBig0KK+OBn+OBkeOBhuOBoSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoLjgajjgoTjgb4s44GT44GG44GX44KN44GGDQor44KI44GX44Gq44GMLOOBk+OBhuOBmA0KK+OBteOCi+OBi+OCjyzjgb/jgaHjgYoNCivjgZ/jgavjgZDjgaEs44KI44GX44GKDQor44Gf44GR44GT44GXLOOBvuOBleOBqOOBlw0KK+OBpOOCgOOCiSzjgZPjgYbjgZvjgYQNCivjgYrjga4s44GX44GS44GKDQor44GK44GL44KC44GoLOOBleOBqOOBlw0KK+OBteOCi+OBnyzjgb7jgZXjgbLjgo0NCivjgavjgZfjga4s44Gd44GG44GE44Gh44KN44GGDQor44G/44Ga44Gf44GrLOOBsuOCjeOChuOBjQ0KK+OBk+OChOOBvizjgbLjgZXjgZcNCivjgY3jgY/jgaEs44GR44KT44GE44GhDQor44GK44GK44GT44GG44GhLOOBvuOBleOBguOBjQ0KK+OBi+OCj+OBnyzjgZ/jgYvjgZcNCivjgY/jga/jgoks44KI44GX44KG44GNDQor44G144KL44Gv44GXLOOBk+OBhuOBnuOBhg0KK+OBn+OBi+OCiOOBlyzjgbXjgb/jgajjgogNCivjgYvjgZks44Gu44G244KG44GNDQor44GC44G/44KC44GoLOOBmeOBmeOCgA0KK+OCgOOBreOBqOOBhizjgajjgZfjgYoNCivjgb7jgaTjgoLjgags44GZ44GZ44KADQor44Gf44GL44Gq44GXLOOBvuOBleOBguOBjQ0KK+OBguOBjeOBnyzjgajjgZfjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44G/44GhDQor44Gq44GM44GELOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjgaTjgYvjgZUNCivjgb7jgaTjgoLjgags44KE44GZ44GC44GNDQor44Go44GP44GgLOOBv+OBoeOBig0KK+OBsuOCieOBhCzjga7jgZ7jgoANCivjgYrjgY/jgZfjgb4s44Gf44GL44GXDQor44G+44GX44GfLOOBl+OBkuOBig0KK+OChOOBvuOBoCzjgY3jgb/jgbLjgo0NCivjgZXjgY/jgonjgYQs44Go44KC44GKDQor44Gf44GN44GW44KPLOOBleOBqOOBlw0KK+OBvuOBmeOBkyzjgobjgYbjgZgNCivjgZfjgpPjgYvjgo8s44Gy44KN44GIDQor44GK44GK44Gf44GrLOOBn+OBoOOBsuOCjQ0KK+OBi+OCj+OBrizjgojjgZfjgb/jgaQNCivjgYLjgonjgYvjgo8s44Gm44Gk44GKDQor44GC44Gg44GhLOOBn+OBi+OChuOBjQ0KK+OBhuOBoeOBoCzjgZHjgpPjgZgNCivjgZPjga/jgoks44Go44GX44Gy44GTDQor44GK44GK44Gv44GXLOOBi+OBmuOBsuOBkw0KK+OBi+OCgeOBiuOBiyzjgojjgZfjgYoNCivjgb/jgoDjgoks44Go44G/44GKDQor44GE44GNLOOCiOOBng0KK+OBguOBl+OBmuOBiyzjgbLjgo3jgZcNCivjgoTjgb7jgoLjgags44Gy44KN44Gu44KKDQor44KI44GX44GgLOOBiuOBleOCgA0KK+OBr+OCieOBiuOBiyzjgYvjgaTjgoTjgZkNCivjgYbjgovjgo/jgZcs44Gy44KN44GXDQor44GK44KT44GgLOOBkeOCk+OBmA0KK+OBhOOCk+OBqSzjgb7jgZXjgYoNCivjgZ/jgZHjgarjgYss44G+44GV44Go44GXDQor44G144GY44GV44KPLOOBvuOCguOCiw0KK+OBiuOBiuOCguOCiizjgb7jgZXjgobjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44GX44KH44GG44GYLOOCiOOBl+OBruOCig0KK+OBjeOBn+OBmOOBvizjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44GC44GN44KJDQor44Gy44KJ44GKLOOBi+OBmuOBn+OBiw0KK+OBmeOBv+OCguOBqCzjga7jgbbjgoQNCivjgarjgYvjgZ/jgass44Gy44KN44GXDQor44GC44KJ44GX44G+LOOChuOBjeOBig0KK+OBi+OBn+OChOOBvizjgobjgY3jga7jgbYNCivjgYbjgYjjgaAs44G+44GV44Gy44KNDQor44G144GY44KC44GoLOOBsuOCjeOBteOBvw0KK+OChOOBvuOBr+OBnyzjgorjgoXjgYbjgZgNCivjgYrjgYrjgZ/jgass44Gk44Go44KADQor44GE44GE44Gs44G+LOOCiOOBl+OBsuOCjQ0KK+OBquOBjOOBleOCjyzjgojjgZfjgo3jgYYNCivjgoTjgZnjgaAs44GX44KF44GG44GYDQor44G144GP44GX44G+LOOCiuOCh+OBhuOBhOOBoQ0KK+OBleOBi+OBjeOBsOOCiSzjgYLjgoTjgZMNCivjgYvjgajjgYYs44Gf44GL44GXDQor44KI44GT44GW44KPLOOBteOBv+OBn+OBiw0KK+OBi+OBqeOBrizjgYvjgZrjgb8NCivjgoTjgb7jgYrjgYss44GN44KI44GXDQor44GL44G/44Gf44GrLOOBsuOCjeOBjQ0KK+OBi+OBqOOBhizjgYjjgaTjgo3jgYYNCivjga7jgoLjgags44Go44GX44GL44GaDQor44GZ44GO44KC44GoLOOBm+OBhOOBhOOBoQ0KK+OBteOBmOOBrizjgZPjgYbjgZgNCivjgYTjga7jgYbjgYgs44GX44KH44GG44GYDQor44Gv44GbLOOBvuOBleOBi+OBpA0KK+OCguOCiizjgYjjgonjgbYNCivjgYvjgo/jgbDjgZ8s44Gy44Gn44GKDQor44GL44KP44Ge44GILOOBl+OCh+OBhuOBhOOBoQ0KK+OBr+OBl+OCguOBqCzjgaDjgYTjgZfjgpMNCivjgbLjgo3jgb7jgZUs44KE44GZ44Gy44KNDQor44GN44GX44KC44GoLOOBj+OBq+OBig0KK+OBsuOCieOBpOOBiyzjgb/jga7jgosNCivjgYbjgYjjgaAs44KI44GX44KG44GNDQor44GC44KJ44GELOOBqOOBl+OBsuOBkw0KK+OBhOOBhOOBoCzjgb7jgZXjgobjgY0NCivjgbLjgo3jgZfjgb4s44GX44KH44GG44Ge44GGDQor44GE44GV44GLLOOBi+OBpOOBsuOCjQ0KK+OBmeOBmuOBjSzjgojjgZfjgYoNCivjgY/jgonjgoLjgaEs44Gf44GL44GKDQor44GV44GE44Go44GGLOOBvuOBleOBig0KK+OBmeOBmuOBjSzjgb/jgaTjgZANCivjgbXjgYvjgoQs44Gm44Gk44GYDQor44GV44GL44GELOOBqOOBl+OCjeOBhg0KK+OBiuOBiuOCj+OBoCzjgajjgZfjgYoNCivjgYvjgoHjgoQs44GL44Gk44G/DQor44GP44GV44GG44KJLOOBqOOBl+OBig0KK+OCj+OBoCzjgYvjgZrjgYoNCivjgZTjgajjgYYs44GN44KH44GG44GE44GhDQor44Gy44KJ44G144GPLOOBguOBjeOCiQ0KK+OCguOCjeOChCzjgbLjgafjgajjgZcNCivjgYTjgZHjgaAs44GV44Gg44KG44GNDQor44G+44GZ44GgLOOBvuOBleOBr+OCiw0KK+OBv+OBmuOBrizjgajjgZfjgZ/jgYsNCivjga/jgoTjgZcs44GN44KI44Go44GXDQor44GC44GK44GNLOOBqOOBl+OBsuOBkw0KK+OBk+OBsOOCiizjgb7jgZXjgobjgY0NCivjgb/jgZXjgo8s44GV44G244KN44GGDQor44Gf44GL44GOLOOBpuOBpOOBig0KK+OBiOOCk+OBqSzjgZHjgpPjgYTjgaENCivjgZnjgYzjgZXjgo8s44Gb44GE44GYDQor44GK44KK44Gv44KJLOOBqOOCiOOBvw0KK+OBvuOBpOOBquOBjCzjgZ/jgYvjgbXjgb8NCivjgYvjgZXjgYQs44GN44KI44GC44GNDQor44Gb44KA44KJLOOBn+OBi+OBlw0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgYLjgY0NCivjgabjgonjgYvjgaks44KI44GX44KG44GNDQor44G144GY44GfLOOChOOBmeOBguOBjQ0KK+OBi+OCj+OBruOBuSzjgYvjgYTjgaENCivjgYLjgYrjgbAs44G+44GV44KLDQor44KA44KJ44KC44GoLOOChuOBjeOCiOOBlw0KK+OBpOOBvOOBhuOBoSzjgZ/jgYvjgZcNCivjgbXjgovjgZfjgofjgYYs44G144GY44GKDQor44GX44Gw44KE44G+LOOBteOBv+OBig0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgYbjgaHjgaAs44Gy44KN44G144G/DQor44G+44GI44GW44KPLOOBqOOBv+OBig0KK+OBk+OCgOOCiSzjgYLjgY3jga7jgbYNCivjgoTjgb7jgZXjgY0s44KI44GX44GYDQor44GG44GX44GNLOOBi+OBmuOBvw0KK+OBvuOBoeOChOOBvizjgZfjgofjgYbjgZgNCivjgbXjgZjjgazjgY0s44GZ44GZ44KADQor44Gq44GL44KA44KJLOOBvuOBpOOBvw0KK+OBj+OBmeOCguOBqCzjgabjgovjgYoNCivjgZnjgZrjgY0s44KI44GX44GKDQor44GG44GI44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBk+OBhOOBkSzjgbLjgo3jgZcNCivjga/jgZvjgYzjgo8s44G/44Gk44GC44GNDQor44G144KL44GL44KPLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOBoCzjgYLjgY3jgYoNCivjgobjga/jgonjgY4s44G/44Gk44KI44GXDQor44GK44GX44G+LOOBruOCiuOChuOBjQ0KK+OBneOBrSzjgb7jgZXjgbLjgo0NCivjgajjgYbjgb4s44GV44Gh44Gy44KNDQor44Gf44GL44Gv44GXLOOBl+OBmuOBig0KK+OBi+OBkeOBr+OBnyzjgb7jgZXjgYoNCivjgYTjgZfjgYQs44GX44GS44KLDQor44GV44Go44GGLOOBruOCiuOChuOBjQ0KK+OCgOOCieOChOOBvizjgZHjgpPjgZgNCivjgbvjgorjgZDjgaEs44G+44GT44GoDQor44Gq44GL44GW44GoLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgb7jgZPjgagNCivjgYvjga3jgZMs44KK44KF44GG44Ge44GGDQor44GL44GX44G+LOOBqOOBl+OBruOBtg0KK+OBqOOBkOOBoSzjgbLjgo3jgoANCivjgZPjgb/jgoTjgb4s44GN44G/44GC44GN44KJDQor44KE44G+44GK44GLLOOCiOOBl+OBruOBtg0KK+OBn+OBi+OBr+OBlyzjgZHjgYTjgYTjgaENCivjgoLjgorjgZ8s44GR44GE44GE44GhDQor44KI44GT44GELOOCiOOBl+OBruOBtg0KK+OBsuOCieOBhCzjgZHjgYTjgYTjgaENCivjgZfjgYTjgbDjgZcs44G+44GV44Gf44GRDQor44GL44Gt44GTLOOBvuOBleOBteOBvw0KK+OBquOBi+OBrSzjga7jgbbjga/jgosNCivjgZvjgY3jgZDjgaEs44Gm44Gk44GKDQor44G/44KC44KKLOOBn+OBi+OBsuOBkw0KK+OBjeOBj+OBoSzjgb7jgZXjgZ/jgYsNCivjgoTjgb7jgoLjgags44GL44Gk44GYDQor44GC44KJ44GL44KPLOOBn+OBi+OBig0KK+OBqOOCguOBj+OBqyzjgb7jgZXjgY0NCivjgajjgb/jgZ8s44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOBl+OCheOBhuOBuOOBhA0KK+OBqOOBjOOBlyzjga7jgbbjgYoNCivjgYvjgo/jgoDjgoks44Go44GX44Gy44KNDQor44G144GP44Gq44GMLOOBkeOBhOOBmA0KK+OBvuOBjeOBnyzjgajjgY/jgb8NCivjgZXjga4s44G/44Gu44KLDQor44GV44Go44KA44KJLOOBkeOBhOOBmA0KK+OBleOBi+OBrizjgZjjgoXjgpPjgoQNCivjgaTjgaHjga/jgZcs44GX44GS44GC44GNDQor44GG44GI44GuLOOBkeOCk+OBnuOBhg0KK+OBquOBi+OBjOOCjyzjgbLjgafjgYLjgY0NCivjgajjgY/jgarjgYws44GR44KT44GYDQor44GE44Go44GGLOOBi+OBmuOBig0KK+OBsuOBleOBvuOBpCzjgajjgojjgajjgZcNCivjgYrjgYrjgaTjgYss44GL44KB44GKDQor44GL44KP44KC44GoLOOBl+OBkuOBjQ0KK+OBruOCgOOCiSzjgojjgZfjgYTjgaENCivjgYvjga7jgYYs44KG44Gf44GLDQor44GG44GI44GV44GLLOOChuOBhuOBmA0KK+OBteOBmOOCj+OCiSzjgbLjgonjgYoNCivjgYrjgYzjgo8s44G+44GV44GoDQor44GP44KJ44GfLOOBqOOCguOBteOBvw0KK+OBr+OBquOBneOBqCzjgajjgojjgbXjgb8NCivjgavjgZfjgYvjgo8s44Gf44GL44KI44GXDQor44GI44Gz44GZLOOBsuOBp+OBig0KK+OChOOBmeOBruOCiizjgojjgZfjga/jgosNCivjgZXjgYvjgYQs44Gf44GR44GXDQor44G+44GI44GgLOOCiOOBl+OBguOBjQ0KK+OBteOBj+OBoCzjgZfjgZLjgZ/jgYsNCivjgoTjgb7jgoLjgags44G+44GV44Ga44G/DQor44GX44GK44GfLOOChOOBmeOBvuOBlQ0KK+OCgOOCieOBi+OBvyzjgajjgoLjgogNCivjgYTjgY/jgb8s44Gf44GL44GXDQor44Gq44GL44GOLOOChuOBvw0KK+OBqOOBj+OBvuOBpCzjgZ/jgYvjgYoNCivjgZ/jgavjgYQs44Go44GX44KG44GNDQor44GK44GK44KE44G+LOOBkeOCk+OBmA0KK+OBn+OBrizjgZ/jgYvjgaHjgbsNCivjgYrjgYrjgZ8s44Gy44KN44Gu44G2DQor44GP44G+44GuLOOBguOBjeOBig0KK+OBleOCj+OBkOOBoSzjgb7jgZXjgY/jgasNCivjgYLjgZXjga4s44GL44Ga44GKDQor44GV44GL44GQ44GhLOOBruOCiuOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgaTjgajjgoANCivjgYvjgajjgYYs44GL44Ga44GKDQor44G+44GI44GL44KPLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgYvjgZrjgYoNCivjgb7jgaTjgoLjgags44Go44GX44GKDQor44KE44G+44Gq44GLLOOBiOOBhOOBmA0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgbXjgZjjgZ8s44Gf44Gk44GKDQor44KE44GOLOOBvuOBleOBvw0KK+OBhOOCj+OBhCzjgb7jgZXjgZ/jgYsNCivjgbXjgY/jgZfjgb4s44Gy44Gn44G/DQor44G144KL44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBiuOBjOOBnyzjgb7jgZXjga7jgooNCivjgZnjgZrjgY0s44Gf44Gg44Gy44GTDQor44GX44GL44G+LOOBn+OBi+OBlw0KK+OBjeOBl+OCguOBqCzjgZfjgoXjgpPjgYTjgaENCivjgZPjgo3jgY4s44GL44Gk44G/DQor44G144Gf44G/LOOBjeOCiOOBlw0KK+OChOOBl+OCjSzjgajjgZfjgYoNCivjga/jgorjgYTjgZEs44KI44GX44Gv44KLDQor44GX44KA44KJLOOBguOCiuOBvuOBlQ0KK+OBquOBjOOBj+OCiSzjgYTjgaHjgo3jgYYNCivjgb/jgarjgb8s44GT44GG44GYDQor44Go44GP44Gq44GMLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgbXjgY/jgoANCivjgabjgonjgZXjgY0s44GX44KN44GGDQor44GL44Go44GGLOOBqOOBiuOCiw0KK+OBv+OBmuOBrizjgojjgZfjgYLjgY0NCivjgZ/jgoLjgags44Gy44Go44GXDQor44GG44Gh44GgLOOBsuOCjeOBi+OBmg0KK+OBn+OBkeOBhOOBoSzjgojjgZfjgobjgY0NCivjgbLjgbPjga4s44Gy44KN44GXDQor44GT44Gw44KE44GXLOOCiuOCh+OBhuOBuOOBhA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZ/jgaANCivjgbXjgYvjgaAs44G+44GV44Gy44KNDQor44GE44GX44Gf44GrLOOBi+OBmuOBsuOBlQ0KK+OBhOOBpyzjgojjgZfjgobjgY0NCivjgavjgYTjgZXjgags44G+44GV44KG44GNDQor44GZ44Gq44Gv44KJLOOBl+OCh+OBhuOBmA0KK+OBl+OBv+OBmizjgb7jgZXjgYoNCivjgYvjgajjgYYs44Gu44KK44KG44GNDQor44Gq44GE44Go44GGLOOBmOOCheOCk+OBmA0KK+OBk+OBhOOBkSzjgajjgYbjgZnjgZENCivjgY3jgZ/jgoDjgoks44Go44KI44Gy44GTDQor44GL44GM44KPLOOBqOOBl+OChuOBjQ0KK+OBhOOBkeOBoCzjgZ/jgYvjgZcNCivjgYvjga7jgYYs44Gf44GL44GXDQor44GK44GL44KC44GoLOOBneOBhuOBmA0KK+OBk+OBsOOChOOBlyzjgZXjgaDjgbLjgo0NCivjgYTjgZfjgYQs44G+44GV44Gy44KNDQor44GV44GI44GNLOOBvuOBmeOChuOBjQ0KK+OBleOCj+OBoCzjgZ/jgYvjgZcNCivjgZTjgajjgYYs44Gu44G244KG44GNDQor44GK44GuLOOBvuOBleOBsuOCjQ0KK+OBteOBquOBiuOBiyzjgb7jgZXjgYLjgY0NCivjgZfjgpPjgoQs44G+44GV44GL44GaDQor44G744KT44GW44KPLOOBsuOBi+OCiw0KK+OChOOBvuOBhuOBoSzjgZfjgZLjgZgNCivjgYTjgZfjga4s44Gk44Go44KADQor44GE44GK44GPLOOBsuOBp+OBqOOBlw0KK+OBguOCieOBjSzjgojjgYbjgZMNCivjgbXjgZjjgo/jgY0s44G/44Gu44KLDQor44GE44Gh44KA44KJLOOBvuOBleOBjQ0KK+OBr+OChOOBlyzjgojjgZfjgZXjgaANCivjgoLjgoos44Gf44GP44GYDQor44GN44KA44KJLOOBl+OBkuOCiw0KK+OChuOBjeOBteOBjSzjgb7jgZXjgbLjgZUNCivjga/jgY7jgoLjgags44GE44KP44GKDQor44Gv44GX44KC44GoLOOBsuOBp+OBig0KK+OBjeOBn+OChOOBvizjgojjgZfjgabjgosNCivjgbXjgZjjgoLjgoos44GR44KT44GYDQor44GK44GP44GuLOOBiuOBleOCgA0KK+OChOOBvuOBoCzjgb/jgaTjgYoNCivjgZ/jgZQs44Gf44GL44GXDQor44GC44GV44GELOOCiOOBl+OBsuOCjQ0KK+OCguOCiuOBrizjgbLjgo3jgZcNCivjgb/jgarjgYQs44GR44GE44GTDQor44KC44KK44GV44KPLOOBqOOCiOOBkw0KK+OBquOCiuOBleOCjyzjgbXjgb/jgZMNCivjgoLjgorjgoLjgags44G+44GV44KLDQor44GT44Gw44KE44GXLOOCiOOBl+OBruOCig0KK+OBl+OBvuOBoCzjgbLjgafjgY0NCivjgZnjgZrjgY0s44G/44GV44GTDQor44G144GP44GgLOOBkeOBhA0KK+OBguOCieOBhCzjgYLjgY3jga7jgbYNCivjgZ/jgavjgoTjgb4s44GX44KF44GG44GE44GhDQor44GK44GL44KC44GoLOOBvuOBpOOBig0KK+OBoOOBhOOCguOCkyzjgb/jga7jgosNCivjga/jgoTjgZcs44KI44GX44Gq44GKDQor44GE44GX44GgLOOBteOBj+OBig0KK+OBsuOCjeOBleOCjyzjgojjgZfjgb/jgaENCivjgojjgZfjgYrjgYss44G+44GV44Ga44G/DQor44G+44Gk44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBmOOBvizjgZXjgYvjgYgNCivjgY3jgZ8s44GV44Gq44GIDQor44Gr44GX44KA44KJLOOBl+OBkuOBi+OBmg0KK+OBr+OBo+OBqOOCiizjgbLjgafjgYoNCivjgoTjgb7jgoLjgags44GL44Ga44GKDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBjeOBn+OCgOOCiSzjgb7jgZnjgb8NCivjgZ/jgarjgYss44Go44G/44GKDQor44GE44GK44GNLOOBqOOBv+OChOOBmQ0KK+OBi+OBvuOBnyzjgZPjgYbjgZgNCivjgZfjgb/jgZos44Gy44KN44GXDQor44G+44GZ44GK44GLLOOBsuOBp+OBig0KK+OBleOCj+OBoCzjgZfjgofjgYbjgZMNCivjgarjgYvjgYTjgZcs44Gf44GR44KG44GNDQor44KP44Gf44Gq44G5LOOBvuOBleOBsuOCjQ0KK+OCiOOBl+OBluOCjyzjgYLjgY3jgYoNCivjgZXjgZXjgYrjgYss44Gu44KK44GC44GNDQor44KE44G+44GQ44GhLOOBqOOBl+OBig0KK+OBhOOBvuOBteOBjyzjgZ/jgaDjgZcNCivjgYvjgb/jgoQs44Go44G/44GIDQor44KP44GVLOOBsuOBp+OBig0KK+OBjeOBj+OBoSzjgYLjgY3jgbLjgZMNCivjgYbjgYvjgYQs44G/44GN44GKDQor44GE44KP44G+LOOBm+OBhOOBhOOBoQ0KK+OBpOOBmCzjgbbjgpPjgZgNCivjgZ/jgZHjgaAs44GV44Gg44Gk44GQDQor44Gb44Go44GM44KPLOOBl+OBkuOBqOOBlw0KK+OBk+OBl+OCgOOCiSzjgb7jgZXjgZcNCivjgo/jgZ/jgarjgbks44GY44KF44KT44GE44GhDQor44GG44GV44G/LOOBv+OBpOOBruOBtg0KK+OBiuOBi+OBoCzjgajjgZfjgbLjgZMNCivjgbXjgZjjgo/jgoks44GX44KH44GG44GYDQor44GL44Go44GGLOOChOOBmeOChuOBjQ0KK+OBhOOBl+OBr+OCiSzjgb7jgZXjgosNCivjgbLjgarjgZ8s44GN44KH44GG44G444GEDQor44GG44GI44GZ44GOLOOBl+OBkuOBsuOCjQ0KK+OBl+OBsOOBnyzjga7jgbbjgYvjgZoNCivjgYrjgY/jgaAs44G+44GV44KLDQor44GZ44Gq44KE44G+LOOCiOOBl+OBig0KK+OBhOOBvuOBhCzjgYLjgY3jgbLjgZMNCivjgarjgYvjgoDjgoks44Gu44G244GKDQor44Gq44GL44KC44KKLOOBk+OBhuOBmA0KK+OBteOBi+OBleOCjyzjgoDjga3jgbLjgZUNCivjgb/jgZrjgZ8s44GX44KT44GE44GhDQor44GK44GuLOOBi+OBmuOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZcNCivjgZfjgoXjganjgYYs44G/44Gu44KLDQor44G144GP44GELOOBn+OBpOOBsuOBkw0KK+OBruOBoCzjgYvjgarjgYgNCivjgYrjgYrjga4s44Gv44KL44GNDQor44GT44GM44G/LOOCiOOBl+OBvuOBlQ0KK+OBv+OBjSzjgb7jgZXjgobjgY0NCivjgYTjgZHjgaAs44G144G/44GKDQor44G144GY44KC44KKLOOBqOOBl+OBsuOBkw0KK+OBn+OBi+OBoCzjgYvjgZrjgYoNCivjgYTjgZHjgaAs44Gu44G244Ge44GGDQor44GE44Go44GGLOOBruOBtuOBn+OBiw0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgo0NCivjgZXjgo/jgaAs44G+44GV44G144G/DQor44G+44GI44GY44G+LOOBvuOBk+OBqA0KK+OBhOOBquOCgOOCiSzjgZnjgZnjgoANCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44Gq44GL44GY44G+LOOBl+OBruOBtg0KK+OBhOOCj+OBvizjgojjgZfjgobjgY0NCivjgo/jgYvjgaTjgY0s44Gy44Gn44GNDQor44Gv44Gb44GM44KPLOOCiOOBl+OCjeOBhg0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgZcNCivjgYvjgZXjga/jgoks44GT44GG44GYDQor44Gr44GX44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBmeOBqeOBhizjgZjjgoXjgpPjgYTjgaENCivjgYrjgYvjgbks44Go44GX44Gy44KNDQor44G144GP44GwLOOBkeOCk+OBmA0KK+OBvuOBpOOBquOBjCzjgoTjgZnjgYoNCivjgZXjgYvjgYQs44Gy44KN44Gy44GTDQor44G144GY44GfLOOChuOBjeOBig0KK+OBquOBi+OChOOBvizjgZ/jgYvjgoTjgZkNCivjgojjga3jgaAs44GR44KT44Ge44GGDQor44GP44G+44GfLOOBk+OBhuOBhOOBoQ0KK+OBk+OChOOBvizjgbLjgo3jgobjgY0NCivjgojjga3jgoTjgb4s44Gf44GR44GXDQor44G144GY44GL44KPLOOBkeOCk+OBmA0KK+OBr+OCiuOBjOOChCzjgbLjgo3jgYLjgY0NCivjga/jgZvjgYzjgo8s44GL44Ga44Gy44GoDQor44KI44GX44GgLOOBn+OBoOOBlw0KK+OBj+OBmeOBruOBjSzjgojjgZfjgbXjgb8NCivjgZ/jgYvjga/jgZcs44GV44Gh44GTDQor44Gq44GM44GfLOOBl+OCk+OBmA0KK+OBneOBruOBj+OCiSzjgbLjgo3jgZcNCivjgb7jgZnjgoLjgags44KI44GX44GKDQor44GK44GO44Gv44KJLOOBsuOCjeOBlw0KK+OCiOOBl+OBoCzjgb7jgarjgbYNCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44GI44GgLOOBm+OBhOOBhOOBoQ0KK+OBquOBiyzjgZ/jgoLjgaQNCivjgYTjgYTjgZrjgYss44Gu44G844KLDQor44Gm44KJ44Gr44GXLOOBvuOBleOBruOBtg0KK+OBteOBj+OBhCzjgZvjgYTjgZgNCivjgafjgoDjgoks44GL44Ga44Gy44GTDQor44GV44GI44GNLOOBl+OBkuOBr+OCiw0KK+OBhuOBoeOBoCzjgbLjgafjga7jgooNCivjgZfjgYTjgaos44Gu44G244GKDQor44G144KL44KELOOCiOOBl+OBr+OCiw0KK+OBquOBjOOBj+OBvCzjgYrjgZXjgoANCivjgabjgonjgYbjgaEs44Gy44Gn44GC44GNDQor44GK44GK44Gf44GLLOOBvuOBleOBguOBjQ0KK+OBteOBmOOCiOOBlyzjgajjgYrjgosNCivjgZXjgYTjgajjgYYs44G+44GV44GKDQor44GP44KN44GV44KPLOOBteOBleOBiA0KK+OBhOOBl+OBi+OCjyzjgZHjgpPjgZ3jgYYNCivjgojjgZfjga4s44Gf44GL44GXDQor44GT44G/44KELOOBi+OBmuOCiOOBlw0KK+OChOOBvuOBjOOBnyzjgajjgZfjgYoNCivjgaTjgoQs44GL44GK44KLDQor44Gr44GX44GuLOOBruOCiuOChuOBjQ0KK+OBhuOBoeOBoCzjgbLjgZXjgYoNCivjgo/jgZ/jgarjgbks44GL44Ga44G/44GhDQor44KC44KK44GfLOOBruOBvOOCiw0KK+OBk+OBl+OBoCzjgZPjgYbjgZ7jgYYNCivjgbLjgo3jgZss44KK44KH44GG44G444GEDQor44KI44GX44KA44KJLOOBi+OBpOOBqOOBlw0KK+OBv+OBhuOCiSzjgojjgZfjgYvjgZoNCivjgZPjgYTjgZrjgb8s44Gy44Gn44Gu44G2DQor44Gm44KJ44GKLOOBv+OBpOOBsuOCjQ0KK+OBm+OBjOOCjyzjgb/jgaHjgYoNCivjgYvjgYTjgZrjgYss44GC44GN44KJDQor44G144GP44G+44GZLOOBmeOBmuOCiA0KK+OBhOOBqOOBhuOBmizjgZgNCivjgZvjgY3jgYzjgb8s44Gy44KN44GXDQor44G144GYLOOBhOOBmuOBvw0KK+OCiOOBl+OCgOOCiSzjgY3jgojjgZgNCivjgbXjgovjgoLjgags44KI44GX44KG44GNDQor44Gf44GN44GfLOOBvuOBquOBtg0KK+OBiuOBi+OBoCzjgbLjgo3jgbLjgZUNCivjgZ/jgYvjga/jgZcs44GC44GN44KJDQor44Gf44Gr44G144GYLOOBvuOBleOBguOBjQ0KK+OBhOOBvuOBiuOBiyzjgYvjgZrjgbLjgo0NCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44KE44G+44KC44GoLOOBi+OBiuOCiw0KK+OCiOOBoCzjgoTjgZnjgYoNCivjgbXjgYvjgoTjgb4s44Gy44KN44GXDQor44KE44G+44GQ44GhLOOBsuOBleOBig0KK+OBleOBrizjgY3jgb8NCivjgZ/jgYvjga/jgZcs44KG44KKDQor44G+44Gk44KC44GoLOOBjeOCiOOBlw0KK+OChOOBrizjgbLjgZXjgZcNCivjgYLjgY3jgbAs44GL44Ga44KI44GXDQor44G/44Gp44KK44GL44KPLOOBsuOCjeOBv+OBpA0KK+OBn+OBi+OBlyzjgb/jgojjgZMNCivjgbXjgovjgYvjgo8s44G/44Gu44KLDQor44Gy44GN44GfLOOBiOOBhOOBmA0KK+OBiuOBluOBjSzjgojjgZfjgYLjgY0NCivjgYLjgYrjgY0s44GX44GS44GK44G/DQor44GV44GI44GQ44GVLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOCguOBqCzjgbLjgo3jgZcNCivjgZPjgavjgZcs44KG44GG44GYDQor44GK44GK44Gr44GXLOOBl+OCheOCk+OBmeOBkQ0KK+OBsuOBkOOBoSzjgbXjgZjjgY0NCivjgY/jgbzjgZ8s44GY44KF44KT44GE44GhDQor44KE44G+44GQ44GhLOOBl+OCjeOBhg0KK+OBteOCi+OBi+OCjyzjgb7jgZXjgagNCivjgarjgorjgZ8s44GE44Gh44KN44GGDQor44Gf44Gq44GLLOOBteOBleOBhOOBoQ0KK+OBr+OBn+OBkeOChOOBvizjgabjgaTjgYoNCivjgb/jgoTjgoLjgags44G/44GV44GKDQor44Gu44GW44GNLOOChOOBmeOBr+OCiw0KK+OBr+OBm+OBjOOCjyzjgaHjgofjgYbjgZfjgo3jgYYNCivjgZfjgonjgYvjgo8s44KI44GX44Gy44GTDQor44GC44GE44GgLOOBk+OBhuOBuOOBhA0KK+OBsuOCjeOBi+OCjyzjgbLjgo3jgZcNCivjgorjgoXjgYbjgYvjgo8s44Gk44KI44KADQor44KE44G+44GQ44GhLOOBvuOBmeOBvw0KK+OBj+OCiuOBleOBjSzjgbLjgafjgYoNCivjgoLjgorjgoLjgags44KI44GX44G/44GhDQor44GP44G844GfLOOBvuOBleOBguOBjQ0KK+OBj+OBvuOBleOBkyzjgoLjgorjgZfjgZINCivjgYLjgaDjgaEs44GR44KT44GfDQor44GT44KT44GuLOOBsuOCjeOBguOBjQ0KK+OChOOBvuOCguOBqCzjgYjjgaTjgZMNCivjgYTjgo/jgYQs44KK44KH44GG44GfDQor44GK44GK44Gv44KJLOOBsuOBp+OBig0KK+OBhOOBl+OBr+OCiSzjgajjgoLjga7jgooNCivjgYLjgYrjgY0s44Gf44GR44GXDQor44KC44KKLOOCiOOCiuOBkw0KK+OCjeOBo+OBveOCk+OBjizjgb7jgZXjgYLjgY0NCivjgYvjgajjgYYs44GT44GG44GE44GhDQor44GV44Go44GGLOOChOOBmeOBig0KK+OBvuOBiOOBnuOBrizjgYjjgYTjgZjjgo3jgYYNCivjgbXjgZjjgoLjgags44Gy44Gn44Gu44G2DQor44Gf44Gr44KA44KJLOOBsuOCjeOBlw0KK+OBquOBi+OBq+OBlyzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44GX44KT44GYDQor44Gq44GL44GELOOBi+OBmuOBvw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgbXjgb8NCivjgZfjgoIs44KG44GG44GE44Gh44KNDQor44GX44Gw44GfLOOBhOOBleOCgA0KK+OBteOCi+OBv+OBoSzjgojjgZfjgYoNCivjgZ/jgZHjgaAs44GC44GN44KJDQor44G144GY44GfLOOBsuOCjeOBlw0KK+OBi+OBjuOChOOBvizjgabjgaTjgoQNCivjgo/jgaEs44G+44GV44Gu44KKDQor44G144GY44GfLOOBsuOBqOOBlw0KK+OBk+OCk+OBqSzjgZfjgZLjga7jgooNCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44G144GP44GELOOBsuOBp+OChuOBjQ0KK+OBmeOBjOOCj+OCiSzjgZPjgYbjgZjjgofjgYYNCivjgbXjgYvjgoTjgb4s44GC44GN44KJDQor44GE44G+44GELOOBvuOBleOBn+OBiw0KK+OBleOBqOOBhizjgY/jgavjgbLjgZMNCivjgYvjgarjgZbjgo8s44GL44Ga44GKDQor44G144Gh44GW44GNLOOBiuOBleOCgA0KK+OBpOOBi+OBoCzjgZfjgofjgYbjgYTjgaENCivjgYTjgZfjgZbjgY0s44Gf44GL44KG44GNDQor44Go44GP44KJLOOBv+OBjeOBig0KK+OBqOOBruOBleOBjSzjgoLjgajjgojjgZcNCivjgZ/jgYvjgY0s44Gy44Gn44GKDQor44G144GY44GfLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBmyzjgozjgYTjgZMNCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gk44G/LOOCiOOBl+OBguOBjQ0KK+OChOOBvuOCguOBqCzjgobjgYbjgYTjgaENCivjgbXjgY/jgZ8s44Gf44GL44Gq44GKDQor44GP44KP44Gv44KJLOOCiOOBl+OChuOBjQ0KK+OBteOBmOOBnyzjgYjjgYTjgZ7jgYYNCivjgYTjgarjgY/jgb4s44Go44GX44GTDQor44G/44GV44GKLOOBk+OBhuOBnuOBhg0KK+OBquOBi+OBl+OBnyzjgb7jgZPjgagNCivjgYrjgY/jgoTjgb4s44KG44GG44GYDQor44Gq44GM44GILOOBi+OBmuOBsuOCjQ0KK+OBquOBjOOBhCzjgZfjgofjgYbjgZQNCivjgoTjgb7jgZbjgY0s44G+44GV44KLDQor44GX44KJ44GE44GXLOOBl+OCh+OBhuOBhOOBoQ0KK+OBhuOBiOOBoCzjgZfjgZLjgosNCivjgYrjgZjjgb4s44Gy44KN44GC44GNDQor44Gy44KN44GbLOOBvuOBleOBruOBtg0KK+OBsuOCieOBrizjgb7jgZXjgosNCivjgbXjgovjgZ8s44Gf44GL44GKDQor44GT44Gs44G+LOOBi+OBiuOCiw0KK+OBn+OBi+OChOOBvizjgajjgoLjga/jgosNCivjgYLjgZXjgZfjgZ8s44G+44GV44G144G/DQor44KI44Gk44Gv44GXLOOBsuOCjeOBlw0KK+OBpOOBoeOChCzjgZ/jgYvjgb8NCivjgYrjgYrjgavjgZcs44GE44GV44GKDQor44KE44G+44GQ44GhLOOBl+OCh+OBhuOBmA0KK+OBl+OBmuOBrizjgYTjgZXjgoANCivjga/jgZfjgbks44KK44KH44GG44GE44GhDQor44G744KK44GELOOBv+OCiOOBlw0KK+OBquOBjOOBiuOBiyzjga7jgorjgZMNCivjgY/jgorjgZ8s44GX44KH44GG44G444GEDQor44GN44GwLOOBleOBquOBiA0KK+OBhOOBoCzjgb7jgaHjgZMNCivjgbXjgY/jgajjgb8s44GL44Ga44G/DQor44GT44Gw44KE44GXLOOBruOBvOOCiw0KK+OBhOOCiizjgZHjgpPjgYTjgaENCivjgZXjgZ8s44G+44GZ44GQDQor44G+44KL44KE44G+LOOBsuOCjeOBteOBvw0KK+OBguOBiuOChOOBvizjgZfjgZLjgosNCivjgZfjgpPjganjgYYs44KE44GZ44GKDQor44GC44GE44GL44KPLOOBjeOCh+OBhuOBmA0KK+OBleOBi+OBruOBhuOBiCzjgZHjgpPjgYTjgaENCivjgbXjgZjjgb7jgY0s44Gf44Gg44GC44GNDQor44GL44KP44Gv44KJLOOBvuOBk+OBqA0KK+OCgOOCieOBnyzjgbLjgafjgobjgY0NCivjgojjgZfjgaAs44KG44GG44GE44GhDQor44GE44Gf44GP44KJLOOBpuOBpOOChA0KK+OBmOOBnuOBsOOCiSzjgojjgYYNCivjgZ/jgarjgYss44Go44GX44GKDQor44GL44GY44KP44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYrjgZXjgoANCivjga/jgZnjgYTjgZEs44GX44KF44GG44GYDQor44Go44GG44G+LOOChuOBv+OBkw0KK+OBi+OCj+OBjeOBnyzjgYLjgY3jgokNCivjgb7jgaTjgoLjgags44KE44GZ44Gy44GTDQor44Gv44Gb44GM44KPLOOBv+OBpOOBig0KK+OBteOBmOOBhCzjgajjgYrjgosNCivjga7jgoDjgoks44G/44Gh44Gf44GLDQor44KI44GG44GT44GfLOOBsuOBp+OBig0KK+OBi+OBquOBluOCjyzjgZPjgYbjgZ7jgYYNCivjgb7jgZnjgoTjgb4s44GX44KT44GE44GhDQor44GL44Gu44GGLOOBsuOCjeOBlw0KK+OBteOBquOChOOBvizjgYjjgaTjgYoNCivjgoTjgb7jgZfjgZ8s44GN44Gh44Gy44GTDQor44GV44Go44GGLOOBvuOBleOBi+OBmg0KK+OBi+OCgeOCguOBqCzjgojjgZfjgbXjgb8NCivjgYTjgajjgYYs44GN44KI44GXDQor44GK44GP44KA44KJLOOBl+OBkuOBig0KK+OBteOBmOOBhCzjgabjgovjgYoNCivjgY3jga/jgoks44Gf44GL44GXDQor44Gu44KA44KJLOOCiuOBleOBjw0KK+OBguOBj+OBn+OBjOOCjyzjgaTjgajjgoANCivjgYTjgZfjgaAs44GP44Gr44GKDQor44GG44KB44Gv44KJLOOBl+OBkuOCiw0KK+OBiuOBiuOBjizjgarjgYrjgobjgY0NCivjgZPjgpPjgaks44Gv44KL44GKDQor44Gf44GR44GgLOOBkeOBhOOBkw0KK+OBvuOBpOOBhCzjgbXjgb/jgYjjgYQNCivjgYvjgb/jgYrjgYss44G+44GV44KLDQor44GL44KC44GX44GfLOOBsuOCjeOBvw0KK+OChOOBquOBjuOBleOCjyzjgZ/jgZHjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44G+44KC44KLDQor44KC44KT44G+LOOBv+OBruOCiw0KK+OBhOOBhOOBoCzjgYvjgarjgYgNCivjga/jgZvjgYzjgo8s44Go44GX44GYDQor44Gq44GM44G744KKLOOBsuOCjeOBlw0KK+OCguOCiuOBiuOBiyzjgZ/jgaDjga7jgooNCivjgavjgZfjgoTjgb4s44GC44GN44GKDQor44KE44G+44KC44GoLOOChOOBmeOBig0KK+OBhOOBl+OBoCzjgajjgZfjgYoNCivjgbXjgovjgaks44G+44GV44GKDQor44GL44KT44GgLOOBvuOBleOBguOBjQ0KK+OBhOOBl+OBoCzjgZfjgZLjgosNCivjgZXjgYTjgajjgYYs44Gf44GL44Gy44KNDQor44GN44KA44KJLOOBsuOBqOOBlw0KK+OBhOOCj+OBvyzjgoTjgZnjga7jgbYNCivjgoLjgoos44GX44KF44GG44GE44GhDQor44Gf44GL44KE44G+LOOBl+OCh+OBhuOBnuOBhg0KK+OBr+OChOOBl+OBkOOBoSzjgYLjgY3jgbLjgZMNCivjgZXjgYTjgajjgYYs44KE44GZ44GKDQor44GX44Gw44Gf44GNLOOBj+OBq+OBguOBjQ0KK+OBiuOBjuOBr+OCiSzjgojjgZfjga/jgosNCivjgYvjgajjgYYs44GE44GV44G/DQor44G144GP44GoLOOBquOBiuOChA0KK+OBiuOBoCzjgbLjgafjgYLjgY0NCivjgZXjgajjgYYs44G+44GV44Gy44KNDQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBr+OBvuOBoCzjgZ/jgYvjgbLjgo0NCivjgYrjgYzjgZXjgo/jgoks44Gm44Gk44KEDQor44KA44KJ44GNLOOBi+OBmuOBsuOBkw0KK+OBiuOBiuOBr+OBlyzjgYLjgY3jgbLjgagNCivjgZ/jgYvjga4s44Gf44GL44GXDQor44Gq44GL44GW44KPLOOBi+OBmuOBqOOBlw0KK+OBv+OChOOBmCzjgYLjgY3jgbLjgo0NCivjgZnjgYjjgarjgYws44KE44GZ44GKDQor44Gf44Gf44GNLOOBguOBjeOCiQ0KK+OCiOOBl+OBoCzjgYTjgo/jgYoNCivjgYLjgYrjgY0s44Gy44Gn44GXDQor44GZ44GO44KA44KJLOOBi+OBiuOCiw0KK+OBhOOBqOOBhizjgb7jgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBhOOBleOCgA0KK+OBi+OBn+OChOOBvizjgajjgZfjgbLjgZMNCivjgZXjgYTjgajjgYYs44G+44GV44GXDQor44Gf44GY44G+LOOBsuOCjeOBlw0KK+OBguOBuSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZjjgb4s44GX44GS44GNDQor44KE44G+44GQ44GhLOOBvuOBk+OBqA0KK+OCj+OBjeOBluOBiyzjgb7jgZXjgbLjgZMNCivjgZXjgZMs44GV44Gg44GoDQor44GK44GK44Gk44GLLOOBqOOCguOBsuOCjQ0KK+OBpOOBi+OCguOBqCzjgZnjgZnjgoANCivjgYTjga7jgYbjgYgs44G144G/44GKDQor44Gq44GM44GKLOOBqOOBiuOCiw0KK+OBhuOCieOBsCzjgb7jgZXjgYoNCivjgZPjgZjjgb4s44KE44GZ44Gy44KNDQor44Gf44GR44GgLOOChuOBhuOBmA0KK+OBguOBiuOBrizjgZjjgpPjgYTjgaENCivjgYTjgZrjgYvjgo8s44Gu44G244GKDQor44GP44Gp44GGLOOBi+OBmuOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgobjgY0NCivjgb7jgaTjgYos44G+44GV44G144G/DQor44GE44Gq44GM44GNLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OCguOBqCzjgZfjgofjgYbjgYTjgaENCivjgYTjga7jgYbjgYgs44Gy44Go44GXDQor44GK44Gu44Gn44KJLOOBpuOBpOOChA0KK+OBhOOBl+OBluOBiyzjgajjgZfjgbLjgZMNCivjga/jgY7jgo/jgoks44GR44KT44Ge44GGDQor44G144KL44GfLOOBvuOBleOCiw0KK+OBhuOBiOOBmOOBvizjgajjgb/jgYoNCivjgazjgb7jgZ8s44GX44KF44GG44GE44GhDQor44GI44KT44GpLOOBvuOBleOBsuOCjQ0KK+OBi+OBjOOChOOBvizjgZfjgpPjgoQNCivjgobjgorjgoLjgags44Gy44Go44GXDQor44G144GhLOOBn+OBoOOBig0KK+OBteOBmOOBiuOBjSzjgbLjgo3jga7jgbYNCivjgZXjgYTjgajjgYYs44G+44GV44Go44GXDQor44G+44Gk44KC44GoLOOBv+OBpOOBguOBjQ0KK+OBsuOCjeOBmyzjgojjgZfjgYvjgaQNCivjgbDjgbAs44GY44KF44KT44GE44Gh44KNDQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgb7jgZXjgb8NCivjgarjgYvjgoTjgb4s44GL44Ga44GKDQor44GN44GXLOOBsuOCjeOBlw0KK+OBguOBleOBrizjgb7jgZXjgYvjgZoNCivjgYjjgpPjgaks44GC44GN44GKDQor44GE44GX44Gw44GXLOOBoOOBhOOBlA0KK+OBi+OBhOOBoCzjgb/jgaTjgYoNCivjgYTjgZHjgZjjgb4s44Gy44Gn44GC44GNDQor44Gv44KJ44GgLOOBqOOBl+OBig0KK+OBr+OBvuOBrizjgZPjga7jgoANCivjgYvjgo/jgYQs44G/44Gh44KLDQor44KP44GgLOOBqOOBl+OBvuOBlQ0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZ/jgarjgYss44Gb44GE44GYDQor44GC44GP44GkLOOCiOOBl+OBruOCig0KK+OBhOOBqOOBhizjgY3jgojjgb8NCivjgYLjgpPjganjgYYs44GE44KP44GYDQor44GC44GE44GW44KPLOOBteOBqOOBlw0KK+OBj+OBvOOBnyzjgY3jgojjgZcNCivjgbXjgYvjgYbjgb8s44GV44Go44GXDQor44GX44G/44GaLOOBsuOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZcNCivjgarjgb/jgY0s44Gm44Gk44KN44GGDQor44Gu44GW44KPLOOChOOBmeOBlw0KK+OBk+OBhOOBn+OBsOOBlyzjgY3jgojjgbLjgo0NCivjgZ/jgabjgYTjgZcs44Gy44KN44G/DQor44GL44KP44GL44G/LOOBi+OBmuOBig0KK+OBk+OBsOOChOOBlyzjgYvjgZrjga7jgooNCivjgYrjga7jgZrjgYss44Gy44Gn44GKDQor44Gf44GQ44GhLOOBv+OBpOOBkA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgYLjgY0NCivjgZXjgajjgYYs44KE44GZ44Gy44KNDQor44GP44KP44Gv44KJLOOBl+OCjeOBhg0KK+OBm+OBqCzjgZXjgajjgZcNCivjgZTjgZEs44Gy44Gn44GNDQor44KI44GX44KA44KJLOOBjeOCiOOBlw0KK+OBn+OBi+OChOOBvizjga7jgbbjgobjgY0NCivjgZXjgZXjgY0s44KG44GN44GKDQor44GL44Gu44GGLOOBl+OBkuOBjQ0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjga/jgosNCivjgarjgYzjgYrjgYss44Go44KC44KG44GNDQor44GZ44Ga44GNLOOBsuOBp+OBjQ0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgokNCivjgoLjgoos44GV44Go44KLDQor44GZ44Ga44GNLOOBhOOBpOOBig0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgajjgZcNCivjgoTjgbbjga/jgoks44G/44Gk44KI44GXDQor44GX44KJ44GE44GXLOOBi+OBmuOBjQ0KK+OBjeOBj+OBnyzjgb7jgZXjga7jgbYNCivjgarjgYvjgYQs44G/44Gk44Gu44KKDQor44GP44KJ44KC44GoLOOChuOBn+OBiw0KK+OBmeOBv+OCiOOBlyzjgbLjgafjgYoNCivjgZ/jgYvjgY4s44Gy44KN44Gy44GVDQor44GX44KH44GG44GYLOOBruOCiuOBig0KK+OBiuOBleOBoCzjgb7jgZXjgobjgY0NCivjgYLjgZXjga4s44GV44Go44GXDQor44GE44KP44GVLOOBjeOCiOOBlw0KK+OBsOOBsCzjgobjgZ/jgYsNCivjgbLjgo3jgZ8s44GV44Go44KLDQor44G144GY44KC44GoLOOBv+OBleOBkw0KK+OBleOBrizjgb7jgZXjgosNCivjgoLjgajjgY0s44KE44GZ44KG44GNDQor44GE44Go44GGLOOBvuOBleOBruOCig0KK+OBhuOBkeOBjOOCjyzjgbXjgb/jgYoNCivjgYbjgoHjgbDjgoTjgZcs44GE44GV44GKDQor44GE44Gq44Go44G/LOOBi+OBmuOCiOOBlw0KK+OBn+OBi+OChOOBquOBjizjgb7jgZXjgYLjgY0NCivjga/jgoks44GE44GV44GKDQor44Gq44GL44Gv44KJLOOBtuOCk+OCjeOBhg0KK+OBleOBhOOBn+OBkSzjgZvjgYTjgZgNCivjgYvjgZfjgoTjgb4s44Gy44KN44GXDQor44GV44GL44GELOOBqOOCguOChuOBjQ0KK+OBhOOBqOOBhizjga7jgorjgYvjgaQNCivjgarjgYvjgoDjgoks44KI44GX44Gu44G2DQor44GK44GK44Gu44GOLOOBn+OBkeOBlw0KK+OBhOOBi+OBvyzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44GX44KT44GE44GhDQor44GX44GE44GqLOOBqOOBv+OBig0KK+OBn+OBvuOBruOBhCzjgZfjgofjgYbjgYTjgaENCivjgY/jgbws44Gy44Gn44GC44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBu+OBo+OBnyzjgbLjgajjgZcNCivjgbvjgYvjgoos44Gf44GL44KG44GNDQor44GV44Go44GGLOOBguOBjeOBig0KK+OBu+OBl+OBrizjgZfjgoXjgYbjgYTjgaENCivjgYvjgbbjgonjgY4s44Go44GX44Gy44KNDQor44GK44GV44GgLOOBqOOBl+OBteOBvw0KK+OBmeOBiOOBsuOCjSzjgZ/jgYvjgYoNCivjgoDjgonjgYvjgo8s44KI44GX44G/DQor44GE44KP44GV44GNLOOBkeOCk+OBmA0KK+OChOOBvuOCgOOCiSzjgZfjgpPjgZgNCivjgoLjgorjgZ8s44Gf44Gk44GKDQor44GE44GR44GgLOOCiOOBl+OBruOCig0KK+OChOOBhuOBoSzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44GL44Ga44Gy44GnDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBguOBquOCkyzjgYjjgaTjgZgNCivjgavjgZfjga4s44Gf44Gk44KN44GGDQor44GT44GX44G/44GaLOOChOOBmeOBig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgYjjgYzjgo8s44Go44GX44GKDQor44KE44G+44GW44GNLOOBn+OBpOOBsuOCjQ0KK+OBhOOBvuOBnOOBjSzjgojjgZfjgbXjgoYNCivjgZnjgZrjgY0s44Gy44Gn44GNDQor44Gr44GX44Gv44KJLOOChuOBhuOBhOOBoQ0KK+OBiuOBi+OBuSzjgYTjgZXjgoANCivjgZXjgYvjgYQs44G+44GV44Gy44KNDQor44Gf44GgLOOBqOOBl+OBig0KK+OBmeOBiOOCiOOBlyzjgb/jgY3jgYoNCivjga/jgoTjgZcs44GE44Gf44KLDQor44Gf44GL44Gv44GXLOOBkeOCk+OBmA0KK+OBk+OBguOBlyzjga/jgZjjgoENCivjgoLjgorjgYvjgo8s44GI44GE44GXDQor44GL44Go44GGLOOChOOBmeOBj+OBqw0KK+OBvuOBiOOBsCzjgb7jgZXjgbLjgo0NCivjgoTjga4s44Gf44Gk44GKDQor44GE44Go44GGLOOCiOOBl+OBr+OCiw0KK+OBquOBi+OBhCzjgbLjgo3jgZcNCivjgYrjgaDjgY7jgoos44GL44Ga44GKDQor44GI44KT44GpLOOBpuOBpOOBig0KK+OBn+OBkeOBhCzjgoTjgZnjgobjgY0NCivjgarjgYvjgZ/jgass44G/44Gh44Gu44KKDQor44GE44KP44GV44GNLOOBqOOCguOBsuOCjQ0KK+OBi+OCieOBi+OBlSzjgYLjgY3jgbLjgo0NCivjgYLjgZXjga4s44GR44KT44GE44GhDQor44GE44KP44G244GhLOOBvuOBleOCiw0KK+OBr+OCk+OBoCzjgajjgYrjgosNCivjgabjgonjgYos44KI44GX44KG44GNDQor44Gf44GR44GELOOCiOOBl+OCguOBqA0KK+OBr+OBl+OCguOBqCzjgojjgZfjgb8NCivjgb/jgoTjgZXjgYss44Gk44Go44KADQor44Gm44KJ44GgLOOBhOOBoeOCjeOBhg0KK+OBleOBi+OBnyzjgoTjgZnjgobjgY0NCivjgarjgYzjgoQs44GL44Gk44G/DQor44Gv44GX44KC44GoLOOBkeOCk+OBmA0KK+OBiuOBiuOBj+OCiSzjgaTjgajjgoANCivjgarjgYvjgZXjgY0s44G/44Gk44GQDQor44GN44KK44Gv44KJLOOBqOOBl+OChuOBjQ0KK+OBguOCieOBhCzjgZfjgoXjgpPjgZgNCivjgYTjgo/jga4s44Gy44KN44KG44GNDQor44Gv44Gj44Go44KKLOOBsuOCjeOBruOCig0KK+OBmeOBmuOBjSzjgajjgYrjgosNCivjgavjgZfjga/jgoks44Gy44KN44GXDQor44GV44GV44GNLOOBl+OBmuOBig0KK+OBr+OBquOBteOBlSzjgaTjgajjgoANCivjga7jganjga4s44Gf44Gk44KG44GNDQor44GL44KP44Gw44GfLOOBj+OBq+OBig0KK+OBl+OBv+OBmizjgojjgZfjgarjgYoNCivjgarjgYzjgZfjgb4s44Gk44GQ44Gy44GTDQor44KC44KKLOOBi+OBmuOBig0KK+OBl+OBv+OBmizjgZfjgZLjgYLjgY0NCivjgbLjgZXjgoTjgZks44GR44GE44Ge44GGDQor44GL44Gf44GG44KJLOOBl+OBkuOChuOBjQ0KK+OBn+OBkeOCgOOCiSzjgYLjgY3jgb/jgaQNCivjgYTjgb7jgavjgZcs44G+44GV44GoDQor44GK44GL44GgLOOBguOBjeOBsuOBkw0KK+OBquOBi+OBiCzjgYrjgZXjgoANCivjgZfjgo3jga4s44GY44KF44KT44GE44GhDQor44KI44GT44KE44G+LOOBruOBtuOBig0KK+OBiuOBi+OBluOCjyzjgb7jgZXjgbLjgZMNCivjgYvjgb8s44Gu44KK44Go44GXDQor44GP44G+44G5LOOBvuOBleOBig0KK+OBl+OBv+OBmizjgZ/jgaTjgo3jgYYNCivjgoTjgarjgY7jgZXjgo8s44GX44KH44GG44GE44GhDQor44G+44GN44GuLOOChuOBhuOBmA0KK+OBleOCjyzjgo/jgZ/jgosNCivjgYbjgZfjgo3jgaAs44GP44Gr44GKDQor44G+44Gh44GgLOOBpOOBi+OBlQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgYoNCivjgZfjgZLjgoDjgoks44Go44GX44Gv44KLDQor44Gy44GQ44GhLOOBn+OBi+OBlw0KK+OBhOOBhOOBrOOBvizjgb7jgZXjgobjgY0NCivjgYTjgZrjgb8s44G/44Gu44KLDQor44Gv44KE44GXLOOBsuOCjeOBqOOBlw0KK+OChOOBjizjgaHjga/jgosNCivjgYrjgYrjgYvjgo/jgoks44GN44KI44Gf44GRDQor44G144GP44GK44GYLOOBiuOBleOCgA0KK+OBhuOBjOOBmOOCkyzjgb7jgZXjgb8NCivjgZ/jgarjgbks44GX44KTDQor44GU44GX44G+LOOBvuOBleOBsuOBpw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjgYrjgaDjgb4s44KG44GN44GKDQor44GK44GL44GW44GNLOOBhOOCj+OBig0KK+OBhOOBl+OBi+OCjyzjgbXjgb/jgobjgY0NCivjgoDjgonjgoTjgb4s44G+44GV44GTDQor44Gv44KE44GV44GLLOOBkeOBhOOBmA0KK+OBquOBi+OBmOOBvizjgZ/jgY8NCivjgZ/jgZHjgoLjgags44KI44GX44G/DQor44GN44Gf44GY44G+LOOBmOOCheOCk+OBkw0KK+OBv+OBi+OBvyzjgarjgb8NCivjgo/jgonjgZfjgaos44GY44KF44KT44KEDQor44GN44KA44KJLOOBl+OCkw0KK+OBiuOBluOCjyzjgojjgZfjgYvjgZoNCivjgoTjgb7jgoDjgoks44Gy44Go44GXDQor44KI44GX44GgLOOBl+OBkuOBjQ0KK+OBn+OBoeOBsOOBqizjgZ/jgY/jgo3jgYYNCivjgb7jgaTjgoLjgags44Gu44KK44Gu44GZ44GRDQor44G/44GX44G+LOOBsuOBp+OBguOBjQ0KK+OBm+OBjSzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gy44GVDQor44GK44GK44GE44GRLOOBvuOBleOBlw0KK+OBteOBmOOCguOBqCzjgZfjgoXjgYbjgZgNCivjgojjgZfjgoDjgoks44Gu44G244Gy44GTDQor44GT44Gw44KE44GXLOOCgeOBhOOBmA0KK+OBiuOBiuOBjOOBvyzjgojjgZfjgobjgY0NCivjgYvjgYQs44GX44KH44GG44Gf44KN44GGDQor44GL44GI44GkLOOBvuOBleOBr+OCiw0KK+OCguOCjeOBhCzjgZ/jgYvjgbLjgo0NCivjgb/jgZrjga4s44GE44GP44GKDQor44GK44GK44Gk44GLLOOBguOBjeOBsuOBkw0KK+OBiuOBiuOBnyzjgYvjgYrjgosNCivjgZvjgY3jga0s44KK44KF44GG44GYDQor44G/44KE44GQ44GhLOOBi+OBmuOBn+OBiw0KK+OCiOOBreOBoCzjgarjgbvjgZMNCivjgbvjgorjgYbjgaEs44G+44GV44GTDQor44GI44GQ44GhLOOBi+OBpOOBvw0KK+OBhuOBl+OCjeOBvuOBpCzjgYvjgZrjgb8NCivjgYTjgYTjgaAs44KG44GN44Gy44KNDQor44KI44GX44GgLOOCiOOBl+OBvw0KK+OBquOBi+OBmyzjgYLjgY3jgYoNCivjgZnjgZrjgY0s44KG44GG44GTDQor44GK44GE44GL44KPLOOBiOOBhOOBkw0KK+OBi+OCj+OBuSzjgZXjgaTjgZMNCivjgZ/jgavjgZbjgo8s44Gf44GL44GKDQor44GL44Gt44GTLOOBr+OCi+OCiA0KK+OBteOBmOOBiuOBiyzjgZHjgYTjgZMNCivjgoDjgonjgYrjgYss44Gk44KI44GXDQor44GG44Gs44G+LOOBkeOBhOOBkw0KK+OBv+OChOOBkSzjgbXjgY3jgZMNCivjgarjgYvjgoDjgoks44Gh44GC44GNDQor44GK44GK44KPLOOBvuOBleOBr+OCiw0KK+OBreOCguOBqCzjgYTjgaHjgo3jgYYNCivjgavjgZfjgoDjgoks44Go44KC44Gy44GVDQor44Gf44Gk44G/LOOBhOOCj+OBig0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgZnjga7jga/jgoks44Go44GX44Gy44GTDQor44GC44GZ44G+LOOBjeOCiOOBi+OBmg0KK+OBn+OBi+OBsCzjga7jgbbjgYLjgY0NCivjgojjgZfjgoDjgoks44GV44Go44GXDQor44GC44G5LOOBquOBiuOBqA0KK+OBjeOBj+OBoSzjgZHjgYTjgZgNCivjgarjgYvjgoDjgoks44GL44Ga44G+44GVDQor44Gv44KA44KJLOOBpOOBqOOCgA0KK+OBmeOBmuOBjSzjga7jgbbjgbLjgagNCivjgYvjgo/jgoDjgoks44Go44GX44KEDQor44Gy44Gz44GuLOOBsuOBleOBiA0KK+OBjeOBn+OBoCzjgb7jgZXjgbLjgo0NCivjgZXjgajjgYYs44Gk44Gt44GKDQor44GL44Go44GGLOOBi+OBmuOBig0KK+OBhOOBqOOBhizjgobjgYbjgZgNCivjgbXjgY/jgajjgb8s44G+44GV44KLDQor44KA44KN44Ga44G/LOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBquOBiyzjgZjjgoXjgpPjgYTjgaENCivjgYrjgYvjgaAs44GR44KT44GE44GhDQor44Go44GG44GU44GGLOOBn+OBkeOBlw0KK+OBquOCiuOBnyzjgZ/jgYvjgZcNCivjgYTjgZHjgZbjgY0s44Gf44GR44GXDQor44GL44KP44Gw44GfLOOBl+OCjeOBhg0KK+OBvuOBpOOBiuOBiyzjga7jgbbjgYoNCivjgarjgYvjgaAs44Gy44KN44GXDQor44GV44Go44GGLOOBl+OCk+OChA0KK+OBn+OBkeOBluOCjyzjgojjgZfjgbLjgo0NCivjgoTjgarjgYzjgo8s44Gy44KN44GXDQor44KE44G+44GV44GNLOOBruOCiuOChuOBjQ0KK+OBl+OBjOOBjSzjga7jgorjgYLjgY0NCivjgobjgb8s44Gf44GR44GXDQor44GK44GW44GNLOOBpOOBqOOCgA0KK+OBquOBjOOBl+OBvizjgZ/jgYTjgZnjgZENCivjgoTjgbbjgYbjgaEs44Gy44GV44GKDQor44G744Gd44KELOOBsuOBleOBlw0KK+OBq+OBl+OBluOCjyzjgZ3jgYbjgZgNCivjga/jgoTjgb8s44KI44GX44GKDQor44Gv44Gb44GM44KPLOOBquOBiuOBvw0KK+OBi+OCj+OBleOBjSzjgYvjgaTjgbLjgZMNCivjgajjgojjgYTjgZrjgb8s44Gf44GL44KG44GNDQor44GK44GP44KA44KJLOOBvuOBleOBqA0KK+OChOOBvuOBoCzjga7jgbbjgbLjgo0NCivjgavjgo8s44GI44GE44Gy44GTDQor44Gr44GX44GW44GNLOOBsuOCjeOBlw0KK+OBmeOBjuOCguOBqCzjgZfjgZLjgosNCivjgYrjgYrjgZXjgo8s44Go44KC44Gq44GKDQor44Go44GgLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBrizjgojjgZfjgYvjgaQNCivjgb/jgYbjgoks44Gy44GV44GXDQor44KE44G+44GW44GNLOOBquOBiuOChuOBjQ0KK+OBleOBi+OCguOBqCzjgbLjgonjgY8NCivjgoTjgb7jgaAs44G/44Gh44GTDQor44GE44Gu44GG44GILOOBi+OCiOOBkw0KK+OChOOBmeOBhCzjgb7jgZXjgogNCivjgb7jgaTjgaAs44KG44G/DQor44GL44Gf44GK44GLLOOBguOBkeOBvw0KK+OBmeOBmuOBjSzjgZHjgYTjgZMNCivjga/jgoTjgZcs44GR44GE44GTDQor44Gv44G+44G+44GkLOOChOOBmeOBkw0KK+OBr+OBvuOBrizjgYjjgooNCivjgb/jgZrjgZ/jgass44G/44KI44GTDQor44GZ44G/44GfLOOCguOBqOOBoeOBiw0KK+OBr+OChOOBlyzjgb7jgY3jgZMNCivjgajjgY/jgarjgYws44KG44G/44GTDQor44GL44Go44GGLOOBruOBtuOBkw0KK+OBvuOBpOOBhuOCiSzjgb/jgYjjgZMNCivjgbLjgoPjgY/jgaos44Gy44Gn44GTDQor44GC44KT44GW44GELOOCiOOBhuOBkw0KK+OBteOBi+OBvuOBoSzjgZnjgb/jgYoNCivjgb/jgZXjgY0s44Gf44GR44GXDQor44KC44Gh44Ga44GNLOOBqOOCiOOBsuOBkw0KK+OBguOBiuOChOOBjizjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44KG44GN44Gy44GnDQor44GN44GbLOOBguOBjeOCiQ0KK+OBhuOBiOOCguOCiizjgZfjgZLjgosNCivjgYLjgZrjgb4s44G/44GI44GTDQor44GK44Gg44GP44KJLOOBsuOCjeOBv+OBoQ0KK+OBn+OBquOBiyzjgbLjgZXjgYoNCivjgajjgYTjgZ/jgass44GL44Gk44KN44GGDQor44KE44G+44GW44GNLOOBkeOCk+OBhOOBoQ0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZcNCivjgb7jgaTjgb/jgoQs44G+44GV44Gy44GTDQor44G144GX44G/LOOBoeOBi+OBqA0KK+OBjeOCh+OBhuOChOOBvizjgabjgovjgYoNCivjgojjgZfjgaAs44GR44GE44GTDQor44GG44KL44GX44GpLOOBguOBpOOBkw0KK+OBm+OBiizjgb/jgYjjgZMNCivjgb/jgarjgYvjgo8s44Gk44GN44GTDQor44G144GY44GuLOOBi+OBmuOChuOBjQ0KK+OBsuOCjeOBnyzjgZ/jgYvjgZcNCivjgYrjgYrjgZ8s44KI44GX44G/DQor44GK44GK44GMLOOBvuOBleOBruOCig0KK+OBquOBjOOBr+OBvizjgZ/jgaTjgYoNCivjgZjjgpPjga4s44KE44GZ44GNDQor44GE44Gh44GL44KPLOOBr+OBmOOCgQ0KK+OBr+OChOOBlyzjgZ/jgaDjgZcNCivjga/jgZ/jgoQs44Go44GX44KG44GNDQor44G744KK44GT44GXLOOBruOBtuOBsuOBkw0KK+OBi+OBqyzjgYLjgY3jgYoNCivjgbvjgpPjgaAs44KC44Go44Gy44GVDQor44Gk44Gh44KELOOBqOOBv+OBig0KK+OBn+OBvuOBpizjgb/jgaTjgosNCivjgobjgYvjgo8s44GI44GE44GYDQor44GV44GL44GELOOChuOBhuOBmA0KK+OBv+OChOOBmCzjgobjgYbjgYTjgaENCivjgZ/jgoDjgoks44Gy44Go44GXDQor44GL44KP44GQ44GhLOOBsuOBp+OBvuOCiw0KK+OBleOBrizjgb7jgZXjgYvjgZoNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44GT44Gw44KE44GXLOOChuOBjeOBig0KK+OBhOOBoCzjgYTjgaHjgo3jgYYNCivjgZvjgY3jgoLjgags44KI44GX44Gy44KNDQor44GL44KP44G+44GfLOOBi+OBmuOBig0KK+OBj+OBvCzjgbLjgo3jgZcNCivjgZ/jgYvjga4s44KE44GZ44Gy44KNDQor44KP44Gf44Gq44G5LOOChOOCiOOBhA0KK+OBhOOBi+OCi+OBjizjgb/jga7jgosNCivjgZXjgajjgYYs44Gf44Gg44GXDQor44Gy44Gg44GLLOOCiOOBl+OBsuOBkw0KK+OCiOOBl+OBhCzjgZPjgYbjgZ7jgYYNCivjgZfjgb7jgoDjgoks44GI44GE44KNDQor44GK44GzLOOBqOOBl+OBig0KK+OBquOBi+OBmOOBvizjgajjgY/jga7jgbYNCivjgbvjgZfjga4s44Gu44G844KLDQor44GL44KP44KC44GoLOOBmOOCheOCk+OBmA0KK+OBq+OBl+OBoCzjgoTjgZnjgbLjgacNCivjgZfjgb/jgZos44G+44GV44GC44GNDQor44Gf44KA44KJLOOBmOOCheOCkw0KK+OBqOOCiOOBl+OBvizjgojjgZfjgb/jgaQNCivjgYjjgpPjgaks44Gf44GL44GKDQor44GK44GM44KPLOOBquOBpOOBguOBjQ0KK+OBjeOBn+OBr+OCiSzjgbXjgb/jgYoNCivjgYrjgZDjgass44GR44KT44GYDQor44GK44G244GhLOOBkeOBhOOBnuOBhg0KK+OBv+OCiOOBlyzjgYvjgZrjgYoNCivjgYTjgZHjga4s44GX44KT44GE44GhDQor44GG44GI44G+44GkLOOBi+OBpOOBguOBjQ0KK+OBteOBj+OBluOBqCzjgorjgoXjgYbjgYTjgaENCivjgYLjgYrjgY0s44Gf44GL44GXDQor44GV44KB44GY44G+LOOBleOBoeOBig0KK+OBjeOBqeOBvizjgZHjgpPjgZgNCivjgZPjgaDjgYTjgoks44GN44GP44GKDQor44Gy44GQ44GhLOOBn+OBpOOBig0KK+OBvuOBiOOBl+OCjSzjgYvjgZrjgbLjgo0NCivjgZ/jgarjgYss44Gb44GE44GYDQor44Gq44GL44GM44KPLOOCiOOBhuOBmeOBkQ0KK+OBhOOBruOBhuOBiCzjgoTjgZnjgbLjgacNCivjgajjgorjgYYs44G+44GV44GC44GNDQor44G+44KL44KE44G+LOOBquOBiuOBjQ0KK+OBvuOBpOOBhuOCiSzjgZHjgpPjgZgNCivjgZ/jgoHjgaHjgYss44GL44GK44KLDQor44GV44GV44GNLOOBjeOCh+OBhuOBkw0KK+OBiuOBiuOBn+OBjSzjgZfjgpPjgZnjgZENCivjgYrjgYzjgo8s44G+44GT44GoDQor44G+44Gk44G/LOOBvuOBmeOBiA0KK+OBguOCiuOBvuOBpCzjgZfjgZLjgYoNCivjgZPjgonjgY8s44KG44GG44Ge44GGDQor44G/44KE44GX44GfLOOBv+OBruOCiw0KK+OBiuOBmuOBoSzjgb/jgaTjgYoNCivjgZXjgYvjgY3jgbDjgoks44Gf44GL44GTDQor44GV44Go44GGLOOBguOBjeOCiQ0KK+OBsuOCjeOBmyzjgajjgoLjgZMNCivjgaTjgaHjgaAs44Go44GX44GC44GNDQor44Gv44GX44KJLOOBoeOCiA0KK+OBteOCjeOCguOBqCzjgb/jga7jgosNCivjgZPjgZXjgYss44GC44GN44Gy44KNDQor44Gf44GR44GE44GhLOOCiOOBhuOBhOOBoQ0KK+OBpuOCieOBoCzjgojjgZfjgYvjgZoNCivjgZPjgYTjgacs44Gy44Gn44GNDQor44GV44GE44Go44GGLOOBl+OCh+OBhuOBhOOBoQ0KK+OBv+OChOOBquOBjCzjga7jgorjgbLjgZMNCivjgavjgZfjgoDjgoks44GX44KT44KEDQor44Gf44Gq44GLLOOChuOBhuOBnuOBhg0KKyzjgobjgb/jgZMNCivjgobjgY/jgbLjgo0s44KM44GE44GTDQor44KI44GX44KP44KJLOOBmOOCheOCkw0KK+OBguOBiuOBjSzjgovjgb/jgZMNCivjgZ/jgabjgYTjgZcs44KG44KK44GTDQor44Gf44GR44GgLOOBqOOBv+OBkw0KK+OChOOBmeOBoCzjgbXjgZjjgZMNCivjgYLjgYrjgY0s44Gy44Gn44KG44GNDQor44KI44GX44GgLOOBquOBiuOBkw0KK+OBguOBoOOBoSzjgYLjgY3jgZMNCivjga7jgZDjgaEs44KI44GX44Gu44G2DQor44KP44Gf44Gq44G5LOOBl+OBkuOChuOBjQ0KK+OBn+OBkeOBqOOBvyzjgZPjgYbjgYTjgaENCivjgY/jgorjgo/jgY0s44G+44GV44GNDQor44GN44Gf44Ga44KBLOOCguOBqOOBsuOBkw0KK+OBiuOBleOBoCzjgajjgZfjgYoNCivjgYLjgZfjgYzjgYQs44KI44GX44Gf44GLDQor44GV44GL44GX44GfLOOBjeOCiOOBlw0KK+OBpOOBoeOBoCzjgZfjgoXjgpPjgYTjgaENCivjgYrjgYvjgaAs44G/44Gh44GKDQor44Gf44Gq44GLLOOBsuOBp+OBoeOBiw0KK+OBiuOBiuOBn+OBlOOBlyzjgZPjgYbjgZ7jgYYNCivjgY/jgo3jgZXjgYss44GI44GE44GYDQor44GZ44GW44GNLOOBguOBpOOBlw0KK+OBi+OBreOBv+OBpCzjgbLjgo3jgobjgY0NCivjgb7jgags44GL44Ga44KG44GNDQor44Go44KI44G144GPLOOBvuOBleOBig0KK+OBguOCieOBhCzjgbLjgo3jgYvjgZoNCivjgbXjgZjjgYvjgo8s44Gu44G244GC44GNDQor44KI44GT44GKLOOBn+OBi+OCiOOBlw0KK+OBguOBvuOBrizjga/jgovjgYoNCivjgYrjgYrjga4s44Gf44GL44G144G/DQor44GZ44Ga44GNLOOBguOBjeOCiOOBlw0KK+OBi+OBqOOBhizjgb7jgZXjgobjgY0NCivjgZXjgYTjgajjgYYs44G/44Gk44GKDQor44GK44GGLOOBi+OBpOOBvw0KK+OBv+OChOOBluOBjSzjgYTjgZXjgYoNCivjgY3jgoQs44G144G/44Gf44G+DQor44G144GY44GfLOOBi+OBmuOBsuOBkw0KK+OCgOOBi+OBhCzjgojjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44GL44GK44KLDQor44GL44KP44GELOOChuOBjeOBig0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZ/jgYsNCivjgZ/jgZHjgYbjgaEs44KK44KH44GG44GYDQor44GT44GY44G+LOOBsuOBp+OBig0KK+OBr+OBm+OBjOOCjyzjgZ/jgaTjgYoNCivjgZPjgYws44KE44GZ44GKDQor44KE44G+44GgLOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBnyzjgb/jga7jgosNCivjgoTjgb7jgoLjgags44GX44KT44GZ44GRDQor44GV44GP44KJ44KC44GoLOOBteOBmOOBqA0KK+OChOOBquOBjuOBleOCjyzjgY/jgavjgYoNCivjgbXjgY/jgYQs44GT44GG44GYDQor44GL44Go44GGLOOBi+OBmuOBvw0KK+OBhOOCj+OBnyzjgoTjgZnjgobjgY0NCivjgbXjgZjjgoLjgags44Gf44Gg44G144GVDQor44GN44Gu44GX44GfLOOBguOBjeOBsuOBkw0KK+OChOOBvuOBoCzjgZjjgo3jgYYNCivjgY/jgonjgb7jgYgs44GT44GG44GYDQor44GP44KJ44GfLOOBn+OBi+OBlw0KK+OCiOOBk+OBhCzjgbXjgb/jgajjgZcNCivjgZPjgbDjgoTjgZcs44Gy44Gn44KEDQor44GL44Go44GGLOOCguOCiuOCiOOBlw0KK+OBvuOBmeOBhCzjgbLjgajjgZcNCivjgYbjgonjgZ8s44Gm44KL44GC44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBhuOBl+OBlOOCgSzjgb7jgZXjgZ/jgYsNCivjga/jgonjgYQs44GX44KT44GYDQor44GG44Gg44GM44KPLOOBqOOBl+OCjeOBhg0KK+OBn+OBi+OBjizjgYvjgZrjgobjgY0NCivjgb/jgoTjgZbjgY0s44GV44Go44G/DQor44KE44G+44KA44KJLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBjuOBlyzjgorjgoXjgYbjgYTjgaENCivjgZPjgb7jgaQs44KI44GX44Gf44GLDQor44Gv44G+44GQ44GhLOOChuOBiw0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoTjgb7jgaAs44KE44GZ44Gu44KKDQor44GL44GM44KPLOOBv+OBoeOBig0KK+OBjeOBj+OBoSzjgbXjgb/jgY0NCivjgY/jgZgs44KE44GZ44GXDQor44GE44Go44GGLOOBsuOBleOBguOBjQ0KK+OBi+OCj+OBkOOBoSzjgojjgZfjgYvjgZoNCivjgYLjgonjgY0s44GX44KT44GZ44GRDQor44GK44GL44G5LOOBsuOCjeOBvw0KK+OBk+OBvOOCiizjgZfjgpPjgYTjgaENCivjgYrjgaEs44GK44GV44KADQor44G+44KL44GKLOOBr+OBmOOCgQ0KK+OBleOBqOOBhizjgZfjgoXjgpPjgZnjgZENCivjgZ/jgarjgYss44Gy44Gn44Gu44KKDQor44G+44Gk44KE44G+LOOBqOOBl+OBig0KK+OBiuOBiuOBpOOBiyzjgY/jgavjgYoNCivjgoTjgb7jgoLjgags44GR44KT44GYDQor44G144GY44GKLOOBv+OBpOOBiA0KK+OBruOCgOOCiSzjgbLjgZXjgZ/jgYsNCivjgbLjgo3jgZss44Gu44KK44KI44GXDQor44GC44KT44GW44GELOOBl+OBkuOBruOCig0KK+OBiuOBiuOBpOOBvCzjgb/jgaHjgo0NCivjgZXjgYTjgajjgYYs44KK44KF44GG44GYDQor44GE44Go44GGLOOBleOBqOOBlw0KK+OCj+OCieOBleOCjyzjgY3jgY/jgYoNCivjgYLjgonjgYvjgo8s44KE44GZ44Gq44KKDQor44GU44G/LOOBmOOCheOCkw0KK+OBiOOCk+OBqSzjgZXjgaHjgYoNCivjgojjgZfjgaAs44G+44GV44Gv44KLDQor44GG44Gh44GgLOOBsuOBp+OBig0KK+OBguOBleOBhOOBrSzjgabjgaTjgoQNCivjgYrjgZfjgb4s44GX44GS44GKDQor44Gf44Gq44GLLOOBn+OBpOOBig0KK+OBiuOBiuOBkyzjgb7jgZXjgo3jgYYNCivjgYTjgZrjgaQs44Gq44GK44KLDQor44Gv44KE44GXLOOBvuOBleOChuOBjQ0KK+OBteOBmOOBjSzjgajjgYrjgosNCivjgZfjgYrjgYvjgYQs44GL44Ga44Gy44GTDQor44Gq44GM44G144GhLOOBjeOCiOOBpOOBkA0KK+OBvuOBpOOCguOBqCzjgZ/jgYTjgYTjgaENCivjgYvjgajjgYYs44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBkeOBhOOBmA0KK+OBr+OBvuOBkOOBoSzjgorjgoXjgYbjgYTjgaENCivjgYvjga3jgZMs44KG44Gf44GLDQor44GV44Go44GGLOOBqOOBl+OBig0KK+OBiuOBiuOBhCzjgb7jgZXjgY0NCivjga/jgoTjgZcs44Gb44GE44GYDQor44GN44G/44Gk44GLLOOBvuOBleOBig0KK+OBteOBj+OBoCzjgb7jgoLjgosNCivjgarjgYvjgoDjgoks44Gf44Gg44GXDQor44KE44Gw44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgobjgY0NCivjgajjgY/jgaAs44Go44KC44GL44GaDQor44Gf44GL44Gv44GXLOOBi+OBpOOBsuOCjQ0KK+OBhOOBqOOBhizjgb/jgaTjgYoNCivjga7jgZDjgaEs44KI44GG44GE44Gh44KN44GGDQor44GL44KP44GqLOOBruOCiuOBig0KK+OBquOBi+OBrizjgaTjgoTjgZMNCivjgoTjgb7jgaAs44G+44GV44GTDQor44Gy44KJ44G+44GkLOOBneOBhuOBn+OCjeOBhg0KK+OBguOCieOBhCzjgajjgZfjgobjgY0NCivjgojjgZfjga4s44GL44GK44KKDQor44Gv44G+44GgLOOBi+OBmuOBig0KK+OBiuOBiuOBnyzjgajjgZfjgbLjgZMNCivjgZfjgbDjgZ8s44G+44GZ44GC44GNDQor44KP44GL44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBu+OBlyzjgY3jgojjgZcNCivjgb/jgo8s44G+44GV44GKDQor44Gf44Gq44GLLOOChuOBhuOBmA0KK+OBi+OBquOChCzjga7jgorjgbLjgZMNCivjgZ/jgZHjgarjgYss44GY44KTDQor44GV44Go44GGLOOBqOOBl+OChuOBjQ0KK+OBv+OBmuOBl+OBvizjgajjgojjgYbjgYTjgaENCivjgabjgonjgaAs44GX44GS44KLDQor44KC44KK44KELOOBn+OBoOOChuOBjQ0KK+OBmeOBjuOChOOBvizjgoLjgajjga/jgosNCivjgYbjgb8s44Gv44KL44GKDQor44GN44GQ44GhLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBhuOCi+OCj+OBlyzjgZ/jgZHjgZcNCivjgbLjgonjgb7jgaQs44G/44Gh44GK44GNDQor44GE44Ga44GvLOOBr+OCi+OBig0KK+OBhOOBqOOBhizjgb7jgZPjgagNCivjgZXjgajjgYYs44G+44GZ44GKDQor44GX44GS44Gu44G2LOOBkeOCk+OBmA0KK+OCiOOBl+OCguOBqCzjgYvjgZrjgYoNCivjgZfjgbDjgZ8s44Gk44KI44GXDQor44G144Gq44GT44GXLOOBhOOBoeOBnuOBhg0KK+OBmeOBquOBoCzjgoTjgZnjgZjjgo3jgYYNCiss44KE44GZ44GKDQor44GN44GP44G+LOOBquOBiuOBsuOBkw0KK+OBmeOBqCzjgZXjgajjgZcNCivjgavjgZfjgZbjgo8s44Gy44Gn44GKDQor44GT44Gw44KE44GXLOOBv+OBpOOBkw0KK+OBi+OCj+OBlOOBiCzjgb7jgZXjgbLjgZMNCivjgYTjgZjjgb4s44G144G/44GKDQor44Gr44GX44GKLOOBsuOCjeOBlw0KK+OBq+OBl+OChOOBvizjga7jgbbjgobjgY0NCivjgZXjgYTjgajjgYYs44KI44GX44GC44GNDQor44GL44Gp44KP44GNLOOBsuOCjeOBvw0KK+OBsuOCjeOBmyzjgZ/jgYvjgYoNCivjgZ/jgZDjgaEs44Gf44GL44KI44GXDQor44Gf44GL44GgLOOBqOOBl+OBr+OCiw0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgYvjgajjgYYs44GX44GS44GC44GNDQor44Gq44GL44Gv44KJLOOBj+OBq+OBig0KK+OBhOOBl+OBj+OBvCzjgorjgoXjgYbjgYTjgaENCivjgoTjgb7jgaAs44KI44GX44GKDQor44KP44GL44G+44GkLOOBk+OBhuOBmA0KK+OBi+OCj+OBl+OBvizjgbLjgo3jgobjgY0NCivjgYvjgZ/jgoLjgags44GR44KT44GYDQor44Gf44GL44KE44G+LOOBjeOBv+OBsuOBkw0KK+OBpOOBoeOBoCzjgZ/jgaTjgZcNCivjgZ/jgaHjgbDjgaos44Gy44Gn44GKDQor44GT44Gw44KE44GXLOOBguOBjeOCiQ0KK+OBpOOBoCzjgajjgZfjgobjgY0NCivjgoLjgorjgYvjgo8s44KG44GN44GKDQor44GK44GP44GuLOOCiOOBl+OBig0KK+OBhOOBvuOBhCzjgb7jgoLjgosNCivjgoDjgonjgYos44Gf44Gg44GXDQor44GX44KC44KA44KJLOOBmOOCjeOBhg0KK+OBiOOCk+OBqSzjgajjgZfjga7jgbYNCivjgbvjgZfjgY/jgb4s44G+44GV44Gv44KLDQor44GL44KP44GbLOOBl+OCk+OBleOBjw0KK+OBvuOBoeOBoCzjgoDjga3jgZcNCivjgZPjgbDjgoTjgZcs44Gf44Gk44GKDQor44Gv44GgLOOBsuOCjeOBlw0KK+OBpOOBj+OBoCzjgb7jgZXjga/jgosNCivjgavjgZfjgYvjgo8s44GX44KH44GGDQor44G744KT44GgLOOBsuOCjeOBvw0KK+OCj+OBl+OBiuOBiyzjgajjgZfjgbLjgo0NCivjgoDjgo3jgYQs44KI44GGDQor44KE44GZ44GgLOOBvuOBleOBlw0KK+OCiOOBl+OBoCzjgbLjgo3jgobjgY0NCivjgbvjgoos44GC44Gk44GTDQor44GT44GG44GgLOOBk+OBhuOBiOOBhA0KK+OBi+OBvuOBoCzjgYjjgYTjgZgNCivjgYbjgYjjgoDjgoks44Gy44KN44G/DQor44G+44Gk44Gw44KJLOOBi+OBmuOChA0KK+OBv+OBquOBqOOBkOOBoSzjgZfjgZLjgosNCivjgY/jgYzjgabjgpMs44KE44GZ44GXDQor44GE44KP44GbLOOBruOBtuOBsuOCjQ0KK+OBr+OChOOBlyzjgb/jgaTjgbLjgo0NCivjgYTjgY/jgarjgb8s44GX44KT44GYDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBk+OChOOBvizjgbLjgo3jgb/jgaENCivjgYrjgajjgb7jgoss44KI44GX44Gy44GoDQor44Gq44GM44GELOOCguOBqOOBr+OCiw0KK+OBhOOBqOOBhizjgb7jgZPjgagNCivjgYTjgb7jgYQs44Gf44Gk44KLDQor44G+44GZ44GgLOOBn+OBi+OBsuOCjQ0KK+OBi+OCj+OBuSzjgorjgofjgYbjgZ8NCivjgZXjgajjgYYs44GR44GE44GYDQor44GV44GTLOOBvuOBleOBr+OCiw0KK+OCgOOBi+OBhCzjgZjjgoXjgpPjgYTjgaENCivjgYrjgZfjgb4s44GP44GZ44Gf44GLDQor44Gk44Gh44KELOOBhOOBmuOBvw0KK+OBr+OChOOBl+OBkOOBoSzjgajjgZfjgYLjgY0NCivjgZXjgajjgYYs44Gb44GE44GE44GhDQor44KA44KJ44GV44GoLOOChuOBjeOBsuOBkw0KK+OBr+OCi+OChOOBvizjgb7jgZXjgYoNCivjgZfjgZLjgoLjgoos44GX44KF44KT44GE44GhDQor44G144Gq44GNLOOBsuOBleOBig0KK+OCj+OBoCzjgYTjgY/jgagNCivjgaTjgbzjgYss44GX44KT44GZ44GRDQor44Go44GgLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OChOOBvuOCgOOCiSzjgZ/jgaDjgYLjgY0NCivjgYTjgZfjgZDjgo0s44GX44KT44GE44GhDQor44G144Gq44Gv44GXLOOChuOBjQ0KK+OBmeOBmuOBjSzjgojjgZfjgYoNCivjgojjgZfjgaAs44GN44G/44Gy44KNDQor44KP44Gf44Gq44G5LOOBpOOBjuOBig0KK+OBquOBi+OBq+OBlyzjgZ/jgYvjgb/jgaQNCivjgoTjgb7jgoLjgags44GY44KF44KT44GYDQor44GE44GX44GL44KPLOOBvuOBleOChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgZPjgYbjgYTjgaENCivjgYrjgY/jga4s44GV44Go44GXDQor44Gg44GmLOOBmOOCheOCkw0KK+OBn+OBuSzjgb7jgZXjgajjgZcNCivjgoTjgY4s44KK44KH44GG44GE44GhDQor44KI44GX44GgLOOBi+OBmuOBig0KK+OBteOCi+OBnyzjgZ/jgYvjgobjgY0NCivjgYvjgo/jgZDjgaEs44KK44KF44GG44Gf44KN44GGDQor44Gv44GZ44GTLOOCiOOBl+OBruOCig0KK+OBquOBjOOBv+OBrSzjgZfjgoXjgpPjgZgNCivjgZ/jgZHjgZfjgZ8s44GV44Go44GXDQor44GC44GL44GKLOOBi+OBmuOChuOBjQ0KK+OCj+OBjeOCguOBqCzjgZ/jgYvjgZcNCivjgZ/jgZXjgYss44GR44KT44GYDQor44Gq44GL44GX44G+LOOChOOBmeOCiOOBlw0KK+OBn+OBkeOBquOBiyzjgbLjgo3jgYLjgY0NCivjgoTjgb7jgZfjgZ8s44Gq44GK44Gy44GTDQor44GP44G844GILOOBpuOCi+OBig0KK+OBiuOBkOOBlyzjgZfjgofjgYbjgYTjgaENCivjgYLjgZXjgYss44GX44GS44Go44GXDQor44GI44GQ44GhLOOBsuOCjeOCiOOBlw0KK+OBiuOBiuOBleOBjSzjgb7jgZPjgagNCivjgYrjgY/jgaAs44GL44Ga44GKDQor44GK44GP44KA44KJLOOBi+OBmuOCjQ0KK+OBi+OBquOBvuOCiyzjgojjgZfjgbLjgZMNCivjgY3jga7jgZfjgZ8s44GK44GV44KADQor44GV44GV44GNLOOBjeOCiOOBsuOBpw0KK+OBn+OBi+OBrizjgZ/jgaTjgYoNCivjga/jgZfjgaAs44GX44GS44KLDQor44G744GXLOOChuOBhuOBmeOBkQ0KK+OBv+OBmuOBrizjgYvjgaTjgbLjgZMNCivjgb/jgaTjga/jgZcs44Gf44Gk44KEDQor44KC44Go44Gv44GXLOOBvuOBleOBlw0KK+OChOOBvuOBoCzjgabjgaTjgZgNCivjgarjgYzjga4s44G+44GV44KG44GNDQor44GE44GX44GELOOChuOBjeOBsuOCjQ0KK+OBi+OCgeOBoCzjgYvjgYrjgosNCivjgY3jga/jgZ8s44Gf44GR44Gy44GnDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBl+OCieOBteOBrSzjgZ/jgYvjgojjgZcNCivjgarjgaTjga/jgoks44Gy44KN44GC44GNDQor44Gr44GX44Gv44KJLOOChOOBmeOBsuOBlQ0KK+OBr+OBl+OBsCzjgZ/jgY/jgYoNCivjgbLjgZfjgazjgb4s44Gy44KN44G144G/DQor44Gy44Gz44KELOOBl+OCk+OBn+OCjeOBhg0KK+OBv+OChCzjgbLjgafjga/jgosNCivjgoDjgonjgYvjgb8s44G144G/44GKDQor44KA44KJ44GfLOOBr+OBmOOCgQ0KK+OCj+OBn+OBquOBuSzjgZfjgofjgYbjgYTjgaENCivjgYrjgYrjgavjgZcs44Gy44KN44GC44GNDQor44Gf44GR44GX44GfLOOBsuOCjeOBlw0KK+OBpOOBsOOBjeOCguOBqCzjgoTjgZnjgZcNCivjga/jgb7jgYrjgYss44Gf44GR44GKDQor44G/44Ga44GuLOOBqOOCiOOBn+OBiw0KK+OBguOBuSzjgbLjgo3jgb8NCivjgYLjgonjgYTjgZcs44G+44GV44G/DQor44GV44Go44GGLOOBvuOBleOBguOBjQ0KK+OBleOCj+OBrizjgZvjgYTjgZbjgbbjgo3jgYYNCivjgZfjgoLjgZjjgofjgYYs44Gf44Gg44G/DQor44Gf44GL44GgLOOBi+OBmuOBsuOBpw0KK+OBquOBjOOBnyzjgoTjgZnjgbLjgo0NCivjgavjgZfjga/jgZ8s44G+44GV44G144G/DQor44Gv44KE44GXLOOBneOBhuOBhOOBoQ0KK+OBu+OBneOBi+OCjyzjgYLjgY3jgokNCivjgYLjgYrjgY0s44G/44GN44Go44GXDQor44KI44GX44GgLOOBsuOCjeOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgYoNCivjgYTjgo/jgZXjgo8s44Gf44GL44Gv44KLDQor44Gu44GbLOOBmeOBiOOBig0KK+OBsuOCieOBl+OBnyzjgbLjgo3jgoTjgZkNCivjgojjgZfjgZbjgo8s44Gy44Gn44GKDQor44KA44Go44GGLOOBkeOBhOOBnuOBhg0KK+OBv+OCj+OBhuOCiSzjgbLjgafjgYLjgY0NCivjgY3jgY/jgaEs44Gv44GY44KBDQor44GI44Ge44GILOOBsuOCjeOBvw0KK+OBhOOBl+OBi+OCjyzjgZ/jgZHjgZcNCivjgYTjgaHjgYvjgo8s44Gf44GL44GXDQor44Gv44KJ44GgLOOCiOOBl+OBn+OBiw0KK+OCgOOCieOBnyzjgojjgZfjgagNCivjgYTjgajjgYYs44G/44GN44GKDQor44G744GX44GqLOOBkeOBhOOChA0KK+OBqOOBj+OBoCzjga7jgorjgYoNCivjgZ/jgZDjgoos44GL44Ga44KI44GXDQor44GV44GV44GNLOOBqOOCguOChuOBjQ0KK+OBn+OBvuOCiyzjga/jgovjgYoNCivjgavjgZfjga/jgZcs44GX44GS44GKDQor44GY44Gk44GL44KPLOOBi+OBmuOBsuOBkw0KK+OBmeOBmuOBjSzjgZXjgYTjgaENCivjgYrjgYrjgavjgZcs44GN44G/44GTDQor44Gq44GM44GV44GNLOOChuOBhuOBkw0KK+OBhOOBhOOBoCzjgbLjgafjgb8NCivjgZ/jgYvjga4s44G+44GV44Gy44KNDQor44Gy44GV44GuLOOBqOOBl+OBpOOBkA0KK+OBhOOBruOBhuOBiCzjgbLjgafjgY0NCivjgYTjgZfjgY/jgoks44G+44GV44KG44GNDQor44GC44GN44KE44G+LOOBk+OBhuOBmA0KK+OBhOOBoeOBi+OCjyzjgZvjgpPjgooNCivjgY3jgYzjgo8s44GT44GG44GE44GhDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OCiOOBoCzjgb/jgY3jgYoNCivjgYLjgonjgY0s44KG44GG44GYDQor44GZ44GO44Gv44KJLOOBsuOBp+OBsuOBlQ0KK+OBi+OCj+OBkOOBoSzjgabjgYTjgZgNCivjgb/jgoQs44G+44GV44Gy44GTDQor44GE44GR44GKLOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBhCzjgbXjgZjjgYoNCivjgZPjgZfjga4s44KI44GG44GZ44GRDQor44GN44GP44GL44KPLOOBi+OBmuOBig0KK+OChuOBguOBlSzjgZ/jgYvjgZcNCivjgZnjgZrjgY0s44KG44GG44GYDQor44G+44GZ44GgLOOBl+OCk+OBn+OCjeOBhg0KK+OBguOCieOBhCzjgoTjgZnjgYoNCivjgYTjgZHjgaAs44Go44GX44GKDQor44GN44GZLOOBguOBjeOCiQ0KK+OBhuOBl+OChOOBvizjgozjgYQNCivjgYvjgb7jgZ8s44GI44Gk44GXDQor44GG44GV44G/LOOBjeOCiOOBlw0KK+OBquOBi+OBrizjgZ/jgZHjgZcNCivjgYvjgY3jgYvjgo8s44GY44KF44KT44GE44GhDQor44GN44GY44G+LOOBsuOCjeOChuOBjQ0KK+OCgOOBi+OBhCzjgb7jgZXjgojjgZcNCivjgarjgYzjgoTjgb4s44G+44GV44GTDQor44Gv44Gj44Go44KKLOOBvuOBleOBig0KK+OBv+OBl+OBvizjgaTjgojjgZcNCivjgZTjgajjgYYs44GP44Gr44Go44GXDQor44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBiuOBjOOBnyzjgYvjgojjgZMNCivjgY/jgZXjgbAs44Gv44KL44KG44GNDQor44Gm44KJ44GILOOBsuOBleOBqA0KK+OBu+OCk+OBoCzjga7jgorjgYoNCivjgYLjgY/jgZ/jgYzjgo8s44G/44Gu44KLDQor44G/44KE44GT44GXLOOChOOBmeOBiA0KK+OBteOBj+OBl+OBvizjgZHjgYTjgZnjgZENCivjgZfjga7jgZrjgYss44Go44KC44GTDQor44GK44GK44Gf44GNLOOBl+OCh+OBhuOBmA0KK+OBquOBjOOBvuOBpCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYLjgonjgYQs44G+44GV44KLDQor44G+44Gk44GgLOOBleOBoeOCiA0KK+OBteOBmOOBnyzjgYLjgaTjgb8NCivjgYvjgb/jgZDjgaEs44Gy44KN44GC44GNDQor44GL44Go44GGLOOBsuOBqOOBlw0KK+OChOOBvuOBluOBjSzjgZ/jgZHjga7jgooNCivjgYbjgoHjgZ/jgass44GC44Gk44GTDQor44Gq44KL44GbLOOBmOOCheOCk+OBkw0KK+OBj+OBvCzjgY/jgavjgYoNCivjgY/jgonjgZ8s44Gy44KN44KG44GNDQor44GT44KT44GpLOOBpuOCi+OBig0KK+OBn+OBkeOBhuOBoSzjgb/jgY3jgoQNCivjgYTjga7jgYbjgYgs44Gu44KK44GKDQor44Gf44GL44GgLOOCiOOBl+OBi+OBmg0KK+OBguOBj+OBpCzjgYvjgaTjgobjgY0NCivjgajjgorjgYQs44Gy44KN44G/DQor44KC44KK44GK44GLLOOChuOBv+OBkw0KK+OBi+OBj+OBn+OBqyzjgb7jgarjgbYNCivjgZ/jgZHjgYTjgaEs44Gh44GI44GTDQor44Gf44GELOOBkeOBhOOBkw0KK+OBpOOBoeOChCzjgb7jgZXjgbXjgb8NCivjgb7jgZnjgaAs44G+44GV44Gf44GLDQor44GL44KT44GgLOOBsuOBleOBig0KK+OChOOBvuOBhuOCiSzjgoTjgZnjgojjgZcNCivjgY3jga7jgZfjgZ8s44GX44GS44G/44GkDQor44G744GV44GLLOOBj+OBq+OBig0KK+OBvuOCi+OBiuOBiyzjgbLjgafjgobjgY0NCivjgYvjgb7jgZ8s44Gy44KN44GXDQor44Gv44Gf44Gq44GLLOOBvuOBleOBvw0KK+OBj+OCjeOBryzjgojjgYbjgZMNCivjgajjgaTjgYss44KI44GG44GTDQor44GE44GX44GELOOBteOCiA0KK+OCguOCiuOBnyzjgb7jgaENCivjgbvjgpPjgb4s44GX44GS44KLDQor44GC44KJ44GL44GNLOOCiOOBl+OBqOOCgg0KK+OBn+OBkSzjgZ/jgZHjgbLjgZMNCivjgYTjgZrjga/jgoks44Gq44GK44GL44GaDQor44Gy44GV44Go44G/LOOBn+OCjeOBhg0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgavjgZfjgarjgYss44Gy44GV44Gu44KKDQor44G/44Ga44GuLOOBk+OBhuOBnuOBhg0KK+OCguOCiuOCgOOCiSzjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44Go44GX44GL44GaDQor44GX44GS44Go44KBLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgobjgYbjgZgNCivjgb7jgYjjgYvjgo8s44G+44GV44G/DQor44KI44GX44GELOOBqOOBl+OBruOCig0KK+OBu+OBneOChCzjgbLjgafjgbLjgZMNCivjgZXjgYvjgoLjgags44GL44Ga44GKDQor44GT44GE44Ga44G/LOOBl+OBkuOBvw0KK+OBq+OBlyzjgoTjgZnjgbXjgb8NCivjgYvjga3jgZMs44GC44GN44KJDQor44GZ44G/44GP44KJLOOBl+OCh+OBhuOBuOOBhA0KK+OCiOOBk+OBiizjgZ/jgYvjgYoNCivjgZXjgZXjgY0s44GL44Ga44GKDQor44Gv44KE44GXLOOBguOBjeOCiQ0KK+OBn+OBquOBiyzjgY3jgojjgZcNCivjgYLjgY3jgoTjgb4s44Go44G/44GKDQor44GV44GE44GZLOOCiOOBl+OBi+OBmg0KK+OBruOBjOOBvyzjgZvjgYTjgZgNCivjgajjgojjgZfjgb4s44GX44KF44GG44GE44Gh44KN44GGDQor44GX44KTLOOBn+OBi+OBlw0KK+OBteOBjeOBrizjgoLjgorjgojjgZcNCivjgYTjgZHjgaAs44GL44Ga44GN44GhDQor44GK44Gg44KP44KJLOOCiuOBpA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYvjgaQNCivjgZHjgYTjgb4s44GY44KF44KTDQor44GX44G/44GaLOOBk+OBhuOBmA0KK+OBhOOBvuOBhOOBmuOBvyzjgajjgoLjgZgNCivjgoLjgorjgZ8s44KG44G/44GTDQor44KC44KKLOOChOOBmeOBvw0KK+OBvuOBiOOBi+OCjyzjgoTjgZnjgYvjgZoNCivjgoTjgarjgY7jgaAs44GZ44GZ44KADQor44KA44KJ44KC44GoLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgbvjgZ3jgYgs44G+44GV44Gy44GTDQor44GE44GX44GP44KJLOOBm+OBhOOBmA0KK+OBsuOCjeOBi+OCjyzjgobjgYbjgZgNCivjgYvjgonjgZfjgb4s44Gf44GL44GXDQor44G+44Gh44GgLOOBl+OCk+OBhOOBoQ0KK+OCguOCiuOChOOBvizjgbLjgZXjga7jgooNCivjgZ/jgZHjgoDjgoks44Gm44Gk44Ge44GGDQor44Gk44GL44KC44GoLOOBguOBjeOBteOBvw0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgbLjgagNCivjgZ3jgoHjgoQs44GC44GN44GKDQor44Gq44GL44GU44KBLOOBsuOBp+OBig0KK+OBhOOCj+OBquOBjCzjgZHjgYTjgZnjgZENCivjgZvjgY3jgoQs44GR44KT44GYDQor44Gm44KJ44GELOOBi+OBmuOBsuOCjQ0KK+OBn+OBquOBiyzjgbLjgafjgYoNCivjgZvjgY3jgoQs44GY44KF44KT44KN44GGDQor44GV44GP44KJ44GELOOBiOOBv+OBkw0KK+OBhOOBneOBuSzjgb7jgaTjgZ/jgo3jgYYNCivjgb7jgaTjgYrjgYss44Gf44GL44Gy44GTDQor44GE44GhLOOBvuOBleOBruOCig0KK+OChOOBvuOCguOBqCzjgZfjgo3jgYYNCivjgafjgZDjgaEs44Gf44GL44Go44GXDQor44Gy44KJ44G+44GkLOOCiOOBl+OBig0KK+OBv+OBmuOBrizjgYTjgZXjgoANCivjgajjgb/jgarjgYws44G+44GV44Gy44KNDQor44Gf44GL44GX44G+LOOBsuOBqOOBlw0KK+OBruOBjOOBvyzjgbLjgo3jgZcNCivjgYrjgYrjgaQs44Gy44KN44G144G/DQor44GT44Gw44KE44GXLOOBkeOCk+OBhOOBoQ0KK+OBpuOCieOBoCzjgajjgZfjgYvjgZoNCivjgZXjgYTjgajjgYYs44Gf44Gk44KEDQor44GC44GV44GuLOOBn+OBi+OChA0KK+OBl+OCguOCgOOCiSzjga7jgorjgajjgZcNCivjgYrjgYrjgYTjgZcs44Gu44KK44KI44GXDQor44Gf44Gq44GLLOOBpOOBreOBig0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZcNCivjgbLjgonjgb7jgaQs44GX44GS44KLDQor44Gf44GR44GG44GhLOOBv+OBruOCiw0KK+OBl+OBkuOBr+OCiSzjgabjgovjgb7jgZUNCivjgYrjgYvjgoLjgags44Gv44GY44KBDQor44KA44KJ44KE44G+LOOCguOBqOOBkw0KK+OBk+OBvuOBpOOBsOOCiSzjgZfjgZrjgYoNCivjgYjjgbDjgZ8s44GR44KT44GYDQor44GK44GK44GfLOOBlOOCjeOBhg0KK+OBpuOCieOBiizjgbLjgo3jgobjgY0NCivjgYrjgYrjgZXjgo8s44G+44GV44KLDQor44GL44KP44GX44G+LOOBn+OBpOOBvw0KK+OBguOCieOBhCzjgb7jgZXjgZcNCivjga/jgZfjgZrjgoEs44GC44GN44KJDQor44G/44Ga44GX44G+LOOBk+OBhuOBmA0KK+OBsuOCieOBvuOBpCzjgYjjgaTjgYoNCivjgYrjgY/jgoDjgoks44KI44GX44GTDQor44G/44Ga44Gq44GLLOOBk+OBhuOBlw0KK+OBu+OCiuOBhuOBoSzjgZfjgoXjgYbjgYTjgaENCivjgZ/jgY3jgoLjgags44Go44GX44GKDQor44KE44GZ44GwLOOBk+OBhuOBmA0KK+OBjeOBn+OBrizjgoLjgajjga7jgbYNCivjgavjgZfjgaAs44KG44GN44GKDQor44GE44GX44GL44KPLOOBqOOBl+OBvw0KK+OBiuOBiuOBsCzjgbLjgZXjgYoNCivjgYvjgZfjgo/jgY4s44GL44Ga44KG44GNDQor44GV44Go44GGLOOBiuOBleOCgA0KK+OBvuOBpOOBoCzjgYLjgY3jgYoNCivjgZPjgoDjgo0s44Gq44GK44GNDQor44KA44KJ44GfLOOBsuOBp+OChuOBjQ0KK+OBleOBleOBjOOCjyzjgYvjgZrjgYoNCivjgZXjgZ/jgZEs44Gv44KL44Go44GXDQor44GP44KP44GuLOOBsuOBleOBig0KK+OBlOOBqOOBhizjgYvjgaTjgb8NCivjgbXjgZjjgYQs44GX44KT44GE44GhDQor44G/44Ga44GT44GXLOOBkeOCk+OBhOOBoQ0KK+OBteOBmOOBvuOBjSzjgYvjgZrjgoQNCivjgYTjgafjgZ8s44Gy44Go44GXDQor44Gq44GL44Gk44GLLOOBn+OBi+OBlw0KK+OBhuOCk+OBrizjgZ/jgZHjgb8NCivjgZnjgZrjgY0s44GL44Ga44Gy44KNDQor44Gv44G+LOOBsuOCjeOBlw0KK+OBqOOBv+OBnyzjgZ/jgYvjgYoNCivjgZ/jgavjgaQs44KG44GG44GUDQor44GZ44Ga44GNLOOBvuOBleOBv+OBoQ0KK+OBiuOBj+OCgOOCiSzjgaHjgojjgZgNCivjgbXjgY/jgZfjgb4s44GL44Ga44Gy44GTDQor44GK44GK44Gv44GXLOOBsuOBi+OCiw0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgYoNCivjgYvjgo/jgb8s44Gb44GE44GE44GhDQor44Gv44KL44GfLOOBkeOCk+OBhOOBoeOCjQ0KK+OBv+OChOOCguOBqCzjgbLjgo3jgZcNCivjgaTjgZjjgZ8s44KG44GG44GTDQor44GE44G+44KA44KJLOOBvuOBleOBig0KK+OBleOBqOOBhizjgZXjgbbjgo3jgYYNCivjgarjgYvjgZjjgb4s44KG44GN44GTDQor44GX44GE44GuLOOBl+OBkuOBig0KK+OBlOOBqOOBhizjgb/jga7jgosNCivjgYvjgajjgYYs44KC44Go44Gv44KLDQor44Gq44GM44GELOOBoeOBiOOBkw0KK+OBhuOBoeOBrizjgYLjgaTjgZcNCivjgYjjgYTjgZjjgb4s44GK44GV44KADQor44KE44G+44Gq44GLLOOBk+OBhuOBmA0KK+OBquOBi+OCgOOCiSzjga7jgbbjgYoNCivjgZnjgZrjgY0s44KE44GZ44KG44GNDQor44Gb44KA44KJLOOCiuOCheOBhuOBhOOBoQ0KK+OBquOBi+OBjOOCjyzjgYvjgaTjgbLjgo0NCivjgZ/jgoQs44Gf44GL44GXDQor44KA44KJ44GL44G/LOOBsuOCjeOBruOCig0KK+OBhOOBl+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgZvjgY3jgZDjgaEs44GX44KH44GG44GE44Gh44KN44GGDQor44GK44GK44GuLOOCiOOBl+OChuOBjQ0KK+OBiuOBhOOBi+OCjyzjgajjgZfjgoQNCivjgYTjgo/jgYQs44GP44Gr44KE44GZDQor44GC44GV44GyLOOBkeOCk+OBmA0KK+OBlOOBqOOBhizjgYvjgYrjgosNCivjgYvjga3jgZ/jgZEs44GL44Gq44KBDQor44GG44GI44G+44GkLOOBqOOBl+OBruOCig0KK+OBteOBj+OBl+OBvizjgbLjgo3jgZgNCivjgbXjgY/jgaAs44Gf44GL44KG44GNDQor44GZ44Ga44GNLOOBjeOCh+OBhuOBkw0KK+OBiuOBkOOCiSzjgobjgY3jgbLjgZMNCivjgbLjgonjgacs44Gu44G244GL44GaDQor44GK44GX44GSLOOBn+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgYjjgorjgZMNCivjgZXjgZXjgY0s44GI44Gk44GKDQor44GU44KT44GgLOOBvuOBleOCiw0KK+OBvuOBpOOBiuOBiyzjgZvjgYTjgZgNCivjgYbjgoHjgZbjgo8s44G+44GV44Gk44GQDQor44Gr44GX44GKLOOBi+OBmuOBquOCig0KK+OBk+OBmOOBvizjgobjgYbjgZ7jgYYNCivjgZ/jgavjgZDjgaEs44KI44GX44Gk44GQDQor44GK44GK44GO44GZLOOBsuOCjeOBlw0KK+OBleOBoOOBsuOBlSzjgZPjgYbjgYTjgaENCivjgbXjgZjjgo/jgoks44KC44KK44GKDQor44Gv44Gj44Go44KKLOOBquOBiuOChuOBjQ0KK+OBi+OBvuOBnyzjgajjgZfjgYoNCivjgajjgbAs44G+44GT44GoDQor44KE44G+44GgLOOBn+OBoOOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgb/jgY3jgYoNCivjgZ/jgZHjgYbjgaEs44Gf44GR44GXDQor44GC44KJ44GNLOOBsuOBp+OBteOBvw0KK+OBq+OBl+OBiizjgZvjgaTjgZMNCivjgoLjgorjgYbjgaEs44GV44Gq44GIDQor44GE44KP44GfLOOBsuOBp+OBguOBjQ0KK+OBleOBleOBjSzjgb7jgZXjgo3jgYYNCivjgb7jgYjjgYzjgo8s44KE44GZ44Gk44GQDQor44G144GP44Gr44GXLOOBi+OBmuOBruOBtg0KK+OBhuOBiOOBoCzjgajjgoLjgogNCivjgoTjgb7jgY7jgZcs44G+44GT44GoDQor44GK44GuLOOBkeOCk+OBmA0KK+OBteOBmOOBnyzjgbXjgY/jgY3jgaENCivjgY3jgZ/jgoDjgoks44KI44GX44G/44GkDQor44KI44GX44Gv44KJLOOChuOCiuOBkw0KK+OBhOOCj+OBleOCjyzjgZ/jgY/jgb8NCivjgZPjgb7jgaQs44Gf44Gk44KI44GXDQor44Gf44Gr44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBk+OBleOBiyzjgbLjgZXjgZ/jgZENCivjgZ/jgZfjgb4s44G+44GV44KG44GNDQor44Gr44GX44GK44GLLOOBi+OBpOOChuOBjQ0KK+OBmeOBmuOBjSzjgajjgZfjgYoNCivjgZTjgajjgYYs44KE44GZ44Gy44KJDQor44GL44KP44Gv44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBmOOBvizjgZfjgofjgYbjgZgNCivjgYvjgpPjga4s44GC44GN44GKDQor44GL44Gf44GX44G+LOOBl+OCk+OChA0KK+OBr+OBl+OCguOBqCzjgb/jgZnjgZoNCivjgarjgYvjgaAs44Gy44KN44GXDQor44GL44GV44Gv44KJLOOBm+OBhOOBhOOBoQ0KK+OBpuOCieOCguOBqCzjgZ/jgYvjgYLjgY0NCivjgo/jgYvjgb7jgaQs44G+44Gq44G/DQor44GE44Go44GGLOOBqOOBl+OBpOOBkA0KK+OCj+OBoCzjgbLjgafjgb8NCivjgZ/jgpPjgZgs44Gy44KN44GC44GNDQor44GK44GK44Gk44GLLOOCgeOBkOOBvw0KK+OBpOOBmOOCguOBqCzjgZHjgYTjgYTjgaENCivjgZvjgorjgZbjgo8s44Gu44G244Gv44KLDQor44Go44Gu44GV44GNLOOBteOBv+OBiA0KK+OBn+OBi+OBjizjgb/jgaHjgZMNCivjgYrjgbXjgaEs44GL44Gk44Gq44KKDQor44GC44G+44GuLOOBv+OBoeOBig0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgokNCivjgZ/jgbDjgZ8s44KG44GG44GYDQor44Go44KI44Ga44G/LOOBvuOBleOBguOBjQ0KK+OBl+OCheOBj+OChCzjgojjgZfjgo3jgYYNCivjgZ/jgYvjga4s44GX44KT44GE44GhDQor44KA44KJ44GL44G/LOOBsuOBqOOBlw0KK+OBhOOBl+OBmuOBiyzjga7jgbbjgojjgZcNCivjgYTjgYTjgZrjgYss44Go44GX44Gy44GTDQor44GX44KJ44GELOOBguOBjeOCiQ0KK+OBteOBj+OBr+OCiSzjgZnjgYjjga/jgosNCivjgYTjgarjgYzjgY0s44Gm44Gk44GKDQor44Gy44KJ44GX44G+LOOBsuOBqOOBlw0KK+OBpOOBmOOBsOOChOOBlyzjgYLjgaTjgZcNCivjgb7jgaTjgYos44G+44GV44G/DQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OCguOCiuOBrizjgZ/jgYvjgYoNCivjgZ/jgZjjgb4s44Go44GX44GKDQor44Gu44GW44GNLOOBmOOCheOCkw0KK+OBguOBoOOBoSzjga7jgbbjgZ/jgYsNCivjgZ/jgYvjgoQs44Gf44GL44GXDQor44GK44GuLOOBvuOBleOBig0KK+OBvuOBpOOCguOBqCzjgYvjgaTjgYLjgY0NCivjga/jgZfjgoLjgags44GL44Ga44Gy44GnDQor44GL44GuLOOChOOBmeOBlw0KK+OBn+OBkeOBoCzjgbXjgb/jgZMNCivjgY3jgorjga/jgoks44GR44GE44GTDQor44Gf44Gq44GLLOOChOOBmeOBsuOBkw0KK+OBqOOCiuOBhCzjgYLjgY3jga7jgbYNCivjgarjgYvjgZfjgb4s44G+44GV44GKDQor44Gb44GZ44G/LOOBmOOCheOCkw0KK+OBvuOBiOOBruOBneOBrizjgYvjgZrjgarjgooNCivjgZTjgajjgYYs44GX44KT44GYDQor44G744KKLOOChuOBjeOCiOOBlw0KK+OBn+OBi+OBhOOCiSzjgY3jgofjgYbjgYTjgaENCivjgZ/jgavjgaAs44GC44GN44Gy44KNDQor44G144KL44Gp44GELOOBl+OCheOBhuOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBjuOChCzjgb7jgZXjgarjgYoNCivjgarjgYvjgZjjgb4s44Gu44G244KI44GXDQor44G744KK44GL44KPLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgYLjgYrjgY0s44Gu44G244KG44GNDQor44GK44GP44Gv44GfLOOBvuOBleOBsuOCjQ0KK+OBj+OCj+OBsOOCiSzjgobjgYbjgZnjgZENCivjgYvjgpPjgaAs44Gy44KN44G/44GkDQor44GZ44GO44KC44GoLOOCiuOCh+OBhg0KK+OChOOBvuOCguOBqCzjgbLjgafjgYLjgY0NCivjgYvjga3jgZMs44G+44GV44KLDQor44Gq44KK44GfLOOCguOBqOOChuOBjQ0KK+OBq+OBl+OBiizjgZ/jgZHjgbLjgo0NCivjgYTjgYvjgoos44Gv44KL44GKDQor44G144KL44GL44KPLOOBkeOCk+OBhOOBoQ0KK+OBguOCieOBhCzjgZvjgYTjgZgNCivjgY/jgZrjgYvjgb8s44Gy44KN44GXDQor44GU44Go44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOBr+OCiSzjgb7jgZnjgb8NCivjgoTjgb7jgaAs44GX44GS44KLDQor44GE44GYLOOBqOOBl+OCjeOBhg0KK+OBj+OCieOCguOBoSzjgb/jgY3jgYoNCivjgbXjgZjjgo/jgoks44Gy44Gn44GZ44GODQor44Gf44GR44GgLOOBleOBqOOBlw0KK+OBn+OBi+OBruOBmyzjgYjjgaTjgYoNCivjgajjgoLjgoDjgoks44GX44GS44G144G/DQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBi+OBjeOBsOOCiSzjgb7jgZXjgobjgY0NCivjgb/jgoTjgZbjgY0s44KG44GG44GYDQor44KI44GX44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgojjgZfjgbLjgZMNCivjgZTjgajjgYYs44G/44Gh44GKDQor44Gr44GX44GgLOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OBl+OBvizjgb/jgaTjgbLjgo0NCivjgY3jgoDjgoks44GX44GS44KG44GNDQor44GE44Gu44GG44GILOOBvuOBleOBqOOBlw0KK+OBiuOBl+OBvizjgZ/jgZHjgZcNCivjgYrjgYrjgoQs44G+44KC44KLDQor44G/44KE44KC44GoLOOBvuOBleOBruOCig0KK+OChOOBvuOBl+OBnyzjgYrjgZXjgoANCivjgZ/jgarjgYss44G+44GZ44G/DQor44KC44KKLOOBguOBpOOBlw0KK+OBquOCi+OBvyzjgYrjgZXjgoANCivjgZTjgajjgYYs44Gg44GE44GY44KN44GGDQor44KE44G+44Gh44GLLOOBguOBjeOCiQ0KK+OBleOBleOBjSzjgb7jgZXjgbLjgagNCivjgY3jgZfjgaAs44G/44Gh44GKDQor44GK44GK44KE44G+LOOCiOOBhuOBmeOBkQ0KK+OBl+OBhOOBrizjgYvjgaTjgoQNCivjgYTjgZrjgb/jgZXjgo8s44KI44GX44Go44KCDQor44GL44G/44KA44KJLOOBoOOBhOOBoQ0KK+OBleOBi+OBhCzjgZHjgpPjgYTjgaENCivjgZTjgajjgYYs44GL44Ga44GKDQor44GL44Go44GGLOOBjeOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZgNCivjgY/jga4s44Gf44Gk44Gy44GTDQor44GE44KP44G244GhLOOBvuOBleOBpOOBkA0KK+OBu+OCk+OBtizjgb7jgZXjgbXjgb8NCivjgoLjgorjgZ8s44GY44KF44KTDQor44Gb44GN44KELOOBkw0KK+OBrOOBvuOBnyzjgYvjgZrjgoQNCivjgZTjgajjgYYs44KB44GE44GV44GEDQor44G+44Gq44G5LOOBvuOBleOCiw0KK+OBhOOBvuOBjeOBnyzjgZfjgofjgYbjgZgNCivjgZPjgaDjgYss44GR44KT44GYDQor44KI44GX44GgLOOBn+OBkeOBsuOBlQ0KK+OBleOBqOOBhizjgZ/jgZHjgZcNCivjgY/jgZnjgb8s44GL44Ga44KG44GNDQor44Gv44GO44KP44KJLOOBqOOBl+OBi+OBmg0KK+OBteOCi+OBmyzjgabjgovjgbLjgZMNCivjgoDjgonjgZ8s44GX44KH44GG44GTDQor44GK44GP44KA44KJLOOBvuOBleOBsuOBkw0KK+OBn+OBq+OBjOOBvyzjgZ/jgYTjgaENCivjgarjgYvjgoDjgoks44GX44KT44GYDQor44GT44GE44Ga44G/LOOBvuOBleOBsuOBkw0KK+OBmeOBqeOBhizjgbLjgo3jgZcNCivjgYTjgacs44Gm44Gk44KEDQor44GX44KC44GuLOOBi+OBmuOBsuOCjQ0KK+OBn+OBi+OBjizjgojjgZfjgYLjgY0NCivjgZXjgYvjgYQs44GC44Gk44GXDQor44GE44Gu44GG44GILOOBi+OBmuOBig0KK+OBteOCi+OBnyzjgb/jgaHjga7jgbYNCivjgYLjgZXjgYQs44GN44KI44GXDQor44G144GL44GV44KPLOOBj+OBq+OBsuOBkw0KK+OBlOOBi+OBhOOBoSzjgZPjgYbjgZgNCivjgYrjgYrjgaTjgYss44KE44GZ44Gu44KKDQor44GV44Go44GGLOOBleOBqOOBlw0KK+OBhOOBruOBhuOBiCzjgZfjgZLjgosNCivjgZ/jgZHjgaAs44G+44GV44KG44GNDQor44G+44GZ44GgLOOCiOOBl+OBsuOBkw0KK+OChOOBvuOCguOBqCzjga7jgbzjgosNCivjgYrjgYrjga/jgoks44G+44Gq44G2DQor44G144Gq44GkLOOBi+OBmuOBsuOBkw0KK+OBk+OChOOBvizjgZjjgoXjgpPjgZ7jgYYNCivjgoTjgb7jgZbjgY0s44Go44GX44Gy44KNDQor44Gf44GY44KKLOOBv+OBreOBr+OCiw0KK+OBleOBqOOBhizjgaTjgojjgZcNCivjgarjgYzjgZfjgb4s44GY44KN44GGDQor44Gk44GgLOOBn+OBi+OBlw0KK+OBquOBjOOBiizjgajjgoLjgb8NCivjgYrjgYrjgZnjgY4s44Gy44KN44KG44GNDQor44GE44Go44GGLOOBqOOCguOBquOCig0KK+OBn+OBvuOBhCzjgobjgZ/jgYsNCivjgb/jgoTjgZfjgZ8s44KI44GG44GE44Gh44KN44GGDQor44G/44GX44G+LOOCiOOBl+OBsuOCjQ0KK+OBu+OCiuOBhCzjgarjgYrjgYLjgY0NCivjgZTjgajjgYYs44G+44GT44GoDQor44KE44GKLOOBmOOCheOCk+OBhOOBoQ0KK+OBsuOBmOOChCzjgZ/jgaTjgoQNCivjgbvjgorjgYQs44Gy44Gn44GYDQor44Gf44GR44GgLOOBn+OBi+OCiOOBlw0KK+OChOOBmeOBquOBjCzjgYvjgaTjgb8NCivjgoTjgb7jgZbjgY0s44Gy44Gn44Gy44GoDQor44KE44GuLOOBguOBjeOCiQ0KK+OBl+OCj+OBjyzjgb/jga7jgosNCivjgYvjgb/jga4s44GC44GN44KJDQor44Gq44GL44GY44G+LOOBn+OBhOOBmOOCjeOBhg0KK+OBvuOBmeOBoCzjgY/jgavjgbLjgZMNCivjgYrjgbXjgaEs44GY44KN44GGDQor44G144GP44GW44GNLOOCjOOBhOOBkw0KK+OBhOOBn+OBjOOBjSzjgZfjgZLjgY0NCivjgZfjgoIs44Gh44GIDQor44G144GP44GELOOBruOBtuOBguOBjQ0KK+OBhOOBsyzjgZjjgpPjgYTjgaENCivjgZPjgoDjgYvjgYQs44GN44KI44G/DQor44G144GY44GILOOBruOBtuOChuOBjQ0KK+OBvuOBpOOBjSzjgYvjgZrjgbLjgZMNCivjgZPjgbDjgoTjgZcs44GL44Ga44KI44GXDQor44GU44GG44GhLOOBi+OBmuOBqOOBlw0KK+OBr+OBm+OBjOOCjyzjgZHjgpMNCivjgYvjgo/jgZTjgYgs44Go44KC44G144G/DQor44Gq44GM44GV44KPLOOBn+OBhOOBm+OBhA0KK+OChOOBvuOBl+OBnyzjgZXjgYvjgYgNCivjgYTjgZfjgZbjgY0s44GX44KT44GE44Gh44KN44GGDQor44GK44GgLOOBv+OBoeOBsuOCjQ0KK+OBl+OCk+OBqeOBhizjgZ/jgYvjgYLjgY0NCivjgZfjgoLjgZXjgZMs44Gv44KL44Gy44GVDQor44Gk44Gk44G/LOOBjeOCiOOBlw0KK+OBjeOBn+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjgY3jgZ/jgZbjgo8s44GT44GG44GYDQor44Gq44GL44GK44GLLOOBiOOBhOOBmA0KK+OBhOOBl+OBsOOBlyzjgb/jgobjgY0NCivjga/jgZfjgZDjgaEs44G/44KP44GTDQor44KP44Gf44Gq44G5LOOBguOBjeOBsuOCjQ0KK+OBiuOBiuOBsCzjgYvjgarjgoENCivjga/jgoks44GL44Ga44KEDQor44GX44G/44GaLOOBk+OBv+OBqg0KK+OBhOOBluOCjyzjgojjgZfjgbLjgZMNCivjgojjgZfjgoTjgb4s44GC44GN44KJDQor44GZ44GO44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBk+OBvuOBpCzjgZPjgYbjgYTjgaENCivjgbjjgpPjgb8s44GT44GG44Ge44GGDQor44G144GL44GgLOOBruOCiuOBteOBvw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgbLjgZUNCivjgZnjgY7jgoLjgags44GR44KT44GYDQor44KI44GT44KE44G+LOOBpOOBqOOCgA0KK+OBn+OBquOBiyzjga7jgorjgbLjgZMNCivjgb/jgoTjgZ/jgass44GV44Go44KLDQor44Gv44Gb44GM44KPLOOBguOBpOOBlw0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgYLjgY0NCivjgbXjgY/jgYrjgYss44Gy44KN44KG44GNDQor44GK44KA44KJLOOBleOBqOOCiw0KK+OBhOOBkOOBoSzjgb7jgZPjgagNCivjga/jgoTjgZcs44G+44KK44GTDQor44Gy44KJ44GELOOBi+OBiOOBkw0KK+OBiuOBiuOCguOCiizjgozjgYTjgZMNCivjgYrjgY7jga4s44GE44Gh44KN44GGDQor44Gf44KA44KJLOOBv+OBpOOBig0KK+OBn+OBkeOBoCzjgbLjgafjgYLjgY0NCivjgb/jgoTjgarjgYws44GT44GG44GE44Gh44KN44GGDQor44Gy44KJ44GELOOBruOCiuOBvuOBlQ0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgobjgY0NCivjga/jgbbjgaEs44Gy44Gn44GL44GaDQor44GK44GK44GP44KJLOOCiOOBl+OBguOBjQ0KK+OBr+OBo+OBnyzjgYjjgYTjgZgNCivjgYTjgZPjgb4s44Gy44KN44KG44GNDQor44GC44GV44Gy44GqLOOBn+OBi+OBlw0KK+OBi+OBruOBhizjgZfjgpPjgZQNCivjgarjgYvjgavjgZcs44GX44KF44GG44GYDQor44G/44KE44GW44GNLOOBsuOCjeOCgA0KK+OBhOOBoeOBi+OBqSzjgajjgojjgYLjgY0NCivjgarjgYzjgZXjgo8s44GC44GN44Gu44G2DQor44Gv44G+44GQ44GhLOOBr+OCi+OBig0KK+OChOOBl+OCjSzjgbLjgo3jga7jgooNCivjgoDjgonjgYos44G+44GNDQor44GK44GK44GO44G+44GhLOOBguOBjeOCiQ0KK+OBl+OCjeOBnyzjgb7jgZXjgobjgY0NCivjgabjgZfjgb4s44G/44Gk44GKDQor44GL44KP44GV44GNLOOChOOBmeOChuOBjQ0KK+OChOOBvuOBoCzjgYrjgZXjgoANCivjgbvjgpPjgaAs44G+44GV44Gy44GnDQor44GL44Gt44GTLOOBl+OBkuOCiw0KK+OBvuOBpOOBl+OBvizjgbLjgo3jgZrjgb8NCivjgZPjgb/jgoQs44GT44GG44GYDQor44KP44GgLOOBpOOCiOOBlw0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgoLjgorjgZXjgY0s44KG44GG44GYDQor44GE44G+44Gy44GM44GXLOOBsuOBp+OBig0KK+OBj+OCieOCguOBoSzjgo/jgZ/jgosNCivjgobjgYvjgo8s44GV44Go44GXDQor44Gm44KJ44GKLOOBmOOCjeOBhg0KK+OBk+OCk+OBqSzjgb7jgY0NCivjgZXjgYTjgajjgYYs44G+44GV44KG44GNDQor44KI44GX44Gq44GMLOOBsuOCjeOBlw0KK+OChuOBguOBlSzjga/jgovjgobjgY0NCivjgZvjgpPjgYws44KI44GX44GKDQor44Gr44GX44GQ44GhLOOBqOOBl+OBguOBjQ0KK+OBhuOBiOOBoCzjgarjgYrjgY0NCivjgoTjgb7jgYrjgYss44Go44GX44GKDQor44KE44G+44KC44GoLOOBi+OBmuOBig0KK+OBteOBmOOBi+OCjyzjgajjgZfjgZ/jgZENCivjgYrjgZDjgoks44Gf44GL44GXDQor44GL44KP44GuLOOBsuOBp+OBig0KK+OBi+OBreOBmuOBiyzjgbLjgo3jgYLjgY0NCivjgYrjgYvjgoLjgags44KG44GG44GZ44GRDQor44GL44KP44Gk44GNLOOBi+OBmuOBig0KK+OBmeOBiOOCiOOBlyzjgZ/jgaTjgoQNCivjgYvjgo/jgbks44GX44GS44KG44GNDQor44Gf44GL44Gv44GXLOOBn+OBi+OChuOBjQ0KK+OCguOCiizjgZfjgpPjgZnjgZENCivjgZnjgY7jgoTjgb4s44Gm44Gk44GYDQor44G+44GI44KE44G+LOOBjeOCiOOBlw0KK+OBk+OCgeOBn+OBqyzjgobjgYbjgZgNCivjgbXjgZjjgo/jgoks44GN44KI44GXDQor44GC44Gn44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBqOOBv+OBluOCjyzjgYrjgZXjgoANCivjgarjgYvjgZ8s44G+44GV44GC44GNDQor44Gf44Gh44Gw44Gq44GNLOOBr+OCi+OBguOBjQ0KK+OBk+OBoOOBvizjgZfjgofjgYbjgZQNCivjga/jgarjgYQs44Gh44G7DQor44Gh44Gu44GtLOOBi+OBmuOBig0KK+OBl+OBv+OBmizjgZPjgYbjgYTjgaENCivjgZ/jgY3jgZbjgo8s44G+44GV44GoDQor44GP44Gp44GGLOOBkeOCk+OBmA0KK+OCguOCiuOBiuOBiyzjgb7jgZXjgYvjgZoNCivjgYvjga3jgbLjgoks44GC44GN44GKDQor44GV44Go44GGLOOBsuOCjeOBruOBtg0KK+OChOOBsOOBqizjgajjgZfjgYoNCivjgZXjgYvjgZrjgoEs44Gy44KN44KG44GNDQor44Gv44GX44KC44GoLOOBjeOCiA0KK+OCiOOBruOCguOBqCzjgbLjgafjgY0NCivjgbDjgpPjgZfjgofjgYYs44GP44Gr44GKDQor44G144Gh44GILOOBi+OBmuOBig0KK+OBmeOBmuOBjSzjgYTjgY/jgYoNCivjgZnjgZrjgY0s44KG44GN44Gu44KKDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBi+OBqOOBhizjgZ/jgYvjgaTjgZANCivjgY/jgZnjgaAs44GL44Ga44GE44GhDQor44G/44KE44Gf44GRLOOCiOOBl+OBsuOCjQ0KK+OBleOBrizjgbLjgafjgZgNCivjgb7jgovjgZ8s44Go44GX44GC44GNDQor44G+44GN44GfLOOBvuOCiuOBkw0KK+OBi+OBl+OCj+OBjizjga/jgZjjgoENCivjgZ/jgass44KI44GX44G/DQor44GC44KK44KE44GZLOOBiOOBpOOBig0KK+OBi+OBqOOBhizjgZfjgoXjgYbjgZgNCivjgZ/jgarjgYss44G+44GV44Gy44GoDQor44Gk44GY44GfLOOBsuOCjeOBlw0KK+OBiuOBiuOBjOOCj+OCiSzjgZ/jgaDjgYoNCivjgoDjgonjgZXjgo8s44Go44GX44Gy44KNDQor44Gb44GN44KC44GoLOOBsuOBleOBlw0KK+OBpOOBmOOCguOBqCzjgbLjgZXjgagNCivjgZfjgYrjgZ/jgass44KI44GG44GE44Gh44KN44GGDQor44G/44KPLOOBqOOBl+OBig0KK+OBquOBjOOBleOBiyzjgZvjgYTjgZgNCivjgZPjgYTjgacs44GC44GN44KJDQor44GK44GQ44KJLOOBpOOBqOOCgA0KK+OBpOOBpOOBvyzjgZ/jgYvjga7jgooNCivjgbXjgYvjgb8s44GY44KF44KT44GE44GhDQor44KI44GX44GgLOOBn+OBi+OBlw0KK+OCguOCjeOBu+OBlyzjgZnjgZnjgoANCivjgZfjgYrjga4s44Gf44Gg44Gy44GnDQor44KE44G+44GQ44GhLOOBruOBtuOBv+OBoQ0KK+OBvuOBv+OChCzjgaTjgYvjgZUNCivjgZXjgYTjgajjgYYs44GX44GS44KG44GNDQor44GC44GN44KE44G+LOOBjeOCiOOBlw0KK+OBguOBoOOBoSzjgYvjgZrjgbLjgo0NCivjgYvjgo/jga4s44Go44GX44G/44GkDQor44Gq44GL44KA44KJLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgajjgZfjgY0NCivjgZXjgY/jgb4s44Gy44Gn44G/DQor44KC44Gh44Ga44GNLOOCiOOBl+OBn+OBiw0KK+OCj+OBn+OBquOBuSzjgojjgYbjgZgNCivjgZPjgbDjgoTjgZcs44Gb44GE44GYDQor44GN44GXLOOBv+OCjOOBhA0KK+OBr+OChOOBleOBiyzjgb/jgaHjgogNCivjgZPjgbXjgZgs44G+44GV44Gu44G2DQor44GV44GE44Go44GGLOOBguOBjeOBkw0KK+OBruOCgOOCiSzjgZfjgoXjgpPjgZgNCivjgb7jgaTjgYQs44KG44GN44GKDQor44Gv44KE44GX44GgLOOBvuOBleOBiA0KK+OBiuOBjOOCjyzjgZ/jgYvjgZcNCivjgbvjgpPjgaAs44Gf44GL44GXDQor44GT44GW44KPLOOCiOOBl+OCguOBqA0KK+OBleOBleOBjSzjgbLjgafjgYLjgY0NCivjgo/jgaAs44GN44KI44GXDQor44KE44G+44KP44GNLOOBn+OBvw0KK+OBteOBmOOBhCzjga/jgovjgogNCivjgZ/jgY3jgZbjgo8s44KE44GZ44Gy44GTDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBv+OBi+OBvyzjgZXjgajjgZcNCivjgb/jgo8s44Gu44G844KLDQor44GK44GhLOOBsuOCjeOBlw0KK+OBteOBmOOBnyzjgZHjgYTjgZgNCivjgarjgYzjgZ8s44GE44Gh44KN44GGDQor44GP44G844GfLOOCiOOBhuOBkw0KK+OBguOBiuOBjOOBjSzjgZLjgpMNCivjgYvjgorjgoTjgaks44Gq44GK44GTDQor44G/44Gv44GXLOOBl+OCk+OBhOOBoQ0KK+OCgOOCieOBvuOBpCzjgaHjgYjjgZMNCivjgYvjgZ/jgoTjgb4s44GK44GV44KADQor44KE44G+44GW44GNLOOBqOOBl+OBsuOBkw0KK+OBiuOBiuOBjuOBnSzjgY3jgojjgZ/jgYsNCivjgbDjgbAs44G+44GV44GL44GaDQor44G/44GX44G+LOOBvuOBleOBsuOBkw0KK+OChOOBrizjgYrjgZXjgoANCivjgarjgYvjgZjjgb4s44GC44GN44Gy44GTDQor44Gf44GR44GX44GfLOOBjeOCh+OBhuOBkw0KK+OBquOBi+OBrizjgb/jga7jgosNCivjgZ/jgYvjga4s44KG44GNDQor44GL44KP44GgLOOBi+OBmuOBvuOBlQ0KK+OBn+OBmOOBvizjgZPjgYbjgZ/jgo3jgYYNCivjgoLjgaHjgZrjgY0s44GN44KI44GXDQor44GN44KA44KJLOOBi+OBpOOBvw0KK+OBguOBjeOBuyzjgajjgb/jgoLjgagNCivjgoTjgb7jgoLjgags44GC44GNDQor44GL44KP44GbLOOChuOBn+OBiw0KK+OBleOBlSzjgbLjgZXjgYoNCivjga7jgZss44GL44Ga44Gq44KKDQor44Gy44KJ44GfLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgYbjgYTjgaENCivjgYLjgYzjgo8s44KG44GG44GZ44GRDQor44Gm44KJ44KC44GoLOOBsuOCjeOBteOBvw0KK+OBiuOBluOBjSzjgZXjgYvjgYgNCivjgoLjgoos44GN44KH44GG44GTDQor44GG44GkLOOBsuOBqOOBlw0KK+OCj+OBi+OBvuOBpCzjgajjgZfjgZXjgaANCivjgYTjgb7jgYQs44G144G/44GTDQor44GP44G8LOOBn+OBi+OBsuOCjQ0KK+OBn+OBi+OBrizjgZjjgoXjgpPjgZgNCivjgbLjgbPjga4s44Gy44Gn44GKDQor44GZ44Ga44GNLOOBr+OCi+OBjQ0KK+OBn+OBquOBiyzjgZ/jgYvjga/jgosNCivjgZXjgYvjgoLjgoos44GL44KI44GTDQor44Gf44GN44GW44KPLOOBpuOBpA0KK+OCiOOBl+OBi+OCjyzjgZ/jgYjjgZMNCivjgajjgojjgaAs44KK44KF44GG44GE44GhDQor44GG44KJ44GX44G+LOOChuOBhuOBmA0KK+OBk+OCk+OBrizjgoLjgajjgbLjgo0NCivjgabjgonjgYvjgo8s44Gf44GR44Gq44GMDQor44GT44Gw44KE44GXLOOBguOBjeOBsuOBkw0KK+OBjeOCgOOCiSzjgZ/jgYvjgZMNCivjgYvjgb/jgYos44KM44GEDQor44GP44KM44Gw44KE44GXLOOBjeOCiOOBvw0KK+OBi+OBreOBoCzjgbLjgo3jgZMNCivjgYvjgo/jgoLjgags44GT44GG44G444GEDQor44GE44G+44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBk+OBr+OBjuOBluOCjyzjgb/jga7jgosNCivjgZfjga7jgZbjgY0s44GX44KF44GG44GE44Gh44KN44GGDQor44KB44GQ44KNLOOBleOBqOOBlw0KK+OBj+OBq+OBleOBoCzjgb7jgZXjga/jgosNCivjgoLjgoos44GN44KIDQor44GL44KP44GO44GXLOOBn+OBi+OChuOBjQ0KK+OBiuOBiuOBmeOBjCzjgYvjgYjjgacNCivjgZnjgaAs44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBjeOCiOOBi+OBmg0KK+OBhOOBl+OBkyzjgZjjgoXjgpMNCivjgZnjgZrjgY0s44Gq44GK44KEDQor44GN44GP44GhLOOBi+OBmuOBsuOBkw0KK+OBiuOBjuOBnyzjgYLjgY3jgokNCivjgZ/jgYvjgoTjgb4s44Gf44GL44Go44KJDQor44Gq44GL44GX44G+LOOBjeOCiOOBlw0KK+OBpOOBmOOCguOBqCzjgbLjgo3jgZcNCivjga/jgoTjgb4s44GP44Gr44Gy44KNDQor44GE44Gf44GM44GNLOOBvuOBleOBguOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgYLjgY0NCivjgYLjgaDjgaEs44Gy44KN44GXDQor44GN44Gf44G/LOOBsuOCjeOBsuOBpw0KK+OBn+OBvuOBjSzjgb/jgaHjgYoNCivjgb7jgYjjgaAs44KG44GG44GYDQor44GC44Gg44GhLOOBl+OCh+OBhuOBnuOBhg0KK+OBn+OBvuOBoCzjgZDjgpPjgZgNCivjgoLjgorjgZDjgaEs44KG44GG44GYDQor44KI44GX44Gq44GMLOOBruOCiuOBkw0KK+OBvuOBiOOBoCzjgZ/jgYjjgZMNCivjgo/jgZ/jgarjgbks44Gf44G+44GNDQor44Gf44GL44Gv44GXLOOCiOOCiuOBn+OBiw0KK+OBhOOBl+OBkyzjgabjgaTjgo3jgYYNCivjgYrjgZjjgb4s44GL44Gk44GYDQor44GX44Gw44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBl+OBsCzjgZ/jgZHjgbLjgZMNCivjgajjgoLjga4s44GR44KT44GE44GhDQor44GZ44G/LOOBvuOBleOBteOBvw0KK+OBv+OBpOOBquOBjCzjgYLjgY3jgZMNCivjgYbjgonjga4s44G+44GV44GNDQor44KI44GT44Ga44GLLOOBleOBqOOBlw0KK+OBteOBmOOBi+OCjyzjga/jgovjgbLjgo0NCivjgYvjgbbjgonjgY4s44G+44GV44KG44GNDQor44KI44GX44GgLOOChuOBn+OBiw0KK+OBleOBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgoTjga4s44Gf44GL44Gy44GVDQor44KI44GT44GfLOOBquOBiuOBvw0KK+OBquOBi+OCgOOCiSzjgYLjgaTjgZcNCivjgarjgb/jgZXjgags44G+44GV44GL44GaDQor44Gt44GO44GXLOOBkeOBhOOBnuOBhg0KK+OBjeOBrizjga7jgbzjgosNCivjgarjgYvjgZjjgb4s44GC44GN44KJDQor44Gk44Gk44G/LOOBl+OCheOBhuOBhOOBoQ0KK+OBk+OBhuOBoCzjgoTjgZnjgbLjgZMNCivjgbvjgoos44G/44KG44GNDQor44GT44KT44GuLOOBi+OBmuOChA0KK+OCj+OBoCzjgobjgb/jgZMNCivjgb7jgaTjgarjgYws44GV44Gg44GKDQor44Gr44GX44KA44KJLOOBqOOBl+OChuOBjQ0KK+OBhOOBhCzjgoTjgZnjgbLjgo0NCivjgoTjgZnjgYQs44Gq44GK44GNDQor44GT44Gw44KE44GXLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOBleOBjSzjgb7jgZXjgbLjgo0NCivjgZnjgZrjgY0s44KE44GZ44KG44GNDQor44GE44KP44GfLOOBr+OCi+OBsuOBkw0KK+OBl+OBkuOCguOCiizjgZ/jgYvjgZcNCivjgYTjgb7jgoDjgoks44Gu44G244Gf44GLDQor44Gk44GL44KC44GoLOOBguOBjeOCiA0KK+OBhOOBqOOBhizjgZfjgpPjgZnjgYQNCivjgY/jgbws44GY44KN44GGDQor44GV44Gq44GILOOBi+OBmuOBvuOBlQ0KK+OBk+OBoOOBvizjgYLjgY3jgYoNCivjgYTjgajjgYYs44GL44Gk44GXDQor44GC44GP44GkLOOCiOOBhuOBkw0KK+OBguOBn+OCieOBlyzjgb/jgYjjgZMNCivjgZ/jgZDjgoos44GY44KF44KT44GTDQor44GuLOOBn+OBpOOChA0KK+OBguOBi+OBvuOBpCzjgZHjgpPjgZjjgo3jgYYNCivjgYLjgZXjga4s44GR44KT44GYDQor44Gq44GL44GM44KPLOOBvuOBleOBguOBjQ0KK+OBi+OCj+OBl+OBvizjgYLjgZXjgZMNCivjgZXjgajjgYYs44Gy44Gn44GKDQor44GK44GQ44KJLOOBm+OBhOOBmA0KK+OBhOOBl+OBsOOBlyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYrjgYss44Gf44GL44KI44GXDQor44Gf44GN44GW44KPLOOBvuOBleOCiOOBlw0KK+OBhOOBn+OBj+OCiSzjgZXjgajjgZcNCivjgbvjgpPjgZTjgYYs44KI44GX44GL44GaDQor44Gq44GM44KE44GZLOOBn+OBi+OChuOBjQ0KK+OBhuOBoeOBoCzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gk44Gt44GKDQor44GE44GX44GQ44KNLOOBsuOCjeOBlw0KK+OCguOCiizjgajjgojjgbLjgZMNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44Gy44GQ44GhLOOBl+OBkuOBqA0KK+OBjeOBqCzjgZfjgpPjgYTjgaENCivjgZ/jgarjgYss44GL44Ga44KG44GNDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBjOOBhCzjgZHjgpPjgZgNCivjgojjga3jgZbjgo8s44KI44GX44GL44GaDQor44GC44KJ44GL44KPLOOCiuOCheOBhuOBmA0KK+OBhOOBruOBoCzjgoTjgZnjgbLjgZUNCivjgYvjgajjgYYs44G+44GV44GKDQor44GL44GS44KE44G+LOOBvuOBleOBlw0KK+OBv+OChOOCj+OBjSzjgajjgZfjgbLjgZMNCivjgb/jgaHjgoTjgb4s44Gf44Gg44KE44GZDQor44KC44KKLOOBqOOBl+OBguOBjQ0KK+OCguOCiuOBleOCjyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgavjgZfjgoDjgoks44GL44Gk44KG44GNDQor44GV44GE44Go44GGLOOChOOBmeOBruOCig0KK+OChOOBvuOCguOBqCzjgojjgYbjgZnjgZENCivjgb7jgaTjgYbjgoks44KI44GX44GC44GNDQor44Gv44Gb44GM44KPLOOBpOOBqOOCgA0KK+OBhuOBoeOBoCzjgZjjgoXjgpPjgYTjgaENCivjgoTjgZnjgaAs44GT44GG44GE44GhDQor44GE44GX44GgLOOBqOOBiuOCiw0KK+OCguOCiuOBrizjgYvjgaTjgb7jgZUNCivjgY3jgZ/jgoTjgb4s44KI44GX44Gy44KNDQor44GV44GL44KC44GoLOOCiOOBl+OBruOCig0KK+OBneOBhuOBv+OChCzjgbLjgo3jgobjgY0NCivjgY3jgY/jgaEs44GX44KT44GE44GhDQor44GX44G244GELOOBk+OBhuOBmA0KK+OBqOOBv+OBnyzjgYLjgaTjgZcNCivjgoLjgoos44GT44GG44GYDQor44KE44G+44GQ44GhLOOBmOOCheOCk+OBmA0KK+OBjeOBn+OChOOBvizjgojjgZfjgbLjgo0NCivjgb7jgpPjgoLjgags44GC44GN44KJDQor44Gf44Gq44GLLOOChuOBn+OBiw0KK+OCguOCiizjgYvjgZrjgbLjgo0NCivjgYTjgZ/jgY/jgoks44GE44GV44KADQor44GE44Gh44G/44KELOOBvuOBleOBlw0KK+OBq+OBl+OChOOBvizjgYvjgaTjgZgNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44Gv44KT44GM44GELOOBr+OCi+OBig0KK+OBquOBjOOBrizjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZfjgbAs44GR44KT44GYDQor44GT44GY44G+LOOBmeOBmeOCgA0KK+OBn+OBn+OBrizjgZXjgajjgZcNCivjgYvjgo/jgbDjgZ8s44G+44GV44Gy44GTDQor44Gf44GR44GgLOOBn+OCjeOBhg0KK+OBiuOCgOOCiSzjgYTjgY/jgo3jgYYNCivjgZXjgZMs44Gy44KN44GXDQor44GE44GX44Gv44KJLOOBv+OBruOCiw0KK+OBhOOBoeOBruOBmyzjgZnjgZnjgoANCivjgY3jgZfjgaAs44KI44GX44G/DQor44G/44GL44G/LOOBmOOCheOCkw0KK+OBr+OChOOBlyzjgZ/jgY/jgZgNCivjgZXjgZXjgY0s44GC44KG44G/DQor44KI44Gt44G/44GkLOOBi+OBmuOBquOCig0KK+OBm+OBjeOBrSzjgojjgZfjgarjgooNCivjgYTjgb7jgavjgZcs44GN44KI44Gf44GgDQor44GC44GK44GNLOOBn+OBoOOBlw0KK+OBmeOBjuOChOOBvizjgYTjgZXjgYoNCivjgarjgYvjgoLjgoos44KI44GX44G144G/DQor44GX44G+44GgLOOBvuOBleOBsuOBkw0KK+OBvuOBmeOBoCzjgbXjgZXjgYoNCivjgaTjgbzjgYQs44Gy44KN44GXDQor44Gb44GN44KELOOBmeOBmeOCgA0KK+OBjeOBmOOBvizjga7jgorjgYoNCivjgojjgZfjgZrjgb8s44Gy44Gn44Gf44GLDQor44KE44Gq44GO44Gg44GmLOOBl+OCk+OChA0KK+OBl+OBkuOBvuOBpCzjga/jgovjgoTjgZkNCivjgYTjga7jgYbjgYgs44Gq44GK44GNDQor44Gf44GR44GG44GhLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjgZ/jgZHjgZcNCivjgbLjgYzjgZcs44GX44KF44GG44GYDQor44Gf44GL44GfLOOBquOBiuOBsuOCjQ0KK+OBquOBi+OBhCzjgaTjgY7jgYoNCivjga/jgZvjgYzjgo8s44GY44KF44KT44GE44GhDQor44Gf44GrLOOBn+OBi+OBlw0KK+OBk+OBsOOChOOBlyzjgb/jgY3jgajjgogNCivjgZ/jgYvjga/jgZcs44GC44GV44GTDQor44GC44G5LOOBvuOBleOBqA0KK+OBk+OBsOOChOOBlyzjgojjgZfjgZ7jgYYNCivjgYrjga4s44GE44GP44KEDQor44Gf44GL44Gv44GXLOOChuOBjeOBsuOCjQ0KK+OBj+OCjeOBoCzjgYLjgaTjgZcNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44GC44G5LOOBl+OCk+OBmA0KK+OBhOOBruOBhuOBiCzjgojjgYbjgZMNCivjgYjjgpPjgaks44KI44GX44GKDQor44Gu44Gu44GX44GfLOOBl+OBkuOBteOBvw0KK+OBi+OBquOBhCzjgY/jgb/jgZMNCivjgZPjgZ/jgY0s44GYDQor44Gf44GL44Gv44GXLOOCiOOBhuOBkw0KK+OBl+OBkuOChOOBvizjgajjgb/jgYoNCivjgbXjgYvjgaAs44GC44GN44GKDQor44GX44GK44GYLOOBi+OBpOOChuOBjQ0KK+OCguOCiuOChCzjgbXjgb/jgbLjgo0NCivjgYrjgYrjgaTjgYss44G+44GV44KEDQor44GC44G5LOOBvuOBleOBn+OBiw0KK+OBsuOCieOBhCzjgZ/jgYvjgobjgY0NCivjgoDjgonjgb7jgaQs44GY44KF44KTDQor44G/44Ga44GfLOOBvuOBleOBvw0KK+OBu+OCiuOBiCzjgYvjgZrjgobjgY0NCivjgbLjgYvjgZUs44G+44GV44Gf44GLDQor44GK44GX44Gf44GrLOOBvuOBk+OBqA0KK+OBk+OBsOOChOOBlyzjgYvjgaTjgb8NCivjgY/jgonjga/jgZcs44Gy44Gn44KG44GNDQor44Gy44KJ44Gw44KLLOOBn+OBkeOBig0KK+OBteOBmOOBiOOBoCzjgb7jgZPjgagNCivjgajjgZbjgo8s44GL44Gk44G/DQor44KE44Gq44GbLOOBl+OBkuOCiw0KK+OBj+OBvOOBnyzjgojjgZfjgYoNCivjgb7jgb/jgoQs44G+44GV44GNDQor44KG44Gv44KJ44GOLOOBvuOBleOBvw0KK+OBoeOCh+OBhuOBquOCkyzjgojjgZfjgb7jgo0NCivjgb/jgojjgZcs44Go44GK44KLDQor44Gu44GY44G+LOOCiOOBl+OBruOCig0KK+OCguOCiuOBleOBjSzjgb7jgZPjgagNCivjgZPjgoTjgb4s44Go44GX44GC44GNDQor44GL44Go44GGLOOBsuOCjeOBjQ0KK+OBjeOBruOBl+OBnyzjgoTjgaHjgogNCivjgYvjgo/jgoDjgo0s44GV44Go44GXDQor44KC44KKLOOBkeOBhOOBhOOBoQ0KK+OBsuOCieOBl+OBnyzjgZXjgaDjgY0NCivjgYvjgo/jgZfjgb4s44KK44KH44GGDQor44G144KL44GL44KPLOOBguOBjeOBqA0KK+OBhOOCk+OBp+OCkyzjgb7jgZXjgbLjgZMNCivjgoTjgb7jgaAs44KE44GZ44KG44GNDQor44Gk44GP44GgLOOBv+OBruOCiw0KK+OBhOOCj+OBleOBjSzjgb7jgZXjgbLjgagNCivjgYrjgb7jgYgs44GK44GV44KADQor44GZ44Ga44GNLOOBvuOBleOChuOBjQ0KK+OBr+OCiSzjgb7jgZXjgbLjgZMNCivjgZXjgYvjgYQs44Gf44Gk44KA44GtDQor44KC44KK44KELOOBi+OBmuOBvuOBlQ0KK+OBv+OChOOCguOBqCzjgajjgZfjgbLjgo0NCivjgZfjgZLjgZ8s44G+44GV44Gy44KNDQor44GE44GX44GL44KPLOOBsuOBp+OBruOCig0KK+OBn+OBluOBjSzjgZXjgaDjgoANCivjgZnjgYjjgbLjgo0s44KA44Gt44KEDQor44GL44Gt44GgLOOBk+OBhuOBhOOBoQ0KK+OBmeOBiOOBsuOCjSzjgZjjgoXjgpPjgYTjgaENCivjgZXjgZXjgY0s44KK44KF44GG44GV44GPDQor44Gy44KE44G+LOOBn+OBpOOBr+OCiw0KK+OBjeOBqeOBkOOBoSzjgojjgZfjgbLjgo0NCivjgZfjgb7jgaAs44Go44GX44KG44GNDQor44G/44KE44GRLOOBsuOBqOOBvw0KK+OCguOCiizjgZjjgo3jgYYNCivjgZfjgonjgYvjgo8s44GT44GG44GYDQor44KP44GL44Gw44KE44GXLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgYoNCivjgYLjgb7jga4s44GY44KF44KT44GYDQor44Gf44GR44GE44GhLOOBsuOCjeOBn+OBiw0KK+OBl+OCkyzjgZHjgYTjgZMNCivjgYvjgZXjga/jgoks44Gm44Gk44KEDQor44Gf44Gq44GLLOOBkeOBhOOBlw0KK+OBiuOBj+OBoCzjgYLjgY3jgokNCivjgYvjgajjgYYs44Go44KC44GTDQor44GL44KP44GV44GNLOOBvuOBleOBkw0KK+OBi+OBqOOBhizjgYvjgZrjgYoNCivjgYTjgaHjgZss44G+44GV44GC44GNDQor44GN44Gf44GM44KPLOOBkuOCk+OBuOOBhA0KK+OChOOBmeOBhCzjgojjgZfjga7jgbYNCivjgYjjgaAs44Go44G/44GL44GaDQor44Gv44KE44GXLOOBn+OBpOOBmA0KK+OBquOBjOOBhCzjgZXjgajjgZcNCivjgajjga7jgoDjgoks44G+44GV44Gu44KKDQor44Gf44Gq44GLLOOBruOBtuOChuOBjQ0KK+OBj+OCiuOBsOOChOOBlyzjgojjgZfjga7jgooNCivjgY3jgoDjgoks44GL44Gk44GTDQor44Gv44Gc44GNLOOBruOBtuOChuOBjQ0KK+OBguOCk+OBrizjgYLjgaTjgZcNCivjgZ/jgYvjgojjgZcs44KI44GX44GV44GoDQor44GC44KT44GW44GELOOBl+OCh+OBhuOBmOOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYrjgZXjgoANCivjga/jgonjga4s44Gk44Gt44GKDQor44Gq44GL44GM44KPLOOBi+OBpOOCiOOBlw0KK+OBq+OBl+OBi+OCjyzjgobjgY3jgYoNCivjgZfjgbbjgoQs44GL44Ga44Gy44KNDQor44GL44Go44GGLOOBruOBtuOBsuOCjQ0KK+OBguOBoOOBoSzjgajjgZfjgbLjgo0NCivjgZXjgY/jgonjgYQs44KE44GZ44Gf44GLDQor44GP44GV44GuLOOBqOOBl+OBsuOCjQ0KK+OBv+OBquOBv+OBnuOBrizjgb/jga7jgosNCivjgaTjgZjjgoDjgoks44GC44GN44Go44GXDQor44KE44G+44GgLOOBhOOBleOCgA0KK+OBi+OBpOOBl+OBvizjgZfjgZLjgb8NCivjgZPjgoTjgarjgYss44Gy44KN44KG44GNDQor44Gf44Gw44GfLOOBguOBjeOCiQ0KK+OBguOBoOOBoSzjgojjgZfjgbLjgo0NCivjgbLjgo3jga4s44Gb44GE44GE44GhDQor44Gk44GW44GNLOOBsuOCjeOBguOBjQ0KK+OBn+OBoeOBsOOBqizjgZfjgZLjgYLjgY0NCivjgbnjgaPjgZfjgocs44GL44Ga44G/DQor44G+44Gk44GX44GfLOOBoeOCheOBhuOBnuOBhg0KK+OBn+OBq+OBkOOBoSzjgZHjgpPjgZfjgoXjgYYNCivjgarjgYvjgajjgoIs44KA44Gk44G/DQor44Gr44GX44KA44KJLOOBsuOCjeOBlw0KK+OBv+OBhuOCiSzjgb7jgZPjgagNCivjgZPjgpPjgaks44GK44GV44KADQor44G+44Gk44GELOOBvuOBleOBjQ0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgYvjgZoNCivjgbvjgorjgYQs44Gy44KN44GXDQor44G+44GZ44KC44GoLOOBpOOBqOOCgA0KK+OBquOBi+OBmOOBvizjgaHjgYvjgZcNCivjgY3jgoDjgoks44GR44KT44GE44GhDQor44G/44KPLOOBsuOCjeOChuOBjQ0KK+OBhOOBl+OBsOOBlyzjgoTjgZnjgZcNCivjgYjjgZDjgaEs44Gu44KK44Gy44GVDQor44GE44Gq44G144GPLOOBmOOCheOCkw0KK+OCj+OBn+OBrOOBjSzjgoTjgZnjgbLjgo0NCivjgbLjgZDjgaEs44KI44GX44Gy44GTDQor44GE44GR44GuLOOBjeOBj+OBig0KK+OBhuOCgeOBr+OCiSzjgb7jgarjgbYNCivjga7jgZbjgo8s44Gf44Gg44GXDQor44GE44G+44GELOOBvuOBleOBjQ0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgZgNCivjgYTjgYTjgaAs44Gv44KL44Gy44GVDQor44G144GY44GL44KPLOOBi+OBiuOCiw0KK+OBq+OBl+OBiCzjgZ/jgaDjgbLjgZMNCivjgZPjgZnjgZIs44Gy44KN44GXDQor44GK44GK44GfLOOBmOOCheOCk+OBkw0KK+OBruOBmCzjgY/jgavjgbLjgZMNCivjgZPjgbzjgoos44G/44GN44GKDQor44GZ44GO44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBi+OCj+OBnyzjgabjgaTjgbLjgZMNCivjgZXjgoHjgZfjgb4s44G/44Gt44GKDQor44GT44KE44G+LOOBjeOCiOOBn+OBiw0KK+OBiOOCk+OBi+OBhCzjgZ/jgYvjgZcNCivjgZPjgoLjgaAs44Gk44Go44KADQor44GK44GM44KPLOOBk+OBhuOBhOOBoQ0KK+OChOOBvuOCgOOCiSzjgYvjgZrjgb7jgZUNCivjgYjjga7jgoLjgags44KM44GE44GYDQor44Gf44GL44GgLOOBsuOBleOBn+OBoA0KK+OBquOBi+OBv+OBnizjgobjgb/jgZMNCivjgYrjgYvjgoDjgoks44Gy44KN44GXDQor44GL44G/44Gw44KE44GXLOOBm+OBhOOBmA0KK+OBteOBmOOCguOCiizjgb/jgY3jgYoNCivjgY/jgo3jgaAs44GX44KT44GE44GhDQor44GV44Go44GGLOOCiOOCiuOBiA0KK+OCiOOBl+OCgOOCiSzjgZ/jgY3jgYoNCivjgoLjgZ/jgYQs44Gf44GP44GYDQor44KA44KJ44GfLOOBqOOBiuOCiw0KK+OBv+OCjyzjgarjgYrjgagNCivjgYTjga/jgoks44GI44G/DQor44GE44G+44GELOOBn+OBi+OBlw0KK+OBsuOBrizjgYvjgZrjgYoNCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44Gb44GoLOOCiOOBhuOBmA0KK+OBj+OBvuOBjOOBhCzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgaAs44KI44GX44GKDQor44KP44Gf44Gq44G5LOOChuOBhuOBkw0KK+OChOOBleOBiyzjgbLjgo3jgZcNCivjgZXjgajjgYYs44GC44GN44Gy44KNDQor44G/44KE44Gf44GRLOOBsuOCjeOBruOBtg0KK+OBvuOBpOOBhuOCiSzjgbLjgajjgZcNCivjgb7jgaTjgZfjgZ8s44G+44GT44GoDQor44GG44KJ44G5LOOBhOOBleOCgA0KK+OBl+OBjOOBjSzjgb7jgZXjgojjgZcNCivjgabjgonjgaAs44KI44GX44Gy44GoDQor44GE44KP44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBhOOBruOBhuOBiCzjgZjjgo3jgYYNCivjgoLjgaHjgZrjgY0s44KG44GN44GKDQor44KI44GX44Ga44G/LOOBiOOBhOOBhOOBoQ0KK+OBv+OBhuOCiSzjgb/jgaTjgosNCivjgb/jgZrjga4s44Gf44GL44KG44GNDQor44KI44GX44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBteOCi+OBhCzjgojjgZfjgbLjgo0NCivjga/jgoTjgZcs44GX44GS44GC44GNDQor44GX44KJ44GE44GXLOOBsuOBp+OBig0KK+OBmeOBjOOCj+OCiSzjgZ/jgaTjgYoNCivjgarjgYvjgYQs44GR44GE44GE44GhDQor44Gu44G144GYLOOCiOOBl+OBr+OCiw0KK+OBleOBqOOBhizjgbLjgo3jgYvjgZoNCivjgY/jgo3jgaAs44GN44GE44GhDQor44GE44GR44GgLOOBn+OBi+OBlw0KK+OBleOBjCzjgZHjgYTjgZcNCivjgb/jgoTjgYvjgo8s44GE44GP44Gy44GVDQor44KP44KJ44GX44GqLOOBl+OBkuOCiw0KK+OBjeOBn+OBjOOCjyzjga7jgbbjgobjgY0NCivjgYTjgb7jgYQs44G144G/44GC44GNDQor44G/44GV44GNLOOBsuOCjeOBruOBtg0KK+OBhOOBl+OBoCzjgZ/jgZHjgZcNCivjgorjgY/jgoks44Gy44Gn44GC44GNDQor44GX44KH44GG44GYLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBteOBj+OBquOBjCzjgojjgZfjgYvjgZoNCivjgY/jgo3jgY0s44Gf44GL44GKDQor44G+44Gf44GNLOOBl+OCh+OBhuOBluOCkw0KK+OBm+OBjeOBrSzjgb7jgZXjga/jgosNCivjgoTjgb7jgZfjgZ8s44G/44Gk44Gy44KNDQor44Gf44Gq44GLLOOCiOOBl+OBguOBjQ0KK+OBiuOBiuOBr+OBvizjgb7jgZXjgbLjgo0NCivjgYrjgYrjgaTjgbws44KI44GX44GC44GNDQor44Gf44GELOOBsuOBleOBr+OCiw0KK+OBpOOCi+OChCzjgb7jgZXjga7jgooNCivjgojjgZfjgaAs44KI44GG44GE44GhDQor44G+44GZ44G/44GkLOOBn+OBi+OBlw0KK+OBi+OBmeOChCzjgZfjgZLjgYoNCivjgojjgZfjgaAs44G/44Gu44KLDQor44GL44KP44KA44KJLOOBsuOBp+OBjQ0KK+OBr+OChOOBlyzjgY/jgavjgbLjgZMNCivjgY/jgavjgoLjgags44G+44GV44KG44GNDQor44GC44KJ44GL44KPLOOBsuOBquOBkw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgYTjgZfjgZDjgo0s44Gb44GE44GYDQor44Gv44KE44G/LOOBi+OBpOOBsuOBkw0KK+OBv+OBquOBv+OBnuOBrizjgY3jgpPjgZgNCivjgZXjgYvjgZ8s44G/44Gu44KLDQor44GL44KP44KC44GoLOOBteOBv+OBi+OBmg0KK+OCgOOCieOBiuOBiyzjgoTjgZnjga7jgooNCivjgYTjgajjgYYs44KI44GX44GKDQor44KP44Gf44Gq44G5LOOBv+OBoeOBig0KK+OBruOCgOOCiSzjgb7jgZXjgYvjgZoNCivjgZXjgajjgYYs44Gv44KL44GqDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgYvjgaQNCivjgazjgovjgY0s44Gy44Gn44Gy44GTDQor44KI44GX44GgLOOCiOOBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZcNCivjgbLjgonjgYQs44KI44GX44KG44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBiuOBjyzjgo3jgYYNCivjga/jgoTjgZXjgYss44KE44GZ44GTDQor44GC44GV44GuLOOBkeOCk+OBmA0KK+OBteOBmOOBleOBjSzjgZfjgpPjgoQNCivjgYLjgY3jgoLjgags44KK44GLDQor44GX44G+44GgLOOBvuOBleOBiA0KK+OBv+OBmuOBi+OBvyzjgb7jgZXjga/jgosNCivjgarjgYvjgYzjgo8s44Go44GK44KLDQor44GV44Go44GGLOOBpuOBpOOChA0KK+OBk+OBsOOBl+OCiizjgZHjgpPjgZgNCivjgYLjgonjgY0s44KI44GX44GKDQor44GZ44Ga44GNLOOBquOBiuOBqOOBlw0KK+OBq+OBl+OBpyzjgZvjgaQNCivjgYrjgaHjgYLjgYQs44KI44GX44Gy44GVDQor44Gu44Gq44GLLOOBn+OBi+OBlw0KK+OChOOBmeOBhCzjgorjgoXjgYbjgZgNCivjgZPjga/jgZ8s44GR44KT44GE44GhDQor44G/44Gu44GX44G+LOOBguOBpOOBig0KK+OBpuOCieOBl+OBvizjgY3jgb/jgbLjgZMNCivjgoTjgY/jgo8s44KI44GX44GKDQor44GZ44GM44KP44KJLOOBv+OBoeOBig0KK+OBv+OBpOOBr+OBlyzjgabjgaTjgo3jgYYNCivjga7jgoDjgoks44Gu44KK44GTDQor44Gh44KH44GGLOOBguOBmuOBvw0KK+OBleOBqOOBhizjgorjgofjgYbjgZMNCivjgZfjgZrjga/jgoks44KM44GE44GTDQor44Gv44KE44GX44GL44KPLOOBkeOCk+OBmA0KK+OBq+OCjyzjgojjgZfjgYoNCivjgb/jgYjjga4s44GR44KT44GE44GhDQor44GX44G+44GgLOOBsuOBp+OBqA0KK+OBquOBi+OCgOOCiSzjgajjgZfjgYoNCivjgbLjgonjga4s44KK44KH44GG44GE44GhDQor44KE44G+44Go44KELOOBi+OBmuOBsuOBkw0KK+OBpOOBruOBoCzjgoTjgZnjga7jgooNCivjgZPjgbDjgoTjgZcs44Gu44G244GC44GNDQor44GV44GL44GP44KJLOOBjeOCh+OBhuOBkw0KK+OBvuOBpOOBoCzjgb7jgZXjgYLjgY0NCivjgYTjgb7jgoDjgoks44Gb44GE44GXDQor44KE44GO44Gv44GXLOOBquOBiuOBkw0KK+OBiuOBjuOBrizjgbLjgo3jgYoNCivjgZ/jgarjgYss44KI44GX44G+44GVDQor44Gy44GMLOOCiOOBl+OBi+OBmg0KK+OBleOBkyzjgaTjgajjgoANCivjgZ/jgZbjgY0s44Gf44KC44GkDQor44GE44GE44GgLOOBvuOBleOBr+OCiw0KK+OBhOOBhOOBoCzjgorjgofjgYbjgZnjgZENCivjgb7jgaTjgZDjgb4s44GX44GS44G7DQor44KA44KJ44GfLOOBkeOCkw0KK+OChOOBmeOCguOBqCzjgb7jgZPjgagNCivjgZfjgb/jgZos44Gy44KN44GXDQor44KP44GP44GELOOCiOOBl+OBn+OBiw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYoNCivjgY3jgZ/jgYQs44Go44GX44Gy44GTDQor44GC44Gg44GhLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBr+OBquOBtuOBoSzjga/jgZjjgoENCivjgZXjgajjgYYs44GP44Gr44Gy44KNDQor44GC44KJ44GELOOBqOOBl+OBsuOBkw0KK+OBn+OBkeOBquOBiyzjgZXjgajjgZcNCivjgYvjgYQs44G/44G744GTDQor44GC44GL44GgLOOBl+OBmuOBig0KK+OBj+OBq+OBmeOBiCzjgbLjgo3jgYLjgY0NCivjgb7jgYjjgYvjgo8s44GC44GN44KJDQor44G/44Gq44G/LOOBv+OBpOOBlw0KK+OBn+OBjeOBjOOBvyzjgbLjgafjgobjgY0NCivjgb7jgaTjgYQs44G+44GT44GoDQor44GX44KJ44GELOOBvuOBleOBv+OBoQ0KK+OBn+OBkeOCiOOBlyzjgZvjgYTjga7jgZnjgZENCivjgZ/jgYvjgaAs44GN44KI44Gf44GLDQor44Gf44GL44GOLOOBn+OBi+OBsuOBkw0KK+OBj+OBqeOBhizjgY3jgojjgZ/jgYsNCivjgZfjgb7jgaAs44Gu44G244GTDQor44GL44Go44GGLOOBi+OBmuOBig0KK+OBl+OBjuOCh+OBhizjgbLjgafjgYLjgY0NCivjgbLjgo3jga4s44Gd44GK44GY44KDDQor44GN44Gu44GX44GfLOOCiOOBl+OBiA0KK+OBl+OBv+OBmizjgZfjgofjgYbjgZ7jgYYNCivjgZfjgoDjgoks44Gy44KN44GC44GNDQor44GP44GV44GL44KKLOOBv+OBuw0KK+OBi+OCi+OBuSzjgajjgZfjga/jgosNCivjgb7jgaTjgoLjgags44Gq44GK44KG44GNDQor44GX44G+44KA44KJLOOBqOOBvuOBlQ0KK+OBi+OBpOOBi+OCjyzjgZ/jgYvjgYoNCivjgYTjgZos44GE44GV44GKDQor44GV44GP44KJ44KC44GoLOOBhOOBpOOBmA0KK+OCguOCiuOBnyzjgZjjgo3jgYYNCivjgZ/jgarjgbks44GP44Gr44GE44GhDQor44Gv44Gj44Go44KKLOOBteOBv+OBqA0KK+OCiuOCheOBhuOBlCzjgZfjgoXjgpPjgYTjgaENCivjgYrjgb7jgaTjgZbjgo8s44G+44GV44Gv44KLDQor44GK44Go44KPLOOChuOBjeOCiOOBlw0KK+OBk+OBoOOBvizjgZvjgYTjgYTjgaENCivjgYvjgoTjgZfjgb4s44KG44GG44GYDQor44GT44Gw44KE44GXLOOBl+OBkuOCiw0KK+OBj+OBq+OBiOOBoCzjgb7jgY3jgYoNCivjgZPjgYYs44GL44Ga44Gq44KKDQor44Gr44GX44KE44G+LOOBsuOBqOOBvw0KK+OCj+OBoCzjgbLjgo3jgoQNCivjgavjgZfjgoLjgags44Gf44GL44GXDQor44GV44GE44Go44GGLOOBi+OBpOOBruOCig0KK+OBqOOBl+OBvizjgojjgYbjgYTjgaENCivjgYrjgYrjgaTjgYss44G744GT44GPDQor44GK44GuLOOBvuOBleOCiw0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgZXjgY/jgonjgYQs44Gf44GL44GXDQor44GK44Gc44GNLOOBn+OBi+OBlw0KK+OBiuOBi+OBoCzjgb7jgZXjgb/jgaQNCivjgYrjgYzjgo8s44Gy44KN44GXDQor44GE44GR44GM44G/LOOBsuOBp+OBqOOBlw0KK+OBk+OBvuOBpCzjgZ/jgYvjga7jgooNCivjgojjgZfjgYQs44KI44GX44GC44GNDQor44Gy44KJ44GuLOOBl+OCh+OBhuOBhOOBoQ0KK+OBn+OBi+OBmeOBiyzjgbLjgo3jgZcNCivjga/jgZfjgoLjgags44KE44GZ44KG44GNDQor44GP44KP44GILOOBjeOBj+OBig0KK+OBi+OBreOBvuOBpCzjgYvjga3jgbLjgacNCivjgb7jgaTjgYos44GR44GE44GE44GhDQor44GE44GpLOOBn+OBi+OBsuOBkw0KK+OBhOOBrizjgZjjgoXjgpPjgYTjgaENCivjgZXjgYTjgajjgYYs44Gf44GR44GXDQor44GL44G/44KE44G+LOOBk+OBhuOBmA0KK+OBk+OBl+OCguOBqCzjgZPjgYbjgYTjgaENCivjgYrjgYrjgYzjgo/jgoks44KI44GX44Gu44G2DQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBquOBjOOBvuOBpCzjgZfjgpPjgYTjgaENCivjgZnjgZrjgY0s44GU44KN44GGDQor44Gm44KJ44GKLOOCiOOBhuOBmA0KK+OBu+OCiuOBkSzjgYvjgYrjgosNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GK44GM44KPLOOBk+OBhuOBhOOBoQ0KK+OBv+OChOOCguOBqCzjga7jgbbjgYoNCivjgYrjgYrjgZnjgb8s44Gy44KN44KG44GNDQor44GE44KP44G244GhLOOBruOBtuOChOOBmQ0KK+OBvuOBpOOBhuOCiSzjgZ/jgaTjgYoNCivjgZXjgo/jgaEs44Gh44GL44GKDQor44Gm44KJ44GgLOOBm+OBpOOBkw0KK+OBhOOBsOOChOOBlyzjgobjgZ/jgYsNCivjgYTjgo/jgZss44GY44KF44KT44GE44Gh44KNDQor44GK44GM44KPLOOBm+OBhOOBmA0KK+OBguOBnSzjgoTjgZnjgajjgoINCivjgbXjgY/jgoLjgags44GV44KG44KKDQor44GE44GnLOOBteOBv+OBn+OBiw0KK+OBi+OCj+OBleOBjSzjgabjgaTjgZgNCivjga/jgovjgaos44G+44GV44Gu44KKDQor44Gf44GY44G+LOOChuOBjeOBteOBvw0KK+OBi+OBquOChOOBvizjgojjgYbjgZgNCivjgZ/jgarjgYss44KP44Gf44KLDQor44G+44Gk44GW44GNLOOBvuOBleOBig0KK+OBhOOBruOBleOBiyzjgZPjgYbjgZgNCivjgYrjgZfjgoTjgb4s44KI44GX44Gy44GVDQor44Gf44GR44GG44GhLOOBn+OBi+OBlw0KK+OBleOBleOBiuOBiyzjgajjgZfjgobjgY0NCivjgZPjgoLjgoos44G+44GV44GC44GNDQor44Gf44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBhOOBkeOBjOOBvyzjgZHjgpPjgZgNCivjgoTjgb7jgZDjgaEs44G+44GV44GC44GNDQor44GL44KP44GL44G/LOOBl+OBkuOBjQ0KK+OBhOOBm+OBjSzjgYjjgYTjgZnjgZENCivjgZ/jgZHjgaAs44Gy44Gn44KG44GNDQor44Gf44GL44KE44GZLOOBvuOBquOBtg0KK+OBi+OCgeOBoCzjgZ/jgZHjgajjgZcNCivjgbXjgZjjga4s44G+44GT44GoDQor44G/44GV44GNLOOChOOBmeOBruOCig0KK+OBquOBi+OCgOOCiSzjgajjgZfjgYLjgY0NCivjgYrjgYzjgo8s44GT44GG44GYDQor44Gq44GL44GW44KPLOOBsuOBp+OBqOOBlw0KK+OBm+OBjSzjgoTjgZnjgY/jgasNCivjgojjgZfjgYvjgo8s44Gf44GP44KEDQor44Gf44GM44KPLOOBn+OBi+OBlw0KK+OBv+OBn+OBqyzjgajjgZfjgbLjgZMNCivjgZnjgYjjgZ8s44GC44GN44Gy44GoDQor44GE44Gs44GELOOBkeOCkw0KK+OBiuOBleOBoCzjgZXjgajjgZcNCivjgbXjgovjgYvjgo8s44GL44Gk44GKDQor44GZ44Ga44GNLOOBvuOBk+OBqA0KK+OBjeOBn+OCgOOCiSzjgorjgofjgYbjgZnjgZENCivjgZPjgb7jgaQs44Gy44KN44Gf44GLDQor44GC44GV44GgLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBi+OCk+OBluOBjSzjgoTjgZnjgb7jgZUNCivjgYbjgZnjgYQs44KI44GX44G144G/DQor44G144KL44KELOOBqOOBl+OBsuOBkw0KK+OCiOOBkeOCgOOCiSzjgbXjgb/jgojjgZcNCivjgojjgZPjgYgs44KI44GX44GNDQor44GC44GL44GE44KPLOOBqOOBl+OBsuOBkw0KK+OBteOBj+OBl+OBvizjgbLjgo3jgoTjgZkNCivjgoTjgZjjgb4s44KE44GZ44GXDQor44Gv44KJLOOBv+OChuOBjQ0KK+OBjeOBl+OBoCzjgobjgYbjgZ7jgYYNCivjgY/jgbws44G/44Gk44KLDQor44GL44Gf44GO44KKLOOChOOBmeOBruOCig0KK+OBhOOBoeOBhCzjgbXjgb/jgoQNCivjgb7jgaTjgY0s44Go44GX44GC44GNDQor44KP44GR44G5LOOBkeOCk+OBmA0KK+OBvuOCi+OChOOBvizjgbLjgafjgYoNCivjgaTjgbDjgY0s44GX44GS44KLDQor44GV44GuLOOBsuOCjeOBlw0KK+OBv+OChOOCguOBqCzjgb7jgZXjgajjgZcNCivjgbXjgY/jgoTjgb4s44G+44GV44GC44GNDQor44GG44GI44KA44KJLOOBvuOBleOCiw0KK+OBj+OCj+OBi+OBqSzjgorjgY0NCivjgY/jgavjgb7jgaQs44G+44GV44KLDQor44GL44Gf44GK44GLLOOBruOCiuOChuOBjQ0KK+OBqOOBv+OBnyzjgYvjgZrjga7jgooNCivjgarjgYvjgoDjgoks44GC44Gk44Gy44GTDQor44GP44Gp44GGLOOCiOOBl+OBpuOCiw0KK+OBiuOBtuOBoSzjgabjgovjgbLjgZMNCivjgojjgZfjgYvjgo8s44Go44GK44KLDQor44GL44GS44KE44G+LOOBvuOBk+OBqA0KK+OBqOOBoCzjgZHjgYTjgYTjgaENCivjgZ/jgYvjga/jgoks44GV44Go44GXDQor44G+44Gk44GX44GfLOOBl+OCk+OBmA0KK+OBk+OBoOOBhOOCiSzjgbLjgafjgZcNCivjgZfjgpPjgYvjgYQs44KC44Go44GKDQor44Gm44KJ44GgLOOBvuOBleOBsuOBqA0KK+OBi+OCj+OBjeOBnyzjga/jgZjjgoENCivjgb/jgYbjgoks44GV44Gq44GIDQor44GC44G5LOOBsuOBqOOBlw0KK+OBq+OBl+OBi+OCjyzjgobjgY3jgbLjgo0NCivjgbvjgZ3jgaAs44GE44KP44GKDQor44G+44GZ44GgLOOCiOOBl+OBig0KK+OBi+OBluOBvizjgZ/jgZHjgZcNCivjgYLjgonjgb7jgY0s44GL44Ga44GKDQor44KP44Gf44Gs44GNLOOBv+OBpOOBjg0KK+OBleOBi+OCguOBqCzjgaTjgojjgZcNCivjgYLjgb7jgYzjgb8s44GX44KTDQor44GT44KT44GuLOOBhOOBleOBig0KK+OBiuOBj+OBoCzjgojjgZfjga7jgooNCivjgYrjga/jgY8s44G/44Gk44GKDQor44Gq44GL44KA44KJLOOCiOOBl+OBteOBvw0KK+OBquOBi+OCgOOCiSzjgobjgYbjgYTjgaENCivjgYbjgZfjgoTjgb4s44KG44GN44GKDQor44KE44GX44GNLOOBguOBhOOBhOOBoeOCjeOBhg0KK+OBjeOBruOBmyzjgZfjgoXjgpPjgYTjgaENCivjgo/jgYvjgoTjgb4s44GT44GG44GE44GhDQor44GE44G+44GELOOBvuOBleOChuOBjQ0KK+OBvuOBiOOBoCzjgY3jgojjgZcNCivjgb7jgaTjgZfjgZ8s44GI44GE44GYDQor44Gy44KJ44GQ44GhLOOBsuOCjeOBlw0KK+OCj+OBoCzjgYLjgaTjgZMNCivjgo/jgZ/jgarjgbks44Gd44GG44GE44GhDQor44G+44Gk44GELOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgb/jgY3jgYoNCivjgarjgYvjgoDjgoks44GY44KF44KT44GE44Gh44KNDQor44Gf44GN44GfLOOCiOOBl+OBqA0KK+OBvuOBmeOBoCzjgajjgoLjgZMNCivjgb/jgoTjgYbjgaEs44G+44KG44G/DQor44GX44KA44KJLOOBleOBi+OBiA0KK+OBvuOBpOOBhCzjgZ/jgY3jgZMNCivjga/jgonjga/jgZ8s44Go44G/44Gf44KN44GGDQor44Gy44GV44Gf44GrLOOBguOBpOOBlw0KK+OBi+OBjOOBvyzjgb7jgZXjgaTjgZANCivjgojjgZfjgoDjgoks44KG44GG44GYDQor44GK44GK44Gk44GLLOOBkeOBhOOBlA0KK+OBn+OBquOBiyzjgZfjgpPjgYTjgaENCivjgbLjgonjga4s44GX44KF44GGDQor44Gf44GR44GZ44GILOOBpuOBpOOChA0KK+OBq+OBl+OBrizjgojjgZfjgobjgY0NCivjgYrjgYrjgaTjgYss44KB44GQ44G/DQor44GK44GgLOOBl+OCk+OBmA0KK+OBl+OBv+OBmizjgobjgZ/jgYsNCivjga/jgb7jgoLjgags44Gf44GL44KI44GXDQor44G/44KE44G+44GILOOBvuOBleOBquOCig0KK+OBquOBjOOBl+OBvizjgYjjgYTjgZgNCivjgb/jgaTjgoEs44GT44GG44GYDQor44GL44GU44Gf44GrLOOCiOOBl+OBi+OBmg0KK+OCiOOBk+OChOOBvizjgZ/jgYvjgbXjgb8NCivjgZXjgYvjgZ8s44GR44KT44GYDQor44GK44GE44GP44G8LOOBguOBjeOBsuOBpw0KK+OBj+OCieOCguOBoSzjgbLjgo3jgoQNCivjgYLjgpPjgZbjgYQs44G+44GV44KG44GNDQor44G144GP44GX44G+LOOCiuOBiA0KK+OBquOBi+OCgOOCiSzjgbLjgajjgb8NCivjgYTjgajjgYQs44KG44KK44GTDQor44G744GX44GuLOOBv+OBoeOBkw0KK+OBk+OBhOOBpyzjgbLjgo3jgbLjgZMNCivjgYrjgZbjgY0s44GY44KF44KTDQor44Gb44GY44KCLOOBvuOBleOBv+OBoQ0KK+OBmeOBqeOBhizjgb7jgZXjgb/jgaQNCivjgYvjgZjjgo/jgoks44G/44Gp44KKDQor44GZ44Ga44GNLOOBi+OBpOOBsuOCjQ0KK+OBu+OBl+OBrizjga/jgovjgZMNCivjgarjgYvjgoDjgoks44KI44GX44GC44GNDQor44KC44KK44GfLOOBguOBjeOBi+OBmg0KK+OChOOBvuOBluOBjSzjgajjgZfjgbLjgZMNCivjgYrjgY/jgYzjgo8s44G+44GV44Gy44GTDQor44Gq44GM44Gv44G+LOOBsuOCjeOChuOBjQ0KK+OCiOOBl+OCgOOCiSzjgYLjgY3jgb/jgaQNCivjgb7jgaTjgaAs44Gf44GL44Go44GXDQor44G744GL44Ge44GuLOOBguOBpOOBsuOBlQ0KK+OBguOBuSzjgajjgZfjgaTjgZANCivjgarjgYzjgYQs44GT44GG44GYDQor44Go44GM44GXLOOBqOOBl+OBsuOBqA0KK+OChOOBluOBjSzjgabjgYTjgZ7jgYYNCivjgoTjgb7jgYbjgaEs44Gy44Gn44GNDQor44G/44GV44GNLOOBquOBiuOBjQ0KK+OCiOOBl+OBoCzjgZfjgpPjgZgNCivjgarjgYvjgoLjgags44GX44GS44KLDQor44GX44Gu44Gv44KJLOOBpOOBreOBi+OBmg0KK+OBquOBi+OBq+OBlyzjgYLjgY3jgokNCivjgoTjgZjjgb4s44GN44KI44GXDQor44Go44KI44G144GPLOOChuOBhuOBmA0KK+OBn+OBi+OBl+OBvizjgYvjgaTjgZgNCivjgbXjgZfjgavjgZcs44GN44G/44GIDQor44KA44GL44GELOOBpuOBpOOChA0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgobjgZcNCivjgYvjgo/jgbDjgZ8s44GV44Go44GXDQor44KA44GL44GI44GgLOOBleOBqOOCiw0KK+OBl+OBm+OBjSzjgYTjgaPjgZfjgpMNCivjgYvjgZ/jgYrjgYss44KI44GX44Gy44GnDQor44Gq44GE44Go44GGLOOBsuOCjeOBjQ0KK+OBv+OBqCzjgoTjgZnjgagNCivjgYrjgYrjgavjgZcs44Go44GX44KN44GGDQor44KI44GT44KE44G+LOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgYLjgY0NCivjgYTjgZbjgo8s44Gy44GV44Gu44KKDQor44Gf44Gr44GM44KPLOOBqOOBv+OBiA0KK+OBmeOBjuOBnyzjgobjgYsNCivjgYrjgZfjgZ8s44G+44GV44KG44GNDQor44GX44G+44GgLOOBqOOCguOBkw0KK+OChOOBvuOCgOOCiSzjgZPjgYbjgYTjgaENCivjgbXjgY/jgYrjgYss44G+44GV44GXDQor44KE44Gq44KKLOOBsuOCjeOBguOBjQ0KK+OBmeOBmuOBjSzjgZfjgpPjgZgNCivjgZXjgYvjgYQs44GV44Go44KLDQor44KE44G+44GgLOOChuOBjeOBsuOCjQ0KK+OChOOBvuOBk+OBlyzjgZfjgZLjgosNCivjga7jgoLjgags44Go44GX44KG44GNDQor44Gf44GR44GX44GfLOOCguOBqOOBjQ0KK+OBv+OBruOBoCzjgZfjgZLjgobjgY0NCivjgYLjgZXjgYQs44GX44G7DQor44KA44Gt44KE44GZLOOBsuOBp+OChuOBjQ0KK+OBi+OCj+OBq+OBlyzjgb7jgZPjgagNCivjgZXjgYvjgZDjgaEs44KE44GZ44Gy44GVDQor44KE44G+44GW44GNLOOBqOOBl+OBsuOBkw0KK+OBguOBleOBiuOBiyzjgbLjgafjga7jgbYNCivjgY3jga7jgZfjgZ8s44G/44GN44Ge44GGDQor44G/44G+LOOBjeOCiOOBvw0KK+OBteOBj+OCguOCiuOBnyzjgZfjgZLjgYoNCivjgYvjgZjjgoTjgb4s44KI44GX44GTDQor44KE44G+44GW44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBleOBqOOBhizjgajjgZfjgoQNCivjgYvjgo/jgbks44G/44Gk44Gy44GTDQor44G+44KL44KE44G+LOOBruOBtuOCiOOBlw0KK+OBiuOBjOOCieOBrSzjga7jgbbjgZMNCivjganjgYQs44KG44GG44Ge44GGDQor44Gf44Gq44GLLOOBv+OBpOOBig0KK+OBiuOBjuOBl+OBvizjgYrjgZXjgoANCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44G144KL44KELOOBsuOCjeOBruOCig0KK+OBteOBj+OBhCzjgaTjgojjgZcNCivjgb7jgZnjgaAs44Gf44GL44Gy44KNDQor44G744KT44GgLOOChuOBv+OBkw0KK+OBquOBi+OBq+OBlyzjgarjgYrjgZ/jgYsNCivjgb/jgoTjgb7jgYgs44Gq44GK44Gy44GTDQor44GK44GL44GuLOOBsuOBp+OBig0KK+OBsOOBsCzjgojjgYbjgYTjgaHjgo3jgYYNCivjgaDjgZHjgoTjgb4s44GV44GP44GTDQor44KE44G+44GQ44GhLOOChOOBmeOBig0KK+OBr+OChOOBlyzjgajjgZfjgo3jgYYNCivjgajjgb/jgZrjgYss44KE44GZ44Gy44KNDQor44Gq44GL44Gr44GXLOOBr+OCi+OBsuOBlQ0KK+OBguOBuSzjga/jgZjjgoENCivjgYLjgYrjgoTjgY4s44Gy44KN44GTDQor44Gm44KJ44KP44GNLOOBjeOCiOOBkw0KK+OBi+OBn+OBjuOCiizjga7jgbzjgosNCivjgarjgYvjgYzjgo8s44G+44GV44GKDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBhuOBiOOBoCzjgbLjgo3jgb8NCivjgbXjgZjjgo/jgoks44GC44GN44Gy44KNDQor44Gv44KE44GV44GLLOOBn+OBpOOBvw0KK+OBjeOCgOOCiSzjgbLjgo3jgZcNCivjgZTjgajjgYYs44G+44GV44Gy44KNDQor44GX44KA44KJLOOBkeOBhOOBnuOBhg0KK+OBm+OBjSzjgajjgZfjgYvjgZoNCivjgYLjgYTjgZbjgo8s44GC44GN44GKDQor44Gu44KA44KJLOOBk+OBmeOBkQ0KK+OBi+OCk+OBoCzjgZfjgoXjgYbjgZgNCivjgYbjgonjgYQs44G+44GZ44G/DQor44KC44Go44KE44G+LOOCiOOBl+OBr+OCiw0KK+OBi+OBv+OCgOOCiSzjgabjgaTjgYoNCivjgbLjgonjgYQs44G+44GV44KG44GNDQor44GC44KJ44GELOOBqOOCguOBquOCig0KK+OBleOBhOOBqOOBhizjgojjgYbjgYTjgaENCivjgb7jgY3jga/jgoks44G+44GV44GXDQor44GK44GK44KP44GPLOOBiuOBleOCgA0KK+OCguOBoeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjga/jgpPjgYzjgYQs44KI44GX44Gy44KNDQor44GE44Gu44GG44GILOOBi+OBmuOBsuOBqA0KK+OBquOBjOOBhOOBlyzjgYvjgaTjgb8NCivjgavjgZfjgoLjgags44GC44GN44KJDQor44Gk44Gh44KELOOBl+OCh+OBhuOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgZcNCivjgbvjgpMs44GX44KH44GG44GUDQor44GE44KP44GELOOBn+OBpOOChA0KK+OBj+OBvCzjgb7jgZXjgYoNCivjga/jgZPjgYQs44G+44GV44GKDQor44KP44Gf44Gq44G5LOOBruOCiuOBig0KK+OBmeOBjuOBnyzjgajjgZfjgb/jgaQNCivjgarjgYvjgoDjgoks44GL44Ga44Gy44KNDQor44GL44KJ44GV44GNLOOBk+OBhuOBhOOBoQ0KK+OBruOCiuOBvuOBpCzjgb/jgaTjgbLjgZMNCivjgY/jgZnjgoLjgags44Gf44GL44KI44GXDQor44Gr44GX44KA44KJLOOBleOBqOOBlw0KK+OBk+OBmeOBkizjgb7jgZXjgaoNCivjgbXjgY/jgb/jgaQs44KE44GZ44G/DQor44KE44G+44GQ44GhLOOBleOBtuOCjeOBhg0KK+OBhOOBl+OBkOOCjSzjgYvjgZrjgb8NCivjgajjgY/jgaAs44Gq44GK44KEDQor44GC44KK44Go44G/LOOBmOOBpOOCjeOBhg0KK+OBsuOChOOBvizjgZfjgpPjgYTjgaENCivjgbLjgo3jgZss44G+44GV44Go44GXDQor44Gr44GX44GgLOOBqOOBiuOCiw0KK+OBr+OBo+OBqOOCiizjgojjgZfjgb8NCivjgbLjgonjgbDjgoTjgZcs44GR44KT44GE44GhDQor44Gv44KJ44GX44G+LOOBiOOBhOOBmA0KK+OBr+OCiSzjgZ/jgb/jgYoNCivjga/jgb7jga4s44GL44Ga44KG44GNDQor44Gv44G+44GgLOOBvuOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgYvjgaTjgbLjgZMNCivjga/jgoTjgZcs44Gy44GV44GYDQor44Gy44GQ44GhLOOBvuOBleOBvw0KK+OBsuOCieOBrizjgobjgZ/jgYsNCivjgbvjgpPjgb4s44G+44GV44Gv44KLDQor44Gv44KL44G+44GXLOOCiOOBl+OBvuOBlQ0KK+OBr+OBl+OCguOBqCzjgoTjgZnjgYoNCivjgbLjgaAs44Gf44GL44GXDQor44Gy44KJ44GZ44GLLOOBoeOCh+OBhuOBmA0KK+OBr+OBjuOCj+OCiSzjgZPjgYbjgYTjgaENCivjga/jgb7jgaAs44GN44G/44GIDQor44Gv44GX44KC44GoLOOBv+OBoeOBr+OCiw0KK+OBu+OCk+OBvizjgb/jgojjgZcNCivjgbvjgYvjgoos44KE44GZ44Gy44KNDQor44Gv44KJ44GgLOOBv+OBoeOBkw0KK+OBr+OChOOBlyzjgZHjgpPjgZgNCivjgbvjgorjgbks44GL44Ga44GKDQor44Gv44GX44KC44GoLOOBvuOBleOBig0KK+OBr+OBm+OBjOOCjyzjgZ/jgaDjgYvjgZoNCivjgbLjgo3jgbks44G/44GN44GKDQor44Gv44GX44KC44GoLOOBi+OBmuOBvw0KK+OBsuOCieOBrizjgb7jgZXjgobjgY0NCivjga/jgZfjgoLjgags44GR44KTDQor44Gy44GY44GL44GfLOOBpOOBjuOBiA0KK+OBiuOBiuOBrOOBvizjgYTjgZXjgYoNCivjga/jgbbjgaQs44Gy44KN44KG44GNDQor44Gy44Gg44GLLOOBi+OBmuOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgY3jgpPjgoQNCivjga/jgb7jga4s44Gq44GK44GNDQor44Gy44GX44Gs44G+LOOBruOBtuOChuOBjQ0KK+OBr+OCiSzjgojjgZfjgb8NCivjga/jgarjgY0s44GX44KT44GE44Gh44KN44GGDQor44Gv44KJLOOBkeOCk+OBmA0KK+OBr+OBjCzjgZ/jgZHjgYoNCivjga/jgarjgaAs44G+44GV44Gu44KKDQor44Gy44KJ44KE44Gq44GOLOOBruOBtuOBn+OBiw0KK+OBu+OCiuOBi+OCjyzjgb/jgaTjga7jgooNCivjgbvjgorjgYvjgo8s44GR44KTDQor44Gv44GX44KC44GoLOOBguOBjeOBkw0KK+OBr+OBnyzjgajjgZfjgbLjgZMNCivjgbLjgonjgYQs44GY44KF44KTDQor44Gv44KJ44GQ44GhLOOChOOBmeOBvuOBlQ0KK+OBsuOCieOBiizjgobjgYbjgYTjgaENCivjga/jgZfjgZrjgoEs44GL44KT44GfDQor44Gk44GYLOOBvuOBquOBtg0KK+OBleOBj+OCieOBluOCjyzjgbLjgafjgajjgZcNCivjgYLjgbks44GT44GG44GE44GhDQor44GC44G5LOOBvuOBleOBsuOCjQ0KK+OBguOBuSzjgbLjgo3jgZ8NCivjgYLjgbks44GT44GG44GYDQor44GC44G5LOOBiuOBleOCgA0KK+OBguOBuSzjgZ/jgYvjgYoNCivjgYLjgYvjgY4s44KE44GZ44Gy44GoDQor44GK44GL44KC44GoLOOBl+OBmuOBig0KK+OBiOOCk+OBqSzjgb/jgaHjgZMNCivjgYLjgYvjgYTjgZcs44Gk44Gt44Gv44KLDQor44Gr44GX44GqLOOBvuOBk+OBqA0KK+OBguOBjeOCguOBqCzjgajjgZfjgYoNCivjgYLjgY3jgZrjgY0s44G+44GV44Go44GXDQor44Gy44KJ44Gw44KE44GXLOOBl+OBkuOBvuOBlQ0KK+OBguOCgeOBv+OChCzjgYLjgY3jgokNCivjgYLjgb/jga4s44GC44GN44Gy44KNDQor44GC44Gq44G/LOOBvuOBleOBi+OBmg0KK+OBguOBquOBluOCjyzjgYvjgYrjgosNCivjgYLjgpPjganjgYYs44KG44GG44Ge44GGDQor44GC44KT44Gp44GGLOOBsuOCjeOBjQ0KK+OBguOBiuOChOOBvizjgb7jgZXjgY0NCivjgYLjgYrjgoTjgb4s44GT44GG44GYDQor44GC44GK44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBguOCieOBhCzjgZPjgYbjgYTjgaENCivjgYLjgonjgYQs44G+44GV44GXDQor44GC44KJ44GELOOBvuOBk+OBqA0KK+OBguOCieOBhCzjgZ/jgb7jgYoNCivjgYLjgonjgYQs44G+44GV44KE44GZDQor44GC44KJ44GNLOOBv+OChuOBjQ0KK+OBmeOBjOOCj+OCiSzjgajjgoLjgb8NCivjgYLjgZXjgbIs44GX44GS44KLDQor44GC44GV44GP44KJLOOBn+OBi+OBlw0KK+OBguOBleOBvyzjgbXjgb/jgajjgZcNCivjgYLjgZXjgoDjgoks44GL44Gk44G/DQor44KE44G+44GX44GqLOOBi+OBmuOBig0KK+OBguOBleOCiizjgb7jgZXjgZMNCivjgYLjgZXjgZos44Go44KC44GTDQor44GC44Gk44G/LOOCiOOBl+OChuOBjQ0KK+OBsOOCkyzjgbLjgo3jgoTjgZkNCivjgbnjgaPjgZfjgocs44GR44GE44GE44GhDQor44Gh44GwLOOBguOBkw0KK+OBoeOBi+OBjeOCiCzjgarjgYrjgbLjgZUNCivjgaHjgoDjgoks44Gf44G/44GIDQor44Gp44Gw44GXLOOBn+OBkeOBig0KK+OBiOOBsOOBlyzjgZfjgofjgYbjgbjjgYQNCivjgYjjgbPjga/jgoks44KI44GX44G144G/DQor44GI44GM44G/LOOChuOBjeOBig0KK+OBiOOBkOOBoSzjgobjgY3jgZ/jgYsNCivjgYjjgZDjgaEs44GV44Go44GXDQor44GI44GY44KKLOOBmeOBkOOCiw0KK+OBiOOCk+OBqSzjgb7jgobjgb8NCivjgYjjgpPjgaks44Gf44Gk44GKDQor44GI44Gu44KC44GoLOOCiOOBl+OBpOOBkA0KK+OBteOBoeOBrizjgajjgYrjgosNCivjgbXjgZjjgYQs44GK44GV44KADQor44G144GY44GELOOBpuOBpA0KK+OBhOOBl+OBhCzjgZjjgoXjgpMNCivjgoDjgonjgoTjgb4s44Go44GX44Gy44GVDQor44G144GY44GL44GfLOOBn+OBpOOChA0KK+OBteOBmOOBi+OCjyzjgYvjgZrjgajjgoINCivjgbXjgZjjgb7jgoss44Gy44GV44GoDQor44G144GY44KC44GoLOOBj+OBq+OBsuOCjQ0KK+OBteOBmOOCguOBqCzjgZ/jgaDjgojjgZcNCivjgbXjgZjjgoLjgags44Go44GX44GL44GaDQor44G144GY44GuLOOChOOBmeOBqOOCgg0KK+OBteOBmOOBiizjgajjgZfjgYLjgY0NCivjgbXjgZjjgZXjgYss44GV44Go44GXDQor44G144GY44GV44KPLOOBruOCiuOBig0KK+OBteOBmOOBleOCjyzjgZ/jgYvjgbLjgo0NCivjgbXjgZjjgZ8s44G+44GV44KG44GNDQor44G144GY44GfLOOBvuOBleOChuOBjQ0KK+OBteOBmOOCj+OCiSzjgajjgYrjgosNCivjgbXjgZjjgo/jgoks44G+44GV44KG44GNDQor44G144GY44KP44KJLOOBl+OCk+OBl+OCh+OBhg0KK+OBteOBi+OBoCzjgbXjgb/jgbLjgo0NCivjgbXjgYvjgYzjgo8s44GC44Gk44Gy44KNDQor44G144GL44GuLOOBkeOBhA0KK+OBteOBi+OCjyzjgZvjgYTjgZgNCivjgbXjgYvjgoQs44Go44GX44GL44GaDQor44G144GL44GW44KPLOOBsuOBqOOBlw0KK+OBteOBj+OBoCzjgZPjgYbjgZgNCivjgbXjgY/jgYQs44Gy44KN44GXDQor44G144GP44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBteOBj+OCguOBqCzjgbLjgo3jgYLjgY0NCivjgbXjgY/jgoLjgags44G+44GV44Gy44GTDQor44G144GP44KC44GoLOOBmeOBmeOCgA0KK+OBteOBj+OBl+OBvizjgbLjgo3jgobjgY0NCivjgbXjgY/jgajjgb8s44KK44KF44GG44GV44GPDQor44G144Gq44GNLOOBl+OCk+OBmA0KK+OBteOCi+OBleOCjyzjgZ/jgo3jgYYNCivjgYLjgbPjgZMs44G+44GV44KG44GNDQor44G144GbLOOBruOCiuOBig0KK+OBteOBm+OBjOOCjyzjgojjgZfjgarjgYoNCivjgbXjgZfjgb8s44Gq44GK44Gy44GVDQor44GO44G+LOOBi+OBmuOCiOOBlw0KK+OBlOOBvyzjgb7jgZPjgagNCivjgZTjgajjgYYs44Gu44KK44GTDQor44GU44Go44GGLOOBqOOCguOBguOBjQ0KK+OBlOOBqOOBhizjgbLjgZXjga7jgooNCivjgZDjgpPjgZgs44G/44KIDQor44Gv44GO44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBjuOCj+OCiSzjgYTjgaHjgo3jgYYNCivjga/jgYTjga4s44Gy44GV44KI44GXDQor44Gv44GL44G+44GgLOOBruOCiuOChuOBjQ0KK+OBr+OBvuOBoCzjgobjgY0NCivjga/jgb7jgaAs44KG44GN44GKDQor44Gv44G+44GQ44GhLOOBkeOCk+OBmA0KK+OBr+OCiSzjgZfjgpPjgYTjgaENCivjga/jgoks44GN44KI44Gf44GLDQor44Gv44KJLOOBj+OBq+OBsuOBkw0KK+OBr+OCiSzjgb7jgZXjgarjgooNCivjga/jgonjgaAs44G+44GZ44G/DQor44Gv44KJ44GgLOOBv+OBquOBkw0KK+OBr+OCieOBoCzjga7jgorjgZMNCivjga/jgonjgZMs44Gf44GL44Gy44KNDQor44Gv44KL44GqLOOBn+OBi+OBguOBjQ0KK+OBr+OBm+OBjOOCjyzjgZ/jgY/jgoQNCivjgYrjgZfjgb4s44GC44GN44KJDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBr+OBn+OBrizjgYvjgZrjgbLjgo0NCivjga/jgZ/jgZbjgo8s44GL44Ga44G/44GhDQor44Gv44GoLOOBvuOBleOBlw0KK+OBr+OBpOOBvyzjgYLjgZrjgZUNCivjga/jgaPjgajjgoos44Go44KC44KG44GNDQor44Gv44KE44GL44KPLOOBqOOBl+OBsuOCjQ0KK+OBr+OChOOBi+OCjyzjgYLjgaTjgo3jgYYNCivjga/jgoTjgYvjgo8s44Go44GX44Gy44GTDQor44Gv44KE44GuLOOBguOBpOOBlw0KK+OBr+OChOOBmyzjgZfjgpPjgZQNCivjga/jgoTjgZcs44Gf44GL44Gv44KLDQor44Gv44KE44GXLOOBi+OBiuOCig0KK+OBr+OChOOBlyzjgojjgZfjgbLjgo0NCivjga/jgoTjgZcs44GR44GE44GYDQor44Gv44KE44GXLOOBm+OBhOOBnw0KK+OBhOOCguOBqCzjgb7jgZXjgojjgZcNCivjga/jgoTjgaQs44Gy44KN44GXDQor44Gy44GM44GNLOOBsuOBp+OBguOBjQ0KK+OBsuOBjOOBlyzjgZnjgb/jgZMNCivjgbLjga4s44GR44KT44GYDQor44Gy44KJ44Gw44KE44GXLOOBquOBiuOBqA0KK+OBsuOCieOBrizjgYvjgZrjgbLjgo0NCivjgbLjgonjga4s44GR44GE44GE44GhDQor44Gy44KJ44GK44GLLOOBvuOChuOBvw0KK+OBr+OCieOBleOBjSzjgZ/jgaTjgoQNCivjgbLjgonjgaYs44Gy44Gn44GKDQor44Gy44KJ44KE44G+LOOBqOOBiuOCiw0KK+OBsuOCjeOBiCzjgojjgZfjgYvjgZoNCivjgbLjgo3jgYvjgo8s44GX44KF44GG44GE44GhDQor44Gy44KN44GbLOOBsuOBp+OBn+OBiw0KK+OBsuOCjeOBlyzjga7jgbbjgZMNCivjgbLjgZXjgoDjga0s44GR44GE44GTDQor44G744KT44GgLOOBk+OBhuOBhOOBoQ0KK+OBu+OCiuOBi+OCjyzjga7jgorjgYLjgY0NCivjgbvjgorjgZPjgZcs44GX44KT44GE44GhDQor44G744KK44GT44GXLOOBsuOCjeOChuOBjQ0KK+OBu+OBlyzjgobjgY3jgYoNCivjgbvjgZfjgZMs44G+44GV44Gy44KNDQor44Gy44KJ44GV44KPLOOBleOBoOOChuOBjQ0KK+OBu+OBneOBhCzjgZfjgpPjgYTjgaENCivjgbLjgofjgYbjganjgYYs44Gf44GL44GXDQor44Gy44KH44GG44Gp44GGLOOChuOBhuOBmeOBkQ0KK+OBhOOBuSzjgZfjgpPjgYTjgaENCivjgYTjgaHjgYvjgo8s44G+44GV44Gy44KNDQor44GE44Gh44GL44KPLOOBvuOBleOCiw0KK+OBhOOBoeOBi+OCjyzjgobjgb8NCivjgYTjgaHjga7jgb/jgoQs44G/44Gk44KLDQor44GE44GnLOOBv+OBpOOChuOBjQ0KK+OBhOOBpyzjgobjgooNCivjgYTjgYzjgonjgZcs44KE44GZ44KG44GNDQor44GE44GM44KPLOOBjeOCiOOBlw0KK+OBhOOBkOOBoSzjgZfjgpPjgoQNCivjgYTjgYTjgaAs44GX44KF44GG44GE44GhDQor44GE44GE44GgLOOBsuOCjeOBlw0KK+OBhOOBhOOBmOOBvizjgZPjgYbjgYTjgaENCivjgYTjgYTjgaTjgYss44Gu44G244GKDQor44GE44GE44Ga44GLLOOBi+OBmuOBruOCig0KK+OBhOOBhOOBmuOBiyzjgYLjgorjgZUNCivjgYTjgYvjgonjgZcs44Go44KC44GNDQor44GE44GR44GgLOOBquOBiuOBjQ0KK+OBhOOBkeOBoCzjgb7jgZXjgbXjgb8NCivjgYTjgZHjgaAs44GY44KF44KTDQor44GE44GR44GgLOOBsuOBp+OBqA0KK+OBhOOBkeOBquOBjCzjgbLjgo3jgYoNCivjgb/jgaTjgoLjgags44Gy44KN44Gf44GLDQor44GE44GR44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBhOOBkeOBlizjgbLjgajjgZcNCivjgYTjgZHjgZbjgY0s44GK44GV44KADQor44GE44GP44GfLOOBpuOCi+OChuOBjQ0KK+OBhOOBvuOBhCzjgojjgZfjga7jgooNCivjgYTjgb7jgYTjgZrjgb8s44Gu44KK44Gy44KNDQor44GE44G+44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBhOOBvuOCgOOCiSzjgYjjgYTjgooNCivjgYTjgb7jgavjgZcs44Go44KC44Gy44KNDQor44GE44Gq44GM44GNLOOBi+OBiuOCig0KK+OBhOOBquOBjOOBjSzjgYvjgaTjgobjgY0NCivjgYTjgarjgYzjgo8s44Gf44Gk44KEDQor44GE44Gq44G7LOOBvuOBleOCiw0KK+OBhOOBquOBvyzjgbLjgo3jgb/jgaENCivjgYTjgarjgaTjgZAs44G/44GV44GKDQor44GE44Gq44KI44GXLOOBn+OBpOOBig0KK+OBhOOBrizjgYvjgZrjgagNCivjgYTjga7jgYrjgYss44GX44KT44KEDQor44GE44Gu44GG44GILOOBn+OBi+OChuOBjQ0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgZcNCivjgYTjga7jgYbjgYgs44Gy44Gn44GL44GaDQor44GE44Gu44GG44GILOOBn+OBi+OBlw0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgYLjgY0NCivjgYTjga7jgYbjgYgs44KG44GG44GE44GhDQor44GE44Gu44GG44GILOOBjeOBj+OBig0KK+OBhOOCiuOBleOCjyzjgYLjgY3jgbLjgZMNCivjgYTjgZss44KG44GN44GKDQor44GE44Gb44GNLOOBi+OBpOOChA0KK+OBhOOBl+OBoCzjgoTjgZnjga7jgooNCivjgYTjgZfjgaAs44Gk44KI44GXDQor44GK44GL44GgLOOBr+OCi+OBvw0KK+OBhOOBl+OBhCzjgYjjgYTjgZgNCivjgoTjgb7jgaAs44Gy44KN44G244G/DQor44GZ44GO44Gv44KJLOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OBi+OCjyzjgYvjgaTjgokNCivjgYTjgZfjgYvjgo8s44G+44GV44GTDQor44GE44GX44GL44KPLOOBvuOBleOBvw0KK+OBhOOBl+OBvuOCiyzjga7jgorjgZMNCivjgYTjgZfjgoLjgags44Gf44Gk44GKDQor44GE44GX44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OCguOBqCzjgZHjgpPjgZgNCivjgYTjgZfjga4s44GL44GP44GE44Gh44KN44GGDQor44GE44GX44Gk44GLLOOBleOBqOOBlw0KK+OBhOOBl+OCj+OBnyzjgZ/jgY/jgoQNCivjgYTjgZfjgo/jgZ8s44KG44GG44GYDQor44Gy44KJ44Gw44KE44GXLOOBiOOBhOOBmA0KK+OBhOOBl+OBluOBjSzjgoLjgajjga7jgooNCivjgYTjgZfjgZrjgYss44Go44GK44KLDQor44GE44Gd44GgLOOBn+OBkeOBlw0KK+OBqOOBiuOBiyzjgajjgZfjgobjgY0NCivjgY/jgorjga/jgoks44GR44GE44GYDQor44GE44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44GI44Gk44GNDQor44GE44Go44GGLOOCiOOBhuOBmA0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgYTjgaHjgoTjgarjgY4s44GX44GS44Gy44GoDQor44GE44Go44GGLOOBpOOBreOBsuOCjQ0KK+OBquOBjOOBnyzjgYvjgaTjgb8NCivjgYTjgajjgYYs44Gf44GL44Gv44KLDQor44GL44G/44GL44KPLOOBn+OBoOOBv+OBpA0KK+OBhOOCj+OBhCzjga7jgbzjgosNCivjgYTjgo/jgYvjgo8s44Gm44KL44Gy44GVDQor44GE44KP44G/LOOBqOOBl+OBsuOBkw0KK+OBhOOCj+OBvyzjgZ/jgYvjgZcNCivjgYTjgo/jgoLjgags44Go44KC44GTDQor44GE44KP44Gq44GMLOOBvuOBleOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgZHjgYTjgZMNCivjgYTjgo/jgZXjgY0s44G144G/44GL44GaDQor44GE44KP44GbLOOBsuOCjeOChuOBjQ0KK+OBhOOCj+OBl+OBnyzjgYrjgZXjgoANCivjgYTjgo/jgZ8s44GT44GG44Gb44GEDQor44GE44KP44GfLOOBleOBqOOBlw0KK+OBhOOCj+OBn+OBpizjgbLjgafjgY0NCivjgYTjgZrjgb8s44G/44KPDQor44GY44KT44GuLOOBn+OBi+OChOOBmQ0KK+OBi+OBjOOCjyzjgbLjgafjgYoNCivjgYvjgYTjgazjgb4s44Gu44G244GKDQor44GL44GY44GfLOOBn+OBi+OBv+OBoQ0KK+OBi+OBkeOBjOOCjyzjgYvjgZrjgZ/jgYsNCivjgYvjgY3jgazjgb4s44Gq44GK44GNDQor44GL44G+44GgLOOBn+OBi+OBsuOCjQ0KK+OBi+OBvuOBnyzjgbLjgo3jgY0NCivjgYvjgoHjgZ/jgass44GP44Gr44GC44GNDQor44GL44G/LOOBvuOBleOBruOCig0KK+OBi+OBv+OCgOOCiSzjgb7jgZXjgZcNCivjgYvjgb/jgoTjgb4s44G+44GV44KG44GNDQor44GL44Gq44GG44GhLOOBn+OBi+OChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgb/jgY0NCivjgYvjga3jgZMs44KE44GZ44Gu44G2DQor44GL44Gt44GTLOOChOOBmeOBjQ0KK+OBi+OCk+OBrOOBjSzjgZvjgYTjgYTjgaENCivjgYvjga7jgYYs44GN44KI44GP44GrDQor44GL44KJ44Gv44GXLOOBsuOCjeOBguOBjQ0KK+OBi+OBleOBhCzjgb/jga7jgosNCivjga7jgoDjgoks44GI44G/44GTDQor44GL44GV44GELOOCguOCguOBkw0KK+OBi+OBmyzjgZjjgoXjgpPjgYTjgaENCivjgYvjgZfjgY/jgoks44KI44GX44KN44GGDQor44GL44GX44KA44KJLOOBleOBqOOBlw0KK+OBi+OBl+OCj+OBjizjgYvjgojjgZMNCivjgYvjgZ/jga4s44Gm44KL44Gy44GVDQor44GL44Gf44GK44GLLOOChOOBmeOBlw0KK+OBi+OBqOOBhizjgYrjgZXjgoANCivjgYvjgajjgYYs44Gq44GK44GNDQor44GL44Go44GGLOOBkeOBhA0KK+OBi+OBqOOBhizjgb7jgZXjga/jgosNCivjgYvjgajjgYYs44Gf44GL44GC44GNDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBi+OBqOOBhuOBiuOBiyzjgobjgYvjgooNCivjgYvjgaTjgYQs44GYDQor44GL44Gk44G+44GfLOOBv+OBruOCiw0KK+OBi+OCj+OBsOOBnyzjgZ/jgYvjgYoNCivjgYvjgo/jgaHjgoQs44Go44GX44GC44GNDQor44GL44KP44GgLOOCiuOBm+OBhA0KK+OBi+OCj+OBoCzjgbLjgo3jgobjgY0NCivjgYTjgorjgZXjgo8s44G144G/44GKDQor44GL44KP44GELOOBv+OCjw0KK+OBi+OCj+OBi+OBvyzjgZHjgpPjgZgNCivjgYvjgo/jgYvjgb8s44G/44Gu44KLDQor44GL44KP44G/LOOBguOBjeOCiQ0KK+OBi+OCj+OCgOOCiSzjgZHjgpPjgZgNCivjgYTjgZfjgYQs44KE44GZ44GNDQor44GL44KP44GuLOOBvuOBleOBsuOCjQ0KK+OBi+OCj+OCgOOCiSzjgY3jgojjgbLjgo0NCivjgYvjgo/jgZXjgY0s44Gu44G244KG44GNDQor44GL44KP44GbLOOBquOBiuOBjQ0KK+OBi+OCj+OBmyzjgbLjgo3jgZcNCivjgYvjgo/jgZss44GI44GE44GYDQor44GL44KP44GX44G+LOOBiOOBhOOBkw0KK+OBi+OCj+OBn+OBqyzjgY/jgavjgbLjgZMNCivjgZHjgYTjgaAs44G+44GV44GC44GNDQor44GN44GgLOOBl+OBkuOBkw0KK+OBjeOBoOOBoSzjgZfjgZLjgYoNCivjgY3jga/jgoks44Go44KC44GIDQor44GN44GP44GL44KPLOOChuOBi+OCig0KK+OBjeOCguOBqCzjgb7jgZXjgbLjgacNCivjgY3jgoDjgoks44GR44KT44GE44GhDQor44GL44G+44GfLOOBsuOCjeOChuOBjQ0KK+OBhOOBj+OBvyzjgb7jgobjgb8NCivjgY3jga7jgZfjgZ8s44GX44GS44GL44GaDQor44GN44Gu44GG44GhLOOBvuOBjQ0KK+OBjeOBlyzjgZ/jgY/jgZcNCivjgY3jgZfjgoLjgags44GL44Ga44Gy44KNDQor44GN44GG44GhLOOBqOOCiOOBguOBjQ0KK+OBk+OBsCzjgbLjgo3jgobjgY0NCivjgoLjgoos44Gy44Gn44GNDQor44GT44Gw44KE44GL44KPLOOBn+OBkeOBlw0KK+OBj+OBvOOBnyzjgbLjgajjgZcNCivjgZPjgbDjgoTjgZcs44Gm44Gk44KEDQor44GK44GK44GL44KPLOOBl+OCkw0KK+OBk+OBsOOChOOBlyzjgabjgaTjgZgNCivjgZPjgbDjgoTjgZcs44GN44KI44Gu44KKDQor44GT44G+44GfLOOBiOOBhOOBn+OBpA0KK+OBk+OBsOOChOOBlyzjgYvjgaTjgb8NCivjgZPjgbDjgoTjgZcs44GL44Gk44KG44GNDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOBkw0KK+OBk+OBoOOBvizjgoTjgZnjgZcNCivjgZPjgYjjgZgs44Gk44Go44KADQor44GT44GQ44GhLOOBkeOCk+OBmA0KK+OBk+OBr+OBnyzjgajjgZfjgbLjgZMNCivjgZPjgbLjgoks44GN44G/44GKDQor44Gq44GL44GM44KPLOOCiuOBiOOBkw0KK+OBk+OChOOBvizjgYLjgY3jgokNCivjgZPjgYTjgacs44KI44GX44KN44GGDQor44GT44GE44GnLOOBmOOCheOCkw0KK+OBk+OBhOOBkSzjgZfjgZLjgosNCivjgZPjgYTjgZrjgb8s44KC44Go44GTDQor44GT44GY44G+LOOBn+OBj+OChA0KK+OBk+OBkeOBkOOBoSzjgoTjgZnjgb7jgZUNCivjgZPjgY/jgbws44KI44GG44GTDQor44GT44G+44GkLOOBn+OBi+OBkw0KK+OBk+OBvuOBpCzjgobjgb/jgZMNCivjgZPjgb/jgoQs44KI44GG44GYDQor44GT44KT44GpLOOBi+OBmuOBqOOBlw0KK+OBk+OCk+OBqSzjgYLjgY3jgokNCivjgZPjgpPjgaks44G/44GIDQor44GT44KT44GpLOOBn+OBi+OChuOBjQ0KK+OBk+OCk+OBqSzjgZ/jgaTjgYoNCivjgZPjgavjgZcs44Gf44GL44GTDQor44GT44GV44GLLOOBvuOBleOBsuOCjQ0KK+OBk+OBm+OBjSzjgajjgZfjgbLjgZMNCivjgZPjgZfjgYTjgZcs44Gf44Gk44KEDQor44GT44GX44GKLOOBvuOBleOBqOOBlw0KK+OBk+OBmeOBkizjgajjgZfjgYLjgY0NCivjgZPjgYbjgoQs44G+44GV44Gu44KKDQor44GT44KE44G+LOOBi+OBmuOBlw0KK+OBk+OChOOBvizjgYrjgZXjgoANCivjgZ/jgZHjgaEs44GX44KF44GG44Ge44GGDQor44GP44G8LOOBqOOBl+OChA0KK+OBj+OBvCzjgaTjgajjgoANCivjgY/jgbws44G144G/44GNDQor44GP44GM44GELOOBn+OBi+OChuOBjQ0KK+OBhOOBi+OCieOBlyzjgYvjgZrjgbLjgo0NCivjgY/jgb7jgZbjgo8s44Gu44G244GTDQor44GP44Gr44G/44GkLOOBsuOBleOCiOOBlw0KK+OBj+OBrizjgZvjgYTjgZcNCivjgbvjgZfjga4s44Go44GX44KEDQor44GP44KJ44GX44GSLOOBk+OBhuOBmA0KK+OBj+OCiuOBr+OCiSzjgb/jgYsNCivjgarjgYvjgYzjgo8s44GX44KH44GG44GE44GhDQor44KE44Gq44GO44GgLOOChuOBjeOBig0KK+OBj+OCiuOChOOBvizjgbLjgafjgYLjgY0NCivjgY/jgo3jgYvjgo8s44Gy44Gn44KG44GNDQor44GP44GV44GL44KPLOOBkeOBhOOBhOOBoQ0KK+OBj+OBleOBquOBjizjgYrjgZXjgoANCivjgY/jgZXjga4s44Gy44Gn44Gy44GTDQor44GP44GbLOOBleOBqOOCiw0KK+OBj+OBl+OBoCzjgaHjgYgNCivjgY/jgZnjgaAs44GT44GG44GE44Gh44KN44GGDQor44GP44GZ44GNLOOBoeOBiOOBkw0KK+OBj+OBmeOBvyzjgobjgZ/jgYsNCivjgb7jgYjjgaAs44Gf44Gk44KEDQor44G+44GI44GgLOOBguOBjeOBig0KK+OBvuOBiOOBi+OCjyzjgbLjgo3jgZMNCivjgb7jgYjjgYvjgo8s44Gf44GL44GKDQor44G+44GM44KK44G144GhLOOCiOOBl+OBig0KK+OBvuOBjeOBrizjgaHjgbLjgo0NCivjgb7jgY3jga4s44GR44KT44GYDQor44G+44Gq44G5LOOBvuOBleOCiA0KK+OBguOBjOOBpOOBvizjgZ/jgaTjgobjgY0NCivjgb7jgovjgYos44GX44GS44KLDQor44G+44KL44GfLOOBquOBiuOBjQ0KK+OBvuOCi+OChOOBvizjgobjgYsNCivjgb7jgovjgoTjgb4s44G+44GT44GoDQor44G+44KL44KE44G+LOOBn+OBi+OBsuOCjQ0KK+OBvuOCi+OChOOBvizjgobjgYbjgZgNCivjgb7jgZnjgaAs44Gm44KL44G/44GkDQor44G+44GZ44GgLOOBqOOBl+OChA0KK+OBi+OCk+OBsOOCiSzjgYTjgZrjgb8NCivjgb7jgaTjgbDjgoks44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBoeOBqOOBmw0KK+OBvuOBpOOBoCzjgY/jgavjga7jgooNCivjgb7jgaTjgaAs44G+44GV44KG44GNDQor44G+44Gk44GELOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBhCzjgojjgZfjga7jgooNCivjgb7jgaTjgYQs44GX44KF44GG44GE44Gh44KN44GGDQor44G+44Gk44GELOOBoeOCiOOBkw0KK+OBvuOBpOOCguOBqCzjgYLjgaTjgZcNCivjgb7jgaTjgoLjgags44GR44KT44GYDQor44G+44Gk44KC44GoLOOBvuOBleOBi+OBpA0KK+OBvuOBpOOCguOBqCzjgZfjgpPjgoQNCivjgb7jgaTjgYrjgYss44G/44G7DQor44Gq44KL44GbLOOCiuOCheOBhuOBmA0KK+OBvuOBpOOChCzjga7jgbbjgbLjgZMNCivjgoHjgZbjgo8s44Gy44Go44GXDQor44G/44GO44GfLOOBvuOChuOBvw0KK+OBv+OBi+OBvyzjgZfjgofjgYbjgZgNCivjgb/jgoDjgoks44GL44Ga44KEDQor44KE44Gq44GOLOOBk+OBhuOBhOOBoQ0KK+OBv+OBquOBi+OBnyzjgb7jgZXjgobjgY0NCivjgb/jga0s44G+44GV44KE44GZDQor44G/44GtLOOChOOBmeOBiOOBhA0KK+OBv+OBruOCjyzjgY3jgojjgYgNCivjgb/jgZXjgo8s44G+44GN44GTDQor44G/44GV44KPLOOBn+OBi+OBsuOCjQ0KK+OBv+OBl+OBvizjgaTjgojjgZcNCivjgb/jgZ/jgoDjgoks44Go44KC44Gy44KNDQor44G/44GoLOOBruOBtuOBig0KK+OBv+OBpOOBsuOCiSzjgb7jgorjgZMNCivjgb/jgaTjgYTjgZcs44G+44GV44G144G/DQor44G/44Gk44Gq44KKLOOBn+OBi+OBiA0KK+OBv+OBhuOCiSzjgbLjgo3jgYvjgZoNCivjgb/jgoTjgbks44GR44KT44GYDQor44G/44KE44GY44G+LOOBl+OBkuOBjQ0KK+OBv+OChOOCguOBqCzjgZfjgZLjgosNCivjgb/jgoTjgoLjgags44Go44KC44G/DQor44G/44KE44GV44GLLOOChuOBhuOBhOOBoeOCjQ0KK+OBv+OChOOBleOBiyzjgZHjgpPjgYTjgaHjgo0NCivjgb/jgoTjgZfjgZ8s44Gy44KN44GLDQor44G/44KE44GX44GfLOOBmOOCheOCk+OBkw0KK+OBv+OChOOBluOBjSzjga7jgorjgZfjgZINCivjgb/jgoTjgZbjgo8s44GL44Gk44G/DQor44G/44KE44GW44KPLOOBn+OBi+OChuOBjQ0KK+OBv+OBnuOBr+OBlyzjgZ/jgZHjgbLjgZMNCivjgZXjgYvjgYQs44Gy44KN44GXDQor44G/44Ga44GuLOOBsuOCjeOBguOBjQ0KK+OBv+OBmuOBiuOBoSzjgZ/jgYvjgYoNCivjgb/jgZrjgZfjgb4s44GR44KT44GYDQor44G/44Ga44GfLOOBkeOCk+OBmA0KK+OCguOBoeOBr+OCiSzjgY/jgasNCivjgoLjgaHjgZrjgY0s44GT44GG44GE44GhDQor44KC44KC44GbLOOBl+OCheOBhuOBhOOBoQ0KK+OCguOCiizjgbLjgo3jgY0NCivjgoLjgoos44GC44GN44Gy44KNDQor44KC44KKLOOBoeOBiA0KK+OCguOCiizjga/jgZrjgY0NCivjgoLjgoos44Gy44Gn44GNDQor44KC44KKLOOBvuOCguOCiw0KK+OCguOCiuOBi+OCjyzjgb7jgZXjgogNCivjgoLjgorjgoLjgags44KE44GZ44Gy44KNDQor44KC44KK44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OCguOCiuOCguOBqCzjgb7jgarjgbYNCivjgoLjgorjgoDjgoks44GX44KT44GE44GhDQor44KC44KK44GuLOOBi+OBmuOBvw0KK+OCguOCiuOBleOCjyzjgY/jgavjgYvjgZoNCivjgZfjgb7jgYrjgYss44GK44GV44KADQor44KC44KK44GX44GfLOOChuOBiw0KK+OCguOCiuOChOOBvizjgbLjgo3jgZMNCivjgoLjgo3jgYrjgYss44G/44Gk44Gy44KNDQor44KC44KN44Go44G/LOOBquOBiuOBjQ0KK+OCguOBqOOBjSzjgZ/jgaDjgajjgZcNCivjgoLjgajjga4s44GL44Gk44KG44GNDQor44KC44Go44Gf44GLLOOBsuOBp+OBjQ0KK+OCgOOBkOOCi+OBvizjgZ/jgY/jgZgNCivjgoDjgYvjgYQs44KI44GX44G/DQor44GC44KT44Gp44GGLOOBhOOCj+OBig0KK+OBr+OBrSzjgZPjgYbjgY0NCivjgoDjgonjgYvjgb8s44Go44GX44GL44GaDQor44KA44KJ44G+44GkLOOBpOOBqOOCgA0KK+OCgOOCieOBl+OBkizjgYvjgZrjgobjgY0NCivjgZfjgoLjgoDjgoks44GY44KF44KTDQor44KA44KJ44GfLOOBvuOBk+OBqA0KK+OBv+OCh+OBhuOBjCzjgZ/jgYvjgobjgY0NCivjgarjgYzjga/jgoks44Gy44KN44GXDQor44GE44Go44GGLOOBi+OBpOOBvw0KK+OBquOBjOOBhCzjgZHjgYTjgZ8NCivjgarjgYzjgYQs44Go44GK44KLDQor44GE44KP44GoLOOCiOOBl+OBjQ0KK+OBn+OBkeOBl+OBkizjgaHjgbvjgZMNCivjgarjgYzjgYos44GC44GN44Gy44KNDQor44Gq44GM44GKLOOBv+OBoeOBruOCig0KK+OBquOBjOOBiizjgYTjgZXjgYgNCivjgbXjgY/jgaTjgYss44GR44GE44GTDQor44Gq44GM44GV44KPLOOBsuOBp+OBjQ0KK+OBquOBjOOBleOCjyzjgoTjgZnjgbLjgo0NCivjgarjgYzjgZss44GZ44GZ44KADQor44Gq44GM44GX44G+LOOBguOBjeOBig0KK+OBquOBjOOBn+OBqyzjgbXjgb/jgbLjgZMNCivjgarjgYzjgo/jgY0s44Gy44KN44KE44GZDQor44Gq44GM44KE44G+LOOBvuOBleOBsuOBpw0KK+OBquOBlOOChCzjgoLjgorjgYoNCivjgarjgYTjgajjgYYs44Gu44G244KG44GNDQor44Gq44GE44Go44GGLOOBleOBoOOBv+OBpA0KK+OBquOBi+OBoCzjgZ/jgY/jgoQNCivjgarjgYvjgYzjgY0s44Gy44KN44GC44GNDQor44Gq44GL44GM44KPLOOBpuOCi+OBruOBtg0KK+OBquOBi+OBjOOCjyzjgajjgZfjgbLjgo0NCivjgarjgYvjgYzjgo8s44KE44GZ44Gy44KNDQor44Gq44GL44GM44KPLOOBvuOBleOBlw0KK+OBquOBi+OBmOOBvizjgajjgYrjgosNCivjgbvjgorjgYbjgaEs44Go44KI44GYDQor44Gq44GL44Gv44KJLOOBi+OBmuOBsuOBqA0KK+OBquOBi+OBmOOBvizjgYvjgZrjgobjgY0NCivjgarjgYvjgZjjgb4s44GT44GG44GYDQor44GN44GP44GfLOOBv+OBiw0KK+OBquOBi+OBmOOBvizjgajjgZfjgYLjgY0NCivjgarjgYvjgb7jgoss44Go44GX44GTDQor44Gq44GL44KA44KJLOOCiOOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44Gh44GIDQor44Gq44GL44KA44KJLOOBruOCiuOBkw0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgYoNCivjgarjgYvjgoDjgoks44Gf44GL44GXDQor44Gq44GL44KA44KJLOOCiuOCheOBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgZfjgZLjgYvjgZoNCivjga/jgaPjgajjgoos44G+44Gq44G2DQor44Gq44GL44KA44KJLOOBleOBtuOCjeOBhg0KK+OBquOBi+OCgOOCiSzjgajjgYrjgosNCivjgarjgYvjgoDjgoks44Gf44Gk44GYDQor44G/44KE44KC44GoLOOBhOOBmuOCiw0KK+OBquOBi+OBq+OBlyzjgbLjgafjgagNCivjgarjgYvjgavjgZcs44GZ44Gq44GKDQor44Gq44GL44GuLOOCiOOBl+OBguOBjQ0KK+OBquOBi+OBrizjgaHjgobjgY0NCivjgarjgYvjga4s44KE44GZ44Gy44GnDQor44Gq44GL44GuLOOBiuOBleOCgA0KK+OBquOBi+OBrizjgaTjgYvjgZUNCivjgarjgYvjga4s44GR44GEDQor44Gq44GL44GuLOOCiOOBl+OBruOBtg0KK+OBquOBi+OBiizjgZ/jgYvjgbLjgo0NCivjgarjgYvjgYrjgYss44G+44GV44GL44GkDQor44Gq44GL44GX44G+LOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBl+OBvizjgYvjgZrjgarjgooNCivjgZfjgarjgaAs44GC44GN44KJDQor44Gq44GL44GfLOOBi+OBmuOBquOCig0KK+OBquOBi+OChCzjgZ/jgY/jgZgNCivjgZXjgYTjgYvjgo8s44Gy44Go44GXDQor44Gv44Gb44GM44KPLOOBsuOCjeOBlw0KK+OBquOBi+OBluOCjyzjgb7jgb8NCivjgarjgb7jgaQs44G+44G/DQor44Gq44KK44GfLOOBn+OBj+OBmA0KK+OBquOBmeOBrizjgZ/jgYvjgYLjgY0NCivjga3jgoLjgags44G/44Gt44GC44GNDQor44Gt44GK44GELOOBvuOBk+OBqA0KK+OBreOBmizjgarjgYrjgY0NCivjgavjgYTjgoDjgoks44GL44Ga44G+44GVDQor44Gr44GE44KE44G+LOOBoeOBi+OBkg0KK+OBq+OBhOOChOOBvizjgbLjgo3jgZcNCivjgavjga7jgb/jgoQs44Gy44KN44GXDQor44Gr44Gu44G/44KELOOBi+OBmuOBguOBjQ0KK+OBq+OBlyzjgZ/jgYvjgYoNCivjgavjgZfjgaAs44G+44GV44Gu44KKDQor44Gr44GX44GgLOOBvuOBleOBlw0KK+OBq+OBl+OBqeOBrizjgojjgZfjga7jgooNCivjgavjgZfjgYvjgo8s44GC44GN44KJDQor44Gr44GX44GN44GpLOOBguOBjeOBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgYLjgY3jgokNCivjgavjgZfjgaos44Gg44GE44GE44GkDQor44Gr44GX44GKLOOBmOOCheOCk+OBmA0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgajjgZcNCivjgavjgZfjgZbjgo8s44Gf44GL44GC44GNDQor44Gr44GX44Ga44GLLOOBqOOBl+OChA0KK+OBq+OBo+OBnyzjgbLjgajjgb8NCivjga7jgaAs44KP44GL44GTDQor44Gu44KA44KJLOOBleOBqOOBlw0KK+OBruOBruOCgOOCiSzjgbLjgo3jgobjgY0NCivjga7jgorjga/jgZcs44GE44GV44GKDQor44Gy44GuLOOBi+OBmuOChuOBjQ0KK+OBruOBluOBjSzjgZfjgpMNCivjga7jgZbjgo8s44G+44GV44Gy44KNDQor44Gs44G+44GuLOOBruOBtuOBkw0KK+OBiuOBs+OBmyzjgbLjgo3jgY0NCivjgYrjgbzjgYvjgZ8s44GR44KT44GZ44GRDQor44GK44GhLOOBguOBjeOBsuOCjQ0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgYLjgY0NCivjgb7jgarjgbks44Gy44KN44KG44GNDQor44GK44GgLOOBi+OBpOOBvw0KK+OBiuOBoCzjgZfjgpPjgZnjgZENCivjgYrjgaAs44Gy44Gn44Gy44KNDQor44GK44GgLOOBmOOCheOCk+OBkw0KK+OBiuOBoOOBj+OCiSzjgY7jgocNCivjgYrjgYzjgZ8s44Gy44Go44GXDQor44GK44GM44KPLOOBqOOBl+OBsuOBkw0KK+OBguOBuSzjgojjgYbjgZnjgZENCivjgYrjgZDjgaEs44GT44GG44GNDQor44GK44GQ44G+LOOBvuOBleOCiOOBlw0KK+OBiuOBkOOCiSzjgZ/jgb7jgY0NCivjgYrjgZDjgoks44Gy44Gn44GKDQor44KA44GV44GXLOOBv+OBpOOCiw0KK+OBiuOBkOOCiSzjgb7jgZXjgbLjgZMNCivjgYrjgZDjgoos44G+44GT44GoDQor44GK44GK44GwLOOBkeOCk+OBmA0KK+OBiuOBiuOBr+OBlyzjgojjgYbjgYTjgaENCivjgYrjgYrjgYQs44Gy44KN44GL44GaDQor44GK44GK44GE44GILOOBkeOCk+OBmA0KK+OBiuOBiuOBj+OBvCzjga/jgovjgZcNCivjgYrjgYrjgY/jgb4s44GE44GV44KADQor44GK44GK44GP44G+LOOBsuOCjeOBlw0KK+OBiuOBrizjgYvjgaTjgb8NCivjgYrjgYrjgazjgb4s44GL44KI44GTDQor44Gf44GL44GbLOOCiOOBl+OBsuOBpw0KK+OBiuOBiuOBleOCjyzjgbLjgafjgY0NCivjgYrjgYrjgZXjgo8s44Gy44KN44GXDQor44GK44GK44GV44KPLOOBkeOCk+OBmA0KK+OBiuOBiuOBleOCjyzjgZ3jgYbjgZnjgZENCivjgYrjgZfjgb4s44G+44KK44GTDQor44GK44GX44G+LOOBsuOCjeOBig0KK+OBiuOBl+OBvizjgb/jgaTjgbLjgo0NCivjgYrjgYrjgZ8s44GX44KT44GYDQor44GK44GK44Gf44GLLOOBsuOCjeOChuOBjQ0KK+OBiuOBiuOBn+OBjSzjgZ/jgZHjgZcNCivjgYrjgYrjgZ/jgass44KI44GG44GYDQor44GK44GK44Gk44GLLOOBsuOCjeOBruOBtg0KK+OBiuOBiuOBpOOBiyzjgabjgaTjgYoNCivjgYrjgYrjgo8s44G+44GT44GoDQor44GK44GK44KP44GgLOOBsuOCjeOBruOCig0KK+OBiuOBiuOChOOBvizjgbLjgajjgZcNCivjgYrjgZ7jga0s44Gu44G244KG44GNDQor44GK44GLLOOChOOBmeOBlw0KK+OBiuOBiyzjgbLjgo3jgYLjgY0NCivjgYrjgYss44GL44Ga44GX44GSDQor44GK44GLLOOBn+OBi+OBruOCig0KK+OBiuOBi+OBoCzjgZ/jgYvjgojjgZcNCivjgYrjgYvjgaAs44Gy44Go44GXDQor44GK44GL44GgLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OBoCzjgajjgojjgYLjgY0NCivjgYrjgYvjganjgoEs44GN44KI44GL44GkDQor44GK44GL44KC44GoLOOChOOBmeOBlw0KK+OBiuOBi+OCguOBqCzjgZPjgYbjgZgNCivjgYrjgYvjgoLjgags44Gy44KN44GXDQor44GK44GL44KA44KJLOOCiuOBiw0KK+OBiuOBi+OBrizjgYLjgY3jgokNCivjgYrjgYvjga7jgoQs44G/44Gk44KLDQor44GK44GL44GKLOOChOOBmeOBmA0KK+OBiuOBi+OBluOBjSzjgbLjgafjgYoNCivjgYrjgY0s44Gy44KN44KG44GNDQor44GK44GN44KC44GoLOOBvuOBleOBsuOBkw0KK+OBiuOBj+OCgOOCiSzjgajjgoLjgZMNCivjgYrjgY/jgoDjgoks44KG44GN44Gy44GTDQor44GK44GP44GuLOOBguOBhA0KK+OBiuOBvuOBnyzjgYLjgY3jgojjgZcNCivjgYrjgavjgY0s44Gy44KN44KG44GNDQor44GK44Gr44Gk44GLLOOBvuOBleOBguOBjQ0KK+OBiuOBruOBp+OCiSzjgYLjgY3jgokNCivjgYrjga7jgZbjgo8s44Gy44Gn44Gk44GQDQor44GK44GK44Gr44GXLOOBkeOCkw0KK+OBiuOBiuOBq+OBlyzjgY/jgavjgojjgZcNCivjgYrjgYrjgaTjgYss44Gq44GK44Gy44GVDQor44GK44GV44GgLOOBqOOCguOBruOBtg0KK+OBiuOBleOBjSzjgZ/jgYvjgZcNCivjgYrjgZXjgarjgb8s44GX44Ga44KI44GXDQor44GK44KE44G+44GgLOOChOOBmeOBruOCig0KK+OBiuOBluOCjyzjgZPjgYbjgZjjgo3jgYYNCivjgYrjgZbjgo8s44GX44KN44GGDQor44GK44GW44KPLOOChOOBmeOBruOCig0KK+OBleOBiOOBkOOBlSzjgoTjgZnjga7jgooNCivjgZXjgYjjgY0s44KI44GX44Gy44KNDQor44Gq44GL44GY44G+LOOBn+OBkeOBlw0KK+OBleOBhOOBnyzjgaHjgYjjgZMNCivjgYrjgYzjgo8s44KE44GZ44Gv44KLDQor44GV44GE44Go44GGLOOBi+OBmuOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgbLjgZMNCivjgZXjgYTjgajjgYYs44KI44GX44Gu44KKDQor44GV44GL44GELOOCiuOCh+OBhuOBmA0KK+OBleOBi+OBhCzjgbLjgafjga7jgooNCivjgZXjgYvjgYQs44GR44GE44GYDQor44GV44GL44GELOOBn+OBkeOBlw0KK+OBleOBi+OBhCzjgZ/jgY8NCivjgZXjgYvjgYQs44GX44KH44GG44GUDQor44GV44GL44GE44KKLOOBsuOCjeOChuOBjQ0KK+OBleOBi+OBjSzjgY3jgofjgYbjgZMNCivjgZXjgYvjgb4s44G+44GV44Gu44KKDQor44GV44GL44G+44GNLOOBvuOBleOBqOOCgg0KK+OBleOBi+OCguOBqCzjgb7jgZXjgajjgZcNCivjgZXjgYvjgoLjgags44GV44Go44KLDQor44GV44GL44KC44GoLOOBl+OCheOBhuOBhOOBoQ0KK+OBleOBi+OBnyzjgZ/jgYvjgZcNCivjgZXjgYvjgYbjgYgs44Gf44GL44KG44GNDQor44GV44GL44Ga44KBLOOBn+OBj+OBvw0KK+OBquOBi+OBrizjgajjgoLjgbLjgo0NCivjgZXjgY/jgb4s44KI44GX44Gy44GTDQor44GV44KT44G844KT44G+44GkLOOBi+OBmuOBsuOCjQ0KK+OBleOBrizjgZ/jgZHjgZcNCivjgZXjga4s44Go44GX44G144G/DQor44GV44GV44GM44KPLOOChuOBn+OBiw0KK+OBleOBleOBjSzjgobjgorjgZMNCivjgZXjgZXjgY0s44KE44GZ44KG44GNDQor44GV44GV44GNLOOBi+OBmuOCiOOBlw0KK+OBleOBleOBjSzjgZPjgYbjgZgNCivjgZXjgZXjgZbjgo8s44Go44GX44KG44GNDQor44GV44Go44GGLOOChOOBmeOBlw0KK+OBleOBqOOBhizjgYvjgaTjgbLjgagNCivjgZXjgajjgYYs44KI44GX44Gf44GLDQor44GV44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBleOBqOOBhizjga7jgbbjgZ/jgYsNCivjgZXjgajjgYYs44KG44GG44GZ44GRDQor44GV44Go44GGLOOBsuOBp+OChuOBjQ0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgZXjgajjgYYs44GK44GV44KADQor44GV44Go44GGLOOBvuOChuOBvw0KK+OBleOBqOOBhizjga7jgbbjgYoNCivjgZXjgajjgYYs44Gy44Gn44Gu44KKDQor44GV44Gk44G+LOOBv+OCj+OBkw0KK+OBleOCj+OBkOOBoSzjgarjgYrjgagNCivjgZXjgo/jgYQs44G/44Gh44Gy44KNDQor44GV44KP44KJ44GOLOOChOOBmeOBig0KK+OBleOCj+OBn+OBqyzjgY/jgavjgYoNCivjgZvjgYTjgZ8s44GC44Gk44GXDQor44Gb44GNLOOBvuOBleOBvuOCjQ0KK+OBm+OBjSzjga7jgbbjgbLjgo0NCivjgZvjgY0s44Gu44KK44KE44GZDQor44Gb44GN44Gv44KJLOOBguOBjeOCiQ0KK+OBm+OBjeOBrSzjgobjgYbjgZnjgZENCivjgZvjgY3jga0s44Gy44KN44KG44GNDQor44GX44KJ44GE44GXLOOBvuOBleOBsuOCjQ0KK+OBm+OCk+OBjCzjga7jgbbjgYoNCivjgZvjga4s44Gu44KK44KG44GNDQor44Gb44GX44KCLOOBl+OCheOBhuOBhOOBoQ0KK+OBm+OBqCzjgZ/jgaTjgYoNCivjgZvjgajjgZDjgaEs44Gf44Gk44KEDQor44Gm44KL44KELOOChuOBhuOBhOOBoQ0KK+OBl+OBhOOBsCzjgorjgYsNCivjgZfjgbDjga4s44Go44KC44KG44GNDQor44GX44Gw44GV44GNLOOBhOOBj+OBkw0KK+OBl+OBsOOBnyzjgabjgaTjgo3jgYYNCivjgZfjgbbjgZXjgo8s44G+44GV44G144G/DQor44GX44G244GV44KPLOOCiOOBl+OBsuOCjQ0KK+OBl+OBoSzjgaDjgYTjgYjjgYQNCivjgZfjgaHjgZ8s44Gf44GL44KG44GNDQor44GX44GS44Gy44GVLOOBqOOBiuOCiw0KK+OBl+OBkuOBleOCjyzjgb/jgobjgY0NCivjgoDjgonjgZ8s44KK44KF44GG44Gf44KN44GGDQor44GX44G+44GaLOOBn+OBi+OBpOOBkA0KK+OBl+OBvuOBmizjgZ/jgaTjgZcNCivjgY3jgZfjgaAs44Gf44GL44GXDQor44GX44G/44GaLOOBv+OBoeOBig0KK+OBl+OBv+OBmizjgYjjgYTjgYTjgaENCivjgZfjgb/jgZos44Gy44KN44GXDQor44GX44G/44GaLOOBr+OChOOBqOOBlw0KK+OBl+OBv+OBmizjgY/jgpPjgZgNCivjgZfjgb/jgZos44GR44GE44GTDQor44GX44G/44GaLOOBsuOCjeOBl+OBkg0KK+OBv+OChOOBk+OBlyzjgajjgZfjgbLjgo0NCivjgZfjgoLjgb/jgaEs44G+44KK44GTDQor44Gq44GL44Gw44KE44GXLOOBi+OBiuOCiw0KK+OBl+OCguOBiuOBlSzjgZ/jgZHjgZcNCivjgZfjgoLjgaTjgZgs44GX44KT44GYDQor44GX44Gq44GgLOOBoeOBi+OBlw0KK+OBl+OBquOBjOOCjyzjga7jgbbjgYoNCivjgZfjgpPjgoLjgags44G+44GV44Gy44KNDQor44GX44GuLOOCiOOBl+OBruOCig0KK+OBl+OBruOBoCzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZfjga7jgaAs44Gv44Gk44GIDQor44GX44Gu44GW44GNLOOBl+OCh+OBhuOBmA0KK+OBl+OBiuOBn+OBqyzjgabjgaTjgbLjgo0NCivjgZfjgYrjgoQs44Gk44GL44GVDQor44GX44KJ44G5LOOBhOOBo+OBm+OBhA0KK+OBl+OCieOBjOOBjSzjgojjgZfjga/jgosNCivjgZfjgonjgYQs44GL44Ga44Gy44GTDQor44GX44KJ44GE44GXLOOBiOOBpOOBsuOCjQ0KK+OBl+OCieOBhOOBlyzjgbLjgo3jgZcNCivjgZfjgonjgY0s44GL44Ga44Gy44KNDQor44GX44Ga44GfLOOBkeOBhOOBkw0KK+OBl+OCh+OBhuOBmCzjgZHjgYTjgZ8NCivjgZ3jga7jgaAs44G/44Gp44KKDQor44GZ44Gp44GGLOOCguOBqOOChuOBjQ0KK+OBmeOBiOOBoCzjgZvjgYTjgZMNCivjgZnjgYjjgaTjgZAs44Gf44GL44GXDQor44GZ44GM44GfLOOChOOBmeOBmeOBkQ0KK+OBmeOBjOOCj+OCiSzjgojjgZfjgYLjgY0NCivjgZnjgY7jga4s44KI44GX44Gu44G2DQor44GZ44GO44GV44GNLOOChuOBhuOBmA0KK+OBmeOBjuOBl+OBvizjgb7jgZXjgosNCivjgarjgYzjgYQs44G+44KK44GTDQor44GZ44GO44KE44G+LOOBqOOBl+OBsuOCjQ0KK+OBmeOBvyzjgYvjgaTjgbLjgo0NCivjgZnjgb/jgZ/jgass44GX44KT44GE44GhDQor44GZ44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBmeOBjSzjgZPjgYbjgYTjgaENCivjgZnjgoTjgb4s44Go44KC44Gu44KKDQor44GZ44Ga44GNLOOBv+OBoeOBig0KK+OBmeOBmuOBjSzjgZHjgpPjgYTjgaENCivjgZnjgZrjgY0s44GT44GG44GE44GhDQor44Gf44GY44G+LOOBleOBqOOBjQ0KK+OBmeOBmuOBjSzjgZ/jgY/jgoQNCivjgZnjgZrjgY0s44KE44GZ44GTDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OBmeOBmuOBjSzjgYLjgY3jgZMNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GZ44Ga44GNLOOBsuOBp+OBqOOCgg0KK+OBmeOBmuOBjSzjgbLjgafjgajjgZcNCivjgZnjgZrjgY0s44Gy44Gn44Go44GXDQor44GZ44Ga44GNLOOBsuOCjeOBjQ0KK+OBl+OCheOBj+OChCzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgaHjgbDjgaos44GL44KIDQor44Gf44Gh44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBn+OBqeOBk+OCjSzjgb7jgZXjgYLjgY0NCivjgZ/jgYzjgo8s44G+44GV44Gy44GoDQor44Gf44GQ44GhLOOCguOBqOOBi+OBmg0KK+OBn+OBkOOBoSzjgarjgYrjgobjgY0NCivjgZ/jgZDjgaEs44Gu44G244Gy44GVDQor44Gf44GELOOBruOCiuOBig0KK+OBn+OBmOOBvizjgZXjgaHjgYgNCivjgZ/jgYvjgaAs44GV44Go44KLDQor44Gf44GL44GgLOOBl+OBkuOBruOBtg0KK+OBn+OBi+OBjizjgZnjgZnjgoANCivjgb/jgoTjgoLjgags44Gf44GL44GXDQor44Gf44GL44Gv44G+LOOBpuOBpOOBig0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44GL44Gv44GXLOOBpOOBqOOCgA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga/jgZcs44G+44GT44GoDQor44Gf44GL44Gv44GXLOOBkeOCk+OCiuOCheOBhg0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44KE44GZ44GXDQor44Gf44GL44Gv44GXLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjga7jgooNCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOCguOBqOOChOOBmQ0KK+OBn+OBi+OBr+OBlyzjgobjgY3jgYgNCivjgZ/jgYvjga/jgZcs44KE44GZ44GTDQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44Go44GX44KG44GNDQor44Gf44GL44Gv44GXLOOBleOBqOOBkw0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjga/jgZcs44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLOOBruOBtuOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgosNCivjgZ/jgYvjgarjgZcs44GX44KTDQor44Gf44GL44GuLOOBi+OBpOOBruOCig0KK+OBn+OBi+OBiuOBiyzjgabjgaTjgoQNCivjgZ/jgYvjgZss44GX44GS44GNDQor44Gf44GL44GX44GqLOOBk+OBhuOBm+OBhA0KK+OBn+OBi+OBl+OBqizjgaDjgYTjgZXjgY8NCivjgZ/jgYvjgZ8s44Gy44KN44GC44GNDQor44Gf44GL44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OChOOBquOBjizjgZjjgoXjgpMNCivjgZ/jgZHjgbDjgoTjgZcs44GL44Gk44G/DQor44G/44GL44G/LOOBkeOBhOOBmeOBkQ0KK+OBn+OBkeOBhCzjgb7jgZPjgagNCivjgZ/jgZHjgY0s44G+44GX44KF44GGDQor44Gf44GR44KC44KKLOOBruOBtuOBsuOBkw0KK+OBn+OBkeOCgOOCiSzjgYrjgZXjgoANCivjgZ/jgZHjgYbjgaEs44GR44KTDQor44Gf44GR44KELOOBl+OCh+OBhuOBhOOBoQ0KK+OBn+OBkeOChOOBvizjgajjgZfjgYLjgY0NCivjgZ/jgY3jgZDjgaEs44Go44GX44GL44GaDQor44Gf44GN44GX44GfLOOBqOOBl+OChuOBjQ0KK+OBn+OBjeOBluOCjyzjgYLjgY3jgokNCivjgZ/jgb7jgYQs44GX44GS44KLDQor44Gf44G/44KELOOBguOBjeOBkw0KK+OBn+OCgOOCiSzjgojjgYbjgZnjgZENCivjgZ/jgarjgbks44Gy44KN44KG44GNDQor44Gf44Gq44Gv44GXLOOCiOOBl+OChuOBjQ0KK+OBn+OBquOBiyzjgZfjgZLjgagNCivjgZ/jgarjgYss44Gy44Gn44Gu44KKDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgbLjgo3jgY0NCivjgZ/jgarjgYss44KG44GN44GTDQor44Gf44Gq44GLLOOBsuOCjeOBkw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgarjgYss44GX44KTDQor44Gf44Gq44GLLOOBvuOBleOBi+OBmg0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZMNCivjgZPjgaDjgb4s44KI44GX44Gy44GTDQor44Gf44Gq44GLLOOBguOBleOBig0KK+OBn+OBquOBiyzjga7jgorjgYLjgY0NCivjgZ/jgarjgYss44GV44Go44GXDQor44Gf44Gq44GLLOOBiuOBleOCgA0KK+OBn+OBquOCgOOCiSzjgZXjgajjgZcNCivjgZ/jgpPjgbAs44GL44Ga44Gq44KKDQor44Gf44Gr44GQ44GhLOOBkeOBhOOBmA0KK+OBn+OBq+OBkOOBoSzjgZjjgoXjgpPjgZMNCivjgZ/jgavjgYQs44GS44KTDQor44Gf44Gr44KA44KJLOOBqOOCguOBruOCig0KK+OBn+OBq+OCj+OBjSzjgYrjgZXjgoANCivjgZ/jgovjgYQs44GX44KH44GG44GYDQor44Gf44GV44GNLOOBi+OBmuOChuOBjQ0KK+OBn+OBl+OCjSzjgb7jgZXjgoQNCivjgZ/jgabjgYTjgZcs44Gq44GK44KEDQor44Gf44GG44GhLOOCiuOCh+OBhuOBkw0KK+OBn+OBhuOCiSzjgbLjgo3jgYLjgY0NCivjgabjgonjgaAs44KI44GX44GKDQor44GV44Go44GGLOOBguOBjeOCiQ0KK+OBpuOCieOBq+OBlyzjgoLjgorjgobjgY0NCivjgabjgonjgZfjgZ8s44Gy44KN44GXDQor44Gm44KL44GN44GqLOOBguOBjeOCiA0KK+OBqOOBuSzjgYjjgorjgZMNCivjgajjgYbjgZTjgYYs44Gf44GL44Gv44KLDQor44Go44GQ44GhLOOBiOOBhOOBmA0KK+OBqOOBmCzjgYvjgaTjga7jgooNCivjgajjgb/jgarjgYws44G+44GV44GoDQor44Go44G/44Gq44GMLOOChOOBmeOBvuOBlQ0KK+OBqOOBv+OBiuOBiyzjgarjgYrjgY0NCivjgajjgb/jgZ8s44GZ44GQ44KLDQor44Go44G/44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBqOOBreOBjOOCjyzjgYLjgY3jgokNCivjgajjgZfjgarjgoos44GY44KF44KT44GTDQor44Go44KI44GgLOOBk+OBhuOBmA0KK+OBqOOCiOOBoCzjgYvjgaTjgoQNCivjgajjgojjgaAs44G+44GV44Gy44GTDQor44GK44GK44KC44KKLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBqOOBmuOBiyzjgbLjgafjgYoNCivjgoTjgb7jgYvjgo8s44KK44KF44GG44G444GEDQor44Gk44G844GELOOBmOOCheOCk+OBkw0KK+OBpOOBoeOBr+OBlyzjgYvjgaTjgb8NCivjgaTjgaHjga4s44G/44Gu44KLDQor44Gk44Gh44KELOOCiOOBl+OBsuOCjQ0KK+OBvuOBjSzjgbLjgafjga7jgooNCivjgaTjgaAs44G/44Gk44Gu44G2DQor44Gk44GM44KPLOOBkeOCk+OBmA0KK+OBpOOBmCzjgZXjgajjgZcNCivjgaTjgZgs44Go44KI44GL44GaDQor44Gk44GYLOOBsuOCjeOBlw0KK+OBpOOBi+OBoCzjgbLjgo3jgobjgY0NCivjgaTjgYvjgoLjgags44GN44KI44GXDQor44Gk44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBpOOBquOBl+OBvizjgobjgY3jgYoNCivjgYrjgY/jgoTjgb4s44G+44KC44KLDQor44Gk44Gu44GgLOOBleOBoOOBr+OCiw0KK+OBpOOBruOBjOOBhCzjgoTjgZnjga7jgooNCivjgaTjgZfjgb4s44Gu44G844KLDQor44Gk44Gk44G/LOOBsuOCjeOBlw0KK+OBpOOBmuOBjSzjgYvjgaTjgb8NCivjgaTjgovjgYrjgYss44Gy44Gn44GoDQor44GG44Gh44GgLOOBsuOBleOBlw0KK+OBhuOBoeOBoCzjgb7jgZXjgosNCivjgYbjgaHjgaAs44G+44GV44G144G/DQor44GG44Gh44GgLOOChOOBmeOBlw0KK+OBhuOBoeOBrizjgYLjgY3jgbLjgZMNCivjgYbjgaHjga7jgY/jgoks44KB44GQ44G/DQor44GG44Gh44KE44G+LOOBv+OBoeOBr+OCiw0KK+OBhuOBoeOChOOBvizjgZ/jgYvjga7jgooNCivjgYbjgaHjgoTjgb4s44Gu44G244Gy44KNDQor44GG44GgLOOBkeOBhOOBmA0KK+OBhuOBiOOBoCzjgZfjgZLjgosNCivjgYbjgYjjgaAs44Gq44Gk44GTDQor44GG44GI44GgLOOCiOOBl+OBqA0KK+OBhuOBiOOBoCzjgajjgZfjga/jgosNCivjgYbjgYjjga/jgoks44GX44GS44KLDQor44GG44GI44Gv44KJLOOBvuOBleOBig0KK+OBhuOBiOOBr+OCiSzjgZfjgpPjgZgNCivjgYbjgYjjgZjjgb4s44Gy44KN44KG44GNDQor44GG44GI44GNLOOBiOOCiuOBkw0KK+OBhuOBiOOCgOOCiSzjgY/jgavjgbLjgo0NCivjgYbjgYjjga4s44Gf44GL44Gy44GnDQor44GG44GI44GuLOOBqOOBj+OBsuOCjQ0KK+OBhuOBiOOBrizjgobjgYbjgZgNCivjgYbjgYjjgoTjgb4s44KI44GX44GTDQor44GG44GELOOBkeOBhOOBmeOBkQ0KK+OBhuOCgeOBoCzjgZfjgofjgYbjgYTjgaENCivjgYbjgoHjgaAs44GC44Gk44GXDQor44GG44KB44GgLOOBoeOBr+OCiw0KK+OBhuOCgeOBoCzjgZHjgpPjgZgNCivjgYbjgoHjga/jgoks44G+44GT44GoDQor44GG44KB44GL44KPLOOBvuOBleOBruOCig0KK+OBhuOCi+OBl+OBoOOBqyzjgb7jgZXjgobjgY0NCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44GG44GV44G/LOOChuOBhuOBkw0KK+OBhuOBl+OBvuOCiyzjgZ/jgaTjgbLjgo0NCivjgYbjgZfjgoTjgb4s44GL44Gk44KG44GNDQor44GG44GZ44GELOOBk+OBhuOBuOOBhA0KK+OBhuOBmeOBhCzjgYrjgZXjgoANCivjgYbjgaTjgb8s44GY44KN44GGDQor44GV44GV44GM44KPLOOBi+OBmuOBguOBjQ0KK+OBneOCgeOChCzjgZHjgpPjgZgNCivjgo/jgaAs44G+44GV44GKDQor44KP44GgLOOBvuOBleOCiOOBlw0KK+OCj+OBoCzjgojjgZfjgYLjgY0NCivjgZ/jga7jgYbjgYgs44KG44GG44GE44GhDQor44KP44GX44GgLOOBsuOBp+OBguOBjQ0KK+OCj+OBn+OBhCzjgb/jgaHjgYLjgY0NCivjgo/jgZ/jgarjgbks44G+44GV44KG44GNDQor44KP44Gf44Gq44G5LOOBguOBjeOBig0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgZUNCivjgo/jgZ/jgarjgbks44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBsuOBp+OBjQ0KK+OCj+OBn+OBquOBuSzjgajjgYrjgosNCivjgo/jgZ/jgarjgbks44Gy44KN44KG44GNDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OChOOBjizjgYvjgZrjgYoNCivjgoTjgZQs44G+44GV44Gy44GTDQor44KE44Gv44GOLOOBquOBiuOBteOBvw0KK+OChOOBj+OBlyzjgYrjgZXjgoANCivjgoTjgb7jgaAs44KM44GE44GNDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgajjgb/jgoTjgZkNCivjgoTjgb7jgaAs44Go44GX44Gy44KNDQor44KE44G+44GgLOOBqOOBl+OBig0KK+OChOOBvuOBoCzjgojjgZfjgYoNCivjgoTjgb7jgaAs44KG44GLDQor44KE44G+44GM44GfLOOBn+OBkeOBlw0KK+OChOOBvuOBjuOBlyzjgb7jgZXjgYgNCivjga/jgoos44G+44GV44KG44GNDQor44KE44G+44GQ44GhLOOBi+OBpOOBlw0KK+OChOOBvuOBkOOBoSzjgajjgoLjgYvjgZoNCivjgoTjgb7jgZDjgaEs44Go44KC44G/DQor44GC44GK44Gk44GLLOOCiOOBl+OBleOBqA0KK+OChOOBvuOBkOOBoSzjgb7jgZXjga7jgooNCivjgoTjgb7jgZgs44G/44Gh44GKDQor44KE44G+44KC44GoLOOBsuOCjeOBruOCig0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgYTjgaENCivjgoTjgb7jgoLjgags44GR44KT44GY44KN44GGDQor44KE44G+44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgbXjgb8NCivjgoTjgb7jgoLjgags44Gf44GL44KG44GNDQor44KE44G+44KC44GoLOOBguOBjeOBsuOBpw0KK+OChOOBvuOCguOBqCzjgajjgZfjga7jgooNCivjgoTjgb7jgoLjgags44GI44GE44GYDQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OChOOBvuOCguOBqCzjgajjgZfjgobjgY0NCivjgoTjgb7jgoLjgags44Gq44GK44G144G/DQor44KE44G+44KA44KJLOOBqOOCguOBi+OBmg0KK+OChOOBvuOBquOBiyzjgobjgZ/jgYsNCivjgoTjgb7jgZfjgaos44GX44KT44GYDQor44KE44G+44GX44GfLOOChuOBjeOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgorjgpPjgZjjgoUNCivjgoTjgb7jgZfjgZ8s44GR44KT44GYDQor44KE44G+44GX44GfLOOBsuOBqOOBlw0KK+OChOOBvuOBpizjgZHjgYQNCivjgoTjgb7jgYbjgaEs44GC44GN44KJDQor44KE44G+44GW44GNLOOChuOBjeOBsuOBlQ0KK+OChOOBvuOBluOBjSzjga7jgbzjgosNCivjgoTjgb7jgZbjgY0s44Gy44Go44GXDQor44KE44Gq44GOLOOBi+OBmuOBig0KK+OChOOBquOBjuOBoCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgoTjgarjgY7jgaAs44G/44G7DQor44KE44Gq44GELOOBleOBqOOBlw0KK+OChOOBquOBiyzjgZ/jgaDjgZcNCivjgoTjgZnjgaAs44G+44GV44G/DQor44KE44GZ44GgLOOBhOOCj+OBig0KK+OChOOBmeOBoCzjgZvjgY3jgZMNCivjgoTjgZnjgoLjgags44GL44Ga44KEDQor44KE44Gk44GLLOOBquOBiuOBjQ0KK+OChOOBluOCjyzjgb/jgZrjgbsNCivjgojjgaAs44Gm44Gk44KEDQor44KI44Gp44GM44KPLOOBruOCiuOBig0KK+OCiOOBoCzjgbLjgo3jga7jgooNCivjgojjgZPjga/jgZ8s44Gy44KN44KEDQor44KI44GT44KE44G+LOOBhOOCj+OBig0KK+OCiOOBk+OChOOBvizjgZfjgZLjgosNCivjgojjgoLjgoos44GC44GN44KI44GXDQor44KI44Gt44KC44GhLOOCiOOBl+OBpOOBkA0KK+OCiOOCjeOBmuOChCzjgarjgYrjgbLjgZUNCivjgojjgZfjgaAs44Gf44Gk44Ge44GGDQor44KI44GX44GgLOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjga7jgorjgYoNCivjgbXjgZjjgZXjgY0s44GT44GG44GE44GhDQor44KI44GX44GgLOOBsuOBqOOBlw0KK+OCiOOBl+OBoCzjgabjgaTjgYoNCivjgojjgZfjgb7jgaQs44Gh44Gv44KLDQor44KI44GX44KC44GoLOOChuOBhuOBmeOBkQ0KK+OCiOOBl+OCgOOCiSzjgYvjgaTjgoQNCivjgYTjgZfjgbDjgZcs44Gf44Gg44GXDQor44KI44GX44GuLOOBn+OBpOOChA0KK+OBn+OBi+OBrizjgZHjgYTjgZQNCivjgobjga/jgZcs44GX44KH44GG44GTDQor44GI44Gg44Gy44KNLOOBv+OBqeOCig0KK+OBr+OCieOBoCzjgb7jgZXjgobjgY0NCivjga/jgoTjgZXjgYss44KK44KF44GG44Gb44GEDQor44GE44Gq44GM44GNLOOBvuOBleOBjQ0KK+OBhOOBruOBhuOBiCzjgZXjgajjgZcNCivjgYTjgZfjga/jgoks44Gf44GL44GXDQor44GT44GY44G+LOOChOOBmeOBsuOBlQ0KK+OBk+OBmeOBjizjgZfjgpPjgZQNCivjgY/jgbzjgZ8s44Gq44KL44G/DQor44KC44KKLOOBn+OBi+OBlw0KK+OBquOBi+OBsOOChOOBlyzjgarjgYrjgbLjgZUNCivjga3jgoLjgags44Gf44GL44GXDQor44Gr44Gu44G/44KELOOBkeOBhA0KK+OBiuOBjOOCjyzjgoHjgZDjgb8NCivjgYrjgYrjgZ/jgass44G+44GV44GTDQor44Gb44GNLOOBj+OBvw0KK+OBl+OBtuOBn+OBqyzjgaTjgajjgoANCivjgZfjgpPjgags44Gy44KN44KG44GNDQor44Gd44G244GILOOBsuOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgZcNCivjgZ/jgYvjgZss44G+44G/44GTDQor44Go44KI44GgLOOBsuOCjeOBsuOBpw0KK+OBhuOBiOOBoCzjgZfjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44KE44GZ44KG44GNDQor44KE44G+44Ga44G/LOOBsuOCjeOBlw0KK+OCiOOBl+OBoCzjgZPjgYbjgZgNCivjgYLjgZXjgYvjgYQs44Gq44KL44Go44GXDQor44G144GP44GfLOOBi+OBmuOBvw0KK+OBi+OCj+OBleOBjSzjgYvjgZrjgYoNCivjgbLjgo3jgZss44KI44GX44GL44GaDQor44GL44GV44Gv44KJLOOBm+OBpOOBkw0KK+OBiuOBluOCjyzjgZHjgYTjgYTjgaENCivjgYvjgajjgYYs44GR44GE44GE44GhDQor44Gq44GL44KA44KJLOOBm+OBhOOBiOOBhA0KK+OBn+OBkOOBoSzjgbLjgo3jgoANCivjgYLjgaDjgaEs44KK44KH44GG44Gb44GEDQor44GC44GL44GXLOOCiOOBl+OBsuOBlQ0KK+OBguOBjeOChOOBvizjgYjjgb8NCivjgYLjgYrjgY0s44GX44KH44GG44GYDQor44GC44KJ44GNLOOBqOOCguOBn+OBkQ0KK+OBguOBleOBsizjgbXjgb/jga7jgooNCivjgYLjgZXjga4s44Go44GX44Gy44GTDQor44GC44KP44GuLOOBiuOBleOCgA0KK+OBguOCj+OBrizjgZjjgoXjgpPjgZjjgo3jgYYNCivjganjgYbjgZgs44Gq44GK44KG44GNDQor44Gp44GG44Ge44GuLOOBm+OBhOOChA0KK+OBteOBoeOBi+OBvyzjgYvjgaTjgo3jgYYNCivjgbXjgZjjgYQs44GR44KT44GYDQor44G144GY44GELOOBk+OBhuOBhOOBoQ0KK+OBteOBmOOBhOOBiCzjga7jgbbjgoQNCivjgZPjgo8s44GX44KF44KT44GE44GhDQor44G144GY44GX44KNLOOBvuOBleOBig0KK+OBteOBmOOBnyzjgojjgYbjgZMNCivjgbXjgZjjgZ8s44Gy44KN44KG44GNDQor44G144GY44KP44KJLOOBk+OBhuOBmA0KK+OBteOBj+OBoCzjgarjgYrjgobjgY0NCivjgbXjgY/jgaAs44Gf44Gk44GKDQor44G144GP44GgLOOBkeOCkw0KK+OBleOBhOOBqOOBhizjgYrjgZXjgb8NCivjgbXjgY/jgoTjgb4s44GY44KF44KT44GE44GhDQor44G144KL44Gv44GfLOOBk+OBhuOBmA0KK+OBlOOBqOOBhizjgbLjgo3jgYvjgZoNCivjga/jgoDjgo0s44GK44GV44KADQor44Gv44GbLOOBn+OBj+OBsuOBlQ0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgbLjgo0NCivjga/jgZfjgoLjgags44GY44KF44KT44GE44GhDQor44Gv44Gj44Go44KKLOOBmOOCheOCkw0KK+OBr+OChOOBlyzjgYvjgaTjgbLjgZMNCivjga/jgoTjgZcs44Go44GX44GC44GNDQor44Gv44KE44GXLOOBvuOBleOBi+OBmg0KK+OBr+OChOOBlyzjgZfjgZLjgb/jgaQNCivjga/jgoTjgZcs44KB44GEDQor44Gv44KE44GXLOOBvuOBleOBpOOBkA0KK+OBsuOBsyzjgbLjgo3jgobjgY0NCivjgbLjgZDjgb4s44Gf44GP44KEDQor44Gy44KJ44GELOOBsuOCjeOBn+OBiw0KK+OBsuOCieOBi+OCjyzjgaTjga3jgajjgoINCivjgbLjgonjga4s44GL44Ga44Gy44GTDQor44Gy44KN44Gq44GLLOOBv+OBruOCiw0KK+OBu+OCiuOBkOOBoSzjga7jgbbjgYLjgY0NCivjgbvjgZXjgYss44GV44Go44GXDQor44G744Gd44KELOOBm+OBhOOBmA0KK+OBhOOBoeOBhCzjgZfjgZLjgobjgY0NCivjgYTjgaHjgYvjgo8s44KC44Go44Gy44KNDQor44GE44GQ44G+LOOBiOOBhOOBhOOBoQ0KK+OBhOOBhOOBleOBiyzjgb7jgobjgb8NCivjgYTjgYvjgo8s44GE44KP44GKDQor44GE44GR44GgLOOBguOChuOBkw0KK+OBhOOBkeOBoCzjgYTjgY/jgZjjgo3jgYYNCivjgYTjgZHjgYzjgb8s44G+44KC44KLDQor44GE44Gu44GG44GILOOBl+OCjeOBhg0KK+OBhOOBruOBhuOBiCzjgbLjgZXjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Go44GP44GY44KN44GGDQor44GE44GX44Gw44GXLOOChOOBmeOBsuOBlQ0KK+OBhOOBl+OBoCzjgojjgZfjgobjgY0NCivjgYTjgZfjgb7jgoss44G/44KPDQor44GE44GX44Ga44GLLOOBqOOBl+OChuOBjQ0KK+OBhOOBnSzjgbLjgafjgYLjgY0NCivjgYTjgajjgYYs44Gy44Gn44GC44GNDQor44GE44Go44GGLOOBguOBjeOBsuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44GV44KP44GTDQor44GE44Go44GGLOOBpuOBpOOChA0KK+OBhOOBqOOBhizjgojjgZfjgb/jga0NCivjgYTjgajjgYYs44GR44KT44GE44GhDQor44GE44KP44GfLOOBleOBqOOBlw0KK+OBi+OCiuOChCzjgZvjgYTjgYTjgaENCivjgYzjgZXjgY0s44GX44GS44GKDQor44GL44GMLOOBi+OBmuOBsuOBlQ0KK+OBi+OBkuOChOOBvizjgaTjgojjgZcNCivjgYvjgZjjgarjgb8s44Gf44GL44KG44GNDQor44GL44G/44Gy44KJ44GfLOOBsuOCjeOChuOBjQ0KK+OBi+OBquOCguOCiizjgZ/jgaTjgoQNCivjgYvjga3jgZMs44Gm44KL44GKDQor44GL44Gt44GTLOOCiOOBl+OBig0KK+OBi+OBq+OCjyzjgYLjgY3jgokNCivjgYvjgZXjgb4s44Gu44KK44G+44GVDQor44GL44GbLOOBsuOCjeOChuOBjQ0KK+OBi+OBl+OCgOOCiSzjgbXjgb/jgajjgZcNCivjgYvjgZ/jgYrjgYss44GR44KT44GYDQor44GL44Go44GGLOOBmOOCheOCk+OBkw0KK+OBi+OBqOOBhizjgZHjgYTjgZgNCivjgYvjgajjgYYs44GT44GG44GfDQor44GL44Go44GGLOOBguOBjeOBsuOBkw0KK+OBi+OBqOOBhizjga7jgbbjgbLjgacNCivjgYvjgo/jgaEs44GR44GE44GTDQor44GL44KP44GQ44GhLOOBoeOBleOBqA0KK+OBi+OCj+OBrizjgb/jgaTjgYoNCivjgYvjgo/jgZfjgb4s44Gm44Gk44GYDQor44GN44GP44GhLOOBqOOCguOBguOBjQ0KK+OBjeOCguOBqCzjgojjgZfjgbLjgo0NCivjgY3jgoDjgoks44GL44Gk44KEDQor44GN44Gu44GX44GfLOOBpuOBpA0KK+OBjeOBl+OBr+OCiSzjgaTjgZDjgYLjgY0NCivjgY3jgZfjgYvjgo8s44Gy44Gn44KG44GNDQor44GN44GfLOOCiuOBiA0KK+OBjeOBn+OBjOOCjyzjgb/jgaHjga/jgosNCivjgY3jgZ/jga4s44KK44GI44GTDQor44GN44Gf44KE44G+LOOBm+OBhOOBkw0KK+OBjeOCiOOBiuOBiyzjgb7jgZXjgogNCivjgY3jgojjgZss44Gk44GL44GVDQor44GT44Gw44KKLOOBn+OBpuOBjQ0KK+OBk+OBsOOChOOBlyzjgYvjgYrjgosNCivjgZPjgbDjgoTjgZcs44GT44GG44Gf44KN44GGDQor44GT44G844KKLOOBn+OBvuOBvw0KK+OBk+OBhOOCjyzjgZ/jgZHjgZcNCivjgZPjgZjjgb4s44G144G/44KIDQor44Gv44GX44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBk+OBv+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgZPjgpPjgaks44Go44KC44KG44GNDQor44GT44KT44GpLOOBruOCiuOBkw0KK+OBk+OCk+OBqSzjgojjgYbjgZnjgZENCivjgZPjgZfjgYvjgo8s44GC44GN44G144G/DQor44GT44Gm44GM44KPLOOBkeOCk+OBmA0KK+OBk+OCjyzjga7jgbbjgobjgY0NCivjgY/jgbzjgZ8s44GX44KH44GG44GE44GhDQor44GP44G844GfLOOBsuOCjeOChuOBjQ0KK+OBj+OBqeOBhizjga/jgoTjgagNCivjgY/jgYws44KI44GX44Gy44KNDQor44KC44KKLOOChuOBjeOBsuOCjQ0KK+OBj+OBq+OBn+OBkSzjga/jgZjjgoENCivjgY/jgonjgYvjgZEs44Gy44KN44GL44GaDQor44GP44KKLOOBvuOBleOBsuOBqA0KK+OBj+OBleOBteOBiyzjgZfjga7jgbYNCivjgY/jgo/jgbDjgoks44Go44GK44KLDQor44G+44Gh44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOCi+OChOOBvizjgobjgY0NCivjgZ/jgZHjgYbjgaEs44GC44GN44GKDQor44G+44Gk44GwLOOBguOBpOOBlw0KK+OBvuOBpOOBsOOCiSzjgZ/jgZHjgo0NCivjgb7jgaTjgaDjgYTjgoks44G+44GNDQor44G+44Gk44KC44GoLOOCiOOCiuOBkw0KK+OBvuOBpOOCguOBqCzjgojjgZfjgYLjgY0NCivjgb7jgaTjgarjgYws44G/44G7DQor44G+44Gk44GKLOOBvuOBleOChA0KK+OBvuOBpOOBiizjga7jgorjgobjgY0NCivjgb7jgaTjgYos44GX44KT44KEDQor44G/44GP44GrLOOChOOBmeOBlw0KK+OBv+OBquOBjOOCjyzjgo/jgZ/jgosNCivjgb/jgarjgYzjgo8s44GX44GS44KLDQor44G/44Gu44GmLOOBqOOCguOBguOBjQ0KK+OBv+OBnyzjgojjgZfjgY/jgasNCivjgb/jgajjgoEs44Gf44GR44GXDQor44G/44Gk44KE44G+LOOBl+OCheOBhuOBhOOBoQ0KK+OBv+OChOOBoSzjgZ/jgYvjgbXjgb8NCivjgb/jgoTjgZgs44GT44GG44GYDQor44G/44KE44GY44G+LOOBv+OBpOOBig0KK+OBv+OChOOBnyzjgZHjgYTjgZMNCivjgb/jgoTjgZbjgY0s44GN44KI44GC44GNDQor44G/44KE44GW44GNLOOBvuOBk+OBqA0KK+OBv+OChOOBluOBqCzjgojjgZfjgarjgooNCivjgb/jgoTjgZbjgo8s44Gy44KN44GNDQor44G/44Ge44GQ44GhLOOCguOBqOOBkw0KK+OBv+OBmuOBhCzjgb7jgZXjgojjgZcNCivjgoLjgpPjga4s44GI44GE44GYDQor44KC44KKLOOBv+OBpOOBsuOCjQ0KK+OCguOCiizjga7jgorjgZnjgb8NCivjgoLjgorjgZ8s44GP44KL44G/DQor44KC44KK44GfLOOBqOOBl+OBguOBjQ0KK+OCguOCiuOChOOBvizjgb7jgorjgZMNCivjgoDjgonjgYvjgb8s44KK44KF44GG44GE44GhDQor44KA44KJ44GL44G/LOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OCgOOCieOBi+OBvyzjgb/jga7jgosNCivjgoDjgonjgb7jgaQs44GX44KT44GZ44GRDQor44KA44KN44Ge44GuLOOBsuOCjeOBguOBjQ0KK+OBquOBjOOBtuOBoSzjgbLjgo3jgZcNCivjgarjgYzjga4s44G/44Gk44KLDQor44Gq44GM44GbLOOCiuOCheOBhuOBhOOBoQ0KK+OBquOBjOOBn+OBqyzjgZfjgbsNCivjgarjgZTjgoQs44Gy44KN44GC44GNDQor44Gq44GL44GM44KPLOOBi+OBiuOCig0KK+OBquOBi+OBv+OBoSzjgZfjgofjgYYNCivjgarjgYvjgoDjgoks44GY44KF44KT44GE44Gh44KNDQor44Gq44GL44KA44KJLOOBvuOBleOBruOCig0KK+OBquOBi+OBrizjgbLjgo3jgZcNCivjgarjgYvjgZfjgb4s44Gy44KN44Gu44KKDQor44Gr44GX44GgLOOBmOOCheOCkw0KK+OBq+OBl+OBr+OCiSzjgYLjgaTjgagNCivjgavjgZfjgoDjgoks44GX44KT44KEDQor44Gr44GX44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBruOBkOOBoSzjga7jgbzjgosNCivjga7jgZss44G+44GV44Ga44G/DQor44GK44Gw44GfLOOChuOBhuOBmA0KK+OBiuOBoeOBguOBhCzjgYTjgY/jgZMNCivjgYrjgaHjgYLjgYQs44Gy44Gn44Gy44GTDQor44GK44GM44KPLOOBn+OBi+OBlw0KK+OBiuOBjOOCjyzjgb7jgZXjgagNCivjgYrjgYzjgo8s44Gf44G/44KEDQor44GK44GM44KPLOOBi+OBpOOBqOOBlw0KK+OBiuOBjuOBrizjgb7jgobjgb8NCivjgYrjgZDjgoks44Gf44GL44GC44GNDQor44GT44KT44GpLOOChOOBmeOChuOBjQ0KK+OBiuOBiuOBiCzjgb7jgZXjgb/jgaENCivjgYrjgYrjgYzjgY0s44GY44KN44GGDQor44GK44GK44Gr44GXLOOBruOCiuOBguOBjQ0KK+OBiuOBiuOBrizjgb7jgZXjgb/jgaENCivjgYrjgYrjgZ8s44Gy44KN44GXDQor44GK44GX44KNLOOBi+OBmuOBl+OBkg0KK+OBiuOBiuOBnyzjgZ/jgYvjgZcNCivjgYrjgYrjgZ/jgZfjgo0s44Gy44Gn44GNDQor44GK44GK44GkLOOBvuOBleOBi+OBmg0KK+OBiuOBiuOBpCzjgoHjgZDjgb8NCivjgYrjgYrjgoTjgY4s44GI44GE44GYDQor44GK44GK44KE44G+LOOBoeOBr+OCiw0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgbbjgb8NCivjgYrjgYvjgoTjgb4s44G/44Gk44KI44KKDQor44GK44GR44Gf44GrLOOBn+OBpOOBkw0KK+OBiuOBj+OChOOBvizjgY/jgb/jgZMNCivjgYrjga7jgafjgoks44Gy44Gn44Go44GXDQor44GK44GW44KPLOOBv+OBruOCiw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgbLjgacNCivjgZXjgYTjgajjgYYs44Gm44KL44GKDQor44GV44GE44Go44GGLOOBn+OBi+OBruOBtg0KK+OBleOBi+OBkOOBoSzjgbLjgo3jgYvjgZoNCivjgZXjgYvjgarjgYss44KC44Go44KADQor44GV44GL44Gr44KPLOOCiOOCiuOBkw0KK+OBleOBi+OBhuOBoSzjgajjgZfjgZ/jgYsNCivjgZXjgY/jgonjgYQs44Gk44Go44KADQor44GV44GP44KJ44GELOOBvuOBleOChuOBjQ0KK+OBleOBrizjgZ/jgY/jgoQNCivjgZXjgZXjgY0s44G+44GV44G/DQor44GV44GV44GNLOOBiOOCig0KK+OBleOBleOBjSzjgorjgYgNCivjgZXjgZXjgb4s44G+44GV44GL44GaDQor44GV44Go44GGLOOBn+OBkeOChA0KK+OBleOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOBv+OCjw0KK+OBq+OBl+OBvuOBnyzjgabjgaTjgYoNCivjgZXjgo/jgaAs44G+44GV44Gy44GVDQor44Gb44KT44GwLOOChuOBhuOBhOOBoQ0KK+OBm+OBqCzjgojjgZfjga7jgooNCivjgZfjgbbjgoQs44KG44GN44GKDQor44GX44GELOOBv+OBleOBkw0KK+OBl+OBvuOBoCzjgZPjgYbjgbjjgYQNCivjgZfjgb7jgaAs44G/44GIDQor44GK44GL44KC44GoLOOBvuOBleOBqOOBlw0KK+OBl+OBquOBjOOCjyzjgZXjgaHjgYgNCivjgZfjgpPjgYvjgo8s44Gy44GV44KEDQor44GX44KT44GN44KF44GGLOOBvuOBleOChuOBjQ0KK+OBl+OBruOBoCzjgabjgovjgYgNCivjgZfjga7jga/jgoks44Gb44GE44GE44GhDQor44GC44GV44GL44KPLOOBi+OBiuOCiw0KK+OBl+OBiuOBr+OCiSzjgb7jgZXjgagNCivjgZfjgo3jgZ8s44GL44Gk44Gy44KNDQor44GZ44GO44KC44GoLOOBi+OBmuOBsuOBpw0KK+OBmeOBjuOChOOBvizjgY3jgojjgZ/jgYsNCivjgZnjgZDjgaEs44Gu44G244GTDQor44KC44KN44Go44G/LOOBr+OCi+OBkw0KK+OBmeOBmuOBjSzjgb7jgZXjgbXjgb8NCivjgZ/jgZDjgaEs44GC44GN44GKDQor44Gf44GQ44GhLOOChuOBhuOBmA0KK+OBn+OBr+OCiSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjgY4s44KI44GX44GKDQor44Gf44GL44Gv44GXLOOBi+OBmuOBig0KK+OBn+OBi+OBhCzjgZHjgpPjgZgNCivjgZ/jgYvjgoTjgb4s44GL44Ga44GTDQor44Gf44GRLOOBquOBiuOBjQ0KK+OBn+OBkeOBsOOChOOBlyzjgorjgoXjgYbjgZgNCivjgZ/jgZHjgYvjgo8s44GY44KF44KT44GTDQor44Gf44GR44GG44GhLOOBi+OBu+OCiw0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgZ/jgZHjgYbjgaEs44Gy44Gn44GNDQor44Gf44G/44KELOOBvuOBleOBi+OBmg0KK+OBn+OCgOOCiSzjgbLjgo3jgZcNCivjgZ/jgarjgbks44G+44GV44Gy44KNDQor44Gf44Gq44GLLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjga7jgbbjgZMNCivjgZ/jgarjgYss44Gk44KI44GXDQor44Gf44Gr44GQ44GhLOOBguOBpOOBlw0KK+OBn+OBq+OBkOOBoSzjgYvjgZrjgbLjgo0NCivjgZ/jgavjgoDjgoks44Gf44Gk44GKDQor44Gf44Gu44GG44GILOOBguOBjeOBsuOCjQ0KK+OBn+OCi+OBleOCjyzjgYLjgY3jgZMNCivjgZ/jgZfjgo0s44Go44GX44Gv44KLDQor44Gm44KJ44GgLOOChuOBjeOBsuOBkw0KK+OBqOOBhuOBjCzjgbLjgafjgb/jga0NCivjgajjgYzjgZcs44GX44GS44GKDQor44Go44GG44GU44GGLOOBl+OCk+OChA0KK+OBqOOBj+OBquOBjCzjgYLjgoTjgZMNCivjgajjgoLjga4s44GL44Ga44G/DQor44Go44KI44GgLOOCiOOBhuOBmOOCjeOBhg0KK+OBpOOBoeOChCzjgbLjgo3jgYLjgY0NCivjgaTjgYvjga/jgoks44Gu44G244Gy44KNDQor44GG44KJ44GV44GNLOOChuOBhuOBmA0KK+OCj+OBoCzjgajjgoLjgoTjgZkNCivjgo/jgaAs44KM44GE44GTDQor44KP44Gf44Gq44G5LOOBvuOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgbXjgb/jgYoNCivjgoTjgY7jgazjgb4s44GR44GE44GTDQor44KE44G+44GgLOOBqOOBl+OBguOBjQ0KK+OChOOBvuOBoCzjgbLjgZXjgZcNCivjgoTjgb7jgaAs44GR44GE44GYDQor44KE44G+44KC44GoLOOBvuOBleOBguOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgafjgagNCivjgoTjgb7jgoLjgags44Gf44Gk44KEDQor44KE44G+44KC44GoLOOChuOBjeOBsuOCjQ0KK+OChOOBvuOBquOBiyzjgaHjgbLjgo0NCivjgoTjgb7jgarjgYss44GL44GK44KLDQor44KE44G+44GX44GfLOOBvuOBleOBsuOCjQ0KK+OBsuOBkOOBoSzjgZjjgoXjgpPjgZgNCivjgoTjgb7jgZbjgY0s44G144G/44GuDQor44KE44Gq44GOLOOBsuOCjeOBlw0KK+OChOOBmeOBoCzjga7jgbbjgobjgY0NCivjgoTjgZnjgYgs44Go44GX44KEDQor44KI44GT44GILOOBruOBtuOBguOBjQ0KK+OCiOOBk+OChOOBvizjgorjgYjjgZMNCivjgojjga3jga/jgoks44GT44GG44GE44GhDQor44KI44Gt44G/44GkLOOBvuOBk+OBqA0KK+OCiOOCiuOBvuOBpCzjgajjgoLjgZMNCivjgojjgZfjgaAs44G144G/44Gy44KNDQor44KI44GX44GuLOOBv+OBpOOBsuOCjQ0KK+OCiOOBl+OBn+OBjSzjgYrjgZXjgoANCivjgobjgYvjgo8s44GY44KF44KT44KEDQor44KG44KKLOOBqOOCguOBig0KK+OCguOCiizjgZ/jgYvjgbLjgZUNCivjgZXjgZXjgY0s44GL44Gk44Gy44GTDQor44GX44KJ44Gv44G+LOOBn+OBkeOBsuOCjQ0KK+OBpuOCk+OBseOBjyzjgobjgYbjgYTjgaHjgo0NCivjgYbjgaHjgaAs44Gq44GK44KEDQor44KE44G+44GG44KJLOOBqOOBiuOCiw0KK+OBvuOBpOOBkOOBvizjgbXjgb/jgZMNCivjgYLjgbks44Gy44KN44KG44GNDQor44GC44G5LOOBi+OBpOOBvw0KK+OBguOBuSzjgYvjgZrjgYoNCivjgYLjgbks44Gq44GK44GC44GNDQor44GC44Gg44GhLOOBquOBquOBig0KK+OBguOBhOOBr+OCiSzjgaTjgojjgZcNCivjgYLjgZjjgb4s44KE44GZ44GC44GNDQor44GC44GL44GV44GLLOOBqOOBiuOCiw0KK+OBguOBjeOCguOBqCzjgZPjgYbjgZ7jgYYNCivjgYLjgY3jgoTjgb4s44Gf44GL44GXDQor44GC44GN44KE44G+LOOBn+OBpOOChA0KK+OBguOBj+OBrSzjgbLjgo3jgZcNCivjgYLjgb7jga4s44G+44Gq44G2DQor44GC44G+44GuLOOBoeOBguOBjQ0KK+OBguOCgeOBv+OChCzjgb7jgZXjgaTjgZANCivjgYLjgpPjganjgYYs44G/44GNDQor44GC44KT44Gp44GGLOOBv+OCjw0KK+OBguOCk+OBqeOBhizjgYvjgZrjgYoNCivjgYLjgpPjgZjjgY0s44KG44GG44GTDQor44GC44KT44G644GE44GYLOOBl+OCheOCk+OBhOOBoQ0KK+OBguOBiuOBjSzjgojjgZfjgZMNCivjgYLjgYrjgY0s44GX44GS44Gv44KLDQor44GC44GK44GNLOOChuOBjeOBkw0KK+OBguOBiuOBjSzjgZjjgoXjgpMNCivjgYLjgYrjgY0s44Go44GX44GC44GNDQor44Gv44KJ44GX44G+LOOCiuOBiw0KK+OBguOBiuOBjSzjgaTjgajjgoANCivjgYLjgYrjgY0s44Gq44GK44Gy44GVDQor44GC44GK44KE44GOLOOBn+OBi+OChuOBjQ0KK+OBguOBiuOChOOBvizjgojjgYbjgYTjgaENCivjgYLjgYrjgoTjgb4s44GR44GE44GZ44GRDQor44GC44KJ44GELOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBjSzjgb7jgZPjgagNCivjgYLjgonjgY0s44GL44Gk44GYDQor44GC44KJ44GfLOOBv+OBjQ0KK+OBguOCieOChCzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgYvjgo8s44KE44GZ44Gy44KNDQor44GC44KK44GfLOOBquOCi+OBsuOBqA0KK+OBguOBleOBsCzjgojjgZfjgobjgY0NCivjgYLjgZXjgYss44Go44KC44Gh44GLDQor44GC44GV44GP44KJLOOBn+OBpOOBig0KK+OBguOBleOBrizjgZfjgoXjgYbjgZgNCivjgYLjgZXjga4s44Go44KC44GC44GNDQor44GC44GX44G5LOOBvuOBleOBsuOBkw0KK+OBguOCj+OBv+OChCzjgbLjgo3jgobjgY0NCivjgYLjgZbjgb8s44Gk44Go44KADQor44GC44Gc44KE44Gq44GOLOOBsuOCjeOBvw0KK+OBguOBmuOBvizjgorjgYgNCivjgYLjgZrjgb4s44Gf44GL44KG44GNDQor44GC44Ga44G+LOOBquOBiuOChuOBjQ0KK+OBsOOBsCzjgojjgZfjgYvjgZoNCivjgbDjgbAs44GL44Gk44KG44GNDQor44Gw44GwLOOBoOOBhOOBmeOBkQ0KK+OBsOOBquOBiyzjgYvjgZrjgoQNCivjgZXjgZ/jgZEs44GR44GE44GTDQor44Gh44GwLOOCguOBqOOBr+OCiw0KK+OBoeOBjuOCiSzjga7jgbbjgbLjgZMNCivjgaHjga/jgoks44Gf44GL44G144G/DQor44Gh44GL44GELOOBguOBpOOBlw0KK+OBoeOCheOBhuOBvizjgZ/jgZHjgZcNCivjgaDjgYQs44G+44GV44Gy44KNDQor44Gg44GE44GKLOOBsuOBp+OBjQ0KK+OBoOOBpizjgbLjgo3jgZcNCivjgafjgZDjgaEs44GT44GG44GYDQor44Gn44KPLOOBiOOBv+OBkw0KK+OBqeOBhCzjgZ/jgYTjgZ7jgYYNCivjgYjjgbPjgZXjgo8s44Gy44KN44G/44GkDQor44Gq44GL44KA44KJLOOBn+OBi+OBkw0KK+OBiOOBhOOCguOCiizjga/jgovjgb8NCivjgYjjgpPjgaks44Gq44GK44GNDQor44GI44KT44GpLOOBn+OBi+OBig0KK+OBiOOBruOCguOBqCzjgZHjgYTjgZMNCivjgbXjgZjjgYQs44Gy44KN44GL44GaDQor44G144GY44GELOOBkeOCk+OBhOOBoeOCjQ0KK+OBteOBmOOBhCzjgZ/jgaTjga7jgooNCivjgbXjgZjjgYQs44G/44Gk44KI44GXDQor44G144GY44GELOOBqOOBl+OBguOBjQ0KK+OBteOBmOOBi+OCjyzjgZfjga7jgbYNCivjgbXjgZjjgoLjgoos44GC44GN44GTDQor44GC44GK44GNLOOBguOBjeOCiQ0KK+OBteOBmOOCguOBqCzjgarjgYrjgoQNCivjgbXjgZjjgYrjgYss44Gm44Gk44KN44GGDQor44G144GY44GfLOOChOOBmeOBsuOBlQ0KK+OBteOBmOOBnyzjgoDjgaTjgYoNCivjgbXjgYvjgYos44GX44KT44GE44GhDQor44G144GP44GgLOOBi+OBpOOBsuOBkw0KK+OBteOBj+OBoCzjgbLjgo3jgZcNCivjgbXjgY/jgYQs44Gy44Gn44GKDQor44G144GP44GELOOBk+OBhuOBmA0KK+OBteOBj+OCguOBqCzjgbLjgafjgZ/jgYsNCivjgbXjgY/jgZfjgb4s44Gy44Gn44Gu44G2DQor44G144GP44GX44G+LOOBruOBtuOBkw0KK+OBsuOBrizjgZXjgaENCivjgbXjgY/jgZbjgo8s44GN44KH44GG44GTDQor44G144GP44GW44KPLOOBv+OBjeOBkw0KK+OBteOBquOBoCzjgobjgYbjgZMNCivjgbXjgovjgaDjgaYs44GR44GE44GTDQor44G144KL44KELOOBkeOBhOOBmeOBkQ0KK+OBteOBn+OCgOOCiSzjgb/jgY3jgoQNCivjgarjgYvjgoDjgoks44KC44Go44Gy44GVDQor44GU44Go44GGLOOBl+OBkuOBjQ0KK+OBlOOBqOOBhizjgYvjgZrjgoQNCivjgZTjgajjgYYs44GL44GE44Gh44KN44GGDQor44GU44Go44GGLOOCiOOBhuOBkw0KK+OBr+OBsCzjgojjgYbjgZMNCivjga/jgaHjgoTjgb4s44G+44GV44G/DQor44Gv44GO44KP44KJLOOBl+OCkw0KK+OBr+OBvuOBuSzjgZ/jgYvjgobjgY0NCivjga/jgb7jgaAs44KI44GX44G/DQor44Gv44G+44GgLOOBn+OBi+OBsuOBpw0KK+OBvuOBiOOBiuOBiyzjgbLjgajjgZcNCivjga/jgarjgb8s44KE44GZ44Gy44GnDQor44Gv44Gq44GK44GLLOOBguOBjeOBkw0KK+OBm+OBluOBhCzjgarjgYrjgY0NCivjga/jgoks44KK44KH44GG44GYDQor44GV44Go44GGLOOBm+OBhOOBlA0KK+OBr+OCiSzjgYLjgaTjgZcNCivjga/jgonjgaAs44Gq44Gk44G/DQor44Gv44KJ44GgLOOBiOOBhOOBhOOBoQ0KK+OBr+OCieOBoCzjgYvjgZrjgbLjgZMNCivjga/jgonjgaAs44G+44GV44GC44GNDQor44Gv44KJ44GgLOOBv+OBpOOBruOCig0KK+OBr+OCiuOBvizjgarjgYrjgY0NCivjgbvjgpPjgb4s44Gu44G244GC44GNDQor44Gv44KL44KE44G+LOOBl+OBkuOCiw0KK+OBr+OBmyzjgojjgYbjgYTjgaENCivjga/jgZvjgYzjgo8s44Gf44Gk44GKDQor44Gv44Gb44GM44KPLOOChOOCiOOBhA0KK+OBr+OBm+OBjOOCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgZvjgYzjgo8s44GC44GN44Gy44GTDQor44Gv44GX44GQ44GhLOOBsuOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgYvjgaTjgZMNCivjga/jgZfjgoLjgags44GL44Ga44KEDQor44Gv44GX44Ga44KBLOOBk+OBhuOBn+OCjeOBhg0KK+OBr+OBl+OBmuOCgSzjgb/jgo8NCivjga/jgZfjgZrjgoEs44GX44KF44KT44GZ44GRDQor44Gv44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBn+OBrizjgaHjgYvjgokNCivjga/jgZ/jga4s44GL44Ga44Go44KCDQor44Gv44Go44KKLOOBquOBiuOBjQ0KK+OBr+OBo+OBqOOCiizjgZ/jgZHjgZcNCivjga/jgaPjgajjgoos44KI44GG44GE44GhDQor44Gv44Gj44Go44KKLOOBguOBjeOBsuOBkw0KK+OBr+OBo+OBqOOCiizjgobjgY0NCivjga/jgaPjgajjgoos44GV44Go44GXDQor44Gv44Gj44Go44KKLOOBvuOBleOBjQ0KK+OBr+OBo+OBqOOCiizjgo/jgZ/jgosNCivjga/jgoTjgYvjgo8s44GR44GE44GTDQor44Gv44KE44GL44KPLOOBquOBiuOBvw0KK+OBr+OChOOBvyzjgZnjgb/jgbLjgagNCivjga/jgoTjgZcs44Gy44Gn44GC44GNDQor44Gv44KE44GXLOOChuOBv+OBkw0KK+OBr+OChOOBlyzjgb7jgZXjgZ/jgYsNCivjga/jgoTjgZcs44G+44KG44G/DQor44Gv44KE44GXLOOChOOBmeOBsuOCjQ0KK+OBleOBleOBn+OBqyzjgYLjgY3jgokNCivjga/jgoTjgZcs44G+44GV44Gu44KKDQor44Gv44GW44G+LOOBm+OBhOOBhOOBoQ0KK+OBuOOCk+OBvyzjgYvjgarjgZMNCivjgbLjgbMs44Go44KC44G/DQor44Gy44Gg44GLLOOBqOOBhuOBkw0KK+OBsuOBoOOBiyzjgobjgYbjgZMNCivjgbLjgaDjgYss44Gf44KN44GGDQor44Gy44GI44GgLOOBv+OBoeOBi+OBmg0KK+OBsuOBjOOBjSzjgZfjgofjgYbjgZgNCivjgbLjgYzjgZcs44KI44GX44Gy44GVDQor44Gy44GE44Gp44KBLOOBsuOCjeOBv+OBoQ0KK+OBsuOBmOOBj+OCjSzjgZvjgYTjgYTjgaENCivjgbXjgY/jgYQs44GE44GV44GKDQor44Gy44G+LOOCiOOBl+OBjQ0KK+OBsuOBiuOBjSzjgajjgYbjgoHjgYQNCivjgbLjgonjgYQs44G+44KKDQor44G/44GNLOOBvuOBleOChuOBjQ0KK+OBsuOCieOBrizjgbXjgY3jgogNCivjgbLjgonjga4s44GL44Ga44Gy44KNDQor44Gy44KJ44GfLOOBl+OCjeOBhg0KK+OBsuOCieOBpOOBiyzjgbXjgb/jgYvjgZoNCivjgbvjgaAs44Gy44KN44GNDQor44Gy44KJ44KE44G+LOOBquOBiuOBkw0KK+OBsuOCjeOBuSzjgY3jgY/jgb8NCivjgbLjgo3jgYQs44G+44GV44Gy44KNDQor44Gy44KN44GV44KPLOOBvuOBleOBsuOCjQ0KK+OBsuOCjeOBleOCjyzjgarjgYrjgZMNCivjgbLjgo3jgZnjgYgs44GY44KF44KT44GTDQor44Gy44KN44GfLOOBiuOBleOCgA0KK+OBr+OChOOBvizjgobjgYbjgZMNCivjgbLjgo3jgo/jgZ/jgoos44GV44KG44KKDQor44Gy44GV44KC44GoLOOBv+OBi+OBkw0KK+OBsuOBleOBrizjgojjgZfjgYLjgY0NCivjgbLjgZXjgobjgY0s44KG44GL44KKDQor44Gy44GX44GgLOOBsuOCjeOBlw0KK+OBsuOBl+OBn+OBqyzjgoTjgZnjgZcNCivjgo/jgaAs44G144G/44GIDQor44Gy44KE44G+LOOBruOBtuOBsuOBkw0KK+OBguOCiuOBj+OCiSzjgobjgZ/jgYsNCivjgbvjgpPjgaAs44G/44Gu44KLDQor44G744KT44GgLOOBkeOBhOOBmeOBkQ0KK+OBu+OCk+OBlOOBhizjgb7jgZXjgagNCivjgbvjgpPjgb4s44KG44GG44GE44GhDQor44G744KT44G+LOOBguOBjeOBruOBtg0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZ8NCivjgbvjgoos44G+44Gq44G2DQor44G744KKLOOBguOBjeOBqA0KK+OBu+OCiuOBuSzjgajjgZfjgobjgY0NCivjgbvjgorjgYgs44GC44GN44Gu44KKDQor44G744KK44GILOOBvuOBleOBsuOBkw0KK+OBu+OCiuOBiCzjgZ/jgaDjgZcNCivjgbvjgorjgYbjgaEs44KI44GX44G144G/DQor44G744GX44GwLOOBqOOBiuOCiw0KK+OBu+OBl+OBi+OCjyzjgbLjgafjgYoNCivjgYvjgajjgYYs44Gq44GK44GNDQor44G744GX44GqLOOBk+OBhuOBhOOBoQ0KK+OBu+OCiizjga7jgorjgobjgY0NCivjgbvjgZfjga4s44Gf44GL44GXDQor44G744Gd44GgLOOBruOBtuOBig0KK+OBu+OBo+OBnyzjgZXjgYrjgooNCivjgbvjgaHjgaks44Gf44GL44KEDQor44GE44G244GLLOOCiOOBl+OBpuOCiw0KK+OBhOOBoeOBi+OCjyzjgbLjgajjgZcNCivjgYTjgaHjgYvjgo8s44G+44KK44GTDQor44GE44Gh44G+44GZLOOBpOOBqOOCgA0KK+OBhOOBoeOBruOBmyzjgYvjgaTjgb8NCivjgYTjgacs44G+44GV44Gy44GTDQor44GE44GM44KJ44GXLOOBvuOBleOBqA0KK+OBhOOBjOOBnyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgYTjgYQs44KG44KK44GTDQor44GE44GE44GgLOOBvuOBleOCiOOBlw0KK+OBhOOBhOOBoCzjgb7jgZXjgobjgY0NCivjgYTjgYTjgaAs44GX44KT44GYDQor44GE44GE44GuLOOBhOOBoeOCjeOBhg0KK+OBhOOBhOOCiOOCiizjgb/jgaHjga/jgosNCivjgYTjgYTjgZrjgYss44G+44GT44GoDQor44GE44GL44KL44GOLOOBi+OBpOOChA0KK+OBhOOBi+OCjyzjgZHjgYTjgZnjgZENCivjgYTjgZHjgaEs44G+44G/DQor44GE44GR44GgLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBhOOBkeOBoCzjgoLjgajjga/jgosNCivjgYTjgZHjgaAs44Gf44GL44GTDQor44GE44GR44GgLOOBn+OBi+OChuOBjQ0KK+OBhOOBkeOBjOOBvyzjgajjgoLjgbLjgo0NCivjgYTjgZHjgZjjgoos44GL44Ga44KEDQor44GE44GR44Gf44GNLOOBj+OBq+OBiuOBvw0KK+OBhOOBj+OCguOBqCzjgZfjgpMNCivjgYTjgb7jgYQs44Gf44GR44GXDQor44GE44G+44GELOOCjOOBhOOBkw0KK+OBu+OBneOBhCzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgb7jgYQs44GV44G244KN44GGDQor44GE44G+44Gr44GXLOOBn+OBkeOBlw0KK+OBhOOBquOBoCzjga/jgZjjgoENCivjgYTjgarjgYzjgY0s44G+44Gq44G2DQor44GE44Gq44GSLOOBkeOCk+OBhOOBoQ0KK+OBr+OBluOBvizjgbLjgZXjgoLjgagNCivjgYTjga4s44GY44KF44KTDQor44GE44Gu44G+44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBhOOBruOBhuOBiCzjgorjgYgNCivjgoTjgZnjgYvjgo8s44Gf44GL44Gy44GoDQor44Gv44KLLOOBqOOBiuOCiw0KK+OBhOOBruOBhuOBiCzjgabjgovjgYoNCivjgYTjga7jgYbjgYgs44Gk44Go44KADQor44GE44Gu44GG44GILOOBteOBv+OBruOCig0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgbLjgZUNCivjgYTjgYrjgY0s44G+44GV44G/44GhDQor44GE44KK44GILOOBruOBtuOChuOBjQ0KK+OBhOOBleOBiyzjgajjgYrjgosNCivjgYTjgZXjgYss44KP44Gf44KLDQor44GK44GK44KC44KKLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBl+OBsOOBlyzjgb7jgarjgbYNCivjgYTjgZfjgaAs44GR44GE44GE44GhDQor44GE44GX44GgLOOBhuOCieOCiQ0KK+OBhOOBl+OBr+OCiSzjgojjgZfjgagNCivjgYTjgZfjga/jgoks44Gv44KL44GKDQor44Gy44KJ44GoLOOBsuOBp+OBig0KK+OBhOOBl+OBhCzjgZHjgYTjgZjjgo3jgYYNCivjgYTjgZfjgYQs44G/44GN44GKDQor44GE44GX44GELOOBguOBpOOBlw0KK+OBhOOBl+OBhCzjga/jgovjgYoNCivjgYTjgZfjgYQs44GR44GE44GYDQor44GE44GX44GELOOBvuOBleOBkw0KK+OBr+OBreOBhOOBlyzjgZfjgpPjgZnjgZENCivjgYTjgZfjgYQs44KE44GZ44GXDQor44GE44GX44GL44KPLOOCiOOBhuOBkw0KK+OBhOOBl+OBi+OCjyzjgojjgYbjgZnjgZENCivjgYTjgZfjgYvjgo8s44KI44GX44Gy44GTDQor44GE44GX44GL44KPLOOChuOBiw0KK+OBhOOBl+OBi+OCjyzjga7jgorjgZMNCivjgYTjgZfjgYrjgYss44KI44GX44KG44GNDQor44GE44GX44Gk44GLLOOBqOOBl+OChuOBjQ0KK+OBhOOBl+OCj+OBnyzjgYLjgorjgbLjgo0NCivjgYTjgZfjgZbjgYss44GT44GG44GYDQor44GE44GX44GW44GLLOOBiOOBhOOBhOOBoQ0KK+OBhOOBl+OBluOBjSzjgZPjgYbjgZgNCivjgYTjgZfjgZrjgY0s44Gq44GK44GoDQor44GE44GdLOOBl+OBkuOBsuOBqA0KK+OBhOOBneOBjOOBhCzjgobjgYbjgZMNCivjgYTjgZ/jgbAs44KG44GG44GYDQor44GE44Go44GGLOOBhOOBruOCig0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOBsOOCkw0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgYTjgajjgYYs44GC44Gk44GXDQor44Gy44Gg44GLLOOBsuOBp+OBpOOBkA0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44KG44GNDQor44Gr44GXLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBoOOCjCzjgojjgZfjga7jgooNCivjgYTjgo/jga/jgZcs44KG44GG44GTDQor44GE44KP44GNLOOBv+OBmuOBuw0KK+OBhOOCj+OCguOBqCzjgojjgZfjga7jgooNCivjgYTjgo/jgZXjgY0s44Gu44G244GL44GaDQor44Gy44KJ44Gk44GLLOOBsuOCjeOBlw0KK+OBhOOCj+OBleOBjSzjgbLjgo3jgobjgY0NCivjgYTjgo/jgZXjgY0s44G+44GV44KG44GNDQor44GE44KP44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBmOOCk+OBkOOBhizjgZXjgajjgZMNCivjgYTjgo/jgZfjgZIs44G+44GT44GoDQor44GE44KP44GfLOOBsuOCjeOBlw0KK+OBmOOCk+OBkOOBhizjgojjgZfjga7jgooNCivjgZQs44KE44GZ44GL44GaDQor44GL44GMLOOBi+OBpOOChA0KK+OBi+OBjOOBtizjgZfjgpPjgZjjgo3jgYYNCivjgYvjgY7jgoTjgb4s44Gy44Gn44GKDQor44GL44GELOOChuOBhuOBnuOBhg0KK+OBi+OBhOOBoCzjga7jgorjgobjgY0NCivjgYvjgYTjgaAs44Gu44KK44G+44GVDQor44GL44G+44GhLOOBsuOCjeOChuOBjQ0KK+OBi+OBvuOBoCzjgb7jgZXjgZMNCivjgYvjgb7jgbvjgoos44Go44KC44Gy44GTDQor44GL44G+44GfLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OCgeOBoCzjgb7jgobjgb8NCivjgYvjgoHjgYQs44G144G/44Gy44GTDQor44GL44G/44GuLOOBn+OBkeOBlw0KK+OBi+OBv+OBrizjgbLjgajjgZcNCivjgYvjgb/jgajjga4s44KK44KF44GG44GYDQor44GL44G/44KELOOBruOBtuOChuOBjQ0KK+OBi+OBv+OChCzjgaHjgYLjgY0NCivjgYvjgb/jgoTjgb4s44GR44KT44GODQor44GL44KC44KTLOOBsuOBp+OBjQ0KK+OBi+OCguOCkyzjgYjjgYTjgZ/jgo3jgYYNCivjgYvjgpMs44Go44KC44Gu44KKDQor44GL44Gq44GELOOBruOCiuOBkw0KK+OBi+OBquOBhCzjgZnjgb/jgZMNCivjgYvjgarjgZgs44G+44GV44KG44GNDQor44GL44Gq44GK44GLLOOBn+OBv+OBig0KK+OBi+OBquOBluOCjyzjgYvjgaTjgbLjgZUNCivjgYvjgpPjgbks44GV44GK44KKDQor44GL44KT44GgLOOChOOBmeOBn+OBiw0KK+OBi+OCk+OBoCzjgaHjgYgNCivjgYvjga3jgY0s44GI44GE44GZ44GRDQor44GL44Gt44GN44KILOOBsuOCjeOBqA0KK+OBi+OBreOBkyzjgbLjgo3jgobjgY0NCivjgYvjga3jgZfjgZ8s44GL44Ga44Gy44KNDQor44GL44Gt44KE44GZLOOBquOBiuOChA0KK+OBi+OBruOBhizjgZfjgpPjgZgNCivjgYvjga7jgYYs44Gf44GR44GXDQor44GL44KT44Ga44GELOOBn+OBv+OChuOBjQ0KK+OBi+OBleOBr+OCiSzjgarjgarjgZMNCivjgYvjgZXjga/jgoks44Gy44Gn44Gy44GVDQor44GL44GV44GELOOBiOOBhOOBhOOBoQ0KK+OBi+OBleOBvuOBpCzjgY/jgavjgajjgZcNCivjgYvjgZXjgoIs44GR44KT44GE44Gh44KNDQor44Gf44G+44Gf44GrLOOBl+OBvg0KK+OBi+OBl+OCj+OBjizjgobjgorjgb8NCivjgYvjgZfjgo/jgZDjgoks44Gy44Gn44KG44GNDQor44GL44Gf44GgLOOBleOBoeOBkw0KK+OBi+OBn+OBiuOBiyzjgarjgYrjgY0NCivjgbvjgZcs44Gy44KN44GoDQor44GL44Gf44GK44GLLOOBl+OCheOBhuOBmA0KK+OBi+OBqOOBhizjgbLjgo3jgY0NCivjgYvjgajjgYYs44KE44GZ44KG44GNDQor44GL44Go44GGLOOCguOCiuOBsuOCjQ0KK+OBi+OBqOOBhizjgZfjgpPjgYTjgaENCivjgYvjgajjgYYs44KK44KH44GG44GfDQor44GL44Go44GGLOOBkeOBhOOBkw0KK+OBi+OBqOOBhizjgabjgovjgbLjgZMNCivjgYvjgajjgYYs44GY44KF44KT44GTDQor44GL44Go44GGLOOBv+OBoeOChA0KK+OBi+OBqOOBrizjgY3jgojjgZcNCivjgYvjgaTjgoDjgoks44Gy44Gn44GNDQor44GL44KP44Gw44GfLOOBhOOBoeOCjeOBhg0KK+OBi+OCj+OBlOOBiCzjgYLjgY3jgokNCivjgYvjgo/jgZDjgaEs44GT44GG44GYDQor44GL44KP44Gv44KJLOOBvuOBmeOBvw0KK+OBi+OBl+OCgOOCiSzjgobjgYbjgZMNCivjgYvjgo/jgYQs44Gq44GK44G/DQor44GL44KP44GELOOBsuOCjeOChuOBjQ0KK+OBi+OCj+OCguOBqCzjgb7jgarjgbYNCivjgYvjgo/jgoDjgoks44GV44Go44KLDQor44GL44KP44KA44KJLOOBl+OCheOBhuOBmA0KK+OBi+OCj+OBqizjgobjgY3jgbLjgagNCivjgYvjgo/jgaos44G+44GV44GL44GaDQor44GL44KP44Gq44G/LOOBsuOBp+OBsuOBkw0KK+OBi+OCj+OBrizjgZfjgpPjgZgNCivjgYvjgo/jgZss44GY44KF44KT44GE44Gh44KNDQor44Gv44KJ44GgLOOBl+OCheOBhuOBk+OBhg0KK+OBi+OCj+OBl+OBvizjga7jgbbjgZMNCivjgYvjgZbjgb8s44Gq44GK44GoDQor44GL44Ga44GV44KPLOOChOOBmeOBsuOCjQ0KK+OBjeOBsOOChOOBlyzjgobjgYbjgYTjgaENCivjgY3jgaAs44Gf44GR44GXDQor44GN44Gv44KJLOOCiOOBl+OBsuOBkw0KK+OBjeOBj+OBoSzjgbLjgo3jgZcNCivjgY3jgY/jgaEs44GE44Gh44KN44GGDQor44GV44GE44Go44GGLOOBkeOCk+OBmA0KK+OBjeOBj+OBhCzjgaTjgojjgZcNCivjgY3jgoLjgags44KI44GG44GTDQor44GN44KA44KJLOOBruOBtuOChuOBjQ0KK+OBjeOCgOOCiSzjgaTjgojjgZcNCivjgY3jgoDjgoks44Go44GX44Gk44GQDQor44GN44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBjeOCgOOCiSzjga/jgovjgb8NCivjgY3jga4s44GL44Ga44G+44GVDQor44GN44KK44GuLOOBi+OBmuOChA0KK+OBjeOBleOBrOOBjSzjgb7jgZPjgagNCivjgY3jgZcs44G+44GV44GNDQor44GN44GXLOOBquOBiuOBjQ0KK+OBjeOBl+OBoCzjgZXjgajjgZcNCivjgY3jgZfjgYvjgo8s44GX44KTDQor44Gy44KJ44GmLOOBl+OCk+OBmA0KK+OBjeOBl+OBquOBvyzjgoTjgZnjgb7jgZUNCivjgY3jgZ0s44KI44GX44GKDQor44GN44GfLOOBsuOBp+OBguOBjQ0KK+OBjeOBn+OBjOOCjyzjgarjgYrjgb8NCivjgY3jgZ/jgZjjgb4s44Gy44KN44KG44GNDQor44GN44Gf44GY44G+LOOBm+OBhOOBiw0KK+OBjeOBn+OCgOOCiSzjga7jgorjgZMNCivjgY3jgZ/jga4s44Go44GX44KG44GNDQor44GN44Gf44GW44GNLOOBn+OBoOOBlw0KK+OBjeOBn+OBluOCjyzjgZ/jgaTjgZcNCivjgY3jgojjga/jgoks44Gk44Go44KADQor44Gv44GX44KC44GoLOOBiuOBleOCgA0KK+OBruOBluOBjSzjgbXjgb/jgY3jgogNCivjgZPjgbDjgoTjgZcs44G144G/44GKDQor44GT44Gw44KE44GXLOOBvuOBleOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44Gf44GL44Gv44KLDQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgYLjgaTjgZcNCivjgZPjgbDjgoTjgZcs44GI44GE44GYDQor44GT44Gw44KE44GXLOOBleOBoeOBkw0KK+OBk+OBsOOChOOBlyzjgZfjgofjgYbjgZgNCivjgZPjgbDjgoTjgZcs44Go44KC44Gy44KNDQor44GT44GG44GhLOOChuOBjQ0KK+OBk+OBoOOBvizjgoTjgZnjgbLjgo0NCivjgZPjgYws44GC44GN44Gy44KNDQor44Go44GG44Gp44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OBk+OBr+OCiSzjgarjgYrjgZnjgb8NCivjgZPjgbIs44Gv44KL44G/DQor44GT44KT44GuLOOBsuOCjeOBteOBvw0KK+OBk+OBhOOBkSzjgajjgYrjgosNCivjgZPjgYTjgo8s44Go44KC44KG44GNDQor44GT44GE44Ga44G/LOOBl+OCheOBhuOBlA0KK+OBk+OBmOOBiyzjgb/jgYjjgZMNCivjgZPjgZjjgb4s44Gq44GM44GKDQor44GT44GY44G+LOOCiuOBoeOBkw0KK+OBk+OBmOOBvizjgYvjgZrjgbLjgZMNCivjgZPjgZjjgb4s44GV44Go44GXDQor44GT44G+44Gk44Gw44KJLOOCiuOCheOBhuOBnw0KK+OBk+OBv+OChCzjgY3jgojjgZcNCivjgZPjgoLjgaAs44GC44GN44KI44GXDQor44GT44KA44KNLOOBqOOBl+OChuOBjQ0KK+OBk+OCk+OBqSzjgarjgaTjgb8NCivjgZPjgpPjgaks44GR44KT44GYDQor44GT44KT44GpLOOBkeOCk+OBhOOBoQ0KK+OBk+OBleOBkSzjgZPjgYbjgYTjgaENCivjgZPjgZss44Gf44GL44GXDQor44GT44GZ44GOLOOBn+OBkeOBlw0KK+OBk+OBmuOBiyzjgoTjgZnjga7jgooNCivjgY/jgbws44Gv44KL44G/DQor44GP44G8LOOBn+OBkeOBsuOCjQ0KK+OBj+OBvCzjgarjgYrjgY0NCivjgY/jgbws44GX44GS44GKDQor44GP44G8LOOBsuOCjeOBlw0KK+OBj+OBqeOBhizjgb7jgooNCivjgY/jganjgYYs44Gb44GE44GE44GhDQor44GP44Gp44GGLOOBvuOBleOBjQ0KK+OBj+OBvuOBi+OCjyzjgZHjgpPjgZgNCivjgY/jgb7jgY/jgoks44GR44KT44GE44GhDQor44GP44G+44GX44KNLOOBm+OBhOOBhOOBoQ0KK+OBj+OBvuOBnyzjgZfjgo3jgYYNCivjgY/jgavjgoLjgags44GY44KF44KT44GYDQor44GP44KJ44KC44GhLOOBl+OCheOBhuOBhOOBoQ0KK+OBj+OCieOBl+OBvizjgbLjgo3jgZcNCivjgY/jgorjga/jgoks44GL44Ga44Gy44KNDQor44Gy44KJ44GELOOBk+OBhuOBmA0KK+OBj+OCiuOBr+OCiSzjgojjgZfjgobjgY0NCivjgY/jgorjga/jgoks44GL44Gk44KIDQor44GP44KK44Gv44KJLOOChuOBhuOBmA0KK+OBj+OCiuOBr+OCiSzjgabjgaTjgYoNCivjgY/jgorjga/jgZcs44G/44Gk44Gu44G2DQor44GP44KK44GZLOOCiOOBhuOBkw0KK+OBj+OCjeOBoCzjgYLjgaTjgZcNCivjgY/jgo3jgaAs44Gy44KN44KG44GNDQor44GP44KN44GNLOOBn+OBi+OBsuOCjQ0KK+OBj+OCjeOBjSzjgajjgoLjgZMNCivjgY/jgo3jgY0s44GI44GE44GYDQor44GP44KN44KBLOOBvuOBk+OBqA0KK+OBj+OCjeOBleOCjyzjgYjjgYTjgZjjgo3jgYYNCivjgY/jgovjgb/jgoQs44GT44GG44GNDQor44GP44GV44KE44Gq44GOLOOBvuOBleOBqOOBlw0KK+OBj+OBmeOBruOBmyzjgarjgYrjgYrjgb8NCivjgY/jgo/jga/jgoks44GX44KT44GYDQor44G+44Gh44GgLOOCiOOBhuOBkw0KK+OBvuOBoOOCieOCgSzjgajjgZfjgZ/jgYsNCivjgb7jgYjjgaAs44GV44Go44GXDQor44G+44GI44GgLOOBleOBqOOCiw0KK+OBvuOBiOOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgb7jgYjjgYzjgo8s44G144G/44Gy44GnDQor44G+44GI44Gv44KJLOOBjuOCk+OBmA0KK+OBvuOBiOOBjeOBnyzjgYvjgZrjgZMNCivjgb7jgY3jga4s44Gf44GL44Gy44KNDQor44GX44G244Gf44GrLOOBk+OBhuOBmA0KK+OBvuOBquOBuSzjgojjgZfjga7jgooNCivjgb7jgovjgoTjgb4s44GC44GN44KJDQor44G+44KL44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBvuOCi+OChOOBvizjgZHjgYTjgYTjgaENCivjgb7jgZXjgYrjgYss44Gf44GL44GXDQor44G+44GZ44G244GhLOOCiOOBl+OBruOCig0KK+OBvuOBmeOBoCzjgobjgYbjgZMNCivjgb7jgZnjgaAs44KI44GX44Gv44KLDQor44G+44GZ44GgLOOBn+OBi+OBqOOBlw0KK+OBvuOBmeOBoCzjgZ/jgY/jgoQNCivjgb7jgZnjgaAs44Gy44KN44GL44GaDQor44G+44GZ44GgLOOBsuOCjeOBjQ0KK+OBvuOBpOOBsCzjga7jgZ7jgb8NCivjga/jgoks44GR44KT44GYDQor44G+44Gk44GgLOOBkeOCk+OBmA0KK+OBvuOBpOOBoCzjgaDjgYTjgZnjgZENCivjgb7jgaTjgbXjgZgs44GC44GN44GKDQor44G+44Gk44G144GYLOOBi+OBmuOBquOCig0KK+OBn+OBoeOBj+OBhCzjgb/jgY0NCivjgb7jgaTjgYQs44GX44KT44GYDQor44G+44Gk44GL44KPLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOBvuOCiyzjgZfjgoXjgYbjgZXjgY8NCivjgb7jgaTjgoLjgags44GC44GN44GKDQor44G+44Gk44KC44GoLOOBi+OBmuOBruOCig0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgbLjgZMNCivjgb7jgaTjgoLjgags44Gu44KK44GTDQor44G+44Gk44KC44GoLOOBsuOCjeOBlw0KK+OBvuOBpOOCguOBqCzjgaTjgajjgoANCivjgZfjgYrjgbDjgoks44GX44KT44GE44GhDQor44G+44Gk44KA44KJLOOBl+OCheOCk+OBhOOBoQ0KK+OBvuOBpOOCgOOCiSzjgojjgZfjga7jgooNCivjgb7jgaTjgarjgYws44KG44GN44GTDQor44G+44Gk44Gq44GMLOOBvuOBleOBsuOCjQ0KK+OBvuOBpOOBquOBvyzjgojjgZfjgZMNCivjgb7jgaTjgYos44Go44GX44KEDQor44G+44Gk44GKLOOBqOOCguOBsuOCjQ0KK+OBvuOBpOOBiuOBiyzjgYjjgYTjgZMNCivjga/jgoTjgZfjgaAs44GL44Ga44Gy44KNDQor44G+44Gk44GK44GLLOOBm+OBhOOBhOOBoQ0KK+OBguOBnOOChOOBquOBjizjgZvjgYTjgZgNCivjgb7jgaTjgYrjgYss44GX44KT44GUDQor44G+44Gk44GK44GLLOOBsuOCjeOBguOBjQ0KK+OBvuOBpOOBmyzjgZ/jgYvjgobjgY0NCivjgb7jgaTjgZfjgb4s44GR44KT44GYDQor44G+44Gk44GX44GfLOOBk+OBhuOBmA0KK+OBvuOBpOOBn+OBqyzjgZfjgpPjgZgNCivjgb7jgaTjgo/jgYss44GV44Go44GXDQor44G+44Gk44KE44G+LOOBguOBjeOCiQ0KK+OBvuOBpOOBluOBjSzjgY3jgY/jgYoNCivjgb7jgaTjgarjgYws44G+44GT44GoDQor44G744KT44GqLOOBjeOCj+OCgA0KK+OCgeOBi+OBnyzjgZHjgpPjgZgNCivjgb/jgYvjgZjjgoos44GN44KH44GG44GTDQor44G/44GL44G/LOOBl+OCk+OBmeOBkQ0KK+OBv+OBi+OBvyzjgbLjgafjgYoNCivjgb/jgY0s44G+44GV44KG44GNDQor44G/44G/44GfLOOBv+OBoeOCjQ0KK+OBv+OBquOBj+OBoSzjgbXjgb/jga/jgosNCivjgb/jgarjgb8s44GV44Go44GXDQor44G/44Gq44G/LOOBqOOCguOChuOBjQ0KK+OBv+OBquOBvyzjgYLjgY3jgokNCivjgb/jgarjgags44GX44KH44GG44GYDQor44G/44GtLOOCiOOBl+OBn+OBiw0KK+OBv+OBrSzjgYLjgaTjgZcNCivjgb/jgZfjgb4s44GT44GG44GYDQor44G/44GX44G+LOOBiuOBleOCgA0KK+OBv+OBneOBrizjgbLjgo3jgbLjgZUNCivjgb/jgZ/jgoDjgoks44G+44GV44Go44GXDQor44G/44Gf44KT44GgLOOBkeOCk+OBhOOBoQ0KK+OBv+OBpOOBvCzjgojjgZfjgYvjgZoNCivjgb/jgaTjgbzjgZcs44Go44GX44Gy44KNDQor44Gv44GZ44KA44KJLOOBqOOBl+OBteOBvw0KK+OBv+OBpOOBr+OBlyzjgbLjgo3jgb/jgaQNCivjgZfjgarjgaAs44Gy44KN44KG44GNDQor44G/44Gk44G+LOOBi+OBmuOBsuOBqA0KK+OBv+OChOOBr+OCiSzjgZjjgaTjgoQNCivjgb/jgoTjga/jgoks44Gy44Gn44Gv44KLDQor44G/44KE44GELOOBv+OBiOOBkw0KK+OBv+OChOOBmOOBvizjgobjgYvjgZMNCivjgb/jgoTjgoLjgags44GL44Ga44Gq44KKDQor44G/44KE44KC44GoLOOBsuOBp+OBruOCig0KK+OBv+OChOOBl+OBnyzjgbLjgo3jgobjgY0NCivjgb/jgoTjgZ8s44Gy44KN44KG44GNDQor44G/44KE44GfLOOBi+OBiuOCiw0KK+OBv+OChOOBhuOBoSzjgZHjgpPjgZgNCivjgb/jgoTjgYbjgaEs44GK44GV44KADQor44G/44KE44GG44KJLOOBn+OBkeOBsuOBlQ0KK+OBv+OChOOBluOBjSzjgZ/jgZHjgZcNCivjga/jgZfjgZDjgaEs44GX44GS44GNDQor44G/44KE44GW44KPLOOBk+OBhuOBmA0KK+OBv+OChOOBluOCjyzjgYLjgY3jgYoNCivjgb/jgoTjgZos44KE44GZ44Gy44GoDQor44G/44Ge44GL44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBv+OBmuOBrizjgabjgaTjgbLjgZMNCivjgb/jgZrjga4s44Go44GX44KG44GNDQor44G/44Ga44Gf44GrLOOBruOBtuOChuOBjQ0KK+OCguOBoeOBoCzjgYLjgY3jgbLjgo0NCivjgoLjgaHjgZrjgY0s44GC44GN44GKDQor44KC44Gh44Ga44GNLOOBmOOCjeOBhg0KK+OBv+OCiOOBlyzjgZ/jgYvjgZcNCivjgoLjgoos44G+44GV44GNDQor44KC44KKLOOBvuOBleOBlw0KK+OCguOCiizjgaDjgYTjgYTjgaENCivjgoLjgoos44G+44GV44KG44GNDQor44KC44KKLOOBpuOBpOOChA0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoLjgoos44Gk44Gt44GC44GNDQor44KC44KKLOOBhOOBmuOBvw0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoLjgorjgZDjgaEs44Gy44KN44GNDQor44KC44KK44GL44KPLOOBk+OBhuOBmA0KK+OCguOCiuOBquOBjCzjgb7jgZXjgZcNCivjgoLjgorjgZXjgY0s44GC44GR44G/DQor44KC44KK44GfLOOCiOOBhuOBhOOBoQ0KK+OCguOCiuOBnyzjgYjjgYTjgZgNCivjgoLjgorjgoQs44KA44Gk44GKDQor44KC44KK44KE44G+LOOBsuOBp+OBig0KK+OCguOBpuOBjizjgb/jgaTjgbLjgo0NCivjgoLjgajjgY0s44GP44Gr44Gy44KNDQor44Gv44GO44KP44KJLOOBruOBtuOCiOOBlw0KK+OCgOOBi+OBhOOBoCzjgZfjgZMNCivjgoDjga3jgbLjgo0s44Gy44Gn44KG44GNDQor44KA44Gt44GL44GfLOOBi+OBmuOCiOOBlw0KK+OCgOOCieOBi+OBvyzjgaTjgojjgZcNCivjgoDjgonjgYvjgb8s44KE44GZ44Gy44KNDQor44KA44KJ44GL44G/LOOChOOBmeOBig0KK+OCgOOCieOBk+OBlyzjgbLjgo3jgZMNCivjgoDjgonjgb7jgaQs44G+44GV44GoDQor44KA44KJ44Gs44GNLOOBkeOBhOOBmA0KK+OCgOOCieOBnyzjgobjgY3jgoLjgagNCivjgoDjgonjgZ8s44G+44GV44GNDQor44KA44KJ44GfLOOBm+OBhOOBmA0KK+OCgOOCieOChOOBvizjgojjgZfjga/jgosNCivjgoTjgb7jgZfjgZ8s44GC44GN44Gy44KNDQor44KA44KN44GfLOOBsuOCjeOBi+OBmg0KK+OBv+OCh+OBhuOBmOOCkyzjgb/jgaHjgYoNCivjgarjgYzjgYQs44Gu44KK44GTDQor44Gq44GM44Gs44G+LOOChuOBjeOBig0KK+OBquOBjOOBiizjgYjjgooNCivjgarjgYzjgYrjgYss44G/44G7DQor44Gq44GM44GV44KPLOOBi+OBiuOCiw0KK+OBquOBjOOBl+OBvizjgZ/jgYvjgZcNCivjgarjgYzjgZfjgb4s44KI44GX44GL44GaDQor44Gq44GM44GfLOOCiOOBl+OChOOBmQ0KK+OBquOBjOOBnyzjgaHjgYjjgZMNCivjga/jgZvjgYzjgo8s44Gy44KN44GC44GNDQor44GE44GM44KJ44GXLOOBi+OBmuOBsuOCjQ0KK+OBquOBjOOChOOBvizjgZHjgpPjgZgNCivjgarjgYzjgojjgZcs44G+44GV44GL44GkDQor44Gq44GE44Go44GGLOOBvuOBleOBjQ0KK+OBquOBi+OBsOOChOOBlyzjgb7jgZXjga7jgooNCivjgarjgYvjgYzjgo8s44GX44KT44GE44GhDQor44Gq44GL44GU44KBLOOBleOBqOOBlw0KK+OBquOBi+OBl+OBvizjgajjgZfjgYLjgY0NCivjgarjgYvjgZjjgb4s44KE44GZ44G+44GVDQor44Gq44GL44GY44G+LOOChuOBhuOBkw0KK+OBquOBi+OBmOOBvizjgabjgovjgb8NCivjgarjgYvjgZjjgb4s44GP44KJ44GoDQor44Gq44GL44GY44G+LOOChuOBhuOBmA0KK+OBquOBi+OBj+OBjSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgYvjgb7jgoss44KK44GLDQor44Gq44GL44G/44GhLOOBv+OBiw0KK+OBquOBi+OCguOBqCzjgobjgY3jgbLjgo0NCivjgarjgYvjgoLjgags44Gy44KN44GL44GaDQor44Gq44GL44KC44GoLOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgbXjgb8NCivjgarjgYvjgoDjgoks44G+44GV44Gq44KKDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OCgOOCiSzjgZvjgYTjgZgNCivjgarjgYvjgoDjgoks44GL44Ga44Gu44KKDQor44Gq44GL44KA44KJLOOChuOBhuOBmA0KK+OBquOBi+OCgOOCiSzjgabjgovjgobjgY0NCivjga/jgY7jgo/jgoks44GV44Go44GTDQor44Gq44GL44KA44KJLOOBvuOBjeOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgafjgobjgY0NCivjgarjgYvjgoDjgoks44Gm44Gk44KEDQor44Gq44GL44KA44KJLOOBkeOCk+OBnw0KK+OBquOBi+OBrizjgoTjgZnjgZcNCivjgarjgYvjgYos44KG44GG44GTDQor44Gq44GL44GKLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBiuOBiyzjgajjgoLjgobjgY0NCivjgarjgYvjgZfjgb4s44GV44Go44GXDQor44Gr44GX44GY44G+LOOBn+OBi+OBlw0KK+OBquOBi+OChCzjgo/jgZ/jgosNCivjgarjgYvjgoTjgb4s44Gy44KN44GXDQor44Gq44GL44GW44GoLOOBi+OBpOOBguOBjQ0KK+OBquOBvuOBn+OCgSzjgb7jgoLjgosNCivjgarjgoHjgoks44KC44KK44Gy44GoDQor44Gq44Gq44G/LOOBn+OBoOOBqOOBlw0KK+OBquOCk+OBsCzjgZ/jgYvjgYoNCivjgarjgpMs44GR44GE44GZ44GRDQor44Gq44KT44G9LOOBguOBjeOCiQ0KK+OBquOCieOBtizjgbLjgafjgY0NCivjgarjgorjga/jgoks44Gy44KN44G/DQor44Gq44KK44Go44G/LOOBquOBiuOBjQ0KK+OBquOCi+OBl+OBvizjgb7jgZPjgagNCivjgarjgZnjgYvjgo8s44GY44KF44KT44KEDQor44Gq44Go44KKLOOBkeOCk+OChA0KK+OBreOBjuOBlyzjgYjjgb/jgZMNCivjga3jgoLjgags44GE44Ga44G/DQor44Gr44GI44GgLOOBqOOBiuOCiw0KK+OBq+OBhOOBmOOBvizjgb7jgZPjgagNCivjgavjgYTjgY/jgoks44G+44GV44KLDQor44Gr44GE44Gk44G+LOOBkeOCk+OBmA0KK+OBq+OBhOOBluOCjyzjgojjgZfjga7jgooNCivjgavjgZfjgaAs44Gy44KN44Gy44GoDQor44Gr44GX44GgLOOBn+OBkeOBlw0KK+OBq+OBl+OBoCzjgYjjgYTjgZgNCivjgavjgZfjgaAs44Gy44Gn44GoDQor44Gy44Gg44GLLOOChuOBjeOBvuOBlQ0KK+OBq+OBl+OBoCzjgoTjgZnjgYoNCivjgavjgZfjgYvjgaks44GC44Gk44GXDQor44Gr44GX44GL44KPLOOBiOOBhOOBmOOChQ0KK+OBq+OBl+OBi+OCjyzjgajjgoLjgYLjgY0NCivjgavjgZfjgYvjgo8s44G+44GV44Gu44G2DQor44Gr44GX44KC44GoLOOBsuOBp+OChA0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjga7jgooNCivjgavjgZfjgaos44GN44KI44GXDQor44Gr44GX44GuLOOBsuOCjeOBi+OBmg0KK+OBq+OBl+OBnyzjgb/jgY0NCivjgbXjgYvjgb8s44GL44Ga44KIDQor44Gr44GX44KP44GNLOOBn+OBkeOBsuOBkw0KK+OBq+OBl+OChOOBvizjgYvjgaTjgZcNCivjgavjgZfjgoTjgb4s44Gy44Go44GXDQor44Gr44GX44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OBq+OBo+OBnyzjgbLjgo3jgojjgZcNCivjgavjgo/jgZ8s44G744Ga44G/DQor44Gr44KP44KE44G+LOOBoeOBmg0KK+OBruOBguOBvyzjgY/jgavjgZMNCivjga7jgbzjgorjgZ/jgaYs44G+44Gq44G2DQor44Gu44GgLOOBn+OBi+OChuOBjQ0KK+OBruOBjOOCjyzjgbLjgo3jgoQNCivjga7jgZDjgaEs44Go44KC44GC44GNDQor44Gu44GQ44GhLOOBn+OBi+OBlw0KK+OBruOBmOOCiizjgbLjgo3jgobjgY0NCivjga7jgoLjgags44KG44GG44GTDQor44Gu44KA44KJLOOBv+OBjeOBkw0KK+OBr+OChOOBleOBiyzjgYvjgZrjgbLjgo0NCivjga7jgoDjgoks44G+44GV44Gy44KNDQor44Gu44GoLOOBneOBruOBvw0KK+OBruOBluOBjSzjgajjgZfjgoQNCivjgZPjgZXjgYss44KE44GZ44GXDQor44GK44Gw44GqLOOBguOChOOBkw0KK+OBiuOBoSzjgb7jgZXjgabjgosNCivjgYrjgaAs44Gv44KL44Gu44G2DQor44GK44GM44GV44KP44KJLOOBi+OBmuOBpuOCiw0KK+OBiuOBjOOBnyzjgbLjgo3jgoTjgZkNCivjgY/jgY0s44KG44Gf44GLDQor44GK44GL44GgLOOBsuOCjeOBguOBjQ0KK+OBiuOBjOOCjyzjgbLjgo3jgobjgY0NCivjgYrjgYzjgo8s44G+44GV44KG44GNDQor44GK44GM44KPLOOChOOBmeOBruOCig0KK+OBiuOBjuOBr+OCiSzjgYvjgZrjgajjgZcNCivjgYrjgY7jga4s44GT44GG44GE44GhDQor44GK44G2LOOBv+OBiw0KK+OBiuOBiuOBr+OCiSzjgZ/jgaDjgbLjgZMNCivjga/jgb7jgoLjgags44KE44GZ44GTDQor44GK44GK44Gv44KJLOOChuOBhuOBmA0KK+OBiuOBr+OBlyzjgZXjgajjgZcNCivjgYrjgYrjgYvjgo8s44G+44GV44GoDQor44GK44GK44GP44G8LOOBvuOBleOBguOBjQ0KK+OBiuOBiuOBv+OChCzjgZvjgYTjgZgNCivjgYrjgYrjgoLjgoos44Gm44Gk44KEDQor44GK44KA44KJLOOCiuOCh+OBhuOBhOOBoQ0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgZ/jgYsNCivjgYrjgYrjga4s44Gy44KN44KE44GZDQor44GK44GK44Gs44GNLOOBi+OBmuOBig0KK+OBiuOBiuOBleOBjSzjgZXjgajjgZcNCivjgYrjgYrjgZXjgY0s44KG44GG44GTDQor44GK44GK44GV44KPLOOBl+OCjeOBhg0KK+OBiuOBl+OBvizjgZ/jgZHjgZcNCivjgYrjgZfjgb4s44Gf44GL44GKDQor44GK44GX44G+LOOBpOOBqOOCgA0KK+OBiuOBiuOBnyzjgoTjgZnjgYoNCivjgYrjgYrjgZ8s44Gu44G244Gy44KNDQor44GK44GK44GfLOOBv+OBiw0KK+OBiuOBiuOBnyzjgbLjgo3jgZcNCivjgYLjgpPjganjgYYs44GR44KT44GE44GhDQor44GK44Gf44GLLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOBn+OBjSzjgbXjgajjgZcNCivjgYrjgYrjgZ/jgass44GL44Ga44Gy44GTDQor44GK44GK44Gf44GrLOOBruOCiuOBsuOBlQ0KK+OBiuOBiuOBn+OBqyzjgb7jgZXjgYvjgZoNCivjga/jgoTjgZcs44KG44GN44GTDQor44GK44GK44Gk44G8LOOBn+OBkeOBsuOBlQ0KK+OBiuOBiuOBpOOBiyzjgojjgZfjga7jgooNCivjgYrjgYrjgaTjgYss44GI44GE44GNDQor44GK44GK44Gk44GLLOOBguOBpOOBlw0KK+OBr+OChOOBlyzjgYjjgb/jgZMNCivjgYrjgYrjgaTjgoss44G/44Gh44GIDQor44GK44G144GhLOOBqOOBl+OBkw0KK+OBiuOBiuOCjyzjgZ/jgZHjgZcNCivjgYrjgYrjgoQs44KA44Gt44GKDQor44GK44GY44GKLOOBteOBv+OBruOBtg0KK+OBiuOBiyzjgb7jgZXjgajjgZcNCivjgYrjgYvjgbks44GC44KG44KADQor44GK44GL44GgLOOBvuOBleOBjQ0KK+OBiuOBi+OBoCzjgZ/jgYvjgoQNCivjgYrjgYvjgaAs44Go44GK44KLDQor44GK44GL44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OCguOBqCzjgZ/jgYvjgobjgY0NCivjgYrjgYvjgoLjgags44KG44GGDQor44GK44GL44KC44GoLOOBqOOCguOChuOBjQ0KK+OBiuOBi+OCgOOCiSzjgbLjgo3jgY/jgasNCivjgYrjgYvjgoDjgoks44GR44GE44GE44GhDQor44GK44GL44GW44GNLOOBsuOCjeOBqOOBlw0KK+OBiuOBi+OBluOBjSzjgZPjgYbjgZ/jgo3jgYYNCivjgYrjgY3jga4s44GL44GK44KLDQor44GK44GP44GgLOOBr+OBmOOCgQ0KK+OBiuOBj+OBoCzjgb7jgZXjga7jgooNCivjgYrjgY/jgYzjgo8s44GY44KF44KT44GE44GhDQor44Gv44GO44Gv44KJLOOBkeOCk+OBmA0KK+OBiuOBj+OBhuOBoSzjgoDjga3jgZcNCivjgYrjgYrjgb8s44GC44KE44GTDQor44GK44KA44KJLOOBsuOBqOOBlw0KK+OBiuOCk+OBoCzjgYvjgZrjgbLjgo0NCivjgYrjgYrjga4s44KG44Gf44GLDQor44GK44GK44GuLOOBsuOCh+OBhuOBnuOBhg0KK+OBiuOBiuOBrizjgb/jga7jgosNCivjgYrjgYrjga4s44GX44KF44KT44GZ44GRDQor44GK44Gu44Gn44KJLOOBvuOBleOBsuOBkw0KK+OBiuOBruOBp+OCiSzjgojjgZfjga7jgooNCivjgYrjga7jgafjgoks44Go44GX44GKDQor44GK44Gu44KA44KJLOOBv+OBruOCiw0KK+OBiuOBruOBluOCjyzjgZfjgpPjgoQNCivjgYrjgYrjgazjgY0s44Gm44Gk44KN44GGDQor44GK44GuLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOChOOBvizjgbLjgajjgZcNCivjgYrjgorjgaks44Gy44Gn44GC44GNDQor44GK44KK44GX44GN44GgLOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBleOBiyzjgZ/jgaDjgYoNCivjgYrjgoTjgb4s44Gf44GE44GhDQor44GK44GW44GNLOOBn+OBpOOChA0KK+OBiuOBluOBjSzjgojjgZfjgb7jgZUNCivjgYrjgZbjgo8s44KG44GG44GZ44GRDQor44GT44GW44KPLOOBsuOCjeOBlw0KK+OBiuOBluOCjyzjgb7jgZXjga/jgosNCivjgYrjgZbjgo8s44Gf44GR44GXDQor44Gv44Gf44Gq44GLLOOBv+OBpOOBsuOCjQ0KK+OBleOBiOOBjSzjgorjgofjgYbjgZMNCivjgZXjgYTjgaAs44KC44KC44GTDQor44GV44GE44GQ44GVLOOBsuOCjeOBlw0KK+OBr+OCk+OBoCzjgZ/jgZHjgZcNCivjgZXjgYTjgajjgYYs44KE44GZ44Go44KCDQor44GV44GE44Go44GGLOOBvuOBleOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgZfjgZLjgbLjgagNCivjgZXjgYvjgaEs44G+44GV44GKDQor44GV44GL44GQ44GhLOOBk+OBhuOBmA0KK+OBleOBi+OBhCzjgb/jga7jgosNCivjgZXjgYvjgYQs44GT44GG44Ge44GGDQor44Gy44KJ44GuLOOBguOBjeOBsuOCjQ0KK+OBleOBi+OBhCzjgYLjgY3jgokNCivjgZXjgYvjgYQs44Gy44KN44G/DQor44GV44GL44GELOOBv+OBjeOBig0KK+OBleOBi+OBhCzjgarjgYrjgY0NCivjgZXjgYvjgoLjgags44Gf44GL44GXDQor44GV44GL44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBsuOCjeOBmyzjgojjgZfjgYLjgY0NCivjgZXjgYvjgoLjgags44KI44GG44GN44GhDQor44GV44GL44GfLOOBqOOCguOBmA0KK+OBjeOBl+OBoCzjgbLjgo3jgYLjgY0NCivjgZXjgZMs44GC44GL44GXDQor44GV44GP44G+LOOBvuOBleOCiw0KK+OBleOBj+OCieOBsCzjgYjjgb8NCivjgZXjgY/jgonjgYQs44Gv44KL44G/DQor44GV44GP44KJ44KE44G+LOOBsuOCjeOBlw0KK+OBleOCgeOBl+OBvizjgYvjgZrjgojjgZcNCivjgZXjgpPjgbks44G+44GT44GoDQor44GV44KL44KP44Gf44KKLOOBvuOBleOBjQ0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgagNCivjgZXjgZXjgYgs44Gq44GK44GNDQor44GV44GV44Gv44KJLOOCiuOCh+OBhuOBmA0KK+OBleOBleOBjSzjgZ/jgYvjgb7jgZUNCivjgZXjgZXjgY0s44Gf44GL44GXDQor44GV44GV44GNLOOChuOBn+OBiw0KK+OBleOBleOBjSzjgobjgY3jgZMNCivjga/jgbPjgo0s44KG44Gf44GLDQor44GV44GV44GKLOOBi+OBmuOBl+OBkg0KK+OBleOBleOBiuOBiyzjgajjgoLjgZMNCivjgZXjgZXjgZ/jgass44KI44GX44G/DQor44GV44GfLOOBqOOCguOBvw0KK+OBleOBn+OBkSzjgajjgZfjgY0NCivjgZXjgajjgYYs44GY44KF44KTDQor44G744GX44GuLOOBkeOBhOOBmA0KK+OBleOBqOOBhizjgb7jgZXjga/jgosNCivjga/jgaPjgajjgoos44GX44KT44KEDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OBleOBqOOBhizjgZfjgZLjgY0NCivjgZXjgajjgYYs44KG44GN44Gf44GLDQor44GV44Go44GGLOOCiuOCh+OBhuOBhOOBoQ0KK+OBleOBqOOBhizjgZ/jgaTjgY0NCivjgZXjgajjgYYs44GR44GE44GYDQor44GV44Go44GGLOOBvuOCiuOBig0KK+OBleOBqOOBhizjgajjgZfjgYLjgY0NCivjgZXjgajjgYYs44GR44GE44GE44GhDQor44Gy44KJ44GuLOOBsuOCjeOBguOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgajjgYYs44KE44GZ44Gu44KKDQor44GV44KP44GgLOOBkeOBhOOBhOOBoQ0KK+OBleOCj+OBoCzjgZPjgYbjgbjjgYQNCivjgZXjgo/jgbXjgZgs44Gf44GL44Gy44KNDQor44GV44KP44GNLOOBk+OBhuOBuOOBhA0KK+OBleOCj+OCgOOCiSzjgbLjgo3jgZcNCivjgZvjgYzjgo8s44GX44KT44Gf44KN44GGDQor44Gb44GM44KPLOOBi+OBmuOBjQ0KK+OBm+OBjSzjgorjgaTjgZMNCivjgZvjgY0s44Gf44GE44GhDQor44Gb44GN44GQ44GhLOOBsuOBleOBlw0KK+OBm+OBjeOBrSzjgYvjgZrjgYLjgY0NCivjgZvjgY3jga0s44GL44Gk44G/DQor44Gy44KJ44GuLOOBiOOBhOOBhOOBoQ0KK+OBm+OCk+OBlOOBjyzjgoTjgZnjgZcNCivjgZvjgYos44Gy44KN44GXDQor44Gb44KJLOOBn+OBoOOBlw0KK+OBm+OCiSzjgbLjgo3jgYvjgaQNCivjgZfjgbDjga/jgoks44GL44Ga44GuDQor44GX44Gw44GfLOOBi+OBmuOBsuOBkw0KK+OBl+OBsOOBnyzjgajjgoLjgbLjgo0NCivjga/jgZvjgYzjgo8s44Go44KC44G/44GkDQor44GX44Gw44GfLOOChuOBn+OBiw0KK+OBl+OBsOOBnyzjgb7jgZXjgZ/jgZENCivjgZfjgbDjgZ8s44G+44GV44KG44GNDQor44GX44Gw44GW44GNLOOBvuOBleOBkw0KK+OBl+OBtuOBn+OBqyzjgajjgoLjga/jgosNCivjgZfjgbbjgoQs44Go44KC44GL44GkDQor44GX44Gh44Gy44KH44GGLOOBjeOBv+OBguOBjQ0KK+OBl+OBjSzjgb7jgZXjgosNCivjgZfjgY3jgZfjgb4s44Gf44GR44GXDQor44GX44G+LOOBguOBjeOBkw0KK+OBl+OBvizjgZPjgZnjgZENCivjgZfjgb7jgaAs44GL44Gk44Gy44KNDQor44GX44G+44Gs44GNLOOBn+OBi+OBlw0KK+OBl+OBvuOBiuOBiyzjgoTjgZnjgZ/jgYsNCivjgZfjgb7jgZfjgZ8s44Gq44GK44Gy44KNDQor44GX44G+44GaLOOBkeOBhOOBhOOBoQ0KK+OBl+OBv+OBmizjgbLjgafjgY0NCivjgZfjgb/jgZos44GR44GE44GZ44GRDQor44Gv44Gb44GM44KPLOOBoeOBiOOBkw0KK+OBl+OBv+OBmizjgb7jgZXjgYoNCivjgZfjgb/jgZos44KG44KK44GTDQor44GX44G/44GaLOOBi+OBmuOBsuOBlQ0KK+OBl+OCguOBjOOBhCzjgajjgZfjgZMNCivjgZfjgoLjgYvjgo/jgbks44GC44GN44Gy44KNDQor44GX44KC44GK44GLLOOBguOBjeOBsuOCjQ0KK+OBl+OCguOBleOBiyzjgbLjgafjgobjgY0NCivjgZfjgoLjgoTjgb4s44Gm44Gk44KEDQor44GX44KT44G844KKLOOBsuOCjeOBiA0KK+OBl+OBruOBr+OCiSzjgarjgYrjgZ/jgYsNCivjgZfjga7jga/jgoks44Gy44GV44Go44GXDQor44GX44Gu44GW44GNLOOBsuOCjeOBlw0KK+OBl+OBruOBluOBjSzjgojjgZfjgZMNCivjgZfjga7jgZrjgYss44GR44KT44GE44GhDQor44GX44KT44KELOOBsuOBp+OBkw0KK+OBl+OBiuOBnyzjgZjjgoXjgpPjgY3jgaENCivjgZfjgYrjgZ/jgass44GR44KT44GYDQor44GX44GK44KELOOBqOOBiuOCiw0KK+OBl+OCieOBr+OBvizjgb/jgaHjgbLjgZUNCivjgZfjgonjgYQs44G/44GLDQor44GX44KJ44GE44GXLOOBv+OBlQ0KK+OBl+OCieOBhOOBlyzjgoTjgZnjgbLjgagNCivjgZfjgonjgYTjgZcs44Gk44Go44KADQor44GX44KJ44GNLOOBkeOBhOOBmeOBkQ0KK+OBl+OCieOBleOBjSzjgYvjgZrjgobjgY0NCivjgZfjgofjgYbjgarjgZQs44Gf44GL44GX44GSDQor44GK44GK44KE44G+LOOBv+OBiw0KK+OBl+OCheOBqOOBhizjgbLjgo3jgY0NCivjgZfjgoLjgYTjgZos44KI44KK44GoDQor44Gd44GI44GgLOOBn+OBj+OBvw0KK+OBu+OCiuOBrizjgbLjgo3jgYvjgaQNCivjgZ3jgajjgZjjgb4s44G144Go44GXDQor44GZ44GgLOOCgeOBhOOBmOOCjeOBhg0KK+OBmeOBoCzjgZPjgYbjgZMNCivjgZnjganjgYYs44Gy44Gn44Gy44GoDQor44GZ44GMLOOBr+OBmOOCgQ0KK+OBmeOBjOOBrOOBvizjgbLjgo3jgYvjgZoNCivjgZnjgYzjgo/jgoks44GR44GEDQor44GZ44GO44Gw44KE44GXLOOBvuOBleOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgb/jgYsNCivjgZnjgY7jgoLjgags44Gu44G244GTDQor44GZ44GO44KA44KJLOOBruOCiuOBsuOBkw0KK+OBmeOBjuOBrizjgZXjgajjgosNCivjgZnjgY7jgZXjgY0s44GX44KT44GE44GhDQor44GZ44GO44GV44KPLOOBn+OBi+OBig0KK+OBmeOBjuOBnyzjgZ/jgYvjgobjgY0NCivjga/jgoTjgZcs44Gf44G/DQor44GZ44GO44GG44KJLOOBqOOBiuOCiw0KK+OBmeOBjuOChOOBvizjgajjgZfjgoQNCivjgZnjgY7jgoTjgb4s44GX44KT44GYDQor44GZ44GULOOChOOBmeOBig0KK+OBmeOBhOOBnyzjgojjgZfjgbLjgZUNCivjgZnjgb/jgaAs44GC44Gk44GXDQor44GZ44G/44GL44KPLOOBleOBqOOBlw0KK+OBmeOBquOBjCzjgajjgYrjgosNCivjgZnjga7jga/jgoks44G+44GV44G/DQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgajjgoLjgobjgY0NCivjgZnjgZrjgY0s44KI44GX44KG44GNDQor44GZ44Ga44GNLOOBvuOBleOBteOBvw0KK+OBmeOBmuOBjSzjgZfjgofjgYbjgZQNCivjgZnjgZrjgY0s44Gf44GR44Gy44KNDQor44GZ44Ga44GNLOOCiOOBl+OBruOCig0KK+OBmeOBmuOBjSzjgYvjgZrjgbUNCivjgZnjgZrjgY0s44GC44GN44GTDQor44GZ44Ga44GNLOOBi+OBpOOBsuOBkw0KK+OBmeOBmuOBjSzjgZfjgZLjgosNCivjgoTjgb7jgYvjgo8s44Gf44Gk44GKDQor44GZ44Ga44GNLOOBguOBleOBkw0KK+OBmeOBmuOBjSzjgYLjgY3jgbLjgZMNCivjga/jgYws44Gy44KN44GL44GaDQor44GZ44Ga44GNLOOBhOOBleOBqA0KK+OBmeOBmuOBjSzjgYvjgYrjgooNCivjgZnjgZrjga4s44GL44Gk44G144G/DQor44GX44KF44Go44GGLOOBj+OBq+OBsuOBpw0KK+OBn+OBsOOCiSzjgb7jgZMNCivjgZ/jgaAs44G+44GV44KLDQor44Gv44KK44GM44GELOOBn+OBi+OBruOBtg0KK+OBn+OBoCzjgb7jgZXjgobjgY0NCivjgZ/jgYzjgZfjgoks44G/44Gq44GTDQor44Gf44GQ44GhLOOBv+OChuOBjQ0KK+OBn+OBkOOBoSzjga7jgbbjgYLjgY0NCivjgZ/jgZjjgb4s44GX44KT44GYDQor44Gf44GY44G+LOOBl+OCk+OBmA0KK+OBu+OBo+OBnyzjgZfjgoXjgpPjgYTjgaENCivjgZ/jgYvjgaAs44Go44KC44Gu44KKDQor44Gf44GL44GOLOOBqOOBl+OBi+OBmg0KK+OBn+OBi+OBjizjgojjgYbjgYTjgaENCivjgZ/jgYvjgY4s44KG44GG44GTDQor44Gf44GL44Gv44GXLOOBiOOBhOOBkw0KK+OBr+OBl+OBkOOBoSzjgbLjgo3jgYLjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBquOBiuOBvw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgb/jgaENCivjgZ/jgYvjga/jgZcs44GL44Gk44Go44GXDQor44Gf44GL44Gv44GXLOOBi+OBmuOBkw0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgZ/jgYvjga/jgZcs44Go44KC44Gy44KNDQor44Gv44Gb44GM44KPLOOBpuOCi+OBig0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44Gy44Gn44Gu44KKDQor44Gf44GL44Gv44GXLOOBi+OBpOOBvw0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44KI44GX44G/44GkDQor44Gf44GL44Gv44GXLOOBi+OBmuOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgYTjgaHjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44GC44Gk44Gu44KKDQor44Gf44GL44Gv44GXLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgbXjgZXjgbLjgZMNCivjgYrjgYrjgb8s44GR44KT44GYDQor44Gf44GL44Gy44KJLOOBv+OBruOCiw0KK+OBn+OBi+OBhCzjgojjgZfjgajjgoINCivjgZ/jgYvjgb/jgoQs44GT44GG44GYDQor44Gf44GL44Gq44GXLOOCiuOBuw0KK+OBn+OBi+OBrizjgb/jgY3jgZMNCivjgZ/jgYvjga4s44KI44GX44Gy44KNDQor44Gf44GL44GuLOOBn+OBvuOCiA0KK+OBn+OBi+OBrizjgojjgZfjgbLjgagNCivjgZ/jgYvjga4s44GC44GN44Gy44KNDQor44Gv44KE44GL44KPLOOCguOBqOOBsuOCjQ0KK+OBn+OBi+OBl+OBvizjgZ/jgaDjgZcNCivjgZ/jgYvjgZks44GL44Gk44Gu44KKDQor44Gf44GL44Go44GG44KKLOOBsuOBp+OBsuOBkw0KK+OBn+OBi+OBqOOCiizjgbXjgZXjgb8NCivjgZ/jgYvjgoQs44Gu44KK44GC44GNDQor44Gf44GRLOOBguOBjeOBsuOCjQ0KK+OBn+OBkeOBoCzjgZvjgYTjgZgNCivjgZ/jgZHjgaAs44GE44Ga44G/DQor44G744KKLOOBk+OBhuOBnuOBhg0KK+OBn+OBkeOBoCzjgZfjgpPjgYTjgaENCivjgZ/jgZHjga/jgoks44Gy44GL44KLDQor44Gf44GR44GELOOBl+OCk+OBhOOBoQ0KK+OBn+OBkeOCguOBqCzjgYLjgY0NCivjgZ/jgZHjgoLjgags44GC44GN44GZ44GRDQor44Gf44GR44Gq44GLLOOBkeOCk+OBhOOBoQ0KK+OBr+OChOOBlyzjgb7jgZXjgbLjgZMNCivjgZ/jgYvjgY4s44G+44GV44GNDQor44Gf44GR44Go44G/LOOBvuOBleOBruOCig0KK+OBn+OBkeOBhuOBoSzjgb/jgbsNCivjgZ/jgZHjgYbjgaEs44G/44Gk44GKDQor44Gf44GR44GG44GhLOOBruOBtuOCiOOBlw0KK+OBn+OBkeOChOOBmSzjgozjgYTjgZgNCivjgZ/jgZHjgZbjgo8s44KK44KH44GG44GYDQor44Gf44GN44GwLOOBleOBqOOBlw0KK+OBn+OBj+OBvCzjgZ/jgYvjga7jgooNCivjga/jgavjgoXjgYYs44Gk44KI44GXDQor44Gf44G+44KI44KKLOOChuOBhuOBkw0KK+OBn+OCguOBpCzjgobjgYbjgZ8NCivjgZ/jgoDjgoks44Gy44KN44KG44GNDQor44Gf44KA44KJLOOBguOBkeOBvw0KK+OBn+OCgOOCiSzjgYLjgY3jgokNCivjgZ/jgarjgbks44KE44GZ44Gu44KKDQor44Gf44Gq44G5LOOBsuOBp+OBsuOBkw0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44KI44GX44KG44GNDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYLjgaTjgZcNCivjgZ/jgZHjgaAs44KI44GX44GTDQor44Gf44Gq44GLLOOBn+OBoOOBlw0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgosNCivjgZ/jgarjgYss44Gy44Gn44KG44GNDQor44Gf44Gq44GLLOOBn+OBi+OCiOOBlw0KK+OBn+OBquOBiyzjgb7jgarjgbYNCivjgZ/jgarjgYss44GL44Gk44GNDQor44Gf44Gq44GLLOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjgobjgYbjgZMNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44Gf44Gq44GLLOOCiOOBl+OBig0KK+OBn+OBquOBiyzjgajjgYrjgosNCivjgZ/jgass44Gy44KN44GTDQor44G/44Gf44GrLOOBuOOBhOOBlA0KK+OBn+OBq+OBkOOBoSzjgbLjgafjgYLjgY0NCivjga/jgaPjgajjgoos44Gy44KN44GTDQor44Gf44Gr44GQ44GhLOOBkeOCk+OBhOOBoQ0KK+OBn+OBq+OBkOOBoSzjgobjgYbjgZMNCivjgZ/jgavjgZDjgaEs44GL44Gk44Gy44GTDQor44Gf44Gr44GL44KPLOOBkeOCk+OBlw0KK+OBn+OBleOBiyzjgb7jgZPjgagNCivjgZ/jgZfjgb4s44GR44GE44GZ44GRDQor44Gf44Gm44GL44KPLOOBvuOBleOCiw0KK+OBn+OBpuOBrizjgZPjgYbjgZgNCivjgabjgonjgZjjgb4s44Gv44GY44KBDQor44Gm44KJ44G+44GILOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBpuOCieOBleOCjyzjgb7jgZPjgagNCivjgabjgonjgoTjgb4s44G/44KI44GTDQor44Gm44GX44G+LOOBiOOBpOOBvuOBlQ0KK+OBqOOBoCzjgoLjgajjgobjgY0NCivjgajjgajjgb8s44Gf44GR44Gy44GTDQor44Go44GK44KE44G+LOOChuOBjeOBsuOBkw0KK+OBqOOBjeOCjyzjgaHjgYjjgZMNCivjgbXjgY/jgoTjgb4s44GR44KT44GYDQor44Go44GP44GW44KPLOOBvuOBleOCiw0KK+OBqOOBv+OBquOBjCzjgZPjgYbjgZgNCivjgajjgb/jgZ8s44Gy44Gn44GXDQor44Go44G/44KE44G+LOOBi+OBmuOBruOCig0KK+OBleOCj+OCgOOCiSzjgZ/jgaTjgb8NCivjgajjgorjgZTjgYgs44GV44Gg44KG44GNDQor44Go44KK44Gf44GrLOOBsuOBp+OBruOCig0KK+OBqOOBleOBiyzjgZfjgoXjgYbjgZgNCivjgaTjgbzjgYQs44G+44GV44Gy44GTDQor44Gy44KJ44Gw44KE44GXLOOBqOOCguOBquOCig0KK+OBpOOBoeOBoCzjgbLjgo3jgobjgY0NCivjgaTjgaHjgZ/jgass44Gy44Gn44GNDQor44Gk44Gh44KELOOBl+OBkuOBqA0KK+OBpOOBoCzjgbLjgo3jgZcNCivjgaTjgaAs44GC44Gk44KI44GXDQor44Gk44GYLOOBsuOCjeOBlw0KK+OBpOOBmOOBhCzjgYvjgZrjgYoNCivjgaTjgZjjgoDjgoks44Gq44KL44GoDQor44Gk44GY44KA44KJLOOBn+OBi+OBlw0KK+OBpOOBmOOBrizjgZfjgoXjgYbjgYTjgaENCivjgaTjgZjjgZXjgo8s44KG44G/DQor44Gk44GL44GgLOOBn+OBhOOBnuOBhg0KK+OBpOOBi+OBr+OCiSzjgabjgaTjgYoNCivjgaTjgYvjgoLjgags44KE44GZ44GNDQor44Gk44GL44KC44GoLOOCiOOBl+OBvw0KK+OBpOOBi+OCguOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjgaTjga3jgaAs44G+44GV44Gy44KNDQor44Gk44Gu44GgLOOBn+OBkeOBlw0KK+OBpOOBruOBoCzjgZHjgpPjgYTjgaHjgo0NCivjgaTjgovjgb7jgoss44Gf44GL44GXDQor44Gk44GV44GLLOOBkeOCkw0KK+OBpOOBpOOBhCzjgZ/jgYvjgZfjgZINCivjgaTjgaTjgb8s44G+44GV44Gu44KKDQor44Gk44Gk44G/LOOBvuOBleOBr+OCiw0KK+OBpOOBpOOBv+OBr+OCiSzjgZ/jgYvjgYoNCivjgYbjgaHjgaAs44G+44GT44GoDQor44GG44Gh44GgLOOBleOBoOOChuOBjQ0KK+OBr+OChOOBlyzjgZ/jgYvjgobjgY0NCivjgYbjgaHjgaAs44Gf44Gk44KEDQor44GG44Gh44GuLOOBleOBqOOBlw0KK+OBhuOBoeOChOOBvizjgYLjgoTjga4NCivjgYbjgaDjgYzjgo8s44GX44KT44GE44GhDQor44GG44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBhuOBiOOBoCzjgZHjgpPjgZgNCivjgYbjgYjjgaAs44Gf44GR44GXDQor44Gt44GaLOOBqOOBl+OBguOBjQ0KK+OBhuOBiOOCgOOCiSzjgZXjgajjgZcNCivjgYbjgYjjgoDjgoks44GX44KH44GG44GfDQor44GG44GI44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBhuOBiOOBrizjgZfjgpPjgoQNCivjgYbjgYjjga4s44Go44KC44G144G/DQor44GG44GI44GV44KPLOOBqOOBl+OBsuOCjQ0KK+OBhuOBiOOBpOOBvCzjgojjgZfjgZ/jgYsNCivjgYbjgYjjgaTjgY0s44KI44GX44Gm44KLDQor44GG44GR44GuLOOChuOBhuOBmeOBkQ0KK+OBhuOBvuOBr+OBlyzjgbLjgafjgbXjgb8NCivjgYbjgoHjgaAs44KE44GZ44Gf44GLDQor44GG44KB44KA44KJLOOBi+OBiuOCiw0KK+OBhuOBv+OBoCzjgZPjgYbjgY3jgaENCivjgYbjgYrjgZrjgb8s44GV44KT44G644GEDQor44GG44KJ44GfLOOBm+OCk+OBnw0KK+OBhuOBl+OBj+OBlSzjgajjgZfjgobjgY0NCivjgYbjgZnjgarjgb8s44GY44KF44KTDQor44KP44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OCj+OBoCzjgYvjgYrjgooNCivjgo/jgaAs44G/44GNDQor44KP44GgLOOBv+OBpOOBruOCig0KK+OCj+OBi+OBmyzjgZXjgajjgojjgZcNCivjgo/jgY0s44Gf44Gg44GXDQor44KP44Gf44Gq44G5LOOBn+OBkeOBlw0KK+OCj+OBn+OBquOBuSzjgajjgoLjgYLjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44Gy44GVDQor44KP44Gf44Gq44G5LOOBpuOBhOOBmA0KK+OCj+OBn+OBquOBuSzjgojjgZfjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44KG44GNDQor44KP44Gf44Gq44G5LOOBi+OBmuOBqA0KK+OCj+OBn+OBrOOBjSzjgojjgZfjgbLjgZUNCivjgo/jgZ/jgazjgY0s44Gy44Gn44GKDQor44KP44Gf44KKLOOBsuOCjeOBv+OBpA0KK+OBr+OBl+OBkOOBoSzjgZjjgoXjgpPjgoQNCivjgoTjgbYs44GT44GG44GYDQor44KE44GO44Gs44G+LOOBv+OBpOOBguOBjQ0KK+OChOOBmOOBvizjgarjgYrjgY0NCivjgoTjgb7jgaAs44GX44GS44G144G/DQor44KE44G+44GgLOOCiOOBl+OBn+OBiw0KK+OChOOBvuOBoCzjgobjgYbjgZnjgZENCivjgoTjgb7jgaAs44KG44GG44GTDQor44KE44G+44GgLOOBguOBjeOBguOBpA0KK+OChOOBvuOBoCzjgYLjgY3jgokNCivjgoTjgb7jgaAs44Gh44GIDQor44KE44G+44GgLOOBsuOCjeOBkw0KK+OChOOBvuOBoCzjgYvjgZrjgb8NCivjgoTjgb7jgaAs44G+44GV44KI44GXDQor44Gy44GV44GuLOOCiuOBiw0KK+OChOOBvuOBoCzjgZXjgajjgZcNCivjgoTjgb7jgaAs44GV44KE44GLDQor44KE44G+44G144GYLOOBn+OBpOOChA0KK+OChOOBvuOBjuOCjyzjgoTjgZnjgbLjgZMNCivjgoTjgb7jgZDjgaEs44KE44GZ44Gy44KNDQor44KE44G+44GQ44GhLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBkOOBoSzjga7jgorjgobjgY0NCivjgoTjgb7jgZDjgaEs44KG44GEDQor44KE44G+44GQ44GhLOOBhOOBleOBig0KK+OChOOBvuOBkOOBoSzjgabjgaTjgoQNCivjgoTjgb7jgZDjgaEs44Gf44GR44Gv44KLDQor44KE44G+44GQ44GhLOOBguOBjeOCiQ0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgbLjgo0NCivjgoTjgb7jgYvjgo8s44KG44GN44GTDQor44KE44G+44KC44GoLOOBsuOCjeOBlw0KK+OChOOBvuOCguOBqCzjgYvjgarjgZMNCivjgb/jgZrjgZ/jgass44GN44G/44GKDQor44KE44G+44KC44GoLOOBv+OBqeOCig0KK+OChOOBvuOCguOBqCzjgb/jgaTjgbLjgo0NCivjgoTjgb7jgoLjgags44KI44Gu44GZ44GRDQor44KE44G+44KC44GoLOOBquOBiuOBqA0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgoTjgb7jgoLjgags44GL44Gk44GYDQor44KE44G+44KC44GoLOOBi+OBmg0KK+OChOOBvuOCguOBqCzjgYvjgZrjgYLjgY0NCivjgoTjgb7jgoLjgags44Gy44Gq44GTDQor44KE44G+44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBrSzjgb7jgZPjgagNCivjgoTjgb7jga0s44KE44GZ44Gy44GVDQor44KE44G+44GX44GfLOOBqOOBl+OBig0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgbLjgZUNCivjga/jgpPjgaAs44GE44GV44GKDQor44KE44G+44GG44GhLOOCiOOBl+OChA0KK+OChOOBvuOBhuOBoSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoTjgb7jgYbjgoks44Gf44GL44GXDQor44KE44G+44GW44GNLOOBsuOCjeOBqA0KK+OChOOBvuOBluOBjSzjgYvjgZrjgojjgZcNCivjgoTjgb7jgZbjgY0s44GR44KT44GE44GhDQor44Gf44KA44KJLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBluOBjSzjgZXjgajjgZcNCivjgoTjgb7jgZbjgY0s44Gf44GL44GKDQor44KE44G+44Ge44GILOOBn+OBi+OBlw0KK+OChOOBquOBjuOBleOCjyzjgobjgb/jgZMNCivjgoTjga4s44Gf44GR44GXDQor44KE44GZ44GgLOOBsuOBp+OBjQ0KK+OChOOBmeOBr+OCiSzjgZHjgYTjgZMNCivjgZPjgZfjgoLjgags44KC44GoDQor44Gv44GO44KP44KJLOOBv+OBjeOBig0KK+OCiOOBk+OBnyzjgabjgovjgbLjgZUNCivjgojjgZPjgoTjgb4s44Gf44GR44GXDQor44KI44KC44GgLOOBguOBjeOCiQ0KK+OCiOOBquOBjCzjgZXjgajjgZcNCivjgojjga3jgaAs44Gy44KN44Gf44GRDQor44KI44Gt44KE44G+LOOBleOBoeOCiA0KK+OCiOOBreOBluOCjyzjgYjjgooNCivjgojjga3jgZbjgo8s44Go44KC44Gy44GVDQor44KI44GX44GgLOOBvuOChuOBvw0KK+OCiOOBl+OBoCzjgabjgovjgoTjgZkNCivjgojjgZfjgaAs44GL44Gk44Gy44KNDQor44KI44GX44GgLOOBvuOBleOBqA0KK+OCiOOBl+OBoCzjgYLjgY3jgbLjgZUNCivjgojjgZfjgaAs44GV44Gh44GTDQor44KI44GX44GgLOOBkeOCk+OBlA0KK+OCiOOBl+OBoCzjgY3jgojjgbLjgagNCivjgojjgZfjgZDjgaEs44Gu44G244GTDQor44KI44GX44GELOOChuOBjeOBig0KK+OCiOOBl+OBhOOBkSzjgY3jgojjgobjgY0NCivjgojjgZfjgb7jgaQs44GR44KT44Gf44KN44GGDQor44KI44GX44GuLOOBsuOBleOCiOOBlw0KK+OCiOOBl+OBrizjgZfjgZLjgYoNCivjgojjgZfjgZbjgo8s44GK44GV44KADQor44KI44Gk44Gf44GrLOOBv+OBpOOBsuOCjQ0KK+OChuOBjeOBluOBrSzjgZvjgYTjgZgNCivjgobjgoTjgb4s44KI44GX44Gy44GVDQor44Ga44GXLOOChuOBjeOBig0KK+OBguOCieOBhCzjgb7jgZXjgagNCivjgbXjgZjjgY0s44KG44GG44GE44GhDQor44Gy44KJ44GuLOOBl+OBkuOCiw0KK+OBi+OCgeOChOOBvizjgbLjgafjga7jgbYNCivjgZPjgZjjgb4s44GL44Ga44GKDQor44Gq44GL44GKLOOCgeOBkOOBvw0KK+OBhOOCj+OBi+OCjyzjgZ3jgYbjgZ/jgo3jgYYNCivjgaTjgaHjgoQs44Gf44Gk44KEDQor44GE44GY44KNLOOBk+OBhuOBmA0KK+OBj+OBqeOBhizjgajjgoLjgZMNCivjgarjgYzjgZfjgb4s44GL44Ga44Gy44GoDQor44Gv44GX44GQ44GhLOOBi+OBpOOChuOBjQ0KK+OBpOOBoeOChCzjgZHjgYTjgZMNCivjgYTjgZfjgb7jgaQs44Gy44KN44KE44GZDQor44Gv44KJ44GgLOOBsuOCjeOBn+OBiw0KK+OBv+OBmuOBrizjgbXjgb/jgYoNCivjgbvjgZfjga4s44Gv44KL44GKDQor44GC44G5LOOBl+OBkuOBruOCig0KK+OBguOBuSzjgZ/jgYvjgZMNCivjgYLjgbks44KG44Gf44GLDQor44GC44G5LOOBiOOBhOOBhOOBoQ0KK+OBguOBtuOBi+OCjyzjgb/jgZUNCivjgYLjgaDjgaEs44GR44KT44Gf44KN44GGDQor44GC44GE44GW44KPLOOBjeOCiuOBkw0KK+OBguOBmOOCjSzjgb7jgZXjgobjgY0NCivjgYLjgYvjgYQs44Go44GX44GC44GNDQor44Gf44KC44GoLOOBv+OBjeOBig0KK+OBguOBi+OBhOOBlyzjgYjjgYTjgaENCivjgYLjgYvjgZcs44G+44KG44G/DQor44GC44GN44GE44GRLOOChOOBmeOBsuOCjQ0KK+OBguOBjeOBnyzjga7jgorjgaHjgYsNCivjgYLjgY3jgoTjgb4s44KA44Gk44G/DQor44GC44G+44GM44GELOOBsuOBp+OBteOBvw0KK+OBguOBvuOBjOOBnyzjgZ/jgYvjgZcNCivjgYLjgb7jga4s44G/44G7DQor44GC44KB44G/44KELOOBi+OBpOOBvw0KK+OBguOCk+OBqeOBhizjgYvjgZrjgbLjgo0NCivjgYLjgpPjganjgYYs44Gf44GL44KG44GNDQor44GC44KT44Gp44GGLOOBoOOBhOOBlA0KK+OBguOCk+OBqeOBhizjgZfjgpPjgZQNCivjgYLjgpPjgZbjgYQs44G+44GV44Gy44GnDQor44GC44GK44GNLOOBvuOBleOBqOOBlw0KK+OBguOBiuOBjSzjgYLjgY3jgbXjgb8NCivjgYLjgYrjgoTjgY4s44GC44Gk44GoDQor44GC44GK44KE44G+LOOChuOBhuOBkw0KK+OBguOCieOBhCzjgb7jgZXjgZcNCivjgYLjgonjgYQs44Go44KC44Gq44KKDQor44GC44KJ44GNLOOBqOOBl+OBv+OBpA0KK+OBguOCieOChCzjgbLjgo3jgYLjgY0NCivjgYLjgorjgb4s44GX44KT44GE44GhDQor44GC44KK44Gf44GRLOOBm+OBhOOBmA0KK+OBguOBleOBoCzjgZ/jgZHjgYoNCivjgYLjgZXjgbIs44KG44GG44GYDQor44GC44GV44GuLOOBmOOCheOCk+OBkw0KK+OBguOBl+OBoCzjgZXjgajjgZcNCivjgYLjgZfjgYvjgo8s44GV44Go44GXDQor44Gw44GwLOOChOOBmeOChuOBjQ0KK+OBsOOBsCzjgZ/jgYvjga/jgosNCivjgbDjgbAs44GR44KT44GYDQor44Gh44GwLOOBmOOCheOCk+OBkw0KK+OBlOOBqOOBhizjgb7jgZXjgbLjgZMNCivjgaHjgofjgYYs44GI44GE44GYDQor44Gg44GE44GpLOOChuOBhuOBkw0KK+OBqeOBguOBhCzjgZPjgYbjgZgNCivjganjgYQs44Go44KC44Gy44KNDQor44G744Gd44GELOOBn+OBj+OBmA0KK+OBqeOBhCzjgYTjgZXjgYoNCivjganjgYQs44GR44KT44GE44GhDQor44GI44GM44GX44KJLOOBsuOBp+OBn+OBiw0KK+OBiOOBkOOBoSzjgoTjgZnjgbLjgo0NCivjgYjjgbDjgoks44Gk44Go44KADQor44GI44KT44GpLOOBl+OCk+OBhOOBoQ0KK+OBiOOCk+OBqSzjgZXjgajjgZcNCivjgYLjgb7jgoos44GR44KT44GYDQor44GI44Gu44KC44GoLOOBjeOCiOOBvw0KK+OBiOOBruOCguOBqCzjgb7jgZXjgb8NCivjgYjjga7jgoLjgags44GC44GN44KJDQor44GI44Gu44KC44GoLOOBoeOBi+OCiQ0KK+OBiOOBluOBjSzjgYvjgZrjgbLjgagNCivjgbXjgZjjga/jgoks44G+44GV44Gv44KLDQor44G144GY44GELOOBn+OBi+OBlw0KK+OBteOBmOOBhCzjgZXjgaTjgY0NCivjgbLjgovjgYvjgo8s44GR44KTDQor44G144GY44GELOOBvuOBleOBsuOBkw0KK+OBteOBmOOBleOCjyzjga/jgovjgb8NCivjgbXjgZjjgZXjgo8s44Gy44KN44KG44GNDQor44Gy44GULOOBi+OBpOOChuOBjQ0KK+OBteOBmOOBnyzjgaTjgojjgZcNCivjgbXjgZjjgZ8s44Gf44GL44GXDQor44G144GY44KP44KJLOOBqOOBiuOCiw0KK+OBteOBi+OBvyzjgoTjgZnjgobjgY0NCivjgbXjgYvjgZbjgo8s44Gf44GR44GXDQor44Gv44Gb44GM44KPLOOCiOOBhuOBmeOBkQ0KK+OBteOBj+OBoCzjgZjjgoXjgpPjgZMNCivjgbXjgY/jgoLjgags44G/44Gk44GKDQor44G144GP44KA44KNLOOBn+OBi+OBlw0KK+OBteOBj+OCjSzjgoTjgZnjgZMNCivjgbXjgY/jgZcs44Gy44KN44G/DQor44G144GP44GX44G+LOOBn+OBi+OBvw0KK+OBteOBj+OBl+OBvizjgZfjgpPjgYTjgaENCivjga/jgY7jgo/jgoks44Go44GX44GKDQor44G144GP44GX44G+LOOBguOBjeOCiQ0KK+OBteOBquOBjSzjgarjgYrjgY0NCivjgbXjgarjgY/jgbws44G144G/44GKDQor44Gv44KJ44GgLOOBv+OBruOCiw0KK+OBteOCi+OBr+OBnyzjgoLjgajjgbXjgb8NCivjgbXjgovjgYvjgo8s44G+44Gh44GTDQor44G144KL44KC44GoLOOBn+OBi+OBlw0KK+OBteOCi+OChCzjgajjgoLjgoQNCivjgbXjgZfjgb8s44Gy44KN44G/DQor44GU44GG44GgLOOBv+OBjeOBig0KK+OBhOOCiuOBiCzjgZfjgpPjgZgNCivjgYTjgZfjga/jgoks44GC44GN44KJDQor44GE44Gh44GL44KPLOOBvuOBleOChuOBjQ0KK+OBhOOBsCzjgb7jgb8NCivjgYTjgo/jgZXjgY0s44GV44GI44GTDQor44GE44Gu44GG44GILOOBguOChOOBkw0KK+OBhOOBhOOCguOCiizjgb7jgZXjgbLjgo0NCivjgYTjga/jgoks44Gb44GE44GYDQor44GE44KP44KA44KJLOOBl+OCh+OBhuOBnw0KK+OBhOOBquOBjOOBjSzjgobjgY3jgYoNCivjgYTjgZfjgZjjgb4s44GL44Ga44Gy44KNDQor44GE44Go44GGLOOBl+OCjeOBhg0KK+OBlOOCk+OBqeOBhizjgZfjgoXjgYbjgZgNCivjgZTjgajjgYYs44GZ44G/44KMDQor44GE44GX44GL44KPLOOBvuOBleOBsuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjga7jgbYNCivjgYTjgZvjgY0s44KK44GTDQor44GU44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBr+OBoCzjgbLjgafjgYLjgY0NCivjga/jgY7jgo/jgoks44G/44KP44GTDQor44Gv44GO44KP44KJLOOBqOOCguOBkw0KK+OBr+OBhOOBmOOBvizjgYLjgYTjgZMNCivjga/jgb7jgaAs44Gy44KN44GXDQor44Gv44G+44GuLOOBsuOCjeOBpOOBkA0KK+OBr+OBvuOBiuOBiyzjgZPjgZnjgZENCivjga/jgarjgaks44G/44Gu44KLDQor44Gv44Gq44GfLOOBpuOBpOOChA0KK+OBr+OCiSzjgajjgoLjgbLjgZMNCivjga/jgoks44KG44GG44GYDQor44Gv44KJLOOBn+OBkeOBlw0KK+OBr+OCiSzjgY3jgofjgYbjgZMNCivjga/jgonjgaAs44GX44KTDQor44Gv44KJ44GgLOOBn+OBkeOBlw0KK+OBr+OCieOBoCzjgYLjgY3jgbLjgagNCivjgZnjgZrjgY0s44Gf44GR44KNDQor44Gv44KJ44GMLOOBn+OBpOOChA0KK+OBr+OCieOBvyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgonjgoTjgb4s44Gu44G244Gy44GTDQor44Gv44KJ44Ge44GuLOOBruOBtuOBsuOCjQ0KK+OBr+OBm+OBuSzjgZ/jgY/jgZgNCivjgYvjga3jgZMs44Go44KC44GC44GNDQor44Gk44Gh44GgLOOCiOOBhuOBhOOBoQ0KK+OBr+OBl+OCguOBqCzjgorjgYgNCivjga/jgZfjgoLjgags44G144G/44Gy44KNDQor44Gv44GX44KC44GoLOOBi+OBquOBiA0KK+OBr+OBl+OCguOBqCzjgZXjgajjgZcNCivjga/jgZfjgoLjgags44Gf44GL44GC44GNDQor44Gv44GX44KC44GoLOOBsuOBp+OBjQ0KK+OBr+OBl+OCguOBqCzjgbLjgafjgY0NCivjga/jgZfjgoLjgags44KI44GX44Gy44GTDQor44Gv44GfLOOBkeOBhOOBkw0KK+OBr+OBo+OBqOOCiizjgbLjgafjgYLjgY0NCivjga/jgaPjgajjgoos44G+44GT44GoDQor44Gv44Gj44Go44KKLOOBm+OBhOOBmA0KK+OBr+OChOOBi+OCjyzjgY3jgojjgZcNCivjga/jgoTjgYvjgo8s44Gy44Gn44Gv44KLDQor44Gv44KE44GV44GLLOOCiOOBl+OBi+OBmg0KK+OBr+OChOOBleOBjSzjgZvjgYTjgZQNCivjga/jgoTjgZcs44Go44GX44Gy44GTDQor44Gv44KE44GXLOOBn+OBi+OCiOOBlw0KK+OBr+OChOOBlyzjgZ/jgYvjgarjgooNCivjga/jgoTjgZcs44KE44GZ44GNDQor44Gv44KE44GXLOOBguOBjeOCiQ0KK+OBr+OChOOBl+OBoCzjgZHjgpPjgZ7jgYYNCivjgbLjgbMs44GL44Ga44Gu44G2DQor44Gy44GM44GXLOOChOOBmeOBsuOCjQ0KK+OBsuOBjOOBlyzjgYvjgZrjgYoNCivjgbLjgZDjgaEs44GT44GG44GE44Gh44KN44GGDQor44Gy44GY44GL44GfLOOBkeOCk+OBmA0KK+OBsuOBmOOChCzjgojjgZfjgYoNCivjgbLjgarjgYws44Gf44GR44GXDQor44Gy44KJ44GL44KPLOOBsuOBp+OBguOBjQ0KK+OBsuOCieOBrizjgbLjgo3jgZMNCivjgbLjgonjga4s44GE44Gf44KLDQor44Gy44KJ44GuLOOBn+OBoOOBig0KK+OBsuOCieOBiizjgZ/jgYvjgbLjgagNCivjgbLjgonjgZfjgb4s44Gq44GK44GNDQor44Gy44KJ44KE44G+LOOBqOOBl+OCjeOBhg0KK+OBsuOCieOChOOBmSzjgbLjgajjgZcNCivjgbLjgorjgY0s44GR44KT44GE44Gh44KNDQor44Gy44KN44G+44GVLOOCj+OBn+OCiw0KK+OBsuOCjeOCguOBqCzjgZfjgpPjgZgNCivjgbLjgo3jgYrjgYss44G+44Gq44G2DQor44Gy44KN44GbLOOChuOBv+OBkw0KK+OBsuOCjeOBmyzjgb7jgaTjgZ/jgo3jgYYNCivjgYbjgoHjgaAs44KK44KH44GG44GE44GhDQor44G744KT44GgLOOBleOBquOBiA0KK+OBu+OCk+OBqSzjgZ/jgZHjgZcNCivjgbvjgorjgoLjgags44KE44GZ44KG44GNDQor44G744KK44GuLOOBi+OBmuOBl+OBkg0KK+OBu+OCiuOBhuOBoSzjgZ/jgYvjga0NCivjgbvjgZXjgYss44GC44GN44GTDQor44G744GX44GuLOOBvuOBk+OBqA0KK+OBu+OBl+OChOOBvizjgb/jgY7jgbXjgb8NCivjgbvjgZ3jgYvjgo8s44Gm44Gk44KEDQor44G744Gd44GL44KPLOOCiOOBl+OBsuOCjQ0KK+OBu+OBneOBi+OCjyzjgZfjgZLjgYoNCivjgbvjgZ3jgoQs44Gy44KN44GXDQor44GE44Gw44KJ44GNLOOBruOBtuOBig0KK+OBhOOBoeOBr+OCiSzjgbLjgZXjgb/jgaQNCivjgYTjgaHjga/jgoks44Gf44GL44GXDQor44GE44Gh44Gv44KJLOOBruOBtuOBkw0KK+OBhOOBoeOBi+OCjyzjgZHjgpPjgYTjgaENCivjgYTjgaHjga7jgZss44GV44Go44GXDQor44GE44GgLOOBn+OBkeOBlw0KK+OBhOOBp+OBkOOBoSzjgYvjgZrjgbLjgagNCivjgYTjgaks44G+44GV44GXDQor44GE44GM44KJ44GXLOOBi+OBpOOBruOBtg0KK+OBhOOBjOOCieOBlyzjgobjgY3jgbLjgZMNCivjgYTjgYzjgonjgZcs44Gy44KN44GXDQor44GE44GE44GgLOOBsuOCjeOBig0KK+OBhOOBhOOBoCzjgYvjgaTjgajjgZcNCivjgYTjgYTjgZjjgb4s44GT44GG44GYDQor44GE44GR44GgLOOCiuOCh+OBhg0KK+OBhOOBkeOBoCzjgajjgoLjgb8NCivjgYTjgZHjgaAs44Go44KC44G/DQor44GE44GR44GgLOOCiOOBhuOBkw0KK+OBhOOBvuOBhCzjgZPjgYbjgY0NCivjgYTjgb7jgYTjgZrjgb8s44GR44GE44GTDQor44GE44G+44GE44Ga44G/LOOBv+OCjw0KK+OBhOOBvuOCgOOCiSzjgYrjgZXjgoANCivjgYTjgb7jgoDjgoks44G/44Gu44KLDQor44GE44KC44KTLOOBi+OBmuOChuOBjQ0KK+OBhOOBquOBoCzjgb7jgZnjgb8NCivjgYTjgarjgYzjgY0s44GL44Ga44KEDQor44GE44Gq44GM44GNLOOBv+OBpOOChA0KK+OBhOOBquOCgOOCiSzjgZ/jgYvjgZcNCivjgYTjgarjgoDjgoks44Go44KC44Gu44KKDQor44GE44GuLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBhOOBruOBi+OCjyzjgYLjgZnjgZMNCivjgYTjga7jgb7jgZ8s44GL44Ga44Gy44GoDQor44GE44Gu44GG44GILOOBsuOCjeOBi+OBmg0KK+OBhOOBruOBhuOBiCzjgZXjgajjgZcNCivjgYTjga7jgYbjgYgs44GX44G7DQor44GE44Gu44GG44GILOOChOOBmeOBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgobjgYbjgZgNCivjgYTjga7jgYbjgYgs44KG44GG44GfDQor44GE44Gu44GG44GILOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBhOOBrOOBhCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYTjgazjgZfjgb4s44G+44KG44G/DQor44GE44KK44GILOOBvuOBleOBruOCig0KK+OBhOOBleOBiyzjgZfjgZLjgosNCivjgYTjgZfjgbAs44Gh44Gy44KNDQor44GE44GX44Gw44GXLOOBoOOBhOOBmeOBkQ0KK+OBhOOBl+OBsOOBlyzjgbLjgafjgY0NCivjgYTjgZfjgaAs44Gy44KN44G/44GkDQor44GE44GX44GgLOOBsuOCjeOBlw0KK+OBhOOBl+OBoCzjgYvjgaTjgbLjgo0NCivjgYTjgZfjgaAs44GR44GE44GE44GhDQor44GE44GX44GM44G/LOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBkOOCjSzjgZPjgYbjgZgNCivjgYTjgZfjga/jgoks44G+44KK44GTDQor44GE44GX44GELOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBhCzjgarjgYrjgb8NCivjgYTjgZfjgYQs44Gu44G844KLDQor44GE44GX44GELOOBm+OBpOOBkw0KK+OBhOOBl+OBhCzjgZ/jgaDjgZcNCivjgYTjgZfjgYQs44Gf44GL44Gv44KLDQor44GE44GX44GL44KPLOOBqOOBl+OBig0KK+OBhOOBl+OBvuOCiyzjgaTjgojjgZcNCivjgYvjgo/jgZos44KI44GG44GE44GhDQor44GE44GX44Ga44GLLOOChuOBjeOBig0KK+OBhOOBn+OChCzjga7jgorjgbLjgZUNCivjgYTjgYTjgaAs44GC44GN44Gy44KNDQor44GE44Go44GGLOOBsuOCjeOBv+OBoQ0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgYTjgajjgYYs44GE44GP44GKDQor44GE44Go44GGLOOBi+OBmuOChA0KK+OBhOOBqOOBhizjgZfjgofjgYbjgZMNCivjgYTjgajjgYYs44GL44Ga44Gy44KNDQor44GE44Go44GGLOOBmOOCheOCkw0KK+OBhOOBqOOBhizjgb7jgZPjgagNCivjgYTjgajjgYYs44GK44GV44KADQor44GE44Go44GGLOOCiOOBl+OBvuOBlQ0KK+OBhOOBqOOBhizjgb7jgZXjgobjgY0NCivjgYTjgajjgYYs44G+44GV44G/DQor44GE44Go44GGLOOBsuOCjeOBguOBjQ0KK+OBhOOBqOOBhizjgZ/jgb7jgY0NCivjgYTjgajjgYYs44GN44KI44Gf44GLDQor44GE44Go44GGLOOBvuOBleOBteOBvw0KK+OBhOOBqOOBhizjgbLjgo3jgYvjgZoNCivjgYTjgajjgYYs44KG44GN44GKDQor44GE44Go44GGLOOBiOOBhOOBmA0KK+OBhOOBqOOBhizjgb/jgbvjgZMNCivjgYTjgo/jgYQs44Gf44GL44KG44GNDQor44GE44KP44GELOOBi+OBmuOBl+OBkg0KK+OBhOOCj+OBvyzjgY3jgojjgZcNCivjgYTjgo/jgoDjgoks44KI44GX44Gf44GLDQor44GE44KP44Gq44GMLOOBquOBiuOBkw0KK+OBhOOCj+OBiizjgYvjgZrjgYLjgY0NCivjgYTjgo/jgZXjgY0s44KK44KF44GG44GTDQor44GE44KP44GfLOOBjeOCiOOBkw0KK+OBhOOCj+OBnyzjgb/jgaTjgbLjgo0NCivjgYTjgo/jgZ8s44GX44KT44GYDQor44GE44Ga44G/LOOBruOBnuOCgA0KK+OBmOOCk+OBsCzjgaTjga3jga7jgooNCivjga7jgYbjgaEs44KK44GIDQor44KJ44GPLOOCiOOBl+OBruOCig0KK+OBi+OBjOOBvyzjgbLjgo3jgZcNCivjgYvjgYzjgo8s44GR44GE44GfDQor44GL44GS44KE44G+LOOBn+OBvuOBjQ0KK+OBi+OBhCzjgZjjgoXjgpMNCivjgYvjgZjjgoLjgags44Gf44GP44KEDQor44GL44GY44KP44KJLOOBm+OBhOOBmA0KK+OBj+OCiuOBr+OCiSzjgYjjgYTjgZgNCivjgYvjgY3jgoDjgoks44GY44KF44KTDQor44GL44GN44Gu44GNLOOBn+OBi+OBguOBjQ0KK+OBi+OBjeOBhuOBoSzjgbLjgo3jgobjgY0NCivjgYvjgY3jgZbjgY0s44GT44GG44GYDQor44GL44GTLOOBqOOBl+OBsuOBkw0KK+OBi+OCgeOBl+OBvizjgaDjgYTjgZnjgZENCivjgYvjgb/jgYjjgZks44GI44GE44GE44GhDQor44GL44G/44GP44KJLOOBsuOCjeOBlw0KK+OBi+OBv+OCgOOCiSzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYvjgb/jgZ/jgY0s44G+44GV44GYDQor44GL44G/44KI44GX44GL44KPLOOBvuOBleOChuOBjQ0KK+OBi+OCkyzjgZ/jgY/jgoQNCivjgYvjgarjgYQs44Go44GX44GL44GaDQor44GL44KT44Gw44KE44GXLOOBhOOBoeOCjeOBhg0KK+OBi+OCk+OBoCzjgojjgZfjgbLjgagNCivjgYvjga3jgZMs44Gf44GL44KG44GNDQor44GL44Gt44GTLOOChOOBmeOChuOBjQ0KK+OBi+OBreOBnyzjgZ/jgYvjgZcNCivjgYvjga7jgYYs44G+44KG44G/DQor44GL44KK44GuLOOBsuOCjeOBlw0KK+OBi+OBleOBvyzjgYvjgarjgYgNCivjgYvjgZXjgarjgb8s44Gf44GL44GoDQor44GL44GbLOOBvuOCguOCiw0KK+OBi+OBmeOBjCzjgbLjgo3jgZcNCivjgYvjgZnjgoQs44G+44GV44Gq44KKDQor44GL44Gf44GK44GLLOOBruOCiuOBkw0KK+OBi+OBqOOBhizjgarjgYrjgZMNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBvuOBleOChuOBjQ0KK+OBi+OBqOOBhizjga7jgorjgYLjgY0NCivjgYvjgajjgYYs44Gf44Gg44GC44GNDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GL44Go44GGLOOBguOBjeOBsuOBqA0KK+OBi+OBqOOBhizjgZjjgo3jgYYNCivjgYvjgaTjgb7jgZ8s44GP44G/DQor44GL44Gk44KJLOOBvuOBleOBjQ0KK+OBi+OCj+OBuSzjgojjgZfjgobjgY0NCivjgYvjgo/jgaAs44Gf44GR44GXDQor44GL44KP44GQ44GhLOOBsuOBp+OBjQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgZ/jgYsNCivjgYvjgo/jgZDjgaEs44GE44GP44GTDQor44GL44KP44Gv44GfLOOBi+OBiuOCig0KK+OBi+OCj+OBi+OBvyzjgYvjgZrjgojjgZcNCivjgYvjgo/jgYvjgb8s44GR44KT44GE44GhDQor44KE44GY44G+LOOBv+OBpOOCiA0KK+OBi+OCj+OCguOBqCzjgaTjgojjgZcNCivjgYvjgo/jgoDjgoks44Gy44Gn44GC44GNDQor44GL44KP44KA44KJLOOBsuOCjeOBlw0KK+OBi+OCj+OCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgYvjgo/jgoDjgoks44G+44KKDQor44GL44KP44GuLOOBvuOBleOBsuOBkw0KK+OBi+OCj+OBrizjgb7jgZXjgYvjgaQNCivjgYvjgo/jgZXjgY0s44GX44GS44KG44GNDQor44GL44KP44GbLOOBkeOCk+OBmA0KK+OBi+OCj+OBl+OBvizjgajjgZfjgoQNCivjgYvjgo/jgZfjgb4s44KI44GX44Gv44KLDQor44GL44KP44GX44G+LOOBsuOBp+OBjQ0KK+OBi+OCj+OBl+OBvizjgoTjgZnjga7jgbYNCivjgY3jgaAs44G/44Gu44KLDQor44GN44GP44GhLOOBi+OBmuOChA0KK+OBjeOBj+OBoSzjgZ/jgYvjgbLjgacNCivjgoTjgb7jgoLjgags44KE44GZ44Gy44KNDQor44GC44GN44KI44GXLOOChOOBmeOBsuOCjQ0KK+OBjeOBj+OBoSzjgb7jgoLjgosNCivjgY3jgY/jgaEs44Gf44Gk44KEDQor44GN44GP44GhLOOBv+OBpOOCiw0KK+OBjeOBj+OBoSzjgYLjgY3jgZMNCivjgY3jgoDjgoks44G144G/44Gy44GTDQor44GN44KA44KJLOOBvuOBleOBsuOBkw0KK+OBjeOCgOOCiSzjgYLjgY3jgbLjgZMNCivjgY3jgoDjgoks44GC44Gk44GXDQor44GN44KA44KJLOOBsuOCjeOBlw0KK+OBjeOCgOOCiSzjgb7jgZXjgY0NCivjgY3jgoDjgoks44G/44Gu44KLDQor44GL44Go44GGLOOBl+OCh+OBhuOBmA0KK+OBjeOBquOBmyzjgobjgYbjgZgNCivjgY3jga0s44G+44GV44GTDQor44GN44GuLOOBguOBjQ0KK+OBjeOBrizjgYvjgZrjgbLjgo0NCivjgY3jga7jgZfjgZ8s44GR44GE44GfDQor44GN44KJLOOCiOOBhuOBkw0KK+OBjeOBl+OCguOBqCzjgajjgYrjgosNCivjgY3jgZ/jgbDjgZ/jgZEs44GC44GN44GKDQor44GN44Gf44Gw44Gf44GRLOOBn+OBi+OBsuOBkw0KK+OBjeOBn+OBjOOCjyzjgYrjgZXjgoANCivjgY3jgZ/jgYzjgo8s44Gh44GL44GTDQor44GN44Gf44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgoHjgZDjgb8NCivjgY3jgZ/jgoTjgb4s44GI44GE44GYDQor44GN44KI44Gq44KKLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgY3jgojjgZcNCivjgZPjgbDjgoTjgZcs44Go44GX44Gy44KNDQor44GT44Gw44KE44GXLOOBguOBjeOBkw0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44GT44Gw44KE44GXLOOBsuOCjeOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgY0NCivjgYTjgajjgYYs44GX44KT44GYDQor44GT44KT44GuLOOCiOOBhuOBhOOBoQ0KK+OBk+OCk+OBrizjgZ/jgYvjgb/jgaQNCivjgZPjgpPjga4s44Gy44KN44GXDQor44GT44KT44GuLOOBi+OBmuOBguOBjQ0KK+OBk+OBhOOBkSzjgajjgoLjgbXjgb8NCivjgZPjgZjjgb4s44KP44Gf44KLDQor44GT44GP44GX44KH44GGLOOBvuOBleOCiw0KK+OBk+OBvuOBjSzjgYvjgZrjgoQNCivjgb7jgYvjgbks44GV44G244KN44GGDQor44GT44G+44GkLOOBn+OBkeOBlw0KK+OBk+OBvuOBpCzjgbLjgo3jgYgNCivjgZPjgpPjgaks44GX44KTDQor44GT44KT44GpLOOBn+OBj+OBvw0KK+OBk+OCk+OBqSzjgb7jgZXjgobjgY0NCivjgZPjgZfjgbAs44G/44GNDQor44KI44GT44GILOOChOOBmeOBruOCig0KK+OBk+OBpuOBjOOCjyzjgb7jgZXjga7jgooNCivjgZPjgpPjga4s44GL44Ga44GC44GNDQor44GT44KE44G+LOOCjOOBhOOBkw0KK+OBk+OChOOBvizjgoLjgajjgY/jgasNCivjgZPjgoTjgb4s44Gy44KN44Gf44GLDQor44GT44GW44GZLOOBqOOBl+OBruOCig0KK+OBj+OBoeOBhOOBlyzjgYvjgZrjgajjgZcNCivjgY/jgY7jgb/jgoQs44KK44KF44GG44GZ44GRDQor44GP44GY44KJ44GELOOBguOBpOOBlw0KK+OBj+OBvuOBruOBv+OBqSzjgbLjgo3jgZcNCivjgY/jgb7jgZbjgY0s44Go44KC44GNDQor44GP44KM44G+44GkLOOBn+OBi+OBsuOBpw0KK+OBj+OCiuOBjSzjgb7jgZXjgobjgY0NCivjgY/jgorjgoTjgb4s44Go44GX44KN44GGDQor44GP44KK44KE44G+LOOBsuOCjeOBlw0KK+OBj+OCjeOBuSzjgarjgYrjgagNCivjgY/jgo3jgZXjgo8s44Go44KC44GC44GNDQor44GP44KN44GV44KPLOOChOOBmeOChuOBjQ0KK+OBj+OCiuOCheOBhizjgojjgZfjgYgNCivjgY/jgZXjga4s44GL44Gk44KG44GNDQor44GP44KP44Gv44KJLOOBmOOCheOCkw0KK+OBj+OBmuOBrizjgojjgZfjgZ/jgYsNCivjgY3jgoXjgYbjgaAs44Gf44GP44KEDQor44G+44G244GhLOOBkeOCk+OBhOOBoQ0KK+OBvuOBoeOBnyzjgb7jgZXjgY0NCivjgb7jgYjjgaAs44KI44GG44GE44GhDQor44G+44GI44GE44GILOOBguOBjeOBteOBvw0KK+OBvuOBiOOBi+OCjyzjgaHjgYLjgY0NCivjgb7jgb7jgaAs44Gy44KN44GXDQor44G+44Gq44G5LOOBsuOCjeOBn+OBiw0KK+OBvuOBquOBuSzjgYvjgZrjgYoNCivjgb7jgovjgYTjgaEs44G+44GV44KG44GNDQor44G+44KL44Gf44GrLOOBn+OBi+OBsuOBpw0KK+OBvuOCi+OChOOBvizjgZ/jgYvjgZMNCivjgb7jgZXjgYrjgYss44Gf44GL44KG44GNDQor44G+44GZ44GgLOOBn+OBpOOBvw0KK+OBvuOBmeOBoCzjgaTjgojjgZcNCivjgb7jgZnjgaAs44KI44GX44G244G/DQor44G+44GZ44GgLOOChuOBjeOBkw0KK+OBvuOBmeOBoCzjgbLjgo3jgYvjgZoNCivjgb7jgaTjgbDjgoks44GT44GG44Ge44GGDQor44G+44Gk44GgLOOBi+OBpOOChA0KK+OBvuOBpOOBoCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgaDjgYTjgoks44Go44GX44G144G/DQor44G+44Gk44GI44GgLOOBguOChuOBvw0KK+OBvuOBpOOBhCzjgbLjgafjgZcNCivjgb7jgaTjgYQs44Gy44KN44GNDQor44G+44Gk44KC44GoLOOBruOBtuOBig0KK+OBvuOBpOOCguOBqCzjgZvjgYTjgYTjgaENCivjgb7jgaTjgoLjgags44GL44Ga44Gy44KNDQor44G+44Gk44KC44GoLOOBjeOCiOOBi+OBmg0KK+OBvuOBpOOCguOBqCzjgY3jgofjgYbjgZMNCivjgb7jgaTjgoLjgags44KI44GX44GNDQor44G+44Gk44KC44GoLOOBquOCiuOBguOBjQ0KK+OBvuOBpOOCguOBqCzjgYLjgY3jga7jgooNCivjgb7jgaTjgoLjgags44GR44KTDQor44G+44Gk44KC44GoLOOBqOOBl+OBi+OBmg0KK+OBvuOBpOOCguOBqCzjgZHjgpMNCivjgb7jgaTjgoLjgags44Gg44GEDQor44Gq44GL44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCgOOCiSzjgY/jgb8NCivjgb7jgaTjgarjgYws44GR44KT44GY44KN44GGDQor44G+44Gk44GuLOOBi+OBmuOBqA0KK+OBvuOBpOOBiizjgorjgoXjgYbjgYTjgaENCivjgb7jgaTjgYos44Gf44GL44GKDQor44G+44Gk44GK44GLLOOBn+OBkeOBlw0KK+OBvuOBpOOBiuOBiyzjgYvjgZrjga7jgooNCivjgb7jgaTjgYrjgYss44Gf44Gg44GC44GNDQor44G+44Gk44GK44GLLOOBsuOCjeOBlw0KK+OBvuOBpOOBiuOBiyzjgYLjgaTjgZcNCivjgb7jgaTjgZfjgb4s44GN44G/44GKDQor44G+44Gk44Gf44GrLOOBguOChA0KK+OBvuOBpOOChOOBvizjgZPjgYbjgZ/jgo3jgYYNCivjgb/jgaHjgoLjgags44G+44KG44G/DQor44G/44GI44GNLOOBn+OBj+OCjeOBhg0KK+OBv+OBi+OBvyzjgYvjgZrjgb8NCivjgb/jgYvjgb8s44KI44GX44Gf44GLDQor44G/44Gq44GM44KPLOOBpOOCiOOBlw0KK+OBv+OBquOBi+OCjyzjgZfjgofjgYbjgZMNCivjgb/jgZfjgb4s44GL44Ga44G/DQor44G/44GX44G+LOOBl+OBruOBtg0KK+OBv+OBl+OBvizjgbLjgo3jgYLjgY0NCivjgb/jgZ/jgaEs44GT44GG44GYDQor44G/44Gk44GgLOOBquOBiuOBjQ0KK+OBv+OBpOOBr+OBlyzjgZjjgoXjgpMNCivjgb/jgaTjgYQs44Gy44KN44GXDQor44G/44Gk44KC44GoLOOBjeOCiOOBvw0KK+OBv+OBhuOCiSzjgY3jgofjgYbjgZgNCivjgb/jgYbjgoks44G+44GV44Gy44KNDQor44G/44KE44G5LOOBguOBjeOCiQ0KK+OBv+OChOOBoSzjgb7jgZXjgobjgY0NCivjgb/jgoTjgZjjgb4s44GC44GN44Gu44KKDQor44Gw44KTLOOBvuOBquOBtg0KK+OBv+OChOOCguOBqCzjgajjgZfjgYLjgY0NCivjgojjgZPjgYgs44GT44GG44Ge44GGDQor44G/44KE44GV44GLLOOBkeOBhOOBhOOBoQ0KK+OBv+OChOOBnyzjgbLjgo3jgobjgY0NCivjgb/jgoTjgZ8s44GL44Ga44GKDQor44G/44KE44GG44GhLOOBvuOBleOBsuOCjQ0KK+OBhuOBoeOChOOBvizjgb/jgY3jgZMNCivjgZXjgYvjgYQs44KK44KH44GG44GZ44GRDQor44G/44KE44GW44KPLOOBqOOBl+OBguOBjQ0KK+OBv+OBnuOBtuOBoSzjgYjjgYTjgZMNCivjgb/jgZ7jgZDjgaEs44GC44GN44KJDQor44G/44Ge44GQ44GhLOOBhOOBmuOBvw0KK+OBv+OBmuOCguOBqCzjgYLjgaTjgbLjgZMNCivjgb/jgZrjga4s44G+44GV44KI44GXDQor44G/44Ga44GuLOOBvuOBleOChuOBjQ0KK+OBv+OBmuOBrizjgobjgYbjgZgNCivjgb/jgZrjgZfjgb4s44KG44GN44GKDQor44G/44Ga44GfLOOChuOBn+OBiw0KK+OBv+OBmuOBn+OBqyzjgbLjgZXjgagNCivjgoLjgY4s44GL44Ga44Gu44KKDQor44KC44GOLOOCguOChuOCiw0KK+OCguOBjizjgbLjgo3jgZcNCivjgoLjgoLjgZss44Gg44GE44GZ44GRDQor44KC44KT44G+LOOChuOBhuOBmA0KK+OCguOCiizjgozjgYTjgZMNCivjgoLjgoos44GR44GE44GZ44GRDQor44KC44KKLOOBkeOCk+OBhOOBoQ0KK+OCguOCiizjgb7jgZXjgbLjgo0NCivjgoLjgoos44KK44GLDQor44KC44KKLOOBpOOBqOOCgA0KK+OCguOCiuOCguOBqCzjgobjgY3jgbLjgo0NCivjgoLjgorjga4s44KI44GG44GZ44GRDQor44KI44GX44GgLOOBquOBiuOBteOBvw0KK+OCguOCiuOBnyzjgbLjgafjga7jgbYNCivjgoLjgorjgZ8s44GL44Ga44Gy44GVDQor44KC44KK44GfLOOBi+OBpOOBvw0KK+OCguOCiuOBnyzjgojjgZfjgoQNCivjgoLjgorjgZ8s44GX44GS44GKDQor44KC44KK44KP44GNLOOBn+OBj+OBig0KK+OCguOCjSzjgojjgZfjgo3jgYYNCivjgoLjgZ/jgYQs44Gy44KN44GXDQor44KC44Go44Gw44KE44GXLOOBleOBqOOCiw0KK+OCguOBqOOBr+OBlyzjgZfjgZLjgb7jgZUNCivjgoLjgajjgoTjgb4s44G+44GV44Gu44KKDQor44KC44Go44GW44KPLOOChuOBhuOBmA0KK+OCgOOBi+OCjyzjgYTjgaTjgZMNCivjgoDjgarjgYvjgZ8s44G144G/44GTDQor44KA44KJ44GL44G/LOOBsuOCjeOBguOBjQ0KK+OCgOOCieOBi+OBvyzjgojjgZfjgY0NCivjgoDjgonjgYvjgb8s44Gy44KN44KG44GNDQor44KA44KJ44GL44G/LOOChOOBmeOBkw0KK+OCgOOCieOBi+OBvyzjgYLjgY3jgbLjgZUNCivjgoDjgonjgYvjgo8s44G+44GV44GTDQor44KA44KJ44Gq44GLLOOBvuOChuOBkw0KK+OCgOOCieOBnyzjgajjgoLjga7jgooNCivjgoDjgonjgZ8s44Gy44KN44GNDQor44KA44KJ44KE44G+LOOBkeOCk+OBmA0KK+OCgOOCieOChOOBvizjgbLjgo3jgZcNCivjgoDjgo3jga/jgZcs44GT44GG44GYDQor44KA44Go44GGLOOBi+OBiuOCiw0KK+OCgOOBqOOBhizjgYLjgY3jgZMNCivjgarjgbAs44Gy44KN44KG44GNDQor44Gq44GM44GELOOBvuOBleOCiw0KK+OBquOBjOOBhCzjgarjgYrjgYLjgY0NCivjgarjgYzjga4s44GL44Gk44KEDQor44Gq44GM44GuLOOBn+OBvuOBvw0KK+OBquOBjOOBiizjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44GL44Ga44Gy44KNDQor44Gq44GM44GK44GRLOOBleOBqOOBlw0KK+OBquOBjOOBiuOBlSzjgYLjgY3jgbLjgo0NCivjgarjgYzjgZfjgb4s44GL44Gk44KEDQor44Gq44GM44GX44G+LOOBj+OBvw0KK+OBquOBjOOBnyzjgb/jgY0NCivjgYrjgYrjgbAs44GV44Go44GXDQor44Gq44GM44GfLOOBl+OCk+OBmA0KK+OBquOBjOOBnyzjgZfjgofjgYbjgbjjgYQNCivjgarjgYzjgZ/jgass44Gk44KI44GXDQor44Gq44GE44Go44GGLOOChOOBmeOBruOCig0KK+OBquOBi+OBoSzjgojjgZfjga/jgosNCivjgarjgYvjgaAs44KI44GX44KG44GNDQor44Gq44GL44Gg44GELOOChuOBhuOBhOOBoQ0KK+OBquOBi+OBjOOCjyzjgarjgYrjgobjgY0NCivjgarjgYvjgYzjgo8s44KI44GX44KG44GNDQor44Gq44GL44GM44KPLOOBguOBpOOBlw0KK+OBquOBi+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgarjgYvjga/jgoks44GY44KF44KTDQor44Gq44GL44GELOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OBhCzjgZfjga4NCivjgarjgYvjgZjjgb4s44Gf44GL44GXDQor44Gq44GL44GY44G+LOOBk+OBhuOBmA0KK+OBquOBi+OCgOOCiSzjgZfjgoXjgYbjgZQNCivjgarjgYvjgoDjgoks44G+44GV44KG44GNDQor44GN44G/44Gy44KJLOOBv+OBiw0KK+OBhOOBqOOBhizjgZ/jgYvjgbLjgZUNCivjgarjgYvjgoDjgoks44GT44GG44GYDQor44Gq44GL44KA44KJLOOBn+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgobjgY0NCivjgarjgYvjgoDjgoks44Gv44GY44KBDQor44Gq44GL44KA44KJLOOBvuOBleOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgY0NCivjgarjgYvjgoDjgoks44G/44GNDQor44Gq44GL44KA44KJLOOBqOOCguOBig0KK+OBquOBi+OBq+OBlyzjgYTjgZrjgosNCivjgarjgYvjgavjgZcs44Gf44GL44Gy44KNDQor44Gq44GL44GuLOOChuOBhuOBkw0KK+OBquOBi+OBrizjgoTjgZnjgYLjgY0NCivjgarjgYvjga4s44Gm44Gk44KEDQor44Gq44GL44GuLOOBi+OBmuOBruOCig0KK+OBquOBi+OBrizjgYLjgaTjgZcNCivjgarjgYvjgYos44GC44GN44GTDQor44Gq44GL44GV44GPLOOBl+OCh+OBhuOBn+OBpA0KK+OBquOBi+OBmyzjgbLjgo3jgZ/jgYsNCivjgarjgYvjgZ8s44GP44KL44G/DQor44Gq44GL44GfLOOBsuOCjeOBvw0KK+OBquOBi+OBnyzjgoTjgZnjgbLjgo0NCivjgarjgYvjgZ/jgZEs44Gf44GP44GKDQor44Gq44GL44KE44G+LOOBteOBv+OBig0KK+OBquOBv+OBjSzjgZHjgYTjgZcNCivjgarjgarjgZXjgo8s44Gq44G/44GYDQor44Gq44KT44GwLOOBoOOBhOOBmeOBkQ0KK+OBquOCk+OCguOBjyzjgYjjgb/jgZMNCivjga3jgoLjgags44Gq44Gk44GTDQor44Gt44KC44GoLOOBv+OBpOOBguOBjQ0KK+OBq+OBhCzjgojjgZfjgZMNCivjgavjgYTjgacs44Gy44Gn44Gk44GQDQor44Gr44GE44GP44KJLOOBsuOBp+OChA0KK+OBq+OBhOOBmuOBvizjgZ/jgYTjgaHjgo3jgYYNCivjgavjgYvjgb8s44GC44GN44KJDQor44Gr44GX44Gw44KE44GXLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OBoCzjgojjgZfjgoQNCivjgavjgZfjga/jgoks44GX44GN44GTDQor44Gr44GX44Gv44KJLOOBleOBqOOBlw0KK+OBq+OBl+OBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgavjgZfjgYvjgZws44GL44Ga44Gu44KKDQor44Gr44GX44G/44KELOOBleOBqOOBlw0KK+OBq+OBl+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgavjgZfjgoDjgoks44GN44KP44KADQor44Gr44GX44KE44G+LOOBsuOBqOOBlw0KK+OBq+OBl+OChOOBvizjgoLjgajjgYLjgY0NCivjgavjgaPjgZ8s44GL44Gk44GC44GNDQor44Gr44KPLOOBjeOCiOOBlw0KK+OBqOOBhuOBlOOBhizjgb7jgarjgbYNCivjgavjgo8s44GL44Gk44KEDQor44Gu44G244Gv44KJLOOBk+OBhuOBmA0KK+OBiuOBjOOCjyzjgobjgYbjgZMNCivjga7jgYzjgb8s44GK44GV44KADQor44Gu44GM44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBruOCguOBqCzjgb/jgYsNCivjga7jgoDjgoks44G+44Gq44G2DQor44Gu44KA44KJLOOBn+OBi+OBsuOCjQ0KK+OBruOBnuOBiCzjga/jgZjjgoENCivjgazjgb7jgZ8s44Gm44GkDQor44GK44Gg44GY44G+LOOBiOOCig0KK+OBiuOBiuOBjOOBiOOCiizjgajjgYrjgosNCivjgYrjgYzjgZ8s44Gy44Gn44GNDQor44GK44GM44KPLOOBl+OBkuOCiw0KK+OBiuOBjOOCjyzjgZ/jgZHjgYoNCivjgYrjgYrjgY4s44Gf44GR44GXDQor44GK44GO44GP44G8LOOCiOOBhuOBmOOCjeOBhg0KK+OBiuOBlCzjgajjgoLjgY0NCivjgYrjgZDjgoks44Gy44KN44KG44GNDQor44GK44GK44GwLOOBqOOCguOBsuOCjQ0KK+OBiuOBiuOBsOOChOOBlyzjgojjgorjgZMNCivjgYrjgYrjgYgs44KI44GG44GE44GhDQor44GK44GK44GM44G+LOOBk+OBhuOBhOOBoQ0KK+OBiuOBr+OBlyzjgarjgYrjgY0NCivjgYrjgYrjgYTjgZcs44GR44KT44GYDQor44GK44GK44GL44KPLOOChOOBmeOBsuOBkw0KK+OBiuOBiuOBjeOBqSzjgb7jgZXjgYoNCivjgYrjgYrjgY/jgbws44Gy44KN44KG44GNDQor44GK44GK44GP44G8LOOBsuOCjeOBteOBvw0KK+OBiuOBiuOBj+OBvizjgb7jgZPjgagNCivjgYrjgb4s44G+44KC44KLDQor44GK44G+44GILOOCgOOBpOOCjeOBhg0KK+OBiuOBvuOBiCzjgZ/jgYvjgZcNCivjgYrjgYrjgoLjgoos44Go44KC44Gy44KNDQor44GK44GK44KC44KKLOOBv+OBpOOCiOOBlw0KK+OBiuOBiuOCguOCiizjgarjgYrjgY0NCivjgYrjgYrjgoLjgoos44Gy44KN44GNDQor44GK44GK44KC44KKLOOBvuOBleOChOOBmQ0KK+OBiuOBiuOCguOBqCzjgb/jgaTjgosNCivjgYrjgYrjgavjgZcs44GC44GE44GTDQor44GK44GK44Gr44GXLOOBkeOCk+OBmA0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgabjgosNCivjgYrjga4s44GC44GN44KJDQor44GK44GK44Gs44G+LOOBsuOCjeOBjQ0KK+OBiuOBiuOBleOBiyzjgorjgZUNCivjgYrjgYrjgZXjgo8s44Gf44GL44Gy44KNDQor44GK44GK44GV44KPLOOBmeOBv+OBkw0KK+OBiuOBl+OBvizjgZ/jgYvjgZcNCivjgYrjgZfjgo0s44GX44KT44GE44GhDQor44GK44GK44GfLOOBguOBleOBkw0KK+OBiuOBiuOBnyzjgYLjgaTjgYoNCivjgYrjgYrjgZ8s44Gy44Gn44KG44GNDQor44GK44GK44GfLOOBvuOBleOBvw0KK+OBiuOBiuOBnyzjgoDjga3jgoTjgZkNCivjgYrjgYrjgZ8s44GX44KT44GE44Gh44KN44GGDQor44GK44GK44Gf44GrLOOChOOBmeOBsuOCjQ0KK+OBiuOBiuOBpCzjgbLjgo3jgobjgY0NCivjgYrjgYrjgaTjgYss44Gf44GL44GXDQor44GK44GK44Gk44GNLOOBguOBjeOBsuOCjQ0KK+OBiuOBhOOBi+OCjyzjgb/jgaHjgYoNCivjgYrjgYss44KI44GX44Gy44GVDQor44GK44GLLOOBsuOBp+OBjQ0KK+OBiuOBiyzjgbXjgb/jgZMNCivjgYrjgYvjgaAs44G/44GNDQor44GK44GL44GgLOOChOOBmeOBlw0KK+OBiuOBi+OBoCzjgobjgYbjgYTjgaENCivjgYrjgYvjgaAs44GV44Go44KLDQor44GK44GL44GQ44GhLOOBruOBtuOBsuOCjQ0KK+OBiuOBi+OBhCzjgobjgZ/jgYsNCivjgYrjgYvjgb7jgaQs44Gf44GL44Gy44KNDQor44GK44GL44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBiuOBi+OCguOBqCzjgYjjgYTjgYTjgaENCivjgYrjgYvjgoLjgags44Gy44Gn44GKDQor44GK44GL44KC44GoLOOBvuOBleOBtuOBvw0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgYrjgYvjgoLjgags44G/44Gh44Gv44KLDQor44GK44GL44KC44GoLOOBruOCiuOBig0KK+OBiuOBi+OBrizjgajjgoLjgbLjgo0NCivjgYrjgYvjgZbjgY0s44KG44GN44GoDQor44GK44GN44KC44GoLOOBiOOBpOOBkw0KK+OBiuOBj+OBrizjgojjgZfjgZ/jgb8NCivjgYrjgY/jgoTjgb4s44KE44GZ44GKDQor44GK44GK44G/LOOBl+OBkuOCiw0KK+OBiuOBiuOBrizjgarjgYrjgY0NCivjgYrjgYrjga4s44Gy44KN44G144G/DQor44GK44GK44GuLOOBsuOCjeOBlw0KK+OBiuOBiuOBruOBmyzjgZjjgoXjgpPjgZMNCivjgYrjga7jgZbjgY0s44Gf44GL44GXDQor44GK44KK44GILOOCiOOBl+OBkw0KK+OBiuOBluOBjSzjgb7jgZXjgZMNCivjgajjgY/jgb/jgoQs44Gm44Gk44KEDQor44GV44GE44GhLOOBi+OBiuOCig0KK+OBleOBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgZXjgYTjgajjgYYs44Gy44Go44GNDQor44GV44GE44Go44GGLOOBsuOBp+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZ/jgYsNCivjgZXjgYTjgajjgYYs44KG44Gf44GLDQor44GV44GE44Go44GGLOOChOOBmeOBsuOBkw0KK+OBleOBhOOBqOOBhizjgZ/jgYTjgZcNCivjgZXjgYTjgajjgYYs44GL44GK44KLDQor44Gv44GL44G+44GgLOOBi+OCiA0KK+OBleOBi+OBkOOBoSzjgZPjgYbjgZgNCivjgZXjgYvjgYQs44G+44KK44GTDQor44GV44GL44GN44Gw44KJLOOBn+OBi+OBig0KK+OBleOBi+OBjeOCguOBqCzjgojjgZfjgYgNCivjgZXjgYvjgoLjgags44GI44GE44GYDQor44GV44GL44KC44GoLOOBiOOCig0KK+OBleOBi+OCguOBqCzjgbLjgafjgbLjgo0NCivjgZXjgYvjgoLjgags44GE44Ga44G/DQor44GV44GL44KC44GoLOOBkeOBhOOBhOOBoQ0KK+OBv+OBn+OBqyzjgZHjgpPjgYTjgaENCivjgZXjgYvjgYbjgaEs44GP44Gr44Gy44GTDQor44GV44GN44KC44GoLOOBvuOBleOBsuOBkw0KK+OBleOBj+OBvizjgb/jgaTjgosNCivjgZXjgY/jgonjgYQs44KC44Go44Gu44KKDQor44GV44GuLOOCiuOBjeOChA0KK+OBleOBrizjgorjgoXjgYbjgYTjgaENCivjgZXjga4s44GX44KF44GG44Ge44GGDQor44GV44GV44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OBleOBleOBr+OCiSzjgZnjgZnjgoANCivjgZXjgZXjgY0s44Gf44GL44Gy44GoDQor44GV44GV44GNLOOBqOOBl+OBsuOBkw0KK+OBleOBleOBjSzjgoTjgZnjgbXjgb8NCivjgajjgaDjgass44Gk44KI44GXDQor44GV44GV44GNLOOBm+OBhOOBmA0KK+OBleOBn+OBkSzjgaTjga3jga7jgooNCivjgZXjgajjgYYs44KE44GZ44Gy44KNDQor44GV44Go44GGLOOBl+OCk+OBlA0KK+OBleOBqOOBhizjgbLjgZXjga/jgosNCivjgZXjgajjgYYs44KG44GG44GE44GhDQor44GV44Go44GGLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjgYvjgZoNCivjgZXjgajjgYYs44KK44GI44GTDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OBleOBqOOBhizjgobjgYbjgYTjgaENCivjgZXjgajjgYYs44Gv44KL44GKDQor44GV44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBleOBqOOBhizjga7jgbzjgosNCivjgZXjgajjgYYs44GT44GG44GYDQor44GV44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBleOBqOOBhizjgYLjgY3jgokNCivjgZXjgajjgYYs44GR44GE44Gf44KN44GGDQor44GV44Go44GGLOOBqOOCguOBkw0KK+OBleOBqOOBhizjgZjjgoXjgpPjgZgNCivjgZXjgajjgYYs44Go44KC44GNDQor44GV44KP44GgLOOBkeOBhOOBn+OCjeOBhg0KK+OBleOCj+OBoCzjgb7jgZMNCivjgZXjgo/jgaAs44G/44Gh44KIDQor44GE44KP44GfLOOBvuOChuOBvw0KK+OBleOCj+OBhCzjgajjgZfjgbLjgZMNCivjgZXjgo/jgYQs44Gd44GG44GE44Gh44KN44GGDQor44GV44KE44GuLOOBhOOBj+OChA0KK+OBm+OBjSzjgZ/jgZHjgZcNCivjgZvjgY3jgZDjgaEs44G+44GV44KI44GXDQor44Gb44GN44GQ44GhLOOBv+OBiw0KK+OBm+OBjeOBkOOBoSzjgYLjgY3jgokNCivjgZvjgY3jga0s44GC44GN44Gy44KNDQor44Gb44GN44GuLOOBn+OBi+OBlw0KK+OBm+OCk+OBqizjgajjgZfjgb/jgaQNCivjgZvjgorjgZbjgo8s44Gy44KN44KG44GNDQor44Gb44GoLOOBi+OBpOOChA0KK+OBl+OBsOOBnyzjgZPjgYbjgYTjgaENCivjgZfjgbDjgZ8s44G+44GV44Gy44GnDQor44GX44Gw44GfLOOBkeOBhOOBmeOBkQ0KK+OBl+OBsOOBn+OBqyzjgZXjgajjgZcNCivjgZfjgbbjgZ/jgass44GN44KH44GG44GTDQor44GX44GMLOOBleOBqOOCiw0KK+OBl+OBkuOBruOBtizjgYvjgZrjgojjgZcNCivjgZfjgb4s44G/44GN44GTDQor44GX44G+44GgLOOCjOOBhOOBmOOCjeOBhg0KK+OBl+OBvuOBoCzjgZXjgajjgZMNCivjgZfjgb7jgoDjgoks44KI44GX44G/44GkDQor44GX44G/44GaLOOBn+OBkeOBi+OBmg0KK+OBl+OBv+OBmizjgZXjgaDjgb/jgaENCivjgZfjgoLjgbDjgoTjgZcs44GN44KI44GXDQor44GX44KC44GM44KPLOOBk+OBhuOBmA0KK+OBl+OCguOBsuOBlOOBlyzjgabjgaTjgbLjgZUNCivjgZfjgoLjgYTjgacs44Gf44GE44GXDQor44GX44Gq44GgLOOBi+OBpOOBvw0KK+OBl+OBreOBhCzjgobjgYsNCivjgZfjgpPjgYzjgYQs44Gf44Gg44GXDQor44GX44Gu44GgLOOBk+OBhuOBmA0KK+OBl+OBruOBr+OCiSzjgZ/jgYvjgbLjgo0NCivjgZfjga7jgZbjgY0s44Go44KC44KI44GXDQor44GX44GK44KELOOBn+OBj+OChA0KK+OBl+OCieOBr+OBvizjgZ/jgo3jgYYNCivjgZfjgonjgYTjgZcs44KG44GG44GE44GhDQor44GX44KJ44GE44GXLOOBn+OBi+OBlw0KK+OBl+OBn+OCiSzjgZ/jgZHjgZcNCivjgZfjgofjgYbjgZgs44Gy44KN44KG44GNDQor44GX44KH44GG44GYLOOBl+OCkw0KK+OBvuOBmeOChOOBvizjgb7jgZXjgbLjgacNCivjgZfjgoXjgajjgYYs44KG44G/44GTDQor44Gd44GI44GgLOOBsuOBp+OBi+OBmg0KK+OBneOBrSzjgbLjgafjgY0NCivjgZ3jga3jgaAs44Gf44GP44GKDQor44Gd44Gu44G5LOOBvuOBleOBsuOCjQ0KK+OBneOBruOBuSzjgb7jgZXjgZcNCivjgZ3jgonjga4s44G/44G7DQor44GZ44GgLOOBquOBiuOBsuOCjQ0KK+OBmeOBjOOBhCzjga7jgorjgobjgY0NCivjgZnjgYzjgo/jgoks44Gb44GE44G+DQor44GZ44GO44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBmeOBjuOCguOBqCzjgZ/jgYvjgb7jgZUNCivjgZnjgY7jgYbjgoks44KI44GX44Gu44KKDQor44GZ44GO44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOChOOBvizjgbLjgafjgb7jgZUNCivjgZnjgY7jgoTjgb4s44KM44GE44GTDQor44GZ44GY44KD44GPLOOBn+OBi+OChOOBmQ0KK+OBmeOBiyzjgajjgYrjgosNCivjgZnjgZHjgYzjgo8s44Gy44KN44KG44GNDQor44GZ44G/44Gq44GMLOOBjeOBv+OBkw0KK+OBmeOBv+OBiuOBiyzjgajjgoLjgoQNCivjgZnjgarjgoTjgb4s44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBvuOBleOChA0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgYTjgZfjgYQs44KE44GZ44Gy44GTDQor44GZ44Ga44GNLOOBl+OBkuOCiw0KK+OBmeOBmuOBjSzjgZ/jgYvjgobjgY0NCivjgZnjgZrjgY0s44Gy44Gn44Gy44KNDQor44KE44G+44GX44KNLOOBsuOBp+OBjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0sDQor44GZ44Ga44GNLOOBi+OBpOOChuOBjQ0KK+OBmeOBmuOBjSzjgYvjgZrjga7jgooNCivjgZnjgZrjgY0s44GT44GG44GE44GhDQor44Gf44Gw44GTLOOBj+OBv+OBkw0KK+OBn+OBsOOBnyzjgb7jgZXjgY0NCivjgarjgYvjgZjjgb4s44Gm44KL44KG44GNDQor44Gf44Gw44GfLOOCiOOBl+OBpOOBkA0KK+OBn+OBoeOBsOOBqizjgajjgZfjgobjgY0NCivjgZ/jgYzjgb8s44Gf44GE44Gb44GEDQor44G+44G+44GgLOOBkeOCk+OBmA0KK+OBn+OBjOOCjyzjgb7jgZPjgagNCivjgZ/jgZjjgb4s44KC44Go44Gy44KNDQor44Gf44GL44Gw44KE44GXLOOChuOBjQ0KK+OBn+OBi+OBoCzjgajjgoLjgogNCivjgZ/jgYvjgaAs44Gf44GL44Gy44KNDQor44Gf44GL44GOLOOBiOOBvw0KK+OBn+OBi+OBjizjgaDjgYTjgZnjgZENCivjgZ/jgYvjga/jgZcs44GX44KT44KEDQor44Gf44GL44Gv44GXLOOChuOBjeOBig0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GTDQor44Gf44GL44Gv44GXLOOBhOOBmuOCiw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgY0NCivjgZ/jgYvjga/jgZcs44G/44GX44KH44GGDQor44KP44Gf44Gq44G5LOOBvuOBjQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgZcNCivjgZ/jgYvjga/jgZcs44KG44Gf44GLDQor44Gf44GL44Gv44GXLOOBk+OBhuOBuOOBhA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgbXjgb8NCivjgZ/jgYvjgYQs44Gy44Gn44GNDQor44Gf44GL44GP44KJLOOBkeOCk+OBmeOBkQ0KK+OBn+OBi+OBj+OCiSzjgZfjgbsNCivjgZ/jgYvjgb7jgaEs44GL44Gk44Gu44KKDQor44Gf44GL44G+44GkLOOBguOBjeOCiOOBlw0KK+OBvuOBpOOBquOBjCzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjgoLjgags44KI44GX44GNDQor44Gf44GL44KA44KJLOOBruOBtuOBi+OBpA0KK+OBn+OBi+OBiuOBiyzjgZTjgYYNCivjgZ/jgYvjgZnjgY4s44Gv44KL44GTDQor44Gf44GL44KELOOBsuOBp+OBguOBjQ0KK+OBn+OBi+OChOOBvizjgbLjgo3jgobjgY0NCivjgY3jgZ/jga/jgoks44GR44KT44GE44GhDQor44Gf44GR44GgLOOBj+OBq+OBsuOBpw0KK+OBn+OBkeOBoCzjgb7jgZXjgbLjgo0NCivjgZ/jgZHjga/jgaos44G+44GV44GL44GkDQor44Gf44GR44G+44GkLOOBvuOBleOBvw0KK+OBn+OBkeOBiuOBiyzjgb/jga7jgosNCivjgYTjgZfjgYvjgo8s44KC44Go44G144G/DQor44Gf44GR44GX44GfLOOBquOBiuOBjQ0KK+OBn+OBkeOBn+OBqyzjga7jgbbjgobjgY0NCivjgZ/jgZHjgYbjgaEs44GV44Go44GXDQor44Gf44GR44GG44GhLOOBleOBqOOBlw0KK+OBn+OBkeOChOOBvizjgZ/jgZHjgZcNCivjgZ/jgZHjgZbjgo8s44GN44KI44GYDQor44Gf44GN44GW44KPLOOBpOOBqOOCgA0KK+OBn+OBjeOBluOCjyzjgaHjgYvjgokNCivjgZ/jgb7jgYQs44Go44KC44KG44GNDQor44Gf44Gq44Gv44GXLOOBruOBtuOChuOBjQ0KK+OBn+OBquOBiyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgarjgYss44GT44GZ44GRDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgZ/jgarjgYss44GR44GE44GTDQor44Gf44Gq44GLLOOCguOBqOOBjQ0KK+OBn+OBquOBiyzjgZvjgYTjgZgNCivjgZ/jgarjgYss44GL44Ga44Gy44GoDQor44Gf44Gq44GLLOOChuOBhuOBkw0KK+OBn+OBquOBiyzjgYjjgYTjgYTjgaENCivjgZ/jgarjgYss44GI44GE44GYDQor44Gf44Gq44GLLOOBpOOBreOBsuOCjQ0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgo0NCivjgZ/jgarjgYss44Gu44KK44Gy44KNDQor44Gf44Gq44GLLOOBi+OBmuOBquOBig0KK+OBn+OBquOBiyzjga7jgbzjgosNCivjgYTjgZfjgaAs44GR44KT44KEDQor44Gf44Gq44GLLOOBi+OBmuOBig0KK+OBn+OBq+OBkOOBoSzjgZfjgZLjgosNCivjgZ/jgavjgZDjgaEs44GR44KT44GE44GhDQor44Gf44Gr44GELOOChuOCiuOBkw0KK+OBn+OBq+OCgOOCiSzjgb/jgaHjgogNCivjgZ/jgavjgYrjgYss44Go44KC44GTDQor44Gf44KT44GuLOOChuOBjeOBig0KK+OBn+OBrOOBvizjgb7jgoLjgosNCivjgojjgZPjgoTjgb4s44KP44Gf44KLDQor44Gf44GX44KNLOOBguOBjeOCiQ0KK+OBn+OBl+OCjSzjgZHjgpPjgYTjgaENCivjgZ/jgaYs44Gy44Gn44GoDQor44Gf44GG44KJLOOBvuOBk+OBqA0KK+OBn+OBnuOBiCzjgobjgYbjgZMNCivjgZ/jgZrjgZEs44G+44GT44GoDQor44Gm44KT44KCLOOBi+OCiOOBkw0KK+OBpuOCieOBoCzjgaHjgYjjgZMNCivjgabjgonjgoLjgags44GI44GE44GYDQor44Gm44KJ44GK44GLLOOBkeOBhA0KK+OBpuOBmuOBiyzjgbLjgo3jgobjgY0NCivjgajjgZDjgaEs44GY44KF44KT44GTDQor44Go44GG44G+LOOBk+OBhuOBhOOBoQ0KK+OBqOOBhuOBvizjgbLjgo3jgoTjgZkNCivjgajjgYrjgoTjgb4s44GL44Ga44KG44GNDQor44Go44GN44GK44GLLOOBn+OBi+OBl+OBkg0KK+OBn+OBq+OChOOBvizjgbLjgafjgYLjgY0NCivjgb/jgYbjgoks44Gd44GG44GE44GhDQor44Go44GP44KJLOOBi+OBmuOBig0KK+OBqOOBj+OChOOBvizjgbLjgo3jgoQNCivjgajjgb/jgYTjgZcs44GP44Gr44Gy44GTDQor44Go44G/44GL44KPLOOBruOCiuOBkw0KK+OBqOOBv+OBquOBjCzjgYLjgaTjgZcNCivjgajjgb/jgZ8s44G144G/44GIDQor44Go44G/44GfLOOCguOBqOOCiOOBlw0KK+OBiuOBiuOCguOCiizjgb7jgZXjgobjgY0NCivjgajjgoLjgZ8s44Gy44Gn44Gy44GTDQor44Go44KC44GuLOOBkeOBhOOBmA0KK+OBqOOCiuOBi+OBhCzjgarjgYrjgY0NCivjgajjgorjgYbjgb8s44KI44GX44Gu44G2DQor44Go44Gk44GLLOOBguOChOOBkw0KK+OBqOOCiOOBoCzjgZHjgYTjgYTjgaENCivjgajjgojjgaAs44G/44GN44Gy44KNDQor44Go44KI44GK44GLLOOBn+OBj+OBruOBtg0KK+OBpOOBoeOBoCzjgZPjgYbjgZgNCivjgaTjgaAs44GT44GG44GE44GhDQor44Gk44GY44Gf44GrLOOBvuOBleOBpOOBkA0KK+OBpOOBi+OCguOBqCzjgojjgZfjgabjgosNCivjgaTjgYvjgoLjgags44Gy44KN44GC44GNDQor44Gk44GL44KP44GNLOOBvuOBleOBn+OBiw0KK+OBpOOCi+OBvuOBjSzjgojjgYbjgZMNCivjgYTjgaHjgbDjgpPjgYzjgZss44KG44GN44GTDQor44GV44GL44GELOOBv+OBu+OBkw0KK+OBhuOBoeOBoCzjgYvjgZrjgbLjgo0NCivjgYvjgarjgYrjgYss44GT44GG44G444GEDQor44GG44Gh44GgLOOBn+OBpOOChA0KK+OBhuOBoeOBhuOBvyzjgarjgYrjgbLjgZMNCivjgYbjgaHjgoTjgb4s44G144G/44Gf44GLDQor44GG44Gh44KE44G+LOOChuOBjQ0KK+OBhuOBoCzjgYLjgaTjgZMNCivjgYbjgaDjgYzjgo8s44Gf44KN44GGDQor44GK44GX44G+LOOBguOBpOOBkw0KK+OBhuOBiOOBoCzjgYjjgYTjgYsNCivjgYbjgYjjgaAs44KI44GX44G/44GkDQor44GG44GI44Gv44KJLOOBsuOBp+OChuOBjQ0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgY0NCivjgYbjgYjjga4s44GK44GV44KADQor44GG44GI44GuLOOBsuOCjeOBruOCig0KK+OBhuOBiOOBmeOBjizjgb7jgZXjgb8NCivjgYbjgYjjgaTjgY0s44Gf44GE44GhDQor44GG44GL44KPLOOBvuOBleOBsuOBpw0KK+OBhuOBvuOBmuOCgSzjgZfjgpPjgoQNCivjgYbjgoHjga/jgoks44Go44GX44GKDQor44GG44KB44KA44KJLOOBsuOCjeOBteOBvw0KK+OBhuOCgeOBluOCjyzjgbLjgo3jgZcNCivjgYbjga4s44Gy44KN44GXDQor44GG44GuLOOBsuOBleOChA0KK+OBhuOCieOCguOBqCzjgZHjgYQNCivjgYbjgovjgb4s44G+44GV44G144G/DQor44GG44GX44GwLOOBv+OBruOCiw0KK+OBquOBjOOBnyzjgorjgoXjgYbjgZ8NCivjgYbjgZfjgZDjgZUs44Go44GX44GC44GNDQor44Gv44Gb44GM44KPLOOCiOOBl+OBguOBjQ0KK+OBleOBi+OBvuOBjSzjgobjgooNCivjgYbjgo/jgbks44G+44GV44KG44GNDQor44KP44GgLOOBguOBjeOBkw0KK+OCj+OBi+OBiizjgZHjgYTjgZgNCivjgo/jgYvjgYos44KM44GE44GTDQor44KP44GN44GfLOOCiOOBhuOBkw0KK+OBhOOBruOBvuOBnyzjgbLjgo3jgb8NCivjgo/jgY/jgYQs44G+44GV44KEDQor44KP44GX44GW44KPLOOBkeOBhOOBkw0KK+OCj+OBl+OBmuOBiyzjgZPjgYbjgZgNCivjgo/jgZ/jgbks44G+44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBruOCiuOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgo0NCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44KP44Gf44Gq44G5LOOBn+OBi+OBig0KK+OCj+OBn+OBquOBuSzjgaTjgojjgZcNCivjgo/jgZ/jgarjgbks44Go44KC44KG44GNDQor44KP44Gf44Gq44G5LOOBoOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgY0NCivjgo/jgZ/jgarjgbks44Gy44KN44GL44GaDQor44KP44Gf44Gq44G5LOOBsuOCjeOBvw0KK+OBqOOCiOOBnyzjgbLjgajjgZcNCivjgo/jgZ/jgoos44GR44GE44GTDQor44Go44G/44KE44GZLOOBqOOBl+OBsuOBlQ0KK+OChOOBiOOBjOOBjSzjgojjgZfjgYLjgY0NCivjgoTjgY4s44G/44KI44GTDQor44KE44GOLOOCiOOBl+OBvuOBlQ0KK+OChOOBjuOBrOOBvizjgaDjgYTjgZnjgZENCivjgoTjgY8s44GC44GN44GoDQor44KE44G+44GgLOOBi+OBmuOBsuOBkw0KK+OChOOBvuOBoCzjgb7jgY0NCivjgoTjgb7jgaAs44KI44GG44GTDQor44KE44G+44GO44GXLOOBguOBpOOBlw0KK+OChOOBvuOBkOOBoSzjgZPjgYbjgYTjgaENCivjgoTjgb7jgZDjgaEs44Go44GX44KG44GNDQor44KE44G+44GQ44GhLOOBi+OBiuOCiw0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgokNCivjgoTjgb7jgZPjgZcs44Gg44GE44GZ44GRDQor44KE44G+44KC44GoLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZHjgpPjgZgNCivjgoTjgb7jgoLjgags44Gf44GR44GKDQor44KE44G+44KC44GoLOOBm+OBhOOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZfjgoXjgYbjgZgNCivjgZ/jgaHjgbDjgaos44G+44GV44Go44GXDQor44KE44G+44KC44GoLOOBmOOCheOCkw0KK+OChOOBvuOCguOBqCzjgZHjgpPjgYTjgaENCivjga/jgonjgZ/jgass44Go44KC44GTDQor44KE44G+44Gq44GLLOOBn+OBi+OBlw0KK+OChOOBvuOBrSzjgojjgZfjgbXjgb8NCivjgoTjgb7jgZfjgZ8s44GC44GN44Gy44GTDQor44KE44G+44GX44GfLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgarjgYrjgZMNCivjgoTjgb7jgZ/jgass44Gf44GL44GXDQor44KE44G+44GG44GhLOOBqOOCguOBkw0KK+OChOOBvuOBluOBjSzjgYLjgY3jgokNCivjgoTjgaos44Gy44KN44GC44GNDQor44KE44Gq44G5LOOBsuOCjeOBjQ0KK+OChOOBquOBjOOCjyzjgorjgofjgYYNCivjgoTjgarjgY4s44Go44GX44GC44GNDQor44KE44Gq44GO44GgLOOCiuOCheOBhuOBhOOBoQ0KK+OChOOBleOBiyzjgYvjgZrjgbLjgacNCivjgoTjgZnjgaAs44G+44GV44G/44GkDQor44KE44GZ44G144GPLOOChuOBn+OBiw0KK+OChOOBmeOBi+OCjyzjgY3jgojjgYvjgZoNCivjgojjgZPjgZXjgo8s44Gf44GP44KEDQor44KI44GT44GfLOOBsuOCjeOBlw0KK+OCiOOBk+OBnyzjgYvjgZrjgbLjgo0NCivjga/jgonjgaAs44GT44GZ44GRDQor44KI44GT44GG44GhLOOBvuOBleOBsuOCjQ0KK+OCiOOBk+OBhuOBoSzjgZfjgpPjgZnjgZENCivjgojjgZPjgoTjgb4s44G+44GT44GoDQor44KI44GT44KE44G+LOOBi+OBmuOBruOBtg0KK+OCiOOBreOBoCzjgarjgYrjgY0NCivjgojjga3jga4s44Gq44GK44G/DQor44GL44GV44Gv44KJLOOBleOBqOOBvw0KK+OCiOOBl+OBoCzjgbLjgafjgYoNCivjgojjgZfjgaAs44GY44KF44KTDQor44KI44GX44GgLOOBsuOCjeOBlw0KK+OCiOOBl+OBoCzjgarjgYrjgagNCivjgojjgZfjgaAs44Gy44KN44GXDQor44KI44GX44Gp44KBLOOBl+OBmuOBiw0KK+OCiOOBl+OBr+OCiSzjgZ/jgYvjgbLjgo0NCivjgojjgZfjgYQs44GV44Go44KLDQor44KI44GX44GELOOBvuOBk+OBqA0KK+OCiOOBl+OBi+OCjyzjgZfjgYrjgooNCivjgojjgZfjgb8s44Gf44GE44GNDQor44KI44GX44GuLOOBteOBv+OBig0KK+OCiOOBl+OBrizjgoTjgZnjgZcNCivjgojjgZfjga4s44Go44KC44GTDQor44KI44GX44GK44GLLOOBkeOCk+OBhOOBoQ0KK+OCiOOBl+OBiuOBiyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgojjgZfjgZ/jgZEs44Gf44Gg44GXDQor44KI44GX44GW44KPLOOBqOOBl+OBi+OBpA0KK+OChuOBmuOBr+OCiSzjgZPjgYbjgZgNCivjgZzjgpPjgZIs44GL44Ga44Gf44GLDQor44Ga44GXLOOBv+OBig0KK+OBlOOBvyzjgbLjgo3jgY0NCivjgZTjgajjgYYs44Gy44KN44GXDQor44GE44GR44GgLOOBn+OBkeOBr+OCiw0KK+OBhOOBvizjgb7jgZXjgbLjgo0NCivjgYLjgbks44G+44Gq44G2DQor44GL44Go44GGLOOBl+OBkuOCiw0KK+OBi+OCj+OBsOOBnyzjgZfjgZLjgosNCivjgZPjgbDjgoTjgZcs44KG44GN44Gy44GTDQor44GT44KT44GpLOOBj+OBq+OCgOOBrQ0KK+OBj+OBvCzjgb7jgZXjgbLjgZMNCivjgY/jgonjgoLjgaEs44KI44GG44GTDQor44G+44KL44KE44G+LOOCiOOBl+OBguOBjQ0KK+OCguOCiuOBi+OBjyzjgobjgY3jgYoNCivjgoDjgonjgYrjgYss44Gy44KN44KG44GNDQor44Gq44GM44GX44G+LOOCiOOBhuOBkw0KK+OBquOBiyzjgajjgZfjgoQNCivjgarjgYvjga/jgoks44Gf44GP44KEDQor44Gq44GL44KA44KJLOOBpOOCiOOBlw0KK+OBquOBi+OBmyzjgajjgb8NCivjgarjgorjgZ8s44Gy44GV44GIDQor44Gr44GX44KA44KJLOOBiOOBv+OBkw0KK+OBruOBquOBiyzjgbLjgafjgarjgYoNCivjgYrjgYzjgo8s44KI44GX44GKDQor44GK44GQ44KJLOOBqOOBiuOCiw0KK+OBiuOBiuOBvyzjgb7jgZPjgagNCivjgYrjgYvjga4s44G+44GV44KEDQor44GX44G+44GgLOOBmOOCheOCk+OBmA0KK+OBl+OBv+OBmizjgYvjgZrjga7jgZfjgpMNCivjgZfjgoDjgoks44Gy44Gn44KG44GNDQor44Gf44GL44Gv44GXLOOBv+OBpOOBvuOBlQ0KK+OBn+OBi+OBvuOBpCzjgZHjgpPjgYTjgaENCivjgYbjgYjjgaAs44KA44Gk44GKDQor44GG44GYLOOBlOOBhg0KK+OBhuOBpOOBvyzjgZfjgoXjgYbjgYTjgaENCivjgYLjgbks44KI44GG44GE44GhDQor44GT44KT44GpLOOBn+OBi+OBlw0KK+OBn+OBi+OBruOBhuOBoSzjgZHjgpPjgZXjgY8NCivjgYTjga7jgYbjgYgs44KA44Gt44Gy44KNDQor44Gq44GL44Gv44KJLOOBsuOBqOOBlw0KK+OBguOBoOOBoSzjgobjgZ/jgYsNCivjgarjgYvjga4s44Gy44KN44GNDQor44GC44GE44GwLOOBruOCiuOBguOBjQ0KK+OBguOBhOOBsCzjgZ/jgZHjgZcNCivjgYLjgYTjgbAs44GV44Go44GXDQor44GC44GE44GgLOOBvuOBleOBsuOCjQ0KK+OBguOBhOOBr+OCiSzjgYLjgaTjgZcNCivjgYLjgYvjgYTjgZcs44G+44GV44GK44G/DQor44GC44GL44GE44KPLOOCiOOBl+OBsuOCjQ0KK+OBguOBi+OBiuOBjizjgajjgZfjgbLjgacNCivjgYLjgY3jgZ8s44Gk44KI44GXDQor44GC44G+44GuLOOBquOBiuOBkw0KK+OBguOBiuOBjSzjgbLjgo3jgZMNCivjgYLjgYrjgY0s44KG44GN44GTDQor44GC44GK44Gs44G+LOOBsuOBqOOBlw0KK+OBguOBiuOChOOBjizjgYjjgYTjgZgNCivjgYLjgonjgY0s44GC44GN44KJDQor44GC44KK44G+44GhLOOBqOOBl+OBruOBtg0KK+OBguOCiuOBnyzjgbLjgafjgYLjgY0NCivjgYLjgZXjgaAs44Gm44Gk44KEDQor44GC44GV44GI44GgLOOBn+OBi+OBsuOCjQ0KK+OBguOBleOBr+OCiSzjgojjgZfjga/jgosNCivjgYLjgZXjgYvjgo8s44GL44Ga44Gy44GTDQor44GC44GV44KC44GoLOOBpOOBqOOCgA0KK+OBguOBleOBrizjgobjgZ/jgYsNCivjgYLjgZ/jgZDjgaEs44Gy44KN44GXDQor44GC44KE44GNLOOBr+OCi+OBkw0KK+OBsOOBsCzjgZfjgoXjgpPjgZnjgZENCivjgbDjgbAs44GL44GK44KLDQor44Gw44GwLOOBquOBquOBkw0KK+OBsOOCkyzjgZ/jgZHjgZcNCivjgaDjgYTjgZPjgY8s44G/44Gh44KIDQor44Gg44GmLOOBl+OBkuOBsuOBkw0KK+OBleOBrizjgZjjgoXjgpPjgYTjgaENCivjgb/jgaTjgYrjgYss44GX44GS44GNDQor44Gn44KT44GgLOOBi+OBmuOBsuOBkw0KK+OBqeOBhCzjgYjjgb8NCivjgYjjgpPjgaks44Go44KC44Gy44GTDQor44GI44KT44GpLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBiOOBluOCjyzjgarjgorjgbLjgacNCivjgbXjgZjjgYgs44Gf44GR44G144G/DQor44G144GY44GELOOBi+OBmuOBsuOCjQ0KK+OBteOBmOOBhCzjgb7jgZXjgYLjgY0NCivjgbXjgZjjgb7jgY0s44G+44GV44GL44GkDQor44G144GY44KC44GoLOOBv+OCjw0KK+OBteOBmOOCguOBqCzjgb/jgY3jgYoNCivjgbXjgZjjgoDjgo0s44GT44GG44GYDQor44KC44KN44Ga44G/LOOBi+OCk+OBmA0KK+OBteOBmOOBleOCjyzjgZHjgpPjgZgNCivjgbXjgZjjgZ8s44Gy44KN44KG44GNDQor44G144GL44GbLOOBn+OBpOOChA0KK+OBteOBj+OBoCzjgZfjgZvjgYQNCivjgbXjgY/jganjgoEs44Gf44GL44GXDQor44G144GP44GELOOBsuOBleOBlw0KK+OBteOBj+OBquOBjCzjgbXjgb/jgbLjgZUNCivjgbXjgY/jgZfjgb4s44Gy44Gn44GKDQor44G144GP44GW44KPLOOBvuOCiuOBiw0KK+OBteOCi+OBsOOChOOBlyzjgYLjgY3jgokNCivjgbXjgovjgYvjgo8s44Gy44Gn44GNDQor44G144KL44GL44KPLOOBguOBkeOBvw0KK+OBlOOBhizjga/jgaoNCivjgZTjgb7jgoss44GZ44GZ44KADQor44GU44Go44GGLOOBl+OCh+OBhg0KK+OBlOOBqOOBhizjgZ/jgaTjgoQNCivjgZTjgajjgYYs44Gh44Ga44GLDQor44Gu44KC44GoLOOBi+OBiuOCiw0KK+OBr+OBjuOCj+OCiSzjgorjgoXjgYbjgZ8NCivjga/jgYTjgoTjgb4s44GN44KH44GG44GTDQor44Gv44G+LOOBi+OBmuOBv+OBoQ0KK+OBr+OBvuOBoSzjgZfjgoXjgYbjgYTjgaENCivjga/jgb7jgaAs44Gq44GK44Gy44GVDQor44Gv44G+44Gf44GrLOOBl+OBkuOBig0KK+OBr+OBquOBhCzjgoTjgZnjgbLjgagNCivjga/jgarjgZ8s44Gy44KJ44GPDQor44Gv44Gt44GYLOOBsuOCjeOBkw0KK+OBr+OCk+OBluOCjyzjgb7jgZXjgbLjgZMNCivjga/jgoks44G/44G7DQor44Gv44KJLOOBl+OCk+OBmA0KK+OBr+OCieOBoCzjgYvjgZrjgbLjgacNCivjga/jgonjgaAs44GN44KI44GXDQor44Gv44Gb44GM44KPLOOChuOBn+OBiw0KK+OBr+OBm+OBjOOCjyzjgarjgYrjgZMNCivjga/jgZvjgYzjgo8s44Gm44Gk44KEDQor44Gv44GX44GQ44GhLOOBvuOBleOCiOOBlw0KK+OBr+OBl+OCguOBqCzjgoTjgZnjgobjgY0NCivjgZTjgajjgYYs44GR44GEDQor44GL44GY44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBmeOBvyzjgaTjgZDjga7jgooNCivjgYvjgZ/jgoTjgarjgY4s44GI44GE44GE44GhDQor44Gv44Gf44GR44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OCgOOCieOBhCzjgb/jgaTjgobjgY0NCivjga/jgZ/jgass44KK44KF44GG44GE44GhDQor44Gv44Gj44Go44KKLOOChOOBmeOBruOBtg0KK+OBr+OBo+OBqOOCiizjgZ/jgYvjgobjgY0NCivjga/jgoTjgZcs44Gf44GL44KG44GNDQor44GK44GK44GZ44G/LOOBvuOBleOBkw0KK+OBr+OChOOBlyzjgYvjgZrjgarjgooNCivjga/jgoTjgZcs44KI44GX44Gu44G2DQor44Gv44KE44GX44GgLOOBleOBjQ0KK+OBsuOBjCzjgZ/jgZHjgYoNCivjgbLjgYzjgZcs44KK44KF44GG44GZ44GRDQor44Gy44GM44GX44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBqOOCiOOBoCzjgobjgYbjgYTjgaHjgo0NCivjgbLjga4s44Gf44GR44Gy44GTDQor44Gy44KJLOOBpuOBpOOChA0KK+OBsuOCieOCguOBqCzjgZjjgoXjgpPjgZMNCivjgbLjgonjgYos44G+44GV44GoDQor44Gy44KJ44GKLOOBvuOBleOChuOBjQ0KK+OBsuOCieOBnyzjgarjgYrjgb8NCivjgbLjgonjgoTjgb4s44Gf44GR44GXDQor44Gy44KN44GELOOBn+OBi+OBlw0KK+OBsuOCjeOBi+OCjyzjga7jgorjgYvjgZoNCivjgbLjgo3jgYvjgo8s44KI44Gf44KN44GGDQor44Gy44KN44G+44GZLOOBi+OBmuOChuOBjQ0KK+OBsuOCjeOBmyzjgb/jgaTjgosNCivjgbLjgo3jgZss44Gf44GL44GKDQor44Gy44GX44KELOOBleOBqOOBlw0KK+OBu+OBhuOBl+OCh+OBhizjgYLjgY3jgZMNCivjgbvjgpPjgaAs44G/44G744GTDQor44Gv44KE44GXLOOBruOBnuOCgA0KK+OBu+OCk+OBvizjgZ/jgZHjgZcNCivjgbvjgorjgZDjgaEs44Gm44KL44GKDQor44G744KK44GELOOBsuOCjeOBvw0KK+OBu+OBlyzjgYLjgY3jgbLjgZMNCivjgbvjgZ3jgYQs44GL44Gk44KEDQor44G744Gd44G/LOOChOOBmeOBig0KK+OBu+OBo+OBnyzjgb7jgZXjgbLjgacNCivjgbXjgY/jgo3jgYQs44GR44KT44GYDQor44G144KL44KELOOBguOBjeOBsuOBqA0KK+OBhOOBtuOBiyzjgZ3jgYbjgYTjgaENCivjgYTjgaHjgbAs44Gf44GL44GXDQor44GE44Gh44Gv44KJLOOBsuOCjeOBlw0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jgZcNCivjgYTjgaHjgoDjgoks44GY44KF44KT44GE44Gh44KNDQor44GE44Gh44Gu44Gb44GNLOOBqOOBl+OBsuOCjQ0KK+OBhOOBhOOBoCzjgajjgZfjgoQNCivjgYTjgYTjgaAs44GY44KF44KT44GTDQor44GE44GE44GY44G+LOOCiOOBhuOBkw0KK+OBl+OBruOBr+OCiSzjga/jgZjjgoENCivjgYTjgZHjgaAs44KK44GIDQor44GE44GR44GgLOOChuOBjQ0KK+OBhOOBkeOBoCzjgobjgZ/jgYsNCivjgYTjgZHjgaAs44KI44GG44GTDQor44GE44GR44GW44KPLOOBi+OBmuOBn+OBiw0KK+OBhOOBvuOBhCzjgb7jgobjgb8NCivjgYTjgb7jgYQs44GR44GE44GfDQor44GE44G+44GELOOBj+OBq+OBsuOBkw0KK+OBhOOBvuOBjSzjgb/jga7jgosNCivjgYTjgb7jgoDjgoks44GR44KT44GZ44GRDQor44GE44KC44GoLOOBl+OCh+OBhuOBhOOBoQ0KK+OBguOBuSzjgojjgZfjgoTjgZkNCivjgYTjgarjgaAs44KG44GN44GTDQor44GE44Gu44GG44GILOOBqOOCguOBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44G+44GV44Gy44GTDQor44GE44Gu44GG44GILOOBi+OBmuOBig0KK+OBhOOCiuOBiCzjgojjgZfjgbLjgZMNCivjgaTjgovjgYrjgYss44Gy44Go44GXDQor44GK44GK44Gv44GXLOOBsuOBleOBqOOBlw0KK+OBhOOBl+OBoCzjgobjgYbjgZgNCivjgYTjgZfjgaAs44GR44KT44GYDQor44GE44GX44GgLOOBk+OBhuOBmA0KK+OBhOOBl+OBoCzjga/jgZjjgoENCivjgYTjgZfjgZDjgo0s44KI44GX44GNDQor44GE44GX44Gv44KJLOOBl+OBkuOBig0KK+OBhOOBl+OBr+OCiSzjgZjjgoXjgpPjgZMNCivjgYTjgZfjgYQs44G/44Gk44Gy44GTDQor44GE44GX44GL44KPLOOBvuOBleOBruOCig0KK+OBhOOBl+OBi+OCjyzjgYLjgY3jgokNCivjgYTjgZfjgo/jgZ8s44G+44GV44Gu44KKDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgYLjgY3jgZMNCivjgYTjgajjgoTjgb4s44Go44GX44GKDQor44GE44Gk44GNLOOBi+OBmuOBsuOCjQ0KK+OBhOOCj+OBjSzjgZPjgYbjgZ/jgo3jgYYNCivjgYTjgo/jgZXjgY0s44Gf44GR44GXDQor44GE44Ga44GkLOOChuOBhuOBmA0KK+OBmOOBtizjgYjjgb/jgZMNCivjgYvjganjgYQs44Gm44KL44KE44GZDQor44GC44Gg44GhLOOBkeOCk+OBmA0KK+OBi+OBhCzjgZ/jgYvjgobjgY0NCivjgYvjgYTjgZss44Gy44KN44GC44GNDQor44GL44GE44Ga44GLLOOBsuOCjeOBkw0KK+OBi+OBmOOCj+OCiSzjgbLjgo3jgZcNCivjgYvjgY0s44GL44Gk44Go44GXDQor44GL44GN44G/LOOBk+OBhuOBmA0KK+OBmeOBjuOBnyzjgozjgYTjgY0NCivjgYvjgY/jgZ/jgass44KE44GZ44GTDQor44GL44G/44Gw44KE44GXLOOBi+OBpOOBsuOBkw0KK+OBi+OBv+OBjOOBjSzjga7jgorjgbLjgacNCivjgYvjgb/jgoQs44GV44Go44GXDQor44GL44KC44GgLOOBk+OBhuOBhOOBoQ0KK+OBi+OCguOBqCzjgZ/jgoLjgaQNCivjgYvjgpPjgbDjgoTjgZcs44KC44Go44Gy44KNDQor44GL44Gt44GTLOOBl+OCk+OBlA0KK+OBi+OBreOBkyzjgb/jgaTjgoQNCivjgYvjga3jgZMs44GP44Gr44Gy44GTDQor44GL44Gt44GTLOOBv+OBpOOBig0KK+OBi+OBq+OBleOCjyzjgZ/jgaTjgoQNCivjgYvjgoss44Gf44GL44KG44GNDQor44GL44GX44KP44GOLOOBpuOBpOOChA0KK+OBi+OBmeOBvyzjgojjgYbjgYTjgaHjgo3jgYYNCivjgYvjgZ/jgY7jgoos44Gq44GK44KG44GNDQor44GL44Go44GGLOOBv+OBpOOBsuOCjQ0KK+OBi+OBqOOBhizjgYLjgaTjgZcNCivjgYvjgajjgYYs44KG44GG44GTDQor44GL44Go44GGLOOBruOBtuOBig0KK+OBi+OBqOOBhizjgZ/jgaTjgo3jgYYNCivjgZ/jgZDjgaEs44GY44KF44KT44GTDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OBqOOBhizjgZPjgYYNCivjgYvjgajjgYYs44GX44KT44GE44GhDQor44GL44Gk44KJLOOBguOBjeOCiQ0KK+OBneOBlCzjgZHjgpMNCivjgYvjgo/jgbLjgags44G+44GT44GoDQor44GL44KP44GELOOCiuOBiOOBkw0KK+OBi+OCj+OBi+OBvyzjgZPjgYbjgZgNCivjgYvjgo/jgb8s44GX44GS44KLDQor44GL44KP44KA44KJLOOBl+OCk+OBmA0KK+OBi+OCj+OCgOOCiSzjgabjgovjgY0NCivjgYvjgo/jgZXjgY0s44Gy44KN44GXDQor44GL44KP44GV44GNLOOBqOOCguOBi+OBmg0KK+OBi+OCj+OBhuOBoSzjgb7jgZXjgYLjgY0NCivjgYvjgaTjgY0s44GC44GN44Go44KCDQor44GN44GgLOOBuOOBhOOBmA0KK+OBjeOBqeOBk+OCjSzjgbLjgo3jgZcNCivjgoLjgoos44GR44KT44GYDQor44GN44GP44GhLOOBvuOBk+OBqA0KK+OBjeOBj+OBjOOCjyzjgb/jgYgNCivjgY3jgoDjgoks44G/44Gk44Gy44KNDQor44GN44KA44KJLOOBleOBqOOCiw0KK+OBjeOCgOOCiSzjgZ/jgZHjgZcNCivjgY3jgoDjgoks44Gf44GP44G/DQor44GN44Gu44GX44GfLOOBqOOCiOOBjQ0KK+OBjeOBruOBl+OBnyzjgojjgZfjgYLjgY0NCivjgY3jga7jgZfjgZ8s44KI44GX44Gv44KLDQor44GN44Gu44GX44GfLOOChuOBi+OCig0KK+OBjeOBl+OBoCzjgobjgY3jgZMNCivjgY3jgZfjgYvjgo8s44G+44GV44Gy44GTDQor44GN44GfLOOBqOOBl+OBig0KK+OBjeOBn+OBkOOBoSzjgZHjgYTjgZnjgZENCivjgYLjgb7jga4s44G/44Gh44KIDQor44GN44Gf44KA44KJLOOBvuOBquOBtg0KK+OBjeOBn+OChOOBvizjgaHjgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gq44GK44GoDQor44GT44Gw44KE44GXLOOCguOBqOOBruOCig0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44KE44GZ44Gm44KLDQor44GT44Gw44KE44GXLOOBqOOCguOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgZgNCivjgYLjgoHjgZfjgZ8s44Gq44GK44GNDQor44GT44Gw44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgb8NCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GT44Gw44KE44GXLOOBjeOCiOOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgb7jgobjgb8NCivjgZPjgbDjgoTjgZcs44Gg44GE44GZ44GRDQor44GT44Gw44KE44GXLOOBn+OBi+OBsuOCjQ0KK+OBiuOBoCzjgb7jgZXjgbLjgZMNCivjgZPjgbzjgoos44Gy44Gn44G/DQor44GT44Gg44GE44KJLOOBruOBtuOBsuOCjQ0KK+OBk+OBoOOBvizjgZvjgYTjgZgNCivjgYvjgo/jgZDjgaEs44GC44Gk44GXDQor44GT44Gg44GmLOOBv+OBpOOCiw0KK+OBk+OBjCzjga7jgorjgobjgY0NCivjgZPjgYws44GC44GN44KJDQor44GT44GM44Gt44G+44KLLOOBvuOBleOBvw0KK+OBk+OBr+OCiSzjgajjgoLjgarjgooNCivjgZPjgYbjgaAs44GR44KT44GE44GhDQor44GT44KT44GuLOOBvuOBquOBtg0KK+OBk+OBluOBhCzjgZPjgYbjgYTjgaENCivjgZPjgYTjgZEs44GC44GN44GKDQor44GT44GE44Ga44G/LOOBvuOBleOBig0KK+OBk+OBmOOBvizjgoTjgZnjgo0NCivjgZPjgZjjgb4s44GR44KTDQor44GT44G+44GkLOOBn+OBi+OBlw0KK+OBk+OCguOCiizjgojjgZfjgZ/jgYsNCivjgZPjgpPjgaks44Go44KC44Gu44KKDQor44GT44KT44GpLOOBhOOBleOCgA0KK+OBk+OCk+OBnyzjgZHjgpPjgYTjgaENCivjgZPjgZ/jgYss44G/44Gk44Gu44KKDQor44GT44Gf44GRLOOBvuOBleOBjQ0KK+OBk+OChOOBvizjgajjgYbjgo3jgY8NCivjgY/jgbws44Gy44KN44GXDQor44GP44G844GNLOOBhOOBj+OBkw0KK+OBj+OBvOOBnyzjgojjgYbjgYTjgaENCivjgY/jgYws44Gf44Gk44GYDQor44GP44G+44GM44GELOOChOOBmeOBquOCig0KK+OBj+OBq+OCguOCiizjgojjgYbjgYTjgaENCivjgY/jgonjgoLjgags44GY44KF44KTDQor44GP44KJ44GV44KPLOOBguOBpOOBlw0KK+OBj+OCieOBl+OBqizjgYvjgaTjgbLjgagNCivjgY/jgonjgZ8s44GV44Go44GXDQor44GP44KK44KC44GoLOOBn+OBkeOBig0KK+OBj+OCiuOBnyzjgojjgZfjgb7jgZUNCivjgY/jgo3jgaAs44Go44GX44GL44GaDQor44GP44KN44GgLOOBsuOBp+OBguOBjQ0KK+OBj+OCjeOBi+OCjyzjgZfjgpPjgZQNCivjgY/jgo3jgY0s44Gk44KI44GXDQor44GP44KN44GV44GNLOOCiuOCh+OBhuOBhOOBoQ0KK+OBj+OCjeOBleOCjyzjgbLjgo3jgobjgY0NCivjgY/jgorjgoXjgYYs44GR44KT44GYDQor44GP44KP44GfLOOBvuOBleOBsuOBkw0KK+OBj+OBmuOBvyzjgZ/jgYvjgbLjgo0NCivjgb7jgbbjgaEs44Gf44GP44G/DQor44G+44GI44GgLOOChOOBmeOBsuOCjQ0KK+OBvuOBiOOBoCzjgZHjgYTjgZcNCivjgb7jgYjjgYzjgo8s44GC44GN44Gy44GTDQor44G+44GI44GL44KPLOOChOOBmeOBqOOBlw0KK+OBvuOBjeOBiizjgZvjgYTjgYTjgaENCivjgb7jgoHjga/jgoks44GC44GN44Gy44KNDQor44G+44GV44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBmeOBoCzjgojjgYbjgZnjgZENCivjgb7jgZnjgaAs44Gy44KN44GXDQor44G+44GZ44GgLOOBn+OBi+OBlw0KK+OBvuOBmeOBoCzjgajjgoLjgZMNCivjgb7jgZnjgoTjgb4s44KK44Gk44GTDQor44G+44Gk44GgLOOCgOOBpOOBvw0KK+OBvuOBpOOBoCzjgarjgYrjgb8NCivjgb7jgaTjgYjjgaAs44Gk44KI44GXDQor44G+44Gk44GELOOBn+OBi+OBvuOBlQ0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgoLjgags44GR44GE44GYDQor44G+44Gk44KC44GoLOOBm+OBhOOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgobjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44GX44KF44GG44GE44GhDQor44G+44Gk44KC44GoLOOCiOOBhuOBn+OCjeOBhg0KK+OBvuOBpOOBquOBjCzjgb7jgZXjgobjgY0NCivjgb7jgaTjga4s44KE44GZ44Gy44GTDQor44G+44Gk44GuLOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOBiuOBiyzjgb/jgaHjgZMNCivjgb7jgobjgb8s44GC44GN44KJDQor44KB44GL44GfLOOBsuOCjeOBjQ0KK+OCgeOCiSzjgZPjgYbjgZgNCivjgb/jgZ/jgass44Gf44KN44GGDQor44G/44Gf44GrLOOBv+OBoeOBsuOBqA0KK+OBv+OBqCzjgobjgb/jgZMNCivjgb/jgoTjgYzjgb8s44GX44GS44Gy44GVDQor44GE44GK44GNLOOBvuOBleOBguOBjQ0KK+OBv+OChOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgb/jgoTjgoDjgoks44Go44KC44KG44GNDQor44G/44KE44GuLOOBn+OBi+OBguOBjQ0KK+OBv+OChOOBhuOBoSzjgb7jgZXjga/jgosNCivjgb/jgoTjgZbjgY0s44G+44GV44GL44GkDQor44KC44Gh44Ga44GNLOOChuOBjQ0KK+OCguOCguOBhCzjgbLjgafjgb7jgZUNCivjgoLjgoos44KG44GLDQor44KC44KKLOOBj+OBv+OBkw0KK+OCguOCiuOCguOBqCzjgojjgYbjgYTjgaENCivjgoLjgorjgoLjgags44KA44Gk44GTDQor44KC44KK44GK44GLLOOBkeOCk+OBmA0KK+OCguOCiuOBleOCjyzjgajjgoLjgbLjgo0NCivjgoLjgorjgZ8s44GL44Ga44KI44GXDQor44KC44KK44GfLOOBsuOCjeOBruOBtg0KK+OCguOCiuOBnyzjgYLjgY3jgbLjgZMNCivjgoLjgorjgZ8s44GX44KT44KEDQor44KC44KK44KE44G+LOOBn+OBi+OBlw0KK+OCguOCiuOChOOBvizjgZ/jgaTjgbLjgZMNCivjgoLjgabjgY4s44Go44GK44KLDQor44KA44KJ44GL44G/LOOBvuOBleOBguOBjQ0KK+OBguOBleOBrizjgZHjgpPjgZQNCivjgYLjgobjgYvjgo8s44GV44Go44GXDQor44KA44KJ44GKLOOBoOOBhOOBmeOBkQ0KK+OCgOOCieOBiuOBiyzjgZfjgZLjgosNCivjgoDjgonjgZ8s44Go44KC44GL44GaDQor44KA44GX44GC44GRLOOBiOOBv+OBkw0KK+OCgOOBnyzjgbLjgZXjgZcNCivjgarjgbnjgYQs44G+44GV44Gy44KNDQor44Gq44GM44GELOOBk+OBhuOBhOOBoQ0KK+OBquOBjOOBhCzjgb7jgZXjgZMNCivjgarjgYzjgb/jga0s44GV44KG44KKDQor44Gq44GM44GV44KPLOOBn+OBoOOBlw0KK+OBquOBjOOBnyzjgabjgaTjgYoNCivjgarjgYzjgoTjgb4s44Gm44Gk44KEDQor44Gq44GQ44KJLOOChuOBv+OBkw0KK+OBquOBhOOBqOOBhizjgbLjgo3jgZcNCivjgarjgYvjgYzjgo8s44KK44KF44GG44GYDQor44Gq44GL44GM44KPLOOChuOBv+OBkw0KK+OBquOBi+OBjOOCjyzjgoTjgZnjgZcNCivjgarjgYvjgYzjgo8s44G+44GV44Gy44KNDQor44Gq44GL44Gv44KJLOOBn+OBi+OBkw0KK+OBquOBi+OBhCzjgZfjgZLjgosNCivjgarjgYvjgYQs44Gf44GL44Gy44KNDQor44Gq44GL44GY44G+LOOBqOOBiuOCiw0KK+OBquOBi+OBmOOBvizjgobjgb/jgZMNCivjgarjgYvjgZjjgb4s44GL44Gk44KEDQor44GV44KP44GgLOOBv+OBiOOBkw0KK+OBquOBi+OCgOOCiSzjgYLjgY3jga7jgbYNCivjgbDjgpPjgbAs44Gm44Gk44KEDQor44Gq44GL44KA44KJLOOBsuOBp+OBsuOBqA0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44Gq44GL44KA44KJLOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgb7jgooNCivjgarjgYvjgoDjgoks44Gf44GR44GXDQor44Gq44GL44KA44KJLOOBguOBjeOBsuOCjQ0KK+OBquOBi+OBrizjgbXjgb/jgZMNCivjgarjgYvjga4s44Gy44KN44GL44GaDQor44Gq44GL44GKLOOBruOBtuOChuOBjQ0KK+OBquOBi+OBl+OBvizjgoTjgZnjgbLjgo0NCivjgarjgYvjgZ8s44GT44GG44GE44GhDQor44Gq44GL44GfLOOBguOBjeOBkw0KK+OBquOBi+OChOOBvizjgarjgYrjgoTjgZkNCivjgarjgYvjgoTjgb4s44Gy44KN44G144G/DQor44Gq44GL44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBi+OChOOBvizjgZHjgYTjgZMNCivjgarjgYvjgZbjgo8s44GL44Gk44KEDQor44Gq44GL44GW44KPLOOBkeOBhOOBmeOBkQ0KK+OBquOBjOOBiuOBiyzjgobjgZ/jgYsNCivjgarjgarjgZfjgoMs44KI44GX44Gy44KNDQor44Gq44KK44GfLOOBpOOCiOOBlw0KK+OBquOCiuOBnyzjgb7jgZPjgagNCivjgarjgZks44Gf44GR44GXDQor44Gq44GZ44GfLOOBsuOCjeOBlw0KK+OBq+OBlyzjgYvjga3jga7jgbYNCivjgavjgZfjgaAs44Gu44G244KG44GNDQor44Gr44GX44KA44KJLOOBleOBoeOBig0KK+OBvuOBleOBoCzjgZ/jgZHjgbLjgZMNCivjgavjgZfjgoDjgoks44Go44KC44GTDQor44Gr44GX44KA44KJLOOBvuOBleOChuOBjQ0KK+OBq+OBl+OBiizjgojjgZfjgZ/jgaANCivjgavjgZfjgoTjgb4s44G/44Gq44GTDQor44Gr44Gj44GfLOOBi+OBiuOCig0KK+OBruOBjOOBvyzjgoTjgZnjgbLjgo0NCivjga7jgarjgYss44Gf44GL44Gy44KNDQor44Gu44GbLOOBsuOBp+OBig0KK+OBruOBn+OBuSzjgZfjgpPjgZQNCivjga7jgags44GY44KF44KT44GE44GhDQor44Gu44GmLOOBsuOCjeOBjQ0KK+OBrOOBj+OBhCzjgb7jgZXjgbLjgo0NCivjgYrjgaEs44GC44GN44Gy44GTDQor44GK44Gh44GC44GELOOBqOOBl+OChuOBjQ0KK+OBiuOBoCzjgojjgZfjgYvjgZoNCivjgYrjgYzjgZXjgo/jgoks44KG44GG44GYDQor44GK44GM44KPLOOCiOOBhuOBmA0KK+OBiuOBjOOCjyzjgZPjgYbjgZgNCivjgYrjgYzjgo8s44G+44GV44Gy44GTDQor44GK44GM44KPLOOBvuOBleOChA0KK+OBiuOBjOOCjyzjgarjgYrjgZ/jgZENCivjgYrjgYzjgo8s44Go44KC44G/DQor44GK44GO44GuLOOBvuOBk+OBqA0KK+OBiuOBiuOBsCzjgb7jgZXjgbLjgacNCivjgZ/jgY3jgb/jgoQs44KG44GN44GKDQor44GK44GK44Gv44GXLOOBn+OBoOOChuOBjQ0KK+OBiuOBiuOBr+OBlyzjgZ/jgY/jgb/jgpMNCivjgYrjgYrjgYQs44Gh44GV44GoDQor44GK44GK44GL44KPLOOBiOOBvw0KK+OBiuOBiuOCguOCiizjgZjjgoXjgpPjgYsNCivjgYrjgoDjgoks44G+44KGDQor44GK44Gq44GL44Gv44KJLOOBn+OBkeOBpOOBkA0KK+OBiuOBiuOBq+OBlyzjgojjgZfjga7jgooNCivjgYrjga4s44GC44GN44GTDQor44GK44GK44GK44GLLOOBn+OBi+OBlw0KK+OBiuOBl+OBvizjga7jgbYNCivjgYrjgZfjgb4s44GR44KT44GE44GhDQor44GE44GR44G+44GkLOOBn+OBi+OBkw0KK+OBiuOBiuOBnyzjgZ/jgZHjgZcNCivjgYrjgYrjgZ8s44Gf44GL44GXDQor44GK44GK44GfLOOBleOBoeOBkw0KK+OBiuOBiuOBnyzjgZ/jgb/jgZMNCivjgbXjgY/jgaAs44G/44GIDQor44GK44Gc44GNLOOBkeOBhOOBhOOBoQ0KK+OBiuOBhOOBoCzjgbLjgajjgZcNCivjgYrjgYTjgZgs44GP44Gr44Gy44KNDQor44GK44GL44GgLOOBl+OCk+OBmA0KK+OBmeOBjuOCguOBqCzjgZ/jgYvjgobjgY0NCivjgYrjgYvjgZbjgY0s44KE44GZ44Gy44KNDQor44GK44GL44GW44GNLOOChOOBmeOBlw0KK+OBiuOBi+OBluOCjyzjgbLjgajjgZcNCivjgYrjgY/jgaAs44Gm44Gk44KEDQor44GK44GP44GgLOOBvuOBleOBjQ0KK+OBiuOBj+OCgOOCiSzjgZfjgZLjgosNCivjgYrjgY/jgoDjgoks44Gy44Gn44Gy44GoDQor44GK44GP44GuLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBj+OChOOBvizjgYLjgY3jgbLjgo0NCivjgYrjga4s44Gq44GK44G/DQor44GK44GK44Gs44GNLOOBsuOBp+OBruOCig0KK+OBiuOBiuOBr+OBlyzjgajjgZfjgYoNCivjgajjgYrjgoQs44G+44GV44Gy44KNDQor44GK44Go44GQ44KNLOOBruOBtuOChuOBjQ0KK+OBleOBhOOBlOOBhizjgZ/jgZHjgbLjgo0NCivjgZXjgYTjgajjgYYs44KI44GX44Gf44KN44GGDQor44GV44GE44Go44GGLOOBguOBjeOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgbXjgb/jgbLjgZMNCivjgZXjgYTjgajjgYYs44Gy44KN44GNDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpMNCivjgZXjgYTjgajjgYYs44GL44KT44GYDQor44GV44GL44GI44Gg44GrLOOBv+OBiw0KK+OBleOBi+OBhCzjga7jgbbjgoTjgZkNCivjgZXjgYvjgYQs44Go44GP44GY44KN44GGDQor44GV44GL44GfLOOBpOOCiOOBlw0KK+OBleOBi+OBnyzjgYvjgZrjgbLjgZMNCivjgZXjgY/jgb4s44Gf44GL44Gy44KNDQor44GV44GP44KJ44Gw44KE44GXLOOBguOBpOOBlw0KK+OBleOBj+OCieOBhCzjgb7jgaTjgYoNCivjgZXjgY/jgZ8s44KI44GX44GC44GNDQor44GV44GV44GNLOOBvuOBleOBi+OBmg0KK+OBleOBleOBjSzjgYLjgY3jgokNCivjgZXjgZXjgY0s44GV44Gh44GTDQor44GV44GV44GNLOOCiOOBl+OChuOBjQ0KK+OBleOBleOCgSzjgojjgYbjgYTjgaENCivjgZXjgajjgYYs44GL44Ga44Gu44KKDQor44GV44Go44GGLOOBvuOBleOBsuOBkw0KK+OBleOBqOOBhizjgojjgZfjgbLjgo0NCivjgZXjgajjgYYs44KI44GX44KN44GGDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgZXjgajjgYYs44Gy44KN44GXDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgZfjgofjgYbjgZgNCivjgZXjgajjgYYs44KE44GIDQor44GV44Go44GGLOOBj+OBv+OBkw0KK+OBleOBqOOBhizjgbLjgo3jgoTjgZkNCivjgZXjgajjgYYs44KK44GIDQor44GV44KP44GgLOOBn+OBi+OBrQ0KK+OBleOCj+OBr+OBlyzjgZ/jgaTjgobjgY0NCivjgZXjgo/jga4s44GL44Ga44Gy44KNDQor44Gb44GQ44GhLOOBl+OCheOBhuOBuOOBhA0KK+OBm+OBjSzjgajjgoLjgZMNCivjgZvjgY3jgZDjgaEs44KI44GX44Gy44KNDQor44Gb44GN44GQ44GhLOOBleOBqOOBlw0KK+OBl+OBsCzjgYvjgYrjgooNCivjgZfjgbDjgZ8s44GC44KE44GTDQor44GX44Gw44GfLOOBvuOBleOBr+OCiw0KK+OBl+OBtuOChCzjgZ/jgYvjgZcNCivjgZfjgb7jgaAs44GX44KF44GG44GYDQor44GX44G/44GaLOOBi+OBpOOChuOBjQ0KK+OBhOOBl+OBi+OCjyzjgZ/jgYvjgobjgY0NCivjgZfjgb/jgZos44Go44KC44Gy44KNDQor44GX44G/44GaLOOBi+OBpOOChuOBjQ0KK+OBl+OBv+OBmizjgZHjgpPjgZgNCivjgZfjgb/jgZos44GR44KT44Gf44KN44GGDQor44G144GY44GI44GgLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBl+OCguOChOOBvuOBoCzjgZfjgpPjgYTjgaENCivjgZfjgarjgYzjgo8s44Go44KC44Gy44GnDQor44GX44KT44KELOOBv+OBpOOBruOCig0KK+OBl+OBiuOBvyzjgZfjgpPjgZgNCivjgZfjgYrjgaQs44GL44Gk44Gy44GTDQor44Gb44GN44GQ44GhLOOBqOOBiuOCiw0KK+OBpOOBruOBoCzjgZ/jgYvjgZcNCivjgZfjgonjgZXjgYss44GC44Gk44GKDQor44GX44KN44GX44GfLOOBsuOCjeOChuOBjQ0KK+OBl+OBn+OCiSzjgbLjgZXjgZcNCivjgZfjgofjgYYs44GY44KF44KT44GE44GhDQor44GZ44GM44KP44KJLOOBv+OBuw0KK+OBmeOBjOOCj+OCiSzjgZXjgajjgZcNCivjgZnjgY7jgoLjgags44GX44KH44GG44GE44GhDQor44GZ44GO44GfLOOBqOOCguOBi+OBmg0KK+OBmeOBjuOBnyzjgb7jgZXjgojjgooNCivjgZnjgY7jgZ8s44GL44Gk44Gy44GTDQor44GZ44GO44GG44KJLOOBleOBqOOBkw0KK+OBmeOBjuOBhuOCiSzjgajjgojjgbLjgZUNCivjgZnjgY7jgoTjgb4s44G/44Ga44G7DQor44GE44GR44Ge44GILOOBvuOBleOBqOOBlw0KK+OBmeOBjuOChOOBvizjgbLjgo3jgYLjgY0NCivjgZnjgYss44Go44KC44KG44GNDQor44GZ44GR44GM44KPLOOBruOBtuOCiOOBlw0KK+OBmeOBv+OBruOBhuOBiCzjgbLjgafjgY0NCivjgZnjgb/jgojjgZcs44Gf44Gt44GL44GaDQor44GZ44G/44KI44GXLOOBqOOBl+OBv+OBpA0KK+OBmeOBquOBvyzjgbLjgo3jgobjgY0NCivjgZnjgZrjgY0s44KE44Gh44KIDQor44GZ44Ga44GNLOOBvuOCguOCiw0KK+OBmeOBmuOBjSzjgYLjgY3jgbLjgo0NCivjgZnjgZrjgY0s44GC44GN44KJDQor44GZ44Ga44GNLOOBsuOCjeOBguOBjQ0KK+OBmeOBmuOBjSzjgYTjgaPjgbrjgYQNCivjgZnjgZrjgY0s44G+44GV44GoDQor44GZ44Ga44GNLOOBruOBtuOBguOBjQ0KK+OBl+OCh+OBhuOBmCzjgZfjgZoNCivjgZfjgofjgYYs44GX44KH44GG44Gf44KN44GGDQor44Gf44Gw44GfLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBoCzjgajjgZfjgYoNCivjgZ/jganjgZPjgo0s44Gy44Gn44KG44GNDQor44Gf44GM44G/LOOBk+OBhuOBmA0KK+OBn+OBkOOBoSzjgZ/jgYvjgZcNCivjgZ/jgZDjgaEs44Gy44KN44GC44GNDQor44Gf44GELOOBvuOBleOBpuOCiw0KK+OBn+OBhOOCiSzjgYLjgaTjgZcNCivjgZ/jgYTjgZUs44G/44Gk44Gy44KNDQor44Gf44GY44G+LOOBjeOCiOOBlw0KK+OBn+OBi+OBoCzjgZ/jgaDjgarjgYoNCivjgZ/jgYvjgaAs44GI44Gk44KN44GGDQor44Gf44GL44GOLOOBpuOBpOOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYLjgaTjgoQNCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBqOOBiuOCiw0KK+OBn+OBi+OBr+OBlyzjgarjgYrjgY0NCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gf44GL44Gv44GXLOOChuOBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYoNCivjgZ/jgYvjga/jgZcs44KG44GG44GZ44GRDQor44Gf44GL44Gv44GXLOOBquOBiuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbXjgb8NCivjgZ/jgYvjgYQs44GX44Gu44G2DQor44Gf44GL44GuLOOBi+OCk+OBkw0KK+OBn+OBi+OBl+OBvizjgarjgYrjgoQNCivjgZ/jgYvjgoTjgb4s44Gy44Gn44Gk44GQDQor44Gf44GR44GgLOOBi+OBmuOCiOOBlw0KK+OBn+OBkeOBhOOBoSzjgZHjgYTjgZnjgZENCivjgZ/jgZHjgb7jgZUs44GR44KT44GE44GhDQor44Gf44GR44KA44KJLOOBl+OBuw0KK+OBn+OBkeOCgOOCiSzjgZfjgoXjgpPjgZnjgZENCivjgZ/jgZHjgarjgYss44Gq44GK44GoDQor44Gf44GR44GX44GfLOOBl+OCh+OBhuOBnuOBhg0KK+OBn+OBkeOBhuOBoSzjgYLjgaTjgagNCivjgZ/jgZHjgYbjgaEs44Gy44Go44GXDQor44Gf44GR44GG44GhLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBn+OBjeOBi+OCjyzjgYLjgaTjgZcNCivjgZ/jgY3jgY3jgZ8s44Gf44GL44GXDQor44Gf44GN44GW44KPLOOBsuOBp+OBqA0KK+OBn+OBkyzjgojjgZfjgY0NCivjgZ/jgYvjga4s44KC44Go44KG44GNDQor44Gf44G+44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBvuOBjSzjgYrjgZXjgoANCivjgZ/jgoDjgoks44GL44Ga44Gf44GLDQor44Gf44Gq44G5LOOBsuOCjeOBruOBtg0KK+OBn+OBquOBuSzjgbXjgb/jgYoNCivjgZ/jgarjgYss44GN44KH44GG44G444GEDQor44Gf44Gq44GLLOOBjeOCh+OBhuOBkw0KK+OBn+OBquOBiyzjgb/jgbsNCivjgZ/jgarjgYss44KI44GX44Gy44GVDQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBn+OBquOBiyzjgb7jgZXjgojjgZcNCivjgZ/jgass44GL44Ga44Gq44KKDQor44Gf44Gr44GQ44GhLOOBruOBtuOBsuOCjQ0KK+OBn+OBq+OBl+OCh+OBhizjgZfjgpPjgZQNCivjgZ/jgabjgoTjgb4s44KI44GX44G144G/DQor44Gf44Gk44G/LOOBvuOBmeOBvw0KK+OBn+OBhuOCiSzjgZ/jgYvjgajjgZcNCivjgZ/jgZbjgo8s44Go44KC44KG44GNDQor44Gf44Ga44GRLOOBm+OBhOOBhOOBoQ0KK+OBpuOCieOBoCzjgZHjgYTjgZMNCivjgajjgYbjgb4s44GL44Ga44Gy44KNDQor44Go44GK44KE44G+LOOBi+OBmuOBsuOCjQ0KK+OBqOOCgeOBiuOBjyzjgYLjgY3jgYoNCivjgajjgb/jgYTjgYgs44Gv44KE44GoDQor44G144Gf44Gk44GOLOOBsuOCjeOBlw0KK+OBqOOCguOBqOOBlyzjgZHjgpPjgZgNCivjgajjga3jgYzjgo8s44GC44GN44GTDQor44GK44GP44KA44KJLOOBruOCiuOBsuOBkw0KK+OBqOOBl+OBl+OBkizjgbLjgo3jgZcNCivjgajjgojjgaAs44GL44Ga44Gq44KKDQor44Go44KI44Gq44GLLOOBvuOBleOChA0KK+OBpOOBsOOBjSzjgabjgaTjgoQNCivjgaTjgaHjgoLjgags44G144G/44GKDQor44Gk44GgLOOBleOBqOOBlw0KK+OBpOOBoCzjgYvjgogNCivjgaTjgaAs44Go44GX44GIDQor44Gk44GY44GELOOBqOOCguOBn+OBiw0KK+OBpOOBmOOCgOOCiSzjga7jgorjgZMNCivjgaTjgYvjga/jgoks44Go44GX44KN44GGDQor44Gk44Gu44GgLOOBl+OCh+OBhuOBmA0KK+OBpOOCi+OBjizjga/jgovjgbLjgZMNCivjgaTjgovjgZ8s44Gm44KL44Gy44GTDQor44Gk44GX44G+LOOBjeOBrOOCiA0KK+OBpOOBpOOBhCzjgbLjgo3jgobjgY0NCivjgaTjgaHjgaAs44GL44Gk44KG44GNDQor44GG44Gh44GgLOOBleOBqOOCiw0KK+OBhuOBoeOBoCzjgZ/jgY/jgZgNCivjgYbjgaHjgY/jgoks44Gf44GR44GXDQor44GG44Gh44Gf44GrLOOBi+OBpOOBkw0KK+OBhuOBiOOBoCzjgZXjgY3jgZMNCivjgYbjgYjjgaAs44Gh44GIDQor44GG44GI44GgLOOBjOOBjw0KK+OBhuOBiOOBoCzjgYLjgY3jga7jgooNCivjgYbjgYjjgoDjgoks44Gy44KN44GTDQor44GG44GI44GuLOOBsuOCjeOBlw0KK+OBhuOBiOOBpOOBjSzjgb7jgY0NCivjgYTjgZEs44G+44GV44KLDQor44GG44KB44GgLOOBv+OBuw0KK+OBhuOCgeOCgOOCiSzjgarjgaTjgZMNCivjgYbjga7jgY0s44Gu44G244Gy44GTDQor44GG44KJ44GX44GfLOOBqOOCguOBkw0KK+OBhuOCieOBnyzjgajjgoLjgobjgY0NCivjgYbjgZfjgYos44KI44GX44GKDQor44GG44Gf44GM44KPLOOBpuOBpOOChA0KK+OCj+OBoCzjgajjgoLjgZMNCivjgo/jgaAs44GC44GN44Gy44GoDQor44KP44GgLOOBsuOCjeOBn+OBpA0KK+OCj+OBoCzjgb7jgZXjgbLjgo0NCivjgo/jgYzjgaTjgb4s44GX44KH44GG44GE44GhDQor44KP44GL44G+44GkLOOChuOBhuOBmA0KK+OCj+OBjeOBnyzjgbLjgo3jgYLjgY0NCivjgo/jgZMs44Gy44KN44GL44GaDQor44KP44KK44GL44GfLOOBquOBiuOChuOBjQ0KK+OCj+OBl+OBmizjgZfjgofjgYYNCivjgo/jgZ/jgarjgbks44GX44KF44KT44GYDQor44KP44Gf44Gq44G5LOOCiOOBl+OChuOBjQ0KK+OCj+OBn+OBquOBuSzjgajjgZfjgYoNCivjgo/jgZ/jgarjgbks44GM44GPDQor44KP44Gf44Gq44G5LOOBsuOCjeOBteOBvw0KK+OBiuOCgOOCiSzjgbLjgo3jgbLjgacNCivjgo/jgZ/jgarjgbks44GT44GG44Gb44GEDQor44KP44Gf44Gq44G5LOOBquOBiuOBkw0KK+OCj+OBn+OBquOBuSzjgorjgoXjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44Gm44Gk44KN44GGDQor44KE44GOLOOBqOOCguOBvw0KK+OChOOBjizjgobjgYbjgZMNCivjgoTjgb7jgaAs44Gf44GL44GoDQor44KE44G+44GgLOOBruOCiuOBqOOBlw0KK+OChOOBvuOBoCzjgbLjgafjgbXjgb8NCivjgoTjgb7jgaAs44GX44GS44GKDQor44KE44G+44GgLOOBn+OBkeOBsuOCjQ0KK+OChOOBvuOBteOBjyzjgbLjgafjgYoNCivjgoTjgb7jgZDjgaEs44G+44KK44GTDQor44KE44G+44GQ44GhLOOCiOOBhuOBmA0KK+OChOOBvuOBkOOBoSzjgojjgYbjgZMNCivjgoTjgb7jgZDjgaEs44Gy44KN44GL44GaDQor44KE44G+44GYLOOBqOOBiuOCiw0KK+OChOOBvuOBi+OCjyzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44Gf44GL44Gu44KKDQor44KE44G+44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOCguOBqCzjgb/jgaTjgZ7jgYYNCivjgoTjgb7jgoLjgags44KG44GN44GTDQor44KE44G+44KC44GoLOOBsuOCjeOChOOBmQ0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44G+44GV44GNDQor44KE44G+44KC44GoLOOChuOBhuOBmA0KK+OChOOBvuOCguOBqCzjgobjgZ/jgYsNCivjgoTjgb7jgaos44Gb44GE44GE44Gh44KN44GGDQor44KE44G+44GV44GNLOOBi+OBpOOBvw0KK+OChOOBvuOBl+OBnyzjga7jgorjgajjgZcNCivjgoTjgb7jgZfjgZ8s44Go44GK44KLDQor44KE44G+44GW44GNLOOBsuOCjeOBlw0KK+OChOOBquOBjizjgorjgofjgYYNCivjgoTjga4s44GR44KT44Gf44KN44GGDQor44KE44GX44KNLOOBn+OBkeOBlw0KK+OChOOBmeOBhCzjgbXjgajjgZcNCivjgoTjgZnjgoDjgo0s44Gf44GL44GXDQor44KE44GZ44GG44GYLOOCiOOBl+OChuOBjQ0KK+OCiOOBk+OBiCzjgbLjgafjga7jgooNCivjgojjgZPjgYQs44G+44KEDQor44KI44GT44G/44GeLOOBjeOCiOOBl+OBkg0KK+OCiOOBk+OChOOBvizjgb7jgZXjgbLjgZMNCivjgojjga3jgZbjgo8s44GL44Ga44Gy44GTDQor44KI44GX44GgLOOBkeOCk+OChA0KK+OCiOOBl+OBoCzjga7jgbbjgbLjgo0NCivjgojjgZfjgaAs44GL44Gk44KEDQor44KI44GX44GgLOOBi+OBmuOBguOBjQ0KK+OCiOOBl+OBoCzjgajjgoLjgb8NCivjgojjgZfjgYQs44GX44GS44GoDQor44KI44GX44KA44KJLOOBpuOCi+OBi+OBmg0KK+OCiOOBl+OChOOBvizjgYjjgYTjgZgNCivjgojjgZfjgZbjgo8s44GV44Gh44GTDQor44G144GY44GX44G+LOOBkeOCk+OBn+OCjeOBhg0KK+OChuOBguOBlSzjgZHjgYQNCivjgobjgY0s44Gb44Gk44GTDQor44KG44GNLOOBguOBjeOCiA0KK+OChuOBhCzjgaDjgYTjgZnjgZENCivjgYLjgaDjgaEs44Gq44GK44Gf44GRDQor44Gw44KTLOOBn+OBi+OBlw0KK+OBteOCi+OBhCzjgojjgZfjga7jgooNCivjga/jgZvjgYzjgo8s44Gv44GY44KBDQor44Gy44KJ44GL44KPLOOBvuOBquOBtg0KK+OBhOOBqOOBhizjgajjgZfjgbLjgZMNCivjgYTjgo/jgZXjgY0s44KK44KH44GG44GYDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OCj+OBr+OCiSzjgojjgZfjgb/jgaQNCivjgb7jgYjjga/jgoks44GK44GV44KADQor44G+44Gk44Gf44GrLOOBl+OBkuOBig0KK+OCguOCiuOBhOOBoSzjgYjjgYTjgZjjgo3jgYYNCivjgavjgZfjgYbjgaEs44Gu44G244KG44GNDQor44G144GY44G+44GNLOOBn+OBhOOBnuOBhg0KK+OBiuOBiuOBr+OCiSzjgZ/jgYvjgZcNCivjgZXjgarjgaAs44Gy44Gn44GC44GNDQor44Gd44GtLOOBpOOBqOOCgA0KK+OBqOOBruOCgOOCiSzjgojjgZfjgobjgY0NCivjgZfjgb/jgZos44GR44GEDQor44G/44GX44G+LOOBvuOCiuOBkw0KK+OBteOBmOOBnyzjgZ/jgo3jgYYNCivjgbXjgZjjgZ8s44Gy44Gn44GNDQor44G144GY44GfLOOCiOOBhg0KK+OBteOBmOOCj+OCiSzjgZPjgYbjgZjjgo3jgYYNCivjgbXjgZjjgoXjgYYs44GX44KT44GE44GhDQor44G144GL44GgLOOBn+OBj+OChA0KK+OBteOBj+OBoCzjgobjgZ/jgYsNCivjgbXjgY/jgbLjgZUs44Gq44GK44Gf44GLDQor44G144GP44GW44GoLOOBguOChA0KK+OBteOBj+OBluOCjyzjgZ/jgYvjgZcNCivjgbXjgovjgZXjgo8s44GN44Gv44KLDQor44Gv44GM44KPLOOBn+OBi+OBlw0KK+OBr+OBjizjgbLjgo3jgZ/jgYsNCivjga/jgonjgaAs44G/44Gk44KLDQor44Gv44KJ44GgLOOBruOBtuOBsuOCjQ0KK+OBr+OCieOBoCzjgb7jgY0NCivjga/jgonjgb7jgY0s44Gq44GK44GTDQor44Gv44Gb44GM44KPLOOCiuOBiA0KK+OBr+OBm+OBjOOCjyzjgbLjgafjgYLjgY0NCivjga/jgZfjgYos44KG44GLDQor44Gv44GZ44G/LOOBsuOCjeOBlw0KK+OBr+OBmeOBvyzjgZHjgpPjgYTjgaHjgo0NCivjga/jgaPjgajjgoos44KI44KK44GTDQor44GE44GX44GL44KPLOOBtuOCk+OBuuOBhA0KK+OBr+OChOOBlyzjgZ/jgYvjgZMNCivjgbLjgonjga4s44Gf44GP44KEDQor44Gy44KJ44GuLOOBi+OBmuOBguOBjQ0KK+OBsuOCieOBrizjgajjgZfjgYLjgY0NCivjgbLjgo3jgbks44Gy44Gn44GNDQor44GX44Gu44GgLOOBkeOCk+OBmA0KK+OBsuOBleOBoCzjgZ/jgYvjgobjgY0NCivjgbss44Gf44GR44GXDQor44G744KT44GU44GGLOOBpuOCi+OBsuOBkw0KK+OBu+OBlyzjgb/jgaHjgZMNCivjgbvjgZfjga4s44G+44GV44GNDQor44G744Gd44GL44KPLOOBsuOCjeOBi+OBmg0KK+OBu+OBneOBrizjgobjgb8NCivjgYvjgajjgYYs44KI44GX44KN44GGDQor44GE44GOLOOCiOOBhuOBkw0KK+OBhOOBkeOBoCzjgajjgZfjgobjgY0NCivjgYTjgY/jgo0s44Gu44KK44Gy44KNDQor44GE44G+44GELOOBi+OBmuOCiOOBlw0KK+OBhOOBquOBoCzjgZPjgYbjgbjjgYQNCivjgYTjga7jgZDjgaEs44Gf44GL44KG44GNDQor44GE44GX44GQ44KNLOOBpOOBkOOBi+OBmg0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgY0NCivjgYTjgZfjgYvjgo8s44GR44KT44GYDQor44GE44GX44GW44GNLOOChuOBi+OCig0KK+OBhOOBl+OBnOOBjSzjgojjgZfjgagNCivjgYTjgajjgYYs44Gm44Gk44KEDQor44GE44Go44GGLOOBvuOBleOCiOOBlw0KK+OBhOOBqOOBhizjgarjgYrjgY0NCivjgYTjgajjgYYs44KI44GX44G/DQor44GE44G+44GM44KPLOOBkeOBhA0KK+OBhOOBluOCjyzjgZPjgYbjgZgNCivjgYTjgZrjgb8s44GX44KH44GG44GYDQor44GE44Ga44G/44Gg44GmLOOBruOCiuOBqOOBlw0KK+OBi+OBtuOCieOBjizjgYvjgYrjgooNCivjgYvjgb/jgoTjgb4s44Go44GK44KLDQor44GL44Gq44KE44G+LOOBk+OBhuOBmA0KK+OBi+OBquOBluOCjyzjgZjjgo3jgYYNCivjgYvjgpPjgbDjgoks44GL44Gk44KI44GXDQor44GL44KT44GgLOOChuOBhuOBkw0KK+OBi+OCk+OBoCzjgb/jgZnjgb7jgosNCivjgYvjga3jgZMs44Gq44KK44Go44KCDQor44GL44GX44KA44KJLOOBsuOCjeOBlw0KK+OBi+OBn+OBjuOCiizjgZfjgpPjgZnjgZENCivjgYvjgajjgYYs44Gy44KN44Gu44KKDQor44GL44Go44GGLOOBruOBtuOBsuOBlQ0KK+OBi+OCj+OBoCzjga/jgovjgb8NCivjgYvjgo/jgZnjgb8s44KI44GG44GTDQor44GN44GpLOOBl+OCheOCk+OBhOOBoQ0KK+OBjeOBj+OBoSzjga7jgbbjgbLjgo0NCivjgY3jgoLjgags44Gf44GP44KEDQor44GN44KA44KJLOOBkeOCk+OBnw0KK+OBjeOCk+OBqSzjgb/jgaHjga/jgosNCivjgY3jgZ/jgoDjgoks44G/44G7DQor44GN44Gf44GuLOOBleOBoOOBig0KK+OBjeOBn+OCj+OBn+OBmyzjgZnjgZnjgoANCivjgY3jgaPjgZ8s44KE44GZ44GTDQor44GN44KE44G+LOOBm+OBhOOBmA0KK+OBjeOCiOOBnyzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GYDQor44GT44Gw44KE44GXLOOCiOOBhuOBkw0KK+OBk+OBjCzjgYLjgaTjgoQNCivjgZPjga/jgoks44Gf44GL44KG44GNDQor44GT44GY44GqLOOBkeOCkw0KK+OBk+OCk+OBrizjgZHjgYTjgZQNCivjgZPjgZrjgYss44G+44GV44GNDQor44GT44GE44GnLOOBl+OCk+OBmA0KK+OBk+OBvuOBpCzjgorjgoXjgYbjgZnjgZENCivjgZPjgb/jgarjgags44GX44KF44GG44GYDQor44GT44KC44KKLOOBleOBqOOBkw0KK+OBk+OCk+OBqSzjgbLjgo3jgbLjgZMNCivjgZPjgavjgZcs44Gu44KK44GTDQor44GP44G844KE44G+LOOBn+OBoOOBguOBjQ0KK+OBj+OBvuOBjOOBhCzjgorjgofjgYbjgZgNCivjgY/jgb7jgZ8s44Gf44GL44GTDQor44GP44KK44Gv44KJLOOBn+OBkeOBlw0KK+OBj+OCiuOBr+OCiSzjgZHjgYTjgZMNCivjgY/jgorjgZ8s44GV44Go44GXDQor44GP44GV44GuLOOBsuOCjeOBteOBvw0KK+OBj+OBl+OBoCzjgYLjgY3jgbLjgZMNCivjgb7jgYjjgaAs44KG44GNDQor44G+44GNLOOBkeOBhOOBmeOBkQ0KK+OBvuOBjeOBnyzjgZfjgpPjgZgNCivjgb7jgovjgoTjgb4s44Gk44Gt44GKDQor44G+44GZ44GgLOOBoOOBhOOBoQ0KK+OBvuOBpOOBsOOCiSzjgaHjgYvjgokNCivjgb7jgaTjgbDjgoks44Gy44Gn44Go44GXDQor44G+44Gk44GELOOBkeOBhOOBkw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgobjgY0NCivjgb7jgaTjgoDjgoks44GX44KT44Gf44KN44GGDQor44G+44Gk44GKLOOBi+OBmuOBsuOCjQ0KK+OBv+OBi+OBvyzjgb/jgaTjgYoNCivjgb/jgY0s44Gf44GL44GC44GNDQor44G/44Gu44GG44KJLOOBm+OBhOOBmA0KK+OBv+OBl+OBvizjgZHjgpPjgYTjgaENCivjgb/jgaTjgarjgYws44KI44GX44KG44GNDQor44G/44GG44KJLOOBvuOBleOBruOCig0KK+OBv+OCjyzjgZ/jgYvjga7jgbYNCivjgb/jgoTjgYos44KE44GZ44Gv44KLDQor44G/44KE44GfLOOBi+OBquOBhg0KK+OBv+OBmuOBn+OBqyzjgYvjgZrjgbLjgZMNCivjgb/jgZrjgZ/jgass44Gy44Gn44Gu44G2DQor44KC44Gh44Ga44GNLOOBv+OBpOOCiw0KK+OCguOBoeOBmuOBjSzjgY/jgb/jgZMNCivjgoLjgaHjgZrjgY0s44Gu44G244KG44GNDQor44KC44GOLOOBsuOCjeOBlw0KK+OCguOCiizjgZXjgajjgosNCivjgoLjgoos44Gf44Gg44Gy44GTDQor44KC44KKLOOBn+OBoOOChuOBjQ0KK+OCguOCiizjgajjgoLjgbLjgZUNCivjgoLjgoos44Go44GX44GNDQor44KC44KK44KE44G+LOOBqOOBl+OBig0KK+OCguOCjeOBiuOBiyzjgobjgY0NCivjgoLjgajjgbAs44Gg44GE44GV44GPDQor44KA44Gt44GoLOOBi+OBpOOBvuOBlQ0KK+OCgOOCieOBhCzjgojjgZfjgZMNCivjgoDjgonjgYrjgYss44GR44KTDQor44KA44KN44GELOOBsuOBp+OBsuOCjQ0KK+OBquOBjOOBteOBmCzjgY3jgb/jgbLjgagNCivjgarjgYzjgYQs44GC44GN44KJDQor44Gq44GE44Go44GGLOOChuOBjeOBkw0KK+OBquOBhOOBqOOBhizjgZ/jgo3jgYYNCivjgarjgYvjgYzjgo8s44G/44Gu44KLDQor44Gq44GL44Gv44KJLOOBv+OChOOBkw0KK+OBquOBi+OBmOOBvizjgobjgZ/jgYsNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44GTDQor44Gq44GL44KA44KJLOOBn+OBkeOBlw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44GC44KEDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgokNCivjgarjgYvjgoDjgoks44GC44Gk44GXDQor44Gq44GL44KA44KJLOOBsuOBleOBqA0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgarjgYvjgYos44GI44GE44GYDQor44Gq44GL44Gk44GL44GVLOOBjeOCiOOBlw0KK+OBquOBi+OChOOBvizjgb7jgooNCivjgarjgoDjgoks44KA44Gt44KG44GNDQor44Gq44GZ44GuLOOBquOBiuOBjQ0KK+OBq+OBhOOBnOOBjSzjgajjgZfjga/jgosNCivjgavjgZfjgYvjgo8s44GT44GG44Ge44GGDQor44Gr44GX44GN44GK44KKLOOCiOOBl+OBguOBjQ0KK+OBq+OBl+OBluOCjyzjgYvjgaTjga7jgooNCivjga7jgYLjgY0s44KI44GG44GTDQor44Gu44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBruOBoCzjgobjgYbjgZMNCivjga7jgZDjgaEs44Gy44GV44GXDQor44Gu44KA44KJLOOBsuOBp+OBjQ0KK+OBiuOBoeOBguOBhCzjgZPjgZnjgZENCivjgoLjgoos44G+44KK44GTDQor44GK44GM44GV44KP44KJLOOBv+OBpOOBsuOBlQ0KK+OBiuOBjOOBleOCj+OCiSzjgZ/jgaTjgZcNCivjgYrjgYzjgo8s44KK44KH44GG44GTDQor44GK44GM44KPLOOBn+OBi+OBsuOCjQ0KK+OBiuOBjOOCjyzjgoTjgZnjgbLjgZUNCivjgYrjgZDjgoks44G144G/44Gu44KKDQor44GK44GQ44KJLOOBvuOBleOBjQ0KK+OBiuOBiuOBhOOBlyzjgbLjgo3jgoQNCivjgYrjgYrjgYvjgo8s44Go44GX44GC44GNDQor44GK44GK44GL44KPLOOBmOOCheOCk+OBkw0KK+OBiuOBi+OBnCzjgarjgYrjgY0NCivjgYrjgY0s44Gm44Gk44KEDQor44GK44KA44KJLOOBguOBpOOBlw0KK+OBiuOBiuOBmeOBvyzjgb7jgZXjgbLjgo0NCivjgYrjgYrjgZ8s44G144G/44Gy44GTDQor44GK44GK44Gf44GRLOOBpuOBpOOBmA0KK+OBiuOBiuOBn+OBqyzjgZHjgpMNCivjgYrjgYrjgoTjgb4s44GR44KT44GYDQor44GK44Gc44GNLOOBsuOCjeOBlw0KK+OBiuOBi+OCguOBqCzjgZjjgoXjgpMNCivjgYrjgYvjgoDjgoks44GT44GG44GX44KTDQor44GK44GL44KA44KJLOOBvuOCguOCiw0KK+OBiuOBj+OCgOOCiSzjgb7jgarjgb8NCivjgYrjgpPjgaAs44Gu44KK44Gy44GTDQor44GK44Gu44Gn44KJLOOBruOCiuOChuOBjQ0KK+OBiuOChOOBuSzjgZ/jgYvjga7jgooNCivjgZXjgYws44Go44GX44GC44GNDQor44GV44GE44Go44GGLOOChuOBhuOBkw0KK+OBleOBi+OBhCzjgZXjgarjgYgNCivjgYTjgY4s44GC44GN44Gu44KKDQor44GV44GL44KC44GoLOOBsuOBleOBrQ0KK+OBleOBi+OCguOBqCzjgojjgZfjgbLjgo0NCivjgZXjgYvjgaTjgY4s44GL44Ga44GKDQor44GV44GL44GG44GILOOBkeOCk+OBmA0KK+OBleOBj+OBvizjgb7jgorjgZMNCivjgZXjgY/jgoks44GI44GE44GNDQor44GV44Gq44GgLOOCiOOBl+OBsuOCjQ0KK+OBleOBleOBjSzjgZ/jgZHjgYoNCivjgZXjgZXjgY0s44Gq44GK44KEDQor44GV44Go44GGLOOBi+OBpOOChuOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgZXjgajjgYYs44Go44GX44GC44GNDQor44GV44Go44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OBleOBqOOBhizjgbLjgafjgbLjgZUNCivjgZXjgajjgYYs44GL44Gk44Gy44KNDQor44GV44Go44GGLOOBjeOCh+OBhuOBkw0KK+OBleOBqOOBhizjgoTjgZnjgbLjgagNCivjgZXjgajjgYYs44GL44Ga44Gy44GnDQor44GV44Go44GGLOOBleOBqOOBvw0KK+OBm+OBhOOBkSzjgb7jgZXjga7jgooNCivjgZvjgY0s44KI44GG44GE44GhDQor44Gb44GNLOOBpuOBpOOChA0KK+OBm+OBjSzjgabjgaQNCivjgZvjgY3jgZDjgaEs44Gf44GR44GXDQor44Gb44GfLOOBqOOBl+OBig0KK+OBl+OCk+OBjOOBhCzjgYLjgY3jgZMNCivjgZfjgbDjgZ8s44KI44GX44GTDQor44GX44Gw44GfLOOChuOBjeOBruOCig0KK+OBl+OBtuOBjSzjgZjjgo3jgYYNCivjgZfjgZLjgajjgb8s44GL44Ga44G/44GkDQor44GX44GMLOOBsuOCjeOBlw0KK+OBl+OBhOOBsCzjgb/jgYsNCivjgZfjgb7jgaAs44GE44Gh44KN44GGDQor44GX44G+44GL44KPLOOBl+OBkuOCiw0KK+OBl+OBv+OBmizjgZnjgZnjgoANCivjgZfjgb/jgZos44Gf44GL44Gk44GqDQor44GX44G/44GaLOOBiuOBleOCgA0KK+OBl+OBv+OBmizjgZ/jgYvjgZcNCivjgZfjgoLjgoDjgoks44Gf44GL44GXDQor44GX44KC44KA44KJLOOBguOBjeOCiQ0KK+OBl+OBiuOBmOOCiizjgbLjgo3jgZcNCivjgZfjgYrjgZbjgo8s44GC44KE44GTDQor44GX44KJ44GELOOChuOBhuOBkw0KK+OBl+OCieOBi+OCjyzjgbXjgb/jgYgNCivjgZ3jgb7jgpMs44GY44KTDQor44Gd44GG44KELOOBvuOBleOBqA0KK+OBneOBruOBoCzjgb7jgobjgb8NCivjgZnjgaAs44Go44KC44Gv44KLDQor44GZ44GM44GuLOOBkeOCk+OBhOOBoQ0KK+OBmeOBjOOBrOOBvizjgZXjgajjgZcNCivjgZnjgYzjgo8s44Gb44GE44GE44GhDQor44GZ44GO44GG44KJLOOBjeOCh+OBhuOBmeOBkQ0KK+OBmeOBjuOChOOBvizjgajjgoLjgbLjgo0NCivjgZnjgZrjgY0s44GR44KTDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgYLjgaTjgZcNCivjgZnjgZrjgY0s44GX44KT44GE44Gh44KN44GGDQor44GX44KH44GG44GYLOOBpuOBpOOChA0KK+OBn+OBkOOBoSzjgYvjgaTjgoQNCivjgZ/jgYTjgoks44Gf44Gg44GoDQor44Gf44GY44G+LOOCiuOBiA0KK+OBn+OBi+OBoCzjgZ/jgYvjga7jgooNCivjgYrjgYvjgoTjgb4s44GC44GV44GTDQor44Gf44GL44GO44GXLOOBv+OBi+OBkw0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44KE44GZ44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOCiOOBlw0KK+OBn+OBi+OBr+OBlyzjgajjgYrjgosNCivjgZ/jgYvjga/jgZcs44GN44KH44GG44GTDQor44Gf44GL44GNLOOCiOOBhuOBhOOBoQ0KK+OBn+OBi+OBiuOBiyzjgZ/jgY/jgoQNCivjgZ/jgYvjgYrjgYss44Gy44KN44KG44GNDQor44GE44G+44GE44Ga44G/LOOCiOOBl+OBig0KK+OBn+OBi+OBleOCjyzjgZ/jgYvjgZcNCivjgZ/jgYvjgZks44Gk44KI44GXDQor44Gf44GR44GELOOBm+OBpOOBkw0KK+OBn+OBkeOBquOBiyzjgZ/jgZHjgZcNCivjgZ/jgZHjgZbjgY0s44KI44GX44GTDQor44Gf44G+44GE44GXLOOBsuOBp+OBguOBjQ0KK+OBn+OBvuOBjSzjgZfjgZLjgosNCivjgZ/jgarjgYss44GC44GN44KJDQor44Gf44Gr44GQ44GhLOOBquOBiuOBjQ0KK+OBn+OBhuOBoSzjgbLjgo3jgarjgYoNCivjgabjgonjgb/jgaQs44Gg44GE44GZ44GRDQor44Go44GgLOOBvuOChA0KK+OBqOOBv+OBquOBjCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgajjgb/jgZ8s44GC44GN44KIDQor44Go44KT44GQ44GGLOOBsuOBp+OBqOOBlw0KK+OBpOOBreOBi+OCjyzjgbLjgo3jgbXjgb8NCivjgaTjgaTjgYQs44GL44Gk44KI44GXDQor44GG44Gh44GgLOOBn+OBkeOBlw0KK+OBhuOBoeOBr+OBlyzjgZ/jgY/jgYoNCivjgYbjgYjjgaAs44G+44GV44Gy44GTDQor44GE44Go44GGLOOCiOOBhuOBhOOBoQ0KK+OBhuOBiOOBoCzjgbLjgo3jgZcNCivjgYbjgYjjga/jgoks44Gy44Gn44GC44GNDQor44G144GY44GfLOOBl+OBuw0KK+OBhuOCgeOBoCzjgabjgaTjgoQNCivjgYbjgoHjga/jgoks44KE44KI44GEDQor44GG44KJ44G5LOOBsuOBleOBkw0KK+OCj+OBn+OBuSzjgoTjgZnjgZcNCivjgoTjgYzjgZXjgY0s44GZ44G/44GLDQor44KE44GO44KC44GoLOOBsuOCjeOBlw0KK+OChOOBmOOBvizjgYvjgaTjgb8NCivjgoTjgb7jgaAs44G/44Gh44GTDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgb/jgYvjgZMNCivjgoTjgb7jgZDjgaEs44GV44Go44GTDQor44KE44G+44GQ44GhLOOBqOOCguOBkw0KK+OChOOBvuOCguOBqCzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44KE44GZ44Gy44KNDQor44KE44G+44KC44GoLOOBquOBiuOBjQ0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZgNCivjgoTjgb7jga0s44GL44Ga44Gy44KNDQor44KE44G+44GV44GNLOOBr+OCi+OBruOCig0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgY0NCivjgoTjgb7jgZbjgY0s44G+44GV44KG44GNDQor44KE44G+44GV44GNLOOBqOOBl+OChA0KK+OChOOBquOBjOOCjyzjgZ/jgZHjgZcNCivjgoTjgarjgY7jgaAs44KE44GZ44GKDQor44GK44GuLOOBsuOBp+OBruOBtg0KK+OChOOBquOBjuOBleOCjyzjgoTjgZnjgZcNCivjgoTjgZbjgY0s44Gq44GK44GNDQor44KE44GW44KPLOOBm+OBhOOBmA0KK+OCiOOBk+OChOOBvizjgbLjgo3jgZMNCivjgojjgZPjgoTjgb4s44Gf44GR44GXDQor44KI44KCLOOBjeOCh+OBhuOBmA0KK+OCiOOBl+OBoCzjgbLjgafjgYoNCivjgojjgZfjgaAs44KG44GG44GYDQor44KI44GX44GgLOOBr+OCi+OBsuOBkw0KK+OCiOOBl+OBr+OCiSzjgYLjgobjgb8NCivjgojjgZfjga/jgoks44G+44GV44Gy44GnDQor44KI44GX44KC44KKLOOBn+OBi+OBlw0KK+OBnOOBo+OBpCzjgbLjgafjgogNCivjgYLjgbks44KI44GX44Gf44GgDQor44GC44Gg44GhLOOBk+OBhuOBmA0KK+OBguOBhOOBi+OCjyzjgbLjgo3jgbXjgb8NCivjgYLjgYvjgYgs44G/44Gh44GTDQor44GC44KT44Gp44GGLOOBvuOBjQ0KK+OBguOBleOBvyzjgb/jgZUNCivjgYTjgb7jgarjgYss44Gv44KL44KIDQor44G544Gj44G3LOOChuOBhuOBmeOBkQ0KK+OBueOBo+OBtyzjgbLjgo3jgYLjgY0NCivjgaHjgYvjga/jgoks44GK44GV44KADQor44G144GY44GELOOBv+OBpOOBqOOBlw0KK+OBteOBmOOBleOBjSzjgZ/jgYvjgobjgY0NCivjgbXjgY/jgZfjgb4s44GC44Ga44GVDQor44GP44KN44GgLOOBqOOBl+OBvw0KK+OCguOCiizjgb7jgZXjgbLjgacNCivjgo/jgZ/jgarjgbks44Gf44GL44GIDQor44GP44KN44GgLOOBguOBleOBkw0KK+OBv+OChOOBhuOBoSzjgZjjgoXjgpPjgZMNCivjgYTjgajjgYYs44GN44GP44GTDQor44GE44GE44GgLOOBvuOChuOBvw0KK+OBi+OCj+OBrizjgb7jgYQNCivjgYLjgYTjgYbjgoks44Go44GX44GKDQor44Gu44GW44GNLOOBpuOCi+OBguOBjQ0KK+OBs+OBn+OBqyzjgYLjgoTjgb8NCivjgZ/jgavjgYLjgYQs44Gg44GE44GZ44GRDQor44GC44GK44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBjSzjgY3jgZXjgY8NCivjgYLjgYrjgY0s44GL44Ga44KG44GNDQor44GC44GK44KE44GOLOOBkeOCk+OBnw0KK+OBguOBi+OBq+OBlyzjgarjgYrjgbLjgo0NCivjgYLjgZXjgYos44G+44GV44Gy44GTDQor44GC44GV44GP44KJLOOBi+OBiA0KK+OBguOBl+OBluOCjyzjgYvjgZrjgY0NCivjgYLjgZ/jgY8s44Gy44KN44GXDQor44GC44Gg44GhLOOChuOBhuOBkw0KK+OBhOOBqOOBhizjgobjgooNCivjgZfjgb7jgoLjgags44GC44Go44KADQor44GV44GE44Go44GGLOOBvuOBleOCiw0KK+OBl+OBruOBr+OCiSzjgYvjgaTjgb8NCivjgYrjgYvjga4s44Gy44Gn44GTDQor44GK44GL44KC44GoLOOBsuOCjeOBlw0KK+OBsuOCieOBi+OCjyzjgojjgZTjgo3jgYYNCivjgZnjgYzjgazjgb4s44Go44KC44G/44GhDQor44GC44Gq44GW44KPLOOBv+OBruOCiw0KK+OBguOCieOBhCzjgajjgZfjgYvjgZoNCivjgYLjgonjgYQs44GN44KT44KEDQor44GC44KJ44GL44KPLOOChuOBv+OBkw0KK+OBguOCieOBi+OBrSzjgYLjgY3jgZMNCivjgYLjgonjgY0s44GX44GS44Gu44KKDQor44GC44KT44Gp44GGLOOBsuOCjeOBsuOBlQ0KK+OBhOOBhuOBoSzjgb7jgZPjgagNCivjgYTjgZHjgaAs44KE44GZ44Gy44KNDQor44GE44GR44KELOOBvuOBleOBjQ0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44G+44GV44G/DQor44GE44GX44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBl+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgYTjgZfjgYzjgY0s44Gy44KN44GXDQor44GE44GX44GQ44KNLOOBi+OBiuOCiw0KK+OBhOOBl+OBr+OCiSzjgb7jgZXjgY0NCivjgYTjgZ3jgoDjgoks44GP44G/44GTDQor44GE44Gf44GM44GNLOOBjeOCiOOBvw0KK+OBhOOBhOOBoCzjgZfjgo3jgYYNCivjgYTjgaHjgYvjgo8s44Gd44KIDQor44GE44Gh44GL44KPLOOCiOOBl+OBqOOBlw0KK+OBhOOBpyzjgYTjgZ/jgosNCivjgYTjgajjgYYs44Gy44KN44G144G/DQor44GE44Gs44GELOOBvuOBjeOBqA0KK+OBhOOBruOBhuOBiCzjga7jgbbjgbLjgo0NCivjgYTjgb7jgavjgZcs44KA44Gt44Gf44GLDQor44GE44G+44Gv44KE44GXLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBleOBjSzjgb7jgZXjgaTjgZANCivjgYTjgo/jgZXjgY0s44G+44KG44G/DQor44GE44KP44KC44GoLOOBkeOBhOOBhOOBoQ0KK+OBhuOBiOOBrizjgYjjgYTjgZgNCivjgYbjgYjjga4s44GL44Ga44Gu44KKDQor44GG44Gh44GE44GRLOOCiOOBl+OBguOBjQ0KK+OBhuOBoeOChOOBvizjgojjgZfjgZ/jgYsNCivjgYbjgoHjgaAs44GX44KF44GG44GYDQor44GG44KB44KA44KJLOOBleOCiA0KK+OBhuOCgeOCguOBqCzjgaHjgbvjgZMNCivjgYbjgovjgZfjgbDjgoks44KI44GX44Gy44GTDQor44GI44GQ44G+LOOBiOOCig0KK+OBiOOCiSzjgarjgYrjgoQNCivjgYrjgYbjgZXjgYss44G+44GV44Gf44GLDQor44GK44GK44GL44KPLOOBvuOBleOBv+OBpA0KK+OBiuOBiuOBleOCjyzjgb7jgZXjgbLjgZMNCivjgYrjgZfjgb4s44KI44GX44Gf44GLDQor44GK44GX44G+LOOBvuOBquOBtg0KK+OBiuOBiuOBmeOBjCzjgZ/jgaTjgbLjgZMNCivjgYrjgYrjgZ/jgass44Gy44Gn44GNDQor44GK44GK44GkLOOBvuOBleOBteOBvw0KK+OBiuOBiuOBpOOBiyzjgZ/jgaDjgbLjgZUNCivjgYrjga0s44G+44GV44KG44GNDQor44GK44GK44GuLOOBguOBjeOCiQ0KK+OBiuOBiuOBr+OBlyzjgZHjgpPjgYTjgaENCivjgYrjgYrjga/jgZcs44GR44KT44GUDQor44GK44GK44Gw44KE44GXLOOBl+OCk+OBmA0KK+OBiuOBiuOCiOOBlyzjgZ/jgYvjgobjgY0NCivjgYrjgYvjgoLjgags44Gf44Gg44KG44GNDQor44GK44GM44GV44KP44KJLOOCiOOBl+OBkw0KK+OBiuOBjOOCjyzjgbLjgafjga7jgooNCivjgYrjgY/jgZ/jgass44GU44GGDQor44GK44GP44KA44KJLOOChuOBhuOBkw0KK+OBiuOBkOOCiSzjgbLjgo3jgZMNCivjgYTjgYTjgYvjgo8s44GR44KT44GE44Gh44KNDQor44GK44GQ44KJLOOBleOBqOOBlw0KK+OBiuOBluOCjyzjgZ/jgYvjga7jgooNCivjgYrjgZbjgo8s44Gy44Gn44Gy44GTDQor44GK44GK44GuLOOChOOBmeOBruOCig0KK+OBi+OBjeOCguOBqCzjgozjgYTjgZMNCivjgYvjgY3jgoLjgags44Gy44KN44GXDQor44GL44GS44KE44G+LOOBqOOCguOBvw0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgZcNCivjgYvjgZ3jgoos44KE44GZ44Gy44GoDQor44GL44Gk44G/LOOBquOBiuOBjQ0KK+OBi+OBqOOBhizjgarjgYrjgZMNCivjgYvjgajjgYYs44Gu44KK44GTDQor44GL44Go44GGLOOBl+OBkuOBruOCig0KK+OBi+OBqOOBhizjgaDjgYTjgZnjgZENCivjgYvjgajjgYYs44GR44GE44GYDQor44GR44Ga44GLLOOBguOBjeOCiQ0KK+OBi+OBqeOCj+OBjSzjgb/jgaTjgZfjgo3jgYYNCivjgYvjga3jgZMs44GC44GN44Gy44KNDQor44GL44Gu44GGLOOBruOCiuOBkw0KK+OBi+OBv+OChOOBvizjgbLjgo3jgYvjgZoNCivjgYvjgo/jgZfjgb4s44Gy44KN44KG44GNDQor44GL44KP44GbLOOBleOBqOOCiw0KK+OBi+OCj+OBrizjgYvjgZrjgY0NCivjgYvjgo/jgoLjgags44G+44GV44Gf44GLDQor44GL44KP44KC44GoLOOBl+OCkw0KK+OBi+OCj+OBmyzjgarjgYrjgY0NCivjgYvjgpPjgaAs44Gy44Gn44Go44GXDQor44GN44GP44GhLOOBsuOBleOChuOBjQ0KK+OBjeOBj+OBoSzjgYLjgY3jgZMNCivjgY3jgY/jgaEs44Gu44G244GKDQor44GN44Gf44GC44KJ44GXLOOBvuOBhOOBkw0KK+OBjeOBn+OBiuOBiyzjgb/jgobjgY0NCivjgY3jgZ/jgZjjgb4s44GC44GN44Gy44KNDQor44GN44Gf44KA44KJLOOBn+OBkeOBvw0KK+OBjeOBn+OCgOOCiSzjgYLjgaTjgZcNCivjgY3jgabjgoks44GV44Go44GXDQor44GN44Gu44GX44GfLOOBmOOCheOCk+OBkw0KK+OBjeOCgOOCiSzjgZ/jgYvjgbLjgo0NCivjgY3jgorjgYYs44Gf44GR44GXDQor44GP44GV44GL44G5LOOBvuOBiOOBkw0KK+OBj+OBvOOBnyzjgZPjgZnjgZENCivjgY/jgb7jgYzjgYQs44GR44KT44GY44KN44GGDQor44GP44G+44GuLOOBleOCig0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjgagNCivjgY/jgovjgZfjgb4s44GC44GN44KI44GXDQor44Gq44GL44GM44KPLOOBoeOBiw0KK+OBk+OBhOOBpyzjgbLjgafjgY0NCivjgZPjgpPjga4s44G+44GV44GXDQor44GT44KC44GoLOOChuOBhuOBkw0KK+OBk+OBjCzjgY/jgavjga/jgosNCivjgZPjgZjjgb4s44Gf44GE44GYDQor44GT44Gr44GXLOOBi+OCiOOBkw0KK+OBk+OBsOOChOOBlyzjgZvjgYTjgYYNCivjgZPjgb7jgaQs44GR44GE44GE44GhDQor44GT44G/44KELOOBl+OCk+OChA0KK+OBk+OCk+OBqSzjgZXjgajjgZcNCivjgZPjgpPjgaks44Gk44Go44KADQor44GU44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBleOBhOOBqOOBhizjgZ/jgaTjgoQNCivjgZXjgYTjgajjgYYs44GT44GG44GYDQor44GV44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBleOBi+OCguOBqCzjgZ/jgZHjgYoNCivjgZXjgY/jgb4s44Go44GX44GL44GaDQor44GX44G/44GaLOOBquOBiuOBjQ0KK+OBleOBoOOBoeOBiyzjgZHjgYTjgZjjgoUNCivjgZXjgags44GV44KI44GTDQor44GV44Go44GGLOOBmOOCheOCkw0KK+OBleOBqOOBhizjgbLjgajjgb8NCivjgZXjgajjgYYs44G/44GLDQor44GV44Go44GGLOOBi+OBpOOChuOBjQ0KK+OBleOCj+OBoCzjgZjjgoXjgpPjgZgNCivjgYTjgZ3jgo8s44G+44GV44Gy44GTDQor44GX44KCLOOBn+OBi+OBguOBjQ0KK+OBl+OCheOBhizjgb7jgZXjgoQNCivjgZfjgYrjgYvjgo8s44GC44KE44GuDQor44GX44GK44GW44KPLOOBvuOBleOBsuOBkw0KK+OBl+OBi+OBhuOBoSzjgb/jgaTjgosNCivjgZfjgZrjgoos44Gf44GR44GXDQor44GX44GuLOOBpuOBpOOBmA0KK+OBl+OBruOBluOBjSzjgZjjgoXjgpPjgZjjgo3jgYYNCivjgZfjga7jgaAs44G+44GZ44G/DQor44GX44Gu44GgLOOChuOBjeOBkw0KK+OBl+OBsOOBluOBjSzjgYLjgY3jgbLjgagNCivjgZfjgbDjgZ8s44GV44GK44KKDQor44GX44G+44KA44KJLOOBruOBvOOCiw0KK+OBl+OBv+OBmizjgb/jgb7jgZMNCivjgZfjgb/jgZos44KG44GG44GYDQor44GX44G/44GaLOOBleOBqOOBlw0KK+OBl+OBv+OBmizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgY3jgZ/jgass44KG44GG44GE44GhDQor44GX44KJ44GuLOOBn+OBi+OChuOBjQ0KK+OBmeOBiOOBsuOCjSzjgZHjgpMNCivjgZnjgYzjgYQs44G/44GN44GKDQor44GZ44GM44KI44GXLOOBkeOCk+OBmA0KK+OBmeOBjOOCj+OCiSzjgZfjgZLjgbXjgb8NCivjgZnjgY7jgYbjgoks44Gu44KK44GC44GNDQor44GZ44GO44GX44G+LOOBl+OCheOCk+OBmeOBkQ0KK+OBmeOBjuOCguOBqCzjgbLjgZXjgZcNCivjgZnjgZrjgYvjgo8s44KI44GX44GIDQor44GZ44GgLOOBguOBjeOCiOOBlw0KK+OBmeOBv+OBi+OCjyzjgYvjgaTjgYLjgY0NCivjgZnjgb/jga4s44GT44GG44GYDQor44Gb44GN44GQ44GhLOOBl+OBkuOBvw0KK+OBneOBiOOBmOOBvizjgoTjgZnjgarjgooNCivjgZ/jgYrjgYss44Gf44Gg44GXDQor44Gf44GL44GNLOOBjeOCh+OBhuOBkw0KK+OBn+OBi+OBl+OBvizjgZfjgpPjgYTjgaENCivjgZ/jgYvjgZss44GN44KI44Gf44GLDQor44Gf44GL44Gv44GXLOOBi+OBpOOChA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaTjgoQNCivjgZ/jgYvjga/jgZcs44GI44GE44GE44GhDQor44Gf44GN44Gf44GrLOOBquOBqg0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgbbjgb8NCivjgZ/jgZHjgaAs44Gf44Gg44KG44GNDQor44Gf44GR44GgLOOBkeOBhOOBhOOBoQ0KK+OBn+OBkeOBoCzjgYTjgY/jgbLjgZMNCivjgZ/jgZHjgoDjgoks44Gq44GK44Gy44GVDQor44Gf44GULOOBvuOBleOBkw0KK+OBn+OBjeOBluOCjyzjgaHjgYvjgZMNCivjgZ/jgarjgYss44KI44GG44GTDQor44Gf44Gq44GLLOOCiuOCh+OBhuOBmeOBkQ0KK+OBn+OBquOBiyzjgZHjgpPjgZgNCivjgYTjgo/jga4s44GL44Ga44GX44GSDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBn+OBq+OBiCzjgZXjgaDjgojjgZcNCivjgZ/jgavjgZDjgaEs44GL44Ga44GIDQor44Gf44Gr44GQ44GhLOOBmA0KK+OBn+OBq+OBvuOBpCzjgbLjgo3jgZcNCivjgZ/jgbDjgZ8s44G/44KP44GTDQor44Gf44G+44GNLOOBn+OBpOOChA0KK+OBhOOBm+OCguOBqCwNCivjgZ/jgb/jgoQs44GC44GNDQor44Gh44KD44KC44GoLOOBteOBleOBlw0KK+OBoeOBrizjgojjgYbjgYTjgaHjgo3jgYYNCivjgaTjgYvjgoLjgags44KI44GG44GTDQor44Gk44Gh44Gv44GXLOOCgOOBreOBsuOCjQ0KK+OBpuOCieOBleOCjyzjgZ/jgaTjgoQNCivjgags44G/44Gh44GTDQor44G144GP44GX44G+LOOBquOBiuOBlw0KK+OBqOOBsCzjgY3jgofjgYbjgZMNCivjgajjgb/jgojjgZcs44Gy44Go44GNDQor44Go44KA44KNLOOBquOBpOOBsuOBkw0KK+OBqOOCiOOBl+OBvizjgZjjgoXjgpPjgYTjgaENCivjgajjgorjgoTjgb4s44Gq44GK44KG44GNDQor44Gq44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBhOOBpyzjgb/jgaHjgYvjgZoNCivjga/jgZ8s44G144GV44GKDQor44Gq44GL44GM44GNLOOBv+OBjQ0KK+OBquOBi+OBjOOCjyzjgZ/jgYvjgZMNCivjgarjgYvjgZbjgo8s44KI44GX44GTDQor44Gq44GL44GnLOOBl+OCh+OBhuOBkw0KK+OBquOBi+OBr+OCiSzjgYLjgaTjgZcNCivjgZ/jgZHjgYbjgaEs44GL44Gk44Gy44GVDQor44Gq44GL44KA44KJLOOBleOBqOOBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgZHjgZcNCivjgarjgZks44Gy44KN44GXDQor44Gr44GE44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBq+OBl+OBiuOBiyzjgbLjgafjgYLjgY0NCivjgavjgZfjgYvjgo8s44GC44GN44KJDQor44Gr44GX44GW44KPLOOBl+OBkuOCiw0KK+OBq+OBl+OBqCzjgoTjgZnjgZMNCivjgavjgZfjga4s44GT44GG44GYDQor44Gr44GX44Gv44KJLOOBquOBiuOBjQ0KK+OBq+OBl+OCgOOCiSzjgY/jgavjgoLjgooNCivjga3jgoLjgags44GV44Gh44KIDQor44Gu44GQ44GhLOOBiOOBvw0KK+OBruOBkOOBoSzjgb7jgZXjgoQNCivjga7jgZjjgoos44KI44GX44Gq44GKDQor44Gu44GY44KKLOOBn+OBi+OBsuOCjQ0KK+OBruOCgOOCiSzjgYvjgZrjgbLjgZMNCivjga/jgaPjgZ8s44GC44GN44GTDQor44Gv44GX44GwLOOBoeOBi+OBkw0KK+OBr+OBl+OCguOBqCzjgobjgYsNCivjga/jgZfjgoLjgags44GE44Gh44KN44GGDQor44GE44Gu44GG44GILOOBjeOCiOOBlw0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZMNCivjga/jgZvjgYzjgo8s44GR44KT44GE44GhDQor44Gv44GfLOOBi+OBmuOBjQ0KK+OBr+OBnyzjgojjgZfjgYvjgaQNCivjga/jgZ/jga4s44G+44GE44GTDQor44Gv44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBr+OChOOBlyzjgY/jgb/jgZMNCivjga/jgonjgaAs44Go44KC44GTDQor44Gv44KJ44GgLOOBkeOCk+OBhOOBoQ0KK+OBsOOBsCzjgbLjgo3jgbXjgb8NCivjgbDjgbAs44GC44GZ44GLDQor44Gy44GQ44GhLOOBruOBtuOBsuOBkw0KK+OBsuOBkOOBoSzjgY3jgofjgYbjgZMNCivjgbLjgZXjgY0s44GU44GG44GYDQor44Gy44GY44KKLOOBiOOCig0KK+OBsuOCieOChOOBvizjgZ/jgYvjgobjgY0NCivjgbXjgY/jgaAs44G+44KG44G/DQor44G144GY44GELOOBsuOCjeOBteOBvw0KK+OBmeOBjOOBhCzjgZXjgajjgb8NCivjgbXjgZjjgZ8s44GL44Ga44KEDQor44G144GY44GfLOOChuOBjeOBkw0KK+OBteOBmOOBnyzjga7jgbbjgZMNCivjgbXjgZjjgZ/jgass44GV44Go44GXDQor44G144GY44Gq44G/LOOBl+OBkuOChuOBjQ0KK+OBteOBmOOBrizjgZ/jgaTjgobjgY0NCivjga7jga7jgoDjgoks44GL44Gk44GYDQor44G144GbLOOBn+OBpuOCiw0KK+OBmeOBjuOCguOBqCzjgojjgYbjgYTjgaHjgo3jgYYNCivjgbvjgZ3jgYvjgo8s44Gf44Gk44GKDQor44G744KK44GG44GhLOOBquOBiuOBvw0KK+OBu+OCiuOBi+OCjyzjgbLjgo3jgYLjgY0NCivjgb7jgY3jga4s44GE44GP44GTDQor44G+44GN44GuLOOBruOCiuOBsuOBkw0KK+OBvuOBl+OBkyzjgajjgZfjgbLjgZMNCivjgb7jgZnjgaAs44GL44Ga44KEDQor44G+44GZ44G244GhLOOBn+OBi+OBlw0KK+OBvuOBmeOBtuOBoSzjgYLjgY3jgbLjgo0NCivjgb7jgaTjgYQs44G+44GN44GTDQor44G+44Gk44GW44KPLOOBvuOBleOBqA0KK+OBqOOBv+OBquOBjCzjgZ/jgYvjgZcNCivjgb7jgaTjgarjgYws44KI44GX44GTDQor44G+44Gk44Gq44GMLOOChuOBjQ0KK+OBmeOBmuOBjSzjgoTjgZnjgZgNCivjgb7jgaTjgoDjgoks44GR44GE44GE44GhDQor44G+44Gk44KC44GoLOOBsuOBp+OBteOBvw0KK+OBvuOBpOOCguOBqCzjgajjgoLjgbLjgZUNCivjgb7jgaTjgoTjgb4s44Gu44KK44GTDQor44G+44Gk44KE44G+LOOBk+OBhuOBmA0KK+OBvuOBpOOChOOBvizjgabjgaTjgoQNCivjgb7jgaTjgojjgZcs44GC44GN44GTDQor44G+44GuLOOBm+OBhOOBmA0KK+OBvuOCi+OBiuOBiyzjgajjgZfjgoTjgZkNCivjgb/jgYvjgb8s44KI44GG44GTDQor44G/44GNLOOBsuOCjeOBjQ0KK+OBv+OBnuOBkOOBoSzjgb7jgZXjgb8NCivjgb/jgZ8s44G/44Gu44KLDQor44G/44GtLOOBoeOBguOBjQ0KK+OBv+OBreOBiizjgZXjgajjgosNCivjgZXjgajjgYYs44GL44Gk44Gu44KKDQor44GE44GP44GfLOOBguOChA0KK+OBv+OChOOBluOBjSzjgbLjgafjgY0NCivjgZ/jgYvjgY7jgo8s44GX44GS44KLDQor44G/44KI44GXLOOCiOOBhuOBkw0KK+OCgOOBi+OBhCzjgb/jgaTjgZ/jgYsNCivjgoDjgonjgYvjgb8s44G+44GV44GC44GNDQor44GE44GX44GgLOOBpOOBi+OBlQ0KK+OCgOOCieOBi+OBvyzjgZXjgajjgZcNCivjgoDjgonjgYvjgb8s44GL44Ga44Gf44GLDQor44KA44KJ44KE44G+LOOBk+OBhuOBmA0KK+OCgOOCieOChOOBvizjgb7jgZPjgagNCivjgoDjgo3jgYQs44G+44GV44Gf44GLDQor44KC44Gf44GELOOBi+OBmuOBvuOBlQ0KK+OCguOBqOOBjSzjgYvjgZrjgoQNCivjgoLjgajjgoDjgoks44GT44GG44GYDQor44KC44KKLOOBi+OBpOOBsuOCjQ0KK+OBi+OBmyzjgYLjgY3jgojjgZcNCivjgoLjgorjgZfjgZ8s44GL44Ga44Gy44KNDQor44KC44KK44GfLOOBquOBiuOBjQ0KK+OCguOCjeOBqOOBvyzjgbLjgafjga7jgbYNCivjgoLjgo3jga/jgZcs44KG44GN44GTDQor44GL44KP44KC44GoLOOBsuOCjeOBruOCig0KK+OChOOBkOOBoSzjgabjgovjgbLjgZMNCivjgoTjgZjjgb4s44Gq44GK44GTDQor44KE44GZ44GL44KPLOOBsuOCjeOBlw0KK+OChOOBmeOBoCzjgb7jgZXjgbLjgagNCivjgoTjgaTjgZrjgYss44G+44KK44GTDQor44KE44Gq44GO44GV44KPLOOChuOBjQ0KK+OChOOBvuOBkOOBoSzjgY3jgpPjgoQNCivjgoTjgb7jgZXjgY0s44Gf44GL44KEDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBluOBjSzjgojjgZfjgZMNCivjgoTjgb7jgZbjgY0s44Gb44GE44GY44KN44GGDQor44KE44G+44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBvuOBoCzjgarjgYrjgY0NCivjgoTjgb7jgaAs44Gf44GL44Gu44KKDQor44KE44G+44Gq44GLLOOBl+OCheOBhuOBhOOBoQ0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjgY0NCivjgoTjgb7jgoLjgags44G+44GV44GTDQor44KE44G+44KC44GoLOOBl+OCk+OBn+OCjeOBhg0KK+OChOOBvuOCguOBqCzjgoTjgZnjgZcNCivjgb7jgaTjgYos44G+44GZ44G/DQor44KI44GOLOOBoeOBqOOBmw0KK+OCiOOBk+OChOOBvizjgbLjgafjgY0NCivjgojjgZPjgoTjgb4s44KI44GG44GTDQor44KI44GX44GL44KPLOOBquOBiuOBsuOBpw0KK+OCiOOBl+OBi+OCjyzjgojjgZfjgZMNCivjgojjgZfjgaAs44GT44GG44GYDQor44KP44GP44GELOOBpuOBpOOChA0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZ/jgo3jgYYNCivjgo/jgZ/jgarjgbks44GX44G7DQor44KP44Gf44Gq44G5LOOCiOOBl+OBsuOBqA0KK+OCj+OBn+OBquOBuSzjgb7jgarjgbYNCivjga/jgoTjgZcs44Gf44GL44GXDQor44KE44G+44GgLOOBruOBtuOChA0KK+OCj+OBi+OBsOOChOOBlyzjgZXjgajjgZcNCivjgYTjgo/jgoDjgoks44Gu44KK44G+44GVDQor44KP44Gf44Gq44G5LOOBruOBvOOCiw0KK+OBj+OCj+OBl+OBvizjgZnjgZDjgosNCivjgYrjgbDjgZ8s44GV44Go44G/DQor44GC44Gq44GW44KPLOOBsuOBi+OCiw0KK+OChOOBjizjgZPjgZnjgZENCivjgYLjgYvjgYos44Go44KC44GL44GaDQor44GX44G/44GaLOOBquOBpOOBkw0KK+OBleOBi+OCguOBqCzjgbLjgafjga7jgbYNCivjgYLjgYrjgY0s44GX44GS44GC44GNDQor44GC44Ga44G+LOOBk+OBhuOBhOOBoQ0KK+OBhOOBhOOBoCzjgYjjgaoNCivjgYTjgZHjgYbjgaEs44KB44Gw44GIDQor44GE44GX44GL44KPLOOBpuOBpOOBig0KK+OBhOOBneOBjOOBhCzjgb7jgZPjgagNCivjgYTjgajjgYYs44Gf44Gg44Gy44KNDQor44GE44GwLOOBguOBmuOBlQ0KK+OBhOOCj+OCguOBqCzjgZfjgpPjgZgNCivjgYbjgYjjgZXjgYss44Gf44GR44Gy44KNDQor44GG44GI44GuLOOBvuOCguOCiw0KK+OBhuOBiOOBsuOCiSzjgZHjgpPjgZQNCivjgYbjgaHjgoTjgb4s44GR44KT44GYDQor44GG44KB44Gq44GELOOBmeOBmeOCgA0KK+OBiOOCgOOCiSzjgZ/jgYvjgbLjgo0NCivjgYrjgY3jgZ8s44GY44KF44KT44GE44GhDQor44GK44GK44GP44G8LOOBsuOCjeOBlw0KK+OBiuOBiuOBn+OBqyzjgYLjgoQNCivjgYrjgYrjgaQs44Gy44KN44GTDQor44GK44GK44Gk44GLLOOCiOOBl+OBvw0KK+OBiuOBi+OBl+OCjSzjgZfjgo3jgYYNCivjgYrjgaAs44GC44Gk44GXDQor44GK44GuLOOBsuOCjeOBvw0KK+OBi+OBqOOBhizjgojjgZfjgobjgY0NCivjgYvjga3jgbLjgZUs44Gq44GK44GTDQor44GL44G/44KELOOBiuOBleOCgA0KK+OBi+OCj+OBhCzjgZ/jgY/jgojjgZcNCivjgYvjgo/jgYrjgYss44Gy44Gn44GNDQor44GN44Gf44GuLOOBmOOCheOCk+OBhOOBoQ0KK+OBjeOBtuOBlyzjgaTjgbgNCivjgY3jgoDjgoks44G+44GV44Gf44GLDQor44GN44KA44KJLOOBvuOBleOBkw0KK+OBj+OBleOBiyzjgZXjgajjgb8NCivjgY/jgbAs44Gf44GL44GXDQor44GP44G844GfLOOBl+OCjeOBhg0KK+OBj+OCjeOBhOOCjyzjgZfjgpPjgZgNCivjgY/jgo/jgbDjgoks44GI44GE44GYDQor44GT44GE44GRLOOBmeOBv+OBig0KK+OBk+OBhOOBn+OBsOOBlyzjgaTjgYvjgZUNCivjgZPjgYbjgaAs44Gy44Gn44GKDQor44GT44GG44GgLOOBvuOBleOBn+OBkQ0KK+OBk+OBl+OCgOOCiSzjgYLjgaTjgZcNCivjgZPjgoTjgarjgY4s44Gy44GV44GTDQor44Gv44Go44KKLOOChuOBhuOBkw0KK+OBleOBi+OBhuOBiCzjgZXjgo8NCivjgYLjgbks44GT44GG44GE44GhDQor44GV44Go44GGLOOChOOBmeOBv+OBpA0KK+OBleOBqOOBhizjgb7jgobjgb8NCivjgZXjgajjgYYs44KI44GX44GKDQor44GX44G+44GgLOOCiuOBiA0KK+OBhOOBvuOBhCzjgYvjgaTjgYLjgY0NCivjgZnjgYzjgazjgb4s44Gh44KIDQor44Gb44GNLOOBguOBjeOBsuOCjQ0KK+OBm+OBrizjgZ/jgYvjgoTjgZkNCivjgYLjgbks44G+44GV44Gv44KLDQor44Gf44GL44GZ44GMLOOBvuOChuOBvw0KK+OBn+OBi+OBmeOBjizjga7jgbbjgZMNCivjgZ/jgYvjga/jgZcs44Go44KC44G/DQor44Gf44GL44Gv44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgbLjgagNCivjgZ/jgYvjga/jgZcs44GT44GG44GYDQor44Gf44GL44Gv44GXLOOBsuOBleOBvw0KK+OBn+OBjeOCguOBqCzjgobjgYbjgZ8NCivjgZ/jgY/jgbws44KI44GX44KG44GNDQor44Gf44GR44GG44GhLOOBqOOCguOBkw0KK+OBn+OBkeOBquOBiyzjgobjgY3jgbLjgZMNCivjgZ/jgarjgYss44KC44Go44GE44GhDQor44Gf44Gq44GLLOOBoeOBmuOCiw0KK+OBn+OBsOOBnyzjgYvjgaTjgobjgY0NCivjgZ/jgb/jgoQs44Gf44GR44GXDQor44Gf44KA44KJLOOCjOOBhOOBkw0KK+OBoeOCheOBhuOBvizjgbLjgo3jgZ/jgYsNCivjgbvjgpPjgZTjgYYs44KG44GG44GTDQor44Gq44GL44GKLOOBruOBtuOBguOBjQ0KK+OBquOBi+OBjOOCjyzjgZPjgYbjgYTjgaENCivjgarjgYvjgZ7jga4s44Gy44Gn44Gu44KKDQor44Gq44GL44GuLOOBv+OBpOOBsuOCjQ0KK+OBq+OBo+OBnyzjga/jgaoNCivjgavjgo8s44KK44KH44GG44GE44GhDQor44Gu44GYLOOBsuOCjeOBguOBjQ0KK+OBr+OBluOBrizjgZ/jgYvjgZcNCivjga/jgZfjgoLjgags44Go44GK44KLDQor44Gv44GX44KC44GoLOOChuOBhuOBkw0KK+OBr+OChOOBlyzjgaHjgYrjgooNCivjga/jgoTjgZcs44Go44GG44GTDQor44Gv44KJ44GQ44GhLOOBn+OBi+OBlw0KK+OBr+OCi+OBkOOBoSzjgajjgZfjgYoNCivjgbLjgonjgacs44GE44GV44KADQor44Gy44KJ44GuLOOBvuOBleOBn+OBiw0KK+OBsuOCieOChOOBvizjgobjgY0NCivjgbXjgYvjgZbjgo8s44Gy44KN44G/DQor44G144GP44G+44GZLOOBi+OCiA0KK+OBteOBj+OCguOCiizjgb7jgZXjgosNCivjgbXjgZjjgYvjgo8s44GX44GS44KLDQor44G744GX44GuLOOBruOCiuOBkw0KK+OBu+OBneOBrizjgYLjgY3jgbLjgagNCivjgb7jgaTjgYrjgYss44KI44GX44Gq44KKDQor44G+44Gk44KA44KJLOOBquOBv+OBkw0KK+OBv+OBmuOBi+OBvyzjgabjgaTjgo3jgYYNCivjgb/jgaTjgYQs44Gf44GE44GZ44GRDQor44G/44Gu44GL44G/LOOBqOOBl+OChuOBjQ0KK+OBv+OChOOCguOBqCzjgZ/jgaTjgZcNCivjgoDjgonjgYvjgb8s44GR44GE44GTDQor44KE44GfLOOBquOBiuOBkw0KK+OChOOBquOBjuOBnyzjgb/jga7jgosNCivjgoTjgb7jgZDjgaEs44GT44GG44GYDQor44KE44G+44GX44GfLOOBv+OBoeOBig0KK+OChOOBvuOCguOBqCzjgobjgYbjgYTjgaHjgo0NCivjgojjgZfjgZ/jgZEs44Gy44Gn44Gu44KKDQor44KI44GX44KA44KJLOOBiOOCig0KK+OBsuOBkOOBoSzjgZ/jgZHjgZcNCivjga/jgZfjgoLjgags44GC44Gk44GXDQor44KP44Gf44Gq44G5LOOChuOBjQ0KK+OBguOBjeOBsCzjgZ/jgZHjgbLjgZMNCivjgYLjgY3jgoLjgags44G/44Gk44KIDQor44GC44G+44KELOOBvuOBleOCiw0KK+OBguOCk+OBqeOBhizjgabjgaTjgo3jgYYNCivjgYLjgpPjgZbjgo8s44Gu44G244Gy44KNDQor44GC44GV44Gv44GfLOOBi+OBmuOBsuOBqA0KK+OBsOOBsCzjgb/jgaHjgbLjgagNCivjgbnjgaPjgZfjgocs44Gm44KL44Gy44GoDQor44Gh44GL44KC44GoLOOBleOBiuOCig0KK+OBoeOCh+OBhizjgaDjgYTjgZnjgZENCivjgbXjgZjjgbLjgoks44G/44KP44GTDQor44G144GY44GELOOBkeOBhOOBkw0KK+OBteOBmOOBn+OBqyzjgojjgZfjgYvjgaQNCivjgbXjgYvjgaAs44G+44GV44GC44GNDQor44G144KL44Gg44GmLOOBquOBiuOBjQ0KK+OBteOCi+OChOOBvizjgbLjgo3jgobjgY0NCivjgZTjgYbjgaAs44GN44KI44Gu44G2DQor44GT44GE44GRLOOCiOOBl+OChuOBjQ0KK+OBr+OBi+OBvuOBoCzjgZPjgYbjgZ7jgYYNCivjga/jgZvjgYzjgo8s44Gf44GL44GKDQor44Gv44GX44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBr+OBo+OBnyzjgZHjgpPjgYTjgaENCivjga/jgaPjgajjgoos44Gf44GL44Gy44KNDQor44Gv44KE44GL44KPLOOBsuOCjeOBjQ0KK+OBr+OChOOBi+OCjyzjgarjgovjgaTjgZANCivjgbLjgazjgb4s44Gf44GP44KEDQor44Gy44KN44GNLOOBqOOCguOBsuOBpw0KK+OBu+OCiuOBruOBhuOBoSzjgobjgYbjgZgNCivjgbvjgZ3jga4s44GC44Gk44GTDQor44G144GY44GK44GLLOOBsuOBp+OBjQ0KK+OBteOCi+OBnyzjgarjgovjgY0NCivjgbXjgZXjga4s44GR44KTDQor44G144GX44G/LOOBiuOBleOCgA0KK+OBhOOBn+OBqSzjgbLjgajjgZcNCivjgYTjgaAs44G+44GV44Gy44KNDQor44GE44Gv44KJLOOBkeOBhA0KK+OBhOOBhOOBoCzjgZ/jgYvjgbLjgo0NCivjgYTjgarjgoTjgb4s44Gy44KN44GL44GaDQor44GE44GuLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgoHjgZDjgb8NCivjgYTjgZfjgaAs44KI44GX44Gk44GQDQor44GE44GX44KC44GoLOOChOOBmeOCiOOBlw0KK+OBhOOBl+OCjyzjgb/jgaTjgosNCivjgYTjgZfjgo/jgZ/jgoos44Gy44KN44GL44GkDQor44GE44Gf44GP44KJLOOBquOBu+OBkw0KK+OBhOOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgYTjgajjgYYs44GX44KF44GG44GE44GhDQor44GE44KP44GELOOBquOBquOBkw0KK+OBhOOBluOCjywNCivjgZjjgbYs44GZ44GQ44KLDQor44GL44Gw44KE44G+LOOBvuOBleOBjQ0KK+OBi+OBhCzjgobjgYbjgZMNCivjgYvjgY3jgazjgb4s44GY44KF44KTDQor44GL44GN44GW44GNLOOBvuOBleOBjQ0KK+OBi+OBj+OBoCzjgZfjgoXjgYbjgZnjgZENCivjgYvjgarjgYzjgo8s44GX44KTDQor44GL44KT44G5LOOBn+OBkeOBig0KK+OBi+OCk+OBoCzjgoTjgZnjgbLjgagNCivjgYvjgZXjgaAs44G/44Gh44Gf44GLDQor44GL44KP44GELOOBqOOCguOBkw0KK+OBleOBleOBjSzjgYTjgY/jgYgNCivjgYvjgo/jgZss44GV44G7DQor44GN44KC44GoLOOBv+OBjeOBrQ0KK+OBjeOBn+OBr+OCiSzjga7jgbbjgYoNCivjgY3jgZ/jgoDjgoks44KI44GX44GKDQor44GT44Gw44KE44GXLOOBsuOCjeOBiA0KK+OBk+OBtuOBkSzjgobjgYbjgZMNCivjgZPjgYTjgZrjgb8s44GL44Gq44GTDQor44GT44G/44KE44G+LOOBvuOCiuOBkw0KK+OBk+OCk+OBruOBi+OBmuOBsuOCjSzjgoTjgZnjgbLjgagNCivjgZPjgZfjgYvjgo8s44Gf44GL44KG44GNDQor44GT44KT44GuLOOBk+OBhuOBhOOBoQ0KK+OBj+OBvCzjgb7jgZXjga7jgbYNCivjgY/jgbzjgYvjgo8s44Gq44Gk44GNDQor44GP44Gp44GGLOOBqOOCguOBiw0KK+OBj+OCiuOBr+OCiSzjgYvjgaTjgYTjgaENCivjgY/jgo3jgY4s44GV44GI44GTDQor44G+44Gh44GgLOOBr+OCi+OBvw0KK+OBvuOBmOOBvizjgoTjgZnjgZMNCivjgYTjgZfjgZos44Gu44KK44KG44GNDQor44G+44GL44G5LOOBsuOCjeOCiA0KK+OBvuOCi+OChOOBvizjgbLjgafjgYLjgY0NCivjgb7jgZnjgaAs44GL44KIDQor44G+44Gk44GM44GV44GNLOOBguOBjeOCiQ0KK+OBvuOBpOOBhCzjgZ/jgZHjgZcNCivjgb7jgaTjgYQs44GV44GK44KKDQor44G+44Gk44KC44GoLOOBkeOCk+OBmA0KK+OBvuOCj+OBn+OCiizjgYvjgpPjgZgNCivjgb/jgaHjgoLjgags44Go44GX44Gy44KNDQor44G/44GNLOOBmeOBv+OBkw0KK+OBv+OBpOOBvizjgZ/jgYvjga7jgooNCivjgb/jgYbjgoks44GR44GE44GUDQor44G/44KPLOOBvuOBk+OBqA0KK+OBv+OChOOCguOBqCzjgYvjgaTjgbLjgZUNCivjgb/jgoTjgoLjgags44KE44GZ44Gu44G2DQor44G/44KE44KC44GoLOOBn+OBkeOBruOBtg0KK+OBv+OChOOBnyzjgb7jgZXjgZcNCivjgoDjgonjgYvjgb8s44Go44GK44KLDQor44Gf44Gv44KJLOOBruOCiuOBkw0KK+OBv+OBmuOBn+OBqyzjgajjgoLjgYsNCivjgoLjgoos44KG44GNDQor44KC44KK44GQ44GhLOOBvuOBleOBsuOBkw0KK+OCguOCiuOBi+OCjyzjgbLjgo3jgZcNCivjgoLjgorjgoLjgags44GL44Ga44G/DQor44KC44KK44GfLOOCjOOBhOOBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgaTjgbLjgZMNCivjgYLjgafjgYzjgo8s44GC44GEDQor44Gq44GM44GV44GLLOOBsuOBi+OCiw0KK+OBquOBjOOBnyzjgZjjgoXjgooNCivjgarjgYzjgZ8s44GL44Gk44Gu44G2DQor44GE44GW44KPLOOBi+OBiuOCig0KK+OBquOBi+OBv+OBrSzjgb7jgoLjgosNCivjgarjgYvjgoDjgoks44Gy44KN44Gu44KKDQor44Gq44GL44KA44KJLOOBn+OBpOOChA0KK+OBhOOCguOBqCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgoDjgoks44Gf44GR44GXDQor44Gq44GL44GKLOOChuOBhuOBmA0KK+OBquOBi+OChOOBvizjgYbjgZfjgpMNCivjgarjgYvjgZbjgo8s44GN44KI44GXDQor44Gq44G/44GNLOOBr+OCi+OCiOOBlw0KK+OBq+OBhOOBvyzjgYLjgY3jgbLjgo0NCivjgavjgYTjgZzjgY0s44GL44GK44KKDQor44Gr44GX44GnLOOBsuOBp+OBguOBjQ0KK+OBq+OCjyzjgbLjgafjgY0NCivjga7jgbks44G/44GVDQor44GK44GK44GfLOOBl+OBkuOBguOBjQ0KK+OBiuOBjOOCjyzjgb7jgZXjgojjgZcNCivjgYrjgZDjgZks44KG44GG44GZ44GRDQor44GK44GK44KC44GoLOOBl+OCh+OBhuOBmA0KK+OBiuOBl+OBvizjgZ/jgYvjga7jgooNCivjgYrjgYrjgZ8s44GR44KT44GE44GhDQor44GK44GK44KELOOBsuOBv+OBkw0KK+OBhOOBl+OBi+OCjyzjgojjgYYNCivjgYrjgYvjgaAs44Gf44GR44GXDQor44GK44GPLOOBteOBv+OChuOBjQ0KK+OBiuOBj+OBoCzjgb7jgZXjgY0NCivjgYrjgZfjgY/jgbws44GR44KT44GE44GhDQor44GK44Gc44GNLOOBi+OBpOOBsuOBkw0KK+OCieOBhCzjgobjgYbjgZgNCivjgYTjgajjgYYs44Go44KC44KEDQor44GV44GE44GNLOOBsuOCjeOBlw0KK+OBleOBhOOBqOOBhizjgZ/jgaTjgoQNCivjgojjgZfjgaAs44G/44Gh44KE44GZDQor44GV44GTLOOBl+OBkuOBv+OBpA0KK+OBleOBleOBmOOBvizjgZjjgoXjgpPjgoQNCivjgZXjgZXjgY0s44KG44GN44GTDQor44GV44Go44GGLOOBpOOBkOOBsuOBpw0KK+OBhOOCj+OCguOBqCzjgYvjgZrjgbLjgZMNCivjgZXjgajjgYYs44Gh44GI44GTDQor44GV44KP44GgLOOBsuOBp+OChOOBmQ0KK+OBm+OBjeOBi+OCjyzjgYTjgZrjgb8NCivjgZvjgY3jga0s44G/44Gk44GKDQor44GX44Gw44GfLOOBquOBiuOBjQ0KK+OBl+OBkuOBr+OCiSzjgZfjgpPjgoQNCivjgZfjgb7jgYrjgYss44GC44GN44Gy44GTDQor44GX44G/44GaLOOBi+OBmuOBsuOCjQ0KK+OBl+OCgizjgb7jgZXjgYLjgY0NCivjgZfjgoLjgoDjgoks44Gf44GL44GXDQor44GX44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBneOCgeOChCzjgYLjgY3jgbLjgZMNCivjgZnjgYjjgojjgZcs44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBsuOBp+OChuOBjQ0KK+OBmeOBmuOBjSzjgarjgYrjgY0NCivjgZ/jgYvjgaAs44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLA0KK+OBn+OBi+OBmyzjgb7jgarjgbYNCivjgZ/jgZHjgaAs44GC44GN44KJDQor44Gf44GR44GELOOBsuOBleOCiOOBlw0KK+OBn+OBkeOCguOBqCzjga/jgZjjgoENCivjgZ/jgb7jgYQs44Go44GX44Gy44GTDQor44Gf44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBn+OCgOOCiSzjgZXjgajjgosNCivjgYTjgZfjgYvjgo8s44Gy44Go44GXDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgo0NCivjgZ/jgavjgZDjgaEs44Gf44GR44Gu44KKDQor44Gf44Gr44GQ44GhLOOBsuOCjeOBn+OBiw0KK+OBn+OBq+OBkOOBoSzjgZHjgpPjgZgNCivjgZ/jgavjgZDjgaEs44GR44KTDQor44GE44GX44GgLOOBguOBpOOBlw0KK+OBn+OBq+OBl+OBnyzjgbXjgb/jga4NCivjgabjgonjgavjgZcs44Gk44KI44GXDQor44Go44GK44KE44G+LOOBjeOCh+OBhuOBkw0KK+OBqOOBv+OBnyzjgb/jgo8NCivjgajjga3jgYzjgo8s44Gf44GPDQor44Go44KI44GgLOOBruOCiuOBkw0KK+OBqOOCiOOBnyzjgZfjgoXjgYbjgZgNCivjgaTjgaHjgoQs44KI44GX44GTDQor44GE44GX44GL44KPLOOBquOBiuOBjQ0KK+OBpOOCgOOCiSzjgajjgZfjgYLjgY0NCivjgaTjga7jgYvjgo8s44KI44GX44G/DQor44GG44Gh44GgLOOBsuOBqOOBlw0KK+OBhuOBleOBvyzjgZ/jgZHjgZcNCivjgo/jgZjjgb4s44KK44GTDQor44KP44Gf44Gq44G5LOOBvuOBjQ0KK+OCj+OBn+OBquOBuSzjgojjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44KE44KI44GEDQor44KE44GOLOOBkeOBhOOBhOOBoQ0KK+OChOOBjizjgY3jgofjgYbjgZMNCivjgoTjgY/jgo8s44Gy44KN44G144G/DQor44KE44G+44GgLOOBsuOCjeOBjQ0KK+OChOOBvuOBoCzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgZDjgaEs44Go44GX44KG44GNDQor44KE44G+44Gu44GP44GhLOOBvuOBleOBkw0KK+OChOOBvuOBl+OBnyzjgZPjgYbjgYTjgaENCivjgoTjgb7jgZfjgZ8s44Gq44GK44KG44GNDQor44KE44G+44GW44GNLOOBsuOBp+OChuOBjQ0KK+OChOOBvuOBluOBjSzjgobjgZ/jgYsNCivjgoTjgarjgYzjgo8s44Gf44Gk44KN44GGDQor44KE44GZ44GgLOOBqOOCiOOBguOBjQ0KK+OChOOBmeOBiCzjgajjgoLjgobjgY0NCivjgYTjgZ3jgYzjgYQs44Gf44Gg44Gu44G2DQor44KE44Gf44GM44GELOOBiOOCig0KK+OCiOOBl+OBoCzjgorjgofjgYbjgZMNCivjgZ/jgYvjga/jgZcs44G+44GV44GNDQor44GK44GL44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBguOBiuOBjSzjgb7jgZXjgosNCivjgYLjgY3jgbAs44GC44GN44GTDQor44GC44G5LOOBguOBjeOBkw0KK+OBguOBvuOBrizjgb7jgZXjgYoNCivjgYLjgorjgoLjgags44GX44KF44GG44GYDQor44GC44KT44Gp44GGLOOChuOBjQ0KK+OBhOOBi+OCjyzjgZ/jgYTjgbjjgYQNCivjgYTjgZfjgYQs44Gu44KK44Gy44KNDQor44GE44GX44GL44KPLOOBquOBiuOBkw0KK+OBhOOBl+OBmuOBiyzjgobjgb8NCivjgYTjgZfjgbDjgZcs44GX44KF44KT44GZ44GRDQor44GE44GX44KC44GoLOOCiuOCh+OBhuOBmeOBkQ0KK+OBhOOBpyzjgZXjgajjgZMNCivjgYTjgaHjga7jgZss44GV44Go44GXDQor44GE44Gq44GgLOOBvuOBquOBtg0KK+OBhOOBrOOBhCzjgoTjgZnjgogNCivjgYTjga7jgYbjgYgs44G+44G/44GTDQor44GE44KE44G+LOOBk+OBhuOBmA0KK+OBhOOCj+OBleOBjSzjgb/jgZrjgb7jgZUNCivjgYTjgo/jgb4s44GL44Ga44GTDQor44GE44KP44G+44GkLOOBiuOBleOBquOBig0KK+OBhuOBiOOBoCzjgbLjgo3jgZMNCivjgYbjgYjjga4s44Gy44KN44GNDQor44GG44Gh44GgLOOBn+OBi+OBig0KK+OBhuOBqSzjgZHjgpPjgZgNCivjgYbjgoHjga/jgoks44Gf44GL44GXDQor44GI44GQ44GhLOOBqOOBv+OBleOBtg0KK+OBiOOBruOBjSzjgojjgZfjgZMNCivjgYjjgoLjgags44G/44Gk44KC44GoDQor44GI44KC44KKLOOBm+OBhOOChA0KK+OBquOBi+OBjOOCjyzjgarjgYrjgYLjgY0NCivjgYrjgYrjgZ8s44Gy44Gn44KG44GNDQor44GK44GM44GfLOOChOOBmeOBlw0KK+OBiuOBjOOCjyzjga7jgbbjgZ/jgYsNCivjgYrjgYzjgo8s44KM44GE44GTDQor44GK44GP44GELOOBn+OBj+OBmA0KK+OBiuOBj+OCgOOCiSzjgoLjgajjgZMNCivjgYrjgYrjgZ/jgass44Gm44KL44GC44GNDQor44GK44Gk44Go44KCLOOChuOBjeOBkw0KK+OBiuOBq+OBluOCjyzjgZfjgZLjgY0NCivjgYrjga4s44Gu44KK44GC44GNDQor44GK44Gw44GqLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBiuOBvuOBjOOCiizjgb7jgZXjgoQNCivjgYvjgY3jgZbjgo8s44Gm44Gk44Gy44KNDQor44GL44GR44GyLOOBiOOCiuOBkw0KK+OBi+OBleOBr+OCiSzjgb7jganjgYsNCivjgYvjgZgs44GK44GV44KADQor44GL44GY44GfLOOBn+OBi+OBig0KK+OBi+OBmOOBnyzjgZ/jgYvjgYoNCivjgYvjgZjjgoTjgb4s44G/44Gu44KLDQor44GL44Go44GGLOOCiOOBl+OBruOBtg0KK+OBi+OBquOBoCzjgZHjgYQNCivjgYvjga3jgZMs44Gu44G244GL44GkDQor44GL44Gt44GTLOOCiuOCh+OBhuOBnw0KK+OBhOOBn+OBrizjgZHjgpPjgZnjgZENCivjgarjgYzjgaTjgb4s44GX44KF44GG44G444GEDQor44GL44Gu44GGLOOBm+OBhOOBmA0KK+OBi+OBvuOBiCzjgarjgYrjgY0NCivjgYvjgo/jgYQs44Gm44Gk44GKDQor44GL44KP44G+44GfLOOBsuOCjeOBjQ0KK+OBi+OCk+OBrizjgb7jgYTjgZMNCivjgY3jgYbjgaEs44GE44Ga44G/DQor44GN44GXLOOCiOOBhuOBkw0KK+OBjeOBn+OBjOOCjyzjgajjgoLjga7jgbYNCivjgY3jga7jgZfjgZ8s44Gq44KK44Go44GXDQor44GN44KH44GG44GM44GPLOOBvuOBk+OBqA0KK+OBj+OBvCzjgajjgoLjga7jgooNCivjgY/jgbzjgZ8s44Gf44GP44KEDQor44GP44G844GfLOOBl+OCk+OBuuOBhA0KK+OBj+OCiuOBr+OCiSzjgorjgYgNCivjgY/jgorjgoTjgb4s44GR44GE44GTDQor44GE44GX44GM44GNLOOBqOOBl+OBteOBlQ0KK+OBj+OCjeOBhCzjgYTjgaTjgo3jgYYNCivjgZPjgYbjgZXjgY0s44GT44GG44GE44GhDQor44GT44GG44GgLOOBguOBpOOBlw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Gm44Gk44KEDQor44GT44Gw44KE44GXLOOChuOBhuOBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgYTjga7jgYbjgYgs44Gu44G244GC44GNDQor44GV44GE44G7LOOBquOCi+OBsuOCjQ0KK+OBleOBi+OBjOOCjyzjgojjgYbjgbjjgYQNCivjgYvjgo/jgoDjgoks44KG44Gf44GLDQor44GV44GV44GK44GLLOOCiOOBhuOBkw0KK+OBleOBleOBjSzjga7jgbzjgosNCivjgZXjgajjgYYs44Gu44KK44GL44GaDQor44GV44Go44GGLOOBvuOBquOBtg0KK+OBleOBquOBoCzjgYrjgZXjgoANCivjgZXjgovjgoTjgb4s44GR44KT44GE44GhDQor44GX44GK44GkLOOBiOOBhOOBmeOBkQ0KK+OBl+OBiuOBruOChCzjgZfjga7jgbYNCivjgZfjgYrjgoTjgb4s44Gu44G844KLDQor44GX44GO44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBl+OBl+OBqSzjgY/jgavjgYoNCivjgZfjga7jgZbjgY0s44GL44Ga44Gy44GoDQor44GX44Gw44GfLOOBv+OBruOCiw0KK+OBl+OBv+OBmiwNCivjgZfjgofjgYbjga4s44GX44KT44GE44GhDQor44GX44KJ44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBjuOBiuOBiyzjgb/jgaTjgYvjgZoNCivjgZnjgY7jga/jgoks44GN44KI44GX44GSDQor44GZ44Ga44GNLOOBsuOBleOBpuOCiw0KK+OBmeOBmuOBjSzjgZfjgZLjgobjgY0NCivjgZnjgb/jgoTjgb4s44Gb44GE44GYDQor44Gb44Gj44GfLOOBvuOBleOBjQ0KK+OBhOOBl+OCj+OBnyzjgaDjgYTjgZjjgoUNCivjgZvjgpPjgZTjgY8s44G/44Gu44KLDQor44Gf44GL44GK44GLLOOChuOBvw0KK+OBn+OBi+OBluOCjyzjgZ/jgYvjgZfjgZINCivjgZ/jgYvjga/jgZcs44GC44KE44GTDQor44Gf44GL44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBn+OBjeOBqCzjgbLjgafjgY0NCivjgZ/jgarjgYss44GL44GaDQor44Gf44Gq44GLLOOBguOBjeOBkw0KK+OBhOOBqOOBhizjgZjjgoXjgpPjgZgNCivjgZ/jgarjgbks44GR44KT44GYDQor44Gf44Gr44GQ44GhLOOBvuOBquOBtg0KK+OBoeOCg+OCj+OCk+OChCzjgojjgZfjga/jgosNCivjgabjgonjgZXjgYss44Gy44KN44GNDQor44Go44GT44KNLOOBmOOCheOCk+OBhOOBoQ0KK+OBquOBi+OBhCzjgZ/jgYvjgZcNCivjgarjgYvjgYos44GX44KT44GYDQor44Gq44GM44GK44GLLOOBv+OBuw0KK+OBquOBi+OBjOOCjyzjgoLjgajjgYLjgY0NCivjgarjgYvjgZjjgb4s44GZ44Gy44GhDQor44Gq44GM44GbLOOBn+OBpOOChA0KK+OBquOBi+OBrizjgZvjgYTjgZ8NCivjgarjgYvjga4s44GYDQor44Gq44GM44GuLOOChuOBhuOBkw0KK+OBhOOBkeOBoCzjgYLjgY3jgZMNCivjgarjgYvjgoDjgoks44G+44KK44GTDQor44Gq44GL44KE44G+LOOBi+OBpOOBqOOBlw0KK+OBq+OBiizjgZjjgoXjgpPjgYTjgaENCivjgavjgZfjgYos44Gu44KK44GTDQor44Gr44GX44GL44GELOOBqOOBl+OBv+OBpA0KK+OBq+OBl+OBluOBiyzjgojjgZfjgZMNCivjgavjgZfjgaAs44Gg44GE44GZ44GRDQor44Gr44GX44GgLOOBn+OBi+OBlw0KK+OBhOOBhOOBmOOBvizjgb7jgZXjgY0NCivjgavjgZfjga/jgoks44GL44Ga44KG44GNDQor44Gr44GX44KA44KJLOOBi+OBmuOChA0KK+OBreOCjeOCgSzjgbLjgo3jgZcNCivjga7jgZjjgb4s44GV44Gt44Gy44KNDQor44Gu44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OBr+OBl+OBsCzjga7jgorjgYvjgZoNCivjga/jgaHjgoQs44Gf44GL44Gy44KNDQor44Gv44Gj44Go44KKLOOBkw0KK+OBhOOBhOOBoCzjgbLjgo3jgobjgY0NCivjga/jgbYs44G+44GT44GoDQor44Gv44KE44GL44KPLOOBpuOBpOOCjeOBhg0KK+OBr+OChOOBlyzjgarjgYrjgZMNCivjga/jgoTjgZfjgb4s44Gy44Gn44GXDQor44Gv44KJLOOBn+OBj+OBvw0KK+OBsuOBjOOBl+OBoCzjgb7jgZXjgosNCivjgZvjgY3jgZDjgaEs44GN44KH44GG44GE44GhDQor44Gy44KJ44GELOOBi+OBiuOCig0KK+OBsuOCjeOBmeOBiCzjgbLjgo3jgobjgY0NCivjgbLjgo3jga/jgZ8s44Gf44GP44KEDQor44G144GP44GX44G+LOOBv+OBpOOBig0KK+OBteOBmOOBiizjgabjgpPjgbrjgYQNCivjgbXjgZjjgZ8s44KG44GG44GE44Gh44KN44GGDQor44G144GY44G+44GNLOOChuOBjeOBsuOBkw0KK+OBteOBmOOCj+OCiSzjgajjgYrjgosNCivjgbXjgovjgYTjgaEs44KG44GG44GZ44GRDQor44G744GV44GLLOOBn+OBkeOBlw0KK+OBu+OBl+OBrizjgZPjgYbjgZgNCivjgbvjgoos44KG44GN44GTDQor44G744KK44KC44GoLOOChuOBhuOBmA0KK+OBu+OCk+OBvizjgobjgY3jga7jgbYNCivjgb7jgYjjgYvjgo8s44Gf44GR44Gv44KLDQor44G+44GI44GgLOOBn+OBi+OBsuOBqA0KK+OBvuOBiOOBoCzjgb/jgY3jgYoNCivjgb7jgYjjgaAs44Gf44Gk44KEDQor44G+44GV44GELOOBj+OBvw0KK+OBvuOBpOOBhCzjgbLjgafjga7jgbYNCivjgb7jgaTjgZbjgo8s44Gh44GL44KJDQor44G+44Gk44GgLOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOBqOOCgizjgb7jgZXjgarjgYoNCivjgb7jgaTjgarjgYws44GR44KT44GYDQor44G+44Gk44KC44GoLOOCiOOBhuOBmeOBkQ0KK+OBv+OBmuOBkOOBoSzjgajjgoLjgZ/jgYsNCivjgb/jgoTjgoLjgags44G+44KG44G/DQor44G/44KE44KC44GoLOOChOOBmeOBmA0KK+OCgOOCieOBi+OBvyzjgYvjgZrjgbLjgacNCivjgoDjgonjgYvjgb8s44G+44GV44Gy44KNDQor44KA44KJ44Gq44GLLOOBleOBqOOBlw0KK+OCguOBoeOBmuOBjSzjgZ/jgY/jgoQNCivjgoLjgajjgY/jgoks44Go44KC44GTDQor44KC44KKLOOBj+OBq+OBi+OBmg0KK+OCguOCiuOChCzjgbvjgb7jgowNCivjgoTjgZnjgYQs44Gf44GE44GS44KTDQor44KE44GZ44GgLOOBv+OBjeOBkw0KK+OChOOBmeOBoCzjgY3jgojjgbLjgagNCivjgoTjgZ8s44GL44Ga44Gy44KNDQor44KE44Gf44GNLOOBruOBtuOBig0KK+OChOOBoSzjgbXjgb/jgbLjgZMNCivjgoTjga4s44Gy44KN44GXDQor44KE44G+44GE44Ga44G/LOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBiuOBiyzjgb7jgZXjgY0NCivjgoTjgb7jgZDjgaEs44KE44GZ44Gy44KNDQor44KE44G+44GQ44GhLOOCiOOBl+OBruOCig0KK+OChOOBvuOBluOBjSzjgYLjgY3jgYoNCivjgoTjgb7jgZbjgY0s44Gq44GqDQor44KE44G+44GX44GfLOOBvuOBhOOBkw0KK+OChOOBvuOCguOBqCzjgZHjgpMNCivjgojjgZPjgZzjgY0s44Gf44GE44GhDQor44KI44GX44GgLOOBquOBiuOBqA0KK+OCiOOBl+OBrizjgoTjgZnjgYoNCivjgojjgZfjgb8s44Gf44GL44GXDQor44KI44GgLOOBn+OBi+OBsuOCjQ0KK+OCiOOBoCzjgbLjgo3jgYLjgY0NCivjgo3jgZgs44G144G/44GC44GNDQor44KP44GgLOOBvuOBvw0KK+OCj+OBn+OBquOBuSzjgobjgY3jgYoNCivjgo/jgZ/jgarjgbks44Gy44Gn44GNDQor44KP44Gf44Gq44G5LOOBi+OBmuOBig0KK+OCj+OBn+OBuSzjgZ/jgYvjgZcNCivjgYvjga7jgYYs44Gf44GL44Go44GXDQor44Gr44Gj44GfLOOBiuOBleOCgA0KK+OBguOBiuOBjSzjgZfjgoXjgYYNCivjgYLjgYrjgY0s44Gv44Gq44GTDQor44GC44GK44KE44G+LOOBvuOBleOBguOBjQ0KK+OBguOBiuOChOOBvizjgazjgYQNCivjgYLjgY3jgbAs44GR44GE44GE44GhDQor44GC44GV44GgLOOBvuOCiuOBkw0KK+OBguOBoOOBoSzjgajjgoLjgb8NCivjgYLjgaDjgaEs44KG44GG44GTDQor44GC44Go44G5LOOBr+OCi+OBqA0KK+OBguOBuSzjgYvjgaTjgbLjgZMNCivjgYLjgbks44Gu44G244GKDQor44GC44G5LOOBvuOChuOBvw0KK+OBguOBvuOBrizjgb7jgY0NCivjgYLjgb7jga4s44GY44KF44KT44GE44Gh44KNDQor44GC44KJ44GL44KPLOOCiuOCh+OBhuOBmeOBkQ0KK+OBguOCiuOBnyzjgojjgYbjgbjjgYQNCivjgYLjgorjgajjgoIs44Gy44KN44GXDQor44GC44KT44GW44GELOOBsuOBp+OBguOBjQ0KK+OBhOOBqOOBhizjgojjgYbjgZgNCivjgYLjgpPjganjgYYs44KK44GI44GTDQor44GE44GM44KJ44GXLOOBv+OBiuOBkw0KK+OBhOOBkeOBoCzjgYTjgZrjgb8NCivjgZ/jgYvjga/jgZcs44GC44Gk44GKDQor44GE44GX44Gw44GXLOOBn+OBoOOBlw0KK+OBhOOBl+OCgOOCiSzjgobjgb/jgZMNCivjgYTjgZfjgoLjgags44G+44KK44GTDQor44GE44Gh44GELOOBkeOBhOOBkw0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jgagNCivjgYTjgaHjgYvjgo8s44G+44GN44GTDQor44GE44Gh44Gu44GbLOOBjeOCiOOBlw0KK+OBhOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgYTjgajjgYYs44G+44GV44KLDQor44GE44Go44GGLOOCiuOBlQ0KK+OBhOOBquOBiuOBiyzjgb7jgZXjgbXjgb8NCivjgYTjgarjgbAs44Gy44KN44Gf44GRDQor44GE44Gs44Ga44GLLOOBvuOChuOBvw0KK+OBhOOBruOBhuOBiCzjgbLjgafjgYrjgb8NCivjgYTjga7jgYvjgo8s44GX44KF44KT44GZ44GRDQor44GE44G+44GELOOBn+OBkeOBlw0KK+OBhOOBvuOBl+OCheOBjyzjgorjgofjgYYNCivjgYTjgo/jgYQs44Go44KC44Gy44GTDQor44GE44KP44GX44G+LOOBl+OCheOBhuOBhOOBoQ0KK+OBhuOBiOOBnuOBrizjgoHjgZDjgb8NCivjgYbjgYjjgaAs44Gf44GL44Gy44KNDQor44GG44GI44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBhuOBiOOBr+OCiSzjgoLjgajjgZMNCivjgYvjgY3jgZ8s44GR44KTDQor44GG44GV44G/LOOBsuOBmOOCig0KK+OBhuOBoeOBoCzjgbLjgo3jgY0NCivjgYbjgaHjgaAs44GC44KE44GTDQor44GG44Gh44G844KKLOOBv+OBleOBqA0KK+OBhuOCgeOBjOOBhCzjgYvjgZrjgYgNCivjgYbjgoHjgaQs44GC44GN44Gy44GTDQor44GG44KB44GuLOOBn+OBkeOBlw0KK+OBhuOCieOBi+OCjyzjgobjgY0NCivjgYbjgonjgbks44GX44GS44Gy44GVDQor44GI44GQ44GhLOOBn+OBoOOBlw0KK+OBiOOBmuOBvyzjgYTjgY/jgogNCivjgYjjga7jgoLjgags44Gf44KN44GGDQor44GE44G+44Gr44GXLOOBsuOCjeOChuOBjQ0KK+OBiOOBruOCguOBqCzjgbXjgb/jgZMNCivjgYjjgpPjgaks44KI44GX44GNDQor44GK44GE44GL44KPLOOBvuOBleOBjQ0KK+OBiuOBhOOBi+OCjyzjgobjgY3jgbXjgb8NCivjgYrjgYrjgYQs44KI44GG44GYDQor44GK44GK44GE44GXLOOBvuOBleOBr+OCiw0KK+OBiuOBiuOBnyzjgbXjgb/jgYvjgZoNCivjgYrjgYrjgaTjgYss44GX44KT44GZ44GRDQor44GK44GK44Gr44GXLOOBi+OBpOOBguOBjQ0KK+OBiuOBiuOBq+OBlyzjgb/jgaHjgYgNCivjgYrjgYvjgaAs44KE44GZ44GKDQor44GK44GL44GgLOOBvuOBleOCiw0KK+OBiuOBi+OBrizjgobjgY0NCivjgYrjgYvjgbks44KI44GX44Gy44KNDQor44GK44GL44G5LOOBsuOBp+OBguOBjQ0KK+OBiuOBi+OCgOOCiSzjgorjgofjgYYNCivjgYrjgYvjgoLjgags44G/44GNDQor44GK44GL44KC44GoLOOBv+OChuOBjQ0KK+OBiuOBjOOCjyzjgZ/jgYjjgZMNCivjgYrjgYzjgo8s44Go44GK44KLDQor44GK44GP44GgLOOBkeOCkw0KK+OBiuOBj+OBoCzjgabjgaTjgoQNCivjgYrjgZbjgY0s44G+44G/44GTDQor44GK44GuLOOBquOBiuOBkw0KK+OBiuOBiuOChOOBvizjgZ/jgYvjgZcNCivjgYvjgYTjgZrjgYss44Go44GX44G144G/DQor44GL44GM44G/LOOBiOOCiuOBiw0KK+OBi+OBjeOBnyzjgYvjgYrjgosNCivjgYvjgY8s44GT44GG44GYDQor44GL44GV44GELOOChuOBjeOBruOCig0KK+OBi+OBmOOBhCzjgYLjgYvjga0NCivjgYvjgZjjgZ8s44Gq44GK44KEDQor44GL44Gf44GILOOChuOBhuOBmOOCkw0KK+OBi+OBn+OChOOBvizjgb/jgaTjgZMNCivjgYvjgaQs44Go44GK44KLDQor44GL44Go44GGLOOBn+OBjw0KK+OBi+OBqOOBhizjgaDjgYTjgZnjgZENCivjgYvjgb8s44GC44Gk44GTDQor44GL44Gt44GTLOOBj+OBq+OBsuOBqA0KK+OBi+OBvuOBoCzjgYvjgZrjgbLjgo0NCivjgYvjgb8s44KI44GX44Gm44KLDQor44GL44G/44Gy44GVLOOChuOBhuOBmA0KK+OBi+OBv+OCguOBqCzjgYvjgYrjgooNCivjgYvjgb/jgoQs44GL44Ga44GKDQor44GL44G/44KE44G+LOOBvuOBjQ0KK+OBi+OCj+OBi+OBvyzjgb7jgZnjgb8NCivjgYvjgo/jgZXjgY0s44Gy44Go44GXDQor44GL44KP44GbLOOBsuOCjeOBi+OBmg0KK+OBi+OCj+OBr+OBnyzjgZ/jgZHjgaHjgYsNCivjgYvjgo/jga/jgoks44GY44KF44KT44GTDQor44GL44KP44KA44KJLOOBi+OBmuOBsuOCjQ0KK+OBi+OCj+OCguOBqCzjgZHjgYTjgZnjgZENCivjgYvjgo/jgoLjgags44Gy44KN44GXDQor44GL44KP44KC44GoLOOBv+OBoeOBig0KK+OBi+OCk+OBoCzjgZ/jgZHjgZcNCivjgY3jgY/jgaEs44GI44KKDQor44GN44Gf44GM44KPLOOBvuOBleOBtuOBvw0KK+OBjeOBn+OBquOBjCzjgZXjgYvjgYgNCivjgY3jgZ/jga4s44GX44KT44GUDQor44GN44Gf44KA44KJLOOBn+OBpOOChA0KK+OBjeOBn+OCguOBqCzjgaTjgajjgoANCivjgY3jga7jgYgs44Gy44KN44GXDQor44GN44G244GbLOOBn+OBi+OBiA0KK+OBjeOCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgY3jgoDjgoks44Go44KC44GNDQor44GN44KC44GoLOOBsuOBp+OChuOBjQ0KK+OBjeOCguOBqCzjgobjgooNCivjgY7jgofjgYbjgbYs44Gy44KN44GTDQor44GP44GrLOOBv+OBuw0KK+OBj+OBq+OBvuOBlSzjgb/jgYjjgZMNCivjgY/jgb7jgZXjgYss44Gf44GE44Gb44GkDQor44GP44KJ44GX44GSLOOBguOBjeOBig0KK+OBj+OCiuOBr+OCiSzjgZ/jgZHjgZcNCivjgZPjgYTjgZEs44KB44GQ44G/DQor44GT44GE44GR44GgLOOBn+OBpOOCjeOBhg0KK+OBk+OBhOOBmuOBvyzjgbLjgo3jgZcNCivjgZPjgYTjgazjgb4s44G/44Gh44GTDQor44GT44Gk44GLLOOBi+OBmuOBguOBjQ0KK+OBk+OBjCzjgZfjgZLjgY0NCivjgZPjgZfjgoLjgags44Gy44KN44G/44GkDQor44GT44Gg44G+LOOBn+OBhOOBoeOCjeOBhg0KK+OBk+OBoOOBvizjgb7jgZXjgYvjgZoNCivjgZTjgajjgYYs44GC44KK44KI44GXDQor44GT44Gr44GXLOOBqOOCguOBkw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgZgNCivjgZPjgbDjgoTjgZcs44G+44GV44GNDQor44GT44Gw44KE44GXLOOChOOBmeOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgbLjgafjgbLjgagNCivjgZPjgb7jgY0s44Gf44Gk44KEDQor44GT44G+44GwLOOBi+OBmuOBruOCig0KK+OBk+OBv+OChCzjgYvjgaTjgbLjgZMNCivjgZPjgoTjgb4s44G+44GV44Gu44KKDQor44GT44KE44G+LOOChOOBmeOBruOCig0KK+OBleOBhOOBjSzjgajjgoLjgbLjgZUNCivjgZXjgYTjgZTjgYYs44G/44KP44GTDQor44GV44GE44Go44GGLOOBkeOCk+OBmA0KK+OBleOBhOOBqOOBhizjgabjgaTjgYoNCivjgZXjgYTjgajjgYYs44GE44GV44KADQor44GE44GM44KJ44GXLOOBl+OCh+OBhuOBlA0KK+OBleOBiOOBkOOBlSzjgarjgb8NCivjgZXjgYvjgYQs44GC44GN44KJDQor44GV44GL44GM44G/LOOBhOOBoeOCjeOBhg0KK+OBleOBi+OBrSzjgaDjgYTjgY0NCivjgZXjgYvjgoLjgags44Go44KC44Gu44KKDQor44GV44GL44KC44GoLOOBvuOBk+OBqA0KK+OBleOBj+OCieOBhCzjgbLjgo3jgb8NCivjgZXjgY/jgonjgaAs44KK44KH44GG44GYDQor44GV44GT44KTLOOBvuOBleOBsuOCjQ0KK+OBleOBleOBjSzjgarjgarjgYgNCivjgZXjgZXjga/jgoks44KP44GL44GTDQor44GV44Go44GGLOOBkuOCkw0KK+OBleOBqOOBhizjgZjjgoXjgpPjgYTjgaENCivjgZXjgajjgYYs44GR44KT44GUDQor44GV44Go44GGLOOBquOBiuOBqA0KK+OBleOBrizjgbLjgafjgYLjgY0NCivjgZXjgo8s44GR44KT44GUDQor44GX44G244KELOOBn+OBoOOBlw0KK+OBl+OBtuOChCzjgbLjgafjgYoNCivjgZfjgb7jgaAs44G+44Gq44GIDQor44GX44G+44GgLOOBsuOBp+OBn+OBkQ0KK+OBl+OBvuOBoCzjgoTjgojjgYQNCivjgZfjgb/jgZos44KG44GN44GKDQor44GX44G/44GaLOOBoOOBhOOBmeOBkQ0KK+OBl+OBv+OBmizjgbLjgafjgY0NCivjgZfjgb/jgZos44GC44GN44GuDQor44GX44G/44GaLOOBquOBiuOChuOBjQ0KK+OBhOOBruOBhuOBiCzjgZHjgYTjgZnjgZENCivjgZfjgoIs44GV44Go44GXDQor44GX44KH44GG44GgLOOBl+OBkuOBruOCig0KK+OBmOOCk+OBrizjgb7jgZPjgagNCivjgZjjgpPjga4s44KK44KF44GG44GYDQor44GX44KT44G+44GhLOOBn+OBkeOBlw0KK+OBmeOBjuOBhCzjgb7jgZXjgarjgYoNCivjgZnjgY7jgYrjgYss44Gf44GL44Gy44GTDQor44GZ44GO44KC44GoLOOBv+OBoeOBruOCig0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgokNCivjgZnjgZrjgY0s44Gg44GE44GZ44GRDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZfjgZINCivjgZnjgZrjgY0s44KG44GG44GE44Gh44KN44GGDQor44Gb44GKLOOBruOCiuOBkw0KK+OBm+OBjSzjgZ3jgYYNCivjgYTjgZfjga/jgb4s44GR44KT44GoDQor44Gd44Gu44GgLOOBk+OBhuOBn+OCjeOBhg0KK+OBn+OBhCzjgojjgZfjgYLjgY0NCivjgZ/jgYvjgYTjgo8s44GN44KI44GXDQor44Gf44GL44GOLOOChuOBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgb7jgY3jgZMNCivjgZ/jgYvjga/jgZcs44Gu44G244KG44GNDQor44Gf44GL44Gv44GXLOOBvuOBjeOBkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgZcNCivjgZ/jgYvjga/jgZcs44GC44GN44Gy44GTDQor44Gf44GL44KA44GPLOOBkeOCk+OBlw0KK+OBn+OBkOOBoSzjgbLjgo3jgZMNCivjgZ/jgZHjgYbjgaEs44KI44GX44GTDQor44Gf44GR44GL44KPLOOBvuOBleOBlw0KK+OBn+OBkeOCjyzjgZfjgpPjgZgNCivjgZ/jgaDjgb7jgaQs44Gy44Gn44GNDQor44Gf44Gf44KJLOOBk+OBhuOBmA0KK+OBn+OBquOBiyzjgZ/jgYvjgZcNCivjgZ/jgavjgoLjgags44KG44GG44GYDQor44Gf44Gt44KA44KJLOOBguOBjeOBteOBvw0KK+OBn+OBr+OCiSzjgZXjgajjgZcNCivjgZ/jgoDjgoks44Gy44KN44GXDQor44Gg44KTLOOBn+OBi+OChuOBjQ0KK+OBhOOBhOOBoCzjgoDjga3jga7jgooNCivjgaHjgbAs44GI44GE44GZ44GRDQor44Gh44KH44GG44Go44GPLOOBsuOBp+OChuOBjQ0KK+OBpOOBi+OBr+OCiSzjgbLjgo3jgobjgY0NCivjgaTjgaTjgb8s44G+44GT44GoDQor44Gk44KC44KKLOOBvuOCiuOBkw0KK+OBpuOCieOBl+OBnyzjgobjgYbjgYTjgaHjgo3jgYYNCivjganjgYQs44KG44Gf44GLDQor44Gp44GELOOCiOOBl+OBiA0KK+OBqeOBhCzjgojjgYbjgYTjgaENCivjgajjgZfjgb4s44GT44GG44G444GEDQor44Gq44GE44Go44GGLOOBk+OBhuOBmA0KK+OBquOBi+OBhCzjgb7jgZXjgbLjgo0NCivjgarjgYvjgYQs44GX44KF44GG44G444GEDQor44Gq44GL44GKLOOBjeOBu+OBkw0KK+OBquOBi+OBjOOCjyzjgaHjgYLjgY0NCivjgarjgYzjgZXjgY0s44GL44GK44KKDQor44Gq44GL44GY44G+LOOBn+OBi+OBteOBvw0KK+OBquOBi+OBmOOBvizjga7jgZ7jgoANCivjgarjgYvjgZfjgb4s44GV44Gq44GIDQor44Gq44GL44GgLOOBjeOCiOOBkw0KK+OBquOBi+OBr+OCiSzjgb/jgarjgZMNCivjgarjgYvjgoDjgoks44GY44KF44KT44Ge44GGDQor44Gq44GL44KA44KJLOOBl+OCheOBhuOBn+OCjeOBhg0KK+OBquOBi+OCgOOCiSzjgobjgooNCivjgarjgYvjgoDjgoks44Gd44GG44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOBv+OBpOOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgYvjgaTjgbLjgZMNCivjgarjgYvjgoDjgoks44Gy44Gn44KEDQor44G744GX44GuLOOBqOOBl+OBr+OCiw0KK+OBquOBi+OCguOBqCzjgYLjgY3jgZMNCivjgYTjgZHjgaAs44G+44GV44Gf44GLDQor44Gq44GL44KC44KKLOOBqOOBiuOCiw0KK+OBquOBjOOCiOOBlyzjgZ/jgYvjgb7jgZUNCivjgarjgafjga/jgoks44Gy44KN44GXDQor44Gq44Gq44KC44KKLOOBpOOBqOOCgA0KK+OBquOCieOBleOBiyzjgbLjgo3jgZcNCivjgarjgpPjgbAs44KG44GNDQor44Gr44GXLOOBpOOBreOBguOBjQ0KK+OBq+OBl+OBi+OCjyzjgbLjgafjgYLjgY0NCivjgavjgZfjgaAs44GR44KT44GXDQor44Gr44GX44KA44KJLOOChuOBjQ0KK+OBruOBkOOBoSzjgZXjgajjgZcNCivjga7jgaAs44GR44KT44GE44GhDQor44Gu44Gq44G/LOOBmeOBkOOCiw0KK+OBruOBruOBhOOBoeOChCzjgb7jgZnjgYoNCivjga7jgoDjgoks44Go44KC44Gy44GTDQor44Gu44KC44GoLOOChuOBhuOBhOOBoQ0KK+OBr+OBjOOChCzjgarjgYrjgobjgY0NCivjga/jgY7jgo/jgoks44KE44GZ44KG44GNDQor44Gv44GPLOOBqOOCguOBsuOBqA0KK+OBr+OBlyzjgZ/jgYvjgZcNCivjga/jgZfjgZrjgoEs44KG44GG44GTDQor44Gv44GX44GwLOOBvuOBk+OBqA0KK+OBr+OBm+OBuSzjgZ/jgYvjgb7jgZUNCivjga/jgZ8s44G+44GV44G/44GhDQor44Gv44Gf44GILOOBv+OBjeOBqA0KK+OBr+OBn+OBrizjgYLjgY3jgojjgZcNCivjga/jgaHjga4s44GZ44GZ44KADQor44Gv44Gj44Go44KKLOOChuOBhg0KK+OBr+OChOOBlyzjgozjgYTjgZMNCivjga/jgoTjgZfjgaAs44GC44GN44KJDQor44Gv44KE44G144GtLOOCiOOBl+OBguOBjQ0KK+OBr+OCiSzjgZ/jgaTjgZgNCivjga/jgonjgaAs44GP44G/44GTDQor44Gv44KJ44GgLOOBvuOBleOBkw0KK+OBhOOBruOBkOOBoSzjgYvjgaTjgbXjgb8NCivjga/jgonjgaAs44Gf44GL44KG44GNDQor44Gy44GM44GX44KE44G+LOOCiOOBhuOBkw0KK+OBsuOBkOOBoSzjgbLjgafjgY0NCivjgbLjgZQs44Gy44KN44GXDQor44Gy44Gg44GuLOOBqOOCguOChA0KK+OBsuOBvuOBjSzjgajjgoLjga7jgooNCivjgY/jgonjgZfjgZIs44GL44Ga44KG44GNDQor44GE44GX44Gv44KJLOOCjOOBhOOBkw0KK+OBsuOCieOBnyzjgZfjgZLjgYoNCivjgbLjgo3jgZXjgo8s44KG44GN44GTDQor44Gy44KN44GfLOOBkeOBhOOBkw0KK+OBteOBi+OBleOCjyzjgb/jgY3jgZMNCivjgbXjgYvjgZbjgo8s44KK44GIDQor44G144GL44GW44KPLOOBn+OBi+OBlw0KK+OBteOBj+OCgOOCjSzjgb7jgZXjgajjgoINCivjgbXjgZjjgYQs44Gm44Gk44KEDQor44GE44Go44GGLOOBkeOBhOOBkw0KK+OBteOBmOOBhCzjgb/jgYrjgZMNCivjgbXjgZjjgarjgYws44GR44GE44GYDQor44G144GY44Gq44GMLOOBteOBv+OBkw0KK+OBteOBmOOCj+OCiSzjga7jgorjgbLjgo0NCivjgbXjgZjjgo/jgoks44KK44GIDQor44G144GY44KP44KJLOOBquOBiuOChuOBjQ0KK+OBteOBn+OBpOOBjizjgaTjgojjgZcNCivjgbXjgZ/jgaTjgoLjgoos44GX44Ga44GLDQor44G144KL44Gv44GfLOOBruOBtuOBguOBjQ0KK+OBteOCi+OChCzjgb7jgorjgZMNCivjgbjjgpPjgb8s44G+44GV44KLDQor44G744GXLOOBvuOBhOOBkw0KK+OBu+OBl+OBrizjgYvjgaTjgYLjgY0NCivjgbvjgoos44GN44G/44Gy44KNDQor44G744KK44GILOOBl+OCk+OBmA0KK+OBu+OCiuOBiuOBiyzjgYLjgaTjgZMNCivjgbvjgorjgYvjgo8s44Go44KC44Gy44KNDQor44G+44GI44G144GtLOOBquOBv+OBkw0KK+OBvuOBjeOBrizjgoTjgZnjga7jgooNCivjgb7jgZnjgaAs44GK44GP44GoDQor44G+44Gk44GG44KJLOOBn+OBkeOBlw0KK+OBvuOBpOOBl+OBnyzjgYLjgY3jgZcNCivjgb7jgaTjgoLjgags44Gy44Gn44Gf44GLDQor44GE44GQ44GhLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOChOOBvizjgb7jgZXjgbLjgo0NCivjgb7jgarjgbks44Gh44GuDQor44G+44KL44KE44G+LOOBquOBiuOChuOBjQ0KK+OBv+OBhuOCiSzjgb/jgaHjgosNCivjgb/jgY0s44Gf44GL44KG44GNDQor44G/44Gk44Gv44GXLOOBiOOBhOOBhOOBoQ0KK+OBv+OBpOOBuSzjgb7jgZXjgagNCivjgb/jgajjgbks44Gy44GV44KEDQor44Gh44KH44GG44Go44GPLOOBn+OBvuOBjQ0KK+OBhOOBkeOBteOBmCzjga7jgbbjgojjgZcNCivjgb/jgoTjgZbjgY0s44G+44GV44Gv44KLDQor44G/44KE44GW44GNLOOBguOBjeOCiQ0KK+OBv+OChOOBl+OBnyzjgojjgYbjgZMNCivjgb/jgoTjgZ8s44Gf44GL44GXDQor44KA44GT44GG44KE44G+LOOBv+OBoeOBsuOBpw0KK+OCgOOCieOBhCzjgb/jgbsNCivjgoDjgonjgYvjgb8s44G+44G/DQor44KA44KJ44GL44G/LOOBv+OBpOOBguOBjQ0KK+OCgOOCieOBnyzjgajjgoLjgobjgY0NCivjgoDjgonjgb7jgaQs44G+44GV44KG44GNDQor44KC44Go44GNLOOBmOOCheOCk+OBnw0KK+OCguOBqOOCiOOBlyzjgZvjgYTjgYTjgaENCivjgoLjgb/jgoTjgb4s44GI44GE44GYDQor44KC44KKLOOBn+OBi+OBlw0KK+OCguOCiizjgZ/jgZHjgoQNCivjgoLjgorjgYbjgYgs44KI44GX44Gf44GLDQor44GE44Gu44GG44GILOOBguOBjeOBruOCig0KK+OCguOCiuOBhuOBoSzjgZfjgpPjgZ/jgo3jgYYNCivjgoLjgorjgZ8s44KG44GG44GNDQor44KE44GO44GV44KPLOOBi+OBmuOBvw0KK+OChOOBl+OBvizjgZPjgYbjgZgNCivjgoTjgZnjgaAs44G144G/44Gy44GTDQor44KE44GuLOOBv+OBjQ0KK+OChOOBrizjgZ/jgaDjgZ/jgYsNCivjgoTjgb7jgZDjgaEs44GY44KF44KTDQor44KE44G+44GV44GNLOOBteOBv+OBsuOBkw0KK+OChOOBvuOBluOBjSzjga7jgbbjgbLjgZMNCivjgoTjgb7jgZfjgZ8s44GR44GE44GYDQor44KE44G+44GX44GfLOOBguOBpOOBlw0KK+OChOOBvuOBoCzjgZ/jgaTjgYoNCivjgoTjgb7jgaos44GL44GqDQor44KE44G+44G/44GhLOOBkeOBhOOBmeOBkQ0KK+OBhOOBquOBiyzjgZLjgpPjgZ8NCivjgoTjgb7jgoLjgags44GT44GG44GYDQor44KE44G+44KC44GoLOOBn+OBj+OChA0KK+OChOOBvuOCguOBqCzjgbLjgafjgYoNCivjgoTjgb7jgoLjgags44KA44Gt44Gf44GLDQor44KG44GwLOOChuOBn+OBiw0KK+OCiOOBk+OBn+OBqyzjgb7jgZPjgagNCivjgojjgZPjgoTjgb4s44KI44GX44GKDQor44KI44GX44GgLOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBoCzjgajjgZfjgYvjgZoNCivjgYTjgo/jgZXjgY0s44Go44GX44GL44GaDQor44KI44GX44GgLOOCiuOCh+OBhg0KK+OCiOOBoCzjgYjjgb8NCivjgo/jgYvjgb7jgaQs44G/44Gh44GIDQor44KP44GVLOOCiuOCh+OBhuOBkw0KK+OCj+OBoCzjgYvjgYrjgosNCivjgo/jgZ/jgarjgbks44GR44GE44Ge44GGDQor44GE44KP44GP44KJLOOBiOOBhOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgobjgY0NCivjgo/jgZ/jgarjgbks44GL44Ga44G/44GtDQor44KP44Gf44Gq44G5LOOBl+OCh+OBhuOBn+OCjeOBhg0KK+OCj+OBn+OBquOBuSzjgobjgY0NCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgY3jgojjgYvjgZoNCivjgo/jgZ/jgarjgbks44Go44GX44GIDQor44GK44GK44GELOOBruOBtuOBsuOCjQ0KK+OBhOOBhOOBoCzjgobjgY3jgZMNCivjgoDjgYvjgYQs44Gf44GL44GXDQor44G144G/44Gv44KJLOOBi+OBiuOCig0KK+OBi+OCj+OBlOOBiCzjgb7jgZXjga/jgosNCivjgY/jgo3jgYvjgo8s44Gy44KN44G/DQor44GT44GG44GgLOOBleOBqOOCiw0KK+OBteOBmOOBnyzjgobjgYbjgZMNCivjgZPjgbDjgoTjgZcs44Gf44GR44GXDQor44Gv44G+44KA44KJLOOBi+OCiA0KK+OBhOOCj+OBmyzjgoTjgZnjgbLjgo0NCivjgZ/jgZHjgaAs44G+44GV44KLDQor44GK44GM44KPLOOBsuOCjeOBguOBjQ0KK+OBv+OBmuOBnyzjgZXjgajjgosNCivjgYTjgYTjgaAs44GC44Gk44GXDQor44GC44GE44Gv44KJLOOChOOBmeOBkw0KK+OBguOBiuOBhizjgajjgZfjgY0NCivjgYLjgYrjgY0s44GX44KT44GT44GGDQor44GC44GK44GwLOOBsuOCjeOCiOOBlw0KK+OBguOBjeOCguOBqCzjgZnjgZnjgoANCivjgYLjgZXjgYQs44KG44GG44GTDQor44GE44GX44KE44G+LOOBl+OCheOCk+OBmeOBkQ0KK+OBguOBleOBiizjgYjjgb/jgZMNCivjgYLjgZXjgaAs44Go44GX44GNDQor44GC44GV44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBguOBleOBrizjgbXjgZjjgYoNCivjgYLjgZXjga4s44Go44KC44Gy44GTDQor44GC44GW44G/LOOBqOOBl+OChuOBjQ0KK+OBguOBmeOBvizjgZfjgoXjgYbjgbjjgYQNCivjgYLjgZ3jgYYs44KG44GLDQor44GC44Gg44GhLOOBjeOCh+OBhuOBhOOBoQ0KK+OBguOBqOOBvyzjga7jgorjgbLjgo0NCivjgYLjgarjgb8s44KE44GZ44Gy44GVDQor44GC44G5LOOBvuOBleOBiuOBvw0KK+OBguOBuSzjgb7jgZPjgagNCivjgYLjgbks44G+44GT44GoDQor44GC44G+44GuLOOBvuOBleOBqOOBlw0KK+OBguOChOOBuSzjgZ/jgo3jgYYNCivjgZ/jgZHjgY3jgZ8s44G+44Gq44G2DQor44GC44KJ44GELOOBvuOBjQ0KK+OBhOOBpOOBrizjgb/jgY3jgYoNCivjgYLjgorjgYvjgo8s44KI44GX44Gu44G2DQor44GC44KK44GfLOOBk+OBhuOBhOOBoQ0KK+OBguOCk+OBmOOChSzjgaTjgojjgZcNCivjgYLjgpPjganjgYYs44G+44GV44GNDQor44GC44KT44Gp44GGLOOCiuOCheOBhuOBnw0KK+OBhOOBoeOBruOBmyzjgZPjgZrjgYgNCivjgYTjgYTjgazjgb4s44Gy44KN44KG44GNDQor44GE44GG44GILOOCiOOBl+OBguOBjQ0KK+OBhOOBjOOCieOBlyzjgYLjgY3jgZMNCivjgYTjgZHjgYbjgaEs44GK44KK44GLDQor44GE44GR44GM44G/LOOBv+OBruOCiw0KK+OBhOOBkeOBoCzjgZ/jgZHjgZcNCivjgYTjgorjgZ8s44KE44GZ44GC44GNDQor44GE44GR44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBhOOBkeOBoCzjgZfjgofjgYbjgYTjgaENCivjgYTjgZHjgaAs44GY44KN44GGDQor44GE44GX44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBl+OBhCzjgajjgoLjgZMNCivjgYTjgZfjgYQs44Gq44GK44G/DQor44GE44GX44GK44GLLOOBl+OCk+OBhOOBoQ0KK+OBhOOBvuOBhCzjgZ/jgZHjgZcNCivjgYTjgZfjgYvjgo8s44KK44KH44GG44G444GEDQor44GE44GX44GL44KPLOOBqOOCguOBruOBtg0KK+OBhOOBl+OBkOOCjSzjgobjgY3jgbLjgo0NCivjgYTjgZfjgaAs44Gf44Gk44KG44GNDQor44GE44Gb44GNLOOBn+OBkeOBlw0KK+OBhOOBoeOBjSzjgb7jgZXjgagNCivjgYTjgaHjga7jgZss44Go44KC44Gy44KNDQor44GE44Gh44Gu44G/44KELOOBteOBv+OBn+OBkQ0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYTjgajjgYYs44Gu44KK44GTDQor44GE44Gq44GgLOOCiOOBl+OBn+OBiw0KK+OBhOOBquOBsCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYTjga/jgoks44GN44KI44Gf44GLDQor44GE44Gu44GG44GILOOBiuOBleOCgA0KK+OBhOOBruOBhuOBiCzjga7jgorjgZMNCivjgYTjga7jgYbjgYgs44Go44KC44KG44GNDQor44GE44G+44GE44Ga44G/LOOBguOBpOOBlw0KK+OBhOOBvizjgZXjgajjgZMNCivjgYTjgb7jgaAs44G/44GKDQor44GE44G+44GaLOOBpOOCiOOBlw0KK+OBhOOBvuOCgOOCiSzjgb/jgaTjgajjgZcNCivjgYTjgorjgZ/jgass44Gf44GP44GYDQor44GE44KP44GNLOOBn+OBpOOChA0KK+OBhOOCj+OBleOBjSzjgb7jgooNCivjgYTjgo/jgZXjgY0s44G+44GqDQor44GE44KP44GZ44GOLOOBv+OBiw0KK+OBhOOCj+OBr+OBlyzjgYTjgaHjgo3jgYYNCivjgYTjgo/jgbbjgaEs44Gq44G7DQor44GE44KP44G744KKLOOBguOBjeOBsuOBkw0KK+OBhuOBiOOBoCzjga7jgbbjgYgNCivjgYbjgYjjgb7jgaQs44Gf44GL44GXDQor44GG44GZ44GELOOBqOOCguOBhOOBoQ0KK+OBhuOBmeOBhCzjgb7jgZXjgbLjgo0NCivjgYbjgaHjgaAs44GL44GK44KKDQor44GG44Gk44G/LOOBvuOBjeOBkw0KK+OBhuOCgeOBoCzjgbLjgafjga7jgbYNCivjgYbjgonjga4s44KE44GZ44Gy44KNDQor44GI44GM44KPLOOBn+OBkeOBlw0KK+OBiOOBluOBjSzjgYLjgaTjgZMNCivjgYjjgajjgYYs44GR44KT44GYDQor44GI44Gu44KC44GoLOOBr+OCi+OBsuOCiQ0KK+OBiOOBruOCguOBqCzjgYLjgY3jgokNCivjgYjjgb4s44GC44GN44GTDQor44GI44KT44GpLOOBsuOBleOBruOCig0KK+OBiOOCk+OBqSzjgojjgZfjgb7jgZUNCivjgYrjgYTjgZ/jgass44KG44GNDQor44GK44GGLOOCiOOBl+OBsuOCjQ0KK+OBiuOBiuOBhCzjgYvjgYrjgosNCivjgYrjgYrjgYgs44GC44GN44Gy44KNDQor44GK44GNLOOBguOChA0KK+OBiuOBiuOBj+OBvCzjgbXjgb/jga7jgooNCivjgYrjgYrjgZXjgo8s44GE44GV44GKDQor44GK44GK44GV44KPLOOBsuOBleOBlw0KK+OBhOOCj+OBjeOCiizjgo/jgZ/jgosNCivjgYrjgYrjgZnjgb8s44KC44Go44Gy44GTDQor44GK44GK44GfLOOBv+OBpOOBsuOCjQ0KK+OBiuOBiuOBnyzjgZ/jgYvjgZcNCivjgYrjgYrjgaTjgYss44GC44GN44Gu44KKDQor44GK44GK44Gk44GLLOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBpOOBiyzjgajjgoLjgbLjgo0NCivjgYrjgYrjgaTjgY0s44GY44KF44KTDQor44GK44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OBiuOBiuOBq+OBlyzjgojjgYbjgZMNCivjgYrjgYrjgbws44G+44GV44GTDQor44GK44G+LOOBjeOCiOOBlw0KK+OBiuOCgOOCiSzjgZfjga7jgbYNCivjgYrjgoDjgoks44GP44G/DQor44GE44GX44GELOOBquOBiuOBkw0KK+OBiuOBiuOCguOCiizjgojjgZfjgbLjgo0NCivjgYrjgYrjgoLjgoos44Gy44KN44GL44GaDQor44GK44GK44KC44KKLOOBruOBtuOBsuOBlQ0KK+OBiuOBiuOCj+OBoCzjgZ/jgYvjgbXjgb8NCivjgYrjgYvjgYQs44KM44GEDQor44GK44GL44GW44GNLOOBqOOCguOBv+OBoQ0KK+OBiuOBi+OBluOBjSzjgYvjgZrjgbLjgagNCivjgYTjgZHjgaAs44GC44GN44GKDQor44GK44GL44GuLOOBiOOBhOOBhOOBoQ0KK+OBiuOBi+OBuSzjgYbjgonjgokNCivjgYrjgYvjgoLjgags44GI44Gk44GTDQor44GK44GM44KPLOOChuOBhuOBkw0KK+OBiuOBjOOCjyzjgYLjgY3jgokNCivjgYrjgYzjgo8s44KK44KH44GG44GE44GhDQor44GK44GM44KPLOOBjeOCiOOBrg0KK+OBiuOBiuOBjOOCj+OCiSzjgY/jgavjga/jgosNCivjgYrjgY/jga/jgoks44GV44Go44GXDQor44GK44GP44KE44G+LOOBvuOBkw0KK+OBiuOBkOOCiSzjgoTjgZnjga/jgosNCivjgY3jgZ/jgoDjgoks44G+44KK44GTDQor44GK44GW44KPLOOBl+OBkuOBv+OBpA0KK+OBiuOBoSzjgoLjgajjgbLjgo0NCivjgYrjga4s44Gf44GL44GXDQor44GK44GK44GuLOOBoeOBiw0KK+OBiuOBruOBp+OCiSzjgZHjgpPjgZcNCivjgYrjgbDjgZ8s44GL44Gk44KI44GXDQor44GK44GK44KE44G+LOOBoeOBmuOCiw0KK+OBiuOCk+OBnyzjgoHjgZDjgb8NCivjgYTjgo/jgZ8s44Gf44GR44GXDQor44GL44GE44G244GNLOOChuOBvw0KK+OBi+OBjeOCguOBqCzjgb7jgaHjgZMNCivjgYvjgZbjgZDjgaEs44G+44GV44Gu44KKDQor44GL44GV44GW44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OBmCzjgZXjgYrjgooNCivjgYvjgZjjgoDjgoks44Gv44KL44GqDQor44GL44GX44KP44GELOOBruOCiuOBkw0KK+OBi+OBl+OCj+OBsOOCiSzjgarjgYrjgoQNCivjgYvjgZ/jgY/jgoks44KI44GX44KG44GNDQor44GL44Gf44KE44G+LOOBvuOBhOOBkw0KK+OBi+OBpOOBrizjgZ/jgYvjga7jgooNCivjgYvjgaks44Gh44GI44GTDQor44GL44Go44GGLOOBruOBtuOChuOBjQ0KK+OBhOOBneOBrizjgb/jganjgooNCivjgYvjgajjgYYs44Gf44GL44GXDQor44GL44Go44GGLOOBl+OBuw0KK+OBi+OBqOOBhizjgYLjgY3jgojjgZcNCivjgYvjgajjgoos44GR44KT44GYDQor44GL44Gq44GV44GLLOOCguOBqOOBsuOCjQ0KK+OBi+OBquOBluOCjyzjgb/jgaHjgZMNCivjgYvjgarjgoTjgb4s44GL44Gq44GTDQor44GL44Gt44GTLOOChuOBjeOBig0KK+OBi+OBreOBkyzjgajjgoLjgZMNCivjgYvjga3jgaAs44KC44Go44GNDQor44GM44G/LOOBsuOCjeOBlw0KK+OBi+OCgeOBiuOBiyzjgb7jgarjgb8NCivjgYvjgonjgZXjgo8s44GC44GN44Gm44KLDQor44GL44KJ44GX44G+LOOBjeOCiOOBteOBvw0KK+OBi+OCi+OBhOOBlyzjgYTjgZrjgb8NCivjgYvjgo/jgYQs44Gq44GK44KG44GNDQor44GL44KP44GELOOBn+OBi+OBiuOBvw0KK+OBi+OCj+OBi+OBvyzjgb7jgZXjgb8NCivjgYvjgo/jgYvjgb8s44GR44KT44GfDQor44GL44KP44GaLOOBguOBpOOBlw0KK+OBi+OCj+OBquOBiyzjgYjjgYTjgZnjgZENCivjgYvjgo/jga4s44Gf44GL44GXDQor44GL44KP44Gw44GfLOOBquOBiuOChA0KK+OBi+OCj+OBuSzjgZfjgbsNCivjgYvjgo/jgb8s44GX44KT44GYDQor44GL44KT44Gw44GXLOOBv+OBoeOBkw0KK+OBi+OCk+OBsOOCiSzjgYLjgaTjgZcNCivjgY3jgZfjgYQs44KE44GZ44GIDQor44GN44GX44GgLOOBguOBjeOBsuOCjQ0KK+OBjeOBn+OBjOOCjyzjgb7jgZXjgY0NCivjgY3jgZ/jgZfjgo0s44GL44Ga44KI44GXDQor44GN44Gf44Gv44KJLOOCiOOBl+OBi+OBmg0KK+OBjeOBn+OCgOOCiSzjgojjgYbjgYTjgaENCivjgY3jgaks44Gh44GI44GTDQor44GN44Gu44GX44GfLOOCj+OBi+OBkw0KK+OBiOOBoCzjgYjjgYQNCivjgY3jgoDjgoks44Gq44Gk44GTDQor44GN44KA44KJLOOBl+OBkuOCiw0KK+OBjeOCgOOCiSzjgYLjgaTjgZcNCivjgY3jgojjgarjgYws44Gu44KK44G/44GkDQor44GN44KI44G/44KELOOBn+OBi+OBig0KK+OBjeOCiuOChCzjgb7jgZXjgY0NCivjgYTjgajjgYYs44Go44KC44KEDQor44GP44GX44GgLOOBjeOCh+OBhuOBkw0KK+OBj+OBmOOCieOBiuOBiyzjgaDjgYTjgY0NCivjgY/jgavjgoLjgags44Gf44GR44Go44GXDQor44GP44Gs44GOLOOBqOOBiuOCiw0KK+OBj+OBvCzjgYLjgaTjgZcNCivjgY/jgbzjgZXjgo8s44G+44GV44GNDQor44GP44G844GfLOOBn+OBi+OBsuOCjQ0KK+OBj+OCgeOBrizjga7jgbbjgYoNCivjgYTjgZfjgZDjgo0s44Gf44KN44GGDQor44GP44KJLOOBqOOCguOBguOBjQ0KK+OBj+OCieOBleOCjyzjgbXjgb/jga/jgosNCivjgY/jgonjgZ8s44KK44KH44GG44GTDQor44GP44KN44GL44KPLOOBn+OBi+OBsuOBlQ0KK+OBj+OCjeOBmSzjgb7jgb/jgZMNCivjgY/jgo3jgoTjgarjgY4s44GV44KT44GX44KN44GGDQor44GE44Gq44Go44G/LOOBoOOBhOOBmeOBkQ0KK+OBk+OBhOOBkSzjgb7jgobjgZMNCivjgZPjgYTjgZEs44KP44Gf44KLDQor44GT44GE44GX44GL44KPLOOBsuOBp+OChuOBjQ0KK+OBk+OBhOOBmuOBvyzjgabjgovjgb8NCivjgZPjgYTjgZrjgb8s44Gu44KK44G+44GVDQor44GT44GE44GnLOOBvuOBqeOBiw0KK+OBk+OBmuOBvizjgb7jgYTjgZMNCivjgZPjgpPjga4s44GC44Gk44GTDQor44GT44KE44G+LOOBoOOBhOOBjQ0KK+OBk+OCiizjgZ/jgYvjgbLjgacNCivjgYvjgaTjgYvjgo8s44Gb44GE44GE44Gh44KN44GGDQor44GT44GM44GuLOOBguOBjeOBteOBvw0KK+OBk+OBl+OBhCzjgajjgoLjgbLjgo0NCivjgZPjgZfjgb7jgoss44Gg44GE44Go44GPDQor44GT44GZ44GOLOOBvuOBleOBlw0KK+OBk+OBm+OBjSzjgb7jgarjgbYNCivjgZPjgZ/jgass44KE44GE44GhDQor44GT44Gg44G+LOOBm+OCk+OBmA0KK+OBk+OBq+OBlyzjgZ/jgb/jgZMNCivjgZPjgavjgZcs44Gf44Gg44GXDQor44GT44GwLOOBqOOCguOBjQ0KK+OBk+OBsOOBn+OBkSzjgZHjgYTjgYTjgaENCivjgZPjgbDjgoTjgZcs44GC44GN44GTDQor44GT44Gw44KE44GXLOOChOOBmeOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgojjgYbjgZgNCivjgZPjgbDjgoTjgZcs44G+44GV44KEDQor44GT44Gw44KE44GXLOOCiOOBl+OBig0KK+OBquOBi+OCgOOCiSzjgojjgYbjgbjjgYQNCivjgZPjgbDjgoTjgZcs44Gy44KN44GTDQor44GT44G844KKLOOBj+OBq+OBsuOBkw0KK+OBk+OBvuOBpCzjgaTjgojjgZcNCivjgZPjgoTjgb4s44Gk44GO44GKDQor44GT44KT44GuLOOBn+OBi+OBkw0KK+OBleOBhOOBqOOBhizjgajjgoLjgYgNCivjgZXjgYTjgajjgYYs44GC44Gk44GTDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgajjgYYs44G144GN44GTDQor44GV44GL44GELOOBoeOBsuOCjQ0KK+OBleOBi+OBhCzjgY3jgojjgZcNCivjgZXjgYvjgYQs44G/44Gt44GKDQor44GV44GL44GN44Gw44KJLOOBqOOBl+OBjQ0KK+OBleOBi+OBkOOBoSzjgYTjgaHjgo3jgYYNCivjgYTjgo/jgZXjgY0s44KM44GE44GTDQor44GV44GL44KC44GoLOOBruOCiuOBig0KK+OBleOBi+OCguOBqCzjgojjgYbjgZgNCivjgZXjgYvjgoLjgags44GY44KF44KT44GTDQor44GV44GV44GNLOOBi+OBpOOBqOOBlw0KK+OBleOBleOBjSzjgZPjgZXjgY8NCivjgZXjgZXjgY0s44GY44KF44KT44GTDQor44GV44GV44GNLOOCjOOBqg0KK+OBhOOBvuOBr+OBlyzjgbLjgo3jgb8NCivjgZXjgaTjgb8s44Gf44GL44KG44GNDQor44GV44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBleOBqOOBhizjgobjgYbjgZgNCivjgZXjgajjgYYs44Go44KC44GP44GrDQor44GV44Go44GGLOOBvuOCiuOBkw0KK+OBleOBqOOBhizjgZPjgYbjgY0NCivjgZXjgajjgYYs44KG44G/44GTDQor44GV44GuLOOBl+OBrg0KK+OBhOOBl+OBkOOCjSzjgbLjgafjgZ/jgYsNCivjgZXjgo/jgoTjgarjgY4s44G/44Gk44Gy44KNDQor44GX44GK44GfLOOBkeOBhOOBmeOBkQ0KK+OBl+OBjSzjgobjgYbjgZMNCivjgZfjgZLjgYrjgYss44KM44GEDQor44GX44GS44GfLOOBvuOCguOCiw0KK+OBl+OBl+OBqSzjgorjgYsNCivjgZfjgarjgaAs44KI44GX44GTDQor44GE44GnLOOCiOOBl+OBteOBvw0KK+OBl+OBsOOBnyzjgojjgYbjgZMNCivjgZfjgbDjgZ8s44GC44KK44Gy44GoDQor44GX44Gw44GfLOOCiuOCh+OBhg0KK+OBl+OBsOOBnyzjgZfjgoXjgYbjgYTjgaENCivjgZfjgb7jgZos44KC44Gq44G/DQor44GX44G+44GgLOOCiOOBl+OBleOBoA0KK+OBl+OBvuOBmizjgaTjga3jgYoNCivjgZfjgb/jgZos44Gy44Gn44Gf44GgDQor44GX44G/44GaLOOBj+OBq+OBiA0KK+OBl+OCguOBr+OBlyzjgbLjgo3jga7jgbYNCivjgZfjgoLjgoTjgb4s44GL44GK44KKDQor44GY44KH44GGLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgY3jgofjgYbjgZMNCivjgZnjgYzjgZ8s44Gu44G244GIDQor44GZ44GM44KELOOBguOBjeOBsuOCjQ0KK+OBmeOBjuOBnyzjgZ/jgYvjgbLjgo0NCivjgZnjgY7jgarjgYss44GI44GE44GYDQor44GZ44GO44KC44GoLOOBteOBv+OBig0KK+OBmeOBjuOChOOBvizjgYvjgZrjgaoNCivjgZnjgY7jgoTjgb4s44KG44GG44GYDQor44GZ44GO44KE44G+LOOBqOOBiuOCiw0KK+OBmeOBkuOBrizjgZTjgYYNCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44Ga44GNLOOBvuOBleOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgafjgYLjgY0NCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44Ga44GNLOOChuOBhuOBkw0KK+OBhOOCj+OBleOBjSzjgajjgoLjgbXjgb8NCivjgZnjgZrjgY0s44KI44GG44GTDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBhOOBoeOBi+OCjyzjgorjgYsNCivjgZvjgY0s44G+44GV44KI44GXDQor44Gb44GN44GQ44GhLOOBkeOBhOOBkw0KK+OBm+OBjeOChCzjgZHjgpPjgZgNCivjgZvjgZMs44GR44KT44Gf44KN44GGDQor44Gb44KJLOOBsuOCjeOChuOBjQ0KK+OBneOBjCzjgobjgYsNCivjgZ3jgYws44GI44GE44GTDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBi+OBv+OChCzjgYvjgZnjgb8NCivjgZ3jgpPjgY8s44Go44GX44GL44GaDQor44Gf44GL44GNLOOChuOBv+OBkw0KK+OBn+OBi+OBjizjgojjgZfjga/jgosNCivjgZ/jgYvjgZXjgY0s44KE44GZ44GKDQor44GE44GR44GgLOOBsuOBqOOBlw0KK+OBn+OBi+OBl+OBvizjgoTjgZnjgbLjgagNCivjgZ/jgYvjga4s44GR44KT44GE44GhDQor44Gf44GL44GuLOOBsuOBp+OBjQ0KK+OBn+OBi+OBrizjgb7jgY3jgZMNCivjgZ/jgYvjga4s44Gq44GK44Gy44KNDQor44Gf44GL44GuLOOCiOOBl+OBsuOBlQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYoNCivjgZ/jgYvjga/jgZcs44GT44GG44G444GEDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYzjgY8NCivjgZ/jgYvjga/jgZcs44GL44GqDQor44Gf44GL44Gv44GXLOOBn+OBi+OBruOCig0KK+OBn+OBi+OBvuOBpCzjgbLjgo3jgZcNCivjgZ/jgYzjgb8s44Gy44Go44GXDQor44Gf44GL44G/44GW44KPLOOCiuOCheOBhuOBjQ0KK+OBn+OBi+OCieOBoCzjgZfjgpPjgYTjgaENCivjgZ/jgY3jgYvjgo8s44GI44G/44GTDQor44Gf44GN44GW44KPLOOBhOOCj+OBig0KK+OBhOOBhOOBrizjgobjgb8NCivjgZ/jgZHjgYQs44KI44GX44Gy44KNDQor44Gf44GR44GG44GhLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBn+OBkeOBhuOBoSzjgZ/jgYvjgY3jgogNCivjgZ/jgZHjgY3jgZ8s44G+44GNDQor44Gf44GR44Gq44GLLOOBteOBv+OBig0KK+OBn+OBkeOBruOBhuOBoSzjgorjgofjgYbjgZgNCivjgZ/jgZHjga/jgaos44G144G/DQor44GE44Go44GGLOOBqOOBj+OBkw0KK+OBn+OBkeOCguOBqCzjgb7jgZXjgosNCivjgZ/jgZHjgoLjgags44GL44Ga44Gy44GTDQor44Gf44GULOOBmeOBmeOCgA0KK+OBn+OBleOBiyzjgojjgZfjga7jgbYNCivjgZ/jgZjjgb4s44Gy44KN44GL44GaDQor44Gf44GX44KNLOOCiOOBl+OBkw0KK+OBn+OBl+OCjSzjgZTjgYYNCivjgZ/jgZ/jgoks44GV44Gq44GIDQor44Gf44Gh44Gw44GqLOOBguOChOOBkw0KK+OBhOOBoeOCgOOCiSzjgZXjgajjgZcNCivjgZ/jgabjgYTjgZcs44KG44GNDQor44Gf44Gm44GuLOOBsuOBleOBlw0KK+OBn+OBpuOBrizjgaDjgYTjgZ4NCivjgZ/jgarjgYss44GR44KT44GE44Gh44KNDQor44Gf44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBn+OBquOBiyzjgarjgYrjgZMNCivjgZ/jgarjgYss44Go44GK44KLDQor44Gf44Gq44GLLOOBjeOCh+OBhuOBkw0KK+OBn+OBquOBiyzjgoTjgZnjgZcNCivjgZ/jgarjgYss44KI44GG44GTDQor44GM44G/LOOBvuOBk+OBqA0KK+OBn+OBquOBvyzjgaTjga3jgYoNCivjgZ/jgass44G+44G/DQor44Gf44Gr44GQ44GhLOOChuOBv+OBkw0KK+OBquOBi+OBiuOBiyzjgobjgY0NCivjgZ/jgavjgZbjgo8s44KI44GX44Gu44KKDQor44Gf44Gr44GgLOOBruOBtuOChuOBjQ0KK+OBn+OBq+OCguOBqCzjgYLjgY3jgb8NCivjgZ/jga7jgYrjgYss44G/44GI44GTDQor44Gf44Gw44GfLOOBvuOBleOBjQ0KK+OBn+OBr+OCiSzjgb/jgYvjgZMNCivjgZ/jgoDjgoks44KG44GN44Gy44KNDQor44Gh44GL44GW44KPLOOBruOCiuOBsuOBqA0KK+OBoeOBrizjgZ/jgYvjga7jgbYNCivjgaHjga/jgoks44Gy44GV44GuDQor44Gh44KF44GGLOOBleOChOOBiw0KK+OBoeOCheOBhuOBvizjgZHjgYTjgYTjgaENCivjgaTjgYvjgaAs44Gy44Gn44Gf44GRDQor44Gk44GL44KC44GoLOOBruOBtuOBn+OBiw0KK+OBpOOBi+OCguOBqCzjgobjgZ/jgYsNCivjgaTjgaAs44Go44KC44Gu44KKDQor44Gk44Gh44GgLOOBvuOBleOBig0KK+OBpOOBoeOChCzjgZvjgozjgaoNCivjgaTjgaHjgoQs44GC44GNDQor44Gk44Gt44GNLOOBj+OBv+OBkw0KK+OBp+OBv+OBmyzjgZ/jgYvjgZcNCivjgabjgonjgYrjgYss44GL44Gq44GTDQor44GE44Ga44G/LOOBguOBpOOBlw0KK+OBqOOBhizjgZvjgYTjgZgNCivjgajjgZgs44G+44GV44GTDQor44Go44GX44GK44GLLOOBv+OBmeOBmg0KK+OBqOOBoCzjga/jgarjgYgNCivjgajjgbPjgarjgYQs44GC44GN44GTDQor44Go44KC44GELOOBv+OBreOBjQ0KK+OBqOOChOOBvizjgYLjgYTjgZMNCivjgajjgojjgZfjgb4s44GT44GG44GE44GhDQor44Go44KI44GgLOOBn+OBj+OChA0KK+OBqOOCiOOBr+OBvizjgajjgZfjgYoNCivjgarjgYzjgYgs44GR44KT44GYDQor44Gq44GM44GILOOBl+OBuw0KK+OBquOBi+OBiizjgajjgoLjgbLjgacNCivjgarjgYvjgYos44GR44KT44Gf44KN44GGDQor44Gq44GL44GY44G+LOOBqOOCguOBkw0KK+OBquOBi+OBmOOBvizjgojjgZfjgZ/jgYsNCivjgarjgYvjgZjjgb4s44Gk44KI44GXDQor44Gq44GM44GX44G+LOOBvuOCig0KK+OBquOBjOOBmyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZ7jga4s44GY44KF44KT44GTDQor44Gq44GL44GfLOOBguOBleOBkw0KK+OBquOBjOOBnyzjgojjgZfjgbLjgZMNCivjgarjgYzjgags44G+44KK44GTDQor44Gq44GL44Gr44GXLOOBkuOCkw0KK+OBquOBi+OBrizjgojjgZfjgZMNCivjgarjgYzjga4s44Gy44KN44GNDQor44Gq44GM44GuLOOBn+OBi+OBlw0KK+OBquOBjOOBrizjgabjgaTjgoQNCivjgarjgYzjga/jgoks44KI44GX44KG44GNDQor44Gq44GL44Gy44GM44GXLOOCgeOBkOOBvw0KK+OBquOBi+OCgOOCiSzjgY3jgbXjgb8NCivjgYTjgazjgZrjgYss44Go44KC44GL44GaDQor44Gq44GL44KA44KJLOOBteOBv+OBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgajjgZcNCivjgarjgYvjgoDjgoks44G/44G7DQor44Gq44GL44KA44KJLOOBvuOBleOBi+OBpA0KK+OBquOBi+OChCzjgobjgZ/jgYsNCivjgarjgYvjgoQs44GR44GEDQor44Gq44KJ44GV44GNLOOBruOBtuOBquOCig0KK+OBquOCiuOBnyzjgorjgoXjgYbjgZ8NCivjgarjgorjgZ8s44KI44GX44GTDQor44Gr44GE44GgLOOBqOOCguOBguOBjQ0KK+OBq+OBl+OBi+OCjyzjgYTjgo/jgYoNCivjgavjgZfjgoDjgoks44Gh44GO44KKDQor44Gr44GX44KA44KJLOOBn+OBhOOBhOOBoQ0KK+OBq+OBl+OCgOOCiSzjgYvjgaTjgb8NCivjgavjgZfjgoTjgb4s44Go44GK44KLDQor44Gr44GX44KE44G+LOOBruOCiuOBvuOBlQ0KK+OBq+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgavjgo8s44KG44GN44GIDQor44Gs44G+44GfLOOBquOBiuOBkw0KK+OBrOOBvuOBnyzjgZ/jgYvjgbLjgo0NCivjgazjgb7jgaAs44Gk44KI44GXDQor44Gt44GO44GXLOOBhOOBleOBig0KK+OBruOBluOBjSzjgZ/jgYvjgarjgYoNCivjga7jgYzjgb8s44KG44GLDQor44Gu44GgLOOBn+OBpOOChA0KK+OBruOBr+OCiSzjgaTjgojjgZcNCivjga7jgbbjga/jgoks44KG44GG44GTDQor44Gv44GMLOOBvuOBleOBqA0KK+OBr+OBjuOCj+OCiSzjgZ/jgaDjgYvjgZoNCivjga/jgY7jgo/jgoks44GL44Gk44KJDQor44Gv44GX44Ga44KBLOOBn+OBi+OBlw0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgobjgY0NCivjga/jgZfjgoLjgags44Gd44KI44GLDQor44Gv44GX44KC44GoLOOBguOBjeOCiQ0KK+OBr+OBm+OBjOOCjyzjgb7jgZPjgagNCivjga/jgZvjgYzjgo8s44G+44KG44G/DQor44Gv44Gb44GM44KPLOOBi+OBmuOBn+OBiw0KK+OBr+OBm+OBuSzjgojjgYbjgbjjgYQNCivjga/jgZ8s44G+44GV44Gy44KNDQor44Gv44Gf44GR44KE44G+LOOBr+OBmuOBjQ0KK+OBr+OBn+OBquOBiyzjgYTjgY/jgZ7jgYYNCivjga/jgZ/jga4s44GC44Gk44KIDQor44Gv44Gj44Go44KKLOOBguOBjeOCiOOBlw0KK+OBr+OBquOBluOBjSzjgZ/jgaTjgoQNCivjga/jgarjgbbjgZUs44GK44GV44KADQor44Gv44Gq44KA44KJLOOBlOOBhg0KK+OBsOOBsCzjgYLjgY3jgZMNCivjga/jgb7jgZXjgY0s44KI44GX44KG44GNDQor44Gv44G+44GgLOOBpOOBkOOBjQ0KK+OBr+OChOOBlyzjgb7jgarjgbYNCivjga/jgoTjgZcs44Gf44GR44Gy44KNDQor44Gv44KE44GXLOOBvuOBk+OBqA0KK+OBr+OChOOBlyzjgorjgofjgYYNCivjga/jgoks44G+44GV44Gy44GnDQor44Gv44KJ44GX44G+LOOBiuOBleOCgA0KK+OBr+OCieOBoCzjgarjgYrjgoQNCivjga/jgonjgaAs44KK44GIDQor44Gv44KL44Gf44GrLOOBn+OBi+OBsuOCjQ0KK+OBsuOBjOOBl+OBrizjgb7jgY0NCivjgbLjgYzjgZfjgoTjgb4s44KG44GGDQor44Gy44GQ44GhLOOBl+OBkuOBv+OBpA0KK+OBhOOBl+OBr+OCiSzjgZ/jgZHjgojjgZcNCivjgbLjgZjjgYvjgZ8s44Gy44KN44GC44GNDQor44Gy44GzLOOBn+OBpOOBqA0KK+OBsuOCh+OBhuOBiCzjgajjgoLjgbLjgo0NCivjgbLjgonjgYQs44Gy44Gn44Gu44KKDQor44Gy44KJ44GL44KPLOOBmOOCheOCk+OChA0KK+OBsuOCieOBjyzjgZfjgZLjgY0NCivjgbLjgonjgZXjgo8s44GR44KT44GYDQor44GE44Gu44Gv44KJLOOBn+OBj+OBsuOCjQ0KK+OBsuOCieOBnyzjgY/jgavjgaTjgZANCivjgbLjgonjgazjgb4s44GL44Ga44GKDQor44Gy44KJ44GuLOOBn+OCjeOBhg0KK+OBsuOCieOChOOBvizjgZfjgZLjgosNCivjgbLjgo3jgYbjgaEs44KM44GEDQor44Gy44KN44GK44GLLOOChuOBi+OBkw0KK+OBsuOCjeOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgbXjgY/jgYQs44G+44GV44GNDQor44G144GP44GgLOOBn+OBi+OBsuOCjQ0KK+OBteOBj+OBoCzjgZnjgZnjgoANCivjgZPjgoos44GN44KH44GG44GTDQor44G144GY44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBteOBmOOBhCzjgaDjgYTjgZ4NCivjgYTjgacs44Gh44GI44GTDQor44G144GY44GELOOBsuOCjeOBi+OBmg0KK+OBteOBmOOBiizjgZ/jgYvjgobjgY0NCivjgbXjgZjjgYrjgYss44GR44KT44GE44GhDQor44G144GY44GP44KJLOOBjeOBj+OBkw0KK+OBteOBmOOBleOCjyzjgZPjgYbjgZgNCivjgbXjgZjjgZXjgo8s44GR44KT44Gf44KN44GGDQor44G144GY44GX44GSLOOBkeOBhOOBhOOBoQ0KK+OBteOBmOOBnyzjgZHjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44Gu44KK44GKDQor44G144GY44GoLOOChuOBiw0KK+OBteOBmOOBquOBjCzjgarjgYzjgb7jgZUNCivjgbXjgZjjgo/jgoks44Go44KC44Gv44KLDQor44G144GY44KP44KJLOOBqOOBl+OBjQ0KK+OBteOBmyzjgYvjgYrjgosNCivjgbXjgovjgYvjgo8s44G+44GV44G/44GkDQor44G144KL44GL44KPLOOChuOBhuOBhOOBoQ0KK+OBhOOBl+OBhCzjgaDjgYTjgZnjgZENCivjgbXjgovjgZXjgo8s44Gy44KN44GNDQor44G144KL44GfLOOBk+OBhuOBhOOBoQ0KK+OBteOCi+OBnyzjgojjgZfjgYLjgY0NCivjgbXjgovjgZ8s44Gq44GK44GTDQor44G144KPLOOBv+OBig0KK+OBu+OBlyzjgb7jgobjgb8NCivjgbvjgZ3jgaAs44GR44GE44GZ44GRDQor44GE44GX44GELOOBsuOCjeOBv+OBoQ0KK+OBu+OCiuOBi+OCjyzjgarjgYrjgZMNCivjgbvjgorjgZPjgZcs44Gy44KN44GC44GNDQor44G744KT44GgLOOBruOBvOOCiw0KK+OBvuOBiOOBi+OCjyzjgovjgb8NCivjgb7jgYjjgaAs44G/44Gq44GTDQor44G+44GI44GgLOOBn+OCjeOBhg0KK+OBvuOBiOOBoCzjgZ/jgYvjgZcNCivjgb7jgYjjga4s44GV44Go44GXDQor44G+44GNLOOBquOBvw0KK+OBvuOBjeOBnuOBrizjgZXjgoTjgYsNCivjgb7jgY3jgZ8s44GL44Gk44KG44GNDQor44G+44GN44GuLOOCgOOBreOBjQ0KK+OBvuOBleOBjSzjgobjgZrjgosNCivjgb7jgZnjgZbjgY0s44KI44GX44GTDQor44G+44GZ44GgLOOChuOBhuOBmeOBkQ0KK+OBvuOBmeOBtuOBoSzjgYvjgZrjgbLjgo0NCivjgb7jgaHjgaAs44G/44KG44GNDQor44G+44Gk44GG44KJLOOBiOOCiuOBkw0KK+OBvuOBpOOBi+OCjyzjgoLjgajjgogNCivjgb7jgaTjgZbjgY0s44Gg44GE44GZ44GRDQor44G+44Gk44GW44GNLOOBvuOBjQ0KK+OBvuOBpOOBl+OBnyzjgZPjgZrjgYgNCivjgb7jgaTjgZfjgb4s44Gy44Gn44GKDQor44G+44Gk44GgLOOBl+OBkuOChuOBjQ0KK+OBvuOBpOOBoCzjgZ/jgYvjgZcNCivjgb7jgaTjgaAs44GC44KG44G/DQor44G+44Gk44Gq44GMLOOBn+OBi+OBlw0KK+OBvuOBpOOBquOBvyzjgZPjgYbjgZgNCivjgb7jgaTjgbDjgoks44Gu44KK44G144G/DQor44G+44Gk44Gw44KJLOOBleOBqOOBvw0KK+OBvuOBpOOBv+OChCzjgZHjgpPjgYTjgaENCivjgb7jgaTjgoLjgags44G+44GT44GoDQor44G+44Gk44KC44GoLOOBi+OBmuOBsuOBpw0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgbXjgb8NCivjgb7jgaTjgoLjgags44KG44GG44GZ44GRDQor44G+44Gk44KC44GoLOOBsuOCjeOBkw0KK+OBvuOBpOOChOOBvizjgaHjgZrjgZMNCivjgb7jgarjgbks44KK44KH44GG44GZ44GRDQor44G+44KL44KE44G+LOOBvuOBleOBjQ0KK+OBvuOCi+OChOOBvizjgbLjgo3jgY0NCivjgb/jgYbjgoks44KE44GZ44G/44GkDQor44G/44GP44GrLOOBteOBv+OBquOCig0KK+OBv+OBmuOBi+OBvyzjgbLjgafjgY0NCivjgb/jgaTjga/jgZcs44Gu44KK44KI44GXDQor44G/44Gq44GoLOOBsuOCjeOChuOBjQ0KK+OBv+OBquOBvyzjgZ/jgYvjgobjgY0NCivjgb/jgbXjga0s44KI44GX44Gy44KNDQor44G/44KE44GM44KPLOOBvuOBleOBlw0KK+OBv+OChOOBleOBiyzjgZfjga7jgbYNCivjgb/jgoTjgZbjgo8s44GY44KF44KTDQor44KA44KJ44GKLOOBvuOBleOBkw0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgb8NCivjgoDjgonjgZ8s44GR44KT44GZ44GRDQor44KA44KJ44G+44GkLOOBruOBtuOChuOBjQ0KK+OCgOOCieOChOOBvizjgajjgZfjgYoNCivjgoDjgonjgoTjgb4s44GL44Ga44GC44GNDQor44KB44GQ44KNLOOBqOOCguOBsuOBkw0KK+OCguOBoeOBmuOBjSzjgZPjgYbjgYTjgaENCivjgoLjgajjgojjgZcs44G+44GT44GoDQor44KC44KC44GaLOOChuOBjeOBkw0KK+OCguOCiizjgb7jgZXjgY0NCivjgoLjgoos44KE44GZ44Gf44GLDQor44KC44KKLOOBv+OBuw0KK+OCguOCiizjgZ/jgb7jgogNCivjgoLjgorjgZ8s44GR44KT44GYDQor44KC44KK44GfLOOBkeOCk+OBhOOBoeOCjQ0KK+OCguOCiuOBrizjgb/jgaHjgYoNCivjgoLjgorjgoLjgags44Gf44GL44GXDQor44KC44KK44KC44GoLOOChuOBjeOBkw0KK+OCguOCiuOChOOBvizjgYvjgZrjgobjgY0NCivjgoLjgorjgo/jgY0s44G144G/44GC44GNDQor44KE44GOLOOBkeOBhOOBmeOBkQ0KK+OChOOBjizjgobjgZ/jgYsNCivjgoTjgY/jgZfjgZgs44GK44GV44KADQor44KE44GTLOOBpOOCiOOBlw0KK+OChOOBluOCjyzjgZHjgpPjgYTjgaENCivjgoTjgZnjgb4s44GR44KT44GY44KN44GGDQor44KE44Go44GULOOBguOBhA0KK+OBjOOCkyzjga/jgarjgYgNCivjgoTjgarjgbYs44GV44Go44GXDQor44KE44GuLOOBl+OCheOBhuOBk+OBhg0KK+OChOOBtuOBnyzjgbLjgo3jgZcNCivjgoTjgb7jgYbjgaEs44KG44GN44GTDQor44KE44G+44GG44GhLOOBv+OBpOOBr+OCiw0KK+OChOOBvuOBkOOBoSzjgorjgofjgYYNCivjgoTjgb7jgZDjgaEs44KE44GZ44G+44GVDQor44KE44G+44GQ44GhLOOBquOBiuOBkw0KK+OBmOOBoOOBhCzjgbLjgo3jgYLjgY0NCivjgoTjgb7jgZDjgaEs44GI44GE44GfDQor44KE44G+44GQ44GhLOOBm+OBhOOBkw0KK+OChOOBvuOBkOOBoSzjgZPjgYbjgZgNCivjgoTjgb7jgZXjgY0s44KE44GZ44Gy44KNDQor44KE44G+44GV44GNLOOBmOOCheOCkw0KK+OChOOBvuOBluOBjSzjgYLjgaTjgoQNCivjgoTjgb7jgZfjgZ8s44GL44Ga44Gy44KNDQor44KE44G+44GX44GfLOOBvuOBleOBqA0KK+OChOOBvuOBl+OBnyzjgZ/jgY/jgoQNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44KE44G+44GgLOOChOOBmeOBig0KK+OChOOBvuOBoCzjgZ/jgaTjgZgNCivjgoTjgb7jgaAs44KE44GZ44Gy44GVDQor44KE44G+44GgLOOBjeOCh+OBhuOBkw0KK+OChOOBvuOBqOOChCzjgb7jgorjgZMNCivjgoTjgb7jgarjgYss44Gy44G144G/DQor44KE44G+44Gq44GXLOOBmOOCheOCkw0KK+OChOOBvuOBq+OBlyzjgarjgYrjgY0NCivjgoTjgb7jgoLjgags44Gh44GLDQor44KE44G+44KC44GoLOOBi+OBmuOChA0KK+OChOOBvuOCguOBqCzjgorjgYsNCivjgoTjgb7jgoLjgags44G+44Gq44G/DQor44KE44G+44KC44GoLOOCiOOBhuOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgZ/jgaTjgoQNCivjgojjgZPjgZ8s44Go44KC44G144G/DQor44KI44GT44GfLOOBl+OBkuOChuOBjQ0KK+OCiOOBk+OBnyzjgYvjgogNCivjgojjgZPjgaYs44Gb44GE44GE44Gh44KN44GGDQor44KI44GX44GK44GLLOOBn+OBi+OBlw0KK+OCiOOBl+OBiuOBiyzjgYLjgaTjgZcNCivjgojjgZfjgYrjgYss44Gy44Gn44GoDQor44KI44GX44GL44KPLOOBn+OBj+OChA0KK+OCiOOBl+OBi+OCjyzjgorjgofjgYbjgYTjgaENCivjgojjgZfjgaAs44G+44GV44KG44GNDQor44KI44GX44GgLOOBmOOCheOCk+OBkw0KK+OCiOOBl+OBoCzjgYLjgYvjga0NCivjgojjgZfjga4s44G/44Gu44KLDQor44KI44GX44G/LOOBvuOBleOChuOBjQ0KK+OCiOOBl+OCgOOCiSzjgY/jgavjgbLjgZMNCivjgojjgaAs44Gu44KK44Gy44GVDQor44KI44Gt44GW44KPLOOBguOCieOBnw0KK+OCiuOCheOBhuOBqCzjgZHjgYQNCivjgo/jgYvjgaTjgY0s44GX44KT44GZ44GRDQor44KP44GN44GW44GLLOOBl+OCk+OChA0KK+OCj+OBjeOBnyzjgobjgYbjgZnjgZENCivjgo/jgY3jgZ8s44Go44GK44KLDQor44KP44GN44KC44GoLOOBl+OCh+OBhuOBkw0KK+OCj+OBoCzjgZ/jgYvjgZcNCivjgo/jgaAs44GC44GN44GTDQor44KP44Gf44GbLOOBoOOBhA0KK+OCj+OBn+OBquOBuSzjgoTjgZnjga/jgosNCivjgo/jgZ/jgarjgbks44Gd44GGDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgarjgYrjgZMNCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44GN44Gu44GX44GfLOOChuOBhuOBkw0KK+OBguOBiuOBjSzjgojjgZfjgbLjgZMNCivjgoTjgarjgY7jga/jgoks44GN44KI44GXDQor44GC44G+44GTLOOCiOOBl+OBig0KK+OBk+OCk+OBqeOBhizjgZfjgYrjgooNCivjgZfjgonjgYvjgo8s44KI44GG44GTDQor44GT44KE44G+LOOBn+OBi+OChuOBjQ0KK+OBk+OCk+OBqSzjgb7jgZPjgagNCivjgoLjgoos44Go44GX44GKDQor44GK44GK44GuLOOBsuOBp+OCiOOBlw0KK+OBvuOBrizjgYLjgY0NCivjgarjgYzjga4s44GZ44G/44GTDQor44GV44Go44GGLOOBiOOCig0KK+OBv+OChOOBluOBjSzjgYLjgoQNCivjgYrjgYzjgo8s44GC44GN44KJDQor44GN44KA44KJLOOBsuOBp+OBqOOBlw0KK+OCiOOBk+OBiizjgZHjgpPjgZgNCivjgYbjgaHjgoDjgoks44Gh44Gq44GkDQor44GU44GX44G+LOOCiuOCheOBhuOBhOOBoQ0KK+OBleOBiOOBjSzjgb/jgY0NCivjgarjgYvjgZjjgb4s44Gy44KN44G/DQor44GE44KP44G/LOOBv+OBuw0KK+OBiOOBkizjgozjgYQNCivjgYbjgoHjgZ7jga4s44GL44GK44KKDQor44GV44GP44KJ44GELOOBvuOBvw0KK+OCj+OBn+OBquOBuSzjgb7jgoQNCivjgarjgYzjgYQs44GX44KH44GG44GUDQor44GK44Gd44GM44G/LOOBguOBpOOBsuOBkw0KK+OBj+OCjeOBi+OCjyzjgb7jgZXjgojjgZcNCivjgZ/jgYvjgZnjgYss44KI44GX44GL44GaDQor44GK44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBl+OCieOBhCzjgobjgZ/jgYsNCivjgb7jgaTjgYbjgoks44G+44GT44GoDQor44Gq44GL44GW44KPLOOCiOOBl+OBsuOBlQ0KK+OBvuOBpOOBhCzjgobjgYbjgYTjgaENCivjgZPjgZvjgY0s44GT44GG44Gf44KN44GGDQor44Gk44GL44GgLOOBruOCiuOChuOBjQ0KK+OBpuOCieOBj+OCiSzjgojjgYbjgZgNCivjgavjgbjjgYQs44GN44KI44GXDQor44GL44KP44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBsuOBlCzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GN44KI44Gu44KKDQor44G144KL44GfLOOBn+OBi+OChuOBjQ0KK+OCguOBoeOBmuOBjSzjgbLjgo3jgobjgY0NCivjgYrjgYvjgaAs44Gf44Gk44GXDQor44GV44GE44Go44GGLOOChuOBjeOBkw0KK+OBi+OCj+OBr+OCiSzjgobjgY0NCivjgZnjgZrjgYvjgZEs44Gf44GP44KEDQor44GE44Go44GGLOOBguOBpOOBkw0KK+OBhOOBl+OBmuOBiyzjgbLjgZXjgagNCivjgZ/jgbnjgYQs44KE44GZ44G+44GVDQor44GU44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBl+OCguOBleOBiyzjgajjgYrjgosNCivjgYvjgo/jgYQs44GL44Ga44G+DQor44KP44Gf44Gq44G5LOOCiOOBl+OBi+OBmg0KK+OBmeOBmuOBjSzjgYTjgaTjgbXjgb8NCivjgb7jgaTjgoTjgb4s44Gy44KN44GXDQor44Gv44KJLOOCiuOCh+OBhuOBuOOBhA0KK+OBpOOBsOOBjSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgoTjgZnjgYQs44Gf44GL44KG44GNDQor44GT44Gw44KE44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBiuOBi+OBuSzjgZXjgobjgooNCivjgYrjgYzjgo8s44GX44KH44GG44GTDQor44KE44G+44GQ44GhLOOBleOBqOOBlw0KK+OBteOBmOOBi+OCjyzjgZHjgpPjgZgNCivjgYTjgarjgYzjgY0s44Gy44Gn44Go44GXDQor44Gh44GeLOOBqOOBl+OBsuOBkw0KK+OBr+OBquOBoCzjgZjjgoXjgpPjgoQNCivjgYrjgYrjgZMs44KC44Go44GC44GNDQor44GK44GK44GP44KJLOOBmeOBv+OBsuOCjQ0KK+OBvuOBpOOBiizjgaTjgajjgoANCivjgYjjgpPjgaks44G+44KK44GTDQor44G744KK44G5LOOCguOBqOOBmA0KK+OBi+OBpCzjgabjgaTjgbLjgo0NCivjgYrjgZ/jgYss44G+44GV44Gu44G2DQor44Gf44GL44Gv44GXLOOBqOOBl+OChA0KK+OCgOOCieOChOOBvizjgobjgYbjgZMNCivjgojjgZfjgYrjgYss44GV44KG44KKDQor44GL44GELOOCiOOBl+OBiA0KK+OBn+OBi+OBr+OBlyzjgo/jgYvjgZMNCivjgZDjgpPjgZIs44Gf44G+44KIDQor44KE44GuLOOBn+OBhA0KK+OBr+OChOOBlyzjgYLjgoTjgZMNCivjgb/jgYbjgoks44G+44Gq44G/DQor44GC44GK44KE44GOLOOBsuOCjeOBn+OBiw0KK+OBn+OBi+OBoCzjgajjgY/jgbLjgZMNCivjgazjgb7jgZ8s44GR44KT44GYDQor44GL44Gf44GK44GLLOOBi+OBiuOCiw0KK+OBl+OBv+OBmizjgZXjgaHjgZMNCivjgZfjgb/jgZos44KG44GG44GTDQor44G+44Gk44KA44KJLOOBn+OCjeOBhg0KK+OBiuOCiuOBqCzjgZXjgajjgZcNCivjgZPjgZ/jgass44G144G/44Gy44GTDQor44GK44GK44Gv44GXLOOCiuOCh+OBhg0KK+OBi+OCk+OBm+OBjSzjgZHjgYTjgZMNCivjgY3jgZ/jgoDjgoks44GT44GG44Gf44KN44GGDQor44GV44GP44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgZPjga/jgoks44Go44GK44KLDQor44GE44Gv44KJLOOBkeOBhOOBkw0KK+OBpOOBmOOBhuOCiSzjgYvjgZrjgbLjgo0NCivjgarjgYvjgoDjgoks44Gk44KI44GXDQor44GC44GK44GNLOOBguOBjeOBkw0KK+OBguOBiuOChOOBvizjgaDjgYTjgZnjgZENCivjgYLjgYvjgYTjgZEs44Gy44KN44G/DQor44GC44GL44GkLOOBmOOCheOCkw0KK+OBguOBjeOBr+OCiSzjgZfjgoXjgpPjgZnjgZENCivjgYLjgY3jgoLjgags44G+44KKDQor44GC44GV44GP44KJLOOBn+OBi+OBlw0KK+OBguOBleOBrizjgorjgofjgYYNCivjgYLjgbPjgoss44GC44GE44GTDQor44GC44G5LOOBruOCiuOBn+OBiw0KK+OBguOBuSzjgobjgY0NCivjgYLjgbks44Gf44GP44KEDQor44GC44G544GL44KPLOOBqOOCguOBkw0KK+OBguOCieOBhCzjga7jgorjgbLjgagNCivjgYLjgonjgYQs44G+44GV44Go44GXDQor44GC44KJ44GL44KPLOOBsuOCjeOBjQ0KK+OBguOCieOBjSzjgZ/jgYvjgYLjgY0NCivjgYLjgonjgY0s44Gy44KN44GXDQor44GC44KK44GILOOBvuOBleOBteOBvw0KK+OBguOCk+OBqeOBhizjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgYTjgaAs44GY44KF44KT44GE44GhDQor44GE44GR44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OBhOOBkeOBoCzjgZ/jgZHjgZcNCivjgYTjgZHjgaAs44Gq44GK44GNDQor44GE44GX44GELOOBruOBtuOChOOBmQ0KK+OBhOOBl+OBhCzjga/jgoTjgagNCivjgYTjgZfjgYzjgY0s44G/44KE44GTDQor44GE44GX44GL44KPLOOChuOBjQ0KK+OBhOOBl+OBi+OCjyzjgobjgb/jgZMNCivjgYTjgZfjgZbjgo8s44Gm44KL44GNDQor44GE44GX44Ga44G/LOOBl+OCheOBhuOBuOOBhA0KK+OBhOOBl+OBnOOBjSzjgaDjgYTjgZnjgZENCivjgYTjgZfjgaAs44KG44GG44GYDQor44GE44GX44GgLOOCjOOBhOOBkw0KK+OBhOOBl+OBoCzjgojjgZfjgZ/jgYsNCivjgYTjgZfjgaUs44Gf44GL44GXDQor44GE44GX44Gv44KJLOOBteOBv+OBquOBig0KK+OBhOOBl+OBvuOCiyzjgZfjgoXjgYbjgYTjgaENCivjgYTjgZ/jgass44Gf44GL44GXDQor44GE44Gf44Gv44KJLOOBsuOBleOBpOOBkA0KK+OBhOOBoeOBvizjgarjgYrjgagNCivjgYTjgajjgYYs44KG44GG44GTDQor44GE44Go44GGLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBhOOBqOOBhizjgbLjgo3jgYvjgZoNCivjgYTjgajjgYYs44GC44GN44GTDQor44GE44Go44GGLOOBl+OBmuOBkw0KK+OBhOOBqOOBhizjgYrjgY0NCivjgYTjgajjgYYs44Gk44KI44GXDQor44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBhOOBquOBjOOBjSzjgZfjgZLjgY0NCivjgYTjgarjgb8s44KM44GKDQor44GE44GuLOOBv+OBjQ0KK+OBhOOBruOBhuOBiCzjgb7jgZXjgY0NCivjgYTjga7jgYbjgYgs44Gf44GL44GXDQor44GE44G+44GKLOOBmOOCheOCk+OBuuOBhA0KK+OBhOOBvuOBoCzjgZHjgpPjgYTjgaENCivjgYTjgo/jgYvjgb8s44KG44GG44GZ44GRDQor44GE44KP44GP44KJLOOChuOBn+OBiw0KK+OBhOOCj+OBluOBjSzjgbLjgo3jgZ/jgYsNCivjgYTjgo/jgZ8s44GT44GG44GYDQor44GE44KP44KC44GoLOOBsuOCjeOBjQ0KK+OBhuOBiOOBmeOBjizjgZjjgoXjgpPjgZMNCivjgYbjgYjjgaAs44G+44GV44KEDQor44GG44GI44Gf44GLLOOBl+OCh+OBhuOBmA0KK+OBhuOBiOOBoSzjgb7jgooNCivjgYbjgYjjga4s44GR44KT44GYDQor44Gy44KK44KF44GGLOOBk+OBhuOBmA0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYbjgaHjgaAs44GC44KEDQor44GG44Gh44GgLOOBjeOBhOOBoQ0KK+OBhuOBoeOBr+OBlyzjgZTjgYYNCivjgYbjgaHjgoTjgb4s44KM44G/DQor44GG44KB44Gv44KJLOOBquOBpOOBkw0KK+OBhuOCiuOBn+OBqyzjgb7jgZnjgb8NCivjgYrjgYTjgYvjgo8s44GR44KT44Gf44KN44GGDQor44GK44GK44GELOOBqOOCguOChuOBjQ0KK+OBiuOBiuOBhCzjgYvjgojjgZMNCivjgYrjgYrjgYTjgZcs44G+44GV44Gy44GTDQor44GK44GG44GhLOOBkeOCk+OBl+OCkw0KK+OBiuOBiuOBiCzjgaDjgYTjgZnjgZENCivjgYrjgYrjgYrjgYss44G+44GV44Gy44KNDQor44GK44GK44GL44KPLOOBvuOBleOChA0KK+OBiuOBiuOBj+OBvCzjgorjgofjgYYNCivjgYrjgYrjgY/jgb4s44Gu44KK44Gy44KNDQor44GK44GK44GfLOOBruOBtuOBsuOCjQ0KK+OBiuOBiuOBn+OBqyzjgZfjgZrjgYsNCivjgYrjgYrjgaQs44Gh44GIDQor44GK44GK44GkLOOBpuOBpOOChA0KK+OBiuOBiuOBpOOBiyzjgZjjgoXjgpMNCivjgYrjgYrjgaTjgYss44Gm44KL44Gy44KNDQor44GK44GK44Gk44GLLOOBguOBjeOCiQ0KK+OBiuOBiuOBpOOBiyzjgZHjgYQNCivjgYrjgYrjgaTjgbws44G+44GV44G/44GkDQor44GK44GK44Gv44GfLOOBguOBjeOBkw0KK+OBiuOBiuOBvuOBlSzjgZ/jgaTjgYoNCivjgYrjgYrjgoQs44GR44GE44GYDQor44GK44GK44KE44G+LOOBn+OBhOOBmeOBkQ0KK+OBiuOBiyzjgZ/jgo3jgYYNCivjgYrjgYvjgZjjgb4s44G/44Gk44Gu44G2DQor44GK44GL44GgLOOBn+OBpOOChA0KK+OBiuOBi+OBoCzjgaHjgbLjgo0NCivjgYrjgYvjgaAs44Gu44KK44KI44GXDQor44GK44GL44GgLOOBleOBqOOBlw0KK+OBiuOBi+OBoCzjgovjgb8NCivjgYrjgYvjga/jgZ8s44Gf44Gk44KEDQor44GK44GL44G5LOOChOOBmeOBvuOBlQ0KK+OBiuOBi+OCguOBqCzjgbLjgZXjgZcNCivjgYrjgYvjgoLjgags44KI44GX44Gu44KKDQor44GK44GL44KC44GoLOOBsuOBp+OBjQ0KK+OBiuOBjOOCjyzjgZHjgYTjgZMNCivjgYrjgYzjgo8s44Gg44GE44GZ44GRDQor44GK44GP44GgLOOBk+OBhuOBuOOBhA0KK+OBiuOBj+OBqCzjgZXjgaENCivjgYrjgY/jgarjgYss44Gb44GE44GXDQor44GK44GQ44KJLOOBn+OCjeOBhg0KK+OBiuOBluOBjSzjga7jgbbjgYLjgY0NCivjgYrjgZXjgaAs44Gy44KN44GXDQor44GK44GW44KPLOOBsuOCjeOBvw0KK+OBiuOBmOOBvizjgb7jgZPjgagNCivjgYrjgZjjgb4s44G+44GV44GXDQor44GK44Gw44KJLOOChuOCiuOBkw0KK+OBi+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYvjgY3jgY/jgoks44G+44GV44KG44GNDQor44GL44GN44KC44GoLOOBpuOBpOOChA0KK+OBi+OBjyzjgZPjgYbjgZgNCivjgYvjgZLjgoTjgb4s44Gf44Gg44Gy44GVDQor44GL44GY44Gq44GMLOOChuOBn+OBiw0KK+OBi+OBl+OBvizjgojjgZfjgbLjgZMNCivjgYvjgZ/jgYrjgYss44Gf44GL44Gy44KNDQor44GL44Gf44GO44KKLOOBquOBpOOBkw0KK+OBi+OBn+OChOOBvizjgb7jgbLjgagNCivjgYvjgaks44KG44G/44GTDQor44GL44Go44GGLOOCiuOBpOOBkw0KK+OBi+OBqOOBhizjgorjgofjgYYNCivjgYvjgajjgYYs44G144G/DQor44GL44Go44GGLOOCjOOBhOOBkw0KK+OBi+OBqOOBhizjgZnjgb/jgowNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBpuOBpOOChA0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgYvjgajjgYYs44KP44Gf44KLDQor44GL44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OBquOCguOBqCzjgYLjgY3jgZMNCivjgYvjgarjgoQs44GX44KT44KEDQor44GL44Gt44GTLOOCiOOBl+OBi+OBmg0KK+OBi+OBreOCguOCiizjgobjgYYNCivjgYvjgo8s44KI44GX44GL44GaDQor44GL44KP44GELOOBk+OBhuOBmA0KK+OBi+OCj+OBhCzjga/jgovjgZMNCivjgYvjgo/jgYvjgb8s44G+44GV44GK44G/DQor44GL44KP44GQ44GhLOOBoeOBi+OBkw0KK+OBi+OCj+OBkOOBoSzjgZfjgoXjgpPjgZnjgZENCivjgYvjgo/jgZDjgaEs44Go44GX44Gy44GTDQor44GL44KP44GQ44GhLOOBsuOCjeOBjQ0KK+OBi+OCj+OBkOOBoSzjgZnjgZnjgoANCivjgYvjgo/jgZTjgYTjgZcs44Gf44GL44KG44GNDQor44GL44KP44GX44G+LOOBlOOCjeOBhg0KK+OBi+OCj+OBqizjgZ/jgZHjgZcNCivjgYvjgo/jga7jgbks44KG44GN44GTDQor44GL44KT44GuLOOChOOBmeOBruOBtg0KK+OBjeOBj+OBoSzjga7jgZ7jgb8NCivjgY3jgZcs44KM44GE44GTDQor44GN44GX44KC44GoLOOBn+OBkeOBlw0KK+OBjeOBl+OCjSzjgoTjgZnjgZcNCivjgY3jgZ/jgYos44GX44KTDQor44GN44Gf44Gv44G+LOOBn+OBkeOBruOCig0KK+OBjeOBn+OCgOOCiSzjgojjgZfjga7jgooNCivjgY3jganjgZPjgo0s44GC44Gk44GXDQor44GN44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBjeOCgOOCiSzjgb7jgZPjgagNCivjgY3jgoDjgoks44GC44GE44GTDQor44GN44KK44GC44GRLOOBiOOBhOOBleOBjw0KK+OBj+OBjeOCguOBqCzjgajjgZfjgY0NCivjgY/jgbws44GP44Gr44KG44GNDQor44GP44G844GfLOOBvuOChuOBvw0KK+OBj+OBvuOBj+OCiSzjgorjgYsNCivjgY/jgb7jgaAs44KG44GG44GZ44GRDQor44GP44G+44KC44GoLOOBsuOCjeOBguOBjQ0KK+OBj+OCgSzjgb7jgZXjgbLjgagNCivjgY/jgonjgoQs44GT44GG44G444GEDQor44GP44KK44KP44GNLOOBvuOBjeOBkw0KK+OBj+OCj+OBsOOCiSzjgobjgYvjgooNCivjgZTjgYYs44Gm44KL44GKDQor44GT44GE44GRLOOBleOBqOOCiw0KK+OBk+OBhOOBkSzjgozjgYrjgaoNCivjgZPjgZXjgYss44KA44Gk44G/DQor44GT44GG44GgLOOBguOChOOBkw0KK+OBk+OBjCzjgZPjgYbjgYTjgaENCivjgZPjgY/jgbws44KC44KC44GIDQor44GT44GP44KJLOOCiuOBiA0KK+OBk+OBlCzjgorjgoXjgYbjgZgNCivjgZPjgZXjgY0s44KK44KH44GG44GZ44GRDQor44GT44GY44G+LOOBsuOCjeOBkw0KK+OBk+OBp+OCiSzjgYvjgZrjgagNCivjgZTjgajjgYYs44Gg44GE44GZ44GRDQor44GU44Go44GGLOOBkeOBhOOBkw0KK+OBlOOBqOOBhizjgYvjgZrjga7jgooNCivjgZPjga/jgZ8s44Gh44KI44G/DQor44GT44Gw44KE44GXLOOBqOOBiuOCiw0KK+OBk+OBsOOChOOBlyzjgarjgbvjgZMNCivjgZPjgb7jgaTjgbDjgoks44G/44G7DQor44GT44G/44KELOOBqOOBj+OBkw0KK+OBk+OBv+OChOOBvizjgb7jgZXjgojjgZcNCivjgZPjgoTjgarjgY4s44GX44KT44KEDQor44GT44KE44G+LOOBn+OBi+OBkw0KK+OBk+OCk+OBqSzjga7jgbbjgYsNCivjgZPjgpPjga4s44Gu44G244G7DQor44GV44GE44Go44GGLOOBsuOCjeOBsuOBpw0KK+OBleOBhOOBqOOBhizjgZfjgZLjgosNCivjgZXjgYTjgajjgYYs44GR44KT44GE44GhDQor44GV44GE44Go44GGLOOBkeOCk+OBlA0KK+OBleOBhOOBqOOBhizjgYLjgYQNCivjgZXjgYvjgYQs44KK44KH44GG44GZ44GRDQor44GV44GL44GuLOOChuOBjeOBkw0KK+OBleOBi+OCguOBqCzjgo/jgZ/jgosNCivjgZXjgYvjgoLjgags44Gh44GL44KJDQor44GV44GP44KJ44GELOOBvuOBleOBteOBvw0KK+OBleOBleOBjSzjgojjgZfjgZMNCivjgZXjgZXjgY0s44Gf44GR44KG44GNDQor44GV44GV44GNLOOChuOBjeOBig0KK+OBleOBleOBjSzjgZXjgY0NCivjgZXjgZXjgY0s44KE44GZ44Gy44KNDQor44GV44GV44GuLOOBguOBi+OBjg0KK+OBleOBoOOCguOBqCzjgZLjgpPjgZPjgYYNCivjgZXjgajjgYYs44Gy44KN44GNDQor44GV44Go44GGLOOChuOBhuOBhOOBoeOCjQ0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44Gf44GL44Gy44KNDQor44GV44Go44GGLOOBqOOCguOBkw0KK+OBleOBquOBoCzjgb7jgZXjgobjgY0NCivjgZXjga3jgZfjgZIs44Go44GX44Gu44G2DQor44GV44GuLOOBi+OBmuOBsuOBkw0KK+OBl+OBkuOBqOOBvyzjgZXjgajjgZMNCivjgZfjga7jga/jgoks44KC44KK44Gy44GTDQor44GX44Gw44GL44KPLOOBkeOCk+OBmOOCjeOBhg0KK+OBl+OBsOOBrizjgorjgofjgYYNCivjgZfjgb7jgaAs44Gf44GR44GXDQor44GX44G+44GgLOOBn+OBpOOCjeOBhg0KK+OBl+OBv+OBmizjgZ/jgYvjgYoNCivjgZfjgoDjgoks44Gf44GL44Gu44KKDQor44GX44KA44KJLOOBn+OBkeOBlw0KK+OBl+OCguOBi+OCjyzjgajjgoLjgoQNCivjgZfjgoLjgbXjgZgs44Gu44G244Gy44GTDQor44GX44KC44KE44G+LOOBsuOBp+OBi+OBmg0KK+OBl+OCh+OBhizjgbLjgo3jgobjgY0NCivjgZfjgonjgYQs44KK44GIDQor44GX44KJ44GMLOOBk+OBhuOBmA0KK+OBl+OCieOBi+OCjyzjgoTjgZnjgZMNCivjgZfjgonjgZks44G/44KG44GNDQor44GX44KPLOOBkeOCk+OBhOOBoQ0KK+OBl+OCk+OBkSzjgarjgYTjgZfjgpMNCivjgZfjgpPjganjgYYs44Go44KC44GL44GaDQor44GZ44GM44Gv44KJLOOBsuOCjeOBi+OBmg0KK+OBmeOBjuOBhuOBoSzjgZfjgofjgYbjgZ/jgo3jgYYNCivjgZnjgY7jgYbjgoks44Gh44GC44GNDQor44GZ44GO44GV44KPLOOCiOOBhuOBkw0KK+OBmeOBjuOBr+OCiSzjgbLjgo3jga7jgbYNCivjgZnjgY7jgoLjgags44Gm44KL44KG44GNDQor44GZ44GO44KE44G+LOOBn+OBpOOChA0KK+OBmeOBmuOBjSzjgb7jgZXjgobjgY0NCivjgZnjgZrjgY0s44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBn+OBhOOBmeOBkQ0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgZnjgZrjgY0s44G+44GV44KEDQor44GZ44Ga44GNLOOCiuOCheOBhuOBnw0KK+OBmeOBmuOBjSzjga7jgorjgZMNCivjgZnjgZrjgY0s44G/44GL44GTDQor44GZ44GgLOOCiuOCk+OChA0KK+OBmeOBqCzjgabjgaTjgoQNCivjgZnjgb/jgaAs44GC44GN44Gy44KNDQor44Gb44GNLOOBguOBpOOBquOCig0KK+OBm+OBjSzjgYvjgZrjgY0NCivjgZvjgpPjgaAs44KG44GN44GTDQor44Gd44KB44G/44KELOOBoeOBiA0KK+OBneOChCzjgbLjgo3jgY0NCivjgaDjgYTjgb7jgoss44GC44GN44KJDQor44Gf44GL44GKLOOBr+OBquOBiA0KK+OBn+OBi+OBjizjgYvjgogNCivjgZ/jgYvjgZbjgo8s44Gg44KTDQor44Gf44GL44GbLOOBkeOCk+OBmA0KK+OBn+OBi+OBrSzjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GY44KF44KT44GTDQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgarjgYoNCivjgZ/jgYvjga/jgZcs44Gy44KN44KG44GNDQor44Gf44GL44Gv44GXLOOBvuOBquOBtg0KK+OBn+OBi+OChOOBvizjgobjgY3jgYoNCivjgZ/jgY3jgYbjgaEs44KK44GIDQor44Gf44GN44GL44KPLOOBguOBjeOCiQ0KK+OBn+OBjeOBkOOBoSzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgY3jgZbjgo8s44GV44Go44GXDQor44Gf44GN44GW44KPLOOBk+OBhuOBmOOCjeOBhg0KK+OBn+OBjeOBluOCjyzjgaHjgbLjgo0NCivjgZ/jgY3jgZ8s44GC44GN44KJDQor44Gf44GQ44GhLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBkeOBhCzjgY/jgavjgYoNCivjgZ/jgZHjgYbjgaEs44GX44KT44GUDQor44Gf44GR44GgLOOChuOBhuOBhOOBoeOCjQ0KK+OBn+OBkeOBr+OCiSzjgojjgYbjgZMNCivjgZ/jgabjga4s44Gq44GK44Gf44GLDQor44Gf44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OBn+OBquOBiyzjgZnjgZnjgoANCivjgZ/jgarjgYss44GC44GN44KJDQor44Gf44Gq44GLLOOBquOBig0KK+OBn+OBquOBiyzjgZvjgYTjgZgNCivjgZ/jgarjgYss44Go44GK44KLDQor44Gf44Gq44GLLOOBquOBiuOBkw0KK+OBn+OBquOBiyzjgYjjgorjgZMNCivjgZ/jgarjgYss44G/44Gk44GIDQor44Gf44Gq44G5LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBn+OBqyzjgaHjgYvjgogNCivjgZ/jgavjgYvjgo8s44KI44GX44Gk44GQDQor44Gf44Gr44Gq44GLLOOBsuOCjeOBn+OBiw0KK+OBn+OBq+OCguOBqCzjgaHjgZrjgosNCivjgZ/jgazjgb4s44G144G/44Gy44GTDQor44Gf44Gw44GfLOOBmOOCheOCkw0KK+OBn+OBsOOBnyzjgZMNCivjgZ/jgbDjgZ8s44KI44GG44GZ44GRDQor44Gf44Gw44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBn+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgZ/jgovjgY0s44KG44GNDQor44Gf44KT44GYLOOBjeOCiOOBruOCig0KK+OBoeOBsCzjgYvjgZrjgobjgY0NCivjgaHjgbAs44Gy44KN44GL44GaDQor44Gk44GL44GgLOOCiuOBiA0KK+OBpOOBjeOCguOBqCzjgYLjgaTjgZcNCivjgaTjgZgs44Gy44KN44GXDQor44Gk44GgLOOBjeOBv+OBsuOBkw0KK+OBpOOBoeOCguOBqCzjgZfjgpPjgZQNCivjgaTjgaTjgb8s44Go44KC44GTDQor44Gk44Gk44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBpOOBvOOBnyzjgb7jgZXjgoQNCivjgabjgYQs44KP44GL44G/DQor44Gm44KJ44GL44GpLOOBv+OBpOOBguOBjQ0KK+OBv+OBruOBhuOCiSzjgb7jgarjgbYNCivjgabjgovjgYQs44G+44KKDQor44Gp44GELOOBk+OBhuOBn+OCjeOBhg0KK+OBqOOBhizjgb7jgY3jgZMNCivjgajjgYbjgYvjgYTjgorjgpMs44KG44G/DQor44Gp44GG44KB44KTLOOBiOOBpOOBkw0KK+OBqOOBhuOBi+OBhCzjgYvjgYrjgooNCivjgajjgY/jgarjgYws44GN44G/44Gf44GLDQor44Go44GP44KE44G+LOOBn+OBhOOBjA0KK+OBqOOBl+OBvizjgb/jgo/jgZMNCivjganjgYbjgaEs44Go44KC44KG44GNDQor44Go44Gu44GELOOBguOBjeOBkw0KK+OBqOOBruOCgOOCiSzjgorjgYjjgZMNCivjgajjgb/jgZ8s44GP44Gr44GKDQor44Go44KC44GuLOOBsuOBp+OBi+OBmg0KK+OBqOOCiuOBhCzjgb7jgoLjgosNCivjgarjgYzjgYQs44Go44KC44Gu44KKDQor44Gq44GL44GM44KPLOOBhOOBj+OBvg0KK+OBquOBi+OBjOOCjyzjgojjgZfjga7jgooNCivjgarjgYvjgYzjgo8s44Gg44GE44GZ44GRDQor44Gq44GL44GW44GoLOOCguOBqOOBruOBtg0KK+OBquOBi+OBl+OBvizjgaHjgYvjgZMNCivjgarjgYzjgZ8s44KG44GLDQor44Gq44GL44GuLOOBi+OBqg0KK+OBquOBjOOBrizjgorjgofjgYbjgZ8NCivjgarjgYzjga4s44KK44KH44GGDQor44Gq44GL44KA44KJLOOCiOOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgZXjgajjgZcNCivjgarjgYvjgoDjgoks44Gf44GR44GXDQor44Gq44GL44KA44KJLOOBpuOBpOOChA0KK+OBquOBi+OCguOCiizjgajjgY/jgZMNCivjgarjgYvjgoTjgb4s44Go44KC44Gy44KNDQor44Gq44KL44GbLOOBn+OBi+OBlw0KK+OBquOCk+OBlCzjgb7jgZXjgY0NCivjgarjgpPjgbAs44GR44KTDQor44Gq44KT44GwLOOBk+OBhuOBmA0KK+OBq+OBhOOBvyzjgZPjgYbjgbjjgYQNCivjgavjgZfjgYos44KI44GG44GYDQor44Gr44GX44GK44GLLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OBiuOBiyzjgajjgoLjgZMNCivjgavjgZfjgZXjgYss44G+44G/DQor44Gr44GX44GW44GNLOOBn+OBj+OBvg0KK+OBq+OBl+OBluOCjyzjgarjgYrjgY0NCivjgavjgZfjga4s44GV44Go44GXDQor44Gs44G+44Gf44GNLOOCguOBqOOBjQ0KK+OBreOBjuOBlyzjgorjgYsNCivjga3jgoTjgb4s44Gf44GR44GXDQor44Gu44GgLOOBoeOBguOBjQ0KK+OBruOBkOOBoSzjga7jgorjgZMNCivjga7jgZDjgaEs44KI44GG44GZ44GRDQor44Gu44GQ44GhLOOBkeOBhOOBmA0KK+OBruOBkOOBoSzjgZfjgpPjgY3jgaENCivjga7jgZbjgY0s44Gg44GE44GZ44GRDQor44Gu44GgLOOBsuOCjeOBkw0KK+OBruOBvOOCiizjgojjgZfjgbLjgo0NCivjga7jgoDjgoks44GX44KF44GG44GE44GhDQor44Gu44KA44KJLOOBv+OBleOBkw0KK+OBruOCgOOCiSzjgZHjgpPjgZgNCivjga/jgY7jgo/jgoks44GX44KH44GG44Gf44KN44GGDQor44Gv44GX44GQ44GhLOOBqOOBl+OBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgbXjgb8NCivjgb7jgY0s44GL44Ga44GoDQor44Gv44Gb44GM44KPLOOBn+OBkeOBig0KK+OBr+OBm+OBjOOCjyzjgYrjgZXjgoANCivjga/jgaAs44GC44KE44GTDQor44Gv44Gj44Go44KKLOOChuOBhuOBhOOBoQ0KK+OBr+OBo+OBqOOCiizjgb7jgobjgZMNCivjgbDjgbAs44G+44GV44GNDQor44Gw44GwLOOBkeOCk+OBmA0KK+OBsOOBsCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgbDjgbAs44KK44GL44GTDQor44Gv44G+44GgLOOBj+OBv+OBkw0KK+OBr+OBvuOBoCzjgaDjgYTjgZgNCivjga/jgb7jgaAs44KK44GVDQor44Gv44G+44GgLOOBteOBv+OBsuOCjQ0KK+OBr+OBvuOBrizjgb7jgZXjgobjgY0NCivjga/jgoTjgZcs44GC44GN44Gu44KKDQor44Gy44GQ44GhLOOBk+OBhuOBjQ0KK+OBsuOBleOBpOOBrSzjgb7jgZPjgagNCivjgbLjgZfjgazjgb4s44GC44Gk44GXDQor44Gz44KH44GG44Gp44GGLOOBsuOCjeOBkw0KK+OBsuOCieOBhCzjgb7jgZXjgYvjgZoNCivjgbLjgonjgYrjgYss44G/44GNDQor44Gy44KJ44GL44KPLOOBqOOCguOBsuOCjQ0KK+OBsuOCieOBleOCjyzjgZ/jgY/jgZgNCivjgbLjgonjgZfjgb4s44GY44KN44GGDQor44Gy44KJ44GfLOOBvuOBv+OBkw0KK+OBsuOCieOBrizjgoTjgojjgYQNCivjgbLjgovjgb4s44KG44GG44GE44GhDQor44Gy44KN44GbLOOBsuOBp+OBjQ0KK+OBsuOCjeOBmyzjgYvjgaTjgojjgZcNCivjgbLjgo3jgZ8s44Gy44KN44GXDQor44G144GP44GELOOBguOBmuOBlQ0KK+OBteOBj+OBoCzjgZ/jgYvjgZcNCivjgbXjgY/jgbAs44GL44Gq44KBDQor44G144GP44KA44KJLOOChuOBv+OBkw0KK+OBteOBj+OCguOBqCzjgaDjgYTjgZnjgZENCivjgbXjgZjjgYQs44GR44KTDQor44G144GY44GELOOChuOBjQ0KK+OBteOBmOOBhCzjgb/jgo8NCivjgbXjgZjjgYjjgaAs44Gy44GV44GL44GaDQor44G144GY44GfLOOBsuOBp+OBi+OBmg0KK+OBteOBmOOBnyzjgobjgY3jgZMNCivjgbXjgZjjgaQs44Gf44GR44GXDQor44G144GY44GuLOOBn+OBi+OBuw0KK+OBteOBmOOCguOBqCzjgZXjgajjgZMNCivjgbXjgZjjgo/jgoks44Gf44GP44GoDQor44G144GY44KP44KJLOOCiuOBqg0KK+OBteOBmOOCj+OCiSzjgY/jgb8NCivjgbXjgovjgYvjgo8s44KK44KH44GGDQor44G7LOOBvuOBleOBruOCig0KK+OBu+OBl+OBrizjgoDjga3jgajjgoINCivjgbvjgZ3jgYvjgo8s44Gm44KL44Gy44GTDQor44G744KK44GL44KPLOOBl+OCheOBhuOBmA0KK+OBu+OCk+OBlOOBhizjgojjgZfjgYLjgY0NCivjgb7jgYjjgaAs44GC44Gk44GXDQor44G+44GK44GLLOOBpOOBqOOCgA0KK+OBvuOBmeOBtuOBoSzjgaTjgojjgZcNCivjgb7jgZnjgb/jgaQs44GN44KH44GG44G444GEDQor44G+44Gk44GELOOBkeOCk+OBn+OCjeOBhg0KK+OBvuOBpOOBiizjgbLjgafjga7jgooNCivjgb7jgaTjgYrjgYss44GN44KH44GG44GZ44GRDQor44G+44Gk44GK44GLLOOBleOBoeOBkw0KK+OBvuOBpOOBoCzjgorjgofjgYYNCivjgb7jgaTjgbDjgoks44GC44GN44GTDQor44KP44Gf44Gq44G5LOOBoOOBhOOBmeOBkQ0KK+OBvuOBpOOChOOBvizjgZ/jgZHjgZcNCivjgb7jgaTjgoTjgb4s44G/44Gk44Gm44KLDQor44G+44Gk44KE44G+LOOCiOOBl+OBjQ0KK+OBvuOBqOOBsCzjgajjgoLjgbLjgo0NCivjgb/jgYbjgoks44G+44GV44GNDQor44G/44Gk44GOLOOBn+OBkeOBlw0KK+OBv+OBqCzjgZfjgoXjgYbjgYTjgaENCivjgb/jga7jgYbjgoks44KE44GZ44Gy44GVDQor44G/44KELOOBguOBjeOCiQ0KK+OBv+OChOOBkSzjgbLjgafjgb7jgZUNCivjgb/jgoTjgZfjgZ8s44GC44GEDQor44G/44KE44GX44GfLOOChuOBjeOBig0KK+OBv+OChOOBnyzjgYLjgY3jgbLjgo0NCivjgb/jgoTjgoLjgags44Gf44Gk44KEDQor44G/44KE44KC44GoLOOBj+OBq+OBkw0KK+OBv+OChOOCguOBqCzjgb7jgZXjgbLjgo0NCivjgoDjgY/jgaAs44Go44KC44GC44KKDQor44KA44GX44GLLOOChuOBjeOBkw0KK+OCgOOBqOOBhizjgYLjgY3jgokNCivjgoDjgonjgYvjgb8s44KG44GLDQor44KA44KJ44GL44G/LOOBi+OBquOBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgaTjgbLjgo0NCivjgoDjgonjgYvjgb8s44Gy44Gn44Gk44GQDQor44KA44KJ44Gf44GrLOOCguOBqOOBsuOCjQ0KK+OCgOOCieOBvuOBpCzjgb7jgZXjgZMNCivjgoDjgonjgoTjgb4s44KI44GX44GC44GNDQor44KC44Gh44Ga44GNLOOBqOOBl+OBsuOBkw0KK+OCguOCiuOBkOOBoSzjgb/jgZXjgagNCivjgoLjgorjgZ8s44G+44G/DQor44KC44KK44Gw44KE44GXLOOBk+OBhuOCgeOBhA0KK+OCguOCjeOBqCzjgbLjgo3jgZ/jgaQNCivjgoTjgYjjgYzjgZcs44Gy44Gn44KG44GNDQor44KE44GK44KE44G+LOOBkuOCk+OBnw0KK+OChOOBjOOBvyzjgojjgZfjgbLjgo0NCivjgoTjgY4s44GR44GE44GYDQor44KE44GQ44KJLOOBl+OCk+OBmA0KK+OChOOBmeOBk+OBoSzjga7jgbzjgosNCivjgoTjgZnjgaAs44KG44GG44GZ44GRDQor44KE44GZ44GgLOOBruOCiuOBkw0KK+OChOOBvuOBkOOBoSzjgobjgYbjgZnjgZENCivjgoTjgb7jgZDjgaEs44GX44KH44GG44GX44KTDQor44KE44G+44GgLOOCj+OBhOOBkeOCkw0KK+OChOOBvuOBoCzjgb/jgZrjgbsNCivjgoTjgb7jgaAs44GC44GN44KJDQor44KE44G+44G/44GhLOOBi+OBpOOChuOBjQ0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgZMNCivjgoTjgb7jgoLjgags44Gy44KN44G/DQor44KG44GNLOOBvuOBv+OBkw0KK+OChuOBv+OBsCzjgZHjgYTjgYTjgaENCivjgobjgoks44GR44KT44GE44GhDQor44KI44GT44GZ44GLLOOBr+OCi+OBruOBtg0KK+OCiOOBk+OBnyzjgYLjgYQNCivjgojjgZPjgoTjgb4s44GC44KE44GTDQor44KI44GX44GK44GLLOOBquOBiuOBkw0KK+OCiOOBl+OBiuOBiyzjgYvjgZrjgbLjgo0NCivjgojjgZfjgZbjgo8s44KG44GG44GTDQor44KI44GX44GgLOOBv+OBpOOCiw0KK+OCiOOBl+OBoCzjgYLjgYvjgooNCivjgojjgZfjgaAs44Gf44GL44GXDQor44KI44GX44GuLOOBi+OBmuOBvw0KK+OCiOOBl+OCgOOCiSzjgobjgYbjgZMNCivjgorjgoXjgYYs44GI44GE44GYDQor44KN44GPLOOBguOBjeOBkw0KK+OBleOBi+OCguOBqCzjgZHjgYTjgZMNCivjgo/jgZ/jgarjgbks44KM44GE44GqDQor44KP44Gf44Gq44G5LOOChuOBteOBkw0KK+OCj+OBn+OBquOBuSzjgobjgYYNCivjgo/jgZ/jgarjgbks44Gf44GL44GTDQor44KP44Gf44Gq44G5LOOChOOCiOOBhA0KK+OCj+OCieOBsyzjgbLjgo3jga7jgooNCivjga7jgZbjgo8s44KG44GG44GTDQor44GP44G8LOOChOOBmeOBkw0KK+OCiOOBl+OCguOBqCzjgZMNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OBsuOCjeOBleOCjyzjgorjgYgNCivjgb/jgbLjgoks44KK44KH44GG44G444GEDQor44GK44GK44GuLOOBsuOCjeOChuOBjQ0KK+OBiuOBoCzjgYvjgZrjgbLjgZMNCivjgYrjgYrjgbDjgZ/jgZEs44G/44G744GTDQor44GL44Gp44GILOOBguOBhA0KK+OBq+OBl+OBoCzjgajjgojjgbLjgo0NCivjgb7jgaTjgoLjgags44KI44GX44GC44GNDQor44G/44GO44GfLOOBvuOBqg0KK+OBv+OChOOCguOCiizjgb/jgYoNCivjgoTjgb7jgZfjgZ8s44G+44Gp44GLDQor44KE44G+44GgLOOBl+OCk+OBlA0KK+OBruOCiuOBqOOBvyzjgaHjgYgNCivjgYTjgZHjgaAs44KG44GG44GZ44GRDQor44KC44KK44GfLOOCiuOCh+OBhuOBmA0KK+OBn+OBkeOBhuOBoSzjgorjgofjgYYNCivjgb/jgZ8s44KI44GX44Gu44KKDQor44GE44Gs44GELOOBkeOCkw0KK+OBqOOBhizjga7jgorjgobjgY0NCivjgb7jgY3jga4s44G+44KKDQor44Gq44Gk44KBLOOBl+OCk+OChA0KK+OBiuOBruOBp+OCiSzjgY/jgavjgbLjgo0NCivjgYrjgYrjgZ8s44G/44GN44GTDQor44GG44KL44GX44GV44GTLOOCiuOBpOOBkw0KK+OBleOBi+OBjeOBsOOCiSzjgZfjgZLjga7jgooNCivjgYLjgYrjgY0s44GI44GE44GZ44GRDQor44GC44GK44GNLOOBquOBiuOBqA0KK+OBguOBiuOBjSzjgobjgYbjgZMNCivjgYLjgYvjgYzjgo8s44KC44Go44GTDQor44GC44GL44Gk44GLLOOBi+OBmuOBsuOBqA0KK+OBguOBi+OBu+OCiizjgZHjgYTjgZjjgo3jgYYNCivjgYLjgY3jgoTjgb4s44GL44Ga44Gy44KNDQor44GC44GV44GELOOBpuOCi+OBvw0KK+OBguOBleOBhCzjgZfjgpPjgbrjgYQNCivjgYLjgZXjgYrjgYss44GR44KT44GYDQor44GC44GV44Gs44G+LOOBguOChA0KK+OBguOBnSzjgarjgYrjgbXjgb8NCivjgYLjgZ/jgZEs44Go44GX44GNDQor44GC44Gg44GhLOOBl+OCk+OBlA0KK+OBguOBuSzjgZ/jgYvjgb/jgaENCivjgYLjgbks44Gu44G244KE44GZDQor44GC44G5LOOChuOBjeOBiA0KK+OBguOCieOBhCzjgaTjgojjgZcNCivjgYLjgorjgb4s44Go44KC44GTDQor44GE44GE44Ga44GLLOOBoOOBhOOBmeOBkQ0KK+OBhOOBjOOCieOBlyzjgobjgZ/jgYsNCivjgYTjgZHjgaAs44GT44Ga44GIDQor44GE44GR44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBkeOBr+OBnyzjgbLjgo3jgY0NCivjgYTjgZbjgo8s44Gh44Gv44KLDQor44GE44GX44GELOOChOOBmeOBlw0KK+OBhOOBl+OBi+OCjyzjgorjgofjgYbjgZMNCivjgYTjgZfjgZDjgo0s44GC44GN44Gy44KNDQor44GE44GX44GgLOOBk+OBhuOBn+OCjeOBhg0KK+OBhOOBl+OBoCzjgZ/jgaTjgYoNCivjgYTjgZfjgbDjgZcs44Go44GX44KG44GNDQor44GE44GX44Gv44KJLOOBn+OBi+OBsuOCjQ0KK+OBhOOBl+OCguOBqCzjgb7jgobjgZMNCivjgYTjgZ3jga/jgZ8s44GC44GV44GTDQor44GE44Gf44G/LOOBn+OBi+OBguOBjQ0KK+OBhOOBoeOBi+OCjyzjgarjgovjgZ/jgYsNCivjgYTjgaPjgZfjgY0s44Gf44Gk44KEDQor44GE44GnLOOBquOCi+OBvw0KK+OBhOOBpyzjgZPjgYbjgZgNCivjgYTjgajjgYYs44G+44KG44G/DQor44GE44Go44GGLOOBmOOCheOCk+OBuuOBhA0KK+OBhOOBqOOBhizjgb7jgZXjgYoNCivjgYTjgajjgYYs44Gq44Gk44GTDQor44GE44Go44GGLOOBvuOBhA0KK+OBhOOBruOBhuOBiCzjgb7jgZPjgagNCivjgYTjga7jgYbjgYgs44KI44GG44GZ44GRDQor44GE44Gu44GG44GILOOBquOBiuOBjQ0KK+OBhOOBruOBhuOBiCzjgYvjgaTjgY0NCivjgYTjga7jgY/jgaEs44Gu44KK44KG44GNDQor44GE44G+44GELOOCiuOBuw0KK+OBhOOBvuOBjeOCheOBhuOCjOOBhCzjgozjgYTjgZMNCivjgYTjgb7jgZzjgY0s44GP44G/44GTDQor44GE44G+44KA44KJLOOBvuOBmeOBvw0KK+OBhOOBvuOCgOOCiSzjgZHjgpPjgYTjgaHjgo0NCivjgYTjgo/jgYQs44GV44Go44KLDQor44GE44KP44GELOOBn+OBi+OBlw0KK+OBhOOCj+OBleOBjSzjgajjgoLjgZMNCivjgYTjgo/jgZss44GZ44GZ44KADQor44GE44KP44GfLOOBk+OBhuOBmA0KK+OBhOOCj+OBpyzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgo/jgoDjgoks44G+44GV44Gy44GoDQor44GG44GI44GgLOOBteOBv+OBig0KK+OBhuOBiOOBrizjgb7jgZXjgbXjgb8NCivjgYbjgYjjga4s44GX44KT44GYDQor44GG44GL44GELOOBsuOCjeOBjQ0KK+OBhuOBleOBvyzjgb7jgorjgZMNCivjgYbjgaHjgYbjgb8s44KK44GI44GTDQor44GG44Gh44KE44G+LOOBvuOBleOBteOBvw0KK+OBhuOCieOBr+OCiSzjgZ/jgYTjgZgNCivjgYjjgY4s44Gf44GL44Gy44GTDQor44GI44GY44KKLOOBsuOCjeOBlw0KK+OBiOOBruOBjeOBqSzjgojjgorjgZMNCivjgYjjgoLjgoos44GE44Gk44GNDQor44GI44KT44GpLOOBr+OBmOOCgQ0KK+OBiuOBiuOBhCzjgarjgaTjgZMNCivjgYrjgYrjgYTjgZEs44Go44KC44GL44GaDQor44GK44G144KJLOOBoOOBhOOBmeOBkQ0KK+OBiuOBiuOBi+OCjyzjgojjgZfjgZMNCivjgYrjgY3jgZ8s44KG44GN44Gu44KKDQor44GK44GK44GV44KPLOOBvuOBleOChuOBjQ0KK+OBiuOBiuOBnyzjgajjgoLjgZMNCivjgYrjgYrjgZ8s44GC44GN44Gq44GKDQor44GK44GK44GfLOOCiOOBhuOBuOOBhA0KK+OBiuOBiuOBn+OBqyzjgZ/jgYvjgYLjgY0NCivjgYrjgYrjgZ/jgass44KG44GN44Gy44GnDQor44GK44GK44Gk44GLLOOCguOBqOOBhA0KK+OBiuOBiuOBpOOBiyzjgojjgZfjga7jgooNCivjgYrjgYrjgaTjgYss44Gg44GE44GY44KN44GGDQor44GK44GK44Gk44GNLOOBleOBqOOCiw0KK+OBiuOBqSzjgZ/jgY/jgb8NCivjgYrjgajjgpPjgbks44Gf44Gk44KEDQor44GK44GuLOOBvuOBleOBsuOBkw0KK+OBiuOBrizjgbLjgo3jgZcNCivjgYrjgYrjga/jgZcs44Gf44Gk44KEDQor44GK44GK44Gv44GfLOOBguOBjeOCiQ0KK+OBiuOBiuOBv+OBoSzjgb/jgbsNCivjgYrjgYrjgoTjgb4s44G/44GN44Gy44GoDQor44GK44GL44GW44GNLOOBn+OBpOOBteOBvw0KK+OBiuOBi+OBmOOBvizjgb/jgarjgZMNCivjgYrjgYvjgaAs44GL44Ga44Gy44KNDQor44GK44GL44GgLOOBn+OBj+OBvg0KK+OBiuOBi+OCguOBqCzjgZ/jgZHjgZcNCivjgYrjgYvjgoLjgags44Gg44GE44GZ44GRDQor44GK44GM44KPLOOBmOOCheOCkw0KK+OBiuOBjuOBnyzjgajjgZfjgbXjgb8NCivjgYrjgY/jgY/jgbws44Gf44GL44GXDQor44GK44Gh44GC44GELOOBqOOCguOBruOCig0KK+OBiuOBvuOBnyzjgZHjgpMNCivjgYvjgZUs44KG44GN44GTDQor44GL44GX44KPLOOBoOOBhOOBmeOBkQ0KK+OBi+OBqOOBhizjgZPjgYbjgbjjgYQNCivjgYvjgajjgYYs44Gf44Gg44GXDQor44GL44Gq44GELOOBkeOCk+OBhOOBoQ0KK+OBi+OBquOChOOBvizjgaDjgYTjgZnjgZENCivjgYvjga3jgZMs44G144G/44KEDQor44GL44Gt44Gk44GNLOOBmOOCheOCk+OChA0KK+OBi+OBreOBvuOCiyzjgYLjgZrjgZUNCivjgYvjgbnjgYbjgaEs44Gq44GK44GoDQor44GL44G/44KA44KJLOOBi+OBiuOCig0KK+OBi+OBv+OChCzjgZXjgaHjgZMNCivjgYvjgb/jgoQs44GT44GG44GE44Gh44KN44GGDQor44GL44KP44GELOOChuOBv+OBkw0KK+OBi+OCj+OBhCzjgbLjgo3jgZcNCivjgYvjgo/jgYvjgb8s44KJ44GEDQor44GL44KP44GV44GNLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBleOBjSzjgabjgaTjgYLjgY0NCivjgYvjgo/jgZXjgY0s44Gy44KN44GNDQor44GL44KP44GX44G+LOOBn+OBi+OBig0KK+OBi+OCj+OBnyzjgZHjgYTjgYTjgaENCivjgYvjgo/jgb7jgZ8s44GT44GG44GfDQor44GL44KP44KC44GoLOOBkeOBhOOBmeOBkQ0KK+OBjeOBl+OCguOBqCzjgYLjgY3jgojjgZcNCivjgY3jgZfjgo0s44GR44GE44GfDQor44GN44GgLOOBiOOBhOOBmeOBkQ0KK+OBjeOBn+OBiuOBiyzjgZjjgoXjgpMNCivjgY3jgZ/jga4s44G+44GV44Gy44GTDQor44GN44Gf44Gv44KJLOOBneOBhuOBuOOBhA0KK+OBjeOBn+OCgOOCiSzjgZ/jgo3jgYYNCivjgY3jgZ/jgoLjgags44G/44G7DQor44GN44KA44KJLOOBn+OBkeOBsuOCjQ0KK+OBjeOCgOOCiSzjgbXjgb/jgagNCivjgY3jgoLjgags44GR44GE44GTDQor44GN44KTLOOCiOOBl+OChuOBjQ0KK+OBj+OBl+OChOOBvizjgYLjgY3jgogNCivjgY/jganjgYYs44Go44KC44Gu44KKDQor44GP44Gp44GGLOOBl+OCheOCk+OBmeOBkQ0KK+OBj+OCgeOBhuOBoSzjgZHjgpPjgZgNCivjgY/jgonjgZfjgZIs44GT44GG44GYDQor44GP44KJ44GhLOOBi+OBmuOBsuOCjQ0KK+OBj+OCieOBquOBiyzjgZ/jgZHjgZcNCivjgY/jgorjga/jgoks44KI44GG44GZ44GRDQor44GP44KN44GNLOOBvuOBleOBjQ0KK+OBj+OCjeOBleOBiyzjgojjgYbjgZMNCivjgY/jgo/jga/jgoks44GX44GuDQor44KG44GILOOBi+OBpOOBruOCig0KK+OBk+OBhOOBmuOBvyzjgZfjgpPjgoQNCivjgZPjgYbjgZjjgb4s44KI44GX44Gy44GTDQor44GT44GG44GgLOOBi+OBpOOChuOBjQ0KK+OBk+OCk+OBrizjgZHjgpPjgYTjgaENCivjgZPjgYws44GX44KH44GG44GE44GhDQor44GT44GMLOOBn+OBj+OBmA0KK+OBk+OBj+OBtuOCkyzjgaHjgYvjgZMNCivjgZPjgZXjgYss44GC44GN44GTDQor44GT44Gj44GmLOOBvuOBhOOBkw0KK+OBr+OBn+OBquOBiyzjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44KG44GLDQor44GT44Gw44KE44GXLOOBsuOBp+OBjQ0KK+OBk+OBsOOChOOBlyzjgYLjgpPjgaoNCivjgZPjgbDjgoTjgZcs44Gu44KK44GC44GNDQor44GT44Gw44KE44GXLOOBjeOBv+OBsuOBkw0KK+OBk+OBvuOBpCzjgZfjgpPjgZnjgZENCivjgZPjgb7jgaTjgbDjgoks44G144G/DQor44GT44KB44Gg44GrLOOBpuOBpOOCjeOBhg0KK+OBleOBhOOBjSzjgYLjgaTjgZcNCivjgZXjgYTjgajjgYYs44GR44KT44GE44GhDQor44GV44GL44GELOOBsuOCjeOBguOBjQ0KK+OBleOBi+OBkOOBoSzjgZ/jgo3jgYYNCivjgZXjgY/jgb4s44KG44GN44GTDQor44GV44GTLOOBvuOChA0KK+OBleOBleOBhCzjgarjgYrjgoQNCivjgZXjgZXjgYos44GL44Ga44GN44G/DQor44GV44GV44GNLOOBr+OBquOBkw0KK+OBleOBleOBjSzjgb7jgZXjgYoNCivjgZXjgajjgYYs44GL44Gk44Gy44GTDQor44GV44Go44GGLOOBi+OBmuOChuOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgbLjgagNCivjgZXjgajjgYYs44G+44GV44GNDQor44GV44Go44GGLOOBv+OBjQ0KK+OBleOBqOOBhizjgb7jgZXjgZMNCivjgZXjgajjgYYs44G/44GNDQor44GV44Go44GGLOOBruOBtuOChuOBjQ0KK+OBleOBqOOBhizjgorjgofjgYbjgZXjgY8NCivjgZXjga4s44G+44GV44GTDQor44GV44GuLOOBquOBjuOBlQ0KK+OBleOBr+OCiSzjgZ/jgYvjgbXjgb8NCivjgZXjgovjgoTjgb4s44Gf44GL44KG44GNDQor44GV44KP44GQ44GhLOOBguOChA0KK+OBl+OBhCzjgYjjgb8NCivjgZfjgYrjgZbjgY0s44Gy44Gn44GC44GNDQor44GX44GK44GgLOOBiOOBhOOBmA0KK+OBl+OBjSzjgb7jgZXjgosNCivjgZfjgaAs44KI44GX44Gy44KNDQor44GX44Gu44Gv44KJLOOBsuOBqOOBlw0KK+OBl+OBruOBr+OCiSzjgbLjgZXjgZcNCivjgZfjgbbjgZXjgo8s44KI44GG44GZ44GRDQor44GX44G+44GgLOOCiuOCheOBhuOBnw0KK+OBl+OBvuOBoCzjgb/jgbvjgZMNCivjgZfjgb7jgaAs44GR44KT44Gf44KN44GGDQor44GX44G/44GaLOOBn+OBpOOBig0KK+OBl+OBv+OBmizjgo/jgZ/jgosNCivjgZfjgb/jgZos44Go44KC44GTDQor44GX44G/44GaLOOBleOBqOOBkw0KK+OBl+OBv+OBmizjgZjjgoXjgpPjgYTjgaENCivjgZfjgb/jgZos44GY44KN44GGDQor44GX44KCLOOBjeOBrOOBiA0KK+OBl+OCguOBluOBjSzjgZ/jgaTjgbLjgZMNCivjgZfjgoLjgZjjgb4s44GI44GE44GE44Gh44KN44GGDQor44GX44KC44GkLOOBn+OBi+OBsuOCjQ0KK+OBl+OCguOBrizjgYLjgY3jgbLjgZMNCivjgZfjgoLjgoQs44KI44KK44GTDQor44GX44KJ44GZLOOBl+OCk+OBlA0KK+OBmeOBjuOBhuOCiSzjgb7jgZXjga7jgbYNCivjgZnjgY7jgYbjgoks44Go44GX44KN44GGDQor44GZ44Ga44GNLOOBqOOCguOBvw0KK+OBmeOBmuOBjSzjgYjjgorjgZMNCivjgZnjgZrjgY0s44KG44GG44GZ44GRDQor44GZ44Ga44GNLOOCiOOBl+OBruOCig0KK+OBmeOBmuOBjSzjgojjgZfjgY0NCivjgZnjgags44GV44Go44GXDQor44GZ44Gq44GgLOOBleOBqOOBlw0KK+OBmeOChOOBvizjgaDjgYTjgZnjgZENCivjgZvjgYos44GL44GK44KKDQor44Gb44GNLOOBk+OBhuOBuOOBhA0KK+OBm+OBjeOBrSzjgb/jgaTjgosNCivjgZvjgY3jgbAs44G+44GNDQor44Gb44GoLOOBkeOBhOOBmA0KK+OBm+OCk+OBlOOBjyzjga7jgorjgbLjgZUNCivjgZvjgpPjgaAs44KG44GG44GTDQor44Gb44KT44GwLOOBv+OBmuOBuw0KK+OBneOCgeOChCzjgZHjgYTjgZQNCivjgZ/jgYvjgY4s44Gy44Gn44GNDQor44Gf44GL44GOLOOBguOBhA0KK+OBn+OBi+OBjizjga7jgorjgobjgY0NCivjgZ/jgYvjgZss44KI44GG44GE44Gh44KN44GGDQor44Gf44GL44GgLOOCiOOBhuOBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgobjgY0NCivjgZ/jgYvjga/jgZcs44KI44GX44Gu44KKDQor44Gf44GL44Gv44GXLOOBn+OBi+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgagNCivjgZ/jgYvjga/jgZcs44G/44GLDQor44Gf44GL44Gv44GXLOOChOOBmeOBsuOCjQ0KK+OBn+OBi+OBv+OBluOCjyzjgZPjgZrjgYgNCivjgZ/jgY3jgZbjgo8s44GR44GE44Ge44GGDQor44Gf44GQ44GhLOOBjeOCh+OBhuOBkw0KK+OBn+OBkeOBl+OBnyzjgZHjgpMNCivjgZ/jgZHjgaAs44GL44Ga44G+DQor44Gf44GR44GgLOOChuOBhuOBmA0KK+OBn+OBkeOBoCzjgZPjgYbjgZgNCivjgZ/jgZHjgarjgYss44Gf44GL44Gy44KNDQor44Gf44GR44Gv44KJLOOBv+OBjeOBkw0KK+OBn+OBkeOChOOBvizjgb/jgaTjgosNCivjgZ/jgZgs44G/44GLDQor44Gf44GgLOOCiOOBl+OBn+OBiw0KK+OBoOOBpizjgY/jgb/jgZMNCivjgZ/jgarjgYss44Gh44GL44G144G/DQor44Gf44Gq44GLLOOBruOCiuOBsuOBkw0KK+OBn+OBquOBiyzjgZ/jgY/jgarjgYwNCivjgZ/jgarjgYss44Gf44GL44KG44GNDQor44Gf44Gq44GLLOOBn+OBi+OChuOBjQ0KK+OBn+OBq+OBkOOBoSzjgZ/jgYvjga7jgooNCivjgZ/jgavjgZPjgZcs44GR44KT44Gf44KN44GGDQor44Gf44Gr44GuLOOBn+OBi+OBguOBjQ0KK+OBn+OBtuOBjSzjgZ/jgo3jgYYNCivjgZ/jgbbjgaEs44KI44GX44Gy44GoDQor44Gf44G+44GK44GNLOOBvuOBleOCiOOBlw0KK+OBn+OBvuOBjOOCjyzjgajjgoLjgZMNCivjgZ/jgoDjgoks44GR44GE44GTDQor44Gf44KB44Gu44KKLOOCiOOBhuOBuOOBhA0KK+OBn+OCk+OBrizjgYjjgooNCivjgZ/jgpPjgbws44GC44GN44Gy44GTDQor44Gh44GgLOOBi+OBpOOBsuOBlQ0KK+OBoeOBreOCkyzjgobjgY0NCivjgaTjgYzjga3jgZbjgo8s44Gu44G244KG44GNDQor44Gk44GL44Gv44KJLOOBv+OBmuOBuw0KK+OBpOOBoeOChCzjgb7jgobjgb8NCivjgaTjgaHjgoQs44KI44GG44GZ44GRDQor44Gk44Gh44KELOOChOOBmeOChuOBjQ0KK+OBpOOBmuOBjSzjgb7jgb8NCivjgaTjgZrjgonjga/jgoks44GV44Gh44GTDQor44Gk44Gt44KI44GXLOOBpuOCi+OBruOBtg0KK+OBpOOBvOOBhuOBoSzjgYLjgY3jgbXjgb8NCivjgaTjgovjgZfjgb4s44KK44GIDQor44Gn44GQ44GhLOOBn+OBj+OChA0KK+OBpuOBmuOBiyzjgb/jgaTjga7jgbYNCivjgabjgonjgYvjgo8s44Gf44GL44GXDQor44Gm44KJ44GQ44GhLOOCgOOBreOBruOCig0KK+OBpuOCieOBl+OBvizjgZHjgpPjgZgNCivjgabjgonjgaAs44KI44GX44GNDQor44Go44GM44GXLOOBoOOBhOOBmeOBkQ0KK+OBqOOBj+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgajjgZbjgo8s44KG44GG44GTDQor44Go44Gz44GK44GLLOOBn+OBkeOBlw0KK+OBqOOBvuOCiuOBrizjgZjjgoXjgpPjgZMNCivjgajjgb/jgYQs44GY44KF44KT44GTDQor44Go44G/44GW44KPLOOBguOChA0KK+OBqOOBv+OBnyzjgZ/jgYTjgaENCivjgajjgb/jgZ8s44KG44GG44GfDQor44Go44G/44Gq44GMLOOCiOOBhuOBkw0KK+OBqOOCiOOBoCzjgZ3jgYbjgZ/jgo3jgYYNCivjgajjgonjgZ/jgass44G+44GV44GTDQor44Gq44GE44Go44GGLOOBn+OBi+OBig0KK+OBquOBjOOBhCzjgaHjgYgNCivjgarjgYzjgYQs44GY44KF44KT44GTDQor44Gq44GL44GE44GRLOOBl+OCk+OBlA0KK+OBquOBi+OBhuOBiCzjgaDjgYTjgZnjgZENCivjgarjgYzjgYos44KK44KH44GG44GTDQor44Gq44GL44GT44GYLOOBleOChOOBiw0KK+OBquOBjOOBleOBiyzjgZPjgYbjgZgNCivjgarjgYvjgZjjgb4s44KG44GN44GTDQor44Gq44GL44GY44G+LOOBvuOCig0KK+OBquOBjOOBnyzjgYvjgaTjgoQNCivjgarjgYzjgZ8s44GC44Gk44Gy44GVDQor44Gq44GM44GfLOOBquOBiuOBjQ0KK+OBquOBi+OBpOOCiyzjgbLjgo3jgYLjgY0NCivjgarjgYzjga4s44KE44GZ44GKDQor44Gq44GL44KA44KJLOOBleOBqOOCiw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44GP44G/44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgobjgYsNCivjgarjgYvjgoDjgoks44G+44GV44GC44GNDQor44Gq44GL44KA44KJLOOBiOOBhOOBmA0KK+OBquOBpOOBr+OCiSzjgZXjgoTjgYsNCivjgarjgorjgZXjgaAs44GX44KT44GZ44GRDQor44Gq44KT44G2LOOBruOBtuOChuOBjQ0KK+OBq+OBi+OBhOOBqeOBhizjgajjgoLjgoQNCivjgavjgZcs44Gd44GG44GE44Gh44KN44GGDQor44Gr44GXLOOBquOBiuOChuOBjQ0KK+OBq+OBl+OBiizjgajjgZfjgoQNCivjgavjgZfjgYvjgo8s44GR44KT44GYDQor44Gr44GX44GP44KJLOOBleOBqOOBkw0KK+OBq+OBl+OBluOCjyzjgYTjgZXjgoANCivjgavjgZfjgZbjgo8s44GI44KK44GqDQor44Gr44GX44GgLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OBoCzjgorjgofjgYbjgbjjgYTjgZ8NCivjgavjgZfjgoTjgb4s44Gy44GV44Gu44KKDQor44Gs44Gu44KELOOBl+OBkuOBig0KK+OBrOOBvuOBluOBjSzjgobjgY3jgYoNCivjgazjgb7jgZ8s44Gf44GR44GXDQor44Gu44Gp44G/LOOCiuOBqg0KK+OBruOBvyzjgb7jgZXjgY0NCivjga7jgZDjgaEs44GL44Ga44KI44GXDQor44Gu44GY44G+LOOBpuOCi+OBguOBjQ0KK+OBruOBmOOCiizjgajjgZfjgobjgY0NCivjga7jgaAs44G/44GN44GTDQor44Gu44GgLOOChuOBjeOBkw0KK+OBruOCgOOCiSzjgZfjgpPjgbjjgYQNCivjga7jgoDjgoks44GL44Ga44GIDQor44Gu44KA44KJLOOBi+OBmuOBig0KK+OBr+OBk+OBl+OBvizjgo/jgZ/jgosNCivjga/jgZfjgoLjgags44KK44KH44GGDQor44Gv44GX44KC44GoLOOBkeOBhA0KK+OBr+OBm+OBjOOCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgZ/jgZHjgoTjgb4s44KG44G144GTDQor44Gv44Gj44GfLOOChuOBsg0KK+OBr+OBo+OBqOOCiizjgZXjgajjgb8NCivjga/jgarjgYQs44Gf44GR44Gv44KLDQor44Gv44Gq44GgLOOBkeOBhOOBmeOBkQ0KK+OBr+OBvuOBkOOBoSzjgZHjgpMNCivjga/jgb7jgaAs44G+44Gq44G/DQor44Gv44G+44GgLOOBkeOBhOOBkw0KK+OBr+OBvuOBrizjgZ/jgYvjgobjgY0NCivjga/jgoTjgYvjgo8s44KG44GNDQor44Gv44KE44GXLOOBpuOBpOOBig0KK+OBr+OChOOBlyzjgajjgoLjgarjgYwNCivjga/jgoTjgZcs44GR44KT44Gf44KN44GGDQor44Gv44KJLOOBoeOBi+OBkw0KK+OBr+OCiSzjgoTjgZnjgYLjgY0NCivjga/jgonjgaAs44G/44GIDQor44Gy44GI44GL44GfLOOBleOBqOOBkw0KK+OBsuOBjOOBlSzjgYLjgaTjgZcNCivjgbLjgYzjgb8s44Gb44GE44GYDQor44Gy44GN44GuLOOBpuOBpOOBmA0KK+OBsuOBoCzjgZ/jgYvjgZcNCivjgbLjgaDjgYss44GX44KTDQor44Gy44Gn44GX44G+LOOBv+OBjeOBkw0KK+OBleOBi+OBhCzjgZjjgoXjgpPjgoQNCivjgbLjgonjgYQs44Gv44KE44GoDQor44Gy44KJ44GE44KPLOOBiOOBpOOBkw0KK+OBsuOCieOBnyzjgbLjgafjgY0NCivjgbLjgonjgbDjgoTjgZcs44Gq44GK44KG44GNDQor44Gy44KN44GbLOOBguOChOOBkw0KK+OBteOBi+OBiizjgb/jgobjgY0NCivjgbXjgY/jgYQs44Gy44Gn44Gy44GTDQor44G144GP44GW44GNLOOBv+OCjOOBhA0KK+OBteOBj+OBoCzjgojjgYbjgbjjgYQNCivjgbXjgY/jgaAs44KE44GZ44Gy44KNDQor44G144GP44GgLOOBvuOBleOCiw0KK+OBteOBj+OBoCzjgZjjgoXjgpPjgYTjgaENCivjgbXjgY/jga/jgoks44KG44GN44GTDQor44G144GP44KA44KNLOOBsuOCjeOBteOBvw0KK+OBteOBmOOBhuOCiSzjgYLjgoQNCivjgbXjgZjjgYrjgYss44GT44GG44GE44Gh44KN44GGDQor44G144GY44GK44GLLOOBvuOChA0KK+OBteOBmOOBnyzjgZfjgZLjgosNCivjgbXjgZjjgoLjgags44KG44GL44KKDQor44G144GY44KC44GoLOOBiOOCiuOBkw0KK+OBteOBmOOCj+OCiSzjgYLjgY3jgbLjgo0NCivjgbXjgZ/jgoDjgows44GE44GV44GKDQor44G144KL44GV44KPLOOBhOOBoeOCjeOBhg0KK+OBteOCi+OBnyzjgbLjgZXjgYoNCivjgbXjgovjgoQs44Gy44Gn44GKDQor44G744GT44KJLOOBvuOBpOOBig0KK+OBu+OBl+OBrizjgZnjgb/jgYoNCivjgbvjgZfjga4s44Gf44KC44GkDQor44G744Gd44GuLOOBsuOCjeOBv+OBoQ0KK+OBu+OCiizjgajjgZcNCivjgbvjgorjgYbjgaEs44GI44Gk44GKDQor44G744KK44GK44GLLOOChOOBmeOBig0KK+OBu+OCiuOBkOOBoSzjgZjjgoXjgpPjgYTjgaENCivjgbvjgpPjgb4s44GE44GV44GKDQor44G+44GI44GL44KPLOOBqOOCguOChuOBjQ0KK+OBvuOBiOOBmOOBvizjgZPjgYbjgZgNCivjgb7jgYjjgaAs44Go44GX44Gy44KNDQor44G+44GI44Gv44KJLOOBqOOBl+OBsuOBkw0KK+OBvuOBjSzjgZfjgZLjga7jgooNCivjgb7jgY3jga4s44Gf44GR44GKDQor44G+44GZ44GELOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgY3jgojjgZcNCivjgb7jgZnjgaAs44G+44GV44G/44GkDQor44G+44Gk44GELOOBi+OCk+OBmA0KK+OBj+OBvuOBjOOBhCzjgYvjgaTjgbLjgZMNCivjgYvjga3jgZMs44KK44KH44GG44GYDQor44GT44G/44KELOOBruOBvOOCiw0KK+OBk+OBjOOBhOOBqCzjgb/jgaHjgZMNCivjgYvjgpPjgbDjgoTjgZcs44Gm44KL44G+44GVDQor44GN44Gu44GX44GfLOOBr+OCi+OBsuOBkw0KK+OBjeOBj+OBoSzjgb/jga7jgosNCivjgZPjgb7jgbAs44KG44Gf44GLDQor44GT44GP44G2LOOBv+OBpOOBkw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44Gm44KL44GKDQor44GN44Gk44Gf44GLLOOBoeOCheOBhuOBkeOCkw0KK+OBvuOBpOOBiizjgZ/jgYvjgobjgY0NCivjgYvjgo/jgYQs44G+44Gq44G2DQor44GP44KK44Gv44KJLOOBqOOBiuOCiw0KK+OBi+OBqeOBrizjgbLjgo3jgojjgZcNCivjgYvjgb/jgY/jgbws44GR44KT44GYDQor44GL44KP44GQ44GhLOOBn+OBi+OBlw0KK+OBi+OBvuOBnyzjgb7jgZXjgoLjgagNCivjgYvjgpPjgaAs44GL44Ga44G/DQor44GL44KT44GgLOOBv+OBpOOBig0KK+OBk+OBl+OCgOOCiSzjgajjgZfjgobjgY0NCivjgb7jgaTjgYos44GN44KI44GXDQor44GP44GV44GNLOOBmOOCheOCk+OBmA0KK+OBi+OCguOBr+OCiSzjgb7jgZXjgbXjgb8NCivjgYvjgZXjgZjjgb4s44Go44GX44G+44GVDQor44G+44Gk44GNLOOCiOOBl+OBi+OBmg0KK+OBi+OBv+OBj+OCiSzjgaTjga3jgYoNCivjgY/jgorjga/jgoks44Gu44G244GC44GNDQor44Gq44GL44GhLOOBjeOCiOOBlw0KK+OBi+OBjOOCjyzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44Gb44GE44GYDQor44GL44KT44GuLOOBqOOBl+OBig0KK+OBvuOBpOOBl+OBnyzjgbXjgb/jgYoNCivjgYvjgZfjgo/jgaAs44GK44GV44KADQor44GT44KT44GuLOOBi+OBmuOBig0KK+OBk+OBmeOBjizjgojjgZfjgb8NCivjgZPjgoLjgoos44Go44GX44KN44GGDQor44GL44KP44GuLOOChuOBjeOBig0KK+OBjeOBn+OCgOOCiSzjgZ/jgZHjgbLjgZMNCivjgYvjgZjjgb4s44Gm44Gk44KEDQor44GL44Go44GGLOOBsuOBp+OBig0KK+OBk+OChOOBrizjgobjgY3jgYoNCivjgYvjgaTjgb7jgZ8s44Go44GX44GL44GaDQor44GP44KP44GgLOOBkeOBhOOBmA0KK+OBk+OBn+OBqyzjgoTjgb7jgagNCivjgYvjgZjjgYbjgaEs44Gu44G244GTDQor44GT44KT44GpLOOBn+OBi+OBlw0KK+OBk+OCk+OBqSzjgojjgZfjgYvjgZoNCivjgb7jgaTjgarjgb8s44GX44KT44KEDQor44GL44GM44KE44G+LOOBvuOBleOBr+OCiw0KK+OBi+OBreOBkyzjgoTjgZnjgbLjgZMNCivjgZPjgoTjgb4s44KE44GZ44Gv44KLDQor44GN44Gk44GL44KPLOOBk+OBhuOBm+OBhA0KK+OBi+OBl+OBj+OCiSzjgYvjgpPjgZgNCivjgY/jgo3jgY0s44KI44GX44KG44GNDQor44GT44GE44Ga44G/LOOBl+OCheOBhuOBuOOBhA0KK+OBj+OBnCzjgb/jgY3jgYoNCivjgYvjgo/jgYvjgb8s44GR44GE44GTDQor44GL44G/LOOBleOBoeOBig0KK+OBjeOCgOOCiSzjgajjgYrjgosNCivjgb7jgaTjga4s44GL44Ga44Gy44GVDQor44GN44GP44GfLOOBiuOBleOCgA0KK+OBj+OBvuOBoCzjgb7jgZXjgYLjgY0NCivjgY/jgavjga/jgoks44GX44KF44KT44GE44GhDQor44GT44GY44G+LOOChuOBn+OBiw0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjga7jgooNCivjgojjga3jgY/jgoks44KI44GX44Gf44G/DQor44GT44Gw44KE44GXLOOBpOOBreOBig0KK+OBk+OBsOOChOOBlyzjgabjgaTjgYoNCivjgZPjgZjjgofjgYYs44GV44Gq44GIDQor44GN44KA44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgYLjgY0NCivjgZPjgpPjgaks44Gu44G244GL44GaDQor44GL44KP44GELOOBqOOBl+OBi+OBpA0KK+OBj+OBvuOBr+OCiSzjgZHjgpPjgZgNCivjgY3jgZss44G/44Gh44KE44GZDQor44GL44GX44GP44G+LOOBkeOCk+OBnuOBhg0KK+OBi+OBkyzjgZjjgoXjgpPjgYTjgaENCivjgYTjgZfjgYzjgYQs44KI44GX44GC44GNDQor44GL44G/44GQ44GhLOOBn+OBoOOBlw0KK+OBj+OCguOBoCzjgajjgZfjgYoNCivjgZPjgb7jgaQs44GX44KH44GG44GE44GhDQor44GL44Gt44GgLOOBv+OBpOOBig0KK+OBjeOBj+OBoSzjgojjgZfjgbLjgZUNCivjgZPjgZ/jgass44KI44GX44KG44GNDQor44GT44Gw44KE44GXLOOChOOBmeOBqA0KK+OBi+OCj+OBkOOBoSzjgojjgZfjgYoNCivjgYvjga3jgZMs44Gy44KN44GC44GNDQor44GL44KCLOOCiOOBl+OBguOBjQ0KK+OBi+OCj+OCgOOCiSzjgYjjgYTjgZgNCivjgY/jgb7jga4s44G+44GV44KG44GNDQor44GT44Gw44KE44GXLOOCiOOBl+OBiA0KK+OBjeOCgOOCiSzjgYvjgZrjgbLjgZUNCivjgY3jgZfjgoLjgags44Gy44KN44Gy44GVDQor44GN44KA44KJLOOBjeOBl+OBig0KK+OBi+OBv+OBkOOBoSzjgabjgaTjgoQNCivjgY3jgoDjgoks44G+44GV44Gv44GhDQor44GT44Gw44KE44GXLOOBl+OCheOCk+OBmA0KK+OBi+OBqeOBj+OCiSzjgYvjgarjgZMNCivjgY3jgZ/jgoDjgoks44Gy44Gn44KIDQor44GL44Gk44GNLOOBsuOBleOBlw0KK+OBi+OCk+OBluOBjSzjgb7jgZXjga7jgbYNCivjgYvjgZ/jgY7jgoos44GE44GP44G/DQor44GT44Gw44KE44GXLOOBruOBtuOBkw0KK+OBk+OBvuOBpOOBluOBjSzjgZPjgYbjgZ7jgYYNCivjgY3jgZ8s44Gy44KN44Gu44KKDQor44GL44Gk44Gv44KJLOOBl+OCheOBhg0KK+OBk+OBkOOCjCzjgYLjgY3jgYgNCivjgZPjgZjjgb4s44GC44Gk44GXDQor44GT44KB44GgLOOBsuOBleOBlw0KK+OBk+OBq+OBlyzjgZHjgpPjgYTjgaENCivjgY/jgo/jga/jgoks44KE44GZ44G+44GVDQor44GT44KE44G+LOOBsuOBp+OBguOBjQ0KK+OBvuOBpOOCguOBqCzjga7jgorjgobjgY0NCivjgYvjgZjjgoLjgags44KI44GX44GC44GNDQor44GP44G+44GW44KPLOOBi+OBpOOBvw0KK+OBjeOCgOOCiSzjgajjgZfjgYoNCivjgZPjgbDjgZfjgYzjgo8s44Gy44Go44GXDQor44GL44G/44KELOOChuOBhg0KK+OBvuOBpOOCguOBqCzjgZfjgofjgYbjgZgNCivjgZPjga/jgZcs44GI44GE44Ge44GGDQor44GT44Gg44G+LOOBnOOCk+OBhOOBoQ0KK+OBi+OCj+OBi+OBvyzjgYvjgZrjgb8NCivjgb7jgaTjgoLjgags44Gv44KL44GKDQor44GL44GE44GpLOOBv+OBuw0KK+OBjeOCgOOCiSzjgajjgZfjgYoNCivjgY/jgZQs44GN44KI44G/DQor44G+44Gk44KC44GoLOOCiOOBl+OChuOBjQ0KK+OBvuOBpOOChOOBvizjgorjgofjgYbjgZnjgZENCivjgb7jgovjgoTjgb4s44GV44Gh44GTDQor44GT44KT44GuLOOBjeOCiOOBlw0KK+OBj+OCjeOBjSzjgZjjgoXjgpMNCivjgZPjgb/jgoQs44KK44KH44GG44GTDQor44GN44KA44KJLOOBquOBiuOChuOBjQ0KK+OBjeOBrizjgb/jgYINCivjgZPjgb7jgaQs44KG44GNDQor44GL44Gt44Gh44GLLOOCiuOCh+OBhuOBmeOBkQ0KK+OBi+OBquOBn+OBqyzjgorjgYgNCivjgZPjgbDjgoTjgZcs44KI44GX44KN44GGDQor44GN44Gf44KE44G+LOOBi+OBquOBkw0KK+OBi+OBmCzjgbLjgo3jgZMNCivjgYvjgo/jgZfjgb4s44Gq44GK44GNDQor44GN44KA44KJLOOBvuOBjeOBkw0KK+OBk+OBsOOCiSzjgZ/jgY/jgb4NCivjgY3jgZ/jgYzjgo8s44Gq44GK44Gf44GLDQor44G+44KL44KE44G+LOOBquOBu+OBkw0KK+OBi+OCguOCkyzjgb7jgZXjgZcNCivjgb/jgYbjgoks44Gf44GL44GXDQor44G/44GX44G+LOOBi+OBpOOBsuOCjQ0KK+OBv+OBmeOBjizjgajjgoLjgYLjgY0NCivjgb/jgZrjgZ8s44GY44KF44KT44GTDQor44G/44Ga44KC44GoLOOBquOCi+OBjQ0KK+OBv+OBnuOBkOOBoSzjgb7jgZXjgZMNCivjgb/jgZrjgYss44KG44Gf44GLDQor44G/44Gq44G/LOOBn+OBkeOCiw0KK+OBv+OBquOBv+OBn+OBqyzjgb7jgZXjgagNCivjgb/jga3jgZ8s44KG44GN44GTDQor44G/44KE44GELOOBk+OBhuOBnw0KK+OBv+OChOOBiuOBiyzjgZHjgpPjgo3jgYYNCivjgb/jgoTjgZbjgY0s44G+44KG44G/DQor44G/44KE44GW44GNLOOBmOOCheOCig0KK+OBv+OChOOBr+OCiSzjgZ/jgaTjgbLjgZMNCivjgb/jgojjgZcs44GC44GN44Gu44G2DQor44KA44KJ44GL44G/LOOBvuOBleOBsuOBpw0KK+OCgOOCieOBjSzjgYLjgaTjgZMNCivjgoDjgonjgZ8s44GR44KT44GYDQor44KA44KJ44GfLOOBv+OBoeOChA0KK+OCgOOCieOBnyzjgoHjgZDjgb8NCivjgoDjgonjgoTjgb4s44G+44GV44GTDQor44KC44Go44GuLOOChOOBmeOBvuOBlQ0KK+OCguOCiizjgajjgZfjgobjgY0NCivjgoLjgoos44Gq44GKDQor44KC44KK44GfLOOBsuOBp+OBqOOCgg0KK+OCguOCiuOBnyzjgorjgYgNCivjgoLjgorjgoTjgb4s44GC44Gk44GXDQor44KC44KK44KE44G+LOOBi+OBiuOCig0KK+OChOOBluOCjyzjgYvjgZrjgZMNCivjgoTjgZjjgb4s44Go44KC44Gy44KNDQor44KE44Gq44GO44GgLOOBiOOCiuOBkw0KK+OChOOBvuOBjOOBnyzjgZHjgYTjgYTjgaENCivjgoTjgb7jgYvjgo8s44GX44KT44KEDQor44KE44G+44GQ44GhLOOBleOBqOOBvw0KK+OChOOBvuOBkOOBoSzjgobjgY0NCivjgoTjgb7jgZDjgaEs44Gf44Gg44KG44GNDQor44KE44G+44GV44GNLOOBvuOBleOBjQ0KK+OChOOBvuOBluOBjSzjgZHjgpMNCivjgoTjgb7jgZfjgZ8s44GX44KF44GP44G7DQor44KE44G+44GgLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBoCzjgZHjgpPjgYTjgaENCivjgoTjgb7jgaAs44GX44KF44KTDQor44KE44G+44Gq44GLLOOBvuOBleOBlw0KK+OChOOBvuOBrSzjgZfjgpPjgZQNCivjgoTjgb7jgoLjgags44KE44GZ44Gu44KKDQor44KE44G+44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgafjgobjgY0NCivjgobjgYvjgo8s44GV44Go44GXDQor44KG44GWLOOBguOBjeOBkw0KK+OChuOBn+OBqyzjgorjgYgNCivjgobjgZ/jgass44Gg44GE44GZ44GRDQor44KI44GULOOBqOOCguOBruOCig0KK+OCiOOBk+OBvOOCiizjgb7jgZXjgZ/jgZENCivjgojjgZfjgYrjgYss44Gf44Gg44GC44GNDQor44KI44GX44GL44KPLOOBsuOCjeOBvw0KK+OCiOOBl+OBoCzjgbLjgo3jgZ/jgYsNCivjgojjgZfjgaAs44GN44KH44GG44GTDQor44KI44GX44KC44GoLOOCguOBqOOBig0KK+OCiOOBreOBoCzjgobjgb/jgZMNCivjgo/jgYvjgZXjgoQs44GX44Ga44GLDQor44KP44Gf44Gq44G5LOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OCj+OBn+OBquOBuSzjgoTjgZnjgbLjgo0NCivjgb/jgaTjgoTjgb4s44G+44GV44G/DQor44Gy44KJ44GK44GLLOOCiuOBlQ0KK+OBi+OCk+OBrizjgYvjgaTjgagNCivjgo/jgZMs44KK44GIDQor44GC44GK44GNLOOCj+OBn+OCiw0KK+OBguOBi+OBiizjgb7jgZXjga7jgooNCivjgYLjgYvjgY4s44KK44KH44GG44G444GEDQor44GC44GL44GXLOOBsuOCjeOBkw0KK+OBguOBi+OBpOOBiyzjgoTjgZnjgobjgY0NCivjgYLjgYvjga/jga0s44Gy44KN44GC44GNDQor44GC44GL44G744KKLOOChuOBhuOBkw0KK+OBguOBjeOCguOBqCzjgaHjgYgNCivjgYLjgY3jgoTjgb4s44G/44G7DQor44GC44GV44GELOOBvuOBleOBi+OBmg0KK+OBguOBleOBrizjgoTjgZnjgbLjgo0NCivjgYLjgZXjgbIs44GC44GV44GTDQor44GC44GV44G5LOOBi+OCiA0KK+OBguOBr+OCjOOCkyzjgaDjgYTjgZnjgZENCivjgYLjgbks44Go44GX44Gy44GTDQor44GC44G5LOOBi+OBiuOCiw0KK+OBguOBuSzjgbLjgo3jgbXjgb8NCivjgYLjgb7jga4s44G+44GV44G/DQor44GC44KB44KC44KKLOOBguOCiuOBlQ0KK+OBguOCieOBhCzjgbLjgafjgYoNCivjgYLjgonjgYQs44GI44Gk44GTDQor44GC44KJ44GELOOBi+OBpOOBsuOCjQ0KK+OBguOCieOBn+OBqyzjgZXjgaTjgY0NCivjgYLjgorjgarjgYss44Go44KC44Gy44KNDQor44GE44GE44GULOOBruOCiuOBguOBjQ0KK+OBhOOBhOOBoCzjgb7jgobjgb8NCivjgYTjgZHjgaAs44KI44GX44Gf44GLDQor44GE44GT44GMLOOBiOOBv+OBkw0KK+OBhOOBl+OBhCzjgYvjgYrjgooNCivjgYTjgZfjgYrjgYss44Gf44GL44GXDQor44GE44GX44GW44GLLOOChuOBjeOBiA0KK+OBhOOBl+OBmOOBvizjgb/jgYoNCivjgYTjgZfjgaAs44KG44GEDQor44GE44GX44GpLOOChuOBjeOBkw0KK+OBhOOBl+OBrizjgZ/jgYvjgYoNCivjgYTjgZfjgb7jgbbjgZcs44GC44GN44Gy44GoDQor44GE44Gb44KKLOOBiuOBqOOBsuOBkw0KK+OBhOOBneOBuSzjga/jgovjgYsNCivjgYTjgZ/jgass44Gf44GL44GC44GNDQor44GE44Ga44GuLOOBv+OBpOOBsuOCjQ0KK+OBhOOBp+OBrizjgojjgYbjgbjjgYQNCivjgYTjgajjgYYs44KI44GG44GTDQor44GE44Go44GGLOOBv+OBpOOBn+OBiw0KK+OBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44KG44GL44KKDQor44GE44Go44GGLOOBvuOBqg0KK+OBhOOBqOOBhizjgZ/jgZHjgZcNCivjgYTjgajjgoTjgb4s44GC44Gk44GXDQor44GE44GqLOOBguOBjeOCiQ0KK+OBhOOBquOBleOBjSzjgoTjgZnjga7jgooNCivjgYTjgarjgbAs44KI44GG44GZ44GRDQor44GE44Gq44GwLOOBn+OBoOOBlw0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgZcNCivjgYTjga7jgYbjgYgs44Gu44G244Gf44GLDQor44GE44Gu44GG44GILOOBvuOCiuOBkw0KK+OBhOOBuSzjgY3jgofjgYbjgZMNCivjgYTjgb7jgYQs44KG44GN44GIDQor44GE44G+44GK44GLLOOBl+OCheOBhuOBuOOBhA0KK+OBhOOBvuOCgOOCiSzjgb7jgZXjgZcNCivjgYTjgo/jgZ8s44Gf44GR44Gy44KNDQor44GE44KP44GfLOOCiOOBl+OBsuOCjQ0KK+OBhOOCj+OBnyzjgYrjgZXjgoANCivjgYTjgo/jgb8s44KG44GG44GTDQor44GE44KP44KC44GoLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhuOBiOOBoCzjgozjgYTjgZMNCivjgYbjgYjjga4s44GV44KJDQor44GG44GI44Gv44KJLOOBn+OBi+OBruOCig0KK+OBhuOBi+OBhCzjgbLjgZXjgarjgYwNCivjgYbjgaDjgYzjgo8s44KG44GG44GE44GhDQor44GG44Gh44KE44G+LOOBsuOCjeOBvuOBlQ0KK+OBhuOBpOOBvyzjgbLjgo3jgobjgY0NCivjgYbjgaTjgb8s44G+44KK44GTDQor44GG44GuLOOBvuOBk+OBqA0KK+OBiOOBjOOBl+OCiSzjgZfjgoXjgpPjgZnjgZENCivjgYjjgajjgYYs44Gy44KN44GNDQor44GI44Go44G/LOOBsuOBp+OBvw0KK+OBiOOCk+OBqSzjgoHjgZDjgb8NCivjgYjjgpPjgaks44Gy44KN44GNDQor44GK44GL44GpLOOBn+OBi+OBsuOBlQ0KK+OBiuOBiuOBj+OCiSzjgbLjgo3jgZMNCivjgYrjgYrjgZXjgYss44Gf44Gm44GNDQor44GK44GK44GV44GLLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBiuOBleOCjyzjgZXjgaENCivjgYrjgYrjgZnjgb8s44GV44Go44GTDQor44GK44GfLOOBoeOBiOOBkw0KK+OBiuOBiuOBn+OBqyzjgb7jgZPjgagNCivjgYrjgYrjgavjgZcs44G+44GV44Gy44KNDQor44GK44GK44Gr44GXLOOBv+OBpOOCiw0KK+OBiuOBiuOBq+OBlyzjgoDjgZXjgZcNCivjgYrjgYrjgavjgZcs44G+44GV44GKDQor44GK44GK44GuLOOBquOBu+OBkw0KK+OBiuOBiuOBrizjgb/jgYvjgZMNCivjgYrjga4s44KI44GG44GTDQor44GK44G+44GkLOOCiOOBhuOBmeOBkQ0KK+OBiuOCgOOCiSzjgajjgoLjgZMNCivjgYrjgYrjgoQs44KG44GN44GIDQor44GK44GLLOOBruOCiuOBsuOBqA0KK+OBiuOBi+OBhCzjgZHjgpPjgYTjgaENCivjgYrjgYvjgYbjgaEs44Go44KC44Gu44KKDQor44GK44GL44GgLOOChuOBhuOBjQ0KK+OBiuOBi+OBoCzjgb7jgorjgZMNCivjgYrjgYvjga4s44KE44GZ44G144G/DQor44GK44GL44KA44KJLOOBguOBi+OCig0KK+OBiuOBi+OCguOBqCzjgZ3jgYYNCivjgYrjgYzjgo8s44GE44Ga44G/DQor44GK44GM44KPLOOBk+OBmuOBiA0KK+OBiuOBjOOCjyzjgY3jgpPjgoQNCivjgYrjgYzjgo8s44G/44Gh44GTDQor44GK44GM44KPLOOBn+OBj+OChA0KK+OBiuOBjOOCjyzjgobjgb/jgZMNCivjgYrjgY7jga4s44GI44KK44GTDQor44GK44GPLOOBleOChOOBiw0KK+OBiuOBj+OBi+OCjyzjgbLjgo3jgYLjgY0NCivjgYrjgY/jgaAs44GC44GN44GKDQor44GK44GP44KA44KJLOOBleOBqOOBkw0KK+OBiuOBluOBjSzjgZ/jgYvjgobjgY0NCivjgYrjgZjjgb4s44Gf44GL44GXDQor44GK44Gc44GNLOOBkeOBhOOBhOOBoQ0KK+OBiuOBoCzjgbLjgo3jgobjgY0NCivjgYrjgaAs44GC44Gk44GTDQor44GK44Gh44GC44GELOOBquOBiuOBjQ0KK+OBiuOBqOOBjOOCjyzjgorjgofjgYbjgZMNCivjgYrjga4s44G/44Ga44GNDQor44GK44GK44Gv44KJLOOBkeOBhOOBkw0KK+OBi+OBhOOBmOOBvizjgZHjgpPjgZ8NCivjgYvjgYzjgo8s44Go44KC44G/44GkDQor44GL44GN44GKLOOBn+OBi+OChA0KK+OBi+OBkeOBsizjgajjgoLjgb8NCivjgYvjgZXjgYQs44Gq44GK44GTDQor44GL44GV44G/LOOCiOOBl+OBteOBvw0KK+OBi+OBmOOBnyzjgZHjgYTjgYTjgaENCivjgYvjgZjjgZ/jgass44G+44GV44Gq44KKDQor44GL44GX44G+LOOChOOBmeOBsuOCjQ0KK+OBi+OBl+OBvizjgobjgYbjgZMNCivjgYvjgZjjgoLjgags44GC44KE44GTDQor44GL44GZ44GMLOOBleOBquOBkw0KK+OBi+OBmyzjgozjgYTjgZMNCivjgYvjgZ/jgY7jgoos44GL44Ga44GX44GSDQor44GL44Gf44KE44G+LOOCiuOCh+OBhuOBkw0KK+OBi+OBn+OChOOBvizjgobjgYbjgZgNCivjgYvjgajjgYYs44Gy44Go44GXDQor44GL44Go44GGLOOBj+OBq+OBguOBjQ0KK+OBi+OBqOOBhizjgZHjgpPjgYTjgaHjgo0NCivjgYvjgarjgZbjgo8s44Gy44KN44GL44GaDQor44GL44Gt44G/44GkLOOBqOOCguOBruOCig0KK+OBi+OBruOBhizjgobjgY3jgYgNCivjgYvjgb7jgZ8s44Gy44KN44Gf44GLDQor44GL44G/44GW44GNLOOBvuOBleOBqOOBlw0KK+OBi+OBvyzjgojjgYbjgYTjgaENCivjgYvjgoHjgZ/jgYss44Gf44GE44GZ44GRDQor44GL44KCLOOBkeOCk+OChA0KK+OBi+OCj+OBhCzjgajjgoLjgYvjgZoNCivjgYvjgo/jgYQs44GY44KF44KKDQor44GL44KP44GL44G/LOOBn+OBi+OBlw0KK+OBi+OCj+OBi+OBvyzjgb/jgYoNCivjgYvjgo/jgZDjgaEs44GC44KG44G/DQor44GL44KP44GQ44GhLOOBi+OBmuOBsuOBpw0KK+OBi+OCj+OBkOOBoSzjgZXjgajjgZcNCivjgYvjgo/jgZXjgY0s44GY44KTDQor44GL44KP44GV44GNLOOBquOBiuOBjQ0KK+OBi+OCj+OBquOBvyzjgYLjgY3jgZMNCivjgYvjgo/jga0s44GL44Gq44GTDQor44GL44KP44Gw44GfLOOBguOChuOBvw0KK+OBi+OCj+OCgOOCiSzjgoLjgYYNCivjgYvjgo/jgoLjgags44KG44GGDQor44GL44KT44GgLOOBv+OBqeOCig0KK+OBi+OCk+OBoCzjgarjgYrjgZcNCivjgYvjgpPjga4s44G+44GV44GTDQor44GN44GX44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBjeOBn+OBjOOCjyzjgZ/jgZHjgZcNCivjgY3jgZ/jga/jgoks44Go44KC44Gv44KLDQor44GN44Gf44KA44KJLOOBl+OCh+OBhg0KK+OBjeOBn+OCgOOCiSzjgZfjgpPjgZQNCivjgY3jgazjgoQs44Go44GX44G/DQor44GN44Gu44GX44GfLOOBpuOBpA0KK+OBjeOBr+OCiSzjgZ/jgaTjgoQNCivjgY3jgoDjgoks44KI44GX44GL44GaDQor44GN44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBjeOCgOOCiSzjgYLjgY3jgojjgZcNCivjgY3jgoDjgoks44GY44KF44KTDQor44GN44KI44GX44G+LOOBr+OCi+OBvw0KK+OBjeOCiOOBmuOBiyzjgobjgY0NCivjgY3jgoks44Gf44GL44GXDQor44GN44KK44GV44GTLOOBpuOBo+OBuuOBhA0KK+OBjeOCkyzjgZXjgobjgooNCivjgY3jgpMs44Gq44GK44GTDQor44GP44Gr44GI44GgLOOBi+OBmuOBguOBjQ0KK+OBj+OBvCzjgZTjgYYNCivjgY/jgb7jga4s44Gf44GR44GoDQor44GP44KJ44GfLOOBguOBjeOBsuOCjQ0KK+OBj+OCieOBr+OBlyzjgZ/jgYvjgYLjgY0NCivjgY/jgows44Go44GK44KLDQor44GP44KN44GELOOCiOOBl+OBn+OBiw0KK+OBj+OCjeOBjSzjgobjgYbjgZMNCivjgY/jgo/jga4s44Gy44KN44Gf44GLDQor44GU44GGLOOBleOBiA0KK+OBlOOBhuOBoCzjgZ/jgZHjgbLjgo0NCivjgZPjgYws44GR44GEDQor44GT44GP44GX44KH44GGLOOBpOOCiOOBlw0KK+OBk+OBleOBiyzjgZfjgoXjgYbjgYTjgaHjgo3jgYYNCivjgZPjgZjjgb4s44KK44KH44GG44GZ44GRDQor44GT44Ge44GuLOOBguOBhOOCjw0KK+OBk+OBoOOBvizjgYTjgY/jgYoNCivjgZPjgabjgoks44GN44G/44Gy44KNDQor44GT44Gn44KJLOOBl+OCk+OBn+OCjeOBhg0KK+OBlOOBqOOBhizjgZ/jgaDjga7jgooNCivjgZTjgajjgYYs44Gy44KN44GTDQor44GT44Gr44GXLOOBv+OBleOBjQ0KK+OBk+OBq+OBlyzjgojjgYbjgZMNCivjgZPjgavjgZcs44Go44KC44KEDQor44GT44Gw44KE44GXLOOBquOBpOOBkw0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgZPjgbDjgoTjgZcs44Gh44GIDQor44GT44Gw44KE44GXLOOBpOOCiOOBlw0KK+OBk+OBtuOBmyzjgbLjgafjgobjgY0NCivjgZPjgb7jgY0s44Gy44KN44Gq44GKDQor44GT44G+44GW44KPLOOBn+OBi+OBvuOBlQ0KK+OBk+OBvuOBpOOBsOOCiSzjgajjgoLjgbLjgZUNCivjgZPjgoTjgb4s44GE44Gh44KN44GGDQor44GT44KT44GpLOOBsuOCjeOBkw0KK+OBleOBhOOBjSzjgYvjgYrjgosNCivjgZXjgYQs44GL44Ga44KEDQor44GV44GE44Go44GGLOOBjeOCh+OBhuOBkw0KK+OBleOBhOOBqOOBhizjgZPjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44Gm44KL44Gy44GVDQor44GV44GE44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgb8NCivjgZXjgYTjgajjgYYs44G144G/44GTDQor44GV44GE44Go44GGLOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgb7jgY3jgZMNCivjgZXjgYvjgYQs44Gf44GL44KG44GNDQor44GV44GL44G/LOOBn+OBi+OBlw0KK+OBleOBi+OCguOBqCzjgZPjgYbjgZgNCivjgZXjgYvjgoLjgags44Gy44Gn44GNDQor44GV44GL44KC44GoLOOBvuOBleOCiOOBlw0KK+OBleOBi+OCguOBqCzjgarjgarjgZMNCivjgZXjgYvjgoLjgags44KI44GG44GE44Gh44KN44GGDQor44GV44GP44KJ44GELOOBleOBoOOCiOOBlw0KK+OBleOBj+OCieOBjizjgarjgbvjgZMNCivjgZXjgZXjgY0s44G+44GV44GNDQor44GV44GV44GNLOOChuOBv+OBiA0KK+OBleOBqOOBhizjgbXjgY/jgZ/jgo3jgYYNCivjgZXjgajjgYYs44GX44KF44GG44GV44GPDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgYLjgY0NCivjgZXjgajjgYYs44GR44KT44GE44Gh44KNDQor44GV44Go44GGLOOBi+OBmuOBv+OBoQ0KK+OBleOBqOOBhizjgobjgb8NCivjgZXjgajjgYYs44KK44KH44GG44GZ44GRDQor44GV44GuLOOBqOOBiuOCiw0KK+OBleOBrizjgorjgofjgYbjgZnjgZENCivjgZXjgo/jgZXjgY0s44Gf44GL44GXDQor44GV44KP44GgLOOBsuOCjeOBkw0KK+OBleOCk+OBuuOBhCzjgZXjgajjgosNCivjgZfjgYrjgZrjgYss44GC44Gk44GXDQor44GX44GuLOOBi+OBmuOBruOCig0KK+OBl+OBsOOBnyzjgYvjgZrjgZ/jgYsNCivjgZfjgb4s44GY44KF44KTDQor44GX44G+44GuLOOBqOOBl+OBguOBjQ0KK+OBl+OBv+OBmizjgojjgZfjgZMNCivjgZfjgb/jgZos44G+44G/DQor44GX44KC44GL44KPLOOCiOOBl+OBiuOBvw0KK+OBl+OCguOCgOOCiSzjgYjjgYTjgbYNCivjgZfjgoXjgY/jgoos44G+44Gq44G/DQor44GX44KH44GG44GY44G+LOOBn+OBpOOBig0KK+OBl+OCh+OBhuOBoCzjgY/jgb8NCivjgZfjgonjgYTjgZcs44Gu44KK44GL44GaDQor44GX44KJ44GL44GfLOOBmOOCheOCkw0KK+OBl+OCieOBleOBjSzjgoLjgoLjgZMNCivjgZfjgo3jgZ8s44G+44GV44Gy44KNDQor44GY44KT44GQ44GG44GYLOOBl+OBkuOBi+OBmg0KK+OBl+OCk+OBn+OBqyzjgZHjgpPjgZ8NCivjgZfjgpPjgbws44Gu44G244KG44GNDQor44GY44KT44G8LOOCguOBqOOBr+OCiw0KK+OBl+OCk+OCgOOCiSzjgbLjgafjgajjgZcNCivjgZnjgYzjgYQs44Gk44Go44KADQor44GZ44GO44KC44GoLOOBv+OBuw0KK+OBmeOBjuOCguOCiizjgbLjgo3jgZMNCivjgZnjgY7jgoTjgb4s44Gf44GL44GtDQor44GZ44GO44KE44G+LOOBmOOCheOCkw0KK+OBmeOBjuOChOOBvizjgZ/jgY/jgb4NCivjgZnjgZrjgY0s44GN44GP44GTDQor44Gb44GM44KPLOOBmOOCheOCkw0KK+OBm+OBjSzjgZHjgpPjgZgNCivjgZvjgY3jga0s44Gy44KN44GXDQor44Gb44GN44KC44GoLOOBi+OBpOOBguOBjQ0KK+OBm+OBqCzjgYLjgaTjgZcNCivjgZvjgoks44GL44Ga44KI44GXDQor44Gd44Gn44KE44G+LOOBneOCieOBkw0KK+OBneOBruOBhCzjgabjgovjgYgNCivjgZ/jgYTjgoks44G+44GV44GXDQor44Gf44GL44GNLOOBv+OBoeOCiw0KK+OBn+OBi+OBr+OBlyzjgozjgYQNCivjgZ/jgYvjga/jgZcs44G/44Gt44GTDQor44Gf44GL44Gv44GXLOOBqOOCguOBig0KK+OBn+OBi+OBr+OBvizjgZPjgYbjgY0NCivjgZ/jgYvjgb/jgoQs44Gh44Gv44KLDQor44Gf44GL44KE44Gq44GOLOOBi+OBmuOBsuOBkw0KK+OBn+OBi+OChOOBvizjgZXjgajjgZcNCivjgZ/jgZDjgaEs44KP44Gf44KLDQor44Gf44GR44GG44GhLOOBguOBpOOBlw0KK+OBn+OBkeOBluOBjSzjgb7jgobjgZMNCivjgZ/jgZHjgZfjgZ8s44GV44Go44G/DQor44Gf44GR44KC44GoLOOBsuOCjeOBqOOCgg0KK+OBn+OBoCzjgYLjgaTjgZMNCivjgZ/jgaHjgYvjgo8s44G+44GT44GoDQor44Gf44Gh44Gw44GqLOOBquOBiuOBqA0KK+OBn+OBpOOBjOOCjyzjgajjgoLjgZMNCivjgZ/jgarjgYss44KE44GZ44Gu44KKDQor44Gf44Gq44GLLOOBguOBjeOCiA0KK+OBn+OBquOBiyzjgb7jgZXjgZ/jgYsNCivjgZ/jgarjgYss44GT44GG44GZ44GRDQor44Gf44Gq44GLLOOBleOBoeOBiA0KK+OBn+OBquOBiyzjgZfjgofjgYbjgbjjgYQNCivjgZ/jgarjgbks44Gu44KK44GTDQor44Gf44Gr44GQ44GhLOOBn+OBkeOBlw0KK+OBn+OBq+OCj+OBjSzjgbLjgo3jgbXjgb8NCivjgZ/jgbDjgZ8s44KI44GX44Gy44GVDQor44Gf44Gv44KJLOOBkeOCk+OBmA0KK+OBn+OBvuOBjSzjgarjgYrjgZMNCivjgZ/jgb7jgoDjgoks44G+44GT44GoDQor44Gf44KL44G/LOOBsuOCjeOBvw0KK+OBn+OCk+OBsOOCiSzjgorjgofjgYbjgZMNCivjgaHjgYvjgaQs44Gm44Gk44Gy44GTDQor44Gh44GwLOOBi+OBu+OCig0KK+OBoeOCh+OBhizjgorjgofjgYbjgZ8NCivjgaTjgYvjgaAs44Gm44Gk44KEDQor44Gk44GL44KC44GoLOOBleOBoeOBiw0KK+OBpOOBmOOCguOBqCzjgb/jgY0NCivjgaTjgaHjgaAs44GR44GE44GTDQor44Gk44Gh44KELOOBn+OBi+OBguOBjQ0KK+OBpOOBoeOChCzjgaHjgYvjgokNCivjgaTjgaTjgb8s44GV44Go44GXDQor44Gk44G844GP44KJLOOBn+OBj+OChA0KK+OBpOOCgOOCiSzjgajjgoLjgYgNCivjgabjgZfjgb4s44GC44GN44GTDQor44Gm44KJ44GV44GNLOOBvuOBleOBsuOBqA0KK+OBpuOCieOBleOBjSzjgY/jgb8NCivjgabjgonjgaAs44Gf44GR44Gv44KLDQor44Gp44GELOOBqOOCguOBkw0KK+OBqeOBhCzjga7jgbbjgZ/jgYsNCivjgajjgYYs44Gy44KN44GTDQor44Go44GN44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBqOOBjeOBqCzjgorjgofjgYbjgZnjgZENCivjgajjgY/jgaAs44GI44G/DQor44Go44GX44Ga44G/LOOBvuOBuw0KK+OBqOOBoCzjgZfjgoXjgpPjgZnjgZENCivjgajjgojjgaAs44Gy44KN44GC44GNDQor44Gq44GE44Go44GGLOOCiuOCh+OBhuOBnw0KK+OBquOBi+OBhCzjgb7jgZXjgajjgZcNCivjgarjgYvjgYos44GC44GN44Gy44GTDQor44Gq44GM44GKLOOBiOOCiuOBkw0KK+OBquOBi+OBjOOCjyzjgajjgoLjgb8NCivjgarjgYzjgZXjgYss44G/44Gh44GTDQor44Gq44GL44GV44GLLOOChOOBmeOBsuOCjQ0KK+OBquOBjOOBleOBjSzjgobjgYbjgYTjgaHjgo0NCivjgarjgYvjgZbjgo8s44KG44GG44G444GEDQor44Gq44GL44GW44KPLOOCiOOBhuOBkw0KK+OBquOBi+OBl+OBvizjgobjgYbjgoQNCivjgarjgYvjgZjjgb4s44GI44G/44GTDQor44Gq44GL44GX44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZfjgoXjgYbjgZ/jgo3jgYYNCivjgarjgYvjgZjjgb4s44KK44KH44GG44GZ44GRDQor44Gq44GL44GgLOOBi+OCiOOBkw0KK+OBquOBi+OBoCzjgYLjgoTjgZMNCivjgarjgYzjgaTjgYss44GE44GV44GKDQor44Gq44GL44GoLOOBl+OCheOBhuOBmA0KK+OBquOBi+OBq+OBlyzjgb/jganjgooNCivjgarjgYvjgavjgZcs44GZ44GZ44KADQor44Gq44GL44Gr44GXLOOBhOOBn+OCiw0KK+OBquOBjOOBvuOBpCzjgb7jgZXjgbLjgo0NCivjgarjgYvjgoDjgoks44GX44GS44Go44GXDQor44Gq44GL44KA44KJLOOBjeOCh+OBhuOBkw0KK+OBquOBi+OCgOOCiSzjgYLjgoTjgZMNCivjgarjgYvjgoDjgoks44G+44KGDQor44Gq44GL44KA44KJLOOBkeOBhOOBkw0KK+OBquOBi+OCgOOCiSzjgarjgYrjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44GL44GaDQor44Gq44GL44KA44KJLOOBleOChOOBkw0KK+OBquOBi+OCguOCiizjgabjgaTjgoQNCivjgarjgYvjgoQs44KG44GG44GYDQor44Gq44GL44KE44G+LOOBn+OBkeOBlw0KK+OBquOBmSzjgZPjgYbjgZgNCivjgarjgorjgajjgb8s44GX44KT44Gf44KN44GGDQor44Gq44KT44G2LOOBqOOCguOChA0KK+OBq+OBhOOBvyzjgoTjgZnjgZ/jgYsNCivjgavjgZfjgYvjgo8s44Gd44Gu44GTDQor44Gr44GX44GuLOOChuOBiw0KK+OBq+OBl+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgazjgYvjgaAs44KI44GX44GTDQor44Gs44G+44GfLOOChuOBhuOBhOOBoQ0KK+OBrOOBvuOBnyzjgZXjgajjgZcNCivjga7jgYzjgb8s44GV44Go44GXDQor44Gu44GOLOOBguOChOOBkw0KK+OBruOBj+OBiizjgYvjgYrjgooNCivjga7jgZDjgaEs44Gf44GL44KG44GNDQor44Gu44GW44GNLOOBquOBpOOBrQ0KK+OBruOBmCzjgobjgY0NCivjga7jgb4s44KM44GE44GTDQor44Gu44KA44KJLOOBvuOBleOBig0KK+OBruOCgOOCiSzjgobjgYbjgYTjgaENCivjgbDjgZPjgZcs44GX44KT44GUDQor44Gv44GX44KC44GoLOOBquOBiuOBkw0KK+OBr+OBmeOBrOOBvizjgaHjgYgNCivjga/jgZss44KI44GG44GE44GhDQor44Gv44Gb44GM44KPLOOBsuOCjeOBlw0KK+OBr+OBn+OBjOOCjyzjgZjjgoXjgpPjgZMNCivjga/jgZ/jgZHjgoTjgb4s44KG44GG44GTDQor44Gv44Gf44GuLOOCiOOBhuOBkw0KK+OBr+OBquOBhCzjgorjgYsNCivjga/jgb7jgZXjgY0s44G+44GT44GoDQor44Gv44G+44GgLOOBsuOCjeOBn+OBiw0KK+OBr+OBvuOBpyzjgZ/jgYvjgZcNCivjga/jgoTjgYvjgo8s44GC44GNDQor44Gv44KE44GXLOOBguOChA0KK+OBr+OChOOBlyzjgZXjgajjgZMNCivjga/jgoTjgZcs44GV44Go44GXDQor44Gv44KE44GXLOOBmOOCheOCkw0KK+OBr+OChOOBlyzjgojjgYbjgZMNCivjga/jgoTjgZcs44GZ44GZ44KADQor44Gv44KJLOOBqOOCguOBsuOBlQ0KK+OBr+OCieOBl+OBqizjga7jgbbjgY0NCivjga/jgonjgaAs44GC44Gk44GXDQor44Gv44KJ44GgLOOBv+OBqeOCig0KK+OBr+OCi+OBqizjgZfjgoXjgYbjgZnjgZENCivjgbLjgY3jgZ8s44Gy44Gn44GoDQor44Gy44Gg44GELOOBvuOChuOBvw0KK+OBsuOCieOBhCzjgY3jgofjgYbjgZMNCivjgbLjgonjgYQs44KG44GG44GZ44GRDQor44Gy44KJ44GELOOBiOOCiuOBkw0KK+OBsuOCieOBhOOCjyzjgY/jgb/jgZMNCivjgbLjgonjgYos44Gy44Gn44GL44GaDQor44Gy44KJ44GL44KPLOOBvuOBjQ0KK+OBsuOCieOBnyzjgojjgZfjgYLjgY0NCivjgbLjgonjgb7jgaQs44Gf44GL44GKDQor44Gy44KN44GILOOBguOBpOOBlw0KK+OBsuOCjeOBmyzjgbLjgafjga7jgooNCivjgbXjgYvjgZbjgo8s44Gy44Gn44KG44GNDQor44G144GL44G744KKLOOBruOCiuOBsuOCjQ0KK+OBteOBj+OBl+OBvizjgb7jgY3jgYoNCivjgbXjgY/jgaAs44Gy44KN44KG44GNDQor44G144GP44GgLOOBsuOCjeOBteOBvw0KK+OBteOBj+OBoCzjgZXjgoTjgYsNCivjgbXjgZjjgYQs44KK44GI44GTDQor44G144GY44GL44KPLOOBi+OBmuOBvw0KK+OBteOBmOOBnyzjgZHjgpPjgZgNCivjgbXjgZjjgZ8s44G+44GV44GKDQor44G144GY44GfLOOCiOOBl+OCjeOBhg0KK+OBteOBmOOCgOOCiSzjgajjgoLjgobjgY0NCivjgbXjgZjjgoDjgoks44GC44GN44GTDQor44G144GY44KC44GoLOOBl+OCh+OBhuOBuOOBhA0KK+OBteOBmOOCguOBqCzjgorjgoXjgYbjgbjjgYQNCivjgbXjgZjjgo/jgoks44GR44GE44GV44GPDQor44G144GY44KP44KJLOOBleOBqOOBlw0KK+OBteOBn+OBi+OBnyzjgZjjgo3jgYYNCivjgbXjgarjgYQs44GV44Gh44GTDQor44G144KL44GL44KPLOOBsuOCjeOBkw0KK+OBteOCi+OBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgbXjgovjgb7jgZ8s44Go44KC44KEDQor44G744GXLOOChuOBjQ0KK+OBu+OBl+OBhuOCiSzjgbLjgo3jgZcNCivjgbvjgZfjgo0s44GE44Gk44G/DQor44G744Gd44GgLOOBl+OCheOCk+OBlA0KK+OBu+OCiizjga7jgbbjgbLjgacNCivjgbvjgoos44KG44GNDQor44G744KK44GILOOBruOBtuOBqA0KK+OBu+OCiuOBkOOBoSzjga7jgZ7jgoANCivjgbvjgpPjgaos44GL44GK44KLDQor44G744KT44G8LOOBsuOCjeOChuOBjQ0KK+OBvuOBiOOBi+OCjyzjgb/jgo8NCivjgb7jgYjjgaAs44GT44GZ44GRDQor44G+44GI44GgLOOBn+OBi+OBlw0KK+OBvuOBiOOBoCzjgYjjgaTjgZMNCivjgb7jgY3jgYbjgaEs44GR44GE44GYDQor44G+44GN44GuLOOBl+OCh+OBhuOBkw0KK+OBvuOBjeOCguOBqCzjgajjgoLjga7jgooNCivjgb7jgZXjgajjgYbjgb8s44G+44GE44GTDQor44G+44GZ44GELOOCiOOBhuOBmeOBkQ0KK+OBvuOBmeOBoCzjgb7jgZXjgobjgY0NCivjgb7jgZnjgaAs44G/44G7DQor44G+44Gk44GELOOBv+OBig0KK+OBvuOBpOOBhuOCiSzjgYvjgZrjgbLjgZUNCivjgb7jgaTjgYrjgYss44GC44GN44Gy44KNDQor44G+44Gk44GK44GLLOOBqOOCguOBkw0KK+OBvuOBpOOBiuOBiyzjgb7jgobjgb8NCivjgb7jgaTjgYrjgYss44Gg44GE44GZ44GRDQor44G+44Gk44GL44GSLOOBsuOBleOBig0KK+OBvuOBpOOBl+OBnyzjgZXjgajjgZcNCivjgb7jgaTjgarjgYws44KP44Gf44KLDQor44G+44Gk44Gw44KJLOOBruOBnuOBvw0KK+OBvuOBpOOBsOOCiSzjgYLjgY3jgZMNCivjgb7jgaTjgoLjgags44Gy44KN44G/44GkDQor44G+44Gk44KC44GoLOOBu+OBj+OBqA0KK+OBvuOBpOOChOOBvizjgb7jgYTjgZMNCivjgb/jgYbjgoks44KK44KH44GGDQor44G/44GG44KJLOOBguOBpOOBlw0KK+OBv+OBhuOCiSzjgYLjgaTjgZcNCivjgb/jgYbjgoks44GN44KI44G+44GVDQor44G/44GNLOOChuOBhuOBmA0KK+OBv+OBmuOBi+OCjyzjgbLjgo3jgobjgY0NCivjgb/jgZrjgZ/jgass44KG44GN44GTDQor44G/44Ga44GuLOOChuOBhuOBm+OBhA0KK+OBv+OBneOBrizjgZ/jgaDjgb7jgZUNCivjgb/jgZ7jga/jgZ8s44Gh44GIDQor44G/44Gq44GM44KPLOOBvuOBoeOBkw0KK+OBv+OBquOBjOOCjyzjgYLjgoQNCivjgb/jgarjgb8s44Gy44KN44KG44GNDQor44G/44Gq44G/LOOBn+OBi+OBlw0KK+OBv+OBquOBv+OBi+OBnyzjgZ/jgYvjga7jgbYNCivjgb/jgarjgb/jgoDjgoks44Gy44Gn44GNDQor44G/44Gv44KJLOOBvuOBleOBjQ0KK+OBv+OCgOOCiSzjgb/jgY3jgZMNCivjgb/jgoTjgYQs44Gu44G244GC44GNDQor44G/44KE44GW44GNLOOBguOBpOOBlw0KK+OBv+OChOOBluOCjyzjgarjgYrjgoQNCivjgb/jgoTjgZbjgo8s44GC44GN44KJDQor44G/44KE44KA44KJLOOBi+OBiuOCig0KK+OBv+OChOOCgOOCiSzjgYLjgoQNCivjgb/jgoTjgoLjgags44KG44GG44G444GEDQor44G/44KE44KC44GoLOOBvuOBleOChA0KK+OBv+OCiOOBlyzjgaTjgYvjgZUNCivjgoDjga3jgoDjgoks44Gh44GL44G144G/DQor44KA44KJ44GL44GfLOOBqOOCguOChuOBjQ0KK+OCgOOCieOBmuOBvyzjgb/jgaTjga7jgooNCivjgoDjgonjgZ8s44GP44G/44GTDQor44KA44KJ44GfLOOBvuOBjQ0KK+OCgOOCieOCguOBqCzjgYvjgZrjga7jgbYNCivjgoDjgonjgoTjgb4s44Gq44GKDQor44KC44KKLOOBquOBiuOBkw0KK+OCguOCiizjgYvjgaTjgb7jgZUNCivjgoLjgoos44GC44Gk44Gy44GTDQor44KC44KKLOOBj+OBv+OBkw0KK+OCguOCiizjgb/jgY0NCivjgoLjgorjgYbjgaEs44Gu44KK44GTDQor44KC44KK44GX44GfLOOChuOBhuOBhOOBoeOCjQ0KK+OCguOCiuOBn+OBqyzjgYvjgZrjgagNCivjgoLjgorjgoLjgags44GS44KTDQor44KC44KK44KE44G+LOOBk+OBhuOBmA0KK+OCguOCjeOBiCzjgbLjgo3jgYvjgZoNCivjgoTjgZQs44G/44Gu44KLDQor44KE44GZ44GM44GNLOOBqOOCguOBteOBvw0KK+OChOOBmeOBoCzjgYLjgoTjgZMNCivjgoTjgZnjgoLjgags44GC44Gk44GXDQor44KE44Gk44Gq44G/LOOBguOBjeOBig0KK+OChOOBquOBjuOBleOCjyzjgZHjgYTjgZnjgZENCivjgoTjgarjgY7jga/jgoks44GX44KT44GZ44GRDQor44KE44G244Gq44GLLOOBn+OBhOOBlw0KK+OChOOBvuOBhuOBoSzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgYrjgYss44Gf44Gg44GXDQor44KE44G+44GK44GLLOOBquOBiuOChA0KK+OChOOBvuOBiuOBjSzjgbLjgo3jgobjgY0NCivjgoTjgb7jgYzjgZ8s44G+44GT44GoDQor44KE44G+44GQ44GhLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgZMNCivjgoTjgb7jgZfjgZ8s44G+44Gp44GLDQor44KE44G+44GX44GfLOOBoeOBiA0KK+OChOOBvuOBoCzjgaHjgYgNCivjgoTjgb7jgaAs44GY44KF44KT44GYDQor44KE44G+44GgLOOBruOBtuOBkw0KK+OChOOBvuOBoCzjgYLjgoQNCivjgoTjgb7jgaAs44G+44GN44GTDQor44KE44G+44Gq44GLLOOCgeOBkOOBvw0KK+OChOOBvuOCgOOCiSzjgYTjgaPjgZvjgYQNCivjgoTjgb7jgoDjgo0s44GL44Gq44GTDQor44KE44G+44KC44GoLOOBk+OBhuOBuOOBhA0KK+OChOOBvuOCguOBqCzjgabjgovjgbLjgZMNCivjgoTjgb7jgoLjgags44G+44GV44KG44GNDQor44KE44G+44KC44GoLOOBv+OBpOOCiOOBlw0KK+OChOOBvuOCguOBqCzjgb/jga7jgosNCivjgoTjgb7jgoLjgags44GX44Gu44G2DQor44KE44G+44KC44GoLOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgYLjgZnjgYsNCivjgoTjgb7jgoLjgags44KP44Gf44KLDQor44KG44GC44GVLOOBj+OBv+OBkw0KK+OChuOBjSzjgarjgYrjgZMNCivjgobjgorjgoTjgb4s44Gu44KK44Gy44KNDQor44KI44GT44GfLOOBguOBpOOBsuOBlQ0KK+OCiOOBk+OBr+OBvizjgajjgZfjgobjgY0NCivjgojjgZPjgoTjgb4s44GC44KG44G/DQor44KI44GT44KE44G+LOOBi+OBmuOBjQ0KK+OCiOOBl+OBiuOBiyzjgY3jgofjgYbjgZMNCivjgojjgZfjgYrjgYss44G+44GE44GTDQor44KI44GX44GK44GLLOOBvuOCiuOBkw0KK+OCiOOBl+OBoCzjgZ/jgYvjgajjgZcNCivjgojjgZfjgaAs44Gq44GK44GTDQor44KI44GX44GgLOOBquOBiuOBkw0KK+OCiOOBl+OBoCzjgb7jgorjgYgNCivjgojjgZfjgaAs44KG44GG44GYDQor44KI44GX44GgLOOChuOBhuOBmA0KK+OCiOOBl+OBrizjgobjgYsNCivjgojjgZfjgbLjgo0s44KG44G/DQor44KI44GX44G+44GkLOOBqOOBiuOCiw0KK+OCiOOBl+OCgOOCiSzjgaDjgYTjgZnjgZENCivjgojjgZfjgoDjgoks44GL44Ga44G144G/DQor44KP44GL44G+44GkLOOBsuOCjeOChA0KK+OCj+OBjeOBnyzjgYvjgZrjgYoNCivjgo/jgY3jgZ8s44GR44KT44GX44KN44GGDQor44KP44GX44GKLOOCiOOBl+OBguOBjQ0KK+OCj+OBl+OBluOCjyzjgaHjgYLjgY0NCivjgo/jgaAs44GE44GV44KADQor44KP44GgLOOBqOOBl+OBig0KK+OCj+OBoCzjgYTjgZXjgYoNCivjgo/jgaAs44Gf44GR44GXDQor44KP44GgLOOBi+OBpOOBiA0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgZfjgpMNCivjgo/jgZ/jgarjgbks44Go44GP44GYDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgY3jgojjgYrjgb8NCivjgo/jgZ/jgarjgbks44KI44GX44Gy44KNDQor44KP44Gf44Gq44G5LOOCiOOCiuOBv+OBpA0KK+OCj+OBn+OBquOBuSzjgZHjgYTjgZgNCivjgoTjgb7jgZDjgaEs44KC44Go44GYDQor44GZ44Ga44GNLOOBmOOCjeOBhg0KK+OBleOBleOBrizjgZnjgZnjgoANCivjgYvjga3jgZMs44Gf44GR44GXDQor44GP44G844GfLOOCjOOBhOOBkw0KK+OBk+OBmeOBkeOBjOOCjyzjgb7jgZXjgarjgYoNCivjgYvjgarjgYQs44GV44G244KN44GGDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBk+OBoOOBvizjgZ/jgYvjgbLjgZMNCivjgZPjgbDjgoTjgZcs44Go44GX44Gy44KNDQor44GT44GY44G+LOOBqOOBiuOCiw0KK+OBi+OCgeOChOOBvizjgYvjgZrjgbLjgZMNCivjgY/jgonjgbDjgoTjgZcs44Gu44G244GKDQor44GL44KT44GgLOOBi+OBmuOChuOBjQ0KK+OBk+OCk+OBrizjgZjjgoXjgpPjgZgNCivjgYvjgo/jgZfjgb4s44G+44GV44Gq44KKDQor44GL44KP44GL44G/LOOBk+OBhuOBmA0KK+OBi+OBquOBiyzjgYvjgY/jgZ/jgo3jgYYNCivjgYvjgo/jgoDjgoks44Gy44KN44GG44G/DQor44GN44KA44KJLOOBl+OCheOCk+OBhOOBoQ0KK+OBi+OBmeOBjCzjgbLjgo3jgZcNCivjgZPjgZjjgb4s44KC44Go44KI44GXDQor44GL44KP44GuLOOBk+OBhuOBhOOBoQ0KK+OBi+OCj+OBqizjgojjgZfjgb7jgZUNCivjgZPjgZrjgb4s44Gf44GR44GXDQor44GL44KP44GV44GNLOOBvuOBleOBguOBjQ0KK+OBi+OBn+OBrizjgb7jgZXjgYLjgY0NCivjgYvjgZ/jgaAs44GC44GN44GKDQor44GN44GP44GhLOOBvuOBleOBiuOBvw0KK+OBi+OBv+OBhuOCiSzjgYvjgZrjgbLjgacNCivjgYvjga3jgaAs44Gm44Gk44GKDQor44GT44KT44GuLOOChOOBmeOBig0KK+OBi+OCj+OCguOBqCzjgZfjgZLjgb8NCivjgYvjgbDjgoQs44Gy44KN44GXDQor44GT44G244GP44KNLOOBkeOCk+OBjeOBoQ0KK+OBj+OBvuOBjOOBhCzjgobjgYbjgZgNCivjgZPjgpPjga4s44Gy44Gn44GNDQor44GT44KE44G+LOOBl+OCh+OBhuOBhOOBoQ0KK+OBjeOBn+OBl+OCjSzjgbLjgajjgZcNCivjgZPjgaDjgb4s44Gf44GR44GXDQor44GL44Go44GGLOOBiOOBhOOBhOOBoQ0KK+OBjeOCgOOCiSzjgajjgZfjga/jgosNCivjgZPjgYTjgacs44GE44GV44GKDQor44GP44KE44G+LOOBn+OBkeOBlw0KK+OBjeOCiuOBr+OCiSzjgoLjgorjgbLjgo0NCivjgYvjgogs44G+44GV44Gf44GgDQor44GL44Gt44GTLOOBqOOBl+OBig0KK+OBk+OBr+OCiSzjgYTjgo/jgYoNCivjgYvjgajjgYYs44KG44GN44GKDQor44GT44GELOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBi+OChOOBvizjgYTjgZXjgYoNCivjgZPjgYTjgZEs44GP44Gr44Gy44GTDQor44GT44GY44G+LOOBguOBjeOBqA0KK+OBk+OBvuOBpCzjgb7jgZXjgZgNCivjgY3jgZ/jgoDjgoks44Gu44KK44KI44GXDQor44GN44Gf44KP44GNLOOBnOOCk+OBhOOBoeOCjQ0KK+OBi+OBleOBmOOBvizjgbLjgo3jgbXjgb8NCivjgY3jgoDjgoks44Gm44Gk44KN44GGDQor44GL44G/44GQ44GhLOOBleOBoeOBig0KK+OBi+OBqOOBhizjgbXjgZjjgYoNCivjgYvjgo/jgoDjgoks44Go44GX44Gy44GoDQor44GL44Gp44GfLOOBruOBtuOBn+OBiw0KK+OBiuOBiuOBn+OBkSzjgZfjgZLjgosNCivjgYvjgajjgYYs44Go44KC44G/DQor44GN44GuLOOBruOBtuOBsuOBlQ0KK+OBi+OBvyzjgb7jgZXjgb8NCivjgY3jgY/jgaEs44G+44GV44KG44GNDQor44GL44GN44GG44GhLOOBsuOCjeOBsuOBlQ0KK+OBk+OBmOOBvizjgb7jgZXjgb8NCivjgYvjgZ/jgYrjgYss44GX44KF44KT44GZ44GRDQor44GP44G844GfLOOBsuOCjeOChuOBjQ0KK+OBjeOBn+OBluOCjyzjgb7jgZXjgYLjgY0NCivjgZPjgb/jga0s44KC44Go44KG44GNDQor44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBjeOBn+OBmuOCgSzjgYvjgZrjgajjgZcNCivjgZPjgbDjgoTjgZcs44GL44Gk44GKDQor44GL44KP44GQ44GhLOOCiOOBl+OBsuOBkw0KK+OBkeOBjOOBleOCjyzjgbLjgZXjgZcNCivjgZPjgYbjgaEs44G/44Gh44GKDQor44GT44KE44G+LOOBqOOBiuOCiw0KK+OBi+OCj+OBjeOBnyzjgZ/jgYvjgbLjgacNCivjgYvjgo/jgb/jgaQs44GX44KH44GG44Ge44GGDQor44GL44Gf44Gy44KJLOOBguOBpOOBig0KK+OBi+OCj+OBjuOBlyzjgbLjgo3jgZcNCivjgZPjgpPjgaks44KI44GX44G/44GkDQor44GN44KA44KJLOOBguOBjeOBsuOBkw0KK+OBj+OBvOOChOOBvizjgZfjgpPjgZ/jgo3jgYYNCivjgY/jgb7jgoLjgags44G+44GV44GNDQor44GL44KP44GfLOOBteOBv+OCiA0KK+OBj+OBq+OBruOBtizjgoTjgZnjgYoNCivjgYvjgb7jgaAs44Gf44GL44GXDQor44GL44GPLOOBiuOBleOCgA0KK+OBi+OBreOBkyzjgYrjgZXjgoANCivjgZPjgbDjgoTjgZcs44GC44GN44KJDQor44GL44GX44GKLOOBkeOCk+OBmA0KK+OBi+OBquOBhOOCjyzjgZHjgYTjgZgNCivjgZHjgpPjgoLjgaEs44Gf44Gg44GXDQor44GN44GP44GhLOOBiuOBleOCgA0KK+OBi+OBluOBvizjgoTjgZnjgYLjgY0NCivjgZPjgb7jgaTjgoLjgags44GI44GE44GTDQor44GT44KT44GpLOOBi+OBpOOBsuOBkw0KK+OBjeOBj+OBl+OBvizjgYvjgaTjgb7jgZUNCivjgZPjgbDjgoTjgZcs44Gb44GE44GTDQor44GP44G+44GM44GELOOBvuOBleOBqOOBlw0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgZMNCivjgb7jgovjgbDjgoTjgZcs44Gf44GL44GXDQor44KA44Go44GGLOOBi+OBpOOBvw0KK+OBv+OBn+OBqyzjgZ/jgZHjgZcNCivjgb/jgo8s44G+44GV44GXDQor44GX44G/44GaLOOBpOOBqOOCgA0KK+OBv+OBmuOBrizjgajjgZfjgYoNCivjgb7jgaHjgaAs44GL44Ga44GKDQor44G+44Gk44GELOOBi+OBmuOBn+OBvw0KK+OBv+OBhuOCiSzjgorjgoXjgYbjgYTjgaENCivjgbLjga4s44KK44KH44GG44GE44GhDQor44KA44KJ44GL44G/LOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBrizjgbLjgo3jgobjgY0NCivjgb7jgovjgYQs44G+44GV44Gu44KKDQor44KA44KJ44GV44GNLOOBqOOBl+OBig0KK+OBvuOBleOBiyzjgbLjgafjga7jgooNCivjgb/jga3jgZ8s44Gf44GR44G/DQor44G+44Gk44Gq44GMLOOChuOBn+OBiw0KK+OBv+OBquOBjOOCjyzjgZvjgYTjgZgNCivjgb/jgoTjgZEs44Gq44GK44GC44GNDQor44G+44Gk44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBv+OBleOCjyzjgajjgZfjgobjgY0NCivjgb7jgYjjgaAs44GT44GG44Ge44GGDQor44GG44Gg44GM44KPLOOBqOOBl+OBi+OBpA0KK+OBv+OChOOBr+OCiSzjgZPjgYbjgZgNCivjgoDjgonjgYQs44GX44KH44GG44GYDQor44G+44Gk44KC44KKLOOBl+OBkuOBjQ0KK+OBvuOBleOBjSzjgY3jgY/jgYoNCivjgb/jgYbjgoks44GI44GE44GYDQor44KC44Go44G/44KELOOBjeOCiOOBlw0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgbXjgb8NCivjgb7jgajjgbAs44G+44GV44GC44GNDQor44G/44GG44KJLOOBqOOBl+OBig0KK+OBvuOBpOOBi+OCjyzjgYvjgZrjgbLjgo0NCivjgb/jgZrjgZ/jgass44Gq44GK44Gy44GTDQor44G/44KE44GuLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOBoCzjgbXjgZXjgaHjgYsNCivjgb/jgZks44GC44GN44KJDQor44G+44Gk44KE44G+LOOBqOOBl+OBiA0KK+OBv+OChOOCguOBqCzjgZ/jgaDjgYLjgaQNCivjgb/jgZrjga4s44G144G/44GKDQor44G+44KL44KE44G+LOOBm+OBhOOBmA0KK+OBvuOCi+OBkyzjgb/jgaHjgZ/jgYsNCivjgoLjgaHjgaAs44Go44GK44KLDQor44KC44Go44Gv44GXLOOBvuOCguOCiw0KK+OBv+OBmuOChCzjgZPjgYbjgZgNCivjgb/jgoTjgZbjgY0s44G/44Gh44G+44GVDQor44G/44KE44GM44KPLOOBv+OBpOOCiw0KK+OCgOOCieOBl+OBvizjgZ/jgaDjgYoNCivjgb7jgZnjgZXjgZMs44Gb44GE44GE44GhDQor44KC44KKLOOBhOOBoeOCjeOBhg0KK+OCguOCiuOBnyzjgYvjgZrjgYoNCivjgb/jgarjgb8s44KI44GX44GC44GNDQor44G/44KE44GNLOOBvuOBleOBig0KK+OCguOCiuOChOOBvizjgZHjgpPjgZgNCivjgb/jgZrjgZ8s44KI44GX44GKDQor44G+44Gk44GELOOBv+OBpOOBkA0KK+OBvuOBpOOBiizjgb7jgZXjgogNCivjgb7jgaTjgZfjgZ8s44KG44Gf44GLDQor44GT44Gw44KE44GXLOOBi+OBpOOBvw0KK+OCgOOBi+OBiCzjgb7jgZXjgZgNCivjgoLjgorjgYQs44GO44KH44GYDQor44KC44KK44GfLOOBn+OBhOOBnuOBhg0KK+OCgOOBi+OBhCzjgb7jgZXjgYoNCivjgb7jgaTjgYos44Go44GN44KPDQor44KA44KJ44KE44G+LOOCiOOBl+OBsuOBkw0KK+OBvuOBpOOCguOBqCzjgajjgZfjgYoNCivjgb/jgoTjgZXjgags44G/44Gu44KLDQor44G/44KE44GW44KPLOOCiOOBl+OBig0KK+OCguOCiuOCgOOCiSzjgZ/jgYvjgZcNCivjgoDjgonjga4s44Gy44Gn44GKDQor44G+44GZ44GgLOOBv+OBruOCiw0KK+OCgOOCieOBnyzjga7jgbbjgYoNCivjgb/jgoTjgZXjgYss44GR44KT44GYDQor44KC44Go44Gw44KE44GXLOOBvuOBleOBv+OBpA0KK+OBv+OBmuOBrizjgobjgorjgZMNCivjgoLjgoLjgYQs44KI44GX44GKDQor44G+44Gk44GgLOOBqOOBj+OBig0KK+OBmeOBjOOCj+OCiSzjgarjgYrjgYgNCivjgb7jgaTjgbDjgoks44G+44GT44GoDQor44G+44Gk44KC44GoLOOBv+OBruOCiw0KK+OBv+OChOOBr+OCiSzjgYLjgaTjgojjgZcNCivjgoDjgonjgYTjgZcs44G+44KC44KLDQor44G+44Gk44KA44KJLOOBvuOCguOCiw0KK+OBv+OCiOOBlyzjgabjgaTjgojjgZcNCivjgoLjgorjgoLjgags44GL44Ga44GKDQor44G/44Ga44Gf44GrLOOBn+OBkeOBlw0KK+OBvuOBpOOBsCzjgYLjgaTjgZcNCivjgb7jgaTjgYQs44GL44KTDQor44KA44KJ44GL44G/LOOBi+OBmuOBig0KK+OCguOCiuOBnyzjgZfjgZLjga/jgosNCivjgoDjgonjgZ8s44GX44GS44GKDQor44G+44GV44GNLOOBsuOCjeOBlw0KK+OBv+OChOOBluOBjSzjgojjgZfjgY0NCivjgb7jgaTjgbDjgoks44GX44KT44GE44GhDQor44KA44KJ44G+44GkLOOBguOBpOOBlw0KK+OCguOCiizjga7jgbbjgobjgY0NCivjgoLjgorjgoDjgoks44G+44GV44GL44GaDQor44GZ44KPLOOCiOOBl+OBvw0KK+OBk+OCj+OBn+OCiizjgarjgYrjgY0NCivjgb7jgaTjgZbjgY0s44KI44GX44Gu44G2DQor44G+44Gj44GV44GNLOOBvuOBleOBsuOCjQ0KK+OBv+OBn+OBjyzjgZHjgYTjgZ7jgYYNCivjgb7jgaTjgYvjgo8s44GV44Go44GXDQor44KC44GOLOOBl+OBkw0KK+OBvuOBtuOBoSzjgY3jgojjgZcNCivjgb7jgaTjgoLjgags44Go44GX44KN44GGDQor44KC44KKLOOCiuOCh+OBhuOBhOOBoQ0KK+OBvuOBpOOBhuOCiSzjgYvjgZrjgarjgooNCivjgb7jgYjjgaAs44GC44GN44GKDQor44G+44GZ44GgLOOBsuOCjeOBlw0KK+OBvuOBiOOBq+OBlyzjgbLjgo3jgZcNCivjgb7jgovjgoTjgb4s44Gq44GK44KEDQor44G+44Gk44GgLOOBn+OBi+OBig0KK+OBvuOBjSzjgajjgZfjgbLjgZMNCivjgoLjgYbjgYgs44GX44KT44GE44Gh44KN44GGDQor44KA44KJ44GELOOBqOOCiOOBvw0KK+OBvuOBpOOBhCzjgY/jgavjgbLjgZMNCivjgoLjgorjgZ8s44G+44GV44KLDQor44G+44GI44GgLOOBn+OBi+OBtuOBvw0KK+OCgOOCieOBhuOBoSzjgYTjgZXjgoANCivjgb/jgaTjgoTjgZks44GC44GN44KJDQor44KC44KKLOOBkeOCk+OBmA0KK+OBvuOBpOOBoCzjgZXjgajjgZcNCivjgb7jgaTjgYos44G+44GV44G144G/DQor44G+44KL44KE44G+LOOBguOBjeOBig0KK+OBvuOBpOOBjOOBiCzjgZfjgZLjgbLjgo0NCivjgYvjgb/jgY/jgoks44GT44GG44GE44GhDQor44G/44Gp44KK44GL44KPLOOChuOBhuOBmOOCjeOBhg0KK+OBvuOBmeOBoCzjgZfjgZLjga7jgbYNCivjgb/jgabjgoks44KE44GZ44GKDQor44G+44Gk44Gq44GMLOOBguOBjeOCiQ0KK+OCguOCiuOBiuOBiyzjgojjgZfjgb8NCivjgb/jgZ3jgYos44GI44Gk44GKDQor44KA44KJ44KE44G+LOOBi+OBpOOCiOOBlw0KK+OCguOCiuOCguOBqCzjgZfjgZLjgosNCivjgoLjgoos44Gk44Go44KADQor44G+44GZ44GgLOOBsuOCjeOBn+OBiw0KK+OBv+OChOOCguOBqCzjgYvjgaTjgb7jgZUNCivjgoDjgonjgZ8s44KI44GX44Gm44KLDQor44G/44Gq44G/44GV44KPLOOBi+OBmuOBsuOCjQ0KK+OBvuOBl+OBvizjgZnjgb/jgbLjgo0NCivjgoLjgorjgZDjgaEs44KI44GX44GC44GNDQor44G+44Gk44GELOOBn+OBi+OBlw0KK+OBvuOBiOOBi+OCjyzjgbLjgajjgZcNCivjgoLjgaHjgZrjgY0s44GY44KF44KTDQor44G+44GZ44GgLOOBl+OCk+OBjeOBoQ0KK+OBvuOBpOOCguOBqCzjgZjjgoXjgpPjgZ7jgYYNCivjgoLjgorjgarjgYws44GL44Ga44Gu44KKDQor44G+44GZ44GgLOOBsuOCjeOBn+OBvw0KK+OBv+OBhuOCiSzjgY/jgavjgYoNCivjgb7jgaTjga4s44Gf44Gg44GKDQor44G+44Gk44GK44GLLOOCiOOBl+OBpuOCiw0KK+OBvuOBoeOBhCzjgZPjgYbjgYTjgaENCivjgb/jgZrjgZ/jgass44Go44GX44GKDQor44G+44Gk44KC44GoLOOCiOOBl+OBruOCig0KK+OBvuOBleOBjSzjgbLjgafjgagNCivjgb7jgaTjgoLjgags44Gf44GR44GXDQor44G/44Gk44KELOOBsuOBp+OChOOBmQ0KK+OBv+OBmuOBrizjgZjjgo3jgYYNCivjgb7jgYjjgaAs44G144G/44GKDQor44KA44KJ44G+44GkLOOBkeOCk+OBmA0KK+OCgOOBleOBl+OBrizjgYLjgY3jgokNCivjgb7jgYjjga/jgZ8s44G+44GV44Gy44GTDQor44G+44Gk44GW44KPLOOCiOOBl+OBig0KK+OBv+OBpOOBhCzjgojjgZfjgYvjgZoNCivjgoLjgoLjgaAs44G/44Gk44GL44GaDQor44G+44Gk44GKLOOBi+OBpOOBvw0KK+OBv+OCjyzjgZfjgoXjgYbjgZgNCivjgoDjgonjgYvjgb8s44Gm44Gk44KEDQor44G/44GL44G/LOOBr+OCi+OBjQ0KK+OBrOOBi+OBluOCjyzjgZfjgpPjgZgNCivjgarjgYvjgoDjgoks44GX44Ga44GIDQor44Gr44GX44KA44KJLOOBj+OBq+OBsuOBkw0KK+OBq+OBo+OBnyzjgZHjgpPjgZgNCivjgarjgYzjgaTjgoYs44Go44GN44KE44GZDQor44Gr44GE44GuLOOBsuOCjeOBlw0KK+OBn+OBtuOBoSzjgZHjgpPjgZgNCivjgavjgZfjga4s44GV44G244KN44GGDQor44Gs44GL44GfLOOBn+OCguOBpA0KK+OBq+OBl+OCgOOCiSzjgbLjgZXjgYoNCivjgarjgYzjga4s44Gf44GL44KG44GNDQor44Gq44GL44GM44KPLOOCiOOBl+OBguOBjQ0KK+OBq+OBl+OChOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44KNDQor44Gr44GX44GgLOOBv+OBpOOBig0KK+OBquOBi+OCgOOCiSzjgbXjgb/jgYoNCivjga7jgoDjgoks44KG44GN44GKDQor44Gq44GL44KC44GoLOOBruOCiuOBguOBjQ0KK+OBquOBi+OBjOOCjyzjgYvjgZrjgZ/jgb8NCivjgarjgovjgZXjgo8s44Gk44Gt44GKDQor44Gq44GE44Go44GGLOOBn+OBkeOBig0KK+OBruOBuSzjgojjgZfjgbLjgacNCivjgavjgZfjgaos44KE44GZ44Gu44KKDQor44Gu44KA44KJLOOBn+OBoOOBlw0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZjjgo3jgYYNCivjgavjgYvjgYTjganjgYYs44KI44GX44KE44GZDQor44Gq44GL44GgLOOBn+OBpOOBig0KK+OBq+OBl+OBqizjgY3jgb/jgbLjgagNCivjgarjgorjgZ8s44Go44GX44GKDQor44Gu44GQ44GhLOOCiOOBl+OBsuOCjQ0KK+OBruOChCzjgZPjgYbjgY0NCivjgarjgYzjgYQs44G+44GV44GoDQor44Gq44GL44KA44KJLOOBjeOCiOOBlw0KK+OBq+OBhOOBmuOBvizjgZ/jgYvjgb8NCivjgarjgYvjgYzjgb8s44GX44KF44GG44GE44GhDQor44Gq44GM44GfLOOBjeOBl+OBig0KK+OBq+OBl+OBluOCjyzjga/jgaTjgYgNCivjga7jgZss44GY44KF44GG44KN44GGDQor44Gq44GM44GELOOChuOBjeOBig0KK+OBq+OBl+OBluOCjyzjgb7jgZXjgYoNCivjgarjgYvjga/jgZ8s44GL44Ga44Go44GXDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OBquOBi+OBoCzjgb7jgaTjgYoNCivjga7jgarjgYss44G+44GV44GNDQor44Gq44GL44GM44KPLOOBvuOBleOBguOBjQ0KK+OBquOBi+OBl+OBvizjgZ/jgb/jgYoNCivjgarjgYvjgoLjgags44G+44GV44KLDQor44Gr44GX44GK44GLLOOBsuOCjeOBlw0KK+OBq+OBl+OBvuOBiCzjgZfjgpPjgZ/jgo3jgYYNCivjgarjgYvjgoDjgoks44G+44GV44GKDQor44Gq44GL44Gr44GXLOOBi+OBmuOBig0KK+OBruOBoCzjgoDjgaTjgoQNCivjgarjgYvjgoDjgoks44GC44GN44Gy44GTDQor44Gq44GL44GW44KPLOOCiuOCh+OBhuOBhOOBoQ0KK+OBq+OBl+OBoCzjgojjgZfjgo3jgYYNCivjgavjgZfjgaAs44Gf44Gg44KG44GNDQor44Gr44GELOOCiuOCh+OBhuOBmA0KK+OChOOBvuOCguOBqCzjgbLjgajjgZcNCivjgarjgYvjgYbjgaEs44KE44GZ44GKDQor44Gq44GL44GY44G+LOOBi+OBmuOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgb8NCivjga7jgoDjgoks44GP44Gr44Gy44GTDQor44Gr44GX44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBruOBquOBiyzjgZ/jgaDjgbLjgZMNCivjgavjgZfjgoDjgoks44Go44GX44Gy44GnDQor44Gr44GX44GKLOOBjeOCiOOBlw0KK+OBquOBjOOBiizjgY3jgojjgZcNCivjgavjgYTjgb8s44GR44KT44GYDQor44Gq44GL44KA44KJLOOBsuOBp+OChuOBjQ0KK+OBreOBmuOBiyzjgojjgZfjga7jgooNCivjgarjgYvjgoDjgoks44KG44GN44Go44GXDQor44Gq44GL44GW44GoLOOBpuOBpOOChA0KK+OBguOBleOBrizjgZjjgoXjgpMNCivjga7jgYzjgb8s44GP44Gr44Gy44KNDQor44Gq44GL44GY44G+LOOBi+OBmuOBsuOBkw0KK+OBquOBhOOBqOOBhizjgYvjgZrjgYLjgY0NCivjgarjgYvjgoDjgoks44KI44GX44Gu44KKDQor44Gq44GL44Gr44GXLOOBjeOCiOOBguOBjQ0KK+OBquOBi+OBoCzjgZ/jgb/jgYoNCivjgarjgYzjgZXjgo8s44Gf44GL44GXDQor44Gq44GM44GuLOOBi+OBmuOChuOBjQ0KK+OBq+OBo+OBnyzjgobjgZ/jgYsNCivjgarjgpPjgbAs44G/44Gk44Gy44KNDQor44Gu44Ga44GILOOBj+OBq+OBv+OBpA0KK+OBquOBjOOBvyzjgbLjgo3jgZcNCivjgarjgYzjgYQs44GY44KF44KT44GE44GhDQor44Gq44GL44Gv44KJLOOBv+OBmuOBuw0KK+OBquOBi+OBmOOBvizjgZ/jgZHjgojjgZcNCivjgarjgYvjgZjjgb4s44GL44Gk44GKDQor44Gr44GX44GgLOOBguOBjeOBsuOBkw0KK+OBquOBiuOBhCzjgZfjgaHjgo3jgYYNCivjgarjgbnjgZfjgb4s44KI44GX44G+44GVDQor44Gq44GL44GuLOOBl+OCh+OBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjga/jgovjgYoNCivjga7jgaAs44G/44Gk44KI44GXDQor44Gq44GL44GbLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBmOOBvizjgb/jgaTjgZfjgZINCivjgarjgYzjgZXjgo8s44Gf44Gg44GXDQor44Gr44G444GELOOBv+OBpOOCiA0KK+OBquOBjOOBhCzjgorjgofjgYbjgZnjgZENCivjgarjgYvjgZfjgb4s44Gf44GL44GKDQor44Gq44GL44GKLOOBm+OBhA0KK+OBquOBi+OBjOOCjyzjga7jgbbjgYoNCivjgarjgYTjgajjgYYs44GT44GG44GE44Gh44KN44GGDQor44Gu44GY44G+LOOChuOBhuOBmeOBkQ0KK+OBquOBjOOBrizjgobjgY3jgYoNCivjgavjgZfjgaAs44GL44Ga44GKDQor44Gq44GL44GgLOOBjeOCiOOBlw0KK+OBquOBi+OBr+OCiSzjgZ/jgYvjga7jgZnjgZENCivjgarjgYvjgZjjgb4s44KA44Gt44Gf44GLDQor44Gt44KC44GoLOOBjeOCiOOBlw0KK+OBquOBi+OCgOOCiSzjgZHjgpPjgZgNCivjgarjgYzjgajjgoIs44G+44GV44G/DQor44Gq44GL44KA44KJLOOBsuOBqOOBvw0KK+OBquOBi+OChOOBvizjgojjgZfjgYoNCivjgarjgYvjgoDjgoks44G744Ga44G/DQor44Gq44GL44KA44KJLOOBteOBv+OBruOCig0KK+OBruOBmOOBvizjgabjgaTjgo3jgYYNCivjgarjgYzjgbXjgaEs44KE44GZ44KNDQor44Gq44GL44GuLOOBlOOBhOOBoQ0KK+OBq+OBl+OChOOBvizjgZfjgpPjgYTjgaENCivjgarjgYvjgoDjgoks44G+44GV44KG44GNDQor44Gq44GM44GX44G+LOOBquOBiuOBmA0KK+OBq+OCjyzjgobjgZ/jgYsNCivjgarjgYvjga4s44KE44GZ44GC44GNDQor44GK44Gr44GW44KPLOOChuOBjeOBig0KK+OBiuOBl+OBi+OBnyzjgb7jgZXjgYoNCivjgYrjgYss44GL44Gk44Gy44KNDQor44GK44GP44KE44G+LOOBruOBvOOCiw0KK+OBiuOBjSzjgZnjgb/jgYoNCivjgYrjgYvjgb/jgoQs44GR44KT44GYDQor44GK44GQ44KJLOOBvuOBleOBjQ0KK+OBiuOBiuOBpyzjgb7jgZXjga7jgooNCivjgYrjga7jgaAs44G+44GV44Gy44GTDQor44GK44GK44Gr44GXLOOBvuOBleOBjQ0KK+OBiuOBj+OBoCzjgY3jgofjgYbjgYTjgaHjgo3jgYYNCivjgYrjgY/jgaAs44Go44GX44GKDQor44GK44GM44KPLOOBk+OBhuOBmA0KK+OBiuOBrizjgb7jgZXjgYoNCivjgYrjgYrjgZnjgb8s44GT44GG44GYDQor44GK44GK44Gk44GLLOOBn+OBi+OBlw0KK+OBiuOBiuOBqOOCgizjgb7jgZXjgYLjgY0NCivjgYrjgYvjgZbjgY0s44KG44GG44GYDQor44GK44GK44Gv44GXLOOBsuOCjeOBlw0KK+OBiuOBjuOBrizjgbXjgb/jgYoNCivjgYrjgZXjgaAs44GX44Ga44GC44GNDQor44GK44GK44GwLOOBsuOBleOBlw0KK+OBiuOBl+OBvizjgYLjgoTjgZMNCivjgYrjgYrjgYvjgo8s44GL44Ga44KEDQor44GK44GL44KC44GoLOOBsuOCjeOBlw0KK+OBiuOBjOOCjyzjgajjgYrjgosNCivjgYrjga4s44GN44KI44GoDQor44GK44GL44GuLOOBqOOBiuOCiw0KK+OBiuOBluOCjyzjgobjgY3jgb7jgZUNCivjgYrjga/jgY8s44Gy44KN44GXDQor44GK44GX44Gf44GrLOOBn+OBi+OBlw0KK+OBiuOBluOCjyzjgbLjgo3jgZcNCivjgYrjgYrjga/jgZcs44Gf44GL44Gu44G2DQor44GK44GK44Gv44GfLOOBk+OBhuOBqOOBjw0KK+OBiuOBruOBp+OCiSzjgb/jgoQNCivjgYrjga4s44G144G/44GKDQor44GK44GK44GK44GLLOOBteOBmOOBkw0KK+OBiuOBiuOBrizjgojjgZfjga7jgooNCivjgYrjgYrjga/jgZcs44KG44Gf44GLDQor44GK44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBiuOCguOCiizjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgZfjgb4s44GTDQor44GK44GL44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBsuOCjeOBmyzjgajjgoLjgobjgY0NCivjgYrjgYrjgb/jgZos44KE44GZ44GKDQor44GK44GK44GuLOOBv+OBpOOBig0KK+OBiuOBoeOBguOBhCzjgb7jgZXjgbLjgZUNCivjgYrjgYvjgbks44Gf44GEDQor44GK44GK44Gf44GrLOOBguOBjeOBsuOCjQ0KK+OBiuOBj+OBrizjgZfjgZLjgYoNCivjgYrjgYrjgZnjgYws44GR44KT44GE44GhDQor44GK44GK44Gu44GNLOOBi+OBiuOCiw0KK+OBiuOBiuOBhOOBlyzjgZgNCivjgYrjgYvjgaAs44KC44Go44Gk44GQDQor44GK44GK44G/44KELOOChuOBjeOBsuOCjQ0KK+OBleOBn+OBkSzjgaTjga3jgYoNCivjgYrjgaDjgY4s44Gv44Gh44KN44GGDQor44GK44GK44GfLOOBleOBqOOCiw0KK+OBiuOBteOBoSzjgZ/jgaDjgojjgZcNCivjgYrjgYrjgYvjgo8s44GL44GK44KLDQor44GK44GL44GpLOOBleOBqOOCiw0KK+OBiuOBiuOBleOCjyzjgbLjgafjgY0NCivjgYrjgY7jgZXjgo8s44KG44GN44Gy44KNDQor44GK44GL44G5LOOBguOBpOOBlw0KK+OBiuOBqOOCiOOBlyzjgbLjgafjgYoNCivjgYrjgYzjgo8s44Gf44Gk44KN44GGDQor44GK44KK44GM44GVLOOChOOBmeOBn+OBkQ0KK+OBiuOBiuOBsCzjgobjgY3jgZMNCivjgYrjgbDjgZ8s44Gf44GL44GXDQor44GK44GK44GuLOOBn+OBi+OCiOOBlw0KK+OBiuOBiuOBleOBiyzjgb7jgZXjgoQNCivjgYrjgYrjgb/jga0s44GR44KT44Ge44GGDQor44GK44GK44GfLOOCiOOBl+OBsuOBkw0KK+OBhOOBruOBhuOBiCzjgYLjgY3jgYoNCivjgYrjgYrjgZPjgZcs44GX44GS44GNDQor44GK44GW44KPLOOBsuOBp+OBig0KK+OBiuOBi+OBuSzjgZHjgYTjgYTjgaENCivjgYrjgYrjgbzjgoks44GI44GE44GY44KN44GGDQor44GK44GK44GfLOOBmOOCh+OBhuOBhOOBoeOCjeOBhg0KK+OBiuOBluOBjSzjgZjjgoXjgpPjgYTjgaENCivjgYrjgY/jgaAs44KE44GZ44Gy44KNDQor44GK44GW44KPLOOBpuOCi+OBguOBjQ0KK+OBiuOBi+OBoCzjgZnjgZnjgoANCivjgYrjgYrjgaTjgYss44GT44GG44GYDQor44GK44Gu44Gn44KJLOOBk+OBhuOBhOOBoQ0KK+OBiuOBl+OBiizjgZ/jgaDjgZfjgZINCivjgYrjgaDjgZfjgb4s44Gf44Gg44GXDQor44GK44GW44GNLOOBl+OBkuOCiw0KK+OBvuOBiOOBoCzjgb/jgaTjgYoNCivjgYrjgY0s44G+44GV44GKDQor44GK44Gu44GgLOOBqOOBjeOBiA0KK+OBiuOBquOBjizjgYLjgY3jgokNCivjgYrjgY/jgaAs44KI44GX44GN44KIDQor44GK44GK44Gy44KJLOOBm+OBpOOBmA0KK+OBiuOBruOBluOCjyzjgajjgZfjgbLjgZMNCivjgYrjgY7jga/jgoks44GP44Gr44GC44GNDQor44GK44GK44GP44G+LOOBi+OBmuOBig0KK+OBiuOBiuOBr+OCiSzjga7jgbbjgbLjgo0NCivjgYrjgY0s44GL44Gk44GZ44GRDQor44GK44GM44KPLOOBn+OBpOOChA0KK+OBiuOBiuOChCzjgbLjgafjgbsNCivjgYrjgYrjgZXjgo8s44GV44G244KN44GGDQor44GK44GK44Gv44KJLOOBsuOCjeOCiOOBlw0KK+OBiuOBoCzjgZ/jgYvjgZMNCivjgYrjgZbjgo8s44G/44Gk44GKDQor44GK44GM44GfLOOCiuOCh+OBhuOBmeOBkQ0KK+OBiuOBi+OBrizjgYLjgY3jgZMNCivjgYrjgYrjgYTjgZcs44GX44G+DQor44GK44Gq44GELOOBsuOCjeOChuOBjQ0KK+OBiuOBiuOBpOOBiyzjgZjjgoXjgpPjgZMNCivjgYrjgYrjgaTjgYss44Gm44Gk44GKDQor44GK44GE44GnLOOCiOOBl+OBguOBjQ0KK+OBiuOBjeOChOOBvizjgYvjgZrjgZMNCivjgYrjgZDjgZcs44GC44GR44G/DQor44GK44GgLOOChOOBmeOBlw0KK+OBiuOBi+OBsOOChOOBlyzjgZ/jgaDjgbLjgo0NCivjgYrjgYrjgZ/jgass44GY44KF44KT44GYDQor44GK44GK44Gk44GNLOOBguOChuOBvw0KK+OBiuOBi+OBoCzjgbLjgo3jgZcNCivjgYrjgYrjgZnjgb8s44Gh44Gv44KLDQor44GK44GK44GE44GM44KPLOOBn+OBi+OBr+OCiw0KK+OBiuOBi+OBoCzjgZnjgZnjgoANCivjgYrjgZbjgo8s44GL44Ga44Gy44GTDQor44GK44GK44Gf44GrLOOBpuOBpOOCjeOBhg0KK+OBiuOBluOBjSzjgbLjgo3jgobjgY0NCivjgYrjgYrjgZ8s44G+44GV44GTDQor44KE44Gq44GO44KELOOChuOBi+OCig0KK+OBquOBi+OBn+OBqyzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44Gy44Gn44GXDQor44G/44GP44GrLOOCiOOBl+OBsuOCjQ0KK+OBmeOBmuOBjSzjgZjjgoXjgpPjgYTjgaENCivjga/jgaDjga4s44KG44GN44G+44GVDQor44G/44KE44G+LOOBi+OBiuOCig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgagNCivjgZfjgonjgYrjgYzjgo8s44KJ44GE44GfDQor44Gq44GL44KA44KJLOOBguOBneOBiw0KK+OBvuOBpOOBluOBjSzjgY3jgYTjgaHjgo3jgYYNCivjgoTjgb7jgZfjgZ8s44Gf44GL44KI44GXDQor44GX44KC44KE44G+LOOBl+OBkuOCiw0KK+OBteOBn+OCgOOCiSzjga7jgbbjgobjgY0NCivjgY/jgo8s44Gf44GL44GXDQor44Gq44GL44KA44KJLOOBqOOBl+OBv+OBpA0KK+OCiOOBk+OChOOBvizjgbLjgo3jgYLjgY0NCivjgbLjgovjgb4s44KG44GN44GTDQor44Gf44Gh44GL44KPLOOBquOBiuOBvw0KK+OCj+OBi+OBsOOChOOBlyzjgabjgovjgb8NCivjgZ/jgYvjga/jgZ8s44Go44KCDQor44GC44G5LOOBiOOBv+OBkw0KK+OBm+OBjSzjgorjgoXjgYbjgZQNCivjgoTjgb7jgZbjgY0s44Gy44Go44GXDQor44KE44G+44GtLOOCiOOBl+OBsuOCjQ0KK+OBn+OBluOCjyzjgZjjgoXjgpPjgZgNCivjgYvjgZjjgYvjgo8s44GC44GV44GTDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBi+OCj+OBhuOBoSzjgb7jgorjgYgNCivjgYrjgYrjgoTjgb4s44Gu44G244GTDQor44GX44KT44G/44KH44GGLOOBmOOCheOCk+OBkw0KK+OBn+OBoeOCj+OBoCzjgarjgYrjgb8NCivjgYrjgYrjgY/jgbws44Gm44Gk44KEDQor44Go44GG44GU44GGLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBj+OCiSzjgZ/jgYvjga/jgosNCivjgYTjgajjgYYs44GR44KT44Gd44GGDQor44KE44G+44GW44GNLOOBm+OBhA0KK+OBi+OBluOBvizjga/jgovjgobjgY0NCivjgYvjgpPjgbDjgoTjgZcs44Gy44Gn44GKDQor44GV44GV44GuLOOCgeOBhOOBkw0KK+OBi+OCj+OBl+OBvizjgb/jgobjgY0NCivjgZfjgpPjgZDjgYYs44Gu44KK44GC44GNDQor44GT44GE44Ga44G/LOOBn+OBj+OChA0KK+OBi+OBreOBkyzjgojjgZfjgb8NCivjgZPjgbDjgoTjgZcs44GZ44GI44Gk44GQDQor44GL44KC44GX44GfLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OCgOOCiSzjgZXjgaHjgogNCivjga/jgZvjgYzjgo8s44Gf44GL44GXDQor44GP44KK44Gv44KJLOOBsuOCjeOBteOBvw0KK+OBi+OBquOBiuOBiyzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44KG44GN44Gf44GLDQor44Gy44GE44GXLOOBn+OBi+OChuOBjQ0KK+OBq+OBuOOBhCzjgYTjgY/jgZMNCivjgb7jgovjgZ8s44Gq44GK44GTDQor44Go44GK44KE44G+LOOBquOBvw0KK+OBm+OBjeOBluOCjyzjgaHjgYsNCivjgYLjgorjgb4s44KE44KI44GEDQor44GP44KK44Gv44KJLOOBqOOCguOBiA0KK+OBmeOBv+OBrizjgb/jga7jgosNCivjgojjgZfjgaAs44Gy44Gn44GNDQor44GN44Gu44GX44GfLOOBqOOCguOBkw0KK+OBiuOBoeOBguOBhCzjgb/jgobjgY0NCivjgYbjgb7jgoTjga/jgoks44KE44GZ44G/DQor44G744Gd44GL44KPLOOBsuOCjeOBkw0KK+OBteOBi+OBjOOCjyzjgZfjgpPjgZgNCivjgYvjgo/jgoDjgoks44GI44GE44Ge44GGDQor44G+44Gk44GELOOBkeOBhOOBkw0KK+OCiOOBl+OCguOBqCzjgZ/jgYvjgbLjgo0NCivjgYbjgarjgYvjgb8s44Go44KC44GTDQor44GL44Gt44G+44GkLOOBleOBjeOBkw0KK+OBi+OCj+OBi+OBvyzjgb7jgZPjgagNCivjgajjgojjgaAs44Gy44Gn44GKDQor44KE44GuLOOBguOBjeOBsuOBkw0KK+OBm+OBjSzjgZ/jgYvjgYLjgY0NCivjgarjgYvjgavjgZcs44Gy44Go44GXDQor44Gv44GX44KC44GoLOOBguOBjQ0KK+OBteOBi+OChCzjgY/jgavjgYLjgY0NCivjgb/jgoTjgoLjgags44Gy44Gn44GP44GrDQor44Gf44GR44GgLOOBqOOBl+OBteOBvw0KK+OBv+OChOOBluOCjyzjgb/jgY3jgYoNCivjgYTjgZHjgaAs44GL44Ga44Gy44GTDQor44GK44GX44G+LOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgYjjgorjgZMNCivjgZTjgajjgYYs44KG44GG44GE44Gh44KN44GGDQor44GG44GX44GU44KBLOOBsuOCjeOBlw0KK+OBj+OCj+OChOOBvizjgbLjgo3jgYLjgY0NCivjgaTjgYvjgaAs44Gh44Gv44KLDQor44KA44KJ44GfLOOBoeOBi+OBig0KK+OBleOBqOOBhizjgojjgZfjgZ/jgYsNCivjgY/jgo3jgaAs44GL44GK44KKDQor44GZ44GO44KC44GoLOOBj+OBq+OBig0KK+OChOOBmeOBoCzjgZPjgYbjgYTjgaENCivjgY3jgYbjgaEs44GV44Go44GXDQor44GR44Gp44GG44GE44KTLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBquOBiyzjgaHjgYsNCivjgarjgYvjgoDjgoks44Gy44KN44GC44GNDQor44GP44KK44Gv44KJLOOBqOOCiOOBsuOBkw0KK+OBn+OBjeOBluOCjyzjgYvjgZrjga7jgooNCivjgYbjgYjjgaAs44Gy44Gn44GC44GNDQor44GT44G5LOOBsuOBp+OBguOBjQ0KK+OBruOBkOOBoSzjgbXjgb/jgYoNCivjgZPjgpPjga4s44Go44KC44Gy44GTDQor44Go44G/44GfLOOBi+OBquOCgQ0KK+OBiuOBiuOBnyzjgobjgY3jgZMNCivjgb7jgY0s44Gy44GL44KLDQor44GC44G+44GuLOOBkeOCk+OBhOOBoeOCjQ0KK+OBk+OBv+OBrSzjgYLjgY3jgbLjgo0NCivjgZXjgajjgYYs44Go44KC44KEDQor44GE44G+44GnLOOChuOBhuOBmA0KK+OBvuOBpOOBquOBjCzjgZ/jgaTjgoQNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44G+44Gk44GKLOOBi+OBiA0KK+OBleOBhOOBqOOBhizjgY3jgofjgYbjgYTjgaENCivjgojjgZfjgZbjgo8s44KP44Gf44KLDQor44GG44KE44G+LOOBkeOBhOOBkw0KK+OBguOCk+OBqeOBhizjgb7jgZXjgbLjgZMNCivjgZnjgZrjgY0s44GV44Go44GXDQor44KI44GX44GgLOOBi+OBmuOBqOOBlw0KK+OBi+OCj+OBoCzjgYjjgb/jgZMNCivjgbXjgY/jgaAs44GR44GEDQor44KC44KK44GX44G+LOOBvuOBleOBlw0KK+OBpOOBoeOBoCzjgajjgYrjgosNCivjgZXjgYvjgYQs44G/44Gh44KE44GZDQor44Gk44GL44GgLOOBguOBpOOBlw0KK+OBr+OBo+OBqOOCiizjgbLjgo3jgZcNCivjgZ/jgoDjgoks44GT44GG44GYDQor44KP44Gf44Gq44G5LOOBquOBiuOBjQ0KK+OBk+OBmeOBjizjgZ/jgYvjgYLjgY0NCivjgbLjgonjgZ8s44GR44GE44GfDQor44GZ44GO44KE44G+LOOCiOOBl+OChuOBjQ0KK+OCguOCiuOBi+OCjyzjgoLjgajjga/jgosNCivjgYvjganjgZ8s44GC44GN44Gy44KNDQor44GV44GuLOOBsuOCjeOBlw0KK+OBiuOBluOBjSzjgabjgaTjgYoNCivjgojjgZPjgb7jgaQs44GL44Gk44Gy44GVDQor44Gf44Gq44GLLOOChuOBv+OBkw0KK+OBhOOBl+OBleOBiyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYTjgZfjgZbjgo8s44KG44Ga44GNDQor44GT44Gw44KE44GXLOOBmOOCheOCkw0KK+OCiOOBl+OBoCzjgajjgoLjgYLjgY0NCivjgY3jgoDjgoks44KK44GI44GTDQor44GK44GK44Gk44GLLOOBn+OBkeOCiw0KK+OBguOBoOOBoSzjgZ/jgYvjgZcNCivjgYLjgYvjgZXjgYss44GX44KH44GG44GYDQor44G/44KE44KC44GoLOOBv+OBqeOCig0KK+OBhOOBoeOCgOOCiSzjgYvjgYrjgooNCivjgYrjgZfjgZ8s44Gu44G244KG44GNDQor44G744KT44GgLOOBiuOBleOCgA0KK+OBi+OChOOBrOOBvizjgZPjgYbjgZgNCivjga7jgZbjgY0s44KG44GG44GYDQor44GL44Gp44KP44GNLOOBteOBmOOBiA0KK+OBiuOBmCzjgoTjgZnjgbLjgo0NCivjgZ/jgZDjgaEs44KE44GZ44Gk44GtDQor44Gf44GR44GE44GXLOOBguOBjeOBqA0KK+OBsuOCieOBhCzjgZfjgpPjgZgNCivjgYvjgarjgZbjgo8s44GY44KF44KT44GE44GhDQor44G144KL44GL44KPLOOBiOOCiuOBiw0KK+OCguOCiuOBquOBiyzjgb7jgZXjgogNCivjgYLjgonjgYQs44Go44GX44GC44GNDQor44Gf44Gq44GLLOOCiOOBl+OBruOCig0KK+OBl+OBv+OBmizjgojjgZfjgobjgY0NCivjgYTjgaHjga/jgoks44G+44GV44KLDQor44GN44Gf44Gu44Gv44KJLOOBsuOBp+OBsuOCjQ0KK+OBjeOBn+OBiizjgajjgoLjgbLjgagNCivjgoLjgorjgoLjgags44Gy44Gn44GNDQor44GN44Gf44KA44KJLOOCiuOBi+OBkw0KK+OBleOBleOBluOCjyzjgZ/jgZHjgZcNCivjgb7jgaTjgYrjgYss44Gq44GK44GTDQor44GT44GG44KJLOOBn+OBi+OBsuOCjQ0KK+OBv+OCjyzjgbLjgo3jgZMNCivjgojjgZfjgYrjgYss44Gy44KN44GTDQor44G744KKLOOChuOBv+OBkw0KK+OBleOBhOOBqOOBhizjgojjgZfjgbLjgagNCivjgarjgYzjgZss44Gy44Gn44Gv44KLDQor44KC44KK44GX44G+LOOBsuOCjeOBiw0KK+OBiuOCj+OCiizjgb7jgY3jgZMNCivjgZ/jgarjgYss44G/44GNDQor44Gm44KJ44KA44KJLOOBqOOBl+OBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgY3jgofjgYbjgZ7jgYYNCivjgZXjgYTjgajjgYYs44Gy44KN44Gu44KKDQor44GN44KA44KJLOOBn+OBkeOBlw0KK+OBr+OBl+OCguOBqCzjgojjgZfjgbLjgZUNCivjgarjgYvjgYzjgo8s44Gm44Gk44KEDQor44Gq44GL44KA44KJLOOBvuOBleOBiuOBjQ0KK+OBr+OBjuOCj+OCiSzjgY/jgavjgbLjgZMNCivjgavjgZfjgYvjgo8s44Go44KC44G/DQor44GN44Gf44GY44G+LOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBhuOCiSzjgoTjgZnjgYoNCivjgYLjgZXjgaAs44Gy44Gn44KIDQor44GN44Gf44Ga44KBLOOBguOCieOBnw0KK+OBreOCguOBqCzjgo/jgYvjgZMNCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44Gf44Gq44GLLOOBi+OBmuOBsuOCjQ0KK+OBguOBoOOBoSzjgYvjgZrjgbLjgZMNCivjga/jgoks44G+44GV44KG44GNDQor44GC44GL44G+44GkLOOBkeOCk+OBlA0KK+OBhOOBvuOCgOOCiSzjgYLjgaTjgZcNCivjgoDjgonjgoTjgb4s44KI44GG44GYDQor44Gf44GR44GG44GhLOOBn+OBi+OChuOBjQ0KK+OBmuOBlyzjgoTjgZnjgYoNCivjgZPjgbDjgoTjgZcs44GL44G7DQor44KE44G+44GW44GNLOOBguOBpOOBkw0KK+OBr+OBvuOBkOOBoSzjgZ3jgYbjgYTjgaENCivjgYvjgZLjgoTjgb4s44Gy44KN44KG44GNDQor44GL44Gq44KC44KKLOOBsuOBp+OBjQ0KK+OBi+OBqOOCiizjgaTjgojjgZcNCivjgYLjgonjgYQs44GX44KH44GG44G444GEDQor44G/44KE44GfLOOBvuOCiuOBkw0KK+OBmeOBmuOBjSzjgYjjgb/jgZMNCivjga/jgovjgZ8s44Gy44Gn44KEDQor44Gq44GL44GW44KPLOOBn+OBi+OBlw0KK+OBmeOBjCzjgb7jgZXjgobjgY0NCivjgb7jgYjjgafjgoks44Gm44KL44KG44GNDQor44GC44KJ44G+44GNLOOBguOBpOOBlw0KK+OBjeOBn+OBrizjgZ/jgaTjgoQNCivjgojjgZfjga4s44GX44GS44G/44GkDQor44G/44GP44KK44KELOOCiOOBhuOBkw0KK+OBiuOBj+OBruOBjizjgZHjgpPjgZgNCivjgZXjgY/jgonjgYQs44KI44GX44GL44GkDQor44GT44KT44GpLOOBquOBig0KK+OBmeOBmuOBjSzjga7jgorjgZMNCivjgY/jgorjga/jgoks44GP44G/44GTDQor44KA44GT44GG44GQ44GhLOOBvuOBjQ0KK+OBteOBmOOBhCzjgYLjgY3jgbLjgo0NCivjgYvjgZIs44KG44GG44GTDQor44G+44GI44GgLOOBruOBtuOChA0KK+OBquOBjOOBu+OCiizjgobjgY3jgZMNCivjgaTjgZgs44KC44KC44GTDQor44GN44KA44KJLOOBl+OCk+OBn+OCjeOBhg0KK+OBvuOBpOOBiizjgZPjgYbjgYTjgaENCivjgZ/jgabjga4s44Gu44KK44KI44GXDQor44GN44KA44KJLOOBvuOBk+OBqA0KK+OBmeOBluOBjSzjgZ/jgaTjgoQNCivjgYTjgo/jgZXjgY0s44G/44KE44GzDQor44GV44Go44GGLOOChuOCig0KK+OBq+OBo+OBnyzjgaDjgYTjgYvjgpMNCivjgZ/jgarjgYss44G+44KKDQor44GX44G+44GgLOOBguOBi+OBrQ0KK+OBn+OBq+OBkOOBoSzjga7jgorjgZMNCivjgbvjgpPjgaAs44GZ44Gq44GKDQor44Gq44GL44Gf44GrLOOBn+OBi+OBlw0KK+OBv+OChOOBmOOBvizjgZfjgoXjgpMNCivjgY/jgY3jgoTjgb4s44GT44GG44GYDQor44Gb44GN44GtLOOCiuOCh+OBhuOBn+OCjeOBhg0KK+OCiOOBl+OBr+OCiSzjgZXjgajjgosNCivjgbLjgonjgZ8s44G+44GV44GL44GaDQor44Gq44GM44GV44KPLOOBqOOBl+OBig0KK+OBquOBi+OBjOOBjSzjgZHjgYTjgZMNCivjgY/jgo3jgYvjgo8s44KE44GZ44KG44GNDQor44GL44GR44Gf44KKLOOBkeOCk+OBmOOCjeOBhg0KK+OBhOOBqOOBhizjgYvjgojjgZMNCivjgb7jgYjjgYvjgo8s44GY44KF44KT44GYDQor44G+44Gk44GgLOOBguOBjeOBig0KK+OBj+OCj+OBr+OCiSzjgb7jgZPjgagNCivjgYTjgYTjgZrjgYss44KP44GL44GTDQor44G+44GY44G+LOOBsuOBp+OChuOBjQ0KK+OCgOOCieOBnyzjgajjgoLjgZMNCivjgYLjgY3jgYTjgZEs44KG44GG44GE44GhDQor44Gq44G/44GNLOOBpuOBpOOChA0KK+OCiOOBl+OBrizjgb/jgY3jgZMNCivjgZnjgZrjgY0s44KG44GNDQor44Gf44KA44KJLOOBv+OBqeOCig0KK+OBi+OCgeOBoCzjgZfjgpPjgoQNCivjgavjgZcs44KE44GZ44GXDQor44GE44Gq44GK44GLLOOBkeOCk+OBmA0KK+OBhOOCj+OBleOBjSzjgobjgYbjgZgNCivjgYvjgpPjgaAs44Gq44G/DQor44Gf44GgLOOBiOOBhOOBjQ0KK+OBhuOBpCzjgajjgoLjgYLjgY0NCivjgZfjgb7jgaAs44G+44GV44GKDQor44KI44GX44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOBj+OBjOOCjyzjgojjgZfjgbXjgb8NCivjgZnjgZrjgY0s44GR44GE44GTDQor44Gf44KT44G9LOOBv+OBreOBkw0KK+OCj+OBoCzjgarjgYrjgZMNCivjgYbjgovjgZfjga/jgoks44GI44GE44GZ44GRDQor44GE44GE44GKLOOBn+OCjeOBhg0KK+OBq+OBhOOBr+OCiSzjgY3jgofjgYbjgZMNCivjgYrjgoDjgoks44Gf44GP44KEDQor44GE44Gu44GG44GILOOBnOOCk+OBmOOCjeOBhg0KK+OCguOCiuOBquOBjCzjgajjgZfjgbLjgo0NCivjgZXjga4s44Gy44KN44GXDQor44Gq44GL44Gf44GrLOOBvuOBleOChOOBmQ0KK+OBguOBuSzjgb7jgZXjgarjgYoNCivjgYbjgaHjgaAs44GR44KT44GYDQor44Gy44KN44GfLOOChuOBhuOBleOBjw0KK+OBhOOCj+OBj+OCiSzjgYvjgYTjgZjjgo3jgYYNCivjgYTjgZfjgYrjgYss44Gy44Gn44GC44GNDQor44Go44GN44GfLOOBquOBpOOBkw0KK+OBjeOBruOBl+OBnyzjgarjgYrjgZnjgZENCivjgb/jgZrjga4s44GC44GE44GTDQor44KE44GZ44GILOOBvuOBleOBvw0KK+OBhOOCj+OCguOBqCzjgZXjgajjgosNCivjgoTjgb7jgZgs44KG44GL44KKDQor44GT44GV44GELOOChuOBhuOBkw0KK+OBj+OBvCzjgajjgZfjgYgNCivjgaHjgbAs44Gy44GL44KLDQor44KE44Gk44Gf44GrLOOBguOBpOOBlw0KK+OBhOOBjOOCieOBlyzjgZ/jgYvjgZrjgb8NCivjgYLjgonjgYvjgo8s44GC44GL44GtDQor44Gm44KJ44GV44GNLOOCguOBqOOBguOBjQ0KK+OBm+OBlOOBiCzjgZXjgajjgZMNCivjgajjgY/jgZfjgb4s44G+44GV44GTDQor44Gw44KT44Gp44GGLOOBl+OCh+OBhuOBkw0KK+OBn+OBjeOBluOCjyzjgZHjgpPjgZgNCivjgb/jgZrjgZXjgY0s44GR44KT44Gf44KN44GGDQor44Gf44GN44GQ44GhLOOBkeOBhA0KK+OBsuOBiuOBjSzjgb7jgZXjgZcNCivjgarjgYvjgYQs44GC44Gk44G/DQor44GK44GE44GL44KPLOOCjOOBhOOBkw0KK+OBvuOBpOOCgOOCiSzjgaHjgZDjgZUNCivjgYjjgpPjgaks44KI44GX44GKDQor44Gf44GY44G+LOOBleOBqOOBkw0KK+OChOOBvuOBluOBjSzjgYjjgYTjgZgNCivjgZvjga7jgYos44GT44GG44GYDQor44Gv44KJ44GgLOOBqOOBl+OBvuOBlQ0KK+OBteOBj+OBhCzjgajjgoLjgYsNCivjgb7jgaTjgYbjgoks44GR44GEDQor44GL44KP44KA44KJLOOChuOBhuOBhOOBoQ0KK+OBpuOCieOCguOBqCzjgZ/jgYvjgb/jgaENCivjga/jgY7jgo/jgoks44Gf44GP44G/DQor44Gq44GL44GX44G+LOOBiOOBv+OBkw0KK+OBjeOBruOBl+OBnyzjgb/jgaHjgYoNCivjgYLjgonjgYQs44Gh44Ga44KLDQor44KA44KJ44KE44G+LOOBmOOCheOCk+OBkw0KK+OBleOBiOOBkOOBlSzjgajjgoLjgb8NCivjgZ/jgarjgYss44G/44Gk44GTDQor44G+44GI44GgLOOBiuOBleOCgA0KK+OBv+OChOOBluOBjSzjgYvjgZrjgb8NCivjgYTjgZHjgbks44GC44GN44KJDQor44GP44KP44Gw44KJLOOBn+OBi+OBruOCig0KK+OCiOOBoCzjgZ/jgYvjgYoNCivjgZ/jgaHjgbDjgaos44KE44GZ44GC44GNDQor44KE44G+44GQ44GhLOOCiOOBl+OBguOBjQ0KK+OBhOOBl+OBr+OCiSzjgZHjgYTjgZMNCivjgZ/jgY3jgZbjgo8s44G+44GV44GC44GNDQor44Gy44KJ44GuLOOCiOOBl+OBtuOBvw0KK+OBi+OCj+OBleOBjSzjgZ/jgYvjgojjgZcNCivjgoTjgb7jgoLjgags44Gy44GV44Go44GXDQor44GC44KJ44GbLOOBguOBpOOBlw0KK+OChOOBquOBjuOBleOCjyzjgb7jgZXjga7jgbYNCivjgZfjgYrjgoQs44GC44GN44GIDQor44GV44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OBqOOBhizjgbLjgajjgb8NCivjgYrjga4s44KI44GX44Gf44GLDQor44GN44Gf44Gv44G+LOOChOOBmeOBvuOBlQ0KK+OBlOOBqOOBhizjga7jgorjgZMNCivjgavjga7jgb/jgoQs44G+44KG44G/DQor44GG44GZ44GELOOBqOOCguOBruOCig0KK+OBv+OBmuOBl+OBvizjgZ/jgZHjgosNCivjgZnjganjgYYs44G+44GT44GoDQor44GE44GR44GgLOOBguOBjeOBkw0KK+OBquOBi+OBsuOBjOOBlyzjgYLjgorjgZfjgZINCivjgY/jgorjgoLjgags44KN44KP44KLDQor44Go44GgLOOBsuOCjeOBn+OBiw0KK+OBr+OBi+OBvuOBnyzjgYLjgaTjga7jgbYNCivjgZ/jgavjgZDjgaEs44Gv44KL44G/DQor44GE44G+44Gc44GNLOOBhOOBj+OBkw0KK+OBu+OCiuOBiizjgb7jgobjgb8NCivjgYvjgZnjgYws44Gk44KI44GXDQor44GL44KP44GbLOOBquOBiuOBkw0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgZ/jgYvjgarjgZcs44Gu44G244GC44GNDQor44G+44Gk44GX44GfLOOBn+OBi+OBlw0KK+OChOOBkOOBoSzjgbLjgafjgY0NCivjgYvjga3jgZMs44GL44Ga44KG44GNDQor44Gy44Gg44GLLOOBv+OBig0KK+OBleOBo+OBlSzjgZ/jgYTjgaENCivjgZ3jgYws44Gf44GP44KEDQor44GZ44GO44GG44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBleOBqOOBhizjgYLjgb/jgZMNCivjgZ/jgavjgbDjgoTjgZcs44GV44Gh44GTDQor44Gr44GX44GK44GLLOOBn+OBi+OBlw0KK+OBqOOCguOBquOBjCzjgarjgYrjgY0NCivjgYrjgYrjga/jgZcs44Gy44Gn44GNDQor44Gq44GM44GX44G+LOOBm+OBhOOBnw0KK+OBn+OBq+OBjOOBjSzjgZvjgYTjgZMNCivjgZPjgYbjgaAs44GT44G/44GqDQor44GN44KI44GuLOOBleOBqOOBlw0KK+OChOOBvuOBi+OCjyzjgajjgZfjgYoNCivjgarjgYvjgZjjgb4s44Gy44KN44GXDQor44KC44Gm44GOLOOBk+OBhuOBmA0KK+OBiuOBiuOBrOOBvizjgobjgZ/jgYsNCivjgZXjgajjgYYs44GX44GS44GKDQor44G144KL44GE44GILOOCiOOBl+OBkw0KK+OBguOBhOOCguOBqCzjgoLjgajjgbXjgb8NCivjgojjgZPjgYos44GP44Gr44GKDQor44Gr44GX44GL44KPLOOBkeOCk+OBmA0KK+OBs+OBqOOBhizjgojjgZfjgarjgYwNCivjgY3jgZ/jgoDjgoks44GX44KT44KEDQor44KE44G+44GL44KPLOOBleOBoOOBr+OCiw0KK+OBqOOBv+OBnyzjgZ/jgZHjgZcNCivjgaTjgaHjgaAs44Gy44Gn44GoDQor44GE44GX44GQ44KNLOOCiuOBiA0KK+OBvuOBpOOBiizjgajjgYrjgosNCivjgYbjgYjjgoLjgags44GT44GG44GE44Gh44KN44GGDQor44GE44GE44GgLOOBv+OBjeOBkw0KK+OBmeOBmuOBjSzjgZfjgZLjgbLjgo0NCivjgZ/jgoDjgoks44GL44Ga44KI44GXDQor44GK44GP44GgLOOBruOBvOOCiw0KK+OBu+OCiizjgojjgZfjgb8NCivjgY/jgZXjgaTjgZAs44KE44GZ44GXDQor44KE44G+44GgLOOBvuOBleOBquOBig0KK+OBguOBleOBr+OCiSzjgZ/jgYvjgbLjgo0NCivjgajjgY/jgaAs44G+44KT44Gq44KKDQor44GE44Gn44GfLOOCiOOBl+OBsuOCjQ0KK+OBhOOBqOOBhizjgabjgovjgb/jgaENCivjgZXjgajjgYYs44GN44GE44Gh44KN44GGDQor44Gk44GY44GV44KPLOOBkeOBhA0KK+OBiuOBrizjgZPjgYbjgZgNCivjgYTjgo/jgb4s44Gu44G244GC44GNDQor44Gg44GE44GU44GPLOOBmOOCheOCk+OBhOOBoQ0KK+OChOOBvuOCgOOCiSzjgojjgZfjgYvjgZoNCivjga/jgZvjgYzjgo8s44Go44GX44GL44GaDQor44GE44GOLOOBn+OBi+OBsuOCjQ0KK+OBvuOBi+OBuSzjgb7jgZXjgYvjgaQNCivjgYrjgYvjgoLjgags44GL44Gk44GKDQor44GK44GK44Gv44KJLOOChuOBjeOBquOBig0KK+OBm+OBjeOChOOBvizjgYvjgZrjgYoNCivjgY3jgZ/jgZjjgb4s44Gy44KN44GC44GNDQor44Go44KK44GG44G/LOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBluOBjSzjgZ/jgabjgYoNCivjgYbjgYQs44KI44GX44Gy44GoDQor44GP44KJ44KC44GhLOOBi+OBmuOBsuOCjQ0KK+OBl+OBiuOBrOOBvizjgbLjgafjgajjgZcNCivjgonjgYTjgZ8s44GE44GP44GKDQor44GX44KC44GT44GG44G5LOOBruOBtuOBi+OBmg0KK+OBleOCj+OBrizjgabjgovjgYoNCivjgZXjgYvjgavjgZcs44KG44GG44GYDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBm+OBhOOBrizjgZHjgYTjgZ7jgYYNCivjgZnjgZrjgY0s44GC44GN44KI44GXDQor44GV44GL44KC44GoLOOBqOOBl+OBig0KK+OBmeOBmuOBjSzjgZfjgo3jgYYNCivjgZXjgo/jga4s44GL44Gk44KEDQor44GX44GMLOOBpuOBpOOChA0KK+OBlOOBqOOBhizjgajjgY/jgb7jgZUNCivjgZnjgaAs44GY44KF44KT44GYDQor44GZ44Ga44GNLOOCiOOBl+OBkw0KK+OBleOBi+OBjeOBsOOCiSzjgajjgZfjgYoNCivjgZXjgajjgYYs44GR44KT44GYDQor44GV44GL44GQ44GhLOOCiOOBl+OBruOCig0KK+OBmeOBjuOBleOBjSzjgb/jgaTjgY/jgasNCivjgZnjgYjjgY0s44Gf44GL44GXDQor44GZ44Ga44GNLOOBruOBtuOBguOBjQ0KK+OBl+OBsOOBnyzjgZPjgajjgZgNCivjgZnjgY7jgoTjgb4s44Gf44Gg44GKDQor44GV44GL44GELOOBvuOBleOChuOBjQ0KK+OBl+OBv+OBmizjgZ/jgaDjgZcNCivjgZnjgY7jgoLjgags44Go44GX44GKDQor44GV44Go44GGLOOBn+OBj+OBmA0KK+OBm+OBjSzjgYrjgZXjgoANCivjgZXjgY/jgonjgYQs44Gv44KL44KG44GNDQor44Gb44GN44GQ44GhLOOBk+OBmeOBkQ0KK+OBleOBqOOBhizjgYjjgYTjgZgNCivjgZnjgZrjgY0s44KG44GG44Gu44GZ44GRDQor44GV44GE44Go44GGLOOBn+OBoOOBig0KK+OBm+OBjeOBrSzjgajjgojjgbXjgb8NCivjgZnjgZrjgY0s44Gk44Go44KADQor44GE44GE44GgLOOBjeOCiOOBn+OBiw0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZXjgZXjgY0s44G/44Gk44GKDQor44GZ44GI44Gq44GMLOOBqOOBl+OBig0KK+OBleOBi+OCguOBqCzjgbLjgafjgYLjgY0NCivjgZXjgYTjgajjgYYs44G+44GV44G/DQor44GZ44GM44GKLOOBpuOBpOOBmA0KK+OBl+OBvuOBmizjgb/jga7jgosNCivjgZXjgYTjgajjgYYs44G144G/44GKDQor44GX44Gu44GW44GNLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgojjgZfjgobjgY0NCivjgZnjgarjgYws44GR44KTDQor44GV44Go44GGLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgZHjgYTjgZ/jgo3jgYYNCivjgZvjgY3jga0s44GV44Gg44Gu44KKDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBleOCj+OBoCzjgYLjgY3jgokNCivjgZXjgYTjgajjgYYs44GL44Ga44GKDQor44GX44KC44Ge44GuLOOBn+OBoOOBsuOBkw0KK+OBmeOBiCzjgZ/jgYvjgZcNCivjgZXjganjgajjgoIs44GC44GN44KJDQor44Gb44GN44GtLOOBkeOCk+OBmeOBkQ0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgZXjgpPjgZQs44KI44GX44Gu44G2DQor44GZ44Gp44GGLOOBj+OBq+OBguOBjQ0KK+OBneOBruOBoCzjgarjgYrjgb8NCivjgZfjgb4s44G/44Gu44KLDQor44GV44Go44GGLOOCiOOBreOBnuOBhg0KK+OBleOBqOOBhizjgajjgb/jgYoNCivjgZfjgbbjgoQs44GL44Ga44GC44GNDQor44GV44Go44GGLOOBi+OBmuOBig0KK+OBleOBqOOBhizjgabjgovjgbLjgZMNCivjgZXjgYvjgZ8s44KI44Gt44GKDQor44GV44GE44Go44GGLOOBiuOBleOCgA0KK+OBmeOCj+OBjSzjgZ/jgYvjgZcNCivjgZ3jgoos44Gf44GR44GYDQor44GV44GL44KC44GoLOOBl+OCheOCk+OBhOOBoQ0KK+OBl+OCieOBhOOBlyzjgb7jgZXjgajjgZcNCivjgZnjgZrjgY0s44GC44GN44GKDQor44GX44G+44GgLOOBqOOBl+OBig0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZnjgZrjgY0s44KI44GX44GKDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBmeOBmuOBjSzjgY3jgojjgZcNCivjgZXjgajjgYYs44Gk44Go44KADQor44GX44GS44G+44GkLOOBjeOCiOOBlw0KK+OBleOBjOOCiSzjgZ/jgYvjgajjgZcNCivjgZXjgYTjgajjgYYs44KG44GN44GKDQor44GX44KT44GQ44GGLOOBn+OBi+OBig0KK+OBmeOBjOOBrOOBvizjgabjgovjga7jgbYNCivjgZ3jgYws44Gf44GR44GXDQor44GV44GV44GNLOOBruOBtuOChuOBjQ0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgZXjgo/jgaAs44Gm44Gk44GKDQor44Gd44G+LOOBiuOBleOCgA0KK+OBl+OBsOOBnyzjgZ/jgZHjgYoNCivjgZXjgajjgYYs44G/44Gh44GTDQor44GV44Go44GGLOOBjeOCiOOBlw0KK+OBl+OBvuOBoCzjgbLjgafjgYoNCivjgZXjgZXjgY0s44Gu44G244GKDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBhOOBqOOBhizjgZfjgZLjgosNCivjgZfjgoLjgacs44Gy44Gn44GNDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBleOBqOOBhizjgojjgYYNCivjgZXjgajjgYYs44Gy44GV44GKDQor44GV44KP44GgLOOBl+OCk+OBhOOBoQ0KK+OBl+OCjeOBleOBjSzjgojjgYbjgYTjgaENCivjgZfjgbDjgYQs44GZ44GZ44KADQor44GV44GE44Go44GGLOOBv+OBoeOBig0KK+OBmeOBmuOBjSzjgajjgZfjgYoNCivjgZ3jgYzjgbks44GE44GV44GKDQor44Gb44GM44KPLOOBoeOBsuOCjQ0KK+OBl+OBv+OBmizjgb/jga7jgosNCivjgZnjgZrjgY0s44KI44GG44GY44KN44GGDQor44GX44KN44KE44G+LOOCiOOBl+OBsuOBkw0KK+OBl+OBhOOBqizjgojjgZfjgYoNCivjgZXjgoTjgb4s44G+44KC44KLDQor44GV44GL44KC44GoLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZnjgZrjgY0s44Gf44Gg44KI44GXDQor44GZ44Ga44GNLOOBpuOBpOOCjeOBhg0KK+OBleOBleOBmyzjgYvjgaTjgobjgY0NCivjgZXjgY/jgonjgYQs44G+44GV44GNDQor44GX44G+44GgLOOBm+OBhOOBmA0KK+OBleOBqOOBhizjgYvjgaTjgbLjgo0NCivjgZfjgoLjga4s44KI44GG44GZ44GRDQor44GZ44Ga44GNLOOCiOOBl+OBquOCig0KK+OBmeOBjuOCguOBqCzjgb7jgZXjgYoNCivjgZfjgb/jgZos44Gf44GR44GKDQor44GV44GuLOOCiOOBl+OBruOBtg0KK+OBmeOBmuOBjSzjgZPjgYbjgbjjgYQNCivjgZfjgb7jgaAs44GL44Ga44Gy44GTDQor44GZ44Ga44GNLOOBr+OCi+OBsuOBlQ0KK+OBmeOBjuOBteOBmCzjgbLjgajjgZcNCivjgZXjgYvjgYQs44GX44KT44GE44GhDQor44GV44GL44GQ44GhLOOBiOOBhOOBmA0KK+OBmeOBjOOCj+OCiSzjgaDjgYTjgZXjgY8NCivjgZfjga7jgZrjgYss44GY44KF44KT44GE44GhDQor44GX44GMLOOBv+OBpOOBig0KK+OBleOBi+OBjOOBvyzjgajjgojjgb4NCivjgZnjgZrjgY0s44GL44Ga44KG44GNDQor44GZ44GO44GuLOOBsuOBp+OBig0KK+OBmeOBjuOBhuOCiSzjgZnjgZnjgoANCivjgZfjgb/jgZos44GL44Ga44G/DQor44GZ44Ga44GNLOOBn+OBkeOBl+OBkg0KK+OBleOBleOBkyzjgZvjgYTjgZ7jgYYNCivjgZvjgY0s44KG44GN44KI44GXDQor44GV44Go44GGLOOBn+OBpOOBmA0KK+OBl+OBvizjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GN44KI44Gm44KLDQor44GV44GL44KC44GoLOOCiOOBl+OBi+OBmg0KK+OBleOBleOBjSzjgbLjgo3jgZcNCivjgZfjgb7jgaAs44GE44Gd44GYDQor44GV44GE44Go44GGLOOBn+OBoOOBsuOBlQ0KK+OBl+OBiuOBnyzjgajjgojjgYoNCivjgZfjgYrjgaAs44GE44GV44KADQor44GZ44GgLOOBiOOBhOOBmA0KK+OBl+OBhOOBqizjgZHjgpPjgZ7jgYYNCivjgZfjgYrjga7jgoQs44Gm44Gk44GKDQor44GV44GE44GX44KH44GGLOOChOOBmeOBsuOCjQ0KK+OBneOBhOOBoCzjgYjjgYTjgYTjgaENCivjgZ3jgb4s44GL44KT44GYDQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgZ/jgZHjgb/jgaENCivjgZfjgYrjgbDjgoks44GN44KI44GIDQor44GV44GV44GK44GLLOOCiOOBl+OBn+OBiw0KK+OBleOBleOBjSzjgb/jgaTjga7jgbYNCivjgZvjgags44G144G/44GKDQor44GX44KF44Gp44GGLOOBn+OBi+OBig0KK+OBleOBi+OCguOBqCzjgbLjgo3jgZcNCivjgZXjgY/jgb4s44Gf44GL44GXDQor44GX44Gu44GW44KPLOOBpOOCiOOBlw0KK+OBl+OBiuOBsOOCiSzjgbLjgo3jgobjgY0NCivjgZXjgY/jgonjgYQs44KG44Ga44KLDQor44GV44Go44GGLOOCgeOBkOOCgA0KK+OBleOBj+OCieOBhCzjgajjgZfjgYoNCivjgZXjgZXjgbks44Gy44KN44GXDQor44GV44Go44GGLOOCiuOCheOBhuOBnuOBhg0KK+OBmeOBjuOBhuOCiSzjgobjgYbjgZ7jgYYNCivjgZXjgYvjgYQs44G+44GV44GKDQor44Gd44G+LOOBruOBtuOBig0KK+OBneOBhuOChCzjgZvjgYTjgZgNCivjgZ3jga3jgYvjgaQs44GC44GN44KJDQor44Gb44GN44GtLOOBn+OBkeOBig0KK+OBmeOBmuOBjSzjga7jgorjgYoNCivjgZvjgY3jga0s44Go44GX44Gk44GQDQor44GV44GL44GN44Gw44KJLOOBi+OBmuOBqOOBlw0KK+OBl+OCguOBi+OCj+OBuSzjgZHjgpMNCivjgZXjgo/jgoDjgoks44Gq44KL44G/DQor44Gb44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgZPjgZrjgYgNCivjgZXjgYvjgb7jgY0s44Gy44Gn44GC44GNDQor44GV44GM44KPLOOBqOOBl+OBsuOBlQ0KK+OBmeOBjuOChOOBvizjgZ/jgZHjgobjgY0NCivjgZnjgY7jgoLjgags44GTDQor44Gb44GKLOOChuOBhuOBmA0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgYvjgYQs44G/44GN44GKDQor44GV44GP44KJ44GELOOBn+OBoOOBsuOCjQ0KK+OBm+OBjeOBrSzjgb7jgZXjga7jgooNCivjgZXjgajjgYYs44Gv44Gk44G/DQor44GX44G/44GaLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgajjgZfjgYoNCivjgZXjgYTjgajjgYYs44G+44GV44GKDQor44GV44GP44KJ44GELOOBvuOBleOBguOBjQ0KK+OBmeOBjuOChOOBvizjgoTjgZnjgYoNCivjgZfjgZrjgYss44Gy44GV44Gq44GKDQor44GX44KJ44GL44KPLOOBguOBjeOCiQ0KK+OBleOBhOOBqOOBhizjgobjgZrjgosNCivjgZXjgY3jgoLjgoos44GE44KP44GKDQor44GV44Go44GGLOOBpuOBpOOBig0KK+OBm+OBjeOBkOOBoSzjgYrjgY3jgajjgZcNCivjgZvjgY3jga0s44Gu44KK44GTDQor44GX44Gw44GfLOOBk+OBhuOBmOOCjeOBhg0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgo0NCivjgZXjgYTjgajjgYYs44Gy44GV44GKDQor44GV44Go44GGLOOBruOCiuOBig0KK+OBm+OBjeOBrSzjgYrjgZXjgoANCivjgZXjgYvjgYQs44Gv44KL44Gy44GTDQor44GV44GV44GKLOOBl+OCk+OBmA0KK+OBmeOBqeOBhizjgb7jgZPjgagNCivjgoLjgoos44GX44KH44GG44GYDQor44GX44G/44GaLOOBiOOBhOOBnuOBhg0KK+OBleOBqOOBhizjgabjgovjgYoNCivjgZnjgZrjgY0s44GE44GV44GKDQor44GX44KA44KJLOOBsuOCjeOBqOOBlw0KK+OBl+OBsOOBleOBjSzjgbLjgo3jgZcNCivjgZnjgYzjgb7jgZ8s44GL44Ga44GKDQor44GZ44Ga44GNLOOBsuOCjeOBlw0KK+OBl+OBiuOBruOChCzjgY3jgojjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Go44GX44KN44GGDQor44Gk44GN44KE44G+LOOBjeOBj+OBig0KK+OBpOOBruOBoCzjgojjgZfjgY0NCivjgZ/jgYvjga/jgZcs44Gq44GK44GoDQor44Go44GP44GW44KPLOOCguOCiuOBr+OCiw0KK+OBn+OBkOOBoSzjgb7jgZXjgYoNCivjgZ/jgYvjgY4s44Gy44Gn44GKDQor44Gf44GL44GuLOOBpuOCi+OBv+OBpA0KK+OBn+OBr+OCiSzjgY3jgojjgYvjgZoNCivjgajjgojjgZXjgo8s44GT44GG44GE44GhDQor44Go44KI44G+44GZLOOBkeOBhOOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjga7jgbYNCivjgZ/jgZHjgYbjgaEs44Gm44GE44GYDQor44Gf44GN44GE44GXLOOCiuOCh+OBhuOBmA0KK+OBn+OBi+OBhOOBlyzjgZfjgZLjgYoNCivjgZ/jgYvjgZXjgY0s44GR44KT44GYDQor44Gf44Gr44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgajjgZcNCivjgZ/jgarjga/jgZcs44GT44GG44GYDQor44Gf44G+44GNLOOBsuOCjeOBlw0KK+OBqOOBsCzjgb7jgZXjgZcNCivjgZ/jgbDjgZ8s44Gf44GL44GXDQor44Gk44GYLOOBn+OBi+OBig0KK+OBn+OBquOBiyzjgYLjgaTjgZcNCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Go44GP44Gq44GMLOOBjeOBv+OBig0KK+OBn+OBkOOBoSzjgb7jgZXjgYoNCivjgZ/jgY3jgZbjgo8s44GL44Gk44GX44GSDQor44Go44G/LOOBn+OBreOBvuOBlQ0KK+OBpOOBmCzjgZHjgYTjgZMNCivjgYbjgaHjgaAs44Go44GX44GKDQor44Gf44Gq44GLLOOBhOOCj+OBig0KK+OBpOOBreOCiOOBlyzjga7jgorjgYvjgZoNCivjgZ/jgYvjga4s44KA44Gt44GKDQor44Gf44GL44Gv44GXLOOChuOBjeOBoQ0KK+OBn+OBi+OChOOBquOBjizjgojjgYbjgYTjgaENCivjgZ/jgZHjgaAs44GR44GE44GZ44GRDQor44Gf44G8LOOChuOBn+OBiw0KK+OBn+OBquOBiyzjgYvjgZrjgYoNCivjgZ/jgZHjgYbjgaEs44G+44GV44GNDQor44Gf44GL44KE44GZLOOBqOOCiOOBvw0KK+OBpOOBoeOChCzjgobjga/jgaQNCivjgajjgY/jgarjgYws44GR44KT44GYDQor44Gk44Gh44GgLOOBquOBiuOBi+OBnw0KK+OBpOOBvOOBhCzjgYjjgYTjgYjjgaQNCivjgZ/jgYvjga/jgZcs44G+44GV44GX44GSDQor44Gk44GL44KC44GoLOOBleOBoOOCgA0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgajjgoLjgaTjga0s44GZ44GZ44KADQor44Gh44GYLOOBqOOBl+OBr+OCiw0KK+OBleOBqOOBhizjgZvjgYTjgZgNCivjgZ/jgYvjgZ8s44Gk44Gt44GKDQor44Go44Gv44GfLOOCiOOBl+OBvw0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgZ/jgYvjga/jgb4s44KI44GX44GC44GNDQor44Gm44KJ44GV44KPLOOBquOBiuOBkw0KK+OBn+OBi+OBsOOChOOBlyzjgZfjgofjgYbjgZgNCivjgabjgonjgaAs44GX44KF44GG44GYDQor44Gk44GL44GgLOOBm+OBhOOBmA0KK+OBn+OBquOBiyzjgbLjgafjgYoNCivjgajjgorjgb7jgoss44Gf44G/44GKDQor44Gk44Gh44GgLOOBvuOCguOCiw0KK+OBn+OBjeOCguOBqCzjgajjgZfjgbLjgZMNCivjgZ/jgY3jgYQs44Gy44Gn44GC44GNDQor44Gf44Gt44GgLOOBkeOCk+OBmA0KK+OBn+OCgOOCiSzjgojjgZfjga7jgooNCivjgZ/jganjgZPjgo0s44Gy44GV44GKDQor44Gf44GL44GKLOOBvuOBmeOBvw0KK+OBn+OBquOBiyzjgbLjgYvjgosNCivjgZ/jgYvjga/jgZcs44Gv44Gk44GKDQor44Gf44GL44Gv44GXLOOBl+OBkuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgbXjgZjjgYoNCivjgajjgb/jgZ8s44Go44GK44KLDQor44Gf44GL44Gv44GXLOOBguOBpOOBruOCig0KK+OBn+OBq+OBkOOBoSzjgb/jgaHjgYLjgY0NCivjgZ/jgarjgYss44KG44GG44Ge44GGDQor44Gk44G844GELOOBsuOCjeOBvw0KK+OBn+OBkeOBhuOBoSzjgbvjgbbjgpMNCivjgaTjgaAs44Go44KI44GXDQor44Gf44GR44GgLOOBvuOBleOChuOBjQ0KK+OBn+OBkeOBhCzjgZfjgZLjgYoNCivjgaTjgZjjgYvjgo8s44KG44GG44GE44GhDQor44Gf44GR44KA44KJLOOBm+OBhOOBmOOChQ0KK+OBn+OBjSzjgb7jgZXjgYLjgY0NCivjgZ/jgYvjgaAs44G+44GV44GC44GNDQor44Gf44GN44GW44KPLOOBl+OBkuOCiw0KK+OBn+OBquOBiyzjgb7jgZXjgZgNCivjgZ/jgavjgoDjgoks44Gf44GR44KI44GXDQor44KI44GX44GW44KPLOOBvuOBleOBr+OCiw0KK+OBpOOBreOBi+OCjyzjgZ/jgo3jgYYNCivjgZ/jgarjgYss44Gy44KN44GXDQor44Gf44GL44GgLOOBi+OBpOOBig0KK+OBpOOCiyzjgYLjgY3jgokNCivjgZ/jgass44G+44GV44Gy44KNDQor44Gf44GQ44GhLOOBhOOBleOBig0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZ7jgYYNCivjgZ/jgavjgZDjgaEs44GL44Ga44Gy44KNDQor44Gf44Gq44GLLOOBruOCiuOBv+OBpA0KK+OBpOOBmCzjgobjgYbjgYTjgaENCivjgZ/jgarjgYss44GL44Gk44G/DQor44Gk44KG44GNLOOBsuOBleOBig0KK+OBn+OBvuOCiyzjgb7jgZXjgb8NCivjgaTjgaHjgoQs44GR44GE44GYDQor44Gk44KL44GK44GLLOOBruOBtuOBig0KK+OBn+OBi+OBr+OBlyzjgabjgaTjgYoNCivjgZ/jgYvjga/jgZcs44G/44Gk44GTDQor44Go44GG44G144GP44GYLOOBqOOBl+OBig0KK+OBn+OBquOBiyzjgYrjgY3jgaTjgZANCivjgZ/jgYvjgY4s44GN44KH44GG44GTDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBlQ0KK+OBn+OBq+OBkOOBoSzjgorjgofjgYbjgZgNCivjgajjgojjgaAs44Gy44Go44GXDQor44Gf44GL44GOLOOBn+OBkeOBlw0KK+OBn+OBkeOBhCzjgZfjgZLjgosNCivjgaTjgaAs44G144G/44GKDQor44Gk44Gt44Gy44KNLOOBmOOCheOCk+OBmA0KK+OBn+OBjeOBluOCjyzjgajjgZfjgYoNCivjgZ/jgaHjgbDjgaos44GU44GE44GhDQor44Gf44GL44Gv44GXLOOBi+OBpOOChuOBjQ0KK+OBn+OBq+OBkOOBoSzjgZPjgZnjgZENCivjgZ/jgZHjgaAs44GL44Ga44GoDQor44Gk44Gh44KELOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYLjgY0NCivjgZ/jga7jgYbjgYgs44Gy44GT44GV44G244KN44GGDQor44Gf44GL44Gw44Gf44GRLOOBvuOBleOBruOBtg0KK+OBn+OBi+OBr+OBlyzjgb7jgZ/jgZXjgbbjgo3jgYYNCivjgbXjgarjgY0s44Gm44KL44KE44GZDQor44Gf44GR44GgLOOBi+OBpOOBvuOBlQ0KK+OBqOOBj+OBquOBjCzjgZ/jgaQNCivjgYLjgZXjgYQs44KG44GG44GYDQor44Gf44GL44Gv44GXLOOBv+OBjeOBkw0KK+OBn+OBi+OBr+OBlyzjga7jgorjgYoNCivjgZ/jgYzjgo8s44GX44KH44GG44GE44GhDQor44Gf44Gq44GLLOOBruOBtuOChuOBjQ0KK+OBn+OBoeOBi+OCjyzjgZ/jgZHjgZcNCivjgZ/jgZDjgaEs44GL44Ga44KI44GXDQor44Gf44GL44GV44GNLOOBguOBjeOCiQ0KK+OBn+OBvuOBiuOBjSzjgZfjgZrjgYoNCivjgZ/jgarjgYss44Gb44GE44GE44Gh44KN44GGDQor44Gf44GL44GuLOOBl+OCkw0KK+OBn+OBkeOBhuOBoSzjgZfjgZLjgosNCivjgaTjgaAs44Gb44KT44GYDQor44Gf44GL44Gq44G/LOOBvuOBleOCiw0KK+OBpOOBjeOBquOCjyzjgojjgZfjgarjgYoNCivjgajjgb/jgoLjgoos44GZ44GZ44KADQor44Gf44GR44GgLOOBqOOBiuOCiw0KK+OBqOOBjOOBlyzjgabjgaTjgbLjgZMNCivjgaTjgZrjgY0s44GX44GS44Go44GXDQor44Go44Gz44GfLOOBruOBtuOBguOBjQ0KK+OBqOOCguOBquOBjCzjgaTjga3jgYvjgZoNCivjgaTjgaTjgYQs44GX44GS44GC44GNDQor44Gf44GL44GOLOOBmOOCheOCk+OBmA0KK+OBn+OBq+OBkOOBoSzjgYvjgZrjgajjgZcNCivjgZ/jgYvjga4s44Go44GX44Gy44KNDQor44Gf44Gq44GLLOOBleOBqOOBlw0KK+OBqOOBvuOBpOOCiizjgZfjgo3jgYYNCivjgZ/jgYvjgY4s44GE44Gk44GKDQor44Gf44GL44GX44G+LOOBteOBv+OBig0KK+OBn+OBr+OCiSzjgojjgZfjgYLjgY0NCivjgZ/jgarjgYss44GL44Ga44GTDQor44Gf44GL44GgLOOCiOOBl+OBig0KK+OBqOOCiuOBhCzjgb/jgaTjgobjgY0NCivjgZ/jgZHjgbks44Gu44G244KG44GNDQor44Gk44GL44KC44GoLOOBguOBjeOBig0KK+OBn+OCgOOCiSzjga7jgbbjgbLjgo0NCivjgajjgb/jgarjgYws44GV44GL44GIDQor44Gf44GL44GE44KPLOOBleOBqOOBlw0KK+OBn+OBsOOBnyzjgZHjgpPjgZgNCivjgZ/jgYvjga/jgZcs44GP44Gr44GKDQor44Gm44KT44G944GG44KK44KTLOOBneOBhuOBhOOBoQ0KK+OBpuOCieOBhuOBoSzjgZXjgaDjgobjgY0NCivjgZ/jgYvjga/jgZcs44GN44KI44GXDQor44Gf44GL44GbLOOBoeOBi+OCiQ0KK+OBn+OBkeOCgOOCiSzjgoLjgajjgYQNCivjgZ/jgoDjgYvjgYQs44G144G/44GKDQor44Gf44GL44Gv44GXLOOChuOBhuOBmA0KK+OBn+OBkeOBpCzjgYvjgaTjgZgNCivjgZ/jga7jgYrjgYss44GZ44GZ44KADQor44Gf44GL44Gv44GXLOOBn+OBoOOBlw0KK+OBqOOBiuOChOOBvizjgY3jgojjga7jgbYNCivjgZ/jgZHjgYbjgaEs44GC44Gk44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOBig0KK+OBhuOBl+OBiizjgobjgZrjgosNCivjgYbjgZnjgY4s44GL44Ga44Gy44KNDQor44GG44Gh44KE44G+LOOCiOOBhuOBhOOBoQ0KK+OBhuOCgeOBoCzjgYvjgZrjgZnjgZENCivjgYbjgZHjgoLjgoos44G+44GV44GqDQor44GG44Gh44GgLOOBv+OBoeOChA0KK+OBhuOBiOOBoCzjgbLjgZXjgYoNCivjgYbjgaHjgaAs44GR44GE44GYDQor44GG44Gk44GNLOOBpuOBpOOBig0KK+OBhuOBiOOBoCzjgb/jgY3jgbLjgZMNCivjgYbjgaHjgaAs44Gy44Gn44GNDQor44GG44GI44Gv44KJLOOBl+OCheOBhg0KK+OBhuOBiOOCgOOCiSzjga7jgbbjgoQNCivjgYbjgaHjgaAs44GV44Gg44KG44GNDQor44GG44Gh44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBhuOBoeOBoCzjgZHjgpPjgZnjgZENCivjgYbjgaHjgaAs44GR44GE44GE44GhDQor44GG44GI44GNLOOBguOBjeOBkw0KK+OBhuOBi+OBmCzjgb7jgZXjgabjgosNCivjgYbjgaHjgaAs44G+44GV44GC44GNDQor44GG44GI44KA44KJLOOBsuOBp+OBig0KK+OBhuOBl+OBiizjgajjgY/jgZgNCivjgYbjgoHjgoDjgoks44Go44GX44GKDQor44GG44KB44GX44G+LOOCiuOBjeOBpOOBkA0KK+OBhuOBk+OCkyzjgYvjgYrjgosNCivjgYbjgaHjgYTjgZEs44GY44KF44KT44GE44GhDQor44GG44KL44GX44GuLOOBn+OBi+OBguOBjQ0KK+OBhuOBoeOBquOBlyzjgbjjgYTjgZ8NCivjgYbjgZDjgZUs44G+44GV44KG44GNDQor44GG44GuLOOBqOOBl+OBsuOBpw0KK+OBhuOBiOOBjSzjgb/jga7jgosNCivjgYbjgYjjgoLjgags44GR44KTDQor44GG44GI44KA44KJLOOChuOBjeOBig0KK+OBhuOBiOOBr+OCiSzjgbLjgo3jgZcNCivjgYbjgYjjgaAs44GX44KT44G644GEDQor44KP44Gf44Gq44G5LOOBsuOBleOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgb8NCivjgo/jgZ/jgarjgbks44GN44KT44KEDQor44KP44GL44KA44KJLOOChOOBmeOCjQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgZgNCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44KP44Gf44Gq44G5LOOBsuOCjeOBr+OCiw0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgarjgooNCivjgo/jgZ/jgarjgbks44Gy44Gn44GKDQor44KP44Gf44Gq44G5LOOBi+OBpOOBsuOBkw0KK+OCj+OBn+OBquOBuSzjgoTjgZnjgYLjgY0NCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44KP44GN44GfLOOBk+OBhuOCgeOBhA0KK+OCj+OBn+OBquOBuSzjgajjgY3jgYoNCivjgo/jgZ/jgarjgbks44GT44KT44GU44GGDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OCj+OBn+OBquOBuSzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44KP44Gf44Gq44G5LOOBmeOBv+OBn+OBoA0KK+OCj+OBoCzjgoTjgZnjgZcNCivjgo/jgZ/jgarjgbks44Gf44Gk44Gy44GTDQor44KP44GgLOOBn+OBkeOBv+OBpA0KK+OCj+OBoCzjgbvjgb7jgowNCivjgo/jgZ/jgarjgbks44G+44GV44GC44GNDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgYLjgY0NCivjgo/jgYvjgbDjgoTjgZcs44G/44Gt44GKDQor44KP44Gf44Gq44G5LOOBsuOBleOBig0KK+OBiuOBiuOBnyzjgb7jgZPjgagNCivjgbXjgZjjgo/jgoks44GZ44G/44GC44GNDQor44GT44GE44GRLOOBv+OBoeOBig0KK+OBi+OBn+OBiuOBiyzjgabjgaTjgoQNCivjgbLjgo3jgZfjgZIs44GN44KI44GXDQor44GX44KT44GW44KPLOOBsuOCjeOBlw0KK+OBv+OBmuOBi+OBvyzjgb7jgZXjgb/jgaQNCivjgarjgYvjgZjjgb4s44GR44GE44GE44GhDQor44G144GP44GX44G+LOOBl+OBkuOBjQ0KK+OBquOBiyzjgbLjgo3jgZcNCivjgbLjgonjgoTjgb4s44G+44GV44GTDQor44Gr44KP44KE44G+LOOBi+OBpOOBmA0KK+OBl+OBv+OBmizjgZ3jgYbjgZjjgo3jgYYNCivjgbXjgovjgZXjgo8s44Gk44KI44GXDQor44GV44GP44KJ44GELOOBv+OBmuOBuw0KK+OBn+OBkeOBquOBiyzjgYLjgaTjga7jgbYNCivjgZnjgY7jgYbjgoks44GL44KI44GTDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBu+OBl+OBi+OCjyzjgb7jgZXjgYoNCivjgYrjgYzjgo8s44GE44GV44GKDQor44GL44GX44KP44GOLOOBkw0KK+OBleOBi+OBhCzjgbLjgo3jgZMNCivjgoLjgoos44Gv44KL44GKDQor44G744KT44G8LOOBruOBtuOChuOBjQ0KK+OBhOOBhOOBmOOBvizjgojjgZfjgYLjgY0NCivjgZPjgZjjgb4s44Gf44GL44GKDQor44Gf44GL44Gv44GXLOOBruOBvOOCiw0KK+OBr+OBnyzjgZfjgofjgYbjgZnjgZENCivjgYrjgYzjgo8s44GC44GN44Gu44KKDQor44Gk44Gh44KELOOBi+OBpOOChA0KK+OBk+OChOOBvizjgYTjgZXjgYoNCivjgbXjgovjgb8s44Gm44Gk44GKDQor44GP44KBLOOBpOOBreOBig0KK+OBj+OCieOBnyzjgZvjgaTjgYoNCivjgYbjgZfjgZjjgb4s44G+44GV44GL44GaDQor44GI44Gw44GoLOOBi+OBpOOBruOCig0KK+OBleOBqOOBhizjga7jgbbjgobjgY0NCivjgoDjgZfjgoMs44Gq44GK44Gy44GTDQor44KG44GC44GVLOOBvuOCguOCiw0KK+OBjeOBj+OBoSzjgarjgYrjgY0NCivjgb7jgaTjgbDjgoTjgZcs44Gm44KL44KI44GXDQor44G+44Gk44GELOOBguOBjeOCiQ0KK+OBn+OBkeOCgOOCiSzjgbLjgo3jgZcNCivjgabjgonjgZfjgb4s44KI44GG44GZ44GRDQor44GP44KJLOOBsuOBp+OBj+OBqw0KK+OBvuOBpOOBhCzjgojjgZfjgYoNCivjgYbjgYjjgaAs44GE44GV44GKDQor44Gv44KE44GXLOOBl+OCk+OBhOOBoQ0KK+OBi+OCj+OBqizjgaDjgYTjgZjjgo3jgYYNCivjga/jgoTjgZcs44GL44Ga44GKDQor44Gn44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBl+OBtuOBjSzjgZ/jgZHjgZcNCivjga/jgb4s44Gf44Gk44GKDQor44GI44KT44GpLOOBk+OBhuOBluOBtuOCjeOBhg0KK+OBv+OChOOCguOBqCzjgZ/jgYvjgbLjgZUNCivjgb7jgaTjgaAs44Gy44KN44GXDQor44KE44G+44KC44GoLOOBqOOCguOBkw0KK+OCgOOCieOBi+OBvyzjgZfjgZLjgYoNCivjgYrjgYvjgaAs44Gg44GE44GN44GhDQor44KP44Gf44Gq44G5LOOBi+OBmuOChuOBjQ0KK+OBhOOCj+OBleOBjSzjgYLjgY3jgogNCivjgojjgZfjgaAs44GZ44G/44KG44GNDQor44GK44GK44KC44KKLOOBvuOBleOBruOCig0KK+OBv+OBmuOBn+OBqyzjgbLjgZXjgYgNCivjgZnjgY7jgYbjgoks44GL44Ga44GKDQor44Gu44Gq44GLLOOBv+OBpOOBn+OBiw0KK+OCj+OBn+OBquOBuSzjgYTjgZXjgoANCivjgZXjgYTjgajjgYYs44Gf44GR44GKDQor44GK44GK44GL44KP44KJLOOBkuOCk+OBn+OCjeOBhg0KK+OBi+OBqeOBhOOBkSzjgZ/jgZHjgZ/jgaANCivjgb7jgaTjgoLjgags44Gu44KK44GL44GaDQor44Gq44GLLOOBn+OBi+OBig0KK+OBi+OBqOOBhizjgZHjgpPjgZ7jgYYNCivjgYvjgo/jgYTjgZcs44KG44GG44GTDQor44Gq44GM44GV44KPLOOBpOOBqOOCgA0KK+OBmeOChOOBvizjgY/jgpPjgo3jgYYNCivjgY/jgb7jgZfjgo0s44Gy44KN44GXDQor44Gf44GL44Gw44KE44GXLOOBsuOBp+OBig0KK+OBk+OCk+OBqSzjgZHjgpPjgZ7jgYYNCivjgYTjgarjgbAs44GV44Go44KLDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgb/jgYvjgZMNCivjgZnjgZrjgY0s44KG44GG44GYDQor44GC44GN44KE44G+LOOChuOBn+OBiw0KK+OBn+OBi+OBoCzjgYLjgY3jgokNCivjgZXjgo/jgYQs44G+44GV44Gy44GTDQor44Gq44GL44GfLOOBjeOCiOOChuOBjQ0KK+OBhOOBn+OBsCzjgobjgYbjgYTjgaENCivjgY/jgavjgY7jgZ8s44KI44GG44GE44GhDQor44KE44G+44GgLOOCiOOBhuOBkw0KK+OChOOBvuOBoCzjgobjgYbjgZMNCivjgZ/jgYvjga/jgZcs44KI44GG44GE44Gh44KN44GGDQor44GG44KB44KA44KJLOOBruOCiuOBsuOBkw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgYLjgY0NCivjgYvjga3jgb/jgaQs44Gf44Gg44GKDQor44GN44GpLOOBvuOBleOBlw0KK+OBi+OBreOBjSzjgZ/jgaDjgYoNCivjgZPjgoDjgoks44G+44GV44Gy44KNDQor44G144GY44KC44KKLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBl+OBnyzjgabjgovjgZ/jgZENCivjgY/jgorjgoTjgb4s44G+44GV44Gy44KNDQor44Go44GW44KPLOOBn+OBi+OBlw0KK+OBhOOBl+OBhCzjgaHjgYvjgajjgZcNCivjgZ/jgYvjga/jgZcs44KI44GG44GE44GhDQor44Gf44Gq44GLLOOBi+OBmuOBvw0KK+OBhOOBl+OBluOBjSzjgabjgaTjgYoNCivjga/jgonjgaAs44G+44GV44Gy44KNDQor44Go44GP44Gy44GVLOOBl+OBkuOChOOBmQ0KK+OBhOOBl+OCgOOCiSzjgZ/jgaDjgbLjgo0NCivjgYbjgYjjgaAs44Gf44GL44GXDQor44GK44G144GhLOOBj+OBq+OBsuOCjQ0KK+OChOOBpOOCi+OBjizjgb/jgaTjgYoNCivjgb/jgarjgags44G+44KG44G/DQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OBv+OBquOBvyzjgoTjgZnjgYoNCivjgYrjgYss44GC44GN44GKDQor44GE44Gh44GL44KPLOOBi+OBmuOBig0KK+OBiuOBiuOBj+OBvCzjgbLjgafjgY0NCivjgYTjgZfjgaAs44Gy44KN44KG44GNDQor44Go44G/44GfLOOBhOOBleOBig0KK+OBsuOCieOBiuOBiyzjgbLjgo3jgbLjgZUNCivjgYvjgajjgYYs44Gy44Gn44GKDQor44GK44KA44KJLOOCgOOBpOOBig0KK+OBiuOBleOBmOOBvizjgajjgZfjgoQNCivjgbXjgarjgZPjgZcs44Gb44Gk44GKDQor44GT44GG44GgLOOBsuOBp+OBguOBjQ0KK+OBguOBleOBiuOBiyzjgZ/jgaTjgYoNCivjgYvjgZnjgYws44GC44GR44G/DQor44KC44KC44Gv44KJLOOBtuOCk+OBhOOBoQ0KK+OBhuOBiOOCgOOCiSzjgajjgZfjgbLjgacNCivjgYrjgbDjgZ8s44GL44Ga44GTDQor44GK44Gu44GgLOOChuOBjeOBig0KK+OBv+OChOOBl+OBnyzjgYvjgpPjgZgNCivjgbvjgZ3jgoQs44KE44GZ44GKDQor44KE44GX44KNLOOChuOBjeOBig0KK+OCj+OBn+OBquOBuSzjgYLjgaTjgZcNCivjgY3jgoDjgoks44Go44GN44GhDQor44GL44G/44GY44KH44GGLOOBsuOBleOBiA0KK+OBleOBqOOBhizjgojjgZfjgYrjgY0NCivjgb7jgaTjgZfjgb4s44GC44GN44KJDQor44GL44Gf44KE44G+LOOCiOOBhuOBkw0KK+OBsuOCieOBrizjgZTjgbjjgYQNCivjgarjgYvjgonjgYQs44Gg44GE44GZ44GRDQor44KI44GT44KE44G+LOOBsuOBleOBig0KK+OBiuOBiuOBjOOBrSzjgajjgoLjgbLjgo0NCivjgY3jgoDjgoks44G+44GT44GoDQor44Gu44GW44GVLOOCiOOBl+OBruOCig0KK+OCguOCiuOBrizjgYvjgZrjgZfjgZINCivjgYjjgaHjgZTjgoQs44G/44Gh44Gy44GTDQor44G144GP44GX44G+LOOBsuOBp+OBig0KK+OBhOOBqOOBhizjgb7jgZXjgobjgY0NCivjgYTjgZHjgaAs44KG44GN44GTDQor44Go44GP44Gq44GMLOOCiuOBiA0KK+OBjeOCguOBqCzjgYLjgYTjgZMNCivjgYrjgZfjgaAs44GV44Go44GTDQor44Gv44GX44KC44GoLOOBruOCiuOBi+OBmg0KK+OBruOBkOOBoSzjgajjgZfjga7jgooNCivjgb/jgoTjgbks44GL44Ga44GoDQor44GP44KP44Gv44KJLOOChOOBmeOBiA0KK+OBjeOCgOOCiSzjgbLjgo3jgb8NCivjgYrjgaAs44GL44Ga44KG44GNDQor44GC44GE44GW44KPLOOBn+OBv+OBig0KK+OBhuOBiOOBrizjgYvjgaTjgYoNCivjgb7jgaTjgbDjgoks44Gu44KK44KG44GNDQor44Gf44G+44GELOOBi+OBmuOBv+OBoQ0KK+OBl+OCieOBhCzjgojjgZfjgYoNCivjgYrjgYrjga/jgZcs44GT44GG44GYDQor44Gf44G/44KELOOBteOBv+OChA0KK+OBr+OCieOBoCzjgojjgZfjgZMNCivjgYbjgZnjgYQs44Gf44GL44GXDQor44GT44KKLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBruOBoCzjgZfjgZLjgbLjgZMNCivjgarjgb/jgY0s44G+44GV44GoDQor44Gq44GL44GKLOOBvuOBleOBv+OBpA0KK+OBi+OBqeOChCzjgYLjgY3jgokNCivjgYrjga4s44Go44GX44Gy44GnDQor44GX44G244GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBleOCjyzjgb7jgarjgbYNCivjgZ/jgbbjgZss44GE44Gh44KN44GGDQor44GK44GV44KPLOOBn+OBi+OCiOOBlw0KK+OBquOBi+OBoOOBhCzjgZHjgpPjgZgNCivjgYjjgYzjgZfjgoks44Gy44KN44KG44GNDQor44GV44GV44GNLOOBi+OBpOOBig0KK+OBteOBj+OBoSzjgYvjgZrjgbLjgZMNCivjgojjgZfjgoTjgZks44GU44GGDQor44KP44Gf44Gq44G5LOOBk+OBleOBqA0KK+OBhuOBiOOBrizjgozjgYTjgZMNCivjgYjjgajjgYYs44G+44GV44Gu44KKDQor44KI44GX44GgLOOBvuOBleOBig0KK+OBn+OBkeOBhCzjgobjgYbjgYTjgaENCivjga/jgoTjgZcs44Gy44GV44GXDQor44G+44Gf44GNLOOBl+OCk+OBlA0KK+OCguOCiuOCguOBqCzjgYTjgaHjgo3jgYYNCivjgYTjga/jgoks44GR44KT44GYDQor44Gk44GL44Gv44KJLOOBpuOCi+OBig0KK+OBi+OBruOBhizjgajjgoLjgZMNCivjgoDjga3jgobjgY0s44Gy44Gn44G+44GVDQor44GK44GK44Gk44G8LOOCiOOBl+OBn+OBiw0KK+OChOOBvuOCguOCiizjgYvjgaTjgYoNCivjgYLjgpPjganjgYYs44Gb44GE44GNDQor44KE44G+44GW44GNLOOCiOOBl+OBguOBjQ0KK+OBn+OBjeOCguOBqCzjgojjgYbjgYTjgaENCivjgZ/jgZHjgoDjgoks44Gq44GK44GL44GaDQor44KA44KJ44GL44G/LOOBvuOBk+OBqA0KK+OBn+OBi+OBnyzjga7jgorjgYoNCivjgbLjgo3jgZss44Gk44Gf44Gy44KNDQor44KE44GP44KPLOOBn+OBi+OBlw0KK+OBl+OCk+OBkOOCiuOCh+OBhizjgojjgYbjgZMNCivjgZ/jgaEs44G+44GV44GXDQor44GV44Go44GGLOOBi+OBmuOBig0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgo0NCivjgZnjganjgYYs44GX44KH44GG44GTDQor44G744KT44G+LOOBsuOCjeOBjQ0KK+OBiuOBiuOBpOOBvCzjgajjgZfjgYoNCivjgYvjgZbjgb4s44G/44Gk44Gy44KNDQor44GC44GM44KPLOOBv+OBu+OBkw0KK+OBhOOBruOBhuOBiCzjgorjgoXjgYbjgYTjgaENCivjgYLjgonjgYQs44G+44GV44GhDQor44GG44GI44KA44KJLOOChuOBn+OBiw0KK+OBq+OBl+OBj+OCiSzjgb7jgZXjgbLjgo0NCivjgb/jgoTjgZbjgY0s44KI44GX44GL44GaDQor44G144GP44GgLOOCguOCiuOBvuOBlQ0KK+OBpOOCiuOChCzjgZ/jgaDjgYoNCivjgZ/jgarjgYss44Gy44KN44GL44GaDQor44GK44GM44KPLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjga/jgb7jgZDjgaEs44Gf44GP44GYDQor44GL44KB44GgLOOBi+OBpOOChA0KK+OCguOCguOBr+OCiSzjgbLjgafjgYoNCivjgbLjgonjgYos44Gf44GL44GTDQor44Gf44GL44GgLOOBquOBiuOChuOBjQ0KK+OBhOOBkeOBoCzjgojjgZfjgbLjgo0NCivjgZnjgZrjgY0s44GC44GN44KJDQor44Gf44GL44Gv44GXLOOBi+OBmuOCiOOBlw0KK+OBn+OBquOBiyzjgZjjgo3jgYYNCivjgZvjgoks44Gf44GE44GhDQor44Gf44GR44KA44KJLOOBqOOBl+OBguOBjQ0KK+OBu+OCiuOBjeOCiizjgb7jgoLjgosNCivjgYTjgZHjgaAs44G/44Gu44KLDQor44GC44KJ44GNLOOBm+OBjeOBrQ0KK+OBiuOBiuOBpOOBiyzjgYvjgZrjgYTjgaHjgo3jgYYNCivjgY/jgavjgb7jgaQs44Gb44GE44GW44G244KN44GGDQor44GG44GX44GwLOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgb7jgZXjgagNCivjgYTjgZfjgYQs44G/44GN44GKDQor44GL44GgLOOBguOBjeOCiQ0KK+OChOOBjizjgZ/jgaDjgYoNCivjgbLjgonjgYQs44GT44GG44GE44Gh44KN44GGDQor44GP44KN44GbLOOBsuOCjeOBlw0KK+OBiuOBi+OBuSzjgYTjgZXjgoANCivjgYvjga3jgZMs44Go44GX44KG44GNDQor44GT44GY44G+LOOBleOBqOOCiw0KK+OBq+OBl+OCiOOCiizjgb/jga7jgosNCivjgarjgYvjgZjjgofjgYYs44GY44KN44GGDQor44Gv44GX44GP44KJLOOBpOOBqOOCgA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaTjgYoNCivjgYbjgYjjgY/jgZUs44Gu44G244GC44GNDQor44GX44Gw44GfLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgabjgovjgYoNCivjgYTjgarjgbAs44GL44Ga44GoDQor44GY44KF44KT44GE44Gh44KNLOOBguOBjeOBruOCig0KK+OBr+OChOOBi+OCjyzjgbLjgafjgYoNCivjgYTjgajjgYYs44Gf44GR44GXDQor44GN44KC44GoLOOBvuOBleOBpOOBkA0KK+OBhOOBoCzjgbLjgo3jgZcNCivjgbvjgYbjgZjjgofjgYYs44GL44Gk44Gy44GTDQor44G744KK44GELOOBpOOBreOBig0KK+OBi+OBhOOBmyzjgYLjgaTjgZcNCivjga/jgZfjgoLjgags44KE44GZ44GC44GNDQor44GZ44Ga44GNLOOBsuOBqOOBlw0KK+OBi+OBreOBleOBiyzjgojjgZfjgYoNCivjgoTjgb7jgZDjgaEs44KG44GG44GYDQor44GZ44Ga44GNLOOBvuOBleOBi+OBmg0KK+OBmeOBqeOBhizjgb7jgZXjgbLjgZMNCivjgYrjgYrjgbAs44G/44G744GTDQor44KA44KJ44GfLOOBqOOBl+OBkw0KK+OBguOBjeOChOOBvizjgb7jgZXjgZcNCivjgYLjgZnjgb4s44Gf44GR44GKDQor44GL44KP44GY44KKLOOBsuOBp+OBig0KK+OBvuOBpOOCguOBqCzjgY3jgofjgYbjgZgNCivjgZfjgo3jgoTjgb4s44GTDQor44G144GY44GELOOBguOBpOOBkw0KK+OBlOOBqOOBhizjgaDjgYTjgZnjgZENCivjgZ/jgavjgYLjgYQs44KE44GZ44G+44GVDQor44GL44Gk44G844KKLOOBvuOBjQ0KK+OBsuOBguOBpizjgY/jgb/jgZMNCivjgabjgonjgYQs44GC44GN44GTDQor44Gv44KT44GgLOOBvuOBleOBkw0KK+OBv+OBl+OBvizjgbLjgo3jgb8NCivjgZ/jgYvjgZfjgb4s44GL44Ga44G/DQor44G+44Gk44GgLOOBguOBjeOCiQ0KK+OBk+OCk+OBqSzjga7jgorjgZMNCivjgYTjgZ/jgoQs44GR44KT44GYDQor44G+44Gk44KC44GoLOOBquOBiuOBn+OBkQ0KK+OBhOOBhOOChOOBvizjgbLjgafjgYoNCivjgZjjgaPjgags44GL44Gk44Gy44KNDQor44GP44G844GfLOOBleOBoeOBkw0KK+OBhOOBl+OBkOOCjSzjgYjjgYTjgZgNCivjgoLjgoos44GG44Gk44G/DQor44GL44KT44GuLOOBleOBoeOBkw0KK+OBhOOBqOOBhizjgZvjgYTjgZgNCivjgojjgZfjgaAs44KK44KF44GG44GYDQor44G+44KL44KE44G+LOOBj+OBq+OBig0KK+OBleOBqOOBhizjgarjgbsNCivjgZPjgYbjgaAs44KI44GG44GYDQor44KP44Gf44GrLOOBvuOCguOCiw0KK+OBleOBmyzjgYTjgY/jgYoNCivjgZ3jgajjgoTjgb4s44GL44Gk44Gu44KKDQor44G744KT44GgLOOBpuOCi+OBj+OBqw0KK+OBhOOBrOOBhCzjgobjgZ/jgYsNCivjgZnjgZrjgY0s44KI44GX44Gu44KKDQor44GT44Gr44GXLOOCiOOBl+OBruOBtg0KK+OBmeOBjuOBhCzjgobjgY3jgbLjgZUNCivjgYLjgonjgY0s44Gu44G244GKDQor44Gy44KJ44GK44GLLOOChOOBmeOBlw0KK+OBiuOBiuOBpOOBiyzjgoDjgaTjgYoNCivjgYvjgajjgYYs44GX44GS44GKDQor44GX44GK44GuLOOBsuOCjeOBlw0KK+OBi+OBn+OChOOBvizjgbLjgo3jga7jgooNCivjgbXjgaHjgYvjgb8s44Gf44GR44Gy44GTDQor44Gy44KJ44GNLOOBn+OCguOBpA0KK+OBhOOCj+OBleOBjSzjgY3jgb/jgYoNCivjgYjjga7jgY0s44GY44KF44KTDQor44GE44KP44GfLOOBm+OBhOOBhOOBoQ0KK+OBl+OCheOBqOOBhizjgZ/jgaDjgZcNCivjgajjgYrjgoTjgb4s44G+44Gk44Gu44KKDQor44GT44GE44GnLOOBmOOCheOCk+OBluOBtuOCjQ0KK+OBn+OBquOBuSzjgobjgYbjgZjjgo3jgYYNCivjgoTjgb7jgoLjgags44GX44KF44KT44GE44GhDQor44GL44GE44Gv44GkLOOBm+OBhOOBlw0KK+OBguOCieOBhCzjgYvjgaTjgZgNCivjgYbjgYjjgaAs44KG44GG44Ge44GGDQor44GP44KJ44GK44GLLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBk+OBsOOChOOBlyzjgYjjgaTjgbLjgo0NCivjgZ/jgoHjgaHjgYss44Gf44Gm44GKDQor44KI44GX44GgLOOBl+OBmuOBig0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgosNCivjgZXjgYvjgZfjgZ8s44GL44Gt44GKDQor44KP44GgLOOBqOOBl+OBguOBjQ0KK+OBhOOBqOOBhizjgoTjgZnjgYoNCivjgojjgZfjgaAs44GL44Gk44GYDQor44KI44Gt44GgLOOBqOOBl+OBsuOBpw0KK+OBiuOCgOOCiSzjgb7jgZXjgb8NCivjgZ/jgYvjgY4s44GX44Gh44KN44GGDQor44GG44Gh44KE44G+LOOBguOBjeOBkw0KK+OBi+OBl+OCj+OBjizjgZHjgYTjgZMNCivjgavjgZfjgaAs44Gb44Gk44GKDQor44GK44GX44GLLOOBn+OBkeOBig0KK+OBiOOBmOOBvizjgajjgoLjga7jgooNCivjgYrjgYss44GR44KT44GE44GhDQor44KI44GX44GgLOOChOOBmeOBiA0KK+OBhOOBvuOBhCzjgoTjgZnjgZfjgo3jgYYNCivjgoTjgb7jgb/jgaEs44Go44KC44GTDQor44GC44GE44KC44GuLOOBi+OBpOOBig0KK+OBsuOBrizjgoLjgajjgZMNCivjgZ/jgYvjga/jgZcs44G/44GV44GTDQor44KI44GT44GfLOOBiOOBhOOBkw0KK+OBhOOBruOBhizjgZ/jgYjjgZMNCivjgojjgZfjgaAs44Gy44KN44GTDQor44KI44GX44GK44GLLOOBguOBjeOBkw0KK+OBhuOCgeOBluOCjyzjgYbjgY3jgZMNCivjgabjgonjgYos44Gy44KN44Gy44GVDQor44GL44KP44Gv44KJLOOBr+OCi+OBig0KK+OBr+OBm+OBjOOCjyzjgb/jga7jgosNCivjgY3jgZcs44Gm44KL44GTDQor44Gv44GX44Ga44KBLOOBv+OBpOOBsuOCjQ0KK+OCiOOBl+OBoCzjgoHjgZDjgb8NCivjgb/jga3jgbXjgZgs44Gq44GK44GTDQor44G744KT44GgLOOChuOBvw0KK+OBn+OBi+OBleOCjyzjgb/jgobjgY0NCivjgYrjgYrjga/jgZcs44KI44GG44GTDQor44GL44GM44KPLOOBoeOBiw0KK+OBq+OBl+OBoCzjgb7jgooNCivjgYTjgZ/jgYzjgY0s44GC44GN44GTDQor44GC44GN44KE44G+LOOBruOCiuOBsuOCjQ0KK+OBiuOBoeOCiizjgoTjgZnjgbLjgo0NCivjga7jgZbjgo8s44GT44GG44GYDQor44GV44GE44Go44GGLOOBkeOCk+OBmA0KK+OBjeOCgOOCiSzjgaHjgYgNCivjgYLjgbks44Gq44GK44GoDQor44GP44GZ44Gu44GNLOOBqOOCguOBkw0KK+OBr+OChOOBlyzjgoTjgZnjgbLjgo0NCivjgYrjgYrjgYQs44Gq44GK44G/DQor44GL44G/44GK44GLLOOBr+OCi+OCiOOBlw0KK+OBguOBjeOChOOBvizjgYTjgZXjgYoNCivjgYLjgorjgZ8s44GL44Gk44G/DQor44GN44Gf44KA44KJLOOBv+OBoeOChuOBjQ0KK+OBvuOBmeOCgOOCiSzjgZ/jgYvjga7jgooNCivjgYrjgYrjgZXjgo8s44GR44KTDQor44GL44KP44GELOOBv+OBruOCiw0KK+OBhOOBn+OBjOOBjSzjgbLjgafjgYoNCivjgoLjgoos44Gf44GL44GKDQor44GC44GK44GNLOOBv+OBjeOBig0KK+OBteOBmOOBl+OCjSzjgZPjgYbjgZgNCivjgZfjgb/jgZos44KC44Go44GX44GSDQor44KA44KJ44GL44G/LOOBv+OCiOOBlw0KK+OBquOBi+OBmOOBvizjgabjgaTjgYoNCivjgoLjgY4s44GC44GN44GKDQor44G/44GG44KJLOOBi+OBmuOBig0KK+OBn+OBi+OBvuOBpCzjgZHjgpPjgZgNCivjgZ/jgYvjgaAs44GX44KH44GG44GE44GhDQor44GT44KT44GpLOOBvuOBleOBkw0KK+OBquOBi+OBmOOBvizjgbLjgajjgZcNCivjga3jgozjgYQs44Gy44KN44GXDQor44GG44GX44GPLOOBiuOBleOCgA0KK+OBjeOBn+OBluOCjyzjgZMNCivjgZXjgaPjgZUs44Gu44G244Gy44KNDQor44GE44Gj44GX44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OCj+OBrizjga7jgorjgaTjgZANCivjgYTjgZfjga/jgoks44G144G/44Gf44GLDQor44GL44KB44GK44GLLOOBn+OBoOOBig0KK+OBjeOBhuOBoSzjga7jgorjgYvjgZoNCivjgarjgYzjgYQs44Gy44Go44GXDQor44Gu44GQ44GhLOOBv+OBoeOBig0KK+OBiuOBl+OBnyzjgZ/jgYvjgYoNCivjgojjgZfjgoDjgoks44Go44GX44G/44GhDQor44GC44GL44G744KKLOOBv+OBpOOBruOBtg0KK+OBvuOCi+OBquOBjCzjgojjgZfjgaTjgZANCivjgojjgZfjga4s44GT44GG44Gf44KN44GGDQor44KE44GuLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgbLjgacNCivjgoTjgb7jgZDjgaEs44GL44Gk44Go44GXDQor44Gb44KT44Gp44GgLOOBvuOBleOCiw0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgojjgZPjgYgs44GY44KF44KT44GE44GhDQor44KE44G+44GX44GfLOOBm+OBhOOBluOBtuOCjeOBhg0KK+OCiOOBl+OBoCzjgajjgb/jgZ7jgYYNCivjgoTjgb7jgZfjgZ8s44GZ44GZ44KADQor44KE44GZ44GELOOBi+OBmuOBig0KK+OChOOBvuOBiuOBiyzjgY3jgofjgYbjgZnjgZENCivjgojjgZPjgZss44Go44KC44GX44GSDQor44KE44G+44GQ44GhLOOBkeOCk+OBmA0KK+OChOOBr+OBjizjgoTjgZnjga/jgosNCivjgoTjgb7jgYrjgYss44Gy44KN44G+44KLDQor44KI44Gk44KELOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgZMNCivjgojjgZfjgYvjgo8s44Go44GX44KN44GGDQor44KE44G+44GX44GfLOOBl+OCh+OBhuOBmA0KK+OChOOBvuOBiuOBiyzjgbLjgo3jgZMNCivjgojjga3jgb/jgaQs44Gb44GE44GYDQor44KI44GX44GgLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBluOBjSzjgabjgaTjgYoNCivjgoTjgb7jgoLjgags44Gy44GL44KLDQor44KE44G+44GQ44GhLOOBv+OBruOCiw0KK+OChOOBvuOBhuOBoSzjgZXjgYvjgYgNCivjgojjgZfjgZbjgo8s44GL44Gk44G/DQor44KI44GX44GK44GLLOOBi+OBpOOBsuOBqA0KK+OChOOBvuOCguOBqCzjga7jgbbjgYoNCivjgoTjgb7jgYrjgYss44G/44Gh44Go44GXDQor44KE44G+44GW44GNLOOBguOBjeOCiQ0KK+OCiOOBl+OCgOOCiSzjgb7jgZXjgbLjgZMNCivjgoTjgZnjgaAs44GT44GG44GYDQor44KE44G+44GX44GfLOOBm+OBhOOBhOOBoQ0KK+OChOOBoCzjgZfjgpPjgoQNCivjgojjgZfjgaAs44GE44Gh44KN44GGDQor44KE44G+44KC44GoLOOBpOOBqOOCgA0KK+OChOOBvuOBoCzjgZTjgo3jgYYNCivjgojjga3jgaAs44GL44GK44KLDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBoCzjgY/jgZnjgYoNCivjgoTjgb7jgZDjgaEs44Gf44GL44G144G/DQor44KE44G+44GQ44GhLOOBteOBv+OBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZMNCivjgojjgZfjgaAs44GZ44GZ44KADQor44KE44G+44GX44GfLOOBl+OCh+OBhuOBnuOBhg0KK+OChOOCk+OBuSzjgYLjgaTjgbLjgo0NCivjgoTjgb7jgZDjgaEs44Gu44KK44KI44GXDQor44KE44G+44KC44GoLOOBmOOCheOCk+OBmA0KK+OChOOBvuOBrSzjgZPjgYbjgZjjgo3jgYYNCivjgoTjgb7jgZXjgY0s44GR44KT44Gf44KN44GGDQor44KE44GZ44GK44GLLOOChuOBjeOBig0KK+OChOOBvuOBoCzjgYjjgYTjgZ7jgYYNCivjgojjgZfjgZbjgo8s44GY44KN44GGDQor44KE44GY44G+LOOBguOBjeOCiQ0KK+OChOOBquOBhCzjgabjgaTjgYoNCivjgoTjgb7jgZbjgY0s44GL44Ga44GKDQor44KE44G+44GG44GhLOOBteOBj+OBv+OBoQ0KK+OChOOBvuOBluOBjSzjgZnjgZnjgoANCivjgojjgZfjga4s44Gf44Gk44KG44GNDQor44KE44G+44GL44GSLOOBn+OBoOOBruOBtg0KK+OChOOBjizjgZjjgaTjga7jgooNCivjgoTjgZnjgaAs44G+44GV44GKDQor44KE44G+44KELOOBruOBtuOBig0KK+OBn+OBi+OBkOOBoSzjga7jgbzjgosNCivjgojjgZfjgaAs44Gy44KN44GXDQor44KI44GX44GuLOOBk+OBhuOBmA0KK+OChOOBvuOCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgoTjgY4s44GL44Gk44Gu44KKDQor44KE44G+44GgLOOBk+OBmeOBkQ0KK+OChuOBi+OCjyzjgb7jgZXjgajjgZcNCivjgoTjgb7jgoLjgags44GY44KH44GG44GYDQor44KE44G+44Gf44GrLOOBsuOCjeOBpOOBkA0KK+OChOOBvuOCgOOCjSzjgojjgZfjgYvjga0NCivjgojjgZfjgaAs44Go44GX44Gy44GTDQor44KI44GT44GL44KPLOOBqOOCguOCiOOBlw0KK+OChOOBvuOBluOBjSzjgZPjgYbjgYTjgaENCivjgoTjgb7jgoLjgags44Gf44GR44GKDQor44KI44GX44GuLOOBjeOCiOOBlw0KK+OChOOBvuOBrSzjgojjga3jgZ/jgYsNCivjgoTjgZnjgarjgYws44GC44GN44Gy44KNDQor44KE44Gq44GLLOOBkeOBhOOBhOOBoQ0KK+OChOOBvuOBrSzjgabjgaTjgYoNCivjgoTjgb7jgYbjgaEs44KI44GX44KG44GNDQor44KE44G+44GQ44GhLOOChuOBhuOBmA0KK+OChOOBvuOCj+OBjSzjgZfjgofjgYbjgZ/jgo3jgYYNCivjgoTjgb7jgYvjgo8s44GY44KF44KT44GE44GhDQor44KE44G+44GgLOOBi+OBmuOBvw0KK+OCiOOBk+OChOOBvizjgZfjgofjgYbjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44KE44Gd44G/DQor44KE44G+44GQ44GhLOOBruOBvOOCiw0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgojjgZcNCivjgojjgZfjgaAs44Gf44GL44GKDQor44KE44G+44Gq44GLLOOBi+OBmuOBvw0KK+OChOOBvuOCguOBqCzjgZ/jgaDjga/jgosNCivjgojjgZfjgaAs44Gf44GL44GKDQor44KE44G+44GgLOOBleOBqOOCiw0KK+OChOOBvuOBiuOBiyzjgojjgZfjgajjgoINCivjgojjgZPjgoTjgb4s44G+44GV44Gy44GVDQor44KE44G+44GV44GNLOOBruOCiuOBig0KK+OChOOBvuOCguOBqCzjgYvjgaTjgbLjgZMNCivjgoTjgb7jgYvjgo8s44G+44GV44KI44GXDQor44KE44GG44GhLOOBn+OBoOOCiOOBlw0KK+OCiOOBl+OBr+OCiSzjgYvjgaTjgZgNCivjgojjgZPjgb/jgZ4s44GX44GS44KLDQor44KE44G+44KC44GoLOOBl+OCheOBhuOBnuOBhg0KK+OChOOBvuOCguOBqCzjgabjgovjgYoNCivjgoTjgb7jgoLjgags44GI44GE44GE44Gh44KN44GGDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OCiOOBl+OBoCzjgbXjgb/jgbLjgo0NCivjgoTjgZnjgYQs44G/44Gu44KLDQor44KE44G+44GQ44GhLOOBl+OBkuOCiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jgokNCivjgojjgZPjgZ8s44GI44GE44GE44GhDQor44KI44GX44GgLOOChuOBn+OBiw0KK+OCiOOBk+OChOOBvizjgbLjgafjgY0NCivjgoTjgZnjgYQs44GL44Ga44KC44GoDQor44KE44G+44GV44GNLOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBiuOBiyzjga7jgbbjgYoNCivjgojjgZfjgaAs44GX44KF44KT44KN44GPDQor44KE44G+44GgLOOBi+OBpOOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgojjgYbjgZgNCivjgojjgZfjgaAs44Gb44GE44Ge44GGDQor44KE44G+44GW44GNLOOBm+OBhOOBl+OCjeOBhg0KK+OChOOBvuOBrSzjgarjgYrjgZgNCivjgobjgZ/jgass44GZ44GZ44KADQor44KI44Gt44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OCiOOBl+OBrizjgaDjgYTjgZnjgZENCivjgojjgZfjgaAs44Gf44GR44GKDQor44KI44GX44KC44KKLOOBsuOBleOBqOOCiA0KK+OCiOOBl+OCj+OCiSzjgZ/jgZHjgZcNCivjgoTjgb7jgaAs44Go44GX44GNDQor44KI44GX44GgLOOBqOOBl+OBi+OBmg0KK+OCiOOBl+OBoCzjgoDjgaTjgYoNCivjgoTjgb7jgoLjgags44KC44KK44Gy44GTDQor44GT44GY44G+LOOBj+OBq+OBi+OBpA0KK+OBiuOBrizjgZfjgZLjgYoNCivjgb7jgYjjgYvjgo8s44GT44GG44Gf44KN44GGDQor44GT44KT44GuLOOBruOBtuOChuOBjQ0KK+OBvuOBjeOBmyzjgY3jgojjgZcNCivjga7jgoDjgoks44G+44GV44Gf44GLDQor44KE44GZ44Gv44KJLOOBvuOBleOBsuOBkw0KK+OBquOBjOOBl+OBvizjgYLjgaTjgojjgZcNCivjgY3jgZ/jga/jgZcs44G+44GV44GKDQor44Gk44KLLOOBjeOCiOOBv+OBoQ0KK+OBpOOBj+OBoCzjgb/jgaHjgYoNCivjgabjgonjgYbjgaEs44Gf44GR44GXDQor44KE44G+44GgLOOBleOBqOOCiw0KK+OBm+OCk+OBsCzjgZnjgZnjgoANCivjgZXjgYjjgY0s44Gu44KK44GKDQor44GK44GL44GgLOOBl+OCh+OBhuOBhOOBoQ0KK+OBv+OChOOBhuOBoSzjgbLjgZXjgYoNCivjgZPjgpPjgaks44Go44GX44GKDQor44G144GN44GC44GSLOOChOOBmeOBig0KK+OBhOOBl+OBi+OCjyzjgaHjgojjgZ/jgZENCivjgYTjgo/jgoLjgags44G+44GV44GKDQor44GP44G8LOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBn+OBquOBiyzjgbLjgo3jgYvjgaQNCivjgo/jgaAs44Gu44KK44GKDQor44GE44KP44GKLOOBpOOBreOBruOCig0KK+OBj+OBvuOBjOOBhCzjgZ/jgYvjgbLjgo0NCivjgZnjgZrjgY0s44Gy44KN44G144G/DQor44Gf44GL44KA44KJLOOBsuOCjeOBlw0KK+OBq+OBl+OBhuOCiSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgb/jgaTjgZgs44G+44GV44GXDQor44Gf44GN44GN44GfLOOBguOBjeOCiQ0KK+OBiuOBhuOBoSzjgZHjgpPjgZgNCivjgZPjgb4s44GC44GN44GKDQor44G+44GZ44GgLOOBkeOCk+OBmA0KK+OBi+OBqOOBhizjgajjgZfjgo3jgYYNCivjgYTjgYTjgZrjgYss44GL44Ga44Gy44GTDQor44G+44KL44KE44G+LOOBruOBtuOBguOBjQ0KK+OBqOOBl+OBn+OBqyzjgajjgYrjgosNCivjga/jgarjgbbjgaEs44G+44GV44Gy44KNDQor44GE44G+44GELOOBvuOBleOBnuOBhg0KK+OBiuOBi+OBsuOCjSzjgaTjga3jgYoNCivjgY3jgoDjgoks44Go44GX44Gy44GTDQor44Gf44GY44G+LOOBvuOBleOBr+OCiw0KK+OBi+OCk+OBoCzjgaTjgonjgobjgY0NCivjganjgYQs44GK44GV44KADQor44GC44KJ44GM44GNLOOChOOBmeOBruOBtg0KK+OBjeOCheOBhuOBneOBmOOCkyzjgZHjgpPjgZnjgZENCivjgZ/jgZHjgYbjgaEs44Gk44Gt44KIDQor44GG44Gs44G+LOOBsuOBp+OBquOCig0KK+OChOOBvuOBkOOBoSzjgojjgZfjgZ/jgYsNCivjgojjgoLjgoos44KC44Go44Gy44GVDQor44GX44G+44GW44GNLOOBj+OBq+OBsuOBkw0KK+OBqOOBj+OChCzjgajjgZfjgYoNCivjgoTjgb7jgaAs44GC44GN44KJDQor44G144GL44KELOOBl+OBkuOBig0KK+OBiOOBkOOBoSzjga/jgovjgYoNCivjgZXjga4s44Gy44Gn44Gu44G2DQor44Go44GP44GuLOOBguOBjeOCiQ0KK+OBiuOBiuOBqOOCgizjgZXjgaDjgoANCivjgZfjgonjgYrjgYzjgo8s44Gy44KN44GXDQor44Gy44KJ44GuLOOBn+OBhOOBjQ0KK+OBiuOBoCzjgobjgYbjgZgNCivjgZ/jgarjgYss44KK44KH44GG44Ge44GGDQor44G144GY44GfLOOBguOBjeOCiQ0KK+OBguOCieOBhCzjgYLjgY3jgbLjgacNCivjgbXjgZjjgZ8s44KG44GG44GYDQor44Gq44GL44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBq+OBlyzjgYvjgZrjgZfjgZINCivjga/jgoks44GC44GN44Gy44KNDQor44Gh44GwLOOBqOOBl+OBkw0KK+OBhOOBl+OCj+OBnyzjgajjgZfjgbLjgZUNCivjgoTjgZDjgaEs44Gf44GR44Gy44KNDQor44Gm44GY44G+LOOBi+OBmuOBig0KK+OBn+OBpOOBnyzjgZfjgZLjgosNCivjgY/jgZXjgYss44Gf44GR44GXDQor44G144KL44GfLOOBn+OBkeOBr+OCiw0KK+OBlOOBqOOBhizjgb7jgZXjga7jgbYNCivjgYrjgaDjgY7jgoos44Gf44Gg44GXDQor44GP44G+44GM44GELOOBn+OBkeOCiw0KK+OCgOOCieOBi+OBvyzjgb/jgZrjgbsNCivjgb/jgoDjgoks44G+44GV44GKDQor44KI44GT44GELOOBj+OBq+OBsuOBkw0KK+OBhOOBquOBkizjgajjgoLjgobjgY0NCivjgYLjgoHjgb/jgoQs44G/44Gk44GKDQor44GE44Gu44GG44GILOOBleOBoOOBig0KK+OBrOOBvuOBnyzjgZjjgpPjgYTjgaENCivjgZXjgYvjgoLjgags44GU44G444GEDQor44Gy44KJ44G+44GkLOOBleOBoOOBig0KK+OBquOCiuOBnyzjgYvjgYrjgosNCivjgaTjga3jgb8s44GE44Gh44KN44GGDQor44Gf44GL44GX44G+LOOBteOBleOBsuOBkw0KK+OBv+OBmSzjgYvjgZrjgb8NCivjgZXjgY3jgoTjgb4s44KI44GX44Gy44GTDQor44G144GY44KP44KJLOOBn+OBoOOBlw0KK+OBqOOBv+OBnyzjgb7jgZXjgbLjgo0NCivjgaTjgarjgo/jgY0s44G/44Gt44GKDQor44Gv44Gb44GM44KPLOOBn+OBkeOBlw0KK+OBteOBj+OBluOCjyzjgobjgYbjgZ7jgYYNCivjgZTjgYjjgZEs44GC44GN44KJDQor44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBiOOBsOOBqCzjgZHjgYTjgZMNCivjgZPjgbDjgoTjgZcs44GX44KT44GE44Gh44KN44GGDQor44Gy44KJ44Gk44GLLOOBjeOCiOOBlw0KK+OBleOBqOOBhizjga7jgbbjgYoNCivjgYTjga7jgYbjgYgs44GC44GN44KJDQor44Gv44GZ44Gs44G+LOOBvuOBleOBig0KK+OBteOCi+OBr+OBnyzjgYLjgZXjgZMNCivjgYbjgYjjga4s44GC44Gk44GXDQor44Gf44GR44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBj+OBq+OBn+OBkSzjgojjgZfjgYoNCivjgbLjgonjgZ8s44KG44GG44GTDQor44Gv44Gb44GM44KPLOOBkuOCkw0KK+OBteOBj+OBr+OCiSzjgYLjgaTjgZcNCivjgbXjgarjgZDjgaEs44Go44GK44KLDQor44GC44G+44GuLOOBruOCiuOBkw0KK+OBiuOBiuOBrizjgb/jgZrjga7jgooNCivjgZnjgo8s44Gu44KK44GTDQor44Gu44GM44G/LOOBv+OBiw0KK+OBhuOCgeOBrizjgoTjgZnjgobjgY0NCivjgYTjgZHjga4s44KG44GG44GTDQor44Gq44GL44GY44G+LOOBr+OBquOBkw0KK+OBhOOBl+OBhCzjgY3jgofjgYbjgZMNCivjgZXjgYTjgajjgYYs44Go44KC44GTDQor44Gf44Gq44GLLOOBi+OBmuOChuOBjQ0KK+OBn+OBpuOBhOOBlyzjgajjgZfjgYvjgZoNCivjgZnjgZrjgY0s44KI44GX44Gy44GTDQor44GN44Gu44GX44GfLOOBsuOBi+OCiw0KK+OBiuOBiuOBleOCjyzjgojjgZfjgbLjgo0NCivjgYTjgacs44GV44GN44GTDQor44GK44GM44KPLOOBl+OBuw0KK+OBiOOBruOCguOBqCzjgo/jgY3jgZMNCivjgYrjgZbjgo8s44G/44Ga44G7DQor44Gv44Gf44GR44KE44G+LOOBqOOCguOBsuOCjQ0KK+OBhOOBhOOBoCzjgb/jgaTjgYLjgY0NCivjgZfjga7jgZbjgY0s44GY44KF44KT44GE44GhDQor44GK44GL44GgLOOCiuOBiOOBkw0KK+OBn+OBi+OBvizjgb7jgZXjgZcNCivjgoTjgY4s44Gy44KN44KG44GNDQor44GV44GL44GELOOBvuOBleOCiA0KK+OBl+OBv+OBmizjgZPjgYbjgZgNCivjgbvjgorjgYvjgo8s44KI44GG44GTDQor44Gq44GM44GKLOOBk+OBhuOBuOOBhA0KK+OBsuOCieOBhOOBlyzjgb7jgooNCivjgZXjgYzjgo8s44Gf44KC44GkDQor44Gv44KJ44GgLOOBvuOBleOBvw0KK+OBn+OBi+OBr+OBlyzjgorjgoXjgYbjgYTjgaENCivjgZ/jgaEs44G+44GV44KIDQor44Gy44GILOOBjeOBv+OBig0KK+OBn+OBoCzjgb/jgarjgZMNCivjgojjgZfjgoLjgags44Gy44KN44GTDQor44KC44Gh44Ga44GNLOOBoeOBsuOCjQ0KK+OBn+OBquOBiyzjgZPjgYbjgZgNCivjgZ/jgZDjgaEs44G+44KG44G/DQor44GV44Go44GGLOOBhOOBj+OBig0KK+OBleOBi+OBl+OBnyzjgobjgY3jgYgNCivjgYvjgo/jgZfjgb4s44G+44KG44G/DQor44G744KK44GQ44GhLOOBi+OBiuOCig0KK+OBteOBj+OBvizjgZnjgb/jgZ/jgYsNCivjgYvjgo/jgZ/jgass44GC44GN44KJDQor44GY44Gz44GNLOOBiuOBleOCgA0KK+OBleOBhOOBqOOBhizjgb/jgaTjgosNCivjgZfjgYrjgaQs44GE44GV44GKDQor44Go44Gw44GfLOOBruOCiuOBi+OBmg0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgZMNCivjgYrjgbXjgaEs44Gy44KN44G/44GhDQor44GX44Gu44Gv44KJLOOBruOBtuOBig0KK+OChOOBvuOBi+OCjyzjgYvjgZrjgZ/jgaANCivjgZ/jgoDjgoks44Go44GX44GKDQor44Gv44Gf44GR44KE44G+LOOBn+OBi+OBkw0KK+OBn+OBquOBiyzjgbLjgYvjgosNCivjgYvjgarjgZbjgo8s44Gy44Gn44GC44GNDQor44Gf44GL44Gv44GXLOOBiOOCiuOBkw0KK+OBteOBmOOCgOOCiSzjgb/jgarjgZMNCivjgarjgYzjgZfjgb4s44KI44GX44KG44GNDQor44GN44Gu44GX44GfLOOBqOOBjeOBkw0KK+OBk+OCk+OBqSzjgb7jgb8NCivjgYLjgpPjgbks44G+44Gq44G/DQor44GV44GE44Go44GGLOOBhOOBmuOBvw0KK+OBguOBleOBoCzjgb/jgY0NCivjgY3jga7jgZfjgZ8s44G144G/44GIDQor44GL44Gp44KELOOBguOBjeOBkw0KK+OBhuOBiOOBoCzjgajjgYrjgosNCivjgZXjgYTjgajjgYYs44KC44GrDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBluOBjSzjgZfjgoLjgpMNCivjgYrjgZbjgo8s44Gm44KL44Gy44GVDQor44Gv44KE44GXLOOBiuOBleOCgA0KK+OChOOBjOOCjyzjgb/jgaHjgYoNCivjgZ/jgYvjga/jgZcs44Gf44G/44GKDQor44Go44G/44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBguOBoOOBoSzjgobjgYbjgZ7jgYYNCivjgYLjgYvjgYTjgo8s44GX44KH44GG44GZ44GRDQor44GL44GM44KELOOChuOBjeOBruOBtg0KK+OBguOCieOBhCzjgZXjgYrjgooNCivjgYrjgZfjgY3jgoos44Gf44GL44GXDQor44KE44G+44KA44KJLOOBiOOBhOOBmA0KK+OBn+OBi+OChOOBvizjgajjgZfjgobjgY0NCivjgojjgZPjgoTjgb4s44GK44GV44KADQor44Gw44KTLOOBpOOBkOOBig0KK+OBhOOBmuOBvyzjgojjgZfjga7jgooNCivjgb/jgZrjga4s44Gf44Gg44GKDQor44G244KT44KELOOBv+OBruOCiw0KK+OBpuOCieOBiuOBiyzjgZfjgofjgYbjgZgNCivjgb/jgoTjgZfjgZ8s44G/44Gu44KLDQor44GC44GV44G+LOOBkeOBhOOBkw0KK+OBleOBleOBjSzjgabjgaTjgYoNCivjgavjgZfjgYos44KI44KK44GoDQor44G144KL44KELOOBpuOBpOOBig0KK+OBhOOBvuOBoCzjgbLjgafjgobjgY0NCivjgYTjgZfjga/jgoks44GE44GP44GIDQor44Gv44GX44KC44GoLOOBv+OBjeOBig0KK+OBvuOCi+OChOOBvizjgajjgoLjgobjgY0NCivjgYvjgZgs44GL44Ga44Gf44GLDQor44GL44Gt44GTLOOBr+OBquOBkw0KK+OBquOBi+OBoCzjga7jgorjgbLjgagNCivjgaHjgZbjgo8s44Gq44G7DQor44GV44KPLOOBguOBleOBkw0KK+OBqOOBjOOCgSzjgb/jgo/jgZMNCivjgojjgZfjgaAs44GS44KTDQor44GK44GK44GuLOOBsuOCjeOBkw0KK+OChOOBkyzjgb7jgZXjgbLjgZMNCivjgYTjgZfjgYvjgo8s44GC44GN44Gu44KKDQor44GT44Go44GgLOOBsuOCjeOBkw0KK+OBleOBjOOCjyzjgYvjgZrjgb4NCivjga7jgZDjgaEs44GL44Ga44G+44GVDQor44Gn44KT44G8LOOBsuOCjeOBteOBvw0KK+OBr+OCi+OBjSzjgYLjgY3jgbLjgZMNCivjgYTjga0s44GX44KH44GG44GI44GEDQor44GK44GK44GuLOOBj+OBq+OBig0KK+OBi+OBreOBoCzjgZ/jgaTjgbLjgZMNCivjga7jgZDjgaEs44GC44GN44KJDQor44GK44GK44GwLOOBsuOCjeOBv+OBpA0KK+OBiuOBnyzjgajjgY/jgYTjgaHjgo3jgYYNCivjgZfjgoLjgb7jgY0s44KE44GZ44GKDQor44KP44Gf44Gy44GNLOOChuOBhuOBkw0KK+OChOOBvuOCguOBqCzjgb7jgooNCivjgbXjgZjjgoDjgoks44G+44KK44GTDQor44Gd44GG44G/44KELOOBkeOCk+OBmA0KK+OBl+OBvizjgY/jgb8NCivjgZXjgZXjgY0s44Gf44GL44KG44GNDQor44GL44GM44KPLOOCjOOBhOOBkw0KK+OBn+OBkeOBhuOBoSzjgY/jgb/jgZMNCivjgZXjgYTjgY0s44G/44KI44GTDQor44GE44Go44GGLOOBruOCiuOBkw0KK+OBjeOCgOOCiSzjgojjgYbjgZgNCivjgZ/jgbDjgZ8s44Gf44GL44Gy44KNDQor44GP44KBLOOBqOOCiOOBguOBjQ0KK+OBn+OBi+OBoCzjgb7jgorjgZMNCivjgZ/jgoDjgoks44G/44GIDQor44Gf44GL44G+44GkLOOBvuOBjeOBkw0KK+OBl+OCjeOBl+OBnyzjgZfjgoXjgYbjgZXjgY8NCivjgYvjgajjgYYs44Go44KC44KG44GNDQor44GC44KP44GELOOBqOOBl+OBruOCig0KK+OBu+OBleOBiyzjga7jgorjgZMNCivjgZ/jgarjgYss44KL44G/DQor44G/44Gy44KJLOOBl+OCheOBhuOBleOBjw0KK+OBleOBqOOBhizjgZHjgYTjgZMNCivjgYrjgZbjgo8s44KG44GN44GKDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBv+OChOOBluOBjSzjgorjgoXjgYbjgZ7jgYYNCivjgoLjgorjgZ/jgass44KG44GL44KKDQor44GE44KP44GQ44KNLOOBpOOBqOOCgA0KK+OBhuOBiOOBvizjgZfjgofjgYbjgZMNCivjgbXjgYvjgZ8s44Gh44GLDQor44Gy44KN44GbLOOBguOBjeOBkw0KK+OBiuOBi+OBoCzjgbLjgo3jgb8NCivjgYvjgajjgYYs44GC44KK44GLDQor44G+44GNLOOBleOChuOCig0KK+OBruOBoCzjgajjgoLjgYvjgZoNCivjgY/jgbws44GN44KH44GG44GTDQor44Gr44GX44GN44GK44KKLOOBpOOBjuOBig0KK+OChOOBrizjgZjjgoXjgpPjgZMNCivjgYvjgo/jgoDjgZPjgYYs44Gq44GK44GNDQor44KE44GZ44KA44KJLOOBv+OCiOOBkw0KK+OBqOOBq+OBlyzjgajjgoLjgZMNCivjgoTjgb7jgoLjgags44Gy44GL44KLDQor44GX44KC44GgLOOBoOOBhOOBmeOBkQ0KK+OBiuOBiuOBn+OBqyzjgY/jgavjgYoNCivjgYrjga7jgZXjgags44Gv44KTDQor44GL44Gq44GW44KPLOOBsuOCjeOBguOBjQ0KK+OBiuOBi+OCguOBqCzjgb/jgo/jgZMNCivjgZXjgYTjgajjgYYs44G/44Gq44GTDQor44GL44GX44KP44Gw44KJLOOBruOBtuOBkw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjga7jgbYNCivjgZXjgYTjgajjgYYs44G+44Gq44G2DQor44G+44Gk44GgLOOCiOOBl+OBguOBjQ0KK+OBn+OBoeOBluOBjSzjgo/jgYvjgZMNCivjgZPjgpPjgaks44Go44KC44GTDQor44GX44G/44GaLOOBoOOBhOOBmeOBkQ0KK+OBquOBjOOBiuOBiyzjgYvjgYrjgooNCivjgarjgYvjgYzjgo8s44GC44Gk44GXDQor44Gf44GL44GoLOOBsuOCjeOChuOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgZcNCivjgarjgovjgZss44GN44KI44G/DQor44GK44GQ44G+LOOBi+OBiA0KK+OBn+OBi+OBr+OBlyzjgb/jgarjgYgNCivjgY3jgY/jgaEs44Gb44GE44GTDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBiOOCk+OBqSzjgb7jgorjgZMNCivjgZ/jgoDjgoks44Go44KC44Gu44KKDQor44KE44G+44KC44GoLOOBk+OBhuOBmA0KK+OBguOBleOBhCzjgojjgZfjgbLjgo0NCivjgoLjgoos44GK44GV44KADQor44Gf44GL44GX44KNLOOCgeOBkOOBvw0KK+OBiuOBiyzjgZXjgYTjgYsNCivjgYvjgajjgYYs44Go44GX44KEDQor44GE44GQ44GhLOOBleOBoeOBkw0KK+OBn+OBquOBiyzjgY3jgofjgYbjgZMNCivjgojjgZfjgaAs44GT44GG44GYDQor44GC44GN44KC44GoLOOBvuOBqeOBiw0KK+OBq+OBl+OBhCzjgZjjgoXjgpPjgZgNCivjgo/jgZfjgYrjgYss44GT44GG44GYDQor44GE44Gs44G+44KLLOOBsuOCjeOBmA0KK+OBu+OBlyzjgZfjgZrjgYsNCivjgojjga3jgoTjgb4s44G+44GV44Gu44G2DQor44GP44KN44G5LOOChuOBhuOBhOOBoQ0KK+OBhOOBl+OBhCzjgbLjgZXjgYgNCivjgbLjgZDjgaEs44GY44KF44KT44GE44GhDQor44Gq44GL44GgLOOBn+OBi+OBr+OCiw0KK+OBiuOBruOBp+OCiSzjgarjgYrjgZMNCivjgajjgaAs44Go44GX44KG44GNDQor44G+44GI44GgLOOBsuOCjeOBkw0KK+OBquOBjOOBhCzjgobjgY3jgZMNCivjgZPjgazjgZ8s44Gy44GV44KI44GXDQor44GX44Gw44GV44GNLOOBi+OBpOOBqOOBlw0KK+OBhuOBi+OBhCzjgYLjgY3jgYsNCivjgZnjgZrjgY0s44Gh44Gv44KLDQor44Gy44KJ44GNLOOBruOBtuOBkw0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZMNCivjgoTjgb7jgaAs44G+44GV44G/DQor44GL44Gp44GP44KJLOOBvuOBleOBlw0KK+OBn+OBi+OBleOBjSzjgZPjgYbjgZgNCivjgarjgYvjgZ8s44GN44KI44G/DQor44Gf44Gr44GL44KPLOOBu+OBmuOBiA0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjgoQNCivjgb/jgarjgb8s44GC44KE44G/DQor44GK44GK44Gs44GNLOOBv+OBruOCiw0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44Gf44GL44GKDQor44Gy44GgLOOBiuOBleOCgA0KK+OBleOBj+OBvizjgZfjgb4NCivjgavjgYjjgaAs44Gf44GL44GXDQor44KI44GT44GELOOCjOOBvw0KK+OCiOOBreOBj+OCiSzjgZ/jgZHjgYoNCivjgbDjgpPjgbAs44KK44GIDQor44KE44G+44GgLOOBguOBjeOBsuOBpw0KK+OBhOOBvuOCgOOCiSzjgovjgorjgZMNCivjgYTjgZHjgaAs44Gh44GC44GNDQor44Gq44GL44KA44KJLOOBv+OBquOBkw0KK+OBmeOBqeOBhizjgorjgYgNCivjgarjgYvjgZ3jga0s44GL44GK44KKDQor44GK44GK44GV44KPLOOBoeOBi+OBkw0KK+OBleOBqOOBhizjgZfjgaHjgo3jgYYNCivjgYjjgYTjganjgoEs44KG44GNDQor44GE44GM44KJ44GXLOOBv+OBiw0KK+OBn+OChCzjgZ/jgYvjgZMNCivjgYrjgYrjgbLjgoks44KI44GX44GTDQor44GV44GL44KC44GoLOOBleOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgZPjgYbjgZgNCivjgYvjgajjgYYs44G/44Gq44GTDQor44KI44GX44GELOOBn+OBoOOBsuOCjQ0KK+OBhOOCj+OChCzjgojjgYbjgZMNCivjgY3jga7jgZfjgZ8s44GN44KH44GG44GTDQor44GZ44GO44GV44KPLOOBi+OBmuOCiA0KK+OCj+OBoCzjgb/jgojjgZMNCivjgb/jgoTjgZfjgZ8s44GI44G/44GTDQor44GG44GI44GuLOOBruOBtuOBkw0KK+OBiuOBiuOBn+OBjSzjgobjgb/jgZMNCivjgYTjgZfjgbDjgZcs44GN44KH44GG44GTDQor44GE44KP44GX44GfLOOBvuOBleOBig0KK+OBhOOBl+OBi+OCjyzjgbLjgafjgbLjgZMNCivjgY3jgZcs44Gf44Gm44GKDQor44G+44KL44KE44G+LOOBsuOBleOBig0KK+OBu+OCk+OBvizjgZ/jgYvjgYoNCivjgY/jgZnjgoLjgags44GE44GV44GKDQor44GE44G+44GuLOOBjeOBv+OBsuOBpw0KK+OBiuOBiuOBq+OBlyzjgZvjgYTjgZ7jgYYNCivjgoTjgb7jgaAs44GX44KH44GGDQor44G144GY44GK44GLLOOBqOOCieOBig0KK+OBr+OBquOBoCzjgoTjgZnjgYvjgZoNCivjgZfjgbDjgZ8s44GC44GV44GKDQor44G/44KE44GX44GfLOOChuOBjeOBig0KK+OBi+OBleOBr+OCiSzjgb7jgZXjgYoNCivjgYrjgYrjgoTjgZEs44Gv44KL44GKDQor44GE44G+44GELOOBj+OBq+OBig0KK+OBk+OBm+OBjSzjgb7jgorjgZMNCivjgYrjgYrjgZ8s44Gu44G844KLDQor44G+44Gh44GELOOBi+OBmuOBsuOCjQ0KK+OBjeOBj+OBoSzjgZvjgaTjgYoNCivjgbLjgZDjgaEs44GL44Ga44GIDQor44G/44Gq44KI44GXLOOBmOOCheOCk+OBmA0KK+OBmeOBmuOBjSzjgbLjgo3jgYvjgZoNCivjgarjgpPjgbAs44Gq44GK44GNDQor44GK44GK44Gr44GXLOOBoOOBhOOBleOBjw0KK+OBr+OChOOBl+OBoCzjgZ/jgYvjgajjgZcNCivjgZ/jgarjgYss44Gy44Gn44Gy44KNDQor44GL44Gt44GTLOOBi+OBmuOBruOCig0KK+OBpOOBoeOChCzjgajjgoLjgobjgY0NCivjgYTjgYTjgaAs44GI44Gk44GKDQor44G144KL44KELOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgZANCivjga/jgovjga/jgoks44Gf44GL44GXDQor44G744KK44GILOOCiOOCiuOBl+OBkg0KK+OBiuOBiuOBnyzjgZ/jgZHjgZcNCivjgZnjgZrjgY0s44KE44GZ44Gk44GQDQor44GK44GoLOOBvuOBleOBqOOBlw0KK+OBquOBi+OBjOOCjyzjgb7jgobjgb8NCivjgYvjgo/jgZfjgb4s44KI44GG44G444GEDQor44Gm44KJ44KC44GoLOOChuOBhuOBmOOCjeOBhg0KK+OBjeOCgOOCiSzjgYLjgY3jgokNCivjgojjganjgarjgo8s44KG44GL44KKDQor44GT44Gg44GE44KJLOOBsuOBp+OBguOBjQ0KK+OBi+OBj+OCieOBhCzjgojjgYbjgZMNCivjgYrjgZDjgoos44Gy44KN44KI44GXDQor44Gv44GfLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOCiizjgYvjgZrjgYoNCivjgojjgZfjgYrjgYss44Gb44GE44GYDQor44GX44GS44GfLOOBv+OBoeOBguOBjQ0KK+OBi+OCj+OBkOOBoSzjgajjgoLjgbLjgo0NCivjgYvjga3jgZMs44G+44GV44GKDQor44GC44GV44GyLOOBn+OBoOOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgYLjgorjgoTjgb4s44Gk44GQ44GKDQor44Gk44GY44GfLOOBn+OBpOOBig0KK+OCiOOBl+OBr+OBlyzjgbLjgafjgYoNCivjgb/jgZfjgb4s44Gb44GE44GXDQor44GV44Go44GGLOOBi+OBpOOBmA0KK+OBi+OBreOBvuOCiyzjgYjjgaTjgbLjgo0NCivjgYvjga3jgZMs44KE44GZ44GXDQor44GI44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBv+OBpOOBj+OBoSzjgZjjgoXjgpMNCivjgoLjgoos44GN44G/44GKDQor44GK44GhLOOBm+OBhOOBhOOBoQ0KK+OBvuOBiOOBi+OCjyzjgYvjgZrjgYoNCivjgZ/jgarjgYss44G+44GV44Gu44KKDQor44GK44KK44GM44GVLOOBvuOBpOOBruOCig0KK+OBk+OBm+OBjSzjgYvjgYrjgosNCivjgbLjgonjgoTjgb4s44Gf44Gg44GXDQor44GT44G844KKLOOBiOOBpOOCiOOBlw0KK+OBquOBi+OBhuOBiCzjgZ/jgaTjgYoNCivjgZnjgajjgYYs44G+44GV44GKDQor44GU44Go44GGLOOBjeOCiOOBsuOBkw0KK+OBpOOBi+OCguOBqCzjgbLjgo3jgb/jgaENCivjgYjjgbPjga/jgoks44KI44GX44GC44GNDQor44KC44KK44GuLOOBsuOBp+OBruOCig0KK+OBmeOBmuOBjSzjgb7jgZXjgYLjgY0NCivjgojjgZfjgaAs44G+44GT44GoDQor44GE44G+44GELOOBvuOBleOBjQ0KK+OBsuOBrizjgoDjga3jgZ/jgYsNCivjgojjgZfjgaAs44G/44GqDQor44GK44Gr44Ga44GLLOOBmeOBv+OBn+OBoA0KK+OBn+OBi+OBjizjgb7jgZXjgbLjgZMNCivjgYrjgoDjgoks44GL44Gk44Gy44GoDQor44GG44Gh44KE44G+LOOBiOOBpOOBkw0KK+OBj+OCjeOBi+OCjyzjgojjgZfjga7jgbYNCivjgoTjgb7jgZfjgZ8s44Gf44GN44GKDQor44Gr44GX44GgLOOBsuOBleOBiA0KK+OBi+OBl+OCj+OBjizjgbLjgo3jgZcNCivjgYvjga3jgZMs44KG44GN44GTDQor44GP44G+44GgLOOBv+OBjeOBig0KK+OBk+OBmOOBvizjgarjgYrjgZrjgb8NCivjgZfjgonjgYQs44Gm44Gk44Gy44GTDQor44G144KL44GL44KPLOOCiuOBiA0KK+OCgOOBl+OBhizjgZ/jgaDjgYLjgY0NCivjgojjgZfjga4s44Go44GX44GKDQor44GZ44GO44GG44KJLOOBm+OBhOOBhOOBoQ0KK+OBteOBmOOBleOCjyzjgb7jgooNCivjgZXjgajjgYYs44GC44GN44Gy44KNDQor44GI44GW44GNLOOBn+OBi+OChuOBjQ0KK+OCgOOCieOBi+OBvyzjgZ/jgYvjgYoNCivjgavjgo/jgoTjgb4s44G+44Gk44KC44KKDQor44KE44GZ44GuLOOBv+OBiw0KK+OBqeOBhuOBoCzjgajjgoLjgbLjgZMNCivjgYvjgZjjgYQs44KC44Gq44G/DQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBvuOBpOOBquOCiizjgYTjgZXjgYoNCivjgYrjgYrjgbDjgoTjgZcs44GT44GG44GN44GhDQor44Gf44GL44Gv44GXLOOBn+OBj+OChA0KK+OBvuOBpOOCgOOCiSzjgoTjgZnjgb7jgZUNCivjgZPjgoLjgoos44G+44GN44GTDQor44Gu44Ge44GILOOBi+OBmuOBiA0KK+OBiuOBrizjgY3jgojjgb8NCivjgYvjgpPjga4s44GT44Ga44GIDQor44GV44Go44GGLOOBkeOBhOOBkw0KK+OBruOBquOBiyzjgo/jgYvjgZMNCivjgYvjgo/jga/jgoks44KG44G/DQor44Gq44GL44KA44KJLOOBvuOChuOBvw0KK+OChOOBvuOBl+OBnyzjgajjgZfjgYvjgZoNCivjgZPjgYbjgYTjgaEs44KC44KC44GIDQor44GE44Gf44KELOOBsuOBp+OBig0KK+OChOOBvizjgbXjgb/jgZMNCivjgoTjgb7jgoLjgags44Gd44GG44GE44Gh44KN44GGDQor44GP44KJ44GfLOOChOOBmeOBkw0KK+OBi+OCj+OBmizjgYTjgZ/jgosNCivjgb/jgYvjgb8s44GT44GG44GE44GhDQor44Gf44GN44GM44KPLOOCiOOBl+OBi+OBmg0KK+OBn+OBquOBiyzjgbLjgo3jgYLjgY0NCivjgb/jgoTjgZ8s44Gf44GL44Gm44KLClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMzg1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2Vfay50eHQKQEAgLTAsMCArMSwyMjc0OSBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivjgqLjgq3jg6Ljg4gs44Ok44K544KqDQor44Ki44Kt44OQLOOCt+OCsuODqw0KK+OCouODqeOCpCzjg5Ljg4fjgqLjgq0NCivjgqLjg6njgqQs44Kx44Oz44Kk44OBDQor44Ki44Kr44Ks44OvLOODiOOCt+OCqg0KK+OCouODqeOCrSzjgrvjgqTjgrQNCivjgqLjgqTjgqvjg68s44OO44Oq44KqDQor44Ki44Kt44OOLOODpuOCreOCqg0KK+OCouOCreODpOODnizjg4Tjg6jjgrcNCivjgqLjgrXjgqQs44OS44OI44K3DQor44Ki44OZLOODnuODouODqw0KK+OCouODquOCrCzjg4Tjg4jjg6ANCivjgqLjgq3jgr8s44Oo44K344OG44OrDQor44Ki44Kr44OE44KrLOOCq+OCuuODkuOCsw0KK+OCouODqeOCpCzjg57jgrXjg4/jg6sNCivjgqLjgrXjg4/jg6ks44Kr44K644KqDQor44Ki44OE44OfLOODnuOCteOCouOCrQ0KK+OCouODr+ODpCzjg5Ljg4jjgrcNCivjgqLjgrXjgqvjg68s44OI44K344Ki44KtDQor44Ki44Kq44KtLOOCquOCteODoA0KK+OCouODr+OCuizjgqLjgq3jg6kNCivjgqLjgq3jgq/jgrUs44Oo44Km44K544KxDQor44Ki44Kq44Ok44KuLOODj+ODhOOCq+OCug0KK+OCouOCuOOCteODryzjgrfjg6XjgqbjgqTjg4ENCivjgqLjgqTjgr0s44Ok44K544K3DQor44Ki44Kq44K344OeLOODgeODqOOCq+OCug0KK+OCouODiOOCpizjg57jgrXjg5LjgrMNCivjgqLjgrXjg44s44Oo44K344OkDQor44Ki44Oq44KsLOOCveOCpuOCpOODgQ0KK+OCouOCquOCrSzjg6rjg6fjgqbjg5jjgqQNCivjgqLjgqTjgqvjg68s44Om44Kt44KqDQor44Ki44Kt44K/LOODnuOCteODkuODrQ0KK+OCouOCteODjizjg47jg6rjgqLjgq0NCivjgqLjgrXjg4gs44OS44OH44K3DQor44Ki44Op44KtLOODqOOCt+OCq+OCug0KK+OCouODs+ODieOCpizjg6TjgrnjgrcNCivjgqLjgrXjgqvjg68s44OS44Ot44K3DQor44Kk44Kk44OALOODnuOCs+ODiA0KK+OCpOODr+OCteODryzjg57jgrXjgq0NCivjgqTjgrfjgqvjg68s44Oe44K144KqDQor44Kk44OO44Km44KoLOODkuODreODkuODiA0KK+OCpOOCt+ODj+ODqSzjg6jjgrfjg47jg6oNCivjgqbjgqvjgrgs44K144OB44KzDQor44Km44Oh44K/44OLLOOCq+ODhOODkuOCsw0KK+OCquOCseOCv+ODiyzjgrHjg7PjgrgNCivjgqrjgqrjgrnjgq4s44Ki44Kt44OS44OtDQor44Kq44Kq44Kr44OvLOODn+OCreODkuOCsw0KK+OCq+ODiOOCpizjg57jgrXjg4jjgrcNCivjgqvjg6Is44Oe44K144Ki44KtDQor44Kv44Oe44Ks44KkLOODnuOCteOCtw0KK+OCs+ODs+ODiSzjgqLjgq3jg6kNCivjgrnjgq7jg6Ljg4gs44Kq44K144OgDQor44OP44Oe44K144KtLOODqOOCt+ODjuODqg0KK+ODgeODgCzjgrfjg6Xjg7PjgrgNCivjg4rjgqvjg6Djg6ks44Kx44Kk44K+44KmDQor44OK44Ks44K/LOODgeOCqOOCsw0KK+OCteODr+ODoOODqSzjgqvjg4HjgrMNCivjg4rjg6vjgqos44Oo44K344OO44OWDQor44OK44Oq44K/LOODpuODn+OCsw0KK+ODj+OCu+OCrOODryzjg5Ljg63jgrMNCivjg5Xjgrjjgr8s44Kx44Kk44KzDQor44OV44K444Ov44OpLOOCv+OCq+OCsw0KK+ODluODqOOCpizjg4bjg4TjgqoNCivjg5vjg6os44Kz44Km44K4DQor44Of44OK44Of44Og44OpLOODgeOCouOCrQ0KK+ODn+ODpOOCuOODnizjg4Hjg6jjg6oNCivjg6Tjg57jg4As44Oe44OqDQor44Ok44Oe44Kw44OBLOOCv+OCq+OCtw0KK+ODpOODiuOCruODj+ODqSzjg5/jg4njg6oNCivjg6jjgrfjg44s44K344Oz44Kk44OBDQor44OL44Kk44OALOOCr+ODi+ODkuOCsw0KK+OCquOCquOCpOODpOODnizjg6bjgqbjgrMNCivjgqvjg4rjgqzjg68s44Kk44OB44Ot44KmDQor44Kt44Og44OpLOODquOCqOOCsw0KK+ODhOOCq+OCtuOCrSzjg5/jg5sNCivjgqvjg6/jg4As44OK44Kq44KzDQor44Ki44K144Kr44OvLOODn+OCteOCsw0KK+OCt+ODouODhCzjg57jgrXjgqLjgq0NCivjgqrjgqss44K/44Kr44OS44OIDQor44Kq44Ks44OvLOOCs+OCueOCsQ0KK+OCv+OCpOODqSzjgrfjg6fjgqbjgqTjg4ENCivjgqTjgrfjg44s44Kt44Oo44OK44KsDQor44Kt44Of44K344OeLOOCouOCreODqQ0KK+OCteODiOOCpizjg4bjg4Tjg6QNCivjg6Tjg57jg4As44Kq44K144OgDQor44Kq44Kq44K/LOODiuOCquODn+ODgQ0KK+ODnuOCqOODgCzjg5Ljg4fjg4jjgrcNCivjgqvjgrbjg6njgrcs44Of44OE44OrDQor44K044OI44KmLOOCq+ODhOODjuODqg0KK+ODm+OCtyzjg57jg6Ljg6sNCivjgq/jg63jg4As44K344Oz44OkDQor44OE44Kr44Ov44KtLOODiOOCt+ODpA0KK+OCpOODiuOCrOOCrSzjg57jgrXjg5Ljg60NCivjgqTjg6/jg6Ljg4gs44K/44Oi44OEDQor44OE44Or44K/LOOCv+OCq+OCtw0KK+OCpOOCt+OCuOODnizjg6rjg6fjgqbjg5jjgqQNCivjg6Tjg57jg4rjgqss44OS44Ot44OI44K3DQor44Km44Ko44KtLOOCouOCreOCsw0KK+ODi+OCt+ODoOODqSzjgqLjg4TjgrMNCivjg6/jgqTjg4As44K/44OA44K3DQor44Oo44K344OALOODq+ODnw0KK+OCt+ODluODpCzjg6bjgr/jgqsNCivjgqLjg4jjgqYs44Oe44K144OO44OqDQor44Of44Ok44K/LOOCq+OCquODqw0KK+OCquOCquOCv+OCrSzjg4Tjgq7jgqoNCivjgq3jg6jjgqrjgqss44Oe44Kz44OIDQor44Kq44Kq44K/44OLLOOCv+OCq+OCtw0KK+ODi+OCt+ODr+OCrSzjg4rjgqrjg58NCivjg4vjgrfjg6Tjg54s44K/44Kr44K3DQor44Of44K344OeLOOCv+OCq+ODpuOCrQ0KK+OCq+ODiOOCpizjg5Ljg63jgrcNCivjgqTjg57jgqos44Of44K644ObDQor44Kq44K244KtLOOCs+OCpuOCuA0KK+OCu+OCreODpCzjg57jgrXjg6bjgq0NCivjg4Tjgq/jg4As44OO44OW44Om44KtDQor44Of44Oo44K3LOODjuODluODnuOCtQ0KK+ODqOOCt+ODnyzjgr/jgqvjg6bjgq0NCivjgrXjgrXjgqrjgqss44K/44Kr44K3DQor44Kq44K344OeLOODgeODj+ODqw0KK+OCr+ODnOOCvyzjg4HjgrrjgrMNCivjgrfjg5Djg6Tjg54s44K344Ol44Km44K+44KmDQor44Kq44Kq44Kv44OcLOODiOODiuODnw0KK+OCv+ODgeODjizjgrjjg6Xjg7MNCivjg6/jg4As44Of44OB44OoDQor44Oe44OE44K344K/LOODnuOCteODouODqg0KK+OCs+ODoOODqSzjg6Tjgrnjg5LjgrMNCivjg57jgq3jgrfjgr8s44Kx44Kk44KzDQor44Ki44Kr44KqLOODpOOCueODkuODrQ0KK+ODj+OCt+ODouODiCzjg5Ljg4jjgrcNCivjgqrjgqrjg44s44Kr44K644KqDQor44K744Kt44Oi44OILOODqOOCt+OCqg0KK+ODnuOCqOODgCzjg4Hjgqvjg6kNCivjg5/jg4Tjg5vjg6os44OK44Kq44KtDQor44Of44OK44Of44K+44OOLOODnuOCteOCrQ0KK+OCu+OCrOODryzjgqvjgqrjg6oNCivjgrnjgrrjgq0s44OI44Oo44K4DQor44Kt44K/44Ks44OvLOODqOOCt+OCv+OCqw0KK+ODqOOCt+ODpOOCuSzjgrjjg63jgqYNCivjg6Tjg57jg6Ljg4gs44Oe44OqDQor44Kr44OI44KmLOODkuODreOCtw0KK+OCq+ODr+OCq+ODnyzjg6jjgqYNCivjg57jgq3jg44s44OK44Kq44KtDQor44K544K644KtLOODnuOCteOCqg0KK+ODleODq+OCteODryzjgrXjg4jjgrcNCivjg4/jg6Tjgrcs44K4DQor44Kk44Oe44OL44K3LOODiOOCt+ODkuOCsw0KK+ODn+ODpOODouODiCzjg6bjgqsNCivjg57jgq0s44Kv44OL44Ki44KtDQor44Kz44Kk44OHLOOCteODmw0KK+ODr+OCv+ODiuODmSzjg57jgrXjgrMNCivjgqrjgqrjg4/jgrcs44OS44OI44K3DQor44Ki44Kr44KqLOOCouOCreOCqg0KK+OCouOCteOCpCzjgqvjgrrjgrMNCivjgqTjg57jgqQs44K/44Kr44K3DQor44Kt44OpLOODnuOCteODkuOCsw0KK+ODi+OCt+ODoOODqSzjg4bjg6vjgq0NCivjg6jjgrfjgqvjg68s44OI44K344Om44KtDQor44Of44OK44OfLOOCseODs+OCuA0KK+ODhOODq+OCvyzjg47jg6rjgqoNCivjg4rjgqvjg6Djg6ks44K444Ol44Oz44Kk44OBDQor44K/44OK44KrLOOCseODs+OCuA0KK+ODnuODhOOCpuODqSzjgr/jgrHjgrcNCivjgrnjgq7jgr8s44K4DQor44Kr44Ov44KkLOODiOOCt+OCqg0KK+OCs+OCr+ODnCzjgrXjg4Tjgq0NCivjg4Tjg4As44Oe44Kz44OIDQor44Of44Ok44K/44KxLOODiOOCt+OCv+OCqw0KK+OCr+ODreOCteODryzjg6jjgrfjgqvjgroNCivjgrnjg5/jg5Ljg6ks44Oe44K144OS44KzDQor44K/44Kr44KtLOODnuOCteOCqg0KK+OCpOOCt+ODiCzjgrPjgqbjgq0NCivjg6Tjg57jg4As44Oi44OI44Kr44K6DQor44OL44Kk44OELOODjuODluOCouOCrQ0KK+OCpOODr+ODoOODqSzjgqvjg7PjgrgNCivjgqvjg6/jg4rjg5ks44Oo44K344OS44OtDQor44OK44Ks44KkLOODkuODreODpuOCrQ0KK+ODpOODnuODjSzjg4HjgqLjgq0NCivjgqTjg57jgqQs44K/44Kr44Om44KtDQor44OK44Kr44KqLOOCpOOCteOCqg0KK+OCquOCt+OCreODqizjg5Xjg5/jg4/jg6sNCivjgqTjgrfjgqvjg68s44K444Ol44OzDQor44Kq44Kr44K444OeLOOCuOODpeODsw0KK+OCquOCquODi+OCtyzjg57jgrXjg4/jg6sNCivjgrnjgrrjgq0s44OG44OEDQor44Ok44Oe44OK44KrLOOCteODhOODnw0KK+OCv+ODi+OCsOODgSzjgqvjgrrjg5Ljg60NCivjgqvjg6/jg5ks44OI44Kt44KqDQor44Kz44Oz44OOLOODn+OCrQ0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjgr/jgqvjg6Tjg54s44K344Oz44Kk44OBDQor44Oi44Oq44Of44OBLOOCpOOCv+ODqw0KK+ODm+ODquOCq+ODryzjgqvjg4Tjg58NCivjg5Xjgq/jgqQs44K/44Oe44KzDQor44Kt44K/44Og44OpLOOCouOCreODqQ0KK+ODiuOCq+ODj+ODqSzjg5Ljg63jg58NCivjgqTjg4HjgqQs44OS44OH44OO44OqDQor44Kk44Ov44K1LOOCq+ODqOOCsw0KK+OCueOCuuOCrSzjgrfjg6Xjg7PjgrgNCivjg6jjg43jgr/jg4ss44Kr44OE44OV44OfDQor44K/44OOLOOCv+OCseOCtw0KK+OCt+ODkOOCvyzjg5Ljg4fjg6gNCivjgqTjg47jgqbjgqgs44Oe44K144OO44OqDQor44Kk44K344Kr44OvLOODiOOCt+OCqg0KK+OCreOCtyzjg57jgrXjg58NCivjgqLjg6/jgqgs44Ki44OE44K3DQor44K/44Kx44KqLOODqOOCt+OCouOCrQ0KK+OCreODjuOCt+OCvyzjgqvjgrrjg5LjgrMNCivjg4Tjgqvjg4As44OV44Of44Ki44KtDQor44Ki44Oq44OJ44OhLOODiOOCt+ODpuOCrQ0KK+OCreODg+OCq+ODryzjg4jjgrfjgqLjgq0NCivjgqrjgqzjgrXjg6/jg6ks44OS44K144Kr44K6DQor44OK44Ks44K7LOOCv+OCq+ODkuODrQ0KK+ODj+ODq+ODpOODnizjgqLjg4Tjg5LjgrMNCivjgqrjgros44Ok44K544KqDQor44Kz44K144KrLOODiOOCt+OCq+OCug0KK+OCt+ODqeOCteOCrSzjg4jjgqrjg6sNCivjgr/jg4rjg5ks44OE44OI44OgDQor44Kk44Kx44Ks44OfLOODhOODqOOCtw0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7PjgqTjg4ENCivjg57jg4Tjg5Djg6ks44OK44Kq44OIDQor44OK44Kr44Ks44OvLOODouODquODkuODrQ0KK+OCquOCrOODryzjgrvjgqTjgrgNCivjg6jjgrfjg4As44Oe44K144OO44OWDQor44Kk44KxLOOCteODgOODjuODlg0KK+OCv+ODi+OCsOODgSzjg57jgrXjg5/jg4ENCivjg57jgqjjg4As44OS44Ot44K3DQor44OS44Op44OOLOOCv+OCq+ODpuOCrQ0KK+OCt+ODn+OCuizjgq3jg5/jgrMNCivjg6Tjg57jg4As44Ki44Kt44OI44K3DQor44K/44OK44KrLOODkuODreOCouOCrQ0KK+OCs+ODnuODhOOCtuOCrSzjg57jg6Ljg6sNCivjgqvjg4jjgqYs44Oe44K144Kr44K6DQor44Kq44OvLOODjuODquOCsw0KK+OCpOODr+ODoOODqSzjg5Ljg63jgr/jg4ANCivjgqTjg6rjgqgs44Kr44K644Om44KtDQor44Ki44Kr44Ok44OeLOODnuOCteODpuOCrQ0KK+OCouOCreODouODiCzjg5Ljg63jgqLjgq0NCivjgqvjg5/jg6Djg6ks44Ki44Kt44OS44KzDQor44K544Of44K/LOOCq+OCquODqw0KK+ODj+ODnuOCteOCrSzjgqLjg4TjgrcNCivjg6Tjgrnjg4As44Oe44Oi44OrDQor44K/44Kx44Og44OpLOODn+OCreODpA0KK+ODoOODqeOCq+ODnyzjg4jjg5/jg4TjgrANCivjg4rjgqvjgrjjg54s44OS44K144OI44OiDQor44Oi44Oq44Oi44OILOOCs+OCpuOCuA0KK+OCu+OCreOCsOODgSzjgr/jgqvjg6bjgq0NCivjg4rjgqvjgrjjg54s44Oe44K144OS44KzDQor44Kt44Ks44OvLOODkuODreODkuOCtQ0KK+OCv+OCq+ODkuODqSzjgr/jgqvjgrcNCivjg6Ljg4Hjg4As44Ki44OE44K3DQor44Kr44Oh44Ok44OeLOOCv+OCq+OCtw0KK+OCquODpOODnuODgCzjg57jgrXjg5LjgrUNCivjgr/jg4rjgqss44OG44Or44OS44K1DQor44Ob44Oz44OeLOOCt+ODs+OCuA0KK+OCreODjuOCt+OCvyzjg6Tjgrnjg5LjgrMNCivjgrfjg47jg4Tjgqss44OO44OW44K344KyDQor44Ki44Kk44OP44OpLOODpOOCueODleODnw0KK+ODiuOCrOODnuODhCzjgqjjgqTjgrgNCivjg4jjg6jjg6Djg6ks44Oe44K144Ki44KtDQor44OS44Op44OOLOOCv+OCq+OCtw0KK+OCreODoOODqSzjgrjjg6Xjg7MNCivjgqTjgrHjg4As44K744Kk44K4DQor44Kk44K344OP44OpLOODpuOCpuOCsw0KK+ODjuOCsOODgSzjg57jgrXjg6sNCivjgrPjgrHjg4Qs44Of44OE44Oe44K1DQor44Kq44Kv44Ok44OeLOOCouODhOODkuOCsw0KK+ODj+ODnuOCsOODgSzjgrfjg7PjgrgNCivjg4TjgrjjgrXjgqss44OS44OH44Ki44KtDQor44Kk44OB44Kr44OvLOOCteODiOODqw0KK+ODqOOCt+ODgCzjgrvjgqTjgrQNCivjg6Tjg57jg4As44Oo44Km44Kk44OBDQor44K344Of44K6LOODpOOCueOCtw0KK+OCteOCq+OCrOODnyzjg47jg6rjgqvjgroNCivjgrPjgrnjgq4s44OS44K144OS44KzDQor44OL44K344OALOOCu+OCpOOCuA0KK+OCpOOCpOODgCzjgqvjg4Tjg6kNCivjgqbjg4Hjg4As44Ok44K544OfDQor44Oi44OI44Ok44OeLOODgeODj+ODpA0KK+ODn+ODpOODouODiCzjgqTjgq/jg6gNCivjgrPjg5Djg6Tjgrcs44Ok44K544K3DQor44Kr44OI44KmLOODkuODreODpuOCrQ0KK+OCt+ODqeOCpCzjgrXjg4jjgrcNCivjg4/jgq7jg6/jg6ks44Kz44Km44K4DQor44Ok44Oe44Km44OBLOODpuOCreODkuODhw0KK+ODn+ODhOODj+OCtyzjgqvjgqrjg6oNCivjg6Ljg7Pjgrgs44Oo44Km44Kk44OBDQor44K/44Kt44Oi44OILOODjuODquOCsw0KK+OCquOCr+ODgCzjgrfjg6XjgqbjgrgNCivjg4Tjgqvjg6Ljg4gs44K344Ol44Km44K4DQor44Og44Kz44OP44OpLOODpOOCueOCpOOCrw0KK+OCteODq+ODpCzjg5/jg4HjgqoNCivjgqrjgqvjgrjjg54s44OI44K344OS44KzDQor44Ob44K344OOLOODkuOCteODiA0KK+ODm+OCtyzjg5Ljg63jg5Xjg58NCivjg5Xjgrfjg58s44Kz44Km44Kk44OBDQor44K/44Kr44OP44K3LOOCv+ODhOODpA0KK+ODi+OCt+ODpOODnizjgrfjg7PjgrgNCivjg4Tjg6vjg57jg4Es44K344On44Km44Kk44OBDQor44OI44Of44K/LOODiuODq+ODiA0KK+OCpuODgeODgCzjg4jjgqrjg6sNCivjgqrjgqrjgr/jgqss44Om44Km44KzDQor44K144Kr44KkLOOCv+OCq+ODkuOCtQ0KK+OCveOCrOODmSzjgqvjg4Tjg58NCivjg6/jg4As44Kx44Oz44K4DQor44Kz44K144KrLOODnuOCteODnw0KK+OCouOCvSzjgqLjgrHjg58NCivjgqLjg6njgqQs44OI44K344OP44OrDQor44K544Ku44Og44OpLOOCt+OCsuOCqg0KK+OCouOCreODqOOCtyzjgqvjgrrjgqoNCivjgqLjgrXjgqvjg68s44OE44OI44OgDQor44Ov44OALOOCteOCq+OCqA0KK+OCpOOCseODgCzjgrPjgqbjgqTjg4ENCivjgqrjgqvjg6Ljg4gs44Oq44On44Km44K4DQor44Ki44Kq44KtLOODnuOCteODqw0KK+OCpuOCqOOCteODryzjg4Tjg6jjgrcNCivjgqbjg6Tjg54s44OS44OH44Ki44KtDQor44OK44Kr44OP44OeLOOCueOCueODoA0KK+OCq+ODr+ODouODiCzjg57jgrXjg6bjgq0NCivjgrnjgqjjg57jg4Qs44K444Ol44Oz44K4DQor44OK44Ks44KkLOOCteODiOOCtw0KK+ODiuOCq+ODj+ODqSzjg6bjgqbjgr7jgqYNCivjg4rjg6/jgr8s44OK44Oq44Ki44KtDQor44Kr44OE44K244OvLOODkuODreOCtw0KK+ODpOODnuOCpuODgSzjg5/jg6bjgq0NCivjgqLjgqvjgq7jgrcs44OE44Oo44K3DQor44Kv44K144K644OfLOODiOOCt+ODkuOCsw0KK+ODm+OCq+ODqizjg5Ljg63jgrcNCivjgqvjg4jjgqYs44Kq44K144OgDQor44Kt44Oq44KmLOODkuODreOCrQ0KK+OCquOCrOODryzjg57jgrXjg4gNCivjgr/jg4rjgqss44Oe44K144Oo44K3DQor44Ki44Kk44Og44OpLOODhOODiOODoA0KK+OCpOOCrOODqeOCtyzjg57jgrXjg4gNCivjgqvjg6/jg6/jgq0s44K/44Kr44Of44OBDQor44Oe44Ko44K144KrLOODiOODouODn+ODhA0KK+ODnuODhOOCt+ODnizjgqLjg4TjgrcNCivjg57jg4Tjg6Ljg4gs44OS44OH44OIDQor44Kr44K/44KkLOODnuOCteODkuODrQ0KK+OCs+OCuOODnizjg57jgrXjgqLjgq0NCivjg4Tjgrjjg6Ljg4gs44OI44Kq44OrDQor44OK44Ov44K/LOOCteODiOOCtw0KK+ODleOCuOOCv+ODiyzjgqvjgrrjg5LjgrMNCivjgq3jgrss44OG44OE44Ot44KmDQor44K144Kr44Kw44OBLOOCuOODpeODs+OCpOODgQ0KK+OCueOCuuOCrSzjg4jjgrfjg6bjgq0NCivjg4/jg57jgrXjgq0s44Oe44K144OS44OtDQor44Oo44K344OALOODkuODiOOCtw0KK+ODm+ODg+OCvyzjgrfjgrLjg5Ljg4gNCivjg57jgrnjgrMs44OS44K144KqDQor44K/44Kx44OK44KrLOOCs+OCueOCsQ0KK+OCpOOCt+OCpCzjg4/jg6vjgq0NCivjgr/jgrXjgqss44OS44Ot44K3DQor44Oe44OE44OALOODnuOCteODkuODrQ0KK+ODj+OCvyzjgr/jgqvjgrcNCivjgqLjgq3jg6Tjg54s44Om44K/44KrDQor44K/44Kr44OP44K3LOODpOOCueODkuODiA0KK+ODpOODnuOCq+ODryzjgrfjg6fjgqbjgrgNCivjg6jjgrPjg4Es44Oe44K144OS44OtDQor44Oo44ON44K/44OLLOOCreOCpOODgeODreOCpg0KK+ODleOCuOODjizjg6bjgqbjgrnjgrENCivjg4/jgrvjgqzjg68s44Kr44OE44OI44K3DQor44OV44K444K/LOODnuOCteODpuOCrQ0KK+OCouODs+ODqeOCryzjg57jgrXjgrMNCivjg4/jgrfjg6Ljg4gs44OO44OW44Om44KtDQor44Kk44OK44OALOODrOOCpOOCsw0KK+ODpuOCsizjg57jgrXjg6jjgrcNCivjgqTjg57jg4As44Kk44K644OfDQor44K144Kr44Oi44OILOOCq+OCuuODkuOCtQ0KK+ODiOODqOODiuOCrCzjg6Tjgrnjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44OG44OE44KqDQor44OP44OK44KkLOODqOOCt+ODjuODqg0KK+OCt+ODn+OCuizjgr/jg4TjgqoNCivjg4rjgqvjg6Djg6ks44Oo44K344OP44OrDQor44Kr44K444Og44OpLOODqOOCt+ODkuOCsw0KK+OCpOOCt+OCrOOCrSzjgrHjg7Pjgr7jgqYNCivjg4/jg4Pjg4jjg6os44Oe44K144KqDQor44Ki44Oe44OOLOODquODp+OCpg0KK+ODn+OCq+ODnyzjgqvjgqrjg6sNCivjg5Xjg6vjg4bjg6ks44Oe44Om44OfDQor44Oe44Of44OkLOODkuODh+OCrQ0KK+ODhOODq+ODjizjg6Djg4TjgrMNCivjgqLjgrXjgqQs44Ok44K544KtDQor44OO44Og44OpLOOCt+OCsuOCqg0KK+ODqOOCs+ODpOODnizjgrfjg7PjgrgNCivjgqTjgrHjg4As44Om44K/44KrDQor44Ki44Oz44OJ44KmLOOCouOCreOCqg0KK+OCquOCq+ODpOOCuSzjg6TjgrnjgrMNCivjgrTjg4jjgqYs44OS44OH44Ki44KtDQor44Kr44Ov44K344OeLOOCv+OCq+OCsw0KK+ODj+OCruODr+ODqSzjgqjjg6oNCivjgqLjgr/jg6njgrcs44Om44Of44KzDQor44K/44Kr44Ok44OeLOODiOOCt+ODkuODiA0KK+ODi+OCt+ODpOODnizjg4jjgrfjg6bjgq0NCivjgqjjg4HjgrQs44K344Oz44Kk44OBDQor44Ok44Oe44K244KtLOODqOOCt+ODkuODrQ0KK+ODoOODreODpCzjg4bjg4TjgqoNCivjgq3jg6Djg6ks44Om44Kt44KqDQor44OK44Kr44OP44OpLOODleODn+OCqg0KK+OCpuOCqOODjizjgr/jgqvjgrcNCivjg6jjgrfjg4As44Kx44Oz44K/DQor44OE44Kr44Oi44OILOOCv+ODgOOCtw0KK+OCquOCtuOCrSzjg4jjgqrjg6sNCivjgqLjgrfjgqvjg68s44Ok44K544K344KyDQor44ON44Ku44K3LOODiOODouODjuODqg0KK+OCreODpeOCpuODjizjgrfjg6XjgqbjgqTjg4ENCivjgrXjg4jjgqYs44Oo44K344OS44OHDQor44Kk44OO44Km44KoLOOCq+OCuuODkuOCsw0KK+OCreOCr+OCuuODnyzjg57jgrXjg6sNCivjg57jg4Tjg6Ljg4gs44OA44Kk44K144KvDQor44OP44Ok44K3LOOCv+OCq+OCqg0KK+ODleOCr+OCquOCuCzjgqvjg7PjgrgNCivjg4rjg6vjgrss44Kx44Oz44K/44Ot44KmDQor44Oe44OE44Oi44OILOODnuOCteOCrQ0KK+ODouODqizjg57jgrXjgrcNCivjg5/jgq0s44OO44OW44KqDQor44OK44Kr44K/44OLLOODqOOCt+OCouOCrQ0KK+ODn+ODpOOCrOODryzjg5Xjg5/jg47jg6oNCivjgqLjg6rjg6jjgrcs44Kk44Kv44KqDQor44K344Op44KkLOODqOOCt+ODpuOCrQ0KK+ODn+ODiuODnyzjg57jgrXjg6jjgrcNCivjg4jjg6rjgrTjgqgs44OV44K444KqDQor44Kz44K544KsLOOCv+ODgOOCtw0KK+ODhOOCuOODjizjgqvjgrrjg5Ljg60NCivjgqrjgrDjg6ks44Ok44K544OS44OtDQor44Kq44Oq44K/LOODgeOCq+OCtw0KK+OCouODn+ODouODiCzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgrXjgqss44OI44Kq44OrDQor44OP44Ok44K3LOODqOOCt+ODkuODrQ0KK+ODn+ODiuODnyzjg5/jg47jg6sNCivjg6jjgrfjg4As44OI44K344OS44KzDQor44OL44K344OP44OpLOODqOOCt+OCqg0KK+OCquOCr+OCrOODryzjg57jgrXjg4jjg6INCivjg4Tjgrgs44OG44Or44Om44KtDQor44OK44Kr44KkLOOCv+OCq+OCtw0KK+ODi+OCt+ODoOODqSzjg4TjgrDjgqoNCivjg4vjgr/jg4rjgqQs44Kx44Oz44K0DQor44Kv44OJ44KmLOODkuODreOCtw0KK+OCteOCpCzjgr/jgqvjgqoNCivjgrfjg6fjgqYs44Oe44OK44OWDQor44Kk44OO44Km44KoLOOCq+OCquODqw0KK+OCv+ODi+OCsOODgSzjg5Ljg63jgr/jg40NCivjg4rjgqvjg4vjgrcs44K344Oz44K4DQor44Kq44Kq44Oi44OqLOODkuODreODpuOCrQ0KK+OCr+ODnuOCrOOCpCzjgr/jgqvjg6bjgq0NCivjgqTjgrfjgqLjgqQs44OI44Oo44Kr44K6DQor44OP44Ku44OP44OpLOOCq+OCuuODjuODqg0KK+OCv+OCrOOCvyzjgrHjg7PjgrgNCivjgrnjgrrjgq0s44Of44OB44KqDQor44Kv44OcLOOCvOODs+OCteOCrw0KK+OCq+ODiuOCpuODgSzjgrfjg7Pjg6QNCivjg4vjgrfjgqos44OS44OH44KtDQor44Kk44OK44OALOODkuODh+ODjuODlg0KK+OCv+OCseOCpOODgSzjgrfjg7PjgrgNCivjgqLjg7Pjg4njgqYs44Oe44Kz44OIDQor44Oe44OE44OK44OfLOOCt+ODp+OCpuOCpOODgQ0KK+ODn+ODiuOCr+ODgSzjgrfjg6XjgqbjgrXjgq8NCivjgqvjg4rjgqbjg4Es44OK44Kq44KtDQor44Kq44Kq44Kk44Ok44OeLOODjuODnOODqw0KK+ODnuOCueODgCzjgrfjg6fjgqbjgrgNCivjg6Tjgq7jg4/jg6ks44OI44K344KqDQor44Of44K644OOLOOCseODs+OCuA0KK+ODjuODluOCr+ODnyzjg4jjgqrjg6sNCivjg4rjg4As44K/44Kr44Ki44KtDQor44K/44Kx44K/44OLLOODleODiOOCtw0KK+OCpOODnuOCpOOCuuODnyzjgqTjg4Hjg63jgqYNCivjgqTjg4rjg4As44Kk44K144KqDQor44Kk44Oe44OLLOOCv+OCq+ODleODnw0KK+OCquOCrSzjg57jgrXjg5Ljg60NCivjg5Xjgq/jgrfjg54s44Oo44Km44K544KxDQor44Kk44Kk44KqLOODkuODreODiOODog0KK+OCpOOCt+ODgCzjgqvjg4Tjg6QNCivjg5Ljg6njgr8s44Kz44Km44K4DQor44Kk44K/44Ks44KtLOOCq+OCuuODkuODrQ0KK+ODpOODnuODleOCryzjgrXjg4jjgrcNCivjgrXjg4jjgqYs44OO44Oq44KqDQor44OK44Kr44Ks44OvLOODquODp+OCpg0KK+OCquOCteOCqyzjgrfjg6XjgqbjgqTjg4ENCivjgqrjgqTjgqvjg68s44OO44OW44Ki44KtDQor44Kr44K344KqLOODqOOCt+ODkuODrQ0KK+ODm+OCt+OCtuOCrSzjgrfjgrLjgq0NCivjgrvjgq3jgrjjg54s44Kz44Km44K4DQor44Kq44Kr44Oe44KoLOODjuODquODkuODrQ0KK+OCteODiOOCpizjgr/jgqvjgrcNCivjgrPjgqTjg4cs44K/44Kr44OK44KqDQor44K/44Kr44OP44K3LOOCu+OCpOOCuA0KK+OCquOCrOODryzjgrPjgqbjgqTjg4ENCivjg4bjg6njgrfjg54s44K/44Kv44KqDQor44Ok44Oe44K344K/LOODnuOCteOCouOCrQ0KK+ODjuOCuyzjg5Ljg4fjg6bjgq0NCivjg57jg4Tjg57jgqgs44Ki44Om44OfDQor44Oo44K344K/LOODjuODquOCouOCrQ0KK+ODoOODqeOCvyzjg4jjgqrjg6sNCivjg4/jg6ks44OO44Oq44OS44KzDQor44Ok44Oe44Km44OBLOOCseODs+OCuA0KK+OCq+ODnyzjgqvjg4Tjg6bjgq0NCivjgrnjgqzjgqQs44K/44OE44Om44KtDQor44K/44Kr44OOLOODqOOCt+ODjuODlg0KK+ODiOOCs+ODrSzjg6jjgrfjg5Ljg60NCivjgrnjgrrjgq0s44K544K544OgDQor44K144K144KtLOOCouODhOODpuOCrQ0KK+ODhOODjuODgCzjg4bjg4Tjg63jgqYNCivjg6Tjg57jgrXjgq0s44OG44OE44OkDQor44Of44Km44OpLOOCq+ODhOODnw0KK+OCquODgOOCruODqizjgqLjg4TjgrMNCivjg4/jg6Tjgrcs44K344Oz44OB44On44KmDQor44OI44Of44Kq44KrLOODkuODiOOCtw0KK+OCpOOCsOODgSzjgrvjgqTjgqTjg4ENCivjgrPjg7Pjg4ks44K/44Kr44K3DQor44Kv44OcLOODkuODh+OCqg0KK+OCr+ODqeODjOOCrSzjgq3jg6fjgqbjgrMNCivjg4jjg5/jg57jg4Qs44OK44Kq44KzDQor44Kv44Ot44Kr44OvLOODnuOCteOCouOCrQ0KK+ODjuOCtuODryzjgrnjg5/jgqoNCivjgqvjg6/jgrXjgq0s44Kv44OL44Ki44KtDQor44K/44Kx44OALOOCq+ODhOODpA0KK+OCt+ODjuODj+ODqSzjgqLjgq3jg5Ljg60NCivjg5Xjg6vjg6Qs44K344Ky44OrDQor44OK44Kr44Og44OpLOOCteODiOODqw0KK+ODpOOCuOODnizjg4jjgqrjg6sNCivjg4vjgrfjgqzjgq0s44Kt44Oo44K3DQor44OK44Kr44Ks44OvLOOCveOCpg0KK+ODkuODqeODpOODnizjgrfjg6Xjg7PjgqTjg4ENCivjg6Tjg57jgrDjg4Es44Og44OE44OS44OtDQor44Oo44K344Og44OpLOODpuOCpuOCuA0KK+ODhOODgCzjgr/jgqvjg6bjgq0NCivjgqvjg4Tjg6njgqQs44Ov44K/44OrDQor44Of44OK44KkLOODiOOCt+OCq+OCug0KK+OCv+OCreOCsOODgSzjgqvjgrrjgqoNCivjg6/jgrHjg5ks44Oo44K344OS44OtDQor44OL44K344Kr44OvLOODnuOCteODpA0KK+OCt+ODqeOCrOOCrSzjg5Ljg63jgqLjgq0NCivjg5Djg5As44Oe44K144Kr44K6DQor44Ki44Kr44OqLOODquODp+OCpuOCuA0KK+OCouODmSzjgr/jgq/jg6QNCivjgqvjgqQs44Kv44OL44OS44OtDQor44Kq44Kq44Oi44OqLOODkuODh+OCq+ODhA0KK+OCueOCuuOCrSzjgr/jgqvjgrcNCivjg4rjgqzjgrXjg68s44OS44OI44K3DQor44K144Ov44OALOOCqOODn+OCsw0KK+OCouOCuuODnizjg47jg5bjg6bjgq0NCivjgqrjg44s44OS44OH44KtDQor44Kr44Ov44OL44K3LOODjuODluODkuODhw0KK+ODnuODiuODmSzjgqvjgrrjg5Ljg60NCivjgqLjg6rjg6Tjg54s44Om44Km44K4DQor44OL44K344Kr44OvLOOCreODqOOCtw0KK+OCouODhOODnyzjgrfjg6XjgqbjgrgNCivjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44OS44Ot44K/LOODiOOCt+ODpA0KK+ODm+OCq+OCvuODjizjgqvjgrrjg4gNCivjg5vjgrfjg44s44Ok44K544OS44OtDQor44Ok44Oe44Kw44OBLOODnuOCs+ODiA0KK+OCouOCrOOCvyzjgrPjgqbjgrgNCivjg57jg6vjgqos44Oo44K344Om44KtDQor44Kz44Kk44OHLOODkuODreOCouOCrQ0KK+OCq+ODn+ODoOODqSzjg57jgrXjg5Ljg4cNCivjgrXjgqTjg4jjgqYs44OK44Kq44KtDQor44OV44Kv44Of44OELOOCouODhOOCtw0KK+ODkuODqeODpOODnizjg5Ljgqvjg6sNCivjgrXjgqTjg4jjgqYs44OG44OE44OkDQor44Kk44Kx44KqLOODn+ODjuODqw0KK+ODleODq+OCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgqTjg4As44OS44Ot44Ki44KtDQor44Of44Ok44K244KtLOODouODiOODkuODrQ0KK+ODqOOCt+ODgCzjg6Tjgrnjg6bjgq0NCivjgq3jgq/jgr8s44Ko44Oq44KzDQor44OB44OQLOODhuODhOOCqg0KK+ODiOODquODpOODnizjg6rjg4TjgqoNCivjgqjjgrbjg68s44Oq44Ol44Km44K/44Ot44KmDQor44Kq44Kq44OQLOODqOOCt+OCv+ODnw0KK+ODpOODnuODouODiCzjgqrjgrXjg6ANCivjg4vjgrfjgqvjg68s44Oe44K144OO44OWDQor44Ko44Oz44OJLOODnuOCteODj+ODqw0KK+ODleOCr+OCpCzjgqrjgrXjg6ANCivjg4/jg57jg44s44Oo44Km44Kk44OBDQor44Kt44K/44OP44OpLOOCseODs+OCuOODp+OCpg0KK+OCteODiOOCpizjg6bjgq3jg5Ljg60NCivjg57jg4Tjgqos44Oe44K144OV44OfDQor44OI44Oo44K/LOODkuODh+ODpA0KK+ODkuODqeODouODiCzjg4jjgrfjg5Ljg4cNCivjg6Tjg57jg6Ljg4gs44Kz44Km44K/44Ot44KmDQor44OP44Oe44OALOODnuODpuODnw0KK+OCpOODr+OCq+ODnyzjg5/jg47jg6sNCivjgq/jg5ws44OG44OE44KqDQor44Ko44Oz44OJLOOCq+OCuuODkuODrQ0KK+OCq+OCsuODpOODnizjg57jgrXjg47jg6oNCivjg4vjgqTjg6Qs44OI44Oi44Om44KtDQor44Kz44Km44OBLOODpuOCpuOCueOCsQ0KK+OCouODgOODgSzjgrfjgrLjg6bjgq0NCivjg4/jg6Tjgrcs44K344Ol44Oz44K4DQor44OK44Kr44OOLOODnuOCs+ODiA0KK+OCpOOCt+ODj+ODnizjg57jgrXjg5Ljg60NCivjgrPjgq/jg5ws44Oq44Ol44Km44Kk44OBDQor44Kr44Ov44OOLOODj+OCuOODoQ0KK+ODiuOCq+OCuOODnizjg47jg6rjg5LjgrMNCivjgr/jgqTjg6ks44OE44Oo44K3DQor44K/44Kx44KuLOODquODhOOCqg0KK+ODouODquOCt+ODnizjg4jjg6LjgrMNCivjg4rjgqvjg6Djg6ks44OS44Ot44Ki44KtDQor44OO44Kw44OBLOODkuODreOCrQ0KK+OCouODqeOCrSzjg6Tjgrnjg4bjg6sNCivjgqLjg6ks44OS44Ot44K3DQor44Kk44OI44KmLOODiuOCquOCsw0KK+ODj+ODpOOCteOCqyzjg5Xjg4jjgrcNCivjgrPjg4Tjgqss44Oe44K144Kr44K6DQor44K/44Kx44Km44OBLOODkuODreOCtw0KK+OCpOODr+OCvyzjgr/jgqvjgrcNCivjg57jgqjjg4As44Oo44K344KqDQor44Ob44K944Kr44OvLOODnuOCteODkuODrQ0KK+OCouODqeOCpCzjg6Tjgrnjg5Ljg60NCivjgqrjgqrjgq/jg6ks44Kr44Oz44K4DQor44K/44Kx44Kz44K3LOOCouODhOOCtw0KK+ODpOODnuOCsOODgSzjgrHjg7PjgrgNCivjgrfjg5/jgros44Kr44OE44OI44K3DQor44Kk44OI44KmLOODqOOCt+ODhOOCsA0KK+OCpOOCuuODnyzjgqvjg43jg5/jg4QNCivjgrTjg4jjgqYs44K944Km44K/44Ot44KmDQor44Kq44Kq44OE44OcLOOCq+OCuuODnw0KK+OCq+ODn+OCs+OCrOODryzjgrfjg7PjgqTjg4ENCivjgr/jgrHjgqQs44K144OI44KzDQor44Of44Ok44OP44OpLOODnuOCteOCtw0KK+OCouODr+OCuCzjgqLjg4TjgqoNCivjgqbjgrfjg63jg4As44Kr44Kq44OrDQor44Oi44Oq44Kk44K644OfLOODj+OCuOODoQ0KK+ODiuOCrOODjizjgqLjg4TjgrcNCivjgr/jg4rjgqss44Og44ON44Om44KtDQor44OV44Kr44KoLOOCseODs+OCuA0KK+ODleODq+ODpCzjg5/jgrXjgqoNCivjg5/jgrrjg5Ljgq0s44Oo44K344KqDQor44Kv44OcLOODn+ODhOODqOOCtw0KK+OCv+OCsOODgSzjg5Xjg5/jgqLjgq0NCivjg4rjgqvjgqos44OE44Ku44OIDQor44Ok44Oe44K344K/LOODpuOCpuOCpOODgQ0KK+OCr+ODreOCrSzjgrfjg6fjgqbjgrQNCivjg57jg4Tjg4As44Kx44Oz44Kk44OBDQor44Kq44OA44K444OeLOODiuODm+ODnw0KK+ODm+ODqizjg6bjgq3jgqoNCivjgr/jg4vjgrDjg4Es44OE44ON44Ok44K5DQor44Ki44Op44KkLOODiOOCt+ODjuODqg0KK+OCtOODiOOCpizjg4bjg4TjgrgNCivjg4jjg43jgqzjg68s44OO44Oq44Om44KtDQor44Oi44Oq44K/LOOCv+OCq+OCsw0KK+ODleODq+OCq+ODryzjgrfjgrLjgqoNCivjg6bjgq0s44Oo44K344OO44OqDQor44K344Op44Kk44K3LOOCv+OCq+ODkuODrQ0KK+OCpOOCseODpCzjgrXjg4HjgrMNCivjg6/jgr/jg4rjg5ks44K/44OE44Kq44KtDQor44K/44OL44Kw44OBLOOCs+OCpuOCpOODgQ0KK+ODnuOCueODgCzjgrfjg47jg5YNCivjg5/jgrrjgrDjg4Es44K444Ot44KmDQor44OP44Ok44Of44K6LOODpuODnw0KK+ODm+OCq+ODqizjgqLjgq3jg5LjgrMNCivjgqTjgrfjgqQs44OO44Oq44OS44KzDQor44K344Op44Kk44K3LOODnuOCteODkuOCsw0KK+OCt+ODouOCq+ODr+ODqSzjgrfjgrLjg5Ljg60NCivjg6Ljg6rjg6Ljg4gs44OI44Oi44KzDQor44Kk44OI44KmLOODkuODreOCtw0KK+OCquOCquODpCzjgrHjgqTjgrgNCivjg5/jg6jjgrcs44Of44OO44OrDQor44K344OQ44K/LOODjuODquODkuODrQ0KK+OCv+ODs+OCtuODsyzjg4jjg6Ljg5LjgrMNCivjgqTjg6/jgrXjgq0s44OS44OH44Kr44K6DQor44OV44Kv44KkLOOCteODiOOCtw0KK+ODouODquODkOODpOOCtyzjgqvjgrrjg6QNCivjg6Tjg57jg4As44OS44OH44OfDQor44OV44K444Ov44OpLOOCteODiOOCtw0KK+ODiuODhOODoSzjg6Tjgrnjg4gNCivjgrfjg47jg4/jg6ks44OS44Ot44K3DQor44Kq44K144OALOODnuOCteOCtw0KK+ODleOCuOODj+ODqSzjgr/jgrHjg5Ljg4gNCivjg5Xjgrjjg6Ljg4gs44OS44Ot44OfDQor44Kt44OOLOODqOOCt+OCqg0KK+ODpOODnuODouODiCzjg6Ljg4jjgq0NCivjgqTjgrfjgrjjg54s44Oi44Oq44OS44OtDQor44Kk44KsLOOCouOCreODqQ0KK+ODiuOCq+OCqCzjg4DjgqTjgrgNCivjg6Tjg44s44Om44Km44K4DQor44Kr44OK44Of44OELOOCquOCteODoA0KK+OCueOCuuOCrSzjg4bjg6vjgqoNCivjgr/jgqvjg4As44Oq44On44Km44KzDQor44Kk44K344OQ44K3LOODkuODreODpuOCrQ0KK+OCquOCquODhOODnCzjg5/jg4Tjg4/jg6sNCivjgrnjgq4s44K/44Kr44K3DQor44OP44Ok44K344Kw44OBLOODkuODreOCtw0KK+ODhuODqeOCt+OCvyzjgqvjgrrjgqoNCivjgrfjg6Ljg6Tjg54s44Oo44K344OV44OfDQor44Of44Ok44K244KtLOODn+ODhOODqw0KK+ODouODqizjg6Tjgrnjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OS44OI44K3DQor44OH44Ki44KkLOOCreODqOODkuODrQ0KK+ODm+ODqizjg4jjgrfjg6bjgq0NCivjgqLjg43jgrbjgq0s44Kr44K644KqDQor44Kv44Oc44K/LOOCv+OCq+ODkuODrQ0KK+OCtCzjg57jgrXjg4jjgrcNCivjg5Ljgq3jg4As44OS44Ot44K3DQor44K144Kr44Kw44OBLOODjuODquOCouOCrQ0KK+ODqOOCt+OCpCzjgr/jgqvjgrcNCivjgq3jgr/jg4/jg6ks44Kr44OE44OIDQor44OV44K444KkLOODn+ODieODqg0KK+ODiuODoeOCrSzjg6TjgrnjgrMNCivjg6jjgrfjg6Djg6ks44OI44K344KqDQor44K/44Og44OpLOODgOOCpOOCueOCsQ0KK+OCpuODn+ODjizjg5Ljg63jgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44K3DQor44Oo44K344Oi44OILOOCv+OCseOCtw0KK+ODjeODouODiCzjg6jjgrfjg5Xjg58NCivjg5/jg6Tjgrbjgq0s44Oe44K144OS44KzDQor44K/44Kr44Oi44OqLOODgeOCqOOCsw0KK+OCr+ODnuOCrOOCpCzjgq/jg4vjgqoNCivjgrTjgqbjg4As44Kz44Km44K/44Ot44KmDQor44OP44K/LOOCs+OCpuOCpOODgQ0KK+OCr+OCuuODnyzjgrXjg4HjgrMNCivjg4rjg4TjgqQs44Kk44Kv44KqDQor44K344Oe44OALOODkuODh+OCqg0KK+OCquOCquODhOOCrSzjgqvjgrrjg5Ljg60NCivjg57jg5/jg6Qs44OS44Ot44Kr44K6DQor44K144OI44KmLOOCseODs+OCuA0KK+OCs+ODkOODqizjg5Ljg4fjg6bjgq0NCivjgrXjgrXjgq0s44Ok44K544Om44KtDQor44Kr44ON44KzLOODnuOCteOCrQ0KK+OCquODjizjg4jjgqrjg6sNCivjgqrjgqrjg6Tjg54s44Oo44K344KoDQor44Oe44OI44OQLOODnuOCteODj+ODqw0KK+OCpOOCv+OCr+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjg4Djgrfjg54s44Kr44OE44Ot44KmDQor44K344Kk44KtLOODjuODquOCsw0KK+OCt+ODkOOCvyzjgqvjgrrjg5Ljg60NCivjgqvjg4Tjg6ks44OB44Kr44KzDQor44Ki44Op44KkLOODqOOCt+ODjuODqg0KK+OCteOCpOODiOOCpizjg4Tjg6jjgrcNCivjg57jg4Tjg6Ljg4gs44Oe44K144OO44OqDQor44Km44Ko44Ok44OeLOODn+ODhOODiuODqg0KK+ODnuODjizjgrfjg7PjgqTjg4ENCivjg5/jgrXjgqos44OK44Kq44KtDQor44K944OO44OZLOOCreODn+ODpuOCrQ0KK+OCueOCuuOCrSzjgqLjgq3jgqoNCivjg6Tjgr/jg4ss44Kt44On44Km44KzDQor44Og44K/LOODnuODiuODlg0KK+ODnuODq+ODpOODnizjg5Xjg5/jgqLjgq0NCivjg5Xjg4As44K/44Kr44Oo44K3DQor44Kz44OQ44Ok44K3LOOCseOCpOOCpOODgeODreOCpg0KK+ODr+OCv+ODiuODmSzjgqvjgqrjg6sNCivjgqrjg4As44Oe44Kz44OIDQor44Kq44OV44OBLOODnuOCteOCqg0KK+OCv+ODiuOCqyzjgrfjgrLjgqoNCivjgrXjg6/jgq0s44Oe44K144K3DQor44K144Kk44OI44KmLOODkuODreOCtw0KK+ODj+OCruODjizjg47jg5zjg6sNCivjgqbjgrfjg6Tjg54s44K/44Kr44K3DQor44Kq44Kv44OS44OpLOODjuODluODkuODrQ0KK+ODqOOCt+OCpOOCsSzjgrXjg4rjgqgNCivjgrPjg7Pjg44s44Om44Km44KzDQor44OO44OALOODiOOCt+OCqg0KK+OCqOODs+ODiSzjg4jjgrfjg6bjgq0NCivjgrnjgrrjgq0s44Of44OE44KqDQor44K/44OK44KrLOODqOOCt+ODkuODrQ0KK+OCreODiSzjgrHjgqTjgrgNCivjgqTjg4jjgqYs44Oe44K144OO44OWDQor44OV44K444Ov44OpLOODiOOCt+ODj+ODqw0KK+ODj+OCu+OCrOODryzjgqLjgq3jg6kNCivjg57jgrnjg6Ljg4gs44Kx44Kk44K4DQor44Kr44KkLOODkuODiOOCtw0KK+OCv+OCq+ODj+OCvyzjg4jjg6LjgrMNCivjg5Ljg4fjgrfjg54s44Kr44K644OO44OqDQor44K/44Kr44Ok44OeLOOCt+OCsuOCrQ0KK+ODn+ODpOOCrSzjg6bjgr/jgqsNCivjg5Xjgrss44Kr44K644OS44KzDQor44Oi44Oi44KkLOODkuODreODpOOCuQ0KK+ODhOODpuOCrSzjg5/jg4TjgrANCivjgqvjg6/jg4/jg6ks44K344Ky44OrDQor44Oe44OE44KkLOOCouOCreODkuODrQ0KK+ODj+ODiuODryzjg57jgrXjg5Ljg60NCivjg5Ljg6/jg4As44OG44OE44OkDQor44Oe44K544KkLOOCv+OCq+OCtw0KK+OCq+ODiOOCpizjgr/jg4Djg4TjgrANCivjgr/jgrHjg54s44OV44Of44KqDQor44K344Op44Kk44K3LOODqOOCt+OCqg0KK+ODleODq+OCq+ODryzjgrfjg6fjgqbjgqTjg4ENCivjg4bjgrjjg54s44Ki44Kt44OpDQor44Ki44Kt44Oi44OILOOCteODiOOCtw0KK+OCueOCruODpOODnizjg5Ljg63jgqLjgq0NCivjg4rjg7Pjg5Ys44Om44Kt44OS44OtDQor44OE44K444OOLOOCseODsw0KK+ODhuODqeOCteOCqyzjgqTjg4Pjgrfjg7MNCivjgrXjgqvjgqQs44OS44OH44Ki44KtDQor44Kv44OcLOOCouODhOOCtw0KK+ODnuODq+OCv+ODiyzjg57jgrXjg6QNCivjgr/jgqvjg4/jgrcs44Of44OO44OrDQor44Oe44OE44Km44OpLOOCt+ODs+ODpA0KK+OCv+ODiuOCqyzjgrvjg7PjgrgNCivjg6bjgrbjg68s44K/44Kr44Ki44KtDQor44K/44Kr44OP44K3LOOCq+OCuuODpA0KK+OCquOCquODkCzjgrfjg7PjgrQNCivjg57jgqjjgqvjg68s44OI44Kq44OrDQor44OL44OvLOODiOOCquODqw0KK+OCq+ODr+ODoOODqSzjg57jgrXjgq0NCivjgrPjgqTjgrEs44Kr44K644KoDQor44Kv44Oq44K344K/LOODiOOCt+ODpuOCrQ0KK+ODkuODreOCuyzjgqrjgrXjg6ANCivjgrPjg7Pjg44s44K/44Kv44OkDQor44OP44K744Ks44OvLOODkuODreODkuOCsw0KK+OCpOODiOOCpizjg5Ljg63jgrcNCivjgq3jgrbjgq0s44Ki44OE44K3DQor44Ko44OK44OfLOODjuODquOCouOCrQ0KK+ODhOOCq+ODiuOCqyzjg5Xjg5/jgqLjgq0NCivjgrXjgqvjg6Ljg4gs44OS44Ot44OfDQor44Oe44OE44OQ44OpLOODkuODh+OCqg0KK+ODhuODqeOCpCzjgrfjgrLjgqLjgq0NCivjgqrjgrfjgr8s44K/44Kr44Oo44K3DQor44K/44OK44KrLOODqOOCt+OCouOCrQ0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjgqTjgrfjgrDjg60s44Oo44K344OIDQor44OP44K344Oi44OILOOCueODn+OCsw0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OI44Kq44OrDQor44OV44Or44Kr44OvLOODiOOCt+ODjuODlg0KK+ODpOODnuODgCzjg5Ljg63jg4gNCivjgqTjgq/jgr8s44K344On44Km44KzDQor44K144OI44KmLOODpuOCpuOCpOODgQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg5Ljg60NCivjgqvjgrMs44K/44OE44K4DQor44Oe44K544OALOODkuODreODjuODqg0KK+OCq+ODn+OCuCzjgr/jgqvjg6bjgq0NCivjgqTjg4/jg6ks44Kr44K644OS44OtDQor44Ki44K144OfLOOCq+OCuuODkuODrQ0KK+ODiuOCq+OCuOODnizjgr/jgqvjgrcNCivjgrPjgr/jgq0s44OG44OE44OkDQor44Kr44Ov44Oi44OILOOCqOOCpOOCpOODgQ0KK+OCq+ODr+OCt+ODnizjgqvjgrrjg5LjgrMNCivjgqLjgrrjg54s44Oq44Ol44Km44K4DQor44OK44Kr44OOLOOCt+ODpeOCpuOCpOODgQ0KK+ODkuODqeODjizjgrXjg4jjgrcNCivjgr/jgqvjg4/jgrcs44Oe44K144OrDQor44OV44Kr44OkLOODouODouOCrQ0KK+OCquOCquODkCzjgr/jgrHjgrcNCivjgrXjgq/jg6njgqQs44OS44Ot44Ki44KtDQor44K144Kr44KkLOOCpOODg+OCu+OCpA0KK+OCouOCquOCrSzjgr/jgq/jgqoNCivjg6jjgrfjg4As44Ok44K544K3DQor44Kz44OP44K3LOODnuOCteODjuODqg0KK+ODnuODhOOCpuODqSzjg4bjg4Pjg5rjgqQNCivjgrXjg4jjgqYs44Kq44K144OgDQor44OL44K344Kt44Kq44OqLOODiOODouOCsw0KK+ODn+ODqOOCtyzjg6jjgrfjg5LjgrUNCivjgrPjgrnjgq4s44OE44Kr44K1DQor44K144OI44KmLOOCv+OCq+OCpOODgQ0KK+ODleOCuOOCpCzjg6jjgrfjg5Ljg60NCivjg5Xjg4rjg4As44Kr44K644OS44KzDQor44K544Ku44K/LOODiOOCquODqw0KK+OCt+ODp+OCpuODgCzjgqvjgrrjg5Ljg60NCivjg6Ljg6rjgrfjgr8s44OI44K344KqDQor44OS44OpLOODkuODiOOCtw0KK+OCt+ODs+OCv+OCryzjg5Ljg63jg6bjgq0NCivjg5Ljgqzjgrfjg4As44OI44K344Om44KtDQor44Kv44Oq44K/LOODnuOCteODqOOCtw0KK+OCpOODiuODgCzjg6bjgqbjgrXjgq8NCivjg4vjgrfjg44s44OI44K344OkDQor44Kk44Kx44K444OqLOODjuODquOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg4rjgqrjg5Ljg60NCivjg4rjgqvjgqvjg4ks44Oo44Km44Kk44OBDQor44Kk44OO44Oe44K/LOODkuODreOCtw0KK+ODhOODq+ODnyzjg5Ljg63jg6jjgrcNCivjg5Ljg6njg6Ljg4gs44K344Ky44KtDQor44Of44Oo44K3LOODleODn+OCouOCrQ0KK+OCouODr+ODjizjgr/jgqvjgrcNCivjgqLjgq3jgr8s44Oo44K344KoDQor44OS44Ks44K344Ok44OeLOOCv+OCseOCtw0KK+OCteODiOOCpizjg5Ljg63jg58NCivjgqvjg6/jgrXjgq0s44Kx44Kk44Kk44OBDQor44Oe44Or44Ok44OeLOODj+ODhOOCqg0KK+OCueODiuOCrCzjg5Ljg4fjgq0NCivjgqTjg57jgqQs44K/44Of44KzDQor44OV44K444KkLOODpuOCreOCqg0KK+ODnuOCreOCvyzjg5/jg4TjgqoNCivjgqTjg4jjgqYs44K/44OE44K3DQor44K/44Kr44OP44K3LOODquODpeOCpuOCpOODgQ0KK+OCreODquODnizjgrfjg7PjgrgNCivjgqrjgqrjg4vjgrcs44OI44Oi44Om44KtDQor44Of44OO44K344OeLOOCv+OCseODkuODiA0KK+OCteODiOOCpizjgqvjgrrjgr/jgqsNCivjg6Tjg57jgrfjgr8s44K/44Kr44Om44KtDQor44Of44K/44Og44OpLOODnuODpuODnw0KK+OCteODiOOCpizjgrfjgrLjg6sNCivjg4jjg57jg4Qs44K/44Oe44OfDQor44Ko44OT44K344OeLOODpOOCueODpuOCrQ0KK+ODr+ODgCzjgqvjgrrjg6QNCivjgrnjgrrjgq0s44Kt44Oo44K/44KrDQor44K544Ks44OP44OpLOODn+ODhOODqw0KK+OCv+OCsOODgSzjg5Ljg63jg6ANCivjg4jjgqzjgrcs44Oe44K144OS44KzDQor44OK44Ks44OP44OpLOOCteODiOODqw0KK+ODpOODnuODouODiCzjgrHjgqTjgrMNCivjgr/jgrHjg4As44Oe44K144Om44KtDQor44K144OI44KmLOODn+ODjuODqw0KK+OCv+OCq+ODn+ODpCzjg5Ljg4fjg47jg5YNCivjgqLjgqrjgq0s44K/44Kr44OS44OtDQor44Kz44Ok44KuLOOCueODn+OCv+OCqw0KK+OCquODjuOCtuOCrSzjg6rjg6fjgqbjgrnjgrENCivjg6Ljg6rjgr8s44OO44Oq44KzDQor44K144Kv44Op44KuLOODpuODn+OCsw0KK+OCquOCq+OCteOCqyzjg5Ljg63jg47jg6oNCivjg6Tjg57jgrDjg4Es44Kz44K544KxDQor44Kr44Ov44K344OeLOODqOOCt+ODjuODqg0KK+OCpOODr+ODjizjgqvjgrrjg47jg6oNCivjgrTjgqbjgrMs44Ok44K544OP44OrDQor44Oi44Oq44K/LOODpOOCueOCuA0KK+OCt+OCsuOCv+OCqyzjg4rjgqrjgq0NCivjg4bjgrrjgqss44Ko44Kk44K144KvDQor44Kq44K/LOODhOODqOOCtw0KK+ODpOODnuODgCzjg57jgrXjg4/jg6sNCivjg5Xjgqvjg4As44OS44K144Om44KtDQor44OP44K744OZLOODouODiOOCouOCrQ0KK+ODnuODhOODjizjgqLjg4TjgrcNCivjg4Tjgrjjgqvjg68s44Kx44Oz44Kk44OB44OtDQor44Oe44OE44Oi44OILOOCq+ODhOODnw0KK+OCu+ODjuOCqizjg4/jgrjjg6ENCivjg47jg6Djg6ks44K144OI44K3DQor44Ki44Op44KkLOODiOODqOOCt+OCsg0KK+OCquOCsOODqizjgrnjg5/jgqgNCivjgrjjg7Pjg44s44Oe44K144OS44OtDQor44OS44Ot44K644OfLOODn+ODjuODqw0KK+ODnuODhOOCpCzjgrnjgrnjg6ANCivjgrfjg5Djgrbjgq0s44Ki44OE44K3DQor44Kk44OO44Km44KoLOODkuODh+OCqg0KK+OCv+ODiuOCqyzjg5Ljg4fjgqvjgroNCivjgrXjgr0s44OK44Kq44OV44OfDQor44K344Op44OP44OeLOOCouOCreODkuOCsw0KK+OCv+ODiuOCqyzjg4rjgqrjgq0NCivjg4rjgqvjg6Djg6ks44Ok44K544OS44OtDQor44Kk44K344Ks44OfLOODqOOCt+OCouOCrQ0KK+OCt+ODkOOCvyzjg4bjg4Pjg5rjgqQNCivjg47jgrDjg4Es44Ki44Om44OfDQor44Kk44OB44OQLOOCs+OCpuOCuA0KK+OCq+ODr+OCsOODgSzjg5Ljg4fjgrMNCivjg6jjgrfjg58s44OS44OH44OfDQor44OV44K444Kr44OvLOODkuODreODpuOCrQ0KK+OCq+ODiOOCpizjg4Tjg6jjgrcNCivjgr/jgqvjg4/jgrcs44Kk44K144OgDQor44OV44K444K144OvLOOCq+OCuuOCqg0KK+ODn+OCuuOCv+ODiyzjg4jjg6Ljg5Xjg58NCivjgrvjgq3jgrDjg4Es44Oo44K344Ot44KmDQor44Oe44Ko44Kr44OvLOODoOODhOODnw0KK+OCouODqeOCpCzjg6rjg6XjgqbjgrgNCivjg6Ljg6os44Kx44Kk44K/44Ot44KmDQor44K144OI44KmLOODiuOCquOCsw0KK+OCr+ODr+OCvyzjgrfjg6fjgqbjgqTjg4ENCivjgqrjgrDjg6os44OS44Ot44K3DQor44OS44Op44KkLOOCq+ODhOODkuOCsw0KK+ODi+OCt+ODoOODqSzjg5Xjg5/jg4jjgrcNCivjgqrjgqrjgq/jg6ks44OS44K144OO44OqDQor44K944OO44OZLOOCouOCreOCsw0KK+OCpOOCpOODgCzjg6TjgrnjgqLjgq0NCivjgrPjgrDjg4Es44Ko44Kk44Kk44OB44Ot44KmDQor44Oi44Ot44Ob44K3LOODkuODh+OCq+OCug0KK+ODj+ODnuODgCzjg47jg6rjgqvjg4QNCivjgqvjg4rjgrbjg68s44Kr44K644Om44KtDQor44Oe44OE44OQLOOCt+OCsuODqw0KK+OCpOODr+OCvyzjg5Ljg4fjg4jjgrcNCivjgqLjgrrjg4Es44Oe44K144OrDQor44Kz44Oz44OJLOOCpOOCteOCqg0KK+OCv+OCq+ODj+OCtyzjg6jjgrfjgqoNCivjgqLjg57jg44s44OS44Ot44Ki44KtDQor44Kr44K/44OALOOCquOCteODoA0KK+OCv+ODoeODkuODrSzjg6Ljg4jjgrMNCivjg57jg4Tjg4As44K/44Kr44K3DQor44OK44Oq44Kk44K3LOODpOOCueODqOOCtw0KK+OCquOCreOCvyzjg6Ljg6rjg5/jg4ENCivjg6Tjg57jgrfjgr8s44OS44Ot44K3DQor44K544K644KtLOODpuOCpuOCuA0KK+ODnuODs+ODnSzjgqvjg4Tjg58NCivjgqTjg4HjgqQs44Kx44Oz44K4DQor44Kz44Kk44OHLOODiOODouOCsw0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjgrMNCivjg4rjgqvjgqzjg68s44Kr44K644KqDQor44Kq44OP44OeLOOCv+OCq+OCtw0KK+OCv+OCq+ODj+OCvyzjg5Ljg63jg58NCivjgrPjgrDjg4Es44K/44Kr44K3DQor44Of44Ok44Ks44OvLOOCq+OCuuODpA0KK+OCt+ODkOODpOODnizjg4/jgrjjg6ENCivjgqLjg6njgqQs44Ok44K544OS44OtDQor44Ov44K/44OK44OZLOOCueOCueODoA0KK+ODiuOCq+ODoOODqSzjg6bjgr/jgqsNCivjg5Xjg6vjg4/jgr8s44Oe44K144OK44OqDQor44K/44OL44Kw44OBLOODiuOCquOCueOCsQ0KK+ODm+ODs+ODgCzjgrnjgrnjg6ANCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OS44OtDQor44K/44Kr44KtLOODj+ODq+ODn+ODhA0KK+OCreOCr+ODgSzjgrfjg7Pjg6QNCivjgqTjg47jgqbjgqgs44Kz44Km44Kk44OBDQor44OP44OpLOODnuOCteOCqg0KK+ODpOODnuODouODiCzjgr/jgqvjg5Ljg60NCivjg6Djg6njgqvjg58s44OI44Oi44Ok44K5DQor44OQ44OQLOODnuOCteODkuOCsw0KK+ODj+OCu+OCrOODryzjg4jjgrfjg5LjgrMNCivjgrXjgrXjgq0s44Ki44Kt44OV44OfDQor44Ki44OE44K/LOODkuODiOODnw0KK+OCv+ODgeOCq+ODryzjg5Ljg63jg4TjgrANCivjg5Ljg6njg6Ljg4gs44OS44OH44Ki44KtDQor44OK44Kr44Og44OpLOODiOOCt+ODpA0KK+ODhOODoOODqSzjgr/jgqvjgqoNCivjgr/jgqvjg4/jgrcs44K944Km44Kk44OB44Ot44KmDQor44Oo44Kz44Ok44OeLOODn+ODjuODqw0KK+OCs+OCv+OCsSzjg5/jg4TjgqoNCivjgqLjg7Pjg6njgq8s44K/44Kr44K3DQor44Of44K644OOLOOCt+ODs+OCpOODgQ0KK+OCquOCquODjOOCrSzjgqLjgq3jg6kNCivjgrXjgqvjgqQs44OP44K444OhDQor44Kq44K/LOOCt+ODp+OCpuOCvuOCpg0KK+ODj+ODpOOCtyzjg47jg6rjgqoNCivjgrXjgqTjg4jjgqYs44Ki44Kt44OS44OtDQor44K/44OK44KrLOODjuODquOCsw0KK+ODj+ODq+ODj+ODqSzjg4jjgqbjgrQNCivjgqrjgqrjg4Tjgqss44Oe44K144Om44KtDQor44Kt44K/44Ks44OvLOODkuODh+ODnw0KK+ODqOOCs+OCvyzjgqvjg4Pjg5rjgqQNCivjg6jjgrfjg6Djg6ks44Ki44OE44KzDQor44Kq44Kq44OS44OpLOOCt+ODs+OCpOODgQ0KK+ODgeODo+OCrSzjgrfjgrLjg5Ljg4cNCivjgrXjgqvjgrDjg4Es44Kz44Km44Kk44OBDQor44K544K644KtLOOCouOCreODkuODrQ0KK+ODgeOCq+OCtuODryzjg57jg6bjg58NCivjg4rjgqvjgrjjg54s44Oe44K144OO44OqDQor44Ov44K/44OK44OZLOOCv+ODgOOCqg0KK+OCt+ODkCzjgrjjg6Xjg7PjgrMNCivjgrXjgqvjgqQs44OB44OP44OrDQor44Ok44Oe44Of44K144KrLOODhuODhOOCqg0KK+ODqOOCt+OCrOODnyzjgqLjgq3jg6kNCivjg5Ljg6njg4Ys44Oe44K144Om44KtDQor44Ov44Kv44K344OeLOOCv+ODgOOCtw0KK+OCouOCteODnizjg4Hjgqvjg6kNCivjgqLjgrrjg58s44K/44OA44K3DQor44Kk44OK44Kq44KrLOODkuODreOCq+OCug0KK+OCteODiuOCpCzjg5Ljg63jgrcNCivjg6Tjg57jgqbjg4Es44Ok44K544OS44OtDQor44Kk44OP44OpLOODiOOCt+ODkuOCsw0KK+OCv+ODpOODnizjgqrjgrXjg6ANCivjgrXjgrXjgq0s44K344Oz44OkDQor44OV44K444Km44OBLOODiOOCt+OCouOCrQ0KK+OCpuOCt+OCuOODnizjgrfjg7PjgqTjg4ENCivjg47jg47jg6Djg6ks44Oe44K144K/44KrDQor44OL44K3LOOCv+OCseODkuODrQ0KK+OCpOOCseODgCzjg5Ljg63jg58NCivjgrnjgq7jgr/jg4ss44OS44Ot44K3DQor44Kq44K244KtLOOCv+OCseOCtw0KK+OCs+OCseODhCzjgqLjgq3jg5LjgrUNCivjgrXjg4jjgqYs44Oo44Km44K544KxDQor44K744Oz44OQLOOCouODhOOCtw0KK+OCouOCuuODnizjg5Ljg4fjg4gNCivjg4rjgqrjgqQs44Kk44OB44Ot44KmDQor44Ob44K344OOLOODqOOCt+OCrQ0KK+OCq+ODn+ODpCzjg6Tjgrnjg5Ljg60NCivjg6Djg6njgr8s44OS44OI44K3DQor44Kk44OB44Of44OkLOOCseOCpOOCsw0KK+OCv+ODq+OCpCzjg6TjgrnjgqLjgq0NCivjg4/jgq7jg4/jg6ks44Of44Ov44KzDQor44K/44Kr44OP44K3LOOCv+OCq+OCtw0KK+OCquODgeOCouOCpCzjg5Ljg4jjgrcNCivjgqLjgq3jg6Tjg54s44Kx44Kk44K544KxDQor44Kt44Og44OpLOODqOOCt+ODkuODrQ0KK+ODj+ODpOOCtyzjg5Ljg4fjgqoNCivjg6Tjg57jgrDjg4Es44Of44OE44OrDQor44OI44Kz44OtLOODiuOCquOCv+OCqw0KK+OCq+OCueODpCzjgqjjg4TjgrMNCivjgqTjg6rjgqgs44K344Ol44Km44K4DQor44Og44Op44Kk44K3LOODn+ODiuOCsw0KK+OCt+ODs+OCv+ODiyzjg6rjg6XjgqbjgrgNCivjgqbjgqjjg44s44Of44ObDQor44Km44OB44OALOOCs+OCpuOCuA0KK+ODj+OCu+OCrOODrywNCivjgq/jg63jg4As44Or44Oq44KzDQor44Kk44OI44KmLOOCq+ODhOODkuODrQ0KK+ODm+ODquOCpuODgSzjg57jg6QNCivjgqrjgqrjg4/jgr8s44OO44OW44Ki44KtDQor44Ob44Oz44OALOODkuODh+ODpuOCrQ0KK+ODiuOCq+ODoOODqSzjgrnjgrnjg6ANCivjgrXjgqjjgq0s44Kq44Kt44Oi44OqDQor44Ki44OZLOODhuODq+ODkuOCtQ0KK+OCpuODoeODgCzjgr/jgqvjg5Ljg60NCivjg4zjg54s44Oe44K144Om44KtDQor44K/44OW44OBLOODpuOCv+OCqw0KK+OCreODoOODqSzjg5/jg4Tjg6sNCivjgqbjg4As44K/44Kr44OfDQor44Ki44Kq44KtLOODjuODquOCsw0KK+ODiuOCq+ODoOODqSzjg57jgrXjg4gNCivjg5XjgrjjgrPjgrcs44K144OI44K3DQor44K544Of44OALOOCreODqOOCtw0KK+OCr+OCuuODj+ODqSzjg47jg5zjg6sNCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ki44Op44K/LOOCteODiOODnw0KK+ODreODg+OCq+OCryzjg57jg6bjg58NCivjgqTjg47jgqbjgqgs44Of44OE44Oe44K1DQor44OE44K444Oi44OILOODnuOCteODnw0KK+ODn+OCpuODqSzjg4rjg4rjgrMNCivjg43jg6Ljg4gs44Oo44K344KqDQor44Ki44Oh44Of44OkLOODqOOCt+OCq+OCug0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg6bjgq0NCivjgqLjgqTjg5As44OO44OW44K/44KrDQor44Oo44ON44K244OvLOOCt+ODs+ODpA0KK+ODleOCuOODoOODqSzjgrfjg6XjgqYNCivjg6rjg6Xjgqbjg4gs44OS44Ot44OfDQor44Ov44K/44OK44OZLOODiOODouODnw0KK+OCreOCv+OCrOODryzjgrfjg7PjgrgNCivjgqLjgr/jg6njgrcs44OI44Oi44OK44KqDQor44Kt44Kv44OBLOOCuOODpeODsw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgr/jg4rjgqss44OS44Ot44K3DQor44Kk44Kx44OALOODkuODreODiuODqg0KK+ODqOOCs+OCq+ODryzjg5/jg4Tjg5LjgrMNCivjgq/jgrXjg4TjgrAs44K/44Kr44K3DQor44Of44K644OOLOOCseODs+OCuA0KK+ODiuOCrOODm+ODqizjgrPjgqbjgqTjg4ENCivjgrnjgq7jg6Ljg4gs44Kz44Km44K4DQor44Ki44Oz44OJ44KmLOODhOODjeOCqg0KK+OCv+OCq+ODpOODiuOCrizjg5Ljg63jg5Xjg58NCivjgrfjg5As44Oe44K144KzDQor44Kr44Of44Ok44OeLOOCq+OCuuODkuODrQ0KK+OCquOCquODkuODqSzjg5Ljg63jg58NCivjg5vjg7Pjg54s44OP44Or44Om44KtDQor44K/44OQ44K/LOODjuODluODqOOCtw0KK+OCqOODs+ODiSzjgrHjg7PjgqTjg4ENCivjgqTjgrfjgqzjgq0s44K744Kk44K4DQor44K344OQLOODpuOCpuOCpOODgeODrQ0KK+ODpOODnuODgCzjg57jgrXjg5Ljg4gNCivjgr/jgqvjg44s44Kr44OE44KqDQor44Oo44K344OALOOCv+ODhOODpA0KK+OCouODnuOCteOCrSzjg4jjgrfjg5LjgrMNCivjgqrjgrfjgqvjg68s44K344Oz44K4DQor44OL44K344OOLOODn+ODm+OCsw0KK+OCq+ODiOOCpizjgqrjgrXjg6ANCivjg4/jg57jgqrjgqss44OI44Oi44KzDQor44K144OOLOOCv+OCq+OCq+OCug0KK+OCueOCqOOCt+OCsizjgq/jg4vjg4bjg6sNCivjg4rjgqvjgr8s44OS44Ot44OfDQor44Kz44OQ44Ok44K3LOODkuODh+ODpuOCrQ0KK+OCueODieOCpizjg6TjgrnjgrcNCivjg4Tjg4Tjg58s44Kt44Oo44OS44OIDQor44Of44K/44OLLOOCs+OCpuOCuA0KK+OCpOOCt+ODgCzjg6Tjgrnjg5Xjg58NCivjgqTjgqTjgrrjgqss44Om44K/44KrDQor44K344Op44KkLOODpuODnw0KK+ODpOODnuODgCzjgqTjg6/jgqoNCivjg4Tjgrjjgqvjg4ks44Kr44K644KzDQor44Oe44OE44OK44KsLOOCs+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjgqvjgrrjgqgNCivjg5/jg4rjg58s44OS44Ot44K3DQor44K144Kr44KkLOODnuOCteODpuOCrQ0KK+OCpuOCqOOCrSzjgrfjgqrjg6oNCivjgqrjg4As44Oe44K144KqDQor44Oe44Ko44OALOOCu+OCpOOCuA0KK+ODh+OCreOCv+ODiyzjgrjjg6Xjg7MNCivjgqLjg57jg44s44K/44Kr44OS44OtDQor44Of44Ok44Kz44K3LOOCt+OCsuOCq+OCug0KK+OCouODs+OCtuOCpCzjg4jjgrfjg5/jg4ENCivjgqbjg6Hjg4As44Om44Kt44KqDQor44K/44Kt44K244OvLOOCouODhOOCtw0KK+ODoOODqeODi+OCtyzjgq3jg6jjgrcNCivjgq/jg6rjg4/jg6ks44OI44K344OS44KzDQor44Ok44Oe44K144KtLOODnuODqg0KK+OCquOCquODhOOCqyzjg5/jg4Tjg5Ljg60NCivjgqLjg5/jg44s44K/44Kr44K3DQor44Oi44OqLOODpOOCueODjuODqg0KK+ODi+OCt+ODouODqizjgrfjg7PjgrgNCivjgr/jgrHjg44s44Oe44K144KqDQor44K344Oz44Ks44KtLOODqOOCt+OCq+OCug0KK+ODnuODhOOCqizjg6jjgrfjgq0NCivjg5Xjgrjjg40s44Oe44K144KtDQor44Kr44OK44Oe44OrLOODkuODreODqOOCtw0KK+OCq+ODiuOCtuODryzjgr/jg4Tjg6bjgq0NCivjgrfjg5/jgros44Oq44Ol44Km44K4DQor44Ov44OALOOCpOODhOOCsw0KK+OCpOOCt+OCr+ODqSzjgr/jgrHjgrcNCivjg5Xjgq/jg4As44Ki44Kt44OS44OtDQor44Km44Kr44KkLOODqOOCt+OCsw0KK+OCouODquODnizjgqrjgrXjg6ANCivjgqrjgqrjgr8s44K/44Kr44Ki44KtDQor44Oi44Oq44K/44OLLOOCv+OCq+OCtw0KK+OCouODgOODgSzjg6jjgrfjg5Ljg60NCivjgq/jg57jg4cs44Oe44K144OO44OqDQor44Ki44OpLOOCueOCueODoA0KK+ODj+OCt+ODouODiCzjg4jjgqrjg6sNCivjg4jjg6jjgqrjgqss44Oe44Kz44OIDQor44Kq44Kq44OELOODhuODhOODreOCpg0KK+ODn+ODpOOCrSzjgrHjgqTjgqTjg4ENCivjgqTjgrfjgqvjg68s44K444Ol44Oz44Kk44OBDQor44Kk44Ks44Op44K3LOODiuOCquODhOOCsA0KK+OCquOCquODi+OCtyzjgq3jg7Pjg6QNCivjgrfjg6njgqTjgrcs44Kz44Km44Kk44OBDQor44Oo44Kz44OhLOODqOOCt+OCouOCrQ0KK+ODleOCuOODouODiCzjgqvjgrrjg5Ljg60NCivjgqvjg7Pjg44s44Oi44Oq44Ok44K5DQor44K/44OB44OQ44OKLOODn+ODgeOCqg0KK+ODpOODnuODgCzjg4Hjg4rjg58NCivjgqLjgrXjg58s44K344Ky44KqDQor44Of44Km44OpLOODpOOCueOCtw0KK+ODiOOCr+ODkuODrSzjg5Ljg63jg47jg5YNCivjg6Ljg6rjgqvjg68s44Oe44K144OO44OWDQor44Kk44OI44KmLOODn+OCreODkuOCtQ0KK+OCteODjizjg4jjg6Ljg5/jg4QNCivjgrnjgrrjgq0s44Oe44Kz44OIDQor44K344Oi44OI44OOLOODnuODiuODlg0KK+ODnuOCq+ODmSzjgrXjg4jjg58NCivjgqTjg4jjgqYs44Kz44Km44K4DQor44OE44Kv44OALOOCuOODpeODs+OCuA0KK+ODqOOCt+OCq+ODryzjg5/jg4TjgrANCivjgr/jgqvjg6Tjg4rjgq4s44OS44Ot44KtDQor44Ob44Oz44OALOOCv+OCq+ODqOOCtw0KK+ODi+OCt+ODjizjg6bjgqbjgrgNCivjgq3jg6Djg6ks44Oo44K344OS44OtDQor44Kr44OI44KmLOOCs+OCpuOCpOODgQ0KK+OCquOCquODj+OCvyzjgrjjg6Xjg7MNCivjgqbjg4Tjg58s44Kr44K644OS44KzDQor44Ki44Oz44OJ44KmLOOCq+OCuuODkuOCtQ0KK+ODj+ODnuOCv+ODiyzjg5/jg47jg6sNCivjgq3jg47jgrfjgr8s44K/44Kr44OV44OfDQor44Kr44Ov44K7LOODiOOCt+OCv+OCqw0KK+OCpuOCqOODjizjg6jjgrfjg5LjgrMNCivjgrfjgqvjg54s44Oq44On44Km44K4DQor44K544K644KtLOODnuOCteODpuOCrQ0KK+ODleOCuOOCquOCqyzjg57jgrXjg5Ljg60NCivjgqTjg47jgqbjgqgs44OI44Oi44OS44OtDQor44Kt44K/44K244KtLOODpOOCueODpuOCrQ0KK+OCouOCpOODmSzjg5Ljg63jgrcNCivjgqrjgqrjgqvjg68s44K144Kr44KoDQor44K/44Kx44KkLOODpOOCueODj+ODqw0KK+OCq+ODqeODj+OCtyzjg5Ljg63jgrcNCivjgrnjgrrjgq0s44Oe44Om44OfDQor44Ki44Op44KkLOODkuODreOCtw0KK+OCpOODjuODgCzjg47jg6rjg6bjgq0NCivjgqrjgq/jg6Djg6ks44Ko44OqDQor44Oe44Or44KkLOOCuOODpeODs+OCsw0KK+ODkuODreOCuuODnyzjgqLjgq3jg5LjgrUNCivjg6/jgrfjgros44K/44Kv44OkDQor44Oo44K344Og44OpLOOCv+OCq+ODkuOCtQ0KK+OCq+ODhOODnuOCvyzjgr/jgqvjgrcNCivjg57jgrnjgqvjg68s44Kr44OE44OpDQor44Kk44Ov44KqLOOCt+ODpeOCpuOCuA0KK+ODpOODnuODouODiCzjg6jjgrfjg5Ljg4gNCivjgr/jg4rjgqss44K144OI44OrDQor44K/44Kx44Km44OBLOODjuODquODpuOCrQ0KK+ODjuODj+ODqSzjgrfjg6Xjgqbjgr7jgqYNCivjg5Xjg4rjg4/jgrcs44Kr44K644OO44OqDQor44OK44K044K3LOOCseODs+OCuA0KK+OCpuODoeODgCzjgqvjgrrjg6QNCivjgqLjgq3jg6Tjg54s44OS44OI44K3DQor44OK44Kr44OALOODnuOCteODiA0KK+OCteOCpOODiOOCpizjg6HjgrDjg58NCivjgr/jg4/jg6ks44K444Ol44Oz44Kk44OB44OtDQor44OL44K344Oe44OELOODqOOCt+ODkuODrQ0KK+ODkuODqeODn+ODhCzjg57jgrPjg4gNCivjg6Hjgqvjgr8s44Oe44K144OrDQor44K/44Kr44OfLOODquODpeOCpuOCv+ODreOCpg0KK+OCveODjuODgCzjg5Ljg4fjg6bjgq0NCivjg5/jg6Tjgrbjgq0s44Om44Km44K4DQor44Oe44Or44Ok44OeLOODkuODh+OCouOCrQ0KK+ODhOODjuOCq+ODryzjg57jgrXjgrcNCivjg4/jg6njg4As44Kr44OE44OfDQor44OE44K4LOODhOOCsOODkuOCsw0KK+OCpOOCrOODqeOCtyzjg4jjgrfjgqoNCivjg6jjgrfjg4As44Kr44Kq44OqDQor44K/44Kx44Ks44K/LOOCs+OCpuOCrQ0KK+OCouODmSzjg6rjg6fjgqbjgrgNCivjgqLjgqvjg4zjg54s44OI44Kv44OS44OtDQor44Kr44Ov44OALOODkuODreOCouOCrQ0KK+OCv+OCtCzjg5Ljg63jgrcNCivjgqvjg5/jg6Djg6ks44Oe44K144K3DQor44Oe44OE44OkLOOCsuODsw0KK+OCpOODr+OCvyzjgqLjgq3jg5LjgrMNCivjg57jgqjjgqvjg68s44K144OI44K3DQor44Ok44Oe44Kw44OBLOODrOOCpOOCsw0KK+OCt+ODreOCt+OCvyzjg4jjg6Ljg5Ljg60NCivjg6Tjg57jgrfjgr8s44Oe44K144OIDQor44OE44K444Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCv+ODiuOCqyzjg6jjgrfjg5Xjg58NCivjg5/jg4rjg58s44OI44Oi44OS44OtDQor44K144OI44KmLOODqOOCt+OCouOCrQ0KK+OCpuOCquOCuuODnyzjgqLjgq3jg6kNCivjgrnjgq7jg6Tjg54s44OS44Ot44Om44KtDQor44OB44OQLOODnuOCteODpuOCrQ0KK+OCq+ODiuOCpCzjgrXjg4jjgrcNCivjg57jg4Tjg6Tjg54s44OE44Oo44K3DQor44K/44Kr44OOLOOCouOCreODqQ0KK+OCr+ODnuOCrOOCpCzjgrPjgqbjgqTjg4ENCivjgr/jgrHjgrPjgrcs44Og44OE44OS44K1DQor44OV44K/44OQLOODiOOCt+OCouOCrQ0KK+OCpuODoeOCtuOCrSzjgqvjgrrjgr/jg4ANCivjgqrjgqTjg6/jgrEs44Oo44Km44K544KxDQor44OK44Ks44OE44KrLOODnuODiuODlg0KK+OCpOODnuOCrOODryzjg5Ljg4jjg58NCivjg4/jgrfjg6Ljg4gs44Ki44Kt44OpDQor44Kq44Kq44OS44OpLOODpuOCpuOCv+ODreOCpg0KK+ODn+ODpOODkuODqSzjg5/jg4HjgqLjgq0NCivjg47jgrDjg4Es44Kx44Kk44K+44KmDQor44K544Ku44Oi44OILOOCq+OCuuODleODnw0KK+OCq+ODr+OCsOODgSzjgqvjg4Tjg47jg6oNCivjgrfjg47jgrss44OE44Oo44K3DQor44OK44Oq44K144OvLOODqOOCt+ODkuODiA0KK+ODkuODreOCuyzjgqLjgq3jg5Ljg60NCivjg4vjgrfjgrbjgq0s44K544K544OgDQor44Oi44OqLOODjuODluODpuOCrQ0KK+ODleOCq+OCqizjg6jjgrfjgrMNCivjg5/jg6Tjgrjjg54s44Kx44Kk44K+44KmDQor44Oe44OE44OOLOOCq+OCuuOCt+OCsg0KK+OCpOODr+OCpCzjgrfjgrLjg47jg5YNCivjgqvjgqQs44Of44OJ44OqDQor44K/44OK44KrLOOCr+ODi+OCsw0KK+ODgeODkCzjg57jgrXjg58NCivjgr3jg44s44OS44Ot44K3DQor44Oo44Kz44Ok44OeLOOCouOCreODkuOCtQ0KK+OCv+OCq+OCt+ODnizjgrjjg6Xjg7MNCivjgqrjgqvjg6Ljg4gs44Kz44Km44K4DQor44Of44Ok44Kr44OvLOODgOOCpOOCueOCsQ0KK+ODoOODqeODouODiCzjg4jjg6LjgqLjgq0NCivjgq3jg6Djg6ks44Kz44Km44Kk44OBDQor44Oe44OE44OK44KsLOODpuODn+OCsw0KK+ODleOCr+ODgCzjg4Tjg4jjg6ANCivjgqrjgqrjg4vjgrcs44Oe44K144K3DQor44Ki44KkLOODkuODh+OCq+OCug0KK+ODnuOCqOODgCzjg5LjgrXjgqvjgroNCivjgqTjg47jgqbjgqgs44Oo44K344OfDQor44Kk44Kk44OALOOCv+OCq+ODkuOCtQ0KK+ODleOCuOOCpCzjg5Ljg63jg6bjgq0NCivjgrXjgq/jg6njgqQs44K/44Kv44OkDQor44Oe44OE44KkLOOCpuOCpOODqg0KK+OCpOODnuODgCzjgrfjg7PjgrgNCivjg5/jg6TjgrEs44Ki44OE44K3DQor44K144Kr44KkLOODkuODreODkuOCtQ0KK+OCq+ODiOOCpizjgqrjgrXjg6ANCivjgqTjg6/jgr8s44OK44Kq44OIDQor44Kq44Kq44OOLOODnuOCteODpA0KK+OCpOOCveODmSzjgr/jgqvjg6jjgrcNCivjgqrjg6Tjg57jg4As44OE44OI44OgDQor44OI44Km44K444OeLOOCv+ODhOODkuODrQ0KK+OCv+OCseOCpuODgSzjgqvjgrrjg5LjgrMNCivjg4rjgqvjg6Tjg54s44Oe44K544KqDQor44K344Op44Kk44K3LOOCquOCteODoA0KK+OCq+ODjuODnuOCvyzjgqLjg4TjgrcNCivjgrnjg4njgqYs44K/44Kr44OS44OtDQor44K344Op44Ok44OeLOOCouOCreODkuODrQ0KK+OCquOCquODpCzjg57jgrXjg6sNCivjg5/jg4rjgqzjg68s44OI44Oi44OS44OtDQor44Kt44Og44OpLOOCv+ODhOODpA0KK+OCv+OCq+OCrizjg4DjgqTjgr4NCivjgrXjg4jjgqYs44Om44Kt44KqDQor44OV44K444Ov44OpLOODn+ODhOODqw0KK+OCpOODouODiCzjg6jjgqbjgr8NCivjgqbjgqjjg44s44OI44Oi44OS44OtDQor44Kt44On44Km44OOLOOCseODs+OCtA0KK+OCreODquOCpizjg6jjgrfjgr/jg4ANCivjgq/jg5zjgr8s44OE44ON44KqDQor44Kz44K744KtLOOCv+OCq+OCtw0KK+OCueOCtuOCrSzjg57jgrXjg5Ljg60NCivjgr/jgqvjgrXjgq0s44Ok44K544OS44K1DQor44OE44Kr44Oi44OILOOCt+ODs+OCpOODgQ0KK+ODiuOCpOODiOOCpizjgrHjg7PjgrgNCivjg4rjgqvjgrTjg6Es44OS44Ot44Kr44K6DQor44OK44Kr44Og44OpLOODkuODh+ODpOOCuQ0KK+ODj+OCruODr+ODqSzjgqvjg4Tjg58NCivjg57jg4Tjg6Ljg4gs44Kr44Oo44KzDQor44Kz44Oz44OOLOODqOOCt+ODkuOCtQ0KK+OCteOCpOOCsOOCtSzjgr/jg6Ljg4QNCivjg5vjg7Pjg4As44Om44Kt44KqDQor44K/44OK44KrLOODkuODreOCtw0KK+ODnuODhOODiOODnyzjgqvjg6jjgrMNCivjgqLjgqvjgrXjgqss44OS44Ot44Ki44KtDQor44K744Oz44Ks44OzLOOCouOCreODkuODhw0KK+OCv+OCseOCqizjg47jg6rjgqvjgroNCivjg6Djg6njgr8s44OS44Ot44Om44KtDQor44Kr44Ov44K7LOODiOODouODkuODrQ0KK+ODi+OCt+OCtuOCrSzjgr/jg4Tjg6bjgq0NCivjg5jjgqTjg4jjgqYs44Ko44Kk44Kk44OBDQor44Kq44Kq44K144OvLOODnuOCteODj+ODqw0KK+OCpuOCqOODgCzjg6jjgqbjgqTjg4ENCivjgqvjg4rjg6Tjg54s44Ok44K544OS44KzDQor44OP44Op44OALOODiOODouODpuOCrQ0KK+ODiuOCq+OCrOODryzjgqLjg4TjgrcNCivjg5/jg6Tjg6Ljg6os44Oe44Kz44OIDQor44Kr44KkLOOCseODs+OCuA0KK+OCreOCsOODgSzjgrfjg6XjgqbjgrgNCivjgrXjgr/jgrEs44Kx44Oz44K4DQor44Kq44Kq44Kq44KrLOODiOOCt+ODreOCpg0KK+ODiuOCq+OCtuODryzjgrPjgqbjgrgNCivjg6Tjgrnjgqrjgqss44Oe44K144OS44OHDQor44Kv44Ot44Of44OELOODpOOCueOCv+OCqw0KK+OCq+ODiuODgCzjg5Ljg4fjgq0NCivjg57jg6vjgqvjg68s44OS44OH44KtDQor44OK44Ks44K144OvLOOCv+OCseODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgrfjg6XjgqYNCivjgqjjg7Pjg4ks44Oe44K144OO44OqDQor44Kk44Oz44OK44OfLOODj+ODq+OCqg0KK+ODpOODnuODouODiCzjgq3jg6jjgr/jgqsNCivjg4rjgqzjgq/jg6ks44K144OI44K3DQor44Km44Ko44OOLOODnuODgeOCsw0KK+ODi+OCt+OCtuOCqyzjg5/jgqsNCivjgrXjg4jjgqYs44OG44OE44Ot44KmDQor44Oi44Oq44Ok44OeLOOCv+ODhOOCqg0KK+OCs+ODj+ODpOOCuyzjgrfjgrLjgqoNCivjg4njgqTjgr8s44OS44Ot44K3DQor44Ob44K944Kr44OvLOODjuODluOCqg0KK+OCouOCquOCrSzjg5/jg4TjgqQNCivjg57jgrnjg5/jg4As44OI44Oi44OS44KzDQor44Kq44OBLOODnuOCteOCpOODgQ0KK+OCueOCuuOCrSzjgrHjg7PjgrgNCivjgrnjgq7jg6Tjg54s44Kx44Oz44Kk44OBDQor44OV44K444Ov44OpLOOCu+OCpOODpA0KK+OCv+ODiuODmSzjg5/jg4Tjg6bjgq0NCivjg4jjg4As44Ki44OE44K3DQor44OE44Oc44KkLOODpOOCueOCqg0KK+OCueOCruOCvyzjg57jgrXjg47jg6oNCivjgqLjg4Djg4Es44Kx44Kk44K/DQor44OV44K444KkLOODnuOCteOCrQ0KK+OCueOCrOODouODqizjg5Ljg63jgrcNCivjg6Tjgrnjg4As44OK44Kq44OS44KzDQor44K/44Kr44OP44K3LOODkuODreODpuOCrQ0KK+OCv+OCrOODnyzjg57jgrXjg6sNCivjg4jjg5/jg6Tjg54s44Om44Km44K4DQor44OP44ON44OALOODpOOCueODpuOCrQ0KK+OCquOCtuOCrSzjgr/jgrHjgrcNCivjgqrjgrDjg6ks44Ok44K544Om44KtDQor44OG44Op44K144KtLOODjuODluODpA0KK+ODhOODgeODpCzjgqjjg4TjgrMNCivjgqrjgqvjg4As44OG44Or44KqDQor44Ki44OZLOODjuODluODpuOCrQ0KK+OCouODmSzjg5/jg4TjgqgNCivjg6Ljg6rjg6/jgq0s44Kz44Km44Kk44OB44Ot44KmDQor44OP44Ok44OOLOOCseODs+OCvw0KK+ODiOODn+ODiuOCrCzjgrjjg6Xjg7MNCivjgrnjgrrjgq0s44Of44KtDQor44Kr44K/44Ku44OqLOOCteODiOOCtw0KK+OCouODj+ODqSzjg4/jg6Tjg4gNCivjg5vjgrcs44OK44OK44KzDQor44Kk44K344Kr44OvLOOCv+ODhOODpA0KK+OCt+ODouODoOODqSzjg6jjgrfjg5LjgrUNCivjg6/jgq3jg6Ljg4gs44Of44Om44KtDQor44Kr44Ov44OGLOOCv+OCq+OCtw0KK+OCouODluODqeOCq+ODryzjgqvjgrrjgqrjg58NCivjg6jjgrfjgr/jgrEs44K/44Kr44K3DQor44Kk44K344OALOODnuOCteODpuOCrQ0KK+ODm+ODs+ODgCzjg4jjgrfjg63jgqYNCivjgrfjgr/jg54s44Oo44K344KqDQor44OO44Kw44OBLOOCv+OCseOCtw0KK+ODn+OCuuOCpCzjgqLjg6TjgqoNCivjgqLjg7Pjg4njgqYs44OK44Kq44OV44OfDQor44Oo44ON44K344OeLOODiuODhOODnw0KK+OCouOCreOCvyzjgrjjg6Xjg7PjgrMNCivjgqbjgqgs44Ki44OE44K3DQor44K544KuLOOCs+OCpuOCpOODgQ0KK+ODiuOCq+OCuOODnizjg57jg6oNCivjgqvjgrXjgqrjgqss44OI44K344OS44KzDQor44OO44OALOODhuODhOODleODnw0KK+ODnuODhOOCtuODryzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg6/jgr/jg5ks44K/44OE44KqDQor44Ki44Kk44K244OvLOOCseOCpOOCuOODreOCpg0KK+OCpOODr+OCtSzjgrfjg7MNCivjgrPjgqws44Ki44Kt44OS44KzDQor44OS44Ks44K344K/44OLLOODkuODh+ODleODnw0KK+OCpOOCseODgCzjg4jjgrfjg6QNCivjgqLjgq3jg4rjgqss44Ok44K544OP44OrDQor44OV44K444K/LOOCq+OCuuODpA0KK+ODpOODnuOCquOCqyzjg5LjgrXjgr/jgqsNCivjg6/jg4Es44K744OE44OkDQor44Km44Ko44OOLOOCseODs+OCv+ODreOCpg0KK+OCpuOCt+OCrSzjgqvjgrrjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44OP44Or44OS44KzDQor44Kr44OI44KmLOODnuOCteODiOOCtw0KK+ODiuOCrOOCpCzjgr/jg4Djg5Ljg60NCivjg5Xjgq/jg4As44Ki44Ok44KzDQor44OK44Kr44K/44OLLOOCqOODnw0KK+ODkuODqeOCteODryzjg4rjgqzjgrMNCivjg5/jg6Tjgrbjgq0s44Oe44K144OrDQor44OG44Op44K344OeLOODoOODjeOCq+OCug0KK+OCouODqeOCpCzjg4HjgqwNCivjgr/jg4rjgqss44K344Oz44Kk44OBDQor44Kr44ON44KzLOOCv+OCq+OCouOCrQ0KK+OCteODiOOCpizjg4bjg4TjgrgNCivjg4rjg6rjgr8s44K344Ol44Km44Kk44OBDQor44OK44Ks44K344OeLOOCuOODpeODs+OCpOODgeODrQ0KK+OCteOCq+ODjizjg4jjgrfjgqoNCivjg5/jgqbjg6ks44K144OI44K3DQor44Ok44Oe44Kw44OBLOOCseOCpA0KK+OCquODh+ODqSzjg4rjgqrjg4jjgrcNCivjgqLjg5ks44Ki44OE44K3DQor44Kz44OA44OeLOOCq+OCuuODkuODrQ0KK+ODpOODnuODouODiCzjg5Ljg63jg6bjgq0NCivjgqrjgrfjg54s44OI44Kq44OrDQor44Kk44K344K6LOODhOODiOODoA0KK+OCq+ODs+ODkOODpOOCtyzjg6bjgq3jgqoNCivjgqrjgqrjgqvjg68s44OS44Ot44Om44KtDQor44OS44Ko44OALOOCv+OCseODkuOCsw0KK+OCpOODjuODnuOCvyzjg5Ljg63jg58NCivjg57jgq3jgr8s44OI44K344OkDQor44Ks44OK44OPLOOCv+OCq+ODpuOCrQ0KK+ODj+ODpOOCq+ODryzjg5Ljg63jg6bjgq0NCivjgqLjgqvjg4zjg54s44OG44OE44OkDQor44Og44Ot44Kr44OvLOODnuOCteODjuODqg0KK+OCquODjizjgrHjgqTjgrnjgrENCivjgq3jg6Djg6ks44K344On44Km44K0DQor44OP44K/44K244OvLOODpOOCueOCsw0KK+ODleOCuOOCvyzjg57jgrXjgq0NCivjgqbjgqjjg4As44OA44Kk44K544KxDQor44Ok44Oe44OO44Km44OBLOOCpOOCteOCqg0KK+ODleODq+OCvyzjg6jjgrfjg5Ljg60NCivjgqrjgq/jg6Tjg54s44Kx44Oz44Kk44OB44OtDQor44Kk44OI44KmLOODleODn+OCqg0KK+OCquOCteODiuOCpCzjgrvjgqTjgqTjg4ENCivjgrPjgr/jg4ss44K/44Kx44K3DQor44Kq44Kq44OE44KrLOOCv+ODgOOCouOCrQ0KK+ODleOCr+OCt+ODnizjgrPjgrnjgrENCivjgqTjgqTjgrrjgqss44Kx44OzDQor44Ov44K/44OK44OZLOODhuODq+OCouOCrQ0KK+ODouODquOCvyzjgrHjg7PjgqTjg4Hjg60NCivjgqvjg4jjgqYs44OS44Ot44KtDQor44Ob44Oz44OALOODiOOCt+OCouOCrQ0KK+OCq+ODiOOCpizjgqLjgq3jg47jg6oNCivjgqLjgrXjg4zjg54s44Ok44K544OS44OtDQor44Ki44K644OeLOODnuOCteOCqg0KK+ODhuODqeOCteODryzjg5/jg4TjgqoNCivjgqLjgqvjgrcs44OE44ON44KqDQor44Kr44OI44KmLOODiuOCquODiA0KK+OCquODjuOCteODiCzjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44OS44Ot44OE44KwDQor44OO44Og44OpLOODkuODh+ODnw0KK+OCpOODjuOCpuOCqCzjgqjjgqTjgqTjg4ENCivjg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44K/44Og44OpLOOCrOOCrw0KK+OCteOCq+OCpCzjgrnjgqjjg47jg5YNCivjgrnjgq7jg6Djg6ks44Oq44On44KmDQor44OI44Of44Ok44OeLOOCseOCpA0KK+OCq+OCreOCtuODryzjg4jjgrfjgqLjgq0NCivjg4vjgrfjgr/jg4ss44K344On44Km44Kk44OB44Ot44KmDQor44Ki44K144Kv44OpLOOCt+ODs+ODpA0KK+OCpOOCt+OCtuOCrSzjgrXjg4jjgrcNCivjg57jg4Tjg6Ljg4gs44K344Oz44Kk44OB44Ot44KmDQor44OK44Ks44KqLOODiOOCt+OCqg0KK+OCreODjizjg6rjgqgNCivjgqLjg5ks44K/44K544KvDQor44OILOOCs+OCpuOCuA0KK+ODpOODnuOCrSzjgrPjgqbjgqTjg4ENCivjgqLjg6njgqQs44Ky44OzDQor44Ok44Oe44OALOOCseOCpOOCuA0KK+OCquOCr+ODoOODqSzjgqvjgrrjgqgNCivjg4/jg6ks44K344On44Km44K/44Ot44KmDQor44Ok44Oe44Oi44OILOOCq+ODhOODkuOCtQ0KK+ODiuOCq+ODoOODqSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgqLjg6njgqQs44Kr44K644OkDQor44Kk44Kx44OJLOODnuOCteOCv+OCqw0KK+OCpOODiOOCpizjgrHjgqTjgrgNCivjgqTjg4jjgqYs44Om44Km44K4DQor44Km44Oq44Ol44KmLOOCouOCreODqQ0KK+OCpuODgeODpOODnizjgr/jg4DjgrcNCivjgqjjg47jg6Ljg4gs44OS44Ot44Of44OBDQor44Ko44K644OpLOODiOOCquODqw0KK+OCquOCquODhOOCqyzjgrHjgqTjgrnjgrENCivjgqjjg4vjg6Ms44K544K544OgDQor44Ki44Kr44KqLOOCseOCpOOCueOCsQ0KK+OCquOCquODi+OCtyzjgrfjg6fjgqbjgrgNCivjgqvjgqzjg6Qs44Kk44OK44OzDQor44Kr44Oe44K/LOOCv+OCq+ODkuODrQ0KK+OCq+ODr+OCq+ODnyzjg47jg5bjg5LjgrUNCivjgrXjgrXjgq0s44Ok44K544Oo44K3DQor44K/44Kr44OP44K3LOODiuOCquODkuOCsw0KK+OCv+ODgCzjgrPjgqbjgqTjg4ENCivjg4vjgrfjg44s44Oe44K144Oo44K3DQor44Ki44K144KqLOODiuOCquOCrQ0KK+ODj+OCt+ODouODiCzjg4rjgqrjgq0NCivjg4/jg4Pjg4jjg6os44K/44Kr44KzDQor44Ob44K3LOOCv+OCqg0KK+ODm+ODquOCvyzjgrfjg7PjgqTjg4ENCivjg57jgqjjgr7jg44s44OK44Or44OS44OHDQor44Oe44Ko44K444OeLOODn+ODjuODqw0KK+ODn+ODpOOCtuOCrSzjg6bjg5/jgrMNCivjgqLjg6njgqQs44Oo44K344OfDQor44Oi44OqLOOCs+OCueOCsQ0KK+ODnuOCqOODgCzjg5Ljg63jgrcNCivjgqrjg4Es44Kx44OzDQor44Ki44K144Kv44OpLOODjuODquOCqg0KK+OCpuOCteODnyzjgqLjg4TjgrcNCivjgqrjgq/jg6Tjg54s44K/44Kr44K3DQor44Kr44Oq44OkLOOCv+OCq+ODkuOCsw0KK+OCpuOCqOODgCzjg5Ljg4fjg6bjgq0NCivjgqrjgr/jg5ks44Kx44Kk44K+44KmDQor44Kt44Og44OpLOOCpOOCteODoA0KK+OCr+OCt+ODgCzjg6jjgrfjg4/jg6sNCivjgqLjg57jg48s44Kz44Km44K4DQor44Kz44Oz44OJLOODqOOCt+OCrQ0KK+OCt+ODn+OCuizjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjgrnjgrrjgq0s44K344Ol44Km44Kz44KmDQor44K544OzLOOCueODn+OCqg0KK+OCv+ODieOCs+ODrSzjg5Ljg4jjgrcNCivjg4jjg43jgrXjgq8s44Kk44K144OgDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODnuOCueODgCzjg5Ljg63jgqoNCivjg5/jg6Tjgrbjgq0s44Of44OP44OrDQor44Oo44K344OK44KsLOOCouOCreODkuOCtQ0KK+ODqOOCs+OCq+ODryzjgr/jgq/jg54NCivjg4Tjg4Hjg6Qs44Oe44Om44OfDQor44K/44Kr44OP44K3LOODnuOCteODjuODqg0KK+OCv+ODiuODmSzjg57jgrXjgrgNCivjgqTjg4jjgqYs44Kx44Kk44K544KxDQor44OK44Ks44KqLOOCt+ODs+OCpOODgQ0KK+OCteODiOOCpizjgr/jgrHjgrcNCivjgr/jg4As44OI44Oi44OS44OtDQor44Ki44Kt44Oi44OILOOCt+ODpeODs+OCueOCsQ0KK+OCv+ODoOODqSzjg57jg6Ljg6sNCivjgr/jg6Djg6ks44Kr44K644Om44KtDQor44Kq44KrLOODn+ODgeODj+ODqw0KK+OCteOCr+ODqeOCrizjgrHjg7PjgqTjg4ENCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Oi44Oq44Kq44KrLOOCv+ODgOOCtw0KK+ODpOOCsOODgSzjg6bjgqbjgrcNCivjg5/jg6Tjg6Ljg4gs44K144OI44K3DQor44K344Op44Kr44OvLOODkuODh+OCrQ0KK+OCquOCquODhOOCqyzjg5Ljg4fjgq0NCivjg6Tjg57jg6Ljg4gs44OI44Oi44Ok44K5DQor44OK44Kr44Oe44OBLOODpOOCueODleODnw0KK+ODr+OCq+ODj+ODqSzjg6TjgrnjgqoNCivjgqLjgq0s44K/44Kr44K3DQor44K/44Kt44K/LOOCq+OCuuODkuODrQ0KK+OCouODqeOCq+ODryzjgrHjgqTjgqTjg4ENCivjg57jg4Tjgqos44Kz44Km44K4DQor44OB44On44KmLOODpuOCpuOCpOODgQ0KK+OCr+ODreODgCzjgrfjgrLjg6sNCivjg6Tjg57jgrfjgr8s44K/44Ot44KmDQor44OI44Oi44Kq44KrLOOCqOODn+OCsw0KK+ODiuOCq+OCqizjg6/jgr/jg6sNCivjgqLjgr0s44OG44Or44Kr44K6DQor44OV44Kv44OALOODjuODluOCv+OCqw0KK+OCouOCquOCrSzjg5Ljg4jjgrcNCivjgq/jg6ss44OS44K144OIDQor44Og44Op44Kr44OfLOODpOOCueODkuODrQ0KK+OCr+ODreODgCzjgr/jgq/jg6QNCivjg5/jgqvjg58s44Ki44Kt44OS44OtDQor44Kr44Of44Og44OpLOODkuODreODpuOCrQ0KK+OCreOCv+OCuOODnizjg4rjgqrjgq0NCivjg57jg6vjg6Tjg54s44Oo44K344OS44K1DQor44K144K/44KxLOOCseODs+OCpOODgQ0KK+ODouODhuOCrSzjgr/jgrHjgrcNCivjg4jjg5/jgr8s44OV44KtDQor44OL44OvLOODleODn+OCsw0KK+OCv+OCq+ODkOOCv+OCsSzjgrfjgrLjg47jg6oNCivjgqLjgrrjg54s44Oe44K144OrDQor44OV44Or44OkLOOCteODgeOCsw0KK+ODiuOCuSzjg6jjgrfjg5Ljg60NCivjgrPjg6os44Oe44OqDQor44Kk44Kx44OALOODnuOCteODkuODrQ0KK+OCtOODiOOCpizjgrPjgqbjgrgNCivjg5Xjgq/jg4As44OS44Ot44Om44KtDQor44K544Ks44OP44OpLOOCuOODpeODs+OCuA0KK+OCreODoOODqSzjg4jjgrfjg5LjgrMNCivjgr/jgqvjgrss44Oe44OqDQor44OL44K344Kq44KrLOODquODp+OCpg0KK+ODleODq+OCq+ODryzjg4bjg4TjgqoNCivjgq/jg4njgqYs44Kx44Oz44Kk44OBDQor44K/44Kr44OP44K3LOOCseODs+ODiA0KK+ODpOODnuODouODiCzjg6jjgrfjg5Ljg60NCivjg5/jg6Tjg6Ljg4gs44Oq44On44Km44OY44KkDQor44OO44K/LOODpuOCreODkuODrQ0KK+ODiuOCq+ODoOODqSzjgrfjg47jg5YNCivjgqLjgq3jg5As44Of44OkDQor44Kk44Ov44KtLOODnuOCs+ODiA0KK+OCq+ODiOOCpizjgrfjg5sNCivjg6Ljg6rjg6Ljg4gs44Oe44K144Kr44K6DQor44OK44Kr44Og44OpLOOCq+OCuuODiOOCtw0KK+ODiuOCq+ODpOODnizjgqvjgrrjg6QNCivjgqrjgqrjgr/jg4ss44K344Ky44OS44OtDQor44K544Ku44Ok44OeLOODn+ODjuODqw0KK+OCueODsyzjg4jjg6jjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44OS44Ot44K3DQor44Ob44Oz44OJLOODpuOCv+OCqw0KK+ODj+OCrCzjgqvjgq/jgrgNCivjgrfjgqrjgrbjgq0s44Kr44K644OS44KzDQor44OV44K444OOLOODn+ODjuODqw0KK+OCquODjizjgrHjg7PjgrgNCivjgqLjg7Pjg4njgqYs44Oo44K344KqDQor44Ok44Oe44Kw44OBLOODiOOCt+OCouOCrQ0KK+OCr+ODreODgCzjgr/jgqvjgrcNCivjgqbjg44s44Oq44On44Km44Kk44OBDQor44Kk44OI44Km44K/44OLLOOCv+OCseODkuOCsw0KK+OCquOCqyzjgqjjg4Tjg58NCivjg5/jgqbjg6ks44OO44OW44Om44KtDQor44OP44K344Oi44OILOOCq+ODig0KK+OCqOODouODiCzjg57jgrPjg4gNCivjgrPjgqws44OS44Ot44K3DQor44Kt44OP44OpLOODkuODreOCtw0KK+ODnuODhOODgCzjg5Xjg5/jgr/jg4ANCivjg6Tjg57jg4As44Ki44Kt44KzDQor44K/44Kr44OP44K3LOODqOOCpuOCpOODgQ0KK+ODpOODj+OCvyzjg5Ljg4fjgqoNCivjgr/jgrbjgq0s44Kx44Kk44K/DQor44Ok44Oe44Oi44OILOODquODpeOCpuOCpOODgQ0KK+OCv+OCq+ODgCzjg5Ljg63jg58NCivjg47jg4As44Oe44K144OE44KwDQor44K144Kk44Of44On44KmLOOCq+OCquODqw0KK+OCs+ODkOODpOOCtyzjgqLjg6njgr8NCivjg5Xjgrjjgq0s44Kx44Oz44K4DQor44K344Op44K144KrLOODleODn+OCqg0KK+OCv+OCq+ODj+OCtyzjg4jjgqrjg6sNCivjg6Tjg4Qs44Ki44OE44KqDQor44Km44Kq44K/44OLLOODleODn+ODkuOCsw0KK+OCv+ODoOODqSzjg4jjgrfjg5LjgrMNCivjg57jg4Tjgqos44K144OI44K3DQor44OK44Kr44K244OvLOOCv+OCr+ODpA0KK+OCreODgCzjg6bjgq3jgrMNCivjgr/jg7PjgrIs44OG44OE44Ot44KmDQor44OS44Ot44K7LOOCueOCueODoA0KK+ODnuODhOOCt+ODnizjg5/jg4Hjg6QNCivjgqrjgqvjg44s44K144OI44OrDQor44Ki44Kq44KtLOODqOOCpuOCpOODgeODreOCpg0KK+ODj+OCu+OCrOODryzjg6rjg6XjgqbjgrgNCivjg4vjgrfjg5vjg6os44OB44Kr44OpDQor44Kk44K344K644KrLOOCv+OCq+ODpA0KK+ODhOODnOOCpCzjg5Ljg4fjg6bjgq0NCivjgqTjgrfjg4As44Oe44K144OrDQor44OP44K344Oi44OILOOCteODiOODqw0KK+OCtOODiOOCpizjgrfjg7PjgrgNCivjgqLjgq3jg6Tjg54s44OS44Ot44KtDQor44Of44OE44OP44K3LOOCt+OCsuODqw0KK+OCtOOCt+ODnizjgqvjgrrjgqoNCivjg5Xjgq/jg4As44OS44Ot44K3DQor44Ok44Oe44K344K/LOODiuOCquODleODnw0KK+ODiuOCq+OCtuODryzjg5LjgrXjgrcNCivjg4vjgrfjgqvjg68s44OS44OI44K3DQor44Kk44Kx44Km44OBLOOCq+OCuuODpuOCrQ0KK+OCv+OCrOODnyzjgr/jgqvjgqoNCivjgqvjg6/jgq3jgr8s44Kx44Oz44K444Ot44KmDQor44OK44Kr44Og44OpLOOCrOOCrw0KK+OCs+ODnuOCpCzjgrPjgrnjgrENCivjg5vjgrfjg6Qs44Ki44Om44OgDQor44K544Of44OILOODnuOCteODleODnw0KK+ODm+OCt+ODjizjgqvjgrrjgqoNCivjg4rjgqvjg6Qs44K344Oz44Kk44OBDQor44OP44OpLOODn+OCuuODmw0KK+ODoOODreODpOODnizjgqvjgrrjg5LjgrMNCivjg6Ljg6os44OS44OH44KtDQor44K344Op44Kk44K3LOODnuOCteODkuODrQ0KK+ODkuODqeODjizjgrPjgqbjgrgNCivjg4/jgrfjg6Ljg4gs44Om44Km44KzDQor44Ki44OZLOOCuOODpeODs+OCuA0KK+OCpOOCt+OCq+ODryzjgqLjg6rjgqvjg4QNCivjgqLjgrrjg54s44Oo44K344OfDQor44Kq44Kq44OE44KrLOODjuODluOCqg0KK+OCpOODiOOCpizjgrHjgqQNCivjgqrjgrfjg54s44OB44Kr44KqDQor44Kz44K244KkLOOCreODqOODkuODrQ0KK+OCq+ODr+OCq+ODnyzjg57jgrXjg4jjgrcNCivjg4rjgqvjg44s44Og44ON44OS44KzDQor44Km44K444Oi44OILOODnuOCteODkuOCsw0KK+OCreOCt+ODgCzjg5Ljg4jjgrcNCivjgrPjgqTjgrrjg58s44OO44Oq44KzDQor44OK44Kk44OI44KmLOODiOOCt+ODkuODrQ0KK+ODqOOCt+OCuuODnyzjg6jjgrfjgq0NCivjgrnjgq7jg6Ljg6os44OI44K344OS44OtDQor44Ki44Kq44KtLOODiOODouODj+ODqw0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgqTjg4ENCivjgqTjgqws44OO44Oq44Kr44ONDQor44Kr44Ov44OQ44K/LOODjuOCvuODnw0KK+OCt+ODkOOCvyzjg5Ljg63jg5Ljg4cNCivjg4Djg7Ms44Oe44OK44OfDQor44K/44Kw44OBLOOCq+OCuuODkuODrQ0KK+ODnuODgeODgCzjg4jjg6LjgqoNCivjgqLjgrfjg4As44Om44Km44KzDQor44Ki44Oz44OJ44KmLOODhuOCpOOCuA0KK+ODoOODiOOCpizjgqvjg4Tjg47jg6oNCivjgrPjg6Tjg54s44Kt44Oo44OIDQor44K544K644KtLOOCseOCpOOCpOODgQ0KK+ODjuODoOODqSzjgrjjg6Xjg7MNCivjgqTjg4jjg6Qs44Oe44K144OI44K3DQor44OB44Kr44Kq44KrLOODhOODiOODoA0KK+OCuOODs+ODlizjg5/jg4Hjg6TjgrkNCivjgqLjg4Djg4Es44Oe44K144K3DQor44Kr44Ov44KkLOODpOOCueOCtw0KK+ODn+ODjuODryzjgrPjgqbjgqTjg4ENCivjgqLjgrXjg5Is44OI44K344Ki44KtDQor44Kq44Kq44K/LOODqOOCt+OCouOCrQ0KK+OCv+ODiuOCqyzjgq3jg6jjgrcNCivjgq3jg6ks44Oe44K144K3DQor44Ok44Oe44K244KtLOODn+OCqw0KK+ODpOODnuOCpuODgSzjg5/jg4Tjg6sNCivjg5vjg4Pjgr8s44Oo44K344OO44OqDQor44Ki44Op44Kr44OvLOOCt+OCsuOCqg0KK+OCquOCr+ODoOODqSzjgrjjg6Xjg7MNCivjgqvjg43jgrMs44Kk44K/44OrDQor44Ki44Ok44OOLOOCs+OCpuOCrQ0KK+ODj+ODpOOCq+ODryzjg4jjg6Ljg4rjg6oNCivjgqTjg4jjgqYs44Oe44K144OS44KzDQor44Kq44Kv44Og44OpLOODkuOCteODjuODqg0KK+OCv+ODs+OCtuODryzjgr/jg4TjgqoNCivjgrXjgq3jg44s44Oo44K344OS44OtDQor44Kr44Ov44OP44OpLOODiOOCquODqw0KK+OCv+ODq+OCpCzjg6jjgrfjgqoNCivjgqLjg6rjg6Ljg4gs44Ki44OE44K3DQor44Ko44OT44KzLOODiOODouODiuODqg0KK+ODkuODjizjgqvjg4Tjg6QNCivjg6Tjg57jg4As44K344On44Km44Oo44KmDQor44Kq44Kq44OOLOOCr+ODnw0KK+OCv+OCseOCt+OCvyzjg6bjg6rjgrMNCivjg4/jg6Tjgrcs44Kt44On44Km44KzDQor44Kk44K344OALOOCseODsw0KK+OCt+OCquODpCzjgr/jgrHjgrcNCivjgqLjg7Pjg4njgqYs44OO44Oc44OrDQor44Oe44OE44OQ44OpLOODnuOCteODleODnw0KK+ODi+OCt+ODgCzjg57jgrXjg6sNCivjg4rjgqvjg6Djg6ks44Oe44K144OO44OqDQor44Kk44Kx44OALOOCuOODpeODsw0KK+ODj+ODpOODnyzjg5Ljg4fjgqoNCivjgrnjgrrjgq0s44K344On44Km44K+44KmDQor44Kq44Ks44OvLOOCouOCreODqQ0KK+OCpOOCt+OCq+ODryzjg4jjgrfjgqLjgq0NCivjgqLjgrXjg58s44Kx44Oz44K4DQor44OP44K/44Kx44Ok44OeLOOCv+OCq+OCtw0KK+ODm+ODquODn+OCvizjgrHjgqTjgrnjgrENCivjg57jg6vjgr/jg4ss44OB44OS44OtDQor44K144OI44KmLOOCouOCreOCqg0KK+OCteOCq+ODiuOCqyzjgqvjgrrjgqoNCivjg4rjgqvjg6Djg6ks44OI44Oi44OS44KzDQor44Kk44OI44KmLOOCq+OCquODqw0KK+ODleODq+ODiuOCrCzjg4/jg6vjg5LjgrMNCivjg5Xjgq/jgrfjg54s44Oe44K144OIDQor44Of44K644Ks44OfLOODqOOCt+ODpuOCrQ0KK+OCv+OCseOCpuODgSzjg5/jg4HjgqoNCivjg4jjg6rjgqbjg58s44Of44OO44OrDQor44ON44Ku44K3LOOCt+OCsuOCrQ0KK+OCs+ODpOODnizjgqLjgq3jg47jg6oNCivjgqrjgrfjg54s44OK44K544KqDQor44Kr44K/44Kq44KrLOOCv+OCq+OCtw0KK+OCv+OCreOCsOODgSzjg5Ljg4fjg5Xjg58NCivjgrPjg57jg4Qs44Kr44K644KqDQor44Ok44KuLOOCv+OCq+OCtw0KK+OCv+OCq+OCrizjg6jjgrfjgqoNCivjg57jgrnjgqQs44OG44OE44Ot44KmDQor44OP44Ok44K3LOODkuODiOOCtw0KK+OCouODjeOCv+OCpCzjg57jgrXjg6bjgq0NCivjgq3jg4/jg6ks44Kx44Oz44Kk44OBDQor44K144Kk44OI44KmLOOCt+OCsuOCqg0KK+OCreOCv+ODr+OCrSzjg5/jg4Hjg5LjgrMNCivjg47jgrDjg4Es44OS44Ot44Of44OBDQor44K144Kr44Kw44OBLOODouODiOOCpA0KK+ODi+OCtyzjg6bjgq3jg5/jg4QNCivjgqTjgrHjg4As44OG44OE44KqDQor44K144OI44KmLOOCv+OCq+OCtw0KK+OCpOODnuOCpCzjg57jgrXjg5Ljg4gNCivjg6Tjg57jg4As44K344Ky44Kk44KvDQor44K/44OK44KrLOODpOOCueODkuOCtQ0KK+OCquOCquOCteOCsyzjg57jgrPjg4gNCivjgrPjg6Djg60s44Kr44OK44OhDQor44K144Kk44OI44KmLOODkuODh+OCrQ0KK+OCueOCuuOCrSzjgrHjg7PjgqTjg4ENCivjg5Xjg4rjg4jjgqzjg68s44Om44Kr44OqDQor44Kk44K344KkLOODhuODq+OCouOCrQ0KK+ODnuODhOOCpCzjg47jg5zjg6sNCivjgrnjgqjjg5Ljg6ks44OS44OI44K3DQor44OS44Ot44K/44OLLOODqOOCt+OCqg0KK+ODkuOCrOOCtyzjgq3jg6jjgrcNCivjgqTjg6Djg6ks44Ki44OE44KzDQor44Ki44OZLOODpOOCueODjuODqg0KK+ODqOODjeOCr+ODqSzjg47jg5bjg4jjgrcNCivjg6/jgr/jg4rjg5ks44Oo44K344Of44OEDQor44K544KsLOODkuODreOCtw0KK+OCteODjizjg5Ljg63jgrcNCivjgrfjg5As44OI44Oi44K4DQor44Ok44Oe44Kw44OBLOOCt+ODpeODs+OCuA0KK+OCreOCtuODryzjg6jjgrfjg5Ljg60NCivjgqvjgrXjg57jgq0s44Oo44K344Ot44KmDQor44Kt44Og44OpLOOCseOCpOOCueOCsQ0KK+ODhOODq+ODnyzjgqLjgq3jg5LjgrUNCivjgqLjgqrjgq0s44K344On44Km44KzDQor44Kk44K344OALOODouODiOOCtw0KK+ODouODrSzjgqLjgq3jgqoNCivjgqrjgq/jg6Djg6ks44OS44Ot44Om44KtDQor44K/44Kr44KuLOOCs+OCpuOCuA0KK+OCpOOCseODpCzjg5/jg4HjgqoNCivjg4jjg5/jg6Tjg54s44Kr44K644Of44OEDQor44Ok44KuLOOCv+OCq+OCqg0KK+ODiOODn+OCrSzjg4bjg4Tjg63jgqYNCivjg4jjg47jg6Djg6ks44Of44OO44OrDQor44Ok44OE44K644KrLOODiOOCt+ODkuODrQ0KK+ODluODnizjgrHjg7Pjgrfjg6fjgqYNCivjg4rjgqvjgrbjg68s44OV44Of44OI44OiDQor44Ok44Oe44K244KtLOODqOOCpuOCsw0KK+ODnuODhOOCt+OCvyzjgrfjg47jg5YNCivjgqTjg4As44K344OzDQor44K544K644KtLOODqOOCt+ODkuODrQ0KK+ODiuOCq+ODjizjg6Tjgrnjg5Ljg60NCivjgqvjg6/jgrDjg4Es44Oe44K144KqDQor44K/44Kr44OP44K3LOODhOODiOODoA0KK+OCpOOCt+ODgCzjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjgqbjg4As44K144OI44OrDQor44OV44K444Ov44OpLOODquODpeOCpuOCuA0KK+OCs+OCpOODhyzjg4jjgrfjgr/jgrENCivjg4Tjgqvjg4As44OY44Kk44OP44OBDQor44OS44Op44Ok44OeLOODkuODreOCtw0KK+OCpuODgeODiOODnyzjgqLjgq3jg6kNCivjgqTjg57jg4/jg6ks44OS44Ot44Oo44K3DQor44Km44Ko44OALOODkuODiOOCtw0KK+OCteOCteOCq+ODryzjg6jjgrfjg5Ljg60NCivjgqLjgqTjgqvjg68s44K/44Kr44Ki44KtDQor44Km44Ko44KtLOOCv+OCq+ODqOOCtw0KK+ODiuOCq+ODpOODnizjg6jjgrfjg58NCivjgqrjgqrjgrXjg68s44Oo44K344Kr44K6DQor44K/44Kr44Kq44KrLOODiOOCt+ODpuOCrQ0KK+ODr+ODgCzjg4Tjgq7jgqoNCivjgqTjg4zjgrrjgqss44Kv44OL44OS44K1DQor44K/44OK44KrLOOCs+OCpuOCreODgQ0KK+OCv+OCseODgCzjgq3jg6jjgr/jgqsNCivjg6Tjg57jg4As44OO44Oc44OrDQor44Ok44OK44KuLOODkuODh+ODkuODrQ0KK+OCv+OCseOCt+OCvyzjg6jjgrfjgr/jgrENCivjg4vjgrcs44K/44OE44OS44KzDQor44Kq44Kq44K/44KxLOODpuOCpuOCpOODgQ0KK+ODi+OCv+ODiuOCpCzjgrfjgrLjgqoNCivjg5vjg7Pjg54s44OO44OW44OS44KzDQor44OK44Kr44OOLOODqOOCt+ODjuODqg0KK+ODn+ODpOOCt+OCvyzjg5Ljg4fjgq0NCivjgqbjgqjjg44s44K444Ol44Oz44K444Ot44KmDQor44OQ44OQLOOCteODgOODoA0KK+ODn+ODpOOCtuOCrSzjg57jgrXjgqoNCivjgq/jg4vjgqQs44OE44OI44OgDQor44Kz44OQ44Ok44K3LOOCseOCpOOCuA0KK+ODnuOCueODgCzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44Kz44Km44K4DQor44OE44Kr44KqLOODkuODreOCrQ0KK+OCq+ODr+ODoOODqSzjgr/jgqvjg6bjgq0NCivjgqvjg6/jg5Djgr8s44Kz44Km44K+44KmDQor44Ki44Kr44K144KrLOOCuOODpeODs+OCsw0KK+OCpOOCpOODgCzjg4bjg4Tjg6QNCivjgrfjg6njg4/jg54s44K/44OA44K3DQor44OI44Ks44OvLOODkuODreODpuOCrQ0KK+OCpOODiOOCpizjg5Ljg4fjgqTjg4ENCivjgqrjgqvjg5ks44Oe44K144K3DQor44Ov44K/44OK44OZLOODkuODreOCqg0KK+OCteOCq+ODkCzjg4jjgrfjg5Ljg60NCivjg5Ljg63jgrXjg68s44OS44OI44K3DQor44OK44Kr44Og44OpLOOCt+OCsuODqw0KK+ODpOOCueOCpCzjgrXjg4jjgrcNCivjg5Ljg6njgr8s44Kr44K644OS44K1DQor44Kt44K/44Ks44OvLOOCt+ODs+OCpOODgQ0KK+OCouODnuODjizjg4bjg4Tjg6QNCivjg4Tjgrjjg6Djg6ks44Ko44OE44Ot44KmDQor44Kr44Ov44K144KtLOOCs+OCpuOCpOODgQ0KK+OCpuOCqOODoOODqSzjgr/jgrHjgrcNCivjg6Djg6njgqvjg58s44K344Ky44OKDQor44Kk44OO44Km44KoLOOCreODqOOCtw0KK+ODj+OCvCzjgrHjg7MNCivjg4jjgrfjg5Ljg60s44Kt44Of44OS44OtDQor44Kz44OQ44Ok44K3LOOCt+OCsuODpuOCrQ0KK+OCpOODjizjgr/jg4Djg47jg6oNCivjgqLjgrXjg44s44Om44Km44Kk44OBDQor44Oi44OqLOOCs+OCpuOCuA0KK+OCpOODiuOCtuODryzjgrPjgqbjg6jjgqYNCivjgrPjg5Djg6Tjgrcs44OG44Or44OS44OtDQor44K144Kr44KtLOODqOOCt+ODkuOCsw0KK+OCpuODgeODpOODnizjgrvjgqTjgrgNCivjg57jg4rjg5ks44Ok44K544KtDQor44Kq44Kq44Ok44OeLOOCseODs+OCuA0KK+OCt+ODn+OCuizjg57jgrXjg5LjgrMNCivjg6jjg43jg6Djg6ks44OS44Ot44Om44KtDQor44OQ44Op44OALOOCouOCreODkuOCsw0KK+ODleODq+OCvuODjizjg6jjgrfjgqvjgroNCivjg5Xjgrjjg6Ljg4gs44Kr44K644Ki44KtDQor44K144OOLOODnuODouODqw0KK+OCq+ODr+ODjizjgqjjgqTjgrMNCivjg5vjgrfjgqvjg68s44Kz44Km44K4DQor44K144K144Oi44OILOODouODiOODhOOCsA0KK+OCueODieOCpizjg57jgrXjg4gNCivjgrXjg4jjgqYs44K/44Kr44KqDQor44OP44Ok44K3LOODkuODreOCtw0KK+ODkOODkCzjg5Ljg4fjg47jg6oNCivjg5Djg5As44OS44OI44K3DQor44Kq44Kq44Ok44ONLOODkuODh+OCqg0KK+ODiuOCrOOCteODryzjg6Tjgrnjg6bjgq0NCivjgrXjgqvjg6Ljg4gs44Oe44K144OP44OrDQor44Ki44Kq44KtLOOCu+OCpOOCuA0KK+ODoOODiuOCq+OCvyzjg57jgrXjg4/jg6sNCivjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44Kr44Ov44OQ44K/LOODkuODreODpuOCrQ0KK+OCueOCruODouODiCzjg5/jg4HjgqoNCivjg5Djg7Pjg4njgqYs44K444Ol44OzDQor44OO44Og44OpLOOCouOCreODkuOCsw0KK+OCs+ODs+ODjizjg6jjgrfjg5/jg4ENCivjgqvjg6/jgqQs44Kr44K644OO44OqDQor44Km44Ko44OOLOODjuODluODpuOCrQ0KK+ODj+ODqeODgCzjg5Ljg63jgrcNCivjgqvjg47jgqYs44Ki44Kt44OpDQor44Kq44Kq44OP44K/LOODn+OCreOCqg0KK+OCueODieOCpizjgr/jgqvjgrcNCivjg57jg4Tjg4As44OS44OI44K3DQor44Kk44Kx44Ks44OfLOODnuOCs+ODiA0KK+OCt+ODqeOCpCzjgrHjg7Pjgrfjg7MNCivjgrXjg4jjgqYs44K/44Kr44Ki44KtDQor44K144Kr44KkLOOCv+OCseOCtw0KK+OCquOCrSzjg4jjgrfjg6bjgq0NCivjgqvjg6/jg6Djg6ks44Kx44Oz44K4DQor44Ok44Oe44OALOODkuODreOCqg0KK+OCpOODiOOCpizjgqLjgq3jg5LjgrUNCivjgqTjgqvjg58s44OP44Or44KqDQor44Ki44K644Oe44KqLOODkuODh+ODiA0KK+ODleOCuOODoOODqSzjg4jjgqrjg6sNCivjgq3jgr/jg6Djg6ks44Om44Km44K4DQor44OI44Ks44OfLOODiOOCt+ODnw0KK+OCs+OCueOCsizjg57jgrXjgqoNCivjgrvjgq0s44OS44Ot44Om44KtDQor44Kr44Ov44K344OeLOODiOODouODpuOCrQ0KK+OCv+OCq+OCpCzjg6bjgqbjgrQNCivjgqLjgq3jg6Tjg54s44Om44Kt44KqDQor44K544K644KtLOODiOOCt+ODleODnw0KK+ODiuOCq+ODoOODqSzjgrfjg6XjgqbjgqTjg4ENCivjg4vjgrfjg44s44K/44Kr44Om44KtDQor44Of44Ok44KxLOOCv+OCq+ODkuODrQ0KK+ODqOODjeODouODgSzjg6Ljg4jjgrgNCivjgr/jgqvjgrfjg54s44K344Ky44KqDQor44K144Kr44KkLOODiOOCt+ODjuODqg0KK+OCquOCquODhOOCrSzjgqLjgq3jg4jjgrcNCivjgqvjg6/jgrXjgq0s44Of44KtDQor44OL44K344Kr44OvLOOCv+OCreOCqg0KK+OCteOCr+ODqeOCpCzjgrHjg7PjgrgNCivjgrnjgq4s44OS44OH44Ki44KtDQor44Ob44Oq44Kz44K3LOODiOOCquODqw0KK+ODouODqizjgqvjg4Tjg6QNCivjg4/jgrHjg4As44K/44Kr44K3DQor44OL44Kk44OALOOCt+ODs+OCpOODgQ0KK+OCreOCr+OCv+ODiyzjgrXjg4jjgrcNCivjgr/jgrHjg47jgrfjgr8s44K344Ol44Km44OY44KkDQor44K/44Kr44OP44K3LOODkuODreODnw0KK+OCv+ODiuODmSzjg57jgrXjgrMNCivjgqTjgrHjg6Ljg4gs44OO44Oq44KzDQor44Oe44OE44Ok44OeLOODpuOCreOCsw0KK+ODqOOCt+OCtuODryzjg6jjgrfjg5LjgrUNCivjgqLjgqvjgqQs44Of44OO44OrDQor44OL44K344Kq44KrLOOCu+OCpOOCpOODgeODreOCpg0KK+OCv+OCseODouODiCzjg47jg5bjgqoNCivjg4jjgq/jg4As44Oo44K344KqDQor44Kq44Kq44Oi44OqLOODpOOCueODkuODrQ0KK+OCq+ODiOOCpizjgr/jg4TjgrcNCivjgqvjg6/jg4gs44OV44Of44KqDQor44Oe44Ko44OALOOCveOCpuOCpOODgQ0KK+OCr+ODreOCrSzjg57jgrXjg6jjgrcNCivjgqTjgqTjg4As44Kv44Of44KzDQor44Kz44Ok44OK44KuLOODj+OCuOODoQ0KK+ODnuODhOODiuOCrCzjgqLjg4TjgrcNCivjgqTjg4jjgqYs44Ok44K544Ki44KtDQor44Ok44Oe44Oi44OILOOCv+ODhOOCqg0KK+ODhOODhOOCpCzjg4jjgrfjgqLjgq0NCivjgr/jg4rjgqss44Of44OO44OrDQor44OV44Kv44K344OeLOOCt+ODpeODs+OCpOODgQ0KK+OCs+OCuOODnizjg6jjgrfjg5LjgrMNCivjg4vjgrfjg4As44Of44OE44KwDQor44OL44K344Ok44OeLOOCuOODpeODs+OCsw0KK+OCueOCuuOCrSzjg4DjgqTjgrnjgrENCivjgqTjgqTjgrjjg54s44K/44Kr44K3DQor44K/44Oe44KkLOOCueOCueODoA0KK+OCs+ODs+ODjizjgqrjgrXjg6ANCivjg5/jg57jgrks44OI44K344Of44OEDQor44Oo44ON44OP44OpLOOCu+OCpOOCpOODgQ0KK+ODqOOCt+ODgCzjgqvjgrrjg58NCivjg5Xjgq/jg4As44OS44Ot44K3DQor44K144OI44KmLOODkuODreOCouOCrQ0KK+ODpOODnuODouODiCzjg5Ljg63jgrcNCivjgq3jgr/jgrQs44OO44Oc44OrDQor44K144Oz44OOLOODiOODouODiOOCtw0KK+ODpOOCteOCqyzjg4jjgrfjgqoNCivjg6Djg6njgr8s44K344Ky44OfDQor44OK44Kr44Oi44OILOOCouOCreOCtw0KK+OCteOCr+ODqeOCpCzjgqvjgrrjgrfjgrINCivjg4/jg6njg4As44Oo44K344Oi44OIDQor44K144OI44KmLOOCouODhOOCqg0KK+OCteOCpOODiOOCpizjg5/jg4TjgqoNCivjgr3jg40s44Kx44Kk44KzDQor44OP44K544OfLOOCouOCreODkuODrQ0KK+ODkuODqeOCvyzjgqvjgrrjg5Ljg60NCivjg6Tjg4rjgq7jgrXjg68s44OO44OW44KqDQor44K/44OB44OQ44OKLOODqOOCpuOCsw0KK+OCpOODiOOCpizjg57jgrXjgrrjg58NCivjg4/jg6ks44Ki44Kt44OpDQor44K144Kk44OI44KmLOODiOOCt+ODkuODrQ0KK+OCpOODiOOCpizjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Kr44K644OkDQor44Km44OB44Ok44OeLOOCt+OCsuODqOOCtw0KK+OCq+OCrOODryzjgrHjgqTjgqTjg4ENCivjgr/jgq3jgrbjg68s44Om44Km44K444OzDQor44K344OK44Ks44OvLOOCr+ODi+ODkuOCsw0KK+OCq+OCreODj+ODqSzjgrfjg63jgqYNCivjgrnjgqzjg4zjg54s44K444Ol44Oz44Kk44OBDQor44Kr44Oh44KkLOODiOOCt+ODpA0KK+OCquOCr+ODhCzjgqvjgrrjg4jjgrcNCivjgqTjgrfjgqvjg68s44K344On44Km44K344Ol44OzDQor44K544Ku44Km44OpLOODouODquOCqg0KK+OCpuODoeODgCzjg5LjgrXjgrcNCivjg5/jg4rjgrDjg4Es44Kk44OB44Ot44KmDQor44Ob44K344OOLOOCv+OCseODkuOCsw0KK+ODi+OCt+ODpOODnizjgrvjgqTjgrgNCivjgr/jgrHjg4As44K/44OE44OkDQor44K144Kr44KkLOOCreOCpOODgeODreOCpg0KK+ODpOODhOODgCzjgr/jgrHjgrcNCivjg6Ljg6rjgr8s44Kx44Kk44K+44KmDQor44K144Kt44OeLOODiuOCquODkuODrQ0KK+OCouODqeOCpCzjg6bjgr/jgqsNCivjgr/jgrHjg4As44K/44Kr44KzDQor44K/44Og44OpLOODqOOCt+OCsw0KK+OCquOCq+ODgCzjg4/jg6vjg58NCivjg6Tjg57jg40s44OB44OP44OrDQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+OCouOCquODjizjgr/jg4TjgqoNCivjgrnjgq7jg6Tjg54s44Kr44ON44Oo44K3DQor44OV44Oq44OP44OpLOOCq+OCuuOCqg0KK+ODr+OCv+ODiuODmSzjg47jg5bjg4gNCivjgqvjg4Qs44OE44Kr44K1DQor44K144OP44OpLOODkuODreODnw0KK+OCq+OCr+OCvyzjgqLjgq3jg5LjgrMNCivjgqjjg47jg6Ljg4gs44K/44Kr44K3DQor44Ov44K/44OK44OZLOODnuOCs+ODiA0KK+ODpOODluOCrSzjg57jgrXjg5Ljg60NCivjgqLjg57jgrXjgq0s44Kz44Km44Kk44OBDQor44Oo44Kz44K/LOODnuOCteODkuODhw0KK+ODm+ODquODjuOCpuODgSzjg4jjgrfjgqLjgq0NCivjgq3jg4/jg6ks44OE44ON44KqDQor44K/44Kx44OALOODhOODq+ODnuODhA0KK+OCpOODjeODiizjg57jgrXjg5LjgrMNCivjg4rjgqss44Kr44K644OS44OtDQor44Kk44OB44Ok44OK44KuLOOCv+ODgOOCtw0KK+OCueOCuuOCrSzjgrfjg6fjgqbjgrHjgqQNCivjg4rjg6vjgrfjg54s44OK44Kq44Kt44OBDQor44K344Op44Kk44K3LOOCv+OCq+OCtw0KK+OCquODjizjg4jjgqrjg6sNCivjg6jjgrfjgqrjgqss44Kr44K644OkDQor44Oe44OE44Km44OpLOODkuODreOCq+OCug0KK+ODleOCuOOCvyzjg4bjg4TjgrgNCivjgqTjg6/jg58s44OI44Oo44OP44OrDQor44OI44Kv44K344KyLOOCseOCpOOCuA0KK+OCv+ODiuODgCzjgq3jg5/jg5LjgrMNCivjgqrjgqvjg44s44Kr44K644Oe44K1DQor44Oi44OB44K644KtLOOCv+OCq+ODpuOCrQ0KK+OCv+OCq+OCt+ODnizjgrPjgqbjgqTjg4ENCivjg4jjg6rjgqbjg58s44Kr44K644KqDQor44K/44Kr44OfLOODqOOCt+OCv+OCqw0KK+ODj+ODpOOCuyzjg4jjg6Ljg6bjgq0NCivjgr/jgqvjg4/jg6ks44Ko44Kk44K4DQor44Kt44OzLOODnuOCteODpuOCrQ0KK+OCueOCruODpOODnizjg5Ljg4fjg5Ljg60NCivjgq3jgr/jgrjjg54s44Kz44Km44K4DQor44OL44OD44K/LOODqOOCt+ODjuODlg0KK+OCquOCqyzjg6bjgq3jg47jg5YNCivjgqrjgqrjg4/jgrcs44OS44Ot44K3DQor44OP44Op44OALOOCreODj+ODgeODreOCpg0KK+ODr+OCreOCteOCqyzjg5Ljg63jgrcNCivjgqTjg6/jg4rjgqws44Kx44Kk44Kk44OBDQor44Kr44Ov44K344OqLOODn+ODhOOCqg0KK+OCpOODiuODouODiCzjg57jgrXjgqvjgroNCivjgrXjg68s44OS44Ot44Om44KtDQor44K/44Kx44OALOOCv+OCseODkuOCsw0KK+OCpOOCpOODgCzjg6jjgrfjg5Ljg4gNCivjgqvjgrjjg44s44Oe44Oi44OrDQor44Of44OvLOODj+ODq+OCq+OCug0KK+ODleOCr+OCpCzjgrHjgqTjgqTjg4ENCivjgrnjgqjjg4rjgqws44OI44Kq44OrDQor44Kv44OL44Ko44OALOODpuOCv+OCqw0KK+OCreOCv+OCquOCqyzjgqvjgrrjg5LjgrMNCivjgqTjg4ks44OI44Kq44OrDQor44Kq44Kv44OALOODquODp+OCpuOCueOCsQ0KK+ODm+ODquOCq+ODryzjgqvjg4Tjgq0NCivjgrnjgqjjg6Ljg4gs44OG44OE44OkDQor44Oo44Kz44Ok44OeLOODiOOCt+ODkuODrQ0KK+ODleOCuOODouODiCzjg4jjg5/jgqoNCivjgq3jgrss44K344On44Km44K4DQor44OL44K344Og44OpLOODkuODh+ODkuOCsw0KK+OCv+OCq+ODgCzjgrPjgqbjgrgNCivjg4Tjgqvjg4As44Oe44K144Kr44K6DQor44OI44Oo44OALOOCqOOCpOOCuA0KK+OCteODjizjg4jjgqrjg6sNCivjg4vjgrfjg4As44Oe44K144OS44KzDQor44Kq44Kq44Oi44OqLOOCpOODgeODreOCpg0KK+OCquOCtuOCrSzjg4jjgqrjg6sNCivjgqTjgrfjg57jg6ss44K344Ky44Ok44K5DQor44K/44OK44KrLOOCs+OCpuOCpOODgQ0KK+OCq+OCt+ODr+ODkOODqSzjg47jg5zjg6sNCivjgqLjgrXjg44s44Ok44K544Kr44K6DQor44OS44Op44OOLOOCt+ODs+OCuA0KK+OCv+ODi+ODpOODnizjg4bjg4Tjg63jgqYNCivjgqbjg6Hjg5Djg6Tjgrcs44Kx44Oz44K4DQor44Kq44Og44OpLOODkuODh+OCqg0KK+OCteOCq+OCsOODgSzjgq3jg6jjgqvjgroNCivjgqrjgqvjg6Djg6ks44K344On44Km44K0DQor44Ok44Oe44Oi44OILOOCouOCreODqQ0KK+OCqOODgeOCtCzjgrPjg6zjgqLjgq0NCivjgrXjg6/jg4As44Ok44K544OS44KzDQor44Oo44Kz44KkLOOCq+OCuuODpuOCrQ0KK+OCreOCv+ODoOODqSzjg6rjgqsNCivjg6Tjgrks44Kr44Kq44OrDQor44K/44Kr44KqLOOCuOODpeODs+OCsw0KK+OCq+ODhOODqeOCquOCqyzjgrfjg7Pjgr7jgqYNCivjg4Tjg5zjgqQs44Oe44K144OS44KzDQor44OE44K4LOOCt+OCsuOCqg0KK+OCv+OCq+ODj+OCtyzjgqLjgq3jgqoNCivjgrnjgq7jgq0s44K/44Kr44KtDQor44K/44Kx44Km44OBLOOCv+OCq+ODkuODrQ0KK+OCq+ODnyzjg4jjgrfjgqvjgroNCivjgrPjg5Djg6Tjgqvjg68s44Ok44K544OS44KzDQor44Ki44Kq44OILOOCuOODhOOCuA0KK+OCv+ODgCzjg6jjg6rjgrMNCivjg5Ljg4Djgqss44OO44Oq44KzDQor44OL44K344Og44OpLOODgeOCqOOCsw0KK+OCqOODkOODqSzjg4Tjg43jgqoNCivjg5/jgrrjg6Ljg4gs44Kr44K644OkDQor44K544K644KtLOOCreODqOOCtw0KK+OCt+OCpOODiizjg4/jg6vjg6jjgrcNCivjgrfjgqrjgr8s44Of44OE44OS44KzDQor44OK44Kr44OP44OpLOOCs+OCpuOCpOODgQ0KK+OCtOOCpuODgCzjgq3jg6jjgrcNCivjg5Xjg6vjgr8s44Oe44K144OS44K1DQor44Oe44K544Oi44OILOOCuOODpeODs+OCpOODgQ0KK+ODiuOCq+OCrOODryzjgq3jgqTjg4ENCivjgqTjg4ks44K/44Kr44Om44KtDQor44Oo44Oq44OV44K4LOODjuODnOODqw0KK+ODnuODhOODouODiCzjgqLjgq3jg6kNCivjgrXjgqTjg4jjgqYs44Kv44OL44Ki44KtDQor44OK44OE44KkLOODkuODh+OCrQ0KK+OCpuOCquODjizjgqvjgqrjg6oNCivjgr/jg4rjgrQs44Kx44Kk44KzDQor44K/44Oe44Ks44OvLOODjuODquODkuODiA0KK+OCquOCqyzjgr/jgqvjgrcNCivjg5Xjgq/jgrfjg54s44Oe44K144OrDQor44Kq44Kr44OALOODpuOCpuOCsw0KK+OCreODjuOCt+OCvyzjg5Ljg4fjg5LjgrMNCivjgrfjg5/jgros44Ki44Kt44OpDQor44Kz44OQ44Ok44K3LOOCreODqOOCv+OCqw0KK+ODjuODgCzjg57jgrXjgrcNCivjgqvjg47jgqYs44OE44Kw44OS44OtDQor44Kr44K444Kq44KrLOOCouOCreODkuODiA0KK+OCquOCquODjizjgr/jgqvjgrcNCivjgqrjgqrjg4/jgrcs44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOODpuOCpuOCpOODgQ0KK+OCs+OCpOOCuuODnyzjgqTjgq/jgqoNCivjgr/jg4rjgqss44OS44OI44K3DQor44OV44Kv44OALOODiOOCt+ODpA0KK+ODiuOCq+OCtuODryzjg47jg5zjg6sNCivjg5vjg6rjgqvjg68s44K144OI44K3DQor44Km44OB44Ok44OeLOODouODquODkuODrQ0KK+OCpOOCuuOCv+ODiyzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jgq3jgqQs44OI44K344KzDQor44K/44Kr44K7LOODjuODluODhOOCsA0KK+ODnuOCueOCtuOCrSzjgr/jgqvjgrcNCivjgqLjg7Pjg4njgqYs44OI44Kq44OrDQor44Kr44K/44Ku44OqLOOCt+OCsuOCpOODgeODreOCpg0KK+ODouODquODpOODnizjg4jjgrfjg6QNCivjgrXjg4jjgqYs44Ki44Kt44OS44OtDQor44OS44Or44Kr44OvLOOCteODiOOCtw0KK+OCpuOCqOODgCzjg57jgrXjgqoNCivjg4rjgqss44OI44K344K/44KrDQor44Of44Ok44K244KtLOODkuODreOCtw0KK+OCquOCquOCr+ODnCzjg57jgrXjgr/jgqsNCivjgr/jg4Hjgqvjg68s44Oe44Kz44OIDQor44Ov44K/44OK44OZLOODn+ODgeODiuOCqg0KK+OCouOCteOCq+ODryzjgrvjgqTjgrgNCivjgqvjg6/jg4/jg6ks44Oe44K144OkDQor44Kq44K144OALOODj+OCuOODoQ0KK+OCteOCq+OCpCzjg4/jg6vjgqoNCivjgq/jg6rjg6Tjg54s44K144OK44KoDQor44K144Kk44OI44KmLOOCs+OCuuOCqA0KK+OCueOCreOCrOODqSzjg6jjgrfjgrMNCivjgqLjgrHjg5Is44Kv44Of44KzDQor44OP44Ok44K3LOOCreODqOODnw0KK+OCq+ODr+OCvyzjg4rjgqrjg58NCivjgrfjg57jgqzjgq0s44Of44K144KoDQor44Ob44OqLOOCq+OCuuODqA0KK+ODjuODoOODqSzjg6jjgrfjgrMNCivjg4jjg6Djg6ks44K344Oz44Kk44OBDQor44Kv44OcLOOCreODqOOCsw0KK+ODi+OCt+ODouODiCzjg47jg6rjg5Ljg4gNCivjg6jjgrfjg4As44Kz44Km44K4DQor44K144KuLOOCv+OCq+ODqOOCtw0KK+OCq+ODs+ODjizjgrHjgqTjgrMNCivjg6Tjg5bjg44s44Oe44K144KtDQor44Ok44K544OK44KsLOODkuODreODpuOCrQ0KK+ODkuOCrOOCt+OCpuOCqCzjg5Ljg63jg5Ljg4gNCivjgrPjgrXjgq0s44Oe44K144Om44KtDQor44OK44KrLOODiOOCt+ODkuODrQ0KK+OCquODjizjg4jjgqrjg6sNCivjg6Djg6njgr8s44Kz44Km44K+44KmDQor44K344On44Km44K4LOODkuODh+OCouOCrQ0KK+OCq+ODr+ODouODiCzjgqLjgq3jg5Ljg60NCivjgqjjgrXjgq0s44Oe44K144OrDQor44Ko44Kk44OJ44OhLOODkuODh+OCq+OCug0KK+OCueOCuuOCrSzjg6bjgr/jgqsNCivjg6Ljg4jjg6Tjg54s44Ok44K544Kr44K6DQor44OP44Oe44OALOOCouOCreODqQ0KK+OCs+OCt+OCq+ODryzjg4jjgrfjgqoNCivjg4/jg6Tjgrcs44Oe44K144OP44OrDQor44Ok44Oe44K244KtLOODpuOCreODpA0KK+ODnuODhOODouODiCzjg6jjgrfjg57jgrUNCivjgqrjg44s44K344Oz44Kk44OBDQor44OP44OK44OvLOOCv+ODgOOCtw0KK+ODj+OCu+OCrOODryzjgrHjgqTjgrgNCivjg5/jg6Tjgr8s44Oe44K144Ki44KtDQor44Kt44K/44K244OvLOODnuOCteOCq+OCug0KK+OCqOODs+ODiSzjg6Tjgrnjg5LjgrMNCivjg4rjgqzjgrXjgqss44Oo44K344Ki44KtDQor44Oo44K344Oi44OILOODkuODreODn+ODhA0KK+OCr+ODreOCteODryzjgrHjg7PjgrXjgq8NCivjg57jg6vjg6Tjg54s44Oo44K344OP44OrDQor44OK44Kr44OL44K3LOOCq+OCuuODpuOCrQ0KK+ODqOOCt+ODgCzjgrHjgqTjgqTjg4ENCivjg5Xjgq/jgr8s44OS44OH44OkDQor44OV44K444K144OvLOOCq+ODhOODkuOCsw0KK+OCteOCr+ODnizjg6jjgrfjg4/jg6sNCivjg4/jgrfjg6Ljg4gs44Kr44OE44OfDQor44Ov44OALOODnuOCteOCquODnw0KK+ODi+OCt+OCtuOCrSzjg47jg5bjgqoNCivjg5Xjgqvjgqzjg68s44Ko44OE44KzDQor44Ki44Kq44Ok44OeLOODnuOCteOCq+OCug0KK+OCreODqOOCv+ODiyzjg4Tjg4jjg6ANCivjg4jjg6rjg4/jg6ks44OS44Ot44Om44KtDQor44OK44Ks44OOLOOCv+OCseOCtw0KK+OCquOCquOCrCzjg6bjgr/jgqsNCivjgrXjgqvjg44s44K/44Kr44K3DQor44Of44OE44OP44K3LOODnuOCteODkuODrQ0KK+OCouODquODouODiCzjgrvjgqTjgrMNCivjg6jjgrfjg57jg4Qs44K/44Kr44Ki44KtDQor44Ki44Kq44Ok44KuLOOCouOCreOCqg0KK+ODpOODnuODgCzjg57jgrXjg5LjgrMNCivjg6Djg6njgr8s44Om44Of44KzDQor44Kk44Oq44KoLOOCt+ODs+OCpOODgQ0KK+ODpOODnuOCtuOCrSzjg57jgrXjg47jg6oNCivjgqjjgr7jgqgs44Kx44Kk44Kk44OBDQor44K144OI44KmLOODhOODqOOCtw0KK+OCquOCquOCvyzjgq3jg6jjgrcNCivjgqTjg47jgqYs44Oi44Oq44OS44OIDQor44Kr44OJLOOCv+ODhOODpA0KK+OCteOCteOCrSzjg6jjgrfjg5Ljg60NCivjgqvjgrHjg5Is44Oo44K344OS44OtDQor44OE44OB44OkLOOCq+OCuuODpA0KK+ODnuOCteOCquOCqyzjgrfjg6fjgqbjgr7jgqYNCivjgrnjgrrjgq0s44Ok44K544KqDQor44OI44ONLOODiOODn+ODkuODrQ0KK+OCquOCquODr+ODgCzjg47jg6rjgqLjgq0NCivjgqbjgqjjgq0s44Oe44K144OIDQor44Oe44Ko44OALOOCq+OCuuODjuODqg0KK+ODleOCuOOCquOCqyzjg6TjgrnjgrMNCivjgqbjg6njg5ks44OK44Kq44KzDQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+OCpOOCteOCqyzjg57jgrXjgqLjgq0NCivjg4vjgrfjgrXjgqss44OO44OW44KqDQor44Kk44Ov44K1LOOCqOOCpOOCpOODgQ0KK+OCv+OCr+OCt+ODnizjg6jjgrfjgqoNCivjg4Tjgqvjg6Ljg4gs44OV44Of44KqDQor44K144Kv44OeLOOCv+OCseODkuOCsw0KK+ODkuODp+OCpuODieOCpizjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44Kz44Km44Kk44OB44Ot44KmDQor44K144K144KtLOODnuOCteOCqg0KK+ODleOCr+ODr+OCrSzjg4jjgrfjg6QNCivjgqrjgq/jg6Djg6ks44Oe44K144Oo44K3DQor44K/44Kr44OP44K3LOODiOODqOODkuOCsw0KK+OCt+ODreOCpCzjg6TjgrnjgrcNCivjgrPjgqvjg5Ys44K/44OA44KqDQor44OO44Kw44OBLOODkuODreOCrQ0KK+OCv+OCq+ODhCzjg5Ljg63jgqvjgroNCivjg6jjg43jgrbjg68s44OG44OE44OkDQor44K144Kr44Kk44OALOODpOOCueODkuODrQ0KK+OCs+OCpOOCuuODnyzjg5/jg4Tjg6QNCivjg57jgqjjg4As44Kr44OE44Om44KtDQor44Oe44Oz44OALOOCv+ODgOOCtw0KK+OCs+OCsOODrCzjgqTjg4Hjg63jgqYNCivjgqLjgq3jg6Ljg4gs44Oo44K344OIDQor44K/44Kx44Og44OpLOODiOODouOCouOCrQ0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjg6Tjg57jgqbjg4Es44K444Ol44Oz44Kk44OBDQor44K144Ko44KtLOODpuOCpuOCuA0KK+ODr+OCq+ODkOODpOOCtyzjg47jg5bjg6bjgq0NCivjgqLjgq3jg6Ljg4gs44Oe44K144OS44KzDQor44Oo44K344OALOODkuODreOCouOCrQ0KK+OCteODiOOCpizjg4Tjg43jgqoNCivjgqrjgrfjg54s44Ok44K544OI44K3DQor44K144K144KtLOODnuOCteODkuODhw0KK+OCouODqeOCpCzjgqLjgq3jg5Ljg4cNCivjg6/jgr/jg4rjg5ks44OG44OE44K4DQor44Kk44Kx44Oi44OILOODpuOCreOCqg0KK+OCreOCr+OCpCzjgrPjgqbjgqTjg4ENCivjg5Ljg6njgr8s44OS44Ot44OfDQor44Oe44Kt44Km44OBLOOCv+OCr+ODpA0KK+OCs+OCu+OCrSzjgrfjg63jgqYNCivjg4vjgrfjgqvjg68s44Ok44K544OS44OtDQor44Kk44Ks44Op44K3LOODleODn+OCqg0KK+OCv+ODiuOCqyzjgr/jg4Djg4Tjg40NCivjg5vjg7Pjg4As44Ko44Kk44Kk44OBDQor44OP44OD44K/LOODkuODreODnw0KK+ODj+ODqeODgCzjg5LjgrXjgqvjgroNCivjg6jjgrfjg4As44Kq44K144OgDQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+OCs+OCpOOCuuODnyzjg6rjg6fjgqbjgqTjg4ENCivjgrPjgrnjg4As44OK44Kq44OS44K1DQor44Of44Ok44KxLOODnuOCteOCouOCrQ0KK+ODleOCuOODpCzjgr/jgrHjgrcNCivjg57jgrXjgq0s44Ki44Kt44OpDQor44K144Kv44Op44KkLOODkuODh+OCrQ0KK+ODi+OCt+ODpOODnizjg6jjgrfjgqoNCivjgqvjg6/jgrss44K/44Kr44OO44OWDQor44Kq44Kr44K244OvLOOCt+ODs+ODpA0KK+OCouOCteOCqyzjg4jjgrfjg6bjgq0NCivjgqrjgqzjg68s44OO44OW44Ki44KtDQor44OK44Ks44K144OvLOODj+OCuOODoQ0KK+OCreOCv+ODr+OCrSzjg57jgrXjgqoNCivjgrfjg5/jgros44Oe44K144OO44OqDQor44Kz44OQ44Ok44K3LOODnuOCteODj+ODqw0KK+OCv+ODgeODkOODiizjgrfjgrLjgrMNCivjgqTjg57jg4rjgqss44K144OI44OfDQor44Km44K344Oe44OrLOOCseODsw0KK+OCquOCq+ODoOODqSzjgrHjg7PjgqTjg4ENCivjg6Tjg57jg44s44Om44Km44Kk44OBDQor44Kt44K/44Og44OpLOODn+ODgeOCq+OCug0KK+OCv+OCq+ODnuODhCzjg5Ljg4fjgq0NCivjg4jjgq3jgqvjg68s44Kr44K644OS44OHDQor44Kk44Kx44OALOODiOOCt+ODpA0KK+OCpOOCt+ODgCzjg47jg5bjgr/jgqsNCivjgr/jg4vjg4/jg6ks44Of44OE44KuDQor44Kq44Ks44OvLOODkuODiOOCtw0KK+OCv+ODiuOCqyzjgrfjg6fjgqbjgrnjgrENCivjg4rjgqss44Kx44Kk44KzDQor44OI44Oi44K244OvLOODjuODluOCsw0KK+ODj+ODqeODgCzjgrvjg4TjgrMNCivjg4/jg4rjg5bjgrUs44Ki44OE44KzDQor44OI44Kv44Kq44KrLOOCouODhOOCtw0KK+ODmeODg+OCt+ODpyzjg57jgrXjg5Ljg60NCivjg4rjgqvjgrfjg54s44Kr44OE44OS44KzDQor44Ki44K144Kv44OpLOODpOOCueODkuOCsw0KK+ODn+ODpOODh+ODqSzjg5Ljg63jgrcNCivjgrnjgrrjgq0s44OK44Kq44KtDQor44Oo44K344Og44OpLOODqOOCt+ODkuOCtQ0KK+OCteODryzjg57jgrXjg6bjgq0NCivjg4rjgqvjg6Tjg54s44Kz44Km44Kk44OBDQor44OS44Op44K244OvLOODqOOCt+ODkuODrQ0KK+ODleOCuOODr+ODqSzjg57jgrXjgqLjgq0NCivjgrnjgqzjg6/jg6ks44OI44Kq44OrDQor44K/44OL44Ks44OvLOODnuODquOCqg0KK+ODm+ODs+ODgCzjg6Tjgrnjg4gNCivjg4/jg4rjgqQs44Kz44Km44Kk44OBDQor44Ko44Kw44OBLOOCteOCr+ODoeOCpA0KK+OCq+OCteOCpCzjg6jjgqbjgqTjg4ENCivjgq/jg63jgrXjg68s44OS44Ot44K3DQor44K/44K444OeLOOCt+ODsw0KK+OCteODiOOCpizjgr/jg4TjgrcNCivjg5Ljg5Pjg44s44OE44ON44KqDQor44K544Ks44OkLOOCt+ODpeOCpg0KK+OCr+ODqeOCvyzjgrPjgqbjgqTjg4ENCivjg57jgrnjg4As44OP44Or44KtDQor44K544Ku44OP44OpLOOCseOCpOOCsw0KK+OCq+ODjeOCsyzjg6jjgrfjg6bjgq0NCivjgqvjg4Qs44K/44Kr44K3DQor44Oe44OrLOODkuODreODpA0KK+OCv+ODiuOCqyzjg5Ljg4fjgqvjgroNCivjg4jjgrfjgqrjgqss44Ki44Kt44OpDQor44K344Ky44OOLOODquODp+OCpuOCuA0KK+ODpOODnuODouODiCzjgrXjg4jjg58NCivjg4rjgqvjgqzjg68s44Kr44OE44OfDQor44Ok44Oe44Kw44OBLOODkuODreOCrQ0KK+OCq+ODr+ODouODqizjg6jjgrfjg5Ljg60NCivjg6Djg6njg6Tjg54s44Oe44K144OrDQor44K344Ol44KmLOODiuOCquODpA0KK+OCpOOCseODgCzjg5Ljg63jg6bjgq0NCivjgrPjg4Djg54s44K/44OE44KqDQor44Kr44OI44KmLOOCteODiOODqw0KK+ODj+OCr+ODgeODp+OCpizjgqTjgrXjgqoNCivjgqvjgrLjg7Ms44Kr44Kq44OrDQor44OG44K644KrLOOCs+OCpuOCuA0KK+OCv+ODi+OCsOODgSzjg57jgrXjgr/jgrENCivjg4bjg6njg4As44OK44Kq44KtDQor44Kr44OI44KmLOOCv+OCq+OCrQ0KK+ODiuOCpOODiOOCpizjgr/jgrHjgqoNCivjgqTjg4jjgqYs44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOOCseODs+OCuA0KK+OCv+ODiuOCqyzjg5Ljg4fjg4jjgrcNCivjgrXjgrXjgq0s44Ov44K/44OrDQor44Ob44Oz44OALOODn+ODgeODiA0KK+ODkuOCqOODgCzjgqLjgq3jgqoNCivjgrXjgqvjgqQs44Kr44K644OO44OqDQor44Kr44OE44OfLOOCv+OCq+OCtw0KK+OCv+OCseODmSzjgr/jgqvjgrcNCivjg47jgrDjg4Es44OE44Oo44K3DQor44Ov44OALOOCqOOCpOOCuA0KK+OCpuOCqOODpOODnizjgrHjg7PjgrgNCivjgqbjgqjjg44s44K/44Kr44OS44OtDQor44K/44Oz44K0LOODkuODh+OCqg0KK+ODoOODqeOCq+ODnyzjgqvjg4Tjg58NCivjgqLjg6njgq0s44Kz44Km44K+44KmDQor44Ki44Op44K7LOODnuOCueODkuODrQ0KK+ODpOODnuODouODiCzjgrfjg63jgqYNCivjg6/jgrfjgqos44OS44Ot44Om44KtDQor44Ov44Kx44K444OeLOODqOOCt+ODleODnw0KK+OCs+OCpOOCuuODnyzjgrHjg7PjgrnjgrENCivjg4jjgq/jg6Tjg54s44OI44K344OV44OfDQor44OI44Of44OK44KsLOOCseODs+OCuA0KK+OCreOCt+ODgCzjgrvjgqTjgrgNCivjgrHjg7Ms44Of44OB44OS44OtDQor44OS44Ot44K7LOODqOOCt+ODpuOCrQ0KK+OCpuODgeODpOODnizjgrHjg7PjgqTjg4ENCivjg6/jgqvjgrnjgq4s44K/44OA44K/44KrDQor44Kk44K344Kw44OtLOOCq+ODhOODjuODqg0KK+ODi+OCt+ODoOODqSzjg5Ljg63jgqvjgroNCivjgqTjg47jg57jgr8s44Kr44Kq44OrDQor44OE44OE44OfLOODiOOCt+ODkuOCsw0KK+OCpOODquOCqCzjgqLjg4TjgrcNCivjgrXjgqTjg4jjgqYs44Kr44K644KqDQor44Km44Ko44OOLOOCt+ODs+OCpOODgQ0KK+ODm+ODs+ODgCzjgqrjgrXjg6ANCivjgq3jgr/jg6Djg6ks44Kr44Oo44KzDQor44Ok44Oe44Ks44OfLOODiuODnw0KK+ODiuOCq+ODi+OCtyzjg57jgrXjg5Ljg60NCivjgqbjgqjjg4As44K/44Kr44K3DQor44OS44Ot44K/LOODr+OCv+ODqw0KK+OCpuOCqOODgCzjg4jjg6Ljgq0NCivjgqTjgrHjg4As44OS44Ot44K3DQor44OP44OK44OW44K1LOODqOODquODjuODlg0KK+OCs+ODgOODnizjg5Ljg63jgqLjgq0NCivjgqrjgqvjg6Ljg4gs44OK44Kq44KtDQor44K544K644KtLOODkuODreODn+ODhA0KK+OCueOCuuOCrSzjg5LjgrXjgqgNCivjg4vjgqTjgq/jg6ks44Ki44Kt44OS44OtDQor44OL44K344OALOODkuODreODkuOCtQ0KK+OCquOCteODmSzjgrjjg6Xjg7PjgqTjg4ENCivjg5vjgr3jgqvjg68s44Kx44Oz44Kk44OBDQor44Kk44Oe44KqLOODqOOCpuOCpOODgQ0KK+ODleOCuOOCvyzjg6jjgrfjg47jg5YNCivjgqrjgqrjg44s44Oo44K344OO44OqDQor44OK44Kr44Ok44OeLOODqOOCt+OCqg0KK+ODj+ODpOOCtyzjgrHjgqTjgrgNCivjgrnjgqzjg4/jg6ks44Kr44K644OO44OqDQor44OP44Op44OALOOCpOODgeODreOCpg0KK+OCouODmSzjgrfjg6Xjg7PjgqTjg4ENCivjgqLjg5ks44Kx44Kk44Kk44OBDQor44Ki44OZLOOCseODs+OCpOODgQ0KK+OCouODgOODgSzjgr/jg4Djg5Ljg60NCivjgqLjgqTjg5As44OA44Kk44K544KxDQor44Ki44Kr44OQ44ONLOOCq+OCuuOCqg0KK+OCouODs+ODieOCpizjgqjjgqTjg5sNCivjgqLjg7Pjg4njgqYs44OI44Oi44Om44KtDQor44Ki44Kq44KtLOODnuOCteOCtw0KK+OCt+OCpOOCrSzjg5Ljg63jgrcNCivjgqLjg6njgqQs44K344On44Km44Kk44OBDQor44Ki44Op44KkLOODiOOCquODqw0KK+OCouODqeOCpCzjgr/jgrHjgrcNCivjgqLjg6njgqvjg68s44Kk44K144KqDQor44Ki44Op44KtLOOCv+ODhOODpA0KK+OCouODqeOCrSzjgr/jgqvjg6bjgq0NCivjgqLjg6njgq0s44Kt44Oo44OP44OrDQor44Ki44Op44KtLOOCq+OCuuOCouOCrQ0KK+OCouODqeODnuOCrSzjg57jgq3jgqoNCivjgqLjg6njg6Es44K/44Kr44ONDQor44Ki44Oq44Og44OpLOOCv+OCseOCtw0KK+OCouOCteODnyzjgrfjg6XjgqbjgqTjg4ENCivjgqLjgrrjg54s44OS44Ot44Oo44K3DQor44OQ44OQLOODkuODh+OCq+OCug0KK+ODkOODkCzjg6Ljg4jjgrMNCivjg4Hjg5As44OO44OW44Ki44KtDQor44OB44OQLOOCs+OCpuOCpOODgQ0KK+ODgeODjizjg4jjg6Ljg6bjgq0NCivjg4DjgqTjgrPjgq8s44Oo44K344OO44OWDQor44OH44Kw44OBLOODkuODreODjuODqg0KK+ODh+OCrSzjg6jjgrfjgqLjgq0NCivjg4njgqQs44OO44OW44OS44KzDQor44Ko44OA44K144OvLOODkuODh+OCrQ0KK+OCqOOCsOODgSzjg6jjgrfjg4rjg6oNCivjgqjjg7Pjg4ks44Kr44K644OtDQor44Ko44Oz44OJLOODnuOCteOCqg0KK+OCqOODquOCq+ODryzjg6bjgqbjgrMNCivjg5XjgrjjgqQs44OS44Ot44K3DQor44OV44K444Oi44OILOODkuODh+ODiA0KK+ODleOCuOODouODiCzjg57jg6bjg58NCivjg5Xjgrjjg44s44Oo44K344Ki44KtDQor44OV44Kr44OP44OpLOOCouOCreODqQ0KK+ODleOCq+ODnyzjg4rjgqrjgq0NCivjg5Xjgqvjg6Tjg54s44OO44OW44Om44KtDQor44OV44Kv44OALOODnuOCteODpuOCrQ0KK+ODleOCr+OCpCzjg57jgrXjg5LjgrMNCivjg5Xjgq/jg6Ljg4gs44OS44Ot44K3DQor44OV44Kv44OK44KsLOODnuOCteODkuOCsw0KK+ODleOCr+OCt+ODnizjg47jg5bjgqoNCivjg5Xjgq/jgrfjg54s44Kr44K644K/44KrDQor44OV44OK44KtLOOCteOCq+OCqA0KK+ODleODiuOCrSzjg6Tjgrnjg5Xjg58NCivjg5Xjg6vjg6Qs44Kk44K144KqDQor44K044Km44OP44OpLOODqOOCt+ODkuOCtQ0KK+OCtOODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4/jgqws44K/44OA44K3DQor44OP44Ku44OOLOOCq+OCuuODrQ0KK+OCpOODgeODoOODqSzjg57jgrPjg4gNCivjg4/jg54s44OK44Kq44KtDQor44OP44OK44OALOODnuOCteODqOOCtw0KK+OCpOODkCzjgq3jg6jjgrXjg4ANCivjg4/jgrvjg5ks44Kr44OE44OY44KkDQor44OP44K744Ks44OvLOODiOOCt+ODreOCpg0KK+ODj+OCt+ODouODiCzjg47jg6rjgqLjgq0NCivjg4/jgrcs44OK44Kq44Ki44KtDQor44OP44K/44OOLOODjuODluODkuODrQ0KK+ODj+ODiOODqizjgrfjg7Pjgr/jg63jgqYNCivjg4/jg6Tjgrcs44Ki44Kt44OS44KzDQor44OP44Ok44K3LOOCs+OCpuOCuA0KK+ODkuODgOOCqyzjgqvjgrrjgrMNCivjg5Ljgqzjgrcs44Kt44Oo44K/44KrDQor44Oe44OOLOODqOOCt+OCq+OCug0KK+ODkuODqeOCpCzjg6jjgrfjgr/jgqsNCivjgqvjg5/jgrXjgq0s44OI44K344OS44KzDQor44OS44Op44OOLOODnuOCteODkuOCsw0KK+ODkuODreOCpCzjg5Ljg4fjgqoNCivjg5Ljg63jg6Ljg6os44Oo44K344OP44OrDQor44OS44Ot44K144OvLOOCouODhOOCtw0KK+ODkuODreOCteODryzjgqrjgrXjg6ANCivjg5Ljg63jgrss44K344Oz44Kk44OBDQor44Ob44Oz44OALOODqOOCpg0KK+ODm+ODs+ODnizjg5Ljg63jg6TjgrkNCivjg5vjg6rjg5ks44K344Ky44OrDQor44Ob44Oq44KoLOODkuODreOCtw0KK+ODm+ODquOCsOODgSzjg6bjgqbjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44OI44K344OS44OHDQor44Ob44OqLOODj+OCuOODoQ0KK+ODm+ODqizjg5Ljg63jg58NCivjg5vjgrfjgqvjg68s44OO44Oq44Om44KtDQor44Ob44K944Kr44OvLOOCueOCueODoA0KK+ODkuODp+OCpuODieOCpizjg57jgrXjg4/jg6sNCivjgqTjg5Djg6njgq0s44Om44Km44Kk44OBDQor44Kk44OB44Kq44KrLOOCouODhOODleODnw0KK+OCpOOCseODgCzjgr/jgqvjg5Ljg4gNCivjgqTjg57jgqQs44Oo44K344K/44KrDQor44Kk44Oe44Og44OpLOOCv+OCq+OCouOCrQ0KK+OCpOODnuODiuOCqyzjg4jjg6Ljg6QNCivjgqTjg4rjg4As44OS44Ot44K3DQor44Kk44OK44Og44OpLOOCs+OCpuOCpOODgQ0KK+OCpOODjuOCpuOCqCzjgrXjg4jjg6sNCivjgqLjg6njgqQs44OI44K344OfDQor44Kk44OO44Km44KoLOOCqOOCpOOCuA0KK+OCpOOCt+OCpCzjgq3jg6jjg58NCivjgqTjgrfjgqQs44OS44Ot44K3DQor44Kk44K344Kr44OvLOODn+OCreOCqg0KK+OCpOOCt+OCq+ODryzjgqLjgq3jg6kNCivjgqTjgrfjgqrjgqss44Oe44Kz44OIDQor44Kk44K944OALA0KK+OCpOODiOOCpizjg57jgrXjg5Ljg60NCivjgqTjg4jjgqYs44OB44K644KzDQor44Kk44OI44KmLOOCq+OCuuODkuODiA0KK+OCpOODiOOCpCzjgr/jg4DjgrcNCivjgqTjg4jjgqYs44K344Oz44K4DQor44Kk44Ov44KkLOOCouOCreODqQ0KK+OCpOOCuuODn+ODpCzjg57jgrXjg47jg6oNCivjgqvjgrjjgr8s44K144OI44K3DQor44Kr44Oh44KkLOOCt+ODs+OCuA0KK+OCq+ODiuOCpCzjg57jgrXjg5Ljg60NCivjgqvjg4rjgrbjgrcs44OO44Oq44KzDQor44Kr44ON44KzLOOCv+OCseOCtw0KK+OCq+ODjeOCsyzjg57jgrPjg4gNCivjgqvjg47jgqYs44Kk44Kv44KqDQor44Kr44Oq44KmLOOCt+OCsuOCuA0KK+ODhOOCreOCuCzjgr/jgqvjg47jg6oNCivjgqvjgrXjg57jg4Qs44OS44Ot44Om44KtDQor44Kr44K/44Ku44K3LOODnuOCteOCtw0KK+OCq+OCv+ODpOODnizjgqLjgq3jg6kNCivjgqvjgr/jg6Tjg54s44OG44OE44Oh44KkDQor44Kk44K944OALOOCv+OCq+OCqg0KK+OCq+OCv+ODpOODnizjgrPjgqbjgrgNCivjgqvjg4jjgqYs44K144OE44KqDQor44Kr44OI44KmLOODnuOCs+ODiA0KK+OCq+ODiOOCpizjg6TjgrnjgrcNCivjgqvjg4jjgqYs44OB44KoDQor44Kr44OE44Oe44K/LOOCv+OCr+ODpA0KK+OCq+ODr+ODmSzjg6bjgq3jg47jg5YNCivjgqvjg6/jg5ks44Ki44OE44K3DQor44Kr44Ov44OZLOODoOODjeODkuODiA0KK+OCq+ODr+ODgCzjgrHjg7PjgrnjgrENCivjgqvjg6/jg4As44Ki44Kt44OS44KzDQor44Kr44Ov44Oi44OILOOCouOCreOCqg0KK+OCq+ODr+OCv+ODiyzjgrvjgqTjgq0NCivjgq3jg5/jgrrjgqss44Of44OB44OtDQor44Kt44Og44OpLOOCq+OCuuODpA0KK+OCreODoOODqSzjg6rjg6fjgqbjgr/jg63jgqYNCivjgq3jg47jgrfjgr8s44Ok44K544OS44OtDQor44Kt44K144KrLOODkuODh+OCqg0KK+OCreOCt+ODgCzjgr/jgqvjgrMNCivjgq3jgr/jgqzjg68s44Kt44On44Km44Kk44OBDQor44Kt44K/44Og44OpLOODqOOCt+ODkuODrQ0KK+OCreOCvyzjg5Ljg4fjg4gNCivjgq3jg6jjg44s44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOOCq+ODhOODjuODqg0KK+OCs+ODgOODnizjgqvjgrrjg4rjg6oNCivjg4njg5Is44OS44Op44Ok44K5DQor44Kz44OP44OpLOODnuOCteOCrQ0KK+OCs+OCpOODhyzjg4jjgrfjg6QNCivjgrPjgqTjg68s44OS44On44Km44K4DQor44Kz44Kk44K644OfLOODj+ODq+OCsw0KK+OCs+ODnuODhCzjg6Tjgrnjgr/jgqsNCivjgrPjg6Hjg4As44OS44Ot44Om44KtDQor44Kz44Oz44OJLOODn+OCrQ0KK+OCs+ODs+ODiSzjg4jjgqrjg6sNCivjgrPjg4vjgrcs44K444Ol44Oz44K4DQor44Kz44K144KrLOODkuODreOCouOCrQ0KK+OCs+OCv+OCrSzjgrjjg6Xjg7MNCivjgrPjgr/jg4ss44OS44OH44KtDQor44Kz44OI44OW44KtLOODkuODreOCtw0KK+OCv+OCt+ODrSzjgqvjgrrjg47jg6oNCivjgq/jg5zjgr8s44Om44Kt44Oe44K1DQor44Kv44OcLOODhuODhOODpA0KK+OCr+ODieOCpizjg57jgrXjg4gNCivjgq/jg57jgqzjgqQs44Ok44K544OS44OtDQor44Kv44Ot44K7LOOCquOCteODoA0KK+OCr+OCt+ODnizjg6TjgrnjgrMNCivjgq/jgrfjg5/jg6Qs44Kz44Km44KtDQor44Kv44OE44Kr44KxLOOCt+ODs+OCpOODgQ0KK+OCr+ODr+ODjizjgrfjg6Xjgqbjgr7jgqYNCivjg57jg4Tjg4rjgqws44OS44OH44KtDQor44Oe44Ko44OALOODpuOCpuOCuA0KK+ODnuOCqOODj+ODqSzjgrXjg4jjgrcNCivjgqjjg47jgq0s44OI44K344OkDQor44Oe44Ko44Kr44OvLOOCs+OCpuOCuOODreOCpg0KK+ODnuOCqOOCrSzjgqLjg6TjgrMNCivjg57jg7Pjg44s44K344Oz44KuDQor44Oe44OOLOOCqOOCpOOCuA0KK+ODnuODs+OCv+ODiyzjg6jjgqbjgqTjg4ENCivjg57jg6vjg6Tjg54s44Ok44K544OS44OtDQor44Oe44K7LOOCq+OCuuODkuOCsw0KK+ODnuOCueOCtuODryzjg57jgrXjgqoNCivjg57jg4Tjg4As44Of44OE44OO44OqDQor44Oe44OE44KkLOOCpOODhOOCsw0KK+ODnuODhOOCpCzjg57jgrXjg4gNCivjg57jg4Tjg6Ljg4gs44Ok44K544Ki44KtDQor44Oe44OE44Og44OpLOOCq+OCuuOCouOCrQ0KK+ODnuODhOODjizjg47jg6rjg6bjgq0NCivjg57jg4Tjgrbjgq0s44Os44Kk44KzDQor44Of44KtLOOCt+OCsuODqw0KK+ODn+OCs+ODgCzjg4bjg6vjg6bjgq0NCivjg5/jg6Djg6ks44Kr44K644K/44KrDQor44Of44Og44OpLOOCt+OCsuODjuODlg0KK+ODn+ODiuODnyzjgrXjg4jjgrcNCivjg5/jg4rjg58s44OO44OW44OS44OtDQor44Of44OK44OILOODpOOCueOCtw0KK+ODn+ODjeODnuODhCzjg47jg6rjgrMNCivjg5/jg40s44Oe44K144K/44KrDQor44Of44K344OeLOODkuODreODpuOCrQ0KK+ODn+ODryzjg57jgrXjg5Ljg60NCivjg5/jg6TjgrDjg4Es44K/44Kr44OS44OtDQor44Of44Oo44K3LOODpuOCpuOCsw0KK+ODn+OCuuOCvyzjgrjjg6Xjg7PjgrMNCivjg6Ljg6Ljg47jgqQs44Kx44Kk44K544KxDQor44Ob44Oz44OALOOCv+OCseOCtw0KK+ODouODquOCvyzjg6TjgrnjgrcNCivjg6Ljg6rjgr8s44Ki44Kt44OS44KzDQor44Oi44OqLOOCouOCreODqQ0KK+ODouODqizjgqLjg4TjgrcNCivjg6Ljg6os44Kr44K644OS44OtDQor44Oi44OqLOODn+ODjuODqw0KK+ODouODqizjgr/jgqvjgrcNCivjg6Djg43jg6Djg6ks44OI44K344Of44OEDQor44Og44Op44Kr44OfLOODqOOCpuOCuA0KK+ODoOODqeOCquOCqyzjgrPjgqbjgrgNCivjg5/jg6fjgqbjgqws44OS44Ot44KtDQor44OK44Ks44Of44ONLOODnuOCteOCtw0KK+ODpOODnuODgCzjgrfjg7PjgqTjg4ENCivjg4rjgqzjgqos44OI44K344Kr44K6DQor44OK44Ks44K/LOOCseODs+OCuA0KK+ODiuOCpOODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg4rjgqvjgqzjg68s44K/44Ot44KmDQor44OK44Kr44Kk44OBLOODkuODreODjuODqg0KK+OCteOCteOCrSzjg4TjgqvjgrUNCivjg4rjgqvjgrjjg54s44OS44Ot44K3DQor44OK44Kr44K344OeLOOCveOCpuOCv+ODreOCpg0KK+ODiuOCq+OCs+OCuCzjgr/jg4Tjg6QNCivjg4rjgqvjg6Djg6ks44Oe44K144OV44OfDQor44OK44Kr44Og44OpLOOCteODiOOCtw0KK+ODiuOCq+ODoOODqSzjg4jjgqrjg6sNCivjg4rjgqvjg6Djg6ks44K444Ol44OzDQor44OK44Kr44Og44OpLOODgOOCpOOCueOCsQ0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgrMNCivjg4rjgqvjg6Djg6ks44Oo44Km44Kk44OBDQor44OK44Kr44Og44OpLOOCr+ODn+OCsw0KK+ODiuOCq+ODi+OCtyzjg4jjgrfjg6bjgq0NCivjg4rjgqvjg44s44OG44OE44OkDQor44OK44Kr44OOLOOCreODs+ODpA0KK+ODiuOCq+OCt+OCqizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg4rjgqvjgr8s44Kr44OK44KzDQor44OK44Kr44Ok44OeLOOCv+OCq+OCtw0KK+ODiuODs+OCsSzjgqLjg4TjgrcNCivjg4rjg6njgrbjgq0s44K/44Kk44OB44Ot44KmDQor44OK44Oq44K7LOODpuOCreODkuODrQ0KK+ODiuODq+OCquOCqyzjgqTjgrXjg6ANCivjg43jg6Ljg4gs44K/44OA44K3DQor44OL44Og44OpLOOCueOCueODoA0KK+ODi+ODoOODqSzjg57jgrXjg6bjgq0NCivjg4vjgrfjg6Djg6ks44OE44OI44OgDQor44OL44K344OOLOOCq+OCuuODnuOCtQ0KK+ODi+OCt+OCt+OCvyzjg4bjg4Tjg47jg6oNCivjg4vjgrfjgqbjg4Es44K344Ol44Km44Kk44OBDQor44OL44K344Ok44OeLOODiuOCquODkuODiA0KK+ODpOOCuOODnizjg6jjgrfjgqgNCivjg4vjgrfjgrbjg68s44Om44K/44KrDQor44OL44OvLOOCouOCreODqQ0KK+ODjuODluODiuOCrCzjg5/jg4TjgrcNCivjg47jgqzjg58s44Oe44Kz44OIDQor44OO44Kw44OBLOOCt+ODs+OCpOODgQ0KK+ODjuOCsOODgSzjg5/jg6bjgq0NCivjg47jg54s44OI44Oo44OfDQor44OO44OeLOOCs+OCpuOCpOODgQ0KK+ODjuODoOODqSzjgrPjgqbjgrgNCivjg47jg6Djg6ks44OO44Oq44KqDQor44OO44Og44OpLOOCt+ODpeODs+OCpOODgeODreOCpg0KK+ODjuOCuyzjgr/jg4DjgqLjgq0NCivjg47jgrbjg68s44Oo44Km44Kk44OBDQor44OM44Kt44KkLOOCq+ODhOODnw0KK+ODjOODnuOCqizjgqLjgq3jg6kNCivjg4zjg57jgr8s44Kr44K644OS44OtDQor44Kq44OB44Ki44KkLOOCv+OCq+ODpuOCrQ0KK+OCquODgeOCouOCpCzjg6jjgrfjgqoNCivjgqrjg4Djg4/jg6ks44Kk44Kv44KqDQor44Kq44OALOODn+ODjuODqw0KK+OCquOCrOOCteODr+ODqSzjgrfjg6XjgqbjgrgNCivjgqrjg4njg57jg6os44OI44Km44Kk44OB44Ot44KmDQor44Kq44Kr44OJLOODleODn+OCqg0KK+OCquODnuOCtSzjgqLjgq3jg6kNCivjgqrjg4rjgqws44OS44Ot44Om44KtDQor44Kq44Kq44OOLOODkuODh+ODpuOCrQ0KK+OCquOCquOCteOCrSzjgqLjg4TjgrcNCivjgqrjgqrjgrXjg68s44OS44OH44K/44KrDQor44Kq44Kq44K544OfLOOCq+OCuuODpuOCrQ0KK+ODpOODnuOCt+OCvyzjg57jgrXjg6sNCivjgqrjgqrjgr8s44OK44Oz44OG44OEDQor44Kq44Kq44K/LOOCv+OCq+OCtw0KK+OCquOCquODhOOCqyzjgr/jg4Tjg6QNCivjg57jg4Tjg4rjgqws44Oo44K344Ki44KtDQor44Kq44Kq44Ok44OeLOODjuODquODpuOCrQ0KK+OCquOCq+ODgCzjg6rjgqgNCivjgqrjgqvjg4As44K/44Kx44K3DQor44Kq44Kr44OALOODkuODreODleODnw0KK+OCquOCq+ODgCzjg6jjgrfjg47jg6oNCivjgqrjg47jg4fjg6ks44K/44Kr44KqDQor44Kq44Kr44Oi44OILOODkuODreODpuOCrQ0KK+OCquOCq+OCtuOCrSzjgr/jgqvjgqLjgq0NCivjgqrjgq/jg4As44OI44K344Om44KtDQor44Kq44KvLOODjuODluODpuOCrQ0KK+OCquODjizjgrXjg4HjgrMNCivjgqrjg44s44Kx44Kk44Kk44OB44Ot44KmDQor44Kq44Oq44OGLOOCseODs+OCpOODgQ0KK+OCquOCteODgCzjg6Djg4Tjg58NCivjgrXjgqTjg4jjgqYs44Og44OE44KqDQor44K144Kk44OI44KmLOOCt+ODs+OCtA0KK+OCteOCpOODiOOCpizjgrfjg6XjgqbjgrgNCivjgrXjgqTjg4jjgqYs44Oo44Km44Kk44OBDQor44K144Kk44OI44KmLOODpuOCv+OCqw0KK+OCteOCpOODiOOCpizjgqvjgrrjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Ki44Kt44OS44OtDQor44K144Kr44KkLOOCpOODgeODreOCpg0KK+OCpOOCt+OCtuOCrSzjg6bjgq3jg47jg6oNCivjgrXjgqvjg6Ljg4gs44OS44Ot44K3DQor44K144Kr44OO44Km44KoLOODkuODh+OCqg0KK+OCteOCq+OCpuOCqCzjgqvjgrrjg57jgrUNCivjgrXjgrPjg4As44OO44OW44KqDQor44K144Kv44Op44KkLOOCt+OCsuODjuODqg0KK+OCteOCr+ODqeOCpCzjgr/jgqvjgrcNCivjgrXjg4zjgq0s44Oq44Ol44Km44K/44Ot44KmDQor44K144K144KtLOOCouOCreODiA0KK+ODiOODn+OCvyzjg4jjg6Ljg4rjg6oNCivjgrXjg4jjgqYs44OG44OE44KqDQor44K144OI44KmLOODiuOCquOCrQ0KK+OCteODiOOCpizjg6jjgrfjg47jg6oNCivjgrXjg4jjgqYs44Oe44K144Om44KtDQor44K144OI44KmLOODiOOCt+ODpA0KK+OCteODiOOCpizjgqLjg4TjgrMNCivjgrXjg6/jg4As44Oe44K144OIDQor44K744KqLOOCseODs+OCteOCrw0KK+OCu+OCtuOCpCzjgqvjgrrjg6TjgrkNCivjgrfjg5Djgr8s44K/44Kx44OS44KzDQor44K344OQ44K/LOODqOOCpg0KK+OCt+OCrOOCrSzjgqLjgq3jg5LjgrMNCivjgrfjg5/jgros44OS44Ot44OgDQor44K344Of44K6LOODqOOCt+ODnw0KK+OCt+ODn+OCuizjgqLjgq3jg6kNCivjgrfjg5/jgros44Ki44Kt44OI44K3DQor44K344Of44K6LOODkuODh+OCqg0KK+OCt+ODouODoOODqSzjg5Ljg63jgqLjgq0NCivjgrfjg47jg4/jg6ks44Kr44K644OS44OtDQor44K344Op44OELOODnuOCs+ODiA0KK+OCt+ODreOCt+OCvyzjgrXjg4jjgrcNCivjgrfjg6fjgqbjgrgs44Om44Km44KzDQor44K344On44Km44Of44OELOODqOOCt+ODkuODrQ0KK+OCveODgCzjgqvjg4TjgrnjgrENCivjgr3jg6Ljg6os44K/44OE44KqDQor44K944KmLOOCq+OCuuODkuOCsw0KK+ODiuOCqyzjg6bjgqbjgrgNCivjgrnjgq7jg6Djg6ks44Kx44Kk44K3DQor44K544Ku44OOLOODnuOCteODkuODrQ0KK+OCueOCruOCteODryzjg47jg5bjg6bjgq0NCivjgrnjgq7jgr8s44K144Om44OqDQor44K544Ku44Km44OBLOOCt+ODs+OCueOCsQ0KK+OCueOCruODpOODnizjgqLjgq3jg47jg6oNCivjgrnjgq7jg6Tjg54s44Oe44K144OO44OqDQor44K544Ku44Ok44OeLOOCq+OCuuODnw0KK+OCueOCuuOCrSzjgrfjg7Pjg6QNCivjgrnjgrrjgq0s44Om44Km44K4DQor44K544K644KtLOOCt+ODsw0KK+OCueOCuuOCrSzjg5Ljg63jgqLjgq0NCivjgrnjgrrjgq0s44OI44K344Ki44KtDQor44K544K644KtLOODkuODh+ODiA0KK+OCueOCuuOCrSzjgrPjgqbjgqTjg4ENCivjgrnjgrrjgq0s44Om44Km44KzDQor44K/44OB44OQ44OKLOOCv+OCq+OCtw0KK+OCv+OCpOODqSzjgqLjgq3jg6kNCivjgr/jgqTjg6ks44OS44OH44Ki44KtDQor44K/44Kr44OALOODkuODreODpuOCrQ0KK+OCv+OCq+OCrizjg57jgrXjgqvjgroNCivjgr/jgqvjg4/jgrcs44OO44Oq44Kk44OEDQor44K/44Kr44OP44K3LOOCv+OCq+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg4/jgrjjg6ENCivjg57jgrnjgrbjg68s44OS44OI44K3DQor44K/44Kr44OP44K3LOODnuOCteOCouOCrQ0KK+OCv+OCq+ODnizjg5LjgrXjg4gNCivjgr/jgqvjg44s44Of44Ko44KzDQor44K/44Kr44OOLOOCq+OCuuODqOOCtw0KK+OCv+OCq+OCteOCqyzjg4/jgrjjg6ENCivjgr/jgqvjgrss44Kr44OE44K4DQor44K/44Kr44K/LOOCr+ODn+OCsw0KK+OCv+OCq+ODpOODnizjgqLjg4TjgrcNCivjgr/jgqvjg6Tjg4rjgq4s44Ki44Oq44OS44OtDQor44K/44Kx44OALOOCqOODqg0KK+OCv+OCseODgCzjgqLjgq3jg6kNCivjg5XjgrjjgqQs44Ki44OE44KzDQor44K/44Kx44OO44OqLOOCpOOCr+OCtw0KK+OCv+OCseOCt+OCvyzjg5Ljg63jgqvjgroNCivjgr/jgrHjgqbjg4Es44Om44Km44K4DQor44K/44Kx44Km44OBLOOCv+OCq+ODiOOCtw0KK+OCv+OCreOCtuODryzjg57jgrXjgqLjgq0NCivjgr/jgq3jgrbjg68s44OE44Oo44K3DQor44K/44Oe44KtLOOCteODiOOCsw0KK+OCv+ODoOODqSzjgqLjgq3jg5Ljg60NCivjgr/jg6Djg6ks44OG44OE44ONDQor44K/44Og44OpLOODjuODluOCqg0KK+OCv+ODiuOCqyzjgrfjg6fjgqbjgrQNCivjg6/jgr/jg4rjg5ks44Ki44Kt44OS44OtDQor44K/44OL44Ok44OeLOODjuODnOODqw0KK+OCv+ODiyzjgqvjgrrjg5LjgrMNCivjg4bjg6njgq3jgr8s44OK44Ks44OO44OqDQor44OG44K644KrLOOCt+ODs+OCpOODgQ0KK+ODiOODkOODqizjgrnjgrnjg6ANCivjg4jjgqzjgrcs44K444Ol44Oz44Kk44OBDQor44Ok44Oe44OALOOCseODs+OCpOODgQ0KK+ODiOOCreOCvuODjizjgrfjgrLjgqoNCivjg4jjg5/jg4rjgqws44Oi44OI44OS44K1DQor44OI44Of44OK44KsLOOCt+ODs+OCuA0KK+ODiOODn+OCvyzjgrfjg7PjgrgNCivjg4jjg5/jgr8s44OG44OE44KqDQor44OI44Oi44Kq44KrLOODkuODiOOCtw0KK+ODiOODjuOCteOCrSzjg6jjgrfjg47jg6oNCivjg4jjg6rjgrbjg68s44Ko44OfDQor44Kz44Kk44KxLOODkuODreOCsw0KK+ODiOODqOOCq+ODryzjg57jgrXjg6jjgrcNCivjg4jjg6jjgqvjg68s44OS44K144Oo44K3DQor44OE44Oc44KkLOOCv+ODgOOCtw0KK+ODhOOCq+ODgCzjg4jjgqrjg6sNCivjg4Tjgq/jgqQs44OS44K144K3DQor44OE44Or44Kr44OvLOOCqOOCpOOCuA0KK+ODhOODhOOCpCzjg4jjgrfjgqvjgroNCivjg4Tjg4TjgqQs44Om44Km44K4DQor44Km44OB44OALOODkuODreOCrQ0KK+OCpuODgeODgCzjgrjjg6Xjg7PjgqTjg4ENCivjgqbjg4Hjg54s44K344Ol44Oz44Kk44OBDQor44Km44OB44Ok44OeLOOCouOCreODkuODrQ0KK+OCpuODgCzjg5LjgrXjg6jjgrcNCivjgqbjgqjjg4As44Kr44K644OO44OqDQor44Km44Ko44OOLOOCreODqOOCtw0KK+OCpuOCqOODjizjg47jg6rjgqoNCivjgqbjgqjjg44s44K/44Kr44K3DQor44Km44Kx44Ks44OvLOOCv+OCq+ODpuOCrQ0KK+OCpuODnuOCuuODoSzjg6jjgrfjg5Ljg60NCivjgqbjg6Hjg6Djg6ks44Kt44Of44OS44OtDQor44Ov44OALOODkuODreOCtw0KK+ODr+ODgCzjg6Tjgrnjg5LjgrMNCivjg6/jgr/jg4rjg5ks44Oq44On44KmDQor44Kk44Kk44OALOOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgrcNCivjg6/jgr/jg6os44Ok44K544Oo44K3DQor44Ok44KuLOODqOOCt+ODpuOCrQ0KK+ODpOODnuODgCzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgqws44OS44OH44KqDQor44Ok44Oe44Kw44OBLOODnuOCteODjuODqg0KK+ODpOODnuOCsOODgSzjg5Ljg4fjgqoNCivjg6Tjg57jgrDjg4Es44Oe44K144K3DQor44Ok44Oe44Oi44OILOODhuODhOODpA0KK+ODpOODnuODouODiCzjg57jgrXjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44Kr44K644Om44KtDQor44Ok44Oe44Oi44OILOODkuODh+OCtw0KK+ODpOODnuODouODiCzjg57jgrXjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Kr44K644OIDQor44Ok44Oe44Oi44OILOOCq+OCquODqw0KK+ODpOODnuODouODiCzjg57jgrXjg6jjgrcNCivjg6Tjg57jg4rjgqss44Ko44Kk44K4DQor44Ok44Oe44K344K/LOOCteODiOODqw0KK+ODpOODnuOCpuODgSzjgqvjgrrjgqLjgq0NCivjg6Tjg57jgrbjgq0s44OP44Or44OS44KzDQor44Ok44Oe44K244KtLOODnuOCteODiOOCtw0KK+ODpOODnuOCtuOCrSzjgrHjg7PjgrgNCivjg6Tjg44s44Om44Kt44KqDQor44Ok44OOLOOCs+OCpuOCpOODgQ0KK+ODpOOCueODgCzjgr/jgrHjgrcNCivjg6Tjgrnjg57jg4Qs44Kr44OE44OK44OqDQor44Ok44K544Oi44OILOOCs+OCpuOCuA0KK+ODpOOCueODi+ODryzjgr/jgqvjg6bjgq0NCivjg6jjg4As44Kq44K144OgDQor44Oo44OALOOCpOOCteOCqg0KK+ODqOOCt+ODgCzjg6jjgrfjg5Ljg60NCivjg6jjgrfjgqQs44K/44OE44OkDQor44Oo44K344OK44KsLOODpuODn+OCsw0KK+ODqOOCt+ODjizjgr/jg4Tjg58NCivjg6jjgrfjgr/jgrEs44Ki44Kt44OS44OtDQor44K/44Kt44K244OvLOOCv+OCq+OCtw0KK+ODpOODnuOCsOODgSzjgqvjgrrjg6jjgrcNCivjgqvjg5Djgrfjg54s44Kr44K644OS44K1DQor44K144Kv44OpLOODpuOCpuOCueOCsQ0KK+ODoOODqeODpOODnizjg5Ljg63jg6bjgq0NCivjg5Ljgq3jg4As44Kr44K644OfDQor44Og44Op44KkLOOCr+ODi+ODkuODrQ0KK+ODmyzjgqLjgq3jg6kNCivjgqjjg7Pjg4ks44K744Kk44K4DQor44OG44Op44Og44OpLOOCv+ODhOOCqg0KK+ODr+OCv+ODiuODmSzjgr/jgqvjg5LjgrMNCivjgqTjg57jgqQs44K344Ky44OkDQor44Oi44Oq44Oi44OILOODiOOCt+OCq+OCug0KK+OCs+ODpOODqizjgrvjgqTjgrgNCivjg57jg4Tjg5/jg6Qs44Om44Km44Kk44OBDQor44K344OQ44K/LOOCq+OCuuOCqg0KK+ODgeOCt+ODrSzjg6jjgrfjg5Ljg60NCivjgqTjgr/jg58s44OS44OH44KqDQor44Kq44K244KtLOODkuODiOOCtw0KK+ODleOCr+ODouODiCzjg57jgrXjg4TjgrANCivjgqrjgqvjg4As44OS44Ot44K3DQor44K144Ov44OALOODkuODreOCtw0KK+OCteOCr+ODqeOCpCzjgr/jgqvjgrcNCivjg4/jg6Tjgrcs44Oo44K344OO44OqDQor44Oe44OE44Kq44KrLOODpOOCueODjuODqg0KK+ODn+ODqOOCtyzjg47jg6rjg6jjgrcNCivjg6Tjg57jg4rjgqss44Kz44Km44K444Ot44KmDQor44K344Of44K6LOODkuODiOOCtw0KK+OCs+ODj+ODqSzjg57jgrXjg47jg6oNCivjg4vjgrfjgqvjg68s44OS44Ot44K3DQor44Kk44Oe44KkLOODpOOCueOCqg0KK+ODleOCuOODoOODqSzjg5Ljg63jg6bjgq0NCivjgrPjgrjjg54s44Ok44K544Om44KtDQor44Kz44OQ44Ok44K3LOODkuODreOCtw0KK+OCreOCr+ODgSzjgqvjg4Tjg5LjgrMNCivjgrXjgqTjg4jjgqYs44Of44OE44OrDQor44Ok44Oe44K344K/LOODkuODh+OCouOCrQ0KK+OCouODmSzjgrfjg7PjgrgNCivjg4bjgrrjgqss44K/44Kr44K3DQor44K/44OK44KrLOODr+OCv+ODqw0KK+ODi+ODryzjg5/jg47jg6sNCivjgqvjg6HjgqQs44Of44K644ObDQor44Ok44OOLOODn+ODhOOCqg0KK+ODiuOCq+ODnuODqyzjg6TjgrnjgrcNCivjgqrjgqrjg4/jgr8s44Oe44K144OO44OqDQor44Ok44K544Ok44OeLOODnuOCteODkuODrQ0KK+OCq+OCueOCrCzjg5/jg4TjgqoNCivjgqTjgrfjgqQs44Ki44Kt44OS44KzDQor44OV44K444Oi44OqLOODjuODquOCsw0KK+OCpOODr+ODouODiCzjg5Ljg63jgrcNCivjg6Tjg57jgrfjgr8s44Or44Of44KzDQor44Kt44K/LOODiOODouODnw0KK+ODoOODqeOCquOCqyzjg6bjgqbjgrMNCivjgqTjgrDjgrUs44Oo44K344K644OfDQor44OK44Ks44K144OvLOODkuODreOCuA0KK+ODpOODnuOCsOODgSzjg6Tjgrnjg5Ljg60NCivjgqrjg4Djgrjjg54s44Om44K/44KrDQor44Kq44Kq44K/LOODnuODnw0KK+ODj+OCruODjizjg4rjgqrjgqTjg4Hjg63jgqYNCivjg6Tjg5bjgq0s44OI44K344Ki44KtDQor44Kk44KtLOODqOOCt+ODiOOCtw0KK+OCteOCpOODiOOCpizjg57jgrXjg4gNCivjg6Tjg57jg4As44K/44Kr44K3DQor44OK44Kr44Ok44OeLA0KK+ODoOODqeODnuODhCzjgqvjgqrjg6sNCivjgr/jgrfjg60s44K344On44Km44Kk44OBDQor44Kk44K344OP44OpLOODnuOCteODpuOCrQ0KK+OCt+ODkOOCquOCqyzjgr/jg4TjgqoNCivjg4rjgqvjgqos44Ok44K544OO44OqDQor44OV44K444K/LOODiOOCt+OCrQ0KK+OCteOCr+OCvyzjg57jgrXjg6bjgq0NCivjg4/jgr8s44K544K544OgDQor44Kq44Kq44Ok44OeLOOCv+ODgOOCtw0KK+OCv+OCtCzjgq3jg6fjgqbjgrMNCivjg57jg4Tjg6Djg6ks44Kr44K644KqDQor44Kk44OI44KmLOODnuOCteODpuOCrQ0KK+OCreODoOODqSzjgr/jgrHjgqoNCivjgqLjgqrjgq0s44Of44OE44K/44KrDQor44Kz44Oe44Ks44K/LOODkuODh+ODiOOCtw0KK+ODiuODqeODoOODqSzjgqvjgrrjgrMNCivjg5Xjgrjjg6Ljg4gs44Oe44K144KtDQor44Of44Ok44K144KrLOODiOOCt+ODkuOCsw0KK+ODj+ODpOOCtyzjg57jgrXjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Kr44K644OS44KzDQor44Kq44Ks44K144Ov44OpLOOCt+ODp+OCpuOCuA0KK+OCquOCquODhOOCqyzjg4jjgrfjg6bjgq0NCivjgqvjg6/jgqQs44OI44Oi44Om44KtDQor44K344Oe44K6LOODqOOCpuOCpOODgQ0KK+OCv+OCq+ODj+OCtyzjgq3jgrfjgrMNCivjg57jgqjjgrbjg68s44Kk44K644OfDQor44OP44OALOOCq+OCquODqw0KK+ODnuODhOODkuODqSzjgqjjg6oNCivjgrnjgq7jg4/jg6ks44OO44Oc44OrDQor44OK44Kr44K444OeLOODqOOCt+ODjuODlg0KK+ODj+OCv+OCseODpOODnizjg4bjg4Tjg6QNCivjgqLjgqrjgq0s44Oe44K144OS44KzDQor44K344OW44Kr44OvLOOCreODqOODkuOCtQ0KK+OCpOOCt+ODgCzjgrfjgrLjg6sNCivjgqrjgqvjg4As44K/44Kr44K3DQor44Kk44OI44KmLOOCouOCreODqQ0KK+OCq+ODiOOCpizjg57jgrXjg5Ljg60NCivjgrPjg5Djg6Tjgrcs44OK44Kq44Of44OEDQor44Og44Op44K144OvLOODn+ODjuODqw0KK+ODn+ODmyzjg57jgrXjg47jg6oNCivjgrnjgqzjg40s44Oo44K344OO44OWDQor44Kk44K344Kr44OvLOODqOOCt+ODkuOCsw0KK+OCquOCqyzjg6Tjgrnjg5Ljg60NCivjgqTjg6/jg58s44Om44Of44KzDQor44OK44Kr44Ok44OeLOODkuODreOCtw0KK+OCpOODiOOCpizjgqvjgrrjgq0NCivjgrnjgq7jg6Tjg54s44K344Oz44Kk44OBDQor44Kr44K344Oi44OILOODqOOCt+OCsw0KK+ODiuOCq+ODoOODqSzjg57jgrXjg6bjgq0NCivjgqLjgqrjg6Tjg54s44OS44OH44OO44OqDQor44K344OQ44K/LOOCseODs+OCpOODgQ0KK+ODnuODhOOCqizjg6jjgrfjg47jg6oNCivjgrfjg47jg6Djg6ks44Ki44Kq44KkDQor44OV44Or44Kr44OvLOODqOOCt+ODleODnw0KK+ODouODiOOCrSzjgrfjg6XjgqbjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OB44KqDQor44Ki44Oz44OJ44KmLOODnuOCteODkuODrQ0KK+OCv+OCseODkizjgrXjg4HjgrMNCivjgqTjgrfjgqQs44Ki44Kt44OV44OfDQor44OO44OB44K7LOOCq+OCuuODkuOCsw0KK+ODn+ODpOODiuOCrCzjg4jjgrfjgrMNCivjgrfjg7Pjg4njgqYs44OS44Ot44OfDQor44Kq44Kq44K/LOODn+ODqOOCsw0KK+OCv+ODiyzjg6jjgrfjgqLjgq0NCivjgrPjg6Djg60s44OV44Of44OO44OqDQor44Kk44Ov44K1LOODkuODreODn+ODgQ0KK+ODnuODhOODouODiCzjg5Ljg4fjgqLjgq0NCivjgq3jg6Djg6ks44OS44K144OIDQor44Ki44Kq44KtLOOCouOCreODkuOCsw0KK+ODnuODhOODkOODpOOCtyzjg5Ljg63jgrcNCivjgrTjg4jjgqYs44OV44Of44Om44KtDQor44Kq44Ks44OvLOOCouOCreODqQ0KK+OCueOCruOCv+ODiyzjg4/jg6vjgqoNCivjgqrjgq/jg44s44Om44Kt44KqDQor44K144Kv44Op44OALOOCt+ODs+ODmuOCpA0KK+ODoOOCs+ODpOODnizjg47jg6rjgrMNCivjgqTjg4jjgqYs44K144OI44K3DQor44Ok44Oe44Oi44OILOOCv+ODgOOCtw0KK+ODpOODnuODouODiCzjg57jgrXjg4jjgrcNCivjgqvjg43jgrMs44K344Ol44Km44OY44KkDQor44Ok44Oe44K244KtLOODpOOCueODkuODrQ0KK+ODiuOCq+ODoOODqSzjg4jjg6INCivjg5/jg68s44Kq44K144OgDQor44K144Og44Kr44OvLOOCt+ODreOCpg0KK+ODiuOCq+ODgCzjg4jjgrfjg6bjgq0NCivjg6jjgrfjg4jjg58s44Kx44Oz44Kk44OBDQor44K/44Kr44K344OeLOODhOODjeOCuA0KK+OCpOOCt+OCsizjgqLjgq3jgrMNCivjgrnjgqjjg4/jg6ks44OS44Ot44Om44KtDQor44Kk44OO44Km44KoLOODkuODh+ODnw0KK+ODjuOCuOODniwNCivjgrXjgq/jg54s44K144OB44KoDQor44K144OOLOODqOOCt+ODn+ODgQ0KK+ODoOODqeOCquOCqyzjgqvjg4TjgrgNCivjg5/jgqbjg6ks44Oq44Ol44Km44K+44KmDQor44K144Kr44Oi44OILOOCuOODpeODsw0KK+ODiuODq+OCqizjgrvjgqTjgrMNCivjg4/jgrvjgqzjg68s44Of44OE44OS44OtDQor44Kq44Kr44OALOODhuODhOOCqg0KK+ODpOODkuODrSzjg47jg5bjg6bjgq0NCivjg5Djg5As44K/44Kv44OkDQor44Ki44K/LOOCouODpOODjg0KK+ODiuOCrOOCuyzjgq3jg6jjgrcNCivjgqvjg6/jgqgs44Kk44K644OfDQor44Of44Km44OpLOODnuOCreODqA0KK+ODleOCuOOCvyzjgrXjg4jjgrMNCivjg4Tjg6vjg58s44Oo44K344KqDQor44Oi44OB44K644KtLOOCqOODn+OCsw0KK+ODqOOCt+ODgCzjgqvjgrrjgqLjgq0NCivjgqrjgqvjg6Ljg4gs44Oe44K144OV44OfDQor44Ok44K544Oi44OILOODn+ODhOODj+ODqw0KK+ODjeODouODiCzjgr/jgq/jgrgNCivjg5Ljg4Djgqss44Km44Ko44Of44OEDQor44Oe44K544OALOOCr+ODn+OCsw0KK+ODiOOCr+ODiuOCrCzjg5Xjg5/jg5Ljg4gNCivjg4rjgqvjgrbjg68s44K544K544OgDQor44OV44K444OK44OvLOODqOOCt+ODj+ODqw0KK+ODqOODk+OCq+ODryzjgqvjgrrjg5Ljg60NCivjgq3jgr/jg4As44K/44Kx44K3DQor44Oo44K344OOLOODpOOCueODkuODrQ0KK+ODkOODkCzjg6jjgrfjg4gNCivjgq/jg63jgqvjg68s44OS44Ot44K3DQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+ODr+OCv+ODiuODmSzjg4jjgrfjgqoNCivjg4Tjg4Hjg4As44Ki44OE44KzDQor44K544K644KtLOODn+ODpuOCrQ0KK+ODn+OCuuODjizjgqLjgq3jg6kNCivjgr/jg4vjg6Ljg4gs44K/44Kv44OfDQor44Kk44Kx44OOLOODoeOCsOODnw0KK+OCpOODiOOCpizjgrfjg6fjgqbjgrMNCivjgr/jgrHjg4As44OI44Kq44OrDQor44Oe44Ko44OALOOCs+OCpuODmOOCpA0KK+OCr+ODieOCpizjgqvjg4Tjg58NCivjgqvjgrLjg6Tjg54s44Of44ON44KqDQor44Ok44Oe44Kr44KyLOODqOOCpuOCuA0KK+OCteOCqOOCsOOCtSzjg6zjgqTjgrMNCivjg5/jgrrjgr/jg4ss44OK44Kq44KzDQor44Kv44OJ44KmLOODiOOCt+ODkuOCsw0KK+OCs+OCquODquODpOODnizjg5/jgrrjg5sNCivjgqvjgr/jg6jjgrss44Oo44K344KoDQor44Kq44K144OALOOCseOCpOOCsw0KK+ODpOOCruODj+OCtyzjgrfjg6XjgqbjgqTjg4ENCivjgrnjg58s44K/44OE44KqDQor44K/44OK44KrLOOCouODhOOCtw0KK+OCr+ODieOCpizjg6bjgq3jgqoNCivjgr/jgrHjg5Is44Ki44Kt44OpDQor44Ki44Oh44Of44OkLOODn+ODgeODkuODrQ0KK+ODiuOCq+ODoOODqSzjgr/jgqvjgrcNCivjgq3jg6jjg5/jg4Qs44Kx44Oz44K4DQor44Kk44K644Of44OALOODqOOCt+OCqw0KK+ODleODiuOCrSzjg5Ljg63jgqLjgq0NCivjgr/jgrHjgrfjgr8s44Kr44K644OS44KzDQor44Of44Km44OpLOOCreOCr+OCqg0KK+OCpOOCt+ODkOOCtyzjg47jg5bjgrMNCivjg6Ljg6rjgqLjgqQs44Kx44Kk44K4DQor44Og44Op44Ok44OeLOOCqOOCpOOCuOODpQ0KK+OCquOCteODryzjg6Tjgrnjg47jg6oNCivjg5Xjgqvjg4As44Oo44K344Kr44K6DQor44Ok44Oe44OALOODkuODh+ODkuOCsw0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjgqrjg47jg4fjg6ks44OI44Of44KqDQor44OP44Ok44K144KrLOODnuOCteODn+ODgQ0KK+OCquOCquODhOOCqyzjg5Ljg4fjg5LjgrMNCivjg4jjgqrjg6Tjg54s44OS44Ot44K/44KrDQor44Kr44Ov44OP44OpLOODn+ODhOODqw0KK+OCqOODk+OCteODryzjg57jgrXjgq0NCivjg6Tjg57jgqvjg68s44OG44OE44OkDQor44Ok44Oe44Oi44OILOODpOOCueODiOODog0KK+OCueOCuuOCrSzjg4jjgqrjg6sNCivjgqrjg6Tjg57jg4As44K/44Kr44K3DQor44Oe44OE44Ok44OeLOODquODpeOCpuOCpOODgQ0KK+OCouODmSzjg47jg5bjg5Ljg60NCivjgqLjg5ks44Ok44K544KqDQor44Ki44OZLOOCq+OCuuODnuOCtQ0KK+OCouODmSzjg6bjgq3jgqoNCivjgqLjgrLjgr8s44K444Ol44Oz44Kk44OBDQor44Ki44Kr44OP44ONLOODkuODh+ODkuODrQ0KK+OCouOCseODiuOCrCzjgrjjg6Xjg7MNCivjgqLjgq3jg6Tjg54s44K344Ky44KqDQor44Ki44Kt44K244OvLOODkuODh+OCq+OCug0KK+OCouODnuODgCzjg5/jgq3jgqoNCivjgqLjg57jg44s44Oe44K144K3DQor44Ki44Oi44KmLOOCouOCreOCqg0KK+OCouODs+ODieOCpizjg5Ljg4fjgqLjgq0NCivjgqLjg7Pjg4njgqYs44OK44Kq44KtDQor44Ki44Oz44OJ44KmLOODiOOCt+ODleODnw0KK+OCouOCquODjizjg5Ljg63jgq0NCivjgqLjgqrjg6Tjg54s44Kk44Ov44KqDQor44Ki44Op44KkLOOCq+OCuuODkuODrQ0KK+OCouODqeOCq+ODryzjg5Ljg4fjgrcNCivjgqLjg6rjg6Ljg4gs44OS44OH44KtDQor44Ki44Oq44KqLOODnuOCs+ODiA0KK+OCouOCteOCpCzjgqLjgq3jg6kNCivjgqLjgrXjgqvjg68s44Oo44K344OS44OIDQor44Kv44Ot44KtLOODpuOCreODjuODqg0KK+OCouOCuuODnizjgrfjg7PjgrgNCivjg5Djg7Pjg44s44Oe44K144Kt44OoDQor44OZ44OE44Ok44KvLOOCseODs+OCtA0KK+ODk+ODiOOCpizjgrjjg7MNCivjg4Hjg5As44OS44Ot44K3DQor44OB44Ol44KmLOOCq+ODhOOCrQ0KK+OCqOODgCzjgrHjg7PjgqTjg4Hjg60NCivjgqjjg7Pjg4ks44OK44Kq44OfDQor44Ko44K144KtLOOCt+ODs+OCpOODgQ0KK+ODleOCuOOCpCzjg5Ljg63jgrcNCivjg5XjgrjjgqQs44OV44Of44KqDQor44OV44K444Oi44OILOOCouOCreODqQ0KK+ODleOCuOOCvyzjgq3jg6jjg4rjgqoNCivjg5Xjgrjjgr8s44Ki44Kt44OS44OtDQor44OV44K444Ov44OpLOOCteODiOOCtw0KK+ODleOCq+OCtuODryzjg4jjg6Ljg5Ljg4gNCivjg5Xjgq/jg4As44K544K544OgDQor44OV44Kv44OP44OpLOODpOOCueODkuOCsw0KK+ODleOCr+OCt+ODnizjgqvjgrrjg6jjgrcNCivjg5Xjgq/jg4njg6Es44Kr44K644OS44K1DQor44OV44Kv44Ok44OeLOOCteODiOOCtw0KK+ODleODiuODkOOCtyzjg57jgrXjg6bjgq0NCivjg5Xjg6vjg4Djg4Ys44Ki44Kt44OS44KzDQor44OV44Or44K144OvLOOCt+ODs+OCuA0KK+ODleODq+OCvyzjg6rjgq3jg6QNCivjg5Xjg6vjg6Qs44K344Oz44Kk44OBDQor44OV44K344KtLOODpuOCpuOCpOODgQ0KK+ODj+ODnuODgCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg4/jg4rjg4As44Kr44OE44OO44OqDQor44OP44OK44OfLOODkuODh+OCqg0KK+ODj+ODqeODgCzjgqLjgq3jg6kNCivjg4/jg6vjgqvjg68s44Kk44K644OfDQor44OP44K744Ks44OvLOODqOOCpuOCpOODgQ0KK+OCquOCquODhCzjg6Djg43jg5Ljg60NCivjg4/jgrfjg6Ljg4gs44Ki44OE44K3DQor44OP44K344Oi44OILOOCqOODn+OCsw0KK+ODj+OCueODouODiCzjgqLjg4TjgrcNCivjg4/jg4Pjg4jjg6os44OE44Oo44K3DQor44OP44Ok44K144KrLOOCv+OCq+OCqg0KK+ODkuODgOOCqyzjgrHjgrXjgqoNCivjg5LjgrDjg4Es44Kx44Kk44KzDQor44OS44Kw44OBLOODleOCteODpuOCrQ0KK+ODkuOCuOOCr+ODrSzjg4rjgqrjg6bjgq0NCivjg5Ljg6njgqvjg68s44K444Ol44Oz44Kk44OBDQor44OS44Op44OOLOODkuODreODqA0KK+ODkuODqeOCvyzjg57jgrXjg5Ljg60NCivjg5Ljg63jgrss44K144OB44KzDQor44OS44K144OALOOCv+OCq+OCtw0KK+ODm+ODqizjg47jg6rjg6TjgrkNCivjg5vjgqbjg6Qs44Kr44K644OS44KzDQor44Ob44Oz44OALOOCt+OCsuODpuOCrQ0KK+ODm+ODs+ODnizjgr/jg4Tjg6QNCivjgr/jg4rjgqss44OE44Oo44K3DQor44Ob44K344K444OeLOOCv+ODhOOCqg0KK+ODm+OCt+OCqyzjgr/jgrHjgrcNCivjg5vjgr3jg4As44OB44Ko44OfDQor44Kk44OB44Kr44OvLOODpOOCueODkuODrQ0KK+OCpOODgeODoOODqSzjgrHjgqTjgrQNCivjgqTjgqzjg44s44Of44OJ44OqDQor44Kk44Kk44OALOODnuOCteODpuOCrQ0KK+OCpOOCpOOCquOCqyzjg5Ljg63jgrcNCivjg4rjgqzjg44s44K144OI44OrDQor44Kk44Kx44K244OvLOODjuODluODpOOCuQ0KK+OCpOODouODiCzjgrnjg5/jg6wNCivjgqTjg4rjgrrjg58s44Ok44K544OP44OrDQor44Kv44K344Of44OkLOOCt+ODs+OCpOODgQ0KK+OCpOODjuOCpuOCqCzjgrfjg7Pjg6QNCivjgqTjg47jgqbjgqgs44Ki44Kt44OpDQor44Kk44OO44Km44KoLOODiOODouODpuOCrQ0KK+OCpOODjOODhOOCqyzjg4rjgqrjgq0NCivjgqTjgrXjgrgs44OS44OH44OIDQor44Kk44K344OALOOCt+ODpeOCpuOCpOODgQ0KK+OCpOOCt+ODgCzjgqTjgrXjgqoNCivjgqTjgrfjg4As44Kv44OL44Ki44KtDQor44Kk44K344Ks44KtLOOCqOODquOCsw0KK+OCpOOCt+OCrOODnyzjgrjjg6Xjg7PjgqTjg4ENCivjgqvjgrjjgr/jg4ss44Kq44K144OgDQor44Kk44K344OP44OpLOODkuODreODpuOCrQ0KK+OCpOOCt+ODoOODqSzjg57jgrXjg5LjgrMNCivjgqTjgrfjg6Tjg54s44K344Ol44Km44Kk44OBDQor44Kk44K344K244KtLOODjuODluOCqg0KK+OCpOOCveODmSzjg6jjgrfjg5LjgrMNCivjgqTjgr3jgrbjgq0s44Oe44K144Ki44KtDQor44Kk44OI44KmLOODgeOCr+OCtQ0KK+OCpOODiOOCpizjg5LjgrXjg4gNCivjgqTjg6/jgqLjgrUs44Kx44Oz44K/44Ot44KmDQor44Kk44Ov44KkLOODiuOCquOCv+OCqw0KK+OCpOODr+ODnizjgrXjg4jjgrcNCivjgqTjg6/jg6Ljg4gs44Oo44Km44Kk44OBDQor44Kk44Ov44OK44KsLOODkuODreODjuODqg0KK+OCpOODr+OCt+OCvyzjgrfjgrMNCivjgqTjg6/jgr8s44Kr44K644Oe44K1DQor44Kk44Ov44K/LOOCqOOCpOOCuA0KK+OCq+ODieODr+OCrSzjgrXjg4jjgrcNCivjgqvjgrLjg6Tjg54s44Kx44Oz44Kk44OBDQor44Ov44K/44OK44OZLOOCpOOCuuODnw0KK+OCq+ODn+ODpCzjgq/jg4vjgqLjgq0NCivjgqvjg5/jg6Qs44Kx44Oz44Kk44OBDQor44Kr44Oz44OQ44Ok44K3LOOCreODs+OCuA0KK+OCq+ODjuOCpizjg5Ljg63jgrcNCivjgqvjg6rjg6Qs44OK44Oq44Ok44K5DQor44Kr44K144KtLOOCuOODpeODsw0KK+OCq+OCt+ODnizjg57jgrXjgqoNCivjgqvjgrnjg6Qs44Ki44Kt44OpDQor44Kr44OI44KmLOOCv+OCq+OCrQ0KK+OCq+ODiOOCpizjgqvjgrrjg5Ljg60NCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44OI44KmLOODn+ODhOOCsA0KK+OCq+ODiOOCpizjg5Ljg4fjg47jg6oNCivjgqvjg4jjgqYs44OS44Ot44Om44KtDQor44Kr44Ov44OQ44K/LOODgOOCpA0KK+OCq+ODr+ODkOOCvyzjgqLjg4TjgrcNCivjgqvjg6/jgrDjg4Es44OS44OH44Of44OBDQor44Kr44Ov44OP44OpLOODkuODreODnw0KK+OCq+ODr+ODj+ODqSzjgqvjgrrjg5Xjg58NCivjgqvjg6/jgrjjg6os44Of44OB44KqDQor44Kr44Ov44Kr44OfLOODhuODhOOCqg0KK+OCq+ODr+OCr+ODnCzjgqvjgrrjg4jjgrcNCivjgqvjg6/jg57jgr8s44K/44Kr44OO44OWDQor44Kr44Ov44Og44OpLOODkuODiOOCtw0KK+OCq+ODr+ODjizjg47jg6rjgqLjgq0NCivjgqvjg6/jgrXjgq0s44Oe44K144OS44OIDQor44Kr44Ov44K344OeLOODiOOCt+ODkuOCtQ0KK+OCq+ODr+OCuizjg57jgrXjg47jg6oNCivjgq3jg5Djgrcs44OS44OH44OS44KzDQor44Kt44Oe44OBLOODnuOCteOCrQ0KK+OCreODouODiCzjgr/jgrHjgrcNCivjgq3jg6Djg6ks44K/44Kv44OkDQor44Kt44Oz44OQ44OpLOODqOOCt+ODn+ODgQ0KK+OCreODjuOCt+OCvyzjg6TjgrnjgrcNCivjgq3jg47jgrfjgr8s44OS44Ot44KtDQor44Kt44Oq44K144OvLOOCpOODgeODreOCpg0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7PjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44OS44Ot44Ki44KtDQor44Kz44OQ44Ok44K3LOODnuOCteOCqg0KK+OCs+ODkOODpOOCtyzjg5Xjgrjjg5LjgrMNCivjgrPjg4Djg54s44Kz44Km44K4DQor44Kz44OA44OeLOOCquOCteODoA0KK+OCv+OCq+ODoOODqSzjg6Ljg4jjg5LjgrMNCivjgrPjg5Ljg4rjgr8s44Om44Km44K544KxDQor44Kz44Oz44OOLOODkuODreOCtw0KK+OCs+ODs+ODjizjgr/jgqvjg5Ljg60NCivjgrPjg6Tjg54s44Kz44Km44K4DQor44Kz44K644KtLOODiOOCt+OCqg0KK+ODiOOCpuODieOCpizjgrPjgqbjgrgNCivjgrPjgrjjg54s44K344Oz44K4DQor44Kz44Oz44OJLOOCouOCreODqQ0KK+OCs+ODs+ODiSzjgr/jgqvjgrcNCivjgrPjg7Pjg4ks44Oe44K144OI44K3DQor44Kz44Oz44OOLOOCq+OCquODqw0KK+OCs+OCv+OCrSzjg5Ljg4jjgrcNCivjgrPjg6TjgqTjgrcs44Of44KrDQor44Kz44Ok44OK44KuLOODjuODnOODqw0KK+OCr+ODnCzjgrHjg7Pjgr/jg63jgqYNCivjgq/jg4njgqYs44Kt44Of44OS44OIDQor44Kv44Oe44Ks44KkLOODiuOCquODpuOCrQ0KK+OCr+ODnuOCrSzjgrfjg7PjgrgNCivjgq/jg6njg4Es44K/44Kr44Om44KtDQor44Kv44Op44K/LOOCs+OCueOCsQ0KK+OCr+ODquOCvyzjg5/jgq0NCivjgq/jg6rjg6Tjg54s44K344Ol44Oz44K4DQor44Kv44Ot44OALOOCs+OCueOCsQ0KK+OCr+ODreOCq+OCrizjg57jgrXjg47jg5YNCivjgq/jg63jgrXjg68s44K344Oz44K4DQor44Kv44Ot44K144OvLOOCu+OCpOOCrQ0KK+OCr+ODr+ODjizjg5Ljg63jgr/jgqsNCivjg57jgqjjg5Djgrcs44OI44K344Ki44KtDQor44Oe44Ko44K244OvLOODjuODluODpuOCrQ0KK+ODnuODjizjg6jjgrfjgqoNCivjg57jg6vjg6/jgqss44OS44OH44OK44KqDQor44Km44OB44Ok44OeLOOCv+ODhOOCqg0KK+ODnuOCueODgCzjgrjjg6Xjg7MNCivjg57jg4TjgqQs44K344Ky44KtDQor44Oe44OE44KkLOOCteODiOOCtw0KK+ODnuODhOODouODiCzjgrfjg7PjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44OS44K144OIDQor44Oe44OE44OK44KsLOODnuOCteODiOOCtw0KK+ODnuODhOOCt+ODnizjg6Ljg6rjg5Ljg60NCivjg57jg4Tjgrfjgr8s44K/44OA44K3DQor44Oe44OE44K244KtLOOCv+OCseOCtw0KK+OCpOODiuOCpOOCtyzjg6jjgrfjgqoNCivjg5/jgqvjg58s44Kx44Kk44Kk44OBDQor44Of44OK44KuLOOCouOCreODn+ODhA0KK+ODn+ODhOODpOODnizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5/jgqbjg6ks44K344Ky44KtDQor44Of44Ok44KxLOOCouODhOOCtw0KK+ODn+ODpOODouODiCzjgqLjg4TjgrMNCivjg5/jg6Tjgr8s44Kz44Km44K4DQor44Of44Ok44Km44OBLOODnuOCteOCrQ0KK+ODn+ODpOOCpuODgSzjgqTjg4Hjg63jgqYNCivjg5/jg6Tjgrbjg68s44Ki44Kt44OpDQor44Of44Ok44K244OvLOOCv+OCq+OCtw0KK+ODn+ODqOODgCzjgr/jgqvjg5LjgrUNCivjg5/jgr7jg5bjg4Es44Kx44Oz44K4DQor44Of44K+44K/LOOCv+OCseOCqg0KK+ODgeODkCzjg5Ljg63jg5LjgrUNCivjg5/jgrrjg4/jgrcs44Oe44Kz44OIDQor44Of44K644Oe44OBLOOCu+OCpOOCuA0KK+ODn+OCuuOCv+ODiyzjgrXjg4jjgrcNCivjg5/jgrrjgr/jg4ss44OE44Oo44K3DQor44Of44K644K/44OLLOODkuODreODpuOCrQ0KK+ODouODgeOCuuOCrSzjg5/jg47jg6sNCivjg6Ljg6rjg6Ljg4gs44OK44OK44KzDQor44Oi44Oq44K/44OLLOOCv+OCq+OCtw0KK+ODouODquOCvyzjg4jjg6jjg5LjgrMNCivjg6Ljg6rjgr8s44K/44Kr44K3DQor44Oi44Oq44Ov44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+OCquOCr+OCpCzjgr/jgrHjg5LjgrMNCivjg6Ljg6os44K/44Kx44OfDQor44Oi44OqLOOCv+OCq+ODpuOCrQ0KK+ODoOOCs+ODpOODnizjg5Ljg63jg6bjgq0NCivjg6Djg6njg4Ys44K344Oz44Kk44OBDQor44Og44OI44KmLOOCq+ODhOOCrQ0KK+ODiuOCrOOCpCzjg5/jg4Tjg5Ljg60NCivjg4rjgqzjg44s44Of44OE44OI44K3DQor44OK44Ks44Kq44KrLOOCv+OCq+ODkuODrQ0KK+ODiuOCrOOCuyzjgqvjg4Tjg58NCivjg4rjgqzjgr8s44OS44Ot44Om44KtDQor44OK44Ks44K/LOODouODiOOCrQ0KK+ODiuOCrOODryzjgrfjg7PjgqTjg4ENCivjg4rjgqvjg57jg6ss44Oo44K344KtDQor44OK44Kr44Og44OpLOOCouOCreODqQ0KK+ODiuOCq+ODoOODqSzjg4jjg6LjgrMNCivjgqLjg5ks44Oo44Km44Kk44OB44Ot44KmDQor44OK44Kr44Og44OpLOODiOOCt+ODpA0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg6kNCivjg4rjgqvjgrfjg54s44OS44K144Oo44K3DQor44OK44Kr44K344KqLOODkuODreODpuOCrQ0KK+ODiuOCqyzjg47jg6rjgrMNCivjg4rjg5/jgq0s44OO44Oq44Kr44K6DQor44OK44Oz44OWLOODkuODreOCt+OCsg0KK+ODpOODnuOCsOODgSzjgrfjg7PjgrgNCivjg4vjgqTjg58s44K344Ky44OV44OfDQor44OL44K344OALOODkuODreODqOOCtw0KK+ODi+OCt+ODgCzjgqjjgqTjgrgNCivjg4vjgrfjg4As44Oe44K144Ki44KtDQor44OL44K344OALOOCueOCueODoA0KK+ODi+OCt+OCr+ODnCzjgqLjgq3jg5Ljg60NCivjg4vjgrfjg6Djg6ks44K/44Kr44Ki44KtDQor44OL44K344Og44OpLOODhOODqOOCtw0KK+ODi+OCt+OCqizjg57jgrXjg4gNCivjg4vjgrfjgqos44K344Oz44K4DQor44OL44K344Ok44OeLOOCv+OCq+OCtw0KK+ODpOOCrOODryzjgrHjgqTjgrgNCivjg4vjg4Pjgr8s44OS44Ot44OfDQor44OO44OZ44Kq44KrLOOCouOCreODmw0KK+ODjuOCuOODqizjg6jjgrfjg47jg5YNCivjg47jg6Djg6ks44OG44OE44OkDQor44OO44OK44KrLOOCq+ODhOOCtw0KK+OCquODkOODiizjg5/jg47jg6sNCivjgqrjg4HjgqLjgqQs44OI44K344Om44KtDQor44Kq44OB44Of44K6LOOCv+OCq+OCtw0KK+OCquODgSzjg5/jg4Tjg47jg6oNCivjgqrjg4Djgqrjgqrjg4/jg6ks44K344Oz44K0DQor44Kq44OALOODkuODreOCq+OCug0KK+OCquOCrOOCvyzjg57jgrXjgq0NCivjgqrjgqzjg68s44Oe44K144OI44K3DQor44Kq44Ks44OvLOOCqOODhOOCsw0KK+OCquOCsOODqSzjg4rjgqrjg6bjgq0NCivjgqrjgqrjg5Ljg6ks44OO44OW44Om44KtDQor44Kq44Kq44OS44OpLOOCpOODgeODreOCpg0KK+OCquOCquOCpOOCtyzjgqLjgq3jg6kNCivjgqrjgqrjgqTjgrcs44Oe44Kz44OIDQor44Kq44KtLOOCq+ODpg0KK+OCquOCquOCr+ODnCzjgqvjgrrjgrMNCivjgqrjgqrjg44s44Kx44Kk44KzDQor44Kq44Kq44OM44OeLOOCt+OCsuODjuODlg0KK+OCquOCquODjOODnizjg4rjg6vjgrcNCivjgqrjgqrjgr/jgq0s44Oe44K144OS44OHDQor44Kq44Kq44K/LOODiOOCquODqw0KK+OCquOCquOCvyzjg6jjgrfjg4rjgqwNCivjgqrjgqrjgr8s44Kz44Km44Kk44OBDQor44Kq44OILOODnuOCteOCuuODnw0KK+OCquOCquODhOODnCzjg5Ljg63jg5Xjg58NCivjgqrjgqrjg6Tjgq4s44Oe44K144OS44OtDQor44Kq44Kq44Ok44OeLOOCouODhOOCtw0KK+OCquOCpOOCqCzjgqvjgrrjg6QNCivjgqrjgrjjg54s44Ki44Kt44OpDQor44Kq44Kr44OZLOOCpOODgeODreOCpg0KK+OCquOCq+ODgCzjg4jjgqrjg6sNCivjgqrjgqvjg6Ljg4gs44Oe44K144KtDQor44Kq44Kr44ONLOOCv+OCq+OCtw0KK+OCquOCq+ODjizjg5Ljg4fjgqoNCivjgqrjgqvjg44s44Oe44K144KzDQor44Kq44Kr44K244KtLOODj+ODq+ODkuOCsw0KK+ODr+OCv+ODiuODmSzjg57jgrXjg4jjgrcNCivjgqrjgq/jg4As44Ki44OE44OS44OtDQor44Kq44Kv44OOLOOCq+ODhOOCtw0KK+OCquODiuODpCzjgqvjgrrjgrMNCivjgqrjg44s44Kt44Oo44K3DQor44Kq44OOLOOCt+ODs+ODpA0KK+OCquOCquODjizjg6bjgr/jgqsNCivjgqrjgrXjg4rjgqQs44Kt44Oo44Ki44KtDQor44Kq44K244KtLOODkuODh+OCqg0KK+OCteOCpOODiOOCpizjg6jjgrfjg58NCivjgrXjgqTjg4jjgqYs44K444Ol44OzDQor44K144K4LOODpOOCueODkuODhw0KK+OCteOCuCzjgqvjgrrjgqoNCivjgrXjgqvjgqQs44Kr44K644OS44KzDQor44K144Kr44KkLOODiOODouOCueOCsQ0KK+OCteOCq+OCr+ODqSzjgr/jgqvjg5Ljg60NCivjgrXjgqvjgqbjgqgs44Ok44K544Om44KtDQor44K144K144OZLOODnuOCs+ODiA0KK+OCteOCteOCrSzjg5Ljg4fjgqvjgroNCivjg4rjg5/jgq0s44OS44Ot44K3DQor44K144K/44KxLOOCq+ODhOODkuODrQ0KK+OCteOCv+OCsSzjg6/jgq0NCivjgrXjg4jjgqYs44K344Ol44Km44Kk44OBDQor44K144OI44KmLOOCv+OCseOCtw0KK+OCteODiOOCpizjg4rjgqrjgq0NCivjgrXjg4jjgqYs44Om44Km44K+44KmDQor44K144OI44KmLOOCt+OCsuOCrQ0KK+OCteODiOOCpizjg5Ljg63jgrcNCivjgrXjg6/jg4As44OP44K444OhDQor44K744Kt44Kw44OBLOODkuODreOCouOCrQ0KK+OCu+OCreODouODiCzjg4jjgrfjg6bjgq0NCivjgrvjgq3jg40s44Kt44Kk44OBDQor44K744Kt44Kq44KrLOODnuODouODqw0KK+OCu+OCreODpCzjg5Ljg63jgqLjgq0NCivjgrvjgq0s44K444Ol44Oz44Kk44OB44OtDQor44K744Oz44K/LOODjuODquOCouOCrQ0KK+OCt+ODkOOCvyzjgrXjg4jjgrcNCivjgrfjgqTjg4os44OV44Of44OP44OrDQor44K344Kk44OkLOODkuODh+OCrQ0KK+OCt+ODnuODkOODpOOCtyzjg57jg6Ljg6sNCivjgrfjg57jg4As44K344Oz44Kk44OB44Ot44KmDQor44K344Oe44OALOODn+ODgeODiOOCtw0KK+OCt+ODnuODoOODqSzjgqLjgq3jg5Ljg4gNCivjgrfjg5/jgros44OS44OH44OI44K3DQor44K344Of44K6LOOCpOOCv+ODqw0KK+OCt+ODouODoOODqSzjgqvjg4TjgqLjgq0NCivjgrfjg47jg4As44Kz44Km44K4DQor44K344OO44OP44OpLOODouODiOODpuOCrQ0KK+OCt+OCquOCtuODryzjg47jg5bjg6bjgq0NCivjgrfjg6njgqTjgrcs44Om44Km44K4DQor44K344Op44K144KtLOODqOOCpuOCsw0KK+OCt+ODqeODiOODqizjg5Ljg4fjgrgNCivjgrfjgrXjgqQs44Oe44K144OS44OtDQor44K344On44Km44OALOOCseOCpOOCueOCsQ0KK+OCveOCpizjg4rjgqrjgq0NCivjgr3jg47jg5ks44OI44Kq44OrDQor44K544OJ44KmLOOCt+ODpeODs+OCpOODgQ0KK+OCueODieOCpizjgrXjg4jjgrMNCivjgrnjgq7jgqbjg6ks44OK44Kq44KtDQor44K544Ku44Ok44OeLOODquODp+OCpuOCpOODgQ0KK+OCueOCruODpOODnizjg4jjg6LjgrgNCivjgrnjg5/jg4As44OS44Ot44KtDQor44K544Of44Kr44OvLOODkuODiOOCtw0KK+OCueOCuuOCrSzjg5/jg43jgqvjgroNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K544K644KtLOOCouODhOOCtw0KK+OCueOCuuOCrSzjg4jjgrfjg4rjg6oNCivjgrnjgrrjgq0s44Oo44K344Om44KtDQor44K544K644KtLOODpOOCueOCvg0KK+OCueOCuuOCrSzjg4/jgrjjg6ENCivjgrnjgrrjgq0s44Kr44K644Ki44KtDQor44Ob44K944Kr44OvLOODpuODqg0KK+OCv+ODluOCtyzjgqTjgq/jgr8NCivjgr/jg4Hjgrbjg68s44OO44Oq44OV44OfDQor44K/44OALOOCv+OCq+OCouOCrQ0KK+OCv+ODgCzjg5Ljg63jg4jjgrcNCivjgr/jgqvjgr8s44Om44Km44K544KxDQor44K/44Kr44Ks44KtLOODkuODh+OCq+OCug0KK+ODpOODnuOCtuOCrSzjg4rjgqrjgq0NCivjgr/jgqvjg4/jgrcs44Oo44K344OE44KwDQor44K/44Kr44OP44K3LOODkuODreOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg6TjgrkNCivjgr/jgqvjg44s44K/44Kr44OS44OtDQor44K/44Kr44K144KtLOOCv+OCq+OCtw0KK+OCv+OCq+OCuSzjgqvjgrrjg6gNCivjgr/jgqvjg4jjg6os44Kz44Km44K4DQor44K/44Kr44Ok44OeLOODnuOCteODnw0KK+OCv+OCq+ODpOODnizjgrfjgrLjg6sNCivjgr/jgqvjg6Tjg54s44Om44Km44K4DQor44K/44Kr44OkLOODqOOCt+OCq+OCug0KK+OCv+OCseODgCzjgr/jgqjjgrMNCivjgr/jgrHjg4As44OS44Ot44Om44KtDQor44Oe44OE44Kq44KrLOODqOOCt+ODkuODrQ0KK+OCv+OCseOCpCzjg47jg5bjg5LjgrMNCivjgr/jgrHjgqbjg4Es44OI44Oi44Kq44KtDQor44K/44Kx44Km44OBLOODjuODquODiOOCtw0KK+OCv+OCsSzjgrHjgqTjgrMNCivjgr/jgq3jg5/jg6Qs44OI44Oi44OS44OtDQor44K/44Oe44K/44OLLOOCq+OCuuOCouOCrQ0KK+OCv+ODoOODqSzjg6jjgrfjg5Ljg60NCivjgr/jg6Djg6ks44Kx44Oz44K4DQor44K/44OK44KrLOOCq+OCuuODkuOCtQ0KK+OCv+ODiuOCqyzjg4jjg6Ljg6TjgrkNCivjgr/jg4rjgqss44Ki44Ok44KzDQor44K/44OK44KrLOODjuODquODkuODrQ0KK+OCv+ODi+ODouODiCzjgrfjg7PjgqTjg4ENCivjgr/jg4vjg6Tjg54s44Ki44Kt44OS44KzDQor44K/44Oz44OOLOOCquOCteODoA0KK+OCv+ODjizjg5LjgrXjgqoNCivjg4bjg6njgrbjg68s44Ki44Kt44OpDQor44OI44Kv44K344KyLOOCteODiOODqw0KK+OCtOODiOOCpizjg4rjgqrjgq0NCivjg4jjg5/jg4rjgqws44OS44Ot44OS44K1DQor44OI44Oz44K344On44KmLOODkuODh+ODpuOCrQ0KK+ODhOODnOOCpCzjgrfjg6fjgqbjgqTjg4ENCivjg4Tjg5zjgr8s44K344On44Km44K4DQor44OE44K444Og44OpLOODiuOCquOCrQ0KK+ODnuODhOODoOODqSzjgqLjgq3jg6kNCivjg4Tjgqvjg4As44OS44OH44KtDQor44OE44ON44Oo44K3LOOCteODiOODnw0KK+ODhOODq+OCquOCqyzjg57jgrXjg6QNCivjg4Tjg6ss44Oo44K344KqDQor44Km44OB44OALOODkuODh+ODpuOCrQ0KK+OCpuOCqOODgCzjgr/jg6Ljg4QNCivjgqbjg6HjgrXjgq0s44Kt44Oo44K3DQor44Km44Op44Kr44OvLOODpuOCpuOCuA0KK+OCpuODqeOCq+ODryzjgqvjgrrjgrcNCivjg6/jg4As44K444Ol44OzDQor44Ov44Kr44OQ44Ok44K3LOOCseODs+OCuA0KK+ODr+OCq+ODnuODhCzjg6jjgrfjgqvjgroNCivjg6/jgr/jg4rjg5ks44Ki44OE44KzDQor44Ov44K/44OK44OZLOOCv+OCq+OCtw0KK+ODr+OCv+ODqizjgrPjgqbjgrgNCivjg6Tjg5ks44Kz44Km44Kk44OBDQor44Ok44OP44KuLOOCt+ODs+OCuA0KK+ODpOODnuODgCzjgqvjgrrjg5Ljg60NCivjg6Tjg57jg4As44Kr44K644OS44OtDQor44Ok44Oe44Kz44K3LOODnuOCteODpuOCrQ0KK+ODpOODnuODouODiCzjgr3jgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Ki44OE44K3DQor44Ok44Oe44Oi44OILOODqOOCpuOCpOODgQ0KK+ODpOODnuODouODiCzjgrXjg4ENCivjg6Tjg57jg6Ljg4gs44Oe44K144OfDQor44Ok44Oe44Km44OBLOODiOOCquODqw0KK+ODpOODnuODjizjg5Ljg63jg5Xjg58NCivjg6Tjg57jgqrjgqss44OI44Oi44K/44KrDQor44Ok44Oe44K344K/LOODiOOCt+ODkuODhw0KK+ODpOODnuOCpuODgSzjgr/jgrHjgrcNCivjg6Tjg57jgrbjgq0s44OS44Ot44Oe44K1DQor44Ok44Oe44K244KtLOODpuOCq+ODqg0KK+ODpOODiuOCruOCt+ODnizjg57jgrnjg58NCivjg6Tjg57jg6Ljg4gs44Of44Kr44KzDQor44Ok44OOLOOCv+OCq+ODkuOCsw0KK+ODpOOCtuOCrSzjgr/jgrHjgrcNCivjg6jjgrQs44Ok44K544OP44OrDQor44Oo44Kz44KkLOOCq+ODhOODnuOCtQ0KK+ODqOOCs+ODn+OCvizjg4jjgrfjgq0NCivjg6jjgrPjgr8s44Om44Km44K4DQor44Oo44Kz44K/LOODkuOCteOCqg0KK+ODqOOCs+OCvyzjg6bjgqbjgrMNCivjg6jjgrfjg4As44K344Oz44Kk44OB44Ot44KmDQor44Oo44K344OALOODnuODgeOCsw0KK+ODqOOCt+ODleOCtSzjgqTjgq/jg5Xjg58NCivjg6jjgrfjg4/jg6ks44OI44Oi44Oe44K1DQor44Oo44K344Kk44KoLOODj+OCuOODoQ0KK+ODqOOCt+OCq+ODryzjg4HjgqgNCivjg6jjgrfjgqvjg68s44Of44OE44OS44OtDQor44Oo44K344KqLOODpuOCpuOCuA0KK+ODpuOCouOCtSzjg57jgrXjg6jjgrcNCivjg6bjgq0s44Ki44Kt44OpDQor44Ki44OA44OBLOODiOOCt+ODpuOCrQ0KK+OCquOCquODi+OCtyzjgqvjgrrjgqoNCivjgqrjgqrjgr8s44Of44Ov44KzDQor44Ki44K144OOLOODn+ODgeOCsw0KK+ODi+OCt+ODoOODqSzjg5/jg4Tjg6jjgrcNCivjg6Tjg57jg4As44OS44Ot44OO44OqDQor44K144KkLOOCr+ODi+OCqg0KK+ODn+ODpOODouODiCzjgqvjgrrjgqoNCivjgrnjgrrjgq0s44Kr44K644OS44KzDQor44OV44Kv44KkLOOCr+ODi+ODpA0KK+OCquOCr+ODgCzjg5LjgrXjgrMNCivjgrXjgqTjg4jjgqYs44K/44Kr44KqDQor44OV44Or44OkLOOCq+ODhOODnw0KK+ODouODiOODpOODnizjg4rjgqrjg5Ljg60NCivjg6jjgrfjgrbjgq0s44Om44Km44Kk44OBDQor44OK44Kr44Og44OpLOOCouODhOODreOCpg0KK+ODiOOCreODryzjgrfjg6XjgqbjgqTjg4ENCivjgqTjg4rjg4As44Oe44K144OE44OKDQor44OI44Kt44OvLOODjuODquODpuOCrQ0KK+ODqOOCt+ODgCzjgr/jgqvjg6bjgq0NCivjgr/jgqvjg44s44Kx44Kk44KzDQor44Km44Ko44OALOODiOODouOCsw0KK+ODhOODgeODpCzjg6bjgqbjgrMNCivjgrfjg6Ljgqvjg68s44OV44Of44OS44KzDQor44Oe44OE44KkLOOCq+ODhOODnw0KK+OCueOCrOODpCzjg6jjgrfjgqoNCivjg5/jg47jgrDjg4Es44Ok44K544KzDQor44Km44Ko44OALOODkuOCq+ODqw0KK+OCpOODjizjg4jjg6LjgrgNCivjg57jgqjjg4As44Oe44Kz44OIDQor44OE44Oc44K/LOODjuODquOCqg0KK+ODqOOCt+ODnyzjgqTjgq/jgqoNCivjgqTjg4Hjgqvjg68s44K344Ky44OS44OtDQor44Ob44OqLOODkuODh+ODpA0KK+ODj+ODpOOCtyzjg6bjgr/jgqsNCivjgrfjg5Djgr8s44Kk44Kv44KzDQor44Kz44OQ44Ok44K3LOODnuOCueODkuOCsw0KK+OCquOCquOCr+ODnCzjgr/jgrHjgrcNCivjgqTjg6/jgr8s44OO44OW44Om44KtDQor44OV44K444K/LOODnuOCteODkuODrQ0KK+OCreOCv+ODoOODqSzjgqvjgrrjgqoNCivjgq/jg63jgq0s44Kx44Kk44KzDQor44Ok44Oe44Oi44OILOOCv+OCq+OCtw0KK+ODpOODnuODkOOCvyzjg6bjgq3jgrMNCivjgrXjgqTjg4jjgqYs44K344Ol44Km44Kk44OBDQor44OV44K444Ov44OpLOOCv+ODgOOCtw0KK+OCpOODiOOCpizjgqvjgrrjg4gNCivjgqTjgqTjgrEs44OI44Kq44OrDQor44K144Og44Kr44OvLOOCouOCreODjuODqg0KK+OCouOCuuODnizjg57jgrXjgq0NCivjgqLjgqrjgq0s44Ki44OE44K3DQor44OV44K444K/LOODhOODjeOCqg0KK+ODn+ODqOOCtyzjg4jjgrfjgqvjgroNCivjgrvjgq3jg6Tjg54s44Oo44K344KqDQor44OG44Op44OALOODhuODq+ODkuOCtQ0KK+OCqOODs+ODiSzjgr/jgrHjgrcNCivjgqvjgq3jg6Ljg4gs44Kx44Oz44K444Ot44KmDQor44OV44Or44OkLOOCpOODr+OCqg0KK+ODnuOCreODoOODqSzjgr/jgrHjgqoNCivjgrPjg7Pjg44s44OS44Ot44K3DQor44K544Ku44K144KtLOODiOOCt+ODpuOCrQ0KK+ODqOOCt+ODgCzjgrfjgrLjgqoNCivjg4/jgq7jg6/jg6ks44OS44Ot44K3DQor44Ok44K244KtLOODpuOCpuOCuA0KK+ODi+ODjuODn+ODpCzjgqvjgrrjgqoNCivjgrPjgrXjgqss44OS44Ot44Ok44K5DQor44K144OOLOOCt+ODs+OCtA0KK+OCteOCpOODiOOCpizjg4DjgqTjgrnjgrENCivjgrfjg6Ljgrss44K/44Kr44Oo44K3DQor44K/44Kr44OP44K3LOOCq+OCuuODkuODiA0KK+OCv+ODhOOCquOCqyzjg57jgrXjgq0NCivjgr/jg5Djgr8s44Oo44K344K/44KrDQor44OK44Kq44KkLOODnuOCteOCsw0KK+ODiuOCrOOCvyzjg57jgrXjgqoNCivjg4vjgrfjgqrjgqss44K344Ky44OrDQor44Oe44OE44Kr44OvLOOCouODhOOCtw0KK+ODn+OCuuODjizjg6bjgqbjgrMNCivjg4jjgq/jg4rjgqws44Kx44Kk44KzDQor44Og44Op44Kr44OfLOODkuODreOCrQ0KK+ODpOOCueOCq+ODryzjg4jjgrfjg47jg6oNCivjg6Tjg57jgrDjg4Es44Om44Kt44KqDQor44Oo44Kz44Km44KoLOOCv+ODgOOCtw0KK+OCouOCuuODnizjg47jg5zjg6sNCivjgqTjg4rjg4As44Of44OE44Om44KtDQor44Kk44K344KkLOODjuODnOODqw0KK+OCpOODnuODi+OCtyzjgr/jgrHjgqoNCivjgqrjgqvjg44s44Kr44ON44Of44OEDQor44Kt44K3LOODiOOCt+OCsw0KK+OCr+ODnOOCvyzjg57jgrXjg47jg6oNCivjgrPjg5/jg4rjg58s44Oe44Om44OfDQor44Ki44Kk44Ok44OeLOOCt+ODp+OCpuOCuOODreOCpg0KK+OCteODjizjg4Hjgqvjg6kNCivjgr/jgq3jgqzjg68s44K344Ky44Oo44K3DQor44Kz44Oz44OOLOODkuODreODpOOCuQ0KK+OCu+ODs+ODgOOCpCzjgr/jgqvjgrcNCivjg4vjg6/jg44s44OS44OH44K544KxDQor44K3LOODiuOCquODqOOCtw0KK+OCq+ODiOOCpizjgqvjgrrjg4rjg6oNCivjgqLjgqvjgrXjgqss44Kv44OL44KqDQor44Kq44Oz44K644KrLOODkuODreOCtw0KK+OCs+OCrCzjgrPjgqbjgqTjg4ENCivjg4/jg6Tjgqvjg68s44OI44Oi44OfDQor44OP44K744Ks44OvLOODnuOCteODqOOCtw0KK+ODleODq+OCq+ODryzjgr/jgrHjgrcNCivjg5Xjgrjjgqvjg4ks44Om44Km44K4DQor44OI44OO44Kr44OvLOOCv+OCseOCtw0KK+ODnuODhOOCqizjg6jjgrfjgqoNCivjgq3jg5/jgrrjgqss44Oe44K144OO44OqDQor44Kq44OBLOODnuOCs+ODiA0KK+OCpOODgeOCs+ODj+ODqSzjg57jgrXjg6TjgrkNCivjgqTjgrHjg4As44Ki44Kt44KzDQor44Ki44Op44K/44KxLOOCpOOCr+OCqg0KK+OCpOOCseODgCzjg4jjgq3jgqoNCivjgqTjg4jjgqYs44Oo44Km44Kk44OBDQor44Kk44Kx44OALOOCqOODhA0KK+OCpOOCpOODgCzjg57jgrXjg4gNCivjgqrjgqrjgq/jg54s44Kr44K644KoDQor44Kv44K144OQLOODnuOCteOCrQ0KK+OCs+ODkOODpOOCtyzjgrXjg6jjgrMNCivjgrTjg4jjgqYs44Kr44K644OkDQor44K544K644KtLOODouODiOODjuODqg0KK+OCu+OCreODjSzjg5Ljg63jgrcNCivjgr/jgqvjg4As44OI44K344Om44KtDQor44Kz44Oz44OJLOODqOOCpuOCueOCsQ0KK+OCv+OCseODpOODnizjgrHjgqTjgrfjg63jgqYNCivjgr/jgqvjgqTjg4Es44Kq44K144OgDQor44K944OALOOCseODs+OCuA0KK+OCv+ODjizjg57jgrPjg4gNCivjgrfjg47jgrbjgq0s44K144OI44K3DQor44OP44Op44OALOOCouODpA0KK+OCr+ODieOCpizjgqvjg4TjgrMNCivjg4Tjg47jg4As44OK44Kq44KzDQor44OV44Or44Kr44OvLOODiOOCt+OCouOCrQ0KK+ODouODquOCvyzjg57jgrXjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44OI44Kq44OrDQor44Ok44Oe44K344K/LOODqOOCt+ODj+ODqw0KK+ODpuOCq+ODryzjg6jjgrfjgqoNCivjg6jjgrfjg4As44Ko44Kk44KzDQor44OP44Ok44K3LOODiOOCt+OCv+OCqw0KK+OCv+ODs+ODjizjgqjjgqTjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Oe44Kz44OIDQor44OK44Oq44Ki44KkLOODqOOCt+ODjuODqg0KK+OCv+OCq+ODoOODqSzjgqLjgq3jgqoNCivjgr/jg7Pjg44s44OG44OE44KqDQor44Kz44OQ44Ok44K3LOOCs+OCpuOCpOODgQ0KK+OCtOODiOOCpizjg4jjgqrjg6sNCivjgrTjgqbjg4As44Kt44On44Km44KzDQor44OK44Kr44K344OeLOODn+ODhOOCqg0KK+ODm+OCt+ODjizjg5Xjg5/jgr/jg4ANCivjg6/jgrMs44OK44Kq44KtDQor44K544K644KtLOOCt+OCsuOCqg0KK+ODqOOCt+ODnuODhCzjg57jgrXjgq/jg4sNCivjg4rjg5/jgqrjgqss44K344Oz44K4DQor44Ok44Oe44Kw44OBLOODkuODreOCq+OCug0KK+OCpOOCt+ODkOOCtyzjg57jgrPjg4gNCivjgqTjgrfjg4As44K744Oz44OkDQor44Km44OB44Ok44OeLOOCu+OCpOOCuA0KK+OCqOODs+ODiSzjgrfjgrLjg6sNCivjg4rjgqvjg44s44Oe44K144OV44OfDQor44Kk44Oe44KkLOOCq+OCuuOCqg0KK+OCquOCteODiuOCpCzjgqLjg4TjgrcNCivjgrXjgqvjg6Ljg4gs44Kt44Oo44K3DQor44K344Kq44OfLOODgeOCq+OCtw0KK+OCt+ODnuOCtuOCrSzjg4rjgqrjgq0NCivjg4bjg6vjg6Qs44OI44K344OkDQor44OK44Kr44K/44OLLOODiuOCquOCrQ0KK+ODj+OCruODr+ODqSzjgq3jg6jjgqvjgroNCivjg5Ljgqzjgrcs44K344On44Km44KzDQor44Ob44Oq44Km44OBLOODqOOCt+OCqg0KK+ODn+OCvuODreOCrizjg4rjgqrjgq0NCivjg6Ljg6os44K/44Oi44OEDQor44Kk44OO44Km44KoLOOCv+OCseODkuOCsw0KK+OCt+ODgCzjg5/jg4Hjg6gNCivjg6Tjg57jg6Ljg4gs44Of44OB44KzDQor44Ok44Oe44Oi44OILOODkuODh+OCouOCrQ0KK+OCquOCquOCv+OCrSzjgqvjgrrjg6QNCivjg5Xjgrgs44K144OK44KoDQor44Ki44Kt44Oi44OILOODnuODouODqw0KK+OCpOOCpOOCuOODnizjgqLjgq3jgrMNCivjgqrjgrDjg54s44Om44Of44KzDQor44K144OI44KmLOOCv+OCq+OCqg0KK+ODhOODgeODpCzjg6jjgrfjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Kr44K644Oo44K3DQor44OP44OpLOOCu+OCpOOCpOODgeODreOCpg0KK+ODleOCuOODnuOCrSzjgrfjg7Pjg6QNCivjg6Djg63jgr8s44Of44OE44Oe44K1DQor44Oi44OqLOODiOOCquODqw0KK+ODn+OCvuOCsOODgSzjg4jjgrfjg6bjgq0NCivjgqTjgrHjg4/jgr8s44OS44Ot44Om44KtDQor44Kq44Ks44OvLOODkuODreOCv+OCqw0KK+OCpuOCqOODjizjg57jgrXjg4jjgrcNCivjgr/jg4rjgqss44Kr44K644OS44OtDQor44Kz44OQ44Ok44K3LOODnuOCteOCq+OCug0KK+OCr+ODreOCuSzjg6TjgrnjgrgNCivjgq3jgr/jgqzjg68s44OS44Ot44K3DQor44K344OO44OfLOODnuOCteODpuOCrQ0KK+ODj+OCuyzjg6bjgqbjgr7jgqYNCivjg4bjg6vjg4zjg54s44Oo44Km44KzDQor44Kt44Kv44OBLOOCteODiOOCtw0KK+ODj+OCt+ODouODiCzjg47jg6rjg6bjgq0NCivjgqrjgqrjgqvjg68s44K344Oz44OIDQor44Kq44Kq44OL44K3LOOCveOCpuOCpOODgQ0KK+OCouODmSzjg57jgrXjg5Ljg4gNCivjgqLjg4Djg4Es44OS44OH44KtDQor44Ki44OA44OBLOODnuOCteODiA0KK+OCouODgOODgSzjg4jjgrfjg6bjgq0NCivjgqLjgrQs44Kr44Kq44OqDQor44Ki44Kk44OP44OpLOOCouOCreODkuOCsw0KK+OCouOCpOODj+ODqSzjg5Ljg4fjgqoNCivjgqLjgqTjgrbjg68s44K444Ol44Oz44Kk44OBDQor44Ki44Kr44Oe44OELOOCv+ODhOOCqg0KK+OCouOCq+ODnizjg4jjg6Ljg58NCivjgqLjgqvjgrss44Oe44K144Om44KtDQor44Ki44Kr44Ok44OeLOOCt+ODs+OCsuODsw0KK+ODleOCr+OCt+ODnizjg4jjg6Ljg44NCivjgqLjgq3jg5As44OE44OI44OgDQor44Ki44Kt44OOLOODj+ODq+OCrQ0KK+OCouOCreOCt+OCqyzjg6bjgqbjgrgNCivjg4rjg6Hjgq0s44OK44Kq44OfDQor44Ki44Kt44K644KtLOOCt+ODs+OCpOODgQ0KK+OCouODnuODgCzjg6bjgq3jgqoNCivjgqLjg57jg44s44OI44Kq44OrDQor44Ki44Of44OOLOODjuODluODj+ODqw0KK+OCouODs+ODmSzjg6TjgrnjgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44OI44K3DQor44Ki44Oz44K244KkLOOCv+OCq+ODqOOCtw0KK+OCouODs+OCtuOCpCzjg5Ljg63jgrcNCivjgqLjgqrjgq0s44K144OI44K3DQor44Ki44Kq44Ok44KuLOOCv+OCq+OCqg0KK+OCouOCquODpOOCrizjg5Ljg63jg6bjgq0NCivjgqLjgqrjg6Tjgq4s44OS44K144K3DQor44Ki44Op44Kr44OvLOOCv+OCpOOCueOCsQ0KK+OCouODqeOCq+ODryzjg57jgrXjg6bjgq0NCivjgqLjg6njgq0s44OI44K344Om44KtDQor44Ki44Op44Ok44K5LOODkuODiOOCtw0KK+OCouODqSzjgqLjgq3jgqoNCivjgqLjg6rjgr8s44Kt44On44Km44KzDQor44Ki44K144OALOOCr+ODi+OCqg0KK+OCouOCteODgCzjg5Ljg63jgqLjgq0NCivjgqLjgrXjgqvjg68s44OO44Oq44KoDQor44Ki44K144Kv44OpLOODiOODouODpuOCrQ0KK+ODiuOCq+OCteODiCzjgqLjgq3jg6kNCivjgqLjgrXjg44s44Oo44K344OS44OtDQor44Ki44K144OqLOOCq+OCuuOCrQ0KK+OCouODhOODnyzjgqLjgq3jg6jjgrcNCivjgqLjg6/jgqss44Kr44OE44OfDQor44OQ44OQLOOCq+OCuuODkuODrQ0KK+ODkOODsyzjgrHjg7Pjgr7jgqYNCivjg5Djg7Ms44Ov44K/44OrDQor44OQ44OzLOOCs+OCpuOCv+ODreOCpg0KK+ODgeODp+OCpuOCtSzjg57jgrXjgrcNCivjg4DjgqTjg4ks44Kx44Kk44K344OzDQor44OA44Kk44Oi44OzLOODiuOCquODkuOCsw0KK+ODh+ODoOODqSzjg6jjgrfjg4gNCivjg4njgqQs44K/44Kr44K3DQor44Ko44OT44OM44OeLOOCouOCseODnw0KK+OCqOOCsOODgSzjgrjjg6Xjg7MNCivjgqjjg4/jg6ks44Kr44K644KqDQor44Ko44OK44OfLOODiuODhOOCsw0KK+OCqOODiOOCpizjg6jjgrfjg4rjg6sNCivjgqTjg6/jgrXjgq0s44Kr44K644KqDQor44Ko44K244KtLOODpuOCpuOCuA0KK+ODleOCuOOCqOODgCzjgrjjg6Xjg7MNCivjg5Xjgrjjgqgs44Kz44Km44Kk44OBDQor44OV44K444Ks44KtLOODqOOCt+ODgeOCqw0KK+ODleOCuOOCpCzjg4jjgrfjg6bjgq0NCivjg5XjgrjjgqQs44Ki44Kt44OpDQor44OV44K444KkLOOCuOODpeODs+OCpOODgQ0KK+ODleOCuOOCpCzjg5/jg6bjgq0NCivjg5XjgrjjgqQs44K344Ky44OO44OqDQor44OV44K444Kr44OvLOOCt+ODs+OCpOODgQ0KK+ODleOCuOODouODqizjg4jjg6Ljg44NCivjg5Xjgrjjg6Ljg4gs44K344On44Km44K0DQor44OV44K444Oi44OILOOCt+ODjg0KK+ODleOCuOODjizjgr/jgqvjgrcNCivjg5Xjgrjjgqrjgqss44Ok44K544K3DQor44Kq44Kw44OpLOOCouODpOOCsw0KK+ODleOCuOOCvyzjg57jgrXjg4gNCivjg5Xjgrjjgr8s44K144OI44OrDQor44OV44K444K/LOODpuOCreOCqg0KK+ODleOCuOOCvyzjgrfjg6fjgqbjgrgNCivjg5Xjgrjjg6/jg6ks44OS44Ot44K3DQor44OV44Kr44OALOOCouODhOOCtw0KK+ODleOCq+OCqizjg5/jg4Tjg5Ljg60NCivjg5Xjgqvjgqos44Of44K144KtDQor44OV44Kr44K7LA0KK+ODleOCr+ODgSzjg6jjgrfjg5Ljg60NCivjg5Xjgq/jg4As44Om44Km44KzDQor44OV44Kv44OALOODleODn+ODkuOCsw0KK+ODnuODhOOCq+ODryzjg5Ljg4fjgqoNCivjg5Xjgq/jg4As44Of44KrDQor44OV44Kv44OALOODpuOCreOCsw0KK+ODleOCr+ODgCzjgrHjg7PjgrgNCivjg5Xjgq/jg4/jg6ks44Om44Kt44KqDQor44OV44Kv44KkLOODkuODreOCtw0KK+ODleOCr+OCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg5Xjgq/jgqrjgqss44K344Oz44K0DQor44K344KsLOODiuOCquODiA0KK+ODleOCr+OCt+ODnizjgqLjg4TjgrcNCivjg5Xjgq/jgrfjg54s44OB44Kr44KzDQor44OV44Kv44K344OeLOODiuOCquOCrQ0KK+OCquOCquODjizjg4rjgqrjgq0NCivjg5Xjg4rjg4Qs44OI44K344Om44KtDQor44K044Km44OALOODqOODquOCsw0KK+OCtOOCpuODgCzjg5Ljg4fjgqLjgq0NCivjgrTjgqYs44Kr44Kk44Ot44KmDQor44Kz44Kw44OsLOOCreODs+ODpA0KK+OCtOODiOOCpizjgr/jgqvjgrcNCivjgrTjg4jjgqYs44Om44Kt44OoDQor44OP44KsLOODquODp+OCpuOCpOODgQ0KK+ODj+OCruODr+ODqSzjgq3jgq/jgqoNCivjg4/jg57jg4As44Ki44Kt44KqDQor44Oe44Ko44OALOOCseODs+OCpOODgQ0KK+ODj+ODnuODj+OCvyzjg47jg5zjg6sNCivjg4/jg57jg44s44OO44OW44OS44OtDQor44OP44OK44OW44K1LOODquODpeOCpuOCpOODgeODreOCpg0KK+ODj+ODiuOCvyzjg6jjgrfjgrgNCivjg4/jg4rjg5/jg4Qs44Oo44K344K/44KrDQor44OP44Oz44OALOOCueODn+ODiA0KK+ODj+ODqeODgCzjgqLjg6TjgrMNCivjg4/jg6njg4As44OV44Of44KqDQor44OP44Op44OALOOCuOODpeODs+OCpOODgQ0KK+ODj+ODqeODgCzjg57jgrXjg47jg6oNCivjg4/jg6ks44Oe44K144Om44KtDQor44OP44OpLOODn+ODpuOCrQ0KK+ODj+OCu+OCrOODryzjg57jgrPjg4gNCivjg4/jgrfjgrDjg4Es44Kk44K144KqDQor44OP44K344Oi44OILOODnuOCteODiOOCtw0KK+ODj+OCt+ODouODiCzjg47jg6rjgq0NCivjg4/jgr/jgrHjg6Tjg54s44K144OI44K3DQor44OP44K/44OK44KrLOOCreODqOOCtw0KK+ODj+ODhOOCt+ODnizjgrHjg7MNCivjg4/jg4Pjg4jjg6os44Oo44K344OS44K1DQor44OP44OD44OI44OqLOODhOODjeODkuOCtQ0KK+ODj+ODg+ODiOODqizjg57jgrXjgrMNCivjg4/jg4Pjg4jjg6os44OV44Of44KqDQor44OP44OD44OI44OqLOODpuOCreODkuOCsw0KK+ODj+ODg+ODiOODqizjg6jjgrfjg47jg6oNCivjg4/jg6Tjgqvjg68s44Ki44Kt44OpDQor44OP44Ok44K344OALOODnuOCteODpA0KK+OCq+ODs+ODgCzjgrHjg7PjgrgNCivjg4/jg6Tjgrcs44Kz44Km44K4DQor44OP44Ok44K3LOODhOODqOOCtw0KK+ODj+ODpOOCtyzjg5Ljg63jgrcNCivjg4/jg6Tjgrcs44Kr44OE44OfDQor44OI44OT44Kr44OvLOODn+ODpuOCrQ0KK+ODkuOCsuOCvyzjg6jjgqbjgqTjg4ENCivjg5LjgrDjg4Es44Of44OE44OS44OtDQor44OS44Kw44OBLOODpuOCpuOCsw0KK+ODkuOCuOOCq+ODryzjg6jjgrfjg47jg6oNCivjg5LjgqvjgqQs44Oe44OJ44KrDQor44OS44OK44K/LOOCuOODpeODsw0KK+ODkuODjizjgrfjg6fjgqbjgqTjg4ENCivjg5Ljg44s44K/44Kr44Om44KtDQor44OS44Op44KuLOODpOOCueOCtw0KK+ODqOODouODgCzjgqvjgrrjg4gNCivjg5Ljg6njg44s44Oe44K144OO44OWDQor44OS44Op44OOLOODkuODreODpuOCrQ0KK+ODkuODqeOCteODryzjgqvjgrrjg5Ljg60NCivjg5Ljg6njgr8s44Oe44K144OS44OtDQor44Ki44K144OOLOODkuODreOCtw0KK+ODkuODqeOCvyzjg5LjgrXjgqoNCivjg5Ljg6njg4Tjgqss44K/44Kx44K3DQor44OS44Ot44Kr44OvLOODleODn+OCouOCrQ0KK+ODkuODreODiuOCqyzjgqvjgrrjg5LjgrUNCivjg5Ljg63jgrss44OS44K144Om44KtDQor44K/44K344OtLOOCreODn+OCsw0KK+ODkuODreOCuyzjg57jgrPjg4gNCivjg5Ljgrfjg4zjg54s44OS44Ot44OO44OWDQor44Kk44Ov44Oi44OILOOCuOODpeODsw0KK+ODkuOCpuODqSzjg5Ljg4jjgrcNCivjgrnjgq7jg6Ljg4gs44K744Kk44Kk44OBDQor44Ob44Oz44OeLOODpOOCueODpuOCrQ0KK+ODm+ODs+ODnizjg4Tjg6jjgrcNCivjg5vjg7Pjg54s44K/44Kk44OpDQor44Ob44Oz44OeLOOCv+ODhOODreOCpg0KK+ODm+ODquOCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjg5vjg6rjgqos44Kr44OE44Oo44K3DQor44Ob44OqLOOCq+OCuuOCqg0KK+ODm+ODqizjgqLjg4TjgrcNCivjg5vjg6os44Kz44Km44Kk44OBDQor44Ob44K344OOLOOCt+ODs+OCuA0KK+ODm+OCt+ODjizjgqLjgq3jgrMNCivjg5vjgrfjg44s44OV44OI44K3DQor44Ob44K3LOODkuODreOCsw0KK+ODm+OCvSzjgqvjgrrjg58NCivjg5vjgr/jg4Ys44Om44KrDQor44Kk44OB44Kr44OvLOODpuODn+OCsw0KK+OCpOODgeOCq+ODryzjgrXjg4jjgrcNCivjgqTjg4Hjgq0s44K/44Kx44K3DQor44Kk44OB44OO44K7LOOCouODqg0KK+OCpOODgCzjg4rjgqrjgq0NCivjgqTjg4fjgqQs44Oe44K144Kr44K6DQor44Kk44Ks44Op44K3LOODpuOCpuOCuA0KK+OCpOOCsOODgSzjgrTjgqYNCivjgqTjgqTjg4As44Ko44Kk44K244OW44Ot44KmDQor44Kk44Kk44OALOODleOCuOOCqg0KK+OCpOOCpOOCuOODnizjg5Ljg63jg6bjgq0NCivjgqTjgqTjgrjjg54s44Kr44K644OO44OqDQor44Kk44Kk44Og44OpLOODqOOCt+ODjuODlg0KK+OCpOOCpOODjizjg5Ljg4fjgq0NCivjgqTjgqTjgrrjgqss44OS44Ot44K3DQor44Kk44Kk44K644KrLOOCq+ODhOODkuOCsw0KK+ODj+ODq+OCvyzjg4jjgrfjgrMNCivjgqTjgrHjg4As44OK44Kq44OS44OtDQor44K544K644KtLOODiOOCquODqw0KK+OCpOOCseODgCzjgq/jg4vjg5Ljg60NCivjgqTjgr3jg5ks44Kz44Km44K4DQor44Kk44Kx44Ok44OeLOOCueOCruOCqg0KK+OCpOOCr+OCvyzjg4jjgrfjgqLjgq0NCivjgqTjg57jgqTjgrrjg58s44OB44K644KzDQor44Oi44Oq44K344K/LOOCt+OCsuOCrQ0KK+OCpOODnuOCpCzjgr/jg4DjgrcNCivjgqTjg57jg6Djg6ks44Oe44OK44OWDQor44Kk44Oe44Og44OpLOODjuODquODpuOCrQ0KK+OCpOODiuODnyzjgrHjg7Pjg6QNCivjgqTjg47jgqbjgqgs44Ok44K544OS44OHDQor44Kk44OO44Km44KoLOODkuODreOCtw0KK+OCpOODjuOCpuOCqCzjg5Ljg63jgrcNCivjgqTjg47jgqbjgqgs44OS44Ot44K/44KrDQor44Kk44OO44Km44KoLOODn+ODhOOCsw0KK+OCpOODjOOCpCzjg6bjgq3jg4jjgrcNCivjgqTjgrfjg4As44Oe44OK44OWDQor44Kk44K344OALOODiOOCt+ODkuODrQ0KK+OCpOOCt+ODgCzjg6bjgr/jgqsNCivjgqTjgrfjgrDjg60s44Oe44OqDQor44Kk44K344Kw44OtLOODkuODreOCtw0KK+OCpOOCt+ODj+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgrfjgqQs44Kr44Kq44OrDQor44Kk44K344KkLOOCseOCpOOCpOODgQ0KK+OCpOOCt+OCpCzjgrPjgqbjgrgNCivjg6bjgq3jg57jgrUs44Oe44K144OI44K3DQor44Kk44K344Kr44OvLOOCv+OCq+OCtw0KK+OCpOOCt+OCq+ODryzjg6jjgqbjgrMNCivjgqTjgrfjgq/jg6ks44Om44K/44KrDQor44Kk44K344Oi44OqLOODkuODreOCouOCrQ0KK+OCpOOCt+ODouODiCzjg6rjgqgNCivjgqTjgrfjg6Ljg4gs44K144OB44KzDQor44Kk44K344Kq44KrLOODpuOCqw0KK+OCpOOCt+OCquOCqyzjg47jg5bjgqoNCivjgqTjgrfjg6/jgr8s44OK44Kq44OS44K1DQor44Kr44OzLOODqOOCpuOCpOODgeODreOCpg0KK+OCpOOCt+OCtuOCqyzjgqvjg6jjgrMNCivjgqTjgr3jgqzjgqQs44K/44Kr44OS44OtDQor44Kk44K/44OQ44K3LOOCt+ODs+OCpOODgQ0KK+OCpOOCv+ODkOOCtyzjgrfjgrLjgq0NCivjgrXjgq7jg6Qs44OS44OH44Ki44KtDQor44Kk44OI44KmLOODhuODhOODpA0KK+OCpOODiOOCpizjgqLjgrHjg58NCivjgqTjg4jjgqYs44OO44K+44OgDQor44Kk44OI44KmLOODiuOCquODqOOCtw0KK+OCpOODiOOCpizjgqvjgrrjgrfjgrINCivjgqTjg4jjgqYs44OK44Kq44Om44KtDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCteOCq+OCpCzjgrPjgqbjgqTjg4ENCivjgqTjg4jjgqYs44Kr44K644Om44KtDQor44Kk44Ov44KkLOOCq+OCquODqw0KK+OCt+ODnuODoOODqSzjg5XjgrXjg4HjgqsNCivjgqTjg6/jgqQs44Kt44On44Km44KzDQor44Kr44Ov44OK44KrLOOCq+OCuuODnw0KK+OCpOODr+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgqTjg6/jg6Ljg4gs44K144Ok44KrDQor44Kk44Ov44Oi44OILOODkuODh+OCouOCrQ0KK+OCv+OCseODgCzjgrXjg4HjgrMNCivjgqTjg6/jg6Djg6ks44OS44Ot44Om44KtDQor44Kk44Ov44OK44KsLOODkuODh+OCqg0KK+OCpOODr+OCqizjgrPjgqbjgqTjg4ENCivjgqTjg6/jgrXjgq0s44K/44OE44OS44KzDQor44Kk44Ov44K144KtLOODiOODqeODkuOCsw0KK+OCu+OCrOODryzjg57jgrXjgr/jgqsNCivjgqTjg6/jgrfjg60s44Oo44K344OS44K1DQor44Kk44K644OfLOODnuOCs+ODiA0KK+OCq+OCqOODquODpOODnizjg4rjgqrjgq0NCivjgqvjgqzjg58s44Kk44Kv44KqDQor44Kr44Ks44OfLOOCt+OCsuODqOOCtw0KK+OCq+OCuOOCv+ODiyzjgqvjgrrjg5LjgrMNCivjg6Tjg57jg6Ljg4gs44Ko44Kk44Kk44OBDQor44Kr44Kt44OM44OeLOODkuODreOCouOCrQ0KK+OCq+OCryzjg5Ljg63jg6bjgq0NCivjgqvjg57jg4As44Oe44Kz44OIDQor44Kk44OK44Ks44KtLOODnuOCteOCqA0KK+OCq+ODnuODouODiCzjgr/jgqjjgrMNCivjgqvjg57jgr/jg4ss44OK44Kq44OV44OfDQor44Kr44Oe44K/LOODiOODouOCsw0KK+ODpOODnuODgCzjgqjjgqTjgrgNCivjgqvjg6Hjg4As44Ki44Kt44KzDQor44Kr44Oh44OkLOODkuODh+OCrQ0KK+OCq+ODnyzjg57jgrPjg4gNCivjgqvjg5/jgqos44Oe44OK44OfDQor44Kr44Of44OkLOODnuOCteODjuODqg0KK+OCq+ODouODiCzjg6jjg6rjgrMNCivjgqvjg4rjg4As44Oe44K144K/44KrDQor44Kr44OK44KkLOOCreODp+OCpuOCsw0KK+OCq+ODiuOCpCzjg6rjgqjjgrMNCivjgqvjg4rjgrbjg68s44K144OA44Kk44OBDQor44Kr44Oz44OALOOCv+OCq+ODkuODrQ0KK+OCq+ODjeOCpOODgSzjgqLjgq3jgqoNCivjgqvjg43jgrMs44OS44Ot44OW44OfDQor44Kr44ON44KzLOODnuOCueOCqg0KK+OCq+ODjeOCsyzjgrfjg6XjgqbjgrgNCivjgqvjg43jgrMs44K/44Kx44OS44KzDQor44Kr44ON44KzLOODpOOCqA0KK+OCq+ODjeOCsyzjg5LjgrXjgrcNCivjgqvjg43jg57jg6ss44Ki44OE44K3DQor44Kr44Oq44OkLOODqOOCt+ODjuODlg0KK+OCq+ODq+ODmSzjgq3jg6fjgqbjgrgNCivjgqvjgrfjg54s44OS44Ot44Om44KtDQor44Kr44K344Ov44KuLOODqOOCt+ODpuOCrQ0KK+OCq+OCt+ODr+OCrizjg5Ljg63jgrcNCivjgqvjgrnjg6Qs44Kx44Kk44K0DQor44Kr44K544OkLOOCt+ODp+OCpuOCsw0KK+OCq+OCueODpCzjgr/jgqvjgrcNCivjgqvjgr/jg44s44Kx44Oz44Kk44OBDQor44K344Op44KtLOOCq+ODhOOCqg0KK+OCq+OCv+OCquOCqyzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqvjgr/jgqrjgqss44Ki44OE44K3DQor44Kr44K/44Ok44OeLA0KK+OCq+ODiOOCpizjgr/jg4bjgqoNCivjgqvjg4jjgqYs44OS44Ot44K3DQor44Kr44OI44KmLOODkuODreOCsw0KK+OCq+ODiOOCpizjg5Ljg63jg6QNCivjgqvjg4jjgqYs44K/44Kx44K3DQor44K044OI44KmLOODkuODreOCq+OCug0KK+OCq+ODhOODpCzjg5Ljg63jgrcNCivjgqvjg6/jg4As44Of44OB44KqDQor44Kr44Ov44OALOOCteODgeOCsw0KK+OCq+ODr+OCsOODgSzjgrXjg4jjgrcNCivjgqvjg6/jg4/jg6ks44K744Kk44Kk44OB44Ot44KmDQor44Kr44Ov44OP44OpLOODkuODreOCouOCrQ0KK+OCq+ODr+ODj+OCvyzjg5Ljg63jg6bjgq0NCivjgqvjg6/jgqQs44K444Ol44Oz44Kk44OBDQor44Kr44Ov44KkLOOCq+ODqOOCsw0KK+OCq+ODr+OCpCzjg5/jg5sNCivjgqvjg6/jgqvjg58s44K/44Kx44K3DQor44Kr44Ov44Kt44K/LOODiOODouOCouOCrQ0KK+OCq+ODr+OCreOCvyzjg6TjgrnjgrMNCivjgqvjg6/jg6Djg6ks44Om44Kt44Oe44K1DQor44Kr44Ov44Og44OpLOODpuOCrQ0KK+OCq+ODr+ODoOODqSzjg57jgrXjg6bjgq0NCivjgqvjg6/jgr7jgqgs44Of44OKDQor44OV44K/44Kv44OBLOOCv+ODgOOCtw0KK+OCreODgCzjg6Tjgrnjg5Ljg60NCivjgq3jg4As44Oo44K344OV44OfDQor44Kt44OJLOOCouOCreOCqg0KK+OCreODj+ODqSzjgqvjg4Tjg4jjgrcNCivjgq3jgq/jg4Es44Kz44Km44K4DQor44Kt44Kv44OBLOOCouOCpOOCsw0KK+OCreOCr+OCvyzjgqTjgrXjgqoNCivjgq3jg6Ljg4gs44Kr44K644Oe44K1DQor44Kt44Og44OpLOODn+ODjuODqw0KK+OCreODoOODqSzjg4rjg5vjg58NCivjgq3jg6Djg6ks44K344Ol44Oz44Kk44OBDQor44Kt44Og44OpLOOCueODn+ODkuODrQ0KK+ODnuODhOODouODiCzjgr/jgq/jg63jgqYNCivjgq3jg6Djg6ks44OI44K344KqDQor44Kt44Og44OpLOOCuOODpeODs+OCsw0KK+OCquOCq+OCtuOCrSzjgr/jgrHjgqoNCivjgq3jg6Djg6ks44Om44KrDQor44Kt44Og44OpLOOCouODhOOCtw0KK+OCreODjuOCt+OCvyzjgrHjgqTjgrMNCivjgq3jgrcs44Kt44Of44OS44KzDQor44Kt44K5LOOCuOODpeODs+OCsw0KK+OCreOCv+OCq+OCvCzjg47jg5bjgq0NCivjgq3jgr/jg6Djg6ks44Ki44Kt44KqDQor44Kt44Km44OBLOODiuOCquODiA0KK+OCreOCpuODgSzjgr/jgqvjgr7jgqYNCivjgq3jg6jjgr8s44OA44Kk44K544KxDQor44Kz44OQ44Ok44K3LOODnuOCteODj+ODqw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44Of44Oo44KzDQor44Kz44OQ44Ok44K3LOODqOOCt+ODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgr/jgqvjgrcNCivjgrPjg5Djg6Tjgrcs44OS44OH44Ki44KtDQor44Kz44OQ44Ok44K3LOODpuOCpuOCpOODgQ0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqoNCivjgrPjg5Djg6Tjgrcs44OS44Ot44OS44OHDQor44OS44Ot44K7LOODj+ODq+OCqg0KK+OCs+ODh+ODqSzjgqLjgq3jg5Ljg60NCivjgrPjgqzjgqQs44OS44K144K/44KrDQor44Kz44Kw44OsLOOCq+OCuuOCqg0KK+ODouODquOCvyzjg5/jg4Hjg5LjgrMNCivjgrPjg6Ljg4gs44Oo44Km44K544KxDQor44Kz44Oz44OOLOOCouOCreODkuODrQ0KK+OCs+OCteOCqyzjg6jjgrfjg6bjgq0NCivjgrPjgqTjgrEs44Kt44Oo44K3DQor44Kz44Kk44KxLOODqOOCpuOCpOODgQ0KK+OCs+OCpOOCtyzjgqLjgq3jgqoNCivjgrPjgrjjg54s44Kr44K644K/44KrDQor44Kz44K444OeLOODhuODhA0KK+OCs+OCr+ODmyzjgqvjg4Tjg6QNCivjgrPjgq/jg57jgqQs44Of44Ko44KzDQor44Kz44Oe44Ks44K/LOODnuOCs+ODiA0KK+OCs+ODnuOCrSzjgqvjgrrjg6bjgq0NCivjgrPjg57jg4Qs44Oo44Km44Kk44OBDQor44Kz44Oe44OELOOCouODhOOCtw0KK+OCs+ODn+ODjSzjgqvjg4Tjg47jg6oNCivjgrPjg5/jg6Tjg54s44Oo44K344OO44OWDQor44Kz44Oi44Kq44KrLOODleODn+OCqg0KK+OCs+ODouODqizjgrfjgrLjg47jg6oNCivjgrPjg7Pjg4ks44OS44Ot44K3DQor44Kz44Oz44OJLOODn+OCreOCqg0KK+OCs+ODs+ODiSzjg6jjgrfjgr7jgqYNCivjgrPjg7Pjg4ks44K/44Kr44Om44KtDQor44Kz44Oz44OJ44KmLOOCv+ODhOODiA0KK+OCs+ODs+ODjizjg4bjg4TjgqoNCivjgrPjgrnjgq4s44Oo44Km44Kk44OBDQor44Kz44Km44OALOODiOOCt+ODpuOCrQ0KK+OCs+ODpOODiuOCrizjg47jg5bjg5LjgrMNCivjgq/jg5zjgr8s44OS44Ot44Om44KtDQor44Kv44Oc44K/LOODiuOCquOCrQ0KK+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgq/jg4njgqYs44K044KmDQor44Kv44KsLOOCt+OCsuODqw0KK+OCr+OCuOODnizjgqjjg6oNCivjgq/jg57jg4As44OS44Ot44K3DQor44Kv44Oe44KtLOODnuOCrQ0KK+OCr+ODnuOCr+ODqSzjgqvjg4Tjg4gNCivjgq/jg57jg6Ljg4gs44Ki44Kt44OS44KzDQor44Kv44Oi44Kr44OvLOODkuODreODjuODqg0KK+OCr+ODqeOCt+ODnizjgrPjgqbjgqTjg4ENCivjgq/jg6rjg4/jg6ks44Kz44Km44K4DQor44Kv44Oq44OP44OpLOODpuODn+OCsw0KK+OCr+ODquODoOODqSzjgrfjg6XjgqbjgrgNCivjgq/jg6rjgrks44OS44Ot44K3DQor44Kv44Oq44Ok44OeLOODpuOCreOCqA0KK+OCr+ODquODpOODnizjgrjjg6Xjg7PjgqTjg4ENCivjgq/jg63jg4As44Ki44Kt44OpDQor44Kv44Ot44Kr44OvLOODkuODreOCtw0KK+OCr+ODreOCrSzjg47jg5bjg6QNCivjgq/jg63jgrXjgq0s44OO44OW44Ki44KtDQor44Kv44Ot44K5LOODkuODreOCtw0KK+OCr+OCt+ODgCzjg6/jgr/jg6sNCivjgq/jgrnjg4As44Oo44K344KzDQor44Kv44Ov44OQ44OpLOOCpOODgeODreOCpg0KK+OCpuODgeODgCzjgrHjgqTjgqTjg4ENCivjg57jgqjjg4As44Ok44K544OS44KzDQor44OL44OvLOOCt+OCsuODn+ODhA0KK+ODnuOCqOODkuODqSzjg57jgrXjg4gNCivjg57jgqjjgqvjg68s44OS44OH44K/44KrDQor44Oe44Kt44Og44OpLOODkuODreODn+ODhA0KK+ODnuOCreODjizjg6bjgqbjgrgNCivjg57jgq3jg44s44Oe44OqDQor44Oo44Km44Kz44K/LOODn+ODgeODpOOCuQ0KK+ODnuODq+ODpOODnizjgr/jg4DjgrcNCivjg57jgrnjg4As44Of44Kt44KqDQor44Oe44K544OALOODhuODq+OCouOCrQ0KK+ODnuOCueODkuODrSzjgq3jg58NCivjg57jgrnjg6Tjg54s44K/44Kv44K4DQor44Oe44OE44OQ44OpLOOCs+OCpuOCuA0KK+ODnuODhOODkOODqSzjg6Tjgrnjg4rjg6oNCivjg57jg4Tjg4DjgqTjg6ks44Oe44K144OIDQor44Oe44OE44OALOOCt+OCsuOCqg0KK+OCteOCteODouODiCzjgrXjg6bjg6oNCivjg57jg4Tjg4As44OI44K344OfDQor44Oe44OE44OV44K1LOOCq+ODhOOCuA0KK+ODnuODhOOCpCzjg4jjgqrjg6sNCivjg57jg4TjgqQs44K444Ol44Oz44Kk44OBDQor44Oe44OE44KtLOOCouOCreODkuOCsw0KK+OCq+ODjuOCpizjg5Ljg63jg6bjgq0NCivjg57jg4Tjg6Ljg4gs44Om44Km44Kk44OBDQor44Oe44OE44Oi44OILOODiOOCt+ODpuOCrQ0KK+ODnuODhOODouODiCzjg5XjgrjjgqoNCivjg4/jgrfjg6Ljg4gs44K344On44Km44K4DQor44Oe44OE44Og44OpLOOCreODi+ODgQ0KK+ODnuODhOODoOODqSzjg5Ljg63jg6bjgq0NCivjg57jg4Tjg4rjg58s44OS44Ot44Om44KtDQor44Oe44OE44OK44OfLOODpuOCreOCqg0KK+ODgeODkCzjg4bjg4Tjg6QNCivjg57jg4Tjgrfjg5As44Kz44Km44Kk44OBDQor44Oe44OE44K344K/LOODkuODreOCtw0KK+ODnuODhOOCt+OCvyzjgqjjgqTjgqTjg4ENCivjg57jg4Tjgqbjg6ks44Kk44OB44Ot44KmDQor44Oe44OE44K244KtLOOCv+ODgOOCtw0KK+OCpOODnuOCpCzjg57jgrXjg6bjgq0NCivjg57jg6bjg6Tjg54s44Ki44OE44K3DQor44Oh44OzLOODnuOCteODiA0KK+ODn+ODgeOCrOODnyzjg47jg6rjgqoNCivjg5/jg4/jg6ks44OP44Or44KzDQor44Of44KtLOOCouODhOOCtw0KK+ODn+ODouODqizjg5Ljg63jgrcNCivjg5/jg4rjg5/jgrDjg4Es44Kr44OK44OhDQor44Of44OK44K644KtLOODiuOCquODpuOCrQ0KK+ODn+ODjeODoOODqSzjg6bjgqvjg6oNCivjg5/jgrfjg4os44Kr44K644OS44OtDQor44Of44OE44KkLOOCv+OCseODj+ODqw0KK+ODn+OCpuODqSzjg6jjgqbjgqTjg4ENCivjg5/jgqbjg6ks44Kx44Oz44Kk44OBDQor44Og44Op44Kr44OfLOODnuOCteODj+ODqw0KK+ODn+ODryzjgrfjgrLjg6bjgq0NCivjg5/jg6Tjgqzjg68s44Oe44K144KqDQor44Of44Ok44KuLOODn+ODgeOCsw0KK+ODn+ODpOODj+ODqSzjg4jjgrfjgqoNCivjg5/jg6Tjg4/jgrcs44Kt44On44Km44KzDQor44Of44Ok44Kr44OvLOODnuOCteODiOOCtw0KK+ODn+ODpOOCrSzjg57jgrXjgrrjg58NCivjg5/jg6Tjg6Ljg4gs44K744Kk44K4DQor44Of44Ok44Oi44OILOODkuODreOCtw0KK+ODn+ODpOODouODiCzjg57jgrXjg5Ljg60NCivjg5/jg6TjgrXjgqss44OK44Kq44KtDQor44Of44Ok44K/44KxLOOCt+OCsuODnw0KK+ODn+ODpOOCvyzjg4jjgrfjg5Ljg60NCivjg5/jg6Tjgr8s44Om44Km44K4DQor44Of44Ok44K/LOODnuOCteODn+ODgQ0KK+OCr+ODreODgCzjgrHjgqTjgrMNCivjg5/jg6jjgrcs44OK44Kq44KzDQor44Of44K644Kz44K3LOODnuOCreOCqg0KK+ODn+OCuuOCs+OCtyzjg4jjgrfjgqoNCivjg5/jgrrjg44s44K/44OE44OkDQor44Of44K644OOLOODjuODluODj+ODqw0KK+ODn+OCuuOCv+ODiyzjgrfjg7PjgrgNCivjg6Ljg6os44K344On44Km44K4DQor44Oi44OqLOODjuODquOCsw0KK+ODouODquOCq+ODryzjgqLjgq3jgrMNCivjg6Ljg6rjgq0s44Ok44K544OS44OtDQor44Oi44Oq44K344K/LOODqOOCt+ODnw0KK+ODouODquOCvyzjgr/jg4DjgrcNCivjg6Ljg6rjgr8s44Kr44K644OS44OtDQor44Oi44Oq44Ok44OeLOODiOOCt+OCqg0KK+ODouODquOCvuODjizjg4Tjg6jjgrcNCivjg6Ljg6os44K144OI44OrDQor44Oi44OqLOOCq+ODhOODiOODnw0KK+ODouODqizjg6TjgrnjgqoNCivjg6Ljg6os44OS44Ot44OO44OqDQor44Oi44Ot44K644OfLOODjuODnOODqw0KK+OCpOODjuODj+ODiizjgqvjgrrjgqoNCivjgrPjgrjjg54s44K344Oz44K0DQor44Og44Kr44KkLOOCv+ODhOODnw0KK+ODoOOCq+OCpCzjgrXjg4HjgqoNCivjg6Djg6njgqQs44OB44OK44OEDQor44Og44Op44Kr44OfLOODiOOCquODqw0KK+ODoOODqeOCq+ODnyzjg4Hjg4/jg6sNCivjg6Djg6njg57jg4Qs44Oe44K144Kr44K6DQor44OL44OvLOOCq+ODhOODkuODrQ0KK+ODoOODqeOCvyzjgrXjg4jjgrcNCivjg6Djg6njgr8s44Kk44OB44Ot44KmDQor44Kq44Kq44OOLOOCv+OCq+OCtw0KK+ODoOODqeODpOODnizjg4Hjg4/jg6sNCivjg6Djg4jjgqYs44OS44Ot44OkDQor44Og44OI44KmLOOCv+OCq+OCtw0KK+ODoOODiOOCpizjgqLjg57jg40NCivjg6Djg4Tjgrfjgqss44Ko44Kk44Kk44OBDQor44OK44Ks44KkLOODkuODreOCtw0KK+ODiuOCrOOCpCzjgqvjg4Tjg6bjgq0NCivjg4rjgqzjg6Ljg4gs44Kx44Oz44Kk44OBDQor44Ki44Op44KkLOOCv+OCseODiOOCtw0KK+ODiuOCrOOCqizjg6Tjgrnjg4rjg6oNCivjg4rjgqzjgrXjg68s44Ki44OE44K3DQor44OK44Ks44K144OvLOOCq+OCuuODiA0KK+ODiuOCrOODpOODnizjgqLjgq3jg5Ljg60NCivjg4rjgqTjg4jjgqYs44OV44K144OO44OWDQor44OK44Kk44OI44KmLOOCq+ODhOOCqg0KK+ODiuOCq+ODkOODpOOCtyzjgqvjgrrjg5LjgrUNCivjg4rjgqvjg4Djg4Ys44Kz44Km44Kk44OBDQor44OK44Kr44Ks44KtLOODnuOCteODjuODqg0KK+ODiuOCrOOCqCzjgr/jgqvjg6bjgq0NCivjg4rjgqvjgqzjg68s44OG44Or44K4DQor44OK44Kr44Ks44OvLOODiOOCt+ODpuOCrQ0KK+ODiuOCq+OCtOODoSzjg6jjgrfjg4rjg6oNCivjg4rjgqvjg5Ljg6ks44Om44K/44KrDQor44OK44Kr44KkLOOCqOODn+OCsw0KK+ODiuOCq+OCuOODnizjgqvjg4Tjg4jjg6INCivjg4rjgqvjgrjjg54s44Of44Ko44KzDQor44OK44Kr44K444OeLOODiuOCquODpA0KK+ODiuOCq+OCuOODnizjgqjjg6oNCivjg4rjgqvjgrjjg54s44OE44ON44Ki44KtDQor44OK44Kr44K444OeLOOCseOCpOOCpOODgQ0KK+ODiuOCq+OCuOODnizjg4rjgqrjg5Ljg4cNCivjg4rjgqvjg57jgr8s44OO44Oq44OS44OtDQor44OK44Kr44Of44OBLOOCt+ODpeODs+OCpOODgeODreOCpg0KK+ODiuOCq+ODoOODqSzjg57jgrXjgq0NCivjg4rjgqvjg6Djg6ks44OI44K344Ki44KtDQor44OK44Kr44Og44OpLOODnuOCs+ODiA0KK+ODiuOCq+ODoOODqSzjg4bjg6vjg5Ljg60NCivjg4rjgqvjg6Djg6ks44K344Oz44K4DQor44OK44Kr44Og44OpLOODj+OCuOODoQ0KK+ODiuOCq+ODoOODqSzjg47jg6rjgqLjgq0NCivjg4rjgqvjg6Djg6ks44OS44Ot44Om44KtDQor44OK44Kr44Og44OpLOOCq+OCuuODkuOCsw0KK+ODiuOCq+ODoOODqSzjg57jgrXjg6bjgq0NCivjg4rjgqvjg6Djg6ks44OK44Kq44KtDQor44OK44Kr44OL44K3LOODiOOCt+OCouOCrQ0KK+OCquOCquODi+OCtyzjg57jgrXjg47jg6oNCivjg4rjgqvjg4vjgrcs44OI44K344Om44KtDQor44OK44Kr44OL44K3LOODjuODluODpOOCuQ0KK+ODiuOCq+ODjizjgq3jg6jjgr/jgqsNCivjgqrjgqvjgrbjg68s44Kr44Oo44KzDQor44OK44Kr44OOLOODjuOCvuODnw0KK+ODiuOCq+ODjizjg6jjgrfjg5Xjg58NCivjg4rjgqvjg44s44Oi44Ko44KzDQor44OK44Kr44Kq44KrLOODhuODhOODpA0KK+ODiuOCq+OCqizjg5Xjg5/jgrMNCivjg4rjgqvjgqos44Ko44Kk44K4DQor44OK44Kr44K7LOOCs+OCpuOCtw0KK+ODiuOCq+OCveOCrizjg57jgrXjg4jjg58NCivjg4rjgqvjgr8s44K344Ky44KzDQor44OK44Kr44OE44KrLOOCv+OCq+OCtw0KK+ODiuOCq+ODhOOCqyzjg57jgrPjg4gNCivjg4rjgqvjg6Tjg54s44OS44OH44KtDQor44OK44Kr44Ok44OeLOOCouODhOOCtw0KK+ODiuOCq+ODpOODnizjgr/jg4Tjg6QNCivjg4rjgqvjg6Tjg54s44Kz44Km44OY44KkDQor44OK44Kr44Ok44OeLOOCq+ODhOODkuOCsw0KK+ODiuOCq+OCtuODryzjg5/jg4TjgrANCivjg4rjg5/jgq0s44Kv44OL44KqDQor44OK44Op44K344OeLOODnuOCteOCouOCrQ0KK+ODiuODqSzjgr/jgrHjg5LjgrMNCivjgq/jg4njgqYs44OS44K144K3DQor44OK44OE44OOLOODn+ODgeODj+ODqw0KK+ODiuODhOODpOODnizjg6bjgqbjgrMNCivjgqjjg4jjgqYs44OS44Ot44K3DQor44OL44OY44KkLOOCv+OCq+OCtw0KK+OCquOCr+ODjizjgrXjg6bjg6oNCivjg57jgqjjg5vjg6os44OS44Ot44OfDQor44OL44K344OALOODkuODiOOCtw0KK+ODi+OCt+OCsOODgSzjgr/jg4TjgqoNCivjg6Ljg6os44Om44Kt44KzDQor44OL44K344Kr44OvLOODnuOCteOCtw0KK+ODi+OCt+OCr+ODqSzjgrfjgrLjg6sNCivjg4vjgrfjg6Ljg4gs44Oe44K144KtDQor44OL44K344KqLOODiOOCt+ODkuOCsw0KK+ODi+OCt+ODr+OCrSzjgrHjgqTjgrMNCivjg4vjgrcs44Oe44K144OrDQor44OL44OvLOODnuOCteOCrQ0KK+ODjuODluODnuOCtSzjg5/jgrXjg4gNCivjg47jg4As44Oi44OI44OS44KzDQor44OO44Kw44OBLOOCv+OCq+OCtw0KK+ODjuOCsOODgSzjgrHjg7MNCivjg47jg5vjg6os44OS44OH44Om44KtDQor44OO44K/44OLLOODnuOCteOCv+OCsQ0KK+ODjuODnizjgrXjg4jjgrcNCivjg47jg5/jg6Tjg54s44OI44K344Ot44KmDQor44OO44Oi44OILOODiOOCt+OCouOCrQ0KK+OCv+ODs+OCtuODsyzjg5/jg4HjgqoNCivjgqrjgqrjgqvjg68s44Kr44K644OS44KzDQor44OO44OO44Ok44OeLOODnuOCteOCrQ0KK+ODjuODquOCq+ODjSzjg57jgrXjg6sNCivjg47jg60s44K744Kk44Kk44OBDQor44OOLOOCt+ODs+OCpOODgQ0KK+OCquODkOODiizjg5Ljg63jgrcNCivjgqrjg5Pjg4rjgr8s44Ki44Kt44OS44KzDQor44Kq44OB44Ki44KkLOODqOOCt+ODjuODqg0KK+OCt+ODnuODoOODqSzjg5Ljg63jgrcNCivjgqrjg4Djg40s44Oo44K344Kr44K6DQor44Kq44Ks44OvLOODiuOCquODnw0KK+OCquOCsOODqSzjg5Ljg4fjg4jjgrcNCivjgqrjgrDjg6ks44K744Kk44K4DQor44Kq44Kw44OpLOOCt+ODs+OCueOCsQ0KK+OCquOCquOCsOODrSzjgqTjg6/jgqoNCivjgqrjgqrjg5Djg6Tjgrcs44Kx44Kk44K+44KmDQor44Kq44Kq44OQ44Ok44K3LOODpOOCueODpuOCrQ0KK+OCquOCquODkCzjgqjjg6rjgrMNCivjgqrjg4Es44K344Oz44K0DQor44Kq44Kq44OHLOODiOOCt+ODkuOCsw0KK+OCquOCquODm+ODqizjg47jg6rjgqoNCivjgqrjg5ss44Kz44K544KxDQor44Kq44Kq44Kk44K3LOODouODiOOCpOODgQ0KK+OCquOCrSzjg6jjgrfjg6bjgq0NCivjgqrjgqrjgq/jg5ws44Oe44K144OS44OtDQor44Kq44Kq44Kv44OcLOODnuOCteOCr+ODiw0KK+OCquOCquODn+ODgSzjgr/jgrHjg47jg6oNCivjgqrjg6Djg6ks44OE44ON44Ki44KtDQor44Kq44Kq44OL44K3LOOCpOOCteOCqg0KK+OCquODjizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqrjg6njgqQs44K544K544OgDQor44Kq44K144KtLOOCteODiOOCtw0KK+OCquOCquOCteODryzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgqrjgqrjgrXjg68s44K/44OA44K3DQor44Kq44Kq44K144OvLOODquODpeOCpuOCuA0KK+OCquOCquOCv+ODiyzjgrHjg7PjgrgNCivjgqrjgqrjgr8s44OK44Kq44KtDQor44Kq44Kq44OI44OiLOOCouOCreOCqg0KK+OCquOCtuOCrSzjgrPjgqbjgrgNCivjgqrjgqrjg4Tjgqss44K/44Kx44K3DQor44Kq44Kq44OE44KrLOODiOOCt+ODreOCpg0KK+OCquOCquODhOOCrSzjg4bjg4Tjg6QNCivjgqrjgqrjg6Qs44Oe44K144OS44OtDQor44Kq44OS44OjLOOCr+ODi+ODkuOCsw0KK+OCquOCquODpCzjgrnjgrDjg6sNCivjgqrjgqvjg4As44OE44Kw44KqDQor44Kq44Kr44OALOODqOOCt+ODkuODrQ0KK+OCquOCq+ODgCzjg4jjgrfjg5Ljg60NCivjgqrjgqvjg4As44K344Oz44Kk44OBDQor44Kq44Kr44OP44OpLOODkuODreOCrQ0KK+OCquOCq+ODouODiCzjg6jjgrfjgqoNCivjgq/jgrXjg5As44OS44Ot44K3DQor44Kq44Kr44Og44OpLOODnuOCteOCq+OCug0KK+OCquOCq+ODoOODqSzjg57jgrXjgq0NCivjgqrjgqvjg44s44OS44Ot44K3DQor44OI44OT44K/LOOCt+ODpeOCpuODmOOCpA0KK+ODm+OCveOCq+ODryzjgrPjgqbjgrgNCivjgqbjgqjjg4As44OI44Oo44Kr44K6DQor44Kz44K744KtLOODpuODnw0KK+OCv+OCtuODryzjgrfjg6Xjg7PjgrgNCivjg6Tjg57jgrbjgq0s44Oo44K344Kr44K6DQor44Ko44Kw44OBLOODkuODreODpuOCrQ0KK+ODouODgeODgCzjgrnjgrnjg6ANCivjgqLjgq3jg6Ljg4gs44Kt44Ko44KkDQor44OL44K3LOOCouODhOOCrQ0KK+OCpOODnuOCpOOCtyzjgrfjgrLjg4jjgrcNCivjgr/jgqvjg6Tjgrks44OO44OW44Oo44K3DQor44OP44K/LOODnuOCteODpuOCrQ0KK+ODleOCuOOCteODryzjgqLjgq3jg6kNCivjg6Djg4jjgqYs44OS44K144K3DQor44Oi44K/44KkLOOCt+ODs+OCpOODgQ0KK+OCv+ODgCzjgr/jgqvjg6bjgq0NCivjgrPjgqTjgrrjg58s44Kr44K644Oo44K3DQor44OE44Oc44Kv44OpLOOCs+OCpuOCvuOCpg0KK+ODkuODqeODkOODpOOCtyzjg5Ljg63jgrgNCivjg4Tjgrjjgqvjg68s44OS44Ot44Kr44K6DQor44Of44OE44Kk44K3LOOCu+OCpOOCpOODgQ0KK+ODpOODnuOCt+OCvyzjgrHjg7PjgrgNCivjg57jg6vjgqrjgqss44OO44OW44K/44KrDQor44OV44Kr44KqLOODiOOCquODqw0KK+ODhOODoOODqSzjgqvjg4rjgrMNCivjg57jg6bjg58s44OI44K344KoDQor44Ki44Op44Kr44OvLOODn+ODieODqg0KK+OCquODleODgSzjgrjjg6Xjg7MNCivjgrXjgrXjg6Ljg6os44Om44K/44KrDQor44K144OI44KmLOOCouOCreODqQ0KK+OCv+OCq+OCrizjg57jgrPjg4gNCivjgr/jg4rjgqss44Oe44K144Of44OEDQor44OE44Oc44K0LOODleODn+ODkuOCsw0KK+ODiOODquOCteODryzjg5Ljg63jg6bjgq0NCivjg4rjgqvjgrDjgq0s44Kx44Kk44K0DQor44OP44K744Ks44OvLOODiOODouODpuOCrQ0KK+ODj+ODpOOCtyzjgrPjgqbjgrgNCivjg5Ljg6njg6Tjg54s44K344Ky44OrDQor44OV44Kv44K344OeLOODiOOCt+OCrQ0KK+ODnuODhOOCt+ODnizjgqvjgrrjg5Ljg60NCivjg6jjgrfjgqQs44OS44OH44KtDQor44Kk44K344KkLOODjuODquOCsw0KK+OCpOODnuOCpCzjg5/jg6bjgq0NCivjg4rjgqvjg4Tjgrgs44Om44Kt44KoDQor44Ob44Kk44OALOODhOODjeOCqg0KK+OCteODr+ODj+OCvyzjg5/jg4Tjg6sNCivjgr/jg4/jg6ks44K344On44Km44K4DQor44K/44Kr44OP44K3LOODn+ODjeODnuOCtQ0KK+OCueOCuuOCrSzjg5Ljg4fjgqLjgq0NCivjg6jjgrPjg6Tjg54s44Kx44Oz44K4DQor44Kk44K344Kr44OvLOOCseODs+OCuA0KK+OCouOCteODjizjg6jjgrfjgr/jgqsNCivjgqvjg43jgrMs44K344Ol44Km44K4DQor44Kv44Ot44K7LOODqOOCpuOCueOCsQ0KK+OCteOCq+OCreODkOODqSzjgqLjg6njgr8NCivjgqvjgrXjg54s44Kx44Kk44KzDQor44K544Ku44Ok44OeLOODqOOCt+ODnuOCtQ0KK+OCueODgCzjg4bjg4Tjg6QNCivjgr/jg4rjgqss44Ki44OkDQor44OE44Oc44KkLOOCqOODhOOCsw0KK+ODj+OCt+ODouODiCzjg4HjgqjjgrMNCivjg5Xjgq/jg4Es44K144OI44OfDQor44Ki44Op44KkLOODiOODouOCsw0KK+OCv+ODiuOCqyzjgrHjg7PjgrgNCivjg6Tjgrfjg54s44OK44Kq44Om44KtDQor44Kr44Ov44Oe44K/LOOCv+OCseODjuODqg0KK+OCueODs+ODgCzjgqLjg4Tjg6QNCivjg5/jgrrjgr/jg4ss44Of44OO44OrDQor44Ok44Oe44Kz44K3LOODjuODquODpuOCrQ0KK+OCouODnuOCrOODpCzjg6bjg6Hjg44NCivjgqLjg6njgq0s44OS44K144OoDQor44Kk44Oe44KkLOODiOOCt+ODj+ODqw0KK+OCpOODnuOCtuOCrSzjgr/jgqvjg5LjgrUNCivjgq3jg6Djg6ks44Kr44OE44OS44OHDQor44K544Ku44Ok44OeLOOCpOOCteOCqg0KK+OCueOCuuOCrSzjg4DjgqTjgrnjgrENCivjg4Tjg6ss44Of44OO44OrDQor44OP44Kz44K244KtLOOCouOCreODqQ0KK+OCv+OCreOCtuODryzjg4Tjg6jjgrcNCivjgqTjg4jjgqYs44Kr44K644OO44OWDQor44Oe44K544OALOODqOOCt+ODjuODqg0KK+ODhOODkOOCrSzjg4HjgqLjgq0NCivjg5/jgrnjg58s44OB44Kr44KzDQor44Ok44Kk44K/LOODnuOCrQ0KK+OCq+ODr+ODhCzjg5Ljg4jjgrcNCivjg4Tjgqvjg4As44K/44Kx44OS44KzDQor44OK44Kr44Oi44OILOODleODn+OCsw0KK+ODleODiuODk+OCrSzjgrXjg4rjgqgNCivjg6jjgrfjgrbjg68s44Kt44On44Km44KzDQor44OI44Km44OeLOODqOOCpuOCsw0KK+OCu+OCrSzjg57jg6oNCivjg6Djg6njgr8s44OK44Kq44KtDQor44Kr44K/44Ok44OeLOODnuOCteODkuODrQ0KK+OCreODiSzjgrfjg6XjgqbjgrgNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44K344OO44Of44OkLOODiOODouOCq+OCug0KK+OCv+ODiuOCqyzjgqvjgrrjg6bjgq0NCivjg4/jg6ks44Oo44K344OO44OqDQor44Oi44Oq44K/44OLLOOCt+ODp+OCpuODmOOCpA0KK+OCpOODgeODjuOCuyzjgqvjgrrjg6bjgq0NCivjg5Xjgrjjg6Ljg4gs44Kr44OE44Om44KtDQor44Km44Ko44OOLOOCs+OCpuOCuA0KK+OCt+OCt+ODiSzjg4jjgrfjg47jg6oNCivjg5/jgqbjg6ks44K544K544OgDQor44Km44OB44OALOODq+ODn+OCsw0KK+ODieOCpCzjgrPjgqbjgqTjg4ENCivjgr3jgrnjg58s44OI44K344Om44KtDQor44Oo44K344OALOODnuOCteODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjgqoNCivjg6Tjg57jgrDjg4Es44OK44Ko44KzDQor44K144K1LOODpuOCreOCsw0KK+ODj+OCu+OCrOODryzjgqvjgqrjg6oNCivjgqLjg4Tjgr8s44Oo44K344KqDQor44Kk44OB44Kr44OvLOODnuOCteOCouOCrQ0KK+OCpuODjizjgrXjg4jjg58NCivjgqrjgqzjg68s44Om44Kt44KzDQor44Kq44OALOODkuODreOCq+OCug0KK+OCv+OCq+OCteOCrSzjg57jgq3jgrMNCivjgr/jgqvjg4/jgrcs44OE44Oo44K3DQor44K/44OALOOCv+ODgOOCtw0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjg4jjgq/jg4rjgqws44OS44Ot44K3DQor44OI44Of44K/LOOCuOODpeODs+OCsw0KK+ODiuOCpOODiOOCpizjg6rjgqgNCivjg4/jg6njg4As44Ko44Of44KzDQor44OS44Op44Kr44OvLOODiOODouOCsw0KK+ODleODiuODouODiCzjg5Ljg63jgr/jgqsNCivjg4njg5Djgrcs44Om44KtDQor44Of44Km44OpLOODgeOCsw0KK+ODqOOCt+ODgCzjg5Ljg63jgqLjgq0NCivjgqrjgqrjgr/jgrEs44K444Ol44Oz44K4DQor44Kv44Op44K/LOODpOOCueODkuODrQ0KK+OCr+ODquOCvyzjgrXjg4jjgrcNCivjg4Djg7Ms44Oe44Kz44OIDQor44Oi44Oq44K344OeLOOCt+ODs+OCuA0KK+ODqOOCt+ODgCzjg6jjgqbjgrgNCivjg6/jgqvjg5Djg6Tjgrcs44Om44Of44KzDQor44Ki44Ky44Oe44OELOODkuODreODn+ODgQ0KK+OCpOOCt+OCsOODrSzjgrPjgrnjgrENCivjgqvjg4jjgqYs44Kr44K644OS44OtDQor44K144Kk44OI44KmLOOCt+ODs+OCpOODgQ0KK+ODiuOCpOODiOOCpizjg5/jg4Hjg6gNCivjg5/jg6Tjg57jgqgs44OI44K344OkDQor44Kr44OJ44Ov44KtLOOCouODhOOCtw0KK+ODleOCr+ODouODiCzjg5/jgq3jgqoNCivjg4vjgrfjg4/jg6ks44Ki44Kt44OpDQor44Kq44Kr44Ok44OeLOOCq+OCuuODiuODqg0KK+OCquOCq+ODpOOCuSzjg5/jgqjjgrMNCivjgq/jg63jgqvjg68s44OI44Kq44OrDQor44Kq44Kt44K/LOODqOOCt+ODkuOCtQ0KK+OCquOCr+ODn+ODpCzjg57jgrXjgqvjgroNCivjgqrjgq/jg6Djg6ks44OA44KkDQor44Kq44OO44OALOODiuODq+ODnw0KK+OCquODjuODh+ODqSzjg5Ljg4jjgrcNCivjgqrjg44s44OP44Or44Om44KtDQor44Kq44OOLOODiuOCquODleODnw0KK+OCquODjizjg6jjgrfjg5Xjg58NCivjg57jg4TjgqQs44OG44Or44KqDQor44Kq44K944Ko44Ks44OvLOODpOOCueODiuODqg0KK+OCquOCtuOCrSzjg47jg5bjg6bjgq0NCivjgqrjgrzjgq0s44OS44Ot44Om44KtDQor44K/44Kr44OOLOOCpOOCteOCqg0KK+ODquODp+OCpuOCq+OCpCzjg6jjgrfjgq0NCivjgrXjgrLjgrXjgqss44Oq44Ol44Km44Kk44OBDQor44K144Ku44OkLOOCreODp+OCpuOCpOODgQ0KK+OCteOCpOOCvyzjg57jgrXjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Ki44Kt44Of44OEDQor44K144Kk44OI44KmLOOCtOODreOCpg0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgrXjgqTjg4jjgqYs44OE44ON44KqDQor44K144Kk44OI44KmLOODquOCqw0KK+OCteOCq+OCsOODgSzjg5Ljg4fjgqLjgq0NCivjgrXjgqvjgqQs44OS44Ot44OfDQor44K344Oe44OALOODkuODreOCtw0KK+OCteOCq+OCreODkOODqSzjgqTjg4Tjg63jgqYNCivjgrXjgqvjg6Ljg4gs44Kx44Oz44K4DQor44K144Kr44Oi44OILOODnuOCteOCrQ0KK+OCteOCq+ODouODiCzjg6Djg43jg5Ljg60NCivjgrXjgqvjg6os44OO44OW44OS44OtDQor44K144Kr44K/LOOCteODiOODqw0KK+OCteOCr+ODnizjgrfjg7PjgrgNCivjgrXjgq/jg6njgqQs44K/44Kr44OO44OWDQor44K144Kv44Op44KkLOOCv+OCq+OCtw0KK+OCteOCr+ODqeOCpCzjg6jjgrfjg5Ljg60NCivjgrXjg7Pjg47jgqbjg57jg6ss44Om44Kt44KqDQor44K144OOLOODpuOCv+OCqw0KK+OCteOCteODmSzjgr/jg4Tjg63jgqYNCivjgrXjgrXjgq0s44K344Oz44K0DQor44K144K144KtLOODiOODouODkuODrQ0KK+OCteOCteOCrSzjgr/jgrHjgrcNCivjgrXjgrXjgq0s44OK44Kq44OIDQor44Oo44K344OALOODkuODreOCtw0KK+OCteODiOOCpizjg6jjgrfjg5LjgrMNCivjgrXjg4jjgqYs44Kr44K644OO44OqDQor44K144OI44KmLOOCv+OCq+ODjuODqg0KK+OCteODiOOCpizjg4/jg6Tjg4gNCivjgrXjg4jjgqYs44Ok44K544OS44KzDQor44K144OI44KmLOODqOOCt+ODpuOCrQ0KK+OCteODiOOCpizjg6jjgrfjg4gNCivjgrXjg4jjgqYs44Ki44Kt44KqDQor44K144OI44KmLOODnuOCteOCsw0KK+OCteODiOOCpizjg4jjg6LjgrMNCivjgrXjg4jjgqYs44Om44Km44Kk44OBDQor44K144OI44KmLOODgeOCouOCrQ0KK+OCteODiOOCpizjgqvjgrrjg6QNCivjgrXjg4jjgqYs44Oe44K144OfDQor44K144OI44KmLOOCteODiOOCtw0KK+OCteODr+OCpOODhyzjg6bjgqbjgqTjg4ENCivjgrXjg6/jgqQs44Kz44Km44Kk44OB44Ot44KmDQor44K144Ok44OK44KuLOODnuODqg0KK+OCu+OCrOODryzjg6jjgrfjg5Ljg60NCivjgrvjgqTjg5/jg6Qs44OS44Ot44K3DQor44K744Kk44Ok44OeLOOCt+OCsuOCrQ0KK+OCu+OCreOCq+ODryzjgqLjgq3jg6kNCivjgrvjgq0s44Kz44Km44K4DQor44K744KtLOOCv+OCseOCtw0KK+OCu+ODs+ODgCzjg5Ljg63jgr/jgqsNCivjgrvjg7PjgrTjgq8s44Kt44On44Km44KzDQor44K744OOLOODiOOCt+OCouOCrQ0KK+OCu+OCt+ODoizjgrPjgqbjgrgNCivjgrvjgr/jgqss44Kx44KkDQor44K544KsLOODquODp+OCpuOCpOODgQ0KK+ODn+ODiuODnyzjg6TjgrnjgrcNCivjgrfjg5Djgr8s44OB44Ki44KtDQor44K344OW44OkLOODkuODreODn+ODgQ0KK+OCt+ODluODpCzjg4Tjg6jjgrcNCivjgrfjg5bjg6Qs44Oe44K144OO44OqDQor44K344Kk44OOLOODkuODreOCsw0KK+OCt+OCq+OCvyzjgr/jgqvjg5Ljg60NCivjgrfjgq3jg5Ys44OS44Ot44K3DQor44K344Oe44OALOODnuOCteODkuODrQ0KK+OCt+ODnuODgCzjg5Ljg63jgrcNCivjgrfjg57jgqzjg58s44OI44K344Ki44KtDQor44K344Oe44Oi44OqLOODnuOCteODkuOCsw0KK+OCt+ODnuODoOODqSzjg6bjgq3jg47jg6oNCivjgrfjg57jgrbjgq0s44Kz44KmDQor44K344Oe44K244KtLOOCv+OCq+OCouOCrQ0KK+OCt+ODn+OCuizjgqjjgqTjgr7jgqYNCivjgrfjg5/jgros44Oq44KoDQor44K344Of44K6LOODkuODreOCtw0KK+OCt+ODouODgCzjgrHjgqTjg5/jg7MNCivjgrfjg6Ljg5Ljg6ks44Kz44Km44K/44Ot44KmDQor44K344OO44OP44OpLOOCouOCreODkuODrQ0KK+OCt+ODjuODj+ODqSzjg57jg4rjg5YNCivjgrfjg47jgrbjgq0s44OO44OW44KzDQor44K344OO44K244KtLOODkuODreOCrQ0KK+OCt+ODs+ODnSzjgqvjgrnjg58NCivjgrfjg7Pjgr/jg4ss44Om44Km44K4DQor44Kq44Kq44Kt44OJLOOCveODiOODkuODrQ0KK+OCt+OCquODjOODnizjgq3jg6jjg58NCivjgrfjgqrjgr8s44Kv44OL44Ki44KtDQor44K344Kq44OkLOODnuOCteODkuODrQ0KK+OCt+OCquOCtuODryzjgqTjgrXjgqoNCivjgrfjg6njgqQs44K344Ky44KtDQor44K344Op44K144KtLOODkuODreOCtw0KK+OCt+ODqeODiOODqizjg57jgrXjg4jjgrcNCivjgrfjg6njg4jjg6os44K/44Kr44OS44OtDQor44K344Ot44KtLOODkuODiOOCtw0KK+OCt+ODreOCt+OCvyzjgrfjgrLjgq0NCivjgqvjgrfjg54s44Oo44K344KqDQor44K344Ol44KmLOOCtOOCpOODgQ0KK+OCpOODnuOCpCzjg5Ljg4fjg4/jg6sNCivjgr3jgqjjg4As44OS44Ot44KzDQor44K944KsLOOCpOOCuuODqw0KK+OCveODryzjgqvjgrrjg4rjg6oNCivjgrnjg4As44Kz44Km44Kk44OBDQor44K544OALOODnuOCteODqw0KK+OCueODgCzjg4rjgqrjgq0NCivjgrnjgqjjg4As44OO44Oq44Oo44K3DQor44K544Ko44Oi44OqLOOCteOCreOCsw0KK+OCueOCqOOCquOCqyzjgrfjg6fjgqbjgqTjg4ENCivjgrnjgqzjg6/jg6ks44K344Oz44K4DQor44K544Ky44OOLOODpOOCueODkuODrQ0KK+OCueOCruODouODiCzjg6TjgrnjgqoNCivjgrnjgq7jgr8s44Om44Km44Kk44OB44OtDQor44K544Ku44Ok44OeLOODn+ODhOOCqg0KK+OCueOCruODpOODnizjgrHjgqTjgqTjg4Hjg63jgqYNCivjgrnjgq7jg6Tjg54s44Ko44Kk44K4DQor44K544Of44OI44OiLOODjuODnOODqw0KK+OCueODnyzjg6bjgq0NCivjgrnjg4rjgqws44OS44OH44Om44KtDQor44K544K244KtLOODhuODhOODpA0KK+OCueOCuuOCrSzjg4bjg6vjg58NCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44K544K644KtLOODpOOCueOCtw0KK+OCueOCuuOCrSzjg6bjgq3jgqoNCivjgrnjgrrjgq0s44K344OO44OWDQor44K544K644KtLOOCt+ODs+OCpOODgQ0KK+OCueOCuuOCrSzjg4jjgrfjg6QNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K544K644KtLOOCq+OCuuOCouOCrQ0KK+OCueOCuuOCrSzjgrHjgqTjgrgNCivjgqrjgqrjg4vjgrcs44Oe44K144OP44OrDQor44K544K644KtLOODjuODluOCqg0KK+OCueOCuuOCrSzjg47jg6rjg6bjgq0NCivjgrnjgrrjgq0s44Oq44On44Km44K544KxDQor44K/44OcLOOCt+ODsw0KK+OCv+ODluODgSzjgr/jg4Tjg6QNCivjgr/jg5bjgrUs44OI44K344OV44OfDQor44K/44OB44Kr44OvLOODpOOCueODpuOCrQ0KK+ODkuODqeOCrSzjg6bjgqbjgqTjg4ENCivjgr/jgqzjgqQs44Ok44K544K3DQor44K/44Ks44OvLOODn+ODmw0KK+OCv+OCrCzjg47jg5bjgr/jgqsNCivjgr/jgrDjg4Es44Of44K144KqDQor44K/44Kw44OBLOOCt+ODsw0KK+OCv+OCsOODgSzjg5/jg4rjgrMNCivjgr/jgqvjg5Djgr/jgrEs44Oo44Km44Kk44OBDQor44K/44Kr44KuLOOCseODs+OCv+ODreOCpg0KK+OCv+OCq+ODj+ODqSzjg4jjgrfjg6QNCivjgr/jgqvjg4/jgrcs44OI44K344Om44KtDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjgrvjgqTjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Oo44K344OS44K1DQor44K/44Kr44OP44K3LOODj+ODq+OCteODgA0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgrMNCivjgr/jgqvjg4/jgrcs44Oe44K144Om44KtDQor44K/44Kr44OP44K3LOODkuODh+OCqg0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjgrfjgrINCivjgr/jgqvjg4/jgrcs44OO44Oq44OS44KzDQor44K/44Kr44OP44K3LOODiOODqOODnw0KK+OCv+OCq+ODj+OCtyzjg5/jg47jg6sNCivjgr/jgqvjgqTjgrcs44OI44Oi44Ki44KtDQor44Kz44OQ44Ok44K3LOOCq+OCuuODkuODrQ0KK+OCv+OCq+ODnyzjg5/jg47jg6sNCivjgr/jgqvjg6Djg6ks44K344Ot44KmDQor44K/44Kr44OK44K3LOODqOOCt+ODjuODqg0KK+ODj+OCu+OCrOODryzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg44s44Kt44On44Km44KzDQor44K/44Kr44Kq44KrLOOCv+OCq+OCrQ0KK+OCv+OCq+OCquOCqyzjg47jg5bjg6bjgq0NCivjgr/jgqvjgr/jg4ss44Ki44Kt44OpDQor44K/44Kr44OE44K4LOOCq+ODhOOCuA0KK+OCv+OCq+ODhOOCqyzjgq3jg6jjgrcNCivjgr/jgqvjg4Qs44Oe44K144OfDQor44K/44Kr44Ok44OeLOOCt+ODs+OCpOODgQ0KK+OCv+OCq+ODpOODnizjg4jjgqrjg6sNCivjgr/jgqvjg6Tjg54s44Ok44K544K3DQor44K/44Kx44OALOOCs+OCpuOCpOODgQ0KK+OCv+OCseODgCzjg6Tjgrnjg47jg6oNCivjgr/jgrHjg4As44K/44Kr44Kr44K6DQor44K/44Kx44OALOODiuOCquODkuODiA0KK+OCv+OCseODouODiCzjg47jgr7jg58NCivjgr/jgrHjg6Ljg4gs44Kr44OE44K3DQor44K/44Kx44Km44OBLOOCv+OCq+OCsw0KK+OCv+OCseOCpuODgSzjg5Ljg63jgqvjgroNCivjgr/jgrHjgqbjg4Es44Om44Km44Kk44OBDQor44K/44Kx44Km44OBLOODiOOCquODqw0KK+OCv+OCreODouODiCzjgr/jgqvjg5Ljg60NCivjgr/jg57jg4Es44OS44Ot44K3DQor44K/44Og44OpLOODiOOCt+ODkuODrQ0KK+OCv+ODiuODmSzjg4TjgqvjgrUNCivjgr/jg4rjgqss44Kx44Kk44KzDQor44K/44OK44KrLOODiuOCruOCtQ0KK+OCv+ODiuOCqyzjgr/jgqvjg6bjgq0NCivjgr/jg4rjgqss44Oe44KtDQor44K/44OK44KrLOODkuODreODleODnw0KK+OCv+ODiuOCqyzjgq/jg4vjg5LjgrMNCivjgr/jg4rjgqss44Kr44Kq44OqDQor44K/44Oz44OALOODn+OCreOCsw0KK+OCv+ODi+ODgCzjgq3jg5/jg5sNCivjgr/jg4vjgqzjg68s44Oo44K344K/44KrDQor44K/44OL44Og44OpLOODqOOCt+ODiuODqg0KK+OCv+ODiyzjg5Ljg63jg5bjg58NCivjgr/jgrfjg60s44Om44Kt44KqDQor44OS44Op44K144KrLOODjuODluODpuOCrQ0KK+OCv+ODr+ODgCzjgqjjgqTjgqjjg4QNCivjgr/jg6/jg6ks44K344Oz44K4DQor44OG44Op44OALOODiOODqOODkuOCtQ0KK+ODhuODqeOCteOCrSzjg5Ljg63jg6bjgq0NCivjg4bjg6njgrfjg54s44OS44OH44KzDQor44Kz44OQ44Ok44K3LOOCv+OCpOOCvuOCpg0KK+ODhuODqeOCpuODgSzjg6Tjgrnjg5/jg4QNCivjg6/jgr/jg4rjg5ks44K344Oz44Kk44OBDQor44OI44Kt44OI44OiLOODnuOCteODjuODqg0KK+ODiOOCr+ODgCzjgr/jgqvjg6bjgq0NCivjgrXjgq/jg6njgq4s44OO44Oq44OS44K1DQor44OI44Of44Oi44OILOODnuOCteODkuOCsw0KK+ODiOODn+OCvyzjg5Ljg4fjgqoNCivjg4jjg6Ljg58s44OS44Ot44Of44OEDQor44OI44Oz44Kw44KmLOODnuOCteOCtw0KK+ODiOODquOCpuODnyzjg5Ljg63jgrnjgrENCivjg4jjg6jjg4As44Kr44OE44OS44K1DQor44OI44Oo44K144OILOODkuODreOCtw0KK+ODiOODqOOCt+ODnizjg4bjg4Tjg6QNCivjg4Tjg4Hjg4As44K444Ol44OzDQor44OE44OB44Oi44OILOODnuOCs+ODiA0KK+ODhOODgeODpCzjg6HjgrDjg58NCivjg4Tjg4As44K/44OE44Ot44KmDQor44OE44OALOODpuOCqw0KK+ODhOOCuOODouODiCzjg6bjgq3jgqoNCivjg4Tjgrgs44OO44Oq44KqDQor44OE44K4LOODkuODreOCtw0KK+ODhOOCq+OCtOOCtyzjg4jjgrfjgqvjgroNCivjg4Tjgqvjg6Ljg4gs44Kx44Kk44K4DQor44OE44Kt44OA44OGLOODkuODreOCtw0KK+ODouODquOCvyzjgrPjgqbjgr7jgqYNCivjg4Tjg6vjgr8s44K344OO44OWDQor44OE44K344OeLOODiOODouOCouOCrQ0KK+ODhOOCtyzjg4jjgrfjg5LjgrMNCivjg4Tjg4Tjg58s44K544Of44OIDQor44OE44Ok44OeLOODpOOCueOCrQ0KK+OCpuODgeODgCzjg6bjgq3jgqoNCivjgqbjg4Hjg4As44Oo44Km44KzDQor44Km44OB44Ok44OeLOOCv+OCseOCtw0KK+OCpuODgCzjg6bjgqvjg6oNCivjgqbjgqjjg4As44K144Kq44OqDQor44Km44Ko44OALOODkuODreOCtw0KK+ODhOOCq+ODouODiCzjg4Hjgqjjg58NCivjgqbjgqjjg4As44OS44OH44KqDQor44Kt44Kt44On44KmLOODqOOCt+OCv+OCqw0KK+OCpuOCqOODgCzjgqTjgq/jgqgNCivjgqbjgqjjgrDjg6os44OI44Kq44OrDQor44Km44Ko44OP44OpLOODkuODreODpuOCrQ0KK+OCpuOCqOODnuODhCzjgqvjg4Tjg6QNCivjgrXjg4jjgqYs44Kr44K644OS44KzDQor44Km44Ko44OOLOODkuODh+OCv+OCqw0KK+OCpuOCqOODjizjg6jjgrfjgrMNCivjgqbjgqjjg44s44OS44Ot44Om44KtDQor44Km44Ko44OOLOOCt+OCsuOCrQ0KK+OCpuOCqOODjizjg5Ljg4fjgq0NCivjgqbjgqjjg6Tjg54s44OS44Ot44OO44OqDQor44Km44Oh44OALOOCq+ODiuOCpg0KK+OCpuODoeOCq+ODryzjgqvjg6gNCivjg4rjgqzjgr8s44OO44Oq44KzDQor44Km44Op44K0LOODiOODqOODkuODrQ0KK+OCpuODq+OCt+OCtuOCqyzjg6bjgq3jgqoNCivjgr/jgqvjg4/jgrcs44K344On44Km44Kk44OBDQor44Km44OE44OO44Of44OkLOOCt+ODs+ODmuOCpA0KK+ODr+ODgCzjgqvjgrrjg5Ljg60NCivjg6/jg4As44Of44Kt44KoDQor44Ov44OALOOCt+OCuuOCqg0KK+ODr+OCq+ODkOODpOOCtyzjg6bjg5/jgrMNCivjg6/jgqvjg5Djg6Tjgrcs44Kr44K644OS44KzDQor44Ov44Kr44Oe44OELOOCq+OCuuOCrQ0KK+ODr+OCq+ODnuODhCzjgrPjgqbjgrgNCivjg6/jgq3jg6Ljg4gs44OK44Oq44OIDQor44Ov44Kv44KkLOOCt+ODpeOCpuOCuA0KK+OCpOODiOOCpCzjg6jjgrfjg5LjgrUNCivjg6/jgr/jg5ks44Kr44OE44OkDQor44Ov44K/44OZLOODiuOCquOCv+OCqw0KK+ODr+OCv+ODiuODmSzjgrfjg6Xjg7PjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ov44K/44OK44OZLOOCv+ODgOOCtw0KK+ODr+OCv+ODiuODmSzjgqjjgqTjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44OH44OI44K3DQor44Ov44K/44OK44OZLOODkuODreODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4zjgq0s44Oe44K144OrDQor44Ok44OW44K344K/LOODn+ODieODqg0KK+ODpOODluOCvyzjg5/jg4Tjg6jjgrcNCivjg6Tjg5bjgqbjg4Es44K344On44Km44OY44KkDQor44Ok44K444OeLOODqOOCpuOCsw0KK+ODpOOCr+OCt+OCuCzjg5Xjg5/jg5Ljg60NCivjg6Tjg57jg4As44Om44Kt44KzDQor44Ok44Oe44OALOODkuODreOCqA0KK+ODpOODnuODgCzjg5LjgrUNCivjg6Tjg57jg4As44Ki44Kt44OO44OWDQor44Ok44Oe44OALOOCouOCreOCqg0KK+ODpOODnuODgCzjgqjjgqTjgrnjgrENCivjg6Tjg57jgqzjg58s44OS44Ot44OV44OfDQor44Ok44Oe44Kw44OBLOOCuOODreOCpg0KK+ODpOODnuOCsOODgSzjgrPjgqbjgrgNCivjg6Tjg57jgqvjg68s44K344OzDQor44Ok44Oe44Kz44K3LOOCv+OCq+OCtw0KK+ODpOODnuODouODiCzjgqLjgq3jg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Kx44KkDQor44Ok44Oe44Oi44OILOODnuOCteODn+ODgQ0KK+ODpOODnuODouODiCzjg5Ljg63jg6bjgq0NCivjg6Tjg57jg6Ljg4gs44Ko44Kk44K4DQor44Ok44Oe44Oi44OILOODkuODreODleODnw0KK+ODpOODnuODouODiCzjg57jgrXjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Oe44K144OI44K3DQor44Kr44Ov44Kw44OBLOOCouOCreODqQ0KK+ODpOODnuODoOODrSzjg5Ljg63jg5/jg4ENCivjgqTjg6/jgr8s44K/44Kx44K3DQor44Ok44Oe44Kq44KrLOOCq+OCuuODkuODrQ0KK+ODpOODnuOCteOCrSzjg5Ljg4fjgq/jg4sNCivjg6Tjg57jgrfjgr8s44OS44Ot44K3DQor44Ok44Oe44K344K/LOODhOODiOODoA0KK+ODpOODnuOCt+OCvyzjg4jjgrfjgqLjgq0NCivjg6Tjg57jgrfjgr8s44Ki44Kt44KzDQor44Ok44Oe44K344K/LOODkuODreODpuOCrQ0KK+ODpOODnuOCt+OCvyzjgqvjgrrjg5Ljg4cNCivjg6Tjg57jgrfjgr8s44Kr44OE44Om44KtDQor44Ok44Oe44K344K/LOOCouOCreODqQ0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrbjgq0s44Kr44Kq44OrDQor44Ok44Oe44K244KtLOOCs+OCpuOCuA0KK+ODpOODiuOCrOODryzjg57jgrXjg5Ljg60NCivjgr/jgqvjgqrjgqss44OS44Kr44OrDQor44Ok44OK44K7LOODquODp+OCpuOCpOODgQ0KK+ODpOODjizjg4jjg6Ljg6bjgq0NCivjg6Tjgqos44Ko44Oq44KzDQor44Ok44K544OALOODiOOCt+ODleODnw0KK+ODpOOCueOCq+ODryzjg5Ljg4jjg58NCivjg6jjgqzjgqQs44Kz44Km44Kk44OBDQor44Oo44Kz44Ks44OvLOOCu+OCpOOCuA0KK+ODqOOCs+OCteODryzjg57jgrXjg6bjgq0NCivjg6jjgrPjgr8s44Of44OK44KzDQor44Oo44Kz44K/LOODpOOCueOCtw0KK+ODqOOCs+OCpuODgSzjg4Tjg4jjg6ANCivjg4rjgqvjg6Tjg54s44Ki44OE44K3DQor44Oo44Kz44Ok44OeLOODj+ODq+ODkuOCsw0KK+ODqOOCs+ODpOODnizjg57jgrXjgqoNCivjg6jjg43jg4/jg6ks44OI44K344Om44KtDQor44Oo44ON44Og44OpLOOCv+ODgOOCtw0KK+ODqOOCt+ODgCzjg57jgrXjg4jjgrcNCivjg5/jg6Tjg6Djg6ks44OE44OI44OgDQor44Oo44K344OALOOCreODn+OCouOCrQ0KK+ODqOOCt+ODgCzjg57jgrXjgqvjg4QNCivjg4rjgqss44Oo44K344OS44OtDQor44Oo44K344Og44OpLOODqOOCpuOCpOODgQ0KK+ODqOOCt+ODoOODqSzjg5Ljg63jg58NCivjg4zjg57jgqos44Of44ON44KqDQor44Oo44K344K244KtLOOCqOOCpOOCuA0KK+ODiuOCq+ODoOODqSzjgrHjg7PjgrgNCivjg6bjgqLjgrUs44Oq44On44Km44K/DQor44Om44KyLOOCv+OCq+ODkuODrQ0KK+ODpuOCq+ODryzjg6jjgrfjgr/jgqsNCivjg57jg4Tjg4As44Oo44K344OE44KwDQor44Ki44OZLOODpOOCueODkuODrQ0KK+ODj+OCu+OCrOODryzjgqvjg4Tjg57jgrUNCivjg4/jgrfjg6Ljg4gs44OS44OI44K3DQor44OS44Op44OE44KrLOOCv+ODouODhA0KK+ODm+OCt+OCq+ODryzjg5/jg47jg6sNCivjg5vjgr3jg6Qs44K344On44Km44K4DQor44Kk44K344OP44OpLOOCv+OCq+OCtw0KK+OCpOODr+OCrSzjgr/jg4Hjg4/jg6sNCivjgqvjg43jg4As44Kz44Km44K4DQor44Kt44Og44OpLOOCv+OCseOCtw0KK+OCs+ODs+ODjizjg57jgrPjg4gNCivjg57jg4Tjg4As44Oo44K344OS44K1DQor44Of44Ok44K344K/LOOCt+OCsuODiOODog0KK+OCteOCq+ODouODiCzjg57jg6oNCivjg47jg6Djg6ks44K344Oz44Kk44OBDQor44Kq44Kq44OQ44Ok44K3LOOCqOODhOOCsw0KK+OCteOCpOODiOOCpizjg6bjgq3jgqgNCivjgrXjgrXjgqzjg68s44Om44Km44KzDQor44K144OI44KmLOODpOODqOOCpA0KK+OCt+OCrCzjg57jgrXjg5/jg4QNCivjgrfjg47jg4/jg6ks44Oe44K144K3DQor44K344On44KmLOODoeOCsOODnw0KK+OCv+OCseOCrOODryzjg5/jgqjjgrMNCivjgr/jg4Tjg58s44Om44K/44KrDQor44OI44Of44KoLOODjuODquODkuOCsw0KK+ODr+OCv+ODiuODmSzjg57jg6Ljg6sNCivjg6Tjg57jg4As44Om44Km44Kk44OBDQor44Ok44Oe44OALOODiOODn+ODkuODrQ0KK+ODpOODnuODouODiCzjgr/jgrHjgrcNCivjg6Tjg57jgrbjgq0s44Oe44K144KqDQor44Kz44Oe44OE44K244KtLOODgeOCouOCrQ0KK+ODleODgeODgCzjg57jgrXjg5LjgrMNCivjgr/jg4rjgqss44Kr44K644Om44KtDQor44OP44Ok44K3LOOCteODm+ODqg0KK+ODiuOCrOOCvyzjgrvjgqTjgqTjg4ENCivjg5Djg5As44Oe44Kz44OIDQor44Ki44Kr44OeLOOCv+OCq+OCtw0KK+OCq+OCtuODnizjgqvjgrrjgrfjgrINCivjg6Ljg6os44OS44Ot44Ki44KtDQor44Kk44Kx44OALOODhOODqOOCtw0KK+ODr+OCv+ODiuODmSzjgqvjg4Tjg4gNCivjg5/jg54s44OV44Of44KqDQor44Ki44Oz44OJ44KmLOODiOODouODkuODrQ0KK+ODnuOCqOOCvuODjizjg5/jg4Tjg5Ljg60NCivjgqrjgr/jgqss44Kz44Km44Kk44OBDQor44OP44Ok44K3LOODnuOCteODkuODrQ0KK+OCpuOCqOODjizjgqvjgrrjgr/jgqsNCivjg4Tjg47jg4As44Kx44Kk44Kk44OBDQor44K544OJ44KmLOOCv+OCq+ODiOOCtw0KK+OCteOCq+ODouODiCzjg5/jg4TjgqLjgq0NCivjgr/jg4rjgqss44Oi44Oq44K344KyDQor44Kz44OI44Km44OALOODpuOCreODjuODqg0KK+OCq+ODq+ODmSzjg5Xjg5/jg5Ljg60NCivjgrXjgqTjg4jjgqYs44OG44Or44Oo44K3DQor44OS44Op44OOLOODkuODreOCsw0KK+OCteODiOOCpizjg5Ljg63jg57jgrUNCivjg4rjgqvjg6Tjg54s44Kx44Oz44Kk44OBDQor44OO44OALOODpuODquOCsw0KK+ODnizjg6Tjgrnjg5Ljg60NCivjgrfjg4rjgqzjg68s44OB44Kr44OpDQor44OK44Ks44Ok44K5LOOCs+OCpuOCuA0KK+OCouOCquOCrSzjgrPjgqbjgrgNCivjg4rjgqvjgr8s44OP44Ok44OIDQor44Of44Kv44Oq44OkLOODhuODq+ODpuOCrQ0KK+ODnuODq+ODpOODnizjg5Ljg4fjg4jjgrcNCivjgqjjg4Hjgrzjg7Ms44OS44K144K3DQor44OK44Kr44OL44K3LOOCt+ODp+OCpuOCpOODgQ0KK+ODj+OCruOCqizjg4jjg6Ljg5LjgrMNCivjgr/jg6Djg6ks44Oe44K144Ki44KtDQor44K/44Kw44OBLOODqOOCt+ODiOOCtw0KK+OCquOCtuODryzjgqrjgrXjg6ANCivjg6TjgqrjgqTjgr8s44OI44K344OS44OtDQor44Ki44K144OOLOODjuODquODpOOCuQ0KK+OCr+OCteODjizjg4bjg6vjg5Ljg60NCivjg4/jg57jg4As44Oe44K144K4DQor44Kk44Oq44Ok44OeLOODj+ODiuOCsw0KK+ODoOODqeOCvyzjg4rjgqrjg6QNCivjgqLjgrXjg44s44Oo44Km44K4DQor44K/44Kr44OOLOOCseODs+OCpOODgQ0KK+ODpOODnuOCsOODgSzjgqLjgq3jg4jjgrcNCivjg6Djg6njgqvjg58s44OO44Oq44OS44OtDQor44K/44OK44KrLOOCq+ODhOOCuA0KK+OCv+OCq+OCquOCqyzjgrjjg6Xjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Of44K144ObDQor44Of44ON44Ku44K3LOODiuOCquODpA0KK+OCouODmSzjg47jg6rjgqLjgq0NCivjgqLjg5ks44Of44K644ObDQor44Ki44OZLOOCt+ODpeODs+OCuA0KK+OCouODmSzjg5Ljg4fjgq0NCivjgqLjgqzjg4Tjg54s44Ki44Kt44OpDQor44Ki44Kk44K244OvLOOCv+OCq+OCtw0KK+OCouOCq+OCpOOCsSzjgrjjg6Xjg7PjgrMNCivjgqLjgq3jg6Ljg4gs44Oo44K344OO44OWDQor44Ki44Kt44K/44OkLOODpuOCreOCqg0KK+OCouOCreODpOODnizjg4jjgrfjg6bjgq0NCivjgqLjgq/jg4Qs44K344Ky44KtDQor44Ki44Oe44OOLOOCv+ODgOOCq+ODhA0KK+OCouODnuODjizjgqLjg4Tjg47jg6oNCivjgqLjg57jg44s44OV44Of44KoDQor44Ki44Oh44Of44OkLOOCq+OCuuODnw0KK+OCouODs+ODieOCpizjg57jgrXjg5Ljg60NCivjgqLjg7Pjg4njgqYs44OG44Oz44K744KkDQor44Ki44Oz44K244KkLOODpuOCpuOCuA0KK+OCouOCquOCrSzjg6rjg4TjgrMNCivjgqLjgqrjgq0s44K/44Kr44Om44KtDQor44Ki44Kq44KtLOOCteODgOODj+ODqw0KK+OCouODqeOCpCzjg4/jg6vjg5Ljg4gNCivjgqLjg6njgq0s44Oo44Km44Kk44OBDQor44Ki44Op44KtLOOCt+OCsuODn+ODhA0KK+OCouODqeODpCzjg6jjgrfjgr/jgqsNCivjgqLjg6rjg6jjgrcs44OI44Oi44OO44OWDQor44Ki44K144OS44OKLOODqOOCpuOCpOODgQ0KK+OCouOCteOCpCzjg4rjg6rjg4gNCivjgqLjgrXjg58s44OS44Ot44Om44KtDQor44Ki44K144OE44KxLOOCq+OCuuODpuOCrQ0KK+OCouOCvSzjgq/jg4vjgqvjgroNCivjgqLjgrrjg54s44Oe44Kz44OIDQor44Ki44K644OeLOOCteODiOOCsw0KK+ODkOODkCzjgrnjg5/jgrMNCivjg5Djg5As44OI44Oi44KzDQor44Kr44KsLOODqOOCt+OCrQ0KK+ODkOODkCzjg6bjgqbjgrnjgrENCivjg5Djg7Ms44Om44KrDQor44OT44Or44Kr44OvLOODrOOCpOOCsw0KK+ODnOOCpizjg5Xjgq/jgqoNCivjg4DjgqTjgrQs44K344Ol44Oz44K544KxDQor44OA44Kk44K044KvLOOCuOODpeODs+OCpOODgQ0KK+ODieODkOOCtyzjg4jjgqrjg6sNCivjgqjjg5PjgrXjg68s44OS44Ot44K3DQor44Ko44OP44OpLOODkuODreODiOOCtw0KK+ODleODgeOCrOODnyzjg6rjg6Xjgqbjgr/jg63jgqYNCivjg5Xjgrjjg5Djg6Tjgrcs44OS44Ot44K3DQor44OV44K444Ko44OALOODquODp+OCpuOCpOODgQ0KK+ODleOCuOOCpCzjgrvjgqTjgrQNCivjg5XjgrjjgqQs44K344Oz44K4DQor44OV44K444KkLOODqOOCt+ODjuODqg0KK+ODleOCuOOCpCzjg57jgrXjg6QNCivjg5XjgrjjgqQs44OS44OH44Ki44KtDQor44K144Kr44Oi44OILOOCt+ODpeOCpuODmOOCpA0KK+OCreOCv+ODgCzjgqjjgqTjgqTjg4ENCivjg5XjgrjjgqQs44Kr44Kq44OrDQor44OV44K444KkLOOCt+ODs+OCpOODgQ0KK+ODleOCuOOCpCzjgr/jg4Tjg6QNCivjg5Xjgrjjgqvjg68s44Kr44K644OS44KzDQor44OV44K444Oi44OqLOOCreODp+OCpuOCsw0KK+ODleOCuOODouODiCzjg5Ljg63jgrcNCivjg5Xjgrjjg44s44K744Kk44K4DQor44OV44K444K144OvLOODkuODreOCv+OCqw0KK+ODleOCuOOCvyzjg4jjgrfjg6QNCivjg5Xjgrjjgr8s44OS44Ot44K3DQor44OV44K444K/LOOCseOCpOOCuA0KK+OCr+OCueODouODiCzjg5Ljg63jg5Xjg58NCivjg5Xjgrjjg6/jg6ks44OS44Ot44K3DQor44OV44K444Ov44OpLOOCseOCpA0KK+ODleOCuOODr+ODqSzjg57jgrPjg4gNCivjg5Xjgrjjg6/jg6ks44OS44Ot44OgDQor44OV44K444Ov44OpLOODiOOCt+OCrQ0KK+ODleOCq+ODnOODqizjg5Ljg4fjgqoNCivjg5Xjgqvjg58s44K144OK44KoDQor44OV44Kr44OfLOODkuOCteOCsw0KK+ODleOCr+ODgCzjg6bjgqbjgrMNCivjg5Xjgq/jg4As44K144OI44OfDQor44OV44Kv44OALOOCuOODpeODsw0KK+ODleOCr+ODgCzjg6bjgqsNCivjg5Xjgq/jgqQs44OO44Oq44OB44KrDQor44OV44Kv44KkLOODiOODouOCuA0KK+ODleOCr+ODiuOCrCzjgrHjg7PjgrgNCivjg5Xjgq/jg4rjgqws44Oe44K144Ok44K5DQor44OV44Kv44Kq44KrLOODn+ODjuODqw0KK+ODleOCr+OCquOCqyzjgqTjgrXjgqoNCivjg5Xjgq/jgrcs44Ok44K544OO44OqDQor44OV44Kv44K344OeLOODiOOCt+ODpuOCrQ0KK+ODleOCr+ODiOODoSzjgrvjgqTjgrgNCivjg5Xjgq/jg6Tjg54s44Kr44OE44OS44OIDQor44OV44OK44OQ44K3LOODiOOCquODqw0KK+ODleODq+ODjizjgqLjgq3jg6kNCivjg5Xjg6vjg6Qs44OI44K344Om44KtDQor44OV44Or44OkLOODkuODreODpuOCrQ0KK+ODleODq+ODpOODnizjg5/jg47jg6sNCivjg5Xjgr/jg5As44Om44Of44KzDQor44Ki44OK44OfLOODkuOCteODjuODqg0KK+ODleOCv+ODnyzjg5XjgrjjgqoNCivjg5Xjgr/jg6Djg6ks44OI44Oi44KzDQor44Ks44OJLOODkuOCteOCtw0KK+OCtOOCpizjg6rjg6fjgqbjgrMNCivjgrTjgqbjg4As44K344OzDQor44K044KrLOOCv+ODhOODpA0KK+OCtOODiOOCpizjg4jjgrfjgr/jgqsNCivjgrTjg4jjgqYs44K344OO44OWDQor44OP44OWLOOCt+ODp+OCpuOCuA0KK+ODj+OCrCzjgqLjg4TjgrcNCivjg4/jgq4s44Kx44Oz44K4DQor44OP44OeLOOCv+ODgOODkuODrQ0KK+ODj+ODnuODgCzjg57jgrXjg6sNCivjg4/jg57jg44s44Kq44K144OgDQor44OP44Oe44OOLOOCv+ODhOODpA0KK+ODj+ODnuOCt+ODnizjg6bjg58NCivjg4/jg57jgrfjg54s44K144OA44Of44OEDQor44OP44OK44KkLOODhuODhOOCqg0KK+ODj+ODqSzjgr/jg4Tjgq0NCivjgqrjgr8s44Kz44Km44Kk44OBDQor44OP44Op44OALOODiuOCquOCrQ0KK+ODj+ODqeOCsyzjgr/jg4Tjg5Ljg60NCivjg4/jgrss44Om44K/44KrDQor44OP44K744Ks44OvLOODkuODreOCtw0KK+ODj+OCu+OCrOODryzjgrfjg6fjgqbjgrgNCivjg4/jgrfjg6Ljg4gs44K144OI44K3DQor44OP44K344Oi44OILOOCu+ODhOOCqg0KK+ODj+OCt+ODouODiCzjgqLjgrHjg58NCivjg4/jgrfjgrrjg6Es44Oe44K144KtDQor44OP44K344K644OhLOODiuOCquOCrQ0KK+ODj+OCvyzjgrfjg7PjgqTjg4ENCivjg4/jgr8s44Oo44K344OS44KzDQor44OP44K/LOOCv+OCseODkuOCsw0KK+ODj+OCv+ODjizjgq3jg6fjgqbjgrMNCivjg4/jgr/jg44s44Ok44K544Om44KtDQor44OP44K/44OOLOODqOOCt+ODkuODrQ0KK+ODhOODgCzjg5Ljg63jgrMNCivjg4/jg6Tjgqvjg68s44Oo44K344OO44OqDQor44OP44Ok44OOLOOCq+ODiuOCsw0KK+ODj+ODpOOCtyzjgrXjgqrjg6oNCivjg4/jg6Tjgrcs44K544K544OgDQor44OP44Ok44K3LOODjuODluODpuOCrQ0KK+ODj+ODpOOCtyzjg5Ljg63jg6bjgq0NCivjg4/jg6Tjgrcs44OI44K344Ot44KmDQor44OP44Ok44K344K/44OLLOOCouOCreODqQ0KK+ODkuOCrOOCt+ODjizjgq3jg5/jgr/jgrENCivjg5LjgrDjg4Es44Kr44K644OS44KzDQor44OS44Kw44OBLOOCt+ODs+OCpOODgeODreOCpg0KK+ODkuODoeODjizjg6TjgrnjgrcNCivjg5Ljg6njg5Djg6Tjgrcs44Om44Km44KzDQor44OS44Op44KkLOODpuOCpuOCpOODgQ0KK+ODkuODqeOCq+ODryzjg5Ljg63jgrcNCivjg5Ljg6njgq0s44OS44Ot44K3DQor44OS44Op44OOLOOCu+OCpOODquODp+OCpg0KK+OCouOCquOCrSzjg5/jg4HjgrMNCivjg5Ljg6njgqrjgqss44Oe44K144OkDQor44OS44Op44K144KrLOODkuODreODpuOCrQ0KK+ODkuODqeODpOODnizjg6jjgrfjg47jg6oNCivjg5Ljg63jg4/jgr8s44Om44Km44Kk44OB44OtDQor44Oe44Ko44Kr44OvLOODpOOCueODkuODrQ0KK+ODkuODreOCuyzjg57jg4rjg5YNCivjg5Ljg63jgrss44OS44Ot44Oo44K3DQor44OS44Ot44K/LOODnuOCteODjuODlg0KK+ODkuODreODr+OCv+ODqizjgr/jgqvjg5Ljg60NCivjg5Ljg63jg5/jg4Qs44OS44Ot44K3DQor44OS44Km44OpLOODnuODouODqw0KK+ODm+ODnCzjgr/jgqTjgrnjgrENCivjg5vjgq/jg6ks44Oe44Kz44OIDQor44Ob44Oz44OALOOCpOOCteOCqg0KK+ODm+ODs+ODgCzjg6jjgqbjgrMNCivjgrnjgrrjgq0s44OS44OH44KtDQor44Ob44Oz44K044KmLOOCq+OCuuOCv+OCqw0KK+ODm+ODquOCsOODgSzjgq3jgqTjg4Hjg63jgqYNCivjg5vjg6rjgqQs44Kt44OL44OBDQor44Ob44Oq44Kr44OvLOODhuODq+OCqg0KK+ODm+OCt+ODjizjg6Tjgrnjg5Ljg60NCivjg5vjgr3jgqvjg68s44OS44OH44Om44KtDQor44Ob44K944OfLOODkuODreOCouOCrQ0KK+ODm+ODg+OCvyzjgqvjgrrjgqLjgq0NCivjgqTjg5bjgqss44OO44OW44Of44OBDQor44Kk44OW44KtLOODkuODh+ODpuOCrQ0KK+OCpOODgeOCq+ODryzjg5Ljg63jgrcNCivjgqTjg4Hjg6Djg6ks44Kt44Of44KoDQor44Kk44OALOOCq+ODiuODoQ0KK+OCpOODgCzjg4Hjg4/jg6sNCivjgqTjg4cs44Ok44K544OS44OHDQor44Kk44OHLOOCreODqOOCv+OCqw0KK+OCpOODhyzjg4rjgqrjg6bjgq0NCivjgqTjg4fjgr8s44K/44Kr44K3DQor44Kk44Ks44Op44K3LOOCseOCpOOCsw0KK+OCpOOCrOODqeOCtyzjg6bjgq3jg6QNCivjgqTjgrIs44K144OE44KtDQor44Kk44Kk44OALOOCt+ODp+OCpuOCvuOCpg0KK+OCpOOCpOODgCzjgr/jgqvjg6bjgq0NCivjgqTjgqTjg4As44K/44Oe44OfDQor44Kk44Kk44OALOODqOOCt+ODkuOCtQ0KK+OCpOOCpOODj+ODqSzjg5Ljg63jgrcNCivjgqTjgqTjgrjjg54s44K/44Kx44K3DQor44Kk44Kx44OALOOCq+ODhOODpA0KK+OCpOOCseODgCzjg57jgrXjgqLjgq0NCivjgqTjgrPjg54s44OO44OW44Oe44K1DQor44Kk44Oe44KkLOOCreODqOODkuODiA0KK+OCpOODnuOCpCzjg57jgrPjg4gNCivjgr/jg4rjgqss44Kt44On44Km44KzDQor44Kk44Oe44Og44OpLOOCs+OCpuOCpOODgQ0KK+OCpOODnuODiuODqizjgr/jg4Tjg6QNCivjgqTjg57jgrzjgq0s44K444Ol44Oz44K4DQor44Kk44OK44OALOODnuODpuODnw0KK+OCpOODiuODnuOCuSzjg5Ljg63jgrcNCivjgqTjg47jgqbjgqgs44OS44Ot44Om44KtDQor44Kk44OHLOODnuOCteODkuODrQ0KK+OCpOODrOOCpCzjg57jgrXjg6sNCivjgqTjgrfjg4/jg6ks44Of44OE44OfDQor44Kk44K344OP44OpLOODn+ODpuOCrQ0KK+OCpOOCt+ODj+ODqSzjg4rjgqrjgq0NCivjgqTjgrfjg4/jg6ks44K544K544OgDQor44Kk44K344OP44OpLOOCuOODpeODs+OCpOODgQ0KK+OCpOOCt+OCpCzjgr/jgqvjg6bjgq0NCivjgqTjgrfjgqQs44OI44Oi44Om44KtDQor44Kk44K344Kr44OvLOODpuOCpuOCuA0KK+OCpOOCt+OCq+ODryzjg4rjgqrjg5Xjg58NCivjgqTjgrfjg6Djg6ks44OS44Ot44Om44KtDQor44Kk44K344Ov44K/44OqLOODnuOCueODnw0KK+OCpOOCt+OCtuOCrSzjg47jg6rjg6jjgrcNCivjgqTjgrfjgrrjgqss44OK44Kq44OI44KvDQor44Kk44K944OOLOODn+ODhOODiOOCtw0KK+OCpOOCveODpOODnizjg5/jg4Tjg47jg5YNCivjgqTjgrnjg4As44K344Ky44KqDQor44Kk44K/44Kv44OpLOODnuOCteODkuODrQ0KK+OCpOODiOOCpizjg57jgrXjg5Ljg60NCivjgqTjg4jjgqYs44OS44Ot44OV44OfDQor44Kk44OI44KmLOODqOOCt+ODnuOCtQ0KK+OCpOODiOOCpizjg4/jg6vjgqoNCivjg57jg4TjgqQs44K/44Kx44OS44KzDQor44Kk44OI44KmLOOCv+OCseODkuOCsw0KK+OCpOODiOOCpizjg57jgrXjg4HjgqsNCivjgqTjg4jjgqYs44Oe44K144OS44KzDQor44Kk44Ov44Kr44OfLOODhOODiOODoA0KK+OCpOODr+OCtSzjg4jjgrfjg58NCivjgqTjg6/jgrXjgq0s44Om44Km44K4DQor44Kk44Ov44K144KtLOODiuOCquODpuOCrQ0KK+OCpOODr+OCt+OCvyzjg5/jg4Hjgr/jgqsNCivjgqTjgrrjg58s44OI44Kq44OrDQor44Kk44OI44KmLOOCouODhOOCtw0KK+OCpOOCuuODnyzjg4jjg5jjgqQNCivjgqTjgrrjg5/jgrXjg68s44K744Kk44K4DQor44K444Oz44OOLOODpOOCueOCtw0KK+ODn+ODiSzjg6rjg6XjgqbjgrgNCivjgqvjgqws44Ki44Kx44OfDQor44Kr44Ks44OfLOODleOCteOCqg0KK+OCq+OCsuODpOODnizjg5LjgrXjg4rjgqwNCivjgqvjgqQs44OS44OI44K3DQor44Kr44Kk44OALOOCs+OCpuOCuA0KK+OCq+OCpOOCuizjgr/jgrHjg5Ljg4gNCivjgqvjgrjjgr8s44K4DQor44Kr44Kx44OSLOOCouOCseODnw0KK+OCq+OCreODouODiCzjg4jjg6Ljg5Ljg60NCivjgqvjgq3jg4zjg54s44K144OB44KzDQor44Kr44Kt44OM44OeLOOCt+OCuuOCqw0KK+OCq+ODnuOCvyzjg4jjgrfjgqgNCivjgqvjg57jgr8s44Kx44Oz44Kk44OBDQor44Kr44Of44Kw44OBLOODn+OCqOOCsw0KK+OCq+ODn+ODoOODqSzjg6jjgrfjgqoNCivjgqvjg43jgrMs44Oe44K144OO44OqDQor44Kr44OK44Oe44OrLOOCuA0KK+OCq+ODiuOCtuODryzjg57jg6Ljg6sNCivjgqvjg7Pjg5ks44K/44Kr44OS44OtDQor44Kr44Oz44OALOOCs+OCpuOCvuOCpg0KK+OCq+ODjeODj+ODqSzjgrHjg7MNCivjgrTjg4jjgqYs44K344Ky44Kr44K6DQor44Kr44ON44KzLOOCv+OCseOCtw0KK+OCq+ODjeOCsyzjg6Tjgrnjg4rjgqoNCivjgqvjg43jgrMs44Ki44Kt44OpDQor44Kr44ON44KzLOODkuODh+ODiOOCtw0KK+OCq+ODjeOCsyzjg5Ljg63jg5Xjg58NCivjgqvjg43jg5/jg4Qs44OS44Ot44Of44OEDQor44Kr44ON44Og44OpLOOCq+OCuuOCqg0KK+OCq+ODjeOCvyzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Oe44K144Oo44K3DQor44Oo44ON44Oi44OBLOODiuOCquOCtw0KK+OCq+ODs+ODjizjg6Tjgrnjg57jgrUNCivjgqvjgrXjgqQs44Om44Kr44OqDQor44Kr44K344OeLOOCs+OCpuOCuOODreOCpg0KK+OCv+OCq+OCrizjg5Ljg4fjgq0NCivjgq3jgr/jg6Djg6ks44Oe44K144OfDQor44Kr44K/44Kq44KrLOODpOOCueODpuOCrQ0KK+OCq+OCv+OCquOCqyzjgqvjgrrjg5LjgrMNCivjgqvjgr/jgqrjgqss44K344Ky44Om44KtDQor44Kr44K/44K7LOODpOOCueODiuODqg0KK+OCq+OCv+ODpOODnizjg5/jg4HjgrMNCivjgqvjgr/jg6Tjg54s44OK44Kq44Om44KtDQor44Kr44K/44Ok44OeLOODpuOCpuOCsw0KK+OCq+OCv+ODpOODnizjgq3jg6fjgqbjgrMNCivjgqvjg4jjgqYs44Ok44K544OS44OtDQor44Kr44OI44KmLOODkuODreOCouOCrQ0KK+OCq+ODiOOCpizjgrfjg7PjgqTjg4ENCivjgqvjg4jjgqYs44OE44OI44OgDQor44Kr44OI44KmLOODkuODreODpuOCrQ0KK+OCq+ODiOOCpizjg4jjgrfjg5Ljg60NCivjgqvjg4jjgqYs44Oo44K344OfDQor44Kr44OI44KmLOODpuOCpuOCuA0KK+OCq+ODiOOCpizjg4Tjg4jjg6ANCivjgr3jg6Hjg6Qs44K444Ol44Oz44KzDQor44Kr44Ov44OQ44K/LOODnuOCs+ODiA0KK+OCq+ODr+OCsOODgSzjg57jgrXjgqTjg4ENCivjgqvjg6/jgrDjg4Es44K344Oz44OkDQor44K/44Oe44Ks44OvLOOCs+OCpuOCpOODgeODreOCpg0KK+OCq+ODr+ODj+ODqSzjg5LjgrXjgrcNCivjgqvjg6/jg4/jg6ks44K444Ol44Oz44K4DQor44Kr44Ov44OS44OILOOCq+ODhOODkuOCtQ0KK+OCq+ODr+OCpCzjg47jg6rjg5LjgrUNCivjgqvjg6/jgqQs44OO44Oq44KzDQor44OP44Ku44Ov44OpLOOCt+OCsuOCrQ0KK+ODiuODq+OCsSzjgr/jgqvjgrcNCivjgqvjg6/jgrXjgq0s44Oo44K344OS44OtDQor44Kr44Ov44K344OeLOODpuOCq+ODqg0KK+OCq+ODr+OCt+ODnizjg6bjgq3jgrMNCivjgqvjg6/jgr8s44Om44K/44KrDQor44Kr44Ok44OeLOODkuODreOCq+OCug0KK+OCq+OCtuODnuODhOODqizjg5Ljg63jgrMNCivjgq3jg4ks44K/44Kr44OV44OfDQor44Kt44Ks44OfLOODnuODiuODlg0KK+OCreOCtOOCtyzjg5LjgrXjg6QNCivjg6Ljg6rjgrXjg68s44Kt44Oo44K3DQor44Kt44Kv44OBLOODn+ODhOOCsA0KK+OCreOCr+ODgSzjgq3jgqTjg4ENCivjgq3jgq/jg4Es44OO44Oq44KqDQor44Kt44Kv44OpLOOCq+ODhOODnw0KK+OCreODoOODqSzjg4Tjg43jgqoNCivjgq3jg6Djg6ks44OS44Ot44KtDQor44Kt44Og44OpLOOCouOCseODnw0KK+OCreODoOODqSzjg4jjg6Ljg5LjgrUNCivjgq3jg6Djg6ks44Kr44OE44OO44OqDQor44Kt44Og44OpLOOCseOCpOOCpOODgQ0KK+OCreODoOODqSzjg57jgrXjgq0NCivjgq3jg6Djg6ks44Oe44K144Om44KtDQor44Kt44Og44OpLOOCseODs+OCpOODgQ0KK+OCreODoOODqSzjg47jg6rjgrMNCivjgq3jg6Djg6ks44K344Oz44Kt44OBDQor44Kt44OO44K344K/LOOCv+OCpOOCsw0KK+OCreODjuOCt+OCvyzjg4jjgrfjg5LjgrMNCivjgq3jg47jgrfjgr8s44Ok44K544OS44OtDQor44Kt44K344OZLOODkuODreOCrQ0KK+OCreOCt+ODgCzjg6jjgrfjg47jg6oNCivjgq3jgrfjg6Ljg4gs44K/44Kx44K3DQor44Kt44K344Oi44OILOOCv+ODhOODpA0KK+OCreOCvyzjgr/jgqvjg5/jg4ENCivjgq3jgr/jgqLjgq0s44OS44Ot44Om44KtDQor44Kt44K/44OALOODkuODreODpuOCrQ0KK+OCreOCv+OCrOODryzjg4jjgrfjg6bjgq0NCivjgq3jgr/jg5vjg6os44OS44Ot44Om44KtDQor44Kt44K/44K444OeLOOCv+ODhOODpA0KK+OCreOCv+ODoOODqSzjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44K344Ky44Oo44K3DQor44Kz44OQ44Ok44K3LOOCq+OCuuODkuODrQ0KK+OCs+ODkOODpOOCtyzjg4Hjg5Xjg6YNCivjgrPjg5Djg6Tjgrcs44Ok44K544Om44KtDQor44K344Op44KkLOODgOOCpOOCueOCsQ0KK+OCs+ODkOODpOOCtyzjg5Ljg63jg6bjgq0NCivjgrPjg5Djg6Tjgrcs44K344Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOODiOOCt+ODpA0KK+OCs+ODkOODpOOCtyzjg4jjgrfjgq0NCivjgrPjg5Djg6Tjgrcs44OK44Kq44OV44OfDQor44Kz44OA44OeLOODkuODreODpuOCrQ0KK+OCs+OCruOCvyzjgrHjgqTjgqTjg4ENCivjgrPjgrDjg6ws44Oo44K344Kr44K6DQor44Kz44OP44K3LOODjuODquOCt+OCsg0KK+OCs+OCtCzjgr/jgqvjg5Ljg4cNCivjgrPjg7Pjg44s44Oo44KmDQor44Kz44Oz44OOLOOCreODs+ODpA0KK+OCs+ODs+ODjizjg6Tjgrnjg5Ljg60NCivjgrPjg7Pjg47jgrks44OS44Ot44Kr44K6DQor44Kz44Kk44OHLOOCs+OCpuOCuA0KK+OCs+ODnuODhOODkOODqSzjg5Ljg4fjg4jjgrcNCivjgrPjg5/jg6Qs44Kq44K144OgDQor44Kz44Of44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCs+ODouODgCzjgr/jgqvjgrcNCivjgrPjg7Pjg4ks44Kr44K644Oe44K1DQor44Kz44Oz44OJLOODnuOCteODiA0KK+OCs+ODs+ODiSzjg5Ljg4jjgrcNCivjgrPjg7Pjg4ks44Kr44OE44OkDQor44Kz44Oz44OJLOOCq+OCuuODiOOCtw0KK+OCs+ODi+OCtyzjgqLjgq3jg47jg6oNCivjgrPjgrUs44Oe44K144OIDQor44Kz44K544KuLOOCseODs+OCpOODgeODrQ0KK+OCs+OCv+OCrSzjg57jgrXjg6bjgq0NCivjgrPjgr/jg4ss44Kx44Kk44Kk44OBDQor44Kz44Ok44OeLOODn+OCrQ0KK+OCs+ODpOODnizjg5Ljg63jg58NCivjgrPjg6Tjg54s44Kr44OE44OS44KzDQor44Kz44K244OvLOODnuOCteODjuODqg0KK+OCs+OCuuODqyzjg6jjgrfjgqLjgq0NCivjgq/jg5zjgr8s44OS44Ot44K3DQor44Kv44Oc44K/LOOCuOODpeODs+OCsw0KK+OCr+ODnOODpCzjg4jjg6LjgrMNCivjgq/jg4njgqYs44K444Ol44OzDQor44K744OO44KqLOODkuODiOOCtw0KK+OCr+ODnuOCrOOCpCzjgqvjgrrjg47jg6oNCivjgq/jg6njg4njg58s44Kt44Oo44OV44OfDQor44Kv44Op44Oi44OILOODjuODquODpuOCrQ0KK+OCr+ODqeODiOODnyzjgrHjgqTjgrnjgrENCivjgq/jg6rjg44s44Ok44K544OS44OtDQor44Kv44Oq44OkLOODpuOCpuOCpOODgQ0KK+OCr+ODreODgCzjg5Ljg63jgrcNCivjgq/jg63jgqvjg68s44Of44OE44Ki44KtDQor44Kv44K144Kr44OvLOODjuODluODn+ODhA0KK+OCr+OCteODjizjgrXjg4jjgrcNCivjgq/jg6/jg5Djg6ks44OI44K344OS44OtDQor44Kv44Ov44OOLOODpOOCueODkuODrQ0KK+ODqOOCt+ODgCzjgrXjg4jjg6sNCivjgq/jgrrjg44s44OS44Ot44Kr44K6DQor44Oe44OB44OALOODkuODreOCtw0KK+ODnuOCqOODgCzjgrHjg7PjgqTjg4ENCivjg57jgqjjgqvjg68s44Of44ON44Kr44K6DQor44Kq44Kq44K/44OLLOOCv+ODgOOCt+OCsg0KK+ODnuOCrSzjgr/jgq/jg6QNCivjg57jgq3jg44s44OI44K344KqDQor44Oe44Or44Kq44KrLOODpOOCueODkuODrQ0KK+ODnuODq+ODpOODnizjgrjjg6Xjg7PjgrPjgqYNCivjg57jg6vjg6Tjg54s44OO44Oq44OS44OtDQor44Oe44Or44Ok44OeLOODn+ODjuODqw0KK+ODnuOCteOCpCzjgrfjg7PjgrQNCivjg57jgrXjgq0s44OS44OH44OoDQor44Oe44K7LOOCv+OCq+OCtw0KK+ODnuOCueODgCzjg6bjgr/jgqsNCivjg57jg4jjg5As44K/44Kr44OI44K3DQor44Oe44OI44OQLOOCr+ODi+ODkuOCsw0KK+ODnuODhOODkOODqSzjgr/jgqvjgqLjgq0NCivjg57jg4TjgqQs44OS44K144K3DQor44Oe44OE44KkLOODpOOCueODkuODrQ0KK+ODnuODhOOCq+ODryzjgrvjgqTjgqTjg4ENCivjg57jg4Tjg6Ljg6os44K344On44Km44K+DQor44Oe44OE44Oi44OILOOCv+OCq+OCtw0KK+ODnuODhOODouODiCzjg57jgrXjg6jjgrcNCivjg57jg4Tjg6Ljg4gs44K344Ky44OrDQor44Oe44OE44Oi44OILOOCuOODpeODs+OCsw0KK+ODnuODhOODouODiCzjgr/jgrHjgrcNCivjg57jg4Tjg6Ljg4gs44OI44Kq44OrDQor44Oe44OE44Oi44OILOOCteODgOOCqg0KK+ODnuODhOOCqizjgqvjgrrjg6jjgrcNCivjg57jg4Tjgqrjgqss44K/44Kx44OI44K3DQor44Oe44OE44K344OeLOOCv+OCq+ODkuODrQ0KK+ODiuOCq+ODi+ODryzjg4jjgrfjg63jgqYNCivjg57jg4Tjg6Tjg54s44K444Ol44OzDQor44Oe44OE44Ok44OeLOOCuOODpeODs+OCuA0KK+ODnuODhOOCtuODryzjg5Ljg4fjg6gNCivjg5/jg6Djg6ks44K344Ol44Oz44Kk44OBDQor44Of44OL44Ol44KmLOOCs+OCpuOCpOODgQ0KK+ODn+OCvyzjg57jg4rjg5YNCivjg5/jgr8s44OS44Ot44Kr44K6DQor44Of44K/44Og44OpLOOCuOODpeODsw0KK+ODn+ODhOODgCzjgqrjgrXjg6ANCivjg5/jg4Tjg4As44K444Ol44Oz44Kk44OBDQor44Of44OE44Oe44K/LOODqOOCt+ODjuODqg0KK+ODn+ODhOOCquOCqyzjgqLjg6TjgrMNCivjg5/jgqbjg6ks44Kt44On44Km44KzDQor44Of44Km44OpLOODn+ODieODqg0KK+ODn+ODr+OCvyzjg4rjgqrjgq0NCivjg4rjgqzjgrss44K/44Kr44K3DQor44Of44Ok44KxLOOCouOCreOCqg0KK+ODn+ODpOOCsSzjg6bjgqvjg6oNCivjg5/jg6Tjg54s44K744Kk44K4DQor44Of44Ok44Oi44OILOODhuODhOOCqg0KK+ODn+ODpOODouODiCzjg5Ljg4jjg58NCivjg5/jg6Tjg4rjgqws44Oe44K144Kr44OEDQor44Of44Ok44K244KtLOODouODiOODleODnw0KK+ODn+OCuuODkCzjg5Ljg63jgrcNCivjg5/jgrrjg4zjg54s44Kr44OE44OfDQor44Of44K644K144KtLOODn+ODrw0KK+ODn+OCuuOCvyzjg47jg6rjgqLjgq0NCivjg6Ljg4Hjgrrjgq0s44K344Ol44Km44Kk44OBDQor44Oi44OB44K644KtLOOCouODhOOCrQ0KK+ODouODgeOCuuOCrSzjg4Hjgqvjg6kNCivjg6Ljgq4s44OS44Ot44K3DQor44Oi44Oi44K7LOODhOODqOOCtw0KK+ODkuODqeODjizjgqLjgq3jg5Ljg4cNCivjg6Ljg6os44Om44Km44KtDQor44Oi44OqLOODnuOCteODpuOCrQ0KK+ODouODqizjg57jgrXjg6bjgq0NCivjg6Ljg6os44K344Ky44KqDQor44Oi44Oq44Kr44OvLOOCt+ODs+OCuA0KK+ODpOOCruOCt+OCvyzjgqTjgrXjgqoNCivjg6Ljg6rjg6Ljg4gs44Kz44Km44Kk44OB44Ot44KmDQor44Oi44Oq44Oi44OILOOCs+OCpuOCuA0KK+ODnuODhOODgCzjgrHjg7PjgrgNCivjg6Ljg6rjgqrjgqss44Ki44Kt44OS44KzDQor44Oi44Oq44K344K/LOODquOCqA0KK+ODouODquOCvyzjgq/jg4vjg5Ljg60NCivjg6Ljg6rjgr8s44Kt44Oo44Ko44KkDQor44Kr44ON44KzLOOCq+OCuuOCouOCrQ0KK+ODouODquOCvyzjg57jgrXjg6bjgq0NCivjg6Ljg6rjg6/jgq0s44OO44OW44Om44KtDQor44Oi44Ot44OJ44OfLOODqOOCpuOCpOODgQ0KK+ODouODiOODj+OCtyzjg6jjgrfjg5Ljg4cNCivjg6Ljg4jjgrjjg54s44OG44OE44KqDQor44Oi44OI44KtLOOCseOCpOOCsw0KK+ODouODqizjg5/jg68NCivjgqbjgrnjgqQs44Kr44Kq44OrDQor44Og44Op44Kr44OfLOOCv+OCseOCqg0KK+ODoOODqeOCq+ODnyzjg4DjgqTjgrvjgqQNCivjg6Djg6njgqvjg58s44OS44OH44K3DQor44Og44Op44Kr44OfLOODkuODiOOCtw0KK+ODoOODqeOCvyzjg6jjgrfjgqoNCivjg6Djg6njgr8s44Kt44Oo44OS44KzDQor44Og44Op44Ok44OeLOOCteODiOOCtw0KK+ODoOODiOOCpizjg6jjgrfjg5Ljg60NCivjg4rjg4DjgrDjg4Es44K544Of44OIDQor44OK44Ks44OP44K3LOOCpOOCteOCqg0KK+ODiuOCrOOCpCzjg57jgrXjg5Ljg60NCivjg4rjgqzjg6Djg6ks44Oe44Kz44OIDQor44OK44Ks44KqLOODnuOCteODnw0KK+ODiuOCrOOCt+ODnizjg5/jg4Hjg47jg6oNCivjg4rjgqzjgrfjg54s44Of44Oo44KzDQor44OK44Ks44K/LOODiuOCquODqg0KK+ODiuOCrOOCvyzjg47jg5zjg6sNCivjg4rjgqzjg4Tjgqss44OO44Oq44Om44KtDQor44OK44Ks44Ok44OeLOOCteODiuOCqA0KK+OCpuODgeODgCzjgr/jgqvjg5Ljg4cNCivjgqbjg4Hjgr7jg44s44K/44Kr44K3DQor44OK44Kr44OALOODiOOCt+ODpA0KK+ODiuOCq+OCrOODryzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjgqzjg68s44Om44Kt44OS44OtDQor44OK44Kr44Ks44OvLOODgeODj+ODqw0KK+ODiuOCq+OCrOODryzjg4rjgqrjg6bjgq0NCivjg4rjgqvjgrjjg54s44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44K444OeLOODkuODreOCouOCrQ0KK+ODiuOCq+OCuOODnizjgq3jg6fjgqbjgrMNCivjg4rjgqvjg5/jg4Es44Oq44Ol44Km44Kk44OBDQor44OK44Kr44Oi44OILOODpOOCueODiOODog0KK+ODiuOCq+ODouODiCzjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOODpuODn+OCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjgqLjgq3jg6Tjg54s44K/44Kr44K4DQor44OK44Kr44Og44OpLOODkuODh+ODiA0KK+ODiuOCq+ODoOODqSzjg4Tjg4jjg6ANCivjg4rjgqvjg6Djg6ks44K/44Kr44KzDQor44OK44Kr44Og44OpLOODpuOCreOCsw0KK+ODiuOCq+ODoOODqSzjg6jjgrfjg5LjgrMNCivjg4rjgqvjg6Djg6ks44K744Kk44K4DQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg58NCivjg4rjgqvjg6Djg6ks44K144OI44K3DQor44OK44Kr44OOLOOCv+OCq+OCtw0KK+ODiuOCq+ODjizjgrHjgqTjgrgNCivjg4rjgqvjgrfjg54s44OO44Oq44KqDQor44OK44Kr44OE44OcLOODnuOCteODkuOCsw0KK+ODiuOCq+ODhOOCqyzjg4bjg4Tjg63jgqYNCivjg4rjgqvjg6Tjg54s44Oe44Kz44OIDQor44OK44Kr44Ok44OeLOODnuOCteODkuOCsw0KK+ODiuOCq+OCtuODryzjgqrjgrXjg6ANCivjg4rjgqrjg4Tjgqss44Ki44Kt44KzDQor44OK44Op44OP44OpLOOCteODiOOCtw0KK+ODiuODq+OCt+ODnizjg57jgrXjgrMNCivjg4rjg4jjg6os44OS44Ot44K/44KrDQor44OL44Kk44K444OeLOODpuOCqw0KK+ODi+OCpOODpCzjg6rjgqsNCivjg4vjgrcs44OI44K344OS44K1DQor44OL44K3LOODnuOCteODkuODrQ0KK+ODi+OCt+ODlizjgqLjg6TjgrMNCivjg4vjgrfjg4As44K/44OE44OkDQor44OL44K344OP44OpLOOCv+OCq+OCouOCrQ0KK+ODi+OCt+OCq+ODryzjg57jgrXjgrMNCivjgr/jg4rjgqss44Kk44K144KqDQor44OL44K344Kr44OvLOODnuOCteODiA0KK+ODi+OCt+ODouODiCzjg5Ljg4fjgqLjgq0NCivjg4vjgrfjg6Ljg4gs44OK44Kq44KzDQor44OL44K344Og44OpLOOCv+OCq+OCtw0KK+ODi+OCt+ODoOODqSzjgrPjgqbjgr7jgqYNCivjg4vjgrfjg44s44Kx44Oz44K4DQor44OL44K344OOLOOCt+ODs+ODpA0KK+ODi+OCt+OCquOCqyzjg57jgrXjg47jg5YNCivjg4vjgrfjgrbjgq0s44Kx44Oz44K4DQor44OL44K344K244OvLOODgOOCpOOCueOCsQ0KK+ODi+ODryzjg6Ljg6rjg6jjgrcNCivjg47jg5Ys44Of44OO44OrDQor44OO44Ks44Kk44OILOODjuODluODpuOCrQ0KK+ODjuOCsOODgSzjg6jjgqbjgrMNCivjg47jgrgs44OS44Ot44Om44KtDQor44OO44K444OeLOODjuODquOCqg0KK+ODjuODoOODqSzjgqLjgq3jgrMNCivjg47jg6Djg6ks44K344Oz44Kk44OBDQor44OO44OK44KrLOODpuOCreODjuODqg0KK+ODiuOCq+OCuOODnizjg4Hjg5Xjg6YNCivjg47jgrbjgq0s44Of44Kt44KqDQor44OO44K244KtLOODqOOCt+ODpuOCrQ0KK+ODjOODryzjgr/jgrHjgrcNCivjgqrjg4Es44K/44Kr44K3DQor44Kq44OB44Ki44KkLOODiOOCt+ODpuOCrQ0KK+OCquODgCzjgqLjg4TjgrcNCivjgqrjgqzjgrXjg6/jg6ks44Oo44K344Om44KtDQor44Kq44Ks44K144Ov44OpLOODiOODn+OCqg0KK+OCquOCrOOCvyzjgqvjgrrjg4/jg6sNCivjgqrjgqzjg68s44Kx44Oz44Kk44OBDQor44Kq44Ku44OP44OpLOODkuODreOCrQ0KK+OCquOCquODj+ODqSzjgqvjg4Tjg58NCivjgqrjgqrjg5As44Om44Of44KzDQor44Kq44Kq44OQLOOCqOOCpOOCuA0KK+ODnuODhOODgCzjgrfjgrLjg6bjgq0NCivjgqrjgqrjgqgs44Om44Km44K4DQor44Kq44Kq44Ks44KtLOOCq+OCuuODkuODrQ0KK+OCt+ODp+OCpuOCuOODnizjg4jjgrfjg5Ljg4cNCivjgqrjg4/jg54s44OS44Ot44Om44KtDQor44Kq44Kq44OP44K3LOOCseOCpOOCsw0KK+OCquOCruODjizjgrfjgrLjgq0NCivjgqrjgqrjgqvjg68s44Kz44Km44Kk44OBDQor44Kq44Kq44Kr44Ov44OpLOODnuODiuODlg0KK+OCquOCrSzjg57jgrXjg5LjgrMNCivjg43jg6Ljg4gs44K444Ol44OzDQor44Kq44Kq44Kv44OcLOODjuODluODpuOCrQ0KK+OCquOCquOCr+ODqSzjg4jjg6Ljg5LjgrMNCivjgqrjg54s44OI44Oi44OS44K1DQor44Kq44Kq44Of44KrLOODhuODhOOCtw0KK+OCquOCquODouODqizjg5Ljg4fjg58NCivjgqrjgqrjg6Ljg6os44OS44Ot44Ki44KtDQor44Ov44K/44OK44OZLOOCq+OCuuOCouOCrQ0KK+OCquOCquODi+OCtyzjg5/jg4Tjg6sNCivjgqrjgqrjg4vjgrcs44Oe44K144OS44OHDQor44Kq44OOLOOCteODiuOCqA0KK+OCquODjizjgrjjg6Xjg7PjgrMNCivjgqrjgqrjg4zjg54s44Oe44K144KqDQor44Kq44K344OeLOOCv+OCq+ODpuOCrQ0KK+OCquOCt+ODnizjg57jgrXjgrcNCivjgqrjgqrjgr8s44Oe44K144Om44KtDQor44Kq44Kq44K/LOODouODiOOCpA0KK+OCquOCquOCvyzjgqvjgqrjg6sNCivjgqrjgqrjgr/jgqss44OI44K344Ki44KtDQor44Kq44Kq44K/44KxLOOCteOCqOOCsw0KK+OCquOCquOCv+OCsSzjg5Ljg4fjg5Xjg58NCivjgqrjgqrjgr/jg4ss44Kv44OL44KqDQor44Kq44Kq44OE44OcLOOCouODhOODpuOCrQ0KK+OCquOCquODhOOCqyzjg4bjg4TjgqoNCivjgqrjgqrjg4Tjgqss44OI44K344OS44KzDQor44Kq44Kq44OE44KtLOOCpOOCuuODnw0KK+OCteOCs+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqrjgqrjg68s44K144OI44K3DQor44Kq44Kq44OkLOOCuOODpeODs+OCu+OCpA0KK+OCquOCpOOCq+ODryzjg57jgrXjgq0NCivjgqrjgqvjg5ks44Oe44OK44OWDQor44Kz44OQ44Ok44K3LOOCveOCpg0KK+OCquOCq+ODgCzjg6Tjgrnjg5/jg4QNCivjgqrjgqvjg4As44OG44OE44K4DQor44Kq44Kr44OALOODhuODhOODpA0KK+OCquOCq+ODouODiCzjg5Ljg4fjgqLjgq0NCivjgqrjgqvjg6Ljg4gs44OS44OH44OO44OWDQor44Oh44OpLOODkuODreODpuOCrQ0KK+OCquOCq+ODjizjgqvjgrrjg47jg6oNCivjgqrjgqvjgrbjgq0s44Kr44K644Om44KtDQor44Kq44Kt44K/LOOCteODiOOCsw0KK+OCquOCr+ODgCzjgqjjgqTjgqTjg4Hjg63jgqYNCivjgqrjgq/jg4zjgq0s44Oe44K144Kr44K6DQor44Kq44Oz44OALOODgeOCuuOCsw0KK+OCquODs+ODgCzjg5Ljg6njgr/jgqsNCivjgqbjg4Tjg58s44Oe44K144OS44OtDQor44Kq44Kq44OOLOOCv+OCq+OCtw0KK+OCquOCquODjizjg6bjgq3jg5Ljg60NCivjgqvjg6/jg6Ljg4gs44OS44OH44Om44KtDQor44Kr44OJLOOCr+ODi+ODkuODrQ0KK+OCquOCt+ODnizjgrfjg63jgqYNCivjgqrjgqrjgrnjg58s44Ki44Kt44OpDQor44Kq44Kq44K/LOOCq+OCuuODpuOCrQ0KK+OCquODquOCpCzjgrfjg6Xjg7PjgrgNCivjgqrjg6rjgr8s44K344Ol44Km44Kk44OBDQor44Kq44Kq44K144KrLOODiOODqOODkuODhw0KK+OCquOCveODjuOCpCzjg6bjgq3jgqoNCivjgqrjgrbjgrUs44Om44Kt44OO44OWDQor44Kq44K244OvLOOCv+ODhOOCuA0KK+OCquOCtuODryzjg4rjgqrjg47jg6oNCivjgqrjgrbjg68s44Ok44K544OS44OtDQor44K344Op44OI44OqLOOCuOODpeODsw0KK+OCquOCvuODjSzjgqLjgq3jgqoNCivjgrXjg44s44OS44Ot44OS44K1DQor44K144Kk44OI44KmLOODnuOCteODnw0KK+OCteOCpOODiOOCpizjg4rjgqrjgq0NCivjgrXjgqTjg4jjgqYs44Of44Ko44KzDQor44K144Kk44OI44KmLOOCseOCpOOCuA0KK+OCteOCpOODiOOCpizjg4HjgqvjgrMNCivjgrXjgqvjgqQs44OS44Ot44OfDQor44K144Kr44KkLOOCseODs+OCuA0KK+OCteOCq+OCpCzjg57jgrPjg4gNCivjgrXjgqvjgq3jg5Djg6ks44Of44OE44Ki44KtDQor44K144Kr44Oi44OILOODrOOCpOOCsw0KK+OCteOCq+ODouODiCzjg6jjgrfjgqoNCivjgrXjgqvjg6Ljg4gs44OI44Oi44KzDQor44K144Kr44Oi44OILOOCuOODpeODs+ODmuOCpA0KK+OCteOCq+ODouODiCzjgqvjgqrjg6sNCivjgrXjgqvjg6Djg6ks44Kx44Oz44K4DQor44K144Kr44ONLOOCs+OCpuOCuA0KK+OCteOCq+OCvyzjg57jgrXjg5LjgrMNCivjgrXjgqvjgr8s44Oe44K144OS44OtDQor44Ki44Kv44K/44Ks44OvLOODnuOCteODkuODrQ0KK+OCteOCr+ODqeOCpCzjg57jgrXjg4gNCivjgrXjgq/jg6njgqQs44Or44Oq44KzDQor44Oe44OE44OQ44OpLOODquODp+OCpuOCsw0KK+OCteOCr+ODqeOCpCzjgrXjg4jjg6sNCivjgrXjg4rjgq4s44Oo44K344KtDQor44K144OOLOODpuOCreOCsw0KK+OCquOCquOCrOOCrSzjg4Hjg5Ljg60NCivjgrXjgrXjgq0s44OV44Of44OS44OtDQor44K144K144KtLOODiOOCquODqw0KK+OCteOCteOCrSzjg5Ljg4fjg6bjgq0NCivjgrXjgrXjgq0s44Kk44Kv44OV44OfDQor44K144K144KtLOODiuOCrOODnuOCtQ0KK+OCteOCteOCrSzjg4jjg6LjgrMNCivjgrXjgr/jgrEs44K/44Kr44Om44KtDQor44Kz44OA44OeLOODnuOCteODkuODrQ0KK+OCteODiOOCpizjg4jjgqrjg6sNCivjgrXjg4jjgqYs44OV44K444KqDQor44K144OI44KmLOODkuODh+ODj+ODqw0KK+OCteODiOOCpizjg57jg6Ljg6sNCivjgrXjg4jjgqYs44Oe44Om44OfDQor44K144OI44KmLOOCt+ODreOCpg0KK+OCteODiOOCpizjgrHjg7PjgrgNCivjgrXjg4jjgqYs44OS44OH44OO44OqDQor44K144OI44KmLOOCseOCpOOCpOODgQ0KK+OCteODiOOCpizjgqLjgq3jg5Ljg60NCivjgrXjg4jjgqYs44OS44OH44KtDQor44K144Kr44KkLOOCseODs+OCuA0KK+OCteODr+ODgCzjgrPjgqbjgr/jg63jgqYNCivjgrvjgqzjg68s44K144OI44OrDQor44K744Kk44OOLOOCt+ODp+OCpuOCuA0KK+OCu+OCrSzjg4Tjg4jjg6ANCivjgrvjgq3jg4ks44K344Oz44K4DQor44K744Kt44OOLOODjuODquODkuODrQ0KK+OCu+OCqizjgr/jgqvjg6bjgq0NCivjgrvjg6rjgqvjg68s44Kq44K144OgDQor44K344OQ44K144KtLOODkuODreODjuODqg0KK+OCt+OCrCzjgqvjg4rjg58NCivjgrfjgrLjg6ss44Oo44K344KzDQor44K344Oe44OALOOCouODhOOCtw0KK+OCt+ODnuODgCzjg5/jg4TjgqgNCivjgrfjg57jg4As44Oe44Kz44OIDQor44K344Oe44OALOOCq+OCquODqw0KK+OCt+ODnuODouODiCzjg5/jg4Tjg6TjgrkNCivjgrfjg57jg6Djg6ks44K/44OE44OkDQor44K344Oe44OOLOOCv+OCq+OCtw0KK+OCt+ODn+OCuizjgr/jgqvjgqLjgq0NCivjgrfjg5/jgros44OI44K344OS44OtDQor44K344Of44K6LOOCv+ODgOOCtw0KK+OCt+ODn+OCuizjg4Tjg4jjg6ANCivjgrfjg5/jgros44Kz44Km44K444Ot44KmDQor44K344Of44K6LOOCteODiOODqw0KK+OCt+ODn+OCuizjg5/jgrrjgq0NCivjgrfjg6Ljg4As44OS44Ot44Om44KtDQor44K344Oi44Ks44KtLOOCseODs+ODpA0KK+OCt+ODouODj+OCvyzjg5Ljg63jg6bjgq0NCivjgrfjg6Ljg6Djg6ks44OO44OW44OS44OtDQor44K344Oi44Kq44KrLOODiOOCt+OCouOCrQ0KK+OCt+ODoOODqSzjgrfjg6fjgqbjgqTjg4ENCivjg6Tjgqjjgqzjgrcs44Ki44OE44KzDQor44K344OO44K244KtLOOCouODhOOCtw0KK+ODj+OCruODr+ODqSzjg5Ljg4fjgqoNCivjgrfjgqrjg4As44Oe44K144OS44OIDQor44K344Kq44K/LOODkuOCteODqOOCtw0KK+OCt+OCquOCtuODryzjgrHjg7PjgqTjg4ENCivjgrfjg6njgqQs44K/44Kx44K3DQor44K344Op44Kk44K3LOODiOODouODkuOCtQ0KK+OCt+ODp+OCpuODgCzjgrHjg7PjgrgNCivjgrfjg6XjgqYs44OI44Oi44KzDQor44K944Oh44OkLOODnuOCteOCtw0KK+OCueODgCzjgq/jg5/jgrMNCivjgrnjgqgs44OS44OH44KqDQor44K544Ko44K/LOODkuODh+OCqg0KK+OCt+ODluOCpOODgSzjg5Ljg4fjg6bjgq0NCivjgrnjgqzjg44s44OS44Ot44Om44KtDQor44K544Ks44Ov44OpLOODkuOCteOCv+OCqw0KK+OCueOCruOCqCzjgqvjg4Tjg4jjgrcNCivjgrnjgq7jg57jgrUs44Kx44Kk44K/DQor44K544Ku44Oi44OqLOODjuODluODpuOCrQ0KK+OCueOCruODouODiCzjg4jjgqrjg6sNCivjgrnjgq7jgrXjgq0s44Oo44Km44KzDQor44K544Ku44Km44OpLOODpuOCreOCqg0KK+OCueOCruOCpuODqSzjgrjjg6Xjg7PjgqTjg4ENCivjg5/jgrrjgqrjg4Es44K/44Kr44K3DQor44K544Ku44Ok44OeLOODnuOCteODpA0KK+OCueOCruODpOODnizjg57jg4rjg5YNCivjgrnjgq7jg6Tjg54s44Kx44OzDQor44K544Ku44Ok44OeLOOCv+OCseOCtw0KK+OCueODnyzjg57jgrXjg6Ljg4gNCivjgr/jg5njgqQs44Oo44K344OO44OqDQor44K544OK44OfLOODkuODreOCsw0KK+OCueOCteODryzjgqrjgrXjg6ANCivjgrnjgrrjgq0s44Ki44Kt44KzDQor44K544K644KtLOOCqOOCpOOCuA0KK+OCueOCuuOCrSzjg5Ljg4fjg6bjgq0NCivjgrnjgrrjgq0s44OS44Ot44Ki44KtDQor44K544K644KtLOOCq+ODiuOCsw0KK+OCueOCuuOCrSzjgqvjg4rjgrMNCivjgrnjgrrjgq0s44Kr44K644Oo44K3DQor44K544K644KtLOOCseODs+OCvw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Oe44K144OO44OqDQor44K544K644KtLOODiuODquODnuOCtQ0KK+OCv+ODmSzjg6rjg6XjgqbjgqTjg4Hjg63jgqYNCivjgr/jg4Hjg4/jg6ks44K/44Kr44K3DQor44K/44KyLOODiOOCt+OCrQ0KK+OCv+OCsOODgSzjg6/jgr/jg6sNCivjg4rjgqvjgr8s44Ov44K/44OrDQor44K/44Kw44OBLOOCt+ODsw0KK+OCv+OCuOODnizjgqLjgq3jg6kNCivjgr/jgrjjg54s44Oe44Kz44OIDQor44K/44Kr44OALOOCs+OCpuOCpOODgQ0KK+OCv+OCq+OCruODryzjg5/jg4Tjg5Ljg60NCivjgr/jgqvjg4/jgrcs44Kr44K644Oo44K3DQor44K/44Kr44OP44K3LOODkuODreODpOOCuQ0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg47jg6oNCivjgr/jgqvjg4/jgrcs44Of44OE44OI44K3DQor44K/44Kr44Kv44OpLOOCs+OCpuOCuA0KK+OCv+OCq+OCr+ODqSzjg6Tjgrnjg57jgrUNCivjgr/jgqvjg4/jgrcs44Ok44OS44OtDQor44K/44Kr44OP44K3LOOCouOCreODleODnw0KK+OCv+OCq+ODj+OCtyzjgqrjgrXjg6ANCivjgr/jgqvjg4/jgrcs44Om44Km44K4DQor44K/44Kr44OP44K3LOODkuODreODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg4TjgqvjgrUNCivjgr/jgqvjg4/jgrcs44K344Oz44Kk44OBDQor44K/44Kr44OP44K3LOODpuOCpuOCsw0KK+OCv+OCq+ODj+OCtyzjg57jgrPjg4gNCivjgr/jgqvjg4/jgrcs44OS44OH44KtDQor44K/44Kr44Kv44OpLOODhOODiOODoA0KK+OCv+OCq+ODn+ODpCzjgr/jg57jg58NCivjgr/jgqvjgrXjgrQs44Kv44OL44OS44KzDQor44K/44Kr44K144KtLOODnuOCteODiA0KK+OCv+OCq+OCuyzjg57jgrXjg5Ljg4gNCivjgr/jgqvjg4Tjgqss44K344Oz44Kk44OBDQor44K/44Kr44Ok44OK44KuLOOCt+OCsuODqw0KK+OCv+OCq+ODpOODiuOCrizjg6Tjgqjjgq3jg4ENCivjgr/jgrHjg4Es44OS44OH44Ki44KtDQor44K/44Kx44OALOODkuODreOCtw0KK+OCv+OCseODgCzjgqTjg4Tjg5Ljg4gNCivjgr/jgrHjgqzjg58s44Kr44OE44OfDQor44K/44Kx44OS44K1LOODnuOCs+ODiA0KK+OCv+OCseOCpCzjg47jg5bjgqoNCivjgr/jgrHjgqQs44K/44OA44Om44KtDQor44K/44Kx44Kr44OvLOOCv+OCseODkuOCsw0KK+OCv+OCseODoOODqSzjg4jjgrfjg5Ljg4cNCivjgr/jgrHjg4rjgqss44OI44K344OS44OtDQor44Kk44Oe44KkLOODqOOCpuOCpOODgQ0KK+OCv+OCseOCteOCsyzjg6jjgqbjgqTjg4ENCivjgr/jgrHjgrfjg54s44Kr44OE44K344Ot44KmDQor44K/44Kx44Km44OBLOODkuODreODiOOCtw0KK+ODkuODgOOCqyzjg4jjgqrjg6sNCivjgr/jgq3jg6Ljg4gs44Of44OJ44OqDQor44K/44Kt44K244OvLOOCreOCr+ODnw0KK+OCv+ODnuOCpCzjg57jgrXjg6sNCivjgr/jg6Djg6ks44K344On44Km44Kk44OBDQor44K/44OK44OZLOOCqOOCpOOCuA0KK+OCv+ODiuODmSzjg6jjgqbjg5jjgqQNCivjgr/jg4rjgqss44Ki44Kt44OIDQor44K/44OK44KrLOOCpOOCteODoA0KK+OCv+ODiuOCqyzjg5/jg4njg6oNCivjgr/jg4rjgqss44Oo44K344OK44OqDQor44K/44OK44KrLOODpOOCueOCuA0KK+OCv+ODiuOCqyzjgr/jgqvjgrcNCivjgr/jg4rjgqss44Ki44Oq44OS44OIDQor44K/44OK44KrLOOCt+ODs+OCtA0KK+OCv+ODiuOCqyzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg4rjgqss44OS44Ot44Om44KtDQor44K/44OK44KrLOOCv+OCq+OCtw0KK+OCteODjizjg5Ljg63jg5Xjg58NCivjgr/jg4ss44Ko44Kk44Kk44OB44Ot44KmDQor44K/44OL44Og44OpLOODqOOCt+ODleODnw0KK+OCv+ODi+ODpOODnizjg4DjgqTjgrnjgrENCivjgr/jgrXjgqss44Ok44K544Oe44K1DQor44Kr44OI44KmLOOCqOOCpOOCuA0KK+ODhuODqeODgCzjg6jjgrfjg6bjgq0NCivjg4bjg6njg57jgqgs44Oe44KtDQor44OG44Op44OL44K3LOODjuODluODpuOCrQ0KK+ODhuODqeODi+OCtyzjg5Ljg63jg5/jg4QNCivjg4bjg6njgr7jg44s44Kr44Kq44OqDQor44OI44OT44K/LOODnuOCteODnw0KK+OCpOOCuuODn+OCteODryzjg5Ljg4fjgq0NCivjg4jjg4As44K144OI44K3DQor44OI44Kw44OBLOOCv+OCseOCtw0KK+ODiOODnuODhCzjg4jjg6LjgqLjgq0NCivjgqLjgq3jg6Djg6ks44OO44OW44Om44KtDQor44OI44Kt44K/44KxLOOCv+OCseOCtw0KK+ODiOOCr+ODnuOCuSzjgqLjgq3jg5Ljg60NCivjg4jjgq/jgr/jgrEs44Ki44Kt44OS44KzDQor44OI44Oe44KtLOOCq+OCuuODpA0KK+ODiOODn+OCpCzjg57jgrXjg5Ljg60NCivjg4jjg5/jgr8s44Kt44Of44KqDQor44OI44Of44Ok44OeLOODnuOCteODiA0KK+ODiOODouODgCzjgq/jg5/jgrMNCivjg4jjg6Ljg4rjgqws44Oe44K144OO44OqDQor44OI44K144KrLOODiuOCquODiA0KK+ODiOODg+ODiOODqizjgqLjgq3jg5LjgrMNCivjg57jg4Tjgqos44Oo44K344Om44KtDQor44OI44Oo44OALOODqOOCt+ODpuOCrQ0KK+ODhOODnOOCpCzjgqLjgq3jg6kNCivjgqvjg4jjgqYs44OI44K344OS44OtDQor44OE44OB44OkLOOCq+OCuuOCtw0KK+ODhOODgCzjgrfjg7PjgrQNCivjg4Tjgrgs44Oe44K144OS44KzDQor44OE44K4LOODqOOCpuOCpOODgQ0KK+ODhOOCuOODjizjg6jjgqbjgrnjgrENCivjg4TjgqvjgrPjgrcs44Ki44Kt44OpDQor44OE44Kr44Oi44OILOOCt+OCsuODkuODrQ0KK+ODhOOCq+OCtuOCrSzjg5Xjg5/jg5Ljg60NCivjg4Tjgq3jgqLjgrcs44Ki44Kt44OpDQor44OE44Kt44K244OvLOOCs+OCpuOCuA0KK+ODhOODn+OCvyzjgqjjgqTjgqTjg4ENCivjgqjjg7Pjg4ks44K/44OA44OS44KzDQor44OE44OILOODiOOCt+ODkuODrQ0KK+ODhOODoOODqSzjg6jjgrfjgqoNCivjg4Tjg43jgqvjg68s44K944OO44K544KxDQor44OE44Or44Kq44KrLOODqOOCt+ODkuOCsw0KK+ODhOODq+OCvyzjg47jg6rjgrMNCivjg4Tjg6vjgr8s44Oi44OI44Om44KtDQor44OE44Or44K/LOOCv+ODhOODpuOCrQ0KK+ODhOODhOODnyzjgrfjg6Xjg7Pjg6QNCivjg4Tjg4Tjg58s44Kr44OE44OfDQor44OE44Ov44KzLOODpuOCqw0KK+ODhOODpOODnizjgq3jg6jjg5XjgrUNCivjgqbjg4Hjg4As44K344On44Km44KzDQor44Km44OB44OALOODnuOCteODkuODrQ0KK+OCpuODgeODgCzjgrvjg4TjgrMNCivjgqbjg4Hjg6Tjg54s44K344Oz44K0DQor44Km44OB44Ok44OeLOODkuODh+OCqg0KK+OCpuODiSzjgq3jg6jjg58NCivjgqbjgqjjg4As44OP44Or44KtDQor44Km44Ko44OALOODqOOCpuOCueOCsQ0KK+ODnuODhOODoOODqSzjg4DjgqTjgrjjg63jgqYNCivjgqbjgqjjg4As44Ki44Kx44OfDQor44Km44Ko44OALOOCouOCreOCqg0KK+OCpuOCqOODnuODhCzjg5Ljg4fjgqoNCivjgqbjgqjjg44s44OS44Ot44OfDQor44Km44Ko44OOLOOCuOODpeODs+OCuA0KK+OCpOOCt+ODgCzjgqvjgrrjg5LjgrMNCivjgqbjg6Hjg4As44Kz44Km44K744KkDQor44Km44Oh44Ks44KtLOOCr+ODi+OCsw0KK+OCpuODjizjg57jg6Ljg6sNCivjgqbjg6njg4/jgrcsDQor44K344Of44K6LOOCteODiOOCtw0KK+OCqOOCrOOCt+ODqSzjgr/jg4DjgrcNCivjgrnjgqjjgqvjg40s44OG44Or44Om44KtDQor44Km44OELOODiOOCquODqw0KK+OCpuODhOODj+OCtyzjg4jjgrfjg5Ljg60NCivjgqbjg4Tjg58s44Kx44Kk44Kk44OBDQor44Ov44OALOODhOODjeODleODnw0KK+ODr+ODgCzjgr/jg4Tjg58NCivjgq3jgr/jg6/jgq0s44K744Kk44KtDQor44Ov44K344K6LOODj+ODq+ODiuOCrA0KK+ODr+OCv+ODmSzjg5Xjg5/jg6gNCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ov44K/44OK44OZLOODnuOCteODpA0KK+ODr+OCv+ODiuODmSzjgrXjg4jjg58NCivjg6/jgr/jg4rjg5ks44K344Oz44Kk44OBDQor44Ov44K/44OK44OZLOOCv+OCq+OCtw0KK+ODr+OCv+ODiuODmSzjg4Tjg4jjg6ANCivjg6/jgr/jg4rjg5ks44Oo44K344Ki44KtDQor44Ov44K/44OK44OZLOODhOODjeOCqg0KK+ODr+OCv+ODiuODmSzjg57jgrXjg6gNCivjg6/jgr/jg4rjg5ks44Ko44Kk44K4DQor44Ov44K/44OK44OZLOODkuODreOCsw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kr44OE44K3DQor44Ov44K/44OK44OZLOODpuOCpuOCuOODreOCpg0KK+ODr+OCv+ODiuODmSzjg6TjgrnjgqoNCivjgqjjg4/jg6ks44Ki44OE44K3DQor44Ov44K/44OK44OZLOODkuODh+OCouOCrQ0KK+ODr+OCv+ODqeOCpCzjgrjjg63jgqYNCivjg6Tjgqjjgqzjgrcs44Kq44K144OgDQor44Ok44OP44KuLOOCt+ODjuODlg0KK+ODpOODnuODgCzjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jg4As44K/44Kx44K3DQor44Ok44Oe44OALOODqOOCpuOCuA0KK+OCs+ODs+ODiSzjg4jjgrfjg6QNCivjg6Tjg57jg4As44Ki44OE44K3DQor44Ok44Oe44OALOOCquOCteODoA0KK+ODpOODnuODgCzjg5/jgq0NCivjg6Tjg57jg4As44Ki44Kt44OS44OtDQor44Ko44OO44Oi44OILOODkuODreOCtw0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrDjg4Es44Kt44Oz44OkDQor44OV44K444K/LOODnuOCteODiOOCtw0KK+ODpOODnuOCsOODgSzjgrXjg4jjgrMNCivjg6Tjg57jgrDjg4Es44Ok44K544OS44OtDQor44Ko44K244KtLOODkuODiOOCtw0KK+ODpOODnuOCsOODgSzjgrXjg4jjg6sNCivjg6Tjg57jg6Ljg4gs44K144OI44K3DQor44Ok44Oe44Oi44OILOODiOOCquODqw0KK+ODpOODnuODouODiCzjg6TjgrnjgrcNCivjg6Tjg57jg6Ljg4gs44K/44Kx44K3DQor44Ok44Oe44Oi44OILOOCs+OCpuOCpOODgQ0KK+ODpOODnuODouODiCzjgrPjgqbjgq0NCivjg6Tjg57jg6Ljg4gs44OI44K344Om44KtDQor44Ok44Oe44Oi44OILOODnuOCteODqw0KK+ODpOODnuODiuOCqyzjg5Ljg63jgrcNCivjg6Tjg57jg40s44Of44OB44OrDQor44Ok44Oe44OO44Kv44OBLOOCteODiOOCtw0KK+ODpOODnuOCteOCrSzjgr/jgqvjgrcNCivjg6Tjg57jgrfjgr8s44Oe44K144Kr44K6DQor44Ok44Oe44K344K/LOODkuODreOCrQ0KK+ODpOODnuOCt+OCvyzjgrHjgqTjgqTjg4Hjg63jgqYNCivjg6Tjg57jgrfjgr8s44Kz44Km44KtDQor44Ok44Oe44K344K/LOOCt+OCsuODnw0KK+OCt+OCteOCpCzjg57jgrXjg6bjgq0NCivjg6Tjg57jgrfjgr8s44OI44K344OS44OtDQor44Ok44Oe44Km44OBLOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCpuODgSzjg57jgrPjg4gNCivjg6Tjg57jgrbjgq0s44OS44OH44KqDQor44Ok44Oe44K244KtLOOCv+ODgOOCtw0KK+ODpOODnuOCtuOCrSzjg6Djg4Tjg58NCivjg6Tjg4rjgq7jg6Ljg4gs44K/44Kx44K3DQor44Ok44OOLOODquODp+OCpuOCuA0KK+ODpOODjizjg5Ljg63jgq0NCivjg6Tjgrfjg60s44Ok44K544K3DQor44Ok44K244OvLOODnuOCs+ODiA0KK+ODqOODgCzjgrfjg6Xjg7PjgrnjgrENCivjg6jjgq4s44OV44Of44Om44KtDQor44Oo44Kz44KkLOOCs+OCpuOCuA0KK+ODqOOCs+ODpOODnizjgrHjg7Pjgrfjg6fjgqYNCivjg6jjg43jgrbjgq0s44OV44OI44K3DQor44Oo44K344OALOOCuOODpeODsw0KK+ODqOOCt+ODgCzjg6rjgqjjgrMNCivjg6jjgrfjg4As44Kr44K644Oo44K3DQor44Oo44K344OALOOCuOODpeODs+OCsw0KK+OCqOODk+ODiizjgrvjgqTjgqTjg4ENCivjg6jjgrfjg4As44K/44OA44K3DQor44Oo44K344OALOOCv+ODhOOCqg0KK+ODqOOCt+OCpOOCsSzjg6Tjgrnjg47jg6oNCivjg6jjgrfjg6Djg6ks44Of44OE44Om44KtDQor44Oo44K344Og44OpLOOCteODiOODqw0KK+ODqOOCt+ODjizjgrfjg7PjgqTjg4ENCivjg6jjgrfjgqos44OO44Oc44OrDQor44Oo44K344K/44KxLOOCt+OCsuODqOOCtw0KK+ODpuOCouOCtSzjg4bjg4TjgrgNCivjgqrjgqrjg6/jg4As44K344On44Km44K4DQor44Ko44Kw44OBLOOCteODiOODqw0KK+OCquOCtuODryzjgqvjg4Tjg6bjgq0NCivjgrXjg4jjgqYs44Of44OE44Ki44KtDQor44K344Oz44K/44OLLOOCv+OCseODnw0KK+OCueOCruOCv+ODiyzjg6jjgrfjg5LjgrMNCivjgr/jgqvjg4/jgrcs44Kk44K644OfDQor44K/44Kt44K244OvLOODiuOCquOCrQ0KK+ODn+ODqOODgCzjgrHjg7PjgrgNCivjg6Tjg57jg4As44Kt44Oo44K3DQor44Ok44OP44KuLOOCteODiOOCtw0KK+OCreODpCzjgr/jg4DjgrcNCivjg5/jgrvjgq0s44OO44Oq44Kr44K6DQor44Ko44OO44Oi44OILOOCseODs+OCv+ODreOCpg0KK+OCteOCr+ODqeODgCzjg57jgrXjgq0NCivjgrXjgrXjgq0s44OO44OW44Om44KtDQor44OQ44OQLOOCv+OCseOCqg0KK+OCouODnCzjgqvjgqrjg6oNCivjgqLjg4Djg4Es44Kz44Km44OY44KkDQor44Ki44Kr44K144KrLOODnuOCteODkuODrQ0KK+OCouODnuOCteOCrSzjg5Ljg4fjg4gNCivjgqLjgqrjgq0s44Kr44Oz44K4DQor44Ki44K844Ks44OfLOOCt+OCsuOCq+OCug0KK+OCqOODieODjizjg5Xjg5/jg5Ljg60NCivjg4njgqQs44Kr44K644KqDQor44OV44K444KkLOODiOODouODkuODiA0KK+ODleOCuOOCpCzjgrXjg6bjg6oNCivjg5Xjgrjjg6Ljg4gs44OS44Ot44KtDQor44OV44K444Oi44OILOOCv+OCseOCtw0KK+ODleOCr+ODj+ODqSzjg47jg5bjg6bjgq0NCivjg5Xjgq/jgqrjgqss44OG44OE44OkDQor44OV44Kv44K344OeLOOCseODs+OCpOODgQ0KK+ODleOCteODpOODnizjgrPjgqbjgqTjg4ENCivjgrTjg4jjgqYs44Oo44K344OS44OtDQor44OP44Oe44OZLOOCqOOCpOOCuA0KK+ODj+ODiuODgCzjgrHjgqTjgrnjgrENCivjg4/jgrfjg6Ljg4gs44Oo44K344OS44OtDQor44OS44OTLOOCteOCq+OCqA0KK+ODkuODqeODhOOCqyzjgqvjgrrjg6bjgq0NCivjgqTjgqvjg6os44K/44Kr44Om44KtDQor44Kk44Kv44K/LOOCouOCreODkuOCsw0KK+OCpOODnuOCpCzjg4bjg4TjgrcNCivjgqTjgrfjg4/jg6ks44Ok44K544OS44OtDQor44Kk44K944OALOOCs+OCpuOCpOODgQ0KK+OCpOOCveOCtuOCrSzjg6jjgrfjgr/jgqsNCivjgrjjg7PjgrDjgqYs44Oo44K344Ki44KtDQor44OK44KkLOODn+ODjuODqw0KK+OCuOODp+OCpuODi+OCtyzjgqrjgrXjg58NCivjgqvjgrjjg4/jg6ks44Oo44K344Ki44KtDQor44Kr44Oe44K/LOOCv+ODhOODpA0KK+OCq+ODoeOCpCzjgqLjgq3jg6kNCivjgqvjg5/jg6Tjg54s44OG44OE44OkDQor44Kr44OI44KmLOOCv+ODhOOCuA0KK+OCq+ODiOOCpizjg4jjgrfjg6bjgq0NCivjgqjjg58s44OS44OH44Ki44KtDQor44Kr44Ov44Oi44OqLOODnuODouODqw0KK+OCreODoOODqSzjg6jjgrfjg5Ljg60NCivjgq3jg6Djg6ks44Kr44K644KqDQor44Kt44K344OZLOOCr+ODi+ODkuOCsw0KK+OCreOCt+OCq+ODryzjgqvjgrrjg6jjgrcNCivjgq3jgr/jgqzjg68s44K344Oz44Kk44OBDQor44Kt44K/44OK44KrLOODoeOCsOODnw0KK+OCs+ODkOODpOOCtyzjg57jgrXjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Ky44OzDQor44Kz44Kk44KxLOODiOOCpuOCvw0KK+OCs+OCpOOCuuODnyzjgqvjgrrjg6QNCivjgrPjgrjjg54s44K/44Kr44OS44K1DQor44Kz44OL44K3LOOCreODqOOCq+OCug0KK+OCs+ODpOODnizjgr/jgq/jg6QNCivjgq/jg4njgqYs44Kr44K644OkDQor44Kv44Oe44K144KtLOODqOOCt+OCouOCrQ0KK+OCr+ODreODgCzjg5Ljg63jgqvjgroNCivjgq/jgrXjgqss44K344Oz44K0DQor44Ko44Oz44OJLOOCseODs+OCuA0KK+ODnuOCqOOCq+ODryzjg57jgrXjg5Ljg60NCivjg57jg6vjgr8s44OS44OH44KtDQor44Oe44OE44K344K/LOOCt+ODs+OCtA0KK+ODn+OCr+ODiyzjg4jjg5/jgqoNCivjgqjjg7Pjg4ks44Oo44K344OO44OqDQor44Of44ONLOODpOOCueOCv+OCqw0KK+ODn+OCpuODqSzjgrfjg6XjgqbjgqTjg4ENCivjg5/jgr7jgrDjg4Es44K344On44Km44K4DQor44Ob44OzLOODqOOCt+OCouOCrQ0KK+ODn+OCuuOCt+ODnizjgrfjgrLjg6sNCivjgqjjg4As44K/44Kr44K3DQor44OK44Ks44KqLOOCouODhOOCtw0KK+ODiuOCq+ODoOODqSzjg4jjgqrjg6sNCivjg4rjgqvjg4vjgrcs44Om44Km44K4DQor44OK44Kr44OOLOODqOOCpuOCsw0KK+ODiuOCq+OCqizjgqvjg4Tjg6QNCivjg43jg6Ljg4gs44Oe44K144Om44KtDQor44OL44K344Kr44OvLOOCs+OCpuOCuA0KK+ODi+OCt+ODr+OCrSzjgrHjg7PjgqTjg4ENCivjg47jg4As44K/44Kr44KzDQor44OO44Kw44OBLOODn+ODiOOCtw0KK+OCquODgeOCouOCpCzjgrPjgqbjgrgNCivjgqrjgqrjg4/jgrcs44Ok44K544Oo44K3DQor44Kq44OOLOOCv+OCr+OCuA0KK+OCqOODnyzjg5Ljg4fjgqoNCivjgqrjgq/jg6Djg6ks44Oe44K144OS44OtDQor44Kq44Kv44OOLOODkuODh+ODn+ODhA0KK+OCqOODs+ODiSzjg6jjgrfjgr/jg4ANCivjgqrjgqrjg4vjgrcs44Ki44Kt44OpDQor44Kq44K244KtLOOCr+ODi+ODj+ODqw0KK+OCteOCqOOCrSzjg47jg6rjg6bjgq0NCivjgrXjgqzjg68s44OO44Oc44OrDQor44K144Kv44OeLOODnuOCteODmw0KK+OCteODiOOCpizjgrfjgrLjgqLjgq0NCivjgrXjg4jjgqYs44Of44OE44OS44OtDQor44K144OvLOOCreODqOOCv+OCqw0KK+OCu+OCrOODryzjgrPjgqbjgrgNCivjgrvjgq0s44Om44Kt44KqDQor44K744Oz44OALOOCseODs+OCuA0KK+OCt+ODluODpCzjgrfjg6XjgqbjgqTjg4ENCivjgrfjg5/jgros44Oo44K344OP44OrDQor44K344Oz44OH44OzLOOCouOCreODqOOCtw0KK+OCt+OCquOCvyzjg5Ljg4jjgrcNCivjgrfjg6Xjgq/jgr/jg4ss44OI44K344KqDQor44K544Ok44OeLOODkuODreOCsw0KK+OCueOCuuODoOODqSzjgqTjgrXjgqoNCivjgr/jgqvjgqrjgqss44Oo44K344Om44KtDQor44K/44Kx44Km44OBLOOCq+ODhOODjuODqg0KK+OCv+OCseOCpuODgSzjgqvjgrrjgrcNCivjgr/jg57jgqQs44Oe44K144OS44OtDQor44K/44OzLOOCq+OCuuODkuODrQ0KK+OCv+ODiuOCqyzjgrHjg7PjgrQNCivjgqjjg4jjgqYs44OG44Or44Ki44KtDQor44K/44OL44OS44OpLOOCq+OCuuODkuODrQ0KK+OCv+ODi+ODpOODnizjgq3jgq/jgqoNCivjgr/jgqrjgqss44K344Ky44KtDQor44K/44K344OeLOODnuOCteODpuOCrQ0KK+OCv+OCtuODryzjg5/jgq3jgqoNCivjg4jjgq3jgr8s44Kr44OE44Oo44K3DQor44OI44Of44K/LOOCt+OCsuOCrQ0KK+ODiOODn+OCvyzjgrHjg7PjgrgNCivjg4jjg5/jgr8s44Ki44Kt44KqDQor44OE44K444OZLOODkuODreOCsw0KK+ODhOOCuOOCq+ODryzjgrHjg7PjgqTjg4ENCivjgqjjg7Pjg4ks44K444Ol44Oz44KzDQor44Of44Ok44K244KtLOODnuOCreOCsw0KK+ODr+ODgCzjg6jjgrfjgr/jgqsNCivjg6/jgr/jg4rjg5ks44OS44Ot44OfDQor44Ok44Oe44OALOODiuOCquODpA0KK+ODpOODnuODgCzjgr/jg4DjgrcNCivjg6Tjg57jg4As44K144Ok44KrDQor44Ok44Oe44Kw44OBLOODjuODquOCqg0KK+ODpOODnuODouODiCzjgr/jgqvjgrMNCivjg6Tjg57jgqrjgqss44Kr44OE44OO44OqDQor44Ok44Oe44K344K/LOODjuODluOCqg0KK+ODpOODnuOCt+OCvyzjgqvjgrrjg5LjgrUNCivjg6Tjg57jgr7jgqgs44OS44Ot44Oe44K1DQor44Ok44KqLOODpOOCueODj+ODqw0KK+ODpOOCueODgCzjgrXjg4jjgrcNCivjg6jjg4Tjgr/jg4ss44Oo44K344KqDQor44Oo44K344OP44OpLOODkuODh+OCqg0KK+ODqOOCs+OCpuODqSzjg57jgrXjgqoNCivjg5Ljg6njgrss44K344Ky44KqDQor44Oe44OE44KkLOOCpOODgeOCv+ODreOCpg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5LjgrUNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44Kr44OI44KmLOODiOOCt+OCr+ODiw0KK+OCr+ODi+ODiOODoizjg47jg5bjg6bjgq0NCivjgqjjg7Pjg4ks44K044KmDQor44Kk44OI44KmLOOCteODiOODqw0KK+OCquOCq+OCtuOCrSzjg5Ljg4fjgqoNCivjg5Ljg63jg4/jgrcs44Ok44K544KqDQor44K144Kr44KtLOODqOOCpuOCsw0KK+ODn+OCrSzjg4jjgq3jgrMNCivjgq/jg57jgq0s44Oe44K144KqDQor44K/44Ok44OeLOODhuODhOOCqg0KK+OCquOCquODr+OCrSzjgq3jg4/jg4ENCivjg5/jg6fjgqbjg4njgqYs44Oe44K144OIDQor44Kr44OI44KmLOODkuODreODqOOCtw0KK+ODkOODkCzjg5/jgq3jgqoNCivjgqvjg43jgrMs44OP44Or44OS44KzDQor44Kz44Kw44OsLOODkuODreOCouOCrQ0KK+OCv+OCseODgCzjg6jjgrfjg47jg6oNCivjgqTjg4Hjg6Djg6ks44Oe44Oi44OrDQor44Kk44OI44KmLOODjuODnOODqw0KK+OCpuOCqOODj+ODnizjg5/jg47jg6sNCivjg4rjgqvjgqQs44Kz44Km44K4DQor44Kz44OQ44Ok44K3LOODnuOCteOCqg0KK+OCt+ODnuODgCzjg57jg4rjgqoNCivjg6HjgrDjg60s44K344Ky44OrDQor44Ok44Oe44OkLOODkuODreOCtw0KK+ODleOCuOOCvyzjg5/jg4TjgrANCivjg57jg4jjg5As44OB44OS44OtDQor44Kk44OI44KmLOODouODiOOCq+OCug0KK+ODiuOCq+OCpCzjgrfjgrrjgqoNCivjgqrjgqvjg4As44Oe44K144OS44OIDQor44OO44Oi44OILOODiOOCt+OCrQ0KK+ODiuOCrOOCt+ODnizjg6jjgqbjgrgNCivjg6jjg43jgqvjg68s44K/44Oi44OEDQor44Ov44K/44OK44OZLOODiOOCquODqw0KK+ODoOODqeODnuODhCzjg4jjg6Ljg4HjgqsNCivjgq3jgr/jg4ss44Om44Km44Kk44OB44OtDQor44Of44Kr44OfLOODkuODreOCtw0KK+OCouODgOODgSzjg5/jg4TjgqoNCivjgqTjg47jgqbjgqgs44Oe44K144Ki44KtDQor44Kq44Kr44OALOOCv+OCq+OCouOCrQ0KK+OCq+ODr+OCt+ODnizjg4bjg4TjgqoNCivjgrvjgq0s44Ki44Kt44OpDQor44K/44Kr44OP44K3LOODqOOCt+OCuA0KK+ODr+OCv+ODiuODmSzjg57jgrXjg6sNCivjgq/jg6rjg4/jg6ks44OB44OP44OrDQor44Ov44K/44OK44OZLOOCseOCpOOCueOCsQ0KK+ODleOCuOOCq+OCvyzjg5/jg4TjgqoNCivjg6jjgrfjg4gs44OO44Oq44KqDQor44Kr44Ov44K7LOOCquOCteODoA0KK+OCv+ODiuOCqyzjg57jgrPjg4gNCivjgqTjg57jgqQs44Kx44Oz44K4DQor44Kz44Og44OtLOODpuOCreODiOOCtw0KK+ODnuOCqOODgCzjgqjjgqTjgrQNCivjgrPjgqTjgrEs44Kq44K144OgDQor44Ov44K/44OK44OZLOODn+ODgeOCouOCrQ0KK+OCs+ODs+ODiSzjg5LjgrXjg4jjgrcNCivjgqTjgrfjgqQs44OS44K144OkDQor44Of44K344OeLOOCv+OCq+OCtw0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqvjgroNCivjg6Tjg57jgrfjgr8s44Kx44Oz44K4DQor44K/44OK44KrLOODquODp+OCpuOCvuOCpg0KK+ODpOODnuODgCzjg57jgrXjg4jjgrcNCivjgqvjg5/jg6Qs44Of44OB44Ok44K5DQor44Ok44Oe44Oi44OILOODquOCreOCqg0KK+OCt+OCquOCtuOCrSzjg4jjgqrjg6sNCivjg4rjgqvjg6Djg6ks44OB44Kr44K3DQor44K/44Kx44Oi44OILOOCteODgeOCqg0KK+ODgOOCseODpOODnizjg5Ljg63jg6bjgq0NCivjgqLjg6njgqvjg68s44K844Oz44K4DQor44Oo44Kz44K/LOODnuOCteODpuOCrQ0KK+ODiuOCq+ODoOODqSzjgqvjgrrjg5LjgrMNCivjgqLjg6njgqvjg68s44OI44K344KqDQor44Kq44Kq44Of44OBLOODnuOCs+ODiA0KK+ODnuODhOOCrSzjgqjjgqTjgq0NCivjgq/jgrfjg5Pjgq0s44K544Kx44OS44OHDQor44OL44OD44K/LOODhuODq+ODkuOCsw0KK+ODhOODnOOCpuODgSzjg5/jgq3jgqoNCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44K/44Kx44Og44OpLOODiOOCt+ODkuODrQ0KK+OCv+ODiuODmSzjgqvjgrrjgqoNCivjg57jgqjjg4As44Oi44OI44Kv44OLDQor44K544Ks44OP44OpLOODhuODhOOCqg0KK+OCq+ODjeOCsyzjgrfjg6fjgqbjgrgNCivjg6Tjg57jgqbjg4Es44Oe44K144OS44KzDQor44Kr44Of44K244OvLOODkuODreODleODnw0KK+OCs+OCrCzjg4jjgq/jg5Ljg60NCivjg4Tjg6vjgrXjgq0s44K544OK44KqDQor44OS44Ks44K3LOODleODn+ODkuODrQ0KK+OCpOOCt+ODgCzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjgqzjg68s44OP44Or44KqDQor44OG44Op44K344OeLOODkuOCteODj+ODqw0KK+OCreOCv+ODoOODqSzjgrfjg6Xjg7PjgrgNCivjg4/jg4Pjg4jjg6os44OS44OH44OfDQor44K144K144KtLOODqOOCt+ODkuODrQ0KK+ODm+OCqyzjgrHjg7Pjgr/jg63jgqYNCivjg47jg6Djg6ks44OG44Or44KqDQor44OP44Ok44OOLOOCq+OCuuOCqg0KK+OCouODs+OCtuOCpCzjgrfjg7PjgqTjg4ENCivjg5Xjg6vjg44s44Kt44Oo44OS44OHDQor44OL44K344Ov44KtLOOCr+ODiw0KK+ODj+OCu+OCrOODryzjg57jgrXjgqoNCivjgqTjg6/jgr8s44K/44Kr44Om44KtDQor44OI44OALOODkuODreOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjg4gNCivjg5Xjg6vjgqTjgrcs44Oe44K544OfDQor44OK44Kr44Og44OpLOODleOCuOOCqg0KK+ODiuOCq+OCrOODryzjg5Ljg4fjgqoNCivjg4rjgqvjg54s44K/44OE44OkDQor44K544Ks44Ov44OpLOODnuOCueOCsw0KK+ODnuODhOODouODiCzjg4Tjg4jjg6ANCivjg4/jgrfjg6Ljg4gs44Oo44Km44K/44Ot44KmDQor44OK44Kr44OELOODpOOCueOCq+OCug0KK+OCteODiOOCpuODqizjgqLjgq3jg6kNCivjgqTjgq3jgr8s44Om44Kt44OO44OWDQor44Kt44Kv44OBLOOCv+OCseOCtw0KK+OCueODiCzjg57jgrXjg58NCivjgrfjg5Djgr8s44OS44K144OO44OqDQor44OK44Kk44OI44KmLOOCs+OCpuOCuA0KK+ODouODqizjgqvjgrrjgrMNCivjgqTjg4jjgqQs44Ki44Kt44OpDQor44Kk44OI44KmLOOCseODs+OCuA0KK+ODnuODhOOCtuOCrSzjg57jgrXjg47jg6oNCivjgqbjgqjjg44s44Of44OE44OO44OqDQor44Kr44K/44Kq44KrLOOCreODqOOCq+OCug0KK+ODkOODs+ODieOCpizjgr/jg4TjgqoNCivjgrXjgqTjg4jjgqYs44K444Ol44Oz44K4DQor44Kk44Ov44KkLOOCt+OCsuODqw0KK+OCt+ODouODpOODnizjg5/jg47jg6sNCivjgqLjgqvjg57jg6ss44Kq44K144OgDQor44K044OI44KmLOODj+OCuOODoQ0KK+ODnuODhOODgCzjgrnjgrnjg6ANCivjg43jgqzjg58s44OI44K344KqDQor44Ok44Oe44K344K/LOODnuOCteOCquODnw0KK+ODqOODjeODpOODnizjg6rjg6Xjgqbjg5jjgqQNCivjgqTjgrfjg6Tjg54s44OS44K144KqDQor44Ki44OZ44Kr44OvLOODrOOCpOOCuA0KK+OCpOODnuODoOODqSzjgrfjgrLjg6sNCivjgqTjg6/jg4rjgqws44Of44OO44OrDQor44Km44Ko44OALOOCr+ODi+ODkuOCsw0KK+ODleOCuOOCq+ODryzjg6bjgq3jgqoNCivjgr/jg6Djg6ks44Oo44K344OS44K1DQor44Kr44K344KkLOODnuOCteODiA0KK+ODqOODjeODgCzjg57jgrXjgqoNCivjg6jjgrPjg4Qs44Ki44Kt44KqDQor44Ki44K144KqLOODpuOCpuOCuA0KK+OCv+ODiuOCqyzjgrHjgqTjgrgNCivjgr/jg4rjgqss44K/44OA44OfDQor44Ok44K344KtLOODpOOCueODpuOCrQ0KK+OCq+OCpOOCrOOCpCzjgr/jgrHjgrcNCivjgr3jgqzjg5ks44Om44Kt44KqDQor44OV44Or44Kr44OvLOOCseODs+OCuA0KK+OCq+ODr+OCpuODgSzjg6bjgqbjgqTjg4ENCivjg5XjgrjjgqQs44OO44Oq44Om44KtDQor44Kk44Kx44OO44OkLOOCv+ODhOOCqg0KK+OCquODgSzjg47jg6rjgqoNCivjg4rjgqvjg6Ljg4gs44OK44Kq44OP44OrDQor44Ov44Kr44OQ44Ok44K3LOODj+ODrOOCqg0KK+OCouODqeOCrSzjg5Xjg5/jgqoNCivjg6Tjg5ks44OS44OH44KqDQor44K/44Kr44OP44K3LOODpOOCueODkuODrQ0KK+OCt+ODkOODjizjg5/jg4TjgqoNCivjgr/jgqzjgrfjg6ks44OI44K344KqDQor44K544Of44K/LOODhuODhOODpA0KK+OCteODiOOCpizjgrPjgqbjgrjjg63jgqYNCivjg4Hjg44s44K344Ky44OIDQor44Ok44Oe44OALOODpOOCueODkuODrQ0KK+OCpOOCrOODqeOCtyzjg47jg6rjg6jjgrcNCivjgqTjgrHjgqzjg58s44Kx44Oz44Kk44OBDQor44OV44OK44OALOOCv+OCq+ODpuOCrQ0KK+OCpOODjuOCpuOCqCzjgr/jgqvjg6jjgrcNCivjg4vjgrfjg6Tjg54s44OS44Ot44K3DQor44Kk44K344OP44OpLOODiOOCt+OCv+OCqw0KK+OCueOCuuOCrSzjgr/jgqTjg4ENCivjgrPjg6Ljg6rjg6Qs44Kr44K644KqDQor44OB44Ol44Km44K0LOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjgqrjgrXjg6ANCivjg5/jg6Tjg6Ljg4gs44OE44OI44OgDQor44OK44Kr44K/LOOCv+OCq+ODpuOCrQ0KK+OCpOODquOCv+ODiyzjgr/jgq/jgqoNCivjgqrjgqzjg68s44Om44Kt44OBDQor44Kq44ONLOOCseODs+OCuA0KK+OCs+ODnuODhCzjg57jgrXjgqLjgq0NCivjg5/jg47jg68s44OS44Ot44K3DQor44OV44K444Kr44OvLOODiuOCquODiA0KK+OCq+ODr+OCsOODgSzjg6Tjgrnjg5Ljg60NCivjg4Hjg5As44OI44K344OS44KzDQor44OK44Kr44OL44K3LOOCteODgOOCqg0KK+OCteOCr+ODnizjg5Ljg4jjgrcNCivjgr/jgrHjg57jgrUs44OI44K344Om44KtDQor44K744KtLOODqOOCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Xjg5/jgqoNCivjg5Xjgrjjg6Ljg4gs44Ok44K544KqDQor44Kq44Kw44OqLOOCv+ODhOOCuA0KK+OCpOOCt+ODkOOCtyzjgq3jg6jjgrcNCivjgqLjgrbjg58s44K344Ky44OrDQor44Kq44Ks44K144Ov44OpLOODiuOCquOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Ljg63jgrcNCivjgr/jg4rjg5ks44Kx44Oz44K4DQor44Oi44Oq44Ok44OeLOOCt+ODpeOCpuODmOOCpA0KK+OCreOCv+OCtuODryzjg5Ljg4fjg4jjgrcNCivjgqvjg4rjgrbjg68s44Kr44OE44KqDQor44OP44Op44OALOODnuOCteODiA0KK+OCquOCr+ODpOODnizjgrXjg4jjgrcNCivjgrfjg5/jgros44K744Kk44K4DQor44Kk44OO44Oe44K/LOODpuOCreOCqg0KK+ODleODq+OCteODryzjgrvjgqTjgq0NCivjgr/jgrHjgqbjg4Es44K344Ot44KmDQor44Kq44Kq44OOLOODhOODiOODoA0KK+ODouODreOCquOCqyzjgrHjg7PjgrgNCivjgrfjg47jgrbjgq0s44OV44Of44Ki44KtDQor44OO44Kw44OBLOOCt+OCsuOCouOCrQ0KK+OCt+ODnuODgCzjgrPjgqbjgrgNCivjgqvjg6/jgrXjgq0s44Om44K/44KrDQor44Kq44Kq44Kr44OvLOODnuOCs+ODiA0KK+OCteODoeOCt+ODnizjg57jgrXjg5Ljg60NCivjg5vjgr3jgrjjg54s44Kr44K644OS44KzDQor44Ov44K/44OK44OZLOODiOODn+OCqg0KK+OCq+ODr+ODiuODnyzjg57jgrXjgqLjgq0NCivjgq/jgrXjg44s44Kx44Kk44K144KvDQor44OE44OB44K/LOODiOODouOCouOCrQ0KK+OCquOCquODj+OCtyzjgrPjgqbjgrgNCivjg47jg4As44Of44Kt44KqDQor44Ov44K/44OK44OZLOODkuOCteOCqg0KK+ODqOOCt+OCv+OCsSzjg6Tjgrnjg5Ljg60NCivjg5Xjgq/jgrfjg54s44Ki44Kt44OpDQor44Kk44Ov44OkLOOCv+OCq+OCqg0KK+OCteOCq+ODouODiCzjg6Ljg4jjg4/jg6sNCivjgq/jg5zjgr8s44K344On44Km44K4DQor44Kk44K944Ok44OeLOOCs+OCpuOCpOODgQ0KK+OCquOCquODjizjg5/jg4TjgqLjgq0NCivjgqLjg5ks44K/44OE44KqDQor44Kq44OA44Ov44OpLOODn+ODgeOCqg0KK+OCreOCpuODgSzjgrHjg7PjgrgNCivjgqTjgrfjgqvjg68s44OI44K344OV44OfDQor44Oo44K344OALOOCv+ODhOOCqg0KK+ODgeODo+ODkOOCv+OCsSzjg57jgrXjg5Xjg58NCivjgrXjgqvjgqQs44Oo44K344KqDQor44Kq44Kq44K/LOODqOOCpuOCuA0KK+ODiuOCq+ODjizjg57jgrXjg58NCivjg4/jg4As44K/44Kr44K3DQor44OK44Kr44Ok44OeLOOCuOODpeODs+OCuA0KK+OCteOCq+OCsOODgSzjgrHjg7PjgrgNCivjg4rjgqzjgrfjg54s44Ok44K544KqDQor44K144Ks44OpLOODiOOCt+ODkuODrQ0KK+OCq+ODr+ODjizjgr/jg4Djg6jjgrcNCivjgqvjg43jgrMs44Kk44K144KqDQor44OK44Kr44OALOODn+ODhOODqw0KK+OCouODnuODjizjgr/jgqvjgrcNCivjg6Tjgrbjgq0s44K344Ol44Km44K4DQor44OS44Op44Ku44OOLOOCq+OCuuOCqg0KK+OCv+ODkOOCvyzjgqTjg4HjgqoNCivjgq/jg4vjg6bjgq0s44Ok44K544OS44OtDQor44Kq44Kv44Km44OBLOODkuODreODjuODqg0KK+OCueOCruODouODiCzjg5Ljg4fjgrgNCivjg4rjgqvjg6Djg6ks44Oq44On44Km44K4DQor44K544Ku44K144KtLOODr+OCv+ODqw0KK+ODpOODnuOCt+OCvyzjgr/jgqvjg4bjg6sNCivjg47jg6Djg6ks44Kr44K644OfDQor44K344Oe44OALOODn+ODhOODqw0KK+ODleOCr+ODgCzjgqvjgrrjg47jg6oNCivjgrXjg4jjgqYs44OS44OH44KqDQor44Kq44Kv44Oc44OqLOODkuODreOCtw0KK+ODqOOCs+OCq+ODryzjg57jgrXjg58NCivjg4fjg7Pjg4As44Kt44Oo44K3DQor44OV44Kv44OK44KsLOOCueOCueODoA0KK+OCv+OCq+OCt+ODnizjg5/jg4Tjgq4NCivjgqvjg4jjgqYs44OG44OE44KqDQor44Kk44K344Kw44OtLOOCouOCreODjuODqg0KK+OCpOOCseODmSzjgq/jg4vjg6bjgq0NCivjgqrjgqrjg4Tjgqss44K544K544OgDQor44K344Of44K6LOODqOOCt+ODjuODqg0KK+OCueOCuuOCrSzjgr/jgqvjgqoNCivjg4Tjg6Qs44Oe44Kz44OIDQor44Km44OB44OALOODnuOCteOCv+OCqw0KK+OCquODgSzjgrHjg7PjgqTjg4ENCivjgqLjg6rjgqws44K/44Kx44K3DQor44OK44Kr44K344OeLOOCq+ODhOOCuA0KK+ODnuOCteOCrSzjg57jg4Tjg58NCivjg4rjgqvjgrfjg54s44Oe44K144KqDQor44Ki44K144OP44OpLOODnuOCteODqOOCtw0KK+OCtOODiOOCpizjg5LjgrXjgqoNCivjgqbjgqjjg57jg4Qs44OS44Ot44K3DQor44K144Kt44Oi44OqLOODqOOCt+OCouOCrQ0KK+ODqOOCt+ODgCzjg4Tjg4jjg6ANCivjg5Xjgrjjgr8s44Ok44K544Oo44K3DQor44Ok44Ku44K344K/LOODiOOCt+OCqg0KK+ODoOODreODleOCtyzjg57jgrXjg5Ljg60NCivjgqvjg6Hjg4As44Ko44Kk44Kk44OBDQor44Kk44Kr44OvLOODkuODreOCv+ODgA0KK+ODpOODnuOCtuOCrSzjg5Ljg63jgrcNCivjg4Tjg6vjg4/jgrcs44Oe44Kz44OIDQor44Of44OO44K344OeLOODjuODquOCqg0KK+OCreOCt+ODouODiCzjg57jgrPjg4gNCivjgr/jgrHjgrfjgr8s44Oe44K144K3DQor44OK44Kr44K/LOOCt+ODs+OCpOODgQ0KK+OCqOODs+ODiSzjgq3jg6jjgrcNCivjg6Ljg6rjg6Qs44Kx44Kk44Oh44KkDQor44Kv44Oc44K/LOOCueODn+OCqg0KK+ODiuOCquODj+ODqSzjg5Ljg63jgrcNCivjgq/jgrIs44Kx44Oz44K4DQor44Kr44K144OOLOODnuOCteODj+ODqw0KK+OCpOOCpOODoOODqSzjgr/jgqvjgrcNCivjgqrjgqrjgr8s44Oe44K144Om44KtDQor44K/44Kx44KzLOODkuODreODleODnw0KK+ODoOODqeOCs+OCtyzjg4jjgrfjgqoNCivjg6jjgrfjg4As44Kx44Oz44K4DQor44Ki44K144OOLOODqOOCt+OCouOCrQ0KK+ODqOOCt+ODgCzjg57jgrXjg4jjgrcNCivjg4/jg6Tjgrcs44OG44OE44Ot44KmDQor44K544K644KtLOOCv+ODhOODpA0KK+OCquODgCzjg6rjg6fjgqbjgqTjg4ENCivjg6Tjg57jgqbjg4Es44Kt44Oo44K3DQor44Kr44Ov44Kr44OfLOODhOODjeOCqg0KK+OCpuOCueODgCzjgrPjgqbjgrgNCivjgrXjg4jjgqYs44K344Oz44Kk44OBDQor44Kv44Op44K344OeLOOCt+ODs+OCuA0KK+ODnuOCuyzjg47jg5zjg6sNCivjgrPjg7Pjg44s44OS44Ot44K3DQor44Oe44OE44K244OvLOOCouOCreODqQ0KK+OCt+ODnuODgCzjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Oo44K344OO44OqDQor44Kq44Kq44Kv44OcLOOCseODs+OCuA0KK+OCquOCsOODqSzjgqvjgrrjg47jg6oNCivjgrXjgq/jg54s44Ko44Kk44K4DQor44OO44Kw44OBLOODkuODreODjuODqg0KK+ODkuODiuOCvyzjgrPjgqbjgqTjg4ENCivjg5XjgrjjgqQs44K344Ol44Oz44Kk44OBDQor44K544Ku44Oi44OILOODnuOCteOCtw0KK+ODhOOCq+ODj+ODqSzjgrTjg63jgqYNCivjg5/jg4Tjg4rjgqws44Oe44K144Ki44KtDQor44OK44Kr44Og44OpLOODnuOCteODqOOCtw0KK+ODpOOCuOODnizjgr/jgrHjgrcNCivjgqvjg5/jgr8s44K544K544OgDQor44OS44KsLOOCuOODpeODs+OCrQ0KK+ODn+ODiuOCrOODryzjg6jjgrfjg4bjg6sNCivjg4jjg58s44K/44Kr44KqDQor44K144Kr44Kt44OQ44OpLOODkuODreOCtw0KK+OCq+OCr+OCvyzjgqLjgq3jg5Ljg60NCivjg4Tjg4Hjg6Qs44OS44OH44Om44KtDQor44Og44Op44K/LOOCseODsw0KK+OCv+ODiuODmSzjgqLjgq3jg6kNCivjgrfjg6Ljg4As44Oo44K344OO44OqDQor44OE44Kr44Oi44OILOOCr+ODqeOCuA0KK+ODj+ODiuODj+OCvyzjg5Ljg4fjgqoNCivjgqvjg7Pjg4As44K344Oz44K4DQor44Kr44Ov44OALOODpuOCreOCqg0KK+ODqOOCt+OCpCzjg4Tjg43jgqoNCivjgq/jg6njg6Qs44Kt44OY44KkDQor44OG44Op44K344OeLOODkuODh+ODpuOCrQ0KK+OCreOCv+OCrOODryzjg6jjgrfjgqoNCivjgqTjg4cs44OI44K344OS44OtDQor44OE44OrLOODkuOCteOCqg0KK+OCpuODhOODjuODn+ODpCzjg4jjgrfjgqvjgroNCivjg4rjgqvjgrbjg68s44Oe44K144OS44OIDQor44OS44OALOODqOOCt+ODjuODlg0KK+ODm+OCveOCq+ODryzjg5Ljg4fjgrgNCivjg4HjgrDjgrUs44K744Kk44K4DQor44K944Km44OkLOODkuODreODnw0KK+ODpOODnuOCsOODgSzjgrPjgqbjg5jjgqQNCivjgrXjgqvjg4Ys44OV44Of44KqDQor44Ki44Ov44K/LOOCt+OCsuODqw0KK+ODr+OCq+ODkOODpOOCtyzjgqvjgrrjg5LjgrMNCivjgqjjg7Pjgrjjg6Xjgqbjgrgs44Oe44Kz44OIDQor44OO44Kw44OBLOOCs+OCpuOCpOODgQ0KK+OCq+ODr+ODoOODqSzjg57jgrXjgqoNCivjg6Ljg6rjg6Ljg4gs44Of44Kt44KqDQor44Oo44ON44OP44OKLOOCv+ODgOODkuODrQ0KK+OCuOODgCzjgqLjgq3jgqoNCivjgqbjgqjjg4As44Kx44Oz44K4DQor44K344OO44OP44OpLOOCpOOCteODoA0KK+OCv+OCq+ODpOODnizjg57jgrXjgqvjgroNCivjg6Tjg57jg6Djg60s44Oe44K144OO44OWDQor44Ov44KtLOOCuOODpeODs+OCsw0KK+OCouODnuODjizjg57jg4TjgqoNCivjg5vjgr3jgqvjg68s44OI44K344KqDQor44OI44Km44K044KmLOODkuODreODkuOCtQ0KK+ODiuOCqyzjg4jjg5/jgqoNCivjg47jg4As44K/44Kr44OO44OqDQor44Ok44Oe44K344K/LOODgeOCqOOCsw0KK+ODiuOCq+OCuOODnizjg5Ljg63jgrcNCivjg4rjgqzjgqrjgqss44Kz44Km44K4DQor44K344OW44OkLOODqOOCt+OCq+OCug0KK+OCu+ODquOCtuODryzjgrPjgqbjgr7jgqYNCivjg5Xjgrjjg6Ljg6os44K744Kk44K4DQor44OV44Kv44OALOOCv+ODhOODkuODrQ0KK+ODleOCuOOCvyzjgr/jgqvjg5LjgrUNCivjg6Tjg57jgrgs44OS44OH44Ki44KtDQor44Kz44OQ44Ok44K3LOOCpOOCuuODnw0KK+OCs+ODkOODpOOCtyzjgq3jg6jjgrcNCivjgrfjgrfjgq/jg6ks44Oo44K344Ki44KtDQor44Kz44Kw44OsLOODnuOCteODj+ODqw0KK+ODouODqizjg6jjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44OO44Oq44K/44KrDQor44Kk44Kk44K444OeLOODjuODquODpuOCrQ0KK+OCreOCv+OCrOODryzjg6jjgrfjg4bjg6sNCivjgr/jg6Djg6ks44K/44OA44Oo44K3DQor44OK44Ks44K344OeLOODpOOCueOCqA0KK+OCqOODjuOCrSzjgqTjgrrjg58NCivjgrXjg4jjgqYs44Oo44K344OO44OWDQor44Oe44OE44Oi44OILOODqOOCt+OCqg0KK+OCpuOCqOODgCzjg5Ljg63jgqoNCivjg5/jgrrjgr/jg4ss44Ki44Kt44OpDQor44Ki44Kr44K3LOOCv+ODhOOCqg0KK+ODiuOCq+ODouODiCzjgqrjgrXjg6ANCivjg4rjgqvjg6Tjg54s44OS44Ot44OO44OWDQor44OV44K444KkLOODpOOCueODkuODrQ0KK+ODiuOCq+ODpOODnizjgrfjg6fjgqbjgqTjg4ENCivjg6jjg43jg5/jg4Qs44OG44OE44KqDQor44K/44Kr44K7LOODiOOCt+OCqg0KK+ODr+OCv+ODiuODmSzjg5Ljg4jjgrcNCivjg5Xjgqvjgrbjg68s44OI44K344OO44OWDQor44Kr44Ky44Km44OpLOODnuOCteODnw0KK+OCt+ODs+ODieOCpizjgqvjg4TjgrgNCivjgrfjg5/jgros44K/44OE44OfDQor44K144Kr44K344K/LOODqOOCt+ODjg0KK+ODn+ODpOODoOODqSzjg4jjgqrjg6sNCivjgr/jg4rjgqss44Oe44K144OI44K3DQor44K/44Kr44Kk44K3LOOCueOCueODoA0KK+OCpOOCt+OCrOOCrSzjgrHjg7PjgrgNCivjgr/jgqvjg4As44Oo44K344Kr44K6DQor44K/44OG44Kk44K3LOOCq+OCuuODiuOCqw0KK+OCteOCq+OCvyzjg5Ljg4fjgqoNCivjg6jjgrPjg4/jgr8s44OI44K344OS44KzDQor44Kv44OkLOOCv+ODouODhA0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg4cNCivjgq3jgr/jg4As44OP44Or44KqDQor44Oo44K344OALOOCt+ODs+OCuOODreOCpg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg58NCivjg4rjg6rjgr8s44Of44OE44Oo44K3DQor44Kk44OM44KkLOODnuOCteODqOOCtw0KK+ODpOOCueOCq+ODryzjg5Xjg5/jgqoNCivjg47jgrDjg4Es44K544OK44KqDQor44K344On44Km44OALOOCpOODgeOCvuOCpg0KK+ODpOODnuODgCzjg4bjg6vjg5LjgrUNCivjg6/jgq/jg4As44OE44OI44OgDQor44Ki44OZLOOCteODgOODkuODrQ0KK+OCv+OCseOCq+ODryzjgr/jgqvjgqoNCivjgrXjg4jjgqYs44OS44OH44KtDQor44OP44OK44Kq44KrLOODqOOCt+OCqg0KK+OCquOCquODjizjg5Ljg4fjgqoNCivjgr/jg4rjgqss44Kx44Oz44K+44KmDQor44OE44OO44OALOOCouOCreOCqg0KK+ODiuODnuOCqCzjgrHjg7PjgrgNCivjgr/jgqvjg4/jgrcs44K/44OA44OS44K1DQor44OK44Kr44K444OeLOOCt+OCsuODqw0KK+ODiuOCq+ODoOODqSzjgq3jg5/jgrMNCivjgqbjg6rjgqYs44OP44Or44K/44KxDQor44OV44K444Kk44OvLOODleODn+ODkuOCsw0KK+OCteOCteOCrSzjgr/jgqvjgrcNCivjgq3jg6Djg6ks44Om44K/44KrDQor44K/44Kr44KuLOOCt+ODpeOCpuOCpOODgQ0KK+OCq+OCv+ODpOODnizjg5Ljg63jg4gNCivjgqTjgrDjg4Es44Kq44K144OgDQor44Ki44OZLOODhuODq+OCqg0KK+OCueOCuuOCrSzjgr/jgqvjg5Ljg60NCivjg5Ljg6ks44Kr44K644OS44OtDQor44OK44K044K3LOODkuODh+OCouOCrQ0KK+OCouODgOODgSzjgrHjg7PjgrgNCivjg6Djg6njg6Tjg54s44Oe44Oi44OrDQor44Kv44OL44Kr44K/LOOCueOCueODoA0KK+ODnuODhOOCpCzjg57jgrPjg4gNCivjgrPjgqTjg4cs44Of44OE44KqDQor44OS44Ot44K/LOODkuODreODpOOCuQ0KK+ODiOODn+ODiuOCqyzjg6jjgrfjgqoNCivjg6/jgq3jgr8s44OV44K444KqDQor44Km44Oh44Og44OpLOOCt+ODp+OCpuOCuA0KK+ODleOCsSzjg6jjgqbjgqTjg4ENCivjgqbjgqjjg57jg4Qs44Kr44OE44OfDQor44Oe44OE44K244KtLOODpOOCueODkuODrQ0KK+ODiuOCq+ODjizjg4Tjg6Ljg6sNCivjgrPjg4Djgqss44K/44Kx44KqDQor44OS44Ot44K/44OLLOOCseODs+OCuA0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgqTjg4ENCivjgrXjg44s44K444Ol44Oz44Kk44OB44OtDQor44K344Of44K6LOODqOOCt+OCq+OCug0KK+OCq+ODs+OCtuOCrSzjg4bjg6vjg6jjgrcNCivjgqrjgqrjgrXjgq8s44Kr44K644KqDQor44Ov44K344OALOODnuOCteODkuODhw0KK+OCr+ODi+ODouODiCzjg6Tjgrnjg57jgrUNCivjgrfjg63jgqvjg68s44Oe44Kz44OIDQor44Kr44Ov44OP44OpLOOCseODs+OCpOODgQ0KK+OCquOCqyzjg4Tjg43jgqvjgroNCivjgrPjg6Ljg6os44Oo44K344Ki44KtDQor44OP44Ok44K3LOOCt+OCsuOCouOCrQ0KK+OCq+ODjeOCsyzjgqTjgq/jgqoNCivjgqvjg4njgqTjgrEs44OK44Kq44Of44OBDQor44Kq44Kr44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+OCquOCq+ODoOODrSzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgr/jg5bjg4Es44OK44Kq44KzDQor44Ok44Oe44Oi44OILOOCouOCreODjuODqg0KK+OCquOCquOCtSzjgr/jgqvjgrcNCivjgqTjg6rjgqgs44K344Oz44Kk44OB44Ot44KmDQor44K/44Kr44OPLOOCq+OCuuODkuOCsw0KK+OCv+OCpOODqSzjg4/jg6vjgqoNCivjg5/jg4rjg58s44Ok44K544Oe44K1DQor44Kk44Kx44OALOOCt+OCsuODqw0KK+OCouOCquOCrSzjg5Xjg5/jgqoNCivjg6Tjg57jgqbjg4Es44K4DQor44Oo44K344OP44OpLOODnuOCteODleODnw0KK+OCteOCteOCrSzjgqLjgq3jg5Ljg4gNCivjg5/jgrrjgr/jg4ss44OI44K344Kk44OBDQor44OS44Op44OOLOOCq+ODhOODpuOCrQ0KK+ODiuOCrOOCvyzjgqLjgq3jg6kNCivjgqvjgr/jg6Tjg54s44Kx44KkDQor44Kq44OALOODquODp+OCpuOCuA0KK+OCqOODjuODouODiCzjg6bjgqbjgq0NCivjgr/jgrHjg4rjgqss44K144Kr44KoDQor44Oe44OE44K244KtLOODkuODreOCtw0KK+ODnuODhOODkOODqSzjgrPjgqbjgrgNCivjg6Tjg57jgrfjgr8s44K744OE44KzDQor44Oh44Kw44OtLOODkuODreODqOOCtw0KK+OCquOCtuOCrSzjg5Ljg4fjg6bjgq0NCivjgqrjgqrjgqzjg58s44Kz44Km44Kk44OBDQor44Kq44Oe44KoLOOCt+ODs+OCpOODgQ0KK+OCreODgCzjgqvjg7PjgrgNCivjgqbjgqjjg44s44Kq44K144OgDQor44Kq44Kr44OALOOCq+ODhOODpuOCrQ0KK+OCq+ODiuOCteOCrSzjg4jjg5/jgqoNCivjg6Tjgqvjg5ks44OS44Ot44Om44KtDQor44OK44Og44OpLOODpuODn+OCsw0KK+OCpOOCpOOCuOODnizjg6Ljg4jjgqLjgq0NCivjgrXjgrXjgq0s44OO44OW44Om44KtDQor44Oi44OB44K644KtLOODqOOCt+ODjuODlg0KK+ODluODs+ODpCzjg4jjgrfjgqoNCivjgqrjgqvjg44s44Ok44K544KqDQor44K/44Kx44Km44OBLOOCteODiOOCtw0KK+OCpuOCqOODjizjg4jjgqrjg6sNCivjg5Xjgrjjg6Ljg4gs44OS44OH44OIDQor44Kr44Ov44Kw44OBLOODn+ODhOODj+ODqw0KK+OCv+OCreODouODiCzjg57jgrXjg47jg6oNCivjgqvjgr/jgqrjgqss44K344Ky44OrDQor44Kv44K144Kr44OvLOODiuOCquOCrQ0KK+OCouOCteOCpCzjg5Ljg4jjgrcNCivjg6Ljg6os44Ko44Kk44Kk44OBDQor44Kv44OcLOODqOOCt+OCr+ODiw0KK+OCouODs+ODieOCpizjgqTjg4Hjg63jgqYNCivjgqbjg6njg6Tjg54s44Kq44K144OgDQor44Kv44Oq44K/LOODqOOCt+OCqg0KK+OCpOODjuOCpuOCqCzjgr/jgrHjgrcNCivjgqvjg43jgqvjg68s44OS44OH44KqDQor44Km44Ko44Oi44OILOODquODp+OCpuOCvuOCpg0KK+ODiuOCq+OCqizjgrHjg7PjgqTjg4ENCivjgqrjgqvjg6Ljg4gs44OP44Or44KqDQor44OL44K344Og44OpLOOCreODqOOCtw0KK+ODpOODgCzjgqvjgrrjgqrjg58NCivjgq3jg4ks44Kq44K144OgDQor44Kq44Kr44OQ44Ok44K3LOODn+ODhOODkuODrQ0KK+OCq+ODr+OCt+ODnizjgrjjg6Xjg7Pjgr7jgqYNCivjg4/jgrfjgq0s44K/44Kr44Of44OBDQor44Of44Ok44Oi44OILOOCpOODgeODreOCpg0KK+ODiuOCq+OCqizjgr/jgqvjg5LjgrMNCivjg57jg4Tjgqrjgqss44Om44Kt44KqDQor44OS44OT44OOLOODkuODreODnw0KK+ODi+OCt+OCq+ODryzjgqvjgqrjg6sNCivjgqvjg5bjgr8s44Kx44Oz44K4DQor44Ov44K/44OK44OZLOOCreODqOOCtw0KK+ODpOODnuODjizjgrPjgqbjgqTjg4ENCivjgrXjgqTjg4jjgqYs44K344Ky44Of44OEDQor44K544K644KtLOODpuOCpuOCuA0KK+OCr+ODr+ODj+ODqSzjgrXjg4jjgrcNCivjg6Ljg6rjgr8s44OI44K344OS44OtDQor44OV44K444KkLOOCueODn+ODqOOCtw0KK+ODiuOCrOOCt+ODnizjg4Tjg43jg6bjgq0NCivjgqTjg4rjg6Djg6ks44Oe44K144OS44OtDQor44Kq44K244OvLOODkuODiOOCtw0KK+OCv+OCreODouODiCzjgq/jg4vjgqoNCivjg5/jg6Tjgrfjgr8s44OS44K144K3DQor44Oi44Km44OqLOODnuOCteODpuOCrQ0KK+OCpOODjuOCpuOCqCzjg5/jg4TjgqoNCivjg4rjgqzjg44s44Oi44OI44Ki44KtDQor44OP44Op44OILOODqOOCt+OCqg0KK+ODnuODn+ODpCzjg4jjgrfjgqvjgroNCivjg5Ljgqzjgrfjg5Djgr8s44OS44OH44KqDQor44OL44K344K/44OLLOOCteODiOOCtw0KK+OCv+OCq+OCryzjg47jg5bjg6bjgq0NCivjg4/jg4rjg4As44Of44OO44OrDQor44Ki44K144OOLOODn+ODgeOCqg0KK+ODkOODkCzjg5Ljg63jgrcNCivjgqTjg4jjgqYs44K344Oz44Kt44OBDQor44Kk44Kk44OALOOCseODs+OCtw0KK+OCs+ODj+ODpOOCq+ODryzjgr/jgrHjg5LjgrMNCivjg5Xjgrjjg6/jg6ks44Kr44OE44OfDQor44K344Ol44Kv44OqLOODpOOCueODkuOCsw0KK+ODpuOCv+ODiyzjgrHjg7MNCivjg6Djg43jgqvjg68s44Kk44Kv44KzDQor44Kr44Oz44OOLOODnuOCteODkuODrQ0KK+ODi+ODiCzjgqvjg4Tjg58NCivjgr/jg6Djg6ks44Oo44K344Ki44KtDQor44OK44Kr44K344OeLOOCteODiOOCtw0KK+OCquOCquOCvyzjg4HjgqvjgrMNCivjgqTjg47jgqbjgqgs44Oo44K344KzDQor44Kv44Oe44Oe44OrLOOCseODs+OCuA0KK+OCv+ODiuOCqyzjgrfjgrLjg6sNCivjg57jgqjjg4As44Oe44K144Ki44KtDQor44Ki44OfLOODjuODluOCqg0KK+ODn+ODiuODiCzjgqLjgq3jg6kNCivjg4vjgrfjg4As44Kr44K644KqDQor44Kk44K344OP44OpLOOCteODluODreOCpg0KK+ODiuOCq+OCt+ODnizjg4jjgrfjgqoNCivjgqTjgq/jgr8s44Ok44K544OS44K1DQor44Kq44KtLOOCv+ODgOOCqg0KK+OCq+OCrOODryzjgrfjg6XjgqbjgqTjg4Hjg63jgqYNCivjg5Ljg6njgqvjg68s44OI44K344KqDQor44Ok44Oe44K244KtLOODiOOCt+ODjuODqg0KK+OCr+ODnuOCrOOCpCzjgrPjgqbjgrjjg63jgqYNCivjgr/jgrfjg60s44Of44OE44K344KyDQor44K144OOLOODkuODh+ODnuOCtQ0KK+ODn+ODieODquOCq+ODryzjg5Xjg5/jg5LjgrMNCivjg4rjgqvjg6Djg6ks44Oe44K144OO44OqDQor44Oo44K344OfLOODkuODreOCsw0KK+OCpOODiuODnyzjg5Ljg4fjg4gNCivjg6/jgr/jg4rjg5ks44Kt44Oo44K3DQor44Kz44KsLOODiOODouODkuODhw0KK+OCueOCrOODr+ODqSzjg6Tjgrnjg5Ljg60NCivjgr/jgrHjgqbjg4Es44Oo44Km44Kk44OBDQor44Ko44OALOODqOOCt+ODreOCpg0KK+OCouODs+ODieOCpizjg5Ljg63jgqoNCivjgr/jg6vjgqQs44Om44K/44KrDQor44K044OI44KmLOODkuODreOCtw0KK+OCt+ODouOCrOOCrSzjgrfjgrLjg6sNCivjg4rjgqzjgr8s44Om44Kt44KqDQor44Ob44K344Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCs+ODn+ODiuODnyzjg57jgrXjgqoNCivjgqvjgqws44Oo44KmDQor44OP44K844Kr44OvLOODjuODluOCqg0KK+ODgeODkCzjgrfjgrrjgqsNCivjgqbjg6njg44s44K144OI44K3DQor44Kz44Oz44OOLOODiOOCt+OCrQ0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg6jjgrcNCivjg6Ljg6Ljgrss44Om44Km44KzDQor44OE44KyLOOCuOODpeODs+OCuA0KK+ODpOOCueOCs+ODgSzjg6Tjgrnjgr/jgqsNCivjg5vjgr3jgrbjg68s44K344On44Km44Kk44OBDQor44K544Ku44Ok44OeLOOCq+ODhOODpuOCrQ0KK+OCouODmSzjgr/jgrHjg6bjgq0NCivjgr/jg4rjgqss44OO44OW44Om44KtDQor44K744Kk44KxLOODpOOCueODkuODrQ0KK+ODhOOCsizjg57jgrXjg47jg5YNCivjg6/jgqvjg5Djg6Tjgrcs44Ki44Kt44KqDQor44Kq44Kq44Kv44OcLOOCv+OCq+OCqg0KK+OCquOCq+ODmSzjg5Xjg5/jgqoNCivjgqTjg6/jgqQs44OS44K144KqDQor44K/44OK44KrLOODhuODq+ODpuOCrQ0KK+ODpOODnuODouODiCzjg5/jg4TjgqoNCivjgr/jgqvjg6Tjg54s44OK44Kq44KtDQor44K/44K444OeLOODkuODh+ODjuODqg0KK+OCq+OCuuOCt+ODrSzjg57jgrXjg4/jg6sNCivjgrPjgqTjg4cs44K/44Kr44K3DQor44Kr44OiLOOCv+ODhOODjuODqg0KK+OCreOCv+OCuOODnizjg6jjgrfjg6bjgq0NCivjg4/jg57jg44s44K344Ky44OrDQor44Kk44Kk44Ok44OeLOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCt+OCvyzjgrfjg6fjgqbjgqTjg4ENCivjgq3jgr8s44K344Ky44Om44KtDQor44Kk44K344K/44OLLOOCteODiOOCtw0KK+OCr+OCuOODoSzjgrXjg4DjgqoNCivjgq3jgrfjgqvjg68s44Kr44K644KqDQor44OK44Ks44OOLOODnuOCteODkuODrQ0KK+ODqOODoOODqSzjgr/jg4Djg47jg6oNCivjg4rjgqvjgrfjg54s44OI44K344Om44KtDQor44Oi44OqLOOCqOOCpOOCuA0KK+ODpOODnuOCuCzjg6jjgrfjgqvjgroNCivjgqrjgrzjgq0s44Oe44K144K/44KrDQor44Kk44OK44OALOODpOOCueOCtw0KK+ODj+ODpOOCuyzjgr/jgqvjgrcNCivjg5vjg7Pjg50s44K544K544OgDQor44Kq44Kq44OkLOOCq+ODs+OCuA0KK+OCreOCv+ODoOODqSzjgr/jgqvjgrcNCivjg4jjgrfjg7Ms44K144OI44OrDQor44K/44Kx44KkLOODpOOCueODleODnw0KK+OCquOCq+ODpOODnizjg47jg5bjgqoNCivjgqTjgrfjgrrjgqss44Kz44Km44K/44Ot44KmDQor44OP44K/LOODiOOCt+OCouOCrQ0KK+OCueOCrOODj+ODqSzjg6bjgqbjgrgNCivjgqTjg6/jg58s44Ok44K544KqDQor44Om44Oi44OILOODkuODh+OCqg0KK+OCreOCv+OCrOODryzjg6bjgr/jgqsNCivjgqTjg4/jg6ks44Om44Km44K+44KmDQor44OO44Og44OpLOOCpOODgeODreOCpg0KK+ODn+ODpOOCteOCqyzjgrHjg7PjgrgNCivjg6jjgrfjg4As44OI44Oi44Oo44K3DQor44OV44Kr44OALOOCv+OCq+OCtw0KK+ODleOCuOODr+ODqSzjgqvjgrrjg5/jg4QNCivjgq3jg4gs44OI44K344Ki44KtDQor44Km44Ko44Oi44OqLOOCpOOCteOCqg0KK+ODpOODnuOCq+ODryzjg57jgrXjg58NCivjgq/jg63jg4As44Of44OB44OtDQor44Kq44Kq44OE44KrLOODkuODreOCtw0KK+OCpuOCqOODgCzjg6bjgqbjgrgNCivjgr3jg44s44Of44Kt44KqDQor44OA44KkLOODiOODouODn+ODgQ0KK+OCt+ODs+OCvuOCpizjg5Ljg63jgqvjgroNCivjgqbjgqjjg4As44Om44K/44KrDQor44Ov44Kr44Of44OkLOOCq+OCuuODnw0KK+OCq+ODoOODqSzjg5Xjg5/jg4TjgrANCivjg5Xjg6vjgr/jg4ss44K/44Kr44Oe44K1DQor44Kr44OE44Km44OpLOOCq+ODhOODnw0KK+OCr+ODnuOCpCzjgrvjgqTjgrgNCivjg5Djg5As44OP44Or44OE44KwDQor44Kr44ON44OI44OiLOOCv+ODhOODnw0KK+ODoOODqeODj+OCtyzjg4jjgqrjg6sNCivjg4njgqQs44K/44Kr44K3DQor44OK44Of44Kr44OvLOOCt+OCsuODj+ODqw0KK+OCv+OCq+OCquOCqyzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44Oq44Ol44Km44Kk44OB44Ot44KmDQor44Ov44K/44OK44OZLOODqOOCvg0KK+OCv+ODgCzjg57jgrXjg5Ljg60NCivjgqLjg6rjg54s44Oo44K344OG44OrDQor44OK44Ks44OOLOODiOOCt+ODjuODqg0KK+ODpOODjizjg4bjg6vjg6bjgq0NCivjgqTjgrXjgqss44Om44Kt44OS44OtDQor44Kk44OI44KmLOODiOOCr+OCpOODgQ0KK+ODpOODnuOCtuOCrSzjgrnjg5/jgqoNCivjgq/jg44s44Kr44K644KqDQor44K344OQLOOCseODs+OCuA0KK+OCreODoOODqSzjgqLjgq3jg6kNCivjgrnjg5/jg4As44Kr44K644KqDQor44Oi44OI44Ks44Kk44OILOODkuODreOCq+OCug0KK+ODi+ODryzjgrfjgrLjgrMNCivjgr/jgrHjgqbjg4Es44Om44Km44K4DQor44K/44Og44OpLOOCq+OCuuODqOOCtw0KK+ODnOOCpuOCvyzjgrHjgqTjgrnjgrENCivjgqvjg4njg6Qs44Om44Km44K0DQor44OP44Op44OALOODqOOCt+ODjuODlg0KK+ODn+ODhOOCpOOCtyzjg5Ljg63jgrcNCivjgqTjg47jgqbjgqgs44Kx44Kk44K544KxDQor44Og44Op44OP44K3LOODnuOCs+ODiA0KK+ODi+OCt+OCq+ODryzjgrfjg7PjgqTjg4ENCivjg57jgrnjg4As44Kz44Km44K4DQor44Kq44Kq44K/LOOCr+ODi+OCqg0KK+ODleOCr+OCpCzjg57jgrXjgqoNCivjgqvjgrLjg6Tjg54s44Kx44Oz44K4DQor44OK44Ks44OE44KrLOOCv+ODgOODpuOCrQ0KK+OCr+OCteODjizjgrfjgrLjgqoNCivjgrPjgrjjg54s44OS44Ot44Om44KtDQor44Kv44Op44K/LOOCv+ODgOOCtw0KK+OCv+OCseOCpuODgSzjgrHjg7PjgqTjg4Hjg60NCivjgqTjgrHjg4As44Ki44OE44KqDQor44K/44Kr44OOLOODpuOCv+OCqw0KK+OCr+ODqeODpCzjgrfjg7PjgqTjg4ENCivjgqrjg44s44OE44OI44OgDQor44OK44Kr44OALOOCuOODpeODs+OCvuOCpg0KK+ODiOOCr+ODouODiCzjgr/jgqvjgqLjgq0NCivjgqrjgqrjg4/jgrcs44OI44K344OV44OfDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODj+ODs+ODgCzjg4bjg4TjgqoNCivjgqTjgrfjg4/jg6ks44K744Kk44K4DQor44Oo44K344OP44OpLOOCteODiOOCtw0KK+OCv+ODhuOCpOOCtyzjg4jjgrfjg5LjgrMNCivjgqTjg4jjgqYs44K344OV44OfDQor44K144OI44KmLOOCv+OCq+OCqg0KK+OCquOCquOCr+ODqSzjgrfjg6fjgqbjgrjjg63jgqYNCivjg4rjgqvjgrnjgrgs44Oo44Km44Kk44OBDQor44K/44Kk44OpLOODkuODreOCtw0KK+OCreODkuODqSzjg4/jg6vjg5LjgrMNCivjg4rjgqvjgrjjg54s44OS44OH44OE44ONDQor44Ok44Oe44K244KtLOODiOOCreOCqg0KK+ODiOODk+OCvyzjgqLjgq3jg6kNCivjg4rjgqvjgrbjg68s44OP44Or44KqDQor44OL44K344OP44OpLOOCq+OCuuOCqg0KK+ODoeOCsOODrSzjgrjjg6Xjg7PjgrgNCivjg57jg6vjg6Tjg54s44Kz44Km44K+44KmDQor44Kt44Kv44OBLOODkuOCteODjuODqg0KK+OCouOCquOCrSzjg6jjgrfjg58NCivjgq3jg4Pjgr/jgqss44K/44Of44KqDQor44Ok44K544KkLOODpuOCreOCsw0KK+OCpOODgeODnuODqyzjg6jjgrfjgqLjgq0NCivjg6Tjg57jgrbjgq0s44OI44K344Om44KtDQor44K544Ks44OP44OpLOOCuOODpeODs+OCpOODgQ0KK+ODiOODn+ODiuOCrCzjg6jjgrfjg5LjgrMNCivjg4Hjgq7jg6os44Ko44Kk44K444Ot44KmDQor44Kq44Kq44OQLOODpuODquOCsw0KK+ODnuODhOOCpCzjg5Xjgq/jg58NCivjg5Ljg6njg6Tjg54s44Oe44K144OS44OtDQor44Ok44Oe44Og44OpLOODn+ODhOODjuODlg0KK+OCquOCquODhyzjg57jgrXjg58NCivjg6jjgrfjg4rjgqws44OB44Kr44KoDQor44Kz44K444OeLOOCv+OCseODjuODqg0KK+ODiOODn+ODiuOCrCzjg4HjgqjjgrMNCivjgrXjgqws44OG44OE44OkDQor44OP44OpLOODpuOCpuOCuOODreOCpg0KK+ODiOODn+ODqOOCtyzjgr/jgqvjgrcNCivjg6jjgrfjg4As44K944OO44KoDQor44OS44Op44OQ44Ok44K3LOODkuODreOCq+OCug0KK+ODnuODhOODiSzjg5Ljg4fjgqoNCivjgqTjg57jg5Xjgq8s44Om44Km44K3DQor44Kt44Oo44K7LOOCt+ODs+ODpA0KK+ODj+ODiuODluOCtSzjgrnjgrnjg6ANCivjg4Hjg5As44OI44K344OO44OqDQor44Ok44Oe44K244KtLOODquODpeOCpuOCuA0KK+ODiuOCq+ODj+ODqSzjgrHjg7PjgrgNCivjgqrjg44s44Kz44Km44OY44KkDQor44Km44Ko44Oe44OELOOCq+ODqOOCsw0KK+OCouOCreODpOODnizjg57jgrXjgqLjgq0NCivjg4jjgr/jg4ss44Oo44Km44Kk44OBDQor44Oo44ON44OALOODnuOCteODkuODrQ0KK+ODleODq+OCr+OCtSzjgrXjgqvjgqgNCivjg5Ljg63jg6Qs44OO44Oq44OS44OtDQor44Oo44K344OALOOCt+ODs+OCteOCrw0KK+OCq+ODjeOCsyzjgrfjgrLjg6sNCivjg4rjgqzjgr8s44Oe44K144OP44OrDQor44Kk44OZLOOCt+ODs+OCuA0KK+OCu+OCreODjSzjg57jgrXjg6bjgq0NCivjgqrjgqvjg4As44Oe44K144OP44OrDQor44Kr44OK44KkLOOCq+ODs+OCu+OCpA0KK+OCteODiOOCpizjg5Ljg4jjgrcNCivjgrXjgqvjgq3jg5Djg6ks44Oo44K344KqDQor44Kk44Oe44KkLOODn+ODj+ODqw0KK+ODkuODoeOCuCzjgrfjg7Pjgr7jgqYNCivjgqrjgq7jg4/jg6ks44Oe44K144Oo44K3DQor44K/44Kx44Og44OpLOOCv+OCq+ODjuODqg0KK+ODiOOCquODpOODnizjgr/jgqvjgrcNCivjgq3jgr/jg4/jg6ks44K/44Kr44OS44K1DQor44Kq44Kq44K144KrLOOCq+ODhOODkuOCsw0KK+OCquOCquOCs+OCpuODgSzjgqvjgrrjg57jgrUNCivjgr/jgqvjgqos44OO44Oq44KzDQor44Km44OJLOODiOOCt+ODreOCpg0KK+OCpuODjizjgq3jg7PjgrQNCivjg5Xjgrjjgq0s44OS44Ot44OfDQor44K144OI44KmLOODiOOCt+OCqg0KK+OCpOOCveOCrOOCpCzjg57jgrXjg58NCivjgqvjg6njgrXjgq0s44Oo44K344KqDQor44Ok44Oe44OALOOCv+ODouODhA0KK+ODr+ODgCzjgqjjg4TjgqoNCivjgrfjg5Djgr8s44OI44K344KqDQor44K344Kq44K244KtLOOCv+ODhOOCqg0KK+OCt+OCrCzjg5/jg4Tjg47jg5YNCivjgq/jg6rjgr8s44Of44OB44KqDQor44OP44K344Oi44OILOODqOOCt+ODreOCpg0KK+ODqOOCt+ODoOODqSzjgr/jgqvjgrcNCivjg5/jg6Tjgrbjgq0s44OS44Ot44OO44OqDQor44Kt44K/44Ks44OvLOOCreODj+ODgeODreOCpg0KK+OCquODgOOCsSzjg4Hjgqvjg6kNCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44Ok44Oe44Kk44K3LOOCreODqOOCouOCrQ0KK+OCquOCvOOCrSzjg5Ljg63jgrcNCivjgr/jgqvjgqQs44K144OI44OfDQor44Kr44ON44KzLOOCseODs+OCuA0KK+ODj+ODqeODgCzjg5Ljg4fjg6bjgq0NCivjgrfjg57jg4As44Kx44Oz44K144KvDQor44Ok44OK44KuLOOCv+OCseOCqg0KK+OCueOCuuOCrSzjgr/jgqvjg5Ljg4gNCivjgr/jgqvjg4/jgrcs44Ok44K544KqDQor44Kq44Kw44Oq44Ok44OeLOODiOOCquODqw0KK+ODr+OCv+ODiuODmSzjg47jg5bjg6bjgq0NCivjg6Tjg57jg6Djg6ks44Kx44Oz44K4DQor44K/44Kr44OP44K3LOOCv+ODgOODkuODhw0KK+OCt+OCquOCuOODnizjgqvjgqrjg6sNCivjg4Tjg6vjgqrjgqss44OI44Kq44OrDQor44Kk44OI44KmLOODiOOCt+ODn+ODgQ0KK+ODnuODhOOCpuODqSzjgrvjgqTjgq0NCivjg6Tjg57jg6Ljg4gs44K/44Kr44KqDQor44Kv44Oe44OfLOODpuOCpuOCvuOCpg0KK+OCseODs+ODqOOCtyzjgr/jgqvjgrcNCivjg6Tjg57jgqvjgrIs44Oo44K344Ki44KtDQor44K044OI44KmLOODkuODreOCqg0KK+OCv+OCseOCpuODgSzjg57jgrXjg4jjgrcNCivjg4/jg6Tjgrcs44Kr44K644Om44KtDQor44Kk44K344OQ44K3LOODiOOCt+ODpuOCrQ0KK+OCpOODiizjg6rjg6fjgqYNCivjgqTjg47jgqbjgqgs44K/44Kr44Om44KtDQor44OL44K344Kr44OvLOODkuODh+OCqg0KK+ODj+ODs+ODgCzjgq3jg6jjgrgNCivjgr/jg4bjg5Djg6Tjgrcs44Kr44K644Oo44K3DQor44Kq44K344OeLOOCr+ODi+ODkuOCsw0KK+OCt+ODkOOCvyzjg4/jg6vjgq0NCivjg5/jgqbjg6ks44Ki44OE44K3DQor44Kz44Kr44K0LOOCq+OCuuODjuODqg0KK+OCpOOCpOODgCzjg6bjgr/jgqsNCivjgr/jgrHjgrnjgqgs44Kr44K644OfDQor44Kk44Ks44Op44K3LOODhuODhOODpA0KK+ODnuOCueODpOODnizjg6jjgrfjgqoNCivjgrXjgq/jg6Tjg54s44Kr44K644KqDQor44K144Kv44Op44KkLOOCseODsw0KK+OCv+ODnuODqizjg57jgrXjgqoNCivjgqTjg57jg4vjgrcs44Of44OO44OrDQor44Kq44Ks44OvLOODnuOCteODkuODiA0KK+ODj+OCruODr+ODqSzjgq3jg6jjgrcNCivjgqrjgqrjgq/jg4ss44OS44OH44OS44KzDQor44Kk44Kx44OALOOCu+OCpOOCpOODgQ0KK+ODnuOCqOOCuOODnizjgqLjgq3jg6kNCivjgqTjg6/jgqQs44Kr44OE44OfDQor44Ok44Oe44OALOODnuOCteOCrQ0KK+OCueODgCzjg57jgrXjg4gNCivjg4jjgq3jg68s44Kq44K144OgDQor44OP44Ok44K3LOODpuOCpuOCpOODgQ0KK+OCv+OCseODouODiCzjgqvjgrrjgqoNCivjgqvjg7Pjg5Djg6Tjgrcs44Oe44K144KqDQor44OI44K244OvLOODhOODiOODoA0KK+OCv+ODhuODjizjgrfjg7PjgrQNCivjgqvjg7Pjg5ks44Kx44Kk44KzDQor44Kq44Kv44OALOODqOOCt+ODiA0KK+OCv+ODouODiCzjg4jjg5/jgqoNCivjg4rjgqzjgqQs44OO44OW44K/44KrDQor44Kq44K244OvLOOCt+ODs+OCpOODgQ0KK+OCteODiOOCpizjg6Tjgrnjg4rjg6oNCivjgrPjg7Pjg4ks44Ki44Kt44KqDQor44ON44Ku44K3LOOCv+ODgOOCtw0KK+OCv+ODiuOCqyzjg4bjg4TjgqoNCivjgrPjg6Djg60s44Oq44On44Km44Kk44OBDQor44Oo44K344OALOODiOODqOODleODnw0KK+OCpOOCpOOCuOODnizjg5Ljg63jg58NCivjg4vjgqTjg5vjg6os44Kr44K644KqDQor44Kz44Oi44Oq44OkLOODqOOCt+OCv+OCqw0KK+OCt+ODs+ODieOCpizjg5Ljg4fjgrrjg58NCivjg6Tjg44s44Oo44Km44Kk44OBDQor44K/44OK44KrLOODnuOCteODiOOCtw0KK+ODj+OCruOCv+ODiyzjg63jgq/jg63jgqYNCivjgrPjgrnjgq4s44OA44Kk44Kt44OBDQor44Kk44OZLOODjuODquOCqg0KK+OCq+ODiuOCtuODryzjg5Ljg63jgrcNCivjgr/jg4As44K/44OA44OS44K1DQor44OK44Ks44K/LOODquODpeOCpuOCueOCsQ0KK+OCq+ODnuODgCzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44Oo44K344KqDQor44Kq44Kk44OHLOODnuOCs+ODiA0KK+OCv+OCq+OCr+ODqSzjg5Ljg63jgrcNCivjg6Tjgrnjg57jg4Qs44K544K544OgDQor44Oe44OrLOODqOOCt+ODkuOCtQ0KK+OCr+ODnOOCvyzjg47jg5zjg6sNCivjgr/jg5Djgr8s44Kx44Kk44Kk44OBDQor44Oi44Oq44K/LOODjuODquOCqg0KK+OCr+ODi+ODiOODoizjg4Tjg43jgrgNCivjgqLjgrXjg4zjg54s44OS44Ot44Kr44K6DQor44Ob44K344OKLOODpOOCueOCqg0KK+ODjuOCtuODryzjg4/jg6vjg5LjgrUNCivjg57jg4Tjg6Djg6ks44K344Oz44Kk44OBDQor44OS44Op44Kr44K/LOOCq+OCuuOCqg0KK+ODkuODqeODnizjg4/jg6vjgqoNCivjgrfjg5/jgros44K/44Kr44K3DQor44Oo44Kz44Kr44OvLOODr+OCv+ODqw0KK+OCreOCr+ODgSzjgqLjg4TjgrcNCivjgq/jg63jgrXjg68s44Kk44K144OgDQor44K/44Kx44Km44OBLOODhuODhOOCqg0KK+ODkuODqeOCrCzjg6jjgqbjgrgNCivjgrXjgqTjg4jjgqYs44OO44Oq44KqDQor44Km44OB44Oc44OqLOOCs+OCpuOCpOODgQ0KK+OCpOODiuODoOODqSzjg6jjgrfjg4/jg6sNCivjgqrjgrXjg4As44K/44Kr44K3DQor44K544Ku44Ok44OeLOOCv+OCq+ODiOOCtw0KK+OCpOODnuOCuizjg6Tjgrnjgr/jg4ANCivjgqbjg6njg44s44Oe44K144Oo44K3DQor44Oi44OB44K644KtLOOCq+OCuuOCqg0KK+OCueOCrOODryzjgrfjgrLjg6sNCivjgqTjgrHjg4As44OI44K344KqDQor44K/44OK44KrLOODj+ODq+OCqg0KK+OCteOCpOODiOOCpizjgr/jg4TjgrgNCivjg5Xjgrjjgr8s44OI44K344Of44OBDQor44Of44Ok44ONLOODhOODiOODoA0KK+OCq+ODnuODgCzjg5/jg47jg6sNCivjg43jgq7jgrcs44Oo44K344OO44OqDQor44Kq44Kv44Ks44OvLOODpuOCreOCqg0KK+ODj+ODpOOCtyzjg5LjgrXjgrcNCivjg5Djg5As44OO44OW44OS44KzDQor44Ok44Oe44Oi44OILOODhOODiOODoA0KK+OCqOODs+ODiSzjg47jg5zjg6sNCivjgr3jg6Hjg6Qs44Kq44K144OgDQor44Ki44Op44KkLOODqOOCt+ODpuOCrQ0KK+OCouODmSzjgqLjgq3jg6kNCivjg4Hjg5As44K/44OE44KqDQor44K/44Kr44Ok44OeLOODn+ODjuODqw0KK+ODpOODnuOCrSzjg6bjgqbjgrgNCivjgr/jgrHjgqbjg4Es44K344Ky44OV44K1DQor44K/44Kx44OZLOOCv+OCq+OCqg0KK+OCouODgOODgSzjg6jjgrfjgqLjgq0NCivjgr/jgqvjgrfjg54s44Ki44Kt44OpDQor44Oo44Kz44Ok44OeLOODjuODquODiuOCqg0KK+OCt+ODqeOCpOODgSzjg57jgrXjg6sNCivjgq/jg4njgqYs44K344Ky44KqDQor44K544K644KtLOOCreODqOOCtw0KK+OCv+OCq+OCt+ODnizjgr/jgqvjgrcNCivjg6Tjg57jgqzjgr8s44Of44OO44OrDQor44Oo44K344OALOOCv+OCr+OCqg0KK+ODn+ODpOOCq+ODryzjgrHjg7PjgrgNCivjgrXjgrXjgq0s44Og44OE44OfDQor44Kk44OH44Km44OpLOOCq+OCuuOCsw0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjgqTjg4jjgqYs44Ki44OE44OS44KzDQor44Kq44Kq44OELOOCv+OCseOCtw0KK+ODleOCqOOCrSzjg4jjgrfjgqvjgroNCivjgrfjg6Ljg5XjgrUs44Ki44OE44K3DQor44Of44Ok44Kr44OvLOODnuOCteOCv+OCqw0KK+ODj+OCt+ODouODiCzjgr/jgqvjgrcNCivjg6Tjg57jgr7jgqgs44Kz44Km44K4DQor44OL44Kk44Kv44OpLOODjuODluOCqg0KK+ODr+OCv+ODiuODmSzjg4jjgrfjg47jg6oNCivjg6Djg63jg5Xjgrcs44Kr44OKDQor44Kr44Oz44OALOOCq+ODhOODnuOCtQ0KK+OCr+ODieOCpizjgrHjgqTjgrMNCivjgr/jgqvjg4/jg6ks44Ov44K/44OrDQor44Kq44Kr44OALOOCseOCpOOCuA0KK+ODieOCpCzjgrXjg4jjg6sNCivjgr/jg4rjg5ks44Oe44Oi44OrDQor44Kz44Og44OtLOOCseODs+OCpOODgQ0KK+ODouODquODpOODnizjg5Xjg5/jgrMNCivjgqLjg6njg57jgq0s44OO44OW44KqDQor44Kz44K344OZLOOCq+OCuuODrQ0KK+OCteODjizjg47jg5bjg5Ljg60NCivjgqrjgqvjg4As44Oo44K344Oe44K1DQor44OV44K444Ov44OpLOOCreODp+OCpuOCsw0KK+ODnuODhOOCqizjgqvjgrrjg58NCivjgr/jg4rjgqss44Of44ON44KqDQor44Kt44OP44OpLOODiuOCquOCrQ0KK+ODi+OCt+ODj+OCvyzjg6bjgqYNCivjg4vjgrfjg6/jgq0s44Oo44K344K/44KrDQor44Kq44Kr44K244KtLOODkuODreOCq+OCug0KK+ODleOCuOODr+ODqSzjgqrjgrXjg6ANCivjg6Tjgrnjg4As44Om44Kr44KzDQor44Kq44KrLOOCreODp+OCpg0KK+ODm+OCveODjizjgrfjgrLjgqoNCivjgqLjgqvjgrcs44K/44Kv44OeDQor44OK44Kr44KkLOOCs+OCpuOCpOODgQ0KK+ODpOOCueODgCzjgq3jgq/jgrgNCivjg4bjg6njg6Djg6ks44OV44Of44K/44KrDQor44Kv44Oc44K/LOODqOOCt+ODpuOCrQ0KK+OCs+ODi+OCtyzjgrfjgrLjg58NCivjg47jg6Djg6ks44Ki44Kt44OpDQor44Kk44OO44K7LOOCr+ODi+OCsw0KK+ODr+OCv+ODiuODmSzjg6Tjgrnjg5LjgrMNCivjg4vjgrfjgqos44Kr44K644OS44K1DQor44Oi44Of44KtLOOCs+OCueOCsQ0KK+OCueODiuODgCzjg5Ljg63jgr/jgqsNCivjgr/jgrHjgqbjg4Es44K144OB44KzDQor44Ki44Kt44K7LOODkuODreOCtw0KK+OCt+OCquOCvyzjg6jjgrfjg5LjgrMNCivjgq3jg4ks44Oo44K344Ki44KtDQor44Kk44K344Ov44K/44OqLOODiOOCt+OCqg0KK+OCt+ODqeOCrOODnyzjgr/jgqvjg5Ljg60NCivjgqbjg4Hjg4rjgqws44OS44OH44OkDQor44K/44OK44KrLOOCt+ODs+OCpOODgeODreOCpg0KK+OCr+ODreOCteOCrSzjg4bjg4TjgqoNCivjgqrjg4jjgrcs44Om44Km44Kk44OBDQor44K144OI44KmLOODnuOCteOCqg0KK+OCueOCuuOCrSzjg57jgrXjg6bjgq0NCivjg5Ljg63jgr8s44K144Kk44K4DQor44Ok44OO44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCteOCq+ODouODiCzjg57jg6Ljg6sNCivjgrPjg6Djg60s44Oe44K144OIDQor44Kk44Oe44K/LOODqOOCpuOCpOODgQ0KK+ODm+OCveODpCzjgqvjgrrjgr/jgqsNCivjg4bjg6njgrXjgqss44Oe44K144Om44KtDQor44Ob44Oz44OeLOOCq+OCuuOCqA0KK+OCq+OCueOCrCzjg5Ljg63jgrfjgrINCivjg57jg4Tjg4DjgqTjg6ks44Ko44Kk44K4DQor44Kr44Ov44Kr44OfLOOCt+ODpeOCpuOCuA0KK+ODjeOCtOODrSzjgrfjg7PjgrgNCivjg5Xjgq/jg4As44Ko44Kk44K+44KmDQor44K544K644KtLOODkuODreOCtw0KK+ODiOODnuODhCzjg6jjgrfjgrgNCivjgqTjg44s44K/44OE44Ot44KmDQor44K544K644KtLOOCuOODpeODs+OCuA0KK+OCouOCteOCpCzjgqvjgrrjgqoNCivjg4/jg6ks44K/44Kr44OO44OqDQor44Ob44K3LOOCr+ODi+OCq+ODhA0KK+ODiuODq+OCq+ODryzjgqvjgrrjg47jg6oNCivjgqrjg4As44K/44Kr44Ki44KtDQor44Kq44OQ44OKLOOCt+OCsuODpOOCuQ0KK+OCv+ODi+OCtuODryzjg57jgrXjg5Ljg60NCivjg5Xjgrjjgqrjgqss44K/44Kr44K3DQor44K044OI44KmLOOCv+OCq+OCuA0KK+OCs+ODrOODiuOCrCzjg4jjgrfjgqLjgq0NCivjgr/jgqvjg4/jgrcs44OA44Kk44K544KxDQor44K/44Kr44OpLOODn+ODhOODj+ODqw0KK+OCquOCquOCr+ODryzjgq3jg6jjgrcNCivjgr/jg4rjgqss44OS44OH44Kr44K6DQor44K144OI44KmLOODjuODquOCqg0KK+OCt+ODnuODjOOCrSzjgrHjg7MNCivjgr3jg40s44OS44Ot44K3DQor44K/44OK44KrLOOCq+OCuuOCqg0KK+ODleOCuOODoOODqSzjgrPjgqbjgrgNCivjgrTjg4jjgqYs44K344Oz44K4DQor44OP44K344Oi44OILOODpOOCueOCv+OCqw0KK+ODkuODq+ODnizjgqLjgq3jg6kNCivjg5vjgrfjg5As44OS44OH44OoDQor44Kr44Oh44Ov44OqLOODkuODreODnw0KK+OCquOCr+OCpCzjg5Ljg63jgrcNCivjg5LjgrXjg6Ljg4gs44Kq44K144OgDQor44K544K644KtLOOCreODqOOCtw0KK+ODkuODqeOCteODryzjg6jjgrfjgr/jgqsNCivjgq3jgr/jg4cs44OO44Oq44Ki44KtDQor44OV44Kv44OALOOCq+OCuuODkuOCtQ0KK+OCt+OCquOCtuOCrSzjgrHjgqTjgrgNCivjg6Djg4jjgqYs44Om44K/44KrDQor44OL44K344Kq44KrLOOCteODluODreOCpg0KK+ODhOODnOODjizjg5Ljg63jg5LjgrUNCivjg4rjg4Tjgqbjg6Es44OI44K344Oe44K1DQor44K/44OL44Ks44KtLOODkuODreOCouOCrQ0KK+OCquOCquOCueOCrCzjgqvjgrrjgqoNCivjgqbjg4Hjg4As44OS44OH44KqDQor44Kr44OI44KmLOOCqOOCpOOCuA0KK+OCteOCteOCrSzjg5Ljg4fjgqoNCivjgqvjgrfjg54s44OO44Oq44KqDQor44Ki44Kr44K144KrLOOCq+OCuuOCqg0KK+OCq+ODr+OCq+ODnyzjg6jjgqbjgqTjg4ENCivjgrfjg4ks44K/44OE44OkDQor44Ok44Oe44Km44OBLOODqOOCt+ODkuODhw0KK+OCq+ODjizjg6bjgr/jgqsNCivjg4/jg6ks44Kk44Kv44KqDQor44Oe44OE44OQ44OpLOOCseODs+OCuA0KK+ODhuODqeOCq+ODiSzjgqvjgrrjg5Ljg60NCivjgrfjgqrjgr8s44Oo44K344OO44OqDQor44Kq44Kr44OALOODkuODiOOCtw0KK+OCr+ODreODgCzjg6rjg6fjgqYNCivjg6Ljg6rjg6Ljg4gs44OV44K444KqDQor44K744KtLOODkuODreOCtw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgr/jgrHjgq/jgrUs44OS44Ot44K3DQor44K/44Ks44K344OpLOODjuODluOCqg0KK+OCs+ODkOODpOOCtyzjgqrjgrXjg6ANCivjgrXjgqjjgq0s44Kx44Kk44K4DQor44K/44OE44K244OvLOOCreODn+OCouOCrQ0KK+OCteOCpOODiOOCpizjg5Ljg4jjgrcNCivjg5Xjg6vjgqvjg68s44Kt44Oo44K3DQor44K/44Og44OpLOODleODn+ODiA0KK+ODhOODquODpCzjg57jg4HjgqoNCivjgrXjgqvjgrDjg4Es44OV44Of44OI44K3DQor44OV44Kv44K344OeLOODqOOCpuOCpOODgQ0KK+OCquOCquOCq+ODryzjg5Ljg63jgrcNCivjg5Xjgrjjgr8s44K344Ol44Oz44K544KxDQor44Kr44Ov44Kw44OBLOOCq+ODhOODjuODqg0KK+ODiOOCreOCquOCqyzjg4bjg6vjgqoNCivjg4rjgqvjg44s44OI44Of44KqDQor44Kk44OO44Km44KoLOODnuOCteODpuOCrQ0KK+OCr+ODi+ODiOOCtyzjgr/jgq/jg63jgqYNCivjgrXjgqvjgr8s44Kz44Km44Kk44OBDQor44Oi44Oq44Kr44OvLOODhOODjeOCqg0KK+ODjuOCsOODgSzjg5Ljg63jgrcNCivjgq/jg5zjgr8s44Og44OE44OfDQor44OK44Kr44Kq44KrLOOCv+ODhOOCqg0KK+ODjuODleOCuCzjgrHjgqTjgrgNCivjg6Ljgqzjg6os44Ko44Kk44K4DQor44Oe44Ko44K244KtLOOCpOOCteOCqg0KK+OCquOCquODhOOCqyzjgrfjgrLjg6jjgrcNCivjg5/jgrrjgr8s44Kx44Oz44OO44K544KxDQor44K544Ku44Ok44OeLOODqOOCt+ODkuOCtQ0KK+OCq+OCrOODryzjg6jjgrfjgr/jgqsNCivjg4vjgrfjg4/jg6ks44Oo44K344OV44OfDQor44OG44K644KrLOOCt+ODs+OCpOODgQ0KK+OCt+OCquODnyzjg5/jg4TjgqoNCivjgqrjgqrjg4/jg6ks44K/44OA44Ki44KtDQor44Ki44K144Kv44OpLOOCouOCreODkuODrQ0KK+OCt+ODnuODgCzjg4bjg4Tjg6QNCivjgrfjg57jgqvjg68s44K544K544OgDQor44OP44K344Oi44OILOODkuODiOOCtw0KK+OCpuOCuizjgrfjgrrjgqoNCivjgr/jgqvjgq/jg68s44Oe44K144OO44OWDQor44Of44OB44K/LOOCt+ODpeODs+OCpOODgQ0KK+OCpuOCqOODgCzjgqbjgqTjg6oNCivjgrfjgqws44K/44Kr44OE44KwDQor44Kk44Kx44OfLOODn+ODhOOCsA0KK+ODouODqizjg57jgrXjgqLjgq0NCivjgqvjgrfjg6Ljg4gs44Oe44K544OfDQor44Kk44K344OP44OpLOODgeOCqOOCsw0KK+OCq+ODjeOCsyzjg4HjgqjjgrMNCivjgr/jgqvjg4/jgrcs44OI44K344KqDQor44Oi44OI44KkLOODnuOCteOCqg0KK+OCs+OCv+OCsSzjg5/jg4HjgqoNCivjgqvjgrXjgqQs44K544Ko44KzDQor44Kr44OI44KmLOODjuODquOCsw0KK+OCs+OCr+ODnCzjgrHjgqTjgrMNCivjg6/jgqvjg6Tjg54s44K344Ky44OkDQor44K144OK44OALOODnuOCteODkuOCsw0KK+OCteOCq+OCvyzjg4jjg5/jg6jjgrcNCivjg47jg6Djg6ks44Of44OE44KqDQor44OP44Ok44Kr44OvLOOCq+OCuuODnw0KK+ODn+ODpOOCtuOCrSzjgrfjgrLjgqoNCivjgqrjg4vjg4Tjgqss44Kx44Oz44K4DQor44Kk44OHLOOCquOCteODoA0KK+ODiuOCrOOCteOCsyzjgr/jgqvjg47jg6oNCivjgqTjg4jjgqYs44Of44OB44K/44KrDQor44Kr44ON44K/44KxLOODhuODq+OCouOCrQ0KK+OCr+ODnOOCvyzjgq3jg6jjg6bjgq0NCivjgqLjg6rjg54s44Kx44Kk44KzDQor44Ov44Kr44KqLOODkuODreOCtw0KK+OCpOOCt+OCtuOCqyzjgr/jgqvjg6bjgq0NCivjgqrjgr8s44K844Oz44OP44OB44Ot44KmDQor44K144Kr44Oi44OILOOCseOCpOOCtA0KK+OCquOCquODm+ODqizjg6bjgq3jgqoNCivjgrfjg7Pjgr/jg4ss44OI44K344Ki44KtDQor44Km44OB44Ok44OeLOOCv+OCq+OCtw0KK+ODkuODqeOCvyzjg5/jg4rjgrMNCivjgqLjg6rjgr7jg44s44K144OI44KzDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCouOCquODpOOCrizjg57jgrXjgqLjgq0NCivjg4rjgqvjg6Djg6ks44K144OA44KqDQor44Kk44Kk44OALOODn+ODgeOCqg0KK+ODiuOCt+OCrSzjgqvjgqrjg6sNCivjg6Djg6njgrss44Kr44K644KqDQor44Oe44OE44KqLOOCseOCpOOCtA0KK+OCteODiOOCpizjgrfjg63jgqYNCivjgqLjgrXjg4zjg54s44K344Oz44Kk44OB44Ot44KmDQor44OV44K/44OfLOODpOOCueODnuOCtQ0KK+ODleODiuODiCzjgq/jg4vjg58NCivjg5Xjgrjjgr8s44Om44Of44KzDQor44OV44Or44Kr44OvLOOCv+OCseOCqg0KK+ODleODiuODj+OCtyzjg5LjgrXjg6QNCivjg5bjg4jjgqYs44OS44Ot44Om44KtDQor44Kr44OO44KmLOOCq+ODhOODkuODrQ0KK+OCquOCreODhCzjg5Ljg63jgr/jgqsNCivjgr/jgqvjgq7jg68s44Kk44K144OgDQor44Ob44K344OOLOODgeOCqOOCsw0KK+ODi+OCt+OCuOODnizjgq/jg4vjg5Ljg60NCivjgqvjg57jgr8s44OB44Ki44KtDQor44OE44K444Oi44OILOODiOOCt+OCpOODgQ0KK+ODj+ODiuODgCzjgrfjg7PjgrgNCivjg5Ljg63jgrss44Oe44K144KqDQor44OL44K344OALOODkuODiOOCtw0KK+OCpuOCqOOCrSzjg4jjgrfjgqvjgroNCivjg6jjgrfjg44s44Kt44Oo44KqDQor44Kt44K/44Og44OpLOOCu+OCpOOCpOODgQ0KK+OCt+ODn+OCuizjg5/jg4HjgrMNCivjgqTjgrfjgrbjgq0s44OS44K144K3DQor44OP44Ok44K3LOODn+ODhOODjuODlg0KK+OCreOCr+ODgSzjg5Ljg4fjg5Xjg58NCivjgqrjgqvjg4ks44OE44Kw44KqDQor44Kz44Og44OpLOOCt+OCsuODqw0KK+ODj+OCt+ODouODiCzjg4Tjg4jjg6ANCivjg4rjgqvjg4Tjgqss44K/44Kx44K3DQor44Kq44Kq44Kk44K3LOODnuOCueODqOOCtw0KK+OCr+ODreODgCzjg57jgrXjg6jjgrcNCivjg4rjgqvjgqQs44Oe44K144OfDQor44Kt44K/44K244OvLOODjuODquOCouOCrQ0KK+OCreOCt+ODgCzjgrfjgrLjg6sNCivjgqvjg4rjg57jg6ss44Oe44Kz44OIDQor44Ki44Op44KkLOOCt+OCuuOCqg0KK+ODleOCv+ODhOOCrizjg4/jg6vjgqoNCivjgq3jgq/jg4Es44OI44K344KqDQor44Kk44Kk44OALOODpOOCueOCtw0KK+ODiuOCq+OCqCzjgqLjgq3jgqoNCivjg5Ljg6njg57jg4Qs44Of44OO44OrDQor44OL44K344Kq44KrLOOCuOODpeODs+OCvuOCpg0KK+OCteODiOOCpizjgrHjgqTjgq0NCivjg6Ljg6os44OP44Or44KqDQor44Ob44K344OOLOOCpOOCteOCqg0KK+ODpOODnuOCsOODgSzjg47jg5bjg5Ljg60NCivjgqbjgrnjgqQs44Oo44Km44Kk44OBDQor44Oe44OE44OQ44OpLOOCqOOCpOOCpOODgQ0KK+OCouODquOCteOCqyzjg57jgrXjgq0NCivjg4vjgrfjgqos44Ko44Kk44K4DQor44Kt44OALOODhuODhOOCqg0KK+ODpOODjizjg6bjgqbjgqTjg4ENCivjgqvjg4jjgqYs44Kx44Oz44K/DQor44Ov44K/44OK44OZLOODgeODkuODrQ0KK+ODj+ODpOOCtyzjg6TjgrnjgqoNCivjg6/jgr/jg5ks44Oo44Km44Kk44OBDQor44Ov44K/44OK44OZLOODnuOCteOCqg0KK+ODpuOCsOODgSzjg5Ljg63jgrMNCivjg6Tjg57jg6Ljg4gs44OS44K144K3DQor44K144Kk44OI44KmLOODleODn+OCqg0KK+OCq+OCpOOCuizjgrHjg7PjgqTjg4ENCivjg5vjgrfjg44s44OS44OH44KqDQor44K344OO44OP44OpLOODjuODluODkuODrQ0KK+OCquOCquODjOODnizjg57jg6Ljg6sNCivjg5/jg68s44K/44Kx44K3DQor44Ob44Oq44Og44KtLOODqOOCt+ODng0KK+OCpOOCt+OCv+ODhizjgrfjg7PjgqTjg4Hjg63jgqYNCivjg5/jg5Xjg40s44Kt44Oo44K3DQor44Oi44Of44KtLOODnuOCs+ODiA0KK+ODj+OCu+OCrOODryzjg4bjg6vjgqoNCivjgrnjgq7jg6Tjg54s44K344Ol44Oz44K4DQor44OE44Kv44OALOOCv+ODgOOCtw0KK+OCouODgOODgSzjg5Xjg5/jg47jg6oNCivjg4fjgrbjg68s44K/44OA44Oo44K3DQor44Kq44K/LOOCreODqOOCtw0KK+OCteODiOOCpizjgqLjgq3jg6kNCivjgrvjgq3jgrDjg4Es44Of44OE44OO44OqDQor44Kz44Kv44OW44OzLOODqOOCt+OCrQ0KK+ODm+OCt+ODiizjg6bjgq3jg5Xjg58NCivjgqbjg6njg44s44Kz44Km44Kk44OBDQor44K/44Kx44Og44OpLOODpOOCueODkuODrQ0KK+ODiOOCr+ODiuOCrCzjg5Ljg4jjgrcNCivjgq/jg6rjg4/jg6ks44OS44OH44OIDQor44Kq44Kv44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+OCteOCpOODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjg57jg4Tjgrfjgr8s44Kx44Kk44K+44KmDQor44K/44Kx44OALOODn+ODgeOCsw0KK+ODi+OCt+OCrSzjg6Ljg4jjg6jjgrcNCivjgqbjg6Hjg4As44K144Kr44KoDQor44Ob44Oz44OALOOCpOOCr+OCqg0KK+OCq+ODoizjgqvjgrrjgqbjg58NCivjgqbjgrfjg4As44OE44Oo44K3DQor44K144Kk44OI44KmLOODkuODreODhOOCsA0KK+ODj+OCueODgCzjg57jgrnjgqoNCivjg5/jgqvjg68s44Oo44Km44KzDQor44Km44OB44OALOOCr+ODi+ODkuOCsw0KK+ODi+OCt+OCtuOCrSzjgrfjg6fjgqbjgqTjg4ENCivjgqTjgqzjg6njgrcs44K344On44Km44K4DQor44Ov44K/44OK44OZLOOCouOCteOCsw0KK+OCt+ODnuODoOODqSzjgrPjgqbjgrgNCivjgqvjg4jjgqYs44OO44Oq44KzDQor44Kr44Ov44OZLOOCt+ODp+OCpuOCsw0KK+OCteOCq+ODouODiCzjg6jjgqbjgrgNCivjg6Ljg6rjgrfjgr8s44Oi44OI44Oo44K3DQor44K544Ks44OP44OpLOODquODp+OCpg0KK+ODiOODn+ODpOODnizjgqvjg4Tjg5LjgrMNCivjg5Xjgq/jg4As44OE44Oo44K3DQor44Kq44OI44K244KtLOOCouODhOODkuOCsw0KK+ODleOCuOODouODqizjgr/jgqvjgqoNCivjgrPjg6Ljg6os44Kt44Oo44Om44KtDQor44OV44Kv44OK44KsLOODnuOCteOCouOCrQ0KK+ODn+ODpOODj+ODqSzjgqvjg4Tjg47jg6oNCivjgrjjg7Pjg44s44Of44OE44KqDQor44Kt44Og44OpLOOCqOOCpOOCsw0KK+OCpOODiuOCrOOCrSzjg6bjgq3jgrMNCivjg6Ljg6os44OO44Oq44KqDQor44Ov44K/44OK44OZLOOCq+ODhOODjuODqg0KK+ODhOOCuOODouODiCzjgqLjgq3jgqoNCivjg6Ljg7Pjgrzjg7Ms44OS44Ot44Om44KtDQor44OK44Og44OpLA0KK+ODpOODnuODouODiCzjgqjjg6rjgrMNCivjg4/jgrfjg6Ljg4gs44OS44Ot44KtDQor44Ki44Op44KkLOODpOOCueODjuODqg0KK+ODleOCuOOCpCzjg5Ljg63jgrcNCivjg6/jgr/jg4rjg5ks44OG44OEDQor44OP44K744Ks44OvLOODiOODqOOCq+OCug0KK+OCt+OCsuODpOOCuSzjgqjjgqTjgqTjg4ENCivjg6Tjg57jg47jgqQs44K/44Kv44OeDQor44Kz44OQ44Ok44K3LOODnuOCteODqw0KK+ODiuOCrOOCpCzjg6jjgrfjgqLjgq0NCivjgrXjg68s44OO44OW44KqDQor44Oe44OE44Oo44K3LOODn+ODgeOCqg0KK+OCteOCpOODiOOCpizjgqvjgqrjg6sNCivjgqvjg47jgqYs44OS44Ot44Ki44KtDQor44Km44K344K044OhLOODpOOCueOCqg0KK+OCpOOCt+OCpCzjgrPjgqbjgrgNCivjgqbjgrnjgq0s44Kk44K644OrDQor44K544OJ44KmLOODqOOCt+OCqg0KK+OCq+OCuOODpOODnizjgr/jgqvjgq3jg58NCivjgqrjgqrjg5As44OS44OH44KtDQor44K544OvLOODleODn+OCqg0KK+OCpOODr+OCvyzjg6Tjgrnjg4gNCivjg4jjgqYs44OP44K444OhDQor44Kq44Kk44Kr44OvLOODkuODiOOCtw0KK+ODkuODqeOCpCzjgqjjgqTjgrMNCivjgr/jgqvjgrfjg54s44OI44K344KqDQor44OV44Of44OOLOODkuODreOCtw0KK+OCquOCq+OCtuOCrSzjg47jg6rjgqoNCivjgrfjg6njgq0s44Oe44K144OE44ONDQor44K/44Kx44Oi44OILOODpuOCpuOCuA0KK+ODnuODhOODouODiCzjg47jg6rjg5LjgrMNCivjg57jg4Tjg5Djg6ks44OS44Ot44K3DQor44Ko44OT44OP44OpLOOCs+OCpuOCuA0KK+ODleOCuOODjizjg6TjgrnjgqoNCivjg5Xjgqvjg6Qs44Oe44K144OS44OtDQor44Ob44K344OOLOOCv+OCq+OCtw0KK+OCq+OCv+ODpOODnizjgrXjg4HjgrMNCivjgqLjg6njgqvjg68s44Oe44K144Om44KtDQor44K/44Kr44OOLOOCq+OCuuOCqg0KK+OCr+ODreODgCzjg6Tjgrnjg5Ljg60NCivjgqTjg4jjgqYs44K444Ol44Oz44KzDQor44Kz44K244KkLOODn+ODhOODqw0KK+OCpuOCqOODpOODnizjgq3jg6jjgrcNCivjg4/jg4Pjg4jjg6os44OI44K344KtDQor44OL44K344Og44OpLOODiOOCt+OCv+OCqw0KK+ODleODq+OCq+ODryzjgr/jgqvjgqoNCivjg6Tjgrfjgq0s44K344Ky44KtDQor44Ob44OJ44Ok44OeLOODkuODh+OCqg0KK+OCqOODiOOCpizjg4jjg6Ljg5LjgrMNCivjg6Tjg57jg6Ljg4gs44Oe44K144OI44K3DQor44K744Kt44Kw44OBLOOCpOOCteODoA0KK+OCv+ODiuODmSzjg5Ljg4fjg4jjgrcNCivjgr/jgrHjg4As44OI44K344Om44KtDQor44K344Oz44K/44OLLOOCq+OCv+OCtw0KK+OCr+ODnOOCvyzjgq3jg6jjgrcNCivjgrnjgq7jgqrjgqss44K144OI44OfDQor44Ok44Oe44K244KtLOOCteODgOODjuODqg0KK+OCteOCpOODiOOCpizjg5Ljg4fjgq0NCivjgqbjgqjjg44s44OI44K344K/44KxDQor44K344Oe44Oi44OILOOCs+OCueOCsQ0KK+OCreOCv+ODjizjg57jgrXjg58NCivjgqTjgqTjgrrjgqss44Oq44On44Km44KzDQor44Kk44K644OfLOOCreODp+OCpuOCuA0KK+ODj+ODqeODgCzjgr/jgqvjg6bjgq0NCivjgqrjg4HjgqLjgqQs44K144OI44K3DQor44Ok44Oe44Km44OBLOOCouOCreODkuODrQ0KK+OCqOOCsOODgSzjg5Ljg4fjg4Tjg40NCivjg4/jgq7jg6/jg6ks44K/44Kx44K3DQor44K/44Kr44KuLOOCv+OCseODjuODqg0KK+OCquOCr+ODouODiCzjg57jg4rjg5YNCivjg57jg4Tjgrbjgq0s44Oq44On44Km44Kk44OBDQor44Kk44OB44Og44OpLOODpuODquOCsw0KK+ODn+ODpOOCteOCqyzjg4jjg6LjgrMNCivjg5/jg6Tjgr8s44K744Kk44Kk44OBDQor44OK44Ks44KqLOOCt+ODp+OCpuOCreODgQ0KK+OCpOODr+OCqizjg57jgrXjgrcNCivjg5Xjgqvjgrbjg68s44K344Ky44OrDQor44K/44Og44OpLOODnuOCteOCqg0KK+OCreODquODpeOCpizjgr/jg4DjgqoNCivjg57jg4Tjgrbjgq0s44Oo44K344KqDQor44Kr44OI44KmLOODhuODq+ODn+ODhA0KK+ODn+OCvyzjg4rjgqrjg4gNCivjgqTjgrfjgqQs44Kk44K144OgDQor44Kq44Kr44Oi44OILOODhuODhOOCqg0KK+OCpuOCqOOCquOCqyzjg47jg5bjgqoNCivjgq3jg6fjgqbjg44s44Oe44K144OIDQor44Kr44ON44KzLOODpuOCpuOCvuOCpg0KK+OCteOCr+ODqeOCpCzjgq3jg6fjgqbjgrMNCivjg6/jgqvjg5Djg6Tjgrcs44OI44K344OS44OHDQor44Ov44K/44OK44OZLOODqOOCt+ODkuODrQ0KK+OCouOCteOCpCzjg4vjgrnjgrENCivjgqvjg4njg44s44Om44Km44K4DQor44Ok44Oe44K244KtLOODiOODqOODkuODrQ0KK+OCouODr+ODjizjg4jjgrfjg6bjgq0NCivjgqrjgqzjg68s44K/44Kr44OO44OqDQor44K844Oz44KxLOODiOOCt+OCqg0KK+ODleOCr+ODouODiCzjg4jjg6Ljg5LjgrMNCivjgqrjg4ks44Kr44K644OO44OqDQor44Oi44Oq44Oi44OILOOCv+OCq+OCqg0KK+ODiOOCpuODnOOCpizjgqvjgrrjg58NCivjgqvjgr/jg6Tjg54s44Oe44K144K3DQor44OK44Ks44Oe44OELOOCv+OCq+OCouOCrQ0KK+ODr+OCv+ODmSzjg6jjgrfjg58NCivjgqTjgrfjgq0s44Om44KmDQor44Kk44OK44Ks44OvLOODpuOCpuOCsw0KK+ODiuOCq+ODjizjgr/jgqvjg4/jg6sNCivjg4vjgrfjg6Tjg54s44Ok44K544Oo44K3DQor44K344Oi44OALOODn+ODqOOCsw0KK+OCt+OCsuOCvyzjgr/jgqvjgqoNCivjg57jg4Tjg6Ljg4gs44OS44Ot44K344KyDQor44Kr44K/44Ok44OeLOODpuOCpg0KK+OCveODjizjgqvjg4Tjg58NCivjgqTjgrvjgq0s44Om44Kt44KqDQor44Kk44OI44KmLOODqOOCt+OCq+OCug0KK+OCu+OCreODjSzjg57jgrXjgqoNCivjg6Djg6njg6Tjg54s44OV44K444KqDQor44Oe44Or44Ok44OeLOOCseOCpOOCuA0KK+OCr+ODreOCteODryzjg6jjgrfjg5Xjg58NCivjgrnjg58s44OI44Kq44OrDQor44OO44Kw44OBLOODpuOCpuOCuA0KK+OCteODiOOCpuODnyzjg5Ljg4fjgq0NCivjgqrjgqrjgqvjg68s44OE44Kw44OS44OIDQor44OK44Kr44OOLOODkuODh+ODjuODqg0KK+OCquOCquOCpOOCtyzjgrgNCivjg4/jg5Ys44Ki44Kt44OpDQor44Km44OB44OALOODjuODquODnuOCtQ0KK+ODn+OCrSzjg5Xjg5/jg47jg5YNCivjgrnjgrrjgq0s44OE44ON44Om44KtDQor44Kr44K144OP44OpLOOCpOOCuuODnw0KK+OCquOCquOCr+ODnCzjgqvjgrrjg4/jg6sNCivjgqvjgr/jgqvjg58s44OO44Oq44Kr44K6DQor44K/44Kr44OP44K3LOODiOOCt+ODkuOCsw0KK+OCpOOCt+OCq+ODryzjgqvjgrrjg6QNCivjgr/jgqvjg4jjg6os44K/44Kr44KqDQor44K/44OL44Kw44OBLOOCt+ODs+OCuA0KK+OCu+OCrSzjg6bjgq3jg57jgrUNCivjgq/jg5zjgr8s44Oe44K144OIDQor44Ki44OZ44Kr44OvLOODoOODhOOCqg0KK+ODleOCuOODnuOCrSzjgr/jgrHjgrcNCivjgqvjgr/jg6Tjg54s44Oe44K144Om44KtDQor44Kz44Ok44OeLOOCseODs+OCuA0KK+ODj+OCt+ODouODiCzjgqLjgrHjg58NCivjgrnjg58s44Of44OB44KqDQor44OL44K344Kr44OvLOODkuODreOCtw0KK+OCteODr+ODnizjgqLjg6TjgrMNCivjg4/jgrfjg6Ljg4gs44Om44Km44KzDQor44OK44Kr44K/LOODpOOCueODnuOCtQ0KK+OCpuODgeODpOODnizjg5Ljg63jgrcNCivjgrXjgrXjgq0s44Oe44OqDQor44Ki44K144OP44OpLOODn+ODhOODkuODrQ0KK+ODi+ODg+OCvyzjg5Xjg5/jgrMNCivjg4Djg7Ms44Or44Oq44KzDQor44K544Ku44K/LOODhuODhOOCtw0KK+ODpOODnuODouODiCzjgrfjg7PjgqTjg4ENCivjgqrjg5Xjg4Es44Of44KtDQor44Kz44OQ44Ok44K3LOODn+ODr+OCsw0KK+ODn+ODqOOCtyzjgrPjgqbjgq3jg4ENCivjgqTjgrfjg4As44OS44OH44OS44KzDQor44Kq44OL44KtLOODjuODnOODqw0KK+OCr+ODquODj+ODqSzjgr/jg5/jgqoNCivjgrfjg6njgqQs44OE44Kr44K1DQor44K144Kr44OL44K3LOOCseODs+OCpOODgQ0KK+OCquODgCzjg5LjgrXjgrcNCivjgqvjg57jgrks44Kx44Oz44K+44KmDQor44OK44Kr44Ks44OvLOODnuOCteODqOOCtw0KK+OCq+OCt+ODouODiCzjgq3jg6fjgqbjgqTjg4ENCivjg5Djg7Pjg4njgqYs44Om44K644OrDQor44OV44K/44OfLOODnuOCteOCtw0KK+ODpOODnuOCt+OCvyzjgr/jgqvjgrcNCivjg4/jg6Tjgrcs44Om44Km44K4DQor44Kr44Ky44Ok44OeLOODn+ODjuODqw0KK+OCouOCueODnizjg47jg5bjgqoNCivjgrfjg6Ljg6Djg6ks44Om44Km44Kk44OBDQor44Ok44Oe44Kw44OBLOOCv+ODgOOCtw0KK+ODpOODnuODiCzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44K344Ky44OrDQor44Oe44OE44OA44Kk44OpLOOCq+OCuuODpA0KK+ODnuODhOODoOODqSzjg4jjgrfjg5/jg4ENCivjgrPjg7Pjg44s44Oo44K344OkDQor44Kq44Kq44OP44K3LOODpOOCteODluODreOCpg0KK+OCreOCr+OCvyzjgrfjgrLjgq0NCivjg6jjgrfjgqrjgqss44OS44Ot44K3DQor44K144OOLOODqOOCt+OCqg0KK+OCv+ODiuOCqyzjg6bjgq3jg47jg6oNCivjgrXjgrXjgq0s44K544K544OgDQor44Kr44Ov44Kw44OBLOOCouODhOOCtw0KK+ODpOODnuOCt+OCvyzjgr/jg4TjgqoNCivjgr/jgrHjg6Djg6ks44OV44Of44KqDQor44OV44Kv44OBLOOCq+OCuuOCqA0KK+ODnuODiuOCqyzjg4jjg5/jgqgNCivjgqLjg6njgq0s44K/44Kr44OO44OWDQor44OS44Op44OOLOODqOOCt+OCq+OCug0KK+ODiuOCq+ODoOODqSzjg4Tjg4jjg6ANCivjg4/jgrfjg6Ljg4gs44OI44K344Kr44OEDQor44Kr44OI44KmLOOCpOOCr+OCsw0KK+ODj+ODnuOCq+ODryzjgq/jg4vjgqoNCivjg4/jg6Tjgrcs44Kx44Kk44KzDQor44Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCueOCuuOCrSzjgqTjg4Hjg63jgqYNCivjgr/jgrHjgqbjg4Es44Kr44K644OS44KzDQor44OL44K3LOOCs+OCpuOCpOODgQ0KK+OCpOODr+ODm+ODqizjg4jjgrfjg57jgrUNCivjgqTjg57jgqQs44Kv44Of44KzDQor44Oi44Oq44OOLOOCv+OCq+OCtw0KK+ODi+OCt+ODj+ODqSzjgrHjgqQNCivjgq3jg6rjg6Qs44OS44K144OIDQor44K144OI44KmLOODiOODqOOCsw0KK+ODm+OCveODgCzjg5LjgrXjgrMNCivjgr/jgqvjg4/jgrcs44K/44OA44K3DQor44OK44Kr44K444OeLOOCt+OCsuODqw0KK+ODpOOCueODj+ODqSzjg4rjg6vjg6bjgq0NCivjgq/jg63jgqTjg68s44K/44Kr44K3DQor44Kr44OiLOODkuODreOCtw0KK+OCouOCq+ODnuODhCzjgq/jg4vjgqLjgq0NCivjgq3jgr/jg6Djg6ks44Oe44Om44OfDQor44OL44K344OALOODpuOCreOCsw0KK+OCquOCq+ODgCzjgrfjg7PjgqTjg4ENCivjgrXjgrXjgq0s44OI44K344Om44KtDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCt+ODn+OCuizjgqTjgrXjg6ANCivjgqjjg7Pjg4ks44K344Oz44K544KxDQor44Km44OA44Ks44OvLOODhuODq+OCqg0KK+OCt+ODn+OCuizjg47jg6rjg5Xjg58NCivjgqLjgqrjg6Tjgq4s44K744Kk44K+44KmDQor44OP44K344Oi44OILOOCq+OCuuOCqg0KK+OCv+OCseOCpuODgSzjg5Ljg4fjgqLjg4QNCivjgqLjg6njgqQs44Ok44K544K3DQor44Kk44K344K444OeLOOCpOOCteOCqg0KK+OCs+OCrOODjSzjg5Ljg4fjgqoNCivjgrXjg6/jgrfjg54s44K344Oz44Kk44OBDQor44K/44Kr44Ok44OK44KuLOODn+ODjuODqw0KK+ODnuOCteODgCzjg5Ljg63jg5/jg4ENCivjgrfjg5/jgros44Ki44Kt44OS44OHDQor44Kq44OO44OH44OpLOOCv+OCq+OCqg0KK+OCv+ODiuOCqyzjg5/jg4Tjg6sNCivjg47jg6Djg6ks44OO44OW44KqDQor44Oo44K344OALOODkuODreOCtw0KK+ODqOOCt+ODgCzjg4jjgrfjgrnjgrENCivjgrXjgr/jgrEs44K344Oz44K4DQor44K144Kk44OI44KmLOODnuODouODqw0KK+ODn+ODpOOCrizjg5Ljg63jgrcNCivjgr/jgqvjgrfjg54s44Kx44Kk44K4DQor44Kr44OQ44OkLOODkuODreODleODnw0KK+OCpOOCt+OCtuOCrSzjgrfjg7PjgqTjg4ENCivjgqvjgqzjg6Qs44Oo44Km44Kk44OBDQor44Kz44K/44OLLOOCv+OCr+ODouODqg0KK+OCs+OCueODgCzjg6TjgrnjgqLjgq0NCivjgqTjgrjjg6os44Om44K/44KrDQor44Oe44Or44Ok44OeLOOCv+ODn+ODpA0KK+OCq+ODiuOCpCzjg6jjgrfjgqoNCivjg6Tjgq4s44Of44OE44KwDQor44OV44K444OOLOOCteODiOOCtw0KK+OCs+ODh+ODqSzjg57jgrXjg4gNCivjgrnjgq7jgqos44Oe44K144Om44KtDQor44K544Ks44OP44OpLOOCs+OCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg5/jg4Tjg6TjgrkNCivjgqrjgqss44OP44Or44Ok44K5DQor44Kk44K344Oe44OrLOOCquOCteODoA0KK+ODn+ODpOOCtuOCrSzjgrPjgqbjgr7jgqYNCivjg4/jg57jg44s44Of44OB44KqDQor44Kz44K/44K444OeLOODqOOCt+ODjuODqg0KK+OCv+OCq+OCt+ODnizjgqLjgrHjg5Xjg58NCivjg4Tjgqvjg4As44K744Kk44Kk44OBDQor44OK44Kr44Og44OpLOOCq+ODhOODleODnw0KK+OCv+OCseODgCzjg57jgrXjg47jg6oNCivjg6Tjgrnjg6Djg60s44OP44Or44OS44KzDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODleOCuOOCt+ODnizjgrfjgrLjg57jgrUNCivjgqrjgqvjg4As44K/44Kx44K3DQor44Ki44OkLOODn+ODhOODnuODqw0KK+ODiuOCq+ODoOODqSzjg5/jg4Tjg57jg6sNCivjgr/jgqvjg4/jgrcs44K/44Kx44OS44OtDQor44K544Ks44OP44OpLOOCt+OCsuOCv+ODgA0KK+ODpuOCouOCtSzjgrHjg7PjgrgNCivjgqTjgrfjgqQs44Og44ON44Oo44K3DQor44Kq44Kq44Kv44OcLOODkuODreODiOOCtw0KK+OCquOCteODryzjg57jgrXjgr/jgrENCivjg6Tjg57jg6Ljg4gs44Of44Kt44KqDQor44Kk44Oe44Kk44K644OfLOOCq+OCuuODkuOCsw0KK+OCquOCq+ODgCzjg6jjgrfjg5Ljg60NCivjg4rjgqvjg6Djg6ks44Kv44OL44KqDQor44K/44OK44KrLOOCreODqOOCtw0KK+ODiuOCq+ODjizjgr/jgq/jgqoNCivjgqrjgqrjg6Ljg6os44Kr44K644OS44KzDQor44Ok44Oe44Oi44OILOOCq+OCuuOCqg0KK+ODiuOCrOOCpCzjg6bjgq3jg57jgrUNCivjgrPjg5Djg6Tjgrcs44Oo44K344OP44OrDQor44OS44Kt44OBLOODkuOCteOCtw0KK+ODpOODnuODgCzjg4jjgrfjgqoNCivjg4Tjgqvjg6Ljg4gs44OE44OI44OgDQor44Kk44OO44Km44KoLOODnuOCteODiA0KK+OCpOODjuOCpuOCqCzjgqLjgq3jg6kNCivjgrnjg5/jgqvjg68s44Kr44Kq44OrDQor44OV44Kv44OALOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuODouODiCzjgrvjg4TjgrMNCivjgrXjgqTjg4jjgqYs44Om44Km44KzDQor44Kr44Oz44OQLOODqOOCt+ODn+ODhA0KK+OCteODqeOCpCzjg57jgrXjgqLjgq0NCivjgrXjgqvjgq0s44K344On44Km44K4DQor44Ok44K544KkLOOCv+OCq+OCtw0KK+OCq+ODn+ODoOODqSzjgr/jgqvjgrcNCivjgrvjg5ks44Oo44K344K/44KrDQor44Oo44K344OALOODiOOCt+OCq+OCug0KK+ODiuOCrOOCuyzjgr/jg4DjgrcNCivjg5Xjgq/jg4Es44Kk44K644OfDQor44OV44Kv44OALOOCuA0KK+ODjuODiuOCqyzjg47jg5bjg5LjgrMNCivjgqTjg57jg4As44Oe44K144OS44OtDQor44OL44K344Kr44OvLOODnuOCueOCsw0KK+OCs+ODpOODjizjg5Ljg4fjgqoNCivjg4rjgqvjgrbjg68s44Ki44Kt44KqDQor44Kq44Ks44OvLOOCv+OCq+OCtw0KK+ODiuOCq+ODpOODnizjg4/jg6vjg5LjgrUNCivjg4zjg47jgqvjg68s44Kx44Kk44KzDQor44K944ONLOODleODn+OCqg0KK+ODn+OCvuOCsOODgSzjg6bjgq3jgqoNCivjgrPjg5Djg6Tjgrcs44Kk44Ov44KqDQor44Oo44K344Oe44OELOODnuOCteOCqg0KK+OCquOCquODj+ODqSzjg57jgrXjgqrjg58NCivjg6Tjg57jg4As44K344Oz44K4DQor44Of44OO44Kw44OBLOODqOOCt+ODjuODqg0KK+OCt+ODs+ODoeODsyzjgr/jgqvjg5Xjg58NCivjg47jgrss44Oe44K144KqDQor44Kk44Ov44OP44K3LOODquODp+OCpuOCpOODgQ0KK+OCouOCq+OCpCzjgr/jgrHjgrcNCivjg4Tjgr/jg6Ljg4gs44Oe44K144OP44OrDQor44OK44Kr44Oi44OILOODn+ODjuODqw0KK+OCr+ODgOODiuODnyzjg57jgrXjg6bjgq0NCivjgqTjg4Hjg4As44K/44Kr44K3DQor44Ok44OOLOOCqOOCpOOCuA0KK+ODnuODhOOCrSzjgq3jg5/jgqoNCivjgrXjgrXjgq0s44Oo44K344K344KyDQor44OV44Or44OOLOOCq+OCquODqw0KK+ODleOCuOOCvyzjgqLjgq3jg6kNCivjgqTjg47jgqbjgqgs44Of44OJ44OqDQor44K/44OkLOODn+ODhOODpOOCuQ0KK+ODn+ODpOOCtuODryzjgr/jg63jgqYNCivjg6/jgr/jg4rjg5ks44Oo44Km44KzDQor44Ki44Kv44ONLOODiOOCt+ODreOCpg0KK+ODm+OCt+ODjizjgrfjg7PjgqTjg4ENCivjg6jjgrfjg4As44Kr44K644KqDQor44Km44Ko44Og44OpLOODjuODnOODqw0KK+OCq+ODn+ODpCzjgrHjg7PjgrgNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44Ki44Oz44OJ44KmLOOCv+OCq+ODj+ODqw0KK+ODiOODqOOCpOOCuuODnyzjg4jjgrfjgqoNCivjgq/jg6/jg4os44OO44Oq44KzDQor44OL44Kk44OfLOOCq+ODhOOCtw0KK+ODn+OCpuODqSzjgqrjgrXjg6ANCivjg47jg6Djg6ks44Ki44Kt44OpDQor44Kq44Kr44OALOOCuOODpeODsw0KK+OCouOCteODjOODnizjgqvjgrrjg5Ljg60NCivjgrXjgrXjgqos44OS44OH44Om44KtDQor44Kk44OK44Ks44KtLOODnuOCteODiA0KK+OCueOCrOODr+ODqSzjgrXjg4jjgrcNCivjgrfjg6fjgqbjgrgs44K/44Kx44K144OADQor44K/44Ks44OvLOODn+ODjuODqw0KK+OCveOCrCzjg47jg5bjg4jjg6INCivjgrfjg6fjgqbjg68s44Kt44Oo44OfDQor44Oe44OE44Kr44OvLOODkuODreODpuOCrQ0KK+OCt+ODouODoOODqSzjg6bjgqbjgrgNCivjg6/jgr/jg4rjg5ks44OK44Kq44Om44KtDQor44Kz44OQ44Ok44K3LOOCt+ODs+OCuA0KK+OCpOOCpOODgCzjgrPjgqbjgqTjg4ENCivjg5Xjgq/jg6Ljg4gs44Kx44Oz44Kk44OBDQor44Og44Op44Ok44OeLOODkuODreOCrQ0KK+ODm+ODqizjg57jgrXjgqLjgq0NCivjg6Tjg57jg44s44OS44OH44KqDQor44OL44K344Ov44KtLOODqOOCpuOCuA0KK+ODnuODhOOCqizjg57jgrXjg4oNCivjgqrjgqvjg6Ljg4gs44Oe44Kz44OIDQor44Kq44Kq44K144KtLOOCseODs+OCpOODgQ0KK+OCpuODoeODouODiCzjg4rjgqrjg5Xjg58NCivjgqrjgqvjg6Djg6ks44Ki44K/44OrDQor44Kz44Kk44KxLOOCs+OCpuOCu+OCpA0KK+OCquOCquOCv+ODiyzjg57jgrXjgqLjgq0NCivjgqvjgr/jgqrjgqss44Oe44K144KtDQor44Kq44Kr44OALOOCt+ODgeODreOCpg0KK+ODleOCr+OCt+ODnizjg6jjgrfjgqoNCivjgqjjg4Djg4rjgqss44Ok44K544OO44OqDQor44K544K644KtLOOCt+OCsuODqw0KK+OCpOODgeOCq+ODryzjgrvjgqTjgqTjg4ENCivjgq/jg63jgqvjg68s44Kt44Oo44K3DQor44K144OI44KmLOOCreODqOODkuOCtQ0KK+OCquOCquOCteODryzjgqvjgrrjg5LjgrMNCivjg6Ljg4Hjgrrjgq0s44K544Ko44OS44OtDQor44Ok44Oe44K344K/LOOCseOCpOOCpOODgeODreOCpg0KK+OCpOODgeOCq+ODryzjgr/jgqvjgrcNCivjg5Xjgqvjgrbjg68s44Kr44K644ObDQor44Kv44Oc44K/LOODjuODluOCqg0KK+ODi+OCt+ODoOODqSzjgrPjgqbjgrgNCivjg43jgq7jgrcs44OS44K144Om44KtDQor44Kz44Oz44OJLOOCseODs+OCuA0KK+ODleODq+ODpCzjg5/jg4Tjgq4NCivjgrPjg5Djg6Tjgrcs44K/44OE44KqDQor44K/44Og44OpLOODkuODreODkuOCsw0KK+ODn+ODhOODj+OCtyzjg4DjgqTjg4/jg4Hjg63jgqYNCivjgq/jg57jgrbjg68s44Kr44OE44OfDQor44Ok44Oe44OALOODqOOCt+OCqg0KK+ODkuODreODhCzjgqvjgrrjg5/jg4QNCivjgqvjg43jg4As44Om44K/44KrDQor44Ki44K9LOODpuOCreOCqg0KK+OCqOODk+ODj+ODqSzjgq3jgqTjg4ENCivjg6TjgrnjgqQs44Kv44OL44KqDQor44K544OJ44KmLOODkuODreOCsw0KK+ODpOODj+OCvyzjg57jgrXjg47jg6oNCivjgrXjgqvjgqQs44OI44Oi44OS44OtDQor44K144KsLOODqOOCt+OCqg0KK+ODpOODnuOCtuOCrSzjgqjjg5/jgrMNCivjg4rjgqvjg6Djg6ks44Oo44Km44KzDQor44Kk44K244OvLOODkuODreODgeOCqw0KK+OCouODqeOCpCzjgrHjg7PjgqTjg4ENCivjgqbjg5bjgqvjgr8s44K144OA44OfDQor44Ov44K/44OM44KtLOOCv+ODgOODpuOCrQ0KK+ODkuOCt+OCvyzjg47jg5zjg6sNCivjgqvjg4jjgqYs44Om44Km44KzDQor44Ok44Oe44ONLOODqOOCt+ODiA0KK+ODpOODnuOCt+OCvyzjg5Ljg63jgrcNCivjg47jg6Djg6ks44Oo44K344Ot44KmDQor44Ok44OK44KkLOODnuOCteODpuOCrQ0KK+ODoOODqeOCq+ODnyzjg57jgrXjg5/jg4ENCivjgqLjgqrjgq0s44Ki44Kt44OpDQor44Ok44K344OtLOOCueOCueODoA0KK+OCouOCteODnizjg57jgrXjg5Ljg60NCivjgqrjgq/jg4As44OV44Of44KqDQor44Kk44K344OQ44K3LOODpuOCpuOCuA0KK+ODn+ODiuODn+ODhyzjg5Ljg4fjgqLjgq0NCivjgqTjg4zjgrrjgqss44Kz44Km44OY44KkDQor44OI44Kt44OvLOODqOOCt+ODj+ODqw0KK+ODn+OCpuODqSzjg6Tjgrnjg47jg5YNCivjg57jg5bjg4Es44OI44K344OP44OrDQor44Kq44OQ44OpLOODkuODreODpuOCrQ0KK+ODnuODhOOCrSzjg5Ljg63jgrcNCivjgqjjgrDjg4Es44Kx44Oz44Kk44OBDQor44Kq44Kq44OfLOOCv+OCseOCtw0KK+ODr+OCv+ODiuODmSzjgr/jgrHjgrcNCivjgqLjg6njgqvjg68s44K344Oz44K4DQor44K544Ks44OOLOOCouOCreODqQ0KK+ODpOOCueOCpCzjgrPjgqbjg5jjgqQNCivjg5/jg6Tjg6Ljg4gs44OS44Ot44Ok44K5DQor44OV44K444Ku44OvLOOCs+OCpuOCpOODgQ0KK+OCreOCv+OCrOODryzjg5/jgq3jgqoNCivjgr/jg4vjgrDjg4Es44Of44OE44OrDQor44Kz44K444OeLOODqOOCt+OCouOCrQ0KK+OCouODnuOCq+ODryzjg6bjgr/jgqsNCivjgqrjgqrjg4zjgq0s44Om44K/44KrDQor44K/44OK44OZLOOCs+OCpuOCuA0KK+ODnuODq+ODj+OCtyzjgqTjgrXjgqoNCivjg6Tjg4njg6Qs44K444Ol44Oz44Kk44OBDQor44Kq44Kq44Ks44KvLOODqOOCt+ODkuODrQ0KK+OCteOCq+OCvyzjgrPjgqbjg5jjgqQNCivjg4/jg6ks44OS44OH44OfDQor44K/44Kr44KuLOODkuODh+OCqg0KK+OCouOCpOODj+ODqSzjgqLjgq3jg6kNCivjgqrjgqrjgr8s44OI44Kq44OrDQor44Ki44Kt44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCt+ODn+OCuizjgr/jgqvjgqoNCivjgrPjg5Djg6Tjgrcs44Kq44K144OV44OfDQor44OP44K/44Oi44OILOOCseODs+OCuA0KK+OCpuOCueODgCzjgr/jgqvjg47jg5YNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44OK44Kr44Ks44OvLOODhuODhOOCqg0KK+ODnuODhOODkOODqSzjg4/jg6vjgqoNCivjgq/jg4zjgq4s44Om44K/44KrDQor44Kq44Ks44OvLOODqOOCt+OCqg0KK+ODhOOCuCzjgqvjgrrjgr/jgqsNCivjgqvjg6/jgqQs44Kx44Kk44Kk44OB44Ot44KmDQor44K544Ks44Ov44OpLOOCt+ODpeOCpuOCpOODgQ0KK+ODoOODiOOCpizjgqvjgrrjgqoNCivjgqrjg5Djg6ks44Ok44K544OI44K3DQor44Kr44OI44KmLOOCv+OCq+ODpuOCrQ0KK+OCq+ODluODqeOCrSzjg6bjgq3jgqoNCivjg6/jgqvjgr/jg5ks44OE44OI44OgDQor44Kq44Ks44OvLOOCs+OCpuOCt+ODreOCpg0KK+OCpOODr+OCteOCrSzjg5Ljg63jg6bjgq0NCivjg4rjg6rjgr8s44Kq44K144OgDQor44Ki44Kt44Ok44OeLOOCv+OCq+OCtw0KK+ODn+ODhOOCpCzjgrHjgqTjgqTjg4ENCivjgqjjg7Pjg4ks44Om44K/44KrDQor44Oo44ON44K/LOOCouOCreOCqg0KK+OCouOCquOCpCzjgq3jg6jjgrcNCivjgqrjgqvjg6Ljg4gs44Oo44K344OS44K1DQor44Kq44Kq44OE44KrLOOCt+ODs+OCpOODgQ0KK+ODleOCr+ODouODqizjgrXjgqvjgqgNCivjg4bjgrfjg54s44Kr44K644Oe44K1DQor44OP44OeLOODkuODh+OCrQ0KK+ODqOOCt+ODgCzjg4/jgrjjg6ENCivjgqvjg6/jg5ks44Oo44K344OP44OrDQor44K/44OK44KrLOODpOOCueODjuODqg0KK+OCv+OCq+ODj+OCtyzjgq3jg6fjgqbjgqTjg4ENCivjgr/jg4rjg5ks44OV44Of44Ki44KtDQor44Ki44K9LOODkuODreOCpOODgQ0KK+OCv+OCq+ODgCzjg5Ljg63jgrcNCivjg5/jg6Tjg44s44OI44K344KqDQor44Km44Ko44K644OfLOODkuODiOOCtw0KK+OCpOODgeOCq+ODryzjg6TjgrnjgqLjgq0NCivjgqLjgrXjg68s44OI44Oi44OV44OfDQor44Kk44OK44Oi44OILOOCq+OCuuOCqg0KK+ODouODquODpCzjg5Ljg4jjgrcNCivjg4rjgqvjgr/jg4ss44Kx44OzDQor44Of44Ok44Oi44OILOOCpOODgeOCvuOCpg0KK+ODn+OCr+ODiyzjgqjjgqTjgqTjg4ENCivjgq3jgr/jg6Djg6ks44K/44OA44Oe44K1DQor44Ok44K/44OZLOODnuOCteODkuODhw0KK+ODiuOCrOOCq+ODryzjg6rjg6fjgqbjgqTjg4ENCivjg6Tjg4os44Kr44K644KqDQor44K144Kv44OeLOODn+ODhOODqw0KK+OCouODqeOCpCzjg4jjgrfjgqoNCivjgrfjg57jg4As44OK44Kq44KzDQor44OG44K644KrLOOCt+ODpeODs+OCpOODgQ0KK+OCpuOCqOODjizjgrfjg6Xjg7PjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kq44Kq44Kv44Ov44OALOODnuODiuODlg0KK+ODqOOCs+ODpOODnizjg6jjgrfjgqrjg58NCivjg6/jgr/jg4rjg5ks44Oo44Km44Kk44OBDQor44OL44K344Og44OpLOOCouOCreODjuODqg0KK+OCv+OCq+ODnuODhCzjgrPjgqbjgqTjg4ENCivjg4vjgrfjg6Djg6ks44K/44OE44OeDQor44Kk44OB44KtLOODkuODreOCtw0KK+OCpOODr+OCt+OCvyzjg47jg5bjg4Tjg4oNCivjgqrjg44s44OI44K344KqDQor44OL44K344KtLOOCv+ODhOOCqg0KK+OCteODryzjgqvjgrrjgqoNCivjgr/jgqvjg58s44Kq44K144OgDQor44Ok44K544OV44KvLOOCseODs+OCuA0KK+OCquOCquOCvyzjg5Ljg63jgrcNCivjgqrjgqvjg6Ljg4gs44OS44Ot44Oe44K1DQor44K144Kr44KkLOODpOOCueOCqg0KK+ODleOCuOODouODiCzjg4jjgq3jgqoNCivjg57jg4Tjg6Ljg4gs44K344Ky44OO44OqDQor44Kq44Kq44Ok44OWLOOCq+OCuuODpA0KK+ODi+OCt+ODoOODqSzjgrfjg6XjgqbjgqTjg4ENCivjg5vjg6rjgqbjg4Es44Kx44Kk44Kk44OBDQor44Kk44K344Oi44OILOOCt+ODpeOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjg4rjg6rjgqoNCivjgr/jgrHjgqbjg4Es44K344Oz44Kk44OB44Ot44KmDQor44Oi44OI44Ok44OeLOOCs+OCpuOCt+ODreOCpg0KK+ODqOOCt+ODiuOCrCzjgrPjgqbjgrgNCivjg5Xjg6vjgqvjg68s44Of44OB44KqDQor44K/44OL44Kw44OBLOODqOOCt+OCqg0KK+OCv+OCseOCs+OCtyzjg57jgrXjg4jjgrcNCivjg4Tjg6Djg6ks44Kz44Km44K744KkDQor44Kq44OOLOOCt+OCsuOCqg0KK+OCquOCq+ODouODiCzjgrXjg4jjgrcNCivjg5Xjg6vjgr8s44Oe44K144OS44OtDQor44OL44K344OOLOOCveOCpuOCpOODgeODreOCpg0KK+ODn+OCuuOCv+ODiyzjg5Ljg63jg6bjgq0NCivjgrPjg6Tjg54s44OS44K144K3DQor44Kt44Kv44OBLOOCseODs+OCpOODgQ0KK+OCquOCquOCs+OCpuODgSzjg57jgrXjgqLjgq0NCivjgqvjg6/jgr8s44K/44Kr44K3DQor44Kv44OP44OpLOODqOOCt+ODpuOCrQ0KK+ODleODq+ODj+OCtyzjgrPjgqbjgr7jgqYNCivjgr/jgqvjg6jjgrcs44OV44Of44OI44OoDQor44Kr44K5LOODjuODluODpuOCrQ0KK+OCouODn+ODouODiCzjgrnjgrnjg6ANCivjg6Djg43jg4jjgqYs44OI44K344KqDQor44Oe44OE44Oi44OILOOCueOCueODoA0KK+OCv+OCq+ODiuOCtyzjg57jgrXjgqLjgq0NCivjgqLjgq3jgr8s44OI44K344KqDQor44K/44Kr44OP44K3LOODpOOCueODn+ODgQ0KK+ODiuOCrOOCpCzjgr/jgqvjgrcNCivjg6jjgrfjg4As44OE44Kr44K1DQor44Oe44OE44Oi44OILOODpOOCueOCouOCrQ0KK+ODiOOCr+ODgCzjg5/jg4HjgqoNCivjg5Ljg6njgqQs44OO44K+44OgDQor44Kq44Kv44K344OeLOOCv+OCq+OCtw0KK+ODnuOCt+OCvyzjgrfjgrLjgqoNCivjg6Tjg57jg4As44Kt44Of44OS44OtDQor44K144Kv44Op44KkLOODiOODouOCqg0KK+OCv+OCreOCtuODryzjgrXjg4jjgrcNCivjg57jgrnjgrMs44Om44Km44K4DQor44K344Oz44Kr44OvLOODkuODreOCqA0KK+OCquOCquOCv+ODiyzjgr/jg4Djg5Ljg60NCivjgqvjg6/jg44s44Oo44K344Of44OEDQor44Ki44Op44Kr44OvLOODhuODhOOCqg0KK+OCouODgOODgSzjgr/jgqvjg6bjgq0NCivjgqbjg4Hjg4As44Kx44Oz44K4DQor44Kz44OP44OpLOODiOOCt+ODkuOCsw0KK+OCquOCquODj+OCtyzjgqvjgrrjg5LjgrMNCivjgqvjg6Hjgqrjgqss44Oo44K344KqDQor44Of44Og44OpLOODiOODn+OCqg0KK+OCpOOCrSzjg6jjgr4NCivjgqLjgrfjgrrjgqss44OS44Ot44K3DQor44Ok44Oe44Oi44OILOODkuODreODjuODqg0KK+ODqOOCt+ODgCzjgqrjgrXjg6ANCivjg4/jg6njgqrjgqss44Kr44OE44Ok44K5DQor44Km44Or44Ov44K3LOODkuODreOCtw0KK+OCquODs+ODgCzjgrHjg7PjgrgNCivjgqTjg7Pjg4ks44Oe44K144KqDQor44K/44Kx44OK44KrLOODnuOCteODiOOCtw0KK+ODleOCuOOCteODryzjg57jg6Ljg6sNCivjgqrjgqrjg6Ljg6os44Oe44K144Om44KtDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+OCt+ODp+OCpuOCuCzjg6jjgrfjg47jg6oNCivjgq3jgr/jgrjjg54s44Oo44K344Ki44KtDQor44Kk44OI44KmLOOCouOCreODqQ0KK+ODkuODqeOCqizjgqvjgrrjgr/jgqsNCivjgrnjg5/jg6Ljg4gs44OO44OW44OkDQor44OK44Kr44K/44OLLOODkuODreOCtw0KK+OCouODqeOCt+ODnizjg6bjgq3jgqoNCivjgqvjgr/jg6Tjg54s44Om44Kt44OO44OWDQor44Km44Ko44OALOODnuOCteODkuODrQ0KK+ODleOCuOODouODiCzjg5Ljg63jg5Xjg58NCivjg6Tjg57jg4/jgr8s44Oq44Ol44Km44K4DQor44Kq44Kq44K/44OLLOODhOODiOODoA0KK+OCpOOCpOODjOODnizjg6jjgrfjg5Ljg60NCivjg4rjgqzjgrXjg68s44Oo44K344Ot44KmDQor44Ok44K544OALOOCt+ODpeOCpuOCuA0KK+ODleOCr+OCt+ODnizjg6rjg6fjgqbjgqTjg4ENCivjgrXjgqvjgq3jg5Djg6ks44Ki44Ok44KzDQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+ODqOOCs+OCtuODryzjg5Xjg5/jgr/jgqsNCivjgqvjg4njg44s44Kr44K644OfDQor44Ok44Oe44Kq44KrLOOCreODqOOCtw0KK+OCq+ODn+OCv+ODiyzjg5Ljg63jgq0NCivjgqvjg4jjgqYs44Ko44OE44Ot44KmDQor44OO44Oi44OILOODiOOCt+OCq+OCug0KK+OCueOCruODouODiCzjgrvjgqTjgqTjg4ENCivjg5Xjgrjjg44s44Kz44Km44K4DQor44Kk44OO44Km44KoLOOCt+ODp+OCpuOCuA0KK+ODj+OCuyzjg57jgrXjgqvjg4QNCivjg6Ljg6os44Ko44Op44OWDQor44Kr44Ov44OQ44K/LOODkuODh+OCqg0KK+OCq+ODr+OCvuOCqCzjgrfjg6fjgqbjgqTjg4ENCivjg4/jgrfjg6Ljg4gs44OA44Kk44K344OzDQor44OS44Ot44Oe44K1LOODpOOCueODkuODrQ0KK+OCreOCt+ODouODiCzjgq/jg4vjgqoNCivjg5Ljg6njg4Tjgqss44Of44OO44OrDQor44Km44Ko44OALOODqOOCt+ODpuOCrQ0KK+OCouODqeOCpCzjg4jjgrfjg5LjgrMNCivjgqTjgqTjg4As44Oe44K144Om44KtDQor44OS44Ot44K344OeLOOCt+ODp+OCpuOCvuOCpg0KK+OCpOOCteOCqyzjgqvjg4Tjg5Ljg60NCivjgrnjgrrjgq0s44Oo44K344KqDQor44Kv44Op44Oi44OBLOOCv+OCq+OCqg0KK+OCteOCpOODiOOCpizjg57jgrXjgqoNCivjgrnjgrrjgq0s44Of44OE44KwDQor44OV44Kr44OkLOODhuODhOOCuA0KK+OCteOCq+OCpCzjg4jjgrfjg63jgqYNCivjgqrjgqrjg6/jg4As44OI44K344KqDQor44Kr44Oh44OkLOOCq+ODhOODnw0KK+OCr+OCteOCpuODqSzjg4jjgrfjgqoNCivjg6/jg4As44Kr44K644KqDQor44K044OI44KmLOOCreODp+OCpuOCpOODgQ0KK+ODkuODqeODleOCryzjgqLjgq3jg6kNCivjg6Ljg63jg6Qs44OS44OH44OI44K3DQor44Kk44Kx44OALOOCteODgOODpuOCrQ0KK+ODnuOCueODgCzjg57jgrXjg4/jg6sNCivjg5/jgrrjg44s44OI44K344K/44KrDQor44OP44Ok44K3LOOCreODqOODiOOCtw0KK+OCouOCquOCrSzjg4jjgrfjg5LjgrMNCivjgrPjg5Djg6os44Oe44K144Om44KtDQor44Of44K144OvLOOCteODluODreOCpg0KK+OCv+OCq+OCrizjg4bjg4TjgqoNCivjgqjjg7Pjg4ks44Kx44Oz44Kk44OBDQor44K544Ks44K144OvLOOCu+OCpOOCuA0KK+OCquODquODj+ODqSzjg4jjg6jjg58NCivjg57jg4Tjg4rjgqws44K/44Kr44OV44OfDQor44Kr44K144KkLOOCreODqOOCouOCrQ0KK+OCu+ODoOODqSzjgr/jgqvjgrcNCivjgrXjgq/jg6njgqQs44K/44Kr44Ki44KtDQor44OG44Op44Kr44OJLOODqOOCt+ODpuOCrQ0KK+ODleOCuOOCvyzjg6TjgrnjgqLjgq0NCivjgqvjg6/jg47jg5ks44Kr44Kk44OBDQor44Ki44Kq44OQLOODnuOCteODqw0KK+ODoOODqeODouODiCzjg6bjgq3jg6jjgrcNCivjg4Tjg5zjgqbjg4Es44K/44Kr44K3DQor44OV44Or44K344On44KmLOODleOCuOOCqg0KK+OCt+ODkOODpOODnizjg5Xjg5/jgqoNCivjg6Tjg57jg6Ljg4gs44K/44Kr44OS44OtDQor44Km44OB44OALOODkuODreODleODnw0KK+ODnuOCqOOCtuODryzjg4jjg5/jgqoNCivjgrPjg6Djg6ks44Ki44Kt44OO44OWDQor44Ok44Oe44K144KtLOODqOOCt+OCuA0KK+OCpuOCt+OCrSzjgqvjgrrjg58NCivjg57jg4Hjg6Tjg54s44K344On44Km44K4DQor44OV44K444OM44KtLOOCueOCueODoA0KK+ODiuOCq+ODoOODqSzjg57jg4Tjg58NCivjgq/jgrnjg6Ljg4gs44OG44Or44KqDQor44K544K644KtLOODqOOCt+OCqg0KK+OCpuOCqOODpOODnizjg4jjgrfjg6bjgq0NCivjgrPjgqTjgrEs44OS44Ot44K3DQor44OP44K744Ks44OvLOODn+ODhOOCouOCrQ0KK+ODleODq+OCq+ODryzjg6Tjgrnjg5Ljg60NCivjg6Tjg57jg4As44Ki44Kt44KqDQor44Om44OP44Op44KuLOODn+ODhOODqOOCtw0KK+OCquOCt+ODnizjg47jg6rjg6bjgq0NCivjgr3jg40s44Oe44K144OS44OtDQor44OI44Km44OeLOOCteODgeODkuODrQ0KK+OCv+OCq+ODj+OCtyzjgrfjgrrjgqoNCivjgqvjgrHjg4/jgr8s44Oe44K144KqDQor44Kk44K344KkLOOCt+OCsuODqw0KK+OCteODiOOCpizjg47jg6rjg6bjgq0NCivjg6Djg6njg6Tjg54s44Kx44Oz44K4DQor44Ob44Oq44Kw44OBLOODnuOCs+ODiA0KK+ODiuOCq+OCtuODiCzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44Oe44Kz44OIDQor44Kr44ON44KzLOODquODpeOCpuOCvuOCpg0KK+OCq+OCt+ODnizjg4jjgrfjg47jg5YNCivjg4jjgrDjg4Es44OS44Ot44OgDQor44Kz44Of44Ok44OeLOOCreODn+OCouOCreODqQ0KK+ODpOODnuOCquOCqyzjg6jjgrfjg47jg5YNCivjgr/jgqvjg4/jgrcs44Kx44Kk44Kk44OBDQor44Oi44Oq44K/LOOCseOCpOOCpOODgQ0KK+ODqOOCs+OCpCzjg6jjgrfjg47jg5YNCivjg5Ljg6njgqQs44Kx44Kk44Kk44OBDQor44K344Kk44OQ44K3LOODnuOCteOCv+OCsQ0KK+OCq+ODjeOCsyzjg57jgrXjg5Xjg58NCivjg4rjgqvjg40s44OO44OW44OP44OrDQor44K744Kt44Kw44OBLOODhuODhOOCqg0KK+ODn+ODouODqizjgr/jgqvjg5LjgrMNCivjgq3jgq/jg4Es44Oe44K144K/44KrDQor44Ok44Oe44Oi44OILOOCq+ODhOOCuA0KK+OCouODqeOCq+ODryzjgr/jgqvjgqoNCivjg4jjg6Ljgq/jg4ss44Oe44K144KtDQor44OI44Of44K/LOODjuODquOCq+OCug0KK+OCv+OCq+ODj+OCtyzjgrfjg6Xjgqbjg5jjgqQNCivjg4jjgqzjgrcs44OO44OW44KqDQor44Kr44Ov44Og44OpLOODiOOCt+ODkuODrQ0KK+ODleOCr+ODiuOCrCzjgrHjgqTjgrgNCivjg57jgq3jgr8s44OI44Kv44OfDQor44K144OOLOODn+ODjuODqw0KK+OCteODiOODoOODqSzjgrHjgqTjgrgNCivjgrXjgqvjg44s44K444Ol44Oz44OkDQor44OE44OB44OP44K3LOOCt+OCsuOCouOCrQ0KK+OCpuOCqOODjizjgrHjg7Pjgr7jgqYNCivjg4rjgqvjgqzjg68s44OS44OH44Ki44KtDQor44OI44Kv44OK44KsLOOCseODs+OCuA0KK+OCpOODiOOCpizjgqvjgrrjgqoNCivjg5LjgrXjg57jg4Qs44OI44Oo44OI44K3DQor44Kq44Kq44OE44KrLOOCq+ODoeOCqg0KK+OCq+ODr+ODouODiCzjgrfjgrLjgq0NCivjg47jg6Djg6ks44Oo44K344Kk44OBDQor44Kr44OO44KmLOODpuOCv+OCqw0KK+OCpuOCqOOCteOCqyzjg6bjgqbjgrgNCivjg5Xjgrjjg6/jg6ks44OS44Op44KqDQor44Kq44Ks44OvLOODnuOCteODiA0KK+OCr+ODqeOCvyzjg4jjg6Ljg5Xjg58NCivjg4/jg4rjgr3jg4gs44OI44Oo44OV44OfDQor44OL44K344Kr44OvLOOCv+OCq+ODqOOCtw0KK+OCqOODk+OCuSzjg5Ljg4fjgqoNCivjg6Tjgrnjg47jg6os44Oo44K344OP44OrDQor44K144Kr44KkLOOCv+OCseOCtw0KK+ODnuOCqOODgCzjg6jjgrfjgqLjgq0NCivjg5Xjgq/jg4As44K344Ky44K/44KrDQor44Ok44Oe44Oi44OILOODnuOCteOCuuODnw0KK+OCt+OCquOCvyzjg6Tjgrnjg57jgrUNCivjg6Djg6njgqvjg58s44OI44Oi44OoDQor44Kk44Kv44OfLOOCv+OCq+OCtw0KK+ODiuOCq+OCrizjg6bjg58NCivjg4jjgq/jg57jg4Qs44K/44Kr44KqDQor44K/44OL44KkLOODiOOCt+ODpuOCrQ0KK+OCquOCquODpOODnizjgrHjg7PjgrgNCivjgr/jg44s44K/44Kr44OB44ObDQor44Kq44Kq44K/LOODkuODreODjuODlg0KK+OCr+ODnuODjizjgqLjgq3jgqoNCivjgrXjg6/jgrDjg4Es44Oe44K144Kv44OLDQor44Ki44K144OOLOOCq+OCuuOCqg0KK+OCteOCq+OCsOODgSzjg47jg6rjg6bjgq0NCivjg6/jgr/jg4rjg5ks44OE44OI44OgDQor44Kr44OI44KmLOOCq+OCuuOCqg0KK+ODnuOCqOOCq+ODryzjgr/jgqvjgrcNCivjg57jg4Tjg6Ljg4gs44Kr44K644KqDQor44Oe44OE44Oi44OILOODiOOCt+OCqg0KK+ODpOODnuODiuOCqyzjgqjjgqTjgrgNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44OV44K444K/LOOCv+ODhOOCqg0KK+ODpOOCrizjg57jgrXjg58NCivjgqTjg6/jgqQs44Oe44K144K/44KrDQor44OV44Kv44K344OeLOODkuODh+ODnw0KK+ODleODq+OCq+ODryzjgrPjgqbjgqTjg4ENCivjgqrjgqzjgr8s44Oe44K144OO44OqDQor44K544K644KtLOOCv+ODgOODkuOCsw0KK+OCt+OCq+ODnizjgr/jgqvjgrcNCivjgq3jgrfjg6Ljg4gs44K344Ol44Oz44Kk44OBDQor44Kz44Ot44KuLOOCq+ODhOODnw0KK+ODleOCv+ODnyzjgq3jg6jjgrcNCivjg6Tjgrfjg60s44OI44K344KqDQor44OP44Oq44Kk44KxLOODqOOCt+ODj+ODqw0KK+OCt+ODoOODqSzjgqLjg6rjg57jgrUNCivjg4rjgqzjgq/jg6ks44Kk44OB44Ot44KmDQor44Of44OK44OfLOOCs+OCpuOCuA0KK+ODiOOCr+ODiuOCrCzjgq3jg6jjgrcNCivjgr/jg4rjgqss44OV44Kv44OgDQor44OG44Op44K144KtLOOCt+ODreOCpg0KK+OCq+ODiOOCpizjg4jjgqrjg6sNCivjg5/jgrrjg44s44Oo44K344Ki44KtDQor44K/44Oi44OILOODkuODiOOCtw0KK+OCpuODgeODgCzjg5Ljg63jgqvjgroNCivjgr/jgrHjgqTjg4Es44Oo44K344Om44KtDQor44OS44OT44OOLOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjg6rjg6fjgqbjg5jjgqQNCivjg6/jgr/jg4rjg5ks44OS44Ot44K/44OADQor44OV44Kr44OALOODnuOCteODkuODrQ0KK+OCpOOCt+OCv+ODiyzjgqvjgrrjg5LjgrUNCivjgqTjg4cs44Oo44K344Om44KtDQor44OL44Kk44K144OILOODnuOCteODpuOCrQ0KK+OCueODiuODj+ODqSzjgrfjg6fjgqbjgrgNCivjgrfjg5/jgros44Oe44K144KqDQor44Kr44OI44KmLOODjuODquODpuOCrQ0KK+ODiuOCpOODiOOCpizjgrjjg6Xjg7PjgrgNCivjgrPjgqTjgrEs44OI44Km44K544KxDQor44Kt44K/44Og44OpLOODiOODqOODkuOCsw0KK+OCq+OCrOODryzjg4jjgrfjg6bjgq0NCivjgqTjgrHjg4As44K/44Kr44K3DQor44Kr44OO44KmLOOCv+OCq+OCtw0KK+OCquOCq+ODouODiCzjgr3jgqbjgrgNCivjgrPjg5Djg6Tjgrcs44K144OA44OS44OtDQor44Kk44K344KkLOODnuOCteODkuODrQ0KK+OCteOCqOOCrSzjg57jgrnjg6bjgq0NCivjgrXjg6/jg4As44K/44Kr44K3DQor44K044OI44KmLOODjuODluODpuOCrQ0KK+OCquODjizjg57jgrXjg5Ljg60NCivjg5Xjg4rjgqrjgqss44Oe44K144Ki44KtDQor44K344Oz44OkLOODnuOCteOCq+OCug0KK+ODm+ODs+OCtuODryzjg5Ljgqvjg6sNCivjg6Tjg57jgqbjg4Es44K344Ky44K4DQor44Kk44K344OOLOODhOODiOODoA0KK+OCpOOCquOCryzjg5Ljg4fjg4jjgrcNCivjgqLjg6njgq0s44Oo44Km44KzDQor44OV44K444Ov44KtLOODn+ODjuODqw0KK+OCpOODgeODoOODqSzjg57jgrXjgq0NCivjg4/jg6Tjgrcs44Oo44K344K144OADQor44Oi44OqLOOCv+OCr+OCuA0KK+OCreODoOODqSzjgrfjgrLjg6sNCivjg6bjgq3jg5Xjgq0s44Oe44K144OS44K1DQor44OP44Ku44Oi44OILOOCpOODr+OCqg0KK+ODj+OCt+ODouODiCzjg5Ljg4fjgqoNCivjgq3jgr/jg6Tjg54s44Oo44K344OG44OrDQor44OV44K444Oi44OqLOOCseODs+OCuA0KK+OCquOCr+ODjizjgqrjgrXjg6ANCivjg6Tjg57jg4As44Of44OE44KqDQor44K/44K0LOOCv+OCq+OCtw0KK+OCouOCteOCpCzjg6jjgrfjg5Ljg60NCivjg6Ljg6rjg44s44OS44Ot44K3DQor44Of44OK44KkLOOCseOCpOOCsw0KK+ODouODquOCteODryzjg4jjg6jjgrMNCivjg4rjg6rjgrXjg68s44OV44Of44KzDQor44Oi44Oq44Oi44OILOODnuOCteODqw0KK+OCs+ODkOODpOOCtyzjg6jjgrfjg47jg6oNCivjgrfjg57jg4As44OS44OH44KtDQor44K544K644KtLOODn+OCteOCsw0KK+ODleOCr+ODgCzjgrHjgqQNCivjgqLjg6njgqQs44Ki44Kt44OO44OWDQor44K/44OL44Ok44OeLOOCt+ODpeOCpuOCpOODgQ0KK+OCquOCq+ODouODiCzjg57jg4TjgqoNCivjg4DjgqTjg6Ljg7Ms44Of44OO44OrDQor44OP44Ok44K3LOODqOOCt+ODiuOCqg0KK+OCpOOCt+ODgCzjg5Xjgq/jgqoNCivjg5Ljg63jgrXjg68s44Oo44K344Of44OBDQor44Oo44K344Kq44KrLOODnuOCteOCuuODnw0KK+ODnuODhOODouODiCzjgrfjg7PjgqTjg4ENCivjg4rjgqvjgrjjg54s44K144Kr44KoDQor44Kt44K/LOOCteODiuOCqA0KK+ODi+OCt+ODoOODqSzjgrfjgrLjgqvjgroNCivjg4/jg4Pjg4jjg6os44OS44OH44KqDQor44Ok44Oe44Oi44OILOOCq+OCuuOCqg0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjgq3jgr/jg6Djg6ks44Oe44K544OfDQor44K/44OK44KrLOODiOODn+OCqg0KK+OCpOOCquOCrSzjg4jjg5/jg6TjgrkNCivjgqvjg57jgr8s44Kz44Km44K4DQor44K344Of44K6LOODkuODreOCtw0KK+ODnuOCueOCquOCqyzjg5Ljg4fjgqoNCivjgrXjg6/jg4As44K344On44Km44KzDQor44OK44Kr44Kk44K3LOOCv+OCseODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg57jgrXjg5Ljg60NCivjg6jjgrfjgrbjg68s44Ki44Kt44KqDQor44K144K144Kq44KrLOODjuODquOCouOCrQ0KK+ODpOODnuOCsOODgSzjg4jjgrfjgqoNCivjgqTjg57jg5Xjgq8s44K/44OA44K3DQor44Kr44Of44OkLOODiOODn+OCqA0KK+ODr+OCtSzjg5Ljg4fjgqoNCivjgq3jgq/jg4Es44Ki44Kt44OS44KzDQor44Km44Kr44KkLOODn+OCreOCqg0KK+OCpOODr+ODnizjgrvjgqTjgqTjg4ENCivjg4Tjgrgs44OW44Oz44K4DQor44K/44Kx44OALOOCteODgOODhOOCsA0KK+OCu+ODiOOCrOODryzjgrfjgrLjg4jjgrcNCivjgrPjgrfjg6Djg6ks44Oe44K144K3DQor44Ov44K/44OK44OZLOOCuOODpeODs+OCpOODgQ0KK+OCpuOCteODnyzjg5/jg4Tjg47jg5YNCivjgqrjgqvjg4As44OI44K344OS44KzDQor44OV44K444Ov44OpLOOCt+ODp+OCpuOCuA0KK+OCq+ODiOOCpizjg6Tjgrnjg6bjgq0NCivjgqTjgrfjg4/jg6ks44Oe44K144OrDQor44OS44OK44K/LOOCreODp+OCpuODmOOCpA0KK+OCpuOCqOOCueOCrizjgrfjgrLjg5Ljg60NCivjgrfjg5Djgr8s44OO44OW44Kr44K6DQor44Kq44Kv44OALOODnuOCteODqw0KK+OCueODiuODpOODnizjg6jjgrfjgqoNCivjgqTjg57jgqQs44Ki44Kt44OS44KzDQor44OK44Kr44Og44OpLOODjuODluOCqg0KK+ODiuOCq+ODouODqizjgrPjgqbjgrgNCivjg5XjgqvjgrXjg68s44Og44ON44OS44K1DQor44Of44K644K/LOOCt+ODs+OCpOODgQ0KK+OCquODjizjgqvjgrrjgrcNCivjgrXjgqTjg4jjgqYs44OS44Ot44K3DQor44K344Ol44OJ44KmLOODn+ODjuODqw0KK+ODleOCr+OCpCzjgr/jg4Tjg5LjgrMNCivjg47jg4As44Kr44OK44KoDQor44Kq44Kq44OOLOODj+ODq+OCrQ0KK+OCs+OCrOODnyzjg6jjgrfjg57jgrUNCivjg5/jgq0s44Oe44K144Om44KtDQor44Kk44Kx44OALOODleODn+OCqg0KK+ODleOCuOODouODqizjg4jjgrfjg5LjgrMNCivjgr/jgqvjg4As44Kr44K644KqDQor44Kk44Kx44OALOODjuODluOCvuOCpg0KK+OCpOODiOOCpizjg47jg5bjgr/jgqsNCivjg6/jgr/jg4rjg5ks44Kr44K644OS44OtDQor44K144Ov44OALOODnuOCteODleODnw0KK+ODnuOCqOOCuOODnizjg57jgrPjg4gNCivjgqTjg4rjg6Djg6ks44K544K544OgDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODiuOCq+OCuOODnizjgrfjg47jg5YNCivjgqTjg6/jg54s44Oo44K344Om44KtDQor44Ov44Kr44OE44KtLOODkuODh+OCrQ0KK+ODj+OCu+OCrOODryzjg6jjgrfjg63jgqYNCivjgqTjg47jgqbjgqgs44K/44Kr44K3DQor44Kr44K144OP44OpLOOCs+OCpuOCuA0KK+ODi+OCt+ODpOODnizjg57jgrXjg5Ljg60NCivjgrnjg4njgqYs44K444Ol44Oz44Kk44OBDQor44Kq44Kr44OZLOODiOOCt+ODkuODrQ0KK+ODleOCr+ODkCzjgrHjg7PjgrgNCivjg57jg4Tjg4rjgqws44Ok44K544KqDQor44K144Kr44KkLOODkuODreODkuOCsw0KK+ODleOCuOOCvyzjg6bjgq3jgqoNCivjg4rjgqvjg6Tjg54s44K/44Kr44Ok44K5DQor44Oo44ON44OALOOCseODs+OCvuOCpg0KK+OCr+ODnuOCvyzjgrPjgqbjgqTjg4ENCivjgrPjg6Tjg54s44OS44Ot44Om44KtDQor44Oo44ON44Ok44OeLOOCv+OCseOCtw0KK+ODleOCuOOCq+ODryzjgrHjg7PjgrgNCivjg4/jg6rjgqzjg6Qs44OS44Ot44Ki44KtDQor44OP44K744Ks44OvLOOCq+OCuuODkuODiA0KK+ODqOOCt+ODgCzjgr/jg4DjgrcNCivjgq/jgrnjg47jgq0s44Oo44K344OV44OfDQor44K/44Kr44OP44K3LOOCteODgeOCsw0KK+ODiuOCrOOCvyzjgrfjg7PjgrgNCivjgr3jg47jgq/jg6ks44OS44Ot44K3DQor44Oe44K544Oi44OILOODqOOCt+OCqg0KK+OCquOCruODj+ODqSzjg5Ljg63jgrcNCivjg6jjgrfjg4As44Oe44OK44OWDQor44K/44OK44KrLOODnuOCteODkuOCsw0KK+OCqOODgCzjgrvjgqTjgqTjg4ENCivjg4rjgqss44K/44Oi44OEDQor44Kk44Kk44K644KrLOODjuODnOODqw0KK+ODhuODqeODi+OCtyzjg57jgrXjg47jg5YNCivjg5Xjgq/jgqQs44K744Kk44K4DQor44OH44Og44OpLOOCq+OCuuODkuOCsw0KK+OCteOCqOOCrSzjgrfjgrLjg4/jg6sNCivjgqbjg4Hjg4As44OS44OH44OO44OqDQor44K344Kk44OKLOODjuODluOCqg0KK+ODleODq+ODpCzjg6jjgrfjg4/jg6sNCivjg4rjgqzjgq/jg5ws44Kq44K144OgDQor44OG44Op44Km44OBLOODkuODh+OCouOCrQ0KK+OCquOCquOCv+OCqyzjg57jgrXjgqLjgq0NCivjg5Xjgrjjg6jjgrcs44OI44Kq44OrDQor44K144Kk44OI44KmLOODnuOCteOCqg0KK+OCr+ODreOCteODryzjg5XjgrXjgqgNCivjgqTjgrfjgqvjg68s44Kx44Oz44K944KmDQor44Oo44K344OOLOOCv+OCq+OCtw0KK+OCs+ODn+ODpCzjgqvjgrrjg6jjgrcNCivjg6Tjg57jgqzjgr8s44OI44K344KqDQor44OE44OkLOOCq+OCquODqw0KK+ODi+OCt+ODjizjg47jg6rjg6bjgq0NCivjgqbjg4Hjg4As44OS44K144KqDQor44Ov44K/44OK44OZLOOCq+OCuuODn+ODgQ0KK+ODouODquOCvyzjg47jg5zjg6sNCivjgrPjgrfjg4As44Kz44Km44K+44KmDQor44OS44Ot44K7LOODquODp+OCpuODmOOCpA0KK+ODqOOCt+ODoOODqSzjgqvjg4Tjg4jjgrcNCivjg5/jgqbjg6ks44Oo44K344Kr44K6DQor44Kz44Kk44K644OfLOODkuODh+ODjuODlg0KK+ODhuODqeOCqizjg5/jg4Tjg5Ljg60NCivjgrvjgqzjg68s44Of44OB44KqDQor44Kr44Kk44K644KrLOOCouOCreODqQ0KK+ODleOCr+ODnuOCuSzjgrnjgrrjg6gNCivjgqTjg4jjgqbjgros44K4DQor44K744Kt44Ks44OfLOODkuODreOCtw0KK+ODleOCuCzjgqTjgrrjg58NCivjg6jjgrfjg6Djg6ks44Kt44Oo44K4DQor44OV44Or44Oi44OILOODqOOCt+ODpuOCrQ0KK+OCv+OCreOCvyzjg57jg4rjg5YNCivjgqrjgqvjg4As44OS44Ot44OS44K1DQor44K/44Kr44OP44K3LOOCouOCreODqQ0KK+OCv+ODi+ODleOCuCzjg57jgrXjgqLjgq0NCivjgqTjg57jgqrjgqss44Kr44K644OS44OtDQor44Ov44K/44OK44OZLOOCseODs+OCuA0KK+ODpOODnuODouODiCzjgqvjgqrjg6sNCivjg6jjg4As44Ok44K544KqDQor44OV44Kr44Ok44OeLOODkuODreOCtw0KK+ODpOODnuOCsOODgSzjg5LjgrXjgqoNCivjgrXjg44s44Kt44OfDQor44K/44Kr44OP44K3LOODpuODqg0KK+ODnuODhOODouODiCzjgq3jg6jjgrcNCivjg6Tjg44s44OS44K144K3DQor44Ki44Kt44OQLOOCq+OCuuODqOOCtw0KK+ODn+ODieODquOCq+ODryzjg5Ljg63jg5/jg4QNCivjgr/jgqvjgrcs44Of44Oo44KzDQor44OV44Or44Kr44OvLOODn+ODjuODqw0KK+ODkuOCreOCvyzjgqjjgqTjgrgNCivjgqrjgrbjgq0s44Oo44K344Ki44KtDQor44Ki44Kq44KtLOOCt+OCsuOCquODnw0KK+OCteOCqOOCsOOCtSzjg57jgrXjg5Ljg60NCivjg5Xjgrjjg6Ljg4gs44OS44Ot44K3DQor44Kz44OL44K3LOODpuOCpuOCuA0KK+OCquOCquODi+OCtyzjgrfjg6Xjg7PjgrnjgrENCivjg5LjgrDjg4Es44OV44K444KtDQor44Kv44Oc44K/LOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuOCsOODgSzjgrfjg63jgqYNCivjg5Xjg6vjgqvjg68s44Oe44K144OIDQor44OK44Oq44K/LOOCpOODgeODreOCpg0KK+OCv+ODiuOCqyzjg5XjgrXjgqTjg4ENCivjg4/jgr/jgrHjg6Tjg54s44OG44OE44KqDQor44Of44Ok44Oi44OILOODn+OCteOCqg0KK+ODjuOCtuOCrSzjg6Tjgrnjg4/jg6sNCivjg4/jgrvjgqzjg68s44OB44On44Km44K344Ot44KmDQor44K344Op44Kr44OvLOODqOOCt+ODkuOCsw0KK+OCouOCpOODgCzjgrPjgqbjg5jjgqQNCivjg5Ljg63jgqvjg68s44OS44Ot44K3DQor44Oq44Ol44Km44Kr44OvLOODhOODqOODoA0KK+ODpOODnuOCsOODgSzjg57jgrnjg58NCivjgq/jg6rjgrXjgq0s44OS44OH44KqDQor44Oi44Oq44Oi44OILOODqOOCt+ODn+ODgQ0KK+OCr+ODnOOCvyzjg57jgrXjgqLjgq0NCivjgq/jg57jgrXjgrMs44Oi44Oq44K344KyDQor44Ki44OA44OBLOOCseODs+OCvw0KK+OCs+ODs+ODjizjg5Ljg63jgqLjgq0NCivjg6Tjg57jg6Ljg4gs44Ko44OE44KzDQor44Kk44Ov44KkLOODquODp+OCpuOCvw0KK+OCquOCquODj+ODqSzjg5Ljg4fjgqoNCivjgqTjgrfjg4/jg6ks44OI44Oi44OO44OqDQor44Ki44Kq44KtLOOCv+OCseOCtw0KK+ODouODqizjg6jjg6rjgrMNCivjg63jg4Pjg53jg7Pjgq4s44Oe44K144Ki44KtDQor44Kr44OI44KmLOOCs+OCpuOCpOODgQ0KK+OCteODiOOCpizjg6TjgrnjgqoNCivjg57jgqjjgr7jg44s44Ko44Kk44K444Ot44KmDQor44OV44K444Oi44OILOODkuODh+ODjuODlg0KK+OCv+ODi+ODoOODqSzjg5Ljg63jgrcNCivjg4rjgqvjg4vjgrcs44Om44K/44KrDQor44K/44Kr44OP44K3LOOCt+ODs+OCuA0KK+ODiuOCq+OCpCzjgqvjgrrjg58NCivjgr/jgqvjg4/jgrcs44K/44Kx44OV44OfDQor44K344OiLOODpuOCpuOCpOODgeODrQ0KK+OCt+ODkOOCvyzjgqTjgrXjg6ANCivjg5Xjg6vjg5/jg4Es44Oo44K344KqDQor44K/44Kx44OALOOCouOCreODqQ0KK+ODleOCuOOCvyzjg5Ljg63jgrcNCivjgqvjgq7jg6Tjg54s44OG44OE44OkDQor44Ov44OBLOODnuOCteODjuODqg0KK+ODleOCuOOCvyzjg5Ljg4jjgrcNCivjgrPjg7Pjg4ks44K344Ky44OO44OqDQor44Oe44OE44Oi44OILOOCv+OCq+OCtw0KK+ODleOCr+OCpCzjg5Ljg4fjg6bjgq0NCivjgrnjgqzjg6/jg6ks44Kz44Km44K444On44KmDQor44OV44Kr44Ok44OeLOOCouOCreODqQ0KK+OCpOODnuOCpCzjg57jgrXjgr/jgqsNCivjgrXjg4jjgqYs44Kv44OL44OS44KzDQor44Kr44OK44K244OvLOOCq+OCuuOCqg0KK+ODleODgeOCtuOCrSzjgqrjgrXjg6ANCivjg4Tjgqvjg4As44K344On44Km44Kk44OBDQor44Kk44K344K244KtLOOCv+OCq+ODpuOCrQ0KK+ODiOOCr+ODqSzjg5/jgq3jgqoNCivjg4jjg47jgrXjgq0s44Oi44OI44Oo44K3DQor44K/44Kr44KtLOODkuODh+OCqg0KK+ODleOCuOOCvyzjg5Ljg63jg6bjgq0NCivjg4rjgqzjgrss44Os44Kk44KzDQor44K/44OK44KrLOODkuODreODpuOCrQ0KK+OCv+ODhOODnyzjg6jjgrfjgqLjgq0NCivjg6Tjg57jg6Ljg4gs44Om44Km44Kk44OBDQor44OV44Kv44K/LOOCv+OCq+ODiuOCqg0KK+OCr+ODr+ODj+ODqSzjg6jjgrfjg6bjgq0NCivjg5Xjgrjjgr8s44Ko44Kk44K+44KmDQor44Kk44OK44Kv44OeLOODiOOCt+OCsw0KK+ODn+OCteOCqizjgrPjgqbjgr7jgqYNCivjg4rjgqvjgrfjgr8s44Oe44Kz44OIDQor44Kq44Kv44Ok44OeLOODpuOCpuOCuA0KK+ODiuOCrOOCqCzjgqvjgrrjg5Ljg60NCivjg4rjgqzjgqQs44K344On44Km44K0DQor44Ok44Oe44K244KtLOODnuOCteODqw0KK+OCt+ODqeOCpOOCtyzjgrfjg6fjgqbjgqTjg4ENCivjgqbjgqjjg4As44K344Ky44OrDQor44Kq44K444OeLOODkuODreOCouOCrQ0KK+ODkuODreOCuyzjg57jgrXjg47jg5YNCivjg5Ljg6njg44s44Oe44K144OrDQor44OV44Or44K/LOOCv+OCq+OCqg0KK+OCs+ODjOODnizjgqvjgqrjg6sNCivjgr/jgqvjg6Tjg54s44OI44Oi44OP44OrDQor44Ki44K144K344K/LOODnuOCteODleODnw0KK+ODqOODhOODj+OCtyzjg5Ljg63jgrcNCivjg4Tjg4Hjg6Qs44K/44Kr44OfDQor44Kq44Kq44OL44K3LOOCpOOCteOCqg0KK+ODpOODnuOCsOODgSzjgrfjg6fjgqbjgrgNCivjgrfjgrrjg44s44Kk44K144OgDQor44OP44K344OZLOODquODp+OCpuOCpOODgQ0KK+ODm+ODquOCpCzjg5/jg6jjgrcNCivjg4rjgqzjgqrjgqss44OO44Oq44KzDQor44Kv44Oq44K/LOOCt+ODp+OCpuODmOOCpA0KK+OCreODkCzjgrXjg4rjgqgNCivjgqTjg4As44Oe44OB44KzDQor44OV44Kv44OI44OfLOOCq+OCuuODnw0KK+OCs+ODkOODpOOCtyzjg47jg5zjg6sNCivjgqTjg6os44Kx44Oz44Kk44OBDQor44K144K/LOODnuOCueOCsA0KK+ODnuODq+ODpOODnizjg5Ljg63jg5Xjg58NCivjgqLjgqrjg6Tjg54s44K344Ky44OrDQor44K344Oz44OJ44KmLOODpOOCueOCqg0KK+OCouOCpOOCq+ODryzjgq3jg6fjgqbjgrgNCivjgrXjgqvjg47jgqbjgqgs44Kx44Oz44Kk44OBDQor44OV44K444Oe44KtLOOCv+ODgOOCouOCrQ0KK+OCq+ODr+ODj+ODqSzjg57jgrPjg4gNCivjg6Djg6njgr8s44OS44OH44Om44KtDQor44Oo44K344OALOODpuOCpuOCpOODgQ0KK+OCpOOCv+OCr+ODqSzjg4bjg4Tjg6QNCivjgrjjgr7jg5Djg6ks44Oo44KmDQor44K/44OK44KrLOODiOOCt+OCqg0KK+OCq+OCuOODr+ODqSzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg4rjgqss44Kq44K144OgDQor44OP44K544Kk44KxLOOCt+ODpeOCpuOCuA0KK+ODiOOCpuODnizjg6bjg5/jgrMNCivjgqvjg6/jgq3jgr8s44Ki44Kt44OpDQor44Oe44OE44Oi44OILOODpOOCueODkuOCsw0KK+ODj+OCu+OCrOODryzjg5/jg4TjgqoNCivjg5XjgrjjgqQs44OI44Kq44OrDQor44OO44Og44OpLOODn+ODgeOCv+OCqw0KK+ODqOOCpuOCs+OCvyzjg5Ljg4fjgqoNCivjgqvjg4rjgrbjg68s44Kz44Km44K+44KmDQor44Oe44K544Ok44OeLOOCt+ODs+OCpOODgQ0KK+OCq+ODjuOCpizjg5Ljg63jgrcNCivjg5Xjg4rjg6Tjg54s44Ko44OE44KqDQor44Ok44Oe44K344K/LOOCreODgeODkuOCsw0KK+OCteODiOOCpizjg57jgrXjgqvjgroNCivjgqvjg6Hjg6Ljg4gs44Oo44K344OV44OfDQor44Kk44OI44KmLOOCreODqOOCtw0KK+OCquOCr+ODoOODqSzjgrfjgrLjgqoNCivjg5XjgrjjgqQs44OG44Or44KqDQor44Kt44OP44OpLOOCv+OCq+OCtw0KK+ODjuODoOODqSzjg6rjgrXjgq8NCivjgqLjgq/jgr/jgqzjg68s44OE44OI44OgDQor44Kk44K344OALOOCr+ODi+OCqg0KK+OCpuODoeODj+ODqSzjgrfjgrLjg6sNCivjgqrjgqrjgq4s44OK44Kq44Om44KtDQor44Kz44Oz44OJLOODj+ODq+OCqg0KK+OCv+OCseODgCzjgrHjgqTjgrMNCivjg57jg4TjgqQs44OV44Of44Ko44KkDQor44Kr44Of44Kq44KrLOODnuOCteODqw0KK+OCq+ODouOCt+OCvyzjg5Ljg63jg58NCivjg6Tjg4rjgq7jgrXjg68s44K/44Kx44OS44OtDQor44K/44Kx44Km44OBLOODnuODouODqw0KK+ODouODs+ODnizjg5/jg47jg6sNCivjgqTjgqTjg4As44Kr44OK44KoDQor44OP44K744Ks44OvLOODiOOCt+OCuA0KK+ODiuOCrOODm+ODqizjg5Ljg63jgrcNCivjg6Ljg6rjgqrjgqss44K/44OA44OO44OqDQor44OL44K344Ok44OeLOOCouOCreOCqg0KK+ODpOODnuODouODiCzjg6TjgrnjgqoNCivjgqTjgrfjg4As44OI44K344KqDQor44OV44Or44OJLOODnuOCteOCqg0KK+OCq+ODs+ODgCzjg57jgrXjgqLjgq0NCivjgqTjgrfjg4As44K344Ky44OrDQor44K144Kk44OI44KmLOOCv+OCq+ODkuODrQ0KK+OCreODoOODqSzjg5Ljg4jjgrcNCivjgqTjg6/jg58s44Ok44K544OO44OWDQor44Oi44OqLOOCt+ODpeOCpuOCpOODgQ0KK+OCv+OCq+ODpOODnizjgrfjg6fjgqbjgr7jgqYNCivjg4/jg6TjgrfjgrDjg4Es44Ki44Kt44OS44KzDQor44K144Kk44OI44KmLOODpOOCueOCqg0KK+OCt+ODkOOCv+OCrSzjgq/jg4vjgqLjgq0NCivjgqrjgq7jg4/jg6ks44Oo44K344OP44OrDQor44Kr44OI44KmLOOCpOOCteODnw0KK+ODleOCr+ODiCzjg4rjgqrjg6QNCivjgqrjg4As44OS44OH44Ki44KtDQor44K144OI44KmLOODnuOCteODkuODrQ0KK+ODiuOCq+ODoOODqSzjg6bjgr/jgqsNCivjg4/jg57jg4As44K/44Kr44OS44OtDQor44Kq44Ks44K144Ov44OpLOODhuODhOODpA0KK+ODoOODqeOCrSzjgqvjgrrjg5LjgrMNCivjgqrjgqrjg4/jgrcs44Ki44Kt44OS44OIDQor44K/44Kr44OOLOOCv+OCq+OCtw0KK+ODiuOCq+OCtuODryzjgqvjgrrjg4jjgrcNCivjg5/jg6Tjgrgs44Ki44Kt44OS44OtDQor44K544Ko44OK44KsLOODpOOCueOCqg0KK+OCv+OCv+OCrSzjgqLjgq3jg6kNCivjg6jjgrfjg4As44Kk44Ov44KqDQor44Ki44Kq44KtLOODkuODh+OCtw0KK+OCueOCruODoOODqSzjgqvjgqrjg6sNCivjgqTjg4jjgqYs44Oe44K144OI44K3DQor44K/44Kr44OP44K3LOOCt+ODs+OCpOODgQ0KK+OCueOCuuOCrSzjgqTjgrXjg6ANCivjgqvjgr/jg6Tjg54s44OI44K344OS44KzDQor44K144Kk44OI44KmLOODnuOCteOCtw0KK+OCv+OCuOODnizjg5Ljg63jgrcNCivjgqLjg5ks44Oo44Km44Kk44OB44Ot44KmDQor44OK44Kr44K444OeLOOCt+OCsuOCrQ0KK+ODpOODnuOCsOODgSzjg57jgrPjg4gNCivjg6/jgq3jgrbjgqss44Oe44K144OS44KzDQor44K144KzLOOCteODgOODiA0KK+OCquOCquODhOOCqyzjg4jjg6Ljg5Ljg60NCivjg4Tjgqvjg6Ljg4gs44K544K544OgDQor44Kk44OO44Km44KoLOODleODn+OCqg0KK+ODiuOCrOOCqizjg4jjgqrjg6sNCivjgqbjg6njg5As44Oe44K144KqDQor44Kz44K444OeLOODpOOCueODkuODrQ0KK+OCv+OCseODgCzjg6bjgqbjgrgNCivjgqLjgqrjg44s44K444Oz44Kk44OBDQor44Kk44K644Kr44OvLOODjuODluOCqg0KK+OCr+ODieOCpizjgqvjgrrjgqLjgq0NCivjg4rjgqvjg6Djg6ks44OI44K344Om44KtDQor44Oe44OE44KqLOODnuOCteODleODnw0KK+OCpOODiuOCrOOCrSzjgrfjg7PjgqTjg4ENCivjg4vjgrfjg6Ljg4gs44K344On44Km44Kk44OBDQor44Kk44OO44Km44KoLOODkuODiOOCtw0KK+OCquODjuODh+ODqSzjg4bjg4Tjg6QNCivjgqTjgrfjgrbjgqss44OI44K344OS44KzDQor44OP44Ku44Ov44OpLOOCseODs+OCvuOCpg0KK+ODleODq+OCvyzjg57jgrXjg6sNCivjgqbjgqjjgrjjg54s44OI44Of44KqDQor44OM44Oe44K/LOOCt+ODpeOCpuOCpOODgQ0KK+OCqOODs+ODiSzjg57jgrXjg5Ljg60NCivjgqvjgqzjg6Tjg54s44K344Oz44OkDQor44Om44Oq44Oi44OILOODkuODiOOCtw0KK+ODleODgSzjgr/jg4DjgqoNCivjg5Xjgrjjgqrjgq0s44OS44Ot44OO44OWDQor44K144Kk44OI44KmLOODnuOCteODiOOCtw0KK+ODnuODhOODouODiCzjg5/jg4TjgqLjgq0NCivjg5Ljg63jgrss44Oo44K344Kr44OEDQor44OQ44OQLOOCuOODpeODs+OCpOODgeODrQ0KK+OCs+ODkOODpOOCtyzjg5Ljg63jg6bjgq0NCivjgrnjgrrjgq0s44Oe44K144OfDQor44OK44Kr44Ok44OeLOOCq+OCuuOCqg0KK+OCreOCtyzjg5Ljg63jgrcNCivjgqLjgrXjg44s44Oe44K144Kr44K6DQor44Ko44Oz44OJLOOCouOCreOCqg0KK+OCpOOCt+ODkOOCtyzjg4DjgqTjgrQNCivjgqvjgqTjg4As44Of44OE44KqDQor44Kk44Kx44K444OeLOODkuODh+OCouOCrQ0KK+ODj+ODqeODgCzjg4jjgrfjgqoNCivjg4/jg57jg44s44Kz44OO44OgDQor44Kr44Ov44KkLOODn+ODgeODqw0KK+ODr+ODgCzjg4jjgrfjg57jgrUNCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K/44OK44KrLOOCu+OCpOOCuA0KK+OCouOCr+ODhCzjg6jjgrfjg47jg6oNCivjgqTjg4jjgqYs44Kt44Oo44OfDQor44Ki44Oz44OJ44KmLOOCpOODr+OCuA0KK+OCouOCpOOCtuODryzjg5Xjg4jjgrcNCivjgq/jg5zjgr8s44Kt44Oo44K3DQor44OV44Kr44Km44OfLOOCteODiOOCtw0KK+OCt+ODn+OCuizjg5Ljg4jjgrcNCivjgr/jgqvjg4/jgrcs44K144OI44K3DQor44OK44Of44KtLOODhuODhOODreOCpg0KK+ODjuOCtuODryzjg6TjgrnjgrcNCivjgrPjgqTjgr/jg5Djgrcs44Kt44Oo44OS44OtDQor44K/44OG44Kk44K3LOODkuODreODnw0KK+OCq+ODr+OCq+ODnyzjgqvjgrrjgqoNCivjgrPjg5Djg6Tjgrcs44Kr44K644OO44OqDQor44Kq44OO44K644KrLOODkuODh+OCqg0KK+OCv+OCsOODgSzjg5/jg4TjgrANCivjgr/jgqvjg4/jgrcs44Oe44K144Ki44KtDQor44K144OI44KmLOODpOOCueODkuODrQ0KK+OCr+ODr+ODj+ODqSzjgrfjg63jgqYNCivjgrvjg4gs44K144OI44K3DQor44K044KxLOODkuODh+OCrQ0KK+ODqOOCt+ODoOODqSzjgq3jg6jjgrcNCivjgr/jgqvjg6Tjg54s44OO44OW44Om44KtDQor44K144K144KtLOODpuOCreOCqg0KK+OCq+ODjuOCpizjgrfjgrLjgq0NCivjgr/jgqvjg4/jgrcs44K344Ky44OP44OrDQor44OK44Ks44Kq44KrLOODiOODouODpuOCrQ0KK+OCueOCuuOCrSzjg5Ljg4fjgq0NCivjg6Tjg57jgrDjg4Es44Ki44Kt44OpDQor44Oi44OqLOOCteODiOODqw0KK+OCueOCuuOCrSzjgqTjg4TjgqoNCivjgqbjgqjjg6Djg6ks44Oe44K144OI44K3DQor44Ok44OW44OP44OpLOODn+ODhOODqOOCtw0KK+OCt+ODqeOCpOOCtyzjgqvjgrrjgq0NCivjgq3jgq/jgr8s44Oe44K144OO44OWDQor44OK44Kr44KkLOODn+ODhOODjuODqg0KK+OCr+ODqeODouODiCzjg6bjgr/jgqsNCivjgrnjg5/jg6jjgrcs44OS44OH44KqDQor44K/44Kr44KuLOODkuODreODkuOCtQ0KK+OCt+ODp+OCpuOCuCzjg47jg6rjgqoNCivjgqrjgrXjg4As44Oe44K144Om44KtDQor44Ki44K144OOLOOCteODiOOCtw0KK+OCpOODr+OCtSzjgq3jg6jjgrcNCivjg5Djg5As44Om44K/44KrDQor44OS44Ot44K/LOOCteODiOODqw0KK+ODleOCuOODouODiCzjg5/jgrXjgrMNCivjgrXjg44s44Oe44K144OrDQor44Oi44OI44KtLOODpOOCueODpuOCrQ0KK+OCpOODiOOCpizjg57jgrXjg47jg6oNCivjgqbjgrHjgqzjg68s44OV44Of44KqDQor44Km44Oh44OQ44Ok44K3LOOCpOOCteOCqg0KK+OCpOODiuODiOODnyzjgqvjgrrjg6jjgrcNCivjgr/jgqvjg6Tjg4rjgq4s44Oe44K144Ki44KtDQor44OP44OpLOOCpOOCteOCqg0KK+ODiuOCq+ODj+ODqSzjg5bjg7Pjg63jgqYNCivjgrXjgqTjgr/jgrEs44K744Kk44K4DQor44Kr44K344Ok44OeLOODkuODreOCtw0KK+OCteOCq+OCpCzjg4jjg6Ljg6bjgq0NCivjgqTjg4jjgqYs44OO44Oq44Kr44OEDQor44OK44Kr44Og44OpLOODqOOCt+ODjuODlg0KK+OCquOCquODjuOCrizjgr/jgrHjgrcNCivjgqTjgqvjg58s44Om44K/44KrDQor44K/44Kr44OP44K3LOOCt+ODs+OCpOODgQ0KK+OCt+OCpOODiizjg4jjg5/jgqoNCivjgr/jg57jg47jgqQs44K344On44Km44Kk44OBDQor44Kv44OcLOODkuODh+OCouOCrQ0KK+OCreODoOODqSzjgr/jgqvjgrcNCivjg5vjg4Pjgr8s44OS44OI44K3DQor44Ob44Kr44OqLOOCv+OCq+ODpuOCrQ0KK+OCteODiOOCpizjgqLjgq3jgqoNCivjg5vjgrfjg44s44K344Ol44Km44Kk44OBDQor44Kr44OW44Op44KuLOODiOOCt+ODkuODrQ0KK+OCquOCteODgCzjg4jjgrfjg5Xjg58NCivjgrnjgqjjg5Ljg60s44K/44Kr44KqDQor44Og44Op44Kr44OvLOODqOOCt+ODnw0KK+OCpOODr+OCteOCrSzjgrHjg7PjgrgNCivjg6Tjg57jg6Djg6ks44K344Oz44K4DQor44Oi44Oq44K/LOOCv+ODhOOCqg0KK+OCpOOCseODgCzjg6jjgrfjg47jg6oNCivjg6Tjgqbjg4Es44OS44Ot44K3DQor44Ok44Oe44K344K/LOOCq+OCuuODkuODhw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgqLjg4rjg7Ms44Ko44OE44K4DQor44OL44K344OOLOOCv+ODhOODreOCpg0KK+OCs+OCt+ODn+OCuizjg6TjgrnjgqoNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44Ko44Ks44OvLOODiOOCt+OCqg0KK+ODpOODnuOCtuOCrSzjgr/jg4Tjg5Ljg60NCivjgqTjg57jgrzjgq0s44Oo44K344OV44OmDQor44K544K644KtLOODkuODh+OCrQ0KK+ODi+OCt+ODj+ODqSzjg6bjgqbjgqTjg4ENCivjgqrjgqvjg5ks44Kk44K144OgDQor44K144Kr44KkLOODnuOCteODkuODrQ0KK+OCv+ODgCzjg4jjgrfjgqoNCivjgrnjgqjjg6jjgrcs44Of44Kt44KqDQor44OP44Ok44K3LOOCpOOCv+ODqw0KK+OCv+OCq+ODj+OCtyzjgrHjg7PjgrgNCivjgrPjgqLjgrcs44OP44K444OhDQor44Oi44Oq44Kr44OvLOOCqOOCpOOCtw0KK+OCq+ODiOOCpizjg6Tjgrnjgq/jg4sNCivjg57jgqjjg5As44Oe44K144OS44OtDQor44Ok44OOLOOCv+ODhOOCqg0KK+OCpOODiOOCpizjg6jjgrfjg4/jg6sNCivjg4rjgqvjgqQs44OS44Ot44K3DQor44Kq44OA44Ku44OqLOOCq+OCuuOCqg0KK+OCqOODs+ODiSzjg4bjg4TjgqoNCivjgr/jgrHjgqQs44Ok44K544Om44KtDQor44OK44Kr44K/44OLLOODn+ODgeODjuODqg0KK+OCpOODr+OCteOCrSzjg4jjg6Ljg5Ljg60NCivjgqvjg6njgqvjgrUs44Ki44Kt44OS44OtDQor44Ki44K144OOLOOCseODs+OCpOODgQ0KK+OCpOODr+ODluODgSzjg57jgrXjg6sNCivjg4/jg7Pjg4As44OI44Kq44OrDQor44OG44Op44KqLOODqOOCt+ODpuOCrQ0KK+OCv+OCseOCpCzjg6jjgrfjg6Ljg4gNCivjg4/jgrfjg6Ljg4gs44Oo44K344OfDQor44Of44Ok44K144KrLOODhOODiOODoA0KK+ODhuODqeODgCzjgqTjg4Hjg63jgqYNCivjgrXjgqvjgr8s44Ok44K544Om44KtDQor44OK44Ks44OkLOOCq+ODhOODnw0KK+ODj+OCt+ODouODiCzjgrHjg7PjgrgNCivjgqrjgqrjgq/jg6ks44OE44OI44OgDQor44OK44Kr44K144KtLOODn+ODhOOCsA0KK+OCreODquODj+ODqSzjg4jjgrfjg6bjgq0NCivjgqLjg6njgqQs44K344Ol44Oz44K4DQor44Kk44Ov44OOLOODkuODreODpuOCrQ0KK+ODj+ODg+ODiOODqizjg5Ljg63jg47jg6oNCivjgrnjgrrjgq0s44OI44Kq44OrDQor44OL44K344OP44OpLOODkuODreOCtw0KK+OCteOCteOCrSzjgrfjgrrjgqoNCivjg4/jg4rjg5XjgrUs44OE44OI44OgDQor44OO44OJ44OOLOOCv+ODhOODpuOCrQ0KK+OCq+ODr+ODkOOCvyzjgq/jg4vjgqoNCivjgrfjg5/jgros44Oo44K344OK44KqDQor44OK44Ks44K344OeLOODhOOCsOODkuOCsw0KK+ODouODqizjgqvjgrrjgqoNCivjgrfjg5/jgros44K344Ky44Ki44KtDQor44OS44K144Ok44K5LOOCseOCpOOCvuOCpg0KK+OCq+OCv+OCpuODqSzjgrfjgrLjg6bjgq0NCivjgr/jgrHjg6Djg6ks44Ki44Kt44Of44OEDQor44Kk44Oe44OL44K3LOODnuOCteODiA0KK+OCquOCq+ODgCzjgqLjgq3jg5LjgrMNCivjg4rjgqvjgqgs44Kq44K144OgDQor44K344Ot44OOLOOCuOODpeODs+OCpOODgQ0KK+ODqOOCs+ODpOODnizjg47jg5bjgqoNCivjgqrjgqvjgrbjg68s44Oe44K144OS44KzDQor44Kr44OfLOODjuODquODiOOCtw0KK+OCr+ODnuODmSzjg57jgrXjgqoNCivjgrfjg5/jgros44K/44OE44Ot44KmDQor44Ok44OK44Ku44K144OvLOOCt+ODp+OCpuOCpOODgQ0KK+ODnuOCreODjizjg6bjgqbjgrgNCivjgrXjg68s44Ov44K/44OrDQor44Km44K344Ot44OALOOCr+ODi+OCqg0KK+ODnuODgeODgCzjg4TjgqvjgrUNCivjgrPjg5Djg6Tjgrcs44K/44Kr44KqDQor44K344Ky44Og44OpLOODiOOCt+ODj+ODqw0KK+ODkuOCsOODgSzjgr/jgqvjgrcNCivjgqTjgqTjg4zjg54s44Oe44K144Om44KtDQor44Kk44K644OfLOODn+ODjuODqw0KK+ODj+ODpOOCtyzjg5Ljg63jg4jjgrcNCivjg6Tjgq4s44OB44OP44OrDQor44Kq44Kq44Kr44Ov44OpLOOCreODqOOCv+OCsQ0KK+ODleOCr+OCquOCuCzjgqrjgrXjg6ANCivjgqbjgqzjgrjjg7Ms44Oe44K144OfDQor44K/44OK44OZLOOCt+ODsw0KK+OCtOOCt+ODnizjg57jgrXjg5Ljg4cNCivjgqLjg7Pjg4njgqYs44OS44Ot44K3DQor44Kq44OA44OeLOODpuOCreOCqg0KK+OCquOCq+OCtuOCrSzjgqTjg6/jgqoNCivjgqTjgrfjgqvjg68s44OV44Of44Om44KtDQor44Og44Op44Ok44OeLOODnuOCteOCsw0KK+ODj+ODpOOCteOCqyzjgrHjgqTjgrgNCivjg4rjgqvjgrjjg54s44K/44KvDQor44K/44Kx44Oi44OILOODqOOCt+ODnw0KK+OCreOCv+OCuOODnizjgrjjg6Xjg7PjgrMNCivjg5/jgqvjg58s44OK44OfDQor44Ov44Op44K344OKLOOCuOODpeODs+ODpA0KK+OCreODoOODqSzjgrfjg7MNCivjgqrjgrbjg68s44Oo44K344Kr44K6DQor44Ok44Oe44Og44OpLOODkuODiOOCtw0KK+ODqOOCt+ODgCzjgrfjgrLjgq0NCivjgr/jg4Hjg5Djg4os44K/44Kv44Ot44KmDQor44Oe44OE44Oi44OILOODjuODquODjuOCueOCsQ0KK+ODn+OCt+ODnizjg5Ljg4fjgqLjgq0NCivjgrvjgq0s44OS44Ot44K3DQor44K/44Kr44OP44K3LOODpOOCueODkuOCtQ0KK+OCquOCquOCpOOCsSzjg57jgrXjgrcNCivjg5Xjgrjjg6Ljg4gs44K344Ol44Km44K4DQor44Oo44K344Og44OpLOODjuODluODkuOCsw0KK+OCs+ODkOODpOOCtyzjg6HjgqTjgrgNCivjgqrjgqrjgqzjg58s44Oo44K344Om44KtDQor44Kr44KkLOOCt+ODp+OCpuOCv+ODreOCpg0KK+OCq+OCqOODhCzjg57jgrXjg4/jg6sNCivjg6Ljg63jgqQs44K/44Kr44OS44OtDQor44Of44K644OOLOOCpOOCr+OCqg0KK+OCquOCquODhOOCqyzjgqLjgq3jg5LjgrMNCivjgqrjgqrjgr8s44Kr44Kq44OrDQor44K744Kt44ONLOODquODpeOCpuOCuA0KK+ODn+ODpOOCsOODgSzjgqvjgrrjgr/jgqsNCivjg6jjg43jg4As44OK44Ob44KzDQor44Ob44Oq44Km44OBLOODnuOCteOCsw0KK+OCqOOCsOODgSzjgqvjg4Tjg58NCivjgqbjgrfjg63jg57jg4Qs44Kr44K644OfDQor44Kk44Kk44OALOODpuOCreODkuODrQ0KK+ODqOOCt+ODgCzjg6jjgrfjg58NCivjg4rjgqvjgrss44Ki44Kt44KqDQor44K544K644KtLOODpuOCpuOCsw0KK+OCquOCpOOCq+ODryzjgqjjgqTjgrMNCivjgqvjg6/jg5ks44K144OE44KzDQor44K/44OL44K244OvLOOCv+OCq+OCqg0KK+OCq+ODjeOCsyzjg4/jg6vjg6gNCivjg5Xjgrjjgqrjgqss44Kx44Kk44KzDQor44Og44Op44Kq44KrLOODhOODqOOCtw0KK+OCpuODjOODnizjgrHjgqTjgrMNCivjg5/jg6TjgrEs44OV44Kt44KzDQor44OK44Kr44Og44OpLOODgeOCouOCrQ0KK+OCquOCquODryzjg57jgrXjg4/jg6sNCivjg43jg6Ljg4gs44Kk44OB44Ot44KmDQor44OL44K344Og44OpLOODiOODouODkuOCtQ0KK+OCv+ODhOODnyzjgqTjg6/jgqoNCivjgrXjg4jjgqYs44Ki44Kt44KqDQor44K544OO44OP44OpLOODiOOCt+ODkuOCsw0KK+OCouOCueODnizjgq3jg6jjgqvjgroNCivjgr/jgqvjg5As44OO44OW44Ki44KtDQor44Oo44K344Og44OpLOOCteODiOOCtw0KK+OCouODmSzjg4rjgqrjg4gNCivjgq3jgq/jg4Es44Kx44Kk44K4DQor44OK44Kr44Og44OpLOOCq+OCuuODnuOCtQ0KK+ODj+ODoOODqSzjg4Tjg4jjg6ANCivjgrnjgrrjgq0s44OO44OW44OS44OIDQor44Kr44Ov44Og44OpLOODiOOCt+ODpA0KK+ODkuODk+ODjizjg5LjgrXjgqgNCivjgq3jgr/jg4As44Oe44K144OS44OtDQor44K144OI44KmLOODhOODjeOCqg0KK+OCq+ODiOOCpizjgqvjgrrjgqoNCivjgqTjg4jjgqYs44Om44Km44K4DQor44OV44Kv44OI44OfLOODnuOCteODqw0KK+ODoOODreOCuuODnyzjg57jgrXjg5Ljg60NCivjg6Tjg57jg4rjgqss44K444Ol44Oz44Kk44OBDQor44Kq44Kr44OALOOCseODs+OCpOODgQ0KK+ODiOOCpuOCtOOCpizjgr/jgrHjgrcNCivjg4rjg6rjgr8s44K/44Kr44K3DQor44Kk44Kx44K244KtLOOCv+OCseOCtw0KK+OCq+ODr+ODkOOCvyzjgrfjg63jgqYNCivjg57jg4Tjgqrjgqss44OO44OW44KqDQor44OK44Kr44OALOODkuODreOCtw0KK+OCteODiOOCpizjgrfjg7Pjg6QNCivjgr/jgrHjgrbjg68s44Oo44K344OS44OtDQor44Ok44OK44Ks44OvLOODkuODreOCtw0KK+ODpOODnuOCteOCrSzjg47jg6rjg6bjgq0NCivjgrfjgqzjgq0s44OO44Oq44Ki44KtDQor44Om44OfLOOCv+OCseOCtw0KK+OCquOCtuOCrSzjg4Tjg4jjg6ANCivjg4rjgqzjgrfjg54s44K/44Kk44K544KxDQor44Ok44OW44Km44OBLOODkuOCteOCqg0KK+ODm+OCveODpCzjg5LjgrXjgrcNCivjg4vjgrfjgrbjg68s44K944Km44K4DQor44OP44Ok44OfLOODqOOCt+OCqg0KK+ODj+OCu+OCrOODryzjg4rjgqrjg58NCivjgqvjg6/jgrXjgq0s44Kr44OE44OS44KzDQor44OI44Oo44Kk44K644OfLOOCv+OCq+ODpuOCrQ0KK+OCquOCr+ODoOODqSzjg57jgrXjg4gNCivjg6Tjg57jg4As44OO44OW44OS44OtDQor44OL44OvLOOCqOOCpOODkuOCsw0KK+ODi+OCt+OCtuOCrSzjg5Ljg63jgrcNCivjgrnjgq7jg6Ljg4gs44K344Ky44OrDQor44Kq44Kq44K144OvLOODiOODouODiuOCqg0KK+ODiOODgCzjg4jjgrfjgqLjgq0NCivjg4rjgqvjg44s44Oo44K344Kr44OEDQor44Of44Km44OpLOODkuOCteOCtw0KK+ODpOODnuOCtuOCrSzjg4rjgqrjg6bjgq0NCivjgrXjgqvjg6Ljg4gs44OS44Op44KvDQor44Ok44Oe44OALOODn+ODgeOCsw0KK+OCpOODjuOCpuOCqCzjgqvjg6jjgrMNCivjg6TjgrnjgqQs44Oe44K144OoDQor44Oe44OE44OALOODpuODnw0KK+OCq+OCv+OCquOCqyzjgqLjgrHjg58NCivjgrnjgrrjgq0s44Kx44Kk44KzDQor44OP44Ok44K3LOOCseOCpOOCsw0KK+ODj+ODnuODnuODhCzjg6TjgrnjgrMNCivjg4/jg57jg44s44Ko44OqDQor44Of44K644K/44OLLOODn+ODqOOCsw0KK+OCueODn+OCvyzjg6Ljg4jjg4HjgqsNCivjg4/jg6Tjgrcs44Oe44Kt44KzDQor44OI44Kv44OK44KsLOODpuODn+OCsw0KK+OCq+ODiOOCpizjg47jg5bjgrMNCivjg57jg4Tjgqbjg6ks44Of44Ko44KzDQor44OS44Oj44Kv44OKLOODkuODh+OCsw0KK+OCouODs+OCtuOCpCzjg6jjgqbjgrMNCivjg5Xjgqvjg57jg4Es44K544Of44KqDQor44Of44K144KtLOOCv+OCseOCtw0KK+ODouODgeOCuuOCrSzjg4jjg6jjg5LjgrMNCivjgqLjgqrjg6Tjgq4s44Ki44Kt44OpDQor44K/44Kr44OP44K3LOODpuOCreODkuODhw0KK+OCreOCuyzjgqLjgq3jg6kNCivjgqbjgqjjg6Ljg6os44K344Ky44OrDQor44Ki44K644OeLOODn+OCqOOCsw0KK+OCquODgOOCr+ODqSzjg5Ljg63jg5/jg4ENCivjgr/jg4rjgqss44OS44K144KqDQor44OI44Kk44K/44OLLOOCq+ODhOODreOCpg0KK+ODpOODnuOCtuOCrSzjgrHjg7PjgqTjg4ENCivjg4/jgrfjg6Ljg4gs44K/44Kr44K3DQor44Oe44OE44Of44OkLOODnuOCteODkuOCsw0KK+ODleOCt+ODnyzjg4Hjgqvjg4gNCivjgq3jg6fjgqbjg6Tjg54s44OG44Or44KqDQor44Oo44K344OALOOCseOCpOOCsw0KK+OCpuODq+OCt+ODiSzjgqLjg4TjgrMNCivjgrvjgqos44Of44Ko44KzDQor44Of44OK44Kr44OvLOODhOOCreOCsw0KK+ODleOCuOODjizjgqvjgrrjg6bjgq0NCivjg5Ljg63jgr8s44K/44Kr44K3DQor44Kq44Kq44K/LOODqOOCt+ODnw0KK+OCquOCquOCrCzjg57jgrXjg47jg6oNCivjg4rjgqzjg4/jg54s44K/44OE44KqDQor44K444Oz44OOLOODpOOCueOCrQ0KK+OCpOODgeOCq+ODryzjg4/jgrjjg6ENCivjg4/jg6Tjgrcs44K/44OA44K3DQor44OP44K/44OkLOODiOOCt+ODpuOCrQ0KK+ODm+ODquOCs+OCtyzjg47jg5bjg5LjgrMNCivjgqvjg4ss44Ki44Kt44KqDQor44Ob44Oz44OALOODouODiOODkuOCtQ0KK+ODhOODgeODpCzjg4jjg5/jgqoNCivjgr/jg57jg4Ys44Of44OE44OrDQor44Om44Kr44OvLOOCqOOCpOOCuA0KK+OCteOCq+OCpCzjg6bjgqbjgrgNCivjg5/jg6Tjgrgs44Om44Km44Kk44OBDQor44K/44Og44OpLOODkuODiOOCtw0KK+OCq+ODr+OCsOODgSzjg5Ljg4fjg57jg6sNCivjgrXjg44s44Oe44K144Kr44K6DQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+OCs+ODkOODpOOCtyzjg6bjgq3jgqoNCivjgqTjg4As44Kk44OB44Ot44KmDQor44K744Kt44Oi44OILOODqOOCt+ODkuODrQ0KK+OCq+ODr+ODnuOCvyzjgqvjgrrjgqoNCivjgq/jg5ws44OS44Ot44K3DQor44K/44Kr44OOLOODpOOCueODkuODrQ0KK+ODr+OCv+ODiuODmSzjg6Tjg6jjgqQNCivjgqTjgqvjg6vjgq4s44Of44OO44OrDQor44K144OI44KmLOOCv+ODgOOCtw0KK+ODkuODgOOCqyzjg6jjgrfjg5LjgrMNCivjg6jjgrfjgqQs44Kz44Km44K+44KmDQor44K344Oe44Og44OpLOOCqOOCpOODrQ0KK+OCquODkyzjg4jjgrfjgqoNCivjg4rjgqvjgrjjg54s44OI44Kv44OO44OWDQor44Ob44K344OOLOODjuODnOODqw0KK+OCq+ODr+ODouODiCzjgrjjg6Xjg7PjgrgNCivjg4vjgrfjg4As44Ok44K544OS44OHDQor44K344Of44K6LOODnuOCteOCouOCrQ0KK+OCv+ODoOODqSzjgrjjg6Xjg7MNCivjg4jjg6jjgrfjg54s44Oo44K344Of44OEDQor44Ko44Oz44OJLOOCv+OCq+OCqg0KK+OCquOCrOODryzjg4rjg4TjgqLjgq0NCivjgq3jgr/jg4/jg6ks44OV44Of44KqDQor44Kq44Kw44OLLOOCseODs+OCuA0KK+OCquODluODgSzjgrHjgqTjgr7jgqYNCivjg5/jg6jjgrcs44Kr44K644KqDQor44Kk44Kx44OOLOOCt+ODs+OCpOODgQ0KK+OCpuOCqOODnuODhCzjgqvjg4TjgqLjgq0NCivjg5Xjgq/jgrbjg4gs44Oq44Ol44Km44Kk44OBDQor44Ki44Kq44KtLOOCv+OCq+OCtw0KK+OCteODoeOCuOODnizjgrXjg4HjgqoNCivjgq3jg4njg54s44Kx44Oz44K4DQor44Kz44OA44Kk44OpLOOCreOCr+OCqg0KK+ODkuOCsOODgSzjgr/jg4TjgqoNCivjg57jgqjjgrfjg60s44Kr44K644OS44OtDQor44K/44OK44KrLOOCu+OCpOOCuA0KK+ODiuOCq+OCrOODryzjg6jjgqbjgrnjgrENCivjgqTjg47jgqbjgqgs44Ok44K544OS44OHDQor44OI44Oq44KmLOODnuOCteOCouOCrQ0KK+ODnuODq+ODpOODnizjg4rjgqrjgq0NCivjg57jg4Tjgqbjg6ks44Kx44Oz44K4DQor44K/44Oh44OB44KrLOOCq+OCquODqw0KK+OCteOCteOCrSzjgq3jg6fjgqbjgrMNCivjgqrjgqrjgr/jgq0s44K344Oz44K544KxDQor44Kq44Ks44OvLOODnuOCs+ODiA0KK+ODnuODhOODnyzjg57jgrnjgqgNCivjgqLjg6rjg57jg4Qs44K344Ky44KqDQor44Kz44Op44KvLOODpuOCpuOCvuOCpg0KK+ODn+ODpOOCt+OCvyzjg5/jg47jg6sNCivjgqrjgrrjg4Es44Of44OE44KqDQor44K144Kr44Kt44OQ44OpLOOCv+OCq+OCsw0KK+OCteODiOOCpizjgqLjgq3jg6kNCivjg5Ljg63jgrss44OI44Oi44KzDQor44OE44OB44OALOODiOOCt+OCouOCrQ0KK+ODj+OCt+ODqSzjg4Hjg6gNCivjg5Xjg63jg6Ljg4gs44Of44OO44OrDQor44Kz44K144KrLOOCouOCreODkuODrQ0KK+OCv+OCseOCpOODgSzjg6jjgqbjgqTjg4ENCivjg4bjg6njg4As44Oo44K344Kr44K6DQor44Kz44Kk44OHLOODkuODh+OCrQ0KK+OCteOCpOODiOOCpizjgrfjg6fjgqbjgqTjg4ENCivjg5/jg6Tjg4rjgqws44OO44Oq44OS44KzDQor44OL44K344Og44OpLOOCt+ODs+ODpA0KK+OCv+ODiuOCqyzjg6bjgqbjgr7jgqYNCiss44Om44Of44KzDQor44Om44Kv44OS44OtLOODrOOCpOOCsw0KK+ODqOOCt+ODr+ODqSzjgrjjg6Xjg7MNCivjgqLjgqrjgq0s44Or44Of44KzDQor44K/44OG44Kk44K3LOODpuODquOCsw0KK+OCv+OCseODgCzjg4jjg5/jgrMNCivjg6Tjgrnjg4As44OV44K444KzDQor44Ki44Kq44KtLOODkuODh+ODpuOCrQ0KK+ODqOOCt+ODgCzjg4rjgqrjgrMNCivjgqLjg4Djg4Es44Ki44Kt44KzDQor44OO44Kw44OBLOODqOOCt+ODjuODlg0KK+ODr+OCv+ODiuODmSzjgrfjgrLjg6bjgq0NCivjgr/jgrHjg4jjg58s44Kz44Km44Kk44OBDQor44Kv44Oq44Ov44KtLOODnuOCteOCrQ0KK+OCreOCv+OCuuODoSzjg6Ljg4jjg5LjgrMNCivjgqrjgrXjg4As44OI44K344KqDQor44Ki44K344Ks44KkLOODqOOCt+OCv+OCqw0KK+OCteOCq+OCt+OCvyzjgq3jg6jjgrcNCivjg4Tjg4Hjg4As44K344Ol44Oz44Kk44OBDQor44Kq44Kr44OALOODn+ODgeOCqg0KK+OCv+ODiuOCqyzjg5Ljg4fjg4HjgqsNCivjgqrjgqrjgr/jgrTjgrcs44Kz44Km44K+44KmDQor44Kv44Ot44K144KrLOOCqOOCpOOCuA0KK+OCueOCtuOCrSzjgqLjg4TjgrcNCivjgqvjg43jg5/jg4Qs44OS44Ot44Om44KtDQor44Oe44OILOOCq+OCuuODpuOCrQ0KK+ODiOODqOODleOCryzjg57jgrXjgqoNCivjgqLjg6njgqQs44OS44Ot44Kr44K6DQor44OV44K444Kr44OvLOODjuODluOCouOCrQ0KK+ODqOOCs+OCqizjgr/jgqvjg6jjgrcNCivjgqLjg57jg44s44OP44Or44KqDQor44Kq44Kq44OOLOOCv+OCq+ODleODnw0KK+OCueOCuuOCrSzjgqLjgq3jg6jjgrcNCivjgqvjg4jjgqYs44Oe44K144Om44KtDQor44K144Kk44OI44KmLOODn+ODhOOCqg0KK+OCquOCpizjgqvjg4Tjg58NCivjg5/jg6Tjgrbjgq0s44Kk44K144KqDQor44Kt44OkLOODleODn+OCv+ODng0KK+ODleOCuOOCvyzjgqvjgrrjg5LjgrMNCivjg6DjgqvjgqQs44Oo44Km44Kk44OBDQor44Oe44OE44Oi44OILOOCq+OCquODqw0KK+OCq+ODr+OCpCzjg6bjgq3jgqoNCivjg57jg4Tjg6Ljg4gs44Kt44Oo44K/44KrDQor44K/44Kx44Km44OBLOODquODp+OCpuOCuA0KK+OCs+OCuOODnizjg5Ljg4fjgqoNCivjg4/jgrvjgqzjg68s44K/44OE44KqDQor44Kz44KsLOODpOOCueOCqg0KK+ODpOODnuODgCzjgrPjgqbjgqTjg4ENCivjgqrjgqrjgr8s44Of44OO44OrDQor44Ok44Oe44Oi44OILOOCt+ODs+OCueOCsQ0KK+OCteOCr+ODqeODouODiCzjg5Xjgrjjg4gNCivjg6Tjg4rjgq7jgrXjg68s44Kv44OL44KqDQor44OV44Kv44KkLOOCs+OCpuOCuA0KK+OCq+ODiOOCpizjgqvjgrrjg58NCivjgqTjg6/jgr8s44Ok44K544Om44KtDQor44OV44K444Oi44OILOOCv+ODgOODleOCtQ0KK+OCreODjuOCt+OCvyzjgqLjgq3jg5LjgrMNCivjg6Tjg57jg4As44K444Ot44KmDQor44Kv44Op44Oe44KoLOOCs+OCpuOCuA0KK+OCr+ODqeOCvyzjgr/jgqvjgrcNCivjg6jjgrPjgqQs44OV44Of44OI44K3DQor44Kz44OQ44Ok44K3LOODkuODh+ODpA0KK+OCq+ODiOOCpizjg6Ljg6rjg6jjgrcNCivjg57jgrnjgqQs44OS44OI44K3DQor44Km44Op44K/LOODhuODq+OCouOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg5Ljg60NCivjgqbjgrfjgrTjg6Es44Oe44K144K/44KrDQor44OP44Op44KkLOOCt+ODs+OCuA0KK+OCpuODgOOCrOODryzjg4jjgrfjg63jgqYNCivjgr/jgqvjgq4s44Kr44K644Om44KtDQor44Of44Ok44K244KtLOOCteODiOODnw0KK+ODpOODnuODoOODqSzjg57jgrXjg5Ljg60NCivjg6Tjg57jgq7jgrcs44Oq44Ol44Km44Kk44OBDQor44Kz44Oe44OELOODqOOCt+OCv+OCqw0KK+ODj+ODnuOCsOODgSzjg6bjgqsNCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Ok44Oe44OALOODpOOCueODjuODqg0KK+OCq+OCrOODryzjg5/jg4HjgqoNCivjgq3jgq/jg4Es44OV44Of44KtDQor44Kv44K4LOODpOOCueOCtw0KK+OCpOODiOOCpizjg5LjgrXjgqLjgq0NCivjgqvjg6/jgrDjg4Es44Oo44K344Kr44K6DQor44Ki44Op44KtLOOCt+ODs+OCueOCsQ0KK+OCquOCq+ODmSzjg5Ljg63jg58NCivjgrPjg5zjg6os44K344Oz44Kk44OBDQor44Kq44OBLOOCquOCteODoA0KK+ODnuODq+OCqizjg4/jgrjjg6ENCivjgrXjg4jjgqYs44K344Ol44Oz44K544KxDQor44K/44OK44KrLOODkuODh+ODjuODqg0KK+ODnuODhOODpOODnizjg4jjgrfjgqoNCivjgqrjgqrjg4Tjgqss44Kv44OL44KqDQor44Ok44Oe44Oi44OILOOCseODs+OCuA0KK+ODleOCuOOCqizjg5/jg4TjgqgNCivjg47jg6Djg6ks44OS44K144K/44KrDQor44OS44Ot44K7LOODjuODquODqOOCtw0KK+OCouODs+OCtuOCpCzjgrfjgrLjg47jg6oNCivjgqrjgqrjg4Tjg5ws44Of44OB44OtDQor44K144Kk44OI44KmLOODquODpeOCpuOCuA0KK+OCpOODiOOCpizjgrXjg4jjgrcNCivjg6/jg6njgrXjg68s44Kt44Kv44KqDQor44Ki44Op44Kr44OvLOODpOOCueODiuODqg0KK+OCtOODnyzjgrjjg6Xjg7MNCivjgqjjg7Pjg4ks44K144OB44KqDQor44Oo44K344OALOODnuOCteODj+ODqw0KK+OCpuODgeODgCzjg5Ljg4fjgqoNCivjgqLjgrXjgqTjg40s44OG44OE44OkDQor44Kq44K344OeLOOCt+OCsuOCqg0KK+OCv+ODiuOCqyzjgr/jg4TjgqoNCivjgqrjgqrjgrMs44Oe44K144Ot44KmDQor44Kk44K644OELOODiuOCquODqw0KK+ODj+ODpOOCtyzjg57jgrXjg6bjgq0NCivjg5Xjgrjjgq0s44OI44Kq44OrDQor44K344Kq44Kr44KkLOOCq+OCuuODkuOCsw0KK+ODiuOCrOODleODgSzjgq3jg6jjg4TjgrANCivjg57jg4Tjg6Ljg4gs44K/44Kk44Kk44OBDQor44Kr44OI44KmLOODkuODreOCtw0KK+ODr+OCv+ODiuODmSzjgrHjgqTjgrgNCivjg4/jg57jgrDjg4Es44Oq44Ol44Km44Kk44OBDQor44Kr44ON44KzLOODpuOCv+OCqw0KK+OCteODiOOCpizjg4jjgrfjgqoNCivjgqrjgqrjgqQs44Oe44K144KtDQor44OP44Ok44K3LOOCu+OCpOOCuA0KK+OCreODn+ODhOOCqyzjg57jgrXjgqoNCivjg5Xjgq/jg4As44Oe44Oi44OrDQor44OK44Kr44Og44OpLOOCv+ODgOOCtw0KK+ODpOODkOOCtyzjgrHjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44K/44Kr44Om44KtDQor44OI44Kv44OALOODiOODouOCq+OCug0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg5Ljg60NCivjgqTjg4jjgqYs44Of44OE44KqDQor44OO44Kw44OBLOODqOOCpuOCpOODgeODreOCpg0KK+OCq+ODr+ODiizjg47jg6rjgqoNCivjg4rjgqvjg44s44OE44Ok44KzDQor44Ok44Oe44OALOODnuOCteOCsw0KK+ODkuODqeODnuODhCzjgr3jgqbjgr/jg63jgqYNCivjgqLjg6njgqQs44OI44K344Om44KtDQor44Oo44K344OOLOOCq+OCquODqg0KK+ODj+ODnuODgCzjgqvjgrrjgqoNCivjgqrjgqrjgr8s44OI44K344OS44KzDQor44K344OQ44K/LOODnuOCueOCouOCrQ0KK+ODr+OCq+ODpOODnizjgqLjgq3jg5Ljg60NCivjg5vjgrcs44Kt44Oo44K3DQor44Of44OvLOODnuOCteOCqg0KK+OCv+ODiuOCqyzjg6bjgqbjgrgNCivjgqvjg4rjg6Qs44OO44Oq44OS44KzDQor44K/44Kx44OK44KrLOOCuOODsw0KK+OCteODiOOCpizjg4jjgrfjg6bjgq0NCivjg5/jgrrjgrfjg54s44OI44Oo44Km44Kk44OBDQor44OG44Op44OALOOCt+OCsuODqw0KK+ODouODquODpCzjgr/jg4Djg6bjgq0NCivjgrnjgq7jg6Tjg54s44Oi44OI44OP44OrDQor44Km44OfLOODj+ODq+OCqg0KK+OCreOCsOODgSzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqbjg6vjg6/jgrcs44K/44Kx44K3DQor44OS44Op44Oe44OELOODn+ODgeOCquOCrQ0KK+OCpOOCuuODjyzjg4/jg6vjgqoNCivjgqTjg4jjgqYs44Oe44Kz44OIDQor44K144OI44KmLOODnuOCueOCqg0KK+OCt+OCsuODjuODlizjgrHjg7PjgrgNCivjg6jjgrfjg6Ljg4gs44Kr44K644KqDQor44K344OQ44K/LOODhOODqOOCtw0KK+ODleODiuOCs+OCtyzjgqTjg4Hjgr7jgqYNCivjgrnjg4rjg4As44Ok44K544K444Ot44KmDQorLOODpOOCueOCqg0KK+OCreOCr+ODnizjg4rjgqrjg5LjgrMNCivjgrnjg4gs44K144OI44K3DQor44OL44K344K244OvLOODkuODh+OCqg0KK+OCs+ODkOODpOOCtyzjg5/jg4TjgrMNCivjgqvjg6/jgrTjgqgs44Oe44K144OS44KzDQor44Kk44K444OeLOODleODn+OCqg0KK+ODi+OCt+OCqizjg5Ljg63jgrcNCivjg4vjgrfjg6Tjg54s44OO44OW44Om44KtDQor44K144Kk44OI44KmLOODqOOCt+OCouOCrQ0KK+OCq+ODieODr+OCrSzjg5Ljg63jg58NCivjg5Ljg63jgrss44K/44Kr44KqDQor44K/44Kw44OBLOOCv+OCq+ODqOOCtw0KK+OCv+OCq+ODgCzjg4jjgrfjg4/jg6sNCivjg6/jgr/jg4rjg5ks44Kx44Oz44K4DQor44Kr44OI44KmLOOCt+OCsuOCouOCrQ0KK+ODiuOCq+ODj+ODqSzjgq/jg4vjgqoNCivjgqTjgrfjgq/jg5ws44Oq44Ol44Km44Kk44OBDQor44Ok44Oe44OALOODqOOCt+OCqg0KK+ODr+OCq+ODnuODhCzjgrPjgqbjgrgNCivjgqvjg6/jgrfjg54s44OS44Ot44Om44KtDQor44Kr44K/44Oi44OILOOCseODs+OCuA0KK+OCv+OCq+ODpOODnizjgq3jg5/jg5LjgrMNCivjg4Tjg4Hjg4As44K/44OE44K3DQor44K/44OB44OQ44OKLOODkuODh+OCqg0KK+OCs+ODkOODpOOCtyzjgqLjgq3jg6kNCivjg4Tjg4As44OI44K344Om44KtDQor44Oi44Oq44Kr44OvLOODpuOCreOCqg0KK+OCquOCr+ODjizjg6jjgrfjgqoNCivjgqTjg57jgqQs44Oe44Oi44OrDQor44Og44Op44KqLOOCv+ODgOOCtw0KK+OCt+ODouODoOODqSzjgrjjg63jgqYNCivjgqjjg7Pjg4ks44OI44K344OO44OWDQor44Ob44K344Kv44OeLOODnuOCteODj+ODqw0KK+OCq+ODr+OCuyzjgrfjg7PjgrXjgq8NCivjg57jg4Hjg4As44Og44ON44K3DQor44Kz44OQ44Ok44K3LOOCv+ODhOOCqg0KK+ODj+ODgCzjg5Ljg63jgrcNCivjg4Tjgq/jg4As44Oe44K144OP44OrDQor44OL44K344Kr44OvLOOCt+ODp+OCpg0KK+ODm+ODs+ODgCzjg5Ljg63jg58NCivjg6/jgrfjgqrjgqss44OI44K344OS44OtDQor44Og44Ot44KkLOODqOOCpg0KK+ODpOOCueODgCzjg57jgrXjgrcNCivjg6jjgrfjg4As44OS44Ot44Om44KtDQor44Ob44OqLOOCouODhOOCsw0KK+OCs+OCpuODgCzjgrPjgqbjgqjjgqQNCivjgqvjg57jg4As44Ko44Kk44K4DQor44Km44Ko44Og44OpLOODkuODreODnw0KK+ODnuODhOODkOODqSzjgqvjgrrjg6QNCivjg5/jg4rjg4jjgrDjg4Es44K344Ky44OrDQor44Kv44Ks44OG44OzLOODpOOCueOCtw0KK+OCpOODr+OCuyzjg47jg5bjg5Ljg60NCivjg4/jg6Tjgrcs44Of44OE44OS44OtDQor44Kk44Kv44OK44OfLOOCt+ODs+OCuA0KK+OCpOODiOOCpizjgr/jgqvjgrcNCivjgrPjg6Tjg54s44OS44Ot44Of44OBDQor44Kq44OI44Oe44OrLOODqOOCt+ODkuODiA0KK+ODiuOCrOOCpCzjg6Ljg4jjg4/jg6sNCivjgqTjg4jjgqYs44Oe44Kz44OIDQor44Kk44Oe44KkLOOCv+ODhOODqw0KK+ODnuOCueODgCzjgr/jgqvjg5Ljg60NCivjgqvjg6/jg5ks44Oq44On44Km44K/DQor44K144OI44KmLOOCseOCpOOCuA0KK+OCteOCsyzjg57jgrXjg4/jg6sNCivjg6DjgqvjgqQs44K444Ol44Oz44Kk44OBDQor44Kq44K344OeLOOCr+OCueOCv+OCqw0KK+ODhOODgeODpCzjgqTjgrrjg58NCivjg4/jg6TjgrfjgrDjg4Es44OI44K344Ki44KtDQor44K144OI44KmLOOCu+OCpOOCpOODgQ0KK+ODoOODqeOCteODiCzjg6bjgq3jg5LjgrMNCivjg4/jg6vjg6Tjg54s44Oe44K144KqDQor44K344Ky44Oi44OqLOOCt+ODpeODs+OCpOODgQ0KK+ODleODiuOCrSzjg5LjgrXjgqoNCivjg6/jg4As44Kk44Kv44OIDQor44OE44Oc44KrLOOCt+ODs+OCueOCsQ0KK+ODiOODgCzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjg6Tjg57jg6Djg6ks44K/44OA44Ki44KtDQor44Kk44K344Kw44OtLOOCt+ODs+OCpOODgQ0KK+ODleODiuODj+OCtyzjg6bjgq0NCivjgrnjgrrjgq0s44Oo44K344KqDQor44Oo44K344OALOOCreODn+ODkuODrQ0KK+ODr+OCv+ODiuODmSzjg4Tjgq7jgqoNCivjg4rjgqvjg4vjgrcs44K/44Kr44Of44OEDQor44Ok44Oe44Oi44OILOOCuOODpeODs+OCuA0KK+OCpOOCt+OCq+ODryzjg57jgrXjg6bjgq0NCivjgr/jgrHjgqbjg4Es44Kz44Km44Kk44OBDQor44Kq44Kv44OOLOOCteODiOOCtw0KK+ODgOODhizjgrjjg6Xjg7MNCivjgr/jg5ks44Oe44K144OI44K3DQor44Ok44KuLOODquODp+OCpuOCpOODgQ0KK+ODqOOCt+ODgCzjgqvjgrrjgqoNCivjg5Xjg6vjgr8s44K/44Kr44Om44KtDQor44Kr44Ov44Kw44OBLOODquODpeOCpuOCv+ODreOCpg0KK+ODj+OCueOCsyzjg6jjgrfjg47jg6oNCivjg4rjgqzjg5/jg40s44K344Ol44Oz44K4DQor44K/44Kx44K344K/LOOCteODiOOCtw0KK+OCouOCq+OCqizjgqvjgrrjg6bjgq0NCivjg6/jgq3jg6Ljg4gs44K/44Kr44K3DQor44K/44K144KrLOOCseODs+OCuA0KK+ODiuOCq+OCt+ODnizjg6Tjgrnjg6jjgrcNCivjgr/jgrHjg4rjgqss44OS44Ot44Ki44KtDQor44Ok44Oe44K344K/LOODiuOCquODkuOCsw0KK+OCr+ODnOOCqCzjg4bjg6vjgqoNCivjgqrjgrDjgrcs44K344On44Km44Kk44OBDQor44Ki44K144KrLOOCt+OCsuODiOOCtw0KK+OCqOOCsOODgSzjg5Ljg63jg6jjgrcNCivjgqrjgqrjgrXjgq0s44Oe44Kz44OIDQor44Kq44Kv44OALOOCq+OCuuOCqg0KK+OCquOCr+ODoOODqSzjgqvjgrrjg60NCivjgqvjg4rjg57jg6ss44Oo44K344OS44KzDQor44Kt44OO44K344K/LOOCquOCteODoA0KK+OCteOCteOCrSzjgq3jg6jjg5Ljg4cNCivjgr/jgqvjg44s44K/44OE44KqDQor44OP44K344OALOOCt+OCsuODqw0KK+ODm+OCtyzjg6bjgqbjgrnjgrENCivjg5/jgrrjg44s44Kr44OE44OS44KzDQor44Of44OE44OP44K3LOOCv+ODhOODpA0KK+ODouODiOODj+OCtyzjg57jgrXjgrcNCivjg6Tjg57jg4As44OG44OE44K4DQor44OK44Ks44OOLOODnuOCteODpuOCrQ0KK+OCpOOCt+OCpCzjg6bjgq3jg5Ljg60NCivjgqvjg6Hjg4As44Kr44Kq44OrDQor44Kt44OP44K/LOOCv+OCseODkuODhw0KK+OCs+ODkOODpOOCtyzjgqrjgrXjg6ANCivjgrfjg6njg5Xjg40s44K/44Kr44Oo44K3DQor44OK44OE44OP44OpLOODkuODreOCouOCrQ0KK+ODi+OCt+ODj+ODqSzjg6Tjgrnjg5LjgrUNCivjg4/jgrfjg5As44K/44Kv44KqDQor44OS44K344OM44OeLOODkuODreODleODnw0KK+ODkuODk+ODpCzjgrfjg7Pjgr/jg63jgqYNCivjg5/jg6Qs44OS44OH44OP44OrDQor44Og44Op44Kr44OfLOODleODn+OCqg0KK+ODoOODqeOCvyzjg4/jgrjjg6ENCivjg6/jgr/jg4rjg5ks44K344On44Km44Kk44OBDQor44Kq44Kq44OL44K3LOODkuODreOCouOCrQ0KK+OCv+OCseOCt+OCvyzjg5Ljg63jgrcNCivjg4Tjg5Djgq3jg6Ljg4gs44Ok44K544K3DQor44OP44Oe44Kq44KrLOOCv+OCseOCqg0KK+ODn+OCuuODjizjg4jjg6jjgr/jgqsNCivjgqLjg5ks44OS44Ot44OfDQor44Ki44Op44Kk44K3LOODnuOCteODnw0KK+OCteODiOOCpizjg57jgrXjgqLjgq0NCivjgrXjg6/jg44s44K744Kk44K244OW44Ot44KmDQor44K344Oi44K444On44KmLOOCv+ODgOODnw0KK+OCv+OCq+ODgCzjgqvjgrrjg5Ljg4cNCivjg4rjgqzjgr8s44Ok44K544OS44OtDQor44OL44K344OP44K/LOODnuOCteODleODnw0KK+ODj+ODpOOCtyzjgr3jgqbjgqTjg4ENCivjg5vjgr3jgqvjg68s44Ki44Kt44OpDQor44Ki44Kq44KtLOODn+OCreODiOOCtw0KK+ODqOOCt+ODgCzjg5Ljg63jg4jjgrcNCivjg6/jgr/jg4rjg5ks44K/44Kr44KqDQor44Kk44Ov44K144OvLOOCv+OCq+ODj+ODqw0KK+ODjuOCuyzjgrnjgqjjgqoNCivjg5Ljg6njgrfjgr8s44OS44Ot44Ok44K5DQor44Oo44K344K244OvLOODkuODh+OCqg0KK+ODoOODiOOCpizjgrHjgqTjgr7jgqYNCivjg5/jg6/jgqbjg6ks44OS44OH44Ki44KtDQor44Kt44Kv44OBLOODj+OCuOODoQ0KK+OCqOOCvuOCqCzjg5Ljg63jg58NCivjgqTjgrfjgqvjg68s44K/44Kx44K3DQor44Kk44OB44Kr44OvLOOCv+OCq+OCtw0KK+ODj+ODqeODgCzjg6jjgrfjgr/jgqsNCivjg6Djg6njgr8s44Oo44K344OIDQor44Kk44OI44KmLOODn+OCreOCqg0KK+ODm+OCt+ODiizjgrHjgqTjg6QNCivjg4jjgq/jg4As44OO44Oq44KqDQor44K/44Kw44OqLOOCq+OCuuODqOOCtw0KK+OCteOCteOCrSzjg4jjg6Ljg6bjgq0NCivjgr/jg57jg6ss44OP44Or44KqDQor44OL44K344OP44K3LOOCt+OCsuOCqg0KK+OCuOODhOOCq+ODryzjgqvjgrrjg5LjgrMNCivjgrnjgrrjgq0s44K144Kk44OBDQor44Kq44Kq44OL44K3LOOCreODn+OCsw0KK+ODiuOCrOOCteOCrSzjg6bjgqbjgrMNCivjgqTjgqTjg4As44OS44OH44OfDQor44K/44Kr44OOLOODnuOCteODkuODrQ0KK+ODkuOCteODjizjg4jjgrfjg4TjgrANCivjgqTjg47jgqbjgqgs44OS44OH44KtDQor44Kk44K344Kv44OpLOODnuOCteODpuOCrQ0KK+OCouOCreODpOODnizjgrPjgqbjgrgNCivjgqTjg4Hjgqvjg68s44K744Oz44OqDQor44Kt44Ks44OvLOOCs+OCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjg6jjg4As44Of44Kt44KqDQor44Ki44Op44KtLOODpuOCpuOCuA0KK+OCueOCruODj+ODqSzjg5Ljg4fjg5LjgrUNCivjgqvjg6/jgrDjg4Es44OG44Kk44K4DQor44Of44OkLOODnuOCteODkuOCsw0KK+OCpOOCseOCqizjg5Ljg63jg6bjgq0NCivjgrXjgq/jg6njgqQs44OV44K444KqDQor44Kz44K344OOLOODqOOCpuOCueOCsQ0KK+OCreOCr+OCq+ODryzjgqvjgrrjgqoNCivjg6bjgqLjgrUs44K/44Kr44K3DQor44K544K644KtLOODpuOCpuOCuA0KK+ODnuOCueODgCzjgrfjg7Pjgr/jg63jgqYNCivjgqLjg6njgqQs44Ok44K544KqDQor44Kk44Kx44OALOODiOOCt+OCqg0KK+OCreOCuSzjgqLjgq3jg6kNCivjgqbjgrfjg6Tjg54s44Os44KkDQor44Kr44Oe44K/LOOCqOODhOOCtw0KK+OCpuOCteODnyzjgq3jg6jjgrcNCivjg4rjgqvjg44s44K/44Kx44K3DQor44Kr44Kt44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCreOCuOODnizjg5Ljg63jg6bjgq0NCivjg6DjgqvjgqQs44Oe44K144Oo44K3DQor44OK44Ks44Ok44OeLOODnuOCteOCsw0KK+ODj+ODg+ODiOODqizjg57jgrXjgqoNCivjg5/jgrfjg54s44OE44Oo44K3DQor44K044OI44KmLOOCr+ODi+ODiOOCtw0KK+OCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgqrjgqzjgr8s44Kr44Oo44KzDQor44Kv44K144OQLOODj+ODq+ODpuOCrQ0KK+ODhuODqeOCqCzjg5LjgrXjg4gNCivjg5vjg7Pjg4As44OO44Oq44KqDQor44Ki44Kv44K/44Ks44OvLOODn+ODjuODqw0KK+ODn+ODpOOCs+OCtyzjg6TjgrnjgqgNCivjg5Xjgq/jgrfjg54s44Kx44Kk44K544KxDQor44K344OO44K644KrLOODiOODouOCsw0KK+OCquOCquOCv+OCrSzjgrfjg6fjgqbjgrgNCivjg4rjgqzjg57jg4Qs44K744Kk44Kk44OB44Ot44KmDQor44Ki44Op44KkLOODnuOCteODqw0KK+ODnuODhOODgCzjgrXjg4Hjg6gNCivjg5Xjgrjjgr8s44Ki44OE44OfDQor44Kr44Of44Kw44OBLOODkuODreOCouOCrQ0KK+OCq+ODiOOCpizjg5Ljg4jjgrcNCivjg6Tjg57jgrbjgq0s44K/44Kx44OO44OqDQor44Km44Oh44K/44OLLOOCouODhOOCsw0KK+ODiuODq+OCuyzjgrjjg6Xjg7PjgrMNCivjgq/jg5ws44Kv44OL44KqDQor44Kv44Op44K/LOODkuODreODpuOCrQ0KK+OCs+ODs+ODiSzjg4bjg6vjgqoNCivjgr/jgrHjgqbjg4Es44Of44Kt44OkDQor44Kk44OO44Km44KoLOODjuODquOCqg0KK+OCv+OCq+ODgCzjg6jjgrfjgqvjgroNCivjgqLjgq/jg4Qs44Kr44OE44Om44KtDQor44OI44Oq44KkLOODkuODreODnw0KK+ODouODquOCquOCqyzjg6bjg5/jgrMNCivjgqvjgq/jgr/jg4ss44Oe44OK44OWDQor44K/44Kx44Kk44OBLOODgeOCqOOCsw0KK+OCv+OCpCzjgrHjgqTjgrMNCivjg4Tjg4Hjg6Qs44Oe44K144OV44OfDQor44Oe44K544OALOODnuOCteOCv+OCqw0KK+OCq+ODs+ODgCzjg5LjgrXjgqoNCivjg6Tjg57jgqbjg6ks44Ok44K544Oo44K3DQor44Kt44OO44K344K/LOOCt+OCsuODn+ODhA0KK+ODm+OCteOCqyzjgq/jg4vjgqoNCivjg57jg6vjgqrjgqss44OS44OH44Om44KtDQor44Kr44Oe44K/LOODkuODreOCtw0KK+ODj+OCv+ODiuOCqyzjg57jgrXjg58NCivjgq/jg63jg48s44Oo44Km44KzDQor44OI44OE44KrLOODqOOCpuOCsw0KK+OCpOOCt+OCpCzjg5Xjg6gNCivjg6Ljg6rjgr8s44Oe44OBDQor44Ob44Oz44OeLOOCt+OCsuODqw0KK+OCouODqeOCq+OCrSzjg6jjgrfjg4jjg6INCivjgr/jgrEs44K/44Kx44OS44KzDQor44Kk44K644OP44OpLOODiuOCquOCq+OCug0KK+ODkuOCteODiOODnyzjgr/jg63jgqYNCivjgrnjgrrjgq0s44Oo44K344OS44OtDQor44OL44K344OK44KrLOODkuOCteODjuODqg0KK+ODn+OCuuODjizjgrPjgqbjgr7jgqYNCivjg6Ljg6rjg6Djg6ks44Ki44Kt44OpDQor44K/44Kr44OP44K3LOODiOOCt+OCq+OCug0KK+OCt+OCsuODiOODoSzjg6jjgrfjgqLjgq0NCivjgrXjg4jjgqYs44Om44Km44K4DQor44Oe44Ko44Kr44OvLOODnuOCteODnw0KK+ODqOOCt+OCpCzjg4jjgrfjg47jg6oNCivjg5vjgr3jg6Qs44OS44OH44OS44KzDQor44K144Kr44Oi44OILOOCq+OCuuOCqg0KK+OCs+OCpOOCuuODnyzjgrfjgrLjg58NCivjg4vjgrcs44Ok44K544OV44OfDQor44Kr44ON44KzLOOCouOCreODqQ0KK+OCueODn+OCr+ODqSzjgrfjg6fjgqbjg5jjgqQNCivjg6jjgrPjgqos44K/44Kr44KqDQor44K144K144KtLOOCq+OCuuOCqg0KK+ODj+ODpOOCtyzjgqLjgq3jg6kNCivjgr/jg4rjgqss44Kt44Oo44K3DQor44Ki44Kt44Ok44OeLOODiOODn+OCqg0KK+OCteOCpOOCuSzjg6jjgrfjgqvjgroNCivjg47jgqzjg58s44K744Kk44K4DQor44OI44Oo44K344OeLOOCt+ODpeOCpuOCpOODgeODreOCpg0KK+OCt+ODsyzjgr/jgqvjgrcNCivjg5Xjgq3jg44s44Oi44Oq44Oo44K3DQor44Kk44Kx44OALOOCq+OCuuOCreODgQ0KK+OCquODgOODr+ODqSzjg6rjg4QNCivjgr/jgqvjg4/jgrcs44OI44K344Kr44OEDQor44Kx44Kk44OeLOOCuOODpeODsw0KK+OCt+ODn+OCuizjgrPjgqbjgrgNCivjgqTjg57jgqTjgrrjg58s44OI44Oi44K4DQor44Oi44Oq44K/LOODpuODn+OCsw0KK+ODouODqizjg6Tjgrnjg58NCivjg57jgqjjgqvjg68s44Ok44K544Kr44K6DQor44Ok44OK44Ku44OALOOCueOCueODoA0KK+ODoOODqeODouODiCzjg5Ljg63jgrcNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Ob44K944KoLOODnuOCteODkuOCsw0KK+OCpOOCt+OCr+ODqSzjgrvjgqTjgrgNCivjg5Ljg63jgqvjg68s44Om44Km44K4DQor44Kr44Op44K344OeLOOCv+OCq+OCtw0KK+ODnuODgeODgCzjgrfjg7PjgqTjg4ENCivjg6Ljg6rjg6Tjg54s44OS44K144OO44OqDQor44K/44Kx44Og44OpLOODhuODhOOCvuOCpg0KK+ODhOOCq+ODouODiCzjgqLjgq3jg5Xjg58NCivjg6Tjg57jgrDjg4Es44OS44Ot44OS44OIDQor44K944Oh44OkLOOCouOCreOCqg0KK+ODiuOCq+OCtOODoSzjg5Ljg4fjgqoNCivjgqTjg6/jg4rjgqws44Kx44Kk44K544KxDQor44K744Kt44OkLOOCseODs+OCuA0KK+ODhuODqeOCpCzjgqvjgrrjg5Ljg60NCivjgr/jg4rjgqss44OS44OH44KqDQor44K744Kt44OkLOOCuOODpeODs+ODreOCpg0KK+OCteOCr+ODqeOCpCzjgqjjg5/jgrMNCivjgqTjgr3jg5ks44Oe44OE44K/44Ot44KmDQor44Oe44OE44Kq44KrLOOCv+OCq+ODkuOCsw0KK+OCpOODgSzjg57jgrXjg47jg6oNCivjg6Tjg57jg6Ljg4gs44K344Ot44KmDQor44OH44Kw44OBLOOCv+OCq+ODiOOCtw0KK+ODkuODqeODnuODhCzjg6jjgrfjgqoNCivjg5/jgrrjg44s44Kk44K144OgDQor44OI44Of44OK44KsLOODnuOCteODkuODrQ0KK+OCv+OCq+OCt+ODnizjg5Ljg4jjgrcNCivjg47jgqzjg58s44OS44Ot44K3DQor44Kq44Kq44OELOODkuODreODleODnw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgqTjg4ENCivjg4bjg6njg4As44OI44K344Kr44K6DQor44K144Kk44OI44KmLOOCv+ODhOODpA0KK+OCouOCteODjizjgr/jgqvjg6QNCivjgrfjg6Ljg6Djg6ks44OO44Oq44OI44K3DQor44Kq44Kq44Kk44K3LOODjuODquODqOOCtw0KK+OCv+ODiuOCqyzjg4Tjg43jgqoNCivjg57jg4Tjg6Ljg4gs44Kt44Oo44K3DQor44OS44Op44Oe44OELOOCt+OCsuODqw0KK+OCv+OCseOCpuODgSzjg5/jg47jg6sNCivjgrfjgrLjg4/jg6ks44OG44Or44Oe44K1DQor44Kq44Kr44Oi44OILOODj+OCuOODoQ0KK+ODoOODqeODpOODnizjg6Ljg4jjgrMNCivjgrPjg57jg4Tjg5Djg6ks44K344K644KqDQor44Ko44OQ44K/LOOCseODs+OCuA0KK+OCquOCquOCvyzjgrTjg63jgqYNCivjg4bjg6njgqos44OS44Ot44Om44KtDQor44Kq44Kq44K144OvLOODnuOCteODqw0KK+OCq+ODr+OCt+ODnizjgr/jg4Tjg58NCivjgqLjg6njgqQs44Oe44K144K3DQor44OP44K344K644OhLOOCouOCreODqQ0KK+ODn+OCuuOCt+ODnizjgrPjgqbjgrgNCivjg5Ljg6njg57jg4Qs44Ko44OE44KqDQor44Kq44Kv44Og44OpLOODqOOCt+OCsw0KK+ODn+OCuuODiuOCqyzjgrPjgqbjgrcNCivjg5vjg6rjgqbjg4Es44K344Ol44Km44Kk44OBDQor44K/44Kt44Oi44OILOODiOOCt+OCqg0KK+ODpOOCueODkCzjgrPjgqbjgrgNCivjgq3jgr/jg44s44Oi44OI44OO44OWDQor44OL44K344OALOODpuOCreOCqg0KK+OCpOOCt+OCq+ODryzjg4jjgrfjg58NCivjgqrjgqrjg5As44OS44K144KqDQor44Kr44K344Ov44KuLOOCq+OCuuODpuOCrQ0KK+OCteODiOOCpizjgqrjgrXjg6ANCivjg57jg4Tjg4As44Ki44Kt44KqDQor44Kz44Og44OtLOODiuOCquOCrQ0KK+ODoOODqeOCvyzjg5Ljg4fjg6bjgq0NCivjgrXjgrXjgqzjg68s44Kr44K644KqDQor44K144K/44KxLOODj+ODq+ODiOOCtw0KK+OCr+ODr+ODjizjg5LjgrXjgqoNCivjgrTjg4jjgqYs44Kr44OE44OfDQor44OV44K444KkLOOCt+ODs+OCpOODgQ0KK+ODn+OCuuOCs+OCtyzjgrHjg7PjgqTjg4ENCivjg5Xjgrjjg57jgq0s44Kr44K644OkDQor44Kk44OH44K/LOODkuODiOOCtw0KK+ODiuOCq+ODhOOCqyzjgr/jgqvjgrcNCivjgqbjg7Pjg44s44K/44Kx44OfDQor44K544K644KtLOOCq+OCuuODkuODrQ0KK+ODj+ODnizjg5Ljg63jgrcNCivjg4jjg5/jgr8s44K/44Kr44KqDQor44K/44OL44OELOODpuOCpuOCtA0KK+OCueOCuuOCrSzjg57jgrXjg5/jg4ENCivjgqrjgq/jg6Djg6ks44OB44Oo44K4DQor44OV44Kv44K344OeLOOCq+OCuuODkuOCsw0KK+OCquOCquODj+OCtyzjg5Ljgqvjg6sNCivjg6Tjg57jgrfjgr8s44K/44Kr44KqDQor44Kr44Ov44OfLOOCu+OCpOOCpOODgQ0KK+ODj+ODq+OCvyzjgrHjg7PjgqTjg4Hjg60NCivjg5/jg6Tjg6Ljg4gs44OS44Ot44K3DQor44OE44K444K/LOODpuOCpuOCsw0KK+OCpOODnuODoOODqSzjg57jgrXjgqoNCivjgrXjg4jjgqYs44K144OW44Ot44KmDQor44OK44Kr44K444OeLOODpuOCreOCsw0KK+OCt+OCpOODjizjgrfjgrLjgqoNCivjgrTjg4jjgqYs44Of44OO44OrDQor44Kr44OI44KmLOODouODiOODj+ODqw0KK+ODiuOCrOOCpCzjg4HjgqjjgrMNCivjgqbjg4Hjg44s44Ki44OE44K3DQor44Ko44Kk44K444OeLOOCquOCteODoA0KK+ODpOODnuODiuOCqyzjgrPjgqbjgrgNCivjg4rjgqvjg6Djg6ks44OO44OW44KqDQor44K544K644KtLOODpOOCueODpuOCrQ0KK+OCu+ODoOODqSzjg6rjg6XjgqbjgqTjg4ENCivjg4rjgqvjgqzjg68s44Kr44OE44OS44OtDQor44K/44OkLOOCv+OCq+OCtw0KK+ODoOODqeOCq+ODnyzjg5Ljg63jg47jg6oNCivjgqTjgrfjgqvjg68s44Kz44Km44Kk44OBDQor44K744Kt44Kw44OBLOOCt+ODp+OCpuOCpOODgeODreOCpg0KK+OCquOCquODjizjg6jjgrfjg6bjgq0NCivjgqrjgqTjgqvjg68s44OI44K344OkDQor44Kk44Ov44KkLOOCr+ODi+ODpOOCuQ0KK+OCouOCteODkizjgrHjg7PjgrgNCivjgrTjg4jjgqYs44Kr44Kq44OrDQor44Kr44ON44K/44KxLOOCq+ODiuODoQ0KK+OCpuOCqOODnuODhCzjg4jjgrfjg47jg6oNCivjg5Xjgq/jgrfjg54s44OS44Ot44K4DQor44OV44Kv44OALOOCv+OCq+ODpuOCrQ0KK+OCueOCuuOCrSzjgq3jg6fjgqbjgrMNCivjgqrjgrDjg6ks44Om44Kt44OS44KzDQor44OS44Op44OHLOODjuODluOCq+OCug0KK+OCquOCt+OCsizjgr/jgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Ko44Oq44KzDQor44K144K144KtLOOCqOODhOOCqg0KK+OCtOODs+ODgCzjg57jgrXjg6sNCivjg57jg4Tjgqrjgqss44K744Kk44K4DQor44Km44Oh44K244OvLOODnuOCteODhOOCsA0KK+ODi+OCt+OCqizjgqvjgrrjg4rjg6oNCivjgrPjgrjjg54s44Om44Km44K+44KmDQor44K/44OL44Kw44OBLOODqOOCt+ODhOOCsA0KK+OCquOCquOCruOCuSzjg5Ljg63jgrcNCivjgrXjg4Djg5LjgrUs44Kz44Km44Kk44OBDQor44OV44K444Ov44OpLOODouODquOCqg0KK+ODj+ODg+ODiOODqizjg4rjgqrjg6bjgq0NCivjgqvjg57jgr8s44OI44K344KqDQor44OI44OQLOODnuOCs+ODiA0KK+ODpOODnuODgCzjgr/jg4Djg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Of44Kt44KqDQor44K/44Kx44Km44OBLOOCv+OCseOCtw0KK+OCouODqeOCrSzjg5Ljg4fjg5Xjg58NCivjg4vjgrfjgqos44K744OE44KzDQor44Oi44Oq44Km44OBLOOCteODiuOCqA0KK+OCpOODr+OCvyzjg5Ljg4fjgqLjgq0NCivjgrXjgrXjgq0s44Oe44K144Ot44KmDQor44Oe44Ko44Ks44OvLOODpOOCueODhOOCsA0KK+ODleOCr+ODi+OCtyzjgqvjgrrjg47jg5YNCivjgqbjgqjjg4As44OI44Oi44OoDQor44Ok44Oe44Ku44K3LOODnuOCs+ODiA0KK+OCquODjizjgrHjg7PjgrgNCivjg5Xjgrjjgr8s44OV44Kv44Kt44OBDQor44Kt44K/44Og44OpLOODqOOCt+ODn+ODhA0KK+ODqOOCt+ODj+ODqSzjg6bjg6rjgrMNCivjgqTjg6/jgrXjg68s44K/44Kv44OfDQor44Kz44Oe44OELOOCv+ODhOODqOOCtw0KK+OCv+ODi+ODoOODqSzjg5Ljg63jgqLjgq0NCivjgrPjgrXjgqss44OS44K144K/44KxDQor44K/44K344OeLOODnuOCteODpuOCrQ0KK+ODi+OCt+OCquOCqyzjgqvjg4Tjg6bjgq0NCivjgrnjgrrjgq0s44OI44K344KqDQor44K044OI44KmLOODpOOCueODkuODqQ0KK+OCq+ODr+ODj+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jgrjjg54s44K344On44Km44K4DQor44Kr44Oz44OOLOOCouOCreOCqg0KK+OCq+OCv+OCt+ODnizjgrfjg7Pjg6QNCivjg4/jgrfjg6Ljg4gs44Of44K544K6DQor44OK44Kr44OALOODkuODreOCtw0KK+OCq+OCteODj+ODqSzjgrvjgqTjgqTjg4ENCivjg4bjg6njg6Ljg4gs44K/44Kr44Ki44KtDQor44Ov44Kr44Oe44OELOODnuODiuODnw0KK+OCpOODiOOCpizjg4jjgrfjg4TjgrANCivjg6/jg4As44OS44OH44OfDQor44K/44Oz44K4LOODkuODreOCouOCrQ0KK+OCquOCquODhOOCqyzjg6HjgrDjg58NCivjg4Tjgrjjg6Ljg4gs44Kx44Kk44Kk44OBDQor44K744Oq44K244OvLOODjuODluODj+ODqw0KK+ODiOODjuOCteOCrSzjg5Xjg5/jgqgNCivjgr/jgqvjgq4s44Of44OB44KzDQor44Kq44OV44OBLOOCq+ODhOODiuODqg0KK+OCouODnuODjizjg5/jg4HjgqoNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OpDQor44K/44OQ44K/LOODpuOCpuOCuA0KK+ODiOODqOOCuuODnyzjg57jgrXjgqLjgq0NCivjgrfjg6Xjgq/jg6Qs44Oo44K344Ot44KmDQor44K/44Kr44OOLOOCt+ODs+OCpOODgQ0KK+ODoOODqeOCq+ODnyzjg5Ljg4jjgrcNCivjgqTjgrfjgrrjgqss44OO44OW44Oo44K3DQor44Kk44Kk44K644KrLOODiOOCt+ODkuOCsw0KK+OCt+ODqeOCpCzjgqLjgq3jg6kNCivjg5Xjgq/jg4/jg6ks44K544Ko44OP44OrDQor44Kk44OK44Ks44KtLOODhuODhOOCqg0KK+ODkuODqeOCt+ODnizjg5Ljg4jjgrcNCivjg4Tjgrjjg5Djg6Tjgrcs44Ki44OE44K3DQor44Oe44OE44KqLOODnuOCteODnw0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjg6Ljg6rjg44s44K/44Kr44KqDQor44K/44K444OeLOODiOOCt+OCqg0KK+ODjuOCtuOCrSzjgrjjg6Xjg7MNCivjgqLjg4Djg4Es44OO44OW44K/44KrDQor44K/44Kr44OkLOOCv+OCq+OCtw0KK+OCquODjizjg57jgrXjgqoNCivjg57jg4Tjg6Ljg4gs44Kr44OE44Ki44KtDQor44OP44K344Oi44OILOOCq+OCuuODkuODhw0KK+OCq+ODjizjg6TjgrnjgrcNCivjgr/jgrHjg4As44OV44Of44KzDQor44Kt44Oq44OP44OpLOOCseOCpOOCsw0KK+OCv+ODiuOCqyzjg6Tjgrnjg5LjgrMNCivjg4jjg6rjgqQs44Ki44Kt44OO44OWDQor44OK44Kr44K344OeLOODnuOCteOCqg0KK+OCu+OCueODnyzjgrjjg6Xjg7MNCivjg57jgqjjg47jgr3jg44s44Kr44K644OK44OqDQor44K044OI44KmLOOCt+ODs+OCuA0KK+ODm+ODqizjg6bjgq3jg6jjgrcNCivjgr/jgqvjgqTjg6ks44Kt44On44Km44Kk44OBDQor44K/44OL44OALOOCouOCreODkuODrQ0KK+ODleODq+ODieOCpCzjgrfjg6XjgqbjgqTjg4Hjg63jgqYNCivjgqrjgqrjgq7jg6Qs44Oe44K144OK44KqDQor44OK44Kr44K444OeLOODjuODluODqOOCtw0KK+ODm+ODquOCq+ODryzjgqvjgrrjg5Ljg60NCivjgrnjgrrjgq0s44Oe44Kz44OIDQor44Ki44Kq44KtLOODjuODluODpuOCrQ0KK+OCquOCr+ODj+OCvyzjg57jgrXjg5Ljg60NCivjgq/jg6/jg5Djg6ks44Om44Km44K544KxDQor44Kr44Oz44OALOODkuODreODn+ODhA0KK+OCueOCruODouODiCzjg6rjg6fjgqYNCivjg6Tjg57jg6Ljg4gs44OS44OH44Ki44KtDQor44Kr44ON44KzLOODnuOCteODqw0KK+ODiuODquOCvyzjg6Ljg4jjg6bjgq0NCivjg4vjgrfjgqos44K/44Kx44OS44OtDQor44Kk44Kr44OqLOODj+ODq+OCqg0KK+ODleODq+OCq+ODryzjgrHjg7PjgqTjg4ENCivjgqLjg6njgqQs44K744Kk44K4DQor44Kv44K644Kr44OfLOODkuODreOCtw0KK+OCtOODiOOCpizjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jg4/jg6ks44Oe44K544OfDQor44Ok44Oe44OALOOCt+OCsuODqw0KK+OCpOOCuCzjg4jjgrfjg63jgqYNCivjgq/jg6njg6Ljg4Es44Of44Kt44KqDQor44OV44K444Ov44OpLOODkuODh+OCueOCrg0KK+OCv+OCseODgCzjgrXjg4jjgrcNCivjgr/jgqvjg47jgrss44Ko44OE44KqDQor44OI44Oi44Og44OpLOOCt+OCsuODleODnw0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgrXjgqvjgq3jg5Djg6ks44Oe44K144Om44KtDQor44Of44Ok44K244KtLOODpuOCpuOCuA0KK+ODqOOCt+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg4rjgqss44Oo44K344OS44KzDQor44K044OI44KmLOODn+ODgeOCqg0KK+ODi+OCt+ODgCzjgrHjgqTjgqTjg4ENCivjg4rjgqvjgrfjg54s44Of44OE44OS44OtDQor44Kt44Og44OpLOOCt+OCsuODpuOCrQ0KK+OCpOODjuOCpuOCqCzjg57jgrXjg4jjgrcNCivjgqrjgrfjg54s44K/44Kx44K3DQor44Kq44Kq44OkLOODnuODouODqw0KK+ODn+ODpOODouODiCzjg57jgrXjg47jg6oNCivjg6Tjg57jgrfjgr8s44Kq44K144OgDQor44K/44OK44KrLOODnuOCueODnw0KK+ODouODqizjgqLjg4TjgrcNCivjg4rjg6vjg58s44Kq44K144OgDQor44K044OI44KmLOODgOOCpOOCuOODreOCpg0KK+ODpOODnuODgeOCqyzjgqLjgq3jg6kNCivjgrXjgrXjgq0s44Oe44K144OS44OIDQor44Kt44K344OALOODn+ODgeOCqg0KK+OCquOCquODpOODnizjg6jjgqbjgrnjgrENCivjgrfjgqTjg44s44Kr44OE44OkDQor44Kk44K644Of44K144OvLOODqOOCt+ODiOODog0KK+OCq+ODn+ODoOODqSzjg4DjgqTjg4ENCivjgrXjgqvjgqQs44Kx44Oz44Kk44OBDQor44K044OI44KmLOOCq+OCuuOCqg0KK+OCq+ODiOOCpizjgq3jgqTjg4Hjg63jgqYNCivjgr/jgqvjg4/jgrcs44Kz44Km44K4DQor44Kv44OOLOOCv+ODhOODkuOCsw0KK+OCpOODr+ODluODgSzjg57jgrXjg4TjgrANCivjg5vjg7Pjg5Ys44Oe44K144OV44OfDQor44Oi44Oq44K/LOOCuOODpeODsw0KK+OCu+OCreODpCzjgrMNCivjg4zjg57jgr8s44Kr44K644OkDQor44K044OI44KmLOODoeOCpOOCteOCpA0KK+ODnuODiuODmSzjg57jgrXjg6sNCivjgqTjg57jgq3jgr8s44K344On44Km44K4DQor44Kz44OA44KrLOOCseODs+OCuA0KK+ODqOOCt+ODgCzjgr/jgrHjg5LjgrUNCivjgrXjg4jjgqYs44K/44Kx44K3DQor44Kv44K544OfLOOCq+OCuuODpuOCrQ0KK+ODj+OCruODr+ODqSzjg4jjgrfjgqvjgroNCivjg5Xjg6vjgrss44OG44Or44OS44KzDQor44Og44Op44K/LOOCt+ODp+OCpuOCsw0KK+OCquOCr+ODoOODqSzjg57jgrXjg5LjgrMNCivjgr/jg4vjgqzjg58s44K/44Kk44OBDQor44OK44Kr44Og44OpLOOCt+ODs+OCuA0KK+OCs+OCpOOCuuODnyzjg57jgrXjg5LjgrMNCivjgrnjg4njgqYs44OS44Ot44K3DQor44Kk44OHLOODhuODhOODpA0KK+OCt+ODouODjizjgqvjgrrjg5Ljg60NCivjgr/jgqvjgq4s44Oo44K344Ki44KtDQor44K144Kr44KkLOOCouODhOOCtw0KK+OCpOODjuOCpuOCqCzjgqvjgrrjgqoNCivjg5Xjg6vjgr8s44Of44OB44OO44OWDQor44Ki44K144KkLOOCreODqOOCtw0KK+ODleOCq+OCteODryzjgq/jg4vjg5LjgrMNCivjgrTjgqvjgqTjg4Es44Kz44Km44K4DQor44Kq44Kq44OE44KrLOODpOOCueODjuODqg0KK+OCteODiOOCpizjgrXjg4jjgrcNCivjgqTjg47jgqbjgqgs44K344Ky44OrDQor44K/44Kx44OALOODnuOCteODpuOCrQ0KK+ODnuOCueODgCzjg6jjgrfjg5LjgrMNCivjg6Tjg57jg6Ljg4gs44OO44Oc44OrDQor44Kq44Kq44OP44OpLOODnuODiuODlg0KK+ODleODiuODhCzjgqvjgrrjg5LjgrMNCivjgrPjg6Tjg54s44K444Ol44Oz44K+44KmDQor44Ok44Oe44K244KtLOODiOOCt+ODkuODrQ0KK+OCv+OCuOODqizjg5/jg43jg4/jg6sNCivjgrXjg4jjgqYs44OE44Oo44K3DQor44OK44Ks44K344OeLOOCuOODreOCpg0KK+ODhOODgCzjgr/jgqvjgrcNCivjg4rjgqzjgqos44OI44Oi44OfDQor44Kq44Kq44K544KuLOODkuODreODpuOCrQ0KK+OCpOODiOOCpizjg4jjg6Ljg4rjg6oNCivjgr/jg57jgqQs44Om44K/44KrDQor44Of44Ok44K344K/LOODqOOCpuOCpOODgeODreOCpg0KK+ODn+OCt+ODnizjg6jjgrfjg5Ljg60NCivjg5vjg6rjgqQs44OK44Kq44Ki44KtDQor44K044OI44KmLOODnuOCs+ODiA0KK+ODpOOCqizjgrjjg6Xjg7PjgqTjg4ENCivjg5Ljgrjjg6Qs44K/44OE44OkDQor44Ob44Oq44KkLOODkuODh+OCuA0KK+OCv+OCseODgCzjgr/jgqvjg6jjgrcNCivjg6Tjgrnjg4rjgqws44Kr44OE44OfDQor44Ok44Oe44K244KtLOODkuODh+ODkuODiA0KK+ODpOODjizjgqLjgq3jg6kNCivjgrfjg6/jgq8s44Of44OO44OrDQor44Kr44Of44OOLOOCouOCreODqQ0KK+ODiuOCq+OCuOODnizjgr/jgqTjgrjjg63jgqYNCivjg57jgrnjg4As44Kv44OL44OS44KzDQor44Kq44OV44OBLOOCuOODreOCpg0KK+ODleOCr+OCtuOCrSzjg6zjgqTjgrMNCivjgqTjgr/jgqzjgq0s44K344Ky44KtDQor44K344OiLOODgeOCqA0KK+ODleOCr+OCpCzjg47jg5bjgqLjgq0NCivjgqTjg5Ms44K444Oz44Kk44OBDQor44Kz44Og44Kr44KkLOOCreODqOODnw0KK+ODleOCuOOCqCzjg47jg5bjg6bjgq0NCivjg57jg4Tjgq0s44Kr44K644OS44KzDQor44Kz44OQ44Ok44K3LOOCq+OCuuODqOOCtw0KK+OCtOOCpuODgSzjgqvjgrrjg4jjgrcNCivjg4/jgrvjgqzjg68s44Kx44OzDQor44Kr44Ov44K044KoLOODiOODouODleODnw0KK+ODiuOCrOOCteODryzjgr/jgqTjgrvjgqQNCivjg6Tjg57jgrfjgr8s44K144Kr44KoDQor44Kk44K344K244KtLOOCt+ODs+OCpOODgeODreOCpg0KK+OCquODgCzjg5/jg4Hjg5Ljg60NCivjgrfjg7Pjg4njgqYs44K/44Kr44Ki44KtDQor44K344Oi44K144KzLOODj+ODq+ODkuOCtQ0KK+ODhOODhOODnyzjgq3jg6jjgrcNCivjgq3jgr/jgqrjgqss44Kr44K644OS44KzDQor44Kt44K/44K244OvLOOCs+OCpuOCuA0KK+ODiuOCq+OCquOCqyzjgqjjgqTjgrgNCivjgqTjgrfjg5Djgrcs44Of44Om44KtDQor44OP44K344Kw44OBLOODn+ODr+OCsw0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg5Ljg60NCivjgqrjgqrjg5As44Kr44OK44OhDQor44OP44OpLOOCq+OCuuODpA0KK+OCt+ODn+OCuizjgrPjg5/jg4oNCivjgqTjgrbjg68s44Oo44K344OS44KzDQor44Oo44K344Ok44OeLOOCouOCreODqQ0KK+OCueOCruODouODiCzjg5Ljg63jg6bjgq0NCivjgrPjg57jg4Qs44Kz44Km44Kk44OBDQor44OY44Oz44OfLOOCs+OCpuOCvuOCpg0KK+ODleOCq+ODgCzjg47jg6rjg5Xjg58NCivjgrPjg5Djg6Tjgrcs44Oo44K344OS44K1DQor44K544Ku44Oi44OILOOCseODs+OCuA0KK+ODqOOCs+ODpOODnizjg4Tjg4jjg6ANCivjgr/jg4rjgqss44OO44Oq44OS44KzDQor44Of44Ok44K/44OLLOOCteODiOODqw0KK+ODj+OCu+OCrOODryzjgqLjg4TjgrcNCivjgq3jgr/jgqzjg68s44K/44Kr44Ki44KtDQor44OV44Kv44Kq44KrLOODkuODreODpuOCrQ0KK+OCquODoOODqSzjgrXjg4jjg6sNCivjgqTjgrDjg4Es44Oe44Kz44OIDQor44OP44Ok44K3LOODnuODquOCsw0KK+ODkuODqeOCpCzjgqvjgqjjgrMNCivjgqrjgqrjg6Ljg6os44Os44Kk44KzDQor44Kq44Ku44OOLOOCpOODgeODreOCpg0KK+OCv+ODoOODqSzjg5/jg4TjgqoNCivjgr/jgrHjg4As44OS44OH44Ki44KtDQor44Of44Ok44OK44KsLOOCs+OCpuOCpOODgeODreOCpg0KK+ODkuODqeOCpCzjg47jg6rjg57jgrUNCivjg4vjgrfjg6Djg6ks44OS44Ot44Om44KtDQor44OP44OW44OBLOODkuODh+OCq+OCug0KK+OCquOCquOCr+ODqSzjg6jjgrfjgqLjgq0NCivjg4/jg4Pjgr8s44Ko44Kk44K4DQor44Kk44Kz44OeLOODkuODreODpuOCrQ0KK+OCouOCteODkuODiizjgr/jgqvjgrcNCivjgqvjg47jgqYs44K344Oz44K0DQor44OK44Kr44OL44K3LOOCt+ODpeOCpuOCuA0KK+ODn+ODpOOCtuOCrSzjg5Ljg63jg6ANCivjgqTjg4Hjgqvjg4ks44OI44Oo44Ki44KtDQor44OK44Ks44K144OvLOOCouOCreODjuODlg0KK+ODj+ODnuOCsOODgSzjg4/jg6vjgqoNCivjg6Tjgrfjg60s44OS44Ot44OO44OqDQor44Og44Op44KqLOODnuOCrQ0KK+OCquOCquOCruODnuODgSzjgqLjgq3jg6kNCivjgrfjg63jgr8s44Oe44K144Om44KtDQor44OG44K344OeLOODn+ODhOOCqg0KK+OCq+ODr+OCteOCrSzjg6Tjgrnjg6bjgq0NCivjg6Tjg57jg4As44Kq44K144OgDQor44Ob44Oz44OALOODnuOCteODkuODhw0KK+OCq+ODjeOCsyzjgrfjgrLjg6sNCivjg57jg4Tjgrfjg54s44OS44Ot44K644OfDQor44Kz44Of44OkLOOCs+OCpuOCuA0KK+ODr+ODgCzjg4Tjg6jjgrcNCivjg6jjgrfjg4As44K/44Kr44K3DQor44Oi44Oq44K144KtLOODpuOCpuOCuA0KK+OCpOODnuODkuOCrOOCtyzjg5Ljg4fjgqoNCivjgq/jg6njg6Ljg4Es44Ov44K/44OrDQor44Om44Kr44OvLOOCteODiOOCtw0KK+ODhuODqeOCqizjgrjjg63jgqYNCivjgrPjg7Pjg4ks44Oe44KtDQor44K144Kk44OI44KmLOODnuOCteODpuOCrQ0KK+ODqOOCt+ODiuOCrCzjg5Ljg63jgrcNCivjg6bjgqLjgrUs44OP44Or44Om44KtDQor44K744Oz44KsLOODqOOCt+OCqg0KK+ODi+OCt+OCsOODgSzjg4jjgrfjgqLjgq0NCivjgqbjgqjjg4As44OK44Kq44KtDQor44Ok44Oe44Kq44KrLOODiOOCt+OCqg0KK+ODpOODnuODouODiCzjgqvjgrrjgqoNCivjg5Xjgrjjgqvjg68s44OI44K344K/44KxDQor44Kq44Kw44OpLOOCv+OCq+OCtw0KK+OCq+ODr+ODjizjg5Ljg4fjgqoNCivjgqvjg43jgrrjgqss44OS44Ot44Ki44KtDQor44Kq44Kr44Oi44OILOODpuOCpuOCueOCsQ0KK+OCq+ODr+ODhOOCrSzjgqvjgrrjgqoNCivjgrnjgqjjg6jjgrcs44K/44OE44OkDQor44Kr44Ov44OZLOOCt+OCsuODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg6bjgq0NCivjg6Ljg6os44K344Oz44K544KxDQor44K544Ku44Ok44OeLOODhuODhOOCuA0KK+ODnuOCqOODpOODnizjgq3jg6jjgrcNCivjgrPjg6Hjgr/jg4ss44Om44Km44K4DQor44OV44K444Ov44OpLOOCreODqOOCtw0KK+OCouODh+OCrOODryzjg5Ljg63jg6bjgq0NCivjg4jjg5/jgrbjg68s44Kq44K144OgDQor44OK44Kr44K/LOODnuOCteOCouOCrQ0KK+OCv+ODgeODkOODiuOCrSzjg4/jg6vjgqLjgq0NCivjgrPjg4Djg54s44K344On44Km44K0DQor44OP44OK44KkLOODgeODmw0KK+ODgeODjuODjSzjgqvjgrrjgqoNCivjgrfjg5/jgros44Kz44Km44Kk44OBDQor44K/44Kt44K244OvLOODnuOCteODiA0KK+OCr+ODieOCpizjgrHjg7PjgrgNCivjg6Ljg6rjgqrjgqss44Oe44K144Kr44K6DQor44Kr44ON44OS44OpLOOCouOCreOCqg0KK+OCteODiOOCpizjg5Ljg63jg47jg5YNCivjg6Tjg5Djg4os44OI44K344KqDQor44K144Kr44K644OhLOODkuODreODpuOCrQ0KK+ODj+OCt+ODouODiCzjgq3jg6gNCivjg6jjg47jg6Ljg4gs44OS44OH44KtDQor44OQ44Oz44K344On44KmLOOCr+ODi+OCqg0KK+ODleODgeOCqCzjgqvjgrrjgqoNCivjgrnjgrrjgq0s44Kk44Kv44KqDQor44K544K644KtLOODpuOCreODjuODqg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5Ljg60NCivjgqvjg4jjgqYs44K/44Kr44OE44KwDQor44Kv44K544OALOOCq+OCuuOCpOODgQ0KK+ODn+ODpOOCv+OCsSzjg6jjgrfjg5Ljg60NCivjgrXjg44s44OS44OH44K4DQor44Oe44Or44K/LOODiOOCt+OCouOCrQ0KK+ODnuOCreOCvyzjg57jg6rjgrMNCivjgqvjgrfjg6/jgq4s44OP44K444OhDQor44K/44OLLOODqOOCt+ODnw0KK+OCouODquODpOOCuSzjgqjjg4TjgqoNCivjgqvjg4jjgqYs44K344Ol44Km44K4DQor44K/44OK44KrLOODnuOCteODkuODiA0KK+ODhOOCuOOCvyzjg5Ljg63jgrcNCivjgqrjgqrjgqzjg6/jg6ks44K/44OA44KqDQor44Og44Op44K144OvLOODiOOCt+ODkuODrQ0KK+OCu+OCreODouODiCzjg5LjgrXjgrcNCivjg4Tjgrjjg6Ljg4gs44OS44K144OIDQor44K344Kq44K/44OLLOODqOOCpuOCpOODgeODreOCpg0KK+ODn+ODryzjg4jjgrfjgqoNCivjg4rjgqzjgrXjgqss44K744Kk44K4DQor44Kz44Kk44OHLOOCouOCreODqQ0KK+OCquOCsOODqSzjg4Tjg4jjg6ANCivjg4Tjg4Tjg58s44K/44Kr44OO44OqDQor44OV44Kr44OfLOOCuOODpeODs+OCpOODgQ0KK+ODqOOCt+ODgCzjgr/jgqvjgrcNCivjg6Ljg63jg5vjgrcs44K544K544OgDQor44K344Kq44OOLOOCv+ODgOODkuODhw0KK+ODpOODnuOCsOODgSzjg47jg5bjg5/jg4ENCivjg57jg5/jg6Qs44OE44Kr44K1DQor44K144Kk44OI44KmLOOCt+OCsuODpuOCrQ0KK+OCouOCreODpOODnizjgq3jg6jjgrcNCivjgqLjg4Djg4Es44Kr44K644OS44OtDQor44Kr44Ov44OOLOODiOOCt+ODn+ODhA0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg5Ljg60NCivjg6Tjg57jgrDjg4Es44OI44K344KtDQor44K144Kv44OeLOODkuODh+ODnw0KK+ODouODgeOCuuOCrSzjg6jjgrfjgr/jgqsNCivjg6/jgr/jg4rjg5ks44Oo44Km44K4DQor44Kz44OQ44Ok44K3LOOCu+OCpOOCuA0KK+OCreOCtyzjg5/jg6zjgqQNCivjg4/jg6TjgrXjgqss44Of44OB44OoDQor44Kz44OV44K4LOODnuOCteODjuODlg0KK+OCteOCpOODiOOCpizjgqLjgq3jgrMNCivjg47jg6Djg6ks44K344Ol44Oz44K4DQor44Oe44OE44KkLOODpuOCreOCqg0KK+ODj+ODpOOCt+ODgCzjg57jgrXjgqgNCivjgqrjgqzjg68s44K/44Kr44K3DQor44Ob44Oz44OALOOCv+OCq+OCtw0KK+OCs+OCtuODryzjg6jjgrfjg6Ljg4gNCivjgrXjgrXjgq0s44OS44OH44Ki44KtDQor44Ov44OALOOCreODqOOCtw0KK+ODpOODnuODr+OCrSzjgr/jg58NCivjg5XjgrjjgqQs44OP44Or44OoDQor44K/44Kt44K244OvLOODpOOCueODkuOCsw0KK+OCteODiOOCpizjgrPjgqbjgrgNCivjg5/jgqvjg58s44K144OI44K3DQor44Of44OvLOODjuODnOODqw0KK+OCquODgSzjg5Ljg63jgrcNCivjg5Xjgrjjgr8s44Kx44Kk44K4DQor44OK44Ks44K/LOOCpOODgeODreOCpg0KK+OCr+ODnOOCvyzjg6jjgqbjgrMNCivjgqLjgqrjgqzjgq0s44Ky44OzDQor44Kr44Oq44Ok44OJLOODiuOCquOCsw0KK+ODn+ODj+OCtyzjgrfjg7PjgqTjg4ENCivjg6Djg6njg57jg4Qs44OB44Ko44KzDQor44Kr44K/44Ok44OeLOOCquOCteODoA0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg5LjgrMNCivjgqrjgqrjgq7jgr0s44Kt44Oo44K/44KrDQor44OQ44OQLOODnuOCteOCq+OCug0KK+ODn+OCt+ODnizjg57jgrXjg5LjgrMNCivjg6Tjg44s44Kq44K144OgDQor44OK44Kr44K444OeLOOCouOCreODkuOCsw0KK+OCv+OCseOCt+OCvyzjgq3jg6fjgqbjgrMNCivjg4rjgqvjg44s44Of44OO44OrDQor44K/44Kr44OOLOODpuOCrQ0KK+OCq+ODr+ODgCzjgqvjgrrjg57jgrUNCivjgr/jgrjjg54s44Kz44Km44K/44Ot44KmDQor44Oi44OB44K644KtLOOCreODqOOCtw0KK+OCreODoOODqSzjgqvjg4Tjg58NCivjgqLjgq3jg5ss44OI44Of44Oi44OIDQor44Ok44Oe44Oi44OILOOCouOCrQ0KK+OCq+ODr+OCuyzjg6bjgr/jgqsNCivjgrXjgrUs44OS44K144KqDQor44OO44K7LOOCq+OCuuODiuODqg0KK+ODkuODqeOCvyzjg4rjgqrjgq0NCivjgrPjg5Djg6Tjgrcs44K344Ol44Km44Kk44OBDQor44Ki44Ks44OvLOODpuOCpuOCueOCsQ0KK+ODhuODqeODouODiCzjg5Ljg63jg5Xjg58NCivjgqrjgrbjgq0s44K144Kr44KoDQor44Oi44OqLOOCreODp+OCpuOCsw0KK+OCpuODhCzjg5Ljg4jjgrcNCivjg6/jgqvjg57jg4Qs44OI44K344K144OADQor44Kk44Oe44KkLOODleODn+OCsw0KK+OCr+ODnCzjgr/jgqvjg5Ljg60NCivjgr/jgqvjg44s44K444Ol44Oz44K4DQor44OS44OT44OOLOODkuODh+OCqg0KK+OCueOCuuOCrSzjg4/jg6vjgq0NCivjgr/jg4rjgqss44K/44Kr44OP44OrDQor44K144Kr44Oi44OqLOOCq+ODqOOCsw0KK+OCv+OCreOCtuODryzjg4bjg4QNCivjg6jjgrfjgqvjg68s44K/44Ko44KzDQor44OI44Oo44OALOODquODpeOCpuOCpOODgQ0KK+OCpuODqeOCt+ODnizjg6bjgqbjgrgNCivjgrPjg7Pjg44s44Oi44OI44OS44OtDQor44OG44Op44Kr44OvLOOCv+OCseODiuOCrA0KK+OCs+ODkOODpOOCtyzjgqLjgq3jg5LjgrMNCivjgq3jg6Djg6ks44K/44Kr44KzDQor44Kr44Of44KqLOODrOOCpA0KK+OCr+ODrOODkOODpOOCtyzjgq3jg6jjg58NCivjgqvjg43jg4As44OS44Ot44KzDQor44Kr44Ov44Oi44OILOOCs+OCpuODmOOCpA0KK+OCpOODnuODoOODqSzjg6jjgrfjg5Ljg60NCivjgrPjg4/jgq7jgrbjg68s44Of44OO44OrDQor44K344OO44K244KtLOOCt+ODpeOCpuOCpOODgeODreOCpg0KK+ODoeOCsOODrSzjgrXjg4jjgrcNCivjgq/jg4vjgrXjg4As44Oe44K144OP44OrDQor44Oi44OqLOOCreODqA0KK+OCq+ODr+OCruOCtyzjgr/jgqvjg6bjgq0NCivjgqrjgqrjgrnjgqws44Kr44Ko44OHDQor44K544OALOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjgq3jg6jjgqvjgroNCivjgqTjgrfjgrMs44K444Ol44OzDQor44K544K644KtLOODiuOCquODpA0KK+OCreOCr+ODgSzjgqvjgrrjg5LjgrMNCivjgqrjgq7jgr8s44Ki44Kt44OpDQor44K/44Kr44Ok44OeLOOCv+OCq+ODiOODqQ0KK+ODiuOCq+OCt+ODnizjgq3jg6jjgrcNCivjg4Tjgrjjg6Ljg4gs44OS44Ot44K3DQor44OP44Ok44OeLOOCr+ODi+ODkuODrQ0KK+OCpOOCv+OCrOOCrSzjg57jgrXjgqLjgq0NCivjg6Tjg57jg6Ljg4gs44OS44Ot44Ki44KtDQor44Ki44OA44OBLOODkuODreOCtw0KK+OCreOCv+ODnyzjg5Ljg63jg5Ljg4cNCivjgr/jg57jgq0s44Of44OB44KqDQor44Oe44Ko44OALOODpuOCpuOCuA0KK+OCouODgOODgSzjgrfjg6fjgqbjgr7jgqYNCivjgr/jg57jg4As44Kw44Oz44K4DQor44Oi44Oq44Kw44OBLOODpuOCpuOCuA0KK+ODqOOCt+ODiuOCrCzjg47jg6rjgrMNCivjg57jgqjjg4As44K/44Ko44KzDQor44Ov44K/44OK44OZLOOCv+ODnuOCrQ0KK+OCv+OCq+ODj+OCtyzjg6jjg6rjgr/jgqsNCivjgqTjgrfjgrMs44OG44OE44Ot44KmDQor44Kq44K444OeLOOCq+ODhOOCuA0KK+OCt+ODkOODpOODnizjg6jjgrfjgqLjgq0NCivjgrfjg5As44K/44Kx44OS44KzDQor44OI44Oi44OOLOOCseODs+OCpOODgQ0KK+OCueODnyzjg57jgrXjg5Xjg58NCivjg5/jg4Tjg4rjgqws44Ki44Kt44KzDQor44Km44Op44OOLOODnuOCteOCrQ0KK+ODqOOCs+OCuuOCqyzjgrXjg4jjgrcNCivjg5Xjgrjjgqvjg68s44OP44Or44OS44OtDQor44Kr44OW44Op44KuLOODnuOCteODpuOCrQ0KK+ODqOOCt+ODgCzjg6bjgr/jgqsNCivjgrXjgqTjg4jjgqYs44Oo44K344Ki44KtDQor44Ok44OOLOOCv+OCq+ODkuOCtQ0KK+ODqOOCs+OCvyzjg4rjgqrjg58NCivjg4rjgqvjg6Djg6ks44Ki44OE44K3DQor44OK44Of44K144OILOODnuOCteOCq+OCug0KK+ODjeOCruOCtyzjgrHjgqTjgr7jgqYNCivjgq3jg44s44OO44Oc44OrDQor44OK44Kr44K444OeLOOCouOCreODqQ0KK+ODhOODhOODnyzjgrfjg6XjgqbjgqTjg4ENCivjgrPjgqbjg4As44Ok44K544OS44KzDQor44Ob44OqLOODn+ODpuOCrQ0KK+OCs+ODs+ODjizjgqvjgrrjg6QNCivjg6/jg4As44Om44Of44KzDQor44Oe44OE44OK44KsLOOCteODgOOCqg0KK+ODi+OCt+ODoOODqSzjg4jjgrfjg6bjgq0NCivjgqTjgqQs44Ok44K544OS44OtDQor44Ok44K544KkLOODiuOCquOCrQ0KK+OCs+ODkOODpOOCtyzjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jgrXjgq0s44Oe44K144OS44OtDQor44K544K644KtLOODpOOCueODpuOCrQ0KK+OCpOODr+OCvyzjg4/jg6vjg5LjgrMNCivjgrfjgrLjg6Ljg6os44K/44Kr44K3DQor44Kk44Oe44Og44OpLOODjuODluOCv+OCqw0KK+ODhOOCq+ODouODiCzjgqLjgq3jg6gNCivjgqTjg4jjgqYs44K344Oz44K544KkDQor44Kv44OcLOOCuOODreOCpg0KK+OCteODiuOCqCzjgqvjgrrjg57jgrUNCivjgrPjg4Djg54s44Ki44Kt44KqDQor44Kk44OI44KmLOOCq+ODhOOCtw0KK+OCouOCr+ODhCzjg6jjgqbjgrMNCivjgqLjgr/jg6njgrcs44Of44Ko44KzDQor44K/44Kw44OqLOOCuOODpeODs+OCsw0KK+ODjizjgr/jg4Tjg6QNCivjgqLjgqvjg57jg4Qs44Kx44Oz44K444Ot44KmDQor44Ki44K144OOLOOCseODs+OCuA0KK+ODiuOCq+OCrOODryzjg57jgrXjgqLjgq0NCivjgqvjg6/jgrfjg54s44Ki44K144KzDQor44K144OI44KmLOODkuODh+OCqg0KK+OCquOCsOODqSzjgrvjgqTjgrgNCivjgqTjgrfjg5Djgrcs44OS44Ot44Om44KtDQor44Oe44OE44Kq44KrLOOCv+OCq+ODqOOCtw0KK+OCv+OCreOCtuODryzjg57jgrXjg6jjgrcNCivjgqTjgr/jgq/jg6ks44K144OI44K3DQor44Ob44Oz44K044KmLOODqOOCt+OCq+OCug0KK+ODiuOCrOODpOOCuSzjgr/jgqvjg6bjgq0NCivjgqbjg4Hjg4As44OS44Ot44K3DQor44Ok44Oe44K344K/LOODhOODjeOCqg0KK+OCpOOCt+OCsOODrSzjg5Ljg63jgrcNCivjg6Ljg6os44OI44Oo44OS44KzDQor44K/44OK44KrLOOCs+OCpuOCpOODgQ0KK+ODkuOCsOODgSzjgrfjgrLjg4gNCivjgq3jg4gs44K344Oz44Kk44OBDQor44K/44OK44KrLOOCq+OCuuODpuOCrQ0KK+OCueOCuuOCrSzjgqvjgrrjg5Ljg60NCivjgrnjgqzjgqQs44Kx44Oz44K4DQor44Oo44ON44K244OvLOODqOOCt+OCq+OCug0KK+OCouODqeOCq+ODryzjg6rjg6XjgqbjgrgNCivjgqTjg47jg4As44Ok44K544OS44K1DQor44Kr44OI44KmLOODnuOCteOCqg0KK+OCq+OCsuODpOODnizjg57jgrXjgrcNCivjg5/jg6Tjg6/jgq0s44OI44K344OS44KzDQor44Of44OB44Ok44OeLOOCv+ODgOODpOOCuQ0KK+ODouODqizjg4jjgrfjgqLjgq0NCivjg6Ljg6rjgrXjg68s44K344Oz44Kk44OB44Ot44KmDQor44OL44K344Og44OpLOOCq+ODhOODpuOCrQ0KK+OCteOCpOODiOOCpizjg6Tjgrnjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Oo44Km44K544KxDQor44Oe44OE44Km44OpLOODqOOCt+OCouOCrQ0KK+ODj+OCu+OCrOODryzjg4Tjg4jjg6ANCivjgqbjg4Hjg4As44K444Ol44Oz44Kk44OBDQor44Ok44K544OALOOCs+OCpuOCpOODgQ0KK+OCpOOCt+ODgCzjg4jjgqrjg6sNCivjg6Ljg6rjg44s44Kr44OE44Oe44K1DQor44Kt44K/44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCteOCq+ODouODiCzjg6jjgrfjg47jg6oNCivjgr3jgqbjg5/jg6Qs44OS44Ot44Om44KtDQor44Kt44Kv44OBLOOCt+ODs+OCpOODgQ0KK+OCt+ODluOCpCzjgrPjgqbjgrgNCivjg4jjg5/jgr8s44Ki44OE44K3DQor44Oi44OqLOOCs+OCpuOCuA0KK+ODpOODnuOCsOODgSzjgrjjg6Xjg7PjgrgNCivjgq3jgr/jg6Tjg54s44Oo44K344OS44OtDQor44Oe44Oz44Oi44OILOOCouOCreODqQ0KK+OCv+ODiuOCqyzjg6bjgr/jgqsNCivjg6Ljg6os44Kr44K644OS44OtDQor44Kk44K/44Kv44OpLOOCpOOCteODoA0KK+OCpOODgeODn+ODpCzjg57jgrXjgrcNCivjg4vjgrfjg6Tjg54s44Kr44OE44K4DQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+ODj+ODs+OCrOOCpCzjg4/jg6vjgqoNCivjg4rjgqzjg44s44Kx44Kk44Kk44OB44Ot44KmDQor44K344OQLOOCseODs+OCuA0KK+OCs+OCuOODnizjgrnjgrnjg6ANCivjgr/jgr/jg44s44K144OI44K3DQor44Kr44Ov44OQ44K/LOODnuOCteODkuOCsw0KK+OCv+OCseODgCzjgr/jg63jgqYNCivjgqrjg6Djg6ks44Kk44Kv44Ot44KmDQor44K144KzLOODkuODreOCtw0KK+OCpOOCt+ODj+ODqSzjg5/jg47jg6sNCivjgqTjg4Hjg47jgrss44K544K544OgDQor44Kt44K344OALOODqOOCt+ODnw0KK+ODn+OCq+ODnyzjgrjjg6Xjg7MNCivjg4/jg6Tjgrcs44K/44Kv44K4DQor44K144K144KtLOOCouODpuODnw0KK+ODqOODjeODn+ODhCzjgqvjgrrjg4rjg6oNCivjgrvjgq3jg40s44Oo44K344OK44OqDQor44Kk44Oe44OL44K3LOOCreODqOOCv+ODgA0KK+OCouOCquOCrSzjgr/jg4DjgrcNCivjgrnjgq7jg6Tjg54s44Kk44K144KqDQor44OK44Kr44Oi44OqLOODqOOCt+ODleODnw0KK+OCt+ODnuODgCzjg57jgrXjg5LjgrMNCivjg57jgrnjg4As44OV44K144KqDQor44OE44Oc44KkLOODkuODreOCtw0KK+OCu+OCreODpCzjgrnjgrnjg6ANCivjgq3jgrjjg54s44OO44Oq44KqDQor44Oo44K344K644OfLOODkuODh+OCv+OCqw0KK+ODpOODiuOCruODgOODhizjgrfjg7Pjg6QNCivjgrfjgrLjg57jg4Qs44OP44Or44Ok44K5DQor44Kk44OO44Km44KoLOODiuOCquOCrQ0KK+OCv+OCseOCpuODgSzjgrHjgqTjgrMNCivjgr/jg4rjgqss44K/44Kx44K3DQor44OS44Ks44K3LOOCt+ODpeOCpuOCuA0KK+OCv+OCq+OCvyzjg4rjgqrjg5Ljg60NCivjg4rjgqvjgqQs44OE44Ku44KqDQor44OP44K744Ks44OvLOOCuOODpeODs+OCpOODgQ0KK+OCv+ODiyzjgr/jgqvjgrcNCivjgrPjg5Djg6Tjgrcs44Of44Kt44OI44OoDQor44K/44Kr44OP44K3LOOCouOCteOCsw0KK+OCouODmSzjg57jgrXjg4gNCivjgrPjg5Djg6Tjgrcs44Oo44K344K+44KmDQor44Kq44OOLOOCpOOCr+ODpA0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jg5Ljg60NCivjgq/jg63jg4As44Ki44OE44K3DQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+OCouODmSzjgrfjg7PjgrgNCivjgqTjg47jgqbjgqgs44Oo44Km44KzDQor44Ko44Oz44OJLOODqOOCt+OCqg0KK+ODjuODjuOCt+OCvyzjgrfjgrLjg5Xjg58NCivjgqvjg4rjgqQs44Kv44Of44KzDQor44Kz44K/44KtLOOCuA0KK+OCv+OCq+ODj+OCtyzjg6jjgqbjgrMNCivjgrfjgrLjg6Tjg54s44OI44Of44KqDQor44OV44Kr44OALOOCouOCreOCqg0KK+OCt+OCquOCuCzjgqvjg4Tjg6bjgq0NCivjg6Ljg6rjg6Qs44OV44Of44OS44OtDQor44Kq44Kq44OE44KrLOODnuOCteODpA0KK+OCouODmSzjg57jgrXjgr/jgqsNCivjg5Ljg6njgqQs44K/44Kr44Om44KtDQor44Og44Op44Oe44OELOOCuOODpeODsw0KK+ODn+OCuuOCvyzjg57jgrXjg58NCivjg5vjg6rjgqgs44Kr44K644Om44KtDQor44OS44Kr44K1LOODnuOCteOCv+OCqw0KK+OCquOCt+OCv+ODiyzjg57jgrPjg4gNCivjgrPjg5Djg6Tjgrcs44Kr44OE44OfDQor44Kv44Op44OP44K3LOODkuODh+ODpuOCrQ0KK+ODkuODqeODkOODqyzjgr/jgrHjgqoNCivjg5Xjgrjjgqjjg4As44Oe44Kz44OIDQor44OI44K244OvLOOCq+ODhOODnw0KK+ODpOODiuOCuyzjgrfjgrLjg6sNCivjgq/jg5zjgr8s44Oo44K344KqDQor44Oe44Of44OkLOODnuOCteOCrQ0KK+ODpuODj+ODqeOCrizjg57jgrXjg58NCivjg4Hjg6fjgqbjg4rjg7Ms44Oo44K344Oe44OtDQor44Of44Oo44K3LOODiOOCquODqw0KK+ODjuOCuOODnizjg6jjgrfjg47jg6oNCivjg6Ljg6rjgrXjgq0s44Oe44Kz44OIDQor44Kz44Ok44OeLOODiOOCt+OCouOCrQ0KK+OCq+ODiOOCpizjg5Ljg63jgq0NCivjgq3jg47jgrfjgr8s44Ok44OB44OoDQor44Kr44Ov44Og44OtLOOCteODiOOCtw0KK+ODouODqizjgrHjgqTjgqTjg4ENCivjg5Ljg6njgrfjgr8s44K144OA44KtDQor44Kr44Ov44K344OeLOODquODp+OCpg0KK+ODleODq+OCq+ODryzjgqLjgq3jg4gNCivjgqTjg7Pjg4fjg7Ms44Oe44K144OS44KzDQor44Ok44Oe44OALOODpOOCueODpuOCrQ0KK+ODhOOCr+ODgCzjg5/jg47jg6sNCivjgqTjg6/jgrXjgq0s44Oe44K144OS44OIDQor44Kq44Oe44KoLOOCquOCteODoA0KK+OCueOCuuOCrSzjg57jgrXjg6bjgq0NCivjg4/jg6ks44Oe44K144OS44KzDQor44K144Kr44KkLOOCv+ODhOODoOODjQ0KK+ODouODquODpCzjgqvjgrrjg57jgrUNCivjg5/jg6Tjg6Ljg4gs44OI44K344OS44OtDQor44K344Ky44K/LOODnuOCteODkuODrQ0KK+OCpOOCt+OCq+ODryzjg5Ljg4fjg47jg6oNCivjgr/jgrbjgq0s44K144OA44OgDQor44K544Ko44OS44OtLOODoOODjeODpA0KK+OCq+ODjeODgCzjgrPjgqbjgqTjg4ENCivjgrnjgqjjg5Ljg60s44K444Ol44Oz44Kk44OBDQor44K144K144KtLOODquODpeOCpuOCteOCrw0KK+ODkuODpOODnizjgr/jg4Tjg4/jg6sNCivjgq3jg4njgrDjg4Es44Oo44K344OS44OtDQor44K344Oe44OALOODiOOCt+ODpuOCrQ0KK+ODn+ODpOOCsSzjg5Ljg4jjg58NCivjg6Ljg6os44K444Ot44KmDQor44K344Op44Kr44OvLOOCs+OCpuOCuA0KK+ODr+OCq+ODkOODpOOCtyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg6Tjg57jgrfjgr8s44Kr44K644KqDQor44Ki44Oe44OOLOOCuOODpeODs+OCuA0KK+OCv+OCseOCpOODgSzjg5Ljg63jgr/jgqsNCivjgrfjg7Ms44Kx44Kk44KzDQor44Kr44K144OP44OpLOODhuODhOODpA0KK+OCv+ODiuOCqyzjgrHjgqTjgrcNCivjgqrjgq/jg4As44Ki44Kt44OpDQor44Kr44OI44KmLOODiOODouOCsw0KK+OCq+ODr+OCteOCrSzjg57jgrXjgrMNCivjgqvjg4jjgqYs44Kr44K644KqDQor44Kk44OB44K7LOODnuOCteOCouOCrQ0KK+OCreOCv+OCrOODryzjgrLjg7Pjg5jjgqQNCivjg6TjgrnjgqQs44Oo44K344OO44OWDQor44Ko44OALOODiOODn+OCq+OCug0KK+ODj+ODpOOCtyzjgr/jg4TjgrgNCivjg4rjgqzjgqQs44K144OI44K3DQor44OI44OO44Og44OpLOODnuOCteODjuODqg0KK+OCv+ODiuOCqyzjg47jg5bjg6bjgq0NCivjgq/jg6rjg5Djg6Tjgrcs44Oo44K344OO44OqDQor44Kt44Og44OpLOOCq+ODhOOCsw0KK+ODj+OCvOOCrSzjg47jg5bjg6bjgq0NCivjgqLjg7Pjg44s44Ki44OE44K3DQor44K/44Kr44Oo44K3LOODqOOCt+OCteODiA0KK+OCouODs+OCtuOCpCzjgrfjg6fjgqbjgrjjg63jgqYNCivjgr/jgqvjg4/jgrcs44Kq44K144OgDQor44OP44Op44OOLOODhOODjeOCqg0KK+ODiuOCq+OCrOODryzjgqvjg4Tjg6jjgrcNCivjg4vjgrfjgqvjg68s44Om44Kt44KqDQor44K344OW44OkLOOCq+OCuuODkuODrQ0KK+OCq+ODiOOCpizjg47jg5bjg5Ljg60NCivjgqLjg4Djg4Es44OI44K344OS44OtDQor44K144Kv44Op44KkLOODpOOCueOCv+OCqw0KK+OCr+OCteODjizjg4jjgrfjg5Ljg60NCivjg5/jg4rjg5/jgr7jg44s44Of44OO44OrDQor44OE44K444Og44OpLOOCouOCreODiOOCtw0KK+ODpOODnuODgCzjgqTjgrXjg6ANCivjgqvjg4Tjgrfjg54s44K344Ky44OfDQor44Kz44Ok44OK44KrLOODkuODreODpuOCrQ0KK+OCv+ODkOOCvyzjgqLjgq3jg6kNCivjgqLjg4Djg4Es44Oo44K344OS44OtDQor44OS44Ot44OOLOOCu+OCpOOCpOODgQ0KK+ODhOOCtuOCrSzjg5Ljg63jgqLjgq0NCivjgr/jg4Hjg5Djg4os44K344Ky44Ki44KtDQor44OZ44OD44K344OnLOOCq+OCuuODnw0KK+ODnuODhOOCt+OCvyzjg4Hjg6Xjgqbjgr7jgqYNCivjgr/jg4vjgrDjg4Es44Kx44Oz44K344Ol44KmDQor44OK44Kr44OI44OiLOODoOODhOODnw0KK+ODi+OCt+ODoOODqSzjg5Ljg63jgrcNCivjg5/jgqbjg6ks44Oe44Kz44OIDQor44Kz44Oz44OJLOOCquOCteODoA0KK+ODnuODhOOCpCzjg57jgrXjgq0NCivjg57jg4Tjg6Ljg4gs44OS44Ot44Kr44K6DQor44Ob44Oq44KkLOODkuODreOCtw0KK+ODnuOCueODouODiCzjg4Tjg4jjg6ANCivjg4rjgqvjgrjjg54s44OB44Kr44K3DQor44Kt44Og44OpLOOCseODs+OCpOODgQ0KK+ODn+ODryzjg5Ljg63jg6bjgq0NCivjgqTjgrfjg5Djgrcs44Ok44K544K3DQor44Ko44Kw44OBLOODjuODquODkuOCtQ0KK+OCpOODiuODleOCryzjgrjjg6Xjg7MNCivjg6/jgr/jg4zjgq0s44Ok44K544OS44OtDQor44OS44Kw44OBLOODqOOCt+ODkuOCsw0KK+OCpOOCseODjizjgq3jgq/jgqoNCivjgqbjg6Hjg4/jg6ks44Oe44OK44OWDQor44OO44K244OvLOOCv+ODgOOCtw0KK+OCpOODnuOCpCzjg57jgrXjgq0NCivjgr/jgqvjg4/jgrcs44Kr44OE44K4DQor44Kk44Kk44OALOODj+ODq+ODkuOCtQ0KK+ODleOCuOOCq+ODryzjgqvjgqrjg6sNCivjg4vjgrfjgqgs44K/44OA44OS44KzDQor44Kz44K544KyLOODkuODreOCtw0KK+OCquOCquOCvyzjgrjjg6Xjg7PjgrMNCivjg47jgrgs44Kv44OL44OS44KzDQor44Kz44Oc44OqLOODn+OCreOCqg0KK+OCueOCruODpOODnizjg6jjgrfjgqLjgq0NCivjgqvjg6/jgr8s44OG44OE44OS44KzDQor44K144Oh44K344OeLOODn+ODjeOCqg0KK+OCs+ODpOODnizjgq3jg6jjgr/jgqsNCivjgqjjg7PjgqvjgqQs44K/44Kr44K3DQor44Kz44Oi44OALOODhOODiOODoA0KK+OCquOCrOODryzjgrPjgqbjgqTjg4ENCivjg6Tjg57jg6Djg6ks44Kr44K644Oe44K1DQor44Ko44OO44Oi44OILOODrOOCpOOCuA0KK+OCv+OCq+ODgCzjg5LjgrXjgr/jg4ANCivjg4rjgqvjg5/jgr4s44Om44Of44KzDQor44Kq44Kr44Og44OpLOODkuODreOCtw0KK+OCq+ODn+ODkOODpOOCtyzjgrvjgqTjgrgNCivjg5Xjgrjjg6Ljg6os44Of44Kt44KqDQor44Kv44Ot44OALOOCt+ODs+OCpOODgQ0KK+OCteODiOOCpizjg6jjg6rjgqgNCivjg6jjgrfjg6Djg6ks44K/44Kt44KqDQor44Oi44K/44KkLOOCv+OCr+OCuA0KK+ODoOODqeOCvyzjg4jjgqrjg6sNCivjg5/jg68s44OK44Kq44OIDQor44Kk44OP44OpLOOCqOODnw0KK+OCpOODnuOCpCzjgr/jgqvjgrcNCivjg5Ljg44s44Kr44K644KqDQor44Oe44OE44Oi44OILOOCv+OCq+OCtw0KK+OCu+ODiCzjg6jjgqbjgrgNCivjgq/jg57jgqzjgqQs44Ok44K544OS44OtDQor44Ok44Oe44OALOODqOOCt+OCqg0KK+ODr+OCv+ODiuODmSzjg6bjgqbjgrMNCivjg6TjgrXjgqss44OS44Ot44K3DQor44K144OI44KmLOOCouOCreODkuODrQ0KK+ODn+ODpOOCv+OCsSzjg5Ljg63jg47jg5YNCivjg57jg4Tjgqbjg6ks44OS44OI44K3DQor44Oe44OE44K344K/LOODnuOCs+ODiA0KK+OCpuODqeODmSzjgqTjgrXjg6ANCivjgrfjgqzjgq0s44Oe44K144Oo44K3DQor44OG44Op44OALOODqOOCt+ODkuODiA0KK+OCpOODr+ODouODiCzjg6jjgrfjgqLjgq0NCivjgqTjg47jgqbjgqgs44K444Ot44KmDQor44Oi44OB44K644KtLOODpuOCreOCqg0KK+ODqOOCt+OCuuODnyzjgqjjgqTjgqTjg4ENCivjg5/jgqbjg6ks44Of44OE44OrDQor44Of44K644OOLOOCv+OCq+ODpuOCrQ0KK+ODqOOCt+OCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg5Xjg6vjgqQs44Oo44K344OS44OtDQor44OP44Ok44K3LOOCt+OCsuOCouOCrQ0KK+OCt+ODqeOCpOOCtyzjg5Ljg4fjgqoNCivjgrnjgqzjg6/jg6ks44K/44OE44KqDQor44OK44Kr44KkLOOCseOCpOOCpOODgQ0KK+ODjuODleOCuCzjg6jjgrfjg4/jg6sNCivjgrXjg4jjgqYs44OS44Ot44Kr44K6DQor44Kv44Ot44OALOOCreOCpOODgQ0KK+OCpOOCseODgCzjgr/jgqvjgrcNCivjgrXjgqws44Kx44Kk44K3DQor44Of44Ok44Kr44OvLOOCpOOCr+ODkuOCtQ0KK+ODr+ODqeOCt+ODiizjgrfjgrLjg6sNCivjgq3jgr/jgqzjg68s44OO44OW44Om44KtDQor44Kk44Oe44KkLOODleODn+OCouOCrQ0KK+ODn+OCteOCrSzjg5Ljg63jg47jg5YNCivjgqTjgrfjg4As44K/44Kx44K3DQor44Oq44Kv44OpLOODkuODh+OCouOCrQ0KK+OCt+ODp+OCpuOCuCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5Xjgq/jg4rjgqws44Oo44K344Kr44K6DQor44Kv44Ot44KtLOOCv+OCq+OCqg0KK+ODnuOCv+OCrSzjgrfjg6fjgqbjgrbjg7MNCivjgrvjgq3jg40s44Oe44K144OP44OrDQor44Ok44Oe44K344K/LOODn+ODhOODkuODrQ0KK+OCv+ODiuOCqyzjg6jjgrfjgqLjgq0NCivjgqrjgqrjg4/jg54s44Oe44K144OS44OtDQor44Kq44Kq44OE44OcLOODqOOCt+OCouOCrQ0KK+OCv+OCpCzjg5LjgrXjg4/jg6sNCivjg4Tjg6vjg6Qs44Oe44K144OO44OqDQor44Oo44K344OALOODqOOCpuOCpOODgQ0KK+ODnuOCueODn+ODhCzjgr/jgqvjgrcNCivjgqvjgrnjg6Qs44K344Ky44KqDQor44Oo44K344OALOODn+ODjuODqw0KK+OCq+ODr+ODoOODqSzjg5Ljg4fjgq0NCivjg4/jg6Tjgrcs44Kv44OL44OS44KzDQor44Kv44OL44Oi44OILOODnuOCteODpuOCrQ0KK+OCouODqeOCq+ODryzjg5Ljg4rjgrMNCivjg4rjgqvjg6Djg6ks44Oe44K144OO44OqDQor44Kk44K344Kw44OtLOOCu+OCpOOCuA0KK+ODj+ODpOODnyzjgqvjg4Tjg5LjgrMNCivjg5/jg4rjg5/jgr7jg44s44Kt44Oz44K4DQor44K144Kr44K/LOODn+ODjuODqw0KK+OCq+ODr+ODouODiCzjg5Xjg5/jgqvjgroNCivjg6Djg6njgqrjgqss44Ok44K544OO44OqDQor44Kk44OI44KmLOODqOOCt+OCqg0KK+ODr+OCv+ODiuODmSzjg5/jg4HjgqoNCivjg47jg6Djg6ks44Oe44K144Kr44K6DQor44K144OI44KmLOODj+ODq+ODig0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44Oe44K144Kr44OEDQor44OM44Or44KtLOODkuODh+ODkuOCsw0KK+ODqOOCt+ODgCzjg6jjgqbjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OS44Ot44K3DQor44OS44Op44KkLOODqOOCt+ODpuOCrQ0KK+OCreODoOODqSzjgr/jgqvjgrcNCivjgqrjgq8s44Ot44KmDQor44OP44Ok44K144KrLOODpOOCueOCsw0KK+OCouOCteODjizjgrHjg7PjgrgNCivjg5XjgrjjgrXjgq0s44K344Oz44OkDQor44Ki44Kt44Oi44OILOODquOCqw0KK+OCt+ODnuODgCzjg57jgrXjgqgNCivjg5/jgrrjgqvjg58s44Oe44K144OP44OrDQor44OK44Kr44Ks44OvLOODiOOCquODqw0KK+OCteODiOOCpizjg4bjg4Tjg6QNCivjgrPjg5Djgrfjg6os44Kx44Oz44K4DQor44Ki44Op44KtLOODqOOCt+OCqg0KK+OCueOCuuOCrSzjg4rjgqrjg4jjgrcNCivjg4vjgrfjg4cs44K744OEDQor44Kq44OB44Ki44KkLOODqOOCt+ODkuOCtQ0KK+ODjuODiuOCqyzjgr/jgqvjgrcNCivjg6TjgrnjgqQs44Oq44Ol44Km44K4DQor44Kz44OP44K/LOOCseODs+OCpOODgQ0KK+ODn+ODjuOCt+ODnizjgqLjg4TjgqoNCivjg4bjg6njgrfjg54s44Kt44Of44OS44KzDQor44Ok44Kv44OvLOODqOOCt+OCqg0KK+OCueOCrOODr+ODqSzjg5/jg4HjgqoNCivjg5/jg4Tjg4/jgrcs44OG44OE44Ot44KmDQor44OO44Og44OpLOODjuODquOCsw0KK+ODgeODp+OCpizjgqLjgrrjg58NCivjgrXjg4jjgqYs44Oq44On44Km44KzDQor44K344K644OP44OpLOODrOOCpOOCsw0KK+ODj+ODpOOCt+OCq+ODryzjgrHjg7PjgrgNCivjg4vjg68s44Oo44K344KqDQor44Of44Ko44OOLOOCseODs+OCpOODgQ0KK+OCt+ODnuODgCzjg5Ljg4fjg4gNCivjg4rjgqvjg6Djg6ks44OI44K344KqDQor44OS44Op44OOLOODquODp+OCpuOCpOODgQ0KK+ODpOODnuODiOODpCzjgqvjgrrjg5LjgrMNCivjg4Tjg47jg4As44Ok44K544OO44OqDQor44Kz44OQ44Ok44K3LOODjuODluOCouOCrQ0KK+OCteOCq+OCr+ODqSzjgq3jg6fjgqbjgrMNCivjg57jg4Tjg4As44Oe44K144Ki44KtDQor44Kk44Oe44Og44OpLOOCu+OCpOOCtw0KK+ODpOOCruODj+OCtyzjg4rjgqrjgrMNCivjgqrjgq7jg44s44OS44Ot44KqDQor44K/44OK44KrLOODqOOCt+ODnuOCtQ0KK+ODkuOCrCzjg6jjgrfjgqvjgroNCivjgrXjgrMs44OE44OI44OgDQor44K/44K244KtLOOCv+ODouODhA0KK+OCpOOCpOODgCzjg57jgrXjg4/jg6sNCivjgqTjgqTjg4As44Oq44On44Km44K544KxDQor44Oe44OE44Kw44OeLOOCt+OCsuODmw0KK+ODoOODqeOCvyzjgrHjg7MNCivjg6Tjgrnjg6Ljg4gs44Oe44Kz44OIDQor44K344Of44K6LOODkuODreOCtw0KK+ODr+OCr+OCpCzjg6jjgrfjgr/jgqsNCivjgr/jgqvjg4/jgrcs44Oo44K344KqDQor44Kt44K/44KkLOODiOOCt+ODkuOCsw0KK+OCouODgOODgSzjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjg4/jg4rjg5bjg4Es44OP44K444OhDQor44K144OI44KmLOOCr+ODi+ODkuODrQ0KK+OCouODqeOCpCzjg4jjgrfjg5LjgrMNCivjgr/jgrHjg4rjgqss44K144OI44K3DQor44Kr44KkLOODn+ODm+OCsw0KK+OCouOCq+ODgCzjgrfjgrrjgqoNCivjgq/jg4vjgrnjgqgs44OS44Ot44Ki44KtDQor44Oe44Ko44Kr44OvLOOCouOCreODqQ0KK+ODn+ODiuODnyzjg5/jg4TjgrcNCivjgr/jgq3jgqzjg58s44OS44OH44Om44KtDQor44Oe44OE44KkLOODnuOCs+ODiA0KK+OCt+ODqeOCpCzjg57jgrXjg5/jg4ENCivjgr/jgrHjg6jjgrcs44K744Kk44OO44K544KxDQor44K/44Kr44OALOOCreODqOOCv+OCqw0KK+OCv+OCq+OCrizjgr/jgqvjg5LjgrMNCivjgq/jg4njgqYs44Kt44Oo44K/44KrDQor44K344Oe44OALOODjuODluOCsw0KK+OCq+ODiOOCpizjgqvjgrrjgqoNCivjgrfjgq7jg6fjgqYs44OS44OH44Ki44KtDQor44OS44Ot44OOLOOCveOCquOCuOODow0KK+OCreODjuOCt+OCvyzjg6jjgrfjgqgNCivjgrfjg5/jgros44K344On44Km44K+44KmDQor44K344Og44OpLOODkuODreOCouOCrQ0KK+OCr+OCteOCq+ODqizjg5/jg5sNCivjgqvjg6vjg5ks44OI44K344OP44OrDQor44Oe44OE44Oi44OILOODiuOCquODpuOCrQ0KK+OCt+ODnuODoOODqSzjg4jjg57jgrUNCivjgqvjg4Tjgqvjg68s44K/44Kr44KqDQor44Kk44K6LOOCpOOCteOCqg0KK+OCteOCr+ODqeODouODiCzjgqTjg4TjgrgNCivjg6Ljg6rjgr8s44K444Ot44KmDQor44K/44OK44OZLOOCr+ODi+OCpOODgQ0KK+ODj+ODg+ODiOODqizjg5Xjg5/jg4gNCivjg6rjg6XjgqbjgrQs44K344Ol44Oz44Kk44OBDQor44Kq44Oe44OE44K244OvLOODnuOCteODj+ODqw0KK+OCquODiOODryzjg6bjgq3jg6jjgrcNCivjgrPjg4Djg54s44K744Kk44Kk44OBDQor44Kr44Ok44K344OeLOODpuOCpuOCuA0KK+OCs+ODkOODpOOCtyzjgrfjgrLjg6sNCivjgq/jg4vjgqjjg4As44Oe44Kt44KqDQor44Kz44KmLOOCq+OCuuODiuODqg0KK+ODi+OCt+ODpOODnizjg5Ljg4jjg58NCivjg6/jg4As44OS44Ot44OkDQor44OL44K344Oi44OILOOCv+OCq+OCtw0KK+OCteOCpOODiOOCpizjgqvjg4Tjg47jg6oNCivjg4jjgrfjg54s44Oo44Km44Kk44OBDQor44Kq44Kq44OE44KrLOODm+OCs+OCrw0KK+OCquODjizjg57jgrXjg6sNCivjgrnjgrrjgq0s44K/44Kr44K3DQor44K144Kv44Op44KkLOOCv+OCq+OCtw0KK+OCquOCvOOCrSzjgr/jgqvjgrcNCivjgqrjgqvjg4As44Oe44K144Of44OEDQor44Kq44Ks44OvLOODkuODreOCtw0KK+OCpOOCseOCrOODnyzjg5Ljg4fjg4jjgrcNCivjgrPjg57jg4Qs44K/44Kr44OO44OqDQor44Oo44K344KkLOODqOOCt+OCouOCrQ0KK+ODkuODqeODjizjgrfjg6fjgqbjgqTjg4ENCivjgr/jgqvjgrnjgqss44OS44Ot44K3DQor44OP44K344Oi44OILOODpOOCueODpuOCrQ0KK+OCr+ODr+OCqCzjgq3jgq/jgqoNCivjgqvjg43jg57jg4Qs44Kr44ON44OS44OHDQor44Oe44OE44KqLOOCseOCpOOCpOODgQ0KK+OCpOODiSzjgr/jgqvjg5LjgrMNCivjgqTjg44s44K444Ol44Oz44Kk44OBDQor44K144Kk44OI44KmLOOCv+OCseOCtw0KK+OCq+ODn+ODpOODnizjgrPjgqbjgrgNCivjgrPjgrfjg6Ljg4gs44Kz44Km44Kk44OBDQor44Kq44Kq44Ks44Ov44OpLOODqOOCt+ODjuODlg0KK+OCv+OCq+ODj+OCtyzjg57jgrPjg4gNCivjg4rjgqzjg57jg4Qs44K344Oz44Kk44OBDQor44K544K644KtLOOCtOODreOCpg0KK+ODhuODqeOCqizjg6jjgqbjgrgNCivjg5vjg6rjgrEs44Kr44Kq44OrDQor44K544K644KtLOOCv+OCq+OCtw0KK+OCquOCrOODryzjgrPjgqbjgqTjg4ENCivjg5/jg6Tjg6Ljg4gs44OO44OW44KqDQor44Kq44Kq44K544OfLOODkuODreODpuOCrQ0KK+OCpOODr+ODluODgSzjg47jg5bjg6TjgrkNCivjg57jg4Tjgqbjg6ks44K/44OE44KqDQor44K144Ov44OBLOODgeOCq+OCqg0KK+ODhuODqeODgCzjgrvjg4TjgrMNCivjgqTjg5Djg6Tjgrcs44Om44K/44KrDQor44Kk44Ov44K7LOOCuOODpeODs+OCpOODgeODrQ0KK+OCquOCrOODryzjgrvjgqTjgrgNCivjgqLjgr0s44Ok44K544OI44OiDQor44OV44Kv44Oi44OILOOCteODpuODqg0KK+OCpOODhyzjg5Xjg5/jgr/jgqsNCivjgqvjg6/jgrXjgq0s44OG44OE44K4DQor44OP44Or44OKLOODnuOCteODjuODqg0KK+OCv+OCuOODnizjg6bjgq3jg5Xjg58NCivjgqvjg4rjg6Tjg54s44Oo44Km44K4DQor44K/44OK44KrLOODr+OCv+ODqw0KK+ODnuODhOOCtuOCrSzjg57jgrXjgqoNCivjgqTjg47jgrXjgqss44Kz44Km44K4DQor44Kq44K344Ok44OeLOODqOOCt+ODkuOCtQ0KK+OCv+OCseOCpuODgSzjgr/jgqvjgrcNCivjgrXjgrXjgqrjgqss44OI44K344Om44KtDQor44Kz44Oi44OqLOODnuOCteOCouOCrQ0KK+OCv+OCuOODnizjg5Ljg63jgqLjgq0NCivjgqTjgrHjgqzjg58s44Kx44Oz44K4DQor44Ok44Oe44Kw44OBLOODnuOCteOCouOCrQ0KK+OCq+ODr+OCq+ODnyzjgrfjgrLjgq0NCivjgqTjgrvjgq0s44Ko44Kk44K544KxDQor44K/44Kx44OALOODkuODh+ODpuOCrQ0KK+OCv+OCq+ODpOOCuSzjg57jg4rjg5YNCivjgqvjg6Hjg4As44K/44Kx44OI44K3DQor44OV44K444OOLOODnuOCs+ODiA0KK+ODn+OCteOCrSzjg6Tjgrnjg47jg6oNCivjg4rjgqvjg6Djg6ks44OI44K344Ki44KtDQor44Kq44Ks44OvLOOCs+OCpuOCuA0KK+ODiuOCq+OCtuODryzjg5Ljg4fjg4jjgrcNCivjgrvjgq0s44Ok44K544Kv44OLDQor44Oo44K344Kr44OvLOOCv+OCr+ODpA0KK+OCv+OCrOODryzjgr/jgqvjgrcNCivjg5/jgr/jg4ss44OI44K344OS44KzDQor44K544Ko44K/LOOCouOCreODkuODiA0KK+OCpOODjOOCpCzjgrHjg7MNCivjgqrjgrXjg4As44K144OI44K3DQor44OV44Or44Kr44OvLOOCq+ODhOOCqg0KK+OCueOCuuOCrSzjg57jgrPjg4gNCivjgq3jgr/jg6Djg6ks44Oq44On44Km44K544KxDQor44Kz44Oe44OELOODkuODreOCv+OCqw0KK+OCouOCteODgCzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqvjg7Pjgrbjgq0s44Ok44K544Oe44K1DQor44Km44K544KkLOODqOOCt+ODleODnw0KK+ODleODq+ODpCzjg4jjgrfjg5LjgrMNCivjg6jjgrHjg6Djg6ks44OV44Of44Oo44K3DQor44Oo44Kz44KoLOODqOOCt+OCrQ0KK+OCouOCq+OCpOODryzjg4jjgrfjg5LjgrMNCivjg5Xjgq/jgrfjg54s44OS44Ot44Ok44K5DQor44Ok44K444OeLOODpOOCueOCtw0KK+ODj+ODqSzjg5/jg6bjgq0NCivjgq3jgrfjg4As44Om44Km44K+44KmDQor44Kv44OcLOODn+ODhOODqw0KK+OCq+OCv+OCruODqizjg6Tjgrnjg47jg6oNCivjgqTjg4HjgqQs44OV44Of44OkDQor44Oe44OE44KtLOODiOOCt+OCouOCrQ0KK+ODr+OCseODmSzjgrHjg7PjgrgNCivjg57jg6vjg6Tjg54s44OS44OH44KqDQor44OE44OQ44KtLOOCt+OCsuODqw0KK+OCteODjizjg5Ljg63jgrcNCivjg5/jg6Tjg6Ljg4gs44Oe44K144OI44K3DQor44OV44Kv44Ok44OeLOODnuOCteOCouOCrQ0KK+OCpuOCqOODoOODqSzjg57jgrXjg6sNCivjgq/jg6/jgqvjg4ks44Oq44KtDQor44Kv44OL44Oe44OELOODnuOCteODqw0KK+OCq+OCv+OCquOCqyzjg47jg6rjg6bjgq0NCivjg4jjg5/jgr8s44Kr44K644OO44OqDQor44OK44Kr44Og44OpLOOCouODhOODkuOCsw0KK+OCr+ODieOCpizjg6jjgrfjg4bjg6sNCivjgqrjg5bjg4Es44OG44Or44OS44KzDQor44Oo44K344Kr44OvLOODiOOCquODqw0KK+OCq+OCsuODpOODnizjg57jgrPjg4gNCivjg4jjg4As44Kx44Kk44Kk44OBDQor44K/44Kr44OP44OpLOOCteODiOOCtw0KK+ODnuODhOOCt+OCvyzjgrfjg7PjgrgNCivjgrPjg4DjgqTjg6ks44OS44OH44K3DQor44K344Oz44Kr44KkLOODouODiOOCqg0KK+ODhuODqeODgCzjg57jgrXjg5Ljg4gNCivjgqvjg6/jgq3jgr8s44OP44K444OhDQor44Of44Km44OpLOOCteODiuOCqA0KK+OCouODmSzjg5Ljg4jjgrcNCivjg4vjgrfjgqvjg68s44Om44Kt44OS44OtDQor44Ob44K944OALOOCpOODr+OCqg0KK+ODnuOCueODgCzjg6jjgrfjgqoNCivjgqvjgrbjg54s44K/44Kx44K3DQor44Ki44Op44Oe44KtLOOCq+OCuuOCqg0KK+ODr+OCv+ODjOOCrSzjg5/jg4Tjgq4NCivjgrXjgqvjg6Ljg4gs44OE44Oo44K3DQor44Ki44Oe44Ks44OfLOOCt+ODsw0KK+OCs+ODs+ODjizjgqTjgrXjgqoNCivjgqrjgq/jg4As44Oo44K344OO44OqDQor44Kq44OP44KvLOODn+ODhOOCqg0KK+ODiuOCq+ODoOODqSzjg6jjgrfjg5Xjg58NCivjg4rjgqvjg6Djg6ks44Om44Km44Kk44OBDQor44Km44K344Ok44OeLOODpuOCreOCqg0KK+ODpOOCt+OCrSzjgqLjgqTjgqTjg4Hjg63jgqYNCivjgq3jg47jgrss44K344Ol44Oz44Kk44OBDQor44Ov44Kr44Ok44OeLOOCs+OCpuOCpOODgQ0KK+OCpOODnuOCpCzjg57jgrXjg6bjgq0NCivjg57jgqjjg4As44Kt44Oo44K3DQor44Oe44OE44K344K/LOOCqOOCpOOCuA0KK+ODkuODqeOCsOODgSzjg5Ljg63jgrcNCivjg6/jg4As44Ki44OE44KzDQor44Ov44K/44OK44OZLOOCveOCpuOCpOODgQ0KK+ODnuODhOOCpCzjgrfjg7PjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Of44Kt44KqDQor44OK44Kr44Og44OpLOOCuOODpeODs+OCpOODgeODrQ0KK+OCv+OCreOCvyzjg6jjgrfjg4gNCivjg57jgrnjg4As44OI44Oi44KzDQor44Of44Ok44Km44OBLOODnuODpuODnw0KK+OCt+ODoOODqSzjgrXjgqvjgqgNCivjg57jg4TjgqQs44K/44Kt44KzDQor44OP44Op44OP44K/LOODiOODn+OCv+ODreOCpg0KK+ODkuOCteOCv+ODiyzjgqLjg4TjgrcNCivjgqvjgqzjg58s44Oe44K144OE44KwDQor44Oo44K344Og44OpLOODpuOCpuOCuA0KK+OCquOCquODhOOCqyzjgrHjgqTjgrQNCivjgr/jg4rjgqss44K344Oz44Kk44OBDQor44OS44Op44OOLOOCt+ODpeOCpg0KK+OCv+OCseOCueOCqCzjg4bjg4Tjg6QNCivjg4vjgrfjg44s44Oo44K344Om44KtDQor44Kq44Kq44OE44KrLOODoeOCsOODnw0KK+OCquODgCzjgrfjg7PjgrgNCivjgrfjg5/jgros44Om44K/44KrDQor44OP44Oe44Oi44OILOOCv+OCq+ODqOOCtw0KK+ODn+ODpOODnuOCqCzjg57jgrXjg4rjg6oNCivjg4rjgqzjgrfjg54s44Ko44Kk44K4DQor44Of44OE44OhLOOCs+OCpuOCuA0KK+OCq+OCtOOCv+ODiyzjg6jjgrfjgqvjgroNCivjg6jjgrPjg6Tjg54s44K/44Kr44OV44OfDQor44K144Kr44K/LOOCseODs+OCuA0KK+OCquOCpOOCr+ODnCzjgqLjgq3jg5Ljg4cNCivjgq/jg6njg6Ljg4Es44OS44Ot44OkDQor44Ki44Oz44K244KkLOODnuOCteODpuOCrQ0KK+ODleOCr+OCt+ODnizjg6rjgqgNCivjg4rjgqvjg6Djg6ks44OS44OI44OfDQor44Kk44OI44KkLOODpuODquOCsw0KK+ODm+OCt+ODjizjg5/jg4HjgrMNCivjgrPjgqTjg4cs44OS44Ot44OS44KzDQor44Kq44K244KtLOOCuOODpeODsw0KK+OCu+OCuOODoizjg57jgrXjg5/jg4ENCivjgrnjg4njgqYs44Oe44K144Of44OEDQor44Kr44K444Ov44OpLOODn+ODieODqg0KK+OCueOCuuOCrSzjgqvjg4Tjg5Ljg60NCivjg5vjgrfjg44s44OP44Or44KzDQor44OK44Kr44Og44OpLOODqOOCt+OCouOCrQ0KK+ODouODquOCvyzjgqLjgq3jgqvjgroNCivjg6Tjg57jgrbjgq0s44OI44K344OS44KzDQor44Kq44Kv44Ks44OvLOODnuOCteODkuOCsw0KK+ODiuOCrOODj+ODnizjg5Ljg63jg6bjgq0NCivjg6jjgrfjg6Djg6ks44Ki44Kt44Of44OEDQor44Oe44OE44OALOOCv+OCq+ODiOOCtw0KK+ODm+OCq+OCvuODjizjgqLjg4Tjg5LjgrUNCivjgqLjg5ks44OI44K344OE44KwDQor44OK44Ks44KkLOOCs+OCpuOCuA0KK+ODiOOCrOOCtyzjg4jjgrfjg5Ljg4gNCivjg6Tjgrbjgq0s44OG44Kk44K+44KmDQor44Ok44Oe44Km44OBLOODkuODh+OCrQ0KK+ODn+OCteOCrSzjg4rjgqrjgq0NCivjg6jjgrfjg4As44K344Oz44K4DQor44OK44Kr44Oi44OILOOCt+OCsuODqw0KK+OCt+ODjuODj+ODqSzjg4Tjg43jgqvjgroNCivjg4rjgqvjg4vjgrcs44Ki44Kt44OpDQor44Ok44K444OeLOOCreODqOOCtw0KK+ODiOODqOODleOCryzjg6bjgqbjgrgNCivjgr/jgqvjgrfjg54s44Kr44OE44K4DQor44OV44K344OL44K3LOOCreODn+OCqA0KK+ODoOOCq+OCpCzjg4bjg4Tjg6QNCivjg4vjgrfjg6Djg6ks44OS44Ot44Om44K3DQor44Kr44Ov44OQ44K/LOOCteODiOOCtw0KK+ODoOOCq+OCqOODgCzjgrXjg4jjg6sNCivjgrfjgrvjgq0s44Kk44OD44K344OzDQor44Kr44K/44Kq44KrLOODqOOCt+ODkuODhw0KK+ODiuOCpOODiOOCpizjg5Ljg63jgq0NCivjg5/jg4gs44Ok44K544OIDQor44Kq44Kq44OL44K3LOODiOOCt+ODreOCpg0KK+ODqOOCs+ODpOODnizjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44K/44OE44Ki44KtDQor44Kk44K244OvLOODkuOCteODjuODqg0KK+OCv+ODi+OCrOODryzjg4jjg5/jgqgNCivjgrnjgq7jgr8s44Om44KrDQor44Kq44K344K/LOODnuOCteODpuOCrQ0KK+OCt+ODnuODgCzjg4jjg6LjgrMNCivjg6Tjg57jg6Djg6ks44Kz44Km44Kk44OBDQor44OV44Kv44Kq44KrLOODnuOCteOCtw0KK+ODpOODiuODqizjg5Ljg63jgqLjgq0NCivjgrnjgrrjgq0s44K344Oz44K4DQor44K144Kr44KkLOOCteODiOODqw0KK+ODpOODnuODgCzjg6bjgq3jg5Ljg60NCivjg6Tjg57jgrPjgrcs44K344Ky44OrDQor44OO44Oi44OILOODiOOCt+ODpuOCrQ0KK+OCv+OCseOCt+OCvyzjg6Ljg4jjgq0NCivjg5/jg47jg4As44K344Ky44Om44KtDQor44Ki44K144KkLOOCt+ODmw0KK+ODoOODjeODpOOCuSzjg5Ljg4fjg6bjgq0NCivjgqvjg6/jg4vjgrcs44Oe44Kz44OIDQor44K144Kr44Kw44OBLOODpOOCueODkuOCtQ0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg5LjgrMNCivjgqLjgrXjgqrjgqss44OS44OH44OO44OWDQor44Kt44OO44K344K/LOODn+OCreOCvuOCpg0KK+ODn+ODnizjgq3jg6jjg58NCivjg5Xjgq/jg6Ljg6rjgr8s44K344Ky44KqDQor44Kr44K444Ok44OeLOODqOOCt+OCsw0KK+ODpOODnuOCtuOCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgrXjg4jjgqYs44OI44K344OkDQor44Kr44Ov44OZLOODn+ODhOODkuOCsw0KK+ODnuODq+ODpOODnizjg47jg5bjg6jjgrcNCivjgqrjgqzjg6njg40s44OO44OW44KzDQor44OJ44KkLOODpuOCpuOCvuOCpg0KK+OCv+ODiuOCqyzjg5/jg4TjgqoNCivjgqrjgq7jgrfjg54s44Kq44K144OgDQor44Kk44OO44Km44KoLOODkuODreODpuOCrQ0KK+ODleODq+ODpCzjg5Ljg63jg47jg6oNCivjg5Xjgq/jgqQs44OE44Oo44K3DQor44Oe44K544OALOOCv+OCq+ODkuODrQ0KK+ODm+ODs+ODgCzjg6bjg5/jgrMNCivjg4rjgqvjg4vjgrcs44OK44Kq44K/44KrDQor44Of44Ok44Oe44KoLOODiuOCquODkuOCsw0KK+OCquOCq+ODjizjg5Ljg4fjgqoNCivjg5Djg5As44Oo44Km44Kk44OB44Ot44KmDQor44OA44Kx44Ok44OeLOOCteOCr+OCsw0KK+ODpOODnuOCsOODgSzjg6TjgrnjgqoNCivjg4/jg6Tjgrcs44OI44K344Ot44KmDQor44OI44Of44K644KrLOODpOOCueODkuODrQ0KK+ODiuOCq+ODi+OCtyzjg4/jg6vjg5LjgrUNCivjgqLjg5ks44OP44K444OhDQor44Ki44Kq44Ok44KuLOODkuODreOCsw0KK+ODhuODqeODr+OCrSzjgq3jg6jjgrMNCivjgqvjgr/jgq7jg6os44OO44Oc44OrDQor44OK44Kr44Ks44OvLOODnuOCteOCqg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5Ljg60NCivjgqbjgqjjg4As44OS44Ot44OfDQor44OV44K444Ov44OpLOOCouOCreODkuODrQ0KK+ODj+ODpOOCteOCqyzjgr/jg4Tjg58NCivjgq3jg6Djg6ks44OS44Ot44K3DQor44K044OI44KmLOODnuOCteODkuODrQ0KK+OCt+ODoOODqSzjgrHjgqTjgr7jgqYNCivjgrvjgq0s44OI44K344Kr44K6DQor44Ki44Kk44K244OvLOOCouOCreOCqg0KK+ODjuODoOODqSzjgrPjgrnjgrENCivjgqvjg7Pjg4As44K344Ol44Km44K4DQor44Km44Op44KkLOODnuOCueODnw0KK+ODouODiOODpOODnizjg6jjgrfjg4/jg6sNCivjgqvjg5/jg6Djg6ks44OG44OE44KqDQor44OS44Op44KkLOODnuOCteODpuOCrQ0KK+OCouODqeOCpCzjg4jjg6Ljg4rjg6oNCivjgrXjgqTjg4jjgqYs44Oo44Km44Kk44OBDQor44Oe44Kt44OP44OpLOODnuOCteOCtw0KK+OCquOCquODr+OCryzjgqrjgrXjg6ANCivjg6Ljg4Hjgrrjgq0s44Oe44K144OS44OtDQor44OP44Oz44Ks44KkLOODqOOCt+ODkuODrQ0KK+OCpOODjuOCpuOCqCzjgqvjgrrjg5Ljg4gNCivjg4rjgqzjgqTjgrcs44Kr44OE44OfDQor44OL44K344Oi44OILOOCouOCreODqQ0KK+ODhOODgeODpCzjgrfjg6fjgqbjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44K/44Kr44K3DQor44Ob44OzLOOCt+ODp+OCpuOCtA0KK+OCpOODr+OCpCzjgr/jg4Tjg6QNCivjgq/jg5ws44Oe44K144KqDQor44OP44Kz44KkLOODnuOCteOCqg0KK+ODr+OCv+ODiuODmSzjg47jg6rjgqoNCivjgrnjgq7jgr8s44OI44K344Of44OEDQor44OK44Kr44Og44OpLOOCq+OCuuODkuODrQ0KK+OCq+ODqeOCteOCrSzjgrPjgqbjgqTjg4ENCivjg47jg6rjg57jg4Qs44Of44OE44OS44KzDQor44Kv44K544Oi44OILOOCv+OCq+ODqOOCtw0KK+ODi+OCt+ODoOODqSzjgrXjg4jjgrcNCivjgrPjgrnjgrIs44Oe44K144OKDQor44OV44Kv44Of44OELOODpOOCueODnw0KK+ODpOODnuOCsOODgSzjgrXjg5bjg63jgqYNCivjgqTjgrfjgrDjg60s44Kr44K644OfDQor44OI44Kv44OALOODiuOCquODpA0KK+OCouODquODiOODnyzjgrjjg4Tjg63jgqYNCivjg5Ljg6Tjg54s44K344Oz44Kk44OBDQor44OS44Ot44K7LOODnuOCteODiOOCtw0KK+ODi+OCt+ODgCzjg4jjgqrjg6sNCivjg4/jg4Pjg4jjg6os44Oo44K344OfDQor44OS44Op44OQ44Ok44K3LOOCseODs+OCpOODgQ0KK+ODj+ODqeOCt+ODnizjgqjjgqTjgrgNCivjg4/jg6ks44K/44Of44KqDQor44OP44Oe44OOLOOCq+OCuuODpuOCrQ0KK+ODj+ODnuODgCzjg57jgrXjg4jjgrcNCivjg4/jgrfjg6Ljg4gs44Kr44OE44OS44KzDQor44OP44Ok44K3LOODkuOCteOCuA0KK+ODkuOCsOODgSzjg57jgrXjg58NCivjg5Ljg6njg44s44Om44K/44KrDQor44Ob44Oz44OeLOODnuOCteODj+ODqw0KK+ODj+ODq+ODnuOCtyzjg6jjgrfjg57jgrUNCivjg4/jgrfjg6Ljg4gs44Ok44K544KqDQor44OS44OALOOCv+OCq+OCtw0KK+ODkuODqeOCueOCqyzjg4Hjg6fjgqbjgrgNCivjg4/jgq7jg6/jg6ks44Kz44Km44Kk44OBDQor44OP44Oe44OALOOCreODn+OCqA0KK+ODj+OCt+ODouODiCzjg5/jg4Hjg4/jg6sNCivjg5vjg7Pjg54s44Of44Oo44K3DQor44Ob44Kr44OqLOODpOOCueODkuODrQ0KK+ODj+ODqeODgCzjg5/jg4HjgrMNCivjg4/jg6Tjgrcs44Kx44Oz44K4DQor44Ob44Oq44OZLOOCq+OCuuOCqg0KK+ODj+OCt+ODouODiCzjg57jgrXjgqoNCivjg4/jgrvjgqzjg68s44K/44OA44Kr44K6DQor44OS44Ot44OZLOODn+OCreOCqg0KK+ODj+OCt+ODouODiCzjgqvjgrrjg58NCivjg5Ljg6njg44s44Oe44K144Om44KtDQor44OP44K344Oi44OILOOCseODsw0KK+ODkuOCuOOCq+OCvyzjg4Tjgq7jgqgNCivjgqrjgqrjg4zjg54s44Kk44K144KqDQor44OP44OW44OELOODkuODreODpuOCrQ0KK+ODkuODgOOCqyzjgqvjgrrjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44Kt44Oz44OkDQor44OP44Oe44OOLOODiuOCquOCrQ0KK+ODkuOCt+ODjOODnizjg47jg5bjg6bjgq0NCivjg4/jg6ks44Oo44K344OfDQor44OP44OK44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+ODj+ODqSzjgrHjg7PjgrgNCivjg4/jgqws44K/44Kx44KqDQor44OP44OK44OALOODnuOCteODjuODqg0KK+ODkuODqeODpOODiuOCrizjg47jg5bjgr/jgqsNCivjg5vjg6rjgqvjg68s44Of44OE44OO44OqDQor44Ob44Oq44Kr44OvLOOCseODsw0KK+ODj+OCt+ODouODiCzjgqLjgq3jgrMNCivjg4/jgr8s44OI44K344OS44KzDQor44OS44Op44KkLOOCuOODpeODsw0KK+ODj+ODqeOCsOODgSzjg6Tjgrnjg57jgrUNCivjg5Ljg6njgqos44Om44Km44Kk44OBDQor44OP44K344K644OhLOOCq+ODs+OCvw0KK+ODhOOCuCzjg57jg4rjg5YNCivjgrXjgq/jg6njgrbjg68s44OS44OH44OI44K3DQor44Ki44OZLOOCs+OCpuOCpOODgQ0KK+OCouODmSzjg57jgrXjg5Ljg60NCivjgqLjg5ks44OS44Ot44K/DQor44Ki44OZLOOCs+OCpuOCuA0KK+OCouODmSzjgqrjgrXjg6ANCivjgqLjg5ks44K/44Kr44KqDQor44Ki44Kr44KuLOODpOOCueODkuODiA0KK+OCquOCq+ODouODiCzjgrfjgrrjgqoNCivjgqjjg7Pjg4ks44Of44OB44KzDQor44Ki44Kr44Kk44K3LOODhOODjeODj+ODqw0KK+ODi+OCt+ODiizjg57jgrPjg4gNCivjgqLjgq3jg6Ljg4gs44OI44K344KqDQor44Ki44Kt44K644KtLOODnuOCteODiOOCtw0KK+ODkuODqeODkOODpOOCtyzjgrfjgrLjg57jgrUNCivjgqLjg6Hjg5/jg6Qs44Ki44Kt44OpDQor44Ki44Of44OOLOOCouOCreODkuODrQ0KK+OCouODiuODnyzjg57jgrXjgqvjgroNCivjgqLjg4rjgrbjg68s44Kr44Kq44OrDQor44Ki44Oz44OJ44KmLOODpuOCpuOCvuOCpg0KK+OCouODs+ODieOCpizjg5Ljg63jgq0NCivjgqLjgqrjg6Tjg54s44Oe44K144KtDQor44Ki44Kq44Ok44OeLOOCs+OCpuOCuA0KK+OCouOCquODpOODnizjgrfjg7PjgqTjg4ENCivjgqLjg6njgqQs44Kz44Km44Kk44OBDQor44Ki44Op44KkLOODnuOCteOCtw0KK+OCouODqeOCpCzjg57jgrPjg4gNCivjgqLjg6njgqQs44K/44Oe44KqDQor44Ki44Op44KkLOODnuOCteODpOOCuQ0KK+OCouODqeOCrSzjg5/jg6bjgq0NCivjgrnjgqzjg6/jg6ks44OI44Oi44OfDQor44Ki44K144OSLOOCt+OCsuODqw0KK+OCouOCteOCr+ODqSzjgr/jgqvjgrcNCivjgqLjgrXjg58s44OV44Of44OI44K3DQor44Ki44K144Og44OpLOOCq+ODhOODnw0KK+ODpOODnuOCt+ODiizjgqvjgrrjgqoNCivjgqLjgrXjg6os44Oe44K144KzDQor44Ki44K144K6LOODiOODouOCsw0KK+OCouODhOODnyzjg6jjgrfjg6bjgq0NCivjg5Djg7Ms44OS44Ot44Ok44K5DQor44OZ44OD44K344OnLOOCseOCpOOCpOODgQ0KK+ODgeODkCzjgqLjgrMNCivjg4Hjgqvjgq3jg6gs44OK44Kq44OS44K1DQor44OB44Og44OpLOOCv+ODn+OCqA0KK+ODieODkOOCtyzjgr/jgrHjgqoNCivjgqjjg5Djgrcs44K344On44Km44OY44KkDQor44Ko44OT44OP44OpLOODqOOCt+ODleODnw0KK+OCqOOCrOODnyzjg6bjgq3jgqoNCivjgqjjgrDjg4Es44Om44Kt44K/44KrDQor44Ko44Kw44OBLOOCteODiOOCtw0KK+OCqOOCuOODqizjgrnjgrDjg6sNCivjgqjjg7Pjg4ks44Oe44Om44OfDQor44Ko44Oz44OJLOOCv+ODhOOCqg0KK+OCqOODjuODouODiCzjg6jjgrfjg4TjgrANCivjg5Xjg4Hjg44s44OI44Kq44OrDQor44OV44K444KkLOOCquOCteODoA0KK+ODleOCuOOCpCzjg4bjg4QNCivjgqTjgrfjgqQs44K444Ol44OzDQor44Og44Op44Ok44OeLOODiOOCt+ODkuOCtQ0KK+ODleOCuOOCq+OCvyzjgr/jg4Tjg6QNCivjg5Xjgrjjgqvjg68s44Kr44K644OI44OiDQor44OV44K444Oe44OrLOODkuOCteODiA0KK+ODleOCuOODouODiCzjgq/jg4vjg5Ljg60NCivjg5Xjgrjjg6Ljg4gs44K/44OA44Oo44K3DQor44OV44K444Oi44OILOODiOOCt+OCq+OCug0KK+ODleOCuOODjizjg6Tjgrnjg4jjg6INCivjg5Xjgrjjgqos44OI44K344Ki44KtDQor44OV44K444K144KrLOOCteODiOOCtw0KK+ODleOCuOOCteODryzjg47jg6rjgqoNCivjg5XjgrjjgrXjg68s44K/44Kr44OS44OtDQor44OV44K444K/LOODnuOCteODpuOCrQ0KK+ODleOCuOOCvyzjg57jgrXjg6bjgq0NCivjg5Xjgrjjg6/jg6ks44OI44Kq44OrDQor44OV44K444Ov44OpLOODnuOCteODpuOCrQ0KK+ODleOCuOODr+ODqSzjgrfjg7Pjgrfjg6fjgqYNCivjg5Xjgqvjg4As44OV44Of44OS44OtDQor44OV44Kr44Ks44OvLOOCouODhOODkuODrQ0KK+ODleOCq+ODjizjgrHjgqQNCivjg5Xjgqvjg68s44K744Kk44K4DQor44OV44Kr44OkLOODiOOCt+OCq+OCug0KK+ODleOCq+OCtuODryzjg5Ljg4jjgrcNCivjg5Xjgq/jg4As44Kz44Km44K4DQor44OV44Kv44KkLOODkuODreOCtw0KK+ODleOCr+ODouODiCzjg5Ljg63jgr/jgqsNCivjg5Xjgq/jg6Ljg4gs44OS44Ot44Ki44KtDQor44OV44Kv44Oi44OILOODnuOCteODkuOCsw0KK+ODleOCr+ODouODiCzjgrnjgrnjg6ANCivjg5Xjgq/jgrfjg54s44OS44Ot44Om44KtDQor44OV44Kv44OI44OfLOODquODpeOCpuOCteOCrw0KK+ODleODiuOCrSzjgrfjg7PjgrgNCivjg5Xjg6vjgrXjg68s44K/44Ot44KmDQor44Ki44OT44KzLOODnuOCteODpuOCrQ0KK+ODleOCuyzjg47jg6rjgqoNCivjg5Xjgrvjgqzjg68s44Oo44K344OK44KqDQor44OV44K344OfLOODiuOCquODkuOCtQ0KK+OCruODnizjgqvjgrrjg6jjgrcNCivjgrTjg58s44Oe44Kz44OIDQor44K044OI44KmLOODjuODquOCsw0KK+OCtOODiOOCpizjg4jjg6LjgqLjgq0NCivjgrTjg4jjgqYs44OS44K144OO44OqDQor44Kw44Oz44K4LOODn+ODqA0KK+ODj+OCruODr+ODqSzjg6jjgrfjgrMNCivjg4/jgq7jg6/jg6ks44Kk44OB44Ot44KmDQor44OP44Kk44OOLOODkuOCteODqOOCtw0KK+ODj+OCq+ODnuODgCzjg47jg6rjg6bjgq0NCivjg4/jg57jg4As44Om44KtDQor44OP44Oe44OALOODpuOCreOCqg0KK+ODj+ODnuOCsOODgSzjgrHjg7PjgrgNCivjg4/jg6ks44K344Oz44Kk44OBDQor44OP44OpLOOCreODqOOCv+OCqw0KK+ODj+ODqSzjgq/jg4vjg5LjgrMNCivjg4/jg6ks44Oe44K144OK44OqDQor44OP44Op44OALOODnuOCueODnw0KK+ODj+ODqeODgCzjg5/jg4rjgrMNCivjg4/jg6njg4As44OO44Oq44KzDQor44OP44Op44KzLOOCv+OCq+ODkuODrQ0KK+ODj+ODq+ODiizjgr/jgqvjgqLjgq0NCivjg4/jgrvjgqzjg68s44K/44Kv44OkDQor44Kq44K344OeLOOCouOCreODqQ0KK+ODj+OCt+ODouODiCzjgr/jgqvjgrcNCivjg4/jgr/jg44s44Kr44K644OS44OtDQor44OP44K/44K244OvLOOCq+OCuuODn+ODgQ0KK+ODj+ODiCzjg57jgrXjgrcNCivjg4/jg4Tjg58s44Ki44K644K1DQor44OP44OD44OI44OqLOODiOODouODpuOCrQ0KK+ODj+ODpOOCq+ODryzjg4jjgrfjg5Ljg60NCivjg4/jg6Tjgqvjg68s44Ki44OE44Ot44KmDQor44OP44Ok44Kr44OvLOODiOOCt+ODkuOCsw0KK+ODj+ODpOODjizjgqLjg4TjgrcNCivjg4/jg6Tjgrss44K344Oz44K0DQor44OP44Ok44K3LOOCv+OCq+ODj+ODqw0KK+ODj+ODpOOCtyzjgqvjgqrjg6oNCivjg4/jg6Tjgrcs44Oo44K344OS44OtDQor44OP44Ok44K3LOOCseOCpOOCuA0KK+ODj+ODpOOCtyzjgrvjgqTjgr8NCivjgqTjg6Ljg4gs44Oe44K144Oo44K3DQor44OP44Ok44OELOODkuODreOCtw0KK+ODkuOCrOOCrSzjg5Ljg4fjgqLjgq0NCivjg5Ljgqzjgrcs44K544Of44KzDQor44OS44OOLOOCseODs+OCuA0KK+ODkuODqeODkOODpOOCtyzjg4rjgqrjg4gNCivjg5Ljg6njg44s44Kr44K644OS44OtDQor44OS44Op44OOLOOCseOCpOOCpOODgQ0KK+ODkuODqeOCquOCqyzjg57jg6bjg58NCivjg4/jg6njgrXjgq0s44K/44OE44OkDQor44OS44Op44OGLOODkuODh+OCqg0KK+ODkuODqeODpOODnizjg4jjgqrjg6sNCivjg5Ljg63jgqgs44Oo44K344Kr44K6DQor44OS44Ot44Kr44OvLOOCt+ODpeOCpuOCpOODgQ0KK+ODkuODreOCuyzjg5Ljg4fjgr/jgqsNCivjg5Ljg63jgrcs44OO44OW44KzDQor44OS44K144Og44ONLOOCseOCpOOCsw0KK+ODm+ODs+ODgCzjgrPjgqbjgqTjg4ENCivjg5vjg6rjgqvjg68s44OO44Oq44Ki44KtDQor44Ob44Oq44Kz44K3LOOCt+ODs+OCpOODgQ0KK+ODm+ODquOCs+OCtyzjg5Ljg63jg6bjgq0NCivjg5vjgrcs44Om44Kt44KqDQor44Ob44K344KzLOODnuOCteODkuODrQ0KK+ODkuODqeOCteODryzjgrXjg4Djg6bjgq0NCivjg5vjgr3jgqQs44K344Oz44Kk44OBDQor44OS44On44Km44OJ44KmLOOCv+OCq+OCtw0KK+ODkuODp+OCpuODieOCpizjg6bjgqbjgrnjgrENCivjgqTjg5ks44K344Oz44Kk44OBDQor44Kk44OB44Kr44OvLOODnuOCteODkuODrQ0KK+OCpOODgeOCq+ODryzjg57jgrXjg6sNCivjgqTjg4Hjgqvjg68s44Om44OfDQor44Kk44OB44OO44Of44OkLOODn+ODhOODqw0KK+OCpOODhyzjg5/jg4Tjg6bjgq0NCivjgqTjg4cs44Om44OqDQor44Kk44Ks44Op44K3LOODpOOCueODpuOCrQ0KK+OCpOOCrOODryzjgq3jg6jjgrcNCivjgqTjgrDjg4Es44K344Oz44OkDQor44Kk44Kk44OALOOCt+ODpeOCpuOCpOODgQ0KK+OCpOOCpOODgCzjg5Ljg63jgrcNCivjgqTjgqTjgrjjg54s44Kz44Km44Kk44OBDQor44Kk44Kk44OE44KrLOODjuODluOCqg0KK+OCpOOCpOOCuuOCqyzjgqvjgrrjg47jg6oNCivjgqTjgqTjgrrjgqss44Ki44Oq44K1DQor44Kk44Kr44Op44K3LOODiOODouOCrQ0KK+OCpOOCseODgCzjg4rjgqrjgq0NCivjgqTjgrHjg4As44Oe44K144OV44OfDQor44Kk44Kx44OALOOCuOODpeODsw0KK+OCpOOCseODgCzjg5Ljg4fjg4gNCivjgqTjgrHjg4rjgqws44OS44Ot44KqDQor44Of44OE44Oi44OILOODkuODreOCv+OCqw0KK+OCpOOCseODpOODnizjg5Ljg63jg6bjgq0NCivjgqTjgrHjgrYs44OS44OI44K3DQor44Kk44Kx44K244KtLOOCquOCteODoA0KK+OCpOOCr+OCvyzjg4bjg6vjg6bjgq0NCivjgqTjg57jgqQs44Oo44K344OO44OqDQor44Kk44Oe44Kk44K644OfLOODjuODquODkuODrQ0KK+OCpOODnuODoOODqSzjg5Ljg63jg6bjgq0NCivjgqTjg57jg6Djg6ks44Ko44Kk44OqDQor44Kk44Oe44OL44K3LOODiOODouODkuODrQ0KK+OCpOODiuOCrOOCrSzjgqvjgqrjg6oNCivjgqTjg4rjgqzjgq0s44Kr44OE44Om44KtDQor44Kk44OK44Ks44OvLOOCv+ODhOODpA0KK+OCpOODiuODmyzjg57jgrXjg6sNCivjgqTjg4rjg58s44OS44Ot44Of44OBDQor44Kk44OK44OE44KwLOODn+OCteOCqg0KK+OCpOODiuODqOOCtyzjgr/jg4TjgqoNCivjgqTjg44s44Kr44K644OIDQor44Kk44OO44Kq44KrLOOCt+ODs+ODpA0KK+OCpOODjuOCpuOCqCzjgr/jgqvjg6bjgq0NCivjgqTjg47jgqbjgqgs44K/44Kx44K3DQor44Kk44OO44Km44KoLOODkuODh+OCq+OCug0KK+OCpOODjuOCpuOCqCzjgr/jgqvjgrcNCivjgqTjg47jgqbjgqgs44K/44Kr44Ki44KtDQor44Kk44OO44Km44KoLOODpuOCpuOCpOODgQ0KK+OCpOODjuOCpuOCqCzjgq3jgq/jgqoNCivjgqTjg6rjgrXjg68s44Ki44Kt44OS44KzDQor44Kk44K7LOODpuOCreOCqg0KK+OCpOOCu+OCrSzjgqvjg4Tjg6QNCivjgqTjgrfjg4As44Ok44K544OO44OqDQor44Kk44K344OALOODhOODqOOCtw0KK+OCquOCq+ODgCzjg4/jg6vjg58NCivjgqTjgrfjgqQs44Ko44Kk44K4DQor44Ok44Oe44OALOODkuODreODluODnw0KK+OCueOCruODj+ODqSzjg5Ljg63jgr/jgqsNCivjgqTjgrfjgqvjg68s44Kr44OE44OpDQor44Kk44K344Kr44OvLOODnuOCteOCsw0KK+OCpOOCt+OCq+ODryzjg57jgrXjg58NCivjgqTjgrfjg57jg6ss44OO44Oq44KzDQor44Kk44K344Oi44OILOOCv+ODhOOCqg0KK+OCpOOCt+ODouODiCzjg57jgrXjg5Ljg60NCivjgqTjgrfjg6Ljg4gs44Kx44Oz44K4DQor44Kk44K344OOLOOCq+OCr+OCpOODgeODreOCpg0KK+OCpOOCt+ODhOOCqyzjgrXjg4jjgrcNCivjgqTjgrfjg6/jgr8s44K/44Kv44OkDQor44Kk44K344Ov44K/LOODpuOCpuOCuA0KK+ODkuODqeODkOODpOOCtyzjgqjjgqTjgrgNCivjgqTjgrfjgrbjgq0s44Oi44OI44OO44OqDQor44Kk44K344K644KrLOODiOOCquODqw0KK+OCpOOCveODgCzjgr/jgrHjgrcNCivjg4jjgqrjgqss44OI44K344Om44KtDQor44Kv44Oq44OP44OpLOOCseOCpOOCuA0KK+OCpOODiOOCpizjgrHjg7PjgqTjg4ENCivjgqTjg4jjgqYs44Oo44K344Ki44KtDQor44Kk44OI44KmLOOCqOODhOOCrQ0KK+OCpOODiOOCpizjg6jjgqbjgrgNCivjgqTjg4jjgqYs44K144OI44K3DQor44Kk44OB44Ok44OK44KuLOOCt+OCsuODkuODiA0KK+OCpOODiOOCpizjg4Tjg43jg5Ljg60NCivjg4rjgqzjgr8s44Kr44OE44OfDQor44Kk44OI44KmLOOCv+OCq+ODj+ODqw0KK+OCq+ODn+OCq+ODryzjgr/jg4Djg5/jg4QNCivjgqTjg6/jgqQs44OO44Oc44OrDQor44Kk44Ov44Kr44OvLOODhuODq+ODkuOCtQ0KK+OCpOODr+ODnyzjg4jjgrfjg5LjgrMNCivjgqTjg6/jg58s44K/44Kr44K3DQor44Kk44Ov44Oi44OILOODiOODouOCsw0KK+OCpOODr+ODiuOCrCzjg57jgrXjg5Ljg60NCivjgqTjg6/jgrXjgq0s44Kx44Kk44KzDQor44Kk44Ov44K144KtLOODleODn+OCq+OCug0KK+OCpOODr+OCuyzjg5Ljg63jg6bjgq0NCivjgqTjg6/jgrfjgr8s44Kq44K144OgDQor44Kk44Ov44K/LOOCs+OCpuOCu+OCpA0KK+OCpOODr+OCvyzjgrXjg4jjgrcNCivjgqTjg6/jgr/jg4Ys44OS44OH44KtDQor44Kk44K644OfLOODn+ODrw0KK+OCuOODs+ODjizjgr/jgqvjg6TjgrkNCivjgqvjgqzjg68s44OS44OH44KqDQor44Kr44Kk44OM44OeLOODjuODluOCqg0KK+OCq+OCuOOCvyzjgr/jgqvjg5/jg4ENCivjgqvjgrHjgqzjg68s44Kr44K644K/44KrDQor44Kr44Kt44OM44OeLOODiuOCquOCrQ0KK+OCq+ODnuODgCzjgr/jgqvjg5Ljg60NCivjgqvjg57jgr8s44OS44Ot44KtDQor44Kr44Oh44K/44OLLOOCr+ODi+OCouOCrQ0KK+OCq+ODnyzjg57jgrXjg47jg6oNCivjgqvjg5/jg6Djg6ks44Oe44K144K3DQor44Kr44Of44Ok44OeLOODnuOCteODpuOCrQ0KK+OCq+ODiuOCpuODgSzjgr/jgqvjg6bjgq0NCivjgr/jgrHjgqbjg4Es44Of44KtDQor44Kr44ON44KzLOODpOOCueODjuODlg0KK+OCq+ODjeOCsyzjg6Tjgrnjgq0NCivjgqvjg7Pjg4zjgq0s44K744Kk44Kk44OBDQor44Kr44OO44KmLOOCreODqOOCr+ODiw0KK+OCq+ODqeODj+OCtyzjg5Ljg63jgqLjgq0NCivjgqvjgrXjgqQs44Of44OO44OrDQor44OO44Og44OpLOOCqOODn+OCsw0KK+OCq+OCteOCpCzjg6Ljg6LjgrMNCivjgqvjgrss44K444Ol44Oz44Kk44OBDQor44Kr44K344Kv44OpLOODqOOCt+ODreOCpg0KK+OCq+OCt+ODoOODqSzjgrXjg4jjgrcNCivjgqvjgrfjg6/jgq4s44Kr44Oo44KzDQor44Kr44K/44OOLOODhuODq+ODkuOCtQ0KK+OCq+OCv+OCquOCqyzjg6TjgrnjgrcNCivjgqvjg4jjgqYs44Kq44K144OgDQor44Kr44OI44KmLOODiuOCquOCrQ0KK+OCq+ODiOOCpizjgrHjgqQNCivjgqvjg4jjgqYs44Oe44K144OP44OrDQor44Kr44OI44KmLOOCv+OCq+OCouOCrQ0KK+OCq+ODiOOCpizjgr/jgqvjgrcNCivjgqvjg4jjgqbjgqrjgqss44Om44Kr44OqDQor44Kr44OE44KkLOOCuA0KK+OCq+ODhOODnuOCvyzjg5/jg47jg6sNCivjgqvjg6/jg5Djgr8s44K/44Kr44KqDQor44Kr44Ov44OB44OkLOODiOOCt+OCouOCrQ0KK+OCq+ODr+ODgCzjg6rjgrvjgqQNCivjgqvjg6/jg4As44OS44Ot44Om44KtDQor44Kk44Oq44K144OvLOODleODn+OCqg0KK+OCq+ODr+OCpCzjg5/jg68NCivjgqvjg6/jgqvjg58s44Kx44Oz44K4DQor44Kr44Ov44Kr44OfLOODn+ODjuODqw0KK+OCq+ODr+ODnyzjgqLjgq3jg6kNCivjgqvjg6/jg6Djg6ks44Kx44Oz44K4DQor44Kk44K344KkLOODpOOCueOCrQ0KK+OCq+ODr+ODjizjg57jgrXjg5Ljg60NCivjgqvjg6/jg6Djg6ks44Kt44Oo44OS44OtDQor44Kr44Ov44K144KtLOODjuODluODpuOCrQ0KK+OCq+ODr+OCuyzjg4rjgqrjgq0NCivjgqvjg6/jgrss44OS44Ot44K3DQor44Kr44Ov44K7LOOCqOOCpOOCuA0KK+OCq+ODr+OCt+ODnizjgqjjgqTjgrMNCivjgqvjg6/jgr/jg4ss44Kv44OL44OS44KzDQor44Kx44Kk44OALOODnuOCteOCouOCrQ0KK+OCreODgCzjgrfjgrLjgrMNCivjgq3jg4Djg4Es44K344Ky44KqDQor44Kt44OP44OpLOODiOODouOCqA0KK+OCreOCr+OCq+ODryzjg6bjgqvjg6oNCivjgq3jg6Ljg4gs44Oe44K144OS44OHDQor44Kt44Og44OpLOOCseODs+OCpOODgQ0KK+OCq+ODnuOCvyzjg5Ljg63jg6bjgq0NCivjgqTjgq/jg58s44Oe44Om44OfDQor44Kt44OO44K344K/LOOCt+OCsuOCq+OCug0KK+OCreODjuOCpuODgSzjg57jgq0NCivjgq3jgrcs44K/44Kv44K3DQor44Kt44K344Oi44OILOOCq+OCuuODkuODrQ0KK+OCreOCpuODgSzjg4jjg6jjgqLjgq0NCivjgrPjg5As44OS44Ot44Om44KtDQor44Oi44OqLOODkuODh+OCrQ0KK+OCs+ODkOODpOOCq+ODryzjgr/jgrHjgrcNCivjgq/jg5zjgr8s44OS44OI44K3DQor44Kz44OQ44Ok44K3LOODhuODhOODpA0KK+OCquOCquOCq+ODryzjgrfjg7MNCivjgrPjg5Djg6Tjgrcs44OG44OE44K4DQor44Kz44OQ44Ok44K3LOOCreODqOODjuODqg0KK+OCs+ODnuOCvyzjgqjjgqTjgr/jg4QNCivjgrPjg5Djg6Tjgrcs44Kr44OE44OfDQor44Kz44OQ44Ok44K3LOOCq+ODhOODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5LjgrMNCivjgrPjg4Djg54s44Ok44K544K3DQor44Kz44Ko44K4LOODhOODiOODoA0KK+OCs+OCsOODgSzjgrHjg7PjgrgNCivjgrPjg4/jgr8s44OI44K344OS44KzDQor44Kz44OS44OpLOOCreODn+OCqg0KK+ODiuOCq+OCrOODryzjg6rjgqjjgrMNCivjgrPjg6Tjg54s44Ki44Kt44OpDQor44Kz44Kk44OHLOODqOOCt+ODreOCpg0KK+OCs+OCpOODhyzjgrjjg6Xjg7MNCivjgrPjgqTjgrEs44K344Ky44OrDQor44Kz44Kk44K644OfLOODouODiOOCsw0KK+OCs+OCuOODnizjgr/jgq/jg6QNCivjgrPjgrHjgrDjg4Es44Ok44K544Oe44K1DQor44Kz44Kv44OcLOODqOOCpuOCsw0KK+OCs+ODnuODhCzjgr/jgqvjgrMNCivjgrPjg57jg4Qs44Om44Of44KzDQor44Kz44Of44OkLOODqOOCpuOCuA0KK+OCs+ODs+ODiSzjgqvjgrrjg4jjgrcNCivjgrPjg7Pjg4ks44Ki44Kt44OpDQor44Kz44Oz44OJLOODn+OCqA0KK+OCs+ODs+ODiSzjgr/jgqvjg6bjgq0NCivjgrPjg7Pjg4ks44K/44OE44KqDQor44Kz44OL44K3LOOCv+OCq+OCsw0KK+OCs+OCteOCqyzjg57jgrXjg5Ljg60NCivjgrPjgrvjgq0s44OI44K344OS44KzDQor44Kz44K344Kk44K3LOOCv+ODhOODpA0KK+OCs+OCt+OCqizjg57jgrXjg4jjgrcNCivjgrPjgrnjgrIs44OI44K344Ki44KtDQor44Kz44Km44OkLOODnuOCteODjuODqg0KK+OCs+ODpOODnizjgqvjgrrjgrcNCivjgrPjg6Tjg54s44Kq44K144OgDQor44K/44Kx44OBLOOCt+ODpeOCpuOCvuOCpg0KK+OCr+ODnCzjg4jjgrfjg6QNCivjgq/jg5ws44OE44OI44OgDQor44Kv44OcLOODleODn+OCrQ0KK+OCr+OCrOOCpCzjgr/jgqvjg6bjgq0NCivjgqTjgqvjg6njgrcs44Kr44K644OS44OtDQor44Kv44Oe44K244OvLOODjuODluOCsw0KK+OCr+ODi+ODn+ODhCzjg5LjgrXjg6jjgrcNCivjgq/jg44s44K744Kk44K3DQor44Ob44K344OOLOODiOOCt+ODpA0KK+OCr+ODqeOCt+OCsizjgrPjgqbjgrgNCivjgq/jg6rjg4/jg6ks44Of44KrDQor44OK44Kr44Ks44OvLOOCt+ODp+OCpuOCpOODgQ0KK+ODpOODiuOCruODgCzjg6bjgq3jgqoNCivjgq/jg6rjg6Tjg54s44OS44OH44Ki44KtDQor44Kv44Ot44Kr44OvLOODkuODh+ODpuOCrQ0KK+OCr+OCteOCq+ODryzjgrHjgqTjgqTjg4ENCivjgq/jgrXjg4rjgq4s44Kq44K144OgDQor44Kv44K144OOLOODkuODh+ODkuOCsw0KK+OCr+OCuyzjgrXjg4jjg6sNCivjgq/jgrfjg4As44OB44KoDQor44Kv44K544OALOOCs+OCpuOCpOODgeODreOCpg0KK+OCr+OCueOCrSzjg4HjgqjjgrMNCivjgq/jgrnjg58s44Om44K/44KrDQor44Oe44Ko44OALOOCv+ODhOODpA0KK+ODnuOCqOODgCzjgqLjgq3jgqoNCivjg57jgqjjgqvjg68s44OS44Ot44KzDQor44Oe44Ko44Kr44OvLOOCv+OCq+OCqg0KK+ODnuOCrOODquODleODgSzjg6jjgrfjgqoNCivjg57jgq3jg44s44OB44OS44OtDQor44Oe44Kt44OOLOOCseODs+OCuA0KK+ODnuODiuODmSzjg57jgrXjg6gNCivjgqLjgqzjg4Tjg54s44K/44OE44Om44KtDQor44Oe44Or44KqLOOCt+OCsuODqw0KK+ODnuODq+OCvyzjg4rjgqrjgq0NCivjg57jg6vjg6Tjg54s44Om44KrDQor44Oe44Or44Ok44OeLOODnuOCs+ODiA0KK+ODnuODq+ODpOODnizjgr/jgqvjg5Ljg60NCivjg57jg6vjg6Tjg54s44Om44Km44K4DQor44Oe44K544OALOODhuODq+ODn+ODhA0KK+ODnuOCueODgCzjg4jjgrfjg6QNCivjgqvjg7Pjg5Djg6ks44Kk44K644OfDQor44Oe44OE44OQ44OpLOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjg4Hjg4jjgrsNCivjg57jg4Tjg4As44Kv44OL44OO44OqDQor44Oe44OE44OALOODnuOCteODpuOCrQ0KK+ODnuODhOOCpCzjg5Ljg63jg6bjgq0NCivjg57jg4TjgqQs44Oo44K344OO44OqDQor44Oe44OE44KkLOOCt+ODpeOCpuOCpOODgeODreOCpg0KK+ODnuODhOOCpCzjg4Hjg6jjgrMNCivjg57jg4Tjg6Ljg4gs44Ki44OE44K3DQor44Oe44OE44Oi44OILOOCseODs+OCuA0KK+ODnuODhOODouODiCzjg57jgrXjgqvjg4QNCivjg57jg4Tjg6Ljg4gs44K344Oz44OkDQor44Oe44OE44Kq44KrLOODn+ODmw0KK+ODiuODq+OCuyzjg6rjg6XjgqbjgrgNCivjg57jg4Tjg6Qs44OO44OW44OS44KzDQor44Oh44K244OvLOODkuODiOOCtw0KK+ODn+OCruOCvyzjg57jg6bjg58NCivjg5/jgqvjg58s44K344On44Km44K4DQor44Of44Og44OpLOOCq+OCuuODpA0KK+ODpOODiuOCrizjgrPjgqbjgqTjg4ENCivjg5/jg4rjgqvjgr8s44Oe44K144Om44KtDQor44Of44ONLOODnuOCteODpOOCuQ0KK+ODn+ODjSzjg6TjgrnjgqjjgqQNCivjg5/jg47jg68s44Kt44Oo44KoDQor44Of44K144OvLOODnuOCreOCsw0KK+ODn+OCteODryzjgr/jgqvjg5Ljg60NCivjg5/jgrfjg54s44OE44Oo44K3DQor44Of44K/44Og44OpLOODiOODouODkuODrQ0KK+ODn+ODiCzjg47jg5bjgqoNCivjg5/jg4Tjg5Ljg6ks44Oe44Oq44KzDQor44Of44OE44Kk44K3LOODnuOCteODleODnw0KK+ODn+ODhOODiuODqizjgr/jgqvjgqgNCivjg5/jgqbjg6ks44OS44Ot44Kr44K6DQor44Of44Ok44OZLOOCseODs+OCuA0KK+ODn+ODpOOCuOODnizjgrfjgrLjgq0NCivjg5/jg6Tjg6Ljg4gs44K344Ky44OrDQor44Of44Ok44Oi44OILOODiOODouODnw0KK+ODn+ODpOOCteOCqyzjg6bjgqbjgqTjg4Hjg60NCivjg5/jg6TjgrXjgqss44Kx44Oz44Kk44OB44OtDQor44Of44Ok44K344K/LOODkuODreOCqw0KK+ODn+ODpOOCt+OCvyzjgrjjg6Xjg7PjgrMNCivjg5/jg6Tjgrbjgq0s44OO44Oq44K344KyDQor44Of44Ok44K244OvLOOCq+ODhOODnw0KK+ODn+ODpOOCtuODryzjgr/jgqvjg6bjgq0NCivjg5/jgr7jg4/jgrcs44K/44Kx44OS44KzDQor44K144Kr44KkLOODkuODreOCtw0KK+ODn+OCuuODjizjg5Ljg63jgqLjgq0NCivjg5/jgrrjgqrjg4Es44K/44Kr44KqDQor44Of44K644K344OeLOOCseODs+OCuA0KK+ODn+OCuuOCvyzjgrHjg7PjgrgNCivjg6Ljg4Hjg4/jg6ks44Kv44OLDQor44Oi44OB44K644KtLOOCs+OCpuOCpOODgQ0KK+ODouODouOCuyzjgrfjg6XjgqbjgqTjg4ENCivjg6Ljg6os44OS44Ot44KtDQor44Oi44OqLOOCouOCreODkuODrQ0KK+ODouODqizjg4HjgqgNCivjg6Ljg6os44OP44K644KtDQor44Oi44OqLOODkuODh+OCrQ0KK+ODouODqizjg57jg6Ljg6sNCivjg6Ljg6rjgqvjg68s44Oe44K144OoDQor44Oi44Oq44Oi44OILOODpOOCueODkuODrQ0KK+ODouODquODouODiCzjgrPjgqbjgqTjg4ENCivjg6Ljg6rjg6Ljg4gs44Oe44OK44OWDQor44Oi44Oq44Og44OpLOOCt+ODs+OCpOODgQ0KK+ODouODquODjizjgqvjgrrjg58NCivjg6Ljg6rjgrXjg68s44Kv44OL44Kr44K6DQor44K344Oe44Kq44KrLOOCquOCteODoA0KK+ODouODquOCt+OCvyzjg6bjgqsNCivjg6Ljg6rjg6Tjg54s44OS44Ot44KzDQor44Oi44Ot44Kq44KrLOODn+ODhOODkuODrQ0KK+ODouODreODiOODnyzjg4rjgqrjgq0NCivjg6Ljg4jjgq0s44K/44OA44OI44K3DQor44Oi44OI44OOLOOCq+ODhOODpuOCrQ0KK+ODouODiOOCv+OCqyzjg5Ljg4fjgq0NCivjg6DjgrDjg6vjg54s44K/44Kv44K4DQor44Og44Kr44KkLOODqOOCt+ODnw0KK+OCouODs+ODieOCpizjgqTjg6/jgqoNCivjg4/jg40s44Kz44Km44KtDQor44Og44Op44Kr44OfLOODiOOCt+OCq+OCug0KK+ODoOODqeODnuODhCzjg4Tjg4jjg6ANCivjg6Djg6njgrfjgrIs44Kr44K644Om44KtDQor44K344Oi44Og44OpLOOCuOODpeODsw0KK+ODoOODqeOCvyzjg57jgrPjg4gNCivjg5/jg6fjgqbjgqws44K/44Kr44Om44KtDQor44OK44Ks44OP44OpLOODkuODreOCtw0KK+OCpOODiOOCpizjgqvjg4Tjg58NCivjg4rjgqzjgqQs44Kx44Kk44K/DQor44OK44Ks44KkLOODiOOCquODqw0KK+OCpOODr+ODiCzjg6jjgrfjgq0NCivjgr/jgrHjgrfjgrIs44OB44Ob44KzDQor44OK44Ks44KqLOOCouOCreODkuODrQ0KK+ODiuOCrOOCqizjg5/jg4Hjg47jg6oNCivjg4rjgqzjgqos44Kk44K144KoDQor44OV44Kv44OE44KrLOOCseOCpOOCsw0KK+ODiuOCrOOCteODryzjg5Ljg4fjgq0NCivjg4rjgqzjgrXjg68s44Ok44K544OS44OtDQor44OK44Ks44K7LOOCueOCueODoA0KK+ODiuOCrOOCt+ODnizjgqLjgq3jgqoNCivjg4rjgqzjgr/jg4ss44OV44Of44OS44KzDQor44OK44Ks44Ov44KtLOODkuODreODpOOCuQ0KK+ODiuOCrOODpOODnizjg57jgrXjg5Ljg4cNCivjg4rjgrTjg6Qs44Oi44Oq44KqDQor44OK44Kk44OI44KmLOODjuODluODpuOCrQ0KK+ODiuOCpOODiOOCpizjgrXjg4Djg5/jg4QNCivjg4rjgqvjg4As44K/44Kv44OkDQor44OK44Kr44Ks44KtLOODkuODreOCouOCrQ0KK+ODiuOCq+OCrOODryzjg4bjg6vjg47jg5YNCivjg4rjgqvjgqzjg68s44OI44K344OS44OtDQor44OK44Kr44Ks44OvLOODpOOCueODkuODrQ0KK+ODiuOCq+OCrOODryzjg57jgrXjgrcNCivjg4rjgqvjgrjjg54s44OI44Kq44OrDQor44Ob44Oq44Km44OBLOODiOODqOOCuA0KK+ODiuOCq+ODj+ODqSzjgqvjgrrjg5Ljg4gNCivjg4rjgqvjgrjjg54s44Kr44K644Om44KtDQor44OK44Kr44K444OeLOOCs+OCpuOCuA0KK+OCreOCr+OCvyzjg5/jgqsNCivjg4rjgqvjgrjjg54s44OI44K344Ki44KtDQor44OK44Kr44Oe44OrLOODiOOCt+OCsw0KK+ODiuOCq+ODoOODqSzjg6jjgrcNCivjg4rjgqvjg6Djg6ks44Oe44Kz44OIDQor44OK44Kr44Og44OpLOODgeOCqA0KK+ODiuOCq+ODoOODqSzjg47jg6rjgrMNCivjg4rjgqvjg6Djg6ks44K/44Kr44KqDQor44OK44Kr44Og44OpLOOCv+OCq+OCtw0KK+ODiuOCq+ODoOODqSzjg6rjg6XjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44K344Ky44Kr44K6DQor44OP44OD44OI44OqLOODnuODiuODlg0KK+ODiuOCq+ODoOODqSzjgrXjg5bjg63jgqYNCivjg4rjgqvjg6Djg6ks44OI44Kq44OrDQor44OK44Kr44Og44OpLOOCv+ODhOOCuA0KK+ODn+ODpOODouODiCzjgqTjgrrjg6sNCivjg4rjgqvjg4vjgrcs44OS44OH44OIDQor44OK44Kr44OL44K3LOOCueODiuOCqg0KK+ODiuOCq+ODjizjg6jjgrfjgqLjgq0NCivjg4rjgqvjg44s44OB44Om44KtDQor44OK44Kr44OOLOODpOOCueODkuODhw0KK+ODiuOCq+ODjizjgqrjgrXjg6ANCivjg4rjgqvjg44s44OE44Kr44K1DQor44OK44Kr44OOLOOCseOCpA0KK+ODiuOCq+ODjizjg6jjgrfjg47jg5YNCivjg4rjgqvjgqos44K/44Kr44OS44OtDQor44OK44Kr44Kq44KrLOODnuOCteOCq+ODhA0KK+ODiuOCq+OCt+ODnizjgrfjg7PjgqTjg4ENCivjg4rjgqvjgrfjg54s44Kr44K644OK44OqDQor44K344OK44OALOOCouOCreODqQ0KK+ODiuOCq+OCvyzjgqvjgrrjg4rjg6oNCivjg4rjgqvjg6Qs44K/44Kv44K4DQor44K144Kk44Kr44OvLOODkuODiOOCtw0KK+ODj+OCu+OCrOODryzjg5Ljg63jgrcNCivjg4rjgqvjgrbjg68s44Oe44OfDQor44OK44Oe44OELOODnuODnw0KK+ODiuODquOCvyzjgr/jgq/jgrgNCivjg4rjgrnjg44s44K/44Kr44Ki44KtDQor44ON44Oi44OILOODn+ODjeOCouOCrQ0KK+ODjeOCquOCpCzjg57jgrPjg4gNCivjg43jgros44OK44Kq44KtDQor44OL44Kk44Og44OpLOOCq+OCuuODnuOCtQ0KK+ODi+OCpOODpOODnizjg4HjgqvjgrINCivjg4vjgqTjg6Tjg54s44OS44Ot44K3DQor44OL44OO44Of44OkLOODkuODreOCtw0KK+ODi+ODjuODn+ODpCzjgqvjgrrjgqLjgq0NCivjg4vjgrcs44K/44Kr44KqDQor44OL44K344OALOODnuOCteODjuODqg0KK+ODi+OCt+ODgCzjg57jgrXjgrcNCivjg4vjgrfjg4njg44s44Oo44K344OO44OqDQor44OL44K344Kr44OvLOOCouOCreODqQ0KK+ODi+OCt+OCreODiSzjgqLjgq3jg5LjgrMNCivjg4vjgrfjg6Djg6ks44Ki44Kt44OpDQor44OL44K344OKLOODgOOCpOOCpOODhA0KK+ODi+OCt+OCqizjgrjjg6Xjg7PjgrgNCivjgqTjg47jgqbjgqgs44Kr44K644OI44K3DQor44OL44K344K244OvLOOCv+OCq+OCouOCrQ0KK+ODi+OCt+OCuuOCqyzjg4jjgrfjg6QNCivjg4vjg4Pjgr8s44OS44OI44OfDQor44OO44OALOODr+OCq+OCsw0KK+ODjuODoOODqSzjgrXjg4jjgrcNCivjg47jg47jg6Djg6ks44OS44Ot44Om44KtDQor44OO44Oq44OP44K3LOOCpOOCteOCqg0KK+ODkuODjizjgqvjgrrjg6bjgq0NCivjg47jgrbjgq0s44K344OzDQor44OO44K244OvLOODnuOCteODkuODrQ0KK+ODjOODnuODjizjg47jg5bjgrMNCivjgqrjg5Pjgrss44OS44Ot44KtDQor44Kq44Oc44Kr44K/LOOCseODs+OCueOCsQ0KK+OCquODgSzjgqLjgq3jg5Ljg60NCivjg4/jgrvjgqzjg68s44Of44OE44Ki44KtDQor44Oe44OK44OZLOODkuODreODpuOCrQ0KK+OCquODgCzjgqvjg4Tjg58NCivjgqrjg4As44K344Oz44K544KxDQor44Kq44OALOODkuODh+ODkuODrQ0KK+OCquODgCzjgrjjg6Xjg7PjgrMNCivjgqrjg4Djgq/jg6ks44Ku44OnDQor44Kq44Ks44K/LOODkuODiOOCtw0KK+OCquOCrOODryzjg4jjgrfjg5LjgrMNCivjgqLjg5ks44Oo44Km44K544KxDQor44Kq44Kw44OBLOOCs+OCpuOCrQ0KK+OCquOCsOODnizjg57jgrXjg6jjgrcNCivjgqrjgrDjg6ks44K/44Oe44KtDQor44Kq44Kw44OpLOODkuODh+OCqg0KK+ODoOOCteOCtyzjg5/jg4Tjg6sNCivjgqrjgrDjg6ks44Oe44K144OS44KzDQor44Kq44Kw44OqLOODnuOCs+ODiA0KK+OCquOCquODkCzjgrHjg7PjgrgNCivjgqrjgqrjg4/jgrcs44Oo44Km44Kk44OBDQor44Kq44Kq44KkLOODkuODreOCq+OCug0KK+OCquOCquOCpOOCqCzjgrHjg7PjgrgNCivjgqrjgqrjgq/jg5ws44OP44Or44K3DQor44Kq44Kq44Kv44OeLOOCpOOCteODoA0KK+OCquOCquOCr+ODnizjg5Ljg63jgrcNCivjgqrjg44s44Kr44OE44OfDQor44Kq44Kq44OM44OeLOOCq+ODqOOCsw0KK+OCv+OCq+OCuyzjg6jjgrfjg5Ljg4cNCivjgqrjgqrjgrXjg68s44OS44OH44KtDQor44Kq44Kq44K144OvLOODkuODreOCtw0KK+OCquOCquOCteODryzjgrHjg7PjgrgNCivjgqrjgqrjgrXjg68s44K944Km44K544KxDQor44Kq44K344OeLOODnuODquOCsw0KK+OCquOCt+ODnizjg5Ljg63jgqoNCivjgqrjgrfjg54s44Of44OE44OS44OtDQor44Kq44Kq44K/LOOCt+ODs+OCuA0KK+OCquOCquOCv+OCqyzjg5Ljg63jg6bjgq0NCivjgqrjgqrjgr/jgq0s44K/44Kx44K3DQor44Kq44Kq44K/44OLLOODqOOCpuOCuA0KK+OCquOCquODhOOCqyzjg5Ljg63jg47jg5YNCivjgqrjgqrjg4Tjgqss44OG44OE44KqDQor44Kq44Kq44OvLOODnuOCs+ODiA0KK+OCquOCquODr+ODgCzjg5Ljg63jg47jg6oNCivjgqrjgqrjg6Tjg54s44OS44OI44K3DQor44Kq44K+44ONLOODjuODluODpuOCrQ0KK+OCquOCqyzjg6TjgrnjgrcNCivjgqrjgqss44OS44Ot44Ki44KtDQor44Kq44KrLOOCq+OCuuOCt+OCsg0KK+OCquOCqyzjgr/jgqvjg47jg6oNCivjgqrjgqvjg4As44K/44Kr44Oo44K3DQor44Kq44Kr44OALOODkuODiOOCtw0KK+OCquOCq+ODgCzjg57jgrXjg6bjgq0NCivjgqrjgqvjg4As44OI44Oo44Ki44KtDQor44Kq44Kr44OJ44OhLOOCreODqOOCq+ODhA0KK+OCquOCq+ODouODiCzjg6TjgrnjgrcNCivjgqrjgqvjg6Ljg4gs44Kz44Km44K4DQor44Kq44Kr44Oi44OILOODkuODreOCtw0KK+OCquOCq+ODoOODqSzjg6rjgqsNCivjgqrjgqvjg44s44Ki44Kt44OpDQor44Kq44Kr44OO44OkLOODn+ODhOODqw0KK+OCquOCq+OCqizjg6TjgrnjgrgNCivjgqrjgqvjgrbjgq0s44OS44OH44KqDQor44Kq44KtLOODkuODreODpuOCrQ0KK+OCquOCreODouODiCzjg57jgrXjg5LjgrMNCivjgqrjgq/jg6Djg6ks44OI44Oi44KzDQor44Kq44Kv44Og44OpLOODpuOCreODkuOCsw0KK+OCquOCr+ODjizjgqLjgqQNCivjgqrjg57jgr8s44Ki44Kt44Oo44K3DQor44Kq44OL44KtLOODkuODreODpuOCrQ0KK+OCquODi+ODhOOCqyzjg57jgrXjgqLjgq0NCivjgqrjg47jg4fjg6ks44Ki44Kt44OpDQor44Kq44OO44K244OvLOODkuODh+ODhOOCsA0KK+OCquOCquODi+OCtyzjgrHjg7MNCivjgqrjgqrjg4vjgrcs44Kv44OL44Oo44K3DQor44Kq44Kq44OE44KrLOODiuOCquODkuOCtQ0KK+OCquOCteODgCzjg4jjg6Ljg47jg5YNCivjgqrjgrXjgq0s44K/44Kr44K3DQor44Kq44K144OK44OfLOOCt+OCuuODqOOCtw0KK+OCquODpOODnuODgCzjg6Tjgrnjg47jg6oNCivjgqrjgrbjg68s44Kz44Km44K444Ot44KmDQor44Kq44K244OvLOOCt+ODreOCpg0KK+OCquOCtuODryzjg6Tjgrnjg47jg6oNCivjgrXjgqjjgrDjgrUs44Ok44K544OO44OqDQor44K144Ko44KtLOODqOOCt+ODkuODrQ0KK+ODiuOCq+OCuOODnizjgr/jgrHjgrcNCivjgrXjgqTjgr8s44OB44Ko44KzDQor44Kq44Ks44OvLOODpOOCueODj+ODqw0KK+OCteOCpOODiOOCpizjgqvjgrrjg5LjgrUNCivjgrXjgqTjg4jjgqYs44K/44Kr44OS44KzDQor44K144Kk44OI44KmLOODqOOCt+ODjuODqg0KK+OCteOCq+OCpCzjg6rjg6fjgqbjgrgNCivjgrXjgqvjgqQs44OS44OH44OO44OqDQor44K144Kr44KkLOOCseOCpOOCuA0KK+OCteOCq+OCpCzjgr/jgrHjgrcNCivjgrXjgqvjgqQs44K/44KvDQor44K144Kr44KkLOOCt+ODp+OCpuOCtA0KK+OCteOCq+OCpOODqizjg5Ljg63jg6bjgq0NCivjgrXjgqvjgq0s44Kt44On44Km44KzDQor44K144Kr44OeLOODnuOCteODjuODqg0KK+OCteOCq+ODnuOCrSzjg57jgrXjg4jjg6INCivjgrXjgqvjg6Ljg4gs44Oe44K144OI44K3DQor44K144Kr44Oi44OILOOCteODiOODqw0KK+OCteOCq+ODouODiCzjgrfjg6XjgqbjgqTjg4ENCivjgrXjgqvjgr8s44K/44Kr44K3DQor44K144Kr44Km44KoLOOCv+OCq+ODpuOCrQ0KK+OCteOCq+OCuuODoSzjgr/jgq/jg58NCivjg4rjgqvjg44s44OI44Oi44OS44OtDQor44K144Kv44OeLOODqOOCt+ODkuOCsw0KK+OCteODs+ODnOODs+ODnuODhCzjgqvjgrrjg5Ljg60NCivjgrXjg44s44K/44Kx44K3DQor44K144OOLOODiOOCt+ODleODnw0KK+OCteOCteOCrOODryzjg6bjgr/jgqsNCivjgrXjgrXjgq0s44Om44Oq44KzDQor44K144K144KtLOODpOOCueODpuOCrQ0KK+OCteOCteOCrSzjgqvjgrrjg6jjgrcNCivjgrXjgrXjgq0s44Kz44Km44K4DQor44K144K144K244OvLOODiOOCt+ODpuOCrQ0KK+OCteODiOOCpizjg6TjgrnjgrcNCivjgrXjg4jjgqYs44Kr44OE44OS44OIDQor44K144OI44KmLOODqOOCt+OCv+OCqw0KK+OCteODiOOCpizjgr/jgqvjg6bjgq0NCivjgrXjg4jjgqYs44OO44OW44K/44KrDQor44K144OI44KmLOODpuOCpuOCueOCsQ0KK+OCteODiOOCpizjg5Ljg4fjg6bjgq0NCivjgrXjg4jjgqYs44K144OI44K3DQor44K144OI44KmLOOCquOCteODoA0KK+OCteODiOOCpizjg57jg6bjg58NCivjgrXjg4jjgqYs44OO44OW44KqDQor44K144OI44KmLOODkuODh+ODjuODqg0KK+OCteODhOODnizjg5/jg6/jgrMNCivjgrXjg6/jgrDjg4Es44OK44Kq44OIDQor44K144Ov44KkLOODn+ODgeODkuODrQ0KK+OCteODr+ODqeOCrizjg6TjgrnjgqoNCivjgrXjg6/jgr/jg4ss44Kv44OL44KqDQor44K744Kk44K/LOOCouODhOOCtw0KK+OCu+OCrSzjg57jgrXjg57jg60NCivjgrvjgq0s44OO44OW44OS44OtDQor44K744KtLOODjuODquODpOOCuQ0KK+OCu+OCreODj+ODqSzjgqLjgq3jg6kNCivjgrvjgq3jg40s44Om44Km44K544KxDQor44K744Kt44ONLOODkuODreODpuOCrQ0KK+OCt+ODqeOCpOOCtyzjg57jgrXjg5Ljg60NCivjgrvjg7Pjgqws44OO44OW44KqDQor44K744OOLOODjuODquODpuOCrQ0KK+OCu+OCt+ODoizjgrfjg6XjgqbjgqTjg4ENCivjgrvjg4gs44K/44OE44KqDQor44K744OI44Kw44OBLOOCv+ODhOODpA0KK+ODhuODq+ODpCzjg6bjgqbjgqTjg4ENCivjgrfjgqTjg5As44Oq44KrDQor44K344OQ44OOLOODiOODouODpuOCrQ0KK+OCt+ODkOOCteOCrSzjgqTjgq/jgrMNCivjgrfjg5Djgr8s44OG44OE44Ot44KmDQor44K344OW44K144OvLOODnuOCteODleODnw0KK+OCt+ODluOCteODryzjg6jjgrfjg5Ljg60NCivjgrfjg4Es44OA44Kk44Ko44KkDQor44K344OB44K/LOOCv+OCq+ODpuOCrQ0KK+OCt+OCsuODkuOCtSzjg4jjgqrjg6sNCivjgrfjgrLjgrXjg68s44Of44Om44KtDQor44Og44Op44K/LOODquODpeOCpuOCv+ODreOCpg0KK+OCt+ODnuOCuizjgr/jgqvjg4TjgrANCivjgrfjg57jgros44K/44OE44K3DQor44Kt44K344OALOOCv+OCq+OCtw0KK+OCt+ODn+OCuizjg5/jg4HjgqoNCivjgrfjg5/jgros44Ko44Kk44Kk44OBDQor44K344Of44K6LOODkuODreOCtw0KK+OCt+ODn+OCuizjg4/jg6Tjg4jjgrcNCivjgrfjg5/jgros44Kv44Oz44K4DQor44K344Of44K6LOOCseOCpOOCsw0KK+OCt+ODn+OCuizjg5Ljg63jgrfjgrINCivjg5/jg6TjgrPjgrcs44OI44K344OS44OtDQor44K344Oi44Of44OBLOODnuODquOCsw0KK+ODiuOCq+ODkOODpOOCtyzjgqvjgqrjg6sNCivjgrfjg6LjgqrjgrUs44K/44Kx44K3DQor44K344Oi44OE44K4LOOCt+ODs+OCuA0KK+OCt+ODiuODgCzjg4HjgqvjgrcNCivjgrfjg4rjgqzjg68s44OO44OW44KqDQor44K344Oz44Oi44OILOODnuOCteODkuODrQ0KK+OCt+ODjizjg6jjgrfjg47jg6oNCivjgrfjg47jg4As44Oq44Ol44Km44K/44Ot44KmDQor44K344OO44OALOODj+ODhOOCqA0KK+OCt+ODjuOCtuOCrSzjgrfjg6fjgqbjgrgNCivjgrfjgqrjgr/jg4ss44OG44OE44OS44OtDQor44K344Kq44OkLOODhOOCq+OCtQ0KK+OCt+ODqeODmSzjgqTjg4PjgrvjgqQNCivjgrfjg6njgqzjgq0s44Oo44K344OP44OrDQor44K344Op44KkLOOCq+OCuuODkuOCsw0KK+OCt+ODqeOCpOOCtyzjgqjjg4Tjg5Ljg60NCivjgrfjg6njgqTjgrcs44OS44Ot44K3DQor44K344Op44KtLOOCq+OCuuODkuODrQ0KK+OCt+OCuuOCvyzjgrHjgqTjgrMNCivjgrfjg6fjgqbjgrgs44Kx44Kk44K/DQor44K944OO44OALOODn+ODieODqg0KK+OCueODieOCpizjg6Ljg4jjg6bjgq0NCivjgrnjgqjjg4As44K744Kk44KzDQor44K544Ko44OE44KwLOOCv+OCq+OCtw0KK+OCueOCrOOCvyzjg6TjgrnjgrnjgrENCivjgrnjgqzjg6/jg6ks44Oo44K344Ki44KtDQor44K544Ku44OOLOODqOOCt+ODjuODlg0KK+OCueOCruOCteOCrSzjg6bjgqbjgrgNCivjgrnjgq7jgrfjg54s44Oe44K144OrDQor44OK44Ks44KkLOODnuODquOCsw0KK+OCueOCruODpOODnizjg4jjgrfjg5Ljg60NCivjgrnjg58s44Kr44OE44OS44OtDQor44K544Of44K/44OLLOOCt+ODs+OCpOODgQ0KK+OCueOCteOCrSzjg5Ljg63jg6bjgq0NCivjgrnjgrnjgq0s44Kz44Km44Kk44OBDQor44K544Ok44OeLOODiOODouODjuODqg0KK+OCueOCuuOCrSzjg5/jg4HjgqoNCivjgrnjgrrjgq0s44Kx44Oz44Kk44OBDQor44K544K644KtLOOCs+OCpuOCpOODgQ0KK+OCv+OCuOODnizjgrXjg4jjgq0NCivjgrnjgrrjgq0s44K/44Kv44OkDQor44K544K644KtLOODpOOCueOCsw0KK+OCueOCuuOCrSzjg6bjgr/jgqsNCivjgrnjgrrjgq0s44Ki44Kt44KzDQor44K544K644KtLOOCouODhOOCtw0KK+OCueOCuuOCrSzjg5Ljg4fjg4jjg6INCivjgrnjgrrjgq0s44OS44OH44OI44K3DQor44K544K644KtLOODkuODh+ODiOOCtw0KK+OCueOCuuOCrSzjg5Ljg63jgq0NCivjgrfjg6Xjgq/jg6Qs44K444Ol44Oz44Kk44OBDQor44K/44OB44OQ44OKLOOCq+ODqA0KK+OCv+ODgeODpOODnizjgrPjgqbjgqTjg4ENCivjgr/jg4njgrPjg60s44Oe44K144Ki44KtDQor44K/44Ks44OvLOODnuOCteODkuODiA0KK+OCv+OCsOODgSzjg6Ljg4jjgqvjgroNCivjgr/jgrDjg4Es44OK44Kq44Om44KtDQor44K/44Kw44OBLOODjuODluODkuOCtQ0KK+OCv+OCpCzjg47jg6rjgqoNCivjgr/jgrjjg54s44K144OB44KoDQor44K/44Kr44OALOOCteODiOODqw0KK+OCv+OCq+ODgCzjgrfjgrLjg47jg5YNCivjgr/jgqvjgq4s44K544K544OgDQor44Of44Ok44Oi44OILOOCv+OCq+OCtw0KK+OCv+OCq+ODj+ODnizjg4bjg4TjgqoNCivjgr/jgqvjg4/jgrcs44Ok44K544Ki44KtDQor44K/44Kr44OP44K3LOODnuOCteODjuODqg0KK+OCv+OCq+ODj+OCtyzjg4Tjg4jjg6ANCivjgr/jgqvjg4/jgrcs44Oe44K144Om44KtDQor44K/44Kr44OP44K3LOODnuOCs+ODiA0KK+OCv+OCq+ODj+OCtyzjgrHjg7Pjg6rjg6XjgqYNCivjgr/jgqvjg4/jgrcs44OI44K344OS44K1DQor44K/44Kr44OP44K3LOODpOOCueOCtw0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg4/jgrcs44Ok44K544OO44OqDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjg6Ljg4jjg6TjgrkNCivjgr/jgqvjg4/jgrcs44Om44Kt44KoDQor44K/44Kr44OP44K3LOODpOOCueOCsw0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjgrcNCivjgr/jgqvjg4/jgrcs44Oo44K344OS44K1DQor44K/44Kr44OP44K3LOODiOOCt+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjgrXjg4jjgrMNCivjgr/jgqvjg4/jgrcs44OS44OH44KtDQor44K/44Kr44OP44K3LOOCpOODgeODreOCpg0KK+OCv+OCq+ODj+OCtyzjg47jg5bjgqLjgq0NCivjgr/jgqvjg4/jgrcs44Of44OE44OrDQor44K/44Kr44OK44K3LOOCt+ODsw0KK+OCv+OCq+ODjizjgqvjg4Tjg47jg6oNCivjgr/jgqvjgqrjgqss44OG44OE44OkDQor44K/44Kr44K7LOOCt+OCsuOCrQ0KK+OCv+OCq+OCt+ODiizjgrPjgqbjgrvjgqQNCivjgr/jgqvjgrfjg4os44OA44Kk44K144KvDQor44K/44Kr44K/LOODkuODreOCouOCrQ0KK+OCv+OCq+ODpOODnizjg5Ljg63jg6bjgq0NCivjgr/jgqvjg6Tjg4rjgq4s44K444Ol44OzDQor44K/44Kx44OQ44Ok44K3LOOCq+ODhOODnw0KK+ODn+OCq+ODnyzjgrHjgqTjgrnjgrENCivjgr/jgrHjgqQs44Oe44Kz44OIDQor44K/44Kx44KtLOODnuOCt+ODpeOCpg0KK+OCv+OCseODouODqizjg47jg5bjg5LjgrMNCivjgr/jgrHjg6Djg6ks44Kq44K144OgDQor44K/44Kx44Km44OBLOOCseODsw0KK+OCv+OCseODpCzjgrfjg6fjgqbjgqTjg4ENCivjgr/jgrHjg6Tjg54s44OI44K344Ki44KtDQor44K/44Kt44Kw44OBLOODiOOCt+OCq+OCug0KK+OCv+OCreOCt+OCvyzjg4jjgrfjg6bjgq0NCivjgr/jgq3jgrbjg68s44Ki44Kt44OpDQor44K/44Oe44KkLOOCt+OCsuODqw0KK+OCv+ODn+ODpCzjgqLjgq3jgrMNCivjgr/jg6Djg6ks44Oo44Km44K544KxDQor44K/44OK44OZLOODkuODreODpuOCrQ0KK+OCv+ODiuODj+OCtyzjg6jjgrfjg6bjgq0NCivjgr/jg4rjgqss44K344Ky44OIDQor44K/44OK44KrLOODkuODh+ODjuODqg0KK+OCv+ODiuOCqyzjg5Ljg63jg6bjgq0NCivjgr/jg4rjgqss44OS44Ot44KtDQor44K/44OK44KrLOODpuOCreOCsw0KK+OCv+ODiuOCqyzjg5Ljg63jgrMNCivjgr/jg4rjgqss44K444Ol44Oz44Kk44OBDQor44K/44OK44KrLOOCt+ODsw0KK+OCv+ODiuOCqyzjg57jgrXjgqvjgroNCivjgr/jg4rjgqss44K444Ol44Oz44KzDQor44Kz44OA44OeLOODqOOCt+ODkuOCsw0KK+OCv+ODiuOCqyzjgqLjgrXjgqoNCivjgr/jg4rjgqss44OO44Oq44Ki44KtDQor44K/44OK44KrLOOCteODiOOCtw0KK+OCv+ODiuOCqyzjgqrjgrXjg6ANCivjgr/jg4rjg6Djg6ks44K144OI44K3DQor44K/44Oz44OQLOOCq+OCuuODiuODqg0KK+OCv+ODi+OCsOODgSzjgrHjgqTjgrgNCivjgr/jg4vjgrDjg4Es44K444Ol44Oz44KzDQor44K/44OL44KkLOOCsuODsw0KK+OCv+ODi+ODoOODqSzjg4jjg6Ljg47jg6oNCivjgr/jg4vjg6/jgq0s44Kq44K144OgDQor44K/44Or44KkLOOCt+ODp+OCpuOCuA0KK+OCv+OCteOCrSzjgqvjgrrjg6bjgq0NCivjgr/jgrfjg60s44Oe44K144OkDQor44K/44OG44Kk44K3LOODiuOCquODpA0KK+OCv+OCpuODgSzjg6rjg6fjgqbjgrMNCivjgr/jgqbjg6ks44OS44Ot44Ki44KtDQor44OG44Op44OALOODqOOCt+OCqg0KK+OCteODiOOCpizjgqLjgq3jg6kNCivjg4bjg6njg4vjgrcs44Oi44Oq44Om44KtDQor44OG44Op44K344K/LOODkuODreOCtw0KK+ODhuODq+OCreODiizjgqLjgq3jg6gNCivjg4jjg5ks44Ko44Oq44KzDQor44OI44Km44K044KmLOOCv+OCq+ODj+ODqw0KK+ODiOOCsOODgSzjgqjjgqTjgrgNCivjg4jjgrgs44Kr44OE44OO44OqDQor44OI44Of44OK44KsLOODnuOCteODiA0KK+ODiOODn+ODiuOCrCzjg6Tjgrnjg57jgrUNCivjg4jjg5/jgqrjgqss44OK44Kq44KtDQor44OI44Of44K/LOOCueOCsOODqw0KK+ODiOODn+ODpOODnizjg5Ljg63jgr/jgqsNCivjg4jjg43jgqzjg68s44Ki44Kt44OpDQor44OI44K344OK44OqLOOCuOODpeODs+OCsw0KK+ODiOODqOODgCzjgrPjgqbjgrgNCivjg4jjg6jjg4As44Kr44OE44OkDQor44OI44Oo44OALOODnuOCteODkuOCsw0KK+OCquOCquODouODqizjg6jjgqbjgqTjg4Hjg63jgqYNCivjg4jjgrrjgqss44OS44OH44KqDQor44Ok44Oe44Kr44OvLOODquODpeOCpuODmOOCpA0KK+ODhOODnOOCpCzjgrjjg6Xjg7PjgrMNCivjg4Tjg4Hjg4/jgrcs44Kr44OE44OfDQor44OE44OB44OOLOODn+ODjuODqw0KK+ODhOODgeODpCzjg6jjgrfjg5Ljg60NCivjg57jgq0s44OS44OH44OO44OqDQor44OE44OALOODn+ODhOODjuODlg0KK+ODhOOCrOODryzjgrHjg7PjgrgNCivjg4Tjgrgs44K144OI44K3DQor44OE44K4LOODiOODqOOCq+OCug0KK+ODhOOCuCzjg5Ljg63jgrcNCivjg4Tjgqvjg4As44OS44Ot44Om44KtDQor44OE44Kr44Oi44OILOOCreODqOOCtw0KK+ODhOODoOODqSzjgr/jgqvjg6bjgq0NCivjg4Tjg4rjgrfjg54s44Om44Kt44KqDQor44Kq44Kv44Ok44OeLOODnuODouODqw0KK+ODhOODjuODgCzjgrXjg4Djg4/jg6sNCivjg4Tjg47jgqzjgqQs44Ok44K544OO44OqDQor44OE44K344OeLOODjuODnOODqw0KK+ODhOODhOODnyzjg5Ljg63jgrcNCivjg4Tjgrrjgq0s44Kr44OE44OfDQor44OE44Or44Kq44KrLOODkuODh+ODiA0KK+OCpuODgeODgCzjg5LjgrXjgrcNCivjgqbjg4Hjg4As44Oe44K144OrDQor44Km44OB44OALOODnuOCteODleODnw0KK+OCpuODgeODgCzjg6TjgrnjgrcNCivjgqbjg4Hjg44s44Ki44Kt44OS44KzDQor44Km44OB44OO44Kv44OpLOODoeOCsOODnw0KK+OCpuODgeODpOODnizjg5/jg4Hjg4/jg6sNCivjgqbjg4Hjg6Tjg54s44K/44Kr44OO44OqDQor44Km44OB44Ok44OeLOODjuODluODkuODrQ0KK+OCpuODgCzjgrHjgqTjgrgNCivjgqbjgqjjg4As44K344Ky44OrDQor44Km44Ko44OALOODiuODhOOCsw0KK+OCpuOCqOODgCzjg6jjgrfjg4gNCivjgqbjgqjjg4As44OI44K344OP44OrDQor44Km44Ko44OP44OpLOOCt+OCsuODqw0KK+OCpuOCqOODj+ODqSzjg57jgrXjgqoNCivjgqbjgqjjg4/jg6ks44K344Oz44K4DQor44Km44Ko44K444OeLOODkuODreODpuOCrQ0KK+OCpuOCqOOCrSzjgqjjg6rjgrMNCivjgqbjgqjjg6Djg6ks44Kv44OL44OS44OtDQor44Km44Ko44OOLOOCv+OCq+ODkuODhw0KK+OCpuOCqOODjizjg4jjgq/jg5Ljg60NCivjgqbjgqjjg44s44Om44Km44K4DQor44Km44Ko44Ok44OeLOODqOOCt+OCsw0KK+OCpuOCpCzjgrHjgqTjgrnjgrENCivjgqbjg6Hjg4As44K344On44Km44Kk44OBDQor44Km44Oh44OALOOCouODhOOCtw0KK+OCpuODoeODgCzjg4Hjg4/jg6sNCivjgqbjg6Hjg4As44Kx44Oz44K4DQor44Km44Oh44OP44OpLOODnuOCs+ODiA0KK+OCpuODoeOCq+ODryzjg57jgrXjg47jg6oNCivjgqbjg6vjgrfjg4Djg4ss44Oe44K144Om44KtDQor44Kk44OO44Km44KoLOOCv+OCseOCtw0KK+OCpuOCteODnyzjg6bjgqbjgrMNCivjgqbjgrfjg57jg6ss44K/44OE44OS44OtDQor44Km44K344Ok44OeLOOCq+ODhOODpuOCrQ0KK+OCpuOCueOCpCzjgrPjgqbjg5jjgqQNCivjgqbjgrnjgqQs44Kq44K144OgDQor44Km44OE44OfLOOCuOODreOCpg0KK+OCteOCteOCrOODryzjgqvjgrrjgqLjgq0NCivjgr3jg6Hjg6Qs44Kx44Oz44K4DQor44Ov44OALOODnuOCteOCqg0KK+ODr+ODgCzjg57jgrXjg6jjgrcNCivjg6/jg4As44Oo44K344Ki44KtDQor44K/44OO44Km44KoLOODpuOCpuOCpOODgQ0KK+ODr+OCt+ODgCzjg5Ljg4fjgqLjgq0NCivjg6/jgr/jgqQs44Of44OB44Ki44KtDQor44Ov44K/44OK44OZLOODnuOCteODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqLjgq3jgqoNCivjg6/jgr/jg4rjg5ks44Kr44K644OS44K1DQor44Ov44K/44OK44OZLOOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg4fjgq0NCivjg6/jgr/jg4rjg5ks44OI44Kq44OrDQor44Ov44K/44OK44OZLOODkuODreODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg6kNCivjg6Tjgq4s44Kr44K644KqDQor44Ok44K0LOODnuOCteODkuOCsw0KK+ODpOODj+OCrizjg4rjgqrjg5Xjg58NCivjg6Tjgq/jgrcs44Kq44K144OgDQor44Ok44Oe44OALOODrOOCpOOCrQ0KK+ODpOODnuODgCzjgr/jgqvjgrcNCivjg6Tjg57jg4As44OI44Of44Ok44K5DQor44Ok44Oe44OALOODiOOCt+ODkuODrQ0KK+ODpOODnuODgCzjg4jjgrfjgqoNCivjg6Tjg57jg4As44Oo44K344KqDQor44Ok44Oe44OALOODpuOCqw0KK+ODpOODnuOCrOOCvyzjgr/jgrHjgrcNCivjg6Tjg57jgq7jgrcs44Oe44K144KoDQor44OP44OqLOODnuOCteODpuOCrQ0KK+ODpOODnuOCsOODgSzjgqvjg4TjgrcNCivjg6Tjg57jgrDjg4Es44OI44Oi44Kr44K6DQor44Ok44Oe44Kw44OBLOODiOODouODnw0KK+OCouOCquODhOOCqyzjg6jjgrfjgrXjg4gNCivjg6Tjg57jgrDjg4Es44Oe44K144OO44OqDQor44Ok44Oe44K4LOODn+ODgeOCqg0KK+ODpOODnuODouODiCzjg5Ljg63jg47jg6oNCivjg6Tjg57jg6Ljg4gs44K444Ol44Oz44Kk44OBDQor44Ok44Oe44Oi44OILOOCseODs+OCuOODreOCpg0KK+ODpOODnuODouODiCzjgqvjgrrjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OS44Ot44OV44OfDQor44Ok44Oe44Oi44OILOOCv+OCq+ODpuOCrQ0KK+ODpOODnuODouODiCzjgqLjgq3jg5Ljg4cNCivjg6Tjg57jg6Ljg4gs44OI44K344OO44OqDQor44Ok44Oe44Oi44OILOOCqOOCpOOCuA0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjg6Tjg57jg6Ljg4gs44OI44K344Om44KtDQor44Ok44Oe44Oi44OILOODiuOCquODleODnw0KK+ODpOODnuODoOODqSzjg4jjg6LjgqvjgroNCivjg6Tjg57jg4rjgqss44Om44K/44KrDQor44Ok44Oe44K344OKLOOCt+ODs+OCuA0KK+ODpOODnuOCt+OCvyzjg6bjgq3jg5Ljg60NCivjg6Tjg57jgrfjgr8s44Oq44Oz44K444OlDQor44Ok44Oe44K344K/LOOCseODs+OCuA0KK+ODpOODnuOCt+OCvyzjg5Ljg4jjgrcNCivjg6Tjg57jg4Ys44Kx44KkDQor44Ok44Oe44Km44OBLOOCouOCreODqQ0KK+ODpOODnuOCtuOCrSzjg6bjgq3jg5LjgrUNCivjg6Tjg57jgrbjgq0s44OO44Oc44OrDQor44Ok44Oe44K244KtLOODkuODiOOCtw0KK+ODpOODiuOCrizjgqvjgrrjgqoNCivjg6Tjg4rjgq7jg4As44Kz44Km44Kk44OB44Ot44KmDQor44Ok44OK44Ku44OALOODn+ODmw0KK+ODpOODiuOCpCzjgrXjg4jjgrcNCivjg6Tjg4rjgqss44K/44OA44K3DQor44Ok44K544OALOODnuOCteODnw0KK+ODpOOCueODgCzjgqTjg6/jgqoNCivjg6Tjgrnjg4As44K744Kt44KzDQor44Ok44K544Oi44OILOOCq+OCuuODpA0KK+ODpOODhOOCqyzjg4rjgqrjgq0NCivjg6Tjgrbjg68s44Of44K644ObDQor44Oo44OALOODhuODhOODpA0KK+ODqOODieOCrOODryzjg47jg6rjgqoNCivjg6jjg4As44OS44Ot44OO44OqDQor44Oo44Kz44OP44K/LOODkuODreODpA0KK+ODqOOCs+ODpOODnizjgqTjg6/jgqoNCivjg6jjgrPjg6Tjg54s44K344Ky44OrDQor44Oo44Oi44OqLOOCouOCreODqOOCtw0KK+ODqOODjeODouODgSzjg6jjgrfjg4TjgrANCivjg6jjg63jgrrjg6Qs44OK44Kq44OS44K1DQor44Oo44K344OALOOCv+ODhOOCvuOCpg0KK+ODqOOCt+ODgCzjgr/jgqvjgrcNCivjg6jjgrfjg4As44OO44Oq44KqDQor44OV44K444K144KtLOOCs+OCpuOCpOODgQ0KK+ODqOOCt+ODgCzjg5Ljg4jjgrcNCivjg6jjgrfjg4As44OG44OE44KqDQor44Oo44K344Oe44OELOODgeODj+ODqw0KK+ODqOOCt+ODouODiCzjg6bjgqbjgrnjgrENCivjg6jjgrfjg6Djg6ks44Kr44OE44OkDQor44Kk44K344OQ44K3LOOCv+ODgOOCtw0KK+ODqOOCt+ODjizjgr/jg4Tjg6QNCivjgr/jgqvjg44s44Kx44Kk44K0DQor44Om44OP44K3LOOCt+ODp+OCpuOCsw0KK+OCqOODgOODkuODrSzjg5/jg4njg6oNCivjg4/jg6njg4As44Oe44K144Om44KtDQor44OP44Ok44K144KrLOODquODpeOCpuOCu+OCpA0KK+OCpOODiuOCrOOCrSzjg57jgrXjgq0NCivjgqTjg47jgqbjgqgs44K144OI44K3DQor44Kk44K344OP44OpLOOCv+OCq+OCtw0KK+OCs+OCuOODnizjg6Tjgrnjg5LjgrUNCivjgrPjgrnjgq4s44K344Oz44K0DQor44Kv44Oc44K/LOODiuODq+ODnw0KK+ODouODqizjgr/jgqvjgrcNCivjg4rjgqvjg5Djg6Tjgrcs44OK44Kq44OS44K1DQor44ON44Oi44OILOOCv+OCq+OCtw0KK+ODi+ODjuODn+ODpCzjgrHjgqQNCivjgqrjgqzjg68s44Oh44Kw44OfDQor44Kq44Kq44K/44OLLOODnuOCteOCsw0KK+OCu+OCrSzjgq/jg58NCivjgrfjg5bjgr/jg4ss44OE44OI44OgDQor44K344Oz44OILOODkuODreODpuOCrQ0KK+OCveODluOCqCzjg5Ljg4jjgrcNCivjgr/jgqvjg4/jgrcs44K/44Kx44K3DQor44K/44Kr44K7LOODnuODn+OCsw0KK+ODiOODqOODgCzjg5Ljg63jg5Ljg4cNCivjgqbjgqjjg4As44K344Oz44K/44Ot44KmDQor44Ok44Oe44Oi44OILOODpOOCueODpuOCrQ0KK+ODpOODnuOCuuODnyzjg5Ljg63jgrcNCivjg6jjgrfjg4As44Kz44Km44K4DQor44Ki44K144Kr44KkLOODiuODq+ODiOOCtw0KK+ODleOCr+OCvyzjgqvjgrrjg58NCivjgqvjg6/jgrXjgq0s44Kr44K644KqDQor44OS44Ot44K7LOODqOOCt+OCq+OCug0KK+OCq+OCteODj+ODqSzjgrvjg4TjgrMNCivjgqrjgrbjg68s44Kx44Kk44Kk44OBDQor44Kr44OI44KmLOOCseOCpOOCpOODgQ0KK+ODiuOCq+ODoOODqSzjgrvjgqTjgqjjgqQNCivjgr/jgrDjg4Es44OS44Ot44OgDQor44Ki44OA44OBLOODquODp+OCpuOCu+OCpA0KK+OCouOCq+OCtyzjg6jjgrfjg5LjgrUNCivjgqLjgq3jg6Tjg54s44Ko44OfDQor44Ki44Kq44KtLOOCt+ODp+OCpuOCuA0KK+OCouODqeOCrSzjg4jjg6Ljgr/jgrENCivjgqLjgrXjg5Is44OV44Of44OO44OqDQor44Ki44K144OOLOODiOOCt+ODkuOCsw0KK+OCouODr+ODjizjgqrjgrXjg6ANCivjgqLjg6/jg44s44K444Ol44Oz44K444Ot44KmDQor44OJ44Km44K4LOODiuOCquODpuOCrQ0KK+ODieOCpuOCvuODjizjgrvjgqTjg6QNCivjg5Xjg4Hjgqvjg58s44Kr44OE44Ot44KmDQor44OV44K444KkLOOCseODs+OCuA0KK+ODleOCuOOCpCzjgrPjgqbjgqTjg4ENCivjg5XjgrjjgqTjgqgs44OO44OW44OkDQor44Kz44OvLOOCt+ODpeODs+OCpOODgQ0KK+ODleOCuOOCt+ODrSzjg57jgrXjgqoNCivjg5Xjgrjjgr8s44Oo44Km44KzDQor44OV44K444K/LOODkuODreODpuOCrQ0KK+ODleOCuOODr+ODqSzjgrPjgqbjgrgNCivjg5Xjgq/jg4As44OK44Kq44Om44KtDQor44OV44Kv44OALOOCv+ODhOOCqg0KK+ODleOCr+ODgCzjgrHjg7MNCivjgrXjgqTjg4jjgqYs44Kq44K144OfDQor44OV44Kv44Ok44OeLOOCuOODpeODs+OCpOODgQ0KK+ODleODq+ODj+OCvyzjgrPjgqbjgrgNCivjgrTjg4jjgqYs44OS44Ot44Kr44K6DQor44OP44Og44OtLOOCquOCteODoA0KK+ODj+OCuyzjgr/jgq/jg5LjgrUNCivjg4/jgrfjg6Ljg4gs44Oe44K144OS44OtDQor44OP44K344Oi44OILOOCuOODpeODs+OCpOODgQ0KK+ODj+ODg+ODiOODqizjgrjjg6Xjg7MNCivjg4/jg6Tjgrcs44Kr44OE44OS44KzDQor44OP44Ok44K3LOODiOOCt+OCouOCrQ0KK+ODj+ODpOOCtyzjg57jgrXjgqvjgroNCivjg4/jg6Tjgrcs44K344Ky44Of44OEDQor44OP44Ok44K3LOODoeOCpA0KK+ODj+ODpOOCtyzjg57jgrXjg4TjgrANCivjg5Ljg5Ms44OS44Ot44Om44KtDQor44OS44Kw44OeLOOCv+OCr+ODpA0KK+ODkuODqeOCpCzjg5Ljg63jgr/jgqsNCivjg5Ljg6njgqvjg68s44OE44ON44OI44OiDQor44OS44Op44OOLOOCq+OCuuODkuOCsw0KK+ODkuODreODiuOCqyzjg5/jg47jg6sNCivjg5vjg6rjgrDjg4Es44OO44OW44Ki44KtDQor44Ob44K144KrLOOCteODiOOCtw0KK+ODm+OCveODpCzjgrvjgqTjgrgNCivjgqTjg4HjgqQs44K344Ky44Om44KtDQor44Kk44OB44Kr44OvLOODouODiOODkuODrQ0KK+OCpOOCsOODnizjgqjjgqTjgqTjg4ENCivjgqTjgqTjgrXjgqss44Oe44Om44OfDQor44Kk44Kr44OvLOOCpOODr+OCqg0KK+OCpOOCseODgCzjgqLjg6bjgrMNCivjgqTjgrHjg4As44Kk44Kv44K444Ot44KmDQor44Kk44Kx44Ks44OfLOODnuODouODqw0KK+OCpOODjuOCpuOCqCzjgrfjg63jgqYNCivjgqTjg47jgqbjgqgs44OS44K144Ki44KtDQor44Kz44OQ44Ok44K3LOODiOOCr+OCuOODreOCpg0KK+OCpOOCt+ODkOOCtyzjg6Tjgrnjg5LjgrUNCivjgqTjgrfjg4As44Oo44K344Om44KtDQor44Kk44K344Oe44OrLOODn+ODrw0KK+OCpOOCt+OCuuOCqyzjg4jjgrfjg6bjgq0NCivjgqTjgr0s44OS44OH44Ki44KtDQor44Kk44OI44KmLOODkuODh+OCouOCrQ0KK+OCpOODiOOCpizjgqLjgq3jg5LjgrMNCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOOCteODr+OCsw0KK+OCpOODiOOCpizjg4bjg4Tjg6QNCivjgqTjg4jjgqYs44Oo44K344Of44ONDQor44Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCpOODr+OCvyzjgrXjg4jjgrcNCivjgqvjg6rjg6Qs44K744Kk44Kk44OBDQor44Ks44K144KtLOOCt+OCsuOCqg0KK+OCq+OCrCzjgqvjgrrjg5LjgrUNCivjgqvjgrLjg6Tjg54s44OE44Oo44K3DQor44Kr44K444OK44OfLOOCv+OCq+ODpuOCrQ0KK+OCq+ODn+ODkuODqeOCvyzjg5Ljg63jg6bjgq0NCivjgqvjg4rjg6Ljg6os44K/44OE44OkDQor44Kr44ON44KzLOODhuODq+OCqg0KK+OCq+ODjeOCsyzjg6jjgrfjgqoNCivjgqvjg4vjg68s44Ki44Kt44OpDQor44Kr44K144OeLOODjuODquODnuOCtQ0KK+OCq+OCuyzjg5Ljg63jg6bjgq0NCivjgqvjgrfjg6Djg6ks44OV44Of44OI44K3DQor44Kr44K/44Kq44KrLOOCseODs+OCuA0KK+OCq+ODiOOCpizjgrjjg6Xjg7PjgrMNCivjgqvjg4jjgqYs44Kx44Kk44K4DQor44Kr44OI44KmLOOCs+OCpuOCvw0KK+OCq+ODiOOCpizjgqLjgq3jg5LjgrMNCivjgqvjg4jjgqYs44OO44OW44OS44OHDQor44Kr44Ov44OBLOOCseOCpOOCsw0KK+OCq+ODr+OCsOODgSzjg4HjgrXjg4gNCivjgqvjg6/jg44s44Of44OE44KqDQor44Kr44Ov44K344OeLOODhuODhOOCuA0KK+OCreOCr+ODgSzjg4jjg6LjgqLjgq0NCivjgq3jg6Ljg4gs44Oo44K344OS44OtDQor44Kt44Og44OpLOOCq+ODhOODpA0KK+OCreODjuOCt+OCvyzjg4bjg4QNCivjgq3jgrfjg4/jg6ks44OE44Kw44Ki44KtDQor44Kt44K344Kr44OvLOODkuODh+ODpuOCrQ0KK+OCreOCvyzjg6rjgqgNCivjgq3jgr/jgqzjg68s44Of44OB44OP44OrDQor44Kt44K/44OOLOODquOCqOOCsw0KK+OCreOCv+ODpOODnizjgrvjgqTjgrMNCivjgq3jg6jjgqrjgqss44Oe44K144OoDQor44Kt44Oo44K7LOODhOOCq+OCtQ0KK+OCs+ODkOODqizjgr/jg4bjgq0NCivjgrPjg5Djg6Tjgrcs44Kr44Kq44OrDQor44Kz44OQ44Ok44K3LOOCs+OCpuOCv+ODreOCpg0KK+OCs+ODnOODqizjgr/jg57jg58NCivjgrPjgqTjg68s44K/44Kx44K3DQor44Kz44K444OeLOODleODn+ODqA0KK+ODj+OCt+ODouODiCzjgrPjgqbjgqTjg4ENCivjgrPjg5/jg6Tjg54s44K/44Kr44OS44OtDQor44Kz44Oz44OJLOODiOODouODpuOCrQ0KK+OCs+ODs+ODiSzjg47jg6rjgrMNCivjgrPjg7Pjg4ks44Oo44Km44K544KxDQor44Kz44K344Kr44OvLOOCouOCreODleODnw0KK+OCs+ODhuOCrOODryzjgrHjg7PjgrgNCivjgrPjg68s44OO44OW44Om44KtDQor44Kv44Oc44K/LOOCt+ODp+OCpuOCpOODgQ0KK+OCr+ODnOOCvyzjg5Ljg63jg6bjgq0NCivjgq/jg4njgqYs44OP44Ok44OIDQor44Kv44KsLOODqOOCt+ODkuODrQ0KK+ODouODqizjg6bjgq3jg5Ljg60NCivjgq/jg4vjgr/jgrEs44OP44K444OhDQor44Kv44Op44Kr44KxLOODkuODreOCq+OCug0KK+OCr+ODqizjg57jgrXjg5Ljg4gNCivjgq/jgrXjg5Xjgqss44K344OO44OWDQor44Kv44Ov44OQ44OpLOODiOOCquODqw0KK+ODnuODgeODgCzjg5Ljg63jg6bjgq0NCivjg57jg6vjg6Tjg54s44Om44KtDQor44K/44Kx44Km44OBLOOCouOCreOCqg0KK+ODnuODhOODkCzjgqLjg4TjgrcNCivjg57jg4Tjg5Djg6ks44K/44Kx44OtDQor44Oe44OE44OA44Kk44OpLOODnuOCrQ0KK+ODnuODhOODouODiCzjg6jjg6rjgrMNCivjg57jg4Tjg6Ljg4gs44Oo44K344Ki44KtDQor44Oe44OE44OK44KsLOODn+ODmw0KK+ODnuODhOOCqizjg57jgrXjg6QNCivjg57jg4Tjgqos44OO44Oq44Om44KtDQor44Oe44OE44KqLOOCt+ODs+ODpA0KK+ODn+OCr+ODiyzjg6TjgrnjgrcNCivjg5/jg4rjgqzjg68s44Ov44K/44OrDQor44Of44OK44Ks44OvLOOCt+OCsuODqw0KK+ODn+ODjuODhizjg4jjg6LjgqLjgq0NCivjg5/jgr8s44Oo44K344Kv44OLDQor44Of44OI44OhLOOCv+OCseOCtw0KK+ODn+ODhOODpOODnizjgrfjg6XjgqbjgqTjg4ENCivjg5/jg6Tjg4Es44K/44Kr44OV44OfDQor44Of44Ok44K4LOOCs+OCpuOCuA0KK+ODn+ODpOOCuOODnizjg5/jg4TjgqoNCivjg5/jg6Tjgr8s44Kx44Kk44KzDQor44Of44Ok44K244KtLOOCreODqOOCouOCrQ0KK+ODn+ODpOOCtuOCrSzjg57jgrPjg4gNCivjg5/jg6Tjgrbjg4gs44Oo44K344OK44OqDQor44Of44Ok44K244OvLOODkuODreOCrQ0KK+ODn+OCvuOCsOODgSzjg6Ljg4jjgrMNCivjg5/jgrrjgqQs44Oe44K144Oo44K3DQor44Oi44Oz44OOLOOCqOOCpOOCuA0KK+ODouODqizjg5/jg4Tjg5Ljg60NCivjg6Ljg6os44OO44Oq44K544OfDQor44Oi44Oq44K/LOOCr+ODq+ODnw0KK+ODouODquOCvyzjg4jjgrfjgqLjgq0NCivjg6Ljg6rjg6Tjg54s44Oe44Oq44KzDQor44Og44Op44Kr44OfLOODquODpeOCpuOCpOODgQ0KK+ODoOODqeOCq+ODnyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg6Djg6njgqvjg58s44Of44OO44OrDQor44Og44Op44Oe44OELOOCt+ODs+OCueOCsQ0KK+ODoOODreOCvuODjizjg5Ljg63jgqLjgq0NCivjg4rjgqzjg5bjg4Es44OS44Ot44K3DQor44OK44Ks44OOLOODn+ODhOODqw0KK+ODiuOCrOOCuyzjg6rjg6XjgqbjgqTjg4ENCivjg4rjgqzjgr/jg4ss44K344ObDQor44OK44K044OkLOODkuODreOCouOCrQ0KK+ODiuOCq+OCrOODryzjgqvjgqrjg6oNCivjg4rjgqvjg5/jg4Es44K344On44KmDQor44OK44Kr44Og44OpLOOCuOODpeODs+OCpOODgeODrQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjg47jg6oNCivjg4rjgqvjg44s44OS44Ot44K3DQor44OK44Kr44K344OeLOODkuODreODjuODqg0KK+ODi+OCt+ODgCzjgrjjg6Xjg7MNCivjg4vjgrfjg4/jg6ks44Ki44OE44OIDQor44OL44K344Og44OpLOOCt+ODs+ODpA0KK+ODi+OCt+OCquOCqyzjgqvjgrrjg5LjgrMNCivjg47jgrDjg4Es44OO44Oc44OrDQor44OO44K7LOODnuOCteOCuuODnw0KK+OCquODkOOCvyzjg6bjgqbjgrgNCivjgqrjg4HjgqLjgqQs44Kk44Kv44KzDQor44Kq44OB44Ki44KkLOODkuODh+ODkuOCsw0KK+OCquOCrOODryzjgr/jgqvjgrcNCivjgqrjgqzjg68s44Oe44K144OIDQor44Kq44Ks44OvLOOCv+ODn+ODpA0KK+OCquOCrOODryzjgqvjg4Tjg4jjgrcNCivjgqrjgq7jg44s44Oe44Om44OfDQor44Kq44Kw44OpLOOCv+OCq+OCouOCrQ0KK+OCs+ODs+ODiSzjg6Tjgrnjg6bjgq0NCivjgqrjgqrjgqgs44Oe44K144Of44OBDQor44Kq44Kq44Ks44KtLOOCuOODreOCpg0KK+OCquOCquODi+OCtyzjg47jg6rjgqLjgq0NCivjgqrjgqrjg44s44Oe44K144Of44OBDQor44Kq44Kq44K/LOODkuODreOCtw0KK+OCquOCt+ODrSzjgqvjgrrjgrfjgrINCivjgqrjgqrjgr8s44K/44Kr44K3DQor44Kq44Kq44K/44K344OtLOODkuODh+OCrQ0KK+OCquOCquODhCzjg57jgrXjgqvjgroNCivjgqrjgqrjg4Qs44Oh44Kw44OfDQor44Kq44Kq44Ok44KuLOOCqOOCpOOCuA0KK+OCquOCquODpOODnizjg4Hjg4/jg6sNCivjgqrjgqvjg6Ljg4gs44OS44Ot44OW44OfDQor44Kq44Kr44Ok44OeLOODn+ODhOODqOODqg0KK+OCquOCseOCv+ODiyzjgr/jg4TjgrMNCivjgqrjgq/jg6Tjg54s44Kv44Of44KzDQor44Kq44OO44OH44OpLOODkuODh+ODiOOCtw0KK+OCquOCtuODryzjg5/jg47jg6sNCivjgrXjgqTjg4jjgqYs44Kr44K644OS44OHDQor44K144Kk44OI44KmLOODhuODq+OCqg0KK+OCteOCpOODiOOCpizjgr/jgqvjg47jg5YNCivjgrXjgqvjgrDjg4Es44OS44Ot44Kr44K6DQor44K144Kr44OK44KrLOODouODiOODoA0KK+OCteOCq+ODi+ODryzjg6jjg6rjgrMNCivjgrXjgqvjgqbjg4Es44OI44K344K/44KrDQor44K144Kv44Op44KkLOODhOODiOODoA0KK+OCteOCr+ODqeOCpCzjg57jgrXjg6bjgq0NCivjgrXjg44s44K/44Kv44OkDQor44K144K144KtLOODnuOCteODnw0KK+OCteOCteOCrSzjgqjjg6oNCivjgrXjgrXjgq0s44Oq44KoDQor44K144K144OeLOODnuOCteOCq+OCug0KK+OCteODiOOCpizjgr/jgrHjg6QNCivjgrXjg4jjgqYs44OS44Ot44Om44KtDQor44K144OI44KmLOOCv+OCq+OCtw0KK+OCteODiOOCpizjg5/jg68NCivjg4vjgrfjg57jgr8s44OG44OE44KqDQor44K144Ov44OALOODnuOCteODkuOCtQ0KK+OCu+ODs+ODkCzjg6bjgqbjgqTjg4ENCivjgrvjg4gs44Oo44K344OO44OqDQor44K344OW44OkLOODpuOCreOCqg0KK+OCt+OCpCzjg5/jgrXjgrMNCivjgrfjg57jg4As44Kz44Km44OY44KkDQor44K344Oe44OALOODn+OCqA0KK+OCquOCq+ODouODiCzjg57jgrXjg4jjgrcNCivjgrfjg4rjgqzjg68s44K144OB44KoDQor44K344Oz44Kr44OvLOODkuOCteODpA0KK+OCt+ODs+OCreODpeOCpizjg57jgrXjg6bjgq0NCivjgrfjg47jg4As44OG44Or44KoDQor44K344OO44OP44OpLOOCu+OCpOOCpOODgQ0KK+OCouOCteOCq+ODryzjgqvjgqrjg6sNCivjgrfjgqrjg4/jg6ks44Oe44K144OIDQor44K344Ot44K/LOOCq+ODhOODkuODrQ0KK+OCueOCruODouODiCzjgqvjgrrjg5Ljg4cNCivjgrnjgq7jg6Tjg54s44Kt44Oo44K/44KrDQor44K544Kw44OBLOODjuODluOCsw0KK+ODouODreODiOODnyzjg4/jg6vjgrMNCivjgrnjgrrjgq0s44Oe44K144OV44OfDQor44K/44Kw44OBLOOCouOCreOCqg0KK+OCv+OCsOODgSzjg6bjgqbjgrgNCivjgr/jg4/jg6ks44OS44Ot44Om44KtDQor44K/44Kr44KuLOODqOOCt+OCqg0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjgqoNCivjgr/jgqvjgqQs44Kx44Oz44K4DQor44K/44Kr44Ok44OeLOOCq+OCuuOCsw0KK+OCv+OCsSzjg4rjgqrjgq0NCivjgr/jgrHjg5Djg6Tjgrcs44Oq44Ol44Km44K4DQor44K/44Kx44Kr44OvLOOCuOODpeODs+OCsw0KK+OCv+OCseOCpuODgSzjgqvjg5vjg6sNCivjg6/jgr/jg4rjg5ks44Kz44Km44K4DQor44K/44Kx44Km44OBLOODkuODh+OCrQ0KK+OCv+ODn+ODpCzjg57jgrXjgqvjgroNCivjgr/jg6Djg6ks44OS44Ot44K3DQor44K/44OK44OZLOODnuOCteODkuODrQ0KK+OCv+ODiuOCqyzjgrHjgqTjgrMNCivjgr/jg4rjgqss44OO44OW44KzDQor44K/44OK44KrLOODhOODqOOCtw0KK+OCv+ODi+OCsOODgSzjgqLjg4TjgrcNCivjgr/jg4vjgrDjg4Es44Kr44K644OS44OtDQor44K/44OL44Og44OpLOOCv+ODhOOCqg0KK+OCv+ODjuOCpuOCqCzjgqLjgq3jg5Ljg60NCivjgr/jg6vjgrXjg68s44Ki44Kt44KzDQor44K/44K344OtLOODiOOCt+ODj+ODqw0KK+ODhuODqeODgCzjg6bjgq3jg5LjgrMNCivjg4jjgqbjgqws44OS44OH44Of44ONDQor44OI44Ks44K3LOOCt+OCsuOCqg0KK+ODiOOCpuOCtOOCpizjgrfjg7Pjg6QNCivjg4jjgq/jg4rjgqws44Ki44Ok44KzDQor44OI44Oi44OOLOOCq+OCuuODnw0KK+ODiOODqOODgCzjg6jjgqbjgrjjg63jgqYNCivjg4Tjg4Hjg6Qs44OS44Ot44Ki44KtDQor44OE44Kr44OP44OpLOODjuODluODkuODrQ0KK+OCpuODqeOCteOCrSzjg6bjgqbjgrgNCivjg6/jg4As44OI44Oi44Ok44K5DQor44Ov44OALOODrOOCpOOCsw0KK+ODr+OCv+ODiuODmSzjg57jgrXjg4jjgrcNCivjg6/jgr/jg4rjg5ks44OV44Of44KqDQor44Ok44Ku44OM44OeLOOCseOCpOOCsw0KK+ODpOODnuODgCzjg4jjgrfjgqLjgq0NCivjg6Tjg57jg4As44OS44K144K3DQor44Ok44Oe44OALOOCseOCpOOCuA0KK+ODpOODnuODouODiCzjg57jgrXjgqLjgq0NCivjg6Tjg57jg6Ljg4gs44OS44OH44OIDQor44Ok44Oe44Oi44OILOOCv+ODhOODpA0KK+ODpOODnuODouODiCzjg6bjgq3jg5Ljg60NCivjg6Tjg57jg4rjgqss44OB44OS44OtDQor44Ok44Oe44OK44KrLOOCq+OCquODqw0KK+ODpOODnuOCt+OCvyzjg57jgrXjg5Ljg60NCivjg5LjgrDjg4Es44K444Ol44Oz44K4DQor44Ok44Oe44K244KtLOODleODn+ODjg0KK+ODpOODiuOCrizjg5Ljg63jgrcNCivjg6Tjgrnjg4As44OO44OW44Om44KtDQor44Ok44K544KoLOODiOOCt+ODpA0KK+ODqOOCs+OCqCzjg47jg5bjgqLjgq0NCivjg6jjgrPjg6Tjg54s44Oq44Ko44KzDQor44Oo44ON44OP44OpLOOCs+OCpuOCpOODgQ0KK+ODqOODjeODn+ODhCzjg57jgrPjg4gNCivjg6jjg6rjg57jg4Qs44OI44Oi44KzDQor44Oo44K344OALOODleODn+ODkuODrQ0KK+ODqOOCt+ODjizjg5/jg4Tjg5Ljg60NCivjg6jjgrfjgr/jgq0s44Kq44K144OgDQor44Om44Kr44OvLOOCuOODpeODs+ODpA0KK+ODpuODqizjg4jjg6LjgqoNCivjg6Ljg6os44K/44Kr44OS44K1DQor44K144K144KtLOOCq+ODhOODkuOCsw0KK+OCt+ODqeODj+ODnizjgr/jgrHjg5Ljg60NCivjg4bjg7Pjg5Hjgq8s44Om44Km44Kk44OB44OtDQor44Km44OB44OALOODiuOCquODpA0KK+ODpOODnuOCpuODqSzjg4jjgqrjg6sNCivjg57jg4TjgrDjg54s44OV44Of44KzDQor44Ki44OZLOODkuODreODpuOCrQ0KK+OCouODmSzjgqvjg4Tjg58NCivjgqLjg5ks44Kr44K644KqDQor44Ki44OZLOODiuOCquOCouOCrQ0KK+OCouODgOODgSzjg4rjg4rjgqoNCivjgqLjgqTjg4/jg6ks44OE44Oo44K3DQor44Ki44K444OeLOODpOOCueOCouOCrQ0KK+OCouOCq+OCteOCqyzjg4jjgqrjg6sNCivjgqLjgq3jg6Ljg4gs44Kz44Km44K+44KmDQor44Ki44Kt44Ok44OeLOOCv+OCq+OCtw0KK+OCouOCreODpOODnizjgr/jg4Tjg6QNCivjgqLjgq/jg40s44OS44Ot44K3DQor44Ki44Oe44OOLOODnuODiuODlg0KK+OCouODnuODjizjg4HjgqLjgq0NCivjgqLjg6Hjg5/jg6Qs44Oe44K144OE44KwDQor44Ki44Oz44OJ44KmLOODn+OCrQ0KK+OCouODs+ODieOCpizjg5/jg68NCivjgqLjg7Pjg4njgqYs44Kr44K644KqDQor44Ki44Oz44K444KtLOODpuOCpuOCsw0KK+OCouODs+ODmuOCpOOCuCzjgrfjg6Xjg7PjgqTjg4ENCivjgqLjgqrjgq0s44Oo44K344KzDQor44Ki44Kq44KtLOOCt+OCsuODj+ODqw0KK+OCouOCquOCrSzjg6bjgq3jgrMNCivjgqLjgqrjgq0s44K444Ol44OzDQor44Ki44Kq44KtLOODiOOCt+OCouOCrQ0KK+ODj+ODqeOCt+ODnizjg6rjgqsNCivjgqLjgqrjgq0s44OE44OI44OgDQor44Ki44Kq44KtLOODiuOCquODkuOCtQ0KK+OCouOCquODpOOCrizjgr/jgqvjg6bjgq0NCivjgqLjgqrjg6Tjg54s44Oo44Km44Kk44OBDQor44Ki44Kq44Ok44OeLOOCseOCpOOCueOCsQ0KK+OCouODqeOCpCzjgrPjgqbjgqTjg4ENCivjgqLjg6njgq0s44Oe44Kz44OIDQor44Ki44Op44KtLOOCq+ODhOOCuA0KK+OCouODqeOCvyzjg5/jgq0NCivjgqLjg6njg6Qs44K344Oz44Kk44OBDQor44Kz44OQ44Ok44Kr44OvLOODpOOCueODkuODrQ0KK+OCouODquOCvyzjg4rjg6vjg5Ljg4gNCivjgqLjgrXjg5As44Oo44K344Om44KtDQor44Ki44K144KrLOODiOODouODgeOCqw0KK+OCouOCteOCr+ODqSzjgr/jg4TjgqoNCivjgqLjgrXjg44s44K344Ol44Km44K4DQor44Ki44K144OOLOODiOODouOCouOCrQ0KK+OCouOCt+ODmSzjg57jgrXjg5LjgrMNCivjgqLjg6/jg5/jg6Qs44OS44Ot44Om44KtDQor44Ki44K244OfLOODhOODiOODoA0KK+OCouOCvOODpOODiuOCrizjg5Ljg63jg58NCivjgqLjgrrjg54s44Oq44KoDQor44Ki44K644OeLOOCv+OCq+ODpuOCrQ0KK+OCouOCuuODnizjg4rjgqrjg6bjgq0NCivjg5Djg5As44Oo44K344Kr44K6DQor44OQ44OQLOOCq+ODhOODpuOCrQ0KK+ODkOODkCzjg4DjgqTjgrnjgrENCivjg5Djg4rjgqss44Kr44K644OkDQor44K144K/44KxLOOCseOCpOOCsw0KK+ODgeODkCzjg6Ljg4jjg4/jg6sNCivjg4Hjgq7jg6ks44OO44OW44OS44KzDQor44OB44OP44OpLOOCv+OCq+ODleODnw0KK+ODgeOCq+OCpCzjgqLjg4TjgrcNCivjg4Hjg6Xjgqbjg54s44K/44Kx44K3DQor44OA44KkLOODnuOCteODkuODrQ0KK+ODgOOCpOOCqizjg5Ljg4fjgq0NCivjg4Djg4Ys44OS44Ot44K3DQor44OH44Kw44OBLOOCs+OCpuOCuA0KK+ODh+ODryzjgqjjg5/jgrMNCivjg4njgqQs44K/44Kk44K+44KmDQor44Ko44OT44K144OvLOODkuODreODn+ODhA0KK+ODiuOCq+ODoOODqSzjgr/jgqvjgrMNCivjgqjjgqTjg6Ljg6os44OP44Or44OfDQor44Ko44Oz44OJLOODiuOCquOCrQ0KK+OCqOODs+ODiSzjgr/jgqvjgqoNCivjgqjjg47jg6Ljg4gs44Kx44Kk44KzDQor44OV44K444KkLOODkuODreOCq+OCug0KK+ODleOCuOOCpCzjgrHjg7PjgqTjg4Hjg60NCivjg5XjgrjjgqQs44K/44OE44OO44OqDQor44OV44K444KkLOODn+ODhOODqOOCtw0KK+ODleOCuOOCpCzjg4jjgrfjgqLjgq0NCivjg5Xjgrjjgqvjg68s44K344OO44OWDQor44OV44K444Oi44OqLOOCouOCreOCsw0KK+OCouOCquOCrSzjgqLjgq3jg6kNCivjg5Xjgrjjg6Ljg4gs44OK44Kq44OkDQor44OV44K444Kq44KrLOODhuODhOODreOCpg0KK+ODleOCuOOCvyzjg6Tjgrnjg5LjgrUNCivjg5Xjgrjjgr8s44Og44OE44KqDQor44OV44Kr44KqLOOCt+ODs+OCpOODgQ0KK+ODleOCr+ODgCzjgqvjg4Tjg5LjgrMNCivjg5Xjgq/jg4As44OS44Ot44K3DQor44OV44Kv44KkLOODkuODh+OCqg0KK+ODleOCr+OCpCzjgrPjgqbjgrgNCivjg5Xjgq/jg6Ljg4gs44OS44OH44K/44KrDQor44OV44Kv44K344OeLOODkuODh+ODjuODlg0KK+ODleOCr+OCt+ODnizjg47jg5bjgrMNCivjg5Ljg44s44K144OBDQor44OV44Kv44K244OvLOOCreODp+OCpuOCsw0KK+ODleOCr+OCtuODryzjg5/jgq3jgrMNCivjg5Xjg4rjg4As44Om44Km44KzDQor44OV44Or44OA44OGLOOCseOCpOOCsw0KK+ODleODq+ODpCzjgrHjgqTjgrnjgrENCivjg5Xjgr/jg6Djg6ks44Of44Kt44OkDQor44OK44Kr44Og44OpLOODouODiOODkuOCtQ0KK+OCtOODiOOCpizjgrfjgrLjgq0NCivjgrTjg4jjgqYs44Kr44K644OkDQor44K044OI44KmLOOCq+OCpOODgeODreOCpg0KK+OCtOODiOOCpizjg6jjgqbjgrMNCivjg4/jg5As44Oo44Km44KzDQor44OP44OB44Ok44OeLOODnuOCteODnw0KK+ODj+OCruODr+ODqSzjgrfjg7MNCivjg4/jg57jg5ks44K/44Kr44Om44KtDQor44OP44Oe44OALOODqOOCt+ODnw0KK+ODj+ODnuODgCzjgr/jgqvjg5Ljg4cNCivjg57jgqjjgqrjgqss44OS44OI44K3DQor44OP44OK44OfLOODpOOCueODkuODhw0KK+ODj+ODiuOCquOCqyzjgqLjgq3jgrMNCivjgrvjgrbjgqQs44OK44Kq44KtDQor44OP44OpLOODquODp+OCpuOCuA0KK+OCteODiOOCpizjgrvjgqTjgrQNCivjg4/jg6ks44Ki44OE44K3DQor44OP44Op44OALOODiuODhOODnw0KK+ODj+ODqeODgCzjgqjjgqTjgqTjg4ENCivjg4/jg6njg4As44Kr44K644OS44KzDQor44OP44Op44OALOODnuOCteOCouOCrQ0KK+ODj+ODqeODgCzjg5/jg4Tjg47jg6oNCivjg4/jg6rjg54s44OK44Kq44KtDQor44Ob44Oz44OeLOODjuODluOCouOCrQ0KK+ODj+ODq+ODpOODnizjgrfjgrLjg6sNCivjg4/jgrss44Oo44Km44Kk44OBDQor44OP44K744Ks44OvLOOCv+ODhOOCqg0KK+ODj+OCu+OCrOODryzjg6Tjg6jjgqQNCivjg4/jgrvjgqzjg68s44Kx44Oz44K/44Ot44KmDQor44OP44K744Ks44OvLOOCouOCreODkuOCsw0KK+ODj+OCt+OCsOODgSzjg5Ljg4jjgrcNCivjg4/jgrfjg6Ljg4gs44Kr44OE44KzDQor44OP44K344Oi44OILOOCq+OCuuODpA0KK+ODj+OCt+OCuuODoSzjgrPjgqbjgr/jg63jgqYNCivjg4/jgrfjgrrjg6Es44Of44OvDQor44OP44K344K644OhLOOCt+ODpeODs+OCueOCsQ0KK+ODj+OCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4/jgr/jg44s44OB44Kr44OpDQor44OP44K/44OOLOOCq+OCuuODiOODog0KK+ODj+ODiOODqizjg4rjgqrjgq0NCivjg4/jg4Pjg4jjg6os44K/44Kx44K3DQor44OP44OD44OI44OqLOODqOOCpuOCpOODgQ0KK+ODj+ODg+ODiOODqizjgqLjgq3jg5LjgrMNCivjg4/jg4Pjg4jjg6os44Om44KtDQor44OP44OD44OI44OqLOOCteODiOOCtw0KK+ODj+ODg+ODiOODqizjg57jgrXjgq0NCivjg4/jg4Pjg4jjg6os44Ov44K/44OrDQor44OP44Ok44Kr44OvLOOCseOCpOOCsw0KK+ODj+ODpOOCq+ODryzjg4rjgqrjg58NCivjg4/jg6Tjg58s44K544Of44OS44OIDQor44OP44Ok44K3LOODkuODh+OCouOCrQ0KK+ODj+ODpOOCtyzjg6bjg5/jgrMNCivjg4/jg6Tjgrcs44Oe44K144K/44KrDQor44OP44Ok44K3LOODnuODpuODnw0KK+ODj+ODpOOCtyzjg6Tjgrnjg5Ljg60NCivjgrXjgrXjgr/jg4ss44Ki44Kt44OpDQor44OP44Ok44K3LOODnuOCteODjuODqg0KK+ODj+OCtuODnizjgrvjgqTjgqTjg4ENCivjg5jjg7Pjg58s44Kr44OK44KzDQor44OS44OTLOODiOODouODnw0KK+ODkuODgOOCqyzjg4jjgqbjgrMNCivjg5Ljg4Djgqss44Om44Km44KzDQor44OS44OA44KrLOOCv+ODreOCpg0KK+ODkuOCqOODgCzjg5/jg4HjgqvjgroNCivjg5Ljgqzjgq0s44K344On44Km44K4DQor44OS44Ks44K3LOODqOOCt+ODkuOCtQ0KK+ODkuOCpOODieODoSzjg5Ljg63jg5/jg4ENCivjg5Ljgrjjgq/jg60s44K744Kk44Kk44OBDQor44OV44Kv44KkLOOCpOOCteOCqg0KK+ODkuODnizjg6jjgrfjgq0NCivjg5Ljgqrjgq0s44OI44Km44Oh44KkDQor44OS44Op44KkLOODnuODqg0KK+ODn+OCrSzjg57jgrXjg6bjgq0NCivjg5Ljg6njg44s44OV44Kt44OoDQor44OS44Op44OOLOOCq+OCuuODkuODrQ0KK+ODkuODqeOCvyzjgrfjg63jgqYNCivjg5Ljg6njg4Tjgqss44OV44Of44Kr44K6DQor44Ob44OALOODkuODreOCrQ0KK+ODkuODqeODpOODnizjg4rjgqrjgrMNCivjg5Ljg63jg5ks44Kt44Kv44OfDQor44OS44Ot44KkLOODnuOCteODkuODrQ0KK+ODkuODreOCteODryzjg57jgrXjg5Ljg60NCivjg5Ljg63jgrXjg68s44OK44Kq44KzDQor44OS44Ot44K544KoLOOCuOODpeODs+OCsw0KK+ODkuODreOCvyzjgqrjgrXjg6ANCivjg4/jg6Tjg54s44Om44Km44KzDQor44OS44Ot44Ov44K/44OqLOOCteODpuODqg0KK+ODkuOCteODouODiCzjg5/jgqvjgrMNCivjg5LjgrXjg44s44Oo44K344Ki44KtDQor44OS44K144Om44KtLOODpuOCq+ODqg0KK+ODkuOCt+ODgCzjg5Ljg63jgrcNCivjg5Ljgrfjgr/jg4ss44Ok44K544K3DQor44Ov44OALOODleODn+OCqA0KK+ODkuODpOODnizjg47jg5bjg5LjgrMNCivjgqLjg6rjgq/jg6ks44Om44K/44KrDQor44Ob44Oz44OALOODn+ODjuODqw0KK+ODm+ODs+ODgCzjgrHjgqTjgrnjgrENCivjg5vjg7PjgrTjgqYs44Oe44K144OIDQor44Ob44Oz44OeLOODpuOCpuOCpOODgQ0KK+ODm+ODs+ODnizjgqLjgq3jg47jg5YNCivjg57jg4Tjg6Ljg4gs44Kx44Oz44K/DQor44Ob44OqLOODnuODiuODlg0KK+ODm+ODqizjgqLjgq3jg4gNCivjg5vjg6rjg5ks44OI44K344Om44KtDQor44Ob44Oq44KoLOOCouOCreODjuODqg0KK+ODm+ODquOCqCzjg57jgrXjg5LjgrMNCivjg5vjg6rjgqgs44K/44OA44K3DQor44Ob44Oq44Km44OBLOODqOOCt+ODleODnw0KK+ODm+OCt+ODkCzjg4jjgqrjg6sNCivjg5vjgrfjgqvjg68s44OS44OH44KqDQor44Kr44OI44KmLOODiuOCquOCrQ0KK+ODm+OCt+ODiizjgrPjgqbjgqTjg4ENCivjg5vjg6os44OO44Oq44Om44KtDQor44Ob44K344OOLOOCv+OCq+OCtw0KK+ODm+OCveODgCzjg47jg5bjgqoNCivjg5vjg4Pjgr8s44K144Kq44OqDQor44Ob44OB44OJLOOCv+OCq+ODpA0KK+OCpOODluOCqyzjg6jjgrfjg4bjg6sNCivjgqTjg4Hjgqvjg68s44OS44OI44K3DQor44Kk44OB44Kr44OvLOODnuODquOCsw0KK+OCpOODgeODnuOCuSzjg4Tjg4jjg6ANCivjgqTjg4Hjg47jgrss44Kr44OE44OfDQor44Kk44OHLOODnuOCteODkuOCsw0KK+OCpOOCrOODqeOCtyzjg57jgrXjg4gNCivjgqTjgqzjgr8s44Ko44Kk44Kk44OB44Ot44KmDQor44Kk44KkLOODpuODquOCsw0KK+OCpOOCpOODgCzjg57jgrXjg6jjgrcNCivjgqTjgqTjg4As44Oe44K144Om44KtDQor44Kk44Kk44OALOOCt+ODs+OCuA0KK+OCpOOCpOODjizjgqTjg4Hjg63jgqYNCivjgqTjgqTjg6jjg6os44Of44OB44OP44OrDQor44Kk44Kk44K644KrLOODnuOCs+ODiA0KK+OCpOOCq+ODq+OCrizjgqvjg4Tjg6QNCivjgqTjgqvjg68s44Kx44Kk44K544KxDQor44Kk44Kx44OBLOODnuODnw0KK+OCpOOCseODgCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqTjgrHjg4As44Oi44OI44OP44OrDQor44Kk44Kx44OALOOCv+OCq+OCsw0KK+OCpOOCseODgCzjgr/jgqvjg6bjgq0NCivjgqTjgrHjgqzjg58s44OI44Oi44OS44OtDQor44Kk44Kx44K444OqLOOCq+OCuuODpA0KK+OCpOOCseOCv+OCrSzjgq/jg4vjgqrjg58NCivjgqTjgq/jg6Ljg4gs44K344OzDQor44Kk44Oe44KkLOOCv+OCseOCtw0KK+OCpOODnuOCpCzjg6zjgqTjgrMNCivjg5vjgr3jgqQs44Kx44Oz44K/44Ot44KmDQor44Kk44Oe44KkLOOCteODluODreOCpg0KK+OCpOODnuODi+OCtyzjgr/jgrHjgrcNCivjgqTjg4rjg4As44OP44K444OhDQor44Kk44OK44Ks44KtLOODnuODiuODlg0KK+OCpOODiuOCsizjgrHjg7PjgqTjg4ENCivjg4/jgrbjg54s44OS44K144Oi44OIDQor44Kk44OOLOOCuOODpeODsw0KK+OCpOODjuODnuOCvyzjgrHjgqTjgr/jg63jgqYNCivjgqTjg47jgqbjgqgs44Oq44KoDQor44Ok44K544Kr44OvLOOCv+OCq+ODkuODiA0KK+ODj+ODqyzjg4jjgqrjg6sNCivjgqTjg47jgqbjgqgs44OG44Or44KqDQor44Kk44OO44Km44KoLOODhOODiOODoA0KK+OCpOODjuOCpuOCqCzjg5Xjg5/jg47jg6oNCivjgqTjg47jgqbjgqgs44OS44Ot44OS44K1DQor44Kk44Kq44KtLOODnuOCteODn+ODgQ0KK+OCpOODquOCqCzjg47jg5bjg6bjgq0NCivjgqTjgrXjgqss44OI44Kq44OrDQor44Kk44K144KrLOODr+OCv+ODqw0KK+OCquOCquODouODqizjgrHjg7PjgqTjg4Hjg60NCivjgqTjgrfjg5Djgrcs44Oe44OK44OWDQor44Kk44K344OALOOCseOCpOOCpOODgQ0KK+OCpOOCt+ODgCzjgqbjg6njg6kNCivjgqTjgrfjg4/jg6ks44Oo44K344OIDQor44Kk44K344OP44OpLOODj+ODq+OCqg0KK+ODkuODqeODiCzjg5Ljg4fjgqoNCivjgqTjgrfjgqQs44Kx44Kk44K444Ot44KmDQor44Kk44K344KkLOODn+OCreOCqg0KK+OCpOOCt+OCpCzjgqLjg4TjgrcNCivjgqTjgrfjgqQs44OP44Or44KqDQor44Kk44K344KkLOOCseOCpOOCuA0KK+OCpOOCt+OCpCzjg57jgrXjgrMNCivjg4/jg43jgqTjgrcs44K344Oz44K544KxDQor44Kk44K344KkLOODpOOCueOCtw0KK+OCpOOCt+OCq+ODryzjg6jjgqbjgrMNCivjgqTjgrfjgqvjg68s44Oo44Km44K544KxDQor44Kk44K344Kr44OvLOODqOOCt+ODkuOCsw0KK+OCpOOCt+OCq+ODryzjg6bjgqsNCivjgqTjgrfjgqvjg68s44OO44Oq44KzDQor44Kk44K344Kq44KrLOODqOOCt+ODpuOCrQ0KK+OCpOOCt+ODhOOCqyzjg4jjgrfjg6bjgq0NCivjgqTjgrfjg6/jgr8s44Ki44Oq44OS44OtDQor44Kk44K344K244KrLOOCs+OCpuOCuA0KK+OCpOOCt+OCtuOCqyzjgqjjgqTjgqTjg4ENCivjgqTjgrfjgrbjgq0s44Kz44Km44K4DQor44Kk44K344K644KtLOODiuOCquODiA0KK+OCpOOCvSzjgrfjgrLjg5Ljg4gNCivjgqTjgr3jgqzjgqQs44Om44Km44KzDQor44Kk44K/44OQLOODpuOCpuOCuA0KK+OCpOODiOOCpizjgqTjg47jg6oNCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOODnuOCteODkuODrQ0KK+OCpOODiOOCpizjg5Djg7MNCivjgqTjg4jjgqYs44K144OI44K3DQor44Kk44OI44KmLOOCouODhOOCtw0KK+ODkuODgOOCqyzjg5Ljg4fjg4TjgrANCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOODpuOCrQ0KK+ODi+OCtyzjgrfjg7PjgqTjg4ENCivjgqTjg6/jg4Djg6ws44Oo44K344OO44OqDQor44Kk44Ov44OP44K3LOODpuOCpuOCsw0KK+OCpOODr+OCrSzjg5/jgrrjg5sNCivjgqTjg6/jg6Ljg4gs44Oo44K344OO44OqDQor44Kk44Ov44K144KtLOODjuODluOCq+OCug0KK+ODkuODqeODhOOCqyzjg5Ljg63jgrcNCivjgqTjg6/jgrXjgq0s44OS44Ot44Om44KtDQor44Kk44Ov44K144KtLOODnuOCteODpuOCrQ0KK+OCpOODr+OCteOCrSzjg5Ljg63jg6bjgq0NCivjgrjjg7PjgrDjgqYs44K144OI44KzDQor44Kk44Ov44K344KyLOODnuOCs+ODiA0KK+OCpOODr+OCvyzjg5Ljg63jgrcNCivjgrjjg7PjgrDjgqYs44Oo44K344OO44OqDQor44K0LOODpOOCueOCq+OCug0KK+OCq+OCrCzjgqvjg4Tjg6QNCivjgqvjgqzjg5Ys44K344Oz44K444Ot44KmDQor44Kr44Ku44Ok44OeLOODkuODh+OCqg0KK+OCq+OCpCzjg6bjgqbjgr7jgqYNCivjgqvjgqTjg4As44OO44Oq44Om44KtDQor44Kr44Kk44OALOODjuODquODnuOCtQ0KK+OCq+ODnuODgSzjg5Ljg63jg6bjgq0NCivjgqvjg57jg4As44Oe44K144KzDQor44Kr44Oe44Ob44OqLOODiOODouODkuOCsw0KK+OCq+ODnuOCvyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg6Hjg4As44Oe44Om44OfDQor44Kr44Oh44KkLOODleODn+ODkuOCsw0KK+OCq+ODn+ODjizjgr/jgrHjgrcNCivjgqvjg5/jg44s44OS44OI44K3DQor44Kr44Of44OI44OOLOODquODpeOCpuOCuA0KK+OCq+ODn+ODpCzjg47jg5bjg6bjgq0NCivjgqvjg5/jg6Qs44OB44Ki44KtDQor44Kr44Of44Ok44OeLOOCseODs+OCrg0KK+OCq+ODouODsyzjg5Ljg4fjgq0NCivjgqvjg6Ljg7Ms44Ko44Kk44K/44Ot44KmDQor44Kr44OzLOODiOODouODjuODqg0KK+OCq+ODiuOCpCzjg47jg6rjgrMNCivjgqvjg4rjgqQs44K544Of44KzDQor44Kr44OK44K4LOODnuOCteODpuOCrQ0KK+OCq+ODiuOCquOCqyzjgr/jg5/jgqoNCivjgqvjg4rjgrbjg68s44Kr44OE44OS44K1DQor44Kr44Oz44OZLOOCteOCquODqg0KK+OCq+ODs+ODgCzjg6Tjgrnjgr/jgqsNCivjgqvjg7Pjg4As44OB44KoDQor44Kr44ON44KtLOOCqOOCpOOCueOCsQ0KK+OCq+ODjeOCreODqCzjg5Ljg63jg4gNCivjgqvjg43jgrMs44OS44Ot44Om44KtDQor44Kr44ON44K344K/LOOCq+OCuuODkuODrQ0KK+OCq+ODjeODpOOCuSzjg4rjgqrjg6QNCivjgqvjg47jgqYs44K344Oz44K4DQor44Kr44OO44KmLOOCv+OCseOCtw0KK+OCq+ODs+OCuuOCpCzjgr/jg5/jg6bjgq0NCivjgqvjgrXjg4/jg6ks44OK44OK44KzDQor44Kr44K144OP44OpLOODkuODh+ODkuOCtQ0KK+OCq+OCteOCpCzjgqjjgqTjgqTjg4ENCivjgqvjgrXjg57jg4Qs44Kv44OL44OI44K3DQor44Kr44K144OiLOOCseODs+OCpOODgeODrQ0KK+OCv+ODnuOCv+ODiyzjgrfjg54NCivjgqvjgrfjg6/jgq4s44Om44Oq44OfDQor44Kr44K344Ov44Kw44OpLOODkuODh+ODpuOCrQ0KK+OCq+OCv+ODgCzjgrXjg4HjgrMNCivjgqvjgr/jgqrjgqss44OK44Kq44KtDQor44Ob44K3LOODkuODreODiA0KK+OCq+OCv+OCquOCqyzjgrfjg6XjgqbjgrgNCivjgqvjg4jjgqYs44OS44Ot44KtDQor44Kr44OI44KmLOODpOOCueODpuOCrQ0KK+OCq+ODiOOCpizjg6Ljg6rjg5Ljg60NCivjgqvjg4jjgqYs44K344Oz44Kk44OBDQor44Kr44OI44KmLOODquODp+OCpuOCvw0KK+OCq+ODiOOCpizjgrHjgqTjgrMNCivjgqvjg4jjgqYs44OG44Or44OS44KzDQor44Kr44OI44KmLOOCuOODpeODs+OCsw0KK+OCq+ODiOOCpizjg5/jg4Hjg6QNCivjgqvjg4jjg44s44Kt44Oo44K3DQor44Kr44OE44Og44OpLOODkuODh+OCrQ0KK+OCq+ODr+ODkOOCvyzjgqTjg4Hjg63jgqYNCivjgqvjg6/jgrTjgqgs44Ki44Kt44OpDQor44Kr44Ov44Kw44OBLOOCs+OCpuOCuA0KK+OCq+ODr+ODj+ODqSzjg57jgrnjg58NCivjgqvjgrfjg6Djg6ks44Om44Km44KzDQor44Kr44Ov44KkLOODiuOCquODnw0KK+OCq+ODr+OCpCzjg5Ljg63jg6bjgq0NCivjgqvjg6/jg6Ljg4gs44Oe44OK44OWDQor44Kr44Ov44Og44OpLOOCteODiOODqw0KK+OCq+ODr+ODoOODqSzjgrfjg6XjgqbjgrgNCivjgqvjg6/jg4os44Om44Kt44OS44OIDQor44Kr44Ov44OKLOODnuOCteOCq+OCug0KK+OCq+ODr+ODiuODnyzjg5Ljg4fjg5LjgrMNCivjgqvjg6/jg44s44K344Oz44K4DQor44Kr44Ov44K7LOOCuOODpeODs+OCpOODgeODrQ0KK+ODj+ODqeODgCzjgrfjg6XjgqbjgrPjgqYNCivjgqvjg6/jgrfjg54s44OO44OW44KzDQor44Kr44K244OfLOODiuOCquODiA0KK+OCq+OCuuOCteODryzjg6Tjgrnjg5Ljg60NCivjgq3jg5Djg6Tjgrcs44Om44Km44Kk44OBDQor44Kt44OALOOCv+OCseOCtw0KK+OCreODj+ODqSzjg6jjgrfjg5LjgrMNCivjgq3jgq/jg4Es44OS44Ot44K3DQor44Kt44Kv44OBLOOCpOODgeODreOCpg0KK+OCteOCpOODiOOCpizjgrHjg7PjgrgNCivjgq3jgq/jgqQs44OE44Oo44K3DQor44Kt44Oi44OILOODqOOCpuOCsw0KK+OCreODoOODqSzjg47jg5bjg6bjgq0NCivjgq3jg6Djg6ks44OE44Oo44K3DQor44Kt44Og44OpLOODiOOCt+ODhOOCsA0KK+OCreODoOODqSzjgr/jgqvjg5LjgrUNCivjgq3jg6Djg6ks44OP44Or44OfDQor44Kt44OOLOOCq+OCuuODnuOCtQ0KK+OCreODquODjizjgqvjgrrjg6QNCivjgq3jgrXjg4zjgq0s44Oe44Kz44OIDQor44Kt44K3LOODnuOCteOCrQ0KK+OCreOCtyzjg4rjgqrjgq0NCivjgq3jgrfjg4As44K144OI44K3DQor44Kt44K344Kr44OvLOOCt+ODsw0KK+ODkuODqeODhizjgrfjg7PjgrgNCivjgq3jgrfjg4rjg58s44Ok44K544Oe44K1DQor44Kt44K9LOODqOOCt+OCqg0KK+OCreOCvyzjg5Ljg4fjgqLjgq0NCivjgq3jgr/jgqzjg68s44OK44Kq44OfDQor44Kt44K/44K444OeLOODkuODreODpuOCrQ0KK+OCreOCv+OCuOODnizjgrvjgqTjgqsNCivjgq3jgr/jg6Djg6ks44OO44Oq44KzDQor44Kt44K/44OOLOODiOOCt+ODpuOCrQ0KK+OCreOCv+OCtuOCrSzjgr/jg4DjgrcNCivjgq3jgr/jgrbjg68s44K/44OE44K3DQor44Kt44Oo44OP44OpLOODhOODiOODoA0KK+ODj+OCt+ODouODiCzjgqrjgrXjg6ANCivjg47jgrbjgq0s44OV44Of44Kt44OoDQor44Kz44OQ44Ok44K3LOODleODn+OCqg0KK+OCs+ODkOODpOOCtyzjg57jgrXjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44OK44Kq44KtDQor44Kz44OQ44Ok44K3LOOCv+OCq+ODj+ODqw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44Ki44OE44K3DQor44Kz44OQ44Ok44K3LOOCqOOCpOOCuA0KK+OCs+ODkOODpOOCtyzjgrXjg4HjgrMNCivjgrPjg5Djg6Tjgrcs44K344On44Km44K4DQor44Kz44OQ44Ok44K3LOODiOODouODkuODrQ0KK+OCs+OCpuODgSzjg6bjgq0NCivjgrPjg4Djg54s44Ok44K544OS44OtDQor44Kz44KsLOOCouOCreODkuODrQ0KK+ODiOOCpuODieOCpizjgrfjg6XjgqbjgqTjg4ENCivjgrPjg4/jg6ks44OK44Kq44K544OfDQor44Kz44OSLOODj+ODq+ODnw0KK+OCs+ODs+ODjizjg5Ljg63jg5Xjg58NCivjgrPjgqTjgrEs44OI44Kq44OrDQor44Kz44Kk44OvLOODiOODouODpuOCrQ0KK+OCs+OCpOOCuuODnyzjgrfjg6XjgqbjgrQNCivjgrPjgrjjgqss44Of44Ko44KzDQor44Kz44K444OeLOODiuOCrOOCqg0KK+OCs+OCuOODnizjg6rjg4HjgrMNCivjgrPjgrjjg54s44Kr44K644OS44KzDQor44Kz44K444OeLOOCteODiOOCtw0KK+OCs+ODnuODhOODkOODqSzjg6rjg6Xjgqbjgr8NCivjgrPjg5/jg6Qs44Kt44Oo44K3DQor44Kz44Oi44OALOOCouOCreODqOOCtw0KK+OCs+ODoOODrSzjg4jjgrfjg6bjgq0NCivjgrPjg7Pjg4ks44OK44OE44OfDQor44Kz44Oz44OJLOOCseODs+OCuA0KK+OCs+ODs+ODiSzjgrHjg7PjgqTjg4ENCivjgrPjgrXjgrEs44Kz44Km44Kk44OBDQor44Kz44K7LOOCv+OCq+OCtw0KK+OCs+OCueOCrizjgr/jgrHjgrcNCivjgrPjgrrjgqss44Ok44K544OO44OqDQor44Kv44OcLOODj+ODq+ODnw0KK+OCr+ODnCzjgr/jgrHjg5Ljg60NCivjgq/jg5ws44OK44Kq44KtDQor44Kv44OcLOOCt+OCsuOCqg0KK+OCr+ODnCzjg5Ljg63jgrcNCivjgq/jg4njgqYs44Oe44OqDQor44Kv44OJ44KmLOOCu+OCpOOCpOODgQ0KK+OCr+ODieOCpizjg57jgrXjgq0NCivjgq/jg57jgqvjg68s44Kx44Oz44K4DQor44Kv44Oe44Kv44OpLOOCseODs+OCpOODgQ0KK+OCr+ODnuOCt+ODrSzjgrvjgqTjgqTjg4ENCivjgq/jg57jgr8s44K344Ot44KmDQor44Kv44OL44Oi44OILOOCuOODpeODs+OCuA0KK+OCr+ODqeODouODgSzjgrfjg6XjgqbjgqTjg4ENCivjgq/jg6njgrfjg54s44OS44Ot44K3DQor44Kv44Oq44OP44OpLOOCq+OCuuODkuODrQ0KK+ODkuODqeOCpCzjgrPjgqbjgrgNCivjgq/jg6rjg4/jg6ks44Oo44K344Om44KtDQor44Kv44Oq44OP44OpLOOCq+ODhOODqA0KK+OCr+ODquODj+ODqSzjg6bjgqbjgrgNCivjgq/jg6rjg4/jg6ks44OG44OE44KqDQor44Kv44Oq44OP44K3LOODn+ODhOODjuODlg0KK+OCr+ODquOCuSzjg6jjgqbjgrMNCivjgq/jg63jg4As44Ki44OE44K3DQor44Kv44Ot44OALOODkuODreODpuOCrQ0KK+OCr+ODreOCrSzjgr/jgqvjg5Ljg60NCivjgq/jg63jgq0s44OI44Oi44KzDQor44Kv44Ot44KtLOOCqOOCpOOCuA0KK+OCr+ODreODoSzjg57jgrPjg4gNCivjgq/jg63jgrXjg68s44Ko44Kk44K444Ot44KmDQor44Kv44Or44Of44OkLOOCs+OCpuOCrQ0KK+OCr+OCteODpOODiuOCrizjg57jgrXjg4jjgrcNCivjgq/jgrnjg47jgrss44OK44Kq44Kq44OfDQor44Kv44Ov44OP44OpLOOCt+ODs+OCuA0KK+ODnuODgeODgCzjg6jjgqbjgrMNCivjg57jg4Djg6njg6Es44OI44K344K/44KrDQor44Oe44Ko44OALOOCteODiOOCtw0KK+ODnuOCqOODgCzjgrXjg4jjg6sNCivjg57jgqjjg4As44K344Oz44Kk44OB44Ot44KmDQor44Oe44Ko44Ks44OvLOODleODn+ODkuODhw0KK+ODnuOCqOODj+ODqSzjgq7jg7PjgrgNCivjg57jgqjjgq3jgr8s44Kr44K644KzDQor44Oe44Kt44OOLOOCv+OCq+ODkuODrQ0KK+OCt+ODluOCv+ODiyzjgrPjgqbjgrgNCivjg57jg4rjg5ks44Oo44K344OO44OqDQor44Oe44Or44Ok44OeLOOCouOCreODqQ0KK+ODnuODq+ODpOODnizjg5Ljg63jg6bjgq0NCivjg57jg6vjg6Tjg54s44Kx44Kk44Kk44OBDQor44Oe44K144Kq44KrLOOCv+OCq+OCtw0KK+ODnuOCueODluODgSzjg6jjgrfjg47jg6oNCivjg57jgrnjg4As44Om44Km44KzDQor44Oe44K544OALOODqOOCt+ODj+ODqw0KK+ODnuOCueODgCzjgr/jgqvjg4jjgrcNCivjg57jgrnjg4As44K/44Kv44OkDQor44Oe44K544OALOODkuODreOCq+OCug0KK+ODnuOCueODgCzjg5Ljg63jgq0NCivjg57jg4Tjg5As44OO44K+44OfDQor44OP44OpLOOCseODs+OCuA0KK+ODnuODhOODgCzjgrHjg7PjgrgNCivjg57jg4Tjg4As44OA44Kk44K544KxDQor44Oe44OE44OV44K4LOOCouOCreOCqg0KK+ODnuODhOODleOCuCzjgqvjgrrjg4rjg6oNCivjgr/jg4Hjgq/jgqQs44Of44KtDQor44Oe44OE44KkLOOCt+ODs+OCuA0KK+ODnuODhOOCq+ODryzjgr/jgqvjg5Ljg60NCivjg57jg4Tjg57jg6ss44K344Ol44Km44K144KvDQor44Oe44OE44Oi44OILOOCouOCreOCqg0KK+ODnuODhOODouODiCzjgqvjgrrjg47jg6oNCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OS44KzDQor44Oe44OE44Oi44OILOODjuODquOCsw0KK+ODnuODhOODouODiCzjg5Ljg63jgrcNCivjg57jg4Tjg6Ljg4gs44OE44OI44OgDQor44K344Kq44OQ44OpLOOCt+ODs+OCpOODgQ0KK+ODnuODhOODoOODqSzjgrfjg6Xjg7PjgqTjg4ENCivjg57jg4Tjg6Djg6ks44Oo44K344OO44OqDQor44Oe44OE44OK44KsLOODpuOCreOCsw0KK+ODnuODhOODiuOCrCzjg57jgrXjg5Ljg60NCivjg57jg4Tjg4rjg58s44Oo44K344KzDQor44Oe44OE44KqLOODiOOCt+ODpA0KK+ODnuODhOOCqizjg4jjg6Ljg5Ljg60NCivjg57jg4Tjgqrjgqss44Ko44Kk44KzDQor44OP44Ok44K344OALOOCq+OCuuODkuODrQ0KK+ODnuODhOOCquOCqyzjgrvjgqTjgqTjg4ENCivjgqLjgrzjg6Tjg4rjgq4s44K744Kk44K4DQor44Oe44OE44Kq44KrLOOCt+ODs+OCtA0KK+ODnuODhOOCquOCqyzjg5Ljg63jgqLjgq0NCivjg57jg4Tjgrss44K/44Kr44Om44KtDQor44Oe44OE44K344OeLOOCseODs+OCuA0KK+ODnuODhOOCt+OCvyzjgrPjgqbjgrgNCivjg57jg4Tjgr/jg4ss44K344Oz44K4DQor44Oe44OE44Ov44KrLOOCteODiOOCtw0KK+ODnuODhOODpOODnizjgqLjgq3jg6kNCivjg57jg4Tjgrbjgq0s44Kt44Kv44KqDQor44Oe44OE44OK44KsLOODnuOCs+ODiA0KK+ODm+ODs+ODiizjgq3jg6/jg6ANCivjg6Hjgqvjgr8s44Kx44Oz44K4DQor44Of44Kr44K444OqLOOCreODp+OCpuOCsw0KK+ODn+OCq+ODnyzjgrfjg7PjgrnjgrENCivjg5/jgqvjg58s44OS44OH44KqDQor44Of44KtLOODnuOCteODpuOCrQ0KK+ODn+ODn+OCvyzjg5/jg4Hjg60NCivjg5/jg4rjgq/jg4Es44OV44Of44OP44OrDQor44Of44OK44OfLOOCteODiOOCtw0KK+ODn+ODiuODnyzjg4jjg6Ljg6bjgq0NCivjg5/jg4rjg58s44Ki44Kt44OpDQor44Of44OK44OILOOCt+ODp+OCpuOCuA0KK+ODn+ODjSzjg6jjgrfjgr/jgqsNCivjg5/jg40s44Ki44OE44K3DQor44Of44K344OeLOOCs+OCpuOCuA0KK+ODn+OCt+ODnizjgqrjgrXjg6ANCivjg5/jgr3jg44s44OS44Ot44OS44K1DQor44Of44K/44Og44OpLOODnuOCteODiOOCtw0KK+ODn+OCv+ODs+ODgCzjgrHjg7PjgqTjg4ENCivjg5/jg4Tjg5ws44Oo44K344Kr44K6DQor44Of44OE44Oc44K3LOODiOOCt+ODkuODrQ0KK+ODj+OCueODoOODqSzjg4jjgrfjg5Xjg58NCivjg5/jg4Tjg4/jgrcs44OS44Ot44Of44OEDQor44K344OK44OALOODkuODreODpuOCrQ0KK+ODn+ODhOODnizjgqvjgrrjg5Ljg4gNCivjg5/jg6Tjg4/jg6ks44K444OE44OkDQor44Of44Ok44OP44OpLOODkuODh+ODj+ODqw0KK+ODn+ODpOOCpCzjg5/jgqjjgrMNCivjg5/jg6Tjgrjjg54s44Om44Kr44KzDQor44Of44Ok44Oi44OILOOCq+OCuuODiuODqg0KK+ODn+ODpOODouODiCzjg5Ljg4fjg47jg6oNCivjg5/jg6Tjgrfjgr8s44OS44Ot44Om44KtDQor44Of44Ok44K/LOODkuODreODpuOCrQ0KK+ODn+ODpOOCvyzjgqvjgqrjg6sNCivjg5/jg6Tjgqbjg4Es44Kx44Oz44K4DQor44Of44Ok44Km44OBLOOCquOCteODoA0KK+ODn+ODpOOCpuODqSzjgr/jgrHjg5LjgrUNCivjg5/jg6Tjgrbjgq0s44K/44Kx44K3DQor44OP44K344Kw44OBLOOCt+OCsuOCrQ0KK+ODn+ODpOOCtuODryzjgrPjgqbjgrgNCivjg5/jg6Tjgrbjg68s44Ki44Kt44KqDQor44Of44Ok44K6LOODpOOCueODkuODiA0KK+ODn+OCvuOCq+ODnyzjgrjjg6Xjg7PjgqTjg4ENCivjg5/jgrrjg44s44OG44OE44OS44KzDQor44Of44K644OOLOODiOOCt+ODpuOCrQ0KK+ODn+OCuuOCv+ODiyzjg47jg5bjg6bjgq0NCivjg6Ljg4Hjg4As44Ki44Kt44OS44OtDQor44Oi44OB44K644KtLOOCouOCreOCqg0KK+ODouODgeOCuuOCrSzjgrjjg63jgqYNCivjg5/jg6jjgrcs44K/44Kr44K3DQor44Oi44OqLOODnuOCteOCrQ0KK+ODouODqizjg57jgrXjgrcNCivjg6Ljg6os44OA44Kk44Kk44OBDQor44Oi44OqLOODnuOCteODpuOCrQ0KK+ODouODqizjg4bjg4Tjg6QNCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Oi44OqLOODhOODjeOCouOCrQ0KK+ODouODqizjgqTjgrrjg58NCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Oi44Oq44Kw44OBLOODkuODreOCrQ0KK+ODouODquOCq+ODryzjgrPjgqbjgrgNCivjg6Ljg6rjg4rjgqws44Oe44K144K3DQor44Oi44Oq44K144KtLOOCouOCseODnw0KK+ODouODquOCvyzjg6jjgqbjgqTjg4ENCivjg6Ljg6rjgr8s44Ko44Kk44K4DQor44Oi44Oq44OkLOODoOODhOOCqg0KK+ODouODquODpOODnizjg5Ljg4fjgqoNCivjg6Ljg4bjgq4s44Of44OE44OS44OtDQor44Oi44OI44KtLOOCr+ODi+ODkuODrQ0KK+ODj+OCruODr+ODqSzjg47jg5bjg6jjgrcNCivjg6DjgqvjgqTjg4As44K344KzDQor44Og44ON44OS44OtLOODkuODh+ODpuOCrQ0KK+ODoOODjeOCq+OCvyzjgqvjgrrjg6jjgrcNCivjg6Djg6njgqvjg58s44OE44Oo44K3DQor44Og44Op44Kr44OfLOODpOOCueODkuODrQ0KK+ODoOODqeOCq+ODnyzjg6TjgrnjgqoNCivjg6Djg6njgrPjgrcs44OS44Ot44KzDQor44Og44Op44Oe44OELOODnuOCteODiA0KK+ODoOODqeODjOOCrSzjgrHjgqTjgrgNCivjg6Djg6njgr8s44Om44Kt44Oi44OIDQor44Og44Op44K/LOODnuOCteOCrQ0KK+ODoOODqeOCvyzjgrvjgqTjgrgNCivjg6Djg6njg6Tjg54s44Oo44K344OP44OrDQor44Ok44Oe44K344K/LOOCouOCreODkuODrQ0KK+ODoOODreOCvyzjg5Ljg63jgqvjgroNCivjg5/jg6fjgqbjgrjjg7Ms44Of44OB44KqDQor44OK44Ks44KkLOODjuODquOCsw0KK+ODiuOCrOODjOODnizjg6bjgq3jgqoNCivjg4rjgqzjgqos44Ko44OqDQor44OK44Ks44Kq44KrLOODn+ODmw0KK+ODiuOCrOOCteODryzjgqvjgqrjg6sNCivjg4rjgqzjgrfjg54s44K/44Kr44K3DQor44OK44Ks44K344OeLOODqOOCt+OCq+OCug0KK+ODiuOCrOOCvyzjg6jjgrfjg6TjgrkNCivjg4rjgqzjgr8s44OB44Ko44KzDQor44OP44K744Ks44OvLOODkuODreOCouOCrQ0KK+OCpOOCrOODqeOCtyzjgqvjgrrjg5Ljg60NCivjg4rjgqzjg6Tjg54s44Kx44Oz44K4DQor44OK44Ks44Oo44K3LOODnuOCteOCq+ODhA0KK+ODiuOCpOODiOOCpizjg57jgrXjgq0NCivjg4rjgqvjg5Djg6Tjgrcs44Oe44K144OO44OqDQor44OK44Kr44Ks44OvLOOCt+ODs+OCpOODgQ0KK+ODiuOCq+OCtOODoSzjgrXjg4jjgrcNCivjg4rjgqvjgrfjg54s44OI44K344Ki44KtDQor44OK44Kr44K444OeLOODpOOCueODnuOCtQ0KK+ODiuOCq+OCuOODnizjg6bjgqbjgrMNCivjg4rjgqvjgrjjg54s44OG44Or44OfDQor44OK44Kr44K444OeLOOCr+ODqeODiA0KK+ODiuOCq+OCuOODnizjg6bjgqbjgrgNCivjg4rjgqvjgq/jgq0s44K344Oz44Kk44OB44Ot44KmDQor44OK44Kr44Oe44OrLOODquOCqw0KK+ODiuOCq+ODn+ODgSzjg5/jgqsNCivjg4rjgqvjg6Ljg4gs44Om44Kt44OS44OtDQor44OK44Kr44Oi44OILOODkuODreOCq+OCug0KK+ODiuOCq+ODouODiCzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44OS44Ot44OV44OfDQor44OK44Kr44Og44OpLOODnuOCteODiuODqg0KK+ODiuOCq+ODoOODqSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4rjgqvjg6Djg6ks44K744Kk44K4DQor44OK44Kr44Og44OpLOOCq+OCuuODjuODqg0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgrgNCivjg4rjgqvjg6Djg6ks44OG44Or44Om44KtDQor44OP44Ku44Ov44OpLOOCteODiOOCsw0KK+ODiuOCq+ODoOODqSzjg57jgq3jgrMNCivjg4rjgqvjg6Djg6ks44OS44OH44Om44KtDQor44OK44Kr44Og44OpLOODhuODhOODpA0KK+ODiuOCq+ODoOODqSzjgrHjg7Pjgr8NCivjg4rjgqvjg44s44Ok44K544K3DQor44OK44Kr44KqLOODpuOCpuOCsw0KK+ODiuOCq+OCqizjg5Ljg63jg6bjgq0NCivjg4rjgqvjgqrjgqss44OI44Oi44Om44KtDQor44OK44Kr44K344OeLOOCteODiOOCtw0KK+ODi+OCt+OCuOODnizjgr/jgqvjgrcNCivjg4rjgqvjg6Qs44Ov44K/44OrDQor44OK44Kr44Ok44OeLOODkuODreOCtw0KK+ODiuOCq+OCtuODiCzjgqvjg4TjgqLjgq0NCivjg4rjg57jgr/jg6Es44Oe44Oi44OrDQor44OK44Oh44OpLOODouODquODkuODiA0KK+ODiuODiuODnyzjgr/jg4Djg4jjgrcNCivjg4rjg7Pjg5As44K/44Kr44KqDQor44OK44OzLOOCseOCpOOCueOCsQ0KK+ODiuODs+ODnSzjgqLjgq3jg6kNCivjg4rjg6njg5Ys44OS44OH44KtDQor44OK44Oq44OP44OpLOODkuODreODnw0KK+ODiuODquODiOODnyzjg4rjgqrjgq0NCivjg4rjg6vjgrfjg54s44Oe44Kz44OIDQor44OK44K544Kr44OvLOOCuOODpeODs+ODpA0KK+ODiuODiOODqizjgrHjg7Pjg6QNCivjg43jgq7jgrcs44Ko44Of44KzDQor44ON44Oi44OILOOCpOOCuuODnw0KK+ODi+OCqOODgCzjg4jjgqrjg6sNCivjg4vjgqTjgrjjg54s44Oe44Kz44OIDQor44OL44Kk44Kv44OpLOODnuOCteODqw0KK+ODi+OCpOODhOODnizjgrHjg7PjgrgNCivjg4vjgqTjgrbjg68s44Oo44K344OO44OqDQor44OL44K344OALOODkuODreODkuODiA0KK+ODi+OCt+ODgCzjgr/jgrHjgrcNCivjg4vjgrfjg4As44Ko44Kk44K4DQor44OL44K344OALOODkuODh+ODiA0KK+ODkuODgOOCqyzjg6bjgq3jg57jgrUNCivjg4vjgrfjg4As44Ok44K544KqDQor44OL44K344Kr44OJLOOCouODhOOCtw0KK+ODi+OCt+OCq+ODryzjgqjjgqTjgrjjg6UNCivjg4vjgrfjgqvjg68s44OI44Oi44Ki44KtDQor44OL44K344Kr44OvLOODnuOCteODjuODlg0KK+ODi+OCt+ODouODiCzjg5Ljg4fjg6QNCivjg4vjgrfjg6Djg6ks44Oe44K144OO44OqDQor44OL44K344OKLOOCreODqOOCtw0KK+ODi+OCt+ODjizjg5Ljg63jgqvjgroNCivjg4vjgrfjgr8s44Of44KtDQor44OV44Kr44OfLOOCq+OCuuODqA0KK+ODi+OCt+ODr+OCrSzjgr/jgrHjg5LjgrMNCivjg4vjgrfjg6Tjg54s44Kr44OE44K3DQor44OL44K344Ok44OeLOODkuODiOOCtw0KK+ODi+OCt+OCtuODryzjg6jjgrfjg5Ljg60NCivjg4vjg4Pjgr8s44OS44Ot44Oo44K3DQor44OL44Ov44K/LOODm+OCuuODnw0KK+ODi+ODr+ODpOODnizjg4HjgroNCivjg47jgqLjg58s44Kv44OL44KzDQor44OO44Oc44Oq44K/44OGLOODnuODiuODlg0KK+ODjuODgCzjgr/jgqvjg6bjgq0NCivjg47jgqzjg68s44OS44Ot44OkDQor44OO44Kw44OBLOODiOODouOCouOCrQ0KK+ODjuOCsOODgSzjgr/jgqvjgrcNCivjg47jgrjjg6os44OS44Ot44Om44KtDQor44OO44Oi44OILOODpuOCpuOCsw0KK+ODjuODoOODqSzjg5/jgq3jgrMNCivjg4/jg6TjgrXjgqss44Kr44K644OS44OtDQor44OO44Og44OpLOODnuOCteODkuODrQ0KK+ODjuODiCzjgr3jg47jg58NCivjg47jgrbjgq0s44OI44K344OkDQor44Kz44K144KrLOODpOOCueOCtw0KK+OCquODkOODiizjgqLjg6TjgrMNCivjgqrjg4Es44Oe44K144OG44OrDQor44Kq44OALOODj+ODq+ODjuODlg0KK+OCquOCrOOCteODr+ODqSzjgqvjgrrjg4bjg6sNCivjgqrjgqzjgr8s44OS44Ot44Ok44K5DQor44Kv44KtLOODpuOCv+OCqw0KK+OCquOCq+ODgCzjg5Ljg63jgqLjgq0NCivjgqrjgqzjg68s44OS44Ot44Om44KtDQor44Kq44Ks44OvLOODnuOCteODpuOCrQ0KK+OCquOCrOODryzjg6Tjgrnjg47jg6oNCivjgqrjgq7jg4/jg6ks44Kr44K644OI44K3DQor44Kq44Ku44OOLOOCs+OCpuOCpOODgQ0KK+OCquODlizjg5/jgqsNCivjgqrjgqrjg4/jg6ks44K/44OA44OS44KzDQor44OP44Oe44Oi44OILOODpOOCueOCsw0KK+OCquOCquODj+ODqSzjg6bjgqbjgrgNCivjgqrjg4/jgrcs44K144OI44K3DQor44Kq44Kq44Kr44OvLOODnuOCteODiA0KK+OCquOCquOCr+ODnCzjg57jgrXjgqLjgq0NCivjgqrjgqrjg5/jg6Qs44K744Kk44K4DQor44Kq44Kq44Oi44OqLOODhuODhOODpA0KK+OCquODoOODqSzjg6rjg6fjgqbjgqTjg4ENCivjgqrjgqrjg4vjgrcs44Oe44K144K/44KrDQor44Kq44Kq44OOLOODkuODreODpOOCuQ0KK+OCquOCquODjOOCrSzjgqvjgrrjgqoNCivjgqrjgqrjgrXjgq0s44K144OI44K3DQor44Kq44Kq44K144KtLOODpuOCpuOCsw0KK+OCquOCquOCteODryzjgrfjg63jgqYNCivjgqrjgrfjg54s44K/44Kx44K3DQor44Kq44K344OeLOOCv+OCq+OCqg0KK+OCquOCt+ODnizjg4Tjg4jjg6ANCivjgqrjgqrjgr8s44Ok44K544KqDQor44Kq44Kq44K/LOODjuODluODkuODrQ0KK+OCquOCquOCvyzjg5/jgqsNCivjgqrjgqrjgr8s44OS44Ot44K3DQor44Ki44Oz44OJ44KmLOOCseODs+OCpOODgQ0KK+OCquOCv+OCqyzjgr/jgqvjgqLjgq0NCivjgqrjgqrjgr/jgq0s44OV44OI44K3DQor44Kq44Kq44K/44OLLOOCq+OCuuODkuOCsw0KK+OCquOCquOCv+ODiyzjg47jg6rjg5LjgrUNCivjgqrjgqrjgr/jg4ss44Oe44K144Kr44K6DQor44OP44Ok44K3LOODpuOCreOCsw0KK+OCquOCquODhOODnCzjgr/jgrHjg5LjgrUNCivjgqrjgqrjg4Tjgqss44Oo44K344OO44OqDQor44Kq44Kq44OE44KrLOOCqOOCpOOCrQ0KK+OCquOCquODhOOCqyzjgqLjg4TjgrcNCivjg4/jg6Tjgrcs44Ko44Of44KzDQor44Kq44Kq44OE44OrLOODn+ODgeOCqA0KK+OCquODleODgSzjg4jjgrfjgrMNCivjgqrjgqrjg68s44K/44Kx44K3DQor44Kq44Kq44OkLOODoOODjeOCqg0KK+OCquOCuOOCqizjg5Xjg5/jg47jg5YNCivjgqrjgqss44Oe44K144OI44K3DQor44Kq44Kr44OZLOOCouODpuODoA0KK+OCquOCq+ODgCzjg57jgrXjgq0NCivjgqrjgqvjg4As44K/44Kr44OkDQor44Kq44Kr44OALOODiOOCquODqw0KK+OCquOCq+ODgCzjg5Ljg63jg6bjgq0NCivjgqrjgqvjg6Ljg4gs44K/44Kr44Om44KtDQor44Kq44Kr44Oi44OILOODpuOCpg0KK+OCquOCq+ODouODiCzjg4jjg6Ljg6bjgq0NCivjgqrjgqvjg6Djg6ks44OS44Ot44Kv44OLDQor44Kq44Kr44Og44OpLOOCseOCpOOCpOODgQ0KK+OCquOCq+OCtuOCrSzjg5Ljg63jg4jjgrcNCivjgqrjgqvjgrbjgq0s44Kz44Km44K/44Ot44KmDQor44Kq44Kt44OOLOOCq+OCquODqw0KK+OCquOCr+ODgCzjg4/jgrjjg6ENCivjgqrjgq/jg4As44Oe44K144OO44OqDQor44Kq44Kv44Ks44OvLOOCuOODpeODs+OCpOODgQ0KK+ODj+OCruODj+ODqSzjgrHjg7PjgrgNCivjgqrjgq/jgqbjg4Es44Og44ON44K3DQor44Kq44Kq44OfLOOCouODpOOCsw0KK+OCquODoOODqSzjg5Ljg4jjgrcNCivjgqrjg7Pjg4As44Kr44K644OS44OtDQor44Kq44Kq44OOLOODpuOCv+OCqw0KK+OCquOCquODjizjg5Ljg6fjgqbjgr7jgqYNCivjgqrjgqrjg44s44Of44OO44OrDQor44Kq44Kq44OOLOOCt+ODpeODs+OCueOCsQ0KK+OCquODjuODh+ODqSzjg57jgrXjg5LjgrMNCivjgqrjg47jg4fjg6ks44Oo44K344OO44OqDQor44Kq44OO44OH44OpLOODiOOCt+OCqg0KK+OCquODjuODoOODqSzjg5/jg47jg6sNCivjgqrjg47jgrbjg68s44K344Oz44OkDQor44Kq44Kq44OM44KtLOODhuODhOODreOCpg0KK+OCquODjizjgr/jgqvjgqLjgq0NCivjgqrjgqrjg6Tjg54s44OS44OI44K3DQor44Kq44Oq44OJLOODkuODh+OCouOCrQ0KK+OCquODquOCt+OCreODgCzjgrPjgqbjgqTjg4ENCivjgqrjgqrjgrXjgqss44K/44OA44KqDQor44Kq44Ok44OeLOOCv+OCpOODgQ0KK+OCquOCtuOCrSzjgr/jg4Tjg6QNCivjgqrjgrbjgq0s44Oo44K344Oe44K1DQor44Kq44K244OvLOODpuOCpuOCueOCsQ0KK+OCs+OCtuODryzjg5Ljg63jgrcNCivjgqrjgrbjg68s44Oe44K144OP44OrDQor44Kq44K244OvLOOCv+OCseOCtw0KK+ODj+OCv+ODiuOCqyzjg5/jg4Tjg5Ljg60NCivjgrXjgqjjgq0s44Oq44On44Km44KzDQor44K144Kk44OALOODouODouOCsw0KK+OCteOCpOOCsOOCtSzjg5Ljg63jgrcNCivjg4/jg7Pjg4As44K/44Kx44K3DQor44K144Kk44OI44KmLOODpOOCueODiOODog0KK+OCteOCpOODiOOCpizjg57jgrXjg5LjgrUNCivjgrXjgqTjg4jjgqYs44K344Ky44OS44OIDQor44K144Kr44OBLOODnuOCteOCqg0KK+OCteOCq+OCsOODgSzjgrPjgqbjgrgNCivjgrXjgqvjgqQs44Of44OO44OrDQor44K144Kr44KkLOOCs+OCpuOCvuOCpg0KK+ODkuODqeODjizjgqLjgq3jg5Ljg60NCivjgrXjgqvjgqQs44Ki44Kt44OpDQor44K144Kr44KkLOODkuODreODnw0KK+OCteOCq+OCpCzjg5/jgq3jgqoNCivjgrXjgqvjgqQs44OK44Kq44KtDQor44K144Kr44Oi44OILOOCv+OCq+OCtw0KK+OCteOCq+ODouODiCzjg6Tjgrnjg5Ljg60NCivjg5Ljg63jgrss44Oo44K344Ki44KtDQor44K144Kr44Oi44OILOODqOOCpuOCreODgQ0KK+OCteOCq+OCvyzjg4jjg6LjgrgNCivjgq3jgrfjg4As44OS44Ot44Ki44KtDQor44K144KzLOOCouOCq+OCtw0KK+OCteOCr+ODnizjg57jgrXjg6sNCivjgrXjgq/jg6njg5As44Ko44OfDQor44K144Kv44Op44KkLOODj+ODq+ODnw0KK+OCteOCr+ODqeODpOODnizjg5Ljg63jgrcNCivjgrXjg6Hjgrfjg54s44Kr44K644Oo44K3DQor44K144Oz44OZLOODnuOCs+ODiA0KK+OCteODq+ODr+OCv+ODqizjg57jgrXjgq0NCivjg4/jgrvjgqzjg68s44Oe44K144OIDQor44K144K144KoLOODiuOCquOCrQ0KK+OCteOCteODj+ODqSzjg6rjg6fjgqbjgrgNCivjgrXjgrXjgq0s44K/44Kr44Oe44K1DQor44K144K144KtLOOCv+OCq+OCtw0KK+OCteOCteOCrSzjg6bjgr/jgqsNCivjgrXjgrXjgq0s44Om44Kt44KzDQor44OP44OT44OtLOODpuOCv+OCqw0KK+OCteOCteOCqizjgqvjgrrjgrfjgrINCivjgrXjgrXjgqrjgqss44OI44Oi44KzDQor44K144K144K/44OLLOODqOOCt+ODnw0KK+OCteOCvyzjg4jjg6Ljg58NCivjgrXjgr/jgrEs44OI44K344KtDQor44K144OI44KmLOOCuOODpeODsw0KK+ODm+OCt+ODjizjgrHjgqTjgrgNCivjgrXjg4jjgqYs44Oe44K144OP44OrDQor44OP44OD44OI44OqLOOCt+ODs+ODpA0KK+OCteODiOOCpizjg4jjgqrjg6sNCivjgrXjg4jjgqYs44K344Ky44KtDQor44K144OI44KmLOODpuOCreOCv+OCqw0KK+OCteODiOOCpizjg6rjg6fjgqbjgqTjg4ENCivjgrXjg4jjgqYs44K/44OE44KtDQor44K144OI44KmLOOCseOCpOOCuA0KK+OCteODiOOCpizjg57jg6rjgqoNCivjgrXjg4jjgqYs44OI44K344Ki44KtDQor44K144OI44KmLOOCseOCpOOCpOODgQ0KK+ODkuODqeODjizjg5Ljg63jgqLjgq0NCivjgrXjg4jjgqYs44OS44Ot44Om44KtDQor44K144OI44KmLOODpOOCueODjuODqg0KK+OCteODr+ODgCzjgrHjgqTjgqTjg4ENCivjgrXjg6/jg4As44Kz44Km44OY44KkDQor44K144Ov44OV44K4LOOCv+OCq+ODkuODrQ0KK+OCteODr+OCrSzjgrPjgqbjg5jjgqQNCivjgrXjg6/jg6Djg6ks44OS44Ot44K3DQor44K744Ks44OvLOOCt+ODs+OCv+ODreOCpg0KK+OCu+OCrOODryzjgqvjgrrjgq0NCivjgrvjgq0s44Oq44OE44KzDQor44K744KtLOOCv+OCpOODgQ0KK+OCu+OCreOCsOODgSzjg5LjgrXjgrcNCivjgrvjgq3jg40s44Kr44K644Ki44KtDQor44K744Kt44ONLOOCq+ODhOODnw0KK+ODkuODqeODjizjgqjjgqTjgqTjg4ENCivjgrvjg7PjgrTjgq8s44Ok44K544K3DQor44K744KqLOODkuODreOCtw0KK+OCu+ODqSzjgr/jg4DjgrcNCivjgrvjg6ks44OS44Ot44Kr44OEDQor44K344OQ44OP44OpLOOCq+OCuuODjg0KK+OCt+ODkOOCvyzjgqvjgrrjg5LjgrMNCivjgrfjg5Djgr8s44OI44Oi44OS44OtDQor44OP44K744Ks44OvLOODiOODouODn+ODhA0KK+OCt+ODkOOCvyzjg6bjgr/jgqsNCivjgrfjg5Djgr8s44Oe44K144K/44KxDQor44K344OQ44K/LOODnuOCteODpuOCrQ0KK+OCt+ODkOOCtuOCrSzjg57jgrXjgrMNCivjgrfjg5bjgr/jg4ss44OI44Oi44OP44OrDQor44K344OW44OkLOODiOODouOCq+ODhA0KK+OCt+ODgeODkuODp+OCpizjgq3jg5/jgqLjgq0NCivjgrfjgq0s44Oe44K144OrDQor44K344Kt44K344OeLOOCv+OCseOCtw0KK+OCt+ODnizjgqLjgq3jgrMNCivjgrfjg54s44Kz44K544KxDQor44K344Oe44OALOOCq+ODhOODkuODrQ0KK+OCt+ODnuODjOOCrSzjgr/jgqvjgrcNCivjgrfjg57jgqrjgqss44Ok44K544K/44KrDQor44K344Oe44K344K/LOODiuOCquODkuODrQ0KK+OCt+ODnuOCuizjgrHjgqTjgqTjg4ENCivjgrfjg5/jgros44OS44OH44KtDQor44K344Of44K6LOOCseOCpOOCueOCsQ0KK+ODj+OCu+OCrOODryzjg4HjgqjjgrMNCivjgrfjg5/jgros44Oe44K144KqDQor44K344Of44K6LOODpuODquOCsw0KK+OCt+ODn+OCuizjgqvjgrrjg5LjgrUNCivjgrfjg6LjgqzjgqQs44OI44K344KzDQor44K344Oi44Kr44Ov44OZLOOCouOCreODkuODrQ0KK+OCt+ODouOCquOCqyzjgqLjgq3jg5Ljg60NCivjgrfjg6LjgrXjgqss44OS44OH44Om44KtDQor44K344Oi44Ok44OeLOODhuODhOODpA0KK+OCt+ODs+ODnOODqizjg5Ljg63jgqgNCivjgrfjg47jg4/jg6ks44OK44Kq44K/44KrDQor44K344OO44OP44OpLOODkuOCteODiOOCtw0KK+OCt+ODjuOCtuOCrSzjg5Ljg63jgrcNCivjgrfjg47jgrbjgq0s44Oo44K344KzDQor44K344OO44K644KrLOOCseODs+OCpOODgQ0KK+OCt+ODs+ODpCzjg5Ljg4fjgrMNCivjgrfjgqrjgr8s44K444Ol44Oz44Kt44OBDQor44K344Kq44K/44OLLOOCseODs+OCuA0KK+OCt+OCquODpCzjg4jjgqrjg6sNCivjgrfjg6njg4/jg54s44Of44OB44OS44K1DQor44K344Op44KkLOODn+OCqw0KK+OCt+ODqeOCpOOCtyzjg5/jgrUNCivjgrfjg6njgqTjgrcs44Ok44K544OS44OIDQor44K344Op44Kk44K3LOODhOODiOODoA0KK+OCt+ODqeOCrSzjgrHjgqTjgrnjgrENCivjgrfjg6njgrXjgq0s44Kr44K644Om44KtDQor44K344On44Km44OK44K0LOOCv+OCq+OCt+OCsg0KK+OCquOCquODpOODnizjg5/jgqsNCivjgrfjg6Xjg4jjgqYs44OS44Ot44KtDQor44K344Oi44Kk44K6LOODqOODquODiA0KK+OCveOCqOODgCzjgr/jgq/jg58NCivjg5vjg6rjg44s44OS44Ot44Kr44OEDQor44K944OI44K444OeLOODleODiOOCtw0KK+OCueODgCzjg6HjgqTjgrjjg63jgqYNCivjgrnjg4As44Kz44Km44KzDQor44K544OJ44KmLOODkuODh+ODkuODiA0KK+OCueOCrCzjg4/jgrjjg6ENCivjgrnjgqzjg4zjg54s44OS44Ot44Kr44K6DQor44K544Ks44Ov44OpLOOCseOCpA0KK+OCueOCruODkOODpOOCtyzjg57jgrXjg4jjgrcNCivjgrnjgq7jg6Ljg4gs44Of44KrDQor44K544Ku44Oi44OILOODjuODluOCsw0KK+OCueOCruODoOODqSzjg47jg6rjg5LjgrMNCivjgrnjgq7jg44s44K144OI44OrDQor44K544Ku44K144KtLOOCt+ODs+OCpOODgQ0KK+OCueOCruOCteODryzjgr/jgqvjgqoNCivjgrnjgq7jgr8s44K/44Kr44Om44KtDQor44OP44Ok44K3LOOCv+ODnw0KK+OCueOCruOCpuODqSzjg4jjgqrjg6sNCivjgrnjgq7jg6Tjg54s44OI44K344OkDQor44K544Ku44Ok44OeLOOCt+ODs+OCuA0KK+OCueOCtCzjg6TjgrnjgqoNCivjgrnjgqTjgr8s44Oo44K344OS44K1DQor44K544Of44OALOOCouODhOOCtw0KK+OCueODn+OCq+ODryzjgrXjg4jjgrcNCivjgrnjg4rjgqws44OI44Kq44OrDQor44K544OO44OP44OpLOODnuOCteODnw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgrnjgrrjgq0s44OI44Oi44Om44KtDQor44K544K644KtLOODqOOCt+ODpuOCrQ0KK+OCueOCuuOCrSzjg57jgrXjg5Xjg58NCivjgrnjgrrjgq0s44K344On44Km44K0DQor44K544K644KtLOOCv+OCseODkuODrQ0KK+OCueOCuuOCrSzjg6jjgrfjg47jg6oNCivjgrnjgrrjgq0s44Kr44K644OVDQor44K544K644KtLOOCouOCreOCsw0KK+OCueOCuuOCrSzjgqvjg4Tjg5LjgrMNCivjgrnjgrrjgq0s44K344Ky44OrDQor44Ok44Oe44Kr44OvLOOCv+ODhOOCqg0KK+OCueOCuuOCrSzjgqLjgrXjgrMNCivjgrnjgrrjgq0s44Ki44Kt44OS44KzDQor44OP44KsLOODkuODreOCq+OCug0KK+OCueOCuuOCrSzjgqTjgrXjg4gNCivjgrnjgrrjgq0s44Kr44Kq44OqDQor44K544K644OOLOOCq+ODhOODleODnw0KK+OCt+ODpeODiOOCpizjgq/jg4vjg5Ljg4cNCivjgr/jg5Djg6ks44Oe44KzDQor44K/44OALOODnuOCteODqw0KK+ODj+ODquOCrOOCpCzjgr/jgqvjg47jg5YNCivjgr/jg4As44Oe44K144Om44KtDQor44K/44Ks44K344OpLOODn+ODiuOCsw0KK+OCv+OCsOODgSzjg5/jg6bjgq0NCivjgr/jgrDjg4Es44OO44OW44Ki44KtDQor44K/44K444OeLOOCt+ODs+OCuA0KK+OCv+OCuOODnizjgrfjg7PjgrgNCivjg5vjg4Pjgr8s44K344Ol44Oz44Kk44OBDQor44K/44Kr44OALOODiOODouODjuODqg0KK+OCv+OCq+OCrizjg4jjgrfjgqvjgroNCivjgr/jgqvjgq4s44Oo44Km44Kk44OBDQor44K/44Kr44KuLOODpuOCpuOCsw0KK+OCv+OCq+ODj+OCtyzjgqjjgqTjgrMNCivjg4/jgrfjgrDjg4Es44OS44Ot44Ki44KtDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjg58NCivjgr/jgqvjg4/jgrcs44OS44Ot44Of44OBDQor44K/44Kr44OP44K3LOOCq+ODhOODiOOCtw0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjgrMNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44K/44Kr44OP44K3LOODiOODouODkuODrQ0KK+ODj+OCu+OCrOODryzjg4bjg6vjgqoNCivjgr/jgqvjg4/jgrcs44Kx44Oz44K/44Ot44KmDQor44K/44Kr44OP44K3LOODkuODh+ODjuODqg0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg58NCivjgr/jgqvjg4/jgrcs44K344Oz44Kk44OBDQor44K/44Kr44OP44K3LOODqOOCt+ODn+ODhA0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg5Ljg60NCivjgr/jgqvjg4/jgrcs44Kk44OB44K/44Ot44KmDQor44K/44Kr44OP44K3LOOCouODhOODjuODqg0KK+OCv+OCq+ODj+OCtyzjgrHjg7PjgqTjg4ENCivjgr/jgqvjg4/jgrcs44OV44K144OS44KzDQor44Kq44Kq44OfLOOCseODs+OCuA0KK+OCv+OCq+ODkuODqSzjg5/jg47jg6sNCivjgr/jgqvjgqQs44Oo44K344OI44OiDQor44K/44Kr44Of44OkLOOCs+OCpuOCuA0KK+OCv+OCq+ODiuOCtyzjg6rjg5sNCivjgr/jgqvjg44s44Of44Kt44KzDQor44K/44Kr44OOLOODqOOCt+ODkuODrQ0KK+OCv+OCq+ODjizjgr/jg57jg6gNCivjgr/jgqvjg44s44Oo44K344OS44OIDQor44K/44Kr44OOLOOCouOCreODkuODrQ0KK+ODj+ODpOOCq+ODryzjg6Ljg4jjg5Ljg60NCivjgr/jgqvjgrfjg54s44K/44OA44K3DQor44K/44Kr44K5LOOCq+ODhOODjuODqg0KK+OCv+OCq+ODiOOCpuODqizjg5Ljg4fjg5LjgrMNCivjgr/jgqvjg4jjg6os44OV44K144OfDQor44K/44Kr44OkLOODjuODquOCouOCrQ0KK+OCv+OCsSzjgqLjgq3jg5Ljg60NCivjgr/jgrHjg4As44K744Kk44K4DQor44K/44Kx44OALOOCpOOCuuODnw0KK+ODm+ODqizjgrPjgqbjgr7jgqYNCivjgr/jgrHjg4As44K344Oz44Kk44OBDQor44K/44Kx44OP44OpLOODkuOCq+ODqw0KK+OCv+OCseOCpCzjgrfjg7PjgqTjg4ENCivjgr/jgrHjg6Ljg4gs44Ki44KtDQor44K/44Kx44Oi44OILOOCouOCreOCueOCsQ0KK+OCv+OCseODiuOCqyzjgrHjg7PjgqTjg4ENCivjg4/jg6Tjgrcs44Oe44K144OS44KzDQor44K/44Kr44KuLOODnuOCteOCrQ0KK+OCv+OCseODiOODnyzjg57jgrXjg47jg6oNCivjgr/jgrHjgqbjg4Es44Of44ObDQor44K/44Kx44Km44OBLOODn+ODhOOCqg0KK+OCv+OCseOCpuODgSzjg47jg5bjg6jjgrcNCivjgr/jgrHjg6Tjgrks44Os44Kk44K4DQor44K/44Kx44K244OvLOODquODp+OCpuOCuA0KK+OCv+OCreODkCzjgrXjg4jjgrcNCivjgr/jgq/jg5ws44K/44Kr44OO44OqDQor44OP44OL44Ol44KmLOODhOODqOOCtw0KK+OCv+ODnuODqOODqizjg6bjgqbjgrMNCivjgr/jg6Ljg4Qs44Om44Km44K/DQor44K/44Og44OpLOODkuODreODpuOCrQ0KK+OCv+ODoOODqSzjgqLjgrHjg58NCivjgr/jg6Djg6ks44Ki44Kt44OpDQor44K/44OK44OZLOODpOOCueODjuODqg0KK+OCv+ODiuODmSzjg5Ljg4fjg5LjgrMNCivjgr/jg4rjgqss44OS44Ot44Om44KtDQor44K/44OK44KrLOODqOOCt+ODpuOCrQ0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Ki44OE44K3DQor44K/44Kx44OALOODqOOCt+OCsw0KK+OCv+ODiuOCqyzjgr/jg4DjgrcNCivjg4/jgrvjgqzjg68s44Oe44K144OrDQor44K/44OK44KrLOODkuODh+ODpuOCrQ0KK+OCv+ODiuOCqyzjgr/jgqvjg6jjgrcNCivjgr/jg4rjgqss44Oe44OK44OWDQor44K/44OK44KrLOOCq+ODhOOCrQ0KK+OCv+ODiuOCqyzjg57jgrPjg4gNCivjgr/jg4rjgqss44Om44Km44KzDQor44K/44OK44KrLOOCs+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg6jjgrfjgqoNCivjgr/jg4rjgqss44OI44Kq44OrDQor44K/44OLLOODkuODreOCsw0KK+ODn+OCv+ODiyzjg5jjgqTjgrQNCivjgr/jg4vjgrDjg4Es44OS44OH44Ki44KtDQor44OP44OD44OI44OqLOODkuODreOCsw0KK+OCv+ODi+OCsOODgSzjgrHjg7PjgqTjg4ENCivjgr/jg4vjgrDjg4Es44Om44Km44KzDQor44K/44OL44Kw44OBLOOCq+ODhOODkuOCsw0KK+OCv+ODi+OCq+ODryzjgrHjg7PjgrcNCivjgr/jgrXjgqss44Oe44Kz44OIDQor44K/44K344OeLOOCseOCpOOCueOCsQ0KK+OCv+ODhuOCq+ODryzjg57jgrXjg6sNCivjgr/jg4bjg44s44Kz44Km44K4DQor44OG44Op44K444OeLOODj+OCuOODoQ0KK+ODhuODqeODnuOCqCzjgrvjgqTjgqTjg4Hjg63jgqYNCivjg4bjg6njgrXjg68s44Oe44Kz44OIDQor44OG44Op44Ok44OeLOODn+ODqOOCsw0KK+ODhuOCt+ODnizjgqjjg4Tjg57jgrUNCivjg4jjg4As44Oi44OI44Om44KtDQor44OI44OI44OfLOOCv+OCseODkuOCsw0KK+ODiOOCquODpOODnizjg6bjgq3jg5LjgrMNCivjg4jjgq3jg68s44OB44Ko44KzDQor44OV44Kv44Ok44OeLOOCseODs+OCuA0KK+ODiOOCr+OCtuODryzjg57jgrXjg6sNCivjg4jjg5/jg4rjgqws44Kz44Km44K4DQor44OI44Of44K/LOODkuODh+OCtw0KK+ODiOODn+ODpOODnizjgqvjgrrjg47jg6oNCivjgrXjg6/jg6Djg6ks44K/44OE44OfDQor44OI44Oq44K044KoLOOCteODgOODpuOCrQ0KK+ODiOODquOCv+ODiyzjg5Ljg4fjg47jg6oNCivjg4jjgrXjgqss44K344Ol44Km44K4DQor44OE44Oc44KkLOODnuOCteODkuOCsw0KK+ODkuODqeODkOODpOOCtyzjg4jjg6Ljg4rjg6oNCivjg4Tjg4Hjg4As44OS44Ot44Om44KtDQor44OE44OB44K/44OLLOODkuODh+OCrQ0KK+ODhOODgeODpCzjgrfjgrLjg4gNCivjg4Tjg4As44OS44Ot44K3DQor44OE44OALOOCouODhOODqOOCtw0KK+ODhOOCuCzjg5Ljg63jgrcNCivjg4TjgrjjgqQs44Kr44K644KqDQor44OE44K444Og44OpLOODiuODq+ODiA0KK+ODhOOCuOODoOODqSzjgr/jgqvjgrcNCivjg4Tjgrjjg44s44K344Ol44Km44Kk44OBDQor44OE44K444K144OvLOODpuODnw0KK+ODhOOCq+ODgCzjgr/jgqTjgr7jgqYNCivjg4Tjgqvjg4/jg6ks44OG44OE44KqDQor44OE44Kr44Oi44OILOODpOOCueOCrQ0KK+ODhOOCq+ODouODiCzjg6jjgrfjg58NCivjg4Tjgqvjg6Ljg4gs44Kx44Oz44K/44Ot44KmDQor44OE44ON44OALOODnuOCteODkuODrQ0KK+ODhOODjuODgCzjgr/jgrHjgrcNCivjg4Tjg47jg4As44Kx44Oz44Kk44OB44OtDQor44OE44Or44Oe44OrLOOCv+OCq+OCtw0KK+ODhOOCteOCqyzjgrHjg7MNCivjg4Tjg4TjgqQs44K/44Kr44K344KyDQor44OE44OE44OfLOODnuOCteODjuODqg0KK+ODhOODhOODnyzjg57jgrXjg4/jg6sNCivjg4Tjg4Tjg5/jg4/jg6ks44K/44Kr44KqDQor44Km44OB44OALOODnuOCs+ODiA0KK+OCpuODgeODgCzjgrXjg4Djg6bjgq0NCivjg4/jg6Tjgrcs44K/44Kr44Om44KtDQor44Km44OB44OALOOCv+ODhOODpA0KK+OCpuODgeODjizjgrXjg4jjgrcNCivjgqbjg4Hjg6Tjg54s44Ki44Ok44OODQor44Km44OA44Ks44OvLOOCt+ODs+OCpOODgQ0KK+OCpuOCqOODgCzjg5Ljg63jg6bjgq0NCivjgqbjgqjjg4As44Kx44Oz44K4DQor44Km44Ko44OALOOCv+OCseOCtw0KK+ODjeOCuizjg4jjgrfjgqLjgq0NCivjgqbjgqjjg6Djg6ks44K144OI44K3DQor44Km44Ko44Og44OpLOOCt+ODp+OCpuOCvw0KK+OCpuOCqOODoOODqSzjgrHjg7PjgqTjg4ENCivjgqbjgqjjg44s44K344Oz44OkDQor44Km44Ko44OOLOODiOODouODleODnw0KK+OCpuOCqOOCteODryzjg4jjgrfjg5Ljg60NCivjgqbjgqjjg4Tjg5ws44Oo44K344K/44KrDQor44Km44Ko44OE44KtLOODqOOCt+ODhuODqw0KK+OCpuOCseODjizjg6bjgqbjgrnjgrENCivjgqbjg57jg4/jgrcs44OS44OH44OV44OfDQor44Km44Oh44OALOODpOOCueOCv+OCqw0KK+OCpuODoeODoOODqSzjgqvjgqrjg6sNCivjgqbjg5/jg4As44Kz44Km44Kt44OBDQor44Km44Kq44K644OfLOOCteODs+ODmuOCpA0KK+OCpuODqeOCvyzjgrvjg7Pjgr8NCivjgqbjgrfjgq/jgrUs44OI44K344Om44KtDQor44Km44K544OK44OfLOOCuOODpeODsw0KK+ODr+ODgCzjgrjjg6Xjg7PjgqTjg4ENCivjg6/jg4As44Kr44Kq44OqDQor44Ov44OALOODn+OCrQ0KK+ODr+ODgCzjg5/jg4Tjg47jg6oNCivjg6/jgqvjgrss44K144OI44Oo44K3DQor44Ov44KtLOOCv+ODgOOCtw0KK+ODr+OCv+ODiuODmSzjgr/jgrHjgrcNCivjg6/jgr/jg4rjg5ks44OI44Oi44Ki44KtDQor44Ov44K/44OK44OZLOODqOOCt+ODkuOCtQ0KK+ODr+OCv+ODiuODmSzjg4bjgqTjgrgNCivjg6/jgr/jg4rjg5ks44Oo44K344KtDQor44Ov44K/44OK44OZLOODqOOCt+ODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg4gNCivjg6/jgr/jg4zjgq0s44Oo44K344OS44K1DQor44Ov44K/44OM44KtLOODkuODh+OCqg0KK+ODr+OCv+ODqizjg5Ljg63jg5/jg4QNCivjg4/jgrfjgrDjg4Es44K444Ol44Oz44OkDQor44Ok44OWLOOCs+OCpuOCuA0KK+ODpOOCruODjOODnizjg5/jg4TjgqLjgq0NCivjg6Tjgrjjg54s44OK44Kq44KtDQor44Ok44Oe44OALOOCt+OCsuODleODnw0KK+ODpOODnuODgCzjg6jjgrfjgr/jgqsNCivjg6Tjg57jg4As44Om44Km44K544KxDQor44Ok44Oe44OALOODpuOCpuOCsw0KK+ODpOODnuODgCzjgqLjgq3jgqLjg4QNCivjg6Tjg57jg4As44Ki44Kt44OpDQor44Ok44Oe44OALOODgeOCqA0KK+ODpOODnuODgCzjg5Ljg63jgrMNCivjg6Tjg57jg4As44Kr44K644OfDQor44Ok44Oe44OALOODnuOCteODqOOCtw0KK+ODkuOCteODjizjg6rjgqsNCivjg6Tjg57jg4As44K144OI44K3DQor44Ok44Oe44OALOOCteODpOOCqw0KK+ODpOODnuODleOCuCzjgr/jg4Tjg6QNCivjg6Tjg57jgq7jg68s44Ok44K544OS44KzDQor44Ok44Oe44Kw44OBLOODpOOCueODkuODrQ0KK+ODpOODnuOCsOODgSzjg6jjgrfjg5Ljg60NCivjg6Tjg57jgrDjg4Es44OO44Oq44Om44KtDQor44Ok44Oe44Kw44OBLOODpuOCpA0KK+ODpOODnuOCsOODgSzjgqTjgrXjgqoNCivjg6Tjg57jgrDjg4Es44OG44OE44OkDQor44Ok44Oe44Kw44OBLOOCv+OCseODj+ODqw0KK+ODpOODnuOCsOODgSzjgqLjgq3jg6kNCivjg6Tjg57jgrDjg4Es44K/44Kr44OS44OtDQor44Ok44Oe44Kr44OvLOODpuOCreOCsw0KK+ODpOODnuODouODiCzjg5Ljg63jgrcNCivjg6Tjg57jg6Ljg4gs44Kr44OK44KzDQor44Of44K644K/44OLLOOCreODn+OCqg0KK+ODpOODnuODouODiCzjg5/jg4njg6oNCivjg6Tjg57jg6Ljg4gs44Of44OE44OS44OtDQor44Ok44Oe44Oi44OILOODqOODjuOCueOCsQ0KK+ODpOODnuODouODiCzjg4rjgqrjg4gNCivjg6Tjg57jg6Ljg4gs44K/44Kr44K3DQor44Ok44Oe44Oi44OILOOCq+ODhOOCuA0KK+ODpOODnuODouODiCzjgqvjgroNCivjg6Tjg57jg6Ljg4gs44Kr44K644Ki44KtDQor44Ok44Oe44Oi44OILOODkuODiuOCsw0KK+ODpOODnuODouODiCzjgrfjg7PjgqTjg4ENCivjg6Tjg57jg40s44Oe44Kz44OIDQor44Ok44Oe44ONLOODpOOCueODkuOCtQ0KK+ODpOODnuOCt+OCvyzjg4jjgrfjgqoNCivjg6Tjg57jgrfjgr8s44Kr44K644OS44K1DQor44OP44Oz44OALOOCpOOCteOCqg0KK+ODpOODnuOCpuODgSzjg6jjgrfjg6QNCivjg6Tjg57jgqbjg4Es44K344Oz44Kk44OB44Ot44KmDQor44Ok44Oe44Km44OpLOOCv+OCq+OCtw0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg4gNCivjg6Tjg57jgrbjgq0s44Kr44K644Oo44K3DQor44Ok44Oe44K244KtLOOCseODs+OCpOODgQ0KK+OCv+ODoOODqSzjg57jgrXjg4jjgrcNCivjg6Tjg57jgrbjgq0s44K144OI44K3DQor44Ok44Oe44K244KtLOOCv+OCq+OCqg0KK+ODpOODnuOCvuOCqCzjgr/jgqvjgrcNCivjg6Tjg4rjgq7jgrXjg68s44Om44Of44KzDQor44Ok44OOLOOCv+OCseOCtw0KK+ODpOOCueODgCzjg5Ljg4fjgq0NCivjg6Tjgrnjg4/jg6ks44Kx44Kk44KzDQor44Kz44K344Oi44OILOODouODiA0KK+ODj+OCruODr+ODqSzjg5/jgq3jgqoNCivjg6jjgrPjgr8s44OG44Or44OS44K1DQor44Oo44Kz44Ok44OeLOOCv+OCseOCtw0KK+ODqOODouODgCzjgqLjgq3jg6kNCivjg6jjg4rjgqws44K144OI44K3DQor44Oo44ON44OALOODkuODreOCv+OCsQ0KK+ODqOODjeODpOODnizjgrXjg4Hjg6gNCivjg6jjg43jgrbjg68s44Ko44OqDQor44Oo44ON44K244OvLOODiOODouODkuOCtQ0KK+ODqOOCt+ODgCzjg57jg6bjg58NCivjg6jjgrfjg4As44OG44Or44Ok44K5DQor44Oo44K344OALOOCq+ODhOODkuODrQ0KK+ODqOOCt+ODgCzjg57jgrXjg4gNCivjg6jjgrfjg4As44Ki44Kt44OS44K1DQor44Oo44K344OALOOCteODgeOCsw0KK+ODqOOCt+ODgCzjgrHjg7PjgrQNCivjg6jjgrfjg4As44Kt44Oo44OS44OIDQor44Oo44K344Kw44OBLOODjuODluOCsw0KK+ODqOOCt+OCpCzjg6bjgq3jgqoNCivjg6jjgrfjgqTjgrEs44Kt44Oo44Om44KtDQor44Oo44K344Oe44OELOOCseODs+OCv+ODreOCpg0KK+ODqOOCt+ODjizjg5LjgrXjg6jjgrcNCivjg6jjgrfjg44s44K344Ky44KqDQor44Oo44K344K244OvLOOCquOCteODoA0KK+ODqOODhOOCv+ODiyzjg5/jg4Tjg5Ljg60NCivjg6bjgq3jgrbjg40s44K744Kk44K4DQor44Om44Ok44OeLOODqOOCt+ODkuOCtQ0KK+OCuuOCtyzjg6bjgq3jgqoNCivjgqLjg6njgqQs44Oe44K144OIDQor44OV44K444KtLOODpuOCpuOCpOODgQ0KK+ODkuODqeODjizjgrfjgrLjg6sNCivjgqvjg6Hjg6Tjg54s44OS44OH44OO44OWDQor44Kz44K444OeLOOCq+OCuuOCqg0KK+ODiuOCq+OCqizjg6HjgrDjg58NCivjgqTjg6/jgqvjg68s44K944Km44K/44Ot44KmDQor44OE44OB44OkLOOCv+ODhOODpA0KK+OCpOOCuOODrSzjgrPjgqbjgrgNCivjgq/jg4njgqYs44OI44Oi44KzDQor44OK44Ks44K344OeLOOCq+OCuuODkuODiA0KK+ODj+OCt+OCsOODgSzjgqvjg4Tjg6bjgq0NCivjg4Tjg4Hjg6Qs44Kx44Kk44KzDQor44Kk44K344Oe44OELOODkuODreODpOOCuQ0KK+ODj+ODqeODgCzjg5Ljg63jgr/jgqsNCivjg5/jgrrjg44s44OV44Of44KqDQor44Ob44K344OOLOODj+ODq+OCqg0KK+OCouODmSzjgrfjgrLjg47jg6oNCivjgqLjg5ks44K/44Kr44KzDQor44Ki44OZLOODpuOCv+OCqw0KK+OCouODmSzjgqjjgqTjgqTjg4ENCivjgqLjg5bjgqvjg68s44Of44K1DQor44Ki44OA44OBLOOCseODs+OCv+ODreOCpg0KK+OCouOCpOOCtuODryzjgq3jg6rjgrMNCivjgqLjgrjjg60s44Oe44K144Om44KtDQor44Ki44Kr44KkLOODiOOCt+OCouOCrQ0KK+OCv+ODouODiCzjg5/jgq3jgqoNCivjgqLjgqvjgqTjgrcs44Ko44Kk44OBDQor44Ki44Kr44K3LOODnuODpuODnw0KK+OCouOCreOCpOOCsSzjg6Tjgrnjg5Ljg60NCivjgqLjgq3jgr8s44OO44Oq44OB44KrDQor44Ki44Kt44Ok44OeLOODoOODhOODnw0KK+OCouODnuOCrOOCpCzjg5Ljg4fjg5Xjg58NCivjgqLjg57jgqzjgr8s44K/44Kr44K3DQor44Ki44Oe44OOLOODn+ODmw0KK+OCouODoeODn+ODpCzjgqvjg4Tjg58NCivjgqLjg7Pjg4njgqYs44Kr44K644OS44OtDQor44Ki44Oz44OJ44KmLOOCv+OCq+ODpuOCrQ0KK+OCouODs+ODieOCpizjg4DjgqTjgrQNCivjgqLjg7Pjg4njgqYs44K344Oz44K0DQor44Ki44Oz44K244KkLOODnuOCteODkuODhw0KK+OCouOCquOCrSzjg57jgrXjg4jjgrcNCivjgqLjgqrjgq0s44Ki44Kt44OV44OfDQor44Ki44Kq44Ok44KuLOOCouODhOODiA0KK+OCouOCquODpOODnizjg6bjgqbjgrMNCivjgqLjg6njgqQs44Oe44K144K3DQor44Ki44Op44KkLOODiOODouODiuODqg0KK+OCouODqeOCrSzjg4jjgrfjg5/jg4QNCivjgqLjg6njg6Qs44OS44Ot44Ki44KtDQor44Ki44Oq44OeLOOCt+ODs+OCpOODgQ0KK+OCouODquOCv+OCsSzjgrvjgqTjgrgNCivjgqLjgrXjg4As44K/44Kx44KqDQor44Ki44K144OSLOODpuOCpuOCuA0KK+OCouOCteODjizjgrjjg6Xjg7PjgrMNCivjgqLjgrfjg4As44K144OI44K3DQor44Ki44K344Kr44OvLOOCteODiOOCtw0KK+ODkOODkCzjg6Tjgrnjg6bjgq0NCivjg5Djg5As44K/44Kr44OP44OrDQor44OQ44OQLOOCseODs+OCuA0KK+ODgeODkCzjgrjjg6Xjg7PjgrMNCivjgrTjg4jjgqYs44Oe44K144OS44KzDQor44OB44On44KmLOOCqOOCpOOCuA0KK+ODgOOCpOODiSzjg6bjgqbjgrMNCivjg4njgqLjgqQs44Kz44Km44K4DQor44OJ44KkLOODiOODouODkuODrQ0KK+ODm+OCveOCpCzjgr/jgq/jgrgNCivjg4njgqQs44Kk44K144KqDQor44OJ44KkLOOCseODs+OCpOODgQ0KK+OCqOOCrOOCt+ODqSzjg5Ljg4fjgr/jgqsNCivjgqjjgrDjg4Es44Ok44K544OS44OtDQor44Ko44OQ44OpLOODhOODiOODoA0KK+OCqOODs+ODiSzjgrfjg7PjgqTjg4ENCivjgqjjg7Pjg4ks44K144OI44K3DQor44Ki44Oe44OqLOOCseODs+OCuA0KK+OCqOODjuODouODiCzjgq3jg6jjg58NCivjgqjjg47jg6Ljg4gs44Oe44K144OfDQor44Ko44OO44Oi44OILOOCouOCreODqQ0KK+OCqOODjuODouODiCzjg4Hjgqvjg6kNCivjgqjjgrbjgq0s44Kr44K644OS44OIDQor44OV44K444OP44OpLOODnuOCteODj+ODqw0KK+ODleOCuOOCpCzjgr/jgqvjgrcNCivjg5XjgrjjgqQs44K144OE44KtDQor44OS44Or44Kr44OvLOOCseODsw0KK+ODleOCuOOCpCzjg57jgrXjg5LjgrMNCivjg5XjgrjjgrXjg68s44OP44Or44OfDQor44OV44K444K144OvLOODkuODreODpuOCrQ0KK+ODkuOCtCzjgqvjg4Tjg6bjgq0NCivjg5Xjgrjjgr8s44OE44Oo44K3DQor44OV44K444K/LOOCv+OCq+OCtw0KK+ODleOCuOODr+ODqSzjg4jjgqrjg6sNCivjg5Xjgqvjg58s44Ok44K544Om44KtDQor44OV44Kr44K244OvLOOCv+OCseOCtw0KK+ODj+OCu+OCrOODryzjg6jjgqbjgrnjgrENCivjg5Xjgq/jg4As44K444Ol44Oz44KzDQor44OV44Kv44Oi44OILOODn+ODhOOCqg0KK+ODleOCr+ODoOODrSzjgr/jgqvjgrcNCivjg5Xjgq/jg60s44Ok44K544KzDQor44OV44Kv44K3LOODkuODreODnw0KK+ODleOCr+OCt+ODnizjgr/jgqvjg58NCivjg5Xjgq/jgrfjg54s44K344Oz44Kk44OBDQor44OP44Ku44Ov44OpLOODiOOCt+OCqg0KK+ODleOCr+OCt+ODnizjgqLjgq3jg6kNCivjg5Xjg4rjgq0s44OK44Kq44KtDQor44OV44OK44Kv44OcLOODleODn+OCqg0KK+ODj+ODqeODgCzjg5/jg47jg6sNCivjg5Xjg6vjg4/jgr8s44Oi44OI44OV44OfDQor44OV44Or44Kr44OvLOODnuODgeOCsw0KK+ODleODq+ODouODiCzjgr/jgqvjgrcNCivjg5Xjg6vjg6Qs44OI44Oi44OkDQor44OV44K344OfLOODkuODreODnw0KK+OCtOOCpuODgCzjg5/jgq3jgqoNCivjgqTjg6rjgqgs44K344Oz44K4DQor44Kk44K344OP44OpLOOCouOCreODqQ0KK+OCpOODgeOCq+ODryzjg57jgrXjg6bjgq0NCivjgqTjg5As44Oe44OfDQor44Kk44Ov44K144KtLOOCteOCqOOCsw0KK+OCpOODjuOCpuOCqCzjgqLjg6TjgrMNCivjgqTjgqTjg6Ljg6os44Oe44K144OS44OtDQor44Kk44OP44OpLOOCu+OCpOOCuA0KK+OCpOODr+ODoOODqSzjgrfjg6fjgqbjgr8NCivjgqTjg4rjgqzjgq0s44Om44Kt44KqDQor44Kk44K344K444OeLOOCq+OCuuODkuODrQ0KK+OCpOODiOOCpizjgrfjg63jgqYNCivjgrTjg7Pjg4njgqYs44K344Ol44Km44K4DQor44K044OI44KmLOOCueODn+ODrA0KK+OCpOOCt+OCq+ODryzjg57jgrXjg5LjgrMNCivjgqTjg4jjgqYs44Oe44K144OO44OWDQor44Kk44K744KtLOODquOCsw0KK+OCtOODiOOCpizjg5Ljg63jg6bjgq0NCivjg4/jg4As44OS44OH44Ki44KtDQor44OP44Ku44Ov44OpLOODn+ODr+OCsw0KK+ODj+OCruODr+ODqSzjg4jjg6LjgrMNCivjg4/jgqTjgrjjg54s44Ki44Kk44KzDQor44OP44Oe44OALOODkuODreOCtw0KK+ODj+ODnuODjizjg5Ljg63jg4TjgrANCivjg4/jg57jgqrjgqss44Kz44K544KxDQor44OP44OK44OJLOODn+ODjuODqw0KK+ODj+ODiuOCvyzjg4bjg4Tjg6QNCivjg4/jg6ks44OI44Oi44OS44KzDQor44OP44OpLOODpuOCpuOCuA0KK+ODj+ODqSzjgr/jgrHjgrcNCivjg4/jg6ks44Kt44On44Km44KzDQor44OP44Op44OALOOCt+ODsw0KK+ODj+ODqeODgCzjgr/jgrHjgrcNCivjg4/jg6njg4As44Ki44Kt44OS44OIDQor44K544K644KtLOOCv+OCseODrQ0KK+ODj+ODqeOCrCzjgr/jg4Tjg6QNCivjg4/jg6njg58s44Kx44Oz44K/44Ot44KmDQor44OP44Op44Ok44OeLOODjuODluODkuOCsw0KK+ODj+ODqeOCvuODjizjg47jg5bjg5Ljg60NCivjg4/jgrvjg5ks44K/44Kv44K4DQor44Kr44ON44KzLOODiOODouOCouOCrQ0KK+ODhOODgeODgCzjg6jjgqbjgqTjg4ENCivjg4/jgrfjg6Ljg4gs44Oq44KoDQor44OP44K344Oi44OILOODleODn+ODkuODrQ0KK+ODj+OCt+ODouODiCzjgqvjg4rjgqgNCivjg4/jgrfjg6Ljg4gs44K144OI44K3DQor44OP44K344Oi44OILOOCv+OCq+OCouOCrQ0KK+ODj+OCt+ODouODiCzjg5Ljg4fjgq0NCivjg4/jgrfjg6Ljg4gs44OS44OH44KtDQor44OP44K344Oi44OILOODqOOCt+ODkuOCsw0KK+ODj+OCvyzjgrHjgqTjgrMNCivjg4/jg4Pjg4jjg6os44OS44OH44Ki44KtDQor44OP44OD44OI44OqLOODnuOCs+ODiA0KK+ODj+ODg+ODiOODqizjgrvjgqTjgrgNCivjg4/jg6Tjgqvjg68s44Kt44Oo44K3DQor44OP44Ok44Kr44OvLOODkuODh+ODj+ODqw0KK+ODj+ODpOOCteOCqyzjg6jjgrfjgqvjgroNCivjg4/jg6TjgrXjgq0s44K744Kk44K0DQor44OP44Ok44K3LOODiOOCt+ODkuOCsw0KK+ODj+ODpOOCtyzjgr/jgqvjg6jjgrcNCivjg4/jg6Tjgrcs44K/44Kr44OK44OqDQor44OP44Ok44K3LOODpOOCueOCrQ0KK+ODj+ODpOOCtyzjgqLjgq3jg6kNCivjg4/jg6Tjgrfjg4As44Kx44Oz44K+44KmDQor44OS44OTLOOCq+OCuuODjuODlg0KK+ODkuOCrOOCtyzjg6Tjgrnjg5Ljg60NCivjg5Ljgqzjgrcs44Kr44K644KqDQor44OS44Kw44OBLOOCs+OCpuOCpOODgeODreOCpg0KK+ODkuOCuOOCq+OCvyzjgrHjg7PjgrgNCivjg5Ljgrjjg6Qs44Oo44K344KqDQor44OS44OK44KsLOOCv+OCseOCtw0KK+ODkuODqeOCq+ODryzjg5Ljg4fjgqLjgq0NCivjg5Ljg6njg44s44OS44Ot44KzDQor44OS44Op44OOLOOCpOOCv+ODqw0KK+ODkuODqeODjizjgr/jg4DjgqoNCivjg5Ljg6njgqos44K/44Kr44OS44OIDQor44OS44Op44K344OeLOODiuOCquOCrQ0KK+ODkuODqeODpOODnizjg4jjgrfjg63jgqYNCivjg5Ljg6njg6Tjgrks44OS44OI44K3DQor44OS44Oq44KtLOOCseODs+OCpOODgeODrQ0KK+ODkuODreODnuOCtSzjg6/jgr/jg6sNCivjg5Ljg63jg6Ljg4gs44K344Oz44K4DQor44OS44Ot44Kq44KrLOODnuODiuODlg0KK+ODkuODreOCuyzjg6bjg5/jgrMNCivjg5Ljg63jgrss44Oe44OE44K/44Ot44KmDQor44Km44Oh44OALOODquODp+OCpuOCpOODgQ0KK+ODm+ODs+ODgCzjgrXjg4rjgqgNCivjg5vjg7Pjg4ks44K/44Kx44K3DQor44Ob44Oq44Oi44OILOODpOOCueODpuOCrQ0KK+ODm+ODquODjizjgqvjgrrjgrfjgrINCivjg5vjg6rjgqbjg4Es44K/44Kr44ONDQor44Ob44K144KrLOOCouOCreOCsw0KK+ODm+OCt+ODjizjg57jgrPjg4gNCivjg5vjgrfjg6Tjg54s44Of44Ku44OV44OfDQor44Ob44K944Kr44OvLOODhuODhOODpA0KK+ODm+OCveOCq+ODryzjg6jjgrfjg5Ljg60NCivjg5vjgr3jgqvjg68s44K344Ky44KqDQor44Ob44K944OkLOODkuODreOCtw0KK+OCpOODkOODqeOCrSzjg47jg5bjgqoNCivjgqTjg4Hjg4/jg6ks44OS44K144Of44OEDQor44Kk44OB44OP44OpLOOCv+OCq+OCtw0KK+OCpOODgeODj+ODqSzjg47jg5bjgrMNCivjgqTjg4Hjgqvjg68s44Kx44Oz44Kk44OBDQor44Kk44OB44OO44K7LOOCteODiOOCtw0KK+OCpOODgCzjgr/jgrHjgrcNCivjgqTjg4fjgrDjg4Es44Kr44K644OS44OIDQor44Kk44OJLOODnuOCteOCtw0KK+OCpOOCrOODqeOCtyzjgqvjg4Tjg47jg5YNCivjgqTjgqzjg6njgrcs44Om44Kt44OS44KzDQor44Kk44Ks44Op44K3LOODkuODreOCtw0KK+OCpOOCpOODgCzjg5Ljg63jgqoNCivjgqTjgqTjg4As44Kr44OE44OI44K3DQor44Kk44Kk44K444OeLOOCs+OCpuOCuA0KK+OCpOOCseODgCzjg6rjg6fjgqYNCivjgqTjgrHjg4As44OI44Oi44OfDQor44Kk44Kx44OALOODiOODouODnw0KK+OCpOOCseODgCzjg6jjgqbjgrMNCivjgqTjg57jgqQs44Kz44Km44KtDQor44Kk44Oe44Kk44K644OfLOOCseOCpOOCsw0KK+OCpOODnuOCpOOCuuODnyzjg5/jg68NCivjgqTjg57jg6Djg6ks44Kq44K144OgDQor44Kk44Oe44Og44OpLOODn+ODjuODqw0KK+OCpOODouODsyzjgqvjgrrjg6bjgq0NCivjgqTjg4rjg4As44Oe44K544OfDQor44Kk44OK44Ks44KtLOOCq+OCuuODpA0KK+OCpOODiuOCrOOCrSzjg5/jg4Tjg6QNCivjgqTjg4rjg6Djg6ks44K/44Kr44K3DQor44Kk44OK44Og44OpLOODiOODouODjuODqg0KK+OCpOODjizjgrvjgqTjgqTjg4Hjg63jgqYNCivjgqTjg47jgqvjg68s44Ki44K544KzDQor44Kk44OO44Oe44K/LOOCq+OCuuODkuODiA0KK+OCpOODjuOCpuOCqCzjg5Ljg63jgqvjgroNCivjgqTjg47jgqbjgqgs44K144OI44K3DQor44Kk44OO44Km44KoLOOCt+ODmw0KK+OCpOODjuOCpuOCqCzjg6Tjgrnjg5Ljg60NCivjgqTjg47jgqbjgqgs44Om44Km44K4DQor44Kk44OO44Km44KoLOODpuOCpuOCvw0KK+OCpOODjuOCpuOCqCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqTjg4zjgqQs44K344Oz44Kk44OB44Ot44KmDQor44Kk44OM44K344OeLOODnuODpuODnw0KK+OCpOODquOCqCzjg57jgrXjg47jg6oNCivjgqTjgrXjgqss44K344Ky44OrDQor44Kk44K344OQLOODgeODkuODrQ0KK+OCpOOCt+ODkOOCtyzjg4DjgqTjgrnjgrENCivjgqTjgrfjg5Djgrcs44OS44OH44KtDQor44Kk44K344OALOODkuODreODn+ODhA0KK+OCpOOCt+ODgCzjg5Ljg63jgrcNCivjgqTjgrfjg4As44Kr44OE44OS44OtDQor44Kk44K344OALOOCseOCpOOCpOODgQ0KK+OCpOOCt+OCrOODnyzjgrPjgqbjgqTjg4ENCivjgqTjgrfjgrDjg60s44Kz44Km44K4DQor44Kk44K344OP44OpLOODnuODquOCsw0KK+OCpOOCt+OCpCzjg57jgrXjg5Ljg60NCivjgqTjgrfjgqQs44OK44Kq44OfDQor44Kk44K344KkLOODjuODnOODqw0KK+OCpOOCt+OCpCzjgrvjg4TjgrMNCivjgqTjgrfjgqQs44K/44OA44K3DQor44Kk44K344KkLOOCv+OCq+ODj+ODqw0KK+OCpOOCt+OCq+ODryzjg4jjgrfjgqoNCivjgqTjgrfjg57jg6ss44OE44Oo44K3DQor44Kr44Ov44K6LOODqOOCpuOCpOODgQ0KK+OCpOOCt+OCuuOCqyzjg6bjgq3jgqoNCivjgqTjgr/jg6Qs44OO44Oq44OS44K1DQor44Kk44Kk44OALOOCouOCreODkuODrQ0KK+OCpOODiOOCpizjg5Ljg63jg5/jg4ENCivjgqTjg4jjgqYs44OS44Ot44K3DQor44Kk44OI44KmLOOCpOOCr+OCqg0KK+OCpOODiOOCpizjgqvjgrrjg6QNCivjgqTjg4jjgqYs44K344On44Km44KzDQor44Kk44OI44KmLOOCq+OCuuODkuODrQ0KK+OCpOODiOOCpizjgrjjg6Xjg7MNCivjgqTjg4jjgqYs44Oe44Kz44OIDQor44Kk44OI44KmLOOCquOCteODoA0KK+OCpOODiOOCpizjg6jjgrfjg57jgrUNCivjgqTjg4jjgqYs44Oe44K144Om44KtDQor44Kk44OI44KmLOODnuOCteODnw0KK+OCpOODiOOCpizjg5Ljg63jgqLjgq0NCivjgqTjg4jjgqYs44K/44Oe44KtDQor44Kk44OI44KmLOOCreODqOOCv+OCqw0KK+OCpOODiOOCpizjg57jgrXjg5Xjg58NCivjgqTjg4jjgqYs44OS44Ot44Kr44K6DQor44Kk44OI44KmLOODpuOCreOCqg0KK+OCpOODiOOCpizjgqjjgqTjgrgNCivjgqTjg4jjgqYs44Of44Ob44KzDQor44Kk44Ov44KkLOOCv+OCq+ODpuOCrQ0KK+OCpOODr+OCpCzjgqvjgrrjgrfjgrINCivjgqTjg6/jg58s44Kt44Oo44K3DQor44Kk44Ov44Og44OpLOODqOOCt+OCv+OCqw0KK+OCpOODr+ODiuOCrCzjg4rjgqrjgrMNCivjgqTjg6/jgqos44Kr44K644Ki44KtDQor44Kk44Ov44K144KtLOODquODpeOCpuOCsw0KK+OCpOODr+OCvyzjgq3jg6jjgrMNCivjgqTjg6/jgr8s44Of44OE44OS44OtDQor44Kk44Ov44K/LOOCt+ODs+OCuA0KK+OCpOOCuuODnyzjg47jgr7jg6ANCivjgrjjg7Pjg5As44OE44ON44OO44OqDQor44OO44Km44OBLOODquOCqA0KK+ODqeOCryzjg6jjgrfjg47jg6oNCivjgqvjgqzjg58s44OS44Ot44K3DQor44Kr44Ks44OvLOOCseOCpOOCvw0KK+OCq+OCsuODpOODnizjgr/jg57jgq0NCivjgqvjgqQs44K444Ol44OzDQor44Kr44K444Oi44OILOOCv+OCr+ODpA0KK+OCq+OCuOODr+ODqSzjgrvjgqTjgrgNCivjgq/jg6rjg4/jg6ks44Ko44Kk44K4DQor44Kr44Kt44Og44OpLOOCuOODpeODsw0KK+OCq+OCreODjuOCrSzjgr/jgqvjgqLjgq0NCivjgqvjgq3jgqbjg4Es44OS44Ot44Om44KtDQor44Kr44Kt44K244KtLOOCs+OCpuOCuA0KK+OCq+OCsyzjg4jjgrfjg5LjgrMNCivjgqvjg6Hjgrfjg54s44OA44Kk44K544KxDQor44Kr44Of44Ko44K5LOOCqOOCpOOCpOODgQ0KK+OCq+ODn+OCr+ODqSzjg5Ljg63jgrcNCivjgqvjg5/jg6Djg6ks44Kz44Km44Kk44OB44Ot44KmDQor44Kr44Of44K/44KtLOODnuOCteOCuA0KK+OCq+ODn+ODqOOCt+OCq+ODryzjg57jgrXjg6bjgq0NCivjgqvjg7Ms44K/44Kv44OkDQor44Kr44OK44KkLOODiOOCt+OCq+OCug0KK+OCq+ODs+ODkOODpOOCtyzjgqTjg4Hjg63jgqYNCivjgqvjg7Pjg4As44Oo44K344OS44OIDQor44Kr44ON44KzLOOCv+OCq+ODpuOCrQ0KK+OCq+ODjeOCsyzjg6Tjgrnjg6bjgq0NCivjgqvjg43jgr8s44K/44Kr44K3DQor44Kr44OO44KmLOODnuODpuODnw0KK+OCq+ODquODjizjg5Ljg63jgrcNCivjgqvjgrXjg58s44Kr44OK44KoDQor44Kr44K144OK44OfLOOCv+OCq+ODiA0KK+OCq+OCuyzjg57jg6Ljg6sNCivjgqvjgrnjgqws44OS44Ot44K3DQor44Kr44K544OkLOODnuOCteODiuODqg0KK+OCq+OCv+OCquOCqyzjg47jg6rjgrMNCivjgqvjg4jjgqYs44OK44Kq44KzDQor44Kr44OI44KmLOODkuODreOCtw0KK+OCq+ODiOOCpizjg57jgrXjg6bjgq0NCivjgqvjg4jjgqYs44OO44Oq44Ki44KtDQor44Kr44OI44KmLOOCv+ODgOOCouOCrQ0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44OI44KmLOOCv+OCq+ODpuOCrQ0KK+OCq+ODiOOCpizjgqLjgq3jg5Ljg4gNCivjgqvjg4jjgqYs44K444Ot44KmDQor44Kr44OE44Oe44K/LOOCr+ODnw0KK+OCq+ODhOODqSzjg57jgrXjgq0NCivjgqvjg6/jg5ks44Oo44K344Om44KtDQor44Kr44Ov44OALOOCv+OCseOCtw0KK+OCq+ODr+OCsOODgSzjg5Ljg4fjgq0NCivjgrXjgqTjg4jjgqYs44OS44OH44K/44KrDQor44Kr44Ov44Kw44OBLOOCpOOCr+OCsw0KK+OCq+ODr+ODj+OCvyzjgqvjgqrjg6oNCivjgqvjg6/jgqvjg58s44Kr44K644Oo44K3DQor44Kr44Ov44Kr44OfLOOCseODs+OCpOODgQ0KK+ODpOOCuOODnizjg5/jg4Tjg6gNCivjgqvjg6/jg6Ljg4gs44OE44Oo44K3DQor44Kr44Ov44Og44OpLOODkuODh+OCouOCrQ0KK+OCq+ODr+ODoOODqSzjg5Ljg63jgrcNCivjgqvjg6/jg6Djg6ks44K444Ol44Oz44Kk44OBDQor44Kr44Ov44Og44OpLOODnuODqg0KK+OCq+ODr+ODjizjg57jgrXjg5LjgrMNCivjgqvjg6/jg44s44Oe44K144Kr44OEDQor44Kr44Ov44K144KtLOOCt+OCsuODpuOCrQ0KK+OCq+ODr+OCuyzjgrHjg7PjgrgNCivjgqvjg6/jgrfjg54s44OI44K344OkDQor44Kr44Ov44K344OeLOODqOOCt+ODj+ODqw0KK+OCq+ODr+OCt+ODnizjg5Ljg4fjgq0NCivjgqvjg6/jgrfjg54s44Ok44K544OO44OWDQor44Kt44OALOODn+ODjuODqw0KK+OCreOCr+ODgSzjgqvjgrrjg6QNCivjgq3jgq/jg4Es44K/44Kr44OS44OHDQor44Ok44Oe44Oi44OILOODpOOCueODkuODrQ0KK+OCouOCreODqOOCtyzjg6Tjgrnjg5Ljg60NCivjgq3jgq/jg4Es44Oe44Oi44OrDQor44Kt44Kv44OBLOOCv+ODhOODpA0KK+OCreOCr+ODgSzjg5/jg4Tjg6sNCivjgq3jgq/jg4Es44Ki44Kt44KzDQor44Kt44Og44OpLOODleODn+ODkuOCsw0KK+OCreODoOODqSzjg57jgrXjg5LjgrMNCivjgq3jg6Djg6ks44Ki44Kt44OS44KzDQor44Kt44Og44OpLOOCouODhOOCtw0KK+OCreODoOODqSzjg5Ljg63jgrcNCivjgq3jg6Djg6ks44Oe44K144KtDQor44Kt44Og44OpLOODn+ODjuODqw0KK+OCq+ODiOOCpizjgrfjg6fjgqbjgrgNCivjgq3jg4rjgrss44Om44Km44K4DQor44Kt44ONLOODnuOCteOCsw0KK+OCreODjizjgqLjgq0NCivjgq3jg44s44Kr44K644OS44OtDQor44Kt44OO44K344K/LOOCseOCpOOCvw0KK+OCreODqSzjg6jjgqbjgrMNCivjgq3jgrfjg6Ljg4gs44OI44Kq44OrDQor44Kt44K/44OQ44K/44KxLOOCouOCreOCqg0KK+OCreOCv+ODkOOCv+OCsSzjgr/jgqvjg5LjgrMNCivjgq3jgr/jgqzjg68s44Kq44K144OgDQor44Kt44K/44Ks44OvLOODgeOCq+OCsw0KK+OCreOCv+ODoOODqSzjg5Ljg63jgqLjgq0NCivjgr/jgqvjg4/jgrcs44Oh44Kw44OfDQor44Kt44K/44Ok44OeLOOCqOOCpOOCuA0KK+OCreODqOODiuODqizjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44Kt44Oo44K3DQor44Kz44OQ44Ok44K3LOODiOOCt+ODkuODrQ0KK+OCs+ODkOODpOOCtyzjgqLjgq3jgrMNCivjgrPjg5Djg6Tjgrcs44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjg5Ljg63jgqLjgq0NCivjgrPjg5Djg6Tjgrcs44OK44Kq44KtDQor44Kk44OI44KmLOOCt+ODs+OCuA0KK+OCs+ODs+ODjizjg6jjgqbjgqTjg4ENCivjgrPjg7Pjg44s44K/44Kr44Of44OEDQor44Kz44Oz44OOLOODkuODreOCtw0KK+OCs+ODs+ODjizjgqvjgrrjgqLjgq0NCivjgrPjgqTjgrEs44OI44Oi44OV44OfDQor44Kz44K444OeLOODr+OCv+ODqw0KK+OCs+OCr+OCt+ODp+OCpizjg57jgrXjg6sNCivjgrPjg57jgq0s44Kr44K644OkDQor44Oe44Kr44OZLOOCteODluODreOCpg0KK+OCs+ODnuODhCzjgr/jgrHjgrcNCivjgrPjg57jg4Qs44OS44Ot44KoDQor44Kz44Oz44OJLOOCt+ODsw0KK+OCs+ODs+ODiSzjgr/jgq/jg58NCivjgrPjg7Pjg4ks44Oe44K144Om44KtDQor44Kz44K344OQLOODn+OCrQ0KK+ODqOOCs+OCqCzjg6Tjgrnjg47jg6oNCivjgrPjg4bjgqzjg68s44Oe44K144OO44OqDQor44Kz44Oz44OOLOOCq+OCuuOCouOCrQ0KK+OCs+ODpOODnizjg6zjgqTjgrMNCivjgrPjg6Tjg54s44Oi44OI44Kv44OLDQor44Kz44Ok44OeLOODkuODreOCv+OCqw0KK+OCs+OCtuOCuSzjg4jjgrfjg47jg6oNCivjgq/jg4HjgqTjgrcs44Kr44K644OI44K3DQor44Kv44Ku44Of44OkLOODquODpeOCpuOCueOCsQ0KK+OCr+OCuOODqeOCpCzjgqLjg4TjgrcNCivjgq/jg57jg47jg5/jg4ks44OS44Ot44K3DQor44Kv44Oe44K244KtLOODiOODouOCrQ0KK+OCr+ODrOODnuODhCzjgr/jgqvjg5Ljg4cNCivjgq/jg6rjgq0s44Oe44K144Om44KtDQor44Kv44Oq44Ok44OeLOODiOOCt+ODreOCpg0KK+OCr+ODquODpOODnizjg5Ljg63jgrcNCivjgq/jg63jg5ks44OK44Kq44OIDQor44Kv44Ot44K144OvLOODiOODouOCouOCrQ0KK+OCr+ODreOCteODryzjg6Tjgrnjg6bjgq0NCivjgq/jg6rjg6XjgqYs44Oo44K344KoDQor44Kv44K144OOLOOCq+ODhOODpuOCrQ0KK+OCr+ODr+ODj+ODqSzjgrjjg6Xjg7MNCivjgq/jgrrjg44s44Oo44K344K/44KrDQor44Kt44Ol44Km44OALOOCv+OCr+ODpA0KK+ODnuODluODgSzjgrHjg7PjgqTjg4ENCivjg57jg4Hjgr8s44Oe44K144KtDQor44Oe44Ko44OALOODqOOCpuOCpOODgQ0KK+ODnuOCqOOCpOOCqCzjgqLjgq3jg5Xjg58NCivjg57jgqjjgqvjg68s44OB44Ki44KtDQor44Oe44Oe44OALOODkuODreOCtw0KK+ODnuODiuODmSzjg5Ljg63jgr/jgqsNCivjg57jg4rjg5ks44Kr44K644KqDQor44Oe44Or44Kk44OBLOODnuOCteODpuOCrQ0KK+ODnuODq+OCv+ODiyzjgr/jgqvjg5Ljg4cNCivjg57jg6vjg6Tjg54s44K/44Kr44KzDQor44Oe44K144Kq44KrLOOCv+OCq+ODpuOCrQ0KK+ODnuOCueODgCzjgr/jg4Tjg58NCivjg57jgrnjg4As44OE44Oo44K3DQor44Oe44K544OALOODqOOCt+ODluODnw0KK+ODnuOCueODgCzjg6bjgq3jgrMNCivjg57jgrnjg4As44OS44Ot44Kr44K6DQor44Oe44OE44OQ44OpLOOCs+OCpuOCvuOCpg0KK+ODnuODhOODgCzjgqvjg4Tjg6QNCivjg57jg4Tjg4As44OS44Ot44Om44KtDQor44Oe44OE44OA44Kk44OpLOODiOOCt+ODleODnw0KK+ODnuODhOOCqOODgCzjgqLjg6bjg58NCivjg57jg4TjgqQs44OS44OH44K3DQor44Oe44OE44KkLOODkuODreOCrQ0KK+ODnuODhOODouODiCzjg47jg5bjgqoNCivjg57jg4Tjg6Ljg4gs44K744Kk44Kk44OBDQor44Oe44OE44Oi44OILOOCq+OCuuODkuODrQ0KK+ODnuODhOODouODiCzjgq3jg6jjgqvjgroNCivjg57jg4Tjg6Ljg4gs44Kt44On44Km44KzDQor44Oe44OE44Oi44OILOODqOOCt+OCrQ0KK+ODnuODhOODouODiCzjg4rjg6rjgqLjgq0NCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OO44OqDQor44Oe44OE44Oi44OILOOCseODsw0KK+ODnuODhOODouODiCzjg4jjgrfjgqvjgroNCivjg57jg4Tjg6Ljg4gs44Kx44OzDQor44Oe44OE44Oi44OILOODgOOCpA0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg6bjgq0NCivjg57jg4Tjg6Djg6ks44Kv44OfDQor44Oe44OE44OK44KsLOOCseODs+OCuOODreOCpg0KK+ODnuODhOODjizjgqvjgrrjg4gNCivjg57jg4Tjgqos44Oq44Ol44Km44Kk44OBDQor44Oe44OE44KqLOOCv+OCq+OCqg0KK+ODnuODhOOCquOCqyzjgr/jgrHjgrcNCivjg57jg4Tjgqrjgqss44Kr44K644OO44OqDQor44Oe44OE44Kq44KrLOOCv+ODgOOCouOCrQ0KK+ODnuODhOOCquOCqyzjg5Ljg63jgrcNCivjg57jg4Tjgqrjgqss44Ki44OE44K3DQor44Oe44OE44K344OeLOOCreODn+OCqg0KK+ODnuODhOOCv+ODiyzjgqLjg6QNCivjg57jg4Tjg6Tjg54s44Kz44Km44K/44Ot44KmDQor44Of44OB44Oi44OILOODnuODpuODnw0KK+ODn+OCqOOCrSzjgr/jgq/jg63jgqYNCivjg5/jgqvjg58s44Kr44K644OfDQor44Of44Kr44OfLOODqOOCt+OCv+OCqw0KK+ODn+ODiuOCrOODryzjg4Tjg6jjgrcNCivjg5/jg4rjgqvjg68s44K344On44Km44KzDQor44Of44K344OeLOOCq+OCuuODnw0KK+ODn+OCt+ODnizjgrfjg47jg5YNCivjg5/jgrfjg54s44OS44Ot44Ki44KtDQor44Of44K/44OBLOOCs+OCpuOCuA0KK+ODn+ODhOODgCzjg4rjgqrjgq0NCivjg5/jg4Tjg4/jgrcs44K444Ol44OzDQor44Of44OE44KkLOODkuODreOCtw0KK+ODn+ODhOODouODiCzjgq3jg6jjg58NCivjg5/jgqbjg6ks44Kt44On44Km44K4DQor44Of44Km44OpLOODnuOCteODkuODrQ0KK+ODn+ODpOODmSzjgqLjgq3jg6kNCivjg5/jg6Tjg4Es44Oe44K144Om44KtDQor44Of44Ok44K444OeLOOCouOCreODjuODqg0KK+ODkOODsyzjg57jg4rjg5YNCivjg5/jg6Tjg6Ljg4gs44OI44K344Ki44KtDQor44Oo44Kz44KoLOOCs+OCpuOCvuOCpg0KK+ODn+ODpOOCteOCqyzjgrHjgqTjgqTjg4ENCivjg5/jg6Tjgr8s44OS44Ot44Om44KtDQor44Of44Ok44K/LOOCq+OCuuOCqg0KK+ODn+ODpOOCpuODgSzjg57jgrXjg5Ljg60NCivjgqbjg4Hjg6Tjg54s44Of44Kt44KzDQor44K144Kr44KkLOODquODp+OCpuOCueOCsQ0KK+ODn+ODpOOCtuODryzjg4jjgrfjgqLjgq0NCivjg5/jgr7jg5bjg4Es44Ko44Kk44KzDQor44Of44K+44Kw44OBLOOCouOCreODqQ0KK+ODn+OCvuOCsOODgSzjgqTjgrrjg58NCivjg5/jgrrjg6Ljg4gs44Ki44OE44OS44KzDQor44Of44K644OOLOODnuOCteODqOOCtw0KK+ODn+OCuuODjizjg57jgrXjg6bjgq0NCivjg5/jgrrjg44s44Om44Km44K4DQor44Of44K644K344OeLOODpuOCreOCqg0KK+ODn+OCuuOCvyzjg6bjgr/jgqsNCivjg5/jgrrjgr/jg4ss44OS44K144OIDQor44Oi44KuLOOCq+OCuuODjuODqg0KK+ODouOCrizjg6Ljg6bjg6sNCivjg6Ljgq4s44OS44Ot44K3DQor44Oi44Oi44K7LOODgOOCpOOCueOCsQ0KK+ODouODs+ODnizjg6bjgqbjgrgNCivjg6Ljg6os44Os44Kk44KzDQor44Oi44OqLOOCseOCpOOCueOCsQ0KK+ODouODqizjgrHjg7PjgqTjg4ENCivjg6Ljg6os44Oe44K144OS44OtDQor44Oi44OqLOODquOCqw0KK+ODouODqizjg4Tjg4jjg6ANCivjg6Ljg6rjg6Ljg4gs44Om44Kt44OS44OtDQor44Oi44Oq44OOLOODqOOCpuOCueOCsQ0KK+ODqOOCt+ODgCzjg4rjgqrjg5Xjg58NCivjg6Ljg6rjgr8s44OS44OH44OO44OWDQor44Oi44Oq44K/LOOCq+OCuuODkuOCtQ0KK+ODouODquOCvyzjgqvjg4Tjg58NCivjg6Ljg6rjgr8s44Oo44K344OkDQor44Oi44Oq44K/LOOCt+OCsuOCqg0KK+ODouODquODr+OCrSzjgr/jgq/jgqoNCivjg6Ljg60s44Oo44K344Ot44KmDQor44Oi44K/44KkLOODkuODreOCtw0KK+ODouODiOODkOODpOOCtyzjgrXjg4jjg6sNCivjg6Ljg4jjg4/jgrcs44K344Ky44Oe44K1DQor44Oi44OI44Ok44OeLOODnuOCteODjuODqg0KK+ODouODiOOCtuODryzjg6bjgqbjgrgNCivjg6Djgqvjg68s44Kk44OE44KzDQor44Og44OK44Kr44K/LOODleODn+OCsw0KK+ODoOODqeOCq+ODnyzjg5Ljg63jgqLjgq0NCivjg6Djg6njgqvjg58s44Oo44K344KtDQor44Og44Op44Kr44OfLOODkuODreODpuOCrQ0KK+ODoOODqeOCq+ODnyzjg6TjgrnjgrMNCivjg6Djg6njgqvjg58s44Ki44Kt44OS44K1DQor44Og44Op44Kr44OvLOODnuOCteOCsw0KK+ODoOODqeODiuOCqyzjg57jg6bjgrMNCivjg6Djg6njgr8s44OI44Oi44OO44OqDQor44Og44Op44K/LOODkuODreOCrQ0KK+ODoOODqeODpOODnizjgrHjg7PjgrgNCivjg6Djg6njg6Tjg54s44OS44Ot44K3DQor44Og44Ot44OP44K3LOOCs+OCpuOCuA0KK+ODoOODiOOCpizjgqvjgqrjg6sNCivjg6Djg4jjgqYs44Ki44Kt44KzDQor44OK44OQLOODkuODreODpuOCrQ0KK+ODiuOCrOOCpCzjg57jgrXjg6sNCivjg4rjgqzjgqQs44OK44Kq44Ki44KtDQor44OK44Ks44OOLOOCq+ODhOODpA0KK+ODiuOCrOODjizjgr/jg57jg58NCivjg4rjgqzjgqos44Ok44K544OS44OtDQor44Ok44Oe44Oi44OILOOCq+OCuuODkuODrQ0KK+ODiuOCrOOCquOCsSzjgrXjg4jjgrcNCivjg4rjgqzjgqrjgrUs44Ki44Kt44OS44OtDQor44OK44Ks44K344OeLOOCq+ODhOODpA0KK+ODiuOCrOOCt+ODnizjgq/jg58NCivjg4rjgqzjgr8s44Of44KtDQor44Kq44Kq44OQLOOCteODiOOCtw0KK+ODiuOCrOOCvyzjgrfjg7PjgrgNCivjg4rjgqzjgr8s44K344On44Km44OY44KkDQor44OK44Ks44K/44OLLOODhOODqOOCtw0KK+ODiuOCpOODiOOCpizjg6Tjgrnjg47jg6oNCivjg4rjgqvjg4Es44Oo44K344OP44OrDQor44OK44Kr44OALOODqOOCt+ODpuOCrQ0KK+ODiuOCq+ODgOOCpCzjg6bjgqbjgqTjg4ENCivjg4rjgqvjgqzjg68s44OK44Kq44Om44KtDQor44OK44Kr44Ks44OvLOODqOOCt+ODpuOCrQ0KK+ODiuOCq+OCrOODryzjgqLjg4TjgrcNCivjg4rjgqvjgqzjg68s44OS44Ot44Om44KtDQor44OK44Kr44OP44OpLOOCuOODpeODsw0KK+ODiuOCq+OCpCzjgrHjgqTjgqTjg4ENCivjg4rjgqvjgqQs44K344OODQor44OK44Kr44K444OeLOOCv+OCq+OCtw0KK+ODiuOCq+OCuOODnizjgrPjgqbjgrgNCivjg4rjgqvjg6Djg6ks44K344Ol44Km44K0DQor44OK44Kr44Og44OpLOODnuOCteODpuOCrQ0KK+OCreODn+ODkuODqSzjg5/jgqsNCivjgqTjg4jjgqYs44K/44Kr44OS44K1DQor44OK44Kr44Og44OpLOOCs+OCpuOCuA0KK+ODiuOCq+ODoOODqSzjgr/jg4Tjg6QNCivjg4rjgqvjg6Djg6ks44Kr44K644Om44KtDQor44OK44Kr44Og44OpLOODj+OCuOODoQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqLjgq0NCivjg4rjgqvjg6Djg6ks44OS44Ot44KtDQor44OK44Kr44Og44OpLOODn+OCrQ0KK+ODiuOCq+ODoOODqSzjg4jjg6LjgqoNCivjg4rjgqvjg4vjgrcs44Kk44K644OrDQor44OK44Kr44OL44K3LOOCv+OCq+ODkuODrQ0KK+ODiuOCq+ODjizjg6bjgqbjgrMNCivjg4rjgqvjg44s44Ok44K544Ki44KtDQor44OK44Kr44OOLOODhuODhOODpA0KK+ODiuOCq+ODjizjgqvjgrrjg47jg6oNCivjg4rjgqvjg44s44Ki44OE44K3DQor44OK44Kr44KqLOOCouOCreOCsw0KK+ODiuOCq+OCteOCryzjgrfjg6fjgqbjgr/jg4QNCivjg4rjgqvjgrss44OS44Ot44K/44KrDQor44OK44Kr44K/LOOCr+ODq+ODnw0KK+ODiuOCq+OCvyzjg5Ljg63jg58NCivjg4rjgqvjgr8s44Ok44K544OS44OtDQor44OK44Kr44K/44KxLOOCv+OCr+OCqg0KK+ODiuOCq+ODpOODnizjg5Xjg5/jgqoNCivjg4rjg5/jgq0s44Kx44Kk44K3DQor44OK44OK44K144OvLOODiuODn+OCuA0KK+ODiuODs+ODkCzjg4DjgqTjgrnjgrENCivjg4rjg7Pjg6Ljgq8s44Ko44Of44KzDQor44ON44Oi44OILOODiuODhOOCsw0KK+ODjeODouODiCzjg5/jg4TjgqLjgq0NCivjg4vjgqQs44Oo44K344KzDQor44OL44Kk44OHLOODkuODh+ODhOOCsA0KK+ODi+OCpOOCr+ODqSzjg5Ljg4fjg6QNCivjg4vjgqTjgrrjg54s44K/44Kk44OB44Ot44KmDQor44OL44Kr44OfLOOCouOCreODqQ0KK+ODi+OCt+ODkOODpOOCtyzjg57jgrXjg5LjgrMNCivjg4vjgrfjg4As44Oo44K344OkDQor44OL44K344OP44OpLOOCt+OCreOCsw0KK+ODi+OCt+ODj+ODqSzjgrXjg4jjgrcNCivjg4vjgrfjgqvjg68s44K/44Kr44OS44OtDQor44OL44K344Kr44K8LOOCq+OCuuODjuODqg0KK+ODi+OCt+ODn+ODpCzjgrXjg4jjgrcNCivjg4vjgrfjg6Djg6ks44K344Oz44Kk44OBDQor44OL44K344Og44OpLOOCreODr+ODoA0KK+ODi+OCt+ODpOODnizjg5Ljg4jjgrcNCivjg4vjgrfjg6Tjg54s44Oi44OI44Ki44KtDQor44OL44OD44K/LOOCq+ODhOOCouOCrQ0KK+ODi+ODryzjgq3jg6jjgrcNCivjg4jjgqbjgrTjgqYs44Oe44OK44OWDQor44OL44OvLOOCq+ODhOODpA0KK+ODjuODluODj+ODqSzjgrPjgqbjgrgNCivjgqrjgqzjg68s44Om44Km44KzDQor44OO44Ks44OfLOOCquOCteODoA0KK+ODjuOCrOODnyzjgrjjg6Xjg7PjgqTjg4ENCivjg47jg6Ljg4gs44Of44KrDQor44OO44Og44OpLOODnuODiuODlg0KK+ODjuODoOODqSzjgr/jgqvjg5Ljg60NCivjg47jgr7jgqgs44OP44K444OhDQor44OM44Oe44K/LOODhuODhA0KK+OCquODgOOCuOODnizjgqjjg6oNCivjgqrjgqrjgqzjgqjjg6os44OI44Kq44OrDQor44Kq44Ks44K/LOODkuODh+OCrQ0KK+OCquOCrOODryzjgrfjgrLjg6sNCivjgqrjgqzjg68s44K/44Kx44KqDQor44Kq44Kq44KuLOOCv+OCseOCtw0KK+OCquOCruOCr+ODnCzjg6jjgqbjgrjjg63jgqYNCivjgqrjgrQs44OI44Oi44KtDQor44Kq44Kw44OpLOODkuODreODpuOCrQ0KK+OCquOCquODkCzjg4jjg6Ljg5Ljg60NCivjgqrjgqrjg5Djg6Tjgrcs44Oo44Oq44KzDQor44Kq44Kq44KoLOODqOOCpuOCpOODgQ0KK+OCquOCquOCrOODnizjgrPjgqbjgqTjg4ENCivjgqrjg4/jgrcs44OK44Kq44KtDQor44Kq44Kq44Kk44K3LOOCseODs+OCuA0KK+OCquOCquOCq+ODryzjg6Tjgrnjg5LjgrMNCivjgqrjgqrjgq3jg4ks44Oe44K144KqDQor44Kq44Kq44Kv44OcLOODkuODreODpuOCrQ0KK+OCquOCquOCr+ODnCzjg5Ljg63jg5Xjg58NCivjgqrjgqrjgq/jg54s44Oe44Kz44OIDQor44Kq44OeLOODnuODouODqw0KK+OCquODnuOCqCzjg6Djg4Tjg63jgqYNCivjgqrjg57jgqgs44K/44Kr44K3DQor44Kq44Kq44Oi44OqLOODiOODouODkuODrQ0KK+OCquOCquODouODqizjg5/jg4Tjg6jjgrcNCivjgqrjgqrjg6Ljg6os44OK44Kq44KtDQor44Kq44Kq44Oi44OqLOODkuODreOCrQ0KK+OCquOCquODouODqizjg57jgrXjg6TjgrkNCivjgqrjgqrjg6Ljg4gs44Of44OE44OrDQor44Kq44Kq44OL44K3LOOCouOCpOOCsw0KK+OCquOCquODi+OCtyzjgrHjg7PjgrgNCivjgqrjgqrjg4vjgrcs44Oe44K144OG44OrDQor44Kq44OOLOOCouOCreODqQ0KK+OCquOCquODjOODnizjg5Ljg63jgq0NCivjgqrjgqrjgrXjgqss44Oq44K1DQor44Kq44Kq44K144OvLOOCv+OCq+ODkuODrQ0KK+OCquOCquOCteODryzjgrnjg5/jgrMNCivjgqrjgrfjg54s44K/44Kr44K3DQor44Kq44K344OtLOOCt+ODs+OCpOODgQ0KK+OCquOCquOCvyzjgqLjgrXjgrMNCivjgqrjgqrjgr8s44Ki44OE44KqDQor44Kq44Kq44K/LOODkuODh+ODpuOCrQ0KK+OCquOCquOCvyzjg57jgrXjg58NCivjgqrjgqrjgr8s44Og44ON44Ok44K5DQor44Kq44Kq44K/LOOCt+ODs+OCpOODgeODreOCpg0KK+OCquOCquOCv+ODiyzjg6Tjgrnjg5Ljg60NCivjgqrjgqrjg4Qs44OS44Ot44Om44KtDQor44Kq44Kq44OE44KrLOOCv+OCq+OCtw0KK+OCquOCquODhOOCrSzjgqLjgq3jg5Ljg60NCivjgqrjgqTjgqvjg68s44Of44OB44KqDQor44Kq44KrLOODqOOCt+ODkuOCtQ0KK+OCquOCqyzjg5Ljg4fjgq0NCivjgqrjgqss44OV44Of44KzDQor44Kq44Kr44OALOODn+OCrQ0KK+OCquOCq+ODgCzjg6TjgrnjgrcNCivjgqrjgqvjg4As44Om44Km44Kk44OBDQor44Kq44Kr44OALOOCteODiOODqw0KK+OCquOCq+OCsOODgSzjg47jg5bjg5Ljg60NCivjgqrjgqvjgqQs44Om44K/44KrDQor44Kq44Kr44Oe44OELOOCv+OCq+ODkuODrQ0KK+OCquOCq+ODouODiCzjg6jjgrfjgqLjgq0NCivjgqrjgqvjg6Ljg4gs44Ko44Kk44Kk44OBDQor44Kq44Kr44Oi44OILOODkuODh+OCqg0KK+OCquOCq+ODouODiCzjg57jgrXjg5bjg58NCivjgqrjgqvjg6Ljg4gs44Oe44K144OS44OtDQor44Kq44Kr44Oi44OILOODn+ODgeODj+ODqw0KK+OCquOCq+ODouODiCzjg47jg6rjgqoNCivjgqrjgqvjg44s44OI44Oi44OS44OtDQor44Kq44Kr44K244KtLOODpuOCreODiA0KK+OCquOCreODouODiCzjgqjjg4TjgrMNCivjgqrjgq/jg44s44Oo44K344K/44OfDQor44Kq44Kv44Ok44OeLOODpOOCueOCqg0KK+OCquOCquODnyzjgrfjgrLjg6sNCivjgqrjgqrjg44s44OK44Kq44KtDQor44Kq44Kq44OOLOODkuODreODleODnw0KK+OCquOCquODjizjg5Ljg63jgrcNCivjgqrjgqrjg47jgrss44K444Ol44Oz44KzDQor44Kq44OO44K244KtLOOCv+OCq+OCtw0KK+OCquODquOCqCzjg6jjgrfjgrMNCivjgqrjgrbjgq0s44Oe44K144KzDQor44OI44Kv44Of44OkLOODhuODhOODpA0KK+OCteOCpOODgSzjgqvjgqrjg6oNCivjgrXjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44K144Kk44OI44KmLOODkuODiOOCrQ0KK+OCteOCpOODiOOCpizjg5Ljg4fjgqLjgq0NCivjgrXjgqTjg4jjgqYs44OS44Ot44K/44KrDQor44K144Kk44OI44KmLOODpuOCv+OCqw0KK+OCteOCpOODiOOCpizjg6Tjgrnjg5LjgrMNCivjgrXjgqTjg4jjgqYs44K/44Kk44K3DQor44K144Kk44OI44KmLOOCq+OCquODqw0KK+ODj+OCq+ODnuODgCzjgqvjg6gNCivjgrXjgqvjgrDjg4Es44Kz44Km44K4DQor44K144Kr44KkLOODnuODquOCsw0KK+OCteOCq+OCreODkOODqSzjgr/jgqvjgqoNCivjgrXjgqvjgq3jg6Ljg4gs44Oo44K344KoDQor44K144Kr44Oi44OILOOCqOOCpOOCuA0KK+OCteOCq+ODouODiCzjgqjjg6oNCivjgrXjgqvjg6Ljg4gs44OS44OH44OS44OtDQor44K144Kr44Oi44OILOOCpOOCuuODnw0KK+OCteOCq+ODouODiCzjgrHjgqTjgqTjg4ENCivjg5/jgr/jg4ss44Kx44Oz44Kk44OBDQor44K144Kr44Km44OBLOOCr+ODi+ODkuOCsw0KK+OCteOCreODouODiCzjg57jgrXjg5LjgrMNCivjgrXjgq/jg54s44Of44OE44OrDQor44K144Kv44Op44KkLOODouODiOODjuODqg0KK+OCteODjizjg6rjgq3jg6QNCivjgrXjg44s44Oq44Ol44Km44Kk44OBDQor44K144OOLOOCt+ODpeOCpuOCvuOCpg0KK+OCteOCteODgCzjgrfjg6Xjg7PjgrnjgrENCivjgrXjgrXjg4/jg6ks44K544K544OgDQor44K144K144KtLOOCv+OCq+ODkuODiA0KK+OCteOCteOCrSzjg4jjgrfjg5LjgrMNCivjgrXjgrXjgq0s44Ok44K544OV44OfDQor44OI44OA44OLLOODhOODqOOCtw0KK+OCteOCteOCrSzjgrvjgqTjgrgNCivjgrXjgr/jgrEs44OE44ON44OO44OqDQor44K144OI44KmLOODpOOCueODkuODrQ0KK+OCteODiOOCpizjgrfjg7PjgrQNCivjgrXjg4jjgqYs44OS44K144OP44OrDQor44K144OI44KmLOODpuOCpuOCpOODgQ0KK+OCteODiOOCpizjg6jjgrfjgqLjgq0NCivjgrXjg4jjgqYs44K/44Kr44Kr44K6DQor44K144OI44KmLOODquOCqOOCsw0KK+OCteODiOOCpizjg4jjgqrjg6sNCivjgrXjg4jjgqYs44Om44Km44Kk44OBDQor44K144OI44KmLOODj+ODq+OCqg0KK+OCteODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjgrXjg4jjgqYs44OO44Oc44OrDQor44K144OI44KmLOOCs+OCpuOCuA0KK+OCteODiOOCpizjg4DjgqTjgrnjgrENCivjgrXjg4jjgqYs44Ki44Kt44OpDQor44K144OI44KmLOOCseOCpOOCv+ODreOCpg0KK+OCteODiOOCpizjg4jjg6LjgrMNCivjgrXjg4jjgqYs44K444Ol44Oz44K4DQor44K144OI44KmLOODiOODouOCrQ0KK+OCteODr+ODgCzjgrHjgqTjgr/jg63jgqYNCivjgrXjg6/jg4As44Oe44KzDQor44K144Ov44OALOODn+ODgeODqA0KK+OCpOODr+OCvyzjg57jg6bjg58NCivjgrXjg6/jgqQs44OI44K344OS44KzDQor44K144Ov44KkLOOCveOCpuOCpOODgeODreOCpg0KK+OCteODpOODjizjgqTjgq/jg6QNCivjgrvjgq0s44K/44Kx44K3DQor44K744Kt44Kw44OBLOODnuOCteODqOOCtw0KK+OCu+OCreOCsOODgSzjg5/jgqsNCivjgrvjgq3jgrDjg4Es44Ki44Kt44OpDQor44K744Kt44ONLOOCouOCreODkuODrQ0KK+OCu+OCreODjizjgr/jgqvjgrcNCivjgrvjg7Pjg4os44OI44K344Of44OEDQor44K744Oq44K244OvLOODkuODreODpuOCrQ0KK+OCu+ODiCzjgqvjg4Tjg6QNCivjgrfjg5Djgr8s44Kz44Km44Kk44OBDQor44K344OQ44K/LOODnuOCteODkuODhw0KK+OCt+ODkOOCvyzjgrHjgqTjgrnjgrENCivjgrfjg5Djgr/jg4ss44K144OI44K3DQor44K344OW44K/44OLLOOCreODp+OCpuOCsw0KK+OCt+OCrCzjgrXjg4jjg6sNCivjgrfjgrLjg47jg5Ys44Kr44K644Oo44K3DQor44K344OeLOODn+OCreOCsw0KK+OCt+ODnuODgCzjg6zjgqTjgrjjg63jgqYNCivjgrfjg57jg4As44K144OI44KzDQor44K344Oe44Og44OpLOODqOOCt+ODn+ODhA0KK+OCt+ODn+OCuizjgr/jgrHjgqvjgroNCivjgrfjg5/jgros44K144OA44Of44OBDQor44K344Oi44OQ44Ok44K3LOOCreODqOOCtw0KK+OCt+ODouOCrOODryzjgrPjgqbjgrgNCivjgrfjg6Ljg5LjgrTjgrcs44OG44OE44OS44K1DQor44K344Oi44Kk44OHLOOCv+OCpOOCtw0KK+OCt+ODiuODgCzjgqvjg4Tjg58NCivjgrfjg43jgqQs44Om44KrDQor44K344Oz44Ks44KkLOOCv+ODgOOCtw0KK+OCt+ODjuODgCzjgrPjgqbjgrgNCivjgrfjg47jg4/jg6ks44K/44Kr44OS44OtDQor44K344OO44K244KtLOODiOODouODqOOCtw0KK+OCt+OCquODpCzjgr/jgq/jg6QNCivjgrfjg6njg4/jg54s44K/44Ot44KmDQor44K344Op44Kk44K3LOODpuOCpuOCpOODgQ0KK+OCt+ODqeOCpOOCtyzjgr/jgqvjgrcNCivjgrfjgr/jg6ks44K/44Kx44K3DQor44K344On44Km44K4LOODkuODreODpuOCrQ0KK+OCt+ODp+OCpuOCuCzjgrfjg7MNCivjg57jgrnjg6Tjg54s44Oe44K144OS44OHDQor44K344Ol44OI44KmLOODpuODn+OCsw0KK+OCveOCqOODgCzjg5Ljg4fjgqvjgroNCivjgr3jg40s44OS44OH44KtDQor44K944ON44OALOOCv+OCr+OCqg0KK+OCveODjuODmSzjg57jgrXjg5Ljg60NCivjgr3jg47jg5ks44Oe44K144K3DQor44K944Op44OOLOODn+ODmw0KK+OCueODgCzjg4rjgqrjg5Ljg60NCivjgrnjgqzjgqQs44OO44Oq44Om44KtDQor44K544Ks44Ov44OpLOOCu+OCpOODng0KK+OCueOCruODouODiCzjgr/jgqvjg5Ljg60NCivjgrnjgq7jg6Ljg4gs44K/44Kr44Oe44K1DQor44K544Ku44Km44OpLOODqOOCt+ODjuODqg0KK+OCueOCruODpOODnizjg57jgrXjg5Ljg60NCivjgrnjgq7jg6Tjg54s44OS44OH44Oe44K1DQor44K544Ku44Ok44OeLOODrOOCpOOCsw0KK+OCueOCuOODo+OCryzjgr/jgqvjg6TjgrkNCivjgrnjgqss44OI44Kq44OrDQor44K544Kx44Ks44OvLOODkuODreODpuOCrQ0KK+OCueODn+ODiuOCrCzjgq3jg5/jgrMNCivjgrnjg5/jgqrjgqss44OI44Oi44OkDQor44K544OK44Ok44OeLOOCseODs+OCpOODgQ0KK+OCueOCuuOCrSzjg57jgrXjg6QNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Kk44K344KkLOODpOOCueODkuOCsw0KK+OCueOCuuOCrSzjgrfjgrLjg6sNCivjgrnjgrrjgq0s44K/44Kr44Om44KtDQor44K544K644KtLOODkuODh+ODkuODrQ0KK+ODpOODnuOCt+ODrSzjg5Ljg4fjgq0NCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K544K644KtLA0KK+OCueOCuuOCrSzjgqvjg4Tjg6bjgq0NCivjgrnjgrrjgq0s44Kr44K644OO44OqDQor44K544K644KtLOOCs+OCpuOCpOODgQ0KK+OCv+ODkOOCsyzjgq/jg5/jgrMNCivjgr/jg5Djgr8s44Oe44K144KtDQor44OK44Kr44K444OeLOODhuODq+ODpuOCrQ0KK+OCv+ODkOOCvyzjg6jjgrfjg4TjgrANCivjgr/jg4Hjg5Djg4os44OI44K344Om44KtDQor44K/44Ks44OfLOOCv+OCpOOCu+OCpA0KK+ODnuODnuODgCzjgrHjg7PjgrgNCivjgr/jgqzjg68s44Oe44Kz44OIDQor44K/44K444OeLOODouODiOODkuODrQ0KK+OCv+OCq+ODkOODpOOCtyzjg6bjgq0NCivjgr/jgqvjg4As44OI44Oi44OoDQor44K/44Kr44OALOOCv+OCq+ODkuODrQ0KK+OCv+OCq+OCrizjgqjjg58NCivjgr/jgqvjgq4s44OA44Kk44K544KxDQor44K/44Kr44OP44K3LOOCt+ODs+ODpA0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jgqoNCivjgr/jgqvjg4/jgrcs44OS44Ot44KtDQor44K/44Kr44OP44K3LOODkuODreOCsw0KK+OCv+OCq+ODj+OCtyzjgqTjgrrjg6sNCivjgr/jgqvjg4/jgrcs44Oe44K144KtDQor44K/44Kr44OP44K3LOODn+OCt+ODp+OCpg0KK+ODr+OCv+ODiuODmSzjg57jgq0NCivjgr/jgqvjg4/jgrcs44Ok44K544K3DQor44K/44Kr44OP44K3LOODpuOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjg5jjgqQNCivjgr/jgqvjg4/jgrcs44Oe44K144OV44OfDQor44K/44Kr44KkLOODkuODh+OCrQ0KK+OCv+OCq+OCr+ODqSzjgrHjg7PjgrnjgrENCivjgr/jgqvjgq/jg6ks44K344ObDQor44K/44Kr44Oe44OBLOOCq+ODhOODjuODqg0KK+OCv+OCq+ODnuODhCzjgqLjgq3jg6jjgrcNCivjg57jg4Tjg4rjgqws44Ok44K544OS44OtDQor44K/44Kr44Oi44OILOODqOOCt+OCrQ0KK+OCv+OCq+ODoOODqSzjg47jg5bjgqvjg4QNCivjgr/jgqvjgqrjgqss44K044KmDQor44K/44Kr44K544KuLOODj+ODq+OCsw0KK+OCv+OCq+ODpCzjg5Ljg4fjgqLjgq0NCivjgr/jgqvjg6Tjg54s44OS44Ot44Om44KtDQor44Kt44K/44OP44OpLOOCseODs+OCpOODgQ0KK+OCv+OCseODgCzjgq/jg4vjg5Ljg4cNCivjgr/jgrHjg4As44Oe44K144OS44OtDQor44K/44Kx44OP44OKLOODnuOCteOCq+ODhA0KK+OCv+OCseODnuODhCzjg57jgrXjg58NCivjgr/jgrHjgqrjgqss44Of44OO44OrDQor44Kk44K344Kr44OvLOODouODiOODleODnw0KK+OCv+OCseOCt+OCvyzjg4rjgqrjgq0NCivjgr/jgrHjgr/jg4ss44OO44OW44Om44KtDQor44K/44Kx44Km44OBLOOCteODiOOCtw0KK+OCv+OCseOCpuODgSzjgrXjg4jjgrcNCivjgr/jgrHjg6Tjg54s44K/44Kx44K3DQor44K/44Kx44K244OvLOOCreODqOOCuA0KK+OCv+OCreOCtuODryzjg4Tjg4jjg6ANCivjgr/jgq3jgrbjg68s44OB44Kr44OpDQor44K/44Oe44KkLOODiOODouODpuOCrQ0KK+OCv+ODiuODj+OCtyzjg47jg5bjg6bjgq0NCivjgr/jg4rjgqss44Kx44Oz44K/44Ot44KmDQor44K/44OK44KrLOOCs+OCueOCsQ0KK+OCv+ODiuOCqyzjg5Ljg63jg6bjgq0NCivjgr/jg4rjgqss44OS44Ot44K3DQor44K/44OK44KrLOOCseOCpOOCsw0KK+OCv+ODiuOCqyzjg6Ljg4jjgq0NCivjgr/jg4rjgqss44K744Kk44K4DQor44K/44OK44KrLOOCq+OCuuODkuODiA0KK+OCv+ODiuOCqyzjg6bjgqbjgrMNCivjgr/jg4rjgqss44Ko44Kk44Kk44OBDQor44K/44OK44KrLOOCqOOCpOOCuA0KK+OCv+ODiuOCqyzjg4Tjg43jg5Ljg60NCivjgr/jg4rjgqss44Oe44K144OS44OtDQor44K/44OK44KrLOODjuODquODkuODrQ0KK+OCv+ODiuOCqyzjgqvjgrrjg4rjgqoNCivjgr/jg4rjgqss44OO44Oc44OrDQor44Kk44K344OALOOCseODs+ODpA0KK+OCv+ODiuOCqyzjgqvjgrrjgqoNCivjgr/jg4vjgrDjg4Es44K344Ky44OrDQor44K/44OL44Kw44OBLOOCseODs+OCpOODgQ0KK+OCv+ODi+OCpCzjg6bjg6rjgrMNCivjgr/jg4vjg6Djg6ks44Of44OB44OoDQor44K/44OL44Kq44KrLOODiOODouOCsw0KK+OCv+ODs+ODjizjg6bjgq3jgqoNCivjgr/jg4zjg54s44Oe44Oi44OrDQor44Oo44Kz44Ok44OeLOODr+OCv+ODqw0KK+OCv+OCt+ODrSzjgqLjgq3jg6kNCivjgr/jgrfjg60s44Kx44Oz44Kk44OBDQor44K/44OGLOODkuODh+ODiA0KK+OCv+OCpuODqSzjg57jgrPjg4gNCivjgr/jgr7jgqgs44Om44Km44KzDQor44K/44K644KxLOODnuOCs+ODiA0KK+ODhuODs+ODoizjgqvjg6jjgrMNCivjg4bjg6njg4As44OB44Ko44KzDQor44OG44Op44Oi44OILOOCqOOCpOOCuA0KK+ODhuODqeOCquOCqyzjgrHjgqQNCivjg4bjgrrjgqss44OS44Ot44Om44KtDQor44OI44Kw44OBLOOCuOODpeODs+OCsw0KK+ODiOOCpuODnizjgrPjgqbjgqTjg4ENCivjg4jjgqbjg54s44OS44Ot44Ok44K5DQor44OI44Kq44Ok44OeLOOCq+OCuuODpuOCrQ0KK+ODiOOCreOCquOCqyzjgr/jgqvjgrfjgrINCivjgr/jg4vjg6Tjg54s44OS44OH44Ki44KtDQor44Of44Km44OpLOOCveOCpuOCpOODgQ0KK+ODiOOCr+ODqSzjgqvjgrrjgqoNCivjg4jjgq/jg6Tjg54s44OS44Ot44OkDQor44OI44Of44Kk44K3LOOCr+ODi+ODkuOCsw0KK+ODiOODn+OCq+ODryzjg47jg6rjgrMNCivjg4jjg5/jg4rjgqws44Ki44OE44K3DQor44OI44Of44K/LOODleODn+OCqA0KK+ODiOODn+OCvyzjg6Ljg4jjg6jjgrcNCivjgqrjgqrjg6Ljg6os44Oe44K144Om44KtDQor44OI44Oi44K/LOODkuODh+ODkuOCsw0KK+ODiOODouODjizjgrHjgqTjgrgNCivjg4jjg6rjgqvjgqQs44OK44Kq44KtDQor44OI44Oq44Km44OfLOODqOOCt+ODjuODlg0KK+ODiOODhOOCqyzjgqLjg6TjgrMNCivjg4jjg6jjg4As44Kx44Kk44Kk44OBDQor44OI44Oo44OALOODn+OCreODkuODrQ0KK+ODiOODqOOCquOCqyzjgr/jgq/jg47jg5YNCivjg4Tjg4Hjg4As44Kz44Km44K4DQor44OE44OALOOCs+OCpuOCpOODgQ0KK+ODhOOCuOOCv+ODiyzjg57jgrXjg4TjgrANCivjg4Tjgqvjg6Ljg4gs44Oo44K344OG44OrDQor44OE44Kr44Oi44OILOODkuODreOCouOCrQ0KK+ODhOOCq+ODr+OCrSzjg57jgrXjgr/jgqsNCivjg4Tjg6vjg57jgq0s44Oo44Km44KzDQor44Kk44OB44OQ44Oz44Ks44K7LOODpuOCreOCsw0KK+OCteOCq+OCpCzjg5/jg5vjgrMNCivjgqbjg4Hjg4As44Kr44K644OS44OtDQor44Kr44OK44Kq44KrLOOCs+OCpuODmOOCpA0KK+OCpuODgeODgCzjgr/jg4Tjg6QNCivjgqbjg4Hjgqbjg58s44OK44Kq44OS44KzDQor44Km44OB44Ok44OeLOODleODn+OCv+OCqw0KK+OCpuODgeODpOODnizjg6bjgq0NCivjgqbjg4As44Ki44OE44KzDQor44Km44OA44Ks44OvLOOCv+ODreOCpg0KK+OCquOCt+ODnizjgqLjg4TjgrMNCivjgqbjgqjjg4As44Ko44Kk44KrDQor44Km44Ko44OALOODqOOCt+ODn+ODhA0KK+OCpuOCqOODj+ODqSzjg5Ljg4fjg6bjgq0NCivjgqbjgqjjg6Djg6ks44Oe44K144KtDQor44Km44Ko44OOLOOCquOCteODoA0KK+OCpuOCqOODjizjg5Ljg63jg47jg6oNCivjgqbjgqjjgrnjgq4s44Oe44K144OfDQor44Km44Ko44OE44KtLOOCv+OCpOODgQ0KK+OCpuOCq+ODryzjg57jgrXjg5Ljg4cNCivjgqbjg57jgrrjg6Es44K344Oz44OkDQor44Km44Oh44OP44OpLOODiOOCt+OCqg0KK+OCpuODoeODoOODqSzjg5Ljg63jg5Xjg58NCivjgqbjg6Hjgrbjg68s44OS44Ot44K3DQor44Km44OOLOODkuODreOCtw0KK+OCpuODjizjg5LjgrXjg6QNCivjgqbjg6njg6Ljg4gs44Kx44KkDQor44Km44Or44OeLOODnuOCteODleODnw0KK+OCpuOCt+ODkCzjg5/jg47jg6sNCivjg4rjgqzjgr8s44Oq44Ol44Km44K/DQor44Km44K344Kw44K1LOODiOOCt+OCouOCrQ0KK+ODj+OCu+OCrOODryzjg6jjgrfjgqLjgq0NCivjgrXjgqvjg57jgq0s44Om44OqDQor44Km44Ov44OZLOODnuOCteODpuOCrQ0KK+ODr+ODgCzjgqLjgq3jgrMNCivjg6/jgqvjgqos44Kx44Kk44K4DQor44Ov44Kr44KqLOODrOOCpOOCsw0KK+ODr+OCreOCvyzjg6jjgqbjgrMNCivjgqTjg47jg57jgr8s44OS44Ot44OfDQor44Ov44Kv44KkLOODnuOCteODpA0KK+ODr+OCt+OCtuODryzjgrHjgqTjgrMNCivjg6/jgrfjgrrjgqss44Kz44Km44K4DQor44Ov44K/44OZLOODnuOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg47jg6rjg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kr44K644OS44OtDQor44Ov44K/44OK44OZLOOCt+OCsuODqw0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgqoNCivjg6/jgr/jg4rjg5ks44OE44Oo44K3DQor44Ov44K/44OK44OZLOODiOODouODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg4DjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44OH44KtDQor44Ov44K/44OK44OZLOODkuODreOCq+OCug0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg58NCivjg4jjg6jjgr8s44OS44OI44K3DQor44Ov44K/44OqLOOCseOCpOOCsw0KK+ODiOODn+ODpOOCuSzjg4jjgrfjg5LjgrUNCivjg6Tjgqjjgqzjgq0s44Oo44K344Ki44KtDQor44Ok44KuLOODn+ODqOOCsw0KK+ODpOOCrizjg6jjgrfjg57jgrUNCivjg6Tjgq7jg4zjg54s44OA44Kk44K544KxDQor44Ok44KvLOOCouOCreODiA0KK+ODpOODnuODgCzjgqvjgrrjg5LjgrMNCivjg6Tjg57jg4As44Oe44KtDQor44Ok44Oe44OALOODqOOCpuOCsw0KK+ODpOODnuOCruOCtyzjgqLjg4TjgrcNCivjg6Tjg57jgrDjg4Es44Kz44Km44Kk44OBDQor44Ok44Oe44Kw44OBLOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCsOODgSzjgqvjgqrjg6sNCivjg6Tjg57jgrDjg4Es44Ki44Kt44OpDQor44Ok44Oe44Kz44K3LOODgOOCpOOCueOCsQ0KK+ODpOODnuODouODiCzjg57jgrXjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Kx44Oz44K4DQor44Ok44Oe44Oi44OILOOCv+OCseOCqg0KK+ODpOODnuODouODiCzjgrvjgqTjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44K344Ol44Km44K4DQor44K/44OB44OQ44OKLOODnuOCteODiOOCtw0KK+ODpOODnuODouODiCzjgrjjg6Xjg7MNCivjg6Tjg57jg6Ljg4gs44Kx44Oz44Kk44OBDQor44OP44Op44K/44OLLOODiOODouOCsw0KK+ODpOODnuODiuOCqyzjgr/jgqvjgrcNCivjg6Tjg57jg40s44Oo44K344OV44OfDQor44Ok44Oe44K344K/LOOCouOCreODkuOCsw0KK+ODpOODnuOCt+OCvyzjg5Ljg63jgrcNCivjg6Tjg57jgrfjgr8s44OK44Kq44KzDQor44Ok44Oe44K/44OLLOOCv+OCq+OCtw0KK+ODpOODnuOCpuODgSzjg4jjg6LjgrMNCivjg6Tjg57jgrbjgq0s44Ki44Kt44OpDQor44Ok44OKLOODkuODreOCouOCrQ0KK+ODpOODiuODmSzjg5Ljg63jgq0NCivjg6Tjg4rjgqzjg68s44Oq44On44KmDQor44Ok44OK44KuLOODiOOCt+OCouOCrQ0KK+ODpOODiuOCruODgCzjg6rjg6XjgqbjgqTjg4ENCivjg6TjgrXjgqss44Kr44K644OS44OHDQor44Ok44K544OALOODnuOCteODn+ODhA0KK+ODpOOCueODleOCryzjg6bjgr/jgqsNCivjg6Tjgrnjgqvjg68s44Kt44Oo44Kr44K6DQor44Oo44Kz44K144OvLOOCv+OCr+ODpA0KK+ODqOOCs+OCvyzjg5Ljg63jgrcNCivjg6jjgrPjgr8s44Kr44K644OS44OtDQor44OP44Op44OALOOCs+OCueOCsQ0KK+ODqOOCs+OCpuODgSzjg57jgrXjg5Ljg60NCivjg6jjgrPjgqbjg4Es44K344Oz44K544KxDQor44Oo44Kz44Ok44OeLOODnuOCs+ODiA0KK+ODqOOCs+ODpOODnizjgqvjgrrjg47jg5YNCivjg6jjg43jg4As44OK44Kq44KtDQor44Oo44ON44OOLOODiuOCquODnw0KK+OCq+OCteODj+ODqSzjgrXjg4jjg58NCivjg6jjgrfjg4As44OS44OH44KqDQor44Oo44K344OALOOCuOODpeODsw0KK+ODqOOCt+ODgCzjg5Ljg63jgrcNCivjg6jjgrfjg4As44OK44Kq44OIDQor44Oo44K344OALOODkuODreOCtw0KK+ODqOOCt+ODieODoSzjgrfjgrrjgqsNCivjg6jjgrfjg4/jg6ks44K/44Kr44OS44OtDQor44Oo44K344KkLOOCteODiOODqw0KK+ODqOOCt+OCpCzjg57jgrPjg4gNCivjg6jjgrfjgqvjg68s44K344Kq44OqDQor44Oo44K344OfLOOCv+OCpOOCrQ0KK+ODqOOCt+ODjizjg5Xjg5/jgqoNCivjg6jjgrfjg44s44Ok44K544K3DQor44Oo44K344OOLOODiOODouOCsw0KK+ODqOOCt+OCquOCqyzjgrHjg7PjgqTjg4ENCivjg6jjgrfjgqrjgqss44Kz44Km44Kk44OB44Ot44KmDQor44Oo44K344K/44KxLOOCv+ODgOOCtw0KK+ODqOOCt+OCtuODryzjg4jjgrfjgqvjg4QNCivjg6bjgrrjg4/jg6ks44Kz44Km44K4DQor44K844Oz44KyLOOCq+OCuuOCv+OCqw0KK+OCuuOCtyzjg5/jgqoNCivjgrTjg58s44OS44Ot44KtDQor44K044OI44KmLOODkuODreOCtw0KK+OCpOOCseODgCzjgr/jgrHjg4/jg6sNCivjgqTjg54s44Oe44K144OS44OtDQor44Ki44OZLOODnuODiuODlg0KK+OCq+ODiOOCpizjgrfjgrLjg6sNCivjgqvjg6/jg5Djgr8s44K344Ky44OrDQor44Kz44OQ44Ok44K3LOODpuOCreODkuOCsw0KK+OCs+ODs+ODiSzjgq/jg4vjg6Djg40NCivjgq/jg5ws44Oe44K144OS44KzDQor44Kv44Op44Oi44OBLOODqOOCpuOCsw0KK+ODnuODq+ODpOODnizjg6jjgrfjgqLjgq0NCivjg6Ljg6rjgqvjgq8s44Om44Kt44KqDQor44Og44Op44Kq44KrLOODkuODreODpuOCrQ0KK+ODiuOCrOOCt+ODnizjg6jjgqbjgrMNCivjg4rjgqss44OI44K344OkDQor44OK44Kr44OP44OpLOOCv+OCr+ODpA0KK+ODiuOCq+ODoOODqSzjg4Tjg6jjgrcNCivjg4rjgqvjgrss44OI44OfDQor44OK44Oq44K/LOODkuOCteOCqA0KK+ODi+OCt+ODoOODqSzjgqjjg5/jgrMNCivjg47jg4rjgqss44OS44OH44OK44KqDQor44Kq44Ks44OvLOODqOOCt+OCqg0KK+OCquOCsOODqSzjg4jjgqrjg6sNCivjgqrjgqrjg58s44Oe44Kz44OIDQor44Kq44Kr44OOLOODnuOCteODpA0KK+OCt+ODnuODgCzjgrjjg6Xjg7PjgrgNCivjgrfjg5/jgros44Kr44K644OO44K344OzDQor44K344Og44OpLOODkuODh+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg5/jg4Tjg57jgrUNCivjgr/jgqvjg57jg4Qs44Kx44Oz44Kk44OBDQor44Km44Ko44OALOODoOODhOOCqg0KK+OCpuOCuCzjgrTjgqYNCivjgqbjg4Tjg58s44K344Ol44Km44Kk44OBDQor44Ki44OZLOODqOOCpuOCpOODgQ0KK+OCs+ODs+ODiSzjgr/jgqvjgrcNCivjgr/jgqvjg47jgqbjg4Es44Kx44Oz44K144KvDQor44Kk44OO44Km44KoLOODoOODjeODkuODrQ0KK+ODiuOCq+ODj+ODqSzjg5Ljg4jjgrcNCivjgqLjg4Djg4Es44Om44K/44KrDQor44OK44Kr44OOLOODkuODreOCrQ0KK+OCouOCpOODkCzjg47jg6rjgqLjgq0NCivjgqLjgqTjg5As44K/44Kx44K3DQor44Ki44Kk44OQLOOCteODiOOCtw0KK+OCouOCpOODgCzjg57jgrXjg5Ljg60NCivjgqLjgqTjg4/jg6ks44Ki44OE44K3DQor44Ki44Kr44Kk44K3LOODnuOCteOCquODnw0KK+OCouOCq+OCpOODryzjg6jjgrfjg5Ljg60NCivjgqLjgqvjgqrjgq4s44OI44K344OS44OHDQor44Ki44Kt44K/LOODhOODqOOCtw0KK+OCouODnuODjizjg4rjgqrjgrMNCivjgqLjgqrjgq0s44OS44Ot44KzDQor44Ki44Kq44KtLOODpuOCreOCsw0KK+OCouOCquODjOODnizjg5Ljg4jjgrcNCivjgqLjgqrjg6Tjgq4s44Ko44Kk44K4DQor44Ki44Op44KtLOOCouOCreODqQ0KK+OCouODquODnuODgSzjg4jjgrfjg47jg5YNCivjgqLjg6rjgr8s44OS44OH44Ki44KtDQor44Ki44K144OALOODhuODhOODpA0KK+OCouOCteOCqOODgCzjgr/jgqvjg5Ljg60NCivjgqLjgrXjg4/jg6ks44Oo44K344OP44OrDQor44Ki44K144Kr44OvLOOCq+OCuuODkuOCsw0KK+OCouOCteODouODiCzjg4Tjg4jjg6ANCivjgqLjgrXjg44s44Om44K/44KrDQor44Ki44K/44Kw44OBLOODkuODreOCtw0KK+OCouODpOOCrSzjg4/jg6vjgrMNCivjg5Djg5As44K344Ol44Oz44K544KxDQor44OQ44OQLOOCq+OCquODqw0KK+ODkOODkCzjg4rjg4rjgrMNCivjg5Djg7Ms44K/44Kx44K3DQor44OA44Kk44Kz44KvLOODn+ODgeODqA0KK+ODgOODhizjgrfjgrLjg5LjgrMNCivjgrXjg44s44K444Ol44Oz44Kk44OBDQor44Of44OE44Kq44KrLOOCt+OCsuOCrQ0KK+ODh+ODs+ODgCzjgqvjgrrjg5LjgrMNCivjg4njgqQs44Ko44OfDQor44Ko44Oz44OJLOODiOODouODkuOCsw0KK+OCqOODs+ODiSzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqjjgrbjg68s44OK44Oq44OS44OHDQor44OV44K444KoLOOCv+OCseODleODnw0KK+ODleOCuOOCpCzjgqvjgrrjg5Ljg60NCivjg5XjgrjjgqQs44Oe44K144Ki44KtDQor44OV44K444Oe44KtLOODnuOCteOCq+ODhA0KK+ODleOCuOODouODiCzjg5/jg68NCivjg5Xjgrjjg6Ljg4gs44Of44Kt44KqDQor44OV44K444Og44OtLOOCs+OCpuOCuA0KK+ODouODreOCuuODnyzjgqvjg7PjgrgNCivjg5XjgrjjgrXjg68s44Kx44Oz44K4DQor44OV44K444K/LOODkuODreODpuOCrQ0KK+ODleOCq+OCuyzjgr/jg4Tjg6QNCivjg5Xjgq/jg4As44K344K744KkDQor44OV44Kv44OJ44OhLOOCv+OCq+OCtw0KK+ODleOCr+OCpCzjg5LjgrXjgrcNCivjg5Xjgq/jg4rjgqws44OV44Of44OS44K1DQor44OV44Kv44K344OeLOODkuODh+OCqg0KK+ODleOCr+OCtuODryzjg57jg6rjgqsNCivjg5Xjg6vjg5Djg6Tjgrcs44Ki44Kt44OpDQor44OV44Or44Kr44OvLOODkuODh+OCrQ0KK+ODleODq+OCq+ODryzjgqLjgrHjg58NCivjgrTjgqYs44OP44OKDQor44K044Oe44OrLOOCueOCueODoA0KK+OCtOODiOOCpizjgrfjg6fjgqYNCivjgrTjg4jjgqYs44K/44OE44OkDQor44K044OI44KmLOODgeOCuuOCqw0KK+ODjuODouODiCzjgqvjgqrjg6sNCivjg4/jgq7jg6/jg6ks44Oq44Ol44Km44K/DQor44OP44Kk44Ok44OeLOOCreODp+OCpuOCsw0KK+ODj+ODnizjgqvjgrrjg5/jg4ENCivjg4/jg57jg4Es44K344Ol44Km44Kk44OBDQor44OP44Oe44OALOODiuOCquODkuOCtQ0KK+ODj+ODnuOCv+ODiyzjgrfjgrLjgqoNCivjg4/jg4rjgqQs44Ok44K544OS44OIDQor44OP44OK44K/LOODkuODqeOCrw0KK+ODj+ODjeOCuCzjg5Ljg63jgrMNCivjg4/jg7Pjgrbjg68s44Oe44K144OS44KzDQor44OP44OpLOODn+ODmw0KK+ODj+ODqSzjgrfjg7PjgrgNCivjg4/jg6njg4As44Kr44K644OS44OHDQor44OP44Op44OALOOCreODqOOCtw0KK+ODj+OCu+OCrOODryzjg6bjgr/jgqsNCivjg4/jgrvjgqzjg68s44OK44Kq44KzDQor44OP44K744Ks44OvLOODhuODhOODpA0KK+ODj+OCt+OCsOODgSzjg57jgrXjg6jjgrcNCivjg4/jgrfjg6Ljg4gs44Ok44K544Om44KtDQor44K044OI44KmLOOCseOCpA0KK+OCq+OCuOODr+ODqSzjg6jjgrfjgrMNCivjg4/jgrnjg58s44OE44Kw44OO44OqDQor44Kr44K/44Ok44OK44KuLOOCqOOCpOOCpOODgQ0KK+ODj+OCv+OCseODpOODnizjgrfjg7PjgqTjg4ENCivjg6Djg6njgqQs44Of44OE44Om44KtDQor44OP44K/44OLLOODquODpeOCpuOCpOODgQ0KK+ODj+ODg+ODiOODqizjg6Tjgrnjg47jg5YNCivjg4/jg4Pjg4jjg6os44K/44Kr44Om44KtDQor44OP44Ok44K3LOOCv+OCq+ODpuOCrQ0KK+OCquOCquOCueODnyzjg57jgrXjgrMNCivjg4/jg6Tjgrcs44Kr44K644OK44OqDQor44OP44Ok44K3LOODqOOCt+ODjuODlg0KK+ODj+ODpOOCt+ODgCzjgrXjgq0NCivjg5Ljgqws44K/44Kx44KqDQor44OS44Ks44K3LOODquODpeOCpuOCueOCsQ0KK+ODkuOCrOOCt+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjg4jjg6jjg4As44Om44Km44Kk44OB44OtDQor44OS44OOLOOCv+OCseODkuOCsw0KK+ODkuODqSzjg4bjg4Tjg6QNCivjg5Ljg6njg6Ljg4gs44K444Ol44Oz44KzDQor44OS44Op44KqLOODnuOCteODiA0KK+ODkuODqeOCqizjg57jgrXjg6bjgq0NCivjg5Ljg6njgr8s44OK44Kq44OfDQor44OS44Op44Ok44OeLOOCv+OCseOCtw0KK+ODkuODreOCpCzjgr/jgqvjgrcNCivjg5Ljg63jgqvjg68s44OO44Oq44Kr44K6DQor44OS44Ot44Kr44OvLOODqOOCv+ODreOCpg0KK+ODkuODreODnuOCuSzjgqvjgrrjg6bjgq0NCivjg5Ljg63jgrss44Of44OE44OrDQor44OS44Ot44K7LOOCv+OCq+OCqg0KK+ODkuOCt+ODpCzjgrXjg4jjgrcNCivjg5vjgqbjgrfjg6fjgqYs44Ki44Kt44KzDQor44Ob44Oz44OALOODn+ODm+OCsw0KK+ODj+ODpOOCtyzjg47jgr7jg6ANCivjg5vjg7Pjg54s44K/44Kx44K3DQor44Ob44Oq44Kw44OBLOODhuODq+OCqg0KK+ODm+ODquOCpCzjg5Ljg63jg58NCivjg5vjgrcs44Ki44Kt44OS44KzDQor44Ob44K944KkLOOCq+ODhOODpA0KK+ODm+OCveODnyzjg6TjgrnjgqoNCivjg5vjg4Pjgr8s44Oe44K144OS44OHDQor44OV44Kv44Ot44KkLOOCseODs+OCuA0KK+ODleODq+ODpCzjgqLjgq3jg5Ljg4gNCivjgqTjg5bjgqss44K944Km44Kk44OBDQor44Kk44OB44OQLOOCv+OCq+OCtw0KK+OCpOODgeODj+ODqSzjg5Ljg63jgrcNCivjgqTjg4Hjgqvjg68s44OS44Ot44K3DQor44Kk44OB44Og44OpLOOCuOODpeODs+OCpOODgeODrQ0KK+OCpOODgeODjuOCu+OCrSzjg4jjgrfjg5Ljg60NCivjgqTjgqTjg4As44OI44K344OkDQor44Kk44Kk44OALOOCuOODpeODs+OCsw0KK+OCpOOCpOOCuOODnizjg6jjgqbjgrMNCivjgrfjg47jg4/jg6ks44OP44K444OhDQor44Kk44Kx44OALOODquOCqA0KK+OCpOOCseODgCzjg6bjgq0NCivjgqTjgrHjg4As44Om44K/44KrDQor44Kk44Kx44OALOODqOOCpuOCsw0KK+OCpOOCseOCtuODryzjgqvjgrrjgr/jgqsNCivjgqTjg57jgqQs44Oe44Om44OfDQor44Kk44Oe44KkLOOCseOCpOOCvw0KK+OCpOODnuOCpCzjgq/jg4vjg5LjgrMNCivjgqTjg57jgq0s44Of44OO44OrDQor44Kk44Oe44Og44OpLOOCseODs+OCueOCsQ0KK+OCpOODouODiCzjgrfjg6fjgqbjgqTjg4ENCivjgqLjg5ks44Oo44K344Ok44K5DQor44Kk44OK44OALOODpuOCreOCsw0KK+OCpOODjuOCpuOCqCzjg4jjg6Ljg5Ljg60NCivjgqTjg47jgqbjgqgs44K/44Kr44K3DQor44Kk44OO44Km44KoLOODnuOCteODkuOCsw0KK+OCpOODjuOCpuOCqCzjgqvjgrrjgqoNCivjgqTjg6rjgqgs44Oo44K344OS44KzDQor44OE44Or44Kq44KrLOODkuODiOOCtw0KK+OCquOCquODj+OCtyzjg5LjgrXjg4jjgrcNCivjgqTjgrfjg4As44Om44Km44K4DQor44Kk44K344OALOOCseODs+OCuA0KK+OCpOOCt+ODgCzjgrPjgqbjgrgNCivjgqTjgrfjg4As44OP44K444OhDQor44Kk44K344Kw44OtLOODqOOCt+OCrQ0KK+OCpOOCt+ODj+ODqSzjgrfjgrLjgqoNCivjgqTjgrfjg4/jg6ks44K444Ol44Oz44KzDQor44Kk44K344KkLOODn+ODhOODkuOCsw0KK+OCpOOCt+OCq+ODryzjg57jgrXjg47jg6oNCivjgqTjgrfjgqvjg68s44Ki44Kt44OpDQor44Kk44K344Ov44K/LOODnuOCteODjuODqg0KK+OCpOODiOOCpizjgr/jgqvjgrcNCivjgqTjg4jjgqYs44Ki44Kt44KzDQor44Kk44OI44Ok44OeLOODiOOCt+OCqg0KK+OCpOODhOOCrSzjgqvjgrrjg5Ljg60NCivjgqTjg6/jgq0s44Kz44Km44K/44Ot44KmDQor44Kk44Ov44K144KtLOOCv+OCseOCtw0KK+OCpOOCuuODhCzjg6bjgqbjgrgNCivjgrjjg5Ys44Ko44Of44KzDQor44Kr44OJ44KkLOODhuODq+ODpOOCuQ0KK+OCouODgOODgSzjgrHjg7PjgrgNCivjgqvjgqQs44K/44Kr44Om44KtDQor44Kr44Kk44K7LOODkuODreOCouOCrQ0KK+OCq+OCpOOCuuOCqyzjg5Ljg63jgrMNCivjgqvjgrjjg6/jg6ks44OS44Ot44K3DQor44Kr44KtLOOCq+ODhOODiOOCtw0KK+OCq+OCreODnyzjgrPjgqbjgrgNCivjgrnjgq7jgr8s44Os44Kk44KtDQor44Kr44Kv44K/44OLLOODpOOCueOCsw0KK+OCq+ODn+ODkOODpOOCtyzjgqvjg4Tjg5LjgrMNCivjgqvjg5/jgqzjgq0s44OO44Oq44OS44OHDQor44Kr44Of44OkLOOCteODiOOCtw0KK+OCq+ODouODgCzjgrPjgqbjgqTjg4ENCivjgqvjg6Ljg4gs44K/44Oi44OEDQor44Kr44Oz44OQ44Ok44K3LOODouODiOODkuODrQ0KK+OCq+ODjeOCsyzjgrfjg7PjgrQNCivjgqvjg43jgrMs44Of44OE44OkDQor44Kr44ON44KzLOOCr+ODi+ODkuOCsw0KK+OCq+ODjeOCsyzjg5/jg4TjgqoNCivjgqvjg4vjgrXjg68s44K/44OE44OkDQor44Kr44OrLOOCv+OCq+ODpuOCrQ0KK+OCq+OCt+ODr+OCrizjg4bjg4Tjg6QNCivjgqvjgrnjg58s44Oo44Km44Kk44OB44Ot44KmDQor44Kr44K/44Ku44OqLOODiuOCquODpuOCrQ0KK+OCq+ODiOOCpizjg5/jg4Tjg5Ljg60NCivjgqvjg4jjgqYs44Ki44OE44K3DQor44Kr44OI44KmLOODpuOCpuOCsw0KK+OCq+ODiOOCpizjg47jg5bjgqoNCivjgqvjg4jjgqYs44K/44OE44Ot44KmDQor44K/44Kw44OBLOOCuOODpeODs+OCsw0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg4jjgqYs44Kz44KmDQor44Kr44OI44KmLOOCt+ODs+OCpOODgQ0KK+OCq+ODhOODqSzjgqLjgq3jg6kNCivjgr3jgrQs44Kx44OzDQor44Kr44Ov44OS44OILOODnuOCs+ODiA0KK+OCq+ODr+OCpCzjg6rjgqjjgrMNCivjgqvjg6/jgqvjg58s44Kz44Km44K4DQor44Kr44Ov44OfLOOCt+OCsuODqw0KK+OCq+ODr+ODoOODqSzjgrfjg7PjgrgNCivjgqvjg6/jg6Djg6ks44OG44Or44KtDQor44Kr44Ov44K144KtLOODkuODreOCtw0KK+OCq+ODr+OCteOCrSzjg4jjg6LjgqvjgroNCivjgqvjg6/jgqbjg4Es44Oe44K144Ki44KtDQor44Kr44OE44KtLOOCouOCreODiOODog0KK+OCreODgCzjg5jjgqTjgrgNCivjgq3jg4njgrPjg60s44OS44Ot44K3DQor44Oi44OqLOOCseODs+OCuA0KK+OCreOCr+ODgSzjg57jgrPjg4gNCivjgq3jgq/jgqzjg68s44Of44KoDQor44Kt44Og44OpLOODn+ODhOODkuODrQ0KK+OCreODoOODqSzjgrXjg4jjg6sNCivjgq3jg6Djg6ks44K/44Kx44K3DQor44Kt44Og44OpLOOCv+OCr+ODnw0KK+OCreODjuOCt+OCvyzjg4jjg6jjgq0NCivjgq3jg47jgrfjgr8s44Oo44K344Ki44KtDQor44Kt44OO44K344K/LOODqOOCt+ODj+ODqw0KK+OCreODjuOCt+OCvyzjg6bjgqvjg6oNCivjgq3jgrfjg4As44Om44Kt44KzDQor44Kt44K344Kr44OvLOODnuOCteODkuOCsw0KK+OCreOCvyzjg4jjgrfjgqoNCivjgq3jgr/jgrDjg4Es44Kx44Kk44K544KxDQor44Ki44Oe44OOLOODn+ODgeODqA0KK+OCreOCv+ODoOODqSzjg57jg4rjg5YNCivjgq3jgr/jg6Tjg54s44OB44OS44OtDQor44Kz44OQ44Ok44K3LOODiuOCquODiA0KK+OCs+ODkOODpOOCtyzjg6Ljg4jjg47jg6oNCivjgrPjg5Djg6Tjgrcs44OS44Ot44Om44KtDQor44Kz44OQ44Ok44K3LOODpOOCueODhuODqw0KK+OCs+ODkOODpOOCtyzjg4jjg6LjgqLjgq0NCivjgrPjg5Djg6Tjgrcs44K444Ol44Oz44K4DQor44Ki44Oh44K344K/LOODiuOCquOCrQ0KK+OCs+ODkOODpOOCtyzjgrPjgqbjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44OS44Ot44OfDQor44Kz44OQ44Ok44K3LOOCseODs+OCuA0KK+OCs+ODkOODpOOCtyzjgq3jg6jjgr/jgqsNCivjgrPjg5Djg6Tjgrcs44Oe44Om44OfDQor44Kz44OQ44Ok44K3LOODgOOCpOOCueOCsQ0KK+OCs+ODkOODpOOCtyzjgr/jgqvjg5Ljg60NCivjgqrjg4As44Oe44K144OS44KzDQor44Kz44Oc44OqLOODkuODh+ODnw0KK+OCs+ODgOOCpOODqSzjg47jg5bjg5Ljg60NCivjgrPjg4Djg54s44K744Kk44K4DQor44Kr44Ov44Kw44OBLOOCouODhOOCtw0KK+OCs+ODgOODhizjg5/jg4Tjg6sNCivjgrPjgqws44OO44Oq44Om44KtDQor44Kz44KsLOOCouOCreODqQ0KK+OCs+OCrOODjeODnuODqyzjg57jgrXjg58NCivjgrPjg4/jg6ks44OI44Oi44OK44OqDQor44Kz44Km44OALOOCseODs+OCpOODgQ0KK+OCs+ODs+ODjizjg57jg4rjg5YNCivjgrPjgrbjgqQs44Kz44Km44Kk44OBDQor44Kz44Kk44KxLOOCouOCreOCqg0KK+OCs+OCpOOCuuODnyzjg57jgrXjgqoNCivjgrPjgrjjg54s44Ok44K544OtDQor44Kz44K444OeLOOCseODsw0KK+OCs+ODnuODhCzjgr/jgqvjgrcNCivjgrPjg6Ljg6os44Oo44K344K/44KrDQor44Kz44Oz44OJLOODiOODouODjuODqg0KK+OCs+ODs+ODiSzjgqTjgrXjg6ANCivjgrPjg7Pjgr8s44Kx44Oz44Kk44OBDQor44Kz44K/44KrLOODn+ODhOODjuODqg0KK+OCs+OCv+OCsSzjg57jgrXjgq0NCivjgrPjg6Tjg54s44OI44Km44Ot44KvDQor44Kv44OcLOODkuODreOCtw0KK+OCr+ODnOOCrSzjgqTjgq/jgrMNCivjgq/jg5zjgr8s44Oo44Km44Kk44OBDQor44Kv44KsLOOCv+ODhOOCuA0KK+OCr+ODnuOCrOOCpCzjg6Tjgrnjg4rjg6oNCivjgq/jg4vjg6Ljg6os44Oo44Km44Kk44OBDQor44Kv44Op44Oi44OILOOCuOODpeODsw0KK+OCr+ODqeOCteODryzjgqLjg4TjgrcNCivjgq/jg6njgrfjg4os44Kr44OE44OS44OIDQor44Kv44Op44K/LOOCteODiOOCtw0KK+OCr+ODquODouODiCzjgr/jgrHjgqoNCivjgq/jg6rjgr8s44Oo44K344Oe44K1DQor44Kv44Ot44OALOODiOOCt+OCq+OCug0KK+OCr+ODreODgCzjg5Ljg4fjgqLjgq0NCivjgq/jg63jgqvjg68s44K344Oz44K0DQor44Kv44Ot44KtLOODhOODqOOCtw0KK+OCr+ODreOCteOCrSzjg6rjg6fjgqbjgqTjg4ENCivjgq/jg63jgrXjg68s44OS44Ot44Om44KtDQor44Kv44Oq44Ol44KmLOOCseODs+OCuA0KK+OCr+ODr+OCvyzjg57jgrXjg5LjgrMNCivjgq/jgrrjg58s44K/44Kr44OS44OtDQor44Oe44OW44OBLOOCv+OCr+ODnw0KK+ODnuOCqOODgCzjg6Tjgrnjg5Ljg60NCivjg57jgqjjg4As44Kx44Kk44K3DQor44Oe44Ko44Ks44OvLOOCouOCreODkuOCsw0KK+ODnuOCqOOCq+ODryzjg6Tjgrnjg4jjgrcNCivjg57jgq3jgqos44K744Kk44Kk44OBDQor44Oe44Oh44OP44OpLOOCouOCreODkuODrQ0KK+ODnuOCteODgCzjg5Ljg63jg6bjgq0NCivjg57jgrnjg4As44Oo44Km44K544KxDQor44Oe44K544OALOODkuODreOCtw0KK+ODnuOCueODgCzjgr/jgqvjgrcNCivjg57jgrnjg4As44OI44Oi44KzDQor44Oe44K544Ok44OeLOODquODhOOCsw0KK+ODnuODhOODgCzjg6Djg4Tjg58NCivjg57jg4Tjg4As44OK44Kq44OfDQor44Oe44OE44Ko44OALOODhOODqOOCtw0KK+ODnuODhOOCpCzjgr/jgqvjg57jgrUNCivjg57jg4Tjg6Ljg4gs44Kx44Oz44K/44Ot44KmDQor44Oe44OE44Oi44OILOOCseOCpOOCuA0KK+ODnuODhOODouODiCzjgrvjgqTjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Om44Km44Kk44OBDQor44Oe44OE44Oi44OILOOCt+ODpeOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjg6jjgqbjgr/jg63jgqYNCivjg57jg4Tjg4rjgqws44Oe44K144Om44KtDQor44Oe44OE44OOLOODpOOCueODkuOCsw0KK+ODnuODhOODjizjgrfjg7PjgqTjg4ENCivjg57jg4Tjgqrjgqss44Of44OB44KzDQor44Oe44Om44OfLOOCouOCreODqQ0KK+ODoeOCq+OCvyzjg5Ljg63jgq0NCivjg6Hjg6ks44Kz44Km44K4DQor44Of44K/44OLLOOCv+ODreOCpg0KK+ODn+OCv+ODiyzjg5/jg4Hjg5Ljg4gNCivjg5/jg4gs44Om44Of44KzDQor44Of44Ok44Ks44OfLOOCt+OCsuODkuOCtQ0KK+OCpOOCquOCrSzjg57jgrXjgqLjgq0NCivjg5/jg6Tjg6Ljg4gs44Ki44Kt44OS44OtDQor44Of44Ok44Og44OpLOODiOODouODpuOCrQ0KK+ODn+ODpOODjizjgr/jgqvjgqLjgq0NCivjg5/jg6Tjgqbjg4Es44Oe44K144OP44OrDQor44Of44Ok44K244KtLOODnuOCteOCq+ODhA0KK+ODouODgeOCuuOCrSzjg6bjgq0NCivjg6Ljg6LjgqQs44OS44OH44Oe44K1DQor44Oi44OqLOODpuOCqw0KK+ODouODqizjgq/jg5/jgrMNCivjg6Ljg6rjg6Ljg4gs44Oo44Km44Kk44OBDQor44Oi44Oq44Oi44OILOODoOODhOOCsw0KK+ODouODquOCquOCqyzjgrHjg7PjgrgNCivjg6Ljg6rjgrXjg68s44OI44Oi44OS44OtDQor44Oi44Oq44K/LOOCq+OCuuODqOOCtw0KK+ODouODquOCvyzjg5Ljg63jg47jg5YNCivjg6Ljg6rjgr8s44Ki44Kt44OS44KzDQor44Oi44Oq44K/LOOCt+ODs+ODpA0KK+ODouODquODpOODnizjgr/jgqvjgrcNCivjg6Ljg6rjg6Tjg54s44K/44OE44OS44KzDQor44Oi44OG44KuLOODiOOCquODqw0KK+ODoOODqeOCq+ODnyzjg57jgrXjgqLjgq0NCivjgqLjgrXjg44s44Kx44Oz44K0DQor44Ki44Om44Kr44OvLOOCteODiOOCtw0KK+ODoOODqeOCqizjg4DjgqTjgrnjgrENCivjg6Djg6njgqrjgqss44K344Ky44OrDQor44Og44Op44K/LOODiOODouOCq+OCug0KK+ODoOOCt+OCouOCsSzjgqjjg5/jgrMNCivjg6Djgr8s44OS44K144K3DQor44OK44OZ44KkLOODnuOCteODkuODrQ0KK+ODiuOCrOOCpCzjgrPjgqbjgqTjg4ENCivjg4rjgqzjgqQs44Oe44K144KzDQor44OK44Ks44Of44ONLOOCteODpuODqg0KK+ODiuOCrOOCteODryzjgr/jg4DjgrcNCivjg4rjgqzjgr8s44OG44OE44KqDQor44OK44Ks44Ok44OeLOODhuODhOODpA0KK+ODiuOCsOODqSzjg6bjg5/jgrMNCivjg4rjgqTjg4jjgqYs44OS44Ot44K3DQor44OK44Kr44Ks44OvLOODquODpeOCpuOCuA0KK+ODiuOCq+OCrOODryzjg6bjg5/jgrMNCivjg4rjgqvjgqzjg68s44Ok44K544K3DQor44OK44Kr44Ks44OvLOODnuOCteODkuODrQ0KK+ODiuOCq+ODj+ODqSzjgr/jgqvjgrMNCivjg4rjgqvjgqQs44K344Ky44OrDQor44OK44Kr44KkLOOCv+OCq+ODkuODrQ0KK+ODiuOCq+OCuOODnizjg4jjgqrjg6sNCivjg4rjgqvjgrjjg54s44Om44Of44KzDQor44OK44Kr44K444OeLOOCq+ODhOODpA0KK+OCteODr+ODgCzjg5/jgqjjgrMNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OO44OWDQor44OQ44Oz44OQLOODhuODhOODpA0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg5Ljg4gNCivjg4rjgqvjg6Djg6ks44Kz44Km44Kk44OBDQor44OK44Kr44Og44OpLOODnuOCteODjuODqg0KK+ODiuOCq+ODoOODqSzjgqvjgrrjgqoNCivjg4rjgqvjg6Djg6ks44Oe44OqDQor44OK44Kr44Og44OpLOOCv+OCseOCtw0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg5Ljg60NCivjg4rjgqvjg44s44OV44Of44KzDQor44OK44Kr44OOLOODkuODreOCq+OCug0KK+ODiuOCq+OCqizjg47jg5bjg6bjgq0NCivjg4rjgqvjgrfjg54s44Ok44K544OS44OtDQor44OK44Kr44K/LOOCs+OCpuOCpOODgQ0KK+ODiuOCq+OCvyzjgqLjgq3jgrMNCivjg4rjgqvjg6Tjg54s44OK44Kq44Ok44K5DQor44OK44Kr44Ok44OeLOODkuODreODleODnw0KK+ODiuOCq+ODpOODnizjgqLjgq3jg5Ljg60NCivjg4rjgqvjg6Tjg54s44Kx44Kk44KzDQor44OK44Kr44K244OvLOOCq+ODhOODpA0KK+ODiuOCq+OCtuODryzjgrHjgqTjgrnjgrENCivjg4rjgqzjgqrjgqss44Om44K/44KrDQor44OK44OK44K344OjLOODqOOCt+ODkuODrQ0KK+ODiuODquOCvyzjg4Tjg6jjgrcNCivjg4rjg6rjgr8s44Oe44Kz44OIDQor44OK44K5LOOCv+OCseOCtw0KK+ODiuOCueOCvyzjg5Ljg63jgrcNCivjg4vjgrcs44Kr44ON44OO44OWDQor44OL44K344OALOODjuODluODpuOCrQ0KK+ODi+OCt+ODoOODqSzjgrXjg4HjgqoNCivjg57jgrXjg4As44K/44Kx44OS44KzDQor44OL44K344Og44OpLOODiOODouOCsw0KK+ODi+OCt+ODoOODqSzjg57jgrXjg6bjgq0NCivjg4vjgrfjgqos44Oo44K344K/44OADQor44OL44K344Ok44OeLOODn+ODiuOCsw0KK+ODi+ODg+OCvyzjgqvjgqrjg6oNCivjg47jgqzjg58s44Ok44K544OS44OtDQor44OO44OK44KrLOOCv+OCq+ODkuODrQ0KK+ODjuOCuyzjg5Ljg4fjgqoNCivjg47jgr/jg5ks44K344Oz44K0DQor44OO44OILOOCuOODpeODs+OCpOODgQ0KK+ODjuODhizjg5Ljg63jgq0NCivjg4zjgq/jgqQs44Oe44K144OS44OtDQor44Kq44OBLOOCouOCreODkuOCsw0KK+OCquODgeOCouOCpCzjg4jjgrfjg6bjgq0NCivjgqrjg4As44Oo44K344Kr44K6DQor44Kq44Ks44K144Ov44OpLOODpuOCpuOCuA0KK+OCquOCrOODryzjg6jjgqbjgrgNCivjgqrjgqzjg68s44Kz44Km44K4DQor44Kq44Ks44OvLOODnuOCteODkuOCsw0KK+OCquOCrOODryzjg57jgrXjg6QNCivjgqrjgqzjg68s44OK44Kq44K/44KxDQor44Kq44Ks44OvLOODiOODouODnw0KK+OCquOCruODjizjg57jgrPjg4gNCivjgqrjgqrjg5As44Oe44K144OS44OHDQor44K/44Kt44Of44OkLOODpuOCreOCqg0KK+OCquOCquODj+OCtyzjgr/jg4Djg6bjgq0NCivjgqrjgqrjg4/jgrcs44K/44Kv44Of44OzDQor44Kq44Kq44KkLOODgeOCteODiA0KK+OCquOCquOCq+ODryzjgqjjg58NCivjgqrjgqrjg6Ljg6os44K444Ol44Oz44KrDQor44Kq44Og44OpLOODnuODpg0KK+OCquODiuOCq+ODj+ODqSzjgr/jgrHjg4TjgrANCivjgqrjgqrjg4vjgrcs44Oo44K344OO44OqDQor44Kq44OOLOOCouOCreOCsw0KK+OCquOCquOCquOCqyzjgr/jgqvjgrcNCivjgqrjgrfjg54s44OO44OWDQor44Kq44K344OeLOOCseODs+OCpOODgQ0KK+OCpOOCseODnuODhCzjgr/jgqvjgrMNCivjgqrjgqrjgr8s44K/44Kx44K3DQor44Kq44Kq44K/LOOCv+OCq+OCtw0KK+OCquOCquOCvyzjgrXjg4HjgrMNCivjgqrjgqrjgr8s44K/44Of44KzDQor44OV44Kv44OALOODn+OCqA0KK+OCquOCvOOCrSzjgrHjgqTjgqTjg4ENCivjgqrjgqTjg4As44OS44OI44K3DQor44Kq44Kk44K4LOOCr+ODi+ODkuODrQ0KK+OCquOCq+ODgCzjgrfjg7PjgrgNCivjgrnjgq7jg6Ljg4gs44K/44Kr44Om44KtDQor44Kq44Kr44K244KtLOODpOOCueODkuODrQ0KK+OCquOCq+OCtuOCrSzjg6TjgrnjgrcNCivjgqrjgqvjgrbjg68s44OS44OI44K3DQor44Kq44Kv44OALOODhuODhOODpA0KK+OCquOCr+ODgCzjg57jgrXjgq0NCivjgqrjgq/jg6Djg6ks44K344Ky44OrDQor44Kq44Kv44Og44OpLOODkuODh+ODkuODiA0KK+OCquOCr+ODjizjgrPjgqbjgr/jg63jgqYNCivjgqrjgq/jg6Tjg54s44Ki44Kt44OS44OtDQor44Kq44OOLOODiuOCquODnw0KK+OCquOCquODjOOCrSzjg5Ljg4fjg47jg6oNCivjgqrjgqrjg4/jgrcs44OI44K344KqDQor44OI44Kq44OkLOODnuOCteODkuODrQ0KK+OCquODiOOCsOODrSzjg47jg5bjg6bjgq0NCivjgrXjgqTjgrTjgqYs44K/44Kx44OS44OtDQor44K144Kk44OI44KmLOODqOOCt+OCv+ODreOCpg0KK+OCteOCpOODiOOCpizjgqLjgq3jg5LjgrUNCivjgrXjgqTjg4jjgqYs44OV44Of44OS44KzDQor44K144Kk44OI44KmLOODkuODreOCrQ0KK+OCteOCpOODiOOCpizjg5Ljg63jgrcNCivjgrXjgqTjg4jjgqYs44K444Ol44OzDQor44K144Kk44OI44KmLOOCq+ODs+OCuA0KK+OCteOCq+OCqOODgOODiyzjg5/jgqsNCivjgrXjgqvjgqQs44OO44OW44Ok44K5DQor44K144Kr44KkLOODiOOCr+OCuOODreOCpg0KK+OCteOCq+OCvyzjg4Tjg6jjgrcNCivjgrXjgqvjgr8s44Kr44K644OS44KzDQor44K144Kv44OeLOOCv+OCq+ODkuODrQ0KK+OCteOCr+ODqeODkOODpOOCtyzjgqLjg4TjgrcNCivjgrXjgq/jg6njgqQs44Oe44OE44KqDQor44K144Kv44K/LOODqOOCt+OCouOCrQ0KK+OCteOCteOCrSzjg57jgrXjgqvjgroNCivjgrXjgrXjgq0s44Ki44Kt44OpDQor44K144K144KtLOOCteODgeOCsw0KK+OCteOCteOCrSzjg6jjgrfjg6bjgq0NCivjgrXjgrXjg6Es44Oo44Km44Kk44OBDQor44K144OI44KmLOOCq+OCuuODjuODqg0KK+OCteODiOOCpizjg57jgrXjg5LjgrMNCivjgrXjg4jjgqYs44Oo44K344OS44OtDQor44K144OI44KmLOODqOOCt+ODreOCpg0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgrXjg4jjgqYs44OS44Ot44OfDQor44K144OI44KmLOODkuODreOCtw0KK+OCteODiOOCpizjgrPjgqbjgrgNCivjgrXjg4jjgqYs44K344On44Km44K4DQor44K144OI44KmLOODpOOCqA0KK+OCteODiOOCpizjgq/jg5/jgrMNCivjgrXjg4jjgqYs44OS44Ot44Ok44K5DQor44K144OI44KmLOODquOCqA0KK+OCteODr+ODgCzjgr/jgqvjg40NCivjgrXjg6/jg4/jgrcs44K/44OE44Om44KtDQor44K144Ov44OOLOOCq+OCuuODkuODrQ0KK+OCu+OCsOODgSzjgrfjg6Xjgqbjg5jjgqQNCivjgrvjgq0s44OI44Oi44KzDQor44K744Kt44Kw44OBLOODqOOCt+ODkuODrQ0KK+OCu+OCreOCsOODgSzjgrXjg4jjgrcNCivjgrfjg5As44Kr44Kq44OqDQor44K344OQ44K/LOOCouODpOOCsw0KK+OCt+ODkOOCvyzjg57jgrXjg4/jg6sNCivjgrfjg5bjg6Qs44K/44Kr44K3DQor44K344Oe44OALOOCt+ODpeOCpuOCuA0KK+OCt+ODn+OCuizjgqvjg4Tjg6bjgq0NCivjgqTjgrfjgqvjg68s44K/44Kr44Om44KtDQor44K344Of44K6LOODiOODouODkuODrQ0KK+OCt+ODn+OCuizjgqvjg4Tjg6bjgq0NCivjgrfjg5/jgros44Kx44Oz44K4DQor44K344Of44K6LOOCseODs+OCv+ODreOCpg0KK+ODleOCuOOCqOODgCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgrfjg6Ljg6Tjg57jg4As44K344Oz44Kk44OBDQor44K344OK44Ks44OvLOODiOODouODkuODhw0KK+OCt+ODs+ODpCzjg5/jg4Tjg47jg6oNCivjgrfjgqrjg58s44K344Oz44K4DQor44K344Kq44OELOOCq+ODhOODkuOCsw0KK+OCu+OCreOCsOODgSzjg4jjgqrjg6sNCivjg4Tjg47jg4As44K/44Kr44K3DQor44K344Op44K144KrLOOCouODhOOCqg0KK+OCt+ODreOCt+OCvyzjg5Ljg63jg6bjgq0NCivjgrfjgr/jg6ks44OS44K144K3DQor44K344On44KmLOOCuOODpeODs+OCpOODgQ0KK+OCueOCrOODr+ODqSzjg5/jg5sNCivjgrnjgqzjg6/jg6ks44K144OI44K3DQor44K544Ku44Oi44OILOOCt+ODp+OCpuOCpOODgQ0KK+OCueOCruOCvyzjg4jjg6LjgqvjgroNCivjgrnjgq7jgr8s44Oe44K144Oo44OqDQor44K544Ku44K/LOOCq+ODhOODkuOCsw0KK+OCueOCruOCpuODqSzjgrXjg4jjgrMNCivjgrnjgq7jgqbjg6ks44OI44Oo44OS44K1DQor44K544Ku44Ok44OeLOODn+OCuuODmw0KK+OCpOOCseOCvuOCqCzjg57jgrXjg4jjgrcNCivjgrnjgq7jg6Tjg54s44OS44Ot44Ki44KtDQor44K544KrLOODiOODouODpuOCrQ0KK+OCueOCseOCrOODryzjg47jg5bjg6jjgrcNCivjgrnjg5/jg47jgqbjgqgs44OS44OH44KtDQor44K544Of44Oo44K3LOOCv+ODjeOCq+OCug0KK+OCueODn+ODqOOCtyzjg4jjgrfjg5/jg4QNCivjgrnjg4rjg58s44OS44Ot44Om44KtDQor44K544K644KtLOODpOODgeODqA0KK+OCueOCuuOCrSzjg57jg6Ljg6sNCivjgrnjgrrjgq0s44Ki44Kt44OS44OtDQor44K544K644KtLOOCouOCreODqQ0KK+OCueOCuuOCrSzjg5Ljg63jgqLjgq0NCivjgrnjgrrjgq0s44Kk44OD44Oa44KkDQor44K544K644KtLOODnuOCteODiA0KK+OCueOCuuOCrSzjg47jg5bjgqLjgq0NCivjgrfjg6fjgqbjgrgs44K344K6DQor44K344On44KmLOOCt+ODp+OCpuOCv+ODreOCpg0KK+OCv+ODkOOCvyzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgr/jg4As44OI44K344KqDQor44K/44OJ44Kz44OtLOODkuODh+ODpuOCrQ0KK+OCv+OCrOODnyzjgrPjgqbjgrgNCivjgr/jgrDjg4Es44K/44Kr44K3DQor44K/44Kw44OBLOODkuODreOCouOCrQ0KK+OCv+OCpCzjg57jgrXjg4bjg6sNCivjgr/jgqTjg6ks44Ki44OE44K3DQor44K/44Kk44K1LOODn+ODhOODkuODrQ0KK+OCv+OCuOODnizjgq3jg6jjgrcNCivjgr/jgqvjg4As44K/44OA44OK44KqDQor44K/44Kr44OALOOCqOODhOODreOCpg0KK+OCv+OCq+OCrizjg4bjg4Tjg63jgqYNCivjgr/jgqvjg4/jgrcs44Ki44OE44OkDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjg4jjgqrjg6sNCivjgr/jgqvjg4/jgrcs44OK44Kq44KtDQor44K/44Kr44OP44K3LOOCteODiOOCtw0KK+OCv+OCq+ODj+OCtyzjg6bjgqbjgrgNCivjgr/jgqvjg4/jgrcs44OI44K344KqDQor44K/44Kr44OP44K3LOODpuOCpuOCueOCsQ0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjgq0NCivjgr/jgqvjg4/jgrcs44Oo44K344OV44OfDQor44K/44Kr44KkLOOCt+ODjuODlg0KK+OCv+OCq+ODjizjgqvjg7PjgrMNCivjgr/jgqvjgrfjg54s44OK44Kq44OkDQor44K/44Kr44Ok44OeLOODkuODh+ODhOOCsA0KK+OCv+OCseODgCzjgqvjgrrjg6jjgrcNCivjgr/jgrHjgqTjg4Es44Kx44Kk44K544KxDQor44K/44Kx44Oe44K1LOOCseODs+OCpOODgQ0KK+OCv+OCseODoOODqSzjgrfjg5sNCivjgr/jgrHjg6Djg6ks44K344Ol44Oz44K544KxDQor44K/44Kx44OK44KrLOODiuOCquODiA0KK+OCv+OCseOCt+OCvyzjgrfjg6fjgqbjgr7jgqYNCivjgr/jgrHjgqbjg4Es44Ki44OE44OIDQor44K/44Kx44Km44OBLOODkuODiOOCtw0KK+OCv+OCseOCpuODgSzjgqjjgqTjgqTjg4Hjg63jgqYNCivjgr/jgq3jgqvjg68s44Ki44OE44K3DQor44K/44Kt44Kt44K/LOOCv+OCq+OCtw0KK+OCv+OCreOCtuODryzjg5Ljg4fjg4gNCivjgr/jgrMs44Oo44K344KtDQor44K/44Kr44OOLOODouODiOODpuOCrQ0KK+OCv+ODnuOCrOODryzjg5Ljg63jg6bjgq0NCivjgr/jg57jgq0s44Kq44K144OgDQor44K/44Og44OpLOOCq+OCuuOCv+OCqw0KK+OCv+ODiuODmSzjg5Ljg63jg47jg5YNCivjgr/jg4rjg5ks44OV44Of44KqDQor44K/44OK44KrLOOCreODp+OCpuODmOOCpA0KK+OCv+ODiuOCqyzjgq3jg6fjgqbjgrMNCivjgr/jg4rjgqss44Of44ObDQor44K/44OK44KrLOODqOOCt+ODkuOCtQ0KK+OCv+ODiuOCqyzjg6jjgqbjgrMNCivjgr/jg4rjgqss44Oe44K144Oo44K3DQor44K/44OLLOOCq+OCuuODiuODqg0KK+OCv+ODi+OCsOODgSzjg47jg5bjg5Ljg60NCivjgr/jg4vjgrfjg6fjgqYs44K344Oz44K0DQor44K/44OG44Ok44OeLOODqOOCt+ODleODnw0KK+OCv+ODhOODnyzjg57jgrnjg58NCivjgr/jgqbjg6ks44K/44Kr44OI44K3DQor44K/44K244OvLOODiOODouODpuOCrQ0KK+OCv+OCuuOCsSzjgrvjgqTjgqTjg4ENCivjg4bjg6njg4As44Kx44Kk44KzDQor44OI44Km44OeLOOCq+OCuuODkuODrQ0KK+ODiOOCquODpOODnizjgqvjgrrjg5Ljg60NCivjg4jjg6Hjgqrjgq8s44Ki44Kt44KqDQor44OI44Of44Kk44KoLOODj+ODpOODiA0KK+ODleOCv+ODhOOCrizjg5Ljg63jgrcNCivjg4jjg6Ljg4jjgrcs44Kx44Oz44K4DQor44OI44ON44Ks44OvLOOCouOCreOCsw0KK+OCquOCr+ODoOODqSzjg47jg6rjg5LjgrMNCivjg4jjgrfjgrfjgrIs44OS44Ot44K3DQor44OI44Oo44OALOOCq+OCuuODiuODqg0KK+ODiOODqOODiuOCqyzjg57jgrXjg6QNCivjg4Tjg5Djgq0s44OG44OE44OkDQor44OE44OB44Oi44OILOODleODn+OCqg0KK+ODhOODgCzjgrXjg4jjgrcNCivjg4Tjg4As44Kr44OoDQor44OE44OALOODiOOCt+OCqA0KK+ODhOOCuOOCpCzjg4jjg6Ljgr/jgqsNCivjg4Tjgrjjg6Djg6ks44OO44Oq44KzDQor44OE44Kr44OP44OpLOODiOOCt+ODreOCpg0KK+ODhOODjuODgCzjgrfjg6fjgqbjgrgNCivjg4Tjg6vjgq4s44OP44Or44OS44KzDQor44OE44Or44K/LOODhuODq+ODkuOCsw0KK+ODhOOCt+ODnizjgq3jg4zjg6gNCivjg4Tjg4TjgqQs44OS44Ot44Om44KtDQor44OE44OB44OALOOCq+ODhOODpuOCrQ0KK+OCpuODgeODgCzjgrXjg4jjg6sNCivjgqbjg4Hjg4As44K/44Kv44K4DQor44Km44OB44Kv44OpLOOCv+OCseOCtw0KK+OCpuODgeOCv+ODiyzjgqvjg4TjgrMNCivjgqbjgqjjg4As44K144Kt44KzDQor44Km44Ko44OALOODgeOCqA0KK+OCpuOCqOODgCzjgqzjgq8NCivjgqbjgqjjg4As44Ki44Kt44OO44OqDQor44Km44Ko44Og44OpLOODkuODreOCsw0KK+OCpuOCqOODjizjg5Ljg63jgrcNCivjgqbjgqjjg4Tjgq0s44Oe44KtDQor44Kk44KxLOODnuOCteODqw0KK+OCpuODoeODgCzjg5/jg5sNCivjgqbjg6Hjg6Djg6ks44OK44OE44KzDQor44Km44OO44KtLOODjuODluODkuOCsw0KK+OCpuODqeOCt+OCvyzjg4jjg6LjgrMNCivjgqbjg6njgr8s44OI44Oi44Om44KtDQor44Km44K344KqLOODqOOCt+OCqg0KK+OCpuOCv+OCrOODryzjg4bjg4Tjg6QNCivjg6/jg4As44OI44Oi44KzDQor44Ov44OALOOCouOCreODkuODiA0KK+ODr+ODgCzjg5Ljg63jgr/jg4QNCivjg6/jg4As44Oe44K144OS44OtDQor44Ov44Ks44OE44OeLOOCt+ODp+OCpuOCpOODgQ0KK+ODr+OCq+ODnuODhCzjg6bjgqbjgrgNCivjg6/jgq3jgr8s44OS44Ot44Ki44KtDQor44Ov44KzLOODkuODreOCq+OCug0KK+ODr+ODquOCq+OCvyzjg4rjgqrjg6bjgq0NCivjg6/jgrfjgros44K344On44KmDQor44Ov44K/44OK44OZLOOCt+ODpeODs+OCuA0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg6bjgq0NCivjg6/jgr/jg4rjg5ks44OI44K344KqDQor44Ov44K/44OK44OZLOOCrOOCrw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg5Xjg58NCivjgqrjg6Djg6ks44OS44Ot44OS44OHDQor44Ov44K/44OK44OZLOOCs+OCpuOCu+OCpA0KK+ODr+OCv+ODiuODmSzjg4rjgqrjgrMNCivjg6/jgr/jg4rjg5ks44Oq44Ol44Km44Kk44OBDQor44Ov44K/44OK44OZLOODhuODhOODreOCpg0KK+ODpOOCrizjg4jjg6Ljg58NCivjg6Tjgq4s44Om44Km44KzDQor44Ok44Oe44OALOOCv+OCq+ODiA0KK+ODpOODnuODgCzjg47jg6rjg4jjgrcNCivjg6Tjg57jg4As44OS44OH44OV44OfDQor44Ok44Oe44OALOOCt+OCsuOCqg0KK+ODpOODnuODgCzjgr/jgrHjg5Ljg60NCivjg6Tjg57jg5Xjgq8s44OS44OH44KqDQor44Ok44Oe44Kw44OBLOODnuODquOCsw0KK+ODpOODnuOCsOODgSzjg6jjgqbjgrgNCivjg6Tjg57jgrDjg4Es44Oo44Km44KzDQor44Ok44Oe44Kw44OBLOODkuODreOCq+OCug0KK+ODpOODnuOCuCzjg4jjgqrjg6sNCivjg6Tjg57jgqvjg68s44Kz44Km44K4DQor44Ok44Oe44Oi44OILOOCv+OCq+ODjuODqg0KK+ODpOODnuODouODiCzjgrHjg7PjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Of44OE44K+44KmDQor44Ok44Oe44Oi44OILOODpuOCreOCsw0KK+ODpOODnuODouODiCzjg5Ljg63jg6TjgrkNCivjg6Tjg57jg6Ljg4gs44Kz44Km44K4DQor44Ok44Oe44Oi44OILOODnuOCteOCrQ0KK+ODpOODnuODouODiCzjg6bjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44Om44K/44KrDQor44Ok44Oe44OKLOOCu+OCpOOCpOODgeODreOCpg0KK+ODpOODnuOCteOCrSzjgqvjg4Tjg58NCivjg6Tjg57jgrfjgr8s44OO44Oq44OI44K3DQor44Ok44Oe44K344K/LOODiOOCquODqw0KK+ODpOODnuOCtuOCrSzjg5Ljg63jgrcNCivjg6Tjg4rjgq4s44Oq44On44KmDQor44Ok44OOLOOCseODs+OCv+ODreOCpg0KK+ODpOOCt+ODrSzjgr/jgrHjgrcNCivjg6TjgrnjgqQs44OV44OI44K3DQor44Ok44K544Og44OtLOOCv+OCq+OCtw0KK+ODpOOCueOCpuOCuCzjg6jjgrfjg6bjgq0NCivjg6jjgrPjgqgs44OS44OH44OO44OqDQor44Oo44Kz44KkLOODnuODpA0KK+ODqOOCs+ODn+OCvizjgq3jg6jjgrfjgrINCivjg6jjgrPjg6Tjg54s44Oe44K144OS44KzDQor44Oo44ON44K244OvLOOCq+OCuuODkuOCsw0KK+ODqOOCt+ODgCzjgrHjg7Pjg6QNCivjg6jjgrfjg4As44OO44OW44OS44OtDQor44Oo44K344OALOOCq+ODhOODpA0KK+ODqOOCt+ODgCzjgqvjgrrjgqLjgq0NCivjg6jjgrfjg4As44OI44Oi44OfDQor44Oo44K344KkLOOCt+OCsuODiA0KK+ODqOOCt+ODoOODqSzjg4bjg6vjgqvjgroNCivjg6jjgrfjg6Tjg54s44Ko44Kk44K4DQor44Oo44K344K244OvLOOCteODgeOCsw0KK+ODleOCuOOCt+ODnizjgrHjg7Pjgr/jg63jgqYNCivjg6bjgqLjgrUs44Kx44KkDQor44Om44KtLOOCu+ODhOOCsw0KK+ODpuOCrSzjgqLjgq3jg6gNCivjg6bjgqQs44OA44Kk44K544KxDQor44Ki44OA44OBLOODiuOCquOCv+OCsQ0KK+ODkOODsyzjgr/jgqvjgrcNCivjg5Xjg6vjgqQs44Oo44K344OO44OqDQor44OP44K744Ks44OvLOODj+OCuOODoQ0KK+ODkuODqeOCq+ODryzjg57jg4rjg5YNCivjgqTjg4jjgqYs44OI44K344OS44KzDQor44Kk44Ov44K144KtLOODquODp+OCpuOCuA0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg6/jg4/jg6ks44Oo44K344Of44OEDQor44Oe44Ko44OP44OpLOOCquOCteODoA0KK+ODnuODhOOCv+ODiyzjgrfjgrLjgqoNCivjg6Ljg6rjgqTjg4Es44Ko44Kk44K444Ot44KmDQor44OL44K344Km44OBLOODjuODluODpuOCrQ0KK+ODleOCuOODnuOCrSzjgr/jgqTjgr7jgqYNCivjgqrjgqrjg4/jg6ks44K/44Kr44K3DQor44K144OK44OALOODkuODh+OCouOCrQ0KK+OCveODjSzjg4Tjg4jjg6ANCivjg4jjg47jg6Djg6ks44Oo44K344Om44KtDQor44K344Of44K6LOOCseOCpA0KK+ODn+OCt+ODnizjg57jg6rjgrMNCivjg5Xjgrjjgr8s44K/44Ot44KmDQor44OV44K444K/LOODkuODh+OCrQ0KK+ODleOCuOOCvyzjg6jjgqYNCivjg5Xjgrjjg6/jg6ks44Kz44Km44K444Ot44KmDQor44OV44K444Ol44KmLOOCt+ODs+OCpOODgQ0KK+ODleOCq+ODgCzjgr/jgq/jg6QNCivjg5Xjgq/jg4As44Om44K/44KrDQor44OV44Kv44OS44K1LOODiuOCquOCv+OCqw0KK+ODleOCr+OCtuODiCzjgqLjg6QNCivjg5Xjgq/jgrbjg68s44K/44Kr44K3DQor44OV44Or44K144OvLOOCreODj+ODqw0KK+ODj+OCrOODryzjgr/jgqvjgrcNCivjg4/jgq4s44OS44Ot44K/44KrDQor44OP44Op44OALOODn+ODhOODqw0KK+ODj+ODqeODgCzjg47jg5bjg5Ljg60NCivjg4/jg6njg4As44Oe44KtDQor44OP44Op44Oe44KtLOODiuOCquOCsw0KK+ODj+OCu+OCrOODryzjg6rjgqgNCivjg4/jgrvjgqzjg68s44OS44OH44Ki44KtDQor44OP44K344KqLOODpuOCqw0KK+ODj+OCueODnyzjg5Ljg63jgrcNCivjg4/jgrnjg58s44Kx44Oz44Kk44OB44OtDQor44OP44OD44OI44OqLOODqOODquOCsw0KK+OCpOOCt+OCq+ODryzjg5bjg7Pjg5rjgqQNCivjg4/jg6Tjgrcs44K/44Kr44KzDQor44OS44Op44OOLOOCv+OCr+ODpA0KK+ODkuODqeODjizjgqvjgrrjgqLjgq0NCivjg5Ljg6njg44s44OI44K344Ki44KtDQor44OS44Ot44OZLOODkuODh+OCrQ0KK+OCt+ODjuODgCzjgrHjg7PjgrgNCivjg5LjgrXjg4As44K/44Kr44Om44KtDQor44ObLOOCv+OCseOCtw0KK+ODm+ODs+OCtOOCpizjg4bjg6vjg5LjgrMNCivjg5vjgrcs44Of44OB44KzDQor44Ob44K344OOLOODnuOCteOCrQ0KK+ODm+OCveOCq+ODryzjg5Ljg63jgqvjgroNCivjg5vjgr3jg44s44Om44OfDQor44Kr44OI44KmLOODqOOCt+ODreOCpg0KK+OCpOOCrizjg6jjgqbjgrMNCivjgqTjgrHjg4As44OI44K344Om44KtDQor44Kk44Kv44OtLOODjuODquODkuODrQ0KK+OCpOODnuOCpCzjgqvjgrrjg6jjgrcNCivjgqTjg4rjg4As44Kz44Km44OY44KkDQor44Kk44OO44Kw44OBLOOCv+OCq+ODpuOCrQ0KK+OCpOOCt+OCsOODrSzjg4TjgrDjgqvjgroNCivjgqTjgrfjgqvjg68s44OS44Ot44KtDQor44Kk44K344Kr44OvLOOCseODs+OCuA0KK+OCpOOCt+OCtuOCrSzjg6bjgqvjg6oNCivjgqTjgrfjgrzjgq0s44Oo44K344OIDQor44Kk44OI44KmLOODhuODhOODpA0KK+OCpOODiOOCpizjg57jgrXjg6jjgrcNCivjgqTjg4jjgqYs44OK44Kq44KtDQor44Kk44OI44KmLOODqOOCt+ODnw0KK+OCpOODnuOCrOODryzjgrHjgqQNCivjgqTjgrbjg68s44Kz44Km44K4DQor44Kk44K644OfLOOCt+ODp+OCpuOCuA0KK+OCpOOCuuODn+ODgOODhizjg47jg6rjg4jjgrcNCivjgqvjg5bjg6njgq4s44Kr44Kq44OqDQor44Kr44Of44Ok44OeLOODiOOCquODqw0KK+OCq+ODiuODpOODnizjgrPjgqbjgrgNCivjgqvjg4rjgrbjg68s44K444Ot44KmDQor44Kr44Oz44OQ44OpLOOCq+ODhOODqOOCtw0KK+OCq+ODs+ODgCzjg6bjgqbjgrMNCivjgqvjg7Pjg4As44Of44K544Oe44OrDQor44Kr44ON44KzLOODiuODquODiOODog0KK+OCq+OCt+ODoOODqSzjg5Ljg63jgrcNCivjgqvjgr/jgq7jg6os44K344Oz44K544KxDQor44Kr44OI44KmLOODkuODreODjuODqg0KK+OCq+ODiOOCpizjg47jg5bjg5LjgrUNCivjgqvjg6/jg4As44OP44Or44OfDQor44Kr44Ov44K544OfLOODqOOCpuOCsw0KK+OCreODiSzjgrfjg6Xjg7PjgqTjg4ENCivjgq3jgq/jg4Es44OO44OW44OS44OtDQor44Kt44Oi44OILOOCv+OCr+ODpA0KK+OCreODoOODqSzjgrHjg7Pjgr8NCivjgq3jg7Pjg4ks44Of44OB44OP44OrDQor44Kt44K/44Og44OpLOODn+ODmw0KK+OCreOCv+ODjizjgrXjg4DjgqoNCivjgq3jgr/jg6/jgr/jgrss44K544K544OgDQor44Kt44OD44K/LOODpOOCueOCsw0KK+OCreODpOODnizjgrvjgqTjgrgNCivjgq3jg6jjgr8s44OS44Ot44Om44KtDQor44Kz44OQ44Ok44K3LOOCuOODpeODs+OCuA0KK+OCs+ODkOODpOOCtyzjg6jjgqbjgrMNCivjgrPjgqws44Ki44OE44OkDQor44Kz44OP44OpLOOCv+OCq+ODpuOCrQ0KK+OCs+OCuOODiizjgrHjg7MNCivjgrPjg7Pjg44s44Kx44Kk44K0DQor44Kz44K644KrLOODnuOCteOCrQ0KK+OCs+OCpOODhyzjgrfjg7PjgrgNCivjgrPjg57jg4Qs44Oq44Ol44Km44K544KxDQor44Kz44Of44OK44OILOOCt+ODpeOCpuOCuA0KK+OCs+ODouODqizjgrXjg4jjgrMNCivjgrPjg7Pjg4ks44OS44Ot44OS44KzDQor44Kz44OL44K3LOODjuODquOCsw0KK+OCr+ODnOODpOODnizjgr/jg4DjgqLjgq0NCivjgq/jg57jgqzjgqQs44Oq44On44Km44K4DQor44Kv44Oe44K/LOOCv+OCq+OCsw0KK+OCr+ODquODj+ODqSzjgr/jgrHjgrcNCivjgq/jg6rjg4/jg6ks44Kx44Kk44KzDQor44Kv44Oq44K/LOOCteODiOOCtw0KK+OCr+OCteODjizjg5Ljg63jg5Xjg58NCivjgq/jgrfjg4As44Ki44Kt44OS44KzDQor44Oe44Ko44OALOODpuOCrQ0KK+ODnuOCrSzjgrHjgqTjgrnjgrENCivjg57jgq3jgr8s44K344Oz44K4DQor44Oe44Or44Ok44OeLOODhOODjeOCqg0KK+ODnuOCueODgCzjg4DjgqTjg4ENCivjg57jg4Tjg5Djg6ks44OB44Kr44OpDQor44Oe44OE44OQ44OpLOODkuODh+ODiOOCtw0KK+ODnuODhOOCpCzjgrHjgqTjgrMNCivjg57jg4Tjg6Ljg4gs44Oe44K144Om44KtDQor44Oe44OE44Og44OpLOOCt+ODs+OCv+ODreOCpg0KK+ODnuODhOOCqizjgqvjgrrjg5Ljg60NCivjg5/jgqvjg58s44Of44OE44KqDQor44Of44KtLOOCv+OCq+OCouOCrQ0KK+ODn+ODjuOCpuODqSzjgrvjgqTjgrgNCivjg5/jgrfjg54s44Kx44Oz44Kk44OBDQor44Of44OE44OK44KsLOODqOOCt+ODpuOCrQ0KK+ODn+OCpuODqSzjg57jgrXjg47jg6oNCivjg5/jg68s44K/44Kr44OO44OWDQor44Of44Ok44KqLOODpOOCueODj+ODqw0KK+ODn+ODpOOCvyzjgqvjg4rjgqYNCivjg5/jgrrjgr/jg4ss44Kr44K644OS44KzDQor44Of44K644K/44OLLOODkuODh+ODjuODlg0KK+ODouODgeOCuuOCrSzjg5/jg4Tjg6sNCivjg6Ljg4Hjgrrjgq0s44Kv44Of44KzDQor44Oi44OB44K644KtLOODjuODluODpuOCrQ0KK+ODouOCrizjg5Ljg63jgrcNCivjg6Ljg6os44K144OI44OrDQor44Oi44OqLOOCv+ODgOODkuOCsw0KK+ODouODqizjgr/jg4Djg6bjgq0NCivjg6Ljg6os44OI44Oi44OS44K1DQor44Oi44OqLOODiOOCt+OCrQ0KK+ODouODquODpOODnizjg4jjgrfjgqoNCivjg6Ljg63jgqrjgqss44Om44KtDQor44Oi44OI44OQLOODgOOCpOOCteOCrw0KK+ODoOODjeODiCzjgqvjg4Tjg57jgrUNCivjg6Djg6njgqQs44Oo44K344KzDQor44Og44Op44Kq44KrLOOCseODsw0KK+ODoOODreOCpCzjg5Ljg4fjg5Ljg60NCivjg4rjgqzjg5Xjgrgs44Kt44Of44OS44OIDQor44OK44Ks44KkLOOCouOCreODqQ0KK+ODiuOCpOODiOOCpizjg6bjgq3jgrMNCivjg4rjgqTjg4jjgqYs44K/44Ot44KmDQor44OK44Kr44Ks44OvLOODn+ODjuODqw0KK+ODiuOCq+ODj+ODqSzjg5/jg6TjgrMNCivjg4rjgqvjgrjjg54s44Om44K/44KrDQor44OK44Kr44K444OeLOODnuOCteODkuOCsw0KK+ODiuOCq+ODoOODqSzjgr/jgrHjgrcNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOOCouODpA0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg6kNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OpDQor44OK44Kr44Og44OpLOOCouODhOOCtw0KK+ODiuOCq+ODoOODqSzjg5LjgrXjg4gNCivjg6Tjg57jg4As44K/44Kr44K3DQor44OK44Kr44KqLOOCqOOCpOOCuA0KK+ODiuOCq+ODhOOCq+OCtSzjgq3jg6jjgrcNCivjg4rjgqvjg6Tjg54s44Oe44OqDQor44OK44Og44OpLOODoOODjeODpuOCrQ0KK+ODiuOCueODjizjg4rjgqrjgq0NCivjg4vjgqTjgrzjgq0s44OI44K344OP44OrDQor44OL44K344Kr44OvLOOCs+OCpuOCvuOCpg0KK+ODi+OCt+OCreOCquODqizjg6jjgrfjgqLjgq0NCivjg4vjgrfjgrbjg68s44Kr44OE44OO44OqDQor44OO44Ki44KtLOODqOOCpuOCsw0KK+ODjuODgCzjgrHjg7Pjgr/jg63jgqYNCivjg47jg4As44Om44Km44KzDQor44OO44Kw44OBLOODkuOCteOCtw0KK+ODjuODoOODqSzjg5Ljg4fjgq0NCivjgqrjg4HjgqLjgqQs44Kz44K544KxDQor44Oi44OqLOODnuODquOCsw0KK+OCquOCrOOCteODr+ODqSzjg5/jg4Tjg5LjgrUNCivjgqrjgqzjgrXjg6/jg6ks44K/44OE44K3DQor44Kq44Ks44OvLOODquODp+OCpuOCsw0KK+OCquOCrOODryzjgr/jgqvjg5Ljg60NCivjgqrjgqzjg68s44Ok44K544OS44K1DQor44Kq44Kw44OpLOODleODn+ODjuODqg0KK+OCquOCsOODqSzjg57jgrXjgq0NCivjgqrjgqrjgqTjgrcs44OS44Ot44OkDQor44Kq44Kq44Kr44OvLOODiOOCt+OCouOCrQ0KK+OCquOCquOCq+ODryzjgrjjg6Xjg7PjgrMNCivjgqrjgqvjgrws44OK44Kq44KtDQor44Kq44KtLOODhuODhOODpA0KK+OCquODoOODqSzjgqLjg4TjgrcNCivjgqrjgqrjgrnjg58s44Oe44K144OS44OtDQor44Kq44Kq44K/LOODleODn+ODkuOCsw0KK+OCquOCquOCv+OCsSzjg4bjg4TjgrgNCivjgqrjgqrjgr/jg4ss44Kx44OzDQor44Kq44Kq44Ok44OeLOOCseODs+OCuA0KK+OCquOCvOOCrSzjg5Ljg63jgrcNCivjgqrjgqvjg6Ljg4gs44K444Ol44OzDQor44Kq44Kr44Og44OpLOOCs+OCpuOCt+ODsw0KK+OCquOCq+ODoOODqSzjg57jg6Ljg6sNCivjgqrjgq/jg6Djg6ks44Oe44OK44OfDQor44Kq44Oz44OALOODjuODquODkuOCsw0KK+OCquODjuODh+ODqSzjg47jg6rjg6bjgq0NCivjgqrjg6Tjg5ks44K/44Kr44OO44OqDQor44K144KsLOODiOOCt+OCouOCrQ0KK+OCteOCpOODiOOCpizjg6bjgqbjgrMNCivjgrXjgqvjgqQs44K144OK44KoDQor44Kk44KuLOOCouOCreODjuODqg0KK+OCteOCq+ODouODiCzjg5LjgrXjg40NCivjgrXjgqvjg6Ljg4gs44Oo44K344OS44OtDQor44K144Kr44OE44KuLOOCq+OCuuOCqg0KK+OCteOCq+OCpuOCqCzjgrHjg7PjgrgNCivjgrXjgq/jg54s44Oe44Oq44KzDQor44K144Kv44OpLOOCqOOCpOOCrQ0KK+OCteODiuODgCzjg6jjgrfjg5Ljg60NCivjgrXjgrXjgq0s44K/44Kx44KqDQor44K144K144KtLOODiuOCquODpA0KK+OCteODiOOCpizjgqvjg4Tjg6bjgq0NCivjgrXjg4jjgqYs44K/44Kr44OS44OtDQor44K144OI44KmLOODiOOCt+OCouOCrQ0KK+OCteODiOOCpizjgrfjg6XjgqbjgqTjg4ENCivjgrXjg4jjgqYs44OS44OH44OS44K1DQor44K144OI44KmLOOCq+ODhOODkuODrQ0KK+OCteODiOOCpizjgq3jg6fjgqbjgrMNCivjgrXjg4jjgqYs44Ok44K544OS44OIDQor44K144OI44KmLOOCq+OCuuODkuODhw0KK+OCteODiOOCpizjgrXjg4jjg58NCivjgrvjgqTjgrEs44Oe44K144OO44OqDQor44K744KtLOODqOOCpuOCpOODgQ0KK+OCu+OCrSzjg4bjg4Tjg6QNCivjgrvjgq0s44OG44OEDQor44K744Kt44Kw44OBLOOCv+OCseOCtw0KK+OCu+OCvyzjg4jjgrfjgqoNCivjgrfjg7PjgqzjgqQs44Ki44Kt44KzDQor44K344OQ44K/LOODqOOCt+OCsw0KK+OCt+ODkOOCvyzjg6bjgq3jg47jg6oNCivjgrfjg5bjgq0s44K444Ot44KmDQor44K344Ky44OI44OfLOOCq+OCuuODn+ODhA0KK+OCt+OCrCzjg5Ljg63jgrcNCivjgrfjgqTjg5As44Of44KrDQor44K344Oe44OALOOCpOODgeODreOCpg0KK+OCt+ODnuOCq+ODryzjgrfjgrLjg6sNCivjgrfjg5/jgros44K544K544OgDQor44K344Of44K6LOOCv+OCq+ODhOODig0KK+OCt+ODn+OCuizjgqrjgrXjg6ANCivjgrfjg5/jgros44K/44Kr44K3DQor44K344Oi44Og44OpLOOCv+OCq+OCtw0KK+OCt+ODouODoOODqSzjgqLjgq3jg6kNCivjgrfjgqrjgrjjg6os44OS44Ot44K3DQor44K344Kq44K244OvLOOCouODpOOCsw0KK+OCt+ODqeOCpCzjg6bjgqbjgrMNCivjgrfjg6njgqvjg68s44OV44Of44KoDQor44K944Oe44OzLOOCuOODsw0KK+OCveOCpuODpCzjg57jgrXjg4gNCivjgr3jg47jg4As44Oe44Om44OfDQor44K544OALOODiOODouODj+ODqw0KK+OCueOCrOODjizjgrHjg7PjgqTjg4ENCivjgrnjgqzjg4zjg54s44K144OI44K3DQor44K544Ks44OvLOOCu+OCpOOCpOODgQ0KK+OCueOCruOCpuODqSzjgq3jg6fjgqbjgrnjgrENCivjgrnjgq7jg6Tjg54s44OI44Oi44OS44OtDQor44K544K644KtLOOCseODsw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Ki44OE44K3DQor44K544K644KtLOOCt+ODs+OCpOODgeODreOCpg0KK+OCt+ODp+OCpuOCuCzjg4bjg4Tjg6QNCivjgr/jgrDjg4Es44Kr44OE44OkDQor44K/44Kk44OpLOOCv+ODgOODiA0KK+OCv+OCuOODnizjg6rjgqgNCivjgr/jgqvjg4As44K/44Kr44OO44OqDQor44Kq44Kr44Ok44OeLOOCouOCteOCsw0KK+OCv+OCq+OCruOCtyzjg5/jgqvjgrMNCivjgr/jgqvjg4/jgrcs44K344Oz44Kk44OB44Ot44KmDQor44K/44Kr44OP44K3LOODpOOCueOCtw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg6jjgrcNCivjgr/jgqvjg4/jgrcs44OI44Kq44OrDQor44K/44Kr44OP44K3LOOCreODp+OCpuOCsw0KK+OCv+OCq+OCrSzjg6jjgqbjgqTjg4ENCivjgr/jgqvjgqrjgqss44K/44Kv44OkDQor44K/44Kr44Kq44KrLOODkuODreODpuOCrQ0KK+OCpOODnuOCpOOCuuODnyzjg6jjgrfjgqoNCivjgr/jgqvjgrXjg68s44K/44Kr44K3DQor44K/44Kr44K5LOODhOODqOOCtw0KK+OCv+OCseOCpCzjgrvjg4TjgrMNCivjgr/jgrHjg4rjgqss44K/44Kx44K3DQor44K/44Kx44K244KtLOODqOOCt+OCsw0KK+OCv+ODnuOCpOOCtyzjg5Ljg4fjgqLjgq0NCivjgr/jg57jgq0s44K344Ky44OrDQor44K/44OK44KrLOOCouOCreODqQ0KK+OCv+ODi+OCsOODgSzjg4rjgqrjgq0NCivjgr/jgqbjg4Es44OS44Ot44OK44KqDQor44OG44Op44Of44OELOODgOOCpOOCueOCsQ0KK+ODiOODgCzjg57jg6QNCivjg4jjg5/jg4rjgqws44K344Oz44Kk44OB44Ot44KmDQor44OI44Of44K/LOOCouOCreODqA0KK+ODiOODs+OCsOOCpizjg5Ljg4fjg4jjgrcNCivjg4Tjg43jgqvjg68s44OS44Ot44OV44OfDQor44OE44OE44KkLOOCq+ODhOODqOOCtw0KK+OCpuODgeODgCzjgr/jgrHjgrcNCivjgqbjg4Hjg4/jgrcs44K/44Kv44KqDQor44Km44Ko44OALOODnuOCteODkuOCsw0KK+OCpOODiOOCpizjg6jjgqbjgqTjg4ENCivjgqbjgqjjg4As44OS44Ot44K3DQor44Km44Ko44OP44OpLOODkuODh+OCouOCrQ0KK+ODleOCuOOCvyzjgrfjg5sNCivjgqbjg6Hjg4As44OG44OE44OkDQor44Km44Oh44OP44OpLOODpOODqOOCpA0KK+OCpuODqeODmSzjg5LjgrXjgrMNCivjg6/jgr/jg5ks44Ok44K544K3DQor44Ok44Ks44K144KtLOOCueODn+OCqw0KK+ODpOOCruODouODiCzjg5Ljg63jgrcNCivjg6Tjgrjjg54s44Kr44OE44OfDQor44Ok44Oe44OALOODn+ODgeOCsw0KK+ODpOODnuODgCzjgr/jgqvjgrcNCivjg6Tjg57jg4As44Of44Kr44KzDQor44Ok44Oe44Kw44OBLOOCteODiOOCsw0KK+ODpOODnuOCsOODgSzjg4jjg6LjgrMNCivjg6Tjg57jg6Ljg4gs44Ok44K544OS44OtDQor44Ok44Oe44Oi44OILOODpOOCueODkuODrQ0KK+ODpOODnuODouODiCzjg4rjgqrjgq0NCivjg6Tjg57jg6Ljg4gs44Kz44Km44K4DQor44Ok44Oe44ONLOOCq+OCuuODkuODrQ0KK+ODpOODnuOCteOCrSzjg4/jg6vjg47jg6oNCivjg6Tjg57jgrfjgr8s44Kr44K644KtDQor44Ok44Oe44K244KtLOODnuOCteODpuOCrQ0KK+ODpOODnuOCteOCrSzjg4jjgrfjg6QNCivjg6Tjg4rjgqzjg68s44K/44Kx44K3DQor44Ok44OK44Ku44OALOODpOOCueOCqg0KK+OCquODjizjg5Ljg4fjg47jg5YNCivjg6Tjg4rjgq7jgrXjg68s44Ok44K544K3DQor44Ok44K244KtLOODiuOCquOCrQ0KK+ODpOOCtuODryzjgrvjgqTjgrgNCivjg6jjgrPjg6Tjg54s44OS44Ot44KzDQor44Oo44Kz44Ok44OeLOOCv+OCseOCtw0KK+ODqOODoizjgq3jg6fjgqbjgrgNCivjg6jjgrfjg4As44OS44OH44KqDQor44Oo44K344OALOODpuOCpuOCuA0KK+ODqOOCt+ODgCzjg4/jg6vjg5LjgrMNCivjg6jjgrfjg4/jg6ks44Ki44Om44OfDQor44Oo44K344OP44OpLOODnuOCteODkuODhw0KK+ODqOOCt+ODouODqizjgr/jgqvjgrcNCivjgrzjg4Pjg4Qs44OS44OH44OoDQor44Ki44OZLOODqOOCt+OCv+ODgA0KK+OCouODgOODgSzjgrPjgqbjgrgNCivjgqLjgqTjgqvjg68s44OS44Ot44OV44OfDQor44Ki44Kr44KoLOODn+ODgeOCsw0KK+OCouODs+ODieOCpizjg57jgq0NCivjgqLjgrXjg58s44Of44K1DQor44Kk44Oe44OK44KrLOODj+ODq+ODqA0KK+ODmeODg+ODlyzjg6bjgqbjgrnjgrENCivjg5njg4Pjg5cs44OS44Ot44Ki44KtDQor44OB44Kr44OP44OpLOOCquOCteODoA0KK+ODleOCuOOCpCzjg5/jg4Tjg4jjgrcNCivjg5XjgrjjgrXjgq0s44K/44Kr44Om44KtDQor44OV44Kv44K344OeLOOCouOCuuOCtQ0KK+OCr+ODreODgCzjg4jjgrfjg58NCivjg6Ljg6os44Oe44K144OS44OHDQor44Ov44K/44OK44OZLOOCv+OCq+OCqA0KK+OCr+ODreODgCzjgqLjgrXjgrMNCivjg5/jg6Tjgqbjg4Es44K444Ol44Oz44KzDQor44Kk44OI44KmLOOCreOCr+OCsw0KK+OCpOOCpOODgCzjg57jg6bjg58NCivjgqvjg6/jg44s44Oe44KkDQor44Ki44Kk44Km44OpLOODiOOCt+OCqg0KK+ODjuOCtuOCrSzjg4bjg6vjgqLjgq0NCivjg5Pjgr/jg4ss44Ki44Ok44OfDQor44K/44OL44Ki44KkLOODgOOCpOOCueOCsQ0KK+OCouOCquOCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgq0s44Kt44K144KvDQor44Ki44Kq44KtLOOCq+OCuuODpuOCrQ0KK+OCouOCquODpOOCrizjgrHjg7Pjgr8NCivjgqLjgqvjg4vjgrcs44OK44Kq44OS44OtDQor44Ki44K144KqLOODnuOCteODkuOCsw0KK+OCouOCteOCr+ODqSzjgqvjgqgNCivjgqLjgrfjgrbjg68s44Kr44K644KtDQor44Ki44K/44KvLOODkuODreOCtw0KK+OCouODgOODgSzjg6bjgqbjgrMNCivjgqTjg4jjgqYs44Om44OqDQor44K344Oe44Oi44OILOOCouODiOODoA0KK+OCteOCpOODiOOCpizjg57jgrXjg6sNCivjgrfjg47jg4/jg6ks44Kr44OE44OfDQor44Kq44Kr44OOLOODkuODh+OCsw0KK+OCquOCq+ODouODiCzjg5Ljg63jgrcNCivjg5Ljg6njgqvjg68s44Oo44K044Ot44KmDQor44K544Ks44OM44OeLOODiOODouODn+ODgQ0KK+OCouODiuOCtuODryzjg5/jg47jg6sNCivjgqLjg6njgqQs44OI44K344Kr44K6DQor44Ki44Op44KkLOOCreODs+ODpA0KK+OCouODqeOCq+ODryzjg6bjg5/jgrMNCivjgqLjg6njgqvjg40s44Ki44Kt44KzDQor44Ki44Op44KtLOOCt+OCsuODjuODqg0KK+OCouODs+ODieOCpizjg5Ljg63jg5LjgrUNCivjgqTjgqbjg4Es44Oe44Kz44OIDQor44Kk44Kx44OALOODpOOCueODkuODrQ0KK+OCpOOCseODpCzjg57jgrXjgq0NCivjgqTjgrfjgqvjg68s44OS44Ot44K3DQor44Kk44K344Kr44OvLOODnuOCteODnw0KK+OCpOOCt+OCq+ODryzjg5Ljg63jgrcNCivjgqTjgrfjgqvjg68s44Kz44Km44Kk44OBDQor44Kk44K344Ks44KtLOODkuODreOCtw0KK+OCpOOCt+OCsOODrSzjgqvjgqrjg6sNCivjgqTjgrfjg4/jg6ks44Oe44K144KtDQor44Kk44K944Og44OpLOOCr+ODn+OCsw0KK+OCpOOCv+OCrOOCrSzjgq3jg6jjg58NCivjgqTjgqTjg4As44K344Ot44KmDQor44Kk44OB44Kr44OvLOOCveODqA0KK+OCpOODgeOCq+ODryzjg6jjgrfjg4jjgrcNCivjgqTjg4cs44Kk44K/44OrDQor44Kk44OI44KmLOODkuODreODleODnw0KK+OCpOODjOOCpCzjg57jgq3jg4gNCivjgqTjg47jgqbjgqgs44OO44OW44OS44OtDQor44Kk44Oe44OL44K3LOODoOODjeOCv+OCqw0KK+OCpOODnuODj+ODpOOCtyzjgrfjg7PjgqTjg4ENCivjgqTjg6/jgrXjgq0s44Oe44K144OE44KwDQor44Kk44Ov44K144KtLOODnuODpuODnw0KK+OCpOODr+ODouODiCzjgrHjgqTjgqTjg4ENCivjgqbjgqjjg44s44Ko44Kk44K4DQor44Km44Ko44OOLOOCq+OCuuODjuODqg0KK+OCpuODgeOCpOOCsSzjg6jjgrfjgqLjgq0NCivjgqbjg4Hjg6Tjg54s44Oo44K344K/44KrDQor44Km44Oh44OALOOCt+ODpeOCpuOCuA0KK+OCpuODoeODoOODqSzjgrXjg6gNCivjgqbjg6Hjg6Ljg4gs44OB44Ob44KzDQor44Km44Or44K344OQ44OpLOODqOOCt+ODkuOCsw0KK+OCqOOCsOODnizjgqjjg6oNCivjgqjjg6ks44OK44Kq44OkDQor44Kq44Km44K144KrLOODnuOCteOCv+OCqw0KK+OCquOCquOCq+ODryzjg57jgrXjg5/jg4QNCivjgqrjgqrjgrXjg68s44Oe44K144OS44KzDQor44Kq44K344OeLOODqOOCt+OCv+OCqw0KK+OCquOCt+ODnizjg57jg4rjg5YNCivjgqrjgqrjgrnjgqws44K/44OE44OS44KzDQor44Kq44Kq44K/44OLLOODkuODh+OCrQ0KK+OCquOCquODhCzjg57jgrXjg5Xjg58NCivjgqrjgqrjg4Tjgqss44K/44OA44OS44K1DQor44Kq44ONLOODnuOCteODpuOCrQ0KK+OCquOCquODjizjgqLjgq3jg6kNCivjgqrjgqrjg4/jgrcs44Kx44Oz44Kk44OBDQor44Kq44Kq44OP44K3LOOCseODs+OCtA0KK+OCquOCquODkOODpOOCtyzjgrfjg7PjgrgNCivjgqrjgqrjg6jjgrcs44K/44Kr44Om44KtDQor44Kq44Kr44Oi44OILOOCv+ODgOODpuOCrQ0KK+OCquOCrOOCteODr+ODqSzjg6jjgrfjgrMNCivjgqrjgqzjg68s44OS44OH44OO44OqDQor44Kq44Kv44K/44OLLOOCtOOCpg0KK+OCquOCr+ODoOODqSzjg6bjgqbjgrMNCivjgqrjgrDjg6ks44OS44Ot44KzDQor44Kk44Kk44Kr44OvLOOCseODs+OCpOODgeODrQ0KK+OCquOCsOODqSzjgrXjg4jjgrcNCivjgqrjgrbjg68s44K/44Kr44OO44OqDQor44Kq44K244OvLOODkuODh+ODkuOCsw0KK+OCquOCquODjizjg6Tjgrnjg47jg6oNCivjgqvjgq3jg6Ljg4gs44Os44Kk44KzDQor44Kr44Kt44Oi44OILOODkuODreOCtw0KK+OCq+OCsuODpOODnizjg4jjg6Ljg58NCivjgqTjgrfjgqvjg68s44OS44Ot44K3DQor44Kr44K944OqLOODpOOCueODkuODiA0KK+OCq+ODhOODnyzjg4rjgqrjgq0NCivjgqvjg4jjgqYs44OK44Kq44KzDQor44Kr44OI44KmLOODjuODquOCsw0KK+OCq+ODiOOCpizjgrfjgrLjg47jg6oNCivjgqvjg4jjgqYs44OA44Kk44K544KxDQor44Kr44OI44KmLOOCseOCpOOCuA0KK+OCseOCuuOCqyzjgqLjgq3jg6kNCivjgqvjg4njg6/jgq0s44Of44OE44K344Ot44KmDQor44Kr44ON44KzLOOCouOCreODkuODrQ0KK+OCq+ODjuOCpizjg47jg6rjgrMNCivjgqvjg5/jg6Tjg54s44OS44Ot44Kr44K6DQor44Kr44Ov44K344OeLOODkuODreODpuOCrQ0KK+OCq+ODr+OCuyzjgrXjg4jjg6sNCivjgqvjg6/jg44s44Kr44K644KtDQor44Kr44Ov44Oi44OILOODnuOCteOCv+OCqw0KK+OCq+ODr+ODouODiCzjgrfjg7MNCivjgqvjg6/jgrss44OK44Kq44KtDQor44Kr44Oz44OALOODkuODh+ODiOOCtw0KK+OCreOCr+ODgSzjg5LjgrXjg6bjgq0NCivjgq3jgq/jg4Es44Ki44Kt44KzDQor44Kt44Kv44OBLOODjuODluOCqg0KK+OCreOCv+OCouODqeOCtyzjg57jgqTjgrMNCivjgq3jgr/jgqrjgqss44Of44Om44KtDQor44Kt44K/44K444OeLOOCouOCreODkuODrQ0KK+OCreOCv+ODoOODqSzjgr/jgrHjg58NCivjgq3jgr/jg6Djg6ks44Ki44OE44K3DQor44Kt44OG44OpLOOCteODiOOCtw0KK+OCreODjuOCt+OCvyzjgrjjg6Xjg7PjgrMNCivjgq3jg6Djg6ks44K/44Kr44OS44OtDQor44Kt44Oq44KmLOOCv+OCseOCtw0KK+OCr+OCteOCq+ODmSzjg57jgqjjgrMNCivjgq/jg5zjgr8s44Kz44K544KxDQor44Kv44Oe44Ks44KkLOOCseODs+OCuOODreOCpg0KK+OCr+ODnuODjizjgrXjg6oNCivjgq/jg6rjg4/jg6ks44Oe44K144OIDQor44Kv44Or44K344OeLOOCouOCreODqOOCtw0KK+ODiuOCq+OCrOODryzjg4HjgqsNCivjgrPjgqTjg4cs44OS44OH44KtDQor44Kz44Oz44OOLOODnuOCteOCtw0KK+OCs+ODouODiCzjg6bjgqbjgrMNCivjgrPjgqws44Kv44OL44OP44OrDQor44Kz44K444OeLOOCv+OCpOOCuA0KK+OCs+ODi+OCtyzjgqvjg6jjgrMNCivjgrPjg5Djg6Tjgrcs44K744Kk44KmDQor44Kz44Oe44OELOOCseOCpOOCpOODgQ0KK+OCs+ODn+ODpCzjgrfjg7Pjg6QNCivjgrPjg7Pjg4ks44K144OI44K3DQor44Kz44Oz44OJLOODhOODiOODoA0KK+OCtOODiOOCpizjg4DjgqTjgrnjgrENCivjgrXjgqTjg4jjgqYs44K/44OE44OkDQor44K144Kk44OI44KmLOOCs+OCpuOCuA0KK+OCteOCpOODiOOCpizjg5Ljg4fjgq0NCivjgrXjgqvjg6Ljg4gs44K/44Kx44KqDQor44K144Kv44OeLOODiOOCt+OCq+OCug0KK+OCt+ODn+OCuizjg4rjgqrjgq0NCivjgrXjg4Djg4Hjgqss44Kx44Kk44K444OlDQor44K144OILOOCteODqOOCsw0KK+OCteODiOOCpizjgrjjg6Xjg7MNCivjgrXjg4jjgqYs44OS44OI44OfDQor44K144OI44KmLOODn+OCqw0KK+OCteODiOOCpizjgqvjg4Tjg6bjgq0NCivjgrXjg6/jg4As44K444Ol44Oz44K4DQor44Kk44K944OvLOODnuOCteODkuOCsw0KK+OCt+ODoizjgr/jgqvjgqLjgq0NCivjgrfjg6XjgqYs44Oe44K144OkDQor44K344Kq44Kr44OvLOOCouODpOODjg0KK+OCt+OCquOCtuODryzjg57jgrXjg5LjgrMNCivjgrfjgqvjgqbjg4Es44Of44OE44OrDQor44K344K644OqLOOCv+OCseOCtw0KK+OCt+ODjizjg4bjg4TjgrgNCivjgrfjg47jgrbjgq0s44K444Ol44Oz44K444Ot44KmDQor44K344OO44OALOODnuOCueODnw0KK+OCt+ODjuODgCzjg6bjgq3jgrMNCivjgrfjg5Djgrbjgq0s44Ki44Kt44OS44OIDQor44K344OQ44K/LOOCteOCquODqg0KK+OCt+ODnuODoOODqSzjg47jg5zjg6sNCivjgrfjg5/jgros44Of44Oe44KzDQor44K344Of44K6LOODpuOCpuOCuA0KK+OCt+ODn+OCuizjgrXjg4jjgrcNCivjgrfjg5/jgros44K344Oz44Kk44OB44Ot44KmDQor44K/44Kt44K/44OLLOODpuOCpuOCpOODgQ0KK+OCt+ODqeODjizjgr/jgqvjg6bjgq0NCivjgrnjgqjjg5Ljg60s44Kx44OzDQor44K544Ks44KkLOODn+OCreOCqg0KK+OCueOCrOODqOOCtyzjgrHjg7PjgrgNCivjgrnjgqzjg6/jg6ks44K344Ky44OV44OfDQor44K544Ku44Km44OpLOODjuODquOCouOCrQ0KK+OCueOCruOCt+ODnizjgrfjg6Xjg7PjgrnjgrENCivjgrnjgq7jg6Ljg4gs44OS44K144K3DQor44K544K644Kr44OvLOODqOOCt+OCqA0KK+OCueODgCzjgqLjgq3jg6jjgrcNCivjgrnjg5/jgqvjg68s44Kr44OE44Ki44KtDQor44K544Of44OOLOOCs+OCpuOCuA0KK+OCu+OCreOCsOODgSzjgrfjgrLjg58NCivjgr3jgqjjgrjjg54s44Ok44K544OK44OqDQor44K/44Kq44KrLOOCv+ODgOOCtw0KK+OCv+OCq+OCrSzjgq3jg6fjgqbjgrMNCivjgr/jgqvjgrfjg54s44K344Oz44Kk44OBDQor44K/44Kr44K7LOOCreODqOOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg6QNCivjgr/jgqvjg4/jgrcs44K/44OE44OkDQor44K/44Kr44OP44K3LOOCqOOCpOOCpOODgQ0KK+OCv+OCreOCv+ODiyzjg4rjg4oNCivjgr/jgrHjgqbjg4Es44OS44Ot44OW44OfDQor44K/44Kx44OALOOCv+ODgOODpuOCrQ0KK+OCv+OCseODgCzjgrHjgqTjgqTjg4ENCivjgr/jgrHjg4As44Kk44Kv44OS44KzDQor44K/44Kx44Og44OpLOODiuOCquODkuOCtQ0KK+OCv+OCtCzjg57jgrXjgrMNCivjgr/jgq3jgrbjg68s44OB44Kr44KzDQor44K/44OK44KrLOODqOOCpuOCsw0KK+OCv+ODiuOCqyzjg6rjg6fjgqbjgrnjgrENCivjgr/jg4rjgqss44Kx44Oz44K4DQor44Kk44Ov44OOLOOCq+OCuuOCt+OCsg0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjgr/jg4vjgqgs44K144OA44Oo44K3DQor44K/44OL44Kw44OBLOOCq+OCuuOCqA0KK+OCv+ODi+OCsOODgSzjgrgNCivjgr/jg4vjg57jg4Qs44OS44Ot44K3DQor44K/44OQ44K/LOODn+ODr+OCsw0KK+OCv+ODnuOCrSzjgr/jg4Tjg6QNCivjgqTjgrvjg6Ljg4gsDQor44K/44Of44OkLOOCouOCrQ0KK+ODgeODo+ODouODiCzjg5XjgrXjgrcNCivjg4Hjg44s44Oo44Km44Kk44OB44Ot44KmDQor44OE44Kr44Oi44OILOODqOOCpuOCsw0KK+ODhOODgeODj+OCtyzjg6Djg43jg5Ljg60NCivjg4bjg6njgrXjg68s44K/44OE44OkDQor44OILOODn+ODgeOCsw0KK+ODleOCr+OCt+ODnizjg4rjgqrjgrcNCivjg4jjg5As44Kt44On44Km44KzDQor44OI44Of44Oo44K3LOODkuODiOOCrQ0KK+ODiOODoOODrSzjg4rjg4Tjg5LjgrMNCivjg4jjg6jjgrfjg54s44K444Ol44Oz44Kk44OBDQor44OI44Oq44Ok44OeLOODiuOCquODpuOCrQ0KK+ODiuOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgqTjg4cs44Of44OB44Kr44K6DQor44OP44K/LOODleOCteOCqg0KK+ODiuOCq+OCrOOCrSzjg5/jgq0NCivjg4rjgqvjgqzjg68s44K/44Kr44KzDQor44OK44Kr44K244OvLOODqOOCt+OCsw0KK+ODiuOCq+ODhyzjgrfjg6fjgqbjgrMNCivjg4rjgqvjg4/jg6ks44Ki44OE44K3DQor44K/44Kx44Km44OBLOOCq+ODhOODkuOCtQ0KK+ODiuOCq+ODoOODqSzjgrXjg4jjgrcNCivjg4rjgqvjg6Djg6ks44K/44Kx44K3DQor44OK44K5LOODkuODreOCtw0KK+ODi+OCpOODoOODqSzjg4jjgrfjg5Ljg60NCivjg4vjgrfjgqrjgqss44OS44OH44Ki44KtDQor44OL44K344Kr44OvLOOCouOCreODqQ0KK+ODi+OCt+OCtuODryzjgrfjgrLjg6sNCivjg4vjgrfjg4gs44Ok44K544KzDQor44OL44K344OOLOOCs+OCpuOCuA0KK+ODi+OCt+ODj+ODqSzjg4rjgqrjgq0NCivjg4vjgrfjg6Djg6ks44Kv44OL44Oi44OqDQor44ON44Oi44OILOOCteODgeODqA0KK+ODjuOCsOODgSzjgqjjg58NCivjg47jgrDjg4Es44Oe44K144OkDQor44OO44K444OqLOODqOOCt+ODiuOCqg0KK+ODjuOCuOODqizjgr/jgqvjg5Ljg60NCivjg47jg6Djg6ks44Kr44K644OS44KzDQor44OP44OD44K/LOOCouOCreOCsw0KK+ODj+OCt+ODkCzjg4HjgqvjgrMNCivjg4/jgrfjg6Ljg4gs44Om44KrDQor44OP44K344Oi44OILOOCpOODgeODreOCpg0KK+OCpOODjuOCpuOCqCzjgq3jg6jjgrcNCivjg4/jgrfjg6Ljg4gs44K/44Kr44KzDQor44OP44K744Ks44OvLOOCseODs+OCpOODgQ0KK+ODj+OCvyzjgqvjgrrjgq0NCivjg4/jgr8s44Oo44K344Kr44OEDQor44OP44K/44OOLOODnuOCpOOCsw0KK+ODj+ODpOOCtyzjg5Ljg63jg6bjgq0NCivjg4/jg6Tjgrcs44Kv44Of44KzDQor44OP44Op44OALOODiOODouOCsw0KK+ODj+ODqeODgCzjgrHjg7PjgqTjg4ENCivjg5Djg5As44OS44Ot44OV44OfDQor44OQ44OQLOOCouOCueOCqw0KK+ODkuOCsOODgSzjg47jg5bjg5LjgrMNCivjg5LjgrDjg4Es44Kt44On44Km44KzDQor44OS44K144KtLOOCtOOCpuOCuA0KK+ODkuOCuOODqizjgqjjg6oNCivjg5Ljg6njg6Tjg54s44K/44Kr44Om44KtDQor44OV44Kv44OALOODnuODpuODnw0KK+ODleOCuOOCpCzjg5Ljg63jg5Xjg58NCivjgrnjgqzjgqQs44K144OI44OfDQor44OV44K444K/LOOCq+OCuuODpA0KK+ODleOCuOOCvyzjg6bjgq3jgrMNCivjg5Xjgrjjgr8s44OO44OW44KzDQor44OV44K444K/44OLLOOCteODiOOCtw0KK+ODleOCuOODiuODnyzjgrfjgrLjg6bjgq0NCivjg5Xjgrjjg44s44K/44OE44Om44KtDQor44OO44OO44Og44OpLOOCq+ODhOOCuA0KK+ODleOCuyzjgr/jg4bjg6sNCivjgrnjgq7jg6Ljg4gs44Oo44Km44Kk44OB44Ot44KmDQor44Ob44K944Kr44OvLOOCv+ODhOOCqg0KK+ODm+ODquOCpuODgSzjg4rjgqrjg58NCivjg5vjg6rjgqvjg68s44OS44Ot44Ki44KtDQor44Oe44Kt44OOLOOCpOOCr+OCsw0KK+ODnuOCreODjizjg47jg6rjg5LjgrMNCivjg57jgrfjgrMs44OI44K344OS44KzDQor44Oe44K544OALOOCq+OCuuODpA0KK+ODnuOCueODluODgSzjgr/jgqvjgrcNCivjg57jgrnjg5bjg4Es44Ki44Kt44OS44OtDQor44Oe44OE44KkLOODnuOCreOCsw0KK+ODnuODhOOCtuODryzjg57jgrXjg4gNCivjg4jjg5/jg4rjgqws44K/44Kr44K3DQor44Oe44OE44OK44KsLOODqOOCt+OCsw0KK+ODnuODhOODiuOCrCzjg6bjgq0NCivjgrnjgrrjgq0s44Ok44K544K4DQor44Oe44OE44Og44OpLOOCseOCpOOCpOODgQ0KK+ODnuODhOODouODiCzjg5Ljg4fjg5Xjg58NCivjg57jg4Tjg6Ljg4gs44OI44Oi44OS44K1DQor44Oe44OE44Ok44OeLOODjuODquOCsw0KK+ODnuODhOODpOODnizjgrPjgqbjgrgNCivjg57jg4Tjg6Tjg54s44OG44OE44OkDQor44Oe44OE44Oo44K3LOOCouOCreOCsw0KK+ODnuODjizjgrvjgqTjgrgNCivjg57jg6vjgqrjgqss44OI44K344Ok44K5DQor44Of44Kr44OfLOODqOOCpuOCsw0KK+ODn+OCrSzjg5Ljg63jgq0NCivjg5/jgr7jgrDjg4Es44Oe44K144OfDQor44Of44K/LOODn+ODjuODqw0KK+ODn+ODjSzjg4HjgqLjgq0NCivjg5/jg43jgqos44K144OI44OrDQor44K144OI44KmLOOCq+ODhOODjuODqg0KK+OCpOOCr+OCvyzjgqLjg6QNCivjg5/jg6Tjgrbjgq0s44OS44OH44KtDQor44K/44Kr44Ku44OvLOOCt+OCsuODqw0KK+ODn+ODqOOCtyzjg6jjgqbjgrMNCivjg6DjgqvjgqQs44Of44OE44K/44KrDQor44Og44Op44Kr44OfLOODnuOCteOCouOCrQ0KK+OCpOOCt+ODgCzjg4TjgqvjgrUNCivjg6Djg6njgqvjg58s44K144OI44K3DQor44Og44Op44Kr44OfLOOCq+OCuuOCv+OCqw0KK+ODoOODqeODpOODnizjgrPjgqbjgrgNCivjg6Djg6njg6Tjg54s44Oe44Kz44OIDQor44Og44Ot44KkLOODnuOCteOCv+OCqw0KK+ODouOCv+OCpCzjgqvjgrrjg57jgrUNCivjg6Ljg4jjgq0s44Kr44K644OkDQor44Oi44OI44Og44OpLOOCs+OCpuOCuA0KK+ODouODqizjgqvjg4Tjg5Ljg60NCivjgqvjgrss44Ki44Kt44Oo44K3DQor44Oi44Oq44K344K/LOOCq+OCuuODkuODrQ0KK+ODouODquOCvyzjg4rjgqrjgq0NCivjg6Ljg63jg4jjg58s44OS44OH44OO44OWDQor44Oi44Ot44OP44K3LOODpuOCreOCsw0KK+OCq+ODr+ODouODiCzjg5Ljg63jg47jg6oNCivjg6TjgrDjg4Es44OG44Or44OS44KzDQor44Ok44K444OeLOODiuOCquOCsw0KK+ODpOOCueOCq+ODryzjg5Ljg63jgrcNCivjg6Tjgrnjg4As44Oe44K144OS44OIDQor44Ok44OE44K644KrLOODnuODquOCsw0KK+ODpOODiuOCruOCteODryzjg6bjgq0NCivjg6Tjg57jgrDjg4Es44Kt44Oz44OkDQor44Ok44Oe44K144KtLOOCv+OCq+ODpA0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrbjgq0s44Oo44K344KzDQor44Ok44Oe44K244KtLOOCu+OCpOOCuOODreOCpg0KK+ODpOODnuODgCzjgrHjg7Pjgr/jg63jgqYNCivjg6Tjg57jg4As44OK44Kq44KtDQor44Ok44Oe44OALOOCv+OCq+ODjuODqg0KK+ODpOODnuODiuOCqyzjgrfjg6XjgqbjgqTjg4ENCivjgq/jg6rjg4/jg6ks44Oe44K144KtDQor44Ok44Oe44Oi44OILOODnuOCteOCsw0KK+ODpOODnuODouODiCzjgrfjg7Pjgr/jg63jgqYNCivjg6Tjg57jg6Ljg4gs44Ok44K544K3DQor44Oe44OE44KqLOODnuOCueODnw0KK+ODqOOCrizjg4Hjg4jjgrsNCivjg6jjgrPjg6Tjg54s44OS44OH44KtDQor44Oo44Kz44Ok44OeLOODqOOCpuOCsw0KK+ODqOOCt+OCq+ODryzjg4rjgqrjg5Ljg4cNCivjg6jjgrfjgqvjg68s44Oo44K344KzDQor44Oo44K344OALOOCs+OCpuOCuA0KK+ODr+OCr+OCpCzjg4bjg4Tjg6QNCivjg6/jgr/jg4rjg5ks44Kx44Oz44K/44Ot44KmDQor44Ov44K/44OK44OZLOOCt+ODmw0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg5Ljg4gNCivjg6/jgr/jg4rjg5ks44Oe44OK44OWDQor44OP44Ok44K3LOOCv+OCq+OCtw0KK+ODpOODnuODgCzjg47jg5bjg6QNCivjg6/jgqvjg5Djg6Tjgrcs44K144OI44K3DQor44Kk44Ov44Og44OpLOODjuODquODnuOCtQ0KK+ODr+OCv+ODiuODmSzjg47jg5zjg6sNCivjgq/jg6/jgrfjg54s44K544Kw44OrDQor44Kq44OQ44K/LOOCteODiOODnw0KK+OCouODiuOCtuODryzjg5Ljgqvjg6sNCivjg6Tjgq4s44Kz44K544KxDQor44Ki44Kr44KqLOODiOODouOCq+OCug0KK+OCt+ODn+OCuizjg4rjg4TjgrMNCivjgrXjgqvjg6Ljg4gs44OS44OH44OO44OWDQor44Ki44Kq44KtLOOCt+OCsuOCouOCrQ0KK+OCouOCuuODnizjgrPjgqbjgqTjg4ENCivjgqTjgqTjg4As44Ko44OKDQor44Kk44Kx44Km44OBLOODoeODkOOCqA0KK+OCpOOCt+OCq+ODryzjg4bjg4TjgqoNCivjgqTjgr3jgqzjgqQs44Oe44Kz44OIDQor44Kk44OI44KmLOOCv+ODgOODkuODrQ0KK+OCpOODkCzjgqLjgrrjgrUNCivjgqTjg6/jg6Ljg4gs44K344Oz44K4DQor44Km44Ko44K144KrLOOCv+OCseODkuODrQ0KK+OCpuOCqOODjizjg57jg6Ljg6sNCivjgqbjgqjjg5Ljg6ks44Kx44Oz44K0DQor44Km44OB44Ok44OeLOOCseODs+OCuA0KK+OCpuODoeODiuOCpCzjgrnjgrnjg6ANCivjgqjjg6Djg6ks44K/44Kr44OS44OtDQor44Kq44Kt44K/LOOCuOODpeODs+OCpOODgQ0KK+OCquOCquOCr+ODnCzjg5Ljg63jgrcNCivjgqrjgqrjgr/jg4ss44Ki44OkDQor44Kq44Kq44OELOODkuODreOCsw0KK+OCquOCquODhOOCqyzjg6jjgrfjg58NCivjgqrjgqvjgrfjg60s44K344Ot44KmDQor44Kq44OALOOCouODhOOCtw0KK+OCquODjizjg5Ljg63jg58NCivjgqvjg4jjgqYs44Oo44K344Om44KtDQor44Kr44ON44OS44K1LOODiuOCquOCsw0KK+OCq+ODn+ODpCzjgqrjgrXjg6ANCivjgqvjg6/jgqQs44K/44Kv44Oo44K3DQor44Kr44Ov44Kq44KrLOODkuODh+OCrQ0KK+OCreOCv+ODjizjgrjjg6Xjg7PjgqTjg4ENCivjgq3jg5bjgrcs44OE44OYDQor44Kt44Og44OpLOODnuOCteOCv+OCqw0KK+OCreODoOODqSzjg57jgrXjgrMNCivjgq/jgrXjgqss44K144OI44OfDQor44Kv44OQLOOCv+OCq+OCtw0KK+OCr+ODnOOCvyzjgrfjg63jgqYNCivjgq/jg63jgqTjg68s44K344Oz44K4DQor44Kv44Ov44OQ44OpLOOCqOOCpOOCuA0KK+OCs+OCpOOCsSzjgrnjg5/jgqoNCivjgrPjgqTjgr/jg5Djgrcs44OE44Kr44K1DQor44Kz44Km44OALOODkuODh+OCqg0KK+OCs+OCpuODgCzjg57jgrXjgr/jgrENCivjgrPjgrfjg6Djg6ks44Ki44OE44K3DQor44Kz44Ok44OK44KuLOODkuOCteOCsw0KK+ODj+ODiOODqizjg6bjgqbjgrMNCivjgrXjgqvjgqbjgqgs44K144OvDQor44Ki44OZLOOCs+OCpuOCpOODgQ0KK+OCteODiOOCpizjg6Tjgrnjg5/jg4QNCivjgrXjg4jjgqYs44Oe44Om44OfDQor44K144OI44KmLOODqOOCt+OCqg0KK+OCt+ODnuODgCzjg6rjgqgNCivjgqTjg57jgqQs44Kr44OE44Ki44KtDQor44K544Ks44OM44OeLOODgeODqA0KK+OCu+OCrSzjgqLjgq3jg5Ljg60NCivjgrvjg44s44K/44Kr44Ok44K5DQor44Ki44OZLOODnuOCteODj+ODqw0KK+OCv+OCq+OCueOCrCzjg57jg6bjg58NCivjgr/jgqvjgrnjgq4s44OO44OW44KzDQor44K/44Kr44OP44K3LOODiOODouODnw0KK+OCv+OCq+ODj+OCtyzjgrHjg7Pjgr/jg63jgqYNCivjgr/jgqvjg4/jgrcs44Ki44Kt44OS44OIDQor44K/44Kr44OP44K3LOOCs+OCpuOCuA0KK+OCv+OCq+ODj+OCtyzjg5LjgrXjg58NCivjgr/jgq3jg6Ljg4gs44Om44Km44K/DQor44K/44Kv44OcLOODqOOCt+ODpuOCrQ0KK+OCv+OCseOCpuODgSzjg4jjg6LjgrMNCivjgr/jgrHjg4rjgqss44Om44Kt44OS44KzDQor44K/44OK44KrLOODouODiOOCpOODgQ0KK+OCv+ODiuOCqyzjg4Hjgrrjg6sNCivjgr/jg5Djgr8s44Kr44OE44Om44KtDQor44K/44Of44OkLOOCv+OCseOCtw0KK+OCv+ODoOODqSzjg6zjgqTjgrMNCivjg4Hjg6Xjgqbjg54s44OS44Ot44K/44KrDQor44Ob44Oz44K044KmLOODpuOCpuOCsw0KK+ODiuOCq+OCqizjg47jg5bjgqLjgq0NCivjg4rjgqvjgqzjg68s44Kz44Km44Kk44OBDQor44OK44Kr44K+44OOLOODkuODh+ODjuODqg0KK+ODiuOCq+ODjizjg5/jg4Tjg5Ljg60NCivjg4vjg4Pjgr8s44OP44OKDQor44OL44OvLOODquODp+OCpuOCpOODgQ0KK+ODjuOCuCzjg5Ljg63jgqLjgq0NCivjg4/jgrbjg44s44K/44Kr44K3DQor44OP44K344Oi44OILOODiOOCquODqw0KK+ODj+OCt+ODouODiCzjg6bjgqbjgrMNCivjg4/jg6Tjgrcs44OB44Kq44OqDQor44OP44Ok44K3LOODiOOCpuOCsw0KK+ODj+ODqeOCsOODgSzjgr/jgqvjgrcNCivjg4/jg6vjgrDjg4Es44OI44K344KqDQor44OS44Op44OHLOOCpOOCteODoA0KK+ODkuODqeODjizjg57jgrXjgr/jgqsNCivjg5Ljg6njg6Tjg54s44Om44KtDQor44OV44Kr44K244OvLOODkuODreODnw0KK+ODleOCr+ODnuOCuSzjgqvjg6gNCivjg5Xjgq/jg6Ljg6os44Oe44K144OrDQor44OV44K444Kr44OvLOOCt+OCsuODqw0KK+ODm+OCt+ODjizjg47jg6rjgrMNCivjg5vjgr3jg44s44Ki44Kt44OS44OIDQor44Oe44OE44Kq44KrLOODqOOCt+ODiuODqg0KK+ODnuODhOODoOODqSzjg4rjg5/jgrMNCivjg5/jgrrjgqvjg58s44OG44OE44Ot44KmDQor44Of44OE44KkLOOCv+OCpOOCueOCsQ0KK+ODn+ODjuOCq+ODnyzjg4jjgrfjg6bjgq0NCivjg5/jg6Tjg6Ljg4gs44K/44OE44K3DQor44Og44Op44Kr44OfLOOCseOCpOOCsw0KK+ODpOOCvyzjg4rjgqrjgrMNCivjg6Tjg4rjgq7jgr8s44Of44OO44OrDQor44Ok44Oe44Kw44OBLOOCs+OCpuOCuA0KK+ODpOODnuOCt+OCvyzjg5/jg4HjgqoNCivjg6Tjg57jg6Ljg4gs44Om44Km44Kk44OB44OtDQor44Oo44K344K/44KxLOODkuODh+ODjuODqg0KK+ODqOOCt+ODoOODqSzjgqjjg6oNCivjg5LjgrDjg4Es44K/44Kx44K3DQor44OP44K344Oi44OILOOCouODhOOCtw0KK+ODr+OCv+ODiuODmSzjg6bjgq0NCivjgqLjgq3jg5As44K/44Kx44OS44KzDQor44Ki44Kt44Oi44OILOODn+ODhOODqA0KK+OCouODnuODpCzjg57jgrXjg6sNCivjgqLjg7Pjg4njgqYs44OG44OE44Ot44KmDQor44Ki44Oz44K244OvLOODjuODluODkuODrQ0KK+OCouOCteODj+OCvyzjgqvjgrrjg5Ljg4gNCivjg5Djg5As44Of44OB44OS44OIDQor44OZ44OD44K344OnLOODhuODq+ODkuODiA0KK+ODgeOCq+ODouODiCzjgrXjgqrjg6oNCivjg4Hjg6fjgqYs44OA44Kk44K544KxDQor44OV44K444OS44OpLOODn+ODr+OCsw0KK+ODleOCuOOCpCzjgrHjgqTjgrMNCivjg5Xjgrjjgr/jg4ss44Oo44K344Kr44OEDQor44OV44Kr44OALOODnuOCteOCouOCrQ0KK+ODleODq+ODgOODhizjg4rjgqrjgq0NCivjg5Xjg6vjg6Tjg54s44OS44Ot44Om44KtDQor44K044Km44OALOOCreODqOODjuODlg0KK+OCs+OCpOOCsSzjg6jjgrfjg6bjgq0NCivjg4/jgqvjg57jg4As44Kz44Km44K+44KmDQor44OP44K744Ks44OvLOOCv+OCq+OCqg0KK+ODj+OCt+ODouODiCzjgrPjgqbjgqTjg4ENCivjg4/jg4Pjgr8s44Kx44Oz44Kk44OBDQor44OP44OD44OI44OqLOOCv+OCq+ODkuODrQ0KK+ODj+ODpOOCq+ODryzjg5Ljg63jgq0NCivjg4/jg6Tjgqvjg68s44OK44Or44OE44KwDQor44OS44OM44OeLOOCv+OCr+ODpA0KK+ODkuODreOCrSzjg4jjg6Ljg5Ljg4cNCivjg5vjg6rjg47jgqbjg4Es44Om44Km44K4DQor44Ob44K944OOLOOCouODhOOCsw0KK+ODleOCuOOCquOCqyzjg5Ljg4fjgq0NCivjg5Xjg6vjgr8s44OK44Or44KtDQor44OV44K144OOLOOCseODsw0KK+ODleOCt+ODnyzjgqrjgrXjg6ANCivjgqTjgr/jg4ks44OS44OI44K3DQor44Kk44OALOODnuOCteODkuODrQ0KK+OCpOODj+ODqSzjgrHjgqQNCivjgqTjgqTjg4As44K/44Kr44OS44OtDQor44Kk44OK44Ok44OeLOODkuODreOCq+OCug0KK+OCpOODjizjgrjjg6Xjg7PjgqTjg4ENCivjgqTjg47jgqbjgqgs44Oh44Kw44OfDQor44Kk44K344OALOODqOOCt+ODhOOCsA0KK+OCpOOCt+ODouODiCzjg6Tjgrnjg6jjgrcNCivjgqTjgrfjg68s44Of44OE44OrDQor44Kk44K344Ov44K/44OqLOODkuODreOCq+ODhA0KK+OCpOOCv+OCr+ODqSzjg4rjg5vjgrMNCivjgqTjg4jjgqYs44K/44Kr44OS44OtDQor44Kk44OI44KmLOOCt+ODpeOCpuOCpOODgQ0KK+OCpOODr+OCpCzjg4rjg4rjgrMNCivjgqTjgrbjg68sDQor44K444OWLOOCueOCsOODqw0KK+OCq+ODkOODpOODnizjg57jgrXjgq0NCivjgqvjgqQs44Om44Km44KzDQor44Kr44Kt44OM44OeLOOCuOODpeODsw0KK+OCq+OCreOCtuOCrSzjg57jgrXjgq0NCivjgqvjgq/jg4As44K344Ol44Km44K544KxDQor44Kr44OK44Ks44OvLOOCt+ODsw0KK+OCq+ODs+ODmSzjgr/jgrHjgqoNCivjgqvjg7Pjg4As44Ok44K544OS44OIDQor44Kr44K144OALOODn+ODgeOCv+OCqw0KK+OCq+ODr+OCpCzjg4jjg6LjgrMNCivjgrXjgrXjgq0s44Kk44Kv44KoDQor44Kr44Ov44K7LOOCteODmw0KK+OCreODouODiCzjg5/jgq3jg40NCivjgq3jgr/jg4/jg6ks44OO44OW44KqDQor44Kt44K/44Og44OpLOODqOOCt+OCqg0KK+OCs+ODkOODpOOCtyzjg5Ljg63jgqgNCivjgrPjg5bjgrEs44Om44Km44KzDQor44Kz44Kk44K644OfLOOCq+ODiuOCsw0KK+OCs+ODn+ODpOODnizjg57jg6rjgrMNCivjgrPjg7Pjg47jgqvjgrrjg5Ljg60s44Ok44K544OS44OIDQor44Kz44K344Kr44OvLOOCv+OCq+ODpuOCrQ0KK+OCs+ODs+ODjizjgrPjgqbjgqTjg4ENCivjgq/jg5ws44Oe44K144OO44OWDQor44Kv44Oc44Kr44OvLOODiuODhOOCrQ0KK+OCr+ODieOCpizjg4jjg6LjgqsNCivjgq/jg6rjg4/jg6ks44Kr44OE44Kk44OBDQor44Kv44Ot44KuLOOCteOCqOOCsw0KK+ODnuODgeODgCzjg4/jg6vjg58NCivjg57jgrjjg54s44Ok44K544KzDQor44Kk44K344K6LOODjuODquODpuOCrQ0KK+ODnuOCq+ODmSzjg5Ljg63jg6gNCivjg57jg6vjg6Tjg54s44OS44OH44Ki44KtDQor44Oe44K544OALOOCq+ODqA0KK+ODnuODhOOCrOOCteOCrSzjgqLjgq3jg6kNCivjg57jg4TjgqQs44K/44Kx44K3DQor44Oe44OE44KkLOOCteOCquODqg0KK+ODnuODhOODouODiCzjgrHjg7PjgrgNCivjg57jg6/jgr/jg6os44Kr44Oz44K4DQor44Of44OB44Oi44OILOODiOOCt+ODkuODrQ0KK+ODn+OCrSzjgrnjg5/jgrMNCivjg5/jg4Tjg54s44K/44Kr44OO44OqDQor44Of44Km44OpLOOCseOCpOOCtA0KK+ODn+ODryzjg57jgrPjg4gNCivjg5/jg6Tjg6Ljg4gs44Kr44OE44OS44K1DQor44Of44Ok44Oi44OILOODpOOCueODjuODlg0KK+ODn+ODpOODouODiCzjgr/jgrHjg47jg5YNCivjg5/jg6Tjgr8s44Oe44K144K3DQor44Og44Op44Kr44OfLOODiOOCquODqw0KK+OCv+ODj+ODqSzjg47jg6rjgrMNCivjg5/jgrrjgr/jg4ss44OI44Oi44KrDQor44Oi44OqLOODpuOCrQ0KK+ODouODquOCsOODgSzjg57jgrXjg5LjgrMNCivjg6Ljg6rjgqvjg68s44OS44Ot44K3DQor44Oi44Oq44Oi44OILOOCq+OCuuODnw0KK+ODouODquOCvyzjg6zjgqTjgrMNCivjg6Djg6njgqvjg58s44K/44OE44OS44KzDQor44Ki44OH44Ks44OvLOOCouOCpA0KK+ODiuOCrOOCteOCqyzjg5Ljgqvjg6sNCivjg4rjgqzjgr8s44K444Ol44OqDQor44OK44Ks44K/LOOCq+ODhOODjuODlg0KK+OCpOOCtuODryzjgqvjgqrjg6oNCivjg4rjgqvjg5/jg40s44Oe44Oi44OrDQor44OK44Kr44Og44OpLOODkuODreODjuODqg0KK+ODiuOCq+ODoOODqSzjgr/jg4Tjg6QNCivjgqTjg6Ljg4gs44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44Og44OpLOOCv+OCseOCtw0KK+ODiuOCq+OCqizjg6bjgqbjgrgNCivjg4rjgqvjg6Tjg54s44Km44K344OzDQor44OK44Kr44K244OvLOOCreODqOOCtw0KK+ODiuODn+OCrSzjg4/jg6vjg6jjgrcNCivjg4vjgqTjg58s44Ki44Kt44OS44OtDQor44OL44Kk44K844KtLOOCq+OCquODqg0KK+ODi+OCt+ODhyzjg5Ljg4fjgqLjgq0NCivjg4vjg68s44OS44OH44KtDQor44OO44OZLOODn+OCtQ0KK+OCquOCquOCvyzjgrfjgrLjgqLjgq0NCivjgqrjgqzjg68s44Oe44K144Oo44K3DQor44Kq44Kw44K5LOODpuOCpuOCueOCsQ0KK+OCquOCquODouODiCzjgrfjg6fjgqbjgrgNCivjgqrjgrfjg54s44K/44Kr44OO44OqDQor44Kq44Kq44K/LOOCseODs+OCpOODgQ0KK+OCquOCquODpCzjg5Ljg5/jgrMNCivjgqTjgrfjgqvjg68s44Oo44KmDQor44Kq44Kr44OALOOCv+OCseOCtw0KK+OCquOCryzjg5Xjg5/jg6bjgq0NCivjgqrjgq/jg4As44Oe44K144KtDQor44Kq44K344Kv44OcLOOCseODs+OCpOODgQ0KK+OCquOCvOOCrSzjgqvjg4Tjg5LjgrMNCivjg6njgqQs44Om44Km44K4DQor44Kk44OI44KmLOODiOODouODpA0KK+OCteOCpOOCrSzjg5Ljg63jgrcNCivjgrXjgqTjg4jjgqYs44K/44OE44OkDQor44Oo44K344OALOODn+ODgeODpOOCuQ0KK+OCteOCsyzjgrfjgrLjg5/jg4QNCivjgrXjgrXjgrjjg54s44K444Ol44Oz44OkDQor44K144K144KtLOODpuOCreOCsw0KK+OCteODiOOCpizjg4TjgrDjg5Ljg4cNCivjgqTjg6/jg6Ljg4gs44Kr44K644OS44KzDQor44K144OI44KmLOODgeOCqOOCsw0KK+OCteODr+ODgCzjg5Ljg4fjg6TjgrkNCivjgrvjgq3jgqvjg68s44Kk44K644OfDQor44K744Kt44ONLOODn+ODhOOCqg0KK+OCt+ODkOOCvyzjg4rjgqrjgq0NCivjgrfjgrLjg4/jg6ks44K344Oz44OkDQor44K344Oe44Kq44KrLOOCouOCreODkuOCsw0KK+OCt+ODn+OCuizjgqvjgrrjg5Ljg60NCivjgrfjg6Is44Oe44K144Ki44KtDQor44K344Oi44Og44OpLOOCv+OCq+OCtw0KK+OCt+ODoOODqSzjgr/jgqvjg5LjgrUNCivjgr3jg6Hjg6Qs44Ki44Kt44OS44KzDQor44K544Ko44Oo44K3LOOCseODs+OCpOODgQ0KK+OCueOCuuOCrSzjg5Ljg4fjg6bjgq0NCivjgrnjgrrjgq0s44OK44Kq44KtDQor44K/44Kr44OALOOCpOODgeODreOCpg0KK+OCv+OCq+ODj+OCtywNCivjgr/jgqvjgrss44Oe44OK44OWDQor44K/44Kx44OALOOCouOCreODqQ0KK+OCv+OCseOCpCzjg5LjgrXjg6jjgrcNCivjgr/jgrHjg6Ljg4gs44OP44K444OhDQor44K/44Oe44KkLOODiOOCt+ODkuOCsw0KK+OCv+ODoOODqSzjgr/jgqvjg6bjgq0NCivjgr/jg6Djg6ks44K144OI44OrDQor44Kk44K344Kr44OvLOODkuODiOOCtw0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgr/jg4rjgqss44Oe44K144OS44OtDQor44K/44OL44Kw44OBLOOCv+OCseODjuODqg0KK+OCv+ODi+OCsOODgSzjg5Ljg63jgr/jgqsNCivjgr/jg4vjgrDjg4Es44Kx44Oz44K4DQor44K/44OL44Kw44OBLOOCseODsw0KK+OCpOOCt+ODgCzjgqLjg4TjgrcNCivjgr/jg4vjgrfjgr8s44OV44Of44OODQor44OG44Op44OL44K3LOODhOODqOOCtw0KK+ODiOOCquODpOODnizjgq3jg6fjgqbjgrMNCivjg4jjg5/jgr8s44Of44OvDQor44OI44ON44Ks44OvLOOCv+OCrw0KK+ODiOODqOODgCzjg47jg6rjgrMNCivjg4jjg6jjgr8s44K344Ol44Km44K4DQor44OE44OB44OkLOODqOOCt+OCsw0KK+OCpOOCt+OCq+ODryzjg4rjgqrjgq0NCivjg4Tjg6Djg6ks44OI44K344Ki44KtDQor44OE44OO44Kr44OvLOODqOOCt+ODnw0KK+OCpuODgeODgCzjg5Ljg4jjgrcNCivjgqbjgrXjg58s44K/44Kx44K3DQor44Ov44K444OeLOODquOCsw0KK+ODr+OCv+ODiuODmSzjg57jgq0NCivjg6/jgr/jg4rjg5ks44Oo44Km44Kk44OBDQor44Ov44K/44OK44OZLOODpOODqOOCpA0KK+ODpOOCrizjgrHjgqTjgqTjg4ENCivjg6Tjgq4s44Kt44On44Km44KzDQor44Ok44Kv44OvLOODkuODreODleODnw0KK+ODpOODnuODgCzjg5Ljg63jgq0NCivjg6Tjg57jg4As44K/44Kr44Om44KtDQor44Ok44Oe44Kw44OBLOODiOOCt+ODpuOCrQ0KK+ODpOODnuODjuOCr+ODgSzjg57jgrXjgrMNCivjg6Tjg57jgrfjgr8s44Kz44Km44Kk44OBDQor44Ok44Oe44K344K/LOODiuOCquODpuOCrQ0KK+ODpOODnuOCtuOCrSzjg5Ljg4fjg6bjgq0NCivjg6Tjg57jgrbjgq0s44Om44K/44KrDQor44Ok44OK44Ks44OvLOOCv+ODhOODreOCpg0KK+ODpOOCueODgCzjg4jjg6jjgqLjgq0NCivjg6Tjgrnjgqgs44OI44Oi44Om44KtDQor44Kk44K944Ks44KkLOOCv+ODgOODjuODlg0KK+ODpOOCv+OCrOOCpCzjgqjjg6oNCivjg6jjgrfjg4As44Oq44On44Km44KzDQor44K/44Kr44OP44K3LOODnuOCteOCrQ0KK+OCquOCq+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqLjgqrjgq0s44Oe44K144OrDQor44Ki44Kt44OQLOOCouOCreOCsw0KK+OCouODmSzjgqLjgq3jgrMNCivjgqLjg57jg44s44Oe44K144KqDQor44Ki44Oq44Oi44OILOOCt+ODpeOCpuOCuA0KK+OCouODs+ODieOCpizjg6bjgq0NCivjgqTjgqvjg68s44K/44Kk44OY44KkDQor44Kk44K344KkLOODjuODquODkuODrQ0KK+OCpOOCt+OCq+ODryzjg4rjgqrjgrMNCivjgqTjgrfjgrrjgqss44Om44OfDQor44Kk44K344OQ44K3LOOCt+ODpeODs+OCueOCsQ0KK+OCpOOCt+ODouODiCzjg6rjg6fjgqbjgrnjgrENCivjgqTjg4cs44K144OI44KzDQor44Kk44OB44OO44K7LOOCteODiOOCtw0KK+OCpOODiuODgCzjg57jg4rjg5YNCivjgqTjg4zjgqQs44Ok44K544OoDQor44Kk44OO44Km44KoLOODnuODn+OCsw0KK+OCpOODpOODnizjgrPjgqbjgrgNCivjgqTjg6/jgrXjgq0s44Of44K644Oe44K1DQor44Kk44Ov44OeLOOCq+OCuuOCsw0KK+OCpOODr+ODnuODhCzjgqrjgrXjg4rjgqoNCivjgqbjgqjjg4As44OS44Ot44KzDQor44Km44Ko44OOLOODkuODreOCrQ0KK+OCpuODgeODgCzjgr/jgqvjgqoNCivjgqbjg4ks44Kx44Oz44K4DQor44Km44Oh44OP44OpLOOCv+OCq+OCtw0KK+OCqOOCsOODgSzjg4jjg5/jgrXjg5YNCivjgqjjg47jgq0s44Oo44K344KzDQor44Ko44Oi44OILOODn+ODhOODouODiA0KK+OCqOODouODqizjgrvjgqTjg6QNCivjg4rjgqvjgqzjg68s44OK44Kq44Ki44KtDQor44Kq44Kq44K/LOODkuODh+ODpuOCrQ0KK+OCquOCrOOCvyzjg6TjgrnjgrcNCivjgqrjgqzjg68s44OO44OW44K/44KrDQor44Kq44Ks44OvLOODrOOCpOOCsw0KK+OCquOCr+OCpCzjgr/jgq/jgrgNCivjgqrjgq/jg6Djg6ks44Oi44OI44KzDQor44Kq44Kq44K/44OLLOODhuODq+OCouOCrQ0KK+OCquODhOODiOODoizjg6bjgq3jgrMNCivjgqrjg4vjgrbjg68s44K344Ky44KtDQor44Kq44OOLOODjuODquOCouOCrQ0KK+OCquODkOODiizjgrvjgqTjgqTjg4Hjg63jgqYNCivjgqrjg57jgqzjg6os44Oe44K144OkDQor44Kr44Kt44K244OvLOODhuODhOODkuODrQ0KK+OCq+OCseODkizjgqjjg6rjgrMNCivjgqvjgrXjg4/jg6ks44Oe44OJ44KrDQor44Kr44K4LOOCquOCteODoA0KK+OCq+OCuOOCvyzjgr/jgqvjgqoNCivjgqvjgrjjgr8s44K/44Kr44KqDQor44Kr44K444Ok44OeLOODn+ODjuODqw0KK+OCq+ODiOOCpizjg6jjgrfjg47jg5YNCivjgqvjg4rjg4As44Kx44KkDQor44Kr44ON44KzLOODjuODluOCq+ODhA0KK+OCq+ODjeOCsyzjg6rjg6fjgqbjgr8NCivjgqTjgr/jg44s44Kx44Oz44K544KxDQor44OK44Ks44OE44OeLOOCt+ODpeOCpuODmOOCpA0KK+OCq+ODjuOCpizjgrvjgqTjgrgNCivjgqvjg57jgqgs44OK44Kq44KtDQor44Kr44Ov44KkLOODhuODhOOCqg0KK+OCq+ODr+ODnuOCvyzjg5Ljg63jgq0NCivjgqvjg7Pjg44s44Oe44Kk44KzDQor44Kt44Km44OBLOOCpOOCuuODnw0KK+OCreOCtyzjg6jjgqbjgrMNCivjgq3jgr/jgqzjg68s44OI44Oi44OO44OWDQor44Kt44OO44K344K/LOODiuODquODiOOCtw0KK+OCreODp+OCpuOCrOOCryzjg57jgrPjg4gNCivjgq/jg5ws44OI44Oi44OO44OqDQor44Kv44Oc44K/LOOCv+OCr+ODpA0KK+OCr+ODnOOCvyzjgrfjg7Pjg5rjgqQNCivjgq/jg6rjg4/jg6ks44Oq44KoDQor44Kv44Oq44Ok44OeLOOCseOCpOOCsw0KK+OCpOOCt+OCrOOCrSzjg4jjgrfjg5XjgrUNCivjgq/jg63jgqQs44Kk44OE44Ot44KmDQor44Kz44Km44K144KtLOOCs+OCpuOCpOODgQ0KK+OCs+OCpuODgCzjgqLjg4TjgrcNCivjgrPjg5Djg6Tjgrcs44OO44OW44Ki44KtDQor44Kz44OQ44Ok44K3LOODhuODhOODpA0KK+OCs+ODkOODpOOCtyzjg6bjgqbjgrnjgrENCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44Kk44OO44Km44KoLOODjuODluOCouOCrQ0KK+OCteOCpOODmyzjg4rjg6vjg5Ljg60NCivjgrXjgqvjgqzjg68s44Oo44Km44OY44KkDQor44Kr44Ov44Og44OpLOODpuOCv+OCqw0KK+OCteOCteOCquOCqyzjg6jjgqbjgrMNCivjgrXjgrXjgq0s44OO44Oc44OrDQor44K144OI44KmLOODjuODquOCq+OCug0KK+OCteODiOOCpizjg57jg4rjg5YNCivjgrXjg4rjg4As44Kq44K144OgDQor44K144Or44Ok44OeLOOCseODs+OCpOODgQ0KK+OCt+OCquODhCzjgqjjgqTjgrnjgrENCivjgrfjgqrjg47jg6Qs44K344OO44OWDQor44K344Kq44Ok44OeLOODjuODnOODqw0KK+OCt+OCruODj+ODqSzjg5Ljg63jg6bjgq0NCivjgrfjgrfjg4ks44Kv44OL44KqDQor44K344OO44K244KtLOOCq+OCuuODkuODiA0KK+OCt+ODkOOCvyzjg5/jg47jg6sNCivjgrfjg5/jgrosDQor44K344On44Km44OOLOOCt+ODs+OCpOODgQ0KK+OCt+ODqeOCrSzjg5Ljg63jg6bjgq0NCivjgrnjgq7jgqrjgqss44Of44OE44Kr44K6DQor44K544Ku44OP44OpLOOCreODqOOCt+OCsg0KK+OCueOCuuOCrSzjg5LjgrXjg4bjg6sNCivjgrnjgrrjgq0s44K344Ky44Om44KtDQor44K544Of44Ok44OeLOOCu+OCpOOCuA0KK+OCu+ODg+OCvyzjg57jgrXjgq0NCivjgqTjgrfjg6/jgr8s44OA44Kk44K444OlDQor44K744Oz44K044KvLOODn+ODjuODqw0KK+OCv+OCq+OCquOCqyzjg6bjg58NCivjgr/jgqvjgrbjg68s44K/44Kr44K344KyDQor44K/44Kr44OP44K3LOOCouODpOOCsw0KK+OCv+OCq+ODoOODqSzjgr/jgqvjg6bjgq0NCivjgr/jgq3jg4gs44OS44OH44KtDQor44K/44OK44KrLOOCq+OCug0KK+OCv+ODiuOCqyzjgqLjgq3jgrMNCivjgqTjg4jjgqYs44K444Ol44Oz44K4DQor44K/44OK44OZLOOCseODs+OCuA0KK+OCv+ODi+OCsOODgSzjg57jg4rjg5YNCivjg4Hjg6Pjg6/jg7Pjg6Qs44Oo44K344OP44OrDQor44OG44Op44K144KrLOODkuODreOCrQ0KK+ODiOOCs+ODrSzjgrjjg6Xjg7PjgqTjg4ENCivjg4rjgqvjgqQs44K/44Kr44K3DQor44OK44Kr44KqLOOCt+ODs+OCuA0KK+ODiuOCrOOCquOCqyzjg5/jg5sNCivjg4rjgqvjgqzjg68s44Oi44OI44Ki44KtDQor44OK44Kr44K444OeLOOCueODkuODgQ0KK+ODiuOCrOOCuyzjgr/jg4Tjg6QNCivjg4rjgqvjg44s44K744Kk44K/DQor44OK44Kr44OOLOOCuA0KK+ODiuOCrOODjizjg6bjgqbjgrMNCivjgqTjgrHjg4As44Ki44Kt44KzDQor44OK44Kr44Og44OpLOODnuODquOCsw0KK+ODiuOCq+ODpOODnizjgqvjg4Tjg4jjgrcNCivjg4vjgqos44K444Ol44Oz44Kk44OBDQor44OL44K344KqLOODjuODquOCsw0KK+ODi+OCt+OCq+OCpCzjg4jjgrfjg5/jg4QNCivjg4vjgrfjgrbjgqss44Oo44K344KzDQor44OL44K344OALOODgOOCpOOCueOCsQ0KK+ODi+OCt+ODgCzjgr/jgqvjgrcNCivjgqTjgqTjgrjjg54s44Oe44K144KtDQor44OL44K344OP44OpLOOCq+OCuuODpuOCrQ0KK+ODi+OCt+ODoOODqSzjgqvjgrrjg6QNCivjg43jg63jg6Es44OS44Ot44K3DQor44OO44K444OeLOOCteODjeODkuODrQ0KK+ODjuODiuOCqyzjg4DjgqTjgrnjgrENCivjg4/jgrfjg5As44OO44Oq44Kr44K6DQor44OP44OB44OkLOOCv+OCq+ODkuODrQ0KK+ODj+ODg+ODiOODqizjgrMNCivjgqTjgqTjg4As44OS44Ot44Om44KtDQor44OP44OWLOODnuOCs+ODiA0KK+ODj+ODpOOCq+ODryzjg4bjg4Tjg63jgqYNCivjg4/jg6Tjgrcs44OK44Kq44KzDQor44OP44Ok44K344OeLOODkuODh+OCtw0KK+ODj+ODqSzjgr/jgq/jg58NCivjg5Ljgqzjgrfjg4As44Oe44K144OrDQor44K744Kt44Kw44OBLOOCreODp+OCpuOCpOODgQ0KK+ODkuODqeOCpCzjgqvjgqrjg6oNCivjg5Ljg63jgrnjgqgs44OS44Ot44Om44KtDQor44OS44Ot44OP44K/LOOCv+OCr+ODpA0KK+ODleOCr+OCt+ODnizjg5/jg4TjgqoNCivjg5Xjgrjjgqos44OG44Oz44Oa44KkDQor44OV44K444K/LOODpuOCpuOCpOODgeODreOCpg0KK+ODleOCuOODnuOCrSzjg6bjgq3jg5LjgrMNCivjg5Xjgrjjg6/jg6ks44OI44Kq44OrDQor44OV44Or44Kk44OBLOODpuOCpuOCueOCsQ0KK+ODm+OCteOCqyzjgr/jgrHjgrcNCivjg5vjgrfjg44s44Kz44Km44K4DQor44Ob44OqLOODpuOCreOCsw0KK+ODm+ODquODouODiCzjg6bjgqbjgrgNCivjg5vjg7Pjg54s44Om44Kt44OO44OWDQor44Oe44Ko44Kr44OvLOOCv+OCseODj+ODqw0KK+ODnuOCqOODgCzjgr/jgqvjg5Ljg4gNCivjg57jgqjjg4As44Of44Kt44KqDQor44Oe44Ko44OALOOCv+ODhOODpA0KK+ODnuOCteOCpCzjgq/jg58NCivjg57jg4TjgqQs44OS44OH44OO44OWDQor44Oe44OE44K244OvLOODgeOCq+ODqQ0KK+ODnuODhOODgCzjgr/jgqvjg6bjgq0NCivjg57jg4Tjg4jjg6Is44Oe44K144OK44KqDQor44Oe44OE44OK44KsLOOCseODs+OCuA0KK+ODnuODhOODouODiCzjg6jjgqbjgrnjgrENCivjg5/jgrrjgrDjg4Es44OI44Oi44K/44KrDQor44Of44Ok44Oi44OILOODnuODpuODnw0KK+ODn+ODpOODouODiCzjg6TjgrnjgrgNCivjg6Djg6njgqvjg58s44Kr44K644OS44OHDQor44Og44Op44Kr44OfLOODnuOCteODkuODrQ0KK+ODoOODqeODiuOCqyzjgrXjg4jjgrcNCivjg6Ljg4Hjgrrjgq0s44K/44Kv44OkDQor44Oi44OI44Kv44OpLOODiOODouOCsw0KK+ODouODqizjgq/jg4vjgqvjgroNCivjg6Ljg6rjg6Qs44Ob44Oe44OsDQor44Ok44K544KkLOOCv+OCpOOCsuODsw0KK+ODpOOCueODgCzjg5/jgq3jgrMNCivjg6Tjgrnjg4As44Kt44Oo44OS44OIDQor44Ok44K/LOOCq+OCuuODkuODrQ0KK+ODpOOCv+OCrSzjg47jg5bjgqoNCivjg6Tjg4Es44OV44Of44OS44KzDQor44Ok44OOLOODkuODreOCtw0KK+ODpOODnuOCpOOCuuODnyzjg6jjgrfjgqLjgq0NCivjg6Tjg57jgqrjgqss44Oe44K144KtDQor44Ok44Oe44Kw44OBLOODpOOCueODkuODrQ0KK+ODpOODnuOCsOODgSzjg6jjgrfjg47jg6oNCivjg6Tjg57jgrbjgq0s44Ki44Kt44KqDQor44Ok44Oe44K244KtLOODiuODig0KK+ODpOODnuOCt+OCvyzjg57jgqTjgrMNCivjg6Tjg57jg6Ljg4gs44Kx44OzDQor44Oo44Kz44K844KtLOOCv+OCpOODgQ0KK+ODqOOCt+ODgCzjg4rjgqrjg4gNCivjg6jjgrfjg44s44Ok44K544KqDQor44Oo44K344OfLOOCv+OCq+OCtw0KK+ODqOODgCzjgr/jgqvjg5Ljg60NCivjg6jjg4As44OS44Ot44Ki44KtDQor44Ot44K4LOODleODn+OCouOCrQ0KK+ODr+ODgCzjg57jg58NCivjg6/jgr/jg4rjg5ks44Om44Kt44KqDQor44Ov44K/44OK44OZLOODkuODh+OCrQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjgqoNCivjg6/jgr/jg5ks44K/44Kr44K3DQor44Kr44OO44KmLOOCv+OCq+ODiOOCtw0KK+ODi+ODg+OCvyzjgqrjgrXjg6ANCivjgqLjgqrjgq0s44K344Ol44KmDQor44Ki44Kq44KtLOODj+ODiuOCsw0KK+OCouOCquODpOODnizjg57jgrXjgqLjgq0NCivjgqLjgqrjg6Tjg54s44OM44KkDQor44Ki44Kt44OQLOOCseOCpOOCpOODgQ0KK+OCouOCteODgCzjg57jg6rjgrMNCivjgqLjg4Djg4Es44OI44Oi44OfDQor44Ki44OA44OBLOODpuOCpuOCsw0KK+OCouODiOODmSzjg4/jg6vjg4gNCivjgqLjg5ks44Kr44OE44OS44KzDQor44Ki44OZLOODjuODluOCqg0KK+OCouODmSzjg57jg6bjg58NCivjgqLjg57jg44s44Oe44KtDQor44Ki44Oe44OOLOOCuOODpeODs+OCpOODgeODrQ0KK+OCouODqeOCq+ODryzjg6rjg6fjgqbjgrnjgrENCivjgqLjg6rjgr8s44Oo44Km44OY44KkDQor44Ki44Oq44OI44OiLOODkuODreOCtw0KK+OCouODs+OCtuOCpCzjg5Ljg4fjgqLjgq0NCivjgqTjg4jjgqYs44Oo44Km44K4DQor44Ki44Oz44OJ44KmLOODquOCqOOCsw0KK+OCpOOCrOODqeOCtyzjg5/jgqrjgrMNCivjgqTjgrHjg4As44Kk44K644OfDQor44K/44Kr44OP44K3LOOCouODhOOCqg0KK+OCpOOCt+ODkOOCtyzjgr/jg4DjgrcNCivjgqTjgrfjg6Djg6ks44Om44Of44KzDQor44Kk44K344Oi44OILOODnuODquOCsw0KK+OCpOODgeOCpCzjgrHjgqTjgrMNCivjgqTjg4Hjgqvjg68s44OS44Ot44OIDQor44Kk44OB44Kr44OvLOODnuOCreOCsw0KK+OCpOODgeODjuOCuyzjgq3jg6jjgrcNCivjgqTjg4jjgqYs44Ki44Kt44OS44OtDQor44Kk44OI44KmLOODnuOCteODqw0KK+OCpOODiOOCpizjg6rjgrUNCivjgqTjg4rjgqrjgqss44Oe44K144OV44OfDQor44Kk44OK44OQLOODkuODreOCv+OCsQ0KK+OCpOODjOOCuuOCqyzjg57jg6bjg58NCivjgqTjg47jgqbjgqgs44OS44OH44Kq44OfDQor44Kk44OO44Kr44OvLOOCt+ODpeODs+OCueOCsQ0KK+OCpOODnuOCpCzjgr/jgrHjgrcNCivjgqTjg57jgrfjg6Xjgq8s44Oq44On44KmDQor44Kk44Ov44KkLOODiOODouODkuOCsw0KK+OCpOODr+OCt+ODnizjgrfjg6XjgqbjgqTjg4ENCivjgqbjgqjjgr7jg44s44Oh44Kw44OfDQor44Km44Ko44OALOOCv+OCq+ODkuODrQ0KK+OCpuOCqOODj+ODqSzjgr/jgqvjg6bjgq0NCivjgqbjgqjjg4/jg6ks44Oi44OI44KzDQor44Kr44Kt44K/LOOCseODsw0KK+OCpuOCteODnyzjg5Ljgrjjg6oNCivjgqbjg4Hjg4As44OS44Ot44KtDQor44Km44OB44OALOOCouODpOOCsw0KK+OCpuODgeODnOODqizjg5/jgrXjg4gNCivjgqbjg6HjgqzjgqQs44Kr44K644KoDQor44Km44Oh44OELOOCouOCreODkuOCsw0KK+OCpuODoeODjizjgr/jgrHjgrcNCivjgqbjg6njgqvjg68s44Om44KtDQor44Km44Op44OZLOOCt+OCsuODkuOCtQ0KK+OCqOOCsOODgSzjgr/jg4DjgrcNCivjgqjjgrrjg58s44Kk44Kv44OoDQor44Ko44OO44Oi44OILOOCv+ODreOCpg0KK+OCpOODnuODi+OCtyzjg5Ljg63jg6bjgq0NCivjgqjjg47jg6Ljg4gs44OV44Of44KzDQor44Ko44Oz44OJLOODqOOCt+OCrQ0KK+OCquOCpOOCq+ODryzjg57jgrXjgq0NCivjgqrjgqTjgqvjg68s44Om44Kt44OV44OfDQor44Kq44Kq44KkLOODqOOCpuOCuA0KK+OCquOCquOCpOOCtyzjg57jgrXjg4/jg6sNCivjgqrjgqrjgr8s44OV44Of44Kr44K6DQor44Kq44Kq44OE44KrLOOCt+ODs+OCueOCsQ0KK+OCquOCquODi+OCtyzjgqvjg4TjgqLjgq0NCivjgqrjgqrjg4vjgrcs44Of44OB44KoDQor44Kq44Kr44OALOODpOOCueOCqg0KK+OCquOCq+ODgCzjg57jgrXjg6sNCivjgqrjgqvjg44s44Om44KtDQor44Kq44Kr44OZLOODqOOCt+ODkuODrQ0KK+OCquOCq+ODmSzjg5Ljg4fjgqLjgq0NCivjgqrjgqvjg6Djg6ks44Oq44On44KmDQor44Kq44Kr44Oi44OILOODn+OCrQ0KK+OCquOCq+ODouODiCzjg5/jg6bjgq0NCivjgqrjgqzjg68s44K/44Ko44KzDQor44Kq44Ks44OvLOODiOOCquODqw0KK+OCquOCr+ODgCzjgrHjg7MNCivjgqrjgq/jg4As44OG44OE44OkDQor44Kq44K244KtLOODnuODn+OCsw0KK+OCquODjizjg4rjgqrjgrMNCivjgqrjgqrjg6Tjg54s44K/44Kr44K3DQor44Kr44Kk44K644KrLOODiOOCt+ODleODnw0KK+OCq+OCrOODnyzjgqjjg6rjgqsNCivjgqvjgq3jgr8s44Kr44Kq44OrDQor44Kr44KvLOOCs+OCpuOCuA0KK+OCq+OCteOCpCzjg6bjgq3jg47jg6oNCivjgqvjgrjjgqQs44Ki44Kr44ONDQor44Kr44K444K/LOODiuOCquODpA0KK+OCq+OCv+OCqCzjg6bjgqbjgrjjg7MNCivjgqvjgr/jg6Tjg54s44Of44OE44KzDQor44Kr44OELOODiOOCquODqw0KK+OCq+ODiOOCpizjgr/jgq8NCivjgqvjg4jjgqYs44OA44Kk44K544KxDQor44Kr44OfLOOCouODhOOCsw0KK+OCq+ODjeOCsyzjgq/jg4vjg5Ljg4gNCivjgqvjg57jg4As44Kr44K644OS44OtDQor44Kr44OfLOODqOOCt+ODhuODqw0KK+OCq+ODn+ODkuOCtSzjg6bjgqbjgrgNCivjgqvjg5/jg6Ljg4gs44Kr44Kq44OqDQor44Kr44Of44OkLOOCq+OCuuOCqg0KK+OCq+ODn+ODpOODnizjg57jgq0NCivjgqvjg6/jgqvjg58s44Oe44K544OfDQor44Kr44Ov44K144KtLOODkuODiOOCtw0KK+OCq+ODr+OCuyzjg5Ljg63jgqvjgroNCivjgqvjg6/jg4/jgr8s44K/44Kx44OB44KrDQor44Kr44Ov44OP44OpLOOCuOODpeODs+OCsw0KK+OCq+ODr+ODoOODqSzjgqvjgrrjg5Ljg60NCivjgqvjg6/jg6Ljg4gs44Kx44Kk44K544KxDQor44Kr44Ov44Oi44OILOODkuODreOCtw0KK+OCq+ODr+ODouODiCzjg5/jg4HjgqoNCivjgqvjg7Pjg4As44K/44Kx44K3DQor44Kt44Kv44OBLOOCqOODqg0KK+OCreOCv+OCrOODryzjg57jgrXjg5bjg58NCivjgq3jgr/jg4rjgqws44K144Kr44KoDQor44Kt44K/44OOLOOCt+ODs+OCtA0KK+OCreOCv+ODoOODqSzjgr/jg4Tjg6QNCivjgq3jgr/jg6Ljg4gs44OE44OI44OgDQor44Kt44OO44KoLOODkuODreOCtw0KK+OCreODluOCuyzjgr/jgqvjgqgNCivjgq3jg6Djg6ks44K444Ol44Oz44Kk44OBDQor44Kt44Og44OpLOODiOODouOCrQ0KK+OCreODouODiCzjg5Ljg4fjg6bjgq0NCivjgq3jg6Ljg4gs44Om44OqDQor44Ku44On44Km44OWLOODkuODreOCsw0KK+OCr+ODiyzjg5/jg5sNCivjgq/jg4vjg57jgrUs44Of44Ko44KzDQor44Kv44Oe44K144KrLOOCv+OCpOOCu+ODhA0KK+OCr+ODqeOCt+OCsizjgqLjgq3jgqoNCivjgq/jg6rjg4/jg6ks44K/44Kx44K3DQor44Kz44Kk44KxLOODoeOCsOODnw0KK+OCs+OCpOOCseODgCzjgr/jg4Tjg63jgqYNCivjgrPjgqTjgrrjg58s44OS44Ot44K3DQor44Kz44Kk44OM44OeLOODn+ODgeOCsw0KK+OCs+ODhOOCqyzjgqvjgrrjgqLjgq0NCivjgrPjgqws44K344Ky44KtDQor44Kz44K344Oi44OILOODkuODreODn+ODhA0KK+OCs+ODgOODnizjgr/jgqTjg4Hjg63jgqYNCivjgrPjg4Djg54s44Oe44K144Kr44K6DQor44K044OI44KmLOOCouODquODqOOCtw0KK+OCs+ODi+OCtyzjg4jjg6LjgrMNCivjgrPjg5Djg6Tjgrcs44Oo44K344K4DQor44Kz44OQ44Ok44K3LOODnuOCteOCrQ0KK+OCs+ODkOODpOOCtyzjg6Tjgrnjgr/jgqsNCivjgrPjg5Djg6Tjgrcs44OS44OH44OS44OIDQor44Kz44Oe44KtLOOCv+ODhOODpA0KK+OCs+ODnuODkCzjgqvjgrrjg47jg6oNCivjgrPjg5/jg6Qs44Kr44OE44OS44KzDQor44Kz44Ok44OeLOODnuOCteODjuODqg0KK+OCs+ODpOODnizjg6Tjgrnjg47jg6oNCivjgrXjgqTjgq0s44OI44Oi44OS44K1DQor44K144Kk44K044KmLOODn+ODr+OCsw0KK+OCteOCpOODiOOCpizjgrHjg7PjgrgNCivjgrXjgqTjg4jjgqYs44OG44OE44KqDQor44K144Kk44OI44KmLOOCpOOCteODoA0KK+OCpOOCrOODqeOCtyzjgrfjg6fjgqbjgrQNCivjgrXjgqjjgrDjgrUs44OK44OfDQor44K144Kr44KkLOOCouOCreODqQ0KK+OCteOCq+OCrOODnyzjgqTjg4Hjg63jgqYNCivjgrXjgqvjg40s44OA44Kk44KtDQor44K144Kr44Oi44OILOODiOODouODjuODqg0KK+OCteOCq+ODouODiCzjg57jgrPjg4gNCivjgrXjgq/jg6njgqQs44OS44Ot44OfDQor44K144Kv44Op44OALOODquODp+OCpuOCuA0KK+OCteOCs+ODsyzjg57jgrXjg5Ljg60NCivjgrXjgrXjgq0s44OK44OK44KoDQor44K144K144OP44OpLOODr+OCq+OCsw0KK+OCteODiOOCpizjgrLjg7MNCivjgrXjg4jjgqYs44K444Ol44Oz44Kk44OBDQor44K144OI44KmLOOCseODs+OCtA0KK+OCteODiOOCpizjg4rjgqrjg4gNCivjgrXjg44s44OS44OH44Ki44KtDQor44K144OvLOOCseODs+OCtA0KK+OCt+ODluODpCzjgr/jg4DjgrcNCivjgrfjg5bjg6Qs44OS44OH44KqDQor44K344Oe44OALOODnuODiuOCqA0KK+OCt+ODnuODgCzjg5Ljg4fjgr/jgrENCivjgrfjg57jg4As44Ok44Oo44KkDQor44K344Of44K6LOODpuOCreOCqg0KK+OCt+ODn+OCuizjg4DjgqTjgrnjgrENCivjgrfjg5/jgros44OS44OH44KtDQor44K344Of44K6LOOCouOCreODjg0KK+OCt+ODn+OCuizjg4rjgqrjg6bjgq0NCivjgqTjg47jgqbjgqgs44Kx44Kk44K544KxDQor44K344OiLOOCteODiOOCtw0KK+OCt+ODp+OCpuODgCzjgrfjgrLjg47jg6oNCivjgrjjg7Pjg44s44Oe44Kz44OIDQor44K444Oz44OOLOODquODpeOCpuOCuA0KK+OCt+ODs+ODnuODgSzjgr/jgrHjgrcNCivjgrnjgq7jgqQs44Oe44K144OK44KqDQor44K544Ku44Kq44KrLOOCv+OCq+ODkuOCsw0KK+OCueOCruODouODiCzjg5/jg4Hjg47jg6oNCivjgrnjgrrjgq0s44Kr44K644OS44OpDQor44K544K644KtLOODgOOCpOOCueOCsQ0KK+OCueOCuuOCrSzjgqvjgrrjg5Ljg60NCivjgrnjgrrjgq0s44OS44Ot44K344KyDQor44K544K644KtLOODpuOCpuOCpOODgeODreOCpg0KK+OCu+OCqizjg47jg6rjgrMNCivjgrvjgq0s44K944KmDQor44Kk44K344OP44OeLOOCseODs+ODiA0KK+OCveODjuODgCzjgrPjgqbjgr/jg63jgqYNCivjgr/jgqQs44Oo44K344Ki44KtDQor44K/44Kr44Kk44OvLOOCreODqOOCtw0KK+OCv+OCq+OCrizjg6bjgqbjgrgNCivjgr/jgqvjg4/jgrcs44Oe44Kt44KzDQor44K/44Kr44OP44K3LOODjuODluODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgq3jgrMNCivjgr/jgqvjg4/jgrcs44K/44Kx44K3DQor44K/44Kr44OP44K3LOOCouOCreODkuOCsw0KK+OCv+OCq+ODoOOCryzjgrHjg7PjgrcNCivjgr/jgrDjg4Es44OS44Ot44KzDQor44K/44Kx44Km44OBLOODqOOCt+OCsw0KK+OCv+OCseOCq+ODryzjg57jgrXjgrcNCivjgr/jgrHjg68s44K344Oz44K4DQor44K/44OA44Oe44OELOODkuODh+OCrQ0KK+OCv+OCv+ODqSzjgrPjgqbjgrgNCivjgr/jg4rjgqss44K/44Kr44K3DQor44K/44OL44Oi44OILOODpuOCpuOCuA0KK+OCv+ODjeODoOODqSzjgqLjgq3jg5Xjg58NCivjgr/jg4/jg6ks44K144OI44K3DQor44K/44Og44OpLOODkuODreOCtw0KK+ODgOODsyzjgr/jgqvjg6bjgq0NCivjgqTjgqTjg4As44Og44ON44OO44OqDQor44OB44OQLOOCqOOCpOOCueOCsQ0KK+ODgeODp+OCpuODiOOCryzjg5Ljg4fjg6bjgq0NCivjg4Tjgqvjg4/jg6ks44OS44Ot44Om44KtDQor44OE44OE44OfLOODnuOCs+ODiA0KK+ODhOODouODqizjg57jg6rjgrMNCivjg4bjg6njgrfjgr8s44Om44Km44Kk44OB44Ot44KmDQor44OJ44KkLOODpuOCv+OCqw0KK+ODieOCpCzjg6jjgrfjgqgNCivjg4njgqQs44Oo44Km44Kk44OBDQor44OI44K344OeLOOCs+OCpuODmOOCpA0KK+ODiuOCpOODiOOCpizjgrPjgqbjgrgNCivjg4rjgqvjgqQs44Oe44K144OS44OtDQor44OK44Kr44KkLOOCt+ODpeOCpuODmOOCpA0KK+ODiuOCq+OCqizjgq3jg5vjgrMNCivjg4rjgqvjgqzjg68s44OB44Ki44KtDQor44OK44Ks44K144KtLOOCq+OCquODqg0KK+ODiuOCq+OCuOODnizjgr/jgqvjg5Xjg58NCivjg4rjgqvjgrjjg54s44OO44K+44OgDQor44OK44Kr44K344OeLOOCteODiuOCqA0KK+ODiuOCq+ODgCzjgq3jg6jjgrMNCivjg4rjgqvjg4/jg6ks44Of44OK44KzDQor44OK44Kr44Og44OpLOOCuOODpeODs+OCvuOCpg0KK+ODiuOCq+ODoOODqSzjgrfjg6Xjgqbjgr/jg63jgqYNCivjg4rjgqvjg6Djg6ks44Om44OqDQor44OK44Kr44Og44OpLOOCveOCpuOCpOODgeODreOCpg0KK+ODiuOCq+ODoOODqSzjg5/jg4Tjg5Ljg60NCivjg4rjgqvjg6Djg6ks44Kr44OE44OS44KzDQor44OK44Kr44Og44OpLOODkuODh+ODpA0KK+ODm+OCt+ODjizjg4jjgrfjg4/jg6sNCivjg4rjgqvjg6Ljg4gs44Ki44Kt44KzDQor44Kk44Kx44OALOODnuOCteOCv+OCqw0KK+ODiuOCq+ODouODqizjg4jjgqrjg6sNCivjg4rjgqzjg6jjgrcs44K/44Kr44Oe44K1DQor44OK44OH44OP44OpLOODkuODreOCtw0KK+ODiuODiuODouODqizjg4Tjg4jjg6ANCivjg4rjg6njgrXjgqss44OS44Ot44K3DQor44OK44Oz44OQLOODpuOCrQ0KK+ODi+OCtyzjg4Tjg43jgqLjgq0NCivjg4vjgrfjgqvjg68s44OS44OH44Ki44KtDQor44OL44K344OALOOCseODs+OCtw0KK+ODi+OCt+ODoOODqSzjg6bjgq0NCivjg47jgrDjg4Es44K144OI44K3DQor44OO44OALOOCseODs+OCpOODgQ0KK+ODjuODiuODnyzjgrnjgrDjg6sNCivjg47jg47jgqTjg4Hjg6Qs44Oe44K544KqDQor44OO44Og44OpLOODiOODouODkuOCsw0KK+ODjuODouODiCzjg6bjgqbjgqTjg4ENCivjg4/jgqzjg6Qs44OK44Kq44Om44KtDQor44OP44Ku44Ov44OpLOODpOOCueODpuOCrQ0KK+ODj+OCryzjg4jjg6Ljg5Ljg4gNCivjg4/jgrcs44K/44Kr44K3DQor44OP44K344K644OhLOODpuOCpuOCsw0KK+ODj+OCt+ODkCzjg57jgrPjg4gNCivjg4/jgrvjg5ks44K/44Kr44Oe44K1DQor44OP44K/LOODnuOCteODn+ODgQ0KK+ODj+OCv+OCqCzjg5/jgq3jg4gNCivjg4/jgr/jg44s44Ki44Kt44Oo44K3DQor44OP44OB44OOLOOCueOCueODoA0KK+ODj+ODg+ODiOODqizjg6bjgqYNCivjg4/jg6Tjgrcs44Os44Kk44KzDQor44OP44Ok44K344OALOOCouOCreODqQ0KK+ODj+ODpOODleODjSzjg6jjgrfjgqLjgq0NCivjg4/jg6ks44K/44OE44K4DQor44OP44Op44OALOOCr+ODn+OCsw0KK+ODj+ODqeODgCzjg57jgrXjgrMNCivjgqTjg47jgrDjg4Es44Kr44OE44OV44OfDQor44OP44Op44OALOOCv+OCq+ODpuOCrQ0KK+ODkuOCrOOCt+ODpOODnizjg6jjgqbjgrMNCivjg5LjgrDjg4Es44OS44OH44KtDQor44OS44K0LOODkuODreOCtw0KK+ODkuODgOODjizjg4jjg6Ljg6QNCivjg5Ljg57jgq0s44OI44Oi44OO44OqDQor44Kv44Op44K344KyLOOCq+OCuuODpuOCrQ0KK+OCpOOCt+ODj+ODqSzjg6zjgqTjgrMNCivjg5Ljg6njgr8s44K344Ky44KqDQor44OS44Ot44K144OvLOODpuOCreOCsw0KK+ODkuODreOCvyzjgrHjgqTjgrMNCivjg5XjgqvjgrXjg68s44Of44Kt44KzDQor44OV44Kr44K244OvLOODquOCqA0KK+ODleOCq+OCtuODryzjgr/jgqvjgrcNCivjg5Xjgq/jg6Djg60s44Oe44K144OI44OiDQor44OV44K444KkLOODhuODhOODpA0KK+OCpOODiOOCpizjgrHjgqTjgrMNCivjg5XjgrjjgqQs44Of44Kq44KzDQor44OV44K444OK44KsLOOCseOCpOOCuA0KK+ODleOCuOODiuOCrCzjg5Xjg5/jgrMNCivjg5Xjgrjjg6/jg6ks44OO44Oq44OS44OtDQor44OV44K444Ov44OpLOODquOCqA0KK+ODleOCuOODr+ODqSzjg4rjgqrjg6bjgq0NCivjg5Xjgr/jg4Tjgq4s44OE44Oo44K3DQor44OV44K/44OE44Oi44OqLOOCt+OCuuOCqw0KK+ODleODq+ODj+OCvyzjg47jg5bjgqLjgq0NCivjg5Xjg6vjg6Qs44Oe44Oq44KzDQor44OY44Oz44OfLOODnuOCteODqw0KK+ODm+OCtyzjg57jgqTjgrMNCivjg5vjgrfjg44s44Kr44OE44Ki44KtDQor44Ob44OqLOOCreODn+ODkuODrQ0KK+ODm+ODquOCqCzjgrfjg7PjgrgNCivjg5vjg6rjgqrjgqss44Ki44OE44KzDQor44Ob44Oq44Kr44OvLOODiOODouODkuODrQ0KK+ODnuOCqOODleODjSzjg4rjg5/jgrMNCivjg57jgq3jg44s44Ok44K544OO44OqDQor44Oe44K544OALOOCquOCr+ODiA0KK+ODnuODhOOCpuODqSzjgr/jgrHjgrcNCivjg57jg4Tjgrfjgr8s44Ki44Kt44K3DQor44Oe44OE44Oi44OILOODkuODh+OCv+OCqw0KK+OCpOOCsOODgSzjgr/jgqvjg5Ljg60NCivjg57jg4Tjg6Tjg54s44Oe44K144OS44OtDQor44Oe44OK44OZLOODgeODjg0KK+ODnuODq+ODpOODnizjg4rjgqrjg6bjgq0NCivjg5/jgqbjg6ks44Of44OB44OrDQor44Of44KtLOOCv+OCq+ODpuOCrQ0KK+ODn+ODhOODj+OCtyzjgqjjgqTjgqTjg4ENCivjg5/jg4Tjg5ks44Oe44K144OIDQor44Of44OI44OZLOODkuOCteODpA0KK+ODgeODp+OCpuODiOOCryzjgr/jg57jgq0NCivjgqTjgrHjg5Xjgrgs44OO44OW44Oo44K3DQor44Of44Ok44K244KtLOODnuOCteODj+ODqw0KK+ODn+ODpOOCtuOCrSzjgqLjgq3jg6kNCivjg5/jg6Tjgrfjgr8s44Oo44Km44KzDQor44Of44Ok44K/LOOCv+OCq+OCtw0KK+ODoOOCs+OCpuODpOODnizjg5/jg4Hjg5Ljg4cNCivjg6Djg6njgqQs44Of44ObDQor44Og44Op44Kr44OfLOODnuODnw0KK+ODoOODqeOCq+ODnyzjg5/jg4TjgqLjgq0NCivjg6Djg6njgr8s44OI44Oi44Om44KtDQor44Og44Op44Oe44OELOODnuOCteODpuOCrQ0KK+ODouODiOOCrSzjgrjjg6Xjg7Pjgr8NCivjg6Ljg4jjg6jjgrcs44K744Kk44Kk44OBDQor44Oi44Of44Ok44OeLOOCqOOCpOOCuA0KK+ODouODqizjgr/jgqvjgrcNCivjg6Ljg6os44K/44Kx44OkDQor44Oi44Oq44Km44KoLOODqOOCt+OCv+OCqw0KK+OCpOODjuOCpuOCqCzjgqLjgq3jg47jg6oNCivjg6Ljg6rjgqbjg4Es44K344Oz44K/44Ot44KmDQor44Oi44Oq44K/LOODpuOCpuOCrQ0KK+ODpOOCruOCteODryzjgqvjgrrjg58NCivjg6Tjgrfjg54s44Kz44Km44K4DQor44Ok44K544OALOODleODn+ODkuOCsw0KK+ODpOODjizjg5/jgq0NCivjg6Tjg44s44K/44OA44K/44KrDQor44Ok44Oe44Kw44OBLOOCuOODpeODsw0KK+ODpOODnuOCteOCrSzjg5Xjg5/jg5LjgrMNCivjg6Tjg57jgrbjgq0s44OO44OW44OS44KzDQor44Ok44Oe44K344K/LOOCseOCpOOCuA0KK+ODpOODnuOCt+OCvyzjgqLjg4TjgrcNCivjg6Tjg57jg4As44K/44OE44KqDQor44Ok44Oe44OKLOOCq+ODig0KK+ODpOODnuODn+ODgSzjgrHjgqTjgrnjgrENCivjgqTjg4rjgqss44Ky44Oz44K/DQor44Ok44Oe44Oi44OILOOCs+OCpuOCuA0KK+ODpOODnuODouODiCzjgr/jgq/jg6QNCivjg6Tjg57jg6Ljg4gs44OS44OH44KqDQor44Ok44Oe44Oi44OILOODoOODjeOCv+OCqw0KK+ODpuODkCzjg6bjgr/jgqsNCivjg6jjgrPjgr/jg4ss44Oe44Kz44OIDQor44Oo44Kz44Ok44OeLOODqOOCt+OCqg0KK+ODqOOCt+ODgCzjgqvjgrrjg5Ljg60NCivjg6jjgrfjg4As44OI44K344Kr44K6DQor44Kk44Ov44K144KtLOODiOOCt+OCq+OCug0KK+ODqOOCt+ODgCzjg6rjg6fjgqYNCivjg6jjg4As44Ko44OfDQor44Ov44Kr44Oe44OELOODn+ODgeOCqA0KK+ODr+OCtSzjg6rjg6fjgqbjgrMNCivjg6/jg4As44Kr44Kq44OrDQor44Ov44K/44OK44OZLOOCseOCpOOCvuOCpg0KK+OCpOODr+OCr+ODqSzjgqjjgqTjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44OH44Om44KtDQor44Ov44K/44OK44OZLOOCq+OCuuODn+ODjQ0KK+ODr+OCv+ODiuODmSzjgrfjg6fjgqbjgr/jg63jgqYNCivjg6/jgr/jg4rjg5ks44Om44KtDQor44Ov44K/44OK44OZLOOCt+OCsuODqw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kt44Oo44Kr44K6DQor44Ov44K/44OK44OZLOODiOOCt+OCqA0KK+OCquOCquOCpCzjg47jg5bjg5Ljg60NCivjgqTjgqTjg4As44Om44Kt44KzDQor44Og44Kr44KkLOOCv+OCq+OCtw0KK+ODleODn+ODj+ODqSzjgqvjgqrjg6oNCivjgqvjg6/jgrTjgqgs44Oe44K144OP44OrDQor44Kv44Ot44Kr44OvLOODkuODreODnw0KK+OCs+OCpuODgCzjgrXjg4jjg6sNCivjg5Xjgrjjgr8s44Om44Km44KzDQor44Kz44OQ44Ok44K3LOOCv+OCseOCtw0KK+ODj+ODnuODoOODqSzjgqvjg6gNCivjgqTjg6/jgrss44Ok44K544OS44OtDQor44K/44Kx44OALOODnuOCteODqw0KK+OCquOCrOODryzjg5Ljg63jgqLjgq0NCivjg5/jgrrjgr8s44K144OI44OrDQor44Kk44Kk44OALOOCouODhOOCtw0KK+OCouOCpOODj+ODqSzjg6TjgrnjgrMNCivjgqLjgqrjgqYs44OI44K344KtDQor44Ki44Kq44KtLOOCt+ODs+OCs+OCpg0KK+OCouOCquODkCzjg5Ljg63jg6jjgrcNCivjgqLjgq3jg6Ljg4gs44K544K544OgDQor44Ki44K144KkLOODpuOCpuOCsw0KK+OCpOOCt+ODpOODnizjgrfjg6Xjg7PjgrnjgrENCivjgqLjgrXjgqos44Ko44Of44KzDQor44Ki44K144OALOODiOOCt+OCrQ0KK+OCouOCteODgCzjgrHjg7Pjgr/jg63jgqYNCivjgqLjgrXjg44s44OV44K444KqDQor44Ki44K144OOLOODiOODouODkuOCsw0KK+OCouOCtuODnyzjg4jjgrfjg6bjgq0NCivjgqLjgrnjg54s44K344Ol44Km44OY44KkDQor44Ki44K944KmLOODpuOCqw0KK+OCouODgOODgSzjgq3jg6fjgqbjgqTjg4ENCivjgqLjg4jjg58s44OO44Oq44OS44OtDQor44Ki44OK44OfLOODpOOCueODkuOCtQ0KK+OCouODmSzjg57jgrXjgqrjg58NCivjgqLjg5ks44Oe44Kz44OIDQor44Ki44OZLOODnuOCs+ODiA0KK+OCouODnuODjizjg57jgrXjg4jjgrcNCivjgqLjg6Tjg5ks44K/44Ot44KmDQor44K/44Kx44Kt44K/LOODnuODiuODlg0KK+OCouODqeOCpCzjg57jgq0NCivjgqTjg4Tjg44s44Of44Kt44KqDQor44Ki44Oq44Kr44OvLOODqOOCt+ODjuODlg0KK+OCouODquOCvyzjgrPjgqbjgqTjg4ENCivjgqLjg7Pjgrjjg6Us44OE44Oo44K3DQor44Ki44Oz44OJ44KmLOODnuOCteOCrQ0KK+OCouODs+ODieOCpizjg6rjg6Xjgqbjgr8NCivjgqTjg4Hjg47jgrss44Kz44K644KoDQor44Kk44Kk44OM44OeLOODkuODreODpuOCrQ0KK+OCpOOCpuOCqCzjg6jjgrfjgqLjgq0NCivjgqTjgqzjg6njgrcs44Ki44Kt44KzDQor44Kk44Kx44Km44OBLOOCquODquOCqw0KK+OCpOOCseOCrOODnyzjg5/jg47jg6sNCivjgqTjgrHjg4As44K/44Kx44K3DQor44Kk44Oq44K/LOODpOOCueOCouOCrQ0KK+OCpOOCseODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqTjgrHjg4As44K344On44Km44Kk44OBDQor44Kk44Kx44OALOOCuOODreOCpg0KK+OCpOOCt+OCpCzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgrfjgqQs44OI44Oi44KzDQor44Kk44K344KkLOODiuOCquODnw0KK+OCpOOCt+OCquOCqyzjgrfjg7PjgqTjg4ENCivjgqTjg57jgqQs44K/44Kx44K3DQor44Kk44K344Kr44OvLOODquODp+OCpuODmOOCpA0KK+OCpOOCt+OCq+ODryzjg4jjg6Ljg47jg5YNCivjgqTjgrfjgrDjg60s44Om44Kt44OS44OtDQor44Kk44K344OALOOCv+ODhOODpuOCrQ0KK+OCpOOCu+OCrSzjgr/jgrHjgrcNCivjgqTjg4Hjgq0s44Oe44K144OIDQor44Kk44OB44OO44K7LOODiOODouODkuODrQ0KK+OCpOODgeODjuODn+ODpCzjg5Xjg5/jgr/jgrENCivjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44Kk44OI44KmLOODjuODquOCsw0KK+OCpOODiuODgCzjg6jjgrfjgr/jgqsNCivjgqTjg4rjg5As44K744Kk44Kk44OB44Ot44KmDQor44Kk44OP44OpLOOCreODqOOCv+OCqw0KK+OCpOODjuOCpuOCqCzjgqrjgrXjg6ANCivjgqTjg47jgqbjgqgs44OO44Oq44KzDQor44Kk44OO44Km44KoLOODiOODouODpuOCrQ0KK+OCpOODnuOCpOOCuuODnyzjgqLjg4TjgrcNCivjgqTjg54s44K144OI44KzDQor44Kk44Oe44OALOODn+OCqg0KK+OCpOODnuOCuizjg4Tjg6jjgrcNCivjgqTjg57jg6Djg6ks44Of44OE44OI44K3DQor44Kk44Oq44K/44OLLOOCv+OCr+OCuA0KK+OCpOODr+OCrSzjgr/jg4Tjg6QNCivjgqTjg6/jgrXjgq0s44Oe44OqDQor44Kk44Ov44K144KtLOODnuODig0KK+OCpOODr+OCueOCrizjg5/jgqsNCivjgqTjg6/jg4/jgrcs44Kk44OB44Ot44KmDQor44Kk44Ov44OW44OBLOODiuODmw0KK+OCpOODr+ODm+ODqizjgqLjgq3jg5LjgrMNCivjgqbjgqjjg4As44OO44OW44KoDQor44Km44Ko44Oe44OELOOCv+OCq+OCtw0KK+OCpuOCueOCpCzjg4jjg6LjgqTjg4ENCivjgqbjgrnjgqQs44Oe44K144OS44OtDQor44Km44OB44OALOOCq+OCquODqg0KK+OCpuODhOODnyzjg57jgq3jgrMNCivjgqbjg6Hjg4As44OS44OH44OO44OWDQor44Km44Op44OOLOODpOOCueODkuODrQ0KK+OCqOOCrOODryzjgr/jgrHjgrcNCivjgqjjgrbjgq0s44Ki44OE44KzDQor44Ko44OI44KmLOOCseODs+OCuA0KK+OCqOODjuODouODiCzjg4/jg6vjg5Ljg6kNCivjgqjjg47jg6Ljg4gs44Ki44Kt44OpDQor44Ko44OeLOOCouOCreOCsw0KK+OCqOODs+ODiSzjg5LjgrXjg47jg6oNCivjgqjjg7Pjg4ks44Oo44K344Oe44K1DQor44Kq44Kk44K/44OLLOODpuOCrQ0KK+OCquOCpizjg6jjgrfjg5Ljg60NCivjgqrjgqrjgqQs44Kr44Kq44OrDQor44Kq44Kq44KoLOOCouOCreODkuODrQ0KK+OCquOCrSzjgqLjg6QNCivjgqrjgqrjgq/jg5ws44OV44Of44OO44OqDQor44Kq44Kq44K144OvLOOCpOOCteOCqg0KK+OCquOCquOCteODryzjg5LjgrXjgrcNCivjgqTjg6/jgq3jg6os44Ov44K/44OrDQor44Kq44Kq44K544OfLOODouODiOODkuOCsw0KK+OCquOCquOCvyzjg5/jg4Tjg5Ljg60NCivjgqrjgqrjgr8s44K/44Kr44K3DQor44Kq44Kq44OE44KrLOOCouOCreODjuODqg0KK+OCquOCquODhOOCqyzjgrPjgqbjgqTjg4ENCivjgqrjgqrjg4Tjgqss44OI44Oi44OS44OtDQor44Kq44Kq44OE44KtLOOCuOODpeODsw0KK+OCquODiuOCqyzjg4DjgqTjgrnjgrENCivjgqrjgqrjg4vjgrcs44Oo44Km44KzDQor44Kq44Kq44OcLOODnuOCteOCsw0KK+OCquODnizjgq3jg6jjgrcNCivjgqrjg6Djg6ks44K344OO44OWDQor44Kq44Og44OpLOOCr+ODnw0KK+OCpOOCt+OCpCzjg4rjgqrjgrMNCivjgqrjgqrjg6Ljg6os44Oo44K344OS44OtDQor44Kq44Kq44Oi44OqLOODkuODreOCq+OCug0KK+OCquOCquODouODqizjg47jg5bjg5LjgrUNCivjgqrjgqrjg6/jg4As44K/44Kr44OV44OfDQor44Kq44Kr44KkLOODrOOCpA0KK+OCquOCq+OCtuOCrSzjg4jjg6Ljg5/jg4ENCivjgqrjgqvjgrbjgq0s44Kr44K644OS44OIDQor44Kk44Kx44OALOOCouOCreOCqg0KK+OCquOCq+ODjizjgqjjgqTjgqTjg4ENCivjgqrjgqvjg5ks44Km44Op44OpDQor44Kq44Kr44Oi44OILOOCqOODhOOCsw0KK+OCquOCrOODryzjg6bjgqbjgrMNCivjgqrjgqzjg68s44Ki44Kt44OpDQor44Kq44Ks44OvLOODquODp+OCpuOCpOODgQ0KK+OCquOCrOODryzjgq3jg6jjg44NCivjgqrjgqrjgqzjg6/jg6ks44Kv44OL44OP44OrDQor44Kq44Kv44OP44OpLOOCteODiOOCtw0KK+OCquOCr+ODpOODnizjg57jgrMNCivjgqrjgrDjg6ks44Ok44K544OP44OrDQor44Kt44K/44Og44OpLOODnuODquOCsw0KK+OCquOCtuODryzjgrfjgrLjg5/jg4QNCivjgqrjg4Es44Oi44OI44OS44OtDQor44Kq44OOLOOCv+OCq+OCtw0KK+OCquOCquODjizjg4HjgqsNCivjgqrjg47jg4fjg6ks44Kx44Oz44K3DQor44Kq44OQ44K/LOOCq+ODhOODqOOCtw0KK+OCquOCquODpOODnizjg4Hjgrrjg6sNCivjgqrjg7Pjgr8s44Oh44Kw44OfDQor44Kk44Ov44K/LOOCv+OCseOCtw0KK+OCq+OCpOODluOCrSzjg6bjg58NCivjgqvjgq3jg6Ljg4gs44Oe44OB44KzDQor44Kr44K244Kw44OBLOODnuOCteODjuODqg0KK+OCq+OCteOCtuOCrSzjg6jjgrfjg5Ljg60NCivjgqvjgrgs44K144Kq44OqDQor44Kr44K444Og44OpLOODj+ODq+ODig0KK+OCq+OCt+ODr+OCpCzjg47jg6rjgrMNCivjgqvjgrfjg6/jg5Djg6ks44OK44Kq44OkDQor44Kr44K/44Kv44OpLOODqOOCt+ODpuOCrQ0KK+OCq+OCv+ODpOODnizjg57jgqTjgrMNCivjgqvjg4Tjg44s44K/44Kr44OO44OqDQor44Kr44OJLOODgeOCqOOCsw0KK+OCq+ODiOOCpizjg47jg5bjg6bjgq0NCivjgqTjgr3jg44s44Of44OJ44OqDQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+OCq+ODiOOCpizjgrfjg5sNCivjgqvjg4jjgqYs44Ki44Kt44Oo44K3DQor44Kr44OI44OqLOOCseODs+OCuA0KK+OCq+ODiuOCteOCqyzjg6Ljg4jjg5Ljg60NCivjgqvjg4rjgrbjg68s44Of44OB44KzDQor44Kr44OK44Ok44OeLOOCq+ODiuOCsw0KK+OCq+ODjeOCsyzjg6bjgq3jgqoNCivjgqvjg43jgrMs44OI44Oi44KzDQor44Kr44ON44OALOODouODiOOCrQ0KK+OCrOODnyzjg5Ljg63jgrcNCivjgqvjg6Hjgqrjgqss44Oe44OK44OfDQor44Kr44Op44K144OvLOOCouOCreODhuODqw0KK+OCq+ODqeOCt+ODnizjgq3jg6jjg5Xjg58NCivjgqvjg6vjgqTjgrcs44Kk44K644OfDQor44Kr44Ov44KkLOODiuOCquODpuOCrQ0KK+OCq+ODr+OCpCzjgr/jgqvjgqrjg58NCivjgqvjg6/jgqvjg58s44Oe44K144OfDQor44Kr44Ov44Kr44OfLOOCseODs+OCvw0KK+OCq+ODr+OCuizjgqLjg4TjgrcNCivjgqvjg6/jg4rjgqss44Ko44Kk44K544KxDQor44Kr44Ov44OOLOOCv+OCq+OCtw0KK+OCq+ODr+ODkOOCvyzjg4rjgqrjg6QNCivjgqvjg6/jg5ks44K344ObDQor44Kr44Ov44OfLOOCt+ODs+OCuA0KK+OCq+ODs+ODkOOCtyzjg5/jg4HjgrMNCivjgqvjg7Pjg5Djg6ks44Ki44OE44K3DQor44Kt44K344KkLOODpOOCueOCqA0KK+OCreOCt+ODgCzjgqLjgq3jg5Ljg60NCivjgq3jgr/jgqzjg68s44Oe44K144KtDQor44Kt44K/44K344OtLOOCq+OCuuODqOOCtw0KK+OCreOCv+ODj+ODqSzjg6jjgrfjgqvjgroNCivjgq3jgr/jg6Djg6ks44Oo44Km44Kk44OBDQor44Kt44OJLOODgeOCqOOCsw0KK+OCreODjuOCt+OCvyzjg6/jgqvjgrMNCivjgqjjg4As44Ko44KkDQor44Kt44Og44OpLOODiuODhOOCsw0KK+OCreODoOODqSzjgrfjgrLjg6sNCivjgq3jg6Djg6ks44Ki44OE44K3DQor44Kt44Oo44OK44KsLOODjuODquODn+ODhA0KK+OCreODqOODn+ODpCzjgr/jgqvjgqoNCivjgq3jg6rjg6Qs44Oe44K144KtDQor44Kk44OI44KmLOODiOODouODpA0KK+OCr+OCt+ODgCzjgq3jg6fjgqbjgrMNCivjgq/jgrjjg6njgqrjgqss44OA44Kk44KtDQor44Kv44OL44Oi44OILOOCv+OCseODiOOCtw0KK+OCr+ODjOOCrizjg4jjgqrjg6sNCivjgq/jg5ws44Ki44OE44K3DQor44Kv44Oc44K144OvLOODnuOCteOCrQ0KK+OCr+ODnOOCvyzjgr/jgqvjg5Ljg60NCivjgq/jg6Hjg44s44OO44OW44KqDQor44Kk44K344Kw44OtLOOCv+ODreOCpg0KK+OCr+ODqSzjg4jjg6LjgqLjgq0NCivjgq/jg6njgrXjg68s44OV44Of44OP44OrDQor44Kv44Op44K/LOODquODp+OCpuOCsw0KK+OCr+ODreOCq+ODryzjgr/jgqvjg5LjgrUNCivjgq/jg63jgrks44Oe44Of44KzDQor44Kv44Ot44Ok44OK44KuLOOCteODs+OCt+ODreOCpg0KK+OCpOODiuODiOODnyzjg4DjgqTjgrnjgrENCivjgrPjgqTjgrEs44Oe44Om44KzDQor44Kz44Kk44KxLOODr+OCv+ODqw0KK+OCs+OCpOOCt+OCq+ODryzjg5Ljg4fjg6bjgq0NCivjgrPjgqTjgrrjg58s44OG44Or44OfDQor44Kz44Kk44K644OfLOODjuODquODnuOCtQ0KK+OCs+OCpOODhyzjg57jg4njgqsNCivjgrPjgrrjg54s44Oe44Kk44KzDQor44Kz44Oz44OOLOOCouODhOOCsw0KK+OCs+ODpOODnizjg4DjgqTjgq0NCivjgrPjg6os44K/44Kr44OS44OHDQor44Kr44OE44Kr44OvLOOCu+OCpOOCpOODgeODreOCpg0KK+OCs+OCrOODjizjgqLjgq3jg5Xjg58NCivjgrPjgrfjgqQs44OI44Oi44OS44OtDQor44Kz44K344Oe44OrLOODgOOCpOODiOOCrw0KK+OCs+OCueOCrizjg57jgrXjgrcNCivjgrPjgrvjgq0s44Oe44OK44OWDQor44Kz44K/44OLLOODpOOCpOODgQ0KK+OCs+ODgOODnizjgrvjg7PjgrgNCivjgrPjg4vjgrcs44K/44Of44KzDQor44Kz44OL44K3LOOCv+ODgOOCtw0KK+OCs+ODkCzjg4jjg6Ljgq0NCivjgrPjg5Djgr/jgrEs44Kx44Kk44Kk44OBDQor44Kz44OQ44Ok44K3LOOCouOCreOCsw0KK+OCs+ODkOODpOOCtyzjg6Tjgrnjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Oo44Km44K4DQor44Kz44OQ44Ok44K3LOODnuOCteODpA0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqoNCivjg4rjgqvjg6Djg6ks44Oo44Km44OY44KkDQor44Kz44OQ44Ok44K3LOODkuODreOCsw0KK+OCs+ODnOODqizjgq/jg4vjg5LjgrMNCivjgrPjg57jg4Qs44OE44Oo44K3DQor44Kz44Ok44OeLOODhOOCruOCqg0KK+OCs+ODs+ODjizjgr/jgqvjgrMNCivjgrXjgqTjg4jjgqYs44OI44Oi44KoDQor44K144Kk44OI44KmLOOCouODhOOCsw0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kk44OI44KmLOODleOCreOCsw0KK+OCteOCq+OCpCzjg4Hjg5Ljg60NCivjgrXjgqvjgqQs44Kt44Oo44K3DQor44K144Kr44KkLOODn+ODjeOCqg0KK+OCteOCq+OCreODkOODqSzjg4jjgrfjgq0NCivjgrXjgqvjgrDjg4Es44Kk44OB44Ot44KmDQor44Kk44Ov44K144KtLOODrOOCpOOCsw0KK+OCteOCq+ODouODiCzjg47jg6rjgqoNCivjgrXjgqvjg6Ljg4gs44Oo44Km44K4DQor44K144Kr44Oi44OILOOCuOODpeODs+OCsw0KK+OCteOCteOCrSzjgqvjg4Tjg4jjgrcNCivjgrXjgrXjgq0s44Kz44K144KvDQor44K144K144KtLOOCuOODpeODs+OCsw0KK+OCteOCteOCrSzjg6zjg4oNCivjgqTjg57jg4/jgrcs44OS44Ot44OfDQor44K144OE44OfLOOCv+OCq+ODpuOCrQ0KK+OCteODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjgrXjg4jjgqYs44Om44Km44K4DQor44K144OI44KmLOODiOODouOCr+ODiw0KK+OCteODiOOCpizjg57jg6rjgrMNCivjgrXjg4jjgqYs44Kz44Km44KtDQor44K144OI44KmLOODpuODn+OCsw0KK+OCteODjizjgrfjg44NCivjgqTjgrfjgrDjg60s44OS44OH44K/44KrDQor44K144Ov44Ok44OK44KuLOODn+ODhOODkuODrQ0KK+OCt+OCquOCvyzjgrHjgqTjgrnjgrENCivjgrfjgq0s44Om44Km44KzDQor44K344Ky44Kq44KrLOODrOOCpA0KK+OCt+OCsuOCvyzjg57jg6Ljg6sNCivjgrfjgrfjg4ks44Oq44KrDQor44K344OK44OALOODqOOCt+OCsw0KK+OCpOODhyzjg6jjgrfjg5Xjg58NCivjgrfjg5Djgr8s44Oo44Km44KzDQor44K344OQ44K/LOOCouODquODkuODiA0KK+OCt+ODkOOCvyzjg6rjg6fjgqYNCivjgrfjg5Djgr8s44K344Ol44Km44Kk44OBDQor44K344Oe44K6LOODouODiuODnw0KK+OCt+ODnuODgCzjg6jjgrfjgrXjg4ANCivjgrfjg57jgros44OE44ON44KqDQor44K344Of44K6LOODkuODh+OCv+ODgA0KK+OCt+ODn+OCuizjgq/jg4vjgqgNCivjgrfjg6Ljg4/jgrcs44OS44Ot44OO44OWDQor44K344Oi44Ok44OeLOOCq+OCquODqg0KK+OCuOODp+OCpizjgr/jgqvjgrcNCivjgqTjg4jjgqYs44Kt44On44Km44KzDQor44K544Ks44K/LOODjuODluOCqA0KK+OCueOCrOODpCzjgqLjgq3jg5Ljg60NCivjgrnjgq7jgr8s44K/44Kr44OS44OtDQor44K544Ku44OK44KrLOOCqOOCpOOCuA0KK+OCueOCruODouODiCzjg5Xjg5/jgqoNCivjgrnjgq7jg6Tjg54s44Kr44K644OKDQor44K544Ku44Ok44OeLOODpuOCpuOCuA0KK+OCueOCruODpOODnizjg4jjgqrjg6sNCivjgrnjgrLjg44s44K044KmDQor44K544K644KtLOOCs+OCpuOCuA0KK+OCueOCuuOCrSzjg57jgrXjg5Ljg60NCivjgrnjgrrjgq0s44OS44OH44Ki44KtDQor44K544K644KtLOOCs+OCpuOCuA0KK+OCueOCuuOCrSzjg6bjgqbjgrMNCivjgqTjg6/jgrXjgq0s44OI44Oi44OV44OfDQor44K544K644KtLOODqOOCpuOCsw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgqTjg4Hjgqvjg68s44Oq44KrDQor44K744KtLOODnuOCteODqOOCtw0KK+OCu+OCreOCsOODgSzjgrHjgqTjgrMNCivjgrvjgq3jg6Qs44Kx44Oz44K4DQor44K744KzLOOCseODs+OCv+ODreOCpg0KK+OCu+ODqSzjg5Ljg63jg6bjgq0NCivjgr3jgqws44Om44KrDQor44K944KsLOOCqOOCpOOCsw0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjgqvjg5/jg6Qs44Kr44K544OfDQor44K944Oz44KvLOODiOOCt+OCq+OCug0KK+OCv+OCq+OCrSzjg6bjg5/jgrMNCivjgr/jgqvjgq4s44Oo44K344OP44OrDQor44K/44Kr44K144KtLOODpOOCueOCqg0KK+OCpOOCseODgCzjg5Ljg4jjgrcNCivjgr/jgqvjgrfjg54s44Ok44K544OS44OIDQor44K/44Kr44OOLOOCseODs+OCpOODgQ0KK+OCv+OCq+ODjizjg5Ljg4fjgq0NCivjgr/jgqvjg44s44Oe44Kt44KzDQor44K/44Kr44OOLOODiuOCquODkuODrQ0KK+OCv+OCq+ODjizjg6jjgrfjg5LjgrUNCivjgr/jgqvjg4/jgrcs44Oo44K344KqDQor44K/44Kr44OP44K3LOOCs+OCpuODmOOCpA0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgr/jgqvjg4/jgrcs44Ks44KvDQor44K/44Kr44OP44K3LOOCq+ODig0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg47jg6oNCivjgr/jgqvjg57jg4Qs44OS44Ot44K3DQor44K/44Ks44OfLOODkuODiOOCtw0KK+OCv+OCq+ODn+OCtuODryzjg6rjg6Xjgqbjgq0NCivjgr/jgqvjg6njg4As44K344Oz44Kk44OBDQor44K/44Kt44Kr44OvLOOCqOODn+OCsw0KK+OCv+OCreOCtuODryzjgqTjg6/jgqoNCivjgqTjgqTjg44s44Om44OfDQor44K/44Kx44KkLOODqOOCt+ODkuODrQ0KK+OCv+OCseOCpuODgSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgr/jgrHjgqbjg4Es44K/44Kr44Kt44OoDQor44K/44Kx44Kt44K/LOODnuOCrQ0KK+OCv+OCseODiuOCqyzjg5Xjg5/jgqoNCivjgr/jgrHjg47jgqbjg4Es44Oq44On44Km44K4DQor44K/44Kx44OP44OKLOODleODnw0KK+OCpOODiOOCpizjg4jjgq/jgrMNCivjgr/jgrHjg6Ljg4gs44Oe44K144OrDQor44K/44Kx44Oi44OILOOCq+OCuuODkuOCsw0KK+OCv+OCtCzjgrnjgrnjg6ANCivjgr/jgrXjgqss44Oo44K344OO44OWDQor44K/44K444OeLOODkuODreOCq+OCug0KK+OCv+OCt+ODrSzjg6jjgrfjgrMNCivjgr/jgrfjg60s44K044KmDQor44K/44K/44OpLOOCteODiuOCqA0KK+OCv+ODgeODkOODiizjgqLjg6TjgrMNCivjgqTjg4Hjg6Djg6ks44K144OI44K3DQor44K/44OG44Kk44K3LOODpuOCrQ0KK+OCv+ODhuODjizjg5LjgrXjgrcNCivjgr/jg4bjg44s44OA44Kk44K+DQor44K/44OK44KrLOOCseODs+OCpOODgeODrQ0KK+OCv+ODiuOCqyzjg57jgrXjg5Ljg60NCivjgr/jg4rjgqss44OK44Kq44KzDQor44K/44OK44KrLOODiOOCquODqw0KK+OCv+ODiuOCqyzjgq3jg6fjgqbjgrMNCivjgr/jg4rjgqss44Ok44K544K3DQor44K/44OK44KrLOODqOOCpuOCsw0KK+OCrOODnyzjg57jgrPjg4gNCivjgr/jg4rjg58s44OE44ON44KqDQor44K/44OLLOODnuODnw0KK+OCv+ODi+OCsOODgSzjg6bjg5/jgrMNCivjg4rjgqvjgqrjgqss44Om44KtDQor44K/44OL44K244OvLOODqOOCt+ODjuODqg0KK+OCv+ODi+ODgCzjg47jg5bjg6bjgq0NCivjgr/jg4vjg6Ljg4gs44Ki44Kt44OfDQor44K/44OO44Kq44KrLOODn+OCqOOCsw0KK+OCv+ODkOOCvyzjg57jgrXjgq0NCivjgr/jg4/jg6ks44Of44Kr44KzDQor44K/44Og44OpLOODpuOCreODkuODrQ0KK+ODgeOCq+OCtuODryzjg47jg6rjg5Ljg4gNCivjg4Hjg44s44K/44Kr44OO44OWDQor44OB44OP44OpLOODkuOCteODjg0KK+ODgeODpeOCpizjgrXjg6TjgqsNCivjg4Hjg6Xjgqbjg54s44Kx44Kk44Kk44OBDQor44OE44Kr44OALOODkuODh+OCv+OCsQ0KK+ODhOOCq+ODouODiCzjg47jg5bjgr/jgqsNCivjg4Tjgqvjg6Ljg4gs44Om44K/44KrDQor44OE44OALOODiOODouODjuODqg0KK+ODhOODgeODgCzjg57jgrXjgqoNCivjg4Tjg4Hjg6Qs44K744Os44OKDQor44OE44OB44OkLOOCouOCrQ0KK+ODhOODjeOCrSzjgq/jg5/jgrMNCivjg4fjg5/jgrss44K/44Kr44K3DQor44OG44Op44Kq44KrLOOCq+ODiuOCsw0KK+OCpOOCuuODnyzjgqLjg4TjgrcNCivjg4jjgqYs44K744Kk44K4DQor44OI44K4LOODnuOCteOCsw0KK+ODiOOCt+OCquOCqyzjg5/jgrnjgroNCivjg4jjg4As44OP44OK44KoDQor44OI44OT44OK44KkLOOCouOCreOCsw0KK+ODiOODouOCpCzjg5/jg43jgq0NCivjg4jjg6Tjg54s44Ki44Kk44KzDQor44OI44Oo44K344OeLOOCs+OCpuOCpOODgQ0KK+ODiOODqOODgCzjgr/jgq/jg6QNCivjg4jjg6jjg4/jg54s44OI44K344KqDQor44OK44Ks44KoLOOCseODs+OCuA0KK+ODiuOCrOOCqCzjgrfjg5sNCivjg4rjgqvjgqos44OI44Oi44OS44OHDQor44OK44Kr44KqLOOCseODs+OCv+ODreOCpg0KK+ODiuOCq+OCuOODnizjg4jjg6LjgrMNCivjg4rjgqvjgrjjg54s44Oo44K344K/44KrDQor44OK44Kr44K444OeLOODhOODqOOCtw0KK+ODiuOCrOOCt+ODnizjg57jg6oNCivjg4rjgqzjgrss44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44K+44OOLOOCuOODpeODs+OCsw0KK+ODiuOCq+OCvyzjgqLjgrXjgrMNCivjg4rjgqzjgr8s44Oo44K344OS44KzDQor44OK44Ks44OILOODnuODquOCsw0KK+ODiuOCq+ODi+OCtyzjgrLjg7MNCivjg4rjgqvjg44s44Oo44K344KzDQor44OK44Ks44OOLOODkuODreOCrQ0KK+ODiuOCrOODjizjgr/jgqvjgrcNCivjg4rjgqzjg44s44OG44OE44OkDQor44OK44Ks44OP44OpLOODqOOCt+ODpuOCrQ0KK+ODiuOCq+ODkuOCrOOCtyzjg6HjgrDjg58NCivjg4rjgqvjg6Djg6ks44Kt44OV44OfDQor44Kk44OM44K644KrLOODiOODouOCq+OCug0KK+ODiuOCq+ODoOODqSzjg5Xjg5/jgq0NCivjg4rjgqvjg6Djg6ks44OS44OI44K3DQor44OK44Kr44Og44OpLOODn+ODmw0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqvjg4QNCivjg4rjgqvjg6Qs44Om44K/44KrDQor44OK44Kr44OkLOOCseOCpA0KK+ODiuODqeOCteOCrSzjg47jg5bjg4rjg6oNCivjg4rjg6rjgr8s44Oq44Ol44Km44K/DQor44OK44Oq44K/LOODqOOCt+OCsw0KK+ODi+OCpOODgCzjg4jjg6LjgqLjgq0NCivjg4vjgrfjgqvjg68s44Kk44Ov44KqDQor44OL44K344Og44OpLOODgeOCruODqg0KK+ODi+OCt+ODoOODqSzjgr/jgqTjgqTjg4ENCivjg4vjgrfjg6Djg6ks44Kr44OE44OfDQor44OL44K344Ok44OeLOODiOOCquODqw0KK+ODi+OCt+ODpOODnizjg47jg6rjg57jgrUNCivjg4vjg6Djg6ks44OS44Ot44Om44KtDQor44OL44OvLOODpuOCreOCqA0KK+ODjOODnuOCvyzjg4rjgqrjgrMNCivjg4zjg57jgr8s44K/44Kr44OS44OtDQor44OM44Oe44OALOODhOODqOOCtw0KK+ODjeOCruOCtyzjgqTjgrXjgqoNCivjg47jgrbjgq0s44K/44Kr44OK44KqDQor44OO44Ks44OfLOODpuOCqw0KK+ODjuODgCzjgr/jg4Tjg6QNCivjg47jg4/jg6ks44OE44Oo44K3DQor44OO44OW44OP44OpLOODpuOCpuOCsw0KK+ODj+OCrCzjg57jgrXjg4gNCivjg4/jgq7jg6/jg6ks44K/44OA44Kr44K6DQor44OP44Ku44Ov44OpLOOCq+ODhOODqQ0KK+ODj+OCt+OCuuODoSzjgr/jgqvjgrcNCivjg4/jgrfjg6Ljg4gs44K/44Kr44Om44KtDQor44OP44K344Oi44OILOOCveODqOOCqw0KK+ODj+OCt+ODouODiCzjgqLjgq3jg6kNCivjg4/jgrvjgqzjg68s44Oe44Kz44OIDQor44OP44K744Ks44OvLOODnuODpuODnw0KK+ODj+OCu+OCrOODryzjgqvjgrrjgr/jgqsNCivjg4/jgrvjg5ks44Oo44Km44OY44KkDQor44OP44K/LOODnuOCteODkuODrQ0KK+ODj+OCv+OCseODpOODnizjg4/jgrrjgq0NCivjg4/jgr/jg4rjgqss44Kk44Kv44K+44KmDQor44OP44K/44OOLOOCouODhOODqA0KK+ODj+ODg+ODiOODqizjgqLjgq3jg6jjgrcNCivjg4/jg4rjgrbjgq0s44K/44OE44OkDQor44OP44OK44OW44K1LOOCquOCteODoA0KK+ODj+ODiuODoOODqSzjgrTjgqYNCivjg5Djg5As44Ki44Kt44KzDQor44OP44Oe44K144KtLOODqOOCt+ODpuOCrQ0KK+ODj+ODnuODgCzjg4TjgrDjgq0NCivjg4/jg6Tjgrcs44Oe44OK44OWDQor44OP44Ok44K3LOOCv+OCseODkuODrQ0KK+ODj+ODpOOCtyzjg57jgrPjg4gNCivjg4/jg6Tjgrcs44Oq44On44KmDQor44OP44OpLOODnuOCteODkuODhw0KK+ODj+ODqeOCt+ODnizjgqrjgrXjg6ANCivjg4/jg6njg4As44OK44Kq44OkDQor44OP44Op44OALOODquOCqA0KK+ODj+ODq+OCv+ODiyzjgr/jgqvjg5Ljg60NCivjg5Ljgqzjgrfjg44s44Oe44KtDQor44OS44Ks44K344Ok44OeLOODpuOCpg0KK+ODkuOCsOODgSzjgrfjgrLjg5/jg4QNCivjgqTjgrfjg4/jg6ks44K/44Kx44Oo44K3DQor44OS44K444Kr44K/LOODkuODreOCouOCrQ0KK+ODkuODkyzjgr/jg4Tjg4gNCivjg5Ljg6fjgqbjgqgs44OI44Oi44OS44OtDQor44OS44Op44KkLOODkuODh+ODjuODqg0KK+ODkuODqeOCq+ODryzjgrjjg6Xjg7Pjg6QNCivjg5Ljg6njgq8s44K344Ky44KtDQor44OS44Op44K144OvLOOCseODs+OCuA0KK+OCpOODjuODj+ODqSzjgr/jgq/jg5Ljg60NCivjg5Ljg6njgr8s44Kv44OL44OE44KwDQor44OS44Op44OM44OeLOOCq+OCuuOCqg0KK+ODkuODqeODjizjgr/jg63jgqYNCivjg5Ljg6njg6Tjg54s44K344Ky44OrDQor44OS44Ot44Km44OBLOODrOOCpA0KK+ODkuODreOCquOCqyzjg6bjgqvjgrMNCivjg5Ljg63jgqvjg68s44Kx44Oz44K/44Ot44KmDQor44OV44Kv44KkLOODnuOCteOCrQ0KK+ODleOCr+ODgCzjgr/jgqvjg5Ljg60NCivjg5Xjgq/jg4As44K544K544OgDQor44Kz44OqLOOCreODp+OCpuOCsw0KK+ODleOCuOOCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg5XjgrjjgqQs44OA44Kk44K+DQor44Kk44OHLOODgeOCqOOCsw0KK+ODleOCuOOCpCzjg5Ljg63jgqvjgroNCivjg5Xjgrjjgqos44K/44Kr44Om44KtDQor44OV44K444Kq44KrLOOCseODs+OCpOODgQ0KK+ODleOCuOOCr+ODqSzjgq3jgq/jgrMNCivjg5XjgrjjgrXjg68s44Kz44Km44K4DQor44OV44K444K144OvLOOCseODs+OCv+ODreOCpg0KK+ODleOCuOOCt+OCsizjgrHjgqTjgqTjg4ENCivjg5Xjgrjjgr8s44Kx44Oz44Kk44OBDQor44Kk44OO44Km44KoLOODjuODquOCqg0KK+ODleOCuOODiCzjg6bjgqsNCivjg5Xjgrjjg4rjgqws44OK44Ks44Oe44K1DQor44OV44K444Ov44OpLOODiOODouODj+ODqw0KK+ODleOCuOODr+ODqSzjg4jjgrfjgq0NCivjg5Xjgrss44Kr44Kq44OrDQor44OV44Or44Kr44OvLOODnuOCteODn+ODhA0KK+ODleODq+OCq+ODryzjg6bjgqbjgqTjg4ENCivjgqTjgrfjgqQs44OA44Kk44K544KxDQor44OV44Or44K144OvLOODkuODreOCrQ0KK+ODleODq+OCvyzjgrPjgqbjgqTjg4ENCivjg5Xjg6vjgr8s44Oo44K344Ki44KtDQor44OV44Or44K/LOODiuOCquOCsw0KK+ODleODryzjg5/jgqoNCivjg5vjgrcs44Oe44Om44OfDQor44Ob44K944OALOOCseOCpOOCueOCsQ0KK+OCpOOCt+OCpCzjg5Ljg63jg5/jg4ENCivjg5vjg6rjgqvjg68s44OK44Kq44KzDQor44Ob44Oq44Kz44K3LOODkuODreOCouOCrQ0KK+ODm+ODs+ODgCzjg47jg5zjg6sNCivjg57jgqjjgqvjg68s44Or44OfDQor44Oe44Ko44OALOODn+ODiuOCsw0KK+ODnuOCqOODgCzjgr/jg63jgqYNCivjg57jgqjjg4As44K/44Kr44K3DQor44Oe44Ko44OOLOOCteODiOOCtw0KK+ODnuOCrSzjg4rjg58NCivjg57jgq3jgr7jg44s44K144Ok44KrDQor44Oe44Kt44K/LOOCq+ODhOODpuOCrQ0KK+ODnuOCreODjizjg6Djg43jgq0NCivjg57jgrXjgq0s44Om44K644OrDQor44Oe44K544K244KtLOODqOOCt+OCsw0KK+ODnuOCueODgCzjg6bjgqbjgrnjgrENCivjg57jgrnjg5bjg4Es44Kr44K644OS44OtDQor44Oe44OB44OALOODn+ODpuOCrQ0KK+ODnuODhOOCpuODqSzjgqjjg6rjgrMNCivjg57jg4Tjgqvjg68s44Oi44OI44OoDQor44Oe44OE44K244KtLOODgOOCpOOCueOCsQ0KK+ODnuODhOOCtuOCrSzjg57jgq0NCivjg57jg4Tjgrfjgr8s44Kz44K644KoDQor44Oe44OE44K344OeLOODkuODh+OCqg0KK+ODnuODhOODgCzjgrfjgrLjg6bjgq0NCivjg57jg4Tjg4As44K/44Kr44K3DQor44Oe44OE44OALOOCouODpuODnw0KK+ODnuODhOODiuOCrCzjgr/jgqvjgrcNCivjg57jg4Tjg4rjg58s44Kz44Km44K4DQor44Oe44OE44OQ44OpLOODjuODquODleODnw0KK+ODnuODhOODkOODqSzjgrXjg4jjg58NCivjg57jg4Tjg5/jg6Qs44Kx44Oz44Kk44OBDQor44Oe44OE44Oi44OILOODnuOCs+ODiA0KK+ODnuODhOODouODiCzjgqvjgrrjg5Ljg4cNCivjg57jg4Tjg6Ljg4gs44K/44Kx44OV44OfDQor44Oe44OE44Oi44OILOODpuOCpuOCueOCsQ0KK+ODnuODhOODouODiCzjg5Ljg63jgrMNCivjg57jg4Tjg6Tjg54s44OB44K644KzDQor44Oe44OK44OZLOODquODp+OCpuOCueOCsQ0KK+ODnuODq+ODpOODnizjg57jgrXjgq0NCivjg57jg6vjg6Tjg54s44OS44Ot44KtDQor44Of44Km44OpLOODpOOCueODn+ODhA0KK+ODn+OCr+ODiyzjg5Xjg5/jg4rjg6oNCivjg5/jgrrjgqvjg58s44OS44OH44KtDQor44Of44OE44OP44K3LOODjuODquODqOOCtw0KK+ODn+ODiuODiCzjg5Ljg63jg6bjgq0NCivjg5/jg4rjg58s44K/44Kr44Om44KtDQor44Of44OV44ONLOODqOOCt+ODkuODrQ0KK+ODn+ODpOOCrOODryzjg57jgrXjgrcNCivjg5/jg6TjgrXjgqss44K344OO44OWDQor44Of44Ok44K244OvLOOCuOODpeODsw0KK+ODoOODqeOCqizjg57jgrXjgrMNCivjg6Djg6njgqvjg58s44Oe44K144OfDQor44Og44Op44K/LOOCseODs+OCueOCsQ0KK+ODoOODqeODnuODhCzjg47jg5bjg6bjgq0NCivjg6Djg6njg6Tjg54s44OI44K344KqDQor44Og44Op44Ok44OeLOOCq+OCuuOCouOCrQ0KK+ODoeOCsOODrSzjg4jjg6Ljg5LjgrMNCivjg6Ljg4Hjgrrjgq0s44Kz44Km44Kk44OBDQor44Oi44OI44Oo44K3LOODnuOCs+ODiA0KK+ODouODouOCuizjg6bjgq3jgrMNCivjg6Ljg6os44Oe44K144KtDQor44Oi44OqLOODpOOCueOCv+OCqw0KK+ODouODqizjg5/jg5sNCivjg6Ljg6os44K/44Oe44OoDQor44Oi44Oq44K/LOOCseODs+OCuA0KK+ODouODquOCvyzjgrHjg7PjgqTjg4Hjg60NCivjg6Ljg6rjg44s44Of44OB44KqDQor44Oi44Oq44Oi44OILOOCv+OCq+OCtw0KK+ODouODquODouODiCzjg6bjgq3jgrMNCivjg6Ljg6rjg6Tjg54s44Kr44K644Om44KtDQor44Oi44Oq44Ov44KtLOODleODn+OCouOCrQ0KK+ODpOOCrizjgrHjgqTjgrnjgrENCivjg6Tjgq4s44Om44K/44KrDQor44Ok44Kv44K344K4LOOCquOCteODoA0KK+ODpOOCsyzjg4Tjg6jjgrcNCivjg6Tjgrbjg68s44Kx44Oz44Kk44OBDQor44Ok44K544OeLOOCseODs+OCuOODreOCpg0KK+ODpOODiOOCtCzjgqLjgqQNCivjgqzjg7Ms44OP44OK44KoDQor44Ok44OK44OWLOOCteODiOOCtw0KK+ODpOODjizjgrfjg6XjgqbjgrPjgqYNCivjg6Tjg5bjgr8s44OS44Ot44K3DQor44Ok44Oe44Km44OBLOODpuOCreOCsw0KK+ODpOODnuOCpuODgSzjg5/jg4Tjg4/jg6sNCivjg6Tjg57jgrDjg4Es44Oq44On44KmDQor44Ok44Oe44Kw44OBLOODpOOCueODnuOCtQ0KK+ODpOODnuOCsOODgSzjg4rjgqrjgrMNCivjgrjjg4DjgqQs44OS44Ot44Ki44KtDQor44Ok44Oe44Kw44OBLOOCqOOCpOOCvw0KK+ODpOODnuOCsOODgSzjgrvjgqTjgrMNCivjg6Tjg57jgrDjg4Es44Kz44Km44K4DQor44Ok44Oe44K144KtLOODpOOCueODkuODrQ0KK+ODpOODnuOCteOCrSzjgrjjg6Xjg7MNCivjg6Tjg57jgrbjgq0s44Ki44OE44OkDQor44Ok44Oe44K344K/LOOCq+OCuuODkuODrQ0KK+ODpOODnuOCt+OCvyzjg57jgrXjg4gNCivjg6Tjg57jgrfjgr8s44K/44Kv44OkDQor44Ok44Oe44OALOOCv+OCq+OCtw0KK+ODpOODnuODgCzjg6TjgrnjgqoNCivjg6Tjg57jg4As44K/44OE44K4DQor44Ok44Oe44OALOODpOOCueODkuOCtQ0KK+ODpOODnuODgCzjgq3jg6fjgqbjgrMNCivjg6Tjg57jg4jjg6Qs44Oe44Oq44KzDQor44Ok44Oe44OK44KrLOODkuODleODnw0KK+ODpOODnuODiuOCtyzjgrjjg6Xjg7MNCivjg6Tjg57jg4vjgrcs44OK44Kq44KtDQor44Ok44Oe44Oi44OILOODgeOCqw0KK+ODpOODnuODouODiCzjgqvjgrrjg6QNCivjg6Tjg57jg6Ljg4gs44Oq44KrDQor44Ok44Oe44Oi44OILOODnuODiuODnw0KK+ODpOODnuODouODiCzjg6jjgqbjgrnjgrENCivjg6Tjg57jg6Ljg4gs44K/44OE44OkDQor44Oo44Kz44K/LOODiOODouODleODnw0KK+ODqOOCs+OCvyzjgrfjgrLjg6bjgq0NCivjg6jjgrPjgr8s44Kr44OoDQor44Oo44Kz44OGLOOCu+OCpOOCpOODgeODreOCpg0KK+ODqOOCt+OCquOCqyzjgr/jgqvjgrcNCivjg6jjgrfjgqrjgqss44Ki44OE44K3DQor44Oo44K344Kq44KrLOODkuODh+ODiA0KK+ODqOOCt+OCq+ODryzjgr/jgq/jg6QNCivjg6jjgrfjgqvjg68s44Oq44On44Km44Kk44OBDQor44Oo44K344OALOODnuOCteODpuOCrQ0KK+ODqOOCt+ODgCzjgrjjg6Xjg7PjgrMNCivjg6jjgrfjg4As44Ki44Kr44ONDQor44Oo44K344OOLOODn+ODjuODqw0KK+ODqOOCt+ODnyzjg57jgrXjg6bjgq0NCivjg6jjgrfjg6Djg6ks44Kv44OL44OS44KzDQor44Oo44OALOODjuODquODkuOCtQ0KK+ODqOODjeOCtuODryzjgqLjg6njgr8NCivjg6rjg6Xjgqbjg4gs44Kx44KkDQor44Ov44Kr44OE44KtLOOCt+ODs+OCueOCsQ0KK+ODr+OCreOCtuOCqyzjgrfjg7Pjg6QNCivjg6/jgq3jgr8s44Om44Km44K544KxDQor44Ov44Kt44K/LOODiOOCquODqw0KK+ODr+OCreODouODiCzjgrfjg6fjgqbjgrMNCivjg6/jg4As44K/44Kr44K3DQor44Ov44OALOOCouOCreOCsw0KK+ODr+OCv+OCuyzjg4DjgqQNCivjg6/jgr/jg4rjg5ks44Ok44K544OP44OrDQor44Ov44K/44OK44OZLOOCveOCpg0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44OK44Kq44KzDQor44Ov44K/44OK44OZLOODqOOCt+OCv+OCqw0KK+OCreODjuOCt+OCvyzjg6bjgqbjgrMNCivjgqLjgqrjgq0s44Oo44K344OS44KzDQor44Ok44OK44Ku44OP44OpLOOCreODqOOCtw0KK+OCouODnuOCsyzjg6jjgrfjgqoNCivjgrPjg7Pjg4njgqYs44K344Kq44OqDQor44K344Op44Kr44OvLOODqOOCpuOCsw0KK+OCs+ODpOODnizjgr/jgqvjg6bjgq0NCivjgrPjg7Pjg4ks44Oe44Kz44OIDQor44Oi44OqLOODiOOCt+OCqg0KK+OCquOCquODjizjg5Ljg4fjg6jjgrcNCivjg57jg44s44Ki44KtDQor44OK44Ks44OOLOOCueODn+OCsw0KK+OCteODiOOCpizjgqjjg6oNCivjg5/jg6Tjgrbjgq0s44Ki44OkDQor44Kq44Ks44OvLOOCouOCreODqQ0KK+OCreODoOODqSzjg5Ljg4fjg4jjgrcNCivjg6jjgrPjgqos44Kx44Oz44K4DQor44Km44OB44Og44OpLOODgeODiuODhA0KK+OCtOOCt+ODnizjg6rjg6XjgqbjgqTjg4ENCivjgrXjgqjjgq0s44Of44KtDQor44OK44Kr44K444OeLOODkuODreODnw0KK+OCpOODr+ODnyzjg5/jg5sNCivjgqjjgrIs44Os44KkDQor44Km44Oh44K+44OOLOOCq+OCquODqg0KK+OCteOCr+ODqeOCpCzjg57jg58NCivjg6/jgr/jg4rjg5ks44Oe44OkDQor44OK44Ks44KkLOOCt+ODp+OCpuOCtA0KK+OCquOCveOCrOODnyzjgqLjg4Tjg5LjgrMNCivjgq/jg63jgqvjg68s44Oe44K144Oo44K3DQor44K/44Kr44K544KrLOODqOOCt+OCq+OCug0KK+OCquODkOOCvyzjg57jgrXjg5LjgrMNCivjgrfjg6njgqQs44Om44K/44KrDQor44Oe44OE44Km44OpLOODnuOCs+ODiA0KK+ODiuOCq+OCtuODryzjg6jjgrfjg5LjgrUNCivjg57jg4TjgqQs44Om44Km44Kk44OBDQor44Kz44K744KtLOOCs+OCpuOCv+ODreOCpg0KK+ODhOOCq+ODgCzjg47jg6rjg6bjgq0NCivjg4bjg6njgq/jg6ks44Oo44Km44K4DQor44OL44OY44KkLOOCreODqOOCtw0KK+OCq+ODr+ODoOODqSzjgr/jgqvjg6bjgq0NCivjg5LjgrQs44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOOCreODqOODjuODqg0KK+ODleODq+OCvyzjgr/jgqvjg6bjgq0NCivjg6Ljg4Hjgrrjgq0s44OS44Ot44Om44KtDQor44Kq44Kr44OALOOCv+ODhOOCtw0KK+OCteOCpOODiOOCpizjg6bjgq3jgrMNCivjgqvjg6/jg4/jg6ks44Om44KtDQor44K544K644Kr44KxLOOCv+OCr+ODpA0KK+OCpOODiOOCpizjgqLjg4TjgrMNCivjgqTjgrfjgrrjgqss44OS44K144OIDQor44K/44OZ44KkLOODpOOCueODnuOCtQ0KK+OCtOODiOOCpizjgqLjgq3jg5Ljg60NCivjgrfjg6LjgrXjgqss44OI44Kq44OrDQor44Kr44Ov44KkLOOCq+OCuuODng0KK+ODr+OCv+ODiuODmSzjg6jjgrfjgqvjgroNCivjgrnjgrrjgq0s44Kk44OE44OV44OfDQor44Oe44OE44Ok44OeLOODkuODreOCtw0KK+ODj+ODqSzjg6rjg6fjgqbjg5jjgqQNCivjg4Tjg5Djgq0s44K744Kk44Kk44OB44Ot44KmDQor44Ok44K544KkLOOCv+OCq+ODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgrHjg7Pjgr/jg63jgqYNCivjgqrjgqvjg5ks44K144Om44OqDQor44Kq44Ks44OvLOOCt+ODp+OCpuOCsw0KK+ODpOODnuOCsOODgSzjgrXjg4jjgrcNCivjg5Xjgrjjgqvjg68s44Kx44Oz44K4DQor44Kk44OK44Ks44KtLOODkuODh+ODiOOCtw0KK+ODgeOCvizjg4jjgrfjg5LjgrMNCivjg4/jg4rjg4As44K444Ol44Oz44OkDQor44Kq44Kq44KzLOODouODiOOCouOCrQ0KK+OCquOCquOCr+ODqSzjgrnjg5/jg5Ljg60NCivjg57jg4Tjgqos44OE44OI44OgDQor44Ko44Oz44OJLOODnuODquOCsw0KK+ODm+ODquODmSzjg6Ljg4jjgrgNCivjgqvjg4Qs44OG44OE44OS44OtDQor44Kq44K/44KrLOODnuOCteODjuODlg0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjg6QNCivjg6Djg6njg6Tjg54s44Om44Km44KzDQor44Oo44K344Kq44KrLOOCteODpuODqg0KK+OCq+OCpCzjg6jjgrfjgqgNCivjgr/jgqvjg4/jgrcs44Ov44Kr44KzDQor44Kw44Oz44KyLOOCv+ODnuODqA0KK+ODpOODjizjgr/jgqQNCivjg4/jg6Tjgrcs44Ki44Ok44KzDQor44Of44Km44OpLOODnuODiuODnw0KK+OCouOCquODpOOCrizjg5Ljg63jgr/jgqsNCivjgr/jgqvjg4As44OI44Kv44OS44KzDQor44OM44Oe44K/LOOCseODs+OCuA0KK+OCq+OCv+OCquOCqyzjgqvjgqrjg6sNCivjgrfjg5/jgros44K144OB44KzDQor44K344Of44K6LOODpuOCpuOCsw0KK+ODnuODhOODoOODqSzjgr/jg63jgqYNCivjgqrjg6rjg4gs44K144OI44K3DQor44Kz44K/44OLLOODleODn+ODkuOCsw0KK+OCquOCquODj+OCtyzjg6rjg6fjgqYNCivjgqvjg7Pjgrvjgq0s44Kx44Kk44KzDQor44Kt44K/44Og44OpLOOCs+OCpuOCv+ODreOCpg0KK+OCteOCr+OCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg6jjgrfjg4As44K/44Kr44K3DQor44Kz44OP44OpLOODiOOCquODqw0KK+OCpOODj+ODqSzjgrHjgqTjgrMNCivjg4Tjgrjjgqbjg6ks44Kr44K644OS44OtDQor44OK44Kr44Og44OpLOODhOODqOOCtw0KK+OCouOCquOCrSzjgqLjgq3jgrMNCivjgqLjgqrjg6Tjg54s44OA44Kk44K544KxDQor44Ki44Kr44Kk44KxLOODkuODreODnw0KK+OCouOCq+ODhCzjgrjjg6Xjg7MNCivjgqLjgq3jg4/jg6ks44K344Ol44Oz44K544KxDQor44Ki44Kt44Oi44OILOODnuODqg0KK+OCouOCteOCr+ODqSzjgr/jgqvjgrcNCivjgqLjgrXjg44s44Oq44On44KmDQor44Ki44OT44OrLOOCouOCpOOCsw0KK+OCouODmSzjg47jg6rjgr/jgqsNCivjgqLjg5ks44Om44KtDQor44Ki44OZLOOCv+OCr+ODpA0KK+OCouODmeOCq+ODryzjg4jjg6LjgrMNCivjgqLjg6njgqQs44OO44Oq44OS44OIDQor44Ki44Op44KkLOODnuOCteODiOOCtw0KK+OCouODqeOCq+ODryzjg5Ljg63jgq0NCivjgqLjg6njgq0s44K/44Kr44Ki44KtDQor44Ki44Op44KtLOODkuODreOCtw0KK+OCouODquOCqCzjg57jgrXjg5Xjg58NCivjgqLjg7Pjg4njgqYs44Kx44Oz44K/44Ot44KmDQor44Kk44Kk44OALOOCuOODpeODs+OCpOODgQ0KK+OCpOOCseODgCzjgrfjg6Xjg7PjgrnjgrENCivjgqTjgrHjg4As44K/44Kx44K3DQor44Kk44Kx44OALOODiuOCquOCrQ0KK+OCpOOCt+OCpCzjg47jg5bjg6TjgrkNCivjgqTjgrfjgqQs44OP44Ok44OIDQor44Kk44K344Ks44KtLOODn+ODpOOCsw0KK+OCpOOCt+OCq+ODryzjg6bjgq0NCivjgqTjgrfjgqvjg68s44Om44Of44KzDQor44Kk44K344K244OvLOODhuODq+OCrQ0KK+OCpOOCt+OCuuODnyzjgrfjg6Xjgqbjg5jjgqQNCivjgqTjgrfjgrzjgq0s44OA44Kk44K544KxDQor44Kk44K344OALOODpuOCpuOCuA0KK+OCpOOCt+ODgCzjg6zjgqTjgrMNCivjgqTjgrfjg4As44Oo44K344K/44KrDQor44Kk44K344OFLOOCv+OCq+OCtw0KK+OCpOOCt+ODj+ODqSzjg5Xjg5/jg4rjgqoNCivjgqTjgrfjg57jg6ss44K344Ol44Km44Kk44OBDQor44Kk44K/44OLLOOCv+OCq+OCtw0KK+OCpOOCv+ODj+ODqSzjg5LjgrXjg4TjgrANCivjgqTjg4Hjg54s44OK44Kq44OIDQor44Kk44OI44KmLOODpuOCpuOCsw0KK+OCpOODiOOCpizjg6bjgqbjgqTjg4Hjg63jgqYNCivjgqTjg4jjgqYs44OS44Ot44Kr44K6DQor44Kk44OI44KmLOOCouOCreOCsw0KK+OCpOODiOOCpizjgrfjgrrjgrMNCivjgqTjg4jjgqYs44Kq44KtDQor44Kk44OI44KmLOODhOODqOOCtw0KK+OCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgqTjg4rjgqzjgq0s44K344Ky44KtDQor44Kk44OK44OfLOODrOOCqg0KK+OCpOODjizjg5/jgq0NCivjgqTjg47jgqbjgqgs44Oe44K144KtDQor44Kk44OO44Km44KoLOOCv+OCq+OCtw0KK+OCpOODnuOCqizjgrjjg6Xjg7Pjg5rjgqQNCivjgqTjg57jg4As44Kx44Oz44Kk44OBDQor44Kk44Ov44Kr44OfLOODpuOCpuOCueOCsQ0KK+OCpOODr+OCr+ODqSzjg6bjgr/jgqsNCivjgqTjg6/jgrbjgq0s44OS44Ot44K/44KrDQor44Kk44Ov44K/LOOCs+OCpuOCuA0KK+OCpOODr+ODouODiCzjg5Ljg63jgq0NCivjgqbjgqjjgrnjgq4s44K444Ol44Oz44KzDQor44Km44Ko44OALOODnuOCteODpA0KK+OCpuOCqOOCv+OCqyzjgrfjg6fjgqbjgrgNCivjgqbjgqjjg4Es44Oe44OqDQor44Km44Ko44OOLOOCseODs+OCuA0KK+ODkuODquODpeOCpizjgrPjgqbjgrgNCivjgqbjgqjjg6Djg6ks44Oe44K144OS44OtDQor44Km44OB44OALOOCouODpA0KK+OCpuODgeODgCzjgq3jgqTjg4ENCivjgqbjg4Hjg4/jgrcs44K044KmDQor44Km44OB44Ok44OeLOODrOODnw0KK+OCpuODoeODj+ODqSzjg4rjg4TjgrMNCivjgqbjg6rjgr/jg4ss44Oe44K544OfDQor44Kq44Kk44Kr44OvLOOCseODs+OCv+ODreOCpg0KK+OCquOCquOCpCzjg4jjg6Ljg6bjgq0NCivjgqrjgqrjgqQs44Kr44Oo44KzDQor44Kq44Kq44Kk44K3LOODnuOCteODkuOCsw0KK+OCquOCpuODgSzjgrHjg7Pjgrfjg7MNCivjgqrjgqrjgqgs44OA44Kk44K544KxDQor44Kq44Kq44Kq44KrLOODnuOCteODkuODrQ0KK+OCquOCquOCq+ODryzjg57jgrXjg6QNCivjgqrjgqrjgq/jg5ws44Oq44On44KmDQor44Kq44Kq44Kv44OeLOODjuODquODkuODrQ0KK+OCquOCquOCvyzjg47jg5bjg5Ljg60NCivjgqrjgqrjgr/jg4ss44K344K644KrDQor44Kq44Kq44OELOODgeOCqA0KK+OCquOCquODhCzjg4bjg4Tjg6QNCivjgqrjgqrjg4Tjgqss44K444Ol44OzDQor44Kq44Kq44OE44KrLOODhuODq+ODkuODrQ0KK+OCquOCquODhOOCqyzjgqLjgq3jg6kNCivjgqrjgqrjg4Tjgqss44Kx44KkDQor44Kq44Kq44OE44OcLOODnuOCteODn+ODhA0KK+OCquOCquODj+OCvyzjgqLjgq3jgrMNCivjgqrjgqrjg57jgrUs44K/44OE44KqDQor44Kq44Kq44OkLOOCseOCpOOCuA0KK+OCquOCquODpOODnizjgr/jgqTjgrnjgrENCivjgqrjgqss44K/44Ot44KmDQor44Kq44Kr44K444OeLOODn+ODhOODjuODlg0KK+OCquOCq+ODgCzjgr/jg4Tjg6QNCivjgqrjgqvjg4As44OB44OS44OtDQor44Kq44Kr44OALOODjuODquODqOOCtw0KK+OCquOCq+ODgCzjgrXjg4jjgrcNCivjgqrjgqvjg4As44Or44OfDQor44Kq44Kr44OP44K/LOOCv+ODhOODpA0KK+OCquOCq+ODmSzjg6Tjgrnjg57jgrUNCivjgqrjgqvjg6Ljg4gs44OS44K144K3DQor44Kq44Kr44Oi44OILOODqOOCt+ODjuODqg0KK+OCquOCq+ODouODiCzjg5Ljg4fjgq0NCivjgqrjgqzjg68s44Kx44Kk44KzDQor44Kq44Ks44OvLOODgOOCpOOCueOCsQ0KK+OCquOCr+ODgCzjgrPjgqbjg5jjgqQNCivjgqrjgq/jg4gs44K144OBDQor44Kq44Kv44OK44KrLOOCu+OCpOOCtw0KK+OCquOCsOODqSzjgr/jg63jgqYNCivjgqrjgrbjgq0s44OO44OW44Ki44KtDQor44Kq44K144OALOODkuODreOCtw0KK+OCquOCtuODryzjg5Ljg63jg58NCivjgqrjgrjjg54s44Oe44Kz44OIDQor44Kq44K444OeLOODnuOCteOCtw0KK+OCquODkOODqSzjg6bjg6rjgrMNCivjgqvjgqTjg4jjgqYs44K/44Kr44K3DQor44Kr44Kt44Kv44OpLOODnuOCteODpuOCrQ0KK+OCq+OCreODouODiCzjg4bjg4Tjg6QNCivjgqvjgq8s44Kz44Km44K4DQor44Kr44Ky44Ok44OeLOOCv+ODgOODkuOCtQ0KK+OCq+OCuOODiuOCrCzjg6bjgr/jgqsNCivjgqvjgrfjg54s44Oo44K344OS44KzDQor44Kr44K/44Kq44KrLOOCv+OCq+ODkuODrQ0KK+OCq+OCv+OCruODqizjg4rjg4TjgrMNCivjgqvjgr/jg6Tjg54s44Oe44OS44OIDQor44Kr44OJLOODpuODn+OCsw0KK+OCq+ODiOOCpizjg6rjg4TjgrMNCivjgqvjg4jjgqYs44Oq44On44KmDQor44Kr44OI44KmLOODleODnw0KK+OCq+ODiOOCpizjg6zjgqTjgrMNCivjgqvjg4jjgqYs44K544Of44OsDQor44Kr44OI44KmLOODkuODreOCtw0KK+OCq+ODiOOCpizjg4bjg4Tjg6QNCivjgqvjg4jjgqYs44K144OI44K3DQor44Kr44OI44KmLOODr+OCv+ODqw0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg4rjg6Ljg4gs44Ki44Kt44KzDQor44Kr44OK44OkLOOCt+ODs+ODpA0KK+OCq+ODjeOCsyzjg6jjgrfjgqvjgroNCivjgqvjg43jg6Ljg6os44Om44KmDQor44Kr44OvLOODqOOCt+OCq+OCug0KK+OCq+ODr+OCpCzjgrPjgqbjgrgNCivjgqvjg6/jgqQs44OP44Or44KzDQor44Kr44Ov44Kr44OfLOODnuOCteOCquODnw0KK+OCq+ODr+OCsOODgSzjg4HjgqvjgrMNCivjgqvjg6/jgrDjg4Es44K344Ol44Oz44K544KxDQor44Kr44Ov44Kw44OBLOODiOOCt+ODkuOCsw0KK+OCq+ODr+OCsOODgSzjg5Ljg63jgq0NCivjgqvjg6/jgrDjg4Es44K544K544OgDQor44Kr44Ov44K044Kk44K3LOOCv+OCq+ODpuOCrQ0KK+OCq+ODr+OCt+ODnizjgrTjg63jgqYNCivjgqvjg6/jg4os44K/44Kx44K3DQor44Kr44Ov44OO44OZLOODpuOCreOCsw0KK+OCq+ODs+ODjizjg6Tjgrnjg47jg5YNCivjgq3jgq/jg4Es44OO44K+44OfDQor44Kt44K3LOODrOOCpOOCsw0KK+OCreOCt+ODouODiCzjgr/jgrHjgrcNCivjgq3jgrfjg60s44Ok44K544K3DQor44Kt44K/44KqLOOCt+ODsw0KK+OCreOCv+ODj+ODnizjgr/jgrHjg47jg6oNCivjgq3jgr/jg6Djg6ks44Oo44K344OO44OqDQor44Kt44OJ44Kz44OtLOOCouODhOOCtw0KK+OCreODoOODqSzjgrPjgqbjgqTjg4ENCivjgq3jg6Djg6ks44Oe44Kz44OIDQor44Kt44Og44OpLOOCouOCpOOCsw0KK+OCreODquOCouOCsSzjgqjjgqTjgrXjgq8NCivjgq/jgq3jg6Ljg4gs44OI44K344KtDQor44Kv44OcLOOCr+ODi+ODpuOCrQ0KK+OCr+ODnOOCvyzjg57jg6bjg58NCivjgq/jg57jgq/jg6ks44Oq44KrDQor44Kv44Oe44OALOODpuOCpuOCueOCsQ0KK+OCr+ODnuODouODiCzjg5Ljg63jgqLjgq0NCivjgq/jg6Es44Oe44K144OS44OIDQor44Kv44Op44OkLOOCs+OCpuODmOOCpA0KK+OCr+ODquODr+OCrSzjg57jgq3jgrMNCivjgq/jg6/jg5Djg6ks44Om44Kr44OqDQor44K044KmLOODhuODq+OCqg0KK+OCs+OCpOOCsSzjgrXjg4jjg6sNCivjgrPjgqTjgrEs44Os44Kq44OKDQor44Kz44K144KrLOODoOODhOODnw0KK+OCs+OCpuODgCzjgqLjg6TjgrMNCivjgrPjgqws44Kz44Km44Kk44OBDQor44Kz44Kv44OcLOODouODouOCqA0KK+OCs+OCr+ODqSzjg6rjgqgNCivjgrPjgrQs44Oq44Ol44Km44K4DQor44Kz44K144KtLOODquODp+OCpuOCueOCsQ0KK+OCs+OCuOODnizjg5Ljg63jgrMNCivjgrPjg4fjg6ks44Kr44K644OIDQor44K044OI44KmLOODgOOCpOOCueOCsQ0KK+OCtOODiOOCpizjgrHjgqTjgrMNCivjgrTjg4jjgqYs44Kr44K644OO44OqDQor44Kz44OP44K/LOODgeODqOODnw0KK+OCs+ODkOODpOOCtyzjg4jjgqrjg6sNCivjgrPjg5Djg6Tjgrcs44OK44Ob44KzDQor44Kz44Oe44OE44OQ44OpLOODn+ODmw0KK+OCs+ODn+ODpCzjg4jjgq/jgrMNCivjgrPjg5/jg6Tjg54s44Oe44K144Oo44K3DQor44Kz44Ok44OK44KuLOOCt+ODs+ODpA0KK+OCs+ODpOODnizjgr/jgqvjgrMNCivjgrPjg7Pjg4ks44OO44OW44KrDQor44Kz44Oz44OOLOODjuODluODmw0KK+OCteOCpOODiOOCpizjg5Ljg63jg5Ljg4cNCivjgrXjgqTjg4jjgqYs44K344Ky44OrDQor44K144Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCteOCpOODiOOCpizjgrHjg7PjgrQNCivjgrXjgqTjg4jjgqYs44Ki44KkDQor44K144Kr44KkLOODquODp+OCpuOCueOCsQ0KK+OCteOCq+ODjizjg6bjgq3jgrMNCivjgrXjgqvjg6Ljg4gs44Ov44K/44OrDQor44K144Kr44Oi44OILOODgeOCq+ODqQ0KK+OCteOCr+ODqeOCpCzjg57jgrXjg5Xjg58NCivjgrXjgrXjgq0s44Oo44K344KzDQor44K144K144KtLOOCv+OCseODpuOCrQ0KK+OCteOCteOCrSzjg6bjgq3jgqoNCivjgrXjgrXjgq0s44K144KtDQor44K144K144KtLOODpOOCueODkuODrQ0KK+OCteOCteODjizjgqLjgqvjgq4NCivjgrXjg4Djg6Ljg4gs44Ky44Oz44Kz44KmDQor44K144OI44KmLOODkuODreOCrQ0KK+OCteODiOOCpizjg6bjgqbjgqTjg4Hjg60NCivjgrXjg4jjgqYs44K/44Kr44K3DQor44K144OI44KmLOOCv+OCq+ODkuODrQ0KK+OCteODiOOCpizjg4jjg6LjgrMNCivjgrXjg4rjg4As44Oe44K144Om44KtDQor44K144ON44K344KyLOODiOOCt+ODjuODlg0KK+OCteODjizjgqvjgrrjg5LjgrMNCivjgrfjgrLjg4jjg58s44K144OI44KzDQor44K344OO44OP44OpLOODouODquODkuOCsw0KK+OCt+ODkOOCq+ODryzjgrHjg7Pjgrjjg63jgqYNCivjgrfjg5Djg44s44Oq44On44KmDQor44K344Oe44OALOOCv+OCseOCtw0KK+OCt+ODnuODgCzjgr/jg4Tjg63jgqYNCivjgrfjg5/jgros44K/44Kr44KqDQor44K344Og44OpLOOCv+OCq+ODjuODqg0KK+OCt+ODoOODqSzjgr/jgrHjgrcNCivjgrfjg6Ljgqvjg68s44OI44Oi44OkDQor44K344Oi44OV44K4LOODjuODluODkuOCsw0KK+OCt+ODouODpOODnizjg5Ljg4fjgqvjgroNCivjgrfjg6fjgqYs44OS44Ot44Om44KtDQor44K344Op44KkLOODquOCqA0KK+OCt+ODqeOCrCzjgrPjgqbjgrgNCivjgrfjg6njgqvjg68s44Ok44K544KzDQor44K344Op44K5LOODn+ODpuOCrQ0KK+OCt+ODryzjgrHjg7PjgqTjg4ENCivjgrfjg7PjgrEs44OK44Kk44K344OzDQor44K344Oz44OJ44KmLOODiOODouOCq+OCug0KK+OCueOCrOODj+ODqSzjg5Ljg63jgqvjgroNCivjgrnjgq7jgqbjg4Es44K344On44Km44K/44Ot44KmDQor44K544Ku44Km44OpLOODgeOCouOCrQ0KK+OCueOCruOCteODryzjg6jjgqbjgrMNCivjgrnjgq7jg4/jg6ks44OS44Ot44OO44OWDQor44K544Ku44Oi44OILOODhuODq+ODpuOCrQ0KK+OCueOCruODpOODnizjgr/jg4Tjg6QNCivjgrnjgrrjgq0s44Oe44K144Om44KtDQor44K544K644KtLOOCt+ODs+OCpOODgQ0KK+OCueOCuuOCrSzjgr/jgqTjgrnjgrENCivjgrnjgrrjgq0s44Oe44Kz44OIDQor44K544K644KtLOODnuOCteODpA0KK+OCueOCuuOCrSzjg6rjg6Xjgqbjgr8NCivjgrnjgrrjgq0s44OO44Oq44KzDQor44K544K644KtLOODn+OCq+OCsw0KK+OCueODgCzjg6rjg7Pjg6QNCivjgrnjg4gs44OG44OE44OkDQor44K544Of44OALOOCouOCreODkuODrQ0KK+OCu+OCrSzjgqLjg4Tjg4rjg6oNCivjgrvjgq0s44Kr44K644KtDQor44K744Oz44OALOODpuOCreOCsw0KK+OCveODoeODn+ODpCzjg4HjgqgNCivjgr3jg6Qs44OS44Ot44KtDQor44OA44Kk44Oe44OrLOOCouOCreODqQ0KK+OCv+OCq+OCqizjg4/jg4rjgqgNCivjgr/jgqvjgq4s44Kr44OoDQor44K/44Kr44K244OvLOODgOODsw0KK+OCv+OCq+OCuyzjgrHjg7PjgrgNCivjgr/jgqvjg40s44K144OI44K3DQor44K/44Kr44OP44K3LOOCuOODpeODs+OCsw0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjgrcNCivjgr/jgqvjg4/jgrcs44OS44Ot44OK44KqDQor44K/44Kr44OP44K3LOODkuODreODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jg4rjg5YNCivjgr/jgqvjg6Tjg54s44Om44Kt44KqDQor44K/44Kt44Km44OBLOODquOCqA0KK+OCv+OCreOCq+ODryzjgqLjgq3jg6kNCivjgr/jgq3jgrDjg4Es44Kx44Oz44K/44Ot44KmDQor44K/44Kt44K244OvLOOCteODiOOCtw0KK+OCv+OCreOCtuODryzjgrPjgqbjgrjjg63jgqYNCivjgr/jgq3jgrbjg68s44OB44OS44OtDQor44K/44Kt44K/LOOCouOCreODqQ0KK+OCv+OCsOODgSzjgrHjg7Pjgr/jg63jgqYNCivjgr/jgrHjgqQs44Kv44OL44KqDQor44K/44Kx44Km44OBLOOCt+ODs+OCtA0KK+OCv+OCseODgCzjg6bjgqbjgqTjg4Hjg60NCivjgr/jgrHjg4/jg6ks44Oo44Km44KzDQor44K/44OG44OOLOODiuOCquOCv+OCqw0KK+OCv+ODiuOCqyzjg4DjgqTjgrnjgrENCivjgr/jg4rjgqss44K544K544OgDQor44K/44OK44KrLOOCouOCreODqQ0KK+OCv+ODiuOCqyzjg4rjgqoNCivjgr/jg4rjgqss44K744Kk44K4DQor44K/44OK44KrLOODiOOCquODqw0KK+OCv+ODiuOCqyzjg4rjgqrjgrMNCivjgr/jg4rjgqss44Ko44Oq44KzDQor44K/44OK44KrLOODn+ODhOOCqA0KK+OCv+ODiuODmSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgr/jg4ss44OB44Kr44OoDQor44K/44OL44Kr44OvLOODqOOCt+ODhOOCsA0KK+OCv+ODi+ODiuOCqyzjg5Ljg63jgr/jgqsNCivjgr/jg4vjg6Ljg4gs44OB44K644OrDQor44K/44OM44OeLOODleODn+ODkuOCsw0KK+OCv+ODkOOCvyzjgrjjg6Xjg7MNCivjgr/jg5Djgr8s44KzDQor44K/44OQ44K/LOODqOOCpuOCueOCsQ0KK+OCv+ODkOOCvyzjgrHjgqTjgr/jg63jgqYNCivjgr/jg6Djg6ks44Kz44Km44Kk44OBDQor44K/44Or44KtLOODpuOCrQ0KK+OCv+ODs+OCuCzjgq3jg6jjg47jg6oNCivjg4Hjg5As44Kr44K644Om44KtDQor44OB44OQLOODkuODreOCq+OCug0KK+ODhOOCq+ODgCzjg6rjgqgNCivjg4Tjgq3jg6Ljg4gs44Ki44OE44K3DQor44OE44K4LOODkuODreOCtw0KK+ODhOODgCzjgq3jg5/jg5LjgrMNCivjg4Tjg4Hjg6Ljg4gs44K344Oz44K0DQor44OE44OE44OfLOODiOODouOCsw0KK+ODhOODhOODnyzjgrjjg6Xjg7PjgqTjg4ENCivjg4Tjg5zjgr8s44Oe44K144OkDQor44OG44KkLOODr+OCq+ODnw0KK+ODhuODqeOCq+ODiSzjg5/jg4TjgqLjgq0NCivjg5/jg47jgqbjg6ks44Oe44OK44OWDQor44OG44Or44KkLOODnuODqg0KK+ODieOCpCzjgrPjgqbjgr/jg63jgqYNCivjg4jjgqYs44Oe44Kt44KzDQor44OI44Km44Kr44Kk44Oq44OzLOODpuODnw0KK+ODieOCpuODoeODsyzjgqjjg4TjgrMNCivjg4jjgqbjgqvjgqQs44Kr44Kq44OqDQor44OI44Kv44OK44KsLOOCreODn+OCv+OCqw0KK+ODiOOCr+ODpOODnizjgr/jgqTjgqwNCivjg4jjgrfjg54s44Of44Ov44KzDQor44OJ44Km44OBLOODiOODouODpuOCrQ0KK+ODiOODjuOCpCzjgqLjgq3jgrMNCivjg4jjg47jg6Djg6ks44Oq44Ko44KzDQor44OI44Of44K/LOOCr+ODi+OCqg0KK+ODiOODouODjizjg5Ljg4fjgqvjgroNCivjg4jjg6rjgqQs44Oe44Oi44OrDQor44OK44Ks44KkLOODiOODouODjuODqg0KK+ODiuOCq+OCrOODryzjgqTjgq/jg54NCivjg4rjgqvjgqzjg68s44Oo44K344OO44OqDQor44OK44Kr44Ks44OvLOODgOOCpOOCueOCsQ0KK+ODiuOCq+OCtuODiCzjg6Ljg4jjg47jg5YNCivjg4rjgqvjgrfjg54s44OB44Kr44KzDQor44OK44Ks44K/LOODpuOCqw0KK+ODiuOCq+ODjizjgqvjg4oNCivjg4rjgqzjg44s44Oq44On44Km44K/DQor44OK44Ks44OOLOODquODp+OCpg0KK+ODiuOCq+ODoOODqSzjg6jjgqbjgrMNCivjg4rjgqvjg6Djg6ks44K144OI44K3DQor44OK44Kr44Og44OpLOOCv+OCseOCtw0KK+ODiuOCq+ODoOODqSzjg4bjg4Tjg6QNCivjg4rjgqvjg6Ljg6os44OI44Kv44KzDQor44OK44Kr44Ok44OeLOODiOODouODkuODrQ0KK+ODiuODq+OCuyzjgr/jgqvjgrcNCivjg4rjg7PjgrQs44Oe44K144KtDQor44OK44Oz44OQLOOCseODsw0KK+ODiuODs+ODkCzjgrPjgqbjgrgNCivjg4vjgqTjg58s44Kz44Km44OY44KkDQor44OL44K344KqLOODqOOCpuOCuA0KK+ODi+OCt+OCquOCqyzjgrfjg7PjgqTjg4ENCivjg4vjgrfjgqrjgqss44OI44Oi44KzDQor44OL44K344K144KrLOODnuODnw0KK+ODi+OCt+OCtuOCrSzjgr/jgq/jg54NCivjg4vjgrfjgrbjg68s44OK44Kq44KtDQor44OL44K344OOLOOCteODiOOCtw0KK+ODjOODnuOCv+OCrSzjg6Ljg4jjgq0NCivjg43jgq7jgrcs44Oq44KrDQor44ON44Ok44OeLOOCv+OCseOCtw0KK+ODjuODgCzjg4HjgqLjgq0NCivjg47jgrDjg4Es44OO44Oq44KzDQor44OO44Kw44OBLOODqOOCpuOCueOCsQ0KK+ODjuOCsOODgSzjgrHjgqTjgrgNCivjg47jgrDjg4Es44K344Oz44Kt44OBDQor44OO44K244KtLOODgOOCpOOCueOCsQ0KK+ODjuODgCzjg5Ljg63jgrMNCivjg47jg5zjg6os44Oo44K344OS44OtDQor44OO44Og44OpLOOCt+ODpeOCpuOCpOODgQ0KK+ODjuODoOODqSzjg5/jgrXjgrMNCivjg47jg6Djg6ks44Kx44Oz44K4DQor44OP44Ku44Ov44OpLOOCt+ODp+OCpuOCv+ODreOCpg0KK+ODj+OCt+OCsOODgSzjg4jjgrfjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44K/44Kr44OV44OfDQor44Oe44KtLOOCq+OCuuODiA0KK+ODj+OCu+OCrOODryzjgr/jgrHjgqoNCivjg4/jgrvjgqzjg68s44Kq44K144OgDQor44OP44OALOOCouODpOOCsw0KK+ODj+ODg+ODiOODqizjg6bjgqbjgqTjg4ENCivjg4/jg4Pjg4jjg6os44Oe44Om44KzDQor44OQ44OQLOODnuOCteOCrQ0KK+ODkOODkCzjgrHjg7PjgrgNCivjg5Djg5As44K344Oz44Kk44OB44Ot44KmDQor44OQ44OQLOODquOCq+OCsw0KK+ODj+ODnuODgCzjgq/jg5/jgrMNCivjg4/jg57jg4As44OA44Kk44K4DQor44OP44Oe44OALOODquOCtQ0KK+ODj+ODnuODgCzjg5Xjg5/jg5Ljg60NCivjg4/jg57jg44s44Oe44K144Om44KtDQor44OP44Ok44K3LOOCouOCreODjuODqg0KK+ODkuOCsOODgSzjgrPjgqbjgq0NCivjg5LjgrXjg4Tjg40s44Oe44Kz44OIDQor44OS44K344OM44OeLOOCouODhOOCtw0KK+ODk+ODp+OCpuODieOCpizjg5Ljg63jgrMNCivjg5Ljg6njgqQs44Oe44K144Kr44K6DQor44OS44Op44Kq44KrLOODn+OCrQ0KK+ODkuODqeOCq+ODryzjg4jjg6Ljg5Ljg60NCivjg5Ljg6njgrXjg68s44K/44Kv44K4DQor44OS44Op44K344OeLOOCuOODreOCpg0KK+ODkuODqeOCvyzjg57jg5/jgrMNCivjg5Ljg6njg44s44Ok44Oo44KkDQor44OS44Or44OeLOODpuOCpuOCpOODgQ0KK+ODkuODreOCuyzjg5Ljg4fjgq0NCivjg5Ljg63jgrss44Kr44OE44Oo44K3DQor44OS44Ot44K/LOODkuODreOCtw0KK+ODleOCr+OCpCzjgqLjgrrjgrUNCivjg5Xjgq/jg4As44K/44Kr44K3DQor44OV44Kv44OQLOOCq+ODiuODoQ0KK+ODleOCr+ODoOODqSzjg6bjg5/jgrMNCivjg5Xjgq/jg6Ljg4gs44OA44Kk44K544KxDQor44OV44K444KkLOOCseODsw0KK+ODleOCuOOCpCzjg6bjgq0NCivjg5XjgrjjgqQs44Of44OvDQor44OV44K444Ko44OALOODkuOCteOCq+OCug0KK+ODleOCuOOCvyzjg5Ljg4fjgqvjgroNCivjg5Xjgrjjgr8s44Om44Kt44KzDQor44OV44K444OELOOCv+OCseOCtw0KK+ODleOCuOODjizjgr/jgqvjg5sNCivjg5Xjgrjjg6Ljg4gs44K144OI44KzDQor44OV44K444Ov44OpLOOCv+OCr+ODiA0KK+ODleOCuOODr+ODqSzjg6rjg4oNCivjg5Xjgrjjg6/jg6ks44Kv44OfDQor44OV44Or44Kr44OvLOODquODp+OCpg0KK+ODmyzjg57jgrXjg47jg6oNCivjg5vjgrfjg44s44Og44ON44OI44OiDQor44Ob44K944Kr44OvLOODhuODq+ODkuOCsw0KK+ODm+ODquOCq+ODryzjgrfjg6XjgqbjgrgNCivjg5vjg7PjgrTjgqYs44Oo44K344Ki44KtDQor44Oe44Ko44OALOOCouODhOOCtw0KK+ODnuOCquOCqyzjg4Tjg4jjg6ANCivjg57jgrnjg5bjg4Es44OE44Oo44K3DQor44Oe44K544Of44OELOOCreODp+OCpuODmOOCpA0KK+ODnuODhOOCpCzjgrHjg7Pjgr/jg63jgqYNCivjg57jg4Tjgqos44OS44OH44OO44OqDQor44Oe44OE44Kq44KrLOOCreODp+OCpuOCueOCsQ0KK+ODnuODhOOCquOCqyzjgrXjg4HjgrMNCivjg57jg4Tjg4As44Oq44On44KmDQor44Oe44OE44OQ44OpLOOCouOCreOCsw0KK+ODr+OCv+ODiuODmSzjg4DjgqTjgrnjgrENCivjg57jg4Tjg6Tjg54s44K/44Kx44K3DQor44Oe44OE44Ok44OeLOODn+ODhOODhuODqw0KK+ODnuODhOODpOODnizjg6jjgrfjgq0NCivjg57jg4jjg5As44OI44Oi44OS44OtDQor44Of44Km44OpLOODnuOCteOCrQ0KK+ODn+ODhOOCrizjgr/jgrHjgrcNCivjg5/jg4gs44K344Ol44Km44Kk44OBDQor44Of44OO44Km44OpLOODpOOCueODkuOCtQ0KK+ODn+ODpCzjgqLjgq3jg6kNCivjg5/jg6TjgrEs44OS44OH44Oe44K1DQor44Of44Ok44K344K/LOOCouOCpA0KK+ODn+ODpOOCt+OCvyzjg6bjgq3jgqoNCivjg5/jg6Tjgr8s44Ki44Kt44OS44OtDQor44Of44Ok44Oi44OILOOCv+ODhOODpA0KK+ODn+ODpOODouODiCzjgq/jg4vjgrMNCivjg5/jg6Tjg6Ljg4gs44Oe44K144OS44OtDQor44Og44Kv44OALOODiOODouOCouODqg0KK+ODoOOCt+OCqyzjg6bjgq3jgrMNCivjg6Djg4jjgqYs44Ki44Kt44OpDQor44Og44Op44Kr44OfLOODpuOCqw0KK+ODoOODqeOCq+ODnyzjgqvjg4rjgrMNCivjg6Djg6njgqvjg58s44K/44OE44OS44OtDQor44Og44Op44Kr44OfLOODkuODh+ODhOOCsA0KK+ODoOODqeOCv+ODiyzjg6Ljg4jjg5Ljg60NCivjg6Djg6njg57jg4Qs44Oe44K144KzDQor44Og44Op44Ok44OeLOODqOOCt+OCouOCrQ0KK+ODouODgeOCuuOCrSzjg4jjgrfjg5LjgrMNCivjg6Ljg6rjgrDjg4Es44Of44K144OIDQor44Oi44Oq44K/LOODnuODnw0KK+ODouODquODkOODpOOCtyzjgrPjgqbjg6HjgqQNCivjg6Ljg63jg4gs44OS44Ot44K/44OEDQor44Ok44Ko44Ks44K3LOODkuODh+ODpuOCrQ0KK+ODpOOCquODpOODnizjgrLjg7Pjgr8NCivjg6Tjgqzjg58s44Oo44K344OS44OtDQor44Ok44KuLOOCseOCpOOCuA0KK+ODpOOCsOODqSzjgrfjg7PjgrgNCivjg6TjgrnjgrPjg4Es44OO44Oc44OrDQor44Ok44K544OALOODpuOCpuOCueOCsQ0KK+ODpOOCueODgCzjg47jg6rjgrMNCivjg6Tjg57jgrDjg4Es44Om44Km44K544KxDQor44Ok44Oe44Kw44OBLOOCt+ODp+OCpuOCt+ODsw0KK+ODpOODnuODgCzjg6/jgqTjgrHjg7MNCivjg6Tjg57jg4As44Of44K644ObDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODpOODnuODn+ODgSzjgqvjg4Tjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44K444Ol44Oz44KzDQor44Ok44Oe44Oi44OILOODkuODreODnw0KK+ODpuOCrSzjg57jg5/jgrMNCivjg6bjg5/jg5As44Kx44Kk44Kk44OBDQor44Om44OpLOOCseODs+OCpOODgQ0KK+ODqOOCs+OCueOCqyzjg4/jg6vjg47jg5YNCivjg6jjgrPjgr8s44Ki44KkDQor44Oo44Kz44Ok44OeLOOCouODpOOCsw0KK+ODqOOCt+OCquOCqyzjg4rjgqrjgrMNCivjg6jjgrfjgqrjgqss44Kr44K644OS44OtDQor44Oo44K344K244OvLOODpuOCpuOCsw0KK+ODqOOCt+ODgCzjg5/jg4Tjg6sNCivjg6jjgrfjg4As44Ki44Kr44OqDQor44Oo44K344OALOOCv+OCq+OCtw0KK+ODqOOCt+ODjizjgqvjgrrjg58NCivjg6jjgrfjg6Djg6ks44Om44Km44KzDQor44Oq44Ol44KmLOOCqOOCpOOCuA0KK+ODreOCryzjgqLjgq3jgrMNCivjgrXjgqvjg6Ljg4gs44Kx44Kk44KzDQor44Ov44K/44OK44OZLOODrOOCpOODig0KK+ODr+OCv+ODiuODmSzjg6bjg5XjgrMNCivjg6/jgr/jg4rjg5ks44Om44KmDQor44Ov44K/44OK44OZLOOCv+OCq+OCsw0KK+ODr+OCv+ODiuODmSzjg6Tjg6jjgqQNCivjg6/jg6njg5Ms44OS44Ot44OO44OqDQor44OO44K244OvLOODpuOCpuOCsw0KK+OCr+ODnCzjg6TjgrnjgrMNCivjg6jjgrfjg6Ljg4gs44KzDQor44Ok44Oe44Oi44OILOOCv+OCq+OCtw0KK+ODpOODnuODouODiCzjgr/jgqvjgrcNCivjg5Ljg63jgrXjg68s44Oq44KoDQor44Of44OS44OpLOODquODp+OCpuODmOOCpA0KK+OCquOCquODjizjg5Ljg63jg6bjgq0NCivjgqrjg4As44Kr44K644OS44KzDQor44Kq44Kq44OQ44K/44KxLOODn+ODm+OCsw0KK+OCq+ODieOCqCzjgqLjgqQNCivjg4vjgrfjg4As44OI44Oo44OS44OtDQor44Oe44OE44Oi44OILOODqOOCt+OCouOCrQ0KK+ODn+OCruOCvyzjg57jg4oNCivjg5/jg6Tjg6Ljg6os44Of44KqDQor44Ok44Oe44K344K/LOODnuODieOCqw0KK+ODpOODnuODgCzjgrfjg7PjgrQNCivjg47jg6rjg4jjg58s44OB44KoDQor44Kk44Kx44OALOODpuOCpuOCueOCsQ0KK+ODouODquOCvyzjg6rjg6fjgqbjgrgNCivjgr/jgrHjgqbjg4Es44Oq44On44KmDQor44Of44K/LOODqOOCt+ODjuODqg0KK+OCpOODjOOCpCzjgrHjg7MNCivjg4jjgqYs44OO44Oq44Om44KtDQor44Oe44Kt44OOLOODnuODqg0KK+ODiuODhOODoSzjgrfjg7Pjg6QNCivjgqrjg47jg4fjg6ks44Kv44OL44OS44OtDQor44Kq44Kq44K/LOODn+OCreOCsw0KK+OCpuODq+OCt+OCteOCsyzjg6rjg4TjgrMNCivjgrXjgqvjgq3jg5Djg6ks44K344Ky44OO44OqDQor44Ki44Kq44KtLOOCqOOCpOOCueOCsQ0KK+OCouOCquOCrSzjg4rjgqrjg4gNCivjgqLjgqrjgq0s44Om44Km44KzDQor44Ki44Kr44Ks44OvLOODouODiOOCsw0KK+OCouOCq+ODhOOCqyzjgqvjgrrjg5Ljg4gNCivjgqLjgqvjg5vjg6os44Kx44Kk44K444Ot44KmDQor44Ki44Kt44Ok44OeLOOCq+OCuuODkuODrQ0KK+OCouOCteOCpCzjg4bjg6vjg58NCivjgqLjgrXjgqQs44K344Oz44Oa44KkDQor44Ki44K144Kq44KrLOOCseODs+OCuA0KK+OCouOCteODjOODnizjgqLjg6QNCivjgqLjgr0s44OK44Kq44OV44OfDQor44Ki44K/44KxLOODiOOCt+OCrQ0KK+OCouODgOODgSzjgrfjg7PjgrQNCivjgqLjg5ks44K/44Kr44Of44OBDQor44Ki44OZLOODjuODluODpOOCuQ0KK+OCouODmSzjg6bjgq3jgqgNCivjgqLjg6njgqQs44OE44Oo44K3DQor44Ki44Oq44OeLOODiOODouOCsw0KK+OCpOOCpOOCuuOCqyzjg4DjgqTjgrnjgrENCivjgqTjgqzjg6njgrcs44Om44K/44KrDQor44Kk44Kx44OALOOCs+OCuuOCqA0KK+OCpOOCseODgCzjgrHjg7Pjgr/jg63jgqYNCivjgqTjgrHjg4/jgr8s44OS44Ot44KtDQor44Kk44K244OvLOODgeODj+ODqw0KK+OCpOOCt+OCpCzjg6TjgrnjgrcNCivjgqTjgrfjgqvjg68s44Oq44On44Km44KzDQor44Kk44K344Kw44OtLOOCouOCreODkuODrQ0KK+OCpOOCt+ODgCzjgrPjgqbjgr/jg63jgqYNCivjgqTjgrfjg4As44K/44OE44KqDQor44Kk44K344OQ44K3LOODiOOCt+ODpuOCrQ0KK+OCpOOCt+ODj+ODqSzjgr/jgqvjg5Ljg60NCivjgqTjgrfjg6Ljg4gs44Oe44Om44KzDQor44Kk44K944OP44K/LOOCouOCteOCsw0KK+OCpOOCv+ODnyzjgr/jgqvjgqLjgq0NCivjgqTjg4Hjgqvjg68s44OK44Or44K/44KrDQor44Kk44OD44K344KtLOOCv+ODhOODpA0KK+OCpOODhyzjg4rjg6vjg58NCivjgqTjg4cs44Kz44Km44K4DQor44Kk44OI44KmLOODnuODpuODnw0KK+OCpOODiOOCpizjgrjjg6Xjg7Pjg5rjgqQNCivjgqTjg4jjgqYs44Oe44K144KqDQor44Kk44OI44KmLOODiuODhOOCsw0KK+OCpOODiOOCpizjg57jgqQNCivjgqTjg47jgqbjgqgs44Oe44Kz44OIDQor44Kk44OO44Km44KoLOODqOOCpuOCueOCsQ0KK+OCpOODjuOCpuOCqCzjg4rjgqrjgq0NCivjgqTjg47jgqbjgqgs44Kr44OE44KtDQor44Kk44OO44Kv44OBLOODjuODquODpuOCrQ0KK+OCpOODnuOCpCzjg6rjg5sNCivjgqTjg57jgq3jg6Xjgqbjg6zjgqQs44Os44Kk44KzDQor44Kk44Oe44K844KtLOOCr+ODn+OCsw0KK+OCpOODnuODoOODqSzjg57jgrnjg58NCivjgqTjg57jg6Djg6ks44Kx44Oz44Kk44OB44OtDQor44Kk44Ov44KkLOOCteODiOODqw0KK+OCpOODr+OCpCzjgr/jgqvjgrcNCivjgqTjg6/jgrXjgq0s44OI44Oi44KzDQor44Kk44Ov44K7LOOCueOCueODoA0KK+OCpOODr+OCvyzjgrPjgqbjgrgNCivjgqTjg6/jg4cs44Kx44Oz44K/44Ot44KmDQor44Kk44Ov44Og44OpLOODnuOCteODkuODiA0KK+OCpuOCqOODgCzjg5Xjg5/jgqoNCivjgqbjgqjjg44s44Oe44K144OV44OfDQor44Km44Ko44OOLOOCt+ODs+OCuA0KK+OCpuOCq+OCpCzjg5Ljg63jgq0NCivjgqbjgrXjg58s44Oe44Oq44KzDQor44Km44OB44Km44OfLOODquOCqOOCsw0KK+OCpuODgeODpOODnizjg57jgrXjg5Xjg58NCivjgqbjg6njg4/jg6ks44K/44Kk44K4DQor44Ko44KuLOOCv+OCq+ODkuOCsw0KK+OCqOOCuOODqizjg5Ljg63jgrcNCivjgqjjg47jgq3jg4ks44Oo44Oq44KzDQor44Ko44Oi44OqLOOCpOODhOOCrQ0KK+OCqOODs+ODiSzjg4/jgrjjg6ENCivjgqrjgqrjgqQs44OK44OE44KzDQor44Kq44Kq44Kk44KxLOODiOODouOCq+OCug0KK+OCquODleODqSzjg4DjgqTjgrnjgrENCivjgqrjgqrjgqvjg68s44Oo44K344KzDQor44Kq44Kt44K/LOODpuOCreODjuODqg0KK+OCquOCquOCteODryzjg57jgrXjg6bjgq0NCivjgqrjgqrjgr8s44OI44Oi44KzDQor44Kq44Kq44K/LOOCouOCreODiuOCqg0KK+OCquOCquOCvyzjg6jjgqbjg5jjgqQNCivjgqrjgqrjgr/jg4ss44K/44Kr44Ki44KtDQor44Kq44Kq44K/44OLLOODpuOCreODkuODhw0KK+OCquOCquODhOOCqyzjg6Ljg4jjgqQNCivjgqrjgqrjg4Tjgqss44Oo44K344OO44OqDQor44Kq44Kq44OE44KrLOODgOOCpOOCuOODreOCpg0KK+OCquOCquODhOOCrSzjgrXjg4jjg6sNCivjgqrjg4ks44K/44Kv44OfDQor44Kq44OI44Oz44OZLOOCv+ODhOODpA0KK+OCquODjizjg57jgrXjg5LjgrMNCivjgqrjg44s44OS44Ot44K3DQor44Kq44Kq44OP44K3LOOCv+ODhOODpA0KK+OCquOCquODj+OCvyzjgqLjgq3jg6kNCivjgqrjgqrjg5/jg4Es44Of44ObDQor44Kq44Kq44Ok44OeLOODn+OCreODkuODiA0KK+OCquOCq+OCtuOCrSzjgr/jg4Tjg5Xjg58NCivjgqrjgqvjgrjjg54s44Of44OK44KzDQor44Kq44Kr44OALOOCq+OCuuODkuODrQ0KK+OCquOCq+ODgCzjgr/jgq/jg54NCivjgqrjgqvjg6Ljg4gs44K/44Kx44K3DQor44Kq44Kr44Oi44OILOODgOOCpOOCueOCsQ0KK+OCquOCrOODryzjgrjjg6Xjg7MNCivjgqrjgq7jgr8s44OI44K344OV44OfDQor44Kq44Kv44Kv44OcLOOCv+OCq+OCtw0KK+OCquODgeOCouOCpCzjg4jjg6Ljg47jg6oNCivjgqrjg57jgr8s44Kx44OzDQor44Kr44K1LOODpuOCreOCsw0KK+OCq+OCt+ODryzjg4DjgqTjgrnjgrENCivjgqvjg4jjgqYs44Kz44Km44OY44KkDQor44Kr44OI44KmLOOCv+ODgOOCtw0KK+OCq+ODiuOCpCzjgrHjg7PjgqTjg4ENCivjgqvjg4rjg6Tjg54s44OA44Kk44K544KxDQor44Kr44ON44KzLOODleODn+ODpA0KK+OCq+ODjeODhOOCrSzjgrjjg6Xjg7Pjg6QNCivjgqvjg43jg57jg6ss44Ki44K644K1DQor44Kr44OZ44Km44OBLOODiuOCquODiA0KK+OCq+ODn+ODoOODqSzjgqvjgqrjg6oNCivjgqvjg5/jg6Qs44K144OB44KzDQor44Kr44Of44OkLOOCs+OCpuOCpOODgeODreOCpg0KK+OCq+ODr+OCpCzjg6bjg5/jgrMNCivjgqvjg6/jgqQs44OS44Ot44K3DQor44Kr44Ov44Kr44OfLOODqeOCpA0KK+OCq+ODr+OCteOCrSzjg6Tjgrnjg5Ljg60NCivjgqvjg6/jgrXjgq0s44OG44OE44Ki44KtDQor44Kr44Ov44K144KtLOODkuODreOCrQ0KK+OCq+ODr+OCt+ODnizjgr/jgqvjgqoNCivjgqvjg6/jgr8s44Kx44Kk44Kk44OBDQor44Kr44Ov44Oe44K/LOOCs+OCpuOCvw0KK+OCq+ODr+ODouODiCzjgrHjgqTjgrnjgrENCivjgq3jgrfjg6Ljg4gs44Ki44Kt44Oo44K3DQor44Kt44K344OtLOOCseOCpOOCvw0KK+OCreODgCzjgqjjgqTjgrnjgrENCivjgq3jgr/jgqrjgqss44K444Ol44OzDQor44Kt44K/44OOLOODnuOCteODkuOCsw0KK+OCreOCv+ODj+ODqSzjgr3jgqbjg5jjgqQNCivjgq3jgr/jg6Djg6ks44K/44Ot44KmDQor44Kt44K/44Oi44OILOODn+ODmw0KK+OCreODoOODqSzjgr/jgrHjg5Ljg60NCivjgq3jg6Djg6ks44OV44Of44OIDQor44Kt44Oi44OILOOCseOCpOOCsw0KK+OCreODsyzjg6jjgrfjg6bjgq0NCivjgq/jgrfjg6Tjg54s44Ki44Kt44OoDQor44Kv44OJ44KmLOODiOODouODjuODqg0KK+OCr+ODieOCpizjgrfjg6Xjg7PjgrnjgrENCivjgq/jg6Hjgqbjg4Es44Kx44Oz44K4DQor44Kv44Op44K344KyLOOCs+OCpuOCuA0KK+OCr+ODqeODgSzjgqvjgrrjg5Ljg60NCivjgq/jg6njg4rjgqss44K/44Kx44K3DQor44Kv44Oq44OP44OpLOODqOOCpuOCueOCsQ0KK+OCr+ODreOCrSzjg57jgrXjgq0NCivjgq/jg63jgrXjgqss44Oo44Km44KzDQor44Kv44Ov44OP44OpLOOCt+ODjg0KK+ODpuOCqCzjgqvjg4Tjg47jg6oNCivjgrPjgqTjgrrjg58s44K344Oz44OkDQor44Kz44Km44K444OeLOODqOOCt+ODkuOCsw0KK+OCs+OCpuODgCzjgqvjg4Tjg6bjgq0NCivjgrPjg7Pjg44s44Kx44Oz44Kk44OBDQor44Kz44KsLOOCt+ODp+OCpuOCpOODgQ0KK+OCs+OCrCzjgr/jgq/jgrgNCivjgrPjgq/jg5bjg7Ms44OB44Kr44KzDQor44Kz44K144KrLOOCouOCreOCsw0KK+OCs+ODg+ODhizjg57jgqTjgrMNCivjg4/jgr/jg4rjgqss44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOODpuOCqw0KK+OCs+ODkOODpOOCtyzjg5Ljg4fjgq0NCivjgrPjg5Djg6Tjgrcs44Ki44Oz44OKDQor44Kz44OQ44Ok44K3LOODjuODquOCouOCrQ0KK+OCs+ODkOODpOOCtyzjgq3jg5/jg5LjgrMNCivjgrPjg57jg4Qs44K344Oz44K544KxDQor44Kz44Oe44OE44OQ44OpLOODleODnw0KK+OCs+ODoeODgOODiyzjg4bjg4Tjg63jgqYNCivjgrXjgqTjgq0s44Ki44OE44K3DQor44K144Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCteOCq+OCpCzjg5Ljg63jgqLjgq0NCivjgrXjgqvjgrDjg4Es44K/44Ot44KmDQor44K144Kv44OeLOODpuOCreOCsw0KK+OCteOCsyzjg57jg6QNCivjgrXjgrXjgqQs44OK44Kq44OkDQor44K144K144KqLOOCq+OCuuOCreODnw0KK+OCteOCteOCrSzjg4/jg4rjgrMNCivjgrXjgrXjgq0s44Oe44K144KqDQor44K144OI44KmLOOCq+ODhOODkuOCsw0KK+OCteODiOOCpizjgqvjgrrjg6bjgq0NCivjgrXjg4jjgqYs44OS44Ot44OS44OIDQor44K144OI44KmLOODnuOCteOCrQ0KK+OCteODiOOCpizjg5/jgq0NCivjgrXjg4jjgqYs44Oe44K144KzDQor44K144OI44KmLOODn+OCrQ0KK+OCteODiOOCpizjg47jg5bjg6bjgq0NCivjgrXjg4jjgqYs44Oq44On44Km44K144KvDQor44K144OOLOODnuOCteOCsw0KK+OCteODjizjg4rjgq7jgrUNCivjgrXjg4/jg6ks44K/44Kr44OV44OfDQor44K144Or44Ok44OeLOOCv+OCq+ODpuOCrQ0KK+OCteODr+OCsOODgSzjgqLjg6QNCivjgrfjgqQs44Ko44OfDQor44K344Kq44K244KtLOODkuODh+OCouOCrQ0KK+OCt+OCquODgCzjgqjjgqTjgrgNCivjgrfjgq0s44Oe44K144OrDQor44K344OALOODqOOCt+ODkuODrQ0KK+OCt+ODjuODj+ODqSzjg5Ljg4jjgrcNCivjgrfjg47jg4/jg6ks44OS44K144K3DQor44K344OW44K144OvLOODqOOCpuOCueOCsQ0KK+OCt+ODnuODgCzjg6rjg6Xjgqbjgr8NCivjgrfjg57jg4As44Of44Ob44KzDQor44K344Oe44OALOOCseODs+OCv+ODreOCpg0KK+OCt+ODn+OCuizjgr/jg4TjgqoNCivjgrfjg5/jgros44Ov44K/44OrDQor44K344Of44K6LOODiOODouOCsw0KK+OCt+ODn+OCuizjgrXjg4jjgrMNCivjgrfjg5/jgros44K444Ol44Oz44Kk44OBDQor44K344Of44K6LOOCuOODreOCpg0KK+OCt+ODoizjgq3jg4zjgqgNCivjgrfjg6Ljgrbjgq0s44K/44OE44OS44KzDQor44K344Oi44K444OeLOOCqOOCpOOCpOODgeODreOCpg0KK+OCt+ODouODhCzjgr/jgqvjg5Ljg60NCivjgrfjg6Ljg44s44Ki44Kt44OS44KzDQor44K344Oi44OkLOODqOODquOCsw0KK+OCt+ODqeOCuSzjgrfjg7PjgrQNCivjgrnjgq7jgqbjg6ks44Oe44K144OO44OWDQor44K544Ku44Km44OpLOODiOOCt+ODreOCpg0KK+OCueOCuuOCrSzjg4jjg6Ljg58NCivjgrnjgrrjgq0s44Ko44Oq44KzDQor44K544K644KtLOODpuOCpuOCueOCsQ0KK+OCueOCuuOCrSzjg6jjgrfjg47jg6oNCivjgrnjgrrjgq0s44Oo44K344KtDQor44K544OILOOCteODiOOCtw0KK+OCueODiuODgCzjgrXjg4jjgrcNCivjgrnjg6Tjg54s44OA44Kk44K544KxDQor44K744KqLOOCq+OCquODqg0KK+OCu+OCrSzjgrPjgqbjg5jjgqQNCivjgrvjgq3jg40s44Of44OE44OrDQor44K744Kt44OQLOODnuOCrQ0KK+OCu+ODiCzjgrHjgqTjgrgNCivjgrvjg7PjgrTjgq8s44OO44Oq44OS44K1DQor44K744Oz44OALOODpuOCpuOCsw0KK+OCu+ODs+ODkCzjg5/jgrrjg5sNCivjgr3jg6Hjg6Qs44Kx44Kk44K0DQor44K/44Kr44KuLOODkuODh+OCrQ0KK+OCv+OCq+OCrizjgqLjgqQNCivjgr/jgqvjgq4s44OO44Oq44Om44KtDQor44K/44Kr44K7LOODqOOCpuOCpOODgeODreOCpg0KK+OCv+OCq+ODgCzjg6jjgqbjgrnjgrENCivjgr/jgqvjg4/jgrcs44Ok44K544Om44KtDQor44K/44Kr44OP44K3LOODqOOCt+ODjuODqg0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg47jg6oNCivjgr/jgqvjg4/jgrcs44Oe44K144OIDQor44K/44Kr44OP44K3LOODn+OCqw0KK+OCv+OCq+ODj+OCtyzjg6Tjgrnjg5Ljg60NCivjgr/jgqvjg5/jgrbjg68s44Kz44K644KoDQor44K/44Kt44K244OvLOOCseOCpOOCvuOCpg0KK+OCv+OCsOODgSzjgq3jg6fjgqbjgrMNCivjgr/jgrHjgrfjgr8s44Kx44OzDQor44K/44Kx44OALOOCq+OCuuODng0KK+OCv+OCseODgCzjg6bjgqbjgrgNCivjgr/jgrHjg4As44Kz44Km44K4DQor44K/44Kx44OK44KrLOOCv+OCq+ODkuODrQ0KK+OCv+OCseODj+ODqSzjg5/jgq3jgrMNCivjgr/jgrHjg6Tjg54s44Of44OE44OrDQor44K/44K4LOODn+OCqw0KK+OCv+ODgCzjg6jjgrfjgr/jgqsNCivjg4Djg4Ys44Kv44Of44KzDQor44K/44OK44KrLOODgeOCq+ODleODnw0KK+OCv+ODiuOCqyzjg47jg6rjg5LjgrMNCivjgr/jg4rjgqss44K/44Kv44OK44KsDQor44K/44OK44KrLOOCv+OCq+ODpuOCrQ0KK+OCv+ODiuOCqyzjgr/jgqvjg6bjgq0NCivjgr/jg4vjgrDjg4Es44K/44Kr44OO44OqDQor44K/44OL44Kz44K3LOOCseODs+OCv+ODreOCpg0KK+OCv+ODi+ODjizjgr/jgqvjgqLjgq0NCivjgr/jg5bjgq0s44K/44Ot44KmDQor44K/44OW44OBLOODqOOCt+ODkuODiA0KK+OCv+ODnuOCquOCrSzjg57jgrXjg6jjgrcNCivjgr/jg57jgqzjg68s44OI44Oi44KzDQor44K/44Og44OpLOOCseOCpOOCsw0KK+OCv+ODoeODjuODqizjg6jjgqbjg5jjgqQNCivjgr/jg7Pjg44s44Ko44OqDQor44K/44Oz44OcLOOCouOCreODkuOCsw0KK+ODgeODgCzjgqvjg4Tjg5LjgrUNCivjg4Hjg43jg7Ms44Om44KtDQor44OE44Ks44ON44K244OvLOODjuODluODpuOCrQ0KK+ODhOOCq+ODj+ODqSzjg5/jgrrjg5sNCivjg4Tjg4Hjg6Qs44Oe44Om44OfDQor44OE44OB44OkLOODqOOCpuOCueOCsQ0KK+ODhOODgeODpCzjg6Tjgrnjg6bjgq0NCivjg4Tjgrrjgq0s44Oe44OfDQor44OE44K644Op44OP44OpLOOCteODgeOCsw0KK+ODhOODjeODqOOCtyzjg4bjg6vjg47jg5YNCivjg4Tjg5zjgqbjg4Es44Ki44Kt44OV44OfDQor44OE44Or44K344OeLOODquOCqA0KK+ODh+OCsOODgSzjgr/jgq/jg6QNCivjg4bjgrrjgqss44Of44OE44OO44OWDQor44OG44Op44Kr44OvLOOCv+OCq+OCtw0KK+ODhuODqeOCsOODgSzjg6Djg43jg47jg6oNCivjg4bjg6njgrfjg54s44Kx44Oz44K4DQor44OG44Op44OALOODqOOCt+OCrQ0KK+ODiOOCrOOCtyzjg4DjgqTjgrnjgrENCivjg4jjgq/jg6Djg6ks44Kz44Km44Kk44OBDQor44OI44K244OvLOODpuOCpuOCsw0KK+ODiOODk+OCquOCqyzjgr/jgrHjgrcNCivjg4jjg57jg6rjg44s44K444Ol44Oz44KzDQor44OI44Of44KkLOOCuOODpeODs+OCsw0KK+ODiOODn+OCtuODryzjgqLjg6QNCivjg4jjg5/jgr8s44K/44Kk44OBDQor44OI44Of44K/LOODpuOCpuOCvw0KK+ODiOODn+ODiuOCrCzjg6jjgqbjgrMNCivjg4jjg6jjg4As44K944Km44K/44Ot44KmDQor44OI44Op44K/44OLLOODnuOCteOCsw0KK+ODiuOCpOODiOOCpizjgr/jgqvjgqoNCivjg4rjgqzjgqQs44OB44KoDQor44OK44Ks44KkLOOCuOODpeODs+OCsw0KK+ODiuOCq+OCpOOCsSzjgrfjg7PjgrQNCivjg4rjgqvjgqbjgqgs44OA44Kk44K544KxDQor44OK44Ks44KqLOODquODp+OCpuOCsw0KK+ODiuOCq+OCs+OCuCzjgrXjg6TjgqsNCivjg4rjgqzjgrXjgqss44Kz44Km44K4DQor44OK44Kr44K444OeLOODpuOCreOCsw0KK+ODiuOCq+OCuOODnizjg57jg6oNCivjg4rjgqzjgr8s44Kr44OE44OkDQor44OK44Ks44K/LOOCouODhOODkuOCtQ0KK+ODiuOCrOOCvyzjg4rjgqrjgq0NCivjg4rjgqvjg4Tjg6ss44OS44Ot44Ki44KtDQor44OK44Ks44OOLOODpOOCueOCqg0KK+ODiuOCq+ODoOODqSzjgrXjg4jjg6sNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOOCr+ODn+OCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44Om44KrDQor44OK44Kr44Og44OpLOODnuOCteOCouOCrQ0KK+ODiuOCq+ODoOODqSzjgqjjgqTjgrgNCivjg4rjg4Tjg4/jg6ks44K144Ok44KrDQor44OK44Oq44K144OALOOCt+ODs+OCueOCsQ0KK+ODiuODs+ODlizjg47jg5bjg6bjgq0NCivjg4vjgqvjgqTjg4njgqYs44OI44Oi44OkDQor44OL44K3LOOCveOCpuOCpOODgeODreOCpg0KK+ODi+OCtyzjg4rjgqrjg6bjgq0NCivjg4vjgrfjgqos44OI44K344OkDQor44OL44K344Kr44OvLOOCseODs+OCuA0KK+ODi+OCt+OCr+ODqSzjgrXjg4jjgrMNCivjg4vjgrfjgrbjg68s44Kk44K144OgDQor44OL44K344K244OvLOOCqOODquODig0KK+ODi+OCt+ODgCzjgrfjg7PjgqTjg4ENCivjg4vjgrfjg4As44Oq44On44Km44OY44Kk44K/DQor44OL44K344Ok44OeLOODkuOCteODjuODqg0KK+ODjOODjuODpCzjgrfjgrLjgqoNCivjg4zjg57jgrbjgq0s44Om44Kt44KqDQor44OM44Oe44K/LOOCv+OCseOCtw0KK+ODjuODieODnyzjg6rjg4oNCivjg47jg58s44Oe44K144KtDQor44OO44Kw44OBLOOCq+OCuuODqOOCtw0KK+ODjuOCuOODnizjg4bjg6vjgqLjgq0NCivjg47jgrjjg6os44OI44K344Om44KtDQor44OO44OALOODn+OCreOCsw0KK+ODjuODgCzjg6bjgq3jgrMNCivjg47jg6Djg6ks44K344Oz44OY44KkDQor44OO44Og44OpLOOCq+OCuuOCqA0KK+ODjuODoOODqSzjgqvjgrrjgqoNCivjg4/jgrPjgrfjg54s44Ov44K/44OrDQor44OP44K344Oi44OILOODquODp+OCpg0KK+ODj+OCt+ODouODiCzjgrHjgqQNCivjg4/jgrvjgqzjg68s44Kx44Oz44K/44Ot44KmDQor44OP44K/44Kx44Ok44OeLOODpuODleOCsw0KK+ODj+ODg+OCvyzjg6bjg5INCivjg4/jg4Pjg4jjg6os44K144OI44OfDQor44OP44OK44KkLOOCv+OCseODj+ODqw0KK+ODj+ODiuODgCzjgrHjgqTjgrnjgrENCivjg4/jg57jgrDjg4Es44Kx44OzDQor44OP44Oe44OALOODnuODiuODnw0KK+ODj+ODnuODgCzjgrHjgqTjgrMNCivjg4/jg57jg44s44K/44Kr44Om44KtDQor44OP44Ok44Kr44OvLOODpuOCrQ0KK+ODj+ODpOOCtyzjg4bjg4TjgqoNCivjg4/jg6Tjgrcs44OI44Oi44OK44KsDQor44OP44Ok44K3LOOCseODs+OCv+ODreOCpg0KK+ODj+ODqSzjg4HjgqvjgrMNCivjg4/jg6ks44Ok44K544Ki44KtDQor44OP44Op44OALOODn+OCqA0KK+ODkuOCqOOCq+OCvyzjgrXjg4jjgrMNCivjg5LjgqzjgrUs44Ki44OE44K3DQor44OS44Ks44OfLOOCu+OCpOOCuA0KK+ODkuOCreODjizjg4bjg4TjgrgNCivjg5Ljg4As44K/44Kr44K3DQor44OS44OA44KrLOOCt+ODsw0KK+ODkuODh+OCt+ODnizjg5/jgq3jgrMNCivjgrXjgqvjgqQs44K444Ol44Oz44OkDQor44OS44Op44KkLOODj+ODpOODiA0KK+ODkuODqeOCpOODryzjgqjjg4TjgrMNCivjg5Ljg6njgr8s44OS44OH44KtDQor44OS44Op44OQ44Ok44K3LOODiuOCquODpuOCrQ0KK+ODkuODreOCuyzjgqLjg6TjgrMNCivjg5Xjgqvjgqos44Of44Om44KtDQor44OV44Kv44KkLOODkuODh+ODkuOCsw0KK+ODleOCr+OCtuOCrSzjg5/jg6zjgqQNCivjg5Xjgq/jg4As44Oo44Km44OY44KkDQor44OV44Kv44OALOODpOOCueODkuODrQ0KK+ODleOCr+ODgCzjg57jgrXjg6sNCivjg5Xjgq/jg4As44K444Ol44Oz44Kk44OBDQor44OV44Kv44OP44OpLOODpuOCreOCsw0KK+ODleOCr+ODoOODrSzjg5Ljg63jg5Xjg58NCivjg5Xjgrjjgqbjg6ks44Ki44OkDQor44OV44K444Kq44KrLOOCs+OCpuOCpOODgeODreOCpg0KK+ODleOCuOOCquOCqyzjg57jg6QNCivjg5Xjgrjjgr8s44K344Ky44OrDQor44OV44K444Oi44OILOODpuOCq+ODqg0KK+ODleOCuOODouODiCzjgqjjg6rjgrMNCivjg5Xjgrjjg6/jg6ks44Ki44Kt44OS44OtDQor44OV44K/44Og44OsLOOCpOOCteOCqg0KK+ODleODq+OCteODryzjgqTjg4Hjg63jgqYNCivjg5Xjg6vjgr8s44OS44K144KqDQor44OV44Or44OkLOODkuODh+OCqg0KK+ODm+OCs+ODqSzjg57jg4TjgqoNCivjg5vjgrfjg44s44K544Of44KqDQor44Ob44K344OOLOOCv+ODouODhA0KK+ODm+OCveODjizjg5Ljg63jg5/jg4ENCivjg5vjg6os44OI44K3DQor44Ob44Oq44Km44OBLOOCqOODhOOCqg0KK+ODm+ODquOCquOCqyzjg6TjgrnjgqoNCivjg5vjg6rjgrDjg4Es44K444Ol44Oz44Kk44OBDQor44Ob44Oz44OeLOOCpOOCteOCqg0KK+ODnuOCqOOCq+ODryzjg4jjg6Ljg6bjgq0NCivjg57jgqjjgrjjg54s44Kz44Km44K4DQor44Oe44Ko44OALOODiOOCt+ODkuODrQ0KK+ODnuOCqOODj+ODqSzjg4jjgrfjg5LjgrMNCivjg57jgq0s44K344Ky44OO44OqDQor44Oe44Kt44OOLOOCv+OCseOCqg0KK+ODnuOCueOCpCzjg5Ljg63jgrcNCivjg57jgrnjg4As44Kt44Oo44K3DQor44Oe44K544OALOODnuOCteODn+ODhA0KK+ODnuODhOOCpCzjgqvjg7PjgrgNCivjgq/jg57jgqzjgqQs44Kr44OE44OS44KzDQor44Kr44ON44KzLOODquODp+OCpuOCuA0KK+OCs+ODn+ODpCzjg47jg5zjg6sNCivjgrPjgqzjgqTjg4gs44Of44OB44KzDQor44Kr44Oz44OQ44Ok44K3LOODhuODq+ODnuOCtQ0KK+OCreODjuOCt+OCvyzjg4/jg6vjg5LjgrMNCivjgq3jgq/jg4Es44Of44OO44OrDQor44Kz44Oe44OQLOODpuOCv+OCqw0KK+OCs+OCr+ODlizjg5/jg4TjgrMNCivjgrPjg5Djg6Tjgrcs44OS44Ot44K3DQor44Kz44OQ44Ok44K3LOODhuODq+OCqg0KK+OCreODhOOCv+OCqyzjg4Hjg6XjgqbjgrHjg7MNCivjg57jg4Tjgqos44K/44Kr44Om44KtDQor44Kr44Ov44KkLOODnuODiuODlg0KK+OCr+ODquODj+ODqSzjg4jjgqrjg6sNCivjgqvjg4njg44s44OS44Ot44Oo44K3DQor44Kr44Of44Kv44OcLOOCseODs+OCuA0KK+OCq+ODr+OCsOODgSzjgr/jgqvjgrcNCivjgqvjg57jgr8s44Oe44K144Oi44OIDQor44Kr44Oz44OALOOCq+OCuuODnw0KK+OCq+ODs+ODgCzjg5/jg4TjgqoNCivjgrPjgrfjg6Djg6ks44OI44K344Om44KtDQor44Oe44OE44KqLOOCreODqOOCtw0KK+OCr+OCteOCrSzjgrjjg6Xjg7PjgrgNCivjgqvjg6Ljg4/jg6ks44Oe44K144OV44OfDQor44Kr44K144K444OeLOODiOOCt+ODnuOCtQ0KK+ODnuODhOOCrSzjg6jjgrfjgqvjgroNCivjgqvjg5/jgq/jg6ks44OE44ON44KqDQor44Kv44Oq44OP44OpLOODjuODluOCouOCrQ0KK+ODiuOCq+ODgSzjgq3jg6jjgrcNCivjgqvjgqzjg68s44K344Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOOCu+OCpOOCuA0KK+OCq+ODs+ODjizjg4jjgrfjgqoNCivjg57jg4Tjgrfjgr8s44OV44Of44KqDQor44Kr44K344Ov44OALOOCquOCteODoA0KK+OCs+ODs+ODjizjgqvjgrrjgqoNCivjgrPjgrnjgq4s44Oo44K344OfDQor44Kz44Oi44OqLOODiOOCt+ODreOCpg0KK+OCq+ODr+ODjizjg6bjgq3jgqoNCivjgq3jgr/jg6Djg6ks44K/44Kx44OS44KzDQor44Kr44K444OeLOODhuODhOODpA0KK+OCq+ODiOOCpizjg5Ljg4fjgqoNCivjgrPjg6Tjg44s44Om44Kt44KqDQor44Kr44OE44Oe44K/LOODiOOCt+OCq+OCug0KK+OCr+ODr+ODgCzjgrHjgqTjgrgNCivjgrPjgr/jg4ss44Ok44Oe44OIDQor44Kr44K444Km44OBLOODjuODluOCsw0KK+OCs+ODs+ODiSzjgr/jgqvjgrcNCivjgrPjg7Pjg4ks44Oo44K344Kr44K6DQor44Oe44OE44OK44OfLOOCt+ODs+ODpA0KK+OCq+OCrOODpOODnizjg57jgrXjg4/jg6sNCivjgqvjg43jgrMs44Ok44K544OS44KzDQor44Kz44Ok44OeLOODpOOCueODj+ODqw0KK+OCreODhOOCq+ODryzjgrPjgqbjgrvjgqQNCivjgqvjgrfjgq/jg6ks44Kr44Oz44K4DQor44Kv44Ot44KtLOODqOOCt+ODpuOCrQ0KK+OCs+OCpOOCuuODnyzjgrfjg6Xjgqbjg5jjgqQNCivjgq/jgrws44Of44Kt44KqDQor44Kr44Ov44Kr44OfLOOCseOCpOOCsw0KK+OCq+ODnyzjgrXjg4HjgqoNCivjgq3jg6Djg6ks44OI44Kq44OrDQor44Oe44OE44OOLOOCq+OCuuODkuOCtQ0KK+OCreOCr+OCvyzjgqrjgrXjg6ANCivjgq/jg57jg4As44Oe44K144Ki44KtDQor44Kv44OL44OP44OpLOOCt+ODpeODs+OCpOODgQ0KK+OCs+OCuOODnizjg6bjgr/jgqsNCivjgq/jg6rjg4/jg6ks44Oe44K144OO44OqDQor44Oo44ON44Kv44OpLOODqOOCt+OCv+ODnw0KK+OCs+ODkOODpOOCtyzjg4Tjg43jgqoNCivjgrPjg5Djg6Tjgrcs44OG44OE44KqDQor44Kz44K444On44KmLOOCteODiuOCqA0KK+OCreODoOODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44Oe44K144Ki44KtDQor44Kz44Oz44OJLOODjuODluOCq+OCug0KK+OCq+ODr+OCpCzjg4jjgrfjgqvjg4QNCivjgq/jg57jg4/jg6ks44Kx44Oz44K4DQor44Kt44K7LOODn+ODgeODpOOCuQ0KK+OCq+OCt+OCr+ODnizjgrHjg7Pjgr7jgqYNCivjgqvjgrMs44K444Ol44Oz44Kk44OBDQor44Kk44K344Ks44KkLOODqOOCt+OCouOCrQ0KK+OCq+ODn+OCsOODgSzjgr/jg4DjgrcNCivjgq/jg6Ljg4As44OI44K344KqDQor44Kz44Oe44OELOOCt+ODp+OCpuOCpOODgQ0KK+OCq+ODjeODgCzjg5/jg4TjgqoNCivjgq3jgq/jg4Es44Oo44K344OS44K1DQor44Kz44K/44OLLOODqOOCt+ODpuOCrQ0KK+OCs+ODkOODpOOCtyzjg6Tjgrnjg4gNCivjgqvjg6/jgrDjg4Es44Oo44K344KqDQor44Kr44ON44KzLOODkuODreOCouOCrQ0KK+OCq+ODoizjg6jjgrfjgqLjgq0NCivjgqvjg6/jg6Djg6ks44Ko44Kk44K4DQor44Kv44Oe44OOLOODnuOCteODpuOCrQ0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqgNCivjgq3jg6Djg6ks44Kr44K644OS44K1DQor44Kt44K344Oi44OILOODkuODreODkuOCtQ0KK+OCreODoOODqSzjgq3jgrfjgqoNCivjgqvjg5/jgrDjg4Es44OG44OE44OkDQor44Kt44Og44OpLOODnuOCteODj+ODgQ0KK+OCs+ODkOODpOOCtyzjgrfjg6Xjg7PjgrgNCivjgqvjg4njgq/jg6ks44Kr44OK44KzDQor44Kt44K/44Og44OpLOODkuODh+ODqA0KK+OCq+ODhOOCrSzjg5LjgrXjgrcNCivjgqvjg7Pjgrbjgq0s44Oe44K144OO44OWDQor44Kr44K/44Ku44OqLOOCpOOCr+ODnw0KK+OCs+ODkOODpOOCtyzjg47jg5bjgrMNCivjgrPjg57jg4Tjgrbjgq0s44Kz44Km44K+44KmDQor44Kt44K/LOODkuODreODjuODqg0KK+OCq+ODhOODj+ODqSzjgrfjg6XjgqYNCivjgrPjgrDjg6ws44Ki44Kt44KoDQor44Kz44K444OeLOOCouODhOOCtw0KK+OCs+ODoeODgCzjg5LjgrXjgrcNCivjgrPjg4vjgrcs44Kx44Oz44Kk44OBDQor44Kv44Ov44OP44OpLOODpOOCueODnuOCtQ0KK+OCs+ODpOODnizjg5Ljg4fjgqLjgq0NCivjg57jg4Tjg6Ljg4gs44OO44Oq44Om44KtDQor44Kr44K444Oi44OILOODqOOCt+OCouOCrQ0KK+OCr+ODnuOCtuODryzjgqvjg4Tjg58NCivjgq3jg6Djg6ks44OI44K344KqDQor44Kz44OQ44K344Ks44OvLOODkuODiOOCtw0KK+OCq+ODn+ODpCzjg6bjgqYNCivjg57jg4Tjg6Ljg4gs44K344On44Km44K4DQor44Kz44OP44K3LOOCqOOCpOOCvuOCpg0KK+OCs+ODgOODnizjgrzjg7PjgqTjg4ENCivjgqvjg6/jgqvjg58s44Kr44K644OfDQor44Oe44OE44Oi44OILOODj+ODq+OCqg0KK+OCq+OCpOODiSzjg5/jg5sNCivjgq3jg6Djg6ks44OI44K344KqDQor44Kv44K0LOOCreODqOODnw0KK+ODnuODhOODouODiCzjg6jjgrfjg6bjgq0NCivjg57jg4Tjg6Tjg54s44Oq44On44Km44K544KxDQor44Oe44Or44Ok44OeLOOCteODgeOCsw0KK+OCs+ODs+ODjizjgq3jg6jjgrcNCivjgq/jg63jgq0s44K444Ol44OzDQor44Kz44Of44OkLOODquODp+OCpuOCsw0KK+OCreODoOODqSzjg4rjgqrjg6bjgq0NCivjgq3jg44s44Of44KiDQor44Kz44Oe44OELOODpuOCrQ0KK+OCq+ODjeODgeOCqyzjg6rjg6fjgqbjgrnjgrENCivjgqvjg4rjgr/jg4ss44Oq44KoDQor44Kz44OQ44Ok44K3LOODqOOCt+ODreOCpg0KK+OCreOCv+ODpOODnizjgqvjg4rjgrMNCivjgqvjgrgs44OS44Ot44KzDQor44Kr44Ov44K344OeLOODiuOCquOCrQ0KK+OCreODoOODqSzjg57jgq3jgrMNCivjgrPjg5Djg6ks44K/44Kv44OeDQor44Kt44K/44Ks44OvLOODiuOCquOCv+OCqw0KK+ODnuODq+ODpOODnizjg4rjg5vjgrMNCivjgqvjg6Ljg7Ms44Oe44K144K3DQor44Of44Km44OpLOOCv+OCq+OCtw0KK+ODn+OCt+ODnizjgqvjg4Tjg5Ljg60NCivjg5/jgrnjgq4s44OI44Oi44Ki44KtDQor44Of44K644K/LOOCuOODpeODs+OCsw0KK+ODn+OCuuODouODiCzjg4rjg6vjgq0NCivjg5/jgr7jgrDjg4Es44Oe44K144KzDQor44Of44K644KrLOODpuOCv+OCqw0KK+ODn+ODiuODnyzjgr/jgrHjg6sNCivjg5/jg4rjg5/jgr/jg4ss44Oe44K144OIDQor44Of44ON44K/LOODpuOCreOCsw0KK+ODn+ODpOOCpCzjgrPjgqbjgr8NCivjg5/jg6Tjgqrjgqss44Kx44Oz44Ot44KmDQor44Of44Ok44K244KtLOODnuODpuODnw0KK+ODn+ODpOOCtuOCrSzjgrjjg6Xjg6oNCivjg5/jg6Tjg4/jg6ks44K/44OE44OS44KzDQor44Of44Oo44K3LOOCouOCreODjuODlg0KK+ODoOODqeOCq+ODnyzjg57jgrXjg5Ljg4cNCivjg6Djg6njgq0s44Ki44OE44KzDQor44Og44Op44K/LOOCseODs+OCuA0KK+ODoOODqeOCvyzjg5/jg4Hjg6QNCivjg6Djg6njgr8s44Oh44Kw44OfDQor44Og44Op44Ok44OeLOODnuOCteOCsw0KK+ODouODiOODjizjg6Tjgrnjg57jgrUNCivjg6Ljg6os44OI44K344Om44KtDQor44Oi44OqLOODiuOCqg0KK+ODouODquOCvyzjg5Ljg4fjg4jjg6INCivjg6Ljg6rjgr8s44Oq44KoDQor44Oi44Oq44Ok44OeLOOCouODhOOCtw0KK+ODouODquODpOODnizjgqvjgqrjg6oNCivjg6Tjgrbjg68s44Kr44K644KzDQor44Ok44K444OeLOODiOODouODkuODrQ0KK+ODpOODiuOCruODgCzjgqjjg6rjgrMNCivjg6Tjg57jgqzjgr8s44Kx44Kk44Kk44OBDQor44Ok44Oe44Kr44OvLOOCt+ODs+ODpA0KK+ODpOODnuOCsOODgSzjgrXjg4jjg58NCivjg6Tjg57jgrDjg4Es44Om44KtDQor44Ok44Oe44Kw44OBLOOCv+ODgOODpuOCrQ0KK+ODpOODnuOCteOCrSzjg57jgrXjgq0NCivjg6Tjg57jgrbjgq0s44Kx44OzDQor44Ok44Oe44K344K/LOOCt+ODpeOCr+ODmw0KK+ODpOODnuODgCzjg6jjgrfjgqLjgq0NCivjg6Tjg57jg4As44Kx44Oz44Kk44OBDQor44Ok44Oe44OALOOCt+ODpeODsw0KK+ODpOODnuODiuOCqyzjg57jgrXjgrcNCivjg6Tjg57jg40s44K344Oz44K0DQor44Ok44Oe44Oi44OILOODpOOCueODjuODqg0KK+ODpOODnuODouODiCzjgqvjgrrjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OS44OH44Om44KtDQor44Om44Kr44OvLOOCteODiOOCtw0KK+ODpuOCtizjgqLjgq3jgrMNCivjg6bjgr/jg4ss44Oq44KoDQor44Om44K/44OLLOODgOOCpOOCueOCsQ0KK+ODqOOCtCzjg4jjg6Ljg47jg6oNCivjg6jjgrPjg5zjg6os44Oe44K144K/44KxDQor44Oo44K344Kq44KrLOOCv+ODgOOCouOCrQ0KK+ODqOOCt+OCq+ODryzjg5Ljg63jg58NCivjg6jjgrfjg4As44OS44Ot44K/44KrDQor44Oo44K344OALOOCreODp+OCpuOCsw0KK+ODqOOCt+ODouODiCzjg6Ljg4jjgqoNCivjg6jjg43jg4As44Om44Of44KzDQor44Ov44Kr44K144OkLOOCt+OCuuOCqw0KK+ODr+OCv+ODiuODmSzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjg6/jgr/jg4rjg5ks44Ok44K544OS44OtDQor44Of44OE44Ok44OeLOODnuOCteODnw0KK+ODkuODqeOCquOCqyzjg6rjgrUNCivjgqvjg7Pjg44s44Kr44OE44OIDQor44Ov44KzLOODquOCqA0KK+OCouOCquOCrSzjg6/jgr/jg6sNCivjgqLjgqvjgqos44Oe44K144OO44OqDQor44Ki44Kr44KuLOODquODp+OCpuODmOOCpA0KK+OCouOCq+OCtyzjg5Ljg63jgrMNCivjgqLjgqvjg4Tjgqss44Ok44K544Om44KtDQor44Ki44Kr44OP44ONLOODkuODreOCouOCrQ0KK+OCouOCq+ODm+ODqizjg6bjgqbjgrMNCivjgqLjgq3jg6Ljg4gs44OB44KoDQor44Ki44Kt44Ok44OeLOODn+ODmw0KK+OCouOCteOCpCzjg57jgrXjgqvjgroNCivjgqLjgrXjg44s44Ok44K544OS44OtDQor44Ki44K144OSLOOCouOCteOCsw0KK+OCouOCteODmSzjgqvjg6gNCivjgqLjg4/jg6zjg7Ms44OA44Kk44K544KxDQor44Ki44OZLOODiOOCt+ODkuOCsw0KK+OCouODmSzjgqvjgqrjg6sNCivjgqLjg5ks44OS44Ot44OV44OfDQor44Ki44Oe44OOLOODnuOCteODnw0KK+OCouODoeODouODqizjgqLjg6rjgrUNCivjgqLjg6njgqQs44OS44OH44KqDQor44Ki44Op44KkLOOCqOODhOOCsw0KK+OCouODqeOCpCzjgqvjg4Tjg5Ljg60NCivjgqLjg6njgr/jg4ss44K144OE44KtDQor44Ki44Oq44OK44KrLOODiOODouODkuODrQ0KK+OCpOOCpOOCtCzjg47jg6rjgqLjgq0NCivjgqTjgqTjg4As44Oe44Om44OfDQor44Kk44Kx44OALOODqOOCt+OCv+OCqw0KK+OCpOOCs+OCrCzjgqjjg5/jgrMNCivjgqTjgrfjgqQs44Kr44Kq44OqDQor44Kk44K344Kq44KrLOOCv+OCq+OCtw0KK+OCpOOCt+OCtuOCqyzjg6bjgq3jgqgNCivjgqTjgrfjgrjjg54s44Of44KqDQor44Kk44K344OALOODpuOCpA0KK+OCpOOCt+ODiSzjg6bjgq3jgrMNCivjgqTjgrfjg44s44K/44Kr44KqDQor44Kk44K344Oe44OW44K3LOOCouOCreODkuODiA0KK+OCpOOCu+ODqizjgqrjg4jjg5LjgrMNCivjgqTjgr3jg5ks44OP44Or44KrDQor44Kk44K/44OLLOOCv+OCq+OCouOCrQ0KK+OCpOOCuuODjizjg5/jg4Tjg5Ljg60NCivjgqTjg4fjg44s44Oo44Km44OY44KkDQor44Kk44OI44KmLOODqOOCpuOCsw0KK+OCpOODiOOCpizjg5/jg4Tjgr/jgqsNCivjgqTjg4jjgqYs44Oo44K344Ki44KtDQor44Kk44OI44KmLOODpuOCq+ODqg0KK+OCpOODiOOCpizjg57jg4oNCivjgqTjg4jjgqYs44K/44Kx44K3DQor44Kk44OI44Ok44OeLOOCouODhOOCtw0KK+OCpOODiizjgqLjgq3jg6kNCivjgqTjg4rjgrXjgq0s44Ok44K544OO44OqDQor44Kk44OK44OQLOODqOOCpuOCueOCsQ0KK+OCpOODiuODkCzjgr/jg4DjgrcNCivjgqTjg47jgqbjgqgs44K/44Kx44K3DQor44Kk44OO44Km44KoLOODjuODluOCv+OCqw0KK+OCpOODjuOCpuOCqCzjg57jg6rjgrMNCivjgqTjg5ks44Kt44On44Km44KzDQor44Kk44Oe44KkLOODpuOCreOCqA0KK+OCpOODnuOCquOCqyzjgrfjg6Xjgqbjg5jjgqQNCivjgqTjg57jg6Djg6ks44Oe44K144K3DQor44Kk44Ov44K/LOOCv+OCseODkuODrQ0KK+OCpOODr+OCvyzjg6jjgrfjg5Ljg60NCivjgqTjg6/jgr8s44Kq44K144OgDQor44Kk44Ov44OfLOODpuOCpuOCsw0KK+OCpOODr+ODouODiCzjgrHjg7PjgqTjg4Hjg60NCivjgqbjgqjjg4As44Os44Kk44KzDQor44Km44Ko44OOLOOCteODqQ0KK+OCpuOCqOODj+ODqSzjgr/jgqvjg47jg6oNCivjgqbjgqvjgqQs44OS44K144OK44KsDQor44Km44OA44Ks44OvLOODpuOCpuOCpOODgQ0KK+OCpuODgeODpOODnizjg5Ljg63jg57jgrUNCivjgqbjg4Tjg58s44OS44Ot44Om44KtDQor44Km44OE44OfLOODnuODquOCsw0KK+OCpuODjizjg57jgrPjg4gNCivjgqjjgqzjgrfjg6ks44K344Ol44Oz44K544KxDQor44Ko44OI44KmLOODkuODreOCrQ0KK+OCqOODiOODnyzjg5Ljg4fjg58NCivjgqjjg7Pjg4ks44Oh44Kw44OfDQor44Ko44Oz44OJLOODkuODreOCrQ0KK+OCquOCq+ODiSzjgr/jgqvjg5LjgrUNCivjgqrjgqrjgq/jg6ks44OS44Ot44KzDQor44Kq44Kq44K144KrLOOCv+ODhuOCrQ0KK+OCquOCquOCteOCqyzjgrPjgqbjgr/jg63jgqYNCivjgqrjgqrjgrXjg68s44K144OBDQor44Kq44Kq44K544OfLOOCteODiOOCsw0KK+OCquOCvyzjg4HjgqjjgrMNCivjgqrjgqrjgr/jg4ss44Oe44Kz44OIDQor44Kq44Kq44OL44K3LOODnuOCteODkuODrQ0KK+OCquOCquODi+OCtyzjg5/jg4Tjg6sNCivjgqrjgqrjg4vjgrcs44Og44K144K3DQor44Kq44Kq44OL44K3LOODnuOCteOCqg0KK+OCquOCquODjizjg4rjg5vjgrMNCivjgqrjgqrjg44s44Of44Kr44KzDQor44Kq44OOLOODqOOCpuOCsw0KK+OCquODnuODhCzjg6jjgqbjgrnjgrENCivjgqrjg6Djg6ks44OI44Oi44KzDQor44Kq44Kq44OkLOODpuOCreOCqA0KK+OCquOCqyzjg47jg6rjg5Ljg4gNCivjgqrjgqvjgqQs44Kx44Oz44Kk44OBDQor44Kq44Kr44Km44OBLOODiOODouODjuODqg0KK+OCquOCq+ODgCzjg6bjgqbjgq0NCivjgqrjgqvjg4As44Oe44Oq44KzDQor44Kq44Kr44OOLOODpOOCueODleODnw0KK+OCquOCq+ODoOODqSzjgqLjgqvjg6oNCivjgqrjgqvjg6Ljg4gs44K944KmDQor44Kq44Ks44OvLOOCpOOCuuODnw0KK+OCquOCrOODryzjgrPjgrrjgqgNCivjgqrjgqzjg68s44Kt44Oz44OkDQor44Kq44Ks44OvLOODn+ODgeOCsw0KK+OCquOCrOODryzjgr/jgq/jg6QNCivjgqrjgqzjg68s44Om44Of44KzDQor44Kq44Ku44OOLOOCqOODquOCsw0KK+OCquOCryzjgrXjg6TjgqsNCivjgqrjgq/jgqvjg68s44OS44Ot44Ki44KtDQor44Kq44Kv44OALOOCouOCreOCqg0KK+OCquOCr+ODoOODqSzjgrXjg4jjgrMNCivjgqrjgrbjgq0s44K/44Kr44Om44KtDQor44Kq44K444OeLOOCv+OCq+OCtw0KK+OCquOCvOOCrSzjgrHjgqTjgqTjg4ENCivjgqrjg4As44OS44Ot44Om44KtDQor44Kq44OALOOCouODhOOCsw0KK+OCquODgeOCouOCpCzjg4rjgqrjgq0NCivjgqrjg4jjgqzjg68s44Oq44On44Km44KzDQor44Kq44OOLOODn+OCuuOCrQ0KK+OCquOCquODj+ODqSzjgrHjgqTjgrMNCivjgqvjgqTjgrjjg54s44Kx44Oz44K/DQor44Kr44Ks44OvLOODiOODouODn+ODhA0KK+OCq+OCreOCqizjgr/jgqvjg6QNCivjgqvjgrHjg5Is44OI44Oi44OfDQor44Kr44K144KkLOODiuOCquOCsw0KK+OCq+OCteODnyzjg6jjgrfjg5Xjg58NCivjgqvjgrjjgr8s44Kx44Kk44Kk44OBDQor44Kr44K444K/44OLLOODnuOCteODiuODqg0KK+OCq+OCt+ODnizjg6Tjgrnjg5Ljg60NCivjgqvjgrfjg54s44Om44Km44KzDQor44Kr44K444Oi44OILOOCouODpOOCsw0KK+OCq+OCueOCrCzjgrXjg4rjgrMNCivjgqvjgrss44Os44Kk44KzDQor44Kr44K/44Ku44OqLOOCq+OCuuOCt+OCsg0KK+OCq+OCv+ODpOODnizjg6rjg6fjgqbjgrMNCivjgqvjgr/jg6Tjg54s44Om44Km44K4DQor44Kr44OI44KmLOODkuODiOOCtw0KK+OCq+ODiOOCpizjgq/jg4vjgqLjgq0NCivjgqvjg4jjgqYs44Kx44Oz44Kk44OB44OtDQor44Kr44OK44K244OvLOODkuODreOCq+OCug0KK+OCq+ODjeODn+ODhCzjg4jjg6Ljg47jg6oNCivjgqvjg47jgqYs44Om44Kt44KoDQor44Kr44Oe44K/LOODkuODreOCv+OCqw0KK+OCq+ODn+OCtuOCrSzjg57jgrXjg4jjgrcNCivjgqvjg58s44Oo44Km44Kk44OBDQor44Kr44Oh44K/44KrLOOCv+OCpOOCueOCsQ0KK+OCq+ODoizjgrHjg7Pjg6QNCivjgqvjg6/jgqQs44OI44Oi44Kr44K6DQor44Kr44Ov44KkLOOCuOODpeODqg0KK+OCq+ODr+OCq+ODnyzjgr/jgqvjgrcNCivjgqvjg6/jgqvjg58s44Of44KqDQor44Kr44Ov44Kw44OBLOOCouODpuODnw0KK+OCq+ODr+OCsOODgSzjgqvjgrrjg5Ljg4cNCivjgqvjg6/jgrDjg4Es44K144OI44K3DQor44Kr44Ov44K144KtLOOCuOODsw0KK+OCq+ODr+OCteOCrSzjg4rjgqrjgq0NCivjgqvjg6/jg4rjg58s44Ki44Kt44KzDQor44Kr44Ov44ONLOOCq+ODiuOCsw0KK+OCq+ODr+ODkOOCvyzjgqLjg6bjg58NCivjgqvjg6/jg6Djg6ks44Oi44KmDQor44Kr44Ov44Oi44OILOODpuOCpg0KK+OCq+ODs+ODgCzjg5/jg4njg6oNCivjgqvjg7Pjg4As44OK44Kq44K3DQor44Kr44Oz44OOLOODnuOCteOCsw0KK+OCreOCt+ODouODiCzjgrHjg7Pjgr/jg63jgqYNCivjgq3jgr/jgqzjg68s44K/44Kx44K3DQor44Kt44K/44OP44OpLOODiOODouODj+ODqw0KK+OCreOCv+ODoOODqSzjgrfjg6fjgqYNCivjgq3jgr/jg6Djg6ks44K344Oz44K0DQor44Kt44OM44OkLOODiOOCt+ODnw0KK+OCreODjuOCt+OCvyzjg4bjg4QNCivjgq3jg4/jg6ks44K/44OE44OkDQor44Kt44Og44OpLOODqOOCt+OCq+OCug0KK+OCreODoOODqSzjg57jgrXjg5Ljg60NCivjgq3jg6Djg6ks44Ki44Kt44Oo44K3DQor44Kt44Og44OpLOOCuOODpeODsw0KK+OCreODqOOCt+ODnizjg4/jg6vjg58NCivjgq3jg6jjgrrjgqss44Om44KtDQor44Kt44OpLOOCv+OCq+OCtw0KK+OCreODquOCteOCsyzjg4bjg4Pjg5rjgqQNCivjgq3jg7Ms44K144Om44OqDQor44Kt44OzLOODiuOCquOCsw0KK+OCr+ODi+OCqOODgCzjgqvjgrrjgqLjgq0NCivjgq/jg5ws44K044KmDQor44Kv44Oe44OOLOOCv+OCseODiA0KK+OCr+ODqeOCvyzjgqLjgq3jg5Ljg60NCivjgq/jg6njg4/jgrcs44K/44Kr44Ki44KtDQor44Kv44OsLOODiOOCquODqw0KK+OCr+ODreOCpCzjg6jjgrfjgr/jgqsNCivjgq/jg63jgq0s44Om44Km44KzDQor44Kv44Ov44OOLOODkuODreOCv+OCqw0KK+OCtOOCpizjgrXjgqgNCivjgrTjgqbjg4As44K/44Kx44OS44OtDQor44Kz44KsLOOCseOCpA0KK+OCs+OCr+OCt+ODp+OCpizjg4Tjg6jjgrcNCivjgrPjgrXjgqss44K344Ol44Km44Kk44OB44Ot44KmDQor44Kz44K444OeLOODquODp+OCpuOCueOCsQ0KK+OCs+OCvuODjizjgqLjgqTjg68NCivjgrPjg4Djg54s44Kk44Kv44KqDQor44Kz44OG44OpLOOCreODn+ODkuODrQ0KK+OCs+ODh+ODqSzjgrfjg7Pjgr/jg63jgqYNCivjgrTjg4jjgqYs44K/44OA44OO44OqDQor44K044OI44KmLOODkuODreOCsw0KK+OCs+ODi+OCtyzjg5/jgrXjgq0NCivjgrPjg4vjgrcs44Oo44Km44KzDQor44Kz44OL44K3LOODiOODouODpA0KK+OCs+ODkOODpOOCtyzjg4rjg4TjgrMNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44Kz44OQ44Ok44K3LOODgeOCqA0KK+OCs+ODkOODpOOCtyzjg4Tjg6jjgrcNCivjgrPjg5bjgrss44OS44OH44Om44KtDQor44Kz44Oe44KtLOODkuODreODiuOCqg0KK+OCs+ODnuOCtuODryzjgr/jgqvjg57jgrUNCivjgrPjg57jg4Tjg5Djg6ks44OI44Oi44OS44K1DQor44Kz44Ok44OeLOOCpOODgeODreOCpg0KK+OCs+ODs+ODiSzjg5Ljg63jgrMNCivjgrXjgqTjgq0s44Kr44Kq44OrDQor44K144KkLOOCq+OCuuODpA0KK+OCteOCpOODiOOCpizjgq3jg6fjgqbjgrMNCivjgrXjgqTjg4jjgqYs44Kz44Km44Kk44OBDQor44K144Kk44OI44KmLOODhuODq+ODkuOCtQ0KK+OCteOCpOODiOOCpizjg4/jgrjjg6ENCivjgrXjgqTjg4jjgqYs44OS44Ot44OfDQor44K144Kk44OI44KmLOODleODn+OCsw0KK+OCteOCpOODiOOCpizjg5Ljg4jjgrcNCivjgrXjgqTjg4jjgqYs44Oe44Kt44KzDQor44K144Kr44KkLOOCv+OCq+ODpuOCrQ0KK+OCteOCq+ODnyzjgr/jgqvjgrcNCivjgrXjgqvjg6Ljg4gs44Kz44Km44K4DQor44K144Kr44Oi44OILOODkuODh+OCrQ0KK+OCteOCq+ODouODiCzjg57jgrXjg6jjgrcNCivjgrXjgqvjg6Ljg4gs44OK44OK44KzDQor44K144Kr44Oi44OILOODqOOCpuOCpOODgeODreOCpg0KK+OCteOCr+ODqeOCpCzjgrXjg4Djg6jjgrcNCivjgrXjgq/jg6njgq4s44OK44Ob44KzDQor44K144K144KtLOODnuOCteOCrQ0KK+OCteOCteOCrSzjg6bjg5/jgqgNCivjgrXjg4jjgqYs44OV44Kv44K/44Ot44KmDQor44K144OI44KmLOOCt+ODpeOCpuOCteOCrw0KK+OCteODiOOCpizjgr/jgqvjgrcNCivjgrXjg4jjgqYs44Ki44KtDQor44K144OI44KmLOOCseODs+OCpOODgeODrQ0KK+OCteODiOOCpizjgqvjgrrjg5/jg4ENCivjgrXjg4jjgqYs44Om44OfDQor44K144OI44KmLOODquODp+OCpuOCueOCsQ0KK+OCteODjizjg4jjgqrjg6sNCivjgrXjg44s44Oq44On44Km44K544KxDQor44K144Ov44K144KtLOOCv+OCq+OCtw0KK+OCteODr+ODgCzjg5Ljg63jgrMNCivjgrXjg7Pjg5rjgqQs44K144OI44OrDQor44K344Kq44K644KrLOOCouODhOOCtw0KK+OCt+ODjizjgqvjgrrjg47jg6oNCivjgrfjg5Djgr8s44Kr44K644K/44KrDQor44K344OeLOOCuOODpeODsw0KK+OCt+ODnuODjizjg4jjgrfjgqLjgq0NCivjgrfjg5/jgros44Oo44K344KzDQor44K344Of44K6LOODnuODnw0KK+OCt+ODouOCq+ODryzjg6jjgrfjgqrjg58NCivjgrfjg6Ljg6Djg6ks44Ko44Kk44OWDQor44K344Ol44Kv44OqLOODnuODiuODnw0KK+OCt+ODp+OCpuOCuOODnizjgr/jg4TjgqoNCivjgrfjg6fjgqbjg4As44Kv44OfDQor44K344Op44Kk44K3LOODjuODquOCq+OCug0KK+OCt+ODqeOCq+OCvyzjgrjjg6Xjg7MNCivjgrfjg6njgrXjgq0s44Oi44Oi44KzDQor44K344Ot44K/LOODnuOCteODkuODrQ0KK+OCuOODs+OCsOOCpuOCuCzjgrfjgrLjgqvjgroNCivjgrfjg7Pjgr/jg4ss44Kx44Oz44K/DQor44K344Oz44OcLOODjuODluODpuOCrQ0KK+OCuOODs+ODnCzjg6Ljg4jjg4/jg6sNCivjgrfjg7Pjg6Djg6ks44OS44OH44OI44K3DQor44K544Ks44KkLOODhOODiOODoA0KK+OCueOCruODouODiCzjg5/jg5sNCivjgrnjgq7jg6Ljg6os44OS44Ot44KzDQor44K544Ku44Ok44OeLOOCv+OCq+ODjQ0KK+OCueOCruODpOODnizjgrjjg6Xjg7MNCivjgrnjgq7jg6Tjg54s44K/44Kv44OeDQor44K544K644KtLOOCreOCr+OCsw0KK+OCu+OCrOODryzjgrjjg6Xjg7MNCivjgrvjgq0s44Kx44Oz44K4DQor44K744Kt44ONLOODkuODreOCtw0KK+OCu+OCreODouODiCzjgqvjg4TjgqLjgq0NCivjgrvjg4gs44Ki44OE44K3DQor44K744OpLOOCq+OCuuODqOOCtw0KK+OCveODh+ODpOODnizjgr3jg6njgrMNCivjgr3jg47jgqQs44OG44Or44KoDQor44K/44Kk44OpLOODnuOCteOCtw0KK+OCv+OCq+OCrSzjg5/jg4Hjg6sNCivjgr/jgqvjg4/jgrcs44Os44KkDQor44K/44Kr44OP44K3LOODn+ODjeOCsw0KK+OCv+OCq+ODj+OCtyzjg4jjg6LjgqoNCivjgr/jgqvjg4/jg54s44Kz44Km44KtDQor44K/44Kr44Of44OkLOODgeODj+ODqw0KK+OCv+OCq+ODpOODiuOCrizjgqvjgrrjg5LjgrMNCivjgr/jgqvjg6Tjg54s44K144OI44K3DQor44K/44Kw44OBLOODr+OCv+ODqw0KK+OCv+OCseOCpuODgSzjgqLjg4TjgrcNCivjgr/jgrHjgrbjgq0s44Oe44Om44KzDQor44K/44Kx44K344K/LOOCteODiOODnw0KK+OCv+OCseODouODiCzjg5Ljg63jg4jjg6INCivjgr/jg4As44Ki44OE44KzDQor44K/44OB44Kr44OvLOODnuOCs+ODiA0KK+OCv+ODgeODkOODiizjg4rjgqrjg4gNCivjgr/jg4Tjgqzjg68s44OI44Oi44KzDQor44K/44OK44KrLOODpOOCueODjuODqg0KK+OCv+ODiuOCqyzjgqLjgq3jg6gNCivjgr/jg4rjgqss44Oe44K144K/44KrDQor44K/44OK44KrLOOCs+OCpuOCueOCsQ0KK+OCv+ODiuOCqyzjgrXjg4HjgqgNCivjgr/jg4rjgqss44K344On44Km44OY44KkDQor44K/44OK44OZLOODjuODquOCsw0KK+OCv+ODi+OCsOODgSzjgr/jgrHjgrcNCivjgr/jg4vjg6/jgq0s44OS44Ot44OV44OfDQor44K/44OQ44K/LOODqOOCt+ODkuOCtQ0KK+OCv+ODj+ODqSzjgrHjg7PjgrgNCivjgr/jg57jgq0s44OK44Kq44KzDQor44K/44Oe44Og44OpLOODnuOCs+ODiA0KK+OCv+ODq+ODnyzjg5Ljg63jg58NCivjgr/jg7Pjg5Djg6ks44Oq44On44Km44KzDQor44OB44Kr44OELOODhuODhOODkuOCsw0KK+ODgeODkCzjgqvjg5vjg6oNCivjg4Hjg6fjgqYs44Oq44On44Km44K/DQor44OE44Kr44OALOODhuODhOODpA0KK+ODhOOCq+ODouODiCzjgrXjg4HjgqsNCivjg4Tjgrjjg6Ljg4gs44Of44KtDQor44OE44OB44OALOOCseOCpOOCsw0KK+ODhOODgeODpCzjgr/jgqvjgqLjgq0NCivjg4Tjg4Hjg6Qs44OB44Kr44OpDQor44OE44OE44OfLOOCteODiOOCtw0KK+ODhOODnOOCr+ODqSzjgr/jgq/jg6QNCivjg4Tjg6Djg6ks44OI44Oi44KoDQor44OG44K344OeLOOCouOCreOCsw0KK+ODhuODqeOCteOCrSzjg57jgrXjg5Ljg4gNCivjg4bjg6njgrXjgq0s44Kv44OfDQor44OG44Op44OALOOCv+OCseODj+ODqw0KK+ODieOCpCzjg4jjg6LjgrMNCivjg4njgqQs44OO44OW44K/44KrDQor44OI44KmLOODkuODreOCsw0KK+ODiOOCreOCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4jjgq3jg4gs44Oq44On44Km44K544KxDQor44OI44Kv44OALOOCqOODnw0KK+ODiOOCt+OCuuODnyzjg57jg5sNCivjg4jjg4As44K344Ol44Oz44K544KxDQor44OI44Oo44OALOODkuODreOCouOCrQ0KK+ODiuOCpOODiOOCpizjg6rjg6fjgqbjgr8NCivjg4rjgqvjgqQs44Oe44K144OI44K3DQor44OK44Kr44KqLOOCouOCreODkuOCsw0KK+ODiuOCrOOCqizjgqjjg6rjgrMNCivjg4rjgqvjgqzjg68s44OI44Oi44OfDQor44OK44Ks44K144KrLOODn+ODgeOCsw0KK+ODiuOCq+OCteOCqyzjg6Tjgrnjg5Ljg60NCivjg4rjgqzjgrXjgq0s44Om44Km44Kk44OB44OtDQor44OK44Kr44K244OvLOODpuOCpuODmOOCpA0KK+ODiuOCq+OCtuODryzjg6jjgqbjgrMNCivjg4rjgqvjgrfjg54s44Om44Km44OkDQor44OK44Kr44K444OeLOOCqOODn+OCsw0KK+ODiuOCq+OCt+ODnizjgqLjgq3jg5Ljg60NCivjg4rjgqvjgrjjg54s44K344Ol44Km44K/44Ot44KmDQor44OK44Kr44K444OeLOODquODp+OCpuOCueOCsQ0KK+ODiuOCq+ODgCzjgqvjg6jjgrMNCivjg4rjgqvjg4As44Ki44Ok44KzDQor44OK44Ks44OE44KrLOOCpOOCteOCqg0KK+ODiuOCq+ODiCzjgrfjg6XjgqbjgrgNCivjg4rjgqvjg4vjgrcs44Of44OJ44OqDQor44OK44Kr44OL44K3LOOCueOCueODoA0KK+ODiuOCq+ODi+OCtyzjgqTjgr/jg6sNCivjg4rjgqzjg57jg4Qs44Oe44K144OS44OtDQor44OK44Kr44Og44OpLOOCt+OCsuODiOOCtw0KK+ODiuOCq+ODoOODqSzjgq3jg6fjgqbjgrMNCivjg4rjgqvjg6Djg6ks44Ki44Ok44KzDQor44OK44Kr44Og44OpLOODnuODpg0KK+ODiuOCq+ODoOODqSzjgrHjgqTjgrMNCivjg4rjgqvjg6Djg6ks44OK44Kq44KzDQor44OK44Kr44Og44OpLOODkuODreOCq+OCug0KK+ODiuOCq+ODoOODqSzjgrXjg6TjgrMNCivjg4rjgqvjg6Ljg6os44OG44OE44OkDQor44OK44Kr44OkLOODpuOCpuOCuA0KK+ODiuOCq+ODpOODnizjgr/jgrHjgrcNCivjg4rjgrks44Kz44Km44K4DQor44OK44Oq44OI44OfLOOCt+ODs+OCv+ODreOCpg0KK+ODiuODs+ODlizjg4jjg6Ljg6QNCivjg4vjgqTjg58s44Ok44K544K/44KrDQor44OL44K344Kr44OvLOOCveODjuOCsw0KK+ODi+OCt+ODjizjg6bjgqsNCivjg4vjgrfjg6Tjg54s44K/44Kr44OS44OtDQor44OM44Kr44OALOODqOOCt+OCsw0KK+ODjOODnuOCvyzjg6bjgqbjgqTjg4ENCivjg4zjg57jgr8s44K144OI44K3DQor44OO44Ks44OfLOOCteODiOOCtw0KK+ODjuOCrizjgqLjg6TjgrMNCivjg47jgq/jgqos44Kr44Kq44OqDQor44OO44Kw44OBLOOCv+OCq+ODpuOCrQ0KK+ODjuOCtuOCrSzjg4rjg4Tjg40NCivjg47jgrgs44Om44KtDQor44OO44OeLOODrOOCpOOCsw0KK+ODjuODoOODqSzjg57jgrXjgqoNCivjg47jg6Djg6ks44Om44Km44Kk44OBDQor44OQ44Kz44K3LOOCt+ODs+OCtA0KK+ODj+OCt+ODouODiCzjg4rjgqrjgrMNCivjg4/jgrnjg4zjg54s44OB44KoDQor44OP44K7LOODqOOCpuOCpOODgQ0KK+ODj+OCu+OCrOODryzjg5Ljg63jgrcNCivjg4/jgr/jgqzjg68s44K444Ol44Oz44KzDQor44OP44K/44Kx44Ok44OeLOODpuOCpuOCsw0KK+ODj+OCv+ODjizjg6jjgqbjgrMNCivjg4/jg4rjgqQs44Oq44KrDQor44OP44Oe44K144KtLOODnuOCs+ODiA0KK+ODj+ODnuODgCzjg5Ljg63jgr/jgqsNCivjg4/jg57jg4cs44K/44Kr44K3DQor44OP44Ok44Kr44OvLOOCouOCrQ0KK+ODj+ODpOOCtyzjgqLjg6QNCivjg4/jg6Tjgrcs44K144OI44KzDQor44OP44Ok44K3LOOCteODiOOCtw0KK+ODj+ODpOOCtyzjgrjjg6Xjg7MNCivjg4/jg6Tjgrcs44Oo44Km44KzDQor44OP44Ok44K3LOOCueOCueODoA0KK+ODj+ODqSzjg4jjg6Ljg5LjgrUNCivjg4/jg6njgrfjg4os44OO44OW44KtDQor44OP44Op44OALOOCouODhOOCtw0KK+ODj+ODqeODgCzjg5/jg4njg6oNCivjg4/jg6vjg4os44K344Ol44Km44K544KxDQor44OS44Kt44K/LOODkuODh+ODiA0KK+ODkuODgOOCpCzjg57jg6bjg58NCivjg5Ljg6njgqQs44Kt44On44Km44KzDQor44OS44Op44KkLOODpuOCpuOCueOCsQ0KK+ODkuODqeOCpCzjgqjjg6rjgrMNCivjg5Ljg6njgqTjg68s44Kv44Of44KzDQor44OS44Op44KqLOODkuODh+OCq+OCug0KK+ODkuODqeOCq+ODryzjg57jgq0NCivjg5Ljg6njgr8s44Oo44K344Ki44KtDQor44OS44Op44Oe44OELOOCv+OCq+OCqg0KK+ODkuODreOCqCzjgqLjg4TjgrcNCivjg5Ljg63jgrss44OS44OH44OO44OqDQor44OV44Kr44K244OvLOODkuODh+ODpuOCrQ0KK+ODleOCq+ODm+ODqizjg47jg6rjg5Ljg60NCivjg5Xjgq/jgrfjg54s44Oe44Kt44KqDQor44OV44Kv44OALOODkuODreODpuOCrQ0KK+ODleOCr+ODgCzjg5Ljg63jg5Xjg58NCivjg5Xjgq/jg4As44K144Ok44KrDQor44OV44K444KkLOODquOCqOOCsw0KK+ODleOCuOOCq+ODryzjgqvjgrrjg58NCivjg5Xjgrjjgr8s44Kx44Oz44K4DQor44OV44K444K/LOODnuOCteOCqg0KK+ODleOCuOOCvyzjg6jjgrfjg63jgqYNCivjg5Xjgrjjg6Djg6ks44OI44Oi44Om44KtDQor44OV44K444Og44OpLOOCouOCreOCsw0KK+ODleOCuOODouODiCzjgrfjg6fjgqbjg5jjgqQNCivjg5Xjgrjjg6Ljg4gs44Oq44Ol44Km44OY44KkDQor44OV44K444Ov44OpLOOCseOCpOOCteOCrw0KK+ODleOCuOODr+ODqSzjgrXjg4jjgrcNCivjg5Xjgr/jgqvjgr8s44K444Ot44KmDQor44OV44OK44KkLOOCteODgeOCsw0KK+ODleODq+OCq+ODryzjg5Ljg63jgrMNCivjg5Xjg6vjgqvjg68s44K444Ol44Oz44Kk44OBDQor44OV44Or44Oe44K/LOODiOODouODpA0KK+ODm+OCtyzjg6bjgq0NCivjg5vjgrfjgqbjg6ks44OS44Ot44K3DQor44Ob44K344OtLOOCpOODhOODnw0KK+ODm+OCveODgCzjgrfjg6Xjg7PjgrQNCivjg5vjg6os44OO44OW44OS44OHDQor44Ob44OqLOODpuOCrQ0KK+ODm+ODquOCqCzjg47jg5bjg4gNCivjg5vjg6rjgrDjg4Es44OO44K+44OgDQor44Ob44Oz44OKLOOCq+OCquODqw0KK+ODm+ODs+ODnCzjg5Ljg63jg6bjgq0NCivjg57jgqjjgqvjg68s44Of44OvDQor44Oe44Ko44OALOOCs+OCueOCsQ0KK+ODnuOCqOODgCzjgr/jgqvjgrcNCivjg57jgqjjg4As44Ko44OE44KzDQor44Oe44Kt44Km44OBLOOCseOCpOOCuA0KK+ODnuOCreODjizjgrfjg6fjgqbjgrMNCivjg57jgq3jg6Ljg4gs44OI44Oi44OO44OqDQor44Oe44K144OI44Km44OfLOODnuOCpOOCsw0KK+ODnuOCueOCpCzjg6jjgqbjgrnjgrENCivjg57jgrnjg4As44Oe44K144Om44KtDQor44Oe44K544OALOODn+ODmw0KK+ODnuODhOOCpCzjg5/jgqoNCivjg57jg4Tjgqbjg6ks44Kr44K644OS44K1DQor44Oe44OE44Kq44KrLOOCouOCreODkuODrQ0KK+ODnuODhOOCquOCqyzjg4jjg6LjgrMNCivjg57jg4Tjgqrjgqss44Oe44Om44OfDQor44Oe44OE44Kq44KrLOODgOOCpOOCueOCsQ0KK+ODnuODhOOCq+OCsizjg5LjgrXjgqoNCivjg57jg4Tjgrfjgr8s44K144OI44K3DQor44Oe44OE44OK44KsLOODr+OCv+ODqw0KK+ODnuODhOODkOODqSzjg47jgr7jg58NCivjg57jg4Tjg5Djg6ks44Ki44Kt44KzDQor44Oe44OE44Oi44OILOODkuODreODn+ODhA0KK+ODnuODhOODouODiCzjg5vjgq/jg4gNCivjg57jg4Tjg6Tjg54s44Oe44Kk44KzDQor44Of44Km44OpLOODquODp+OCpg0KK+ODn+OCpuODqSzjgqLjg4TjgrcNCivjg5/jgqbjg6ks44Ki44OE44K3DQor44Of44Km44OpLOOCreODqOODnuOCtQ0KK+ODn+OCrSzjg6bjgqbjgrgNCivjg5/jgrrjgqvjg68s44OS44Ot44Om44KtDQor44Of44K644K/44OLLOODpuOCreOCsw0KK+ODn+OCuuODjizjg6bjgqbjgrvjgqQNCivjg5/jgr3jg44s44K/44OA44Oe44K1DQor44Of44K+44OP44K/LOODgeOCqA0KK+ODn+ODiuOCrOODryzjg57jg4HjgrMNCivjg5/jg4rjgqzjg68s44Ki44OkDQor44Of44OK44OfLOODkuODreODpuOCrQ0KK+ODn+ODiuODnyzjgr/jgqvjgrcNCivjg5/jg4rjg5/jgqvjgr8s44K/44Kr44OO44OWDQor44Of44OK44Of44Og44OpLOODkuODh+OCrQ0KK+ODn+ODj+ODqSzjg57jgrXjgq0NCivjg5/jg6Djg6ks44Of44Kt44KzDQor44Of44Ok44KkLOODjuODluOCouOCrQ0KK+ODn+ODpOOCtuOCrSzjgqLjg4TjgrcNCivjg5/jg6Tjgrbjg68s44OK44Kq44OkDQor44Of44Ok44K244OvLOOCouOCreODqQ0KK+ODn+ODpOODoOODqSzjgqvjgqrjg6oNCivjg5/jg6Tjg6Djg6ks44Ki44OkDQor44Of44Ok44Oi44OILOODpuOCpuODmOOCpA0KK+ODn+ODpOODouODiCzjg57jgrXjg6QNCivjg5/jg6jjgrcs44OE44Kr44K1DQor44Og44ON44Og44OpLOODgeOCq+ODleODnw0KK+ODoOODqeOCq+OCvyzjg4jjg6Ljg6bjgq0NCivjg6Djg6njgrrjg58s44Of44OE44OO44OqDQor44Og44Op44K/LOOCr+ODn+OCsw0KK+ODoOODqeOCvyzjg57jgq0NCivjg6Djg6njg6Ljg4gs44Kr44K644OO44OWDQor44Og44Op44Ok44OeLOODiuOCqg0KK+ODouODqizjg4rjgqrjgrMNCivjg6Ljg6os44Kr44OE44Oe44K1DQor44Oi44OqLOOCouODhOODkuOCsw0KK+ODouODqizjgq/jg5/jgrMNCivjg6Ljg6os44Of44KtDQor44Oi44Oq44Km44OBLOODjuODquOCsw0KK+ODouODquOCt+OCvyzjg6bjgqbjgqTjg4Hjg60NCivjg6Ljg6rjgr/jg4ss44Kr44K644OIDQor44Oi44Oq44Oi44OILOOCsuODsw0KK+ODouODquODpOODnizjgrPjgqbjgrgNCivjg6Ljg63jgqgs44OS44Ot44Kr44K6DQor44Ok44K0LOODn+ODjuODqw0KK+ODpOOCueOCrOOCrSzjg4jjg6Ljg5Xjg58NCivjg6Tjgrnjg4As44Ki44Ok44KzDQor44Ok44K544Oi44OILOOCouODhOOCtw0KK+ODpOODhOODiuODnyzjgqLjgq3jgqoNCivjg6Tjg4rjgq7jgrXjg68s44Kx44Kk44K544KxDQor44Ok44OK44Ku44OP44OpLOOCt+ODs+OCueOCsQ0KK+ODpOODluODiuOCqyzjgr/jgqTjgrcNCivjg6Tjg57jgqbjg4Es44K/44Kr44Om44KtDQor44Ok44Oe44Kq44KrLOOCv+ODgOOCtw0KK+ODpOODnuOCquOCqyzjg4rjgqrjg6QNCivjg6Tjg57jgqrjgq0s44OS44Ot44Om44KtDQor44Ok44Oe44Ks44K/LOODnuOCs+ODiA0KK+ODpOODnuOCsOODgSzjgrfjg7PjgqTjg4ENCivjg6Tjg57jgrDjg4Es44OS44Ot44KzDQor44Ok44Oe44K344K/LOODnuODieOCqw0KK+ODpOODnuOCt+OCvyzjg4HjgqgNCivjg6Tjg57jg4As44OB44KoDQor44Ok44Oe44OALOOCuOODpeODs+OCuA0KK+ODpOODnuODgCzjg47jg5bjgrMNCivjg6Tjg57jg4As44Ki44OkDQor44Ok44Oe44OALOODnuOCreOCsw0KK+ODpOODnuODiuOCqyzjg6HjgrDjg58NCivjg6Tjg57jg6Djg6ks44Kk44OD44K744KkDQor44Ok44Oe44Og44OtLOOCq+ODiuOCsw0KK+ODpOODnuODouODiCzjgrPjgqbjg5jjgqQNCivjg6Tjg57jg6Ljg4gs44OG44Or44OS44KzDQor44Ok44Oe44Oi44OILOODnuOCteODpuOCrQ0KK+ODpOODnuODouODiCzjg5/jg4Tjg6jjgrcNCivjg6Tjg57jg6Ljg4gs44Of44OO44OrDQor44Ok44Oe44Oi44OILOOCt+ODjuODlg0KK+ODpOODnuODouODiCzjg4jjgqrjg6sNCivjg6Tjg57jg6Ljg4gs44Ki44K544KrDQor44Ok44Oe44Oi44OILOODr+OCv+ODqw0KK+ODpuOCouOCtSzjgq/jg5/jgrMNCivjg6bjgq0s44OK44Kq44KzDQor44Om44Oq44Ok44OeLOODjuODquODkuODrQ0KK+ODqOOCs+OCvyzjgqLjg4Tjg5LjgrUNCivjg6jjgrPjg4/jg54s44OI44K344Om44KtDQor44Oo44Kz44Ok44OeLOOCouODpuODnw0KK+ODqOOCs+ODpOODnizjgqvjgrrjgq0NCivjg6jjgrfjgqrjgqss44Kt44On44Km44KzDQor44Oo44K344Kq44KrLOODnuOCpOOCsw0KK+ODqOOCt+OCquOCqyzjg57jg6rjgrMNCivjg6jjgrfjg4As44K/44Kr44OI44K3DQor44Oo44K344OALOODiuOCquOCsw0KK+ODqOOCt+ODgCzjg4rjgqrjgrMNCivjg6jjgrfjg4As44Oe44Oq44KoDQor44Oo44K344OALOODpuOCpuOCuA0KK+ODqOOCt+ODgCzjg6bjgqbjgrgNCivjg6jjgrfjg44s44Om44KrDQor44Oo44K344OS44OtLOODpuODnw0KK+ODqOOCt+ODnuODhCzjg4jjgqrjg6sNCivjg6jjgrfjg6Djg6ks44OA44Kk44K544KxDQor44Oo44K344Og44OpLOOCq+OCuuODleODnw0KK+ODr+OCq+ODnuODhCzjg5Ljg63jg6QNCivjg6/jgq3jgr8s44Kr44K644KqDQor44Ov44Kt44K/LOOCseODs+OCt+ODreOCpg0KK+ODr+OCt+OCqizjg6jjgrfjgqLjgq0NCivjg6/jgrfjgrbjg68s44OB44Ki44KtDQor44Ov44OALOOCpOOCteODoA0KK+ODr+ODgCzjg4jjgrfjgqoNCivjg6/jg4As44Kk44K144KqDQor44Ov44OALOOCv+OCseOCtw0KK+ODr+ODgCzjgqvjg4TjgqgNCivjg6/jgr/jg4rjg5ks44Kr44K644K344OzDQor44Ov44K/44OK44OZLOODiOOCr+OCuA0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjg6/jgr/jg4rjg5ks44Kt44Oo44Kq44OfDQor44Ov44K/44OK44OZLOODqOOCt+ODkuODrQ0KK+ODr+OCv+ODiuODmSzjg6jjg6rjg5/jg4QNCivjg6/jgr/jg4rjg5ks44Kx44Kk44K4DQor44Ok44Oe44Kw44OBLOODouODiOOCuA0KK+OCueOCuuOCrSzjgrjjg63jgqYNCivjgrXjgrXjg44s44K544K544OgDQor44Kr44ON44KzLOOCv+OCseOCtw0KK+OCr+ODnOOCvyzjg6zjgqTjgrMNCivjgrPjgrnjgrHjgqzjg68s44Oe44K144OK44KqDQor44Kr44OK44KkLOOCteODluODreOCpg0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjgrPjg4Djg54s44K/44Kr44OS44KzDQor44Kz44OQ44Ok44K3LOODiOOCt+ODkuODrQ0KK+OCs+OCuOODnizjg4jjgqrjg6sNCivjgqvjg6Hjg6Tjg54s44Kr44K644OS44KzDQor44Kv44Op44OQ44Ok44K3LOODjuODluOCqg0KK+OCq+ODs+ODgCzjgqvjgrrjg6bjgq0NCivjgrPjg7Pjg44s44K444Ol44Oz44K4DQor44Kr44Ov44K344OeLOODnuOCteODiuODqg0KK+OCq+ODr+OCq+ODnyzjgrPjgqbjgrgNCivjgqvjg4rjgqss44Kr44Kv44K/44Ot44KmDQor44Kr44Ov44Og44OpLOODkuODreOCpuODnw0KK+OCreODoOODqSzjgrfjg6Xjg7PjgqTjg4ENCivjgqvjgrnjgqws44OS44Ot44K3DQor44Kz44K444OeLOODouODiOODqOOCtw0KK+OCq+ODr+ODjizjgrPjgqbjgqTjg4ENCivjgqvjg6/jg4os44Oo44K344Oe44K1DQor44Kz44K644OeLOOCv+OCseOCtw0KK+OCq+ODr+OCteOCrSzjg57jgrXjgqLjgq0NCivjgqvjgr/jg44s44Oe44K144Ki44KtDQor44Kr44K/44OALOOCouOCreOCqg0KK+OCreOCr+ODgSzjg57jgrXjgqrjg58NCivjgqvjg5/jgqbjg6ks44Kr44K644OS44OHDQor44Kr44ON44OALOODhuODhOOCqg0KK+OCs+ODs+ODjizjg6TjgrnjgqoNCivjgqvjg6/jg6Ljg4gs44K344Ky44OfDQor44Kr44OQ44OkLOODkuODreOCtw0KK+OCs+ODluOCr+ODrSzjgrHjg7Pjgq3jg4ENCivjgq/jg57jgqzjgqQs44Om44Km44K4DQor44Kz44Oz44OOLOODkuODh+OCrQ0KK+OCs+ODpOODnizjgrfjg6fjgqbjgqTjg4ENCivjgq3jgr/jgrfjg60s44OS44OI44K3DQor44Kz44OA44OeLOOCv+OCseOCtw0KK+OCq+ODiOOCpizjgqjjgqTjgqTjg4ENCivjgq3jg6Djg6ks44OI44K344OP44OrDQor44Kz44Kk44OHLOOCpOOCteOCqg0KK+OCr+ODpOODnizjgr/jgrHjgrcNCivjgq3jg6rjg4/jg6ks44Oi44Oq44OS44OtDQor44Kr44OoLOODnuOCteOCv+ODgA0KK+OCq+ODjeOCsyzjg4jjgrfjgqoNCivjgrPjg4/jg6ks44Kk44Ov44KqDQor44Kr44OI44KmLOODpuOCreOCqg0KK+OCs+OCpCzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgqvjg6Tjg54s44Kk44K144KqDQor44Kz44Kk44KxLOOCr+ODi+ODkuOCsw0KK+OCs+OCuOODnizjgqLjgq3jg4gNCivjgrPjg57jg4Qs44Oe44K144K4DQor44Kt44K/44Og44OpLOODjuODquODqOOCtw0KK+OCreOCv+ODr+OCrSzjgrzjg7PjgqTjg4Hjg60NCivjgqvjgrXjgrjjg54s44OS44Ot44OV44OfDQor44Kt44Og44OpLOODhuODhOODreOCpg0KK+OCq+ODn+OCsOODgSzjgrXjg4HjgqoNCivjgqvjg4jjgqYs44OV44K444KqDQor44Kr44Ov44Og44OpLOODiOOCt+ODkuODiA0KK+OCq+ODieOCvyzjg47jg5bjgr/jgqsNCivjgqrjgqrjgr/jgrEs44K344Ky44OrDQor44Kr44OI44KmLOODiOODouODnw0KK+OCreODjizjg47jg5bjg5LjgrUNCivjgqvjg58s44Oe44K144OfDQor44Kt44Kv44OBLOODnuOCteODpuOCrQ0KK+OCq+OCreOCpuODgSzjg5Ljg63jg5LjgrUNCivjgrPjgrjjg54s44Oe44K144OfDQor44Kr44K/44Kq44KrLOOCt+ODpeODs+OCueOCsQ0KK+OCr+ODnOOCvyzjg5Ljg63jg6bjgq0NCivjgq3jgr/jgrbjg68s44Oe44K144Ki44KtDQor44Kz44Of44ONLOODouODiOODpuOCrQ0KK+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgq3jgr/jgrrjg6Es44Kr44K644OI44K3DQor44Kz44OQ44Ok44K3LOOCq+ODhOOCqg0KK+OCq+ODr+OCsOODgSzjg6jjgrfjg5LjgrMNCivjgrHjgqzjgrXjg68s44OS44K144K3DQor44Kz44Km44OBLOODn+ODgeOCqg0KK+OCs+ODpOODnizjg4jjgqrjg6sNCivjgqvjg6/jgq3jgr8s44K/44Kr44OS44OHDQor44Kr44Ov44Of44OELOOCt+ODp+OCpuOCvuOCpg0KK+OCq+OCv+ODkuODqSzjgqLjg4TjgqoNCivjgqvjg6/jgq7jgrcs44OS44Ot44K3DQor44Kz44Oz44OJLOODqOOCt+ODn+ODhA0KK+OCreODoOODqSzjgqLjgq3jg5LjgrMNCivjgq/jg5zjg6Tjg54s44K344Oz44K/44Ot44KmDQor44Kv44Oe44Oi44OILOODnuOCteOCrQ0KK+OCq+ODr+OCvyzjg5Xjg5/jg6gNCivjgq/jg4vjg47jg5Ys44Ok44K544KqDQor44Kr44Oe44OALOOCv+OCq+OCtw0KK+OCq+OCryzjgqrjgrXjg6ANCivjgqvjg43jgrMs44Kq44K144OgDQor44Kz44OQ44Ok44K3LOOCouOCreODqQ0KK+OCq+OCt+OCqizjgrHjg7PjgrgNCivjgqvjg4rjgqTjg68s44Kx44Kk44K4DQor44Kx44Oz44Oi44OBLOOCv+ODgOOCtw0KK+OCreOCr+ODgSzjgqrjgrXjg6ANCivjgqvjgrbjg54s44Ok44K544Ki44KtDQor44Kz44Oe44OE44Oi44OILOOCqOOCpOOCsw0KK+OCs+ODs+ODiSzjgqvjg4Tjg5LjgrMNCivjgq3jgq/jgrfjg54s44Kr44OE44Oe44K1DQor44Kz44OQ44Ok44K3LOOCu+OCpOOCsw0KK+OCr+ODnuOCrOOCpCzjg57jgrXjg4jjgrcNCivjgqvjg4jjgqYs44Kr44K644OS44KzDQor44Oe44Or44OQ44Ok44K3LOOCv+OCq+OCtw0KK+ODoOODiOOCpizjgqvjg4Tjg58NCivjg5/jgr/jg4ss44K/44Kx44K3DQor44Of44OvLOODnuOCteOCtw0KK+OCt+ODn+OCuizjg4Tjg4jjg6ANCivjg5/jgrrjg44s44OI44K344KqDQor44Oe44OB44OALOOCq+OCuuOCqg0KK+ODnuODhOOCpCzjgqvjgrrjgr/jg58NCivjg5/jgqbjg6ks44Oq44Ol44Km44Kk44OBDQor44OS44OOLOODquODp+OCpuOCpOODgQ0KK+ODoOODqeOCq+ODnyzjg57jgrXjg5Ljg60NCivjg5/jg6Tjg44s44OS44Ot44Om44KtDQor44Oe44Or44KkLOODnuOCteODjuODqg0KK+ODoOODqeOCteOCrSzjg4jjgrfjgqoNCivjg57jgrXjgqss44OS44OH44OO44OqDQor44Of44ON44K/LOOCv+OCseODnw0KK+ODnuODhOODiuOCrCzjg6bjgr/jgqsNCivjg5/jg4rjgqzjg68s44K744Kk44K4DQor44Of44Ok44KxLOODiuOCquOCouOCrQ0KK+ODnuODhOODouODiCzjgrHjg7PjgqTjg4ENCivjg5/jgrXjg68s44OI44K344Om44KtDQor44Oe44Ko44OALOOCs+OCpuOCvuOCpg0KK+OCpuODgOOCrOODryzjg4jjgrfjgqvjg4QNCivjg5/jg6Tjg4/jg6ks44Kz44Km44K4DQor44Og44Op44KkLOOCt+ODp+OCpuOCuA0KK+ODnuODhOODouODqizjgrfjgrLjgq0NCivjg57jgrXjgq0s44Kt44Kv44KqDQor44Of44Km44OpLOOCqOOCpOOCuA0KK+ODouODiOODn+ODpCzjgq3jg6jjgrcNCivjg6Djg6njgqvjg58s44OS44Ot44OV44OfDQor44Oe44OI44OQLOODnuOCteOCouOCrQ0KK+ODn+OCpuODqSzjg4jjgrfjgqoNCivjg57jg4Tjgqvjg68s44Kr44K644OS44OtDQor44Of44K644K/44OLLOODiuOCquODkuOCsw0KK+ODn+ODpOODjizjg57jgrXjg6bjgq0NCivjg57jg4Tjg4As44OV44K144OB44KrDQor44Of44K5LOOCouOCreODqQ0KK+ODnuODhOODpOODnizjg4jjgrfjgqgNCivjg5/jg6Tjg6Ljg4gs44K/44OA44Ki44OEDQor44Of44K644OOLOODleODn+OCqg0KK+ODnuODq+ODpOODnizjgrvjgqTjgrgNCivjg57jg6vjgrMs44Of44OB44K/44KrDQor44Oi44OB44OALOODiOOCquODqw0KK+ODouODiOODj+OCtyzjg57jg6Ljg6sNCivjg5/jgrrjg6Qs44Kz44Km44K4DQor44Of44Ok44K244KtLOODn+ODgeODnuOCtQ0KK+ODn+ODpOOCrOODryzjg5/jg4Tjg6sNCivjg6Djg6njgrfjg54s44K/44OA44KqDQor44Oe44K544K144KzLOOCu+OCpOOCpOODgQ0KK+ODouODqizjgqTjg4Hjg63jgqYNCivjg6Ljg6rjgr8s44Kr44K644KqDQor44Of44OK44OfLOODqOOCt+OCouOCrQ0KK+ODn+ODpOOCrSzjg57jgrXjgqoNCivjg6Ljg6rjg6Tjg54s44Kx44Oz44K4DQor44Of44K644K/LOODqOOCt+OCqg0KK+ODnuODhOOCpCzjg5/jg4TjgrANCivjg57jg4Tjgqos44Oe44K144OoDQor44Oe44OE44K344K/LOODpuOCv+OCqw0KK+OCs+ODkOODpOOCtyzjgqvjg4Tjg58NCivjg6Djgqvjgqgs44Oe44K144K4DQor44Oi44Oq44KkLOOCruODp+OCuA0KK+ODouODquOCvyzjgr/jgqTjgr7jgqYNCivjg6DjgqvjgqQs44Oe44K144KqDQor44Oe44OE44KqLOODiOOCreODrw0KK+ODoOODqeODpOODnizjg6jjgrfjg5LjgrMNCivjg57jg4Tjg6Ljg4gs44OI44K344KqDQor44Of44Ok44K144OILOODn+ODjuODqw0KK+ODn+ODpOOCtuODryzjg6jjgrfjgqoNCivjg6Ljg6rjg6Djg6ks44K/44Kr44K3DQor44Og44Op44OOLOODkuODh+OCqg0KK+ODnuOCueODgCzjg5/jg47jg6sNCivjg6Djg6njgr8s44OO44OW44KqDQor44Of44Ok44K144KrLOOCseODs+OCuA0KK+ODouODiOODkOODpOOCtyzjg57jgrXjg5/jg4QNCivjg5/jgrrjg44s44Om44Oq44KzDQor44Oi44Oi44KkLOODqOOCt+OCqg0KK+ODnuODhOODgCzjg4jjgq/jgqoNCivjgrnjgqzjg6/jg6ks44OK44Kq44KoDQor44Oe44OE44OQ44OpLOODnuOCs+ODiA0KK+ODnuODhOODouODiCzjg5/jg47jg6sNCivjg5/jg6Tjg4/jg6ks44Ki44OE44Oo44K3DQor44Og44Op44Kk44K3LOODnuODouODqw0KK+ODnuODhOODoOODqSzjg57jg6Ljg6sNCivjg5/jg6jjgrcs44OG44OE44Oo44K3DQor44Oi44Oq44Oi44OILOOCq+OCuuOCqg0KK+ODn+OCuuOCv+ODiyzjgr/jgrHjgrcNCivjg57jg4Tjg5As44Ki44OE44K3DQor44Oe44OE44KkLOOCq+ODsw0KK+ODoOODqeOCq+ODnyzjgqvjgrrjgqoNCivjg6Ljg6rjgr8s44K344Ky44OP44OrDQor44Og44Op44K/LOOCt+OCsuOCqg0KK+ODnuOCteOCrSzjg5Ljg63jgrcNCivjg5/jg6Tjgrbjgq0s44Oo44K344KtDQor44Oe44OE44OQ44OpLOOCt+ODs+OCpOODgQ0KK+ODoOODqeODnuODhCzjgqLjg4TjgrcNCivjg6Ljg6os44OO44OW44Om44KtDQor44Oi44Oq44Og44OpLOODnuOCteOCq+OCug0KK+OCueODryzjg6jjgrfjg58NCivjgrPjg6/jgr/jg6os44OK44Kq44KtDQor44Oe44OE44K244KtLOODqOOCt+ODjuODlg0KK+ODnuODg+OCteOCrSzjg57jgrXjg5Ljg60NCivjg5/jgr/jgq8s44Kx44Kk44K+44KmDQor44Oe44OE44Kr44OvLOOCteODiOOCtw0KK+ODouOCrizjgrfjgrMNCivjg57jg5bjg4Es44Kt44Oo44K3DQor44Oe44OE44Oi44OILOODiOOCt+ODreOCpg0KK+ODouODqizjg6rjg6fjgqbjgqTjg4ENCivjg57jg4Tjgqbjg6ks44Kr44K644OK44OqDQor44Oe44Ko44OALOOCouOCreOCqg0KK+ODnuOCueODgCzjg5Ljg63jgrcNCivjg57jgqjjg4vjgrcs44OS44Ot44K3DQor44Oe44Or44Ok44OeLOODiuOCquODpA0KK+ODnuODhOODgCzjgr/jgqvjgqoNCivjg57jgq0s44OI44K344OS44KzDQor44Oi44Km44KoLOOCt+ODs+OCpOODgeODreOCpg0KK+ODoOODqeOCpCzjg4jjg6jjg58NCivjg57jg4TjgqQs44Kv44OL44OS44KzDQor44Oi44Oq44K/LOODnuOCteODqw0KK+ODnuOCqOODgCzjgr/jgqvjg5bjg58NCivjg6Djg6njgqbjg4Es44Kk44K144OgDQor44Of44OE44Ok44K5LOOCouOCreODqQ0KK+ODouODqizjgrHjg7PjgrgNCivjg57jg4Tjg4As44K144OI44K3DQor44Oe44OE44KqLOODnuOCteODleODnw0KK+ODnuODq+ODpOODnizjgqLjgq3jgqoNCivjg57jg4Tjgqzjgqgs44K344Ky44OS44OtDQor44Kr44Of44Kv44OpLOOCs+OCpuOCpOODgQ0KK+ODn+ODieODquOCq+ODryzjg6bjgqbjgrjjg63jgqYNCivjg57jgrnjg4As44K344Ky44OO44OWDQor44Of44OG44OpLOODpOOCueOCqg0KK+ODnuODhOODiuOCrCzjgqLjgq3jg6kNCivjg6Ljg6rjgqrjgqss44Oo44K344OfDQor44Of44K944KqLOOCqOODhOOCqg0KK+ODoOODqeODpOODnizjgqvjg4Tjg6jjgrcNCivjg6Ljg6rjg6Ljg4gs44K344Ky44OrDQor44Oi44OqLOODhOODiOODoA0KK+ODnuOCueODgCzjg5Ljg63jgr/jgqsNCivjg5/jg6Tjg6Ljg4gs44Kr44OE44Oe44K1DQor44Og44Op44K/LOODqOOCt+ODhuODqw0KK+ODn+ODiuODn+OCteODryzjgqvjgrrjg5Ljg60NCivjg57jgrfjg54s44K544Of44OS44OtDQor44Oi44Oq44Kw44OBLOODqOOCt+OCouOCrQ0KK+ODnuODhOOCpCzjgr/jgqvjgrcNCivjg57jgqjjgqvjg68s44OS44OI44K3DQor44Oi44OB44K644KtLOOCuOODpeODsw0KK+ODnuOCueODgCzjgrfjg7Pjgq3jg4ENCivjg57jg4Tjg6Ljg4gs44K444Ol44Oz44K+44KmDQor44Oi44Oq44OK44KsLOOCq+OCuuODjuODqg0KK+ODnuOCueODgCzjg5Ljg63jgr/jg58NCivjg5/jgqbjg6ks44Kv44OL44KqDQor44Oe44OE44OOLOOCv+ODgOOCqg0KK+ODnuODhOOCquOCqyzjg6jjgrfjg4bjg6sNCivjg57jg4HjgqQs44Kz44Km44Kk44OBDQor44Of44K644K/44OLLOODiOOCt+OCqg0KK+ODnuODhOODouODiCzjg6jjgrfjg47jg6oNCivjg57jgrXjgq0s44OS44OH44OIDQor44Oe44OE44Oi44OILOOCv+OCseOCtw0KK+ODn+ODhOODpCzjg5Ljg4fjg6TjgrkNCivjg5/jgrrjg44s44K444Ot44KmDQor44Oe44Ko44OALOODleODn+OCqg0KK+ODoOODqeODnuODhCzjgrHjg7PjgrgNCivjg6DjgrXjgrfjg44s44Ki44Kt44OpDQor44Oe44Ko44OP44K/LOODnuOCteODkuOCsw0KK+ODnuODhOOCtuODryzjg6jjgrfjgqoNCivjg5/jg4TjgqQs44Oo44K344Kr44K6DQor44Oi44Oi44OALOODn+ODhOOCq+OCug0KK+ODnuODhOOCqizjgqvjg4Tjg58NCivjg5/jg68s44K344Ol44Km44K4DQor44Og44Op44Kr44OfLOODhuODhOODpA0KK+ODn+OCq+ODnyzjg4/jg6vjgq0NCivjg4zjgqvjgrbjg68s44K344Oz44K4DQor44OK44Kr44Og44OpLOOCt+OCuuOCqA0KK+ODi+OCt+ODoOODqSzjgq/jg4vjg5LjgrMNCivjg4vjg4Pjgr8s44Kx44Oz44K4DQor44OK44Ks44OE44OmLOODiOOCreODpOOCuQ0KK+ODi+OCpOODjizjg5Ljg63jgrcNCivjgr/jg5bjg4Es44Kx44Oz44K4DQor44OL44K344OOLOOCteODluODreOCpg0KK+ODjOOCq+OCvyzjgr/jg6Ljg4QNCivjg4vjgrfjg6Djg6ks44OS44K144KqDQor44OK44Ks44OOLOOCv+OCq+ODpuOCrQ0KK+ODiuOCq+OCrOODryzjg6jjgrfjgqLjgq0NCivjg4vjgrfjg6Tjg54s44OS44Ot44K3DQor44OK44Kr44K444OeLOODnuOCteODkuODrQ0KK+ODi+OCt+ODgCzjg5/jg4TjgqoNCivjg4rjgqvjg6Djg6ks44OV44Of44KqDQor44OO44Og44OpLOODpuOCreOCqg0KK+ODiuOCq+ODouODiCzjg47jg6rjgqLjgq0NCivjg4rjgqvjgqzjg68s44Kr44K644K/44OfDQor44OK44Or44K144OvLOODhOODjeOCqg0KK+ODiuOCpOODiOOCpizjgr/jgrHjgqoNCivjg47jg5ks44Oo44K344OS44OHDQor44OL44K344OKLOODpOOCueODjuODqg0KK+ODjuODoOODqSzjgr/jg4DjgrcNCivjg4rjgqvjg6Djg6ks44K344Oz44K444Ot44KmDQor44OL44Kr44Kk44OJ44KmLOODqOOCt+ODpOOCuQ0KK+ODiuOCq+ODgCzjgr/jg4TjgqoNCivjg4vjgrfjg4os44Kt44Of44OS44OIDQor44OK44Oq44K/LOODiOOCt+OCqg0KK+ODjuOCsOODgSzjg6jjgrfjg5Ljg60NCivjg47jg6Qs44Kz44Km44KtDQor44OK44Ks44KkLOODnuOCteODiA0KK+ODiuOCq+ODoOODqSzjgq3jg6jjgrcNCivjg4vjgqTjgrrjg54s44K/44Kr44OfDQor44OK44Kr44Ks44OfLOOCt+ODpeOCpuOCpOODgQ0KK+ODiuOCrOOCvyzjgq3jgrfjgqoNCivjg4vjgrfjgrbjg68s44OP44OE44KoDQor44OO44K7LOOCuOODpeOCpuODreOCpg0KK+ODiuOCrOOCpCzjg6bjgq3jgqoNCivjg4vjgrfjgrbjg68s44Oe44K144KqDQor44OK44Kr44OP44K/LOOCq+OCuuODiOOCtw0KK+ODiuOCq+OCuOODnizjg5Ljg63jgrcNCivjg4rjgqvjg4As44Oe44OE44KqDQor44OO44OK44KrLOODnuOCteOCrQ0KK+ODiuOCq+OCrOODryzjg57jgrXjgqLjgq0NCivjg4rjgqvjgrfjg54s44K/44Of44KqDQor44OK44Kr44Oi44OILOODnuOCteODqw0KK+ODi+OCt+OCquOCqyzjg5Ljg63jgrcNCivjg4vjgrfjg57jgqgs44K344Oz44K/44Ot44KmDQor44OK44Kr44Og44OpLOODnuOCteOCqg0KK+ODiuOCq+ODi+OCtyzjgqvjgrrjgqoNCivjg47jg4As44Og44OE44OkDQor44OK44Kr44Og44OpLOOCouOCreODkuOCsw0KK+ODiuOCq+OCtuODryzjg6rjg6fjgqbjgqTjg4ENCivjg4vjgrfjg4As44Oo44K344Ot44KmDQor44OL44K344OALOOCv+ODgOODpuOCrQ0KK+ODi+OCpCzjg6rjg6fjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44OS44OI44K3DQor44OK44Kr44Km44OBLOODpOOCueOCqg0KK+ODiuOCq+OCuOODnizjgqvjgrrjgr/jgqsNCivjg4rjgqvjg6Djg6ks44Oe44K144OfDQor44OO44Og44OpLOOCr+ODi+ODkuOCsw0KK+ODi+OCt+ODoOODqSzjg6Tjgrnjg5Ljg60NCivjg47jg4rjgqss44K/44OA44OS44KzDQor44OL44K344Og44OpLOODiOOCt+ODkuODhw0KK+ODi+OCt+OCqizjgq3jg6jjgrcNCivjg4rjgqzjgqos44Kt44Oo44K3DQor44OL44Kk44OfLOOCseODs+OCuA0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg6bjgq0NCivjg43jgrrjgqss44Oo44K344OO44OqDQor44OK44Kr44Og44OpLOODpuOCreODiOOCtw0KK+ODiuOCq+OCtuODiCzjg4bjg4Tjg6QNCivjgqLjgrXjg44s44K444Ol44OzDQor44OO44Ks44OfLOOCr+ODi+ODkuODrQ0KK+ODiuOCq+OCuOODnizjgqvjgrrjg5LjgrMNCivjg4rjgqTjg4jjgqYs44Kr44K644Ki44KtDQor44OK44Kr44Og44OpLOODqOOCt+ODjuODqg0KK+ODiuOCq+ODi+OCtyzjgq3jg6jjgqLjgq0NCivjg4rjgqvjg4As44K/44Of44KqDQor44OK44Ks44K144OvLOOCv+OCq+OCtw0KK+ODiuOCrOODjizjgqvjgrrjg6bjgq0NCivjg4vjg4Pjgr8s44Om44K/44KrDQor44OK44Oz44OQLOODn+ODhOODkuODrQ0KK+ODjuOCuuOCqCzjgq/jg4vjg5/jg4QNCivjg4rjgqzjg58s44OS44Ot44K3DQor44OK44Ks44KkLOOCuOODpeODs+OCpOODgQ0KK+ODiuOCq+ODj+ODqSzjg5/jgrrjg5sNCivjg4rjgqvjgrjjg54s44K/44Kx44Oo44K3DQor44OK44Kr44K444OeLOOCq+ODhOOCqg0KK+ODi+OCt+ODgCzjgqLjgq3jg5LjgrMNCivjg4rjgqrjgqQs44K344OB44Ot44KmDQor44OK44OZ44K344OeLOODqOOCt+ODnuOCtQ0KK+ODiuOCq+ODjizjgrfjg6fjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44OP44Or44KqDQor44OO44OALOODn+ODhOODqOOCtw0KK+ODiuOCq+OCuyzjg4jjgrfjgqLjgq0NCivjg4rjgqvjgrjjg54s44Of44OE44K344KyDQor44OK44Ks44K144OvLOOCv+ODgOOCtw0KK+ODi+ODmOOCpCzjg5/jg4Tjg6gNCivjg4rjgqzjgqQs44Oq44On44Km44K544KxDQor44OK44Kr44K344OeLOOCv+OCq+OCqg0KK+ODiuOCq+OCqizjgrvjgqQNCivjg4rjgqvjgqzjg68s44OO44OW44KqDQor44OK44Kk44OI44KmLOOCs+OCpuOCpOODgeODreOCpg0KK+ODjuOCuOODnizjg6bjgqbjgrnjgrENCivjg4rjgqzjg44s44Om44Kt44KqDQor44OL44K344OALOOCq+OCuuOCqg0KK+ODiuOCq+ODgCzjgq3jg6jjgrcNCivjg4rjgqvjg4/jg6ks44K/44Kr44OO44K544KxDQor44OK44Kr44K444OeLOODoOODjeOCv+OCqw0KK+ODjeODouODiCzjgq3jg6jjgrcNCivjg4rjgqvjg6Djg6ks44Kx44Oz44K4DQor44OK44Ks44OI44OiLOODnuOCteODnw0KK+ODiuOCq+ODoOODqSzjg5Ljg4jjg58NCivjg4rjgqvjg6Tjg54s44Oo44K344KqDQor44OK44Kr44Og44OpLOODm+OCuuODnw0KK+ODiuOCq+ODoOODqSzjg5Xjg5/jg47jg6oNCivjg47jgrjjg54s44OG44OE44Ot44KmDQor44OK44Ks44OV44OBLOODpOOCueODrQ0KK+ODiuOCq+ODjizjgrTjgqTjg4ENCivjg4vjgrfjg6Tjg54s44K344Oz44Kk44OBDQor44OK44Kr44Og44OpLOODnuOCteODpuOCrQ0KK+ODiuOCrOOCt+ODnizjg4rjgqrjgrgNCivjg4vjg68s44Om44K/44KrDQor44OK44Kr44OOLOODpOOCueOCouOCrQ0KK+OCquODi+OCtuODryzjg6bjgq3jgqoNCivjgqrjgrfjgqvjgr8s44Oe44K144KqDQor44Kq44KrLOOCq+ODhOODkuODrQ0KK+OCquOCr+ODpOODnizjg47jg5zjg6sNCivjgqrjgq0s44K544Of44KqDQor44Kq44Kr44Of44OkLOOCseODs+OCuA0KK+OCquOCsOODqSzjg57jgrXjgq0NCivjgqrjgqrjg4cs44Oe44K144OO44OqDQor44Kq44OO44OALOODnuOCteODkuOCsw0KK+OCquOCquODi+OCtyzjg57jgrXjgq0NCivjgqrjgq/jg4As44Kt44On44Km44Kk44OB44Ot44KmDQor44Kq44Kv44OALOODiOOCt+OCqg0KK+OCquOCrOODryzjgrPjgqbjgrgNCivjgqrjg44s44Oe44K144KqDQor44Kq44Kq44K544OfLOOCs+OCpuOCuA0KK+OCquOCquODhOOCqyzjgr/jgqvjgrcNCivjgqrjgqrjg4jjg6Is44Oe44K144Ki44KtDQor44Kq44Kr44K244KtLOODpuOCpuOCuA0KK+OCquOCquODj+OCtyzjg5Ljg63jgrcNCivjgqrjgq7jg44s44OV44Of44KqDQor44Kq44K144OALOOCt+OCuuOCouOCrQ0KK+OCquOCquODkCzjg5LjgrXjgrcNCivjgqrjgrfjg54s44Ki44Ok44KzDQor44Kq44Kq44Kr44OvLOOCq+OCuuODpA0KK+OCquOCq+ODouODiCzjg5Ljg63jgrcNCivjgqrjgqzjg68s44OI44Kq44OrDQor44Kq44OOLOOCreODqOODiA0KK+OCquOCq+ODjizjg4jjgqrjg6sNCivjgqrjgrbjg68s44Om44Kt44Oe44K1DQor44Kq44OP44KvLOODkuODreOCtw0KK+OCquOCt+OCv+ODiyzjgr/jgqvjgrcNCivjgqrjgrbjg68s44OS44Ot44K3DQor44Kq44Kq44OP44K3LOOCv+OCq+ODjuODlg0KK+OCquOCquODj+OCvyzjgrPjgqbjg4jjgq8NCivjgqrjg47jg4fjg6ks44Of44OkDQor44Kq44OOLOODleODn+OCqg0KK+OCquOCquOCquOCqyzjg5XjgrjjgrMNCivjgqrjgqrjg44s44Oo44K344OO44OqDQor44Kq44Kq44OP44K3LOODpuOCv+OCqw0KK+OCquOCquOCvyzjgr/jgqvjgrcNCivjgqrjgqrjg6Ljg6os44Kx44Oz44K/44Ot44KmDQor44Kq44K344OeLOOCsw0KK+OCquOCq+ODouODiCzjgrPjgqbjgqTjg4ENCivjg5Ljg63jgrss44OI44Oi44Om44KtDQor44Kq44Kq44Of44K6LOODpOOCueOCqg0KK+OCquOCquODjizjg5/jg4TjgqoNCivjgqrjg4HjgqLjgqQs44Oe44K144OS44K1DQor44Kq44Kr44OZLOOCv+OCpA0KK+OCquOCquOCv+ODiyzjgqLjgq3jg5Ljg60NCivjgqrjgq/jg44s44K344Ky44KqDQor44Kq44Kq44K544KsLOOCseODs+OCpOODgQ0KK+OCquOCquODjuOCrSzjgqvjgqrjg6sNCivjgqrjgqrjgqTjgrcs44K4DQor44Kq44Kr44OALOODouODiOODhOOCsA0KK+OCquOCquODn+ODpCzjg6bjgq3jg5Ljg60NCivjgrXjgr/jgrEs44OE44ON44KqDQor44Kq44OA44KuLOODj+ODgeODreOCpg0KK+OCquOCquOCvyzjgrXjg4jjg6sNCivjgqrjg5Xjg4Es44K/44OA44Oo44K3DQor44Kq44Kq44Kr44OvLOOCq+OCquODqw0KK+OCquOCq+ODiSzjgrXjg4jjg6sNCivjgqrjgqrjgrXjg68s44OS44OH44KtDQor44Kq44Ku44K144OvLOODpuOCreODkuODrQ0KK+OCquOCq+ODmSzjgqLjg4TjgrcNCivjgqrjg4jjg6jjgrcs44OS44OH44KqDQor44Kq44Ks44OvLOOCv+ODhOODreOCpg0KK+OCquODquOCrOOCtSzjg6Tjgrnjgr/jgrENCivjgqrjgqrjg5As44Om44Kt44KzDQor44Kq44OQ44K/LOOCv+OCq+OCtw0KK+OCquOCquODjizjgr/jgqvjg6jjgrcNCivjgqrjgqrjgrXjgqss44Oe44K144OkDQor44Kq44Kq44Of44ONLOOCseODs+OCvuOCpg0KK+OCquOCquOCvyzjg6jjgrfjg5LjgrMNCivjgqTjg47jgqbjgqgs44Ki44Kt44KqDQor44Kq44Kq44Kz44K3LOOCt+OCsuOCrQ0KK+OCquOCtuODryzjg5Ljg4fjgqoNCivjgqrjgqvjg5ks44Kx44Kk44Kk44OBDQor44Kq44Kq44Oc44OpLOOCqOOCpOOCuOODreOCpg0KK+OCquOCquOCvyzjgrjjg6fjgqbjgqTjg4Hjg63jgqYNCivjgqrjgrbjgq0s44K444Ol44Oz44Kk44OBDQor44Kq44Kv44OALOODpOOCueODkuODrQ0KK+OCquOCtuODryzjg4bjg6vjgqLjgq0NCivjgqrjgqvjg4As44K544K544OgDQor44Kq44Kq44OE44KrLOOCs+OCpuOCuA0KK+OCquODjuODh+ODqSzjgrPjgqbjgqTjg4ENCivjgqrjgrfjgqos44K/44OA44K344KyDQor44Kq44OA44K344OeLOOCv+ODgOOCtw0KK+OCquOCtuOCrSzjgrfjgrLjg6sNCivjg57jgqjjg4As44Of44OE44KqDQor44Kq44KtLOODnuOCteOCqg0KK+OCquODjuODgCzjg4jjgq3jgqgNCivjgqrjg4rjgq4s44Ki44Kt44OpDQor44Kq44Kv44OALOODqOOCt+OCreODqA0KK+OCquOCquODkuODqSzjgrvjg4TjgrgNCivjgqrjg47jgrbjg68s44OI44K344OS44KzDQor44Kq44Ku44OP44OpLOOCr+ODi+OCouOCrQ0KK+OCquOCquOCr+ODnizjgqvjgrrjgqoNCivjgqrjgqrjg4/jg6ks44OO44OW44OS44OtDQor44Kq44KtLOOCq+ODhOOCueOCsQ0KK+OCquOCrOODryzjgr/jg4Tjg6QNCivjgqrjgqrjg6Qs44OS44OH44ObDQor44Kq44Kq44K144OvLOOCteODluODreOCpg0KK+OCquOCquODj+ODqSzjg5Ljg63jg6jjgrcNCivjgqrjg4As44K/44Kr44KzDQor44Kq44K244OvLOODn+ODhOOCqg0KK+OCquOCrOOCvyzjg6rjg6fjgqbjgrnjgrENCivjgqrjgqvjg44s44Ki44Kt44KzDQor44Kq44Kq44Kk44K3LOOCt+ODng0KK+OCquODiuOCpCzjg5Ljg63jg6bjgq0NCivjgqrjgqrjg4Tjgqss44K444Ol44Oz44KzDQor44Kq44Kq44OE44KrLOODhuODhOOCqg0KK+OCquOCpOODhyzjg6jjgrfjgqLjgq0NCivjgqrjgq3jg6Tjg54s44Kr44K644KzDQor44Kq44Kw44K3LOOCouOCseODnw0KK+OCquODgCzjg6TjgrnjgrcNCivjgqrjgqvjg5Djg6Tjgrcs44K/44OA44OS44OtDQor44Kq44Kq44K/44OLLOOCuOODpeODs+OCuA0KK+OCquOCquODhOOCrSzjgqLjg6bjg58NCivjgqrjgqvjg4As44OS44Ot44K3DQor44Kq44Kq44K544OfLOODgeODj+ODqw0KK+OCquOCquOCpOOCrOODryzjgr/jgqvjg4/jg6sNCivjgqrjgqvjg4As44K544K544OgDQor44Kq44K244OvLOOCq+OCuuODkuOCsw0KK+OCquOCquOCv+ODiyzjg4bjg4Tjg63jgqYNCivjgqrjgrbjgq0s44OS44Ot44Om44KtDQor44Kq44Kq44K/LOODnuOCteOCsw0KK+ODpOODiuOCruODpCzjg6bjgqvjg6oNCivjg4rjgqvjgr/jg4ss44K344Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOODkuODh+OCtw0KK+ODn+OCr+ODiyzjg6jjgrfjg5Ljg60NCivjgrnjgrrjgq0s44K444Ol44Oz44Kk44OBDQor44OP44OA44OOLOODpuOCreODnuOCtQ0KK+ODn+ODpOODnizjgqvjgqrjg6oNCivjgr/jgqvjg4/jgrcs44Oe44K144OIDQor44K344Op44Kq44Ks44OvLOODqeOCpOOCvw0KK+ODiuOCq+ODoOODqSzjgqLjgr3jgqsNCivjg57jg4Tjgrbjgq0s44Kt44Kk44OB44Ot44KmDQor44Ok44Oe44K344K/LOOCv+OCq+ODqOOCtw0KK+OCt+ODouODpOODnizjgrfjgrLjg6sNCivjg5Xjgr/jg6Djg6ks44OO44OW44Om44KtDQor44Kv44OvLOOCv+OCq+OCtw0KK+ODiuOCq+ODoOODqSzjg4jjgrfjg5/jg4QNCivjg6jjgrPjg6Tjg54s44OS44Ot44Ki44KtDQor44OS44Or44OeLOODpuOCreOCsw0KK+OCv+ODgeOCq+ODryzjg4rjgqrjg58NCivjg6/jgqvjg5Djg6Tjgrcs44OG44Or44OfDQor44K/44Kr44OP44K/LOODiOODog0KK+OCouODmSzjgqjjg5/jgrMNCivjgrvjgq0s44Oq44Ol44Km44K0DQor44Ok44Oe44K244KtLOODkuODiOOCtw0KK+ODpOODnuODjSzjg6jjgrfjg5Ljg60NCivjgr/jgrbjg68s44K444Ol44Oz44K4DQor44Kr44K444Kr44OvLOOCouOCteOCsw0KK+OCteODiOOCpizjg57jgrXjg5Ljg60NCivjgqvjg6/jgqbjg4Es44Oe44Oq44KoDQor44Kq44Kq44Ok44OeLOODjuODluOCsw0KK+OCt+ODs+ODn+ODp+OCpizjgrjjg6Xjg7PjgrMNCivjgr/jg4Hjg6/jg4As44OK44Kq44OfDQor44Kq44Kq44Kv44OcLOODhuODhOODpA0KK+ODiOOCpuOCtOOCpizjg5Ljg63jg6bjgq0NCivjg4rjgqzjgq/jg6ks44K/44Kr44OP44OrDQor44Kk44OI44KmLOOCseODs+OCveOCpg0KK+ODpOODnuOCtuOCrSzjgrvjgqQNCivjgqvjgrbjg54s44OP44Or44Om44KtDQor44Kr44Oz44OQ44Ok44K3LOODkuODh+OCqg0KK+OCteOCteODjizjg6HjgqTjgrMNCivjgqvjg6/jgrfjg54s44Of44Om44KtDQor44K344Oz44Kw44KmLOODjuODquOCouOCrQ0KK+OCs+OCpOOCuuODnyzjgr/jgq/jg6QNCivjgqvjg43jgrMs44Oo44K344OfDQor44Kz44OQ44Ok44K3LOOCueOCqOODhOOCsA0KK+OCq+ODouOCt+OCvyzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg6Djg6ks44K144OB44OoDQor44OP44K744Ks44OvLOOCv+OCq+OCtw0KK+OCr+ODquODj+ODqSzjg5Ljg63jg5Xjg58NCivjgqvjg4rjgqrjgqss44OS44Ot44K3DQor44Kz44OQ44Ok44K3LOODpuOCreOCv+OCqw0KK+ODkuOCpOOCtyzjgr/jgqvjg6bjgq0NCivjg4vjg5jjgqQs44Kk44Kv44KzDQor44Oe44Or44K/LOODiuOCquOCsw0KK+ODiOOCquODpOODnizjg4rjg58NCivjgrvjgq3jgrbjg68s44OB44KrDQor44Ki44Oq44OeLOODpOODqOOCpA0KK+OCr+ODquODj+ODqSzjg4jjg6LjgqgNCivjgrnjg5/jg44s44Of44OO44OrDQor44Oo44K344OALOODkuODh+OCrQ0KK+OCreODjuOCt+OCvyzjg4jjg6LjgrMNCivjgqrjg4HjgqLjgqQs44Of44Om44KtDQor44Km44Oe44Ok44OP44OpLOODpOOCueODnw0KK+ODm+OCveOCq+ODryzjg5Ljg63jgrMNCivjg5Xjgqvjgqzjg68s44K344Oz44K4DQor44Kr44Ov44Og44OpLOOCqOOCpOOCvuOCpg0KK+ODnuODhOOCpCzjgrHjgqTjgrMNCivjg6jjgrfjg6Ljg4gs44K/44Kr44OS44OtDQor44Km44OK44Kr44OfLOODiOODouOCsw0KK+OCq+ODjeODnuODhCzjgrXjgq3jgrMNCivjgqvjg6/jgqvjg58s44Oe44Kz44OIDQor44OI44Oo44OALOODkuODh+OCqg0KK+ODpOODjizjgqLjgq3jg5LjgrMNCivjgrvjgq0s44K/44Kr44Ki44KtDQor44OK44Kr44OL44K3LOODkuODiOOCtw0KK+ODj+OCt+ODouODiCzjgqLjgq0NCivjg5Xjgqvjg6Qs44Kv44OL44Ki44KtDQor44Of44Ok44Oi44OILOODkuODh+OCr+ODiw0KK+OCv+OCseODgCzjg4jjgrfjg5Xjg58NCivjg5/jg6Tjgrbjg68s44Of44Kt44KqDQor44Kk44Kx44OALOOCq+OCuuODkuOCsw0KK+OCquOCt+ODnizjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44Ko44Oq44KzDQor44K044OI44KmLOODpuOCpuOCpOODgeODreOCpg0KK+OCpuOCt+OCtOODoSzjg5Ljg63jgrcNCivjgq/jg6/jg6Tjg54s44OS44Ot44Ki44KtDQor44OE44Kr44OALOODgeODj+ODqw0KK+ODoOODqeOCvyzjg4HjgqvjgqoNCivjgrXjg4jjgqYs44Oo44K344K/44KrDQor44Kv44Ot44OALOOCq+OCquODqg0KK+OCueOCruODouODiCzjgq/jg4vjgqoNCivjg6Tjgrnjg4As44Kz44Km44Kk44OBDQor44Kt44Km44OBLOOCteODiOOCtw0KK+OCseODieOCpuOCpOODsyzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jg4rjgqss44OB44KrDQor44OK44Kr44Og44OpLOODkuODreOCouOCrQ0KK+OCr+ODquODj+ODqSzjg4jjg6jjg5LjgrMNCivjgr/jgq3jgrbjg68s44Kr44K644OO44OqDQor44Km44Ko44OALOODkuODh+OCouOCrQ0KK+OCs+ODmSzjg5Ljg4fjgqLjgq0NCivjg47jgrDjg4Es44OV44Of44KqDQor44Kz44Oz44OOLOODiOODouODkuOCsw0KK+ODiOODn+OCvyzjgqvjg4rjg6ENCivjgqrjgqrjgr8s44Om44Kt44KzDQor44Oe44KtLOODkuOCq+ODqw0KK+OCouODnuODjizjgrHjg7PjgqTjg4Hjg60NCivjgrPjg5/jg40s44Ki44Kt44OS44OtDQor44K144OI44KmLOODiOODouODpA0KK+OCpOODnuODhyzjg6bjgqbjgrgNCivjg57jg4Tjg4rjgqws44K/44OE44OkDQor44K544K644KtLOOCv+OCseOCtw0KK+ODnuODhOOCqizjgqvjgqgNCivjgrXjgqTjg4jjgqYs44Kt44On44Km44Kk44OBDQor44Oo44K344K244OvLOODr+OCv+ODqw0KK+OCpuODpOODnizjgrHjgqTjgrMNCivjgqLjg7Pjg4njgqYs44Oe44K144OS44KzDQor44K544K644KtLOOCteODiOOCtw0KK+ODqOOCt+ODgCzjgqvjgrrjg4jjgrcNCivjgqvjg6/jg4As44Ko44Of44KzDQor44OV44Kv44OALOOCseOCpA0KK+ODouODquOCt+ODnizjg57jgrXjgrcNCivjg4Tjg4Hjg4As44OI44Kq44OrDQor44K144Kr44KkLOODn+ODgeODpOOCuQ0KK+ODhOOCq+ODgCzjgqLjg4TjgrcNCivjg4/jg4Pjg4jjg6os44OS44Ot44K3DQor44K/44Og44OpLOOCs+OCpuOCuA0KK+ODr+OCv+ODiuODmSzjg4rjgqrjgq0NCivjgrPjgrnjgq4s44K/44Kr44Ki44KtDQor44OS44Op44K/LOOCseOCpOOCvw0KK+OCueOCruODpOODnizjg6jjgrfjg6bjgq0NCivjg6Ljg6rjgqvjg68s44Oi44OI44OP44OrDQor44Kr44OJ44K/LOOCouOCreODkuODrQ0KK+OCteODjizjg5Ljg63jgrcNCivjgqrjgrbjgq0s44OG44OE44KqDQor44Oo44Kz44Oe44OELOOCq+ODhOODkuOCtQ0KK+OCv+ODiuOCqyzjg6bjg5/jgrMNCivjgqTjgrfjgrXjgqss44Kz44Km44Kk44OB44Ot44KmDQor44Kk44K344K244OvLOODpuOCuuOCrQ0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7MNCivjg6jjgrfjg4As44OI44Oi44Ki44KtDQor44Kt44Og44OpLOODquOCqOOCsw0KK+OCquOCquODhOOCqyzjgr/jgrHjg6sNCivjgqLjg4Djg4Es44K/44Kr44K3DQor44Ki44Kr44K144KrLOOCt+ODp+OCpuOCuA0KK+ODn+ODpOODouODiCzjg5/jg4njg6oNCivjgqTjg4Hjg6Djg6ks44Kr44Kq44OqDQor44Kq44K344K/LOODjuODluODpuOCrQ0KK+ODm+ODs+ODgCzjgqrjgrXjg6ANCivjgqvjg6Tjg4zjg54s44Kz44Km44K4DQor44OO44K244KtLOODpuOCpuOCuA0KK+OCq+ODieODr+OCrSzjg5XjgrjjgqgNCivjgqrjgrgs44Ok44K544OS44OtDQor44K/44Kw44OBLOODpOOCueODhOODjQ0KK+OCv+OCseOCpOOCtyzjgqLjgq3jg4gNCivjg5Ljg6njgqQs44K344Oz44K4DQor44Kr44OK44K244OvLOOCuOODpeODs+OCpOODgQ0KK+ODleODq+OCq+ODryzjgqjjg6rjgqsNCivjg6Ljg6rjg4rjgqss44Oe44K144OoDQor44Ki44Op44KkLOODiOOCt+OCouOCrQ0KK+OCv+ODiuOCqyzjg6jjgrfjg47jg6oNCivjgrfjg5/jgros44Oo44K344Om44KtDQor44Kk44OB44OP44OpLOODnuOCteODqw0KK+OCreOCv+ODjuODj+ODqSzjg5Ljg4fjg5Ljg60NCivjgq3jgr/jgqos44OI44Oi44OS44OIDQor44Oi44Oq44Oi44OILOODkuODh+OCrQ0KK+OCreOCv+ODoOODqSzjg6rjgqvjgrMNCivjgrXjgrXjgrbjg68s44K/44Kx44K3DQor44Oe44OE44Kq44KrLOODiuOCquOCsw0KK+OCs+OCpuODqSzjgr/jgqvjg5Ljg60NCivjg5/jg68s44OS44Ot44KzDQor44Oo44K344Kq44KrLOODkuODreOCsw0KK+ODm+ODqizjg6bjg5/jgrMNCivjgrXjgqTjg4jjgqYs44Oo44K344OS44OIDQor44OK44Ks44K7LOODkuODh+ODj+ODqw0KK+ODouODquOCt+ODnizjg5Ljg63jgqsNCivjgqrjg6/jg6os44Oe44Kt44KzDQor44K/44OK44KrLOODn+OCrQ0KK+ODhuODqeODoOODqSzjg4jjgrfjg57jgrUNCivjgrPjg5Djg6Tjgrcs44Kt44On44Km44K+44KmDQor44K144Kk44OI44KmLOODkuODreODjuODqg0KK+OCreODoOODqSzjgr/jgrHjgrcNCivjg4/jgrfjg6Ljg4gs44Oo44K344OS44K1DQor44OK44Kr44Ks44OvLOODhuODhOODpA0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqrjgq0NCivjg4/jgq7jg6/jg6ks44Kv44OL44OS44KzDQor44OL44K344Kr44OvLOODiOODouODnw0KK+OCreOCv+OCuOODnizjgrPjgqbjgqTjg4ENCivjgr/jgqvjgqbjg6ks44Ok44K544KqDQor44Ki44K144OALOODkuODh+ODqA0KK+OCreOCv+OCuuODoSzjgqLjg6njgr8NCivjg43jg6Ljg4gs44Ov44Kr44KzDQor44K/44OK44KrLOODnuOCteODkuOCsw0KK+OCv+ODiuOCqyzjgqvjgrrjg5Ljg60NCivjgqLjg4Djg4Es44Kr44K644OS44KzDQor44OP44OpLOODnuOCteODpuOCrQ0KK+OCouOCq+ODnuODhCzjgrHjg7PjgrQNCivjgqTjg57jg6Djg6ks44Ki44OE44K3DQor44Og44Op44Ok44OeLOODqOOCpuOCuA0KK+OCv+OCseOCpuODgSzjgr/jgqvjg6bjgq0NCivjgrrjgrcs44Ok44K544KqDQor44Kz44OQ44Ok44K3LOOCq+ODmw0KK+ODpOODnuOCtuOCrSzjgqLjg4TjgrMNCivjg4/jg57jgrDjg4Es44K944Km44Kk44OBDQor44Kr44Ky44Ok44OeLOODkuODreODpuOCrQ0KK+OCq+ODiuODouODqizjg5Ljg4fjgq0NCivjgqvjg4jjg6os44OE44Oo44K3DQor44Ki44Op44KkLOOCt+ODp+OCpuODmOOCpA0KK+ODn+ODpOOCvyzjg57jg6rjgrMNCivjgrnjgrrjgq0s44Ko44Of44KzDQor44OP44Or44K/LOODkuODh+ODpA0KK+ODiuOCq+OCtuODryzjgr/jgqvjgrcNCivjgrnjgqws44Oe44K144Om44KtDQor44Oe44Ko44OH44OpLOODhuODq+ODpuOCrQ0KK+OCouODqeODnuOCrSzjgqLjg4TjgrcNCivjgq3jgr/jg44s44K/44OE44OkDQor44Oo44K344OOLOOCt+OCsuODn+ODhA0KK+ODn+OCr+ODquODpCzjg6jjgqbjgrMNCivjgqrjgq/jg47jgq4s44Kx44Oz44K4DQor44K144Kv44Op44KkLOODqOOCt+OCq+ODhA0KK+OCs+ODs+ODiSzjg4rjgqoNCivjgrnjgrrjgq0s44OO44Oq44KzDQor44Kv44Oq44OP44OpLOOCr+ODn+OCsw0KK+ODoOOCs+OCpuOCsOODgSzjg57jgq0NCivjg5XjgrjjgqQs44Ki44Kt44OS44OtDQor44Kr44KyLOODpuOCpuOCsw0KK+ODnuOCqOODgCzjg47jg5bjg6QNCivjg4rjgqzjg5vjg6os44Om44Kt44KzDQor44OE44K4LOODouODouOCsw0KK+OCreODoOODqSzjgrfjg7Pjgr/jg63jgqYNCivjg57jg4Tjgqos44Kz44Km44Kk44OBDQor44K/44OG44OOLOODjuODquODqOOCtw0KK+OCreODoOODqSzjg57jgrPjg4gNCivjgrnjgrbjgq0s44K/44OE44OkDQor44Kk44Ov44K144KtLOODn+ODpOODkw0KK+OCteODiOOCpizjg6bjg6oNCivjg4vjg4Pjgr8s44OA44Kk44Kr44OzDQor44K/44OK44KrLOODnuODqg0KK+OCt+ODnuODgCzjgqLjgqvjg40NCivjgr/jg4vjgrDjg4Es44OO44Oq44KzDQor44Ob44Oz44OALOOCueODiuOCqg0KK+ODiuOCq+OCv+ODiyzjgr/jgqvjgrcNCivjg5/jg6Tjgrjjg54s44K344Ol44OzDQor44Kv44Kt44Ok44OeLOOCs+OCpuOCuA0KK+OCu+OCreODjSzjg6rjg6fjgqbjgr/jg63jgqYNCivjg6jjgrfjg4/jg6ks44K144OI44OrDQor44OS44Op44K/LOODnuOCteOCq+OCug0KK+ODiuOCrOOCteODryzjg4jjgrfjgqoNCivjg4rjgqvjgqzjgq0s44Kx44Kk44KzDQor44Kv44Ot44Kr44OvLOODpOOCueODpuOCrQ0KK+OCq+OCseOCv+ODqizjgrHjg7Pjgrjjg63jgqYNCivjgqTjg4jjgqYs44Kr44Oo44KzDQor44Oe44Ko44Kr44OvLOOCuOODpeODs+OCuA0KK+ODnuODhOODgCzjgqLjgq3jgqoNCivjgq/jg6/jg4/jg6ks44Oe44Kz44OIDQor44Kk44Kk44K644KrLOODr+OCq+OCsw0KK+ODnuOCuOODnizjg5Ljg4fjg6bjgq0NCivjg6Djg6njgr8s44OI44Oi44KzDQor44Ki44Kt44Kk44KxLOODpuOCpuOCpOODgQ0KK+ODiuODn+OCrSzjg4bjg4Tjg6QNCivjg6jjgrfjg44s44Of44Kt44KzDQor44K544K644KtLOODpuOCrQ0KK+OCv+ODoOODqSzjg5/jg4njg6oNCivjgqvjg6Hjg4As44K344Oz44OkDQor44OL44K3LOODpOOCueOCtw0KK+OCpOODiuOCquOCqyzjgrHjg7PjgrgNCivjgqTjg6/jgrXjgq0s44Om44Km44K4DQor44Kr44Oz44OALOODiuODnw0KK+OCv+ODgCzjgqjjgqTjgq0NCivjgqbjg4Qs44OI44Oi44Ki44KtDQor44K344Oe44OALOODnuOCteOCqg0KK+ODqOOCt+ODgCzjg5Ljg63jg6bjgq0NCivjgqrjgq/jgqzjg68s44Oo44K344OV44OfDQor44K544K644KtLOOCseOCpOOCsw0KK+OCv+ODs+ODnSzjg5/jg43jgrMNCivjg6/jg4As44OK44Kq44KzDQor44Km44Or44K344OP44OpLOOCqOOCpOOCueOCsQ0KK+OCpOOCpOOCqizjgr/jg63jgqYNCivjg4vjgqTjg4/jg6ks44Kt44On44Km44KzDQor44Kq44Og44OpLOOCv+OCr+ODpA0KK+OCpOODjuOCpuOCqCzjgrzjg7Pjgrjjg63jgqYNCivjg6Ljg6rjg4rjgqws44OI44K344OS44OtDQor44K144OOLOODkuODreOCtw0KK+ODiuOCq+OCv+ODiyzjg57jgrXjg6TjgrkNCivjgqLjg5ks44Oe44K144OK44KqDQor44Km44OB44OALOOCseODs+OCuA0KK+ODkuODreOCvyzjg6bjgqbjgrXjgq8NCivjgqTjg6/jgq/jg6ks44Kr44Kk44K444Ot44KmDQor44Kk44K344Kq44KrLOODkuODh+OCouOCrQ0KK+ODiOOCreOCvyzjg4rjg4TjgrMNCivjgq3jg47jgrfjgr8s44OK44Kq44K544KxDQor44Of44K644OOLOOCouOCpOOCsw0KK+ODpOOCueOCqCzjg57jgrXjg58NCivjgqTjg6/jg6Ljg4gs44K144OI44OrDQor44Ok44Oe44K4LOODpuOCq+ODqg0KK+OCs+OCteOCpCzjg6bjgqbjgrMNCivjgq/jg5ws44OI44K344KoDQor44OB44OQLOODkuOCq+ODqw0KK+ODpOODhOOCv+ODiyzjgqLjg4TjgrcNCivjgqTjgqzjg6njgrcs44K/44Kr44K644OfDQor44Ki44Op44Kr44OvLOOCouOCq+ODjQ0KK+ODhuODqeOCteOCrSzjg6Ljg4jjgqLjgq0NCivjgrvjgrTjgqgs44K144OI44KzDQor44OI44Kv44K344OeLOODnuOCteOCsw0KK+ODkOODs+ODieOCpizjgrfjg6fjgqbjgrMNCivjgr/jgq3jgrbjg68s44Kx44Oz44K4DQor44Of44K644K144KtLOOCseODs+OCv+ODreOCpg0KK+OCv+OCreOCsOODgSzjgrHjgqQNCivjg5Ljgqrjgq0s44Oe44K144K3DQor44OK44Kr44KkLOOCouODhOODnw0KK+OCquOCpOOCq+ODryzjg6zjgqTjgrMNCivjg57jg4Tjg6Djg6ks44OB44Kw44K1DQor44Ko44Oz44OJLOODqOOCt+OCqg0KK+OCv+OCuOODnizjgrXjg4jjgrMNCivjg6Tjg57jgrbjgq0s44Ko44Kk44K4DQor44K744OO44KqLOOCs+OCpuOCuA0KK+ODj+ODqeODgCzjg4jjgrfjg57jgrUNCivjg5Xjgq/jgqQs44OI44Oi44KrDQor44Oe44OE44Km44OpLOOCseOCpA0KK+OCq+ODr+ODoOODqSzjg6bjgqbjgqTjg4ENCivjg4bjg6njg6Ljg4gs44K/44Kr44Of44OBDQor44OP44Ku44Ov44OpLOOCv+OCr+ODnw0KK+ODiuOCq+OCt+ODnizjgqjjg5/jgrMNCivjgq3jg47jgrfjgr8s44Of44OB44KqDQor44Ki44Op44KkLOODgeOCuuODqw0KK+ODoOODqeODpOODnizjgrjjg6Xjg7PjgrMNCivjgrXjgqjjgrDjgrUs44OI44Oi44OfDQor44K/44OK44KrLOODn+ODhOOCsw0KK+ODnuOCqOODgCzjgqrjgrXjg6ANCivjg5/jg6Tjgrbjgq0s44Kr44K644OfDQor44Kk44Kx44OZLOOCouOCreODqQ0KK+OCr+ODr+ODkOODqSzjgr/jgqvjg47jg6oNCivjg6jjg4As44K/44Kr44KqDQor44K/44OB44OQ44OKLOODpOOCueOCouOCrQ0KK+ODpOODnuOCsOODgSzjg6jjgrfjgqLjgq0NCivjgqTjgrfjg4/jg6ks44Kx44Kk44KzDQor44K/44Kt44K244OvLOODnuOCteOCouOCrQ0KK+ODkuODqeODjizjg6jjgrfjg5bjg58NCivjgqvjg6/jgrXjgq0s44K/44Kr44Oo44K3DQor44Ok44Oe44Oi44OILOODkuOCteODiOOCtw0KK+OCouODqeOCuyzjgqLjg4TjgrcNCivjg6Tjg4rjgq7jgrXjg68s44Oe44K144OO44OWDQor44K344Kq44OkLOOCouOCreOCqA0KK+OCteODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg4jjgqYs44OS44OI44OfDQor44Kq44OOLOODqOOCt+OCv+OCqw0KK+OCreOCv+ODj+ODnizjg6Tjgrnjg57jgrUNCivjgrTjg4jjgqYs44OO44Oq44KzDQor44OL44OO44Of44OkLOODnuODpuODnw0KK+OCpuOCueOCpCzjg4jjg6Ljg47jg6oNCivjg5/jgrrjgrfjg54s44K/44Kx44OrDQor44K544OJ44KmLOODnuOCs+ODiA0KK+OCpOOCseODgCzjgqLjgq3jgrMNCivjg4rjgqvjg5Ljgqzjgrcs44Ki44Oq44K344KyDQor44Kv44Oq44Oi44OILOODreODr+ODqw0KK+ODiOODgCzjg5Ljg63jgr/jgqsNCivjg4/jgqvjg57jgr8s44Ki44OE44OO44OWDQor44K/44OL44Kw44OBLOODj+ODq+ODnw0KK+OCpOODnuOCvOOCrSzjgqTjgq/jgrMNCivjg5vjg6rjgqos44Oe44Om44OfDQor44Kr44K544KsLOODhOODqOOCtw0KK+OCq+ODr+OCuyzjg4rjgqrjgrMNCivjgrXjg4jjgqYs44OS44Ot44OfDQor44K/44Kr44OK44K3LOODjuODluOCouOCrQ0KK+ODnuODhOOCt+OCvyzjgr/jgqvjgrcNCivjg6TjgrDjg4Es44OS44OH44KtDQor44Kr44ON44KzLOOCq+OCuuODpuOCrQ0KK+ODkuODgOOCqyzjg5/jgqoNCivjgrXjg4PjgrUs44K/44Kk44OBDQor44K944KsLOOCv+OCr+ODpA0KK+OCueOCruOCpuODqSzjgrHjg7Pjgr/jg63jgqYNCivjgrXjg4jjgqYs44Ki44Of44KzDQor44K/44OL44OQ44Ok44K3LOOCteODgeOCsw0KK+ODi+OCt+OCquOCqyzjgr/jgqvjgrcNCivjg4jjg6Ljg4rjgqws44OK44Kq44KtDQor44Kq44Kq44OP44K3LOODkuODh+OCrQ0KK+ODiuOCrOOCt+ODnizjgrvjgqTjgr8NCivjgr/jg4vjgqzjgq0s44K744Kk44KzDQor44Kz44Km44OALOOCs+ODn+ODig0KK+OCreODqOODjizjgrXjg4jjgrcNCivjg6Tjg57jgqvjg68s44OI44K344KqDQor44OK44Kr44K444OeLOODkuODreOCtw0KK+ODouODhuOCrizjgrPjgqbjgrgNCivjgqrjgqrjg4zjg54s44Om44K/44KrDQor44K144OI44KmLOOCt+OCsuOCqg0KK+ODleODq+OCpOOCqCzjg6jjgrfjgrMNCivjgqLjgqTjg6Ljg4gs44Oi44OI44OV44OfDQor44Oo44Kz44KqLOOCr+ODi+OCqg0KK+ODi+OCt+OCq+ODryzjgrHjg7PjgrgNCivjg5Pjg4jjgqYs44Oo44K344OK44KsDQor44Kt44K/44Og44OpLOOCt+ODs+ODpA0KK+ODpOODnuOCq+ODryzjgrXjg4Djg4/jg6sNCivjg4jjg5/jgr8s44K/44Kx44K3DQor44OE44OB44OALOODkuODh+ODiA0KK+OCpOOCt+OCsOODrSzjg6rjgqgNCivjg57jg4Tjgqos44OI44Kq44OrDQor44Km44Ko44Oi44OILOOCs+OCpuOCpOODgeODreOCpg0KK+OCpOOCpOODgCzjg5/jgq3jgrMNCivjgrnjgrrjgq0s44K344Ky44OS44OtDQor44K/44Og44OpLOOCq+OCuuODqOOCtw0KK+OCquOCr+ODgCzjg47jg5zjg6sNCivjg5vjg6os44Oo44K344OfDQor44Kv44K144OE44KwLOODpOOCueOCtw0KK+ODpOODnuODgCzjg57jgrXjg4rjgqoNCivjgqLjgrXjg4/jg6ks44K/44Kr44OS44OtDQor44OI44Kv44OALOODnuODs+ODiuODqg0KK+OCpOODh+OCvyzjg6jjgrfjg5Ljg60NCivjgqTjg4jjgqYs44OG44Or44Of44OBDQor44K144OI44KmLOOCreOCpOODgeODreOCpg0KK+ODhOOCuOOCteODryzjgrHjgqQNCivjgqrjg44s44Kz44Km44K4DQor44Kk44Ov44OeLOODjuODluOCouOCrQ0KK+ODgOOCpOOCtOOCryzjgrjjg6Xjg7PjgqTjg4ENCivjg6Tjg57jg6Djg6ks44Oo44K344Kr44K6DQor44OP44K744Ks44OvLOODiOOCt+OCq+OCug0KK+OCpOOCrizjgr/jgqvjg5Ljg60NCivjg57jgqvjg5ks44Oe44K144Kr44OEDQor44Kq44Kr44Oi44OILOOCq+ODhOOCqg0KK+OCquOCquODj+ODqSzjg6bjgq3jg4rjgqoNCivjgrvjgq3jg6Tjg54s44Kr44K644KqDQor44Kt44K/44K444OeLOODkuODreOCouOCrQ0KK+ODiOODquOCpuODnyzjg57jgrXjg5Ljg60NCivjg5/jg6Tjgrbjgq0s44K/44OG44KqDQor44Km44KkLOODqOOCt+ODkuODiA0KK+OCr+ODqeODouODgSzjgqvjgrrjg5Ljg60NCivjgrfjgqrjg4zjg54s44OS44OH44OI44K3DQor44Op44Kk44K/LOOCpOOCr+OCqg0KK+OCt+ODouOCs+OCpuODmSzjg47jg5bjgqvjgroNCivjgrXjg6/jg44s44OG44Or44KqDQor44K144Kr44OL44K3LOODpuOCpuOCuA0KK+OCteOCteOCrSzjg4jjgrfjgqoNCivjgrvjgqTjg44s44Kx44Kk44K+44KmDQor44K544K644KtLOOCouOCreODqOOCtw0KK+OCteOCq+ODouODiCzjg4jjgrfjgqoNCivjgrnjgrrjgq0s44K344Ot44KmDQor44K144Ov44OOLOOCq+ODhOODpA0KK+OCt+OCrCzjg4bjg4Tjg6QNCivjgrTjg4jjgqYs44OI44Kv44Oe44K1DQor44K544OALOOCuOODpeODs+OCuA0KK+OCueOCuuOCrSzjg6jjgrfjgrMNCivjgrXjgqvjgq3jg5Djg6ks44OI44K344KqDQor44K144OI44KmLOOCseODs+OCuA0KK+OCteOCq+OCsOODgSzjg6jjgrfjg47jg6oNCivjgrnjgq7jgrXjgq0s44Of44OE44Kv44OLDQor44K544Ko44KtLOOCv+OCq+OCtw0KK+OCueOCuuOCrSzjg47jg5bjgqLjgq0NCivjgrfjg5Djgr8s44Kz44OI44K4DQor44K544Ku44Ok44OeLOOCv+ODgOOCqg0KK+OCteOCq+OCpCzjg57jgrXjg6bjgq0NCivjgrfjg5/jgros44K/44OA44K3DQor44K544Ku44Oi44OILOODiOOCt+OCqg0KK+OCteODiOOCpizjgr/jgq/jgrgNCivjgrvjgq0s44Kq44K144OgDQor44K144Kv44Op44KkLOODj+ODq+ODpuOCrQ0KK+OCu+OCreOCsOODgSzjgrPjgrnjgrENCivjgrXjg4jjgqYs44Ko44Kk44K4DQor44K544K644KtLOODpuOCpuODjuOCueOCsQ0KK+OCteOCpOODiOOCpizjgr/jg4DjgqoNCivjgrvjgq3jg40s44OI44Oo44OV44OfDQor44K544K644KtLOODhOODiOODoA0KK+OCpOOCpOODgCzjgq3jg6jjgr/jgqsNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K144K144KtLOODn+ODhOOCqg0KK+OCueOCqOODiuOCrCzjg4jjgrfjgqoNCivjgrXjgqvjg6Ljg4gs44OS44OH44Ki44KtDQor44K144Kk44OI44KmLOODnuOCteODnw0KK+OCueOCrOOCqizjg4bjg4TjgrgNCivjgrfjg57jgros44Of44OO44OrDQor44K144Kk44OI44KmLOODleODn+OCqg0KK+OCt+ODjuOCtuOCrSzjgqLjgq3jg6kNCivjgrnjgrrjgq0s44Oo44K344Om44KtDQor44K544OK44KsLOOCseODsw0KK+OCteODiOOCpizjgqrjgrXjg6ANCivjgrnjgrrjgq0s44Kx44Kk44K/44Ot44KmDQor44K744Kt44ONLOOCteODgOODjuODqg0KK+OCteOCteOCrSzjg4jjgrfjgqoNCivjgrXjg6/jg4As44Ki44Kt44OpDQor44K144Kk44OI44KmLOOCq+OCuuOCqg0KK+OCt+ODouOCvuODjizjgr/jg4Djg5LjgrMNCivjgrnjgqgs44K/44Kr44K3DQor44K144OJ44OI44OiLOOCouOCreODqQ0KK+OCu+OCreODjSzjgrHjg7PjgrnjgrENCivjgrXjg4jjgqYs44K144OI44K3DQor44K144Oz44K0LOODqOOCt+ODjuODlg0KK+OCueODieOCpizjgq/jg4vjgqLjgq0NCivjgr3jg47jg4As44OK44Kq44OfDQor44K344OeLOODn+ODjuODqw0KK+OCteODiOOCpizjg6jjg43jgr7jgqYNCivjgrXjg4jjgqYs44OI44Of44KqDQor44K344OW44OkLOOCq+OCuuOCouOCrQ0KK+OCteODiOOCpizjgqvjgrrjgqoNCivjgrXjg4jjgqYs44OG44Or44OS44KzDQor44K144Kr44K/LOODqOODjeOCqg0KK+OCteOCpOODiOOCpizjgqrjgrXjg6ANCivjgrnjg6/jgq0s44K/44Kr44K3DQor44K944OqLOOCv+OCseOCuA0KK+OCteOCq+ODouODiCzjgrfjg6Xjg7PjgqTjg4ENCivjgrfjg6njgqTjgrcs44Oe44K144OI44K3DQor44K544K644KtLOOCouOCreOCqg0KK+OCt+ODnuODgCzjg4jjgrfjgqoNCivjgrnjgrrjgq0s44Oe44K144OS44OtDQor44K544K644KtLOODqOOCt+OCqg0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgrnjgrrjgq0s44Kt44Oo44K3DQor44K144OI44KmLOODhOODiOODoA0KK+OCt+OCsuODnuODhCzjgq3jg6jjgrcNCivjgrXjgqzjg6ks44K/44Kr44OI44K3DQor44K144Kk44OI44KmLOODpuOCreOCqg0KK+OCt+ODs+OCsOOCpizjgr/jgqvjgqoNCivjgrnjgqzjg4zjg54s44OG44Or44OO44OWDQor44K944KsLOOCv+OCseOCtw0KK+OCteOCteOCrSzjg47jg5bjg6bjgq0NCivjgrXjg4jjgqYs44K344Ky44OrDQor44K144Ov44OALOODhuODhOOCqg0KK+OCveODnizjgqrjgrXjg6ANCivjgrfjg5Djgr8s44K/44Kx44KqDQor44K144OI44KmLOODn+ODgeOCsw0KK+OCteODiOOCpizjgq3jg6jjgrcNCivjgrfjg57jg4As44OS44OH44KqDQor44K144K144KtLOODjuODluOCqg0KK+OCteODiOOCpizjgrHjg7PjgrgNCivjgrXjgqTjg4jjgqYs44K344Ky44OrDQor44K344Oi44OHLOODkuODh+OCrQ0KK+OCteOCteOCrSzjg4jjgrfjgqoNCivjgrXjg4jjgqYs44Oo44KmDQor44K144OI44KmLOODkuOCteOCqg0KK+OCteODr+ODgCzjgrfjg7PjgqTjg4ENCivjgrfjg63jgrXjgq0s44Oo44Km44Kk44OBDQor44K344OQ44KkLOOCueOCueODoA0KK+OCteOCpOODiOOCpizjg5/jg4HjgqoNCivjgrnjgrrjgq0s44OI44K344KqDQor44K944Ks44OZLOOCpOOCteOCqg0KK+OCu+OCrOODryzjg4Hjg5Ljg60NCivjgrfjg5/jgros44Of44OO44OrDQor44K544K644KtLOODqOOCpuOCuOODreOCpg0KK+OCt+ODreODpOODnizjg6jjgrfjg5LjgrMNCivjgrfjgqTjg4os44Oo44K344KqDQor44K144Ok44OeLOODnuODouODqw0KK+OCteOCq+ODouODiCzjg57jgrPjg4gNCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K544K644KtLOOCv+ODgOODqOOCtw0KK+OCueOCuuOCrSzjg4bjg4Tjg63jgqYNCivjgrXjgrXjgrss44Kr44OE44Om44KtDQor44K144Kv44Op44KkLOODnuOCteOCrQ0KK+OCt+ODnuODgCzjgrvjgqTjgrgNCivjgrXjg4jjgqYs44Kr44OE44OS44OtDQor44K344Oi44OOLOODqOOCpuOCueOCsQ0KK+OCueOCuuOCrSzjg6jjgrfjg4rjg6oNCivjgrnjgq7jg6Ljg4gs44Oe44K144KqDQor44K344Of44K6LOOCv+OCseOCqg0KK+OCteODjizjg6jjgrfjg47jg5YNCivjgrnjgrrjgq0s44Kz44Km44OY44KkDQor44K344Oe44OALOOCq+OCuuODkuOCsw0KK+OCueOCuuOCrSzjg4/jg6vjg5LjgrUNCivjgrnjgq7jg5Xjgrgs44OS44OI44K3DQor44K144Kr44KkLOOCt+ODs+OCpOODgQ0KK+OCteOCq+OCsOODgSzjgqjjgqTjgrgNCivjgrnjgqzjg6/jg6ks44OA44Kk44K144KvDQor44K344OO44K644KrLOOCuOODpeODs+OCpOODgQ0KK+OCt+OCrCzjg5/jg4TjgqoNCivjgrXjgqvjgqzjg58s44OI44Oo44OeDQor44K544K644KtLOOCq+OCuuODpuOCrQ0KK+OCueOCruODjizjg5Ljg4fjgqoNCivjgrnjgq7jgqbjg6ks44K544K544OgDQor44K344Of44K6LOOCq+OCuuODnw0KK+OCueOCuuOCrSzjgr/jgrHjgrfjgrINCivjgrXjgrXjgrMs44K744Kk44K+44KmDQor44K744KtLOODpuOCreODqOOCtw0KK+OCteODiOOCpizjgr/jg4TjgrgNCivjgrfjg54s44OS44Ot44K3DQor44K544K644KtLOOCreODqOODhuODqw0KK+OCteOCq+ODouODiCzjg6jjgrfjgqvjgroNCivjgrXjgrXjgq0s44OS44Ot44K3DQor44K344Oe44OALOOCpOOCveOCuA0KK+OCteOCpOODiOOCpizjgr/jg4Djg5LjgrUNCivjgrfjgqrjgr8s44OI44Oo44KqDQor44K344Kq44OALOOCpOOCteODoA0KK+OCueODgCzjgqjjgqTjgrgNCivjgrfjgqTjg4os44Kx44Oz44K+44KmDQor44K344Kq44OO44OkLOODhuODhOOCqg0KK+OCteOCpOOCt+ODp+OCpizjg6Tjgrnjg5Ljg60NCivjgr3jgqTjg4As44Ko44Kk44Kk44OBDQor44K944OeLOOCq+ODs+OCuA0KK+OCteODiOOCpizjg5Ljg63jgrcNCivjgrXjg4jjgqYs44K/44Kx44Of44OBDQor44K344Kq44OQ44OpLOOCreODqOOCqA0KK+OCteOCteOCquOCqyzjg6jjgrfjgr/jgqsNCivjgrXjgrXjgq0s44Of44OE44OO44OWDQor44K744OILOODleODn+OCqg0KK+OCt+ODpeODieOCpizjgr/jgqvjgqoNCivjgrXjgqvjg6Ljg4gs44OS44Ot44K3DQor44K144Kv44OeLOOCv+OCq+OCtw0KK+OCt+ODjuOCtuODryzjg4Tjg6jjgrcNCivjgrfjgqrjg5Djg6ks44OS44Ot44Om44KtDQor44K144Kv44Op44KkLOODpuOCuuODqw0KK+OCteODiOOCpizjg6HjgrDjg6ANCivjgrXjgq/jg6njgqQs44OI44K344KqDQor44K144K144OZLOODkuODreOCtw0KK+OCteODiOOCpizjg6rjg6Xjgqbjgr7jgqYNCivjgrnjgq7jgqbjg6ks44Om44Km44K+44KmDQor44K144Kr44KkLOODnuOCteOCqg0KK+OCveODnizjg47jg5bjgqoNCivjgr3jgqbjg6Qs44K744Kk44K4DQor44K944ON44Kr44OELOOCouOCreODqQ0KK+OCu+OCreODjSzjgr/jgrHjgqoNCivjgrnjgrrjgq0s44OO44Oq44KqDQor44K744Kt44ONLOODiOOCt+ODhOOCsA0KK+OCteOCq+OCreODkOODqSzjgqvjgrrjg4jjgrcNCivjgrfjg6Ljgqvjg6/jg5ks44Kx44OzDQor44K144Ov44Og44OpLOODiuODq+ODnw0KK+OCu+OCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Kz44K644KoDQor44K144Kr44Oe44KtLOODkuODh+OCouOCrQ0KK+OCteOCrOODryzjg4jjgrfjg5LjgrUNCivjgrnjgq7jg6Tjg54s44K/44Kx44Om44KtDQor44K544Ku44Oi44OILOOCsw0KK+OCu+OCqizjg6bjgqbjgrgNCivjgrXjgqTjg4jjgqYs44K/44Kr44K3DQor44K144Kr44KkLOODn+OCreOCqg0KK+OCteOCr+ODqeOCpCzjgr/jg4Djg5Ljg60NCivjgrvjgq3jg40s44Oe44K144OO44OqDQor44K144OI44KmLOODj+ODhOODnw0KK+OCt+ODn+OCuizjgr/jgqvjgrcNCivjgrfjg5/jgros44OI44K344KqDQor44K144Kk44OI44KmLOODnuOCteOCqg0KK+OCteOCr+ODqeOCpCzjg57jgrXjgqLjgq0NCivjgrnjgq7jg6Tjg54s44Ok44K544KqDQor44K344K644KrLOODkuOCteODiuOCqg0KK+OCt+ODqeOCq+ODryzjgqLjgq3jg6kNCivjgrXjgqTjg4jjgqYs44Om44K644OrDQor44K144Kt44Oi44OqLOOCpOODr+OCqg0KK+OCteODiOOCpizjg4bjg4TjgqoNCivjgrvjgq3jgrDjg4Es44Kq44Kt44OI44K3DQor44K744Kt44ONLOODjuODquOCsw0KK+OCt+ODkOOCvyzjgrPjgqbjgrjjg63jgqYNCivjgrnjgrrjgq0s44K/44Kr44OS44OtDQor44K144Kk44OI44KmLOODkuOCteOCqg0KK+OCteODiOOCpizjg47jg6rjgqoNCivjgrvjgq3jg40s44Kq44K144OgDQor44K144Kr44KkLOODj+ODq+ODkuOCsw0KK+OCteOCteOCqizjgrfjg7PjgrgNCivjgrnjg4njgqYs44Oe44Kz44OIDQor44Oi44OqLOOCt+ODp+OCpuOCuA0KK+OCt+ODn+OCuizjgqjjgqTjgr7jgqYNCivjgrXjg4jjgqYs44OG44Or44KqDQor44K544K644KtLOOCpOOCteOCqg0KK+OCt+ODoOODqSzjg5Ljg63jg4jjgrcNCivjgrfjg5DjgrXjgq0s44OS44Ot44K3DQor44K544Ks44Oe44K/LOOCq+OCuuOCqg0KK+OCueOCuuOCrSzjg5Ljg63jgrcNCivjgrfjgqrjg47jg6Qs44Kt44Oo44Kr44K6DQor44K/44Kr44OP44K3LOODiOOCt+ODreOCpg0KK+ODhOOCreODpOODnizjgq3jgq/jgqoNCivjg4Tjg47jg4As44Oo44K344KtDQor44K/44Kr44OP44K3LOODiuOCquODiA0KK+ODiOOCr+OCtuODryzjg6Ljg6rjg4/jg6sNCivjgr/jgrDjg4Es44Oe44K144KqDQor44K/44Kr44KuLOODkuODh+OCqg0KK+OCv+OCq+ODjizjg4bjg6vjg5/jg4QNCivjgr/jg4/jg6ks44Kt44Oo44Kr44K6DQor44OI44Oo44K144OvLOOCs+OCpuOCpOODgQ0KK+ODiOODqOODnuOCuSzjgrHjgqTjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Oe44K144OO44OWDQor44K/44Kx44Km44OBLOODhuOCpOOCuA0KK+OCv+OCreOCpOOCtyzjg6rjg6fjgqbjgrgNCivjgr/jgqvjgqTjgrcs44K344Ky44KqDQor44K/44Kr44K144KtLOOCseODs+OCuA0KK+OCv+ODi+OCrOODryzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg4/jgrcs44Oe44K144OI44K3DQor44K/44OK44OP44K3LOOCs+OCpuOCuA0KK+OCv+ODnuOCrSzjg5Ljg63jgrcNCivjg4jjg5As44Oe44K144K3DQor44K/44OQ44K/LOOCv+OCq+OCtw0KK+ODhOOCuCzjgr/jgqvjgqoNCivjgr/jg4rjgqss44Ki44OE44K3DQor44K/44Kr44OP44K3LOODnuOCteODjuODqg0KK+ODiOOCr+ODiuOCrCzjgq3jg5/jgqoNCivjgr/jgrDjg4Es44Oe44K144KqDQor44K/44Kt44K244OvLOOCq+ODhOOCt+OCsg0KK+ODiOODnyzjgr/jg43jg57jgrUNCivjg4Tjgrgs44Kx44Kk44KzDQor44Km44OB44OALOODiOOCt+OCqg0KK+OCv+ODiuOCqyzjgqTjg6/jgqoNCivjg4Tjg43jg6jjgrcs44OO44Oq44Kr44K6DQor44K/44Kr44OOLOODoOODjeOCqg0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jg4ENCivjgr/jgqvjg6Tjg4rjgq4s44Oo44Km44Kk44OBDQor44K/44Kx44OALOOCseOCpOOCueOCsQ0KK+OCv+ODnCzjg6bjgr/jgqsNCivjgr/jg4rjgqss44Kr44K644KqDQor44K/44Kx44Km44OBLOODnuOCteOCrQ0KK+OCv+OCq+ODpOOCuSzjg4jjg6jjg58NCivjg4Tjg4Hjg6Qs44Om44OP44OEDQor44OI44Kv44OK44KsLOOCseODs+OCuA0KK+ODhOODgeODgCzjg4rjgqrjgqvjgr8NCivjg4Tjg5zjgqQs44Ko44Kk44Ko44OEDQor44K/44Kr44OP44K3LOODnuOCteOCt+OCsg0KK+ODhOOCq+ODouODiCzjgrXjg4Djg6ANCivjgr/jg4rjgqss44K344Ky44OrDQor44OI44Oi44OE44ONLOOCueOCueODoA0KK+ODgeOCuCzjg4jjgrfjg4/jg6sNCivjgrXjg4jjgqYs44K744Kk44K4DQor44K/44Kr44K/LOODhOODjeOCqg0KK+ODiOODj+OCvyzjg6jjgrfjg58NCivjgr/jgqvjg4/jgrcs44Of44OO44OrDQor44K/44Kr44OP44OeLOODqOOCt+OCouOCrQ0KK+ODhuODqeOCteODryzjg4rjgqrjgrMNCivjgr/jgqvjg5Djg6Tjgrcs44K344On44Km44K4DQor44OG44Op44OALOOCt+ODpeOCpuOCuA0KK+ODhOOCq+ODgCzjgrvjgqTjgrgNCivjgr/jg4rjgqss44OS44OH44KqDQor44OI44Oq44Oe44OrLOOCv+ODn+OCqg0KK+ODhOODgeODgCzjg57jg6Ljg6sNCivjgr/jgq3jg6Ljg4gs44OI44K344OS44KzDQor44K/44Kt44KkLOODkuODh+OCouOCrQ0KK+OCv+ODjeODgCzjgrHjg7PjgrgNCivjgr/jg6Djg6ks44Oo44K344OO44OqDQor44K/44OJ44Kz44OtLOODkuOCteOCqg0KK+OCv+OCq+OCqizjg57jgrnjg58NCivjgr/jg4rjgqss44OS44Kr44OrDQor44K/44Kr44OP44K3LOODj+ODhOOCqg0KK+OCv+OCq+ODj+OCtyzjgrfjgrLjg6bjgq0NCivjgr/jgqvjg4/jgrcs44OV44K444KqDQor44OI44Of44K/LOODiOOCquODqw0KK+OCv+OCq+ODj+OCtyzjgqLjg4Tjg47jg6oNCivjgr/jg4vjgrDjg4Es44Of44OB44Ki44KtDQor44K/44OK44KrLOODpuOCpuOCvuOCpg0KK+ODhOODnOOCpCzjg5Ljg63jg58NCivjgr/jgrHjgqbjg4Es44Ob44OW44OzDQor44OE44OALOODiOODqOOCtw0KK+OCv+OCseODgCzjg57jgrXjg6bjgq0NCivjgr/jgrHjgqQs44K344Ky44KqDQor44OE44K444Kr44OvLOODpuOCpuOCpOODgQ0KK+OCv+OCseODoOODqSzjgrvjgqTjgrjjg6UNCivjgr/jgq0s44Oe44K144Ki44KtDQor44K/44Kr44OALOODnuOCteOCouOCrQ0KK+OCv+OCreOCtuODryzjgrfjgrLjg6sNCivjgr/jg4rjgqss44Oe44K144K4DQor44K/44OL44Og44OpLOOCv+OCseODqOOCtw0KK+ODqOOCt+OCtuODryzjg57jgrXjg4/jg6sNCivjg4Tjg43jgqvjg68s44K/44Ot44KmDQor44K/44OK44KrLOODkuODreOCtw0KK+OCv+OCq+ODgCzjgqvjg4TjgqoNCivjg4Tjg6ss44Ki44Kt44OpDQor44K/44OLLOODnuOCteODkuODrQ0KK+OCv+OCsOODgSzjgqTjgrXjgqoNCivjgr/jg4rjgqss44K444Ol44Oz44K+44KmDQor44K/44OL44Kw44OBLOOCq+OCuuODkuODrQ0KK+OCv+ODiuOCqyzjg47jg6rjg5/jg4QNCivjg4Tjgrgs44Om44Km44Kk44OBDQor44K/44OK44KrLOOCq+ODhOODnw0KK+ODhOODpuOCrSzjg5LjgrXjgqoNCivjgr/jg57jg6ss44Oe44K144OfDQor44OE44OB44OkLOOCseOCpOOCuA0KK+ODhOODq+OCquOCqyzjg47jg5bjgqoNCivjgr/jgqvjg4/jgrcs44OG44OE44KqDQor44K/44Kr44OP44K3LOODn+ODhOOCsw0KK+ODiOOCpuODleOCr+OCuCzjg4jjgrfjgqoNCivjgr/jg4rjgqss44Kq44Kt44OE44KwDQor44K/44Kr44KuLOOCreODp+OCpuOCsw0KK+OCv+OCq+ODj+OCtyzjg6jjgrfjg5LjgrUNCivjgr/jg4vjgrDjg4Es44Oq44On44Km44K4DQor44OI44Oo44OALOODkuODiOOCtw0KK+OCv+OCq+OCrizjgr/jgrHjgrcNCivjgr/jgrHjgqQs44K344Ky44OrDQor44OE44OALOODleODn+OCqg0KK+ODhOODjeODkuODrSzjgrjjg6Xjg7PjgrgNCivjgr/jgq3jgrbjg68s44OI44K344KqDQor44K/44OB44OQ44OKLOOCtOOCpOODgQ0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg6bjgq0NCivjgr/jg4vjgrDjg4Es44Kz44K544KxDQor44K/44Kx44OALOOCq+OCuuODiA0KK+ODhOODgeODpCzjgrHjg7PjgqTjg4ENCivjgr/jgqvjg4/jgrcs44OI44K344Ki44KtDQor44K/44OO44Km44KoLOODkuOCs+OCteODluODreOCpg0KK+OCv+OCq+ODkOOCv+OCsSzjg57jgrXjg47jg5YNCivjgr/jgqvjg4/jgrcs44Oe44K/44K144OW44Ot44KmDQor44OV44OK44KtLOODhuODq+ODpOOCuQ0KK+OCv+OCseODgCzjgqvjg4Tjg57jgrUNCivjg4jjgq/jg4rjgqws44K/44OEDQor44Ki44K144KkLOODpuOCpuOCuA0KK+OCv+OCq+ODj+OCtyzjg5/jgq3jgrMNCivjgr/jgqvjg4/jgrcs44OO44Oq44KqDQor44K/44Ks44OvLOOCt+ODp+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg47jg5bjg6bjgq0NCivjgr/jg4Hjgqvjg68s44K/44Kx44K3DQor44K/44Kw44OBLOOCq+OCuuODqOOCtw0KK+OCv+OCq+OCteOCrSzjgqLjgq3jg6kNCivjgr/jg57jgqrjgq0s44K344K644KqDQor44K/44OK44KrLOOCu+OCpOOCpOODgeODreOCpg0KK+OCv+OCq+ODjizjgrfjg7MNCivjgr/jgrHjgqbjg4Es44K344Ky44OrDQor44OE44OALOOCu+ODs+OCuA0KK+OCv+OCq+ODiuODnyzjg57jgrXjg6sNCivjg4Tjgq3jg4rjg68s44Oo44K344OK44KqDQor44OI44Of44Oi44OqLOOCueOCueODoA0KK+OCv+OCseODgCzjg4jjgqrjg6sNCivjg4jjgqzjgrcs44OG44OE44OS44KzDQor44OE44K644KtLOOCt+OCsuODiOOCtw0KK+ODiOODk+OCvyzjg47jg5bjgqLjgq0NCivjg4jjg6Ljg4rjgqws44OE44ON44Kr44K6DQor44OE44OE44KkLOOCt+OCsuOCouOCrQ0KK+OCv+OCq+OCrizjgrjjg6Xjg7PjgrgNCivjgr/jg4vjgrDjg4Es44Kr44K644OI44K3DQor44K/44Kr44OOLOODiOOCt+ODkuODrQ0KK+OCv+ODiuOCqyzjgrXjg4jjgrcNCivjg4jjg57jg4Tjg6os44K344Ot44KmDQor44K/44Kr44KuLOOCpOODhOOCqg0KK+OCv+OCq+OCt+ODnizjg5Xjg5/jgqoNCivjgr/jg4/jg6ks44Oo44K344Ki44KtDQor44K/44OK44KrLOOCq+OCuuOCsw0KK+OCv+OCq+ODgCzjg6jjgrfjgqoNCivjg4jjg6rjgqQs44Of44OE44Om44KtDQor44K/44Kx44OZLOODjuODluODpuOCrQ0KK+ODhOOCq+ODouODiCzjgqLjgq3jgqoNCivjgr/jg6Djg6ks44OO44OW44OS44OtDQor44OI44Of44OK44KsLOOCteOCq+OCqA0KK+OCv+OCq+OCpOODryzjgrXjg4jjgrcNCivjgr/jg5Djgr8s44Kx44Oz44K4DQor44K/44Kr44OP44K3LOOCr+ODi+OCqg0KK+ODhuODs+ODneOCpuODquODsyzjgr3jgqbjgqTjg4ENCivjg4bjg6njgqbjg4Es44K144OA44Om44KtDQor44K/44Kr44OP44K3LOOCreODqOOCtw0KK+OCv+OCq+OCuyzjg4Hjgqvjg6kNCivjgr/jgrHjg6Djg6ks44Oi44OI44KkDQor44K/44Og44Kr44KkLOODleODn+OCqg0KK+OCv+OCq+ODj+OCtyzjg6bjgqbjgrgNCivjgr/jgrHjg4Qs44Kr44OE44K4DQor44K/44OO44Kq44KrLOOCueOCueODoA0KK+OCv+OCq+ODj+OCtyzjgr/jg4DjgrcNCivjg4jjgqrjg6Tjg54s44Kt44Oo44OO44OWDQor44K/44Kx44Km44OBLOOCouODhOOCtw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgqoNCivjgqbjgrfjgqos44Om44K644OrDQor44Km44K544KuLOOCq+OCuuODkuODrQ0KK+OCpuODgeODpOODnizjg6jjgqbjgqTjg4ENCivjgqbjg6Hjg4As44Kr44K644K544KxDQor44Km44Kx44Oi44OqLOODnuOCteODig0KK+OCpuODgeODgCzjg5/jg4Hjg6QNCivjgqbjgqjjg4As44OS44K144KqDQor44Km44OB44OALOOCseOCpOOCuA0KK+OCpuODhOOCrSzjg4bjg4TjgqoNCivjgqbjgqjjg4As44Of44Kt44OS44KzDQor44Km44OB44OALOODkuODh+OCrQ0KK+OCpuOCqOODj+ODqSzjgrfjg6XjgqYNCivjgqbjgqjjg6Djg6ks44OO44OW44OkDQor44Km44OB44OALOOCteODgOODpuOCrQ0KK+OCpuODgeODoOODqSzjgrHjgqTjgqTjg4ENCivjgqbjg4Hjg4As44Kx44Oz44K544KxDQor44Km44OB44OALOOCseOCpOOCpOODgQ0KK+OCpuOCqOOCrSzjgqLjgq3jgrMNCivjgqbjgqvjgrgs44Oe44K144OG44OrDQor44Km44OB44OALOODnuOCteOCouOCrQ0KK+OCpuOCqOODoOODqSzjg5Ljg4fjgqoNCivjgqbjgrfjgqos44OI44Kv44K4DQor44Km44Oh44Og44OpLOODiOOCt+OCqg0KK+OCpuODoeOCt+ODnizjg6rjgq3jg4TjgrANCivjgqbjgrPjg7Ms44Kr44Kq44OrDQor44Km44OB44Kk44KxLOOCuOODpeODs+OCpOODgQ0KK+OCpuODq+OCt+ODjizjgr/jgqvjgqLjgq0NCivjgqbjg4Hjg4rjgrcs44OY44Kk44K/DQor44Km44Kw44K1LOODnuOCteODpuOCrQ0KK+OCpuODjizjg4jjgrfjg5Ljg4cNCivjgqbjgqjjgq0s44Of44OO44OrDQor44Km44Ko44Oi44OILOOCseODsw0KK+OCpuOCqOODoOODqSzjg6bjgq3jgqoNCivjgqbjgqjjg4/jg6ks44OS44Ot44K3DQor44Km44Ko44OALOOCt+ODs+ODmuOCpA0KK+ODr+OCv+ODiuODmSzjg5LjgrXjg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kr44OE44OfDQor44Ov44K/44OK44OZLOOCreODs+ODpA0KK+ODr+OCq+ODoOODqSzjg6Tjgrnjg60NCivjg6/jgr/jg4rjg5ks44OS44OH44K4DQor44Ov44K/44OK44OZLOODqOOCt+OCv+OCqw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg4/jg6sNCivjg6/jgr/jg4rjg5ks44Kr44OE44OK44OqDQor44Ov44K/44OK44OZLOODkuODh+OCqg0KK+ODr+OCv+ODiuODmSzjgqvjg4Tjg5LjgrMNCivjg6/jgr/jg4rjg5ks44Ok44K544Ki44KtDQor44Ov44K/44OK44OZLOOCv+ODgOOCtw0KK+ODr+OCreOCvyzjgrPjgqbjg6HjgqQNCivjg6/jgr/jg4rjg5ks44OI44Kt44KqDQor44Ov44K/44OK44OZLOOCs+ODs+OCtOOCpg0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg6kNCivjg6/jgr/jg4rjg5ks44Kq44K144OgDQor44Ov44K/44OK44OZLOOCseODs+OCuA0KK+ODr+OCv+ODiuODmSzjgrnjg5/jgr/jg4ANCivjg6/jg4As44Ok44K544K3DQor44Ov44K/44OK44OZLOOCv+ODhOODkuOCsw0KK+ODr+ODgCzjgr/jgrHjg5/jg4QNCivjg6/jg4As44Ob44Oe44OsDQor44Ov44K/44OK44OZLOODnuOCteOCouOCrQ0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg6kNCivjg6/jgr/jg4rjg5ks44K344Ky44Ki44KtDQor44Ov44Kr44OQ44Ok44K3LOODn+ODjeOCqg0KK+ODr+OCv+ODiuODmSzjg5LjgrXjgqoNCivjgqrjgqrjgr8s44Oe44Kz44OIDQor44OV44K444Ov44OpLOOCueODn+OCouOCrQ0KK+OCs+OCpOOCsSzjg5/jg4HjgqoNCivjgqvjgr/jgqrjgqss44OG44OE44OkDQor44OS44Ot44K344KyLOOCreODqOOCtw0KK+OCt+ODs+OCtuODryzjg5Ljg63jgrcNCivjg5/jgrrjgqvjg58s44Oe44K144Of44OEDQor44OK44Kr44K444OeLOOCseOCpOOCpOODgQ0KK+ODleOCr+OCt+ODnizjgrfjgrLjgq0NCivjg4rjgqss44OS44Ot44K3DQor44OS44Op44Ok44OeLOODnuOCteOCsw0KK+ODi+ODr+ODpOODnizjgqvjg4TjgrgNCivjgrfjg5/jgros44K944Km44K444Ot44KmDQor44OV44Or44K144OvLOODhOODqOOCtw0KK+OCteOCr+ODqeOCpCzjg5/jgrrjg5sNCivjgr/jgrHjg4rjgqss44Ki44OE44OO44OWDQor44K544Ku44Km44OpLOOCq+ODqOOCsw0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjg5vjgrfjgqvjg68s44Oe44K144KqDQor44Kq44Ks44OvLOOCpOOCteOCqg0KK+OCq+OCt+ODr+OCrizjgrMNCivjgrXjgqvjgqQs44OS44Ot44KzDQor44Oi44OqLOODj+ODq+OCqg0KK+ODm+ODs+ODnCzjg47jg5bjg6bjgq0NCivjgqTjgqTjgrjjg54s44Oo44K344Ki44KtDQor44Kz44K444OeLOOCv+OCq+OCqg0KK+OCv+OCq+ODj+OCtyzjg47jg5zjg6sNCivjg4/jgr8s44K344On44Km44K544KxDQor44Kq44Ks44OvLOOCouOCreODjuODqg0KK+ODhOODgeODpCzjgqvjg4Tjg6QNCivjgrPjg6Tjg54s44Kk44K144KqDQor44OV44Or44OfLOODhuODhOOCqg0KK+OCr+ODoSzjg4Tjg43jgqoNCivjgq/jg6njgr8s44K744OE44KqDQor44Km44K344K444OeLOODnuOCteOCq+OCug0KK+OCqOODkOODiCzjgqvjg4Tjg47jg6oNCivjgrXjg4jjgqYs44OO44OW44Om44KtDQor44Og44K344OjLOODiuOCquODkuOCsw0KK+ODpuOCouOCtSzjg57jg6Ljg6sNCivjgq3jgq/jg4Es44OK44Kq44KtDQor44Oe44OE44OQ44Ok44K3LOODhuODq+ODqOOCtw0KK+ODnuODhOOCpCzjgqLjgq3jg6kNCivjgr/jgrHjg6Djg6ks44OS44Ot44K3DQor44OG44Op44K344OeLOODqOOCpuOCueOCsQ0KK+OCr+ODqSzjg5Ljg4fjgq/jg4sNCivjg57jg4TjgqQs44Oo44K344KqDQor44Km44Ko44OALOOCpOOCteOCqg0KK+ODj+ODpOOCtyzjgrfjg7PjgqTjg4ENCivjgqvjg6/jg4os44OA44Kk44K444Ot44KmDQor44OP44Ok44K3LOOCq+OCuuOCqg0KK+ODh+ODouODiCzjg57jgrXjg5Ljg60NCivjgrfjg5bjgq0s44K/44Kx44K3DQor44OP44OeLOOCv+ODhOOCqg0KK+OCqOODs+ODiSzjgrPjgqbjgrbjg5bjg63jgqYNCivjg5/jg6Tjg6Ljg4gs44K/44Kr44OS44K1DQor44Oe44OE44OALOODkuODreOCtw0KK+ODpOODnuODouODiCzjg4jjg6LjgrMNCivjg6Djg6njgqvjg58s44K344Ky44KqDQor44Kq44Kr44OALOODgOOCpOOCreODgQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg6bjgq0NCivjgqTjg6/jgrXjgq0s44Ki44Kt44OoDQor44Oo44K344OALOOCueODn+ODpuOCrQ0KK+OCquOCquODouODqizjg57jgrXjg47jg6oNCivjg5/jgrrjgr/jg4ss44OS44K144KoDQor44K544Ku44Km44OpLOOCq+OCuuOCqg0KK+ODjuODiuOCqyzjg5/jg4Tjgr/jgqsNCivjg6/jgr/jg4rjg5ks44Kk44K144OgDQor44K144Kk44OI44KmLOOCv+OCseOCqg0KK+OCquOCquOCq+ODr+ODqSzjgrLjg7Pjgr/jg63jgqYNCivjgqvjg4njgqTjgrEs44K/44Kx44K/44OADQor44Oe44OE44Oi44OILOODjuODquOCq+OCug0KK+ODiuOCqyzjgr/jgqvjgqoNCivjgqvjg4jjgqYs44Kx44Oz44K+44KmDQor44Kr44Ov44Kk44K3LOODpuOCpuOCsw0KK+ODiuOCrOOCteODryzjg4Tjg4jjg6ANCivjgrnjg6Tjg54s44Kv44Oz44Ot44KmDQor44Kv44Oe44K344OtLOODkuODreOCtw0KK+OCv+OCq+ODkOODpOOCtyzjg5Ljg4fjgqoNCivjgrPjg7Pjg4ks44Kx44Oz44K+44KmDQor44Kk44OK44OQLOOCteODiOODqw0KK+OCs+ODkOODpOOCtyzjg4jjgrfjg5Ljg60NCivjg6Tjg57jgrDjg4Es44Of44Kr44KzDQor44K544K644KtLOODpuOCpuOCuA0KK+OCouOCreODpOODnizjg6bjgr/jgqsNCivjgr/jgqvjg4As44Ki44Kt44OpDQor44K144Ov44KkLOODnuOCteODkuOCsw0KK+ODiuOCq+OCvyzjgq3jg6jjg6bjgq0NCivjgqTjgr/jg5As44Om44Km44Kk44OBDQor44Kv44OL44Ku44K/LOODqOOCpuOCpOODgQ0KK+ODpOODnuODgCzjg6jjgqbjgrMNCivjg6Tjg57jg4As44Om44Km44KzDQor44K/44Kr44OP44K3LOODqOOCpuOCpOODgeODreOCpg0KK+OCpuODoeODoOODqSzjg47jg6rjg5LjgrMNCivjgrPjg5Djg6Tjgrcs44OO44OW44Ki44KtDQor44Kr44ON44Of44OELOOCv+ODgOOCqg0KK+OCreODiSzjg57jgrXjgrcNCivjgqvjg43jgq0s44K/44OA44KqDQor44Kz44Og44OpLOODnuOCteODkuODrQ0KK+ODleOCuOODouODqizjgrHjg7PjgqTjg4ENCivjg6Tjg57jgrfjgr8s44OG44Or44K/44KxDQor44Kv44Oq44Ok44OeLOODnuOCteODkuODrQ0KK+ODiOOCtuODryzjgr/jgqvjgrcNCivjgqTjgrfjgqQs44OB44Kr44OI44K3DQor44K/44Kr44OP44K3LOODqOOCpuOCpOODgQ0KK+OCv+ODiuOCqyzjgqvjgrrjg58NCivjgqTjgrfjgrbjgq0s44OG44OE44KqDQor44OP44Op44OALOODnuOCteODkuODrQ0KK+ODiOOCr+ODkuOCtSzjgrfjgrLjg6TjgrkNCivjgqTjgrfjg6Djg6ks44K/44OA44OS44OtDQor44Km44Ko44OALOOCv+OCq+OCtw0KK+OCquODleODgSzjgq/jg4vjg5Ljg60NCivjg6Tjg4Tjg6vjgq4s44Of44OE44KqDQor44Of44OK44OILOODnuODpuODnw0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg60NCivjg5/jg4rjg58s44Ok44K544KqDQor44Kq44KrLOOCouOCreOCqg0KK+OCpOODgeOCq+ODryzjgqvjgrrjgqoNCivjgqrjgqrjgq/jg5ws44OS44OH44KtDQor44Kk44K344OALOODkuODreODpuOCrQ0KK+ODiOODn+OCvyzjgqTjgrXjgqoNCivjg5Ljg6njgqrjgqss44OS44Ot44OS44K1DQor44Kr44OI44KmLOODkuODh+OCqg0KK+OCquODoOODqSzjg6Djg4TjgqoNCivjgqrjgrXjgrjjg54s44OI44K344OkDQor44OV44OK44Kz44K3LOOCu+ODhOOCqg0KK+OCs+OCpuODgCzjg5Ljg4fjgqLjgq0NCivjgqLjgrXjgqrjgqss44K/44OE44KqDQor44Kr44K544KsLOOCouOCseODnw0KK+ODouODouODj+ODqSzjg5bjg7PjgqTjg4ENCivjgqbjgqjjg6Djg6ks44OI44K344OS44OHDQor44Kq44OQ44K/LOOCq+OCuuOCsw0KK+OCquODjuODgCzjg6bjgq3jgqoNCivjg5/jg6Tjgrfjgr8s44Kr44Oz44K4DQor44Ob44K944OkLOODpOOCueOCqg0KK+ODpOOCt+ODrSzjg6bjgq3jgqoNCivjg6/jgr/jg4rjg5ks44Ki44OE44K3DQor44Kt44Og44OpLOODiOOCreODgQ0KK+OCq+ODn+OCuOODp+OCpizjg5LjgrXjgqgNCivjgrXjg4jjgqYs44Oo44K344Kq44KtDQor44Oe44OE44K344OeLOOCouOCreODqQ0KK+OCq+OCv+ODpOODnizjg6jjgqbjgrMNCivjg5Ljg6njg44s44K044OY44KkDQor44OK44Kr44Op44KkLOODgOOCpOOCueOCsQ0KK+ODqOOCs+ODpOODnizjg5LjgrXjgqoNCivjgqrjgqrjgqzjg40s44OI44Oi44OS44OtDQor44Kt44Og44OpLOODnuOCs+ODiA0KK+ODjuOCtuOCtSzjg6jjgrfjg47jg6oNCivjg6Ljg6rjg44s44Kr44K644K344KyDQor44Ko44OB44K044OkLOODn+ODgeODkuOCsw0KK+ODleOCr+OCt+ODnizjg5Ljg4fjgqoNCivjgqTjg4jjgqYs44Oe44K144Om44KtDQor44Kk44Kx44OALOODpuOCreOCsw0KK+ODiOOCr+ODiuOCrCzjg6rjgqgNCivjgq3jg6Ljg4gs44Ki44Kk44KzDQor44Kq44K344OALOOCteODiOOCsw0KK+ODj+OCt+ODouODiCzjg47jg6rjgqvjgroNCivjg47jgrDjg4Es44OI44K344OO44OqDQor44Of44Ok44OZLOOCq+OCuuODiA0KK+OCr+ODr+ODj+ODqSzjg6TjgrnjgqgNCivjgq3jg6Djg6ks44OS44Ot44OfDQor44Kq44OALOOCq+OCuuODpuOCrQ0KK+OCouOCpOOCtuODryzjgr/jg5/jgqoNCivjgqbjgqjjg44s44Kr44OE44KqDQor44Oe44OE44OQ44OpLOODjuODquODpuOCrQ0KK+OCv+ODnuOCpCzjgqvjgrrjg5/jg4ENCivjgrfjg6njgqQs44Oo44K344KqDQor44Kq44Kq44OP44K3LOOCs+OCpuOCuA0KK+OCv+ODn+ODpCzjg5Xjg5/jg6QNCivjg4/jg6njg4As44Oo44K344KzDQor44Km44K544KkLOOCv+OCq+OCtw0KK+OCs+ODqizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg47jg4As44K344Ky44OS44KzDQor44OK44Of44KtLOODnuOCteODiA0KK+ODiuOCq+OCqizjg57jgrXjg5/jg4QNCivjgqvjg4njg6Qs44Ki44Kt44OpDQor44Kq44OOLOODiOOCt+ODkuODhw0KK+OCt+ODluOCq+ODryzjgrfjg7PjgqTjg4ENCivjgqTjg6/jgrXjg68s44Oe44OK44OWDQor44K/44OW44K7LOOCpOODgeODreOCpg0KK+OCquOCteODryzjgr/jgqvjg6jjgrcNCivjg4rjgqvjg4DjgqQs44Kx44Oz44K4DQor44Ko44Ks44K344OpLOODkuODreODpuOCrQ0KK+OCteOCteOCrSzjgqvjg4TjgqoNCivjg5Xjgq/jg4Es44Kr44K644OS44KzDQor44Oo44K344Ok44K5LOOCtOOCpg0KK+ODr+OCv+ODiuODmSzjgrPjgrXjg4gNCivjgqbjgqjjg44s44Os44Kk44KzDQor44Ko44OI44KmLOODnuOCteODjuODqg0KK+ODqOOCt+ODgCzjg57jgrXjgqoNCivjgr/jgrHjgqQs44Om44Km44Kk44OBDQor44OP44Ok44K3LOODkuOCteOCtw0KK+ODnuOCv+OCrSzjgrfjg7PjgrQNCivjg6Ljg6rjg6Ljg4gs44Kk44OB44Ot44KmDQor44Kk44OP44OpLOOCseODs+OCuA0KK+ODhOOCq+ODj+ODqSzjg4bjg6vjgqoNCivjgqvjg47jgqYs44OI44Oi44KzDQor44Og44ON44Om44KtLOODkuODh+ODnuOCtQ0KK+OCquOCquODhOODnCzjg6jjgrfjgr/jgqsNCivjg6Tjg57jg6Ljg6os44Kr44OE44KqDQor44Ki44Oz44OJ44KmLOOCu+OCpOOCrQ0KK+ODpOODnuOCtuOCrSzjg6jjgrfjgqLjgq0NCivjgr/jgq3jg6Ljg4gs44Oo44Km44Kk44OBDQor44K/44Kx44Og44OpLOODiuOCquOCq+OCug0KK+ODoOODqeOCq+ODnyzjg57jgrPjg4gNCivjgr/jgqvjgr8s44OO44Oq44KqDQor44OS44Ot44K7LOODhOOCv+ODkuODrQ0KK+ODpOOCr+ODryzjgr/jgqvjgrcNCivjgrfjg7PjgrDjg6rjg6fjgqYs44Oo44Km44KzDQor44K/44OBLOODnuOCteOCtw0KK+OCteODiOOCpizjgqvjgrrjgqoNCivjg6Tjg57jg6Ljg4gs44Oe44K144OS44OtDQor44K544OJ44KmLOOCt+ODp+OCpuOCsw0KK+ODm+ODs+ODnizjg5Ljg63jgq0NCivjgqrjgqrjg4Tjg5ws44OI44K344KqDQor44Kr44K244OeLOODn+ODhOODkuODrQ0KK+OCouOCrOODryzjg5/jg5vjgrMNCivjgqTjg47jgqbjgqgs44Oq44Ol44Km44Kk44OBDQor44Ki44Op44KkLOODnuOCteODgQ0KK+OCpuOCqOODoOODqSzjg6bjgr/jgqsNCivjg4vjgrfjgq/jg6ks44Oe44K144OS44OtDQor44Of44Ok44K244KtLOODqOOCt+OCq+OCug0KK+ODleOCr+ODgCzjg6Ljg6rjg57jgrUNCivjg4Tjg6rjg6Qs44K/44OA44KqDQor44K/44OK44KrLOODkuODreOCq+OCug0KK+OCquOCrOODryzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Of44OO44OrDQor44OP44Oe44Kw44OBLOOCv+OCr+OCuA0KK+OCq+ODoeODgCzjgqvjg4Tjg6QNCivjg6Ljg6Ljg4/jg6ks44OS44OH44KqDQor44OS44Op44KqLOOCv+OCq+OCsw0KK+OCv+OCq+ODgCzjg4rjgqrjg6bjgq0NCivjgqTjgrHjg4As44Oo44K344OS44OtDQor44K544K644KtLOOCouOCreODqQ0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg6jjgrcNCivjgr/jg4rjgqss44K444Ot44KmDQor44K744OpLOOCv+OCpOODgQ0KK+OCv+OCseODoOODqSzjg4jjgrfjgqLjgq0NCivjg5vjg6rjgq3jg6os44Oe44Oi44OrDQor44Kk44Kx44OALOODn+ODjuODqw0KK+OCouODqeOCrSzjgrvjgq3jg40NCivjgqrjgqrjg4Tjgqss44Kr44K644Kk44OB44Ot44KmDQor44Kv44OL44Oe44OELOOCu+OCpOOCtuODluODreOCpg0KK+OCpuOCt+ODkCzjgr/jgqvjgrcNCivjg4/jg6Tjgrcs44Oe44K144OIDQor44Kk44K344KkLOODn+OCreOCqg0KK+OCq+ODgCzjgqLjgq3jg6kNCivjg6Tjgq4s44K/44OA44KqDQor44OS44Op44KkLOOCs+OCpuOCpOODgeODreOCpg0KK+OCr+ODreOCuyzjg5Ljg63jgrcNCivjgqrjgqvjg5ks44Kk44K144OgDQor44Kr44ON44KzLOODiOOCt+ODpuOCrQ0KK+OCs+OCuOODnizjgrXjg4jjg6sNCivjg4vjgrfjg6jjg6os44Of44OO44OrDQor44OK44Kr44K444On44KmLOOCuOODreOCpg0KK+ODj+OCt+OCr+ODqSzjg4Tjg4jjg6ANCivjgr/jgqvjg4/jgrcs44K/44OE44KqDQor44Km44Ko44Kv44K1LOODjuODluOCouOCrQ0KK+OCt+ODkOOCvyzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44OG44Or44KqDQor44Kk44OK44OQLOOCq+OCuuODiA0KK+OCuOODpeODs+OCpOODgeODrSzjgqLjgq3jg47jg6oNCivjg4/jg6Tjgqvjg68s44OS44OH44KqDQor44Kk44OI44KmLOOCv+OCseOCtw0KK+OCreODouODiCzjg57jgrXjg4TjgrANCivjgqTjg4As44OS44Ot44K3DQor44Ob44Km44K444On44KmLOOCq+ODhOODkuOCsw0KK+ODm+ODquOCpCzjg4Tjg43jgqoNCivjgqvjgqTjgrss44Ki44OE44K3DQor44OP44K344Oi44OILOODpOOCueOCouOCrQ0KK+OCueOCuuOCrSzjg5Ljg4jjgrcNCivjgqvjg43jgrXjgqss44Oo44K344KqDQor44Ok44Oe44Kw44OBLOODpuOCpuOCuA0KK+OCueOCuuOCrSzjg57jgrXjgqvjgroNCivjgrnjg4njgqYs44Oe44K144OS44KzDQor44Kq44Kq44OQLOODn+ODm+OCsw0KK+ODoOODqeOCvyzjg4jjgrfjgrMNCivjgqLjgq3jg6Tjg54s44Oe44K144K3DQor44Ki44K544OeLOOCv+OCseOCqg0KK+OCq+ODr+OCuOODqizjg5Ljg4fjgqoNCivjg57jg4Tjg6Ljg4gs44Kt44On44Km44K4DQor44K344Ot44Ok44OeLOOCsw0KK+ODleOCuOOCpCzjgqLjg4TjgrMNCivjgrTjg4jjgqYs44OA44Kk44K544KxDQor44K/44OL44Ki44KkLOODpOOCueODnuOCtQ0KK+OCq+ODhOODnOODqizjg57jgq0NCivjg5LjgqLjg4Ys44Kv44Of44KzDQor44OG44Op44KkLOOCouOCreOCsw0KK+ODj+ODs+ODgCzjg57jgrXjgrMNCivjg5/jgrfjg54s44OS44Ot44OfDQor44K/44Kr44K344OeLOOCq+OCuuODnw0KK+ODnuODhOODgCzjgqLjgq3jg6kNCivjgrPjg7Pjg4ks44OO44Oq44KzDQor44Kk44K/44OkLOOCseODs+OCuA0KK+ODnuODhOODouODiCzjg4rjgqrjgr/jgrENCivjgqTjgqTjg6Tjg54s44OS44OH44KqDQor44K444OD44OILOOCq+ODhOODkuODrQ0KK+OCr+ODnOOCvyzjgrXjg4HjgrMNCivjgqTjgrfjgrDjg60s44Ko44Kk44K4DQor44Oi44OqLOOCpuODhOODnw0KK+OCq+ODs+ODjizjgrXjg4HjgrMNCivjgqTjg4jjgqYs44K744Kk44K4DQor44Oo44K344OALOODquODpeOCpuOCuA0KK+ODnuODq+ODpOODnizjgq/jg4vjgqoNCivjgrXjg4jjgqYs44OK44ObDQor44Kz44Km44OALOODqOOCpuOCuA0KK+ODr+OCv+ODiyzjg57jg6Ljg6sNCivjgrXjgrss44Kk44Kv44KqDQor44K944OI44Ok44OeLOOCq+ODhOODjuODqg0KK+ODm+ODs+ODgCzjg4bjg6vjgq/jg4sNCivjgqTjg4zjgqQs44Om44K/44KrDQor44K544K644KtLOODqOOCt+ODjuODqg0KK+OCs+ODi+OCtyzjg6jjgrfjg47jg5YNCivjgrnjgq7jgqQs44Om44Kt44OS44K1DQor44Ki44Op44KtLOODjuODluOCqg0KK+ODkuODqeOCquOCqyzjg6TjgrnjgrcNCivjgqrjgqrjg4Tjgqss44Og44OE44KqDQor44Kr44OI44KmLOOCt+OCsuOCqg0KK+OCt+OCquODjizjg5Ljg63jgrcNCivjgqvjgr/jg6Tjg54s44OS44Ot44OO44OqDQor44OV44OB44Kr44OfLOOCv+OCseODkuOCsw0KK+ODkuODqeOCrSzjgr/jg6Ljg4QNCivjgqTjg6/jgrXjgq0s44Kt44Of44KqDQor44Ko44OO44KtLOOCuOODpeODsw0KK+OCpOODr+OCvyzjgrvjgqTjgqTjg4ENCivjgrfjg6Xjg4jjgqYs44K/44OA44K3DQor44OI44Kq44Ok44OeLOODnuODhOODjuODqg0KK+OCs+OCpOODhyzjgrjjg6Xjg7Pjgrbjg5bjg60NCivjgr/jg4rjg5ks44Om44Km44K444Ot44KmDQor44Ok44Oe44Oi44OILOOCt+ODpeODs+OCpOODgQ0KK+OCq+OCpOODj+ODhCzjgrvjgqTjgrcNCivjgqLjg6njgqQs44Kr44OE44K4DQor44Km44Ko44OALOODpuOCpuOCvuOCpg0KK+OCr+ODqeOCquOCqyzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgrPjg5Djg6Tjgrcs44Ko44OE44OS44OtDQor44K/44Oh44OB44KrLOOCv+ODhuOCqg0KK+ODqOOCt+ODgCzjgrfjgrrjgqoNCivjg57jg4Tjg6Ljg4gs44K344Ky44OrDQor44K144Kr44K344K/LOOCq+ODjeOCqg0KK+ODr+ODgCzjg4jjgrfjgqLjgq0NCivjgqTjg4jjgqYs44Ok44K544KqDQor44Oo44K344OALOOCq+ODhOOCuA0KK+ODqOODjeODgCzjg4jjgrfjg5Ljg4cNCivjgqrjg6Djg6ks44Oe44K144OfDQor44K/44Kr44KuLOOCt+ODgeODreOCpg0KK+OCpuODgeODpOODnizjgqLjgq3jgrMNCivjgqvjgrfjg6/jgq4s44Kx44Kk44KzDQor44OL44K344OALOOCu+ODhOOCqg0KK+OCquOCt+OCqyzjgr/jgrHjgqoNCivjgqjjgrjjg54s44OI44Oi44OO44OqDQor44Kq44KrLOOCseODs+OCpOODgQ0KK+ODqOOCt+ODgCzjg6TjgrnjgqgNCivjgqTjg57jgqQs44Ok44K544K344Ot44KmDQor44Ok44Oe44Of44OBLOODiOODouOCsw0KK+OCouOCpOODouODjizjgqvjg4TjgqoNCivjg5Ljg44s44Oi44OI44KzDQor44K/44Kr44OP44K3LOODn+OCteOCsw0KK+ODqOOCs+OCvyzjgqjjgqTjgrMNCivjgqTjg47jgqYs44K/44Ko44KzDQor44Oo44K344OALOODkuODreOCsw0KK+ODqOOCt+OCquOCqyzjgqLjgq3jgrMNCivjgqbjg6Hjgrbjg68s44Km44Kt44KzDQor44OG44Op44KqLOODkuODreODkuOCtQ0KK+OCq+ODr+ODj+ODqSzjg4/jg6vjgqoNCivjg4/jgrvjgqzjg68s44Of44OO44OrDQor44Kt44K3LOODhuODq+OCsw0KK+ODj+OCt+OCuuODoSzjg5/jg4Tjg5Ljg60NCivjg6jjgrfjg4As44Oh44Kw44OfDQor44Of44ON44OV44K4LOODiuOCquOCsw0KK+ODm+ODs+ODgCzjg6bjg58NCivjgr/jgqvjgrXjg68s44Of44Om44KtDQor44Kq44Kq44OP44K3LOODqOOCpuOCsw0KK+OCq+OCrOODryzjg4HjgqsNCivjg4vjgrfjg4As44Oe44OqDQor44Kk44K/44Ks44KtLOOCouOCreOCsw0KK+OCouOCreODpOODnizjg47jg6rjg5Ljg60NCivjgqrjg4Hjg6os44Ok44K544OS44OtDQor44OO44K244OvLOOCs+OCpuOCuA0KK+OCteOCpOODiOOCpizjgrHjg7PjgrgNCivjgq3jg6Djg6ks44OB44KoDQor44Ki44OZLOODiuOCquODiA0KK+OCr+OCueODjuOCrSzjg4jjg6LjgrMNCivjg4/jg6Tjgrcs44Ok44K544OS44OtDQor44Kq44Kq44KkLOODiuOCquODnw0KK+OCq+ODn+OCquOCqyzjg4/jg6vjg6jjgrcNCivjgqLjgq3jg6Tjg54s44Kk44K144KqDQor44Ki44Oq44K/LOOCq+ODhOODnw0KK+OCreOCv+ODoOODqSzjg5/jg4Hjg6bjgq0NCivjg57jgrnjg6Djg6ks44K/44Kr44OO44OqDQor44Kq44Kq44K144OvLOOCseODsw0KK+OCq+ODr+OCpCzjg5/jg47jg6sNCivjgqTjgr/jgqzjgq0s44OS44OH44KqDQor44Oi44OqLOOCv+OCq+OCqg0KK+OCouOCquOCrSzjg5/jgq3jgqoNCivjg5Xjgrjjgrfjg60s44Kz44Km44K4DQor44K344Of44K6LOODouODiOOCt+OCsg0KK+ODoOODqeOCq+ODnyzjg5/jg6jjgrcNCivjg4rjgqvjgrjjg54s44OG44OE44KqDQor44Oi44KuLOOCouOCreOCqg0KK+ODn+OCpuODqSzjgqvjgrrjgqoNCivjgr/jgqvjg57jg4Qs44Kx44Oz44K4DQor44K/44Kr44OALOOCt+ODp+OCpuOCpOODgQ0KK+OCs+ODs+ODiSzjg57jgrXjgrMNCivjg4rjgqvjgrjjg54s44OS44OI44K3DQor44ON44Os44KkLOODkuODreOCtw0KK+OCpuOCt+OCryzjgqrjgrXjg6ANCivjgq3jgr/jgrbjg68s44KzDQor44K144OD44K1LOODjuODluODkuODrQ0KK+OCpOODg+OCt+OCrSzjg6jjgrfjg5Ljg60NCivjgqvjg6/jg44s44OO44Oq44OE44KwDQor44Kk44K344OP44OpLOODleODn+OCv+OCqw0KK+OCq+ODoeOCquOCqyzjgr/jg4DjgqoNCivjgq3jgqbjg4Es44OO44Oq44Kr44K6DQor44OK44Ks44KkLOODkuODiOOCtw0KK+ODjuOCsOODgSzjg5/jg4HjgqoNCivjgqrjgrfjgr8s44K/44Kr44KqDQor44Oo44K344Og44OpLOODiOOCt+ODn+ODgQ0KK+OCouOCq+ODm+ODqizjg5/jg4Tjg47jg5YNCivjg57jg6vjg4rjgqws44Oo44K344OE44KwDQor44Oo44K344OOLOOCs+OCpuOCv+ODreOCpg0KK+ODpOODjizjg6jjgrfjg5Ljg60NCivjg6Tjg57jgrDjg4Es44Oe44K144OS44OHDQor44Ok44Oe44Kw44OBLOOCq+ODhOODiOOCtw0KK+OCu+ODs+ODieODgCzjg57jgrXjg6sNCivjg6Tjgrnjg4As44Ki44Kt44OpDQor44Oo44Kz44KoLOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuOCt+OCvyzjgrvjgqTjgrbjg5bjg63jgqYNCivjg6jjgrfjg4As44OI44Of44K+44KmDQor44Ok44Oe44K344K/LOOCueOCueODoA0KK+ODpOOCueOCpCzjgqvjgrrjgqoNCivjg6Tjg57jgqrjgqss44Kt44On44Km44K544KxDQor44Oo44Kz44K7LOODiOODouOCt+OCsg0KK+ODpOODnuOCsOODgSzjgrHjg7PjgrgNCivjg6Tjg4/jgq4s44Ok44K544OP44OrDQor44Ok44Oe44Kq44KrLOODkuODreODnuODqw0KK+ODqOODhOODpCzjg4jjgqrjg6sNCivjg6Tjg57jg6Ljg4gs44K444Ol44Oz44KzDQor44Oo44K344Kr44OvLOODiOOCt+ODreOCpg0KK+ODpOODnuOCt+OCvyzjgrfjg6fjgqbjgrgNCivjg6Tjg57jgqrjgqss44OS44Ot44KzDQor44Oo44ON44Of44OELOOCu+OCpOOCuA0KK+ODqOOCt+ODgCzjgrHjg7PjgqTjg4ENCivjg6Tjg57jgrbjgq0s44OG44OE44KqDQor44Ok44Oe44Oi44OILOODkuOCq+ODqw0KK+ODpOODnuOCsOODgSzjg5/jg47jg6sNCivjg6Tjg57jgqbjg4Es44K144Kr44KoDQor44Oo44K344K244OvLOOCq+ODhOODnw0KK+ODqOOCt+OCquOCqyzjgqvjg4Tjg5Ljg4gNCivjg6Tjg57jg6Ljg4gs44OO44OW44KqDQor44Ok44Oe44Kq44KrLOODn+ODgeODiOOCtw0KK+ODpOODnuOCtuOCrSzjgqLjgq3jg6kNCivjg6jjgrfjg6Djg6ks44Oe44K144OS44KzDQor44Ok44K544OALOOCs+OCpuOCuA0KK+ODpOODnuOCt+OCvyzjgrvjgqTjgqTjg4ENCivjg6Tjg4As44K344Oz44OkDQor44Oo44K344OALOOCpOODgeODreOCpg0KK+ODpOODnuODouODiCzjg4Tjg4jjg6ANCivjg6Tjg57jg4As44K044Ot44KmDQor44Oo44ON44OALOOCq+OCquODqw0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg60NCivjg6Tjg57jg4As44Kv44K544KqDQor44Ok44Oe44Kw44OBLOOCv+OCq+ODleODnw0KK+ODpOODnuOCsOODgSzjg5Xjg5/jg5Ljg60NCivjg6Tjg57jg6Ljg4gs44K/44Kr44KzDQor44Oo44K344OALOOCueOCueODoA0KK+ODpOODnuOCt+OCvyzjgrfjg6fjgqbjgr7jgqYNCivjg6Tjg7Pjg5ks44Ki44OE44OS44OtDQor44Ok44Oe44Kw44OBLOODjuODquODqOOCtw0KK+ODpOODnuODouODiCzjgrjjg6Xjg7PjgrgNCivjg6Tjg57jg40s44Kz44Km44K444Ot44KmDQor44Ok44Oe44K144KtLOOCseODs+OCv+ODreOCpg0KK+ODpOOCueOCquOCqyzjg6bjgq3jgqoNCivjg6Tjg57jg4As44Ko44Kk44K+44KmDQor44Oo44K344K244OvLOOCuOODreOCpg0KK+ODpOOCuOODnizjgqLjgq3jg6kNCivjg6Tjg4rjgqQs44OG44OE44KqDQor44Ok44Oe44K244KtLOOCq+OCuuOCqg0KK+ODpOODnuOCpuODgSzjg5Xjgq/jg5/jg4ENCivjg6Tjg57jgrbjgq0s44K544K544OgDQor44Oo44K344OOLOOCv+ODhOODpuOCrQ0KK+ODpOODnuOCq+OCsizjgr/jg4Djg47jg5YNCivjg6Tjgq4s44K444OE44OO44OqDQor44Ok44K544OALOODnuOCteOCqg0KK+ODpOODnuODpCzjg47jg5bjgqoNCivjgr/jgqvjgrDjg4Es44OO44Oc44OrDQor44Oo44K344OALOODkuODreOCtw0KK+ODqOOCt+ODjizjgrPjgqbjgrgNCivjg6Tjg57jg6Djg6ks44K444Ol44Oz44Kk44OBDQor44Ok44KuLOOCq+ODhOODjuODqg0KK+ODpOODnuODgCzjgrPjgrnjgrENCivjg6bjgqvjg68s44Oe44K144OI44K3DQor44Ok44Oe44Oi44OILOOCuOODp+OCpuOCuA0KK+ODpOODnuOCv+ODiyzjg5Ljg63jg4TjgrANCivjg6Tjg57jg6Djg60s44Oo44K344Kr44ONDQor44Oo44K344OALOODiOOCt+ODkuOCsw0KK+ODqOOCs+OCq+ODryzjg4jjg6Ljg6jjgrcNCivjg6Tjg57jgrbjgq0s44Kz44Km44Kk44OBDQor44Ok44Oe44Oi44OILOOCv+OCseOCqg0KK+ODqOOCt+ODjizjgq3jg6jjgrcNCivjg6Tjg57jg40s44Oo44ON44K/44KrDQor44Ok44K544OK44KsLOOCouOCreODkuODrQ0KK+ODpOODiuOCqyzjgrHjgqTjgqTjg4ENCivjg6Tjg57jg40s44OG44OE44KqDQor44Ok44Oe44Km44OBLOODqOOCt+ODpuOCrQ0KK+ODpOODnuOCsOODgSzjg6bjgqbjgrgNCivjg6Tjg57jg6/jgq0s44K344On44Km44K/44Ot44KmDQor44Ok44Oe44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuODgCzjgqvjgrrjg58NCivjg6jjgrPjg6Tjg54s44K344On44Km44K/44Ot44KmDQor44Ok44Oe44Oi44OILOODpOOCveODnw0KK+ODpOODnuOCsOODgSzjg47jg5zjg6sNCivjg6Tjg57jgrDjg4Es44K/44Kr44Oo44K3DQor44Oo44K344OALOOCv+OCq+OCqg0KK+ODpOODnuODiuOCqyzjgqvjgrrjg58NCivjg6Tjg57jg6Ljg4gs44K/44OA44OP44OrDQor44Oo44K344OALOOCv+OCq+OCqg0KK+ODpOODnuODgCzjgrXjg4jjg6sNCivjg6Tjg57jgqrjgqss44Oo44K344OI44OiDQor44Oo44Kz44Ok44OeLOODnuOCteODkuOCtQ0KK+ODpOODnuOCteOCrSzjg47jg6rjgqoNCivjg6Tjg57jg6Ljg4gs44Kr44OE44OS44KzDQor44Ok44Oe44Kr44OvLOODnuOCteODqOOCtw0KK+ODpOOCpuODgSzjgr/jg4Djg6jjgrcNCivjg6jjgrfjg4/jg6ks44Kr44OE44K4DQor44Oo44Kz44Of44K+LOOCt+OCsuODqw0KK+ODpOODnuODouODiCzjgrfjg6Xjgqbjgr7jgqYNCivjg6Tjg57jg6Ljg4gs44OG44Or44KqDQor44Ok44Oe44Oi44OILOOCqOOCpOOCpOODgeODreOCpg0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg60NCivjg6jjgrfjg4As44OV44Of44OS44OtDQor44Ok44K544KkLOODn+ODjuODqw0KK+ODpOODnuOCsOODgSzjgrfjgrLjg6sNCivjg6Tjg57jg6Ljg4gs44Ki44Kt44OpDQor44Oo44Kz44K/LOOCqOOCpOOCpOODgQ0KK+ODqOOCt+ODgCzjg6bjgr/jgqsNCivjg6jjgrPjg6Tjg54s44OS44OH44KtDQor44Ok44K544KkLOOCq+OCuuODouODiA0KK+ODpOODnuOCteOCrSzjgqvjgrrjg5Ljg60NCivjg6jjgrfjgqrjgqss44OO44OW44KqDQor44Oo44K344OALOOCt+ODpeODs+ODreOCrw0KK+ODpOODnuODgCzjgqvjg4Tjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Oo44Km44K4DQor44Oo44K344OALOOCu+OCpOOCvuOCpg0KK+ODpOODnuOCtuOCrSzjgrvjgqTjgrfjg63jgqYNCivjg6Tjg57jg40s44OK44Kq44K4DQor44Om44K/44OLLOOCueOCueODoA0KK+ODqOODjeOCtuODryzjg6jjgrfjg5Ljg60NCivjg6jjgrfjg44s44OA44Kk44K544KxDQor44Oo44K344OALOOCv+OCseOCqg0KK+ODqOOCt+ODouODqizjg5LjgrXjg4jjg6gNCivjg6jjgrfjg6/jg6ks44K/44Kx44K3DQor44Ok44Oe44OALOODiOOCt+OCrQ0KK+ODqOOCt+ODgCzjg4jjgrfjgqvjgroNCivjg6jjgrfjg4As44Og44OE44KqDQor44Ok44Oe44Oi44OILOODouODquODkuOCsw0KK+OCs+OCuOODnizjgq/jg4vjgqvjg4QNCivjgqrjg44s44K344Ky44KqDQor44Oe44Ko44Kr44OvLOOCs+OCpuOCv+ODreOCpg0KK+OCs+ODs+ODjizjg47jg5bjg6bjgq0NCivjg57jgq3jgrss44Kt44Oo44K3DQor44OO44Og44OpLOODnuOCteOCv+OCqw0KK+ODpOOCueODj+ODqSzjg57jgrXjg5LjgrMNCivjg4rjgqzjgrfjg54s44Ki44OE44Oo44K3DQor44Kt44K/44OP44K3LOODnuOCteOCqg0KK+ODhOODqyzjgq3jg6jjg5/jg4ENCivjg4Tjgq/jg4As44Of44OB44KqDQor44OG44Op44Km44OBLOOCv+OCseOCtw0KK+ODpOODnuODgCzjgrXjg4jjg6sNCivjgrvjg7Pjg5As44K544K544OgDQor44K144Ko44KtLOODjuODquOCqg0KK+OCquOCq+ODgCzjgrfjg6fjgqbjgqTjg4ENCivjg5/jg6Tjgqbjg4Es44OS44K144KqDQor44Kz44Oz44OJLOODiOOCt+OCqg0KK+ODleOCreOCouOCsizjg6TjgrnjgqoNCivjgqTjgrfjgqvjg68s44OB44Oo44K/44KxDQor44Kk44Ov44Oi44OILOODnuOCteOCqg0KK+OCr+ODnCzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgr/jg4rjgqss44OS44Ot44Kr44OEDQor44Ov44OALOODjuODquOCqg0KK+OCpOODr+OCqizjg4Tjg43jg47jg6oNCivjgq/jg57jgqzjgqQs44K/44Kr44OS44OtDQor44K544K644KtLOODkuODreODleODnw0KK+OCv+OCq+ODoOODqSzjg5Ljg63jgrcNCivjg4vjgrfjgqbjg6ks44K744Kk44Kk44OB44Ot44KmDQor44Of44OE44K4LOODnuOCteOCtw0KK+OCv+OCreOCreOCvyzjgqLjgq3jg6kNCivjgqrjgqbjg4Es44Kx44Oz44K4DQor44Kz44OeLOOCouOCreOCqg0KK+ODnuOCueODgCzjgrHjg7PjgrgNCivjgqvjg4jjgqYs44OI44K344Ot44KmDQor44Kk44Kk44K644KrLOOCq+OCuuODkuOCsw0KK+ODnuODq+ODpOODnizjg47jg5bjgqLjgq0NCivjg4jjgrfjgr/jg4ss44OI44Kq44OrDQor44OP44OK44OW44OBLOODnuOCteODkuODrQ0KK+OCpOODnuOCpCzjg57jgrXjgr7jgqYNCivjgqrjgqvjg5Ljg60s44OE44ON44KqDQor44Kt44Og44OpLOODiOOCt+ODkuOCsw0KK+OCv+OCuOODnizjg57jgrXjg4/jg6sNCivjgqvjg7Pjg4As44OE44Op44Om44KtDQor44OJ44KkLOOCquOCteODoA0KK+OCouODqeOCrOOCrSzjg6Tjgrnjg47jg5YNCivjgq3jg6Xjgqbjgr3jgrjjg7Ms44Kx44Oz44K544KxDQor44K/44Kx44Km44OBLOODhOODjeODqA0KK+OCpuODjOODnizjg5Ljg4fjg4rjg6oNCivjg6Tjg57jgrDjg4Es44Oo44K344K/44KrDQor44Oo44Oi44OqLOODouODiOODkuOCtQ0KK+OCt+ODnuOCtuOCrSzjgq/jg4vjg5LjgrMNCivjg4jjgq/jg6Qs44OI44K344KqDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODleOCq+ODpCzjgrfjgrLjgqoNCivjgqjjgrDjg4Es44OP44Or44KqDQor44K144OOLOODkuODh+ODjuODlg0KK+ODiOOCr+ODjizjgqLjgq3jg6kNCivjgqrjgqrjg4jjg6Is44K144OA44OgDQor44K344Op44Kq44Ks44OvLOODkuODreOCtw0KK+ODkuODqeODjizjgr/jgqTjgq0NCivjgqrjg4As44Om44Km44K4DQor44K/44OK44KrLOODquODp+OCpuOCvuOCpg0KK+ODleOCuOOCvyzjgqLjgq3jg6kNCivjgqLjg6njgqQs44Ki44Kt44OS44OHDQor44OV44K444K/LOODpuOCpuOCuA0KK+ODiuOCq+OCrOODryzjg5Ljg63jg6bjgq0NCivjg4rjgqvjg4vjgrcs44Kr44K644K344KyDQor44OP44OpLOOCouOCreODkuODrQ0KK+ODgeODkCzjg4jjgrfjgrMNCivjgqTjgrfjg6/jgr8s44OI44K344OS44K1DQor44Ok44Kw44OBLOOCv+OCseODkuODrQ0KK+ODhuOCuOODnizjgqvjgrrjgqoNCivjgr/jg4Tjgr8s44K344Ky44OrDQor44Kv44K144KrLOOCv+OCseOCtw0KK+ODleODq+OCvyzjgr/jgrHjg4/jg6sNCivjgrTjg4jjgqYs44Oe44K144OO44OWDQor44Kq44OA44Ku44OqLOOCv+ODgOOCtw0KK+OCr+ODnuOCrOOCpCzjgr/jgrHjg6sNCivjg6Djg6njgqvjg58s44Of44K644ObDQor44Of44Og44OpLOODnuOCteOCqg0KK+ODqOOCs+OCpCzjgq/jg4vjg5LjgrMNCivjgqTjg4rjgrIs44OI44Oi44Om44KtDQor44Ki44Oh44Of44OkLOODn+ODhOOCqg0KK+OCpOODjuOCpuOCqCzjgrXjg4DjgqoNCivjg4zjg57jgr8s44K444Oz44Kk44OBDQor44K144Kr44Oi44OILOOCtOODmOOCpA0KK+ODkuODqeODnuODhCzjgrXjg4DjgqoNCivjg4rjg6rjgr8s44Kr44Kq44OrDQor44OE44ON44OfLOOCpOODgeODreOCpg0KK+OCv+OCq+OCt+ODnizjg5XjgrXjg5LjgrMNCivjg5/jgrks44Kr44K644OfDQor44K144Kt44Ok44OeLOODqOOCt+ODkuOCsw0KK+ODleOCuOODr+ODqSzjgr/jg4DjgrcNCivjg4jjg5/jgr8s44Oe44K144OS44OtDQor44OE44OK44Ov44KtLOODn+ODjeOCqg0KK+ODj+OCu+OCrOODryzjgr/jgrHjgrcNCivjg5Xjgq/jgrbjg68s44Om44Km44K+44KmDQor44K044Ko44KxLOOCouOCreODqQ0KK+ODiuOCqyzjg57jgrXjg5Ljg60NCivjgqjjg5Djg4gs44Kx44Kk44KzDQor44Kz44OQ44Ok44K3LOOCt+ODs+OCpOODgeODreOCpg0KK+ODkuODqeODhOOCqyzjgq3jg6jjgrcNCivjgrXjg4jjgqYs44OO44OW44KqDQor44Kk44OO44Km44KoLOOCouOCreODqQ0KK+ODj+OCueODjOODnizjg57jgrXjgqoNCivjg5Xjg6vjg4/jgr8s44Ki44K144KzDQor44Km44Ko44OOLOOCouODhOOCtw0KK+OCv+OCseODiuOCqyzjg57jgrXjg5Ljg60NCivjgq/jg4vjgr/jgrEs44Oo44K344KqDQor44OS44Op44K/LOODpuOCpuOCsw0KK+ODj+OCu+OCrOODryzjgrLjg7MNCivjg5Xjgq/jg4/jg6ks44Ki44OE44K3DQor44OV44OK44Kw44OBLOODiOOCquODqw0KK+OCouODnuODjizjg47jg6rjgrMNCivjgqrjgqrjg44s44Of44K644OO44OqDQor44K544OvLOODjuODquOCsw0KK+ODjuOCrOODnyzjg5/jgqsNCivjgqbjg6Hjg44s44Ok44K544Om44KtDQor44Kk44Kx44OOLOODpuOCpuOCsw0KK+ODiuOCq+OCuOODnizjg4/jg4rjgrMNCivjgqTjgrfjgqQs44Kt44On44Km44KzDQor44K144Kk44OI44KmLOODiOODouOCsw0KK+OCv+ODiuOCqyzjgqvjgrrjg6bjgq0NCivjgr/jg4bjgqTjgrcs44OI44K344Kr44K6DQor44K544K644KtLOODqOOCt+ODkuOCsw0KK+OCreODjuOCt+OCvyzjg5Ljgqvjg6sNCivjgqrjgqrjgrXjg68s44Oo44K344OS44OtDQor44Kk44OHLOOCteOCreOCsw0KK+OCquOCrOODryzjgrfjg5sNCivjgqjjg47jg6Ljg4gs44Ov44Kt44KzDQor44Kq44K244OvLOODn+OCuuODmw0KK+ODj+OCv+OCseODpOODnizjg4jjg6Ljg5Ljg60NCivjgqTjgqTjg4As44Of44OE44Ki44KtDQor44K344OO44K244KtLOOCuOODpeODs+OCpOODgQ0KK+OCquOCq+ODgCzjg6rjgqjjgrMNCivjgr/jgqvjg54s44Oe44K144K3DQor44Ok44KuLOODkuODreODpuOCrQ0KK+OCteOCq+OCpCzjg57jgrXjg6gNCivjgrfjg5/jgros44Kz44Km44K4DQor44Ob44Oq44Kr44OvLOODqOOCpuOCsw0KK+ODiuOCrOOCqizjgrPjgqbjg5jjgqQNCivjg5Ljg6njgqTjgrcs44Oe44OqDQor44K144Ks44OvLOOCv+ODouODhA0KK+ODj+ODqeODgCzjg57jgrXjg58NCivjgr/jgqvjg4/jgrcs44Oq44Ol44Km44Kk44OBDQor44K/44OBLOODnuOCteODqA0KK+ODkuOCqCzjgq3jg5/jgqoNCivjgr/jg4As44Of44OK44KzDQor44Oo44K344Oi44OILOODkuODreOCsw0KK+ODouODgeOCuuOCrSzjg4Hjg5Ljg60NCivjgr/jg4rjgqss44Kz44Km44K4DQor44K/44Kw44OBLOODnuODpuODnw0KK+OCteODiOOCpizjgqTjgq/jgqoNCivjgrXjgqvjgrfjgr8s44Om44Kt44KoDQor44Kr44Ov44K344OeLOODnuODpuODnw0KK+ODm+ODquOCsOODgSzjgqvjgqrjg6oNCivjg5Xjgq/jg54s44K544Of44K/44KrDQor44Kr44Ov44K/44OLLOOCouOCreODqQ0KK+OCuOODk+OCrSzjgqrjgrXjg6ANCivjgrXjgqTjg4jjgqYs44Of44OE44OrDQor44K344Kq44OELOOCpOOCteOCqg0KK+ODiOODkOOCvyzjg47jg6rjgqvjgroNCivjg6Tjg57jg6Ljg4gs44Oe44K144OS44KzDQor44Kq44OV44OBLOODkuODreODn+ODgQ0KK+OCt+ODjuODj+ODqSzjg47jg5bjgqoNCivjg6Tjg57jgqvjg68s44Kr44K644K/44OADQor44K/44Og44OpLOODiOOCt+OCqg0KK+ODj+OCv+OCseODpOODnizjgr/jgqvjgrMNCivjgr/jg4rjgqss44OS44Kr44OrDQor44Kr44OK44K244OvLOODkuODh+OCouOCrQ0KK+OCv+OCq+ODj+OCtyzjgqjjg6rjgrMNCivjg5Xjgrjjg6Djg6ks44Of44OK44KzDQor44OK44Ks44K344OeLOODqOOCt+ODpuOCrQ0KK+OCreODjuOCt+OCvyzjg4jjgq3jgrMNCivjgrPjg7Pjg4ks44Oe44OfDQor44Ki44Oz44OZLOODnuODiuODnw0KK+OCteOCpOODiOOCpizjgqTjgrrjg58NCivjgqLjgrXjg4As44Of44KtDQor44Kt44OO44K344K/LOODleODn+OCqA0KK+OCq+ODieODpCzjgqLjgq3jgrMNCivjgqbjgqjjg4As44OI44Kq44OrDQor44K144Kk44OI44KmLOODouODiw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg5Ljg60NCivjgqTjgrfjgrbjgq0s44K344Oi44OzDQor44Kq44K244OvLOODhuODq+ODkuOCtQ0KK+ODj+ODpOOCtyzjgqrjgrXjg6ANCivjg6Tjgqzjg68s44Of44OB44KqDQor44K/44Kr44OP44K3LOOCv+ODn+OCqg0KK+ODiOODn+ODpOODnizjg6jjgrfjgqLjgq0NCivjgqLjg4Djg4Es44Om44Km44K+44KmDQor44Ki44Kr44Kk44OvLOOCt+ODp+OCpuOCueOCsQ0KK+OCq+OCrOODpCzjg6bjgq3jg47jg5YNCivjgqLjg6njgqQs44K144Kq44OqDQor44Kq44K344Kt44OqLOOCv+OCq+OCtw0KK+ODpOODnuODoOODqSzjgqjjgqTjgrgNCivjgr/jgqvjg6Tjg54s44OI44K344Om44KtDQor44Oo44Kz44Ok44OeLOOCquOCteODoA0KK+ODkOODsyzjg4TjgrDjgqoNCivjgqTjgrrjg58s44Oo44K344OO44OqDQor44Of44K644OOLOOCv+ODgOOCqg0KK+ODluODs+ODpCzjg5/jg47jg6sNCivjg4bjg6njgqrjgqss44K344On44Km44K4DQor44Of44Ok44K344K/LOODn+ODjuODqw0KK+OCouOCteODnizjgrHjgqTjgrMNCivjgrXjgrXjgq0s44OG44OE44KqDQor44OL44K344KqLOODqOODquODiA0KK+ODleODq+ODpCzjg4bjg4TjgqoNCivjgqTjg57jg4As44OS44OH44Om44KtDQor44Kk44K344OP44OpLOOCpOOCr+OCqA0KK+ODj+OCt+ODouODiCzjg5/jgq3jgqoNCivjg57jg6vjg6Tjg54s44OI44Oi44Om44KtDQor44Kr44K4LOOCq+OCuuOCv+OCqw0KK+OCq+ODjeOCsyzjg4/jg4rjgrMNCivjg4rjgqvjg4As44OO44Oq44OS44OIDQor44OB44K244OvLOODiuODmw0KK+OCteODryzjgqLjgrXjgrMNCivjg4jjgqzjg6Es44Of44Ov44KzDQor44Oo44K344OALOOCsuODsw0KK+OCquOCquODjizjg5Ljg63jgrMNCivjg6TjgrMs44Oe44K144OS44KzDQor44Kk44K344Kr44OvLOOCouOCreODjuODqg0KK+OCs+ODiOODgCzjg5Ljg63jgrMNCivjgrXjgqzjg68s44Kr44K644OeDQor44OO44Kw44OBLOOCq+OCuuODnuOCtQ0KK+ODh+ODs+ODnCzjg5Ljg63jg5Xjg58NCivjg4/jg6vjgq0s44Ki44Kt44OS44KzDQor44Kk44ONLOOCt+ODp+OCpuOCqOOCpA0KK+OCquOCquODjizjgq/jg4vjgqoNCivjgqvjg43jg4As44K/44OE44OS44KzDQor44OO44Kw44OBLOOCouOCreODqQ0KK+OCquOCquODkCzjg5Ljg63jg5/jg4QNCivjgqrjgr8s44OI44Kv44Kk44OB44Ot44KmDQor44K344Oi44Oe44KtLOODpOOCueOCqg0KK+ODr+OCv+ODkuOCrSzjg6bjgqbjgrMNCivjg6Tjg57jg6Ljg4gs44Oe44OqDQor44OV44K444Og44OpLOODnuODquOCsw0KK+OCveOCpuODn+ODpCzjgrHjg7PjgrgNCivjgrfjg54s44Kv44OfDQor44K144K144KtLOOCv+OCq+ODpuOCrQ0KK+OCq+OCrOODryzjg6zjgqTjgrMNCivjgr/jgrHjgqbjg4Es44Kv44Of44KzDQor44K144Kk44KtLOODn+ODqOOCsw0KK+OCpOODiOOCpizjg47jg6rjgrMNCivjgq3jg6Djg6ks44Oo44Km44K4DQor44K/44OQ44K/LOOCv+OCq+ODkuODrQ0KK+OCr+ODoSzjg4jjg6jjgqLjgq0NCivjgr/jgqvjg4As44Oe44Oq44KzDQor44K/44Og44OpLOODn+OCqA0KK+OCv+OCq+ODnuODhCzjg57jgq3jgrMNCivjgrfjg63jgrfjgr8s44K344Ol44Km44K144KvDQor44Kr44OI44KmLOODiOODouODpuOCrQ0KK+OCouODr+OCpCzjg4jjgrfjg47jg6oNCivjg5vjgrXjgqss44OO44Oq44KzDQor44K/44OK44KrLOODq+ODnw0KK+ODn+ODkuODqSzjgrfjg6XjgqbjgrXjgq8NCivjgrXjg4jjgqYs44Kx44Kk44KzDQor44Kq44K244OvLOODpuOCreOCqg0KK+OCueOCuuOCrSzjgrHjg7PjgrgNCivjg5/jg6Tjgrbjgq0s44Oq44Ol44Km44K+44KmDQor44Oi44Oq44K/44OLLOODpuOCq+ODqg0KK+OCpOODr+OCsOODrSzjg4Tjg4jjg6ANCivjgqbjgqjjg54s44K344On44Km44KzDQor44OV44Kr44K/LOODgeOCqw0KK+ODkuODreOCuyzjgqLjgq3jgrMNCivjgqrjgqvjg4As44OS44Ot44OfDQor44Kr44OI44KmLOOCouODquOCqw0KK+ODnuOCrSzjgrXjg6bjg6oNCivjg47jg4As44OI44Oi44Kr44K6DQor44Kv44OcLOOCreODp+OCpuOCsw0KK+ODi+OCt+OCreOCquODqizjg4Tjgq7jgqoNCivjg6Tjg44s44K444Ol44Oz44KzDQor44Kr44Ov44Og44Kz44KmLOODiuOCquOCrQ0KK+ODpOOCueODoOODqSzjg5/jg6jjgrMNCivjg4jjg4vjgrcs44OI44Oi44KzDQor44Ok44Oe44Oi44OILOODkuOCq+ODqw0KK+OCt+ODouODgCzjg4DjgqTjgrnjgrENCivjgqrjgqrjgr/jg4ss44Kv44OL44KqDQor44Kq44OO44K144OILOODj+ODsw0KK+OCq+ODiuOCtuODryzjg5Ljg63jgqLjgq0NCivjgqrjgqvjg6Ljg4gs44Of44Ov44KzDQor44K144Kk44OI44KmLOODn+ODiuOCsw0KK+OCq+OCt+ODr+ODkOODqSzjg47jg5bjgrMNCivjgr/jgqvjg4/jgrcs44Oe44K144OO44OWDQor44K144Kk44OI44KmLOODnuODiuODlg0KK+ODnuODhOODgCzjg6jjgrfjgqLjgq0NCivjgr/jg4Hjgrbjgq0s44Ov44Kr44KzDQor44Kz44Oz44OJLOODiOODouOCsw0KK+OCt+ODn+OCuizjg4DjgqTjgrnjgrENCivjg4rjgqzjgqrjgqss44Kr44Kq44OqDQor44OK44Kr44Ks44OvLOOCouODhOOCtw0KK+OCv+OCq+ODiCzjg5Ljg63jg6bjgq0NCivjgq3jg6Djg6ks44K/44Kr44K3DQor44OK44Or44K7LOOCreODqOODnw0KK+OCquOCsOODnizjgqvjgqgNCivjgr/jgqvjg4/jgrcs44Of44OK44KoDQor44Kt44Kv44OBLOOCu+OCpOOCsw0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgqjjg7Pjg4ks44Oe44Oq44KzDQor44K/44Og44OpLOODiOODouODjuODqg0KK+ODpOODnuODouODiCzjgrPjgqbjgrgNCivjgqLjgrXjgqQs44Oo44K344OS44OtDQor44Oi44OqLOOCquOCteODoA0KK+OCv+OCq+OCt+ODrSzjg6HjgrDjg58NCivjgqrjgqss44K144Kk44KrDQor44Kr44OI44KmLOODiOOCt+ODpA0KK+OCpOOCsOODgSzjgrXjg4HjgrMNCivjgr/jg4rjgqss44Kt44On44Km44KzDQor44Oo44K344OALOOCs+OCpuOCuA0KK+OCouOCreODouODiCzjg57jg4njgqsNCivjg4vjgrfjgqQs44K444Ol44Oz44K4DQor44Ov44K344Kq44KrLOOCs+OCpuOCuA0KK+OCpOODjOODnuODqyzjg5Ljg63jgrgNCivjg5vjgrcs44K344K644KrDQor44Oo44ON44Ok44OeLOODnuOCteODjuODlg0KK+OCr+ODreODmSzjg6bjgqbjgqTjg4ENCivjgqTjgrfjgqQs44OS44K144KoDQor44OS44Kw44OBLOOCuOODpeODs+OCpOODgQ0KK+ODiuOCq+ODgCzjgr/jgqvjg4/jg6sNCivjgqrjg47jg4fjg6ks44OK44Kq44KzDQor44OI44OALOODiOOCt+ODpuOCrQ0KK+ODnuOCqOODgCzjg5Ljg63jgrMNCivjg4rjgqzjgqQs44Om44Kt44KzDQor44Kz44OM44K/LOODkuOCteODqOOCtw0KK+OCt+ODkOOCteOCrSzjgqvjg4Tjg4jjgrcNCivjgqbjgqvjgqQs44Ki44Kt44KrDQor44K544K644KtLOODgeODj+ODqw0KK+ODkuODqeOCrSzjg47jg5bjgrMNCivjg4rjgqvjg6Djg6ks44Om44Km44KzDQor44Ok44Oe44OALOODnuOCteODnw0KK+OCq+ODieOCr+ODqSzjg57jgrXjgrcNCivjgr/jgqvjgrXjgq0s44Kz44Km44K4DQor44OK44Kr44K/LOOCreODqOODnw0KK+OCv+ODi+OCq+ODryzjg5vjgrrjgqgNCivjg4vjgrfjg6Djg6ks44Oe44K144OkDQor44Of44OK44OfLOOCouODpOODnw0KK+OCquOCquODjOOCrSzjg5/jg47jg6sNCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K/44Kr44OP44K3LOOCv+OCq+OCqg0KK+ODkuODgCzjgqrjgrXjg6ANCivjgrXjgq/jg54s44K344OeDQor44OL44Ko44OALOOCv+OCq+OCtw0KK+ODqOOCs+OCpCzjg6zjg58NCivjg6jjg43jgq/jg6ks44K/44Kx44KqDQor44OQ44Oz44OQLOODquOCqA0KK+ODpOODnuODgCzjgqLjgq3jg5Ljg4cNCivjgqTjg57jg6Djg6ks44Or44Oq44KzDQor44Kk44Kx44OALOODgeOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg5/jg4rjgrMNCivjgrnjg4njgqYs44Oq44KoDQor44OK44Kr44K944ONLOOCq+OCquODqg0KK+OCquOCquOCteODryzjg4HjgqvjgrMNCivjgrXjg4jjgqYs44K344OB44Ot44KmDQor44Ko44Kk44OJ44OhLOODpuOCrQ0KK+OCpOOCrOODqeOCtyzjg5/jgqsNCivjgr/jg6Qs44K/44Kr44KzDQor44Kq44Kq44OS44OpLOODqOOCt+OCsw0KK+OCteOCq+ODouODiCzjgrXjg4jjgrcNCivjgrnjgq7jg6Ljg4gs44Kz44Km44K4DQor44Kr44OI44KmLOODn+ODiuOCsw0KK+ODqOOCt+OCpCzjgr/jg4Djg5Ljg60NCivjgqTjg6/jg6Qs44Oo44Km44KzDQor44Kt44OO44K344K/LOOCreODp+OCpuOCsw0KK+OCueOCruOCteODryzjgqvjgrrjg6gNCivjg6/jg4As44Of44Oo44KzDQor44Of44Ok44K344K/LOOCqOODn+OCsw0KK+OCpuOCqOODjizjg47jg5bjgrMNCivjgqrjgqrjgr/jgq0s44Om44Of44KzDQor44Kk44K344OQ44K3LOOCreODp+OCpuOCsw0KK+OCpOODr+OCt+OCvyzjg57jgrXjgqoNCivjgqTjgrfjgqvjg68s44OS44OH44OS44KzDQor44Kt44K3LOOCv+ODhuOCqg0KK+ODnuODq+ODpOODnizjg5LjgrXjgqoNCivjg5vjg7Pjg54s44K/44Kr44KqDQor44Kv44K544Oi44OILOOCpOOCteOCqg0KK+OCpOODnuODjizjgq3jg5/jg5Ljg4cNCivjgqrjgqrjg4vjgrcs44K744Kk44K+44KmDQor44Ok44Oe44OALOOCt+ODp+OCpg0KK+ODleOCuOOCquOCqyzjg4jjg6njgqoNCivjg4/jg4rjg4As44Ok44K544Kr44K6DQor44K344OQ44K/LOOCouOCteOCqg0KK+ODn+ODpOOCt+OCvyzjg6bjgq3jgqoNCivjgqvjgrXjg4/jg6ks44Oe44K144KqDQor44Kq44Kq44Ok44KxLOODj+ODq+OCqg0KK+OCpOODnuOCpCzjgq/jg4vjgqoNCivjgrPjgrvjgq0s44Oe44Oq44KzDQor44Kq44Kq44K/LOODjuODnOODqw0KK+ODnuODgeOCpCzjgqvjgrrjg5Ljg60NCivjgq3jgq/jg4Es44K744OE44KqDQor44OS44Kw44OBLOOCq+OCuuOCqA0KK+ODn+ODiuODqOOCtyzjgrjjg6Xjg7PjgrgNCivjgrnjgrrjgq0s44OS44Ot44Kr44K6DQor44OK44Oz44OQLOODiuOCquOCrQ0KK+OCquOCquODi+OCtyzjg4DjgqTjgrXjgq8NCivjg4/jg6Tjgrfjg4As44K/44Kr44OI44K3DQor44K/44OK44KrLOODkuODh+ODkuODrQ0KK+OCq+ODjeOCsyzjgqvjgrrjg47jg6oNCivjg4Tjg4Hjg6Qs44OI44Oi44Om44KtDQor44Kk44Kk44OALOOCqOODhOOCqg0KK+ODleODq+ODpCzjgqvjgrrjgqoNCivjg4rjgqvjg6Djg6ks44Of44OE44KwDQor44OP44Or44OP44OpLOOCv+OCq+OCtw0KK+ODm+ODquOCqCzjg6jjg6rjgrfjgrINCivjgqrjgqrjgr8s44K/44Kx44K3DQor44K544K644KtLOODpOOCueODhOOCsA0KK+OCquODiCzjg57jgrXjg4jjgrcNCivjg4rjgqvjgqzjg68s44Oe44Om44OfDQor44Kr44Ov44K344OeLOODqOOCpuODmOOCpA0KK+ODhuODqeODouODiCzjg6bjgqbjgrjjg63jgqYNCivjgq3jg6Djg6ks44Ki44Kt44OpDQor44Oo44OJ44OK44OvLOODpuOCq+ODqg0KK+OCs+ODgOOCpOODqSzjg5Ljg4fjgqLjgq0NCivjgqvjgq/jg6njgqQs44Oo44Km44KzDQor44Kq44Kw44OqLOODkuODreODqOOCtw0KK+ODj+OCvyzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg6os44Kr44K644KqDQor44Oo44K344Kq44KrLOOCu+OCpOOCuA0KK+OCt+OCsuOCvyzjg5/jg4HjgqLjgq0NCivjgqvjg6/jgrDjg4Es44OI44Oi44OS44OtDQor44Kr44ON44KzLOODnuOCteOCqg0KK+OCouOCteODkizjgr/jg4DjgqLjgq0NCivjg6/jgr/jg4rjg5ks44Kz44Km44K4DQor44Ki44Oq44Ok44OeLOODhOOCsOOCqg0KK+ODhOOCuOOCvyzjgr/jg4TjgqoNCivjg6jjgrfjg4/jgrcs44OS44OH44KqDQor44Of44K344OeLOOCu+OCpOOCtw0KK+OCteODiOOCpizjgqvjg4TjgrgNCivjgqvjg43jg57jg6ss44Ko44OE44OS44OtDQor44Kr44ON44KzLOODpOOCueOCtw0KK+OCqOOCuOODnizjg5Ljg63jgqLjgq0NCivjg5/jg4Tjgq/jg4Es44K444Ol44OzDQor44Oi44OqLOOCreODn+OCqg0KK+OCquODgSzjgrvjgqTjgqTjg4ENCivjg57jgqjjgqvjg68s44Kr44K644KqDQor44K/44OK44KrLOODnuOCteODjuODqg0KK+OCquODquOCrOOCtSzjg57jg4Tjg47jg6oNCivjgrPjgrvjgq0s44Kr44Kq44OrDQor44OS44Op44Ok44OeLOOCv+ODgOOCtw0KK+OCs+ODnOODqizjgqjjg4Tjg6jjgrcNCivjg4rjgqvjgqbjgqgs44K/44OE44KqDQor44K544OI44KmLOODnuOCteOCqg0KK+OCtOODiOOCpizjgq3jg6jjg5LjgrMNCivjg4Tjgqvjg6Ljg4gs44OS44Ot44Of44OBDQor44Ko44OT44OP44OpLOODqOOCt+OCouOCrQ0KK+ODouODquODjizjg5Ljg4fjg47jg6oNCivjgrnjgrrjgq0s44Oe44K144Ki44KtDQor44Oo44K344OALOODnuOCs+ODiA0KK+OCpOODnuOCpCzjg57jgrXjgq0NCivjg5Ljg44s44Og44ON44K/44KrDQor44Oo44K344OALOODn+ODig0KK+OCquODi+OCuuOCqyzjgrnjg5/jgr/jg4ANCivjgr/jgqvjgq4s44Oe44K144OS44KzDQor44Kq44Og44OpLOOCq+ODhOODkuODiA0KK+OCpuODgeODpOODnizjgqjjg4TjgrMNCivjgq/jg63jgqvjg68s44Oo44K344OO44OWDQor44Ok44Oe44K344K/LOOCv+OCreOCqg0KK+ODi+OCt+ODgCzjg5LjgrXjgqgNCivjgqvjgrfjg6/jgq4s44OS44Ot44K3DQor44Kr44ON44KzLOODpuOCreOCsw0KK+OCr+ODnuODgCzjg5/jgq3jgqoNCivjgrPjgrjjg54s44OK44Kq44K644OfDQor44K344Op44KkLOODhuODhOODkuOCsw0KK+ODleODq+OCq+ODryzjg6rjgqgNCivjg6DjgrfjgqYs44K/44OA44Ki44KtDQor44Oo44K344OOLOODiOOCt+OCqg0KK+OCueOCruOCpuODqSzjgrvjgqTjgqTjg4ENCivjg5XjgrjjgrXjg68s44Oe44OqDQor44K144OI44KmLOOCouOCreODkuODrQ0KK+OCqOOCtuOCrSzjgr/jgqvjg6bjgq0NCivjg6Djg6njgqvjg58s44K/44Kr44KqDQor44OL44Ov44Ok44OeLOODnuODhOODouODqg0KK+ODpOOCueODjizjg5/jgqsNCivjg4njgqbjg4As44OI44Oi44OS44KzDQor44Kr44K444KkLOODouODiuODnw0KK+OCv+ODiuOCqyzjg6jjgqbjgrMNCivjg57jg4Tjg4rjg6os44Kk44K144KqDQor44Kq44Kq44OQ44Ok44K3LOOCs+OCpuOCreODgQ0KK+OCv+OCq+ODj+OCtyzjgr/jgq/jg6QNCivjg57jg4Tjg6Djg6ks44Ok44K544Oe44K1DQor44Kz44Oi44OqLOODnuOCreOCsw0KK+ODjuOCvuOCqCzjgqvjgrrjgqgNCivjgqrjg44s44Kt44Oo44OfDQor44Kr44Oz44OOLOOCs+OCuuOCqA0KK+OCteODiOOCpizjgrHjgqTjgrMNCivjg47jg4rjgqss44Ov44Kr44KzDQor44Kr44Ov44OP44OpLOODpuODnw0KK+ODiuOCq+ODoOODqSzjg57jg6bjg58NCivjg6Tjg57jgrfjgr8s44OI44K344Kr44K6DQor44Kz44Km44Kk44OBLOODouODouOCqA0KK+OCpOOCv+ODpCzjg5Ljg4fjgqoNCivjg6Tjg54s44OV44Of44KzDQor44Ok44Oe44Oi44OILOOCveOCpuOCpOODgeODreOCpg0KK+OCr+ODqeOCvyzjg6TjgrnjgrMNCivjgqvjg6/jgros44Kk44K/44OrDQor44Of44Kr44OfLOOCs+OCpuOCpOODgQ0KK+OCv+OCreOCrOODryzjg6jjgrfjgqvjgroNCivjgr/jg4rjgqss44OS44Ot44Ki44KtDQor44Of44Ok44K/LOOCv+OCq+ODhuODqwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Lb3JlYW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0tvcmVhbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFjYTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Lb3JlYW4udHh0CkBAIC0wLDAgKzEsNDk3OTUgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor6rCA7J6s67KUDQor6rCA7Zqo66a8DQor6rCA6ri46riwDQor6rCA7JuQ7ZWZDQor6rCA7J6s7JmEDQor6rCA64+Z7IiYDQor6rCA7KSR7KKFDQor6rCA67OR67SJDQor6rCI67O06riIDQor6rCI7IOB7KKFDQor6rCI7Jq06raMDQor6rCI7IiY7Je0DQor6rCI7KKF7JqpDQor6rCI67OR7JuQDQor6rCI6riw7IStDQor6rCI64us642VDQor6rCQ64+Z7ZuIDQor6rCQ6rCR7Jq0DQor6rCQ6rCV7ZWYDQor6rCQ6rWt7Z2sDQor6rCQ7KCV7ZmUDQor6rCQ7ISx7LKgDQor6rCQ66+87LKgDQor6rCQ7ISx7JuQDQor6rCV6rK96rWsDQor6rCV7JiB7IOdDQor6rCV7LaY7IudDQor6rCV7Jqp642VDQor6rCV6rK966GADQor6rCV67OR6recDQor6rCV7ZWc7IiYDQor6rCV7KCV7J20DQor6rCV6rK966GdDQor6rCV7KKF7IiYDQor6rCV6rec67SJDQor6rCV66eM7ISxDQor6rCV6rK97IiZDQor6rCV7ISd7ZWYDQor6rCV7KCV7ZmUDQor6rCV7KCQ7KGwDQor6rCV6rK97J24DQor6rCV7Iq57ZiEDQor6rCV67OR7ZeMDQor6rCV7J2A7ZmYDQor6rCV6rK97J6QDQor6rCV66qF7YOcDQor6rCV7ISx7KGwDQor6rCV66+47KGwDQor6rCV6rK97J6QDQor6rCV7KKF7Z2sDQor6rCV7Jqp7ISdDQor6rCV6riw7ZWYDQor6rCV6rOh7KeADQor6rCV64yA7IicDQor6rCV64yA7IicDQor6rCV6rK96re8DQor6rCV6rSR7IudDQor6rCV7ZqM7KGwDQor6rCV7ISd7IiYDQor6rCV7KKF7LaYDQor6rCV6rWs7Iq5DQor6rCV7J6s7LKgDQor6rCV7Lap6rWsDQor6rCV6rSR7Je0DQor6rCV6rWs7ZmYDQor6rCV66eM7JiBDQor6rCV7KKF7ZmYDQor6rCV6ri467KUDQor6rCV6reA7KCQDQor6rCV7J6l7JqwDQor6rCV6riw7JqpDQor6rCV7KCV7Zy0DQor6rCV6reA7ZmYDQor6rCV7KCQ7IicDQor6rCVIOuwqQ0KK+qwleqyve2YuA0KK+qwleq3vOyImA0KK+qwleqyveyImA0KK+qwleyaqe2biA0KK+qwleuzkeyInA0KK+qwleq3vO2ZmA0KK+qwle2VtOyEoA0KK+qwle2ZjeyEnQ0KK+qwley2mOq3nA0KK+qwleq4iOuwsA0KK+qwleuqheyXsA0KK+qwleyEuO2DnA0KK+qwleynhOyImQ0KK+qwleq4iOuwsA0KK+qwleyiheyXsA0KK+qwleygleyKuQ0KK+qwleyblOu2hA0KK+qwleq4iOyekA0KK+qwleyyoOyImA0KK+qwleqyve2VmQ0KK+qwleyEne2DnA0KK+qwleq4sOyInA0KK+qwle2YhOyEoA0KK+qwleyDge2VmA0KK+qwleyerOynhA0KK+qwleq4sOyZhA0KK+qwleygleykgA0KK+qwleuzuO2ZmA0KK+qwle2VmO2VhA0KK+qwleq4sOybkA0KK+qwleyCrO2drA0KK+qwleyaqeusuA0KK+qwleybkOynhA0KK+qwleq4sOyehA0KK+qwleyDgeyhsA0KK+qwleuPme2DnA0KK+qwleyerO2XjA0KK+qwleq4sO2YlQ0KK+qwleyInOu0iQ0KK+qwleq0keyYpQ0KK+qwleyduO2drA0KK+qwleq4sO2YlQ0KK+qwleuzkeyaqQ0KK+qwle2DnO2DnA0KK+qwleu0ieybkA0KK+qwleq4uOybkA0KK+qwle2Vme2YhA0KK+qwleyerOyLnQ0KK+qwleqwkeyCvA0KK+qwleuCqOykkQ0KK+qwleygleyehA0KK+qwleyYgeybkA0KK+qwle2DnO2YuA0KK+qwleuCqOykkQ0KK+qwleyaqeynhA0KK+qwleuNleuLrA0KK+qwle2YhO2doA0KK+qwleuFuO2YlQ0KK+qwleygkOyhsA0KK+qwle2ajOu2hA0KK+qwleyYgeyLnQ0KK+qwleuLrOyImA0KK+qwley2mOyYgQ0KK+qwleyWteyyoA0KK+qwleyiheynhA0KK+qwleuMgOyEnQ0KK+qwleq1kO2VmQ0KK+qwleyDgeyjvA0KK+qwleydtOyyoA0KK+qwleuMgOyYgQ0KK+qwleywqOyInA0KK+qwleyYgeq1rQ0KK+qwleyImO2drA0KK+qwleuMgOyaqQ0KK+qwleyIme2WpQ0KK+qwleyDge2drA0KK+qwleycpOyyoA0KK+qwleuMgOyaqQ0KK+qwle2DnO2DnQ0KK+qwleq3nOyIoA0KK+qwle2Zje2VmQ0KK+qwleuMgOydtQ0KK+qwleunjOq4uA0KK+qwleydvOuemA0KK+qwleyDgeyEnQ0KK+qwleuMgOynhA0KK+qwleuCqO2YuA0KK+qwleyDge2YuA0KK+qwleustOydmA0KK+qwleuMgO2YhA0KK+qwleyYgeuegA0KK+qwleyEoOq4iA0KK+qwleywveyXtA0KK+qwleuMgO2YlQ0KK+qwleyerOyImA0KK+qwleyInOq3vA0KK+qwleyerO2ZmA0KK+qwleuMgO2drA0KK+qwle2VtOyDnQ0KK+qwleyImO2YhA0KK+qwleq3nOyImQ0KK+qwleuNleyImA0KK+qwleqyveybkA0KK+qwle2WpeyEnQ0KK+qwleustOuNlQ0KK+qwleuNleyaqQ0KK+qwleyZhO2DnA0KK+qwleyYpeybkA0KK+qwleykkeyehA0KK+qwleuNleycpA0KK+qwle2DnOyatA0KK+qwleyepeuhgA0KK+qwleyYge2VmQ0KK+qwleuPmeykkQ0KK+qwleyaqeyXtA0KK+qwleyImOyatA0KK+qwlSDquIgNCivqsJXrj5nssqANCivqsJXri6zrjZUNCivqsJXqt4Dtg5wNCivqsJXrqoXtlZkNCivqsJXrj5nssqANCivqsJXqtJHslZQNCivqsJXsg4HrqqgNCivqsJXsmKXrp4wNCivqsJXrj5ntmIQNCivqsJXtg5zshK0NCivqsJXsnqzsiKANCivqsJXsi6DsobANCivqsJXrkZDsp4QNCivqsJXsg4Hqta0NCivqsJXsnKHsl7QNCivqsJXsmIHsooUNCivqsJXroZ3spJENCivqsJXshLHrs7UNCivqsJXrr7zshJ0NCivqsJXshKDsnpANCivqsJXrp4zsiJgNCivqsJXqtIDtmIQNCivqsJXsnqztmY0NCivqsJXrs5HshKANCivqsJXrp4ztnaUNCivqsJXsoJDquLANCivqsJXqt4DsgrANCivqsJXsspzsnKQNCivqsJXrp5DrtoQNCivqsJXsnqzqtawNCivqsJXsiJzsobANCivqsJXsoJXsuaANCivqsJXrp5DsnoQNCivqsJXsnqzsiJgNCivqsJXsmIHsmqkNCivqsJXrs5HssKwNCivqsJXrqoXqtIANCivqsJXrqoXsobANCivqsJXsnqzsnbQNCivqsJXshJ3tmLgNCivqsJXrqoXslZQNCivqsJXsiJjqs6QNCivqsJXqtozqt5wNCivqsJXshLHqtawNCivqsJXrrLTspJENCivqsJXtg53ssqANCivqsJXsooXtmZgNCivqsJXrjIDshJ0NCivqsJXrrLjrj4wNCivqsJXssqDtmLgNCivqsJXsg4Hsp4QNCivqsJXtmZjrnoANCivqsJXrrLjsiKANCivqsJXsmqntmLgNCivqsJXtmJXtmIQNCivqsJXtmITshK0NCivqsJXrr7jsiJkNCivqsJXsirntmZQNCivqsJXtg5zsi50NCivqsJXshLHsnpANCivqsJXrs5Hqt5wNCivqsJXshLHrs7UNCivqsJXsnbzsooUNCivqsJXrj5ntnawNCivqsJXrs5HshJ0NCivqsJXssL3rr7gNCivqsJXtlYTquLANCivqsJXqs4TtmIQNCivqsJXrs5Hsl7QNCivqsJXrs7XquLgNCivqsJXqtJHsiJgNCivqsJXsmIHshJ0NCivqsJXrs5HtmZgNCivqsJXsl7Dro6ENCivqsJXssqDsiKANCivqsJXsp4TsnbQNCivqsJXrs7XstpgNCivqsJXrj5nssqANCivqsJXsoJXsobANCivqsJXsg4HrsLENCivqsJXrtInsmrANCivqsJXsm5DsiJgNCivqsJXrqoXtmLgNCivqsJXqtoztmIQNCivqsJXrtoTrj4QNCivqsJXrj4TshJ0NCivqsJXtlbTtg5wNCivqsJXsnITshK0NCivqsJXsgqztmIQNCivqsJXtm4TsiJgNCivqsJXsnKTsg4ENCivqsJXtnazqta0NCivqsJXsgrzroZ0NCivqsJXrqoXshJ0NCivqsJXtmZTsnoQNCivqsJXssqDtmZQNCivqsJXsgrzrrLgNCivqsJXqsJXsiJgNCivqsJXrs7XtmLgNCivqsJXshKDshK0NCivqsJXsgrzrrLgNCivqsJXtlZztmIQNCivqsJXsmqnqsJENCivqsJXtg5zrj5kNCivqsJXsgrzsobANCivqsJXtg5zsoJUNCivqsJXssL3snbwNCivqsJXtlbTsm5ANCivqsJXsg4HrsLENCivqsJXrs7XsmqkNCivqsJXquLDsl7QNCivqsJXssL3qt5wNCivqsJXsg4Hrs7UNCivqsJXqsr3soJwNCivqsJXsiJzsm5ANCivqsJXsiJzsl7QNCivqsJXsg4HrtIkNCivqsJXsmIHsnZgNCivqsJXsooXsnKQNCivqsJXtmqjsm5ANCivqsJXsg4HsnKQNCivqsJXsiJjsmIENCivqsJXri6zssqANCivqsJXsmIHsiJkNCivqsJXsg4HtnawNCivqsJXrs5HrsLANCivqsJXsiJzqt5wNCivqsJXqt4Dsg4ENCivqsJXshJ3rjIANCivqsJXsnbjsmrQNCivqsJXsm5DsiJgNCivqsJXsoJXsi50NCivqsJXshJ3so7wNCivqsJXsmqnrs7UNCivqsJXtnazquLgNCivqsJXsooXrgqgNCivqsJXshJ3so7wNCivqsJXtg5zrtIkNCivqsJXshLHtlZwNCivqsJXsg4HshLENCivqsJXshKDrj5kNCivqsJXrqoXrqoUNCivqsJXquLDqsJENCivqsJXtnazsiJgNCivqsJXshKDsobANCivqsJXstpjstpwNCivqsJXsnbjshJ0NCivqsJXsoJXsmKUNCivqsJXshLHrnb0NCivqsJXtmITroZ0NCivqsJXtlZnsp4ENCivqsJXsm5TshK0NCivqsJXshLHrsLANCivqsJXsm5Tsp4QNCivqsJXsg4HtmZgNCivqsJXsp4TtmZgNCivqsJXshLHsnbwNCivqsJXsoJXsnpANCivqsJXri6zso7wNCivqsJXsnqzqtZANCivqsJXshLHtlbQNCivqsJXquLDsiJkNCivqsJXsmqnrqoUNCivqsJXrqoXtl4wNCivqsJXshLjqt5wNCivqsJXquLDquLANCivqsJXsoJXquLANCivqsJXrkZDsnpANCivqsJXshozspIANCivqsJXsnqztmLgNCivqsJXsoJXquLANCivqsJXqtJHquLANCivqsJXsiJjquLANCivqsJXqs4TtmIQNCivqsJXsp4TtmJUNCivqsJXsnbjtmLgNCivqsJXsiJjsp4QNCivqsJXsiJztmZQNCivqsJXsooXsi50NCivqsJXsiKDrr7wNCivqsJXsiJjtmJUNCivqsJXsnqzrsLANCivqsJXsmKXsnYANCivqsJXshLHquLANCivqsJXsiJntnawNCivqsJXrgpnsmrANCivqsJXtlYTrtoQNCivqsJXsooXsi50NCivqsJXsiJzqsr0NCivqsJXsmIHsm5ANCivqsJXrs7Xsl7QNCivqsJXquIjslYUNCivqsJXsiJzsmKUNCivqsJXstpjtmZgNCivqsJXrjIDqsr0NCivqsJXsg4HrgpwNCivqsJXsiJzsnbQNCivqsJXsooXsnbwNCivqsJXqsr3soJUNCivqsJXrs5Htl4wNCivqsJXsi6Dqt6ANCivqsJXtl4zsiJgNCivqsJXrp5DsobANCivqsJXsnYDsiJkNCivqsJXsi6DsmIENCivqsJXtmLjrp4wNCivqsJXsmIHtg5wNCivqsJXsmqnroZ0NCivqsJXsi6DsmIENCivqsJXtmLjsmqkNCivqsJXsiJjsi50NCivqsJXstpjsiJgNCivqsJXsi6DsnoQNCivqsJXsnZjssKwNCivqsJXtjJDshKANCivqsJXsirnrrLgNCivqsJXsi6DssKwNCivqsJXrs5Hsm4UNCivqsJXrs7XrnpgNCivqsJXrp4zsl7QNCivqsJXsi6Dtg50NCivqsJXrqoXqtawNCivqsJXtmITqsJENCivqsJXsnbjshJ0NCivqsJXsjI3rk50NCivqsJXsspzsmqkNCivqsJXsnqzqta0NCivqsJXquLDsobANCivqsJXslrjsiKANCivqsJXsnZjsiJgNCivqsJXqsr3tmLgNCivqsJXqt7zsm5ANCivqsJXsl7DqtawNCivqsJXtnazshJ0NCivqsJXsmIHspIANCivqsJXrs5Hsp4QNCivqsJXsl7DsnbQNCivqsJXssL3sl7ANCivqsJXsg4HtnawNCivqsJXsg4Hsl7QNCivqsJXsmIHqt5wNCivqsJXsnqzrtIkNCivqsJXtmLjqtIANCivqsJXsl7Dsp4QNCivqsJXsmIHsiJgNCivqsJXtjJDtmLgNCivqsJXsmIHtmIQNCivqsJXquIjtnLQNCivqsJXsmIHsiJgNCivqsJXqsr3siJgNCivqsJXsnqzsi50NCivqsJXsspzsnbQNCivqsJXsmIHsiJgNCivqsJXqtJHtg5wNCivqsJXrqbTsoJwNCivqsJXsnKTshJ0NCivqsJXsmIHsiJgNCivqsJXtmZjroYANCivqsJXqs4TqtJENCivqsJXrp5Dqt5wNCivqsJXsmIHsiJgNCivqsJXrs5Hrj4QNCivqsJXsmqnqsqwNCivqsJXsgrzsi50NCivqsJXsmIHsm5ANCivqsJXtlbTtmZgNCivqsJXshKDsiJgNCivqsJXrp5Dsp4QNCivqsJXsmKXqtawNCivqsJXtlZnsm5ANCivqsJXrp4zshKANCivqsJXsuaDsi50NCivqsJXsmKXqtawNCivqsJXrs5HtnawNCivqsJXsiJjqtJENCivqsJXtmansnbQNCivqsJXsmKXquIgNCivqsJXtg5zsooUNCivqsJXsoJXquLANCivqsJXsg4HsgrwNCivqsJXsmbjsiJwNCivqsJXsnbjssKwNCivqsJXrs5Htg50NCivqsJXsl7Dsi50NCivqsJXsmqnrjZUNCivqsJXrs5HrtIkNCivqsJXshJ3snbwNCivqsJXsg4Hsl7ANCivqsJXsmqnsi50NCivqsJXqsr3smqkNCivqsJXsmIHtmZQNCivqsJXsnYTsoJUNCivqsJXsmqntjJANCivqsJXrtoDtnawNCivqsJXshLHsnpANCivqsJXsg4HsiJwNCivqsJXsmqntnawNCivqsJXsnqzsnbQNCivqsJXslaDtg5wNCivqsJXshJ3rr7gNCivqsJXsm5DsoJUNCivqsJXshJ3smrQNCivqsJXsiJjquLANCivqsJXrjIDrsLANCivqsJXsm5Dsp4QNCivqsJXquLDtmLgNCivqsJXrj5nsnpANCivqsJXtmY3sh4QNCivqsJXsm5Dtg5wNCivqsJXri7Tsi50NCivqsJXsooXtg5wNCivqsJXssL3si50NCivqsJXsnKDrs7UNCivqsJXqsr3rjZUNCivqsJXsoJXrqoUNCivqsJXsiJzsiJgNCivqsJXsnKHrrLgNCivqsJXshJ3rjIANCivqsJXsmIHsiJwNCivqsJXsnqztlZwNCivqsJXsnKTrk50NCivqsJXshLHtlZgNCivqsJXsmqnquIgNCivqsJXqt5zsobANCivqsJXsnKTsnpANCivqsJXsmrHslZQNCivqsJXrspTqta0NCivqsJXsnbTsobANCivqsJXsnbjsiJgNCivqsJXsmqnsm5ANCivqsJXsnqzsmqkNCivqsJXsooXsnbgNCivqsJXsnbjsl7QNCivqsJXrs5Hqt5wNCivqsJXsnYDtg5wNCivqsJXrsLDslaANCivqsJXsnbzrtoQNCivqsJXsnbjrhYQNCivqsJXrtoTsnKQNCivqsJXsoJXtnaANCivqsJXsnbztmLgNCivqsJXsnqXsi50NCivqsJXsnqzsiJgNCivqsJXquLDsl7QNCivqsJXsnqXsiJgNCivqsJXqsr3shLENCivqsJXrj5nsl7QNCivqsJXshLHquLANCivqsJXsnqzsmIENCivqsJXsiJjsl7ANCivqsJXtmY3so7wNCivqsJXstpjrs7gNCivqsJXsoITssqANCivqsJXtg5ztmLgNCivqsJXshLHsiJwNCivqsJXsmIHquLgNCivqsJXsoJDrjZUNCivqsJXtl4zsm4UNCivqsJXrr7zssKwNCivqsJXrp4zsmIENCivqsJXsoJDrs7UNCivqsJXqsJHsmqkNCivqsJXtlbTso7wNCivqsJXrs5HtmIQNCivqsJXsoJDsiJkNCivqsJXsg4HsiJgNCivqsJXsnqzstpwNCivqsJXtmY3rjIANCivqsJXsoJXquLgNCivqsJXrkZDsiJgNCivqsJXrrLjqta0NCivqsJXqsr3shJ0NCivqsJXsoJXrqqgNCivqsJXsooXqtIANCivqsJXsg4Hrs7UNCivqsJXtlbTrj4QNCivqsJXsoJXrs7UNCivqsJXrrLjtmLgNCivqsJXshLHtlYQNCivqsJXquLDqta0NCivqsJXsoJXshJ0NCivqsJXquLDssqANCivqsJXsnqzroZ0NCivqsJXsoJDtmIQNCivqsJXsoJXsiJkNCivqsJXqsr3smrANCivqsJXsnqzsnpANCivqsJXsiKDsmrANCivqsJXsoJXsiJkNCivqsJXsiJjtnawNCivqsJXshLHsi50NCivqsJXsoJXsmrQNCivqsJXsoJXsiJkNCivqsJXrs7XshJ0NCivqsJXtjJDsg50NCivqsJXshJ3rsLANCivqsJXsoJXslaANCivqsJXsmrDrp4wNCivqsJXqtazqt5wNCivqsJXsm5Dsl7QNCivqsJXsoJXsl7QNCivqsJXsnqztmLgNCivqsJXsmIHqs6QNCivqsJXsooXsnKANCivqsJXsooXrjZUNCivqsJXsmYTtmIQNCivqsJXsg4HtmLgNCivqsJXqtazsi50NCivqsJXsooXrp4wNCivqsJXrqoXshLgNCivqsJXshLHrspQNCivqsJXsmIHrsLANCivqsJXsooXsl7QNCivqsJXrjIDrp4wNCivqsJXsnqztmLgNCivqsJXshKDtmIQNCivqsJXsooXssKgNCivqsJXrjIDtg5wNCivqsJXtmLjsoJUNCivqsJXtg5zshKANCivqsJXsooXtlYQNCivqsJXtmITrjIANCivqsJXtg5zsnbQNCivqsJXsp4DspIANCivqsJXso7zshJ0NCivqsJXrjIDsobANCivqsJXqtZDqt6ANCivqsJXqsr3tmZQNCivqsJXso7zsm5ANCivqsJXsiJztg5wNCivqsJXqsJXsmYQNCivqsJXsmIHsl7QNCivqsJXso7ztm4gNCivqsJXquLDrjZUNCivqsJXquIjquLANCivqsJXsmIHsiJwNCivqsJXspJHrtoANCivqsJXsiJzstpwNCivqsJXtlZzsiJgNCivqsJXrj5nqtZANCivqsJXsp4TsmIENCivqsJXtg5zsi50NCivqsJXsnKDtmZgNCivqsJXsmIHrjIANCivqsJXsp4TtmLgNCivqsJXrjIDqtawNCivqsJXrp5DqtJENCivqsJXsg4HsiJgNCivqsJXsp4TtmLgNCivqsJXsmKXrjIANCivqsJXqt7zsm5ANCivqsJXrp4zstpwNCivqsJXssL3roZ0NCivqsJXsoJXshK0NCivqsJXslpHqt7wNCivqsJXsnbjsoJUNCivqsJXssL3shJ0NCivqsJXqsJzsi50NCivqsJXtg5ztmZgNCivqsJXsooXsiJgNCivqsJXssL3shK0NCivqsJXsoJXrj5kNCivqsJXsooXqt5wNCivqsJXqsJDtmLgNCivqsJXssL3siJgNCivqsJXrrLTsl7ANCivqsJXtlbTtmZgNCivqsJXsmqnsmrQNCivqsJXssL3sm5ANCivqsJXrqoXtlZkNCivqsJXsmIHqt5wNCivqsJXrrLTri7QNCivqsJXsspzshJ0NCivqsJXrj5nrrLgNCivqsJXsnKTsobANCivqsJXspIDssqANCivqsJXstqnqt5wNCivqsJXsmqnqtIANCivqsJXsirnsm5ANCivqsJXsm5DsobANCivqsJXsvozsiJgNCivqsJXsnqzsoJANCivqsJXsg4HssqANCivqsJXshJ3qs4QNCivqsJXtg5zrrLgNCivqsJXstpjtmZgNCivqsJXqt5zsmrQNCivqsJXsg4HsobANCivqsJXtg5zsg4ENCivqsJXsooXquLgNCivqsJXshLHsnbQNCivqsJXsmIHrsLANCivqsJXtg5zshJ0NCivqsJXtko3siKANCivqsJXsl7Drp4wNCivqsJXsmqnshLgNCivqsJXtg5zshLENCivqsJXsoJXtlZwNCivqsJXsooXtg5wNCivqsJXsoJXqsr0NCivqsJXtg5zsiJgNCivqsJXrj5nrqqgNCivqsJXri6zsmqkNCivqsJXtg5zrnoANCivqsJXtg5zsiJwNCivqsJXqtJHrqoUNCivqsJXsmIHrj4wNCivqsJXsiJzshJ0NCivqsJXtg5zsirkNCivqsJXshJ3snqUNCivqsJXtg5zqt5wNCivqsJXsmIHtnawNCivqsJXtg5zsnbwNCivqsJXsoJXsmIENCivqsJXsmIHtnawNCivqsJXqt5zsiJwNCivqsJXtg5zsnpANCivqsJXsoJDsm5ANCivqsJXrrLjtl4wNCivqsJXtlbTso7wNCivqsJXtg5zsp4QNCivqsJXssYTsobANCivqsJXsiJjrjZUNCivqsJXrp4zrj4QNCivqsJXtg5zsp4QNCivqsJXsmqnrjIANCivqsJXquLjqt7wNCivqsJXsp4DsiJkNCivqsJXtg5ztmJUNCivqsJXsmIHtnJgNCivqsJXqsr3snqwNCivqsJXtnaXshK0NCivqsJXtg5ztmLgNCivqsJXsiJztmZgNCivqsJXqsr3quLANCivqsJXsoJXtmLgNCivqsJXtjJTqtowNCivqsJXqt5zsnpANCivqsJXtjJDtg5wNCivqsJXsnKTsobANCivqsJXtlYTsnoQNCivqsJXqt7zsg4ENCivqsJXsmrDshKANCivqsJXshLHtmZgNCivqsJXtlZnqtawNCivqsJXsoJXsi50NCivqsJXslaDsg4ENCivqsJXqtJHquLANCivqsJXtlZnqt5wNCivqsJXssKztmZgNCivqsJXrtoDshK0NCivqsJXsnbjso7wNCivqsJXtl4zspJENCivqsJXtlbTsm5ANCivqsJXrgpnrp4wNCivqsJXtg5zsiJgNCivqsJXtmITshJ0NCivqsJXsg4HrhbgNCivqsJXsnqzsnpANCivqsJXqsJHsiJgNCivqsJXtmITsmYQNCivqsJXsiJnstpwNCivqsJXquIjrpqwNCivqsJXslpHsiJkNCivqsJXtmJzsm5ANCivqsJXsmIHsooUNCivqsJXsjI3snbwNCivqsJXquLDsiJkNCivqsJXtmLjqsr0NCivqsJXrj5ntmZgNCivqsJXqsr3soJANCivqsJXshLHsooUNCivqsJXtmY3qt7wNCivqsJXstpjtg50NCivqsJXsmIHsm5ANCivqsJXqsr3qta0NCivqsJXtmY3rsLANCivqsJXtl4zsi50NCivqsJXsm5DqtZANCivqsJXsmqnsiJkNCivqsJXtmY3shK0NCivqsJXsooXsnoQNCivqsJXssL3tmLgNCivqsJXqs6Tsm5ANCivqsJXtmqjqt7wNCivqsJXqt4DrspQNCivqsJXsiJzssKwNCivqsJXrp4zsmKUNCivqsJXtnJjqt5wNCivqsJXsnqztmLgNCivqsJXsiJjsobANCivqsJXtg5zqt6ANCivqsJXtnJjqt5wNCivqsJXrs5HsooUNCivqsJXtg5zsg4ENCivqsJXtnazsiJgNCivqsJXtnaXssKwNCivqsJXrr7jquLANCivqsJXsooXsi6ANCivqsJXquLDtg5wNCivqsJXtnazqsJENCivqsJXsnqztmLgNCivqsJXqt4Dsi5wNCivqsJXshJ3si50NCivqsJXtnazqt5wNCivqsJXtlbTshLENCivqsJXshLHqt7wNCivqsJXsmqnrj4QNCivqsJXtnazshJ0NCivqsJXrqoXqt7wNCivqsJXrtIntlZwNCivqsJXsoJXtm4gNCivqsJXtnazsmIENCivqsJXsvozsmrANCivqsJXsiJjtmIQNCivqsJXshLHsl7ANCivqsJXtnazsoJANCivqsJXsnZjsi50NCivqsJXqsr3siJgNCivqsJXssL3sl7QNCivqsr3qtoztmLgNCivqsr3smIHsiJgNCivqsr3qsr3qtZANCivqsr3smqnsi50NCivqsr3rkZDtmLgNCivqsr3sg4Htg5wNCivqsr3smKXsmrENCivqsr3shJ3rgqgNCivqsr3shLjtmLgNCivqsr3smqnsnpANCivqsr3rp7nsnpANCivqsr3shJ3sl7QNCivqs6DqtJHsiJgNCivqs6DtmY3quLgNCivqs6DquLDsnpANCivqs6DssL3shJ0NCivqs6DqtJHsiJkNCivqs6DsnqzspIANCivqs6DsmIHso7wNCivqs6Dsp4TsiJgNCivqs6DqtJHtnawNCivqs6Dsg4HqtowNCivqs6DsooXsmKUNCivqs6DtmY3siJgNCivqs6Dqt4DsnoQNCivqs6DsmrDqt5wNCivqs6Dqsr3sm5ANCivqs6DsnqzsnbUNCivqs6DrjIDsooUNCivqs6DrqoXsmrANCivqs6Drp4nshKQNCivqs6Dsl7DsnbgNCivqs6DrjZXsmqkNCivqs6Dqsr3si6wNCivqs6Dso7ztmLgNCivqs6Ag7IudDQor6rOg642V7J20DQor6rOg67O17ZiEDQor6rOg7YOA6rCRDQor6rOg7J6s7JqwDQor6rOg64+Z7IicDQor6rOgIOyVlA0KK+qzoO2YhO2YhA0KK+qzoO2VnOyImA0KK+qzoOuPme2YhA0KK+qzoOuzte2DnA0KK+qzoOynhOqzpA0KK+qzoOunjO2YuA0KK+qzoOuemOyehA0KK+qzoOqwkeyhsA0KK+qzoOustOycpA0KK+qzoOyEseyInA0KK+qzoOunkOuCqA0KK+qzoOuNle2ZlA0KK+qzoOuRkOyEsQ0KK+qzoO2DnO2YuA0KK+qzoOuqheyLnQ0KK+qzoO2Vme2aqA0KK+qzoOuPmeyImQ0KK+qzoOqzpOuTnQ0KK+qzoOuvvO2drA0KK+qzoOyZuO2YuA0KK+qzoOq0keydtA0KK+qzoOyDgeyImQ0KK+qzoOuzkeyasQ0KK+qzoOyerOyLnQ0KK+qzoOuPme2VtA0KK+qzoOyghO2YuA0KK+qzoOuzke2drA0KK+qzoOunjOydvA0KK+qzoOyaqe2ZlA0KK+qzoOuPme2DnA0KK+qzoOyEneq2jA0KK+qzoOyInOyVoA0KK+qzoOygkOyEnQ0KK+qzoOyerOyhsA0KK+qzoOyEneybkA0KK+qzoO2ZjeuegA0KK+qzoOyInO2YuA0KK+qzoO2DnOu0iQ0KK+qzoOyEseybhQ0KK+qzoOq2jOyInA0KK+qzoOyatOyjvA0KK+qzoOyYgeyImQ0KK+qzoOyImOq2jA0KK+qzoOyaqeq4sA0KK+qzoOyyoOyhsA0KK+qzoOuzteyImA0KK+qzoOyImOu5iA0KK+qzoOqzhOujoQ0KK+qzoOuzkeyatA0KK+qzoOuNleyImA0KK+qzoOyInOunuQ0KK+qzoOyiheyjvA0KK+qzoO2MkOyInA0KK+qzoOyerOuztQ0KK+qzoOyInO2YuA0KK+qzoOyijOyLnQ0KK+qzoOyEseq1kA0KK+qzoOq3vOyyoA0KK+qzoOyLnOuqqQ0KK+qzoOygle2YuA0KK+qzoOyEne2drA0KK+qzoOyEneyasQ0KK+qzoOyYgeq4uA0KK+qzoOqwkeyImQ0KK+qzoOyiheyekA0KK+qzoO2VtO2VtA0KK+qzoOyYgeybkA0KK+qzoOyerO2drA0KK+qzoOyYgeuhnQ0KK+qzoOyiheyaqQ0KK+qzoOycoOynhA0KK+qzoOyYgeyImA0KK+qzoOyInO2DnQ0KK+qzoOydke2VnA0KK+qzoOycpOuylA0KK+qzoO2DnOq4uA0KK+qzoOustOuNlQ0KK+qzoOywveyEnQ0KK+qzoOydgOyEoA0KK+qzoOyEseybkA0KK+qzoOyEne2YuA0KK+qzoO2ZjeyImQ0KK+qzoOydmOunjA0KK+qzoOyaqeybkA0KK+qzoOynhOykgA0KK+qzoOyehOyInA0KK+qzoOydmOynhA0KK+qzoOyCvO2biA0KK+qzoOuPmeyEoA0KK+qzoOybkO2drA0KK+qzoOyduOyEnQ0KK+qzoO2DnOywrA0KK+qzoOyiheyhsA0KK+qzoOuvvOuPmQ0KK+qzoOydvO2ZmA0KK+qzoOq4sOydtQ0KK+qzoOyGjOyErQ0KK+qzoO2YleyImA0KK+qzoOyepeq1rQ0KK+qzoOqwke2YnA0KK+qzoOygkOuCqA0KK+qzoOyynOq3oA0KK+qzoOyerOyZhA0KK+qzoOyiheyInA0KK+qzoOqyveqyvQ0KK+qzoOyXsOq3vA0KK+qzoOygleyEnQ0KK+qzoOyehO2DnQ0KK+qzoO2DnOyngA0KK+qzoOy2mO2drA0KK+qzoOygleyEnQ0KK+qzoOu0ieq4sA0KK+qzoOyKueq4sA0KK+qzoO2YhO2YlQ0KK+qzoOykkeyEnQ0KK+qzoOyaqe2drA0KK+qzoOq4sO2YuA0KK+qzoOyYgeyImA0KK+qzoOywveyEnQ0KK+qzoOyDgeyasA0KK+qzoOynhOyInA0KK+qzoOuPhOyImA0KK+qzoOyyoOq3nA0KK+qzoOycpOyhsA0KK+qzoOyDgeyyoA0KK+qzoOyiheyImA0KK+qzoOy2qeq1rQ0KK+qzoO2MkO2ZmA0KK+qzoOyYge2DnA0KK+qzoOyYpeqxtA0KK+qzoO2DnOqyvQ0KK+qzoOyInOugqA0KK+qzoOyInOunjA0KK+qzoOyYgeq3vA0KK+qzoO2VmeusuA0KK+qzoOqyveyInA0KK+qzoOyDgeyImA0KK+qzoOu2gOuztA0KK+qzoO2YhOyCsA0KK+qzoOu0ieydvA0KK+qzoOqyveq4uA0KK+qzoOyInO2drA0KK+qzoO2aqOyYgQ0KK+qzoOuPmeq4sA0KK+qzoOuvuOy2nA0KK+qzoO2YhOydgA0KK+qzoO2aqOyYgQ0KK+qzoOyEseunjA0KK+qzoOyehOuylA0KK+qzoO2DnO2DnA0KK+qzoO2aqOyYgQ0KK+qzoOyGjOyaqQ0KK+qzoOyasOyImA0KK+qzoO2VmeyImQ0KK+qzoO2drOyEnQ0KK+qzoOyaqeu2hA0KK+qzoOyerOyEnQ0KK+qzoOyerOyasA0KK+qzteq0keyaqQ0KK+qzteq4iOy2qQ0KK+qzteygleuguQ0KK+qzteyEuOydtQ0KK+qzteunjOyImA0KK+qzteydgOyEnA0KK+qzteq3vOyImA0KK+qzteyehOyImA0KK+qzteuqheyImA0KK+qzteu2gOyInA0KK+qzte2VtOyEnQ0KK+qzteyiheyVlA0KK+qzteuzkeuemA0KK+qzteuzkeq3vA0KK+qzte2ZlOuPhA0KK+qzteywveq4sA0KK+qzteyEneu2lQ0KK+qzteyerOu2hA0KK+qzteyerOybkA0KK+qzteyihe2VmQ0KK+qzteyEneydtA0KK+qzteywveyImA0KK+qzteq4sOykkQ0KK+qzte2Zje2cmA0KK+qzteyEneyyoA0KK+qzteyduO2YuA0KK+qztey2mOyYgQ0KK+qzteyEneuNlQ0KK+qzteyImOuCqA0KK+qzteyMjeyInA0KK+qzteyerOuPhA0KK+qzteyerOyEnQ0KK+qzteyInOu2hA0KK+qzteyLoO2YhA0KK+qzteygleyEsQ0KK+qzteycpOunjA0KK+qzteyLnOuPmQ0KK+qzteynhOyaqQ0KK+qzteyDge2YhA0KK+qzte2MkOyYpQ0KK+qzteyWteyImA0KK+qzteyerOyatA0KK+qzteyImOyImA0KK+qzte2YhO2drA0KK+qzteyYgeuMgA0KK+qzteyiheyasA0KK+qzteyiheyImQ0KK+qzteyYgeyEnQ0KK+qzteyYgeyEoA0KK+qzteyEseq3vA0KK+qzteydteyIoA0KK+qzteyynOuPhA0KK+qzteyYgeyekA0KK+qzteqyveyEsQ0KK+qzteykgOyImA0KK+qzteyEse2YuA0KK+qzteyehOyEnQ0KK+qzteyDgeyXsA0KK+qzteuLrOynhA0KK+qzteuzkeyLnQ0KK+qzteyerOqwkQ0KK+qzteyerOyInA0KK+qzteydvO2YhA0KK+qzteyInO2drA0KK+qzteyerOyImQ0KK+qzteykgOyaqQ0KK+qzte2drOuegA0KK+qzteyWuOyLnQ0KK+qzteyerOydtQ0KK+qzteyyoO2DnQ0KK+qzteyImO2YuA0KK+qzte2DnOyXtA0KK+qzteyerOydtQ0KK+qzteq0keyIoA0KK+qzte2DnO2ZmA0KK+qzteuzke2YhA0KK+qzteyiheyXtA0KK+qzteuzte2YhA0KK+qzte2MkOuNlQ0KK+qzteuRkOq4iA0KK+qzteyihey2mA0KK+qzte2Sje2ZlA0KK+qzteqzhOyYgQ0KK+qztey2mOyImA0KK+qzteyihey2mA0KK+qzteuNleyXtA0KK+qzteyiheq4sA0KK+qztey5oO2VmQ0KK+qzvSDtj6wNCivqs73rs5HsmrANCivqs73quLDsi50NCivqs73tg5zsiJgNCivqs73qsJHsmIENCivqs73rp4ztmIQNCivqs73rs5HshLENCivqs73soJXrj5kNCivqs73qsr3qt7wNCivqs73qtJHtmZQNCivqs73ssL3quLANCivqs73rr7jsoJUNCivqs73qsr3ro6ENCivqs73smIHsl7ANCivqs73sg4HsiJgNCivqs73ssq3smKUNCivqs73qsr3siJwNCivqs73rj5nshJ0NCivqs73tlbTrrLgNCivqs73qtJHqt5wNCivqs73qsr3smqkNCivqs73tg5zsl7ANCivqs73tjJTshKANCivqs73sp4TsmKUNCivqs73qsr3tmLgNCivqs73tlZzsiJgNCivqs73sooXshK0NCivqs73suaDsnpANCivqs73qtJHshK0NCivqs73rjZXtnawNCivqs73tmqjsobANCivqs73snYTsiKANCivqs73qtJHshK0NCivqs73tg5zsiJwNCivqs73snYDsl7QNCivqs73rkZDspIANCivqs73qtJHsiJgNCivqs73rp4zshJ0NCivqs73sooXsoJUNCivqs73snKTsnbwNCivqs73qtZDsiJwNCivqs73rgqjtmLgNCivqs73sp4Ttg5wNCivqs73qt7zsiJgNCivqs73qtozshK0NCivqs73ssKjsi50NCivqs73sooXssKwNCivqs73rj5nrtoQNCivqs73quLDshKQNCivqs70g6rK9DQor6rO96riw7IiYDQor6rO966eQ7Zi4DQor6rO96riw7IicDQor6rO97KKF642VDQor6rO97Iq57YyQDQor6rO97JaR7IiYDQor6rO96riw7KeEDQor6rO97IK87JiBDQor6rO96rec7ZmYDQor6rO97J287KO8DQor6rO96ri47ZWcDQor6rO97LC96riwDQor6rO96rK97J6sDQor6rO97ZiE7Je0DQor6rO96ri47ZmYDQor6rO97IiY7YyQDQor6rO97Jq067CwDQor6rO97Jqp7ZiEDQor6rO964Ko7JilDQor6rO97KKF7JqwDQor6rO96rWQ6riwDQor6rO97YOc6rWtDQor6rO964W47LC9DQor6rO97ISx7Zi4DQor6rO97KSA6rWsDQor6rO9IOyImA0KK+qzveuPhOyYgQ0KK+qzve2drOykgA0KK+qzveyaqeyLnA0KK+qzveqyveyEsQ0KK+qzveuPhOyYgQ0KK+qzveyGjOyEnQ0KK+qzveycpOyInA0KK+qzveyYgeyYpQ0KK+qzveuPiOyYgQ0KK+qzveqzhOyImQ0KK+qzveyImOunjA0KK+qzveu0ieq3nA0KK+qzveuPmeuTnQ0KK+qzveyerOunjA0KK+qzveyEse2YuA0KK+qzveygleuTnQ0KK+qzveuPmeunjA0KK+qzveu2hOq3nA0KK+qzveyaqeyXtA0KK+qzveq1kO2ZmA0KK+qzveuPmeuvvA0KK+qzveq3nOyImQ0KK+qzveuqheqzpA0KK+qzveuLrOu2gA0KK+qzveuPmeyLoA0KK+qzveuzteyInA0KK+qzveq4iOyLnQ0KK+qzveuqheyImA0KK+qzveuPmeyaqQ0KK+qzveusuO2YuA0KK+qzveq3gO2ZlA0KK+qzve2YhOqxuA0KK+qzveuPmeyaqQ0KK+qzveq0keyEoA0KK+qzveydvOq4uA0KK+qzveq0keykgA0KK+qzveuPme2XjA0KK+qzve2DnOykgA0KK+qzve2DnO2cmA0KK+qzveyiheyEnQ0KK+qzveuRkOyLnQ0KK+qzveyaqey2mA0KK+qzveyaqeuwsA0KK+qzveuPmeqzpA0KK+qzveunjOyImA0KK+qzveqyve2YuA0KK+qzve2aqOyImA0KK+qzveyYgeyImQ0KK+qzveunjOyImA0KK+qzveq3nOyEnQ0KK+qzve2ZlOuPjA0KK+qzveyYgeuCqA0KK+qzveunjOyhsA0KK+qzveyXsO2YhA0KK+qzveq0gOydvA0KK+qzveyYge2DnQ0KK+qzveunjO2YuA0KK+qzveyYgeykgA0KK+qzveyerO2DnA0KK+qzveyInOybhQ0KK+qzveunkOyaqQ0KK+qzveyKueydtA0KK+qzveu0ieq3vA0KK+qzveygle2YlQ0KK+qzveuqheyErQ0KK+qzveyepeyYgQ0KK+qzvSDshJ0NCivqs73spIDsiJwNCivqs73rqoXsi50NCivqs73rp4zsmrANCivqs73ssL3sl7QNCivqs73shLHsmKUNCivqs73rqoXsmrENCivqs73smrDsi50NCivqs73sooXqsJENCivqs73sooXsm5ANCivqs73rqoXtmLgNCivqs73snqzsnoQNCivqs73rs5Hsi50NCivqs73tlbTrqoUNCivqs73rrLTshKANCivqs73snbzsiJwNCivqs73snqzsp4QNCivqs73rqoXtlokNCivqs73rrLTsnbUNCivqs73rgpztmIQNCivqs73smKXsmKQNCivqs73soJXsmIENCivqs73rrLTtmIQNCivqs73sl4XstpwNCivqs73tl4zquLANCivqs73smIHsp4QNCivqs73rrLjsiJwNCivqs73qsbTshLENCivqs73tg5zsmrANCivqs73ri6ztlZkNCivqs73rr7jshJ0NCivqs73tmZTsmIENCivqs73rpqzsl7QNCivqs73qsr3sm5ANCivqs73rr7zssL0NCivqs73quLDsmrANCivqs73suaDsnbwNCivqs73soJXquLANCivqs73rspTqtowNCivqs73siJjtm4gNCivqs73siJjsmIENCivqs73shLHsm5ANCivqs73rs5Hrj4QNCivqs73snqzsmqkNCivqs73sooXsp4QNCivqs73soJXquLANCivqs73rs5HrrLUNCivqs73ssKjsmKUNCivqs73slaDsiJgNCivqs73quLDshJ0NCivqs73rs5HsiJgNCivqs73qtoztmZQNCivqs73spp3roZ0NCivqs73tg5ztmIQNCivqs73rs5HsiJkNCivqs70g7KCcDQor6rO97ZW06rK9DQor6rO9642V66y4DQor6rO967OR7Je0DQor6rO97LCo64KoDQor6rO97ZuI7J6sDQor6rO96rK97YOcDQor6rO967OR7JikDQor6rO97ISg7JikDQor6rO96rOE67CwDQor6rO97LCo7JewDQor6rO967OR7JyoDQor6rO97J247Zi4DQor6rO97ZmY7JqpDQor6rO97ZW07ISdDQor6rO967OR7LKgDQor6rO97ISx7KeEDQor6rO967OR7KO8DQor6rO97JuQ7KeEDQor6rO967OR7YOcDQor6rO97J6s66+4DQor6rO97Z2s7IudDQor6rO97KSA7Je0DQor6rO967OR7YOcDQor6rO97Jyg7IicDQor6rO97ZmN7J6QDQor6rO97Jyk7ISgDQor6rO967OR7ZeMDQor6rO97Zi47Je0DQor6rO97J6E7JqwDQor6rO97Jyk642VDQor6rO967O07IicDQor6rO96riw7ZiEDQor6rO96rCV7JiBDQor6rO97YOc7J6QDQor6rO967SJ7ISgDQor6rO966qF6ri4DQor6rO97KKF7J6QDQor6rO97IOB66GdDQor6rO967SJ7ZWYDQor6rO97J286529DQor6rO97ISx6rCcDQor6rO97J6s7KGwDQor6rO967aA7LmYDQor6rO97Jyk7IiYDQor6rO97JiB7ISdDQor6rO97KCV7JqwDQor6rO967aE6recDQor6rO97J6E7Zi4DQor6rO96rCV7Zi4DQor6rO97Jqp642VDQor6rO967aE7ZicDQor6rO97ISx7IiZDQor6rO97Iic7Z2sDQor6rO964+Z7ISgDQor6rO97IKs7JiBDQor6rO967OR67SJDQor6rO9IOuwsA0KK+qzvSDstpwNCivqs73sg4HqsJENCivqs73shoztg50NCivqs73ssL3shK0NCivqs73ssq3rs7UNCivqs73sg4HqsbQNCivqs73smKXtmZQNCivqs73siJztg5wNCivqs73shKDsi50NCivqs73sg4Hqta0NCivqs73tjJDquLANCivqs73smrHquLgNCivqs73sl7Dqsr0NCivqs73sg4Hqt5wNCivqs73shLHquLANCivqs73rj5nsiJwNCivqs73sooXsnqwNCivqs73sg4Hqt5wNCivqs73shLjtmLgNCivqs73quLDqt7wNCivqs73sp4Tqta0NCivqs73sg4Hrj4QNCivqs73smIHshK0NCivqs73sirnrtIkNCivqs73smqntmIENCivqs73sg4HrkZANCivqs73sooXsmIENCivqs73sm5DshLENCivqs73sm5DsoJwNCivqs73sg4HsmIENCivqs73rj4TqtowNCivqs73rtoDrtIkNCivqs73snbjsl7QNCivqs73sg4HsmKQNCivqs73shozsnqwNCivqs73rs5HsnpANCivqs73tg5zsi50NCivqs73sg4HsobANCivqs73sg4HquLANCivqs73rkZDtlZgNCivqs73tjJDtmLgNCivqs73sg4HssqANCivqs73tmLjsi50NCivqs70g6re8DQor6rO97KKF7YOcDQor6rO97IOB7LaYDQor6rO97JiB7J24DQor6rO97JiB7IicDQor6rO97KKF7IK8DQor6rO97IOB7ZWZDQor6rO97KKF7IiYDQor6rO97IOB7KGwDQor6rO97Jyk7ISdDQor6rO97IOB7ZiEDQor6rO97KO87LKgDQor6rO97JaR656YDQor6rO97KO86rWsDQor6rO97IOB7ZiEDQor6rO97ZiE66GADQor6rO97KO87JiBDQor6rO97Jqw7YOcDQor6rO97ISd7J20DQor6rO97IiY7Z2sDQor6rO97LCs7KeEDQor6rO96riw7YOcDQor6rO97ISd7KGwDQor6rO97ISx7Je0DQor6rO97YyQ7Z2sDQor6rO9642V7IiYDQor6rO97ISx6recDQor6rO97ISx7KSADQor6rO97ISx6raMDQor6rO97KCQ7J24DQor6rO97ISx6recDQor6rO97J247ISdDQor6rO97ZKN6re8DQor6rO97Zi464yADQor6rO97ISx7IStDQor6rO97KCV6re8DQor6rO97IiY7IicDQor6rO97YOc65OdDQor6rO97ISx7JiBDQor6rO97KKF7LKgDQor6rO96rK97ZiEDQor6rO966qF7JWUDQor6rO97ISx7Zi4DQor6rO965GQ7KSADQor6rO97Jyk7IiYDQor6rO97KeE7Z2sDQor6rO97ISx7ZmUDQor6rO97Zic7KO8DQor6rO97YOc7ZiEDQor6rO97IiY7IudDQor6rO97IaM7ISgDQor6rO97IaM7ZWZDQor6rO97ISx7KO8DQor6rO964Ko7KO8DQor6rO97IaM7IicDQor6rO97Kad7ZaJDQor6rO96reA6recDQor6rO97J6s7ZmUDQor6rO97IiY6re8DQor6rO97KKF7KO8DQor6rO9IOyImA0KK+qzveygkO2VtA0KK+qzveyImOyXsA0KK+qzveyEse2YuA0KK+qzveyiheq4sA0KK+qzveyEneyEnQ0KK+qzveyImOyYgQ0KK+qzveyerOqyvQ0KK+qzveyLoOyYgQ0KK+qzveyerO2ctA0KK+qzveyImO2ZmA0KK+qzveyDgeyEnQ0KK+qzveyInOyImA0KK+qzveyEseyErQ0KK+qzveyInOyYgQ0KK+qzveygleq3vA0KK+qzveyEseygnA0KK+qzveqzhO2YhA0KK+qzveyInOydtA0KK+qzve2DnOyglQ0KK+qzveyYge2YhA0KK+qzveq0keyImA0KK+qzveyInO2YuA0KK+qzve2YuOyEoA0KK+qzveuzkeyynA0KK+qzveyImOu5iA0KK+qzveyIoOyaqQ0KK+qzveqyveq4iA0KK+qzve2ZjeuqhQ0KK+qzve2ajO2ZmA0KK+qzveyLoOyErQ0KK+qzveuqheyXtA0KK+qzveyiheq4sA0KK+qzve2Vme2biA0KK+qzveyLoO2aqA0KK+qzveyLoOyYgQ0KK+qzveqyveydkQ0KK+qzveqyve2YuA0KK+qzveyWkeuCqA0KK+qzve2DnO2DnA0KK+qzveuFuOuPhA0KK+qzveuPmeuqqA0KK+qzveyWkeybhQ0KK+qzveyDgeyImA0KK+qzveuLrO2ZjQ0KK+qzveuPmeqzpA0KK+qzveyXtOq3nA0KK+qzveyYge2YuA0KK+qzveyihe2DnA0KK+qzveq0keykgA0KK+qzveyYgeq4uA0KK+qzveyerOydkQ0KK+qzveycpOyImQ0KK+qzve2MlOyasA0KK+qzveyYgeq4uA0KK+qzveyImOuPmQ0KK+qzveyhsOyYpQ0KK+qzve2DnOqwkQ0KK+qzveyYgeunjA0KK+qzveyYgeyynA0KK+qzveyyoO2YuA0KK+qzveyjvOuPmQ0KK+qzveyYgeyDgQ0KK+qzveywveuPmQ0KK+qzveydvOq1kA0KK+qzve2dpe2ZmA0KK+qzveyYgeyErQ0KK+qzve2YuOyImQ0KK+qzve2YleyInA0KK+qzveq4sOyXtA0KK+qzveyYgeyYpQ0KK+qzveuvuOy2mA0KK+qzve2DnOyEnQ0KK+qzveyImOyEnQ0KK+qzveyYgeyekA0KK+qzveyaqeyjvA0KK+qzve2Vme2DnA0KK+qzveyGoeu0iQ0KK+qzveyYgeyhsA0KK+qzve2DnOyImA0KK+qzveqyveuPmQ0KK+qzve2DnOyasA0KK+qzveyYgeyyoA0KK+qzveyYgeq3vA0KK+qzveusuOyCvA0KK+qzveuzke2YhA0KK+qzveyYge2DnA0KK+qzveybkOyaqQ0KK+qzve2DnO2OuA0KK+qzveynhOyasA0KK+qzveyYge2YuA0KK+qzveyerOyImA0KK+qzveu0ieyLnQ0KK+qzveqyveyYpA0KK+qzveyYge2ZlA0KK+qzvSDsg4ENCivqs73tlYTshLENCivqs73rjIDsnbUNCivqs73smIHtnawNCivqs73shLHtmLgNCivqs73qsr3smYQNCivqs73smKTssqANCivqs73smKXshKANCivqs73sooXqta0NCivqs73sooXtmIQNCivqs73tg5ztmIQNCivqs73smKXsl7ANCivqs73rs5HtkZwNCivqs73tmY3sspwNCivqs73rqoXqsJENCivqs73smZXqt5wNCivqs73tlYTquLANCivqs73sm5DsobANCivqs73sg4HtmZgNCivqs73smbjshK0NCivqs73shLHsi50NCivqs73smIHshK0NCivqs73shLHsi50NCivqs73smqnsiJgNCivqs73tg5zrk50NCivqs73so7zrj5kNCivqs73tjJTsoJUNCivqs73smqnsiJkNCivqs73snqzsobANCivqs73snbjsnbQNCivqs73qt5zqsJUNCivqs73smqnsiJwNCivqs73sp4DrtIkNCivqs73si6DrspQNCivqs73tmY3tmLgNCivqs73smrDsi50NCivqs73tmY3sl7ANCivqs73tg5zsnbQNCivqs73soJDrp7kNCivqs73smrDsl7QNCivqs73tmZjssqANCivqs73tg5ztmLgNCivqs73sobDsiJgNCivqs73smrDsmIENCivqs73smqnrj4QNCivqs73rqqjqt5wNCivqs73soJDsiJwNCivqs73sm5Dqt5wNCivqs73qtIDsmKQNCivqs73sooXtlbQNCivqs73snbzroZwNCivqs73sm5Dqt5wNCivqs73sjI3qta0NCivqs73sm5Tqs6QNCivqs73so7zsi50NCivqs73sm5DsmIENCivqs73snbzsnbwNCivqs73qs7XsnbwNCivqs73rj4TrjZUNCivqs73sm5DsmIENCivqs73tmITsnpANCivqs73tjJTsg50NCivqs73snKDqt5wNCivqs73snKDshLENCivqs73snqzsi50NCivqs73shJ3siJkNCivqs73rgqjstpwNCivqs73snKDtg5wNCivqs73quLDsiJwNCivqs73qt7zqtowNCivqs73tnazqtowNCivqs73snKTqtJENCivqs73smqnsm5ANCivqs73qsJXsoJUNCivqs73quLDsmIENCivqs73snKTqtawNCivqs73rs5HshLENCivqs73smqnsi50NCivqs73siJzshKANCivqs73snKTqt5wNCivqs73rs5Hrs7UNCivqs73sgrzsmYQNCivqs73smKXsl7ANCivqs73snYDsl7QNCivqs73qtZDqt6ANCivqs73sooXsg4ENCivqs73rtoDsmKQNCivqs73snYTsiJwNCivqs73snqzsiJgNCivqs73rj4TshKANCivqs73quLDshKANCivqs73snZjtmLgNCivqs73rtoTqsIANCivqs73smIHtmZgNCivqs73qtJHqt7wNCivqs73snbzro6ENCivqs73snbjqsJENCivqs73qsJHshK0NCivqs73shLHssqANCivqs73snoTsiJgNCivqs73quLDso7wNCivqs73ssL3tmZQNCivqs73sp4TsmKQNCivqs73snpDsmqkNCivqs73sooXtnawNCivqs73sl7DrgqgNCivqs73snYDsm5ANCivqs73snqzqsr0NCivqs73smKTqt7wNCivqs73rp4zsobANCivqs73rs5Hrj4QNCivqs73snqzqt7wNCivqs73spIDroZ0NCivqs73tmJXsnpANCivqs73snKTsiJgNCivqs73snqzshJ0NCivqs73tmLjssYQNCivqs73shLHquLgNCivqs73tnazqtIANCivqs73snqzsi50NCivqs73tmoztmIQNCivqs73qs4TtmJENCivqs73stpjrjZUNCivqs73snqzsl7QNCivqs73shLHquLANCivqs73tmITsiJgNCivqs73sgrzsspwNCivqs73snqzsmIENCivqs73sgrDsiJkNCivqs73soJXsmrQNCivqs73smrHsnpANCivqs73snqzsmIENCivqs73shLHtg5wNCivqs73sg4Hsi50NCivqs73smqntlZgNCivqs73snqzsmIENCivqs73smIHsiJgNCivqs73sm5DsiJwNCivqs73smqnsi50NCivqs73snqzsmrENCivqs73rqoXsiJkNCivqs73smIHquIgNCivqs73sl7DssqANCivqs73snqzsm5ANCivqs73shJ3qtawNCivqs73tmITsnqwNCivqs73tmLjtmLgNCivqs73snqzsspwNCivqs73sgrzsiJgNCivqs73rjZXsmqkNCivqs73ssL3quLANCivqs73snqzssqANCivqs73qtJHtlbQNCivqs73sgrztmLgNCivqs73tg5zssqANCivqs73snqzssqANCivqs73sooXrj4wNCivqs73sooXsp4QNCivqs73rrLTstpwNCivqs73snqztmLgNCivqs73rjIDsl7ANCivqs73qsr3slpENCivqs73smIHsiJgNCivqs73snqztmZgNCivqs73soJXsm5ANCivqs73siJjsooUNCivqs73smIHrj4QNCivqs73snqztm4gNCivqs73ssKjtmLgNCivqs73snpHsobANCivqs73smqnsnbwNCivqs73soJDsmqkNCivqs73snqzstpwNCivqs73smbjqt5wNCivqs73soJXsobANCivqs73soJXrp4wNCivqs73quLDtnaANCivqs73tg5ztnawNCivqs73snqzsnpANCivqs73soJXsl7ANCivqs73soJzsooUNCivqs73soJXsnKgNCivqs73siJzsiJgNCivqs73sooXqtIANCivqs73qsr3snqwNCivqs73slYjsiJgNCivqs73qtJHtmZgNCivqs73sooXqta0NCivqs73smIHsl7QNCivqs73sooXsiJgNCivqs73sm5DsnpANCivqs73sooXqtowNCivqs73shJ3slrgNCivqs73sg4HssqANCivqs73qsJHsmKUNCivqs73sooXrjIANCivqs73snbzrtIkNCivqs73smbjsiJgNCivqs73tnazsmIENCivqs73sooXrjIANCivqs73tlZzshKANCivqs73so7zrrLgNCivqs73quLDsnpANCivqs73sooXrjZUNCivqs73qsbTsmIENCivqs73sg4HquLANCivqs73soJXshJ0NCivqs73sooXrp4wNCivqs73snKTqtawNCivqs73qt7zsi50NCivqs73so7zsiJkNCivqs73sooXslZQNCivqs73soJXrp4wNCivqs73sooXssqANCivqs73smIHsmqkNCivqs73sooXsl7QNCivqs73soJXquLANCivqs73snqzslZQNCivqs73siJztmLgNCivqs73sooXso7wNCivqs73quLjsi5wNCivqs73tl4zrjIANCivqs73rs5HsooUNCivqs73sooXtlZkNCivqs73roYDtmLgNCivqs73rgqjtlZkNCivqs73smIHsp4QNCivqs73sooXtmJUNCivqs73soJXtnawNCivqs73rrLTso7wNCivqs73sg4HsnbwNCivqs73sooXtm4gNCivqs73sp4Ttg5wNCivqs73soJXtmLgNCivqs73spIDssqANCivqs73so7zshJ0NCivqs73qtJHsi50NCivqs73sooXsobANCivqs73tg5zshJ0NCivqs73so7zshK0NCivqs73smrDrnpgNCivqs73qt4DrjZUNCivqs73qsr3siJgNCivqs73sp4DsmIENCivqs73sooXspIANCivqs73tg5zrjIANCivqs73snqXtnJgNCivqs73sp4Tqs6QNCivqs73rtInqsJENCivqs73rqoXrj5kNCivqs73sooXtmLgNCivqs73sp4TsiJgNCivqs73sirnsl7QNCivqs73sgrzsiJwNCivqs73smKTsiJwNCivqs73ssKjsg4ENCivqs73sooXrk50NCivqs73snqzsp4QNCivqs73qs4TtmZgNCivqs73ssKjsmqkNCivqs73tmqjsiJgNCivqs73rp4zsnpANCivqs73sgrzsm5ANCivqs73ssL3shK0NCivqs73rj5nsmrANCivqs73snbzqtIANCivqs73soJXsgrwNCivqs73ssL3siJgNCivqs73smrTsnKgNCivqs73smIHsmqkNCivqs73quLDslrgNCivqs73ssL3si50NCivqs73sm5DshJ0NCivqs73tmITsi6QNCivqs73quLDsiJgNCivqs73ssL3smZUNCivqs73smIHrj5kNCivqs73ssL3snKQNCivqs73sm5DsmYQNCivqs73sspzshJ0NCivqs73snITtg50NCivqs73rgqjtmZgNCivqs73sgrzsnbQNCivqs73ssqDsiJgNCivqs73rs7XshK0NCivqs73sirnrtoQNCivqs73tg5zsmKUNCivqs73ssqDtmZgNCivqs73soJXso7wNCivqs73qsr3tlqUNCivqs73ssL3tnawNCivqs73suaDsmqkNCivqs73sp4TsobANCivqs73slaDshKANCivqs73sooXsmKUNCivqs73tg5zqsr0NCivqs73tg5zsoJUNCivqs73sm5DsiJgNCivqs73snKTquLANCivqs73tg5zshJ0NCivqs73rj5nsi50NCivqs73rrLTsnbwNCivqs73rjIDsobANCivqs73tg5zshJ0NCivqs73sg4Hsl7ANCivqs73shLjsi50NCivqs73smIHtnawNCivqs73tg5zshK0NCivqs73snqzrp4wNCivqs73shKDqsr0NCivqs73qsbTstpwNCivqs73tg5zsi50NCivqs73sg4Hsi50NCivqs73snqzsi50NCivqs73tlbTqtowNCivqs73tg5zsi50NCivqs73quLDsiJgNCivqs73shJ3tg50NCivqs73rj5ntm4gNCivqs73tg5zsl7QNCivqs73smIHqsbQNCivqs73tjJDsiJgNCivqs73stpjsmrANCivqs73tg5zsmIENCivqs73spIDtmLgNCivqs73smqnshJ0NCivqs73quLDtmZgNCivqs73tg5zsmqkNCivqs73rrLjsobANCivqs73tg5ztmZgNCivqs73snqzsiKANCivqs73tg5zspJENCivqs73rgqjrhYQNCivqs73smrHtmLgNCivqs73ssL3sl7QNCivqs73tg5ztmZgNCivqs73rjZXqt7wNCivqs73ssq3smqkNCivqs73rqoXsi50NCivqs73tg5ztnawNCivqs73rr7jsobANCivqs73qsJHrj5kNCivqs73qt7nsnbUNCivqs73tg53sl7QNCivqs73sirnrp4wNCivqs73quLDrrLgNCivqs73tmZjrjIANCivqs73tjJDqsJwNCivqs73sg4HtmLgNCivqs73sooXsnpANCivqs73rqoXtmY0NCivqs73tjJDsiJgNCivqs73tg5zqtJENCivqs73so7zsmqkNCivqs73qtJHtl4wNCivqs73tj4nshK0NCivqs73rp4zsl7ANCivqs73shLHro6ENCivqs73sspzrsLANCivqs73tkZzqsr0NCivqs73sg4HrqqgNCivqs73smbjshLENCivqs73rs5Hrj5kNCivqs73tlZnstpwNCivqs73soJXstpwNCivqs73so7ztg5wNCivqs73sp4TsmrANCivqs73tlZzqs6QNCivqs73smIHsmqkNCivqs73rspTtl4wNCivqs73ssKjsobANCivqs73tlZzsiJgNCivqs73rs5Htg50NCivqs73shLHtmLgNCivqs73tg5zshK0NCivqs73tlZzsmIENCivqs73smqnsiJkNCivqs73spIDshJ0NCivqs73tmITtg50NCivqs73tlbTqt5wNCivqs73tmITtmLgNCivqs73rs5HrtoQNCivqs73shLHquLANCivqs73tlbTrp4wNCivqs73quLDspIANCivqs73sirnsmrANCivqs73tlZzspJENCivqs73tlbTshJ0NCivqs73rj5ntl4wNCivqs73tg5ztg5wNCivqs73rrLjsi50NCivqs73tlbTshJ0NCivqs73snqzsiJgNCivqs73tg5ztmY0NCivqs73qtJHri6wNCivqs73tmLjsiJwNCivqs73qsr3tnawNCivqs73soJDsiJwNCivqs73smIHroZ0NCivqs73tmY3qt5wNCivqs73sooXtmLgNCivqs73rj5ntmIQNCivqs73siJzsl7QNCivqs73tmZTsl7QNCivqs73tg5zrspQNCivqs73slrXqt5wNCivqs73smrDsiJgNCivqs73tm4Tsl7QNCivqs73tjJDtmIQNCivqs73spIDqtowNCivqs73slrXsmKQNCivqs73tnJjshowNCivqs73smqnsiJgNCivqs73shLHstpgNCivqs73sgrzsi50NCivqs73tnaXshK0NCivqs73tg5zspIANCivqs73tg5zsgrwNCivqs73qsr3quLgNCivqs73tnazsiJwNCivqs73qsr3shK0NCivqs73rjZXsmrANCivqs73sp4Tsp5ENCivqs73tnazsm4UNCivqs73rrLjsl7QNCivqs73rs5HspIANCivqs73tmJztmIQNCivqtazqsr3shJwNCivqtazsooXsobANCivqtazsjI3shJ0NCivqtazssKjrtoANCivqtazqsr3siJkNCivqtazsm5DsmKUNCivqtaztlZzqta0NCivqtazshKTsmrANCivqtazqsr3siJkNCivqtazrk53siJkNCivqtazsiJjtnawNCivqtazsnKTrjIANCivqtazqt4DtmZQNCivqtazsg4HtmZQNCivqtazrp5DroZ0NCivqtazrqoXtg5wNCivqtazquLjtmowNCivqtazshLHsp4QNCivqtazsnbzsg4ENCivqtazrjZXsmrANCivqtazrj5nrp4wNCivqtazqsr3tmIQNCivqtazsnbjsnbQNCivqtazshLHsiJgNCivqtazrj5nshJ0NCivqtazqt7zrtIkNCivqtazsgrzsi50NCivqtazsooXtl4wNCivqtazrj5nsiJgNCivqtazsnqzsm5ANCivqtazrs5HtmIQNCivqtazsjI3smrANCivqtazrj5nsm5ANCivqtazstqnsiJwNCivqtazquLDrgqgNCivqtazshJ3rs5ENCivqtazrj5nssqANCivqtazsirntnawNCivqtazsnbzsi50NCivqtazquLDsi50NCivqtazrkZDshKANCivqtazrqoXsmrQNCivqtazso7ztmLgNCivqtazsmIHsiJwNCivqtazrqoXsiJkNCivqtazrs7XtnawNCivqtazsiJzsmKUNCivqtaztg5zrnpgNCivqtazrr7ztmowNCivqtazqt5zshKANCivqtazquIjsmrENCivqtazqsr3tlZkNCivqtazrs5HsiJgNCivqtazri6zshK0NCivqtazsmIHshJ0NCivqtaztnazsi50NCivqtazrs5HssKwNCivqtazsiJzroKgNCivqtazrkZDqt7wNCivqtazsnbTsiJgNCivqtazrs7jshKANCivqtazsiJztnawNCivqtazsiJjrs5ENCivqtazsiJjstpgNCivqtazrs7jsirkNCivqtazsnKTsm4UNCivqtazsmIHsiJgNCivqtazso7zso7wNCivqtazrs7jtmIQNCivqtazsnqzsnpANCivqtazqtJHtmIQNCivqtaztlZzsiKANCivqtazrtoDsnoQNCivqtazsnqztl4wNCivqtazsoJXtkZwNCivqtaztg5zshKQNCivqtazshJ3rtIkNCivqtaztg5ztg5wNCivqtazsnqzsi50NCivqtaztg5zsnbUNCivqtazshKDsnbQNCivqtaztmY3rqqgNCivqtaztmITssqANCivqtazrrLTsnKQNCivqtazsmqnquLgNCivqtazsiJjsm4UNCivqtazquLDsi50NCivqtazssqDsiJgNCivqtazsmqntg5wNCivqtazsmIHtg50NCivqtazsmbjtmZQNCivqtazspJHtmLgNCivqtazsnbTsmqkNCivqtaztg5ztlZgNCivqtazrj4jsnqwNCivqtazsooXsiJgNCivqtazsnpDqtIANCivqtazssL3tmIQNCivqtazsm5DshKANCivqtazqtazquLANCivqtazsnpDrjZUNCivqtazsoJXrtoANCivqtaztg5ztmLgNCivqtazquLDtmLgNCivqtazsnpDsmrANCivqtazsnKTsmKQNCivqtazsooXrqqkNCivqtazshJ3shLENCivqtazsnpDsnbUNCivqtazrj5nrj5kNCivqtazsnqztmZQNCivqtazrtInquLANCivqtazsoJDsi50NCivqtazshLHsnpANCivqtazrp4zsl7ANCivqtazsg4HspJENCivqtazsoJzrgqgNCivqtazquIjsnbQNCivqtazsl7DtmZgNCivqtazsmqnsuZgNCivqtazspJHshJwNCivqtaztlZnsnpANCivqtazsoJXri6wNCivqtazssKjsl7ANCivqtazstpjsi50NCivqtazsp4Ttg5wNCivqtazsnqXsiJwNCivqtazsm5Dsl7ANCivqtazstpjsi50NCivqtazquLDquLgNCivqtazsmIHqt6ANCivqtazrj5ntg4ENCivqtazstqnrqqgNCivqtazrs7XsnpANCivqtazrs5HtlZwNCivqtaztm4jtnawNCivqtaztg5ztnawNCivqtazrrLTsmqkNCivqtazrs5Hqs6ANCivqtazrj5nshJ0NCivqtaztj4nquLgNCivqtazshLHsi50NCivqtazsgrzrkZANCivqtazsmIHtnawNCivqtaztmITsmKUNCivqtaztmqjtnawNCivqtazsiJzsmqkNCivqtazslpHsmqkNCivqtaztmZTsnbQNCivqtazsg4Hqt5wNCivqtazshLHsm5ANCivqtazsmIHsiJgNCivqtaztnazqsr0NCivqtazrs5HssqANCivqtazsnqzspIANCivqtazsmIHroZ0NCivqtaztnazsiJkNCivqtazsmIHrspQNCivqtazrtIntl4wNCivqtazrtoDsiJgNCivqta3snKTtmZgNCivqta3sg4HshJ0NCivqta3tmZjrgqgNCivqta3rr7ztg5wNCivqtowg7IiYDQor6raM7JiB6rWtDQor6raM64yA7ZiEDQor6raM7KCV7KO8DQor6raM6rCR7KGwDQor6raM7IOB656ADQor6raM7ISx7ZiEDQor6raM7YOc6recDQor6raM6rK96rSADQor6raM7J6s7JuQDQor6raM6riw7IicDQor6raM7IOB7IiYDQor6raM6rK9642VDQor6raM7LC97JewDQor6raM7KCQ7LaYDQor6raM67SJ7JuFDQor6raM6rK9656ADQor6raM7ISd7ISxDQor6raM7J6s67mIDQor6raM7IiY7ISdDQor6raM6rK97IOdDQor6raM6rec6ri4DQor6raM7ZmN7KO8DQor6raM6riw7JykDQor6raM6rK97IiZDQor6raM6riw7JuQDQor6raM7Lap7JikDQor6raM7Z2l7IOBDQor6raM6rK97IigDQor6raM7Jqp7Z2sDQor6raM6rec7IutDQor6raM7KKF7JilDQor6raM6rK97J6QDQor6raM7KKF7ZmYDQor6raM7LC964+ZDQor6raM7ISx6rCRDQor6raM6rK97KGwDQor6raM7JiB7ISdDQor6raM7JiB7ZiEDQor6raM7Ja17IStDQor6raM6rK97ZmYDQor6raM67SJ6riwDQor6raM7ISx7IicDQor6raM7KeE64+MDQor6raM6rSR7IudDQor6raM7Z2s7LC9DQor6raM7ISx7IOBDQor6raM7ISx7KeADQor6raM6rSR7JuFDQor6raM67KU67CwDQor6raM66qF64+ZDQor6raM7J6s7IStDQor6raM6rSR7Zi4DQor6raM7Iq57JiBDQor6raM7LKg6rOkDQor6raM7IK86rWtDQor6raM6reA64KoDQor6raM7Iq57JikDQor6raM7J247ISdDQor6raM7ISg65OdDQor6raM6reA7J6EDQor6raM64W47ZmYDQor6raM6raM7ZiEDQor6raM7ISd6re8DQor6raM6riI7JWFDQor6raM7KCV7IiYDQor6raMIO2YuA0KK+q2jO2XjOuqqA0KK+q2jOq4iOyXsA0KK+q2jOqyveyXtA0KK+q2jOyImOybkA0KK+q2jOunjO2aqA0KK+q2jOq4sOuPmQ0KK+q2jOycpOyInA0KK+q2jOq4iOykgA0KK+q2jOyLnOq4sA0KK+q2jOq4sOyErQ0KK+q2jOyepeyZhA0KK+q2jOunjOq1kA0KK+q2jOygkO2YuA0KK+q2jOq4sOyEsQ0KK+q2jOyYgey2nA0KK+q2jO2XjOyImA0KK+q2jOqzhOuPhA0KK+q2jOq4sOyImA0KK+q2jOuqheyImA0KK+q2jOuzte2ctA0KK+q2jOyXsOuvvA0KK+q2jOq4sOyYgQ0KK+q2jOyyoOq4sA0KK+q2jOyihey2mA0KK+q2jO2drO2YuA0KK+q2jOq4sOyaqQ0KK+q2jOuNleyImQ0KK+q2jOydvOyEnQ0KK+q2jOq4sO2DnA0KK+q2jOq4sOyihQ0KK+q2jOygle2MlA0KK+q2jOq4iO2ZmA0KK+q2jOqwke2ZjQ0KK+q2jOq4sOyyoA0KK+q2jOyYgeyXtA0KK+q2jOyEneyVoA0KK+q2jOyerO2drA0KK+q2jOq4sO2XjA0KK+q2jO2VtOyLoA0KK+q2jOuNleq3vA0KK+q2jOqzhOu5iA0KK+q2jOuCqOyImA0KK+q2jOyZuOyInA0KK+q2jOymneyErQ0KK+q2jOyDgeuPhA0KK+q2jOuKoOydtA0KK+q2jOyaqeyLnQ0KK+q2jOywveyErQ0KK+q2jOyEuOyaqQ0KK+q2jOuLrOy2nA0KK+q2jOyEseyImA0KK+q2jOyInOyasQ0KK+q2jOycpOydtQ0KK+q2jOuMgOyYgQ0KK+q2jOywrOyyoA0KK+q2jOyEse2ZlA0KK+q2jOydvOyglQ0KK+q2jOuMgOycpA0KK+q2jOuPmeyImA0KK+q2jOynhOuvvA0KK+q2jOq4sO2drA0KK+q2jOuNleyaqQ0KK+q2jOyEseyekA0KK+q2jOyerO2biA0KK+q2jOy2mOy2nA0KK+q2jOuPhOyduA0KK+q2jOyKue2XjA0KK+q2jOy2mOq4sA0KK+q2jOuPmeuylA0KK+q2jOuPjOydtA0KK+q2jOyImOq4uA0KK+q2jO2MkOyEnQ0KK+q2jOyynOyErQ0KK+q2jOuPmeq2jA0KK+q2jOyiheyYgQ0KK+q2jOyiheuhnQ0KK+q2jO2YhOybhQ0KK+q2jOuRkOumrA0KK+q2jOyiheyVlA0KK+q2jOuzkeyYgQ0KK+q2jOq4sOqyvQ0KK+q2jOuRkO2YhA0KK+q2jO2XjOyhsA0KK+q2jOyDgeyXsA0KK+q2jOyaqeq4sA0KK+q2jOuTneyImA0KK+q2jOqyveybhQ0KK+q2jOuPhOyImA0KK+q2jO2VhOyYgQ0KK+q2jOugue2YhA0KK+q2jOyInO2biA0KK+q2jOywveq4sA0KK+q2jO2Zje2ZlA0KK+q2jOunkOyImA0KK+q2jOydvOq1kA0KK+q2jOq0keykgA0KK+q2jOynhOyDnQ0KK+q2jOunkOyaqQ0KK+q2jOuMgOybkA0KK+q2jOyihe2YuA0KK+q2jOusuOyihQ0KK+q2jOunkOyehA0KK+q2jOuzteqzpA0KK+q2jOqyveq3nA0KK+q2jOydvOq3vA0KK+q2jOuqheuztQ0KK+q2jOyduOyImA0KK+q2jOynhO2bhA0KK+q2jO2YuOyEnQ0KK+q2jOuqheyCvA0KK+q2jO2DnOyyoA0KK+q2jOydkeynhA0KK+q2jOyInO2YuA0KK+q2jOuqheyaqQ0KK+q2jO2bhOyCvA0KK+q2jOygleyXsA0KK+q2jOyYge2ZjQ0KK+q2jOustOybhQ0KK+q2jOyehOq2jA0KK+q2jO2DnOyYpQ0KK+q2jOyaqeynhA0KK+q2jOustO2ZjQ0KK+q2jOusuOuNlQ0KK+q2jOyiheqzhA0KK+q2jO2DnO2ZlA0KK+q2jOuvuOuegA0KK+q2jOyjvOyXsA0KK+q2jOygleuMgA0KK+q2jOyerOyImA0KK+q2jOuvuOuegA0KK+q2jOyEneyekA0KK+q2jOyImOq1rA0KK+q2jOyXheyekA0KK+q2jOuvuOyYgQ0KK+q2jOq4sOyYgQ0KK+q2jOyaqeybhQ0KK+q2jOyZleyYgQ0KK+q2jOuvuOyekA0KK+q2jOyiheyCvA0KK+q2jOuLrOuMgA0KK+q2jO2PieyInA0KK+q2jOuvuOyekA0KK+q2jO2DnOyekA0KK+q2jOyasOyEoA0KK+q2jOyYgeyasA0KK+q2jOuzkeusuA0KK+q2jOyjvOq1kA0KK+q2jOyepeyglQ0KK+q2jO2DnOyDgQ0KK+q2jOuzkeyyoA0KK+q2jOyWuO2YhA0KK+q2jOuPme2RnA0KK+q2jO2DnOq1sA0KK+q2jOuzteq4uA0KK+q2jOyLoO2ZjQ0KK+q2jOuRkO2ZjQ0KK+q2jOyLnOq4uA0KK+q2jOuzteq4uA0KK+q2jOygleyglQ0KK+q2jOuzkeyYpQ0KK+q2jO2DnOyglQ0KK+q2jOuzteunjA0KK+q2jOyerOybkA0KK+q2jOyYgeyekA0KK+q2jO2aqOuCqA0KK+q2jOuzteyjvA0KK+q2jOyiheyXsA0KK+q2jO2ZlOyLnQ0KK+q2jOyEseyglQ0KK+q2jOu0ie2VmQ0KK+q2jOyEoOuNlQ0KK+q2jOqyve2drA0KK+q2jO2Zje2drA0KK+q2jOu2hO2WpQ0KK+q2jOygleugrA0KK+q2jOyDgeuvuA0KK+q2jOyEse2VmQ0KK+q2jOu2hO2WpQ0KK+q2jOyduOq3nA0KK+q2jOu0ieyLnQ0KK+q2jOq4sO2VnA0KK+q2jOyCvOufiQ0KK+q2jOyerO2ZmA0KK+q2jOyehOyEnQ0KK+q2jO2VhOumvQ0KK+q2jOyCvOyIoA0KK+q2jOyerOu0iQ0KK+q2jOuNleq4sA0KK+q2jOyEseuwsA0KK+q2jOyDgeq3nA0KK+q2jOq4sOuztQ0KK+q2jO2DnOydtA0KK+q2jOyDgeuwsA0KK+q2jOyDgeyasA0KK+q2jOyasO2ZmA0KK+q2jOuRkOyImQ0KK+q2jOuzkeyEnQ0KK+q2jOyEneyasA0KK+q2jOybkOygnA0KK+q2jO2DnOydtA0KK+q2jOyYgeyXtA0KK+q2jOyEoOuztQ0KK+q2jOykkeyEnQ0KK+q2jO2YhOyInA0KK+q2jOyYgeyEsQ0KK+q2jOyEoO2drA0KK+q2jOyDgeq1rA0KK+q2jOuqheybkA0KK+q2jOyjvOyYgQ0KK+q2jOyEoO2drA0KK+q2jOuvuOyyoA0KK+q2jOyiheyImA0KK+q2jOuMgOy2nA0KK+q2jOyEseq3vA0KK+q2jOuPmeyEnQ0KK+q2jOyiheq4sA0KK+q2jOygleyaqQ0KK+q2jOyEseq4sA0KK+q2jOuzkeybhQ0KK+q2jOyEuOyEnQ0KK+q2jOyImO2drA0KK+q2jOyEseuMgA0KK+q2jOyaqey2nA0KK+q2jOygleyyoA0KK+q2jOyaqeykgA0KK+q2jOyEseybhQ0KK+q2jOyjvOyasA0KK+q2jO2VhOyEsQ0KK+q2jOygle2YuA0KK+q2jOyEseykgA0KK+q2jOyaqeyyoA0KK+q2jOygle2YuA0KK+q2jOybkO2drA0KK+q2jOyEuOyaqQ0KK+q2jOq3gO2drA0KK+q2jOyDgeyYgQ0KK+q2jOyDge2YuA0KK+q2jOyEuOyaqQ0KK+q2jOuCmOusuA0KK+q2jOyerOyLnQ0KK+q2jOyerOyImQ0KK+q2jOyGjOq0gA0KK+q2jOuzkeynhA0KK+q2jOuqheqzpA0KK+q2jOq0keyYpA0KK+q2jOyGjOuPjA0KK+q2jOuPmeusuA0KK+q2jOusuOybkA0KK+q2jOyEuO2DnQ0KK+q2jOyImOunjA0KK+q2jOygkOyYpQ0KK+q2jOybkO2VmQ0KK+q2jOuPmeyXtA0KK+q2jOyImOunjA0KK+q2jOu2hOyImA0KK+q2jOq3nOy2nA0KK+q2jOygle2drA0KK+q2jOyImOybkA0KK+q2jOqyvey2nA0KK+q2jOq4sO2RnA0KK+q2jOyiheyjvA0KK+q2jOyImOyekA0KK+q2jOyiheq1rA0KK+q2jOyerOuwsA0KK+q2jOydmO2DgQ0KK+q2jOyImOyekA0KK+q2jOycpOyaqQ0KK+q2jOywqO2YuA0KK+q2jOq0ke2YhA0KK+q2jOyImOyekA0KK+q2jOuqheyhsA0KK+q2jOydgOyLnQ0KK+q2jOygle2YuA0KK+q2jOyImOyekA0KK+q2jOuPme2YuA0KK+q2jOyduOydtA0KK+q2jOuzkeuqqA0KK+q2jOyInOuNlQ0KK+q2jOyngO2VmQ0KK+q2jOuvuOq4sA0KK+q2jOyLnOq1rQ0KK+q2jOyInOuqqQ0KK+q2jOyEseyEnQ0KK+q2jOuzke2YuA0KK+q2jOyaqeqxtA0KK+q2jOyInOyYpQ0KK+q2jOyCrO2YuA0KK+q2jOyerOuLrA0KK+q2jOyEse2ZjQ0KK+q2jOyInO2ZmA0KK+q2jOq4iOybkA0KK+q2jOq3gOyihQ0KK+q2jOykkeq3vA0KK+q2jOyVlOyasA0KK+q2jOqwkeyInA0KK+q2jOuztOyekA0KK+q2jOycpOyImA0KK+q2jOyVoOyekA0KK+q2jOqzhOyDnQ0KK+q2jOuMgOy2mA0KK+q2jOyYgeyImQ0KK+q2jOyXsOyjvA0KK+q2jO2DnOyImA0KK+q2jOuMgOyaqQ0KK+q2jO2VnOybkA0KK+q2jOyYgeqzhA0KK+q2jOygleyImA0KK+q2jOyaseyhsA0KK+q2jOyDgeyXtA0KK+q2jOyYgeq0gA0KK+q2jO2VnOyjvA0KK+q2jOykkeq1rQ0KK+q2jO2DnOqyvQ0KK+q2jOyYgeq1kA0KK+q2jOyaqeq4uA0KK+q2jOy2qe2YlQ0KK+q2jO2VmeykgA0KK+q2jOyYgeq1rA0KK+q2jOyEse2VmQ0KK+q2jOyihe2WpQ0KK+q2jOyduOuztQ0KK+q2jOyYgeq1rA0KK+q2jOyEseyaqQ0KK+q2jOyjvOyImA0KK+q2jOyKue2YuA0KK+q2jOyYgeq1rA0KK+q2jOuzkeuPjA0KK+q2jOuzkeq1kA0KK+q2jOq4sOyEoA0KK+q2jOyYgeq1rQ0KK+q2jOugpOusuA0KK+q2jOyDge2DnA0KK+q2jOq4sOuPmQ0KK+q2jOyYgeq3vA0KK+q2jOyDgeuztQ0KK+q2jO2YuOyEnQ0KK+q2jOyDge2ZmA0KK+q2jOyYgeuMgA0KK+q2jOyEneuztQ0KK+q2jOyiheyekA0KK+q2jOustOyekA0KK+q2jOyYgeuPiA0KK+q2jOuzte2VnA0KK+q2jOq4sOyImQ0KK+q2jOyDgeyLnQ0KK+q2jOyYgeuhnQ0KK+q2jOynhOyImA0KK+q2jOyduOyasA0KK+q2jOyDgeqzpA0KK+q2jOyYgeuqqQ0KK+q2jOq2jOuMgA0KK+q2jO2VhO2DnA0KK+q2jOyerOq4uA0KK+q2jOyYgeusuA0KK+q2jOuFuOyXsA0KK+q2jOuPhOyImA0KK+q2jOyekOyLnQ0KK+q2jOyYgeuztA0KK+q2jOyaqeuCqA0KK+q2jOyiheq4uA0KK+q2jOyEuO2drA0KK+q2jOyYgeuztQ0KK+q2jOqyveyYpQ0KK+q2jOustOyImA0KK+q2jOywrOyerA0KK+q2jOyYgeuztQ0KK+q2jOynhOyLnQ0KK+q2jOydgOyasA0KK+q2jOyImOywrA0KK+q2jOyYgeu0iQ0KK+q2jOyduOq3vA0KK+q2jO2drOqyvQ0KK+q2jOyihe2drA0KK+q2jOyYgeu0iQ0KK+q2jOywveq3vA0KK+q2jOyYpey2nA0KK+q2jOykgO2YuA0KK+q2jOyYgeyImA0KK+q2jOyKueyjvA0KK+q2jOyepeyEnQ0KK+q2jOuqheyYgQ0KK+q2jOyYgeyInA0KK+q2jOunue2YhA0KK+q2jOydvOqyvQ0KK+q2jOustO2YuA0KK+q2jOyYgeyInA0KK+q2jOyaqeyehA0KK+q2jOuPmeqwkQ0KK+q2jOuzteybkA0KK+q2jOyYgeyInA0KK+q2jOyEseunjA0KK+q2jOyYge2YuA0KK+q2jOyyoOyEuA0KK+q2jOyYgeyVhA0KK+q2jOygleq3nA0KK+q2jOqzhOqwkQ0KK+q2jOyEseyInA0KK+q2jOyYgeydvA0KK+q2jOuMgOq4sA0KK+q2jOuzkeqzhA0KK+q2jOyYgeyImA0KK+q2jOyYgeygnA0KK+q2jOyEoOyDnQ0KK+q2jOu2hOyErQ0KK+q2jOyEseyekA0KK+q2jOyYgeyjvA0KK+q2jOuNleumrA0KK+q2jOq0ke2VtA0KK+q2jOq0keyInA0KK+q2jOyYgeykgA0KK+q2jO2DnOyImA0KK+q2jOyYgeu2hA0KK+q2jOydmOq4uA0KK+q2jOyYgeywvQ0KK+q2jOuNleqyvQ0KK+q2jOq4iO2aqA0KK+q2jOq4sOydtA0KK+q2jOyYgey5oA0KK+q2jOyEseyYgQ0KK+q2jOq4iOqyvQ0KK+q2jOq4iOuwsA0KK+q2jOyYge2DnQ0KK+q2jOyaqe2ZmA0KK+q2jO2DnOq4sA0KK+q2jOyaqeykgA0KK+q2jOyYge2VhA0KK+q2jOyerOyImA0KK+q2jOygle2drA0KK+q2jOy2mOyImA0KK+q2jOyYge2VmA0KK+q2jOyYpeyjvA0KK+q2jOq3gOujoQ0KK+q2jOyYge2ZlA0KK+q2jOyYge2VmA0KK+q2jO2YhOy2nA0KK+q2jOyDgeydtQ0KK+q2jOygleuMgA0KK+q2jOyYge2XjA0KK+q2jOy2mOyLnQ0KK+q2jOq4sOybkA0KK+q2jO2DnOyXtA0KK+q2jOyYge2YhA0KK+q2jOuzkeyXsA0KK+q2jOqyveuwsA0KK+q2jOyngOustA0KK+q2jOyYge2YuA0KK+q2jOycpOq1rQ0KK+q2jOyEne2YuA0KK+q2jOygleyhsA0KK+q2jOyYge2ZmA0KK+q2jOychOq4uA0KK+q2jOy5oO2ZlA0KK+q2jOuqheq0kQ0KK+q2jOyYpOq0kQ0KK+q2jO2DnOyImA0KK+q2jO2ZmOyekA0KK+q2jOyiheuRkA0KK+q2jOyYpOq0kQ0KK+q2jOq4uOqzpA0KK+q2jOq0keyImA0KK+q2jOyiheudvQ0KK+q2jOyYpOq3vA0KK+q2jOyDgeyhsA0KK+q2jOykkeq3oA0KK+q2jOyEoOqxtA0KK+q2jOyYpOq3vA0KK+q2jOyImOq4sA0KK+q2jOyiheyLnQ0KK+q2jOq4uOqxtA0KK+q2jOyYpOujoQ0KK+q2jOyYge2DnA0KK+q2jOuvuOyImA0KK+q2jOunjOyLnQ0KK+q2jOyYpOunjA0KK+q2jO2DnOyglQ0KK+q2jOygkOu0iQ0KK+q2jO2YleyDgQ0KK+q2jOyYpOunjA0KK+q2jOq4iO2VmQ0KK+q2jOyEseyXtA0KK+q2jOq2jOyyoA0KK+q2jOyYpOuqhQ0KK+q2jOyerOq2jA0KK+q2jOqzoeuPmQ0KK+q2jOq4sOunjA0KK+q2jOyYpOyDgQ0KK+q2jO2DnO2drA0KK+q2jOuRkO2YuA0KK+q2jOyEneyLnQ0KK+q2jOyYpOyDgQ0KK+q2jOunjOq3vA0KK+q2jOyGjOygnA0KK+q2jOyYpeusuA0KK+q2jOyYpOyDgQ0KK+q2jOyiheynhA0KK+q2jOyEneyErQ0KK+q2jO2biOuNlQ0KK+q2jOyYpOyEnQ0KK+q2jOygleybkA0KK+q2jOyEseyImA0KK+q2jOygleyasA0KK+q2jOyYpOyEnQ0KK+q2jO2DnOugqA0KK+q2jOuhneygnA0KK+q2jOynhOyyoA0KK+q2jOyYpOyEnQ0KK+q2jOydgOyglQ0KK+q2jOuCqO2VmQ0KK+q2jOyduOyImA0KK+q2jOyYpOyEsQ0KK+q2jOudveyasA0KK+q2jOyZuO2YuA0KK+q2jOyerOunjA0KK+q2jOyYpOyEsQ0KK+q2jOyYgeq1rA0KK+q2jOuFuOyImA0KK+q2jOuzkeuPhA0KK+q2jOyYpOyEsQ0KK+q2jOydgOyyoA0KK+q2jO2aqOyYgQ0KK+q2jOyXsOyIoA0KK+q2jOyYpOyEsQ0KK+q2jOyKueq1rA0KK+q2jOyaqeyXtA0KK+q2jOq4sOqyvQ0KK+q2jOyYpOyImA0KK+q2jOuPmeqwgQ0KK+q2jOyDgeuwsA0KK+q2jOyYge2YhA0KK+q2jOyYpOyImA0KK+q2jOyEse2VnA0KK+q2jO2DnOuNlQ0KK+q2jOygkOu2hA0KK+q2jOyYpOyImA0KK+q2jOuPmeuFhA0KK+q2jOybkOuNlQ0KK+q2jOyngOyaqQ0KK+q2jOyYpOyKuQ0KK+q2jOuPmeyLoA0KK+q2jOyiheusuA0KK+q2jCDtg5wNCivqtozsmKTsl7QNCivqtoztmozsl7ANCivqtozsmIHqt5wNCivqtozsoJXstpwNCivqtozsmKTsmrENCivqtozrqoXsmrENCivqtoztmY3smIENCivqtozquLDsl7QNCivqtozsmKTsm4UNCivqtozsnqzquLANCivqtozrp7nqs6QNCivqtozsooXshK0NCivqtozsmKTso7wNCivqtozrj4TsnqwNCivqtozsmIHsi50NCivqtozsmIHtlZwNCivqtozsmKTspIANCivqtoztmY3qsr0NCivqtozshLHstpwNCivqtozso7ztmqgNCivqtozsmKTstpQNCivqtoztlZzsmqkNCivqtozqsr3ssL0NCivqtozshJ3tmLgNCivqtozsmKTsuaANCivqtoztmLjtlZgNCivqtozsnqzsnKgNCivqtozsg4HsnbQNCivqtozsmKTtmIQNCivqtozsmIHtnawNCivqtozrs5Hsl7QNCivqtozrrLjtmLgNCivqtozsmKTtmLgNCivqtoztg5zsspwNCivqtozqsJHstpwNCivqtozrp4ztmZgNCivqtozsmKTtnJgNCivqtozqtazsmIENCivqtozrqoXrsLANCivqtozsnqztnawNCivqtozsmKXshLENCivqtozrs7XtmLgNCivqtozrjZXso7wNCivqtozsnqzshLENCivqtozsmKXstpwNCivqtozrk53roKQNCivqtozqsr3snKQNCivqtozshLHsi50NCivqtozsmbjsiJgNCivqtozsmIHsmrENCivqtozrrLjsnoQNCivqtozrqoXsiJkNCivqtozsmqnquLANCivqtoztjJDsiJgNCivqtozsnbTqsr0NCivqtozsoJXqs6QNCivqtozsmqnrk50NCivqtozshLHrtIkNCivqtozsmKjsmqkNCivqtozshJ3soJUNCivqtozsmqnrp4wNCivqtozsp4Drj5kNCivqtozqsr3tl4wNCivqtozsi6DtnawNCivqtozsmqnssqANCivqtozsmqnshLENCivqtozsnbzsmKUNCivqtoztmansmrQNCivqtozsmqntg5wNCivqtozrqoXsiJgNCivqtozsmrHroKgNCivqtozqsr3roYANCivqtozsmqntg5wNCivqtozsooXtmLgNCivqtozrjZXrj5kNCivqtoztjJDtmJUNCivqtozsmqntg5wNCivqtozrj5ntnawNCivqtozslrjssL0NCivqtoztlZzsiJgNCivqtozsm5Dqta0NCivqtozqtJHsmqkNCivqtozshLHspIANCivqtozsmIHsnbQNCivqtozsm5DsobANCivqtozssL3tnawNCivqtozsi6TsiKANCivqtoztg5ztlZkNCivqtozsm5DstpwNCivqtozsoJXsobANCivqtozrs5HssYQNCivqtozsp4TquLANCivqtozsm5Ttg5wNCivqtozsoJXquLgNCivqtozslpHsiKANCivqtozsp4Tsl7QNCivqtozsnYDsoJUNCivqtozshozrj4QNCivqtozrs7XrtoQNCivqtozrnpjqsr0NCivqtozsnZjtmqgNCivqtozsmYTroZwNCivqtozrs5HspJENCivqtozrp4zsl7QNCivqtozsnbXtmIQNCivqtozshLHtmIQNCivqtozshJ3qt5wNCivqtozrs5Hsm5ANCivqtozsnoTshKANCivqtozrqoXtg50NCivqtoztmITsm5ANCivqtozsgrzsmqkNCivqtozsnqzqsbQNCivqtozqt7zsiJgNCivqtozsg4HqtowNCivqtozsnbjssL0NCivqtozsnqzrjZUNCivqtozrqoXtg5wNCivqtozsnbTsnKQNCivqtozsmIHqt7wNCivqtozsnqztmZQNCivqtozrj5nsnbwNCivqtozsnqXsiJgNCivqtozssKjtnawNCivqtozsoJDsiJwNCivqtoztmqjshKANCivqtozquLDsiJgNCivqtozsmIHtmqgNCivqtozsoJDtg5wNCivqtozsoJXtnawNCivqtozrs7Tqs6QNCivqtozrr7jslrUNCivqtozsoJXslYQNCivqtozqt5zrs7UNCivqtozsnqzsg4ENCivqtozsgrzsnpANCivqtozsoJXsmKQNCivqtozqsrjsmKUNCivqtozsg4HtmLgNCivqtoztmJXsiJgNCivqtozsoJXtnawNCivqtoztla3siJkNCivqtoztlYTsiJwNCivqtozsg4HsnZgNCivqtozsoJztmLgNCivqtozsnbTsi50NCivqtozsnqzsnbQNCivqtozsp4TsnbUNCivqtozsooXrr7wNCivqtozsg4HsobANCivqtozsnqzsi50NCivqtozsmIHsiJgNCivqtozsooXslYgNCivqtozsnKTquLANCivqtozsmrDshKANCivqtozsmqnrjZUNCivqtozsooXsnoQNCivqtozsnbjtnawNCivqtozsmIHtmZgNCivqtozrp4zsmKQNCivqtozsoozqt7wNCivqtozquLDsl7QNCivqtozsnYDsmIENCivqtozsnKTsi50NCivqtozso7zssKwNCivqtozshJ3tlZkNCivqtoztl4zsmKQNCivqtozrrLjsiJgNCivqtozso7ztmIENCivqtozsgqzsiJwNCivqtozsnqXquLANCivqtozsooXtnawNCivqtozspIDsmrANCivqtozsooXsl7ANCivqtozsmIHtmIENCivqtozrs7XsmqkNCivqtozspIDsmrANCivqtozsmIHsl7ANCivqtozqt7zsiJgNCivqtozsnqzqt7wNCivqtozspIDsnbwNCivqtozsmrDqt7wNCivqtozrs5Hsi50NCivqtozsmKXsoJwNCivqtozspIDsnbwNCivqtozso7zssKwNCivqtozsmqnrs5ENCivqtozrrLjtmZQNCivqtozspIDsnbwNCivqtozspJHtmLgNCivqtozquLDtg5wNCivqtozqt5zquLgNCivqtozspJHqt5wNCivqtoztmJXssqANCivqtozquLDtmLgNCivqtozrqoXrr7wNCivqtozspJHquLANCivqtozsmqnri6wNCivqtozsg4Hrj4QNCivqtozqsIDtlYQNCivqtozspJHquLANCivqtozsiJztmZQNCivqtozslrXtmIQNCivqtozsiJjsiJkNCivqtozspJHri6wNCivqtoztmY3sl7ANCivqtozsi6DstpgNCivqtozqsr3si50NCivqtozspJHrjIANCivqtozsgrzsiJgNCivqtozsnqzshJ0NCivqtozsnKTsnbUNCivqtozspJHrjIANCivqtozsnqzshKANCivqtozsnqzrqoUNCivqtozrrLTshLENCivqtozspJHrp4wNCivqtozsiJzshJ0NCivqtozrj4jtmZgNCivqtozqs4Tsl7ANCivqtozspJHsg4ENCivqtozsooXstpwNCivqtozsnqXqtowNCivqtozrqoXsl7QNCivqtozspJHsg4ENCivqtozslYjsp4QNCivqtozsnITsnqwNCivqtoztmITsm5ANCivqtozspJHshJ0NCivqtozsirntkZwNCivqtozrjZXsnZENCivqtozrs5Hrk50NCivqtozspJHsl7QNCivqtozrs5Hqt6ANCivqtozshLHqsr0NCivqtozsmIHsnpANCivqtozspJHsl7QNCivqtozqsr3qsIENCivqtozsnqXstpwNCivqtozrtInsm4UNCivqtozspJHssqANCivqtoztj4nssqANCivqtoztmLjshJ0NCivqtozqsr3snbUNCivqtozspJHtmZQNCivqtozsmIHri6gNCivqtozqt7zspIANCivqtozrs7TsoJUNCivqtozsp4DsmIENCivqtozsiJzsooUNCivqtozqt4DsmrENCivqtozqs4TquLgNCivqtozsp4Tsg4ENCivqtozsmrDsnoQNCivqtozssqDssqANCivqtozsooXsi6ANCivqtozssKjrgqgNCivqtozstpjquLANCivqtozsiJjsl7QNCivqtozrgqjsl7ANCivqtozssKjsiKANCivqtozrtInsiJgNCivqtoztmITsl7QNCivqtozsooXsmqkNCivqtozssKjsl7ANCivqtozquLjsnbQNCivqtozsnqXsl7QNCivqtozrr7jsiJwNCivqtozssL3quLANCivqtozsoJXsm5QNCivqtozshJ3rk50NCivqtozsmrTroZ0NCivqtozssL3si50NCivqtoztnaXsnbQNCivqtozshLHtmLgNCivqtozsmIHsmrENCivqtozssL3tmZQNCivqtozsp4TrtIkNCivqtozsoJXrsLANCivqtozshLjsiJgNCivqtozstpjqtoENCivqtozsirnsmrQNCivqtozrr7zsmKUNCivqtozqsr3smrANCivqtozstpjsi50NCivqtozrrLjtkZwNCivqtozspIDtm4gNCivqtozssKjsnqwNCivqtozstpjsi50NCivqtozsg4Hsl7QNCivqtozsg4Hsi50NCivqtozshLHrsLANCivqtozstpjsmKQNCivqtoztlZzquLANCivqtozsg4Hqt7wNCivqtozsmIHsnoQNCivqtozstpjsnpANCivqtozsnYTrspQNCivqtozquIjsiJgNCivqtoztlbTrqqkNCivqtozstpjsnpANCivqtozsmIHtmLgNCivqtozspIDtmZQNCivqtozrs7XsiJgNCivqtozstpjsnpANCivqtozsjI3tlYQNCivqtozsooXshK0NCivqtozsmIHsl6wNCivqtozstpjtg5wNCivqtozsiJzqtawNCivqtoztlbTssqANCivqtozquLjtnawNCivqtozsuaDrp4wNCivqtozsooXsobANCivqtoztmZjsiJgNCivqtozqt7zrtIkNCivqtoztg5zqtIANCivqtozshozshLENCivqtozqsr3smKUNCivqtozsg4Hqt6ANCivqtoztg5zqtIANCivqtozrqoXtm4gNCivqtozsooXssqANCivqtozrqoXsiJkNCivqtoztg5zqta0NCivqtoztg5zqt5wNCivqtozsg4HsspwNCivqtozsnbjsiJgNCivqtoztg5zqt7wNCivqtozso7ztmLgNCivqtozsmqnrsLANCivqtozrp4ztmLgNCivqtoztg5zri6wNCivqtozrqoXqtawNCivqtozsmIHqtIANCivqtozsmIHstpwNCivqtoztg5zrj5kNCivqtozssL3sm4UNCivqtozrs5HssqANCivqtoztmLjsiJkNCivqtoztg5zsg50NCivqtozrjZXsnqwNCivqtozrgpzrrLgNCivqtoztnazrjZUNCivqtoztg5zsiJkNCivqtozsg4HshJ0NCivqtozsm5DslZQNCivqtoztlZnsmbgNCivqtoztg5zsiKANCivqtozrj5ntm4gNCivqtozrj5nrqoUNCivqtozsoJDtnawNCivqtoztg5zsi50NCivqtozsoJXtnawNCivqtoztg5zshJ0NCivqtozsnKTqt7wNCivqtoztg5zsi50NCivqtozsg4HquLANCivqtoztg5zsiJkNCivqtozrspTsnbgNCivqtoztg5zslZQNCivqtozsoJDshLENCivqtozsmIHshKANCivqtozshLHsgrwNCivqtoztg5zsmqkNCivqtozrtIntnaANCivqtozsi5zssqANCivqtozsnZjrk50NCivqtoztg5zsmrANCivqtozrs5HsmKUNCivqtozqsr3si50NCivqtozsiJjsl70NCivqtoztg5zsm5ANCivqtozsiJjqtIANCivqtozsoJXrtIkNCivqtozsnqzsnbwNCivqtoztg5zsnbwNCivqtozsmIHtnawNCivqtozrrLjtmZgNCivqtozspJHshJ0NCivqtoztg5zsoJUNCivqtoztg5ztmIQNCivqtozsirntm4gNCivqtozsmIHsm5ANCivqtoztg5zsooUNCivqtozsmIHsmIENCivqtozsnqztmZgNCivqtozsnqXrtIkNCivqtoztg5zssL0NCivqtoztmITsl7QNCivqtozsoJXrqoUNCivqtozruJ3rj4QNCivqtoztg5zssqANCivqtozshLHri6gNCivqtozshJ3smrENCivqtozsg4HrtoQNCivqtoztg5zssqANCivqtozsoJXqsJENCivqtozroZ3siJgNCivqtoztmITsnbQNCivqtoztg5ztl4wNCivqtozrrLTshLENCivqtozspJHqt7wNCivqtozsmIHshK0NCivqtoztg5ztmY0NCivqtozrp4zsnbwNCivqtozsoJXrp4wNCivqtozsmIHtmZQNCivqtoztg5ztnJgNCivqtozsmrDqtawNCivqtozquLDsgrANCivqtozssKzsi50NCivqtoztg5ztnawNCivqtozsooXrj5kNCivqtozsmIHqsbQNCivqtozsspzsmqkNCivqtoztg53sooUNCivqtozrs5Hrp4wNCivqtozspIDsnqwNCivqtozrqqjrj4QNCivqtoztjJDsiJwNCivqtozsmqnsl7ANCivqtozstqnsiJgNCivqtozsmIHsi50NCivqtoztlbTssqANCivqtoztg5zsmqkNCivqtoztg5zssqANCivqtozsnqzsp4QNCivqtoztmIHrj5kNCivqtozsmIHslpENCivqtozsjI3soJUNCivqtozrrLTshK0NCivqtoztmIHrpaANCivqtozqsr3stpgNCivqtozsm5DsgrwNCivqtozsoJXquLANCivqtoztmIHsmrANCivqtoztmITtmLgNCivqtozsnqXsoJwNCivqtozslpHsm5ANCivqtoztmIHsnbwNCivqtozqsr3sobANCivqtozsmqnsiJwNCivqtozsjI3tlZgNCivqtoztmIHsooUNCivqtozsp4Tsi6ANCivqtoztnazshKANCivqtozshLHssqANCivqtoztmIHtg5wNCivqtoztmJXsi50NCivqtozsgrzsnpANCivqtozrp5DsiJkNCivqtoztmIHtmLgNCivqtozrs7XrnpgNCivqtozsm5DqtawNCivqtozsnbzsiJwNCivqtoztmIHtm4gNCivqtozsooXrj5kNCivqtozsg4HtnawNCivqtozquLDsiJwNCivqtoztmITsiJwNCivqtozsooXtmIQNCivqtozshozsobANCivqtozshJ3smqkNCivqtoztmY3quLANCivqtozrs5HsspwNCivqtozshJ3quLANCivqtozqtZDrnpgNCivqtoztmY3quLANCivqtozsiJzshK0NCivqtozsoJDquLgNCivqtozsnqztmLgNCivqtoztmZTsnpANCivqtozshLHsiJwNCivqtoztlbTrgqgNCivqtozqtazssKgNCivquIjquLDsiJkNCivquIjshLHsiJgNCivquIjqsr3shLgNCivquIjquIjqt7wNCivquIjshLjtmZgNCivquIjsmIHsmqkNCivquIjqsr3qta0NCivquIjsoJXso7wNCivquIjsnoTrhYQNCivquIjqt7zsmrANCivquIjtg5ztnawNCivquIjsiJzsmrANCivquIjsnqztmIQNCivquIjrp5DstpwNCivquIjtmLjsiJgNCivquIjrhbjtnawNCivquIjsnqztmLgNCivquIjsnqztmZgNCivquIjrs5HsiJwNCivquIjrs5HsiJwNCivquLDqtJHshK0NCivquLDqt4DrtIkNCivquLDsnqzslpENCivquLDrj5nsiJwNCivquLDqtJHshK0NCivquLDshLHqt7wNCivquLDtmITtnawNCivquLDsnqztmZQNCivquLDqtJHshK0NCivquLDsmIHshKANCivquLDsi5zshKANCivquLDshJ3tmLgNCivquLDqtozshK0NCivquLDsoJXrqqgNCivquLDshKDsoJwNCivquLDsp4Tqs6QNCivquLDrgqjshK0NCivquLDsp4TsnoQNCivquLDsmqnsiJwNCivquLDshLHtmY0NCivquLDrp5DsnoQNCivquLDsooXqt7wNCivquLDtg5ztnJgNCivquLDsg4HspIANCivquLDrrLTshK0NCivquLDsnqzsnqwNCivquLDrrLTtl4wNCivquLDshozrjIANCivquLDrspTshJ0NCivquLDshLHrspQNCivquLDsoJDsg50NCivquLDslrjsiJwNCivquLDshLHtmIQNCivquLDsnbjrj4wNCivquLDsnoTsp4ANCivquLDsoJXshKANCivquLDshLjqta0NCivquLDsirnrtIkNCivquLDssqDtm4gNCivquLDssqDshK0NCivquLDshLjroZ0NCivquLDrjIDtg5wNCivquLDsoJXshJ0NCivquLDsnKTqsr0NCivquLDshLjroZ0NCivquLDssL3tmIQNCivquLDsooXrj4QNCivquLDsoJXshLENCivquLDshLjrrLgNCivquLDshLHspJENCivquLDsg4HsiJwNCivquLDsmrHsobANCivquLDshLjspIANCivquLDsg4HsspwNCivquLDrjZXsgrANCivquLDrtoTqtJENCivquLDsi6Dqta0NCivquLDsmqnsiJgNCivquLDqt7zslYUNCivquLDso7ztm4gNCivquLDsmrDqt7wNCivquLDrr7jsmrANCivquLDrs5HtmIQNCivquLDsooXsiJgNCivquLDsmrDri6wNCivquLDsmIHsnKQNCivquLDqt5zrjIANCivquLDrj5ntlZgNCivquLDsmrDrtIkNCivquLDrs5HshJ0NCivquLDrrLTtmIQNCivquLAg7JuQDQor6riw7Jqw67aEDQor6riw7LC96rOkDQor6riw7KKF6raMDQor6riw7YOc7Z2sDQor6riw7Jqw7IicDQor6riw7Z2s7YOcDQor6riw7JuU7KeEDQor6riw66qF6rOkDQor6riw7Jqw7KKFDQor6riw64us7JewDQor6riw64W464+MDQor6riw7JiB7IiZDQor6riw7Jqw7KO8DQor6riw7Jil656ADQor6riw7ZW07KGwDQor6riw7IiY7LacDQor6riw7Jqw7LKgDQor6riw7KKF7JqxDQor6riw7KKF66GADQor6riw64+Z7KSADQor6riw7Jqw7ZW0DQor6riw64yA7JuQDQor6riw7YyQ7ISdDQor6riw7IK87ISdDQor6riw7J247ZiEDQor6riw7Jqx6recDQor6riw7KKF7JqwDQor6riw7IK87KeEDQor6riw7J247Z2sDQor6riw7KO87KGwDQor6riw7YyQ6rWtDQor6riw7KKF7KeEDQor6riw7J287ISgDQor6riw7ISx7JqpDQor6riw7ZmN7JqpDQor6riw7J2A6ri4DQor6riw7KCQ7ZmYDQor6riw7KCQ7JqpDQor6riw6rK97JiBDQor6riw7KeE7IudDQor6riw7KCV7IStDQor6riw7ZWZ7ISdDQor6riw7KSA65OdDQor6riw7ISx7Z2sDQor6riw7KKF7ISdDQor6riw7YOc7IOdDQor6riw7J6s7ISgDQor6riw7JmE66+4DQor6riw7KSA7ISdDQor6riw7Jyg67SJDQor6riw67OR6recDQor6riw7KKF7ZiEDQor6riw7KeE7JewDQor6riw7Iq57JeFDQor6riw7LaY7Je0DQor6riw6riw7KO8DQor6riw7LKt6ri4DQor6riw7ISg7Zi4DQor6riw7YyQ7Zi4DQor6riw7Jil7IudDQor6riw7ZaJ64KoDQor6riw7KeE7LacDQor6riw64+E7KKFDQor6riw6re86rOkDQor6riw7Zqo7JewDQor6riw64K07Jq0DQor6riw7KeE7LacDQor6riw7KeE7Je0DQor6riw7Z2s7ISdDQor6riw7KCV7LKcDQor6riw7YOc67O1DQor6riw7Iah7YOcDQor6ri47ISd7ZmYDQor6ri47J287JuQDQor6ri47Iq57KeEDQor6ri466qF7KGwDQor6rmAIOuTsQ0KK+q5gOqwkeyEoA0KK+q5gOydmOyImA0KK+q5gOyYpOyXtA0KK+q5gCDshLENCivquYDrgqjsiJgNCivquYDqs6Hrs7UNCivquYDrqoXsmYQNCivquYAg7ISxDQor6rmA7JiB7JilDQor6rmA64+Z6re8DQor6rmA6rSR6recDQor6rmAIOyaqQ0KK+q5gOyIoOuPmQ0KK+q5gOq4sOy2mA0KK+q5gOq4sOyaqQ0KK+q5gCDsm5ANCivquYDsiJzrrLUNCivquYDrgqjqtZANCivquYDtnaztm4gNCivquYAg7JykDQor6rmA6rSR6riwDQor6rmA7LKg7J6QDQor6rmA7Jik6rOkDQor6rmAIOyduA0KK+q5gOyiheq4uA0KK+q5gOyEse2YhA0KK+q5gO2DnOunjA0KK+q5gCDssq0NCivquYDsmqnshLENCivquYDsnqzsspwNCivquYDsmIHtmZgNCivquYAg7ZiBDQor6rmA7Jew7J28DQor6rmA66+47Z2gDQor6rmA7ZmU6riwDQor6rmAIO2YhA0KK+q5gOyKueuemA0KK+q5gOyWte2YuA0KK+q5gOykke2YlQ0KK+q5gCDtmLgNCivquYDquLDrgqgNCivquYDrqoXqs6QNCivquYDsmrTrj5kNCivquYAg7ZuIDQor6rmA7ISd7JqpDQor6rmA7J287JqpDQor6rmA7JiB7LKgDQor6rmA6rCA7Z2sDQor6rmA7ZW06rK9DQor6rmA67SJ7LKgDQor6rmA7KCV7J6QDQor6rmA6rCB7KSRDQor6rmA7J6s65GQDQor6rmA7LaY7IiYDQor6rmA7LKt7Zy0DQor6rmA6rCR66OhDQor6rmA7ISx66qoDQor6rmA7LaY7IudDQor6rmA6rCR7ZmYDQor6rmA6rCR66eMDQor6rmA7KKF7JilDQor6rmA7KKF7IudDQor6rmA7Zic6rCRDQor6rmA6rCR66y4DQor6rmA642V66GdDQor6rmA66qF7KeBDQor6rmA6rec7YOcDQor6rmA6rCR7IOdDQor6rmA7Jyk7IudDQor6rmA67OR7KCVDQor6rmA7KKF64KoDQor6rmA6rCR7IiYDQor6rmA7KeE7ISdDQor6rmA7Iic6regDQor6rmA7Z2s7ZmYDQor6rmA6rCR7IiYDQor6rmA6rK97KSRDQor6rmA7JiB7IiYDQor6rmA7ZW07LKgDQor6rmA6rCR7IicDQor6rmA67OR7Zi4DQor6rmA7J246rWsDQor6rmA6riw7IK8DQor6rmA6rCR7JewDQor6rmA7ZmY64+ZDQor6rmA642V66qoDQor6rmA7IOB7JiBDQor6rmA6rCR7KO8DQor6rmA6rK97KCVDQor6rmA7LC97Z2gDQor6rmA7J6s7Jq0DQor6rmA6rCR7KSADQor6rmA7JiB66qoDQor6rmA7ZWE6recDQor6rmA7Iic7ZWZDQor6rmA6rCR7KeEDQor6rmA7J6l7ZiEDQor6rmA7YOc7IiYDQor6rmA7Jik67KUDQor6rmA6rCR7KeEDQor6rmA65GQ6ri4DQor6rmA7Jew7ZWEDQor6rmA6rK97IicDQor6rmA6rCR7ZiEDQor6rmA7KKF7J6QDQor6rmA7YOc7Zi4DQor6rmA7KKF7IudDQor6rmA6rCV642VDQor6rmA7Z2l7JuQDQor6rmA7JuQ7LaYDQor6rmA7J247JikDQor6rmA6rCV7IiYDQor6rmA7KO87J6QDQor6rmA7IOB7ZmYDQor6rmA7ZiE66a8DQor6rmA6rCV7IudDQor6rmA66+47IiYDQor6rmA7YyQ7Zi4DQor6rmA6rK97IiYDQor6rmA6rCV7ZaJDQor6rmA6rSR7ZGcDQor6rmA7JiB7ZiEDQor6rmA7Zic64uIDQor6rmA6rCV7Zi4DQor6rmA66y07ZiEDQor6rmA67O07Z2sDQor6rmA7LC97Zi4DQor6rmA6rCV7ZmUDQor6rmA7LaY7JiBDQor6rmA7KeE7JewDQor6rmA7JeF7J6QDQor6rmA6rCc7ISgDQor6rmA7Zqo7KGwDQor6rmA7ISx7LKgDQor6rmA67O07JykDQor6rmA6rG06rCcDQor6rmA67OR67SJDQor6rmA7Zi47IigDQor6rmA7J6s7J28DQor6rmA6rG06riwDQor6rmA7Jqp7IiYDQor6rmA7ISg7IOBDQor6rmA7ISx6ri4DQor6rmA6rG0642VDQor6rmA7ISd7J24DQor6rmA7KCB64+EDQor6rmA7J6s7LKcDQor6rmA6rK96rWsDQor6rmA7LKg7IiYDQor6rmA7Jqp66WgDQor6rmA7IOB7IiYDQor6rmA6rK964+EDQor6rmA7KSA7KO8DQor6rmA6re87JiBDQor6rmA7ISx7JuQDQor6rmA6rK9656ADQor6rmA7J2A7Jq0DQor6rmA7J6s7JewDQor6rmA64yA7IudDQor6rmA6rK966GADQor6rmA64us7Zi4DQor6rmA7IS47ZmNDQor6rmAIOyImA0KK+q5gOqyveunjA0KK+q5gOyEseydvA0KK+q5gOuNleyaqQ0KK+q5gOyEneyImQ0KK+q5gOqyveyDgQ0KK+q5gOunjO2DnA0KK+q5gOyepeyImA0KK+q5gOuqhe2ZlA0KK+q5gOqyveyEnQ0KK+q5gOyiheyImA0KK+q5gOyImOyglQ0KK+q5gOq3nO2YhA0KK+q5gOqyveyImA0KK+q5gOyihe2YuA0KK+q5gOybkOugqA0KK+q5gOyYge2ZlA0KK+q5gOqyveyImA0KK+q5gOyaqeyImA0KK+q5gOyYgeyImA0KK+q5gOyiheyImA0KK+q5gOqyveyImA0KK+q5gOyihe2DnQ0KK+q5gOyEseyEoA0KK+q5gOuPmeyaqQ0KK+q5gOqyveyImA0KK+q5gOyekeq1kA0KK+q5gOyYgeq3nA0KK+q5gOq0keqyrA0KK+q5gOqyveyImA0KK+q5gOq1kOyhsA0KK+q5gOyduOuNlQ0KK+q5gOq2jOykgA0KK+q5gOqyveyImQ0KK+q5gOyYgeyekA0KK+q5gO2DnOybkA0KK+q5gO2DnO2YhA0KK+q5gOqyveyLnQ0KK+q5gOyihe2YuA0KK+q5gOyaqeyInA0KK+q5gOyerOyekA0KK+q5gOqyveyVlA0KK+q5gOq1req1sA0KK+q5gOycpOyhsA0KK+q5gO2MkO2YuA0KK+q5gOqyveyVoA0KK+q5gOuRkOuNlQ0KK+q5gOqwke2ZqQ0KK+q5gOuPme2YuA0KK+q5gOqyveyVoA0KK+q5gOyjvO2VhA0KK+q5gOustOq4iA0KK+q5gOyDge2YuA0KK+q5gOqyveyYpA0KK+q5gOqyveycpA0KK+q5gOuzteuztQ0KK+q5gO2XjOyerA0KK+q5gOqyveyYpA0KK+q5gOyWuOyEoA0KK+q5gOydvOybhQ0KK+q5gOustO2drA0KK+q5gOqyveyYpQ0KK+q5gO2DnOq2jA0KK+q5gOyYgeq0gA0KK+q5gO2VmOyyoA0KK+q5gOqyveyasA0KK+q5gOyImOy2nA0KK+q5gOycpOyekA0KK+q5gOyLnOq3nA0KK+q5gOqyveybkA0KK+q5gO2DnO2MlA0KK+q5gO2MlOyDgQ0KK+q5gOq0ke2YhA0KK+q5gOqyveybkA0KK+q5gOycpOuztQ0KK+q5gOygleu2hA0KK+q5gOyEseyYpA0KK+q5gOqyveyduA0KK+q5gOyerOyEoA0KK+q5gOyEseuNlQ0KK+q5gOuLrOq3oA0KK+q5gOqyveyekA0KK+q5gO2ZlOuTnQ0KK+q5gOyYgeyasA0KK+q5gOq0keydtA0KK+q5gOqyveyekA0KK+q5gOyEneyerA0KK+q5gOusuOyDnQ0KK+q5gOybkO2YhA0KK+q5gOqyveyekA0KK+q5gOyerOybkA0KK+q5gOy5oO2YhA0KK+q5gO2YhOyInA0KK+q5gOqyveyekA0KK+q5gOyEuO2drA0KK+q5gOuzke2YuA0KK+q5gOyerOyaqQ0KK+q5gOqyveyerA0KK+q5gOyerOq0gA0KK+q5gOuvuO2ZjQ0KK+q5gOyihe2YuA0KK+q5gOqyveyhsA0KK+q5gOyihe2VmQ0KK+q5gOuzuOyYgQ0KK+q5gOyEuOyasA0KK+q5gOqyveyhsA0KK+q5gOuqheyImA0KK+q5gOyYgeyEoA0KK+q5gOyehOuPjA0KK+q5gOqyveyihQ0KK+q5gOynhOyduA0KK+q5gOynhOuPmQ0KK+q5gOyDge2DnA0KK+q5gOqyve2DnA0KK+q5gOydvOyEnQ0KK+q5gOq1re2DnQ0KK+q5gOykke2ZmA0KK+q5gOqyve2DnA0KK+q5gOyyoO2drA0KK+q5gOyInO2drA0KK+q5gOyDgeq3vA0KK+q5gOqyve2DnA0KK+q5gOuPmeuylA0KK+q5gOyWkeq4sA0KK+q5gOyImOyDnQ0KK+q5gOqyve2DnA0KK+q5gOyDgeqzhA0KK+q5gOyDgeuPmQ0KK+q5gOyerOqzpA0KK+q5gOqyve2MlA0KK+q5gOyDgeynhA0KK+q5gOyXrOyEnQ0KK+q5gOyiheyatA0KK+q5gOqyve2YuA0KK+q5gOyerO2DnQ0KK+q5gOyerOy2nA0KK+q5gOyjvOyImA0KK+q5gOqyve2YuA0KK+q5gOywveyjvA0KK+q5gOyYgeykgA0KK+q5gOuRkO2YuA0KK+q5gOqyve2YuA0KK+q5gOy2mOq3nA0KK+q5gOqyveyInA0KK+q5gOyLnO2VnA0KK+q5gOqyve2ZmA0KK+q5gO2Vme2DnQ0KK+q5gOyerOy2nA0KK+q5gO2DnO2YhA0KK+q5gOqyve2ZmA0KK+q5gOyaqeyLpA0KK+q5gOq0keyngA0KK+q5gOunieyInA0KK+q5gOqyve2drA0KK+q5gOydvOyImA0KK+q5gOygleyYgQ0KK+q5gOy2mOyImQ0KK+q5gOqyve2drA0KK+q5gOyYgeyaqQ0KK+q5gO2DnOyViA0KK+q5gO2VhOyVoA0KK+q5gOqyve2drA0KK+q5gOykgOuwqQ0KK+q5gOyerO2ZmA0KK+q5gOy+jOq3vA0KK+q5gOqyve2drA0KK+q5gOuLrOyhsA0KK+q5gO2YhOq3nA0KK+q5gOyaqeybkA0KK+q5gOqyve2drA0KK+q5gOustOyImA0KK+q5gOyGjOyekA0KK+q5gOu0ieyasQ0KK+q5gOqyve2drA0KK+q5gOyYgeq1rQ0KK+q5gOyDgeuPmQ0KK+q5gOyerOyekA0KK+q5gOqzhOycpA0KK+q5gOyDgeyInA0KK+q5gOygleyLnQ0KK+q5gOygleyVlA0KK+q5gOqzhO2DnQ0KK+q5gOyiheydvA0KK+q5gOynhOq3uQ0KK+q5gOyEseyasA0KK+q5gOqzhO2VnA0KK+q5gOykkeyekA0KK+q5gOydgO2ZjQ0KK+q5gOyYge2YuA0KK+q5gOqzhO2YuA0KK+q5gOydvOyaqQ0KK+q5gOygleyErQ0KK+q5gOyerOyEoA0KK+q5gOqzteyjvA0KK+q5gOybkOyLnQ0KK+q5gOyInOyyoA0KK+q5gOq4sO2ZmA0KK+q5gOq0gOuRkA0KK+q5gOygkO2drA0KK+q5gOyaqeynhA0KK+q5gOywqOyImA0KK+q5gOq0gOyYgQ0KK+q5gO2YuO2ZmA0KK+q5gO2YuO2VmA0KK+q5gOybkO2doA0KK+q5gOq0gOyasA0KK+q5gOykke2YlQ0KK+q5gOyEoOyEnQ0KK+q5gOustOuPmQ0KK+q5gOq0gOydtA0KK+q5gOyEneq4sA0KK+q5gOyLoOuPhA0KK+q5gOynhO2VmA0KK+q5gOq0keqzpA0KK+q5gOyImOyXvQ0KK+q5gOyaqeybhQ0KK+q5gOyInOyImQ0KK+q5gOq0keq3nA0KK+q5gO2drO2ZmA0KK+q5gOq4sO2dpQ0KK+q5gOq1rOuPhA0KK+q5gOq0keuNlQ0KK+q5gOq4uOq3vA0KK+q5gOygleq2jA0KK+q5gOyerOyXtA0KK+q5gOq0keuPmQ0KK+q5gOyjvO2DnQ0KK+q5gOustO2drA0KK+q5gOydgOq1rA0KK+q5gOq0keuRkA0KK+q5gOygle2drA0KK+q5gOyerOq2jA0KK+q5gOq0keyaqQ0KK+q5gOq0keyEnQ0KK+q5gOywveyKuQ0KK+q5gOyKueuFgA0KK+q5gOyDgeyLnQ0KK+q5gOq0keyEnQ0KK+q5gOuzkeyyoA0KK+q5gOyYgeuPmQ0KK+q5gOyjvOyekA0KK+q5gOq0keyImA0KK+q5gOuPmeq4uA0KK+q5gOuPhOu0iQ0KK+q5gOyerOyyoA0KK+q5gOq0keyImA0KK+q5gO2DnOyEnQ0KK+q5gOyWkeyLnQ0KK+q5gOuPhOqyvQ0KK+q5gOq0keyImA0KK+q5gOyEseyImA0KK+q5gOy2mOyasA0KK+q5gOu2hOyhsA0KK+q5gOq0keyImA0KK+q5gOygleyIoA0KK+q5gOq0ke2ZlA0KK+q5gO2ZlO2YuA0KK+q5gOq0keyImA0KK+q5gOq3ueyatA0KK+q5gOu2hO2ZmA0KK+q5gOuRkO2YuA0KK+q5gOq0keyImA0KK+q5gO2VtO2PrA0KK+q5gOynhOyLnQ0KK+q5gOuhneuTnQ0KK+q5gOq0keyImA0KK+q5gOuzkeyImA0KK+q5gOyEseqyvQ0KK+q5gOyyoO2biA0KK+q5gOq0keyLnQ0KK+q5gOq4iO2ZmA0KK+q5gOyerOyLnQ0KK+q5gOydvO2YhA0KK+q5gOq0keyXsA0KK+q5gOuPmeyyoA0KK+q5gOyerOyImA0KK+q5gOqwleq4sA0KK+q5gOq0keyXsA0KK+q5gOykgO2ZlA0KK+q5gOuNleyhsA0KK+q5gOyEseuemA0KK+q5gOq0keyXtA0KK+q5gOuzkeyasA0KK+q5gOqyveq3nA0KK+q5gOy2mOyerA0KK+q5gOq0keyXtA0KK+q5gO2YleyErQ0KK+q5gOuLrOu5iA0KK+q5gOyEseu0iQ0KK+q5gOq0keyXvQ0KK+q5gOyYgeq3oA0KK+q5gOyEseybkA0KK+q5gOyInOugqA0KK+q5gOq0keyYgQ0KK+q5gOqwkeyjvA0KK+q5gO2WieyyoA0KK+q5gOywqOq4uA0KK+q5gOq0keyYgQ0KK+q5gOq3nOyatA0KK+q5gOygle2YuA0KK+q5gOyerOyImA0KK+q5gOq0keyYgQ0KK+q5gOykgOyLnQ0KK+q5gO2DnOydtA0KK+q5gOyaqeu2hA0KK+q5gOq0keyasA0KK+q5gOqyveyImA0KK+q5gOq4sOqzpA0KK+q5gOyjvOuMgA0KK+q5gOq0keybhQ0KK+q5gOyasOyehA0KK+q5gOyasO2ZjQ0KK+q5gOyYgeyErQ0KK+q5gOq0keybhQ0KK+q5gOqwkeyekA0KK+q5gOqxtOyImA0KK+q5gO2drOyhsA0KK+q5gOq0keybhQ0KK+q5gOuvvOy5oA0KK+q5gOyGjOyImA0KK+q5gO2drO2aqA0KK+q5gOq0keybhQ0KK+q5gOqyveyImA0KK+q5gOq0keq3vA0KK+q5gOyaqeuhnQ0KK+q5gOq0keycpA0KK+q5gOyWkeyxhA0KK+q5gOydvOyEnQ0KK+q5gOynhO2ZmA0KK+q5gOq0keydvA0KK+q5gOqwkeykkQ0KK+q5gO2YuOyImA0KK+q5gOygleuqqQ0KK+q5gOq0keydvA0KK+q5gOyDgeyasA0KK+q5gOyerOyyoA0KK+q5gOq4sOyImA0KK+q5gOq0keyhsA0KK+q5gO2DnOuwsA0KK+q5gOyduOyaqQ0KK+q5gOqyveyInA0KK+q5gOq0keynhA0KK+q5gO2DnOyImA0KK+q5gOyYpOyZhA0KK+q5gOqxtOuPhA0KK+q5gOq0ke2DnQ0KK+q5gOyCvOyImA0KK+q5gOqyveyngQ0KK+q5gO2aqOyVlA0KK+q5gOq0ke2DnQ0KK+q5gOq4sO2ZlA0KK+q5gOywrO2YhA0KK+q5gOyImOyEoA0KK+q5gOq0ke2YhA0KK+q5gOuPmeyaqQ0KK+q5gOyEuO2ZmA0KK+q5gOyerOyatA0KK+q5gOq0ke2YuA0KK+q5gOuFuOuvvA0KK+q5gOyaqeyImA0KK+q5gOyInOuFhA0KK+q5gOq0ke2YuA0KK+q5gOqyveyasA0KK+q5gOyihe2WpQ0KK+q5gOustOyImA0KK+q5gOq0ke2ZlA0KK+q5gOygle2YuA0KK+q5gOyyoO2VmQ0KK+q5gOqwleuPiA0KK+q5gOq0ke2ajA0KK+q5gOyXsOyatA0KK+q5gOyehOq2jA0KK+q5gOyEseyhsA0KK+q5gOq0ke2aqA0KK+q5gOuqheyKuQ0KK+q5gOydvOybhQ0KK+q5gOunkO2YuA0KK+q5gOq0ke2drA0KK+q5gOyEoOyasA0KK+q5gOyInOq4uA0KK+q5gO2VtOyCvA0KK+q5gOq1kOudvQ0KK+q5gOyYgeybkA0KK+q5gOyEne2ZmA0KK+q5gOydvOyjvA0KK+q5gOq1kOyInA0KK+q5gOuMgOyXtA0KK+q5gOyYgeyErQ0KK+q5gCDsl7QNCivquYDqtZDspIANCivquYDqt7zso7wNCivquYDsg4Hrj4QNCivquYDquLDrsLANCivquYDqtZDspIANCivquYDtlZzqt5wNCivquYDsooXssqANCivquYDspJHqtIANCivquYDqtZDtg5wNCivquYDtlZzrrLgNCivquYDsmIHsi50NCivquYDquLDshJ0NCivquYDqtZDtnawNCivquYDssKjsl7QNCivquYDsmIHtmLgNCivquYDqsr3quLANCivquYDqtazrtIkNCivquYDshKDqt5wNCivquYDsp4Tsi50NCivquYDsmqnrjZUNCivquYDqtaztmIQNCivquYDsnbTsmrANCivquYDsm5Dqt7wNCivquYDsooXsm4UNCivquYDqtaztmIQNCivquYDqtJHsi50NCivquYDsg4HssqANCivquYDrs7XrqqkNCivquYDqta3rj5kNCivquYDstpjsg4ENCivquYDrp4zqt7wNCivquYDrs5HshKANCivquYDqta3rj5kNCivquYDrj4TsiJgNCivquYDshLHso7wNCivquYDquLDtl4wNCivquYDqtbDrgqgNCivquYDrp4zsiJgNCivquYDsooXsmrENCivquYDsmIHshKANCivquYDqtbDsnpANCivquYDsnKTsnpANCivquYDsmIHrs7UNCivquYDrtInshKQNCivquYDqtozsi50NCivquYDsiJzsnqwNCivquYDtlYTsnpANCivquYDrjZXtlqUNCivquYDqt4DqtIANCivquYDsi6DtlZkNCivquYDquLDshKANCivquYDssqDsnYANCivquYDqt4DrgqgNCivquYDsg4Hsl7QNCivquYDtnazsmIENCivquYDsnbzsl7ANCivquYDqt4DrjZUNCivquYDsoJDrqqgNCivquYDsmqnrgpwNCivquYDquLjstpQNCivquYDqt4DshKANCivquYDtnazsnpANCivquYDsg4HshLENCivquYDqt5zsiJgNCivquYDqt4DsiJwNCivquYDsnqztmIQNCivquYDshJztmZgNCivquYDsirntlqUNCivquYDqt4Dsl7ANCivquYDsmIHsmqkNCivquYDtg5zsi50NCivquYDsg4HtmIQNCivquYDqt4Dsl7ANCivquYDsoJXsiJwNCivquYDsmbjqta0NCivquYDsnbztmLgNCivquYDqt4Dsl7QNCivquYDqsbTtmZgNCivquYDsoJXtmLgNCivquYDssL3sooUNCivquYDqt4DsmqkNCivquYDsp4TtmLgNCivquYDrs5HssqANCivquYDso7zsnpANCivquYDqt4DsobANCivquYDsoJXrgqgNCivquYDquLDsmKUNCivquYDsnZjsiJgNCivquYDqt5zrjIANCivquYDssqDsiJgNCivquYDrrLjso7wNCivquYDsmqnqt7wNCivquYDqt5zrsLANCivquYDsmIHtnLQNCivquYDspJHsiJgNCivquYDsgrzsi50NCivquYDqt5zsg4ENCivquYDtg5zshKwNCivquYDspIDsl7QNCivquYDqt5ztg50NCivquYDqt5zshK0NCivquYDsmIHsobANCivquYDrj5nqt5wNCivquYDsnqzrtoQNCivquYDqt5zshK0NCivquYDsg4HsiJgNCivquYDsi6Tsm5ANCivquYDsmIHsnKgNCivquYDqt5zshLENCivquYDrhbjshK0NCivquYDtmY3tmIQNCivquYDqtJHssqANCivquYDqt5zsmIENCivquYDsmqnsiJgNCivquYDshLjqtoENCivquYDrs5HsiJgNCivquYDqt5zsmrANCivquYDsmIHstpwNCivquYDtjJTqta0NCivquYDtmY3siJgNCivquYDqt5zsmrENCivquYDsnbjsmIENCivquYDsm5Dsp4QNCivquYDsm5DrrLgNCivquYDqt5zssqANCivquYDsmqnsnpANCivquYDquLDsiJgNCivquYDtlbTsl7ANCivquYDqt5zssqANCivquYDsi6DtmZgNCivquYDsirnsmqkNCivquYDsoJXqtowNCivquYDqt5zssqANCivquYDsooXrrLQNCivquYDso7zqt7wNCivquYDtg5ztmIQNCivquYDqt5zssqANCivquYDssL3qtowNCivquYDtlbTquLANCivquYDtmLjsi50NCivquYDqt5ztg5wNCivquYDsg4Hsl7QNCivquYDsmqnsmrANCivquYDshJ3tjJQNCivquYDqt5ztg5wNCivquYDqta3rjZUNCivquYDsnbTsnqwNCivquYDtmITsi50NCivquYDqt5ztmIQNCivquYDsmIHslYUNCivquYDtmLjsiJgNCivquYDspIDtmIQNCivquYDqt5ztmIQNCivquYDrspTqt7wNCivquYDsnqzqt7wNCivquYDshLHtmakNCivquYDqt5ztmIQNCivquYDrtInsi50NCivquYDrj5ntmLgNCivquYDsg4HsmIENCivquYDqt5ztmZgNCivquYDrr7jsp4QNCivquYDsiJjsiJgNCivquYDsmqnshKANCivquYDqt5ztnawNCivquYDrqoXrnb0NCivquYDssKjshKANCivquYDrkZDtmIQNCivquYDqt7zsg50NCivquYDrj5nrj4QNCivquYDtlZnshJ0NCivquYDqtJHsobANCivquYDqt7zsi50NCivquYDsoJXtmIQNCivquYDslaDrs7UNCivquYDsnqztmLgNCivquYDqt7zsi50NCivquYDsg4HqtZANCivquYDqta3rk50NCivquYDsnqzsnbUNCivquYDqt7zspJENCivquYDsp4Dtg5wNCivquYDsnKTqta0NCivquYDrtInsmrQNCivquYDqt7ztmLgNCivquYDsg4HsnqwNCivquYDsiJzrrLgNCivquYDsiJzsmIENCivquYDqt7ztmLgNCivquYDtmJzso7wNCivquYDsmIHsl7QNCivquYDtjJDsiJgNCivquYDquIjrgpwNCivquYDqtJHsmrANCivquYDqsr3rj4QNCivquYDqsr3siKANCivquYDquIjrs7QNCivquYDrhbjrj4QNCivquYDsoJXsoJwNCivquYDsmIHshLENCivquYDquIjshJ0NCivquYDtmZjtmIQNCivquYDrqoXsmrENCivquYDtlZzsm4UNCivquYDquIjshKANCivquYDsg4Hsi50NCivquYDquIjsmIENCivquYDtlbTtmZgNCivquYDquIjsiJwNCivquYDssKjssqANCivquYDshozsmKUNCivquYDtmY3rtIkNCivquYDquIjsiJwNCivquYDsg4HsoJwNCivquYDtnaztmZgNCivquYDsmIHsiJgNCivquYDquIjsiJwNCivquYDsooXslYUNCivquYDrqoXsl7QNCivquYDtg5ztmJUNCivquYDquIjsl7ANCivquYDsmqntmZgNCivquYDsnKTsmqkNCivquYDshLHrs7QNCivquYDquIjsl7ANCivquYDsmqntmLgNCivquYDrp4zsspwNCivquYDtlZnso7wNCivquYDquIjsmKUNCivquYDslaDshLENCivquYDsoJXsoJUNCivquYDtmY3smrANCivquYDquIjsmKUNCivquYDquLDshJ0NCivquYDrp4zrp4wNCivquYDsmqnsl7QNCivquYDquIjsmqkNCivquYDtg4DsnbwNCivquYDsuZjrtIkNCivquYDqtJHsnbwNCivquYDquIjsnbQNCivquYDqsr3qt7wNCivquYDsm5Dsp4QNCivquYDstpjsiJgNCivquYDquIjsnbQNCivquYDstpjsi50NCivquYDsnqzsg4ENCivquYDrspTqta0NCivquYDquIjsnbQNCivquYDsiJjqt5wNCivquYDsmrDtjJQNCivquYDsg4Hqt6ANCivquYDquIjsnpANCivquYDrtoTrj5kNCivquYDso7zsnbQNCivquYDtlbTqt5wNCivquYDquIjsnpANCivquYDqt7ztmIQNCivquYDshKDtlZkNCivquYDtlbTtmZgNCivquYDquIjtlZgNCivquYDsnbjtmJUNCivquYDtmqjshKANCivquYDsnYTtmakNCivquYDquI3tmLgNCivquYDssL3rk50NCivquYDsp4TsobANCivquYDqt5zrj4wNCivquYDquLDqs6ANCivquYDrj4jrsLANCivquYDrrLjsooUNCivquYDsnbjtlZgNCivquYDquLDqt6ANCivquYAg7ZmYDQor6rmA7YOc6rOkDQor6rmA7J6s7ZmYDQor6rmA6riw6regDQor6rmA7JiB7JuFDQor6rmA7ZW07J24DQor6rmA7IK87JikDQor6rmA6riw64WEDQor6rmA66y47J6QDQor6rmA7JiB7ISgDQor6rmA6rSR6recDQor6rmA6riw64WEDQor6rmA64+Z7J6QDQor6rmA7JiB67KUDQor6rmA67SJ7IicDQor6rmA6riw64WEDQor6rmA7J2467KUDQor6rmA6rCV7IicDQor6rmA7ZaJ7LKgDQor6rmA6riw642VDQor6rmA6riI7Jq0DQor6rmA7KCV7ZmYDQor6rmA7ZWE6riwDQor6rmA6riw642VDQor6rmA6rK97JqpDQor6rmA7ZmN7IiZDQor6rmA64+Z7IiYDQor6rmA6riw642VDQor6rmA6rK96regDQor6rmA65GQ7JilDQor6rmA7KCV7IStDQor6rmA6riw64+EDQor6rmA7J6s7Zi4DQor6rmA7JuQ7ZWcDQor6rmA7ZmN7J6QDQor6rmA6riw66+4DQor6rmA6rOh66eMDQor6rmA7J247J6sDQor6rmA7JWU7KO8DQor6rmA6riw67KUDQor6rmA6riw7ISdDQor6rmA7YOc64yADQor6rmA7Jq07IiYDQor6rmA6riw67ORDQor6rmA66eM6recDQor6rmA7Jqp66y4DQor6rmA7YOc7JewDQor6rmA6riw67SJDQor6rmA7Iic7KSRDQor6rmA6rec6riwDQor6rmA64+Z66eMDQor6rmA6riw67SJDQor6rmA6rSR6raMDQor6rmA7ZeM7IStDQor6rmA7J6l7IudDQor6rmA6riw67aEDQor6rmA66qF7ISgDQor6rmA67OR7IicDQor6rmA7IOB7ZuIDQor6rmA6riw7IK8DQor6rmA7Iic6rK9DQor6rmA7IOB7IiYDQor6rmA7JiB7IigDQor6rmA6riw7ISdDQor6rmA66eM7Z2sDQor6rmA7J6l64yADQor6rmA7IiY7KCVDQor6rmA6riw7ISdDQor6rmA7IOB7LKgDQor6rmA64+Z7Je0DQor6rmA7ISg7ZiEDQor6rmA6riw7ISgDQor6rmA6rSR64yADQor6rmA7JiB7Je0DQor6rmA7J2Y7IudDQor6rmA6riw7ISxDQor6rmA7Y+J7IiYDQor6rmA6riI656YDQor6rmA7Z2s7ZWYDQor6rmA6riw7IiYDQor6rmA7ZW067aEDQor6rmA7IaM64KoDQor6rmA7ISg6riwDQor6rmA6riw7IiYDQor6rmA7KCV7KSADQor6rmA6rSR64+ZDQor6rmA64+Z7JiBDQor6rmA6riw7IiYDQor6rmA7J6s66GdDQor6rmA7KKF7IiZDQor6rmA7LCo7IiYDQor6rmA6riw7IiYDQor6rmA7KKF7J6sDQor6rmA7JaR6rK9DQor6rmA7YOc6riwDQor6rmA6riw7IiYDQor6rmA7J6Q7J2ADQor6rmA7JiB7LKgDQor6rmA7ZWc7IudDQor6rmA6riw7IiYDQor6rmA7YOc7IiYDQor6rmA7ZiB7JikDQor6rmA7ISx7JiBDQor6rmA6riw7IicDQor6rmA7KSA7IiZDQor6rmAIOyLnQ0KK+q5gOyEseuzkQ0KK+q5gOq4sOyIoA0KK+q5gOydvOq3nA0KK+q5gOuzkeq2jA0KK+q5gOyaqe2VnA0KK+q5gOq4sOyIoA0KK+q5gOq0keybkA0KK+q5gO2DnOq3nA0KK+q5gOydmOyYpA0KK+q5gOq4sOyLnQ0KK+q5gO2DnOyImQ0KK+q5gOyInO2VmA0KK+q5gOq3nOq1rA0KK+q5gOq4sOyLnQ0KK+q5gOyDgeyEnQ0KK+q5gO2DnOyasA0KK+q5gOybkOycpA0KK+q5gOq4sOyLnQ0KK+q5gOygleyerA0KK+q5gO2aqOydvA0KK+q5gOynhOyEnQ0KK+q5gOq4sOyLnQ0KK+q5gOynhOyIoA0KK+q5gOuzkeyynA0KK+q5gOyaqe2biA0KK+q5gOq4sOyLnQ0KK+q5gOyerOyerA0KK+q5gOyYgeyXtA0KK+q5gOqyveyYpQ0KK+q5gOq4sOyXsA0KK+q5gOyYgeqxtA0KK+q5gOq3vOyInA0KK+q5gOyVlOykgA0KK+q5gOq4sOyXsA0KK+q5gO2VhOyXtA0KK+q5gOu0ieyEnQ0KK+q5gOynhOyaqQ0KK+q5gOq4sOyXtA0KK+q5gOyZhOyYpQ0KK+q5gOyEne2YhA0KK+q5gOustOyEuA0KK+q5gOq4sOyYgQ0KK+q5gOyaqeuLrA0KK+q5gOuzkeq4sA0KK+q5gOqwke2ZmA0KK+q5gOq4sOyYpQ0KK+q5gO2Yle2YhA0KK+q5gOq4iOu5iA0KK+q5gO2MkOyYpQ0KK+q5gOq4sOyaqQ0KK+q5gOq4sOyEnQ0KK+q5gO2DnOyyoA0KK+q5gOq2jOyYgQ0KK+q5gOq4sOyaqQ0KK+q5gOyEoOybkA0KK+q5gOyLoOuwsA0KK+q5gOyerOuvuA0KK+q5gOq4sOyaqQ0KK+q5gOuPhOq3nA0KK+q5gOycpOyhsA0KK+q5gOyiheyVlA0KK+q5gOq4sOybkA0KK+q5gOyInOq4sA0KK+q5gO2Zjeq3nA0KK+q5gOqwleyasA0KK+q5gOq4sOybkA0KK+q5gO2drOyInA0KK+q5gO2DnOyVhQ0KK+q5gOybkOyEoA0KK+q5gOq4sOybkA0KK+q5gOqzteq2jA0KK+q5gOyImOuPmQ0KK+q5gOyYge2ZmA0KK+q5gOq4sOyglQ0KK+q5gO2VtOuvuA0KK+q5gOycpOydtQ0KK+q5gOygleyInA0KK+q5gOq4sOykgA0KK+q5gOyihe2VmQ0KK+q5gOuqhe2drA0KK+q5gOyMje2ZlA0KK+q5gOq4sOykgA0KK+q5gOyerOq3nA0KK+q5gO2DnO2drA0KK+q5gOq4sO2ZlA0KK+q5gOq4sOykkQ0KK+q5gOyduO2YuA0KK+q5gOyLpOq4sA0KK+q5gOusuOyErQ0KK+q5gOq4sOyyoA0KK+q5gOygleyDnQ0KK+q5gOyViOuNlQ0KK+q5gOq4sOq3vA0KK+q5gOq4sOyyoA0KK+q5gOyGjOyImA0KK+q5gOq2jO2DnA0KK+q5gO2DnOyynA0KK+q5gOq4sOyyoA0KK+q5gOyiheyglQ0KK+q5gOyerO2VmQ0KK+q5gO2VmeyImA0KK+q5gOq4sO2DnA0KK+q5gOyaqeyLnQ0KK+q5gOygleynhA0KK+q5gO2YuOynhA0KK+q5gOq4sO2VhA0KK+q5gOyImOyEnQ0KK+q5gO2DnOyekA0KK+q5gOuzkeyatA0KK+q5gOq4sO2YhA0KK+q5gOywqOq3vA0KK+q5gOybkOuNlQ0KK+q5gOq3vOyEnQ0KK+q5gOq4sO2YhA0KK+q5gOuPme2drA0KK+q5gOyInOyglQ0KK+q5gOyInOyImA0KK+q5gOq4sO2YkQ0KK+q5gOuFuOyImQ0KK+q5gOygle2YuA0KK+q5gOyerOu2hA0KK+q5gOq4sO2YuA0KK+q5gOuLrOyIoA0KK+q5gOuFuO2biA0KK+q5gOuPmeuztA0KK+q5gOq4sO2YuA0KK+q5gOygkOynhA0KK+q5gOyDge2drA0KK+q5gOydmO2DgQ0KK+q5gOq4sO2YuA0KK+q5gOycpOyaqQ0KK+q5gO2DnO2biA0KK+q5gOyYgeyihQ0KK+q5gOq4sO2YuA0KK+q5gO2VmOuwsA0KK+q5gOyYgeyXtA0KK+q5gOynhO2YhA0KK+q5gOq4sO2ZjQ0KK+q5gOuPmeyYgQ0KK+q5gOyInO2DnA0KK+q5gOyInO2drA0KK+q5gOq4sO2ZjQ0KK+q5gOyaqeybkA0KK+q5gOuzke2VnA0KK+q5gOyEseyImA0KK+q5gOq4sO2ZjQ0KK+q5gOyerOyLnQ0KK+q5gOyDgeybkA0KK+q5gO2MkO2YlQ0KK+q5gOq4sO2ZmA0KK+q5gOyyoOuylA0KK+q5gOyjvOu0iQ0KK+q5gOu0ieyXtA0KK+q5gOq4sO2ZmA0KK+q5gOq2geycqA0KK+q5gOqzpOyEnQ0KK+q5gOyInOyerA0KK+q5gOq4sO2ZmA0KK+q5gOyDgeqyvQ0KK+q5gOyImOykgA0KK+q5gO2DnOyasA0KK+q5gOq4sO2drA0KK+q5gOydvOyekA0KK+q5gOyDge2ctA0KK+q5gOyerOyEnQ0KK+q5gOq4uOuPmQ0KK+q5gOuzkeqwlQ0KK+q5gO2dpeyInA0KK+q5gOuvuOyyoA0KK+q5gOq4uOuPmQ0KK+q5gO2Vmeq3nA0KK+q5gOywveq3nA0KK+q5gOuzkeuhnQ0KK+q5gOq4uOyDgQ0KK+q5gOqyveusuA0KK+q5gOqyveyaqQ0KK+q5gOuPmeyngA0KK+q5gOq4uOyImA0KK+q5gOq4sOyynA0KK+q5gOyaqeyEoA0KK+q5gOuCmeq4uA0KK+q5gOq4uO2ZmA0KK+q5gOyatOyIoA0KK+q5gO2DneyYgQ0KK+q5gOycpO2DnA0KK+q5gOuCmOynhOyekA0KK+q5gOygleyImOyaqQ0KK+q5gOybkOyasOyYgQ0KK+q5gOygleyInOyglQ0KK+q5gOuCmO2YhA0KK+q5gOyaqeuPmQ0KK+q5gOyngOyYgQ0KK+q5gOyKueq2jA0KK+q5gOuCmeuPmQ0KK+q5gOyDge2DnA0KK+q5gOyYgeujoQ0KK+q5gO2YhO2YuA0KK+q5gOuCme2YuA0KK+q5gOyImOyDgQ0KK+q5gOu0ie2RnA0KK+q5gOu2gO2YhA0KK+q5gOuCnOydtA0KK+q5gOygkOqyuA0KK+q5gOykgOq2jA0KK+q5gO2drOyIoA0KK+q5gOuCqOq3vA0KK+q5gO2YnO2YuA0KK+q5gOyynOydvA0KK+q5gOunjOydtA0KK+q5gOuCqOq4sA0KK+q5gOyKueunjA0KK+q5gOyduOuMgA0KK+q5gOyerOyXsA0KK+q5gOuCqOyImA0KK+q5gOyXsO2drA0KK+q5gOyEse2YuA0KK+q5gO2VtO2DgQ0KK+q5gOuCqOyImA0KK+q5gOywqO2YuA0KK+q5gOyihe2YuA0KK+q5gOygleyYpQ0KK+q5gOuCqOyImA0KK+q5gCDsmKUNCivquYDsnoTsnbQNCivquYDsmIHtkZwNCivquYDrgqjsiJwNCivquYDsnbzri6wNCivquYDtnaztnawNCivquYDtmITrsLANCivquYDrgqjsmqkNCivquYDsnqzsnbUNCivquYDtg5zqtawNCivquYDtlbTsmrANCivquYDrgqjsmrANCivquYDtl4zshKANCivquYDqsr3shKANCivquYDsuZjshJ0NCivquYDrgqjsnbQNCivquYDsoJXsoJUNCivquYDqs6HquLANCivquYDrj5nsm5ANCivquYDrgqjsobANCivquYDssYTtmIQNCivquYDrjZXsnbwNCivquYDrp4zqt7wNCivquYDrhbjsiJgNCivquYDrj5nsi50NCivquYDtmITsnpANCivquYDssL3ssqANCivquYDri6TrgqgNCivquYDsiJjsm4UNCivquYDtlbTso7wNCivquYDssKzqs4QNCivquYDri6zrp4kNCivquYDssqDtmLgNCivquYDsooXqs6QNCivquYDrs5HsnbwNCivquYDri6zrp4kNCivquYDtmY3slaANCivquYDquLDshLENCivquYDsooXsm5ANCivquYDri6zrtoQNCivquYDsuZjtmLgNCivquYDsmbjshKANCivquYDqsr3qtZANCivquYDri6zshLENCivquYDsl7DtmZgNCivquYDsnqztmLgNCivquYDrrLjslZQNCivquYDri6zsiJgNCivquYDrj5nrtIkNCivquYDsmIHtmIQNCivquYDsmIHrp4wNCivquYDri6zsi50NCivquYDsspzqs6QNCivquYDrkZDsmKUNCivquYDsp4DsmqkNCivquYDri6zsi50NCivquYDshozqt7wNCivquYDsiJzsiKANCivquYDsmIHsm4UNCivquYDri6zslZQNCivquYDtg5zqtbANCivquYDrs7XsiJgNCivquYDsoJXtmZgNCivquYDri6zsnKANCivquYDqtJHsiJkNCivquYDsiJzquLANCivquYDsmKXspIANCivquYDri6ztg5wNCivquYDshKDrn4kNCivquYDrr7jsiKANCivquYDshozsp4ANCivquYDri6ztmLgNCivquYDsoJXtmZgNCivquYDrs5HshK0NCivquYDquLjsmrANCivquYDri6ztmZQNCivquYDtlYTtlqUNCivquYDsmIHsnpANCivquYDsmIHrjZUNCivquYDrjIDqsr0NCivquYDsg4HrtIkNCivquYDsiJjsi50NCivquYDshLHtg5wNCivquYDrjIDqt5wNCivquYDrr7jrk50NCivquYDsnKTspIANCivquYDsmIHtg50NCivquYDrjIDquLANCivquYDtmITtlYQNCivquYDsp4TtmIQNCivquYDrrLTrgqgNCivquYDrjIDquLANCivquYDsg4Hsi50NCivquYDshLHtmIENCivquYDsnKTrs7UNCivquYDrjIDshJ0NCivquYDtmanrp4wNCivquYDsnqXrjZUNCivquYDshLHtmY0NCivquYDrjIDshLENCivquYDssqDtl4wNCivquYDsg4Hsm5ANCivquYDsnqztmZgNCivquYDrjIDsiJgNCivquYDsg4HquLANCivquYDshLHssqANCivquYDsirnstpwNCivquYDrjIDsi50NCivquYDrs5HquLANCivquYDsnqztmZQNCivquYDssKzsmIENCivquYDrjIDsi50NCivquYDsoJXssqANCivquYDrk53sobANCivquYDsg4Hqt7wNCivquYDrjIDsi50NCivquYDrr7zssqANCivquYDsoJXso7wNCivquYDsooXqtowNCivquYDrjIDsl7ANCivquYDsiJzsiKANCivquYDtmqjshKANCivquYDrrLTsg4ENCivquYDrjIDsmqkNCivquYDsnYDrr7gNCivquYDqt5zshJ0NCivquYDtmITtmZgNCivquYDrjIDsm5ANCivquYDsnqzssL0NCivquYDtmJXsnoQNCivquYDrqoXrp4wNCivquYDrjIDsnKQNCivquYDquLDsl7ANCivquYDqsr3shJ0NCivquYDsooXroYANCivquYDrjIDsnZENCivquYDsiJjstpwNCivquYDrgpntmZgNCivquYDsnbzsi6QNCivquYDrjIDsnbwNCivquYDrj4TssqANCivquYDrs7TtmLgNCivquYDsnoTssqANCivquYDrjIDsnbwNCivquYDtnazspIANCivquYDsnYTshJ0NCivquYDsnKTquLANCivquYDrjIDsooUNCivquYDrj5nrp4wNCivquYDsnqztmZQNCivquYDrjZXrsKkNCivquYDrjIDsp4QNCivquYDsoJXsmKUNCivquYDrtIntmowNCivquYDso7zsm5ANCivquYDrjIDtmIQNCivquYDsg4HqtowNCivquYDstpjsmKQNCivquYDsmqnssL0NCivquYDrjIDtmIQNCivquYDrjIDtmLgNCivquYDrs7XshJ0NCivquYDshLHtnLQNCivquYDrjIDtmIQNCivquYDsg4Htg50NCivquYDsnKTtnawNCivquYDrhbjqs6QNCivquYDrjIDtmLgNCivquYDqs7zsiJgNCivquYDsnqzsiJgNCivquYDrtInshLENCivquYDrjIDtmZgNCivquYDquLDsiJgNCivquYDqs4TtlZwNCivquYDshLHshJ0NCivquYDrjIDtnawNCivquYDsnYDtmZgNCivquYDsooXsl7QNCivquYDrs5HtnawNCivquYDrjZXqs6ANCivquYDsg4HruYgNCivquYDtlbTqs6QNCivquYDsooXrp4wNCivquYDrjZXqs6QNCivquYDsnbzsiJgNCivquYDquLDshLENCivquYDsnqXshJ0NCivquYDrjZXrpqwNCivquYDquLDsm5ANCivquYDsp4DsoJUNCivquYDsirntmLgNCivquYDrjZXrprwNCivquYDrp4zrrLgNCivquYDquIjsoJUNCivquYDqsJXrj5kNCivquYDrjZXrp4wNCivquYDsooXrsLANCivquYDrtInsi50NCivquYDsoJXtkZwNCivquYDrjZXsiJgNCivquYDsg4HsiJgNCivquYDsoJXtnawNCivquYDsmIHsobANCivquYDrjZXsiJgNCivquYDtg5zroZwNCivquYDsl7DssqANCivquYDso7zsmqkNCivquYDrjZXsiJwNCivquYDsg4Hsl7QNCivquYDsooXquLANCivquYDtmZTqsJENCivquYDrjZXsiJwNCivquYDshLHrkZANCivquYDsiJjsl7ANCivquYDtlZjrrLUNCivquYDrjZXsl7ANCivquYDqt4DtmIQNCivquYDsmbjtlZwNCivquYDqtJHsnpANCivquYDrjZXsl7ANCivquYDshLHsnbQNCivquYDtlZzqt5wNCivquYDsooXrsLANCivquYDrjZXsl7QNCivquYDsnoTstpgNCivquYDsnqzqt5wNCivquYDsg4HtmIQNCivquYDrjZXsmqkNCivquYDsmqnsmYQNCivquYDtlbTsmqkNCivquYDshKDsm4UNCivquYDrjZXsm5ANCivquYDrgqjrp4wNCivquYDssL3rj4wNCivquYDsiJjqs6QNCivquYDrjZXsobANCivquYDtmITsgrwNCivquYDsmIHqtawNCivquYDspIDsoJwNCivquYDrjZXsobANCivquYDqsr3qt5wNCivquYDtg5zqt5wNCivquYDsnbjssqANCivquYDrjZXspJENCivquYDshLHroZwNCivquYDshJ3si50NCivquYDrrLTsiJgNCivquYDrjZXtlbQNCivquYDtmLjssqANCivquYDtmY3ssL0NCivquYDsm5DtnJgNCivquYDrj4Tqsr0NCivquYDtg5zso7wNCivquYDqsr3shKANCivquYDsiJjsm5ANCivquYDrj4TquLANCivquYDsg4HsooUNCivquYDrj5nrjIANCivquYDquLDsiJgNCivquYDrj4TslZQNCivquYDsmIHtm4gNCivquYDso7zqt6ANCivquYDtmJzsiJkNCivquYDrj4TsmIENCivquYDrtInqtowNCivquYDtg5zrr7gNCivquYDrtInquLgNCivquYDrj4Tsm5ANCivquYDsmIHqt7wNCivquYDrhbjrqqkNCivquYDsoJXrp5ANCivquYDrj4TsnKQNCivquYDtg5zsiJwNCivquYDshLjsi50NCivquYDsnqztnawNCivquYDrj4TspJENCivquYDsuaDsmqkNCivquYDshLHsmIENCivquYDsnqzqs6QNCivquYDrj4TtlZwNCivquYDqtJHrjZUNCivquYDshLHqt5wNCivquYDrqoXsmrQNCivquYDrj4Ttm4gNCivquYDssKjsmKUNCivquYDrtInqsJENCivquYDqsJXrqqgNCivquYDrj4TtnawNCivquYDsmqnshKANCivquYDtlbTsnbwNCivquYDsnqzsmKQNCivquYDrj5nqs6QNCivquYDsnbTshJ0NCivquYDsmqntg50NCivquYDshLHshJ0NCivquYDrj5nqtowNCivquYDtg5zrs5ENCivquYDsnbzrj4QNCivquYDsnbjsi50NCivquYDrj5nqt7wNCivquYDqsbTrjZUNCivquYDsoJXrs7UNCivquYDsmIHsnbwNCivquYDrj5nquLANCivquYDsmqnrjIANCivquYDtnaXquLANCivquYDrjIDtmLgNCivquYDrj5nquLANCivquYDqsr3rkZANCivquYDsnoTtmLgNCivquYDsirnsiJgNCivquYDrj5nquLANCivquYDsiJjsmrQNCivquYDrqoXrjZUNCivquYDrqoXtmZgNCivquYDrj5nquLgNCivquYDquLDrqqgNCivquYDrs7XshKANCivquYDsmIHsiJgNCivquYDrj5nrgqgNCivquYDsnKTrp4wNCivquYDsoJXsiJwNCivquYDshKDsiJwNCivquYDrj5nroYANCivquYDrqoXsiJgNCivquYDqsJXsiJkNCivquYDshJ3rk50NCivquYDrj5nrp4wNCivquYDtg5ztmZgNCivquYDsjI3tmqgNCivquYDsgrztnawNCivquYDrj5nshK0NCivquYDsg4Hsl7ANCivquYDsnKDsm5ANCivquYDsnqXqtowNCivquYDrj5nshLENCivquYDtlbTqsr0NCivquYDqsr3shKANCivquYDshKDroZ0NCivquYDrj5nshLENCivquYDqtbDsmIENCivquYDrp7ntmLgNCivquYDqsJHspIANCivquYDrj5nsiJkNCivquYDsm5TtmZgNCivquYDtg5zqtZANCivquYDsnKTsiJgNCivquYDrj5nsiJwNCivquYDsg4HshKANCivquYDsnqzssYQNCivquYDrr7jrnb0NCivquYDrj5nsi50NCivquYDsiJnrp4wNCivquYDsooXstpwNCivquYDsnKTquLANCivquYDrj5nsi50NCivquYDtlZntlZkNCivquYDquLDquLANCivquYDsiJjsmqkNCivquYDrj5nsl7QNCivquYDspIDsiJwNCivquYDrqoXqsr0NCivquYDrs5HtmZgNCivquYDrj5nsl7QNCivquYDsoJXrpaANCivquYDqtJHrgqgNCivquYDsmqnqt5wNCivquYDrj5nsl7QNCivquYDsnqzsnbQNCivquYDtg5zshK0NCivquYDsnbztmZgNCivquYDrj5nsmqkNCivquYDsmrHsnKQNCivquYDtl4zsmrANCivquYDrs5HssqANCivquYDrj5nsm5ANCivquYDssKjquLgNCivquYDsoJXsnYANCivquYDsgqzsl7QNCivquYDrj5nso7wNCivquYDsg4Hrk50NCivquYDstqnso7wNCivquYDsmqnssKwNCivquYDrj5nso7wNCivquYDspIDrjZUNCivquYDtmY3snYANCivquYDrj5nqt7wNCivquYDrj5nspIANCivquYDtmY3tmJUNCivquYDtlbTtmIQNCivquYDsmIHqt5wNCivquYDrj5nsp4QNCivquYDsnqzqtIANCivquYDtlYTqs6QNCivquYDsiJjtmIQNCivquYDrj5nsp4QNCivquYDtnazsgrwNCivquYDshLHtm4QNCivquYDsnbjrj5kNCivquYDrj5nstpgNCivquYDsoJXrqqkNCivquYDsoJzsmqkNCivquYDtg5zsi50NCivquYDrj5nstpgNCivquYDsnKTsiKANCivquYDrqoXqt5wNCivquYDsmIHri6wNCivquYDrj5nstpgNCivquYDsnbjtmIQNCivquYDspJHtmIQNCivquYDsirnrnpgNCivquYDrj5ntmIQNCivquYDsmqntmZQNCivquYDsp4TsiJgNCivquYDsoJXtmowNCivquYDrj5ntmLgNCivquYDsiJzqsr0NCivquYDrs5HshK0NCivquYDsiJjshJ0NCivquYDrj5ntmZgNCivquYDsnKTsmKQNCivquYDsooXsg4ENCivquYDrr7jsnbQNCivquYDrj5ntmZgNCivquYDstpjqsr0NCivquYDsooXsiKANCivquYDtla3quLANCivquYDrj5ntmZgNCivquYDrs5HqtawNCivquYDshLHsi50NCivquYDsnbzsmqkNCivquYDrj5ntmZgNCivquYDshJ3smKQNCivquYDrgpnsi5wNCivquYDqsr3shLENCivquYDrj5ntmZgNCivquYDrs5HsiJgNCivquYDsnbjsm4UNCivquYDssL3ssqANCivquYDrj5ntmqgNCivquYDtg5ztmY0NCivquYDrgqjspIANCivquYDsl7Dsm5ANCivquYDrj5ntmqgNCivquYDsoJXsi50NCivquYDqtazqt5wNCivquYDqt5zsnoQNCivquYDrkZDsi50NCivquYDssL3tmLgNCivquYDqt7zsiJwNCivquYDrrLTrkZQNCivquYDrkZDsl7ANCivquYDtnazri6wNCivquYDsmIHspIANCivquYDsm5DsobANCivquYDrkZDsl7ANCivquYDsmIHsiJkNCivquYDsnbjqs6QNCivquYDsnbjsnbwNCivquYDrkZDsmYQNCivquYDssKjsg50NCivquYDsg4Hrj5kNCivquYDssL3rhYQNCivquYDrkZDsspwNCivquYDsm5DtmLgNCivquYDrp4zrp4wNCivquYDtg5zsg4ENCivquYDrkZDstpwNCivquYDstpjsoJUNCivquYDsoJXsiJwNCivquYDsiJzqsbQNCivquYDrkZDtmLgNCivquYDsoJXsmIENCivquYDsmqntnawNCivquYDrspTrsLENCivquYDrkZDtmZgNCivquYDsnqzqt5wNCivquYDsg4HsnoQNCivquYDtlYTtmZgNCivquYDrkZDtnawNCivquYDsmIHssqANCivquYDtlZjsl7QNCivquYDsooXsobANCivquYDrk53qt5wNCivquYDtjJDqtIANCivquYDsoJXtm4gNCivquYDsg4HsspwNCivquYDrk53shJ0NCivquYDsmIHtlZkNCivquYDtmY3qsr0NCivquYDrjIDtnLQNCivquYDrk53smqkNCivquYDtg5zqtawNCivquYDsnbjsiJgNCivquYDtlbTqt5wNCivquYDrk7HquLgNCivquYDsiJzsm4UNCivquYDsnqzsmrANCivquYDrp5DtmZQNCivquYDrp4zqt6ANCivquYDtm4Tsi6wNCivquYDshKDtnawNCivquYDsmIHtmIQNCivquYDrp4zquIgNCivquYDsooXsiJkNCivquYDsoJXrkZANCivquYDsmrTtmLgNCivquYDrp4zquIgNCivquYDrs5HtmIQNCivquYDtg5zsiKANCivquYDsnbjtnawNCivquYDrp4zquLgNCivquYDsp4DspIANCivquYDrjZXrp4wNCivquYDshLjtmIQNCivquYDrp4zquLgNCivquYDrp4zrrLgNCivquYDssYTshK0NCivquYDqsr3rgqgNCivquYDrp4zri6wNCivquYDsg4HtlZwNCivquYDsmqnquLgNCivquYDsmIHqt5wNCivquYDrp4zrjZUNCivquYDqta3siJgNCivquYDrr7jtmY0NCivquYDtmITsmYQNCivquYDrp4zrjZUNCivquYDsiJjsiJgNCivquYDsnqzsmKQNCivquYDsoJXtmLgNCivquYDrp4zrj4QNCivquYDsmrDri6wNCivquYDtlZzsi50NCivquYDtg5zsmqkNCivquYDrp4zrk50NCivquYDquLDqsJENCivquYDsuaDsi50NCivquYDsmYTqtawNCivquYDrp4zrs7UNCivquYDrs7XsmqkNCivquYDsnbTsooUNCivquYDshJ3smKUNCivquYDrp4zshJ0NCivquYDrs5HshK0NCivquYDshLHsm5ANCivquYDsnoTqt5wNCivquYDrp4zshKANCivquYDrjZXsobANCivquYDssKjsiJwNCivquYDtg5zslaANCivquYDrp4zsiJgNCivquYDtmqjrtIkNCivquYDrrLjqtJENCivquYDtg5ztjJANCivquYDrp4zsiJgNCivquYDquIjso7wNCivquYDrtInsiJgNCivquYDrs5HsiKANCivquYDrp4zsiJgNCivquYDrp6Tri6wNCivquYDsnKTshLENCivquYDsnqztmIQNCivquYDrp4zsiKANCivquYDsmqntmLgNCivquYDquIjtmZgNCivquYDsiJztmLgNCivquYDrp4zsl7QNCivquYDtmY3sl7QNCivquYDsnqXqtowNCivquYDsnbjshJ0NCivquYDrp4zsmqkNCivquYDsg4HrjZUNCivquYDspIDqs6QNCivquYDsooXsiJwNCivquYDrp4zsm5ANCivquYDssL3tmLgNCivquYDtlbTsnpANCivquYDsm5DssqANCivquYDrp4zsm5ANCivquYDsmIHsiJwNCivquYDsp4Dqt7wNCivquYDssL3ssqANCivquYDrp4zsnbQNCivquYDsg4HsiJwNCivquYDsmIHtj4kNCivquYDrjIDsiJgNCivquYDrp4zsobANCivquYDsnpDsl7QNCivquYDsiJntmLgNCivquYDsoJXrj4QNCivquYDrp4zsooUNCivquYDrj5nshLENCivquYDsp4DstpwNCivquYDsooXqt6ANCivquYDrp4ztg5wNCivquYDrj5nqt7wNCivquYDshJ3qt7wNCivquYDshJ3snqwNCivquYDrp4ztm4gNCivquYDsoJXsiJgNCivquYDsg4Hrj4QNCivquYDssL3qt5wNCivquYDrp5DrgpwNCivquYDrs7Xsl7QNCivquYDtnaztmLgNCivquYDtnazrjZUNCivquYDrp5DrnpgNCivquYDsirnquLANCivquYDsiJzsiJgNCivquYDrj5nrtIkNCivquYDrp5DroKgNCivquYDsoJXtmLgNCivquYDstpzsm5ANCivquYDsmKXsp4QNCivquYDrp5DrtoQNCivquYDtg5zsl7ANCivquYDssKjquIgNCivquYDsnKTqtowNCivquYDrp5DshJ0NCivquYDquLDrnpgNCivquYDsnqzsmIENCivquYDsiJzsnoQNCivquYDrp5DshKANCivquYDri6zssqANCivquYDqtJHsnKQNCivquYDrs7XspIANCivquYDrp5DsiJgNCivquYDspIDshKANCivquYDtg5zroZ0NCivquYDri6zquLANCivquYDrp5DsiKANCivquYDrj5nsmrANCivquYDtg5zqta0NCivquYDsiJjsnbQNCivquYDrp5DslZQNCivquYDsmIHsiKANCivquYDtjJDsmIENCivquYDsnbzsiJkNCivquYDrp5DsnbQNCivquYDsiJzrtoQNCivquYDqsbTqs6QNCivquYDsoJXsmZUNCivquYDrp5DsnoQNCivquYDsmqnqta0NCivquYDrj5nsooUNCivquYDtg5ztmLgNCivquYDrp5DsobANCivquYDssqDrjZUNCivquYDrqoXqt5wNCivquYDqtJHsnpANCivquYDrp7ntmZgNCivquYDtlZzri6wNCivquYDsmIHqt7wNCivquYDqt7nsnbQNCivquYDrqoXqs6QNCivquYDsiKDrp4wNCivquYDsnbzsnbQNCivquYDtjJDrjIANCivquYDrqoXqs6QNCivquYDshoztlqUNCivquYDquLDtmLgNCivquYDsnqzrpaANCivquYDrqoXqta0NCivquYDsg4HtmLgNCivquYDssKjtnawNCivquYDsooXtmLgNCivquYDrqoXqt5wNCivquYDsnKTrspQNCivquYDtg5zrgqgNCivquYDrqoXssqANCivquYDrqoXqt5wNCivquYDqsr3tmLgNCivquYDsooXrj4wNCivquYDrj5nsi50NCivquYDrqoXrnb0NCivquYDqsJHquLANCivquYAg7ISgDQor6rmA7Iq57JykDQor6rmA66qF7IStDQor6rmA67OR7IicDQor6rmA7Iq57IiYDQor6rmA7ISx7Z2gDQor6rmA66qF7IiYDQor6rmA7LCo7Zi4DQor6rmA66y06raMDQor6rmA7IiZ7IicDQor6rmA66qF7IiYDQor6rmA7YOc7ZmYDQor6rmA66+47KO8DQor6rmA7ZW06rWtDQor6rmA66qF7IiZDQor6rmA7KCQ7IiYDQor6rmA7ZmU6rWsDQor6rmA7YOc6riwDQor6rmA66qF7IiZDQor6rmA67OR642VDQor6rmA7LC964yADQor6rmA7JWI7ZmNDQor6rmA66qF7IiZDQor6rmA7YOc7IiYDQor6rmA66qF7IudDQor6rmA7KKF7IicDQor6rmA66qF7IicDQor6rmA7YOc7KGwDQor6rmA7Jik7ZmUDQor6rmA7Jqp7IiYDQor6rmA66qF7IicDQor6rmA7YOc7J20DQor6rmA7ZiE6rOkDQor6rmA7J6E6rWsDQor6rmA66qF7IicDQor6rmA7JiB7ZmUDQor6rmA7KCV7KGwDQor6rmA7Jil7IiZDQor6rmA66qF7IicDQor6rmA6rec7ZmUDQor6rmA7ISx7KKFDQor6rmA6reA7KSADQor6rmA66qF7IudDQor6rmA7J2E7J2ADQor6rmA64+E67CcDQor6rmA7Jq0656YDQor6rmA66qF7JWgDQor6rmA66y47Zi4DQor6rmA7YOc6rK9DQor6rmA7JuQ7IicDQor6rmA66qF7JikDQor6rmA7J287IiZDQor6rmA7Jyk7Z2sDQor6rmA7ZmY7IS4DQor6rmA66qF7JilDQor6rmA64+E7Zi4DQor6rmA7LGE7JqpDQor6rmA65GQ7Je0DQor6rmA66qF7J6QDQor6rmA7ZiE7J6QDQor6rmA7IOB65OdDQor6rmA7IiY7JmEDQor6rmA66qF7J6QDQor6rmA66y47JyoDQor6rmA6rec7IicDQor6rmA7YOc7JmEDQor6rmA66qF7KCVDQor6rmA7ZmN7JiBDQor6rmA6rec7Zi4DQor6rmA7JiB7YOcDQor6rmA66qF7KSRDQor6rmA7ISx7IaMDQor6rmA7Iic7YOdDQor6rmA7KCE6recDQor6rmA66qF7KeEDQor6rmA7ZWt67O1DQor6rmA7Iic656YDQor6rmA7KeE6riIDQor6rmA66qF7KeEDQor6rmA7LaY6recDQor6rmA7KCV7IudDQor6rmA64Kc7JiBDQor6rmA66qF7LKgDQor6rmA7KKF7JiBDQor6rmA7J6Q7IicDQor6rmA7ISx67aVDQor6rmA66qF7LKgDQor6rmA7YOc7JykDQor6rmA7J287IigDQor6rmA6rSR66GADQor6rmA66qF7LacDQor6rmA7LaY7ZmUDQor6rmA7IaM7Z2sDQor6rmA7Iic6riwDQor6rmA66qF7LacDQor6rmA66eM7J20DQor6rmA7KCV7JaRDQor6rmA7YOc7LKgDQor6rmA66qF7LacDQor6rmA7Iic7KeEDQor6rmA64KZ7IiZDQor6rmA7ISx6rOkDQor6rmA66qF7ZWYDQor6rmA7J6s7IiYDQor6rmA64+Z7Zi4DQor6rmA7LC97ISdDQor6rmA66qF7ZWZDQor6rmA64Ko7Zi4DQor6rmA7YOc7Je0DQor6rmA7Iic6recDQor6rmA66qF7Zi4DQor6rmA7ISd7J28DQor6rmA7J6s67aEDQor6rmA6rSA7IicDQor6rmA66qF7ZmUDQor6rmA7IOB7LKgDQor6rmA7J287Zi4DQor6rmA66+87JiBDQor6rmA66qF7ZmYDQor6rmA7KCV7IiYDQor6rmA6ri464+ZDQor6rmA7LCo6ri4DQor6rmA66qF7Z2sDQor6rmA7IOB7ZmUDQor6rmA7IOB7IudDQor6rmA64+Z7JilDQor6rmA66qF7Z2sDQor6rmA6riw7Z2sDQor6rmA6rK96rCADQor6rmA7Iic6riwDQor6rmA66qF7Z2sDQor6rmA7IOB7ZiEDQor6rmA6riw7YOcDQor6rmA65GQ6rWsDQor6rmA66yY7JuUDQor6rmA67OR7KO8DQor6rmA7J6s6rWQDQor6rmA6riw7KCVDQor6rmA66y06re8DQor6rmA7J6l7ISgDQor6rmA6rCR7J28DQor6rmA7ZeM7J6sDQor6rmA66y06riIDQor6rmA66eM7LacDQor6rmA7ISx7IudDQor6rmA6rOE7IicDQor6rmA66y067CwDQor6rmA64us7Zy0DQor6rmA64Ko7KGwDQor6rmA7J6s6rOkDQor6rmA66y067CwDQor6rmA6ri47KSADQor6rmA7J6s7LKgDQor6rmA7J6s65OdDQor6rmA66y07ISgDQor6rmA6rSR64+ZDQor6rmA67OR7KeEDQor6rmA7YOc7YOBDQor6rmA66y07IudDQor6rmA67OR64yADQor6rmA7ISx6rWsDQor6rmA7ISx7ZiEDQor6rmA66y07JewDQor6rmA6rec7Zi4DQor6rmA7ZW07JqpDQor6rmA6rOE7IudDQor6rmA66y07Je0DQor6rmA6rK97Zi4DQor6rmA67KU7J6QDQor6rmA7IOB7YOBDQor6rmA66y07Je0DQor6rmA7YOc6rCRDQor6rmA7JyE7IiYDQor6rmA7KeE7LacDQor6rmA66y07LKgDQor6rmA7ZmY7J28DQor6rmA7ZiE7IiYDQor6rmA7J6s6recDQor6rmA66y07YOcDQor6rmA67O17JqxDQor6rmAIOyLnQ0KK+q5gOyiheyYgQ0KK+q5gOustO2YhA0KK+q5gOustOyImA0KK+q5gOuqheyImA0KK+q5gOunjOyhsA0KK+q5gOustO2YuA0KK+q5gOyiheyImA0KK+q5gO2DnO2ZmA0KK+q5gO2ZjeyWuA0KK+q5gOustO2ZmA0KK+q5gOq3gOyaqQ0KK+q5gOq0gOyynA0KK+q5gOq3nOyLnQ0KK+q5gOustO2ZmA0KK+q5gOyGjOuPmQ0KK+q5gOydhOuPjA0KK+q5gOycpOydtA0KK+q5gOusuOq1rA0KK+q5gOyYgeq3oA0KK+q5gOyerOyImA0KK+q5gOyEseyEnQ0KK+q5gOusuOq4sA0KK+q5gOygleq0gA0KK+q5gO2DnO2ZjQ0KK+q5gOq4sOyErQ0KK+q5gOusuOuPjA0KK+q5gOyihe2drA0KK+q5gOq4sOyynA0KK+q5gO2MkO2drA0KK+q5gOusuOuwsA0KK+q5gOyInOyXsA0KK+q5gOq1kOyImA0KK+q5gOyiheu0iQ0KK+q5gOusuOuwsA0KK+q5gOyEseyYpQ0KK+q5gOyaqeuPhA0KK+q5gOyDgeyImA0KK+q5gOusuOyImA0KK+q5gOuqveqzpA0KK+q5gOyerO2drA0KK+q5gOywveyLnQ0KK+q5gOusuOyImA0KK+q5gO2MkOyEoA0KK+q5gOuzkeyLnQ0KK+q5gOyYgeqzpA0KK+q5gOusuOyImA0KK+q5gOyImOybkA0KK+q5gO2DnOq0kQ0KK+q5gOyduO2drA0KK+q5gOusuOyLnQ0KK+q5gOuPmeumvA0KK+q5gOyEoOq4sA0KK+q5gOygleuNlQ0KK+q5gOusuOyXtA0KK+q5gOyEseykgA0KK+q5gOybkOyhsA0KK+q5gOyerOyasA0KK+q5gOusuOyXtA0KK+q5gOycpOunjA0KK+q5gOyerOykgA0KK+q5gOyDgeuPmQ0KK+q5gOusuOyYgQ0KK+q5gOyYgeyLnQ0KK+q5gOu2hO2VmA0KK+q5gOydmO2VmA0KK+q5gOusuOyaqQ0KK+q5gOydvOuztA0KK+q5gOygleyImA0KK+q5gOunkOyjvA0KK+q5gOusuOyjvA0KK+q5gOyEseybkA0KK+q5gOyerOunjA0KK+q5gOq4sOyasQ0KK+q5gOusuO2YuA0KK+q5gOuqheq1rQ0KK+q5gOyiheuPmQ0KK+q5gOyWteyynA0KK+q5gOuvuOqyvQ0KK+q5gOyLoOyaqQ0KK+q5gOyYge2ctA0KK+q5gOyImOyyoA0KK+q5gOuvuOyImQ0KK+q5gOyYgeq4sA0KK+q5gOyaqeykgA0KK+q5gOyerOyImA0KK+q5gOuvuOyYpQ0KK+q5gOyynOq1rA0KK+q5gOyatOynhA0KK+q5gOuztOyasA0KK+q5gOuvuOyekA0KK+q5gOyiheq3vA0KK+q5gOyDge2VhA0KK+q5gOuLrOq3vA0KK+q5gOuvuOyglQ0KK+q5gOyCvOq4uA0KK+q5gOq0keqzpA0KK+q5gOyEseyInA0KK+q5gOuvuOyglQ0KK+q5gOyDgeykgA0KK+q5gOuzkeyInA0KK+q5gOyaqeyXsA0KK+q5gOuvvOyVoA0KK+q5gOq3vOyXtA0KK+q5gOyYge2ZmA0KK+q5gOyaqeyaqQ0KK+q5gOuvvOyasA0KK+q5gOuNle2YhA0KK+q5gOqwleycpA0KK+q5gOqwgO2YuA0KK+q5gOuvvOyekA0KK+q5gOyepeuztQ0KK+q5gOyduOyhsA0KK+q5gOyEseyYgQ0KK+q5gOuvvOyglQ0KK+q5gOyerO2drA0KK+q5gOuzkeyekA0KK+q5gO2Zje2YuA0KK+q5gOuvvOyyoA0KK+q5gOyInOyLnQ0KK+q5gOuqheq1kA0KK+q5gOyihey2mA0KK+q5gOuylOyImA0KK+q5gOyYge2biA0KK+q5gO2VtOyLnQ0KK+q5gOydteyInA0KK+q5gOuylOykgA0KK+q5gOuzkeq2jA0KK+q5gOu0ieyXsA0KK+q5gOuzkeyErQ0KK+q5gOuylOy2nA0KK+q5gOq4sO2YhA0KK+q5gOyepeuRkA0KK+q5gO2aqOq1rA0KK+q5gOuylO2DnA0KK+q5gOyWkeq4uA0KK+q5gO2DnOyInA0KK+q5gOyaqeyerA0KK+q5gOuzkeq0gA0KK+q5gOy2qe2biA0KK+q5gOyaqeq4sA0KK+q5gOyImO2YuA0KK+q5gOuzkeq2jA0KK+q5gOyYge2DnQ0KK+q5gOyDgeyImA0KK+q5gOynhOyasQ0KK+q5gOuzkeq3nA0KK+q5gO2YuOqwkA0KK+q5gOuvuOuFuA0KK+q5gOuCme2YuA0KK+q5gOuzkeq3vA0KK+q5gOqzhOq4sA0KK+q5gO2XjOusuA0KK+q5gOydvO2ZmA0KK+q5gOuzkeq4sA0KK+q5gOyaqeyIoA0KK+q5gOyImeyhsA0KK+q5gOyDgeyasQ0KK+q5gOuzkeuLrA0KK+q5gOywqOyErQ0KK+q5gOyDgeyYgQ0KK+q5gOy2qeyYgQ0KK+q5gOuzkeuNlQ0KK+q5gOq3nOyXtA0KK+q5gOyDgeykgA0KK+q5gOunjOyasA0KK+q5gOuzkeuNlQ0KK+q5gOy2qeyImA0KK+q5gOygkOuFuA0KK+q5gOyWuOyLnQ0KK+q5gOuzkeugpA0KK+q5gOyGoe2YuA0KK+q5gOyImOu0iQ0KK+q5gOyihe2drA0KK+q5gOuzkeugqA0KK+q5gOyiheqzpA0KK+q5gOyKueyImQ0KK+q5gOyiheyXsA0KK+q5gOuzkeumvA0KK+q5gOuFuOyImQ0KK+q5gOuPmeyaqQ0KK+q5gOyEseq3oA0KK+q5gOuzkeunjA0KK+q5gO2YuO2ctA0KK+q5gOyImOyekA0KK+q5gOusuOuPhA0KK+q5gOuzkeyCvA0KK+q5gOyEseybkA0KK+q5gOyasOyImQ0KK+q5gOybkOu0iQ0KK+q5gOuzkeyCvA0KK+q5gOyduOyImA0KK+q5gOywveyInA0KK+q5gOuPmeq1rQ0KK+q5gOuzkeyDgQ0KK+q5gOuzuOyekA0KK+q5gOq3nOyZhA0KK+q5gOyiheqwkQ0KK+q5gOuzkeyImA0KK+q5gOy5mOyInA0KK+q5gOuPmeyYgQ0KK+q5gOuztOuqqA0KK+q5gOuzkeyImA0KK+q5gOyXsOyEnQ0KK+q5gOyImOyInA0KK+q5gOyYgeuPhA0KK+q5gOuzkeyImA0KK+q5gOyEneuemA0KK+q5gOyiheyYgQ0KK+q5gO2YnOq2jA0KK+q5gOuzkeyLnQ0KK+q5gCDrtoANCivquYDrj4TsmqkNCivquYDrp4zrj4QNCivquYDrs5Hsl7ANCivquYDtlbTstpgNCivquYDsooXrj4QNCivquYDqsJXshK0NCivquYDrs5Hsl7QNCivquYDsiJnsiJwNCivquYDsoJXsiJgNCivquYDsirnquLgNCivquYDrs5HsmYQNCivquYDshJ3quLgNCivquYDsnKTsmrANCivquYDsmqnrspQNCivquYDrs5HsmqkNCivquYDshozrp4wNCivquYDrj5nquLgNCivquYDsmqnquLANCivquYDrs5HsmrANCivquYDsmqnso7wNCivquYDrp5Dsl70NCivquYDsnYDsiJgNCivquYDrs5HsmrANCivquYDrs5HsmKUNCivquYDsm5DqtawNCivquYDsmrDsiJgNCivquYDrs5Hsm5ANCivquYDssL3roZ0NCivquYDri6ztmLgNCivquYDtlYTsooUNCivquYDrs5HsnbUNCivquYDso7ztmLgNCivquYDsirnshJ0NCivquYDrtInrj4QNCivquYDrs5Hso7wNCivquYDsoJXrrLgNCivquYDtmITroYANCivquYDsg4Hqt7wNCivquYDrs5HspIANCivquYDtmY3sm5ANCivquYDquLDshLENCivquYDtg53siJgNCivquYDrs5HspIANCivquYDsoJXsiJgNCivquYDtko3showNCivquYDrqoXqt5wNCivquYDrs5Hsp4QNCivquYDqsr3snbwNCivquYDtmJXsp4QNCivquYDsnqztmZgNCivquYDrs5HssqANCivquYDsnKDquLANCivquYDsmIHtlZkNCivquYDrqoXshLENCivquYDrs5HstpgNCivquYDri6ztmIQNCivquYDtg5zsiJwNCivquYDrjZXsnpANCivquYDrs5Htg5wNCivquYDsnYDrrLgNCivquYDsoJXsmrANCivquYDsnbjsiJwNCivquYDrs5HtmLgNCivquYDqsr3si50NCivquYDrjZXtlYQNCivquYDtg5zrjZUNCivquYDrs5HtmLgNCivquYDtmqjshK0NCivquYDsmZXtmZgNCivquYDsiJjtg5wNCivquYDrs5HtmZgNCivquYDrs5HtmZgNCivquYDsg4Hrj4QNCivquYDsoJXsiJkNCivquYDrs5Htm4gNCivquYDtg5zquIgNCivquYDtnazsi6QNCivquYDqta3sg4ENCivquYDrs5Htm4gNCivquYDsp4TshKANCivquYDso7zqta0NCivquYDqtazquLANCivquYDrs5HtnawNCivquYDsmKXtmLgNCivquYDtlbTtmLgNCivquYDsoJXsiJkNCivquYDrs7TtmZgNCivquYDsl6zsobANCivquYDqsJHtnJgNCivquYDsnoTqs6QNCivquYDrs7XrnoANCivquYDri6zrtoQNCivquYDsiJjsnpANCivquYDrjIDquIgNCivquYDrs7XroKgNCivquYDsnqzqs6QNCivquYDsooXslaANCivquYDsmIHsmIENCivquYDrs7XroYANCivquYDsooXsi50NCivquYDtlYTrj4QNCivquYDsg4HssqANCivquYDrs7XshJ0NCivquYDsoJDshJ0NCivquYDrspTsoJUNCivquYDquLDsobANCivquYDrs7XsiJgNCivquYDrs5HsmrANCivquYDsmIHqt5wNCivquYDqtZDrr7wNCivquYDrs7XsiJgNCivquYDsg4Hrj5kNCivquYDsnKTrp4wNCivquYDsmIHtg50NCivquYDrs7XsiJkNCivquYDqsr3snpANCivquYDrr7jtmLgNCivquYDsmbjtmZgNCivquYDrs7XsiJwNCivquYDshLHtnawNCivquYDrj5ntmZgNCivquYDtg5zqt5wNCivquYDrs7XsiJwNCivquYDsi6DsobANCivquYDrs5HshK0NCivquYDsmIHsmKUNCivquYDrs7XsiKANCivquYDsg4HqtawNCivquYDshLjqsJENCivquYDrrLTrj4gNCivquYDrs7Xsi5wNCivquYDsnqzshKANCivquYDsmIHsl7QNCivquYDsnqzsnbUNCivquYDrs7Xsi6wNCivquYDrtIntm4gNCivquYDsiJjrtoQNCivquYDrj4TtmIQNCivquYDrs7Xsl7ANCivquYDqs4Tqt5wNCivquYDsnKTsm5ANCivquYDsmqntmLgNCivquYDrs7Xsl7ANCivquYDsnbjrnpgNCivquYDsp4TrtIkNCivquYDsg4HquLANCivquYDrs7XsmqkNCivquYDsmKXrtIkNCivquYDsmIHroYANCivquYDtlZnquLANCivquYDrs7XsnoQNCivquYDsmqnsmqkNCivquYDtg5zssqANCivquYDsnYTtg50NCivquYDrs7XsobANCivquYDstpjsiJkNCivquYDrp4zroZ0NCivquYDqtJHsmqkNCivquYDrs7XspIANCivquYDquLDrkZANCivquYDrp4zqsr0NCivquYDsnqztlbQNCivquYDrs7XtmIQNCivquYDsp4TsmrANCivquYDquLDqt5wNCivquYDtg5zspIANCivquYDrs7XtnawNCivquYDquLDsl7ANCivquYDtlYTqtowNCivquYDrp4zqs6QNCivquYDrtInqsJENCivquYDsnKTtnawNCivquYDsmIHsnKgNCivquYDsmIHqt7wNCivquYDrtInqtIANCivquYDqtJHrj4QNCivquYDsg4HsmrENCivquYDsm5Dsl7QNCivquYDrtInqtowNCivquYDsiJjsi50NCivquYDqt4DshLENCivquYDsg4HsnbQNCivquYDrtInqtowNCivquYDsp4TqtowNCivquYDshLHquLgNCivquYDstpjsooUNCivquYDrtInquLANCivquYDtg5zsiJwNCivquYDtg5zqt5wNCivquYDrj5nshKANCivquYDrtInquLANCivquYDspJHsmIENCivquYDqsJHsmIENCivquYDsnbTshJ0NCivquYDrtInquLgNCivquYDtg5zspIANCivquYDsooXtnawNCivquYDqsJXtnawNCivquYDrtInriqANCivquYDshJ3ssqANCivquYDsnZjslbwNCivquYDqtJHtlZkNCivquYDrtInrj4QNCivquYDqt7ztg50NCivquYDstpTshJ0NCivquYDsi6Dsp4QNCivquYDrtInshKANCivquYDtnaXrp4wNCivquYDrgqjsiJkNCivquYDshLHrtoQNCivquYDrtInshKANCivquYDrkZDrqqkNCivquYDsoJXsmKUNCivquYDquIjsl7QNCivquYDrtInshK0NCivquYDssL3rj4QNCivquYDrjIDrp4wNCivquYDquLDsnpANCivquYDrtInsiJgNCivquYAg642VDQor6rmA7KKF7J6QDQor6rmA7KCV7ZiEDQor6rmA67SJ7IiYDQor6rmA7J6s7KGwDQor6rmA7KO87ZWZDQor6rmA7Zqo7LCsDQor6rmA67SJ7J6QDQor6rmA64+Z7JqxDQor6rmA65GQ7IicDQor6rmA7ISx7KSADQor6rmA67SJ7KO8DQor6rmA7Iic7YOcDQor6rmA7Iq57JqpDQor6rmA64+Z7JqxDQor6rmA67SJ7KeEDQor6rmA7Jyk64K0DQor6rmA7J6s7IudDQor6rmA6rK96ri4DQor6rmA67SJ7KeEDQor6rmA7YOc7ZmYDQor6rmA7IOB64KoDQor6rmA64+Z7J6sDQor6rmA67SJ7Zi4DQor6rmA7KSA7IudDQor6rmA7J2A6recDQor6rmA7Zqo66y0DQor6rmA67SJ7Zi4DQor6rmA66y47ZeMDQor6rmA7Z2s7JqwDQor6rmA6reA7Z2sDQor6rmA67SJ7Zi4DQor6rmA6rK97IiYDQor6rmA7ZWZ65OdDQor6rmA7ZW07Zi4DQor6rmA67aA6re8DQor6rmA67aE7JewDQor6rmA7Zqo7IOdDQor6rmA6riw6regDQor6rmA67aA7ZiVDQor6rmA7JiB7IK8DQor6rmA7KCV64+ZDQor6rmA67OR7KGwDQor6rmA67aE64KoDQor6rmA7KCV7J6QDQor6rmA6ri47KO8DQor6rmA64yA67aEDQor6rmA67aE7ISgDQor6rmA7Z2s64usDQor6rmA7IK87IudDQor6rmA7YOc6rWsDQor6rmA67aE7JWFDQor6rmA7KCV7JqpDQor6rmA7IiY67CwDQor6rmA7KCc642VDQor6rmA67aE7Je0DQor6rmA6rSR7Zi4DQor6rmA7JiB7IiYDQor6rmA6rSR7IiYDQor6rmA67aE7J20DQor6rmA64+Z656YDQor6rmA7YOc7J6QDQor6rmA7YOc7IicDQor6rmA67aE7J20DQor6rmA7JiB6rOEDQor6rmA7Jqw64KoDQor6rmA7JaR7KSADQor6rmA67aE7KGwDQor6rmA7LCo7Z2sDQor6rmA6rSA64yADQor6rmA7ISx7ISgDQor6rmA7IKs6rOkDQor6rmA7YOc7IudDQor6rmA7KeE7JqwDQor6rmA7IiY7IudDQor6rmA7IKs7IicDQor6rmA7IOB7LKgDQor6rmA7J6s7KSADQor6rmA7KKF7KGwDQor6rmA7IKs7J28DQor6rmA7Jyk7JiBDQor6rmA6rK96riwDQor6rmA6riw64+ZDQor6rmA7IKs7KGwDQor6rmA7KCV7IiYDQor6rmA7ISx7LKgDQor6rmA66eM7JWgDQor6rmA7IK86rWtDQor6rmA7ISx6re8DQor6rmA6rec7Zi4DQor6rmA6riw67aEDQor6rmA7IK864KoDQor6rmA7Jqp7JqwDQor6rmA7YOc7KSRDQor6rmA67OR7ISxDQor6rmA7IK864+ZDQor6rmA7IK87YOcDQor6rmA7KCV7IudDQor6rmA7JqU7ISdDQor6rmA7IK866qFDQor6rmA7LC97Z2sDQor6rmA7ZmN7Z2sDQor6rmA7YOc7IicDQor6rmA7IK867CpDQor6rmA67OR67SJDQor6rmA7JiB7ZuIDQor6rmA66Ck6ri4DQor6rmA7IK867SJDQor6rmA6riw6raMDQor6rmA7JiB7KSADQor6rmA7KKF7IudDQor6rmA7IK87IOBDQor6rmA64yA7IiYDQor6rmA66qF6rWsDQor6rmA7IOB7Z2sDQor6rmA7IK87IiYDQor6rmA7Z2s7IOBDQor6rmA7KKF7KSRDQor6rmA6riI656YDQor6rmA7IK87IiYDQor6rmA7KKF7Jq0DQor6rmA7KCV7ZiEDQor6rmA7JiB7IiYDQor6rmA7IK87JqpDQor6rmA7J217KeEDQor6rmA66qF7Zi4DQor6rmA7J6s7JuQDQor6rmA7IK87JqpDQor6rmA7ISx64+ZDQor6rmA7Iic66GcDQor6rmA7IaM7Zi4DQor6rmA7IK87KGwDQor6rmA7JiB656YDQor6rmA67O17ZWcDQor6rmA7JuQ7ZmYDQor6rmA7IK87KeEDQor6rmA7JiB7KKFDQor6rmA7KKF6recDQor6rmA7KKF7ZW0DQor6rmA7IK87LacDQor6rmA7YOc7LaYDQor6rmA7J286rWsDQor6rmA7IOB7KSADQor6rmA7IK87LacDQor6rmA7Jyk7IudDQor6rmA7KeE6riIDQor6rmA7JiB7ISdDQor6rmA7IK87Zi4DQor6rmA7LKg7IOBDQor6rmA7J2467SJDQor6rmA7J2Y7Zi4DQor6rmA7IOBDQor6rmA7YOdDQor6rmA7LKgDQor6rmA7YOcDQor6rmA7IOB6rOkDQor6rmA7JiB6rWsDQor6rmA7IOB67mIDQor6rmA65GQ7KKFDQor6rmA7IOB6rOkDQor6rmA7KeE7JWUDQor6rmA6rO17ZiEDQor6rmA7KeE6recDQor6rmA7IOB6rOkDQor6rmA7KSA7LacDQor6rmA7Iic7J6QDQor6rmA7ISx7Jq0DQor6rmA7IOB6rSADQor6rmA7Z2s7IiYDQor6rmA7ISg6raMDQor6rmA7IiY7IStDQor6rmA7IOB6rWsDQor6rmA7ISg7ISdDQor6rmA66+47JqpDQor6rmA7ZW07ISgDQor6rmA7IOB6rWsDQor6rmA7YOc7ZWYDQor6rmA6rec7JewDQor6rmA7Jew7IiYDQor6rmA7IOB6rWsDQor6rmA6re57J28DQor6rmA7YOc7Jq0DQor6rmA7KKF7JqpDQor6rmA7IOB6rWsDQor6rmA7Z2s7ZuIDQor6rmA7ZW07JuQDQor6rmA7Jyk7LacDQor6rmA7IOB6raMDQor6rmA67OR7ZGcDQor6rmA7IOB7LKcDQor6rmA7ZWE64KcDQor6rmA7IOB6recDQor6rmA7ISx6rK9DQor6rmA6rOh7LCsDQor6rmA6reA7Zi4DQor6rmA7IOB6recDQor6rmA7Iic6rOkDQor6rmA66qF7JewDQor6rmA7LKc67ORDQor6rmA7IOB6recDQor6rmA7Jqp7JiBDQor6rmA7KKF7IStDQor6rmA7KKF7IiZDQor6rmA7IOB6recDQor6rmA66y07Z2sDQor6rmA7Jqw7LacDQor6rmA6rK96riwDQor6rmA7IOB6regDQor6rmA7JiB7IiYDQor6rmA7J2Y7J28DQor6rmA7J2R7Z2sDQor6rmA7IOB6re8DQor6rmA7LaY7YOBDQor6rmA7ISx7KCQDQor6rmA7JuQ7JilDQor6rmA7IOB6re8DQor6rmA7LCo67SJDQor6rmA7KCV67KUDQor6rmA7KKM7IicDQor6rmA7IOB6riwDQor6rmA7Z2s67CwDQor6rmA7KKF642VDQor6rmA67OR7KCVDQor6rmA7IOB6ri4DQor6rmA7Jqx7Zy0DQor6rmA7J2867CwDQor6rmA7IS47IiYDQor6rmA7IOB642VDQor6rmA7ZW07ISgDQor6rmA64yA6rCRDQor6rmA7Jew67SJDQor6rmA7IOB642VDQor6rmA7LC967SJDQor6rmA7J6s7ISgDQor6rmA7J6s7Z2sDQor6rmA7IOB642VDQor6rmA6rK97YOcDQor6rmA67aE7LKcDQor6rmA6rCR7IiYDQor6rmA7IOB642VDQor6rmA7Iic64usDQor6rmA7J6s7Zi4DQor6rmA66+47KeEDQor6rmA7IOB64+IDQor6rmA7Jqp7J6QDQor6rmA7JiB7IudDQor6rmA67OR7Zi4DQor6rmA7IOB66GdDQor6rmA66+47IStDQor6rmA7Zi47Zi4DQor6rmA6rK97IudDQor6rmA7IOB66eMDQor6rmA7J2E7JqwDQor6rmA66qF7JqpDQor6rmA7Je07KeEDQor6rmA7IOB66eMDQor6rmA64us7IS4DQor6rmA7J6Q7JqxDQor6rmA7Jyk7Zi4DQor6rmA7IOB66y4DQor6rmA7Jil7JqpDQor6rmAIOywvQ0KK+q5gO2drO2DnQ0KK+q5gOyDgeusuA0KK+q5gOyaqeyaqQ0KK+q5gO2XjO2DnQ0KK+q5gOuqhe2YhA0KK+q5gOyDgeuvuA0KK+q5gOq4sOyYgQ0KK+q5gOyxhOydvA0KK+q5gOyEse2YuA0KK+q5gOyDgeuwsA0KK+q5gOyYgeq4uA0KK+q5gOuqhe2YhA0KK+q5gOyDgeyInA0KK+q5gOyDgeyEnQ0KK+q5gOy2lOyXsA0KK+q5gOycpOqxtA0KK+q5gOygleyXtA0KK+q5gOyDgeyErQ0KK+q5gOyiheyLnQ0KK+q5gOyInOy2nA0KK+q5gOyiheq1rQ0KK+q5gOyDgeyImA0KK+q5gOyWuOuNlQ0KK+q5gOyCvO2YnA0KK+q5gOyImOuemA0KK+q5gOyDgeyImA0KK+q5gOyerOydtA0KK+q5gOyDge2YhA0KK+q5gOqwleyEoA0KK+q5gOyDgeyImA0KK+q5gOygleu0iQ0KK+q5gO2DnOyYpQ0KK+q5gOyCvOuemA0KK+q5gOyDgeyImA0KK+q5gOynhOuPmQ0KK+q5gOy5oOydtA0KK+q5gOyEse2VnA0KK+q5gOyDgeyImQ0KK+q5gO2ZjeyEnQ0KK+q5gOuzkeyhsA0KK+q5gOyblO2ZmA0KK+q5gOyDgeyIoA0KK+q5gO2YuOuwsA0KK+q5gOyCvOyEnQ0KK+q5gOyGkOyEnQ0KK+q5gOyDgeyLnA0KK+q5gOyepeycpA0KK+q5gOq4sO2YhA0KK+q5gOyerOydtA0KK+q5gOyDgeyLnQ0KK+q5gOyiheyEsQ0KK+q5gOydgO2ZlA0KK+q5gOy2mO2YhA0KK+q5gOyDgeyXsA0KK+q5gOyYge2DnA0KK+q5gOynhOq0gA0KK+q5gOyEoOykgA0KK+q5gOyDgeyXsA0KK+q5gOyaqe2VtA0KK+q5gOyDgeqzpA0KK+q5gOqxtOybkA0KK+q5gOyDgeyXtA0KK+q5gOuNleywrA0KK+q5gOycpOyasA0KK+q5gOyjvOyEsQ0KK+q5gOyDgeyXtA0KK+q5gOuzke2biA0KK+q5gOyDgeq3vA0KK+q5gOuqheuLrA0KK+q5gOyDgeyYgQ0KK+q5gOq4iOuPmQ0KK+q5gOu2hOyEnQ0KK+q5gOykkeyLnQ0KK+q5gOyDgeyYpA0KK+q5gOuzke2YuA0KK+q5gOyInOuPmQ0KK+q5gOywveyaqQ0KK+q5gOyDgeyaqQ0KK+q5gOygle2YhA0KK+q5gO2ZjeykgA0KK+q5gOunkOq1kA0KK+q5gOyDgeyaqQ0KK+q5gOywrOybkA0KK+q5gOq4sOyLnQ0KK+q5gOuztO2VmA0KK+q5gOyDgeyaqQ0KK+q5gOykgOuNlQ0KK+q5gOycpOq3vA0KK+q5gOydvOujoQ0KK+q5gOyDgeyatA0KK+q5gOyXsO2YuA0KK+q5gOuvuOqzpA0KK+q5gOqyveunjA0KK+q5gOyDgeybkA0KK+q5gOuPmeqzhA0KK+q5gOygkO2drA0KK+q5gOuPhOyLnQ0KK+q5gOyDgeycpA0KK+q5gOydkeusuA0KK+q5gO2YuOuhnQ0KK+q5gOyduOyDnQ0KK+q5gOyDgeycqA0KK+q5gOyYge2VmA0KK+q5gO2ZlOyInA0KK+q5gOqyveuhnQ0KK+q5gOyDgeycqA0KK+q5gOyaqeyImA0KK+q5gOuPmeq3vA0KK+q5gOyerOyEsQ0KK+q5gOyDgeycqA0KK+q5gOynhO2DnA0KK+q5gOq0ke2VmQ0KK+q5gO2VtOyhsA0KK+q5gOyDgeydkQ0KK+q5gOu0ieq4sA0KK+q5gOuzkeq1rQ0KK+q5gOuFuOq3oA0KK+q5gOyDgeydvA0KK+q5gOycpO2VmQ0KK+q5gOyDgeyihQ0KK+q5gOq0keyglQ0KK+q5gOyDgeydvA0KK+q5gOuzkeywrA0KK+q5gOywve2YlQ0KK+q5gOyEneyErQ0KK+q5gOyDgeydvA0KK+q5gOyGjOuMgA0KK+q5gOyKueudvA0KK+q5gOyDgeq3vA0KK+q5gOyDgeyerA0KK+q5gOycoOyImA0KK+q5gOqxtOybkA0KK+q5gOyihe2ZmA0KK+q5gOyDgeyhsA0KK+q5gOy2mOuPhA0KK+q5gOyLneuNlQ0KK+q5gOuPme2YuA0KK+q5gOyDgeyihQ0KK+q5gOy2mOyErQ0KK+q5gO2ZjeyImA0KK+q5gOyerOyZhA0KK+q5gOyDgeykkQ0KK+q5gOyDge2drA0KK+q5gOyDge2bhA0KK+q5gOyepeu0iQ0KK+q5gOyDgeynhA0KK+q5gOuFuOyEnQ0KK+q5gOuLrOuCqA0KK+q5gOyaqeybkA0KK+q5gOyDgeynhA0KK+q5gOuqheyEnQ0KK+q5gOuzkeyXtA0KK+q5gOydgOyIoA0KK+q5gOyDgeyynA0KK+q5gOyInOynhA0KK+q5gO2DnOq1rA0KK+q5gOyYgeyekA0KK+q5gOyDgeyyoA0KK+q5gOyGoeyImA0KK+q5gOyLpO2VnA0KK+q5gO2YhOyYgQ0KK+q5gOyDgeyyoA0KK+q5gOyaqeq4uA0KK+q5gOyDge2YuA0KK+q5gOq4iOyekA0KK+q5gOyDgeyyoA0KK+q5gOuCqOyEnQ0KK+q5gOyYgeyImA0KK+q5gOybheuMgA0KK+q5gOyDge2DnA0KK+q5gOuvuOyEnQ0KK+q5gO2YuOq3nA0KK+q5gOyYgeyYpQ0KK+q5gOyDge2DnA0KK+q5gOyngO2YuA0KK+q5gOykgOyEsQ0KK+q5gO2DnOyLnQ0KK+q5gOyDge2DnA0KK+q5gOykke2YuA0KK+q5gOyKueuztQ0KK+q5gOyerOq2jA0KK+q5gOyDge2VmA0KK+q5gOyDgeyErQ0KK+q5gOuptO2YuA0KK+q5gOyDgeyYpQ0KK+q5gOyDge2VnA0KK+q5gO2YuO2biA0KK+q5gOu0ieq2jA0KK+q5gOuPmeyLnQ0KK+q5gOyDge2XjA0KK+q5gOyYgeyekA0KK+q5gOyngO2YuA0KK+q5gOq0gO2YhA0KK+q5gOyDge2YgQ0KK+q5gOyYge2ZmA0KK+q5gOyihe2drA0KK+q5gOuqheywrA0KK+q5gOyDge2YhA0KK+q5gOqyveykgA0KK+q5gOygkOu0iQ0KK+q5gOykke2VmQ0KK+q5gOyDge2YhA0KK+q5gOyCvOyImA0KK+q5gO2aqOy2mA0KK+q5gOyYgeuztQ0KK+q5gOyDge2YhA0KK+q5gOyEse2ZmA0KK+q5gOq4sOusuA0KK+q5gOyiheyEsQ0KK+q5gOyDge2YuA0KK+q5gOyasOq3nA0KK+q5gOqyveqwkQ0KK+q5gOywve2YhA0KK+q5gOyDge2YuA0KK+q5gOydgO2YhA0KK+q5gOq4sOqyvQ0KK+q5gOqyveuTnQ0KK+q5gOyDge2YuA0KK+q5gOuzteyIoA0KK+q5gOyerOyInA0KK+q5gOu2hO2aqA0KK+q5gOyDge2YuA0KK+q5gOuCtO2DnQ0KK+q5gOydgOyEsQ0KK+q5gOydgOyekA0KK+q5gOyDge2ZjQ0KK+q5gOyYgeyVlA0KK+q5gOyImeuvuA0KK+q5gOyxhO2drA0KK+q5gOyDge2ZmA0KK+q5gOydvO2ZmA0KK+q5gOy2mO2YuA0KK+q5gOuvuO2YhA0KK+q5gOyDge2biA0KK+q5gOyerO2VmA0KK+q5gOuLrOyInA0KK+q5gOyasO2YuA0KK+q5gOyDge2drA0KK+q5gOq0keyYgQ0KK+q5gOqxtOq4sA0KK+q5gOunjOyyoA0KK+q5gOyDge2drA0KK+q5gOq4sOyYpQ0KK+q5gO2XjO2drA0KK+q5gOusuOyImQ0KK+q5gOyDge2drA0KK+q5gO2DnOyasA0KK+q5gO2VmeyIoA0KK+q5gOyaqeyEnQ0KK+q5gOyEnOyVlA0KK+q5gOuMgO2DnA0KK+q5gOqzhOyEnQ0KK+q5gOyiheq4iA0KK+q5gOyEneqzpA0KK+q5gOyInOyVoA0KK+q5gO2DnOyhsA0KK+q5gOuFuO2drA0KK+q5gOyEneq0gA0KK+q5gOuzteyWkQ0KK+q5gOyaqe2ZmA0KK+q5gO2VtO2YhA0KK+q5gOyEneq3nA0KK+q5gOyYgeq3nA0KK+q5gO2DnOuTnQ0KK+q5gOyiheyYgQ0KK+q5gOyEneq3oA0KK+q5gOqyve2drA0KK+q5gOuMgO2ZqQ0KK+q5gOywqOyaqQ0KK+q5gOyEneq3vA0KK+q5gOygkOqyvQ0KK+q5gO2MkO2VhA0KK+q5gOygleyynA0KK+q5gOyEneq3vA0KK+q5gOyduOyYpQ0KK+q5gOywveyXtA0KK+q5gO2DnOyEuA0KK+q5gOyEneq3vA0KK+q5gOqwkeunjA0KK+q5gOygleyVlA0KK+q5gO2VtOqzpA0KK+q5gOyEneuFuA0KK+q5gOygleuRkA0KK+q5gOuPhOywvQ0KK+q5gOyIme2RnA0KK+q5gOyEneuPhA0KK+q5gOyInOyerA0KK+q5gO2DnOybkA0KK+q5gO2VtOunjA0KK+q5gOyEneuPmQ0KK+q5gO2MkOyghA0KK+q5gOyaqe2YuA0KK+q5gOydvOyImA0KK+q5gOyEneuegA0KK+q5gOyiheu0iQ0KK+q5gOuzkeyImA0KK+q5gOybkO2PiQ0KK+q5gOyEneyImA0KK+q5gOu0ieuNlQ0KK+q5gOy2mOyXtA0KK+q5gOunkOq3vA0KK+q5gOyEneyInA0KK+q5gOq4uOuztQ0KK+q5gOqyveyIoA0KK+q5gOyhsO2YhA0KK+q5gOyEneyVlA0KK+q5gOuPmeyCvA0KK+q5gOuMgOyLnQ0KK+q5gOqyve2YuA0KK+q5gOyEneyXsA0KK+q5gOq3gOu0iQ0KK+q5gOyDgey2nA0KK+q5gOynhOqxtA0KK+q5gOyEneyXtA0KK+q5gOynhO2YhA0KK+q5gOuFuOu0iQ0KK+q5gOq4uOyVoA0KK+q5gOyEneydtA0KK+q5gO2DnOyXsA0KK+q5gOyatOyLnQ0KK+q5gO2DnOunjA0KK+q5gOyEneyerA0KK+q5gOuLrO2DgQ0KK+q5gOyiheuhnQ0KK+q5gOyDge2YhA0KK+q5gOyEneyhsA0KK+q5gOq2jOydtQ0KK+q5gOusuOq3nA0KK+q5gOyDgeuylA0KK+q5gOyEneyihQ0KK+q5gO2XjOq3nA0KK+q5gOuvuOykgA0KK+q5gO2DnOunjA0KK+q5gOyEneykgA0KK+q5gOuPmeyEnQ0KK+q5gOuvuOydvA0KK+q5gOq4sOuztQ0KK+q5gOyEneynhA0KK+q5gOyDgeyEnQ0KK+q5gOyImOyehA0KK+q5gOyaqeyhsA0KK+q5gOyEneyynA0KK+q5gOqyveq0gA0KK+q5gOyYgeycoA0KK+q5gOyEseyEnQ0KK+q5gOyEneyyoA0KK+q5gOyerOq4iA0KK+q5gOyYgeyaqQ0KK+q5gOq3nOykgA0KK+q5gOyEne2ZmA0KK+q5gOyGjOyepQ0KK+q5gOuCmeyInA0KK+q5gOuMgOyglQ0KK+q5gOyEoOq1kA0KK+q5gOyYgeyImA0KK+q5gOykkeqwkQ0KK+q5gOyEseyImA0KK+q5gOyEoOuNlQ0KK+q5gOyYgeyehA0KK+q5gOuzkeyErQ0KK+q5gOygleyImA0KK+q5gOyEoOunjA0KK+q5gOyEseygnA0KK+q5gOywqOyYpA0KK+q5gOy2mOyImA0KK+q5gOyEoOuvuA0KK+q5gOywveyekA0KK+q5gO2aqOuvuA0KK+q5gOygleyImA0KK+q5gOyEoOu0iQ0KK+q5gOyaqeycpA0KK+q5gOuzteyEsQ0KK+q5gOyasOyYgQ0KK+q5gOyEoOu2hA0KK+q5gOyEseyEsQ0KK+q5gO2VhO2DnA0KK+q5gOq0ke2YhA0KK+q5gOyEoOyIoA0KK+q5gOynhOyekA0KK+q5gO2ZjeqwgQ0KK+q5gO2DnOyynA0KK+q5gOyEoOyasA0KK+q5gOuzteyaqQ0KK+q5gOyihe2drA0KK+q5gOuzte2ZmA0KK+q5gOyEoOyasQ0KK+q5gOygkOyaqQ0KK+q5gOuzkeyImA0KK+q5gOyDgeyImA0KK+q5gOyEoOyasQ0KK+q5gOq4sOyatA0KK+q5gOykgO2YuA0KK+q5gO2VtOyerA0KK+q5gOyEoOydtA0KK+q5gOygleyImA0KK+q5gOyDgeyImQ0KK+q5gOq4sOyekA0KK+q5gOyEoOydtA0KK+q5gOy2mOyasA0KK+q5gOygleyLnQ0KK+q5gOyInOyduA0KK+q5gOyEoOydtA0KK+q5gOqyve2YuA0KK+q5gOyEoOyImA0KK+q5gO2drOyErQ0KK+q5gOyEoOydtA0KK+q5gOycpOybkA0KK+q5gOygle2RnA0KK+q5gOycpOq1sA0KK+q5gOyEoOydtA0KK+q5gOyYgeyVoA0KK+q5gOyerOyImA0KK+q5gOyCvOq3nA0KK+q5gOyEoOyekA0KK+q5gOq3vOyjvA0KK+q5gOuPmeykkQ0KK+q5gOqyveyEnQ0KK+q5gOyEoOyekA0KK+q5gOygleugqA0KK+q5gOuPmeyekA0KK+q5gO2ZjeuPmQ0KK+q5gOyEoOykkQ0KK+q5gOyEneyEoA0KK+q5gOyYge2biA0KK+q5gOyXsOynhA0KK+q5gOyEoO2DnA0KK+q5gOyYgeyLnQ0KK+q5gOq3nOybhQ0KK+q5gOyerOynhA0KK+q5gOyEoO2DnA0KK+q5gOuzkeuPjA0KK+q5gOyDgeuNlQ0KK+q5gOyMje2RnA0KK+q5gOyEoO2DnA0KK+q5gOyDge2WiQ0KK+q5gOyYgeuPmQ0KK+q5gOyImOyhsA0KK+q5gOyEoO2aqA0KK+q5gOyImOyynA0KK+q5gOyYpeydvA0KK+q5gOyihe2PrA0KK+q5gOyEoO2drA0KK+q5gOyiheuLrA0KK+q5gOustOq4sA0KK+q5gOqyveyEnQ0KK+q5gOyEoO2drA0KK+q5gOyCvO2ZlA0KK+q5gOydmO2VnA0KK+q5gOyhsOqzoA0KK+q5gOyEoO2drA0KK+q5gOyjvOyehA0KK+q5gO2ZmOq4sA0KK+q5gO2YgeyImA0KK+q5gOyEpOyekA0KK+q5gOyjvOuPmQ0KK+q5gOyDgeyIoA0KK+q5gOyerOybkA0KK+q5gOyEseqzhA0KK+q5gOywqOycpA0KK+q5gOuNleu5iA0KK+q5gOqyve2drA0KK+q5gOyEseqzpA0KK+q5gOyYpeq4uA0KK+q5gOyduOuPmQ0KK+q5gOyGjO2biA0KK+q5gOyEseqzpA0KK+q5gOyCrOyEpA0KK+q5gO2MkOunjA0KK+q5gOuPmeyynA0KK+q5gOyEseqzpA0KK+q5gOycpOykgA0KK+q5gO2DnOq3oA0KK+q5gO2MlOyYpQ0KK+q5gOyEseqzpA0KK+q5gOynhO2VmA0KK+q5gOyGjO2aqA0KK+q5gOyEse2ZmA0KK+q5gOyEseq1rA0KK+q5gOyerOydvA0KK+q5gOyiheyImA0KK+q5gOyasOyInA0KK+q5gOyEseq1rA0KK+q5gOyDgeuMgA0KK+q5gOyduOyImA0KK+q5gOyYgeuMgA0KK+q5gOyEseq1rA0KK+q5gOunjO2ZmA0KK+q5gO2drOq4sA0KK+q5gOyEneu2hA0KK+q5gOyEseq1rA0KK+q5gOyYgeusuA0KK+q5gOuzkeq1rA0KK+q5gOynhOq2jA0KK+q5gOyEseq1rA0KK+q5gO2DnOq4sA0KK+q5gOyInOygkA0KK+q5gOyDgeyhsA0KK+q5gOyEseq3nA0KK+q5gOyInOyyoA0KK+q5gOyCrOq3nA0KK+q5gOydvO2YuA0KK+q5gOyEseq3nA0KK+q5gOustOuwsA0KK+q5gOyYge2YhA0KK+q5gOyerOyYpQ0KK+q5gOyEseq3nA0KK+q5gOu0ieq3nA0KK+q5gOynhOyasA0KK+q5gOyEseuPhA0KK+q5gOyEseq3vA0KK+q5gOuylOyImQ0KK+q5gO2biOyyoA0KK+q5gOyasO2ZmA0KK+q5gOyEseq3vA0KK+q5gO2YuO2drA0KK+q5gO2DnOyekA0KK+q5gOyKueyEoA0KK+q5gOyEseq4sA0KK+q5gOyihe2YhA0KK+q5gOygkOuylA0KK+q5gOyaqeyImA0KK+q5gOyEseq4sA0KK+q5gOyehOygnA0KK+q5gOyEseydvA0KK+q5gOuzke2DnA0KK+q5gOyEseq4sA0KK+q5gOyYpeq1rQ0KK+q5gO2DnO2ZlA0KK+q5gOyynO2drA0KK+q5gOyEseq4sA0KK+q5gOyYgeu2hA0KK+q5gOyYpeyEnQ0KK+q5gOuNleq0gA0KK+q5gOyEseq4sA0KK+q5gOuFuOybkA0KK+q5gOyYgeyLnQ0KK+q5gOycpOuPmQ0KK+q5gOyEseq4sA0KK+q5gOyatOyatA0KK+q5gOyYgeyInA0KK+q5gOyDgeyihQ0KK+q5gOyEseq4sA0KK+q5gOuzkeyjvA0KK+q5gOustO2YuA0KK+q5gOyaqe2VmQ0KK+q5gOyEseq4sA0KK+q5gOyDgeyasA0KK+q5gOuzke2VmQ0KK+q5gOygleynhA0KK+q5gOyEseuCqA0KK+q5gOykkeyDgQ0KK+q5gOykgO2drA0KK+q5gOyiheyZhA0KK+q5gOyEseuNlQ0KK+q5gO2VtOyaqQ0KK+q5gOyYgeq1rA0KK+q5gOyDgeynhA0KK+q5gOyEseuPhA0KK+q5gOybkOqzpA0KK+q5gOyduOybkA0KK+q5gOudveyLnQ0KK+q5gOyEseuPhA0KK+q5gOu0ieydtA0KK+q5gOycoOyxhA0KK+q5gOygleyhsA0KK+q5gOyEseudvQ0KK+q5gOyDge2ZmA0KK+q5gOyjvOy5oA0KK+q5gOyXsOyYpQ0KK+q5gOyEseugrA0KK+q5gOygleyyoA0KK+q5gOyDgeyyoA0KK+q5gOyWteuqqQ0KK+q5gOyEseuhgA0KK+q5gOydkeyjvA0KK+q5gOyImO2ZmA0KK+q5gO2DgOyImQ0KK+q5gOyEseuloA0KK+q5gO2YuOyImA0KK+q5gOqyve2YuA0KK+q5gO2YhOudvQ0KK+q5gOyEseunjA0KK+q5gOywveydvA0KK+q5gOyyoO2RnA0KK+q5gO2drO2VmQ0KK+q5gOyEseuqqQ0KK+q5gOq0keunjA0KK+q5gO2DneyWuA0KK+q5gOynhOyGjA0KK+q5gOyEseusuA0KK+q5gOq3vOq4sA0KK+q5gOydhOyjvA0KK+q5gOyInOuPjA0KK+q5gOyEseuwsA0KK+q5gOygleyDnQ0KK+q5gOyGjOq2jA0KK+q5gOqxtOq4sA0KK+q5gOyEseuwsA0KK+q5gOq0gOqxtA0KK+q5gOygle2drA0KK+q5gOyEse2ZmA0KK+q5gOyEseuztQ0KK+q5gOyaqe2drA0KK+q5gOu2hO2PrA0KK+q5gOq4sOuqqQ0KK+q5gOyEseuztQ0KK+q5gOyaqe2YhA0KK+q5gOq0keuqqA0KK+q5gOykgO2DnQ0KK+q5gOyEseyDnQ0KK+q5gOuqhe2ZjQ0KK+q5gOyjvOybhQ0KK+q5gOyiheqxtA0KK+q5gOyEseyEoA0KK+q5gOq4sO2ZjQ0KK+q5gOygkO2DgQ0KK+q5gOyerOq2jA0KK+q5gOyEseyImA0KK+q5gOyEoOyImQ0KK+q5gOuCmeynhA0KK+q5gOu2hOusuA0KK+q5gOyEseyImA0KK+q5gOuPmeygnA0KK+q5gOy2mOuwlQ0KK+q5gOq4sOybhQ0KK+q5gOyEseyImA0KK+q5gO2DnOuztQ0KK+q5gOyZhOyYpQ0KK+q5gOq0keyInA0KK+q5gOyEseyImA0KK+q5gOy2mOydtQ0KK+q5gOq4uO2YuA0KK+q5gOyEseyYgQ0KK+q5gOyEseyInA0KK+q5gOyEuOynhA0KK+q5gOyGjOyLnQ0KK+q5gOq3vOynhA0KK+q5gOyEseyLnQ0KK+q5gOyaqeyjvA0KK+q5gOyekOyLnQ0KK+q5gOuqhe2ZjQ0KK+q5gOyEseyXtA0KK+q5gOyYgeyasA0KK+q5gOygleq0kQ0KK+q5gO2XjOydvA0KK+q5gOyEseyXtA0KK+q5gOustOyInA0KK+q5gOyLrOyehA0KK+q5gOqwkeyImA0KK+q5gOyEseyXtA0KK+q5gOyynOydvA0KK+q5gOyerOuMgA0KK+q5gOyYgeuPhA0KK+q5gOyEseyXtA0KK+q5gOuPmeyLnQ0KK+q5gOycoOyLnQ0KK+q5gOyYgeudvQ0KK+q5gOyEseyYgQ0KK+q5gOyduOuNlQ0KK+q5gOy2qeuqqQ0KK+q5gOyEse2YuA0KK+q5gOyEseyaqQ0KK+q5gOuCqOyInA0KK+q5gOyihe2ZmA0KK+q5gOusuOq3nA0KK+q5gOyEseyaqQ0KK+q5gOyZuOuPmQ0KK+q5gOy5oOuPhA0KK+q5gOqyveuFuA0KK+q5gOyEseyaqQ0KK+q5gOykkeyyoA0KK+q5gOyImO2YhA0KK+q5gOyYpeuztQ0KK+q5gOyEseyasA0KK+q5gOyepeyIoA0KK+q5gOyYgeyglQ0KK+q5gO2DnOyynA0KK+q5gOyEseyasA0KK+q5gOqxtOq4uA0KK+q5gOuqheyLnQ0KK+q5gOq0gOq3vA0KK+q5gOyEseyasA0KK+q5gOuqheyEpA0KK+q5gOyCvOyduA0KK+q5gOyihe2drA0KK+q5gOyEseyasA0KK+q5gOydmOyasA0KK+q5gOyImOyduA0KK+q5gOyLnOyIoA0KK+q5gOyEseyasQ0KK+q5gOyGjOuRkA0KK+q5gOq3vOuwsA0KK+q5gOyEseyImA0KK+q5gOyEseyatA0KK+q5gOq3vOynhA0KK+q5gOyYgeuLrA0KK+q5gO2YhO2DnA0KK+q5gOyEseyatA0KK+q5gOyerOyihQ0KK+q5gOygley2mA0KK+q5gOq0keyInA0KK+q5gOyEseyatA0KK+q5gOqyve2YuA0KK+q5gOynhO2ZmA0KK+q5gOunjOq3vA0KK+q5gOyEseycpA0KK+q5gOygleyEnQ0KK+q5gOuPhOyjvA0KK+q5gOuzke2VnA0KK+q5gOyEseydvA0KK+q5gOyLnO2VmQ0KK+q5gOyImO2VmQ0KK+q5gOqwleq4sA0KK+q5gOyEseydvA0KK+q5gOyepeqwnA0KK+q5gOuNleq1kA0KK+q5gOq3vOuPmQ0KK+q5gOyEseydvA0KK+q5gOuzkeyasA0KK+q5gOyDgeyWuA0KK+q5gOq4sOybhQ0KK+q5gOyEseyerA0KK+q5gOq0keyyoA0KK+q5gOuzkey5mA0KK+q5gOyerOyInA0KK+q5gOyEseyhsA0KK+q5gOyerO2ZmA0KK+q5gOunjOyyoA0KK+q5gOyXsOyInA0KK+q5gOyEseyjvA0KK+q5gOuNle2DnA0KK+q5gOybkOq3nA0KK+q5gOyerO2YuA0KK+q5gOyEseykgA0KK+q5gO2DnOyInA0KK+q5gOygleq4sA0KK+q5gO2YnOuTnQ0KK+q5gOyEseynhA0KK+q5gOyaqeyjvA0KK+q5gOq4iOyZhA0KK+q5gOyerOuPhA0KK+q5gOyEseynhA0KK+q5gOy2mOydtA0KK+q5gO2YhOyhsA0KK+q5gO2drOuhgA0KK+q5gOyEsey2nA0KK+q5gOyihe2YuA0KK+q5gCDsmqkNCivquYDsnKDshK0NCivquYDshLHsuZgNCivquYDrs5Hrj4QNCivquYDsnqzsp4QNCivquYDsnqzshJ0NCivquYDshLHtg5wNCivquYDsoJXtmLgNCivquYDsmqntlbQNCivquYDshLHquLgNCivquYDshLHtg5wNCivquYDsp4TtmZgNCivquYDrqoXshKANCivquYDsmIHssqANCivquYDshLHtg5wNCivquYDtmqjsoJANCivquYDtg5zsooUNCivquYDsmZXshowNCivquYDshLHtg5wNCivquYDtg5zrnoANCivquYDrhbjtnawNCivquYDquLDshKANCivquYDshLHtg50NCivquYDsiJjssqANCivquYDsoJDsmrANCivquYDshLHsnKQNCivquYDshLHtlYQNCivquYDrs5HsmIENCivquYDsnqztmLgNCivquYDrs5HsiKANCivquYDshLHtlZwNCivquYDsooXsnqwNCivquYDsm5Tqsr0NCivquYDtmY3shKANCivquYDshLHtmLgNCivquYDrs5HquLgNCivquYDrqoXso7wNCivquYDtmqjrjZUNCivquYDshLHtmLgNCivquYDrjZXrqoUNCivquYDrp4zquLANCivquYDshLHqt7wNCivquYDshLHtmLgNCivquYDrhbjquLANCivquYDsnqzsmKUNCivquYDrqoXrjZUNCivquYDshLHtmZgNCivquYDsvozrrLgNCivquYDsmIHrpoQNCivquYDtg5ztlZgNCivquYDshLHtmZgNCivquYDsnYTrj4QNCivquYDshJ3rtIkNCivquYDsiJjsmqkNCivquYDshLHtm4gNCivquYDsg4HsiJgNCivquYDtjJDroZwNCivquYDssKjsnbQNCivquYDshLHtm4gNCivquYDsmKXtg5wNCivquYDsmIHrk50NCivquYDshJ3sobANCivquYDshLHtm4gNCivquYDssqDrtIkNCivquYDsooXspIANCivquYDssKzrqoUNCivquYDshLHtnawNCivquYDsg4Hso7wNCivquYDtlbTsiJgNCivquYDsoJXsl7QNCivquYDshLHtnawNCivquYDsnqzslaANCivquYDqsr3tg50NCivquYDsmIHsspwNCivquYDshLHtnawNCivquYDsiJzsmrANCivquYDsmKXrjZUNCivquYDsooXtnawNCivquYDshLjquLANCivquYDshLHtg5wNCivquYDsirnrnoANCivquYDrtInsi50NCivquYDshLjrjZUNCivquYDsooXsmqkNCivquYDtlbTtmZgNCivquYDsg4Hqta0NCivquYDshLjsl7ANCivquYDtg5zsi50NCivquYDshLHtmY0NCivquYDsnbzrjZUNCivquYDshLjsmYQNCivquYDsiJjrnb0NCivquYDsooXsnpANCivquYDrtoTshK0NCivquYDshLjsmrQNCivquYDrj5nshJ0NCivquYDtlonsiKANCivquYDqtJHsg4ENCivquYDshLjtmLgNCivquYDrr7jsp4QNCivquYDtlbTqtawNCivquYDsmqnqtowNCivquYDshLjtm4gNCivquYDqt5zsm5ANCivquYDtmITrj5kNCivquYDsp4TshowNCivquYDshozqsr0NCivquYDrtoDshLENCivquYDsnqztmIQNCivquYDssqDshKANCivquYDshozrgqgNCivquYDsmIHrj5kNCivquYDqtIDsm4UNCivquYDquLDsm4UNCivquYDshozrjZUNCivquYDtlYTrs7UNCivquYDqtIDtnLQNCivquYDsoJXsiJwNCivquYDshozrjZUNCivquYDtg5zsmIENCivquYDsm5DquLANCivquYDquLDqtawNCivquYDshozrj4QNCivquYDsiJjtmIQNCivquYDsnKTrgqgNCivquYDsnqzqtZANCivquYDshozrj4QNCivquYDsnoTrjZUNCivquYDqt5zsm5ANCivquYDqt5zssqANCivquYDshozrk50NCivquYDrtIntmZgNCivquYDtg5ztmZgNCivquYDrs5Hsp4QNCivquYDshozrsLANCivquYDqs4TsobANCivquYDsmIHsmqkNCivquYDsiJnsl7QNCivquYDshozshKANCivquYDtg53slaANCivquYDstpjsiJgNCivquYDtjJDslrgNCivquYDshozsiJwNCivquYDsmqnsmIENCivquYDquLDslrUNCivquYDsoJXtmLgNCivquYDshozsl7ANCivquYDslYXshKANCivquYDtmITspJENCivquYDrgqjsiKANCivquYDshozsobANCivquYDshLHsiJkNCivquYDsg4Hsl7QNCivquYDsmIHtnawNCivquYDshozssqANCivquYDrs5HqsJENCivquYDsmqnrnoANCivquYDrp4ztnLQNCivquYDshozssqANCivquYDsl7DtlZkNCivquYDshLHtnawNCivquYDquLDshJ0NCivquYDshozstpgNCivquYDrjIDtg5wNCivquYDqsr3snbQNCivquYDsooXrqqkNCivquYDshoztlZwNCivquYDsmrDrrLgNCivquYDsooXspIANCivquYDsmIHtnawNCivquYDshoztlqUNCivquYDrs5HssqANCivquYDqsJXqt7wNCivquYDsoJXroKgNCivquYDsiJjqsJENCivquYDsmqnsnbwNCivquYDsobDrrLQNCivquYDqsJHtmLgNCivquYDsiJjqsJUNCivquYDtg5zsmrANCivquYDtlbTrsLANCivquYDtnazqsr0NCivquYDsiJjqsr0NCivquYDqsr3tmLgNCivquYDrtIntnawNCivquYDspJHqt5wNCivquYDsiJjqtIANCivquYDsoJXsm5ANCivquYDtmJzrqqgNCivquYDrs5HsiJgNCivquYDsiJjquLgNCivquYDqs4TsnpANCivquYDtmY3tlZkNCivquYDsmIHrprwNCivquYDsiJjquLgNCivquYDsiJjsm5ANCivquYDsiJjrjIANCivquYDtnazsnoQNCivquYDsiJjquLgNCivquYDslrXsm4UNCivquYDsmIHsl7ANCivquYDsnqXsmrANCivquYDsiJjquLgNCivquYDrr7jsmrQNCivquYDtg5zsmrANCivquYDrtoTrqoUNCivquYDsiJjrhYQNCivquYDrj5ntmLgNCivquYDtnaztj6wNCivquYDquLjshKANCivquYDsiJjrj5kNCivquYDsp4DsiJwNCivquYDshLHsmrANCivquYDso7zstpwNCivquYDsiJjrp4wNCivquYDsooXssKwNCivquYDsiJjtg5wNCivquYDrs7TrkZANCivquYDsiJjrs5ENCivquYDsiJjrtoQNCivquYDsoJXrj4QNCivquYDsp4TsnbQNCivquYDsiJjrs7UNCivquYDtnazshJ0NCivquYDshLHspIANCivquYDtmY3tmZgNCivquYDsiJjrs7UNCivquYDquLDrsLENCivquYDsmIHsnbQNCivquYDrtInrtoQNCivquYDsiJjsg4ENCivquYDssL3rgqgNCivquYDssYTqs6QNCivquYDspJHsmqkNCivquYDsiJjshJ0NCivquYDsiJjtlZkNCivquYDtg5ztg5wNCivquYDsg4Hsi50NCivquYDsiJjshKANCivquYDrrLTtmLgNCivquYDtlZzshKANCivquYDsoJDsmKUNCivquYDsiJjsi50NCivquYDrrLTtmIQNCivquYDrqoXsmqkNCivquYDqsr3rp4wNCivquYDsiJjsl7ANCivquYDsmIHqt5wNCivquYDqt5zsiJgNCivquYDsnqXssqANCivquYDsiJjsl7QNCivquYDrqoXquIgNCivquYDsmqntlZkNCivquYDrp5DshKANCivquYDsiJjsl7QNCivquYDsoJXtmLgNCivquYDtmqjstpwNCivquYDsg4HsmYQNCivquYDsiJjsmIENCivquYDshJ3sl7ANCivquYDtlonqt7wNCivquYDsg4HsiJgNCivquYDsiJjsmqkNCivquYDsoJXshJ0NCivquYDsp4Tso7wNCivquYDstpjrj4wNCivquYDsiJjsmrQNCivquYDtg5zrqoUNCivquYDrgpnsp4QNCivquYDsnpDsiJgNCivquYDsiJjsm4UNCivquYDsnqzsiJgNCivquYDsp4TrspQNCivquYDqtJHsm4UNCivquYDsiJjsm5ANCivquYDrs7XshKANCivquYDsnqzsnYANCivquYDsnbzshJ0NCivquYDsiJjsnbUNCivquYDrqqjquLANCivquYDrjIDsl7QNCivquYDso7zsl70NCivquYDsiJjsnbwNCivquYDsnbjquLANCivquYDquLDsnqwNCivquYDrs5HtmZgNCivquYDsiJjsoJUNCivquYDqtJHtnaANCivquYDsnqzquIgNCivquYDri6zsi50NCivquYDsiJjsooUNCivquYDstqnsl7QNCivquYDsiJzsnpANCivquYDqsr3sobANCivquYDsiJjspIANCivquYDquLDsiJwNCivquYDrs5HrtIkNCivquYDshLHrhYQNCivquYDsiJjssL0NCivquYDsnbztmLgNCivquYDtg5ztmLgNCivquYDsnbjsmrANCivquYDsiJjssqANCivquYDsl7TsnKQNCivquYDsmKXtmLgNCivquYDsi5zsiJgNCivquYDsiJjssqANCivquYDqs4Tqt6ANCivquYDsiJzshKANCivquYDsm4XrtoQNCivquYDsiJjtg5wNCivquYDrk7HquLgNCivquYDrgpjquLANCivquYDsg4HsmIENCivquYDsiJjtg5wNCivquYDstpjstpgNCivquYDsnYDsobANCivquYDrqoXsiJgNCivquYDsiJjtg50NCivquYDquIjsiJwNCivquYDsoJXsobANCivquYDtg5zshKANCivquYDsiJjtg50NCivquYDsmrDquLANCivquYDssL3quLANCivquYDsnbjsiKANCivquYDsiJjtmIQNCivquYDrr7jsi50NCivquYDsnqXro6ENCivquYDsoJXqtoENCivquYDsiJjtmIQNCivquYDqtJHsnpANCivquYDsp4TtmIQNCivquYDquIjqt6ANCivquYDsiJjtmLgNCivquYDssL3smrANCivquYDsnbzsi50NCivquYDsm5DquLgNCivquYDsiJjtmLgNCivquYDso7zrp4wNCivquYDshLHsnpANCivquYDsnbXsnpANCivquYDsiJjtmLgNCivquYDsg4Hro6ENCivquYDrsKnsm5ANCivquYDsnKDtlZwNCivquYDsiJjtmLgNCivquYDsmYTsnbwNCivquYDtlonrjZUNCivquYDrs5HtmIQNCivquYDsiJjtmZQNCivquYDsp4DsiJgNCivquYDshLHsm5ANCivquYDshLHtlZwNCivquYDsiJjtmZgNCivquYDstpjtmIENCivquYDrj5nsp4QNCivquYDrj5nsmKUNCivquYDsiJjtmZgNCivquYDrs5HrspQNCivquYDshLHssqANCivquYDso7zshJ0NCivquYDsiJjtmqgNCivquYDsmIHsl7ANCivquYDsoJXrjZUNCivquYDsnKTsiJgNCivquYDsiJjtmqgNCivquYDrs5HsoJANCivquYDsmIHsobANCivquYDqs4TsmKQNCivquYDsiJnsnbQNCivquYDsoJXssqANCivquYDsnqXrnpgNCivquYDshJ3siJgNCivquYDsiJnsnpANCivquYDsmqnspJENCivquYDsm5TsoJUNCivquYDsg4HrhbgNCivquYDsiJnsnpANCivquYDri7TsiJgNCivquYDsmrDsiJwNCivquYDsgrzsiJkNCivquYDsiJnsnpANCivquYDqt5zshKANCivquYDtlbTtmZQNCivquYDsooXqt7wNCivquYDsiJntmIQNCivquYDsnqXsobANCivquYDsnqXtg5wNCivquYDrrLTsmIENCivquYDsiJntnawNCivquYDsp4Tsg4ENCivquYDrj5nsl7QNCivquYDtlbTshLgNCivquYDsiJzqta0NCivquYDspIDqtowNCivquYDsnbjtg50NCivquYDsooXsiJgNCivquYDsiJzquIgNCivquYDsmIHtlYQNCivquYDsmIHsiKANCivquYDsiJnqtowNCivquYDsiJzquLANCivquYDsnKTqt7wNCivquYDshozshKANCivquYDsirnsl7ANCivquYDsiJzrgqgNCivquYDsmIHshLENCivquYDrrLjrtIkNCivquYDshLHtmZQNCivquYDsiJzrgqgNCivquYDsiJzsi50NCivquYDsiJzquLgNCivquYDssqDsm5ANCivquYDsiJzrgqgNCivquYDrqoXqt5wNCivquYDrrLjsobANCivquYDssL3smIENCivquYDsiJzrgqgNCivquYDtmJXsnpANCivquYDrj4TtmLgNCivquYDqtoztl4wNCivquYDsiJzrjZUNCivquYDsg4HsiJwNCivquYDsp4Tsm4UNCivquYDsnITssqANCivquYDsiJzrj5kNCivquYDrqoXsnbwNCivquYDsooXtnLQNCivquYDsnqzsg4ENCivquYDsiJzrk50NCivquYDsmIHsnbwNCivquYDshLjsl7QNCivquYDshJ3tmY0NCivquYDsiJzroYANCivquYDrs5HspIANCivquYDtlZzqt7wNCivquYDqt5ztmZgNCivquYDsiJzrsLANCivquYDqtJHsm5ANCivquYDsg4Hso7wNCivquYDsoJDshK0NCivquYDsiJzrtoQNCivquYDsmrDqsr0NCivquYDtg5zsiJgNCivquYDsooXtg4ENCivquYDsiJzsg50NCivquYDsi6DsgrwNCivquYDsmIHsmIENCivquYDsooXtm4gNCivquYDsiJzshKANCivquYDqtZDquLANCivquYDsoJztmZQNCivquYDsoJXtnawNCivquYDsiJzshKANCivquYDqs6TtlZkNCivquYDshLHqtawNCivquYDsm5DtlZkNCivquYDsiJzsi50NCivquYDsoJXtmZgNCivquYDsmqnso7wNCivquYDrp5DtnLQNCivquYDsiJzslaANCivquYDsg4HssL0NCivquYDtmJzrj4QNCivquYDtmIHsmqkNCivquYDsiJzsl7ANCivquYDsooXsnbwNCivquYDsoJXsiJgNCivquYDsooXrj5kNCivquYDsiJzsl7ANCivquYDsg4HsnKQNCivquYDsnqztmLgNCivquYDstpjsp4QNCivquYDsiJzsl7ANCivquYDsmIHsi50NCivquYDsmIHsgrwNCivquYDsi6Dsm5ANCivquYDsiJzsmKUNCivquYDtmITsobANCivquYDqsr3tg5wNCivquYDrj4Tsl7QNCivquYDsiJzsmYQNCivquYDrs5HrtoQNCivquYDsoJXso7wNCivquYDsmKTsmKQNCivquYDsiJzsnbQNCivquYDtg5zsmIENCivquYDsiJztmLgNCivquYDsmIHshKANCivquYDsiJzsnbQNCivquYDtlontlqUNCivquYDshLHrjIANCivquYDtlZjrj5kNCivquYDsiJzsnbQNCivquYDsiJztmZgNCivquYDrs7TqtawNCivquYDsmIHsmIENCivquYDsiJzsnoQNCivquYDrkZDsg50NCivquYDsnqzquLANCivquYDtnaztg5wNCivquYDsiJzsnoQNCivquYDsmYTtnaANCivquYDstpjtmZgNCivquYDsiJjsiJgNCivquYDsiJzsnpANCivquYDrtInsiJgNCivquYDshJ3qtIANCivquYDrrLjsp4ANCivquYDsiJztmLgNCivquYDqsr3rrLQNCivquYDsoJXsmqkNCivquYDrspTsobANCivquYDsiJztmZQNCivquYDsmIHsnbQNCivquYDsiJjrjZUNCivquYDrgpnsl7ANCivquYDsiJztnawNCivquYDsoJXrp5ANCivquYDsoJXsi50NCivquYDsmKXrjIANCivquYDsiJztnawNCivquYDsnqzsi50NCivquYDtlbTtlZwNCivquYDqtJHqtowNCivquYDsiJztnawNCivquYDrtoTsi50NCivquYDsm5DtmLgNCivquYDqta3si50NCivquYDsiKDsnbQNCivquYDsnZjtnawNCivquYDshLHslZQNCivquYDrp4zsnqwNCivquYDsiKDsnbQNCivquYDspIDsp4ENCivquYDsoJXquLANCivquYDqt4Drj4wNCivquYDsirnqtawNCivquYDrj5ntmIQNCivquYDsmIHsnbgNCivquYAg7IicDQor6rmA7Iq56rWsDQor6rmA7ZmU7ZW0DQor6rmA7Iic66a8DQor6rmA64+Z7IudDQor6rmA7Iq566qpDQor6rmA7IOB7IStDQor6rmA7KKF7ZmUDQor6rmA7JiB7IiZDQor6rmA7Iq566+8DQor6rmA7KCQ64+MDQor6rmA7YOc7JqpDQor6rmA6riw6re8DQor6rmA7Iq57KCVDQor6rmA7KKF7Zi4DQor6rmA7IOB7ISdDQor6rmA7LaY7IiYDQor6rmA7Iq57KeEDQor6rmA7J6l7LKgDQor6rmA7Jyg6re8DQor6rmA7KKF64yADQor6rmA7Iq57Zi4DQor6rmA7YyQ7IicDQor6rmA66qF7Z2sDQor6rmA7KCV6riIDQor6rmA7Iuc6rK9DQor6rmA7KSA7ZmYDQor6rmA7Iq57Zi4DQor6rmA7Zi47J6EDQor6rmA7Iuc642VDQor6rmA7KSA7Z2sDQor6rmA7IOB7YyQDQor6rmA7ISd66y4DQor6rmA7Iuc64+ZDQor6rmA7JuQ7ZmYDQor6rmA7YOc6rWQDQor6rmA67KU6re8DQor6rmA7Iuc656YDQor6rmA67OR6recDQor6rmA6re57JWgDQor6rmA64Ko66qoDQor6rmA7Iuc7Jq0DQor6rmA7JiB7ZuIDQor6rmA7Jqp7J28DQor6rmA7Z2s7IudDQor6rmA7Iuc7ZWYDQor6rmA7Jyk7IiYDQor6rmA7Jqp7ZmYDQor6rmA6re87KCQDQor6rmA7Iuc7ZmYDQor6rmA66eM7LCsDQor6rmA7KO87Zi4DQor6rmA67aE642VDQor6rmA7Iuc7ZmYDQor6rmA7KeE7YOcDQor6rmA7Jqw6rK9DQor6rmA7ZWY656YDQor6rmA7Iud6recDQor6rmA7ISx7Ja1DQor6rmA7J207KO8DQor6rmA7IOB7JuQDQor6rmA7Iug7IiZDQor6rmA7ZWE7KGwDQor6rmA67OR7IiZDQor6rmA7KCV64usDQor6rmA7Iug7IudDQor6rmA64Ko7Zi4DQor6rmA7Iic7ISdDQor6rmA7YOc7KSADQor6rmA7Iug7Je0DQor6rmA7YOc7JuQDQor6rmA7ZeM7JuQDQor6rmA7ZWE7KCQDQor6rmA7Iug7JqwDQor6rmA67O164+EDQor6rmA7ZuI7ISdDQor6rmA7J6s7JuQDQor6rmA7Iug7J28DQor6rmA64yA7YOcDQor6rmA67aE7ZalDQor6rmA7ZiE7IiYDQor6rmA7Iuk6rK9DQor6rmA7J6E64usDQor6rmA7KCV7Zi4DQor6rmA67OR7IudDQor6rmA7Iuk6rSRDQor6rmA64us7Zi4DQor6rmA7KCQ7IStDQor6rmA7KO87JqxDQor6rmA7Iuk6rSRDQor6rmA64+E7IiYDQor6rmA64W47Je0DQor6rmA7LaY7JuQDQor6rmA7IyN6ri4DQor6rmA7KCV642VDQor6rmA7JiB64W4DQor6rmA7JaR7ISgDQor6rmA7IyN66GADQor6rmA6rK967O1DQor6rmA7JiB7Zi4DQor6rmA7YOc7IiYDQor6rmA7IyN67SJDQor6rmA6riI7JmEDQor6rmA7Jqp7JuQDQor6rmA66y47Jq0DQor6rmA7IyN7IStDQor6rmA7J2464+EDQor6rmA6rK97Zi4DQor6rmA7KKF6raMDQor6rmA7IyN7JWUDQor6rmA64+Z7IiZDQor6rmA6riw6rWsDQor6rmA7Iic7J6QDQor6rmA7JWE7IiYDQor6rmA7IaQ6raMDQor6rmA7KKF7IiYDQor6rmA6riI7J20DQor6rmA7JWF7J20DQor6rmA7Iic7IiYDQor6rmA7Jyk7IiYDQor6rmA64+Z7YOcDQor6rmA7JWI7IiYDQor6rmA7Iic6ri4DQor6rmA7IOB7IiYDQor6rmA6rSR7YOcDQor6rmA7JWU64KoDQor6rmA7J6l7IOdDQor6rmA67SJ7JikDQor6rmA67OR7JilDQor6rmA7JWg7JewDQor6rmA7J217JuQDQor6rmA7L6M7JilDQor6rmAIOuqqA0KK+q5gOyWkeyEnQ0KK+q5gOynhOyatA0KK+q5gO2VtOyEoA0KK+q5gOyYgeybkA0KK+q5gOyWkeyInA0KK+q5gOyDgeyErQ0KK+q5gOyEse2DnA0KK+q5gO2drOyXtA0KK+q5gOyWkeyInA0KK+q5gOywveykgA0KK+q5gOyekeudvQ0KK+q5gOyerOyIoA0KK+q5gOyWkeyLnQ0KK+q5gOq1kOyXtA0KK+q5gOydvOuNlQ0KK+q5gOuemOy2nA0KK+q5gOyWkeybhQ0KK+q5gOyDgeuemA0KK+q5gOyEoO2YhA0KK+q5gOyEseqzpA0KK+q5gOyWkeybhQ0KK+q5gOyInOyEnQ0KK+q5gOuqheyInA0KK+q5gOqyveyLnQ0KK+q5gOyWkeybkA0KK+q5gOyduOq4sA0KK+q5gOuqhe2VnA0KK+q5gOyEse2RnA0KK+q5gOyWkeyjvA0KK+q5gOq0gOq1rA0KK+q5gOu0ieydvA0KK+q5gOyjvOyatA0KK+q5gOyWke2ajA0KK+q5gOuvvO2drA0KK+q5gOq0keyaqQ0KK+q5gOyYpe2ZmA0KK+q5gOyWke2doA0KK+q5gOyerO2VnA0KK+q5gOuMgOq3nA0KK+q5gOyImOuNlQ0KK+q5gOyWke2drA0KK+q5gOq3nOq3nA0KK+q5gOustOyasA0KK+q5gOqwleunjA0KK+q5gOyWteuFhA0KK+q5gOyyoO2ZlA0KK+q5gOuNleqyvQ0KK+q5gOyEuOusuA0KK+q5gOyWteunjA0KK+q5gOycpOyImA0KK+q5gO2YhOqxuA0KK+q5gO2DnOuloA0KK+q5gOyWteuwsA0KK+q5gOy5mO2YuA0KK+q5gOuzkeyEsQ0KK+q5gOyInOyDnQ0KK+q5gOyWteyImA0KK+q5gOu0ieq0gA0KK+q5gOyYgeyVhQ0KK+q5gOycpOq2jA0KK+q5gOyWuOyImQ0KK+q5gOyEseycpA0KK+q5gOusuO2ZjQ0KK+q5gOyiheuzuA0KK+q5gOyWuOyLnQ0KK+q5gOyImOybkA0KK+q5gOy2mOyLnQ0KK+q5gOu2hOqyvQ0KK+q5gOyXsOyEoA0KK+q5gOu0ie2ZmA0KK+q5gOuzte2YhA0KK+q5gO2ZjeqyvQ0KK+q5gOyXsOyEoA0KK+q5gOyiheuloA0KK+q5gO2ZjeyLnQ0KK+q5gOuMgOuPmQ0KK+q5gOyXsOyImA0KK+q5gOy2mOqzpA0KK+q5gOyYge2ZmA0KK+q5gOydmOyekA0KK+q5gOyXsOyImA0KK+q5gOygleq3nA0KK+q5gOygleyEsQ0KK+q5gOyMjeyYpA0KK+q5gOyXsOyImA0KK+q5gOyCvOyLnQ0KK+q5gOyaqey4oQ0KK+q5gOydtOydvA0KK+q5gOyXsOyInA0KK+q5gOq4iOyEnQ0KK+q5gOynhOuPhA0KK+q5gO2WieyihQ0KK+q5gOyXsOydtA0KK+q5gOunjOyLnQ0KK+q5gOuylO2DgQ0KK+q5gOyiheyerA0KK+q5gOyXsOyhsA0KK+q5gOyduOyyoA0KK+q5gOuPmeq3vA0KK+q5gOunkOyImA0KK+q5gOyXsOyhsA0KK+q5gOyEseyDnQ0KK+q5gOyduOq3nA0KK+q5gOyaqeyekA0KK+q5gOyXsOyjvA0KK+q5gOyEneyVlA0KK+q5gOyGjOuPmQ0KK+q5gOyEoOyImA0KK+q5gOyXsO2WpQ0KK+q5gOyduOyihQ0KK+q5gO2DnOyaqQ0KK+q5gOyYgeyInA0KK+q5gOyXsO2drA0KK+q5gOyWkeq3vA0KK+q5gOygkOyjvA0KK+q5gOuzkeyjvA0KK+q5gOyXsO2drA0KK+q5gO2Yle2ZjQ0KK+q5gOyerOq4uA0KK+q5gOyImOq4uA0KK+q5gOyYgeqwkQ0KK+q5gOyiheuztA0KK+q5gOywrOqyvQ0KK+q5gO2DnOyYgQ0KK+q5gOyYgeqzhA0KK+q5gOycpOu2hA0KK+q5gOyYpeq3nA0KK+q5gO2DnOuPhA0KK+q5gOyYgeqzhA0KK+q5gOqwkeyImQ0KK+q5gOq1rOqzhA0KK+q5gOuPmeyXsA0KK+q5gOyYgeqztQ0KK+q5gOyDge2ZlA0KK+q5gOyEuOyasA0KK+q5gOyynOyXsA0KK+q5gOyYgeq0gA0KK+q5gOygleqyvQ0KK+q5gO2VtOuvvA0KK+q5gOyaqeyerA0KK+q5gOyYgeq0kQ0KK+q5gOycpOq4uA0KK+q5gOychOyImA0KK+q5gOqyveq3nA0KK+q5gOyYgeq1kA0KK+q5gOyYge2DnA0KK+q5gOq4sO2DnA0KK+q5gOyiheqwgQ0KK+q5gOyYgeq1rA0KK+q5gOyxhO2ZlA0KK+q5gOyiheybkA0KK+q5gOuzkeydvA0KK+q5gOyYgeq1rA0KK+q5gOybkOybkA0KK+q5gOyaqe2drA0KK+q5gOyyoOyaqQ0KK+q5gOyYgeq1rA0KK+q5gOyYge2DnA0KK+q5gOyYge2YhA0KK+q5gO2VtOyLnQ0KK+q5gOyYgeq1rQ0KK+q5gOykgOyaqQ0KK+q5gOyehOyImA0KK+q5gOuptOyEsQ0KK+q5gOyYgeq1rQ0KK+q5gOuPmeyEsQ0KK+q5gOyEse2YhA0KK+q5gOyerO2YuA0KK+q5gOyYgeq3gA0KK+q5gOyInOynhA0KK+q5gOyInOyaqQ0KK+q5gOygleuPmQ0KK+q5gOyYgeq3nA0KK+q5gOyaqeuylA0KK+q5gOuPme2ZmA0KK+q5gOyImOynhA0KK+q5gOyYgeq3nA0KK+q5gOyEneyEsQ0KK+q5gOqyveqyvQ0KK+q5gO2VmeyYgQ0KK+q5gOyYgeq3nA0KK+q5gOyaqeyLnQ0KK+q5gOq3gOuNlQ0KK+q5gOyYge2XjA0KK+q5gOyYgeq3nA0KK+q5gO2VnOyhsA0KK+q5gOq1rOyerA0KK+q5gOyYgeyWtQ0KK+q5gOyYgeq3nA0KK+q5gOuzkeyImA0KK+q5gO2bhOuPhA0KK+q5gO2DnO2ZmA0KK+q5gOyYgeq3oA0KK+q5gOyerOq3nA0KK+q5gOuvvO2doA0KK+q5gO2VhOyaqQ0KK+q5gOyYgeq3vA0KK+q5gOynhOycpA0KK+q5gOyerOyLrA0KK+q5gOyerOydvA0KK+q5gOyYgeq3vA0KK+q5gOyasO2ZmA0KK+q5gOqyve2DnA0KK+q5gO2YhOu0iQ0KK+q5gOyYgeq4sA0KK+q5gOuqheyYpQ0KK+q5gOycpOyehA0KK+q5gOqyveyaqQ0KK+q5gOyYgeq4sA0KK+q5gOq0ke2YuA0KK+q5gOqyve2ZmA0KK+q5gOqyveyYpA0KK+q5gOyYgeq4sA0KK+q5gOqxtOyjvA0KK+q5gOyEneydmA0KK+q5gO2YleyatA0KK+q5gOyYgeq4sA0KK+q5gO2VnOykkQ0KK+q5gOuPmeyImQ0KK+q5gOyWkeyYgQ0KK+q5gOyYgeq4uA0KK+q5gO2drOyEnQ0KK+q5gOyEseuemA0KK+q5gOywve2YhA0KK+q5gOyYgeq4uA0KK+q5gOuqhe2YuA0KK+q5gOykkeyaqQ0KK+q5gOyaqe2DnA0KK+q5gOyYgeq4uA0KK+q5gOyiheyImA0KK+q5gO2MkOyaqQ0KK+q5gOyaqeyImQ0KK+q5gOyYgeq4uA0KK+q5gOyEneyInA0KK+q5gOyYpOyLnQ0KK+q5gOyYgeyEnQ0KK+q5gOyYgeuMgA0KK+q5gO2VtOuFhA0KK+q5gOyaqeydtA0KK+q5gOuFuOyyoA0KK+q5gOyYgeuMgA0KK+q5gOyngOq3nA0KK+q5gO2DnO2drA0KK+q5gOygle2drA0KK+q5gOyYgeuPhA0KK+q5gO2DnOyEnQ0KK+q5gO2DnOyerA0KK+q5gOyDgeyynA0KK+q5gOyYgeuPhA0KK+q5gOyerOuhnQ0KK+q5gOyGjOyLnQ0KK+q5gOyihe2YuA0KK+q5gOyYgeuPiA0KK+q5gOygleuPhA0KK+q5gOyihe2VmQ0KK+q5gOyehOyErQ0KK+q5gOyYgeuTnQ0KK+q5gOyehO2YhA0KK+q5gOyduOuPmQ0KK+q5gOuvuOyInA0KK+q5gOyYgeudvQ0KK+q5gOygleq3vA0KK+q5gOywve2WpQ0KK+q5gOyDgeyInA0KK+q5gOyYgeuegA0KK+q5gOyLoOqyvQ0KK+q5gOyaqeuPhA0KK+q5gOyblO2ZmA0KK+q5gOyYgeuegA0KK+q5gOyerO2ZmA0KK+q5gOycpOyaqQ0KK+q5gOyCvOuNlQ0KK+q5gOyYgeunjA0KK+q5gOuhneydvA0KK+q5gOy2mOyyoA0KK+q5gOunkOq0kQ0KK+q5gOyYgeunjA0KK+q5gOydvOu2gA0KK+q5gOyerO2DnA0KK+q5gO2YuOq3nA0KK+q5gOyYgeunjA0KK+q5gOyKueqwkQ0KK+q5gOyMjeqxtA0KK+q5gOyiheyhsA0KK+q5gOyYgeunjA0KK+q5gOyepeyLnQ0KK+q5gOq3gOydkQ0KK+q5gOygkOyLnQ0KK+q5gOyYgeuqqA0KK+q5gOyLnO2YuA0KK+q5gOywqOuPmQ0KK+q5gOyEseyEoA0KK+q5gOyYgeuqqA0KK+q5gOyEseyInA0KK+q5gOyiheyekA0KK+q5gOq0keyYgQ0KK+q5gOyYgeuvuA0KK+q5gOybkOq4sA0KK+q5gOyDge2YhA0KK+q5gOyerOyImA0KK+q5gOyYgeuvuA0KK+q5gOyiheyEsQ0KK+q5gOydmOydtA0KK+q5gOyEoO2YhA0KK+q5gOyYgeuwsA0KK+q5gOyYgeq4uA0KK+q5gOuqheusuA0KK+q5gOywveydtA0KK+q5gOyYgeuwsA0KK+q5gOycpOyIoA0KK+q5gOyYgeq3vA0KK+q5gO2Vme2ajA0KK+q5gOyYgeu0iQ0KK+q5gOyihe2YuA0KK+q5gOyImOuwsQ0KK+q5gOyduO2ZmA0KK+q5gOyYgeu0iQ0KK+q5gOyDgeyEnQ0KK+q5gOq0keq1rQ0KK+q5gOyEseqyvQ0KK+q5gOyYgeu2gA0KK+q5gOyerO2YuA0KK+q5gOq4uOq3vA0KK+q5gO2DnOuemA0KK+q5gOyYgeu5iA0KK+q5gOygleyduA0KK+q5gOusuOyEnQ0KK+q5gOyImOybkA0KK+q5gOyYgeyCvA0KK+q5gOyImOyEnQ0KK+q5gOyaqeqzpA0KK+q5gOyerOyglQ0KK+q5gOyYgeyCvA0KK+q5gOq3nOyXtA0KK+q5gOydte2ZmA0KK+q5gOyYge2ZmA0KK+q5gOyYgeyDgQ0KK+q5gOyYgeyngQ0KK+q5gOywveyImA0KK+q5gOyEseyekA0KK+q5gOyYgeyEnQ0KK+q5gOyDge2WpQ0KK+q5gOyerOyImA0KK+q5gOynhOyEuA0KK+q5gOyYgeyEnQ0KK+q5gOyImOuvuA0KK+q5gOustOyyoA0KK+q5gOq3nOykgA0KK+q5gOyYgeyEnQ0KK+q5gOyDgeyYgQ0KK+q5gOyDgeq3nA0KK+q5gOu0ieycpA0KK+q5gOyYgeyEnQ0KK+q5gO2YleyXsA0KK+q5gO2MkOyErQ0KK+q5gOyDgeydvA0KK+q5gOyYgeyEnQ0KK+q5gOydhOyLnQ0KK+q5gOuzkeyEoA0KK+q5gOydtOqyvQ0KK+q5gOyYgeyEnQ0KK+q5gOuvuOuztQ0KK+q5gOyYgeuhnQ0KK+q5gOuMgOunjA0KK+q5gOyYgeyEsQ0KK+q5gOybkO2XjA0KK+q5gOunueydtA0KK+q5gOuzkeyasA0KK+q5gOyYgeyImA0KK+q5gO2XjOyDgQ0KK+q5gOq4iOyInA0KK+q5gOyerOu2hA0KK+q5gOyYgeyImA0KK+q5gO2drOyImQ0KK+q5gOyEuOq4uA0KK+q5gOuzkeyImA0KK+q5gOyYgeyImA0KK+q5gO2YleyVoA0KK+q5gOqwkeq4sA0KK+q5gO2drOyXtA0KK+q5gOyYgeyImA0KK+q5gOyerOq1kA0KK+q5gOyInOq0kQ0KK+q5gOyaqe2YhA0KK+q5gOyYgeyImA0KK+q5gOu0ie2drA0KK+q5gOuMgOyLnQ0KK+q5gO2aqOyyoA0KK+q5gOyYgeyImA0KK+q5gOyEneyyoA0KK+q5gOustOustQ0KK+q5gOyyoOyekA0KK+q5gOyYgeyImA0KK+q5gOyWkeq4sA0KK+q5gOygleyasA0KK+q5gOyYgeq3oA0KK+q5gOyYgeyImA0KK+q5gOygkOu2hA0KK+q5gOyInOycpA0KK+q5gOyaqe2DnA0KK+q5gOyYgeyImA0KK+q5gOqwkeuCnA0KK+q5gOyjvO2drA0KK+q5gOuzkeyXtA0KK+q5gOyYgeyImA0KK+q5gOqyve2drA0KK+q5gOyduO2YuA0KK+q5gOyXsOyglQ0KK+q5gOyYgeyImA0KK+q5gOuRkOuPhA0KK+q5gO2VhO2DnA0KK+q5gOyduOyLnQ0KK+q5gOyYgeyImA0KK+q5gOy2mO2XjA0KK+q5gOykgOyInA0KK+q5gOyDgeq4sA0KK+q5gOyYgeyImA0KK+q5gOyEse2YuA0KK+q5gOq4iOyhsA0KK+q5gOyjvOydtA0KK+q5gOyYgeyImA0KK+q5gO2XjOq2jA0KK+q5gOynhOuFuA0KK+q5gOqzhOq4uA0KK+q5gOyYgeyImQ0KK+q5gOyDgeq3vA0KK+q5gO2VnOuqqQ0KK+q5gOyDgeyXtA0KK+q5gOyYgeyImQ0KK+q5gOygleyXsA0KK+q5gOydtOyEnA0KK+q5gOqzhOq3vA0KK+q5gOyYgeyImQ0KK+q5gOq2jOyyoA0KK+q5gOyaqeuNlQ0KK+q5gOuPmeunjA0KK+q5gOyYgeyImQ0KK+q5gOyerOq3nA0KK+q5gOunkOu2hA0KK+q5gOyaqeykgA0KK+q5gOyYgeyImQ0KK+q5gOuMgOyImA0KK+q5gOuvvOyLnQ0KK+q5gOyYgeyEoA0KK+q5gOyYgeyImQ0KK+q5gO2drOq3oA0KK+q5gOyiheqyvQ0KK+q5gOybkOuqqA0KK+q5gOyYgeyImQ0KK+q5gOyyoOyYgQ0KK+q5gOyngOusuA0KK+q5gO2YnOuwsA0KK+q5gOyYgeyImQ0KK+q5gOyImOyduA0KK+q5gOyYgeynhA0KK+q5gOykkeqwkQ0KK+q5gOyYgeyImQ0KK+q5gOqwke2cmA0KK+q5gOywqOyaqQ0KK+q5gOq4sOyEoA0KK+q5gOyYgeyImQ0KK+q5gOydmOqyvQ0KK+q5gO2VnOq1rQ0KK+q5gOygle2WiQ0KK+q5gOyYgeyImQ0KK+q5gOyerOyerA0KK+q5gOuLrOyLnQ0KK+q5gOq4iOu2hA0KK+q5gOyYgeyImQ0KK+q5gO2Dne2DnQ0KK+q5gOq3vO2YuA0KK+q5gOy5mOq1kA0KK+q5gOyYgeyInA0KK+q5gOybkOyXsA0KK+q5gOybkOyLpA0KK+q5gOqyveyImA0KK+q5gOyYgeyInA0KK+q5gOqzhOuNlQ0KK+q5gOyDgeyyoA0KK+q5gOq4sOq4sA0KK+q5gOyYgeyInA0KK+q5gOyblOyXtA0KK+q5gOyEse2ZmA0KK+q5gOuPmeyihQ0KK+q5gOyYgeyInA0KK+q5gOyynOyEsQ0KK+q5gO2Zjeq1rA0KK+q5gOyXsO2YnA0KK+q5gOyYgeyLnQ0KK+q5gOyDgeq4uA0KK+q5gOyEneyXsA0KK+q5gO2drOq0gA0KK+q5gOyYgeyLnQ0KK+q5gOywveyVoA0KK+q5gOuMgOuylA0KK+q5gOyKueyehA0KK+q5gOyYgeyLnQ0KK+q5gO2YhOyaqQ0KK+q5gOyghOuTnQ0KK+q5gOuvvO2ZlA0KK+q5gOyYgeyLnQ0KK+q5gOyaqeyjvA0KK+q5gOyehOyVlA0KK+q5gOuzke2YuA0KK+q5gOyYgeyLnQ0KK+q5gO2DnOyLnQ0KK+q5gOyaqeyImA0KK+q5gOygleydtA0KK+q5gOyYgeyLnQ0KK+q5gO2Yleq3vA0KK+q5gOyDge2doA0KK+q5gOykke2YuA0KK+q5gOyYgeyLnQ0KK+q5gOyDgeyLnQ0KK+q5gOq1rOyImQ0KK+q5gO2Sje2drA0KK+q5gOyYgeyLnQ0KK+q5gOuMgO2VnA0KK+q5gOyLnOyYpQ0KK+q5gOyehOq0gA0KK+q5gOyYgeyLnQ0KK+q5gOyepeyImQ0KK+q5gO2MkO2YhA0KK+q5gOyerOyLnQ0KK+q5gOyYgeyLnQ0KK+q5gOywveybhQ0KK+q5gOyerO2biA0KK+q5gOyiheyInA0KK+q5gOyYgeyLoA0KK+q5gO2DnOyImA0KK+q5gOuPmeyErQ0KK+q5gOq1reqwkQ0KK+q5gOyYgeyYpQ0KK+q5gOyduO2YhA0KK+q5gOyEse2drA0KK+q5gOyerOuztQ0KK+q5gOyYgeyYpQ0KK+q5gOywve2VnA0KK+q5gOu0ieugpA0KK+q5gO2ZjeyasQ0KK+q5gOyYgeyYpQ0KK+q5gO2DneuTnQ0KK+q5gOyYpOyYgQ0KK+q5gOq4sOyhsA0KK+q5gOyYgeyYpQ0KK+q5gOuMgO2ZmA0KK+q5gOuzke2YlQ0KK+q5gOyYgeyLnQ0KK+q5gOyYgeyZhA0KK+q5gOunie2YuA0KK+q5gOyYgeunjA0KK+q5gOyGjO2ZlA0KK+q5gOyYgeyZhA0KK+q5gOyDgeyxhA0KK+q5gOyngOydvA0KK+q5gOygleykgA0KK+q5gOyYgeyasA0KK+q5gOuPmeyatA0KK+q5gOu2hOyYgQ0KK+q5gO2drOuqqA0KK+q5gOyYgeyblA0KK+q5gOyYgeyyoA0KK+q5gO2DnOunjA0KK+q5gOuLrO2YuA0KK+q5gOyYgeycpA0KK+q5gOygleunjA0KK+q5gOq4sOyEsQ0KK+q5gOyYgeq4sA0KK+q5gOyYgeydgA0KK+q5gOyDgeyErQ0KK+q5gO2DnOuztQ0KK+q5gOuLrOusuA0KK+q5gOyYgeydtA0KK+q5gOyDgeuwsA0KK+q5gOyYgeyXsA0KK+q5gOyKueuPjA0KK+q5gOyYgeyduA0KK+q5gOyYge2YuA0KK+q5gO2YnOyerA0KK+q5gOuemOuPhA0KK+q5gOyYgeydvA0KK+q5gO2DnO2DnA0KK+q5gOyYpeq3nA0KK+q5gOyngO2ZlA0KK+q5gOyYgeydvA0KK+q5gOuzkeuqqA0KK+q5gOyyreyLnQ0KK+q5gOqyveynhA0KK+q5gOyYgeyekA0KK+q5gO2DgOybkA0KK+q5gOyCrO2drA0KK+q5gOuzke2YuA0KK+q5gOyYgeyekA0KK+q5gOyImeynhA0KK+q5gOyGjOq4uA0KK+q5gO2DnO2DnA0KK+q5gOyYgeyekA0KK+q5gOygleyImQ0KK+q5gO2DnOq4uA0KK+q5gOyCvOyDnQ0KK+q5gOyYgeyekA0KK+q5gO2DnOqzoA0KK+q5gOyGjOy2mA0KK+q5gOuvvOyXsA0KK+q5gOyYgeyekA0KK+q5gOyDgeywrA0KK+q5gOuCmeq3nA0KK+q5gOyKueyXtA0KK+q5gOyYgeyekA0KK+q5gOyasOykgA0KK+q5gOyLnOyIoA0KK+q5gO2VtOyImQ0KK+q5gOyYgeyekA0KK+q5gOqwle2aqA0KK+q5gOyerOybhQ0KK+q5gOyYge2YhA0KK+q5gOyYgeyekA0KK+q5gO2YuO2DnA0KK+q5gOynhOyaqQ0KK+q5gOuvvOyInA0KK+q5gOyYgeyhsA0KK+q5gOyduOuztQ0KK+q5gOq0keyerA0KK+q5gOywqOq1kA0KK+q5gOyYgeyhsA0KK+q5gOyiheyehQ0KK+q5gOqyveyImA0KK+q5gOuPmeyYgQ0KK+q5gOyYgeyjvA0KK+q5gOuMgOyLnQ0KK+q5gOyImOyhsA0KK+q5gOyaqe2ZjQ0KK+q5gOyYgeykgA0KK+q5gOybkOyasA0KK+q5gOyerOyaqQ0KK+q5gOyDge2drA0KK+q5gOyYgeykgA0KK+q5gOqzpOyynA0KK+q5gOyCrOyZhA0KK+q5gOyEneq3vA0KK+q5gOyYgeykgA0KK+q5gCDquLgNCivquYDshLHsnpANCivquYDshJ3ro6ENCivquYDsmIHspIANCivquYDrtInsiJgNCivquYDquIjsiJgNCivquYDtlYTsmqkNCivquYDsmIHsp4QNCivquYDssKjtjJQNCivquYDsg4HqtawNCivquYDsspztmZQNCivquYDsmIHsp4QNCivquYDsl7DshKANCivquYDsoJXsp4ANCivquYDrp5Dso7wNCivquYDsmIHsp4QNCivquYDsnKDtnawNCivquYDsnqXsnbwNCivquYDtmLjqt7wNCivquYDsmIHsp4QNCivquYDsooXsobANCivquYDsmIHtlZwNCivquYDtg5zro6ENCivquYDsmIHsp5ENCivquYDqt7zsnpANCivquYDsoJXqtowNCivquYDri6zssqANCivquYDsmIHsp5ENCivquYDsmrDtmIQNCivquYDsoJXqsbQNCivquYDrj5nsiJgNCivquYDsmIHssqANCivquYDrj5nsl7ANCivquYDtlZzshKANCivquYDrkZDtg5wNCivquYDsmIHssqANCivquYDsg4HtlokNCivquYDsoJXqs4QNCivquYDsmIHqtowNCivquYDsmIHssqANCivquYDqsr3tlZkNCivquYDrs7XtmIQNCivquYDsg4HqtowNCivquYDsmIHstpgNCivquYDqt5ztm4gNCivquYDsgrzsmrANCivquYDshLHtmZgNCivquYDsmIHstpgNCivquYDshLHsm5ANCivquYDsmIHstpwNCivquYDsg4HqtowNCivquYDsmIHstpwNCivquYDshLHqt7wNCivquYDsnqzrj5kNCivquYDqt7ztmZgNCivquYDsmIHstpwNCivquYDsg4Htg50NCivquYDsmIHqta0NCivquYDsnqzsnqwNCivquYDsmIHstpwNCivquYDtmITrj4QNCivquYDsnKTsmKUNCivquYDtmLjsmqkNCivquYDsmIHstpwNCivquYDrp4ztmZQNCivquYDsooXsmYQNCivquYDsmrDrj4QNCivquYDsmIHsuaANCivquYDsg4HsiJwNCivquYDsmIHsi50NCivquYDsnKTqt5wNCivquYDsmIHtg5wNCivquYDtlZzroZ0NCivquYDsmIHsnpANCivquYDrs5HsnbwNCivquYDsmIHtg5wNCivquYDsg4HtmIQNCivquYDsmbjrqqgNCivquYDrtoTrjIANCivquYDsmIHtg50NCivquYDsmIHsi50NCivquYDsl7DsmKUNCivquYDsooXssKwNCivquYDsmIHtg50NCivquYDsm5Ttl4wNCivquYDrp5DtmqgNCivquYDssq3sspwNCivquYDsmIHtg50NCivquYDsiJjsoJUNCivquYDqt5zsmrANCivquYDtm4jrjZUNCivquYDsmIHtg50NCivquYDsooXtg5wNCivquYDtmLjrspQNCivquYDrs7XsmqkNCivquYDsmIHtlZkNCivquYDsnbXsmKQNCivquYDsg4HsiJgNCivquYDsnbjqt5wNCivquYDsmIHtlZwNCivquYDsm5DqtIANCivquYDshLHtmJUNCivquYDsm5TquLgNCivquYDsmIHtmIQNCivquYDtmLjquLANCivquYDquIjsm5ANCivquYDtg5zsiJgNCivquYDsmIHtmLgNCivquYDsmIHqtawNCivquYDsnqzsl7ANCivquYDsiKDsm5ANCivquYDsmIHtmLgNCivquYDsmIHtmZgNCivquYDtmqjqtowNCivquYDqsr3qt7wNCivquYDsmIHtmLgNCivquYDsmKTqt5wNCivquYDsoJDsoIENCivquYDssKjtmZgNCivquYDsmIHtmLgNCivquYDsiJzsi50NCivquYDshoztg5wNCivquYDtlZnsiKANCivquYDsmIHtmLgNCivquYDshozsmrANCivquYDsnqzsmIENCivquYDsiJzshK0NCivquYDsmIHtmLgNCivquYDtmITshJ0NCivquYDrs5HsiKANCivquYDsooXrqqgNCivquYDsmIHtmLgNCivquYDsooXrjIANCivquYDsoJXssqANCivquYDtmITtmZgNCivquYDsmIHtmLgNCivquYDstqnsl7ANCivquYDrs5HtmIQNCivquYDtjJDsooUNCivquYDsmIHtmLgNCivquYDshLHroZwNCivquYDrp4zssqANCivquYDsmIHrjZUNCivquYDsmIHtmZQNCivquYDsooXsmrANCivquYAg6rK9DQor6rmA7ZeM7KSADQor6rmA7JiB7ZmYDQor6rmA6rCR7IicDQor6rmA7J6s7JWgDQor6rmA7ISx66eMDQor6rmA7JiB7ZmYDQor6rmA7JiB7KGwDQor6rmA7J247ZmYDQor6rmA6riw7J28DQor6rmA7JiB7ZmYDQor6rmA7Z2s7JiBDQor6rmA6rSR7JWgDQor6rmA7LC97KCVDQor6rmA7JiB7ZmYDQor6rmA66+86rK9DQor6rmA67SJ7ZmYDQor6rmA7J6l7Iq5DQor6rmA7JiB7ZmYDQor6rmA7KCV64yADQor6rmA7ZiE7IiZDQor6rmA7IOB67CwDQor6rmA7JiB7Z2sDQor6rmA7IOB7IS4DQor6rmA7KCV7Z2sDQor6rmA7IK865OdDQor6rmA7JiB7Z2sDQor6rmA7KKF7ZmYDQor6rmA7IOB67aADQor6rmA7J287IicDQor6rmA7JiB7Z2sDQor6rmAIOyekA0KK+q5gOydvOyEnQ0KK+q5gOyEneuTnQ0KK+q5gOyYge2drA0KK+q5gOyaqeyDgQ0KK+q5gOqyveyEnQ0KK+q5gOyGjOq3vA0KK+q5gOyYge2drA0KK+q5gOq3nO2drA0KK+q5gOyYgeyepQ0KK+q5gOyerOyImA0KK+q5gOyYge2drA0KK+q5gOynhO2DnA0KK+q5gO2Zje2DnA0KK+q5gOyEseuRkA0KK+q5gOyYpOq4iA0KK+q5gOqyveyyoA0KK+q5gOygle2XjA0KK+q5gOyEseydtA0KK+q5gOyYpOq4sA0KK+q5gOuTneuNlQ0KK+q5gOyerOyhsA0KK+q5gOqyveyEnQ0KK+q5gOyYpOyImA0KK+q5gOunjO2drA0KK+q5gOygleuztQ0KK+q5gOuRkOyerA0KK+q5gOyYpOykkQ0KK+q5gOyEseyihQ0KK+q5gOyEseumrA0KK+q5gOycpOuztA0KK+q5gOyYpOykkQ0KK+q5gO2DnOykkQ0KK+q5gOy5oOuegA0KK+q5gOyImO2ZlA0KK+q5gOyYpO2DnA0KK+q5gOyDgeq4uA0KK+q5gOyerOyEsQ0KK+q5gOq3nOq4sA0KK+q5gOyYpO2YhA0KK+q5gOyYgeyInA0KK+q5gOyngO2DnA0KK+q5gOyDge2ZmA0KK+q5gOyYpeuCqA0KK+q5gOy2qeyjvA0KK+q5gOq4sOykgA0KK+q5gOynhOq4uA0KK+q5gOyYpeu2hA0KK+q5gOyduO2VnA0KK+q5gOq4sOyImA0KK+q5gOqwkeyXtA0KK+q5gOyYpeyEoA0KK+q5gOybkO2WpQ0KK+q5gOuMgOyDnQ0KK+q5gO2DnOybkA0KK+q5gOyYpeyEoA0KK+q5gOyEneyehA0KK+q5gOuqhe2XjA0KK+q5gOq0gOyEuA0KK+q5gOyYpeyEoA0KK+q5gOu0ieq3nA0KK+q5gOyYgeyaqQ0KK+q5gO2DnOyasA0KK+q5gOyYpeyImA0KK+q5gO2VnOq3vA0KK+q5gOy2mOuPmQ0KK+q5gOuzke2DnA0KK+q5gOyYpeyInA0KK+q5gOuCmeuqhQ0KK+q5gOykkeyInA0KK+q5gOyYgeq1kA0KK+q5gOyYpeyInA0KK+q5gO2DnOyjvA0KK+q5gOydgOyEnQ0KK+q5gOydvOyaqQ0KK+q5gOyYpeyInA0KK+q5gOuMgO2VmQ0KK+q5gOyKueyEoA0KK+q5gOq3nO2YuA0KK+q5gOyYpeyInA0KK+q5gO2DnOyImA0KK+q5gOyZuOydtA0KK+q5gO2VnOyIoA0KK+q5gOyYpeyInA0KK+q5gOyDge2XjA0KK+q5gOunjOyYgQ0KK+q5gOyerOq4sA0KK+q5gOyYpeyIoA0KK+q5gOywrOywrA0KK+q5gO2drO2ZmA0KK+q5gOyGoeyXsA0KK+q5gOyYpeyXsA0KK+q5gOyEoOyImA0KK+q5gOyYge2YuA0KK+q5gOq0keyaqQ0KK+q5gOyYpeydtA0KK+q5gOyaqeuqqQ0KK+q5gOynhOyImA0KK+q5gOyInOy2mA0KK+q5gOyYpeydtA0KK+q5gOuPmeyYgQ0KK+q5gOq3nOyEsQ0KK+q5gOyYpeyInA0KK+q5gOyYpeyekA0KK+q5gOydke2drA0KK+q5gOyerOuztQ0KK+q5gOu0ie2drA0KK+q5gOyYpeyglQ0KK+q5gOyEseudvQ0KK+q5gCDsmIENCivquYDtmLjshLENCivquYDsmKXspJENCivquYDtl4ztmZgNCivquYDshJ3quLgNCivquYDshLHspIANCivquYDsmKXsspwNCivquYDsg4HrqqgNCivquYDtl4zrp4wNCivquYDtg5zsiJgNCivquYDsmYTshJ0NCivquYDtmZTqtawNCivquYDtlZnsiKANCivquYDsooXsnpANCivquYDsmYTsiJgNCivquYDtlontg5wNCivquYDqt5zrqqkNCivquYDshLHquLANCivquYDsmYTsiJwNCivquYDshLHrjIANCivquYDsiJzsiJkNCivquYDqsr3smqkNCivquYDsmZXqt5wNCivquYDrp5DsiJkNCivquYDsm5Tsl7QNCivquYDsooXsi50NCivquYDsmZXsiJwNCivquYDtlZntg5wNCivquYDrtInsmKUNCivquYDrj5nslZQNCivquYDsmbjrp4wNCivquYDsmIHsp4QNCivquYDsnqzrj5kNCivquYDsmIHsobANCivquYDsmbjrp4wNCivquYDsnbzquLANCivquYDrs5HsnqwNCivquYDsoJXruYgNCivquYDsmbjrtoQNCivquYDsnbjsobANCivquYDsmIHsl7ANCivquYDsiJztmqgNCivquYDsmbjsg4ENCivquYDrjZXsirkNCivquYDsnYDsiJgNCivquYDrtInsmqkNCivquYDsmbjsg50NCivquYDsmIHtmIQNCivquYDssL3tmZQNCivquYDsm5DsmrQNCivquYDsmbjsiJgNCivquYDquIjsiJgNCivquYDsp4TshJ0NCivquYDsiJjtmLgNCivquYDsmbjsiJwNCivquYDrp5DtmLgNCivquYDrp5DsmqkNCivquYDsp4TshLENCivquYDsmbjsiJwNCivquYDshozrs7UNCivquYDsoJXsi50NCivquYDrp4zsnbQNCivquYDsmbjsiKANCivquYDsmqnshLENCivquYDtg5zsi50NCivquYDso7zqs4QNCivquYDsmqnqsJENCivquYDrs5HshKANCivquYDquIjqsJENCivquYDssqDsnbwNCivquYDsmqnqsrgNCivquYDspJHtm4gNCivquYDtg5ztmIQNCivquYDsmIHtmZgNCivquYDsmqnqtawNCivquYDqs4TsnKgNCivquYDsmIHsl7ANCivquYDsirnrsLANCivquYDsmqnqta0NCivquYDsooXrnpgNCivquYDsnqzquLANCivquYDrjZXshLENCivquYDsmqnqta0NCivquYDrjZXshJ0NCivquYDsmIHsiJgNCivquYDsnbztl4wNCivquYDsmqnqt5wNCivquYDtg5zssqANCivquYDsooXsiJgNCivquYDsmKXtg5wNCivquYDsmqnqt5wNCivquYDtjJDrj4wNCivquYDqt5ztmZgNCivquYDqsJHqsr0NCivquYDsmqnqt5wNCivquYDshLHshKANCivquYDsnYDsiJgNCivquYDsoJXrqoUNCivquYDsmqnqt6ANCivquYDsoJXsiJgNCivquYDsiJjsnbwNCivquYDtmY3qt5wNCivquYDsmqnqt7wNCivquYDsnoTrtoANCivquYDshJ3rtoQNCivquYAg7Zi4DQor6rmA7Jqp6re8DQor6rmA7J6s65OdDQor6rmA7ZmN7IudDQor6rmA64+Z7Z2gDQor6rmA7Jqp6re8DQor6rmA64Ko6re8DQor6rmA7Jqp7ISdDQor6rmA67OR7ZWYDQor6rmA7Jqp6riwDQor6rmA7IaM7Zi4DQor6rmA7Zqo7JikDQor6rmA7YyQ7KKFDQor6rmA7Jqp6ri4DQor6rmA7ISx7ZmpDQor6rmA65GQ7IigDQor6rmA7KCV67CwDQor6rmA7Jqp6ri4DQor6rmA6rSR6rWtDQor6rmA7YOc7J20DQor6rmA67SJ7JqpDQor6rmA7Jqp64KoDQor6rmA7ZiE642VDQor6rmA7ISg66qoDQor6rmA7KCV6re8DQor6rmA7Jqp64yADQor6rmA7JiB7YOcDQor6rmA7KSA6rOkDQor6rmA7Iic7IudDQor6rmA7Jqp64yADQor6rmA7YOc7IiYDQor6rmA7LKg7Je0DQor6rmA7LaY642VDQor6rmA7Jqp642VDQor6rmA7J6l7IicDQor6rmA7Jm47YOcDQor6rmA7Ja17IiYDQor6rmA7Jqp64+EDQor6rmA7IiY7ISdDQor6rmA64+Z7ZWYDQor6rmA67OR7LKcDQor6rmA7Jqp64+MDQor6rmA7KKF7IOBDQor6rmA7Iic6re8DQor6rmA7J6E7ZmYDQor6rmA7Jqp64+ZDQor6rmA67OR7ZqoDQor6rmA7IOB6recDQor6rmA7KSR6riwDQor6rmA7Jqp65OdDQor6rmA6riw7JeFDQor6rmA7JuQ7ZiEDQor6rmA7ZW07ZiEDQor6rmA7Jqp66eMDQor6rmA7KKF66y4DQor6rmA7LC97IudDQor6rmA6riI6recDQor6rmA7Jqp66eMDQor6rmA7KKF67CwDQor6rmA67aA7Zi4DQor6rmA7YOc7ZGcDQor6rmA7Jqp66y4DQor6rmA67OR66qFDQor6rmA7KCV7JuQDQor6rmA66eM7IigDQor6rmA7Jqp67CwDQor6rmA7Jil7Z2sDQor6rmA7ZW07JqpDQor6rmA7ZW07ZiEDQor6rmA7Jqp67CwDQor6rmA7Iic642VDQor6rmA7Jyk67O1DQor6rmA7KCV7JewDQor6rmA7Jqp7ISdDQor6rmA7KKF7ZmYDQor6rmA67OR7IiYDQor6rmA7JiB7YOdDQor6rmA7Jqp7ISdDQor6rmA642V7JykDQor6rmA6riw6riwDQor6rmA7Je07JqpDQor6rmA7Jqp7ISgDQor6rmA7YOc7JilDQor6rmA7IiY6rWQDQor6rmA7Iic7IK8DQor6rmA7Jqp7IiYDQor6rmA7J6s7YOcDQor6rmA7JiB64+ZDQor6rmA7Jyk7IiYDQor6rmA7Jqp7IiYDQor6rmA7J2R7JqxDQor6rmA7Jil7IicDQor6rmA7KKF64KoDQor6rmA7Jqp7IiYDQor6rmA7IOB7IiYDQor6rmA7LCo656ADQor6rmA7ISd6rOEDQor6rmA7Jqp7IiYDQor6rmA7KKF7ISdDQor6rmA7KKF7ZiEDQor6rmA7KKF66GADQor6rmA7Jqp7IiYDQor6rmA7IK87ISdDQor6rmA7KKF7LKcDQor6rmA7J6s7JqwDQor6rmA7Jqp7IiYDQor6rmA7LaY67SJDQor6rmA7JiB7KeEDQor6rmA6riw7KCVDQor6rmA7Jqp7IiYDQor6rmA7IaM7Z2gDQor6rmA7IiY656YDQor6rmA7LC97J6QDQor6rmA7Jqp7IiYDQor6rmA7Iq564KoDQor6rmA65GQ64+ZDQor6rmAIO2ZmA0KK+q5gOyaqeyIoA0KK+q5gOqyveydtA0KK+q5gOyYpeuqhQ0KK+q5gOyihe2DgQ0KK+q5gOyaqeyIoA0KK+q5gOuqheyEnQ0KK+q5gOyYgeq1rA0KK+q5gOyImO2YhA0KK+q5gOyaqeyLnQ0KK+q5gOyXsOyaqQ0KK+q5gOyDge2ZmA0KK+q5gOyerOyImA0KK+q5gOyaqeyLnQ0KK+q5gOyerOyhsA0KK+q5gOyasO2drA0KK+q5gOuzkeulnA0KK+q5gOyaqeyVlA0KK+q5gOygle2YuA0KK+q5gOyEnOu0iQ0KK+q5gOuPmeuwsA0KK+q5gOyaqeyVlA0KK+q5gOuzkeuegA0KK+q5gOyDgeyEoA0KK+q5gOuzkeycqA0KK+q5gOyaqeyatA0KK+q5gOygleq3nA0KK+q5gOq3gOq4sA0KK+q5gOy2qeyImQ0KK+q5gOyaqeyatA0KK+q5gOustOyImA0KK+q5gOyjvO2MlA0KK+q5gOunue2YhA0KK+q5gOyaqeyatA0KK+q5gOygley2mA0KK+q5gOyEseyInA0KK+q5gOuqhe2ZmA0KK+q5gOyaqeyatA0KK+q5gOygle2doA0KK+q5gOyYgeyasA0KK+q5gOydmOuNlQ0KK+q5gOyaqeycpA0KK+q5gOynhOyhsA0KK+q5gOyImOqwkQ0KK+q5gOyYgeqwgQ0KK+q5gOyaqeydtA0KK+q5gOygleyLnQ0KK+q5gOynhOyYgQ0KK+q5gO2Vmeq3nA0KK+q5gOyaqeydtQ0KK+q5gOyerO2YuA0KK+q5gOuPmeykgA0KK+q5gOuPhOyaqQ0KK+q5gOyaqeyekA0KK+q5gO2VmeyaqQ0KK+q5gOy2mO2VmA0KK+q5gO2drOyZhA0KK+q5gOyaqeyghA0KK+q5gOyEseyZhA0KK+q5gOyerOybkA0KK+q5gO2DnOyXtA0KK+q5gOyaqeyjvA0KK+q5gO2YhOq3vA0KK+q5gOyEseyInA0KK+q5gOyEoOyekA0KK+q5gOyaqeyjvA0KK+q5gOyEneyhsA0KK+q5gO2VtOyaqQ0KK+q5gOyWteyEnQ0KK+q5gOyaqeykgA0KK+q5gOycpOyYgQ0KK+q5gOyEseyerA0KK+q5gOyYgeyngA0KK+q5gOyaqeykgA0KK+q5gOuLrOq1kA0KK+q5gOyYgeyImA0KK+q5gOygleqyuA0KK+q5gOyaqeyyoA0KK+q5gOyerOq0kQ0KK+q5gOyEse2biA0KK+q5gOyduO2ZmA0KK+q5gOyaqeyyoA0KK+q5gOyImOyLnQ0KK+q5gOycpOyyoA0KK+q5gOykkeuqqQ0KK+q5gOyaqeyyoA0KK+q5gOywqOyhsA0KK+q5gOydhOyErQ0KK+q5gOyImOyImA0KK+q5gOyaqey2nA0KK+q5gOyYgeyErQ0KK+q5gOuzkeyhsA0KK+q5gOunjO2YuA0KK+q5gOyaqey2nA0KK+q5gOywveykgA0KK+q5gOygleycpA0KK+q5gOyYgeuNlQ0KK+q5gOyaqe2DnQ0KK+q5gO2VnOyhsA0KK+q5gOyaqeyImA0KK+q5gOydtOyIoA0KK+q5gOyaqe2DnQ0KK+q5gO2Yle2VmQ0KK+q5gOq0keyLnQ0KK+q5gOyerOyekA0KK+q5gOyaqe2MkA0KK+q5gOyiheybkA0KK+q5gOyiheq4uA0KK+q5gOuPme2YuA0KK+q5gOyaqe2VmQ0KK+q5gOyEsey5mQ0KK+q5gOustOyLpA0KK+q5gOyYgeyEsQ0KK+q5gOyaqe2VtA0KK+q5gOyInOyImA0KK+q5gOuqhe2DgQ0KK+q5gOyDgeunuQ0KK+q5gOyaqe2YhA0KK+q5gOyerO2WpQ0KK+q5gOyYgeycpA0KK+q5gOyEneq3nA0KK+q5gOyaqe2YuA0KK+q5gOyiheunjA0KK+q5gOuPmeyVhQ0KK+q5gOyyoOyErQ0KK+q5gOyaqe2ZlA0KK+q5gO2ZlOyImA0KK+q5gO2VtOyLnQ0KK+q5gOuzteyWuA0KK+q5gOyaqe2ZlA0KK+q5gOuniO2ZmA0KK+q5gOyaqey2mA0KK+q5gOuzkeu2hA0KK+q5gOyaqe2ZlA0KK+q5gOustOqyvQ0KK+q5gOqyveuPmQ0KK+q5gOydhOq3oA0KK+q5gOyaqe2ZmA0KK+q5gOyerOqyvQ0KK+q5gOyEseyEoA0KK+q5gOqwke2YuA0KK+q5gOyaqe2ZmA0KK+q5gOyImOyZhA0KK+q5gOyEuOyViA0KK+q5gOuRkO2drA0KK+q5gOyaqe2ZmA0KK+q5gOuPmeyasA0KK+q5gO2drOqzpA0KK+q5gOyEseycpA0KK+q5gOyaqe2ZmA0KK+q5gOyduOyLnQ0KK+q5gOuCqOyVoA0KK+q5gOybkOyVlA0KK+q5gOyaqe2ajA0KK+q5gO2DgOq3vA0KK+q5gOyYgeyImQ0KK+q5gO2VreyYgQ0KK+q5gOyasOqyrA0KK+q5gOycpOuztQ0KK+q5gOyEneyEsQ0KK+q5gOyduO2DnA0KK+q5gOyasOqzpA0KK+q5gOuqheyaqQ0KK+q5gOyEuOynhA0KK+q5gOyInOyEnQ0KK+q5gOyasOq4iA0KK+q5gOyerOuPhA0KK+q5gOyDgeq4sA0KK+q5gO2YleuFuA0KK+q5gOyasOq4sA0KK+q5gOuLpOyasA0KK+q5gOuzkeyaqQ0KK+q5gOy2mOydtA0KK+q5gOyasOyEnQ0KK+q5gO2Vme2ZlA0KK+q5gOuqheu2gA0KK+q5gOyiheuNlQ0KK+q5gOyasOyImA0KK+q5gOyerOq4uA0KK+q5gOyYpeyImA0KK+q5gOqwkeqzpA0KK+q5gOyasOyLnQ0KK+q5gO2ZjeudvQ0KK+q5gOqyveyekA0KK+q5gO2YuOuemA0KK+q5gOyasOyLnQ0KK+q5gOygleuhnQ0KK+q5gOyCvOyhsA0KK+q5gOyDgeyImA0KK+q5gOyasOyXsA0KK+q5gOyCvOyhsA0KK+q5gOuLrOyInA0KK+q5gOygleuPmQ0KK+q5gOyasOyihQ0KK+q5gOyerOyatA0KK+q5gOyjvO2YuA0KK+q5gOuzkeuPmQ0KK+q5gOyasOykkQ0KK+q5gOyduOq3nA0KK+q5gOuzkeq2jA0KK+q5gOustO2ZmA0KK+q5gOyasOywrA0KK+q5gOycoOyXtA0KK+q5gO2YhOyYgQ0KK+q5gOyKueyLnQ0KK+q5gOyasOyyoA0KK+q5gOyjvOuPhA0KK+q5gOu0ieq4sA0KK+q5gOyerOyynA0KK+q5gOyasO2VnA0KK+q5gOuzte2YuA0KK+q5gOyiheyZhA0KK+q5gOyngOuqqA0KK+q5gOyasO2YhA0KK+q5gOuzke2drA0KK+q5gOyImOq1rQ0KK+q5gOyjvOyerA0KK+q5gOyasO2YhA0KK+q5gOqyveyDgQ0KK+q5gOyDgeq4sA0KK+q5gOyerOqzpA0KK+q5gOyasO2ZmA0KK+q5gOyiheusmA0KK+q5gO2ZjeyatA0KK+q5gOyDge2DnA0KK+q5gOyasO2drA0KK+q5gOyihe2YuA0KK+q5gOyEse2PiQ0KK+q5gOydmOq3nA0KK+q5gOyaseyDnQ0KK+q5gOuPhOu2hA0KK+q5gOq1reu0iQ0KK+q5gOyEseyLnQ0KK+q5gOyaseywvQ0KK+q5gOynhOyekA0KK+q5gOykkeunjA0KK+q5gOq4sO2YuA0KK+q5gOyatOq4uA0KK+q5gOyxhOyInA0KK+q5gOyYgeunjA0KK+q5gOy2mOycpA0KK+q5gOyatOuCqA0KK+q5gOyynOyXsA0KK+q5gO2VtOq3vA0KK+q5gOyduOyInA0KK+q5gOyatOuwsA0KK+q5gOq4sOuemA0KK+q5gOyehOyImA0KK+q5gOuPmeybkA0KK+q5gOyatOyEuA0KK+q5gOyDgeuLrA0KK+q5gOyerOyEpA0KK+q5gOyYpeykgA0KK+q5gOyatOyLnQ0KK+q5gOywveq3vA0KK+q5gOusuOq3vA0KK+q5gOyatOyImQ0KK+q5gOyatOyLnQ0KK+q5gOuzkeuFgA0KK+q5gO2DnO2biA0KK+q5gOywveq4sA0KK+q5gOyatOyasA0KK+q5gO2drOuqhQ0KK+q5gOygleybkA0KK+q5gOyEoOydgA0KK+q5gOyatOyasA0KK+q5gOyInOyXtA0KK+q5gOyYgeywrA0KK+q5gOyaqeyehA0KK+q5gOyatOyhsA0KK+q5gOyYgeyLoA0KK+q5gOyYgeuhgA0KK+q5gOq3oOydvA0KK+q5gOyatO2DnA0KK+q5gOq0keuFuA0KK+q5gOyEseyasQ0KK+q5gOuPhOyImA0KK+q5gOyatO2YuA0KK+q5gOq3vOq4uA0KK+q5gOqwle2YuA0KK+q5gOq3vOq3nA0KK+q5gOybkOqzpA0KK+q5gOyGjO2YuA0KK+q5gO2YhOq3oA0KK+q5gOyerOyInA0KK+q5gOybkOq3nA0KK+q5gOyYpOyYgQ0KK+q5gOunjO2drA0KK+q5gOyDgeyInA0KK+q5gOybkOq4sA0KK+q5gOyGjOy5oA0KK+q5gOq3vOyImA0KK+q5gOyImOuztQ0KK+q5gOybkOq4uA0KK+q5gOuqveyihQ0KK+q5gO2DnOq1rA0KK+q5gOyiheyImA0KK+q5gOybkOuPhA0KK+q5gOyInOyImQ0KK+q5gOuPhOyasA0KK+q5gOuFuOyImA0KK+q5gOybkOuPjA0KK+q5gOq0keyImA0KK+q5gOyerOyaqQ0KK+q5gO2DnOydvA0KK+q5gOybkOyDgQ0KK+q5gOuvuOyekA0KK+q5gOyDgeyasA0KK+q5gOyyoOydvA0KK+q5gOybkOyEnQ0KK+q5gOuzte2XjA0KK+q5gOyKueyXtA0KK+q5gOyCvOuNlQ0KK+q5gOybkOyEnQ0KK+q5gOyasO2ZmA0KK+q5gOyYpeyEoA0KK+q5gOq0ke2YuA0KK+q5gOybkOyImA0KK+q5gO2YhOyIoA0KK+q5gO2DnOyEoA0KK+q5gOyaqeyDgQ0KK+q5gOybkOyLnQ0KK+q5gO2VnO2YhA0KK+q5gOyGjOq0gA0KK+q5gO2KueyImA0KK+q5gOybkOyLnQ0KK+q5gOywrOqzpA0KK+q5gO2VmO2VmQ0KK+q5gOyIoOyImA0KK+q5gOybkOyWtQ0KK+q5gOyEseqwkQ0KK+q5gOuMgOydvA0KK+q5gOygleyaqQ0KK+q5gOybkOyaqQ0KK+q5gOygleydtQ0KK+q5gOyImOusuA0KK+q5gOyehOybkA0KK+q5gOybkOy2nA0KK+q5gOywveq3vA0KK+q5gOuhgOq3oA0KK+q5gOuCqOyLnQ0KK+q5gOybkO2DnA0KK+q5gOyihe2drA0KK+q5gOydgOykkQ0KK+q5gOyYgeq1rA0KK+q5gOybkO2PrA0KK+q5gOyaqeyaqQ0KK+q5gOyDgeyInA0KK+q5gOq3nOq4uA0KK+q5gOybkO2YuA0KK+q5gOy2mOy2nA0KK+q5gOyYpeyhsA0KK+q5gOyEseyYpQ0KK+q5gOybkO2YuA0KK+q5gOy2mOq1rQ0KK+q5gOyEse2VnA0KK+q5gOq3nO2ctA0KK+q5gOyblOyDnQ0KK+q5gOywveq4sA0KK+q5gOygle2YhA0KK+q5gOyerOybkA0KK+q5gOyblOyEoA0KK+q5gO2aqOyXtA0KK+q5gOyYge2ZmA0KK+q5gOygkOydtQ0KK+q5gOyblOyInA0KK+q5gOydgOqwkQ0KK+q5gOuzkeumrA0KK+q5gOqyve2DnQ0KK+q5gOyblOyInA0KK+q5gOygle2YuA0KK+q5gOyEseq3nA0KK+q5gOyjvO2YuA0KK+q5gOyblOyVhQ0KK+q5gOyInOyekA0KK+q5gOygnOqxuA0KK+q5gOyDgeyXsA0KK+q5gOyblOyhsA0KK+q5gOyiheunjA0KK+q5gOunjOuylA0KK+q5gOyEseyImA0KK+q5gOyblO2ZlA0KK+q5gOuMgOuPiA0KK+q5gOyGjOuqhQ0KK+q5gOyblOq1rA0KK+q5gOyblO2ZlA0KK+q5gOyYgeyEnQ0KK+q5gO2aqOqwkQ0KK+q5gOuCqOuPhA0KK+q5gOychOyYgQ0KK+q5gOydmOyImA0KK+q5gOuwseyVvA0KK+q5gOyInOyInA0KK+q5gOycoOqzpA0KK+q5gOyasOuemA0KK+q5gOunkOyhsA0KK+q5gOyerOyasQ0KK+q5gOycoOq4iA0KK+q5gOuCqOyXsA0KK+q5gOq3nOuztQ0KK+q5gO2YhO2YuA0KK+q5gOycoOyLnQ0KK+q5gOyyoOyerA0KK+q5gOy5oOuCqA0KK+q5gO2DnO2YuA0KK+q5gOycoOyLnQ0KK+q5gOyInO2YuA0KK+q5gOyDgeq2jA0KK+q5gOyerOuztQ0KK+q5gOycpOqxtA0KK+q5gOyerOyyoA0KK+q5gOycpO2YuA0KK+q5gO2RnOyYpQ0KK+q5gOycpOqxtA0KK+q5gOygleyEoA0KK+q5gOq3gOuegA0KK+q5gOygleyYpQ0KK+q5gOycpOq0kQ0KK+q5gO2ZjeuwsA0KK+q5gOuzke2ZlA0KK+q5gOq0keyInA0KK+q5gOycpOq4sA0KK+q5gO2Zje2DnA0KK+q5gOyiheyyoA0KK+q5gCDshJ0NCivquYDsnKTrjZUNCivquYDshLHsmqkNCivquYDtmLjtmLgNCivquYDri6ztmIENCivquYDsnKTrj4wNCivquYDri6zsi50NCivquYDqsr3tnawNCivquYDssqDqt5wNCivquYDsnKTrj5kNCivquYDqt5zroYANCivquYDtjJDsiJwNCivquYDrs7Tqt7wNCivquYDsnKTrr7gNCivquYDsnZjsiJgNCivquYDqsr3rgqgNCivquYDsg4HrtoQNCivquYDsnKTrsLANCivquYDtmqjshLENCivquYDsirnshowNCivquYDsoJXtmZQNCivquYDsnKTrs7UNCivquYDtmITsmIENCivquYDsm5Dqta0NCivquYDsnqzsmIENCivquYDsnKTshJ0NCivquYDrjIDssqANCivquYDsg4HsnqwNCivquYDsmqntg5wNCivquYDsnKTshKANCivquYDsg4Hsl7ANCivquYDqsr3shKANCivquYDqtJHsiJkNCivquYDsnKTshKANCivquYDsmqnssqANCivquYDsmIHsnpANCivquYAg7JuQDQor6rmA7Jyk7ISgDQor6rmA64W47J20DQor6rmA7ISx6rOkDQor6rmA67OR6riwDQor6rmA7Jyk7ISsDQor6rmA7JiB7IiZDQor6rmA7IS464u0DQor6rmA7YOc6riwDQor6rmA7Jyk7IStDQor6rmA66+47JuQDQor6rmA7Iic7JqwDQor6rmA64yA7IiZDQor6rmA7Jyk7IiYDQor6rmA7IKs67KUDQor6rmA7ISc6raMDQor6rmA7YOc7ISdDQor6rmA7Jyk7IiYDQor6rmA6rK97JqpDQor6rmA66+47J28DQor6rmA6rWQ7Je0DQor6rmA7Jyk7IudDQor6rmA7KCV7IicDQor6rmA7KKF7KGwDQor6rmA7IOB7JuFDQor6rmA7Jyk7IudDQor6rmA6rCR7IiZDQor6rmA7ZWY7ZmUDQor6rmA7IS466y4DQor6rmA7Jyk7IudDQor6rmA7ISx7Je0DQor6rmA7IiY7IiYDQor6rmA7J6s7IOBDQor6rmA7Jyk7IudDQor6rmA7ZW07ZuIDQor6rmA7YOc7JewDQor6rmA7JiB7YOcDQor6rmA7Jyk7JilDQor6rmA67O17ZiEDQor6rmA67OR6rWtDQor6rmA67OR7IudDQor6rmA7Jyk7JuQDQor6rmA7IiY7JqxDQor6rmA66+87JilDQor6rmA7ISd64+EDQor6rmA7Jyk7J6QDQor6rmA67OR7JqpDQor6rmA7LaY7Z2sDQor6rmA7Iuc7Zi4DQor6rmA7Jyk7J6QDQor6rmA7J2866qoDQor6rmA7JiB64+ZDQor6rmA7LCo7ZqMDQor6rmA7Jyk7J6QDQor6rmA7JiB7ISdDQor6rmA7ISx7Je0DQor6rmA7LaU7J20DQor6rmA7Jyk7J6QDQor6rmA6riI7JewDQor6rmA7YOc7LKgDQor6rmA7YOc64qgDQor6rmA7Jyk7KCQDQor6rmA7KeE7JuQDQor6rmA67OR6re8DQor6rmA7Zal7ZiEDQor6rmA7Jyk7KKFDQor6rmA7KeE7LKgDQor6rmA67OR6rCRDQor6rmA7ZiE7LCsDQor6rmA7Jyk7LKcDQor6rmA7KeE7IiZDQor6rmA64+Z67ORDQor6rmA7YOd7Zi4DQor6rmA7Jyk7YOcDQor6rmA7KeE7JuFDQor6rmA66eQ7IiYDQor6rmA7Jqp7ISdDQor6rmA7Jyk7YOdDQor6rmA7J6s7Je0DQor6rmA7YyQ6rWQDQor6rmA7LaY7LaYDQor6rmA7Jyk7YOdDQor6rmA7IiY6raMDQor6rmA7LCs7IigDQor6rmA7JiB7ZmYDQor6rmA7Jyk7ZWYDQor6rmA7KCQ7JykDQor6rmA7Jq07IStDQor6rmA7J6s7IiYDQor6rmA7Jyk7ZWYDQor6rmA7ISg7J6sDQor6rmA7ZeM7Zi4DQor6rmA7J287IiYDQor6rmA7Jyk7ZWYDQor6rmA7Lmg64KoDQor6rmA7JiB66y4DQor6rmA7J287KCQDQor6rmA7Jyk7ZWYDQor6rmA64yA7JuFDQor6rmA7Jqx7JuFDQor6rmA7KKF7ISgDQor6rmA7Jyk7Zi4DQor6rmA6rK97KO8DQor6rmA6rSR7YOdDQor6rmA7ISx7JiBDQor6rmA7Jyk7Zi4DQor6rmA66+47YOBDQor6rmA66+47ZiEDQor6rmA67O164+ZDQor6rmA7J2A6riwDQor6rmA67SJ7ZiEDQor6rmA7ZmN7IiYDQor6rmA7ZW07Je0DQor6rmA7J2A64+ZDQor6rmA7Jqw6riwDQor6rmA7IK87Z2sDQor6rmA7ZuI64+EDQor6rmA7J2A66GADQor6rmA7ISx7J6sDQor6rmAIOyYgQ0KK+q5gOyEneq3oA0KK+q5gOydgOyImA0KK+q5gOygleyLnQ0KK+q5gOqwkeyImA0KK+q5gOyDge2VmQ0KK+q5gOydgOyImQ0KK+q5gOyjvOyImA0KK+q5gOyMjeu0iQ0KK+q5gOq4sOu0iQ0KK+q5gOydgOyImQ0KK+q5gOyYge2VmQ0KK+q5gO2Mve2YhA0KK+q5gOyInOyVoA0KK+q5gOydgOyLnQ0KK+q5gOyerOu0iQ0KK+q5gOqwleq4sA0KK+q5gOqyveunjA0KK+q5gOydgOyVhA0KK+q5gOuzteydtQ0KK+q5gOyImeyInA0KK+q5gOyInOyglQ0KK+q5gOydgOyYpQ0KK+q5gOygkOydmA0KK+q5gOyDgeyXtA0KK+q5gOyEseq3vA0KK+q5gOydgOydtA0KK+q5gOyDgeyjvA0KK+q5gOuzke2drA0KK+q5gOuzkeuqqA0KK+q5gOydgOyerA0KK+q5gO2DnO2YhA0KK+q5gOuzkeyXtA0KK+q5gOynhOyLnQ0KK+q5gOydgOyglQ0KK+q5gO2ZlOyLnQ0KK+q5gOyYge2biA0KK+q5gOygleyekA0KK+q5gOydgOyjvA0KK+q5gOyYge2drA0KK+q5gOuPmeq4sA0KK+q5gO2DnOyImQ0KK+q5gOydgOynhA0KK+q5gOycpOyaqQ0KK+q5gOyImeyLnQ0KK+q5gOyynOyInA0KK+q5gOydgO2drA0KK+q5gO2DnOyXsA0KK+q5gOyaqeydtA0KK+q5gOq4iOyDgQ0KK+q5gOydgO2drA0KK+q5gOygleyImA0KK+q5gOyiheq1kA0KK+q5gOyEseyEoA0KK+q5gOydhOq3nA0KK+q5gOyerOu5iA0KK+q5gOq1kO2VmQ0KK+q5gOyYgeyxhA0KK+q5gOydhOyEsQ0KK+q5gOyYgeyImA0KK+q5gOykgO2YuA0KK+q5gOyInO2bhA0KK+q5gOydhOyImA0KK+q5gOykgOyXsA0KK+q5gOyaqeywqA0KK+q5gOu2gOyImQ0KK+q5gOydhOyImA0KK+q5gO2YuOyasA0KK+q5gOq4sOyInA0KK+q5gOyCvOunjA0KK+q5gOydhOyehA0KK+q5gOybkOyEnQ0KK+q5gOybkOyInA0KK+q5gOyYpeyhsA0KK+q5gOydhOykgA0KK+q5gOqzoOunjA0KK+q5gOuLrOuPmQ0KK+q5gOuPmeyYpQ0KK+q5gOydkeq2jA0KK+q5gOq3nOyXtA0KK+q5gO2YuOuNlQ0KK+q5gOuPmeuvvA0KK+q5gOydkeq2jA0KK+q5gOybkOyehA0KK+q5gOyYgeyaqQ0KK+q5gOyiheuMgA0KK+q5gOydkeuPhA0KK+q5gOq0keuFuA0KK+q5gOuqhe2YuA0KK+q5gOyduOuPhA0KK+q5gOydkeuPjA0KK+q5gOykgO2ZmA0KK+q5gOyatOyerA0KK+q5gOyDgeq4sA0KK+q5gOydkeugrA0KK+q5gOyerOyZhA0KK+q5gOynhOydtA0KK+q5gOuzkeybkA0KK+q5gOydkeustA0KK+q5gOyYgeyImQ0KK+q5gOuzkeyYgQ0KK+q5gOygle2drA0KK+q5gOydmOqxtA0KK+q5gOuzkeuLrA0KK+q5gOycpOyInA0KK+q5gO2YhO2XjA0KK+q5gOydmOq3vA0KK+q5gOyerO2biA0KK+q5gOqwleyEnQ0KK+q5gO2VhO2VnA0KK+q5gOydmOq3vA0KK+q5gOyDge2YuA0KK+q5gOy5mOy2nA0KK+q5gOynhOyasA0KK+q5gOydmOyImA0KK+q5gOyerOyhsA0KK+q5gOuPme2ZmA0KK+q5gOyyreyhsA0KK+q5gOydmOyImA0KK+q5gOyihe2YuA0KK+q5gOqyveyEsQ0KK+q5gOy2mOydtA0KK+q5gOydmOydvA0KK+q5gOyerOyImQ0KK+q5gOydgOuztQ0KK+q5gOyEse2drA0KK+q5gOydmOyglQ0KK+q5gOy2mOyYgQ0KK+q5gOyDgeyDgQ0KK+q5gOyasOq4uA0KK+q5gOydmO2YhA0KK+q5gOygleyDnQ0KK+q5gOykkeyXtA0KK+q5gOyYgeyEnQ0KK+q5gOydtOq3vA0KK+q5gOyepeyjvA0KK+q5gO2ZmOuqqQ0KK+q5gOuzteydtA0KK+q5gOydtOuPmQ0KK+q5gOq4sOuTnQ0KK+q5gOywveq3nA0KK+q5gOygleq3uQ0KK+q5gOydtOyImA0KK+q5gOygleq0gA0KK+q5gOyerOyImA0KK+q5gOydvOyXsA0KK+q5gOyduOq1rQ0KK+q5gOq4iOunjA0KK+q5gOusuOyekA0KK+q5gOyerO2dpQ0KK+q5gOyduOq3nA0KK+q5gOyKueyEnQ0KK+q5gOyInO2YuA0KK+q5gOyDgeyglQ0KK+q5gOyduOq3nA0KK+q5gOuNleuLrA0KK+q5gOywqOydvA0KK+q5gOqyveyasA0KK+q5gOyduOuNlQ0KK+q5gOuzkeyglQ0KK+q5gOykgOuRkA0KK+q5gOyEne2YuA0KK+q5gOyduOuwsA0KK+q5gOq4sOuPhA0KK+q5gO2DnOyaqQ0KK+q5gOuRkOyYgQ0KK+q5gOyduOyErQ0KK+q5gOyxhOusuA0KK+q5gOq1req4sA0KK+q5gO2YhOyEnQ0KK+q5gOyduOyImA0KK+q5gOydgOyekA0KK+q5gOykgOyImA0KK+q5gO2DnOykgA0KK+q5gOyduOyImA0KK+q5gOqzpOuztA0KK+q5gOydmOqyvQ0KK+q5gOy2mOybhQ0KK+q5gOyduOyImA0KK+q5gOygle2drA0KK+q5gOygkOyjvA0KK+q5gOyYgeyXtA0KK+q5gOyduOyImA0KK+q5gOuqhey5oA0KK+q5gOyiheyaqQ0KK+q5gOyerOyasA0KK+q5gOyduOyImQ0KK+q5gOyyoOydgA0KK+q5gOyYgeyEoA0KK+q5gOuqheyEoA0KK+q5gOyduOyLnQ0KK+q5gOq4uOq1kA0KK+q5gOyDgeyyoA0KK+q5gOyInOuhgA0KK+q5gOyduOyerA0KK+q5gOyepeyDgQ0KK+q5gOyDgeyYpQ0KK+q5gOyDgeyInA0KK+q5gOyduOyjvA0KK+q5gOyZhOydvA0KK+q5gOyEoOyDgQ0KK+q5gOyInO2YuA0KK+q5gOyduO2DgQ0KK+q5gOuMgOy2lA0KK+q5gOyDgeyCvA0KK+q5gO2XjOyIoA0KK+q5gOyduO2DnA0KK+q5gOyYgeyLnQ0KK+q5gOuPme2DnQ0KK+q5gCDsm5ANCivquYDsnbjtg5wNCivquYDtlYTshJ0NCivquYDqtJHqtZANCivquYDsnqzslZQNCivquYDsnbjtg50NCivquYDrj5nsoJUNCivquYDsnbztg50NCivquYDsoJXsiKANCivquYDsnbjtmIENCivquYDsnbTqsJENCivquYDssKztg5wNCivquYDtmJzspIANCivquYDsnbjtmIQNCivquYDsmqnsnKQNCivquYDsiJjsiJgNCivquYDrs5HshKANCivquYDsnbjtmLgNCivquYDso7zsm4UNCivquYDqtJHtl4wNCivquYDsmIHsl7QNCivquYDsnbjtmZgNCivquYDrp4zssqANCivquYDsiJztmLgNCivquYDsnqzsm5ANCivquYDsnbjtmowNCivquYDsiJjslZQNCivquYDtmY3tmLgNCivquYDtmqjssqANCivquYDsnbzqs6QNCivquYDsoJXso7wNCivquYDsnqXsi50NCivquYDso7ztmIQNCivquYDsnbzqs6QNCivquYDqsJHqtawNCivquYDtlbTsmIENCivquYDtlZnsl7QNCivquYDsnbzqt5wNCivquYDshozsmrANCivquYDsg4Hqt5wNCivquYDsmIHrtoQNCivquYDsnbzrhYQNCivquYDsiJjqt4ANCivquYDsoJXrtoQNCivquYDsnqzsiJwNCivquYDsnbzrkZANCivquYAg7LmgDQor6rmA7YOc7JiBDQor6rmA7IOB7J28DQor6rmA7J2866eMDQor6rmA7JiB6riwDQor6rmA7J6s7IiYDQor6rmA6re864W4DQor6rmA7J2867SJDQor6rmA67OR67O1DQor6rmA7Jyg7IicDQor6rmA6rOh66asDQor6rmA7J2867SJDQor6rmA6reA7J20DQor6rmA7IOB7JqwDQor6rmA6riw6re8DQor6rmA7J287ISdDQor6rmA7JiB7KGwDQor6rmA7KCV7IiYDQor6rmA64+E7IudDQor6rmA7J287IiYDQor6rmA7YOc7ZmUDQor6rmA7ISx7KGwDQor6rmA7IK87Zi4DQor6rmA7J287IiYDQor6rmA7JuF7IudDQor6rmA7ISx7JuFDQor6rmA67aA7ZWcDQor6rmA7J287IicDQor6rmA7LKc7YOBDQor6rmA66qF7J24DQor6rmA7J6s7ISxDQor6rmA7J287IigDQor6rmA65Od7ISxDQor6rmA7ZiE7KO8DQor6rmA7IiY7IudDQor6rmA7J287JqpDQor6rmA7YOc7LKgDQor6rmA7Z2s7JewDQor6rmA7ZiE7IicDQor6rmA7J287JqpDQor6rmA7JmV7Zi4DQor6rmA7Jq07YOcDQor6rmA7Jqw64KoDQor6rmA7J287JuFDQor6rmA6re86ri4DQor6rmA64us7IigDQor6rmA6reA6re8DQor6rmA7J287YOcDQor6rmA7J6s6ri4DQor6rmA7Jqp6rK9DQor6rmA7KSA7Je0DQor6rmA7J287YOcDQor6rmA7IiY7IicDQor6rmA7ZmN7Zi4DQor6rmA7KCV7ISgDQor6rmA7J287ZW0DQor6rmA7JiB7LKgDQor6rmA7JiB66qpDQor6rmA64yA64W4DQor6rmA7J287Zi4DQor6rmA7JiB7IiYDQor6rmA7IyN7Zi4DQor6rmA64KZ7JqpDQor6rmA7J287Zi4DQor6rmA7Iq564KoDQor6rmA7J6s7IicDQor6rmA6rK96rK9DQor6rmA7J287ZmNDQor6rmA7ISx7IiZDQor6rmA7ISg7LKgDQor6rmA7JiB64yADQor6rmA7J287ZmUDQor6rmA6rOg6regDQor6rmA7YyQ7ZuIDQor6rmA6re86riIDQor6rmA7J287ZmYDQor6rmA7KCV7Je0DQor6rmA7ZmU7IiYDQor6rmA7KSA7IiYDQor6rmA7J287ZmYDQor6rmA67OR7Z2UDQor6rmA6riw7J20DQor6rmA7KKF64KoDQor6rmA7J287Z2sDQor6rmA7ZiE7Zi4DQor6rmA7KeA66WgDQor6rmA6rCV6riwDQor6rmA7J287Z2sDQor6rmA7YOc7LKcDQor6rmA66eM7JiBDQor6rmA66y47Z2sDQor6rmA7J6E6rOkDQor6rmA7IOB7Z2sDQor6rmA7Jm47IudDQor6rmA7Lmg7JqpDQor6rmA7J6E7IicDQor6rmAIOyEoA0KK+q5gOyhsO2YhA0KK+q5gOuvuO2YuA0KK+q5gOyehOyjvA0KK+q5gOuzteyEsQ0KK+q5gOyEseyImA0KK+q5gOqyveq0gA0KK+q5gOyekOq3vOqygA0KK+q5gOu2gOynhOq4sA0KK+q5gOunpOycoOq3nA0KK+q5gOygleyImOyYpA0KK+q5gOyekO2drA0KK+q5gOyEseyXtA0KK+q5gOqyveuCqA0KK+q5gOq4iO2YuA0KK+q5gOyepeuwsA0KK+q5gOyEuO2drA0KK+q5gOyYge2YuA0KK+q5gOyduOq3vA0KK+q5gOyepeuztA0KK+q5gOycoOyerA0KK+q5gOyYpeuPhA0KK+q5gO2YhOq0gA0KK+q5gOyepeyYpQ0KK+q5gOqyveyLnQ0KK+q5gOyduOuFhA0KK+q5gOydgOyErQ0KK+q5gOyepeybkA0KK+q5gOyyoOyZhA0KK+q5gO2VmeyLnQ0KK+q5gOygnOq3gA0KK+q5gOyepeybkA0KK+q5gOuzte2YuA0KK+q5gOyYgeyXtA0KK+q5gOq4sOyEnQ0KK+q5gOyepe2ZmA0KK+q5gOyerO2WpQ0KK+q5gOyInOyImA0KK+q5gOycoOyErQ0KK+q5gOyepe2drA0KK+q5gOyatOuylA0KK+q5gOyYgeyhsA0KK+q5gOyngO2VmA0KK+q5gOyerOqzpA0KK+q5gOy2mOyhsA0KK+q5gOyasO2ZmA0KK+q5gOyerOuztQ0KK+q5gOyerOq0kQ0KK+q5gO2DnOyXtA0KK+q5gOqwleq4sA0KK+q5gOyYge2YuA0KK+q5gOyerOq1rA0KK+q5gOyDgeyErQ0KK+q5gOq0keqxtA0KK+q5gOyDgeuPiA0KK+q5gOyerOq3nA0KK+q5gOyInO2DnA0KK+q5gOyZhOuCqA0KK+q5gO2VtO2ZjQ0KK+q5gOyerOq3nA0KK+q5gOq3vOuNlQ0KK+q5gOuzke2drA0KK+q5gOyEseq4sA0KK+q5gOyerOq3nA0KK+q5gOqwleyjvA0KK+q5gOygleuPhA0KK+q5gO2YhOyXsA0KK+q5gOyerOq3nA0KK+q5gOq4sOyaqQ0KK+q5gOy2mOyekA0KK+q5gOyEneyekA0KK+q5gOyerOq3oA0KK+q5gOyCvOq1rA0KK+q5gOuvvOyXtA0KK+q5gOuzkeyIoA0KK+q5gOyerOq3vA0KK+q5gOyLoOynhA0KK+q5gOyerOybkA0KK+q5gOyaqeq4uA0KK+q5gOyerOuCqA0KK+q5gOyImOyVoA0KK+q5gOqxtOuNlQ0KK+q5gOyDgeuCqA0KK+q5gOyerOuCqA0KK+q5gOuRkOq3nA0KK+q5gOqxtO2ZlA0KK+q5gO2MkOyekA0KK+q5gOyerOuMgA0KK+q5gOyynOybkA0KK+q5gOyEseq3nA0KK+q5gO2DnO2ZmA0KK+q5gOyerOuNlQ0KK+q5gOyerOyasA0KK+q5gOyEseyjvA0KK+q5gOuPhOyaqQ0KK+q5gOyerOuNlQ0KK+q5gOykkeq3nA0KK+q5gOuNleuLrA0KK+q5gOustOyjvA0KK+q5gOyerOuNlQ0KK+q5gOyduOuLrA0KK+q5gOyYge2YuA0KK+q5gOydmOyhsA0KK+q5gOyerOuNlQ0KK+q5gOyInOq3vA0KK+q5gOyerO2doA0KK+q5gOyYgeyInA0KK+q5gOyerOuPhA0KK+q5gOybkOyImA0KK+q5gOyEseybkA0KK+q5gO2DnOq3oA0KK+q5gOyerOuPhA0KK+q5gOyEseq3nA0KK+q5gOyYgeybkA0KK+q5gOywve2YhA0KK+q5gOyerOuPmQ0KK+q5gOywveyEuA0KK+q5gO2VhOyDgQ0KK+q5gOyYgeyYgQ0KK+q5gOyerOuTnQ0KK+q5gOyasOyInA0KK+q5gOydhOq3oA0KK+q5gOyehOunjA0KK+q5gOyerOunjA0KK+q5gOyaqe2VmQ0KK+q5gOq4iOyLnQ0KK+q5gO2VnO2ZmA0KK+q5gOyerOunjA0KK+q5gOyDge2YuA0KK+q5gOyDgeyImA0KK+q5gOyDge2ZmA0KK+q5gOyerOunjA0KK+q5gOyEoOybhQ0KK+q5gOyYge2ajA0KK+q5gOydtOyhsA0KK+q5gOyerOusuA0KK+q5gOuzkeyKuQ0KK+q5gOywveyXtA0KK+q5gOyEseybhQ0KK+q5gOyerOuztQ0KK+q5gO2drO2YuA0KK+q5gO2YuOyyoA0KK+q5gOq3nOyglQ0KK+q5gOyerOu0iQ0KK+q5gOuPmeyImA0KK+q5gO2DnO2DnA0KK+q5gOyerOyLnQ0KK+q5gOyerOyDnQ0KK+q5gOuqheq3vA0KK+q5gOygleq2jA0KK+q5gOq3nOyaqQ0KK+q5gOyerOyEnQ0KK+q5gOynhO2YuA0KK+q5gOuzkeyaqQ0KK+q5gOuMgOyEsQ0KK+q5gOyerOyEoA0KK+q5gOyEne2YuA0KK+q5gO2VtOyhsA0KK+q5gOyerOynhA0KK+q5gOyerOyErQ0KK+q5gOuqheustQ0KK+q5gOusuOyEsQ0KK+q5gO2MkOynhA0KK+q5gOyerOyImA0KK+q5gOyYgeuPhA0KK+q5gOyaqeqzpA0KK+q5gOyjvOyhsA0KK+q5gOyerOyImA0KK+q5gOyerOyYpQ0KK+q5gOyDgeuvvA0KK+q5gOycpO2YuA0KK+q5gOyerOyImA0KK+q5gO2DnO2VnA0KK+q5gOusuOynhA0KK+q5gO2Vmeq2jA0KK+q5gOyerOyImA0KK+q5gO2YuO2doA0KK+q5gOuzkeu0iQ0KK+q5gOuMgOyErQ0KK+q5gOyerOyImA0KK+q5gOustOq3nA0KK+q5gOychOyyoA0KK+q5gO2VtOyVlA0KK+q5gOyerOyInA0KK+q5gOydgOyImQ0KK+q5gOy2mOydtA0KK+q5gOuCqOyEpA0KK+q5gOyerOyLnQ0KK+q5gOuPmeyImA0KK+q5gOq4iOybkA0KK+q5gOyYgeq3vA0KK+q5gOyerOyWkQ0KK+q5gOydgOymnQ0KK+q5gOyGjOyXtA0KK+q5gOyerOyImA0KK+q5gOyerOyXsA0KK+q5gOygleq4sA0KK+q5gO2DnOyaqQ0KK+q5gOygle2YhA0KK+q5gOyerOyXsA0KK+q5gOyImOyEnQ0KK+q5gOyYgeyEnQ0KK+q5gOyYgeyCvA0KK+q5gOyerOyXtA0KK+q5gOyngOyEnQ0KK+q5gOynhOyImQ0KK+q5gOyaqeyaqQ0KK+q5gOyerOyXtA0KK+q5gOuPhOuylA0KK+q5gOyerOyImA0KK+q5gCDsnbQNCivquYDsnqzsl7QNCivquYDsmbjtm4gNCivquYDquIjrspQNCivquYDqsr3shJ0NCivquYDsnqzsmIENCivquYDrs5HtmZQNCivquYDtmY3smYQNCivquYDstqnsg4ENCivquYDsnqzsmIENCivquYDsmIHqt5wNCivquYDrrLTrjIANCivquYDsmKXquLgNCivquYDsnqzsmIENCivquYDssYTrhYANCivquYDtg5ztmJUNCivquYDsiJjqs6QNCivquYDsnqzsmKUNCivquYDsnKTsm5ANCivquYDshLHsiJkNCivquYDqsr3shJ0NCivquYDsnqzsmKUNCivquYDshLHssqANCivquYDqtJHsiJkNCivquYDsmIHshKANCivquYDsnqzsmqkNCivquYDsnKTshKANCivquYDrjIDqt7wNCivquYDtmqjtmIQNCivquYDsnqzsmqkNCivquYDsmYTsl7QNCivquYDsiJzroZ0NCivquYDsmqntmLgNCivquYDsnqzsmqkNCivquYDrs7Xsl7QNCivquYDquLDqtowNCivquYDsg4HshK0NCivquYDsnqzsmqkNCivquYDshLHrspQNCivquYDsnbTrn4kNCivquYDsmKXsoJUNCivquYDsnqzsmrANCivquYDqsr3smYQNCivquYDtmLjqtZANCivquYDsg4Hsl7QNCivquYDsnqzsm5ANCivquYDsmIHtmowNCivquYDshLHsobANCivquYDqsr3tg5wNCivquYDsnqzsm5ANCivquYDrs7XsoJUNCivquYDsg4HrgqgNCivquYDsiJztmZgNCivquYDsnqzsnbwNCivquYDsg4Hsm4UNCivquYDsuZjtmLgNCivquYDsnqztnawNCivquYDsnqzsnoQNCivquYDsooXtmLgNCivquYDrj4jquLANCivquYDrs5Hso7wNCivquYDsnqzsoIQNCivquYDsnqzsi50NCivquYDsmqnsmKUNCivquYDsgrzqtZANCivquYDsnqzssqANCivquYDslaDstpwNCivquYDtnaztmY0NCivquYDsg4HshJ0NCivquYDsnqzssqANCivquYDsiJjtg5wNCivquYDsm5DqtawNCivquYDtl4zqtowNCivquYDsnqzssq0NCivquYDsooXtlZgNCivquYDqt7zsmrQNCivquYDrqoXsi50NCivquYDsnqztlZkNCivquYDsmqnsiJwNCivquYDsoJDqtZANCivquYDtmY3smqkNCivquYDsnqztlZwNCivquYDtlZzquLANCivquYDrj5nsiJgNCivquYDtlZnrj4QNCivquYDsnqztmIQNCivquYDrr7zsmqkNCivquYDsooXsp4QNCivquYDrj5nsp4QNCivquYDsnqztmIQNCivquYDsnqXquLgNCivquYDri6zqt7wNCivquYDsnoTsmYQNCivquYDsnqztmIQNCivquYDsmIHshKANCivquYDqsr3siJgNCivquYDrj5nrk50NCivquYDsnqztmIQNCivquYDtmJXsiJgNCivquYDrspTspIANCivquYDsi5ztg5wNCivquYDsnqztmLgNCivquYDquIjqtIANCivquYDrtIntmZgNCivquYDshLHsiJkNCivquYDsnqztmLgNCivquYDsi6TsnqwNCivquYDrj5nshKANCivquYDstpjsl7QNCivquYDsnqztmLgNCivquYDsnbzsiJwNCivquYDsirntmIQNCivquYDrgqjsl7ANCivquYDsnqztmY0NCivquYDtmqjsmKUNCivquYDrtInqs6QNCivquYDqsJXsiJgNCivquYDsnqztmY0NCivquYDtg5zsmIENCivquYDrr7jtmLgNCivquYDsnqzsp4QNCivquYDsnqztmZQNCivquYDsoJXsmrANCivquYDsnKTrkZANCivquYDquLDsmrANCivquYDsnqztmZQNCivquYDstqnsl7ANCivquYDshLHshK0NCivquYDsmIHsnKQNCivquYDsnqztmZQNCivquYDsooXqt5wNCivquYDsmKXsoJUNCivquYDsm5DshKANCivquYDsnqztmZgNCivquYDsooXtg5wNCivquYDsooXtmLgNCivquYDsp4TsooUNCivquYDsnqztmZgNCivquYDsspztmLgNCivquYAg642VDQor6rmA7KCV6ri4DQor6rmA7J6s7ZmYDQor6rmA7KeE64WEDQor6rmA7KCQ7IicDQor6rmA7J287JqpDQor6rmA7J6s7ZmYDQor6rmA7JuQ7JiBDQor6rmA6rK96recDQor6rmA6rK97LacDQor6rmA7J6s7ZmYDQor6rmA7J6s7ISgDQor6rmA7Z2s7JqwDQor6rmA7KKF6rCRDQor6rmA7J6s7ZuEDQor6rmA7ISc7J20DQor6rmA7J207J20DQor6rmA7KeA6regDQor6rmA7J6s7ZuEDQor6rmA7Zic7ZmNDQor6rmAIO2ZmA0KK+q5gOyEoOyZhA0KK+q5gOyerO2bhQ0KK+q5gO2ajOyaqQ0KK+q5gOyImOyjvA0KK+q5gOyImO2YuA0KK+q5gOyerO2biA0KK+q5gOygleuztA0KK+q5gOqyveyImA0KK+q5gOyerOyImQ0KK+q5gOyerO2biA0KK+q5gOq0keuPhA0KK+q5gOygleqyvQ0KK+q5gOyiheqyvQ0KK+q5gOyerO2drA0KK+q5gOygle2YhA0KK+q5gOq1re2YhA0KK+q5gOuylO2drA0KK+q5gOygge2ZmA0KK+q5gOuzkeyWuA0KK+q5gOuzkeyIoA0KK+q5gOyerOybkA0KK+q5gOyghOq3oA0KK+q5gOqyveyEoA0KK+q5gOyEoOyLpA0KK+q5gOuzkeyduA0KK+q5gOyghOq4sA0KK+q5gOyerOq3vA0KK+q5gOyYgeynhA0KK+q5gOuzkeydtA0KK+q5gOygkOq3vA0KK+q5gOyYgeyErQ0KK+q5gOu2hOyxhA0KK+q5gOqyveyEnQ0KK+q5gOygkOuCqA0KK+q5gOq4sOyEoA0KK+q5gOyatOyyoA0KK+q5gOunjOyaqQ0KK+q5gOygkOuPjA0KK+q5gOuqheyasA0KK+q5gOyynO2ZmA0KK+q5gOyaqe2drA0KK+q5gOygkOuhgA0KK+q5gOuMgOyerA0KK+q5gOuNleu2hA0KK+q5gOunjOyInA0KK+q5gOygkOunjA0KK+q5gOuzte2DnA0KK+q5gOyaqeuCqA0KK+q5gOyZuOq1rA0KK+q5gOygkOu0iQ0KK+q5gOycpOyInA0KK+q5gOydke2ZmA0KK+q5gOybkOyYgQ0KK+q5gOygkOyDnQ0KK+q5gCDtkZwNCivquYDrgqjsmqkNCivquYDsgrzqs6QNCivquYDsoJDsiJgNCivquYAg7J20DQor6rmA66y07J21DQor6rmA6rSR6riwDQor6rmA7KCQ7IiYDQor6rmA7J247IudDQor6rmA7KO87KeEDQor6rmA7JeF66CoDQor6rmA7KCQ7IiZDQor6rmA7JiB7ZiEDQor6rmA7YOc7JilDQor6rmA642V7IiYDQor6rmA7KCQ7IicDQor6rmA7LCo7JqxDQor6rmA7Iq57ZWZDQor6rmA7IOB7IStDQor6rmA7KCQ7IicDQor6rmA7J2466eMDQor6rmA66eM7IiYDQor6rmA7Jyk7JiBDQor6rmA7KCQ7IigDQor6rmA7J287J6QDQor6rmA6riI7JuQDQor6rmA7Jq07KO8DQor6rmA7KCQ7IigDQor6rmA7KCQ7IigDQor6rmA64Ko66eMDQor6rmA7ISx7KSADQor6rmA7KCQ7JilDQor6rmA64+Z7JewDQor6rmA7IiY7ZmYDQor6rmA7YOc7ISgDQor6rmA7KCQ7J6QDQor6rmA7IOB7ZmYDQor6rmA66eM7YOcDQor6rmA64+Z7IiZDQor6rmA7KCQ7LKgDQor6rmA7ISx7KGwDQor6rmA66qF64KoDQor6rmA6rK966GADQor6rmA7KCQ7LacDQor6rmA7LC97IicDQor6rmA66eM7JqpDQor6rmA7ISx7YOdDQor6rmA7KCQ7YyUDQor6rmA7LaY66GdDQor6rmA64+Z6rWQDQor6rmA7Jqp7ZmUDQor6rmA7KCQ7Zi4DQor6rmA66eM64usDQor6rmA7ZmN7IudDQor6rmA7JiB7ZiEDQor6rmA7KCQ7ZmYDQor6rmA67OR7JyoDQor6rmA7J247ISgDQor6rmA7KO867O0DQor6rmA7KCV6rCVDQor6rmA7Z2s66OhDQor6rmA7Jqp7J6sDQor6rmA67OR66+8DQor6rmA7KCV6rCVDQor6rmA7LGE7Je0DQor6rmA6rG06riwDQor6rmA7KKF64+ZDQor6rmA7KCV6rG0DQor6rmA64Ko67CwDQor6rmA7JuQ7KeEDQor6rmA7YOc6riwDQor6rmA7KCV6rG0DQor6rmA7KCV656ADQor6rmA7J247J6QDQor6rmA7YOc7ZmYDQor6rmA7KCV6rOgDQor6rmA7KSR7ISdDQor6rmA6rCE6recDQor6rmA7ISx7IiYDQor6rmA7KCV6raMDQor6rmA7KCV6rOkDQor6rmA7J2E64KoDQor6rmA7KSA7JuFDQor6rmA7KCV6raMDQor6rmA7ISd7JuFDQor6rmA6riw7JqwDQor6rmA7Zqo7ZmpDQor6rmA7KCV6recDQor6rmA6rWQ7ZWcDQor6rmA7ISx7ISdDQor6rmA7ZmN7JiBDQor6rmA7KCV6recDQor6rmA7Iig7IiZDQor6rmA6re87IiYDQor6rmA7IS47JqwDQor6rmA7KCV6re8DQor6rmA67SJ7IudDQor6rmA7KKF7JewDQor6rmA7KCV7Zy0DQor6rmA7KCV6re8DQor6rmA7IiY7YOdDQor6rmA7KCV6riwDQor6rmA7Jqp7JykDQor6rmA7KCV6re8DQor6rmA7KeE7JqpDQor6rmA7JiB6re8DQor6rmA7YOc7LacDQor6rmA7KCV6riwDQor6rmA67OR7Z2sDQor6rmA64+Z64+EDQor6rmA7IiZ7KO8DQor6rmA7KCV6ri4DQor6rmA7Jqw66aEDQor6rmA7JuQ7ZuIDQor6rmA7J6s64+EDQor6rmA7KCV6ri4DQor6rmA7Jqp7LKgDQor6rmA7ZmN7IiYDQor6rmA7Jqp7Zi4DQor6rmA7KCV64KoDQor6rmA7ZW07IStDQor6rmA7J2R6riwDQor6rmA7Jqx7KO8DQor6rmA7KCV64yADQor6rmA7Jew7LGEDQor6rmA7J247LKgDQor6rmA66+47YOdDQor6rmA7KCV64yADQor6rmA7KKF7ZuIDQor6rmA7IOB64+ZDQor6rmA7JuQ7IicDQor6rmA7KCV642VDQor6rmA7J2Y7KGwDQor6rmA7Iic6rOkDQor6rmA7KSA7KCcDQor6rmA7KCV64+EDQor6rmA7Jik6recDQor6rmA7KCV7KSADQor6rmA7ISg7LKgDQor6rmA7KCV64+ZDQor6rmA7ISx7KSADQor6rmA7IK87IiYDQor6rmA7LKc7ZmYDQor6rmA7KCV65OdDQor6rmA7ZWc7JaRDQor6rmA7ISx6rOkDQor6rmA7JiB7IOdDQor6rmA7KCV65OdDQor6rmA7Jyk6rOkDQor6rmA64+Z7IicDQor6rmA7LC97IiYDQor6rmA7KCV65OdDQor6rmA7ISx7ISdDQor6rmA67OR7Zi4DQor6rmA7IiY7ZuIDQor6rmA7KCV6529DQor6rmA7Jew7IeEDQor6rmA7Iq57JiBDQor6rmA7ZiV64yADQor6rmA7KCV66GdDQor6rmA7JiB7IiZDQor6rmA7KKF7IOBDQor6rmA67OR7YOcDQor6rmA7KCV66y1DQor6rmA7J2A7J24DQor6rmA7JiB6rOgDQor6rmA7J6s7ZWZDQor6rmA7KCV66y4DQor6rmA6rec7ZiEDQor6rmA7J247IiYDQor6rmA6raM7KeADQor6rmA7KCV66+4DQor6rmA64us7IOBDQor6rmA7J6s7JaRDQor6rmA66qF7IiYDQor6rmA7KCV66+8DQor6rmA6riw656RDQor6rmA7KCV7IudDQor6rmA7ISg6re8DQor6rmA7KCV67CwDQor6rmA7KSR7ISdDQor6rmA7KKF7IiYDQor6rmA7ISx6recDQor6rmA7KCV67KUDQor6rmA7ISx7KGwDQor6rmA7JiB7LC9DQor6rmA7Z2s6rWsDQor6rmA7KCV67KUDQor6rmA7JiB7JuQDQor6rmA7IKs6re8DQor6rmA7YOc6rWtDQor6rmA7KCV67O1DQor6rmA7KKF7JqwDQor6rmA7ISx6ri4DQor6rmA7J246riwDQor6rmA7KCV67SJDQor6rmA7J6s6recDQor6rmA7KCV7IicDQor6rmA7J287YOdDQor6rmA7KCV67SJDQor6rmA7JuF7IudDQor6rmA7J6s7JykDQor6rmA7ISx7IudDQor6rmA7KCV67aADQor6rmA7Jil7IiYDQor6rmA7KCQ64KoDQor6rmA7KCV6rWsDQor6rmA7KCV67aADQor6rmA66y07J6QDQor6rmA7JiB7Zi4DQor6rmA6rCR6rWtDQor6rmA7KCV67aADQor6rmA6rK96raMDQor6rmA66qF7IiYDQor6rmA6rec7JqwDQor6rmA7KCV67mIDQor6rmA66eM6recDQor6rmA7IOB7KCVDQor6rmA6rK97IicDQor6rmA7KCV7IOBDQor6rmA7J6s6regDQor6rmA67OR7Je0DQor6rmA7Iic7YOdDQor6rmA7KCV7IOdDQor6rmA7J207ZmYDQor6rmA7KKF6rWsDQor6rmA6riw7ZiEDQor6rmA7KCV7ISdDQor6rmA7YOc7IiYDQor6rmA7JuQ7IudDQor6rmA7JuQ67SJDQor6rmA7KCV7ISgDQor6rmA7J6s7KCVDQor6rmA7J246rCRDQor6rmA7KeE7Z2gDQor6rmA7KCV7ISgDQor6rmA64us7ISgDQor6rmA67SJ7Je9DQor6rmA7IiY7IStDQor6rmA7KCV7ISgDQor6rmA7YOc7IicDQor6rmA7Zmp7ZiEDQor6rmA7JiB7KO8DQor6rmA7KCV7IiYDQor6rmA67KU656YDQor6rmAIOydtA0KK+q5gOyngOyImQ0KK+q5gOygleyImA0KK+q5gOyCvOyekA0KK+q5gOykkeyEnQ0KK+q5gOyCrOyImA0KK+q5gOygleyImA0KK+q5gOyEneq2jA0KK+q5gOyYpeyXsA0KK+q5gOyduOyImQ0KK+q5gOygleyImA0KK+q5gO2VnOydvA0KK+q5gOygle2YnA0KK+q5gOyYgeyynA0KK+q5gOygleyImA0KK+q5gOq3nOyXsA0KK+q5gOygleuqhQ0KK+q5gOyiheyVlA0KK+q5gOygleyImA0KK+q5gOuzke2YuA0KK+q5gOyGjOuCqA0KK+q5gOyiheyCvA0KK+q5gOygleyImA0KK+q5gO2DgeynhA0KK+q5gOqyveybkA0KK+q5gOq0keyasQ0KK+q5gOygleyImQ0KK+q5gOyyoO2drA0KK+q5gOyYge2YuA0KK+q5gOyEneq2jA0KK+q5gOygleyImQ0KK+q5gOu0ieyDgQ0KK+q5gOy2qeuztA0KK+q5gOygleyyoA0KK+q5gOygleyImQ0KK+q5gOyiheyyoA0KK+q5gOyxhOyerA0KK+q5gOykgOyEnQ0KK+q5gOygleyInA0KK+q5gOyaqeuqqA0KK+q5gOygle2DnQ0KK+q5gOyatOuPhA0KK+q5gOygleyInA0KK+q5gOuzkeydtA0KK+q5gOyatOykgA0KK+q5gOykke2YuA0KK+q5gOygleyInA0KK+q5gOyEseyatA0KK+q5gOy2nOyImA0KK+q5gOyDgeuFhA0KK+q5gOygleyInA0KK+q5gOuMgOyyoA0KK+q5gCDrqqkNCivquYDsmqnsmrQNCivquYDsoJXsiJwNCivquYDsm5TsiJwNCivquYDsmIHsiJwNCivquYDsnqXrr7wNCivquYDsoJXsiJwNCivquYDsooXslaANCivquYDsmrDstpwNCivquYDsnYTtlZkNCivquYDsoJXsiKANCivquYDtg5ztlqUNCivquYDqtJHsiJgNCivquYDsnKTso7wNCivquYDsoJXsi50NCivquYDsmKXsl7QNCivquYDsnqzquLANCivquYDsnbjsmKUNCivquYDsoJXslaANCivquYDsl7DsmIENCivquYDsnYDsnbwNCivquYDrs5HtlZwNCivquYDsoJXslaANCivquYDrhbjsp4QNCivquYDsnqzqtawNCivquYDtg5zsl7QNCivquYDsoJXslpENCivquYDsmqnshLENCivquYDsiJnqt4ANCivquYDtlZzsi50NCivquYDsoJXsl7ANCivquYDtlqXsl70NCivquYDtl4ztmLgNCivquYDtlYTqtawNCivquYDsoJXsl7QNCivquYDsooXsl7QNCivquYDsiJjsl7ANCivquYDsmKXshKANCivquYDsoJXsl7QNCivquYDshLHtnawNCivquYDsooXtg5wNCivquYDsg4HsiJwNCivquYDsoJXsl7QNCivquYDrgqjsi50NCivquYDsnITtm4gNCivquYDtlZjstpgNCivquYDsoJXsmKQNCivquYDsg4HtmIQNCivquYDsg4HsiJwNCivquYDsp4TtmY0NCivquYDsoJXsmKUNCivquYDrj4TtnawNCivquYDrp4ztl4wNCivquYDquIjrp4wNCivquYDsoJXsmKUNCivquYDrtoDquLANCivquYDrtInqt6ANCivquYDshLHtmqgNCivquYDsoJXsmqkNCivquYDsoJXsl7QNCivquYDsg4Hqt5wNCivquYDslpHslYUNCivquYDsoJXsmrANCivquYDtg5zsiJgNCivquYDtg5zrqqkNCivquYDshJ3siJgNCivquYDsoJXsm4UNCivquYDsmqnsmqkNCivquYDquLDsm5ANCivquYDtg4DtmLgNCivquYDsoJXsnKQNCivquYDrtInsiKANCivquYDssKjqtawNCivquYDssL3smrQNCivquYDsoJXsnYANCivquYDrqoXqt7wNCivquYDqsr3si50NCivquYDsnqzrpqwNCivquYDsoJXsnbQNCivquYDrjIDsiJwNCivquYDqsr3sl7ANCivquYDsmIHsiJgNCivquYDsoJXsnbQNCivquYDtjJDqt7wNCivquYDsooXshJ0NCivquYDqsr3quLANCivquYDsoJXsnbwNCivquYDri6zrp4wNCivquYDsmqnsiJgNCivquYDsiJjtmLgNCivquYDsoJXsnpANCivquYDsnbjsmrANCivquYDsirnrj4QNCivquYDsiJzsmIENCivquYDsoJXsnqwNCivquYDqsr3sm5ANCivquYDqsr3rr7gNCivquYDsmrDsmrQNCivquYDsoJXssKgNCivquYDshLHqsr0NCivquYDtmIHtmLgNCivquYAg7JygDQor6rmA7KCV7LCoDQor6rmA6riI7ISdDQor6rmA7J6s7Z2lDQor6rmA7YyQ6raMDQor6rmA7KCV7LacDQor6rmA7ISx7ISxDQor6rmA7ZKN67ORDQor6rmA7Iic7JqpDQor6rmA7KCV7LmYDQor6rmA64+Z7KeEDQor6rmA7J6s7JewDQor6rmA7IiY7ZiEDQor6rmA7KCV7YOcDQor6rmA7IK87J6sDQor6rmA67SJ7KSADQor6rmA7ISd7Z2sDQor6rmA7KCV7YOcDQor6rmA7IOB7IiYDQor6rmA64+Z7Je0DQor6rmA7IK87ZmUDQor6rmA7KCV7YOcDQor6rmA7JaR6rCRDQor6rmA7ZmU66+4DQor6rmA7KeE7Zi4DQor6rmA7KCV7ZWZDQor6rmA7Jil7JWUDQor6rmA642V642VDQor6rmA64yA7J21DQor6rmA7KCV7ZWZDQor6rmA7KCV7ZiEDQor6rmA64yA7ZmYDQor6rmA67OR67O1DQor6rmA7KCV7ZeMDQor6rmA7KCV7LC9DQor6rmA67OR64+MDQor6rmA6rSA7ZmUDQor6rmA7KCV7Zi4DQor6rmA7Jq07ZiEDQor6rmA7KCQ642VDQor6rmA7Ius7JewDQor6rmA7KCV7Zi4DQor6rmA7JiB67O1DQor6rmA7ZiE66qpDQor6rmA7KCV7ZmNDQor6rmA7KCV7Zi4DQor6rmA7KCV66CoDQor6rmA7J6s7YOcDQor6rmA7IiY7J6EDQor6rmA7KCV7Zi4DQor6rmA7IOB7YOcDQor6rmA7J6s6riwDQor6rmA7IOB7JiBDQor6rmA7KCV7Zi4DQor6rmA67OR7KSADQor6rmA7KCV7JqpDQor6rmA7KKF7J28DQor6rmA7KCV7Zi4DQor6rmA7KSR642VDQor6rmA7Zi47JuFDQor6rmA7ZiE7YOBDQor6rmA7KCV7Zi4DQor6rmA7KKF67CwDQor6rmA6rSR66qFDQor6rmA6rSA7JykDQor6rmA7KCV7Zi4DQor6rmA7KO87Zi4DQor6rmA64yA7JqpDQor6rmA7JiB7ZmYDQor6rmA7KCV7Zi4DQor6rmA6rK97JiBDQor6rmA7ISd7ISdDQor6rmA66eM7JuQDQor6rmA7KCV7Zi4DQor6rmA7YOc7ZmYDQor6rmA7J2464+IDQor6rmA6rCR7IStDQor6rmA7KCV7ZmNDQor6rmA66eM7IudDQor6rmA7IOB7KCVDQor6rmA7JuQ7JiBDQor6rmA7KCV7ZmUDQor6rmA7J6s7JuFDQor6rmA7LC97ISgDQor6rmA7ISd7LKgDQor6rmA7KCV7ZmUDQor6rmA7KKF7KSADQor6rmA7J6s7ZWcDQor6rmA7KCQ7ZiEDQor6rmA7KCV7ZmYDQor6rmA7J247IudDQor6rmA7JiB7ZiEDQor6rmA7Iic6rWtDQor6rmA7KCV7ZmYDQor6rmA7ZmN67SJDQor6rmA7KSR7Je0DQor6rmA7KCV7ZWcDQor6rmA7KCV7ZmYDQor6rmA642V7Zi4DQor6rmA67OR6rWQDQor6rmA7KeE7IiYDQor6rmA7KCV7ZmYDQor6rmA7Y+J67ORDQor6rmA66eQ7ISxDQor6rmA7Zmp7Zi4DQor6rmA7KCV7ZmYDQor6rmA7ISd7IOdDQor6rmA7KKF7IiYDQor6rmA7Iug7LKgDQor6rmA7KCV7ZmYDQor6rmA7LaY7IiZDQor6rmA6ri47ISdDQor6rmA7J6s6riwDQor6rmA7KCV7ZmYDQor6rmA66qF64+MDQor6rmA7Z2s6recDQor6rmA7J287IiZDQor6rmA7KCV7ZmYDQor6rmA64Ko7ZeMDQor6rmA6rK97ZuIDQor6rmA7KCV7ISxDQor6rmA7KCV7ZuIDQor6rmA7J2A7Ja4DQor6rmA7Iq57Iq5DQor6rmA7KCV7JikDQor6rmA7KCV7Z2gDQor6rmA7JuQ7ZmYDQor6rmA7Jyk642VDQor6rmA7J287IigDQor6rmA7KCV7Z2sDQor6rmA7JiB642VDQor6rmA67SJ7J20DQor6rmA6rK97IudDQor6rmA7KCV7Z2sDQor6rmA7KSA7JqpDQor6rmA6rK97KO8DQor6rmA64Ko6rCRDQor6rmA7KCV7Z2sDQor6rmA7J207Zi4DQor6rmA64+Z7ZiEDQor6rmA64+E6rOkDQor6rmA7KCV7Z2sDQor6rmA7KKF7JuQDQor6rmA7Zic6rWtDQor6rmA7J287Zi4DQor6rmA7KCV7Z2sDQor6rmA7J6s7JqpDQor6rmA7Jyk7IiYDQor6rmA7Jm47YyUDQor6rmA7KCV7Z2sDQor6rmA7Iic7IiZDQor6rmA7YOc64+ZDQor6rmA7KCQ7ISdDQor6rmA7KCc6riwDQor6rmA6rK97JilDQor6rmA7Iq57ZuIDQor6rmA66eQ7Z2sDQor6rmA7KCc7JuQDQor6rmA7Jm47LaYDQor6rmA7ISx7LKgDQor6rmA7J6s7IiYDQor6rmA7KCc7LKcDQor6rmA7IiY642VDQor6rmA67O17ZmUDQor6rmA7LaY7ZiEDQor6rmA7KCc7ZiEDQor6rmA7KCQ7IudDQor6rmA7YOc7KGwDQor6rmA7ZmU7Zi4DQor6rmA7KCc7Z2gDQor6rmA64yA7KSADQor6rmA6riw7ISdDQor6rmA7Z2s6ri4DQor6rmA7KCc7Z2gDQor6rmA7IS47LacDQor6rmA7Jqp64+MDQor6rmA7IS47Zi4DQor6rmA7KGw7JuFDQor6rmA7ZiV7J28DQor6rmA6reA7YOcDQor6rmA66y06rK9DQor6rmA7KKF6rCRDQor6rmA7KKF7IStDQor6rmA7IOB6rWsDQor6rmA66qF7Z2sDQor6rmA7KKF6rKwDQor6rmA7JiB6rK9DQor6rmA6riw7IiYDQor6rmA7Lap66qpDQor6rmA7KKF6rK9DQor6rmA7IOB64yADQor6rmA7YOc7ISdDQor6rmA7J2M66CkDQor6rmA7KKF6rSRDQor6rmA67OR7JqpDQor6rmA7KCV7Jq0DQor6rmA7L6M67SJDQor6rmA7KKF6rWsDQor6rmA7Jil7J28DQor6rmA7KeE7JqwDQor6rmA64yA7LGEDQor6rmA7KKF6rWsDQor6rmA7J6s7IudDQor6rmA7Iic64yADQor6rmA7ISd7J20DQor6rmA7KKF6rWsDQor6rmA6rOE7ZWZDQor6rmA7Iic6raMDQor6rmA7IOB7IiZDQor6rmA7KKF6rWsDQor6rmA7KKF66GdDQor6rmA65GQ7KGwDQor6rmA6rK96recDQor6rmA7KKF6rWsDQor6rmA6rWs7IudDQor6rmA7JiB7ZiEDQor6rmA66yY7J6sDQor6rmA7KKF6rWsDQor6rmA7JuU7KGwDQor6rmA7IaM7YyUDQor6rmA7JiB7ZmYDQor6rmA7KKF6rWsDQor6rmA7JyE642VDQor6rmA7LaY7J6QDQor6rmA7Jil6recDQor6rmA7KKF6recDQor6rmA7ISd7JuFDQor6rmA7JuQ7ZalDQor6rmA7JiB66eMDQor6rmA7KKF6recDQor6rmA7KeE7JuQDQor6rmA7KCQ6re8DQor6rmA7Jyg7IiYDQor6rmA7KKF6recDQor6rmA7JuQ7JykDQor6rmA7KCQ6ri4DQor6rmA7KCV7JuQDQor6rmA7KKF6recDQor6rmA7YOc7LacDQor6rmA7IiY7ZmYDQor6rmA6rK97Zi4DQor6rmA7KKF6regDQor6rmA7YOc7J6sDQor6rmA7ZmY7ISgDQor6rmA7KCV7Zi4DQor6rmA7KKF6re8DQor6rmA6riw7JqwDQor6rmA7J2E7LKcDQor6rmA7J6s7Je0DQor6rmA7KKF6riwDQor6rmA7JiB67O1DQor6rmA65Od7IiYDQor6rmA64yA642VDQor6rmA7KKF6ri4DQor6rmA7KKF6re8DQor6rmA7ZiE7IOBDQor6rmA7ZiE7ZiEDQor6rmA7KKF6ri4DQor6rmA7ZW07Je0DQor6rmA64+Z64yADQor6rmA7ISd6rWsDQor6rmA7KKF6ri4DQor6rmA64KZ7ISxDQor6rmA6riI6raMDQor6rmA6rCR7J24DQor6rmA7KKF6ri4DQor6rmA7IKs7IudDQor6rmA7KSR7ZmUDQor6rmA66qF7IudDQor6rmA7KKF64usDQor6rmA7J6s7ZGcDQor6rmA7Jik66a9DQor6rmA7LCo7IudDQor6rmA7KKF64usDQor6rmA7KeE7ZuIDQor6rmA6rCV7LmYDQor6rmA642V7ZiEDQor6rmA7KKF64yADQor6rmA7ZWc7IudDQor6rmA7J247Zi4DQor6rmA67OR7ZuIDQor6rmA7KKF64yADQor6rmA7Jew64yADQor6rmA7IOB64+MDQor6rmA6rK97ISgDQor6rmA7KKF642VDQor6rmA7YyQ7Zi4DQor6rmA7IS47JqwDQor6rmA7Jqp7ISdDQor6rmA7KKF656YDQor6rmA7ISd64+ZDQor6rmA7IOB6riIDQor6rmA7LCo7ZiEDQor6rmA7KKF66a9DQor6rmA7J6s7IOBDQor6rmA7KKF7ZmUDQor6rmA66eM7J6EDQor6rmA7KKF66eMDQor6rmA7J286riwDQor6rmA6rCV7ZmNDQor6rmA6rK97KeEDQor6rmA7KKF66eMDQor6rmA7ZiE7YOcDQor6rmA67O17IudDQor6rmA7KCV64+EDQor6rmA7KKF66eMDQor6rmA7J6l64KoDQor6rmA7KKF7J20DQor6rmA7Jqw7ZmNDQor6rmA7KKF67CwDQor6rmA7IaM6re8DQor6rmA7J2Y7JqpDQor6rmA6riw7IiYDQor6rmA7KKF67CwDQor6rmA7IOB7KCVDQor6rmA7Lmg7IudDQor6rmA7Jqp7IiZDQor6rmA7KKF67CxDQor6rmA7Zi47IiYDQor6rmA7J6s7Zi4DQor6rmA7J2E6rOEDQor6rmA7KKF67KUDQor6rmA67aA7JqpDQor6rmA67O16529DQor6rmA6riw7IiYDQor6rmA7KKF67KUDQor6rmA7ZiV7KO8DQor6rmA7Jyk7J20DQor6rmA6rec7LKgDQor6rmA7KKF67O1DQor6rmA7KeE7IiZDQor6rmA7KKF7JqwDQor6rmA7LKc66eQDQor6rmA7KKF67O1DQor6rmA7JiB7ISdDQor6rmA7IOB7JqwDQor6rmA7JuU6rWsDQor6rmA7KKF67O1DQor6rmA7KKF7Z2gDQor6rmA6rK97KO8DQor6rmA7J247Zi4DQor6rmA7KKF67O1DQor6rmA7ISx7Zy0DQor6rmA7IOB7ZWcDQor6rmA7Z2s7JewDQor6rmA7KKF67O1DQor6rmA7KKF6rK9DQor6rmA65GQ6riwDQor6rmA7KKF7ZiBDQor6rmA7KKF67SJDQor6rmA7KSA7KO8DQor6rmA6riw6raMDQor6rmA7IOB7JiBDQor6rmA7KKF7ISdDQor6rmA7YOc7IS4DQor6rmA7KCV7IiZDQor6rmA64+E7Zi4DQor6rmA7KKF7ISdDQor6rmA66eM7Z2sDQor6rmA7Jew6raMDQor6rmA7Z2s7YOcDQor6rmA7KKF7ISdDQor6rmA7J6s642VDQor6rmA67SJ67aEDQor6rmA66y47ISgDQor6rmA7KKF7ISgDQor6rmA67OR7ISdDQor6rmA6riw6rWsDQor6rmA7ZeM7IStDQor6rmA7KKF7ISgDQor6rmA642V6re8DQor6rmA7YOc64yADQor6rmA66+47J28DQor6rmA7KKF7ISxDQor6rmA7Z2s7JuQDQor6rmA7YOc7IiZDQor6rmA7J247ISdDQor6rmA7KKF7ISxDQor6rmA66y07J6sDQor6rmA7IOB6rCVDQor6rmA7JuQ7JilDQor6rmA7KKF7IiYDQor6rmA7Z2s7KeEDQor6rmA65Od7IiYDQor6rmA66qF6regDQor6rmA7KKF7IiYDQor6rmA6riI67SJDQor6rmA66y07IicDQor6rmA67OR66eMDQor6rmA7KKF7IiYDQor6rmA7LKg7ZmNDQor6rmA7Jil7KeEDQor6rmA66qF7YOcDQor6rmA7KKF7IiYDQor6rmA7ZWc6recDQor6rmA7KeE6recDQor6rmA7LCo7LGEDQor6rmA7KKF7IicDQor6rmA7IiY7IutDQor6rmA7J6s7Z2sDQor6rmA7Jyk7LKcDQor6rmA7KKF7IudDQor6rmA66m0642VDQor6rmA7ZiE7IaMDQor6rmA7ZmY7IiYDQor6rmA7KKF7IudDQor6rmA7JiB7JuFDQor6rmA7LaY7J6EDQor6rmA7ISx7ZmYDQor6rmA7KKF7IutDQor6rmA7IOB7LKgDQor6rmA67SJ67O1DQor6rmA7J6s7J20DQor6rmA7KKF7Ja1DQor6rmA66y47Jq0DQor6rmA66eM7ZiEDQor6rmA7LCo7Zi4DQor6rmA7KKF7JewDQor6rmA7ISx7YOcDQor6rmA7Z2s642VDQor6rmA7JiB7JuQDQor6rmA7KKF7JewDQor6rmA7Lmg7IudDQor6rmA7ZWZ7J2ADQor6rmA642V7LCsDQor6rmA7KKF7Je0DQor6rmA7ZmN64yADQor6rmA66y46rSRDQor6rmA64+E7LKcDQor6rmA7KKF7Je9DQor6rmA7J2464KoDQor6rmA7ZWE7JiBDQor6rmA7IaM7KGwDQor6rmA7KKF7JiBDQor6rmA66y47IudDQor6rmA66eQ7IiYDQor6rmA66y06re8DQor6rmA7KKF7JikDQor6rmA66+86re8DQor6rmA7Jyk7YyQDQor6rmA7JiB7KSADQor6rmA7KKF7JqxDQor6rmA7ZmU7J28DQor6rmA7J6s7ISgDQor6rmA7Jik7JiBDQor6rmA7KKF7Jq0DQor6rmA7Iic7ZGcDQor6rmA6rG06raMDQor6rmA7KKF7LaYDQor6rmA7KKF7JuQDQor6rmA6rec7IicDQor6rmA7KSR7JqxDQor6rmA7IOB7JiBDQor6rmA7KKF7JuQDQor6rmA7ZmN7JWUDQor6rmA7Jqw6ri4DQor6rmA6re866eMDQor6rmA7KKF7JuQDQor6rmA7ZmU7IOdDQor6rmA7IS47YOBDQor6rmA7ZWE6recDQor6rmA7KKF7JykDQor6rmA64yA67ORDQor6rmA7LKg7KCVDQor6rmA6riw7JqpDQor6rmA7KKF7JyoDQor6rmA6rSR7JiBDQor6rmA7IOB64yADQor6rmA6rCR6rWsDQor6rmA7KKF7J20DQor6rmA7ISx6riwDQor6rmA7IiZ7IicDQor6rmA7IOB7J20DQor6rmA7KKF7J20DQor6rmA7IOB7ZqoDQor6rmA67O46ri4DQor6rmA7ZiE6raMDQor6rmA7KKF7J28DQor6rmA7YOc7ISdDQor6rmA65Od7ZqoDQor6rmA65Od7Z2sDQor6rmA7KKF7KGwDQor6rmA7Zi47J6FDQor6rmA7ZiE642VDQor6rmA7LmY66eMDQor6rmA7KKF7KeEDQor6rmA7Iic7KO8DQor6rmA7YOc7KCVDQor6rmA7ZWE7Zi4DQor6rmA7KKF7KeEDQor6rmA67KU66y4DQor6rmA67OR7JuQDQor6rmA7Jqp7Zi4DQor6rmA7KKF7LKgDQor6rmA7KCV7ZmUDQor6rmA7KCV7Zi4DQor6rmA7KKF7LKgDQor6rmA7KKF7LKgDQor6rmA642V7ZmUDQor6rmA7Iic7J24DQor6rmA7LC9642VDQor6rmA7KKF7LKgDQor6rmA7KSA7IiZDQor6rmA64yA65OdDQor6rmA7KCQ7KGwDQor6rmA7KKF7YOcDQor6rmA7JiB7IicDQor6rmA7KKF7KGwDQor6rmA66eM7ISdDQor6rmA7KKF7YOcDQor6rmA7Iic7KeEDQor6rmA6riw6rCRDQor6rmA7J287IicDQor6rmA7KKF7YOcDQor6rmA7JiB7JqwDQor6rmA7Zi46rK9DQor6rmA7J2Y7JilDQor6rmA7KKF7YOcDQor6rmA7KO86rWsDQor6rmA7Iq57IudDQor6rmA7Lmg6re8DQor6rmA7KKF7YOcDQor6rmA7LGE7LKcDQor6rmA7IiY7IiYDQor6rmA7IOB7KCcDQor6rmA7KKF7YOcDQor6rmA7LmY64KoDQor6rmA64+Z6rWsDQor6rmA64+Z7JqpDQor6rmA7KKF7YOcDQor6rmA7YOc67SJDQor6rmA7LKc7IOBDQor6rmA7Iah6rK9DQor6rmA7KKF7ZWYDQor6rmA7JiB67aEDQor6rmA6rec7JWFDQor6rmA7IK87ZiEDQor6rmA7KKF7ZWZDQor6rmA67OR7JiBDQor6rmA7Jqp7JuQDQor6rmA7KCV7JiBDQor6rmA7KKF7ZWZDQor6rmA7Jyg7J20DQor6rmA7Iud7YOcDQor6rmA7KCV7JewDQor6rmA7KKF7ZWcDQor6rmA7Jqp7J6QDQor6rmA7KeE7J6EDQor6rmA7ZmY7JiBDQor6rmA7KKF7ZW0DQor6rmA7ZiE7LCsDQor6rmA6rec7IudDQor6rmA7JiB7JaRDQor6rmA7KKF7ZiEDQor6rmA7ZyY7JmEDQor6rmA7J247KCVDQor6rmA6ri464KoDQor6rmA7KKF7ZiEDQor6rmA67SJ7ZuIDQor6rmA7ZeM6riwDQor6rmA6rCR66C5DQor6rmA7KKF7Zi4DQor6rmA7J6s7IudDQor6rmA7J6s6rK9DQor6rmA7ZmN7ZmYDQor6rmA7KKF7Zi4DQor6rmA7IOB7ISdDQor6rmA64+E6recDQor6rmA7JuQ6rKwDQor6rmA7KKF7Zi4DQor6rmA7J2Y7JuQDQor6rmA7LCo7IiYDQor6rmA6rWs7Zi4DQor6rmA7KKF7ZmUDQor6rmA7ZiE7KSRDQor6rmA6riw66a9DQor6rmA7J287IK8DQor6rmA7KKF7ZmUDQor6rmA67SJ7KSRDQor6rmA66eM7JuFDQor6rmA7IiY7ZWZDQor6rmA7KKF7ZmYDQor6rmA7IS47Je9DQor6rmA7J6s642VDQor6rmA7ZW07KGwDQor6rmA7KKF7ZmYDQor6rmA66eQ7ZWEDQor6rmA64+Z7IStDQor6rmA7Jqp7ISxDQor6rmA7KKF7ZuIDQor6rmA7J207JiBDQor6rmA7J287IicDQor6rmA7IOB7IiYDQor6rmA7KKF7Z2gDQor6rmA7Jqp6re8DQor6rmA7JuU7IudDQor6rmA7LC96ri4DQor6rmA7KKF7Z2sDQor6rmA7Jqw7LacDQor6rmA66qo7IiZDQor6rmA7Jqp7ISgDQor6rmA7KO86rCRDQor6rmA7KSR7JqpDQor6rmA7ZiE7ZmNDQor6rmA7YOc6rK4DQor6rmA7KO8642VDQor6rmA7J6s67KUDQor6rmA7KeE642VDQor6rmA7J2Y64W4DQor6rmA7KO867O1DQor6rmA64yA7J6QDQor6rmA7KKF656ADQor6rmA67SJ7Z2sDQor6rmA7KO867SJDQor6rmA7Iq57ZmYDQor6rmA7J217IiYDQor6rmA7IiY7KeEDQor6rmA7KO87IOBDQor6rmA6reA7LKgDQor6rmA7JuQ7JaRDQor6rmA6rOE7J20DQor6rmA7KO87IOBDQor6rmA7KeE7ZiEDQor6rmA7IK87IiYDQor6rmA7JiB6rK9DQor6rmA7KO87ISdDQor6rmA64+Z7JqwDQor6rmA7KKF7ISgDQor6rmA7JuU7ISgDQor6rmA7KO87ISdDQor6rmA7ISd6re8DQor6rmA7J287ZmYDQor6rmA66+47J6QDQor6rmA7KO87ISxDQor6rmA7ISg7JqpDQor6rmA6re87JewDQor6rmA6rWs7JqpDQor6rmA7KO87IicDQor6rmA64+Z7YOcDQor6rmA7J6s6raMDQor6rmA7JuU6recDQor6rmA7KO87J24DQor6rmA7Iuc67SJDQor6rmA7Zi47ZGcDQor6rmA7KSR7J6sDQor6rmA7KO87J28DQor6rmA7KKF7JewDQor6rmA7Jqp7IiYDQor6rmA7LC97ISdDQor6rmA7KO87YOcDQor6rmA7Jq07Z2sDQor6rmA7KKF7YOcDQor6rmA7J287LKgDQor6rmA7KO87YOdDQor6rmA7ISd67aEDQor6rmA7J247KGwDQor6rmA7JuQ7KeEDQor6rmA7KO87ZWYDQor6rmA7ISd7JiBDQor6rmA7YOc7IudDQor6rmAIOyasA0KK+q5gOyjvO2VmQ0KK+q5gOyDge2YuA0KK+q5gOyYge2biA0KK+q5gOyduOuqqQ0KK+q5gOyjvO2YhA0KK+q5gO2YuO2drA0KK+q5gOuzke2YuA0KK+q5gOyCvOuemA0KK+q5gOyjvO2YuA0KK+q5gOuNleyhsA0KK+q5gOyaqeyImA0KK+q5gO2VmOywrA0KK+q5gOyjvO2ZmA0KK+q5gOygleuPhA0KK+q5gOyjvOyDnQ0KK+q5gOyImeyImA0KK+q5gOyjvO2doA0KK+q5gOyniOydtA0KK+q5gOuqhe2cmA0KK+q5gOydvOuMgA0KK+q5gOyjveyEoA0KK+q5gOycoOydvA0KK+q5gOunkO2VmQ0KK+q5gO2Vmeq1rA0KK+q5gOykgOqzpA0KK+q5gO2cmOyDgQ0KK+q5gCDrjZUNCivquYDsmqnrj5kNCivquYDspIDqt5wNCivquYDssL3snbQNCivquYDsmIHroZwNCivquYDsp4Drpr0NCivquYDspIDquLANCivquYDsgrzroKgNCivquYDsi5zsi50NCivquYDsm5Dsm5ANCivquYDspIDrs7QNCivquYDssq3tmIQNCivquYDsmqnsnKgNCivquYDrgqjsiJgNCivquYDspIDsi50NCivquYDtjJDshJ0NCivquYDsnqzslYQNCivquYDsoJXsnbwNCivquYDspIDsi50NCivquYDtm4jspIANCivquYDsg4Hsp4QNCivquYDsooXsoJUNCivquYDspIDsl7ANCivquYDsiJzshJ0NCivquYDsoJXsoJUNCivquYDtmLjqsbQNCivquYDspIDsmIENCivquYDtjJDtmLgNCivquYDtlbTtmLgNCivquYDqsr3ssqANCivquYDspIDsmrANCivquYDsg4Hsi50NCivquYDsnKTsl7QNCivquYDtlbTtg5wNCivquYDspIDsm4UNCivquYDshJ3qt5wNCivquYDqsJHrjZUNCivquYDsooXsmIENCivquYDspIDsnpANCivquYDsooXsiJgNCivquYDsg4Hrj4QNCivquYDrqoXqs6QNCivquYDspIDssqANCivquYDtmITsiJwNCivquYDtnJjqsIANCivquYDsnKTsm4UNCivquYDspIDtg50NCivquYDrrLTtmLgNCivquYDtlZntmLgNCivquYDtg5zsnpANCivquYDspIDtg50NCivquYDtlZztmY0NCivquYDsnYDqtowNCivquYDsg4HssqANCivquYDspIDtmLgNCivquYDsmIHsnbwNCivquYDspJHrk7ENCivquYDtmITshKANCivquYDspIDtmLgNCivquYDsmqnrgqgNCivquYDsooXsiJwNCivquYDsmqnsnbQNCivquYDspIDtmLgNCivquYDsnKTsl7ANCivquYDsg4Hrp4wNCivquYDtlZjsg4ENCivquYDspIDtmZgNCivquYDshLHsm5ANCivquYDtlZztmIQNCivquYDrs5Hqsr0NCivquYDspJHqsbQNCivquYDsoJDquLANCivquYDshLHtmZgNCivquYDso7ztnawNCivquYDspJHqsbQNCivquYDqsr3shK0NCivquYDsnqzsiJgNCivquYDrj5nsobANCivquYDspJHqtJENCivquYDquIjtnLQNCivquYDshLHtmIQNCivquYDsl7Drk50NCivquYDspJHqt7wNCivquYDrj5nsl7QNCivquYDsm5DsiJgNCivquYDqtJHtmIQNCivquYDspJHquLANCivquYDtlZztmZQNCivquYDsiJzsiJgNCivquYDsg4HtmIENCivquYDspJHroKgNCivquYDsmIHsiJwNCivquYDsmbjtmLgNCivquYDsnKDsg4ENCivquYDspJHroKgNCivquYDsnZHsiJwNCivquYDspIDtmZQNCivquYDsg4Hsi50NCivquYDspJHshJ0NCivquYDrj5nsmrQNCivquYDsg4HsnKQNCivquYDqta3tmZgNCivquYDspJHsiJgNCivquYDsg4Hrk50NCivquYDsmrTslrUNCivquYDsiJjqtJENCivquYDspJHsiJgNCivquYDqt5zsi6QNCivquYDquIjrjZUNCivquYDtmY3shLENCivquYDspJHsm5ANCivquYDsg4HtmLgNCivquYDshLHsmrANCivquYDssqDtmLgNCivquYDspJHsnbwNCivquYDtmqjrsLANCivquYDsmbjroKwNCivquYDsiJntg5wNCivquYDspJHsnpANCivquYDrj5ntmLgNCivquYDrjIDtmLgNCivquYDsnbjtg50NCivquYDspJHtmIQNCivquYDsmIHquLANCivquYDqs4TtmLgNCivquYDqsr3siJgNCivquYDspJHtmJwNCivquYDsmrDsl7QNCivquYDrqoXtmLgNCivquYDquLDqs6QNCivquYDspJHtnawNCivquYDsoJDshJ0NCivquYDtnazsmqkNCivquYDrtoTssL0NCivquYDspp3siJkNCivquYDssKjrk50NCivquYDsnYTtmIQNCivquYDqsJHslaANCivquYDspp3siJwNCivquYDsiJjssYQNCivquYDrs5HrhbgNCivquYDrj4Ttg5wNCivquYDspp3spIANCivquYDsm5DsiJgNCivquYDsmIHtmZgNCivquYDslaDsoJwNCivquYDsp4Dqt7wNCivquYDsmqnsmKQNCivquYDsspzshJ0NCivquYDtlZzsooUNCivquYDsp4DrtIkNCivquYDsiJzsm5ANCivquYDsg4HtmLgNCivquYDtmqjqt7wNCivquYDsp4DrtIkNCivquYDshKDsnpANCivquYDtg5ztmLgNCivquYDsmIHsnbwNCivquYDsp4DsirkNCivquYDsirnsi50NCivquYDsirnsmqkNCivquYDtmITrrLUNCivquYDsp4DslaANCivquYDqt4DsmqkNCivquYDtlZzsmIENCivquYDtlZnsm5ANCivquYDsp4Dsl7ANCivquYDshLHtnawNCivquYDsooXqsJENCivquYDshLHqta0NCivquYDsp4DtmIQNCivquYDsnqzsiJgNCivquYDsooXtkZwNCivquYDrs5HsiKANCivquYDsp4DtmJwNCivquYDsnbjrj5kNCivquYDstpjslZQNCivquYDtmY3tmIQNCivquYDsp4DtnawNCivquYDtg5zsm5ANCivquYDsgrztmZQNCivquYDrqoXtnawNCivquYDsp4Tqsr0NCivquYDrj5nsobANCivquYDrs7Xsi6wNCivquYDsmqntmY0NCivquYDsp4Tqs6QNCivquYDsl7DtmIQNCivquYDsmqnsiJgNCivquYDsmqnqtowNCivquYDsp4Tqs6QNCivquYAg7JilDQor6rmA7Iic7IudDQor6rmA6riw7IiYDQor6rmA7KeE6rOkDQor6rmA7ISg7J6QDQor6rmA7ISg7Zi4DQor6rmA66eM7IicDQor6rmA7KeE6rWsDQor6rmA7YOc7J28DQor6rmA7LKg7JuQDQor6rmA7KCV7J28DQor6rmA7KeE6raMDQor6rmA66y47J6sDQor6rmA7J2A6re8DQor6rmA7Jew7ZiVDQor6rmA7KeE6raMDQor6rmA6rec6raMDQor6rmA7J6s7ZmUDQor6rmA7KCV7Zi4DQor6rmA7KeE6recDQor6rmA7LaY7IudDQor6rmA7JiB7IicDQor6rmA7Zic6rSADQor6rmA7KeE6recDQor6rmA7J6s7J6lDQor6rmA7ZiV7ZiEDQor6rmA67OR7Zi4DQor6rmA7KeE6recDQor6rmA7IOB7KGwDQor6rmA7KeE7IiZDQor6rmA66+47ZiEDQor6rmA7KeE6riwDQor6rmA7KCQ7J6QDQor6rmA64Ko7J20DQor6rmA65Ox7LacDQor6rmA7KeE64yADQor6rmA65GQ7IOdDQor6rmA7ZKN7JW8DQor6rmA67OR7KCQDQor6rmA7KeE64yADQor6rmA7ZmN7JqxDQor6rmA6re87LKgDQor6rmA65GQ7IicDQor6rmA7KeE64+ZDQor6rmA6rK97IiZDQor6rmA7JuQ7KeEDQor6rmA64+Z7Zi4DQor6rmA7KeE64+ZDQor6rmA67OR7IiYDQor6rmA7J2A7KGwDQor6rmA7ZmY7YOcDQor6rmA7KeE64+ZDQor6rmA7Jqw65OdDQor6rmA7IOB7IicDQor6rmA7YOc64+ZDQor6rmA7KeE66GdDQor6rmA7LKg66a8DQor6rmA7ISx7KSADQor6rmA7LKc6rCRDQor6rmA7KeE67CwDQor6rmA7Iic66qpDQor6rmA7YOc7LKgDQor6rmA7ISx7JuFDQor6rmA7KeE7ISdDQor6rmA6riw7ZeMDQor6rmA7KCV7YOcDQor6rmA7J6s64+MDQor6rmA7KeE7ISdDQor6rmA7YOd7ZalDQor6rmA7KKF7J28DQor6rmA64yA7J28DQor6rmA7KeE7IStDQor6rmA7L6M7J28DQor6rmA7J6s64+EDQor6rmA7KCV6rSADQor6rmA7KeE7IStDQor6rmA7ZuE7ZmYDQor6rmA7J2Y7ZWYDQor6rmA7IOB7J6QDQor6rmA7KeE7IiYDQor6rmA7JiB66eMDQor6rmA7IOB7ISgDQor6rmA7JuQ7LCoDQor6rmA7KeE7IiYDQor6rmA7Jqp6rK9DQor6rmA7JiB7KCcDQor6rmA7J286rWsDQor6rmA7KeE7IiZDQor6rmA7JiB7ZiEDQor6rmA7KKF7Zi4DQor6rmA7Jew7KO8DQor6rmA7KeE7IiZDQor6rmA66eQ7ZmYDQor6rmA64+Z7LaYDQor6rmA6raB7ZWcDQor6rmA7KeE7IigDQor6rmA7YOc7YOcDQor6rmA7JuQ7IOBDQor6rmA6rK967CwDQor6rmA7KeE7IudDQor6rmA7Jqw7ZeMDQor6rmA7ISx7ISdDQor6rmA6riw7JqwDQor6rmA7KeE7IudDQor6rmA7J6s7Je0DQor6rmA7J6s7IiYDQor6rmA7IS47KKFDQor6rmA7KeE7Je0DQor6rmA7IOB7IudDQor6rmA6riw65OdDQor6rmA7J2864+ZDQor6rmA7KeE7JiBDQor6rmA6rec7IiYDQor6rmA7KCV6recDQor6rmA7JiB7JWUDQor6rmA7KeE7JiBDQor6rmA7J2064+ZDQor6rmA7YOc7IudDQor6rmA6riw7ZalDQor6rmA7KeE7JikDQor6rmA7ISx7IudDQor6rmA7KCE6riwDQor6rmA7JuQ64KoDQor6rmA7KeE7JqpDQor6rmA66+46re8DQor6rmA7Jyk7JuFDQor6rmA7Iq57LKgDQor6rmA7KeE7JqwDQor6rmA7JiB7KKFDQor6rmA7Lmg7ZiEDQor6rmA7JiB7IiYDQor6rmA7KeE7JuFDQor6rmA7YOc7KCVDQor6rmA7ZiV67O1DQor6rmA67OR64+EDQor6rmA7KeE7J28DQor6rmA7KCV7LaYDQor6rmA7J247ZuIDQor6rmA7LGE6rG0DQor6rmA7KeE7KKFDQor6rmA7J2466eMDQor6rmA7KKF7IiYDQor6rmA7Jew7LKcDQor6rmA7KeE7KO8DQor6rmA7KeE7Z2sDQor6rmA64yA7J20DQor6rmA7LC97LmgDQor6rmA7KeE7LKcDQor6rmA7Jqp7Z2sDQor6rmA7LCs7JuFDQor6rmA7IiY7KO8DQor6rmA7KeE7YOcDQor6rmA64yA7ZuIDQor6rmA7KCV7IiYDQor6rmA7KCQ7Je0DQor6rmA7KeE7YOcDQor6rmA67OR7JuQDQor6rmA7KCV7IicDQor6rmA7JiB7LaYDQor6rmA7KeE7YOcDQor6rmA6re87Je0DQor6rmA7J6s7ISgDQor6rmA6riw6rCVDQor6rmA7KeE7YOcDQor6rmA7J286rKsDQor6rmA7J286ri4DQor6rmA7KCV7JiBDQor6rmA7KeE7YOdDQor6rmA6riw7YOBDQor6rmA7YOc7IicDQor6rmA7JuQ7KeEDQor6rmA7KeE7ZWZDQor6rmA7KO87J6QDQor6rmA7J247YOcDQor6rmA7J6s66WcDQor6rmA7KeE7ZWZDQor6rmA66eM7KCVDQor6rmA7ZW07ZiVDQor6rmA67OR66y0DQor6rmA7KeE7ZiVDQor6rmA7Ja47KeEDQor6rmA7IiY7JuQDQor6rmA7J6s7J28DQor6rmA7KeE7Zi4DQor6rmA7J6s64+IDQor6rmA7KCV7Zi4DQor6rmA7KKF6riwDQor6rmA7KeE7Zi4DQor6rmA7ZmN7LKgDQor6rmA7J6s7IudDQor6rmA7Iic64KoDQor6rmA7KeE7Zi4DQor6rmA7J6s7ZmYDQor6rmA7J216riwDQor6rmA7KCV7Zi4DQor6rmA7KeE7Zi4DQor6rmA7Jqp7JqpDQor6rmA6rWs7KSADQor6rmA7J286recDQor6rmA7KeE7ZmNDQor6rmA7KCV7LCsDQor6rmA7IKs7ISdDQor6rmA7ISx7YOcDQor6rmA7KeE7ZmYDQor6rmA7JiB7JikDQor6rmA7IiY7IiZDQor6rmA7YOc7ISdDQor6rmA7KeE7ZqoDQor6rmAIOq2jA0KK+q5gOydvO2ZmA0KK+q5gOyEseq4uA0KK+q5gOynhO2drA0KK+q5gOyGjOyInA0KK+q5gOuNleyekA0KK+q5gOybkOyEoA0KK+q5gOynhO2drA0KK+q5gOq4sO2VmQ0KK+q5gOyerOydvA0KK+q5gOyiheq1rA0KK+q5gOynhO2drA0KK+q5gOuMgOyatA0KK+q5gO2DnOq2jA0KK+q5gOu0ie2ZmA0KK+q5gOynhO2drA0KK+q5gOyImOybkA0KK+q5gOyInOu0iQ0KK+q5gOyXsOyIoA0KK+q5gOyniO2MkA0KK+q5gOyImOuPjA0KK+q5gOyiheq2jA0KK+q5gOq0keyImA0KK+q5gOywqOuFuA0KK+q5gOyEneyehA0KK+q5gOuzkeyaqQ0KK+q5gOyiheuCqA0KK+q5gOywqOu0iQ0KK+q5gOyerOqxtA0KK+q5gOqwkeyXsA0KK+q5gOyerOynhA0KK+q5gOywqOyEnQ0KK+q5gOyYge2biA0KK+q5gOyInOyLnQ0KK+q5gOygleuRkA0KK+q5gOywqOyEnQ0KK+q5gOuzke2YuA0KK+q5gOyLnOyLnQ0KK+q5gOq4sOyLrA0KK+q5gOywqOyVlA0KK+q5gOycpOyIoA0KK+q5gOyYpOygnA0KK+q5gOyyreudvQ0KK+q5gOywqOyVlA0KK+q5gOydvO2VnA0KK+q5gOyDge2ZmA0KK+q5gOydgO2biA0KK+q5gOywqOyXsA0KK+q5gOyaqeyImA0KK+q5gOyDgeqyvQ0KK+q5gOyDgeycqA0KK+q5gOywqOyYgQ0KK+q5gOuPhO2VtA0KK+q5gOq3nOyImA0KK+q5gO2MkO2drA0KK+q5gOywqOyynA0KK+q5gOq1reyhsA0KK+q5gOyImeq3nA0KK+q5gOyCvOq0gA0KK+q5gOywqOy2nA0KK+q5gOygleuPjA0KK+q5gOyerOuPmQ0KK+q5gO2VnOyImQ0KK+q5gOywqO2ZjQ0KK+q5gOyZhOyglQ0KK+q5gOq3gOusuA0KK+q5gO2XjOyInA0KK+q5gOywqO2drA0KK+q5gOy2mO2YuA0KK+q5gOuCmeyyoA0KK+q5gOyImOyWuA0KK+q5gOywrOqyvQ0KK+q5gOuFuOyErQ0KK+q5gOyXsOq4sA0KK+q5gO2DnOykgA0KK+q5gOywrOyImA0KK+q5gOyepeyasQ0KK+q5gOq4sOyerA0KK+q5gOusmO2ZmA0KK+q5gOywveq1rA0KK+q5gOuqhe2YuA0KK+q5gOygleydtA0KK+q5gOq3vO2DnA0KK+q5gOywveq3vA0KK+q5gOu2hOyEnQ0KK+q5gOy2mOyImQ0KK+q5gOygleyyoA0KK+q5gOywveq3vA0KK+q5gOyEseyImA0KK+q5gOqyve2DnA0KK+q5gOq4sOq3uQ0KK+q5gOywveq4sA0KK+q5gO2DgOyLnQ0KK+q5gOu0ieuFlQ0KK+q5gOuvvOyCvA0KK+q5gOywveq4sA0KK+q5gOyImOyEnQ0KK+q5gOyepeuTnQ0KK+q5gOycpOq3nA0KK+q5gOywveusuA0KK+q5gOyDgeuwsA0KK+q5gOyEoOyImA0KK+q5gOuzke2drA0KK+q5gOywveuwsA0KK+q5gOygleyLnQ0KK+q5gOywveyImA0KK+q5gOuPmeyInA0KK+q5gOywveyEoA0KK+q5gOyIme2YhA0KK+q5gOqyveyyoA0KK+q5gOyYgeyYpA0KK+q5gOywveyEsQ0KK+q5gOyDge2DnA0KK+q5gOyWteq4sA0KK+q5gOq4sO2ctA0KK+q5gOywveyImA0KK+q5gOyImO2ZmA0KK+q5gOuzkeuCqA0KK+q5gOyImOyyoA0KK+q5gOywveyImA0KK+q5gOyaqe2YuA0KK+q5gO2DnO2drA0KK+q5gOq3nO2aqA0KK+q5gOywveyImA0KK+q5gOyDgeykgA0KK+q5gOyKueyXsA0KK+q5gO2YuOyVlA0KK+q5gOywveyImQ0KK+q5gOuzkeyImQ0KK+q5gOyDgeyInA0KK+q5gOyLoOq3vA0KK+q5gOywveyLnQ0KK+q5gOqyveyLnQ0KK+q5gOqxtOunjA0KK+q5gOyerOyImA0KK+q5gOywveyLnQ0KK+q5gOyEseykgA0KK+q5gOyepeyekA0KK+q5gOyynOyXsA0KK+q5gOywveyLnQ0KK+q5gOyZuOyVhA0KK+q5gOyEneyhsA0KK+q5gOyEneyImA0KK+q5gOywveyVoA0KK+q5gOyiheuPmQ0KK+q5gOuCqOq2gQ0KK+q5gOybkOuRkA0KK+q5gOywveyWtQ0KK+q5gOyaqeyInA0KK+q5gOyKueuwsA0KK+q5gOygleqzhA0KK+q5gOywveyWtQ0KK+q5gOuzkeu0iQ0KK+q5gOyasO2drA0KK+q5gOuPme2YhA0KK+q5gOywveyXtA0KK+q5gOygle2YuA0KK+q5gOyerOq3vA0KK+q5gOyDge2ZmA0KK+q5gOywveyXtA0KK+q5gOyYgeyasQ0KK+q5gO2DnOunjA0KK+q5gOygleyEoA0KK+q5gOywveyXtA0KK+q5gOuqheuNlQ0KK+q5gOq4sOy2nA0KK+q5gOygle2VnA0KK+q5gOywveyZhA0KK+q5gOyerOyerA0KK+q5gOydhOyImA0KK+q5gOyDgeu2hA0KK+q5gOywveyatA0KK+q5gOyiheydhA0KK+q5gOyYgeq3nA0KK+q5gOq3nO2YuA0KK+q5gOywveydvA0KK+q5gOu2gOyInA0KK+q5gOyDge2ZlA0KK+q5gO2DnOy2mA0KK+q5gOywveynhA0KK+q5gOuwse2YhA0KK+q5gOyynOq3nA0KK+q5gOyYgeuwsA0KK+q5gOywve2DnA0KK+q5gOygleyImQ0KK+q5gOykgO2drA0KK+q5gOyCsOq3nA0KK+q5gOywve2VmQ0KK+q5gOusuOusuA0KK+q5gO2MkOuTnQ0KK+q5gO2DnOyyoA0KK+q5gOywve2VtA0KK+q5gO2aqO2YuA0KK+q5gO2cmO2YuA0KK+q5gOyYpeq3nA0KK+q5gOywve2YhA0KK+q5gO2drO2DnQ0KK+q5gOygleyaqQ0KK+q5gO2VtOq1kA0KK+q5gOywve2YhA0KK+q5gOyehOyYpQ0KK+q5gOuqhe2YuA0KK+q5gOyyoOycpA0KK+q5gOywve2YuA0KK+q5gOqyveykgA0KK+q5gOyEseyyoA0KK+q5gO2YhOyImA0KK+q5gOywve2YuA0KK+q5gO2ZmOyImA0KK+q5gOuzkeyEnQ0KK+q5gOq4sOq3nA0KK+q5gOywve2YuA0KK+q5gO2DneynhA0KK+q5gOygleq3vA0KK+q5gOygleyImA0KK+q5gOywve2YuA0KK+q5gOygle2VmQ0KK+q5gO2Yle2YgQ0KK+q5gOykkey2mA0KK+q5gOywve2YuA0KK+q5gO2DnO2YhA0KK+q5gOq4iOyInA0KK+q5gOu0ieyInA0KK+q5gOywve2YuA0KK+q5gOyDgeyyoA0KK+q5gOyEseuNlQ0KK+q5gOq4sOyduA0KK+q5gOywve2ZmA0KK+q5gOywveq4uA0KK+q5gOuCqOq4sA0KK+q5gOyerO2DnA0KK+q5gOyxhOyImA0KK+q5gOuNleusuA0KK+q5gO2VnOuztQ0KK+q5gOyLpO2ctA0KK+q5gOyxhOyLnQ0KK+q5gOybkOq4sA0KK+q5gOyDge2DnA0KK+q5gOyEne2ZmA0KK+q5gOyynOuTnQ0KK+q5gOykgOyImQ0KK+q5gOyerOyXsA0KK+q5gOybkO2drA0KK+q5gOyynOyEnQ0KK+q5gOyYgeyWuA0KK+q5gOyerOyImA0KK+q5gO2Wieq1rA0KK+q5gOyynOyImA0KK+q5gOu0ie2drA0KK+q5gOuRkOydtA0KK+q5gOyYgeu2hA0KK+q5gOyynO2VmQ0KK+q5gO2VtOq3oA0KK+q5gOyYge2YuA0KK+q5gOyCvOu0iQ0KK+q5gOyynO2YuA0KK+q5gOq3gO2VhA0KK+q5gOq4iOuztQ0KK+q5gOygleydvA0KK+q5gOyyoOq4sA0KK+q5gOyInO2VtA0KK+q5gOuPmeuegA0KK+q5gOyihe2biA0KK+q5gOyyoOuRkA0KK+q5gOuPmeyImA0KK+q5gOyDge2VnA0KK+q5gOyYgeuTnQ0KK+q5gOyyoOuekQ0KK+q5gOy2mOyZhA0KK+q5gOyEoOuNlQ0KK+q5gOyduOuztQ0KK+q5gOyyoOyImA0KK+q5gOyduOuPmQ0KK+q5gOyEseu5iA0KK+q5gOyerOq1kA0KK+q5gOyyoOyImA0KK+q5gO2MkO2YhA0KK+q5gOq2jOyImA0KK+q5gOyYgeyglQ0KK+q5gOyyoOyImA0KK+q5gOygleykkQ0KK+q5gOyImOq3nA0KK+q5gOygleyXtA0KK+q5gOyyoOyImA0KK+q5gO2cmO2YhA0KK+q5gOyEseyEnQ0KK+q5gOqyveyhsA0KK+q5gOyyoOyImA0KK+q5gOyDgeyyoA0KK+q5gOqyveyImQ0KK+q5gO2VtOy2mA0KK+q5gOyyoOyImA0KK+q5gOyepeq4iA0KK+q5gOyYgeuPmQ0KK+q5gO2DnOydvA0KK+q5gOyyoOyglQ0KK+q5gOyCrO2DnA0KK+q5gOygleykgA0KK+q5gOyngO2biA0KK+q5gOyyreyEnQ0KK+q5gOyblO2drA0KK+q5gOyDgeyImA0KK+q5gOuzkeq4uA0KK+q5gOy2lOufiQ0KK+q5gOq4sOuqqQ0KK+q5gOyerOyaqQ0KK+q5gOywve2YlQ0KK+q5gOy2lOyekA0KK+q5gOyiheuhnQ0KK+q5gO2drOusuA0KK+q5gOynhOyLnQ0KK+q5gOy2lO2ZmA0KK+q5gOyDge2YhA0KK+q5gOq4sOybhQ0KK+q5gOqyve2WiQ0KK+q5gOy2mOq3oA0KK+q5gOq4sOyXsA0KK+q5gOyCrOujoQ0KK+q5gOyjvOu2hA0KK+q5gOy2mOq4uA0KK+q5gOu2hOyYpQ0KK+q5gO2DnOyInA0KK+q5gOuzkeyImA0KK+q5gOy2mOuFgA0KK+q5gOyerOuniQ0KK+q5gO2MkOyErQ0KK+q5gOygkOyYgQ0KK+q5gOy2mOuwsA0KK+q5gO2MkOq3vA0KK+q5gOydteyEnQ0KK+q5gOyEuOyImA0KK+q5gOy2mOuztQ0KK+q5gOygleyYpA0KK+q5gOyInO2YhA0KK+q5gO2DnOyLnQ0KK+q5gOy2mOyDnQ0KK+q5gOykke2YuA0KK+q5gOqyveyyoA0KK+q5gOyerOynhA0KK+q5gOy2mOyImA0KK+q5gOydvOuloA0KK+q5gOuCqOyyoA0KK+q5gO2VtOyInA0KK+q5gOy2mOyLnQ0KK+q5gOyIme2YuA0KK+q5gO2YnOy2nA0KK+q5gOyYgeyEnQ0KK+q5gOy2mOyLnQ0KK+q5gOyInOyErQ0KK+q5gOyEseuTnQ0KK+q5gOyduO2DnQ0KK+q5gOy2mOyLpA0KK+q5gO2YuO2YuA0KK+q5gOyerOyasA0KK+q5gOyjvOyYpQ0KK+q5gOy2mOyekA0KK+q5gOuPme2VnA0KK+q5gOu0ieyhsA0KK+q5gOyDgeyduA0KK+q5gOy2mOyekA0KK+q5gOyYgeuPmQ0KK+q5gOq3nOyYpA0KK+q5gOqzoe2ZmA0KK+q5gOy2mOyekA0KK+q5gOq3nOuqhQ0KK+q5gO2ZjeqwkQ0KK+q5gOyDgeyWkQ0KK+q5gOy2mO2VmA0KK+q5gOqyveq1kA0KK+q5gOyepeykgA0KK+q5gOu0ieykgA0KK+q5gOy2mO2VmA0KK+q5gOuPmeyLnQ0KK+q5gO2DnOyEoA0KK+q5gOyInOyInA0KK+q5gOy2mO2drA0KK+q5gOyiheyyoA0KK+q5gOyaqeyXsA0KK+q5gOq4iO2biA0KK+q5gOy2qeq2jA0KK+q5gOy5mOqxtA0KK+q5gOyYgeyekA0KK+q5gOyWkeq4sA0KK+q5gOy2qeuCqA0KK+q5gOyYgeydvA0KK+q5gOyImOuvuA0KK+q5gOyjvOq2jA0KK+q5gOy2qeu2gA0KK+q5gOyerO2YuA0KK+q5gOyaqeyImA0KK+q5gOq0keq2jA0KK+q5gOy2qeybkA0KK+q5gOyKueyInA0KK+q5gOyYpOyDgQ0KK+q5gOyEneyImA0KK+q5gOy2qeybkA0KK+q5gOyDgeq1kA0KK+q5gOuRkOyXhQ0KK+q5gOycpOu0iQ0KK+q5gOy2qe2XjA0KK+q5gO2ZjeyYpQ0KK+q5gO2YuOyLnQ0KK+q5gOynhO2DnA0KK+q5gOy2qe2ZmA0KK+q5gOyYgeq4uA0KK+q5gOy5oOyImA0KK+q5gO2MkOyaqQ0KK+q5gOy2qe2biA0KK+q5gOy2qeyyoA0KK+q5gOyEoO2VmQ0KK+q5gOyYgeq3vA0KK+q5gOy2qe2drA0KK+q5gOuNle2DnQ0KK+q5gOyepeq4sA0KK+q5gOuPmeqwkQ0KK+q5gOy5mOq2jA0KK+q5gOycpOyYgQ0KK+q5gCDtg5wNCivquYDspJHstpwNCivquYDsuZjqtowNCivquYDri6TsmqkNCivquYDrqoXsnbwNCivquYDqsr3snKQNCivquYDsuZjqtowNCivquYDsooXquLANCivquYDsmIHsiJwNCivquYDsnYTsmIENCivquYDsuZjshKANCivquYDsoJDsl7ANCivquYDsnqXsg4ENCivquYDsmKXqtowNCivquYDsuZjsnbwNCivquYDsg4HtlZgNCivquYDsmIHqt7wNCivquYDrj5nrqqgNCivquYDsuZjtm4gNCivquYDquIjrsLANCivquYDssKjtg5wNCivquYDsgqzsiJkNCivquYDsuZjtnJgNCivquYDso7zsnpANCivquYDssL3si50NCivquYDsooXqt6ANCivquYDsuaDrj5kNCivquYDsp4Drp4wNCivquYDrp4zshJ0NCivquYDsoJXqtowNCivquYDsuaDrj5kNCivquYDsoJXquLANCivquYDrj5ntmakNCivquYDrj4TtnLQNCivquYDsuaDshKANCivquYDssL3siJgNCivquYDrqoXtmZgNCivquYDsnYTstpgNCivquYDsuaDsmqkNCivquYDsmqnsiJgNCivquYDsp4Trj5kNCivquYDso7zsl7QNCivquYDsuaDsmqkNCivquYDqtJHsmrANCivquYDso7zstpwNCivquYDshJ3smZUNCivquYDsuaDtmY0NCivquYDquIjtnawNCivquYDshJ3smqkNCivquYDtmITsmIENCivquYDsuaDtnawNCivquYDqtazsmrANCivquYDsnYzrj5kNCivquYDsmKXsg4ENCivquYDsvozshJ0NCivquYDsnbjsi50NCivquYDtj4nsobANCivquYDrqoXshK0NCivquYDtg4Dsm5ANCivquYDsnbztlZgNCivquYDshJ3tmLgNCivquYDsmIHquLANCivquYDtg5zqs6QNCivquYDrhbjtg5wNCivquYDsoJDsiJwNCivquYDqsr3tmZgNCivquYDtg5zqtZANCivquYDsnKTrsLANCivquYDshLjrjZUNCivquYDshJ3tmIQNCivquYDtg5zqtawNCivquYDsg4HssL0NCivquYDsmqnsiJkNCivquYDsoJXtmIQNCivquYDtg5zqtawNCivquYDsnKTrjZUNCivquYDrgpzsm5ANCivquYDtnazstpwNCivquYDtg5zqtowNCivquYDqsr3siJgNCivquYDtmY3rnpgNCivquYDtg5zqsr0NCivquYDtg5zqt5wNCivquYDsiJjrj5kNCivquYDsg4HtmIQNCivquYDrtInsi50NCivquYDtg5zqt7wNCivquYDsmIHtm4gNCivquYDrjZXqsbgNCivquYDqsr3sg4ENCivquYDtg5zqt7wNCivquYDtjJDsobANCivquYDshJ3tmIQNCivquYDshLHqtawNCivquYDtg5zquLgNCivquYDqt5zssqANCivquYDslrjtnawNCivquYDqt4Tqsr0NCivquYDtg5zquLgNCivquYDssL3tmIQNCivquYDsnqzquLANCivquYDsp4TquLANCivquYDtg5zrj4QNCivquYDsmIHsiJgNCivquYDtmLjshJ0NCivquYDsi6DsnpANCivquYDtg5zrj4wNCivquYDqt7zshLENCivquYDsmqnri6wNCivquYDsmIHspIANCivquYDtg5zrj5kNCivquYDtlZzrtoQNCivquYDshLHqtawNCivquYDshLjsiJgNCivquYDtg5zrj5kNCivquYDrgqjquLANCivquYDshLHrj4QNCivquYDsmIHshKANCivquYDtg5zrp4wNCivquYDrtoTqtawNCivquYDsmIHtlZkNCivquYDrqoXsg4ENCivquYDtg5zrqoUNCivquYDsp4TroZwNCivquYDrtInsiJwNCivquYDsooXrj5kNCivquYDtg5zrrLgNCivquYDsnqzshLENCivquYDtg5zssqANCivquYDsspzsiJgNCivquYDtg5zrs7UNCivquYDqtJHsmrENCivquYDsnqztkZwNCivquYDshJ3shKANCivquYDtg5zrtIkNCivquYDrj5nqt7wNCivquYDrqoXsp4QNCivquYDqsr3tlZkNCivquYDtg5zshJ0NCivquYDtl4zsmrQNCivquYDsiJzrspQNCivquYDqsr3tg5wNCivquYDtg5zshKANCivquYDshLHrgqgNCivquYDsnbjrs7UNCivquYDsiJjqtawNCivquYDtg5zshK0NCivquYDrp4ztmLgNCivquYDtlYTtmLgNCivquYDtlZntlbQNCivquYDtg5zshK0NCivquYDsnYTrqoUNCivquYDsmrDtmIQNCivquYDsmqnsnqwNCivquYDtg5zshLENCivquYDrs5Hqt7wNCivquYDshLHsmIENCivquYDqt5zsl7QNCivquYDtg5zsiJgNCivquYDsp4TspIANCivquYDsoJDtm4gNCivquYDsoJXtlZgNCivquYDtg5zsiJgNCivquYDsiJjsm5ANCivquYDsnYTsiJgNCivquYDsl7TshJ0NCivquYDtg5zsiJgNCivquYDsm5Dsi50NCivquYDrtInstpwNCivquYDshKDsi50NCivquYDtg5zsiJgNCivquYDsmIHsiJgNCivquYDsmrTslZQNCivquYDtmZTrsLANCivquYDtg5zsiJgNCivquYDtlZntmLgNCivquYDsnqztmZQNCivquYDsmbjtmJwNCivquYDtg5zsiJgNCivquYDsp4Tqt7wNCivquYDsnYDsiJgNCivquYDqta3qsJwNCivquYDtg5zsiJkNCivquYDsi6DsoJUNCivquYDsmIHsmrANCivquYDsooXqtawNCivquYDtg5zsiJkNCivquYDsnYTtg50NCivquYDspIDtnawNCivquYDsp4Tsl7ANCivquYDtg5zsiJwNCivquYDrs5Hsl7ANCivquYDsmYTshKANCivquYDsmbjsmrANCivquYDtg5zsiJwNCivquYDquLDtmZgNCivquYDtjJDsmYQNCivquYDsmIHqs6QNCivquYDtg5zsiKANCivquYDtg5zshKANCivquYDshLHsiJgNCivquYDrhbjsmqkNCivquYDtg5zsi50NCivquYDshJ3shJ0NCivquYDrs7XsiJgNCivquYDqtJHtmLgNCivquYDtg5zsi50NCivquYDsmqnrrLgNCivquYDsmIHspIANCivquYDsiJjslZQNCivquYDtg5zsl7ANCivquYDrtInrj4QNCivquYDsmqnsnKQNCivquYDspJHsl7QNCivquYDtg5zsl7QNCivquYDsmIHspIANCivquYDsiJzrqqgNCivquYDssL3snbwNCivquYDtg5zsl70NCivquYDqta3sgrwNCivquYDsp4Tqt5wNCivquYDsg4HsmKUNCivquYDtg5zsmIENCivquYDqt5zqt5wNCivquYDsnqzssqANCivquYDsnbjssqANCivquYDtg5zsmIENCivquYDshqHtmIQNCivquYDtlZzsp4QNCivquYDsnZHqt7wNCivquYDtg5zsmIENCivquYDshLHshLENCivquYDsg4HspIANCivquYDqsJHtnLQNCivquYDtg5zsmKQNCivquYDrrLTqtowNCivquYDtjJDsnoQNCivquYDsmIHquLgNCivquYDtg5zsmqkNCivquYDsp4TtmZQNCivquYDsm5DsgrANCivquYDrrLTsiJgNCivquYDtg5zsmqkNCivquYDrs5HtmLgNCivquYDsoJXtmZQNCivquYDsmrDtnawNCivquYDtg5zsmqkNCivquYDsmqnsiJgNCivquYDsgqzquLANCivquYDquLDsnoQNCivquYDtg5zsmqkNCivquYDsoJXsmKQNCivquYDrs7XsobANCivquYDrqoXsmIENCivquYDtg5zsmrENCivquYDsmrHsiJkNCivquYDsiJjshKANCivquYDsnKTsi50NCivquYDtg5zsmrQNCivquYDrj5nsiJgNCivquYDqt5zsnpANCivquYDsnqzshKANCivquYDtg5zsm5ANCivquYDrjZXquLANCivquYDshJ3stpwNCivquYDsmIHtmY0NCivquYDtg5zsm5ANCivquYDsp4DshJ0NCivquYDsmqnsi50NCivquYDsmIHquLgNCivquYDtg5zsm5ANCivquYDtnaztl4wNCivquYDqsr3sl7QNCivquYDsnKTsi50NCivquYDtg5zsm5ANCivquYDrs5HqtowNCivquYDsmqntnawNCivquYDsp4TtmIQNCivquYDtg5zsnKANCivquYDshLHsiJwNCivquYDrp4ztlZkNCivquYDsooXsi50NCivquYDtg5zsnKENCivquYDri6zsl7ANCivquYDrs5Hsi50NCivquYDshLHsoJwNCivquYDtg5zsnKgNCivquYDsmIHsiJgNCivquYDsg4HrjZUNCivquYDtmLjsmIENCivquYDtg5zsnYANCivquYDsoJDquLANCivquYDsg4Hqt7kNCivquYDshJ3rtIkNCivquYDtg5zsnZgNCivquYDsnbjrqoUNCivquYDsmIHqta0NCivquYDsp4TsmrENCivquYDtg5zsnbQNCivquYDsmIHrp5ANCivquYDrkZDsiJkNCivquYDquLDshK0NCivquYDtg5zsnbwNCivquYDsnKTsg50NCivquYDsnqzrjIANCivquYDsg4Hsi50NCivquYDtg5zsnbwNCivquYDsnbjtlZkNCivquYDtlZzquLgNCivquYDsoJXtl4wNCivquYDtg5zsnbwNCivquYDsg4HspIANCivquYDqtJHqtawNCivquYDsnbjtmZQNCivquYDtg5zsnbwNCivquYDqsJHshJ0NCivquYDtl4ztmZgNCivquYDso7zsiJwNCivquYDtg5zsnbwNCivquYDsoJDsmIENCivquYDsg4HshK0NCivquYDtg5zsobANCivquYDtg5zsoJUNCivquYDsoJXrtIkNCivquYDtg5ztmIQNCivquYDqt4DsiJgNCivquYDtg5zsobANCivquYDqsJHshJ0NCivquYDso7zsiJgNCivquYDquLDtg5wNCivquYDtg5zsobANCivquYDsooXspIANCivquYDsmIHsobANCivquYDsnbjtlbQNCivquYDtg5zspJENCivquYDrj5nsnbwNCivquYDsm5DtnawNCivquYDshLjsiJgNCivquYDtg5zspJENCivquYDtg5ztlZwNCivquYDsm5DsiJkNCivquYDrp4zsnpANCivquYDtg5zsp4ANCivquYDrtInroZ0NCivquYDsnoTqs6QNCivquYDsnqzsiJwNCivquYDtg5zsp4QNCivquYDrj4TsmrANCivquYDsoJXsi50NCivquYDtg5ztl4wNCivquYDtg5zssqANCivquYDsnbTqtIANCivquYDrtInsiJgNCivquYDrs5HsiJgNCivquYDtg5zssqANCivquYDrp5DtmZgNCivquYDrqoXsiJgNCivquYDsnqztmLgNCivquYDtg5zssqANCivquYDsooXsmrANCivquYDssKjtg5wNCivquYDsooXsi50NCivquYDtg5zssqANCivquYDrjIDspIANCivquYDshKDtmLgNCivquYDtg5ztg5wNCivquYDtg5zstpwNCivquYDsnKTrqqkNCivquYDshJ3tmLgNCivquYDqs4TspIANCivquYDtg5zstpwNCivquYDsoJXsi6QNCivquYDtg5zsi50NCivquYDshozspIANCivquYDtg5ztl4wNCivquYDtmITsl7QNCivquYDsmqnshqENCivquYDsg4HtmZgNCivquYDtg5ztmIQNCivquYDsooXsnbQNCivquYDtlZzsl7QNCivquYDsmIHsmrANCivquYDtg5ztmJUNCivquYDsnKTshLENCivquYDqt5zsmrANCivquYDsiJjtmIQNCivquYDtg5ztmJUNCivquYDtlbTsnqwNCivquYDsiJzrp4wNCivquYDtg5zshJ0NCivquYDtg5ztmLgNCivquYDsm5Dsm5ANCivquYDshLHssqANCivquYDsm4XsmIENCivquYDtg5ztmLgNCivquYDshqHqt5wNCivquYDsoJXsmrANCivquYDsg4HssqANCivquYDtg5ztmLgNCivquYDshKDtmIQNCivquYDrr7ztmZgNCivquYDsm5DspIANCivquYDtg5ztmLgNCivquYDsg4HrtoQNCivquYDsiJjrjZUNCivquYDsmIHsnoQNCivquYDtg5ztmLgNCivquYDsnYDrrLgNCivquYDsmIHsmrANCivquYDtmY3rspQNCivquYDtg5ztmLgNCivquYDsoJXsiJwNCivquYDsm5Tso7wNCivquYDsmKXsl4UNCivquYDtg5ztmLgNCivquYDsooXstpwNCivquYDtmLjrp4wNCivquYDsnYDqt7wNCivquYDtg5ztmLgNCivquYDsmqnsoJUNCivquYDrs5Hsm4UNCivquYDsmIHrj4QNCivquYDtg5ztmLgNCivquYDrjIDtmZgNCivquYDsooXslZQNCivquYDsg4Hsg50NCivquYDtg5ztmLgNCivquYDrj5nsmKUNCivquYDsmqnsobANCivquYDsnoTshKANCivquYDtg5ztmZQNCivquYDrs7XspIANCivquYDrgpzqt7wNCivquYDsooXslZQNCivquYDtg5ztmZgNCivquYDsoJXtmZQNCivquYDsiJjsiJkNCivquYDsnZjssqANCivquYDtg5ztmZgNCivquYDsp4DsiJgNCivquYDquLDrtIkNCivquYDsiJztmLgNCivquYDtg5ztnawNCivquYDsooXqsr0NCivquYDsmIHso7wNCivquYDrs5HquLANCivquYDtg5ztnawNCivquYDsiJzsiJgNCivquYDrj5nshK0NCivquYDsm5DssqANCivquYDtg5ztnawNCivquYDquIjsnbQNCivquYDsg4HsiJwNCivquYDsgrzrj4QNCivquYDtjJDqsr0NCivquYDqs4Tsi50NCivquYDsgrzrsLANCivquYDsmKTrk50NCivquYDtjJDqt5wNCivquYDshqHrj4gNCivquYDsiJzrpqwNCivquYDqt5zquLANCivquYDtjJDquLgNCivquYDtnaXqt7wNCivquYDshJ3rkZANCivquYDrs5HsmrENCivquYDtjJDrjZUNCivquYDrrLjsmqkNCivquYDsp4TshJ0NCivquYDsiJzqt7wNCivquYDtjJDrj4wNCivquYDsiJztmIQNCivquYDtnazqt5wNCivquYDtg5zshLENCivquYDtjJDrtIkNCivquYDsooXtmIQNCivquYDsnbjsnpANCivquYDrgqjsi6QNCivquYDtjJDshJ0NCivquYDsmKXtmLgNCivquYDtmqjsnpANCivquYDsnbjshLENCivquYDtjJDshJ0NCivquYDsmIHtlqUNCivquYDqsr3tnawNCivquYDrp5Dsl7QNCivquYDtjJDsiJgNCivquYDsnqzshJ0NCivquYDshLHshKANCivquYDtmITqt7wNCivquYDtjJDsiJgNCivquYDsiJjqt5wNCivquYDsooXtlZwNCivquYDqsr3siJgNCivquYDtjJDsiKANCivquYDshozsl7QNCivquYDsoJDsmrANCivquYDsooXrnoANCivquYDtjJDsl7ANCivquYDsoJXtmZgNCivquYDrqoXrj4wNCivquYDsjI3qt7wNCivquYDtjJDsl7QNCivquYDso7zsiJgNCivquYDsiJzsi50NCivquYDsp4TssqANCivquYDtjJDsmqkNCivquYDsnqzsm5ANCivquYDrtInquIgNCivquYDshKDsobANCivquYDtjJDsmrQNCivquYDsnqXsm5ANCivquYDqt7zqsJENCivquYDsnKTso7wNCivquYDtjJDsobANCivquYDsnbzrhYQNCivquYDtg5zsnYANCivquYDtjJDspJENCivquYDtjJDsp4QNCivquYDsiJzslZQNCivquYDqtJHqt5wNCivquYDrr7zsmqkNCivquYDtjJDtg5wNCivquYDssqDsg50NCivquYDsmIHtm4gNCivquYDqsJHsp5ENCivquYDtjJDtmIQNCivquYDsoJXqtZANCivquYDsooXsmqkNCivquYDrs5HsoJUNCivquYDtjJDtmLgNCivquYDrj5ntmLgNCivquYDquIjrnoANCivquYDsjI3so7wNCivquYDtjJTqs6QNCivquYDssL3rj5kNCivquYDsnqzsobANCivquYDtg5zrp4wNCivquYDtjJTrtIkNCivquYDtg5zsmrANCivquYDqta3qt5wNCivquYDshLjrjIANCivquYDtkZzsm5ANCivquYDsg4HrjIANCivquYDsg4HrsLANCivquYDssL3rprwNCivquYDtlYTqtawNCivquYDsnKTsnbwNCivquYDsmIHsiJwNCivquYDsnbXsi50NCivquYDtlYTsl7ANCivquYDqsr3tmZgNCivquYDsg4HshJ0NCivquYDshLjrp4wNCivquYDtlZjshJ0NCivquYDstpjtmLgNCivquYDsnbjshK0NCivquYDrrLTtkZwNCivquYDtlZjsobANCivquYDsoJXrp4wNCivquYDsirnrs5ENCivquYDqt5zqta0NCivquYDtlZnqtowNCivquYDqtJHrp4wNCivquYDquLDsnbgNCivquYDqt5zqta0NCivquYDtlZnquLANCivquYDsmrTsmIENCivquYDstpjqt7wNCivquYDrgqjtmZgNCivquYDtlZnquLANCivquYDsmIHquLANCivquYDtmansl7ANCivquYDso7zrrLgNCivquYDtlZnrj4QNCivquYDquIjtg5wNCivquYDsmKXqtowNCivquYDsiJzsmqkNCivquYDtlZnrtIkNCivquYDsiJzrjZUNCivquYDsiJztmIQNCivquYDsnYTsp4QNCivquYDtlZnrtIkNCivquYDtmY3tmZgNCivquYDsl4Xsg50NCivquYDtlbTsnpANCivquYDtlZnrtIkNCivquYDrsKnstpgNCivquYDsmKTqtowNCivquYDquLDtmIQNCivquYDtlZnshJ0NCivquYDsnYDqs6QNCivquYDrqoXsiJwNCivquYDrp5DssqANCivquYDtlZnsiJgNCivquYDshJ3smIENCivquYDtmY3tmZgNCivquYDrs5HtnawNCivquYDtlZnsmrANCivquYDsooXqs6QNCivquYDtl4ztnawNCivquYDtmITsnqwNCivquYDtlZnsmrANCivquYDrp4zsobANCivquYDsp4Tsl7ANCivquYDshLHquLANCivquYDtlZnsnKQNCivquYDsnbjshJ0NCivquYDqsJHqt7wNCivquYDtnazshLENCivquYDtlZnsnbQNCivquYDsooXtnawNCivquYDsmqnsiJwNCivquYDrtInsi50NCivquYDtlZnsnbQNCivquYDquLDsiJgNCivquYDsnqzqtIANCivquYDqt5zsi50NCivquYDtlZnso7wNCivquYDsoJXsmqkNCivquYDssqDrr7gNCivquYDtjJDtnawNCivquYDtlZzqs6QNCivquYDtmITsm5ANCivquYDshJ3rspQNCivquYDsuaDtmLgNCivquYDtlZzqtowNCivquYDtg5zqsJENCivquYDsooXsmIENCivquYDtjJDtmIQNCivquYDtlZzqt5wNCivquYDqt7zsoJUNCivquYDrqoXsnbQNCivquYDtlbTrsLANCivquYDtlZzqt5wNCivquYDsoJXtmZgNCivquYDsmIHsmqkNCivquYDqtJHqsr0NCivquYDtlZzquLANCivquYDquIjqtIANCivquYDrr7jtg5wNCivquYDtmJXqsJANCivquYDtlZzrj4QNCivquYDqt4DspIANCivquYDtmLjsiJkNCivquYDsmIHsnbQNCivquYDtlZzrsLANCivquYDtlbTsiJwNCivquYDqtozsm4UNCivquYDrp7nsnpANCivquYDtlZzshJ0NCivquYDrjZXsiJgNCivquYDsmIHsiKANCivquYDsmIHtlZkNCivquYDtlZzsiJgNCivquYDsnbjqt5wNCivquYDsmIHtmLgNCivquYDsooXsiJwNCivquYDtlZzsiJgNCivquYDsoJXssqANCivquYDtg5ztl4wNCivquYDrkZDspIANCivquYDtlZzsiJgNCivquYDsg4HtmZQNCivquYDshLHtg4ENCivquYDsnqzqsbgNCivquYDtlZzsiJgNCivquYDsmIHsnbQNCivquYDrj4jsiJgNCivquYDsiJjshLENCivquYDtlZzsiJwNCivquYDrrLjtmLgNCivquYDsnKTsobANCivquYDqs4TrjZUNCivquYDtlZzsiJwNCivquYDshJ3sobANCivquYDsnqzsm5QNCivquYDsgrzqt7wNCivquYDtlZzsi50NCivquYDtmJXtnawNCivquYDtmY3slaANCivquYDrgpztlbQNCivquYDtlZzsmqkNCivquYDsnKTtlZkNCivquYDsp4DquLgNCivquYDsiJjshKANCivquYDtlZzsobANCivquYDsooXroLkNCivquYDsirnssqANCivquYDqsr3smqkNCivquYDtlZzsooUNCivquYDsoJXtnawNCivquYDrr7jtnawNCivquYDrs5HrsLANCivquYDtlZzspJENCivquYDspJHrnpgNCivquYDrgqjqs6QNCivquYDshLHsiJwNCivquYDtlZztg5wNCivquYDrgpntg50NCivquYDsmqntmZQNCivquYDsmKXqt5wNCivquYDtlZztmLgNCivquYDsm5DsnbwNCivquYDrp4zrnoANCivquYDsnKTrs7QNCivquYDtlZztmY0NCivquYDsooXslaANCivquYDsnKTsoJUNCivquYDrjIDrjZUNCivquYDtlZztmY0NCivquYDsmrTsi50NCivquYDrj5nslZQNCivquYDsnbjtmZQNCivquYDtlZztnawNCivquYDqsJHrs7QNCivquYDsooXtnawNCivquYDqt4DsnbwNCivquYDtlbTqs6QNCivquYDsnqzso7wNCivquYDsmIHri6wNCivquYDquLDstpwNCivquYDtlbTrj5kNCivquYDsnKHtlZwNCivquYDshLHtnawNCivquYDqsJHquLANCivquYDtlbTrprwNCivquYDsg4HsmYQNCivquYDso7zshJ0NCivquYDtg5ztmZgNCivquYDtlbTrtIkNCivquYDsnZjsobANCivquYDtlZzrqqgNCivquYDrjIDtmLgNCivquYDtlbTshJ0NCivquYDqtJHspIANCivquYDshJ3sobANCivquYDrj5ntmLgNCivquYDtlbTshJ0NCivquYDssL3tmIQNCivquYDrr7ztmZgNCivquYDssqDrs7UNCivquYDtlbTshKANCivquYDsiJnsiJwNCivquYDsmIHqtowNCivquYDslpHssL0NCivquYDtlbTsiJgNCivquYDsm5DqtawNCivquYDsnoTtmZgNCivquYDssL3qt7wNCivquYDtlbTsiJgNCivquYDrjIDshLENCivquYDsl7DquLgNCivquYDtmZTrjZUNCivquYDtlbTsiJgNCivquYDrrLTquLANCivquYDtlbTquLANCivquYDrjZXsobANCivquYDtlbTsl7ANCivquYDsiJzrjZUNCivquYDsnZjsiJwNCivquYDshLHsnpANCivquYDtlbTsl7QNCivquYDqt4DrtIkNCivquYDsnbjsiJwNCivquYDsgrzshK0NCivquYDtlbTsmqkNCivquYDsooXqs6ANCivquYDshLHssqANCivquYDsmrTtmLgNCivquYDtlbTsnYANCivquYDquLDqt5wNCivquYDtmLjsiJgNCivquYDsmIHtm4UNCivquYDtlbTsnYANCivquYDsi6Dqt7wNCivquYDsoITqt5wNCivquYDquLDspIANCivquYDtlbTsnYANCivquYDshLjtmZgNCivquYDsooXrj5kNCivquYDsmKTtmLgNCivquYDtlbTsoJUNCivquYDrs5Hrj5kNCivquYDssKjsiJgNCivquYDqt4Dqt6ANCivquYDtlbTsobANCivquYDsnKTshLENCivquYDstpjsl7ANCivquYDsoJXtmLgNCivquYDtlbTsp4QNCivquYDsiJjqt7wNCivquYDtg5ztnawNCivquYDsnqzqs6QNCivquYDtlonsiJwNCivquYDshLHtlZgNCivquYDsoJXsiJgNCivquYDqsr3tmY0NCivquYDtlqXsl7ANCivquYDquLDrqoUNCivquYDsoJXtmZgNCivquYDqt7zssqANCivquYDtlqXsnbQNCivquYDrr7jtmZgNCivquYDsoJXsiJkNCivquYDsmqnrnpgNCivquYDtl4zqsJENCivquYDtmantg50NCivquYDquLDtmZQNCivquYDsmqnrgqgNCivquYDtl4zsi50NCivquYDsoJDsi50NCivquYDtmJzqsbQNCivquYDsiJzssqANCivquYDtl4zsnqwNCivquYDrk53sl7ANCivquYDqt5zsnbUNCivquYDsp4TrjIANCivquYDtl4ztg5wNCivquYDsmIHssqANCivquYDtg5zrtIkNCivquYDsnKTsl7ANCivquYDtmITquLANCivquYDrqoXshKANCivquYDrs7XsnbgNCivquYDquLDsmrQNCivquYDtmITquLANCivquYDtg5zsm5ANCivquYDtmLjtmY0NCivquYDshKDsl7QNCivquYDtmITrk50NCivquYDqt7nqsr0NCivquYDtmZjsmqkNCivquYDsmKXsnbUNCivquYDtmITrnpgNCivquYDsnZjsmrANCivquYDrs5HsobANCivquYDri6ztlbQNCivquYDtmITrrLUNCivquYDsmIHspIANCivquYDqsr3smqkNCivquYDqtJHstpwNCivquYDtmITrs7UNCivquYDsnqzsmqkNCivquYDrjZXtmIQNCivquYDtnazqt7wNCivquYDtmITshJ0NCivquYDtmLjsiJgNCivquYDrj5nro6ENCivquYDtmZjssqANCivquYDtmITsiJgNCivquYDrrLjsmrQNCivquYDrj5nquLANCivquYDsnqzsiJwNCivquYDtmITsiJgNCivquYDrs5HsnqUNCivquYDsnqztnawNCivquYDtlZnssqANCivquYDtmITsiJkNCivquYDsiJzrj4QNCivquYDshLHsmIENCivquYDsmrDtmLgNCivquYDtmITsiJkNCivquYDshLHrp4wNCivquYDspIDtmLgNCivquYDsnoTqt5wNCivquYDtmITsiJkNCivquYDqsJHrtIkNCivquYDsoJDqt5wNCivquYDsooXsmrENCivquYDtmITsmKUNCivquYDsg4Hqs6QNCivquYDsnqzshKANCivquYDsiJzrrLgNCivquYDtmITsmrENCivquYDspJHrjZUNCivquYDrp7nsiKANCivquYDsoJXsi50NCivquYDtmITsm4UNCivquYDsmIHsnqwNCivquYDri6zsnbgNCivquYDrqbTrsLANCivquYDtmITsnqwNCivquYDqtJHqt5wNCivquYDsg4HsiJgNCivquYDqtJHsiJgNCivquYDtmITssL0NCivquYDrj5nrjIANCivquYDsoJXrjZUNCivquYDtlZjssqANCivquYDtmITssqANCivquYDri6zsnKgNCivquYDshKDslZQNCivquYDsnqztmZgNCivquYDtmITssqANCivquYDtmY3tmIQNCivquYDrjZXshJ0NCivquYDsmrTsmIENCivquYDtmITssqANCivquYDsmIHtmZgNCivquYDsnpDsnbQNCivquYDsoJXtlZkNCivquYDtmJXqtawNCivquYDsmIHrs7UNCivquYDsooXsiJkNCivquYDsnqzsobANCivquYDtmJXrj5kNCivquYDrtInsi50NCivquYDqsr3rpZwNCivquYDsnKTtm4gNCivquYDtmJXrnb0NCivquYDsooXsmrQNCivquYDsoJXqtowNCivquYDsoJXsiJgNCivquYDtmJXshK0NCivquYDsg4HsiJwNCivquYDrj5ntmLgNCivquYDquLDshJ0NCivquYDtmJXsiJgNCivquYDtl4zsnbQNCivquYDsmIHsmIENCivquYDrrLTrr7wNCivquYDtmJXssqANCivquYDshLHsmrANCivquYDsooXsp5ENCivquYDtlYTsiJkNCivquYDtmJXtg5wNCivquYDrjIDrjZUNCivquYDshLHtlZkNCivquYDspJHsm5ANCivquYDtmJXtlbQNCivquYDsmIHqs6QNCivquYDsnYDqt5wNCivquYDsoJXsspwNCivquYDtmJXtnawNCivquYDsooXqtawNCivquYDtlZnquLANCivquYDrqoXtmZgNCivquYDtmJzqsr0NCivquYDrs5HsnpANCivquYDrs5Hri6wNCivquYDsgqzsiJkNCivquYDtmJzqsr0NCivquYDquLDqtbANCivquYDshLHsuZgNCivquYDrj4TsnYANCivquYDtmJzqsr0NCivquYDqsJXtnawNCivquYDsiJjrsLENCivquYDqt5zssqANCivquYDtmJzqsr0NCivquYDri6zrrLgNCivquYDrs5HtmZgNCivquYDsmrDsoJUNCivquYDtmJzsiJkNCivquYDsnqzrj5kNCivquYDsmIHslaANCivquYDtlbTsmrANCivquYDtmJzsmIENCivquYDsnbzsm5ANCivquYDsmKXsiJwNCivquYDsmKTqtowNCivquYDtmJzsnpANCivquYDsoJDtm4gNCivquYDrr7zsi50NCivquYDsmbjqtowNCivquYDtmLjqt7wNCivquYDssKjshKANCivquYDsooXsi50NCivquYDsnKDrtIkNCivquYDtmLjquLANCivquYDshLHsmIENCivquYDrs5HtnawNCivquYDrs5HsiJwNCivquYDtmLjro6ENCivquYDtmITssqANCivquYDsnqzsnbwNCivquYDso7zssqANCivquYDtmLjrtIkNCivquYDshLjrnb0NCivquYDrj5ntl4wNCivquYDsoJXsnpANCivquYDtmLjshJ0NCivquYDsmrDsmKUNCivquYDtnazsnbQNCivquYDsmqnrp4wNCivquYDtmLjshLENCivquYDssqDsiJgNCivquYDrtoTrsLANCivquYDsmIHsiJgNCivquYDtmLjslbwNCivquYDqsr3siJwNCivquYDsoITsiJwNCivquYDsg4HshJ0NCivquYDtmLjsmqkNCivquYDsmqnruYgNCivquYDrs7XsnKQNCivquYDsnKDqt5wNCivquYDtmLjsmqkNCivquYDrs5Htg5wNCivquYDsiJjshKANCivquYDsl7DspIANCivquYDtmLjsnbgNCivquYDsg4Hqt5wNCivquYDsoJXsp4QNCivquYDquLDsiKANCivquYDtmLjsnbwNCivquYDrrLjsnoQNCivquYDsnqXssq0NCivquYDtg5zrjZUNCivquYDtmLjsobANCivquYDsmIHtg50NCivquYDshLHqt5wNCivquYDrgqjtkZwNCivquYDtmLjspIANCivquYDsiJjqtJENCivquYDsmIHsiJwNCivquYDsmKXssL0NCivquYDtmLjssqANCivquYDsoJXtlZkNCivquYDrgpnsiKANCivquYDsp4TspIANCivquYDtmY3qsbQNCivquYAg7LaYDQor6rmA7Zi46riwDQor6rmA67OR7IicDQor6rmA7ZmN6rK4DQor6rmA64yA7IStDQor6rmA6riw7LaYDQor6rmA7YOc6riIDQor6rmA7ZmN6rWsDQor6rmA6riw7Zi4DQor6rmA642V7KO8DQor6rmA6rK97Zi4DQor6rmA7ZmN6rWtDQor6rmA7KKF7Zi4DQor6rmA7Z2l6riwDQor6rmA6rWs6recDQor6rmA7ZmN6recDQor6rmA7KCV6regDQor6rmA6rK97ISdDQor6rmA7Iig7ISxDQor6rmA7ZmN6recDQor6rmA7KCQ7ZWZDQor6rmA7YOc7Je0DQor6rmA7J6s7IiZDQor6rmA7ZmN6recDQor6rmA7ZWZ7IiYDQor6rmA7IOB7JqwDQor6rmA7J2Y7JiBDQor6rmA7ZmN6regDQor6rmA7IiY66eMDQor6rmA7JiB65OdDQor6rmA7YOc7YOcDQor6rmA7ZmN6re8DQor6rmA7KCV7LKcDQor6rmAIOyasA0KK+q5gOyYgeyLnQ0KK+q5gO2Zjeq3vA0KK+q5gOqzhO2ZlA0KK+q5gOyYgeuNlQ0KK+q5gOyaqeyInA0KK+q5gO2ZjeuLrA0KK+q5gOybkOuwsA0KK+q5gOyYpeq3nA0KK+q5gOyekOybhQ0KK+q5gO2ZjeuNlQ0KK+q5gO2VhOyynA0KK+q5gOyGjOuztQ0KK+q5gOywveyXtA0KK+q5gO2ZjeuylA0KK+q5gOyblOyYgQ0KK+q5gO2ZjeyasA0KK+q5gOyiheyaqQ0KK+q5gO2ZjeyErQ0KK+q5gOyiheyImA0KK+q5gO2DnOyerA0KK+q5gOykgOyEoA0KK+q5gO2ZjeyImA0KK+q5gOu0ieydvA0KK+q5gOyDgeuemA0KK+q5gOygleyYpQ0KK+q5gO2ZjeyImA0KK+q5gOynhOuCqA0KK+q5gO2DnOyImQ0KK+q5gOyGjOudvQ0KK+q5gO2ZjeyLnQ0KK+q5gOq0keyLnQ0KK+q5gO2aqOyynA0KK+q5gOq3nOu0iQ0KK+q5gO2ZjeyLnQ0KK+q5gOyDgeyasA0KK+q5gOyepe2VmQ0KK+q5gOyYpeyEsQ0KK+q5gO2ZjeyXtA0KK+q5gOuzkeyErQ0KK+q5gOyaqeq0kQ0KK+q5gOyImO2YuA0KK+q5gO2ZjeyXtA0KK+q5gOydvOyEsQ0KK+q5gOydmOuqqQ0KK+q5gOq3vO2DnA0KK+q5gO2ZjeyXvQ0KK+q5gO2VmeyEoA0KK+q5gOqwke2DnA0KK+q5gOyyoOq2jA0KK+q5gO2ZjeydvA0KK+q5gOynhOyImQ0KK+q5gOygkOyhsA0KK+q5gOyyoOuztQ0KK+q5gO2ZjeyhsA0KK+q5gOycoOydtA0KK+q5gO2MkO2ZmA0KK+q5gOq4iO2ZmA0KK+q5gO2ZjeykgA0KK+q5gOuPhOyasA0KK+q5gOuMgO2YhA0KK+q5gOyaqe2drA0KK+q5gO2ZlOyDnQ0KK+q5gOyjvOu5iA0KK+q5gOuzkeyImA0KK+q5gOyEoOydgA0KK+q5gO2ZlOyLnQ0KK+q5gOyynOykkQ0KK+q5gOy2mO2ZmA0KK+q5gOywveyYgQ0KK+q5gO2ZlOyLnQ0KK+q5gOyiheyYpQ0KK+q5gOyerO2drA0KK+q5gOyduOyhsA0KK+q5gO2ZmOyEsQ0KK+q5gOyCvOyyoA0KK+q5gOydvOunkA0KK+q5gOyduOyXsA0KK+q5gO2ZmOydtA0KK+q5gOunjOyLnQ0KK+q5gOyDgeyyoA0KK+q5gOqyveuvuA0KK+q5gO2ZmOydtA0KK+q5gOyerOqyvQ0KK+q5gOyerOq4uA0KK+q5gOuzteyInA0KK+q5gO2ZmOyyoA0KK+q5gOusuOq4sA0KK+q5gO2YhOqwkQ0KK+q5gOuMgOq3nA0KK+q5gO2ZmO2YuA0KK+q5gO2DnOyYgQ0KK+q5gOq0keu0iQ0KK+q5gOymneqyvQ0KK+q5gO2Zqeq3nA0KK+q5gOqyve2VtA0KK+q5gOuMgOyIoA0KK+q5gOyYgeyInA0KK+q5gO2aqOusuA0KK+q5gOyInOq0kQ0KK+q5gOyEoOuNlQ0KK+q5gOyIoOyVlA0KK+q5gO2aqOyEoA0KK+q5gOyInO2YhA0KK+q5gOuqheuqqA0KK+q5gOuzkeq4sA0KK+q5gO2aqOyEoA0KK+q5gO2MkOuegA0KK+q5gOyYpOyDgQ0KK+q5gOywveyhsA0KK+q5gO2aqOyImQ0KK+q5gOykkeybkA0KK+q5gOyhsOyLnQ0KK+q5gOq4sOykkQ0KK+q5gO2aqOyInA0KK+q5gOqxtO2VmQ0KK+q5gO2DnO2aqA0KK+q5gOyZhO2aqA0KK+q5gO2aqOyLnQ0KK+q5gOunjOuPmQ0KK+q5gOywve2drA0KK+q5gOyEseq0gA0KK+q5gO2aqOybkA0KK+q5gOuRkOyImA0KK+q5gOyEseykkQ0KK+q5gOyXsOyhsA0KK+q5gO2aqOygkA0KK+q5gOyCvOyasA0KK+q5gOyjvO2DnA0KK+q5gOq3nOyaqQ0KK+q5gO2aqOynhA0KK+q5gOu2gO2ZmA0KK+q5gOyEseycqA0KK+q5gOyYge2YuA0KK+q5gO2biOq1kA0KK+q5gOyDgeyIoA0KK+q5gOyEneydtA0KK+q5gOyduOyLnQ0KK+q5gO2dpeyImQ0KK+q5gOustOuztQ0KK+q5gOygnOq4sA0KK+q5gOyiheq1rA0KK+q5gO2drA0KK+q5gOyEnQ0KK+q5gOyVlA0KK+q5gOyInA0KK+q5gO2drOq4uA0KK+q5gOykgO2ajA0KK+q5gOyWuOqzhA0KK+q5gOyYgeyImA0KK+q5gO2drOuNlQ0KK+q5gOyerOyInA0KK+q5gOyImO2ZlA0KK+q5gOygkOyduA0KK+q5gO2drOuPhA0KK+q5gOuzkeq3nA0KK+q5gO2drOyXtA0KK+q5gOyyoOyaqQ0KK+q5gO2drOuPmQ0KK+q5gOusuOyasQ0KK+q5gOyEoOu2hA0KK+q5gOuPmeydtA0KK+q5gO2drOyEoA0KK+q5gOyXsOycpA0KK+q5gO2Wie2YuA0KK+q5gOygleuPmQ0KK+q5gO2drOyEsQ0KK+q5gOyYgeqyvQ0KK+q5gOyYpeqwkQ0KK+q5gOuPmeq3nA0KK+q5gO2drOyImA0KK+q5gOyWkeyghA0KK+q5gO2YhO2drA0KK+q5gO2DnO2YhA0KK+q5gO2drOyImA0KK+q5gOydvOq3nA0KK+q5gOyImOyImA0KK+q5gOyerOq3vA0KK+q5gO2drOyImA0KK+q5gOuCnO2ZmA0KK+q5gOuNleuNlQ0KK+q5gOyEoOyImA0KK+q5gO2drOyImA0KK+q5gOqwke2YuA0KK+q5gOq3gOuNlQ0KK+q5gOq3nOyduA0KK+q5gO2drOyImQ0KK+q5gOydtOqyvQ0KK+q5gOq3nO2XjA0KK+q5gO2XjOybkA0KK+q5gO2drOyInA0KK+q5gOyImeuPmQ0KK+q5gOq0keyXsA0KK+q5gO2aqOyImA0KK+q5gO2drOyInA0KK+q5gOyiheyInA0KK+q5gOyEoOuNlQ0KK+q5gOuzkeyyoA0KK+q5gO2drOyglQ0KK+q5gOyaqeqwgQ0KK+q5gOunjO2YuA0KK+q5gOydmO2YuA0KK+q5gO2drOykgA0KK+q5gO2ZlO2drA0KK+q5gO2Vme2VnA0KK+q5gOyEseyXtA0KK+q5gO2drOykgA0KK+q5gOygleyjvA0KK+q5gOusuOyInA0KK+q5gOynhO2biA0KK+q5gO2drOykgA0KK+q5gOyaqey2nA0KK+q5gOyatO2YuA0KK+q5gOyngO2biA0KK+q5gO2drOynhA0KK+q5gOygleyImQ0KK+q5gOyKue2DgQ0KK+q5gOqwkeyDgQ0KK+q5gO2drO2DnA0KK+q5gOybhe2drA0KK+q5gOyEne2ZmA0KK+q5gOqzteqyvQ0KK+uCmOqwkeyXsA0KK+uCmOq4sOyWuA0KK+uCmOqyveyEnA0KK+uCmO2YhOq1kA0KK+uCmOqxtOyImA0KK+uCmOygleydtA0KK+uCmO2DnOyXsA0KK+uCmO2DnOyImA0KK+uCmOq0keyImA0KK+uCmO2WieyYgQ0KK+uCmOyyoO2YuA0KK+uCmOyEoO2DnA0KK+uCmOq1re2DnQ0KK+uCmOyYge2ZjQ0KK+uCmOustOyEoA0KK+uCmOyCvO2YhA0KK+uCmOq3nOyLnQ0KK+uCmOyLoOunjA0KK+uCmOyjvOyYgQ0KK+uCmOqyveyYgQ0KK+uCmOq3nO2DnQ0KK+uCmO2bhOyInA0KK+uCmOyYgeyImA0KK+uCmCDsm5ANCivrgpjqt5ztg50NCivrgpjsmIHsnbUNCivrgpjssL3smrQNCivrgpjsoJXsmIENCivrgpjqt5ztg50NCivrgpjqsr3smKUNCivrgpjqt5zsiJgNCivrgpjshLHqsJENCivrgpjquIjsnpANCivrgpjrp4zrtoQNCivrgpjtg5ztmIQNCivrgpjrs5HqtZANCivrgpjquIjsnpANCivrgpjsm5DsnbQNCivrgpjtjJDsmIENCivrgpjqt5zrqoUNCivrgpjquLDrgqgNCivrgpjsmIHqtowNCivrgpjsnqzshJ0NCivrgpjquLDssYQNCivrgpjquLDsobANCivrgpjrjZXsiJwNCivrgpjsoJXso7wNCivrgpjsmIHsp4QNCivrgpjrh4zshLENCivrgpjquIjrp4kNCivrgpjsnKTtmLgNCivrgpjtmJXquLANCivrgpjrjIDtmIQNCivrgpjsnZjsiJgNCivrgpjsm5DsiJkNCivrgpjstqnsl7ANCivrgpjrjZXsi5wNCivrgpjshLHsm4UNCivrgpjsmIHqtIANCivrgpjsiJjsoJUNCivrgpjrj5nshKANCivrgpjsmIHrjIANCivrgpjsnqzrpr0NCivrgpjsiKDtg5wNCivrgpjrj5nsl7ANCivrgpgg7ZmYDQor64KY7ISx7ZiEDQor64KY67OR66GdDQor64KY64+Z7LaYDQor64KY67aA7Ja4DQor64KY7Iic66+4DQor64KY7KCV6rWsDQor64KY64+Z7LaYDQor64KY7ISx7JqwDQor64KY7JiB7LacDQor64KY7Zi46rK9DQor64KY66qF7LKgDQor64KY7IiY7ISgDQor64KY7IiY67SJDQor64KY7ZWZ7JuFDQor64KY66qF7LKgDQor64KY7KCV7YOcDQor64KY65Od7IiZDQor64KY7Iic7KeADQor64KY66y07Je0DQor64KY67KU7IigDQor64KY7ZW06rK9DQor64KY6rK96riwDQor64KY66y07Je0DQor64KY7J247ISgDQor64KY7ZW07J21DQor64KY7Iic7IudDQor64KY67OR7YOdDQor64KY7Iq57Z2sDQor64KY67OR67CwDQor64KY7IOB7Zy0DQor64KY67OR7YOdDQor64KY7LCo6rG0DQor64KY67SJ6re8DQor64KY6riI7ZmNDQor64KY7ISx7IiYDQor64KY64+Z7ISdDQor64KY7KeE7J6QDQor64KY642V7LacDQor64KY7ISx7YOdDQor64KY6rSR7J6QDQor64KY7JiB7JuQDQor64KY67OR7YOcDQor64KY7ISx7YOdDQor64KY64Ko7ISdDQor64KY7KCV7IiYDQor64KY7IKs642VDQor64KY7Iic7IS4DQor64KY7JiB7IigDQor64KY7Z2s7IudDQor64KY7JiB7Zi4DQor64KY7Iic7JewDQor64KY7ISx7Z2gDQor64KY7KCV7JikDQor64KY7ZeM7IudDQor64KY7IyN7ISgDQor64KY6reA7J28DQor64KY7J247JqwDQor64KY7KCV7ZiEDQor64KY7JaR6regDQor64KY7J2866qoDQor64KY7LKg7IOdDQor64KY6riw7JqpDQor64KY7Ja16riwDQor64KY7IiY7LKcDQor64KY7ZeM7JqxDQor64KY7JiB7J6sDQor64KY7JiB67KUDQor64KY7Iic6re8DQor64KY7J247KSADQor64KY67SJ7KeADQor64KY7JiB7IK8DQor64KY7IiY7JiBDQor64KY7J6s7IiYDQor64KY7KCV7ZmYDQor64KY7JiB7IK8DQor64KY7ZmN7Z2sDQor64KY7J6E7JiBDQor64KY7KKF66qFDQor64KY7JiB7IudDQor64KY64us7ISdDQor64KY67OR7ISgDQor64KY7YOc7KCVDQor64KY7JiB7JmEDQor64KY7KeE7IiYDQor64KY7ZmN7IiZDQor64KY7ZiE7IiYDQor64KY7JiB7JuQDQor64KY7Jm47Je0DQor64KY7Jil7IiYDQor64KY7Lap7IiYDQor64KY7JiB7J6QDQor64KY7JiB7ZuIDQor64KY7ZWZ6recDQor64KY66+47KeEDQor64KY7JiB7KO8DQor64KY6re87YyQDQor64KY7J287IiZDQor64KY6rec7JqwDQor64KY7JiB7KeEDQor64KY7IOB7ISdDQor64KY7ZiV7JqpDQor64KY7KKF7JqpDQor64KY7JiB7Zi4DQor64KY7LaY7Zi4DQor64KY6rK97ZiEDQor64KY7YOc7Je0DQor64KY7JiB7Z2sDQor64KY7LKg64KoDQor64KY67OR7IiYDQor64KY7IKs66+4DQor64KY7JiB7Z2sDQor64KY6rSR7IiYDQor64KY7KKF7JiBDQor64KY7IyN7JuQDQor64KY7Jqp7Je9DQor64KY7IiY7Zi4DQor64KY7Jqp7J6QDQor64KY7KCV7Zi4DQor64KY7Jqw642VDQor64KY7Iic7IudDQor64KY7Lmg7Z2sDQor64KY6rWt7IudDQor64KY7Jqw7JewDQor64KY7ISx7KGwDQor64KY64+Z7ISdDQor64KY6rK97JewDQor64KY7JuQ7IudDQor64KY7ISx7KSADQor64KY7KeE7ZiEDQor64KY7KKF7IiZDQor64KY7JuU67SJDQor64KY7Jq07KeRDQor64KY64+Z64+EDQor64KY7Jil7JWgDQor64KY7JuU7IOdDQor64KY7Jqp7Zi4DQor64KY7ISx6riwDQor64KY66eQ7ZWcDQor64KY7J217ZGcDQor64KY7Iic7IigDQor64KY6rSR7ZmNDQor64KY66+864KoDQor64KY7J6s6riwDQor64KY7J6s7JuFDQor64KY6rOE7Z2sDQor64KY7J6s7IiYDQor64KY7J6s7IudDQor64KY66eM7ISdDQor64KY7ISx7IiYDQor64KY6rK964KoDQor64KY7KCV6riIDQor64KY7LmY67KUDQor64KY67KU7KCVDQor64KY67OR7JqwDQor64KY7KCV7J2YDQor64KY66qF7Zi4DQor64KY7JiB66GcDQor64KY7Jyk64KoDQor64KY7KCV7YOcDQor64KY7J6s6rK9DQor64KY7ZWc7KSADQor64KY7JiB7IiYDQor64KY7KCV7Z2sDQor64KY66qF7ISdDQor64KY7Jq06riwDQor64KY66qF7JewDQor64KY7KKF6rOkDQor64KY7J6s7KeEDQor64KY7ISg64KoDQor64KY7KKF7IiYDQor64KY7KKF66y4DQor64KY67OR64+EDQor64KY7KCQ7JqpDQor64KY66y07KGwDQor64KY7KKF7Je0DQor64KY7KCV7J6EDQor64KY7IK866CoDQor64KY7J2A7JiBDQor64KY7KKF7YOcDQor64KY7ISx7Je0DQor64KY7Iic7ZmYDQor64KY7LaY64+EDQor64KY7KKF7YOdDQor64KY64+Z67aADQor64KY7Y+J7JilDQor64KY7KKF7IugDQor64KY7KKF7ZWcDQor64KY7J6s7ZmUDQor64KY7J247JyoDQor64KY7KCV7KO8DQor64KY7KO87YOdDQor64KY6ri47JqpDQor64KY7KO87JykDQor64KY7YOc7IudDQor64KY7KeA7JewDQor64KY67SJ7IudDQor64KY7JiB7ZmYDQor64KY67Cp7IicDQor64KY7KeE6rSADQor64KY7ZiE64usDQor64KY7YyQ7KGwDQor64KY7KeE7ZGcDQor64KY7KeE6rSADQor64KY7KCV66eMDQor64KY7JiB7IiZDQor64KY6rG07IiYDQor64KY7KeE6ri4DQor64KY67OR66+4DQor64KY6rCR7JikDQor64KY7Jqp7ZalDQor64KY7KeE64+EDQor64KY67SJ7Jq0DQor64KY7JiB7YOdDQor64KY7KCV7Jq0DQor64KY7KeE64+EDQor64KY66+87J6QDQor64KY6rCR7IiZDQor64KY7YyQ7J6QDQor64KY7KeE6529DQor64KY7ISg7ZiEDQor64KY7LCs7LKgDQor64KY6re87JewDQor64KY7KeE7IOBDQor64KY64Ko7J6QDQor64KY7JWI7ZiEDQor64KY7LKc7KSADQor64KY7KeE7JikDQor64KY7Z2s7LKgDQor64KY7Jil7ISxDQor64KY7JuQ64+MDQor64KY7KeE7JygDQor64KY7JuQ7Z2sDQor64KY7IiY64yADQor64KY7Iq57JikDQor64KY7KeE7ZWcDQor64KY7IOB7KeEDQor64KY7ZWc66GdDQor64KY7Jyk7IudDQor64KY7KeE7ZW0DQor64KY7KCQ7J6QDQor64KY6rK964yADQor64KY7Jqp6rCVDQor64KY7KeE7Z2sDQor64KY7KSR7IiYDQor64KY7IiY7IudDQor64KY6raM6rWQDQor64KY7LGE6rSADQor64KY6rCI7JuQDQor64KY7KCV7JikDQor64KY6rK97Zi4DQor64KY7LGE6raMDQor64KY7YOc64+ZDQor64KY7ISd7YOcDQor64KY7KKF7Zi4DQor64KY7LGE7ISxDQor64KY7Zqo6rK9DQor64KY7KCV6rSADQor64KY7IaM7JiBDQor64KY7LGE7IudDQor64KY7JiB6ri4DQor64KY7KKF7KGwDQor64KY6re87IudDQor64KY7LGE7ZalDQor64KY7KKF7YOcDQor64KY64yA7IusDQor64KY7YOc7LKgDQor64KY7LaY7YOdDQor64KY7YOc7JilDQor64KY7J6s7JqpDQor64KY7J207KeADQor64KY7YOc7J6EDQor64KY66qF7ZalDQor64KY7Lap7JykDQor64KY7J6s6re8DQor64KY7ZW07JqpDQor64KY7KKM7IicDQor64KY7JiB7ZiEDQor64KY7YOc7Zi4DQor64KY7ZW07JqpDQor64KY7Jq066y0DQor64KY67OR7LKgDQor64KY7J6s7ISgDQor64KY7Zi47JewDQor64KY66qF7LCsDQor64KY7ZmN7J6QDQor64KY7Jqp7ZuIDQor64KY7Z2s7Je0DQor64KY7ZmY7IStDQor64KY7Jyk7JqpDQor64KY7Jqp7J6QDQor64KY7Z2s7KCVDQor64KY7J287IudDQor64KY7Iq57Zi4DQor64KY7JuQ64+ZDQor64KoIO2biA0KK+uCqO2DnO2XjA0KK+uCqOu0ie2YuA0KK+uCqOuMgO2VtA0KK+uCqOqwnOqzpA0KK+uCqOyEseyIoA0KK+uCqO2drO2drA0KK+uCqOykkeq4sA0KK+uCqOq2geyglQ0KK+uCqO2MkOyLnQ0KK+uCqOyDgeyImQ0KK+uCqOq3nOuwsA0KK+uCqOq3nOuqhQ0KK+uCqOybkOyEoA0KK+uCqOyInOuvuA0KK+uCqOyerOuLrA0KK+uCqOq3nOynhA0KK+uCqOyEseybhQ0KK+uCqOyaqe2YuA0KK+uCqOuCme2PrA0KK+uCqOq4sOyIoA0KK+uCqOyYge2YlQ0KK+uCqOuMgOq0gA0KK+uCqOuqheyImA0KK+uCqOq4sOyglQ0KK+uCqOq4sO2YuA0KK+uCqOygkOyngQ0KK+uCqOybkOyImQ0KK+uCqOq4sO2ZjQ0KK+uCqOyEseq4sA0KK+uCqOyEseq3nA0KK+uCqOq3vOyXtA0KK+uCqOuNleyImA0KK+uCqOyerOuztQ0KK+uCqOyViOyVoA0KK+uCqOyDgeq4uA0KK+uCqOusuO2drA0KK+uCqOuwsO2YuA0KK+uCqOunkOyVlA0KK+uCqOydvOyLnQ0KK+uCqOuzkeuRkA0KK+uCqOywve2DnA0KK+uCqOyEoO2DnA0KK+uCqOyatOuztA0KK+uCqOuzkey2mA0KK+uCqOuMgOq1rA0KK+uCqOqyveq4sA0KK+uCqOq4iOyYgQ0KK+uCqOyDgeyImA0KK+uCqOyEneu0iQ0KK+uCqOyyoOq4sA0KK+uCqOynhOqzpA0KK+uCqOyDgeyIoA0KK+uCqOydgOuCqA0KK+uCqOq0keyLnQ0KK+uCqOycpOqzpA0KK+uCqOyDgeyXvA0KK+uCqOyCvO2biA0KK+uCqOu0ie2DnA0KK+uCqOycpO2DnA0KK+uCqOyDgeyduA0KK+uCqO2drOq0gA0KK+uCqOq0ke2YhA0KK+uCqOyYge2XjA0KK+uCqOyDge2biA0KK+uCqOyYgeyImA0KK+uCqO2MkO2YhA0KK+uCqOuMgOyErQ0KK+uCqOyEne2YhA0KK+uCqOqxtOq4sA0KK+uCqOyiheywvQ0KK+uCqOuqhe2DnA0KK+uCqOyEseyasA0KK+uCqOyDgeq0kQ0KK+uCqCDsiJgNCivrgqjsg4HtmLgNCivrgqjsiJjsmqkNCivrgqjtmY3rtIkNCivrgqjqt4Dsi50NCivrgqjtmITqs6QNCivrgqjsiJzsmrANCivrgqjsmIHrrLQNCivrgqjsmIHsnqwNCivrgqjtg5zspIANCivrgqjsmIHsmrANCivrgqjtjJDqt7wNCivrgqjsnqzqtZANCivrgqjsmqnqt7wNCivrgqjsmIHtmIQNCivrgqjsg4HshKANCivrgqjssL3rj4QNCivrgqjsoJXrrLgNCivrgqjsmIHtmIQNCivrgqjtlZjtmLgNCivrgqjrqoXsuZgNCivrgqjsnYTqt7wNCivrgqjsmKTsobANCivrgqjsg4HtmIQNCivrgqjsmIHqta0NCivrgqjrs5Htg50NCivrgqjsmKXtnawNCivrgqjsooXtmZQNCivrgqjsnqztmIQNCivrgqjsoJXsl7ANCivrgqjsmqnrjZUNCivrgqjsmIHslZQNCivrgqjrrLjtg50NCivrgqjsmIHtnawNCivrgqjsm5DrjZUNCivrgqjsooXquLANCivrgqjrj5nsnpANCivrgqjtg5zsiJwNCivrgqjsm5DtnawNCivrgqjrtInssqANCivrgqjri6ztla0NCivrgqjqs4Trj5kNCivrgqjsnKTsiJkNCivrgqjsnoTqtZANCivrgqjsooXsiJgNCivrgqjqt7zquLANCivrgqjsnKTsobANCivrgqjsmqntnawNCivrgqjsm5DsspwNCivrgqjsnbTsiJgNCivrgqjsnYDsoJUNCivrgqjrr7zrjIANCivrgqjrtoTtmZgNCivrgqjtmITtmZQNCivrgqjsnYTsiJwNCivrgqjsooXsmIENCivrgqjqsIDshKANCivrgqjsg4HqtawNCivrgqjsnbTsi50NCivrgqjssL3tg5wNCivrgqjssKzsiJgNCivrgqjrspTsp4QNCivrgqjsnbTsi50NCivrgqjqta3tnaANCivrgqjqtazstpwNCivrgqjsiJzsi6wNCivrgqjsnbTsp4ENCivrgqjsoJXsp4QNCivrgqjqtJHqsr0NCivrgqjssL3smKQNCivrgqjsnbjsi50NCivrgqjsgrztm4gNCivrgqjsnqXqta0NCivrgqjtg5zsi50NCivrgqjsnqzrp4wNCivrgqjsg4HsnbQNCivrgqjsooXrjZUNCivrgqjqtJHsiJgNCivrgqjsnqzrtIkNCivrgqjrrLTsmrANCivrgqjsgrzrp4wNCivrgqjtlonquLANCivrgqjsnqzsmrANCivrgqjrqoXsl7QNCivrgqjsmIHshK0NCivrgqjrgqjsi50NCivrgqjsnqzsmrANCivrgqjsiJztl4wNCivrgqjspIDqs6QNCivrgqjsoJXsiJgNCivrgqjsoJXtmLgNCivrgqjtmLjsp4QNCivrgqjsnbjsnpANCivrgqjsg4Hrp4wNCivrgqjsoJXtmLgNCivrgqjsnqzsoJUNCivrgqjsg4HsmrENCivrgqjsoJXsobANCivrgqjssL3quLANCivrgqjtmZTsl7QNCivrgqjsmKXrtIkNCivrgqjsmIHsmKUNCivrgqjssqDsmrANCivrgqjso7zsi50NCivrgqjsooXtmLgNCivrgqjrj5nslZQNCivrgqjstpjtmZQNCivrgqjrs5HrtoANCivrgqjsuaDtmLgNCivrgqjtnaXsi50NCivrgqjsuaDsobANCivrgqjtg5zrj5kNCivrgqjrs5HsmrANCivrgqjshKDqtowNCivrgqjtg5zsooUNCivrgqjtmLjshJ0NCivrgqjtmJzshLENCivrgqjsnqztlbQNCivrgqjtjJDspIANCivrgqjsnqztmIQNCivrgqjsm5Dqta0NCivrgqjsmIHsi50NCivrgqjtlZjsmrANCivrgqjsp4TsnbQNCivrgqjsg4HsiJwNCivrgqjspJHtmZQNCivrgqjtmITsnbwNCivrgqjrj4TtmY0NCivrgqjsiJjtmZQNCivrgqjsiJzsiJgNCivrgqjtmITsnbwNCivrgqjsnZjsiJwNCivrgqjtnazqt5wNCivrgqjquLjqt5wNCivrhbjqsJHsiJgNCivrhbjqtbDqtowNCivrhbjqt5zshLgNCivrhbjshLHslYQNCivrhbjqsr3rj4QNCivrhbjqsr3shJ0NCivrhbjtg5ztl4wNCivrhbjsnbzsnpANCivrhbjqtJHrjZUNCivrhbjrjIDsnKQNCivrhbjsmqnsnpANCivrhbjsgrzsooUNCivrhbjqtJHsm4UNCivrhbjqsJXslrgNCivrhbjsirnrj5kNCivrhbjqsr3qt7wNCivrhbjqt7zsl7QNCivrhbjtl4ztmLgNCivrhbjrrLTqt5wNCivrhbjrs5HsiJwNCivrhbjquLDqt7wNCivrhbjtlqXstpwNCivrhbjsgrzrr7gNCivrhbjspJHsp4QNCivrhbjquLDroZ0NCivrhbjspIDtg5wNCivrhbjsmbjqt5wNCivrhbjsooXtmZgNCivrhbjquLDsiJgNCivrhbjtnaztnawNCivrhbjrj5nshK0NCivrhbjsmKXshJ0NCivrhbjquLDssL0NCivrhbjshJ3siJwNCivrhbjshLHtm4QNCivrhbjsiJjsiJgNCivrhbjquLDtmIQNCivrhbjspIDsiJgNCivrhbjrj4TshJ0NCivrhbjsnqXtmZgNCivrhbjrjIDqs6QNCivrhbjrs5HshKANCivrhbjspJHsmrENCivrhbjtlZzsoJUNCivrhbjrj5nrgqgNCivrhbjssL3sg4ENCivrhbjsnqzsg50NCivrhbjsvozsiJkNCivrhbjrj5nrjZUNCivrhbjssL3slZQNCivrhbjqsr3rtoQNCivrhbjtmY3tg50NCivrhbjrj5nsiJgNCivrhbjtg5zsi50NCivrhbjsmKXsl7QNCivrhbjssqDqt5wNCivrhbjrj5nsobANCivrhbjqsrjsobANCivrhbjsmrDroZ0NCivrhbjqt7zsnpANCivrhbjrj5nsobANCivrhbjspJHtmLgNCivrhbjsnZjtlZwNCivrhbjsmIHtmZQNCivrhbjrqoXrtoQNCivrhbjsiJjsi50NCivrhbjsoJXtmZgNCivrhbjsoJXqsqwNCivrhbjrqoXslZQNCivrhbjsirnsiKANCivrhbjsmIHsoJANCivrhbjqsr3tg4ENCivrhbjrrLTsiJgNCivrhbjstpjsi50NCivrhbjsooXsoJUNCivrhbjsoJXsiJwNCivrhbjrrLTsooUNCivrhbjsnKTrj4wNCivrhbjsoJXsp4QNCivrhbjsnqzrp4wNCivrhbjrsKnsi50NCivrhbjsg4HqsJENCivrhbjsmIHsl7QNCivrhbjsnYTtg50NCivrhbjrs5HsmrANCivrhbjtl4zrj4QNCivrhbjsp4Ttg5wNCivrhbjssqDtmIQNCivrhbjrs7XsspwNCivrhbjsnKTsm5ANCivrhbjrqoXtmLgNCivrhbjssKjsiJwNCivrhbjrtInsl7QNCivrhbjso7zrpaANCivrhbjsmIHrrLgNCivrhbjsmqnrs5ENCivrhbjrtoTsobANCivrhbjspJHqt5wNCivrhbjtnazsspwNCivrhbjrj5nsiJgNCivrhbjsgqztmLgNCivrhbjsooXqsr0NCivrhbjsnbzsl6wNCivrhbjtmITsiJgNCivrhbjsgrzsiJgNCivrhbjsnbzsnbQNCivrhbjsmrDsiJgNCivrhbjsnbjsiJwNCivrhbjsg4HsiJgNCivrhbjspJHrprwNCivrhbjsnYDsiJgNCivrhbjsiJzrjZUNCivrhbjsg4Hsl7QNCivrhbjsp4TrtIkNCivrhbjsg4HqtawNCivrhbjstpjsp4QNCivrhbjsg4Htg5wNCivrhbjstpjtmLgNCivrhbjrr7ztmZQNCivrhbjsp4TsiJgNCivrhbjsg4HtlYQNCivrhbjrs5HsmrANCivrhbjsmIHqtZANCivrhbjsoJXqtbANCivrhbjsg4HtmZQNCivrhbjtg5zrp4wNCivrhbjtlZzrjIANCivrhbjsnqzsi50NCivrhbjshJ3siJgNCivrhbjtg5ztg5wNCivrhbjshLHtmZgNCivrhbjrs5HrrLgNCivrhbjshJ3si50NCivrhbjtlZzqsJENCivrhbjsooXtnawNCivrhbjtlZztmLgNCivrhbjshJ3si50NCivrhbjrs5HsiJkNCivrhbjshLHsg4ENCivrhbjrkZDsiJgNCivrhbjshJ3sl7QNCivrhbjsmIHsnpANCivrhbjrh4zssL0NCivrhbjsiJjssqANCivrhbjshJ3tmLgNCivrhbjrp5DquLANCivrhbjqtozrj4QNCivrhbjqsr3tmIENCivrhbjshLHrjIANCivrhbjquLjtmIQNCivrhbjsmqnrj4QNCivrhbjri6zquLANCivrhbjshLHrjZUNCivrhbjssqDqta0NCivrhbjrtIntlZwNCivrhbjtmY3tmZgNCivrhbjshLHroYANCivrhbjrj5ntmZgNCivrhbjsmIHshLENCivrhbjsg4HsnpANCivrhbjshLHsi50NCivrhbjtg5zsiJkNCivrhbjsp4TsmYQNCivrhbjrs5HstpwNCivrhbjshLHsl7QNCivrhbjsmIHquLANCivrhbjsg4HtnawNCivrhbjrs5HtmIQNCivrhbjshLHtmZgNCivrhbjrrLTsiJwNCivrhbjrs5HtmLgNCivrhbjsoJzquLANCivrhbjsiJjtlZwNCivrhbjsg4HquLANCivrhbjsoJXshKANCivrhbjsl7DtmIQNCivrhbjsiJzrgqgNCivrhbjsmIHshJ0NCivrhbjsoJXsobANCivrhbjrkZDsm5ANCivrhbjsiJzsobANCivrhbjqsr3sp4QNCivrhbjsmqnsi50NCivrhbjsirnsiJkNCivrhbjsiJztlZkNCivrhbjtlZzshLENCivrhbjsmIHqs6QNCivrhbjsg4Hsl7QNCivrhbjsiJztlbQNCivrhbjsiJztmZQNCivrhbjssL3rrLgNCivrhbjssL3tmIQNCivrhbjsmIHsiJgNCivrhbjsp4TsobANCivrhbjrs5Hrj5kNCivrhbjsiJjshLENCivrhbjsmIHsiJkNCivrhbjsiJjsooUNCivrhbjso7zslaANCivrhbjsuaDsl7ANCivrhbjsmYTqtawNCivrhbjsooXstpwNCivrhbjspIDsiJgNCivrhbjtg5zssqANCivrhbjsmYTsi50NCivrhbjsooXquLANCivrhbjsmKTtmZgNCivrhbjsoJXshJ0NCivrhbjsmqnqt5wNCivrhbjrj4TtmLgNCivrhbjshLHqsJENCivrhbjsnbzsoJwNCivrhbjsmqnrrLgNCivrhbjrqoXrgpwNCivrhbjqsr3sg4ENCivrhbjsiJzsi50NCivrhbjsmqnrspQNCivrhbjtg5zsmrANCivrhbjsiJjqtZANCivrhbjrs5Hqt6ANCivrhbjsmqnsi50NCivrhbjsmKTsiJkNCivrhbjtlZzrtoQNCivrhbjsg4HtmY0NCivrhbjsmqnsnpANCivrhbjsi5zstpgNCivrhbjqsr3qtIANCivrhbjrtoDtmJUNCivrhbjsmrTrj5kNCivrhbjssKjqta0NCivrhbjshLHtmZQNCivrhbjsooXsl7QNCivrhbjsm5TshKANCivrhbjsg4HsmKUNCivrhbjsgqzsi50NCivrhbjtjJDsmrANCivrhbjsnKTqt5wNCivrhbjrrLTsmrQNCivrhbjrjZXtg5wNCivrhbjsoJDrs7UNCivrhbjsnKTquIgNCivrhbjsmKTqtZANCivrhbjrqoXshJ0NCivrhbjsoJXquIgNCivrhbjsnYDshK0NCivrhbjqsr3quLgNCivrhbjsg4HqtIANCivrhbjqtJHsnpANCivrhbjsnYDtnawNCivrhbjrqoXsiJkNCivrhbjrqoXshJ0NCivrhbjrp4zsiJgNCivrhbjsnYTsl7ANCivrhbjtmITsiJgNCivrhbjrjIDsmqkNCivrhbjrs5Hsi6ANCivrhbjsnbjsg4ENCivrhbjsmrHsi50NCivrhbjqtJHtmZQNCivrhbjrqoXsl7ANCivrhbjsnbjtmLgNCivrhbjsm5DtmLgNCivrhbjsnqzsp4QNCivrhbjsmIHsmrANCivrhbjsnqXsiJgNCivrhbjsmIHso7wNCivrhbjrqoXqsr0NCivrhbjsooXtnLQNCivrhbjsnqXsmKQNCivrhbjstpjrtIkNCivrhbjsmrDsmKUNCivrhbjrjIDsm4UNCivrhbjsnqzsl7ANCivrhbjsmqnstpwNCivrhbjrs5Htg4ENCivrhbjsg4Hsg4ENCivrhbjsnqzsnKQNCivrhbjsnbXrtoANCivrhbjsnKTtnLQNCivrhbjri6ztmIQNCivrhbjsnqzssL0NCivrhbjrp4zsiJkNCivrhbjsoJXrp4wNCivrhbjsuaDquLgNCivrhbjsnqztmZgNCivrhbjsooXssqANCivrhbjtg5ztnawNCivrhbjtjJDsp4QNCivrhbjsnqztmZgNCivrhbjqt5zsiJwNCivrhbjsmIHtnawNCivrhbjri6ztmLgNCivrhbjsoJXsnbUNCivrhbjtlbTrp4wNCivrhbjshLHsi50NCivrhbjstpjsiJkNCivrhbjsoJXtmZgNCivrhbjsmIHqt7wNCivrhbjrp4zqs6QNCivrhbjsmqnsiKANCivrhbjsooXqtowNCivrhbjsmqnqt6ANCivrhbjsnbzsmKUNCivrhbjrp4zrj4QNCivrhbjsooXsmrQNCivrhbjsg4HsnbQNCivrhbjqt7zrjZUNCivrhbjrj5nquLANCivrhbjsooXtmIQNCivrhbjsspzsiJgNCivrhbjsnbzsiJwNCivrhbjsi5zsl7QNCivrhbjspIDtmIQNCivrhbjqsr3smqkNCivrhbjshLHqt7wNCivrhbjtlZzsmrANCivrhbjspIDtmIQNCivrhbjqtJHtmIQNCivrhbjrtInsnbQNCivrhbjsoJXtmZQNCivrhbjsp4Tsi50NCivrhbjtlZzshJ0NCivrhbjqt7zsi50NCivrhbjsp4TroKwNCivrhbjssL3rnb0NCivrhbjqsJXrgqgNCivrhbjsm5DsnbQNCivrhbjshKDsiJwNCivrhbjssL3shJ0NCivrhbjtmITsnbwNCivrhbjssqDqtowNCivrhbjrtoTtlZgNCivrhbjssL3tmLgNCivrhbjslrXtlZkNCivrhbjrrLTssqANCivrhbjtlYTtmIQNCivrhbjssL3tmZQNCivrhbjsoJXtg5wNCivrhbjrs5Hqs6QNCivrhbjsmqnsmrANCivrhbjssqDqt5wNCivrhbjquLjtg5wNCivrhbjtmLjssqANCivrhbjsmIHrp4wNCivrhbjstpjquLgNCivrhbjrqoXsl7ANCivrhbjqsr3tnawNCivrhbjsoJXsiJwNCivrhbjsuaDqt5wNCivrhbjsoJXsuZgNCivrhbjsoJXshJ0NCivrhbjrjIDsmrENCivrhbjtg5zquLgNCivrhbjtmY3qtIANCivrhbjtg5zqt7kNCivrhbjrrLTsnpANCivrhbjtg5zsiKANCivrhbjsp4TshKANCivrhbjsnqzsnpANCivrhbjsg4HsnbQNCivrhbjtg5zsm5ANCivrhbjtg5zrtIkNCivrhbjshLjrp4wNCivrhbjsmqnssqANCivrhbjtg53rtIkNCivrhbjsmqntmZQNCivrhbjstpjtnawNCivrhbjrjZXtmZgNCivrhbjtjJDqt5wNCivrhbjrhbjssqANCivrhbjsmIHshJ0NCivrhbjsiJztmLgNCivrhbjtlYTso7wNCivrhbjrqoXsm5ANCivrhbjquLDshKANCivrhbjsnqzsm5ANCivrhbjtlZzqt5wNCivrhbjsmIHsl7QNCivrhbjrr7jqtowNCivrhbjrrLjshLENCivrhbjtmITrsLANCivrhbjsooXsiJwNCivrhbjsg4Hqt5wNCivrhbjtlZztmZQNCivrhbjtmITsoJUNCivrhbjrkZDsg4ENCivrhbjsgrzsnbUNCivrhbjtmLjrtIkNCivrhbjtmJzqsr0NCivrhbjsp4jqt5wNCivrhbjqtJHshK0NCivrhbjsnqzsmqkNCivrhbjtmozspIANCivrhbjsoJXsiJgNCivrhbjtmLjspJENCivrhbjrkZDsnbwNCivrhbjtmqjrj5kNCivrhbjqsr3showNCivrhbjshLHshLENCivrhbjssKjshJ0NCivrhbjtm4Trk50NCivrhbjsnYTrsLANCivrhbjsnqzqs4QNCivrhbjrp4zsl7ANCivrhbjtnazsiJgNCivrhbjsmIHsm4UNCivrhbjshLHqt5wNCivrhbjsg4Hrp4wNCivrhbjtnazsl7QNCivrhbjtg5zsobANCivrhbjtg5ztg5wNCivrhbjsnqztmLgNCivrhbjtnazssKwNCivrhbjsnKTsmrENCivrhbjrhbjtmLgNCivrhbjsg4Hsl7QNCivrj4Tqt5ztg4ENCivrj4TsnoTsmqkNCivrj4TqtJHsiJgNCivrj4TtmLjquLANCivrj4Trj5nsirkNCivrj4TsnKTshLENCivrj4TsoJXsoIQNCivrj4Tso7ztg5wNCivrj4TrkZDtg4ENCivrj4TshoztmY0NCivrj4Trs5HqsbQNCivrj4Tso7zshJ0NCivrj4TrrLjtmZgNCivrj4TrrLjsl7ANCivrj4TssqDsmqkNCivrj4TtjJTqsJENCivrj4Trs5HquLANCivrj4TsnKjsnbUNCivrj4TsmIHsiJgNCivrj4TsiJzsnbgNCivrj4Tsg4HquLANCivrj4TtmLjsg50NCivrj4Ttg5zqsJENCivrj4Tqt5ztmZgNCivrj4Tsg4HssqANCivrj4Trs5HtmZgNCivrj4TshLHsmrANCivrj4Trs5HsmqkNCivrj4Tsg4HtmLgNCivrj4Tsnqzsi50NCivrj4TssKzsnpANCivrj4TsoIHsnqwNCivrj4TsiJjsmIENCivrj4TshozsmIENCivrj4Ttl4zsi50NCivrj4TtlZnsi50NCivrj4TsiJjsmIENCivrj4Tsmqnrs7QNCivrj4TsnqzsoJUNCivrj4TtmY3siJgNCivrj4Tsi6DsmrANCivrj4TquLDqt7wNCivrj4TtlbTsmqkNCivrj4TsoJXqt7wNCivrj4TsmIHssqANCivrj4TrtoTqt7wNCivrj4TtmITssL0NCivrj4TtlbTsg50NCivrj4TsmIHtnawNCivrj4TrrLjsnbQNCivrj4TrjZXsmrANCivrj4TquLDrp4wNCivrj4TsmKXtnawNCivrj4Tqs7XrprwNCivrj4TsnbjrtoQNCivrj4TtlbTsiJgNCivrj4Tsm5DsiJgNCivrj4TsmqnsiJwNCivrj4TsgrzssqANCivrj4TsmIHshKANCivrj4TsnoTsiKANCivrj4TsiJzsiJwNCivrj4Tqta3siJwNCivrj4TssKjtmLgNCivrj4Tsnqzrj5kNCivrj4TsmIHsnpANCivrj4TqtJHsiJkNCivrj4Tsg4Hsm5ANCivrj4Tsnqzrj5kNCivrj4TsnKTqsbQNCivrj4TshJ3shJ0NCivrj4Tsirnrp4wNCivrj4TsnqzsmrENCivrj4TsiJzssKwNCivrj4TrqoXqtawNCivrj4TssKjrjZUNCivrj4TsoJXrp4wNCivrj4TssL3tmLgNCivrj4Tsg4HquLANCivrj4TsnbzsmrANCivrj4TsoJXrtIkNCivrj4TtjJDquLgNCivrj4TsmKXroZwNCivrj4TssqDtnawNCivrj4TsoJXtg4ENCivrj4Tqsr3qt5wNCivrj4Tsnqzsi50NCivrj4TssqDshLgNCivrj4TsoJztmIQNCivrj4TrjZXsiJgNCivrj4TsvozshKANCivrj4TquLDtg5wNCivrj4TsooXtmZgNCivrj4Ttg5zqt7wNCivrj4TsooXroZ0NCivrj4TsnbjshKANCivrj4TspIDtg4ENCivrj4TsmIHrqqgNCivrj4TqsJztmZQNCivrj4Trs5Hsi50NCivrj4Tspp3sobANCivrj4TqsJHqtIANCivrj4TsmIHsiJwNCivrj4Ttg5zsiJgNCivrj4TssL3roZ0NCivrj4Trs5HtmZgNCivrj4Trs5Hrs7UNCivrj4TssL3shLENCivrj4TssL3siJgNCivrj4Ttg5ztnawNCivrj4TrrLjsp4QNCivrj4Tso7zsoJwNCivrj4TtjJTrp4wNCivrj4TtmqjsmqkNCivrj4TshKDsiJgNCivrj4TtmITsoJUNCivrj4TtlZjshJ0NCivrj4TtmZTqtZANCivrj4TsoJXsobANCivrj4Trp4zslpENCivrj4TtmITshJ0NCivrj4Tsl7DslZQNCivrj4TqtbDsi50NCivrj4Ttg5zstpgNCivrj4TtmITsmIENCivrj4TtlZzsg4ENCivrj4Trp4zshLENCivrj4Trj5nso7wNCivrj4TtmLjquLgNCivrj4TsnbjtmIQNCivrj4Tqt5zstpgNCivrj4TtmqjtnawNCivrj4TtmZTshJ0NCivrj4TrjIDshJ0NCivrj4Tsp4TshJ0NCivrj4TrhbjrqqkNCivrj4TtmozsmrQNCivrj4Tqsr3rj5kNCivrj4Trj5nsgrwNCivrj4Ttg5zsi50NCivrnbzqt5ztmIENCivrnbzquLDrtIkNCivrnbzsiJnquLANCivrnbzsnqzrj4wNCivrnbzrs5HtmLgNCivrnbzsnbzsmqkNCivrnbzsnqzsoJUNCivrnbzqtZDsobANCivrnbzrs7Tsm5ANCivrnbzquLDqsr0NCivrnbzrs5Hqt7wNCivrnbzssKjtmIQNCivrnbzshJ3rrLgNCivrnbzsooXrqqkNCivrnbzstqnquLANCivrnbzsmqnrr7gNCivrnbzshLjrp4wNCivrnbzri6zso7wNCivrnbzshoztmZgNCivrnbzsmYTtmLgNCivrnbzsl7Dri7kNCivrnbzsirnquLANCivrnbztg5zsm5ANCivrnbzsnKTsiJgNCivrnbzsmIHrhbgNCivrnbzrqoXqs4QNCivrnbzsooXqtIANCivrnbzqt5zsmIENCivrnbzsmIHrj4QNCivrnbztnazshLENCivrnbzrs5HsnbUNCivrnbzsm5Drj4wNCivrnbzsmIHspIANCivrnbzrr7jrnpgNCivrnbzsmIHsnoQNCivrnbzsgrzsmIENCivrnbzsmpTtlZwNCivrnbztnazsiJwNCivrnbzrp4zsl7ANCivrnbzso7zri7QNCivrnbzsmrDqs6QNCivrnbzsnbzqt6ANCivrnbzrkZDtg5wNCivrnbztnazrj4wNCivrnbzsnbjsiJgNCivrnbzshLjshK0NCivrnbztg5zsobANCivrnbzrjIDsi50NCivrnbzsnqXsiJgNCivrnbztlbTrj4QNCivrnbzsmIHrr7wNCivrnbzsiJjro6ENCivrnbzsooXssqANCivrnbztnaztmY0NCivrnbzsiJzsiJgNCivrnbzso7zqsbQNCivrnbzso7ztg50NCivrnbzrtInquLANCivrnbzrj4Tsp4QNCivrnbzsoJXshLENCivrnbzsp4TqsJUNCivrnbzsl7DshJ0NCivrnbzsiJzsiJwNCivrnbzrs5HsiJkNCivrnbzsp4Tsi50NCivrnbzsg4HtmZgNCivrnbzsnqzsiJkNCivrnbzsm5DquLgNCivrnbzsp4TtlZwNCivrnbzqt5zsg4ENCivrnbzsmIHsi50NCivrnbzsirnsmrQNCivrnbzsuZjsmrQNCivrnbzqsr3quLANCivrnbzsmqnsiJgNCivrnbzsoJXsp4QNCivrnbztg53sl7ANCivrnbzsg4HshJ0NCivrnbzsmIHshJ0NCivrnbzrtInsnqwNCivrnbztlZzquLgNCivrnbzsg4HsiJwNCivrnbzssL3snqwNCivrnbztmY3rp4wNCivrnbztmITrrLgNCivrnbzsnbzrp4wNCivrnbzsoJXsp4QNCivrnbztlYTso7wNCivrpZgg6rCVDQor66WY7J2A7J6QDQor66WY7JiB7JuQDQor66WY67O17Zi4DQor66WY6rCR66GdDQor66WY7JiB6rWsDQor66WY7YOc7IudDQor66WY7ZWY7IicDQor66WY6rSR7Je0DQor66WY7YOc7JiBDQor66WY7J6s7ZWZDQor66WY6rK964KoDQor66WY6rSR7KeADQor66WY7ZWo7IStDQor66WY7ZiE64+ZDQor66WY7ZWZ7IiYDQor66WY6re87IiZDQor66WY7JmE7ZuIDQor66WY7ZW07JqwDQor66WY66y067O1DQor66WY64+E7JqpDQor66WY7Iq57ISgDQor66WY7J207KeRDQor66WY7IOB656RDQor66WY64+Z7ZuIDQor66WY66y47J6EDQor66WY6re86riwDQor66WY7ZiE7JqxDQor66WY64+Z7ZuIDQor66WY7LKg6rCRDQor66WY7IKs66y0DQor66WY7IS47KKFDQor66WY67OR7LmgDQor66WY6riI7JWgDQor66WY66qF67aADQor66WY66y47ZqoDQor66WY7IOB66CsDQor66WY7LKg64+ZDQor66WY7J6s64+ZDQor66WY7ZiV7J20DQor66WY7IOB7JqwDQor66WY6rSR7JqpDQor66WY7KKF7J6sDQor66WY7J6s7LKgDQor66WY7ISx67O1DQor66WY7J2A7JilDQor66WY7KSR7ISxDQor66WY6rec64KoDQor66WY7ISx67O1DQor66WY66y47JewDQor66WY6riI6riwDQor66WY7IOB6re8DQor66WY7ISx7Zi4DQor66WY7JiB64yADQor66WY7Iuc7KGwDQor66WY7LKg7LKgDQor66WY7IiY67mIDQor66WY7ISx7JiBDQor66WY6ri46rWtDQor66WY66y47JqpDQor66WY7Iuc7J6sDQor66WY7ZiV7Z2sDQor66WY6rec7KCVDQor66WY7ZWZ65OdDQor66WY7Jew7J6QDQor66WY7IaM642VDQor66WY6rK97ZiEDQor66WY64+Z7IiYDQor66WY7Jqp7Z2sDQor66WY7IS47Zi4DQor66WY7IOB7YOcDQor66WY7Iic642VDQor66WY7Jyk7ZiVDQor66WY66eM7IudDQor66WY6rCV7KSADQor66WY6rSR67CwDQor66WY7J2Y7IiYDQor66WY7J2E6rOkDQor66WY67OR66+8DQor66WY7ISx7IukDQor66WY7J6l7ZmUDQor66WY7ISc7ZmNDQor66WY6riw7JiBDQor66WY7Iuk7ZWZDQor66WY7KKF656YDQor66WY7KKF7JqpDQor66WY64+Z7Zi4DQor66WY7Zi47ZiEDQor66WY7KKF66y4DQor66WY7IiY7ISgDQor66WY7Jqp7YOdDQor66WY7Zic7JiBDQor66WY7KKF7LGEDQor66WY7KKF7YOBDQor66WY7LC97IiYDQor66WY7IiY7ZmYDQor66WY7YOc66qFDQor66WY7IiY6rOkDQor66WY7ZiE7Zi4DQor66WY7J207JuQDQor66WY7YOc66y4DQor66WY7Iq57YOcDQor66WY7JiB7ZmYDQor66WY67SJ7ISdDQor66WY7YOc7LaYDQor66WY7KCV7ISgDQor66WY7ZWE7IK8DQor66WY7JuQ7Zi4DQor66WY7ZWE7ISgDQor66WY7KCV7IiYDQor66WY7JiB7LC9DQor66WY7IOB6riwDQor66WY7ZW067O1DQor66WY67O16riwDQor66WY7IiY7ISxDQor66WY7IOB7LacDQor66WY7ZW07JaRDQor66WY64+Z7KO8DQor66WY6riw67SJDQor66WY7YyQ7IudDQor66WY7ZW07LaYDQor66WY7Zic7Zi4DQor66WY7IS47JewDQor66WY7Iug7IicDQor66WY7Zi464yADQor66WY7ISg7JqwDQor66WY7IOB66y0DQor66WY7KCV6re5DQor66eI7ISd7J28DQor66eI64+Z7ZiBDQor66eI7YOc7ISgDQor66eI7IOB7ISdDQor66e56rK96529DQor66e57KO87JilDQor66e56riI6recDQor66e57Zic6regDQor66qo7IOB7JiBDQor66qo7JWU7YOcDQor66qo7ZW07IiYDQor66qo7ISx6ri4DQor66qp7ISx7IiYDQor66qp64us6re8DQor66qp7ZmU6raMDQor66qp7J6s7YyUDQor66y46rCV66+8DQor66y47LKg7ZiEDQor66y46riw7YOcDQor66y46ri47ZGcDQor66y46rG07YOdDQor66y47KKF7KSADQor66y464+Z66eMDQor66y47JiB7JikDQor66y46rK97IigDQor66y47ZeM7Zi4DQor66y47ZW0642VDQor66y467O07Zi4DQor66y46rK97JWgDQor66y47Jqp6riwDQor66y464yA7JiBDQor66y47ISx64yADQor66y46rK97Zi4DQor66y466qF7IigDQor66y47JiB7ZmYDQor66y46rCV7JuQDQor66y46rK97Z2sDQor66y47J2E64yADQor66y46rOE7ISgDQor66y47Jew7IudDQor66y46rOE64KoDQor66y47KCQ7Je0DQor66y47J6s6riwDQor66y47J6s7IStDQor66y46rOE7ISgDQor66y47ISd7KSADQor66y47YyQ7ISdDQor66y47J6s7JikDQor66y46rSR7J6sDQor66y47IOB7LacDQor66y47IyN7JuQDQor66y47ZiV66y4DQor66y46rWQ7J21DQor66y47KO87J6QDQor66y47J6s7J6sDQor66y47KCV7IStDQor66y46rWs7J2YDQor66y46rWQ7LKgDQor66y47Jqp7IiYDQor66y47KKF7IiYDQor66y46reA7Je0DQor66y47YOc6riwDQor66y47ISd7YOcDQor66y47YOc6rK9DQor66y46re87IudDQor66y46rWw7IugDQor66y47LC97IudDQor66y47ZiE7YOcDQor66y46re87JiBDQor66y47KCV7Z2sDQor66y47J6s7IicDQor66y466eQ7IiYDQor66y46re87JiBDQor66y46re87ZuIDQor66y47YOc7ZWYDQor66y47JiB7ZicDQor66y46riw7IiYDQor66y47IiY7IiZDQor66y47ISx6rK9DQor66y47Jyk66qpDQor66y46riw7YOdDQor66y464yA7JqwDQor66y47KSA7Z2sDQor66y47Iq566eMDQor66y46riw7YOdDQor66y47ZW07YOdDQor66y47Iic6raMDQor66y47KeE67O1DQor66y464Ko7IudDQor66y47JiB7KCEDQor66y47IOB6riIDQor66y47KKF7Je0DQor66y464Ko7LKcDQor66y47IOB7YOdDQor66y47ZmN6rK9DQor66y47KCV7IudDQor66y464us7IiYDQor66y47IOB6rCBDQor66y47ZmN6rK9DQor66y464KZ7IicDQor66y464yA7Z2sDQor66y47KSR7Je0DQor66y467OR67SJDQor66y47ISx64+MDQor66y464+Z7IiYDQor66y47LC97IicDQor66y47JiB7IiYDQor66y47IiY6ri4DQor66y465GQ7Je0DQor66y47Jqp7YOcDQor66y47J246re8DQor66y47J286rK9DQor66y466eM7Je0DQor66y47IOB67O1DQor66y47JiB7KCVDQor66y47ISx7KCVDQor66y466eQ7JewDQor66y466qF7ZmYDQor66y466eQ7IudDQor66y466+464W4DQor66y466ek7J6QDQor66y47IOB67aEDQor66y47KSR7Je0DQor66y47J287JilDQor66y466e57KO8DQor66y47YOc7Zi4DQor66y47IOB64yADQor66y47ISd7Je0DQor66y466qF7JqpDQor66y47KKF7IudDQor66y47Z2s7JWgDQor66y464yA7JuQDQor66y466y07JewDQor66y47KCV7ISdDQor66y47JiB7ZmUDQor66y47KeE7ISgDQor66y466+47JiBDQor66y467OR7JWgDQor66y47KKF7ZaJDQor66y466eQ7IiYDQor66y467OR6re8DQor66y47KCV64KoDQor66y47ZWZ7ISdDQor66y467OR7IiZDQor66y467OR7J24DQor66y47JiB7KCQDQor66y464+E7KGwDQor66y47ZW06re8DQor66y467OR7KeADQor66y47IOB7ISgDQor66y47J286riwDQor66y46riI6recDQor66y467O16rOkDQor66y466qF7YOBDQor66y47JuQ7ZmUDQor66y47ISx7ZiBDQor66y467O17IicDQor66y467OR6riwDQor66y46rCR7ZuIDQor66y47J6s7IicDQor66y467O17Je0DQor66y47Iq57YOcDQor66y466qF7IOBDQor66y47Z2s7ZmYDQor66y47IOB64+EDQor66y47ISx7IiZDQor66y47ISg7ZqoDQor66y46rCR7IudDQor66y47IOB656YDQor66y47ISx7KeEDQor66y467OR67CxDQor66y47LC97Je0DQor66y47IOB66qoDQor66y467O16re8DQor66y46riw7Ja4DQor66y47KKF7IicDQor66y47IOB7ISdDQor66y466y47JqwDQor66y47IOB7J6sDQor66y47KCV6rK9DQor66y47IOB7IiYDQor66y464+Z7ZuIDQor66y47ISd6rK9DQor66y47YOc7KO8DQor66y47IOB7IiYDQor66y47JWI7ISxDQor66y46riw7IudDQor66y47LKg7IudDQor66y47IOB7Jq0DQor66y47J6s7KSRDQor66y47KKF7KGwDQor66y47IyN7JuQDQor66y47IOB7JuFDQor66y467O167O1DQor66y47ISx7IiZDQor66y47ZiE656YDQor66y47IOB7ZiEDQor66y47LaY7J6QDQor66y46riw7JuQDQor66y47JiB7Y+sDQor66y47IOB7Zi4DQor66y47YOc7J6QDQor66y46riw7ISgDQor66y47YyQ6rCVDQor66y47IOB7ZmUDQor66y47J6s7JikDQor66y467OR656ADQor66y47YOc7Zi4DQor66y47IOB7Z2gDQor66y47Jqp66OhDQor66y464KZ7IicDQor66y466+47ISgDQor66y47IOB7Z2sDQor66y467OR7ZmUDQor66y47IOB7J6QDQor66y47IiZ7J6QDQor66y47ISg64KoDQor66y47IaM7IiYDQor66y47JiB7ISxDQor66y46rec7KSADQor66y47ISg7Zi4DQor66y47KKF7ZmNDQor66y467SJ6rK9DQor66y47ISd7ZWcDQor66y47ISx7KSADQor66y464+Z7J6QDQor66y47IOB642VDQor66y47JyE7Zi4DQor66y47IS47Je0DQor66y466y47LacDQor66y47KO87YOBDQor66y46rK96rK9DQor66y47Iic6rWsDQor66y47J6l7IiYDQor66y47KeE7JuQDQor66y47Jil67mIDQor66y47Iic66GADQor66y47ZqM67CwDQor66y47Jqp67O1DQor66y47KSA66y4DQor66y47Iic7J6QDQor66y47IOB7IiYDQor66y47JiB7Ja1DQor66y47YOc7J28DQor66y47Iic7KGwDQor66y47ZmN66qFDQor66y466y47IicDQor66y47ISx7JewDQor66y47Iic7ZalDQor66y467SJ7IigDQor66y47YOc6riwDQor66y47ZaJ6ri4DQor66y47Iug7ZiEDQor66y47KeE7ISdDQor66y47ISx7KCEDQor66y46rSR7IigDQor66y47JaR7JuFDQor66y47YOc7J28DQor66y47JiB7IudDQor66y47YyQ7ZmYDQor66y47JiB67O1DQor66y47KKF6riwDQor66y467aE66eMDQor66y47Jyk7ISdDQor66y47JiB7IOBDQor66y47ISx7JWEDQor66y47ISx7JiBDQor66y47J247KSADQor66y47JiB7ISdDQor66y47ZKN7IudDQor66y47JuU6riwDQor66y46rK97Zi4DQor66y47JiB7JikDQor66y47J2A642VDQor66y47YOc7J6EDQor66y47J6s7JeFDQor66y47JiB7LGEDQor66y467OR7JuQDQor66y46riw6re8DQor66y47J247LC9DQor66y47JiB7Z2sDQor66y47IK86riwDQor66y47Jew7IiYDQor66y47IOB7Ja4DQor66y47Jik6rWQDQor66y47Jqp7IicDQor66y47Iah7IicDQor66y47YOc66y4DQor66y47Jil7KO8DQor66y47J6s7Zi4DQor66y4642V6reADQor66y47Z2s7J24DQor66y47Jio7IiZDQor66y47Jqp7YOcDQor66y47Jil656YDQor66y47KKF7IStDQor66y47Jqp7Jq0DQor66y47KCV7J2ADQor66y47ISk6rWtDQor66y47JiB7Zi4DQor66y47Jqw7ISgDQor66y47YOc7IudDQor66y47J247IStDQor66y47Kad7JqwDQor66y47JuF7Je0DQor66y47IiY7IiZDQor66y47LC97LacDQor66y47J247IiYDQor66y47JuQ7LacDQor66y47Iic7IiYDQor66y46rG0642VDQor66y47KKF6ri4DQor66y47J2A6riwDQor66y47J246rWtDQor66y464+E66qoDQor66y466qF642VDQor66y47J2A7IudDQor66y47JuQ7IudDQor66y46rK97ISxDQor66y47YOc7ISdDQor66y47J2E7IOdDQor66y47IaM7ZuIDQor66y47ISx7ZWZDQor66y47ISd7J6QDQor66y47J2R7ZWZDQor66y47J247IudDQor66y47Iug7ZWcDQor66y47Iq57JygDQor66y47J216riwDQor66y46rec7JuQDQor66y464Kc642VDQor66y47ISx6riwDQor66y47J246rOkDQor66y46riw7J6sDQor66y47ISx6regDQor66y47JiB7JilDQor66y47J246riwDQor66y467O16recDQor66y47IOB7LKgDQor66y467OR7Z2sDQor66y47J246riwDQor66y47L6M7LKcDQor66y47Jyk7Z2sDQor66y47IOB7IudDQor66y47J247IiYDQor66y47Iic7Zi4DQor66y47IOB7J6sDQor66y466+87J2YDQor66y47J287KO8DQor66y47IaM7Zi4DQor66y47JiB7ZW0DQor66y47KSR64uIDQor66y47J6l7Jq0DQor66y47JiB6rOkDQor66y47KCV7IicDQor66y47J6s7JqpDQor66y47J6l7Zi4DQor66y47LCs7JqxDQor66y47J6s6rWQDQor66y47JWI7KGwDQor66y47J6s7LKgDQor66y47L6M64+EDQor66y47Jqp7KSADQor66y46ri47KGwDQor66y47J6s7Z2sDQor66y46riw6rCRDQor66y47Zqo7KO8DQor66y47KKF7Zi4DQor66y47KCE6rWtDQor66y47J2A7JqpDQor66y466eM7JuQDQor66y467O17KGwDQor66y47KCE6rWtDQor66y47J217Z2sDQor66y47J6s7Z2sDQor66y47Z2s7Je0DQor66y47KCQ656RDQor66y47ZiE7ZiEDQor66y47JiB6rWQDQor66y465GQ7YOcDQor66y47KCQ67aEDQor66y464yA66+8DQor66y47Iic7ZmYDQor66y47Jyk7JilDQor66y47KCV6rWtDQor66y466eQ7KKFDQor66y47Jm47J6QDQor66y47J6s7IiYDQor66y47KCV67KUDQor66y47JiB7KeEDQor66y47YOc6recDQor66y46re867O1DQor66y47KCV67aEDQor66y47ISx7IiYDQor66y46rK97ZmUDQor66y47KKF7KKFDQor66y47KCV7ISgDQor66y47KeA67SJDQor66y47Jil6raMDQor66y47ISd7ZmYDQor66y47KCV7IiYDQor66y46riI7IiZDQor66y47KCV7Zi4DQor66y47JiB7IiYDQor66y47KCV7IicDQor66y47KCV7IudDQor66y47Jqw7KSADQor66y47J2Y7IiYDQor66y47KCV7IigDQor66y46rG06re8DQor66y466y466C5DQor66y47JiB6rWsDQor66y47KCV7J6QDQor66y47Jik7IicDQor66y47J6s7ISdDQor66y47KCV7JqwDQor66y47KCV7J6QDQor66y47J286rWtDQor66y47KKF6rG4DQor66y46rG07IiYDQor66y47KCV7J6QDQor66y47Jew6re8DQor66y46rK964+ZDQor66y46riw7LKgDQor66y47KCV7J6QDQor66y47ISx7IukDQor66y47Iic7JewDQor66y47J247ISdDQor66y47KCV7Z2sDQor66y47JuQ7KSADQor66y47IaM7ZiEDQor66y466qF7Zi4DQor66y47KKF656YDQor66y47LaU67SJDQor66y466qF7Je0DQor66y47J2Y7YOcDQor66y47KO87ISgDQor66y47JuQ7ZmNDQor66y467O17ZuIDQor66y47Zi47IiYDQor66y47KO87IStDQor66y47LC964KoDQor66y464yA7ZmYDQor66y47Jqp7JiBDQor66y47KO87KKFDQor66y466eM7KO8DQor66y47YOc7Je0DQor66y467OR7Zy0DQor66y47KO87Zi4DQor66y47J6E66eMDQor66y46rK97JikDQor66y47KKF7IiYDQor66y47LCo6rSADQor66y47ISg7ZmNDQor66y47YOc6rWQDQor66y47J6s7KGwDQor66y47LC9656YDQor66y47Lmg7J2ADQor66y466eQ7IiYDQor66y47Jqp7KSADQor66y47LC97IudDQor66y47KKF7JqpDQor66y47IOB7IiYDQor66y467OR7YOdDQor66y47LC97Je0DQor66y47J6s6recDQor66y4642V7IStDQor66y467OR7IudDQor66y47LC97Je0DQor66y47IKs7JewDQor66y466y07JqwDQor66y47KeE7JuQDQor66y47LKg7Jq0DQor66y47Jyh7ISdDQor66y47KeE7IudDQor66y47YOc6rWtDQor66y47LaY7JilDQor66y47IOB7ZWZDQor66y47KO86ri4DQor66y464W46rCRDQor66y47YyQ6raMDQor66y467aE64usDQor66y466eQ7Zi4DQor66y47ZW07ZuIDQor66y47YyQ7IicDQor66y47Iic7JewDQor66y467OR7J28DQor66y47JiB7YOdDQor66y47YyQ7JikDQor66y47KKF7IiYDQor66y47JuQ7Z2sDQor66y47IOB7ZWZDQor66y47YyU67SJDQor66y47JiB64WADQor66y466eM7ISdDQor66y47ZW07ISgDQor66y47ZWE7IicDQor66y47YOc7KO8DQor66y47ZWc7KSADQor66y47ISx7IOBDQor66y47ZWZ7KGwDQor66y47J247JiBDQor66y47J6s7KO8DQor66y46rK96raMDQor66y47ZaJ7ISxDQor66y464us7ISgDQor66y47J247KCVDQor66y47LaY7J28DQor66y47ZiE7J6QDQor66y47IK86raMDQor66y47Jqp7LC9DQor66y46rSR67KUDQor66y47Zi47IudDQor66y466eM7IiYDQor66y47KeA7KGwDQor66y465Od7IudDQor66y47ZmN7J6sDQor66y47KCV7ZWcDQor66y467aE7Z2sDQor66y46raB7KSADQor66y47ZmN7J6sDQor66y47KSR6riwDQor66y47ZW07ZmYDQor66y47Jqp7YOcDQor66y47ZmN7KO8DQor66y47Jqp7ZyYDQor66y47J6l67O1DQor66y47Jyk64+EDQor66y47ZmU7LaYDQor66y47Jyk64KcDQor66y464us7J6EDQor66y47KeE6rWwDQor66y47ZmY7KO8DQor66y46re87Zi4DQor66y464+Z7IOBDQor66y47J6s7IicDQor66y47Zqo7Je0DQor66y46riw7JWgDQor66y47IOB7J28DQor66y465Ox64KoDQor66y47Z2s6rWQDQor66y464us7ZmYDQor66y47KCV6re8DQor66y47ZW07ISdDQor66y47Z2s7ISxDQor66y47Jik7JilDQor66y467OR64+EDQor66y47ZmN7J6QDQor66y47Z2s7IicDQor66y47JiB7IiYDQor66y47Z2s67ORDQor66y47IOB7Zi4DQor66y47Z2s7IudDQor66y466y07LaYDQor66y46rK97ZmUDQor66y466+47Zi4DQor66y47Z2s7JewDQor66y47ISx7JuQDQor66y47IOB7Je0DQor66y47Iq57KO8DQor66y47Z2s7JuQDQor66y47ISx7LKgDQor66y47Jil6regDQor66y466eQ67aEDQor66+86rO17IudDQor66+87J287LKgDQor66+87JiB67O0DQor66+87Iug7KSADQor66+864+E6riwDQor66+87JuQ6ri4DQor66+87Jq07ISdDQor66+87ISx7ZuIDQor66+866y47Z2sDQor66+87IaM7KO8DQor66+87KKF7ZmYDQor66+87J2Y7JuQDQor66+867OR6riwDQor66+87Jyk7Z2sDQor66+87ZmN6re8DQor66+864+E7IiYDQor66+867OR66qpDQor66+867aE6rWsDQor66+87KKF7IicDQor66+867aA7KCVDQor66+867OR7ISxDQor66+86ri467O1DQor66+87IiY7IigDQor66+87KO87KKFDQor66+867OR7JikDQor66+87LC97IiYDQor66+864Ko7J6sDQor66+87ISd7Z2sDQor66+867OR7JikDQor66+87KeE7JqwDQor66+864yA67CxDQor66+86rCV7ZmYDQor66+867OR7JikDQor66+87LC97Zi4DQor66+867OR7JykDQor66+87Jqp7JqxDQor66+867OR7JqwDQor66+87KeE7JqpDQor66+87KCV66qpDQor66+87ISg7IicDQor66+867OR7JqxDQor66+87KCV7JyhDQor66+87YOc7IiZDQor66+87J6s7ZiEDQor66+867OR7LC9DQor66+87KCV7IaMDQor66+87JiB7J6sDQor66+87KCQ7JikDQor66+867OR7LKcDQor66+86rOE7ISdDQor66+87Jyg7J20DQor66+87ISx7ZuIDQor66+867OR7ZiEDQor66+87KO87JeFDQor66+87ZiE7ISdDQor66+86riw6riwDQor66+867O16riwDQor66+87IiZ7J28DQor66+87JiB6rWsDQor66+87KO87ZiEDQor66+867SJ6re8DQor66+8IO2DnA0KK+uvvO2DnOyglQ0KK+uvvOyDgeybkA0KK+uvvOyEneyhsA0KK+uvvOyDge2ajA0KK+uvvOyEseyLnQ0KK+uvvOyduOykgA0KK+uvvOyEseq4sA0KK+uvvO2XjO2drA0KK+uvvOyMje2YhA0KK+uvvO2YuOyImA0KK+uvvOyEseyerA0KK+uvvCDsiJgNCivrr7zsg4HtmIQNCivrr7zsmIHsl7ANCivrr7zsmIHsmrANCivrr7ztmLjrhYQNCivrr7zqsr3smqkNCivrr7zquLDssqANCivrr7zsnqzquLANCivrr7zshLHssKgNCivrr7zrp4zrr7wNCivrr7ztirntlqUNCivrr7zsoJDsiJgNCivrr7zso7zso7wNCivrr7wg6rWQDQor66+86rK97Zi4DQor66+87KKF7ISgDQor66+87J287JewDQor66+87J6s7IiZDQor66+866qF64yADQor66+87KeE64W4DQor66+87KCV6recDQor66+87ZaJ7ZmNDQor66+87Jqp6riwDQor66+87KeE7IiYDQor66+87J6s7ZmYDQor66+87JiB7JWUDQor66+87IK87IiYDQor66+87LCs7IudDQor66+867OR7Je0DQor66+87LKg7IiYDQor66+87IiY7ZmYDQor66+87LC97IudDQor66+87Jm465OdDQor66+87KCV7JiBDQor66+87ISd7J2ADQor66+87LKg7KeEDQor66+87J207IicDQor66+87KCV7IicDQor66+87IiY66eMDQor66+87YOc7IudDQor66+87Zic7IiYDQor66+87JuQ6recDQor66+87J6s6recDQor66+87Zal656ADQor66+87IOB7IudDQor66+87ZKN65OdDQor66+866y46rSADQor66+87ZiE7IiZDQor66+86rK97Z2sDQor66+87J6s66eMDQor66+87IOB7IiZDQor66+87Zic7JuQDQor66+87YOc7J6sDQor66+87KCV7IudDQor66+865Od7KSADQor67CVIOq1kA0KK+uwleyaqeyhsA0KK+uwleyduOq4sA0KK+uwleuvvOyEnQ0KK+uwlSDqt7wNCivrsJXshKDqt7wNCivrsJXsg4HsmKUNCivrsJXsiJjqtowNCivrsJUg7JilDQor67CV6rSR65OdDQor67CV7Jqp6rOkDQor67CV7Jqw7KGwDQor67CVIOyaqQ0KK+uwleycpOuNlQ0KK+uwleuzuOqzpA0KK+uwleyaqeq2jA0KK+uwlSDsmqkNCivrsJXtg5zqsr0NCivrsJXshJ3tlZkNCivrsJXqs4TshJ0NCivrsJUg7J2ADQor67CV6riw7J6sDQor67CV6rK97IiZDQor67CV7YOc7IicDQor67CVIO2biA0KK+uwle2YuO2drA0KK+uwleywrOyImA0KK+uwleuPhOyXtA0KK+uwleqwkeuPhA0KK+uwleycpOyLnQ0KK+uwleyEuOyInA0KK+uwleyEneq3nA0KK+uwleqwkeyDgQ0KK+uwleyerOyYpQ0KK+uwleuNleyasA0KK+uwleyLoOqwkQ0KK+uwleqwkeyEoA0KK+uwle2DnOuztQ0KK+uwle2VtO2YuA0KK+uwleybkO2ZlA0KK+uwleqwkeyImA0KK+uwleuPmeuPmQ0KK+uwleydvO2drA0KK+uwleuPmeyEnQ0KK+uwleqwkeyImA0KK+uwleuPmeyLnQ0KK+uwleqyve2YhA0KK+uwleyepeuqqA0KK+uwleqwkeyInA0KK+uwle2DnOuztQ0KK+uwleygle2VnA0KK+uwleyEseyImQ0KK+uwleqwkeyVhQ0KK+uwleuzke2DnA0KK+uwleyiheyasA0KK+uwleyEse2YhA0KK+uwleqwkeyjvA0KK+uwleyehOyInA0KK+uwle2YgeyInA0KK+uwleyijOq3vA0KK+uwleqwleuzuA0KK+uwley2qeq3vA0KK+uwle2DnOuNlQ0KK+uwleuMgOyXsA0KK+uwleqwleyhsA0KK+uwle2aqO2DnQ0KK+uwleydvOyIoA0KK+uwleyXsOyasA0KK+uwleqxtOuPmQ0KK+uwleqyve2YuA0KK+uwleq4sO2YuA0KK+uwleyYgeuPhA0KK+uwleqyveq3nA0KK+uwleyDgeyGjA0KK+uwleuzte2ZmA0KK+uwle2DnOyehA0KK+uwleqyveq4sA0KK+uwleyYgeq3vA0KK+uwleyEne2YhA0KK+uwleyduOq4uA0KK+uwleqyveuLrA0KK+uwleyduOyihQ0KK+uwle2VtOu0iQ0KK+uwleq4sOyImA0KK+uwleqyveuPmQ0KK+uwleycpOuemA0KK+uwleywrOyVhA0KK+uwleyepeq1rA0KK+uwleqyveuPmQ0KK+uwleyehOq3vA0KK+uwleygle2ZmA0KK+uwleygleyaqQ0KK+uwleqyveyEoA0KK+uwleyInOynhA0KK+uwleyDgeyduA0KK+uwleq1rOyXsA0KK+uwleqyveyImA0KK+uwleuzkeyyoA0KK+uwleq1reqyvQ0KK+uwleyjvOyImA0KK+uwleqyveyImA0KK+uwle2DnOuPmQ0KK+uwleuNley2nA0KK+uwleyYgeyEsQ0KK+uwleqyveyImA0KK+uwleyasO2drA0KK+uwleynhOyhsA0KK+uwley2mO2VnA0KK+uwleqyveyImA0KK+uwleyehOy2nA0KK+uwleyDgeyerA0KK+uwleuCtOyXsA0KK+uwleqyveyIoA0KK+uwleyiheyDnQ0KK+uwleq4sOyErQ0KK+uwleyYpeq4sA0KK+uwleqyveyXtA0KK+uwle2ZlOyVhA0KK+uwle2YleyalA0KK+uwleyXsOuwsA0KK+uwleqyveyYgQ0KK+uwleyyreyyoA0KK+uwleyngOyEnQ0KK+uwleq4uOybkA0KK+uwleqyveyaqQ0KK+uwleyYpOq4uA0KK+uwleuzkeyImA0KK+uwle2DnO2MkA0KK+uwleqyveyasA0KK+uwleyerOyasQ0KK+uwleuylO2ZlA0KK+uwleuvvOyyoA0KK+uwleqyveybkA0KK+uwleuzkeyasA0KK+uwleuqheyEnQ0KK+uwleuNleyEnQ0KK+uwleqyveyerA0KK+uwleq3nOyynA0KK+uwleu0ieyEnQ0KK+uwleuzkeyEnQ0KK+uwleqyveyhsA0KK+uwle2ZjeusuA0KK+uwleywvey2nA0KK+uwleq4iOyImA0KK+uwleqyveykgA0KK+uwleunjOyerA0KK+uwleyMje2YhA0KK+uwleybkOy2mA0KK+uwleqyvey2nA0KK+uwleq0ke2OuA0KK+uwleyerOyEnQ0KK+uwleyatOqyvQ0KK+uwleqyve2YuA0KK+uwleyInOyglQ0KK+uwleyDgeq3vA0KK+uwleunjOyImA0KK+uwleqyve2YuA0KK+uwleuqheq3vA0KK+uwleyLoOyekA0KK+uwleynhOyImA0KK+uwleqyve2ZlA0KK+uwleycpOyyoA0KK+uwleq3vOyXtA0KK+uwleqwkeyImA0KK+uwleqyve2drA0KK+uwleydgOudvQ0KK+uwle2ZjeyImQ0KK+uwleydkeyaqQ0KK+uwleqzhOunjA0KK+uwleyEuOyInA0KK+uwleqyveuTnQ0KK+uwle2VmeyLrA0KK+uwleqzhOyInA0KK+uwle2VmOuTsQ0KK+uwleqyveygkA0KK+uwleusuOybkA0KK+uwleqzhOyInA0KK+uwleyjvO2YuA0KK+uwle2YleyynA0KK+uwle2VhOyYgQ0KK+uwleqzhOyInA0KK+uwle2DnOyLnQ0KK+uwleyerOyEoA0KK+uwle2MkOusuA0KK+uwleqzhOyWkQ0KK+uwleyerO2ZmA0KK+uwleyCrOyekA0KK+uwleyyoOyhsA0KK+uwleqzoOycpA0KK+uwleuPhOunjA0KK+uwleyYge2YuA0KK+uwleuvuOyyoA0KK+uwleqzoeyngA0KK+uwleyDge2DnA0KK+uwleykkeyImA0KK+uwle2XjOyEoA0KK+uwleq0gOyasQ0KK+uwleq4sOuNlQ0KK+uwle2ZmO2DnA0KK+uwleynhOuemA0KK+uwleq0keq3vA0KK+uwleu0ieyynA0KK+uwleyYgeq4sA0KK+uwle2YleyLnQ0KK+uwleq0keq3vA0KK+uwleywrOuPjA0KK+uwle2cmOyynA0KK+uwleyYgeyhsA0KK+uwleq0keq4sA0KK+uwlSDsp4QNCivrsJXstpTsmqkNCivrsJXsm5TssKgNCivrsJXqtJHrsLANCivrsJXtg5ztg5wNCivrsJXrrLjslZQNCivrsJXsooXsiJkNCivrsJXqtJHrsLANCivrsJXslpHrnpgNCivrsJXrs5Htg5wNCivrsJXsmrDshJ0NCivrsJXqtJHruYgNCivrsJXsooXrjZUNCivrsJXrqoXtmLgNCivrsJXqtJHsiJgNCivrsJXqtJHshJ0NCivrsJXtmITsiJgNCivrsJXsoJXrj4QNCivrsJXsooXrjZUNCivrsJXqtJHshKANCivrsJXquLDqs6QNCivrsJXrj5nrj4QNCivrsJXtg5zsmqkNCivrsJXqtJHsiJgNCivrsJXrs5Hrj4QNCivrsJXstpjshJ0NCivrsJXqs4TsiJgNCivrsJXqtJHsiJgNCivrsJXsg4HrqqgNCivrsJXtg5zsiJgNCivrsJXshLHquLgNCivrsJXqtJHsl7QNCivrsJXtlYTrjZUNCivrsJXshLHqs6QNCivrsJXsiJzrnb0NCivrsJXqtJHsl7QNCivrsJXsiJzquLANCivrsJXssL3shK0NCivrsJXsooXroKwNCivrsJXqtJHsmqkNCivrsJXrp4zsiJgNCivrsJXshJ3tj6wNCivrsJXsnYDsoJUNCivrsJXqtJHsmqkNCivrsJXquLDqt7wNCivrsJXtmY3rjZUNCivrsJXssL3qt7wNCivrsJXqtJHsmrENCivrsJXspJHsl7ANCivrsJXtlYTsoJUNCivrsJXtmZjsl7QNCivrsJXqtJHsp4QNCivrsJXsoJXrjZUNCivrsJXstpjstpwNCivrsJXtg5zroKgNCivrsJXqtJHsp4QNCivrsJXqt5zstpgNCivrsJXqtJHrqqgNCivrsJXrs5Hsl7ANCivrsJXqtJHtmLgNCivrsJXrrLTtl4wNCivrsJXsooXsiJwNCivrsJXshLHquLANCivrsJXqtJHtm4gNCivrsJXsuaDtm4gNCivrsJXrqoXtmLgNCivrsJXsspzsi50NCivrsJXqtZDssKwNCivrsJXrjZXqt7wNCivrsJXsiJzsiJgNCivrsJXsiJnsi50NCivrsJXqtazsl7QNCivrsJXsnYTsobANCivrsJXrp5DshJ0NCivrsJXssKjtmZgNCivrsJXqta3so7wNCivrsJXsl7DsiKANCivrsJXsg4HtnawNCivrsJXsg4HsnbQNCivrsJXqt4DsiJwNCivrsJXsmKXtmLgNCivrsJXsiJjsp4QNCivrsJXsg4HsnqUNCivrsJXqt4DtmZgNCivrsJXtg5zrsLANCivrsJXshLHqs6QNCivrsJXrp5DsooUNCivrsJXqt5zqt7wNCivrsJXtmY3siJgNCivrsJXssL3sl7ANCivrsJXtg5zrkZANCivrsJXqt5zrp4wNCivrsJXqsJHsp4QNCivrsJXsirntmLgNCivrsJXqsJXspIANCivrsJXqt5zrtIkNCivrsJXso7zsiKANCivrsJXsnbjsnKgNCivrsJXsnYDsiJgNCivrsJXqt5zsnbQNCivrsJXsg4Htm4gNCivrsJXshLjsl7ANCivrsJXsoJXso7wNCivrsJXqt5zsspwNCivrsJXsmIHtg50NCivrsJXrs5HsiJwNCivrsJXspJHro6ENCivrsJXqt5ztlZkNCivrsJXsmKXsnpANCivrsJXshLHsi50NCivrsJXtlZnsmrANCivrsJXqt5ztnaANCivrsJXrkZDtmLgNCivrsJXstqntmLgNCivrsJXssL3tmZgNCivrsJXqt7zrjZUNCivrsJXsg4HsmYQNCivrsJXrhbjshLENCivrsJXrj5ntmIQNCivrsJXqt7zrsLANCivrsJXsmIHsp4QNCivrsJXsmIHtmLgNCivrsJXsmrDqta0NCivrsJXqt7zrsLANCivrsJXquLDrjZUNCivrsJXrs7Xsg4ENCivrsJXsoJXsnpANCivrsJXqt7zsiJwNCivrsJXtg5zrsLANCivrsJXsg4HsnbwNCivrsJXrqoXri6wNCivrsJXqt7zsi50NCivrsJXqsr3shKANCivrsJXquLDspIANCivrsJXrs7XtnawNCivrsJXqt7zsmIENCivrsJXshLHsnqwNCivrsJXrtoDtmZgNCivrsJXsl7Dqt5wNCivrsJXqt7zsmrANCivrsJXsiJzsiJkNCivrsJXtlZztmLgNCivrsJXrrLTsmIENCivrsJXqt7zsnKQNCivrsJXshozsmrANCivrsJXsoJXqt5wNCivrsJXsg4HtmowNCivrsJXqt7zsnKQNCivrsJXrs7TtmLgNCivrsJXquLjsl7ANCivrsJXsmIHrqoUNCivrsJXqt7zsnpANCivrsJXsg4HsiJgNCivrsJXsoJXsl7QNCivrsJXtmITtnawNCivrsJXqt7ztlbQNCivrsJXshJ3ssqANCivrsJXri6zrnoANCivrsJXsmqnsi50NCivrsJXqt7ztmZQNCivrsJXsgqzslZQNCivrsJXtmZjsooUNCivrsJXquLDsg4ENCivrsJXqt7ztnawNCivrsJXrp4zshJ0NCivrsJXri7TsiJgNCivrsJXsnbjspIANCivrsJXquIjshJ0NCivrsJXsiJntmY0NCivrsJXshLHrs5ENCivrsJXssL3si50NCivrsJXquIjsl7ANCivrsJXsiJzsnpANCivrsJXsooXqs6QNCivrsJXssL3qtIANCivrsJXquIjso7wNCivrsJXsmqnsmYQNCivrsJXstpjsi50NCivrsJXsirnsi50NCivrsJXquLDqs6QNCivrsJXrr7zsnbQNCivrsJXsoJXtm4gNCivrsJXsmIHsiJwNCivrsJXquLDrqqgNCivrsJXso7zsiJwNCivrsJXqt5zsmIENCivrsJXtg5zqs4QNCivrsJXquLDrrLgNCivrsJXrgpnsnbQNCivrsJXqsr3snpANCivrsJXsirnrk50NCivrsJXquLDrtIkNCivrsJXshLHsmKQNCivrsJXquIjtmLgNCivrsJXquIjsiJwNCivrsJXquLDrtIkNCivrsJXsmIHsi50NCivrsJXsgrzsgrwNCivrsJXsnYDtmZgNCivrsJXquLDshLENCivrsJXsnpDshJ0NCivrsJXssqDtl4wNCivrsJXqsbTsm5ANCivrsJXquLDshLENCivrsJXqsJHrjZUNCivrsJXsnqzsooUNCivrsJXquLDsiJgNCivrsJXquLDsiJwNCivrsJXrjIDrj5kNCivrsJXrr7zsl7ANCivrsJXsmbjqsr0NCivrsJXquLDsmKUNCivrsJXsnqzrtIkNCivrsJXsmIHtmZQNCivrsJXtg5zssqANCivrsJXquLDsmYQNCivrsJXsm5DshKANCivrsJXsnqztg50NCivrsJXsiJzsl7QNCivrsJXquLDsm5ANCivrsJXsmIHqt7wNCivrsJXtg5zqsr0NCivrsJXsmIHshJ0NCivrsJXquLDsm5ANCivrsJXsmIHsl6wNCivrsJXsp4TtnawNCivrsJXsmIHtmLgNCivrsJXquLDsoJUNCivrsJXsvozshJ0NCivrsJXsnqztg5wNCivrsJXrs5HshJ0NCivrsJXquLDsooUNCivrsJXtmZTtnawNCivrsJXtlZnsmIENCivrsJXsnbjtg5wNCivrsJXquLDtg5wNCivrsJXrs5Htg5wNCivrsJXtmITsmrANCivrsJXsmIHtg5wNCivrsJXquLDtg5wNCivrsJXsmrDtg5wNCivrsJXsiJjrp4wNCivrsJXsnbzsiJwNCivrsJXquLDtg5wNCivrsJXrjIDsiJwNCivrsJXqs4TsnbUNCivrsJXslYjso7wNCivrsJXquLDtg50NCivrsJXtg5zqsJENCivrsJXsm5DrspQNCivrsJXsooXtmIQNCivrsJXquLDtmIQNCivrsJXquLDquLANCivrsJXrj4TsnqwNCivrsJXsspzssKwNCivrsJXquLDtmIQNCivrsJXtmLjshKANCivrsJXsnqXshK0NCivrsJXqsJHrp4wNCivrsJXquLDtmY0NCivrsJXquIjsnbUNCivrsJXsmIHqtZANCivrsJXrj4Tqt5wNCivrsJXquLDtmY0NCivrsJXsg4HtnawNCivrsJXsl7Dso7wNCivrsJXspJHsnbgNCivrsJXquLDtmY0NCivrsJXquLDsiJgNCivrsJXqt5ztnawNCivrsJXsg4HtnaANCivrsJXquLDtmY0NCivrsJXso7zsnbwNCivrsJXsg4HssKwNCivrsJXrr7zrp4wNCivrsJXquLDtmZQNCivrsJXsmqntj4kNCivrsJXsnqztnaANCivrsJXsoJXtmZgNCivrsJXquLDtm4gNCivrsJXrs5HtmLgNCivrsJXsirnqtowNCivrsJXrr7jtmZQNCivrsJXquLjtmqgNCivrsJXqsr3rjZUNCivrsJXsoJXsmYQNCivrsJXshLHsobANCivrsJXrgpntlZgNCivrsJXssKjrsLANCivrsJXsooXsiJwNCivrsJXspIDroYANCivrsJXrgqjshJ0NCivrsJXqsr3qtowNCivrsJXrp4zsoJUNCivrsJXsiJzsiJgNCivrsJXrgqjsiJkNCivrsJXssL3qt5wNCivrsJXtmLjsobANCivrsJXtlZnshK0NCivrsJXrgqjsi50NCivrsJXtjJDrj5kNCivrsJXqtJHsmrQNCivrsJXsoJXtg5wNCivrsJXrgqjsoJUNCivrsJXsnYTsnbwNCivrsJXsiJztmowNCivrsJXtg5zsp4QNCivrsJXrhbjqsJENCivrsJXsg4HtmZQNCivrsJXsmIHsi50NCivrsJXsoJXsnpANCivrsJXrhbjqsJENCivrsJUg6re8DQor67CV66+47KSADQor67CV7J6s7KO8DQor67CV64W46raMDQor67CV6riw7KeEDQor67CV7Zi47ZuIDQor67CV64yA7IudDQor67CV64W46riwDQor67CV7ISx7ISgDQor67CV7ISd7JqpDQor67CV66eM67KUDQor67CV64W466eMDQor67CV7JyE7JilDQor67CV7ISx6rK9DQor67CV7KeE7ZWEDQor67CV64W467aEDQor67CV7J6s7JilDQor67CV7IOB7J6QDQor67CV7YyU67CwDQor67CV64W47IicDQor67CV7ISx642VDQor67CV64us7Zi4DQor67CV7JiB642VDQor67CV64W47IugDQor67CV7IiZ7ZiEDQor67CV7YOc7IiYDQor67CV7YOc7ZiBDQor67CV64W47Je0DQor67CV7IiY7ZicDQor67CV7Je87ISdDQor67CV7KCV67aEDQor67CV64W47JiBDQor67CV6rSR64+ZDQor67CV7Ius66OhDQor67CV6rK97Zi4DQor67CV64W47JqpDQor67CV7J246recDQor67CV7J2464+EDQor67CV7JiB7IOdDQor67CV64W47JykDQor67CV7ZmN6recDQor67CV7KKF7Zi4DQor67CV7Jil67CwDQor67CV64W47JykDQor67CV7JiB7KSADQor67CV7JiB7JqpDQor67CV7ZWZ6re8DQor67CV64W47KCVDQor67CV7JuQ6recDQor67CV7Iic7IicDQor67CV7Jq07JykDQor67CV64W47LKgDQor67CV7J6s6rK9DQor67CV64+Z7ZGcDQor67CV7IS464+EDQor67CV64W47ZWZDQor67CV7LC97IiYDQor67CV7Iic7IOBDQor67CV7J2Y7IiYDQor67CV64W47ZiEDQor67CV7KKF7Zi4DQor67CV7KCV7JuFDQor67CV7KSA7JqpDQor67CV64W47ZmUDQor67CV7YOc7IigDQor67CV7J6E6recDQor67CV6rK96recDQor67CV64us6recDQor67CV7KCV7J28DQor67CV6re87IStDQor67CV7LC97KSADQor67CV64us7ISgDQor67CVIOyImQ0KK+uwleq2jOyInA0KK+uwleu0ieu0iQ0KK+uwleuLrOyImA0KK+uwleygleyEsQ0KK+uwleuNle2YuA0KK+uwleuPmeyehA0KK+uwleuLrOyaqQ0KK+uwleuFuO2ZjQ0KK+uwle2VnOyekA0KK+uwleyEneyInA0KK+uwleuLrO2ajA0KK+uwleygle2ZmA0KK+uwleybkOyEoA0KK+uwleuLrOuCqA0KK+uwleuMgOyEsQ0KK+uwleyerOyekA0KK+uwle2VtOyjvA0KK+uwleyYgeu0iQ0KK+uwleuMgOyEsQ0KK+uwleygleydvA0KK+uwleyZleyekA0KK+uwleynhO2YuA0KK+uwleuMgOyEsQ0KK+uwleywveyImA0KK+uwleqwkeyEsQ0KK+uwle2Yle2DnA0KK+uwleuMgOyEsQ0KK+uwleq3vOyyoA0KK+uwleywveq3vA0KK+uwleq4uOyEoA0KK+uwleuMgOyLnQ0KK+uwleyDgeyXtA0KK+uwleyEseyhsA0KK+uwleuzkeydvA0KK+uwleuMgOyLnQ0KK+uwleqyve2YuA0KK+uwle2DnOyYpQ0KK+uwleq4sOykgA0KK+uwleuMgOybkA0KK+uwleyImOyLpA0KK+uwleuqheyekA0KK+uwleuqhe2DnA0KK+uwleuMgOyyoA0KK+uwleuPmeyYgQ0KK+uwle2Vme2YuA0KK+uwleq3nOq4sA0KK+uwleuMgO2YlQ0KK+uwle2biOyVlA0KK+uwleyYpOyhsA0KK+uwleyiheuztQ0KK+uwleuNleq3vA0KK+uwle2MkOyyoA0KK+uwleyCvOyekA0KK+uwle2DnOq1rA0KK+uwleuNleyInA0KK+uwle2YuOu0iQ0KK+uwleyepeq4sA0KK+uwleqyveuCqA0KK+uwleuNleyVlA0KK+uwleuPmeyaqQ0KK+uwleyImOyEoA0KK+uwleycpOy2mA0KK+uwleuNleydtA0KK+uwleynhOuNlQ0KK+uwleyWteyEsQ0KK+uwleyYpeyLnQ0KK+uwleuPhOq4iA0KK+uwleqzhOyyoA0KK+uwleydgO2ZmA0KK+uwleyepeybkA0KK+uwleuPhOyEoA0KK+uwleygnOyasA0KK+uwleyYgeyYgQ0KK+uwle2YhOyImA0KK+uwleuPhO2ZmA0KK+uwleq3nO2ZlA0KK+uwleyatOyLnQ0KK+uwle2VmOyImQ0KK+uwleuPhO2ZmA0KK+uwleyduO2YuA0KK+uwleyYge2YuA0KK+uwleyaqeusuA0KK+uwleuPiO2XjA0KK+uwleyYgeydvA0KK+uwleygleq4sA0KK+uwleuMgO2VmA0KK+uwleuPmeq3vA0KK+uwleu0ieq4sA0KK+uwleq3oO2YuA0KK+uwleyaseu2hA0KK+uwleuPmeq4uA0KK+uwleyEuO2DnQ0KK+uwleyyreyerA0KK+uwle2VhO2DnA0KK+uwleuPmeuqhQ0KK+uwleuNleyInA0KK+uwleq0keyasA0KK+uwleyihe2YhA0KK+uwleuPmeuqhQ0KK+uwleyDgeuPjA0KK+uwleygle2DnA0KK+uwleyYgeq3nA0KK+uwleuPmeyEsQ0KK+uwleq4iOq3nA0KK+uwleuzkeqyvQ0KK+uwleqyveyXsA0KK+uwleuPmeyImA0KK+uwleyiheydvA0KK+uwleyYgeyekA0KK+uwleuMgOqzpA0KK+uwleuPmeyImA0KK+uwle2YnOyEoA0KK+uwleyDge2YuA0KK+uwle2drOyLnQ0KK+uwleuPmeyImA0KK+uwleuzke2ZlA0KK+uwleydmOydtA0KK+uwleyaqeyEoA0KK+uwleuPmeyImQ0KK+uwleq0keydvA0KK+uwleyasO2ZmA0KK+uwleq0ke2RnA0KK+uwleuPmeyLnQ0KK+uwleqyveyyoA0KK+uwleyiheydvA0KK+uwleuqheyngQ0KK+uwleuPmeyLnQ0KK+uwleyatOyInA0KK+uwleyEseyImQ0KK+uwleyDgeuvvA0KK+uwleuPmeyXtA0KK+uwleu0ieuztQ0KK+uwleq3vOyhsA0KK+uwleuqheykgA0KK+uwleuPmeyXtA0KK+uwleygleyLnQ0KK+uwleyLoOyIoA0KK+uwleyasOyyoA0KK+uwleuPmeyYgQ0KK+uwleuzkeyEoA0KK+uwleygleyYpQ0KK+uwleuCmeydtQ0KK+uwleuPmeyaqQ0KK+uwleyEneyglQ0KK+uwleq4sOuPmQ0KK+uwleyYpe2YuA0KK+uwleuPmeyasQ0KK+uwleyYgeyLnQ0KK+uwleuMgO2YhA0KK+uwley2qe2DnQ0KK+uwleuPmeyatA0KK+uwleuzteydtA0KK+uwleyiheunjA0KK+uwleq4sOyhsA0KK+uwleuPmeydvA0KK+uwleyerO2YlQ0KK+uwleunkOyImA0KK+uwleqzhOyImA0KK+uwleuPmeydvA0KK+uwleyDgeyXsA0KK+uwle2DnOq4sA0KK+uwleygkOyInA0KK+uwleuPmeyekA0KK+uwleyaqeuNlQ0KK+uwleuNleq1rA0KK+uwleyYgeugqA0KK+uwleuPmeyglQ0KK+uwleygleq3vA0KK+uwleyDge2VnA0KK+uwle2drO2YuA0KK+uwleuPmeykgA0KK+uwleyerOyEsQ0KK+uwleqyveyEsQ0KK+uwleuNleyLpA0KK+uwleuPmeykgA0KK+uwleyYgeygnA0KK+uwleuCqOyasQ0KK+uwleyaqe2ZmA0KK+uwleuPmeykgA0KK+uwle2VtO2drA0KK+uwleyerOyasA0KK+uwleunkOuwsA0KK+uwleuPmeyynA0KK+uwleyyoOycqA0KK+uwleqwleq3vA0KK+uwleyDgeydvA0KK+uwleuPmeyyoA0KK+uwleqwke2ZmA0KK+uwleyYgeuTnQ0KK+uwleusuOyXtA0KK+uwleuPmeyyoA0KK+uwleyYgeu0iQ0KK+uwleyYgeyImA0KK+uwle2MkO2YhA0KK+uwleuPmey2mA0KK+uwleyduOyYgQ0KK+uwleygleq3nA0KK+uwleydhOqzoA0KK+uwleuPme2XjA0KK+uwle2DneydvA0KK+uwleyDgeyasA0KK+uwleycpOyYgQ0KK+uwleuRkOyaqQ0KK+uwleyEseuNlQ0KK+uwleygle2ZlA0KK+uwleyInOyImQ0KK+uwleuRkOydtQ0KK+uwleydmOydtA0KK+uwleqwkeuvvA0KK+uwle2DnOyIoA0KK+uwleuRkO2XjA0KK+uwleunjOyghA0KK+uwleq0gOybkA0KK+uwleykgOyYpQ0KK+uwleuRkO2YuA0KK+uwley5mOyLnQ0KK+uwleq1kO2YuA0KK+uwleywve2ZmA0KK+uwleuRkO2ZmA0KK+uwleyYgeusuA0KK+uwleyYgeunjA0KK+uwleyaqe2ZmA0KK+uwleuRkO2drA0KK+uwleygkOyYgQ0KK+uwleuFuOyInA0KK+uwleyerO2YhA0KK+uwleuTneq3vA0KK+uwleynhOyImA0KK+uwleyEoOyLnQ0KK+uwleyInOyLnQ0KK+uwleuemO2VmA0KK+uwleywveyLnQ0KK+uwleq4sOyaqQ0KK+uwleyerO2aqA0KK+uwleunieuemA0KK+uwleq4uO2YuA0KK+uwleusuOyLnQ0KK+uwlSDsiJgNCivrsJXrp4zqt5wNCivrsJXsoJXshJ0NCivrsJXtnazsiJwNCivrsJXsoJXsnpANCivrsJXrp4zqt5wNCivrsJXsg4HtnawNCivrsJXsoJXspIANCivrsJXqt4DsmrQNCivrsJXrp4zshJ0NCivrsJXsmIHssYQNCivrsJXrp5DsmIENCivrsJXrs5HqsJENCivrsJXrp4zsiJgNCivrsJXsnqztnawNCivrsJXtmZTsm4UNCivrsJXtmITsmKQNCivrsJXrp4zsiJgNCivrsJXtg5zshJ0NCivrsJXtmITsmqkNCivrsJXsmrHqt5wNCivrsJXrp4zsiJgNCivrsJXsooXsmqkNCivrsJXrj5nssqANCivrsJXrs5HrjIANCivrsJXrp4zsi6wNCivrsJXtg5zsm5ANCivrsJXtlZzrj5kNCivrsJXtlbTtmZgNCivrsJXrp4zsoJUNCivrsJXtnazsmqkNCivrsJXsmIHsiJwNCivrsJXtg5zsooUNCivrsJXrp4zsobANCivrsJXsnbztmLgNCivrsJXshozqsr0NCivrsJXsiJjqs6QNCivrsJXrp4zstpwNCivrsJXsmIHtlZkNCivrsJXrs5HsmIENCivrsJXrrLTso7wNCivrsJXrp4ztnaANCivrsJXsoJXsuZkNCivrsJXqs4TroKwNCivrsJXsm5Tsi50NCivrsJXrp5DsiJgNCivrsJXqt5ztnawNCivrsJXtlbTstpwNCivrsJXrjIDstIgNCivrsJXrp5DsiJwNCivrsJXsnYDsiJgNCivrsJXsmqnqt5wNCivrsJXssKjsobANCivrsJXrp5DsiJwNCivrsJXrs7TsnbQNCivrsJXshLHtmIQNCivrsJXrs5HshJ0NCivrsJXrp5DsobANCivrsJXsnYTsl7QNCivrsJXsirnrgqgNCivrsJXqt5zsmrQNCivrsJXrp5DstpwNCivrsJXtg5zsiJgNCivrsJXsoJDtlZkNCivrsJXtg5ztlqUNCivrsJXrp5DtlZwNCivrsJXshozqt5wNCivrsJXsiJzqt7wNCivrsJXsiKDrqqgNCivrsJXrqoXrj4wNCivrsJXqta3spIANCivrsJXsoJXquLgNCivrsJXqt5zsp4QNCivrsJXrqoXrtIkNCivrsJXsnqXsmqkNCivrsJXqtJHshKANCivrsJXtlZzqsr0NCivrsJXrqoXsi50NCivrsJXtl4zssqANCivrsJXsoJXso7wNCivrsJXqsr3smKUNCivrsJXrqoXsmKUNCivrsJXssqDsiJkNCivrsJXsnYTtmIQNCivrsJXsnoTtkZwNCivrsJXrqoXsmqkNCivrsJXssKjtmZgNCivrsJXtlbTtlZwNCivrsJXssqDtg50NCivrsJXrqoXsnoQNCivrsJXrr7ztg50NCivrsJXtmZTsl7QNCivrsJXsooXsmIENCivrsJXrqoXsp4QNCivrsJXsm5DsnqwNCivrsJXtmY3tnawNCivrsJXtlZzsmIENCivrsJXrqoXssqANCivrsJXsg4HsiJgNCivrsJXsp4TshKANCivrsJXrjZXqtZANCivrsJXrqoXtlZwNCivrsJXtla3quLANCivrsJXspJHsuaANCivrsJXrs5HsiJgNCivrsJXrqoXtmLgNCivrsJXrjIDroZ0NCivrsJXsoJDsmqkNCivrsJXrs7Tsl7QNCivrsJXrqoXtmLgNCivrsJXsnqzsiJgNCivrsJXqsr3shK0NCivrsJXsiJjqtawNCivrsJXrqoXtmowNCivrsJXsnYDsnpANCivrsJXtg5zri6wNCivrsJXsooXrnoANCivrsJXrqoXtnawNCivrsJXrs5HsmKQNCivrsJXrrLTsiJwNCivrsJXsmIHssqANCivrsJXrrJjrhYQNCivrsJXsjI3qs6QNCivrsJXsmIHrj4wNCivrsJXsooXsiJgNCivrsJXrrLTquLgNCivrsJXslrjsnZENCivrsJXsoJXshJ0NCivrsJXrr7jtm4gNCivrsJXrrLTsm4UNCivrsJXsoJDsm5ANCivrsJXtg5zsmqkNCivrsJXssKjsiJgNCivrsJXrrLTsm4UNCivrsJXqtJHsp4QNCivrsJXqt5zsmrQNCivrsJXtmY3smqkNCivrsJXrrLTtmLgNCivrsJXssKjssKwNCivrsJXspIDshJ0NCivrsJXsg4HrjZUNCivrsJXrrLTtmZgNCivrsJXsooXquLANCivrsJXqsJHsmqkNCivrsJXqt4Dqt7kNCivrsJXrrLjqsJENCivrsJXrqoXqt7wNCivrsJXtmJXsmrANCivrsJXqtJHsi50NCivrsJXrrLjqtowNCivrsJXtjJDrtoQNCivrsJXrjIDsm5ANCivrsJXsmKXtmIQNCivrsJXrrLjqt5wNCivrsJXrs5HtmZgNCivrsJXtmY3ssqANCivrsJXsl4XshKANCivrsJXrrLjsiJgNCivrsJXsiJjtmLgNCivrsJXsmIHsi50NCivrsJXshKTsnKQNCivrsJXrrLjsi50NCivrsJXtlbTroKgNCivrsJXtlYTsl6wNCivrsJXsnYDsi50NCivrsJXrrLjsobANCivrsJXsmIHsiJgNCivrsJXrs5HsoJUNCivrsJXrs7TrqoUNCivrsJXrrLjsobANCivrsJXsmrTsiJwNCivrsJXshLHtmLgNCivrsJXsspzslYUNCivrsJXrrLjssqANCivrsJXtnazssqANCivrsJXrs5HsmIENCivrsJXso7zsnbQNCivrsJXrrLjtmLgNCivrsJXshLHslYUNCivrsJXsmqnroKgNCivrsJXtg5zsnbwNCivrsJXrrLjtnawNCivrsJXtjJDsooUNCivrsJXshJ3tmJUNCivrsJXrj5nssqANCivrsJXrr7jsnpANCivrsJXshLHquLANCivrsJXtlbTsiJwNCivrsJXtg5zqt5wNCivrsJXrr7jsnpANCivrsJXsnITrj4QNCivrsJXqsJXrsLANCivrsJXtlZzqtawNCivrsJXrr7jsnpANCivrsJXsoJXsmrQNCivrsJXsmIHrjZUNCivrsJXssL3tnawNCivrsJXrr7jsoJUNCivrsJXshLHtmLgNCivrsJXsg4HtmIQNCivrsJXsooXsmIENCivrsJXrr7jtmZQNCivrsJXsmKTtnawNCivrsJXsoJXtmIQNCivrsJXsiKDsobANCivrsJXrr7zsmrANCivrsJXsp4Tsi50NCivrsJXshLHrp4wNCivrsJXssKjqsr0NCivrsJXrsKnsnpANCivrsJXshLHtmZQNCivrsJXrjZXtj4kNCivrsJXsoJzqtawNCivrsJXrspTtg5wNCivrsJXrs5HsiJgNCivrsJXsjI3rjIANCivrsJXsoJXtmLgNCivrsJXrs5HqtawNCivrsJXrs5HsnqwNCivrsJXrgqjsmIENCivrsJXtg5zroZwNCivrsJXrs5Hqt7wNCivrsJXquLDsiJgNCivrsJXsoJXtnawNCivrsJXqsr3tnawNCivrsJXrs5HquLANCivrsJXrqoXssL0NCivrsJXsooXsiJwNCivrsJXsnYDshKANCivrsJXrs5HquLANCivrsJXqtJHrs7QNCivrsJXtmZTsi50NCivrsJXrr7jrnpgNCivrsJXrs5HquLANCivrsJXsmKXsnpANCivrsJXtg5zsl7QNCivrsJXrjIDrtIkNCivrsJXrs5HrgqgNCivrsJXshJ3qsr0NCivrsJXsmqnsnbQNCivrsJXsmIHsiJgNCivrsJXrs5Hrpr0NCivrsJXsmqntlZwNCivrsJXsp4TqtawNCivrsJXsoJXquLANCivrsJXrs5HrqqkNCivrsJXsoJDsnbwNCivrsJXtmITrr7wNCivrsJXsmIHtmZgNCivrsJXrs5HshKANCivrsJXsiKDsi50NCivrsJXsirnsnKgNCivrsJXrs5HsnpANCivrsJXrs5HsiJwNCivrsJXquIjsnpANCivrsJXqsr3smrQNCivrsJXsnqzssqANCivrsJXrs5HsmqkNCivrsJXtlZztmLgNCivrsJXsnqzsmIENCivrsJXsoJDslYUNCivrsJXrs5HsmqkNCivrsJXrjZXtmIQNCivrsJXsmIHsi50NCivrsJXsg4HrjZUNCivrsJXrs5Hsp4QNCivrsJXssL3tnawNCivrsJXtlZnsiJgNCivrsJXsnYDsi50NCivrsJXrs5HsspwNCivrsJXsm5Dsi50NCivrsJXsiJjsnoQNCivrsJXsmqntmLgNCivrsJXrs5Htl4wNCivrsJXsnqzsiJwNCivrsJXrr7zsiJgNCivrsJXsoJzshJ0NCivrsJXrs5HtmLgNCivrsJXqsr3siJgNCivrsJXsiJzrprwNCivrsJXsoJXsooUNCivrsJXrs5HtmLgNCivrsJXsnKTsp4ANCivrsJXsirntnawNCivrsJXsoJXsiKANCivrsJXrs5HtmLgNCivrsJXtg5ztlZwNCivrsJXsmqntmIQNCivrsJXsoJXtnawNCivrsJXrs7Tqt7wNCivrsJXtlbTsnpANCivrsJXqsIjrnoANCivrsJXsm4XshLgNCivrsJXrs7Xqt7wNCivrsJXstpjrj4QNCivrsJXsnKTsm4UNCivrsJXsnKTsiKANCivrsJXrs7XrgpwNCivrsJXrqoXqtZANCivrsJXshLHshJ0NCivrsJXsnITshJ0NCivrsJXrs7Xrp4wNCivrsJXshKDslZQNCivrsJXsiJjrtoANCivrsJXsnbTrqoUNCivrsJXrs7Xsl7ANCivrsJXtnaztmZgNCivrsJXsm5DsnpANCivrsJXsoJXsoJUNCivrsJXrtInqt7wNCivrsJXquLDquLgNCivrsJXsp4TtmLgNCivrsJXqt7zqt6ANCivrsJXrtInquLANCivrsJXsiJzsmrQNCivrsJXtmY3sobANCivrsJXrj5ntnawNCivrsJXrtInrs5ENCivrsJXqt5ztnawNCivrsJXsnbzspJENCivrsJXrrLTsg4ENCivrsJXrtInsg4ENCivrsJXsnqzsg50NCivrsJXrj5nrs7QNCivrsJXsiJzsoJUNCivrsJXrtInshJ0NCivrsJXrjZXqtowNCivrsJXsoJzrjZUNCivrsJUg6ri4DQor67CV67SJ7LacDQor67CV7KeA7KGwDQor67CV6rK97KeEDQor67CV7IiZ7JqpDQor67CV67SJ7ZWYDQor67CV7ISd7Z2sDQor67CV7JiB64+MDQor67CV7JiB6ri4DQor67CV67SJ7ZmYDQor67CV7KSA7KSADQor67CV7KCV7LCsDQor67CV7KCV7Zi4DQor67CV67aE7ISgDQor67CV7KKF7ZWEDQor67CV7Jyk6rOkDQor67CV7IK87ZmYDQor67CV67aE7IigDQor67CV7IOB65GQDQor67CV7JiB7IudDQor67CV64+E7KO8DQor67CV67aE7J20DQor67CV6rec7ZuIDQor67CV7JmE7ZWZDQor67CV67SJ7IudDQor67CV7IK864+ZDQor67CV6rec67O1DQor67CV7KCV7IudDQor67CV7Jqw7IicDQor67CV7IK87IigDQor67CV7JuQ7ISxDQor67CV66eM7JuQDQor67CV7YOc7IKwDQor67CV7IK87JWUDQor67CV7Jik7IOBDQor67CV7YOc7Zi4DQor67CV7JiB64+MDQor67CV7IK87KGwDQor67CV7Kad7JilDQor67CV7IOB7IicDQor67CV7Iic7IudDQor67CV7IK87KGwDQor67CV7Z2s65OdDQor67CV7J6E6raMDQor67CV7J6s66qoDQor67CV7IK87LacDQor67CV7KeE7J6sDQor67CV7JiB7LKcDQor67CV6rSR7Z2sDQor67CV7IK87ZeMDQor67CV7Jqp7JuQDQor67CV64+Z7LKgDQor67CV6rCV67SJDQor67CV7IOB6rWsDQor67CV7ISx7ZWYDQor67CV6riw67O1DQor67CV64Kc64+ZDQor67CV7IOB6recDQor67CV6rec7Zi4DQor67CV66qF7ZmYDQor67CV7Zqo7JqpDQor67CV7IOB6recDQor67CV66y46riwDQor67CV6rCR7IicDQor67CV67O17IiYDQor67CV7IOB6recDQor67CV7KeA7J20DQor67CV6rK966GADQor67CV7IOB7IudDQor67CV7IOB6recDQor67CV7J6s7Zi4DQor67CV7JiB7Zi4DQor67CV7Iic7J6EDQor67CV7IOB6riwDQor67CV6rCR64+ZDQor67CV7Iq564KoDQor67CV7JiB7ISgDQor67CV7IOB6ri4DQor67CV7J6l7ZmYDQor67CV7J287IiYDQor67CV7Iic7IStDQor67CV7IOB64usDQor67CV6rWQ7KO8DQor67CV6rSA7IiZDQor67CV7ZW0642VDQor67CV7IOB64+EDQor67CV6ri47ZWYDQor67CV7Zi47IiZDQor67CV7J28656ADQor67CV7IOB66GdDQor67CV6riw7ZmYDQor67CV7Iic7IudDQor67CV7J2E7J6QDQor67CV7IOB66WgDQor67CV7IiY7IiYDQor67CV64+Z7JuQDQor67CV6rSR7J20DQor67CV7IOB66eMDQor67CV7ZWZ67KUDQor67CV7J2E64+ZDQor67CVIOyerA0KK+uwleyDgeuylA0KK+uwleqyveu0iQ0KK+uwle2DnOyLnQ0KK+uwle2DnOq1kA0KK+uwleyDgeyEnA0KK+uwleyiheyekA0KK+uwleyerOyekA0KK+uwleykkeyImA0KK+uwleyDgeyImA0KK+uwleqyve2YuA0KK+uwle2XjOynhA0KK+uwleyerOyImA0KK+uwleyDgeyInA0KK+uwleyEseyekA0KK+uwleyduOyImA0KK+uwle2YhOyLnQ0KK+uwleyDgeyIoA0KK+uwleq3nOybkA0KK+uwleyduOyLnQ0KK+uwlSDtmIQNCivrsJXsg4Hsi50NCivrsJXrs5HsmrANCivrsJXsnKTsmqkNCivrsJXtmJXsmKUNCivrsJXsg4Hsi50NCivrsJXsnYDtg5wNCivrsJXsiJjtmLgNCivrsJUg7ZmUDQor67CV7IOB7JewDQor67CV7J247ZiEDQor67CV7KKF6rWsDQor67CV7J6l7IOBDQor67CV7IOB7Je0DQor67CV7Y+J7Zi4DQor67CV7ZW07ZiEDQor67CV7Iic7JilDQor67CV7IOB7JilDQor67CV67OR6riwDQor67CV64Ko7KeEDQor67CV67SJ64WEDQor67CV7IOB7JqpDQor67CV642V7Zi4DQor67CV66eQ7ZuIDQor67CV7JuQ7KCEDQor67CV7IOB7JqpDQor67CV66eM64+MDQor67CV7YOc7KO8DQor67CV66qF7LKgDQor67CV7IOB7JqxDQor67CV7JiB7LKgDQor67CV7IOB7LacDQor67CV7JiB6re8DQor67CV7IOB7JykDQor67CV7IiY7IicDQor67CV7KCV7IOBDQor67CV7YOc7IiYDQor67CV7IOB7YOcDQor67CV7Jqp6529DQor67CV7JiB7IiYDQor67CV7J287ZmYDQor67CV7IOB7YOcDQor67CV7J2A7JikDQor67CV64us7IiYDQor67CV7IyN7KadDQor67CV7IOB7ZiEDQor67CV7Jqp7IiYDQor67CV7KCV7J6QDQor67CV64+Z6recDQor67CV7IOB7Zi4DQor67CV7KeE7JuQDQor67CV7JiB7KGwDQor67CV7YyQ7IiYDQor67CV7IOB7ZmNDQor67CV7J2Y7IiYDQor67CV7YOc7J6sDQor67CV66qF66qoDQor67CV7IOB7ZuIDQor67CV67KU6recDQor67CV7JiB6rWQDQor67CV7J6s7J6QDQor67CV7IOB7Z2sDQor67CV642V7IiYDQor67CV7Zqo7IiZDQor67CV7KKF7KeEDQor67CV7IOB7Z2sDQor67CV7IiY7ISdDQor67CV7ZWE7Zi4DQor67CV7YOc7ZiEDQor67CV7ISd6recDQor67CV7JiB7Zi4DQor67CV7IK87JuQDQor67CV6rec7ISdDQor67CV7ISd6re8DQor67CV7J287IiYDQor67CV7IOB6riwDQor67CV7KSA642VDQor67CV7ISd64+ZDQor67CV65GQ7ZmYDQor67CV7KCV7ZiEDQor67CV6rec7LKgDQor67CV7ISd7IudDQor67CV7Lmg7ZWYDQor67CV7J247ZWYDQor67CV67OR64+ZDQor67CV7ISd7LKgDQor67CV7LaY6recDQor67CV7YOc7Z2sDQor67CV64+Z7KGwDQor67CV7ISg7JiBDQor67CV7IOB7LacDQor67CV7IOB7Z2sDQor67CV67OR64KoDQor67CV7ISg7JilDQor67CV67OR7IudDQor67CV642V6rWsDQor67CV64Ko7J21DQor67CV7ISg7KeEDQor67CV7Jew7IicDQor67CV7JiB7JewDQor67CV7IOB7JiBDQor67CV7ISg7Zi4DQor67CV7IOB7JqpDQor67CV7J6l66GdDQor67CV7LC97LKcDQor67CV7ISx6rOkDQor67CV7J287IiYDQor67CV7YOc7KGwDQor67CV7J6s7JWgDQor67CV7ISx6rWsDQor67CV7J287JuQDQor67CV7KCV67O0DQor67CV7JiB7JuQDQor67CV7ISx6recDQor67CV7J6s7IS4DQor67CV7JiB7Zi4DQor67CV7J2A7JuQDQor67CV7ISx6recDQor67CV7KCV66y4DQor67CV7Jyk7LKgDQor67CV6rec7ISxDQor67CV7ISx6recDQor67CV7IOB7J21DQor67CV7JiB7JiBDQor67CV7KKF7KGwDQor67CV7ISx6riwDQor67CV6riw7ZmUDQor67CV7IiY642VDQor67CV64yA6regDQor67CV7ISx6riwDQor67CV6rec7KSADQor67CV7Jqw7ISdDQor67CV7KCV7JewDQor67CV7ISx64KoDQor67CV7KeE7J6EDQor67CV7IaM7KO8DQor67CV7J2866GdDQor67CV7ISx64usDQor67CV66+47Zi4DQor67CVIOq4iA0KK+uwleyEuOyXtA0KK+uwleyEseuTnQ0KK+uwleuPmeyasQ0KK+uwleyEne2DnQ0KK+uwleyEoOuNlQ0KK+uwleyEseuTnQ0KK+uwleq0gOu2hA0KK+uwle2VhOyImA0KK+uwleq3vOyyrQ0KK+uwleyEseujoQ0KK+uwlSDsmKQNCivrsJXshKDsiJwNCivrsJXrj5nsooUNCivrsJXshLHrsLANCivrsJXsooXtg5wNCivrsJXsg4HrsLANCivrsJXsnqzslaANCivrsJXshLHrsLANCivrsJXshJ3si50NCivrsJXsmqntnLQNCivrsJXsoJDsl7ANCivrsJXshLHrsLANCivrsJXsooXtmowNCivrsJXrp4zsiJwNCivrsJXsp4Trj5kNCivrsJXshLHrsLANCivrsJXrqoXrjIANCivrsJXqtJHslZQNCivrsJXrj5nquLgNCivrsJXshLHrsLANCivrsJXsoJDtg5wNCivrsJXsnKTsmqkNCivrsJXtmansi50NCivrsJXshLHrspQNCivrsJXssL3si50NCivrsJXtlYTsmrANCivrsJXsoJXslZQNCivrsJXshLHrtIkNCivrsJXqtozssqANCivrsJXsnbjsobANCivrsJXtg5zqtowNCivrsJXshLHrtoQNCivrsJXsnbztnawNCivrsJXsnqzsiJwNCivrsJXsmrTsg4ENCivrsJXshLHruYgNCivrsJXsg4HsiJgNCivrsJXsooXso7wNCivrsJXsoJDssqANCivrsJXshLHsiJwNCivrsJXrqoXsiJkNCivrsJXtmY3tnawNCivrsJXrr7jtmZQNCivrsJXshLHsiJwNCivrsJXsnbjsnpANCivrsJXsmIHtnaANCivrsJXsoJXsnoQNCivrsJXshLHsi50NCivrsJUg7ZWZDQor67CV7IKs6recDQor67CV7ISx7ZuIDQor67CV7ISx7IukDQor67CV7ISx7IiYDQor67CV66+87IudDQor67CV7YOA6rWsDQor67CV7ISx7JaRDQor67CV7Jil7YOcDQor67CV7ZWE7ZmUDQor67CV7J247IigDQor67CV7ISx7Je0DQor67CV7Iah6re8DQor67CV7J287JewDQor67CV7ZiB7Zi4DQor67CV7ISx7Je0DQor67CV7Jil7IicDQor67CV7IOB7KGwDQor67CV7KeE7IukDQor67CV7ISx7JqpDQor67CV7ISx7J6RDQor67CV7J247IiYDQor67CV66+46rWQDQor67CV7ISx7JyoDQor67CV65GQ7Je0DQor67CV7Zmp7JikDQor67CV7IiY67SJDQor67CV7ISx7J28DQor67CV67SJ7ZmYDQor67CV7ISd642VDQor67CV6riI7JqwDQor67CV7ISx7LKgDQor67CV7Z2l7LCoDQor67CV6rCR7ISdDQor67CV7KKF6ri4DQor67CV7ISx7ZWcDQor67CV7KCV7Zi4DQor67CV7ZWE7IiYDQor67CV6rec64+EDQor67CV7ISx7ZiEDQor67CV6riw66+8DQor67CV7KKF67SJDQor67CV7KKF7Je0DQor67CV7ISx7ZiEDQor67CV7J287J6EDQor67CV7J286rK9DQor67CV7LC97IiYDQor67CV7ISx7Zi4DQor67CV7YOc7ISdDQor67CV7YOc7JqpDQor67CV7J6s6riwDQor67CV7ISx7Zi4DQor67CV7YOc6regDQor67CV7Zic7ISdDQor67CV66y07JuQDQor67CV7ISx7ZmYDQor67CV7J6s7IicDQor67CV7YOc7IicDQor67CV7JiB6riwDQor67CV7ISx7Z2sDQor67CV7Zi47KSADQor67CV7IaM7JqpDQor67CV6rec7IiYDQor67CV7IS47ZWZDQor67CV7JiB67aADQor67CV7YyQ7Je0DQor67CV66eM7JuFDQor67CV7IS47ZeMDQor67CV7YOc7LGEDQor67CV7Jyk7ZqMDQor67CV7JiB6recDQor67CV7IaM7ISgDQor67CV7ZaJ7LKgDQor67CV7Lap7IK8DQor67CV7Iud7ZiEDQor67CV7Iah6rKsDQor67CV7JiB7JqwDQor67CV7LaY7J20DQor67CV7ISx7ZiEDQor67CV7Iah7JewDQor67CV67SJ7LKgDQor67CV66q97Zi4DQor67CV7JiB7JqwDQor67CV7IiY6rCRDQor67CV7J247IukDQor67CV64yA7IiYDQor67CV6rCV7KKFDQor67CV7IiY6rG4DQor67CV7J6s7IiYDQor67CV7KeE7ZmUDQor67CV65GQ7ZeMDQor67CV7IiY6rK9DQor67CV7ISx7KeEDQor67CV7J6s7IudDQor67CV6rec7Jq0DQor67CV7IiY6recDQor67CV7ISg7ISxDQor67CV7LC9656ADQor67CV67OR64+EDQor67CV7IiY66qFDQor67CV7IOB7LKgDQor67CV64Ko7ISxDQor67CV7ISg6ri4DQor67CV7IiY66qpDQor67CV7YOc642VDQor67CV7IK86ri4DQor67CV7KCV7ZmNDQor67CV7IiY66+8DQor67CV7IiY64+EDQor67CV7ZeM7Je0DQor67CV7ISx7Je0DQor67CV7IiY67O1DQor67CV7KeE6rOkDQor67CV7LCo7JqpDQor67CV66y066asDQor67CV7IiY7Je0DQor67CV7ISd7IicDQor67CV67OR7JqwDQor67CV7J6s7ISgDQor67CV7IiY7JuQDQor67CV7IiY7IudDQor67CV7JiB7IiYDQor67CV67SJ7IiZDQor67CV7IiY7LCsDQor67CVIOyImA0KK+uwleyasOyXsA0KK+uwle2VmeyLoA0KK+uwleyImOyynA0KK+uwleyVoOuztQ0KK+uwleycpOyasA0KK+uwleuzteu5iA0KK+uwleyImO2VmQ0KK+uwleyerO2MlA0KK+uwleyiheqzpA0KK+uwle2Zjeq4uA0KK+uwleyImO2VnA0KK+uwleq0keyaqQ0KK+uwleyiheq3vA0KK+uwleusuOyduA0KK+uwleyImO2WpQ0KK+uwleyerO2ZmA0KK+uwleuzke2DnQ0KK+uwleqxtOyerA0KK+uwleyImO2YuA0KK+uwleq4iOyekA0KK+uwleygleq1rQ0KK+uwleunjOy2nA0KK+uwleyImO2drA0KK+uwleyerOyImA0KK+uwleyYgeyasA0KK+uwleyerOyXtA0KK+uwleyIme2YhA0KK+uwleyEseusuA0KK+uwleuCmeq4uA0KK+uwleyCrO2ctA0KK+uwleyIme2drA0KK+uwleyerOyyoA0KK+uwle2DnOyXtA0KK+uwleyblOuqqA0KK+uwleyInOqwkQ0KK+uwleyEseuPmQ0KK+uwleyiheyEnQ0KK+uwle2VtOyLnQ0KK+uwleyInOq0gA0KK+uwle2MkOydtA0KK+uwleyblOydtA0KK+uwleqwleyynA0KK+uwleyInOq4iA0KK+uwleyyoOq3oA0KK+uwle2DnOyLnQ0KK+uwleyiheyLnQ0KK+uwleyInOq4uA0KK+uwleyjvOyEsQ0KK+uwlSDsm4UNCivrsJXsoJXsm4UNCivrsJXsiJzrgqgNCivrsJXsiJzsiJgNCivrsJXshJ3si50NCivrsJXrj4TsmIENCivrsJXsiJzrjZUNCivrsJXsnqzsobANCivrsJXtlZjtmZgNCivrsJXtmLjsm5ANCivrsJXsiJzrj4QNCivrsJXrrLTsiJgNCivrsJXsg4HsiJkNCivrsJXsmIHrj5kNCivrsJXsiJzrj4wNCivrsJXsooXrsLANCivrsJXshJ3siJwNCivrsJXtlbTquLgNCivrsJXsiJzrj5kNCivrsJXtmITsiJgNCivrsJXqt5ztlZgNCivrsJXsnbztg50NCivrsJXsiJzrk50NCivrsJXsmIHsnbgNCivrsJXshLHtmLgNCivrsJXsirnsnqwNCivrsJXsiJzrs7UNCivrsJXsnYzsp4QNCivrsJXsmqnrjZUNCivrsJXssKjsmrQNCivrsJXsiJzshJ0NCivrsJXsg4HsnbQNCivrsJXtg5zsl7QNCivrsJXsnbjsiJgNCivrsJXsiJzslZQNCivrsJXsp4Tqsr0NCivrsJXsg4HsiJgNCivrsJXsmIHso7wNCivrsJXsiJzsmKUNCivrsJXsmrTsnKQNCivrsJXsmqnrnoANCivrsJXqtJHrqqkNCivrsJXsiJzsmKUNCivrsJXsmIHtmIQNCivrsJXsmqnsiJgNCivrsJXsoJDsmrANCivrsJXsiJzsmKUNCivrsJXssKzsnpANCivrsJXqtJHsmqkNCivrsJXsooXsooUNCivrsJXsiJzsmKUNCivrsJXspJHsi50NCivrsJXrtInshLENCivrsJXsl7DrqoUNCivrsJXsiJzsmKUNCivrsJXshozsiJwNCivrsJXsnYDtm4gNCivrsJXssL3qsJENCivrsJXsiJzsmKUNCivrsJXrjZXsoJwNCivrsJXtlbTtg5wNCivrsJXsmKTsmqkNCivrsJXsiJzsnoQNCivrsJXshLHsmqkNCivrsJXsiJjtl4wNCivrsJXrr7jrjIANCivrsJXsiJzsnpANCivrsJXshKDtmLgNCivrsJXslYjslZQNCivrsJXquLDsoJANCivrsJXsiJzsnpANCivrsJXqsr3tmIQNCivrsJXsooXsoJwNCivrsJXsuaDsiJkNCivrsJXsiJzsnpANCivrsJXtlZzsiJwNCivrsJXsmbjsobANCivrsJXstqnsm5ANCivrsJXsiJzsnpANCivrsJXsmKTqt5wNCivrsJXsp4TshKANCivrsJXsmIHsiJwNCivrsJXsiJzsobANCivrsJXsirnsl7ANCivrsJXssqDqsJUNCivrsJXsmqnsspwNCivrsJXsiJzsp4ENCivrsJXsmqnrqqkNCivrsJXssL3qta0NCivrsJXsoJXtg5wNCivrsJXsiJzssKwNCivrsJXtmY3siKANCivrsJXsp4Trs7UNCivrsJXsmIHsmrENCivrsJXsiJzsspwNCivrsJUg7IudDQor67CV7J6s7IudDQor67CV7Jqp7KSRDQor67CV7Iic7Zi4DQor67CV7Zqo67CwDQor67CV7IaM6riwDQor67CV7J2864KoDQor67CV7Iic7Z2sDQor67CV6rSR7ISdDQor67CV6rec7JqwDQor67CV6riw7IOBDQor67CV7Iig7ZeMDQor67CV7ZiE7IudDQor67CV6raM7Zi4DQor67CV66qF67aEDQor67CV7Iq56recDQor67CV7ZWE7IiYDQor67CV7KeB7JiBDQor67CV7KO87ZWcDQor67CV7Iq564yADQor67CV6riw7YOcDQor67CV7Iic7J6QDQor67CV7Iic7J28DQor67CV7Iq566a9DQor67CV7Jqp7Zi4DQor67CV7ISx7Zi4DQor67CV7J287ZWcDQor67CV7Iq566qpDQor67CV67OR7LCsDQor67CV64+E66eMDQor67CV7IiY6riIDQor67CV7Iug7JuFDQor67CV64+Z7ISdDQor67CV64+Z67aADQor67CV7YOc7ZiEDQor67CV7Iug7JyoDQor67CV7ISd7JiBDQor67CV64yA64+EDQor67CV7YOc7IiZDQor67CV7Iug7KCcDQor67CV7Iic7Z2sDQor67CV7IOB6regDQor67CV7JiB7IiYDQor67CV7Iug7KeADQor67CV6rK97ZiEDQor67CV66eM7KO8DQor67CV7KKF7YOdDQor67CV7Iug7ZWYDQor67CV7ISg7Zi4DQor67CV7KCQ7J28DQor67CV66qF7IicDQor67CV7Iug7ZqMDQor67CV7IOB7LKgDQor67CV6rK97JWUDQor67CV66eQ7Jq0DQor67CV7IyN7IigDQor67CV7KKF7JWUDQor67CV7Z2s7IiZDQor67CV7KCV67O1DQor67CV7JWU67aADQor67CV7Jqp6ri4DQor67CV7KKF7Z2sDQor67CV7J6l7KGwDQor67CV7JaR7IicDQor67CV65GQ7JykDQor67CV7LKt7IudDQor67CV7Lmg7KSRDQor67CV7JaR7ZqMDQor67CV67OR7KGwDQor67CV66eM6riwDQor67CV7KO87Zi4DQor67CV7Ja46recDQor67CV7IOB66eMDQor67CV7J6s7ISxDQor67CV7KO866OhDQor67CV7Ja47IiZDQor67CV66eM7IiYDQor67CV7ZmN6529DQor67CV6riI7ISdDQor67CV7Ja47JeFDQor67CV64Ko7KeEDQor67CV6riI7IOBDQor67CV7Jqp7IiYDQor67CV7Jew7IiYDQor67CV7Jq066qpDQor67CV7YOc7ISxDQor67CV66eM6raMDQor67CV7Jew7IicDQor67CV67OR7ISxDQor67CV7IOB7JikDQor67CV7KCQ7Zi4DQor67CV7Jew7IusDQor67CV7JiB7ISgDQor67CV7YOc642VDQor67CV7YyU7IudDQor67CV7Jew7JqpDQor67CV7KGw66eQDQor67CV7YOc64+EDQor67CV7IOB7KGwDQor67CV7Jew7LCoDQor67CV7J6s67O1DQor67CV7Iq57ZuIDQor67CV7KeE656ADQor67CV7Jew7ZmpDQor67CV7ZWZ7Zi4DQor67CV66qF656ADQor67CV7KCV6riwDQor67CV7Jew7Z2gDQor67CV7ISg7JqwDQor67CV7Z2s7IicDQor67CV7KCV7J6RDQor67CV7Jew7Z2sDQor67CV7J2A7IicDQor67CV7YOc66qFDQor67CV7KCV7JuUDQor67CV7JiB6recDQor67CV7KKF7Z2sDQor67CV7KeE7JykDQor67CV7IOB7KeEDQor67CV7JiB6ri4DQor67CV6reA66qoDQor67CV66y07JqxDQor67CV7J2Y7KeEDQor67CV7JiB642VDQor67CV7J6l7IudDQor67CV7IK86rWwDQor67CV7JiB7JuFDQor67CV7JiB65OdDQor67CV7ZWE7J24DQor67CV7Z2s7IudDQor67CV7KCV7IiYDQor67CV7JiB656ADQor67CV7Iug7JikDQor67CV7J6s6rG4DQor67CV7ISx7ISgDQor67CV7JiB66GdDQor67CV64+Z7JuQDQor67CV6riw7J20DQor67CV642V7LKgDQor67CV7JiB67SJDQor67CV642V7IicDQor67CV7LC964+EDQor67CV67OR7J28DQor67CV7JiB7ISgDQor67CV64+Z7IiYDQor67CV7IaM7JqpDQor67CV7ZWZ7KeEDQor67CV7JiB7ISgDQor67CV7LaY7Je0DQor67CV67O07IiYDQor67CV7JWg6rK9DQor67CV7JiB7ISgDQor67CV7KKF7ZyYDQor67CV7ZWY6riwDQor67CV7KeE7J20DQor67CV7JiB7IStDQor67CV67OR7JewDQor67CV7KCQ7ZWZDQor67CV7YOA6recDQor67CV7JiB7IiYDQor67CV7JiB7JWFDQor67CV7JiB6regDQor67CV6rec7Zi4DQor67CV7JiB7IigDQor67CV6rec6recDQor67CV7KSA7IudDQor67CV7J6s7IiYDQor67CV7JiB7IudDQor67CV7Iic7IiYDQor67CV7KKF7KGwDQor67CV7ZiV7KeEDQor67CV7JiB7IudDQor67CV7J6s7J6QDQor67CV66eM6riwDQor67CV7ISx7ISgDQor67CV7JiB7JikDQor67CV7J6s7Zi4DQor67CV7KSR7ZmUDQor67CV7Lap7IudDQor67CV7JiB7JqwDQor67CV7Iic67KUDQor67CV6rSR7ISxDQor67CV67OR7ZiEDQor67CV7JiB7JqxDQor67CV64+Z7ZmYDQor67CV7KeE7YOcDQor67CV7JiB66qFDQor67CV7JiB7J20DQor67CV6rK97ZmpDQor67CV7YOc7ZuIDQor67CV7JiB7JykDQor67CV7JiB7J28DQor67CV6rec66GdDQor67CV6rK967SJDQor67CV7ISd7IiYDQor67CV7JiB7J6QDQor67CV64Ko7Zi4DQor67CV7Iic7IScDQor67CV7ISx6rSADQor67CV7JiB7J6sDQor67CV7LC97IudDQor67CV66y47IiYDQor67CV7ZW07ISdDQor67CV7JiB7KCcDQor67CV7Jik7J6sDQor67CV7ZWY7J6sDQor67CV7KO86recDQor67CV7JiB7KGwDQor67CV6rSR7JuQDQor67CV67SJ7YOcDQor67CV6riw6rCRDQor67CV7JiB7KO8DQor67CV7KCV7JilDQor67CV66y47ZuIDQor67CV7J207JiBDQor67CV7JiB7KSADQor67CV642V7J6EDQor67CV67O16rWsDQor67CV7IK87IiYDQor67CV7JiB7LKgDQor67CV7ISx7ZmYDQor67CV7J6s7ISdDQor67CV7KCV7JWFDQor67CV7JiB7LKgDQor67CV64+Z66y4DQor67CV7Iuc6rKwDQor67CV7J6s7JuQDQor67CV7JiB7LKgDQor67CV7YOB7IicDQor67CV7ISd6rK9DQor67CV7Jq064+MDQor67CV7JiB7LKgDQor67CV7LC97ISdDQor67CV66eQ7IiYDQor67CV6riw7YOcDQor67CV7JiB7LaYDQor67CV7J6s66y4DQor67CV7L6M7ZmYDQor67CV7LKt6rK9DQor67CV7JiB7LacDQor67CV7IiY7YOdDQor67CV7IOB64WADQor67CV6rec67ORDQor67CV7JiB7YOcDQor67CV7KSR7JqpDQor67CV7J6s7ISdDQor67CV7JiB7KGwDQor67CV7JiB7ZWEDQor67CV7JiB67SJDQor67CV64us7IiYDQor67CV7JuQ7Iq5DQor67CV7JiB7ZWYDQor67CV64+Z7Je0DQor67CV7JiB67O1DQor67CV7Iic7IiYDQor67CV7JiB7ZmUDQor67CV7KeE67aEDQor67CV67OR7J6QDQor67CV66eM7IusDQor67CV7JiB7ZmUDQor67CV7KCV6rK9DQor67CV7J6l7Z2sDQor67CV7KSR7Z2sDQor67CV7JiB7ZmUDQor67CV7IOB7IiZDQor67CV7KSR7IiZDQor67CV6rSR7KGwDQor67CV7JiB7ZmYDQor67CV64Ko7JikDQor67CV7KO87JilDQor67CV7JuU7KO8DQor67CV7JiB7ZmYDQor67CV7Lmg65OdDQor67CV7Jqw67O1DQor67CV66eM7J2ADQor67CV7JiB7ZyYDQor67CV6reA7Zi4DQor67CV7KKF7IiYDQor67CV67SJ66CoDQor67CV7Jik65OdDQor67CV6rSR7JilDQor67CV7ZWZ7YOcDQor67CV7KKF7ISdDQor67CV7Jik7IicDQor67CV66qF7YOdDQor67CV7JiB7IiYDQor67CV7ZWZ7J2ADQor67CV7Jik7KO8DQor67CV7LaY7Zi4DQor67CV7Iq57IStDQor67CV7LaY7Zi4DQor67CV7Jil6regDQor67CV7KCV7ZmUDQor67CV7KeE7Iq5DQor67CV7JiB7KSRDQor67CV7Jil64+ZDQor67CV7ZeM642VDQor67CV7JiB7Je0DQor67CV6ri47IicDQor67CV7Jil7IiYDQor67CV7IiY7JiBDQor67CV6riw6re8DQor67CV7J6s7ZmNDQor67CV7Jil7IicDQor67CV7Jew7JmEDQor67CV67OR642VDQor67CV7J2A656YDQor67CV7Jil7IicDQor67CV7J6s7IS4DQor67CV7J2R7IicDQor67CV67O17IStDQor67CV7Jil7J20DQor67CV7Jqw7JiBDQor67CV64+Z7YOcDQor67CV7JiB7JmEDQor67CV7Jil7J6QDQor67CV6rK96recDQor67CV6rK967ORDQor67CV7ISx7JiBDQor67CV7Jil7YOcDQor67CV7IaM7ZmNDQor67CV64+Z7ZiEDQor67CV7ISx7ZiBDQor67CV7JmV66CsDQor67CV7KKF7ISgDQor67CV7ZmY7ZWYDQor67CV7Jqw7KSADQor67CV7Jm47IiYDQor67CV7ZiV7J6QDQor67CV7Jqw6riwDQor67CV66eM7ISdDQor67CV7Jm47ZmYDQor67CV7IOB7ZiEDQor67CV65GQ6rWtDQor67CV7Jqp7ISgDQor67CV7Jqp6rSADQor67CV64+Z7Zi4DQor67CV7JiB7ZmYDQor67CV7KKF7JyoDQor67CV7Jqp6rWsDQor67CV7YyQ7KSADQor67CV7ZiE7Zi4DQor67CV7KCV66y1DQor67CV7Jqp6raMDQor67CV7Iq5642VDQor67CVIO2ZlA0KK+uwleyerO2YuA0KK+uwleyaqeq3vA0KK+uwleycoOyYgQ0KK+uwleuzke2drA0KK+uwleuLrOuwsA0KK+uwleyaqeq3vA0KK+uwleuqheyDgQ0KK+uwle2DnO2DnQ0KK+uwleuzteyxhA0KK+uwleyaqeuMgA0KK+uwleyImOq4uA0KK+uwleusuOuqqQ0KK+uwleq0ke2YuA0KK+uwleyaqeuPhA0KK+uwleunjOq0gA0KK+uwleygkOyZhA0KK+uwleyMjeyYpQ0KK+uwleyaqeunjA0KK+uwleunkOuPhA0KK+uwleyIme2drA0KK+uwleywveunjA0KK+uwleyaqeuztA0KK+uwleyYgeyasA0KK+uwleuPmeq1rA0KK+uwle2drOq4sA0KK+uwleyaqeyEnQ0KK+uwleq4sOykgA0KK+uwleusmOynhA0KK+uwleyiheyInA0KK+uwleyaqeyImA0KK+uwleydmO2drA0KK+uwleyaqeuqqA0KK+uwleyaqeq0gA0KK+uwleyaqeyImA0KK+uwle2VtOykgA0KK+uwleyDgeyYgQ0KK+uwleyImey2mA0KK+uwleyaqeyImA0KK+uwleyjvO2VnA0KK+uwleq4sOq3nA0KK+uwleyZle2ZmA0KK+uwleyaqeyInA0KK+uwley2mOyLnQ0KK+uwleywveyXtA0KK+uwleyYgeunjA0KK+uwleyaqeyVlA0KK+uwleqyveq4sA0KK+uwleyDge2DnA0KK+uwleuCme2ZjQ0KK+uwleyaqeykgA0KK+uwleyXsOyLnQ0KK+uwle2DnOujoQ0KK+uwleykgOyImA0KK+uwleyaqeykgA0KK+uwleyDgeuhnQ0KK+uwleuPmeyXtA0KK+uwleyYgeq3nA0KK+uwleyaqeyyoA0KK+uwleyYgeyLnQ0KK+uwleyasOyImA0KK+uwleyerOq0gA0KK+uwleyaqeyyoA0KK+uwleuzke2ZmA0KK+uwleyVlOu0iQ0KK+uwleyDgeyXsA0KK+uwleyaqe2VmQ0KK+uwleuvvOyXsA0KK+uwleyYgeq1rQ0KK+uwleyDgeyXsA0KK+uwleyaqe2VmQ0KK+uwleq4sOyInA0KK+uwleyYgeq1rQ0KK+uwleyepeyEnQ0KK+uwleyaqe2VnA0KK+uwleyImOuCqA0KK+uwleyihe2YuA0KK+uwleunjOyEsQ0KK+uwleyaqe2XjA0KK+uwle2DnOyYpA0KK+uwleu0ieykkQ0KK+uwleyehOugrA0KK+uwleyaqe2XjA0KK+uwle2YnOyIoA0KK+uwleuPmeuztA0KK+uwleybkOyehA0KK+uwleyaqe2YhA0KK+uwleuRkOyImA0KK+uwley2mOq4sA0KK+uwleq0keybhQ0KK+uwleyaqe2YuA0KK+uwle2DnOyDnQ0KK+uwle2DnO2drA0KK+uwleyDgeuPjA0KK+uwleyaqe2YuA0KK+uwle2MkOyVlA0KK+uwleyaqeq4uA0KK+uwleyImOydvA0KK+uwleyasOuqqQ0KK+uwley2mO2YhA0KK+uwle2MkOydvA0KK+uwle2VmOqyvQ0KK+uwleyasOuvuA0KK+uwleqyveyekA0KK+uwleuPmeq3vA0KK+uwleyDgeyImA0KK+uwleyasOyLnQ0KK+uwleyepeyInA0KK+uwleykkeyLnQ0KK+uwleyepe2YuA0KK+uwleyatO2ZmA0KK+uwleyEseq2jA0KK+uwleyYge2ZmA0KK+uwleqyve2YuA0KK+uwleybkOq1rA0KK+uwleyiheyImA0KK+uwleyaqeyhsA0KK+uwleq0keyEnQ0KK+uwleybkOyEnQ0KK+uwleyiheuvvA0KK+uwleygleyEnQ0KK+uwleq0keyImA0KK+uwleybkOyEnQ0KK+uwleyYgeyhsA0KK+uwleyEoOydtA0KK+uwleuqheuvuA0KK+uwleybkOyXrA0KK+uwleqyveyhsA0KK+uwleyYgeqwkQ0KK+uwleyImOykkQ0KK+uwleybkOydtA0KK+uwleyDge2YuA0KK+uwleynhOuqqA0KK+uwleydmOq3vA0KK+uwleybkOyihQ0KK+uwleqwle2DgQ0KK+uwleyngO2YhA0KK+uwleydteyIoA0KK+uwleybkOyihQ0KK+uwleq4sO2YuA0KK+uwleyYgeq4sA0KK+uwleyEseudvA0KK+uwleybkO2DnA0KK+uwleyDgeyyoA0KK+uwle2YuOq3nA0KK+uwleyaqe2ZjQ0KK+uwleybkO2VmQ0KK+uwleydvO2drA0KK+uwleunjOyInA0KK+uwleygle2WpQ0KK+uwleybkO2ajA0KK+uwleyyoOyhsA0KK+uwleusuO2YlQ0KK+uwleykkeyxhA0KK+uwleyblOuCqA0KK+uwleyYgeybkA0KK+uwleycpOyLnQ0KK+uwleq2jO2VmQ0KK+uwleyblOyEoA0KK+uwleyihe2DnA0KK+uwleygleyLnQ0KK+uwleusuOyInA0KK+uwleyblOyImA0KK+uwleyerOyLnQ0KK+uwleqyveynhA0KK+uwleyYgeyXtA0KK+uwleychOyInA0KK+uwle2aqOyYgQ0KK+uwleyatO2VhA0KK+uwleyEuOuPmQ0KK+uwleychO2VnA0KK+uwleydvOq3nA0KK+uwleyaqeuwsA0KK+uwle2YhOyLnQ0KK+uwleycoOuNlQ0KK+uwlSDrpZwNCivrsJXsnbjsiJwNCivrsJXsmKXtj6wNCivrsJXsnKTrj4QNCivrsJXtmZjquLANCivrsJXquLDshKANCivrsJXshLHso7wNCivrsJXsnKTrnb0NCivrsJXsnbztnawNCivrsJXsooXsiJgNCivrsJXtmITsi50NCivrsJXsnKTrqqkNCivrsJXshozsiJwNCivrsJXrs7Xtg50NCivrsJXsg4HshKANCivrsJXsnKTsiJgNCivrsJXsnqzquLANCivrsJXrgqjsoJUNCivrsJXtg5zsobANCivrsJXsnKTsmKUNCivrsJXsp4TsmqkNCivrsJXtnazsp4QNCivrsJXshLHsnYANCivrsJXsnKTsoJUNCivrsJXtmITspIANCivrsJXrj5nsmqkNCivrsJXsiJnquLgNCivrsJXsnKTsoJUNCivrsJXsg4HshKANCivrsJXquIjqsJENCivrsJXsmIHsl7ANCivrsJXsnKTsoJUNCivrsJXsg4HrhbgNCivrsJXsnqztg5wNCivrsJXri6zso7wNCivrsJXsnKTspIANCivrsJXtmqjsp4QNCivrsJXsp4TslZQNCivrsJXsp4TsiJwNCivrsJXsnKTtl4wNCivrsJXsm5DtmIQNCivrsJXrs5HrrLgNCivrsJXtg5zsiJwNCivrsJXsnKTtmIQNCivrsJXrjIDtmLgNCivrsJXssYTsl7ANCivrsJXrp5DshKANCivrsJXsnKTtmZgNCivrsJXrhbjqtowNCivrsJXtg5zqt6ANCivrsJXsoJXsiJgNCivrsJXsnYDqsr0NCivrsJXrp5DquLgNCivrsJXsnKTsnbQNCivrsJXrs5Hrj4gNCivrsJXsnYDqtZANCivrsJXsmIHsiJwNCivrsJXtjJDssqANCivrsJXtlZzshLENCivrsJXsnYDrj5kNCivrsJXshKDtmZgNCivrsJXslYjso7wNCivrsJXsiJztmIQNCivrsJXsnYDsiJgNCivrsJXsiJzrrLgNCivrsJXtlYTsiJwNCivrsJXri6ztlZwNCivrsJXsnYDsiJgNCivrsJXtg5zqtowNCivrsJXsiJjquLgNCivrsJXtlZzssKwNCivrsJXsnYDsiJgNCivrsJXtl4ztnZQNCivrsJXsmqnsi50NCivrsJXstqnspIANCivrsJXsnYDso7wNCivrsJXshLjsiJwNCivrsJXtg5zsobANCivrsJXsmIHqta0NCivrsJXsnYDssKwNCivrsJXrtoTroYANCivrsJXsiJzrj5kNCivrsJXtlbTtmIQNCivrsJXsnYTshKANCivrsJXsoJXtmLgNCivrsJXquIjsiJwNCivrsJXqtJHtnawNCivrsJXsnZHrqqgNCivrsJXsm5Dqs6QNCivrsJXsnbjrp4wNCivrsJXstpjsl7QNCivrsJXsnZjsnbgNCivrsJXsmKXrtoANCivrsJXrtoDqt5wNCivrsJXsoJXsnbwNCivrsJXsnbTqt5wNCivrsJXsmIHqt7kNCivrsJXsnqzsiJwNCivrsJXsiJjsobANCivrsJXsnbTsg4ENCivrsJXrr7jrgqgNCivrsJXtjJDstpgNCivrsJXquLDsnpANCivrsJXsnbTsiKANCivrsJXshLHsi50NCivrsJXrj4Ttg5wNCivrsJXqs7XsiJgNCivrsJXsnbTtmJUNCivrsJXtg5zqt7wNCivrsJXstqnsiKANCivrsJXsnKTtmIENCivrsJXsnbTtmLgNCivrsJXtmqjsiJgNCivrsJXtmZTsobANCivrsJXsiJjsiJkNCivrsJXsnbTtmZgNCivrsJXquLDssqANCivrsJXqt7zsi50NCivrsJXshLjtg5wNCivrsJXsnbXqt5wNCivrsJXtlbTsiJgNCivrsJXsg4Hsl7QNCivrsJXsnqzssYQNCivrsJXsnbjqtowNCivrsJXrqoXsiJgNCivrsJXso7zrs7QNCivrsJXtg5zsi50NCivrsJXsnbjrsLANCivrsJXsoJXsiJgNCivrsJXqs4TsiJwNCivrsJXspIDtnawNCivrsJXsnbjsiJkNCivrsJXsoJXqt7wNCivrsJXsmIHrgqgNCivrsJXsspztmLgNCivrsJXsnbjsiJwNCivrsJXsiJjsmqkNCivrsJXssqDtg50NCivrsJXslpHrj4wNCivrsJXsnbjsiKANCivrsJXrp7nsiJgNCivrsJXsmIHslaANCivrsJXsg4HtmIQNCivrsJXsnbjsi50NCivrsJXsm5DrjZUNCivrsJXsiJjsm5ANCivrsJXshLHtg50NCivrsJXsnbjsnpANCivrsJXtmY3smKQNCivrsJXsnbjri6wNCivrsJXtmLjsmIENCivrsJXsnbjssqANCivrsJXsiJjsnbQNCivrsJXqsJHsi50NCivrsJXsnqXsmrANCivrsJXsnbjtkZwNCivrsJXtlbTsp4QNCivrsJXrj4TsmqkNCivrsJXsp4Tsm5ANCivrsJXsnbjtl4wNCivrsJXrs5HquLANCivrsJXsiJzsobANCivrsJXtlbTtmLgNCivrsJXsnbzqtowNCivrsJXsl7DsooUNCivrsJXrqoXsiJwNCivrsJXrjIDsmrANCivrsJXsnbzqtowNCivrsJXrp6Trs5ENCivrsJXsnqzsmqkNCivrsJXssL3qs6QNCivrsJXsnbzqt5wNCivrsJXsooXsuZgNCivrsJXsmrDshKANCivrsJXsg4HqtZANCivrsJXsnbzqt5wNCivrsJXrjIDrp4wNCivrsJXsnbjsiKANCivrsJXsoJXqt5wNCivrsJXsnbzrj5kNCivrsJXsnbjrsLANCivrsJXsmrDsm5ANCivrsJXsp4TshJ0NCivrsJXsnbzrj5kNCivrsJXsg4HrsLANCivrsJXsspzrrLgNCivrsJXqsJHsiKANCivrsJXsnbzrqoUNCivrsJXtlbTsobANCivrsJXsiJzssqANCivrsJXso7zqt6ANCivrsJXsnbzrs5ENCivrsJXsoJDrsLANCivrsJXrjIDrp4wNCivrsJXstqnshLENCivrsJXsnbzrtIkNCivrsJUg64KoDQor67CV7KCV7IigDQor67CV7Jyk7LKgDQor67CV7J287ISdDQor67CV66+867O1DQor67CV7KKF7J6lDQor67CV7Jil7KO8DQor67CV7J287ISgDQor67CV7ISx7KGwDQor67CV7IOB7LmgDQor67CV7ISx7KCVDQor67CV7J287JqpDQor67CV7KeE67SJDQor67CV7KKF67KUDQor67CV7YOc642VDQor67CV7J287ZeMDQor67CV7KCV7ISdDQor67CV6rSA7KKFDQor67CV7Jik64+MDQor67CV7J287Zi4DQor67CV7KeE7KKFDQor67CV7KKF7Z2sDQor67CV7KeE7IudDQor67CV7J287ZmUDQor67CV67OR66eMDQor67CV7Iic7Zi4DQor67CV7ZW07LKgDQor67CV7J6E6re5DQor67CV6rK97ISgDQor67CV7YOA7IiYDQor67CV64yA7Jq0DQor67CV7J6E7JuQDQor67CV67aA7JqpDQor67CV7J2867KUDQor67CV7IOB6rCVDQor67CV7J6Q64+ZDQor67CV64+E7ISdDQor67CV6riI7ISxDQor67CV7KeA6raMDQor67CV7J6l6ri4DQor67CV7J6l7KGwDQor67CV7ISx7ZmUDQor67CV7YOc642VDQor67CV7J6l66qFDQor67CV67OR7ISdDQor67CV7IOB7ZmNDQor67CV7KSA7Zi4DQor67CV7J6l7LacDQor67CV67SJ7ISgDQor67CV7IiY7IigDQor67CV7Lap7JuQDQor67CV7J6l7ZqMDQor67CV64W47ZWZDQor67CV6rK97IudDQor67CV7YOc7ZiEDQor67CV7J6l7Z2gDQor67CV7J2Y7KKFDQor67CV66eM7Z2gDQor67CV66qF7J6QDQor67CV7J6s6rCRDQor67CV7KO864+EDQor67CV7JWI7ZeMDQor67CV7IOB7J6sDQor67CV7J6s6rCRDQor67CV7Jqx7ZiEDQor67CV7YyQ7JiBDQor67CV67O07Z2gDQor67CV7J6s6rK9DQor67CV7J6s7IiYDQor67CV66qF6rK9DQor67CV66y06rK9DQor67CV7J6s6rK9DQor67CV6riI7IicDQor67CV7KCV7JmEDQor67CV7KKF7IudDQor67CV7J6s6rK9DQor67CV65Od7IudDQor67CV6rOh7IiYDQor67CV6rCR6re8DQor67CV7J6s6rOkDQor67CV7Jyk7JqpDQor67CV7KSA7Je0DQor67CV7ISx7Je0DQor67CV7J6s6rSADQor67CV7KCV64+EDQor67CV7IaM7LKtDQor67CV67OR7KO8DQor67CV7J6s6raMDQor67CV7JiB7ZmYDQor67CV66qF6recDQor67CV7Jqw7J2ADQor67CV7J6s6recDQor67CV6rK97J24DQor67CV7IOB7KO8DQor67CV7J6s67SJDQor67CV7J6s6recDQor67CV7ZiE7KGwDQor67CV7LKc65OdDQor67CV7KKF7JiBDQor67CV7J6s6recDQor67CV7JaR7Zi4DQor67CV64+Z7JuQDQor67CV7ISd6recDQor67CV7J6s6recDQor67CV6rK97Zi4DQor67CV7KSA6raMDQor67CV67SJ7J6QDQor67CV7J6s6recDQor67CV7J287J28DQor67CV7IiY7JewDQor67CV6ri47KGwDQor67CV7J6s6re8DQor67CV7Kad7JykDQor67CV7ZeM7IudDQor67CV7Jqp7KeEDQor67CV7J6s6re8DQor67CV6rec7ZalDQor67CV7ISx7ZiEDQor67CV7IiY7ZWYDQor67CV7J6s6riIDQor67CV64+Z7ISdDQor67CV7LaY7ZmYDQor67CV7YOc7IOdDQor67CV7J6s6riwDQor67CV7J6s7IiYDQor67CV7Lap7LKgDQor67CV7JiB6re8DQor67CV7J6s6riwDQor67CV7JiB7ZiEDQor67CV7ISx7IiYDQor67CV7Jqp6rCRDQor67CV7J6s6riwDQor67CV7J2A7Z2sDQor67CV7ISx7ISdDQor67CV7KKF6ri4DQor67CV7J6s64W4DQor67CV7JiB7KO8DQor67CV7JiB7Zi4DQor67CV7Z2s6recDQor67CV7J6s64+ZDQor67CV6rOE7KGwDQor67CV6riw7ZmUDQor67CV7YOc7IiYDQor67CV7J6s65GQDQor67CV7JiB66y4DQor67CV66y466eJDQor67CV6reA7Zi4DQor67CV7J6s656ADQor67CV7J2Y6rWsDQor67CV7Jil7J6QDQor67CV7ISg7ZWZDQor67CV7J6s66asDQor67CV7Ja47ZmYDQor67CV7Zic7ZmYDQor67CV7Iic7IStDQor67CV7J6s66a8DQor67CV7ISx64+EDQor67CV7YOc7YOcDQor67CV7Iq57YOcDQor67CV7J6s66eMDQor67CV7KCV7J6sDQor67CV7J6s7KeADQor67CV7Iic6riwDQor67CV7J6s66qFDQor67CV7IaM64+ZDQor67CV7KSA6rG0DQor67CV65297KGwDQor67CV7J6s67O1DQor67CV7YyQ7IicDQor67CV6riw66y1DQor67CV7KCV7KeEDQor67CV7J6s67aEDQor67CV7J247J6sDQor67CV7Jyk7Z2sDQor67CV7KKF64KoDQor67CV7J6s7IOBDQor67CV7IK87IudDQor67CV7IOB7ZuIDQor67CV7ZyY7ZmYDQor67CV7J6s7ISgDQor67CV7ISx7J6QDQor67CV64W47KSADQor67CV64yA6riwDQor67CV7J6s7Je0DQor67CV7Z2s656YDQor67CV7J6s7JWUDQor67CV7ZW07JiBDQor67CV7J6s7JiBDQor67CV7J247KGwDQor67CV7Jqp6recDQor67CV7ZmN7ZuIDQor67CV7J6s7JilDQor67CV7Jq07IStDQor67CV6rG07IicDQor67CV7KeE66qoDQor67CV7J6s7JilDQor67CV6reA7ZiEDQor67CV7LKg67O1DQor67CV642V66GdDQor67CV7J6s7JmEDQor67CV64+Z7KO8DQor67CV7ISd7Z2sDQor67CV7YOc7LGEDQor67CV7J6s7JmEDQor67CV7JiB7JiBDQor67CV7IOB6rCRDQor67CV67SJ7J20DQor67CV7J6s7JqpDQor67CV6rCV7ZiRDQor67CV7LCo6rG0DQor67CV67OR7KO8DQor67CV7J6s7Jq0DQor67CV7ISx7ISdDQor67CV6riw6re8DQor67CV66+47LacDQor67CV7J6s7JuQDQor67CV6raM64+ZDQor67CV7IOB66GADQor67CV66qF6re8DQor67CV7J6s7JuQDQor67CV7YOc7JewDQor67CV7ZW07IOBDQor67CV7Jm47IudDQor67CV7J6s7JykDQor67CV7ZeM6recDQor67CV6rec7JuFDQor67CV66y07IOBDQor67CV7J6s7J28DQor67CV7YOc7ZiEDQor67CV7ZmN6ri4DQor67CV7Zi47IudDQor67CV7J6s7J28DQor67CV7KKF7J6QDQor67CV7YOc6riwDQor67CV7ZWE7LKgDQor67CV7J6s7KeEDQor67CV7ZWt7KO8DQor67CV7KCQ7IudDQor67CV6riw6rG4DQor67CV7J6s7KeEDQor67CV7IiY7Z2sDQor67CV7J6s67SJDQor67CV67SJ7IudDQor67CV7J6s7LKgDQor67CV7IOB7KO8DQor67CV7J247IudDQor67CV7J6s67O1DQor67CV7J6s7LacDQor67CV7JaR7YOcDQor67CV7IOB7Zy0DQor67CV7J2Y7ZiEDQor67CV7J6s7ZWZDQor67CV7JuQ64+EDQor67CV7IOB7J28DQor67CV7ZmN7ZiEDQor67CV7J6s7ZWtDQor67CV7JiB7JuQDQor67CV7Jqw7ZWZDQor67CV642V7JiBDQor67CV7J6s7ZiEDQor67CV6riw7JiBDQor67CV64+Z7KSRDQor67CV7YOc7Z2sDQor67CV7J6s7ZiEDQor67CV7KeE6raMDQor67CV7KCV66y4DQor67CV7Jqp67CwDQor67CV7J6s7ZiEDQor67CV66y46rCVDQor67CV7Jyk6riwDQor67CV67OR7JewDQor67CV7J6s7Zi4DQor67CV7J247JuQDQor67CV67OR7KGwDQor67CV7J287ZiEDQor67CV7J6s7Zi4DQor67CV7KKF7IK8DQor67CV7J2Y7ZW0DQor67CV7J6s7YOcDQor67CV7J6s7Zi4DQor67CV7Jqw7IiZDQor67CV6rec7ISgDQor67CV7KeE64yADQor67CV7J6s7ZmNDQor67CV66eQ7Zi4DQor67CV7IOB7ISdDQor67CV6reA67CwDQor67CV7J6s7ZmNDQor67CV7YOc7IiYDQor67CV7YOc67O1DQor67CV7KeE7JuFDQor67CV7J6s7ZmNDQor67CV65GQ7Zi4DQor67CV7ISx7Zi4DQor67CV7JiB67SJDQor67CV7J6s7ZmNDQor67CV7Iig7ZmYDQor67CV7YOc7JiBDQor67CV6riw65OdDQor67CV7J6s7ZmYDQor67CV7LKg7JuFDQor67CV7J6s7IudDQor67CV6rK966GcDQor67CV7J6s7ZmYDQor67CV7KSR7Jq0DQor67CV7LC97Zy0DQor67CV7KeE7J6lDQor67CV7J6s7ZmYDQor67CV7Jqp7J6QDQor67CV66qF7JuQDQor67CV7J2A7KeADQor67CV7J6s7ZmYDQor67CV7KSR6re8DQor67CV7YOc7LKgDQor67CV7Jqw642VDQor67CV7J6s7ZuIDQor67CV7Jqw6riwDQor67CV7KKF7ZmYDQor67CV7JiB7IOBDQor67CV7KCQ64+ZDQor67CV7ISd7ISgDQor67CV7Jil7ZmNDQor67CV7KCV7ZiEDQor67CV7KCQ67O0DQor67CV7LC964+ZDQor67CV7LC97JmEDQor67CV6rWs7YOdDQor67CV7KCQ7IiYDQor67CV7KCQ7J20DQor67CV7ISd7IiYDQor67CV7Ja17JykDQor67CV7KCQ7IicDQor67CV642V66y1DQor67CV7LC97ZqMDQor67CV66qF7ZiEDQor67CV7KCQ7IigDQor67CV7KKF642VDQor67CV7KeE7ISgDQor67CV7ZiV7ZmUDQor67CV7KCQ7IigDQor67CV7ZmU7IudDQor67CV7JiB66qFDQor67CV6rSR7KO8DQor67CV7KCQ7IudDQor67CV67OR7ZmYDQor67CV66eM7Zi4DQor67CV7LCo7Ja4DQor67CV7KCQ7JqpDQor67CV65GQ7KGwDQor67CV7Jyk7Zi4DQor67CV6rOE7J6sDQor67CV7KCQ7J20DQor67CV7ZeM7ZmYDQor67CV66eM7KGwDQor67CV7ZeM7IiZDQor67CV7KCV6rWtDQor67CV7KSA7IiYDQor67CV64+Z6recDQor67CV7J2E7JiBDQor67CV7KCV6recDQor67CV7Jqw6riwDQor67CV7Iq566y4DQor67CV6rK97ZmUDQor67CV7KCV6riwDQor67CV67aA642VDQor67CV66qF7IOBDQor67CV7IOB7IiZDQor67CV7KCV6riwDQor67CV66yY7JuQDQor67CV7JiB6rK9DQor67CV7IOB6rK9DQor67CV7KCV64KoDQor67CV7IOB7ZiEDQor67CV7JiB7LaYDQor67CV7J6s64+MDQor67CV7KCV642VDQor67CV7KKF7J6QDQor67CV6riI7Je0DQor67CV7JiB7Zi4DQor67CV7KCV642VDQor67CV7KKF64KoDQor67CV7J6s6ri4DQor67CV67O17IiYDQor67CV7KCV64+EDQor67CV6rK97IiYDQor67CV7ISx7JilDQor67CV7Jew7IicDQor67CV7KCV64+EDQor67CV64+Z7Zi4DQor67CV64Ko6riwDQor67CV7YOc7IiYDQor67CV7KCV64+ZDQor67CV7ZWZ66qpDQor67CV7Iic67aEDQor67CV7J247IudDQor67CV7KCV65OdDQor67CV7ISg7IudDQor67CV7JiB7J6QDQor67CV7Iic7ZWZDQor67CV7KCV66GADQor67CV7IK87Zi4DQor67CV7YOc7JilDQor67CV7KO87Ja4DQor67CV7KCV67CwDQor67CV64yA7Zi4DQor67CV7ISx7ZeMDQor67CV67KU7J6sDQor67CV7KCV67SJDQor67CV6rSR6rWsDQor67CV66+47IiYDQor67CV66y47IiYDQor67CV7KCV67aADQor67CV7J6s7J6QDQor67CV7JiB7ISgDQor67CV7IiY7JWgDQor67CV7KCV7ISxDQor67CV7Z2s7Zi4DQor67CV67O166y4DQor67CV7JiB7Z2sDQor67CV7KCV7IiYDQor67CV64+Z7ISdDQor67CV7KKF67CwDQor67CV67OR7IiZDQor67CV7KCV7IiYDQor67CV7LaY7JewDQor67CV64+E6recDQor67CV7ISg67CwDQor67CV7KCV7IiYDQor67CV7ISx7LacDQor67CV7ISd7IudDQor67CV7JuU6ri4DQor67CV7KCV7IiYDQor67CV7Iq564KoDQor67CV7IaM7JuQDQor67CV7IiY7IiYDQor67CV7KCV7IiYDQor67CV6riw7ISgDQor67CV7J6E7J21DQor67CV7IOB7Iq5DQor67CV7KCV7IiYDQor67CV7Jqp642VDQor67CV7Jqp7LCsDQor67CV7ISd67O1DQor67CV7KCV7IicDQor67CV6rSA7J28DQor67CV65GQ7KGwDQor67CV7J6E642VDQor67CV7KCV7IicDQor67CV64yA64KoDQor67CV7J6s7LKgDQor67CV7Iic7IudDQor67CV7KCV7IudDQor67CV6riw7J28DQor67CV7JuU7ZWYDQor67CV7IiY7ZWYDQor67CV7KCV7IudDQor67CV67OR7JqwDQor67CV6riI6rSADQor67CV7KCV6rOkDQor67CV7KCV7IukDQor67CV7IOB7ISgDQor67CV7KKF7JuQDQor67CV67OR64yADQor67CV7KCV7JWgDQor67CV6rWt64KoDQor67CV7LC96ri4DQor67CV67OR7JqpDQor67CV7KCV7JewDQor67CV7ZWE7ZiEDQor67CV7JiB7KSRDQor67CV7J6s7JuFDQor67CV7KCV7Je0DQor67CV7Iq57IicDQor67CV7JiB66GADQor67CV7KKF7Zi4DQor67CV7KCV7JikDQor67CV7ZeM7JuFDQor67CV7J2464+EDQor67CV7YOc64+MDQor67CV7KCV7JqpDQor67CV7JiB7ISdDQor67CV7J287JqpDQor67CV7KO87ZiEDQor67CV7KCV7JqpDQor67CV7LaY7LKgDQor67CV65Od7KGwDQor67CV7ZWZ6recDQor67CV7KCV7Jq0DQor67CV7IOB7LacDQor67CV7ISd6riwDQor67CV7JuQ7LaYDQor67CV7KCV7Jq0DQor67CV64KZ7ZWZDQor67CV7KO87JuFDQor67CV67OR7ISdDQor67CV7KCV7J28DQor67CV6rK46rCRDQor67CV7KKF64+ZDQor67CV7JaR64W4DQor67CV7KCV7J6EDQor67CV64+Z7IiYDQor67CV6rSA7IiYDQor67CV6rK97ZiEDQor67CV7KCV7J6QDQor67CV7IOB7ZmUDQor67CV64+Z7IiYDQor67CV7LKc7KeEDQor67CV7KCV7J6QDQor67CV7Jqx7IicDQor67CVIOy2mA0KK+uwleyCrO2YhA0KK+uwleygleyekA0KK+uwleq4sO2YuA0KK+uwleyZuOyEnQ0KK+uwleycpOyhsA0KK+uwleygleyyoA0KK+uwleygkO2VmA0KK+uwleyImOuPmQ0KK+uwleyEseyLnQ0KK+uwleygley2nA0KK+uwleyYge2VmQ0KK+uwleyEoO2DnA0KK+uwleyInOy2nA0KK+uwleygle2VmA0KK+uwleuPmeyasQ0KK+uwleyKue2drA0KK+uwle2YnOyhsA0KK+uwleygle2VmA0KK+uwleyjvOq4sA0KK+uwleyEne2YhA0KK+uwleq0keuhnQ0KK+uwleygle2VmQ0KK+uwleyerOyEnQ0KK+uwleyYgeycpA0KK+uwleyjvOyInA0KK+uwleygle2VnA0KK+uwleuFuOyynA0KK+uwleyLnOuMgA0KK+uwleyYgeyImA0KK+uwleygle2WpQ0KK+uwlSDsg4ENCivrsJXsoJXtmIQNCivrsJXrs5Hrp4wNCivrsJXsoJXtl4wNCivrsJXsoJXrp4wNCivrsJXtnazsmqkNCivrsJXsmqntmLgNCivrsJXsoJXtmLgNCivrsJXquLDqt7wNCivrsJXsmIHqt6ANCivrsJXshLjsi50NCivrsJXsoJXtmZQNCivrsJXtmITsnbQNCivrsJXtlZztmLgNCivrsJXrtoTsp4QNCivrsJXsoJXtnawNCivrsJXquLDroKwNCivrsJXrj4Tsi50NCivrsJXsg4HssL0NCivrsJXsoJXtnawNCivrsJXtlqXtnawNCivrsJXrqoXtmLgNCivrsJXtjJDslYQNCivrsJXsoJXtnawNCivrsJXtlbTspJENCivrsJXstqnsmKUNCivrsJXqs4TsiKANCivrsJXsoJzrgqgNCivrsJXtnaztmZgNCivrsJXsmKTqt7wNCivrsJXsmZXshJ0NCivrsJXsobDsnbQNCivrsJXsnbTsobANCivrsJXrgqjrk50NCivrsJXsnoTrs7UNCivrsJXsobDsnbQNCivrsJXsmqnrspQNCivrsJXqsr3tmZgNCivrsJXsp4TshJ0NCivrsJXsooXqsbgNCivrsJXshKDsiJgNCivrsJXrs7TsiJwNCivrsJXqtJHrtIkNCivrsJXsooXqta0NCivrsJXso7zqsIANCivrsJXsnbjrj4QNCivrsJXqtJHsp4QNCivrsJXsooXqtowNCivrsJXtg5zrtIkNCivrsJXrgpzsiJkNCivrsJXsg4HrqqkNCivrsJXsooXqt5wNCivrsJXqs4TtnaUNCivrsJXsg4HquLANCivrsJXrjIDsmqkNCivrsJXsooXqt5wNCivrsJXshKDtmZQNCivrsJXshLjsoJwNCivrsJXshKDsl7QNCivrsJXsooXqt7wNCivrsJXrj5nsi50NCivrsJXquLDtnawNCivrsJXsoJXtmLgNCivrsJXsooXqt7wNCivrsJXqsr3ssqANCivrsJXsl7Dtm4gNCivrsJXsooXsl7ANCivrsJXsooXqt7wNCivrsJXrs5HsmIENCivrsJXsnqzrsLANCivrsJXsoJXsnpANCivrsJXsooXquLANCivrsJXrjIDqt7wNCivrsJXtmantmLgNCivrsJXsoJXsoJANCivrsJXsooXquLgNCivrsJXrgqjquLANCivrsJXquLDsiJkNCivrsJXstpjrtoQNCivrsJXsooXri6wNCivrsJXsnqzsoJUNCivrsJXsp4TstpwNCivrsJXrp7nsiJgNCivrsJXsooXrjIANCivrsJXsmIHqsr0NCivrsJXsooXsiJkNCivrsJXqs4TshJ0NCivrsJXsooXrk50NCivrsJXsmqnsiJwNCivrsJXrtInsnbQNCivrsJXtl4zsiJgNCivrsJXsooXrnb0NCivrsJXtnazqtowNCivrsJXrs5HsnKgNCivrsJXqsr3rjZUNCivrsJXsooXrnpgNCivrsJXsnqzrhbgNCivrsJXsnqzshLENCivrsJXrs5HshK0NCivrsJXsooXrr7wNCivrsJXtg5zsnKQNCivrsJXtmZjqtowNCivrsJXtmJzqtawNCivrsJXsooXrr7wNCivrsJXsm5Dtm4gNCivrsJXsmKXtmIQNCivrsJXsg4HstpwNCivrsJXsooXrs7UNCivrsJXqsr3sobANCivrsJXshLHsmIENCivrsJXrs5HtmLgNCivrsJXsooXsg4ENCivrsJXsmIHshK0NCivrsJXsmqnsmrANCivrsJXsgrztlZkNCivrsJXsooXshJ0NCivrsJXsmqnshLENCivrsJXshLHrnpgNCivrsJXsnqzqtIANCivrsJXsooXshJ0NCivrsJUg7KSRDQor67CV7ZmN7JWEDQor67CV7KO86re8DQor67CV7KKF7IStDQor67CV67OR64+EDQor67CV7KCc7ISgDQor67CV6rK96re8DQor67CV7KKF7IStDQor67CV7ISx7KGwDQor67CV7IK87IiYDQor67CV7J6s7JiBDQor67CV7KKF7IiYDQor67CV64+Z7ZWYDQor67CV7KO867SJDQor67CV7IOB6recDQor67CV7KKF7IiYDQor67CV6ri47ZmUDQor67CV7KCV7IudDQor67CV7KCV7IicDQor67CV7KKF7IiYDQor67CV7ZiE7KCVDQor67CV64+E6rSADQor67CV7IiY7Z2sDQor67CV7KKF7IiZDQor67CV7KeE7ISgDQor67CV7Jm47Y+sDQor67CV67OR66+8DQor67CV7KKF7IicDQor67CV7ZW06raMDQor67CV7KO87IiYDQor67CV64+Z6riwDQor67CV7KKF7IicDQor67CV7JiB7YOcDQor67CV7IiY7IStDQor67CV64yA7LCsDQor67CV7KKF7IigDQor67CV7ZW07Je0DQor67CV7KSR7JqwDQor67CV7Jqp7ZalDQor67CV7KKF7IudDQor67CV67O17IiYDQor67CV64Ko7JqpDQor67CV7YOc67CwDQor67CV7KKF7IudDQor67CV6rG07Zi4DQor67CV7LC97JqwDQor67CV7IyN64+EDQor67CV7KKF7IudDQor67CV7KCV6rOkDQor67CV67OR7IicDQor67CV7Jyk6riwDQor67CV7KKF7IudDQor67CV7JiB6rK9DQor67CV66qF7IK8DQor67CV7KO87IudDQor67CV7KKF7Je0DQor67CV7Jew7IigDQor67CV7Z2s7JuQDQor67CV7KKF7Zi4DQor67CV7KKF7Je0DQor67CV66eQ7ZmYDQor67CV642V7KGwDQor67CV7YOc7ZW0DQor67CV7KKF7JiBDQor67CV7KKF7Zi4DQor67CV7KCV7J6EDQor67CV6rSA6regDQor67CV7KKF7JikDQor67CV7Iic6rG0DQor67CV7YOc7LKgDQor67CV7LC966GdDQor67CV7KKF7JikDQor67CV6rSR7ZiEDQor67CV7KO87Je0DQor67CV7Z2s7ZmYDQor67CV7KKF7JilDQor67CV67OR7LKgDQor67CV7Jqp7IiYDQor67CV7IaM7ISdDQor67CV7KKF7JqwDQor67CV6re56rSADQor67CV66+87JuQDQor67CV7KCV7IiYDQor67CV7KKF7JqxDQor67CV6re87Iq5DQor67CV67SJ7IiZDQor67CV7IiY7ISdDQor67CV7KKF7JuQDQor67CV7IKs6raMDQor67CV7J287LacDQor67CV7YyQ67CwDQor67CV7KKF7JuQDQor67CV66y47Zi4DQor67CV7Jqp6riwDQor67CV6riI7IudDQor67CV7KKF7JyoDQor67CV7IK87ISxDQor67CV67SJ6529DQor67CV66+467aADQor67CV7KKF7J24DQor67CV7ISx7JilDQor67CV7J6s7IudDQor67CV7KCV6riwDQor67CV7KKF7KO8DQor67CV7IiY7ZWZDQor67CV7KKF64+EDQor67CV6rec67O1DQor67CV7KKF7KeEDQor67CV7KCQ7ZmYDQor67CV7J287JilDQor67CV65Od66GADQor67CV7KKF7KeEDQor67CV7YyQ7KCVDQor67CV7Jq07JqpDQor67CV64Ko7Jq0DQor67CV7KKF7LKgDQor67CV7IOB7Zi4DQor67CV7IiY6regDQor67CV7IOB7KGwDQor67CV7KKF7ZWcDQor67CV6rec7IudDQor67CV67OR7Z2sDQor67CV7ISx7ISdDQor67CV7KKF7Zi4DQor67CV66qF7ZmYDQor67CV66eM7IiYDQor67CV7IOB7YOcDQor67CV7KKF7Zi4DQor67CV7ISx6recDQor67CV7Iic7IudDQor67CV6rOE6rOkDQor67CV7KKF7Zi4DQor67CV7J6s7JqpDQor67CV7IOB7KSADQor67CV7Iq57JuQDQor67CV7KKF7Zi4DQor67CV7JiB6recDQor67CV67O17IigDQor67CV67OR7LGEDQor67CV7KKF7Zi4DQor67CV7KKF7ISdDQor67CV7Z2s7J24DQor67CV67aA7J6EDQor67CV7KKF7ZmUDQor67CV7ISx7ZiEDQor67CV6ri46recDQor67CV7Jqp7ISxDQor67CV7KKF7ZmUDQor67CV7LC966eMDQor67CV67OR6riwDQor67CV7KKF7KSADQor67CV7KKF7ZuIDQor67CV7J6E7ZiEDQor67CV7KO87Zi4DQor67CV7YyQ6rOkDQor67CV7KKF7ZuIDQor67CV67OR7JykDQor67CV64+Z7KSADQor67CV7J6l6riwDQor67CV7KKF7ZyYDQor67CV6rK97IicDQor67CV7LCs67aADQor67CV7J287IiYDQor67CV7KKF7Z2sDQor67CV67O07JiBDQor67CV7Lmg7KO8DQor67CV7JiB7KGwDQor67CV7KO86rSADQor67CV642V7Zi4DQor67CV7IOB7JWgDQor67CV7YOc7JWgDQor67CV7KO86rWtDQor67CV7KKF7IicDQor67CV64+E7ZmYDQor67CV7Zi467O1DQor67CV7KO864W4DQor67CV7IOB7ISdDQor67CV7IOB7LKgDQor67CV7ISx64+EDQor67CV7KO864+EDQor67CV7Zi47IiYDQor67CV6riw7IOdDQor67CV7ZW07JiBDQor67CV7KO864+MDQor67CV7Iug6riwDQor67CV6riw6rG4DQor67CV7J6s7IudDQor67CV7KO866eQDQor67CV7ZW07Jq0DQor67CV7LC97IiYDQor67CV7YOc7J28DQor67CV7KO867O1DQor67CV7ISg7JewDQor67CV7KCc7Y+sDQor67CV7J6s7ZWZDQor67CV7KO87ISdDQor67CV7ZiE7IiZDQor67CV7IiY7YOdDQor67CV6rec7YOdDQor67CV7KO87ISxDQor67CV6rOE66asDQor67CV64us6riwDQor67CV66eM7LmYDQor67CV7KO87IiYDQor67CV67O16rCRDQor67CV7Jqp7ZmYDQor67CV7IaM7Zi4DQor67CV7KO87JaRDQor67CV7YOc7JqpDQor67CV7KCV67O1DQor67CV7Jqp6ri4DQor67CV7KO87JikDQor67CV7YyQ7KGwDQor67CV6reA66eMDQor67CV7ISx656YDQor67CV7KO87JmEDQor67CV7Zi47JilDQor67CV7Z2s67CwDQor67CV6rK966GcDQor67CV7KO87JqwDQor67CV7IOB6rOkDQor67CV7ZmY66CoDQor67CV7IOB7IiYDQor67CV7KO87JuQDQor67CV7Iq57KSADQor67CV7Iq57ISgDQor67CV7KCV642VDQor67CV7KO87YOBDQor67CV7Zqo7JilDQor67CV7Jyk7IStDQor67CVIOq3vA0KK+uwleyjvO2DnA0KK+uwleyEseuPhA0KK+uwleyYgeyEoA0KK+uwleycpO2ZmA0KK+uwleyjvO2DnQ0KK+uwleyYgeuqhQ0KK+uwleyYgeq3nA0KK+uwleyDgeuztQ0KK+uwleyjvO2MlA0KK+uwleuptOuPjA0KK+uwleygleyXsA0KK+uwleyYgeyduA0KK+uwleyjvO2VtA0KK+uwleuzke2YhA0KK+uwleuqheyImA0KK+uwleuvuOuLrA0KK+uwleyjvO2YhA0KK+uwleyjvOyYpA0KK+uwleygleunjA0KK+uwleyEseyImQ0KK+uwleyjvO2ZmA0KK+uwleyInO2ZlA0KK+uwleyaqeyehA0KK+uwleyaqeyhsA0KK+uwleykgOq3nA0KK+uwleyerOyXsA0KK+uwleuzkeuwsQ0KK+uwleuPme2VnA0KK+uwleykgOustA0KK+uwleyerOyEnQ0KK+uwleuLrOyEnQ0KK+uwleyEne2YlQ0KK+uwleykgOuwsA0KK+uwleuMgOyLnQ0KK+uwle2VtO2YuA0KK+uwle2ZjeykgA0KK+uwleykgOyEnQ0KK+uwleyEseq3nA0KK+uwleyjvO2YuA0KK+uwleyImOqzpA0KK+uwleykgOyXtA0KK+uwleq3gOufiQ0KK+uwle2DnOyWuA0KK+uwleyerOuztQ0KK+uwleykgOyaqQ0KK+uwleyEneq3vA0KK+uwleywqOyIoA0KK+uwleuRkOyerA0KK+uwleykgO2DnA0KK+uwleyWke2VmA0KK+uwleykkeyImA0KK+uwleyYpeyEnQ0KK+uwleykgO2YuA0KK+uwleydgOuFhA0KK+uwle2VmeyInA0KK+uwleynhOyjvA0KK+uwleykgO2YuA0KK+uwleuPhOyLnA0KK+uwleyInOywqA0KK+uwleunjOqyvQ0KK+uwleykkeqxtA0KK+uwleynhOyLnQ0KK+uwleqwke2biA0KK+uwleyDgeyLnQ0KK+uwleykkeq3nA0KK+uwleyEneumvQ0KK+uwleyaqeyImA0KK+uwle2aqOyImA0KK+uwleykkeyxhA0KK+uwleyDgeyasA0KK+uwleyEseq4sA0KK+uwleyerOyEoA0KK+uwleyngOyErQ0KK+uwleyXsOq3oA0KK+uwleyImOyVlA0KK+uwleuzkeyghA0KK+uwleyngOyImA0KK+uwleyDgeyImA0KK+uwleyihe2YuA0KK+uwleyEoOuNlQ0KK+uwleyngOyIoA0KK+uwleuzkeyImA0KK+uwleykkeyasA0KK+uwleyYgeyYpQ0KK+uwleyngOyYpQ0KK+uwleuzkeycoA0KK+uwleyYgeynhA0KK+uwleyaqeyhsA0KK+uwleyngOyaqQ0KK+uwley2mO2YuA0KK+uwleyYgeyynA0KK+uwleq3vOyGjA0KK+uwleyngOyaqQ0KK+uwleyiheyLnQ0KK+uwleuMgOyErQ0KK+uwleyGjOyLnQ0KK+uwleyngOyjvA0KK+uwleynhOyLnQ0KK+uwleyYgeq3vA0KK+uwle2YuOyYgQ0KK+uwleyngO2VnA0KK+uwleyerO2ZmA0KK+uwley2mOyEoA0KK+uwleyCvOyjvA0KK+uwleyngO2YgQ0KK+uwleycpOyjvA0KK+uwleq4uOyEsQ0KK+uwleygleyekA0KK+uwleyngO2YuA0KK+uwleyasOq4uA0KK+uwleydteyImA0KK+uwle2DnOy2nA0KK+uwleyngO2ZmA0KK+uwleygkOuPhA0KK+uwleygle2ajA0KK+uwleynhOyImQ0KK+uwleyngO2biA0KK+uwleyiheyyoA0KK+uwleq3nOyImA0KK+uwleqwkeyasA0KK+uwleynhOq3nA0KK+uwleyEseyekA0KK+uwleybkO2XjA0KK+uwleu2gOqzpA0KK+uwleynhOq3nA0KK+uwleyImO2ZmA0KK+uwleuzkeyLnQ0KK+uwleyerOyImA0KK+uwleynhOu2gA0KK+uwleq4uO2YhA0KK+uwleyihe2DgQ0KK+uwle2YhOyekA0KK+uwleynhOyEsQ0KK+uwleuNleyEnQ0KK+uwleyDgeyLnQ0KK+uwleyduOuwsA0KK+uwleynhOyEsQ0KK+uwleustO2DnA0KK+uwleyDgeybhQ0KK+uwleqyve2ZmA0KK+uwleynhOyasA0KK+uwleyerOyihQ0KK+uwleuzkeyEoA0KK+uwleyYgeyaqQ0KK+uwleynhOyasA0KK+uwleyCvOyEsQ0KK+uwleq3oOuqhQ0KK+uwleuPme2drA0KK+uwleynhOyyoA0KK+uwleyImO2YuA0KK+uwleyImO2ZlA0KK+uwleuzkeyImA0KK+uwleynhO2XjA0KK+uwleyImeynhA0KK+uwleygleyekA0KK+uwleywrOyXtA0KK+uwleynhO2YuA0KK+uwleyMje2DnA0KK+uwleyXsOuloA0KK+uwle2DnO2YuA0KK+uwleynhO2ZlA0KK+uwleyerOyatA0KK+uwleyDgeyjvA0KK+uwle2WieycpA0KK+uwleynhO2ZmA0KK+uwleyEse2ZmA0KK+uwleuMgOuCqA0KK+uwleq4sO2DnA0KK+uwleywqOq3vA0KK+uwleusmOqzpA0KK+uwleqyveydtA0KK+uwleyDgeyImA0KK+uwleywqOunjA0KK+uwleygleyYpQ0KK+uwleyImeuPmQ0KK+uwleygleq3nA0KK+uwleywqOu0iQ0KK+uwleyyoOyKuQ0KK+uwleyerOyYpQ0KK+uwleuylOyEnQ0KK+uwleywqOyImA0KK+uwle2YhOyLnQ0KK+uwleyYgeyEoA0KK+uwleyjvOyjvA0KK+uwleywqOyehA0KK+uwleybkOyXsA0KK+uwleyYgeyLnQ0KK+uwle2VtOqzpA0KK+uwleywqO2XjA0KK+uwleyEoOyInA0KK+uwleywve2ZmA0KK+uwleyaqeuvvA0KK+uwleywrOq3nA0KK+uwle2DnOq0gA0KK+uwleygley2nA0KK+uwleydtO2drA0KK+uwleywrOuPmQ0KK+uwleyMjeuztQ0KK+uwleyaqeyImQ0KK+uwleuNle2VmQ0KK+uwleywrOu2gA0KK+uwleyepeyasA0KK+uwleyerO2YuA0KK+uwle2Vmeq1rQ0KK+uwleywrOyImA0KK+uwleyiheyImA0KK+uwleyerOuPmQ0KK+uwleyDgeyEoA0KK+uwleywrO2YhA0KK+uwleygleyImA0KK+uwleyEne2YuA0KK+uwleq3vOu0iQ0KK+uwleywrO2YuA0KK+uwleydteyYgQ0KK+uwleywvey2nA0KK+uwleyEseq0gA0KK+uwleywrO2YuA0KK+uwle2drOyImQ0KK+uwleyInOyLnQ0KK+uwle2DnO2drA0KK+uwleywrO2biA0KK+uwleq4sO2MkA0KK+uwleqwleuLqA0KK+uwleydvOyEnQ0KK+uwleywveqwkQ0KK+uwleynhO2DnA0KK+uwle2DnOyLnQ0KK+uwleygleycpA0KK+uwleywveq3nA0KK+uwleyblO2doA0KK+uwleyEseyLnQ0KK+uwleyaqeyEsQ0KK+uwleywveq3nA0KK+uwleyiheyLnQ0KK+uwleyInOqzoA0KK+uwleu0ieunjA0KK+uwleywveq3oA0KK+uwleyEneyXtA0KK+uwleyerO2ZmA0KK+uwleu2hOyEsQ0KK+uwleywveuMgA0KK+uwle2VmeyYgQ0KK+uwle2DnO2DnQ0KK+uwle2VnOqxtA0KK+uwleywveyImA0KK+uwleuemOyImA0KK+uwleqyve2drA0KK+uwleustO2ZmA0KK+uwleywveyImA0KK+uwleyDge2VmQ0KK+uwleyduO2YuA0KK+uwleyepe2DnQ0KK+uwleywveyInA0KK+uwleuPmeyImA0KK+uwleybkOq4uA0KK+uwleygleqzhA0KK+uwleywveyLnQ0KK+uwleyYgeyjvA0KK+uwleyInO2YuA0KK+uwleyerOyerA0KK+uwleywve2YhA0KK+uwleygleykgA0KK+uwleyEseydgA0KK+uwleyerOyekA0KK+uwleywve2YuA0KK+uwleyaqeyasQ0KK+uwleybkO2ZmA0KK+uwleyInO2YhA0KK+uwleywve2YuA0KK+uwleuPmeyImA0KK+uwle2ZlOq3nA0KK+uwleyEseq3vA0KK+uwleywve2YuA0KK+uwleykgO2ZmA0KK+uwleygkOyInA0KK+uwle2MkOunjA0KK+uwleywve2YuA0KK+uwleyDgeyXsA0KK+uwleyEneyInA0KK+uwleyihe2YuA0KK+uwleywve2ZmA0KK+uwleygleyImQ0KK+uwleyYpeyEoA0KK+uwleyYgeq4sA0KK+uwleyynOuNlQ0KK+uwleq3vOq4sA0KK+uwleq4sOyImA0KK+uwleyXsO2biA0KK+uwleyynOyErQ0KK+uwle2VtOyyoA0KK+uwleyZle2VmA0KK+uwleyCrO2ZlA0KK+uwleyynOyImA0KK+uwleyYgeyyoA0KK+uwleuPme2WpQ0KK+uwleykkeynhA0KK+uwleyynO2bhA0KK+uwleyEse2biA0KK+uwleyCvOycpA0KK+uwleqwkeq3nA0KK+uwleyyoOq3nA0KK+uwle2VnOq0kQ0KK+uwleyYgeuwsA0KK+uwleydgOyyoA0KK+uwleyyoOq3nA0KK+uwleuylOuekQ0KK+uwleyDge2biA0KK+uwle2aqO2ZmA0KK+uwleyyoOyImA0KK+uwleyerOq4sA0KK+uwleygleyasA0KK+uwleyYgeuztQ0KK+uwleyyoOyasA0KK+uwleyjvO2drA0KK+uwleyYge2biA0KK+uwleuPmeyImA0KK+uwleyyoO2YuA0KK+uwleykke2DnA0KK+uwle2DnOqzpA0KK+uwleuvuOyekA0KK+uwleyyoO2YuA0KK+uwleq3nOq3nA0KK+uwleuMgO2biA0KK+uwleyerOynhA0KK+uwleyyoO2ajA0KK+uwleyerO2ZjQ0KK+uwleqyveyErQ0KK+uwleq0keyImQ0KK+uwleyyreydtA0KK+uwleq2jOyImA0KK+uwleunjOyDgQ0KK+uwleuzteuzkQ0KK+uwleyyre2ajA0KK+uwleyiheq4sA0KK+uwleyLnOusuA0KK+uwleymneyInA0KK+uwley2mA0KK+uwleuzkQ0KK+uwleyInA0KK+uwleuRkA0KK+uwley2mOqyvQ0KK+uwleygkOuqqA0KK+uwleygleuegA0KK+uwleyGjO2ZqQ0KK+uwley2mOq0kQ0KK+uwleydteykgA0KK+uwleygleyDnQ0KK+uwley5oOyaqQ0KK+uwley2mOq4uA0KK+uwleyKueyEnA0KK+uwleuNleyImA0KK+uwleyYgeuPhA0KK+uwley2mOuztQ0KK+uwleyInOyYgQ0KK+uwleyEse2ZmA0KK+uwleyDgeunjA0KK+uwley2mOyEoA0KK+uwleustOyYpQ0KK+uwleuFuOyasA0KK+uwleuylOq3vA0KK+uwley2mOyImA0KK+uwleuNleuqhQ0KK+uwleuMgOyynA0KK+uwley2mOykgA0KK+uwley2mOyImA0KK+uwle2VtO2biA0KK+uwle2dpe2YuA0KK+uwle2YhOuvuA0KK+uwley2mOyLnQ0KK+uwleykkeuemA0KK+uwle2YuOyErQ0KK+uwleq4sOqzhA0KK+uwley2mOyYgQ0KK+uwleyEneyImQ0KK+uwleyiheyynA0KK+uwle2Vme2ZmA0KK+uwley2mOyYgQ0KK+uwleynhO2YhA0KK+uwleygleyEoA0KK+uwleuzkeuPmQ0KK+uwley2mOyYgQ0KK+uwle2DnO2YuA0KK+uwleyDgeybkA0KK+uwleuqheqyvQ0KK+uwley2mOydvA0KK+uwleyDgeqzpA0KK+uwleyDge2YuA0KK+uwleyCvO2drA0KK+uwley2mO2YuA0KK+uwleqyveuPhA0KK+uwleyaqe2ZmA0KK+uwle2DnOyerA0KK+uwley2mO2ZlA0KK+uwle2DnOyImA0KK+uwle2MkOyaqQ0KK+uwleq4sOyLpA0KK+uwley2mO2drA0KK+uwleq4iOyatA0KK+uwleyMjeuPhA0KK+uwleuRkOyyoA0KK+uwley2qe2doA0KK+uwleyEseyasA0KK+uwleuvuOq3oA0KK+uwleykkeyLnQ0KK+uwley5mOyImQ0KK+uwleyiheyEoA0KK+uwleyInOq0kQ0KK+uwleyynOyImA0KK+uwley5oOusuA0KK+uwleywveybkA0KK+uwle2PieustA0KK+uwleqyve2doA0KK+uwley5oOyaqQ0KK+uwleunjOyImA0KK+uwleyEneyImA0KK+uwle2VnOyjvA0KK+uwle2DnOqyvQ0KK+uwleuzkeuLrA0KK+uwley2qeyaqQ0KK+uwleyerOydtQ0KK+uwle2DnOqzpA0KK+uwleuzkeuPjA0KK+uwleqyveywrA0KK+uwleyduOyWkQ0KK+uwle2DnOq3nA0KK+uwleq4sOyInA0KK+uwleyiheq3nA0KK+uwleuPmeyXsA0KK+uwle2DnOq3nA0KK+uwleyEse2drA0KK+uwlSDsmKQNCivrsJXrjZXtnawNCivrsJXtg5zqt5wNCivrsJXrs5HsmrQNCivrsJXsnoTsl7ANCivrsJXrs7Xrp4wNCivrsJXtg5zqt6ANCivrsJXqtJHsiJgNCivrsJXrs5Hqt7wNCivrsJXsnYTsnbgNCivrsJXtg5zqt7wNCivrsJXshoztnawNCivrsJXsp4TrqqkNCivrsJXsnqzsiJwNCivrsJXtg5zqt7wNCivrsJXsoJXqt5wNCivrsJXsmqnsp4QNCivrsJXrjIDtmZQNCivrsJXtg5zrj5kNCivrsJXsmqnsmKUNCivrsJXsp4TqtawNCivrsJXsg4HsnpANCivrsJXtg5zrk50NCivrsJXsoJXslZQNCivrsJXsnqzsnKQNCivrsJXsooXsi50NCivrsJXtg5zrprwNCivrsJXstqntg5wNCivrsJXsi5ztmLgNCivrsJXrtInrtoQNCivrsJXtg5zrrLgNCivrsJXsiJjsobANCivrsJXsirnso7wNCivrsJXslZTshKANCivrsJXtg5zrspQNCivrsJXsmIHrr7gNCivrsJXtnaztm4gNCivrsJXsg4HsnbwNCivrsJXtg5zrtIkNCivrsJXsmqnrnpgNCivrsJXsooXqt7wNCivrsJXsmIHqt7wNCivrsJXtg5zrtIkNCivrsJXrqoXtg50NCivrsJXtg5zssqANCivrsJXsp4TsiJgNCivrsJXtg5zsg4ENCivrsJXssKzrtoANCivrsJXquIjsi50NCivrsJXslpHsiJwNCivrsJXtg5zshJ0NCivrsJXtlYTsiJgNCivrsJXshLHqt5wNCivrsJXrgqjtmZgNCivrsJXtg5zshKANCivrsJXtmLjsi50NCivrsJXtlbTshLENCivrsJXsiJjtmLgNCivrsJXtg5zshK0NCivrsJXsnqzqt5wNCivrsJXsvozshKANCivrsJXrgpnstpwNCivrsJXtg5zshLENCivrsJXslpHtg5wNCivrsJXsnqzruYgNCivrsJXsm5Dsi50NCivrsJXtg5zshLENCivrsJXsg4Hrs7QNCivrsJXtg5zsi50NCivrsJXsmIHqtIANCivrsJXtg5zsiJgNCivrsJXsg4Hqta0NCivrsJXsmrTqt7wNCivrsJXsmIHquLANCivrsJXtg5zsiJgNCivrsJXrtIntg50NCivrsJXqsbTsnKQNCivrsJXsmrDtg50NCivrsJXtg5zsiJwNCivrsJXtmZjtg50NCivrsJXqt7zsiJgNCivrsJXsg4HsiJwNCivrsJXtg5zsi50NCivrsJXsmIHqt7wNCivrsJXsnYDsmqkNCivrsJXsnbzsp4QNCivrsJXtg5zsi50NCivrsJXsooXsl7ANCivrsJXslpHsnqwNCivrsJXtlZntnawNCivrsJXtg5zslZQNCivrsJXsmrDsmKQNCivrsJXrs5Hrs7UNCivrsJXshozsl7QNCivrsJXtg5zsl7ANCivrsJXtko3snbQNCivrsJXrp4zrqoUNCivrsJXsiJnqt7wNCivrsJXtg5zsmIENCivrsJXsi5zrs7UNCivrsJXrj5nsiKANCivrsJXqsr3rs7UNCivrsJXtg5zsmIENCivrsJXsm5Dqt7wNCivrsJXqtJHroKgNCivrsJXsoJXsmIENCivrsJXtg5zsmYQNCivrsJXshLHsmKUNCivrsJXqt5zsl7QNCivrsJXtl4zsnpANCivrsJXtg5zsmqkNCivrsJXsmIHsiJwNCivrsJXsoJXssYQNCivrsJXrqoXtg5wNCivrsJXtg5zsmrANCivrsJXqtJHsiJgNCivrsJXqtJHqsr0NCivrsJXqt5zshK0NCivrsJXtg5zsm5ANCivrsJXsmqnsmIENCivrsJXssKjsiJgNCivrsJXqsJHsobANCivrsJXtg5zsnKQNCivrsJXtlZnsi50NCivrsJXrjIDquLgNCivrsJXtg5ztg50NCivrsJXtg5zsnbwNCivrsJXrrLTsi50NCivrsJXsmIHrp4wNCivrsJXspIDsiJgNCivrsJXtg5zsoJUNCivrsJXsgrzsiJwNCivrsJXsiJjtmIQNCivrsJXtnazsnoQNCivrsJXtg5zso7wNCivrsJXsg4HtmLgNCivrsJXsmqntmJUNCivrsJXshLHshKANCivrsJXtg5zso7wNCivrsJXsoJXqsr0NCivrsJXquLjsiJwNCivrsJXtmqjtmZgNCivrsJXtg5zssqANCivrsJXsmIHsnbQNCivrsJXsm5TtmLgNCivrsJXsp4TsiJgNCivrsJXtg5ztlZkNCivrsJXsoJXsiKANCivrsJXrgqjsp4QNCivrsJXtmJzsobANCivrsJXtg5ztl4wNCivrsJXsoJXrrLgNCivrsJXtlbTqta0NCivrsJXsl7DsiJwNCivrsJXtg5ztmIQNCivrsJXrj5nsiJgNCivrsJXsiJjsmIENCivrsJXsnYTtmIQNCivrsJXtg5ztmJUNCivrsJXshJ3tmLgNCivrsJXrs5Hqt7wNCivrsJXrrLTshKANCivrsJXtg5ztmLgNCivrsJXquLDquLANCivrsJXqsr3shK0NCivrsJXsmqnsiJgNCivrsJXtg5ztmLgNCivrsJXsnbXrtIkNCivrsJXsooXsobANCivrsJXsp4TquLANCivrsJXtg5ztmLgNCivrsJXsnoTroZ0NCivrsJXsooXstpgNCivrsJXssKjtmIQNCivrsJXtg5ztmY0NCivrsJXtl4ztg5wNCivrsJXrs5Hsp4QNCivrsJXsnqzshKANCivrsJXtg5ztmZQNCivrsJXrgqjquIgNCivrsJXsmIHsoJUNCivrsJXquLjtm4gNCivrsJXtg5ztmZgNCivrsJXsooXso7wNCivrsJXso7zsmrANCivrsJXshqHssqANCivrsJXtg5ztmowNCivrsJXsoJXsiJwNCivrsJXrj5nqtowNCivrsJXso7zsmIENCivrsJXtg5ztm4gNCivrsJXsnqzsiJkNCivrsJXsmIHsg4ENCivrsJXshKTquLgNCivrsJXtjJDqs6ANCivrsJXsoJXqtowNCivrsJXsiJzsiJkNCivrsJXtmqjqt7wNCivrsJXtjJDqt7wNCivrsJXrqoXsi50NCivrsJXsooXrjIANCivrsJXsmrHrj5kNCivrsJXtjJDrjZUNCivrsJXtg5zrp4wNCivrsJXsmIHtmLgNCivrsJXsmKXsnbQNCivrsJXtjJDrj4QNCivrsJXsooXsiJgNCivrsJXsiJjsiJgNCivrsJXsooXsi50NCivrsJXtjJDshJ0NCivrsJXsl7DqtowNCivrsJXsgrztmLgNCivrsJXsoJXsnbUNCivrsJXtjJDstpwNCivrsJXshLHrnpENCivrsJXquLDtmLgNCivrsJXshLHsi50NCivrsJXtjJDtl4wNCivrsJXsmIHso7wNCivrsJXrs7Tqs6ANCivrsJXsiJjshJ0NCivrsJXtjJTsiJgNCivrsJXsooXsiJgNCivrsJXqtaztg50NCivrsJXrrLjso7wNCivrsJXtko3slrgNCivrsJXtmZTsl7ANCivrsJXsiJjqt5wNCivrsJXtnazspIANCivrsJXtlZjqsr0NCivrsJXrrLTsi50NCivrsJXtnazrnoANCivrsJXqsr3snbQNCivrsJXtlZnshJwNCivrsJXtg5zsmqkNCivrsJXrj5nrtIkNCivrsJXsnKTsmrANCivrsJXtlZzqt5wNCivrsJXrrJjsm5ANCivrsJXssqDsnYANCivrsJXsi6DshJ0NCivrsJXtlZzquLANCivrsJXssqDsi50NCivrsJXtg5zsi50NCivrsJXqt7zrsLANCivrsJXtlZzsiJgNCivrsJXrtoDqt7wNCivrsJXrs5Hqt5wNCivrsJXsoJXtmLgNCivrsJXtlZzsobANCivrsJXsnqztmZgNCivrsJXshKDqsJENCivrsJXsnqXsgrwNCivrsJXtla3suZgNCivrsJXri6zsiJwNCivrsJXshLHsmqkNCivrsJXssYTsmKUNCivrsJXtlbTqt5wNCivrsJXtmqjsmKUNCivrsJXsiJjquLANCivrsJXsmqntm4gNCivrsJXtlbTrj4QNCivrsJXstpjqsJUNCivrsJXshJ3si50NCivrsJXshLHtmLgNCivrsJXtlbTrj4QNCivrsJXtg5zsi50NCivrsJXtnazquLANCivrsJXstpjrhbgNCivrsJXtlbTrj5kNCivrsJXrtIntmIQNCivrsJXqtJHquLANCivrsJXsiJzquLANCivrsJXtlbTrj5kNCivrsJXsi6Dqt5wNCivrsJXsl7Dsl7ANCivrsJXsoJXsmZUNCivrsJXtlbTrj5kNCivrsJXsoJXsgrwNCivrsJXsoJXtmZgNCivrsJXsnbjshJ0NCivrsJXtlbTro6ENCivrsJXquLjshK0NCivrsJXshLHsiJwNCivrsJXqt4DrtIkNCivrsJXtlbTro6ENCivrsJXrs5HsiJgNCivrsJXshLHsg4ENCivrsJXsiJjqtawNCivrsJXtlbTrtpUNCivrsJXrtoTsmIENCivrsJXsg4HshKANCivrsJXsnKDsl7ANCivrsJXtlbTshJ0NCivrsJXsnpDsiJwNCivrsJXqtazsnpANCivrsJXrtInsiJgNCivrsJXtlbTshLENCivrsJXqt5zsiJgNCivrsJXtm4Tsl7ANCivrsJXsmIHsiJgNCivrsJXtlbTsnpANCivrsJXsoJXqtawNCivrsJXquLDsnqwNCivrsJXsmIHrj5kNCivrsJXtlbTsobANCivrsJXrj4TsiJkNCivrsJXsg4HsnbQNCivrsJXsg4HsmqkNCivrsJXtlqXsl7ANCivrsJXrqbTquLANCivrsJXsgrztmZgNCivrsJXrj5nsmqkNCivrsJXtl4zqt5wNCivrsJXshLHtmowNCivrsJXtg5zsmrQNCivrsJXsoJXquLgNCivrsJXtl4zrjZUNCivrsJXsiJzsiJgNCivrsJXrqoXsgrwNCivrsJXrs5HtlZwNCivrsJXtl4zsm5ANCivrsJXsoJDshKANCivrsJXqt7zrgqgNCivrsJXssL3sspwNCivrsJXtmITrr7wNCivrsJXqsJHrtIkNCivrsJXsmIHtg50NCivrsJXsg4HsobANCivrsJXtmITshK0NCivrsJXsnqzshKANCivrsJXrs5Hsi50NCivrsJXslpHsiJgNCivrsJXtmITshK0NCivrsJXquIjshKANCivrsJXshLHsiJgNCivrsJXquLDtmY0NCivrsJXtmITsiJgNCivrsJXsnbjsiJwNCivrsJXqsJHtmZgNCivrsJXtmITqsJENCivrsJXtmITsiJgNCivrsJXtmozsp4QNCivrsJXqtJHroKgNCivrsJXsmKXrj4QNCivrsJXtmITsiJgNCivrsJXsnbjrj4QNCivrsJXquLDsl7QNCivrsJXtlZnquLANCivrsJXtmITsiJkNCivrsJXtg5zsmIENCivrsJXrs7XsmrANCivrsJXsirnrj4QNCivrsJXtmITsi6ANCivrsJXrtIntmY0NCivrsJXsmIHsm4UNCivrsJXsirnsl7QNCivrsJXtmITsl4UNCivrsJXquLDtl4wNCivrsJXsnYDsnpANCivrsJXsmIHsiJwNCivrsJXtmITsmrANCivrsJXqt5zqs4QNCivrsJXtmY3qt5wNCivrsJXsooXtmLgNCivrsJXtmITso7wNCivrsJXtg5zqsJUNCivrsJXspJHqt7wNCivrsJXsp4TsiJgNCivrsJXtmITssYQNCivrsJXsnbzsmIENCivrsJXsiJjqt5wNCivrsJXqs4TsoJwNCivrsJXtmITtg5wNCivrsJXsiJzshLENCivrsJXsnqztg4ENCivrsJXrj5nsl7QNCivrsJXtmITtmZgNCivrsJXsmIHquLANCivrsJXrs5Hrj5kNCivrsJXrj5nrtoQNCivrsJXtmJXrnpgNCivrsJXtlbTsm5ANCivrsJXssKjsmKUNCivrsJXquLDtlqUNCivrsJXtmJXshJwNCivrsJXsmIHtnawNCivrsJXsmIHsobANCivrsJXsm5DtmY0NCivrsJXtmJXsnqwNCivrsJXtmJXsnpANCivrsJXrs5HtlbQNCivrsJXtnazsmIENCivrsJXtmJzsnpANCivrsJXrtInsiJwNCivrsJXssqDsiJkNCivrsJXrtoTsmqkNCivrsJXtmLjqt5wNCivrsJXsmKXqtawNCivrsJXsg4HrrLgNCivrsJXsgrzsiJwNCivrsJXtmLjqt7wNCivrsJXsmIHsnKgNCivrsJXsooXshK0NCivrsJXsmIHqtawNCivrsJXtmLjrj5kNCivrsJXqsJHsmIENCivrsJXqt5zsobANCivrsJXsoJXtg5wNCivrsJXtmLjrtIkNCivrsJXsg4HtmZgNCivrsJXsooXsi50NCivrsJXtg5zslZQNCivrsJXtmLjshJ0NCivrsJXtlZzsi50NCivrsJXshLHqsJENCivrsJXtmqjrgqgNCivrsJXtmLjsoJUNCivrsJXssL3slZQNCivrsJXrj5nsooUNCivrsJXrqoXshKANCivrsJXtmLjsp4QNCivrsJXsmKXso7wNCivrsJXsnqzsiJgNCivrsJXrjZXssqANCivrsJXtmLjstpgNCivrsJXqsr3rp4wNCivrsJXsnqXsnbQNCivrsJXsg4Hsm5ANCivrsJXtmY3qt7wNCivrsJXrj5nsiJgNCivrsJXssKzquLANCivrsJXri6ztg5wNCivrsJXtmY3quLgNCivrsJXqsr3smIENCivrsJXsmqntlYQNCivrsJXtmZTsiJwNCivrsJXtmY3rj5kNCivrsJXqt4DshKANCivrsJXsnITssqANCivrsJXsiJzsmrANCivrsJXtmY3rrLUNCivrsJXshozrr7gNCivrsJXsmIHsnbUNCivrsJXrs7Xqt5wNCivrsJXtmY3ruYgNCivrsJXsnbjspIANCivrsJXtg5zqt6ANCivrsJXsgrzshKANCivrsJXtmZjsl7QNCivrsJXshLHtmZgNCivrsJXqtJHqtawNCivrsJXshLHsnqwNCivrsJXtmZjsnbQNCivrsJXsmIHsiJkNCivrsJXrr7jtl4wNCivrsJXrqoXslbwNCivrsJXtmanqsr0NCivrsJXrrLTsmrANCivrsJXtg53tmLgNCivrsJXsmqnsnKQNCivrsJXtmozqt7wNCivrsJXstpjtg50NCivrsJXshKDquIgNCivrsJXqtazquLgNCivrsJXtmqjqt5wNCivrsJXsg4HsiKANCivrsJXrp5DtmLgNCivrsJXrjIDsi50NCivrsJXtmqjsooUNCivrsJXrjZXroYANCivrsJXsp4Tsg4ENCivrsJXrs5Hqt5wNCivrsJXtnJjsgrwNCivrsJXsp4TsmKUNCivrsJXsmKXsm5ANCivrsJXsg4HsiJwNCivrsJXtnazrj5kNCivrsJXsiJjrj5kNCivrsJXsiJzshK0NCivrsJXsmIHtmLgNCivrsJXtnazrs7UNCivrsJXqsJHrgpwNCivrsJXsmIHtmIQNCivrsJXsnbztl4wNCivrsJXtnazsg4ENCivrsJXtmY3rj4QNCivrsJXsnqztmIQNCivrsJXsi5zsoJwNCivrsJXtnazshJ0NCivrsJXrs5HshLENCivrsJXqtJHsi50NCivrsJXsooXsnqwNCivrsJXtnazshLENCivrsJXshLHroKgNCivrsJXsoJXrrLgNCivrsJXsnqzshLgNCivrsJXtnazshLENCivrsJXqtJHquIgNCivrsJXrjIDrj4wNCivrsJXrtIntmZgNCivrsJXtnazshqENCivrsJXshKDrspQNCivrsJXrn4nssqANCivrsJXsnqzqta0NCivrsJXtnazsl7ANCivrsJXrr7zrjZUNCivrsJXrkZDtmLgNCivrsJXshLHrj5kNCivrsJXtnazsl7QNCivrsJXrj5nshJ0NCivrsJXtg5zsnqwNCivrsJXqsr3ssqANCivrsJXtnazsnqUNCivrsJXsooXrnoANCivrsJXsmKXqtowNCivrsJXrjZXsuZgNCivrsJXtnazsp4QNCivrsJXsiJjqt5wNCivrsJXshLHqsbgNCivrsJXsg4Hsg4ENCivrsJXtnazssYQNCivrsJXqsJHsm5ANCivrsJXsooXqsJENCivrsJXquLDqt7wNCivrsJXtnazssqANCivrsJXshLHrnpgNCivrsJXshLHrs7UNCivrsJXqsrjtmZgNCivrsJXtnazssqANCivrsJUg67SJDQor67CV7J6s7ZiEDQor67CV7KKF7ZmUDQor67CV7Z2s7YOcDQor67CV7LC964KoDQor67CV6ri46riwDQor67CV64yA7JqpDQor67CpIOq4uA0KK+uwqeydvO2YlQ0KK+uwqe2DnOygnA0KK+uwqeyaqeyXhQ0KK+uwqeqyveyhsA0KK+uwqeuPiOyImA0KK+uwqeyYpeykkQ0KK+uwqeyekOyErQ0KK+uwqeq4uOyglQ0KK+uwqeyLnO2YhA0KK+uwqeqxtO2VtA0KK+uwqeyKue2ZlA0KK+uwqeuNleykgA0KK+uwqeyYpeydtA0KK+uwqeyImOyaqQ0KK+uwqe2DnOyhsA0KK+uwqeuvuOyglQ0KK+uwqeyduO2ZlA0KK+uwqeyduOyLnQ0KK+uwqeyInO2YuA0KK+uwqeuzkeyErQ0KK+uwqeyiheyYgQ0KK+uwqeuzkeyglQ0KK+uwqeyYpeyImA0KK+uwqeyDgeqzpA0KK+uwqeyYgeyLnQ0KK+uwqeqyve2ZmA0KK+uwqeyYpOyXsA0KK+uwqeyKueq3nA0KK+uwqeyerOyImA0KK+uwqeyDgeybkA0KK+uwqeyDgeyatA0KK+uwqeyLoOyEoA0KK+uwqeyEoOyekA0KK+uwqeqwkeuPhA0KK+uwqeyDgeq1rA0KK+uwqeyYgeq3oA0KK+uwqeyehOyInA0KK+uwqeyDgeyasA0KK+uwqeuzkeyImA0KK+uwqeyYgeuMgA0KK+uwqe2YuOywvQ0KK+uwqeyihe2DnQ0KK+uwqeyerOyInA0KK+uwqeyYgeydtQ0KK+uwqeuCmeusmA0KK+uwqeygleyXsA0KK+uwqeuFuO2YuA0KK+uwqeyYpeq4iA0KK+uwqeyYgeq0gA0KK+uwqeuMgOyIoA0KK+uwqeyYgeuPhA0KK+uwqeybkOygnA0KK+uwqeyKueyerA0KK+uwqe2YhO2XjA0KK+uwqe2VnOyEsQ0KK+uwqeycpOyEoA0KK+uwqeyDgeuFuA0KK+uwqeq0key2nA0KK+uwqeydhOuNlQ0KK+uwqeycpOyhsA0KK+uwqey5oOyEoA0KK+uwqe2VreyekA0KK+uwqeygkO2drA0KK+uwqeygkOyInA0KK+uwqeyDgeybhQ0KK+uwqeykkeyVoA0KK+uwqeuzkeyWuA0KK+uwqeygkOyXsA0KK+uwqeygleyduA0KK+uwqeyEseybhQ0KK+uwqeyjvOq3nA0KK+uwqeygleyInA0KK+uwqeq4sOyekA0KK+uwqeyasOyImA0KK+uwqeyDgeyEoA0KK+uwqeyiheq4sA0KK+uwqeq4sOuCqA0KK+uwqeyjvOyXtA0KK+uwqeyerOyInA0KK+uwqeyjvOuCqA0KK+uwqe2MkOq1rA0KK+uwqeywqO2VmA0KK+uwqeuPhOyasA0KK+uwqe2DnO2biA0KK+uwqeyDgeyImA0KK+uwqeyYgeyImA0KK+uwqeqyveyEnQ0KK+uwqe2VnOyglQ0KK+uwqeustOu0iQ0KK+uwqeyngOuPmQ0KK+uwqeu2gOydvA0KK+uwqe2VnOyglQ0KK+uwqeyWteyEoA0KK+uwqeydkeyLpA0KK+uwqeunkOyZhA0KK+uwsCDsmqkNCivrsLDshLHtmLgNCivrsLDshJ3smKQNCivrsLDtg5zspIANCivrsLDqsJHrjZUNCivrsLDsnKTtmLgNCivrsLDrs5HrtoQNCivrsLDrs5HtmIQNCivrsLDqsJHshJ0NCivrsLDshJ3sobANCivrsLDsooXqt5wNCivrsLDsooXtm4gNCivrsLDqsr3rpZwNCivrsLDsooXstpwNCivrsLDsmKXsiJwNCivrsLDsooXqt5wNCivrsLDqsr3rs5ENCivrsLDsg4HsnbQNCivrsLDsmqntlZkNCivrsLDsmqnso7wNCivrsLDqsr3sl7QNCivrsLDtlbTssqANCivrsLDsiJjspIANCivrsLDqsJXsiJwNCivrsLDqsr3tmLgNCivrsLDtmITsmIENCivrsLDsoJXsnbQNCivrsLDtg5ztlZwNCivrsLDqs4TsiKANCivrsLDsooXsnpANCivrsLDshLjsiJgNCivrsLDsmIHrs7UNCivrsLDqtIDtmLgNCivrsLDsm5Drp4wNCivrsLDsnKTso7wNCivrsLDquLDqtawNCivrsLDqtJHsiJgNCivrsLDsnqztg50NCivrsLDsnbzrtoQNCivrsLDshLHtlZkNCivrsLDqtZDrrLgNCivrsLDtl4zsiJgNCivrsLDsnKTqt7wNCivrsLDrp4zsi50NCivrsLDqta3rpqwNCivrsLDrr7jrsLANCivrsLDsmIHtmZgNCivrsLDsiJjsmrANCivrsLDqtozsi50NCivrsLDsnqzslZQNCivrsLDtg5ztmLgNCivrsLDsoJXtmLgNCivrsLDqtoztlqUNCivrsLDshLHqs6ANCivrsLDsooXtl4wNCivrsLDsg4HrjZUNCivrsLDqt4DshKANCivrsLDquLjsmIENCivrsLDsmIHrjZUNCivrsLDsmIHsiJgNCivrsLDqt5ztmZgNCivrsLDtmLjsi50NCivrsLDtlbTssKwNCivrsLDsmqnshK0NCivrsLDqt7zsmKUNCivrsLDsmIHsg4ENCivrsLDsmIHsiJwNCivrsLDtmLjqt7wNCivrsLDqt7ztmLgNCivrsLDtlZjsm5ANCivrsLDrrLjshK0NCivrsLDsooXtmLgNCivrsLDquIjsiJwNCivrsLDshLjsm4UNCivrsLDsmIHsoJANCivrsLDrqoXtnawNCivrsLDquIjslYUNCivrsLDtlZzshKANCivrsLDsnYDqsJwNCivrsLDsmIHrk50NCivrsLDquLDrtIkNCivrsLDtg5zquLANCivrsLDsp4TrspQNCivrsLDshLHso7wNCivrsLDquLDrtoQNCivrsLDtl4zsp4ANCivrsLDsnqzsiJgNCivrsLDtlbTsmrENCivrsLDquLDshJwNCivrsLDquLDsiJwNCivrsLDsg4Hqt5wNCivrsLDspIDssqANCivrsLDquLDtmqgNCivrsLDsmIHtg5wNCivrsLDtlZnquLANCivrsLDrtoTtmZgNCivrsLDquLjtmZgNCivrsLDtmY3sg4ENCivrsLDsnbTspIANCivrsLDsirnsmqkNCivrsLDrgpntj6wNCivrsLDsoJXtmIQNCivrsLDshLHtmZQNCivrsLDrs5Hrj5kNCivrsLDrgqjsobANCivrsLDrqoXshJ0NCivrsLDqt7zsnbQNCivrsLDtl4zrr7gNCivrsLDrgqjtnawNCivrsLDrs5HquLgNCivrsLDqtJHssqANCivrsLDsnYTqt7wNCivrsLDri6zqtowNCivrsLDsgqzquLANCivrsLDsp4DsnqwNCivrsLDsiJzsmKUNCivrsLDrjIDsi50NCivrsLDsmIHquLANCivrsLDqsr3si50NCivrsLDsmqnsiKANCivrsLDrjIDtmLgNCivrsLDshLHsiJkNCivrsLDsm5DsiJwNCivrsLDsooXsm4UNCivrsLDrjZXrrLgNCivrsLDsmIHshLENCivrsLDsmIHsmqkNCivrsLDsooXsl7QNCivrsLDrjZXrrLgNCivrsLDsnKTtg5wNCivrsLDsiJjqta0NCivrsLDsnqzsiJgNCivrsLDrjZXshJ0NCivrsLDsooXrsLANCivrsLDsp4TsnbQNCivrsLDspJHquLANCivrsLDrjZXsiJgNCivrsLDrs7XtnaANCivrsLDsnpDqsJENCivrsLDsmIHsmqkNCivrsLDrjZXsnqwNCivrsLDqt7ztmZgNCivrsLDsooXshJ0NCivrsLDquLDsnpANCivrsLDrj4Tsl7ANCivrsLDsg4HtmZgNCivrsLDrj5nshJ0NCivrsLDsmIHsooUNCivrsLDrj4Tsl7ANCivrsLDsiJjqt5wNCivrsLDrp5Dsl7ANCivrsLDrtoTsnbwNCivrsLDrj5nsiJgNCivrsLDrs5HsnpANCivrsLDtg5ztmIQNCivrsLDsnbzqs6QNCivrsLDrj5nslrgNCivrsLDsoJXsnpANCivrsLDtnaXtnawNCivrsLDsiJzsgrwNCivrsLDrj5ntm4gNCivrsLDquLDsg4ENCivrsLDsmqnssqANCivrsLDsnqztlokNCivrsLDrp4zqtowNCivrsLDsg4HssqANCivrsLDsnZjsnbUNCivrsLDsnqzsnbwNCivrsLDrp4zsi50NCivrsLDstpjsnbQNCivrsLDsiJzstpgNCivrsLDsmIHrnpgNCivrsLDrp4zsi6QNCivrsLDrgqjsmqkNCivrsLDsm5DssqANCivrsLDtg5zsnbwNCivrsLDrp4zsmIENCivrsLDrrLTsl7ANCivrsLDsiJjqt7wNCivrsLDsnKTssqANCivrsLDrp4ztmIQNCivrsLDquLDtmY0NCivrsLDrr7jrjZUNCivrsLDtmY3snpANCivrsLDrp5Drp4wNCivrsLDtmJzrrLQNCivrsLDsoJXtnawNCivrsLDqsJHtmLgNCivrsLDrp5Drp4wNCivrsLDrs5HroKgNCivrsLDsiJzsmqkNCivrsLDshLHtg5wNCivrsLDrp5Dsi50NCivrsLDshJ3tg50NCivrsLDquLDqt5wNCivrsLDtmITsiJgNCivrsLDrrLTquLgNCivrsLDsmIHsnKQNCivrsLDqs4TsiJkNCivrsLDsmIHsmrANCivrsLDrrLTshLENCivrsLDsuaDqt7wNCivrsLDshLjshK0NCivrsLDquLDsiJgNCivrsLDrrLTtnaANCivrsLDtlZzsiJwNCivrsLDtlbTrs7QNCivrsLDsnKTtmIQNCivrsLDrrLjsnpANCivrsLDsp4TtnawNCivrsLDqsr3stpgNCivrsLDsiJzrj5kNCivrsLDrrLjtmLgNCivrsLDsnqzrjZUNCivrsLDsmIHsiJgNCivrsLDsnqztmZgNCivrsLDrrLjtnLQNCivrsLDshLHtlZgNCivrsLDtmZTsiJkNCivrsLDshKDquLANCivrsLDrspTsmqkNCivrsLDrj5nsiJgNCivrsLDrrLjqtIANCivrsLDtmITsi50NCivrsLDrs5Hqta0NCivrsLDquLDtmJwNCivrsLDtl4ztnawNCivrsLDssL3rgqgNCivrsLDrs5Hsm5ANCivrsLDrs5Hsi50NCivrsLDrqbTsl7QNCivrsLDsmIHsiKANCivrsLDrs5HsoJwNCivrsLDsoJXtnawNCivrsLDquIjrrLgNCivrsLDsmKXstpwNCivrsLDrs5HtlZgNCivrsLDqs4Tqt5wNCivrsLDsmIHsmKUNCivrsLDsmbjsmKUNCivrsLDrs5HtlbQNCivrsLDsnYDrj4QNCivrsLDrs7Xsm4UNCivrsLDtmJzsmrQNCivrsLDrs7Tqt7wNCivrsLDshJ3sobANCivrsLDqsr3sl7ANCivrsLDsg4Hqt7wNCivrsLDrs7XsiJwNCivrsLDshLHsobANCivrsLDsmIHssL0NCivrsLDtnazro6ENCivrsLDrtInquIgNCivrsLDrp5Dsp4QNCivrsLDspJHsiKANCivrsLDrr7ztlZkNCivrsLDrtInshJ0NCivrsLDsmKTsmrENCivrsLDtlYTsp4QNCivrsLDrrLjtmLgNCivrsLDrtInsmqkNCivrsLDsirntnaANCivrsLDsp4TshK0NCivrsLDsmIHtlZwNCivrsLDrtInsobANCivrsLDrs7XtlZwNCivrsLDstqnshLENCivrsLDshLHsmKQNCivrsLDrtIntmIQNCivrsLDsnqzshKANCivrsLDsp4Tsm5QNCivrsLDrrLTslaANCivrsLDrtIntmLgNCivrsLDsnqzsmrENCivrsLDrp4zsooUNCivrsLDsspztkZwNCivrsLDrtoTrnoANCivrsLDsooXsm5ANCivrsLDtlbTsi50NCivrsLDrjIDqtIANCivrsLDrtoTso7wNCivrsLDsmIHtmZQNCivrsLDrr7jrjZUNCivrsLDsooXsnpANCivrsLDsgrzsi50NCivrsLDsmIHsi50NCivrsLDrj5nsmrENCivrsLDsnoTquLANCivrsLDsgrztmZgNCivrsLDqt5zsi50NCivrsLDqsJHsp4ANCivrsLDsnqzrjZUNCivrsLDsg4HqtowNCivrsLDtlonsiJgNCivrsLDstpjsmKUNCivrsLDsiJzrk50NCivrsLDsg4Hqt5wNCivrsLDquLjsi50NCivrsLDrgqjsobANCivrsLDtlZzssqANCivrsLDsg4HquLgNCivrsLDspJHrnpgNCivrsLDtmJXsmrANCivrsLDshoztmY0NCivrsLDsg4HquLgNCivrsLDsnqzsl7ANCivrsLDrj5nsi50NCivrsLDtnaXqsrANCivrsLDsg4HquLgNCivrsLDrs5HqtawNCivrsLDqsJXrnpgNCivrsLDtg5zqt7wNCivrsLDsg4HrjIANCivrsLDrs5Hsl7ANCivrsLDspIDtg5wNCivrsLDtlZnquLgNCivrsLDsg4HrqqgNCivrsLDrp4ztmZQNCivrsLDsp4TtmLgNCivrsLDsmrTqtawNCivrsLDsg4HrtIkNCivrsLDssKjssqANCivrsLDshLHsmqkNCivrsLDsnqztmLgNCivrsLDsg4HrtIkNCivrsLDrr7jsobANCivrsLDsiJjshqENCivrsLDquLDsi50NCivrsLDsg4HsiKANCivrsLDshLHsi50NCivrsLDsoJDshLENCivrsLDrgqjsl7ANCivrsLDsg4Hsl7QNCivrsLDso7zslZQNCivrsLDsiJjtmowNCivrsLDrqoXsmKUNCivrsLDsg4HsmqkNCivrsLDquLDsnbwNCivrsLDrtoTrtoANCivrsLDsnqztlZwNCivrsLDsg4HsnbwNCivrsLDqt5zqt6ANCivrsLDsg4HsiJgNCivrsLDsooXsiJgNCivrsLDsg4HsooUNCivrsLAg7LKcDQor67Cw6rK965OdDQor67Cw6riw7ISgDQor67Cw7IOB7LC9DQor67Cw7LGE7JqwDQor67Cw6rCR7ISdDQor67Cw7IOB7YOcDQor67Cw7IOB7ZWcDQor67Cw7KCV7YOcDQor67Cw7IOB656YDQor67Cw7ZiE7IicDQor67Cw7IOB7ZiEDQor67Cw7KO87IicDQor67Cw7ISg66qpDQor67Cw67aA6ri4DQor67Cw7IOB7ZiEDQor67Cw7IOB7IiYDQor67Cw7J6s6rK9DQor67Cw7KKF64+ZDQor67Cw7IOB7Zi4DQor67Cw7JWg7J6QDQor67Cw7J6s7IiZDQor67Cw7JWg7ZmYDQor67Cw7IOB7ZuIDQor67Cw7YyQ7Jq0DQor67Cw7Jik7ZWZDQor67Cw7KO87Zi4DQor67Cw7IOB7Z2sDQor67Cw7Jik7KGwDQor67Cw6ri47JykDQor67Cw7J2R7IiYDQor67Cw7ISd66y4DQor67Cw6reA7ISxDQor67Cw6riw7IudDQor67Cw7KKF64+EDQor67Cw7ISd7JWUDQor67Cw7KSR7LKgDQor67Cw7YOc7IiZDQor67Cw7JuQ7JqwDQor67Cw7ISd7LacDQor67Cw6rK97JmEDQor67Cw7ISx7YOcDQor67Cw7J2A7J28DQor67Cw7ISg7JqpDQor67Cw64Kc7ISdDQor67Cw7LKg7JuQDQor67Cw7JiB7KSADQor67Cw7ISg7KCVDQor67Cw64+Z7IicDQor67Cw66+47Zi4DQor67Cw7J247JqUDQor67Cw7ISg7Zi4DQor67Cw7J287IudDQor67Cw7KeI7ZmYDQor67Cw7LKt7JiBDQor67Cw7ISx66GdDQor67Cw7Zmp64KoDQor67Cw7LC96rOkDQor67Cw7ISx6rWwDQor67Cw7ISx67KUDQor67Cw7ZWZ7IiZDQor67Cw7Jqp7ZmUDQor67Cw7IiY6recDQor67Cw7ISx7JqwDQor67Cw7KKF7IiYDQor67Cw6rCR6rK9DQor67Cw7Jq07JqwDQor67Cw7ISx7JqxDQor67Cw6rSR7ISdDQor67Cw7ZWt7ZWcDQor67Cw66+46rG0DQor67Cw7ISx7KGwDQor67Cw6riw7JWUDQor67Cw642V7Zi4DQor67Cw66eM67mIDQor67Cw7ISx7YOcDQor67Cw7ZmN6rSADQor67Cw7LKg7J6QDQor67Cw6reA7KGwDQor67Cw7ISx7ZWcDQor67Cw67O17KSADQor67Cw64+Z7JWgDQor67Cw7Jyg7IudDQor67Cw7ISx7ZicDQor67Cw7Jqp7ZiEDQor67Cw6rCV7IiZDQor67Cw642V67O1DQor67Cw7IS47Je0DQor67Cw7ISx6rWsDQor67Cw6rK97YOdDQor67Cw7JiB6rWtDQor67Cw7IaM67O1DQor67Cw7Iq57JuQDQor67Cw6rK967CwDQor67Cw6rK97ISdDQor67Cw7IaM7IicDQor67Cw67OR7JiBDQor67Cw7LC97Z2sDQor67Cw7KSA7IStDQor67Cw7IiY6rSRDQor67CwIOyihQ0KK+uwsO2MkOyEnQ0KK+uwsOuzkeyEsQ0KK+uwsOyImOq3nA0KK+uwsOyInO2ZlA0KK+uwsOyZuOyDgQ0KK+uwsOq4sOqwkQ0KK+uwsOyImOyekA0KK+uwsOyYgeyglQ0KK+uwsO2DnOyaqQ0KK+uwsOuPmeuPhA0KK+uwsOyImOyglQ0KK+uwsO2VnOyImA0KK+uwsOyIoOykgA0KK+uwsOuqheyaqQ0KK+uwsOyImO2YhA0KK+uwsOyImO2YuA0KK+uwsO2dpeyglQ0KK+uwsOyerOyInA0KK+uwsOyImO2YuA0KK+uwsOuCqOusuA0KK+uwsOuCnO2drA0KK+uwsOq0keuqqA0KK+uwsOyIme2ZmA0KK+uwsOyInOyImA0KK+uwsOyYgeyImA0KK+uwsOuqheuPhA0KK+uwsOyInOuNlQ0KK+uwsOygnOyVlA0KK+uwsOuCmO2ZmA0KK+uwsOyEse2YuA0KK+uwsOyInOyEnQ0KK+uwsOyInOq3nA0KK+uwsO2YhO2YuA0KK+uwsOyihe2VmQ0KK+uwsOyInOyXsA0KK+uwsOunkOyihQ0KK+uwsOynhOyZuA0KK+uwsOuCqOyaqQ0KK+uwsOyInOyYpQ0KK+uwsO2VtO2YuA0KK+uwsOyYgeyLnQ0KK+uwsOyDgeyEoA0KK+uwsOyInO2DnA0KK+uwsOyImOy2nA0KK+uwsOygleyatA0KK+uwsOyYgeq3nA0KK+uwsOyInO2doA0KK+uwsOywqOyYgQ0KK+uwsOyEoO2YuA0KK+uwsOq3vOyjvA0KK+uwsOyIoO2ZjQ0KK+uwsOyDgeqwkQ0KK+uwsOuzkeq3vA0KK+uwsO2ZjeyIoA0KK+uwsOyLoOq1rQ0KK+uwsOydhOynhA0KK+uwsOyDge2drA0KK+uwsOq1kOyEoA0KK+uwsOyLoO2YuA0KK+uwsOyihe2ZmA0KK+uwsOyEse2YuA0KK+uwsOyWkeuMgA0KK+uwsOyMjeyLnQ0KK+uwsOq0keyaqQ0KK+uwsOuvvO2YuA0KK+uwsOyCvOuegA0KK+uwsOyVlOydtA0KK+uwsOuLrOyhsA0KK+uwsOyiheyEoA0KK+uwsOuztO2DnA0KK+uwsOyYgeq4sA0KK+uwsO2VtOq4sA0KK+uwsOycoOyjvA0KK+uwsOyDge2YhA0KK+uwsOyYgeq4sA0KK+uwsOyiheq4sA0KK+uwsOuzkeyEoA0KK+uwsOyXsOyInA0KK+uwsOyYgeq4uA0KK+uwsOyerO2ZjQ0KK+uwsOuqhey5mA0KK+uwsOuemO2YhA0KK+uwsOyYgeuMgA0KK+uwsOq1kOyImA0KK+uwsO2WieyLnQ0KK+uwsOuzke2YuA0KK+uwsOyYgeuPhA0KK+uwsOyEneyDgQ0KK+uwsOuRkOq4sA0KK+uwsOq3gOyasA0KK+uwsOyYgeusuA0KK+uwsOymneyEnQ0KK+uwsOu0ieyXsA0KK+uwsOuzkeyasA0KK+uwsOyYgeusuA0KK+uwsOyehOyjvA0KK+uwsOq4sOybkA0KK+uwsO2DnO2ZlA0KK+uwsOyYgeuwsQ0KK+uwsOq4sOy5mA0KK+uwsOyaqeyInA0KK+uwsOygnOyImA0KK+uwsOyYgeyEnQ0KK+uwsOyImOuPmQ0KK+uwsOyDge2YhA0KK+uwsO2drOyekA0KK+uwsOyYgeyErQ0KK+uwsOyEseynhA0KK+uwsOyDgeyjvA0KK+uwsOyImOq2jA0KK+uwsOyYgeyImA0KK+uwsOy5oO2drA0KK+uwsOycpOy2mA0KK+uwsOyYgeq1rQ0KK+uwsOyYgeyLnQ0KK+uwsOyYge2ZmA0KK+uwsOq0ke2DnQ0KK+uwsOq0keyLnQ0KK+uwsOyYgeyLpA0KK+uwsOycpOuemA0KK+uwsOuzkeuPmQ0KK+uwsOyaqeyImQ0KK+uwsOyYgeyYpQ0KK+uwsOyghOq1kA0KK+uwsO2Vme2drA0KK+uwsO2DnOyInA0KK+uwsOyYgeybkA0KK+uwsOydhOuNlQ0KK+uwsOq0keyatA0KK+uwsOygnOuPmQ0KK+uwsOyYgeycqA0KK+uwsCDsnpANCivrsLDsnqztmqgNCivrsLDrj5nrgqgNCivrsLDsmIHsobANCivrsLDshKDqta0NCivrsLDtnazsmKUNCivrsLDsmqnsi50NCivrsLDsmIHsobANCivrsLDsooXsoJUNCivrsLDsmIHquLANCivrsLDsiJzrj5kNCivrsLDsmIHspIANCivrsLDrj5nrp4wNCivrsLDsmqntg5wNCivrsLDssL3rs7UNCivrsLDsmIHtg5wNCivrsLDri6ztmZgNCivrsLDsoJXtmLgNCivrsLDsmIHtnawNCivrsLDsmIHtlYQNCivrsLDsg4HsiKANCivrsLDssL3snpANCivrsLDsg4HrjIANCivrsLDsmIHtmLgNCivrsLDstpjsnpANCivrsLDshLHro6ENCivrsLDsnKTtmIQNCivrsLDsmIHtmLgNCivrsLDrsLHssKwNCivrsLDrrLTqs6QNCivrsLDsmIHshLENCivrsLDsmIHtmZgNCivrsLDqsJHsi50NCivrsLDsoJXqtawNCivrsLDrjZXtg5wNCivrsLDsmKXsiJwNCivrsLDssL3rn4kNCivrsLDsoJXquLgNCivrsLDrrLTsiJgNCivrsLDsmKXsnpANCivrsLDrjIDtmIQNCivrsLDshKDsmIENCivrsLDtmITsiJgNCivrsLDsmKXsooUNCivrsLDsoJXsnKQNCivrsLDtmJXsiJwNCivrsLDtlbTsi50NCivrsLDsmqnquLANCivrsLDtmqjruYgNCivrsLDsoJDso7wNCivrsLDsp4TsiJgNCivrsLDsmqnrk50NCivrsLDquIjsiJgNCivrsLDsmKTqt7wNCivrsLDtlZzshLENCivrsLDsmqnsiJwNCivrsLDrqoXshKANCivrsLDtjJDquIgNCivrsLDrjIDrspQNCivrsLDsmqnsiKANCivrsLDsoJXsmKQNCivrsLDsg4Hsm5ANCivrsLDsiJztmZgNCivrsLDsmqnsi50NCivrsLDsmqntmIQNCivrsLDqs4TshLENCivrsLDsgqztmLgNCivrsLDsmqnsi50NCivrsLDrjIDsnbwNCivrsLDshKDqsJENCivrsLDtlZzrp4wNCivrsLDsmqnslZQNCivrsLDrj4TroZ0NCivrsLDsnZjsiJwNCivrsLDtjJDso7wNCivrsLDsmqnsp4QNCivrsLDsiJjtnawNCivrsLDqsr3snbUNCivrsLDrj5nshLENCivrsLDsmqntg50NCivrsLDrs5HsiJwNCivrsLDsp4DsnqwNCivrsLDtlZzquIgNCivrsLDsmqntl4wNCivrsLDsnYDtnawNCivrsLDqtZDsoJUNCivrsLDssKzssqANCivrsLDsmqntmLgNCivrsLDsspzsmIENCivrsLDsi6TsiJgNCivrsLDsoJXsiJgNCivrsLDsmrDsm5ANCivrsLDrjZXsiJgNCivrsLDshLHshKANCivrsLDsp4TsiJgNCivrsLDsmrHquLANCivrsLDsnbzsoJANCivrsLDtlZzsp4ANCivrsLDshoztg5wNCivrsLDsm5DrtoQNCivrsLDshozquLANCivrsLDsiJnsobANCivrsLDstpjsiJgNCivrsLDsm5DshJ0NCivrsLDtmLjshLENCivrsLDssL3qt6ANCivrsLDsjI3tmIQNCivrsLDsm5DtkZwNCivrsLDssKzsobANCivrsLDsiJjspIANCivrsLDshKDsnoQNCivrsLDsm5DtmLgNCivrsLDsnbjsmrANCivrsLDsnpHsi50NCivrsLDsooXsiJgNCivrsLDsm5DtmZgNCivrsLDsiJzquLANCivrsLDtmY3rtoQNCivrsLDtlZnsiJgNCivrsLDsm5DtnawNCivrsLDqsr3snbQNCivrsLDssL3tnawNCivrsLDsnbjtm4QNCivrsLDsnKTshK0NCivrsLDtg5zqsbQNCivrsLDqt4DshJ0NCivrsLDtlZzrsLANCivrsLDsnKTsooUNCivrsLDrp5DsnbUNCivrsLDqtazrgqgNCivrsLDrkZDsoJUNCivrsLDsnKTsp4QNCivrsLDsoJXtnawNCivrsLDslrjsm4UNCivrsLDsmKXslrUNCivrsLDsnKTsspwNCivrsLDsoJXsiJgNCivrsLDsmIHqtIANCivrsLDquLDrnoANCivrsLDsnKTtkZwNCivrsLDsooXtmLgNCivrsLDsiJjsnKQNCivrsLDrs7Xqt7wNCivrsLDsnKTtlZwNCivrsLDtg5zqsJUNCivrsLDsooXroYANCivrsLDrs5Hsi50NCivrsLDsnYTrtIkNCivrsLDtmLjsm4UNCivrsLDsoJXtg5wNCivrsLDtmY3tmJwNCivrsLDsnYTshKANCivrsLDsnqzrjIANCivrsLDqsr3tmLgNCivrsLDssKzqtawNCivrsLDsnYzsl7ANCivrsLDsnbjsiJgNCivrsLDsnYDsp4QNCivrsLDsmqnshK0NCivrsLDsnZHsm5ANCivrsLDsmIHshKANCivrsLDshLHshKANCivrsLDtg5zstpwNCivrsLDsnZjtkZwNCivrsLDsmrDsmpQNCivrsLDsnKDqt7wNCivrsLDsp4DrrLgNCivrsLDsnZjtkZwNCivrsLDtmITtnawNCivrsLDsnYDshK0NCivrsLDtlbTrtIkNCivrsLDsnZjtkZwNCivrsLDsmIHslZQNCivrsLDstpjqsr0NCivrsLDsg4HroKQNCivrsLDsnbTtmZQNCivrsLDshLHtmZgNCivrsLDtl4ztm4gNCivrsLDquIjrp5ANCivrsLDsnbjquLANCivrsLDquLDsmrQNCivrsLDrqoXsl7ANCivrsLDrqoXrj5kNCivrsLDsnbjtmLgNCivrsLDrqoXqs6QNCivrsLDsooXrhYQNCivrsLDquLDsl7QNCivrsLDsnbzqsr0NCivrsLDsooXri6wNCivrsLDshqHqt7wNCivrsLDqtJHsiJgNCivrsLDsnbzqtowNCivrsLDrrLjsobANCivrsLDrqoXqt5wNCivrsLDsooXquLANCivrsLDsnbzshKANCivrsLDqsr3rnpgNCivrsLDqt7nsmKUNCivrsLDsmIHrp4wNCivrsLDsnbztmIQNCivrsLDsiJjtnawNCivrsLDssqDtmIQNCivrsLDsooXso7wNCivrsLDsnbztmIQNCivrsLDsm5DrsLANCivrsLDrqoXsnpANCivrsLDquLDqtIANCivrsLDsnbztmZQNCivrsLDsnqzqt7wNCivrsLDrj5nslZQNCivrsLDsooXtmIQNCivrsLDsnbztmZgNCivrsLDsnqXrprwNCivrsLDrs5HtmLgNCivrsLDsiJzshKANCivrsLDsnoTrj4QNCivrsLDsmIHqs4QNCivrsLDtl4ztmZQNCivrsLDstpjqtZANCivrsLDsnoTrj4QNCivrsLDsnqzsiJwNCivrsLDssYTshJ0NCivrsLDqt7zshK0NCivrsLDsnoTsiJwNCivrsLDshLjsi50NCivrsLDqsJXsi50NCivrsLDsmIHquIgNCivrsLDsnqXsiJgNCivrsLDsi6DsmrANCivrsLDslpHquLANCivrsLDrr7jsmKUNCivrsLDsnqXtmLgNCivrsLDsooXtmIQNCivrsLDqsr3siJgNCivrsLDrp5Dsp4ENCivrsLDsnqXtmLgNCivrsLDtmY3rtIkNCivrsLDrkZDsp4QNCivrsLDqt5zsl7QNCivrsLDsnqzqtIANCivrsLDrs5HsooUNCivrsLDsooXsp4QNCivrsLDtnazrsLANCivrsLDsnqzqtowNCivrsLDrhbjsi5wNCivrsLDrqoXsm5ANCivrsLDsiJjtnaANCivrsLDsnqzqt5wNCivrsLDrk53snKgNCivrsLDtmITqtawNCivrsLDslpHrtIkNCivrsLDsnqzrhYQNCivrsLDtjJDsiJgNCivrsLDsp4TshKANCivrsLDrjZXsnoQNCivrsLDsnqzrjZUNCivrsLDssKjrp4wNCivrsLDsmqnsi50NCivrsLDrj5nsiJgNCivrsLDsnqzrp4wNCivrsLDtg5zshLENCivrsLDsnqzsobANCivrsLDshLjtg50NCivrsLDsnqzrtIkNCivrsLDsiJjsmKQNCivrsLDsooXtmLgNCivrsLDshLHrtIkNCivrsLDsnqzsg4ENCivrsLDsiJjsiJgNCivrsLDshKDrn4kNCivrsLDsooXsobANCivrsLDsnqzsiJgNCivrsLDri6zsmrANCivrsLDrj4jtlYQNCivrsLDsiJjrj5kNCivrsLDsnqzsmIENCivrsLDshLHtj6wNCivrsLDssqDsnpANCivrsLDsmIHrp4wNCivrsLDsnqzsnKQNCivrsLDspIDsnqwNCivrsLDspIDtla0NCivrsLDsmIHtm4gNCivrsLDsnqzsnYANCivrsLDsg4HrgqgNCivrsLDqt5zsmqkNCivrsLDqtJHsmIENCivrsLDsnqzsnbUNCivrsLDsmIHsi50NCivrsLDshLjtmIQNCivrsLDsnYTtm4gNCivrsLDsnqztnaUNCivrsLDrj4Tsl7QNCivrsLDshLHsmIENCivrsLDsoJXsi50NCivrsLDsoJDrs7UNCivrsLDtg5zsmIENCivrsLDsirnsiJgNCivrsLDtlZnsmqkNCivrsLDsoJDshKANCivrsLDrj5nslZQNCivrsLDrkZDstpgNCivrsLDqt4DrhYQNCivrsLDsoJDtkZwNCivrsLDsoJXsmqkNCivrsLDrhbjsiJgNCivrsLDrqoXrp4wNCivrsLDsoJXqsJENCivrsLDsmIHsnbQNCivrsLDquLDtmIQNCivrsLDrj5nsnpANCivrsLDsoJXquLgNCivrsLDshozrs7UNCivrsLDsp4Tsi50NCivrsLDshLHsmIENCivrsLDsoJXrj4QNCivrsLDrr7jtmJUNCivrsLDsnqXsiJgNCivrsLDsmIHslZQNCivrsLDsoJXsiJgNCivrsLDquLjrs7QNCivrsLDsoJXtg5wNCivrsLDsooXrsLANCivrsLDsoJXsi50NCivrsLDrp5DqtJENCivrsLDstpjqtawNCivrsLDri6zsm5ANCivrsLDsoJXsm4UNCivrsLDsnZHsmqkNCivrsLDsm5DspIANCivrsLDquIjsm5ANCivrsLDsoJXsm5ANCivrsLDqsJHquLgNCivrsLDsp4TtmZQNCivrsLDtmY3smqkNCivrsLDsoJXsoJwNCivrsLDqsr3tjJQNCivrsLDrqoXtmIQNCivrsLDrnpjshJ0NCivrsLDsoJXtg5wNCivrsLDssL3qsr0NCivrsLDqsr3qtowNCivrsLDsm5DquLANCivrsLDsoJXtlZwNCivrsLDrjIDtmIQNCivrsLDssq3rsLANCivrsLDtl4zsmKQNCivrsLDsoJXtmZgNCivrsLDsiJjsmIENCivrsLDqt5zqt7wNCivrsLDrqoXsmKQNCivrsLDsoJXtnawNCivrsLDsoJXtmIQNCivrsLDsmIHtmZgNCivrsLDsnqXshKANCivrsLDsooXrp4wNCivrsLDsgrzqt5wNCivrsLDshLjsmqkNCivrsLDtg5zsiKANCivrsLDsooXsi50NCivrsLDrs5HslaANCivrsLDqsr3siKANCivrsLDssKjqta0NCivrsLDsooXsmrENCivrsLDtmY3siJgNCivrsLDquLDsi50NCivrsLDsooXsl6wNCivrsLDsooXssqANCivrsLDtmITshK0NCivrsLDqsr3smKQNCivrsLDsooXsnpANCivrsLDsooXtmZQNCivrsLDrjZXsi50NCivrsLDsooXtmLgNCivrsLDsnoTqt5wNCivrsLDsooXtnawNCivrsLDtg5zrj4QNCivrsLDsg4Hsl7QNCivrsLDqtZDrtIkNCivrsLDso7ztlZwNCivrsLDrp4zsiJgNCivrsLDsm5DquLANCivrsLDsmrTsm5ANCivrsLDspIDqt7wNCivrsLDsmKTsmqkNCivrsLDtmqjsnqwNCivrsLDsm5DslYUNCivrsLDspIDtmLgNCivrsLDsp4Dsi50NCivrsLDtg5zsm4UNCivrsLDsiJzqsr0NCivrsLDspJHtmLgNCivrsLDsmIHtmZgNCivrsLDshKDtm4gNCivrsLDshLHsiJgNCivrsLDsp4Trj5kNCivrsLDssKjsiJgNCivrsLDshLHtlZkNCivrsLDqsr3tmIQNCivrsLDsp4TsmIENCivrsLDso7zrp7kNCivrsLDsg4HshK0NCivrsLDshJ3snpANCivrsLDssKjrrLgNCivrsLDsnbzshJ0NCivrsLDqsJHtmLgNCivrsLDsnpDquLANCivrsLDssL3rjIANCivrsLDsp4DtlbQNCivrsLDqt5zsiJgNCivrsLDshKDqt6ANCivrsLDssL3siJgNCivrsLDshLHsiJgNCivrsLDrp5DtmZQNCivrsLDquIjqt5wNCivrsLDssL3si50NCivrsLDsoJXsiJwNCivrsLDsjI3sg4ENCivrsLDsmKTsl7QNCivrsLDssL3smrENCivrsLDri6zsmqkNCivrsLDsmKXslZQNCivrsLDqsr3sl7QNCivrsLDssL3snbgNCivrsLDsooXsmKQNCivrsLDqt4DsiJgNCivrsLDrs5HsobANCivrsLDssL3tmLgNCivrsLDtmLjsi50NCivrsLDsoJXrj4wNCivrsLDsmqnsmqkNCivrsLDssL3tmLgNCivrsLDsoJXtnawNCivrsLDshLHsmqkNCivrsLDsnYTtmIQNCivrsLDsspzrspQNCivrsLDri6zqt7wNCivrsLDsooXspIANCivrsLDsooXrjIANCivrsLDsuaDsp4QNCivrsLDsmIHqt7wNCivrsLDsnqzspJENCivrsLDsnbjtmLgNCivrsLDsuaDtmZgNCivrsLDrj4TssqANCivrsLDsnZjsl7QNCivrsLDsnqztmIQNCivrsLDtg5zqs6QNCivrsLDsgqzquIgNCivrsLDsiJnsiJgNCivrsLDtg5ztmLgNCivrsLDtg5zrp4wNCivrsLDsg4HtmLgNCivrsLDspIDtmLgNCivrsLDshqHrgqgNCivrsLDtg5zrqoUNCivrsLDsooXtg5wNCivrsLDsnbjsnKQNCivrsLDqt4DsmIENCivrsLDtg5zshJ0NCivrsLDsnbzsnpANCivrsLDsnqzsm5ANCivrsLDshLjqtowNCivrsLDtg5zsl7ANCivrsLDtmqjssqANCivrsLDshLHtmZgNCivrsLDqsr3tnawNCivrsLDtg5zsnpANCivrsLDsnqzsi6wNCivrsLDrs5HtlZwNCivrsLDsooXqs6QNCivrsLDtg5ztmIQNCivrsLDrnpjtmLgNCivrsLDrj5nsiJgNCivrsLDsnYTtmLkNCivrsLDtg5ztmLgNCivrsLDtlbTsnpANCivrsLDsmIHtnawNCivrsLDsmrDsiJwNCivrsLDtg5ztmLgNCivrsLDsg4HsiJgNCivrsLDqtJHqt5wNCivrsLDsnqztnawNCivrsLDtg5ztmZgNCivrsLDsp4TsnbwNCivrsLDsnqXtmZgNCivrsLDqsJHshKANCivrsLDtjJDsi50NCivrsLDrjZXslrgNCivrsLDrrLjrgqgNCivrsLDsooXsl7QNCivrsLDtjJDsnbQNCivrsLDsoJXsiJkNCivrsLDrs5HslZQNCivrsLDssKjsm5ANCivrsLDtlYTrgqgNCivrsLDshLHqs4QNCivrsLDqsr3quLANCivrsLDsoJXtmIQNCivrsLDtlYTroKgNCivrsLDtl4zsi50NCivrsLDshLHsnbUNCivrsLDsiJjspIANCivrsLDtlYTsl7ANCivrsLDtlZnqt7wNCivrsLDquLDrrLgNCivrsLDrr7jsg50NCivrsLDtlZjsmIENCivrsLDrr7jtmLgNCivrsLDtg5zsmrENCivrsLDsoJXsi50NCivrsLDtlZjsmIENCivrsLDsirnssqANCivrsLDsg4HsiJkNCivrsLDsiJzrk50NCivrsLDtlZjtmIQNCivrsLDsoJXrtoANCivrsLDrjIDrgqgNCivrsLDsnqztnawNCivrsLDtlZnrj4wNCivrsLDsmIHtlZgNCivrsLDrsLHtg5wNCivrsLDtg5ztnawNCivrsLDtlZnsi50NCivrsLDqs7XqtZANCivrsLDsnKTsmIENCivrsLDsmbjsiJwNCivrsLDtlZzrqqgNCivrsLDtlZnqt7wNCivrsLDsmKXtmZgNCivrsLDsgrzsiJgNCivrsLDtlZzrqqgNCivrsLDshLHtmZQNCivrsLDsmIHsiJwNCivrsLDshLHqtowNCivrsLDtlZzsobANCivrsLDsiJjsooUNCivrsLDrs5HtnawNCivrsLDqsbTtmIQNCivrsLDtlbTrp4wNCivrsLDspJHsiJwNCivrsLDtmITro6ENCivrsLDshLHtnawNCivrsLDtlbTshJ0NCivrsLDsm5DtnJgNCivrsLDquLDshLENCivrsLDsooztmLgNCivrsLDtlbTshLENCivrsLDshLHtmZQNCivrsLDsmIHsl7QNCivrsLDsg4HqtawNCivrsLDtlbTsiKANCivrsLDspJHqs6QNCivrsLDqsbTtnawNCivrsLDrgqjtnLQNCivrsLDtmITsiJwNCivrsLDsmrTqt7wNCivrsLDri6TqtowNCivrsLDtg5zrrLgNCivrsLDtmJXtlZwNCivrsLDsnoTsuZgNCivrsLDtmITsnpANCivrsLDrjZXtmY0NCivrsLDtmJzsiJkNCivrsLDsmIHtnLQNCivrsLDrjIDshJ0NCivrsLDsoJDsobANCivrsLDtmLjqsr0NCivrsLDrjIDsm5ANCivrsLDtg5zssqANCivrsLDsoJXsmrQNCivrsLDtmLjqtowNCivrsLDri6zso7wNCivrsLDssL3si50NCivrsLDso7zsm5ANCivrsLDtmLjsobANCivrsLDsoJDsnbQNCivrsLDshLHso7wNCivrsLDrs5HtnawNCivrsLDtmLjsp4QNCivrsLDrrLTtmJUNCivrsLDrrLTqs6QNCivrsLDquLDsmIENCivrsLDtmY3rjIANCivrsLDshJ3shJ0NCivrsLDsooXqt7wNCivrsLDrjIDstpwNCivrsLDtmY3rjZUNCivrsLDsooXsobANCivrsLDrhbjsiJgNCivrsLDsg4Hqta0NCivrsLDtmY3sl7QNCivrsLDshLjtmLgNCivrsLDsoJXtmLgNCivrsLDrs5Hsl7ANCivrsLDtmY3tg4ENCivrsLDsiJjqtJENCivrsLDsmqnrpZwNCivrsLDsooXqt7wNCivrsLDtmqjsmrENCivrsLDsiJjtmIQNCivrsLDtmY3qt7wNCivrsLDqtJHrgqgNCivrsLDtmqjsm5ANCivrsLDsmIHsiKANCivrsLDrrLjsiJgNCivrsLDsoJXtlZkNCivrsLDtmqjsm5ANCivrsLDsmqnqt5wNCivrsLDshLHsiJkNCivrsLDtg5ztnJgNCivrsLDtmqjso7wNCivrsLDsoJXsnbQNCivrsLDtg5zsg4ENCivrsLDsoJXquLANCivrsLEg7ISdDQor67Cx7IiY7Z2sDQor67Cx7J6s6regDQor67Cx7JiB7LacDQor67Cx6rCR7Z2gDQor67Cx7ZW07Z2sDQor67Cx7J6s7Z2sDQor67Cx7ISx7ZiEDQor67Cx6rK966a8DQor67Cx7Z2s6ri4DQor67Cx7KCV7KSADQor67Cx6rSR7J21DQor67Cx6rK97IicDQor67Cx6rK97LacDQor67Cx66+87IicDQor67Cx7KCV7IKwDQor67Cx6rK97LKgDQor67Cx7ISx67CxDQor67Cx7J247J6EDQor67Cx7KSA7JqwDQor67Cx6rSR7IiYDQor67Cx7KSR7ISgDQor67Cx7ZmN6regDQor67Cx7J2Y67O1DQor67Cx6rSR7JuFDQor67Cx7ZqM64+EDQor67Cx7Jqp7IudDQor67Cx7KO87Z2sDQor67Cx6rSR7J28DQor67Cx6riw7IudDQor67Cx7IaM6ri4DQor67Cx6rec7Z2sDQor67Cx6rSR7KCEDQor67Cx67O47J6sDQor67Cx7J2Y7KSADQor67Cx7ISx7IudDQor67Cx6raM7JqxDQor67Cx6rK97IicDQor67Cx7IOB7LKgDQor67Cx7ZmN7ISdDQor67Cx6re87Zi4DQor67Cx6riI7Je0DQor67Cx7KCV7ZmYDQor67Cx7J2E7Zi4DQor67Cx6riw7KGwDQor67Cx7Jq06re8DQor67Cx7Iic642VDQor67Cx7ZW07ZmYDQor67Cx6riw7YOcDQor67Cx642V7KSADQor67Cx66y07KO8DQor67Cx642V67aEDQor67Cx6ri47ISgDQor67Cx6rK97Zi4DQor67Cx7J6s7IStDQor67Cx6rK97ZmYDQor67Cx64Ko66OhDQor67Cx7ISd7ISxDQor67Cx7KeE66eMDQor67Cx7Iic7ISxDQor67Cx64Ko7ISdDQor67Cx66y47ISgDQor67Cx7Jm47JyoDQor67Cx7J6s7Je0DQor67Cx64Ko7IiYDQor67Cx64yA7J6QDQor67Cx6rWQ7YOcDQor67Cx6rec7IudDQor67Cx64Ko7KeEDQor67Cx7J287IS4DQor67CxIO2YuA0KK+uwseyEseq4sA0KK+uwseuFuOyImA0KK+uwseustOustA0KK+uwse2YuOyImQ0KK+uwseq4iOyZhA0KK+uwseuMgO2VmQ0KK+uwseyIoOybkA0KK+uwseyDge2YhA0KK+uwse2ZmOyVlA0KK+uwseuMgO2YhA0KK+uwseyjvOusuA0KK+uwseuRkOy2nA0KK+uwseuPhOusuA0KK+uwseuMgO2YuA0KK+uwseyYgeyaqQ0KK+uwseygkOyyoA0KK+uwseyaqeyyoA0KK+uwseuPhOu0iQ0KK+uwseq4sOuqhQ0KK+uwse2DnOy2nA0KK+uwseuqhe2YuA0KK+uwseuPmeyIoA0KK+uwse2YhOu2hA0KK+uwseygle2drA0KK+uwse2DnOyhsA0KK+uwseuPmeygnA0KK+uwseyjvOyXtA0KK+uwseydmO2DnQ0KK+uwse2MkOyLnQ0KK+uwseuPmeygnA0KK+uwseyaqeyatA0KK+uwseyynOyLnQ0KK+uwseyXsOyZlQ0KK+uwseuRkOyerA0KK+uwseyEseq3vA0KK+uwseqyveq1kA0KK+uwseyaqeykgA0KK+uwseuRkO2YhA0KK+uwseyDgeyWtQ0KK+uwseyEseq3nA0KK+uwseydvOyLrA0KK+uwseuRkO2YhA0KK+uwse2Zjeq4sA0KK+uwse2MkO2DnQ0KK+uwseuzteuNlQ0KK+uwseuRkO2YhA0KK+uwseuNleyImA0KK+uwseyYgeuztQ0KK+uwseyLoOyYpQ0KK+uwseuRkO2YhA0KK+uwseuPmeusuA0KK+uwseyDgeq4sA0KK+uwseyYgeyEoA0KK+uwseunjOq4sA0KK+uwseyjvO2ZmA0KK+uwsSDtmLgNCivrsLHsoJDsmqkNCivrsLHrp4zrjIANCivrsLHsoJXtmIQNCivrsLHsooXsmIENCivrsLHtmJXqt6ANCivrsLHrp5DsiJgNCivrsLHsp4jtmIQNCivrsLHqtIDtmZgNCivrsLHsoJXsmKUNCivrsLHrp6TtlqUNCivrsLHqsr3siJkNCivrsLHrk53tmIQNCivrsLHtnazshJ0NCivrsLHrqoXsiJgNCivrsLHsmIHrnb0NCivrsLHsnKTrnb0NCivrsLHsooXtmZgNCivrsLHrqoXtmIQNCivrsLHrj5nshJwNCivrsLHsnYDsiKANCivrsLHsnbztmLgNCivrsLHrqr3roKgNCivrsLHsiJzsi50NCivrsLHrqoXspIANCivrsLHrspTquLANCivrsLHrrLTqsJENCivrsLEg7ZiEDQor67Cx7J2A7LaYDQor67Cx7LCo64yADQor67Cx66y07JqpDQor67Cx64us7ISdDQor67Cx7ZeM7IiYDQor67Cx7IK87J6EDQor67Cx66y07KGwDQor67Cx6riw7Z2sDQor67Cx7ISx7ZuIDQor67Cx7KSR7Z2sDQor67Cx66y466eMDQor67Cx7IOB6riwDQor67Cx7Jyh7J2ADQor67Cx7J6s7IiYDQor67Cx66y47IOBDQor67Cx65GQ7IicDQor67Cx7IiZ642VDQor67Cx7KO87JiBDQor67Cx66y47ZiEDQor67Cx6re87YOcDQor67Cx67O17KCVDQor67Cx67SJ7JuQDQor67Cx66+87IiZDQor67Cx7KeE7IudDQor67Cx7LC97KSRDQor67Cx6rK97ZiEDQor67Cx67Cp6riwDQor67CxIOybkA0KK+uwseyYge2drA0KK+uwseqyvey5mA0KK+uwseuztOuwsA0KK+uwseyYgeyLnQ0KK+uwseuHjOyCvA0KK+uwse2VnOyDgQ0KK+uwseuztO2YhA0KK+uwseydtO2YuA0KK+uwseyYge2biA0KK+uwseustOyLnQ0KK+uwseuzteq4sA0KK+uwse2YhO2DgQ0KK+uwse2Yle2ZlA0KK+uwseyyre2YuA0KK+uwseuzteyInA0KK+uwseq4sOyhsA0KK+uwseyYge2ZmA0KK+uwseuvvOunjA0KK+uwseu0ieusuA0KK+uwseyDgeyXsA0KK+uwseq0keq4sA0KK+uwse2DnOyXhQ0KK+uwseu2gOyehA0KK+uwse2YuOyLnQ0KK+uwseyEseuCqA0KK+uwseyEne2biA0KK+uwseyCrOqwlQ0KK+uwseyngOyYgQ0KK+uwseq0ke2DnA0KK+uwseq3vO2YuA0KK+uwseyCvOyImA0KK+uwseygleuhgA0KK+uwseyerOyasA0KK+uwseuRkOynhA0KK+uwseyDgeqysA0KK+uwseyerOybhQ0KK+uwseqyvey5mA0KK+uwseyEseyxhA0KK+uwseyDgeuNlQ0KK+uwseuPmeyImQ0KK+uwseyiheq3nA0KK+uwseq3vOyXsA0KK+uwseyEneuPhA0KK+uwseyEseu0iQ0KK+uwseyerOyLnQ0KK+uwseyYge2drA0KK+uwseyEneyekA0KK+uwseybkOyYgQ0KK+uwseq3gO2YuA0KK+uwseyEseuNlQ0KK+uwseyEneykgA0KK+uwseq3nOynhA0KK+uwseyerOyglQ0KK+uwseyEseq1rQ0KK+uwseyEneynhA0KK+uwse2DnOyXsA0KK+uwseyYgeywrA0KK+uwseywrOuztQ0KK+uwseyEoO2YhA0KK+uwseyerO2WpQ0KK+uwseyepeyImA0KK+uwseywveyyoA0KK+uwseyEseq1rQ0KK+uwseyYgeyYpA0KK+uwseq1reyaqQ0KK+uwseq1rOyglQ0KK+uwseyEseq2jA0KK+uwseywveq3nA0KK+uwseyVhO2YuA0KK+uwseyEneq4uA0KK+uwseyEseq4sA0KK+uwseqwkeuNlQ0KK+uwseyEoO2YuA0KK+uwseydgOuPjA0KK+uwseyEseq4sA0KK+uwse2DnOumvA0KK+uwseyLoO2YuA0KK+uwseq1reynhA0KK+uwseyGjOuPjA0KK+uwseqyveyInA0KK+uwseyCvOyerA0KK+uwseychOq3nA0KK+uwseyGjOu2gA0KK+uwseygleuLrA0KK+uwseyaqe2YuA0KK+uwse2MkOyerA0KK+uwseyGjOyImA0KK+uwse2DnO2VmQ0KK+uwse2MkO2biA0KK+uwse2VmeunjA0KK+uwseyGjOybhQ0KK+uwseyEse2ZmA0KK+uwseyiheyhsA0KK+uwse2MkOq1rQ0KK+uwseyGjOyhsA0KK+uwseuLrOqyvQ0KK+uwseuPmeyImA0KK+uwseyaqeybkA0KK+uwseyGoe2VmQ0KK+uwseyEuOyhsA0KK+uwseu0ieq3oA0KK+uwseykgOyVlA0KK+uwseyImOyglQ0KK+uwseyiheyaqQ0KK+uwseu0iey2mA0KK+uwseuylOyDgQ0KK+uwseyImOywvQ0KK+uwse2DnOq4sA0KK+uwseyCvOuFuA0KK+uwseq4sO2YuA0KK+uwseyImeyekA0KK+uwseyaqeyImA0KK+uwseyYpeyhsA0KK+uwseyDge2YuA0KK+uwseyInOuNlQ0KK+uwseyiheyEnQ0KK+uwseyCrOyehA0KK+uwse2ZqeyYpQ0KK+uwseyInOyEoA0KK+uwseq4sOusuA0KK+uwseywveuTnQ0KK+uwse2YgeykgA0KK+uwseyInOyYpQ0KK+uwseuqheybkA0KK+uwseusuOyImA0KK+uwseygleyekA0KK+uwseyInO2DnA0KK+uwseyDgey2nA0KK+uwseyEseq3oA0KK+uwseq4sOqxtA0KK+uwseyKueq3nA0KK+uwseuPmeyImA0KK+uwseyEseyEnQ0KK+uwseyYpeyEsQ0KK+uwseyKueuNlQ0KK+uwse2VtO2ZmA0KK+uwseyaqeq3nA0KK+uwseuzke2VmA0KK+uwseyKueuhnA0KK+uwseuPmeq4uA0KK+uwseuqheyynA0KK+uwseyInO2drA0KK+uwseyKueunjA0KK+uwseygleyYgQ0KK+uwseygleyLnQ0KK+uwseq3nOyImA0KK+uwseyKueyXtA0KK+uwseyyoOywrA0KK+uwseykkeyasA0KK+uwseyGjOyInA0KK+uwseyKueyasQ0KK+uwseuvuOyImA0KK+uwseyIoOq3vA0KK+uwseyaqeq0kQ0KK+uwseyKue2DnA0KK+uwseygkOybkA0KK+uwseygleyImA0KK+uwseyEseq4uA0KK+uwseyKue2DnA0KK+uwseyYgeyyoA0KK+uwseyYgeq1rA0KK+uwseygle2aqA0KK+uwseyKue2DnQ0KK+uwseydgOq3uQ0KK+uwseyiheyEoA0KK+uwseuNle2VnA0KK+uwseyYgeq3nA0KK+uwseyYgeyYgQ0KK+uwseq3nOyIoA0KK+uwseyYge2DnA0KK+uwseyYgeq3nA0KK+uwse2dpeydmA0KK+uwseyImOuloA0KK+uwseyYge2ZjQ0KK+uwseyYgeq4sA0KK+uwseyEneyImA0KK+uwseyYge2ZmA0KK+uwseq4sOyImA0KK+uwseyYgeuwsA0KK+uwsey5oOyInA0KK+uwseunjOyYpA0KK+uwseyerOyYpA0KK+uwseyYgeyImA0KK+uwseyInOydtQ0KK+uwseuPhOq3vA0KK+uwseuqheyjvA0KK+uwseyYgeyImA0KK+uwseyDgeqxtA0KK+uwseuCqOuwsA0KK+uwseyiheq4uA0KK+uwseyYgeyLnQ0KK+uwseq0key2nA0KK+uwseydvOykgA0KK+uwsSDrqoUNCivrsLHsmIHso7wNCivrsLHtmZTsmrANCivrsLHtmY3snpANCivrsLHsmqnrs7QNCivrsLHsmIHspIANCivrsLHsmKXsiJgNCivrsLHshpDssqANCivrsLHsp4Tqt5wNCivrsLHsmIHssqANCivrsLHsnqzrj4QNCivrsLHrjIDtg5wNCivrsLHstpjsobANCivrsLHsmIHstpgNCivrsLHsmrTqta0NCivrsLHsnqztg5wNCivrsLHsmrTshKANCivrsLHsmIHtmLgNCivrsLHrs5Hsm5ANCivrsLHquLDtmqgNCivrsLHtjJDrj5kNCivrsLHsmIHtmLgNCivrsLHsg4HtmLgNCivrsLHsmIHqtowNCivrsLHsooXso7wNCivrsLHsmIHtmLgNCivrsLHsoJzrj5kNCivrsLHsiJztmZgNCivrsLHsmIHtlZwNCivrsLHsmIHtmLgNCivrsLHqt7zsobANCivrsLHsooXqt7wNCivrsLHqtZDsnpANCivrsLHsmIHtnawNCivrsLHsg4HquLANCivrsLHqt5zqtoENCivrsLHrtInsiJwNCivrsLHsmKXrnoANCivrsLHrrLjsnpANCivrsLHtmZjtnawNCivrsLHrj5nsp4QNCivrsLHsmrHsmqkNCivrsLHsl7DsiJgNCivrsLHspJHslrUNCivrsLHsnqztnawNCivrsLHsmrTroZwNCivrsLHshLHsooUNCivrsLHsnKTsiJwNCivrsLHshLHrrLgNCivrsLHsmrTsmrANCivrsLHssq3spJENCivrsLHshLHsmqkNCivrsLHshozsp4QNCivrsLHsmrTsmrANCivrsLHsoJXsi50NCivrsLHso7zsobANCivrsLHsooXtlYQNCivrsLHsmrTssqANCivrsLHrhbjsnbQNCivrsLHrtInsm5QNCivrsLHtg5zsiJgNCivrsLHsmrTtg5wNCivrsLHtlZzsl7ANCivrsLHsp4jrjIANCivrsLHshLHsuZgNCivrsLHsmrTtlZkNCivrsLHslpHrjIANCivrsLHqt5zsmqkNCivrsLHrtoTsiJkNCivrsLHsmrTtmLgNCivrsLHsnqzqs6QNCivrsLHsgrzsi50NCivrsLHsmIHrspQNCivrsLHsm4Xsl7QNCivrsLHtg5zqtowNCivrsLHsoJXsiJgNCivrsLHrs5Hqsr0NCivrsLHsm5DquLANCivrsLHsnqztg5wNCivrsLHsnZHtmZgNCivrsLHsooXqta0NCivrsLHsm5DsuZgNCivrsLHsnqztnawNCivrsLHsirntlqUNCivrsLHsnZjsiKANCivrsLHsnKDrtoQNCivrsLHtmZjsiJgNCivrsLHshoztmIQNCivrsLHsp4TtmIQNCivrsLHsnKTsi50NCivrsLHsg4HsiJwNCivrsLHsnqzsooUNCivrsLHspJHsiJkNCivrsLHsnKTssqANCivrsLHsg4Hrs7UNCivrsLHsmIHstpgNCivrsLHsnqzsiJwNCivrsLHsnKTssqANCivrsLHsnqzsi50NCivrsLHssL3tmLgNCivrsLHqtJHroKgNCivrsLHsnKTtmIQNCivrsLHsp4Drnb0NCivrsLHsoJXsl7QNCivrsLHsiJjspIANCivrsLHsnYDsi50NCivrsLHsm5DrqqgNCivrsLHtg5zsmqkNCivrsLHsooXsiJgNCivrsLHsnbjquLgNCivrsLHsmIHsiJgNCivrsLHquLDsl7ANCivrsLHrs7Xqs6QNCivrsLHsnbjshJ0NCivrsLHsmIHquLgNCivrsLHsgrzsobANCivrsLHshJ3rjZUNCivrsLHsnbjssKwNCivrsLHqs4TsiKANCivrsLHsnZjtmLgNCivrsLHsiJzsnoQNCivrsLHsnbjtmIQNCivrsLHsoJXsi50NCivrsLHshKDsnKQNCivrsLHshLHtmZgNCivrsLHsnbjtnaANCivrsLHsiJzsl7ANCivrsLHsmqnrqqgNCivrsLHsnqzsmrANCivrsLHsnbzquLANCivrsLHsiJzrs7UNCivrsLHrtInsiJwNCivrsLHsnYDtnawNCivrsLHsnbztmIQNCivrsLHsmqntmZgNCivrsLHtg5ztmZgNCivrsLHsnZjsmqkNCivrsLHsnqXqsJwNCivrsLHquLDrj5kNCivrsLHsnqzsmrQNCivrsLHsoJXquLgNCivrsLHsnqzrtIkNCivrsLHtjJDsiJkNCivrsLHsoJztmZQNCivrsLHqt5zsiJgNCivrsLHsnqzshKANCivrsLHtg5ztg50NCivrsLHrtoTshLENCivrsLHsooXquLANCivrsLHsnqztmIQNCivrsLHtlZnsnKQNCivrsLHtg5zsnKQNCivrsLHqs6TsiJgNCivrsLHsnqztmLgNCivrsLHsnqzqs6QNCivrsLHshqHsmKUNCivrsLHspIDrgqgNCivrsLHsnqztmLgNCivrsLHssL3soJUNCivrsLHtlZnsp4QNCivrsLHquIjshLENCivrsLHsoITtg5wNCivrsLHrj5nsmqkNCivrsLHshLHquLgNCivrsLHshLHsnpANCivrsLHsoJDrtIkNCivrsLHtlZnsm5ANCivrsLHsnqzsi50NCivrsLHrkZDqsr0NCivrsLHsoJDsiJgNCivrsLHtnazqtawNCivrsLHqt5zshKANCivrsLHsiJztg5wNCivrsLHsoJDsiJgNCivrsLEg7LaYDQor67Cx7ZW06regDQor67Cx7J6E7KeEDQor67Cx7KCV642VDQor67Cx7KCV7IaMDQor67Cx7YOc6regDQor67Cx7KKF7ZiEDQor67Cx7KCV7JiBDQor67Cx67OR7JqpDQor67Cx7KCV6raBDQor67Cx7KCQ6regDQor67Cx7KCV7JiBDQor67Cx7KCV7KSADQor67Cx7YOc7IudDQor67Cx7J6s6rWsDQor67Cx7KCV7JqpDQor67Cx67OR6rWsDQor67Cx7ISd7JmEDQor67Cx66eM6rWsDQor67Cx7KCV7KKFDQor67Cx7ZWE7ZGcDQor67Cx7JiB6re8DQor67Cx7KKF7KGwDQor67Cx7KCV7ZiEDQor67Cx7KCV7YOcDQor67Cx7YOc66y4DQor67Cx7JuF7JqwDQor67Cx7KCV7ZmYDQor67Cx7Jyk7IiYDQor67Cx64KZ7LacDQor67Cx6rCR64yADQor67Cx7KCV7Z2sDQor67Cx7ISx67SJDQor67Cx6riw7ZmNDQor67Cx6riw7IiYDQor67Cx7KKF6rOEDQor67Cx7Lmg7Z2sDQor67Cx6rK97IudDQor67Cx66eM7IiYDQor67Cx7KKF6riwDQor67Cx7JiB64yADQor67Cx7JiB7ZmYDQor67Cx6rec7J6QDQor67Cx7KKF7LKgDQor67Cx7ISx6rOgDQor67Cx6rK97JiBDQor67Cx7KKF7IigDQor67Cx7KeE7JuFDQor67Cx64+E7JykDQor67Cx67SJ7IudDQor67Cx7LKg7KSADQor67Cx7LC96riwDQor67Cx7J247ZWZDQor67Cx7J6s6recDQor67Cx7KCc7J2YDQor67Cx7LKt7Jq0DQor67Cx7IOB6riwDQor67Cx7Jil7IudDQor67Cx7J247J6sDQor67Cx7LaY6riwDQor67Cx7ZWt7ZuIDQor67Cx66y07ISdDQor67Cx7Iic7J6sDQor67Cx7YOc7JqxDQor67Cx7Iic7LC9DQor67Cx7ISx7J20DQor67Cx67O466y4DQor67Cx7YOc7KKFDQor67Cx7Jew66GdDQor67Cx7ZiE7KKFDQor67Cx7IiZ7LmYDQor67Cx7YOc7KeEDQor67Cx7IaM6rSRDQor67Cx67OR7KSADQor67Cx6rWs7Z2sDQor67Cx7YOc7ZiEDQor67Cx67OR7KeEDQor67Cx6re87KeEDQor67Cx7J6s7JewDQor67Cx7YOc7Zi4DQor67Cx7IiY7ISdDQor67Cx66eM7ZWEDQor67Cx67SJ7ZeMDQor67Cx7ZWZ6riwDQor67Cx7JiB7YOcDQor67Cx7IiY6rSADQor67Cx7KeE7YyUDQor67Cx7ZWZ7IiYDQor67Cx7Jil656ADQor67Cx7KKF7IOBDQor67Cx66eM7KeEDQor67Cx7ZWc6raMDQor67Cx7Lap7ZmUDQor67Cx7J2A6rCRDQor67Cx7JiB7IicDQor67Cx7ZiE7JqwDQor67Cx6rK967SJDQor67Cx7J6E7IiYDQor67Cx7KKF7IS4DQor67Cx7ZiE7ZWZDQor67Cx67aE7JuFDQor67Cx7JuU64+EDQor67CxIOyInA0KK+uwse2YhO2VmQ0KK+uwseyDgeyImA0KK+uwseyduOuhgA0KK+uwseyDgeydtQ0KK+uwse2YhO2VmQ0KK+uwseyYgeyLnQ0KK+uwse2DnOyLnQ0KK+uwseyDge2drA0KK+uwse2YleuPhA0KK+uwseyInOyehA0KK+uwseyerOykgA0KK+uwseq1rOyekA0KK+uwse2YleydvA0KK+uwseyjvOywrA0KK+uwseqyveybkA0KK+uwseuzteq3vA0KK+uwse2YuO2YhA0KK+uwseq0keyImQ0KK+uwseq3nOyXsA0KK+uwseyYgeydvA0KK+uwse2ZlOyImQ0KK+uwseq4sOyImQ0KK+uwseyiheyYgQ0KK+uwseyCrOuhnQ0KK+uzgOqwkeyhsA0KK+uzgOywveyYgQ0KK+uzgO2DneyEoA0KK+uzgOuPmeyXhQ0KK+uzgOqyveyLnQ0KK+uzgOyjvOq4sA0KK+uzgOyaqe2drA0KK+uzgOywveqwkQ0KK+uzgOq4iOyInA0KK+uzgOyerOu2hA0KK+uzgOuCqOyImQ0KK+uzgOyDge2YuA0KK+uzgOuPme2VhA0KK+uzgOykkeyEnQ0KK+uzgOyLoOybkA0KK+uzgOygleuPmQ0KK+uzgOuPme2VtA0KK+uzgOuzkeq3oA0KK+uzgOybkOy2nA0KK+uzgCDtlZwNCivrs4DrqoXqt7wNCivrs4DrjZXsl7QNCivrs4DsmIHtlZwNCivrs4Dsi5zrj5kNCivrs4Dsgqzro6ENCivrs4DsmqnsnqwNCivrs4Drs7TsiKANCivrs4Drr7zrprwNCivrs4Dsg4Hqt7wNCivrs4DslpHrrLgNCivrs4Drs5HrjZUNCivrs4Dso7zsmKUNCivrs4DshLHsiJgNCivrs4DtmY3siJwNCivrs4DqtZDsl7QNCivrs4Dso7zsm4UNCivrs4DshLHsm5ANCivrs4DsmIHspIANCivrs4DsiJjslZQNCivrs4DqtJHtnawNCivrs4DsiJzsl6wNCivrs4DsmIHsi50NCivrs4Drs5HsooUNCivrs4Dtg5zsooUNCivrs4DsmKTsi50NCivrs4DrrLjqsJENCivrs4DspIDtnLQNCivrs4DssL3siJgNCivrs4Dsmqnsi50NCivrs4DstpjrqqkNCivrs4Dri6zsmKUNCivrs4Drs5HsiJgNCivrs4Dsmqnsp4QNCivrs4Dqsr3snKANCivrs4DsmIHtmIQNCivrs4Dqsr3qtawNCivrs4DsnITsi50NCivrs4DshLHshK0NCivrs4Drs5HtmZQNCivrs4DspIDsmqkNCivrs4DsnKTsi50NCivrs4DqtJHsobANCivrs4DsoJXsiJgNCivrs4DshJ3tg5wNCivrs4DsnYDsi50NCivrs4DsiJzsi50NCivrs4DtlZnsm5ANCivrs4Drs7Xsm4UNCivrs4DsnbTqt5wNCivrs4DstqnsiJkNCivrs4DshJ3shKANCivrs4DshLHsmKUNCivrs4DsnqXsmrANCivrs4DrqoXsnKQNCivrs4Dtg5ztnawNCivrs4DtlYTtg50NCivrs4Dsnqzqs6QNCivrs4DsoJXsm5ANCivrs4DshLHsi50NCivrs4Dsg4HsobANCivrs4DsooXrtIkNCivrs4Dsg4HtmZgNCivrs4Drs5Hro6ENCivrs4DsmKXqtowNCivrs4DsooXsi50NCivrs4Dsg4HqtowNCivrs4DshLHrgrQNCivrs4DsoJXrgqgNCivrs4DssKzquLANCivrs4Dso7ztnawNCivrs4DsoJXslrUNCivrs4Dtg5zshowNCivrs4DssL3tmIENCivrs4DrjIDsnbwNCivrs4DsnYDqtowNCivrs4DrqoXsmIENCivrs4DssqDsmrANCivrs4Dtg5zsmqkNCivrs4DssL3siJgNCivrs4DspJHsiKANCivrs4DssqDsmrANCivrs4DsmIHtlqUNCivrs4DrqoXsnbQNCivrs4DsooXsmqkNCivrs4Dtg5zsiJgNCivrs4DsnqztmZQNCivrs4DqtozsmrANCivrs4DssL3qtawNCivrs4DtjJDqt5wNCivrs4DrqoXtg50NCivrs4DtlZntmIQNCivrs4DrjIDqtowNCivrs4DtmLjtmIQNCivrs4DsmqnqsbgNCivrs4Dqsr3tm4gNCivrs4Dtg5zqta0NCivrs4DtmZTsnpANCivrs4Dshozsl7ANCivrs4DrjIDsmrANCivrs4DqtozsiJgNCivrs4DtmZjqt5wNCivrs4DsnbjsiJgNCivrs4Dtm4jqt7wNCivrs4DsmIHsm4UNCivruYjsmrHstpwNCivruYjqtIDtm4gNCivruYjtlbTsirkNCivruYjrqoXsmrANCivruYjsooXsmrENCivruYjsspzslZQNCivruYjshJ3shJ0NCivruYjrj4jsiJwNCivruYjstpjsmKUNCivruYjsmqnsl7QNCivruYjspJHrs7UNCivruYjshKDsg50NCivsgqzrs7XtmZgNCivsgqzsoJXsiJkNCivsgqzsnYDtlZkNCivsgqzrs5HsmKQNCivsg4HsoJXqt6ANCivsg4HquLDsnpANCivsg4HsoJXtlbQNCivsg4HtmqjshJ0NCivshJzqsJHrrLgNCivshJzrrLjsiJkNCivshJzshLjsmrANCivshJzshLHshLgNCivshJzqsJHsiJgNCivshJzso73smKQNCivshJzsoJDri6wNCivshJzsnbzqt6ANCivshJzqsJHsiJgNCivshJzquLDtmZgNCivshJzrj5nsobANCivshJzqtJHsl7QNCivshJzqsr3qt5wNCivshJzsiJjri6wNCivshJzsmKXsmqkNCivshJzrgqjtmLgNCivshJzqsr3qt5wNCivshJztjJDshK0NCivshJzsp4Tqsr0NCivshJzsi6DtnawNCivshJzqsr3qt5wNCivshJzqsr3ssqANCivshJzsg4HspIANCivshJzsooXtmLgNCivshJzqsr3shJ0NCivshJzsnYDsiJkNCivshJzrjZXsmIENCivshJzsnqztnawNCivshJzqsr3siJgNCivshJzsg4HtmZgNCivshJzssKzqtZANCivshJzspIDqs6QNCivshJzqsr3siJkNCivshJzqsr3smKQNCivshJzri6zsiJwNCivshJzsspzrrLgNCivshJzqsr3slZQNCivshJzrs5HrnpgNCivshJzsnKTsnbgNCivshJzrkZDtlZkNCivshJzqsr3soJANCivshJzslrjshK0NCivshJzsmIHquLANCivshJzsmIHqt5wNCivshJzqsr3tmZQNCivshJztlbTslZQNCivshJztlZntlZkNCivshJzshJ3rsLANCivshJzqsr3tnawNCivshJzsnqztl4wNCivshJzsiJzsnbQNCivshJzrj5nshKANCivshJzqsr3tnawNCivshJzsmrTshK0NCivshJzrs7Xrs7UNCivshJzsg4HqtawNCivshJzqsr3tnawNCivshJzrj5nqt7wNCivshJzsooXqsbQNCivshJztm4Tsm5ANCivshJzqs4TshJ0NCivshJzrjZXtlZwNCivshJzsiJjtmIQNCivshJztlbTsm4UNCivshJzqs6Hsp4ANCivshJzrqoXqta0NCivshJzrkZDtg5wNCivshJzsoJXssYQNCivshJzqtJHsi50NCivshJzssKzsnqwNCivshJzspIDquLgNCivshJzsnKTsmrANCivshJzqtJHslYUNCivshJzsmKXsnqwNCivshJzsnqzrp4wNCivshJzsnbTqta0NCivshJzqtJHslrgNCivshJzsi6DsmrQNCivshJzssKjsmrANCivshJzrkZDsnpANCivshJzqtJHtg50NCivshJztg5zsiJkNCivshJzsg4HsmIENCivshJzsg4Hqt5wNCivshJzqtZDsmrENCivshJzsp4TsoJANCivshJzqtJHtnawNCivshJzslpHshKANCivshJzqtZDtnawNCivshJzshKDqt6ANCivshJzsirntkZwNCivshJzsooXrqoUNCivshJzqtZDtnawNCivshJzsmIHrspQNCivshJzrs5HsmIENCivshJzsmIHsm5ANCivshJzqtazshJ0NCivshJztmJXsiJwNCivshJzrs5HsnbQNCivshJzrtInquLANCivshJzqt7ztmLgNCivshJztmITrrLgNCivshJzsiJjsl7QNCivshJzsmYTssqANCivshJzquIjsnbQNCivshJzsoJXsnoUNCivshJzrs5HtmZQNCivshJzshJ3rj5kNCivshJzrgqjsiJkNCivshJztg5zshKANCivshJzqs4TsiKANCivshJzrk53shJ0NCivshJzrgqjsobANCivshJzrgqjtg5wNCivshJzsmrDsiJkNCivshJztg5zrjZUNCivshJzri6TsnoQNCivshJzrs5HsnKQNCivshJzssKjsiJgNCivshJzqt5zrrLgNCivshJzri6zshKANCivshJzsmIHquLANCivshJzqt5zsmIENCivshJzquLDspIANCivshJzrjIDqsr0NCivshJzsoJXshLENCivshJzqsJXsiJkNCivshJzshJ3shJ0NCivshJzrjIDqtIANCivshJzquLjsl7ANCivshJztlbTquLANCivshJzsoJXqtawNCivshJzrjIDtmZgNCivshJzsmIHsiJkNCivshJzsiJjtkZwNCivshJzrs5HroZ0NCivshJzrjZXshKANCivshJzsm5Drp4wNCivshJztmJXtg4ENCivshJzsgrzsiJwNCivshJzrj5nrjZUNCivshJzshJ3qt7wNCivshJzsnqzsl7QNCivshJzrqoXtnawNCivshJzrj5nsiJgNCivshJzsl7Dsl7ANCivshJzsi6Drj5kNCivshJztmJXtmLgNCivshJzrj5nsiJgNCivshJzsnKTshKANCivshJzquLDsmqkNCivshJzrqoXqt7wNCivshJzrj5nsnqwNCivshJzqtJHtmLgNCivshJzslZTsmYQNCivshJztg53rr7wNCivshJzrj5nspIANCivshJzqsr3quLgNCivshJztg5ztmZgNCivshJztlbTqt5wNCivshJzrj5ntm4gNCivshJzqsJHsi50NCivshJzrs5HsiJkNCivshJzssL3sobANCivshJzrkZDshKANCivshJzsiJzqs6ANCivshJwg7IStDQor7ISc7Iuc7IicDQor7ISc66eQ64+EDQor7ISc7JuQ64KoDQor7ISc67OR7Je0DQor7ISc7ZiE7Zi4DQor7ISc66eQ7ISgDQor7ISc6rWQ67O1DQor7ISc66y07IiYDQor7ISc6rec7JqpDQor7ISc66e57IiYDQor7ISc6riw7ISgDQor7ISc7YOc6riwDQor7ISc7JuQ7IigDQor7ISc66qF6rOkDQor7ISc6rSR6rOkDQor7ISc7JuQ7IudDQor7ISc7J2A7ZiEDQor7ISc66qF6rWQDQor7ISc7J247JuQDQor7ISc7Jqp7JilDQor7ISc7IaM7IStDQor7ISc66qF64usDQor7ISc7LaY7Ja1DQor7ISc6rK97ISgDQor7ISc67OR6rOkDQor7ISc66qF7IiYDQor7ISc7JiB7IiYDQor7ISc7Jil7ISgDQor7ISc7JiB7J20DQor7ISc66qF7JWUDQor7ISc7KKF7JuQDQor7ISc7ISg6rWQDQor7ISc66+47ZWZDQor7ISc66y064KoDQor7ISc7KCQ6ri4DQor7ISc7J287ZuIDQor7ISc7IOB7Zi4DQor7ISc66y07KGwDQor7IScIOyImA0KK+yEnOunjOyXtA0KK+yEnOynhO2YuA0KK+yEnOustOyihQ0KK+yEnOygleq3vA0KK+yEnOuCqOuhnQ0KK+yEnO2DnOyImA0KK+yEnOustO2YuA0KK+yEnOyDgeyImA0KK+yEnOuMgO2DnQ0KK+yEnO2VmOyglQ0KK+yEnOusuOuNlQ0KK+yEnOuPmeyEsQ0KK+yEnOy2qeyDgQ0KK+yEnOq0keu0iQ0KK+yEnOusuOyImA0KK+yEnOyiheycqA0KK+yEnOustOyhsA0KK+yEnOyaqeyIoA0KK+yEnOusuOyImA0KK+yEnOyaqeybkA0KK+yEnOyEseq4sA0KK+yEnOyYge2DnA0KK+yEnOuvuOqyvQ0KK+yEnOyyoOyatA0KK+yEnOyduOyLnQ0KK+yEnOygle2ZjQ0KK+yEnOuvuOyekA0KK+yEnOyEoO2DnA0KK+yEnOyGjO2YhA0KK+yEnOuzke2ZlA0KK+yEnOuvvOyEnQ0KK+yEnOyerOydvA0KK+yEnOyDgeyasA0KK+yEnOyInOyyoA0KK+yEnOuylOyLnQ0KK+yEnOqyveyjvA0KK+yEnOyImOyLnQ0KK+yEnOyInOyyoA0KK+yEnOuzkeyImA0KK+yEnOyEseqzpA0KK+yEnOyDgeuztA0KK+yEnOyerOumvQ0KK+yEnOuzkeyerA0KK+yEnOynhOyYpQ0KK+yEnOyInOu0iQ0KK+yEnOyInOyEnQ0KK+yEnOuztOq3vA0KK+yEnOywveyhsA0KK+yEnOyYpeyImA0KK+yEnO2DnOyekA0KK+yEnOuztOuNlQ0KK+yEnOuPhOyaqQ0KK+yEnOygle2YuA0KK+yEnOq4sOyekA0KK+yEnOuztOyYgQ0KK+yEnO2DnOyEnQ0KK+yEnO2VtOyynA0KK+yEnO2MkOyhsA0KK+yEnOuztOyatA0KK+yEnOydvOyInA0KK+yEnOy2mOydtA0KK+yEnOyDgeykkQ0KK+yEnOuztOybkA0KK+yEnOygleyErQ0KK+yEnOyEneyyoA0KK+yEnOywve2YuA0KK+yEnOuztOynhA0KK+yEnOuqheuNlQ0KK+yEnOydvOuNlQ0KK+yEnOyEneyhsA0KK+yEnOuztOywrA0KK+yEnOuMgO2YuA0KK+yEnOy5mOyYpQ0KK+yEnOustO2drA0KK+yEnOuztO2YgQ0KK+yEnOybkO2drA0KK+yEnO2ajOyImA0KK+yEnOydmOyImQ0KK+yEnOuztO2drA0KK+yEnOq0keyerA0KK+yEnOydhOyglQ0KK+yEnOydvOyLnQ0KK+yEnOuzteqyvQ0KK+yEnOuqhe2drA0KK+yEnOywveuwsA0KK+yEnOycpOyIoA0KK+yEnOuzteyInA0KK+yEnOyLnO2ZmA0KK+yEnOqyveydkQ0KK+yEnOyEneyLnQ0KK+yEnOu0ieq1kA0KK+yEnO2WieyLnQ0KK+yEnOyerOyZhA0KK+yEnOyduOyasA0KK+yEnOu0ieuNlQ0KK+yEnOyWkeykgA0KK+yEnOyInOyynA0KK+yEnOyerOuTnQ0KK+yEnOu2hOyInA0KK+yEnOq1re2ZjQ0KK+yEnOq0keyImA0KK+yEnO2MkOyImA0KK+yEnOyCrO2YhA0KK+yEnOyLnOyEsQ0KK+yEnOychOyErQ0KK+yEnOq2jOyImA0KK+yEnOyCvOq2jA0KK+yEnOyaqeu0iQ0KK+yEnOyEseq4sA0KK+yEnOywqOyYgQ0KK+yEnOyDgeq3vA0KK+yEnOyerOyLnQ0KK+yEnOuzkeq3nA0KK+yEnOyaqe2drA0KK+yEnOyDgeuFuA0KK+yEnOqyveyEoA0KK+yEnOunjOyLnQ0KK+yEnOydgOydtA0KK+yEnOyDgeuNlQ0KK+yEnOyImOq2jA0KK+yEnOybkOyihQ0KK+yEnOyyoOq4sA0KK+yEnOyDgeuPjA0KK+yEnOuzkeyInA0KK+yEnOykgOyhsA0KK+yEnCDsmrANCivshJzsg4HroZ0NCivshJzqtazrs5ENCivshJzssL3siJgNCivshJzsmrTsmrQNCivshJzsg4HroZ0NCivshJzsmKXquLgNCivshJzquIjshKANCivshJzsg4HshJ0NCivshJzsg4HroZ0NCivshJztg5zsm4UNCivshJzsm5DtmLgNCivshJzssL3tmZQNCivshJzsg4Hrp5ANCivshJzsmIHssqANCivshJztlZnqs6QNCivshJzsiJjsiJgNCivshJzsg4HrrLgNCivshJzqs4TsobANCivshJzshJ3qtawNCivshJzsm4XtmZgNCivshJzsg4HshLgNCivshJzrqoXsp4QNCivshJztg5ztmLgNCivshJzrs5Hqsr0NCivshJzsg4Hsi50NCivshJzssqDri7QNCivshJzsp4TqtZANCivshJzsmIHsmrENCivshJzsg4Hsl7QNCivshJzshLHsiJgNCivshJzsnYDssqANCivshJzrjZXtl4wNCivshJzsg4HsnpANCivshJzsgqzsl7QNCivshJzsmKXrj5kNCivshJzqt7zsl7QNCivshJzsg4HspIANCivshJzsgqzquLANCivshJzsnqXstpwNCivshJzshLHrk50NCivshJzsg4Htg5wNCivshJztmITtmLgNCivshJzqtJHtmZgNCivshJztlYTsiJgNCivshJzsg4Htg5wNCivshJzshLHsiJgNCivshJzsmIHsg4ENCivshJzqt5zsobANCivshJzsg4Htg5wNCivshJzsmKTsl7QNCivshJzsmIHssqANCivshJzqt7zrpqwNCivshJzsg4HtmIQNCivshJzsmKTtnawNCivshJzrtIntg5wNCivshJzsoJXsl7QNCivshJzsg4HtmIQNCivshJzrp4zsiJgNCivshJzsnYDsg50NCivshJzsg4Htg5wNCivshJzsg4HtmLgNCivshJzshJ3tm4gNCivshJzsnqXqt5wNCivshJzsmIHsobANCivshJzsg4HtmZQNCivshJzsnqzrqqgNCivshJzsmIHsooUNCivshJztlbTtnawNCivshJzsg4HtmZQNCivshJzsmqnsobANCivshJzquLDtnaANCivshJzshLHsiJgNCivshJzsg4HtmqgNCivshJzsooXsiJgNCivshJzsmKXqtawNCivshJzqsJHrrLgNCivshJzsg4HtnawNCivshJzssKzsl7QNCivshJzqsJHtmIQNCivshJzrs5HrtIkNCivshJzshJ3qtZANCivshJzsg4Hqt5wNCivshJzsmqnqtIANCivshJzshLjrp4wNCivshJzshJ3qt5wNCivshJztg5zsspwNCivshJzsmqntnawNCivshJzsooXrj4QNCivshJzshJ3smIENCivshJzsnKHquLANCivshJzrs5HsnYANCivshJzquLDquLANCivshJzshJ3snKQNCivshJzqsr3smrQNCivshJztg5zslpENCivshJzsmIHshLENCivshJzshJ3tmY0NCivshJzsiJztmIQNCivshJzsoJXssqANCivshJzrs5HsobANCivshJzshJ3tnawNCivshJzsnKDsm5ANCivshJzsoJXso7wNCivshJzsnKTsmrQNCivshJzshKDqtZANCivshJzrs5Hsl7ANCivshJzspJHsl7ANCivshJzsnqztmZQNCivshJzshLHqtZANCivshJzspJHsmrENCivshJztlbTsobANCivshJzrqoXsnbQNCivshJzshLHrp4wNCivshJzqsJHsiJgNCivshJzsnbjshJ0NCivshJztjJDsl7QNCivshJzshLHslZQNCivshJztlonrrLgNCivshJzsg4HtjJQNCivshJzsirnrjIANCivshJzshLHsnKQNCivshJzsmbjsiJkNCivshJzsoJDssqANCivshJzsmIHsnYANCivshJzshLHstpwNCivshJzsiJzsnqwNCivshJzsmIHrsLANCivshJzsooXtmZgNCivshJzshozqtowNCivshJzsnbzsobANCivshJzsooXsiJwNCivshJztg5zsi6wNCivshJzshozsmqkNCivshJzrj4TtlZkNCivshJzrs5HtlZwNCivshJzsiJjtmJUNCivshJzsiJjqsr0NCivshJzsnbzrjIANCivshJztmITsiJgNCivshJzrs7TtlZgNCivshJzsiJjsl7ANCivshJzsnqztmY0NCivshJzsnbjqt5wNCivshJztlbTshJ0NCivshJzsiJjsm4UNCivshJzsooXso7wNCivshJztmLjsoJUNCivshJzrs5HsmrANCivshJzsiJzqtZANCivshJzsl7Dtg5wNCivshJztg5zqsr0NCivshJzso7ztnawNCivshJzsiJzrgqgNCivshJzsmIHsnqwNCivshJztg5zsiJkNCivshJzsoJDrjIANCivshJzsiJzrj4QNCivshJzqsr3shLENCivshJzrs7TsmrANCivshJzsnqXshJ0NCivshJzsiJzrj4wNCivshJzrs5Hsm5ANCivshJzssL3rp4wNCivshJzsnbjquLANCivshJzsiJzrnoANCivshJztg5zsl7ANCivshJwg7KeEDQor7ISc7IOB64KcDQor7ISc7Iic7ISdDQor7ISc7LCo7IStDQor7ISc66qF7JikDQor7ISc7J6s7KGwDQor7ISc7Iic7J20DQor7ISc7J6s6riwDQor7ISc7J6s7Zi4DQor7ISc6rK97JqpDQor7ISc7Iq56riwDQor7ISc6rec7ZmNDQor7ISc7IOB7ZWYDQor7ISc7Jew7JiBDQor7ISc7Iq57JuQDQor7ISc66qF6recDQor7ISc7IOB7IudDQor7ISc6rSR7ZiEDQor7ISc7JiB6recDQor7ISc7J6s7J6QDQor7ISc7J2866a8DQor7ISc6ri47Zi4DQor7ISc7JiB64usDQor7ISc67SJ7ZalDQor7ISc7JiB6re8DQor7ISc6reA66GADQor7ISc7JiB64usDQor7ISc7KO87Je0DQor7ISc7JuQ7JilDQor7ISc7J6s64KoDQor7ISc7JiB64+MDQor7ISc7Z2s7JqpDQor7ISc7KKF7ZalDQor7ISc66qF7ZmYDQor7ISc7JiB66qpDQor7ISc7ZiE6riwDQor7ISc64yA6rCRDQor7ISc7ISx7JqpDQor7ISc7JiB7ISdDQor7ISc6rK97ZiEDQor7ISc7YyQ7JqwDQor7ISc67OR7IigDQor7ISc7JiB7IiYDQor7ISc7KeE7YOcDQor7ISc7KCV7JilDQor7ISc7ISd7YOcDQor7ISc7JiB7JuFDQor7ISc7IOB6recDQor7ISc67OR7YyMDQor7ISc6rK96ri4DQor7ISc7JiB7JuQDQor7ISc64yA7Zi4DQor7ISc67OR7ZmUDQor7ISc66y07JqpDQor7ISc7JiB7J2ADQor7ISc66qF7Zi4DQor7ISc7JiB7JWgDQor7ISc67OR7IicDQor7ISc7JiB7LC9DQor7ISc7IOB7IiZDQor7ISc7ZW06rOkDQor7ISc67OR6raMDQor7ISc7JiB7YOcDQor7ISc7KCV7Zi4DQor7ISc6riI7IStDQor7ISc7Zi464+ZDQor7ISc7Jik7KGwDQor7ISc7J6s67SJDQor7ISc7KSR7JqpDQor7ISc64yA7ZmYDQor7ISc7Jil7LacDQor7ISc6rCR64+ZDQor7ISc64+I67aADQor7ISc7Jqp7ZWcDQor7ISc7JmE7IudDQor7ISc7IOB7IiYDQor7ISc7J6s7ZWYDQor7ISc7YyQ66GdDQor7ISc7Jm47IiYDQor7ISc7Lap7YOdDQor7ISc7IOB67SJDQor7ISc66eJ7ZuIDQor7ISc7Jqp66eMDQor7ISc66eM6rSRDQor7ISc67OR7ZuIDQor7ISc6rec7J24DQor7ISc7Jqp67aADQor7ISc6riw7IicDQor7ISc67SJ7ZGcDQor7ISc7JiB66eMDQor7ISc7Jqp7ISdDQor7ISc7IiY67CwDQor7ISc6riw7KGwDQor7ISc66y07KO8DQor7ISc7Jqp7KGwDQor7ISc7ISg7KKFDQor7ISc7KSA7ZmYDQor7ISc7ISd7ZmNDQor7ISc7Jqp7YyQDQor7ISc7IOB7ZWZDQor7ISc7Jqp7KGwDQor7ISc7Zi47Zi4DQor7ISc7Jqp7ZW0DQor7ISc7LC97KKFDQor7ISc7Jik7JewDQor7ISc6riw7IicDQor7ISc7Jqp7ZW0DQor7ISc7KKF6rKsDQor7ISc7IiZ7IiYDQor7ISc7Jyk7J2RDQor7ISc7Jqp7Zi4DQor7ISc7KCV7Z2sDQor7ISc7IOB7ZmNDQor7ISc6re87ZuIDQor7ISc7Jqw7LKgDQor7ISc7ISx7IiZDQor7ISc66qF7LacDQor7ISc7YOc7Z2sDQor7ISc7JuF6ri4DQor7ISc7ZWY7LKcDQor7ISc6riI7ISdDQor7ISc7KKF7KSADQor7ISc7Jyg7IKwDQor7ISc7ISd7IudDQor7ISc67O07JWFDQor7ISc66eM7ZiVDQor7ISc7Jyk7ISdDQor7ISc7J6s64yADQor7ISc7L6M7Zi4DQor7ISc7LC97IiYDQor7ISc7Jyk7ISgDQor7ISc7Zi47JWgDQor7ISc7ISx6riwDQor7ISc7J6s7KCQDQor7ISc7Jyk7JilDQor7ISc7J6s66qpDQor7ISc7LaY7KKFDQor7ISc7J6s64KoDQor7ISc7Jyk7LacDQor7ISc7KKF7KSADQor7ISc7J247J6QDQor7ISc7KKF7KCVDQor7ISc7Jyk7Z2sDQor7ISc7Iuc6rG0DQor7ISc7ZmN7IiYDQor7ISc7LaY7Zi4DQor7ISc7J2A6rK9DQor7ISc7JiB6riwDQor7ISc7KO87YOcDQor7ISc67OR7ISdDQor7ISc7J207ISgDQor7ISc67OR7LmgDQor7ISc7J2R6ri4DQor7ISc7Jqp7IudDQor7ISc7J207KeEDQor7ISc7Jyk7J24DQor7ISc7KCV6rWQDQor7ISc7YOc7JqpDQor7ISc7J217IicDQor7ISc7ISd7ZWYDQor7ISc64us7JqwDQor7ISc7IiY6re8DQor7ISc7J24642VDQor7ISc67OR7KGwDQor7ISc7ZWZ6riwDQor7ISc66y07Z2sDQor7ISc7J247IicDQor7ISc7JiB7Zi4DQor7ISc6rG07JqpDQor7ISc7KKF7KGwDQor7ISc7J247Je0DQor7ISc6riw7IiYDQor7ISc7ISd7J6EDQor7ISc7ISx7IicDQor7ISc7J286rWQDQor7ISc7Jew7KCBDQor7ISc7J6s64KoDQor7ISc7J6s7YOcDQor7ISc7J2867aADQor7ISc7KKF64+ZDQor7ISc6rK97IicDQor7ISc7JiB7LCoDQor7ISc7J6E7ISgDQor7ISc7ISx7ZiEDQor7ISc6riI7JqwDQor7ISc7Ja164+ZDQor7ISc7J6E7KGwDQor7ISc7Z2s6raMDQor7ISc7LC97KeEDQor7ISc7IOB66y4DQor7ISc7J6l7YOdDQor7ISc64Ko6rK9DQor7ISc67aE7LaYDQor7ISc66+87IudDQor7ISc7J6s6rWQDQor7ISc7J2R7YOcDQor7ISc7ZiE7J20DQor7ISc7J6s7JqwDQor7ISc7J6s642VDQor7ISc7J247ISsDQor7ISc7LC97IOdDQor7ISc6riw6rCBDQor7ISc7J6s642VDQor7ISc7KeE6riwDQor7ISc7ISx7IudDQor7ISc7Iq57LKgDQor7ISc7J6s7Je0DQor7ISc7IKs6rCcDQor7ISc7LCo7JuQDQor7ISc67SJ64+ZDQor7ISc7J6s7JiBDQor7ISc7JiB7Zi4DQor7ISc7ZW064+EDQor7ISc7KeA7ISgDQor7ISc7J6s7ZaJDQor7ISc7KCV7JiBDQor7ISc7ISd7ZiEDQor7ISc7YOc7ZmNDQor7ISc7J6s7Zi4DQor7ISc7KCV7ZmYDQor7ISc64yA7JuQDQor7ISc7JiB7JuQDQor7ISc7J6s7ZmYDQor7ISc7KKF7ZWYDQor7ISc66y47J6sDQor7ISc7YOc7Jq0DQor7ISc7J6s7ZmYDQor7ISc64+Z6re8DQor7ISc7IOB7KSADQor7ISc6rSR7JikDQor7ISc7J6s7Z2sDQor7ISc66eM7JewDQor7ISc7IS46ri4DQor7ISc7J6s7J6sDQor7ISc7KCQ64+MDQor7ISc66qF7IOBDQor7ISc7J6s7ISdDQor7ISc6rSR6rWsDQor7ISc7KCQ7IiYDQor7ISc7JiB7LCsDQor7ISc7ISx7IudDQor7ISc64Ko6rWsDQor7ISc7KCQ7IiYDQor7ISc6re87ISxDQor7ISc7Jik7ZaJDQor7ISc7J6s7J6QDQor7ISc7KCQ7IigDQor7ISc64yA7IiYDQor7ISc7YOc7J6QDQor7ISc6riw7J6QDQor7ISc7KCQ7JWUDQor7ISc6raM7J2YDQor7ISc6riw7YOdDQor7ISc6rK97KeRDQor7ISc7KCQ7KGwDQor7ISc7KCV6recDQor7ISc7YOc6recDQor7ISc7IiY7IicDQor7ISc7KCV6rK9DQor7ISc7YOc64+ZDQor7ISc66qF7Zi4DQor7ISc7J6s7IiYDQor7ISc7KCV6rOEDQor7ISc7Zqo64+EDQor7ISc6reA6riwDQor7ISc67OR7ZmYDQor7ISc7KCV6rWsDQor7ISc7Jyk6rWsDQor7ISc7ISd7IiYDQor7ISc6rG06rK9DQor7ISc7KCV6rWwDQor7ISc7KKF7Zi4DQor7ISc7JiB64+EDQor7ISc7ZmY7JiBDQor7ISc7KCV6re5DQor7ISc66eQ7IiZDQor7ISc7YOc6recDQor7ISc7J2867O1DQor7ISc7KCV6re8DQor7ISc7YOc7ISgDQor7ISc67OR66GdDQor7ISc7J6l7JuQDQor7ISc7KCV64+EDQor7ISc6rSR7JqwDQor7ISc7KCV6rOkDQor7ISc7KKF65OdDQor7ISc7KCV66GdDQor7ISc64yA7KGwDQor7ISc66eQ7ZiVDQor7ISc6riw65+JDQor7ISc7KCV67CVDQor7ISc7LKg642VDQor7ISc7Iic7LacDQor7ISc7ISx7IucDQor7ISc7KCV7IOdDQor7ISc64Ko7ZiBDQor7ISc7KO86recDQor7ISc7KCV7ISdDQor7ISc7KCV7ISdDQor7ISc7J6s7ZuIDQor7ISc6rec6rOEDQor7ISc7LCo7J6QDQor7ISc7KCV7IiYDQor7ISc7IaM6rK9DQor7ISc7IyN7Zi4DQor7ISc64+E7Zi4DQor7ISc7KCV7IiYDQor7ISc7Jq07KCVDQor7ISc7ISx7IicDQor7ISc7Jq07IicDQor7ISc7KCV7IiYDQor7ISc7J6s7JiBDQor7ISc7KCV6recDQor7ISc7JiB7Z2sDQor7ISc7KCV7IigDQor7ISc6re87IicDQor7ISc7J6s7IOBDQor7ISc7KCV7KGwDQor7ISc7KCV7IudDQor7ISc7ISx7ZqoDQor7ISc7Jqw7KCVDQor7ISc7KKF7YOBDQor7ISc7KCV7Je0DQor7ISc7KeE6recDQor7ISc7J2E7IudDQor7ISc7ZiE64KoDQor7ISc7KCV7JqwDQor7ISc7IOB7ISdDQor7ISc7J6s67CwDQor7ISc7IaM7ZmYDQor7ISc7KCV7JqwDQor7ISc7YOc7IicDQor7ISc7JiB6riwDQor7ISc7Jyk7JuFDQor7ISc7KCV7Jq0DQor7ISc6rSR7Je9DQor7ISc7J6s7JyoDQor7ISc6rK97J28DQor7ISc7KCV7J2YDQor7ISc7KeE7KeADQor7ISc7Jil6rCVDQor7ISc6riI7J6QDQor7ISc7KCV7YOcDQor7ISc7Iq56riwDQor7ISc7LCo7J24DQor7ISc7JiB6rWQDQor7ISc7KCV7YOcDQor7ISc7J6s67SJDQor7ISc7Jil7IiYDQor7ISc7JaR6riwDQor7ISc7KCV7YOcDQor7ISc7KKF7LapDQor7ISc7KSR7Zi4DQor7ISc7ZW07J6sDQor7ISc7KCV7YOcDQor7ISc7J6E7LKgDQor7ISc7KKF7IiYDQor7ISc7JiB7Zi4DQor7ISc7KCV7ZWcDQor7ISc7JiB7LKgDQor7ISc7YOc7IiZDQor7ISc7ISd7IicDQor7ISc7KCV7ZmUDQor7ISc7KSA7JiBDQor7ISc6riw7KSADQor7ISc7Jqw7ZmYDQor7ISc7KCV7ZmYDQor7ISc6reA65OdDQor7ISc7KCV7JqpDQor7ISc6rCR7ZiEDQor7ISc7KCV7Z2sDQor7ISc67OR7IigDQor7ISc7ZWZ7JiBDQor7ISc67SJ7J6QDQor7ISc7KKF7J20DQor7ISc7J6l7IiYDQor7ISc64W47ZeMDQor7ISc7Jyk7J20DQor7ISc7KO8642VDQor7ISc7Jil7LCsDQor7ISc67OR6raMDQor7ISc66eQ7Zi4DQor7ISc7KO87ZWEDQor7ISc7KeE6rK9DQor7ISc7KKF7ZqoDQor7ISc64+Z6riwDQor7ISc7KSA6rWQDQor7ISc7Zic7ZWcDQor7ISc66eM7ZiEDQor7ISc6rOg6rSRDQor7ISc7KSR6rCVDQor7ISc642V7ZiEDQor7ISc7LC96recDQor7ISc7JiB7JewDQor7ISc7KSR6recDQor7ISc66qF7YOcDQor7ISc7JiB6rOkDQor7ISc7ISx7IudDQor7ISc7KeE6rOgDQor7ISc6re57J6QDQor7ISc7Jq07IiZDQor7ISc7ZWZ6recDQor7ISc7KeE6rWQDQor7ISc6rG07Z2sDQor7ISc7Jyk7Z2sDQor7ISc7JiB7IicDQor7ISc7KeE6rWQDQor7ISc7Jqp7KCVDQor7ISc67OR7KeEDQor7ISc7ISx7LKcDQor7ISc7KeE7ISdDQor7ISc6rK97IigDQor7ISc7ISx7IudDQor7ISc64yA7J28DQor7ISc7KeE7IiYDQor7ISc7ZmN67O0DQor7ISc7J6s7KCcDQor7ISc66eQ7YOcDQor7ISc7LCo6rCRDQor7ISc7YOc7JuFDQor7ISc7JiB7Z2sDQor7ISc67OR64KoDQor7ISc7LCo656RDQor7ISc7J6s7IiYDQor7ISc7KKF6riwDQor7ISc66y0656ADQor7ISc7LCo7JqpDQor7ISc7IiY7JuQDQor7ISc7JiB7Zi4DQor7ISc6rSR7IudDQor7ISc7LC96rWQDQor7ISc66y07IiYDQor7ISc67OR7IiYDQor7ISc7ISx7JqpDQor7ISc7LC9642VDQor7ISc7IiY7IiYDQor7ISc7J6s66qoDQor7ISc7ZmN7IiYDQor7ISc7LC9642VDQor7ISc7Jqw7ZmUDQor7ISc7Jyk7ZmYDQor7ISc7Iic7IStDQor7ISc7LC97IiYDQor7ISc7YOc7KCVDQor7ISc7KCQ7IicDQor7ISc7J6s64KoDQor7ISc7LC97IigDQor7ISc7Lap7J6sDQor7ISc6rK966qoDQor7ISc7YyQ7LGEDQor7ISc7LC97ZiEDQor7ISc7IiY7JiBDQor7ISc64+Z7ZiEDQor7ISc67aA7YOBDQor7ISc7LKg6rWQDQor7ISc6rec7IigDQor7ISc7Jqp7IiZDQor7ISc7ZiV7KCVDQor7ISc7LaY6ri4DQor7ISc66eJ7KeEDQor7ISc6rK97ISdDQor7ISc7IOB7JqpDQor7ISc7LaY7IiYDQor7ISc66Gc7JiBDQor7ISc7KeE7Jq0DQor7ISc7L6M7LacDQor7ISc7LaY7J6QDQor7ISc7J2Y642VDQor7ISc6rG07IicDQor7ISc7JuQ7ZiEDQor7ISc7Lmg6raMDQor7ISc67SJ6riwDQor7ISc7KKF7J20DQor7ISc67SJ7JuFDQor7ISc7YOc6rWQDQor7ISc7ZeM7KeEDQor7ISc7J28656ADQor7ISc7KKF7KKFDQor7ISc7YOc6rWsDQor7ISc7ISd7Zi4DQor7ISc7Iic7JiBDQor7ISc7IOB7LaYDQor7ISc7YOc66eMDQor7ISc7KCV7JmEDQor7ISc66eQ66y4DQor7ISc7Iq57LKgDQor7ISc7YOc7ISdDQor7ISc7IiY7Zi4DQor7ISc7Z2s7IicDQor7ISc7Jyk6re8DQor7ISc7YOc7IiYDQor7ISc7IK87JeFDQor7ISc7Jew6riwDQor7ISc67O07Zi4DQor7ISc7YOc7IigDQor7ISc6rK97Z2sDQor7ISc7Lmg7JiBDQor7ISc7KSA7JqxDQor7ISc7YOc7JWUDQor7ISc7KCV7ZWYDQor7ISc7IiY7ZiEDQor7ISc6rSR7J6QDQor7ISc7YOc7JuQDQor7ISc7ISx7IiYDQor7ISc7J6s7J6QDQor7ISc7ISg6recDQor7ISc7YyU67SJDQor7ISc7JiB7JiBDQor7ISc64yA7Zi4DQor7ISc7IiY7Zi4DQor7ISc7ZWE6riIDQor7ISc7IiY7Zi4DQor7ISc7Zi47JqpDQor7ISc7Iug7IudDQor7ISc7ZWE7JewDQor7ISc7J2E7JuQDQor7ISc7JiB7ISgDQor7ISc7ISx7JiBDQor7ISc7ZWZ7JuQDQor7ISc7YOc7IiZDQor7ISc7ZW07JuQDQor7ISc7IOB7IOBDQor7ISc7ZWZ7KGwDQor7ISc64+Z7ISdDQor7ISc7KKF7JuQDQor7ISc64yA7JqpDQor7ISc7ZWc6rWQDQor7ISc66y07Z2sDQor7ISc7YOc7LacDQor7ISc7YOc7Je0DQor7ISc7ZWc6riwDQor7ISc7JuQ7J6QDQor7ISc7JiB7Zi4DQor7ISc6rK97J6sDQor7ISc7ZW07JuQDQor7ISc7LaY7LKcDQor7ISc7KCV7IiYDQor7ISc6riw7IicDQor7ISc7ZeM6rWQDQor7ISc67OR6rWsDQor7ISc7IiY7Z2sDQor7ISc7ISg7IStDQor7ISc7Zi46rSADQor7ISc7LaY7LCsDQor7ISc7Iic64KoDQor7ISc64+Z7J28DQor7ISc7Zi47LC9DQor7ISc7LC967O1DQor7ISc64+Z6rSADQor7ISc64+Z7IiYDQor7ISc7Zi47LacDQor7ISc7KeE6riwDQor7ISc7YOc7ISgDQor7ISc7Lmg7Je0DQor7ISc7ZmN6rWQDQor7ISc7YOc7IudDQor7ISc66qF6rWsDQor7ISc7KCV64+ZDQor7ISc7ZmN6rWQDQor7ISc7ZW07ZmYDQor7ISc7ZWc7IK8DQor7ISc6rOE7Z2sDQor7ISc7ZmN7IiZDQor7ISc7J6s7Zi4DQor7ISc7YyQ7IiYDQor7ISc7J247IOBDQor7ISc7ZmN7IudDQor7ISc7LC97IudDQor7ISc7LCs7JqwDQor7ISc67SJ7KO8DQor7ISc7ZmY7IiYDQor7ISc7ZWZ6rG0DQor7ISc7ZmU66qFDQor7ISc7YOd66y4DQor7ISc7ZuI7YOcDQor7ISc7KCV7IStDQor7ISc7Iic7ZGcDQor7ISc7J287IiZDQor7ISc7Z2s7LKgDQor7ISc7Iah7Zi4DQor7ISc67aE7J6QDQor7ISc7LC97JilDQor7ISd6rSR7KeEDQor7ISd7ZWZ67CwDQor7ISd7ISx7JaRDQor7ISd7JuU7JqwDQor7ISd6riw67SJDQor7ISd7J6s7Z2sDQor7ISd6rSA7ISdDQor7ISd7ISx64KcDQor7ISd64+E7KCVDQor7ISd7J6l6regDQor7ISd642V7ZmYDQor7ISd7ZiE7JuQDQor7ISd66y07JiBDQor7ISd642V7KO8DQor7ISd7IiY7J28DQor7ISd66y07IiYDQor7ISd66y07Zi4DQor7ISd7KCV6rWsDQor7ISd7ISd7IicDQor7ISd7KSA7KSADQor7ISd67SJ64KoDQor7ISd7Je06raMDQor7ISd7Iic7KeADQor7ISd7IOB6rK9DQor7ISd67aE7ISgDQor7ISd7ZiE7ZWYDQor7ISd7IOB7IiYDQor7ISd67OR7ZeMDQor7ISd7IOB7IiYDQor7ISd7J6s7LacDQor7ISd7JiB7IudDQor7ISd7ZW07J6QDQor7ISd7IOB7Jq0DQor7ISd6rWt6rOkDQor7ISd7J2E7ZmUDQor7ISd67OR6recDQor7ISd7ISg67aADQor7ISd6rK97IiZDQor7ISd7Zic6regDQor7ISd6reA7JWgDQor7ISd7ISx66eMDQor7ISd6rSR64yADQor7ISd7KCV7JqpDQor7ISd7Lmg64KoDQor7ISd7IaM64+MDQor7ISd7ZiV6rWsDQor7ISd7L6M6recDQor7ISd6rec7ISdDQor7ISd7Iq57YOcDQor7ISd7ISg7LC9DQor7ISd6rK97IicDQor7ISd7KCV7Jq0DQor7ISd7Jew7J20DQor7ISd7IOB7ZmUDQor7ISd7JiB65+JDQor7ISd7YOc7ZWZDQor7ISd7JiB7Zi4DQor7ISd67OR7ZW0DQor7ISd67OR7IiZDQor7ISd7LKg7ZuIDQor7ISd7Jyk7JWUDQor7ISd7YOc7Je0DQor7ISd7LaY7IiYDQor7ISd6rK97ISgDQor7ISd7J2Y7J6QDQor7ISd67OR7IudDQor7ISd7JiB642VDQor7ISd7Jil7Zi4DQor7ISd7J207ZqoDQor7ISd7Iic7ZiEDQor7ISd7ISx7YOcDQor7ISd7IOB7ISgDQor7ISd7KCQ7ZqoDQor7ISd7J6s6ri4DQor7ISd7L6M656YDQor7ISd7LaY64+ZDQor7ISd7KCV7LacDQor7ISd7LaY7IS4DQor7ISd7LCo7KKFDQor7ISd64Ko6riwDQor7ISd7KCV7LacDQor7ISd6riw7YOcDQor7ISd6re87IicDQor7ISd64+Z66+4DQor7ISd7KKF7ZmUDQor7ISd6rSR67KUDQor7ISd64Ko6riwDQor7ISd7IOB7IiYDQor7ISd7KKF7ZmUDQor7ISd66qF7KeEDQor7ISd7L6M7JuQDQor7ISd7LCo7KSADQor7ISd7KeE7JiBDQor7ISd7KKF7ZWYDQor7ISd7ZmY7IOBDQor7ISd7ISd7KGwDQor7ISd7KeI7JWUDQor7ISd67SJ7Z2sDQor7ISd7IOB7KGwDQor7ISd6rK97ISdDQor7ISd7LCo7JWUDQor7ISd7KKF656ADQor7ISd66+47ISdDQor7ISd6riw7JqpDQor7ISd7LaY7JilDQor7ISd64+Z7JWUDQor7ISd7LCo7ISdDQor7ISd7JiB7KGwDQor7ISd7Zqo7KCVDQor7ISd7Z2s7KCcDQor7ISd7Y+J7IiYDQor7ISd66y47JqwDQor7ISg7Iq57Zi4DQor7ISg7Jqp7IiYDQor7ISg7J287KSRDQor7ISg66eM7YyQDQor7ISg7Jqw6rK9DQor7ISg67O164+MDQor7ISg7Iic7J6QDQor7ISg7JuQ7ZqMDQor7ISg7Jqw7JiB6ri4DQor7ISg64yA66qp6rSRDQor7ISg642V6riw6rK9DQor7ISg64Ko67Cw67ORDQor7ISk6rCV7IiYDQor7ISk7LCo7IicDQor7ISk7Z2s7JewDQor7ISk6riw7YOdDQor7ISk64+Z7ISdDQor7ISk67OR7Je0DQor7ISk7JiB7ISdDQor7ISk7IS47LKgDQor7ISk66qF7IicDQor7ISk6riI7ISdDQor7ISk7KCV64+EDQor7ISk7Iic7J6EDQor7ISk66yY7IicDQor7ISk67O164+MDQor7ISk7LCs7JewDQor7ISk7KSA7YOcDQor7ISk7IK87IiYDQor7ISk6rOE7ZiEDQor7ISk7ZW0642VDQor7ISk7ISx6riwDQor7ISk7IOB6recDQor7ISk7IOB7IudDQor7ISk7J246regDQor7ISk7J6s67ORDQor7ISk7ISx6rWsDQor7ISk7Jqp7JWUDQor7ISk7Zqo7ISgDQor7ISk7KKF7JiBDQor7ISk7IaM7KO8DQor7ISk7KeA7JykDQor7ISk7ZuE7Z2gDQor7ISk7Jqp7YOdDQor7ISk7Iic7JilDQor7ISk7IOB7JuQDQor7ISk7J6s7JqxDQor7ISk67OR7JqwDQor7ISk7JiB6rWsDQor7ISk7IOB642VDQor7ISk7IiY7JqwDQor7ISk6riI7J6QDQor7ISk7JiB7KSADQor7ISk7Zi47Zi4DQor7ISk66y064KoDQor7ISk7Lap7Jq0DQor7ISk7Jqp7KSADQor7ISk6reA7KeEDQor7ISk7J6s67SJDQor7ISk67OR67aEDQor7ISk7JuQ7IudDQor7ISk7IKw6recDQor7ISk7KeA7Jq0DQor7ISk7Iic7J6QDQor7ISk7JuQ7KSADQor7ISk7JuU64+MDQor7ISk6rec67SJDQor7ISk7Jyk6raMDQor7ISk7Jyk7ISxDQor7ISk7Jyk7JuQDQor7ISk7Iic7JqwDQor7ISk7ISk7ISdDQor7ISk7Jyk7ZiVDQor7ISk6rOE7JqxDQor7ISk7IOB7Zi4DQor7ISk7Iq57JqwDQor7ISk7J2Y7KSADQor7ISk64+Z7Zi4DQor7ISk7ISd6rOgDQor7ISk7YOc7IiYDQor7ISk7J246rCRDQor7ISk7IOB7IucDQor7ISk7IiY7KGwDQor7ISk7J6l7ZWZDQor7ISk7KCV7KSADQor7ISk66qF7LacDQor7ISk7YyQ7ZuIDQor7ISk6rWs7IigDQor7ISk7KeE6rWsDQor7ISk6rWQ7IiZDQor7ISk6rWQ7KSADQor7ISk67OR7ISdDQor7ISk7LC9DQor7ISk7IicDQor7ISk7KKFDQor7ISk7JiBDQor7ISk7LC97IiYDQor7ISk7KKF6rWtDQor7ISk7J2867SJDQor7ISk7ZeM6ri4DQor7ISk7LKc7IiYDQor7ISk7J2A7J6EDQor7ISk7ZWc642VDQor7ISk6riw7ZmYDQor7ISk7LaY7IiYDQor7ISk7Jyk6regDQor7ISk7ISg7Zi4DQor7ISk66ek7ZmUDQor7ISk7ZiE7IiYDQor7ISk7JiB7ZiEDQor7ISk7YOc7KKFDQor7ISk7Jyk7YOdDQor7ISx6rK966qoDQor7ISx7KSR7IudDQor7ISx7J6s7JqwDQor7ISx7IOB7JqwDQor7ISx6rK97YOcDQor7ISx7Jq07Z2sDQor7ISx66qF7JewDQor7ISx7Jil6ri4DQor7ISx6rOE7KKFDQor7ISx7JuQ6rOgDQor7ISx7Iic6recDQor7ISx7Z2s7IudDQor7ISx6rec7JqpDQor7ISx7IK87Z2sDQor7ISx7ZW07IStDQor7ISx66qF64KoDQor7ISx6riI7JqpDQor7ISx6reA7IStDQor7ISx66eQ7ZmNDQor7ISx7KKF7IudDQor7ISx6riw642VDQor7ISx7Iq5642VDQor7ISx6rSR7JuQDQor7ISx67Cx656ADQor7ISx6riw67O1DQor7ISx7ISd7ISgDQor7ISx7ISx7JqxDQor7ISx7YOc7JiBDQor7ISx6riw7J2ADQor7ISxIOyInA0KK+yEseykgO2drA0KK+yEseyerOyaqQ0KK+yEseq4sO2VmQ0KK+yEseynhOuqhQ0KK+yEseq4iOq4iA0KK+yEse2VtOusuA0KK+yEseq4sO2dlA0KK+yEse2YnOq4sA0KK+yEseuCqOq3nA0KK+yEseyaqe2ZmA0KK+yEseuCmeq1rA0KK+yEsSDtmZgNCivshLHsooXsiJgNCivshLHrj5nsmqkNCivshLHrgpnqtowNCivshLHqtJHrtoQNCivshLHrqoXquLANCivshLHssL3shJ0NCivshLHrgpnqt6ANCivshLHsmIHtmIQNCivshLHsnpDqt5wNCivshLHsmIHtl4wNCivshLHrgpnrj5kNCivshLHsnbjtmIQNCivshLHqt5zstpwNCivshLHsgrztg5wNCivshLHrgpnrj5kNCivshLHqt4Dsi50NCivshLHsnqzsmrANCivshLHtmITshJ0NCivshLHrgpnrj5kNCivshLHrp5DshJ0NCivshLHquLDtnawNCivshLHsoJXquLANCivshLHrgpnrj5kNCivshLHrtoTrjIANCivshLHsiJzrj5kNCivshLHshKDqtowNCivshLHrgpnsiJwNCivshLHsiJzsiJgNCivshLHtlZzsobANCivshLHsnbjrrLgNCivshLHrgpnsmIENCivshLHtnJjsmrQNCivshLHtlbTtmZgNCivshLHtlbTsnpANCivshLHrgpnsmYQNCivshLHrs5HspIANCivshLHssKjsiJgNCivshLHsp4TsiJgNCivshLHrgpnspJENCivshLHrtoDtmLgNCivshLHshKDquIgNCivshLHsmqnqsbQNCivshLHrgpnsp4QNCivshLHshKDtmLgNCivshLHrrLTsmYQNCivshLHsnqzsi50NCivshLHrgpnssKwNCivshLHsp4TsmIENCivshLHshozrrLgNCivshLHqtJHsnbwNCivshLHrgpntjJQNCivshLHsmrDqt6ANCivshLHrjZXsi6ANCivshLHsiJjsnbUNCivshLHrgpntlZgNCivshLHssL3qtZANCivshLHsmqnrs7UNCivshLHtg5zsnbwNCivshLHrgpntm4gNCivshLHrs5Hqt7wNCivshLHstpjtnawNCivshLHsnqztlZwNCivshLHrgqjqsr0NCivshLHsuZjsobANCivshLHtg5zssqANCivshLHrqoXquLgNCivshLHrkZDsmqkNCivshLHspIDqsr0NCivshLHssYTsiJgNCivshLHtg5zsmKUNCivshLHrnb3qsr0NCivshLHsmrDsp4QNCivshLHsg4Hsi50NCivshLHsooXsooUNCivshLHrnb3qtIANCivshLHspIDrj5kNCivshLHssL3snpANCivshLHsi6DtmZgNCivshLHrp4zsoJUNCivshLHsnqzquLANCivshLHsm5Dso7wNCivshLHtg5zspJENCivshLHrp5Dsl7ANCivshLHshKDsobANCivshLHssKjsiJgNCivshLHquLDso7wNCivshLHrqoXqt7wNCivshLHqt5zshJ0NCivshLHsiJzquLANCivshLHsiJzrj4wNCivshLHrsLHsi6ANCivshLHsooXtnawNCivshLHsnbjsiJgNCivshLHsnbzshKANCivshLHrs5HrgqgNCivshLHsmIHsiJgNCivshLHquLDrrLgNCivshLHtl4ztmLgNCivshLHrs5HsmrANCivshLHtlZztmLgNCivshLHtlZzqtIANCivshLHshozspIANCivshLHrs7Xsi50NCivshLHsoJXqt5wNCivshLHsnYDsspwNCivshLHsnYTtmLgNCivshLHrtoTsi5wNCivshLHtlbTsnpANCivshLHrrLjsmqkNCivshLHsmIHsiJgNCivshLHsgqzsmIENCivshLHsmIHrrLgNCivshLHshLjsi50NCivshLHsp4Dqs6QNCivshLHsg4HrqqgNCivshLHquLDtmIQNCivshLHsooXrj5kNCivshLHrp5DtmZgNCivshLHsg4HsiJgNCivshLHquLDsl7ANCivshLHsg4Hrj4QNCivshLHtg5ztmZgNCivshLHsg4HtmIQNCivshLHtjJTqta0NCivshLHsnbTsmqkNCivshLHsoJDsi50NCivshLHshJ3qsr0NCivshLHsnqXqtawNCivshLHspJHquLANCivshLHsoJDsmrANCivshLHshKDsnbQNCivshLHrs5HsiJwNCivshLHrp5DtjJQNCivshLHtlonqt5wNCivshLHshoztmZgNCivshLHrs5Htl4wNCivshLHshLHslZQNCivshLHsp4Dsg4ENCivshLHsiJjqsr0NCivshLHsg4Htg5wNCivshLHtg5ztmIQNCivshLHsoJXrtIkNCivshLHsiJjqtJENCivshLHsoJXqs6QNCivshLHtg5zqt5wNCivshLHtjJDrrLUNCivshLHsiJzsnpANCivshLHrr7zshKANCivshLHrrLTsiJwNCivshLHsm5Dtm4gNCivshLHslpHsiJgNCivshLHsg4Hqt6ANCivshLHrs5Hqt7wNCivshLHtlbTshKANCivshLHsmIHqsr0NCivshLHso7zsmKQNCivshLHsoJXrqqgNCivshLHsmqnsmKQNCivshLHsmIHrnoANCivshLHqtJHrhYQNCivshLHtmLjrr7wNCivshLHsiJjtmZgNCivshLHsmKTsoJwNCivshLHtg5zsiJgNCivshLHsiJztm4gNCivshLHqtZDrj5kNCivshLHsmbjshJ0NCivshLHsmqntnawNCivshLHsnbjquLANCivshLHqtZDsi50NCivshLHsmqnqsr0NCivshLHsoJXsi50NCivshLHso7zsnKQNCivshLHsmIHsnbwNCivshLHsmqnsuaANCivshLHtjJDrk50NCivshLHsoJDsmIENCivshLHsgqzroKgNCivshLHsmrDqsr0NCivshLHqt5zsmYQNCivshLHrs7Xtl4wNCivshLHsoJXquLgNCivshLHsm5Dqsr0NCivshLHrs5HrrLQNCivshLHqt5zsl7ANCivshLHrp4zshK0NCivshLHsnITshKANCivshLHtlbTtg5wNCivshLHsoJXtnawNCivshLHsoJDsl7QNCivshLHsnYDrqqgNCivshLHtg5zsm5ANCivshLHshJ3sobANCivshLHsirntmZgNCivshLHsnYDsmqkNCivshLHtlZjtmLgNCivshLHrs5HtlZkNCivshLHsnoTrgpwNCivshLHsnZjsooUNCivshLHrqoXsnKQNCivshLHtlZjsgrwNCivshLHsnbjsi50NCivshLHsnbzquIgNCivshLHsooXtmLgNCivshLHrjIDssqANCivshLHsnZjtmLgNCivshLHsnqzqsJENCivshLHsiJjsnKQNCivshLHtg5ztnaANCivshLHsgrztnawNCivshLHsnqzqt7wNCivshLHtmJzqtowNCivshLHsiJjtmZgNCivshLHsnqzqsr0NCivshLHsoJXsiJwNCivshLHqsr3soIQNCivshLHquLDsi5wNCivshLHsg4Htg5wNCivshLHsobDqt7wNCivshLHsg4HquLgNCivshLHsmIHshLENCivshLHsl7DtmLgNCivshLHso7zqs6QNCivshLHsiJzquLANCivshLHsoJXtmLgNCivshLHrj5nqt5wNCivshLHspIDtmZgNCivshLHsmZXqtZANCivshLHsooXrr7wNCivshLHsooXqtowNCivshLHspJHtmZgNCivshLHstpjsobANCivshLHsmrTtmLgNCivshLHssKjrj5kNCivshLHspp3sm5ANCivshLHsnqXtg5wNCivshLHsmrDtmLgNCivshLHsmIHsm5ANCivshLHssL3qsr0NCivshLHsoJDso7wNCivshLHrp4zquLANCivshLHsoJXsnpANCivshLHssqDsmqkNCivshLHsiJztnLQNCivshLHsg4Hsp4QNCivshLHshLHqtowNCivshLHtg5zqsr0NCivshLHsnqzsnKANCivshLHsoJXsiJgNCivshLHsp4TsmrENCivshLHtg5zrjZUNCivshLHsiJjsnKgNCivshLHrs5Hrk50NCivshLHrj5nrp4wNCivshLHtg5zsmqkNCivshLHshozqtowNCivshLHquLjqta0NCivshLHrs5HtmLgNCivshLHtko3qta0NCivshLHsoJXsiJgNCivshLHsoJXtnawNCivshLHsoJXsnbQNCivshLHtlZzqsr0NCivshLHtg5zquLgNCivshLHsooXtg50NCivshLHsoJXtnawNCivshLHtlbTsmqkNCivshLHssqDsl7ANCivshLHsooXrj4QNCivshLHrs5HsiJwNCivshLHtnaXsi50NCivshLHsmIHsiJgNCivshLHrrLTsp5ENCivshLHrtIntmZQNCivshLHtnazspIANCivshLHsmIHsiKANCivshLHrs5HspIANCivshLHtlYTtmJwNCivshozrs5HrrLgNCivshozsoJXtg5wNCivshozsooXtmLgNCivshozsnqzsiJgNCivshozrs5HslpENCivshozsooXspIANCivshozspIDshLgNCivshozrgqjtlZwNCivshozsiJjshK0NCivshozsg4HqtIANCivshozrs5HsmrANCivshozsooXqt7wNCivshozsmIHtnawNCivshozrp5DsnpANCivshozqtJHsmqkNCivshoztmY3tmZgNCivshozsp4TrjZUNCivshozrs5HrrLgNCivshoztjJDqt6ANCivshozrspTstpgNCivshoztmansmKUNCivshozrs5Hsp4QNCivshozrjZXsnoQNCivshozqtJHsobANCivshpDqs4TroKgNCivshpDshozsmqkNCivshpDrj5nsmqkNCivshpDshLHtmIQNCivshpDqs4TsnoQNCivshpDsmIHquLANCivshpDshLHsiJgNCivshpAg7ZmUDQor7IaQ6rOE7YOBDQor7IaQ7ZWZ7Zi4DQor7IaQ6rSR6riwDQor7IaQ7KCV7JikDQor7IaQ6rO17IiYDQor7IaQ7ZW066GdDQor7IaQ6rCR7ZiEDQor7IaQ7KCQ7KSRDQor7IaQ6reA7JWFDQor7IaQ7ISx6rK9DQor7IaQ7J2A7YOcDQor7IaQ6rSR6ri4DQor7IaQ6rec64usDQor7IaQ67OR7JqwDQor7IaQ7KKF6rWsDQor7IaQ7IOB7KCVDQor7IaQ6rec7JiBDQor7IaQ7J247JewDQor7IaQ7Jqp66y4DQor7IaQ7Zi47ISxDQor7IaQ6rec7ZWZDQor7IaQ7Jqw7J24DQor7IaQ7LKc65GQDQor7IaQ7J2R7JikDQor7IaQ6riI7IicDQor7IaQ7YOc7IudDQor7IaQ6rOE7ZmYDQor7IaQ7Jyk7IiYDQor7IaQ6riI7IicDQor7IaQ7KeA7KSADQor7IaQ7JmV6rWtDQor7IaQ7Jqp7Z2sDQor7IaQ6riI7KGwDQor7IaQ7JiB7IiZDQor7IaQ7KCV7J6QDQor7IaQ64Ko7ISdDQor7IaQ6riw66qpDQor7IaQ66+47YOcDQor7IaQ7IOB65OdDQor7IaQ7IiY7ISdDQor7IaQ6riw7JqpDQor7IaQ7ISx7KeEDQor7IaQ7JiB7ZuEDQor7IaQ64yA7ZuIDQor7IaQ64W47YOBDQor7IaQ7KCV7Je0DQor7IaQ7ZW07IicDQor7IaQ66qF7IStDQor7IaQ64us6re8DQor7IaQ7Jil7JqxDQor7IaQ7J287ZWEDQor7IaQ7IK87J6EDQor7IaQ64yA67SJDQor7IaQ7Zqo7JiBDQor7IaQ7J6s7IiZDQor7IaQ7KO87JqwDQor7IaQ64+Z7ZmpDQor7IaQ7JiB6rWsDQor7IaQ7IS47YOcDQor7IaQ6rCR7IiZDQor7IaQ64+Z7ZmpDQor7IaQ7IOB7IicDQor7IaQ7ZmN7IS4DQor7IaQ67OR66OhDQor7IaQ66eJ64K0DQor7IaQ7ZWc7JqpDQor7IaQ7ISx67CwDQor7IaQ66eM7IOBDQor7IaQ66eM7IiYDQor7IaQ7ZeM7ZmNDQor7IaQ7JiB7YOcDQor7IaQ7KKF6rWsDQor7IaQ66eQ7IicDQor7IaQ7ZiV7IicDQor7IaQ7JiB7KCcDQor7IaQ7Iic7Zi4DQor7IaQ66qF6rWtDQor7IaQ67SJ7JqxDQor7IaQ67SJ7KO8DQor7IaQ7JuQ7ISdDQor7IaQ66qF6rWtDQor7IaQ7KeE6riwDQor7IaQ7IiY67CwDQor7IaQ7IaM6raMDQor7IaQ66qF7IicDQor7IaQ7Zic65+JDQor7IaQ67OR6rOkDQor7IaQ7Jqw6recDQor7IaQ66qF7IigDQor7IaQ7ZW07Zi4DQor7IaQ6rOE7KSADQor7IaQ67OR7J6QDQor7IaQ66qF7J6QDQor7IaQ7IOB7JikDQor7IaQ6rSR642VDQor7IaQ7KeE7J20DQor7IaQ66y07KKFDQor7IaQ6rK97Z2sDQor7IaQ7LCs6re8DQor7IaQ7Z2l7J20DQor7IaQ66y46riwDQor7IaQ7IOB7ZmYDQor7IaQ67SJ7JqwDQor7IaQ7Jm47J6EDQor7IaQ66+87KCVDQor7IaQ7KCV7IiYDQor7IaQ7Jyk7Z2sDQor7IaQ6rK96ri4DQor7IaQ67OR6raMDQor7IaQ66qF7KO8DQor7IaQ6rWt67CwDQor7IaQ7YOc7YOcDQor7IaQ67OR6riwDQor7IaQ7KKF7JikDQor7IaQ7IOB7IiZDQor7IaQ67OR6rO1DQor7IaQ67OR6ri4DQor7IaQ7JiB7LKcDQor7IaQ66+87J6QDQor7IaQ642V6riwDQor7IaQ67OR66y4DQor7IaQ7ZW07Zi4DQor7IaQ7J6s6re8DQor7IaQ7KeE7JuQDQor7IaQ67OR7Ja4DQor7IaQ7Jyk7ZGcDQor7IaQ7LC97ZmYDQor7IaQ64yA7JWUDQor7IaQ67OR7JqwDQor7IaQ7IOB7IiYDQor7IaQ7KCV7JqpDQor7IaQ7ISx7JilDQor7IaQ67OR7J2ADQor7IaQ66eQ64+MDQor7IaQ7Jyk7IiYDQor7IaQ7IOB7ZmNDQor7IaQ67OR7LKcDQor7IaQ7Jqw7Zi4DQor7IaQ7J6s7ZWZDQor7IaQ7JmE7KGwDQor7IaQ67OR7Zi4DQor7IaQ7Jqw7YOcDQor7IaQ7KSR7IiYDQor7IaQ7IiY7Zi4DQor7IaQ67SJ6raMDQor7IaQ7IOB7LKgDQor7IaQ6riw64+ZDQor7IaQ7KKF7ZiEDQor7IaQ67SJ656YDQor7IaQ7Jik7J2YDQor7IaQ7YOc6re8DQor7IaQ67OR7ISxDQor7IaQ67SJ7ZmUDQor7IaQ7Iic7IigDQor7IaQ642V7ZiEDQor7IaQ7KCV64+EDQor7IaQ7IK87KGwDQor7IaQ7ZWc7IudDQor7IaQ7IiZ64+ZDQor7IaQ67OR7JWgDQor7IaQ7IK87LacDQor7IaQ64u06regDQor7IaQ7LC97JWgDQor7IaQ7Iic7IucDQor7IaQ7IOB6raMDQor7IaQ64us7Zi4DQor7IaQ7KKF7J6sDQor7IaQ7Lmg6re8DQor7IaQ7IOB6recDQor7IaQ7JiB7YOcDQor7IaQ7IOB7JiBDQor7IaQ7IiZ6rWQDQor7IaQ7IOB6recDQor7IaQ7LCs7YOcDQor7IaQ7ISg7YOcDQor7IaQ6riI64+EDQor7IaQ7IOB6recDQor7IaQ7Iic7IStDQor7IaQ7KKF7Zi4DQor7IaQ7LaY7LKcDQor7IaQ7IOB6recDQor7IaQ7KeE7IudDQor7IaQ64+Z7IiYDQor7IaQ6rSR7ZmYDQor7IaQ7IOB6riwDQor7IaQ67O16raMDQor7IaQ7IK867ORDQor7IaQ7Jq06ri4DQor7IaQ7IOB66qoDQor7IaQ7IOB7Zi4DQor7IaQ7IK87JikDQor7IaQ7KSR7Je0DQor7IaQ7IOB7KeEDQor7IaQ7KSR7YOcDQor7IaQ7ZKN7Ja1DQor7IaQ66eM66GdDQor7IaQ7IOB7LKgDQor7IaQ66eJ7J6QDQor7IaQ64yA6ri4DQor7IaQ7Iuc7ZqoDQor7IaQ7ISg6rK9DQor7IaQ7IOB7Zi4DQor7IaQ6rWQ7IiZDQor7IaQ7J6s7ZiEDQor7IaQ7ISx7ZalDQor7IaQ7JiB656RDQor7IaQ7IOB7Zi4DQor7IaQ7J6s7IusDQor7IaQ7IaM67KUDQor7IaQ7IiY7IudDQor7IaQ7KKF7Jq0DQor7IaQ7J6s7IiZDQor7IaQ7IiY6re8DQor7IaQ7IOB7KGwDQor7IaQ7ISd7Zi4DQor7IaQ7Jyk7IudDQor7IaQ7IiY64KcDQor7IaQ7Jqp6riwDQor7IaQ7LC97IOBDQor7IaQ64+Z642VDQor7IaQ7IiY66qoDQor7IaQ6rec7KGwDQor7IaQ7KSR7Zi4DQor7IaQ7IOB7Je0DQor7IaQ7IiY7JWUDQor7IaQ7IiY7ZmYDQor7IaQ67OR7KeEDQor7IaQ7IOB7LKgDQor7IaQ7IiY7JqpDQor7IaQ7ZiV6rWQDQor7IaQ7YOc7J20DQor7IaQ7KeE6ri4DQor7IaQ7IiY7JuQDQor7IaQ7ZWY67aEDQor7IaQ7ZWc7YOcDQor7IaQ67SJ7KeEDQor7IaQ7IiY7J21DQor7IaQ7LaY7JilDQor7IaQ67SJ7JqxDQor7IaQ6rK97IiZDQor7IaQ7IiY7J24DQor7IaQ7J6s7ZmYDQor7IaQ7Lmg7IicDQor7IaQ7YyQ6rK9DQor7IaQ7Iic6rOEDQor7IaQ7JiB67aEDQor7IaQ64Ko7ZmNDQor7IaQ7J6s6rG0DQor7IaQ7Iic7ZalDQor7IaQ7IiY67CwDQor7IaQ7IiY6riwDQor7IaQ7J287JmEDQor7IaQ7Iq57KSADQor7IaQ7Z2s67O1DQor7IaQ7J2065OdDQor7IaQ66y47JuQDQor7IaQ7Iq57Z2sDQor7IaQ7Iic642VDQor7IaQ7J6s6rWsDQor7IaQ67OR7IudDQor7IaQ7Ius7IiZDQor7IaQ7J6s7ISdDQor7IaQ7YOc7JqwDQor7IaQ66eM7Z2sDQor7IaQ7JiB7JilDQor7IaQ7ZeM7JiBDQor7IaQ7JuQ7JqwDQor7IaQ7Iic67SJDQor7IaQ7JiB7KCcDQor7IaQ7LKg7KCVDQor7IaQ7JiB7LKgDQor7IaQ6ri47JewDQor7IaQ7JiB7KeEDQor7IaQ7JiB7JuQDQor7IaQ7J6l7LCsDQor7IaQ67OR7ISdDQor7IaQ7Jil656ADQor7IaQ7Iic7KGwDQor7IaQ64yA7JWUDQor7IaQ66qF7KeEDQor7IaQ7Jm47IicDQor7IaQ7ISg7ZmYDQor7IaQ67OR7ZmNDQor7IaQ7J6s64KoDQor7IaQ7Jqp7IiYDQor7IaQ7J6s7IigDQor7IaQ7KCV7JewDQor7IaQ7Zi47JqpDQor7IaQ7Jqp7IudDQor7IaQ64yA7JuFDQor7IaQ7Jik7JilDQor7IaQIOyjvA0KK+yGkOyasOyLnQ0KK+yGkOynhO2ZmA0KK+yGkOq0keynhA0KK+yGkOqwkeyYgQ0KK+yGkOyasOyjvA0KK+yGkOuqhe2YhA0KK+yGkOyEseyVlA0KK+yGkOq4iOuwsA0KK+yGkOyaseyImA0KK+yGkOyEneuhnQ0KK+yGkOyduOyXtA0KK+yGkOuzkeyglQ0KK+yGkOybkOydtQ0KK+yGkOuPmeyekA0KK+yGkOyerOq3nA0KK+yGkO2VtO2drA0KK+yGkOycpOyImQ0KK+yGkOyasOugrA0KK+yGkO2drOykgA0KK+yGkOyEoO2YuA0KK+yGkOyduOyDgQ0KK+yGkOuzkeq4uA0KK+yGkOq4sOudvQ0KK+yGkOyYpe2ZmA0KK+yGkOydvOyLnQ0KK+yGkOykkeyImA0KK+yGkOq4iOunkA0KK+yGkOy2qeybkA0KK+yGkOydvO2WpQ0KK+yGkOuqheyImA0KK+yGkO2drOyInA0KK+yGkO2YuOyZhA0KK+yGkOydvO2YuA0KK+yGkOyCvOuztQ0KK+yGkO2DnOyyoA0KK+yGkOywve2YuA0KK+yGkOyepeyImA0KK+yGkOuLrOyEnQ0KK+yGkOuPmeyImQ0KK+yGkOyEseydgA0KK+yGkOyepeyYpA0KK+yGkOykkeuegA0KK+yGkOyatOyDgQ0KK+yGkOygkOu2hA0KK+yGkOyerOybkA0KK+yGkOqyveyXsA0KK+yGkOyYgeyYgQ0KK+yGkOq4sOuqqA0KK+yGkOyerOycpA0KK+yGkOygle2YuA0KK+yGkOynhO2YuA0KK+yGkOydmOuPhA0KK+yGkOygleyEnQ0KK+yGkOyaqeyYgQ0KK+yGkOyaqeynhA0KK+yGkOyEseyInA0KK+yGkOygleyImA0KK+yGkOuPmey2nA0KK+yGkOyEseyDgQ0KK+yGkOyDgeyInA0KK+yGkOygleyImQ0KK+yGkOusmOybkA0KK+yGkOyepe2biA0KK+yGkOyerOyImA0KK+yGkOygleyXtA0KK+yGkOygleyYgQ0KK+yGkOq0keyEnQ0KK+yGkOuqheyYgQ0KK+yGkOygleybkA0KK+yGkOunkOyLnQ0KK+yGkOyYgeyImA0KK+yGkOyatOyekA0KK+yGkOygleycoA0KK+yGkOykgOyEoA0KK+yGkOyerOq1rQ0KK+yGkOu0ieuNlQ0KK+yGkOygle2drA0KK+yGkOyDgey2mA0KK+yGkOq0keyEuA0KK+yGkOyatO2RnA0KK+yGkOyiheuqqA0KK+yGkO2aqOuPmQ0KK+yGkOq0keyLnQ0KK+yGkOuniOuPhA0KK+yGkOyiheyLnQ0KK+yGkOyaqeyImA0KK+yGkO2VnOyInA0KK+yGkOyYqO2YhA0KK+yGkOyiheyxhA0KK+yGkOyViOyEoA0KK+yGkOuvuOyLnQ0KK+yGkO2DnOu5iA0KK+yGkOyjvOyInA0KK+yGkO2drOyXsA0KK+yGkOq0gOydtQ0KK+yGkO2YhOyEsQ0KK+yGkOykke2YuA0KK+yGkOy5mOyYgQ0KK+yGkOyerOynhA0KK+yGkO2MkOyyoA0KK+yGkOywveybhQ0KK+yGkOygleuniQ0KK+yGkOyerOyYpQ0KK+yGkOyGjOyLnQ0KK+yGkOyxhOu0iQ0KK+yGkOykgO2XjA0KK+yGkO2XjO2ZmA0KK+yGkOq4sOuNlQ0KK+yGkOyyreyInA0KK+yGkOyYgeuqqA0KK+yGkO2DnOy2nA0KK+yGkOq3vOyIoA0KK+yGkOyyre2YuA0KK+yGkOqyve2YhA0KK+yGkOykgOyaqQ0KK+yGkOyerO2DnA0KK+yGkOy5oOu0iQ0KK+yGkOyYgeunjA0KK+yGkOyEoOuztA0KK+yGkOqxtOybhQ0KK+yGkO2DnOqzpA0KK+yGkO2YhOynhA0KK+yGkOyaqe2VmQ0KK+yGkOyihe2drA0KK+yGkO2DnOyasQ0KK+yGkOyEuO2ZmA0KK+yGkOyiheykgA0KK+yGkOydgO2drA0KK+yGkO2DnOyasQ0KK+yGkOyCvOyImA0KK+yGkOykgOuPmQ0KK+yGkOybkOusmA0KK+yGkO2DnOybkA0KK+yGkO2XjOyjvA0KK+yGkOq4sOyXtA0KK+yGkOynhOuztQ0KK+yGkO2DnOybkA0KK+yGkOyWkeuemA0KK+yGkOy2mO2YuA0KK+yGkOyImOyImQ0KK+yGkO2DnOybkA0KK+yGkOq2jOu0iQ0KK+yGkOyEneyEnQ0KK+yGkOq4sO2VmQ0KK+yGkO2DnOyhsA0KK+yGkOq2jOyasQ0KK+yGkOyyoO2ZmA0KK+yGkOq0keyjvA0KK+yGkO2DnOyihQ0KK+yGkOygle2drA0KK+yGkOydvOq3nA0KK+yGkOyngOydtQ0KK+yGkO2DnO2ZmA0KK+yGkO2YleyEnQ0KK+yGkOyInOyImA0KK+yGkOyasO2biA0KK+yGkO2Dneq3vA0KK+yGkOyIme2ZjQ0KK+yGkOy5oO2YuA0KK+yGkOyjvOyekA0KK+yGkO2MkOq2jA0KK+yGkOygkOyImA0KK+yGkO2DnOuPhA0KK+yGkOyiheuPmQ0KK+yGkO2MkOyEnQ0KK+yGkOqyveykkQ0KK+yGkOq0keyImA0KK+yGkO2DnOyLnQ0KK+yGkO2Vmeq4sA0KK+yGkOyYgeyVlA0KK+yGkOykgOyjvA0KK+yGkOuPhOuFlQ0KK+yGkO2VmeyLnQ0KK+yGkO2YhO2DnA0KK+yGkOq4sOyEuA0KK+yGkOyYgeyasQ0KK+yGkO2VtOqyvQ0KK+yGkOuzkeyekA0KK+yGkOqyveuNlQ0KK+yGkOqwkeyLnQ0KK+yGkO2VtOuPmQ0KK+yGkOydvOyImA0KK+yGkOuzkeyLnQ0KK+yGkOuPhOuTnQ0KK+yGkO2YhOq2jA0KK+yGkOyngOyLnQ0KK+yGkOq3nOq4sA0KK+yGkOyEne2ZmA0KK+yGkO2ZlO2DnQ0KK+yGkOuPhOyDnQ0KK+yGkOq0keyXsA0KK+yGkO2aqOyasA0KK+yGkO2biOyerA0KK+yGkOydgOq3nA0KK+yGkOuqheyEnQ0KK+yGkOydmOyYpQ0KK+yGkO2dpeyXtA0KK+yGkOuzkeyVlA0KK+yGkOywqOuwsA0KK+yGkOyImOyIoA0KK+yGkO2drOyVvA0KK+yGkOydtOyEoA0KK+yGkO2DnOq3vA0KK+yGkOq4uOyEnQ0KK+yGkO2drO2DnQ0KK+yGkOydmO2ZmA0KK+yGkOq4sO2YuA0KK+yGkOydkeyInA0KK+yGoeqwleu2gA0KK+yGoeuqheunjA0KK+yGoeunjOyEsQ0KK+yGoeygle2VmQ0KK+yGoeqwle2YuA0KK+yGoeqyveybhQ0KK+yGoe2Zjeq3nA0KK+yGoe2DnO2ZmA0KK+yGoeqyveyEnQ0KK+yGoeyYpeyasA0KK+yGoeunjOq3vA0KK+yGoeuCmeyImA0KK+yGoeq0gOycqA0KK+yGoe2YhOq3nA0KK+yGoeyEseqyvQ0KK+yGoeyLnOyaqQ0KK+yGoeq0keyerA0KK+yGoeqyve2VmA0KK+yGoeyEne2ZmA0KK+yGoeq4sOqzoA0KK+yGoeq1rOyErQ0KK+yGoeyImOybkA0KK+yGoe2XjO2YuA0KK+yGoeyxhOyglQ0KK+yGoeq3nOyErQ0KK+yGoeyerOyglQ0KK+yGoeq4sOyLnQ0KK+yGoeyEneyInA0KK+yGoeq4iOyYpQ0KK+yGoeybkOyLnQ0KK+yGoeuqheqyvQ0KK+yGoeq4uOyImA0KK+yGoeq4sOybkA0KK+yGoeyYgeuTnQ0KK+yGoeuzke2drA0KK+yGoeunjOyXsA0KK+yGoeq4sOy2mA0KK+yGoeqyveydvA0KK+yGoeynhOyyoA0KK+yGoeyiheq4sA0KK+yGoeuLrO2YuA0KK+yGoeycpOyEnQ0KK+yGoe2VtOq4sA0KK+yGoeyYge2aqA0KK+yGoeuMgOykkQ0KK+yGoeyYgeyEoA0KK+yGoeykkeyasQ0KK+yGoey2mOyErQ0KK+yGoeuMgO2YuA0KK+yGoeyCrO2YhA0KK+yGoeuzkeyLnQ0KK+yGoeusuOyWuA0KK+yGoeuNleyInA0KK+yGoeuzkeyaqQ0KK+yGoeyduOyyoA0KK+yGoeyInOuLrA0KK+yGoeuNle2ZjQ0KK+yGoeqyveunjA0KK+yGoe2aqOuNlQ0KK+yGoeyYgeyhsA0KK+yGoeuNle2ZmA0KK+yGoeyYgeyehA0KK+yGoeyDneq3vA0KK+yGoeydhO2YuA0KK+yGoeuPmeyErQ0KK+yGoeyInO2ZmA0KK+yGoeydvOyImQ0KK+yGoeq4sO2ZlA0KK+yGoeuPmeyYgQ0KK+yGoeybkOuwsA0KK+yGoeyEseyImA0KK+yGoeyDgeyhsA0KK+yGoeunjOyYgQ0KK+yGoeyduO2YuA0KK+yGoeykke2YuA0KK+yGoeyImOyEsQ0KK+yGoeunjO2XjA0KK+yGoey2mOuPmQ0KK+yGoeygle2DnA0KK+yGoeykgOyInA0KK+yGoeunkOyhsA0KK+yGoeyImOyXtA0KK+yGoeyiheyXtA0KK+yGoeuzkeuhgA0KK+yGoeustOyYgQ0KK+yGoeyduOyInA0KK+yGoeyEoOynhA0KK+yGoeyYge2ZmA0KK+yGoeusuOyYpQ0KK+yGoeyYgeq4sA0KK+yGoeyiheyLnQ0KK+yGoeyInOyLnQ0KK+yGoeusuO2VnA0KK+yGoeuvuOyImA0KK+yGoeyZuOyImA0KK+yGoeusuOyImA0KK+yGoeuvuOuguQ0KK+yGoeyaqe2drA0KK+yGoeu2gOq4sA0KK+yGoeuMgO2ZmA0KK+yGoeuvvOyImQ0KK+yGoeuzkey2nA0KK+yGoe2YuOyInA0KK+yGoeuvvOy2nA0KK+yGoeuyiOyImA0KK+yGoeykgOq3vA0KK+yGoeygleyLnQ0KK+yGoeq0ke2PrA0KK+yGoeuzke2cmA0KK+yGoe2aqOq3nA0KK+yGoeuPmeyyoA0KK+yGoeuRkOynhA0KK+yGoeyDgeq1kA0KK+yGoeqzhO2VmQ0KK+yGoeq4uOyXtA0KK+yGoeq4iOyasA0KK+yGoeyDgeyXtA0KK+yGoeunjOq4uA0KK+yGoeyDgeyyoA0KK+yGoeunjOyLnQ0KK+yGoeyEneq3nA0KK+yGoeyInOuztA0KK+yGoeuMgO2ZlA0KK+yGoeqyve2biA0KK+yGoeyEne2YuA0KK+yGoeqwle2ZmA0KK+yGoeyDgeyImA0KK+yGoe2dpe2VmQ0KK+yGoeyEoOuLrA0KK+yGoeyYgeuNlQ0KK+yGoeygleyXsA0KK+yGoe2YhOuFhA0KK+yGoeyEoOyYgQ0KK+yGoeuLrOykgA0KK+yGoeu0ieu0iQ0KK+yGoeygle2YuA0KK+yGoeyEseq3vA0KK+yGoeunjOyEoA0KK+yGoeyYgeyDgQ0KK+yGoeuNleq4uA0KK+yGoeyEseuPmQ0KK+yGoeuqheuTnQ0KK+yGoeyImOyImA0KK+yGoeustOyEnQ0KK+yGoeyImOq3vA0KK+yGoeyiheuNlQ0KK+yGoeyiheuqqA0KK+yGoe2MkOuvvA0KK+yGoeyImOydvA0KK+yGoey2mOydtA0KK+yGoeuPme2ZmA0KK+yGoeunkOq4sA0KK+yGoeyImO2YhA0KK+yGoeybkOyInA0KK+yGoeymneyXtA0KK+yGoeyInOykkQ0KK+yGoeyInOyekA0KK+yGoeyaqe2VmQ0KK+yGoeuzkeyjvA0KK+yGoeyngOyhsA0KK+yGoeyVoOyekA0KK+yGoeq4sOuFgA0KK+yGoeygkO2drA0KK+yGoeyatOuztQ0KK+yGoeyXsO2DnA0KK+yGoeuMgOyerA0KK+yGoeunjOyEoA0KK+yGoeybkOqyvQ0KK+yGoeyYgeq3nA0KK+yGoeuMgOyXtA0KK+yGoeuPmeugqA0KK+yGoeq4sOyLnQ0KK+yGoeyaqeuNlQ0KK+yGoeyLoO2drA0KK+yGoeqzhO2YhA0KK+yGoeywqO2ZlA0KK+yGoeyatO2VnA0KK+yGoeqyveyYpQ0KK+yGoeq4sO2ZmA0KK+yGoeyImOyDgQ0KK+yGoeybkOuztQ0KK+yGoeuzkeyekA0KK+yGoe2drOyEoA0KK+yGoeuzte2YuA0KK+yGoeybkOyerA0KK+yGoeqxtO2VnA0KK+yGoe2Vmeq3vA0KK+yGoeyduOyLnQ0KK+yGoeyduOyDgQ0KK+yGoe2VmeyhsA0KK+yGoeyEuOyYpQ0KK+yGoeuPmeuztQ0KK+yGoeyduOyEoA0KK+yGoeq0ke2ZjQ0KK+yGoe2MkOyyoA0KK+yGoeq4sO2ctA0KK+yGoeyepe2XjA0KK+yGoeygkO2ZmA0KK+yGoeu0ieustQ0KK+yGoeyGjOuRkA0KK+yGoeyerOuLrA0KK+yGoe2ZlOyImA0KK+yGoeyDneyImA0KK+yGoeqzteyasQ0KK+yGoeyerOuPhA0KK+yGoeygleykgA0KK+yGoeyiheyDiQ0KK+yGoeq0keyaqQ0KK+yGoeyerOyEnQ0KK+yGoeyDgeyekA0KK+yGoeuzkeyasA0KK+yGoeyEseynhA0KK+yGoeyerOyLrA0KK+yGoe2DnOyekA0KK+yGoeusuOyjvA0KK+yGoeuMgOyaqQ0KK+yGoeyerOyaqQ0KK+yGoeyYgeyYpA0KK+yGoeuzkeyatA0KK+yGoeyYge2drA0KK+yGoeyerOyasQ0KK+yGoeuvuOq4sA0KK+yGoe2drOyEnQ0KK+yGoeydtOyImA0KK+yGoeyerOydgA0KK+yGoeyjvOybkA0KK+yGoeyLneyImA0KK+yGoeq4iO2biA0KK+yGoeyerOykgA0KK+yGoeyEuOq1rA0KK+yGoeyEoOyYgQ0KK+yGoe2DnOq3vA0KK+yGoeyerOynhA0KK+yGoeynhOyEnQ0KK+yGoeqyveyaqQ0KK+yGoeunkOq1rA0KK+yGoeyerOyyoA0KK+yGoeq0ke2YuA0KK+yGoeyImOq1kA0KK+yGoeu0ieycqA0KK+yGoeyerO2DnQ0KK+yGoeqwnOyInA0KK+yGoeqyveynhA0KK+yGoeyEseyyoA0KK+yGoeygleuhnA0KK+yGoeyYgeuNlQ0KK+yGoeyEneq4sA0KK+yGoe2VtO2YhA0KK+yGoeygleuvvA0KK+yGoeq3gOyyoA0KK+yGoe2aqOq1rA0KK+yGoeqyveyaqQ0KK+yGoeygleyEsQ0KK+yGoeydhOywqA0KK+yGoeyaqeybhQ0KK+yGoeyYgeyImQ0KK+yGoeygleyhsA0KK+yGoeyerOykkQ0KK+yGoeq4iOuPmQ0KK+yGoey2mO2VmQ0KK+yGoeyiheyImA0KK+yGoeyZuOyekA0KK+yGoeyKueybhQ0KK+yGoeyEseyduA0KK+yGoeykgOyEnQ0KK+yGoeyYgeygnA0KK+yGoeuCme2ZmA0KK+yGoeyCvOydvA0KK+yGoeyngeyEoA0KK+yGoeuNleuPjA0KK+yGoe2VtOyErQ0KK+yGoeqyveyXtA0KK+yGoeynhOyyoA0KK+yGoeyjvOyImA0KK+yGoe2Yleq3nA0KK+yGoe2DnO2drA0KK+yGoeywveyErQ0KK+yGoeq1rOuvvA0KK+yGoeuRkOyInA0KK+yGoeygnOyXtA0KK+yGoey2mOyEsQ0KK+yGoe2VnO2YhA0KK+yGoeuzkeyasA0KK+yGoeygleyihQ0KK+yGoey2mOydtQ0KK+yGoeyInOyXtA0KK+yGoeyEseyImA0KK+yGoeyehOuqqA0KK+yGoey2mO2drA0KK+yGoeyYpe2VhA0KK+yGoeuzkeyLoA0KK+yGoeuzkeyaqQ0KK+yGoe2DnOyImA0KK+yGoeuvuOyYpQ0KK+yGoeq0ke2YhA0KK+yGoeydgOyImA0KK+yGoe2VmeyEoA0KK+yGoeyEseyaqQ0KK+yGoeuqheq1rQ0KK+yGoeq0ke2YhA0KK+yGoe2VnOyyoA0KK+yGoeusuOyLnQ0KK+yGoeuzke2YhA0KK+yGoeygle2drA0KK+yGoe2XjOyYgQ0KK+yGoeycpOq3vA0KK+yGoeyKueyErQ0KK+yGoeygleuhnQ0KK+yGoe2YuOyEoA0KK+yGoeyImOq1kA0KK+yGoeyerO2ZmA0KK+yGoeywqOyEoA0KK+yGoe2YuOyEsQ0KK+yGoeuPmeyEsQ0KK+yGoe2YleyCvA0KK+yGoe2DnOq3vA0KK+yGoe2drOyEsQ0KK+yGoeyYge2YuA0KK+yGoeycpOq2jA0KK+yGoeyInOq3vA0KK+yLnOq0keykgA0KK+yLnOyGjOq3vA0KK+yLnOq4sOyynA0KK+yLnOyDge2YuA0KK+yLnOunjOyLnQ0KK+yLnO2Vmeq4sA0KK+yLnOywveyglQ0KK+yLnOuNle2drA0KK+yLnOunkOu2hA0KK+yLnOuPhOuqqQ0KK+yLnOuRkOyVlA0KK+yLnOuztO2VnA0KK+yLnOuqheyIoA0KK+yLnOyasO2YuA0KK+yLnOq3nOyDnQ0KK+yLnOyGjOyLnQ0KK+yLnOuqhe2ZmA0KK+yLnOqyve2YuA0KK+yLnOyKueq4uA0KK+yLnOq4sOuhnA0KK+yLnOustOykgA0KK+yLnOq3nO2YuA0KK+yLnOy2mO2DnA0KK+yLnOycpOyEsQ0KK+yLnOuvvOq4sA0KK+yLnOuzteyIoA0KK+yLnO2ZlOyImA0KK+yLnOyDge2DnA0KK+yLnOuzkeq3nA0KK+yLnO2VnO2YuA0KK+yLnOyerOywrA0KK+yLnOydvOyaqQ0KK+yLnOuzkeq4sA0KK+yLnO2VtOyEoA0KK+yLnOusuOudvQ0KK+yLnOustO2YuA0KK+yLnOuzkeuqqA0KK+yLnOyDgeyIoA0KK+yLnOyduO2XjA0KK+yLnOyInOyLnQ0KK+yLnOuzkeyDnQ0KK+yLnOyZuOyekA0KK+yLnOyImOybkA0KK+yLnOyEneynhA0KK+yLnOuzkeyImA0KK+yLnOyerOqzpA0KK+yLnOuvuOyImA0KK+yLnOq0gOyDnQ0KK+yLnOuzkeyYgQ0KK+yLnOyDgeyImQ0KK+yLnO2cmOqyvQ0KK+yLnOyblO2ZmA0KK+yLnOuzkeydtQ0KK+yLnOywve2drA0KK+yLnOywrOyasA0KK+yLnOygleq3nA0KK+yLnOuzkeyehA0KK+yLnOyduO2ZjQ0KK+yLnOq3gO2drA0KK+yLnOyYgeyErQ0KK+yLnOuzke2DnQ0KK+yLnOuNleunjA0KK+yLnOygleu2hA0KK+yLnOyerOyImA0KK+yLnOuzke2ZmA0KK+yLnOygkOuhnQ0KK+yLnOyDgeyEnA0KK+yLnOyEse2YhA0KK+yLnOu0ie2YuA0KK+yLnOyjvO2ZmA0KK+yLnOyiheyLnQ0KK+yLnOyerOq3nA0KK+yLnOyDgeykgA0KK+yLnOygleyXsA0KK+yLnOyiheyaqQ0KK+yLnOydvOq3vA0KK+yLnOyEneydtA0KK+yLnOydvOyEnQ0KK+yLnOyYgeunjA0KK+yLnOygleyngA0KK+yLnOyEoOyLnQ0KK+yLnOyKueyEoA0KK+yLnOuzkeyEnQ0KK+yLnOyInO2ZmA0KK+yLnOyGjOyLnQ0KK+yLnOyLoO2VnA0KK+yLnOyDgeyasQ0KK+yLnOqyveyEsQ0KK+yLnOyImOykgA0KK+yLnOyEseyYpQ0KK+yLnOyEneq3nA0KK+yLnOydmOyekA0KK+yLnOyIreq1rA0KK+yLnOywqOq3nA0KK+yLnOyYge2biA0KK+yLnOyDgeyImA0KK+yLnOyXsOykgA0KK+yLnOydvOq4sA0KK+yLnO2MlO2drA0KK+yLnOyerOyImA0KK+yLnOyYpeyInA0KK+yLnOydgO2RnA0KK+yLnOyiheq3nA0KK+yLnOyYgeyImA0KK+yLnOyaqeyLnQ0KK+yLnOyYgeq3vA0KK+yLnOyaqeyYgQ0KK+yLnOyihe2ZmA0KK+yLnOyasOyLnQ0KK+yLnOywveq3vA0KK+yLnOuqheunjA0KK+yLnOychOycpA0KK+yLnOydtOykgA0KK+yLnOuqhe2ZmA0KK+yLnOu0ie2YhA0KK+yLnO2VtOyyoA0KK+yLnOyerOq3nA0KK+yLnOu2hOuhnQ0KK+yLnO2VnOu2hA0KK+yLnOygleyyoA0KK+yLnOyiheq1rQ0KK+yLnOyCvOu0iQ0KK+yLnOq1reynhA0KK+yLnOu2hOyImA0KK+yLnOyiheybkA0KK+yLnOycpOq1kA0KK+yLnOydkeq3uQ0KK+yLnO2MkOyImQ0KK+yLnOynhOq2jA0KK+yLnOyaqeyehA0KK+yLnOywveuFhA0KK+yLnOuFuOyLnQ0KK+yLnOywrOykgA0KK+yLnOuTneq3oA0KK+yLnOyatOyEsQ0KK+yLnOyaqeyjvA0KK+yLnOy2mOyekA0KK+yLnOyiheu0iQ0KK+yLnOyerOuqqQ0KK+yLnO2YhO2YuA0KK+yLnOy5oOusuA0KK+yLnOynhOyyoA0KK+yLnO2DnOyaqQ0KK+yLnO2drO2VmQ0KK+yLnO2DnOyImA0KK+yLnOygleyaqQ0KK+yLnOyInOyImA0KK+yLnOyiheyYpQ0KK+yLnO2DnOyIoA0KK+yLnOyVhOyYgQ0KK+yLnOu0ieyynA0KK+yLnOykgO2drA0KK+yLnO2Dneq3nA0KK+yLnO2VmeyErQ0KK+yLnOqyveyImA0KK+yLnOydhOynhA0KK+yLnO2VtOyEoA0KK+yLnO2DnO2YuA0KK+yLnOydhOuylA0KK+yLnOyngO2YuA0KK+yLnO2YhOq4sA0KK+yLnOuqheydtA0KK+yLnOyImOyImA0KK+yLnO2Vme2drA0KK+yLnO2YuOykgA0KK+yLnOygkOq3vA0KK+yLnOuzke2VnA0KK+yLnOykgO2DnQ0KK+yLnO2YuOynhA0KK+yLnOyyoOyEnQ0KK+yLnOyGjOyjvA0KK+yLnOy2mOyaqQ0KK+yLnO2ZmOykgA0KK+yLnOuzteq4sA0KK+yLnOq2jO2DnQ0KK+yLnOyYpeyerA0KK+yLoOqwkeyEsQ0KK+yLoOyduOyyoA0KK+yLoOuzteyEnQ0KK+yLoOyXsOuztQ0KK+yLoOqwkeyInA0KK+yLoO2DneyyoA0KK+yLoO2YnOyerA0KK+yLoCDtmIQNCivsi6DqsJXsi50NCivsi6DsiJzsmYQNCivsi6Drr7jsi50NCivsi6DsmqnsobANCivsi6DqsbTsmrANCivsi6Dqsr3siJwNCivsi6DsooXsiJgNCivsi6Dsp4TtmZgNCivsi6Dqsr3rp4wNCivsi6DsooXqt5wNCivsi6DsnbzsmrQNCivsi6DshLHsmrANCivsi6Dqsr3rqqgNCivsi6Dsg4HsmrANCivsi6DsooXsg50NCivsi6DsoJXtmJUNCivsi6Dqsr3si50NCivsi6Dsg4Hqsr0NCivsi6DqsJXqtowNCivsi6DsnbzshJ0NCivsi6Dqsr3smrANCivsi6DsiJzqsr0NCivsi6DtlbTsiJgNCivsi6DsmIHsnZENCivsi6Dqsr3sm5ANCivsi6DsnoTtmZQNCivsi6Dtg5zsiJgNCivsi6Drs5HqtbANCivsi6Dqsr3sobANCivsi6Dqt5ztmZgNCivsi6DquLjsmrANCivsi6DsiJjsmKUNCivsi6Dqs4Tso7wNCivsi6DqsJXsiJwNCivsi6Dqsr3qt7wNCivsi6DsnbjsnpANCivsi6Dqs6HsoJANCivsi6Drj4TspIANCivsi6DsmrDsmrANCivsi6DsmIHqta0NCivsi6DqtJHrs7UNCivsi6DsirnsmqkNCivsi6DrqoXshJ0NCivsi6Dsmqnsg4ENCivsi6DqtJHsmqkNCivsi6DsooXtmLgNCivsi6DssKjshKANCivsi6DtlZjqt7wNCivsi6DqtJHsnbgNCivsi6Drj4TsmrANCivsi6DsmKTtmIQNCivsi6DsmIHsi50NCivsi6DqtJHsp4ANCivsi6Dtl4zshK0NCivsi6DsoJzqt5wNCivsi6DtmZTsiJgNCivsi6Dqtazsg50NCivsi6DsoJXrsLANCivsi6Dso7zsmrANCivsi6DshJ3quLANCivsi6Dqt4DrgqgNCivsi6DquLDtlZgNCivsi6DsiJzsi50NCivsi6DspIDquLANCivsi6Dqt6DsmrANCivsi6DshLHsm5ANCivsi6DsooXssYQNCivsi6Dqsr3snpANCivsi6Dqt6DsmrANCivsi6DssL3si50NCivsi6Dqsr3qt5wNCivsi6Dqtozqta0NCivsi6DquIjri6wNCivsi6DssL3shJ0NCivsi6DsmIHsirkNCivsi6DtnazsiJgNCivsi6DquI3smrANCivsi6DspJHtlZwNCivsi6DsoJXtmLgNCivsi6DtmITqt6ANCivsi6DquLDsmrANCivsi6Dso7zsnpANCivsi6Dsg4HtmLgNCivsi6DsoJXsnbQNCivsi6DquLDsm5ANCivsi6DssL3tmLgNCivsi6DtlZztlZwNCivsi6Ag6rCRDQor7Iug6riw7JuQDQor7Iug7JuQ7YOdDQor7Iug7ISx66eMDQor7Iug7IaM6recDQor7Iug6riw7LacDQor7Iug7Iic7Z2sDQor7Iug64+E6rCcDQor7Iug6rCI6riwDQor7Iug6riw7LacDQor7Iug7LaU7ISxDQor7Iug6rSR6re5DQor7Iug7Jqp6rSRDQor7Iug6ri47JqwDQor7Iug64us66qoDQor7Iug7Jew7IStDQor7Iug7IOB7ZeMDQor7Iug6ri47Jq0DQor7Iug7IaM7KGwDQor7Iug7LaY7J6sDQor7Iug7JuQ7IiYDQor7Iug64Kc7JqwDQor7Iug64yA7LacDQor7Iug67OR66+8DQor7Iug7KKF7LGEDQor7Iug64Ko6re8DQor7Iug64yA6raMDQor7Iug7Iic7J6sDQor7Iug6rK97ZWZDQor7Iug64Ko7IiZDQor7Iug7KCV64+ZDQor7Iug7KCV7IOBDQor7Iug67OR7IiZDQor7Iug64Ko7IicDQor7Iug7J207ISdDQor7Iug642V66CsDQor7Iug7JiB7YOdDQor7Iug64us7Zy0DQor7Iug7LCo6rSADQor7Iug64+E7JiBDQor7Iug7Iic7JuFDQor7Iug642V7JqwDQor7Iug6rSR65OdDQor7Iug7J6l6ri4DQor7Iug7YOc7KO8DQor7Iug64+E7JqpDQor7Iug7ZWc7KSADQor7Iug7J2A6recDQor7Iug7Jqp7KGwDQor7Iug64+I7JqwDQor7Iug66qF7YOdDQor7Iug7KCV6riwDQor7Iug7ZW07IStDQor7Iug64+I7Zy0DQor7Iug7Iic7JuQDQor7Iug64+E7IiZDQor7Iug7IiY7JilDQor7Iug64+Z6rSADQor7Iug67aE7ZmYDQor7Iug7YOc6recDQor7Iug67OR7JiBDQor7Iug64+Z6rWsDQor7Iug66qF7IS4DQor7Iug7LaY7Zi4DQor7Iug7YOc67KUDQor7Iug64+Z6rWtDQor7Iug7IOB66GcDQor7Iug7IiY64W4DQor7Iug7Z2l7IS4DQor7Iug64+Z7KeEDQor7Iug7ISx7LKgDQor7Iug7KCV6raMDQor7Iug7KCV7Iq5DQor7Iug64+Z7KeEDQor7Iug7J2A7Z2sDQor7Iug7YOc7JuQDQor7Iug7KeE64KoDQor7Iug64+Z7ZiEDQor7Iug7J6s7IudDQor7Iug7IiY7Je0DQor7Iug7YOc7ZmYDQor7Iug64+Z7ZiEDQor7Iug66qF7ZiEDQor7Iug7IOB7JqwDQor7Iug7ISd7KKFDQor7Iug64+Z7Zi4DQor7Iug7IOB7IiYDQor7Iug7ZW07LacDQor7Iug7Jqp7ZyYDQor7Iug64+Z7Zi4DQor7Iug7IiY6rWtDQor7Iug64yA6recDQor7Iug7LKc65+JDQor7Iug64+Z7ZmUDQor7Iug7J2Y7IiYDQor7Iug7Zqo67CwDQor7Iug7J6s7Zi4DQor7Iug64+Z7ZuIDQor7Iug6riw66eMDQor7Iug64Ko66qoDQor7Iug7J6s7IiYDQor7Iug64+Z7ZuIDQor7Iug7LKg66eMDQor7Iug64KZ64+ZDQor7Iug7IOB7KO8DQor7Iug66eM7IudDQor7Iug7JiB7ISxDQor7Iug66eM7Zi4DQor7Iug7KCV66WcDQor7Iug66eQ7ISgDQor7Iug7KKF7LKgDQor7Iug7Jil7JuQDQor7Iug7LKc7JiBDQor7Iug66qF7IiZDQor7Iug7ISd642VDQor7Iug64W47Zi4DQor7Iug7KeA7ZmUDQor7Iug66qF7JqwDQor7Iug7IiY7LCsDQor7Iug7KeE7J20DQor7Iug7ISx6re8DQor7Iug66qF7J2ADQor7Iug7J247Jq0DQor7Iug7IOB6rWsDQor7Iug6riw7JewDQor7Iug66qF7J6QDQor7Iug67OR7IudDQor7Iug642V7KO8DQor7Iug7JiB7J21DQor7Iug66q97JqwDQor7Iug7Jyk7ZmYDQor7Iug7KKF7ZiEDQor7Iug7J287IigDQor7Iug66yY7IicDQor7IugIOqzpA0KK+yLoOyYgeykgA0KK+yLoOy2mO2ZlA0KK+yLoOustOyyoA0KK+yLoOydgO2YuA0KK+yLoO2DnOyyoA0KK+yLoOyYgeq3nA0KK+yLoOustO2ZjQ0KK+yLoOyaqeqxtA0KK+yLoOuzkeq3vA0KK+yLoOu2gOyYgQ0KK+yLoOusuO2YuA0KK+yLoOy2mOyjvA0KK+yLoOuzkeyLnQ0KK+yLoOyEseuNlQ0KK+yLoOuvuOyImQ0KK+yLoOydmOyImA0KK+yLoO2VhOyasA0KK+yLoOq4sOyerA0KK+yLoOuylOq3oA0KK+yLoOyatOyglQ0KK+yLoOuzke2YlQ0KK+yLoOqyveyYgQ0KK+yLoOuylO2YhA0KK+yLoOy2mOyYpQ0KK+yLoO2SjeyImA0KK+yLoOyerOyEnQ0KK+yLoOuzkeyXtA0KK+yLoOyEuOyglQ0KK+yLoOuPmeyEnQ0KK+yLoOywqOq3vA0KK+yLoOuzkeyasA0KK+yLoO2MkOu0iQ0KK+yLoCDtlZgNCivsi6DsiJjsiJgNCivsi6Drs5Hso7wNCivsi6Dsg4HslYUNCivsi6DsmIHrk50NCivsi6DsnbjshK0NCivsi6Drs5HtnLQNCivsi6DshLHtmZgNCivsi6DrrLTshJ0NCivsi6DsoJXsi50NCivsi6DrtIntnLQNCivsi6DsnbTqt7wNCivsi6Dsm5DrqqgNCivsi6DtmLjsi50NCivsi6DrtIntnLQNCivsi6DshozquLANCivsi6Drj5nrrLgNCivsi6DquLDsiJgNCivsi6DsgrzsmKUNCivsi6Drp5DtnawNCivsi6Dqs6HsnbwNCivsi6DtlZzsspwNCivsi6Dsg4HsiJgNCivsi6DtmZTqt7wNCivsi6DtjJDsooUNCivsi6DrqoXrspQNCivsi6Dsg4HsiJgNCivsi6DtlZzsmrANCivsi6Dqt5zqtawNCivsi6Dsnqztg5wNCivsi6Dsg4HsnqwNCivsi6Dsg4HqsbQNCivsi6DrjIDsi50NCivsi6DshJ3qta0NCivsi6Dsg4HtnLQNCivsi6Dqt7zsiJkNCivsi6DrsLHtg5wNCivsi6DtlbTquLANCivsi6Dsg4HtnLQNCivsi6DrjZXsmqkNCivsi6Drp4zrj4QNCivsi6Dqs4TsiJgNCivsi6DshJ3rs7UNCivsi6DsnITsiJgNCivsi6Dsg4HslpENCivsi6DspJHquLANCivsi6DshJ3sobANCivsi6DsmIHshLENCivsi6DsoJDsiJgNCivsi6Dqsr3sobANCivsi6DshJ3ssqANCivsi6DrqoXsspwNCivsi6Dqt7zqt5wNCivsi6DsmIHtg5wNCivsi6DshKDrqoUNCivsi6DqtJHsiJkNCivsi6Dsg4Hso7wNCivsi6Dsp4TsiJgNCivsi6DshKDsiJwNCivsi6DtmITtlZwNCivsi6DshLHsmKQNCivsi6DsgrzsnKgNCivsi6DshLHqt7wNCivsi6DqtJHsnoQNCivsi6Dqt5ztmLgNCivsi6DsiJzsiJgNCivsi6DshLHsmrANCivsi6DtlZzsoJUNCivsi6DsmrDtlZwNCivsi6DsiJzsnbQNCivsi6DshLHtmLgNCivsi6DquLDtmZQNCivsi6DshLHsiJgNCivsi6Dqt5zsi50NCivsi6DshLHtnLQNCivsi6DsoJXssqANCivsi6DrqoXsnpANCivsi6DstpjtmLgNCivsi6DshLHtnLQNCivsi6DsnZHrnpgNCivsi6DsooXtlZwNCivsi6DsmIHtmZgNCivsi6DshozrtoQNCivsi6DsoJXso7wNCivsi6DrrLjrk50NCivsi6DshLHrj4QNCivsi6DshozshKANCivsi6Dtg5ztmZgNCivsi6DtmY3siJgNCivsi6Dtla3smIENCivsi6DsiJjsnpANCivsi6DshJ3rgqgNCivsi6DsiJzquLANCivsi6DqtazssqANCivsi6DsiJzrk50NCivsi6Drs7TsnbQNCivsi6Drp7nqta0NCivsi6DrqoXtmZQNCivsi6DsiJzrtoQNCivsi6Drs7XtmZQNCivsi6DsooXtmZgNCivsi6DrrLjstpgNCivsi6DsiJzsiJgNCivsi6DsoJXtmZgNCivsi6DshLHshLgNCivsi6DsmIHqt5wNCivsi6DsiJzsmKUNCivsi6Dsg4HsnqwNCivsi6DsoJXqt5wNCivsi6DsoJXtmZgNCivsi6DsiJzsobANCivsi6DrqbTtmIQNCivsi6Dtg5zshLENCivsi6Dsi5zspIANCivsi6DsiJztnawNCivsi6Dsnbzsp5ENCivsi6DsnpDtlYQNCivsi6Dsg4HsiJkNCivsi6DsirnrspQNCivsi6Drs7TshKANCivsi6DqtJHquIgNCivsi6Dsnqztg5wNCivsi6DsirnsmrANCivsi6Drj4TqtowNCivsi6DsiJzrr7wNCivsi6Dsm5DsmKUNCivsi6DslaDtnawNCivsi6Dqsr3tmY0NCivsi6Dqt5zsi50NCivsi6DsooXqt7wNCivsi6DslpHsmKUNCivsi6DsmqnrrLgNCivsi6Dqt5ztmLgNCivsi6Dqtozsl7QNCivsi6DslpHsmrANCivsi6DsoJXqtowNCivsi6DssqDrsKkNCivsi6Dqs4Tsm5ANCivsi6DslrjtmLgNCivsi6Dri6zsobANCivsi6DsoJXshKANCivsi6Dqs4Tsi50NCivsi6Dsl7DsnbQNCivsi6DtmLjtmLgNCivsi6DsmIHsmYQNCivsi6Dsm5DsnpANCivsi6Dsl7TtnLQNCivsi6DrjIDrsLENCivsi6Dtl4ztmLgNCivsi6DsnYDso7wNCivsi6Dsl7TtnLQNCivsi6DsmIHqt7kNCivsi6DsoJXsoJUNCivsi6DqtJHsi60NCivsi6DsmIHqsbQNCivsi6DqsJHqsJUNCivsi6Dqt5zsnKQNCivsi6DshLHqta0NCivsi6DsmIHsi50NCivsi6DquLDrtIkNCivsi6DsmIHsmrANCivsi6Dsirnsl7ANCivsi6DsmIHsi50NCivsi6DsiJjtlZgNCivsi6Dso7zrj4QNCivsi6Drp5DtmJUNCivsi6DsmIHsnbwNCivsi6Dqsr3tmZQNCivsi6Drp5DsiJwNCivsi6DqsbTsp4ENCivsi6DsmIHsobANCivsi6DqsJHsiKANCivsi6DsnbzqsrANCivsi6DsnqXqs6QNCivsi6DsmIHspIANCivsi6DtlbTsnqwNCivsi6DrjIDssqANCivsi6DtmJzsi50NCivsi6DsmIHtnLQNCivsi6DtjJDsg4ENCivsi6Dshozrs7UNCivsi6DtjJDsnpANCivsi6DsmKXsnpANCivsi6Dqt7zsnpANCivsi6Dsg4HtmLgNCivsi6Drs5HsiJkNCivsi6DsmKXsnpANCivsi6DsmqntmIQNCivsi6DrjIDstpwNCivsi6DsmrDsi50NCivsi6DsmYTrqqgNCivsi6DssL3tmLgNCivsi6DsmIHtmZQNCivsi6DrqoXriqANCivsi6DsmYTsmrANCivsi6Dqt5zrj5kNCivsi6DshLHqsr0NCivsi6DssL3tmLgNCivsi6DsmbjsiJkNCivsi6Dqsr3rspQNCivsi6Dsm5DstpwNCivsi6DssL3sspwNCivsi6DsmqnqtawNCivsi6Dsp4Tsi50NCivsi6DshLHsobANCivsi6Dsi6Dsl7QNCivsi6Dsmqnqt7wNCivsi6Dso7zsl7ANCivsi6DquLjshKANCivsi6Dqsr3tmLgNCivsi6DsmqnshJ0NCivsi6DsooXrtIkNCivsi6DsooXso7wNCivsi6Drj5nsiJgNCivsi6DsmqnsiJgNCivsi6DrhbjstpgNCivsi6Drs5HtmZgNCivsi6DsoJXrjIANCivsi6DsmqnspIANCivsi6DsmKXsiJgNCivsi6DssL3tmLgNCivsi6Dstpjsi50NCivsi6DsmqntmLgNCivsi6DquIjtg50NCivsi6Dso7zsl7ANCivsi6Drs7TqsbQNCivsi6DsmrDssqANCivsi6DsiJjtmIQNCivsi6Dqsr3shKANCivsi6Drj5nssqANCivsi6Dsm4XsmqkNCivsi6DsnqzshLgNCivsi6DrhbjsmrANCivsi6Dtg5zsmqkNCivsi6Dsm5DsiJwNCivsi6DquIjsnbwNCivsi6DtmJzqt7wNCivsi6DsmKTshJ0NCivsi6Dsm5DsmrANCivsi6Drp4zsl7QNCivsi6DsnqzsobANCivsi6DsmIHsobANCivsi6Dsm5TqtawNCivsi6DtnaXrqoUNCivsi6DshJ3ri7QNCivsi6DshKDrnb0NCivsi6DsnKDslbwNCivsi6DtmZTshK0NCivsi6DtmZjtg5wNCivsi6Dqt4DqtawNCivsi6DsnKHrnoANCivsi6Dsl7Drj5kNCivsi6DsmIHsmIENCivsi6Drj5nstpgNCivsi6DsnKTsg50NCivsi6DtmZjrj4QNCivsi6DquLDsmYQNCivsi6DquLDstpwNCivsi6DsnKTsiJkNCivsi6Dstpjsl7QNCivsi6Dtnazrp4wNCivsi6Dtg5ztg50NCivsi6DsnKTsi50NCivsi6Dsm5DtmLgNCivsi6DsirnrprwNCivsi6DquIjrp4wNCivsi6DsnKTsi50NCivsi6DtmozrnbwNCivsi6Dqsr3smqkNCivsi6Dqsr3tmLgNCivsi6DsnKTsi50NCivsi6Dsg4HtnawNCivsi6Dsg4Hsg4ENCivsi6DrkZDtnawNCivsi6DsnKTsi50NCivsi6DshJ3si50NCivsi6DrrLTtm4gNCivsi6DsiJjqtIANCivsi6DsnKTsmrANCivsi6Drs5Htg5wNCivsi6Dsg4Hsl7QNCivsi6DsiJzsl7ANCivsi6DsnKTsobANCivsi6DspIDtg50NCivsi6DrqoXrgqgNCivsi6Dtg5zrs7UNCivsi6DsnYTsiJgNCivsi6DquLDshLENCivsi6DssKzrnoANCivsi6DsiJnrqoUNCivsi6DsnYTsi50NCivsi6DshLHshqENCivsi6Drj5ntmZgNCivsi6DquLDquLANCivsi6DsnYTssqANCivsi6DsmKXtmLgNCivsi6DslYjsmIENCivsi6DsiJjsl7ANCivsi6DsnZHtg5wNCivsi6DsmqnstpwNCivsi6DrtoTsooUNCivsi6Dsi6DrgqgNCivsi6DsnbjquLANCivsi6DsgrzsirkNCivsi6DrjIDqt7wNCivsi6Dtg5zsm5ANCivsi6DsnbjsiJkNCivsi6DtmITrjIANCivsi6Dsp4Tsi50NCivsi6DshozrqqgNCivsi6Dsnbjsi50NCivsi6DshKDssqANCivsi6Dsg4HshJ0NCivsi6DtlZnrj4wNCivsi6DsnbjsmrANCivsi6DshLHtmZgNCivsi6DtjJDsi50NCivsi6DsiJjrj4QNCivsi6DsnbzshK0NCivsi6DtmozshJ0NCivsi6Dtg5zsmqkNCivsi6DsmqnsnKQNCivsi6DsnoTsnbQNCivsi6DsooXsiJgNCivsi6Dtl4zsspwNCivsi6Dsp4Tqt6ANCivsi6DsnoTtnLQNCivsi6DsoJXsp4QNCivsi6DtlZjrnb0NCivsi6Dqt7ztnawNCivsi6DsnqXqsr0NCivsi6DsmIHsobANCivsi6DrqoXsmIENCivsi6DsnqztnawNCivsi6DsnqzrrLgNCivsi6DtmqjsmIENCivsi6DshKDrs7UNCivsi6DtmY3quLANCivsi6DsnqzsiJgNCivsi6DsooXssqANCivsi6DshLHro6ENCivsi6Dri6zsm5ANCivsi6DsnqzsmrANCivsi6Dqt5zsmrENCivsi6Dqs7XrhYQNCivsi6Drs5Hsi50NCivsi6DsnqzsmrQNCivsi6DsnbztmLgNCivsi6Dsnqztg5wNCivsi6DrjZXshKQNCivsi6DsnqzsmrQNCivsi6Drj5nsl7ANCivsi6Dstpjsi50NCivsi6DrhbjtmY0NCivsi6DsnqzsnZgNCivsi6DsiJjsl7ANCivsi6Drp7ntmZgNCivsi6DsnYDsmqkNCivsi6DsnqztlZkNCivsi6Drqr3snbQNCivsi6DqtJHtmLgNCivsi6DsooXrtoQNCivsi6DsnqztmLgNCivsi6DspJHsmrQNCivsi6Dstpjsi50NCivsi6Dtnazsl7ANCivsi6DsoJDrk50NCivsi6Dsg4HsmKUNCivsi6DssqDqt7wNCivsi6Dsnbjqt5wNCivsi6DsoJDsmqkNCivsi6DrtInsmrANCivsi6DqsJHsm4UNCivsi6DssqDsiJwNCivsi6DsoJXqt5wNCivsi6DtlonssqANCivsi6Dqsr3siJkNCivsi6DsoJXtlZkNCivsi6DsoJXsiJwNCivsi6Dsg4Hsm4UNCivsi6DrtIntmJUNCivsi6Dqsr3sm4UNCivsi6DsoJXsiJwNCivsi6DtlZzsm5ANCivsi6DsmrTrj4wNCivsi6Dsm5DslaANCivsi6DsoJXsi50NCivsi6DshLHsnqwNCivsi6DsmqntmLgNCivsi6DsoJXsi50NCivsi6DsoJXssqANCivsi6DrspTqs6QNCivsi6DsmIHsp4ENCivsi6DsnYDrhYQNCivsi6DsoJXtnLQNCivsi6DrkZDsmKUNCivsi6Ag7Zi4DQor7Iug7KCV66+8DQor7Iug7KCV7Zy0DQor7Iug7ZWc7JqwDQor7Iug7Zi47Z2sDQor7Iug7IiZ7KKFDQor7Iug7KCc7Zi4DQor7Iug6riw7IudDQor7Iug64+Z66qpDQor7Iug7KCQ7ZmYDQor7Iug7KKF6rWsDQor7Iug7JiB65OdDQor7Iug7YOc7ZeMDQor7Iug7Zqo6riwDQor7Iug7KKF64+EDQor7Iug67OR64+EDQor7Iug7LC97LKgDQor7Iug7ISx7LCoDQor7Iug7KKF7IudDQor7Iug7YOc7YOdDQor7Iug7KCV7JuUDQor7Iug7J6s6reADQor7Iug7KKF7J24DQor7Iug7Z2s7IiYDQor7Iug7IiY7KeBDQor7Iug7ZW07J6sDQor7Iug7KKF7Zy0DQor7Iug7Z2s7ZmYDQor7Iug7KKF7IigDQor7Iug7KCV7IudDQor7Iug7KKF7Zy0DQor7Iug67OR64+EDQor7Iug7IiY7ZmYDQor7Iug7KKF6raMDQor7Iug7KeE6riIDQor7Iug7ISx7JqpDQor7Iug64yA7ZiEDQor7Iug67OR7KKFDQor7Iug7KeE7IStDQor7Iug66y064+EDQor7Iug7ZiV7ISdDQor7Iug7J2A7JqwDQor7Iug7KeE7Zi4DQor7Iug7YOc7JewDQor7Iug7Lac7LaYDQor7Iug7J287JqpDQor7Iug7LCo67aEDQor7Iug66y07JilDQor7Iug7JiB7Zi4DQor7Iug67OR6recDQor7Iug7LCo7IicDQor7Iug66eM67aADQor7Iug67O17ZWcDQor7Iug6riw7ZmUDQor7Iug7LCs7IudDQor7Iug7Iic7ZGcDQor7Iug7Z2l6ri4DQor7Iug66qF7IicDQor7Iug7LC97Zi4DQor7Iug7IiY7IudDQor7Iug7ZW06ri4DQor7Iug6riw6recDQor7Iug7LC97ZuIDQor7Iug7JiB67ORDQor7Iug7IiY7LKgDQor7Iug7IiY642VDQor7Iug7LKg7JqwDQor7IugIO2YhA0KK+yLoOyiheyxhA0KK+yLoOuzkeyLnQ0KK+yLoOyyoOydtA0KK+yLoOunjOqyvQ0KK+yLoOybkO2YuA0KK+yLoOuzkeyImA0KK+yLoOyyreq3oA0KK+yLoOygleq3vA0KK+yLoOqzhOy5oA0KK+yLoOuNleuwnA0KK+yLoOy2mOq4sA0KK+yLoOqyveuCqA0KK+yLoOunjOq3nA0KK+yLoOyInOyEoA0KK+yLoOy2mO2YuA0KK+yLoOq0gOuPjA0KK+yLoOqzoOykgA0KK+yLoOuCqOuhnQ0KK+yLoOy2qeyLnQ0KK+yLoOynhO2YuA0KK+yLoOyEse2ZmA0KK+yLoO2ZmOyImA0KK+yLoOy+jOyLnQ0KK+yLoOyGjOyInA0KK+yLoOykkeuPhA0KK+yLoO2DnOyhsA0KK+yLoO2DnOyWkQ0KK+yLoOq1rOq4uA0KK+yLoOyCrOq3vA0KK+yLoOykkeqzpA0KK+yLoO2DnOyasA0KK+yLoOu2hOyDgQ0KK+yLoOuzte2drA0KK+yLoOyYgeyInA0KK+yLoO2DnOyatA0KK+yLoOustOyLnQ0KK+yLoOyEneuPhA0KK+yLoO2YgeqzoA0KK+yLoO2DnOynhA0KK+yLoOyDgeyEoA0KK+yLoOyerOuztA0KK+yLoOygkOuNlQ0KK+yLoO2DnO2ctA0KK+yLoOuPme2YuA0KK+yLoOuzteyImQ0KK+yLoOyLoOynhA0KK+yLoO2MkOyIoA0KK+yLoOuMgOyYpA0KK+yLoOq4sOumvQ0KK+yLoOygleycpA0KK+yLoO2VhO2YuA0KK+yLoOyerO2VnA0KK+yLoOygle2YuA0KK+yLoO2DnOq3nA0KK+yLoO2VmOq3nA0KK+yLoOykgOunjA0KK+yLoO2DnOuTnQ0KK+yLoOyniOyjvA0KK+yLoO2Vmeu0iQ0KK+yLoOygleyImA0KK+yLoOyhsOykgA0KK+yLoOq3nOyYgQ0KK+yLoO2VmeyLnQ0KK+yLoOuzke2DnA0KK+yLoOynhOyEnQ0KK+yLoOuMgOynhA0KK+yLoO2VnOyasA0KK+yLoOyYgeyEsQ0KK+yLoOyImOyInA0KK+yLoO2YleuwsA0KK+yLoO2VreyLnQ0KK+yLoOyYgeyhsA0KK+yLoOyYgeyLnQ0KK+yLoOyyoOq3nA0KK+yLoO2VtOu0iQ0KK+yLoOyngO2ZjQ0KK+yLoOyerOq3vA0KK+yLoOyEseynhA0KK+yLoO2VtOyLnQ0KK+yLoOuqheyImA0KK+yLoOqxtOyLnQ0KK+yLoOyiheyynA0KK+yLoO2VtOyLnQ0KK+yLoOyEneyLnQ0KK+yLoOywveyEsQ0KK+yLoOynhOustA0KK+yLoO2YhOq1rA0KK+yLoOyInO2drA0KK+yLoOyiheusuA0KK+yLoOq1rO2VmA0KK+yLoO2YhOq1rA0KK+yLoOyYgeuCqA0KK+yLoOygnO2YhA0KK+yLoO2YleuLrA0KK+yLoO2YhOq3vA0KK+yLoOyaqe2YlQ0KK+yLoOy2mOunjA0KK+yLoOq3vOyYpA0KK+yLoO2YhOuNlQ0KK+yLoOyepeqyvQ0KK+yLoOywqOyynA0KK+yLoOuRkO2DnA0KK+yLoO2YhOunjA0KK+yLoOyDge2DnQ0KK+yLoOydtOyIoA0KK+yLoOyEpOy2nA0KK+yLoO2YhOyEuA0KK+yLoOyYgeyaqQ0KK+yLoO2DnOqzpA0KK+yLoOunjOyYpQ0KK+yLoO2YhOyVhA0KK+yLoOuztO2YuA0KK+yLoOyerOyhsA0KK+yLoO2YuOu0iQ0KK+yLoO2YhOyasA0KK+yLoOyEoO2MkA0KK+yLoOyEne2YuA0KK+yLoOq0ke2ZlA0KK+yLoO2YhOyepQ0KK+yLoCDsiJgNCivsi6DsmrTqs6QNCivsi6Dqt5ztmLgNCivsi6DtmITssL0NCivsi6DsiJjssqANCivsi6DtnJjsnqwNCivsi6DsgqzsspwNCivsi6DtmITtnLQNCivsi6Dsgrzsl7ANCivsi6Dsm5TtmqgNCivsi6DstpjsiJgNCivsi6DtmJXtnLQNCivsi6DsoJDtlZkNCivsi6DshLHsmqkNCivsi6DspIDqtowNCivsi6DtmJzsiJwNCivsi6DsnbTsnbQNCivsi6Dtg5zshJ0NCivsi6DquLDrp4wNCivsi6DtmJztmIQNCivsi6DshJ3si50NCivsi6DsmIHqt6ANCivsi6DsmIHsiJgNCivsi6DtmLjsmrANCivsi6Dtg5zsiJgNCivsi6Dsg4HrnoANCivsi6DrrLjquLANCivsi6DtmY3siJwNCivsi6Dqt5zsmKQNCivsi6Dsm5DsmrANCivsi6DsmrHtlZkNCivsi6DtmY3si50NCivsi6DrtInsnbQNCivsi6DsoJzquLANCivsi6DshLHsmIENCivsi6DtmY3si50NCivsi6DquLDsi6QNCivsi6DshLHtmZgNCivsi6DssL3so7wNCivsi6DtmY3ssqANCivsi6Drs7TssL0NCivsi6DsmIHshJ0NCivsi6Dsg4HtmY0NCivsi6DtnaXsi50NCivsi6DsmIHro6ENCivsi6Dsg4HrjZUNCivsi6DqtJHtmLgNCivsi6DtnaXsl7QNCivsi6DsoJXsm4UNCivsi6Dtl4zsiJwNCivsi6Dsi6Dsl7ANCivsi6DtnazshLENCivsi6DqtazshJ0NCivsi6Dqsr3ri6wNCivsi6DsnqzrqoUNCivsi6zqsr3rkZANCivsi6ztmqjqta0NCivsi6zsmIHtmLgNCivsi6zrj5ntmLgNCivsi6zqsr3slaANCivsi6zquLDtlZkNCivsi6zsnqzquLANCivsi6zsmqnqt5wNCivsi6zqtJHsiJgNCivsi6zrj5nsg4ENCivsi6zrrLTtm4QNCivsi6zrs5Hrj5kNCivsi6zqt5zsl7ANCivsi6zsnoTqt7wNCivsi6zrqoXtmZgNCivsi6zrp5DrjIANCivsi6zqt7zrs7QNCivsi6zquLDsi50NCivsi6zrs5Hrp4wNCivsi6zssKjsnpANCivsi6zquLDtg50NCivsi6zsoJXqt6ANCivsi6zssKjsg4ENCivsi6zsm5DtnawNCivsi6zrj5nshJ0NCivsi6zqsr3rnpgNCivsi6ztmZTsiJgNCivsi6zsnqztnawNCivsi6zrj5nsmrENCivsi6zsmYTquLgNCivsi6zrp5DsnbQNCivsi6zsnbjsi50NCivsi6zrqoXrs7QNCivsi6zsg4HsiJgNCivsi6zrr7zsp4QNCivsi6zsnoTsoJUNCivsi6zrrLTsnpANCivsi6zqsJXqtJENCivsi6ztmITshKANCivsi6zrrLjsnqwNCivsi6zrr7zsiJwNCivsi6zqtJHtlZkNCivsi6zsjI3smKUNCivsi6zsmqntj6wNCivsi6zrs7XrnpgNCivsi6zsnbjsobANCivsi6zsnqzstpgNCivsi6zrs5HsmqkNCivsi6zrtoDshowNCivsi6zsmIHsiJgNCivsi6ztjJDsiJwNCivsi6zqt5zsmKUNCivsi6zrtoDsnpANCivsi6zsooXsiJwNCivsi6zsmbjsmIENCivsi6zsmIHsm5ANCivsi6zsg4HshK0NCivsi6ztmqjqt7wNCivsi6zshKDshJwNCivsi6zslrjtmZgNCivsi6zsg4Hsl7QNCivsi6zsoJXsi50NCivsi6zqsJHsiJgNCivsi6zsnKTsp4QNCivsi6zsg4Hsl7QNCivsi6zsm5DsmKQNCivsi6zshKDqt5wNCivsi6zsooXqtowNCivsi6zsg4HtnawNCivsi6zquIjsooUNCivsi6zsm5DtmIQNCivsi6zqtJHrtoANCivsi6zshJ3rs7QNCivsi6zshLHsnqUNCivsi6zsmqnsobANCivsi6wg7Z2sDQor7Ius7ISk7ZmUDQor7Ius64+Z7IStDQor7Ius7Lmg7ISgDQor7Ius7Iic7Zi4DQor7Ius7IiY67O0DQor7Ius7KeE7KO8DQor7Ius66qF7KO8DQor7Ius7J247IicDQor7Ius7JiB67O0DQor7Ius656Y7KeEDQor7Ius67OR64+EDQor7Ius7YyQ7IiYDQor7Ius7JiB67SJDQor7Ius7KeE7YOcDQor7Ius66y067SJDQor7Ius7ZaJ7J20DQor7Ius7JiB7IiZDQor7Ius6raM7IOBDQor7Ius7KCc7ZWYDQor7Ius67OR6recDQor7Ius7J6s64usDQor7Ius67SJ7Zi4DQor7Ius7KCV66qpDQor7Ius66qF6riwDQor7Ius7J6s67SJDQor7Ius7IOB7JikDQor7Ius7LaY6riwDQor7Ius7IOB7JykDQor7Ius7J6s7JqpDQor7Ius7Z2s7Zi4DQor7Ius66qF7JyoDQor7Ius7J6s7ZWcDQor7Ius7J6s7JuQDQor7Ius7KKF7JiBDQor7Ius7KKF64+ZDQor7Ius6rSR7Z2sDQor7Ius7J6s7J21DQor7Ius67O17J6sDQor7Ius7Lmg6re8DQor7Ius67OR64+ZDQor7Ius7J6s7ZiEDQor7Ius67aE7Jq0DQor7IusIO2VtA0KK+yLrOyerOybkA0KK+yLrOygkOyyoA0KK+yLrO2DnOyaqQ0KK+yLrOq3vOyImQ0KK+yLrOydtOyjvA0KK+yLrOygleyErQ0KK+yLrO2aqO2ZlA0KK+yLrOygleqyvQ0KK+yLrOyblOyVlA0KK+yLrOyjvOyErQ0KK+yLrOq0ke2YhA0KK+yLrOu2hOyXtA0KK+yLrOycpOyjvA0KK+yLrOykkeyErQ0KK+yLrOq3gOuCnA0KK+yLrOygnOyGjA0KK+yLrOyEse2YhA0KK+yLrOywqOyhsA0KK+yLrO2DnOq4uA0KK+yLrOyEneyInA0KK+yLrOy2mOu0iQ0KK+yLrOywveyErQ0KK+yLrOyYgeykgA0KK+yLrOyLoOyekA0KK+yLrOyInOydtA0KK+yLrOy2mOyErQ0KK+yLrOyihe2DnQ0KK+yLrO2biOq3nA0KK+yLrOuPiOyEnQ0KK+yLrOy2mOyErQ0KK+yLrOuPmeyerA0KK+yLrOyYgeyZhA0KK+yLrOyatOuCqA0KK+yLrO2DnOykgA0KK+yLrO2YgeyImA0KK+yLrOygleq1rQ0KK+yLrOuylOyaqQ0KK+yLrO2VtOynhA0KK+yLrOuNleydvA0KK+yLrOq0gOyImA0KK+yLrOywveydtA0KK+yLrO2YhOyjvA0KK+yLrOuPmeykkQ0KK+yLrOydgO2doA0KK+yLrOu0ieykgA0KK+yViCDsiJwNCivslYjsmqntmZgNCivslYjsnbjrnoANCivslYjsooXsiJwNCivslYjqsJHtmIQNCivslYjrk53tmZQNCivslYjsmIHsiJkNCivslYjqt4DsiJwNCivslYjqsr3siJkNCivslYjsmrTshJ0NCivslYjsiJjtg50NCivslYjsiJzrtoANCivslYjqsr3siJkNCivslYjtlonrj5kNCivslYjrs5HsiJgNCivslYjsmIHrgqgNCivslYjqsr3smKUNCivslYjsiJzsobANCivslYjsg4Htg5wNCivslYjsmIHtmIQNCivslYjqsr3sobANCivslYjtmLjqtZANCivslYjrs5Hqsr0NCivslYjsmIHsobANCivslYjqsr3tmLgNCivslYjsm5Dso7wNCivslYjsoJXtnawNCivslYjqt4Dtg5wNCivslYjqs4TsiJwNCivslYjsm5DtlZkNCivslYjsnqztmZQNCivslYjsmqntmLgNCivslYjqtJHshJ0NCivslYjsg4Hrj4QNCivslYjslpHrr7wNCivslYjtg5zsiJgNCivslYjqt4DtlZkNCivslYjsmqnrtIkNCivslYjsnoTqsr0NCivslYjqsr3rjIANCivslYjqt5ztmLgNCivslYjqtJHtm4gNCivslYjquLDsiJgNCivslYjsmqnsiJgNCivslYjrj4Tsg4ENCivslYjspJHshJ0NCivslYjsnqztnawNCivslYjrjIDsi50NCivslYjrj5nrrLgNCivslYjsmIHtg5wNCivslYjrspTsiJwNCivslYjrqoXsi50NCivslYjrkZDsnbQNCivslYjsmIHsmqkNCivslYjtmantmLgNCivslYjsmIHqt5wNCivslYjrp5DshKANCivslYjsooXsl7QNCivslYjrj5nsiJgNCivslYjshLHrnoANCivslYjrqoXspIANCivslYjsnqzsiJgNCivslYjshKDrp4wNCivslYjsnbzsiJwNCivslYjrr7jslaANCivslYjtlZnsm5ANCivslYjsg4HtjJQNCivslYjrj5nso7wNCivslYjrr7jtmIQNCivslYjstpjsmrANCivslYjsmIHtmZQNCivslYjtg5zshJ0NCivslYjrr7zqtowNCivslYjsmqnrr7gNCivslYjsiJzsnoQNCivslYjsm5TsmqkNCivslYjrtInsmKUNCivslYjsnqzqtowNCivslYjsoJDqs6QNCivslYjrgqjsiJwNCivslYjrtInsobANCivslYjsooXsm5ANCivslYjtg5zsg50NCivslYjsmqnqs4QNCivslYjrtIntlZgNCivslYjtg5zsuaANCivslYjqsJHso7wNCivslYjsooXsmIENCivslYjrtoTriqANCivslYjstpjsnbwNCivslYjtmITsiJwNCivslYjrqoXsp4ANCivslYjsg4Hqta0NCivslYjsp4DroKgNCivslYjsoJXsiJgNCivslYjsnYDqsJENCivslYjsg4HsmKUNCivslYjsmqnqta0NCivslYjsoJzrsLANCivslYjsg4Hsl7QNCivslYjsg4HsmqkNCivslYjqt7zsmKQNCivslYjsnqzqt5wNCivslYjqt7zqt7wNCivslYjsg4Htg5wNCivslYjsnbzsp4QNCivslYjtlbTtm4gNCivslYjsiJzri7QNCivslYjshKTslYQNCivslYjsoJXsmqkNCivslYjsiJztmIQNCivslYjquLDtlZgNCivslYjshLHshK0NCivslYjtmLjqt5wNCivslYjqta3rr7gNCivslYjspIDqs6QNCivslYjshLHsnYANCivslYjtg5ztnawNCivslYjqsr3smqkNCivslYjrp5Dtg50NCivslYjshLHsnbwNCivslYjshJ3sp4ANCivslYjsl7Dqt5wNCivslYjstqnroKwNCivslYjshLHssqANCivslYjqtoHshJ0NCivslYjsnKDtmIQNCivslYjsjI3si50NCivslYjshLHtmLgNCivslYjshozsiJwNCivslYjspIDsi50NCivslYjshLHqtowNCivslYjshLHtnawNCivslYjsp4TssqANCivslYjtlZzsi50NCivslYjsg4Hsp4QNCivslYjshLjrsKkNCivslYjso7zsoJUNCivslYjqsJHtmY0NCivslYjsoJXtlZwNCivslYjsiJjrgqgNCivslYjrs5HtmIQNCivslYjsooXtmZQNCivslYjsmqntmLgNCivslYjsiJjsmqkNCivslYjssL3sm4UNCivslYjtg5zsnqwNCivslYjrs7TssqANCivslYjsiJjsoJUNCivslYjsi6DtnLQNCivslYjsnqXsmIENCivslYjsiJzshJ0NCivslYjsiJjsspwNCivslYjsmIHqtIANCivslYjsmIHtg4ENCivslYjqsr3smIENCivslYjsiJzrk50NCivslYjsmIHrtoANCivslYjsooXqtIANCivslYjshLHquLANCivslYjsiJzsnpANCivslYjso73spJENCivslYjshLHsiKANCivslYjtg5zsnbwNCivslYjsiJztnawNCivslYjsnqzsmqkNCivslYjri6zqtowNCivslYjqs4TtlYQNCivslYjsirnsiJgNCivslYjrs5HquLANCivslYjtmJXsl7QNCivslYjtmITsuZgNCivslYjsi6DssqANCivslYjrj5nsiJwNCivslYjqsJHrj5kNCivslYjtjJDtg5wNCivslYjsmIHqsr0NCivslYjrqoXrjZUNCivslYjsnqzsmrENCivslYjssL3siJgNCivslYjsmIHqt7wNCivslYjsnqzqsbQNCivslYjrtoTsnpANCivslYjsirnshKANCivslYjsmIHri6wNCivslYjrrLjsmIENCivslYjtlbTsi50NCivslYjsiJjqtowNCivslYjsmIHrrLQNCivslYjsmIHrrLgNCivslYjsl7DtnawNCivslYjsoJXtg4ENCivslYjsmIHsiJgNCivslYjrp4zrp4wNCivslYjsoJXrnoANCivslYjrgqjsiJgNCivslYjsmIHso7wNCivslYgg7JqpDQor7JWI7ZeM7JqpDQor7JWI7Iic7YOcDQor7JWI7JiB7LKgDQor7JWI7Jyk7YOdDQor7JWI66y47J6QDQor7JWI7KKF6raMDQor7JWI7JiB7ZWcDQor7JWI7KKF7ISdDQor7JWI7KCV65GQDQor7JWI7KCV7IiYDQor7JWI7JiB7Zi4DQor7JWI7JmE66OhDQor7JWI7YOc642VDQor7JWI6rK96rCRDQor7JWI7Jqp7IiYDQor7JWI6riI64W4DQor7JWI7KKF6rOkDQor7JWI7Iic6re8DQor7JWI7Jqp7YOcDQor7JWI7ISd64+EDQor7JWI7ISg7JiBDQor7JWI7KCV7ZmUDQor7JWI7Jqp7ZmYDQor7JWI64+Z7J6QDQor7JWI6rG07Zi4DQor7JWI7J287J24DQor7JWI7Jyk7KCVDQor7JWI7KCV6rOkDQor7JWI7KO86riwDQor7JWI7KKF7J28DQor7JWI7J2A66+4DQor7JWI7Zi47YOcDQor7JWI66eM7IudDQor7JWI7ZWc7ZiEDQor7JWI7J287ZuIDQor7JWIIOuPmQ0KK+yViOunjOyImA0KK+yViOyatOyihQ0KK+yViOyerOq0gA0KK+yViO2YhOyYgQ0KK+yViOyngOyaqQ0KK+yViOydvOyImA0KK+yViOyerOybkA0KK+yViOydke2YuA0KK+yViOqxtOq3nA0KK+yViOqyveybkA0KK+yViOyerO2drA0KK+yViOyekOybkA0KK+yViOyWkeyekA0KK+yViOyDgeyViA0KK+yViOygleybhQ0KK+yViOyEseyYpQ0KK+yViOu2hOyaqQ0KK+yViOyYgeuPhA0KK+yViOygle2YhA0KK+yViOyYgeyLnQ0KK+yViOuztOuegA0KK+yViOustO2YuA0KK+yViOygle2YuA0KK+yViOyEseq4uA0KK+yViOygleu2hA0KK+yViOyYgeuMgA0KK+yViOyiheqwkQ0KK+yViOydvOyImA0KK+yViOu0ie2ZlA0KK+yViOyyoOuhnQ0KK+yViOyihe2RnA0KK+yViO2ZjeyYpQ0KK+yViOuPhO2YhA0KK+yViOu2gOyImQ0KK+yViO2DnOyLnQ0KK+yViOyEneyInA0KK+yViOyYgeyaqQ0KK+yViO2VtOykgA0KK+yViO2DnOyLnQ0KK+yViOyZhOyEuA0KK+yViO2VtOyEsQ0KK+yViOuzkeyInA0KK+yViO2PieyImA0KK+yViOyihe2ZmA0KK+yViOqwley5oA0KK+yViOyerOyaqQ0KK+yViO2UvOqwgOuhnA0KK+yViOyYge2ZmOykkQ0KK+yViOygley2mOyYpA0KK+yViOyYgeq2jOyglQ0KK+yViO2VmeyjvA0KK+yViOyInOuLrA0KK+yViOuPiOyekA0KK+yViOuRkOyImA0KK+yViO2VtOyImQ0KK+yViOq2jO2YuA0KK+yViOq1kOqwkQ0KK+yViOyCvOyjvA0KK+yViO2YhOyEnQ0KK+yViOunkOyEuA0KK+yViOyZhO2YuA0KK+yViOuzkeyYgQ0KK+yViO2YhOyImQ0KK+yViOynhOyImA0KK+yViOy2qeyhsA0KK+yViOyihe2ZmA0KK+yViO2YleuMgA0KK+yViOycpOyasA0KK+yViO2DnOuCqA0KK+yViOyYgeqyvQ0KK+yViO2YuOyErQ0KK+yViOydgOunjA0KK+yViO2DnOycoA0KK+yViOq3vOyImA0KK+yViO2YuOykgA0KK+yViOyYgeyImA0KK+yViOyXsOq3nA0KK+yViOyDgeydtQ0KK+yViO2ZjeusuA0KK+yViO2VtOuPmQ0KK+yViOq0ke2DnQ0KK+yViOqyveq3vA0KK+yViO2ZjeyImA0KK+yViOynhO2drA0KK+yViO2YhOyYgQ0KK+yViOygkOyImA0KK+yViO2aqOusuA0KK+yViOyYgeyLnQ0KK+yViOydtOq1rQ0KK+yViO2Dne2DnA0KK+yViO2aqOyaqQ0KK+yViOq0keyImA0KK+yViOyatOyDgQ0KK+yViOyasOydvA0KK+yViO2drOuPhA0KK+yViOyiheyaqQ0KK+yViOygleyYpQ0KK+yViOyerOuhnQ0KK+yWkeqwkeyEnQ0KK+yWkeydgOyEnQ0KK+yWkeyYqOyImQ0KK+yWkey2qeuPhA0KK+yWkeqwkeyKuQ0KK+yWkeq4sOyLnQ0KK+yWkeyYgeuPhA0KK+yWkeq3nOuCqA0KK+yWkeqyveuvuA0KK+yWkeuqheyImQ0KK+yWkeuPmeq4sA0KK+yWke2YuOq1kA0KK+yWkeqyve2ZlA0KK+yWkeyEoO2DnA0KK+yWkeuMgOyekA0KK+yWkeuzteyYpQ0KK+yWkeq1rO2YhA0KK+yWkeuPmeuNlQ0KK+yWkeqwkeyyoA0KK+yWkeyImOyxhA0KK+yWkeq3gOyEoA0KK+yWkeqzhOuylA0KK+yWke2Vme2YuA0KK+yWkeq4iOyekA0KK+yWkeq4iOyYpQ0KK+yWkeyepeq1rA0KK+yWkeynhOyImA0KK+yWkeqyve2ZmA0KK+yWkeq4sOykgA0KK+yWkeygleyImA0KK+yWkeuzkeyyoA0KK+yWkeymneq3vA0KK+yWkeq4sOyyoA0KK+yWkeyLoOynhA0KK+yWkeygleyEnQ0KK+yWkeq4iOyXsA0KK+yWkeuMgOq4uA0KK+yWkeyatOyIoA0KK+yWkeydtO2ctA0KK+yWkeyYge2ZlA0KK+yWkeuPhOydvA0KK+yWkeu0ieybkA0KK+yWkeyImOyImA0KK+yWkeyYgeq4uA0KK+yWkeuPmeuqhQ0KK+yWkeyXsOy2nA0KK+yWkeynhO2ZqQ0KK+yWke2VmeynhA0KK+yWkeuPmeusuA0KK+yWkeqyveynhA0KK+yWke2DnOunjA0KK+yWkeycpOyLnQ0KK+yWkeuPmeyXsA0KK+yWke2VtOydtA0KK+yWkeyImOyImA0KK+yWke2DnOyLnQ0KK+yWkeunjOyImA0KK+yWkeuzke2YuA0KK+yWkeyerOyxhA0KK+yWkeyEseyjvA0KK+yWkeuptOyImA0KK+yWkeyEseyhsA0KK+yWkeu0ie2drA0KK+yWkeyCvO2biA0KK+yWkeuptOyImA0KK+yWkeyGjOqyvQ0KK+yWkeyZhOq1kA0KK+yWkeygle2ctA0KK+yWkeusuO2YhA0KK+yWkeqyveyErQ0KK+yWkeunkOyjvA0KK+yWkeywveu0iQ0KK+yWkeuvuOqyvQ0KK+yWkeyDge2drA0KK+yWkeywveyhsA0KK+yWkeyInOqzpA0KK+yWkeu2gOyEnQ0KK+yWkeq3nOyImA0KK+yWkeyEseyEnQ0KK+yWkeydvOyXtA0KK+yWkeyCrOyaqQ0KK+yWkeu0ie2ZmA0KK+yWkeyImOyImA0KK+yWkeyaqeyLnQ0KK+yWkeyCvOyInA0KK+yWkeuPmeyihQ0KK+yWkeycpO2YuA0KK+yWkeyaqeyekA0KK+yWkeyDgeq3vA0KK+yWkeyInOynhA0KK+yWke2Zjeq2jA0KK+yWkeyerOuNlQ0KK+yWkeyDgeyXtA0KK+yWkeyDgeyXsA0KK+yWkeyGjO2YhA0KK+yWkeyaqeyEoA0KK+yWkeyDge2ZmA0KK+yWkeuPmeyImA0KK+yWkeydteyYgQ0KK+yWkeyVoO2DnA0KK+yWkeyEoOq4uA0KK+yWkeyYge2YuA0KK+yWke2VnOyYgQ0KK+yWkeyYge2DnA0KK+yWkeyEseqyvQ0KK+yWke2drOyEsQ0KK+yWkeydmOqyvQ0KK+yWkeuzkeuCqA0KK+yWkeyEseq0gA0KK+yWke2YhO2DnA0KK+yWkeuLrOyglQ0KK+yWke2Zje2DnA0KK+yWkeyEseyYpQ0KK+yWkeustOyasA0KK+yWke2ZmOyYgQ0KK+yWkeydkeq1rQ0KK+yWkeyEseyYpQ0KK+yWkeyYpe2drA0KK+yWkeynhOyImA0KK+yWkeyYgeyEnQ0KK+yWkeyEseyasQ0KK+yWke2YuOyLnQ0KK+yWkeyDgeq2jA0KK+yWkeyaqeyImA0KK+yWkeyEse2biA0KK+yWkeyKueynhA0KK+yWkeyEoOyYgQ0KK+yWkeq4sOuCqA0KK+yWkeyGjOuhnQ0KK+yWkeqyveyduA0KK+yWkeyyoO2drA0KK+yWkeyEseyInA0KK+yWkeyInOyLrA0KK+yWkeyInOq3nA0KK+yWkeyYgeycqA0KK+yWkeyihe2XjA0KK+yWkeyInOyXsA0KK+yWkeyduOu2hA0KK+yWkeykgOyekA0KK+yWke2YhOq3nA0KK+yWkeyInOyaqQ0KK+yWkeyDge2drA0KK+yWke2VnOuFhA0KK+yWkeyduOyyoA0KK+yWkeyKue2DnA0KK+yWkeyatOydtA0KK+yWke2DnOunjA0KK+yWkeyXsOywvQ0KK+yWkeyXsOyYpQ0KK+yWke2XjOyYpA0KK+yWkeqwkeuztQ0KK+yWkeyduO2YuA0KK+yWkeyXsOyaqQ0KK+yWkeuPmeq4sA0KK+yWkeq4sOyLnQ0KK+yWkeyiheyaqQ0KK+yWkeyYgeq3nA0KK+yWkeyiheyLnQ0KK+yWke2DnOyImQ0KK+yWke2DnOyXtA0KK+yWkeyYgeq3nA0KK+yWkeybkO2drA0KK+yWkeq4sOykgA0KK+yWkeyaqeyasA0KK+yWkeyYgeunjA0KK+yWkeyVoOyyoA0KK+yWkey2mO2DnQ0KK+yWkeu2hOykkQ0KK+yWkeyYgeyEnQ0KK+yWkeuLtOyhsA0KK+yWkeyasOyInA0KK+yWkeyaqeumrA0KK+yWkeyYgeyEoA0KK+yWkeq4sOybkA0KK+yWkeyInOyErQ0KK+yWkeq4sOyjvA0KK+yWkeyYpeyhsA0KK+yWkeyDgeybkA0KK+yWkey2mO2DnA0KK+yWke2DnOyYpQ0KK+yWkeyaqeydtA0KK+yWkeyYgeyLnQ0KK+yWkeyYge2DgQ0KK+yWkeyXsO2YuA0KK+yWkeyaqe2MkA0KK+yWkeyEoOykgA0KK+yWkeyYpO2YuA0KK+yWkeunkO2VtA0KK+yWkeyblOyehA0KK+yWkeyYge2YhA0KK+yWkeyEuOq3vA0KK+yWkeyEseyLnQ0KK+yWkeycoO2YuA0KK+yWke2VmO2ZmA0KK+yWkeyiheustQ0KK+yWkeq1rOyDgQ0KK+yWkeydgOyYpQ0KK+yWkeu0ieyCvA0KK+yWkeydvOyasA0KK+yWkeygleq4sA0KK+yWkeydhOyDnQ0KK+yWkeuRkO2YlQ0KK+yWke2YhOqwkQ0KK+yWkeuPmeyLnQ0KK+yWkeyepeyImA0KK+yWkeygleyekA0KK+yWke2ZlOyEsQ0KK+yWkeq3nO2drA0KK+yWkeyerOyyoA0KK+yWkeyaqe2DnQ0KK+yWkeyyoO2YuA0KK+yWkeq3vOygkA0KK+yWkeyerOyyoA0KK+yWkeyihe2XjA0KK+yWke2MkO2YuA0KK+yWkeyZuOq3nA0KK+yWkeyerO2XjA0KK+yWkeyZuOuztQ0KK+yWkeyYgeqwkQ0KK+yWkeygleuPmQ0KK+yWkeygleyEnQ0KK+yWkeyaqeyEnQ0KK+yWkeyyoOqzpA0KK+yWke2Vme2YhA0KK+yWkeygle2YuA0KK+yWkeq3vOyekA0KK+yWkeykgOq3nA0KK+yWkeq3vOuMgA0KK+yWkeygle2ZmA0KK+yWkeygleq2jA0KK+yWkeygkOyyoA0KK+yWke2Vmeq4iA0KK+yWkeymneyImA0KK+yWkeyduO2YhA0KK+yWkeu2gOyImQ0KK+yWkeq3nOyVlA0KK+yWkeynhOyEnQ0KK+yWkeu2hOyngA0KK+yWkeyerOuqqQ0KK+yWkeq1kO2ZmA0KK+yWkeynhO2DnA0KK+yWke2VtO2DnQ0KK+yWkeyLnO2YuA0KK+yWkeq3vOq3nA0KK+yWkeywqOyImA0KK+yWkeyYge2ZmA0KK+yWke2DnOyImQ0KK+yWkeyiheybkA0KK+yWkeyyoOqzpA0KK+yWkeynhOydvA0KK+yWke2MkOuvvA0KK+yWkeyiheq4sA0KK+yWkey2mOumvQ0KK+yWkeq4sOu2hA0KK+yWke2YhOq3vA0KK+yWkeyDge2VtA0KK+yWke2VtOq3vA0KK+yWkeyImOyngA0KK+yWkeyXsO2YhA0KK+yWke2DnOybhQ0KK+yWke2VtOyepQ0KK+yWke2ZjeyVoA0KK+yWke2DnOyImA0KK+yWkeyEoOuTnQ0KK+yWke2XjOuPhA0KK+yWkeycpOyImQ0KK+yWkeyImOyekA0KK+yWkeyImOq0gA0KK+yWke2YhOyEnQ0KK+yWkeqyveykgA0KK+yWkeygkOydtA0KK+yWkeyepeyaqQ0KK+yWke2Yle2VmQ0KK+yWkeyEseuPmQ0KK+yWkeykgOq0gA0KK+yWkeycpO2bhQ0KK+yWke2YuOyKuQ0KK+yWkeyihe2YuA0KK+yWke2VtOuPmQ0KK+yWkeuNleynhA0KK+yWtOusuOyhsA0KK+yWtOybkOykkQ0KK+yWtOuPme2YgQ0KK+yWtOq3vOyyoA0KK+yWtO2YhO2DnA0KK+yWtOyiheuqqQ0KK+yWtOyerOq1rA0KK+yWtOychOyImA0KK+yXhOqwhOyngQ0KK+yXhOq4sO2YuA0KK+yXhOqyveynhA0KK+yXhOybkO2YhA0KK+yXhOqzhOu0iQ0KK+yXhOunkOuCqA0KK+yXhOyerOyImA0KK+yXhOyasOyImA0KK+yXhOq3nO2YhA0KK+yXhO2ZmOyImA0KK+yXhO2MkOyekA0KK+yXhO2VtOyEoA0KK+yXhOq4sO2ZmA0KK+yXhOuCqOyXsA0KK+yXhOygleyErQ0KK+yXhO2cmOuPhA0KK+yXhOunieydtA0KK+yXhOyDgeyImA0KK+yXhOu0ie2drA0KK+yXhOuylOynhA0KK+yXhOyCvOyjvA0KK+yXhOyasOyLnQ0KK+yXhO2VtOybkA0KK+yXhOyDgeyImA0KK+yXhOyDgeq4sA0KK+yXhOychO2XjA0KK+yXhOq3nOyImA0KK+yXhOuzkeuMgA0KK+yXhOyDgeyaqQ0KK+yXhOyekOyImA0KK+yXhOyatOynhA0KK+yXhOyEseq1rA0KK+yXhOyDgeyaqQ0KK+yXhO2MkOyImA0KK+yXhOyImOyhsA0KK+yXhOyepe2YuA0KK+yXhOyDgeyasA0KK+yXhOyEne2YuA0KK+yXhOyDgeyImA0KK+yXhOq3nOyImQ0KK+yXhOyEseydvA0KK+yXhOqwkeq4uA0KK+yXhOyLnOq3vA0KK+yXhOywveyEoA0KK+yXhOyEse2doA0KK+yXhOyCrOyInA0KK+yXhOyImO2ZjQ0KK+yXhOuqheq3nA0KK+yXhOyGjOuNlQ0KK+yXhOywrOq3vA0KK+yXhOuzke2VmQ0KK+yXhOq0ke2ZjQ0KK+yXhOyGjOygkA0KK+yXhOyerOy2nA0KK+yXhO2aqO2ZmA0KK+yXhOygleyImQ0KK+yXhOyYgeyErQ0KK+yXhOyEneyEnQ0KK+yXhOuqhe2YlQ0KK+yXhOyKue2aqA0KK+yXhOyZuOuNlQ0KK+yXhOyImOyhsA0KK+yXhOyDgeuMgA0KK+yXhOyEuOyerA0KK+yXhOyaqeuNlQ0KK+yXhOqwkeyEoA0KK+yXhOyInOq1rQ0KK+yXhOyerOycqA0KK+yXhOydteq3oA0KK+yXhOygleyXsA0KK+yXhOykgOyInA0KK+yXhOyekOyekA0KK+yXhOydteq4sA0KK+yXhOuzkeq3gA0KK+yXhO2DnOyyoA0KK+yXhOyDgeuPjA0KK+yXhOydteuNlQ0KK+yXhOunjO2DnA0KK+yXhOynhO2YuA0KK+yXhOyasOuPmQ0KK+yXhOygleyErQ0KK+yXhOqwleyIoA0KK+yXhOyInOuztQ0KK+yXhOq3nOyyoA0KK+yXhOygleyekA0KK+yXhO2ZjeyImA0KK+yXhOygleuMgA0KK+yXhOuPhOuKoA0KK+yXhOyiheyErQ0KK+yXhOyDgeunjA0KK+yXhOygleyImA0KK+yXhOybkOycpA0KK+yXhOyjvOyErQ0KK+yXhOykkeyWkQ0KK+yXhOyYge2drA0KK+yXhOydvOyerA0KK+yXhOykke2YhA0KK+yXhOyYgeyImA0KK+yXhOqzhOuPhA0KK+yXhOycpOq3nA0KK+yXhO2VhO2ZlA0KK+yXhOuzkeyYgQ0KK+yXhOyYpeyYgQ0KK+yXhOybkOyEoA0KK+yXhO2YuOynhA0KK+yXhO2drO2DnQ0KK+yXhOyihe2YuA0KK+yXhOyDgeqxtA0KK+yXhO2drOyInA0KK+yXhOqyveyhsA0KK+yXhOunueuNlQ0KK+yXhOyaqe2XjA0KK+yXrOq4sOuPmQ0KK+yXrOyYgeuFhA0KK+yXrOyEne2ZmA0KK+yXrO2DnOyLnQ0KK+yXrOq4sOyXsA0KK+yXrO2drOy5oA0KK+yXrOyaqeq1rA0KK+yXrOyyoOy2nA0KK+yXrOuCqO2ZmA0KK+yXrOycpO2biA0KK+yXrOyInOuMgA0KK+yXrOyerOq0kQ0KK+yXrOunueuPmQ0KK+yXrOynhO2DnA0KK+yXrOuPmeyYgQ0KK+yXrO2VmeyImQ0KK+yXrOuqhe2ZmA0KK+yXrOyaqeyImA0KK+yXrOuztOy2mA0KK+yXrOunjOyIoA0KK+yXrOuzkeq4sA0KK+yXrOyYgeyErQ0KK+yXrOyerOqwkQ0KK+yXrOyYpeyImA0KK+yXrOuztOyXsA0KK+yXrO2DnOyXtA0KK+yXrO2DnO2DnA0KK+yXrOuzkeyLnQ0KK+yXrOuzteyXsA0KK+yXrOygle2ctA0KK+yXrOyLoO2XjA0KK+yXrO2VnOq3vA0KK+yXrOyDgeqwkQ0KK+yXrOuRkO2DnA0KK+yXrOuPmeyasQ0KK+yXrO2MkOuqhQ0KK+yXrOyDgeq3oA0KK+yXrOyaqeyatA0KK+yXrOyihe2YhA0KK+yXrOyYgeustQ0KK+yXrOyDgeq3vA0KK+yXrOydke2WiQ0KK+yXrOydvOy2nA0KK+yXrOuzkeyLnQ0KK+yXrOyDgeuNlQ0KK+yXrOyiheyaqQ0KK+yXrO2DnOycpA0KK+yXrO2drO2YuA0KK+yXrOyDgeuqqQ0KK+yXrOuqheq4uA0KK+yXrOygleybkA0KK+yXrOyyoOykgA0KK+yXrOyDgeyEoA0KK+yXrOyEseydtA0KK+yXrOyKueqzpA0KK+yXrOuzkeyLnQ0KK+yXrOyDgeyXsA0KK+yXrOqyveuCqA0KK+yXrOyiheyImA0KK+yXrO2DnOuegA0KK+yXrOyDgeyasA0KK+yXrOyEseyImA0KK+yXrOyIreyduA0KK+yXrOuPmeyLnQ0KK+yXrOyDgeyasQ0KK+yXrOyEoOu0iQ0KK+yXrOyYpO2drA0KK+yXrOyaqeyaqQ0KK+yXrOyDgeyynA0KK+yXrOyImOuhnQ0KK+yXrOyYgeyInA0KK+yXrOu2hOu0iQ0KK+yXrOyDge2XjA0KK+yXrOyerOykgA0KK+yXrOyerO2YhA0KK+yXrOyYge2DnA0KK+yXrOyDge2ZlA0KK+yXrOu2gOyekA0KK+yXrOq3vOunjA0KK+yXrOyMjeyImA0KK+yXrOyEneuPmQ0KK+yXrOuMgOyXsA0KK+yXrOq0keyEoA0KK+yXrOyYpeyLnA0KK+yXrOyEneycpA0KK+yXrOygle2VnA0KK+yXrOyDgeyekA0KK+yXrOyaqeyasA0KK+yXrOyEseyXsA0KK+yXrOuPme2MlA0KK+yXrOyaqeyEnQ0KK+yXrOuRkOyDnQ0KK+yXrOyImOyaqQ0KK+yXrOyYgeyYgQ0KK+yXrOyiheu0iQ0KK+yXrOqyveyImQ0KK+yXrOyImOybkA0KK+yXrOuMgOyerA0KK+yXrOygkOq4iA0KK+yXrOyiheyInA0KK+yXrOyImOyyoA0KK+yXrOyiheyImA0KK+yXrOywveyIoA0KK+yXrOyEseyImQ0KK+yXrOyIoOyaqQ0KK+yXrOqwkeyInA0KK+yXrOynhOyLnQ0KK+yXrOyGjOyVlA0KK+yXrOyWuOyImQ0KK+yXrOyihe2YhA0KK+yXrOyerOq4sA0KK+yXrO2DnO2VnA0KK+yXrOybkOuPmQ0KK+yXrOqwkeyXsA0KK+yXrOykgOuTnQ0KK+yXrOyDgeyasQ0KK+yXrOybkOyEnQ0KK+yXrOywveq3vA0KK+yXrOuzkeyImQ0KK+yXrO2DnOyatA0KK+yXrOycoOuPmQ0KK+yXrOyYgeyImA0KK+yXrOyEseyDgQ0KK+yXrOuqheykgA0KK+yXrOyduO2YkQ0KK+yXrOu2gOqzpA0KK+yXrOyerOydvA0KK+yXrO2DnOydtA0KK+yXrOyerO2drA0KK+yXrOyEse2DnQ0KK+yXrOq4uOyImA0KK+yXrOyImOqxtA0KK+yXrOygkOyVhQ0KK+yXrOuzke2YuA0KK+yXrOuMgOyerA0KK+yXrO2MkOu0iQ0KK+yXrOygkOy2nA0KK+yXrOuzkeyEoA0KK+yXrOyEoOyasA0KK+yXrOuPmeyyoA0KK+yXrOygleq1rA0KK+yXrOyEseuhnQ0KK+yXrOyDge2YuA0KK+yXrOyDgeu2hA0KK+yXrOykkeqwkQ0KK+yXrOyYge2YhA0KK+yXrOyEseyghA0KK+yXrO2DnO2YhA0KK+yXrOyyreq4uA0KK+yXrOunjO2biA0KK+yXrOyEuOqyvQ0KK+yXrOuqheyEoA0KK+yXrO2DnOyInA0KK+yXrOyaqeuCqA0KK+yXrOyiheunjA0KK+yXrOydmOywvQ0KK+yXrO2DnOyasQ0KK+yXrOq0ke2YuA0KK+yXrO2XjOybkA0KK+yXrOycteyLnQ0KK+yXrO2VmeuPmQ0KK+yXrOy5mOyVoA0KK+yXrOuztO2YlQ0KK+yXrO2ZmOu0iQ0KK+yXrO2VtOuPmQ0KK+yXrOyihe2DnA0KK+yXrOuMgOq1rA0KK+yXrOyDgeydvA0KK+yXrO2ZjeuvvA0KK+yXrOyaqeyWkQ0KK+yXrOycpO2ZmA0KK+yXrO2YhOyImA0KK+yXrO2ZmOyImA0KK+yXrOyYpOyEnQ0KK+yXrOyerO2biA0KK+yXrOqyveuPhA0KK+yXrO2ZmOyLnQ0KK+yXrOyXsOuPhA0KK+yXrOq4sOqwkQ0KK+yXrOq4uO2DnA0KK+yXrO2ZmOyYpQ0KK+yXrOq3vOyasA0KK+yXrOyerOunjA0KK+yXrOyZleq4uA0KK+yXvOqzoeyngA0KK+yXvOyduOyXtA0KK+yXvOyYgeyekA0KK+yXvOyjvOyLnQ0KK+yXvOq4sOyynA0KK+yXvOu0ieuNlQ0KK+yXvOq4sO2ZlA0KK+yXvOyjvOyasA0KK+yXvOuMgOuTnQ0KK+yXvOuCqO2YuA0KK+yXvOycpO2DnA0KK+yXvOyerOuwsA0KK+yXvOuNleyIoA0KK+yXvOyngOyehA0KK+yXvOqwkeyEnQ0KK+yXvOuzkeuhgA0KK+yXvOyDgeyasA0KK+yXvOqyveynhA0KK+yXvOyGjOyaqQ0KK+yXvOyEne2drA0KK+yXvOyImeydtA0KK+yXvOygleydvA0KK+yXvO2YuOyasA0KK+yXvOuptOyyoA0KK+yXvOyaqeykgA0KK+yXvO2DnO2YuA0KK+yXvOygkO2VmQ0KK+yXvOuCqOuTnQ0KK+yXvOyduOyLpA0KK+yXvOyLneyEnQ0KK+yXvOq3nOywvQ0KK+yXvOqyveunjA0KK+yXvOygkOuhgA0KK+yXvOyDgeyasA0KK+yXvO2Zje2DnQ0KK+yXvOq4sOq2jA0KK+yXvOyiheuNlQ0KK+yXvOq3vOyEoA0KK+yXvOyEse2YuA0KK+yXvOyiheuPhA0KK+yXvOyihe2ZmA0KK+yXvOyYgeyDgQ0KK+yXvOyImOydtA0KK+yXvOyiheqwkQ0KK+yYiOyImO2VtA0KK+yYiOyEuOyLnQ0KK+yYiOyehOydvA0KK+yYiOynhOuwsA0KK+yYiOyaqe2VtA0KK+yYiOuqheuPmQ0KK+yYiOyKueyhsA0KK+yYiOyDgeuylA0KK+yYiOyiheudvQ0KK+yYiOuCqOuloA0KK+yYiO2ajOynhA0KK+yYiOyEse2ZmA0KK+yYiO2VnOyLnQ0KK+yYiOyEse2YuA0KK+yYiOyImO2DnA0KK+yYiOyerOyImQ0KK+yYiO2VnO2DnA0KK+yYiOq3nOyekA0KK+yYiOyYgeyaqQ0KK+yYiOyEneyXsA0KK+yYpOqwkeyEoA0KK+yYpOyDgeyInA0KK+yYpOygkOynhA0KK+yYpOygleunjA0KK+yYpOqxtOq1rQ0KK+yYpOyEne2ZjQ0KK+yYpOqyveyaqQ0KK+yYpOq3vOyerA0KK+yYpOqyveugrA0KK+yYpOyInOydtQ0KK+yYpOqwkeyZhA0KK+yYpOuqhe2RnA0KK+yYpOqyvey2nA0KK+yYpOydhOyImA0KK+yYpOyyoOyYpQ0KK+yYpOyGjOq3oA0KK+yYpOqyve2ZmA0KK+yYpOq3vO2YuA0KK+yYpOq4uOumvQ0KK+yYpOuPmeyasA0KK+yYpOqyve2ZmA0KK+yYpOqyve2RnA0KK+yYpOyiheq4sA0KK+yYpOygkO2VmQ0KK+yYpOqyve2ZmA0KK+yYpOyerOuztQ0KK+yYpOuRkOuqqA0KK+yYpOyihe2YuA0KK+yYpOq0keyEnQ0KK+yYpOq4iOyImA0KK+yYpOy5mOyLnQ0KK+yYpOq4iOyglQ0KK+yYpOq0keyXtA0KK+yYpO2MkOyaqQ0KK+yYpO2VmOq3nA0KK+yYpOyYgeunjA0KK+yYpOq0ke2DnA0KK+yYpOyEseyXtA0KK+yYpOygleydtA0KK+yYpOyaqeyLnQ0KK+yYpOq0ke2ZmA0KK+yYpOyngOyXtA0KK+yYpOu2gOq1rA0KK+yYpOuRkO2VmQ0KK+yYpOq1reywvQ0KK+yYpOy2mOq4uA0KK+yYpOqyveusuA0KK+yYpOyCvO2drA0KK+yYpOq3gOuLmA0KK+yYpOyDge2ZjQ0KK+yYpOu0ieuegA0KK+yYpOqyveunjA0KK+yYpOq3nOyLnQ0KK+yYpOyynOuCqA0KK+yYpOyduOyErQ0KK+yYpOy5mO2drA0KK+yYpOq3nOyYgQ0KK+yYpOq3nOyaqQ0KK+yYpOuwqeuNlQ0KK+yYpOq3vO2YuA0KK+yYpOq3nOyYpA0KK+yYpOygnOyEnQ0KK+yYpOuPmeuPjA0KK+yYpOq4sO2VmQ0KK+yYpOq3nOyYpA0KK+yYpOyEseuPmQ0KK+yYpOyaqeyhsA0KK+yYpOyEseyDgQ0KK+yYpOq3nO2YhA0KK+yYpO2aqOuemA0KK+yYpOyYgeyIoA0KK+yYpOyYgeyLnQ0KK+yYpOq3vOyImA0KK+yYpOuPmeyEsQ0KK+yYpOusuO2DnA0KK+yYpOuNleyEoA0KK+yYpOq3vOyLnQ0KK+yYpO2ZjeqyvQ0KK+yYpOuzkeyYpQ0KK+yYpOyaqeqyvQ0KK+yYpOq4iOydtA0KK+yYpOu2hOunkA0KK+yYpOyImOyXsA0KK+yYpOqyuOunjA0KK+yYpOq4sOyjvA0KK+yYpOuqheywrA0KK+yYpOywve2YuA0KK+yYpO2DnOyglQ0KK+yYpOq4sO2ZmA0KK+yYpOyYgeunjA0KK+yYpOyerOyEnQ0KK+yYpOuNleyaqQ0KK+yYpOq4sO2ZmA0KK+yYpOuPhOybkA0KK+yYpOq0keyEnQ0KK+yYpOqyveyXhQ0KK+yYpOuCnOyjvA0KK+yYpOq3ueyLnQ0KK+yYpOq4sOyEsQ0KK+yYpOuzkeyekA0KK+yYpOuCqOynhA0KK+yYpO2Zje2YhA0KK+yYpOqyve2DnA0KK+yYpO2DnOywrA0KK+yYpOuCqOynhA0KK+yYpOynhOy2mA0KK+yYpCDsl7ANCivsmKTsooXqs6QNCivsmKTri6zshKANCivsmKTsnqzsnbUNCivsmKTsg4HtmIQNCivsmKTrgqjsi50NCivsmKTri6ztmZgNCivsmKTtg5zslZQNCivsmKTsl7DsmqkNCivsmKTrr7zsm4UNCivsmKTrjIDqt7wNCivsmKTsnZjsnbwNCivsmKTsiJjqt5wNCivsmKTsp4TsiJgNCivsmKTrjIDsmqkNCivsmKTrgqjsnpANCivsmKTsooXqtowNCivsmKTsmqnspIANCivsmKTrjZXrp4wNCivsmKTtmLjtmY0NCivsmKTsnqztmIQNCivsmKTspIDrpr0NCivsmKTrjZXtmLgNCivsmKTsoJXsnbQNCivsmKTsmqntmZgNCivsmKTqsJXsmIENCivsmKTrj4TrjZUNCivsmKTrs5HssqANCivsmKTshLHsmqkNCivsmKTsnYDsiJgNCivsmKTrj4TtmIQNCivsmKTrqoXtmIQNCivsmKTsnqzrgpwNCivsmKTsp4Tri6wNCivsmKTrj5nsl7ANCivsmKTsm5DroZ0NCivsmKTtg5zrr7wNCivsmKTsirnsiJwNCivsmKTrj5nsl7QNCivsmKTqsIDtlZwNCivsmKTsgrzrqoUNCivsmKTsg4HtnawNCivsmKTrj5nstpgNCivsmKTrhYTtmZgNCivsmKTtmY3spJENCivsmKTqt5zsiJwNCivsmKTrj5ntmZgNCivsmKTtl4zrqqgNCivsmKTsoJDshJ0NCivsmKTshKDsnbUNCivsmKTrk53sobANCivsmKTsmbjtlqUNCivsmKTquIjrtoQNCivsmKTtg5zshJ0NCivsmKTrk53tmZgNCivsmKTtnJjtmLgNCivsmKTrs5HsnpANCivsmKTtlZnsm4UNCivsmKTrqoXroZ0NCivsmKTtmJzshLgNCivsmKTsoJDtmLgNCivsmKTsm5DslbwNCivsmKTrqoXsiJgNCivsmKTsg4HsiJwNCivsmKTsnKTtmIQNCivsmKTsooXsp4QNCivsmKTrqoXsiJkNCivsmKTtmJXtnawNCivsmKTssKzrgqgNCivsmKTtlZzshJ0NCivsmKTrqoXtnawNCivsmKTtg5ztmZQNCivsmKTshLHtmLgNCivsmKTtlZjtg5wNCivsmKTrqoXtnawNCivsmKTsnqXsoJUNCivsmKTspp3so7wNCivsmKTsmIHtlZkNCivsmKTrrLjqsJENCivsmKTstpjsiJgNCivsmKTshLHtnawNCivsmKTsi5zrnpgNCivsmKTrrLjtmZgNCivsmKTsoJXsp4QNCivsmKTtlZnrjZUNCivsmKTsoJXsoJUNCivsmKTrs5HqtowNCivsmKTsmKXsl7ANCivsmKTrjZXrkZANCivsmKTqta3rj4QNCivsmKTrs5HsiJgNCivsmKTsnqzsmKUNCivsmKTrj5nsiJwNCivsmKTsmIHsmIENCivsmKTrs5HssqANCivsmKTsnKDsmKUNCivsmKTtg5zqt5wNCivsmKTsgrzsl7ANCivsmKTrs5Htm4gNCivsmKTshLHssYQNCivsmKTtg5zrsLANCivsmKTsg4HsnbQNCivsmKTrs7XrgqgNCivsmKTsoJDtlZwNCivsmKTsmKXsiJkNCivsmKTsmIHrjZUNCivsmKTrtInstpgNCivsmKTssq3rsLANCivsmKTsmqntmLgNCivsmKTtmITshJ0NCivsmKTrtIntmIQNCivsmKTtlYTsp4ANCivsmKTqt5ztmY0NCivsmKTssqDslZQNCivsmKTrtoDquLgNCivsmKTqsr3si50NCivsmKTsnqzrj5kNCivsmKTsmIHrqqkNCivsmKTrtoTshJ0NCivsmKTsmqnsmYQNCivsmKTsooXtmZgNCivsmKTshLjrsLENCivsmKTsgrzsmqkNCivsmKTsoJXtkZwNCivsmKTqt5zqtZANCivsmKTshJ3qt6ANCivsmKTsgrzsmqkNCivsmKTsmIHsiJwNCivsmKTqtazssqANCivsmKTsiJjtmIQNCivsmKTsg4Hqt7wNCivsmKTrp4zssqANCivsmKTsg4HsmKUNCivsmKTsiJzsiJgNCivsmKTsg4Hrp4wNCivsmKTrj5nstpwNCivsmKTssL3shLgNCivsmKTssL3tmIQNCivsmKTsg4HshLgNCivsmKTsgrzrk50NCivsmKTsmIHsmIENCivsmKTtmITssqANCivsmKTsg4HsobANCivsmKTsiJzqtowNCivsmKTsooXqt5wNCivsmKTshKDtmZgNCivsmKTshJ3rp4wNCivsmKTsnKTssL0NCivsmKTsiJzsoJUNCivsmKTrjIDsmIENCivsmKTshJ3siJwNCivsmKTssL3tmLgNCivsmKTtnazqtawNCivsmKTsiJjqs4QNCivsmKTshJ3tmIQNCivsmKTsmIHsmqkNCivsmKTsmrTqta0NCivsmKTsooXsiKANCivsmKTshKDrr7gNCivsmKTrs7XsnoQNCivsmKTsmIHrjZUNCivsmKTruJ3siJkNCivsmKTshKDsiJkNCivsmKTsnqztlZkNCivsmKTsiJntg5wNCivsmKTrjZXshJ0NCivsmKTshLHqt7wNCivsmKTsiJzsm5ANCivsmKTshLHshJ0NCivsmKTssqDsl7ANCivsmKTshLHrk50NCivsmKTsp4TqtawNCivsmKTrs7Xqt5wNCivsmKTquLjsobANCivsmKTshLHsl7QNCivsmKQg7JqxDQor7Jik67OR7KGwDQor7Jik6rec7ZWcDQor7Jik7ISx7LCsDQor7Jik6reA7IicDQor7Jik7JiB7Je0DQor7Jik6rOk7KGwDQor7Jik7IS46rSRDQor7Jik7KCV6rOkDQor7Jik7J287J21DQor7Jik6riw7Zi4DQor7Jik7IS47JuFDQor7Jik6rSR67SJDQor7Jik7IOB7IiYDQor7Jik7IiY7JqxDQor7Jik7IS47JuQDQor7Jik7J6s7JiBDQor7Jik7KKF7IicDQor7Jik67SJ7KGwDQor7Jik7IS47J24DQor7Jik7KeE7KeEDQor7Jik7Jqp7LKgDQor7Jik7Jil6rWsDQor7Jik7IS47J28DQor7Jik7Jyk7JqpDQor7Jik7ZuE7IigDQor7Jik7ZWE7Je0DQor7Jik7IiY7ZiEDQor7Jik7J6s7J6QDQor7Jik7ZeM7ISdDQor7Jik66qF7Z2sDQor7Jik7IiY7ZmYDQor7Jik64yA64+EDQor7Jik7IiY7ZuIDQor7Jik7IOB7JiBDQor7Jik7Iic7ZmUDQor7Jik7IS47J6QDQor7Jik7Jqp7IudDQor7Jik7J6s7J6QDQor7Jik7Iig7ZiEDQor7Jik7Zqo6recDQor7Jik7JiB7JuQDQor7Jik6rCR7ZmYDQor7Jik7Iq57Je0DQor7Jik65GQ7ZWZDQor7Jik7KCV7Zi4DQor7Jik7Jil7KSADQor7Jik7Jew7ISdDQor7Jik7J6s7IiYDQor7Jik6riI64+MDQor7Jik6reA64+ZDQor7Jik7Jew7Zi4DQor7Jik7ZWc7JeFDQor7Jik7YOc6raMDQor7Jik7KCV7Je0DQor7Jik7Je86rCBDQor7Jik7Z2l7IicDQor7Jik7IOB7ISgDQor7Jik6riw67O1DQor7Jik7JiB7IudDQor7Jik66qF64+ZDQor7Jik7J217JqwDQor7Jik66eQ6riwDQor7Jik7JiB7ZmUDQor7Jik7IiY7J6QDQor7Jik64yA7KSADQor7Jik7Iic7Zi4DQor7Jik7JiB7ZmYDQor7Jik67aA6rCRDQor7Jik7KCV7LKgDQor7Jik7JuQ7KSADQor7Jik7Jik7ZmYDQor7Jik7IyN6raMDQor7Jik6rSA64+EDQor7Jik7ISd7IOBDQor7Jik7Jil7ISgDQor7Jik7ZWc7Je0DQor7Jik6rec7ISgDQor7Jik7Jqp7IudDQor7Jik7JmV7IiYDQor7Jik7IOB7Z2gDQor7Jik67KU7IicDQor7Jik7J247J21DQor7Jik7Jqp7IigDQor7Jik6rK97IicDQor7Jik7KCV7JqpDQor7Jik7ISx7Zi4DQor7Jik7Jqw7LaYDQor7Jik7IiZ6rK9DQor7Jik66y467mIDQor7Jik66eM7IiYDQor7Jik7Jq07JqpDQor7Jik7YOc7IOBDQor7Jik7LC97IiYDQor7Jik6rCR7ZWcDQor7Jik7JuQ66y4DQor7Jik7JiB7IStDQor7Jik7ZW067CwDQor7Jik7KSA7IiYDQor7Jik7JuQ67CwDQor7Jik67OR7KCVDQor7Jik7Lmg6regDQor7Jik7JiB7Je0DQor7Jik7JuQ7ISgDQor7Jik7J6s7J6sDQor7Jik7ZmU6riwDQor7Jik7IiY7IStDQor7Jik7JuQ7IiYDQor7Jik66y466qoDQor7Jik7J6E7Z2sDQor7Jik7IK87KeEDQor7Jik7JuU67SJDQor7Jik7Jq07JilDQor7Jik7KKF7ZmYDQor7Jik7Jik7ZWZDQor7Jik7Jyk6recDQor7Jik7J6s7J6sDQor7Jik7J6l6riwDQor7Jik67OR7ZmNDQor7Jik7Jyk67O1DQor7Jik7Jil7Zi4DQor7Jik7Z2s7Z2sDQor7Jik64+Z64+MDQor7Jik7Jyk7ZW0DQor7Jik7JiB7J6QDQor7Jik7KSR7LCsDQor7Jik7J2E7JmEDQor7Jik7Jyk7ZmYDQor7Jik7J6s7ZmYDQor7Jik67O17J6sDQor7Jik7Jyk7KeEDQor7Jik7J2A64+EDQor7Jik7ISg6re8DQor7Jik67OR7LKgDQor7Jik7IK87ISdDQor7Jik7J2A7ZmYDQor7Jik7ZW064WEDQor7Jik7Jyk7IudDQor7Jik7ZWZ64+ZDQor7Jik7J2Y7Je0DQor7Jik7Iic7ZmYDQor7Jik64yA7Je0DQor7Jik7KKF7Jq0DQor7Jik7J247ZiEDQor7Jik7ISx7KO8DQor7Jik7IOB7ZmUDQor7Jik7IK87Zi4DQor7Jik7J287ISxDQor7Jik7JiB67CxDQor7Jik7JiB7JuQDQor7Jik7KCV6rG4DQor7Jik7J6E7ISdDQor7Jik6rSR6rWsDQor7Jik6re87ZWcDQor7Jik7IOB7Zi4DQor7Jik7J6Q7KKFDQor7Jik6rec6riwDQor7Jik7ISx6rSRDQor7Jik7KO87JqpDQor7Jik7J6s6rOkDQor7Jik7J6l66qoDQor7Jik7KCV6recDQor7Jik66+46rK9DQor7Jik7J6s6raMDQor7Jik7Zic7Zi4DQor7Jik7Jyk7ZGcDQor7Jik7IaM7YOcDQor7Jik7J6s6re8DQor7Jik7JiB7YyUDQor7Jik7KCV7IStDQor7Jik7YOc7JuQDQor7Jik7J6s64+ZDQor7Jik642V7JuFDQor7Jik7YOc7Je0DQor7Jik7ZWc7ISxDQor7Jik7J6s67KUDQor7Jik7Jyk7Zi4DQor7Jik7KCc67aEDQor7Jik7JuQ7YOcDQor7Jik7J6s7ISdDQor7Jik7JiB6riwDQor7Jik7JuQ7KO8DQor7Jik67OR7Z2gDQor7Jik7J6s7IiYDQor7Jik7LCs7ISdDQor7Jik7YOc7J20DQor7Jik7KCV7IOBDQor7Jik7J6s7IicDQor7Jik7ZeM6riwDQor7Jik66eJ7KCVDQor7Jik7IOB6riwDQor7Jik7J6s7JiBDQor7Jik64yA7ZalDQor7Jik7IOB7ZiBDQor7Jik7ISg67CwDQor7Jik7J6s7JqpDQor7Jik7IaM7KeEDQor7Jik6rWt7LaYDQor7Jik7J2467SJDQor7Jik7J6s7JqpDQor7Jik7Iq57JuQDQor7Jik7Z2s7KGwDQor7Jik65GQ6re8DQor7Jik7J6s7JqwDQor7Jik6rK966y4DQor7Jik7ZiV7JilDQor7Jik7J287Jq0DQor7Jik7J6s7JykDQor7Jik7JiB64yADQor7Jik7ZmN6ri4DQor7Jik7YOc64+EDQor7Jik7J6s7J28DQor7Jik7LC97ZuIDQor7Jik7YOd7Z2gDQor7Jik7ISg7ZWZDQor7Jik7J6s7LKcDQor7Jik7IOB7J28DQor7Jik67OR7KKFDQor7Jik7KCQ67O0DQor7Jik7J6s7LaYDQor7Jik7Jqp7ISgDQor7Jik66eM7KSADQor7Jik6rSR66eMDQor7Jik7KCQ7IicDQor7Jik67O17Ja1DQor7Jik7YOc7YOcDQor7Jik7Iic6rOkDQor7Jik7KCQ7ZmYDQor7Jik7J6l7J24DQor7Jik7KeE7J24DQor7Jik7LC96regDQor7Jik7KCV656YDQor7Jik7IOB7JewDQor7Jik7IOB7JuQDQor7Jik67OR7JqwDQor7Jik7KCV7JWgDQor7Jik66y46re8DQor7Jik7ZiE6recDQor7Jik7J6s7IStDQor7Jik7KCV7Je0DQor7Jik7J6l642VDQor7Jik64+Z6rOkDQor7Jik6rK97ISgDQor7Jik7KCV7Je0DQor7Jik7JiB7JqxDQor7Jik6rCR7ZeMDQor7Jik7IOB6riwDQor7Jik7KCV7ZiEDQor7Jik7Iq56rWsDQor7Jik7KCV7JewDQor7Jik7ZiE7KSADQor7Jik7KCV7Zi4DQor7Jik7Jyk7LacDQor7Jik66+87ISgDQor7Jik7Jyk7IOBDQor7Jik7KCV7ZmYDQor7Jik642V7LKgDQor7Jik66Gd7IiZDQor7Jik6rSR64yADQor7Jik7KCV7ZmYDQor7Jik7J2A7JqxDQor7Jik7J6s7J6sDQor7Jik7YOc64+MDQor7Jik7KCc7Je0DQor7Jik7J6s7JilDQor7Jik7JiB7KO8DQor7Jik67SJ7IiYDQor7Jik7KKF7IiYDQor7Jik7IOB7J6sDQor7Jik7KCV7ISgDQor7Jik7IK87J28DQor7Jik7KKF7YOBDQor7Jik7KCV7JiBDQor7Jik7KKF7JilDQor7Jik7JuQ6regDQor7Jik7KKF7Zi4DQor7Jik7J6s7ZmUDQor7Jik7KKF66y4DQor7Jik7JuQ7IicDQor7Jik7KKF7ZmUDQor7Jik7ISx7J28DQor7Jik7JiB67O1DQor7Jik7KeE7Zi4DQor7Jik7KKF7ZmYDQor7Jik7ISg6rK9DQor7Jik7J2Y7JewDQor7Jik6re87IOBDQor7Jik7KO867KUDQor7Jik7Z2s7Zi4DQor7Jik6rec7IiYDQor7Jik6ri46riwDQor7Jik7KSA7ZGcDQor7Jik66qF7IudDQor7Jik7YOc7ZiBDQor7Jik7YOc7ZmYDQor7Jik7KSA7ZiEDQor7Jik7JuQ7ISxDQor7Jik7ZW07J6lDQor7Jik7JiB6recDQor7Jik7KSA7Zi4DQor7Jik67OR7ISdDQor7Jik7Zi467CwDQor7Jik7KKF7KSADQor7Jik7KSA7ZmYDQor7Jik7KCQ7Zi4DQor7Jik7J6s7Zy0DQor7Jik64Ko7IiYDQor7Jik7KSA7Z2sDQor7Jik64Ko7ZiEDQor7Jik7JiB7IicDQor7Jik7ZmN7KKFDQor7Jik7KSR7Je0DQor7Jik66qF7LKgDQor7Jik6rOE7Jq0DQor7Jik7ZmN6rG0DQor7Jik7LC96rWtDQor7Jik66y07Zi4DQor7Jik7Ja47IiYDQor7Jik6ri47ISxDQor7Jik7LC97ZmYDQor7Jik6riI7YOcDQor7Jik7IOB7JiBDQor7Jik7LCs6rOEDQor7Jik7LaY7J6QDQor7Jik7Jqw7IOdDQor7Jik67O07KGwDQor7Jik7JiB7ISxDQor7Jik7Lmg6recDQor7Jik7KKF7JiBDQor7Jik66eQ64+EDQor7Jik67SJ7IigDQor7Jik7Lmg7JilDQor7Jik7IiY7ZmYDQor7Jik7JiB7ISxDQor7Jik7Jqp7ZWEDQor7Jik7Lmg7ZmYDQor7Jik64KZ7KeEDQor7Jik7J6s66GcDQor7Jik64+Z7JqpDQor7Jik7Lmg7ZmYDQor7Jik7KCV67SJDQor7Jik7KKF7IicDQor7Jik7Jqp7IudDQor7Jik7YOA67aEDQor7Jik7KCQ6recDQor7Jik7KCV7LaYDQor7Jik7ISx7YOcDQor7Jik7YOc7IiYDQor7Jik7YyQ7JewDQor7Jik7KCQ7IiZDQor7Jik6riw7IicDQor7Jik7YOc7J6sDQor7Jik7ZmN7ZWcDQor7Jik7ISd7J2YDQor7Jik64yA7IiZDQor7Jik7YOc7KSADQor7Jik66qF7Zi4DQor7Jik7KSA7IiZDQor7Jik64+Z7ISsDQor7Jik7YOc7KeEDQor7Jik7JiB7J28DQor7Jik7J287ZWZDQor7Jik7KKF7IudDQor7Jik7YOc7Zi4DQor7Jik7Jqx7KSADQor7Jik64+Z7IudDQor7Jik7JuU7IiYDQor7Jik7YOc7ZmYDQor7Jik7LCs7IiYDQor7Jik7YOc7ISdDQor7Jik7KKF7IudDQor7Jik7YyQ7KeEDQor7Jik7JiB6riwDQor7Jik64+Z64usDQor7Jik66y47ZqoDQor7Jik7ZWZ6re8DQor7Jik7JiB66a8DQor7Jik7IOB7ZiEDQor7Jik7Jqp7IiYDQor7Jik7ZWc6raMDQor7Jik6rSR7JqwDQor7Jik64us7Z2sDQor7Jik64Ko7IusDQor7Jik7ZWc7LKgDQor7Jik7JiB6riwDQor7Jik64+I7IiYDQor7Jik7Iic7JWUDQor7Jik7ZW06re8DQor7Jik67Cp6rOgDQor7Jik7YOc7Je0DQor7Jik7JuQ6re8DQor7Jik7ZW066eMDQor7Jik7ZWZ7J20DQor7Jik7JiB67aEDQor7Jik7J2Y7Je0DQor7Jik7ZW07LCsDQor7Jik7Jqp64+ZDQor7Jik7J6s6riwDQor7Jik64+Z7LKgDQor7Jik7ZeM7LKgDQor7Jik7JiB7YOdDQor7Jik66eQ7ZmNDQor7Jik7ZeM6rWQDQor7Jik7Zic7KCVDQor7Jik7Jyk7IicDQor7Jik7KO8656YDQor7Jik7JiB7J2EDQor7Jik7Zi47J20DQor7Jik6rSR6ri4DQor7Jik7ZWc7Zi4DQor7Jik7KSR6rWQDQor7Jik7Zi47LCsDQor7Jik7Iq57ZeMDQor7Jik7IOB7ISxDQor7Jik6riw656ADQor7Jik7ZmU7J6QDQor7Jik66y46riwDQor7Jik6rWQ7Zi4DQor7Jik7YOc7LKgDQor7Jik7ZmU7KeEDQor7Jik7KCQ7YOdDQor7Jik7KCV7ZmYDQor7Jik7IOB64+ZDQor7Jik7Zqo7J6sDQor7Jik7ZWc6rCRDQor7Jik7KeE7J24DQor7Jik66y47J20DQor7Jik7Z2l7Je0DQor7Jik7Jil7ZWcDQor7Jik7ZiE7Z2gDQor7Jik7Jqp6re8DQor7Jik7Z2s7IiZDQor7Jik7IK87ZmYDQor7Jik7Lap7LKcDQor7Jik6riw7Jq0DQor7Jil7Jyg67SJDQor7Jil7KCV7YyUDQor7Jil7J6s7KO8DQor7Jil7KKF656YDQor7JmV7YOc7Zi4DQor7JmV64+Z7IiZDQor7JmV67OR7IOBDQor7JmV7IOB7KCVDQor7Jqw64+E7Je0DQor7Jqw642V656ADQor7Jqw7LCs7Zi4DQor7Jqw64W47KGwDQor7Jqw66qF6rWsDQor7Jqw6re867O1DQor7Jqw6rWQ64yADQor7Jqw7IiY65OdDQor7Jqw67SJ7LKcDQor7Jqw7J2Y7IiYDQor7Jqw7KKF7LKgDQor7Jqw7JiB7ZiEDQor7Jqw7IOB7ISgDQor7Jqw65GQ7LKgDQor7Jqw64+E66qFDQor7Jqw7KCQ7JewDQor7Jqw7IOB7ISgDQor7Jqw7J6l7IiYDQor7Jqw7ZWc7JyoDQor7Jqw7Jqp6riwDQor7Jqw7IOB7IiYDQor7Jqw7Kad6rOkDQor7Jqw7ISx7Je0DQor7Jqw66ek7KO8DQor7Jqw7IOB7IiYDQor7Jqw64yA7IudDQor7Jqw7Jqp64KoDQor7Jqw6rec66qpDQor7Jqw7IOB7ZiEDQor7Jqw7KKF7YOcDQor7Jqw7KCV7J6QDQor7Jqw642V7KCcDQor7Jqw7ISd7KGwDQor7Jqw7Iic7J28DQor7Jqw7J6s7J6sDQor7Jqw7LC97IicDQor7Jqw7ISx6regDQor7Jqw67OR66+8DQor7Jqw7KeE7IiYDQor7Jqw67OR7Zi4DQor7Jqw7ISx7JqpDQor7Jqw7LC97Zi4DQor7Jqw7Jqp64yADQor7Jqw7KKF7JykDQor7Jqw7IS46re8DQor7Jqw7J6s66qFDQor7Jqw7Iic7ZmUDQor7Jqw6rK97IiZDQor7Jqw7IiY7JiBDQor7Jqw7ISg6rK9DQor7Jqw66eJ7IiYDQor7Jqw7IaM7KGwDQor7Jqw7IiY7ZWYDQor7Jqw7JiB6rWQDQor7Jqw6rec67O0DQor7Jqw7KKF7ZalDQor7Jqw7Iic66GADQor7Jqw7KKF7IigDQor7Jqw7J2867O1DQor7Jqw66eM7JilDQor7Jqw7Iuk7JqpDQor7Jqw7Jyk7IiYDQor7Jqw7KKF7IiYDQor7Jqw6rec7IiYDQor7Jqw7JiB66y4DQor7Jqw6re87IigDQor7Jqw7J6s7JiBDQor7Jqw7Jqp7JiBDQor7Jqw7JiB7YOcDQor7Jqw7KKF7KCQDQor7Jqw66y47ZeMDQor7Jqw7KKF7LCoDQor7Jqw7Jil6riwDQor7Jqw7IiY7J21DQor7Jqw6rCR7JqwDQor7Jqw7ZWE6recDQor7Jqw7JuQ7ZmYDQor7Jqw7Z2s7JWUDQor7Jqw7KCV7IudDQor7Jqw7KSR7Zi4DQor7Jqw7JyE7ISgDQor7Jqw66qF7IiYDQor7Jqw7Jqw7JWgDQor7Jqw7KKF7IicDQor7Jqw7J246rG4DQor7Jqw6reA7ZmUDQor7Jqw7Iic7IiZDQor7Jqw7Ja47ISgDQor7Jqw7J246rG4DQor7Jqw7KKF7Je0DQor7Jqw66qF7ZiEDQor7Jqw7IiY6raMDQor7Jqw7KCV7IicDQor7Jqw67KU7Je0DQor7Jqw7KeE7IukDQor7Jqw64+Z7ZmYDQor7Jqw7KCV7J6EDQor7Jqw66y47IiYDQor7Jqw66eM7YOcDQor7Jqw7JiB66qFDQor7Jqw7KKF6rOkDQor7Jqw7YOc6recDQor7Jqw7J6s66qoDQor7Jqw6rSR7IudDQor7Jqw7KKF67O0DQor7Jqw7ZmU7LKgDQor7Jqw67OR7ISdDQor7Jqw67OR7IStDQor7Jqw7KKF7Je0DQor7Jqw6rCR66y4DQor7Jqw6rCR7ZWYDQor7Jqw7J287ZmYDQor7Jqw7KKF7ZWEDQor7Jqw7ZmN7IudDQor7Jqw7Iic7IudDQor7Jqw7KeE6rOkDQor7Jqw7KKF7ZWZDQor7Jqw7J6s7JilDQor7Jqw7KSR66qpDQor7Jqw7Jik7KGwDQor7Jqw7KKF7ZmYDQor7Jqw7Iic7IiYDQor7Jqw66eM7IigDQor7Jqw7Zi47IiYDQor7Jqw7KKF7Z2sDQor7Jqw7J6s7ZmYDQor7Jqw7Jyk7ZW0DQor7Jqw7IOB66y4DQor7Jqw7KeE7Zi4DQor7Jqw7Jil7ISxDQor7Jqw7JiB7ISxDQor7Jqw6rO164KoDQor7Jqw7LC97ZqoDQor7Jqw66eM6riwDQor7Jqw7KKF7JykDQor7Jqw7IyN7JqpDQor7Jqw7LmY7ZmNDQor7Jqw64+Z66y4DQor7Jqw67SJ7KCVDQor7Jqw7KCQ7ZWZDQor7Jqw7YOc7IStDQor7Jqw67OR7IicDQor7Jqw7KKF7J6QDQor7Jqw7Jqp67O0DQor7Jqw7ZaJ7J6QDQor7Jqw7ZmN7KO8DQor7Jqw7IaM7ZiEDQor7Jqw7J287Zi4DQor7Jqw7ZmU7LaYDQor7Jqw7IOB7YOcDQor7Jqw7Iic64KoDQor7Jqw7J207IigDQor7Jqw7Z2s64+EDQor7Jqw7ZmN7IOdDQor7Jqw7KO87KKFDQor7Jqw7Jqw7ZiBDQor7Jqw7Z2s7KGwDQor7Jqw7ZWZ7IOBDQor7Jqw642V7IStDQor7Jqw7Zic7IiZDQor7JuQ7JiB7JilDQor7JuQ7Jew6recDQor7JuQ7ZuI6recDQor7JuQ7YOc7J6sDQor7JuQ7Jqp7KO8DQor7JuQ7ISx65OdDQor7JuQ7IOB6rOkDQor7JuQ7YOc6riIDQor7JuQ7KKF6ri4DQor7JuQ7JuQ656YDQor7JuQ67SJ656YDQor7JuQ7Iic7IiYDQor7JyE7ISx6riwDQor7JyE7Iic6recDQor7JyE7YyQ7Z2sDQor7JyE7ZiV642VDQor7Jyg6rCR7JqpDQor7Jyg7ZmU66qpDQor7Jyg6rec67aEDQor7Jyg7J216rWtDQor7Jyg6rCR7KeEDQor7Jyg7ZW064uoDQor7Jyg7IOB6re8DQor7Jyg7KKF7ISxDQor7Jyg6rK97IiYDQor7Jyg7ZiE7IusDQor7Jyg7J247ISgDQor7Jyg7Jqp7IudDQor7Jyg6rK97Je0DQor7Jyg7IOB7ISgDQor7Jyg7ZWc642VDQor7Jyg7LKc7LacDQor7Jyg6rK97J6sDQor7Jyg7J6l7IiZDQor7Jyg7Zic7Je0DQor7Jyg6rWQ7JmEDQor7Jyg6rK97J6sDQor7Jyg7KCV7IiYDQor7Jyg6reA66+4DQor7Jyg67aE7IudDQor7Jyg6rK97KKFDQor7Jyg7Z2s7J28DQor7Jyg7Iic7IudDQor7Jyg7J2Y7IiYDQor7Jyg6rK97YyUDQor7Jyg7ISd7ISgDQor7Jyg7IiZ7IiYDQor7Jyg7Zqo7LaYDQor7Jyg6rK97Z2sDQor7Jyg7LaY7ISgDQor7Jyg7Zic7ZmYDQor7Jyg7YyQ7IigDQor7Jyg6rOE7Je0DQor7Jyg7Iic7LKcDQor7Jyg7JiB7IicDQor7Jyg6rCR7ISdDQor7Jyg6rSR7Je0DQor7Jyg6rec7LacDQor7Jyg65GQ6rWsDQor7Jyg7IiY7Zi4DQor7Jyg6rSR7JqwDQor7Jyg7LaY66eMDQor7Jyg7YOc7ZW0DQor7Jyg64+Z64+ZDQor7Jyg6rSR7J21DQor7Jyg64us7IiYDQor7Jyg67OR7IOdDQor7Jyg7KCV7IudDQor7Jyg6rSR7J6QDQor7Jyg7KCV7ISdDQor7Jyg66eM656RDQor7Jyg7YyQ7Z2sDQor7Jyg6reA67aEDQor7Jyg64+Z7JikDQor7Jyg7J6s6re8DQor7Jyg67SJ7ZWEDQor7Jyg6reA7JewDQor7Jyg7Jqp7IiYDQor7Jyg6rK96regDQor7Jyg67OR64yADQor7Jyg6re867CwDQor7Jyg7J2Y64+ZDQor7Jyg6rK97KO8DQor7Jyg7J6s6re8DQor7Jyg6re87ISgDQor7Jyg67Cp7Zi4DQor7Jyg7KCV7J20DQor7Jyg7J6s7ISgDQor7Jyg6re87IudDQor7Jyg7J246raMDQor7Jyg7Z2s7ISgDQor7Jyg6riw7ISxDQor7Jyg6riw67KUDQor7Jyg7ISx7IiZDQor7Jyg7IOB7ISdDQor7Jyg7IiY7JuQDQor7Jyg6riw7J6sDQor7Jyg7ZmY7ZiVDQor7Jyg7YOc6re8DQor7Jyg64uk7IiYDQor7Jyg6ri464+MDQor7Jyg7KSR7KCVDQor7Jyg66eM67CwDQor7Jyg7Zi46raMDQor7Jyg64Ko7J6sDQor7Jyg7J287KCVDQor7Jyg7ZW07JewDQor7Jyg67SJ7Z2sDQor7Jyg64us7IiYDQor7Jyg7Iic7IiYDQor7Jyg7YOc6riwDQor7Jyg64+Z7IicDQor7Jyg64yA6re8DQor7Jyg7Jqp6rWsDQor7Jyg6riw7JWFDQor7Jyg6rG07LKgDQor7Jyg64yA6re8DQor7Jyg7LKt7Z2sDQor7Jyg64yA7ZmYDQor7Jyg7IOB7ZmYDQor7Jyg64yA66eMDQor7Jyg7JiB7IucDQor7Jyg7ISx7IiZDQor7Jyg7JiB7ISxDQor7Jyg64yA7JuQDQor7Jyg7KKF7ZGcDQor7Jyg7Iic6riwDQor7Jyg7JiB7IiYDQor7Jyg642V7ZmYDQor7Jyg65GQ7KCVDQor7Jyg6riw7ISgDQor7Jyg7J6s7ZmYDQor7Jyg642V7Z2sDQor7Jyg7Jik67CwDQor7Jyg7ZWZ67KUDQor7Jyg7Zi47ZiEDQor7Jyg64+Z7J28DQor7Jyg64us7IiYDQor7Jyg7LKt7IudDQor7Jyg66qF7JuFDQor7Jyg64+Z7J6sDQor7Jyg7ZiE7IiYDQor7Jyg7ZW064+MDQor7Jyg6rSR67SJDQor7Jyg64+Z7Z2sDQor7Jyg7Iic7ZuIDQor7Jyg7ZWc67SJDQor7Jyg7JiB7LmgDQor7Jyg65GQ7IudDQor7Jyg7KKF64+EDQor7Jyg66y47J6EDQor7Jyg64yA7Z2sDQor7Jyg65GQ7JewDQor7Jyg7IK87Zi4DQor7Jyg7Zi47YOdDQor7Jyg7Jil7ZiEDQor7Jyg65Od7ZmYDQor7Jyg6rCV7IiYDQor7Jyg7J287JuFDQor7Jyg66y07LCsDQor7Jyg66eM7IStDQor7Jyg64Ko64KoDQor7Jyg7Lmg6rWtDQor7Jyg6rec7ZmYDQor7Jyg66eM7J6sDQor7Jyg7Jqp7KCVDQor7Jyg67OR6riwDQor7Jyg7KKF7IS4DQor7Jyg66eQ7J6EDQor7Jyg64yA7ZW0DQor7Jyg7Jqp7IudDQor7Jyg7ZmN7Z2sDQor7Jyg66qF64yADQor7Jyg7J6s7Zi4DQor7Jyg7KeE64KoDQor7Jyg66y4642VDQor7Jyg66qF7Je0DQor7Jyg64+Z7JqwDQor7Jyg7ZiV7LC9DQor7Jyg7Jyk7J21DQor7Jyg66qF7J2YDQor7Jyg7JiB7Je0DQor7Jyg7KKF7J28DQor7Jyg7ZeM64KoDQor7Jyg66y07IOBDQor7Jyg6reA7JqwDQor7Jyg7ZeM7ZWEDQor7Jyg7LKg7Je0DQor7Jyg66y07ZWYDQor7Jyg7Jik6rK9DQor7Jyg7J6s7KCEDQor7Jyg67O17JiBDQor7Jyg66y47J6sDQor7Jyg66qF64+EDQor7Jyg7J6s7JesDQor7Jyg7Iuk7J6sDQor7Jyg66y47J6sDQor7Jyg7Iic7Z2sDQor7Jyg7J2Y7IiZDQor7Jyg7KCQ7ZmUDQor7Jyg66+47JiBDQor7JygIO2biA0KK+ycoOyDgeqyvQ0KK+ycoOuzkeyImA0KK+ycoOuvvOyekA0KK+ycoOyjvOqwkQ0KK+ycoO2DnO2DnA0KK+ycoOyInOu0iQ0KK+ycoOuwsOq3vA0KK+ycoOyYpOyIoA0KK+ycoOuPmeynhA0KK+ycoO2DgOumrA0KK+ycoOuzkeq0gA0KK+ycoOuPmeyImA0KK+ycoOyYgeuNlQ0KK+ycoOyerO2YhA0KK+ycoOuzkeq2jA0KK+ycoO2aqOyhsA0KK+ycoOyDgeyekA0KK+ycoOuNleyaqQ0KK+ycoOuzkeq3nA0KK+ycoOuqheq1rA0KK+ycoOu0ie2ajA0KK+ycoOuzte2drA0KK+ycoOuzkeq4uA0KK+ycoOq4sOyjvA0KK+ycoOyEseyLnQ0KK+ycoOuPmeyLnQ0KK+ycoOuzkeuMgA0KK+ycoOuMgOyImA0KK+ycoOyGjOyaqQ0KK+ycoOygkOyYgQ0KK+ycoOuzkeuNlQ0KK+ycoOygkOyEsQ0KK+ycoOyYgeycpA0KK+ycoOyEpOyImQ0KK+ycoOuzkeuRkA0KK+ycoOy2mOyYgQ0KK+ycoOykkeyhsA0KK+ycoOyDgeyihQ0KK+ycoOuzkeuemA0KK+ycoOqwkeyyoA0KK+ycoOyYgeunkA0KK+ycoOynhOyynA0KK+ycoOuzkeuhnQ0KK+ycoOyYge2YuA0KK+ycoO2YhOq3nA0KK+ycoOyYge2YuA0KK+ycoOuzkeustQ0KK+ycoOyduOykgA0KK+ycoOyxhOyEnQ0KK+ycoO2ZmOyImA0KK+ycoOuzkeustQ0KK+ycoOyYge2ctA0KK+ycoO2YhOyekA0KK+ycoOq3vOyaqQ0KK+ycoOuzkeusuA0KK+ycoOyCvOuemA0KK+ycoOyEoO2DnQ0KK+ycoOyehOq4uA0KK+ycoOuzkeuwsA0KK+ycoOustOyXtA0KK+ycoOyXsOuztQ0KK+ycoOq4sOygnA0KK+ycoOuzkeyEnQ0KK+ycoOyehOyImA0KK+ycoO2YuOq1kA0KK+ycoOyCvOynhA0KK+ycoOuzkeyErQ0KK+ycoO2YhOuPmQ0KK+ycoOyihe2VmQ0KK+ycoOyYge2YuA0KK+ycoOuzkeyImA0KK+ycoOy2mOuCqA0KK+ycoOygleyInA0KK+ycoOycpOq4uA0KK+ycoOuzkeyInA0KK+ycoOyaqeq3nA0KK+ycoOq4sOyLnQ0KK+ycoOyKueuegA0KK+ycoOuzkeyXtA0KK+ycoOygleqyvQ0KK+ycoOq4iO2MlA0KK+ycoOyImeybkA0KK+ycoOuzkeyYgQ0KK+ycoOuqheuhnA0KK+ycoOyYgeyXtA0KK+ycoOuzkeyYpQ0KK+ycoOuzkeyYpQ0KK+ycoOuPmeusuA0KK+ycoOywveyDnQ0KK+ycoOyaqe2ZqQ0KK+ycoOuzkeyZhA0KK+ycoOydke2drA0KK+ycoOyYgeyaqQ0KK+ycoOuNleuFgA0KK+ycoOuzkeyZuA0KK+ycoOyjvOqwkQ0KK+ycoOyYgeyInA0KK+ycoOyEuO2YuA0KK+ycoOuzkeyaqQ0KK+ycoOyInOyInA0KK+ycoO2DnO2YuA0KK+ycoOybkO2VnA0KK+ycoOuzkeybkA0KK+ycoOqyveyErQ0KK+ycoOyasOyErQ0KK+ycoO2drOyasQ0KK+ycoOuzkeybkA0KK+ycoOybkOuLrA0KK+ycoOyDgeyDgQ0KK+ycoOywqOusuA0KK+ycoOuzkeycpA0KK+ycoO2ZjeyVlA0KK+ycoOyImOyImA0KK+ycoOyEseuTnQ0KK+ycoOuzkeydgA0KK+ycoOq0keuMgA0KK+ycoO2DnOyXrA0KK+ycoOyerOyIoA0KK+ycoOuzkeydtA0KK+ycoOyYpeuwsA0KK+ycoOygleq4sA0KK+ycoOyEneumrA0KK+ycoOuzkeyjvA0KK+ycoO2XjOyekA0KK+ycoOyihe2ZmA0KK+ycoOyEneygnA0KK+ycoOuzkeyjvA0KK+ycoOuNleyLnQ0KK+ycoOyYgeyInA0KK+ycoOyaqeusuA0KK+ycoOuzkeyjvA0KK+ycoOy2mOyYgQ0KK+ycoOq3vOyEnQ0KK+ycoOuqheq3vA0KK+ycoOuzkeyyoA0KK+ycoOyDgeyImA0KK+ycoOyInOyaqQ0KK+ycoOyInOu0iQ0KK+ycoOuzkeyyoA0KK+ycoOyiheudvQ0KK+ycoOu2gOyYgQ0KK+ycoOygle2VmQ0KK+ycoOuzkey2nA0KK+ycoOyYgeyInA0KK+ycoOygleydvA0KK+ycoOyGjOuCqA0KK+ycoOuzkey2qQ0KK+ycoO2aqOyInA0KK+ycoOygleyImA0KK+ycoO2YuOqzpA0KK+ycoOuzke2DnA0KK+ycoOy5oOq3vA0KK+ycoOuMgOyyoA0KK+ycoO2MkOynhA0KK+ycoOuzke2DnQ0KK+ycoOuqheyEuA0KK+ycoOygleyEnQ0KK+ycoOyihe2ZmA0KK+ycoOuzke2VmA0KK+ycoOyDgeyImA0KK+ycoOydmOyjvA0KK+ycoOq1rOybkA0KK+ycoOuzke2YhA0KK+ycoOyYgeyImA0KK+ycoO2aqOq3oA0KK+ycoOqwkeuMgA0KK+ycoOuzke2YuA0KK+ycoOustOybkA0KK+ycoO2YhO2drA0KK+ycoOu0ieyDgQ0KK+ycoOuzke2YuA0KK+ycoOqyveyEoA0KK+ycoOyiheu0iQ0KK+ycoOyInOyekA0KK+ycoOuzke2biA0KK+ycoOyWkeyImQ0KK+ycoOyEse2ZmA0KK+ycoCDshJwNCivsnKDrtInrjZUNCivsnKDsiJzsm4UNCivsnKDsnZHtla0NCivsnKDrr7jshK0NCivsnKDrtInsi50NCivsnKDrj5nsi50NCivsnKDtlZnssL0NCivsnKDrj5nsoIQNCivsnKDsgrzsiJgNCivsnKDrqoXtjJANCivsnKDsiJzsiJkNCivsnKDqsr3qta0NCivsnKDsg4Hqt7wNCivsnKDsmKXsobANCivsnKDrkZDrs7UNCivsnKDrtInrnb0NCivsnKDsg4Hqt7wNCivsnKDsnKTsiJgNCivsnKDsnbzsmIENCivsnKDtg5ztmZQNCivsnKDsg4Hqt7wNCivsnKDqt5ztmZQNCivsnKDshLHsmqkNCivsnKDshLHqt5wNCivsnKDsg4HquLgNCivsnKDssL3rjZUNCivsnKDshLHsnbwNCivsnKDsoJXso7wNCivsnKDsg4HrjZUNCivsnKDssqDtg5wNCivsnKDsmqnshKANCivsnKDrj4Tsi50NCivsnKDsg4HsspwNCivsnKDsooXsi50NCivsnKDsmqntmZgNCivsnKDsooXsspwNCivsnKDsg4Htg5wNCivsnKDshKDspJENCivsnKDsoJDsiJgNCivsnKDsnbjtlZwNCivsnKDshJ3snqwNCivsnKDrrLjsmYQNCivsnKDtlZztlYQNCivsnKDrtInrrLgNCivsnKDshJ3snqwNCivsnKDrtInsi50NCivsnKDstqnqsr0NCivsnKDsp4Dsp4ANCivsnKDshJ3tmLgNCivsnKDshLHsmrQNCivsnKDsiJjsiJkNCivsnKDrs5HtlbQNCivsnKDshKDsnpANCivsnKDsmIHsi5wNCivsnKDsobDsiJgNCivsnKDsg4HsnpANCivsnKDshKDtg5wNCivsnKDsooXshJ0NCivsnKDspIDqtZANCivsnKDrtoTqtawNCivsnKDshLHsiJgNCivsnKDsooXqt7wNCivsnKDtg5ztlZwNCivsnKDquLDsiJgNCivsnKDshLHsnpANCivsnKDshKDsm5ANCivsnKDsp4Tri6wNCivsnKDqs4TtnawNCivsnKDshLHsnqwNCivsnKDsmbjsi50NCivsnKDsmqnqt7wNCivsnKDshLHsiJgNCivsnKDshLjroZ0NCivsnKDtg5zsm5ANCivsnKDslpHqt7wNCivsnKDsmIHqsbQNCivsnKDshozshKANCivsnKDsnqXrjZUNCivsnKDsiJjshKANCivsnKDsnbjqsr0NCivsnKDshozsiJwNCivsnKDssL3quLANCivsnKDrj5nqtowNCivsnKDsm5DsiJgNCivsnKDshqHsmKUNCivsnKDsiJzsmrENCivsnKDshLHtkZwNCivsnKDqsJHtmqgNCivsnKDsiJjrgqgNCivsnKDsiJztmZgNCivsnKDri6zspIANCivsnKDshozsnYANCivsnKDsiJnsnpANCivsnKDsnqzqtowNCivsnKDsmqnrj4QNCivsnKDsooXqtIANCivsnKDsiJntnawNCivsnKDsg4HsmKUNCivsnKDsi6DtmLgNCivsnKDstpjqsIENCivsnKDsiJzrj4QNCivsnKDsiJzsiJgNCivsnKDshJ3sg4ENCivsnKDtmITrj4wNCivsnKDsiJzsl7ANCivsnKDtg5zqtowNCivsnKDsnKTsoJUNCivsnKDsmIHrnpgNCivsnKDsiJzsnpANCivsnKDspp3smrQNCivsnKDquIjrrLQNCivsnKDtmZTsmIENCivsnKDsiJzsobANCivsnKDsnqzqsrANCivsnKDsiJztmIQNCivsnKDrjZXtg5wNCivsnKDsirnqtZANCivsnKDrtoTsmIENCivsnKDquLDro6ENCivsnKDsoJXtnawNCivsnKDsirntm4gNCivsnKDri6zqt7wNCivsnKDrs5HsiKANCivsnKDsooXsoJUNCivsnKDslZTsnbQNCivsnKDrr7jtnaANCivsnKDtmY3sm5ANCivsnKDssL3siJgNCivsnKDslaDsnpANCivsnKDrjIDsiJwNCivsnKDsoJXso7wNCivsnKDtmY3snbQNCivsnKDslaDtnawNCivsnKDsgrzshLENCivsnKDshLHtnawNCivsnKDsspzqtowNCivsnKDslpHqt7wNCivsnKDrqoXtg5wNCivsnKDshLHsiJgNCivsnKDslrjsg50NCivsnKDslrXsi50NCivsnKDsg4HrgqgNCivsnKDshLHtmIQNCivsnKDsoJXsiJkNCivsnKDsmIHqs4QNCivsnKDqs6Hssq0NCivsnKDssL3tlZgNCivsnKDsm5DtlZkNCivsnKDsmIHsiJgNCivsnKDshKDshLENCivsnKDrrLjtjJANCivsnKDsnYDqsJUNCivsnKDsmIHsiJwNCivsnKDshKDsnqwNCivsnKDsmKTssKwNCivsnKDrqoXroZ0NCivsnKDsmIHsnqwNCivsnKDsg4HspIANCivsnKDtlbTtjJANCivsnKDsmrDsp4QNCivsnKDsmIHtjJQNCivsnKDsoJXrgqgNCivsnKDrrLTtnawNCivsnKDrr7jrnoANCivsnKDsmqnqtawNCivsnKDtg5ztlZkNCivsnKDsg4HqtawNCivsnKDrtInsoJUNCivsnKDsmqnqtawNCivsnKDso7ztmZQNCivsnKDsooXtlZkNCivsnKDrqoXtmLgNCivsnKDsmqnrspQNCivsnKDquLDsoJUNCivsnKDrs7TsmqkNCivsnKDspJHrj5kNCivsnKDsmqnshKANCivsnKDshLHspIANCivsnKDtlZjqta0NCivsnKDsiJjsiJgNCivsnKDsmqnsiJgNCivsnKDrj4Trs7UNCivsnKDsooXtmZgNCivsnKDsmIHsiJwNCivsnKDsmqnsi50NCivsnKDsnbztg5wNCivsnKDsmqnshKANCivsnKDsoJXtg5wNCivsnKDsmqnsnqwNCivsnKDsoJXtmIQNCivsnKDrgqjqtZANCivsnKDsuaDsobANCivsnKDsmqnsobANCivsnKDsiJzsmYQNCivsnKDsnqzrnpgNCivsnKDrtoTqtowNCivsnKDsmrDquLgNCivsnKDsooXshJ0NCivsnKDsoJXsp4QNCivsnKDsiJztmIQNCivsnKDsmrTsmIENCivsnKDsoJXroZ0NCivsnKDrj5nqs6QNCivsnKDsg4Hrj4QNCivsnKDsm5Dqt7wNCivsnKDsp4TtmLgNCivsnKDrs5HsnqwNCivsnKDtlZzsgrwNCivsnKDsm5DsnbwNCivsnKDsnqzsnKQNCivsnKDsnbTrtIkNCivsnKDrj5nruYgNCivsnKDsm5DstpwNCivsnKDqt5zsp4QNCivsnKDsooXtmLgNCivsnKDsmqnrqqkNCivsnKDsm5DtmLgNCivsnKDsiJzrgqgNCivsnKDsoJXtg5wNCivsnKDsnYTtnJgNCivsnKDsm5Tsi50NCivsnKDrjZXrkZANCivsnKDtlYTshKANCivsnKDrr7zsoJUNCivsnKDsnITsg4ENCivsnKDsnZjso7wNCivsnKDsnqzrp4wNCivsnKDsmIHssqANCivsnKDsnKTsg4ENCivsnKDstpjstpgNCivsnKDtlZnshJ0NCivsnKDsmIHrgqgNCivsnKDsnKTsnqwNCivsnKDrs5HrnpgNCivsnKDsoJXsnoQNCivsnKDsl7DsmrANCivsnKDsnYDshKANCivsnKDtg5zsiJgNCivsnKDqtJHshLgNCivsnKDrqoXslrgNCivsnKDsnYDsoIQNCivsnKDsm5DshJ0NCivsnKDrp4ztmLgNCivsnKDsnKTsi50NCivsnKDsnYDsoJUNCivsnKDssL3so7wNCivsnKDsnqztmLgNCivsnKDsoJXtm4gNCivsnKDsnYDsp4QNCivsnKDsoJDrjZUNCivsnKDsmqnqt7wNCivsnKDsoJXtmLgNCivsnKDsnYTsiJgNCivsnKDtg5zrp4wNCivsnKDsnKDqs6QNCivsnKDsiJjrs5ENCivsnKDsnYTtnawNCivsnKDsg4Htg5wNCivsnKDrrLTsmKUNCivsnKDtla3snbQNCivsnKDsnbjrtIkNCivsnKDsg4Hsm4UNCivsnKDrs5HquLgNCivsnKDsnqzsmKQNCivsnKDsnbjsnqwNCivsnKDrrLjtmZgNCivsnKDquIjsiJwNCivsnKDspIDshLENCivsnKDsnbzshLENCivsnKDsmIHtmLgNCivsnKDrjIDtg50NCivsnKDshLHquLANCivsnKDsnbzshLENCivsnKDsooXsiJkNCivsnKDquLjspJENCivsnKDsnqzsmqkNCivsnKDsnbzshLENCivsnKDsg4Htm4gNCivsnKDsmIHqt5wNCivsnKDsm5Dtm4gNCivsnKDsnqXrpqwNCivsnKDtmZjsm4UNCivsnKDsoJXqta0NCivsnKDqt6DsiKANCivsnKDsnqzqsqwNCivsnKDshJ3qtawNCivsnKDsg4HsiJgNCivsnKDsg4HsoJUNCivsnKDsnqzqs6QNCivsnKDtg5zsi50NCivsnKDsiJjsiJgNCivsnKDsnYDqt7wNCivsnKDsnqzqt7wNCivsnKDsi53qsJENCivsnKDrr7jrp4wNCivsnKDsiJzsnpANCivsnKDsnqzrj4QNCivsnKDssL3tmLgNCivsnKDsmIHstpwNCivsnKDsg4HsmrANCivsnKDsnqzrk7ENCivsnKDtlYTsp4QNCivsnKDrgqjrp4wNCivsnKDsmrTtmIQNCivsnKDsnqzrp4wNCivsnKDsnqztm4gNCivsnKDsmqnsm5ANCivsnKDtg5zri6wNCivsnKDsnqzsgqwNCivsnKDsnqzsooUNCivsnKDtmZTtnawNCivsnKDsnbzsmrQNCivsnKDsnqzshKANCivsnKDtjJDqt6ANCivsnKDssq3tg5wNCivsnKDsoJXsl7ANCivsnKDsnqzshKANCivsnKDtmLjslZQNCivsnKDsiJjrs7UNCivsnKDsmKXsl7QNCivsnKDsnqzshLENCivsnKDrp4zsl7QNCivsnKDsm5Tsl70NCivsnKDsiJztg5wNCivsnKDsnqzsiJgNCivsnKDsmIHsobANCivsnKDsiJjrspQNCivsnKDsnqztg5wNCivsnKDsnqzsiJgNCivsnKDssL3soJANCivsnKDsmIHsiJgNCivsnKDsnZHssKwNCivsnKDsnqzsmIENCivsnKDsoJXsp4QNCivsnKDsgrzsl7ANCivsnKDsoJXrp4wNCivsnKDsnqzsmIENCivsnKDsooXsm5ANCivsnKDsmqnsoJUNCivsnKDstqnsnpANCivsnKDsnqzsmqkNCivsnKDrj5nsiJgNCivsnKDsnqzsiKANCivsnKDsoJXri6wNCivsnKDsnqzsm4UNCivsnKDso7zrsLANCivsnKDso7zsnbwNCivsnKDsmrDrsLANCivsnKDsnqzssqANCivsnKDsnbjqsr0NCivsnKDrqoXshJ0NCivsnKDtmLjsnpANCivsnKDsnqztmLgNCivsnKDsmIHrtIkNCivsnKDrjZXstpwNCivsnKDsl7DtnawNCivsnKDsnqztmLgNCivsnKDsooXsm5ANCivsnKDssL3tg5wNCivsnKDquLDsobANCivsnKDsnqztmY0NCivsnKDtmY3si50NCivsnKDsgqzsiJgNCivsnKDsnqzsnqwNCivsnKDsnqztmowNCivsnKDsg4HqtIANCivsnKDsg4HrnoANCivsnKDqs4TsiJgNCivsnKDsnqztm4gNCivsnKDsnYTshKANCivsnKDsg4HsiJwNCivsnKDrgqjsiJkNCivsnKDsnqztm4gNCivsnKDsoJXsi50NCivsnKDssqDsi50NCivsnKDsoJXqs4QNCivsnKDsnqztm4gNCivsnKDsnbjspIANCivsnKDqsJXsmIENCivsnKDsoJXrjZUNCivsnKDsoJDrtoQNCivsnKDrsLHrj4QNCivsnKDsg4HtmLgNCivsnKDssL3tg50NCivsnKDsoJDtg5wNCivsnKDsi6DsmrENCivsnKDrrLjsiJgNCivsnKDrjIDrjZUNCivsnKDsoJXqsr0NCivsnKDshLHrj4QNCivsnKDsmIHrs5ENCivsnKDtmY3tlZwNCivsnKDsoJXqt7wNCivsnKDqta3shLENCivsnKDsnqzsooUNCivsnKDsnKTtmIQNCivsnKDsoJXrj4QNCivsnKDsnbzsmIENCivsnKDsnqzqs6QNCivsnKDssL3sooUNCivsnKDsoJXsi50NCivsnKDqtJHsm5ANCivsnKDqsr3tmIQNCivsnKDquLDrj5kNCivsnKDsoJXsi50NCivsnKDslpHqtowNCivsnKDtlZzsi50NCivsnKDsmIHsmqkNCivsnKDsoJXsi50NCivsnKDtg5zsi50NCivsnKDsnbXsooUNCivsnKDssKjtlZwNCivsnKDsoJXsnpANCivsnKDsnYDsm5ANCivsnKDsmIHsnbQNCivsnKDqsr3tg5wNCivsnKDsoJXsnqwNCivsnKDrj5nsm4UNCivsnKDsooXtmIQNCivsnKDqsr3sl7ANCivsnKDsoJXtmZQNCivsnKDrs7Xsi50NCivsnKDrs7TquLANCivsnKDsmIHrjIANCivsnKDsoJzsl7ANCivsnKDrjIDtmLgNCivsnKDsm5DtmLgNCivsnKDrgpjqta0NCivsnKDsoJzstpgNCivsnKDsnoTsl7QNCivsnKDrp5DsmYQNCivsnKDrs5Hqs6QNCivsnKDsoJztmLgNCivsnKDsmrDsmrENCivsnKDtg5ztg50NCivsnKDrj5ntmLgNCivsnKDsooXqtbANCivsnKDsmIHtmJUNCivsnKDquLDsooUNCivsnKDsmKXqt7wNCivsnKDsooXsiJgNCivsnKDrs5HtlYQNCivsnKDqtJHtmIQNCivsnKDtg5zrgpwNCivsnKDsooXsi50NCivsnKDsnqXrtIkNCivsnKDshLHsobANCivsnKDssKjstpwNCivsnKDsooXspJENCivsnKDsiJzrjZUNCivsnKDrs7XqsJENCivsnKDsiJzstpgNCivsnKDsooXtmIQNCivsnKDsmKXsl7QNCivsnKDshJ3smrQNCivsnKDtg5zsiJgNCivsnKDsp4DtmLgNCivsnKDsgrzsmIENCivsnKDsg4HqtawNCivsnKDsuZjrp4wNCivsnKDsp4Tqt7wNCivsnKDsnqztnawNCivsnKDsmIHrs7UNCivsnKDsm5Tsi50NCivsnKDssKjshJ0NCivsnKDrs5HtmLgNCivsnKDquLDsnbQNCivsnKDtmITsl7wNCivsnKDssKjshKANCivsnKDtlZnsiJwNCivsnKDqtJHtm4gNCivsnKDsnZHsi50NCivsnKDssL3qt7wNCivsnKDsmIHsnbQNCivsnKDsooXquLANCivsnKDsiJjtkZwNCivsnKDstpjsmIENCivsnKDrs5HsiJwNCivsnKDrtInrhbgNCivsnKDssqDsi5wNCivsnKDstpjsnpANCivsnKDsooXsi6QNCivsnKDsmqnsobANCivsnKDrj4Tsp4QNCivsnKDsuaDsmqkNCivsnKDsgrzsm5ANCivsnKDsnbjsnpANCivsnKDrs5HshK0NCivsnKDtg5zshKANCivsnKDssL3smqkNCivsnKDsnbjsl7QNCivsnKDssqDsnbwNCivsnKDtg5zsiJgNCivsnKDrj5nrjIANCivsnKDsnKTsl7ANCivsnKDtmJztmLgNCivsnKDtg5zsooUNCivsnKDssqDsmIENCivsnKDsnKTssqANCivsnKDshLHrs7QNCivsnKDtjJDsmKQNCivsnKDsirnsm5ANCivsnKDrjZXssqANCivsnKDquIjsiJgNCivsnKDtlYTsnbQNCivsnKDsnbjqt7wNCivsnKDtmITsmIENCivsnKDsnqzsnKQNCivsnKDtlZzsg4ENCivsnKDsp4DslZQNCivsnKDsnbjrjZUNCivsnKDtnazsiJwNCivsnKDtlZzsi50NCivsnKDshLHqtawNCivsnKDsp4TsmIENCivsnKDrs5HtlZkNCivsnKDtlZzsl7QNCivsnKDqsJztmY0NCivsnKDsooXsg4ENCivsnKDquLDrj4wNCivsnKDtlZzsooUNCivsnKDspIDsiJgNCivsnKDrj5nsmqkNCivsnKDsiJjsi6QNCivsnKDtlbTrhYQNCivsnKDssqDsooUNCivsnKDtmZTtmZgNCivsnKDsg4Htg50NCivsnKDtlbTsmrQNCivsnKDsooXsiJwNCivsnKDssL3ssq0NCivsnKDslpHtnawNCivsnKDtlbTsoJUNCivsnKDrp4jtlZgNCivsnKDssKjqtowNCivsnKDssqDrs7UNCivsnKDtlbTspIANCivsnKDsuZjsiJwNCivsnKDqt7zqt5wNCivsnKDsoJXsiJkNCivsnKDtlonsp4ANCivsnKDsmIHsiJgNCivsnKDqsr3rs5ENCivsnKDrjIDsiJgNCivsnKDtl4zsi50NCivsnKDrtInssqANCivsnKDsnbzsiJgNCivsnKDsoJXsiJgNCivsnKDtmITsi50NCivsnKDtmqjtg50NCivsnKDssKzsm4UNCivsnKDsp4DtlZwNCivsnKDtmITtmLgNCivsnKDtmJXtmLgNCivsnKDquLDsnqwNCivsnKDrp5Drj5kNCivsnKDtmY3qt7wNCivsnKDsmIHqtZANCivsnKDquLDsiJkNCivsnKDsmqntl4wNCivsnKDtmY3snqwNCivsnKDsiJjsooUNCivsnKDspJHsnbQNCivsnKDtlbTri6wNCivsnKDtmZTsm4UNCivsnKDsspzqs6QNCivsnKDsmIHsmrANCivsnKDsmbjqt7wNCivsnKDtmqjrjZUNCivsnKDquIjsi50NCivsnKDrjZXqtIANCivsnKDsmqnsobANCivsnKDtmqjshKANCivsnKDsoJXqt4ANCivsnKDqtJHsmrANCivsnKDsmIHsiJgNCivsnKDtm4Tqt7wNCivsnKDsoJDrtIkNCivsnKDsmIHrj4QNCivsnKDsp4TsooUNCivsnKDtnJjshKANCivsnKDrj5nsmrENCivsnKDsnqzsi50NCivsnKDroZ3qt5wNCivsnKDtnaXqtIANCivsnKDsmIHsiJwNCivsnKDsmIHsnpANCivsnKDssqDqsr0NCivsnKDtnaXquLANCivsnKDrtoTrnpgNCivsnKDsnbXsiJwNCivsnKDrs5HsiJgNCivsnKHrrLTsm4UNCivsnKHshLHshJ0NCivsnKHrj5ntmIQNCivsnKHsp4TspJENCivsnKHsooXqt7wNCivsnKHstqnrs7UNCivsnKHsmIHqt5wNCivsnKHrrLTsiJgNCivsnKHsooXrjIANCivsnKHshJ3snbUNCivsnKHshLHsnbwNCivsnKHqt4Dqt7wNCivsnKHtnazsiJkNCivsnKHsnZjspIANCivsnKHsnqztkZwNCivsnKHqt5zsmrANCivsnKQg7IicDQor7Jyk6riw7IStDQor7Jyk6rSR7Zy0DQor7Jyk7ZmU7Je0DQor7Jyk6rCR7IicDQor7Jyk6rCV6rCcDQor7Jyk7KKF6rWwDQor7Jyk7KKF7ZWcDQor7Jyk6rK967O1DQor7Jyk7Jqp66GdDQor7Jyk7Jqp6rWtDQor7Jyk7YyU7JewDQor7Jyk6rK97IudDQor7Jyk7KCV65OxDQor7Jyk6riI7LKgDQor7Jyk7IiY64WEDQor7Jyk6rK97KGwDQor7Jyk7ZeM7Zi4DQor7Jyk7KCV7J6sDQor7JykIOyImA0KK+ycpOqyve2YuA0KK+ycpOuqheq4sA0KK+ycpOyynO2ZmA0KK+ycpOyEpO2DnA0KK+ycpOqyve2drA0KK+ycpOyjvOyYpQ0KK+ycpOywqOyEoA0KK+ycpOy2mOyEnQ0KK+ycpOqzhOyXsA0KK+ycpOyEuOyEoA0KK+ycpO2VtOyekA0KK+ycpOu0ieyDgQ0KK+ycpOqzteybkA0KK+ycpOuCmeq3nA0KK+ycpOuqhe2dpQ0KK+ycpOyVoO2ZmA0KK+ycpOq0gOyLnQ0KK+ycpO2DnO2YhA0KK+ycpO2VtOyasA0KK+ycpOyduO2VmQ0KK+ycpOq0keq4sA0KK+ycpOqzhOykgA0KK+ycpOuqheyEoA0KK+ycpOyDgeyhsA0KK+ycpOq2jOyLnQ0KK+ycpOq4iOq4sA0KK+ycpOuLrOyyoA0KK+ycpOyEoOyaqQ0KK+ycpOq2jOyglQ0KK+ycpOyYgeq4sA0KK+ycpOygkOywvQ0KK+ycpO2DnOywrA0KK+ycpOq3gOyXsA0KK+ycpOyaqe2VmQ0KK+ycpOyepeybkA0KK+ycpOqzhOyIoA0KK+ycpOq3nOyYgQ0KK+ycpOyasOyYgQ0KK+ycpOy2mOq1rA0KK+ycpOyWkeynhA0KK+ycpOq3nOyYgQ0KK+ycpOq4iOyLnQ0KK+ycpOyerOyImA0KK+ycpOywveq3nA0KK+ycpOq3vOunjA0KK+ycpOyEoO2DnA0KK+ycpOq0keyhsA0KK+ycpO2YuOqzhA0KK+ycpOq3vOyImA0KK+ycpOygleyEoA0KK+ycpOy2mOyXsA0KK+ycpOyerO2ZmA0KK+ycpOq4iOyEoA0KK+ycpOyjvO2DnQ0KK+ycpO2DnOyLnQ0KK+ycpOy2mOq3nA0KK+ycpOq4iOyLnQ0KK+ycpOyiheq4sA0KK+ycpOyYgeuztA0KK+ycpOyXsOyLpA0KK+ycpOq4sOuNlQ0KK+ycpOyInOq1rA0KK+ycpOyngO2VtA0KK+ycpOqyveq1kA0KK+ycpOq4sOyXsA0KK+ycpOuqhe2ZqQ0KK+ycpOynhO2ZmA0KK+ycpOygleq4sA0KK+ycpOq4sOybkA0KK+ycpOyInOq3vA0KK+ycpOq4sO2DnA0KK+ycpOyLrOyYgQ0KK+ycpOq4uOq4sA0KK+ycpOycpOydvA0KK+ycpOyYgeumrA0KK+ycpOuzke2YuA0KK+ycpOuCqOq4sA0KK+ycpOyYgeyjvA0KK+ycpOyerOydtA0KK+ycpOyiheq4uA0KK+ycpOuCqOyLnQ0KK+ycpOyaqeq4uA0KK+ycpOybkOydvA0KK+ycpOuTneufiQ0KK+ycpOuMgOyYgQ0KK+ycpOyerOuvuA0KK+ycpOyaqeusuA0KK+ycpOyDge2YuA0KK+ycpOuMgO2YhA0KK+ycpOuzuOyXsA0KK+ycpO2YgeuylA0KK+ycpOyLpOywrA0KK+ycpOuNleq4sA0KK+ycpOuzkeywvQ0KK+ycpOy2mOykgA0KK+ycpOyImOygkA0KK+ycpOuNleykgA0KK+ycpOyYge2YuA0KK+ycpOyaqeybkA0KK+ycpOuNle2YuA0KK+ycpOuPhOq3oA0KK+ycpOyGjOybkA0KK+ycpOyYgeyihQ0KK+ycpO2dpeywvQ0KK+ycpOuPhO2ZmA0KK+ycpOyYgeuztA0KK+ycpOyImO2YgQ0KK+ycpOyImOq4sA0KK+ycpOuPhO2drA0KK+ycpOu0ieyKuQ0KK+ycpOyViOyyoA0KK+ycpOyYpeu0iQ0KK+ycpOuPmeyLnQ0KK+ycpOuhgOq3oA0KK+ycpOygkOuCqA0KK+ycpOyerOyLnQ0KK+ycpOuPme2ZmA0KK+ycpOyYpeykkQ0KK+ycpOywve2YuA0KK+ycpOybheu0iQ0KK+ycpOuRkOq4sA0KK+ycpOuwqeuPmQ0KK+ycpOydgO2VmQ0KK+ycpOyihe2cmA0KK+ycpOuRkOyXsA0KK+ycpOyiheyyoA0KK+ycpO2VtOq3nA0KK+ycpOyYpeu0iQ0KK+ycpOuqheq1rQ0KK+ycpOygleyyoA0KK+ycpOyjvOyLnQ0KK+ycpO2XjOq4sA0KK+ycpOuqheq4sA0KK+ycpOygle2drA0KK+ycpOyDgeyImA0KK+ycpOuzke2drA0KK+ycpOuqqOyehA0KK+ycpO2Zje2DnQ0KK+ycpOyDgeyXtA0KK+ycpOustOyImA0KK+ycpOusuOq1rA0KK+ycpOydvO2drA0KK+ycpOuvuO2ZmA0KK+ycpOuPhOuMgA0KK+ycpOusuOq4sA0KK+ycpOyImOq3oA0KK+ycpOydhO2YuA0KK+ycpOyehO2biA0KK+ycpOusuOyYgQ0KK+ycpO2DnOq3nA0KK+ycpO2DnOuCqA0KK+ycpOq4sOyyoA0KK+ycpOuzkeq0gA0KK+ycpOunkO2YhA0KK+ycpOq3oO2YuA0KK+ycpOu0ieu0iQ0KK+ycpOuzkeq1rQ0KK+ycpOuLrOuPmQ0KK+ycpOunjOydvA0KK+ycpO2YuOyIoA0KK+ycpOuzkeq4iA0KK+ycpOuCqOu2hA0KK+ycpOyCvOq4sA0KK+ycpOyduOyyoA0KK+ycpOuzkeq4sA0KK+ycpOyEseyInA0KK+ycpOu0ieyEnQ0KK+ycpOq2jOyLnQ0KK+ycpOuzkeq4sA0KK+ycpOuqhe2VmQ0KK+ycpOynhOycpA0KK+ycpOyEse2ZmA0KK+ycpOuzkeq4uA0KK+ycpOyduOq1rQ0KK+ycpOyerOq3oA0KK+ycpOyiheuwsA0KK+ycpOuzkeq4uA0KK+ycpOyEseybhQ0KK+ycpOyYgeqwkQ0KK+ycpOyduOyEoA0KK+ycpOuzkeuFuA0KK+ycpOyDgeyhsA0KK+ycpOyInOybkA0KK+ycpOuNle2VnA0KK+ycpOuzkeunjA0KK+ycpOyImOyXsA0KK+ycpOuCmeyEnQ0KK+ycpOusuOustQ0KK+ycpOuzkeyErQ0KK+ycpOuqheybkA0KK+ycpOyEneqwlQ0KK+ycpOuzkeqyvQ0KK+ycpOuzkeyasQ0KK+ycpOyynOyCvA0KK+ycpOyaqe2drA0KK+ycpOuzkeq4sA0KK+ycpOuzkeyehQ0KK+ycpOuvvO2ZlA0KK+ycpOuzkeq1rQ0KK+ycpOyerOyyoA0KK+ycpOuzkeyhsA0KK+ycpOykkeyEoA0KK+ycpOusuOq4sA0KK+ycpOyduOq3nA0KK+ycpOuzkeyynA0KK+ycpOq0ke2drA0KK+ycpOyehO2DnQ0KK+ycpOygle2ZjQ0KK+ycpOuzke2YgQ0KK+ycpOyerO2doA0KK+ycpOyiheyInA0KK+ycpOyerOyyoA0KK+ycpOuzke2ZlA0KK+ycpOq4sOq2jA0KK+ycpOyDgeyaqQ0KK+ycpOyEseydmA0KK+ycpOuztOyImA0KK+ycpOyYge2YuA0KK+ycpOyCvO2YhA0KK+ycpOyImOyLnQ0KK+ycpOuzteyaqQ0KK+ycpOyiheyEsQ0KK+ycpOyCvOy2nA0KK+ycpOygleuPmQ0KK+ycpOu0iey2mA0KK+ycpOyYge2YhA0KK+ycpOykgOyEnQ0KK+ycpOyYgeyihQ0KK+ycpOu2hOuNlQ0KK+ycpOycqOyglQ0KK+ycpOygleykkQ0KK+ycpOuCqO2XjA0KK+ycpOu2hOyVhQ0KK+ycpOygleq1rQ0KK+ycpOuzteyekA0KK+ycpOuMgO2YuA0KK+ycpOu2hOyhsA0KK+ycpOyGkOqyvQ0KK+ycpOynhOyaqQ0KK+ycpO2Zje2DnA0KK+ycpOyCvOyImA0KK+ycpOyMje2VmQ0KK+ycpOunpOq4iA0KK+ycpOyaseyDnQ0KK+ycpOyCvOyInA0KK+ycpOyjvOq4uA0KK+ycpOyEse2aqA0KK+ycpOyEseyXtA0KK+ycpOyCvOyVlA0KK+ycpOu0ie2ZmA0KK+ycpOybkOyEsQ0KK+ycpOyImOuPmQ0KK+ycpOyDgeq4sA0KK+ycpOuPmeycpA0KK+ycpOyKue2YuA0KK+ycpO2YuOybkA0KK+ycpOyDgeuFuA0KK+ycpOyEneyYpQ0KK+ycpO2DnOydtA0KK+ycpOustOydtA0KK+ycpOyDgeusuA0KK+ycpOyYgeuztQ0KK+ycpOygle2YuA0KK+ycpOyInOyInA0KK+ycpOyDge2YuA0KK+ycpOyXsOqwlQ0KK+ycpO2ZqeyasA0KK+ycpOuCqOyErQ0KK+ycpOyEneq4sA0KK+ycpOyerO2YhA0KK+ycpOyYpOydvA0KK+ycpOunkOyaqQ0KK+ycpOyEneyVlA0KK+ycpOygleyynA0KK+ycpOygleyXtA0KK+ycpOq3ueyDgQ0KK+ycpOyEneyaqQ0KK+ycpO2DnOuegA0KK+ycpOyerOq3vA0KK+ycpOyZuOyEuA0KK+ycpOyEneyjvA0KK+ycpOuylO2VmA0KK+ycpOyerO2ajA0KK+ycpO2DnOyXtA0KK+ycpOyEneywrA0KK+ycpOyCvO2YuA0KK+ycpOq4sOyasA0KK+ycpOyihe2ZlA0KK+ycpOyEne2VnA0KK+ycpOyDge2ZmA0KK+ycpOydtOuTnQ0KK+ycpOyYgeq4sA0KK+ycpOyImOq4sA0KK+ycpOuzteyYpQ0KK+ycpOyYge2YuA0KK+ycpOyCrOu2hA0KK+ycpOyImOybkA0KK+ycpOqwleyVhQ0KK+ycpOuPmeyLnQ0KK+ycpOyaqeuqhQ0KK+ycpOyImO2VnA0KK+ycpOyImOyyrQ0KK+ycpOq4sOyEsQ0KK+ycpO2DnO2YhA0KK+ycpOyImeyekA0KK+ycpO2DnOynhA0KK+ycpOyepeyEnQ0KK+ycpO2YhOyaqQ0KK+ycpOyInOydtA0KK+ycpOq4sO2DnQ0KK+ycpOyEseywvQ0KK+ycpOu2hO2ZjQ0KK+ycpOyInOyhsA0KK+ycpOyYgeqwgQ0KK+ycpOyerOyIoA0KK+ycpO2DneydtA0KK+ycpOyInO2VmQ0KK+ycpOyYpOq2jA0KK+ycpOq3nOyImA0KK+ycpOq4sO2DnA0KK+ycpOyInO2ZqQ0KK+ycpOyerOyasA0KK+ycpO2ZjeyXsA0KK+ycpOynhO2VmQ0KK+ycpOyLoOyYpA0KK+ycpO2bhOyasA0KK+ycpOq3vOywqA0KK+ycpOuvuOuztQ0KK+ycpOyLpOqyvQ0KK+ycpOygkOq4sA0KK+ycpOqyveyImA0KK+ycpOyDge2YuA0KK+ycpOyWuOq4sA0KK+ycpOyjvOuMgA0KK+ycpOyYpeyjvA0KK+ycpOyYgeq4uA0KK+ycpOyWuOyjvA0KK+ycpOuztOuegA0KK+ycpOyDgeq4uA0KK+ycpOuTse2doA0KK+ycpOyYgeq1rQ0KK+ycpOuzkeuPmQ0KK+ycpOyaqeydvA0KK+ycpOyYpeybhQ0KK+ycpOyYgeyImQ0KK+ycpOqwke2ZmA0KK+ycpOywveqyvQ0KK+ycpOyLoOyYgQ0KK+ycpOyYgeyehA0KK+ycpOyEseyInA0KK+ycpO2Zje2drA0KK+ycpO2VmeuhgA0KK+ycpOyYgeyekA0KK+ycpOygle2ZmA0KK+ycpOyYpOuCqA0KK+ycpOyepe2YuA0KK+ycpOyYgeyxhA0KK+ycpOyYgeybhQ0KK+ycpOuNleyInA0KK+ycpOyEne2ZmA0KK+ycpOyYge2ZlA0KK+ycpOykke2YuA0KK+ycpOyEseyEnQ0KK+ycpOu0ieyehA0KK+ycpOyYge2drA0KK+ycpOyImOydtQ0KK+ycpOq4sOqzpA0KK+ycpOygleq3oA0KK+ycpOyYge2drA0KK+ycpOyYgeuqqA0KK+ycpOyXsOyDnQ0KK+ycpOyImeq1rA0KK+ycpOyYpeyInA0KK+ycpOq1reyImA0KK+ycpOy2mOyXhQ0KK+ycpOyKueyEnQ0KK+ycpOyaqeq0gA0KK+ycpCDquLANCivsnKTsnqzssqANCivsnKTrjZXqta0NCivsnKTsmqnqt7wNCivsnKTsp4DqsrANCivsnKTsgqzstpwNCivsnKTsmIHsiJwNCivsnKTsmqnsiJgNCivsnKTsiKDtg5wNCivsnKTsg4Hrs7UNCivsnKTsspzrn4kNCivsnKTsm5Dsi50NCivsnKTrtInsm4UNCivsnKTsp4TspIANCivsnKTsmqnsnqwNCivsnKTsm5Dsi50NCivsnKTsiJjsnqwNCivsnKTsnqzsmKUNCivsnKTsmqnqt5wNCivsnKTsm5Trp4wNCivsnKTrj5nsl7ANCivsnKTsmKXssL0NCivsnKTsoJDtmZgNCivsnKTsnYTsiJgNCivsnKTsiJjsm5ANCivsnKTsmqnsnpANCivsnKTrtInquLANCivsnKTsnZjsm4UNCivsnKTsi6TssqANCivsnKTsnbzrj5kNCivsnKTsoJXtnawNCivsnKTsnbTsiJgNCivsnKTsmIHtmLgNCivsnKTsnYTsnqwNCivsnKTsgrzsiJwNCivsnKTsnbjshK0NCivsnKTtlbTqtawNCivsnKTrp4zsm5ANCivsnKTsmqnrj4wNCivsnKTsnbzsi50NCivsnKTshKDtmLgNCivsnKTrj5nsl7QNCivsnKTsooXsi50NCivsnKTsnbzsi50NCivsnKTssq3sl7QNCivsnKTtla3siJgNCivsnKTrp4zqs6QNCivsnKTsnbzsmIENCivsnKTsgrzshLENCivsnKTsooXshK0NCivsnKTqtIDtmqgNCivsnKTsnoTsiJwNCivsnKTrrLjtlZgNCivsnKTrhbjssqANCivsnKTsiJjtmZgNCivsnKTsnqzquLANCivsnKTrj5nrs7UNCivsnKTshLHtmLgNCivsnKTqsr3shKANCivsnKTsnqzshLENCivsnKTsmqnrqqgNCivsnKTsmIHsiJgNCivsnKTsmIHsi50NCivsnKTsoJDsi50NCivsnKTsm5DsmqkNCivsnKTqtozrsLANCivsnKTtnaztg5wNCivsnKTsoJDsm5ANCivsnKTrp5DtmLgNCivsnKTsnZjsiJgNCivsnKTsmbjshJ0NCivsnKTsoJXqt5wNCivsnKTtmITtmZQNCivsnKTrjIDshJ0NCivsnKTsm5DsiKANCivsnKTsoJXquLgNCivsnKTquLDspIANCivsnKTrj4Ttg5wNCivsnKTsmrHrj5kNCivsnKTsoJXsmKUNCivsnKTsi6Dsi50NCivsnKTsmIHsobANCivsnKTtg5zsiJgNCivsnKTsoJXtmIQNCivsnKTrjZXspJENCivsnKTqsr3rj4QNCivsnKTsnqXsiJgNCivsnKTsoJXtmLgNCivsnKTsmbjshJ0NCivsnKTrrLjsi50NCivsnKTquLDsi50NCivsnKTsoJXtmqgNCivsnKTsoJXqsbQNCivsnKTtlZnsi50NCivsnKTsoJXsobANCivsnKTsooXqsIENCivsnKTsmIHrrLgNCivsnKTsooXro6ENCivsnKTslrXtlZkNCivsnKTsooXqsJENCivsnKTquLDsnbgNCivsnKTsooXshKANCivsnKTtg5zsobANCivsnKTsooXqtawNCivsnKTquLDtmLgNCivsnKTsiJzquLgNCivsnKTsiJzsnbwNCivsnKTsooXqt5wNCivsnKTtlZnrjZUNCivsnKTquLDsnKQNCivsnKTrs5HshLENCivsnKTsooXqt7kNCivsnKTspIDsm5ANCivsnKTsnqzsmqkNCivsnKTsi6DsiJgNCivsnKTsooXrjIANCivsnKTrjZXslaANCivsnKTrs5HsobANCivsnKTssL3quLANCivsnKTsooXrjZUNCivsnKTssqDsiJwNCivsnKTsooXrgqgNCivsnKTtlbTshLgNCivsnKTsooXrjZUNCivsnKTsiJzquLANCivsnKTtjJDtg50NCivsnKTsoJXshKANCivsnKTsooXroZ0NCivsnKTsmIHqtawNCivsnKTrspTrr7wNCivsnKTsoJXslpENCivsnKTsooXrpr0NCivsnKTtg5ztmZQNCivsnKTso7ztmLgNCivsnKTsiJjsnpANCivsnKTsooXrpr0NCivsnKTtg5ztmLgNCivsnKTsmrTrnpgNCivsnKTsmKXsiJgNCivsnKTsooXrrLgNCivsnKTshoztmLgNCivsnKTtlZnsmqkNCivsnKTsnZjqsr0NCivsnKTsooXrr7wNCivsnKTsm5Dsi50NCivsnKTsoJXtmY0NCivsnKTsooXsnqwNCivsnKTsooXshJ0NCivsnKTsoJXrsLANCivsnKTslpHrsLENCivsnKTrkZDsnbQNCivsnKTsooXshKANCivsnKTsmIHsiJwNCivsnKTsnqzshLENCivsnKTqt7nsmqkNCivsnKTsooXshKQNCivsnKTshJ3smrENCivsnKTsnKTrp4wNCivsnKTshpDtj6wNCivsnKTsooXsi50NCivsnKTqsr3shKANCivsnKTrj5ntg5wNCivsnKTsm5DsgqwNCivsnKTsooXsmrANCivsnKTso7zquIgNCivsnKTquLDrqoUNCivsnKTrk53smIENCivsnKTsooXsm5ANCivsnKTshLjssqANCivsnKTshLHtmLgNCivsnKTsooXqt7wNCivsnKTsooXsnKgNCivsnKTquLDsiJgNCivsnKTrs5Hqt7wNCivsnKTtg5zsmrANCivsnKTsooXsobANCivsnKTqs4TsiJkNCivsnKTsnbjsg4ENCivsnKTrtInsnbQNCivsnKTsooXssqANCivsnKTsnKTsnbUNCivsnKTtmZjrj4QNCivsnKTsiJjsiJgNCivsnKTsooXtlbQNCivsnKTsmKTsnbUNCivsnKTsooXqt7wNCivsnKTsmrHsiJwNCivsnKTsooXtnawNCivsnKTtlZzqtIANCivsnKTslrjqsbQNCivsnKTrr7jrtIkNCivsnKTso7zqsbQNCivsnKTsm5DshJ0NCivsnKTsp4TtlZgNCivsnKTsl7TtmZgNCivsnKTspIDqsrgNCivsnKTsg4HrjZUNCivsnKTshLHsmrANCivsnKTqsr3smrANCivsnKTspJHquLANCivsnKTsgrzqt5wNCivsnKTsirnrj4QNCivsnKTshLjsiJwNCivsnKTsp4Dqt6ANCivsnKTtnazsnoQNCivsnKTtlZzsmqkNCivsnKTshLHtmLgNCivsnKTsp4Tqt6ANCivsnKTrp5DqtawNCivsnKTshozsnpANCivsnKTshJ3spIANCivsnKTsp4TsnKgNCivsnKTqtJHtmLgNCivsnKTsnYDtmIQNCivsnKTquLDrs7QNCivsnKTsp4TssqANCivsnKTtmJXsnqwNCivsnKTqtJHsmrANCivsnKTsg4HquIgNCivsnKTssKzquLANCivsnKTsmqntmIQNCivsnKTrjZXsmIENCivsnKTtg5zrj4wNCivsnKTssL3rnb0NCivsnKTso7ztlZwNCivsnKTsg4HtmIQNCivsnKTsiJztmLgNCivsnKTssqDspJENCivsnKTrtInshJ0NCivsnKTrjIDro6ENCivsnKTsm5DqtawNCivsnKTstqnquLgNCivsnKTqs4Tqt6ANCivsnKTrqoXshK0NCivsnKTrrLjrkZANCivsnKTtg5zquIgNCivsnKTshozrjZUNCivsnKTrs5Hsi50NCivsnKTsirnspIANCivsnKTtg5zsiJgNCivsnKTrs5HsiJkNCivsnKTsoJXquLgNCivsnKTtlYTqsJENCivsnKTtg5zsi50NCivsnKTtg5zrs7UNCivsnKTsooXsnbQNCivsnKTrqoXsp4QNCivsnKTtg53quLANCivsnKTsg4Hsi50NCivsnKTtlqXtnawNCivsnKTsnqzrr7gNCivsnKTtjJDqt6ANCivsnKTsl7DtnawNCivsnKTsmIHquIgNCivsnKTsooXssqANCivsnKTtjJDquLANCivsnKTtlbTssqANCivsnKTtmY3tnawNCivsnKTstpjtmZQNCivsnKTtjJDsiKANCivsnKTquLjqsbQNCivsnKTquLDtg5wNCivsnKTsoITtmY0NCivsnKTtlZnrspQNCivsnKTshJ3rjZUNCivsnKTssL3si50NCivsnKTshLHsiJwNCivsnKTtlZnsm5ANCivsnKTsmqntmLgNCivsnKTquLDrhbgNCivsnKTrs5HqtawNCivsnKTtlZnsobANCivsnKTtmZjquLANCivsnKTsg4HshLENCivsnKTsoJXsl7QNCivsnKTtlZzrj5kNCivsnKTtg5zsnbQNCivsnKTsnbjtmIQNCivsnKTshLHtm4gNCivsnKTtlZzrj5kNCivsnKTtlZzsmrANCivsnKTsmqnrp4wNCivsnKTshKDsspwNCivsnKTtlZzsi50NCivsnKTsmqnqsr0NCivsnKTqsr3siJwNCivsnKTsooztmY0NCivsnKTtlajqt6ANCivsnKTrhbjslrgNCivsnKTsm5DsiJgNCivsnKTrjIDsiJgNCivsnKTtmITqtZANCivsnKTshLHrpqwNCivsnKQg65OdDQor7Jyk7KCE6riIDQor7Jyk7ZiE7IiZDQor7Jyk7ISx7KKFDQor7Jyk7YOc7Zi4DQor7Jyk7JiB7KGwDQor7Jyk7ZiE7JqwDQor7Jyk66qF7ZmNDQor7Jyk7KKF642VDQor7Jyk6rK97IiYDQor7Jyk7Zi47JqpDQor7Jyk7KeE6rWQDQor7Jyk67SJ7Z2sDQor7Jyk7Z2s7YOcDQor7Jyk7ZmU7ISgDQor7Jyk7ZmN7LKgDQor7Jyk6riw64+EDQor7Jyk65297IudDQor7Jyk7Zqo6riwDQor7Jyk6riI7J28DQor7Jyk7YOc656ADQor7Jyk7IaM64+ZDQor7Jyk7Z2s64usDQor7Jyk67O17JWUDQor7Jyk7YOc7KeEDQor7Jyk7ZWY7KO8DQor7Jyk7Z2s64yADQor7Jyk7KCV7J21DQor7Jyk7KCV66eMDQor7Jyk67SJ67SJDQor7Jyk7Z2s642VDQor7Jyk7Jyk7IudDQor7Jyk7ZmN642VDQor7Jyk6rCR7JuQDQor7Jyk7Z2s7ISgDQor7Jyk7KKF6recDQor7Jyk7ZmN7J21DQor7Jyk7ISx6rSRDQor7J2A642V6riwDQor7J2A7ZeM7ISgDQor7J2A7IOB7IicDQor7J2A7Jqp7KeEDQor7J2A7Lap6riwDQor7J2A6rSR7Z2sDQor7J2A67aE7IiYDQor7J2A7Iic67ORDQor7J20IOqxtA0KK+ydtOyKueq4sA0KK+ydtOybkOyVlA0KK+ydtO2XjOq3vA0KK+ydtCDqsr0NCivsnbTsgrztlbQNCivsnbTrs5HtmLgNCivsnbTsmqnqtowNCivsnbQg7IOBDQor7J207KKF7YOdDQor7J207ISx7Zi4DQor7J207KCQ67CxDQor7J20IOyImA0KK+ydtOyYgeyImA0KK+ydtOyiheyInA0KK+ydtOy2mOyYgQ0KK+ydtCDsiJkNCivsnbTrs5HqtZANCivsnbTsoJXshJ0NCivsnbTqs4TsobANCivsnbQg7JeEDQor7J207ZW07J6sDQor7J207J6s7ZaJDQor7J2064yA7LacDQor7J20IOyduA0KK+ydtOywveq3vA0KK+ydtOyEneybkA0KK+ydtOyerOyErQ0KK+ydtCDsoJUNCivsnbTsoJXro6ENCivsnbTtg5ztlZkNCivsnbTsg4Hsl7ANCivsnbQg7KSADQor7J207Iic7ISgDQor7J207KKF6raMDQor7J207LaY7ISdDQor7J20IOymnQ0KK+ydtOy2mOydvA0KK+ydtOygleyLnQ0KK+ydtOyInOq1rA0KK+ydtCDsp4QNCivsnbTsoJXrj4QNCivsnbTshozsnpANCivsnbTsooXrspQNCivsnbQg7LKtDQor7J207IOB7Z2sDQor7J207IK87IiYDQor7J207Ja464+MDQor7J20IO2VmQ0KK+ydtO2VqOyInA0KK+ydtOyiheyerA0KK+ydtOqyveq4uA0KK+ydtCDtmLgNCivsnbTsnqztmZgNCivsnbTssL3tm4gNCivsnbTquIjsiJgNCivsnbQg7ZuIDQor7J207J2M7LKgDQor7J206rWs7JqpDQor7J207YOc7Zi4DQor7J20IO2biA0KK+ydtOuPhOyasQ0KK+ydtOyDgeunkA0KK+ydtOqyveyyoA0KK+ydtOqwgOunpA0KK+ydtOyiheyImA0KK+ydtOq3nOunjA0KK+ydtOyImOyYpQ0KK+ydtOqwkOyasA0KK+ydtOyEseq3vA0KK+ydtOyYgey2nA0KK+ydtOyyoOybkA0KK+ydtOqwkeuFuA0KK+ydtOyEuOu2gA0KK+ydtOyYgeyEsQ0KK+ydtOqyveusuA0KK+ydtOqwkeuTnQ0KK+ydtOyDgeyImA0KK+ydtOyDge2ZmA0KK+ydtOuPme2YuA0KK+ydtOqwkeyEnQ0KK+ydtOqyveqwgQ0KK+ydtOyEoO2YuA0KK+ydtOyYgeuztA0KK+ydtOqwkeyEoA0KK+ydtOykgOycpA0KK+ydtOqzoO2YuA0KK+ydtOyerOq4sA0KK+ydtOqwkeyImA0KK+ydtO2MkOyaqQ0KK+ydtOyihey2mA0KK+ydtOycpOq4sA0KK+ydtOqwkeyInA0KK+ydtOyKueyhsA0KK+ydtOyYge2YuA0KK+ydtOyYgeyImA0KK+ydtOqwkeyaqQ0KK+ydtOyEoOyYgQ0KK+ydtOygleq3vA0KK+ydtO2aqOyErQ0KK+ydtOqwkeyaqQ0KK+ydtOyDge2YuA0KK+ydtOygkOq4sA0KK+ydtOq3vO2VmQ0KK+ydtOqwkeyehA0KK+ydtOuCtOyLnQ0KK+ydtOyDgeyInA0KK+ydtOq4uOuPmQ0KK+ydtOqwkeyehA0KK+ydtOq0keq3oA0KK+ydtOuptOycqA0KK+ydtOyIoOqwkQ0KK+ydtOqwkeyhsA0KK+ydtO2DnOu2hA0KK+ydtOq1reyIoA0KK+ydtOyerOq4sA0KK+ydtOqwkeyhsA0KK+ydtOq4sOuPhA0KK+ydtOq4sOyInA0KK+ydtO2aqO2DnA0KK+ydtOqwkeyjvA0KK+ydtOustOyLnQ0KK+ydtO2DnOyErQ0KK+ydtOq0ke2drA0KK+ydtOqwleugrA0KK+ydtOq4sOynkQ0KK+ydtOyImOyImQ0KK+ydtOyYgeq3nA0KK+ydtOqwleuqhQ0KK+ydtOydgOybkA0KK+ydtOyDgeyLnQ0KK+ydtOykgOycqA0KK+ydtOqwleyEnQ0KK+ydtOycpOyInA0KK+ydtOqyveyImA0KK+ydtOywve2drA0KK+ydtOqwleyEnQ0KK+ydtOyEse2ZlA0KK+ydtOuRkOuPmQ0KK+ydtOyEse2YgQ0KK+ydtOqwleyEuA0KK+ydtO2DnOyekA0KK+ydtOyYgeyEoA0KK+ydtOyerOyErQ0KK+ydtOqwleyImA0KK+ydtOuzteyihQ0KK+ydtOyGjOq3nA0KK+ydtOyerOybkA0KK+ydtOqwleyLnQ0KK+ydtOu0ieyImA0KK+ydtOuLrOuMgA0KK+ydtOqwke2VnA0KK+ydtOqwleyynA0KK+ydtOyDgeycqA0KK+ydtOyEseyEnQ0KK+ydtOq0ke2YuA0KK+ydtOqwle2YuA0KK+ydtOyEuOyInA0KK+ydtOyImOyYgQ0KK+ydtOycpOykkQ0KK+ydtOqwle2YuA0KK+ydtOyYgeq4uA0KK+ydtOyImOyehA0KK+ydtOyihe2biA0KK+ydtOqwle2drA0KK+ydtOq4sOuzkQ0KK+ydtOuylOugqA0KK+ydtOygleyImA0KK+ydtOqwnOuPmQ0KK+ydtOustO2YuA0KK+ydtOq4iOuPmQ0KK+ydtOygleyEnQ0KK+ydtOqwnOuPmQ0KK+ydtOyDgeyImA0KK+ydtOyDgeyLnQ0KK+ydtOuPmeyErQ0KK+ydtOqxtOqzpA0KK+ydtOuzke2YhA0KK+ydtOq2jO2WpQ0KK+ydtOuCmOyyoA0KK+ydtOqxtOyEnQ0KK+ydtOq3nOyekA0KK+ydtOyImOyImA0KK+ydtOqyveyImA0KK+ydtOqxtOyYgQ0KK+ydtOynhOq3oA0KK+ydtOyEoOyEnQ0KK+ydtOycpO2YuA0KK+ydtOqxtOyYpQ0KK+ydtO2YhOuPhA0KK+ydtOyEoOyyoA0KK+ydtOyaqeyaqQ0KK+ydtOqxtOybhQ0KK+ydtOyaqeyYgQ0KK+ydtOqwkeu2hA0KK+ydtOyEseyInA0KK+ydtOqxtO2YuA0KK+ydtOyYgeyEnA0KK+ydtOuqhe2ZmA0KK+ydtOygle2ZmA0KK+ydtOqxtO2drA0KK+ydtOyjvO2VmQ0KK+ydtOycpOuwsA0KK+ydtOyihe2YuA0KK+ydtOqyuOqwkQ0KK+ydtOuvuOq4uA0KK+ydtOq0keunjA0KK+ydtOyYgeykgA0KK+ydtOqyuOqwkQ0KK+ydtOq1kOyLnQ0KK+ydtOuzteyYgQ0KK+ydtOyYpeyInA0KK+ydtOqyveq3vA0KK+ydtOyCvO2ZlA0KK+ydtOuMgOusuA0KK+ydtOusuOyasA0KK+ydtOqyveuFuA0KK+ydtOyihe2YuA0KK+ydtOyiheyasA0KK+ydtOybkO2YhA0KK+ydtOqyveuPmQ0KK+ydtOyZuOq3nA0KK+ydtOuFuO2ajA0KK+ydtO2YnOyYpQ0KK+ydtOqyveuPmQ0KK+ydtOuFuOuztQ0KK+ydtOyerOyImA0KK+ydtOuqheygnA0KK+ydtOqyveuegA0KK+ydtOywrOyglQ0KK+ydtOygleq3oA0KK+ydtOuzkeybkA0KK+ydtOqyveugrA0KK+ydtOyYgeyXtA0KK+ydtOyEoOydtA0KK+ydtOygleyImA0KK+ydtOqyveunjA0KK+ydtOuCqO2ajA0KK+ydtOyerOuNlQ0KK+ydtOydhOunjA0KK+ydtOqyveunjA0KK+ydtOycpOykgA0KK+ydtOuPmeq3vA0KK+ydtOq3vOybkA0KK+ydtOqyveuqqQ0KK+ydtOygkOyYpA0KK+ydtOyWuOu0iQ0KK+ydtOuqhe2ZmA0KK+ydtOqyveusuA0KK+ydtOyEseyXsA0KK+ydtOyiheq4uA0KK+ydtOunjOycpA0KK+ydtOqyveu0iQ0KK+ydtOygleynhA0KK+ydtOq4iOyInA0KK+ydtOy2mOq4sA0KK+ydtOqyveyEnQ0KK+ydtOyYgeyEnQ0KK+ydtOqyveu2hA0KK+ydtOyiheuhnQ0KK+ydtOqyveyEnQ0KK+ydtOykkeu0iQ0KK+ydtOuqheyEnQ0KK+ydtOq4sOq0gA0KK+ydtOqyveyEnQ0KK+ydtO2DnOq3vA0KK+ydtO2VnOyaqQ0KK+ydtOyCvOyImQ0KK+ydtOqyveyEnQ0KK+ydtOyInOyihQ0KK+ydtOyCvOu0iQ0KK+ydtOyepeyasA0KK+ydtOqyveyEoA0KK+ydtO2drOybkA0KK+ydtOygkOyehA0KK+ydtOu0ie2ZmA0KK+ydtOqyveyImA0KK+ydtOyEseyEsQ0KK+ydtOygleyErQ0KK+ydtOyYgeyasA0KK+ydtOqyveyImA0KK+ydtOyasOyyoA0KK+ydtO2MkOyImA0KK+ydtOykkeyInA0KK+ydtOqyveyImQ0KK+ydtOuPmeyEnQ0KK+ydtOq4sOywrA0KK+ydtOuztey2nA0KK+ydtOqyveyImQ0KK+ydtOyDgeuTnQ0KK+ydtOyaqeyEoA0KK+ydtOyImOq4sA0KK+ydtOqyveyInA0KK+ydtOqyveuPmQ0KK+ydtOyDge2YuA0KK+ydtOq1rOugrA0KK+ydtOqyveyInA0KK+ydtOyYpOynhA0KK+ydtOuNleuNlQ0KK+ydtO2MkOq4uA0KK+ydtOqyveyInA0KK+ydtOyEoOuztQ0KK+ydtOyImOuPmQ0KK+ydtOywveuNlQ0KK+ydtOqyveyLnQ0KK+ydtOygleyImA0KK+ydtOqyveyaqQ0KK+ydtOuLrOuPmQ0KK+ydtOqyveyLnQ0KK+ydtOyLoOq2jA0KK+ydtOyYgeusuA0KK+ydtOunkO2ZmA0KK+ydtOqyveyVlA0KK+ydtOunjOq4sA0KK+ydtOyInOyImQ0KK+ydtOu0ieq3nA0KK+ydtOqyveyYgQ0KK+ydtOq0keq4uA0KK+ydtOyiheyEnQ0KK+ydtOyInOq1rA0KK+ydtOqyveyYpQ0KK+ydtCDtmZQNCivsnbTquLDshJ0NCivsnbTsgrzsiJwNCivsnbTqsr3snbQNCivsnbTsiJjtmZgNCivsnbTshLHtmLgNCivsnbTrqoXsiJgNCivsnbTqsr3snpANCivsnbTshozrj4QNCivsnbTqsr3sp5ENCivsnbTshJ3siKANCivsnbTqsr3stpwNCivsnbTsmrDsnbgNCivsnbTrtoTqtIANCivsnbTso7ztg5wNCivsnbTqsr3tg4ENCivsnbTsooXsiJkNCivsnbTrhbjtg50NCivsnbTqsr3rj4QNCivsnbTqsr3tmLgNCivsnbTsooXtmLgNCivsnbTrj5nsiJgNCivsnbTsnKTrtoQNCivsnbTqsr3tmLgNCivsnbTsgrzssqANCivsnbTtnaztnaANCivsnbTquLjshK0NCivsnbTqsr3tmLgNCivsnbTshLHsiJgNCivsnbTsnbjsiJgNCivsnbTssL3tnawNCivsnbTqsr3tm4QNCivsnbTtg5zsoJUNCivsnbTsmIHsmrQNCivsnbTrp4zsg4ENCivsnbTqsr3tm4gNCivsnbTrs5HtmY0NCivsnbTqsr3shJ0NCivsnbTso7zqt7wNCivsnbTqsr3tnawNCivsnbTsooXroZ0NCivsnbTtmIHsooUNCivsnbTssYTshK0NCivsnbTqsr3tnawNCivsnbTrs7XsobANCivsnbTsg4HsiJgNCivsnbTssKjsmIENCivsnbTqsr3tnawNCivsnbTsoJXsnqwNCivsnbTsooXrnpgNCivsnbTsnKDqt7wNCivsnbTqs4TroZwNCivsnbTsoJXtmIQNCivsnbTsiJzquLANCivsnbTsgqzsmIENCivsnbTqs4TrrLgNCivsnbTqsr3tmZgNCivsnbTrqoXrrLgNCivsnbTsoJXqsr0NCivsnbTqs4TrtoQNCivsnbTqt7zsi50NCivsnbTsnKTsnoUNCivsnbTtmLjsg4ENCivsnbTqs4TrtoQNCivsnbTsmIHsmKQNCivsnbTsoJDqsr0NCivsnbTsl4XssqANCivsnbTqs4TsnpANCivsnbTqs7XslYUNCivsnbTsiJzrj5kNCivsnbTsiJzqt7wNCivsnbTqs4TstpwNCivsnbTtmITqsJUNCivsnbTsuaDsmYQNCivsnbTsoJzqtZANCivsnbTqs4TtmLgNCivsnbTsmIHshKANCivsnbTsnbjsl7QNCivsnbTsnqXsnpANCivsnbTqs4TtmY0NCivsnbTtlYTqtawNCivsnbTtg53qt7wNCivsnbTsoJXqtowNCivsnbTqs4TtmZQNCivsnbTsmKTquLANCivsnbTstpjsobANCivsnbTsl6zqtIANCivsnbTqs4Ttm4gNCivsnbTsnZjsi50NCivsnbTtlYTsiJwNCivsnbTsmqnspJENCivsnbTqs6Dtm4gNCivsnbTrp4zrpr0NCivsnbTtg5zsspwNCivsnbTsnqzquLANCivsnbTqs7Xrp4wNCivsnbTssL3soJUNCivsnbTqs4Ttg5wNCivsnbTsmIHsiJgNCivsnbTqtIDquLANCivsnbTrqoXquLANCivsnbTsg4HrsLANCivsnbTshLHquLANCivsnbTqtIDsi50NCivsnbTsnKTrpqwNCivsnbTrj5nsiJgNCivsnbTshozquLgNCivsnbTqtIDsi50NCivsnbTsg4HssqANCivsnbTtg5zrtIkNCivsnbTsoJXstpwNCivsnbTqtIDsnbQNCivsnbTsoJDrj5kNCivsnbTqsr3sm4UNCivsnbTrqoXsnoUNCivsnbTqtIDtnawNCivsnbTqt5zsmqkNCivsnbTsp4Trj4QNCivsnbTrs5Hqt7wNCivsnbTqtJHrjZUNCivsnbTsm5DsnbwNCivsnbTtg5zrp4wNCivsnbTrtoTtlqUNCivsnbTqtJHrsLANCivsnbTsg4HsiJgNCivsnbTrjIDqsbQNCivsnbTrj5ntmZgNCivsnbTqtJHshJ0NCivsnbTsnITsl7QNCivsnbTrgqjsi50NCivsnbTsjI3qt7wNCivsnbTqtJHshJ0NCivsnbTsnqzso7wNCivsnbTtg5ztmIQNCivsnbTsiJjsmqkNCivsnbTqtJHsiJgNCivsnbTsooXsnqwNCivsnbTshJ3shLENCivsnbTsg4HsnbQNCivsnbTqtJHsiJgNCivsnbTsg4HrsLANCivsnbTtlZzsi50NCivsnbTquI3sobANCivsnbTqtJHsiJgNCivsnbTsiJzsnpANCivsnbTqt5zqsr0NCivsnbTquIjtg5wNCivsnbTqtJHsiJgNCivsnbTrqoXrtIkNCivsnbTtg5zqta0NCivsnbTsg4Hsm5ANCivsnbTqtJHsiJgNCivsnbTsirnqta0NCivsnbTrs5HtmLgNCivsnbTslrXsnpANCivsnbTqtJHsiJgNCivsnbTshJ3sgrwNCivsnbTsg4Hsp4QNCivsnbTsiJjtmZQNCivsnbTqtJHsi50NCivsnbTrj5nqt7wNCivsnbTrp4zsmYQNCivsnbTsp4TtmZgNCivsnbTqtJHsl7QNCivsnbTshozqs6QNCivsnbTrj4Tsm5ANCivsnbTsg4Hqt5wNCivsnbTqtJHsnbwNCivsnbTssKjsi50NCivsnbTrqoXrj5kNCivsnbTtg5zquLANCivsnbTqtJHsnpANCivsnbTrqoXssqANCivsnbTtlZzso7wNCivsnbTtnazqta0NCivsnbTqtJHsnqwNCivsnbTsooXsiJkNCivsnbTsooXrr7wNCivsnbTsiJjtnawNCivsnbTqtJHsnqwNCivsnbTrp4zrnpgNCivsnbTtlbTtlYQNCivsnbTsoJXrjZUNCivsnbTqtJHsobANCivsnbTquLDspIANCivsnbTsooXsiJwNCivsnbTtg5zrgqgNCivsnbTqtJHsobANCivsnbTquLDrpqwNCivsnbTrr7jsooUNCivsnbTshLjtg50NCivsnbTqtJHspIANCivsnbTshLHtlZkNCivsnbTrs7XshJ0NCivsnbTstpjshJ0NCivsnbTqtJHtg50NCivsnbTrtoTtmZgNCivsnbTsnKTtg50NCivsnbTsooXtmLgNCivsnbTqtJHtlokNCivsnbTsg4Hsi50NCivsnbTtnazrj4QNCivsnbTsiKDsobANCivsnbTqtJHtmLgNCivsnbTrp4ztlZkNCivsnbTsl7Dtg50NCivsnbTquLjssqANCivsnbTqtJHtmLgNCivsnbTsooXsiKANCivsnbTsmKXsmqkNCivsnbTqtJHtmLgNCivsnbTqtJHtmLgNCivsnbTquLDqtIANCivsnbTsp4TrtoANCivsnbTtlZzsiJkNCivsnbTqtJHtmLgNCivsnbTsnbjsnKQNCivsnbTsnqzsmrANCivsnbTrjZXqsr0NCivsnbTqtJHtmLgNCivsnbTsirnquLgNCivsnbTsmKXtnawNCivsnbTsnKTsnbwNCivsnbTqtJHtmLgNCivsnbTrs5HtmLgNCivsnbTtg5zshK0NCivsnbTsnoTsmqkNCivsnbTqtJHtnawNCivsnbTshLHshJwNCivsnbTqt5zsspwNCivsnbTsp4Ttm4gNCivsnbTqtZDshKANCivsnbTrr7jtnawNCivsnbTstpjqt5wNCivsnbTquLDtmLgNCivsnbTqtZDso7wNCivsnbTsi6TsmrENCivsnbTsnqzqt5wNCivsnbTspIDshJ0NCivsnbTqtZDso7wNCivsnbTslrjqsJENCivsnbTsnqzquLANCivsnbTtjJDsl7QNCivsnbTqtZDssqANCivsnbTquLDrs7UNCivsnbTtnaXsmqkNCivsnbTsooXtl4wNCivsnbTqtazrs7UNCivsnbTshKDrj5kNCivsnbTqs4TssqANCivsnbTsmqnsmYQNCivsnbTqtazsm5ANCivsnbTsoJXsiJgNCivsnbTsmIHsl7QNCivsnbTsirntg5wNCivsnbTqtazssqANCivsnbTtmLjqsr0NCivsnbTsnZjrs7UNCivsnbTsmqntnawNCivsnbTqtaztmLgNCivsnbTrj5ntnaANCivsnbTsmIHrtoQNCivsnbTsg4Hsi50NCivsnbTqtaztmY0NCivsnbTsg4HshKANCivsnbTsnqzrp4wNCivsnbTrgpnsiJgNCivsnbTqta3qt6ANCivsnbTqsJHsnbwNCivsnbTtlbTsm5ANCivsnbTrjIDshJ0NCivsnbTqta3sobANCivsnbTspJHtmJUNCivsnbTrs5Hri6wNCivsnbTshozsspwNCivsnbTqta3tmZgNCivsnbTsp4Ttg5wNCivsnbTquLDqtowNCivsnbTsnKHrkZANCivsnbTqta3tnawNCivsnbTtjJDsiJkNCivsnbTsooXshJ0NCivsnbTsnpDrgqgNCivsnbTqtozrj4QNCivsnbTsnqzrtIkNCivsnbTsoJDshLENCivsnbTtg5zsi50NCivsnbTqtozsiJwNCivsnbTtlZztmIQNCivsnbTsooXsuZgNCivsnbTrr7jqtJENCivsnbTqtozsiKANCivsnbTqtZDrnpgNCivsnbTsnbzsp4QNCivsnbTrj4TtmJUNCivsnbTqtoztlZwNCivsnbTtlZnrj4QNCivsnbTsmqnsiJwNCivsnbTrqoXsi50NCivsnbTqtoztmLgNCivsnbTtmITsg4ENCivsnbTtg5zqs6QNCivsnbTrgqjrs7UNCivsnbTqt4DrgqgNCivsnbTrjIDsi50NCivsnbTqtJHsi50NCivsnbTqt7zrs7UNCivsnbTqt4DrgqgNCivsnbTrj5nsmrANCivsnbTqsJHsmqkNCivsnbTshLHtnawNCivsnbTqt4DrjZUNCivsnbTsnqzsiJkNCivsnbTrs5HsiJwNCivsnbTsiJzsi50NCivsnbTqt4DtnawNCivsnbTsnYTsnbQNCivsnbTsmIHsmKUNCivsnbTsoJXqsJENCivsnbTqt4Tsi50NCivsnbTsg4HrqoUNCivsnbTsnqXshJ0NCivsnbTsoJXsnbUNCivsnbTqt5zqsr0NCivsnbTtlZnsmqkNCivsnbTqsr3rsLANCivsnbTsmIHrjZUNCivsnbTqt5zrgqgNCivsnbTshLHtmZgNCivsnbTrp5Dqt5wNCivsnbTshKDrtIkNCivsnbTqt5zrhYQNCivsnbTsiJjsiJgNCivsnbTqsJHsiJgNCivsnbTsiJzqtawNCivsnbTqt5zri7QNCivsnbTsmIHsiJgNCivsnbTsnbjsmqkNCivsnbTrjZXquLANCivsnbTqt5zrj4QNCivsnbTsmKXstpwNCivsnbTrs5Hsm5ANCivsnbTsiJzqs6ANCivsnbTqt5zrj4gNCivsnbTshqHquLANCivsnbTsmqntmIQNCivsnbTrj5nsl7QNCivsnbTqt5zroYANCivsnbTsg4Hsi50NCivsnbTtmY3sl7QNCivsnbTrs5HtmZgNCivsnbTqt5zrqoUNCivsnbTrj5ntlZkNCivsnbTsooXqt7wNCivsnbTrjIDshJ0NCivsnbTqt5zrs7UNCivsnbTrkZDsg4ENCivsnbTrrLjsi50NCivsnbTspIDqsr0NCivsnbTqt5zrs7UNCivsnbTsg4HtmLgNCivsnbTslpHtmowNCivsnbTtlbTshK0NCivsnbTqt5zrtoANCivsnbTsm5DsmqkNCivsnbTrs5Hsi50NCivsnbTsooXquLANCivsnbTqt5zsg4ENCivsnbTsm5Dqt5wNCivsnbTsirnsmrANCivsnbTsnqzrtIkNCivsnbTqt5zsg4ENCivsnbTqsJHtl4wNCivsnbTqsr3siJgNCivsnbTshLHrjZUNCivsnbTqt5zshJ0NCivsnbTsg4HtmLgNCivsnbTqsr3tmLgNCivsnbTrs5Htm4gNCivsnbTqt5zshK0NCivsnbTtg5zqtZANCivsnbTsm5Tsl7ANCivsnbTrj4Ttg5wNCivsnbTqt5zshK0NCivsnbTsnZjtmLgNCivsnbTrj5nsoJANCivsnbTtg5zshKANCivsnbTqt5zshLENCivsnbTsobDqtIANCivsnbTtlbTshKANCivsnbTsirnquLANCivsnbTqt5zsiJkNCivsnbTsg4HstpgNCivsnbTsmrTsuaANCivsnbTsnoTspp0NCivsnbTqt5zslYgNCivsnbTsm5DqtbANCivsnbTtg5ztmZgNCivsnbTsmqntmLgNCivsnbTqt5zsmKUNCivsnbTsp4Tsi50NCivsnbTqsr3sp4QNCivsnbTshKDsmrANCivsnbTqt5zsmKUNCivsnbTquLDsl7QNCivsnbTsi6zsmKQNCivsnbTsnbzquLgNCivsnbTqt5zsmYQNCivsnbTrtoDtmZgNCivsnbTrqoXsnbwNCivsnbTshJ3shJ0NCivsnbTqt5zsmYQNCivsnbTqtJHsobANCivsnbTstpjshKANCivsnbTsmrTrjZUNCivsnbTqt5zsmqkNCivsnbTshJ3rtIkNCivsnbTsiJjsmqkNCivsnbTsm5Dqs6QNCivsnbTqt5zsmqkNCivsnbTsm5Dtg5wNCivsnbTtl4zrkZANCivsnbTsg4Hrj5kNCivsnbTqt5zsm5ANCivsnbTrkZDtmLgNCivsnbTsg4HquLANCivsnbTrp5Dtg5wNCivsnbTqt5zsnbgNCivsnbTsoJXrspQNCivsnbTtjJDslrUNCivsnbTsoJXrsLANCivsnbTqt5zso7wNCivsnbTsiJjtmZgNCivsnbTsiJjsp4QNCivsnbTsooXsiJkNCivsnbTqt5zsp4QNCivsnbTtmITtg5wNCivsnbTsiJzqsr0NCivsnbTqsr3smrENCivsnbTqt5zsp4QNCivsnbTsirntkZwNCivsnbTsmIHsmYQNCivsnbTsg4Hqt7wNCivsnbTqt5zssKwNCivsnbTsnqzsiJgNCivsnbTsoJXrnoANCivsnbTsmIHrn4kNCivsnbTqt5zssKwNCivsnbTqt5zsnbUNCivsnbTtlZzsiJgNCivsnbTsl7Dqt5wNCivsnbTqt5ztg5wNCivsnbTsoJXso7wNCivsnbTqt7ztlbQNCivsnbTqt5ztmY0NCivsnbTqt5ztg5wNCivsnbTtlbTsiJgNCivsnbTsm5DrrLgNCivsnbTrqoXsnpANCivsnbTqt5ztg50NCivsnbTsnqXsnpANCivsnbTsnKTtmLgNCivsnbTsg4HtmJENCivsnbTqt5ztlZwNCivsnbTqtazsiJwNCivsnbTrjZXslrgNCivsnbTsmqntlbQNCivsnbTqt5ztmIQNCivsnbTsooXsmrANCivsnbTshKDsobANCivsnbTtmLjsmIENCivsnbTqt5ztmY0NCivsnbTsnKTsl7QNCivsnbTsmqntnawNCivsnbTtg5ztm4gNCivsnbTqt6DslZQNCivsnbTsiJjsg4ENCivsnbTsiJjslZQNCivsnbTsg4HtmLgNCivsnbTqt6Dsl7QNCivsnbTtmJztnawNCivsnbTtnazrrLgNCivsnbTsnKTrj5kNCivsnbTqt6DtmLgNCivsnbTspJHtmZQNCivsnbTrtInso7wNCivsnbTtmJzrp4wNCivsnbTqt7zqsJENCivsnbTqsr3rs5ENCivsnbTsmIHsmIENCivsnbTstpjsg50NCivsnbTqt7zquLANCivsnbTrj5nsmqkNCivsnbTroLnsiJgNCivsnbTrgpnsnqwNCivsnbTqt7zquLgNCivsnbTsiJjshKANCivsnbTsmIHsmrANCivsnbTrr7jsmIENCivsnbTqt7zrsLANCivsnbTsnKTsm5ANCivsnbTstpjsi50NCivsnbTqtJHquLgNCivsnbTqt7zrsLENCivsnbTsg4HtmLgNCivsnbTrp4zqt5wNCivsnbTsiJzsm5ANCivsnbTqt7zrspQNCivsnbTtmITtmZgNCivsnbTsiJzrs7UNCivsnbTqsJHsi50NCivsnbTqt7zrs7QNCivsnbTsmqnsiJwNCivsnbTshLHsl7ANCivsnbTssqDrs5ENCivsnbTqt7zrtIkNCivsnbTqt5zrj5kNCivsnbTsmIHsiKANCivsnbTrnpjtmJUNCivsnbTqt7zshJwNCivsnbTsoJXsm5ANCivsnbTtlZzrp4wNCivsnbTsnKTsuZgNCivsnbTqt7zshJ0NCivsnbTssL3so7wNCivsnbQg7ZmYDQor7J207YOc7IicDQor7J206re87IiYDQor7J207Jyk6riwDQor7J207ISx7ISdDQor7J206rSR7ZmUDQor7J206re87JiBDQor7J207J6s7ZalDQor7J207ZWc7ISdDQor7J207IiY7KGwDQor7J206re87JqwDQor7J207IK87IigDQor7J2067aE7IOdDQor7J207ISx7IiZDQor7J206re87JqwDQor7J207YOc66GADQor7J207Lmg7IiYDQor7J207Zi47J20DQor7J206re87JqwDQor7J207Jqp64yADQor7J207Iig7IOBDQor7J206rK96riwDQor7J206re87KSADQor7J207J247JykDQor7J2066eQ6re8DQor7J207JiB7J28DQor7J206re87KSRDQor7J207JiB7IiZDQor7J207IS47KKFDQor7J207JiB7Z2sDQor7J206re87KeBDQor7J207Zi47IudDQor7J207Jqw7IudDQor7J207Jqp7ZiVDQor7J206re87YOcDQor7J207JiB7JqpDQor7J2064+Z7JqpDQor7J207IiY6raMDQor7J206re87YOdDQor7J207KKF7IiYDQor7J207LC97J28DQor7J207JmE7JqpDQor7J206re87Zi4DQor7J206rK97J20DQor7J206riw7KGwDQor7J207YOc6recDQor7J206re87ZmUDQor7J207LC97ZqoDQor7J207Jqp7ZmYDQor7J207KKF67aEDQor7J206re87ZmpDQor7J207ISx7KeEDQor7J207KCV7Zi4DQor7J2066e567SJDQor7J206riI66GADQor7J207Iic65OdDQor7J207ZWc7Zi4DQor7J207ZWc7KGwDQor7J206riI7IK8DQor7J207Jil65OdDQor7J2066qF7ZiEDQor7J207Jil7ISdDQor7J206riI7ISdDQor7J2066eM7KCVDQor7J207Jqp7YOcDQor7J207ISg7IudDQor7J206riI7ISdDQor7J20642V67aEDQor7J207ISx7ZiEDQor7J2064+Z6rCRDQor7J206riI7ISdDQor7J207ISx7IiYDQor7J2064yA6recDQor7J207YOc66eMDQor7J206riI7ISgDQor7J207KKF6rK9DQor7J207ISx7IS4DQor7J2067SJ7IiYDQor7J206riI7ISgDQor7J2064+Z7IicDQor7J207Iug7ISdDQor7J2066eM7Zi4DQor7J206riI7IudDQor7J207Iah7IiZDQor7J207IOB7JilDQor7J207J2467SJDQor7J206riI7JewDQor7J207YOc7J6sDQor7J2066eQ7IudDQor7J2064Ko7ZiEDQor7J206riI7JewDQor7J2067O17ISdDQor7J207Jil7ZmYDQor7J206rK97YOdDQor7J206riI7JilDQor7J2064yA67ORDQor7J207IiY64KoDQor7J207ISx7JqpDQor7J206riI7JilDQor7J206rK97IudDQor7J207IiY7IicDQor7J206rec64+ZDQor7J206riI7J6QDQor7J207YOc7LacDQor7J207J6s67CwDQor7J2064yA7LC9DQor7J206riI7KO8DQor7J207J247IiYDQor7J207Jqw67SJDQor7J2064+E7JykDQor7J206riI7LmYDQor7J207KCV7KKFDQor7J207KCV7JewDQor7J207KO87KGwDQor7J206riw64+ZDQor7J207JmE7KSADQor7J207KCQ7LKgDQor7J2067OR7YOcDQor7J206riw66GcDQor7J207IiY7KeEDQor7J206rCR7IicDQor7J207Z2l7IiYDQor7J206riw66eMDQor7J207Zqo64KoDQor7J207YOc7ZmYDQor7J206rOE7LCsDQor7J206riw66qpDQor7J207ZWc7LKgDQor7J207IOB7IOBDQor7J207J207LKgDQor7J206riw67ORDQor7J207J246rCVDQor7J207ISx6riwDQor7J2064us7ZmYDQor7J206riw67O1DQor7J207JuQ7JikDQor7J20642V7ZiEDQor7J207KKF7IiZDQor7J206riw67aEDQor7J207Iic67KUDQor7J207J247KO8DQor7J207IOB7IusDQor7J206riw67mIDQor7J2067OR7ISdDQor7J206ri47IicDQor7J207J6s67O0DQor7J206riw7IOBDQor7J206rK97Zi4DQor7J207KCV7ZiEDQor7J207YOc7JiBDQor7J206riw7IOBDQor7J207YOc7LKgDQor7J206rSR67SJDQor7J206riw7ZWZDQor7J206riw7IOBDQor7J207J287JewDQor7J207ISx7KSADQor7J207J2Y7IicDQor7J206riw7IOdDQor7J2067SJ7JqwDQor7J207L6M6recDQor7J207LCo66eMDQor7J206riw7IS4DQor7J207KKF7ISxDQor7J207JuQ6re8DQor7J207KCV7J20DQor7J206riw7IahDQor7J207Iic66+8DQor7J207KCV7Je0DQor7J207KCV7Z2sDQor7J206riw7IicDQor7J207KeE7ZWcDQor7J2064+E7ZWcDQor7J207J6l7J24DQor7J206riw7IicDQor7J207LGE7KCVDQor7J207KO87Z2sDQor7J206rSA7ZmUDQor7J206riw7IudDQor7J207IOB6recDQor7J207J6l7IudDQor7J207J2Y66eMDQor7J206riw7JWUDQor7J207ZiE7IiYDQor7J207IOB7J6EDQor7J207KKF6rWtDQor7J206riw7JewDQor7J207LGE7LKgDQor7J207YOc6re8DQor7J207LGE7IicDQor7J206riw7JiBDQor7J207JiB64+ZDQor7J2064yA7Je0DQor7J207J6s67O1DQor7J206riw7JiBDQor7J207YOA7JqpDQor7J207KeE7IOBDQor7J206rSR7LKgDQor7J206riw7JmEDQor7J207Jyk7ZWZDQor7J207JuQ7Z2sDQor7J207KSA7LKcDQor7J206riw7JqpDQor7J207Iic7ZWZDQor7J207ISx7JilDQor7J207KCV6rOEDQor7J206riw7JqwDQor7J207KO87IiYDQor7J2064+Z7IicDQor7J207LaU67O1DQor7J206riw7JuFDQor7J207Lap7Z2gDQor7J207ISd7Z2sDQor7J207IOB7ISdDQor7J206riw7JuQDQor7J2067OR7ZmNDQor7J2064yA6rK9DQor7J207JiB7ZqoDQor7J206riw7JuQDQor7J2064yA6re8DQor7J207JWU7KeEDQor7J207Lac65GQDQor7J206riw7J6QDQor7J207LaY7Z2sDQor7J206rK97Z2sDQor7J207ZWc7Zi4DQor7J206riw7KCEDQor7J207KCV7IiZDQor7J207YOd65OdDQor7J207KCV7Z2sDQor7J206riw7KKFDQor7J207KKF7ZuIDQor7J206riw7IiYDQor7J207IiY7IiZDQor7J206riw7KO8DQor7J2065GQ6raMDQor7J2065GQ6rCRDQor7J207IOB7IiYDQor7J206riw7KO8DQor7J207YyQ7KeEDQor7J207ZKN6re8DQor7J206rK97Je0DQor7J206riw7KeEDQor7J2067aA7ISgDQor7J207ISx7J6RDQor7J2064yA67SJDQor7J206riw7LC9DQor7J207KCV7ISdDQor7J2067OR7Je0DQor7J207LKc7IudDQor7J206riw7LC9DQor7J206rCR7IiYDQor7J206riw7IiYDQor7J2064+Z7Z2sDQor7J206riw7LKgDQor7J207IOB64+ZDQor7J207Lap66eMDQor7J207YyU7ZuIDQor7J206riw7LKgDQor7J207ISx7LKgDQor7J207JuQ7IudDQor7J207LKc7JewDQor7J206riw7YOcDQor7J207KCQ7YOcDQor7J206rCV7Zi4DQor7J2064KZ7JqwDQor7J206riw7YOcDQor7J2064+E7ZGcDQor7J207KSA7YOcDQor7J207Jqp6rWsDQor7J206riw7YOcDQor7J206rOE7JWFDQor7J207ZWc7ZmYDQor7J207Zi47IigDQor7J206riw7Zi4DQor7J207IOB7Zi4DQor7J207ZaJ6re8DQor7J207IOB7JuQDQor7J206riw7Zi4DQor7J2066qF66y4DQor7J207Jqx7Jq0DQor7J207YOc7ZmYDQor7J206riw7Zi4DQor7J2065GQ7J28DQor7J2066eM64KoDQor7J207ISg7Zi4DQor7J206riw7ZmNDQor7J2066qF7KSRDQor7J2067OR7KSADQor7J2067aA64yADQor7J206riw7ZmNDQor7J207KCV7IiZDQor7J207KKF7ZiEDQor7J207Iic7J6QDQor7J206riw7ZmUDQor7J207LaY7IicDQor7J207ISx7ZiEDQor7J207YOc7JewDQor7J206riw7ZmYDQor7J207LaY7ISdDQor7J2067SJ7J28DQor7J207KCQ66GcDQor7J206riw7ZuIDQor7J207YOc6recDQor7J207IaM7IudDQor7J207KKF7IStDQor7J206ri47ISdDQor7J207Jqw67SJDQor7J207Iug7Je0DQor7J207JiB7KGwDQor7J206ri47ISgDQor7J207KKF7Zi4DQor7J207Z2s7Z2gDQor7J2064yA7ZiEDQor7J206ri47JqpDQor7J207Zi47IiZDQor7J207J6s7ZmYDQor7J207ISx7ISdDQor7J206ri47JqpDQor7J207IOB7Je9DQor7J207ZW06riwDQor7J207J6s7IicDQor7J206ri47J6sDQor7J20642V7ZmYDQor7J207Jil656YDQor7J207Z2s7KKFDQor7J206ri47J6sDQor7J207KCV7J2RDQor7J207Jqw7JqxDQor7J207KKF7KSRDQor7J206ri47LKgDQor7J2066+87IigDQor7J207KKF7IStDQor7J207J287JiBDQor7J206ri47YOcDQor7J207YOc7ISdDQor7J207LC97ZmUDQor7J207KeE66qpDQor7J206ri47ZWcDQor7J207YOc7IudDQor7J207Iic65OdDQor7J207Zqo7ZqMDQor7J206ri47Zi4DQor7J207KKF7IudDQor7J206rOE7IicDQor7J206rec64WADQor7J206ri47Zi4DQor7J207LKc7JuQDQor7J207KSR7Zi4DQor7J2067OR7KSADQor7J206ri47ZmYDQor7J207ISg7IOBDQor7J207LC97ISdDQor7J2064+Z7ISgDQor7J206ri47ZyYDQor7J207KKF6rK9DQor7J207Jyk7JqpDQor7J207KSA7ZeMDQor7J2064Ko6riwDQor7J2067aA7IudDQor7J207KKF7JikDQor7J207YOc7ZWZDQor7J2064Ko6riwDQor7J2064yA6re8DQor7J207KO87ZGcDQor7J207J287ZiVDQor7J2064Ko642VDQor7J207IOB7ZmYDQor7J207KKF7ZeMDQor7J207LGE6rWsDQor7J2064Ko7ISgDQor7J206rSR6rWsDQor7J207J6s7JiBDQor7J207J6s7JmEDQor7J2064Ko7IicDQor7J207KO87IudDQor7J207KCV67aEDQor7J207ZW07KO8DQor7J2064Ko7IigDQor7J207ISg66CsDQor7J207JiB67aEDQor7J2066qF7Z2sDQor7J2064Ko7LKgDQor7J206rK97Je0DQor7J207JiB7JuFDQor7J207YyQ64+ZDQor7J2064W46re8DQor7J206rSR6rWsDQor7J206rK97IOBDQor7J207YOc64+MDQor7J2064W47ISdDQor7J207ISx7ISxDQor7J207LGE7Z2sDQor7J207LC967CwDQor7J2064W47KKFDQor7J207KO87JqwDQor7J207KCV66eMDQor7J207JiB65GQDQor7J2064uk7IicDQor7J206riw66GdDQor7J207IOB7IigDQor7J207ZmY64+ZDQor7J2064us6rSADQor7J207ZiV7JyoDQor7J207YyQ7JewDQor7J207KCV7Zi4DQor7J2064us6riwDQor7J207Jil7JiBDQor7J207IiY7ISdDQor7J207Jqp7JqxDQor7J2064us6riwDQor7J2067aE7Jq0DQor7J2066qF66OhDQor7J2065Ox7KO8DQor7J2064us6riwDQor7J206rOE7JWUDQor7J207Jq066+8DQor7J207ZiE7JWUDQor7J2064us66GADQor7J207Iic7ZmYDQor7J207YOc7IudDQor7J207J2A7KO8DQor7J2064us66GcDQor7J207ZW07J6EDQor7J207JiB7IS4DQor7J207IOB7J20DQor7J2064us67SJDQor7J2067OR66GdDQor7J20IOyatA0KK+ydtOyEseyaqQ0KK+ydtOuLrOyCvA0KK+ydtOyduOyImA0KK+ydtO2VtOyXsA0KK+ydtO2YhOyInA0KK+ydtOuLrOyImA0KK+ydtOyLoOyerA0KK+ydtOyDgeuztQ0KK+ydtOuvvOuNlQ0KK+ydtOuLrOyYgQ0KK+ydtOyInOyXsA0KK+ydtOuPmeq4sA0KK+ydtO2VnO2biA0KK+ydtOuLrOyYgQ0KK+ydtOyImOyhsA0KK+ydtO2Yley2nA0KK+ydtOyjvOq1rQ0KK+ydtOuLrOyZhA0KK+ydtOyYge2MlA0KK+ydtOunjOuvuA0KK+ydtOyYpO2XjA0KK+ydtOuLrOybhQ0KK+ydtOuqheynhA0KK+ydtOyEuOq4sA0KK+ydtOyInOyjvA0KK+ydtOuLrOywvQ0KK+ydtOyasOy2nA0KK+ydtOu0ieydtQ0KK+ydtOyYgeyImA0KK+ydtOuLrOy0iA0KK+ydtOyYgeuemA0KK+ydtOyerOuPmQ0KK+ydtOqyve2ZmA0KK+ydtOuLrO2MjA0KK+ydtOyYge2ZmA0KK+ydtO2drOyatA0KK+ydtO2XjOynhA0KK+ydtOuLrO2PrA0KK+ydtOydvOu2hA0KK+ydtOuzkeyYgQ0KK+ydtOyEseq3nA0KK+ydtOuLrO2YuA0KK+ydtO2VhOywvQ0KK+ydtOygleunjA0KK+ydtOyasOq1rQ0KK+ydtOuLrO2YuA0KK+ydtOyasOu0iQ0KK+ydtOyyoOydgA0KK+ydtOyerO2YhA0KK+ydtOuLrO2YuA0KK+ydtOywrO2YuA0KK+ydtOyDgeyImA0KK+ydtOuqheyerA0KK+ydtOuLrO2YuA0KK+ydtOyiheyatA0KK+ydtOyyoOuPjA0KK+ydtO2VnOyVlA0KK+ydtOuLrO2ZlA0KK+ydtOyepeyYpQ0KK+ydtOq3vOq3vA0KK+ydtOyImOyekA0KK+ydtOuLrO2ZlA0KK+ydtO2VtOyEsQ0KK+ydtOyerO2VtA0KK+ydtOyViOyVlA0KK+ydtOuLrO2ctA0KK+ydtO2VnOu2hA0KK+ydtOygleyImA0KK+ydtOqyve2dlA0KK+ydtOuLrO2drA0KK+ydtOyInOq3oA0KK+ydtOuMgO2drA0KK+ydtOuzkeyImA0KK+ydtOuMgOuzkQ0KK+ydtOuPmeyEsQ0KK+ydtOq4sOynhA0KK+ydtOuPmeyImA0KK+ydtOuMgOyEnQ0KK+ydtOyYgeufiQ0KK+ydtOq4sOyynA0KK+ydtOyynOuNlQ0KK+ydtOuMgOyEsQ0KK+ydtOyInOyasA0KK+ydtOq4sOyInA0KK+ydtOyWteyImA0KK+ydtOuMgOyEsQ0KK+ydtOyWkeyXsA0KK+ydtOybkOunjA0KK+ydtOygkOyZhA0KK+ydtOuMgOyEuA0KK+ydtOuzkeufiQ0KK+ydtOq1re2VhA0KK+ydtOuzkeuzkQ0KK+ydtOuMgOyEuA0KK+ydtOynhOuztQ0KK+ydtO2XjOq4sA0KK+ydtO2DnOyasA0KK+ydtOuMgOyLnQ0KK+ydtOyduOuztQ0KK+ydtOyEneqyvQ0KK+ydtO2YuOynhA0KK+ydtOuMgOyLnQ0KK+ydtOuPmeq3vA0KK+ydtO2VtOyLnQ0KK+ydtO2DneyInA0KK+ydtOuMgOyaqQ0KK+ydtOq4sOyXsA0KK+ydtO2Yleq3nA0KK+ydtOyXsOyasQ0KK+ydtOuMgOyasA0KK+ydtO2YuOuztQ0KK+ydtOygleumvQ0KK+ydtOuzkeyXsA0KK+ydtOuMgOyasA0KK+ydtOyLnOyErQ0KK+ydtOuzkeyaqQ0KK+ydtOyEse2drA0KK+ydtOuMgOyasA0KK+ydtOuMgO2YhA0KK+ydtOyjvOyZhA0KK+ydtO2VmeyasA0KK+ydtOuMgOybkA0KK+ydtOyEne2ZjQ0KK+ydtOynhOyInA0KK+ydtOu0ieyYgQ0KK+ydtOuMgO2VrQ0KK+ydtOyDgeq1rA0KK+ydtOuRkOyYpA0KK+ydtOybkOyImA0KK+ydtOuMgO2biA0KK+ydtOq1reyLnQ0KK+ydtOu0ieuFuA0KK+ydtOydvOyVoA0KK+ydtOuMgO2biA0KK+ydtOyWuOyjvA0KK+ydtOyEuOyekA0KK+ydtOyLoOyLnQ0KK+ydtOuMgO2drA0KK+ydtO2XjOq3vA0KK+ydtOynhOy2nA0KK+ydtOuCqOyWtQ0KK+ydtOuNleuCqA0KK+ydtOuzteq2jA0KK+ydtOunkOyXsA0KK+ydtO2ZlOybkA0KK+ydtOuNleuFlQ0KK+ydtOy+jOuNlQ0KK+ydtOyInO2VtA0KK+ydtOyYgeyekA0KK+ydtOuNleuemA0KK+ydtOusuOq3nA0KK+ydtOyInOyImA0KK+ydtOqyveycpA0KK+ydtOuNleuwsA0KK+ydtOyImOyYgQ0KK+ydtO2DnOyLnQ0KK+ydtOunkO2YuA0KK+ydtOuNleu0iQ0KK+ydtOyEoOuCqA0KK+ydtOygleywrA0KK+ydtOygleyImA0KK+ydtOuNleu0iQ0KK+ydtO2VtOqwkQ0KK+ydtOyihe2drA0KK+ydtOygle2ZlA0KK+ydtOuNleyDgQ0KK+ydtOyjvOyInA0KK+ydtO2YhOuPhA0KK+ydtO2DnOyInA0KK+ydtOuNleyEnQ0KK+ydtO2DnO2ZmA0KK+ydtOydvOuNlQ0KK+ydtOybkO2YhA0KK+ydtOuNleyInA0KK+ydtOyYgeyaqQ0KK+ydtOuNleuCqA0KK+ydtOyjvOuztQ0KK+ydtOuNleyInA0KK+ydtOywrOywrA0KK+ydtOuNle2ZmA0KK+ydtOyiheumvA0KK+ydtOuNleyInA0KK+ydtOuPmeyekA0KK+ydtOuvuOyekA0KK+ydtOu0ieyDgQ0KK+ydtOuNleyYgQ0KK+ydtOynhOyXsA0KK+ydtOynhOuPmQ0KK+ydtO2VnOyhsA0KK+ydtOuNleyaqQ0KK+ydtOuNleyVoA0KK+ydtOybkOydtA0KK+ydtOyGjOyasA0KK+ydtOuNleycpA0KK+ydtO2DnOyImA0KK+ydtOyYpeyVoA0KK+ydtOyYge2ZmA0KK+ydtOuNleyerA0KK+ydtO2VtO2XjA0KK+ydtOygkOyduA0KK+ydtOyngOykgA0KK+ydtOuNle2YlQ0KK+ydtOyaqeyekA0KK+ydtOuFuOyImA0KK+ydtOyerO2WpQ0KK+ydtOuNle2YuA0KK+ydtOuMgOyImA0KK+ydtOygleyInA0KK+ydtOq0keuylA0KK+ydtOuNle2ZmA0KK+ydtOq1reyEuA0KK+ydtOyjvOuPmQ0KK+ydtOyDgeyXtA0KK+ydtOuNle2drA0KK+ydtOyasO2YhA0KK+ydtOywqOycqA0KK+ydtOyYgeyEnQ0KK+ydtOuNle2drA0KK+ydtOyDgeyjvA0KK+ydtOynhO2ZmA0KK+ydtOuCqOuNlQ0KK+ydtOuPhOq4sA0KK+ydtOq4uOyEsQ0KK+ydtOq0keynhA0KK+ydtOyerOybhQ0KK+ydtOuPhOyEnQ0KK+ydtO2DnOydvA0KK+ydtOyInO2aqA0KK+ydtOuPme2ZmA0KK+ydtOuPhOyEnQ0KK+ydtOyInOuNlQ0KK+ydtOyEuOyEoA0KK+ydtOyerO2VmA0KK+ydtOuPhOyImA0KK+ydtOuMgOyImA0KK+ydtOuPmeyYgQ0KK+ydtOyDgeyXtA0KK+ydtOuPhOybkA0KK+ydtOyYgeumvA0KK+ydtOynhOycpA0KK+ydtOyihe2DgQ0KK+ydtOuPhO2ZmA0KK+ydtOuPhO2drA0KK+ydtOyImO2ZmA0KK+ydtO2VnOyasA0KK+ydtOuPiOy2mA0KK+ydtOyDgeyXsA0KK+ydtOyInO2YhA0KK+ydtOuzke2YuA0KK+ydtOuPmeqxtA0KK+ydtOyaqeqwlQ0KK+ydtOybkOyerA0KK+ydtOyerOykgA0KK+ydtOuPmeq3nA0KK+ydtO2DnOuNlQ0KK+ydtOuCqOyInA0KK+ydtOyYgeyInA0KK+ydtOuPmeq3oA0KK+ydtOyerOyihQ0KK+ydtOuRkOyVhQ0KK+ydtOyEneyXtA0KK+ydtOuPmeq3oA0KK+ydtOyYge2YuA0KK+ydtOuLrOunjA0KK+ydtO2YhOuTnQ0KK+ydtOuPmeuFlQ0KK+ydtO2YhO2YuA0KK+ydtOyImO2DnA0KK+ydtOyasO2YhA0KK+ydtOuPmeuMgA0KK+ydtOyWkeyyoA0KK+ydtOuPme2ZmA0KK+ydtOyCsOygkA0KK+ydtOuPmeunjA0KK+ydtO2YnOqwlQ0KK+ydtO2DnOyaqQ0KK+ydtOyjvOyImA0KK+ydtOuPmeuwnA0KK+ydtO2MkOyDgQ0KK+ydtOyEoOyImA0KK+ydtOyduOybhQ0KK+ydtOuPmeu0iQ0KK+ydtOyerOq2jA0KK+ydtOy5mO2VmQ0KK+ydtO2drOyEoA0KK+ydtOuPmeyEnQ0KK+ydtOyDge2YuA0KK+ydtOq0keyngQ0KK+ydtOyYpeydtQ0KK+ydtOuPmeyEnQ0KK+ydtOydvO2YuA0KK+ydtO2VtO2aqA0KK+ydtOycpOyekA0KK+ydtOuPmeyEnQ0KK+ydtOygleq1rA0KK+ydtOuPiO2VmQ0KK+ydtOywrOyasA0KK+ydtOuPmeyImA0KK+ydtOydgOuTnQ0KK+ydtOu2gOyYpQ0KK+ydtOyerOq0kQ0KK+ydtOuPmeyInA0KK+ydtOyxhOq4uA0KK+ydtOygleuNlQ0KK+ydtOq3nO2ZmA0KK+ydtOuPmeyXtA0KK+ydtOyDgeyduA0KK+ydtOuCmeyImA0KK+ydtOyduO2biA0KK+ydtOuPmeyYpQ0KK+ydtOyDge2ZmA0KK+ydtOyWkeyImA0KK+ydtOyYgeyEnQ0KK+ydtOuPmeyasA0KK+ydtOuNle2drA0KK+ydtOqyveq1rQ0KK+ydtOywqOq1rA0KK+ydtOuPmeyatA0KK+ydtOygleyLnQ0KK+ydtOyYpO2XjA0KK+ydtOyEseyYgQ0KK+ydtOuPmeybkA0KK+ydtOyngOykgA0KK+ydtOygleqyvQ0KK+ydtO2DnOyyoA0KK+ydtOuPmeybkA0KK+ydtOuPme2drA0KK+ydtOyerOyLrQ0KK+ydtOq0keuMgA0KK+ydtOuPmeybkA0KK+ydtOyaqe2drA0KK+ydtOq3nOyImA0KK+ydtOyYgeyduA0KK+ydtOuPmeyjvA0KK+ydtO2DnO2YuA0KK+ydtOyEse2YuA0KK+ydtOybkOycpA0KK+ydtOuPmeywrA0KK+ydtOyYgeq3nA0KK+ydtOunjO2YuA0KK+ydtOqyveuPhA0KK+ydtOuPmeyynA0KK+ydtOuMgOyLnQ0KK+ydtOyehOyErQ0KK+ydtOuTne2DnA0KK+ydtOuPmeyyoA0KK+ydtOyYgeyIoA0KK+ydtOunjO2ZjQ0KK+ydtOyDge2VtA0KK+ydtOuPmeyyoA0KK+ydtOydvO2YuA0KK+ydtOqyveyInA0KK+ydtOqyveq4sA0KK+ydtOuPmeyyoA0KK+ydtOynhOuvuA0KK+ydtOyDgeq0gA0KK+ydtOyYgeyXtA0KK+ydtOuPmey2mA0KK+ydtOyepeyImA0KK+ydtOyInOyYpQ0KK+ydtOq0keyYpQ0KK+ydtOuPmey2mA0KK+ydtOyGjO2YhA0KK+ydtO2MkOynhA0KK+ydtOyEseydtA0KK+ydtOuPme2DnA0KK+ydtOywqOuPhA0KK+ydtOyCvOyXtA0KK+ydtOybheq3vA0KK+ydtOuPme2DnA0KK+ydtOustOyYpQ0KK+ydtO2YleuhnQ0KK+ydtOyaqeumrA0KK+ydtOuPme2VmQ0KK+ydtOyduO2ZmA0KK+ydtOyduOyaqQ0KK+ydtOuCqOyErQ0KK+ydtOuPme2VtA0KK+ydtOyYgeyekA0KK+ydtOyEseyerA0KK+ydtOygleq1rQ0KK+ydtOuPme2XjA0KK+ydtOqyve2DnA0KK+ydtO2Zje2YhA0KK+ydtOuMgOyLnQ0KK+ydtOuPme2XjA0KK+ydtOyerOygnA0KK+ydtOycpOyaqQ0KK+ydtOuvuOq0kQ0KK+ydtOuPme2YuA0KK+ydtOyehOyhsA0KK+ydtOyLneyDiQ0KK+ydtOyepeuCqA0KK+ydtOuPme2YuA0KK+ydtOyYge2VtA0KK+ydtO2VtOyYpQ0KK+ydtO2drOywvQ0KK+ydtOuPme2biA0KK+ydtOynhO2YuA0KK+ydtOyaqey2nA0KK+ydtOyDgeyEoA0KK+ydtOuPme2biA0KK+ydtOu0ieyErQ0KK+ydtO2DnO2YuA0KK+ydtO2DnOqyvQ0KK+ydtOuRkOyXtA0KK+ydtOyXsO2DnA0KK+ydtOunkOuPjA0KK+ydtO2ZlOyduA0KK+ydtOuRkOybkA0KK+ydtOygkOybkA0KK+ydtOywveuNlQ0KK+ydtOyImOuqqQ0KK+ydtOuRkOybkA0KK+ydtOyDgeyEsQ0KK+ydtOyerOykgA0KK+ydtOunjOyLnQ0KK+ydtOuRkOydtA0KK+ydtO2VmeuqqQ0KK+ydtOuzkeyImA0KK+ydtOyInO2ZjQ0KK+ydtOuRkO2YhA0KK+ydtOygleyImA0KK+ydtOyiheydvA0KK+ydtOyYgey2mA0KK+ydtOuRkO2YuA0KK+ydtOygleu2hA0KK+ydtOyImOyInA0KK+ydtO2YhOyLnQ0KK+ydtOuRkO2ZmA0KK+ydtOyDgeu2gA0KK+ydtOybheyZhA0KK+ydtOqxtOq2jA0KK+ydtOuRkO2drA0KK+ydtOyYgeybkA0KK+ydtOy2lO2DnA0KK+ydtOyEseyXtA0KK+ydtOuTneyasA0KK+ydtOyInOyEsQ0KK+ydtOyYgeuPhA0KK+ydtOyYgeyaqQ0KK+ydtOuTney2mA0KK+ydtO2DnOq1kA0KK+ydtOyImOybhQ0KK+ydtOyiheqzpA0KK+ydtOuegOyInA0KK+ydtOyImOyLnQ0KK+ydtOyYpOyLnQ0KK+ydtOycpOybkA0KK+ydtOuemOyXsA0KK+ydtOycpOq3oA0KK+ydtOyXsOyEsQ0KK+ydtOqyveyasA0KK+ydtOufieq3oA0KK+ydtOyYgeqwkA0KK+ydtOyiheujoQ0KK+ydtOyKueq3vA0KK+ydtOumrOyekA0KK+ydtOyYpeyDnQ0KK+ydtOyEoOqyvQ0KK+ydtOyEseywvQ0KK+ydtOunjOqyvQ0KK+ydtOyyoOq3vA0KK+ydtOuRkOykgA0KK+ydtOyDgeuPmQ0KK+ydtOunjOq3nA0KK+ydtOuqhe2ctA0KK+ydtO2DneyyoA0KK+ydtO2DnOuemA0KK+ydtOunjOq4sA0KK+ydtOyaqeybkA0KK+ydtOyCvOuFuA0KK+ydtOy2mOydvA0KK+ydtOunjOuPhA0KK+ydtOuqhe2YuA0KK+ydtOyEse2ctA0KK+ydtOygleycpA0KK+ydtOunjOyEnQ0KK+ydtOyImOyDgQ0KK+ydtOyInO2VmQ0KK+ydtOywveuqqA0KK+ydtOunjOyEnQ0KK+ydtOywqOyImQ0KK+ydtOu0ieuCqA0KK+ydtOy2mOyaqQ0KK+ydtOunjOyImA0KK+ydtOycpOyjvA0KK+ydtOyihe2ZmA0KK+ydtOyiheyImA0KK+ydtOunjOyImA0KK+ydtO2YuOynhA0KK+ydtOyYgeybkA0KK+ydtOydmO2XjA0KK+ydtOunjOyInA0KK+ydtO2YuOyerA0KK+ydtOygleusuA0KK+ydtOyYgeq1rA0KK+ydtOunjOyaqQ0KK+ydtOyEne2ZmA0KK+ydtOyCvO2XjA0KK+ydtOydteyihQ0KK+ydtOunjOyaqQ0KK+ydtOydvOyglQ0KK+ydtOyGjOyImA0KK+ydtOycoOyVlA0KK+ydtOunjOybkA0KK+ydtOyImOuTnQ0KK+ydtO2XjOyIoA0KK+ydtOyerOyEsQ0KK+ydtOunjOybkA0KK+ydtOuRkO2cmA0KK+ydtOyEoOq2jA0KK+ydtOyaqeyjvA0KK+ydtOunjOybkA0KK+ydtOyyoOyInA0KK+ydtOyepeunjA0KK+ydtOq2jOyatA0KK+ydtOunjOybkA0KK+ydtO2DnO2biA0KK+ydtOygkOyglQ0KK+ydtO2YhOyYpA0KK+ydtOunjOybkA0KK+ydtOyYpe2ZjQ0KK+ydtOywqOyatA0KK+ydtOyEne2DnA0KK+ydtOunjOyhsA0KK+ydtO2VnOq3nA0KK+ydtOuzkeusuA0KK+ydtO2YuOuekQ0KK+ydtOunjOynhA0KK+ydtOyKueyyoA0KK+ydtOyaqeuegA0KK+ydtOyInOyekA0KK+ydtOunjO2ZlA0KK+ydtO2YuOyIoA0KK+ydtOuzkeyatA0KK+ydtOuPmeq2jA0KK+ydtOunjO2aqA0KK+ydtOyerOyEoA0KK+ydtOyGjOyImA0KK+ydtOuzkeuNlQ0KK+ydtOunkOusuA0KK+ydtOyDgeyekA0KK+ydtOusuO2YuA0KK+ydtOy2lOyasQ0KK+ydtOunkOu2hA0KK+ydtOq4sO2DnA0KK+ydtOq4iOyXsA0KK+ydtOq0keyngA0KK+ydtOunkOyImQ0KK+ydtO2Zje2YuA0KK+ydtOyCvO2ZlA0KK+ydtOuqheyImA0KK+ydtOunkOyInA0KK+ydtOygleybhQ0KK+ydtOyatOydvA0KK+ydtOyXsO2YnA0KK+ydtOunkOyIoA0KK+ydtOyDgeuwsA0KK+ydtOuCqOynhA0KK+ydtOyiheq4sA0KK+ydtOunkOyXrA0KK+ydtOydhOyaqQ0KK+ydtOyYge2drA0KK+ydtOyEseydtA0KK+ydtOunkOyehA0KK+ydtOuNleyYgQ0KK+ydtOuzkeykgA0KK+ydtOyYgeq3oA0KK+ydtOunkOykgA0KK+ydtOyImOq0kQ0KK+ydtOygkOyjvA0KK+ydtOygleq2jA0KK+ydtOunkO2DnA0KK+ydtOqwleuNlQ0KK+ydtOyiheq4sA0KK+ydtOyaqeyekA0KK+ydtOunueyImA0KK+ydtOyerOyLnQ0KK+ydtOynhOyInA0KK+ydtO2XjOyEoA0KK+ydtOuptOq4sA0KK+ydtOygleyaqQ0KK+ydtOyLoOyInA0KK+ydtO2DnOq1rQ0KK+ydtOuptOyasA0KK+ydtOu0ieyyoA0KK+ydtOunjOyZhA0KK+ydtO2drOyLnQ0KK+ydtOuptO2drA0KK+ydtOynhOydtA0KK+ydtOydgOyImA0KK+ydtOq0keyjvA0KK+ydtOuqheq3vA0KK+ydtOq4uOyjvA0KK+ydtOyZhOqzhA0KK+ydtOunjO2drA0KK+ydtOuqheq4sA0KK+ydtOq4sOyYgQ0KK+ydtOuzke2DgQ0KK+ydtOyXsO2RnA0KK+ydtOuqheq4sA0KK+ydtOu0ieyWkQ0KK+ydtOyerO2YuA0KK+ydtOunkO2drA0KK+ydtOuqheuCqA0KK+ydtOyerOqyvQ0KK+ydtOyEsey2mA0KK+ydtOyEse2VmA0KK+ydtOuqheuMgA0KK+ydtOyiheyImQ0KK+ydtOyImOq4uA0KK+ydtOyihe2DnA0KK+ydtOuqheyEnQ0KK+ydtO2Yleq4sA0KK+ydtOynhOyyoA0KK+ydtOunjOq3vA0KK+ydtOuqheyEoA0KK+ydtOyiheyInA0KK+ydtO2DnOyErQ0KK+ydtOyihe2ZmA0KK+ydtOuqheyEoA0KK+ydtOyImOyImA0KK+ydtOq0keyhsA0KK+ydtOygle2DnA0KK+ydtOuqheyErQ0KK+ydtOyiheyaqQ0KK+ydtOygleyasA0KK+ydtOuPmeq3nA0KK+ydtOuqheyEsQ0KK+ydtOq4sOyasQ0KK+ydtOq4uOyEnQ0KK+ydtOu0ieq3vA0KK+ydtOuqheyEuA0KK+ydtOydmOuRkA0KK+ydtOqyveyDnQ0KK+ydtOyEney5oA0KK+ydtOuqheyImA0KK+ydtOuMgO2ZmA0KK+ydtOyaqe2YuA0KK+ydtOuzkeqzpA0KK+ydtOuqheyImA0KK+ydtOuPmeu2hA0KK+ydtO2MkOyyoA0KK+ydtOyYgeq4uA0KK+ydtOuqheyImA0KK+ydtOq3gOuCqA0KK+ydtOyImOuvuA0KK+ydtOqyveyEnQ0KK+ydtOuqheyImQ0KK+ydtOyEse2DnA0KK+ydtO2VtOyImQ0KK+ydtOqyveudvQ0KK+ydtOuqheyImQ0KK+ydtOyEseumrA0KK+ydtOyYgeyhsA0KK+ydtOykgOydtA0KK+ydtOuqheyInA0KK+ydtOustO2biA0KK+ydtO2aqO2VmQ0KK+ydtOygle2DnA0KK+ydtOuqheyInA0KK+ydtOqyveyekA0KK+ydtOyInOuPmQ0KK+ydtOuTseyLnQ0KK+ydtOuqheyIoA0KK+ydtOq0keybhQ0KK+ydtOydtOyhsA0KK+ydtOycpOuPjA0KK+ydtOuqheyIoA0KK+ydtOyEoOyasA0KK+ydtOyyoOq1rQ0KK+ydtOyInOyekA0KK+ydtOuqheyIoA0KK+ydtOyDgeu2hA0KK+ydtOu0ie2YuA0KK+ydtOyEseu2lQ0KK+ydtOuqheyVoA0KK+ydtOq4iOqzpA0KK+ydtOq4sOuTnQ0KK+ydtOuqheusuA0KK+ydtOuqheyXsA0KK+ydtOywqOyInA0KK+ydtOyaqe2ZmA0KK+ydtOq3nOyEsQ0KK+ydtOuqheyYpA0KK+ydtOusuO2ZmA0KK+ydtOyDgey2nA0KK+ydtOq4sOuPmQ0KK+ydtOuqheyYpA0KK+ydtOuwqeyImQ0KK+ydtOunkOyYgQ0KK+ydtO2DnOyImA0KK+ydtOuqheyYpA0KK+ydtOyYgeq4sA0KK+ydtO2XjOuqqQ0KK+ydtOyDgeydtA0KK+ydtOuqheybkA0KK+ydtOyXsO2drA0KK+ydtOydgOykgA0KK+ydtOyImO2PrA0KK+ydtOuqheyerA0KK+ydtOunkOywrA0KK+ydtOuzkeuTnQ0KK+ydtOy2mO2YlQ0KK+ydtOuqheyhsA0KK+ydtOyEseyYgQ0KK+ydtOq0keycpA0KK+ydtOygkOq1rA0KK+ydtOuqheynhA0KK+ydtOqyveywrA0KK+ydtOyDgeyasA0KK+ydtOuLrOyaqQ0KK+ydtOuqhe2VmQ0KK+ydtOyEseyImQ0KK+ydtOyEseq4sA0KK+ydtOycpOycpA0KK+ydtOuqhe2YuA0KK+ydtOuvuOydvA0KK+ydtOyYpOyImA0KK+ydtOuCqOq3oA0KK+ydtOuqhe2YuA0KK+ydtOyDgeq2jA0KK+ydtOyImO2drA0KK+ydtOygle2drA0KK+ydtOuqhe2ZmA0KK+ydtOyYgeyLnQ0KK+ydtOunjOyEsQ0KK+ydtOq3nOqzpA0KK+ydtOuqhe2ZmA0KK+ydtOq4sOuwsA0KK+ydtOyEseyerA0KK+ydtOyEseywrA0KK+ydtOuqhe2ZmA0KK+ydtOyEseyErQ0KK+ydtOyDgeyaqQ0KK+ydtO2VtOyglQ0KK+ydtOuqhe2ZmA0KK+ydtOqwle2DnA0KK+ydtOyiheuLrA0KK+ydtOyImOyImA0KK+ydtOuqhe2drA0KK+ydtOydkeyLnQ0KK+ydtOyDgeyIoA0KK+ydtOyduOusuA0KK+ydtOuqhe2drA0KK+ydtOycpOyErQ0KK+ydtOusuOyLnQ0KK+ydtO2cmOuqqQ0KK+ydtOuqhe2drA0KK+ydtOuqheyLnQ0KK+ydtOynhOyEsQ0KK+ydtOyYgeyImA0KK+ydtOuqhe2drA0KK+ydtOyYgeyXsA0KK+ydtOqwleycpA0KK+ydtOyerO2ZmA0KK+ydtOuqqOyEpA0KK+ydtOywveq3nA0KK+ydtO2VnOyekA0KK+ydtOq4sOuLrA0KK+ydtOusmOq4iA0KK+ydtOq3hOyYgQ0KK+ydtOq3ueyLnQ0KK+ydtOustOyaqQ0KK+ydtOustOq3vA0KK+ydtOyImOq4uA0KK+ydtOyyoOyImA0KK+ydtOuMgOyCvA0KK+ydtOustOyDnQ0KK+ydtOygleyEsQ0KK+ydtOyYgeyImA0KK+ydtOuNleq3nA0KK+ydtOustOyEoA0KK+ydtOyYgeyaqQ0KK+ydtOyYge2DnA0KK+ydtO2VtOyImQ0KK+ydtOustOyEsQ0KK+ydtOuPmeydvA0KK+ydtOyEseywvQ0KK+ydtOuwse2ZlA0KK+ydtOustOyInA0KK+ydtOyaqeyekA0KK+ydtOyiheyEnQ0KK+ydtOyImOydkQ0KK+ydtOustOyInA0KK+ydtOq4uOyXhQ0KK+ydtOyInO2XjA0KK+ydtOyDgeyYpQ0KK+ydtOustOyYgQ0KK+ydtOyduOuegA0KK+ydtOyerOyekA0KK+ydtOywqOyCvA0KK+ydtOustOyasA0KK+ydtOyYgeq4sA0KK+ydtOyYpey5oA0KK+ydtOydvOydtQ0KK+ydtOustOybhQ0KK+ydtOyngO2YuA0KK+ydtO2YhO2ajA0KK+ydtOyerOyLnQ0KK+ydtOustOydvA0KK+ydtOygleyLnQ0KK+ydtOyerOyEnQ0KK+ydtOyaqeyasA0KK+ydtOustOyehA0KK+ydtOyEseq4uA0KK+ydtOyngOyaqQ0KK+ydtO2XjO2YhA0KK+ydtOustOyynA0KK+ydtO2XjOyduA0KK+ydtO2drOq2jA0KK+ydtOq1reydgA0KK+ydtOustO2YhA0KK+ydtOyYgeyjvA0KK+ydtOy5mOuPmQ0KK+ydtOywve2ZmA0KK+ydtOustO2YhA0KK+ydtOq4uOq4sA0KK+ydtOuvuO2drA0KK+ydtOygleuNlQ0KK+ydtOustO2YuA0KK+ydtOuCqOuztQ0KK+ydtOyYge2ZmA0KK+ydtOykgOyasA0KK+ydtOustO2YuA0KK+ydtOygle2ZjQ0KK+ydtOyInO2DnQ0KK+ydtOyIme2YlQ0KK+ydtOustO2YuA0KK+ydtOyYgeyekA0KK+ydtOuPme2YhA0KK+ydtOu2gOuPmQ0KK+ydtOustO2ZmA0KK+ydtOyduOyImA0KK+ydtO2VtOyEoA0KK+ydtOyiheyaqQ0KK+ydtOusuOqwkQ0KK+ydtOuNleyImA0KK+ydtOyYgeyyoA0KK+ydtOyasOyDgQ0KK+ydtOusuOyLnQ0KK+ydtO2DnOyDgQ0KK+ydtOq3nOuvvA0KK+ydtOyDge2ZmA0KK+ydtOusuOyekA0KK+ydtOuqheyZhA0KK+ydtO2DnO2YhA0KK+ydtOynhO2WiQ0KK+ydtOusuOy2nA0KK+ydtOyYge2drA0KK+ydtOqyve2ZmA0KK+ydtOustOyInA0KK+ydtOusuO2DnA0KK+ydtOq4sOyerA0KK+ydtOyiheq3nA0KK+ydtOyiheyEnQ0KK+ydtOusuO2YuA0KK+ydtOywveybkA0KK+ydtOyYgeyyoA0KK+ydtOuzkeq4sA0KK+ydtOusuO2YuA0KK+ydtOy2mOq3nA0KK+ydtOyaqe2YuA0KK+ydtOuzkeyEoA0KK+ydtOuvuOqyvQ0KK+ydtOuvvOuPmQ0KK+ydtOygkO2ZmA0KK+ydtOyaqeuwsA0KK+ydtOuvuOqyvQ0KK+ydtOygleuegA0KK+ydtOunjOyyoA0KK+ydtO2Zje2YhA0KK+ydtOuvuOqyvQ0KK+ydtOuLrOywrA0KK+ydtOyEseunjA0KK+ydtOyDgeq3nA0KK+ydtOuvuOyEoA0KK+ydtOyYpe2biA0KK+ydtOqyve2YuA0KK+ydtOunjOyLnQ0KK+ydtOuvuOyImQ0KK+ydtO2YuOyDgQ0KK+ydtOyDgeyaqQ0KK+ydtOyZleyasA0KK+ydtOuvuOyImQ0KK+ydtOunjOy2nA0KK+ydtOyDgeuylA0KK+ydtOuMgO2drA0KK+ydtOuvuOyInA0KK+ydtOyImO2ZlA0KK+ydtOuMgOq3nA0KK+ydtOyImOyImA0KK+ydtOuvuOybkA0KK+ydtOyEse2YhA0KK+ydtOyduOyEsQ0KK+ydtOyYgeyImQ0KK+ydtOuvuOyekA0KK+ydtOyduOyEnQ0KK+ydtOyiheyViA0KK+ydtOyImOyImA0KK+ydtOuvuOyerA0KK+ydtOy2mOu2hA0KK+ydtOygleyImA0KK+ydtOusuO2biA0KK+ydtOuvuO2YhA0KK+ydtOyLneyekA0KK+ydtOywveuqhQ0KK+ydtOq0keybkA0KK+ydtOuvuO2YhA0KK+ydtOuMgO2drA0KK+ydtOu0ie2DgQ0KK+ydtOycpOq1sA0KK+ydtOuvvOyaqQ0KK+ydtOyiheuMgA0KK+ydtOyerOq0kQ0KK+ydtO2DnO2ZlA0KK+ydtOuvvOyasA0KK+ydtOuzteq1rA0KK+ydtOyDgeq3nA0KK+ydtOyerO2ZmA0KK+ydtOuvvOyerA0KK+ydtOyYgey2nA0KK+ydtOuPmeuNlQ0KK+ydtOygleybhQ0KK+ydtOuvvOykgA0KK+ydtOustOyaqQ0KK+ydtOq0keuqqA0KK+ydtOuNleybkA0KK+ydtOuvvOyyoA0KK+ydtO2ZjeyasA0KK+ydtOyjvOq4uA0KK+ydtOyjvOyImA0KK+ydtOuvvO2YuA0KK+ydtOu0ieuPmQ0KK+ydtOyEoOyLnQ0KK+ydtOuPmeujoQ0KK+ydtOuvvO2ZmA0KK+ydtOq4sOuTnQ0KK+ydtOyYgeyEoA0KK+ydtOyInO2VnA0KK+ydtOuwqeuCqA0KK+ydtO2XjO2drA0KK+ydtOyGjOyekA0KK+ydtOywqOykgA0KK+ydtOuwqeyLpA0KK+ydtOywveyyoA0KK+ydtO2VnOyImA0KK+ydtOyDge2YhA0KK+ydtOuwqeyasA0KK+ydtO2ZjeykgA0KK+ydtOq3nOyXtA0KK+ydtOyiheyLnQ0KK+ydtOuylA0KK+ydtOyehA0KK+ydtOyDgQ0KK+ydtOuMgA0KK+ydtOuylOqyvQ0KK+ydtOyYge2VnA0KK+ydtOyKueyXtA0KK+ydtOqzhOugqA0KK+ydtOuylOyEuA0KK+ydtOyYge2DnA0KK+ydtOuPhOuNlQ0KK+ydtOygleyjvA0KK+ydtOuylOyEuA0KK+ydtOyDge2DnQ0KK+ydtOyDgeuTnQ0KK+ydtOuzkey2nA0KK+ydtOuylOyEuA0KK+ydtOyYge2DnA0KK+ydtOyDgeq2jA0KK+ydtOycpOyInA0KK+ydtOuylOyInA0KK+ydtO2DnOq2jA0KK+ydtOuPmeugrA0KK+ydtO2DnOyImQ0KK+ydtOuylOyLnQ0KK+ydtOu0ie2YuA0KK+ydtO2Zje2ZmA0KK+ydtOyehOuFlQ0KK+ydtOuylOyasA0KK+ydtOy2mOyImQ0KK+ydtOyaqeydvA0KK+ydtOygleyEnQ0KK+ydtOuylOydtA0KK+ydtOyInOyaqQ0KK+ydtOu0ieyImA0KK+ydtO2drOyXtA0KK+ydtOuylO2DnQ0KK+ydtOyEseyInA0KK+ydtOyImOyEnQ0KK+ydtOyyoOyaqQ0KK+ydtOuzkeqxuA0KK+ydtOycpOq3vA0KK+ydtOyatOyVhA0KK+ydtOuPmeydmA0KK+ydtOuzkeq1rQ0KK+ydtOyEneq2jA0KK+ydtOyYgeyasA0KK+ydtOqyveyYgQ0KK+ydtOuzkeq1rQ0KK+ydtOyduOuztQ0KK+ydtOyEseyaqQ0KK+ydtO2YnOyEsQ0KK+ydtOuzkeq2jA0KK+ydtOyGjOyEnQ0KK+ydtOyYgeydtA0KK+ydtOyduOy2mA0KK+ydtOuzkeq2jA0KK+ydtOyiheyXsA0KK+ydtOq1reuMgA0KK+ydtOyerOq1rA0KK+ydtOuzkeq3nA0KK+ydtOyImOu2gA0KK+ydtOuzke2YuA0KK+ydtOuMgOyImA0KK+ydtOuzkeq3nA0KK+ydtOygleu2hA0KK+ydtOydtOyLnQ0KK+ydtOunjO2PiQ0KK+ydtOuzkeq3uQ0KK+ydtOygleyasA0KK+ydtOydhOq3nA0KK+ydtOyImO2YuA0KK+ydtOuzkeq3uQ0KK+ydtOyDgeyyoA0KK+ydtOqxtOyYgQ0KK+ydtOyblOynhA0KK+ydtOuzkeq4uA0KK+ydtO2VnOuzkQ0KK+ydtOygleybkA0KK+ydtOyEneuNlQ0KK+ydtOuzkeuTnQ0KK+ydtOuqheyImA0KK+ydtO2aqOydtQ0KK+ydtOyjvOyjvA0KK+ydtOuzkeustA0KK+ydtOygleyasA0KK+ydtO2DnO2DnA0KK+ydtOyEneq3vA0KK+ydtOuzkeyCvA0KK+ydtO2MkOyYgQ0KK+ydtOyerO2ZmA0KK+ydtOybkO2YuA0KK+ydtOuzkeyEoA0KK+ydtOykgO2drA0KK+ydtO2DnOyEnQ0KK+ydtOq0keq4sA0KK+ydtOuzkeyGjA0KK+ydtOusuO2YhA0KK+ydtOy2mOuRkA0KK+ydtOuLrO2YuA0KK+ydtOuzkeyImA0KK+ydtOyEseyihQ0KK+ydtOuCnOuztQ0KK+ydtOydvO2drA0KK+ydtOuzkeyLnQ0KK+ydtOywveyYgQ0KK+ydtOyaqeydvA0KK+ydtOywveyEnQ0KK+ydtOuzkeyYpQ0KK+ydtOygle2YhA0KK+ydtOygleuFhA0KK+ydtOuqheyduA0KK+ydtOuzkeyasA0KK+ydtO2DnOyasQ0KK+ydtOyYgeydtQ0KK+ydtOygleyekA0KK+ydtOuzkeyasQ0KK+ydtOyaqe2YuA0KK+ydtOyduOyInA0KK+ydtOyInOyasQ0KK+ydtOuzkeybkA0KK+ydtOuvuO2YuA0KK+ydtOyiheunjA0KK+ydtOyEneuLrA0KK+ydtOuzkeybkA0KK+ydtOyDgey2mA0KK+ydtOyerOyjvA0KK+ydtO2Vme2drA0KK+ydtOuzkeycpA0KK+ydtOyCvOyImQ0KK+ydtOyyoOydgA0KK+ydtOy2qe2VtA0KK+ydtOuzkeyduA0KK+ydtOy2mO2YhA0KK+ydtOygle2DnA0KK+ydtOuemO2YuA0KK+ydtOuzkeyerA0KK+ydtOyYge2drA0KK+ydtOyiheuztQ0KK+ydtOqwke2drA0KK+ydtOuzkeyglQ0KK+ydtOq3nOuztQ0KK+ydtOy5oOq3nA0KK+ydtOuqheq4sA0KK+ydtOuzkeyjvA0KK+ydtO2DnO2ZmA0KK+ydtOyaqeykgA0KK+ydtOusuOyehA0KK+ydtOuzkeyjvA0KK+ydtO2ZlOyImA0KK+ydtOuNleuPmQ0KK+ydtOygkOuztA0KK+ydtOuzkeykgA0KK+ydtOunjOyEoA0KK+ydtO2VtOyglQ0KK+ydtOuLtOyInA0KK+ydtOuzkeywrA0KK+ydtOq4iOyEoA0KK+ydtOyaqeq3nA0KK+ydtO2VnOyatA0KK+ydtOuzkeyynA0KK+ydtOyYgeqzpA0KK+ydtOyduOygkA0KK+ydtOuzkeyyoA0KK+ydtOuzkeyyoA0KK+ydtOyYge2biA0KK+ydtOq3nOq4sA0KK+ydtOyYgeqzpA0KK+ydtOuzkeyyoA0KK+ydtOyerOyasA0KK+ydtOycpOuylA0KK+ydtO2VreyasA0KK+ydtOuzkeyyoA0KK+ydtOyYgeyngA0KK+ydtOyaqe2WpQ0KK+ydtOyiheykgA0KK+ydtOuzkeyyoA0KK+ydtOyaqeq4sA0KK+ydtOydtOyaqQ0KK+ydtO2VmeyyoA0KK+ydtOuzke2DnA0KK+ydtOyEseqzpA0KK+ydtOyGkO2DnA0KK+ydtOuMgOyEoA0KK+ydtOuzke2DnQ0KK+ydtOqwle2YuA0KK+ydtOunjOq3nA0KK+ydtOyYge2YuA0KK+ydtOuzke2DnQ0KK+ydtOqyveyLnQ0KK+ydtOyImOq1rQ0KK+ydtOywveq3vA0KK+ydtOuzke2VhA0KK+ydtOygley2mA0KK+ydtO2DnOq3vA0KK+ydtOq4sOuNlQ0KK+ydtOuzke2VmA0KK+ydtOygleyXvA0KK+ydtOyaqeyekA0KK+ydtOq4uOyYpQ0KK+ydtOuzke2VmA0KK+ydtOyImOuemA0KK+ydtOyWke2YhA0KK+ydtOuMgOyyoA0KK+ydtOuzke2VnA0KK+ydtOuzteyEoA0KK+ydtO2YuOuPhA0KK+ydtOykkeyekA0KK+ydtOuzke2VtA0KK+ydtOuRkOyEnQ0KK+ydtOyInOuemA0KK+ydtOq0gO2VmA0KK+ydtOuzke2YlQ0KK+ydtOuNleyEnQ0KK+ydtOyerOyhsA0KK+ydtOuzkeuMgA0KK+ydtOuzke2YuA0KK+ydtOyYgeunjA0KK+ydtOuRkO2YuA0KK+ydtOywveq4uA0KK+ydtOuzke2YuA0KK+ydtOykkeyatA0KK+ydtOunjO2ZmA0KK+ydtOyDgeyErQ0KK+ydtOuzke2ZjQ0KK+ydtOu2hOyEoA0KK+ydtOyEne2ZmA0KK+ydtO2Zjeq4sA0KK+ydtOuzke2ZlA0KK+ydtOuztOq3vA0KK+ydtOyWkeu0iQ0KK+ydtOyInOuPhA0KK+ydtOuzke2ZlA0KK+ydtOyEoOq3nA0KK+ydtOyerOybkA0KK+ydtOyEoOuPmQ0KK+ydtOuzke2ZlA0KK+ydtOyerOyXsA0KK+ydtOyGjOyEoA0KK+ydtOyEseyekA0KK+ydtOuzke2drA0KK+ydtOqyve2ZlA0KK+ydtO2DnOyEnA0KK+ydtO2DnO2VmQ0KK+ydtOuztOqzpA0KK+ydtOyiheustA0KK+ydtOq4sOu0iQ0KK+ydtOygleyXtA0KK+ydtOuztO2YhA0KK+ydtOyEneyerA0KK+ydtOyEseyEsQ0KK+ydtOuRkO2YuA0KK+ydtOuzteuPhA0KK+ydtOyynOq3vA0KK+ydtOyYge2YuA0KK+ydtO2MkOykkQ0KK+ydtOuzteumvA0KK+ydtOyasOyIoA0KK+ydtOydhOq4sA0KK+ydtOycpOyEnQ0KK+ydtOuzteyDnQ0KK+ydtO2YhOq4uA0KK+ydtOyasOuloA0KK+ydtOuqheu2gA0KK+ydtOuzteyIoA0KK+ydtOyerOujoQ0KK+ydtO2YuO2DnQ0KK+ydtOq0keq1kA0KK+ydtOuzteyLpA0KK+ydtOyiheqyvQ0KK+ydtOuMgOyEnQ0KK+ydtOyInOuztA0KK+ydtOuzteyaqQ0KK+ydtO2DnOyInA0KK+ydtOqyveyLnQ0KK+ydtOyIme2drA0KK+ydtOuzteyasA0KK+ydtCDsmqkNCivsnbTsiJztmLgNCivsnbTstpjrrLQNCivsnbTrs7Xsp4QNCivsnbTsmqnsp4QNCivsnbTrj5nqt7wNCivsnbTsmqnsmIENCivsnbTrs7XstpwNCivsnbTtmJXsiJgNCivsnbTsnbztg50NCivsnbTsmIHspJENCivsnbTrs7XtmIQNCivsnbTsspzstpwNCivsnbTshJ3tmZgNCivsnbTsnoTsmYQNCivsnbTrtInqs6QNCivsnbTsnqXshK0NCivsnbTtmLjrnpgNCivsnbTquLDtmLgNCivsnbTrtInqs6QNCivsnbTsnqzsiJwNCivsnbTro6HsnbgNCivsnbTqsr3si50NCivsnbTrtInqt5wNCivsnbTsg4HsiJwNCivsnbTsooXtmLgNCivsnbTtmZjsi50NCivsnbTrtInquLANCivsnbTsoJXssqANCivsnbTspJHtmZgNCivsnbTsnbTrtIkNCivsnbTrtInquLANCivsnbTsnYDso7wNCivsnbTsnKTslaANCivsnbTsg4HstpwNCivsnbTrtInquLgNCivsnbTsg4HtmLgNCivsnbTrjIDsi50NCivsnbTsl7DsmqkNCivsnbTrtInrhYANCivsnbTrtoDqtJENCivsnbTsg4HtmZgNCivsnbTqtJHtmZgNCivsnbTrtInrhYANCivsnbTrk53sl7ANCivsnbTsnbjsnoQNCivsnbTsnZjtmZQNCivsnbTrtInrjIANCivsnbTtmLjrqqgNCivsnbTspJHshJ0NCivsnbTsmKTquLANCivsnbTrtInrnpgNCivsnbTquLDsiKANCivsnbTsm5Drj4QNCivsnbTssKjsl7ANCivsnbTrtInrqqgNCivsnbTsmbjsobANCivsnbTrj5nsmqkNCivsnbTquLDtjJQNCivsnbTrtInshKANCivsnbTqs6TquLANCivsnbTsnbXqsr0NCivsnbTssL3sp4ANCivsnbTrtInsmIENCivsnbTsnqzshLENCivsnbTsooXrgqgNCivsnbTsoJXtmLgNCivsnbTrtInso7wNCivsnbTsoJDrqoUNCivsnbTsiJjshK0NCivsnbTquLDtlZwNCivsnbTrtInssqANCivsnbTsmqntmIQNCivsnbTsmKXrj5kNCivsnbTtl4ztmowNCivsnbTrtInstpgNCivsnbTspJHrtoANCivsnbTtnJjrj5kNCivsnbTsmrHsiJgNCivsnbTrtIntl4wNCivsnbTsm5TstpgNCivsnbTsmqnqtawNCivsnbTsg4Hrs7UNCivsnbTrtIntmZgNCivsnbTsmIHqtJENCivsnbTsiKDsiJkNCivsnbTsg4Hrj4QNCivsnbTrtIntmZgNCivsnbTsg4HshLgNCivsnbTsiJzsiJwNCivsnbTsg4Hrs7UNCivsnbTrtIntnawNCivsnbTsooXsmKUNCivsnbTsmIHsiJwNCivsnbTspJHqt5wNCivsnbTrtoDquLgNCivsnbTsmIHtg5wNCivsnbTsnqXsiJwNCivsnbTqtZDsmqkNCivsnbTrtoDrj4wNCivsnbTsoJXstpwNCivsnbTssL3rsLANCivsnbTri6zshLENCivsnbTrtoDshLgNCivsnbTso7ztmZgNCivsnbTsmbjroZ0NCivsnbTtmITtmZgNCivsnbTrtoDsl7QNCivsnbTtmZjqsr0NCivsnbTsuaDstpwNCivsnbTqt5zsnbQNCivsnbTrtoTquLANCivsnbTshJ3smrQNCivsnbTstpjsi50NCivsnbTtlZzsm4UNCivsnbTrtoTrgpwNCivsnbTsnZHtmLgNCivsnbTsoJXquLANCivsnbTshLHsiJwNCivsnbTrtoTrgqgNCivsnbTrr7jtmJUNCivsnbTsmqntlZwNCivsnbTsmqnsiJkNCivsnbTrtoTrgqgNCivsnbTtlYTrqqgNCivsnbTsnYTqs4QNCivsnbTsl7Dsi50NCivsnbTrtoTshKANCivsnbTsnqzsnbwNCivsnbTsnqztnawNCivsnbTtg5zsi50NCivsnbTrtoTsl7ANCivsnbTstqnsmrANCivsnbTqt5zssqANCivsnbTsooXsl7ANCivsnbTrtoTsmIENCivsnbTshJ3tlZkNCivsnbTrs5Hqt5wNCivsnbTshLHshKANCivsnbTrtoTsnbQNCivsnbTshLHshKANCivsnbTtmLjsirkNCivsnbTrqoXsiJwNCivsnbTrtoTsnbQNCivsnbTslYjsl7QNCivsnbTsnbztlZwNCivsnbTsmKTsmqkNCivsnbTrtoTsnbQNCivsnbTsnqzsmrENCivsnbTsnqztg5wNCivsnbTsnbjtlqUNCivsnbTrtoTsobANCivsnbTqt4Drj4QNCivsnbTrj4TquLgNCivsnbTsnqzqta0NCivsnbTrtoTsobANCivsnbTrs5HtnawNCivsnbTspJHtmIENCivsnbTsspzstpgNCivsnbTrtoTtlZkNCivsnbTshKDspIANCivsnbTso7zshKANCivsnbTqsr3qsr0NCivsnbTrtoTtnawNCivsnbTqsJHqt5wNCivsnbTtnaXtlZgNCivsnbTsnbjsmrQNCivsnbTruJ3shLgNCivsnbTsmqnquLgNCivsnbTshoztnawNCivsnbTrs5HsmZUNCivsnbTsgqzroKgNCivsnbTsuaDtmLgNCivsnbTsnbTsmqkNCivsnbTsp4DquLANCivsnbTsgqzsobANCivsnbTtmLjsoJUNCivsnbTtmITrj4wNCivsnbTsiJjtg5wNCivsnbTsgrzrjZUNCivsnbTsnqzshJ0NCivsnbTsoJXsnpANCivsnbTtmLjsi50NCivsnbTsgrzrnpENCivsnbTssKjqsJANCivsnbTsl7DstpgNCivsnbTsooXshLENCivsnbTsgrzsiJgNCivsnbQg7ZmYDQor7J206rCR7IStDQor7J207Iic6rWsDQor7J207IK87IiYDQor7J2067aE6re8DQor7J207IK87IiYDQor7J207KO864+ZDQor7J207IK87IiYDQor7J207KCV7JiBDQor7J207JuQ67SJDQor7J207LCo7ZiEDQor7J207IK87JiBDQor7J207ZW07KeEDQor7J207KCV7Z2sDQor7J2067OR66y4DQor7J207IK87JqpDQor7J207YOc7J2YDQor7J206riw7IiZDQor7J207J247ZmYDQor7J207IK87KGwDQor7J207KKF7JikDQor7J207Jqp67O1DQor7J207KKF7IugDQor7J207IK87KGwDQor7J2066eM6recDQor7J207Jq07JqpDQor7J2067SJ7JqpDQor7J207IK87ZuIDQor7J207IK86rK9DQor7J207ZW07IudDQor7J207Lmg7YOcDQor7J207IOB6rK9DQor7J207IiY7KeEDQor7J207KeE7Jq0DQor7J207LKc7IahDQor7J207IOB6rK9DQor7J207ZWc7IicDQor7J207J2E7IiYDQor7J207Iq57ZmYDQor7J207IOB6rWsDQor7J207KKF7Jq0DQor7J207JiB7J6EDQor7J207J6l7YOBDQor7J207IOB6recDQor7J207KCV7JqwDQor7J207KSR66y0DQor7J207Kad7ZmYDQor7J207IOB6regDQor7J2066qF7IudDQor7J207IaM7KCVDQor7J207LCs67CVDQor7J207IOB6re8DQor7J207Jil6riwDQor7J2066y47Z2sDQor7J206re87Zi4DQor7J207IOB6re8DQor7J2067SJ6rG0DQor7J207Jqp67CwDQor7J207ISg7IiYDQor7J207IOB6re8DQor7J207ZW07Zi4DQor7J207JiB7IigDQor7J207IiY6riIDQor7J207IOB6riwDQor7J2067OR7KO8DQor7J2066y07ISgDQor7J207KO87KeBDQor7J207IOB6riwDQor7J207KSA7JiBDQor7J207YOc7ZuIDQor7J207LKg7YyQDQor7J207IOB6riwDQor7J2064Ko6re8DQor7J207KCV6riwDQor7J207KCV7KCVDQor7J207IOB6ri4DQor7J207J6E7JqpDQor7J207KCV7LacDQor7J207JWI7ZuIDQor7J207IOB64usDQor7J207YOc7LKgDQor7J206rG06rSADQor7J207KCV7Y+JDQor7J207IOB64yADQor7J2067aE7IOBDQor7J207LCo7IicDQor7J207YyQ7JqpDQor7J207IOB64yADQor7J2064+Z7IiYDQor7J207Jqp6re8DQor7J207Iic67SJDQor7J207IOB642VDQor7J207Z2s7JWUDQor7J206re86rK9DQor7J2067OR642VDQor7J207IOB64+EDQor7J207KCQ7J28DQor7J207Jqw6riwDQor7J206rSR7J6QDQor7J207IOB64+IDQor7J207JiB6rWsDQor7J207YOc6recDQor7J2067O17LCoDQor7J207IOB64+IDQor7J207LCs7KSADQor7J207Jqp66qoDQor7J207KCV7JqpDQor7J207IOB65OdDQor7J2066+87IiYDQor7J2064+Z64+MDQor7J207KO87YOcDQor7J207IOB656ADQor7J207Iic7JuQDQor7J2064+E7Zi4DQor7J207JiB7JilDQor7J207IOB66GdDQor7J206rK97LacDQor7J206rSR7IudDQor7J2066y464+EDQor7J207IOB66GdDQor7J207IiY7IudDQor7J207KCV7KKFDQor7J207ISx7ISdDQor7J207IOB66WgDQor7J2064Ko7Z2sDQor7J2067OR7IStDQor7J207J6s6rWQDQor7J207IOB66qoDQor7J207YOc7JqwDQor7J207ISx7IicDQor7J207JuQ6riwDQor7J207IOB66y4DQor7J207JiB7J20DQor7J207Jik7LKcDQor7J207JiB7KGwDQor7J207IOB66+8DQor7J207LC97KO8DQor7J207ZeM7LKgDQor7J207KKF7JuFDQor7J207IOB67CwDQor7J207Zi47YOcDQor7J207ISx642VDQor7J207IOB656YDQor7J207IOB67O1DQor7J207J6s7ZiEDQor7J207KKF7JqpDQor7J207KKF7Z2sDQor7J207IOB67O1DQor7J20IOyImA0KK+ydtO2ZmOy2nA0KK+ydtOuzkeyYgQ0KK+ydtOyDgeuztQ0KK+ydtOunjOyaqQ0KK+ydtOq3vOyEnQ0KK+ydtOyImO2drA0KK+ydtOyDgeu0iQ0KK+ydtOyCvO2ZmA0KK+ydtOyImOyImA0KK+ydtO2DnOyYpQ0KK+ydtOyDgeu0iQ0KK+ydtO2drO2YhA0KK+ydtOygle2YhA0KK+ydtO2VmeykgA0KK+ydtOyDgeu5iA0KK+ydtOuzkeuTnQ0KK+ydtO2Vme2YuA0KK+ydtOyjvOu0iQ0KK+ydtOyDgeyEoA0KK+ydtOustOuPjA0KK+ydtOuMgOyImA0KK+ydtOyiheuPmQ0KK+ydtOyDgeyErQ0KK+ydtOyYgeq3nA0KK+ydtOqyveykkQ0KK+ydtO2YhOyyoA0KK+ydtOyDgeyImA0KK+ydtOywrOyEsQ0KK+ydtOuRkOu2hA0KK+ydtOyInOuhnQ0KK+ydtOyDgeyImA0KK+ydtOygleyDnQ0KK+ydtOyYgeq4uA0KK+ydtOyasOyaqQ0KK+ydtOyDgeyImA0KK+ydtOuNleq4sA0KK+ydtOyInO2drA0KK+ydtOyaqeyEnQ0KK+ydtOyDgeyImQ0KK+ydtOygley0jA0KK+ydtOyEseuCqA0KK+ydtOqyveyCvA0KK+ydtOyDgeyImQ0KK+ydtOyCrOyasA0KK+ydtOyEseq3vA0KK+ydtO2DnOyXvQ0KK+ydtOyDgeyImQ0KK+ydtOyaqeynhA0KK+ydtOyyoO2YuA0KK+ydtOyYgeuztQ0KK+ydtOyDgeyLnQ0KK+ydtOyaqeuPmQ0KK+ydtO2DnOyYgQ0KK+ydtO2Zje2DnA0KK+ydtOyDgeyWuA0KK+ydtOykgOyyoA0KK+ydtO2drO2ZmA0KK+ydtOyduOuemA0KK+ydtOyDgeyXsA0KK+ydtOyggeybkA0KK+ydtO2YhO2drA0KK+ydtOuPmeq4sA0KK+ydtOyDgeyXtA0KK+ydtOyWte2ajA0KK+ydtOyCvOyDnQ0KK+ydtO2VtO2DnA0KK+ydtOyDgeyXtA0KK+ydtO2drOyasQ0KK+ydtO2YuOyYgQ0KK+ydtOuPme2RnA0KK+ydtOyDgeyXtA0KK+ydtO2DnOqwkQ0KK+ydtOq3nOyYpQ0KK+ydtOyKueydtA0KK+ydtOyDgeyXtA0KK+ydtOunjOyDnQ0KK+ydtOybkOyImA0KK+ydtOyEseyImA0KK+ydtOyDgeyXtA0KK+ydtOq4sOyImA0KK+ydtOydhO2XjA0KK+ydtO2cmOuNlQ0KK+ydtOyDgeyXtA0KK+ydtO2XjOyLnQ0KK+ydtOygle2doA0KK+ydtOydvOyDgQ0KK+ydtOyDgeyYgQ0KK+ydtO2DnOynhA0KK+ydtOuPhO2drA0KK+ydtO2VnO2ZmA0KK+ydtOyDgeyYpA0KK+ydtOyZleydtA0KK+ydtOyjvOyXsA0KK+ydtOyngO2ajA0KK+ydtOyDgeyZhA0KK+ydtOyDgeuNlQ0KK+ydtOustO2YuA0KK+ydtOyEuO2YhA0KK+ydtOyDgeyaqQ0KK+ydtOq3nOq1kA0KK+ydtO2YhOyEsQ0KK+ydtOygle2DnA0KK+ydtOyDgeyaqQ0KK+ydtOyDgeuLrA0KK+ydtCDsi50NCivsnbTsmbjsobANCivsnbTsg4HsmqkNCivsnbTspIDshJ0NCivsnbTsnZjtlZwNCivsnbTrjZXsiJwNCivsnbTsg4HsmrANCivsnbTsoJXsi50NCivsnbTrqoXqt7wNCivsnbTqsr3smKUNCivsnbTsg4HsmrANCivsnbTsg4HsnpANCivsnbTsoJXtmZgNCivsnbTtg5zrspQNCivsnbTsg4HsmrENCivsnbTsnqztmY0NCivsnbTspJHtjJANCivsnbTtg5ztg5wNCivsnbTsg4HsmrQNCivsnbTtg5zsiKANCivsnbTrnoDtmIQNCivsnbTtg5zsmIENCivsnbTsg4Hsm5ANCivsnbTsoJXrk50NCivsnbTsmIHssqANCivsnbTtmY3rj5kNCivsnbTsg4Hsm5ANCivsnbTtmZTsiJgNCivsnbTqsJHsl7QNCivsnbTsmKXsnKgNCivsnbTsg4HsnKQNCivsnbTrs5HtmLgNCivsnbTtmJztmIQNCivsnbTsnqXrtIkNCivsnbTsg4HsnKQNCivsnbTsoITtlYQNCivsnbTsg4HshJ0NCivsnbTsoJXrj5kNCivsnbTsg4HsnYANCivsnbTsnbjsl70NCivsnbTtjL3shKANCivsnbTsmIHsl6wNCivsnbTsg4HsnbwNCivsnbTrtInsmqkNCivsnbTsooXsnbQNCivsnbTqsr3ssqANCivsnbTsg4HsnbwNCivsnbTrgqjquLANCivsnbTsmqnrj4QNCivsnbTsmIHsiJwNCivsnbTsg4HsnbwNCivsnbTqt5zsiJgNCivsnbTquLDsi6ANCivsnbTrgqjshJ0NCivsnbTsg4HsnqwNCivsnbTqtJHsi50NCivsnbTrr7jtg5wNCivsnbTsooXqs6QNCivsnbTsg4HsoJUNCivsnbTslZTsiJgNCivsnbTqsJDsl7QNCivsnbTsnYTsnYANCivsnbTsg4HsobANCivsnbTrtoTqt5wNCivsnbTri6zssqANCivsnbTtg5zrspQNCivsnbTsg4HsobANCivsnbTsmIHsl7ANCivsnbTssKjtg50NCivsnbTsmIHso7wNCivsnbTsg4HspIANCivsnbTrtInsiJgNCivsnbTtjJDsmrQNCivsnbTsnqzsl7QNCivsnbTsg4Hsp4ENCivsnbTsmIHssqANCivsnbTrqoXquLgNCivsnbTrr7zsiJgNCivsnbTsg4Hsp4ENCivsnbTsoJDsoJUNCivsnbTsmqnrnoANCivsnbTshJ3sspwNCivsnbTsg4Hsp4QNCivsnbTrjIDrk50NCivsnbTsg4Hsg4ENCivsnbTqta3shKANCivsnbTsg4HsspwNCivsnbTsiJzquLgNCivsnbTsooXrjIANCivsnbTspJHsm4UNCivsnbTsg4HsspwNCivsnbTsnbTsi50NCivsnbTsmrDsi50NCivsnbTsmIHrtoQNCivsnbTsg4HsspwNCivsnbTsmIHqtIANCivsnbTsmIHtg5wNCivsnbTsmIHshKANCivsnbTsg4HssqANCivsnbTssL3tg5wNCivsnbTsnqzsg50NCivsnbTsmIHrk50NCivsnbTsg4HssqANCivsnbQg6rWsDQor7J207KCV656ADQor7J207Jyk7IicDQor7J207IOB7LKgDQor7J206riw7JiBDQor7J207YOc7KSADQor7J207ISx7ZmYDQor7J207IOB7LKgDQor7J207J247IigDQor7J206rSR7JilDQor7J207IS46rWtDQor7J207IOB7LKgDQor7J207KO86rK9DQor7J206rK967aEDQor7J207J6s7KeEDQor7J207IOB7LKgDQor7J207Lmg7LKgDQor7J207ISd6rWQDQor7J2064+Z7JqwDQor7J207IOB7LKgDQor7J207IK87ZmYDQor7J2064+E7ISgDQor7J2064yA7IiYDQor7J207IOB7LKgDQor7J207KO87ISxDQor7J207ZW06recDQor7J207J6s7IiYDQor7J207IOB7YOBDQor7J207KeE66eMDQor7J206rec6rKBDQor7J207Jil7J6sDQor7J207IOB7YOcDQor7J207J2E7J6QDQor7J207IiY66y4DQor7J207YOc6ri4DQor7J207IOB7YOcDQor7J207JuQ7IicDQor7J207J6s7J6QDQor7J2064+Z67O4DQor7J207IOB7YOcDQor7J207IOB7IStDQor7J2064yA6ri4DQor7J206riw7KeEDQor7J207IOB7ZWZDQor7J2066qF7JmEDQor7J207KCV7Zi4DQor7J207J247LacDQor7J207IOB7ZWcDQor7J207Jik7ISdDQor7J207KCV7LKgDQor7J207KKF7ZuIDQor7J207IOB7ZW0DQor7J206re87ZmYDQor7J206re87J6EDQor7J206riw7IudDQor7J207IOB7ZeMDQor7J207IaM64+ZDQor7J207J247IiZDQor7J207KSR7ISgDQor7J207IOB7ZiEDQor7J207KSA7Zi4DQor7J207Zqo7Zi4DQor7J207Jqw7IOBDQor7J207IOB7ZiEDQor7J207IOB6raMDQor7J207ZmN7Z2sDQor7J207IiY6rWwDQor7J207IOB7ZiEDQor7J207KeE7ZeMDQor7J207KKF7IiZDQor7J206rK97YOcDQor7J207IOB7ZiEDQor7J207ZiV7Zi4DQor7J2067OR7JewDQor7J207LCo7KCQDQor7J207IOB7ZiEDQor7J207ISx7IudDQor7J207Jqp7JaRDQor7J207Jqp7Z2sDQor7J207IOB7ZiEDQor7J207YOc66qFDQor7J2066y46regDQor7J206riw7IiYDQor7J207IOB7Zi4DQor7J207ZqM7JqwDQor7J207J6s7ISxDQor7J207ISd7KO8DQor7J207IOB7Zi4DQor7J207ZWY7KeEDQor7J2066y464+EDQor7J207ISx7Zi4DQor7J207IOB7Zi4DQor7J2066y06ri4DQor7J207ZW07ZiEDQor7J207Lmg6ri4DQor7J207IOB7Zi4DQor7J207ZW07KKFDQor7J207JiB7Zi4DQor7J207JiB7IiYDQor7J207IOB7Zi4DQor7J207KCV7ZWZDQor7J2066qF6riIDQor7J207Jqw7Z2sDQor7J207IOB7Zi4DQor7J207Iic6rK9DQor7J207LaY7YOcDQor7J207KCV7JmEDQor7J207IOB7ZmUDQor7J207Jik6rG0DQor7J2064yA7KGwDQor7J207Zic7Z2gDQor7J207IOB7ZmUDQor7J207LKg7IugDQor7J2067SJ7Zi4DQor7J207JiB6re8DQor7J207IOB7ZmUDQor7J207J247J6QDQor7J206rK97JWUDQor7J206riw7ISdDQor7J207IOB7ZmUDQor7J207KKF64usDQor7J207J6s7KSADQor7J207Jyg7ZiBDQor7J207IOB7ZmYDQor7J207Zqo7KGwDQor7J2066+864WEDQor7J207LaY7KGwDQor7J207IOB7ZmpDQor7J207ISx7KSRDQor7J207Iic7IudDQor7J206re86riwDQor7J207IOB7ZqoDQor7J206re87Je0DQor7J2065GQ642VDQor7J206rSR6riwDQor7J207IOB7ZuIDQor7J207IK87LmgDQor7J207LC97J6QDQor7J207JiB7KSADQor7J207IOB7ZuIDQor7J206riI642VDQor7J207KCV7Zi4DQor7J207J6s7ZiEDQor7J207IOd6recDQor7J207LCs6rWsDQor7J20642V7KSADQor7J2067OR7KGwDQor7J207ISc67aEDQor7J2067OR6rWQDQor7J2064+E7Zi4DQor7J207J2867KUDQor7J207ISc7Jq0DQor7J207YOc7IiYDQor7J207Jqp7IiYDQor7J207IOB642VDQor7J207ISd6rCRDQor7J207LC9656YDQor7J207KCV7JWUDQor7J2067OR7IiYDQor7J207ISd6rOkDQor7J207Jqp7J20DQor7J207ZqM7ISdDQor7J207KCV7JWEDQor7J207ISd6reADQor7J207Jqw7IudDQor7J2065GQ64yADQor7J207Iic7JqwDQor7J207ISd6recDQor7J207JiB7JqpDQor7J207IiY67CwDQor7J207ISx7ISdDQor7J207ISd66GdDQor7J207J2466eMDQor7J2064+E7JuFDQor7J207KCV7KGwDQor7J207ISd66GdDQor7J207ISx7IiYDQor7J207JiB67SJDQor7J207ISx6rSADQor7J207ISd66eMDQor7J2064us7LKgDQor7J207ZmN67SJDQor7J207KSR7Zi4DQor7J207ISd67KUDQor7J207Iic7J6sDQor7J206rSR7Z2sDQor7J2067aE7ISdDQor7J207ISd67ORDQor7J2067aE7IiYDQor7J207KeE7ZmUDQor7J207IyN7JqpDQor7J207ISd67O1DQor7J2066qF7Zi4DQor7J2064+Z7Zi4DQor7J207ZmN7Je0DQor7J207ISd7IiYDQor7J207Jqp7JqpDQor7J2064yA7JqxDQor7J207LC97KO8DQor7J207ISd7JiBDQor7J207ZWc7JqwDQor7J207KKF66a8DQor7J207LaY7IiYDQor7J207ISd7JmEDQor7J206rOh7KCcDQor7J206riw66qoDQor7J2067OR7J6QDQor7J207ISd7JqpDQor7J207KCV656ADQor7J207J246rWtDQor7J207JaR7IiYDQor7J207ISd7JuQDQor7J2066+87ZmYDQor7J207KO87JaRDQor7J207KSA7KGwDQor7J207ISd7J28DQor7J207IiY7ISgDQor7J207JiB7Je0DQor7J207J6s66eMDQor7J207ISd7J6sDQor7J2066eM66qpDQor7J207ISx7KeRDQor7J2067OR7JewDQor7J207ISd7J6sDQor7J207KKF7KKFDQor7J207IiY64KoDQor7J207Jqp7ZWcDQor7J207ISd7KO8DQor7J2067OR7LKgDQor7J2064+Z7JuQDQor7J207Jew7IiYDQor7J207ISd7KeADQor7J206rSR6recDQor7J207KO87ZW0DQor7J2067OR6re8DQor7J207ISd7KeEDQor7J207Iic7IiZDQor7J2064+E6raMDQor7J207ZWc7KGwDQor7J207ISd7LCsDQor7J206re87ISxDQor7J2067OR7LC9DQor7J2067OR7IiZDQor7J207ISd7LKcDQor7J2066y47ZmNDQor7J207Z2s6recDQor7J207JiB6recDQor7J207ISd7LacDQor7J206riw7JilDQor7J207Jik7JewDQor7J2064us7IStDQor7J207ISd7YOcDQor7J207J2A7ZmUDQor7J2064+Z7ZmUDQor7J207IKs7KeEDQor7J207ISd7ZiEDQor7J207JiB66qoDQor7J207KCQ7IOdDQor7J20642V6rWtDQor7J207ISd7ZiEDQor7J207YOc7J28DQor7J2067O17LacDQor7J206rK97IiZDQor7J207ISd7ZmNDQor7J207LGE7IicDQor7J207IiY7JilDQor7J2064uk6rOkDQor7J207ISd7ZmYDQor7J2067OR7J20DQor7J207ZWc7JWUDQor7J207JWg7ISgDQor7J207ISd7ZmYDQor7J20642V7LacDQor7J206ri47KO8DQor7J207Jew7LKgDQor7J207ISg67SJDQor7J207J6s7KSRDQor7J2064yA66qpDQor7J207Kad7JqpDQor7J207ISg7IiYDQor7J207KKF7JuQDQor7J2067SJ7JiBDQor7J2064yA7IK8DQor7J207ISg7JiBDQor7J207ZWZ7ZWZDQor7J207Zqo7J20DQor7J207IOB67aEDQor7J207ISg7JqwDQor7J207YOc6rWsDQor7J207J6l7LKgDQor7J207KKF67O1DQor7J207ISg7J20DQor7J207YOc7JewDQor7J2064KZ7KCQDQor7J2064W46raMDQor7J207ISg7Zi4DQor7J2065GQ7KSRDQor7J2067SJ67KUDQor7J207ISd7Jq0DQor7J207ISx6rOkDQor7J207IOB7ZiEDQor7J207Lmg7IudDQor7J207Iic7IiYDQor7J207ISx6rWsDQor7J207IOB7JWEDQor7J2064+Z7KO8DQor7J207YOc7JiBDQor7J207ISx6rWsDQor7J207IS466qoDQor7J207IOB6rWsDQor7J207J287J6QDQor7J207ISx6rWsDQor7J207YyQ6riwDQor7J207ZmU7JuQDQor7J2067OR7JqpDQor7J207ISx6raMDQor7J207J6Q642VDQor7J207IiY6raMDQor7J207JiB7ZiBDQor7J207ISx6raMDQor7J207ZmN7IicDQor7J207KeE7JqwDQor7J207KeE64+EDQor7J207ISx6recDQor7J2066qF7IigDQor7J207JWI6rK9DQor7J2067OR66qpDQor7J207ISx6re8DQor7J207ISd7IiYDQor7J207ISx642VDQor7J207ISd7KO8DQor7J207ISx6re8DQor7J2066+47IiYDQor7J207KCQ6rCRDQor7J207KKF7Zi4DQor7J207ISx6riwDQor7J207ZiE6ri4DQor7J207JiB7KCVDQor7J2064yA7J21DQor7J207ISx6riwDQor7J2065Od7Je0DQor7J207ZWc7Zi4DQor7J207KCV7IudDQor7J207ISx64+EDQor7J206re86ri4DQor7J2066m07IicDQor7J207KeE6re8DQor7J207ISx64+ZDQor7J207ISx7IicDQor7J2065GQ64KoDQor7J207Iic7ZeMDQor7J207ISx656YDQor7J206rG06rWQDQor7J207JuQ64+EDQor7J207KCV7IudDQor7J207ISx66OhDQor7J207ISx7ISxDQor7J207JaR7IiYDQor7J20IOybkA0KK+ydtOyEseunjA0KK+ydtOyDgeyasA0KK+ydtO2DnOyInA0KK+ydtOq3nOq2jA0KK+ydtOyEseunkA0KK+ydtOyDgeywrA0KK+ydtOuqheycqA0KK+ydtOqyveyihQ0KK+ydtOyEseuvvA0KK+ydtOyngOunjA0KK+ydtOyerOyEsQ0KK+ydtOyngO2YuA0KK+ydtOyEseuylA0KK+ydtO2WieuPmQ0KK+ydtOywveyyoA0KK+ydtOyDgeyaqQ0KK+ydtOyEseuztQ0KK+ydtOyaqeyCvA0KK+ydtOuzke2drA0KK+ydtOyWkey2mA0KK+ydtOyEseuztQ0KK+ydtO2XjOq4sA0KK+ydtOq0keyImQ0KK+ydtOustOq3vA0KK+ydtOyEseyEuA0KK+ydtOygkO2XjA0KK+ydtOyatOunjA0KK+ydtOyDge2ZmA0KK+ydtOyEseyImA0KK+ydtOydgOuztQ0KK+ydtOuMgO2VmA0KK+ydtOuPmeyYpQ0KK+ydtOyEseyInA0KK+ydtOy2mOq4iA0KK+ydtOyCvOyEsQ0KK+ydtO2drOuwsA0KK+ydtOyEseyLpA0KK+ydtOyEseq4uA0KK+ydtOyerOyasQ0KK+ydtOyiheq3nA0KK+ydtOyEseyViA0KK+ydtOydhOyEsQ0KK+ydtOyEseusuA0KK+ydtOq4sOq4uA0KK+ydtOyEseyVoA0KK+ydtOuzke2DnQ0KK+ydtOuzke2drA0KK+ydtOyYgeyasQ0KK+ydtOyEseyXvQ0KK+ydtOygle2ZmA0KK+ydtOyaqe2ZmA0KK+ydtOyihe2ZlA0KK+ydtOyEseyYpQ0KK+ydtOygleyInA0KK+ydtOygleuTnQ0KK+ydtOyYgeq3oA0KK+ydtOyEseyasA0KK+ydtOy2qeyImA0KK+ydtOu0ieyImA0KK+ydtOykgO2YuA0KK+ydtOyEseyasA0KK+ydtOq0keyekA0KK+ydtOyDgeyYpQ0KK+ydtOuPmeuwsA0KK+ydtOyEseyatA0KK+ydtOyerOycqA0KK+ydtOyInOyImQ0KK+ydtOyXsOyInA0KK+ydtOyEseybkA0KK+ydtOygleyatA0KK+ydtOyYgeqyvQ0KK+ydtOuylOycqA0KK+ydtOyEseydtQ0KK+ydtOygnOyImQ0KK+ydtOyDge2aqA0KK+ydtOq4iOyXtA0KK+ydtOyEseyehA0KK+ydtO2DnO2ZmA0KK+ydtOygle2WpQ0KK+ydtO2aqOybkA0KK+ydtOyEseyhsA0KK+ydtO2DnOujoQ0KK+ydtOuqheynhA0KK+ydtOyYge2ZmA0KK+ydtOyEseykgA0KK+ydtOyDgeqzpA0KK+ydtOyDgeq0gA0KK+ydtOustOykgA0KK+ydtOyEseykgA0KK+ydtOyduOycqA0KK+ydtOynhOyLnQ0KK+ydtOyViOyLnQ0KK+ydtOyEseykgA0KK+ydtOyerO2YuA0KK+ydtOyDgeyImA0KK+ydtOy2mOyekA0KK+ydtOyEseywrA0KK+ydtOyDge2YuA0KK+ydtOywveyEnQ0KK+ydtOuRkO2YuA0KK+ydtOyEseyyoA0KK+ydtOydvOuztQ0KK+ydtOyduO2ZmA0KK+ydtOyEse2ZlA0KK+ydtOyEseyyoA0KK+ydtOuzkeyXsA0KK+ydtOyEoOqztQ0KK+ydtOyiheq4sA0KK+ydtOyEse2DnA0KK+ydtO2XjOuztQ0KK+ydtOyLoO2RnA0KK+ydtOunjOydvA0KK+ydtOyEse2DnA0KK+ydtO2DnOyasQ0KK+ydtOyaqeyhsA0KK+ydtOuMgOyInA0KK+ydtOyEse2PiQ0KK+ydtOyjvO2VmA0KK+ydtO2ZmOyLnQ0KK+ydtOuCtOuLrA0KK+ydtOyEse2VmA0KK+ydtO2VnOynhA0KK+ydtO2YuOyXtA0KK+ydtOygleulnA0KK+ydtOyEse2YhA0KK+ydtOuRkO2YuA0KK+ydtOuLrOyEnQ0KK+ydtOygleq4uA0KK+ydtOyEse2YhA0KK+ydtOuzkeyjvA0KK+ydtOuzkeq4iA0KK+ydtOq0key2mA0KK+ydtOyEse2YuA0KK+ydtOyhsOq1rA0KK+ydtOq0keyaqQ0KK+ydtOuqheyEnQ0KK+ydtOyEse2YuA0KK+ydtOykkeyekA0KK+ydtOyYgeqzpA0KK+ydtOycpOyihQ0KK+ydtOyEse2YuA0KK+ydtOyDgeuqqQ0KK+ydtOygleyasA0KK+ydtOq4sOyEnQ0KK+ydtOyEse2YuA0KK+ydtOydhOyEoA0KK+ydtOynhOyInA0KK+ydtOyLrOq2jA0KK+ydtOyEse2YuA0KK+ydtOyiheuNlQ0KK+ydtOuzkeqyvQ0KK+ydtOyerOuNlQ0KK+ydtOyEse2YuA0KK+ydtOycteydvA0KK+ydtOuCmey2nA0KK+ydtOuMgOq3vA0KK+ydtOyEse2ZjQ0KK+ydtOyEneyhsA0KK+ydtOyiheq3nA0KK+ydtOyInOyDgQ0KK+ydtOyEse2ZlA0KK+ydtOq1reyhsA0KK+ydtOq1rOuNlQ0KK+ydtOuPmeyaqQ0KK+ydtOyEse2ZmA0KK+ydtOyKue2VtA0KK+ydtOyDge2YuA0KK+ydtOyInOunjA0KK+ydtOyEse2ZmA0KK+ydtOq4sOq3nA0KK+ydtO2YuOyYgQ0KK+ydtO2DnOyYpA0KK+ydtOyEse2ZmA0KK+ydtOyDgeq2jA0KK+ydtOuzkeyhsA0KK+ydtOydvOydvA0KK+ydtOyEse2biA0KK+ydtOuylOybkA0KK+ydtOydmOyglQ0KK+ydtOq1rOyEnA0KK+ydtOyEse2drA0KK+ydtOq3nOykkQ0KK+ydtOustOyEoA0KK+ydtOyEse2ctA0KK+ydtOyEse2drA0KK+ydtOyYgeuFhA0KK+ydtO2XjO2DnA0KK+ydtOq2geydtA0KK+ydtOyEuOuzkQ0KK+ydtOyYpe2YuA0KK+ydtOydmOqzhA0KK+ydtOyiheu2hA0KK+ydtOyEuOyYgQ0KK+ydtOyEne2drA0KK+ydtOydtOydtA0KK+ydtOyDgeydtA0KK+ydtOyEuOyYgQ0KK+ydtOyInOuztQ0KK+ydtOycpOqzpA0KK+ydtOyCvOq3nA0KK+ydtOyEuOyaqQ0KK+ydtOuPme2YhA0KK+ydtOqyveq3vA0KK+ydtOq3vOyImA0KK+ydtOyEuOydvA0KK+ydtOyaqeyErQ0KK+ydtOyepeyepQ0KK+ydtOq3vOyyoA0KK+ydtOyEuOykkQ0KK+ydtOydvOyhsA0KK+ydtOygkOunjA0KK+ydtOyerOybkA0KK+ydtOyEuO2YhA0KK+ydtOyiheyLnQ0KK+ydtOyasOuemA0KK+ydtOuCqO2WpQ0KK+ydtOyEuO2YhA0KK+ydtOuPmeyaqQ0KK+ydtOydvOq1sA0KK+ydtOyEoOyLnQ0KK+ydtOyEuO2YuA0KK+ydtOy2qeybhQ0KK+ydtOqyveyhsA0KK+ydtOydhOq3vA0KK+ydtOyGjOqwkQ0KK+ydtO2DnOq3vA0KK+ydtO2ZjeydvA0KK+ydtOuPme2drA0KK+ydtOyGjOuPjA0KK+ydtOykgOq3vA0KK+ydtOygle2YhA0KK+ydtOyerOq4sA0KK+ydtOyGjOyEnQ0KK+ydtOynhOyYgQ0KK+ydtOuzke2DgQ0KK+ydtO2DnOyekA0KK+ydtOyGjOyImA0KK+ydtOyiheq4uA0KK+ydtOyYgeq3vA0KK+ydtOuPmeybkA0KK+ydtOyGjOyImA0KK+ydtOyImeq3nA0KK+ydtOyYgeu0iQ0KK+ydtOustOyInA0KK+ydtOyGjOyImA0KK+ydtOycte2YuA0KK+ydtOyCvO2YuA0KK+ydtOychOuPmQ0KK+ydtOyGjOyImA0KK+ydtO2YuOyatA0KK+ydtOuPhOuLtA0KK+ydtOyWuO2YuA0KK+ydtOyGjOyImQ0KK+ydtOq4iOq3vA0KK+ydtOqwkeyEsQ0KK+ydtOyDgeq4uA0KK+ydtOyGjOyInA0KK+ydtO2ajOuztA0KK+ydtOyEuO2YhA0KK+ydtOyaqeygnA0KK+ydtOyGjOyLnQ0KK+ydtOyEoOyInA0KK+ydtOunkOyXsA0KK+ydtOyyoOyImA0KK+ydtOyGjOyVlA0KK+ydtOyasOq3vA0KK+ydtO2VnOumvQ0KK+ydtOyaqeyhsA0KK+ydtOyGjOybkA0KK+ydtOustOyasA0KK+ydtOuLrO2drA0KK+ydtOywveuNlQ0KK+ydtOyGjOyhsA0KK+ydtO2DnOyhsA0KK+ydtOuCqOuzkQ0KK+ydtOyInOyLnQ0KK+ydtOyGjOyhsA0KK+ydtO2DnOuegA0KK+ydtOynhOyatA0KK+ydtOqyveydtA0KK+ydtOyGkOyImQ0KK+ydtOyEoOq4sA0KK+ydtOyjvOyaqQ0KK+ydtO2DnOyDgQ0KK+ydtOyGkOyjvA0KK+ydtOuCqOq4uA0KK+ydtOynhOq4sA0KK+ydtOuPme2YhA0KK+ydtOyGoeqxtA0KK+ydtOuPmeq1rA0KK+ydtO2YuOyglQ0KK+ydtOyDgeynhA0KK+ydtOyGoeuhnQ0KK+ydtO2YuOyaqQ0KK+ydtOyEuOyXtA0KK+ydtOygkOuhnA0KK+ydtOyGoeyWkQ0KK+ydtOynhOyImA0KK+ydtO2Yle2YuA0KK+ydtOuMgOyEnQ0KK+ydtOyGoeyXtA0KK+ydtOq4sOq4uA0KK+ydtOuzkeyYpQ0KK+ydtOyYgeunjA0KK+ydtOyImOqyvQ0KK+ydtOyaqeyyoA0KK+ydtOyerOq1rQ0KK+ydtOq1reyEnQ0KK+ydtOyImOqyvQ0KK+ydtO2DnO2biA0KK+ydtOq1rOycoQ0KK+ydtOyEneybkA0KK+ydtOyImOq3vA0KK+ydtOyEse2VmA0KK+ydtOuqheuPiA0KK+ydtOyImOyLnQ0KK+ydtOyImOq4sA0KK+ydtOuylO2YuA0KK+ydtO2aqOyImQ0KK+ydtOyImOq1rQ0KK+ydtOyImOq4uA0KK+ydtOyKueqyvQ0KK+ydtOyerOuMgA0KK+ydtOycpOu0iQ0KK+ydtOyImOuNlQ0KK+ydtO2VtOyLnQ0KK+ydtOyYgeydtA0KK+ydtOyInOq4sA0KK+ydtOyImOuPhA0KK+ydtOuzkeyYgQ0KK+ydtOyerOyImA0KK+ydtOyCvOyatA0KK+ydtOyImOunjA0KK+ydtOyEseq4sA0KK+ydtOuzkeyduA0KK+ydtOyEseyIoA0KK+ydtOyImOuwsQ0KK+ydtOuCqOuPjA0KK+ydtOq4sOyaqQ0KK+ydtOuqheuMgA0KK+ydtOyImOuztQ0KK+ydtOyiheyXtA0KK+ydtOuPiOyDgQ0KK+ydtOyEseyEoA0KK+ydtOyImOuztQ0KK+ydtOyImOyjvA0KK+ydtO2YgeyDgQ0KK+ydtOyDge2ZmA0KK+ydtOyImOuztQ0KK+ydtOuPmeyImQ0KK+ydtOyYgeyInA0KK+ydtOq1rOyekA0KK+ydtOyImOyDgQ0KK+ydtOqwkeuCqA0KK+ydtOyDgeudvQ0KK+ydtOydteyaqQ0KK+ydtOyImOyEnQ0KK+ydtOyDgeyyoA0KK+ydtO2DnOyekA0KK+ydtOyImOyDgQ0KK+ydtOyImOyVvA0KK+ydtOuzkeyXsA0KK+ydtOywqOyLnQ0KK+ydtOq3vOq0gA0KK+ydtOyImOyWuA0KK+ydtOychOyaqQ0KK+ydtOywqOq3nA0KK+ydtO2drOqyvQ0KK+ydtOyImOyXtA0KK+ydtOyiheyekA0KK+ydtOyLnO2RnA0KK+ydtOyerOyZhA0KK+ydtOyImOyXtA0KK+ydtOyEseu2hA0KK+ydtOyKueq0kQ0KK+ydtOuzuO2YuA0KK+ydtOyImOyYpQ0KK+ydtOygle2ZjQ0KK+ydtOyEseyImA0KK+ydtOuzkeq3vA0KK+ydtOyImOyaqQ0KK+ydtOyiheyLnQ0KK+ydtOu0ieyEsQ0KK+ydtOyImeyaqQ0KK+ydtOyImOyaqQ0KK+ydtOybkOyEnQ0KK+ydtO2Vmeu2iA0KK+ydtOyCvO2DnA0KK+ydtOyImOyasA0KK+ydtOywveuPjA0KK+ydtOydvOyImA0KK+ydtOyiheyehA0KK+ydtOyImOybhQ0KK+ydtOq0keyLnQ0KK+ydtOyEneq2jA0KK+ydtO2DnOumvQ0KK+ydtOyImOybkA0KK+ydtOywveuPjA0KK+ydtOy2mOuNlQ0KK+ydtCDrsLANCivsnbTsiJjsnZgNCivsnbTsmIHsobANCivsnbTsmIHqtowNCivsnbTtlZnsi50NCivsnbTsiJjsnbgNCivsnbTsiJzsm4UNCivsnbTsmIHrp4wNCivsnbTsspztmLgNCivsnbTsiJjsoJANCivsnbTsnKTtmLgNCivsnbTsg4HsspwNCivsnbTsmqnsmKQNCivsnbTsiJjsooUNCivsnbTsooXtl4wNCivsnbTrs5Hsp4QNCivsnbTstpzsi50NCivsnbTsiJjspIANCivsnbTso7zsl7QNCivsnbTsmIHtnawNCivsnbTssL3shJ0NCivsnbTsiJjsp4QNCivsnbTrrLjsnpANCivsnbTsooXtmLgNCivsnbTquIjshLENCivsnbTsiJjsp4QNCivsnbTsm5TqtIANCivsnbTsoJXsmqkNCivsnbTtg5zqt7wNCivsnbTsiJjssKwNCivsnbTsg4HsmqkNCivsnbTrkZDshJ0NCivsnbTtlZjshLENCivsnbTsiJjssL0NCivsnbTshLHtmIQNCivsnbTqs7XslZQNCivsnbTsoJXtmakNCivsnbTsiJjssqANCivsnbTsiJzsiJwNCivsnbTtl4zsp4QNCivsnbTso7ztmLgNCivsnbTsiJjtlZkNCivsnbTqtbDquLANCivsnbTsnYTrj4wNCivsnbTtjJDtg50NCivsnbTsiJjtmIQNCivsnbTqsr3tm4gNCivsnbTsi6Tsl7QNCivsnbTqtazrrLgNCivsnbTsiJjtmIQNCivsnbTsnYDsmrANCivsnbTtmZTrrLgNCivsnbTtnaztmLgNCivsnbTsiJjtmIQNCivsnbTsmqntmLgNCivsnbTsp4DspIANCivsnbTsooXtmLgNCivsnbTsiJjtmIQNCivsnbTsirnsoJUNCivsnbTshLHtnawNCivsnbTrs5HtmIQNCivsnbTsiJjtmLgNCivsnbTsg4Hqt5wNCivsnbTspJHtmIQNCivsnbTsi6TshJ0NCivsnbTsiJjtmLgNCivsnbTsooXtg50NCivsnbTqtJHrqqgNCivsnbTsoJXquLgNCivsnbTsiJjtmLgNCivsnbTstpjsmKUNCivsnbTspJHso7wNCivsnbTsoJXsnoQNCivsnbTsiJjtmLgNCivsnbTrs7Xqt5wNCivsnbTqsr3sspwNCivsnbTtg5zqt5wNCivsnbTsiJjtmY0NCivsnbTsnqzsi50NCivsnbTtmITtlokNCivsnbTtmqjsl7QNCivsnbTsiJjtmZgNCivsnbTshKDtg5wNCivsnbTsg4HstpgNCivsnbTsooXshKANCivsnbTsiJjtmakNCivsnbTquLDsi50NCivsnbTshJ3slaANCivsnbTsmqnrtoQNCivsnbTsiJjtnaUNCivsnbTrs5HtmZgNCivsnbTrgqjsi50NCivsnbTsmqntmZQNCivsnbTsiJnqsr0NCivsnbTrtInshK0NCivsnbTshJ3tnLQNCivsnbTrqoXsm5ANCivsnbTsiJnquLANCivsnbTtmY3sm5ANCivsnbTsmqnsmKQNCivsnbTqta3qt5wNCivsnbTsiJnsl7ANCivsnbTqtJHsi50NCivsnbTrs5HssqANCivsnbTtmLjtl4wNCivsnbTsiJntnawNCivsnbTtg5zqt7wNCivsnbTqs4TqtawNCivsnbTsmIHsnbwNCivsnbTsiJzqsr0NCivsnbTsiJjsobANCivsnbTsg4Hqt5wNCivsnbTrqoXrpr0NCivsnbTsiJzqtawNCivsnbTsooXtmLgNCivsnbTsoJDqt5wNCivsnbTrp4zshLENCivsnbTsiJzqtawNCivsnbTtmqjsg4ENCivsnbTrs7Xrj4QNCivsnbTsmIHso7wNCivsnbTsiJzrjZUNCivsnbTqtJHsmKQNCivsnbTtmJzsmrANCivsnbTquLDtmZgNCivsnbTsiJzrj4QNCivsnbTrj5nsobANCivsnbTsiJzsiJkNCivsnbTsspzsm5ANCivsnbTsiJzrp5ANCivsnbTrhbjssqANCivsnbTrs7TshKANCivsnbTsnKTtl4wNCivsnbTsiJzrtoQNCivsnbTrqoXsobANCivsnbTsiJztnLQNCivsnbTspp3smKQNCivsnbTsiJzrtoQNCivsnbTqt7zspIANCivsnbTshLjqt7wNCivsnbTshKDquLANCivsnbTsiJzshLgNCivsnbTrtInrsLANCivsnbTspJHrtIkNCivsnbTrjIDrs7UNCivsnbTsiJzsi6ANCivsnbTquLDqt7wNCivsnbTtmITsnpANCivsnbTsmrTssqANCivsnbTsiJzsl7ANCivsnbTqtazsg4ENCivsnbTtmJXsl6wNCivsnbTsnbzsiJgNCivsnbTsiJzsmIENCivsnbTsooXsobANCivsnbTrs7XspIANCivsnbTsmIHssqANCivsnbTsiJzsmrENCivsnbTtlZzsnbQNCivsnbTssqDrj5kNCivsnbTsnqzsmqkNCivsnbTsiJzsm5ANCivsnbTsnYTsmKUNCivsnbTtg5zsiJgNCivsnbTqt5zsmqkNCivsnbTsiJzsnbQNCivsnbTrj5nqt5wNCivsnbTquLDtnawNCivsnbTsp4Tqsr0NCivsnbTsiJzsnpANCivsnbTqt7zrj4wNCivsnbTrs7TquLgNCivsnbTrj5nstpgNCivsnbTsiJzsnpANCivsnbTshozqtZANCivsnbTrj5nsl7QNCivsnbTqtIDrjZUNCivsnbTsiJzsnpANCivsnbTsmIHsiJwNCivsnbTsnqzsmrANCivsnbTsnqzshJ0NCivsnbTsiJzsnpANCivsnbTsooXsoJUNCivsnbTssL3sm5ANCivsnbTtg5zsmrENCivsnbTsiJzsnqwNCivsnbTtmZTtnaANCivsnbTsl7Tqt6ANCivsnbTqt5ztlZwNCivsnbTsiJzsoJANCivsnbTtg5ztg50NCivsnbTqtJHsiJwNCivsnbTsoJzsnKQNCivsnbTsiJzsobANCivsnbTshLHtmLgNCivsnbTrj4Trj5kNCivsnbTshLHsiJkNCivsnbTsiJzsobANCivsnbTsoJDtlZkNCivsnbTsmrDqsIENCivsnbTrp4zsiJgNCivsnbTsiJztg5wNCivsnbTsmIHsnpANCivsnbTri6ztmLgNCivsnbTtnazsiKANCivsnbTsiJztmIQNCivsnbTso7zqt5wNCivsnbTtmqjrp4wNCivsnbTrjIDsi60NCivsnbTsiJztmLgNCivsnbTtg53si50NCivsnbTtjJTtmIQNCivsnbTrhbjsmIENCivsnbTsiJztmY0NCivsnbTsg4HsmYQNCivsnbTsiKDroKgNCivsnbTrqoXtmZgNCivsnbTsiJztmY0NCivsnbTrs5HsmrANCivsnbTsmqnrjIANCivsnbTsg4Hsl7QNCivsnbTsiJztnawNCivsnbTtg5zsiJgNCivsnbTsnqzrs7UNCivsnbTsg4Hsl7QNCivsnbTsiJztnawNCivsnbTtmLjsl7QNCivsnbTsoJXsnbwNCivsnbTrp4zso7wNCivsnbTsiKDrtIkNCivsnbTsg4HsiJgNCivsnbTsg4Hrp4wNCivsnbTtmZjsiJgNCivsnbTsiKDtnawNCivsnbTrj5nsmqkNCivsnbTtg5ztmLgNCivsnbTsiJzsi6QNCivsnbTsirnqs6QNCivsnbTtmLjsiJgNCivsnbTqt7zrprwNCivsnbTsmKXsmrQNCivsnbTsirnri6wNCivsnbTrtIntmIQNCivsnbTqta3tmLgNCivsnbTquLjrjIANCivsnbTsirnrj5kNCivsnbTsiJztnLQNCivsnbTsnZjtmIQNCivsnbTsnYDsl7QNCivsnbTsirnroKwNCivsnbTrs5HrqqkNCivsnbTtmLjsi6ANCivsnbTtmITshKANCivsnbTsirnrqqgNCivsnbTsmKTtmJUNCivsnbTshJ3snqwNCivsnbTshLjtmLgNCivsnbTsirnrsLANCivsnbTsp4TqtowNCivsnbTtlbTtnawNCivsnbTsnbzsi50NCivsnbTsirnrtoQNCivsnbTqtJHsp4QNCivsnbTtg5zsl7ANCivsnbTrk53shJ0NCivsnbTsirnslrgNCivsnbTspIDqs4QNCivsnbTqsJHssqANCivsnbTstpjsl7QNCivsnbTsirnsl7QNCivsnbTtlbTsiJwNCivsnbTtjJDsl7QNCivsnbTqsr3sg50NCivsnbTsirnsmKUNCivsnbTrj5nqt5wNCivsnbTsg4Hsl7ANCivsnbTtlZntmZQNCivsnbTsirnsmrANCivsnbTqsr3qta0NCivsnbTsgrzqsr0NCivsnbTso7zsmrANCivsnbTsirnsmrENCivsnbTsooXrj4QNCivsnbTrp4zsm5ANCivsnbTsnYDrj5kNCivsnbTsirnsobANCivsnbTstpjsmrENCivsnbTsmqnqtZANCivsnbTsnqXqs6QNCivsnbTsirnso7wNCivsnbTrtIntmZQNCivsnbTsuaDsg4ENCivsnbTrp4zspIANCivsnbTsirnsspwNCivsnbTtl4zqt7wNCivsnbTsnqzspIANCivsnbTsooXquLANCivsnbTsirnsspwNCivsnbTsnZjsmqkNCivsnbTsmIHrp4wNCivsnbTtg5zrspQNCivsnbTsirnsuaANCivsnbTshLjqsr0NCivsnbTtlbTqtowNCivsnbTstqnsoJwNCivsnbTsirntmJUNCivsnbTsoJXqt7wNCivsnbTqt5zrnb0NCivsnbTshLjtg50NCivsnbTsirntmY0NCivsnbTsmIHtmowNCivsnbTsmqntmLgNCivsnbTsl7Dtg50NCivsnbTsirntmZQNCivsnbTsmIHtlZwNCivsnbTsnqXspJENCivsnbTrj5nsl7QNCivsnbTsirntmZQNCivsnbTtmY3tmIENCivsnbTquLDsiJgNCivsnbTqtJHsi50NCivsnbTsirntm4gNCivsnbTshLHtlZgNCivsnbTsmIHqt5wNCivsnbTstpjqsJENCivsnbTsirntm4gNCivsnbTquLDtmIQNCivsnbTshKDqtawNCivsnbTspp3sobANCivsnbTsirntm4gNCivsnbTssL3si6ANCivsnbTsnbjrrLUNCivsnbTrjIDqtawNCivsnbTsirntnawNCivsnbTquLDrspQNCivsnbTtg5zsm5ANCivsnbTrs5HrtoQNCivsnbTsi5zrj5kNCivsnbTrs5Hsl7ANCivsnbTsm5DtmIQNCivsnbTrgqjslaANCivsnbTsi5zsmIENCivsnbTsiJzqs6QNCivsnbTsiJjshJ0NCivsnbTstpjroKgNCivsnbTsi5zsmrANCivsnbTsp4TtmLgNCivsnbTsmqnsiJgNCivsnbTshLHquLANCivsnbTsi5zsm5ANCivsnbTrj5nsnqwNCivsnbTsoJXqtawNCivsnbTsmKTtmLgNCivsnbTsi5zsm5ANCivsnbTtg5ztmLgNCivsnbTsg4HsmIENCivsnbTrs5HtmZgNCivsnbTsi6DqtawNCivsnbTstqnsm5ANCivsnbTrqoXtmqgNCivsnbTsgrzrsLANCivsnbTsi6Drs7UNCivsnbTsnKTsiJgNCivsnbTtlZntmJUNCivsnbTqsJHsl7QNCivsnbTsi6DsmrANCivsnbTtg4DsnbUNCivsnbTsmIHrj4QNCivsnbTsmIHssqANCivsnbTsi6DsnbQNCivsnbTrj5nsm5ANCivsnbTsg4Hsp4QNCivsnbTtj4nssqANCivsnbTsjI3qsJENCivsnbTtg5zsi50NCivsnbTsnpDsmIENCivsnbTsiJztmZgNCivsnbTsjI3shJ0NCivsnbTsg4HshJ0NCivsnbTsoJXsi50NCivsnbTsoJXsmrQNCivsnbTsjI3sirkNCivsnbTtmJzsnpANCivsnbTsnITtmowNCivsnbTsmqnqtawNCivsnbTsjI3sl7ANCivsnbTsoJXsg4ENCivsnbTsmIHsm5ANCivsnbTqsr3qsr0NCivsnbTslYjquLANCivsnbTsoJXtg4ENCivsnbTqt7zqt7wNCivsnbTquLDshK0NCivsnbTslYjsg50NCivsnbTsp4TsnbwNCivsnbTsmqnsm5QNCivsnbTsm5Drj5kNCivsnbTslYjsiJwNCivsnbTshLHrj4QNCivsnbTsg4HshJ0NCivsnbTsoJDtmIQNCivsnbTslZTsmrANCivsnbTsnbzsiJwNCivsnbTsooXsiKANCivsnbTso7zshK0NCivsnbTslpHsiJkNCivsnbTsmIHrsLENCivsnbTrp4ztmZgNCivsnbTshozquLgNCivsnbTslpHsmrANCivsnbTso7ztnawNCivsnbTquLDtnLQNCivsnbTtlbTslaANCivsnbTslpHsnoQNCivsnbTsiJnqtJENCivsnbTsiJjtmY0NCivsnbTrrLjtlZwNCivsnbTslpHtm4gNCivsnbTrp7nsnYANCivsnbTrrLTsiJgNCivsnbTtjJDrjZUNCivsnbTslrXqt7wNCivsnbTtg5zsnbwNCivsnbTsnZjshK0NCivsnbTrs5HsnbwNCivsnbTsl4Xso7wNCivsnbTsg4HsmIENCivsnbTsnqzssL0NCivsnbTtlbTsoJUNCivsnbTsl7Drj5kNCivsnbTsnqztmowNCivsnbTrp5DrhbgNCivsnbTrqoXsi50NCivsnbTsl7Dsi6QNCivsnbTsnYDspIANCivsnbTsg4HtmZgNCivsnbTrp4zqs6QNCivsnbTsl7Dsi6QNCivsnbTsmIHqs6QNCivsnbTrsKntmqgNCivsnbTrs5Hqt7wNCivsnbTsl7Dsi6QNCivsnbTrgrTtmY0NCivsnbTsooXsiJkNCivsnbTrtoDqtawNCivsnbTsl7DsnbQNCivsnbTtjJDtmLgNCivsnbTsmqnrj5kNCivsnbTsnqzso7wNCivsnbTsmIHqtawNCivsnbTquIjrj4QNCivsnbTshLHqs6QNCivsnbTqs4Tqsr0NCivsnbTsmIHqta0NCivsnbTsiJzqt7wNCivsnbTsoJXtmZgNCivsnbTsoJXsiJwNCivsnbTsmIHqta0NCivsnbTtg5zssqANCivsnbTsnqzqsr0NCivsnbTrqoXsi6ANCivsnbTsmIHqt7wNCivsnbTsgrzqsrANCivsnbTtmZTtmZQNCivsnbTtg5zsi50NCivsnbTsmIHquLANCivsnbTsoJzsp4QNCivsnbTshKDsl7QNCivsnbTsmIHtlbQNCivsnbTsmIHquLANCivsnbTsooXrpaANCivsnbTsiJzsm5ANCivsnbTquLDsmqkNCivsnbTsmIHquLANCivsnbTsmIHsobANCivsnbTsoJzqsr0NCivsnbTrs5HshJ0NCivsnbTsmIHquLANCivsnbTshLHsp4QNCivsnbTri6zsi50NCivsnbTqt5zsnbwNCivsnbTsmIHquLANCivsnbTsm5DsnqwNCivsnbTshLHrtIkNCivsnbTtg5zqt5wNCivsnbTsmIHquLgNCivsnbTsg4HtmLgNCivsnbTrqoXsp4QNCivsnbTrjIDshJ0NCivsnbTsmIHquLgNCivsnbTsnYDso7wNCivsnbTstqntg50NCivsnbTsoJXsiJwNCivsnbTsmIHquLgNCivsnbTsmIHtlokNCivsnbTsmKXqs6QNCivsnbTrs5HtmIQNCivsnbTsmIHrj5kNCivsnbTsmrDtmZgNCivsnbTsspzrp4wNCivsnbTspIDtnawNCivsnbTsmIHrnb0NCivsnbTsoJXroKgNCivsnbTsirnsiJwNCivsnbTrs5HtkZwNCivsnbTsmIHrnoANCivsnbTrjZXquIgNCivsnbTsooXsnKQNCivsnbTspJHsl7QNCivsnbTsmIHroZwNCivsnbTsg4HrhbgNCivsnbTsnYTsmrANCivsnbTsiJjtlZgNCivsnbTsmIHrqqkNCivsnbTssL3tm4gNCivsnbTtlbTshJ0NCivsnbTtmZTsp4QNCivsnbTsmIHrr7wNCivsnbTtg5zso7wNCivsnbTtg5zrsLANCivsnbTsnKTssqANCivsnbTsmIHrr7wNCivsnbTqsJHsmrQNCivsnbTsoJztlZgNCivsnbTqsr3tmLgNCivsnbTsmIHsg4ENCivsnbTsirnrj4QNCivsnbTsiJjsl7ANCivsnbTtg5zrj4QNCivsnbTsmIHshJ0NCivsnbTqsJHsiJgNCivsnbTrj5ntmZgNCivsnbTtg5ztmZgNCivsnbTsmIHshKANCivsnbTrkZDsi50NCivsnbTshJzqt5wNCivsnbTso7zsi50NCivsnbTsmIHshK0NCivsnbTsmrDsiKANCivsnbTrs5Hsm5ANCivsnbTrtoTsiJgNCivsnbTsmIHshLgNCivsnbTrkZDsiJwNCivsnbTqt6DslZQNCivsnbTtjJDqtZANCivsnbTsmIHshLgNCivsnbTtmY3si50NCivsnbTtmITsnbUNCivsnbTquLDrhbgNCivsnbTsmIHsiJgNCivsnbTsoJDtnawNCivsnbTslpHtmZgNCivsnbTquLDqt5wNCivsnbTsmIHsiJgNCivsnbTsgrzrtIkNCivsnbTssL3tnawNCivsnbTqsr3tmJwNCivsnbTsmIHsiJgNCivsnbTsnKTshJ0NCivsnbTrqoXsiJkNCivsnbTquLDqsJENCivsnbTsmIHsiJgNCivsnbTtnazroZ0NCivsnbTsnbzqt5wNCivsnbTsp4TsmIENCivsnbTsmIHsiJgNCivsnbTshJ3qt5wNCivsnbTrs5HtmLgNCivsnbTrhbjrj4QNCivsnbTsmIHsiJgNCivsnbTrgqjqt5wNCivsnbTtjJTrsLANCivsnbTshLHsiJwNCivsnbTsmIHsiJkNCivsnbTrs5HslZQNCivsnbTrjZXtmZQNCivsnbTrs7XtkZwNCivsnbTsmIHsiJkNCivsnbTsoJXrjZUNCivsnbTtjJDrrLQNCivsnbQg7J28DQor7J207JiB7IiZDQor7J207J246rWsDQor7J2066qF7KeEDQor7J207KeE7IudDQor7J207JiB7IiZDQor7J207KKF66qpDQor7J207ZWc7KCVDQor7J207KCQ7IiYDQor7J207JiB7IicDQor7J207YOc7IiYDQor7J207Jil6riwDQor7J206rec7ISdDQor7J207JiB7IicDQor7J207YyQ7ZmYDQor7J207ISx7ZWcDQor7J207IOB7IiZDQor7J207JiB7IicDQor7J207Jik7KGwDQor7J207LCs7KGwDQor7J206rec7Z2sDQor7J207JiB7IicDQor7J207Jqp7JiBDQor7J207Jqw67aEDQor7J207Zqo7Z2sDQor7J207JiB7IudDQor7J206rec66qoDQor7J207LC97Jq0DQor7J207Jm46rWQDQor7J207JiB7IudDQor7J207Jqw7JewDQor7J2066y4642VDQor7J2066eM7Zi4DQor7J207JiB7JewDQor7J2066eM7IiYDQor7J206rOE7J20DQor7J206riw7IiYDQor7J207JiB7Je0DQor7J2064W47Z2sDQor7J207J6l6riwDQor7J207J2A7KO8DQor7J207JiB7JikDQor7J207YOc7JqwDQor7J207Jqp6recDQor7J2067OR7J6QDQor7J207JiB7JilDQor7J206rSR7IicDQor7J207KCV7JilDQor7J207J6s7KO8DQor7J207JiB7JqwDQor7J2066ek7YOBDQor7J207JiB7IiYDQor7J2066qF7IOBDQor7J207JiB7JuFDQor7J207YyQ7J6QDQor7J207Jil6raMDQor7J207ZW06rOkDQor7J207JiB7JuQDQor7J206re87LCsDQor7J206rOh7ZWZDQor7J207KKF6re8DQor7J207JiB7JykDQor7J207Jik7JqwDQor7J207J6s7IOBDQor7J207JiB7KSRDQor7J207JiB7J24DQor7J2065GQ7JqwDQor7J206rec7JilDQor7J207ZiV7Zi4DQor7J207JiB7J28DQor7J207JiB7JqpDQor7J207LKg7ZmYDQor7J206rK967CwDQor7J207JiB7J28DQor7J207IOB7LKgDQor7J207J6s7ZiEDQor7J2067OR7ZiEDQor7J207JiB7J6QDQor7J206rK967mIDQor7J206re87ISgDQor7J207IOB7JWFDQor7J207JiB7J6sDQor7J207KCV7JikDQor7J206rSR7IigDQor7J2064+Z7IS4DQor7J207JiB7KGwDQor7J207YOc7JqpDQor7J207ZiV6rWsDQor7J207Iic6rWsDQor7J207JiB7KGwDQor7J2064+Z7Z2sDQor7J207LmY6re8DQor7J207J247Jq0DQor7J207JiB7KGwDQor7J207KCQ7LCsDQor7J207IOB7JewDQor7J207IiY7JewDQor7J207JiB7KO8DQor7J206rK97LKcDQor7J207J2A7Z2sDQor7J2064+Z64+EDQor7J207JiB7KeEDQor7J207JiB7IiYDQor7J207ZWc7ISdDQor7J207JiB7IicDQor7J207JiB7LKgDQor7J2065GQ7IiYDQor7J207KCV7KSADQor7J206riw7ISdDQor7J207JiB7YOcDQor7J207IaM6rK9DQor7J207IS47ZiEDQor7J207ZqM7Jq0DQor7J207JiB7ZWZDQor7J207KKF7IiYDQor7J207IOB64+ZDQor7J207ISd7Z2sDQor7J207JiB7Zi4DQor7J207JiB67aEDQor7J207KeA7IudDQor7J207Jqp7LKgDQor7J207JiB7Zi4DQor7J207YOc7ZmYDQor7J206riw67O1DQor7J207KO87JiBDQor7J207JiB7Zi4DQor7J207ZWE6rK9DQor7J207LC97ZqoDQor7J207IOB7J6sDQor7J207JiB7Zi4DQor7J207Iic66eMDQor7J206riw7J6EDQor7J2067OR7YOcDQor7J207JiB7Zi4DQor7J207J6l7KKFDQor7J2064us7ZeMDQor7J2066+47LKgDQor7J207JiB7Zi4DQor7J207ZiE67SJDQor7J207ZWc7IK8DQor7J207ISg7LKgDQor7J207JiB7Zi4DQor7J207ZmN6rK9DQor7J2064yA7JuQDQor7J207KKF7KGwDQor7J207JiB7Zi4DQor7J207Jik6recDQor7J206rK966y1DQor7J207IOB7JilDQor7J207JiB7ZmUDQor7J207J6s7IiZDQor7J207IK87JykDQor7J207ZmN67CwDQor7J207JiB7ZmYDQor7J2067OR7J6QDQor7J207JiB7IOBDQor7J207ZiE7ZmUDQor7J207JiB7ZmYDQor7J207KCV7ZmYDQor7J207ZWc7IicDQor7J207KeE7JWUDQor7J207JiB7ZmYDQor7J2066qF7LaYDQor7J207Jes7Zi4DQor7J207J247ZmUDQor7J207JiB7ZuIDQor7J207IS47IudDQor7J206riw7KCQDQor7J207ISx66a9DQor7J207JiB7ZuIDQor7J207JiB7KCcDQor7J207ZiV67O1DQor7J207KCV7ZqoDQor7J207JiB7ZuIDQor7J2067O17IStDQor7J207J247ZyYDQor7J207YOc64+ZDQor7J207JiB7Z2sDQor7J207KCQ7KSADQor7J207J6s67KUDQor7J207JuQ6rWsDQor7J207JiB7Z2sDQor7J2066+47ISxDQor7J207IOB7Zi4DQor7J207LaY7LKgDQor7J207JiB7Z2sDQor7J2066+467SJDQor7J207ISg64+EDQor7J207KSR7Je0DQor7J207JiB7Z2sDQor7J206re87KGwDQor7J207J2067O1DQor7J207ISg7IicDQor7J207JiB7Z2sDQor7J207JiB7IiZDQor7J207KCV7J20DQor7J2067OR6rK9DQor7J207Jik6re8DQor7J207J246raMDQor7J207KeE7KO8DQor7J207JuQ7JiBDQor7J207Jil6rK9DQor7J207IK87J28DQor7J207IiY6recDQor7J207Zi47IicDQor7J207Jil6riwDQor7J206rSR66qFDQor7J207YOc7ZmYDQor7J207LKc7IiYDQor7J207Jil64KcDQor7J20IOyImA0KK+ydtOq3nOyImQ0KK+ydtOyerOyglQ0KK+ydtOyYpeuPjA0KK+ydtOycpOqwkQ0KK+ydtO2YuO2ZmA0KK+ydtOyEne2DnA0KK+ydtOyYpeuegA0KK+ydtOyehOyasA0KK+ydtOyYge2YuA0KK+ydtOu0ieuPmQ0KK+ydtOyYpeuegA0KK+ydtOyDge2YuA0KK+ydtOycpOyYpA0KK+ydtOyduOuemA0KK+ydtOyYpeugqA0KK+ydtOyEoOuwsA0KK+ydtOyerOyYgQ0KK+ydtOyiheyImA0KK+ydtOyYpeu2hA0KK+ydtOq1kOyInA0KK+ydtOyYgeuqqQ0KK+ydtOq3ueydtA0KK+ydtOyYpeyEoA0KK+ydtOuzkeq1kA0KK+ydtOq4sOyaqQ0KK+ydtOyEseuwsA0KK+ydtOyYpeyEoA0KK+ydtOynhOydtA0KK+ydtO2YuOyYpA0KK+ydtOyEse2YuA0KK+ydtOyYpeyInA0KK+ydtOyiheuPhA0KK+ydtOqzteyIoA0KK+ydtOusuO2VmQ0KK+ydtOyYpeyXsA0KK+ydtOydtOuNlQ0KK+ydtOyerOyehA0KK+ydtOyerO2VtA0KK+ydtOyYpeydtA0KK+ydtOykgO2YhA0KK+ydtOyYpeuNlQ0KK+ydtOuPme2ZmA0KK+ydtOyYpeyekA0KK+ydtOyYpOyXsA0KK+ydtOuLrOuPmQ0KK+ydtO2DnOuMgA0KK+ydtOyYpeyjvA0KK+ydtOuFuOydvA0KK+ydtOunjOqxtA0KK+ydtOyduOuPhA0KK+ydtOyYpeyjvA0KK+ydtOyihe2ZlA0KK+ydtOuqheyEnQ0KK+ydtOyEneyerA0KK+ydtOyYpe2drA0KK+ydtOyduOyEoA0KK+ydtOyCvO2VhA0KK+ydtOqyveykgA0KK+ydtOyZhOq1rQ0KK+ydtOyEoOybkA0KK+ydtOyaqeyLnQ0KK+ydtO2DnOyLnQ0KK+ydtOyZhOuylA0KK+ydtOuNleyglQ0KK+ydtO2DnOyyoA0KK+ydtOyImO2YuA0KK+ydtOyZhOydtA0KK+ydtOq4sOyEoA0KK+ydtOyWuOuhnQ0KK+ydtCDsmqkNCivsnbTsmYTtnawNCivsnbTsl7Dqt5wNCivsnbTquLDsiJgNCivsnbTquLDtmLgNCivsnbTsmZXsnqwNCivsnbTtg5zrsLANCivsnbTtmZTsp4QNCivsnbTtnaztmZQNCivsnbTsmZXsobANCivsnbTtlbTtnawNCivsnbTsoJDsnbwNCivsnbTsnYDquLANCivsnbTsmbjrgqgNCivsnbTrj5ntmY0NCivsnbTsp4DssqANCivsnbTsgqzrnoANCivsnbTsmbjsiJwNCivsnbTsooXquLANCivsnbTsg4Hro6ENCivsnbTqt6DsobANCivsnbTsmbjspIANCivsnbTtg5ztmZgNCivsnbTshozrnpgNCivsnbQg7KeEDQor7J207Jqp6rG0DQor7J2066eQ7Zi4DQor7J206re87Zi5DQor7J207KCV7ZmYDQor7J207Jqp6rKsDQor7J207IOB6riIDQor7J2067OR6529DQor7J207Z2l7IiYDQor7J207Jqp6rSADQor7J2064yA7JuQDQor7J207KKF67ORDQor7J207J2A7Zi4DQor7J207Jqp6rWsDQor7J207JiB64+ZDQor7J207KeE7KSADQor7J207KKF7IiYDQor7J207Jqp6rWsDQor7J207ZiV7ISgDQor7J207ZW07IiYDQor7J207Jqw7ZmYDQor7J207Jqp6rWtDQor7J207J247KCcDQor7J207KCQ7JiBDQor7J207Iic7KCQDQor7J207Jqp6raMDQor7J206rK964yADQor7J207ISd7JqpDQor7J207ZWZ64W4DQor7J207Jqp6recDQor7J2066qF7ISxDQor7J207LCo7J6EDQor7J206rK97Zi4DQor7J207Jqp6riwDQor7J2064+Z7KCQDQor7J2064yA7IiZDQor7J206rG066y4DQor7J207Jqp6riwDQor7J206rOE7YOBDQor7J2067SJ7LCsDQor7J207KeE7JaRDQor7J207Jqp65OdDQor7J207JiB6rWtDQor7J2067SJ7KCVDQor7J207ISx64+ZDQor7J207Jqp66y4DQor7J207KCE7JWUDQor7J207KKF7ZiEDQor7J207LKc7J24DQor7J207Jqp66y4DQor7J207IaM7JiBDQor7J207Zqo7JuQDQor7J207JiB642VDQor7J207Jqp67CxDQor7J207Iig64WEDQor7J206rWs7ZiVDQor7J207LaY7Zi4DQor7J207Jqp67O1DQor7J2066qF64+EDQor7J207JiB64+ZDQor7J207J6E7IiZDQor7J207Jqp7ISdDQor7J2067OR7IudDQor7J206riI7IudDQor7J207Jqp7IicDQor7J207Jqp7ISdDQor7J207J247Je0DQor7J206riw7IiYDQor7J207YOc642VDQor7J207Jqp7IiYDQor7J207KCc7JqpDQor7J206re87JqxDQor7J207KSR7YOcDQor7J207Jqp7IiYDQor7J2066eM7Zi4DQor7J207Iq57JuQDQor7J207ZW06recDQor7J207Jqp7IudDQor7J207LCo7LaYDQor7J206rec7IiYDQor7J207Ja47ZiEDQor7J207Jqp7JeFDQor7J207ISx7ZmUDQor7J2067O166a8DQor7J2066qF64+MDQor7J207Jqp7JeFDQor7J207KSA67O1DQor7J207Jqp7LKcDQor7J207Jyk7Zi4DQor7J207Jqp7Je0DQor7J207YyQ67aEDQor7J207IyN6raMDQor7J207J2R6rWsDQor7J207Jqp7Jq0DQor7J207J6s7KeEDQor7J207YOc67O1DQor7J207KKF656RDQor7J207Jqp7Jq0DQor7J207Jyg7IudDQor7J207J217ISxDQor7J207J6s7ZmYDQor7J207Jqp7JuQDQor7J2064+Z64usDQor7J2064W47JmVDQor7J207J287KKFDQor7J207Jqp7KGwDQor7J207JiB7ISdDQor7J2066eQ6raMDQor7J207YOc7KGwDQor7J207Jqp7KO8DQor7J2067OR7JiBDQor7J207IK87JewDQor7J207KKF7J6QDQor7J207Jqp7KO8DQor7J2067O17IOBDQor7J207KCV7J6QDQor7J2064yA7ZmNDQor7J207Jqp7LKgDQor7J207KCV7Z2gDQor7J2067OR7Jq0DQor7J2066eM7KeEDQor7J207Jqp7LKgDQor7J207YOc65OdDQor7J207LC96rWtDQor7J207ISx7IiYDQor7J207Jqp7LacDQor7J207Iic6recDQor7J2066eM7ISgDQor7J2064yA7J6QDQor7J207Jqp7YOcDQor7J207Iic7JqpDQor7J207Z2s7IiYDQor7J207ISd6recDQor7J207Jqp7YOdDQor7J207Iic7J28DQor7J207IOB7JilDQor7J207ISx7Z2sDQor7J207Jqp7YOdDQor7J2064+E7ZuIDQor7J207KKF7Zy0DQor7J2065GQ7KSADQor7J207Jqp7YOdDQor7J207JiB6regDQor7J207ZW07IudDQor7J207JiB7ZmYDQor7J207Jqp7YyUDQor7J207IaM7ISdDQor7J207ISd7ISgDQor7J207J6s7J6QDQor7J207Jqp7YyUDQor7J207KCV7LacDQor7J206rCR7IudDQor7J207JiB7IiYDQor7J207Jqp7ZWcDQor7J207Zqo64+EDQor7J207IOB7LCoDQor7J207ISx6rWQDQor7J207Jqp7ZiBDQor7J207Jyk7IiZDQor7J207JiB7IiZDQor7J2064+Z7JqpDQor7J207Jqp7ZiEDQor7J207Jq07Jq0DQor7J207J6s7J6QDQor7J207Jm464+EDQor7J207Jqp7Zi4DQor7J2066qF7JqxDQor7J207Jyk7JqxDQor7J207JuQ7YOdDQor7J207Jqp7ZmUDQor7J207IOB7Zi4DQor7J207LaY7Zi4DQor7J2064+Z6rWtDQor7J207Jqp7ZmYDQor7J207KCV7ZuIDQor7J206riw7Zi4DQor7J207Zi47JyoDQor7J207Jqp7ZmYDQor7J207J2A7LKgDQor7J207LaY7JuFDQor7J2066eM64+MDQor7J207Jqp7Z2sDQor7J207JiB6riwDQor7J207YOc6recDQor7J207KCV7JuQDQor7J207Jqp7Z2sDQor7J207IOB64+ZDQor7J207ISx64yADQor7J207Zic7IiYDQor7J207Jqw6re8DQor7J2066qF7ZiEDQor7J2067OR7JqpDQor7J207IaM7ISgDQor7J207Jqw64+ZDQor7J207KeA7LmZDQor7J2067KU7Iq5DQor7J207Jyk66eMDQor7J207Jqw64+ZDQor7J207LKg66CoDQor7J207JiB7LC9DQor7J207IOB7IudDQor7J207Jqw7ISdDQor7J207Jqp7IStDQor7J207KKF7KeEDQor7J2066qF7IudDQor7J207Jqw7IudDQor7J207Zi46riwDQor7J2064+I7YOcDQor7J207Iic6recDQor7J207Jqw7IudDQor7J207Jqp67aEDQor7J207KSR7YOdDQor7J206rK97KSADQor7J207Jqw7IudDQor7J2067OR7KGwDQor7J2066qF7JqpDQor7J207J6s7Je0DQor7J207Jqw7IudDQor7J207J2R7J28DQor7J207JiB7KO8DQor7J207KeE6rCADQor7J207Jqw7J6EDQor7J207KCV7JqpDQor7J207JiB7ISgDQor7J206reA7ISdDQor7J207Jqw7ZmYDQor7J207KeA7ZmNDQor7J2066eQ7YOcDQor7J207ZW07JWUDQor7J207Jqx64W4DQor7J2067aE7IiYDQor7J207J6s7Z2sDQor7J207ZWt7JqxDQor7J207Jqx7ZmYDQor7J206rCR64+EDQor7J207ZiE7J6QDQor7J207IiY7ZmYDQor7J207Jqx7ZmYDQor7J207Zi47ZWZDQor7J207Jqw7IiYDQor7J2064Ko7IiYDQor7J207Jq07ISdDQor7J207JiB7ISdDQor7J207Lap7IudDQor7J207Iug7IiYDQor7J207Jq07LKgDQor7J2064Ko7KSADQor7J207YOc7IOBDQor7J207JiB64KoDQor7J207Jq07ZWZDQor7J207KCV7KCQDQor7J207ZiE64+EDQor7J2067OR7J20DQor7J207Jq07Zi4DQor7J207IOB7J6sDQor7J206riw7KO8DQor7J207J2A7IicDQor7J207JuF7Je0DQor7J207KKF7J6QDQor7J207J2E7IiYDQor7J207KSA7JqpDQor7J207JuQ6rWsDQor7J2066eM7Je0DQor7J2067O17JqpDQor7J2067aE7J24DQor7J207JuQ6recDQor7J207KO87ZmUDQor7J207KCV66eMDQor7J207YyQ67mIDQor7J207JuQ6recDQor7J2067SJ7LKgDQor7J207LC97IiYDQor7J206rSR7Zi4DQor7J207JuQ6recDQor7J207Zqo6rSADQor7J207J2R7IiZDQor7J207KKF7J28DQor7J207JuQ6riwDQor7J207ISd64WEDQor7J207JuQ7IudDQor7J2067SJ7J6QDQor7J207JuQ6riwDQor7J207Zqo67SJDQor7J206rOE64KoDQor7J207IiY66+4DQor7J207JuQ6ri4DQor7J207LKg7KGwDQor7J207Iq56riwDQor7J206rSR7Zi4DQor7J207JuQ64yADQor7J207ISg7IugDQor7J2066y47JqpDQor7J207ZW07Zi4DQor7J207JuQ67CwDQor7J207YOc67aEDQor7J207ZWc6recDQor7J206riw7JmEDQor7J207JuQ67CwDQor7J20IOyYpQ0KK+ydtOydhO2YhA0KK+ydtOynhO2ZmA0KK+ydtOybkOu2hA0KK+ydtOyasOuwsA0KK+ydtOyYge2YuA0KK+ydtOq4sOyInA0KK+ydtOybkOyGjA0KK+ydtOyerOq4sA0KK+ydtOyEoOygnA0KK+ydtOyGjOyInA0KK+ydtOybkOyImA0KK+ydtOyaqe2VmA0KK+ydtOuPmeyYpQ0KK+ydtOyYgeyLnQ0KK+ydtOybkOyImA0KK+ydtOuMgOq4sA0KK+ydtOyEoOyXtA0KK+ydtOyEse2DnA0KK+ydtOybkOyImA0KK+ydtOyDgeyImA0KK+ydtOyaqe2YhA0KK+ydtOyiheyatA0KK+ydtOybkOyLnQ0KK+ydtOyerO2YuA0KK+ydtOykgO2YhA0KK+ydtOyehOyImA0KK+ydtOybkOyLnQ0KK+ydtOyImOyasQ0KK+ydtO2DnOy2nA0KK+ydtOyYgeuPiA0KK+ydtOybkOyYgQ0KK+ydtOyGjOuTnQ0KK+ydtO2YhOyErQ0KK+ydtOuzkeyLnQ0KK+ydtOybkOyasA0KK+ydtOyEse2ZmA0KK+ydtOu0ieuqqA0KK+ydtOyaqe2XjA0KK+ydtOybkOyasA0KK+ydtOustOyZhA0KK+ydtOyYgeyihQ0KK+ydtOyynO2biA0KK+ydtOybkOydvA0KK+ydtOuPmeynhA0KK+ydtOu0ieyEoA0KK+ydtOuptOy2nA0KK+ydtOybkOyekA0KK+ydtOqyveq4uA0KK+ydtOyDgeyZhA0KK+ydtO2VnOyyoA0KK+ydtOybkOyerA0KK+ydtOynhO2YhA0KK+ydtOq1kO2MkA0KK+ydtOyYgeyZhA0KK+ydtOybkOyhsA0KK+ydtOuvuO2ctA0KK+ydtOywveyEoA0KK+ydtOykkeyEoA0KK+ydtOybkOynhA0KK+ydtOyjvOyWkQ0KK+ydtOybkOy2nA0KK+ydtOu0ieyxhA0KK+ydtOybkOyyoA0KK+ydtOuPhOyEsQ0KK+ydtOyaqeybhQ0KK+ydtOusuOyWkQ0KK+ydtOybkOy2nA0KK+ydtOyKueyekA0KK+ydtOuvuOuNlQ0KK+ydtO2Yleq1kA0KK+ydtOybkO2YlQ0KK+ydtOygle2drA0KK+ydtOyepeuztQ0KK+ydtOyaqeqzhA0KK+ydtOybkO2YuA0KK+ydtOq4uOq4sA0KK+ydtOyiheyaqQ0KK+ydtOyImO2YhA0KK+ydtOybkO2ZlA0KK+ydtOuzteq3vA0KK+ydtOyduOyekA0KK+ydtOyDgeqyvQ0KK+ydtOybkO2drA0KK+ydtOyImOyEsQ0KK+ydtOuqheq3vA0KK+ydtOyekOuTnQ0KK+ydtOyblOqzhA0KK+ydtOyerOyLnQ0KK+ydtOq0ke2DnQ0KK+ydtOuCqOyihQ0KK+ydtOyblOyEoA0KK+ydtO2YleyEnQ0KK+ydtOygleuqqQ0KK+ydtOyerOujoQ0KK+ydtOyblOyEsQ0KK+ydtOuMgO2YhA0KK+ydtOyyoOu2hA0KK+ydtOygnOq3nA0KK+ydtOyblO2VnA0KK+ydtOq4iO2biA0KK+ydtOygnO2VmQ0KK+ydtOydvOuMgA0KK+ydtOyblO2drA0KK+ydtOyEne2YuA0KK+ydtOuzkeyXsA0KK+ydtOyDgeyErQ0KK+ydtOychOunjA0KK+ydtOusuOybhQ0KK+ydtOuzke2ZmA0KK+ydtOyerOq4iA0KK+ydtOychOyErQ0KK+ydtOyImO2YuA0KK+ydtOyatOyErQ0KK+ydtOyerOuPmQ0KK+ydtOychOyImQ0KK+ydtOyYgeyerA0KK+ydtOyiheycpA0KK+ydtOyWkeyImQ0KK+ydtOychOy2nA0KK+ydtO2ZlOydtA0KK+ydtOq4sOyImA0KK+ydtO2DnOyVlA0KK+ydtOychO2YuA0KK+ydtOyEneyekA0KK+ydtOq4sOy5oA0KK+ydtOuRkOu0iQ0KK+ydtOycoOyXtA0KK+ydtOqwke2ZmA0KK+ydtOyerOyYpA0KK+ydtOq4sOycpA0KK+ydtOycoOybkA0KK+ydtOy+jOyglQ0KK+ydtOygleq3nA0KK+ydtOywveyEnQ0KK+ydtOycoO2ZmA0KK+ydtO2YhOyImA0KK+ydtOycoOq1rQ0KK+ydtOqxtOq3vA0KK+ydtOycoe2DnQ0KK+ydtOyEneyaqQ0KK+ydtOyInOq3vA0KK+ydtOyInOyVoA0KK+ydtOycpOq3nA0KK+ydtOyxhOyasA0KK+ydtOyCvOuPjA0KK+ydtOy2mOuLrA0KK+ydtOycpOq3vA0KK+ydtOqwleudvQ0KK+ydtOywveyEoA0KK+ydtCDtmLgNCivsnbTsnKTquLANCivsnbTsl4XqtZANCivsnbTqsr3rj4QNCivsnbTtmqjsl7ANCivsnbTsnKTquLANCivsnbTsnqzshKANCivsnbTshLjquLgNCivsnbTstpjrtIkNCivsnbTsnKTrhbgNCivsnbTsmIHsl7ANCivsnbTsiJzsiJgNCivsnbTsmbjsl7QNCivsnbTsnKTrp4wNCivsnbTsg4HstpgNCivsnbTtg5zshKANCivsnbTrs5Hsi50NCivsnbTsnKTsiJgNCivsnbTsiJzrsJUNCivsnbTtg5ztlZkNCivsnbTsm5Dsm5ANCivsnbTsnKTsiJgNCivsnbTrqoXtmLgNCivsnbTsp4Dsm5ANCivsnbTtg5ztlqUNCivsnbTsnKTsi50NCivsnbTqsr3tg5wNCivsnbTrj5ntmIQNCivsnbTssqDspIANCivsnbTsnKTsmKUNCivsnbTsiJjrj5kNCivsnbTso7zsmKUNCivsnbTsooXsiJgNCivsnbTsnKTsm5ANCivsnbTshLHtmIQNCivsnbTsnqzsmIENCivsnbTtmJXsiJgNCivsnbTsnKTsnqwNCivsnbTsooXsmKQNCivsnbTtjJDsmqkNCivsnbTsm5Dsp4QNCivsnbTsnKTsoJUNCivsnbTtg4HsiJgNCivsnbTsnKTqtowNCivsnbTrs5HsmIENCivsnbTsnKTsooUNCivsnbTsooXrjZUNCivsnbTsnbzqsbgNCivsnbTsnbTso7wNCivsnbTsnKTsooUNCivsnbTrtoDtnawNCivsnbTquLDspIANCivsnbTsp4Dsi50NCivsnbTsnKTsp4QNCivsnbTsm5DtnawNCivsnbTshLHtmakNCivsnbTshKDsmKUNCivsnbTsnKTssYQNCivsnbTsgrztg50NCivsnbTtg5zsl7QNCivsnbTsoJXsnbwNCivsnbTsnKTssqANCivsnbTtjJDtlYQNCivsnbTrkZDsiJgNCivsnbTtmY3sl7ANCivsnbTsnKTssqANCivsnbTsg4HsmqkNCivsnbTsmIHtmZQNCivsnbTtmLjsmrANCivsnbTsnKTssqANCivsnbTqtJHqta0NCivsnbTsiJjqtowNCivsnbTsvoztg5wNCivsnbTsnKTtmIQNCivsnbTrr7zsoJUNCivsnbTtg5ztlZkNCivsnbTrs5HtmLgNCivsnbTsnKTtmIQNCivsnbTrqoXquIgNCivsnbTsiJjso7wNCivsnbTtmJztmIQNCivsnbTsnKTtm4gNCivsnbTsm5TrjIANCivsnbTtg5zrtoQNCivsnbTqtazssKwNCivsnbTsnKTtnawNCivsnbTtl4zsmIENCivsnbTtmY3tg5wNCivsnbTsmqnsiJwNCivsnbTsnLXquLANCivsnbTtg5ztm4gNCivsnbTsnbjsiKANCivsnbTtmITrqqkNCivsnbTsnYDqsr0NCivsnbTtlbTsmIENCivsnbTrgqjquLANCivsnbTsnKTtg5wNCivsnbTsnYDqtJENCivsnbTtl4ztnawNCivsnbQg7ZmYDQor7J207LC97ZmNDQor7J207J2A7IiZDQor7J206rCV7JqwDQor7J2066eM7ZiEDQor7J207ZWc7JWgDQor7J207J2A7JiBDQor7J207Jyk7LacDQor7J207ISx7ISgDQor7J206rG07Z2sDQor7J207J2A7JqwDQor7J207IOB7ZW0DQor7J207YyQ6re8DQor7J207KCV7ZiEDQor7J207J2A7KGwDQor7J207J6s7IudDQor7J2064Ko66a9DQor7J206rK97IudDQor7J207J2A7KO8DQor7J207ISg7LmgDQor7J207ISx642VDQor7J2064+E7IudDQor7J207J2A7KO8DQor7J207ZiE6recDQor7J2065GQ7KeEDQor7J207JiB7J6QDQor7J207J2A7KO8DQor7J207ZiE6rSADQor7J207KKF64yADQor7J2066qF7ISxDQor7J207J2A7LKgDQor7J207KGw66GADQor7J2067SJ7Z2sDQor7J206rK97Z2sDQor7J207J2A7YOBDQor7J207IOB7LapDQor7J206rSR7IicDQor7J206rK97J6QDQor7J207J2E7ISgDQor7J2065GQ7ZmYDQor7J207KKF7ZWcDQor7J207JiB6riwDQor7J207J2E7KO8DQor7J206riw7YOdDQor7J207J207JikDQor7J207J6s6rCVDQor7J207J2E7ZiVDQor7J207JiB7LKgDQor7J207IK87ZmNDQor7J207ZuE7Z2sDQor7J207J2R64+EDQor7J207KCV7JqwDQor7J206riw6recDQor7J207J247ZuIDQor7J207J2R67O1DQor7J207J6s7Z2sDQor7J207LCo7JqxDQor7J207Iq567aEDQor7J207J2R7KSADQor7J207IyN6recDQor7J206rSR7Jq0DQor7J206rOE7J6QDQor7J207J2Y7IaMDQor7J20IOyEnQ0KK+ydtOyWkey2nA0KK+ydtOqzoOyViA0KK+ydtOydmOyImA0KK+ydtOustOyaqQ0KK+ydtOyYge2doA0KK+ydtO2XjOyXsA0KK+ydtOydmOyLoA0KK+ydtOykgOyerA0KK+ydtOuMgOq3vA0KK+ydtOygleyInA0KK+ydtOydmOyaqQ0KK+ydtOyduOuPhA0KK+ydtOyDgeyImA0KK+ydtOyInO2YuA0KK+ydtOydmOybhQ0KK+ydtOunjOq4sA0KK+ydtOuzke2YhA0KK+ydtOyImOydgA0KK+ydtOydmOy2nA0KK+ydtOycpOyEnQ0KK+ydtOq4iO2DnQ0KK+ydtOuNle2drA0KK+ydtOydmO2ZmA0KK+ydtOyYgeuCqA0KK+ydtOyerOyImA0KK+ydtO2VnOyhsA0KK+ydtOydtOqyvQ0KK+ydtO2VtOunjA0KK+ydtOyYgey2mA0KK+ydtOyInOycpA0KK+ydtOydtOq3vA0KK+ydtOynhOyImA0KK+ydtOyDge2VtA0KK+ydtOuCqOuPjA0KK+ydtOydtOuCqA0KK+ydtOyerOyEnQ0KK+ydtOqyveynhA0KK+ydtOywqOyekA0KK+ydtOydtOuTnQ0KK+ydtOyZuO2VmA0KK+ydtOykgOyVlA0KK+ydtOyerO2YhA0KK+ydtOydtOyEnQ0KK+ydtOybkOq0gA0KK+ydtOyInOusuA0KK+ydtOusuOuMgA0KK+ydtOydtOyaqQ0KK+ydtOybkOyEnQ0KK+ydtOyaqeq0kQ0KK+ydtOunjOynhA0KK+ydtOydte2YhA0KK+ydtOy5oOyXtA0KK+ydtO2DnOq3nA0KK+ydtOyepe2WiQ0KK+ydtOyduOqzpA0KK+ydtOyiheyImQ0KK+ydtOyYpe2YhA0KK+ydtOyDgeyyoA0KK+ydtOyduOqzpA0KK+ydtOyWkeydvA0KK+ydtOyEne2YhA0KK+ydtOyDgeyaqQ0KK+ydtOyduOq1rA0KK+ydtOyerO2drA0KK+ydtOydtOq3nA0KK+ydtOyDgeq3nA0KK+ydtOyduOq3nA0KK+ydtOykkeyInA0KK+ydtO2ZlOuqhQ0KK+ydtOyblOyInA0KK+ydtOyduOuPmQ0KK+ydtOyMjeycpA0KK+ydtOq4sOq1kA0KK+ydtOyyoOyglQ0KK+ydtOyduOuqqA0KK+ydtOydtOuwsA0KK+ydtOuqheyDnQ0KK+ydtOyImOyjvA0KK+ydtOyduOyEnQ0KK+ydtOyEseydmA0KK+ydtOyYgeyEoA0KK+ydtOuFuOykgA0KK+ydtOyduOyErQ0KK+ydtOqyveyjvA0KK+ydtOydmOu0iQ0KK+ydtO2ZjeyhsA0KK+ydtOyduOyImA0KK+ydtOustOyImA0KK+ydtOyYgeywrA0KK+ydtOyDgey2mA0KK+ydtOyduOyImA0KK+ydtOyEneyekA0KK+ydtOyDge2ZmA0KK+ydtOydvOyImQ0KK+ydtOyduOyImA0KK+ydtO2YuO2biA0KK+ydtOq0ke2drA0KK+ydtOyepeyasQ0KK+ydtOyduOyImQ0KK+ydtO2VtOq3oA0KK+ydtOyEneydtA0KK+ydtOyerOydgA0KK+ydtOyduOyImQ0KK+ydtO2DnOuNlQ0KK+ydtO2Zjeq2jA0KK+ydtOyYgeuvvA0KK+ydtOyduOyYgQ0KK+ydtOq3nOq4iA0KK+ydtOuzke2YuA0KK+ydtOyKueygnA0KK+ydtOyduOyasA0KK+ydtOyaqeuvvA0KK+ydtOyerOydtA0KK+ydtO2DnOu2hA0KK+ydtOyduOyekA0KK+ydtOunjOyihQ0KK+ydtOyatO2drA0KK+ydtOyekOyXsA0KK+ydtOyduOyyoA0KK+ydtOq1sOu2hA0KK+ydtOu2gOyerA0KK+ydtOyerOyErQ0KK+ydtOyduO2RnA0KK+ydtOyEseqzpA0KK+ydtOuMgOyLnQ0KK+ydtOq4sOyaqQ0KK+ydtOyduO2WpQ0KK+ydtOusuOuNlQ0KK+ydtO2ZmOuPjA0KK+ydtOyImeuTnQ0KK+ydtOyduO2YuA0KK+ydtOyYge2DnA0KK+ydtOq4sOyImA0KK+ydtOuqve2ZmA0KK+ydtOyduO2YuA0KK+ydtOyaqeyglQ0KK+ydtOyWuOyjvA0KK+ydtOyYge2YhA0KK+ydtOyduO2YuA0KK+ydtOyYgeyduA0KK+ydtOyiheuNlQ0KK+ydtOykgOybkA0KK+ydtOyduO2ZmA0KK+ydtOq4iOuMgA0KK+ydtOunkOyLnQ0KK+ydtOyaqeynkQ0KK+ydtOyduO2ZmA0KK+ydtOyDgeyInA0KK+ydtO2VmeuFgA0KK+ydtOunjOyEnQ0KK+ydtOyduO2ZmA0KK+ydtOyduO2ZmA0KK+ydtOyWkeyImQ0KK+ydtOyKueybhQ0KK+ydtOydvOq2jA0KK+ydtOynhOyaqQ0KK+ydtOyiheyhsA0KK+ydtOuCqOqzpA0KK+ydtOydvOq3oA0KK+ydtOyasOuylA0KK+ydtO2VtOq4sA0KK+ydtOyEse2VmQ0KK+ydtOydvOyDiQ0KK+ydtOuqheu0iQ0KK+ydtOyImOyLnQ0KK+ydtOuqheyYpQ0KK+ydtOydvOyImA0KK+ydtOyYge2YuA0KK+ydtOy2qeyYpQ0KK+ydtO2DnOuegA0KK+ydtOydvOyImA0KK+ydtOywveuhnQ0KK+ydtOuzkeuNlQ0KK+ydtOyDge2YuA0KK+ydtOydvOyInA0KK+ydtOuRkOyXsA0KK+ydtOywrOyYgQ0KK+ydtOyInO2YhA0KK+ydtOydvOyInA0KK+ydtOyEseuztQ0KK+ydtOqwkO2DnA0KK+ydtOyGjOyImA0KK+ydtOydvOyInA0KK+ydtOyGjOuPhA0KK+ydtOyYgeyImQ0KK+ydtO2MkO2YuA0KK+ydtOydvOybhQ0KK+ydtO2DnO2YuA0KK+ydtOyjvO2YhA0KK+ydtOq4sOyXtA0KK+ydtOydvOybkA0KK+ydtOuFuOq3vA0KK+ydtOyihe2YhA0KK+ydtOq4iOyepQ0KK+ydtOydvO2YuA0KK+ydtOunkOynhA0KK+ydtO2YhOyLnQ0KK+ydtOygleyLnQ0KK+ydtOydvO2YuA0KK+ydtOuqheyYpQ0KK+ydtOyerOq4sA0KK+ydtOu0ieyEnQ0KK+ydtOydvO2ZmA0KK+ydtOyEnO2YhA0KK+ydtOyEseq1kA0KK+ydtOyWuOyEsQ0KK+ydtOydvO2ZmA0KK+ydtOydmO2ZmA0KK+ydtOyDge2ZlA0KK+ydtOyEneq3nA0KK+ydtOyehOuTnQ0KK+ydtOyInOyaqQ0KK+ydtO2YhOyVhQ0KK+ydtOyiheq4uA0KK+ydtOyehOyEnQ0KK+ydtOuCmeq2jA0KK+ydtOydmOyEnQ0KK+ydtOywveyImA0KK+ydtOyehOyEoA0KK+ydtCDsiJgNCivsnbTtlbTtmY0NCivsnbTsoJXsmKUNCivsnbTsnoTshKANCivsnbTrs7TshJ0NCivsnbTsoJXtnawNCivsnbTqsr3shJ0NCivsnbTsnoTshKANCivsnbTsmIHsiJwNCivsnbTsoJXroKgNCivsnbTsoJDquLgNCivsnbTsnoTsiJkNCivsnbTtnaXsiJgNCivsnbTshKDtmIQNCivsnbTtlbTstpwNCivsnbTsnoTsiJwNCivsnbTqsJHtlZgNCivsnbTtlZztmLgNCivsnbTsmIHsmqkNCivsnbTsnoTsi50NCivsnbTqtJHsnpANCivsnbTrj5nsobANCivsnbTrs7Xqs6QNCivsnbTsnoTsmqkNCivsnbTsmIHrjZUNCivsnbTsm5Dqt5wNCivsnbTsnbjspIANCivsnbTsnoTsnbQNCivsnbTsmqntg5wNCivsnbTsmIHshLENCivsnbTsp4TtmLgNCivsnbTsnoTsnbQNCivsnbTrs5HtmLgNCivsnbTso7ztmIENCivsnbTtmY3smqkNCivsnbTsnoTsnpANCivsnbTrgqjsl7ANCivsnbTrs5HsiJgNCivsnbTtlbTtnawNCivsnbTsnoTtlZkNCivsnbTsg4HquLANCivsnbTrj4TsmqkNCivsnbTsgrzsnpANCivsnbTsnoTtmLgNCivsnbTqtIDsmqkNCivsnbTsiJjsmIENCivsnbTrtInsl7QNCivsnbTsnpDsl7ANCivsnbTsnqzri6wNCivsnbTsmIHsmKQNCivsnbTtjJDqt5wNCivsnbTsnqXqt7wNCivsnbTqt5zqt6ANCivsnbTtlZzqta0NCivsnbTrtoTsmrQNCivsnbTsnqXrhbgNCivsnbTsoJXsiJgNCivsnbTsmIHsiJgNCivsnbTsiJzrp4wNCivsnbTsnqXrjZUNCivsnbTshJ3siJgNCivsnbTrjZXrjZUNCivsnbTtmZTsiJgNCivsnbTsnqXrsLANCivsnbTsnbzso7wNCivsnbTsg4Hsi50NCivsnbTsooXsm5ANCivsnbTsnqXsh4QNCivsnbTsooXquLANCivsnbTshLHqta0NCivsnbTrj5ntmLgNCivsnbTsnqXsiJgNCivsnbTsg4Hrj4QNCivsnbTsoJXsobANCivsnbTsiJztj6wNCivsnbTsnqXsiJgNCivsnbTsoJDspJENCivsnbTsp4TshJ0NCivsnbTshKDqt4ANCivsnbTsnqXsmKQNCivsnbTquLDsnqwNCivsnbTshJ3siJkNCivsnbTsmIHrj5kNCivsnbTsnqXsmrANCivsnbTqsr3qsJUNCivsnbTsnqzslaANCivsnbTsnKTrj4wNCivsnbTsnqXsmrANCivsnbTqsJHsobANCivsnbTsnbjsi50NCivsnbTtlbTquLANCivsnbTsnqXsmrENCivsnbTrj4Tqt6ANCivsnbTssL3siJkNCivsnbTsnZHquLANCivsnbTsnqXso7wNCivsnbTsi6DssqANCivsnbTtlbTrpaANCivsnbTrtInquLANCivsnbTsnqXstpgNCivsnbTtg5ztmY0NCivsnbTrjIDqta0NCivsnbTquIjqsqwNCivsnbTsnqXstpgNCivsnbTsmIHssqANCivsnbTsmqnso7wNCivsnbTsg4HquLANCivsnbTsnqXtmLgNCivsnbTtg5ztlZwNCivsnbTspp3smKUNCivsnbTsnqzspIANCivsnbTsnqXtmLgNCivsnbTsmIHsiJkNCivsnbTsnqztmIQNCivsnbTtg5zsnqwNCivsnbTsnqXtmZgNCivsnbTsmKXtmIENCivsnbTsooXsmIENCivsnbTslpHsiKANCivsnbTsnqXtmZgNCivsnbTquLDsi50NCivsnbTsiJjtmowNCivsnbTtg5zquLANCivsnbTsnqXtnawNCivsnbTquLjrjZUNCivsnbTso7zroKQNCivsnbTsoJXsnoQNCivsnbTsnqzqsJENCivsnbTsmKTtnawNCivsnbTsmIHsl7QNCivsnbTsmIHshJ0NCivsnbTsnqzqsr0NCivsnbTstpjquLgNCivsnbTqt7zsmIENCivsnbTqtJHsiJwNCivsnbTsnqzqtIANCivsnbTshJ3smKUNCivsnbTsmIHri6wNCivsnbTsooXqtawNCivsnbTsnqzqtawNCivsnbTtmozrpr0NCivsnbTsmIHsi50NCivsnbTsiJnsiJgNCivsnbTsnqzqtawNCivsnbTsoJXtmZQNCivsnbTsoJXqtawNCivsnbTsoJXquLgNCivsnbTsnqzqta0NCivsnbTsoJDsiJwNCivsnbTrqoXsmqkNCivsnbTrtInsnpANCivsnbTsnqzqtowNCivsnbTshLjrtIkNCivsnbTsmqntnawNCivsnbTsnbzshK0NCivsnbTsnqzqt6ANCivsnbTtjJDqtJENCivsnbTsnqzsi50NCivsnbTsooXtg5wNCivsnbTsnqzqt7wNCivsnbTtlbTshJ0NCivsnbTsmIHssq0NCivsnbTsoJXshJ0NCivsnbTsnqzqt7wNCivsnbTsnKTtnawNCivsnbTqs4TrnpgNCivsnbTrj5nsl7ANCivsnbTsnqzquLANCivsnbTrj4TsiJwNCivsnbTtg5zrp4wNCivsnbTrqoXsnpANCivsnbTsnqzquLgNCivsnbTqsbTtkZwNCivsnbTrs5Hrj4wNCivsnbTrj5nrrLgNCivsnbTsnqzrjZUNCivsnbTqs4TquLgNCivsnbTsooXsmqkNCivsnbTri6zshLENCivsnbTsnqzrjZUNCivsnbTsooXspJENCivsnbTtjJTsmrANCivsnbTsmKXssqANCivsnbTsnqzrjZUNCivsnbTquLDrp4wNCivsnbTshJ3rj4QNCivsnbTsooXtj6wNCivsnbTsnqzrj4QNCivsnbTsm5DsirkNCivsnbTsoJDrj5kNCivsnbTtg5zshK0NCivsnbTsnqzrj5kNCivsnbTshJ3siJgNCivsnbTshLHsmqkNCivsnbTssL3tlZkNCivsnbTsnqzrp4wNCivsnbTshLHtlZgNCivsnbTrqoXrj4wNCivsnbTsnqzrqqgNCivsnbTsnqzrp4wNCivsnbTsg4Hqs6QNCivsnbTrj5nsobANCivsnbTqsJXqtowNCivsnbTsnqzrqoUNCivsnbTrqbTrjIANCivsnbTshLHtlZgNCivsnbTslrXsmqkNCivsnbTsnqzrrLgNCivsnbTsmIHrp4wNCivsnbTsmIHqt5wNCivsnbTsnqzsiJkNCivsnbTsnqzrrLgNCivsnbQg7YOcDQor7J207ZeM66y1DQor7J207ZWY7ISdDQor7J207J6s66y4DQor7J207ISx7J21DQor7J207KeE64KoDQor7J2067aE7LKcDQor7J207J6s67ORDQor7J207KCV7ZmUDQor7J206rSR6re8DQor7J206riw7JqpDQor7J207J6s67O1DQor7J207KKF7ISdDQor7J2066eM7IudDQor7J207ISx6raMDQor7J207J6s67SJDQor7J20642V7Je0DQor7J2064+Z64KoDQor7J206rec7J6sDQor7J207J6s67SJDQor7J207J207ZeMDQor7J207ZiE7Z2gDQor7J207YOc7YyUDQor7J207J6s67SJDQor7J207JiB7LaYDQor7J207J247YOdDQor7J2066qF7ZuIDQor7J207J6s67aIDQor7J207KeE7ZiEDQor7J207ISx7KSADQor7J207J2A7IiYDQor7J207J6s7ISgDQor7J207ZyY7J28DQor7J207KKF7ISgDQor7J207Z2l7ZqMDQor7J207J6s7ISgDQor7J2067OR7ISxDQor7J207YOc7YyQDQor7J20642V7KSRDQor7J207J6s7ISxDQor7J206rK97Zi4DQor7J2065GQ7KGwDQor7J207J287KKFDQor7J207J6s7ISxDQor7J207JiB64u0DQor7J2064+Z7IOdDQor7J207JuQ7JqpDQor7J207J6s7ISxDQor7J207Jq066eMDQor7J207YOc7YOdDQor7J207Iic7IiZDQor7J207J6s7IicDQor7J206riw7Zi4DQor7J207KCV7J28DQor7J207ZmN7JqwDQor7J207J6s7IudDQor7J207Jqp7YOdDQor7J207KKF7LC9DQor7J207KKF7JikDQor7J207J6s7JewDQor7J207ZWZ7IiYDQor7J206ri47IeEDQor7J207ZWc7Jq0DQor7J207J6s7Je0DQor7J206rK97LC9DQor7J207ZmY6rOkDQor7J207KeB7ISgDQor7J207J6s7JiBDQor7J207JiB7JykDQor7J206rK97ZiEDQor7J207Iq56riwDQor7J207J6s7JmEDQor7J2064us7ZiEDQor7J207Iic7Je0DQor7J207YOc7J20DQor7J207J6s7JqwDQor7J207ZWZ7JqwDQor7J2064+Z7ZmYDQor7J2067O17J6sDQor7J207J6s7JqwDQor7J2064+Z67SJDQor7J2064+Z7ZiEDQor7J207Z2s7JqpDQor7J207J6s7JqwDQor7J2066qF7KGwDQor7J207JiB6recDQor7J207JiB7IudDQor7J207J6s7JqwDQor7J207ZiE67aADQor7J207Jqp64+EDQor7J2064us7KeEDQor7J207J6s7JqwDQor7J2067aE7JiBDQor7J207LaY7JaRDQor7J207J6l7YOcDQor7J207J6s7JuFDQor7J207LKg642VDQor7J207JiB7LCoDQor7J206rWs7Zi4DQor7J207J6s7JuQDQor7J207IiY7J6sDQor7J207IOB7IiYDQor7J206re86recDQor7J207J6s7JyoDQor7J207KeE65OdDQor7J207LC97KSADQor7J207ISx6rK9DQor7J207J6s7J21DQor7J207YyQ7ISdDQor7J207KCV7IudDQor7J2066y07J6sDQor7J207J6s7J24DQor7J207Jyk7YOdDQor7J207IiY7JqwDQor7J207KKF7JilDQor7J207J6s7J28DQor7J207KCV64yADQor7J207ISx7Z2gDQor7J206raM7IS4DQor7J207J6s7KCVDQor7J207J287ISdDQor7J206rSR7IOBDQor7J207KO87Zi4DQor7J207J6s7KSADQor7J207JiB7Zy0DQor7J207Jyk6riwDQor7J207Jqp6rSADQor7J207J6s7LKcDQor7J207KCQ7IutDQor7J207ISx7JilDQor7J207ISk642VDQor7J207J6s7LKcDQor7J207JiB7JqwDQor7J207LC97IiYDQor7J207JaR7IiYDQor7J207J6s7LKgDQor7J2064us656YDQor7J207Jew7JiBDQor7J2067aE6rWsDQor7J207J6s7Zi4DQor7J2067OR7ZiEDQor7J207KKF7IiYDQor7J2064KZ67aEDQor7J207J6s7Zi4DQor7J2064+Z6regDQor7J2064+Z7IudDQor7J2066+47ZeMDQor7J207J6s7Zi4DQor7J207JiB7JuQDQor7J207LaY7ZiEDQor7J207KKF7LKgDQor7J207J6s7Zi4DQor7J206rCR7KO8DQor7J207Jqp6raMDQor7J207J246rWtDQor7J207J6s7Zi4DQor7J207LaU66qoDQor7J206rWs64+EDQor7J207LKg66OhDQor7J207J6s7ZmYDQor7J207J6s7ISdDQor7J207KSR7ZmUDQor7J206rSR7JiBDQor7J207J6s7ZuIDQor7J207Jq07JuFDQor7J2067OR7ZiEDQor7J207Z2s7YOcDQor7J207J6s7Z2sDQor7J206rK97YOBDQor7J206ri47JikDQor7J207JiB7IudDQor7J207J6s7Z2sDQor7J207ISx6re8DQor7J207YOc6re8DQor7J206rCR6riwDQor7J207KCQ64uIDQor7J207JuQ7JqwDQor7J207Jqp6rWtDQor7J2066eM7LKcDQor7J207KCQ64+EDQor7J207Jyk7JqpDQor7J207J2464yADQor7J207J6s64+EDQor7J207KCQ7ISgDQor7J206rOh6riwDQor7J207ISd7JuQDQor7J207ZiE7ZiEDQor7J207KCQ7IS4DQor7J207IiY7J20DQor7J207Jil7LKgDQor7J207KCV6rK9DQor7J207KCQ7IiYDQor7J2067OR7Zi4DQor7J207IOB7JWUDQor7J207KKF66y4DQor7J207KCQ7IiYDQor7J2064+Z7Je0DQor7J2067KU7KO8DQor7J2066eM7ZuIDQor7J207KCQ7IicDQor7J207IiY6re8DQor7J207IOB7ZmUDQor7J206rO17ZWcDQor7J207KCQ7IicDQor7J207LC966eMDQor7J207YOc7LKgDQor7J2065GQ7Jq0DQor7J207KCQ7JWUDQor7J207Lap7JuQDQor7J2064+Z7KGwDQor7J207Jqp7YOcDQor7J207KCQ7JWUDQor7J207ZmY7Je0DQor7J207YOc7Zy0DQor7J207ZWY65OdDQor7J207KCQ7JWUDQor7J206rSR642VDQor7J207J247ISxDQor7J207KeA7IudDQor7J207KCQ7JWUDQor7J207ZiE7IiZDQor7J2067SJ7IiYDQor7J206riw6re8DQor7J207KCQ7JikDQor7J207JiB6rCRDQor7J2067OR7IStDQor7J207Z2s6recDQor7J207KCQ7KGwDQor7J2064+Z7LaYDQor7J207JiB6rK4DQor7J207ZWc7IiYDQor7J207KCQ7Zi4DQor7J2067SJ6recDQor7J207ZWc7ISgDQor7J207IOB7IudDQor7J207KCV6rCRDQor7J207Jqp7J28DQor7J206rec7IudDQor7J207ZWc6riwDQor7J207KCV6rG0DQor7J207KKF7JqxDQor7J2067OR6riwDQor7J207ISd7KeEDQor7J207KCV6rOkDQor7J2067OR7IiYDQor7J207IOB7ZmYDQor7J206rCc7Je0DQor7J207KCV6rSADQor7J2064+Z6recDQor7J20642V7IOBDQor7J206ri47YOcDQor7J207KCV6rWsDQor7J2064+Z7YOcDQor7J2066qF7LKgDQor7J206reA6riwDQor7J207KCV6rWtDQor7J207JiB7JqxDQor7J207KCV6riwDQor7J207KeE7ZWYDQor7J207KCV6rWtDQor7J207JiB7Zi4DQor7J207ZiE7J28DQor7J207IK87IiYDQor7J207KCV6raMDQor7J207IOB66GdDQor7J207ISx7IStDQor7J2066qF6recDQor7J207KCV6recDQor7J2067OR6rWtDQor7J207J6s7J6sDQor7J2066qF6rK9DQor7J207KCV6recDQor7J2066+87JqpDQor7J207ZmN7J28DQor7J206rK97ZmNDQor7J207KCV6recDQor7J207ISx7JiBDQor7J207IiY66qoDQor7J2065GQ6rCVDQor7J207KCV6regDQor7J207Jqw7Z2sDQor7J2066qF67O1DQor7J206rSR7J6QDQor7J207KCV6regDQor7J207Jqp6ri4DQor7J207YOc7KGwDQor7J207JiB7JuQDQor7J207KCV6riwDQor7J207IOB7IicDQor7J207ISx66qoDQor7J207KeE7ZmNDQor7J207KCV6ri4DQor7J207KeE7IicDQor7J207YOc7JuQDQor7J207KCV7Je0DQor7J207KCV64KoDQor7J207J6s7ZWEDQor7J207ISg7IigDQor7J2064KZ6rK9DQor7J207KCV64usDQor7J207J287J6sDQor7J207Iq57ZWcDQor7J207JiB6recDQor7J207KCV642VDQor7J207J6E7LKgDQor7J2067OR7IiZDQor7J207Jqp7KO8DQor7J207KCV642VDQor7J207Lap6riwDQor7J207KCE6recDQor7J207Jik6recDQor7J207KCV64+EDQor7J207J287YOcDQor7J207ZWc6rCBDQor7J206rK97IigDQor7J207KCV64+MDQor7J207J6s7Je0DQor7J207JiB7Zi4DQor7J207YOc7ISgDQor7J207KCV65GQDQor7J207ISd7IiYDQor7J207IOB7ISgDQor7J207KCV66+8DQor7J207KCV656ADQor7J207Jyk6re8DQor7J207Jqp7ZuIDQor7J207KKF7KCcDQor7J207KCV66GcDQor7J207KKF7ZmUDQor7J207IOB7LKcDQor7J207JiB7IudDQor7J207KCV66WgDQor7J207JuQ66asDQor7J207ZeM7ISdDQor7J206rWs7JewDQor7J207KCV66a9DQor7J207KCQ7ZmYDQor7J2067OR7ISkDQor7J207YOc7KSADQor7J207KCV66+4DQor7J207ISx7KeEDQor7J207IiY6rOkDQor7J207ISc6rWsDQor7J207KCV66+8DQor7J207ZW07IiYDQor7J207ZmN7KGwDQor7J20642V7IiYDQor7J207KCV67aEDQor7J207KCc7ZmNDQor7J207KO87YOcDQor7J207JiB7KKFDQor7J207KCV7ISgDQor7J207Iq56riwDQor7J207KCV7YOcDQor7J207Iuc7ZmYDQor7J207KCV7IS4DQor7J207Jil7ZqoDQor7J207IS47JewDQor7J207LC97JiBDQor7J207KCV7IS4DQor7J207Lmg6riwDQor7J207J6Q6riwDQor7J207Iic66y4DQor7J207KCV7IiYDQor7J207ISd7Zi4DQor7J207JiB7J20DQor7J207KCV7YOcDQor7J207KCV7IiYDQor7J207ISx7JqpDQor7J207Jyk7IOBDQor7J207J6s66eMDQor7J207KCV7IiYDQor7J207Jqw7ISxDQor7J206riw7ZiVDQor7J207JiB7KeEDQor7J207KCV7IiZDQor7J206rSA66eMDQor7J207Jqp7YOcDQor7J207IK87ISgDQor7J207KCV7IiZDQor7J207ISg67SJDQor7J207KCV7JmEDQor7J207YOc7ZWZDQor7J207KCV7IiZDQor7J207ZiE7Zi4DQor7J207IK87Zi4DQor7J207JiB6rCRDQor7J207KCV7IiZDQor7J207KCV7Z2sDQor7J207ISx7J6QDQor7J207IOB7JykDQor7J207KCV7IiZDQor7J207LCs6riwDQor7J207ZiE7JuQDQor7J2064us7IudDQor7J207KCV7IicDQor7J207Jqp7YOcDQor7J2064us6riwDQor7J207KKF7IudDQor7J207KCV7IicDQor7J207ISx7LKgDQor7J207YOc64usDQor7J207ZW067aEDQor7J207KCV7IicDQor7J207KCV7LC9DQor7J207YOc6rOkDQor7J207KKF64KoDQor7J207KCV7IudDQor7J207ZWZ7ZmYDQor7J207Jqp7IiZDQor7J207J217ISxDQor7J207KCV7JWgDQor7J2067OR6rOkDQor7J20IO2DnA0KK+ydtOydvOyhsA0KK+ydtOygleyVoA0KK+ydtOyehOq3oA0KK+ydtOyYgeyekA0KK+ydtO2DnOyyoA0KK+ydtOygleyVoA0KK+ydtOyerO2drA0KK+ydtO2DnO2DnA0KK+ydtO2YhO2ZlA0KK+ydtOygleyXsA0KK+ydtOyEseyYpQ0KK+ydtO2VtOyImA0KK+ydtO2DnOyVlA0KK+ydtOygleyXtA0KK+ydtOuPmeyImA0KK+ydtOyInOyImA0KK+ydtOynhOybhQ0KK+ydtOygleyYpA0KK+ydtOyyoOykgA0KK+ydtO2VtOyihQ0KK+ydtOuqheynhA0KK+ydtOygleyYpQ0KK+ydtOqwnOyIoA0KK+ydtOynhOuhnQ0KK+ydtOusuOq3vA0KK+ydtOygleybhQ0KK+ydtOyerOq1kA0KK+ydtO2Wie2DnA0KK+ydtOyEseybhQ0KK+ydtOygleybhQ0KK+ydtCDtnawNCivsnbTrjIDspJENCivsnbTsooXsobANCivsnbTsoJXsm4UNCivsnbTsnKTtg50NCivsnbTstpjsiJgNCivsnbTsm5DspIANCivsnbTsoJXsm5ANCivsnbTsoJXsiJgNCivsnbTssL3siJwNCivsnbTsoJXtmZgNCivsnbTsoJXsnKQNCivsnbTsp4Trp4wNCivsnbTqtJHquLgNCivsnbTtg5zqs6ANCivsnbTsoJXsnZgNCivsnbTrjZXshK0NCivsnbTquLDsmqkNCivsnbTrs5Htl4wNCivsnbTsoJXsnbwNCivsnbTshLHsoJUNCivsnbTsmIHsl7QNCivsnbTqtZDsp4QNCivsnbTsoJXsnoQNCivsnbTshozssqANCivsnbTspJHssKwNCivsnbTsoJXspJENCivsnbTsoJXsnoQNCivsnbTsoJXsm5ANCivsnbTsooXsiJwNCivsnbTtmJXrgqgNCivsnbTsoJXso7wNCivsnbTslpHsg4ENCivsnbTso7ztmowNCivsnbTrrLjrsLANCivsnbTsoJXso7wNCivsnbTsmqnquLgNCivsnbTsnbzsp4QNCivsnbTrtInqt6ANCivsnbTsoJXso7wNCivsnbTtmITtg4ENCivsnbTsnKTtlokNCivsnbTsnbzrnpgNCivsnbTsoJXssYQNCivsnbTqsr3rgpwNCivsnbTtmY3ssqANCivsnbTsspzsp4QNCivsnbTsoJXssqANCivsnbTsg4HsmIENCivsnbTsmIHsnqwNCivsnbTshLHrgqgNCivsnbTsoJXstpwNCivsnbTsp4TshK0NCivsnbTsnqzssqANCivsnbTtmY3tmZgNCivsnbTsoJXtg5wNCivsnbTsiJjrsLANCivsnbTshLHspIANCivsnbTtlZnsnbwNCivsnbTsoJXtg50NCivsnbTsnqztmLgNCivsnbTshLHsnpANCivsnbTtmJztg5wNCivsnbTsoJXtlZgNCivsnbTsoJXrjZUNCivsnbTsmIHrqqgNCivsnbTshLHshLENCivsnbTsoJXtlokNCivsnbTsnqzsnqwNCivsnbTtjJDqtJENCivsnbTrgqjqt5wNCivsnbTsoJXtl4wNCivsnbTsoJXsnbwNCivsnbTsmIHqsJENCivsnbTsnqztnawNCivsnbTsoJXtmIQNCivsnbTsooXtg50NCivsnbTsg4HquLgNCivsnbTtmLjsmrQNCivsnbTsoJXtmJUNCivsnbTtnazso7wNCivsnbTqtJHshK0NCivsnbTqtazquLANCivsnbTsoJXtmLgNCivsnbTsg4HshLgNCivsnbTqsJHslaANCivsnbTrj4Tqt7wNCivsnbTsoJXtmLgNCivsnbTsmIHsiJwNCivsnbTsg4HsiJgNCivsnbTtg5zsiJgNCivsnbTsoJXtmLgNCivsnbTsmKXrspQNCivsnbTtnazqsJUNCivsnbTqtJHqtowNCivsnbTsoJXtmLgNCivsnbTspJHqtIANCivsnbTsmIHrk50NCivsnbTsoJXsiJwNCivsnbTsoJXtmLgNCivsnbTrsKnrqqgNCivsnbTtmITso7wNCivsnbTshLHsgrwNCivsnbTsoJXtmLgNCivsnbTsnYDqta0NCivsnbTsooXsobANCivsnbTtmZjsp4QNCivsnbTsoJXtmLgNCivsnbTsmIHrtIkNCivsnbTsoJXqt7wNCivsnbTsoJXshKANCivsnbTsoJXtmZQNCivsnbTrjIDstpwNCivsnbTsiJjssqANCivsnbTtmLjrhbgNCivsnbTsoJXtmZgNCivsnbTsnbzrhbgNCivsnbTsnqztjIwNCivsnbTsg4HsoJUNCivsnbTsoJXtmZgNCivsnbTsmqnsnbQNCivsnbTshLHsg4ENCivsnbTqtazsiJgNCivsnbTsoJXtmqgNCivsnbTsiJnshJ0NCivsnbTsg4HsiJkNCivsnbTqt5zsi50NCivsnbTsoJXtm4gNCivsnbTsiJjqtJENCivsnbTsnqzsiJgNCivsnbTqt4Drp4wNCivsnbTsoJXtnawNCivsnbTsnKTrj4QNCivsnbTtlbTsiJgNCivsnbTrjIDsmqkNCivsnbTsoJXtnawNCivsnbTtlZztnawNCivsnbTqtJHtmIQNCivsnbTqtZDsiJgNCivsnbTsoJXtnawNCivsnbTsuaDsiJwNCivsnbTtmJXtmLgNCivsnbTsnKTqta0NCivsnbTsoJXtnawNCivsnbTsiJzsoJUNCivsnbTsi6TssqANCivsnbTrs5HtmLgNCivsnbTsoJzsi6wNCivsnbTsoJXtmIQNCivsnbTtmZjrr7wNCivsnbTslpHtmZgNCivsnbTsoJzssqANCivsnbTquLDshLENCivsnbTsmIHsiJgNCivsnbTtl4zrrLgNCivsnbTsobDsmIENCivsnbTsnbjrs5ENCivsnbTtg5ztmqgNCivsnbTqsJHsiJgNCivsnbTsobDsm5ANCivsnbTtm4jsobANCivsnbTsoJXsiJgNCivsnbTtlYTsiJkNCivsnbTsobDsnbQNCivsnbTssL3spIANCivsnbTqt7zqtowNCivsnbTstpjrj4gNCivsnbTsooXqsIENCivsnbTsmqntnawNCivsnbTsnqzqt7wNCivsnbTtnazrk50NCivsnbTsooXqsJENCivsnbTrj5nqt7wNCivsnbTsiJzsnpANCivsnbTsnqzsmqkNCivsnbTsooXqsJENCivsnbTqsJHrnb0NCivsnbTsiJzquLANCivsnbTsnbjtg5wNCivsnbTsooXqsr0NCivsnbTsnqzqt5wNCivsnbTspJHtg5wNCivsnbTsg4Hrs7UNCivsnbTsooXqtawNCivsnbTqsJHsi50NCivsnbTtmLjslZQNCivsnbTsmKTsl7QNCivsnbTsooXqtawNCivsnbTsnoTtmJUNCivsnbTsooXtmZgNCivsnbTsg4HshKANCivsnbTsooXqtawNCivsnbTqsr3rjZUNCivsnbTsp4TshJ0NCivsnbTqtbDsp4QNCivsnbTsooXqtawNCivsnbTrj5nrj5kNCivsnbTsnbTtkZwNCivsnbTrs5HsnqwNCivsnbTsooXqtowNCivsnbTrp4ztg50NCivsnbTsnqzsiJwNCivsnbTsmIHqt7wNCivsnbTsooXqt4ANCivsnbTrqoXslYUNCivsnbTqtJHtnawNCivsnbTrp4ztmZQNCivsnbTsooXqt5wNCivsnbTrtoTsl7ANCivsnbTsp4TrsLANCivsnbTshLjsnpANCivsnbTsooXqt5wNCivsnbTshKDsiJgNCivsnbTsoJDssqANCivsnbTtmqjqt6ANCivsnbTsooXqt6ANCivsnbTsnbjqtZANCivsnbTrjZXsp4ANCivsnbTrgqjsmKQNCivsnbTsooXquLANCivsnbTrtoDsl7ANCivsnbTquLDrjIANCivsnbTqtJHqtIANCivsnbTsooXquLgNCivsnbTtnazsiJgNCivsnbQg7ZiEDQor7J207KCV642VDQor7J207KKF64yADQor7J207KKF7Je0DQor7J2064+Z7ISdDQor7J206riw7IigDQor7J207KKF64yADQor7J207Jqp7ISgDQor7J207YyQ7JuQDQor7J207Iic7ISdDQor7J207KKF642VDQor7J207Jyk66y4DQor7J207IS46rWtDQor7J207JiB7IiYDQor7J207KKF6529DQor7J2064yA64WEDQor7J207YOc7Z2sDQor7J206rSR6rWtDQor7J207KKF66GdDQor7J20642V7YOcDQor7J207ZWZ7IicDQor7J207IOd7ZiEDQor7J207KKF66GdDQor7J207J6s64WEDQor7J2064yA7IiYDQor7J2067OR66qoDQor7J207KKF66eMDQor7J207JiB7IicDQor7J207J246re8DQor7J206rO87ZmpDQor7J207KKF66eQDQor7J207IOB7IudDQor7J207J6s67O1DQor7J207KKF7KSADQor7J207KKF66qFDQor7J207KO87IiYDQor7J206riw65OdDQor7J207LC97JqwDQor7J207KKF66qFDQor7J207KSR7ISxDQor7J207KeE6rCRDQor7J207LGE7IudDQor7J207KKF66qpDQor7J207Jil7ISgDQor7J207KCV7JikDQor7J207ISg7YOcDQor7J207KKF66y4DQor7J207JuU7IicDQor7J2066eQ7JuQDQor7J206rec656YDQor7J207KKF67CwDQor7J206rCR7ISxDQor7J207YOc7ZqoDQor7J2064+Z7IOBDQor7J207KKF67CxDQor7J207LKg7ZqMDQor7J207Zmp7ZmYDQor7J2066+86rWtDQor7J207KKF67O1DQor7J207ZW07LaYDQor7J206riw7JiBDQor7J206rCR7JqpDQor7J207KKF67O1DQor7J207ZWc7JWUDQor7J207IiY6regDQor7J207J206rCRDQor7J207KKF7ISdDQor7J2064+E7YOcDQor7J207JiB7ISxDQor7J207ISx7KKFDQor7J207KKF7ISdDQor7J2066eQ66WcDQor7J2066qF7IiYDQor7J2066eM7Je0DQor7J207KKF7ISgDQor7J2067SJ7KGwDQor7J206rSR6regDQor7J207IOB7KeEDQor7J207KKF7ISxDQor7J206raM7J6EDQor7J207Iic7IiYDQor7J2067O17JewDQor7J207KKF7IiYDQor7J207J6s7JmEDQor7J207ZqM7ZmUDQor7J206riw6rWsDQor7J207KKF7IiYDQor7J20IOyEsQ0KK+ydtOyDgeyXsA0KK+ydtOyepeq3vA0KK+ydtOyiheyImA0KK+ydtOuzkeyyoA0KK+ydtOyEseyyoA0KK+ydtO2DnOyImA0KK+ydtOyiheyImA0KK+ydtOyerOyaqQ0KK+ydtOydke2drA0KK+ydtOygle2ZjQ0KK+ydtOyiheyImA0KK+ydtO2DnOyjvA0KK+ydtOydvOyXtA0KK+ydtO2DnOyErQ0KK+ydtOyiheyIoA0KK+ydtOyEuOusuA0KK+ydtOq4sO2drA0KK+ydtOyYgeynhA0KK+ydtOyiheyLnQ0KK+ydtOyjvO2ZmA0KK+ydtOunjOuPmQ0KK+ydtOybkOyImQ0KK+ydtOyiheyLnQ0KK+ydtOuqhe2drA0KK+ydtOqwgOybhQ0KK+ydtOyiheyhsA0KK+ydtOyiheyLnQ0KK+ydtOyaqeuegA0KK+ydtO2VtOydtA0KK+ydtOydteyaqQ0KK+ydtOyiheyVoA0KK+ydtOqyveuPhA0KK+ydtOyZuOyEnQ0KK+ydtOyiheyCvA0KK+ydtOyiheyWuA0KK+ydtOyMjeq3oA0KK+ydtOq0keyerA0KK+ydtOyDgeyekA0KK+ydtOyiheyWuA0KK+ydtOyjvOyYgQ0KK+ydtOu2hOyVvA0KK+ydtOywqOydvA0KK+ydtOyiheyXtA0KK+ydtOyDgeyEnQ0KK+ydtO2YuOyaqQ0KK+ydtO2DnOq2jA0KK+ydtOyiheyXtA0KK+ydtOywve2DgQ0KK+ydtOyyoOyLnQ0KK+ydtO2DnOyEsQ0KK+ydtOyiheyYpA0KK+ydtCDsi50NCivsnbTsgrzrtoQNCivsnbTrjIDtmZgNCivsnbTsooXsmKQNCivsnbTqtazsm5ANCivsnbTsnqzsg50NCivsnbTsg4HsnbgNCivsnbTsooXsmKQNCivsnbTrp5DsiJwNCivsnbTsg4HquLANCivsnbTsirnsiJwNCivsnbTsooXsmqkNCivsnbTtg5zqtZANCivsnbTshLHsm5ANCivsnbTsmIHquLANCivsnbTsooXsmrANCivsnbTshozssqANCivsnbTsiJjrjZUNCivsnbTsnKTri6wNCivsnbTsooXsmrENCivsnbTtlZzssqANCivsnbTsiJjqt5wNCivsnbTqta3sl7QNCivsnbTsooXsmrENCivsnbTtg5zrj4QNCivsnbTspIDsi50NCivsnbTrs5HssqANCivsnbTsooXsm5ANCivsnbTsooXsiJwNCivsnbTtjJTsmIENCivsnbTsnbTsg4ENCivsnbTsooXsm5ANCivsnbTslaDsm5ANCivsnbTrj5ntmIQNCivsnbTsnqzqt7wNCivsnbTsooXsnKQNCivsnbTsoJXtm4gNCivsnbTsoJXtg5wNCivsnbTrj5ntj6wNCivsnbTsooXsnKQNCivsnbTslpHtmIQNCivsnbTsnKTro6ENCivsnbTqsJHspIANCivsnbTsooXsnKQNCivsnbTsnKTtmIENCivsnbTspIDqt7wNCivsnbQg66eMDQor7J207KKF7JyoDQor7J2064+Z6recDQor7J207KCV66y4DQor7J207IiY7J6sDQor7J207KKF7KO8DQor7J207Zi46riwDQor7J207KSA6rOkDQor7J207KKF7Z2sDQor7J207KKF7LCsDQor7J207KO87JuQDQor7J207YyQ7LKgDQor7J207KKF7ZmUDQor7J207KKF7LKgDQor7J207Jil7LCsDQor7J207YOc7ISgDQor7J207KCV66y4DQor7J207KKF7LaYDQor7J207IOB642VDQor7J207YOc64W4DQor7J207KKF7J20DQor7J207KKF7YOcDQor7J207KCV66+4DQor7J2066y466qoDQor7J207YyQ7IiYDQor7J207KKF7YOcDQor7J207ISd6recDQor7J2067OR7J28DQor7J207Lmg7JqwDQor7J207KKF7YOcDQor7J206rCR7IigDQor7J207LKg7Jq0DQor7J207ISx7IiYDQor7J207KKF7YOcDQor7J207IOB7KCVDQor7J207J6s7ZmYDQor7J207ISx7Je0DQor7J207KKF7YOdDQor7J207J287JqpDQor7J207Lmg7Z2sDQor7J2067SJ7IigDQor7J207KKF7YOdDQor7J207LaY6recDQor7J2064W47LacDQor7J207Z2s7Z2sDQor7J207KKF7YyQDQor7J207LKg6rWQDQor7J207IiY6rSADQor7J207IiZ6rWQDQor7J207KKF7ZWYDQor7J207ISd7IiYDQor7J2067SJ7IiYDQor7J207IiY6re8DQor7J207KKF7ZWYDQor7J2066y07JWUDQor7J20IOyekA0KK+ydtOyEoOuLqA0KK+ydtOyihe2VmQ0KK+ydtOqwkeq4uA0KK+ydtOyXsOq4sA0KK+ydtOyihe2DnA0KK+ydtOyihe2VmQ0KK+ydtOygkOyEsQ0KK+ydtOyYpOyyoA0KK+ydtO2DnOyCvA0KK+ydtOyihe2VmQ0KK+ydtOyImOq4sA0KK+ydtOyepeyYgQ0KK+ydtOyaqeq1rA0KK+ydtOyihe2VnA0KK+ydtOunjOq4sA0KK+ydtOuqhe2YuA0KK+ydtOyerO2YuA0KK+ydtOyihe2VnA0KK+ydtOq4iOyYpA0KK+ydtOykkeyImA0KK+ydtOycpO2YuA0KK+ydtOyihe2VtA0KK+ydtOyDgeuCqA0KK+ydtOq4sOygnA0KK+ydtOyerOyYgQ0KK+ydtOyihe2YhA0KK+ydtOqzhOyasA0KK+ydtOydgOyatA0KK+ydtOyihe2drA0KK+ydtOyihe2YuA0KK+ydtOyInOydvA0KK+ydtOyGjO2VtA0KK+ydtOuPmeu2gA0KK+ydtOyihe2YuA0KK+ydtOyYpeunjA0KK+ydtOyaqey2nA0KK+ydtOyEuO2DnA0KK+ydtOyihe2YuA0KK+ydtOygleyEsQ0KK+ydtOuPmeyduA0KK+ydtOyYgeq2jA0KK+ydtOyihe2YuA0KK+ydtOykkeybkA0KK+ydtOyInOuMgA0KK+ydtOy2mOyynA0KK+ydtOyihe2YuA0KK+ydtOq0keq2jA0KK+ydtOuNle2VmQ0KK+ydtOyYgeyaqQ0KK+ydtOyihe2YuA0KK+ydtO2YnOq4uA0KK+ydtOuzke2YuA0KK+ydtOuCnOybhQ0KK+ydtOyihe2YuA0KK+ydtOqyve2ZmA0KK+ydtOuNleq1rA0KK+ydtOyCvOq4uA0KK+ydtOyihe2ZmA0KK+ydtOq0keqyvQ0KK+ydtOywveyaqQ0KK+ydtOyXsOyImA0KK+ydtOyihe2ZmA0KK+ydtOuPmeyImA0KK+ydtO2YhOyImA0KK+ydtOunkOyImA0KK+ydtOyihe2ZmA0KK+ydtO2cmOq4sA0KK+ydtOy2mOq2jA0KK+ydtO2ZjeyImA0KK+ydtOyihe2ZmA0KK+ydtOygleuFuA0KK+ydtOywrOqzhA0KK+ydtOyasOqwkQ0KK+ydtOyihe2ZmA0KK+ydtOycoOyInA0KK+ydtOuMgOyYgQ0KK+ydtOyasOyInA0KK+ydtOyihe2biA0KK+ydtOyYge2YuA0KK+ydtOyInOq0kQ0KK+ydtOu2hOybkA0KK+ydtOyihe2drA0KK+ydtOu2gOuNlQ0KK+ydtOyaqeyYpQ0KK+ydtOyIoOyYpQ0KK+ydtOyihe2drA0KK+ydtOuqheq1rA0KK+ydtOyEseuztA0KK+ydtOyInOyImA0KK+ydtOyjvOqyvQ0KK+ydtOuemOq3vA0KK+ydtOyDgeyImA0KK+ydtOyDgeyIoA0KK+ydtOyjvOqyvQ0KK+ydtOykkeuwsA0KK+ydtO2DnOynhA0KK+ydtO2DnOq3vA0KK+ydtOyjvOq3vA0KK+ydtOq3nOyngQ0KK+ydtOyDgeyDnQ0KK+ydtOyInOyInA0KK+ydtOyjvOyCvA0KK+ydtOy2qeyImQ0KK+ydtOuCqOuqqQ0KK+ydtO2VnOuNlQ0KK+ydtOyjvOyEnQ0KK+ydtOyerOyLnQ0KK+ydtOyEne2ZmA0KK+ydtOyjvOyYgQ0KK+ydtOyjvOyEnQ0KK+ydtOunjO2YnA0KK+ydtOyerOq4uA0KK+ydtOydvOyekA0KK+ydtOyjvOyEoA0KK+ydtOuqheyXtA0KK+ydtOqwkeunjA0KK+ydtOunkOq3nA0KK+ydtOyjvOyErQ0KK+ydtOuTney2nA0KK+ydtOyYgeq3nA0KK+ydtOq4iOqzpA0KK+ydtOyjvOyKuQ0KK+ydtOygle2drA0KK+ydtOq0keyyoA0KK+ydtOyDgeyatA0KK+ydtOyjvOyXsA0KK+ydtOq3vOq3nA0KK+ydtOyKueyEoA0KK+ydtOuzteuPhA0KK+ydtOyjvOyYgQ0KK+ydtOyYgeyImA0KK+ydtOq3nOq3oA0KK+ydtOygleyIoA0KK+ydtOyjvOyYgQ0KK+ydtOyInOuPjA0KK+ydtOyehOyasA0KK+ydtOyEneq4sA0KK+ydtOyjvOyYgQ0KK+ydtOy2mOunjA0KK+ydtOyYgeq4sA0KK+ydtOygleuztQ0KK+ydtOyjvOydtA0KK+ydtOyEneusuA0KK+ydtOq4sOyasA0KK+ydtOygleq3oA0KK+ydtOyjvO2DnA0KK+ydtOunkOyaqQ0KK+ydtOq4sO2YuA0KK+ydtO2VnOq1kA0KK+ydtOyjvO2XjA0KK+ydtOyDgeyatA0KK+ydtOyEseusuA0KK+ydtOyDgeyaqQ0KK+ydtOyjvO2YhA0KK+ydtOyDgeq4sA0KK+ydtOyEseybkA0KK+ydtOuNleyLnQ0KK+ydtOyjvO2YuA0KK+ydtOuzkeq4sA0KK+ydtOyInOycpA0KK+ydtOynhOu0iQ0KK+ydtOyjvO2YuA0KK+ydtOu0ie2YuA0KK+ydtOyYgeyhsA0KK+ydtOyerO2ZmA0KK+ydtOyjvO2YuA0KK+ydtOuCqOyInA0KK+ydtOykke2YhA0KK+ydtOyImOydvA0KK+ydtOykgOq1rA0KK+ydtOunkOyImA0KK+ydtOusuOyLnQ0KK+ydtOynhOyhsA0KK+ydtOykgOyXtA0KK+ydtOyDgeq4uA0KK+ydtOywveyEsQ0KK+ydtOyYpeyXsA0KK+ydtOykgOyYgQ0KK+ydtOuzkeuqqA0KK+ydtOq3nO2YuA0KK+ydtOyEseyatA0KK+ydtOykgOyYgQ0KK+ydtOqzoe2drA0KK+ydtOyekOyerA0KK+ydtO2drOyXsA0KK+ydtOykgOyYgQ0KK+ydtOyehOuCqA0KK+ydtOygkOyEoA0KK+ydtOu2gO2ZmA0KK+ydtOykgOyaqQ0KK+ydtOygkOyXtA0KK+ydtOu2gO2ZjQ0KK+ydtOyerOyaqQ0KK+ydtOykgOybhQ0KK+ydtOyaqeybhQ0KK+ydtOq4sO2VmA0KK+ydtO2VhOyInA0KK+ydtOykgOyerA0KK+ydtO2DnOynhA0KK+ydtOynhOuqqQ0KK+ydtO2VtO2DnA0KK+ydtOykgOyerA0KK+ydtOyepeyInA0KK+ydtOqwke2ZjQ0KK+ydtOyerOuPmQ0KK+ydtOykgOyhsA0KK+ydtOyImO2VhA0KK+ydtOq3vOyasA0KK+ydtOyImO2PrA0KK+ydtOykgO2VmA0KK+ydtOyynO2ZmA0KK+ydtO2VtOyYpA0KK+ydtOyZuOyInA0KK+ydtOykgO2YgQ0KK+ydtOq4sOyatA0KK+ydtOq3nO2ZmA0KK+ydtOyYgeyVlA0KK+ydtOykgO2YuA0KK+ydtO2VnO2biA0KK+ydtOyihe2DnA0KK+ydtOyEneu0iQ0KK+ydtOykgO2ZmA0KK+ydtOuqheuPjA0KK+ydtO2Dge2YuA0KK+ydtOyerOyekA0KK+ydtOykkeqwgQ0KK+ydtOqyve2VnA0KK+ydtOygleyihQ0KK+ydtOyYgeyglQ0KK+ydtOykkeq2jA0KK+ydtOq4sOuzkQ0KK+ydtCDsm5ANCivsnbTsnYTtmZQNCivsnbTspJHqt5wNCivsnbTshJzsl7QNCivsnbTrspTtmIQNCivsnbTtg5zshK0NCivsnbTspJHqt7wNCivsnbTsgrzquLANCivsnbTquIjsp4ANCivsnbTrkZDssqANCivsnbTspJHquLgNCivsnbTsgrzsi50NCivsnbTssKjsl7ANCivsnbTsnKTtlZgNCivsnbTspJHssqANCivsnbTssL3quLgNCivsnbTtmZjsiJgNCivsnbTso7zqt5wNCivsnbTspJHtmZQNCivsnbTsooXtmqgNCivsnbTshLHsiJgNCivsnbTsnqzssqANCivsnbTspJHtmZgNCivsnbTrgqjrp4wNCivsnbTqsr3snpANCivsnbTtl4zquLANCivsnbTspJHtmZgNCivsnbTsoJXsmKUNCivsnbTsoJXsi50NCivsnbTshLHshLENCivsnbTspJHtnawNCivsnbTsm5DstpwNCivsnbTrjIDri6wNCivsnbTrrLTtmLgNCivsnbTspp3siJgNCivsnbTqsr3siJkNCivsnbTrs5HtmLgNCivsnbTtg5zsm5ANCivsnbTsp4DroZwNCivsnbTstpjrgqgNCivsnbTsp4Tsg4ENCivsnbTrp4zqt5wNCivsnbTsp4Dsl7ANCivsnbTsm5DsmIENCivsnbTsnqzsi5wNCivsnbTsoJXrrLUNCivsnbTsp4DssqANCivsnbTsm5Dso7wNCivsnbTsg4HtnawNCivsnbTrs7XsoJUNCivsnbTsp4DtmJzsnpANCivsnbTsmIHtlZnsoJANCivsnbTrjIDtg4HquLgNCivsnbTshLHqt7zsoJUNCivsnbTsp4DtmLgNCivsnbTqt5ztmLgNCivsnbTrrLTtl4wNCivsnbTqta3rs7UNCivsnbTsp4HroZwNCivsnbTssL3tmLgNCivsnbTtmITsoJUNCivsnbTquIjrjIANCivsnbTsp4TqtawNCivsnbTsooXsp4ANCivsnbTsnKTspIANCivsnbTsmIHrp4wNCivsnbTsp4TrhbgNCivsnbTsmqnqs6QNCivsnbTsgqztmLgNCivsnbTtg5zroKgNCivsnbTsp4TrhbgNCivsnbTsiKDssqANCivsnbTshLHqtJENCivsnbTsmIHqsJANCivsnbTsp4TrrLQNCivsnbTtnazshJ0NCivsnbTrhbjsiKANCivsnbTtlZzrnpgNCivsnbTsp4TshLgNCivsnbTssL3qtawNCivsnbTrtoTshKANCivsnbTsp4Drs7UNCivsnbTsp4TsiJgNCivsnbTqtJHri6wNCivsnbTsoJXsnKQNCivsnbTsg4Hrj4wNCivsnbTsp4TsiJgNCivsnbTrqoXtm4gNCivsnbTrtoDtjJQNCivsnbTtlYTsiJwNCivsnbTsp4TsmqkNCivsnbTrjZXsg4ENCivsnbTrs7XtmY0NCivsnbTsg4HsiJkNCivsnbTsp4TsmrANCivsnbTtl4zsiJwNCivsnbTsg4HsnbQNCivsnbTquIjshJ0NCivsnbTsp4TsmrANCivsnbTquIjshKANCivsnbTsnbzsl7QNCivsnbTsooXsmKUNCivsnbTsp4Tsm5ANCivsnbTsnqztmLgNCivsnbTsp4TsmrANCivsnbTsoJXsl7ANCivsnbTsp4TsnbwNCivsnbTsnbjtlZwNCivsnbTsoJXsmKUNCivsnbTsmIHsm5ANCivsnbTsp4TsnbwNCivsnbTstqnshK0NCivsnbTsooXqsr0NCivsnbTsm5Dqt7wNCivsnbTsp4TsnqwNCivsnbTssKzqsr0NCivsnbTrs5Hqta0NCivsnbTsnbjshK0NCivsnbTsp4TsoJUNCivsnbTsnbzsmKQNCivsnbTri6ztg50NCivsnbTquLDtnawNCivsnbTsp4Ttg5wNCivsnbTtg53siJgNCivsnbTsooXsiJwNCivsnbTshLHstpwNCivsnbTsp4Ttg5wNCivsnbTsmKXqt7wNCivsnbTrj4jqs6QNCivsnbTqsrjsobANCivsnbTsp4Ttg5wNCivsnbTsnqzsiJwNCivsnbTsiJnsi50NCivsnbTtg5zsl7QNCivsnbTsp4Ttla0NCivsnbTsnYDslZQNCivsnbTsmIHslYQNCivsnbTqsr3si50NCivsnbTsp4TtmLgNCivsnbTso7zshKANCivsnbTsoJDsl7QNCivsnbTshLHsnbwNCivsnbTsp4TtmZgNCivsnbTsoJXsmIENCivsnbTrjIDsnpANCivsnbTsnqXsiKANCivsnbTsp4TtmZgNCivsnbTsnqzsiJgNCivsnbTrqoXsiKANCivsnbTsoJXtmIQNCivsnbTsp4TtnawNCivsnbTsooXsiJkNCivsnbTquLDsnKQNCivsnbTrjZXqta0NCivsnbTsp4TtnawNCivsnbTrj5nsi50NCivsnbTqt5zquLANCivsnbTsg4HsmrANCivsnbTsp4TtnawNCivsnbTqtJHtl4wNCivsnbTrgpnsiJwNCivsnbTsi6Dsi50NCivsnbTssKjrtIkNCivsnbTquLDrgqgNCivsnbTsoJXtnLQNCivsnbTsiJjtmJUNCivsnbTssKjrtIkNCivsnbTslpHshLENCivsnbTsiJztg4ENCivsnbTstpjsirkNCivsnbTssKjrtIkNCivsnbTtmY3rp4wNCivsnbTsiJzsiJwNCivsnbTstpjspJENCivsnbTssKjsl7ANCivsnbTqtJHsiJgNCivsnbTqsr3tmY0NCivsnbTshJ3snpANCivsnbTssKjsobANCivsnbTrp5DsiJkNCivsnbTshLHsoJwNCivsnbTtmITsnpANCivsnbTssKjtmZgNCivsnbTtg5zsiJwNCivsnbTrp4zrp4wNCivsnbTshKDrj5kNCivsnbTssKzqt5wNCivsnbTqsJXstpgNCivsnbTsp4TsiJkNCivsnbTsiJnso7wNCivsnbTssKzrs7UNCivsnbTsnqzrj4QNCivsnbTsooXtg50NCivsnbTsm5TquLgNCivsnbTssKzshLENCivsnbTsoITqsJENCivsnbTrrLTqt5wNCivsnbTsiJzstpwNCivsnbTssKzsiJgNCivsnbTrj5nsl7QNCivsnbTrqbTsnpANCivsnbTsmIHtnaUNCivsnbTssKzsiJgNCivsnbTsg4HtlqUNCivsnbTsgrzsiJgNCivsnbTtmLjsi50NCivsnbTssKzsnbQNCivsnbTquLDtmLgNCivsnbTtmITsiJwNCivsnbTrs7jshLgNCivsnbTssKzsnbQNCivsnbTrk53rs5ENCivsnbTsnLXshJ0NCivsnbTqtJHtnawNCivsnbTssKztmY0NCivsnbTrrLjshKANCivsnbTshLHshJ0NCivsnbTtg5ztlZwNCivsnbTssKztmZgNCivsnbTsl7Dsl7QNCivsnbTshJ3siKANCivsnbTshozrjZUNCivsnbTssL3qt5wNCivsnbTsg4HqsJENCivsnbTquLDqsJENCivsnbTsg4HqtawNCivsnbTssL3qt7wNCivsnbTsmqnsiJgNCivsnbTsm5Trk50NCivsnbTrs7Xqt5wNCivsnbTssL3quLANCivsnbTtmITqtawNCivsnbTsnqzsiJgNCivsnbTsoJXsiJgNCivsnbTssL3rprwNCivsnbTsooXroKgNCivsnbTtlZjrjZUNCivsnbTrp4ztmIQNCivsnbTssL3siJgNCivsnbTsmqnrjZUNCivsnbTsoJzsiJgNCivsnbTsg4HsiJgNCivsnbTssL3siJwNCivsnbTrjIDtm4gNCivsnbTrp4ztmIQNCivsnbTrs5HtmLgNCivsnbTssL3si50NCivsnbTsg4HtmJUNCivsnbTshKDssqANCivsnbTsg4HspIANCivsnbTssL3sl7QNCivsnbTshLHsl7ANCivsnbTtjJDshLENCivsnbTtnazsobANCivsnbTssL3smqkNCivsnbTtla3rtIkNCivsnbTsgrztmLgNCivsnbTsg4Hrk50NCivsnbTssL3smrANCivsnbTshKDquLgNCivsnbTtmY3siJwNCivsnbTtmY3smIENCivsnbTssL3smrANCivsnbTrrLTsmrANCivsnbTsmIHsiJkNCivsnbTqt5zssqANCivsnbTssL3snKQNCivsnbTsoJXrs7UNCivsnbTtg5zqsr0NCivsnbTrj4TrtoQNCivsnbTssL3snqwNCivsnbTsooXquLANCivsnbTrp4zsnpANCivsnbTsiJzqtawNCivsnbTssL3soJwNCivsnbTsnqzsmKUNCivsnbTsoJXsiKANCivsnbTshLHrrLgNCivsnbTssL3so7wNCivsnbTsoJXstpwNCivsnbTslrjrr7wNCivsnbTtmJzsmrANCivsnbTssL3so7wNCivsnbTsooXsl7QNCivsnbTspIDtm4gNCivsnbTsnqztg5wNCivsnbTssL3sp4ENCivsnbTsm5DsiJwNCivsnbTsmqnsnpANCivsnbTrs5HsmrANCivsnbTssL3tlZgNCivsnbTsoJXrr7wNCivsnbTslpHshLgNCivsnbTtlZnsi50NCivsnbTssL3tl4wNCivsnbTsnbjsm5ANCivsnbTsnZjrp4wNCivsnbTsnqztg50NCivsnbTssL3tmLgNCivsnbTqsr3tmLgNCivsnbTqsr3shLENCivsnbTrr7zrj5kNCivsnbTssL3tmLgNCivsnbTshozsobANCivsnbTrtInssqANCivsnbTsnqzsmqkNCivsnbTssL3tmLgNCivsnbTsmIHqs6QNCivsnbTtg53shKANCivsnbTshKDsi50NCivsnbTssL3tmLgNCivsnbTsi5zso7wNCivsnbTsmbjtg5wNCivsnbTsmrDrnpgNCivsnbTssL3tmZgNCivsnbTsoJXrnoANCivsnbTshLHsmIENCivsnbTrgqjsl4UNCivsnbTssL3tnawNCivsnbTsooXtmLgNCivsnbTsp4Tso7wNCivsnbTslrXqt5wNCivsnbTssYTsi50NCivsnbTrp7nsmrANCivsnbTsiJzshKANCivsnbTqt5zshJ0NCivsnbTssYTtm4gNCivsnbTtmY3si50NCivsnbTquLDroZ0NCivsnbTsm5DsiJgNCivsnbTssYTtm4gNCivsnbTsmqnsnpANCivsnbTri6zsmKUNCivsnbTrs7Xrk50NCivsnbTsspzqs6QNCivsnbTsnKDrqqkNCivsnbTshLHrrLgNCivsnbTsiJjsl7QNCivsnbTsspzqtJENCivsnbTshLHsnpANCivsnbTso7zsnYANCivsnbTshLHsooUNCivsnbTsspzshLgNCivsnbTsoJXrjZUNCivsnbTsooXrk50NCivsnbTsnKTtmLgNCivsnbTsspzsiJgNCivsnbTrj5nsg4ENCivsnbTsoJXri5gNCivsnbTsmbjrhYANCivsnbTsspzsobANCivsnbTspIDsnbQNCivsnbTsmrDqsqwNCivsnbTrspTshJ0NCivsnbTssqDquLANCivsnbTsl7Dsg4ENCivsnbTshLHquLgNCivsnbTshLHqta0NCivsnbTssqDsg4ENCivsnbTsmIHtg5wNCivsnbTsjI3so7wNCivsnbTtl4zsnbUNCivsnbTssqDsiJgNCivsnbTtmITssYQNCivsnbTqt7ntg5wNCivsnbTsnbjsiJgNCivsnbTssqDsiJgNCivsnbTslYjshLENCivsnbTsnbzrs5ENCivsnbTtlbTstpgNCivsnbTssqDsiJgNCivsnbTsoJXtg50NCivsnbTsp4TsiJgNCivsnbTsnqzsl7ANCivsnbTssqDsiJwNCivsnbTsmbjsmIENCivsnbTsooXsi50NCivsnbTqtJHquLANCivsnbTssqDsmrANCivsnbTsp4TshJ0NCivsnbTrs5HshJ0NCivsnbTshKDroZ0NCivsnbTssqDsmrANCivsnbTsgqzrtoQNCivsnbTssL3quLgNCivsnbTrj5nqs6QNCivsnbTssqDsmrANCivsnbTssL3si50NCivsnbTtmITshJ0NCivsnbTqsr3qt5wNCivsnbTssqDsmrANCivsnbTsmrDtlZwNCivsnbTsnqzsp4ENCivsnbTsmIHsmKQNCivsnbTssqDso7wNCivsnbTshJ3siJwNCivsnbTtg5zrrLUNCivsnbTrrLjsp4QNCivsnbTssqDtmLgNCivsnbTrs5HqtZANCivsnbTsnqztmZgNCivsnbTrrLTquLANCivsnbTssqDtmLgNCivsnbTqsr3qsr0NCivsnbTsnKTsobANCivsnbTrrLjsnpANCivsnbTssqDtmLgNCivsnbTsnZjsnqwNCivsnbTri6zrj5kNCivsnbTsoJzsmrQNCivsnbTssqDtmLgNCivsnbTtmJXsm5ANCivsnbTqsr3sobANCivsnbTtmqjsmKUNCivsnbTssqDtmZgNCivsnbTsooXrtIkNCivsnbTshLHsnoQNCivsnbTsuaDshJ0NCivsnbTssqDtnawNCivsnbTsmqnqta0NCivsnbTshLHsmqkNCivsnbTspIDsiJgNCivsnbTssq3quLANCivsnbTtg53smrENCivsnbTsoJXsuZgNCivsnbTsnKTsmqkNCivsnbTssq3shJ0NCivsnbTtlZzsp4ANCivsnbTsi6Dsi50NCivsnbTrs7Xso7wNCivsnbTssq3shJ0NCivsnbTshJ3snbQNCivsnbTsoJXsmIENCivsnbTrtoTqt7wNCivsnbTssq3siJgNCivsnbTqtJHtmIENCivsnbTsiJzssKwNCivsnbTsmIHqt7wNCivsnbTssq3siJgNCivsnbTrj5ntmZQNCivsnbTsoJXsmqkNCivsnbTsg4HsmKQNCivsnbTstpTsnpANCivsnbTrj4Tsi50NCivsnbTsooXtm4gNCivsnbTrs7Tso7wNCivsnbTstpjquLgNCivsnbTsoJXsp4QNCivsnbTsnbTssqANCivsnbTrs5HsoJwNCivsnbTstpjquLgNCivsnbTtmITrp4wNCivsnbTtmITqt5wNCivsnbTsoJXspIANCivsnbTstpjquLgNCivsnbTrgqjsgrANCivsnbTsp4Tsi50NCivsnbTshLHsmKQNCivsnbTstpjquLgNCivsnbTsoJXsm5ANCivsnbTsmIHshLgNCivsnbTshLHshJ0NCivsnbTstpjrgqgNCivsnbTso7zsiJkNCivsnbTsmKTsiJgNCivsnbTsuZjqt6ANCivsnbTstpjrsJwNCivsnbTsmbjri4gNCivsnbTquLDtmZQNCivsnbTtmLjsnKgNCivsnbTstpjshJ0NCivsnbTsnqXqt7wNCivsnbTtlZzqt7kNCivsnbTshLjtmLgNCivsnbTstpjshLgNCivsnbTsm5DsoJUNCivsnbTtmJXsnqwNCivsnbTsooXsooUNCivsnbTstpjsi50NCivsnbTquLDqtawNCivsnbQg7YOdDQor7J206rK97IiYDQor7J207LaY7IudDQor7J207Iug7JqwDQor7J207IOB7ZqoDQor7J207Jqx7KKFDQor7J207LaY7IukDQor7J207KSA7ISgDQor7J207KeA66GdDQor7J2066e56rK9DQor7J207LaY7Ja4DQor7J206riw66qpDQor7J207Iic65OdDQor7J206riw7IiZDQor7J207LaY7JilDQor7J2067aE7ZWEDQor7J207IOB7JiBDQor7J207J6s7Zi4DQor7J207LaY7JqwDQor7J2065GQ6regDQor7J207J2Y7JqwDQor7J207ZiV7KCcDQor7J207LaY7JqwDQor7J207Jil7J6EDQor7J207Jyk7JewDQor7J207KKF7KSADQor7J207LaY7J6sDQor7J207Iic7IiYDQor7J207KCV7ISdDQor7J207JiB64+MDQor7J207LaY7YOBDQor7J206rec6rCVDQor7J207LC97IiYDQor7J207JiB6rSADQor7J207LaY7YOdDQor7J207ISx7J28DQor7J2066qF7ZiEDQor7J2064+Z7IiYDQor7J207LaY7YOdDQor7J207ISx7IicDQor7J207JuU7KCVDQor7J207ISx7IK8DQor7J207LaY7YOdDQor7J207ZiV7KGwDQor7J207J247KO8DQor7J207LKc64KoDQor7J207LaY7Zi4DQor7J207KSR64yADQor7J207LC97J6QDQor7J207J6s64+EDQor7J207LaY7Zi4DQor7J207YOc6ri4DQor7J207ZW07ZWcDQor7J207IKs7KGwDQor7J207LaY7Z2sDQor7J207KKF6riwDQor7J206riI7LKcDQor7J206rSR7KGwDQor7J207LaY7Z2sDQor7J207JuQ7J6sDQor7J2064us7ISdDQor7J2067O17IiYDQor7J207LaY7Z2sDQor7J207YOA7J24DQor7J207Jqp7ISgDQor7J206riI7Z2sDQor7J207LaY7Z2sDQor7J2066qF7Je0DQor7J207Iic7IOdDQor7J206rWs64+ZDQor7J207Lac6rOkDQor7J207KCV7YOcDQor7J207YOc7ZmYDQor7J207KKF7ZiEDQor7J207Lac7J20DQor7J207Iuk7Zi4DQor7J207YyQ66eMDQor7J2064yA7IicDQor7J207Lap6re8DQor7J2066y47IicDQor7J207IiY6rWwDQor7J206rCQ7JiBDQor7J207Lap6riwDQor7J207JiB7JiBDQor7J2066y07JWEDQor7J2067OR7IiYDQor7J207Lap6ri4DQor7J207Jqp64usDQor7J207ZiV7JqwDQor7J206rK97ISxDQor7J207Lap6ri4DQor7J207ZiE7ZWZDQor7J207ZmN7JqwDQor7J207Iic6rWsDQor7J207Lap7ZeMDQor7J207ZiE7IStDQor7J207Jqp67KUDQor7J206rSR7YOdDQor7J207Lap7ZiVDQor7J207JuQ7ZmYDQor7J2066eJ7IiYDQor7J207Jqp7ZWEDQor7J207Lap7Zi4DQor7J207ZeM6rCBDQor7J207KCV7JuFDQor7J207Z2s7ZmYDQor7J207Lap7ZmYDQor7J2066eM6ri4DQor7J2067OR7J6QDQor7J207KCV7JuFDQor7J207Lap7ZmYDQor7J207ISx7ZWcDQor7J207IiY7JqwDQor7J207IiY7IicDQor7J207LmY6raMDQor7J207Jil7IiYDQor7J207JiB7KeEDQor7J207ISd7JewDQor7J207Lmg66eMDQor7J207ZWE7IiYDQor7J207ZW07JewDQor7J2067O17IudDQor7J207Lmg7IiYDQor7J207KKF7JqpDQor7J2067OR7Zi4DQor7J207JuU7JqpDQor7J207Lmg7JWUDQor7J207IK87Z2sDQor7J207JiB67O1DQor7J207J287JqwDQor7J207Lmg7J24DQor7J207KeE7IiZDQor7J207JiB7J6sDQor7J207JiB6recDQor7J207L6M7JqwDQor7J207IOB656ADQor7J2064us6rWsDQor7J207IiY7LKgDQor7J207L6M7Zi4DQor7J207Zi47J6sDQor7J207ZiE64+ZDQor7J2066y464usDQor7J207YOB7JuQDQor7J206rCR6re8DQor7J207ZWc7JqpDQor7J207J2E7ISdDQor7J207YOc6rK9DQor7J207YOc7Ja1DQor7J207IiY66qoDQor7J206rK96rWsDQor7J207YOc6rK9DQor7J207KeE7Z2gDQor7J206rSR67CwDQor7J207J6l7IStDQor7J207YOc6rK9DQor7J207YOc7YOdDQor7J207JiB7IicDQor7J207Zi47IiYDQor7J207YOc6rOkDQor7J207J247IiYDQor7J207ISx7ISgDQor7J207LC97YOcDQor7J207YOc6rOkDQor7J2064yA7Ja4DQor7J207Z2s66y4DQor7J207KeE7ISdDQor7J207YOc6recDQor7J207ZWZ7IiYDQor7J207ZaJ67CxDQor7J207J6s7JqpDQor7J207YOc6re8DQor7J207KCV7IicDQor7J207Zi46rCRDQor7J207JaR67SJDQor7J207YOc6re8DQor7J207IiY7Zi4DQor7J207Lmg7Zi4DQor7J207LC97JqwDQor7J207YOc6re8DQor7J207JiB7IiYDQor7J207Jqp7Zi4DQor7J207JuQ7KGwDQor7J207YOc6re8DQor7J207KCV7JiBDQor7J207Jyk7IOBDQor7J207ISx66CsDQor7J207YOc6re8DQor7J2067OR7IiYDQor7J207ISx7IugDQor7J20656Y6rOkDQor7J207YOc6re8DQor7J207YOc6rWsDQor7J2064us7KSRDQor7J207KeE7JuQDQor7J207YOc6re8DQor7J207J247IiZDQor7J207ZWc7J6QDQor7J207Iic7J28DQor7J207YOc6re8DQor7J207IOB7Zi4DQor7J207KCV64+ZDQor7J2067OR7JilDQor7J207YOc6re8DQor7J207ZiE7ISdDQor7J207KCV642VDQor7J207KO87JqwDQor7J207YOc6re8DQor7J2065GQ7Zi4DQor7J207KCV6rCRDQor7J206rK97IicDQor7J207YOc6riwDQor7J2067SJ7JWUDQor7J207YyQ7ZGcDQor7J207ISd7Z2gDQor7J207YOc64usDQor7J207ISx6rK9DQor7J2064yA7J6QDQor7J207Kad6recDQor7J207YOc642VDQor7J2065GQ7ZWZDQor7J207KCc7ZqoDQor7J206riI7Z2sDQor7J207YOc64+ZDQor7J207ISx7YOcDQor7J207KCV7YOcDQor7J207YOc7Ja4DQor7J207YOc67O1DQor7J206rec7Zi4DQor7J207Iic7LKgDQor7J207IOB7J28DQor7J207YOc67SJDQor7J2066qF6rOgDQor7J206rec67CwDQor7J2067SJ7JqwDQor7J207YOc67SJDQor7J207IK87JewDQor7J206rCR66GADQor7J207ZmN6rK9DQor7J207YOc67aEDQor7J207KCV7JewDQor7J207Jyk7YOcDQor7J207ISx7ZeMDQor7J207YOc7ISdDQor7J207LKg7J6sDQor7J207ZaJ6rWsDQor7J207JiB7J6QDQor7J207YOc7ISdDQor7J207J6s7JWFDQor7J207Lmg7ZmYDQor7J207J6s7Zi4DQor7J207YOc7ISdDQor7J207Iic64KoDQor7J2064KZ7ZWZDQor7J207YyU6rK9DQor7J207YOc7ISgDQor7J207YOc7JuFDQor7J207JiB656YDQor7J2067SJ7ZuIDQor7J207YOc7ISgDQor7J206re87J6sDQor7J207Y+J7JilDQor7J207ZiE7Z2sDQor7J207YOc7ISxDQor7J207KKF7LKcDQor7J207YOc7Zi4DQor7J207J2A7IiZDQor7J207YOc7ISxDQor7J206rec6rG0DQor7J207IOB7ZmYDQor7J207IiY64KoDQor7J207YOc7ISxDQor7J207KKF7JqpDQor7J206rOE7JiBDQor7J207ZqM7LC9DQor7J207YOc7ISxDQor7J207LCo7Y+sDQor7J2064+E7Zi4DQor7J207KKF7KeEDQor7J207YOc7IiYDQor7J2066Gd6ri4DQor7J207IaM67O1DQor7J207KCV7J20DQor7J207YOc7IiYDQor7J207ISx66eMDQor7J207ZiE6rWtDQor7J207KCV7Z2sDQor7J207YOc7IiYDQor7J207KCV7ISgDQor7J207LaY7KSADQor7J207Iic7JuFDQor7J207YOc7IiYDQor7J2066eM6re8DQor7J2067OR7JWUDQor7J207Jyk7LacDQor7J207YOc7IiYDQor7J207YOc7J6QDQor7J207J6s7J20DQor7J207Jyk6re8DQor7J207YOc7IicDQor7J2066y07YOdDQor7J2066eQ6reADQor7J207J6s7JqpDQor7J207YOc7IigDQor7J206re86riwDQor7J207JiB7ISdDQor7J206rK965OdDQor7J207YOc7IigDQor7J207KCV64+EDQor7J207ISx7IStDQor7J207J6s7YOcDQor7J207YOc7IigDQor7J206rK97IicDQor7J206riw7J6QDQor7J207IOB7ISgDQor7J207YOc7IudDQor7J207KCQ64+EDQor7J20IO2ZmA0KK+ydtOyihe2YhA0KK+ydtO2DnOyLnQ0KK+ydtOydgOyLnQ0KK+ydtOybkOyImA0KK+ydtOuzkeq3uQ0KK+ydtO2DnOyLnQ0KK+ydtOyEseyImA0KK+ydtOydhOu0iQ0KK+ydtOuzkeyjvA0KK+ydtO2DnOyLnQ0KK+ydtOyImOyErQ0KK+ydtOy2qe2YuA0KK+ydtO2XjOydvA0KK+ydtO2DnOyLnQ0KK+ydtOygleyXsA0KK+ydtOyduOuMgA0KK+ydtOyYge2YuA0KK+ydtO2DnOyLoA0KK+ydtOq3nOyInA0KK+ydtOygleydvA0KK+ydtOyEseyjvA0KK+ydtO2DnOyVlA0KK+ydtOq3vOyyoA0KK+ydtOycpOyjvA0KK+ydtOuzte2YuA0KK+ydtO2DnOyXsA0KK+ydtOycpOyInA0KK+ydtO2DnOyLnQ0KK+ydtOuqheyasA0KK+ydtO2DnOyXtA0KK+ydtOyerOyEnQ0KK+ydtO2YleyEnQ0KK+ydtOyerOyyoA0KK+ydtO2DnOyYpQ0KK+ydtOyiheykgA0KK+ydtOyniO2VhA0KK+ydtO2VtOyasQ0KK+ydtO2DnOybkA0KK+ydtOykke2DnQ0KK+ydtOyKueyInA0KK+ydtOyaqeyLnQ0KK+ydtO2DnOybkA0KK+ydtOykgOyyoA0KK+ydtOyYgeyImA0KK+ydtOyEseyaqQ0KK+ydtO2DnOybkA0KK+ydtO2DnOyEoA0KK+ydtOqyveyyoA0KK+ydtO2DnOqyvQ0KK+ydtO2DnOycpA0KK+ydtOywveuylA0KK+ydtOq3vOuemA0KK+ydtOyYgeyLnQ0KK+ydtO2DnOyehA0KK+ydtOuzteq3nA0KK+ydtOyasO2DnA0KK+ydtOuzte2DnA0KK+ydtO2DnOyhsA0KK+ydtOyDge2XjA0KK+ydtOyYgeyaqQ0KK+ydtOunjO2drA0KK+ydtO2DnOyhsA0KK+ydtOuPhO2drA0KK+ydtOy2qe2VnA0KK+ydtOuzke2ZmA0KK+ydtO2DnOyhsA0KK+ydtOydvO2YuA0KK+ydtOq4sOyVoA0KK+ydtOuCnOq3vA0KK+ydtO2DnOykgA0KK+ydtOyerOyekA0KK+ydtOq0ke2drA0KK+ydtOuztOyEsQ0KK+ydtO2DnOyyoA0KK+ydtOyYpeydtA0KK+ydtOyYge2YuA0KK+ydtOuzkeumrA0KK+ydtO2DnO2YhA0KK+ydtOyduOqyvQ0KK+ydtOydtOy2nA0KK+ydtO2VhO2ZmA0KK+ydtO2DnO2YhA0KK+ydtOyblO2ZmA0KK+ydtO2ZlO2biA0KK+ydtOqyveyaqQ0KK+ydtO2DnO2YuA0KK+ydtOyihe2ZlA0KK+ydtOyerO2drA0KK+ydtO2aqOq3vA0KK+ydtO2DnO2YuA0KK+ydtOuLrOydvA0KK+ydtOyerOyWuA0KK+ydtOyYge2YhA0KK+ydtO2DnO2YuA0KK+ydtOyiheyaqQ0KK+ydtO2YhOyLnQ0KK+ydtOyWke2dlA0KK+ydtO2DnO2ZmA0KK+ydtOyInOyyoA0KK+ydtOuzkeyLnQ0KK+ydtOygle2DnQ0KK+ydtO2DnO2aqA0KK+ydtO2DnO2YuA0KK+ydtOuqheyImA0KK+ydtOq3nOyErQ0KK+ydtO2DnO2biA0KK+ydtO2dpey2nA0KK+ydtOyZuOuhnA0KK+ydtO2XjOyekA0KK+ydtO2DnO2biA0KK+ydtOydmO2VmQ0KK+ydtOyepeuCqA0KK+ydtOyInOy2nA0KK+ydtO2DnO2drA0KK+ydtOq0keq1sA0KK+ydtOq3gO2drA0KK+ydtOyehOyImQ0KK+ydtO2DneqzpA0KK+ydtOqyveyduA0KK+ydtOyerO2DnA0KK+ydtO2XjOq3nA0KK+ydtO2Dney2mA0KK+ydtOusuO2YuA0KK+ydtOyduOuTnQ0KK+ydtOuzkeuwsA0KK+ydtO2KueyEsQ0KK+ydtOyerOywvQ0KK+ydtOygleyhsA0KK+ydtO2VmOyekA0KK+ydtO2MkOq4sA0KK+ydtOq4sOyImQ0KK+ydtOyEneqzpA0KK+ydtOygleqzpA0KK+ydtO2MkOuPjA0KK+ydtCDtmZgNCivsnbTsnKTtnawNCivsnbTquLjqtawNCivsnbTtjJDrj5kNCivsnbTsmrDsnbwNCivsnbTqt4Dsl7QNCivsnbTsnbjshJ0NCivsnbTtjJDshJ0NCivsnbTqt7zsiJkNCivsnbTsg4HtmLgNCivsnbTsuaDshKANCivsnbTtjJDsiJwNCivsnbTsmqnqsr0NCivsnbTspIDtmLgNCivsnbTsnqzspIANCivsnbTtjJDsiJwNCivsnbTsiJjsp4QNCivsnbTsiJzshLENCivsnbTsnKTsiJwNCivsnbTtjJDsiKANCivsnbTspIDtnawNCivsnbTssL3shJ0NCivsnbTso7zssqANCivsnbTtjJDsi50NCivsnbTsoJXsmYQNCivsnbTrtoTsiJgNCivsnbTrtIntg50NCivsnbTtjJDsmqkNCivsnbTsoJXquLgNCivsnbTquLDshKQNCivsnbTrp4ztm4gNCivsnbTtjJTsmqkNCivsnbTsiJzsm5ANCivsnbTsp4DshLENCivsnbTtnaXsiKANCivsnbTtj4nqtawNCivsnbTrrLjri6wNCivsnbTrs5HsiJwNCivsnbTsooXtlZgNCivsnbTtko3rr7gNCivsnbTshLHsmpQNCivsnbTqsr3tmJUNCivsnbTsooXrnpgNCivsnbTtlYTquLANCivsnbTtg4Dsi50NCivsnbTtl4ztmZgNCivsnbTrs7XtmIQNCivsnbTtlYTrgqgNCivsnbTsnqzrgqgNCivsnbTsnKTqsr0NCivsnbTsiJnspJENCivsnbTtlYTsiJgNCivsnbTshKDqt5wNCivsnbTsooXsmZUNCivsnbTquLDtnawNCivsnbTtlYTsiJgNCivsnbTsnqztmZgNCivsnbTsooXroZ0NCivsnbTrj4Tsm5ANCivsnbTtlYTsl7ANCivsnbTsnqzsooUNCivsnbTrjIDsiJgNCivsnbTsooXtmIQNCivsnbTtlYTtmZgNCivsnbTsmIHtmZgNCivsnbTsjI3rsLENCivsnbTsoJDsl7ANCivsnbTtlZjqsr0NCivsnbTquLDtmZQNCivsnbTsnqzqsJENCivsnbTrrLjrj5kNCivsnbTtlZjsi50NCivsnbTshLHrnpgNCivsnbTsoJXqs6QNCivsnbTsnqXtmLgNCivsnbTtlZnrhbgNCivsnbTshLHsmYQNCivsnbTspJHtg50NCivsnbTsooXso7wNCivsnbTtlZnshJ0NCivsnbTqt5ztmLgNCivsnbTsp4Tsi50NCivsnbTrj5ntg4ENCivsnbTtlZnsoJwNCivsnbTqsr3tmIQNCivsnbTstpjqtowNCivsnbTsi5ztlZwNCivsnbTtlZnsobANCivsnbTssKjtmLgNCivsnbTrtIntl4wNCivsnbTshLHsp4QNCivsnbTtlZzqtawNCivsnbTquLDqs6ANCivsnbTsoJXstpwNCivsnbTrs5HsoJUNCivsnbTtlZzqt6ANCivsnbQg7KGwDQor7J2066qF6rSADQor7J207IiZ7J6QDQor7J207ZWc6re8DQor7J207KCQ7IudDQor7J2064yA7LCsDQor7J207Iic7ZmUDQor7J207ZWc642VDQor7J2064eM7Je0DQor7J207Iic67O1DQor7J207J2466qpDQor7J207ZWc7ISxDQor7J2067OR6re8DQor7J2067aE7ISdDQor7J207JiB7Je0DQor7J207ZWc7IicDQor7J207ZiE64+EDQor7J207Lmg7KeEDQor7J207JiB7ZmYDQor7J207ZWc7IudDQor7J2066y066qFDQor7J207JiB64yADQor7J207IiY64KoDQor7J207ZWc7JqpDQor7J207YyQ6raMDQor7J207ISx7IudDQor7J207JiB64+ZDQor7J207ZWc7Y+JDQor7J206rSR7IicDQor7J207Jqp6rWsDQor7J207IOB7YOcDQor7J207ZWc7ZmNDQor7J207ISx7KeEDQor7J207KCV64KoDQor7J207IyN7KeEDQor7J207ZWt7JqpDQor7J207Iic7IigDQor7J207LaY7IiYDQor7J207KeE7J6QDQor7J207ZW07ISdDQor7J207Jqp7IudDQor7J207YOc642VDQor7J207JiB7ZmYDQor7J207ZW07IucDQor7J207Jm47ISxDQor7J207ZmN7ZmYDQor7J207ZS87YOcDQor7J207ZW07JiBDQor7J207Lap7Zi4DQor7J207KCV7ISgDQor7J207JiB7ISdDQor7J207ZW07JilDQor7J207IiY7Z2sDQor7J207JiB7JuFDQor7J207J2Y7IicDQor7J207ZW07JqwDQor7J207KKF7JqwDQor7J207Jqp7ZmYDQor7J2066qF7IicDQor7J207ZW07JqxDQor7J207LC96rWtDQor7J207LKc7ZiEDQor7J207JuQ7JqwDQor7J207ZW07Jq0DQor7J207Jqp7KCcDQor7J207KKF66eMDQor7J20656Y6rWQDQor7J207ZW07JuFDQor7J206ri47JewDQor7J207YOc7KO8DQor7J206rSR7ISgDQor7J207ZW07J6QDQor7J207IOB7ISdDQor7J207KKF7IudDQor7J2066y06recDQor7J207ZW07KCVDQor7J207ISx7IiYDQor7J207IOB7Je0DQor7J207ZWE7ISdDQor7J207ZW07KCVDQor7J207KCV64yADQor7J206rec64+EDQor7J206rK97JewDQor7J207ZW07KGwDQor7J207Jil64+ZDQor7J207KKF7IScDQor7J207JiB7JqpDQor7J207ZW07KO8DQor7J2066qF7IicDQor7J207Zi47KSADQor7J207LmY64KoDQor7J207ZW07KSADQor7J2064Ko7YOdDQor7J207LCo7KO8DQor7J207Iic642VDQor7J207ZW07LKgDQor7J207J217KGwDQor7J207ZiB6rK9DQor7J2067OR7JiBDQor7J207ZaJ7IiYDQor7J2066e57Je0DQor7J207IOB7ISgDQor7J207KCV7ZicDQor7J207ZaJ7Jq0DQor7J2067SJ7IS4DQor7J207LC96rOkDQor7J207KeE7KGwDQor7J207ZaJ7J6QDQor7J207LCo7JewDQor7J207Jqp7J24DQor7J206rK967aEDQor7J207ZaJ7YOBDQor7J207IaM7JqwDQor7J207Z2s7IiZDQor7J206rK97YOcDQor7J207Zal66+4DQor7J206re87JuFDQor7J2066qF7LKgDQor7J206riI64+MDQor7J207Zal7ISdDQor7J207KKF7IStDQor7J206rK97J21DQor7J207Jqp7JiBDQor7J207ZeM6rCRDQor7J207IOB7IiZDQor7J207ISx66eMDQor7J207JiB642VDQor7J207ZeM6rWtDQor7J206riw7YOcDQor7J206reA6rWtDQor7J207JuQ642VDQor7J207ZeM6riwDQor7J207YOc7Z2sDQor7J207Iic7ZuIDQor7J207JiB7Zi4DQor7J207ZeM6riwDQor7J2067SJ642VDQor7J207J207IudDQor7J207J6s7Zi4DQor7J207ZeM64usDQor7J2067SJ6re8DQor7J2066qF6riIDQor7J206rK97JuQDQor7J207ZeM66y4DQor7J207IiY7IStDQor7J2064+Z7ZiEDQor7J206riw7ISgDQor7J207ZeM67CpDQor7J207ISg7LKgDQor7J207J247Z2sDQor7J207ISd67KUDQor7J207ZeM7IOBDQor7J207J287LacDQor7J206riI7ZiEDQor7J207IiY67KUDQor7J207ZeM7IudDQor7J207J6l7ZeMDQor7J207J6s7IiYDQor7J2064yA7ISgDQor7J207ZeM7JiBDQor7J206rSR7J6sDQor7J206rK96rWsDQor7J206rSR7JqpDQor7J207ZeM7JikDQor7J207IiY7JqwDQor7J207JiB7ZmYDQor7J207IS47KO8DQor7J207ZeM7JqpDQor7J2067OR7ZmNDQor7J207JuU7JuQDQor7J207J6s7J20DQor7J207ZeM7JqwDQor7J206riw7ZWZDQor7J206rOE7KGwDQor7J2065GQ7IicDQor7J207ZeM7JuFDQor7J207Jyk7IudDQor7J207IiY7LacDQor7J2064W47J28DQor7J207ZeM7J21DQor7J206riI7ZWYDQor7J2064+Z7IicDQor7J207ZWZ6riwDQor7J207ZeM7KCBDQor7J207Iic7JqpDQor7J207J6l7IicDQor7J207YOc7J28DQor7J207ZeM7KO8DQor7J207YyU7IiYDQor7J207JmE7ZqoDQor7J207IaQ6recDQor7J207ZeM7KeEDQor7J207JiB7IiZDQor7J207IOB6riwDQor7J2064yA66qpDQor7J207ZeM7LacDQor7J207JiB65+JDQor7J206rK97ZWYDQor7J206rO17ISdDQor7J207ZeM7LmYDQor7J207KKF7LKgDQor7J207JmE7IudDQor7J2066+47JuFDQor7J207ZeM7YOBDQor7J2067O16recDQor7J207IOB7KGwDQor7J207ZW06rWsDQor7J207ZeM7YOcDQor7J207J6s7IudDQor7J207ISx642VDQor7J206rK97YOcDQor7J207ZeM7YOcDQor7J206riw7YOcDQor7J2066qF6rSRDQor7J2066eM7JqpDQor7J207ZeM7YOcDQor7J2064+M7IicDQor7J207Iic6rOkDQor7J207J287LKgDQor7J207ZeM7Y+sDQor7J207JiB7ZiEDQor7J207J6s7LacDQor7J2067O17JuFDQor7J207ZeM7Y+sDQor7J207LCo7KeEDQor7J2064yA7ZmNDQor7J207Jqp64+EDQor7J207ZeM7Zi4DQor7J206re86rK9DQor7J2066qF7ISdDQor7J206rCR67SJDQor7J207ZeM7Zi4DQor7J207KeE64yADQor7J206rec7JuFDQor7J207IOB7ZmYDQor7J207ZeM7Zi4DQor7J207KKF7Z2sDQor7J207KCV7IStDQor7J207KKF66qFDQor7J207ZiB7KeEDQor7J207KKF7JiBDQor7J2064+Z7ISxDQor7J207YOc7JuQDQor7J207ZiE6rWsDQor7J207Jqp67CwDQor7J207ZiE7KeEDQor7J207J2A7JqpDQor7J207ZiE66C5DQor7J2064+Z6raMDQor7J207JuQ7Zi4DQor7J207IOB7JqpDQor7J207ZiE66qoDQor7J207JeF7LacDQor7J207ZmU7ZuIDQor7J2064+Z7YOcDQor7J207ZiE7IOBDQor7J207KKF7IudDQor7J207JiB7KSADQor7J206rK97IOdDQor7J207ZiE7IOBDQor7J207ZWY7Z2sDQor7J207YOc7LKgDQor7J206riI6ri4DQor7J207ZiE7IOBDQor7J207Jyk7Zi4DQor7J2064+Z7IOdDQor7J207KeE7Je0DQor7J207ZiE7IiZDQor7J207LKg7J6QDQor7J207IiY7KeEDQor7J207ZmN7J28DQor7J207ZiE7IudDQor7J207KCV7JWgDQor7J207J6s67CwDQor7J207JiB66CoDQor7J207ZiE7Je0DQor7J207IOB7IigDQor7J207J287YOdDQor7J206rSR7Zi4DQor7J207ZiE7J6sDQor7J2064+Z7ZyYDQor7J207JiB7JewDQor7J2064Kc7Jq0DQor7J207ZiE7KCVDQor7J2067O17JikDQor7J207Jq07ISxDQor7J207IOB7JuQDQor7J207ZiE7KGwDQor7J207KeE6regDQor7J206riw7Je0DQor7J207JyE7IudDQor7J207ZiE7KKFDQor7J207YOc7Z2sDQor7J207J6s64+EDQor7J2067KU7KO8DQor7J207ZiE7LKgDQor7J206rSR7IigDQor7J206riw64+ZDQor7J207Zqo7IicDQor7J207ZiE7LKgDQor7J2067OR7J6sDQor7J207J6s6rOkDQor7J207KCV67KUDQor7J207ZiE7YOcDQor7J207ISd7ZiEDQor7J207KCQ7JWUDQor7J207Jyk7IudDQor7J207ZiE7Z2sDQor7J207Iic7J6QDQor7J2067OR7Z2sDQor7J207IiY7ISdDQor7J207ZiV6rSRDQor7J207Jqp7JuQDQor7J207Jyk7LCsDQor7J207J207J6sDQor7J207ZiV64W4DQor7J207ISg7IudDQor7J2066qF7J21DQor7J2066eM7JqxDQor7J207ZiV64yADQor7J207KKF7YOcDQor7J207Iig7YOdDQor7J207Jqp66y4DQor7J207ZiV66y1DQor7J207ZS865OdDQor7J2066e57IicDQor7J2067OR7KGwDQor7J207ZiV7IudDQor7J207IOB7ISdDQor7J207LmY66eQDQor7J207J6s7ISgDQor7J207ZiV7IudDQor7J207JuU7IiZDQor7J207J2Y66y4DQor7J2066eQ7Zi4DQor7J207ZiV7KGwDQor7J20642V64KoDQor7J2066qF7JWUDQor7J207JiB7JqwDQor7J207ZiV7YOcDQor7J206rec7KGwDQor7J207J247ZiEDQor7J206rSA6recDQor7J207ZiV7YOcDQor7J207YOd7KO8DQor7J207Jqp7J28DQor7J207J6s7IicDQor7J207Zic6rK9DQor7J207ZGc7ZWtDQor7J207KCV7Zi4DQor7J207Ius7LC9DQor7J207Zic6rK9DQor7J2064+Z7IStDQor7J207J206recDQor7J207KCV7LacDQor7J207Zic6rK9DQor7J207IOB7IudDQor7J207KKF7ISdDQor7J207ZeM7KO8DQor7J207Zic66a8DQor7J206riw7JqxDQor7J207ISd7ZuIDQor7J206reA64KoDQor7J207Zic7IiZDQor7J207J6s7Je0DQor7J206rWs7ZmYDQor7J207Zqo7KSADQor7J207Zic7IiZDQor7J207LC97Zi4DQor7J207JuQ7KeEDQor7J207J2066eMDQor7J207Zic7KO8DQor7J206rSR7IudDQor7J207KKF7IigDQor7J206rCR7KGwDQor7J207Zi46raMDQor7J2066qF7ZmYDQor7J2064yA7KGwDQor7J207Jqw7ISxDQor7J207Zi46raMDQor7J207Jil6raMDQor7J207Jm467O1DQor7J207Jqw7JilDQor7J207Zi464+ZDQor7J207ZWc7Zi4DQor7J207YOc7ISgDQor7J206rSR7JqpDQor7J207Zi466eMDQor7J206rK966eMDQor7J206rOE7ZmYDQor7J207Iq564+EDQor7J207Zi47IOBDQor7J207YyQ7Je0DQor7J2067O17KCcDQor7J207Jik7IS4DQor7J207Zi47ISdDQor7J207Iic7IiZDQor7J207JyE7KSADQor7J207KCV7KSADQor7J207Zi47ISxDQor7J207LKg7IigDQor7J207ISx7JuFDQor7J207LaY7KCcDQor7J207Zi47IugDQor7J207KCV7IStDQor7J207ZWZ64+EDQor7J206rec7ZmUDQor7J207Zi47JiBDQor7J20642V7ZWYDQor7J207KeE7Zi4DQor7J207YOc6regDQor7J207Zi47JuQDQor7J207J6s7Zi4DQor7J207KO87IukDQor7J206riw7Zi4DQor7J207Zi47JuQDQor7J207KCV7Je0DQor7J207Jqp66a9DQor7J207KKF7IudDQor7J207Zi47J6sDQor7J2064yA7JiBDQor7J207YOc64yADQor7J207ISx7Zi4DQor7J207Zi47KCVDQor7J207Iug7YOBDQor7J2064+Z66eMDQor7J207KCV7IudDQor7J207Zi47KSRDQor7J207KSA7KSADQor7J207ZmN7IiYDQor7J207J6s7J6sDQor7J207Zi47LaYDQor7J207KCV7Je9DQor7J207ISd7IiYDQor7J206rec7ZmYDQor7J207Zi47LihDQor7J206rSR7Jq0DQor7J207ISd6regDQor7J2067OR7ZmYDQor7J207ZmN6rWsDQor7J2064+Z7ISgDQor7J207ISx7IudDQor7J207ZiV6raMDQor7J207ZmN6rWsDQor7J2067OR7KGwDQor7J207IiY7ISdDQor7J2066eQ7IiYDQor7J207ZmN6rWsDQor7J207JuQ7ZmYDQor7J207Jyh7KeEDQor7J206rSR7ISgDQor7J207ZmN6rWtDQor7J2064+Z7J20DQor7J207KeA6re8DQor7J207YyQ7KGwDQor7J207ZmN6regDQor7J207KO87LKgDQor7J207IOB7IudDQor7J207LaY6re8DQor7J207ZmN6riwDQor7J2067OR7LaYDQor7J207KSA7ZWZDQor7J207JiB7ISxDQor7J207ZmN656ADQor7J207J2A67O1DQor7J207KKF7JqwDQor7J207J6s7KKFDQor7J207ZmN7ISdDQor7J2064Ko7JqpDQor7J207J2E6re8DQor7J207LKt64+MDQor7J207ZmN7IudDQor7J207JiB7Zi4DQor7J207ISd7IiYDQor7J207ZmN7ZiEDQor7J207ZmN7IudDQor7J207YyQ7ZmUDQor7J207J20656YDQor7J207KeE67O1DQor7J207ZmN7Je0DQor7J207KeA7IiYDQor7J2064us6regDQor7J206rec7J6QDQor7J207ZmN7YOdDQor7J207LaU7ZWZDQor7J207Jyk7IiZDQor7J206riw7KSADQor7J207ZmN7YOdDQor7J207KKF7Ja4DQor7J207LaU65OdDQor7J207KKF6riwDQor7J207ZmU6rK9DQor7J207J2Y642VDQor7J2064us6rWtDQor7J207KCV7J6sDQor7J207ZmU6rK9DQor7J2064yA7YOcDQor7J207Iic7IiYDQor7J2064+Z7ZWZDQor7J207ZmU6529DQor7J207YOc6recDQor7J207J207ZmNDQor7J207Iic7IStDQor7J207ZmU7ISdDQor7J207ZWc656YDQor7J207Iic7ZiEDQor7J207Z2s7Z2sDQor7J207ZmU7IS4DQor7J207IOB7JqwDQor7J2067OR6rSADQor7J2067SJ66eMDQor7J207ZmU7IiYDQor7J206rCR7KGwDQor7J207ZWE7ISdDQor7J207KKF7ZiVDQor7J207ZmU7J6QDQor7J207J6s7IudDQor7J207YOc7JewDQor7J207Zi47JuQDQor7J207ZmU7KKFDQor7J2067OR6rSADQor7J207JiB7IigDQor7J207Lap7LaYDQor7J207ZmY7IiYDQor7J207YOc67O1DQor7J2064+Z7JqwDQor7J2066+87Je0DQor7J207ZmY7J20DQor7J207IaM7Z2sDQor7J207KCV7KeEDQor7J207J6s6rOkDQor7J207ZmY7KKFDQor7J2067aE7J6sDQor7J206reA6rOkDQor7J207Jew7IiZDQor7J207Zmp7IiYDQor7J2067SJ6re8DQor7J207IOB7J28DQor7J207JiB7KSADQor7J207ZqM7IicDQor7J2066+87IiYDQor7J20642V64yADQor7J207JiB7KGwDQor7J207Zqo6regDQor7J207IOB7Zi4DQor7J207YOc7Jq0DQor7J20642V7Jq0DQor7J207Zqo7IiYDQor7J207JiB7IiYDQor7J207Zic7JqwDQor7J207KCV6recDQor7J207Zqo7JuQDQor7J207Jyk7IiYDQor7J207ZmU64yADQor7J2066qF7YOdDQor7J207ZuE67SJDQor7J207Jyk7KKFDQor7J207ZiV7Zi4DQor7J207YOc7Zy0DQor7J207Z2l6riwDQor7J2067SJ7IOBDQor7J207J6s7ISxDQor7J207KKF7ZeMDQor7J207Z2l7IicDQor7J2064us7ISgDQor7J206rK97Ja1DQor7J2066eM7ISgDQor7J207Z2l7IudDQor7J207KKF7ZmUDQor7J206rSR67CwDQor7J207JiB7ZmYDQor7J207Z2l7J6sDQor7J207IOB7Zi4DQor7J207IiY7KCcDQor7J2067OR6recDQor7J207Z2s7J2RDQor7J207JiB7ZiEDQor7J207ISd7IiYDQor7J207KCV6riwDQor7J207Z2s7J6QDQor7J207Lap7JuQDQor7J207ZiE7KKFDQor7J207J2A7IudDQor7J207Z2s7J6QDQor7J207J2A7LKgDQor7J207Zic7IiYDQor7J207KKF64yADQor7J2466qF7Y64DQor7J247KKF6riwDQor7J247IyN6rWsDQor7J247KCV7JqpDQor7J247J6s7ZmYDQor7J247J6s7ZmYDQor7J247IOB7KeEDQor7J2465Od64+EDQor7J6EIOyYgQ0KK+yehOyepeyerA0KK+yehOuFuOq3nA0KK+yehOyEse2YuA0KK+yehOqyveuwsA0KK+yehOywveyImA0KK+yehOuPme2biA0KK+yehOyerOynhA0KK+yehOqyveyEnQ0KK+yehOugpOyyoA0KK+yehOyYgeydmA0KK+yehOyZuO2YuA0KK+yehOqyveyLnQ0KK+yehOyiheuPmQ0KK+yehOynhOyhsA0KK+yehOyImOyyoA0KK+yehOqyveyasA0KK+yehOyaqeyEnQ0KK+yehOyGjOu2gA0KK+yehOyEne2YuA0KK+yehOqyve2ZlA0KK+yehOuzkeyCvA0KK+yehOygleyImA0KK+yehOuCqOyYgQ0KK+yehOq0keuvvA0KK+yehOybkOyLnQ0KK+yehOyaqeq3vA0KK+yehOyjvOu2hA0KK+yehOq0keyLnQ0KK+yehOyYgeyerA0KK+yehOq4sOyEnQ0KK+yehO2YhOuwsA0KK+yehOq0key2mA0KK+yehOywqO2YhA0KK+yehOu2hO2YuA0KK+yehOyiheygnA0KK+yehOq1rO2YuA0KK+yehOywveuPmQ0KK+yehOyDge2VnA0KK+yehOyEseuPjA0KK+yehOq3gOyImQ0KK+yehO2MkOyEnQ0KK+yehOydvOq0gA0KK+yehOyyoO2VnA0KK+yehOq3vOuNlQ0KK+yehOyYgeuPjA0KK+yehOuqhe2DnQ0KK+yehOyImOyEoA0KK+yehOq4iOyYgQ0KK+yehO2drOyInA0KK+yehOuFuOyekA0KK+yehOyEseyLnQ0KK+yehOq4sOyYpA0KK+yehOyYge2aqA0KK+yehOyEseybkA0KK+yehO2DnOuPhA0KK+yehOq4sO2RnA0KK+yehOygleunjA0KK+yehOqyvey5mA0KK+yehO2YhOyEsQ0KK+yehOq4sO2YgQ0KK+yehOuMgOuPhA0KK+yehOyblO2drA0KK+yehOyEoOyImA0KK+yehOq4sO2YuA0KK+yehOu0ieybkA0KK+yehOq3vO2drA0KK+yehOywqOyyoA0KK+yehOq4uOyaqQ0KK+yehOyYge2YhA0KK+yehOqwleyImA0KK+yehOygleyLnQ0KK+yehOuCqOyInA0KK+yehOq1rO2YuA0KK+yehOuzkeqwkQ0KK+yehOyLoOyImA0KK+yehOuFuOyLnQ0KK+yehO2YleuCqA0KK+yehOuNleq4uA0KK+yehOyduOumvA0KK+yehOuLrOyEnQ0KK+yehOynhO2ZmA0KK+yehOyEneyLpA0KK+yehOyImOunjA0KK+yehOuLrOy2nA0KK+yehOyDgeq3nA0KK+yehOq4sOuqhQ0KK+yehO2DnOyyoA0KK+yehOuLrO2YuA0KK+yehOyEseuvuA0KK+yehOustOyasA0KK+yehOuzteyatA0KK+yehOuMgO2drA0KK+yehOqyveyVlA0KK+yehO2XjOynhA0KK+yehOq3vOuemA0KK+yehOuPhOyEnQ0KK+yehOyYgeyYgQ0KK+yehOu2gOyInA0KK+yehO2YhO2drA0KK+yehOuPmeyImA0KK+yehOyerOyDnQ0KK+yehOygleuwsA0KK+yehOyihe2ZmA0KK+yehOuhne2WpQ0KK+yehOyduOqzpA0KK+yehOqzvOyImQ0KK+yehOqyveyglQ0KK+yehOuhne2WpQ0KK+yehOyEseu0iQ0KK+yehOyYgeudvQ0KK+yehOygkOuPmQ0KK+yehOuqheq2jA0KK+yehOybkOyErQ0KK+yehOydkeybkA0KK+yehOycoOyXsA0KK+yehOuqheyInA0KK+yehOynhOyasA0KK+yehOyYgeuemA0KK+yehOq3nOyEoA0KK+yehOuqheyVoA0KK+yehOycpOyDgQ0KK+yehOuCmeq4sA0KK+yehOq0keyynA0KK+yehOuqhe2drA0KK+yehOyDgeyImA0KK+yehOyaqeq3vA0KK+yehOynhOyerA0KK+yehOustOyCsA0KK+yehOqyve2YuA0KK+yehOyZleyImA0KK+yehOydmOuylA0KK+yehOustOyImA0KK+yehOyVoOyhsA0KK+yehOyYge2YuA0KK+yehOygleq4sA0KK+yehOustOyXsA0KK+yehOyImO2YhA0KK+yehOyZleyEuA0KK+yehOyduOyDgQ0KK+yehOusuOyInA0KK+yehOygleyYpQ0KK+yehO2DnOu0iQ0KK+yehO2YhOyDgQ0KK+yehOuzkeqzpA0KK+yehO2drOq4sA0KK+yehOq0keyasA0KK+yehO2XjO2DnQ0KK+yehOuzkeqzpA0KK+yehOywveyYgQ0KK+yehOyduOynhA0KK+yehOyaqe2drA0KK+yehOuzkeq1sA0KK+yehOyInOq4sA0KK+yehOyGjOyyoA0KK+yehO2drOq0kQ0KK+yehOuzkeq4uA0KK+yehOyInOyyoA0KK+yehOyEseybkA0KK+yehOyInOu2gA0KK+yehOuzkeyCvA0KK+yehOuqheyInA0KK+yehOyDge2YuA0KK+yehOyDge2ZjQ0KK+yehOuzkeyImA0KK+yehOyZuOyCvA0KK+yehOyYge2biA0KK+yehOydmOuNlQ0KK+yehOuzkeyYpA0KK+yehOuzkeyImA0KK+yehOyaqe2ZmA0KK+yehOyInOuFuA0KK+yehOuzkeyyoA0KK+yehOuTneyVlA0KK+yehOyYge2YhA0KK+yehO2YhOyasA0KK+yehOuzkeyyoA0KK+yehOyDge2YuA0KK+yehOu0ie2YuA0KK+yehOyEne2doA0KK+yehOuzke2DnA0KK+yehOybkOyXtA0KK+yehOuqheu0iQ0KK+yehOyEneq3nA0KK+yehOuzteyYgQ0KK+yehOy5oO2DnA0KK+yehOyiheyEnQ0KK+yehOustOyYgQ0KK+yehOu0ieyasA0KK+yehOyaqeyYpQ0KK+yehOyDgeyhsA0KK+yehOyxhOyXtA0KK+yehOu2hOyhsA0KK+yehOy5mOudvQ0KK+yehOustOyerA0KK+yehOyDgeyDnQ0KK+yehOyDgeyImA0KK+yehOyerO2ZqQ0KK+yehOygleq4sA0KK+yehOywveyImQ0KK+yehOyDge2VmQ0KK+yehOycpO2XjA0KK+yehOyZuOyEoA0KK+yehOunkOuwsQ0KK+yehOyEneygkA0KK+yehOywveuRkA0KK+yehO2DnOyEoA0KK+yehOyerOyIoA0KK+yehOyEoOuvuA0KK+yehOykgO2YlQ0KK+yehOuzkey2nA0KK+yehOycpOqzpA0KK+yehOyEoOyasA0KK+yehOyCvOqyvQ0KK+yehOq4sOyEoA0KK+yehOyiheyImA0KK+yehOyEseq3nA0KK+yehOqwkOyihQ0KK+yehO2drOugrA0KK+yehOyynOyImA0KK+yehOyEseq4sA0KK+yehOyaqeyaqQ0KK+yehOynhOyInA0KK+yehOq1kOyYgQ0KK+yehOyEseybkA0KK+yehOyInOyhsA0KK+yehOuNleyEnQ0KK+yehOyYpO2ZjQ0KK+yehOyEse2YuA0KK+yehOq0keyVoA0KK+yehOuNle2ZlA0KK+yehOyerOuhnQ0KK+yehOyImOuPmQ0KK+yehOy2mOyLoA0KK+yehOyerO2biA0KK+yehO2DnOyEoA0KK+yehOyImOyLnQ0KK+yehOyYgeyasA0KK+yehO2DnO2drA0KK+yehO2DnOyEnQ0KK+yehOyImOydvA0KK+yehOygleu0iQ0KK+yehOuzkeqyvQ0KK+yehOyDge2ZmA0KK+yehOyImOy5mQ0KK+yehOyDgeyXrA0KK+yehOyiheyglQ0KK+yehOyiheyImA0KK+yehOyImeyYgQ0KK+yehOydgO2RnA0KK+yehOuvuOqzpA0KK+yehOuRkOq3nA0KK+yehOyImeyekA0KK+yehOqwkeyEnQ0KK+yehOuMgOq3nA0KK+yehOyiheynhA0KK+yehOyImeyekA0KK+yehOy2mOusuA0KK+yehOyerO2DnA0KK+yehOunkOuztA0KK+yehOyInOuNlQ0KK+yehOyEneyEoA0KK+yehOustOuqqQ0KK+yehOq4sOyEnQ0KK+yehOyInOuNlQ0KK+yehOyduO2ctA0KK+yehOyEseyInA0KK+yehO2MkOyImA0KK+yehOyInOyehA0KK+yehOuvuOuCqA0KK+yehOyDge2ZmA0KK+yehOq4sOyyoA0KK+yehOyInOyekA0KK+yehO2ZmOyEnQ0KK+yehOq3nO2VmQ0KK+yehO2YgeuPmQ0KK+yehOyInO2ZmA0KK+yehOq3vOyInA0KK+yehOynhOyErQ0KK+yehOyYgeuegA0KK+yehOyIoO2YuA0KK+yehOybkOyImA0KK+yehOuptOq4uA0KK+yehO2YuOyasQ0KK+yehOyKueqzpA0KK+yehO2YuOyImA0KK+yehOunkOydgA0KK+yehOyYgeq1kA0KK+yehOyKueq2jA0KK+yehOuCqOyLnQ0KK+yehO2VhO2YlQ0KK+yehOynhOyInA0KK+yehOyKueuwsA0KK+yehOyYge2RnA0KK+yehOyDgeyImA0KK+yehOyYgeuTnQ0KK+yehOyKueyInA0KK+yehO2Wieq3vA0KK+yehOyiheq4uA0KK+yehOy5mOyhsA0KK+yehOyKue2MlA0KK+yehOuCmeq4sA0KK+yehOyLoOq3nA0KK+yehOyLoOyInA0KK+yehOyWkeyasA0KK+yehOusuOydtA0KK+yehOyEuOyImA0KK+yehOuqheyEnQ0KK+yehOyXsO2YuA0KK+yehOyImOuwsA0KK+yehOyEseuwsA0KK+yehOq3nOyEnQ0KK+yehOyYgeq1rQ0KK+yehOywqO2drA0KK+yehOqzhOynhA0KK+yehOyduO2ZmA0KK+yehOyYgeuqqA0KK+yehOydvO2YuA0KK+yehOuPmeyImA0KK+yehOyWuOyyoA0KK+yehOyYgeyihQ0KK+yehOqwke2doA0KK+yehOykkeyInA0KK+yehOyEseyImA0KK+yehOyYge2DnA0KK+yehO2cmOyYpQ0KK+yehOunjOqyvQ0KK+yehOyEseyImA0KK+yehOyYge2YuA0KK+yehOuzkeyaqQ0KK+yehOq1sOyyoA0KK+yehOyerOyXsA0KK+yehOyYge2YuA0KK+yehOyLoO2ZjQ0KK+yehOuzkeyekA0KK+yehOq1rOycpA0KK+yehOyYge2YuA0KK+yehOq4iOugqA0KK+yehOywrOyInA0KK+yehOynhOyYpQ0KK+yehOyYpeyXsA0KK+yehOycoO2dpQ0KK+yehOqyve2DnA0KK+yehOyInOyaqQ0KK+yehOyZuOyImA0KK+yehOyaqeq4sA0KK+yehO2YuOynhA0KK+yehOyDgeqyvQ0KK+yehOyaqeynhA0KK+yehOyatOyXtA0KK+yehOqyveuylA0KK+yehOygle2YuA0KK+yehOyaqeynhA0KK+yehOyDge2ZlA0KK+yehOyImOyhsA0KK+yehOq4sOyIoA0KK+yehOyaqe2DnQ0KK+yehOuNleyXtA0KK+yehOyEoOu2lQ0KK+yehOu2gOuztQ0KK+yehOyaqe2VtA0KK+yehOyaqeyInA0KK+yehOyYpeyErQ0KK+yehOyaqeuNlQ0KK+yehOyasOyEsQ0KK+yehOq4sOyekA0KK+yehOygleyasQ0KK+yehOq3nOyErQ0KK+yehOybkOyekA0KK+yehOuqheyImA0KK+yehOyInOuwsA0KK+yehOyiheq3nA0KK+yehOybkO2drA0KK+yehOuzteyEnQ0KK+yehOyEseyglQ0KK+yehOyerOq3nA0KK+yehOycpO2YuA0KK+yehOydtO2ZlA0KK+yehOyiheyLnQ0KK+yehOyYgeq3oA0KK+yehOydgOqyvQ0KK+yehOyatO2YhA0KK+yehOyduOqxuA0KK+yehOyaqeyaqQ0KK+yehOydhOyDgQ0KK+yehOydvOyXtA0KK+yehOyEneyEoA0KK+yehOqyveyImA0KK+yehOyduOyInA0KK+yehOuztOyLnQ0KK+yehOuNleuhgA0KK+yehO2VtOykgA0KK+yehOyduOyerA0KK+yehO2drOq3vA0KK+yehOydteyInA0KK+yehOyMjeq4uA0KK+yehOydvOyasA0KK+yehOy2mO2aqA0KK+yehOywve2YuA0KK+yehOy2qeyekA0KK+yehOyepeq3nA0KK+yehOyYgeq1rA0KK+yehO2DnOyImQ0KK+yehOyepeqwkQ0KK+yehOyerOqxtA0KK+yehOyduOyEoA0KK+yehOygle2ZmA0KK+yehOynhO2biA0KK+yehOyerOq2jA0KK+yehOyjvOyDnQ0KK+yehOuzteuPjA0KK+yehOyerO2YhA0KK+yehOyerOq3vA0KK+yehOqzhOyhsA0KK+yehO2DnOyasA0KK+yehOunjOyEsQ0KK+yehOyerOq3vA0KK+yehOyYgeyErQ0KK+yehOywqOyDgQ0KK+yehOuLrOuztQ0KK+yehOyerOq3vA0KK+yehOywveyLnQ0KK+yehOyCvOyhsA0KK+yehOyImOynhA0KK+yehOyerOyynA0KK+yehOq3vO2ZmA0KK+yehOq4sOyerA0KK+yehOyaqe2YuA0KK+yehOyerO2YuA0KK+yehOyEseyYpA0KK+yehOyInOyasA0KK+yehOyerOyImA0KK+yehOygkOyLnQ0KK+yehOybkOu0iQ0KK+yehOywveyYgQ0KK+yehOyInOusuA0KK+yehOygleqwkQ0KK+yehO2VmeydtA0KK+yehOq3nO2VmQ0KK+yehOyYgeyImA0KK+yehOygleqwkQ0KK+yehOyCvOq3vA0KK+yehO2VtOyynA0KK+yehO2MkOygnA0KK+yehOygleuLrA0KK+yehOyiheuegA0KK+yehOq1kOq4sA0KK+yehOyDge2VmQ0KK+yehOygleuMgA0KK+yehOywveyVhA0KK+yehOyiheyXtA0KK+yehOyekOq2jA0KK+yehOygleuqqA0KK+yehOydtOyZhA0KK+yehOyDge2VmQ0KK+yehOy2mOujoQ0KK+yehOygleuwsA0KK+yehOy2mO2YhA0KK+yehOq0keuMgA0KK+yehOyYgeyXtA0KK+yehOygleyImQ0KK+yehOyaqeyjvA0KK+yehOygleyekA0KK+yehOyYgeqzpA0KK+yehOygleyIoA0KK+yehOynhOyLoA0KK+yehOynhOq2jA0KK+yehOuptOyasQ0KK+yehOygleynhA0KK+yehOyehOyEoA0KK+yehOyerOyhsA0KK+yehOydgOuTnQ0KK+yehOygleyyoA0KK+yehOyaqeyLnQ0KK+yehOygkOyaqQ0KK+yehOyaqeyEnQ0KK+yehOygle2DnA0KK+yehOyImOuNlQ0KK+yehOyImOynhA0KK+yehOyImOydtA0KK+yehOygle2YnA0KK+yehOydvOyErQ0KK+yehOyDgeydtA0KK+yehOy5mOydvA0KK+yehOygle2YuA0KK+yehOq3gOyEnQ0KK+yehO2VreuTsQ0KK+yehOq1kOyXtA0KK+yehOygle2ZmA0KK+yehOuCmeuylA0KK+yehOyEneyDgQ0KK+yehOygkO2YhA0KK+yehOygnOyasA0KK+yehOuzke2XjA0KK+yehOyDgey2mA0KK+yehOyihe2drA0KK+yehOyhsOqwlQ0KK+yehOyaqe2ZmA0KK+yehOuMgOyDnQ0KK+yehOyEseyEnQ0KK+yehOyiheq1rQ0KK+yehOyaqeyekA0KK+yehOyZhO2ZmA0KK+yehOyerOyEoA0KK+yehOyiheq4uA0KK+yehOuztOyIoA0KK+yehOyInO2ZmA0KK+yehOyInOyEsQ0KK+yehOyiheunjA0KK+yehOyerOyLnQ0KK+yehOywveyInA0KK+yehOygle2YuA0KK+yehOyiheunjA0KK+yehOydgOyEoA0KK+yehOygleyYpQ0KK+yehOyihe2drA0KK+yehOyiheyglQ0KK+yehOyImOyErQ0KK+yehOq4uOyEoA0KK+yehOy2mOyLnQ0KK+yehOyihe2DnQ0KK+yehOyInOuPhA0KK+yehOyblOyasA0KK+yehOu0ie2ZlA0KK+yehOyihe2YuA0KK+yehOyiheyasQ0KK+yehOyDgeq1rA0KK+yehOygleyImA0KK+yehOyihe2ZmA0KK+yehOyerOyImA0KK+yehOq0ke2VnA0KK+yehOuztO2VmQ0KK+yehOyjvOyErQ0KK+yehOyDge2DnA0KK+yehOuqheyImA0KK+yehOyDgeq4sA0KK+yehOykkeyImA0KK+yehOywqOqzpA0KK+yehOuqheyhsA0KK+yehOuPmeq3oA0KK+yehOymneq2jA0KK+yehOqyve2drA0KK+yehOyDgeyehA0KK+yehO2DnO2YkQ0KK+yehOyngO2ZmA0KK+yehOyaqeq4sA0KK+yehOuPmeq4uA0KK+yehOyYpe2DnQ0KK+yehOynhOq3nA0KK+yehOyerOyErQ0KK+yehOybkOyInA0KK+yehOyImO2WiQ0KK+yehOynhOuqqA0KK+yehOygleyInA0KK+yehOy2mO2DnQ0KK+yehOygkOq0gA0KK+yehOynhOuqqQ0KK+yehOyDgeyaqQ0KK+yehOuPme2DnA0KK+yehOyYge2YhA0KK+yehOynhOybhQ0KK+yehOuqheyynA0KK+yehOyCrOyYpA0KK+yehOygle2YuA0KK+yehOynhO2DnA0KK+yehOyDge2ctA0KK+yehOuqheq4sA0KK+yehOyEseq2jA0KK+yehOywqOuPhA0KK+yehOyiheuCqA0KK+yehOyYgeunjA0KK+yehOqyve2drA0KK+yehOywqOyIoA0KK+yehOq3vOyWtQ0KK+yehOyDge2DnA0KK+yehOyXsOqwkQ0KK+yehOywveq3vA0KK+yehOycpOyyoA0KK+yehOygle2DnA0KK+yehOyYgeqzpA0KK+yehOyxhOyLnQ0KK+yehOyYgeycpA0KK+yehO2Yle2YhA0KK+yehOusuOyyoA0KK+yehOyxhOyaqQ0KK+yehOygleyyoA0KK+yehOuPmeykgA0KK+yehOuPhOyYpQ0KK+yehOyxhO2YuA0KK+yehO2DnOyaqQ0KK+yehOq0gOyaqQ0KK+yehOuPme2ZmA0KK+yehOyynO2DnQ0KK+yehOyYgeyaqQ0KK+yehOyiheyasA0KK+yehOu2gO2VhA0KK+yehOyyreyEnQ0KK+yehOynhO2drA0KK+yehOu0ieqyvQ0KK+yehOygleydvA0KK+yehOy2mOq3vA0KK+yehOydhOyEoA0KK+yehO2DnOyInA0KK+yehO2ZlOyihQ0KK+yehOy2mOuwsA0KK+yehOuPmeyYpQ0KK+yehOyIoOuCqA0KK+yehOyEseyInA0KK+yehOy2mOyDnQ0KK+yehOykkeyaqQ0KK+yehCDquLANCivsnoTsirnqtawNCivsnoTstpjsnpANCivsnoTqsr3tmqgNCivsnoTqsJHsl7QNCivsnoTquLDsi50NCivsnoTsuZjsobANCivsnoTso7zshJ0NCivsnoTrp5Drj5kNCivsnoTsmIHqsbgNCivsnoTtg5zqsr0NCivsnoTquLDrtoQNCivsnoTssqDsnbwNCivsnoTsmKXsp4QNCivsnoTtg5zquLgNCivsnoTtmqjtmLgNCivsnoTrs5HsnZgNCivsnoTrqqjsnbwNCivsnoTtg5zquLgNCivsnoTshJ3qs6QNCivsnoTsmYTtg50NCivsnoTrs5HqsbgNCivsnoTtg5zsiJgNCivsnoTsi5zsmrQNCivsnoTsooXqtowNCivsnoTsiJztnawNCivsnoTtg5zsiJwNCivsnoTtlbTsnKQNCivsnoTsnqXqtawNCivsnoTqt5zslaANCivsnoTtg5zsiJwNCivsnoTsoJDsooUNCivsnoTshKDsnqwNCivsnoTsoJXssYQNCivsnoTtg5zsiJwNCivsnoTqtJHtnawNCivsnoTtlZjtmZQNCivsnoTsm5TstpgNCivsnoTtg5zsnpANCivsnoTsooXtmLkNCivsnoTstpjrrLgNCivsnoTrs5HsnpANCivsnoTtg5zsobANCivsnoTrqoXtmIQNCivsnoTtg5zsmrANCivsnoTsnKTssqANCivsnoTtg5zsp4QNCivsnoTsg4Hqt5wNCivsnoTqt5zstpwNCivsnoTshozsl7QNCivsnoTtg5ztmLgNCivsnoTrs5Hqt6ANCivsnoTsnqzstpwNCivsnoTspJHsm4UNCivsnoTtg5ztmLgNCivsnoTsooXtmLgNCivsnoTtmY3tmZgNCivsnoTsooXslaANCivsnoTtjJDshJ0NCivsnoTqsr3smIENCivsnoTsooXsmYQNCivsnoTrs5Hqt5wNCivsnoTtjJDsiJgNCivsnoTsmIHqsr0NCivsnoTsmIHtmZgNCivsnoTrrLTtmIQNCivsnoTtjJTsmqkNCivsnoTrs7XsnbQNCivsnoTqt7zshJ0NCivsnoTshozsobANCivsnoTtlZnquLANCivsnoTsm5Dqt7wNCivsnoTrr7ztlZwNCivsnoTrp5DtmLgNCivsnoTtlZnsiKANCivsnoTtmqjshKANCivsnoTsmIHsl7QNCivsnoTrj5nsiJgNCivsnoTtlZzsmKUNCivsnoTsiJjtg5wNCivsnoTsiKDqtJENCivsnoTqs6TqtawNCivsnoTtlbTssqANCivsnoTtlbTrjZUNCivsnoTsnKTsobANCivsnoTsnqztmIQNCivsnoTtlontg50NCivsnoTsiJzsnoQNCivsnoTsmqnqsr0NCivsnoTsmIHqtawNCivsnoTtl4zsmIENCivsnoTsiJnsiJwNCivsnoTtnazsobANCivsnoTqsr3quLANCivsnoTtl4zsmrANCivsnoTqtZDsiJkNCivsnoTrkZDso7wNCivsnoTshLHssYQNCivsnoTtl4zssqANCivsnoTtg5zrqqgNCivsnoTqsr3qsJwNCivsnoTtmLjsiJgNCivsnoTtmLjsmIENCivsnoTtmY3sspwNCivsnoTsmrTsobANCivsnoTshKDtnawNCivsnoTtmZTsiJwNCivsnoTrp4zsmIENCivsnoTsnqzsnoQNCivsnoQg6rCRDQor7J6E7ZmY7YOdDQor7J6E7J6s7ZmYDQor7J6E6rK97IiZDQor7J6E7J207Zi4DQor7J6lIO2YuA0KK+yepeuzkeyImQ0KK+yepey5mOyXtA0KK+yepeyYgeyglQ0KK+yepeqyveyImQ0KK+yepey2mOyekA0KK+yepe2drOq2jA0KK+yepeq4sOyXsA0KK+yepeqyveyIoA0KK+yepeuzkeyEoA0KK+yepe2YnOybhQ0KK+yepeyInOybhQ0KK+yepeqzhOyVlA0KK+yepeqyve2DnQ0KK+yepeqwkeyihQ0KK+yepeuqhe2bhA0KK+yepeq0gOyLnQ0KK+yepeusuOqxtA0KK+yepeuNle2VnA0KK+yepeq0keyXtA0KK+yepeq0keyYpQ0KK+yepeygle2drA0KK+yepeyVlOq3vA0KK+yepeuzkeyaqQ0KK+yepeq1reuCqA0KK+yepSDtmIQNCivsnqXsmqntnawNCivsnqXsmIHqt7wNCivsnqXqt5zrrLgNCivsnqXtnaXrr7wNCivsnqXrrLTqtIANCivsnqXsp4DshLENCivsnqXqt5zsi50NCivsnqXrs5HquLANCivsnqXrtInsiJwNCivsnqXsmIHsi50NCivsnqXqt5ztmIQNCivsnqXsnbjsmYQNCivsnqXqsr3shKANCivsnqXtlZzsp4QNCivsnqXqt5ztmY0NCivsnqXsirntmZQNCivsnqXtlbTshLENCivsnqXsnqzrjIANCivsnqXquIjsmIENCivsnqXrj4TrqqgNCivsnqXshqHrj4QNCivsnqXsnYDtmZgNCivsnqXquLDrpqwNCivsnqXsp4TtnawNCivsnqXsmKXtl4wNCivsnqXsnbztmLgNCivsnqXquLDsi50NCivsnqXrr7zrsLENCivsnqXsnqzrjZUNCivsnqXsnqzsm5ANCivsnqXquLDsmZUNCivsnqXsmIHssqANCivsnqXso7zrp4wNCivsnqXspp3stpgNCivsnqXquLDso7wNCivsnqXrj5nrtIkNCivsnqXshLHstpwNCivsnqXsmIHquIgNCivsnqXquLDtmZQNCivsnqXsnqztmLgNCivsnqXsnYDsmrANCivsnqXrs5Hri6wNCivsnqXrgqjsiJwNCivsnqXtnazrspQNCivsnqXsp4TsiJgNCivsnqXsnqzsmrANCivsnqXrgqjsnbQNCivsnqXqs4TsmKQNCivsnqXqt5zsobANCivsnqXquLDtmIQNCivsnqXrjIDshLENCivsnqXsmYTsmYQNCivsnqXsooXsmrANCivsnqXsnKTrqoUNCivsnqXrjZXsi50NCivsnqXsm5DtmLgNCivsnqXsooXtg5wNCivsnqXstpTquLANCivsnqXrjZXtmIQNCivsnqXrp5DsmrANCivsnqXsiJjqt5wNCivsnqXstpjsiJgNCivsnqXrj5nshJ0NCivsnqXqs4TrtIkNCivsnqXsg4HsmKQNCivsnqXrqoXssq0NCivsnqXrj5nsi50NCivsnqXrjIDqsJwNCivsnqXsm5DsiJgNCivsnqXqtJHsiKANCivsnqXrj5ntmLgNCivsnqXsg4HsobANCivsnqXsnqzquLgNCivsnqXsnbzsobANCivsnqXrj5ntmLgNCivsnqXqt7zsg50NCivsnqXsiJjsmKQNCivsnqXtlbTtmIQNCivsnqXrkZDqtowNCivsnqXrjIDqt7wNCivsnqXsmrDsl7ANCivsnqXqsr3slYQNCivsnqXrkZDshJ0NCivsnqXqs4TsoJANCivsnqXqs4Tso7wNCivsnqXsp4DsooUNCivsnqXrkZDsiJwNCivsnqXtlZzsmqkNCivsnqXsooXsmIENCivsnqXtlZzsmqkNCivsnqXrkZDsl7QNCivsnqXsg4HrtoQNCivsnqXrtInssqANCivsnqXsiJzshJ0NCivsnqXrkZDsnbUNCivsnqXsi5zsmrANCivsnqXshLHtmLgNCivsnqXsi5zsspwNCivsnqXrp4zsiJgNCivsnqXrs7XqtIANCivsnqXsiJjtmLgNCivsnqXsm5DsiJgNCivsnqXrqoXtmLgNCivsnqXtlZnsiJkNCivsnqXsnbztmLgNCivsnqXtg5zshJ0NCivsnqXrr7zsi50NCivsnqXrs5Htm4gNCivsnqXsmIHstpwNCivsnqXsmIHsobANCivsnqXrs5Hqta0NCivsnqXsoJXqtowNCivsnqXsoJXsm5ANCivsnqXsg4HstpwNCivsnqXrs5Hqt5wNCivsnqXsmIHsnqwNCivsnqUg7IiYDQor7J6l7J6s66eMDQor7J6l67OR64yADQor7J6l67aE7JqwDQor7J6l6rWQ6rWQDQor7J6l7JiB7KKFDQor7J6l67OR7IudDQor7J6l7KCV6re8DQor7J6l7ISg7ZWcDQor7J6l6riw7JqwDQor7J6l67OR7JikDQor7J6l7Iic7KeEDQor7J6l7YOc65OdDQor7J6l64qg7J6QDQor7J6l67OR7JqxDQor7J6l7IOB7IiZDQor7J6l6re87Je0DQor7J6l7KCV7IiYDQor7J6l67OR7Jq0DQor7J6l7IiY7JqwDQor7J6l64+Z7J6QDQor7J6l7Jq06rCRDQor7J6l67OR7KSADQor7J6l7Jqp7IudDQor7J6l7KeA66+8DQor7J6l6reA7JikDQor7J6l67OR7LKgDQor7J6l7Iq57Zi4DQor7J6l7ISd7JqwDQor7J6l7ISx7JqwDQor7J6l67OR7ZeMDQor7J6l7LC97YOcDQor7J6l7IOB7ISdDQor7J6l7ISx7YyUDQor7J6l67OR7Zi4DQor7J6l7KCV7ZmYDQor7J6l7J217IudDQor7J6l7KCQ7ISgDQor7J6l67OR7Zi4DQor7J6l6riI7KCVDQor7J6l7Iic6riwDQor7J6l66y07JqpDQor7J6l67O17KeEDQor7J6l7IOB7KeEDQor7J6l7LC97KGwDQor7J6l6rOE66+8DQor7J6l67SJ7J20DQor7J6l7KSR7IiYDQor7J6l7IOB6riwDQor7J6l7Iic7LKgDQor7J6l7IK867O1DQor7J6l66+47IiYDQor7J6l7Zic64yADQor7J6l7ISg6raMDQor7J6l7IK87IigDQor7J6l7KKF7KCVDQor7J6l7Iic7J6sDQor7J6l67OR7KGwDQor7J6l7IK87KGwDQor7J6l6riw7JilDQor7J6l7ZW07ISdDQor7J6l7KKF65OdDQor7J6l7IK87ZmYDQor7J6l7KeE7ZWZDQor7J6l6rWs7JuFDQor7J6l7KCV7IiYDQor7J6l7IOB6riwDQor7J6l7ISx7JqwDQor7J6l7KCV7JqpDQor7J6l7Lmg6ri4DQor7J6l7IOB6riwDQor7J6l7JuQ7LKcDQor7J6l7Jil7ISgDQor7J6l7ZiV7Z2sDQor7J6l7IOB6riwDQor7J6l67aE7ZmYDQor7J6l66eM7KGwDQor7J6l7J2Y7Z2sDQor7J6l7IOB64+EDQor7J6l7IK87ZiVDQor7J6l7J6Q642VDQor7J6l7Zi47LaYDQor7J6l7IOB66qFDQor7J6l6rec6riwDQor7J6l64+Z67KUDQor7J6l6rK97Zi4DQor7J6l7IOB67aADQor7J6l7J6s7LKgDQor7J6l7JiB7IStDQor7J6l7KKF6rOEDQor7J6l7IOB7IudDQor7J6l64+Z67CwDQor7J6l7Zi47JqwDQor7J6l7KO867aEDQor7J6l7IOB7ZWYDQor7J6l7LKg7ISgDQor7J6l642V7Zi4DQor7J6l7J247Z2sDQor7J6l7ISd6riIDQor7J6l66eM6ri4DQor7J6l67OR7J6sDQor7J6l67OR7IudDQor7J6l7ISd7JykDQor7J6l7KKF7IudDQor7J6l64+Z66WgDQor7J6l7KeE67KUDQor7J6l7ISd7KGwDQor7J6l7Iic7KO8DQor7J6l7ISx6rWQDQor7J6l7LKg7J6QDQor7J6l7ISg7IudDQor7J6l7JiB7ISgDQor7J6l7ZWZ642VDQor7J6lIOuegA0KK+yepeyEseq3nA0KK+yepeunkOyLnQ0KK+yepeqyveyEoA0KK+yepeyEuO2YuA0KK+yepeyEseq4sA0KK+yepe2DnOyIoA0KK+yepeuNleuPmQ0KK+yepeuzteq4sA0KK+yepeyEseybhQ0KK+yepeybkOyYgQ0KK+yepeywqOyDgQ0KK+yepeyaqeuPhA0KK+yepeyEseyhsA0KK+yepeyYgeunjA0KK+yepeyiheyWuA0KK+yepeyYge2RnA0KK+yepeyEse2ZmA0KK+yepeyiheyEnA0KK+yepeyasOyVlA0KK+yepeynhOyEoA0KK+yepeyEuOyXtA0KK+yepeyYgeyImQ0KK+yepeyEseyyoA0KK+yepeyVlOyLnQ0KK+yepeyEuOybkA0KK+yepeywveuztQ0KK+yepeuztOyEsQ0KK+yepe2YgeyEnQ0KK+yepeyEuOykkQ0KK+yepeuNleyyoA0KK+yepe2YleyXtA0KK+yepeyImOyLnQ0KK+yepeyGjOq2jA0KK+yepeuRkO2DnA0KK+yepeygkO2YhA0KK+yepeuzke2ZmA0KK+yepeyGjOyEoA0KK+yepeyEneuPmQ0KK+yepe2YhOqzpA0KK+yepeuzke2ZmA0KK+yepeyGjOyInA0KK+yepeuzkeyaqQ0KK+yepeyiheyXsA0KK+yepeuzke2YhA0KK+yepeyGjOy4oQ0KK+yepeygleynhA0KK+yepeyEse2PiQ0KK+yepeyiheyatA0KK+yepeyInOuqhQ0KK+yepeuqheybkA0KK+yepeyEse2ZmA0KK+yepeyyoOu2hA0KK+yepeyInOyEoA0KK+yepSDtmIQNCivsnqXstpjsp4QNCivsnqXsooXrj4QNCivsnqXsiJzsnpANCivsnqXtg5zrs7UNCivsnqXrs5HtlZgNCivsnqXrs7jqsr0NCivsnqXsiJztg5wNCivsnqXsmbjsiJgNCivsnqXsg4HsooUNCivsnqXshLHqs6QNCivsnqXsiJztkZwNCivsnqXslYjtl4wNCivsnqXrqoXsnbQNCivsnqXrtoTqsbQNCivsnqXsiJztnawNCivsnqXqsrjsmqkNCivsnqXqsJHsp4QNCivsnqXshJ3qtowNCivsnqXsirnroZ0NCivsnqXsnqzsnbQNCivsnqXssL3rjIANCivsnqXshJ3rrLgNCivsnqXsirnsmKUNCivsnqXsnZjtmZQNCivsnqXsooXtl4wNCivsnqXsnbjrtoQNCivsnqXsirntmLgNCivsnqXsoJXrr7gNCivsnqXsg4HsnoQNCivsnqXsiJzquLANCivsnqXsi5ztmJwNCivsnqXsoJXrs7UNCivsnqXstpjsi50NCivsnqXsooXrs7UNCivsnqXslYjsnoQNCivsnqXtmIHsmYQNCivsnqXtmITslbwNCivsnqXqtZDssqANCivsnqXsl7Dsi50NCivsnqXstpjquLgNCivsnqXtg5zqt6ANCivsnqXsmIHqt7wNCivsnqXsl7DtmZQNCivsnqXtmITtmIQNCivsnqXsnbztmLgNCivsnqXrr7jshJ0NCivsnqXsmIHqsJENCivsnqXspJHtmLgNCivsnqXslrXso7wNCivsnqXrj5nrs7UNCivsnqXsmIHqtowNCivsnqXrkZDssKwNCivsnqXsooXtm4gNCivsnqXsnKDsi50NCivsnqXsmIHquLANCivsnqXqt5zrjZUNCivsnqUg7IiYDQor7J6l67OR7Z2sDQor7J6l7JiB6ri4DQor7J6l66qF66CoDQor7J6l67OR67ORDQor7J6l7Iq57KGwDQor7J6l7JiB64+EDQor7J6l64+Z6rSADQor7J6l7KSR6raMDQor7J6l7ZWc6recDQor7J6l7JiB67O1DQor7J6l64KZ7Z2lDQor7J6l7Jm46recDQor7J6l7LCs6ri4DQor7J6l7JiB7IOBDQor7J6l7KKF7JqpDQor7J6l7ZiE7JiBDQor7J6l6rK966GADQor7J6l7JiB7IiYDQor7J6l7LC97J20DQor7J6l7Jik6riwDQor7J6l7KO87KGwDQor7J6l7JiB7J6RDQor7J6l64+E7IudDQor7J6l7JiB7LKcDQor7J6l67OR7ZiEDQor7J6l7JiB7KO8DQor7J6l7ISx7IudDQor7J6l7IOB64+EDQor7J6l7ZmN7IudDQor7J6l7JiB7ZmYDQor7J6l7JiB7ISxDQor7J6l7KCV7ZmYDQor7J6l7YOc66GdDQor7J6l7JiB7Z2sDQor7J6l7Jik7ISgDQor7J6l67OR7JuFDQor7J6l67OR7IudDQor7J6l7Jil7IOBDQor7J6l7IaM7J6QDQor7J6l66eM7Z2sDQor7J6l64+E6rK9DQor7J6l7Jil7IicDQor7J6l7JiB7Z2sDQor7J6l7KCV7Zi4DQor7J6l7Jyk6raMDQor7J6l7Jil7IicDQor7J6l7Iic7ZmYDQor7J6l7J6s7KeEDQor7J6l7KCV7J20DQor7J6l7Jm47J6QDQor7J6l7Lmg7Jq0DQor7J6l7KCV656ADQor7J6l7Jyg7JewDQor7J6l7Jqp7ZiEDQor7J6l7JiB7Zi4DQor7J6l7IiY7IiZDQor7J6l7Jqx7ISxDQor7J6l7Jqp7Zi4DQor7J6l7IiY6rWsDQor7J6l7Jes7KO8DQor7J6l7IOB7IiZDQor7J6l7Jqw7LacDQor7J6l7JuQ7J6sDQor7J6l7J247KKFDQor7J6l6riw6rSADQor7J6l7Jq067SJDQor7J6l7JiB7IudDQor7J6l7LKt7IiYDQor7J6l7IOB6rK9DQor7J6l7Jq07JqpDQor7J6l7Zi46rG0DQor7J6l64yA7ISdDQor7J6l64W47KCVDQor7J6l7Jq07JqpDQor7J6l7Iic7Je0DQor7J6l7ISg7Z2sDQor7J6l7ISg7ISdDQor7J6l7Jq07JqpDQor7J6l6riI67SJDQor7J6l7IOB7IStDQor7J6l7Jik6recDQor7J6l7JuQ7IudDQor7J6l7Ja47ZmYDQor7J6l7YOc7KO8DQor7J6l7KCQ642VDQor7J6l7JuQ7Je0DQor7J6l7J6l7LacDQor7J6l7ISg67SJDQor7J6l7IaM7KSADQor7J6l7JuQ7J6sDQor7J6l64+Z7IK8DQor7J6l642V7IicDQor7J6l67O07IiYDQor7J6l7JuU7IigDQor7J6l66eM7IOBDQor7J6l7ZWc7ZmYDQor7J6l7Iq57JqwDQor7J6l7Jyh66y4DQor7J6l7JuQ7Zi4DQor7J6l7ZWc7J28DQor7J6l7KCV7Zi4DQor7J6l7Jyk64+MDQor7J6l66qF66y4DQor7J6l7IiZ64+EDQor7J6l7J6s6rOkDQor7J6l7Jyo7J20DQor7J6l7LCs6re8DQor7J6l7LKt6rWtDQor7J6l6rec6ri4DQor7J6l7J2E6rK9DQor7J6l7ZeM6raMDQor7J6l7Jew7J21DQor7J6l7ISg7JqwDQor7J6l7J2E7ISxDQor7J6l6rec7IicDQor7J6l7KCQ7IiYDQor7J6l7ISx7IicDQor7J6l7J2E7IigDQor7J6l64+Z66y4DQor7J6l7YOc7ZiEDQor7J6l7JiB7IudDQor7J6l7J2E7IudDQor7J6l7Ja47Zi4DQor7J6l7YyQ64+ZDQor7J6l7KCV7JqpDQor7J6l7J217JqpDQor7J6l7IOB66eMDQor7J6l6rSR7IudDQor7J6l7KCV66eMDQor7J6l7J247ISdDQor7J6l7KeE7KGwDQor7J6l7J217YOcDQor7J6l7Z2s7KCVDQor7J6l7J247IudDQor7J6l66eM7J6sDQor7J6l7YOc7JqpDQor7J6l7IOB656ADQor7J6l7J247ZWZDQor7J6l7ZiE65+JDQor7J6l64W464yADQor7J6l7ZiE7YOcDQor7J6l7J6R7KeADQor7J6l7ZmN6rK9DQor7J6l7IOB7YOcDQor7J6l6reA7IudDQor7J6l7J6s66eMDQor7J6l65GQ64+ZDQor7J6l642V6riwDQor7J6l7ZiE64+MDQor7J6l7J6s66eMDQor7J6l7JiB66GdDQor7J6l67OR6raMDQor7J6l7Jyk7Zi4DQor7J6l7J6s7ISxDQor7J6l642V7JqpDQor7J6l7ISd7Zi4DQor7J6l7IK87J20DQor7J6l7J6s7IudDQor7J6l7KKF7Z2sDQor7J6l7KKF656ADQor7J6l7YyQ7JuFDQor7J6l7J6s7IudDQor7J6l7IyN6rSRDQor7J6l7Z2s7ZmNDQor7J6l7ISx7J20DQor7J6l7J6s7IudDQor7J6l7Z2s7ISxDQor7J6l7Jqw7JilDQor7J6l7Iic64KoDQor7J6l7J6s7ZWZDQor7J6l7ZiE7Zi4DQor7J6l7Jqp7ZmUDQor7J6l7J207ZqMDQor7J6l7KCQ64+EDQor7J6l64Ko7ZalDQor7J6l7J6s7IiZDQor7J6l7Jm47KGwDQor7J6l7KCQ7IiYDQor7J6l7KCV6raMDQor7J6l7YOc7YOcDQor7J6l6rSR64KoDQor7J6l7KCV7ISdDQor7J6l7IaM7ZmUDQor7J6l7Jew7KSRDQor7J6l7ISx642VDQor7J6l7KCV7ISdDQor7J6l7KCV6rWsDQor7J6l7Jyk6rWsDQor7J6l7KSA64+MDQor7J6l7KCV7IiZDQor7J6l66eQ66GcDQor7J6l7IiY7JqwDQor7J6l7Iic7LKcDQor7J6l7KCV7IicDQor7J6l7ISx7ZqMDQor7J6lIOq0kQ0KK+yepeyduOyEnQ0KK+yepeygleyInA0KK+yepeq4sO2dlA0KK+yepeyYge2YgQ0KK+yepeyerOq4uA0KK+yepeygleyaqQ0KK+yepeyEuOqyvQ0KK+yepeuCqOuhnQ0KK+yepeq3gOq4uA0KK+yepeygleyekA0KK+yepeyDgeybhQ0KK+yepeygleyEnA0KK+yepeychOqyvQ0KK+yepeygle2YuA0KK+yepeyYgeqwkQ0KK+yepe2XjOyLoA0KK+yepeuPmeyErQ0KK+yepeygle2drA0KK+yepeyImOyaqQ0KK+yepeykgOyImQ0KK+yepeycpOycoA0KK+yepeyiheqyvQ0KK+yepeyduOyKuQ0KK+yepeyDge2YuA0KK+yepeyerO2DnQ0KK+yepeyiheyLnQ0KK+yepe2DnOyjvA0KK+yepeyerOy2nA0KK+yepeyImO2WpQ0KK+yepeyihe2ZmA0KK+yepe2VtO2ZlA0KK+yepeunjOuylA0KK+yepeqxtOuMgA0KK+yepeykgOq4sA0KK+yepeq1reydvA0KK+yepeuzte2YuA0KK+yepe2DnOyekA0KK+yepeykgOuPmQ0KK+yepSDsnpANCivsnqXsoJXquLANCivsnqXqsr3siJwNCivsnqXspIDsg4ENCivsnqXqtJHtmZgNCivsnqXrr7jsiJkNCivsnqXsooXsi50NCivsnqXsp4DtmIQNCivsnqXsg4HstpwNCivsnqXquLDsiJwNCivsnqXsiJnrprwNCivsnqXsp4TtmLgNCivsnqXtlbTso7wNCivsnqXsoJXtmY0NCivsnqXsmIHqsJENCivsnqXssKjsi50NCivsnqXshozsnoQNCivsnqXsp4TtnawNCivsnqXtjJTtnawNCivsnqXssL3siJgNCivsnqXsnbjsmKUNCivsnqXsnqzsi50NCivsnqXquLDrsLENCivsnqXssL3smIENCivsnqXsmqnsmrANCivsnqXsooXso7wNCivsnqXshLHtlZwNCivsnqXssL3sobANCivsnqXspIDqs6QNCivsnqXsgrztmLgNCivsnqXsi6DshJ0NCivsnqXssL3tmZgNCivsnqXsiJjri4gNCivsnqXtmZjshK0NCivsnqXssL3tlZkNCivsnqXsspzsiJgNCivsnqXqt5zsiJgNCivsnqXsmqntg4ENCivsnqXrs7Xqt6ANCivsnqXssqDquLANCivsnqXtg5zsi50NCivsnqXssKjtnawNCivsnqXrrLTshowNCivsnqXssqDsi50NCivsnqXslpHsm5ANCivsnqXqt5zsiJkNCivsnqXsooXshK0NCivsnqXstqnqt6ANCivsnqXtl4zsoJUNCivsnqXtnazquLANCivsnqXsmqnshJ0NCivsnqXsuZjtmIENCivsnqXrqoXtlZkNCivsnqXqt7zspJENCivsnqXsmIHsiJgNCivsnqXtg5zqtowNCivsnqXsooXtg5wNCivsnqXshLHsmrANCivsnqXrs5HsobANCivsnqXtg5zqtowNCivsnqXsi53si50NCivsnqXssYTsnpANCivsnqXsp4Tsi50NCivsnqXtg5zrs7UNCivsnqXsnbzslaANCivsnqXrs5HslaANCivsnqXsnYDtmLgNCivsnqXtg5zshLENCivsnqXshKDqt7wNCivsnqXssYTsnpANCivsnqXsiJzsg4ENCivsnqXtg5ztnawNCivsnqXsoJXshJ0NCivsnqXsoJXspIANCivsnqXsoJXsobANCivsnqXtjJDrj4wNCivsnqXsiJzsobANCivsnqXsmqnsiJgNCivsnqXquIjsuZgNCivsnqXtlZnsiJgNCivsnqXsiJnsi50NCivsnqXsmqntg5wNCivsnqXtlZjtmZgNCivsnqXtlZnsnbQNCivsnqXtg5zsmIENCivsnqXsg4Hro6ENCivsnqXrp4ztnawNCivsnqXtlZnsobANCivsnqXsnqzsiKANCivsnqXsmrDsnbQNCivsnqXsnqzsl7ANCivsnqXtlbTspIANCivsnqXssYTrjZUNCivsnqXsp4TqtowNCivsnqXsoJXsl7QNCivsnqXtmITsiJkNCivsnqXqtJHsiJkNCivsnqXtlbTri6wNCivsnqXquLDrj4QNCivsnqXtmITsi50NCivsnqXsp4TtmZgNCivsnqXtl4zshKANCivsnqXsirnsmIENCivsnqXtmJXtnawNCivsnqXtmITtmZgNCivsnqXqtZDtnawNCivsnqXquLDsi50NCivsnqXtmLjsiJwNCivsnqXrp4zsmrENCivsnqXrs5HtmLgNCivsnqUg7ZmYDQor7J6l7ZmN7IudDQor7J6l67SJ6recDQor7J6l7YOc7Zy0DQor7J6l6riw7IStDQor7J6l7ZmN7KeEDQor7J6l7J6s7IukDQor7J6l7ZWc6recDQor7J6l7JiB7JiBDQor7J6l7ZqM7IOBDQor7J6l7JiB67KUDQor7J6l64yA64+ZDQor7J6l64yA7Zi4DQor7J6l7ZuI7IudDQor7J6l7J2464KoDQor7J6l7YOc7JqwDQor7J6l65GQ7KSRDQor7J6l7ZyY7KeADQor7J6l7Jew67O0DQor7J6l7J6s7IudDQor7J6l7KCQ7ISgDQor7J6l7Z2s6recDQor7J6l7KCQ7JqwDQor7J6l66qF67O0DQor7J6l6rK97KGwDQor7J6l7Z2s7J6QDQor7J6l7Jik7KO8DQor7J6l6rO17JuQDQor7J6l64KZ7KCVDQor7J6l7Z2s7LKgDQor7J6l7J6s6recDQor7J6l7KSA7JWUDQor7J6l7Jil7IiYDQor7J6l7Z2s7ZiEDQor7J6l7IiY7Zi4DQor7J6l7ZeM7KeEDQor7J6l7JiB7ZiEDQor7KCE6rCR642VDQor7KCE7ZiV67ORDQor7KCE6riI7ISgDQor7KCE7Iic7J21DQor7KCE6rCR642VDQor7KCE7JuQ67SJDQor7KCE6ri47ISdDQor7KCE7Jew6raMDQor7KCE6rCR7IudDQor7KCE7JiB7JuQDQor7KCE7J247KO8DQor7KCE7KKF7LKgDQor7KCE6rCR7KSADQor7KCE7J287IicDQor7KCE6rSR642VDQor7KCE7KKF7ZmYDQor7KCE6rCV7IiYDQor7KCE7ZWY7ZmUDQor7KCE7Z2s7JilDQor7KCE64yA7JuQDQor7KCE6rCV7J28DQor7KCE6rCR7JiBDQor7KCE7J247ZalDQor7KCE7ZmN7YOdDQor7KCE6rCV7Zi4DQor7KCE6ri47LKgDQor7KCE7ZWE67SJDQor7KCE7ISx64KoDQor7KCE6rK966CoDQor7KCE64us7KO8DQor7KCE7YOc7JuFDQor7KCE7IK86rK9DQor7KCE6rK967CwDQor7KCE642V7IS4DQor7KCE6ri47ZmUDQor7KCE7Jqp7IicDQor7KCE6rK967CwDQor7KCE64Kc7JilDQor7KCE7YOc6riIDQor7KCE7Iug7JiBDQor7KCE6rK97IudDQor7KCE7IS47ISgDQor7KCE7KCQ7LKgDQor7KCE7KCV7ISxDQor7KCE6rK97IudDQor7KCE7ZmU7IigDQor7KCE6rWs7LKgDQor7KCE7ISx6rK9DQor7KCE6rK97JWgDQor7KCE7YOc7LKgDQor7KCE7KKF7KGwDQor7KCE7IOB66OhDQor7KCE6rK97YOcDQor7KCE7Iug7Zi4DQor7KCE7Jqp6raMDQor7KCE7ISx7LKgDQor7KCE6rK97ZGcDQor7KCE7J6s7IiYDQor7KCE7J2R7Zi4DQor7KCE6rK96raMDQor7KCE6rK97Zi4DQor7KCE7J6s7ZWZDQor7KCE7Iic7JilDQor7KCE7Jik7KSADQor7KCE6rK97Z2sDQor7KCE7Z2s67SJDQor7KCE7KKF6rSRDQor7KCE64yA7IOBDQor7KCE6rOE7IicDQor7KCE66qF7IudDQor7KCE64+Z642VDQor7KCE7YOd7J6sDQor7KCE6rOE7IigDQor7KCE65GQ6riwDQor7KCE7ISx7LKgDQor7KCE7KO87JiBDQor7KCE6rOh67aEDQor7KCE67aA64+ZDQor7KCE7J6s7KO8DQor7KCE7ZiE7IigDQor7KCE6rO17ISdDQor7KCE6rWQ7J6EDQor7KCE7IaM7JqwDQor7KCE66eQ67aEDQor7KCE6rSR7IudDQor7KCE6riw7KSADQor7KCE7ZW07IiYDQor7KCE7IOB7JykDQor7KCE6rec7ISxDQor7KCE7JiB6riwDQor7KCE7ZmN7JuQDQor7KCE7KCV7JykDQor7KCE6rec7LKgDQor7KCE6riw7LKgDQor7KCE7Lmg7LKcDQor7KCE6rec7J20DQor7KCE6re87IudDQor7KCE7KCV7JilDQor7KCE7Jqp7JqxDQor7KCE7ISx7JiBDQor7KCE6riw67KUDQor7KCE6riw7Zi4DQor7KCE7JiB7JqwDQor7KCE6rec66qFDQor7KCE6riw7ISdDQor7KCE6rG07IK8DQor7KCE66qF7JilDQor7KCE7ISx7J6EDQor7KCE6riw7ISdDQor7KCE66+87IigDQor7KCE7ISd6rWtDQor7KCE64+E7KKFDQor7KCE6riw7KSADQor7KCE7KCV7IiYDQor7KCE6rec7J6QDQor7KCE7JiB642VDQor7KCE6riw7LCsDQor7KCE7KO87ZWcDQor7KCE7JiB7ZalDQor7KCE67OR6ri4DQor7KCE6riw7LacDQor7KCE7IiY7Zi4DQor7KCE7ZWc64WVDQor7KCE7J6s6riwDQor7KCE6riw7ZiEDQor7KCE7J6E7Jq0DQor7KCEIOuegA0KK+yghOuzke2ZlA0KK+yghOq4sO2ZjQ0KK+yghOyaqeq1rQ0KK+yghOygkO2YhA0KK+yghO2DnOq4sA0KK+yghOq4sO2ZjQ0KK+yghOyjvOyekA0KK+yghOyerOyYgQ0KK+yghOuCqO2ZmA0KK+yghOq4sO2ZmA0KK+yghOyYgeykgA0KK+yghO2YhOyXtA0KK+yghOu0ieqyvQ0KK+yghOq4uOyXsA0KK+yghOyerOyImQ0KK+yghOuPmeyYpQ0KK+yghOykgOyImQ0KK+yghOuLrOyaqQ0KK+yghOyYpeuTnQ0KK+yghOyEoO2DgQ0KK+yghOyxhOyekA0KK+yghOuMgOuRkA0KK+yghOuqheyVhQ0KK+yghOyYgeyYgQ0KK+yghOyduO2YuA0KK+yghOuMgOyLnQ0KK+yghOydmOq3nA0KK+yghOyiheyWkQ0KK+yghOygleydvA0KK+yghOuMgOyLnQ0KK+yghOyDgeuPmQ0KK+yghO2VtOyXhQ0KK+yghOyYpOyLnQ0KK+yghOunkOyXsA0KK+yghO2XjOyyoA0KK+yghOyerO2ZmA0KK+yghOynhOq4sA0KK+yghOuqheyEnQ0KK+yghOuLrOyImQ0KK+yghOyInOyasA0KK+yghOydtOuPjA0KK+yghOuqheyImA0KK+yghOqwleyXsA0KK+yghOynhO2YhA0KK+yghOuPmeyekA0KK+yghOuqhe2YuA0KK+yghOuzkeuNlQ0KK+yghOyEneyImA0KK+yghOyKueynhA0KK+yghOusuOyLnQ0KK+yghOyYgeusuA0KK+yghOywveqwlQ0KK+yghOuzkeyhsA0KK+yghOusuOy2nA0KK+yghOyiheydtA0KK+yghOyWkeqzpA0KK+yghOykke2ZjQ0KK+yghOusuO2PiQ0KK+yghOyynOuPmQ0KK+yghOyEuOq4iA0KK+yghOq0keyyoA0KK+yghOusuO2YuA0KK+yghOyihe2DnQ0KK+yghOyngOuNlQ0KK+yghOyDge2YuA0KK+yghOuvuOynhA0KK+yghOyEseyXtA0KK+yghOynhO2ZmA0KK+yghO2ZjeuPmQ0KK+yghOuzkeq4sA0KK+yghOyekOuPmQ0KK+yghOyInOyXsA0KK+yghOygleyLnQ0KK+yghOuzkeq4uA0KK+yghOyImOyEsQ0KK+yghOybkOyhsA0KK+yghO2VmOyehA0KK+yghOuzkeuLrA0KK+yghOybkOy5oA0KK+yghOyWuOyInA0KK+yghOygleyImA0KK+yghOuzkeuMgA0KK+yghOy2qeyImQ0KK+yghO2MkOyEoA0KK+yghOuzkeyEnQ0KK+yghOuzkeuRkA0KK+yghOuRkO2YhA0KK+yghOywrOq1rA0KK+yghOq3nOykgA0KK+yghOuzkeumvQ0KK+yghOydgOyEsQ0KK+yghOuLrOuztQ0KK+yghOyYgeywrA0KK+yghOuzkeuqqQ0KK+yghOyyoOuNlQ0KK+yghOuzkeuwsA0KK+yghOyEseyasA0KK+yghOuzkeustA0KK+yghOyEse2DnA0KK+yghOyImOyerA0KK+yghOyDgeyImA0KK+yghOuzkeyEnQ0KK+yghOuylOyyrQ0KK+yghOyDgeyynA0KK+yghOyaqe2ajA0KK+yghOuzkeyErQ0KK+yghOuPmeyaqQ0KK+yghOyInOyyoA0KK+yghOyDgeyInA0KK+yghOuzkeyImA0KK+yghOq0keyImA0KK+yghOyaqe2DnA0KK+yghO2PieyYgQ0KK+yghOuzkeyInA0KK+yghOustO2YhA0KK+yghOyInOumhA0KK+yghCDshKANCivsoITrs5HsiJwNCivsoITsirntlYQNCivsoITsnqzrr7wNCivsoITrjIDsg4ENCivsoITrs5Hsi50NCivsoITqtazrp4wNCivsoITssL3shJ0NCivsoITsmIHtlYQNCivsoITrs5HsmKUNCivsoITsiKDsobANCivsoITrr7jshJ0NCivsoITshLHtmY0NCivsoITrs5HsmKUNCivsoITrjZXsobANCivsoITrs7Xsi50NCivsoITri6Tqt5wNCivsoITrs5HsmqkNCivsoITrs5Hqt5wNCivsoITsiJzsl7ANCivsoITtlZzrnb0NCivsoITrs5HsmqkNCivsoITsmKXrjZUNCivsoITsoJDsmKQNCivsoITrs5Hrj5kNCivsoITrs5HsmrENCivsoITsiJzsoJwNCivsoITsnKTtjJQNCivsoITsmIHshJ0NCivsoITrs5Hsm5ANCivsoITtg5zsiJkNCivsoITslrXsiJgNCivsoITshLHqt5wNCivsoITrs5Hsm5ANCivsoITquIjtmLgNCivsoITsmrDtnawNCivsoITsnoTtm4gNCivsoITrs5HsnoUNCivsoITrjIDsp4QNCivsoITtmJXtmLgNCivsoITsg4HslpENCivsoITrs5Hso7wNCivsoITsl7DquLANCivsoITquLDtlqUNCivsoITsoJXtmZgNCivsoITrs5HspIANCivsoITqsr3shLENCivsoITrtInsiJgNCivsoITsoJXsl7ANCivsoITrs5HssL0NCivsoITsiJzsmKUNCivsoITrjIDrs7UNCivsoITsmqntmZQNCivsoITrs5HsspwNCivsoITshJ3rrLQNCivsoITsnbzsnZgNCivsoITtlZjrj4QNCivsoITrs5HssqANCivsoITtjJDqt6ANCivsoITrtoDrtIkNCivsoITtmY3smIENCivsoITrs5Htg4ENCivsoITsmIHsmqkNCivsoITsoJXrp4wNCivsoITtg5ztnawNCivsoITrs5Htg5wNCivsoITtjJDsm4UNCivsoITssqDsiJgNCivsoITsoJXtlqUNCivsoITrs5Htg50NCivsoITrtInsnbwNCivsoITtg5zsiJwNCivsoITsvozsi50NCivsoITrs5Htg50NCivsoITsmIHsobANCivsoITsl7DroZ0NCivsoITshLHrs7UNCivsoITrs5HtmIENCivsoITsnbzsmrANCivsoITqtJHsi50NCivsoITtg5zqt5wNCivsoITrs5HtmLgNCivsoITtl4ztmLgNCivsoITtg5zquLgNCivsoITsnKTrgqgNCivsoITrs5HtmZQNCivsoITtg5ztj4kNCivsoITtnazsnpANCivsoITsooXsnbQNCivsoITrs5HtmZgNCivsoITsooXspIANCivsoITrj5nsnpANCivsoITtlbTrsLANCivsoITrs5HtnLQNCivsoITqtJHtm4gNCivsoITsg4HquLANCivsoITqsJXsl7ANCivsoITrs7TsiJgNCivsoITrj5nsi50NCivsoITtmITsiJwNCivsoITsnbjssqANCivsoITrtInqtowNCivsoITsoJDsiJkNCivsoITsmqnshJ0NCivsoITsnqztlZkNCivsoITrtInsiJgNCivsoITqsJXrs7QNCivsoITtmITslZQNCivsoITsooXsi50NCivsoITrtoTsiKANCivsoITsiJzrgqgNCivsoITrqoXrk50NCivsoITsiJjtnawNCivsoITsgqzqsr0NCivsoITqsr3tnawNCivsoITspIDtmY0NCivsoITrjIDshK0NCivsoITsgrzrjZUNCivsoITsmqntmLgNCivsoITspIDsnbQNCivsoITsp4TsmqkNCivsoITsgrzsiJgNCivsoITsg4Hrs7UNCivsoITsg4HrjIANCivsoITsm5DsmqkNCivsoITsgrzstpwNCivsoITssq3tmLgNCivsoITsmqnsobANCivsoITrqoXquLgNCivsoITsgrztmIQNCivsoITsp4Tsm5ANCivsoITrj4Tsg4ENCivsoITtg5ztmLgNCivsoITsgrztmIQNCivsoITtg5zsobANCivsoITsmrDqt5wNCivsoITtmITtnawNCivsoITsg4Hri6gNCivsoITsnqXsiJgNCivsoITrqoXtg50NCivsoITsmKXsm4UNCivsoITsg4Hrpr0NCivsoITsg4Hqsr0NCivsoITshLHsnbwNCivsoITsm5TsiJkNCivsoITsg4HrtIkNCivsoITrs5Hrp4wNCivsoITshKDrs7UNCivsoITsg4HroKgNCivsoITsg4HsmrANCivsoITtlbTshLENCivsoITsp4DsnpANCivsoITsooXsnbwNCivsoITsg4HsmrQNCivsoITqtozsg4ENCivsoITtg5ztnawNCivsoITsoJXqsbQNCivsoITsg4HsmrQNCivsoITsiJjsmrANCivsoITsg4HsmIENCivsoITso7zsp4QNCivsoITsg4HsobANCivsoITssL3spJENCivsoITqt4DsnpANCivsoITsiJjsiJwNCivsoITsg4HspIANCivsoITrk53qsJENCivsoITshJ3ssqANCivsoITqtZDtnLQNCivsoITsg4HssqANCivsoITsg4HtmIQNCivsoITslrjshKANCivsoITsm5DtmLgNCivsoITsg4HtmZgNCivsoITrr7jtmLgNCivsoITsnKTsmrENCivsoITshLHsiJgNCivsoITshJ3rqqgNCivsoITsiJjquLANCivsoITsl7TqtIANCivsoITsg4Hsl7QNCivsoITshJ3shLENCivsoITrjZXslaANCivsoITsmqnsnbQNCivsoITshLHsi50NCivsoITshJ3so7wNCivsoITsnbzqtowNCivsoITssL3tg5wNCivsoITsnYDsl7QNCivsoITshKDtmIQNCivsoITqt5zsi50NCivsoITtg5ztmZgNCivsoITsspztmIQNCivsoITshLHqs6QNCivsoITrjIDruYgNCivsoITsooXtg5wNCivsoITrj5ntmIQNCivsoITshLHrsLANCivsoITsmIHsmYQNCivsoITsoJXsiJgNCivsoITsoJXsmqkNCivsoITshLHrsLANCivsoITqsr3sm5ANCivsoIQg7IiYDQor7KCE6riw7Je0DQor7KCE7ISx7JqpDQor7KCE66m07KCVDQor7KCE7IOB7ZiEDQor7KCE7Z2l7KO8DQor7KCE7ISx7Z2sDQor7KCE7Jqp7IStDQor7KCE7IaM7KeBDQor7KCE7ZW07KeEDQor7KCE7IaM7JewDQor7KCE67O17J20DQor7KCE7YOc7IudDQor7KCE7IiY642VDQor7KCE7IaM7JiBDQor7KCE7J6s7JilDQor7KCE7ZW06riwDQor7KCE6re87ZmYDQor7KCE7IiY6re8DQor7KCE7ISg7J6QDQor7KCE7Jyk66qFDQor7KCE7J287JuQDQor7KCE7IiY65OdDQor7KCE7JiB7ZmYDQor7KCE7Zi47ISxDQor7KCE7IiY66qFDQor7KCE7IiY7IudDQor7KCE7J6s7IiZDQor7KCE66y07IiYDQor7KCE7Z2s7ISgDQor7KCE7IiY7JqpDQor7KCE6rK97ZWcDQor7KCE66y47J6QDQor7KCE66qF67O1DQor7KCE7IiY7ZWZDQor7KCE7IS46ri4DQor7KCE7IiY67mIDQor7KCE7KCV66a9DQor7KCE7IiY7ZWZDQor7KCE642V67SJDQor7KCE7J2A7J6EDQor7KCE7KCV7LKgDQor7KCE7IiY7ZiEDQor7KCE7IOB7YOcDQor7KCE7J247ZiEDQor7KCE7Jqx7Zi4DQor7KCE7IiY7ZmYDQor7KCE7IaM7ISgDQor7KCE7KSR7LKcDQor7KCE7IK87J6lDQor7KCE7IiY7ZmYDQor7KCE7J6l7IudDQor7KCE67OR7Zi4DQor7KCE7KKF7ISxDQor7KCE7IiZ7J6QDQor7KCE7KKF7ZmYDQor7KCE7JaR64+ZDQor7KCE7J6s6rOkDQor7KCE7Iic64uoDQor7KCE6rK967aADQor7KCE66y47JqpDQor7KCE7Jqw7YOcDQor7KCE7Iic65OdDQor7KCE6rWt7IiYDQor7KCE7IiY7J6lDQor7KCE7KSA66asDQor7KCE7Iic7JewDQor7KCE64+Z7IiYDQor7KCE6rCV7JiBDQor7KCE7IyN7IiZDQor7KCE7Iic7J6QDQor7KCE7YOc7JqpDQor7KCE67OR64+MDQor7KCE7KCV7KeEDQor7KCE7Iic7LGEDQor7KCE7LaY6rWsDQor7KCE7IK87ZWcDQor7KCE7YyQ7IudDQor7KCE7IyN6re8DQor7KCE7JiB7IiZDQor7KCE6rSR7Ja4DQor7KCE7IiY6riwDQor7KCE7IyN7IiYDQor7KCE7ZW07JqpDQor7KCE7LC97JuQDQor7KCE67OR6529DQor7KCE7Jew7J20DQor7KCE7Iq57IudDQor7KCE7IiY7YOcDQor7KCE7JiB7ZiEDQor7KCE7JiB6regDQor7KCE7J6s7Zi4DQor7KCE7J286rWsDQor7KCE7LmY7IOBDQor7KCE7JiB6regDQor7KCE7LCs6regDQor7KCE6rK9642VDQor7KCE7KO87JykDQor7KCE7JiB6riwDQor7KCE67O16ri4DQor7KCE7YOc6raMDQor7KCE6riw7LKcDQor7KCE7JiB642VDQor7KCE7KCQ7JaRDQor7KCE6riw67SJDQor7KCE6rSR7IiZDQor7KCE7JiB66GdDQor7KCE7IiY7IudDQor7KCE7KCV6re8DQor7KCE7LCs7JuQDQor7KCE7JiB7IK8DQor7KCE7JuQ7Zi4DQor7KCE7KeA7LaYDQor7KCE7JuQ7JilDQor7KCE7JiB7ISdDQor7KCE7YOc656YDQor7KCE7Jqp7ZWYDQor7KCE7LKg7YyUDQor7KCE7JiB7JqwDQor7KCE7ZyY7IudDQor7KCE7LC96rOkDQor7KCE64yA6re5DQor7KCE7JiB7J6QDQor7KCE7JiB7JewDQor7KCE7Jyk7IiYDQor7KCE7KKF7KCVDQor7KCE7JiB7KKFDQor7KCE7IiY7IudDQor7KCE7Lap7ISgDQor7KCE7YOc7Z2sDQor7KCE7JiB7LGEDQor7KCE7ZiE7Zi4DQor7KCE7YOc67aADQor7KCE6rSR7KeEDQor7KCE7JiB7YOBDQor7KCE7ZeM6raMDQor7KCE7ISd7IiZDQor7KCE64+Z66y4DQor7KCE7JiB7YyQDQor7KCE7IK87Zi4DQor7KCE7ZiV7LaYDQor7KCE7KCV7IiZDQor7KCE7JiB7Zi4DQor7KCE7J6s7Jq0DQor7KCE7KCV6rWsDQor7KCE7JiB7ZicDQor7KCE7JiB7ZmUDQor7KCE7Jyk7ISdDQor7KCE7KSR7ISdDQor7KCE7LaU7ISdDQor7KCE7JiB7ZmUDQor7KCE7KKF7LKgDQor7KCE64yA6raMDQor7KCE6rK97JiBDQor7KCE7JiB7ZmYDQor7KCE66eM7IudDQor7KCE64+Z7LKgDQor7KCE7YyQ7ZuIDQor7KCE7JiB7Z2sDQor7KCE7LaY7ISdDQor7KCE7J6l64KoDQor7KCE6rK964+ZDQor7KCE7Jik7LacDQor7KCE66eM7J6QDQor7KCE7IaM6riwDQor7KCE7IOB6riIDQor7KCE7Jil67SJDQor7KCE7ISd67CwDQor7KCE642V7J6QDQor7KCE7Iq57LKgDQor7KCE7Jil7ISxDQor7KCE7KKF7JykDQor7KCE7KO87KO8DQor7KCE6rCV7KO8DQor7KCE7Jil7IicDQor7KCE7IiY642VDQor7KCE7J6s7IicDQor7KCE7IOB7J6EDQor7KCE7JmE7ISdDQor7KCE67OR7KeEDQor7KCE7ISd7IicDQor7KCE7J6s7Z2sDQor7KCE7Jm47LacDQor7KCE7Jqp6regDQor7KCE66+47ISgDQor7KCE6riw7JqwDQor7KCE7Jqp6riwDQor7KCE7IiY7JilDQor7KCE7JiB7ISxDQor7KCE6riw64+MDQor7KCE7Jqp7ISdDQor7KCE6rec6recDQor7KCE642V7ISxDQor7KCE7ISx64+ZDQor7KCE7Jqp7IiYDQor7KCE66qF7LKgDQor7KCE7KCV7ISdDQor7KCE7KCQ65OdDQor7KCE7Jqp7KCcDQor7KCE6rK97IiYDQor7KCE67OR7ZWcDQor7KCE7JiB7KKFDQor7KCE7Jqp7LGEDQor7KCE7ISx7ISgDQor7KCE7KO86recDQor7KCE7YOc7IiZDQor7KCE7Jqp7Zi4DQor7KCE7KCV67O1DQor7KCE67OR7Zy0DQor7KCE66qF7ISgDQor7KCE7Jqp7ZqoDQor7KCE642V7Z2sDQor7KCE7KeE7JqpDQor7KCE66y06rG0DQor7KCE7Jqp7Z2sDQor7KCE7J6E67O1DQor7KCE7LC97J6sDQor7KCE7JiB7JuQDQor7KCE7Jqw7IiYDQor7KCE7KKF64yADQor7KCE7ISd7ZmYDQor7KCE642V7JiBDQor7KCE7Jqw7KeEDQor7KCE7JiB7KSADQor7KCE67KU7JiBDQor7KCE7JiB7IicDQor7KCE7Jqx64KoDQor7KCE7Jyg7IicDQor7KCE7YOc7IicDQor7KCE7J287Je0DQor7KCE7JuQ6ri4DQor7KCE7YOc7Zi4DQor7KCE7LC97J28DQor7KCE65GQ7ZicDQor7KCE7JuQ7ISdDQor7KCE7ZW07ZmYDQor7KCE7Jqp7LKgDQor7KCE64yA7Z2sDQor7KCE7JuQ7KKFDQor7KCE7IiY7IicDQor7KCE7IOB7IicDQor7KCE67O17IiYDQor7KCE7JuQ7KSRDQor7KCE7IiY67aEDQor7KCE7JiB67O0DQor7KCE7IiY7J28DQor7KCE7Jyk642VDQor7KCE7LaY7YOcDQor7KCE7ISx7ZmYDQor7KCE67O07LC9DQor7KCE7Jyk7IOBDQor7KCE7J2A7Zi4DQor7KCE7ZmU7KCVDQor7KCE67OR6rSRDQor7KCE7Jyk7LacDQor7KCE6rK97ISgDQor7KCE7J287ZmYDQor7KCE7KSA7J6QDQor7KCE7Jyk7YOcDQor7KCE7ZiE7IiYDQor7KCE7LaY7J6QDQor7KCE66eM7Zi4DQor7KCE7J2A6re8DQor7KCE66eQ66y4DQor7KCE7Jyk7ZmYDQor7KCE7Jyh6riwDQor7KCE7J2E66qoDQor7KCE7Jqp64KoDQor7KCE7JuU7JqpDQor7KCE7Kad7KeEDQor7KCE7J2E7IOBDQor7KCE67SJ7LacDQor7KCE7ZyY7Je0DQor7KCE7JiB6recDQor7KCE7J2E7IicDQor7KCE7ZWY7Je0DQor7KCE7LaY6raMDQor7KCE7J287ZiEDQor7KCE7J2Y7KSADQor7KCE7Jyg7YOdDQor7KCE67SJ7KO8DQor7KCE64Ko6riwDQor7KCE7J6l7IiYDQor7KCE7JWI7Zi4DQor7KCE6riw67KUDQor7KCE6rec7IS4DQor7KCE7J6l7IudDQor7KCE6raM7JqwDQor7KCE7KeE7ZmYDQor7KCE6rec7ZmYDQor7KCE7J6s67SJDQor7KCE7IOB7LKgDQor7KCE64+Z6ri4DQor7KCE6riw7IiZDQor7KCE7J6s7ISxDQor7KCE7Jyk67SJDQor7KCE7Z2s7ISgDQor7KCE66qF6regDQor7KCE7J6s7IudDQor7KCE7Zi46rWsDQor7KCE6reA6regDQor7KCE6rK97ZiEDQor7KCE7J6s7J21DQor7KCE64+Z7IudDQor7KCE7YOc7LKgDQor7KCE7KeA6re8DQor7KCE7J6s7LaYDQor7KCE7ZiE7IiYDQor7KCE7ZmN7IiYDQor7KCE7Jqp7IicDQor7KCE7J6s7ZiEDQor7KCE7JiB7IudDQor7KCE65GQ7KeEDQor7KCE6rWQ64+EDQor7KCE7J6s7ZiEDQor7KCE7IiY7ZmYDQor7KCE642V7Zi4DQor7KCE7Z2l6rK9DQor7KCE7J6s7ZiEDQor7KCE7JiB7Zi4DQor7KCE7IOB7JiBDQor7KCE67OR6rOkDQor7KCE7J6s7ZiEDQor7KCE7Zqo7ZmYDQor7KCE64yA7Zi4DQor7KCE7JuQ7ZeMDQor7KCE7J6s7Zi4DQor7KCE7Zqo7KeEDQor7KCE7Jqp7JqpDQor7KCE7Jqp7ISdDQor7KCE7KCQ7IOdDQor7KCE7LCo6re8DQor7KCE7Jyk7Z2sDQor7KCE7JiB7IiZDQor7KCE7KCQ7ISxDQor7KCE7IOB7JqwDQor7KCE7J2864+ZDQor7KCE7KSA7YOcDQor7KCE7KCV6recDQor7KCE7KKF6rWtDQor7KCE7ISx6riwDQor7KCE7JiB7KSADQor7KCE7KCV66eMDQor7KCE7Zi47JiBDQor7KCE66eM7JikDQor7KCE6rK96raMDQor7KCE7KCV7IiYDQor7KCE7ZiE7IiYDQor7KCE66eQ7ISdDQor7KCE7JiB7KSADQor7KCE7KCV7JqwDQor7KCE7JiB7IicDQor7KCE7JuQ7JilDQor7KCE64us7IiYDQor7KCE7KCV7J6QDQor7KCE7LaY64yADQor7KCE7Jm47ZqMDQor7KCE7KeE642VDQor7KCE7KCV7LSMDQor7KCE7Jyk6riwDQor7KCE6riw7J20DQor7KCE7ZWE7Zi4DQor7KCE7KCV7YOcDQor7KCE7J287JuQDQor7KCE7J2A66qFDQor7KCE7ISx7ZGcDQor7KCE7KCV7ZalDQor7KCE7KSA67CcDQor7KCE7YOc7JiBDQor7KCE7ISx7JqpDQor7KCE7KCV7ZiEDQor7KCE7ZmN7J6sDQor7KCE7LKg7KCVDQor7KCE7IK87ISgDQor7KCE7KCc7ZiEDQor7KCE7KCQ7JuQDQor7KCE64+Z7J6sDQor7KCE7IOB7JewDQor7KCE7KKF6re8DQor7KCE7IiY7ZWZDQor7KCE7Zic7IudDQor7KCE64+E7JqwDQor7KCE7KKF65GQDQor7KCE7JWU6recDQor7KCE7ZeM7Jq0DQor7KCE6rG07Zi4DQor7KCE7KKF65OdDQor7KCE6riw7JuQDQor7KCE7YOc7IicDQor7KCE7Jyk7IigDQor7KCE7KKF7ISdDQor7KCE64us6529DQor7KCE7ZWc7IiZDQor7KCE7KKF7IiYDQor7KCE7KKF7IiYDQor7KCE7IOB7IiYDQor7KCE7Zi464u0DQor7KCE7KeE6rWtDQor7KCE7KKF7JesDQor7KCE7YyQ7IicDQor7KCE7IK87JikDQor7KCE7Kad7Jq0DQor7KCE7KKF7ZiEDQor7KCE6rCR7YOBDQor7KCE66eM7Zi4DQor7KCE7J6l7Jq0DQor7KCE7KKF7Zi4DQor7KCE7Jik7IOBDQor7KCE7KCV7LaYDQor7KCE7J6l7ZWYDQor7KCE7KO864+EDQor7KCE7KCV642VDQor7KCE7YOB6re8DQor7KCE7KeE7Z2sDQor7KCE7KO87J20DQor7KCE7LKc7KCEDQor7KCEIOuqqA0KK+yghOyKueydgA0KK+yghOykgOuPhA0KK+yghOycpO2YuA0KK+yghO2ZjeyjvA0KK+yghOyEoOyYgQ0KK+yghOykgO2VtA0KK+yghOq4sOq4sA0KK+yghOuPmeqyvQ0KK+yghOyYgeyZuA0KK+yghOykgO2drA0KK+yghOusuOybkA0KK+yghOq4iOqyvQ0KK+yghOyYgeyImA0KK+yghOywqOuNlQ0KK+yghOygleyErQ0KK+yghOuPmeyEoA0KK+yghOyiheqyvQ0KK+yghOywqOy2nA0KK+yghOqyveuLrA0KK+yghOywqOq3nA0KK+yghOqyve2DnQ0KK+yghOywveq3nA0KK+yghOygleydvA0KK+yghOywveyYpQ0KK+yghOyEoOqzpA0KK+yghOywveq3vA0KK+yghOyZhOq3nA0KK+yghOu0ieyEoA0KK+yghOygle2YuA0KK+yghOywveyImA0KK+yghOq2geyLnQ0KK+yghO2DnOq1rA0KK+yghOygleqyvQ0KK+yghOywveyImA0KK+yghOyEseyInA0KK+yghOuzkeydvA0KK+yghOq4iO2YhA0KK+yghOy2mOq1rQ0KK+yghOygleq1rA0KK+yghO2ZjeuCqA0KK+yghOyYge2ZlA0KK+yghOy2mOudvA0KK+yghOydkeyaqQ0KK+yghOyduOyImA0KK+yghOyYgeq4sA0KK+yghOy2mOuwsA0KK+yghOycoOyaqQ0KK+yghO2DnOyImA0KK+yghOu0ieydgA0KK+yghOy2mOybhQ0KK+yghO2VmeyaqQ0KK+yghOygleq0kQ0KK+yghOy5mOyZhA0KK+yghOy2mOybhQ0KK+yghOyDgeyyoA0KK+yghOy5oO2ZmA0KK+yghOuPmeyLnQ0KK+yghOy2mO2drA0KK+yghOykkeuLrA0KK+yghO2VmeunjA0KK+yghOqyuOqyrA0KK+yghOy2qeydvA0KK+yghO2drOyEnA0KK+yghOyxhOq4uA0KK+yghOydteyImA0KK+yghOy5oOyImA0KK+yghOuztOyerA0KK+yghOuqheykgA0KK+yghOyepeuemA0KK+yghO2DnOqyvQ0KK+yghOyerOyImQ0KK+yghOywveyImA0KK+yghOyImOyerA0KK+yghO2DnOq3oA0KK+yghOuPhOykgA0KK+yghOuzkeuNlQ0KK+yghOuLrO2drA0KK+yghO2DnOuPhA0KK+yghOuqheyImA0KK+yghCDqta0NCivsoITrjIDsmrENCivsoITtg5zrtIkNCivsoITsmrHrjZUNCivsoITsmIHtmZgNCivsoITrjIDsnpANCivsoITtg5zsiJwNCivsoITrsKnshK0NCivsoITssqDssqANCivsoITsiJjsmrANCivsoITtg5zsiJwNCivsoITsmKXsnpANCivsoITsmIHrj5kNCivsoITtg5zsm5ANCivsoITtg5zsi50NCivsoITsooXshKANCivsoITqt5ztnawNCivsoITquLDrspQNCivsoITtg5zsobANCivsoITsoJXspIANCivsoITrrLTsmIENCivsoITsmIHshJ0NCivsoITtg5ztmZgNCivsoITsnITtm4gNCivsoITsp4TtnawNCivsoITtg5zqtowNCivsoITtjJDqsJENCivsoITqsr3shLENCivsoITtg5ztmZgNCivsoITssq3ssqANCivsoITtjJDqtowNCivsoITqta3roKgNCivsoITsmqnqsbQNCivsoITshKDrp5ANCivsoITtjJDqt7wNCivsoITrs7XsmKQNCivsoITsi6DsiJwNCivsoITsp4DsiJgNCivsoITtjJDsiJgNCivsoITshKDsmKUNCivsoITsmIHstpwNCivsoITsp4Tsi50NCivsoITtjJTsi60NCivsoITrrJjrprwNCivsoITsl7Dsm5ANCivsoITsi5zsm4UNCivsoITtlYTsiJwNCivsoITrs5Hrj4QNCivsoITqt7zqt5wNCivsoITsmIHspIANCivsoITtlZjsiJgNCivsoITtmY3quLgNCivsoITqt5zqsr0NCivsoITsnbzqt5wNCivsoITtlZnsl7QNCivsoITsmKTtnJgNCivsoITrs5Hqt7wNCivsoITstpjtnawNCivsoITtlZzqsJENCivsoITsoJXshK0NCivsoITsooXtg50NCivsoITsnbztnawNCivsoITtlZzqt5wNCivsoITtmLjtmIENCivsoITstpjsooUNCivsoITsg4HsmIENCivsoITtlZzsmqkNCivsoITrs7XssKwNCivsoITsoJXsiJgNCivsoITrqoXtmLgNCivsoITtla3sobANCivsoITrkZDsnpANCivsoITrgqjqt5wNCivsoITtnazsiJgNCivsoITtlbTqtIANCivsoITrjIDsi50NCivsoITsuaDrnpgNCivsoITssL3smrANCivsoITtlbTqt7wNCivsoITsm5DsnpANCivsoITsirnshJ0NCivsoITsoJXquLANCivsoITtlbTshJ0NCivsoITssqDsiJwNCivsoITsmIHrqqkNCivsoITrs5HssqANCivsoITtlbTsooUNCivsoITsp4TsmqkNCivsoITsiJzrtIkNCivsoITrrLTspJENCivsoITtlbTso7wNCivsoITtmLjrj5kNCivsoITsnKTqtZANCivsoITtmJXtmLgNCivsoITtlbTssqANCivsoITsiJzsnZgNCivsoITtmY3sl7QNCivsoITtmITsnqUNCivsoITtlbTssqANCivsoITsnKTstpwNCivsoITtlZzsobANCivsoITsl7Dso7wNCivsoITtlbTtj6wNCivsoITsnoTsobANCivsoITsnqzqtIANCivsoITtmY3si50NCivsoITtl4zsiJgNCivsoITsirnslaANCivsoITquLDsnpANCivsoITso7ztg5wNCivsoITtmITqta0NCivsoITshLHqt7wNCivsoITspJHtmIQNCivsoITqtJHsobANCivsoITtmITsiJgNCivsoITsg4HsiJgNCivsoITsg4HtmZQNCivsoITsnqzsl7ANCivsoITtmJXrsLANCivsoITqsr3smIENCivsoITsgrzsm5ANCivsoITsl7DspIANCivsoITtmJXssYQNCivsoITshLHsiJgNCivsoITsnqzsp4QNCivsoITshLHsmqkNCivsoITtmJXssYQNCivsoITsp4TsnbwNCivsoITtg5ztmIQNCivsoITquLDqsr0NCivsoITtmJzshKANCivsoITsmIHtmIQNCivsoITrs5HsoJUNCivsoITssqDsl7QNCivsoITtmJzsiJkNCivsoITrr7jtmLgNCivsoITshJzsm4UNCivsoITsmqntmIQNCivsoITtmLjqsr0NCivsoITrtInrsLANCivsoITqsr3sl7QNCivsoITrqoXtmY0NCivsoITtmLjqt7wNCivsoITtlZnqta0NCivsoITshLHso7wNCivsoITrp4zsi50NCivsoITtmLjqt7wNCivsoITtmY3siJgNCivsoITsooXsnbQNCivsoITrqoXrnpgNCivsoITtmLjsi50NCivsoITstpjsspwNCivsoITrp4zsiJkNCivsoITqs4TshKANCivsoITtmLjsp4QNCivsoITrs5HsnqwNCivsoITtmY3si50NCivsoITsoJXqt5wNCivsoITtmY3shK0NCivsoITri6zqsJENCivsoITrqoXtlqUNCivsoITqt7zsnbwNCivsoITtmY3sl7QNCivsoITqt5zsiJgNCivsoITsmbjqt5wNCivsoITqsr3smrENCivsoITtmY3snbwNCivsoITrrLTqt7wNCivsoITsg4HsiJgNCivsoITtjJTsi50NCivsoITtmY3sp4QNCivsoITtjJTsnZENCivsoITsnqztlbQNCivsoITsmIHstpwNCivsoITtmY3tg5wNCivsoITsirnsiJgNCivsoITsoJXrtoQNCivsoITshJ3tkZwNCivsoITtmZTsiJgNCivsoITrj4Tsg4ENCivsoITsnbXtmY0NCivsoITsmqnrjZUNCivsoITtmZTsnpANCivsoITshJ3siKANCivsoITsiJjqtowNCivsoITsnqzsl7ANCivsoITtmqjqt7wNCivsoITtlZntnawNCivsoITsnbjrgqgNCivsoITsobDtmLgNCivsoITtmqjqt7wNCivsoITssL3rj4QNCivsoITshqHri6wNCivsoITrj5nsl7ANCivsoITtmqjrsLANCivsoITqsr3rnpENCivsoITshoztnawNCivsoITrj4TsiJgNCivsoITtmqjsp4QNCivsoITrs7XsmrANCivsoITsgrzrgqgNCivsoITqt7zsiJwNCivsoITtnaXsiJgNCivsoITquLDsiJwNCivsoITquIjqta0NCivsoITsnqzquLANCivsoITtnaXso7wNCivsoITrj5ntnawNCivsoITsmIHssqANCivsoITsnqzrqqkNCivsoITtnazrk50NCivsoITsnbTtmZgNCivsoITsiJzsiJgNCivsoITsmIHqt5wNCivsoITtnazsmIENCivsoITsmrDsooUNCivsoITsnbjqt5wNCivsoITtg5zsl7QNCivsoITtnazssqANCivsoITsp4DshKANCivsoITtmZjsmKQNCivsoITtmZjrspQNCivsoITtnaztmZgNCivsoITrtInqt5wNCivsoITsnqztmLgNCivsoITtmJztmZQNCivsoJUg6rG4DQor7KCV7ISx7IiZDQor7KCV6rK97JilDQor7KCV7ISx7YOcDQor7KCVIOyImQ0KK+ygleyerOyYgQ0KK+ygle2YuOydtA0KK+ygleydgOywrA0KK+yglSDsmqkNCivsoJXsp4Tqt7wNCivsoJXsmqntlZkNCivsoJXrtInrrLQNCivsoJUg7ZuIDQor7KCV7IOB64KoDQor7KCV7YOc6riwDQor7KCV66eQ7ZmYDQor7KCV6rCR7IudDQor7KCV7LC97IiYDQor7KCV7Jyk7J20DQor7KCV67OR7Z2sDQor7KCV6rCR7KO8DQor7KCV7JiB7IicDQor7KCV6rO17ZWZDQor7KCV7Lmg7JiBDQor7KCV6rCR7KeEDQor7KCV7LKg7J6EDQor7KCV7IK87IudDQor7KCV7YOc7ISdDQor7KCV6rG07JiBDQor7KCV7J6s66GdDQor7KCV6reA7IudDQor7KCV7KCV7Z2sDQor7KCV6rK9656ADQor7KCV7KKF7ZWEDQor7KCV6rCR6re8DQor7KCV7KKF7J6QDQor7KCV6rK966y4DQor7KCV6rWs7IiYDQor7KCV7KCV7JiBDQor7KCV7YOc7JqpDQor7KCV6rK97IiZDQor7KCV642V7Z2sDQor7KCV6reg6recDQor7KCV7YOd6rOkDQor7KCV6rK97IudDQor7KCVIOy2mA0KK+ygleybkOyImA0KK+ygleuNleyXtA0KK+ygleqyveyLnQ0KK+ygleuvuOuPmQ0KK+ygleyZuOyEoA0KK+ygleq3nOq3vA0KK+ygleqyveyXsA0KK+ygleyYge2aqA0KK+yglSDsi50NCivsoJXspJHssYQNCivsoJXqsr3sl7QNCivsoJXsoJXrprwNCivsoJXquLDqtawNCivsoJXsiJzssqANCivsoJXqsr3spIANCivsoJXrjIDsnbQNCivsoJXsoJXsiJgNCivsoJXtmIHshKANCivsoJXqsr3tm4gNCivsoJXshLHtmIQNCivsoJXsmqnrj4wNCivsoJXshoztmZQNCivsoJXqs4TrgqgNCivsoJXspJHtmLgNCivsoJXtlYTsmrENCivsoJXshJ3tnawNCivsoJXqs4Tsm5ANCivsoJXrp5DsmKUNCivsoJXtnazrjZUNCivsoJXsmKTsiJgNCivsoJXqs4TtlqUNCivsoJXrrLTsnbQNCivsoJXtmZjshK0NCivsoJXsmIHqsJENCivsoJXqtIDsmKUNCivsoJXtmIHtmLgNCivsoJXsiJjqt5wNCivsoJXqtJHsobANCivsoJXqtIDsnZgNCivsoJXsjI3siJkNCivsoJXsnqzsiJkNCivsoJXqsr3smIENCivsoJXqtJHrgqgNCivsoJXrqoXsp4QNCivsoJXso7zsl7ANCivsoJXtjJDsi50NCivsoJXqtJHrjZUNCivsoJXtmLjssL0NCivsoJXtmLjsnbQNCivsoJXrtInsnbQNCivsoJXqtJHrqoUNCivsoJXrqoXsmrANCivsoJXtl4zrjIANCivsoJXtg5ztmZQNCivsoJXqtJHsi50NCivsoJXrrLTsiJgNCivsoJXshJ3smpQNCivsoJXssqDtmZgNCivsoJXqtJHsi50NCivsoJXrrLjtmLgNCivsoJXsoJXtj6wNCivsoJXslaDtmIQNCivsoJXqtJHsi50NCivsoJXsiJjrk50NCivsoJXtnazsmqkNCivsoJXsmKXtmY0NCivsoJXqtJHsmIENCivsoJXsnqzsnoQNCivsoJXsg4Hsp4QNCivsoJXrrLjro6ENCivsoJXqtJHsmqkNCivsoJXtmITtmZQNCivsoJXtj4ntlYQNCivsoJXrrLTsiKANCivsoJXqtJHsm4UNCivsoJXsg4Htg5wNCivsoJXsmqnrj4wNCivsoJXtmLjsgrwNCivsoJXqtJHsp4QNCivsoJXsmIHsp4QNCivsoJXsnbjtg50NCivsoJXsmqnshJ0NCivsoJXqtJHtg5wNCivsoJXro6HshKANCivsoJXsgrzssqANCivsoJXquLDsp4QNCivsoJXqtZDsnbgNCivsoJXsobDsi50NCivsoJXssL3tm4gNCivsoJXspIDsobANCivsoJXqtazqtIANCivsoJXsgrzquLANCivsoJXshKDsi50NCivsoJXrrLjtnawNCivsoJXqtazsg4ENCivsoJXshJ3slYUNCivsoJXrs7XrtoQNCivsoJXshLHsiJgNCivsoJXqtazshJ0NCivsoJXqtJHquLANCivsoJXsoJXrqoUNCivsoJXsoJXqtowNCivsoJXqtazsp4QNCivsoJXrtoTssqANCivsoJXquLDtlZwNCivsoJXsoJXri6wNCivsoJXqtaztmIQNCivsoJXsmIHsl7QNCivsoJXsoJXslZQNCivsoJXsg4HsnbQNCivsoJXqtaztmLgNCivsoJXsmIHsobANCivsoJXsnqzqta0NCivsoJXrjIDquLANCivsoJXqta3rnoANCivsoJXsg4HstpwNCivsoJXtjJDsp4QNCivsoJXsp4TsoJUNCivsoJXqtozrpoQNCivsoJXrs7Xsm5ANCivsoJXsnbjquLANCivsoJXtg5zsnbUNCivsoJXqtoztjJANCivsoJXrqoXshJ0NCivsoJXsnqXtmZgNCivsoJXsnITquLANCivsoJXqtoztlZwNCivsoJXtmITquLANCivsoJXrtoTsnbwNCivsoJXsmIHsi6QNCivsoJXqt4Drj5kNCivsoJXsnZHtmIQNCivsoJXsg4HsnbQNCivsoJXrqoXsmrANCivsoJXqt4DrtIkNCivsoJXrp4zquLANCivsoJXrs5Hsl7ANCivsoJXsnqzsmKUNCivsoJXqt4DshK0NCivsoJXtg5zroYANCivsoJXsooXsmqkNCivsoJXsnqzrjZUNCivsoJXqt4DsiJwNCivsoJXsi6DssqANCivsoJXshLHsl7QNCivsoJXshJ3qs4QNCivsoJXqt5zrj5kNCivsoJXtjJDssYQNCivsoJXsiJzsiJwNCivsoJXrs7Xsl7QNCivsoJXqt5zsgrwNCivsoJXsoJXsl7QNCivsoJXquLDtmLgNCivsoJXtg5zqtIANCivsoJXqt5zsiJgNCivsoJXshKDtmLgNCivsoJXsoJXsiJwNCivsoJXsg4HsmKUNCivsoJXqt5zsnbgNCivsoJXrjIDqt5wNCivsoJXshLjshKANCivsoJXspIDrsLANCivsoJXqt5ztg5wNCivsoJXslrjsmYQNCivsoJXsooXsp4QNCivsoJXqsr3smrANCivsoJXqt5ztmZgNCivsoJXrp5DrgrQNCivsoJXsm5DsnbwNCivsoJXrrLTrj5kNCivsoJXqt5ztmZgNCivsoJXsnqzsgrANCivsoJXsnqzsobANCivsoJXrj4TsiJgNCivsoJXqt7nrs7QNCivsoJXsmqnssqANCivsoJXsnKTqtawNCivsoJXrrLTsnpANCivsoJXqt7zsnqwNCivsoJXsmIHsmKQNCivsoJXtl4zquLgNCivsoJXsg4HshLgNCivsoJXqt7zssqANCivsoJXqt5zshJ0NCivsoJXtj4ntmY0NCivsoJXrs5Hsp4QNCivsoJXqt7ztj6wNCivsoJXshLHtnaANCivsoJXso7ztmLgNCivsoJXsnbjsnpANCivsoJXquIjrgqgNCivsoJXsmqnsiJgNCivsoJXsnZjstpwNCivsoJXshKDrqqkNCivsoJXquIjrjZUNCivsoJXtnazsg50NCivsoJXsnqztmLgNCivsoJXrj5ntmY0NCivsoJXquIjsmKUNCivsoJXsmrDsoJANCivsoJXquLDsnpANCivsoJXtmqjsl7ANCivsoJXquIjsnbQNCivsoJXsgrzsiJwNCivsoJXshJ3snKQNCivsoJXsiJzssKgNCivsoJXquLDrkZQNCivsoJXsnbzqtawNCivsoJXsiJzsl7ANCivsoJXssqDsmqkNCivsoJXquLDrtIkNCivsoJXsg4Hsi50NCivsoJXsnqzrjZUNCivsoJXrr7jsiKANCivsoJXquLDrtIkNCivsoJXsooXsiJgNCivsoJXqt5ztmLgNCivsoJXshLHqt5wNCivsoJXquLDsg4ENCivsoJXsg4Hsi6wNCivsoJXquIjrhbgNCivsoJXquIjsmqkNCivsoJXquLDshJ0NCivsoJXshLHsmrQNCivsoJXsnqzsl7QNCivsoJXqtoztlZkNCivsoJXquLDshJ0NCivsoJXsp4TsnqwNCivsoJXtg5zsiJgNCivsoJXsmIHtmIQNCivsoJXquLDshKANCivsoJXsmIHshJ0NCivsoJXtjJDtnawNCivsoJXsnKDtmLgNCivsoJXquLDsiJgNCivsoJXshLjtmZgNCivsoJXsnqzsmIENCivsoJXrr7zsnZgNCivsoJXquLDsiJkNCivsoJXrjZXsm5ANCivsoJXsl7Dsi50NCivsoJXsiJzrtIkNCivsoJXquLDsi50NCivsoJXrgqjtg50NCivsoJXspIDsmrANCivsoJXsm5Dso7wNCivsoJXquLDsl7QNCivsoJXssKjrprwNCivsoJXsiJnshJ0NCivsoJXsgrzsiJgNCivsoJXquLDsl7QNCivsoJXsooXtmZgNCivsoJXquLDsspwNCivsoJXsooXsm4UNCivsoJXquLDsnpANCivsoJXrs5HsnbwNCivsoJXrgpntg50NCivsoJXsmIHtmIQNCivsoJXquLDspIANCivsoJXsmIHsnKQNCivsoJXrs7XsmKUNCivsoJXsp4TsiJgNCivsoJXquLDsp4QNCivsoJXri6zrs7QNCivsoJXqt7ztmLgNCivsoJXsmqnrj4QNCivsoJXquLDtmIQNCivsoJXquLDsobANCivsoJXsg4HshKANCivsoJXshJ3shKANCivsoJXquLjsm5ANCivsoJXrjIDsl7QNCivsoJXsmIHrtoQNCivsoJXrp4ztmZgNCivsoJXquLjtlokNCivsoJXrqoXtlZkNCivsoJXsiJjqsr0NCivsoJXrj5nrk50NCivsoJXquLjtmLgNCivsoJXqtbDtmowNCivsoJXshKDshJ0NCivsoJXtmITsnpANCivsoJXquLjtnaANCivsoJXsiJzquLANCivsoJXsg4HtmZgNCivsoJXsmIHqta0NCivsoJXquLjtnaANCivsoJXtmLjsnbgNCivsoJXqtJHtmLgNCivsoJXsnqzslYUNCivsoJXrgpnrj4QNCivsoJXrgqjqt7wNCivsoJXtnazruYgNCivsoJXsooXsiJwNCivsoJXrgqjrs7QNCivsoJXsnqzrgqgNCivsoJXsoJDtmIQNCivsoJXsnbjrnb0NCivsoJXrgqjshJ0NCivsoJXtg5ztnawNCivsoJXspIDrs7QNCivsoJXqsbTquLANCivsoJXrgqjshK0NCivsoJXrqoXsnbwNCivsoJXsg4Hrs7UNCivsoJXsmrDqtawNCivsoJXrgqjsnbQNCivsoJXqsr3tg5wNCivsoJXsnKTsmqkNCivsoJXrjIDsiJkNCivsoJXrgqjsobANCivsoJXsl7DquLANCivsoJXshKTtmLgNCivsoJXrrLjqt7wNCivsoJXrgqjtg50NCivsoJXrqoXquLgNCivsoJXsiJjtnLQNCivsoJXsoJXsiJwNCivsoJXrgqjtlYQNCivsoJXsm5DtmZgNCivsoJXsnbjtnawNCivsoJXssL3stpwNCivsoJXrhYTsnpANCivsoJXsmrDslZQNCivsoJXrs5HquLANCivsoJXrspTqt7wNCivsoJXrjIDqs6QNCivsoJXsg4HrtIkNCivsoJXrrLjtg5wNCivsoJXrs5HsmKUNCivsoJXrjIDqt6ANCivsoJXrs5Htg5wNCivsoJXtmY3sl7QNCivsoJXtmITquIgNCivsoJXrjIDshLENCivsoJXsnqzsnKQNCivsoJXsmKTtm4gNCivsoJXtnazqs6QNCivsoJXrjIDsi50NCivsoJXtnazsmqkNCivsoJXrs5HquLANCivsoJXroKTsmrANCivsoJXrjIDsmIENCivsoJXsnqztmZgNCivsoJXtg5zrgqgNCivsoJXsmrDrj4wNCivsoJXrjZXquLgNCivsoJXtlZnsm5ANCivsoJXsiJjsiJkNCivsoJXsnbXtmLgNCivsoJXrjZXquLgNCivsoJXsoJXsiKANCivsoJXtg5zrjZUNCivsoJXsmIHtmLgNCivsoJXrjZXrp4wNCivsoJXsooXtlZkNCivsoJXsnqzrs7UNCivsoJXsmqntmLgNCivsoJXrjZXsm5ANCivsoJXqt5zrtIkNCivsoJXtlbTtlZkNCivsoJXqt5zsl7ANCivsoJXrjZXsnpANCivsoJXshJ3qtIANCivsoJXrhbjtmIQNCivsoJXquLjsmIENCivsoJXrjZXtlZwNCivsoJXsooXqs6QNCivsoJXshoztnawNCivsoJXrs5HshK0NCivsoJXrjZXtmZQNCivsoJXtlYTsl7QNCivsoJXsoJXrj4QNCivsoJXsm5DsmKQNCivsoJXrjZXtmZgNCivsoJXrspTsmbgNCivsoJXquIjquLgNCivsoJXsnKTqs6QNCivsoJXrj4Tsi50NCivsoJXshLHsnbwNCivsoJXspIDsobANCivsoJXspIDtmZgNCivsoJXrj4Tsi50NCivsoJXsnqztmY0NCivsoJXsnYDsiKANCivsoJXsnbzsmKUNCivsoJXrj4TsmqkNCivsoJXsnqztlZkNCivsoJXshJ3tmLgNCivsoJXqt5zrp4wNCivsoJXrj5nqt7wNCivsoJXsmIHsnqwNCivsoJXsoJXsiJgNCivsoJXtmLjqtowNCivsoJXrj5nsi50NCivsoJXsmIHsm5ANCivsoJXsmrDsoJwNCivsoJXrj4TspIANCivsoJXrj5nsl7ANCivsoJXrp4ztlZgNCivsoJXspIDsiJgNCivsoJXsm5DqtIANCivsoJXrj5nsnbwNCivsoJXqsr3shJ0NCivsoJXquLDrp4wNCivsoJXrs5HsmKUNCivsoJXrj5ntmIQNCivsoJXsmZXsnbwNCivsoJXsiJjshJ0NCivsoJXsi53smKUNCivsoJXrkZDrp4wNCivsoJXrrLjrqqkNCivsoJXrs7XsiJgNCivsoJXsg4HtnawNCivsoJXrkZDtmZgNCivsoJXqsr3sl6wNCivsoJXtmY3shJ0NCivsoJXsmrTshJ0NCivsoJXrkZDtmZgNCivsoJXtg5zsnbQNCivsoJXso7ztmLgNCivsoJXqtIDqsJENCivsoJXrkZDtmZgNCivsoJXrkZDsl4QNCivsoJXsmbjqt5wNCivsoJXshLHsmqkNCivsoJXrk53sg4ENCivsoJXshLHtmZQNCivsoJXqtoztg5wNCivsoJXsm5DsiJgNCivsoJXrk53smrANCivsoJXssL3smqkNCivsoJXtmY3rj5kNCivsoJXqtJHro6ENCivsoJXrk7HsmqkNCivsoJXrs5HsnbQNCivsoJXsnbjquLANCivsoJXsg4HrjZUNCivsoJXroYDsiJgNCivsoJXquLjso7wNCivsoJXshLHsmrANCivsoJXsg53stpwNCivsoJXroZzsi50NCivsoJXsooXssqANCivsoJXsg4Hsm5ANCivsoJXsoJDsm5ANCivsoJXrp4nsiJwNCivsoJXsgrzso7wNCivsoJXsnKTsiJgNCivsoJXrgqjrj4wNCivsoJXrp4zqt7wNCivsoJXsmIHqtowNCivsoJXrs5HstpwNCivsoJXtlonrj4wNCivsoJXrp4zrjZUNCivsoJXsooXrrLQNCivsoJXsmIHsspwNCivsoJXrqoXtm4gNCivsoJXrp4zshJ0NCivsoJXtlajsiJgNCivsoJXsspzrjZUNCivsoJXsoJXsm5ANCivsoJXrp4zsiKANCivsoJXqtJHsiJwNCivsoJXtlontg50NCivsoJXspp3slZQNCivsoJXrp4zsmrANCivsoJXsoJDtlqUNCivsoJXsm4XqtZANCivsoJXtko3sl7ANCivsoJXrp4ztmLgNCivsoJXqtJHspIANCivsoJXrjIDshKANCivsoJXsiJjtmLgNCivsoJXrp4ztmLgNCivsoJXsnqzsl7ANCivsoJXqsr3sl7QNCivsoJXqsr3quLgNCivsoJXrqoXqta0NCivsoJXtg5zsi50NCivsoJXsoJXrtIkNCivsoJXquLDslZQNCivsoJXrqoXsiJgNCivsoJXsoJXsiJwNCivsoJXsnqXquLgNCivsoJXshKDslbwNCivsoJXrqoXsiJwNCivsoJXsoJXssqANCivsoJXsoJDsmrANCivsoJXssL3smqkNCivsoJXrqoXsiKANCivsoJXrr7ztj4kNCivsoJXsnqztmJUNCivsoJXshKDrj5kNCivsoJXrqoXsmKUNCivsoJXsjI3rtoQNCivsoJXrtInsg4ENCivsoJXrtInqt7wNCivsoJXrqoXsmqkNCivsoJXsirnspIANCivsoJXsmIHrtIkNCivsoJXstpjrjZUNCivsoJXrqoXsp4ANCivsoJXshLHrnpgNCivsoJXso7zsiJwNCivsoJXqt5zrjZUNCivsoJXrqoXtkZwNCivsoJXsooXssqANCivsoJXssL3tg5wNCivsoJXsnZjtmLgNCivsoJXrqoXtmZgNCivsoJXsnbjsmIENCivsoJXsooXsnbUNCivsoJXrrLjso7wNCivsoJXrqoXtnawNCivsoJXso7zrj5kNCivsoJXsg4HsiJgNCivsoJXssL3rqqkNCivsoJXrqoXtnawNCivsoJXqs6Dqt5wNCivsoJXrj5nsiJgNCivsoJXrr7ztg5wNCivsoJXrqoXtnawNCivsoJXsmIHsl7ANCivsoJXssqDrp4wNCivsoJXsnqzsnbQNCivsoJXrqqnsnbQNCivsoJXsuaDrj4wNCivsoJXrp4zrprwNCivsoJXtg5zqtawNCivsoJXrrJjshKANCivsoJXtnazsi50NCivsoJXsoJXsmqkNCivsoJXrtInsi50NCivsoJXrrLTsg4ENCivsoJXsirntg5wNCivsoJXsiJjqs6QNCivsoJXsiJjqt7wNCivsoJXrrLTshLENCivsoJXsnYTqtowNCivsoJXroZzsiJgNCivsoJXsg4HstpwNCivsoJXrrLjtmIQNCivsoJXsmIHri7QNCivsoJXsiJjquLANCivsoJXshLHquLANCivsoJXrr7jsiJkNCivsoJXssKjtmLgNCivsoJXrqoXrp4wNCivsoJXtjJDtnJgNCivsoJXrr7jtmZQNCivsoJXtlbTqtawNCivsoJXrjIDtmY0NCivsoJXtlqXrtoQNCivsoJXrr7zsiJgNCivsoJXrj5nsnZgNCivsoJXsnqzsiJgNCivsoJXsiJzsiJgNCivsoJXrr7zsm4UNCivsoJXqsr3sm5ANCivsoJXsjI3siJwNCivsoJXsnqzsi50NCivsoJXrs5HsiJgNCivsoJXqsJHtnawNCivsoJXrj5nsnoQNCivsoJXtnazqtawNCivsoJXrs5HsmqkNCivsoJXsnqzqta0NCivsoJXsmKXrjZUNCivsoJXsmqnsiJgNCivsoJXrs5HsnYANCivsoJXsnKTsi50NCivsoJXtmITsnpANCivsoJXshJ3tnawNCivsoJXrs5HsnYQNCivsoJXsgrzsl7QNCivsoJXrsKntmZgNCivsoJXsm5DsmYQNCivsoJXrs5HsnbwNCivsoJXrs5Htm4gNCivsoJXshJ3shLENCivsoJXsoJDquLANCivsoJXrs5HsnqwNCivsoJXshLHtmLgNCivsoJXsoJDtmLgNCivsoJXqsJHsmIENCivsoJXrs5HsnqwNCivsoJXsirnshKANCivsoJXsooXslYgNCivsoJXtlZjshKANCivsoJXrs5HsooUNCivsoJXsg4HrnoANCivsoJXsnqzsnbwNCivsoJXsoJXsmKQNCivsoJXrs5HspIANCivsoJXqsr3quLANCivsoJXrr7jquLANCivsoJXqt5zqt7wNCivsoJXrs5HssqANCivsoJXrk7Htg5wNCivsoJXsooXrtIkNCivsoJXsnqXsmrANCivsoJXrs5HsuaANCivsoJXsnbzquLANCivsoJXqsr3qt7wNCivsoJXrrLjtmZQNCivsoJXrs5Htg50NCivsoJXstpjtjJANCivsoJXqt5zsmKUNCivsoJXsmKXsg50NCivsoJXrs5HtmZQNCivsoJXsmrDsobANCivsoJXtnJjtg4ENCivsoJXqt7zsl7QNCivsoJXrs7Tqsr0NCivsoJXsiJjsmrQNCivsoJXrtoTsmqkNCivsoJXsg4Hsm5ANCivsoJXrs7XsiJwNCivsoJXssqDtmLgNCivsoJXsoJXtmZgNCivsoJXsnqzsm5ANCivsoJXrs7XsmIENCivsoJXqtJHsiJwNCivsoJXsg4HrjIANCivsoJXsmqnsmrQNCivsoJXrtInqsJENCivsoJXtg5zslZQNCivsoJXsp4TsiKANCivsoJXsmIHsnpANCivsoJXrtInqtowNCivsoJXrhbjrs7UNCivsoJXtg5zsi50NCivsoJXtl4zqsr0NCivsoJXrtInsmrENCivsoJXqsbTrrLgNCivsoJXtg5zsmqkNCivsoJXssqDtl4wNCivsoJXrtInsmrENCivsoJXtlZnquLANCivsoJXsi5zquIgNCivsoJXrrLjsmqkNCivsoJXrtInsmrQNCivsoJXsiJjsoJwNCivsoJXsuZjslZQNCivsoJXshKDtmLgNCivsoJXrtIntmZgNCivsoJXsooXsnpANCivsoJXsmIHsnpANCivsoJXsnbzrnb0NCivsoJXrtoDqtJENCivsoJXrtInsiJgNCivsoJXsiJjsnpANCivsoJXstpjtmLgNCivsoJXrtoDsmIENCivsoJXsm5DsiJkNCivsoJXshLjstpgNCivsoJXrs7XspJENCivsoJXrtoTqtZANCivsoJXsnKTsmqkNCivsoJXqs7XsiJwNCivsoJXslYjtmLgNCivsoJXrtoTrj4wNCivsoJXsmIHtmZgNCivsoJXtlZzshK0NCivsoJXsooXrk50NCivsoJXrtoTsobANCivsoJXri6zshK0NCivsoJXsmpTqs6QNCivsoJXsnKTtnawNCivsoJXsgrDsmqkNCivsoJXsnbzsp4QNCivsoJXsi6Drs7UNCivsoJXsnqXsmIENCivsoJXsgrzrqqkNCivsoJXsnqzsmKUNCivsoJXsnqztlZwNCivsoJXrhbjssqANCivsoJXsgrzsiJgNCivsoJXrkZDtmY0NCivsoJXqt5zshLENCivsoJXsmIHtnawNCivsoJXsgrzsiJgNCivsoJXquIjtg5wNCivsoJXsooXsiJgNCivsoJXrqoXsnbwNCivsoJXsgrzsmIENCivsoJXrj5nsmrENCivsoJXsmIHshJ0NCivsoJXssL3rgqgNCivsoJXsgrzsmqkNCivsoJXsiKDtkZwNCivsoJXsnqzstpwNCivsoJXrs5HrsLANCivsoJXsgrzspIANCivsoJXrs5HshJ0NCivsoJXqtJHquLgNCivsoJXshLjtmIQNCivsoJXsgrztmLgNCivsoJXtl4zsiJgNCivsoJXsp4DquLANCivsoJXsoJXqt7wNCivsoJXsg4HqtIANCivsoJXsnqzsm5ANCivsoJXsoJXsoJUNCivsoJXrgqjqt5wNCivsoJXsg4HquLANCivsoJXrp4ztjJQNCivsoJXsoJzrspQNCivsoJXtnazsoJUNCivsoJXsg4HsiJgNCivsoJXsnZjsiJkNCivsoJXtmITqsr0NCivsoJXsgrzsnqwNCivsoJXsg4Hsl7QNCivsoJXsnqzro6ENCivsoJXshKDsmIENCivsoJXsooXrjIANCivsoJXsg4HsmIENCivsoJXtlZnshKANCivsoJXtg5zsm4UNCivsoJXtl4zrspQNCivsoJXsg4HsmqkNCivsoJXsiJzsmrANCivsoJXshJ3smqkNCivsoJXsooXshJ0NCivsoJXsg4HsmqkNCivsoJXrtInsiJwNCivsoJXsmIHtg5wNCivsoJXsmIHsobANCivsoJXsg4HsmrQNCivsoJXso7zslYUNCivsoJXsnKDsiKANCivsoJXrr7jslYQNCivsoJXsg4Hsm5ANCivsoJXtmZjtmLgNCivsoJXrqoXrnb0NCivsoJXrp4zrsLANCivsoJXsg4HsnbwNCivsoJXtjJDshJ0NCivsoJXssL3shJ0NCivsoJXsmKXqsr0NCivsoJXsg4HsoJUNCivsoJXsoJXshJ0NCivsoJXqtJHsiJwNCivsoJXsmIHsiJwNCivsoJXsg4Hsp4QNCivsoJXrjZXsiJgNCivsoJXsg4HsiJgNCivsoJXqsr3qs6QNCivsoJXsg4HssqANCivsoJXsmIHri6wNCivsoJXrs5Hsi50NCivsoJXrk53rnoANCivsoJXsg4Htg5wNCivsoJXsuaDsnpANCivsoJXshLHslaANCivsoJXsooXroYANCivsoJXsg4Htg5wNCivsoJXqt7zssqANCivsoJXtnazshJ0NCivsoJXsoJXsnpANCivsoJXsg4HtlZkNCivsoJXqt4DshLENCivsoJXqtZDtmZgNCivsoJXqtIDsobANCivsoJXsg4HtmIQNCivsoJXsoJXtg5wNCivsoJXsoJDrs7QNCivsoJXrj5ntmLgNCivsoJXsg4HtmLgNCivsoJXsmqntmZgNCivsoJXquLDrj4QNCivsoJXrj4TtmZgNCivsoJXsg4HtmLgNCivsoJXsnbTqsqwNCivsoJXssL3sm4UNCivsoJXsmqnshKANCivsoJXsg4HtmLgNCivsoJXsg4Hrr7gNCivsoJXsm5DshKANCivsoJXsnbjtnawNCivsoJXsg4Htm4gNCivsoJXrqoXtmY0NCivsoJXrjIDquLANCivsoJXtg5ztmIENCivsoJXsg4HtnawNCivsoJXsooXqt7wNCivsoJXssL3si50NCivsoJXtmY3tmLgNCivsoJXshJ3qtJENCivsoJXshLHqta0NCivsoJXrs5HsiJgNCivsoJXtlZjsp4QNCivsoJXshJ3smqkNCivsoJXtg5zqs6QNCivsoJXqtJHqtowNCivsoJXsnbjqtZANCivsoJXshJ3sm5ANCivsoJXrs5HsmqkNCivsoJXsnqzrj4QNCivsoJXtmJzsnbQNCivsoJXshJ3sobANCivsoJXssL3rtIkNCivsoJXtlonsg4ENCivsoJXrtInqt7wNCivsoJXshJ3ssqANCivsoJXsl7DtmLgNCivsoJXquIjsmKUNCivsoJXsgrzsoJUNCivsoJXshJ3tmIQNCivsoJXssL3sm4UNCivsoJXrrLTsiJkNCivsoJXrtInrnpgNCivsoJXshJ3tmZQNCivsoJUg7KSADQor7KCV7Jqp6re8DQor7KCV6rG06rCRDQor7KCV7ISg7JikDQor7KCV7JiB7J6RDQor7KCV7JiB7ISgDQor7KCV7KKF6rK9DQor7KCV7ISg7JilDQor7KCV6rWs7ZGcDQor7KCV7ISx6529DQor7KCV64yA7JqwDQor7KCV7ISg7Zi4DQor7KCV6rWs64+ZDQor7KCV7KCQ7KCcDQor7KCV7JuF7Z2sDQor7KCV7ISg7Zi4DQor7KCV7ISx7J28DQor7KCV7Iic7IStDQor7KCV7KSA64+EDQor7KCV7ISg7Z2sDQor7KCV6riw7ZqoDQor7KCV7Jqp7Z2sDQor7KCV7Lmg64+ZDQor7KCV7ISx6regDQor7KCV7YOc7JilDQor7KCV7KCV7IiYDQor7KCV7ISx7JqpDQor7KCV7ISx6regDQor7KCV6ri47JuFDQor7KCV7J6E7ISxDQor7KCV7IOB642VDQor7KCV7ISx6re8DQor7KCV7KCV7J20DQor7KCV7YOc7JqwDQor7KCV64us7IigDQor7KCV7ISx6re8DQor7KCV7J247LaYDQor7KCV64Ko7YOcDQor7KCV6riI7ZmYDQor7KCV7ISx6re8DQor7KCV66eM7JqpDQor7KCV7ZWZ7ISgDQor7KCV6riI64+ZDQor7KCV7ISx6riwDQor7KCV7ZeM6riwDQor7KCV6reg66asDQor7KCV7Jqp7JikDQor7KCV7ISx64+EDQor7KCV7KCV7Je0DQor7KCV7LaY6ri4DQor7KCV7LaY7ZuIDQor7KCV7ISx656ADQor7KCV7ISx7ZmYDQor7KCV64+Z7ISxDQor7KCV6rK97ZeMDQor7KCV7ISx7IicDQor7KCV7IiY7YOcDQor7KCV7ZiE66asDQor7KCV64us7Zi4DQor7KCV7ISx7IudDQor7KCV7ISx6riwDQor7KCV7Iic7IiZDQor7KCV7IOB7ISdDQor7KCV7ISx7IudDQor7KCV64+Z7JqpDQor7KCV7Iic7KCVDQor7KCV7Y+J6riwDQor7KCV7ISx7IudDQor7KCV7KeA66GcDQor7KCV7KCQ6rSRDQor7KCV7IOB7Je0DQor7KCV7ISx7IudDQor7KCV7LC967SJDQor7KCV7JiB6rOkDQor7KCV7KKF6rOkDQor7KCV7ISx7JiBDQor7KCV7KO87ZmNDQor7KCV7ZeM7ZiEDQor7KCV66eM7ISxDQor7KCV7ISx7ZWcDQor7KCV6rK97IOBDQor7KCV7Jqp7IicDQor7KCV64Ko7JiBDQor7KCV7ISx7ZicDQor7KCV67SJ7ISdDQor7KCV6riw7IOBDQor7KCV7ISx7ZWZDQor7KCV7ISx7Zi4DQor7KCV7Iic7ISxDQor7KCV7KKF6re8DQor7KCV7KCV7KeADQor7KCV7ISx7Zi4DQor7KCV7Iq565OdDQor7KCV7IiY6rK9DQor7KCV67O17KGwDQor7KCV7ISx7ZmNDQor7KCV7YOc7ZmYDQor7KCV7LaY656YDQor7KCV7KeE642VDQor7KCV7ISx7ZmYDQor7KCV7IOB64yADQor7KCV7YOc642VDQor7KCV7IOB7ZiEDQor7KCV7ISx7ZmYDQor7KCV7JiB64KcDQor7KCV7LaY7IKsDQor7KCV7YOc7KeEDQor7KCV7ISx7ZuIDQor7KCV7Jyk7Je9DQor7KCV7ISx7ISgDQor7KCV67OR6riwDQor7KCV7ISx7ZuIDQor7KCV66qF6re8DQor7KCV7KCV6riwDQor7KCV6riI7KGwDQor7KCV7IS47JmEDQor7KCV7Iic7IicDQor7KCV64Kc7IiYDQor7KCV7JiB7IaMDQor7KCV7IaM7KGwDQor7KCV6riw7J6QDQor7KCV7Z2s6riwDQor7KCV66eM7IStDQor7KCV7IaQ64+MDQor7KCV7YOc6re8DQor7KCV7ZWc7J20DQor7KCV7Ja47JqpDQor7KCV7IaQ7YOcDQor7KCV7YOc7KeEDQor7KCV7KKF7JqwDQor7KCV7Jqp7J6sDQor7KCV7Iah642VDQor7KCV7ISg6riwDQor7KCV7YOc7IiYDQor7KCV6riI7IiYDQor7KCV7Iah66qpDQor7KCV7IiY6recDQor7KCV7ISg7JqpDQor7KCV7IOB7IigDQor7KCV7IiY64WEDQor7KCV64+Z7ZmYDQor7KCV7Iic7Zy0DQor7KCV7J247IOdDQor7KCV7IiY642VDQor7KCV67SJ6riwDQor7KCV7KCV7IiZDQor7KCV7IK87IudDQor7KCV7IiY64+ZDQor7KCV7KKF7ZiEDQor7KCV7J2E7IiYDQor7KCV7KCV7IStDQor7KCV7IiY66qpDQor7KCV64W47KeEDQor7KCV7JiB67O1DQor7KCV7YOc7ZWZDQor7KCV7IiY67O1DQor7KCV7LC97KSADQor7KCV7LKg66CoDQor7KCV6riw7JqwDQor7KCV7IiY7IOBDQor7KCV7ISg7KCVDQor7KCV67KU6rSRDQor7KCV6rSR7KGwDQor7KCV7IiY7ISdDQor7KCV7IOB7JilDQor7KCV6rSR7JWUDQor7KCV7JiB6rK9DQor7KCV7IiY7ISdDQor7KCV7KCV7JqpDQor7KCV7JiB7KKFDQor7KCV7ZWZ7Z2sDQor7KCV7IiY7Ja1DQor7KCV6rK97ZW0DQor7KCV7KCV7JuQDQor7KCV7Iic7KeEDQor7KCV7IiY7JuFDQor7KCV7YyQ7JqxDQor7KCV64yA7ZiEDQor7KCV7IiZ7ZWcDQor7KCV7IiY7KGwDQor7KCV7JiB7KeEDQor7KCV7LC96recDQor7KCV67OR7IudDQor7KCV7IiY7KKFDQor7KCV6riw7YOcDQor7KCV6re86riwDQor7KCV7JaR7J6sDQor7KCV7IiY7KO8DQor7KCV67SJ7IigDQor7KCV7YOc7IiYDQor7KCV7J2A6rG0DQor7KCV7IiY7KeEDQor7KCV7YOc7IicDQor7KCV7IOB7IigDQor7KCV7JiB67CwDQor7KCV7IiY7LKgDQor7KCV6rSR7ZiEDQor7KCV67OR7ZiEDQor7KCV6riw65OdDQor7KCV7IiY7ZWZDQor7KCV7Jq07JewDQor7KCV7JiB7KO8DQor7KCV7KCV6rWtDQor7KCV7IiY7ZWZDQor7KCV66qF7IicDQor7KCV7ZmY7IigDQor7KCV7KSR6ri4DQor7KCV7IiY7ZWZDQor7KCV7JiB6rK9DQor7KCV67SJ7KGwDQor7KCV67OR6recDQor7KCV7IiY7ZiEDQor7KCV7JiB64usDQor7KCV7KKF7KKFDQor7KCV7KKF6riwDQor7KCV7IiY7ZiEDQor7KCV7Jqp7JiBDQor7KCV64+Z7LaYDQor7KCV7IS467CwDQor7KCV7IiY7ZmNDQor7KCV7JiB7JuQDQor7KCV7Zqo7Z2gDQor7KCV7JuQ7Jq0DQor7KCV7IiY7ZmYDQor7KCV7KCQ7ZqoDQor7KCV7KCV7YOdDQor7KCV7JmE7LKgDQor7KCV7IiY7ZmYDQor7KCV7IOB7J6QDQor7KCV7JuQ7ZmNDQor7KCV6riw7ZiEDQor7KCV7IiY7ZmYDQor7KCV7J6s7KSADQor7KCV7YOc6529DQor7KCV7YOc7ISdDQor7KCV7IiZ64+EDQor7KCV7ISx6riwDQor7KCV6rec7Zi4DQor7KCV7YOc7JaRDQor7KCV7IiZ7J6QDQor7KCV7Z2s6riwDQor7KCV6rK97Zi4DQor7KCV7JiB67KUDQor7KCV7Iic6riwDQor7KCV7KKF66y0DQor7KCV7Jqp67O0DQor7KCV7IOB7IK8DQor7KCV7Iic65OdDQor7KCV7KKF7Zi4DQor7KCV7Iic6re8DQor7KCV7Jqp6rOgDQor7KCV7Iic66qpDQor7KCV7JuQ7IudDQor7KCV67OR7IudDQor7KCV7KCQ7KO8DQor7KCV7Iic67KUDQor7KCV7ISd7J6QDQor7KCV6rK97ZmYDQor7KCV7LC97IiYDQor7KCV7Iic67SJDQor7KCV6riw7IicDQor7KCV7IiZ7JaRDQor7KCV7KCV7JikDQor7KCV7Iic7ISdDQor7KCV7ZmN6riwDQor7KCV7ZGc67SJDQor7KCV64+Z7KSADQor7KCV7Iic7Iq5DQor7KCV7IS47JmEDQor7KCV6riw7IiYDQor7KCV7Jqp7IiYDQor7KCV7Iic7JeFDQor7KCV64+Z7JiBDQor7KCV7J247JewDQor7KCV7ZuI7ZmYDQor7KCV7Iic7JiBDQor7KCV66yY7IicDQor7KCV642V7IudDQor7KCV7Jil7Zi4DQor7KCV7Iic7JilDQor7KCV7Jik7LKgDQor7KCV7J6R7Zi4DQor7KCV7JiB64KoDQor7KCV7Iic7JuQDQor7KCV7JiB7KeRDQor7KCV6reA66GdDQor7KCV67OR7J6sDQor7KCV7Iic7KGwDQor7KCV7ISx7IiYDQor7KCV66GA7ZiBDQor7KCV7Iic7J28DQor7KCV7Iic7YOcDQor7KCV6re87JiBDQor7KCV7IiZ7IiYDQor7KCV7KKF7IiYDQor7KCV7Iic7ZGcDQor7KCV7JiB7LKgDQor7KCV64Ko7J6QDQor7KCV7J2Y6raMDQor7KCV7Iic7ZiEDQor7KCV7J6l7J20DQor7KCV7KeA7JqwDQor7KCV7KKF7ZmUDQor7KCV7Iic7ZmUDQor7KCV64+Z7JilDQor7KCV7IiZ6rG0DQor7KCV7LKg64KoDQor7KCV7Iic7ZmYDQor7KCV7J6s7IicDQor7KCV66eQ7IiYDQor7KCV7YyQ6rK9DQor7KCV7Iic7Z2sDQor7KCV7IOB7J20DQor7KCV67OR7ZiBDQor7KCV7ISd7LKgDQor7KCV7Iic7Z2sDQor7KCV7IyN7JqwDQor7KCV7YOc7Z2gDQor7KCV7Iic7IiZDQor7KCV7Iq56rOgDQor7KCV7ZiE66CoDQor7KCV65Od6rK9DQor7KCV67OR7IOBDQor7KCV7Iq56rWQDQor7KCV7ZiE6recDQor7KCV7LC97ZiEDQor7KCV7KCV7IudDQor7KCV7Iq57JykDQor7KCV7ZW07IiZDQor7KCV7ZmN7IicDQor7KCV6rOE7ZiEDQor7KCV7Iud7ZiEDQor7KCV7KeA7Zi4DQor7KCV64+Z7IiYDQor7KCV66y47JqpDQor7KCV7Iug7IStDQor7KCV6rK96raMDQor7KCV64yA7IiYDQor7KCV7J287Z2sDQor7KCV7IyN64+EDQor7KCV7ZiE7J6sDQor7KCV7J6s7Zi4DQor7KCV7KKF7Zi4DQor7KCV7IyN65OdDQor7KCV7JiB7JiBDQor7KCV7Z2s7JqpDQor7KCV7ISx65GQDQor7KCV7JWI66+8DQor7KCV7J6s7J20DQor7KCV7Jyk7J6sDQor7KCV66eM7Z2sDQor7KCV7JWI7IicDQor7KCV67O066eMDQor7KCV6re87KeRDQor7KCV7KO86529DQor7KCV7JaR64yADQor7KCV7J6s64+ZDQor7KCV7KKF66eMDQor7KCV6riw66GdDQor7KCV7JaR7JiBDQor7KCV7Jyk7IiYDQor7KCV7LC97KO8DQor7KCV7YOc7Z2sDQor7KCV7Ja17KGwDQor7KCV7IS47Zi4DQor7KCV7KCV7ZW0DQor7KCV7KCV7Zi4DQor7KCV7JeF7JqwDQor7KCV6rSR7IiZDQor7KCV7J246recDQor7KCV7YOc6rK9DQor7KCV7Jes7ZWEDQor7KCV7KCV66y4DQor7KCV7Z2s7IudDQor7KCV7IOB7YOcDQor7KCV7Jew64+ZDQor7KCV7IiY7IiYDQor7KCV7ISx7J20DQor7KCV64+Z7IiZDQor7KCV7Jew7JikDQor7KCV66y07IiYDQor7KCV7LCo7ISgDQor7KCV7J247ZWcDQor7KCV7Jew7JqwDQor7KCV7Jqp7ZmUDQor7KCV7KCV7ZiEDQor7KCV67OR7LmYDQor7KCV7Jew7JqxDQor7KCV67SJ7Z2sDQor7KCV7KeE7Je0DQor7KCV7ISx7IOBDQor7KCV7Jew7KeEDQor7KCV67OR7Je0DQor7KCV7IOB7JilDQor7KCV7Jqp7JqwDQor7KCV7Jew7ZmYDQor7KCV6riw6rWQDQor7KCV7IKs7J28DQor7KCV7KKF7J6sDQor7KCV7JiB6rWsDQor7KCV7Jq06recDQor7KCV6riw7JewDQor7KCV7ZmN7ISdDQor7KCV7JiB6rWsDQor7KCV66y07ZWcDQor7KCV7IOB7JewDQor7KCV6rCR7IiYDQor7KCV7JiB6riwDQor7KCV6rWQ7JiBDQor7KCV7Iuc7JqpDQor7KCV7ZiV7JiBDQor7KCV7JiB6ri4DQor7KCV65GQ6rK9DQor7KCV7Iic7JqwDQor7KCV7KKF64+EDQor7KCV7JiB64+EDQor7KCV7LaY7Zi4DQor7KCV6riw7KO8DQor7KCV7LCo7ZalDQor7KCV7JiB67O1DQor7KCV7ISd7KGwDQor7KCV64+Z67ORDQor7KCV66eM7IStDQor7KCV7JiB7ISdDQor7KCV7Jqp7Zi4DQor7KCV66y47KGwDQor7KCV7KSA7IiZDQor7KCV7JiB7ISdDQor7KCV7ISd7ZuIDQor7KCV6rCV64+ZDQor7KCV67aA7Y+sDQor7KCV7JiB7IiYDQor7KCV7IOB7ZWZDQor7KCV6rK97IiYDQor7KCV7ZiE7J21DQor7KCV7JiB7IiZDQor7KCV7LaY67O1DQor7KCV7JiB66qpDQor7KCV7J6E7JqpDQor7KCV7JiB7JilDQor7KCV642V7IOBDQor7KCV7ISg7KO8DQor7KCV7KCQ7KCVDQor7KCV7JiB7J6QDQor7KCV64+Z7KeEDQor7KCV7JmV7IicDQor7KCV65GQ7JilDQor7KCV7JiB7KGwDQor7KCV7JuQ7ZmYDQor7KCV7JiB66GcDQor7KCV66qF7IiZDQor7KCV7JiB7KO8DQor7KCV7ISx67SJDQor7KCV67O17ZmYDQor7KCV7IOB6ri4DQor7KCV7JiB7YOcDQor7KCV7ZmN7JewDQor7KCV7KO87IiYDQor7KCV7ZWY6rCVDQor7KCV7JiB7YOcDQor7KCV7ZWc7IOBDQor7KCV7KCV7KO8DQor7KCV66qF7ZmYDQor7KCV7JiB7ZiEDQor7KCV7JiB7Je0DQor7KCV7ISx7Zi4DQor7KCV7ZWE6riwDQor7KCV7JiB7ZmYDQor7KCV7JiB64+MDQor7KCV7IiY7J20DQor7KCV7J287IiYDQor7KCV7JiB7ZmYDQor7KCV7IiZ7IiYDQor7KCV66qF7LCsDQor7KCV67OR7ZmYDQor7KCV7Jik7IOBDQor7KCV67aA7ZWZDQor7KCV7Jqp7JuFDQor7KCV7Jqp6recDQor7KCV7Jil64KoDQor7KCV7LaY7ZmYDQor7KCV7J247IiYDQor7KCV7LmY7KeEDQor7KCV7Jil66CoDQor7KCV64yA7ZmUDQor7KCV7LC97KO8DQor7KCV7JiB7ZW0DQor7KCV7Jil7IicDQor7KCV7J6s7IiYDQor7KCV7LaY7JilDQor7KCV66y47J21DQor7KCV7Jm47IiYDQor7KCV7YyQ7IiYDQor7KCV7JuU7LKgDQor7KCV7J6l7Je0DQor7KCV7Jm47ZmYDQor7KCV6re86rK9DQor7KCV7ZW07LaYDQor7KCV7JiB7J24DQor7KCV7Jqp6rSADQor7KCV67O17JuQDQor7KCV7Iug7IiYDQor7KCV7Jew64KoDQor7KCV7Jqp6raMDQor7KCV7Iic7LCsDQor7KCV7J287ISdDQor7KCV64yA7JuFDQor7KCV7Jqp6regDQor7KCV64yA7ZuIDQor7KCV64Ko7KGwDQor7KCV7KCV7KGwDQor7KCV7Jqp64+MDQor7KCV7JiB6rG0DQor7KCV7KeE7ZaJDQor7KCV64+E7J2EDQor7KCV7Jqp66qoDQor7KCV7JuU7YOBDQor7KCV7J287IukDQor7KCV7IOB7J6QDQor7KCV7Jqp7JWUDQor7KCV66y07KSADQor7KCV7Zi47JqwDQor7KCV7LCo6recDQor7KCV7Jqp7YOcDQor7KCV7IK87ISxDQor7KCV7JiB7IStDQor7KCV7Jil6re8DQor7KCV7Jqp7ZiEDQor7KCV7IiY7LacDQor7KCV7KCV7IicDQor7KCV7Jq07ISxDQor7KCV7Jqp7ZiEDQor7KCV7KSR7ZmYDQor7KCV7KO87JuQDQor7KCV64+Z7ISdDQor7KCV7Jqp7Zi4DQor7KCV7Ja17ZmUDQor7KCV66+47J6QDQor7KCV7IOB6rWtDQor7KCV7Jqp7Zi4DQor7KCV7Jq07ZeMDQor7KCV6rK97IigDQor7KCV67OR7Z2sDQor7KCV7Jqp7ZmUDQor7KCV7YOc7ZWZDQor7KCV7KCV6rCRDQor7KCV7Ja17IiYDQor7KCV7Jqp7ZmUDQor7KCV7YOc7ZWYDQor7KCV6riI6riwDQor7KCV7J287YOcDQor7KCV7Jqw7ISdDQor7KCV7YOc7LKgDQor7KCV7LC97JWUDQor7KCV7KKF7Z2sDQor7KCV7Jqw7JiBDQor7KCV7JyE67O1DQor7KCV7KSR64usDQor7KCV7J6s7ZuIDQor7KCV7Jqw7ZiEDQor7KCV7Jqp7ISxDQor7KCV7JuQ7JewDQor7KCV64+Z7ZalDQor7KCV7Jqw7ZiEDQor7KCV7IaM6rWtDQor7KCV6rK97Je0DQor7KCV6riw7ISxDQor7KCV7Jq067O1DQor7KCV67SJ7ISdDQor7KCV7LKg64yADQor7KCV66qF67CwDQor7KCV7Jq07ZiEDQor7KCV7ZmN67aEDQor7KCV7ZiE7LC9DQor7KCV7ISx7IiYDQor7KCV7JuF7Z2sDQor7KCV7JiB7ZiVDQor7KCV7J2A7ZmYDQor7KCV67OR67SJDQor7KCV7JuQ6raMDQor7KCV7JiB7ZiVDQor7KCV7ZmN6rOgDQor7KCV67aA7IicDQor7KCV7JuQ67aEDQor7KCV7IKs7Z2sDQor7KCV7J2Y7ZmYDQor7KCV7Jik7JikDQor7KCV7JuQ7ISdDQor7KCV7J6s66qFDQor7KCV7YyQ7IStDQor7KCV7J2E7Jq0DQor7KCV7JuQ7Iq5DQor7KCV7ZmN7KCVDQor7KCV64us7JuQDQor7KCV7ISx7JqwDQor7KCV7JuQ7JqpDQor7KCV65GQ67aADQor7KCV7ZmN6rOkDQor7KCV7KCV7IicDQor7KCV7JuQ7KGwDQor7KCV7Jyk7IicDQor7KCV7KCV656YDQor7KCV7Jqp7IigDQor7KCV7JuQ7KeEDQor7KCV7ISx7IStDQor7KCV7ISx7LKgDQor7KCV7JiB7ZmYDQor7KCV7JuQ7YOdDQor7KCV67Cx7JygDQor7KCV7Jew7IudDQor7KCV7ISx7YOcDQor7KCV7JuQ7ZiEDQor7KCV67OR7KGwDQor7KCV7ZWZ7J6QDQor7KCV7ISx7IStDQor7KCV7JyE7YOcDQor7KCV7KeE7LacDQor7KCV6ri47Z2sDQor7KCV7KCV66+8DQor7KCV7Jyg7JWUDQor7KCV64yA7JilDQor7KCV7Jqp67O1DQor7KCV7J6Q6rWtDQor7KCV7Jyg7LKgDQor7KCV64+Z6rWsDQor7KCV7ZiE7JmEDQor7KCV7KKF7IudDQor7KCV7Jyk6raMDQor7KCV7Zi47ZmYDQor7KCV6rSR7Zi4DQor7KCV67SJ7IiYDQor7KCV7Jyk6riwDQor7KCV7J6s64yADQor7KCV6rWQ7YOdDQor7KCV64us66+8DQor7KCV7Jyk642VDQor7KCV7ZW06recDQor7KCV7YOc7J20DQor7KCV7ZmY7IStDQor7KCV7Jyk7IOdDQor7KCV6rK97IiYDQor7KCV7Jm47IiYDQor7KCV7Iic7JqwDQor7KCV7Jyk7IiYDQor7KCV7J6s67SJDQor7KCV7ISg7Z2gDQor7KCV7Jqp7Z2sDQor7KCV7Jyk7IudDQor7KCV64+Z67SJDQor7KCV7KSR6rWtDQor7KCV7J6s7J6sDQor7KCV7Jyk7ZmUDQor7KCV7IK87IudDQor7KCV6riw7IudDQor7KCV7KCV7Je0DQor7KCV7J2A7JiBDQor7KCV7Jew6rOkDQor7KCV7LC97IStDQor7KCV7IOB7KSADQor7KCV7J2A7Z2sDQor7KCV7LCo7ISdDQor7KCV7JyE7ISdDQor7KCV64+Z67O1DQor7KCV7J2E7ISgDQor7KCV7YOc7IiYDQor7KCV7ZqM7KSRDQor7KCV7JiB66GADQor7KCV7J2E7IicDQor7KCV66qF7ISdDQor7KCV7KCV7IicDQor7KCV7ZW07IukDQor7KCV7J2Y7JuQDQor7KCV7KCV7IicDQor7KCV7Zqo7KeEDQor7KCV7Jyk7ISdDQor7KCV7J2Y7ZiEDQor7KCV7KO87J20DQor7KCV7JWg66y4DQor7KCV7KCV7Z2sDQor7KCV7J206recDQor7KCV67aA642VDQor7KCV7KKF6recDQor7KCV7Lmg7ZmYDQor7KCV7J206recDQor7KCV7Jqp6riwDQor7KCV67OR7LKgDQor7KCV7YOc7IudDQor7KCV7J207LacDQor7KCV7ISx7YOdDQor7KCV7Iic66GADQor7KCV7JiB7ZW0DQor7KCV7J207Zi4DQor7KCV7LaY7YOcDQor7KCV67OR6riwDQor7KCV7JiB7J20DQor7KCV7J207ZmYDQor7KCV7LKg7IicDQor7KCV7ZeM7Zi4DQor7KCV7LKg7KeEDQor7KCV7J217Zi4DQor7KCV7ZWc6rCRDQor7KCV6riw6re8DQor7KCV64us7ZiEDQor7KCV7J246recDQor7KCV6rK97ISxDQor7KCV7LaY7LSMDQor7KCV7ISx6recDQor7KCV7J247IOBDQor7KCV7Zi464+EDQor7KCV7Zi47JiBDQor7KCV7KCV6rWQDQor7KCV7J247IOBDQor7KCV6riw7ZmYDQor7KCV67SJ7J20DQor7KCV7YOc6riwDQor7KCV7J247IudDQor7KCV7Jqp7ZmYDQor7KCV7LCo6re8DQor7KCV6rK97Je0DQor7KCV7J247IudDQor7KCV7ISx7JiBDQor7KCV7JiB7IiYDQor7KCV7Iig7J6QDQor7KCV7J247J6sDQor7KCV7J6l7KGwDQor7KCV7JiB7ISdDQor7KCV7JiB64+ZDQor7KCV7J247KeEDQor7KCV6rK97ISgDQor7KCV7KO87ZmYDQor7KCV7YOc7J6sDQor7KCV7J247LGEDQor7KCV7KKF7IudDQor7KCV7ISg64+ZDQor7KCV7LaY7ISdDQor7KCV7J247YOcDQor7KCV7IOB7ISxDQor7KCV7Jil7IStDQor7KCV7IOB7Z2sDQor7KCV7J247YOcDQor7KCV66qF7ISdDQor7KCV6rCV7IudDQor7KCV7JiB7J6EDQor7KCV7J247ZmYDQor7KCV7J287KO8DQor7KCV7KCV7J20DQor7KCV66qF7JqpDQor7KCV7J247ZmYDQor7KCV7IiY656YDQor7KCV7ZKN6rOkDQor7KCV7YOc7LacDQor7KCV7J247Z2sDQor7KCV7Jil7KSRDQor7KCV7KCV7ZqoDQor7KCV7KKF7J28DQor7KCV7J286raMDQor7KCV66eQ7Zi4DQor7KCVIOuNlQ0KK+ygleyCvOyWkQ0KK+ygleydvOyYgQ0KK+ygle2VnOycpA0KK+ygleunjOq1rQ0KK+ygleyYge2YhA0KK+ygleydvOyasA0KK+ygleynhOyLnQ0KK+ygle2YleyehA0KK+ygle2VnOq3vA0KK+ygleydvO2VnA0KK+ygleyaqeyErQ0KK+ygleu0ieuqqA0KK+ygleycpO2ZmA0KK+ygleydvO2YuA0KK+ygleyerOyYpQ0KK+ygleyEseyyoA0KK+ygleygleyImA0KK+ygleydvO2ZmA0KK+ygleuztOusuA0KK+ygleyDgeuemA0KK+ygleyImOq4sA0KK+ygleyehOq4uA0KK+ygleyiheq3vA0KK+ygleyerOu0iQ0KK+ygle2DnOyEnQ0KK+ygleyehOyErQ0KK+ygle2YhOyaqQ0KK+ygleyInOybkA0KK+ygleyYgeq4sA0KK+ygleyehO2PiQ0KK+ygleq3nOyynA0KK+ygle2DnOuCqA0KK+ygle2YhO2ZmA0KK+ygleyepeuqqQ0KK+ygleyInOuztQ0KK+ygleyYgeyImA0KK+ygleyasO2YuA0KK+ygleyepeyEsQ0KK+ygleywveq2jA0KK+ygleyYgeyWkQ0KK+ygleyehOyEnQ0KK+ygleyepeyImA0KK+ygleuqheyVoA0KK+ygleuzte2DnA0KK+ygleq4uOyDgQ0KK+ygleyerOqyvQ0KK+ygley2qeuhnQ0KK+ygleydvOyInA0KK+ygle2DnO2YlQ0KK+ygleyerOq3nA0KK+ygleusuOyasQ0KK+ygleuqheugrA0KK+ygleyEoOuPmQ0KK+ygleyerOq3nA0KK+ygleyepe2drA0KK+ygleygleq2jA0KK+ygleygkOyYpA0KK+ygleyerOq3vA0KK+ygleyyoOq2jA0KK+ygleygkOyInA0KK+ygleyInOydtQ0KK+ygleyerOq3vA0KK+ygleyduOyLnQ0KK+ygleyaqeydtQ0KK+ygle2DnOyIoA0KK+ygleyerOu0iQ0KK+ygleynhOq4uA0KK+ygleq3nOqzpA0KK+ygleyDgeyImQ0KK+ygleyerOyEoA0KK+ygleyInOuMgA0KK+ygleq4sO2MkA0KK+ygleuegOyaqQ0KK+ygleyerOyEoA0KK+ygleybkOyXsA0KK+ygleqyve2ZmA0KK+ygleyEneuPmQ0KK+ygleyerOyImA0KK+ygleyGjOq3nA0KK+ygleywqOq3oA0KK+ygle2drOyYpQ0KK+ygleyerOyLnQ0KK+ygle2MlOyyoA0KK+ygleycpOyaqQ0KK+ygleqwleuPjA0KK+ygleyerOyYgQ0KK+ygleynhOybkA0KK+ygle2cmOyImA0KK+ygleq4uOycpA0KK+ygleyerOyalA0KK+ygleyasO2drA0KK+ygleyerOynhA0KK+ygle2DnO2ZlA0KK+ygleyerOyyoA0KK+ygle2YhO2DnA0KK+ygleyngeyLrA0KK+ygleuzkeyyoA0KK+ygleyerO2YhA0KK+ygleyYgeu5iA0KK+ygleyaqeyyoA0KK+ygleygleyEoA0KK+ygleyerO2YuA0KK+ygleygleyInA0KK+ygle2YnOunjA0KK+ygleyLoOuylA0KK+ygleyerO2YuA0KK+ygleq0ke2DnQ0KK+ygleyYge2YuA0KK+ygleyMjeybhQ0KK+ygleyerO2ZjQ0KK+ygleyYgeu0iQ0KK+ygleygle2ZmA0KK+ygleyCvOyekA0KK+ygleyerO2ZmA0KK+ygleygleyImA0KK+ygleyYgeywrA0KK+ygleyInO2DnA0KK+ygleygkOuNlQ0KK+ygleyiheyImA0KK+ygle2YhOyDgQ0KK+ygle2ZjeuqqA0KK+ygleygkOyInA0KK+ygleuFuOyYgQ0KK+ygleyInO2YuA0KK+ygleygle2biA0KK+ygleygkOyaqQ0KK+ygleygkOuFuA0KK+ygleyepeyglQ0KK+ygleuRkOyImA0KK+ygleygkOyhsA0KK+ygleycoO2ZmA0KK+ygle2DnOq1sA0KK+ygleyDgey5oA0KK+ygleygleq4uA0KK+ygleyerOyYgQ0KK+ygleq3gOyaqQ0KK+ygleyEseq2jA0KK+ygleygleyDgQ0KK+ygleuqheusuA0KK+ygleuCqOq2jA0KK+ygleyDgeyasQ0KK+ygleygleyErQ0KK+ygleuzkeq3vA0KK+ygleyDgeqzhA0KK+ygleu0ie2DnA0KK+ygleygleyImQ0KK+ygleygle2drA0KK+ygleyYgeqxtA0KK+ygleq0keuPmQ0KK+ygleygleyImQ0KK+ygleyaseqyvQ0KK+ygle2YhOuNlQ0KK+ygleyXsO2DnA0KK+ygleygleyInA0KK+ygleq4sOyasA0KK+ygleq4sO2YuA0KK+ygleyXsOuzkQ0KK+ygleygleyLnQ0KK+ygle2MkOydtQ0KK+ygle2VtO2YhA0KK+ygley2qeuwsA0KK+ygleygleyLnQ0KK+ygleyYgeq2jA0KK+ygleq4iOyImA0KK+ygleuLrOqzpA0KK+ygleygleyaqQ0KK+ygleuqheu0iQ0KK+ygleyaqe2YuA0KK+ygleyDgeyLnQ0KK+ygleygleybkA0KK+ygleumrO2VnA0KK+ygleqyveuPmQ0KK+ygleuzkeybkA0KK+ygleygle2YhA0KK+ygley2qe2YuA0KK+ygleykgOycpA0KK+ygleynhO2VnA0KK+ygleygle2ZlA0KK+ygleq3vOyLnQ0KK+ygle2YuOyYpQ0KK+ygleyEne2VmQ0KK+ygleygle2ZmA0KK+ygleqzoe2cmA0KK+ygleyerOybhQ0KK+ygle2DnOyjvA0KK+ygleyhsOusuA0KK+ygleybkOyImA0KK+ygleyjvOyEoA0KK+ygleq4uOyImA0KK+ygleyiheuLrA0KK+ygleqyveyImA0KK+ygleqyveykgA0KK+ygleyYge2MkA0KK+ygleyiheuMgA0KK+ygleyInOyYpA0KK+ygle2YhOyekA0KK+ygleuqhe2ZmA0KK+ygleyiheuNlQ0KK+ygleq1rOyekA0KK+ygle2XjOyVvA0KK+ygleuzkeq2jA0KK+ygleyiheuqqQ0KK+ygleydtO2YhA0KK+ygleyInOyerA0KK+ygleuzteyasA0KK+ygleyiheuvvA0KK+ygle2DnOyXtA0KK+ygleydmOq4uA0KK+ygleq4sOyImA0KK+ygleyiheyEoA0KK+ygleuzkeuPhA0KK+ygleuztOyLnQ0KK+ygleyasO2doA0KK+ygleyiheyImA0KK+ygle2DnOq4iA0KK+ygleu2gO2ZmA0KK+ygleyerO2DnA0KK+ygleyiheyImA0KK+yglSDshJ0NCivsoJXquIjsnbgNCivsoJXshJ3snqwNCivsoJXsooXsiKANCivsoJXsnbjsp4QNCivsoJXsmIHsiJwNCivsoJXsnKTsiJwNCivsoJXsooXsnbUNCivsoJXshKDtmIQNCivsoJXshJ3ssqANCivsoJXtmITsnpANCivsoJXsooXsp4QNCivsoJXsnbjtlZgNCivsoJXshKDsmqkNCivsoJXsmIHsiJgNCivsoJXsooXtg5wNCivsoJXsiJzqsr0NCivsoJXshLHshLgNCivsoJXsmqnrp4wNCivsoJXsooXtg5wNCivsoJXsnqzqtIANCivsoJXsooXqsbgNCivsoJXtmITsgrwNCivsoJXsooXtg5wNCivsoJXqt4DtmLgNCivsoJXrs7XsiJwNCivsoJXsnqzsm4UNCivsoJXsooXtmZgNCivsoJXsooXshJ0NCivsoJXsnqzrjZUNCivsoJXsoJXsmKQNCivsoJXso7zsl7QNCivsoJXrspTshLgNCivsoJXshLHsnbQNCivsoJXsooXqsJUNCivsoJXso7zsmIENCivsoJXsm5TsnbQNCivsoJXshJ3tlZgNCivsoJXsiJjsoJUNCivsoJXso7ztl4wNCivsoJXtg5zsi50NCivsoJXtg5ztlZwNCivsoJXrtInquLANCivsoJXso7ztmIQNCivsoJXtmqjsi6QNCivsoJXspJHtg4ENCivsoJXsiJjsiJgNCivsoJXso7ztmIQNCivsoJXtmZjsm5ANCivsoJXsiJjsmIENCivsoJXsmIHsiJgNCivsoJXso7ztmLgNCivsoJXrqoXtmIQNCivsoJXsmIHrjZUNCivsoJXso7zrrLgNCivsoJXso7ztmLgNCivsoJXtg5zrprwNCivsoJUg7KGwDQor7KCV7KSR7JqpDQor7KCV7KO87ZmYDQor7KCV7ISd7J20DQor7KCV7ZWE6riIDQor7KCV7Iic6ri4DQor7KCV7KO87ZmYDQor7KCV7ZeM7JqwDQor7KCV7J2Y6rG0DQor7KCV7YOc7KeEDQor7KCV7KSA7ISdDQor7KCV7ISx7JilDQor7KCV7LGE6rSADQor7KCV7Jq06raMDQor7KCV7KSA7IudDQor7KCV7LC97KeEDQor7KCV67SJ7IudDQor7KCVIOyaqQ0KK+ygleykke2ZlA0KK+ygleyImOuztA0KK+ygleygleq3vA0KK+ygleuzke2VnA0KK+ygleyngOyInA0KK+ygleuqheuMgA0KK+ygleydvOyXsA0KK+ygleyKueyEnQ0KK+ygleyngOyekA0KK+ygleyiheyInA0KK+ygleynhOq4uA0KK+ygleyYgeyasA0KK+ygleyngO2ZmA0KK+ygle2DnOyaqQ0KK+ygleyjvOyaqQ0KK+ygleustOq3nA0KK+ygleynhOqzpA0KK+ygleqwkeyErQ0KK+ygleyEneyerA0KK+ygleyaqeq3nA0KK+ygleynhOq1rQ0KK+ygleygleqwgQ0KK+ygleyaqeyekA0KK+ygleyEoOyEoA0KK+ygleynhOuPjA0KK+ygleyDge2biA0KK+ygleyiheq0gA0KK+ygleyiheyImA0KK+ygleynhOyDgQ0KK+ygleydvOyImQ0KK+ygle2VmeyImA0KK+ygleyYge2doA0KK+ygleynhOyEnQ0KK+ygleycoO2VhA0KK+ygleustOynhA0KK+ygleyEseq3nA0KK+ygleynhOyEuA0KK+ygleuqhey2nA0KK+ygleyYgeydvA0KK+ygleusuOyImA0KK+ygleynhOyLnQ0KK+ygleyduOyLnQ0KK+ygleuzkeyEnQ0KK+ygleyynOuPhA0KK+ygleynhOyYgQ0KK+ygleqyveyInA0KK+ygleu2hOyLnQ0KK+ygleyYge2ZmA0KK+ygleynhOyYgQ0KK+ygleyerOyLnQ0KK+ygle2ajO2ZmA0KK+ygle2MlOyZhA0KK+ygleynhOyaqQ0KK+ygleyYgeqxtA0KK+ygleyiheyXsA0KK+ygleygle2YhA0KK+ygleynhOyasA0KK+ygley5oOyYpQ0KK+ygleyngOq1rA0KK+ygleyXsOuPmQ0KK+ygleywqOqyvQ0KK+ygleyKueyIoA0KK+ygleuzkeuwsA0KK+ygleuLrO2ZmA0KK+ygleywqOq2jA0KK+ygle2VtOq1kA0KK+ygle2VreyInA0KK+ygleydtOyYgQ0KK+ygleywqOuPjA0KK+ygleyEseyasA0KK+ygleunjOq1kA0KK+ygleyEuOyyoA0KK+ygleywqOyLnQ0KK+ygle2DnOq1kA0KK+ygleqyveyEnQ0KK+ygleyDgeywrA0KK+ygleywqOyLnQ0KK+ygleyihe2YuA0KK+ygleuCmOuPmQ0KK+ygleyepeyduA0KK+ygleywqOybkA0KK+ygle2YuOyYpQ0KK+ygleq4iOyEsQ0KK+ygleuptO2DnA0KK+ygleywveuNlQ0KK+ygleywqO2DnA0KK+ygleq3gO2biA0KK+ygleygleydtQ0KK+ygleywveyImA0KK+ygle2VtOunjA0KK+ygley2mOq1rA0KK+ygleywqOuwsA0KK+ygleywveyLnQ0KK+ygleyYgeugqA0KK+ygleyyoOyInA0KK+ygleyerOyDgQ0KK+ygleywveynhA0KK+ygleydkeuPjA0KK+ygleycpO2drA0KK+ygleyXsOyEsQ0KK+ygleywve2DnQ0KK+ygle2YhOyXtA0KK+ygleydvOyYgQ0KK+ygleuylOyyoA0KK+ygleywve2YuA0KK+ygleygleynhA0KK+ygleywve2biA0KK+ygleycpOuegA0KK+ygleywve2ZmA0KK+ygleyyre2YhA0KK+ygleyerOyasA0KK+ygleygleyImQ0KK+ygleyxhOujoQ0KK+ygleyEseuPmQ0KK+ygleq3gO2ZlA0KK+ygleygleq4sA0KK+ygleyynOyLnQ0KK+ygleyihe2ctA0KK+ygleu0ieq4sA0KK+ygleydtOq3vA0KK+ygleyyoOq3nA0KK+ygleygle2ZlA0KK+ygleuPiOykgA0KK+ygleuptOq1rQ0KK+ygleyyoOyImA0KK+ygleynhO2YhA0KK+ygleyiheyXsA0KK+ygleusuOyjvA0KK+ygleyyoOyjvA0KK+ygleuFuOyIoA0KK+ygle2XjOq3nA0KK+ygleydvOyduA0KK+ygley2lOyblA0KK+ygleq4sOuqhQ0KK+ygleq4sOyInA0KK+ygleyaqeyWtQ0KK+ygley2mOq1kA0KK+ygle2YuOq3vA0KK+ygleuMgO2ZlA0KK+ygleyYgeuztQ0KK+ygley5mOybkA0KK+ygleyaqe2YhA0KK+ygleu2hOyImA0KK+ygleuvvOqzoA0KK+ygley5oOyEoA0KK+ygleygleuegA0KK+ygleyEne2drA0KK+ygleu0ieq2jA0KK+ygley+jOyEoA0KK+ygleu2hOq3nA0KK+ygleyYge2drA0KK+ygleqyveyImA0KK+ygley+jOyaqQ0KK+ygleyaqeq4uA0KK+ygleuMgO2YuA0KK+ygleyerOyEoA0KK+ygle2DnOqwkQ0KK+ygleywveqxtA0KK+ygleqyve2YuA0KK+ygleqyveq4sA0KK+ygle2DnOqzpA0KK+ygleyatOynkQ0KK+ygleq4sOuTnQ0KK+ygleyYgeyXsA0KK+ygle2DnOq3vA0KK+ygleuzke2DnQ0KK+ygley2lOyLnQ0KK+ygleykgO2DnA0KK+ygle2DnOq4uA0KK+ygleunjO2drA0KK+ygleq4uOqwlQ0KK+ygleyEse2DnA0KK+ygle2DnOuPhA0KK+ygleyInOydtA0KK+ygleq4sOyXtA0KK+ygleygleyInA0KK+ygle2DnOu0iQ0KK+ygleyEseyLnQ0KK+ygleyaqeyLnQ0KK+ygleyerOyImA0KK+ygle2DnOyEnQ0KK+ygle2XjOyEnQ0KK+ygleyDgeyImQ0KK+ygleybkOyihQ0KK+ygle2DnOyEsQ0KK+ygleyCvOunjA0KK+ygle2drO2ZmA0KK+ygleq4sOyEoA0KK+ygle2DnOyEsQ0KK+ygleygleuPmQ0KK+ygleuCqO2biA0KK+ygleyerOyXtA0KK+ygle2DnOyInA0KK+ygleuPme2YuA0KK+ygleyduO2dlA0KK+ygleydmOq3vA0KK+ygle2DnOyIoA0KK+ygleuCqOq2jA0KK+ygleqxtOydtA0KK+ygleuCqOuvvA0KK+ygle2DnOyLnQ0KK+ygle2XjOyekA0KK+ygleynhOyLnQ0KK+ygleyEseuCqA0KK+ygle2DnOyLnQ0KK+ygle2DnO2DnQ0KK+ygleyInOusuA0KK+ygleyiheqyvQ0KK+ygle2DnOyYgQ0KK+ygleyDgeq4iA0KK+ygleyEoOyerA0KK+ygleyEuOyErQ0KK+ygle2DnOyaqQ0KK+ygle2YuOybkA0KK+ygleyImOywrA0KK+ygleyImOyLnQ0KK+ygle2DnOyaqQ0KK+ygleyerO2DnQ0KK+ygle2VqOyImA0KK+ygleyaqey2nA0KK+ygle2DnOybkA0KK+ygleuzke2YuA0KK+ygleuPmeyihQ0KK+ygleuCqOyEnQ0KK+ygle2DnOycpA0KK+ygleyehOyYpQ0KK+ygleuPme2RnA0KK+ygleyEneyhsA0KK+ygle2DnOydvA0KK+ygleq4sO2ZmA0KK+ygleyYgeuhnA0KK+ygleyInOyImA0KK+ygle2DnO2YuA0KK+ygleyerO2VmQ0KK+ygleq4sO2YuA0KK+ygleyatOq2jA0KK+ygle2DnO2YuA0KK+ygleyaqeqzoA0KK+ygleq3nOyLnQ0KK+ygleyXrOuCqA0KK+ygle2DnO2ZmA0KK+ygleuFhO2YuA0KK+ygleyyoOq3oA0KK+ygleyDgeyInA0KK+ygle2DnO2ZmA0KK+ygleyInOyaqQ0KK+ygleyYpOycoA0KK+ygle2VtO2YuA0KK+ygle2DnO2ZmA0KK+ygleygleyDgQ0KK+ygleyerO2aqA0KK+ygleyLnO2biA0KK+ygle2MkOuTnQ0KK+ygleuqheydtA0KK+ygleu0ieyXtA0KK+ygleyiheuPhA0KK+ygle2MkOuTnQ0KK+ygleuPiOyLpA0KK+ygleqyveykkQ0KK+ygleydgOyEnQ0KK+ygle2MkOyglQ0KK+ygleyerOyynA0KK+ygleuLrOqzpA0KK+ygle2VnOuwsA0KK+ygle2MkO2DnA0KK+ygleyyreynhA0KK+ygleyerOyjvA0KK+ygleydtOydgA0KK+ygle2MkO2YhA0KK+ygleygkO2drA0KK+ygleynhOy2mA0KK+ygle2ZlOyDgQ0KK+ygle2Pieq3vA0KK+ygleustO2ZmA0KK+ygleuzke2drA0KK+ygleuzkeyEsQ0KK+ygle2VhOusmA0KK+ygle2VtO2biA0KK+ygleyImO2YuA0KK+ygleu2hOyXsA0KK+ygle2VhOu2hA0KK+ygleyEneqwkQ0KK+ygleyInO2YuA0KK+ygleq4iO2DnA0KK+ygle2VhO2YhA0KK+ygle2DnOuLqA0KK+ygleyYge2YuA0KK+ygle2MkO2DnA0KK+ygle2VmOyXsA0KK+ygleuzkeuNlQ0KK+ygleyEseyyoA0KK+ygleychOunjA0KK+ygle2VmOycpA0KK+ygleyduOyasA0KK+ygleyYgeywrA0KK+ygleuPme2YuA0KK+ygle2VmOyekA0KK+ygle2DnO2ZlA0KK+ygleyiheyglQ0KK+ygleyerO2YuA0KK+ygle2Vmeq3oA0KK+ygleycpOycpA0KK+yglSDsnbQNCivsoJXtmLjtmLgNCivsoJXtlZnrj5kNCivsoJXqs6TtmLgNCivsoJXsmIHrsKkNCivsoJXsmqnrtoQNCivsoJXtlZnrnpgNCivsoJXrjIDsi50NCivsoJXtl4zsi50NCivsoJXsmIHso7wNCivsoJXtlZzqsJANCivsoJXtmJztmIQNCivsoJXsmIHtg5wNCivsoJXsnqzspJENCivsoJXtlZzsmIENCivsoJXrtoDshKANCivsoJXsnYDtmLgNCivsoJXsm5TrtIkNCivsoJXtlZzsobANCivsoJXrtInsiJkNCivsoJXqsr3rp4wNCivsoJXquLDsi50NCivsoJXtlZzsobANCivsoJXsl7TsmqkNCivsoJXsg4HrrLgNCivsoJXsmIHtmZQNCivsoJXtlZzssqANCivsoJXtnJjsiJgNCivsoJXsmqntg50NCivsoJXsnKTsiJgNCivsoJXtlbTqsr0NCivsoJXshLHqt6ANCivsoJXsmqnqt5wNCivsoJXsiJztlZwNCivsoJXtlbTqt5wNCivsoJXsooXtmIQNCivsoJXsmIHrjZUNCivsoJXtlZzsg50NCivsoJXtlbTrtIkNCivsoJXtg5zquLANCivsoJXsiJztmLgNCivsoJXsmbjsmrQNCivsoJXtlbTsg4ENCivsoJXsiJzstpgNCivsoJXsmqnshJ0NCivsoJXsm5DsiJgNCivsoJXtlbTshLENCivsoJXshJ3rtIkNCivsoJXsiJzrgqgNCivsoJXsmqntnawNCivsoJXtlbTshLENCivsoJXssKjrk50NCivsoJXsoJXqta0NCivsoJXstpjshLgNCivsoJXtlbTsmIENCivsoJXqtIDsiJkNCivsoJXshLHsiJgNCivsoJXsmIHshJ0NCivsoJXtlbTsmqkNCivsoJXstpjtmLgNCivsoJXslpHqsJENCivsoJXsmIHssqANCivsoJXtlbTsmqkNCivsoJXrs5HtmIQNCivsoJXsg4HsiKANCivsoJXssL3siJgNCivsoJXtlbTsmrQNCivsoJXqsJHsmYQNCivsoJXqtJHtnaUNCivsoJXso7zsl7ANCivsoJXtlbTsobANCivsoJXslaDshK0NCivsoJXtmITshJ0NCivsoJXtmITtnawNCivsoJXtlbTssL0NCivsoJXsm5Tqsr0NCivsoJXqtJHtmIQNCivsoJXtg5zshJ0NCivsoJXtlbTssqANCivsoJXslrjsnKQNCivsoJXrs5HsobANCivsoJXtlZzrp4wNCivsoJXtlbTstpgNCivsoJXsoJXso7wNCivsoJXsm5Dsp4QNCivsoJXssL3tmLgNCivsoJXtl4ztg50NCivsoJXsoJDshKANCivsoJXsm5DspIANCivsoJXrj4TshK0NCivsoJXtmITrj4QNCivsoJXshKDsoJUNCivsoJXquLDqs6QNCivsoJXtg5zslZQNCivsoJXtmITrr7gNCivsoJXsm4XsmIENCivsoJXsmIHtg50NCivsoJXsooXrjZUNCivsoJXtmITslYQNCivsoJXsmKXrqqkNCivsoJXshKDso7wNCivsoJXqs4TshLENCivsoJXtmITsmKQNCivsoJXsnqzrqoUNCivsoJXsg4Hsi50NCivsoJXsg4Hqt6ANCivsoJXtmJXsmKQNCivsoJXstqnsnpANCivsoJXtjJDsooUNCivsoJXsnbztmLgNCivsoJXtmJzsmIENCivsoJXtlZnsmqkNCivsoJXstpjstpwNCivsoJXsg4HsnbQNCivsoJXtmJzsm5ANCivsoJXsiJzsp4ENCivsoJXsnqztm4gNCivsoJXsm5Drp4kNCivsoJXtmLjqsr0NCivsoJXsoJXsiJgNCivsoJXtlZztm4gNCivsoJXstqnrp4wNCivsoJXtmLjqt7wNCivsoJXsmIHtnawNCivsoJXsoJXrqqgNCivsoJXsoJDtmLgNCivsoJXtmLjsl7ANCivsoJXrjZXsm4UNCivsoJXrjIDtmIQNCivsoJXrj5nsnbQNCivsoJXtmLjtmIQNCivsoJXsmIHtg4ENCivsoJXqsJHssqANCivsoJXsnbjtg5wNCivsoJXtmY3quLANCivsoJXsooXrhbgNCivsoJXsg4HsiJwNCivsoJXshJ3so7wNCivsoJXtmY3shJ0NCivsoJXrs5Hrj4QNCivsoJXssL3tg5wNCivsoJUg7ISgDQor7KCV7ZmU7LaYDQor7KCV7KKF7KO8DQor7KCV67OR7IiYDQor7KCV7ISx7KCVDQor7KCV7ZmY7IOBDQor7KCV7KCV7YOcDQor7KCV6riw7JiBDQor7KCV7IOB7Zi4DQor7KCV7ZmY7YOdDQor7KCV65GQ6re8DQor7KCV7ISd7JqwDQor7KCV7JuQ7JykDQor7KCV7ZmY7YOdDQor7KCV7YOA65OdDQor7KCV7J247Zi4DQor7KCV7Jqp7ISgDQor7KCV7ZqM67SJDQor7KCV64+Z7J20DQor7KCV7ISx7LacDQor7KCV66+87ZmYDQor7KCV7Zqo7KGwDQor7KCV7YOc7KeEDQor7KCV7JiB7JuFDQor7KCV7KO87J20DQor7KCV7Zqo7ZmYDQor7KCV7JiB6recDQor7KCV7Jik64KoDQor7KCV7Jqp7JqwDQor7KCV7ZuI7IudDQor7KCV7Jqp67O1DQor7KCV7IOB67aEDQor7KCV7J2A7Zi4DQor7KCV7Z2l6rWtDQor7KCV7JiB7IiYDQor7KCV7JuQ64+ZDQor7KCV65GQ7Zi4DQor7KCV7Z2l6riwDQor7KCV7Iah6ri4DQor7KCV7YyQ7JmEDQor7KCV6rCR67SJDQor7KCV7Z2l7IiZDQor7KCV64+Z7IiYDQor7KCV7ZW0656YDQor7KCV67aE7Zi4DQor7KCV7Z2l7Je0DQor7KCV7Jio7LKgDQor7KCV7JuU7JuQDQor7KCV7J2Y7LmYDQor7KCV7Z2s7JuQDQor7KCV6riw6rWsDQor7KCV7JiB67KUDQor7KCV7IOB6re8DQor7KCV7Z2s7YOdDQor7KCV66qF7ZiBDQor7KCV7JuU6rOkDQor7KCV66y47Ja4DQor7KCV7Z2s7YOdDQor7KCV67OR7IiYDQor7KCV7ZeM66qpDQor7KCV7ZmN7JqpDQor7KCc6rCI67OR64+EDQor7KCc7YOc7JuF7IicDQor7KCc64yA7Zi464+ZDQor7KCc7J207ISd7IicDQor7KCc6rCI67OR7IigDQor7KCc7IiY6rSA7ZqoDQor7KCc66qF7LKc6ri4DQor7KCc7KSA6rec64KoDQor7KCc6rCI7YOc7JWUDQor7KCc7LKc7Z2s7J6lDQor7KCc7KCV7IiY64yADQor7KCc7IiY7Ja17YOcDQor7KCc6rK97IiZDQor7KCc7YOc7JqpDQor7KCc7JiB7J6QDQor7KCc7KSA7IOBDQor7KCc6rec7IudDQor7KCc7J6l7ZWZDQor7KCc7IaM7KSADQor7KCc7LCs7KeEDQor7KCc6riI67KUDQor7KCc7Jik7IudDQor7KCc6riw7LKgDQor7KCc7ZWc7Zi4DQor7KCc7IOB7JqwDQor7KCc7LC97Zi4DQor7KCc6rK97ZmUDQor7KCc7Zi47JuQDQor7KCc7Iic7J6QDQor7KCc7Jqp7ZmYDQor7KCc6rK97IiZDQor7KCc7YOc7JykDQor7KCc7Iuk6rK9DQor7KCcIOuwsA0KK+ygnOyDge2YhA0KK+ygnOyEne2YuA0KK+ygnOyYge2VtA0KK+ygnOuzkeyDgQ0KK+ygnO2ZjeyErQ0KK+ygnOunueybkA0KK+ygnOyerOyLnQ0KK+ygnOyEneyEoA0KK+ygnOyEseyEsQ0KK+ygnOuPmeybkA0KK+ygnOygkOyYpQ0KK+ygnOynhOyasA0KK+ygnOq3gOyEoA0KK+ygnOygley2mA0KK+ygnOygle2ZlA0KK+ygnOq4sOyhsA0KK+ygnOyerOyEnQ0KK+ygnOuPmeyDgQ0KK+ygnOyihe2YuA0KK+ygnOuzkeyaqQ0KK+ygnOyduOq3oA0KK+ygnOywveyImA0KK+ygnOyjvOyLnQ0KK+ygnOq4sOyInA0KK+ygnOyYgeyDgQ0KK+ygnOykkeyImA0KK+ygnOykgOyLnQ0KK+ygnOuCqOuegA0KK+ygnOuzkeq4sA0KK+ygnOyKueynhA0KK+ygnOyynOu0iQ0KK+ygnOyGjOyInA0KK+ygnOyInOyLnQ0KK+ygnOyduO2drA0KK+ygnOyynOu0iQ0KK+ygnOuCqO2VmQ0KK+ygnOyihe2YuA0KK+ygnOyDgeybhQ0KK+ygnO2Piey5mA0KK+ygnOuNleyatA0KK+ygnO2VnOuqhQ0KK+ygnOu0ieyInA0KK+ygnO2ZmOyEnQ0KK+ygnOynhOyDnQ0KK+ygnOyWuOyInA0KK+ygnOyXtO2doA0KK+yhsCDrrLQNCivsobDrp4ztnLQNCivsobDsnbzshJ0NCivsobDsnKTquLgNCivsobAg67aEDQor7KGw7ISx7ZiEDQor7KGw7KKF6ri4DQor7KGw6ri47KCQDQor7KGwIO2YuA0KK+yhsOyihe2drA0KK+yhsOyEseyerA0KK+yhsOywve2YuA0KK+yhsCDtmY0NCivsobDqsr3si50NCivsobDsuZjsl7QNCivsobDrr7zstpgNCivsobAg7ZmYDQor7KGw7J6s7ISgDQor7KGw7ZeM7IiYDQor7KGw7ZmN7IStDQor7KGw6rCV64KoDQor7KGw6riI7KO8DQor7KGw7ZmN7JqxDQor7KGw7ISx7IiYDQor7KGw6rG0656YDQor7KGw64+E7JqwDQor7KGw7JiB7JiBDQor7KGw7JiB7JqpDQor7KGw6rK96rWtDQor7KGw7JiB642VDQor7KGw7LaY7IudDQor7KGw7KeE7J6sDQor7KGw6rK9656YDQor7KGw7ZWZ7JmEDQor7KGw7ZmN7IicDQor7KGw7YOc6rK9DQor7KGw6rK9656YDQor7KGw7ISg7YOcDQor7KGw7JiB7ZmNDQor7KGw6rK97IucDQor7KGw6rK97IiYDQor7KGw7KO87JewDQor7KGw7JiB7Zi4DQor7KGw7IaM7J28DQor7KGw6rK97IiZDQor7KGw7KCV7JqwDQor7KGw66qF7JiBDQor7KGw7JuQ66eMDQor7KGw6rK97JilDQor7KGw66qF642VDQor7KGw7J2A64KcDQor7KGw67OR7ISdDQor7KGw6rK97LacDQor7KGw6rK97ZmYDQor7KGw7IOB7JilDQor7KGw7IOB7IudDQor7KGw6rK97Zi4DQor7KGw7J6s6riIDQor7KGw7KKF6re8DQor7KGwIOydhA0KK+yhsOqyve2YuA0KK+yhsOuzke2biA0KK+yhsOyihey2nA0KK+yhsOuzke2YuA0KK+yhsOqzhOyXsA0KK+yhsOyDgeyXsA0KK+yhsOyyoOuPjA0KK+yhsOyiheyXtA0KK+yhsOqzhOybkA0KK+yhsOyaqeyjvA0KK+yhsOybkOyhsA0KK+yhsOq4sO2XjA0KK+yhsOq0keuemA0KK+yhsOyerO2DnA0KK+yhsO2YhOyynA0KK+yhsOyerOq4uA0KK+yhsOq0keuemA0KK+yhsOyerOybkA0KK+yhsOusuOyyoA0KK+yhsOyImO2YuA0KK+yhsOq0keuemA0KK+yhsOywqOyXsA0KK+yhsOyDgeydgA0KK+yhsOyYpe2YuA0KK+yhsOq0keybhQ0KK+yhsOyCvOyngA0KK+yhsOydtO2DnA0KK+yhsO2VnOyEnQ0KK+yhsOq0ke2doA0KK+yhsOyduOqyvQ0KK+yhsOyehO2YuA0KK+yhsOydkeyYpQ0KK+yhsOq1req0kQ0KK+yhsOygleyyoA0KK+yhsOyiheu0iQ0KK+yhsOuzkeyDgQ0KK+yhsOq3gOyXsA0KK+yhsOygleyLrA0KK+yhsOyKueyEnQ0KK+yhsOyiheyInA0KK+yhsOq3gOyekA0KK+yhsOyDgeyXsA0KK+yhsOq4sOyEnQ0KK+yhsOyiheq3nA0KK+yhsOq3nOuMgA0KK+yhsOunjOuPhA0KK+yhsOyCvO2biA0KK+yhsOyYgeq3nA0KK+yhsOq3nOyDgQ0KK+yhsOuRkO2YhA0KK+yhsOq4sOy2nA0KK+yhsOyEseyInA0KK+yhsOq3nOyDgQ0KK+yhsOyasO2DnA0KK+yhsO2Vme2YuA0KK+yhsOygleqyrA0KK+yhsOq3nOyDgQ0KK+yhsOywveykgA0KK+yhsOyjvO2YhA0KK+yhsOyInO2RnA0KK+yhsOq3nOyImA0KK+yhsO2drOyYpA0KK+yhsOywveq3vA0KK+yhsOyEse2VmQ0KK+yhsOq3nOyYpA0KK+yhsOybkOyImA0KK+yhsO2YuOyxhA0KK+yhsO2drOq3nA0KK+yhsOq3nOyYpA0KK+yhsOuzteydtA0KK+yhsOyXsO2ZmA0KK+yhsO2YuO2drA0KK+yhsOq3nOyglQ0KK+yhsOyaqeyImQ0KK+yhsCDsmqkNCivsobDqsr3rr7gNCivsobDqt5zsspwNCivsobDtmITqsJENCivsobDsspztmZQNCivsobDquIjsobANCivsobDqt5ztmZQNCivsobDslYjsiJkNCivsobDsnbzquLANCivsobDsg4HsiJwNCivsobDqt7zsoJwNCivsobDssL3sspwNCivsobDrs5Hsi50NCivsobDsiJztlZwNCivsobDquIjsmKUNCivsobDshLHsobANCivsobDtmY3snpANCivsobDrhbjrtIkNCivsobDquIjsnpANCivsobDspJHsspwNCivsobDsirnrj4QNCivsobDsnZHtnLQNCivsobDquLDrj5kNCivsobDrj5ntmZgNCivsobDshJ3tmZgNCivsobDssL3sp4QNCivsobDrgqjtmIENCivsobDsooXsiJgNCivsobDsmqnrjZUNCivsobDsnqzsiJkNCivsobDrgrTsmqkNCivsobDsnbTrnb0NCivsobDsooXsoJUNCivsobDtjJDrjZUNCivsobDri6zqsr0NCivsobDsnqztlbQNCivsobDtjJDsmqkNCivsobDsooXqt5wNCivsobDri6zqtowNCivsobDso7zqsJENCivsobDsoJDsnKQNCivsobDri6ztmZQNCivsobDri6zshJ0NCivsobDtlbTtmLgNCivsobDrs7XrspQNCivsobDquIjtmZgNCivsobDri6zshJ0NCivsobDsoJXqtawNCivsobDrj4Tqt7wNCivsobDstpjquLgNCivsobDrjIDtmZQNCivsobDtnazquLANCivsobDrjIDsp4QNCivsobDshLjtmIQNCivsobDrjIDtmZQNCivsobDqt7zqta0NCivsobDsnqzqsr0NCivsobDrrLjrnoANCivsobDrjIDtmZQNCivsobDshJ3rpqwNCivsobDsnqztnaANCivsobDquLDstpwNCivsobDrjZXrnpgNCivsobDsmIHsobANCivsobDtg5zsiJgNCivsobDsmqnqtZANCivsobDrjZXsnoQNCivsobDrs7XtmZQNCivsobDssL3si50NCivsobDsnqXsmrANCivsobDrjZXso7wNCivsobDspIDqt5wNCivsobDsnKTssqANCivsobDrgpnsiJkNCivsobDrjZXtnawNCivsobDrj4TshJ0NCivsobDsnbzqta0NCivsobDrp4ztmLgNCivsobDrj4TsmqkNCivsobDsnbjtmLgNCivsobDsoJXsiJgNCivsobDtlZztmZgNCivsobDrj4TsoJwNCivsobDsooXrj4QNCivsobDsg4HtmY0NCivsobDstqnsiJgNCivsobDrj5nsl7QNCivsobDsgrzqtowNCivsobDsmqnqt7wNCivsobDshKDshKQNCivsobDrj5nsoJANCivsobDsp4TsmrANCivsobDsoJXsspwNCivsobDsooXsmrQNCivsobDrj5nssqANCivsobDsoJXsiJgNCivsobDtmLjssqANCivsobDtmITrtIkNCivsobDrj5ntm4gNCivsobDspJHsg4ENCivsobDrs5Hsg4ENCivsobDrj5nrjIANCivsobDrkZDtmIQNCivsobDrs7XrjZUNCivsobDsmIHsiJgNCivsobDrp4zsmrANCivsobDrk53smqkNCivsobDqt5zshJ0NCivsobDtmJztmLgNCivsobDquLDtlYQNCivsobDrp4ztmLgNCivsobDsnqztg5wNCivsobDsmqnqs6QNCivsobDsmKTshJ0NCivsobDrp5Dsg4ENCivsobDtmoztmZgNCivsobDsuaDsiJgNCivsobDrtIntmIQNCivsobDrp5DtlZkNCivsobDtg5zsiJgNCivsobDrkZDsnqwNCivsobDsnqzshJ0NCivsobDrp7nsobANCivsobDsmqnrtIkNCivsobDsnqzsnqwNCivsobDtmLjsiJwNCivsobDrqoXsiJkNCivsobDsmIHtmZgNCivsobDtg5zsi50NCivsobDsoJzsnpANCivsobDrqoXtmIQNCivsobDssq3qt7wNCivsobDssq3tg50NCivsobDrtInsiJgNCivsobDrrLTshK0NCivsobDrp4zrjZUNCivsobDtlYTqs6QNCivsobDsnbTtmIQNCivsobDrrLTsm5ANCivsobDsooXsmIENCivsobDsg4HtmLgNCivsobDshLHsiJwNCivsobDrrLjqt5wNCivsobDsooXtnawNCivsobDsnYDshLENCivsobDslZTshLENCivsobDrrLjshJ0NCivsobDsmIHrnpgNCivsobDshLjqt5wNCivsobDtg5zqt5wNCivsobDrrLjtmqgNCivsobDrs5HrjZUNCivsobDsp4TsnbwNCivsobDqtoztnawNCivsobDrr7jqsr0NCivsobDshLHsmIENCivsobDtg5zrp4wNCivsobDshLHsobANCivsobDrr7jshKANCivsobDrgqjsoJUNCivsobDsiJnshKANCivsobDsirnqs6QNCivsobDrr7zrgqgNCivsobDspJHquLgNCivsobDsmqnsnpANCivsobDtj4nsiJgNCivsobDrr7zsnqwNCivsobDsi6DquLANCivsobDqt5ztm4gNCivsobDsm5DtmLgNCivsobDrr7ztmLgNCivsobDqsr3qsrgNCivsobDsnqXtg5wNCivsobDspIDqt5wNCivsobDrsLHshK0NCivsobDshKDtmLgNCivsobDrjIDstpwNCivsobDsiJjtmZgNCivsobDrsLHshK0NCivsobDrrLTquLANCivsobDsiJjrs7UNCivsobDsnqzspJENCivsobDrspTrnpgNCivsobDquIjsmqkNCivsobDtmZTsp4QNCivsobDsiJjsiJgNCivsobDrs5HqsbQNCivsobDqt6DshJ0NCivsobDsnqzsmIENCivsobDrrLTqs6QNCivsobDrs5HqtawNCivsobDsmIHsp4QNCivsobDquLDslaANCivsobDshLHsiJwNCivsobDrs5Hqt5wNCivsobDsi6Dqt5wNCivsobDquLjshJ0NCivsobDssKjso7wNCivsobDrs5HsiJgNCivsobDsmbjsoJUNCivsobDso7zslaANCivsobDrp5Dqsr0NCivsobDrs5HsiJwNCivsobDsoJXsl7QNCivsobDsoJXshJ0NCivsobDsoJXtnawNCivsobDrs5HsmKQNCivsobDsjI3tmIQNCivsobDsnqXrj5kNCivsobDsmIHtmZgNCivsobDrs5HsmrANCivsobDsiJzquLANCivsobDsm5DslZQNCivsobDsg4HqtawNCivsobDrs5HspIANCivsobDsoJXshJ0NCivsobDsnKTsi50NCivsobDsmIHrjZUNCivsobDrs5HtmIQNCivsobDtlbTrtIkNCivsobDsp4DsmKUNCivsobDrs7XsiJwNCivsobDrs7XrnpgNCivsobDrjZXrj5kNCivsobDtmLjsiJwNCivsobDquLDsiKANCivsobDrs7XrnpgNCivsobDrj5ntnawNCivsobDshJ3tmLgNCivsobDtg5zssqANCivsobDrs7XsmqkNCivsobDsnZHssqANCivsobDsnqztmLgNCivsobDsirnsmIENCivsobDrs7XsoJwNCivsobDsooXtj6wNCivsobDrjZXshK0NCivsobDshLHrrLgNCivsobDrtInqt5wNCivsobDsnqzsiJgNCivsobDstpjsnqwNCivsobDrs5HtnawNCivsobDrtInro6ENCivsobDsp4TtmIQNCivsobDqs4TssKgNCivsobDtmY3rj5kNCivsobDrtInshJ0NCivsobDrgpntnawNCivsobDtg5zquLgNCivsobDsmIHroYANCivsobDrtInsiJwNCivsobDsnqzsobANCivsobDri6zsnpANCivsobDsmIHsmrENCivsobDrtIntmLgNCivsobDrs7Xqt7wNCivsobDsg4HqsJENCivsobDsg4HspIANCivsobDrtoDtmZgNCivsobDsnqztnawNCivsobDsp4TtnaANCivsobDrj5nssqANCivsobDrtoTsnbQNCivsobDsooXsiJgNCivsobDshLHqs7UNCivsobDsoJzsmqkNCivsobDsgrzrj4wNCivsobDsm5Dtg50NCivsobDsgrzquLgNCivsobDsp4Tqt5wNCivsobDsgrzrj4wNCivsobDshKDsl7ANCivsobDsmIHrrLgNCivsobDrrLjsmIENCivsobDsgrzsmqkNCivsobDrtoTqt5wNCivsobDsg4HsiJgNCivsobDrs5HrgqgNCivsobDsg4HquLANCivsobDqt5zqs6QNCivsobDsmqnsiJwNCivsobDshLHtmZQNCivsobDsg4HrnpgNCivsobDrp5DrnoANCivsobDsg4HshK0NCivsobDsnqXtlbQNCivsobDsg4HroZ0NCivsobDsnbTsnbgNCivsobDshLjtmLgNCivsobDsoJXsm5ANCivsobDsg4HrqqkNCivsobDsg4HshLENCivsobDrs5HtnawNCivsobDtg5ztg50NCivsobDsg4Hsl7ANCivsobDsoJXsmqkNCivsobDtg5zsmrANCivsobDsp4Tsl7ANCivsobDsg4HsmKQNCivsobDsmIHtg50NCivsobDrj5ntm4gNCivsobDrgpnsm4UNCivsobDsg4HsmKUNCivsobDrjIDsmqkNCivsobDsnqzsobANCivsobDssKjrs5ENCivsobDsg4HsmqkNCivsobDsoJXstpgNCivsobDtlZzrtIkNCivsobDsmIHsi50NCivsobDsg4Htg5wNCivsobDsmqnsiJkNCivsobDssq3tm4gNCivsobDsoJXslpENCivsobDsg4HtlZkNCivsobDsiJnsiJkNCivsobDquIjssqANCivsobDqt7zrp4wNCivsobDsg4HtmLgNCivsobDshKDrjIANCivsobDstpjtnaANCivsobDrj4TsiJkNCivsobDshJ3rnb0NCivsobDshJ3snpANCivsobDsooXtmqgNCivsobDsnqzrjZUNCivsobDshJ3rnpgNCivsobDsnoTsl7ANCivsobDshozsmIENCivsobDsiJzsp4QNCivsobDshJ3rp4wNCivsobDqs4TsoJANCivsobDsg4HsmqkNCivsobDssqDsiKANCivsobDshJ3slZQNCivsobDtlbTsm5ANCivsobDqsr3rsLENCivsobDsnKTquLANCivsobDshJ3sp4ANCivsobDsooXsmKUNCivsobDsoJXsmqkNCivsobDsmqnsnKQNCivsobDshJ3tmIQNCivsobDsnqzrgqgNCivsobDrgqjssqANCivsobDsnoTsoJUNCivsobDshKDsoJwNCivsobDsp4TspJENCivsobDsp4TtmLgNCivsobDsnqztnawNCivsobDshKDsoJwNCivsobDssL3tmLgNCivsobDtl4ztmIQNCivsobDrs5HquLANCivsobDshLHqs6QNCivsobDsiJzsiJgNCivsobDqsr3spIANCivsobDslpHsoJUNCivsobDshLHqta0NCivsobDsnbXsoJwNCivsobDsmIHsnpANCivsobDsnZHsiJwNCivsobDshLHqtowNCivsobDsoJXsnbQNCivsobDtlZzshKANCivsobAg6re8DQor7KGw7ISx6re8DQor7KGw7ZmN7ZmYDQor7KGw7ISx7J20DQor7KGw7JiB7ZmNDQor7KGw7ISx65OdDQor7KGw66+47LaYDQor7KGw7JiB7KGwDQor7KGw67OR6raMDQor7KGw7ISx66OhDQor7KGw6reA6ri4DQor7KGw64us7IOBDQor7KGw7Lmg6rSADQor7KGw7ISx67O1DQor7KGw7J2467aADQor7KGw7J286raMDQor7KGw6rSR7ISgDQor7KGw7ISx7IicDQor7KGw7KCV7Z2sDQor7KGw7Iic7JiBDQor7KGw7ISd7ZmYDQor7KGw7ISx7JilDQor7KGw6rCR6riwDQor7KGw7LKc7ZmYDQor7KGw7Iug6rWQDQor7KGw7ISx7JqwDQor7KGw7J6s67SJDQor7KGw7Iic7ISdDQor7KGw7J6s7ISgDQor7KGw7ISx7KeEDQor7KGw7J6E7J28DQor7KGw6rWQ7ZmYDQor7KGw7LCs7IigDQor7KGw7ISx7LKcDQor7KGw7Jqp7YOdDQor7KGw7Jq07YOcDQor7KGw7JiB66GcDQor7KGw7ISx7ZiEDQor7KGw7J6s642VDQor7KGw7IaM7ZW0DQor7KGw7IiY7Je0DQor7KGw7ISx7ZmYDQor7KGw7ZmY6rWtDQor7KGw7KO87IiZDQor7KGw67OR7ZWcDQor7KGw7IaM7ISdDQor7KGw6rSR7Zi4DQor7KGw7J2A7IudDQor7KGw7YOc7J24DQor7KGw7IaM7IicDQor7KGw6riI7ISgDQor7KGw64+Z6re8DQor7KGw7JiB6riwDQor7KGw7IaM7IigDQor7KGw7JiB7ZWZDQor7KGw7J6s7JuQDQor7KGw7YOc7JuQDQor7KGw7IaM7KGwDQor7KGw7ISx66eMDQor7KGw7Iic7KeEDQor7KGw7JuU7JqpDQor7KGw7IaQ7JqpDQor7KGw7J286rWsDQor7KGw7JiB7J20DQor7KGw7KCV7IiYDQor7KGw7IiY642VDQor7KGw7LaY64+IDQor7KGw7ZeM65OdDQor7KGw7J6s7IicDQor7KGw7IiY64+ZDQor7KGw67O17JilDQor7KGw7J6s7IudDQor7KGw7Ja47Zi4DQor7KGw7IiY7JWUDQor7KGw7ISd66qpDQor7KGw6re86recDQor7KGw7J6s7KCVDQor7KGw7IiY7JWUDQor7KGw6rCV7IStDQor7KGw7LaU7IiYDQor7KGw7KO87ZmYDQor7KGw7IiY7JuQDQor7KGw7Kad6riwDQor7KGw67OR66eMDQor7KGw7ISx6rWtDQor7KGw7IiY7LCsDQor7KGw7Jyk67CwDQor7KGw7J247KGwDQor7KGw7IK87ISgDQor7KGw7IiY7YOcDQor7KGw66+87ISxDQor7KGw7J6R7J6QDQor7KGw7JuQ642VDQor7KGw7IiY7ZmYDQor7KGw7J287IicDQor7KGw7Jqp6rK9DQor7KGw7LC97JuQDQor7KGw7Iic64KoDQor7KGw7IK867O1DQor7KGw7KO86rWsDQor7KGw7Iig7Je0DQor7KGw7Iic65OdDQor7KGw6rK97LKgDQor7KGw7JiB7IiZDQor7KGw7LaY64+EDQor7KGw7Iic7JWUDQor7KGw7JWI642VDQor7KGw66qF7JmEDQor7KGw7Jqp64+ZDQor7KGw7Iic7JWUDQor7KGw7KKF7J6sDQor7KGw7J6s7JewDQor7KGw67OR7LKgDQor7KGw7Iic7JewDQor7KGw6rK967KUDQor7KGw7YOc67aVDQor7KGw7ZW0642VDQor7KGw7Iic7J6sDQor7KGw6riw64WADQor7KGw7KCQ6re8DQor7KGw7ISx6re8DQor7KGw7Iic7J6sDQor7KGw6rK97IukDQor7KGw7KCQ6regDQor7KGw7KCV7JiBDQor7KGw7Iic7KCcDQor7KGw6rG0642VDQor7KGw7KCV7KSADQor7KGw66y47Z2sDQor7KGw7Iic7KeRDQor7KGw642V7IiYDQor7KGw7Lmg7KeEDQor7KGw7J6l7JewDQor7KGw7Iic7ZiEDQor7KGw7ZmN7IudDQor7KGw7J6E7Je0DQor7KGw7J2464yADQor7KGw7Iq566y0DQor7KGw7JyE7Zi4DQor7KGw7J247KeEDQor7KGw7IiY7KKFDQor7KGw7IyN7J20DQor7KGw7Iud67CwDQor7KGw7IOB7IiYDQor7KGw7Zi467CVDQor7KGw7JWI7J6sDQor7KGw7JiB7JilDQor7KGw7Jqp7JqwDQor7KGw64+Z7JqwDQor7KGw7JWg7KO8DQor7KGw67OR7JqwDQor7KGw7Iic7JqpDQor7KGw7Iic6regDQor7KGw7JaR656YDQor7KGw64yA7IStDQor7KGw7KeE7JuQDQor7KGw7KCV7IOBDQor7KGw7Ja17KCcDQor7KGw67OR7IudDQor7KGw7Jq07Z2sDQor7KGw6rCR7JilDQor7KGw7Jew7J20DQor7KGw64+E7YOcDQor7KGw64us7IiZDQor7KGw7KCc6re8DQor7KGw7Jew7J6QDQor7KGw7ISg7IigDQor7KGwIOuTnQ0KK+yhsOyYpO2YuA0KK+yhsOyYgeq4sA0KK+yhsOyerOyhsA0KK+yhsO2YhOyjvA0KK+yhsOuFuOyInA0KK+yhsOyYgeq4sA0KK+yhsOuLpOyyoA0KK+yhsOu2hOuhnQ0KK+yhsOyGjOuemA0KK+yhsOyYgeq4sA0KK+yhsOu2hOuqhQ0KK+yhsOuqheq3vA0KK+yhsOyYge2drA0KK+yhsOyYgeq4uA0KK+yhsOuFuOyErQ0KK+yhsO2VtOyEoA0KK+yhsCDshJ0NCivsobDsmIHrnpgNCivsobDsmIHqt7wNCivsobDrs7Xsi50NCivsobDsnKHtmLgNCivsobDsmIHrnpgNCivsobDsmqnsiJgNCivsobDrrLjqt7wNCivsobDsmrTtmZQNCivsobDsmIHrnpgNCivsobDsl7DsiJwNCivsobDtlZnsg4ENCivsobDstpjshLENCivsobDsmIHrp4wNCivsobDrhbjshLENCivsobDsg4Hqt5wNCivsobDsoJDqtIANCivsobDsmIHrqqkNCivsobDsmqnqs6ANCivsobDsuaDshJ0NCivsobDquLDtnawNCivsobDsmIHshJ0NCivsobDsoJXtjJANCivsobDrr7jtg4ENCivsobAg7Z2sDQor7KGw7JiB7ISxDQor7KGw7ISx7IudDQor7KGw7KeE7ISdDQor7KGw64+Z64+MDQor7KGw7JiB7IiYDQor7KGw7KCQ7JiBDQor7KGw7IiZ7KO8DQor7KGw6riw642VDQor7KGw7JiB7IiYDQor7KGw7KKF7Je0DQor7KGw7YOc7ZmYDQor7KGw7ISx7ISdDQor7KGw7JiB7IiZDQor7KGw6rSR7Je0DQor7KGw6reA7JuQDQor7KGw7IiY7ZmYDQor7KGw7JiB7JilDQor7KGw64+Z7JilDQor7KGw7ZW0642VDQor7KGw6ri47JewDQor7KGw7JiB7J6QDQor7KGw7IOB7J6QDQor7KGw6rG07ZWZDQor7KGw7LaY7ZmYDQor7KGw7JiB7J6QDQor7KGw66qF7Je9DQor7KGw7Zi47KGwDQor7KGw7IOB7Z2gDQor7KGw7JiB7J6sDQor7KGw67OR7IicDQor7KGw7JyE7ISdDQor7KGw64yA7IicDQor7KGw7JiB7KCcDQor7KGw7KeE7JqwDQor7KGw7ZWc7IiYDQor7KGw7ISx642VDQor7KGw7JiB7KGwDQor7KGw7JiB7LCsDQor7KGw7IK87LKcDQor7KGw7YOc7IStDQor7KGw7JiB7KeRDQor7KGw7KeE7ZqoDQor7KGw7IiY7KO8DQor7KGw7Jyk7ISdDQor7KGw7JiB7LKgDQor7KGw7KKF7ISxDQor7KGw7KCV66OhDQor7KGw7ZWZ6rSADQor7KGw7JiB7YOBDQor7KGw7Jqx7IStDQor7KGw7Jyk7ZmNDQor7KGw7KO87IiYDQor7KGw7JiB7ZWZDQor7KGw7Jew67O1DQor7KGw7LaY6riwDQor7KGw6rCA642VDQor7KGw7JiB7Zi4DQor7KGw7IiY67O1DQor7KGw7IK867CwDQor7KGw67OR64yADQor7KGw7JiB7Zi4DQor7KGw7IOB7IOdDQor7KGw7J247KeADQor7KGw7J287KCVDQor7KGw7JiB7ZqoDQor7KGw7Jil7J6sDQor7KGw64yA64+ZDQor7KGw7Jm466a8DQor7KGw7JiB7Z2sDQor7KGw6riI7JWgDQor7KGw7ZWZ656YDQor7KGw6riw7J20DQor7KGw7JiI7J24DQor7KGw7KeE7JaRDQor7KGw7Jqp64+EDQor7KGw7Iic7JewDQor7KGw7Jik7YOcDQor7KGw7KKF7ISdDQor7KGw7J6l6rOkDQor7KGw67SJ7JewDQor7KGw7Jil6rOEDQor7KGw7KCV7LKgDQor7KGw7KO87JewDQor7KGw7Z2s7ZGcDQor7KGw7Jil67aEDQor7KGw7KCV66y0DQor7KGw66y47ISgDQor7KGw7KCV7IicDQor7KGw7Jil7ISgDQor7KGw7KeE64W4DQor7KGw64+Z7ZqoDQor7KGw7Iic7Z2sDQor7KGw7Jil7ZiEDQor7KGw7ZWY7JmEDQor7KGw7KKF7IiYDQor7KGw7J6s66+8DQor7KGw7Jm47IigDQor7KGw7J247Zi4DQor7KGw6rK97ZmYDQor7KGw7IiY7ISdDQor7KGw7Jqp6rG0DQor7KGw7J2A7JiBDQor7KGw7J6s66eMDQor7KGw64yA7LacDQor7KGw7Jqp6raMDQor7KGw7Iic7ZmUDQor7KGw7ISg6regDQor7KGw7ZiB7IS4DQor7KGw7Jqp6re8DQor7KGw7KSA7IStDQor7KGw6rec7ISgDQor7KGw67OR7LKcDQor7KGw7Jqp6riwDQor7KGw7Iug6re8DQor7KGw7YOc7KGwDQor7KGw7KKF7KSADQor7KGw7Jqp64yADQor7KGw7J6l7LKcDQor7KGw7J6s7IOBDQor7KGw7YyQ7IiZDQor7KGw7Jqp64+MDQor7KGw7KKF7LC9DQor7KGw7KKF7Zi4DQor7KGw64Ko7IigDQor7KGw7Jqp67O1DQor7KGw7KKF7JqwDQor7KGw67SJ7JiBDQor7KGw7J6s6recDQor7KGw7Jqp67aEDQor7KGw6rK97LKgDQor7KGw6rWs7LaYDQor7KGw7J287JilDQor7KGw7Jqp7ISxDQor7KGw7ISd7KeEDQor7KGw7IiZ7Zi4DQor7KGw7Jqp7JqpDQor7KGw7Jqp7IicDQor7KGw7ISx7Zi4DQor7KGw7JuQ7J6EDQor7KGw7J287Zi4DQor7KGw7Jqp7IigDQor7KGw7Jqw7ISgDQor7KGw7ZmN7KCVDQor7KGw7J287ZmYDQor7KGw7Jqp7KSADQor7KGw7YOc7Je0DQor7KGw7KSR7JW8DQor7KGw7Jqp6rK9DQor7KGw7Jqp7LacDQor7KGw7ZmU7ISdDQor7KGw66y47Zi4DQor7KGw7J287J20DQor7KGw7Jqp7YOdDQor7KGw7IOB7IOBDQor7KGw7KCQ7JqpDQor7KGw7YOc7IOBDQor7KGw7Jqp7YyQDQor7KGw7LCs7KCVDQor7KGwIOyDgQ0KK+yhsOyihe2YuA0KK+yhsOyaqe2VmQ0KK+yhsOqyve2YuA0KK+yhsOygleu2hA0KK+yhsO2DnOyYgQ0KK+yhsOyaqe2VnA0KK+yhsOqyveuNlQ0KK+yhsO2YhOyErQ0KK+yhsOu2hO2ZmA0KK+yhsOyaqe2YgQ0KK+yhsOygle2YuA0KK+yhsO2aqO2DnA0KK+yhsOyjvOq4sA0KK+yhsOyaqe2YuA0KK+yhsOuzkeydtA0KK+yhsOuqheyXtA0KK+yhsOy2qe2YuA0KK+yhsOyaseuemA0KK+yhsOyCvOyEsQ0KK+yhsOyngOynhA0KK+yhsOyduO2DnQ0KK+yhsOyatO2VmQ0KK+yhsOychOydvA0KK+yhsOyihe2ZmA0KK+yhsOyImOqwkQ0KK+yhsOybkOq3nA0KK+yhsOycoe2biA0KK+yhsOunjOywrA0KK+yhsOuqheyekA0KK+yhsOybkOyerA0KK+yhsOyDgeyduA0KK+yhsO2YuO2YuA0KK+yhsO2DnOydtA0KK+yhsOybkOyjvA0KK+yhsOq1kO2YuA0KK+yhsOyxhOuNlQ0KK+yhsOuNleuLrA0KK+yhsOybkO2YhA0KK+yhsOykkeyEnQ0KK+yhsOyDgeuwsA0KK+yhsOyInOyXtA0KK+yhsOybkO2YuA0KK+yhsOygle2YhA0KK+yhsO2YuO2YhA0KK+yhsOyImOyekA0KK+yhsOychOyhsA0KK+yhsO2MkOyImA0KK+yhsOywveyhsA0KK+yhsOqyveyImA0KK+yhsOycoeyhsA0KK+yhsOyYgeyDnQ0KK+yhsOyInOqzpA0KK+yhsOu0ieyErQ0KK+yhsOycpOq1rA0KK+yhsOq3vOyImA0KK+yhsOycpO2drA0KK+yhsOuzkeu2gA0KK+yhsOycpOq4sA0KK+yhsOyEoOyImA0KK+yhsOy2mOq1kA0KK+yhsOywqOq4sA0KK+yhsOycpOuemA0KK+yhsOyerOq2jA0KK+yhsOyLoOyEoA0KK+yhsOyyoOywvQ0KK+yhsOycpOyCvA0KK+yhsO2Vme2drA0KK+yhsO2YleyImA0KK+yhsO2MkOydtQ0KK+yhsOycpOyLnQ0KK+yhsOq4sOyaqQ0KK+yhsOuqhey2nA0KK+yhsOyImOyInA0KK+yhsOycpOygnA0KK+yhsOunjOydvA0KK+yhsOyaqeyihQ0KK+yhsOyyoOyyoA0KK+yhsOycpOygnA0KK+yhsOuPmeq1rA0KK+yhsOyYpeyekA0KK+yhsOyEoOuPjA0KK+yhsOydmO2MkA0KK+yhsOyYgeq4sA0KK+yhsOyImOyekA0KK+yhsOyWke2PrA0KK+yhsOydmO2ZmA0KK+yhsOq4uOyErQ0KK+yhsOygleuNlQ0KK+yhsO2YhOyyoA0KK+yhsOydtOq4sA0KK+yhsOq0keyZhA0KK+yhsOuRkOyEnQ0KK+yhsOyerOyImQ0KK+yhsOydtOq4sA0KK+yhsOyEseuwsA0KK+yhsOyiheyImA0KK+yhsOyYgeyImA0KK+yhsOydteyEsQ0KK+yhsOyaqeujoQ0KK+yhsOygkOyEnQ0KK+yhsOyEne2YhA0KK+yhsOyduOyEnQ0KK+yhsOuPhOyInA0KK+yhsO2DnOunjA0KK+yhsOustOyEoA0KK+yhsOyduOyImA0KK+yhsOygleyImA0KK+yhsOygleqzpA0KK+yhsOuNleyLnQ0KK+yhsOyduOyImQ0KK+yhsOqyveyInA0KK+yhsOqwkeykgA0KK+yhsOydtOyynA0KK+yhsOyduOyInA0KK+yhsOygleyyoA0KK+yhsOy2mOuPmQ0KK+yhsO2DnOyLnQ0KK+yhsOyduOyLnQ0KK+yhsOycpOyEnQ0KK+yhsOqyveyXtA0KK+yhsOyduOyasA0KK+yhsOyduOygnA0KK+yhsOuzteuvuA0KK+yhsOuqheyYpQ0KK+yhsO2VnOq4sA0KK+yhsOyduO2VhA0KK+yhsOyYgeyEnQ0KK+yhsOyKueycpA0KK+yhsOyEseyImA0KK+yhsOyduO2YhA0KK+yhsOyEoOq3vA0KK+yhsOywveyErQ0KK+yhsOu2gOyekA0KK+yhsOyduO2YhA0KK+yhsOqyveuTnQ0KK+yhsOuzte2WpQ0KK+yhsO2aqOyImQ0KK+yhsOyduO2drA0KK+yhsOyaqe2VmQ0KK+yhsOyKueq3nA0KK+yhsOybkOyIoA0KK+yhsOydvOuPhA0KK+yhsO2YuOyLnQ0KK+yhsOy2mOq4sA0KK+yhsOyEseq3vA0KK+yhsOydvOyEoA0KK+yhsOyiheynhA0KK+yhsOywve2YhA0KK+yhsO2YnOybhQ0KK+yhsOyehOyLnQ0KK+yhsOyYge2YhA0KK+yhsOqwkeybkA0KK+yhsOynhOyXtA0KK+yhsOyehO2VmQ0KK+yhsOyImOywvQ0KK+yhsOuPmeyLnQ0KK+yhsOuMgOyXsA0KK+yhsOyepeq3vA0KK+yhsOyblOuhnQ0KK+yhsOyihe2YhA0KK+yhsOuPmeyaqQ0KK+yhsOyepeuemA0KK+yhsOyEseumvA0KK+yhsOuzkeyIoA0KK+yhsOyerOqzpA0KK+yhsOyepeyErQ0KK+yhsOyInOyerA0KK+yhsOyiheyhsA0KK+yhsOyerOyImA0KK+yhsOyepeyImA0KK+yhsOyDge2drA0KK+yhsOyYpe2ZmA0KK+yhsO2DnOq4sA0KK+yhsOyepe2YuA0KK+yhsO2YhO2DnA0KK+yhsOq0ke2ZjQ0KK+yhsO2YuOyglQ0KK+yhsOyerOq3nA0KK+yhsO2YhOyihQ0KK+yhsOyYgeuMgA0KK+yhsO2VmeybhQ0KK+yhsOyerOuMgA0KK+yhsOygleq4uA0KK+yhsOygleq4sA0KK+yhsO2drOyXsA0KK+yhsOyerOuNlQ0KK+yhsO2DnOyjvA0KK+yhsOygkOyZhA0KK+yhsOyihe2YhA0KK+yhsOyerOuPhA0KK+yhsOq4sOyEoA0KK+yhsOyiheybkA0KK+yhsOyblOyXtA0KK+yhsOyerOuPmQ0KK+yhsOybkO2DnQ0KK+yhsOyYpeyjvA0KK+yhsOyEseyYgQ0KK+yhsOyerOunjA0KK+yhsOq4sOunjA0KK+yhsOuzkeyhsA0KK+yhsOyerOyIoA0KK+yhsOyerOusuA0KK+yhsOyEseyImA0KK+yhsOq3vOywrA0KK+yhsOqyve2drA0KK+yhsOyerOusuA0KK+yhsO2VmeydtA0KK+yhsOuzkeyLnQ0KK+yhsOywveybkA0KK+yhsOyerOyInA0KK+yhsOykgOyyoA0KK+yhsOyKueyLnQ0KK+yhsOuLrO2DnA0KK+yhsOyerOyYpQ0KK+yhsO2drO2DnA0KK+yhsOuvuO2biA0KK+yhsOygleyImA0KK+yhsOyerOyaqQ0KK+yhsOyYgeyXsA0KK+yhsOyImOuNlQ0KK+yhsOuzkeyaqQ0KK+yhsOyerOyglQ0KK+yhsOuqheyglQ0KK+yhsOyEsey2nA0KK+yhsOyEne2YhA0KK+yhsOyerOyynA0KK+yhsOywveyekA0KK+yhsOyEoO2ZlA0KK+yhsOuqheyImA0KK+yhsOyerOyynA0KK+yhsOyjvOyImA0KK+yhsOyGkOy2nA0KK+yhsOuvuO2DnA0KK+yhsOyerOyyoA0KK+yhsOyerOyaqQ0KK+yhsO2YhOuCqA0KK+yhsO2dpeyyoA0KK+yhsOyerOyyoA0KK+yhsOyLpOyLnQ0KK+yhsCDsiJkNCivsobDrgqjsmqkNCivsobDsnqzssqANCivsobDrrLTrp4wNCivsobDsnqzsm5ANCivsobDsiJjsnbQNCivsobDsnqztg5wNCivsobDtlbTsiJkNCivsobDsnqzshJ0NCivsobDshJ3siJgNCivsobDsnqztg5wNCivsobDsmIHtmLgNCivsobDrqoXtmLgNCivsobDssqDshK0NCivsobDsnqztlZwNCivsobDsg4HtmLgNCivsobDrqoXtnawNCivsobDsp4TrrLUNCivsobDsnqztmLgNCivsobDsg4HtmY0NCivsobDqsr3sirkNCivsobDsmqnsi50NCivsobDsnqztm4gNCivsobDsoJXquLgNCivsobDsnqzrgqgNCivsobDtmLjrjIANCivsobDsoJDrjZUNCivsobDqsJHqtowNCivsobDrj5ntmLgNCivsobDsoJXtl4wNCivsobDsoJDsiJgNCivsobDsiJzqt5wNCivsobDsnbjsi50NCivsobDrs5Hsg4ENCivsobDsoJDsiKANCivsobDsg4HroKgNCivsobDtg5zsiJgNCivsobDrgqjsmrQNCivsobDsoJDsmKUNCivsobDshLHrs5ENCivsobDtg5zrj5kNCivsobDsi5zrj5kNCivsobDsoJXqsIENCivsobDrhYTtmIQNCivsobDtmY3tnawNCivsobDrtIntm4gNCivsobDsoJXquLANCivsobDsiJjtmIQNCivsobDsnqztmZgNCivsobDtg5zsiJwNCivsobDsoJXrnpgNCivsobDtlYTsnpANCivsobDtjJDsooUNCivsobDquLDsiJgNCivsobDsoJXrr7gNCivsobDsnbjtnawNCivsobDrspTrtpUNCivsobDshJ3snpANCivsobDsoJXrs7QNCivsobDtlqXtmZgNCivsobDtg5ztmLgNCivsobDtlonsi50NCivsobDsoJXshK0NCivsobDsooXtmIQNCivsobDsp4TqtawNCivsobDsmIHsiJwNCivsobDsoJXsiJgNCivsobDquLDrtoQNCivsobDspIDsiJgNCivsobDrqoXsnpANCivsobDsoJXsiJgNCivsobDsoJXsm5ANCivsobDsnbzquLgNCivsobDrqoXsmrENCivsobDsoJXsiJkNCivsobDqsr3shLgNCivsobDshJ3tjJANCivsobDsg4Hqt7wNCivsobDsoJXsi50NCivsobDsnqzshJ0NCivsobDsooXtm4gNCivsobDsmIHsiJwNCivsobDsoJXtmIQNCivsobDrp4zsm5ANCivsobDsnqzsmrQNCivsobDqtJHtnawNCivsobDsoJXtmIQNCivsobDqt5zsp4QNCivsobDtko3sm5ANCivsobDqtJHrsLANCivsobDsoJXtmLgNCivsobDssqDsg4ENCivsobDsnbzqt7wNCivsobDsoJXssqANCivsobDsoJXtmLgNCivsobDqsr3qt6ANCivsobDsiJjsiJgNCivsobDsooXsnbgNCivsobDsoJXtmLgNCivsobDsnbjquLgNCivsobDsnYDsspwNCivsobDsm5DsiJkNCivsobDsoJXtmqgNCivsobDsmrTsmqkNCivsobDtmLjtg4ENCivsobDsp4TsmrANCivsobDsooXshJ0NCivsobDsi6Dsp4QNCivsobDsoJDsmrANCivsobDsg4HtmLgNCivsobDsooXshJ0NCivsobDsnbjsiJgNCivsobDshozsg4ENCivsobDrs7XsmqkNCivsobDsooXsiJgNCivsobDtg5zquLANCivsobDrr7jssqANCivsobDrs5HtlZkNCivsobDsooXsiJgNCivsobDtg5zsp4QNCivsobDsoJXtmLgNCivsobDtj4nspIANCivsobDsooXsiKANCivsobDqt7zrhYQNCivsobDsiJnsi50NCivsobDsooXshKANCivsobDso7ztnawNCivsobDrqoXquLANCivsobDsoJDrnpgNCivsobDqt5ztg5wNCivsobDspIDquLANCivsobDtmJXsg4ENCivsobDsgqzrjZUNCivsobDqsJHrtoQNCivsobDspIDshJ0NCivsobDqt5zqta0NCivsobDrrLjsiJwNCivsobDsnKTsm5ANCivsobDspIDsl7ANCivsobDsp4TtmLgNCivsobDrs7XqtIANCivsobDsm5DshK0NCivsobDspIDsmrANCivsobDsirntlZkNCivsobDstpjquLgNCivsobDsmIHtg5wNCivsobDspIDssqANCivsobDssKjrrLgNCivsobDsnqzrsLANCivsobDsiJnqsJENCivsobDspIDtnawNCivsobDsmqnsp4QNCivsobDstpjsnqwNCivsobDtl4ztmZgNCivsobDspJHsoJwNCivsobDtmIHrs7UNCivsobDsoJXqtIANCivsobDqsJHtg5wNCivsobDspJHtmZgNCivsobDsg4HsiJgNCivsobDshJ3si50NCivsobDrj4jrjIANCivsobDsp4DqsJENCivsobDshLHrjIANCivsobDsmIHtnawNCivsobDstqnshJ0NCivsobDsp4TslaANCivsobDsmIHtj6wNCivsobDquIjsmrANCivsobDso7zssL0NCivsobDsp4TtmLgNCivsobDquLDrp4wNCivsobDtlZzqsr0NCivsobDsoJXtmJwNCivsobDssKjsg50NCivsobDrtIntmIQNCivsobDsmrDtmZQNCivsobDsnqzsiJwNCivsobDssKjsmqkNCivsobDtmozrnpgNCivsobDstpjqt7wNCivsobDqsJHqt7wNCivsobDssL3qt7wNCivsobDsp4TtmZgNCivsobDsmIHspIANCivsobDrs5HsnqUNCivsobDssL3quLANCivsobDtl4zsnbQNCivsobAg7JqwDQor7KGw642V7JqpDQor7KGw7LC97ISdDQor7KGw66qF6ri4DQor7KGw7YOc7IiYDQor7KGw7KO87Zi4DQor7KGw7LC97Zi4DQor7KGw7IOB7ZWcDQor7KGw7JiB642VDQor7KGw64yA7JykDQor7KGw7LKc7ISdDQor7KGw7KSA7YOcDQor7KGw67aE6riwDQor7KGw7KeE7JiBDQor7KGw7LKg7IiYDQor7KGw7Jyg7JqwDQor7KGw7IOB7KeEDQor7KGw7KeE7LacDQor7KGw7LKg7KeEDQor7KGw7ZWE7JuQDQor7KGw66+87KGwDQor7KGw66eQ7IiYDQor7KGw7LaY6ri4DQor7KGw7Zi47IicDQor7KGw66qF7IiYDQor7KGw7IiY7ZmYDQor7KGw7LaY66eMDQor7KGw7ISg7JiBDQor7KGw7ZiE64WADQor7KGw7KO86ri4DQor7KGw7LaY7J6QDQor7KGw7JuQ7LKgDQor7KGw7Z2s6recDQor7KGw7ISd7Zi4DQor7KGw7Lmg7ZWZDQor7KGw67OR7IeEDQor7KGw7J6s7Je0DQor7KGw7JiB6ri4DQor7KGw7YOA7IicDQor7KGw7KCV7Je0DQor7KGw66y47JqwDQor7KGw6rSR7ZWYDQor7KGw7YOc7IiYDQor7KGw7KCE64+ZDQor7KGw7Lap7ZqMDQor7KGw64+Z7ZGcDQor7KGw7YOc7J28DQor7KGw7Iah7ISgDQor7KGw6rK97KGwDQor7KGw7Iic6recDQor7KGw7YOc7KGwDQor7KGw7KSR7YOBDQor7KGw64KZ7JuQDQor7KGw7IOB7J20DQor7KGw7YOc7ZmYDQor7KGw7JuQ7Z2gDQor7KGw66qF7ZiEDQor7KGw7KKF6riwDQor7KGw7YOc7Z2sDQor7KGw7Z2s66GADQor7KGw7Zi46rWtDQor7KGw7J6s7KO8DQor7KGw7YOd7IOBDQor7KGw7LC966eMDQor7KGw67OR7JmEDQor7KGw64+Z7LKgDQor7KGw7YOd7IOBDQor7KGw6rSR7ZiEDQor7KGw7J6s7JqwDQor7KGw6rK964+ZDQor7KGw7YyQ64WEDQor7KGw67KU7JikDQor7KGw7Jil7IicDQor7KGw7IOB7JuFDQor7KGw7YyQ7JWUDQor7KGw7IK87ZiEDQor7KGw7ZmN7ZmYDQor7KGw7KGw7YOBDQor7KGw7ZWE7J6EDQor7KGw7J2867SJDQor7KGw7IOB64yADQor7KGw7LaU7IiYDQor7KGw7ZWY6rCVDQor7KGw66eM64+EDQor7KGw7KKF7IiYDQor7KGw7IOB6rOgDQor7KGw7ZWZ656YDQor7KGw7Lap6raMDQor7KGw7Jik6recDQor7KGw6riw67CwDQor7KGw7ZWZ7KCcDQor7KGw64+Z7IicDQor7KGw7Jqp7JqpDQor7KGw642V6rK9DQor7KGw7ZWc7IiYDQor7KGw7KCQ7J28DQor7KGw7J2867KUDQor7KGw7LKc7JiBDQor7KGw7ZWc7JiBDQor7KGw7J6s7Zi4DQor7KGw6re866qoDQor7KGw7Iic64yADQor7KGw7ZW066+8DQor7KGw7J217Zi4DQor7KGw7IOB7LacDQor7KGw7KCV66GdDQor7KGw7ZW07ISgDQor7KGw7YOc7IOBDQor7KGw7ISx7ZmYDQor7KGw7JiB67CwDQor7KGw7ZW07IiYDQor7KGw7LKg7IiYDQor7KGw7J247J6EDQor7KGw7JuQ7ZuIDQor7KGw7ZW07IiZDQor7KGw7J247IStDQor7KGw7Iug7IiZDQor7KGw7KKF7J6sDQor7KGw7ZW07IudDQor7KGw6riw6riwDQor7KGw7ISd7JqpDQor7KGw7Jqx6rWwDQor7KGw7ZW07JqpDQor7KGw7Jyk7KSADQor7KGw67aE7JWgDQor7KGw7KeE7IudDQor7KGw7ZeM7J6sDQor7KGw7Zi47JiBDQor7KGw7Z2s7KGwDQor7KGw66eM64+ZDQor7KGw7ZiE7ISdDQor7KGw7IiZ7KSADQor7KGw7J2R7IStDQor7KGw67OR7IOBDQor7KGw7ZiE7ISdDQor7KGw64+Z7J6QDQor7KGw7ZiE7YyUDQor7KGw66+87JuFDQor7KGw7ZiE7IiYDQor7KGw7ZW07JqpDQor7KGw6riw6regDQor7KGw6rSR7J6QDQor7KGw7ZiE7JiBDQor7KGw7ZWc7JqxDQor7KGw7YOc7YOcDQor7KGw7YOc7IiYDQor7KGw7ZiE7JqpDQor7KGw7JiB7Zi4DQor7KGw7Jqp7IiYDQor7KGw7ZeM6regDQor7KGw7ZiE7J6sDQor7KGw7J207KKFDQor7KGw6rec7Zi4DQor7KGw7KCc6rCRDQor7KGw7ZiE7KCVDQor7KGw7KKF7ZWYDQor7KGw7LC97Z2sDQor7KGw7Iic6rWsDQor7KGw7ZiE7KGwDQor7KGw6riI7ISdDQor7KGw7JiB7Zi4DQor7KGw66eQ7Zi4DQor7KGw7ZiE7KGwDQor7KGw7LaY66GADQor7KGw7ISx7ISxDQor7KGw7JuU7IiYDQor7KGw7ZiE7KSADQor7KGw7Jyk7ISxDQor7KGw7IOB7ZeMDQor7KGw7JiB67CwDQor7KGw7ZiE7KSRDQor7KGw64us7KGwDQor7KGw7ISg656ADQor7KGw7ZWc7KeEDQor7KGw7ZiE7YOcDQor7KGw7Jqp7JewDQor7KGw7YOc7JWUDQor7KGw7Jyh7IiYDQor7KGw7ZiE7YOdDQor7KGw67OR67SJDQor7KGw7Jyk7Zi4DQor7KGw6riI7ISgDQor7KGw7ZiE7Zi4DQor7KGw7YOc7JykDQor7KGw7ISx7ZmYDQor7KGw6rSR7ZiEDQor7KGw7ZiE7Zi4DQor7KGw67OR7ZqoDQor7KGw7IOB7Z2sDQor7KGw6rWs7KSADQor7KGw7ZiE7Zi5DQor7KGw65GQ7IiYDQor7KGw7IaM7ISgDQor7KGw7Jik7IiYDQor7KGw7ZiV7IStDQor7KGw7KSA65+JDQor7KGw7KeE7ISxDQor7KGw6rSR7YOBDQor7KGw7ZiV7JewDQor7KGw7ZaJ7IicDQor7KGw7J6Q7JikDQor7KGw7J6s7IicDQor7KGw7Zi46recDQor7KGw7ZW07J21DQor7KGw7JiB7Je0DQor7KGw7ZmN7JuQDQor7KGw7Zi47KGwDQor7KGw7YOc7J21DQor7KGw6rK966asDQor7KGw7Jqp7KKFDQor7KGw7Zi47KGwDQor7KGw7Jqp7IiYDQor7KGw7KCV7IudDQor7KGw67OR7YOcDQor7KGw7Zi47ZiEDQor7KGw7KSA6riwDQor7KGw66+867SJDQor7KGw7IiY7JmEDQor7KGw7ZmN7ISdDQor7KGw7J6s7KGwDQor7KGw66qF7KGwDQor7KGw7J2466+4DQor7KGw7ZmN7ISdDQor7KGw7ISx7Zi4DQor7KGw7KKF7J21DQor7KGw7KCV7Zi4DQor7KGw7ZmN7IStDQor7KGw66eM7ZiEDQor7KGw6rSA7J6QDQor7KGw7LaY7IudDQor7KGw7ZmY6recDQor7KGw7IiY7KSADQor7KGw67OR6rOkDQor7KGw7IiY7IiYDQor7KGw7Zmp7ISdDQor7KGw66eM6rCRDQor7KGw7LKg7LKgDQor7KGw7ZWc6rSRDQor7KGw7Z2s6rCRDQor7KGw6rK97Iq5DQor7KGw7J6s642VDQor7KGw7KKF7J6QDQor7KGw7Z2s6rSADQor7KGw7J6s6recDQor7KGw66+87J6EDQor7KGw67O17JqpDQor7KGw7Z2s64+ZDQor7KGw7J6l7ZWZDQor7KGw64+E66eMDQor7KGw6rK967aEDQor7KGw7Z2s656YDQor7KGw7Iic7KO8DQor7KGw7J6s7J6sDQor7KGw6rCV7YOdDQor7KGw7Z2s7IiYDQor7KGw7Iug7ISdDQor7KGw66y47IiZDQor7KGw7IOB7JqpDQor7KGw7Z2s7JuQDQor7KGw7Jqp7IOdDQor7KGw7ISx7J6EDQor7KGw64+Z7LaYDQor7KGw7Z2s7KCVDQor7KGw7JiB7J20DQor7KGw7ZiE7ZeMDQor7KGw7J246rCcDQor7KGw7Z2s7KSRDQor7KGw7Iq564+EDQor7KGw7ISd6rSADQor7KGw7ISx7ZmYDQor7KGw7Z2s7LacDQor7KGw7J6s7ISdDQor7KGw7IiY7J20DQor7KGw7IOB66GcDQor7KGw7Z2s7YOcDQor7KGw7KeA7LCsDQor7KGw66y47Zi4DQor7KGw7YOc7LaYDQor7KO8IOqwlQ0KK+yjvOyKue2ZmA0KK+yjvOustOyVlA0KK+yjvOynhO2drA0KK+yjvOqyveynhA0KK+yjvOyXsOyEoA0KK+yjvOyDge2YuA0KK+yjvOywqO2MlA0KK+yjvOqzhOyImQ0KK+yjvOyasOuNlQ0KK+yjvOunjOuFgA0KK+yjvOydvOu0iQ0KK+yjvOuPhO2ZjQ0KK+yjvOydmOycpA0KK+yjvOyEoOyImQ0KK+yjvO2DnOq3oA0KK+yjvOuPmeyLnQ0KK+yjvOu0ieyyoA0KK+yjvO2MkOq4uA0KK+yjvO2VnOuTnQ0KK+yjvOunjOyInA0KK+yjvOyerOq0kQ0KK+yjvOyiheybkA0KK+yjvO2VtOydtQ0KK+yjvOuqheyekA0KK+yjvOyYgeyYgQ0KK+yjvOydvOyjvA0KK+yjvOyYpeydtA0KK+yjvOuvvOq1rQ0KK+yjvOyduO2DnA0KK+yjvOq0keyImA0KK+yjvOuLrO2WpQ0KK+yjvOu0ieyInA0KK+yjvOyYgeyasA0KK+yjvOuzkeynhA0KK+yjvOq3vOyjvA0KK+yjvOyInOyYpQ0KK+yjvOyduOybhQ0KK+yjvOyDgeqwkQ0KK+yjvOyiheq1rQ0KK+yjvOyInOyekA0KK+yjvO2MkOyEuA0KK+yjvO2VtOq2jA0KK+yjvOyDgeyImQ0KK+yjvOyYpeu2hA0KK+yjvOyVhe2YuA0KK+yjvO2VmO2YuA0KK+yjvOyImOuLrA0KK+yjvOycpO2RnA0KK+yjvO2VmeyXtA0KK+yjvOyEse2ZmA0KK+yjvOu2gOyDgQ0KK+yjvOygleybhQ0KK+yjvOyaqe2YuA0KK+yjvOq3gOyImA0KK+yjvOyerO2ZjQ0KK+yjvOykkeyEnQ0KK+yjvOuqheyihQ0KK+yjvOyKueykgA0KK+yjvOuzke2DnA0KK+yjvOyngOyihQ0KK+yjvOu0ieyInA0KK+yjvOyyreyYgQ0KK+yjvO2ZjeyEoA0KK+yjvOy2mO2YuA0KK+yjvOyInOyInA0KK+yjvOyInOuhnQ0KK+yjvOuCqOuCqA0KK+yngOuzkeyyoA0KK+yngO2XjO2YhA0KK+yngOywveyhsA0KK+yngOqwkeyekA0KK+yngOuzke2YuA0KK+yngOuzkeq1rA0KK+yngOyEseydtA0KK+yngOyImOybkA0KK+yngOyImOuTnQ0KK+yngOuNle2aqA0KK+yngOq0ke2drA0KK+yngOuFuOyImA0KK+yngOyYgeyjvA0KK+yngO2MkOynhA0KK+yngOyYgeycpA0KK+yngOydhOq3nA0KK+yngOyYpe2ZmA0KK+yngOygnOyekA0KK+yngOyaqeugrA0KK+yngOq4sO2YhA0KK+yngOyerOyCvA0KK+yngOyDgeuNlQ0KK+yngOyCvOyyoA0KK+yngOydmOuMgA0KK+yngOyerOyaqQ0KK+yngO2Wpe2YuA0KK+yngOycpOybkA0KK+yngO2DnOykgA0KK+yngOyihe2YuA0KK+yngOygleyImQ0KK+yngOq4uOq4sA0KK+yngOyynOyjvA0KK+yngOy2mOyLnQ0KK+yngOyasOyhsA0KK+yngOynhOyehA0KK+yngOyYge2VnA0KK+ynhOqwkeyXsA0KK+ynhOuqhe2VmA0KK+ynhOyduOyDgQ0KK+ynhOyGjOyDgQ0KK+ynhOqwkeyaqQ0KK+ynhOygleybkA0KK+ynhOuPmeuTnQ0KK+ynhOyasOq3oA0KK+ynhOq3nO2ZjQ0KK+ynhOyZuOusuA0KK+ynhOuzkeyhsA0KK+ynhO2XjO2ZmA0KK+ynhOq4sOyImA0KK+ynhOyLnOqwkQ0KK+ynhOyXsOyImA0KK+ynhOycoOq4sA0KK+ynhOq4sOyImQ0KK+ynhOyngOuPjA0KK+ynhO2aqOq3nA0KK+ynhOyerO2DnQ0KK+ynhOq4sOyaqQ0KK+ynhOyEneyEsQ0KK+ynhOyInOyglQ0KK+ynhOuMgOyasA0KK+ynhOuNle2drA0KK+ynhOu0ieyLnQ0KK+ynhOyaqeyEuA0KK+ynhOyyoOyVlA0KK+ynhOuRkOu0iQ0KK+ynhOuqheq2jA0KK+ynhOyEseq3vA0KK+ynhOyEseyLpA0KK+ynhOunkOyEoA0KK+ynhOyGjOyihQ0KK+ynhOqwkeq3vA0KK+ynhOyCvO2YuA0KK+ynhOuqheyekA0KK+ynhOuqhe2DnA0KK+ynhOygle2YuA0KK+ynhOqzhOq4sA0KK+ynhOuqheyekA0KK+ynhOq2jOyYpA0KK+ynhOqzhOuhgA0KK+ynhOyInOyLnQ0KK+ynhOusuOq1kA0KK+ynhOyEne2VmQ0KK+ynhOyYgeuMgA0KK+ynhOyDgeyaqQ0KK+ynhOuzke2VmQ0KK+ynhOyYge2XjA0KK+ynhOuRkOyLnQ0KK+ynhOqyveyLnQ0KK+ynhOu0ieq4uA0KK+ynhOuqheuqqA0KK+ynhOyEseuPjA0KK+ynhOy2mOuNlQ0KK+ynhOu0ieyLnQ0KK+ynhOybkOuwsA0KK+ynhOuqheydtA0KK+ynhOuzuO2MlA0KK+ynhOyCvOyhsA0KK+ynhOygleqzpA0KK+ynhO2ZjeuemA0KK+ynhOustO2drA0KK+ynhOyDgeq4sA0KK+ynhOyImO2YuA0KK+ynhOyGjOyglQ0KK+ynhOyEneyImA0KK+ynhOyDgeyasQ0KK+ynhOu0ieq4uA0KK+ynhOq3nO2ZmA0KK+ynhOyerOyasA0KK+ynhOyDgeyatA0KK+ynhOyaqey2mA0KK+ynhOyblOq3nA0KK+ynhOuPmeq2jA0KK+ynhOyDgeynhA0KK+ynhOyDgeyEoA0KK+ynhOyEneyLnQ0KK+ynhOq3ue2YuA0KK+ynhOyDge2ZmA0KK+ynhOyerOyInA0KK+ynhOyerOykkQ0KK+ynhOyEseyEoA0KK+ynhOyEneydgA0KK+ynhOyaqeyLnQ0KK+ynhO2VnO2DnA0KK+ynhOyaqeuMgA0KK+ynhOyEne2YuA0KK+ynhO2MkO2YuA0KK+ynhOusuOyaqQ0KK+ynhOq4uOyImA0KK+ynhOyEseunjA0KK+ynhOusuOyekA0KK+ynhOyInO2ZmA0KK+ynhO2ZmOyIoA0KK+ynhOyEseyasQ0KK+ynhOq3nO2WpQ0KK+ynhOyduOyYpQ0KK+ynhOqyveq3vA0KK+ynhOyImOybhQ0KK+ynhOyYgeuLrA0KK+ynhOyiheyyoA0KK+ynhOykgOyVoA0KK+ynhOyImO2MkA0KK+ynhOybkOyekA0KK+ynhO2VtOybhQ0KK+ynhOuzkeq4uA0KK+ynhOyInOuPhA0KK+ynhOyYpeyEoA0KK+ynhOuLrOykgA0KK+ynhO2Vme2MkA0KK+ynhOyYgeq1rQ0KK+ynhOustOyyoA0KK+ynhOuzkeyImQ0KK+ynhOqyveyasQ0KK+ynhOyYgeyImA0KK+ynhOywrO2YuA0KK+ynhOuPmeywvQ0KK+ynhO2YhOq4uA0KK+ynhOyYgeybhQ0KK+ynhOyEneyImA0KK+ynhOunjOyyoA0KK+ynhOuzkeyXsA0KK+ynhOyYgeyekA0KK+ynhOyDgeyImA0KK+ynhOyEseyekA0KK+ynhOuqhe2ZjQ0KK+ynhOyZuOyhsA0KK+ynhOuPmeyYgQ0KK+ynhOyEseyEoA0KK+ynhOyerOq3nA0KK+ynhOyaqeuPjA0KK+ynhOyEseyInA0KK+ynhOyerOq1rQ0KK+ynhOyImOuvuA0KK+ynhOyaqeyImA0KK+ynhOuzteyhsA0KK+ynhOyVlOyLnQ0KK+ynhOuzkeuCqA0KK+ynhOyaqeyVlA0KK+ynhOygleyEoA0KK+ynhOq3gOq3nA0KK+ynhOyiheyLnQ0KK+ynhOyaqeydvA0KK+ynhOyYpeyglQ0KK+ynhOyDgeyaqQ0KK+ynhOyerOq0gA0KK+ynhOyaqe2YuA0KK+ynhOyerOq3vA0KK+ynhOyYgeybkA0KK+ynhOuNley2mA0KK+ynhOyasOq2jA0KK+ynhOygleyDgQ0KK+ynhOydmOyXsA0KK+ynhOyEseyLnQ0KK+ynhOyasOyEoA0KK+ynhOqwkeyLnQ0KK+ynhOygkOyihQ0KK+ynhOuzte2DnA0KK+ynhOybkOyEnQ0KK+ynhOyYge2YuA0KK+ynhOyiheuPhA0KK+ynhOyiheydvA0KK+ynhOydtOyImA0KK+ynhOynhOyYgQ0KK+ynhOq4sOy2nA0KK+ynhO2YuOq3vA0KK+ynhOyerOyaqQ0KK+ynhOuzke2biA0KK+ynhO2drOykkQ0KK+ynhOuqheyynA0KK+ynhOygleuegA0KK+ynhOuFuOq0gA0KK+ynhOq3vOuPmQ0KK+ynhOuLrO2ZmA0KK+ynhOygleuemA0KK+ynhOyDgeyLnQ0KK+ynhO2drOyImA0KK+ynhOqwle2DnA0KK+ynhOygleyDgQ0KK+ynhOynhOybkA0KK+ynhOuzke2DnA0KK+ynhOyEneyEoA0KK+ynhOygleyEuA0KK+ynhOyerOq1kA0KK+ynhOyepeuwsA0KK+ynhOuCqOq3vA0KK+ynhOygleyImQ0KK+ynhOuLrOyLnQ0KK+ynhOyaqe2YgQ0KK+ynhOyerO2YuA0KK+ynhOygleyImQ0KK+ynhOywveyYgQ0KK+ynhOyblOq3nA0KK+ynhOynhOyLnQ0KK+ynhOygleyWuA0KK+ynhOyepe2YgQ0KK+ynhOq0gOyLnQ0KK+ynhOy2mOyLnQ0KK+ynhOyiheq3vA0KK+ynhOyihe2VmQ0KK+ynhO2DnOyaqQ0KK+ynhOygle2drA0KK+ynhOyiheuMgA0KK+ynhOunkOyInA0KK+ynhOyImOyEnQ0KK+ynhOynhOyEoA0KK+ynhOywqOyaqQ0KK+ynhOyDgeycpA0KK+ynhOqyveq1rA0KK+ynhOy2mOq0gA0KK+ynhOywrOyehA0KK+ynhOyYgeyImA0KK+ynhO2XjOyInA0KK+ynhOyDgeyEuA0KK+ynhOywrO2YhA0KK+ynhOuvuOybkA0KK+ynhOyEneyEnQ0KK+ynhOyiheynhA0KK+ynhOywveuPjA0KK+ynhO2ZjeyasA0KK+ynhOyYgeuhnA0KK+ynhOykgO2VmQ0KK+ynhOywveyEnQ0KK+ynhOuCqOuvuA0KK+ynhOygleq1rA0KK+ynhOuCqO2drA0KK+ynhOywveycpA0KK+ynhO2VnO2ZmA0KK+ynhOyyreygnA0KK+ynhOydtOq4uA0KK+ynhOyynOuPhA0KK+ynhOqyveunjA0KK+ynhOyDgeyImQ0KK+ynhOyGjOu0iQ0KK+ynhOyynOyImA0KK+ynhO2VtO2drA0KK+ynhOyKue2XjA0KK+ynhOunkOyImA0KK+ynhOyynOyImA0KK+ynhOyLoOyjvA0KK+ynhOybkOyasA0KK+ynhOywqOyhsA0KK+ynhOyyoOyDgQ0KK+ynhOq4iO2ZmA0KK+ynhOyEse2ZjQ0KK+ynhOygleyjvA0KK+ynhOy5oOq2jA0KK+ynhOywrOyImA0KK+ynhO2ZjeyehA0KK+ynhOykgOydvA0KK+ynhO2MkOqwnA0KK+ynhOyihe2RnA0KK+ynhOyDgeyLnQ0KK+ynhO2aqOq3vA0KK+ynhO2MkOuPjA0KK+ynhOyDge2YhA0KK+ynhOq4iOynhA0KK+ynhOyaqeyxhA0KK+ynhO2MkOyerA0KK+ynhOycpOuemA0KK+ynhOyerOuNlQ0KK+ynhOuzkeyErQ0KK+ynhO2WieyekA0KK+ynhOyngOyaqQ0KK+ynhO2VtOyErQ0KK+ynhOuzkeybhQ0KK+ynhO2XjOyImA0KK+ynhOuLrOyEsQ0KK+ynhOqyveyyoA0KK+ynhOuzke2biA0KK+ynhO2XjO2DnQ0KK+ynhOyerO2ZmA0KK+ynhOuqheyYgQ0KK+ynhOq4sOumvA0KK+ynhO2YhOydtA0KK+ynhOyYgeuztQ0KK+ynhOyiheuNlQ0KK+ynhO2YuOq3nA0KK+ynhO2YnOyYgQ0KK+ynhOuPmeyImQ0KK+ynhOybkOyEnQ0KK+ynhOyaqeyihQ0KK+ywqCDsiJkNCivssKjqsIjsnbQNCivssKjrs5HsmIENCivssKjsnqzrj4QNCivssKjqsJHshJ0NCivssKjrj5ntm4gNCivssKjqt5zquLgNCivssKjsiJzrhZUNCivssKjqsr3siJwNCivssKjsooXsiJwNCivssKjrs7XshK0NCivssKjsoJXquLANCivssKjqt7ntg5wNCivssKjsgrzsp4QNCivssKjtlbTsl7ANCivssKjsoJXtmZgNCivssKjqt7zshJ0NCivssKjsg4HtjJQNCivssKjsg4HrtIkNCivssKjrj5nsp4QNCivssKjquLDsiJgNCivssKjsnKTrnpgNCivssKjshLHtm4gNCivssKjsnbjsm4UNCivssKjquLDtmLgNCivssKjsirnsmKUNCivssKjtlZzsiJwNCivssKjssqDrnpgNCivssKjquLjsg4ENCivssKjtjJDtmqgNCivssKjqt5zshKANCivssKjsmqnsnpANCivssKjrjIDrpZwNCivssKjsoJXrjZUNCivssKjtg5zqt7wNCivssKjsnbzsoJwNCivssKjrjZXsmqkNCivssKjsg4Htm4gNCivssKjsnqztg50NCivssKjshozsmrANCivssKjrj4TsoJUNCivssKjsg4Hqs6QNCivssKjsg4HtmY0NCivssKjtmqjsl7ANCivssKjrj4zsmqkNCivssKjtmITshJ0NCivssKjrj5ntmZgNCivssKjsooXsnoQNCivssKjrj5nshJ0NCivssKjqsr3rj5kNCivssKjqsr3tmZQNCivssKjsoJDslZQNCivssKjrj5nshK0NCivssKjso7zsiJgNCivssKjqt5ztmY0NCivssKjsnqztg50NCivssKjrp4zsmqkNCivssKjsoJDqtIANCivssKjslrjqt5wNCivssKjsmIHsiJwNCivssKjrqoXtlokNCivssKjsmIHsmrANCivssKjsoJXtnawNCivssKjsnqzsiJgNCivssKjrr7zrj4QNCivssKjsmIHsiJgNCivssKjsuaDqtbANCivssKjrs5HrtIkNCivssKjrtInrj4QNCivssKjtg5zrrLgNCivssKjshLHtnawNCivssKjsnbzsiJwNCivssKjrtIntm4gNCivssKjrs5HtmIQNCivssKjshLHsmIENCivssKjtmY3shJ0NCivssKjsgrzsspwNCivssKjssL3tmZgNCivssKjsmrTrs7UNCivssKjsoJXqsr0NCivssKjsg4Hsl7ANCivssKjsmqnsmrQNCivssKjsooXsnpANCivssKjtnaXsiJgNCivssKjsg4HsmIENCivssKjtnazsi50NCivssKjshLjspp0NCivssKjrjZXsiJgNCivssKjsg4HtmZgNCivssKjqt7ztnawNCivssKjsi6DshJwNCivssKjrs7XtmLgNCivssKjshKDsnbQNCivssKjsiJzshJ0NCivssKjtlYTrsLANCivssKjssL3qtZANCivssKjshKDsnbQNCivssKjsiJnsl70NCivssKjtmqjtg50NCivssKjsooXqta0NCivssKjsjI3siKANCivssKjqsJHtg5wNCivssKjquLDrj4wNCivssKjrtoTsl7ANCivssKjslpHtmIQNCivssKjsnqzsooUNCivssKjsmIHsmqkNCivssKjqta3sl7QNCivssKjsmIHsl7QNCivssKjsnKDtmLgNCivssKjshKDshK0NCivssKjsmqnqs4QNCivssKjsmIHsp4QNCivssKjsm5DsmIENCivssKjsnYDsi6QNCivssKjqsJHsobANCivssKjsmIHsp4QNCivssKjsg4HtnawNCivssKjquLDrj5kNCivssKjtg5zspIANCivssKjsmIHtmZgNCivssKjrp5Dqt7wNCivssKjrsKnsiJgNCivssKjsoJXquLgNCivssKjsmKXshKANCivssKjrj4Trp4wNCivssKjtg5zshK0NCivssKjshLHtmLgNCivssKjsmqnrjZUNCivssKjtjJDsl7QNCivssKjsooXtmZQNCivssKjquLDshKANCivssKjsmqnshK0NCivssKjsp4TssKgNCivssKjshJ3ssKwNCivssKjrhbjqsJENCivssKjsmqnsiJgNCivssKjrgpjqtawNCivssKjssqDtkZwNCivssKjsnqzqs6QNCivssKjsnKDshK0NCivssKjshLjshKANCivssKjrj5nspIANCivssKjquLDrrLQNCivssKjsnbTsiJwNCivssKjsnqztg5wNCivssKjshLHrrLgNCivssKjtg5zsiJgNCivssKjsnbjsi50NCivssKjrqoXsmIENCivssKjrtoTrsLANCivssKjsiJzroZ0NCivssKjsnbzsmqkNCivssKjtnazrj4QNCivssKjshLHsm5ANCivssKjrjIDtmZQNCivssKjsnoTshKANCivssKjshKDsiJgNCivssKjsnITsmqkNCivssKjsp4Trr7wNCivssKjsnoTsmqkNCivssKjtlZzso7wNCivssKjtlbTsirkNCivssKjrspTqsr0NCivssKjsnqXtmZgNCivssKjsmqnrp4wNCivssKjrj5nsnpANCivssKjsg4HqtowNCivssKjsnqzqt5wNCivssKjsmrDtmZQNCivssKjqtJHsi50NCivssKjspIDsmrANCivssKjsoJXsnpANCivssKjssKjtmLgNCivssKjsiJjsnpANCivssKjtjJTsoJUNCivssKjsooXroZ0NCivssKjsg4Htm4gNCivssKjsjI3qta0NCivssKjqt5zshJ0NCivssKjspp3smqkNCivssKjquLDsnqwNCivssKjrtInsnbQNCivssKjshJzsiJgNCivssKjsp4Dtm4gNCivssKjsg4HspIANCivssKjstqnshJ0NCivssKjsmIHqt5wNCivssKjsp4TshK0NCivssKjsooXsiJwNCivssKjsnqXquLgNCivssKjtmJXsmrANCivssKjsp4jsmqkNCivssKjtmLjrj5kNCivssKjshJ3siJgNCivssKjtmITrtoQNCivssKjssL3shJ0NCivssKjsmKXsoIQNCivssKjrp4zsnpANCivssKjshoztlZgNCivssKjssqDtnLQNCivssKjtg5zsobANCivssKjqsbTsooUNCivssKjqsr3stpwNCivssKjstpjsiJwNCivssKjsoJXsnbUNCivssKjrr7jrj5kNCivssKjqsr3siJgNCivssKjstpjtmLgNCivssKjsi6Drp4wNCivssKjssqDsiJgNCivssKjqtazqsJUNCivssKjsvozslbwNCivssKjrrJjstpwNCivssKjrkZDstpwNCivssKjsg4HrjZUNCivssKjtg5zshKANCivssKjsnYDshKANCivssKjsooXsobANCivssKjtg5zshK0NCivssKjtg5zsp4QNCivssKjrrLTssqANCivssKjssL3snpANCivssKjsg4Hsl7QNCivssKjtjJDsiJgNCivssKjshKDqt7wNCivssKjsg4HqsJENCivssKjsmrDtkZwNCivssKjtlYTsg4ENCivssKjshLHsiJwNCivssKjshJ3si50NCivssKjquLjtnawNCivssKjtlYTsmqkNCivssKjsoJXtmIQNCivssKjsooXtmIQNCivssKjqt5zrk50NCivssKjtlZzsmqkNCivssKjsgrzsi50NCivssKjsooXslYQNCivssKjsoJXsobANCivssKjtlZzsspwNCivssKjssqDsobANCivssKjsiJjtm4gNCivssKjshLHsmqkNCivssKjtlZzstpwNCivssKjssL3sm5ANCivssKjtmLjtmZQNCivssKjshLHrgqgNCivssKjtlbTshK0NCivssKjsg4HqtJENCivssKjqs6TsiJkNCivssKjrs5HsnbQNCivssKjtmLjshK0NCivssKjrs7XsiJwNCivssKjtg5ztnawNCivssKjrhbjtmZgNCivssYTqsr3spIANCivssYTshLHqt5wNCivssYTrrLTsspwNCivssYTsg4HtmIQNCivssYTqtbDrrLUNCivssYTrj5nstpwNCivssYTsg4HsmIENCivssYTsmKXtmZgNCivssYTqt5ztlZkNCivssYTsooXsmrENCivssYTshJ3sg4ENCivssYTqtJHssKgNCivssYTrhbjshJ0NCivssYTsooXtmLgNCivssYTrgqjtg5wNCivssYTsnqzshJ0NCivssYTrr7zspIANCivssYTrp4zsmKUNCivssYTsoJXshJ0NCivssYTsoJXsm5ANCivssYTsmIHtnawNCivssYTrjZXshJ0NCivssYTrqoXroYANCivssYTsnKTrgqgNCivssYTsnKTrjZUNCivssYTshJ3tmZQNCivssYTtmZjsnpANCivssYTqt5zso7wNCivssYTsnbzrp4wNCivssYTsmIHtmZgNCivssYTtlZjsnpANCivssYTtg5zsl7QNCivssYTsoJXsmIENCivssYTrp5Drj4QNCivssYTtmITsnpANCivssYTtmLjquLANCivssYTsooXrpaANCivssYTssqDqsr0NCivssYTsooXsp4QNCivssYTsiJzsiJgNCivssYTsooXsnKANCivssYTsmrDquLANCivssYTqt5zqt7wNCivssYTsuaDsiJgNCivssYTsp4TsmrANCivssYTsnqzsnoQNCivssYTtmY3shLENCivssYTsg4HtmLgNCivssYTssKjqsJENCivssYTshJ3si50NCivssYTrjIDrqqkNCivssYTrs5HrsLANCivssYTtlZzsi50NCivssYTquLjqtZANCivssYTtmY3rtIkNCivssYTsnbjrnpgNCivsspzqsr3smqkNCivsspzsiJzrgqgNCivsspzqtJHqt5wNCivsspzsmIHqt5wNCivsspzqsr3tmLgNCivsspzshLHsiKANCivsspzsmqnro6ENCivsspzqsr3shJ0NCivsspzrsLDsmIENCivsspzsmIHqsbQNCivsspzquIjsmKQNCivsspztg5zqtawNCivsspzsmrDsmIENCivsspztg5zsiJkNCivsspzsnqztmZgNCivsspzslrjroYANCivsspzsmrDtg5wNCivsspztg5zsmqkNCivsspzsmIHqt7kNCivsspzsmrDtmZgNCivsspzsnqzqt7wNCivsspzsnbTsiJgNCivsspzsnKTquLANCivsspzrtIntmIQNCivsspzsnqzsi50NCivsspzsmrTrjZUNCivsspzsnYDsiJgNCivsspzsspztmLgNCivsspztg5zsooUNCivsspzsm5DsmqkNCivsspzsmIHsm5ANCivsspzsg4HsiJwNCivsspztmLjqt6ANCivsspzsmqntg50NCivsspzsiJjsnbQNCivsspzssqDtnawNCivstZwg6rG0DQor7LWc6rCR67CwDQor7LWc7KCV7KeADQor7LWc7JiB7ZmYDQor7LWcIOqxtA0KK+y1nOuCqOy2mA0KK+y1nO2YnO2drA0KK+y1nOqyve2biA0KK+y1nCDsg4ENCivstZzsmKTslYQNCivstZzquLDrp4wNCivstZzrs5Hsi50NCivstZwg7JykDQor7LWc7Jqp7KO8DQor7LWc7KeE7KeEDQor7LWc7ISx7J24DQor7LWc6rCR64+ZDQor7LWc7Jqw67aVDQor7LWc7KCV7JuQDQor7LWc7Jqp7JilDQor7LWc6rCR7LKgDQor7LWc7IS47IiZDQor7LWc7IK86raMDQor7LWc66+47IiYDQor7LWc6rK964+ZDQor7LWc7ZmN7ISdDQor7LWc7KCV7JWgDQor7LWc7ISd67CwDQor7LWc6rK97IStDQor7LWc7ISg7LacDQor7LWc7KKF6rCRDQor7LWc6rWw7ZiEDQor7LWc6rK97IicDQor7LWc7IOB7ZiBDQor7LWc7ZW06ri4DQor7LWc6riw7JqpDQor7LWc6rK97JWgDQor7LWc7KCV67O1DQor7LWc7KCV7YOcDQor7LWc7KKF7IudDQor7LWc6rK97JilDQor7LWc7JiB6rK9DQor7LWc66eM7KO8DQor7LWc7ISx7KGwDQor7LWc6rK97J28DQor7LWc7IaQ7JmEDQor7LWc642V7Zi4DQor7LWc7JuQ64+ZDQor7LWc6rK97J6QDQor7LWc6re865OdDQor7LWc67OR7IiYDQor7LWc7IOB7KGwDQor7LWc6rK97J6QDQor7LWc7J6s7IudDQor7LWc7KO87J20DQor7LWc66eM7ZmUDQor7LWc6rK97LC9DQor7LWc7Jyk7YOcDQor7LWc7ISx7IigDQor7LWc7J6l7JqpDQor7LWc6rK97LmgDQor7LWc7YOc7JqxDQor7LWc6riI6rOkDQor7LWc7YOc7ZiBDQor7LWc6rK97LmgDQor7LWc7Z2s7JygDQor7LWc7IOB7Zi4DQor7LWc7ISd7J20DQor7LWc6rK97Zi4DQor7LWc7J2E7LacDQor7LWc7KSR7JqpDQor7LWc7IOB7ISdDQor7LWc6rK97ZmYDQor7LWc7IOB7Je0DQor7LWc6riI7Zi4DQor7LWc6rCV7ZWZDQor7LWc6rK97ZuIDQor7LWc7Iic7JqwDQor7LWc6rK97IiYDQor7LWc642V7J20DQor7LWc6rK97Z2sDQor7LWc7KKF7Zi4DQor7LWc7ZWc6re8DQor7LWc7Jq07ISdDQor7LWc6rOk7J20DQor7LWc7J6s7Zi4DQor7LWc7J247IudDQor7LWc7IOB7JqwDQor7LWc6rSR7IudDQor7LWc7ZWE7IicDQor7LWc7J287IiYDQor7LWc6rSR7IiZDQor7LWc6rSR7J6EDQor7LWc7IK864KoDQor7LWc67SJ7ISdDQor7LWc64us7JqwDQor7LWc6rSR7LKgDQor7LWc7YOc7Zi4DQor7LWc64+Z7Zi4DQor7LWc6rWQ7ISgDQor7LWc6rWt66CsDQor7LWc7Iq57IicDQor7LWc7J6s6rK9DQor7LWc7IOB7Zi4DQor7LWc6rWt7KeEDQor7LWc7J247IicDQor7LWc6riw656YDQor7LWc7J287JewDQor7LWc6rWt7LKgDQor7LWc7Jqp7LacDQor7LWc6riw67CwDQor7LWc7J2Y7IiYDQor7LWc6reA6rOkDQor7LWc64us7IudDQor7LWc7Jqp7JewDQor7LWc7Jqp67O1DQor7LWc6reA7KO8DQor7LWc7KKF6regDQor7LWc7J6E6rG0DQor7LWc7Z2s7Z2sDQor7LWc6rec66eMDQor7LWc7ZmY7Zi4DQor7LWc7J217J20DQor7LWc7JiB64KoDQor7LWc6rec67ORDQor7LWc7KCV7ZiEDQor7LWc67OR66eMDQor7LWc7JiB6re8DQor7LWc6rec7ISdDQor7LWc7IOB7Zi4DQor7LWc64+Z7JiBDQor7LWc7KeE6rOkDQor7LWc6rec7LCsDQor7LWc7Iuc7IiYDQor7LWc7LC97ZmYDQor7LWc7KSR64+ZDQor7LWc6rec7YOcDQor7LWc7KeE6reADQor7LWc7J6s7KGwDQor7LWc7Lmg6riwDQor7LWc6re57JqpDQor7LWc6riw7IicDQor7LWc7ISx7JiBDQor7LWc7KCQ7KCVDQor7LWc6re866qoDQor7LWc7JiB7J6QDQor7LWc67OR7ZiEDQor7LWc67OR7ZmYDQor7LWc6riI64+MDQor7LWc7KSA66eMDQor7LWc7Zi47Jq0DQor7LWc6rCR7ZmNDQor7LWc6riI7ISgDQor7LWc7IiZ7IudDQor7LWc67OR67CwDQor7LWc7ZiE7IiYDQor7LWc6riI7J20DQor7LWc67SJ7KCVDQor7LWc67SJ67SJDQor7LWc7IS46rOkDQor7LWc6riw66eMDQor7LWc7ISx6529DQor7LWc64+I7IiYDQor7LWc7J6s7ZiEDQor7LWc6riw66y4DQor7LWc7KCV6rOkDQor7LWc7Jq07Zi4DQor7LWc7J207JqpDQor7LWc6riw7ISxDQor7LWc7JiB7Zi4DQor7LWc6riw7JWUDQor7LWc7J6s7ISdDQor7LWc6riw7JuQDQor7LWc7LmY7IiYDQor7LWc67aA7IudDQor7LWc642V7ISgDQor7LWc6riw7ZmYDQor7LWc7ZW07Z2sDQor7LWc7JiB7ZiEDQor7LWc67SJ64+ZDQor7LWc6ri464+ZDQor7LWc64+Z7IiYDQor7LWc7J6s7ZmYDQor7LWc7KeE6recDQor7LWc6ri466+4DQor7LWc7KSR7Je0DQor7LWc67OR7YOdDQor7LWc6rCR7IiYDQor7LWc6ri47JqpDQor7LWc7J207J6EDQor7LWc7ZiE66eMDQor7LWc7KSR7KSADQor7LWc64KZ66y4DQor7LWc7LC97Je0DQor7LWc7KKF6recDQor7LWc6raM7JuQDQor7LWc64KZ7J24DQor7LWc66qF7ZiEDQor7LWc67OR7ZmYDQor7LWc7ISx7JygDQor7LWc64Kc7ISgDQor7LWc7IaM7IudDQor7LWc64W46rWwDQor7LWc7ZiE7J28DQor7LWc64Ko7JuQDQor7LWc7ZW06riwDQor7LWc67OR65OdDQor7LWc7KeE7YOdDQor7LWc64Ko7J20DQor7LWc67O16regDQor7LWc7LaY7LKgDQor7LWc7Z2s7Z2sDQor7LWc64Ko7KCVDQor7LWc7YOc7Z2sDQor7LWc7J6s7ISkDQor7LWc7KCQ7IudDQor7LWc64Ko7KGwDQor7LWc7Jyg7Z2sDQor7LWc7IOB7J6sDQor7LWc6rK97ISgDQor7LWc64Ko7LKgDQor7LWc7KCV7YOcDQor7LWc7Zi47JqpDQor7LWc7IOB67O1DQor7LWc64Ko7Z2sDQor7LWc7Iic7IiYDQor7LWc6riI7J20DQor7LWc7J287IiYDQor7LWc64K07IK8DQor7LWc7Jqp7Z2sDQor7LWc7IOB7KSADQor7LWc7LaY7LKgDQor7LWc64yA6rOkDQor7LWc7JiB7JWEDQor7LWc6riw6re8DQor7LWc6reA7ZmYDQor7LWc64yA7JuFDQor7LWc7ZW07JiBDQor7LWc7J28642VDQor7LWc66y07ZmUDQor7LWc64yA7KKFDQor7LWc7J2Y6rWtDQor7LWc6re864usDQor7LWc6rCV7LaYDQor7LWc64yA7ZmYDQor7LWc7JiB7IiYDQor7LWc7IaM7ZeMDQor7LWc67OR7ZWcDQor7LWc642V7IicDQor7LWc7ZWZ7IudDQor7LWc6riw7KCVDQor7LWc66Gd7KCVDQor7LWc64+I6rOkDQor7LWc7IOB7ZmYDQor7LWc7Jqp6riwDQor7LWc7YOc7J28DQor7LWc64+I7ZeMDQor7LWc7J287Y+sDQor7LWc7ZWc7IugDQor7LWc67aE66eMDQor7LWc64+Z6rG0DQor7LWc7Jq06recDQor7LWc7KKF7ZuIDQor7LWc7IOB7Zi4DQor7LWc64+Z6rWtDQor7LWc6rG066y4DQor7LWc7J6s7IiZDQor7LWc7Jyk7ZmYDQor7LWc64+Z6riwDQor7LWc6rK966GdDQor7LWc7Iq57IiZDQor7LWc6reA67aEDQor7LWc64+Z6ri4DQor7LWc7YOc7IudDQor7LWc7J6s6rK9DQor7LWc7J6Q7Zi4DQor7LWc64+Z66qpDQor7LWc7Jyg67O1DQor7LWc7JiB7ZmYDQor7LWc7IOB7ISxDQor7LWc64+Z7IScDQor7LWc7Jqw7LKgDQor7LWc7J247J20DQor7LWc7KCV7J20DQor7LWc64+Z7IigDQor7LWc7LC97ZmYDQor7LWc6riw7ZmNDQor7LWc7ISd7IigDQor7LWc64+Z7IudDQor7LWc7KCV7IicDQor7LWc7Jm46re8DQor7LWc7JuQ7IiZDQor7LWc64+Z7JqxDQor7LWc6ri4656ADQor7LWc7KKF7J6QDQor7LWcIOyatA0KK+y1nOuPmeyjvA0KK+y1nOuFhOusuA0KK+y1nOq4sO2DnA0KK+y1nOyDgeu5iA0KK+y1nOuPmeykgA0KK+y1nOqwkeyInA0KK+y1nOqyve2YuA0KK+y1nO2VtOyhsA0KK+y1nOuPmeynhA0KK+y1nOyasOqzpA0KK+y1nOyImOyImA0KK+y1nO2XjOq4sA0KK+y1nOuPmeynhA0KK+y1nOq4sOq1rA0KK+y1nOyerO2doA0KK+y1nOyDgeuemA0KK+y1nOuPmey2mA0KK+y1nOyYge2drA0KK+y1nOyaqeydvA0KK+y1nOyYpOyglQ0KK+y1nOuPme2YuA0KK+y1nOyDgeyLnQ0KK+y1nOyDgeynhA0KK+y1nOqyvey2mA0KK+y1nOuPme2ZjQ0KK+y1nOyaqeydtA0KK+y1nOuPmeyImA0KK+y1nOyjvOqwkQ0KK+y1nOuPme2ZlA0KK+y1nOywveusuA0KK+y1nOyYpeyXtA0KK+y1nOygkO2VtA0KK+y1nOuPme2biA0KK+y1nOyihe2ZmA0KK+y1nOyInOqwkQ0KK+y1nOyerO2YuA0KK+y1nOuRkOq4sA0KK+y1nO2drO2MkA0KK+y1nOyDne2VtA0KK+y1nOyEseyyoA0KK+y1nOuRkOyXtA0KK+y1nOyerOyhsA0KK+y1nOyYgeynhA0KK+y1nOyiheybhQ0KK+y1nOuRkOybkA0KK+y1nO2ZmOybkA0KK+y1nO2DnOyVoA0KK+y1nOuvuOyLrA0KK+y1nOuRkO2YlQ0KK+y1nOynhOusuA0KK+y1nOywqOydtA0KK+y1nOyDge2ZmA0KK+y1nOugpO2YhA0KK+y1nOq3nO2DnQ0KK+y1nOydtOyInA0KK+y1nOusmOyEnQ0KK+y1nOuniOyaqQ0KK+y1nO2YuOuPmQ0KK+y1nOyYgeuPhA0KK+y1nCDroKgNCivstZzrp4zqtowNCivstZztjJDqt5wNCivstZzsiJjrkZANCivstZzrtInqsr0NCivstZzrp4zrj4QNCivstZzqtZDtnawNCivstZzrqoXsp4QNCivstZzspIDtnaANCivstZzrp4zrj4wNCivstZzspIDsm5ANCivstZzrs5Hqt5wNCivstZztlbTqtawNCivstZzrp4zsnqwNCivstZzshozsiJgNCivstZzsooXqtowNCivstZzsoJXsobANCivstZzrp5DshJ0NCivstZzrj5ntm4gNCivstZzsg4HsiJwNCivstZztg5zrrLgNCivstZzrp5DshKANCivstZzrs5HspJENCivstZzsnqztmZgNCivstZzrrLTtmLgNCivstZzrp5DshKANCivstZzsmbjtmLgNCivstZzsnKTsmqkNCivstZzsnqzsiJgNCivstZzrp5DshKANCivstZzsmqnquLANCivstZzqt7zsmIENCivstZzshJ3sp4QNCivstZzrqoXqtawNCivstZzsnqzsiJwNCivstZzsnKTsiJkNCivstZzsnqzsiJgNCivstZzrqoXqt7wNCivstZzrtInqt5wNCivstZzsi5zsg4ENCivstZzssL3siJgNCivstZzrqoXquLANCivstZzshLHquIgNCivstZzsnqzqsr0NCivstZzquLDsiJgNCivstZzrqoXquLgNCivstZzsnbjtlZwNCivstZzsnKTsmqkNCivstZzsgrztmZgNCivstZzrqoXquLgNCivstZzshLHrjIANCivstZzrp4zrtoQNCivstZzrp5DtnawNCivstZzrqoXrjZUNCivstZzsg4HquLANCivstZzrs5Hqt5wNCivstZzsooXtmZgNCivstZzrqoXrnoANCivstZzsl7DsobANCivstZzsmqnqt6ANCivstZzsp4Tqt7wNCivstZzrqoXro6ENCivstZzsmrDsi50NCivstZztg5zquIgNCivstZzsmIHsmYQNCivstZzrqoXshKANCivstZztlonrtIkNCivstZzrnoDtmLgNCivstZzri6zrnpgNCivstZzrqoXsiKANCivstZzsiJntnawNCivstZzsiJjshLENCivstZzsmIHrgqgNCivstZzrqoXsm5ANCivstZzsnbjshLENCivstZzsmIHrj5kNCivstZzrtoDsspwNCivstZzrqoXtmZQNCivstZzsnbXrrLgNCivstZzsspzsi50NCivstZzsnZjsi50NCivstZzrqr3quLANCivstZzsnLXtnawNCivstZzqs6TtmZQNCivstZzsmIHsooUNCivstZzrrLTsoJUNCivstZzsg4HspJENCivstZzsmIHsp4QNCivstZzrkZDrsLANCivstZzrrLTtmIQNCivstZzspJHsiJgNCivstZzqsJHsiJwNCivstZzsnbzqsIENCivstZzrrLjrs7UNCivstZzsgrzssqANCivstZztg5zquLANCivstZzquLDtmJUNCivstZzrrLjshJ0NCivstZzshKDquLANCivstZztmqjquLANCivstZzsnqXssqANCivstZzrrLjshK0NCivstZzsg4HsiJwNCivstZzsooXtnawNCivstZzslZTtmLgNCivstZzrrLjsnqwNCivstZzsiJjrsLANCivstZzqtJHsiJkNCivstZzsm5Tsl7ANCivstZzrr7jshLENCivstZztlbTsnbgNCivstZzqtJHsiJgNCivstZzsmIHsnbgNCivstZzrr7jsiJkNCivstZzsooXrr7wNCivstZzsmqnsnoQNCivstZzso7ztmLgNCivstZzrr7ztnawNCivstZztlYTssqANCivstZzqsJHrs7UNCivstZzsvozsl7QNCivstZzrspTsmqkNCivstZztjJDrnpgNCivstZzsiJztmY0NCivstZzrp4zshLgNCivstZzrspTso7wNCivstZzsmIHtnawNCivstZzsooXtnawNCivstZzssL3tmLgNCivstZzrs5Hqt5wNCivstZzssqDssqANCivstZzsooXsnoQNCivstZzqsIDtl4wNCivstZzrs5HquLgNCivstZzrqoXtmLgNCivstZzssKjso7wNCivstZzsmIHstIwNCivstZzrs5HquLgNCivstZzstpjqsbQNCivstZzsg4Hsp4QNCivstZzshLHsnoQNCivstZzrs5HquLgNCivstZzsmIHtnawNCivstZztg5zrtIkNCivstZztg5zqtJENCivstZzrs5Hri7QNCivstZzshLjrgqgNCivstZzrs5HtmZgNCivstZzshLjqs6QNCivstZzrs5HsiJgNCivstZzsmKTsiJgNCivstZzqsJHsmrENCivstZzsoJXqtZANCivstZzrs5HsiJgNCivstZzsnqzqtawNCivstZzsmIHqtawNCivstZzquIjqsr0NCivstZzrs5HsiJgNCivstZzqs7XtmLgNCivstZzstpjrnpgNCivstZzssL3smrANCivstZzrs5HsiKANCivstZzrp4zsoJUNCivstZztmLjsl7ANCivstZzstpjsg4ENCivstZzrs5HslZQNCivstZzqtaztm4gNCivstZzqsJHsiJgNCivstZzsnqzrs7UNCivstZzrs5Hsl7QNCivstZzrjIDquLANCivstZzrrLTquLANCivstZzsmqnquLgNCivstZzrs5HsmKQNCivstZzqs4TspJENCivstZzsp4TsmrANCivstZzsmIHsmqkNCivstZzrs5HsmrQNCivstZztg5zsmIENCivstZzrs7XqtZANCivstZzrs7Ttg5wNCivstZzrs5Hso7wNCivstZzsnqzquLANCivstZzrspTtmIQNCivstZzsi6Dtg50NCivstZzrs5HspIANCivstZztmZTsl7QNCivstZzsnZjtnawNCivstZzsooXrp4wNCivstZzrs5HssKwNCivstZzqt5zsobANCivstZzsiJjrrLUNCivstZzsmIHsl7QNCivstZzrs5HssKwNCivstZzsg4Hqt5wNCivstZzrjIDtg50NCivstZzssL3smrANCivstZzrs5HssqANCivstZztlbTtm4gNCivstZzrs7Tsi50NCivstZzsg4HsmKQNCivstZzrs5HssqANCivstZztmITspIANCivstZzqt5zshLENCivstZzsoJXqtIANCivstZzrs5Htg50NCivstZztnaXstpQNCivstZzsnbzrnoANCivstZzrjIDsl7ANCivstZzrs5HtlYQNCivstZzrgpnsiJkNCivstZzsirnqtIANCivstZzqsr3smqkNCivstZzrs5HtlZgNCivstZzspJHrj4QNCivstZzsnZjrspQNCivstZztg5zsnpANCivstZzrs5HtmZgNCivstZzsg4HsiJgNCivstZzstpjsspwNCivstZzssKjtmLgNCivstZzrs7Tqt7wNCivstZzsmIHshK0NCivstZzshLHsiJgNCivstZzquLDtj4kNCivstZzrs7XrnoANCivstZzrs5HsnKQNCivstZzsiJzsmKUNCivstZzsirntmIQNCivstZzrs7XroKgNCivstZzsnYTsiJwNCivstZzsmIHtmIQNCivstZzshLHrqoUNCivstZzrs7XsiJwNCivstZzrj4TsobANCivstZzssqDsobANCivstZzsiJjsspwNCivstZzrs7Xsl7ANCivstZztlbTshK0NCivstZzrj4Tsl7ANCivstZzsnoTsobANCivstZzrs7XsmIENCivstZzsoJDsnbQNCivstZzsooXsiJgNCivstZzshLHqt7wNCivstZzrs7XsmqkNCivstZzqtJHqsJENCivstZzsmqnsmqkNCivstZzsnqXsp4QNCivstZzrs7XstpwNCivstZzsiJzsmqkNCivstZztmqjquLgNCivstZzsmIHsi50NCivstZzrs7XtmLgNCivstZzsmIHtnLQNCivstZzshJ3smrQNCivstZzsmqnsiJgNCivstZzrtInqtowNCivstZzshJ3tg50NCivstZztm4jsmIENCivstZzsmqntnawNCivstZzrtInshKANCivstZzsooXquLANCivstZzri6TtmIQNCivstZztnaXrr7wNCivstZzrtIntmqgNCivstZzrj5ntmLgNCivstZztnJjsiJgNCivstZzrrLTrjZUNCivstZzrtIntnawNCivstZzsnKTqsr0NCivstZzsooXsiJgNCivstZzsoJXsmqkNCivstZzrtoDsi50NCivstZzsooXrs7UNCivstZzsnqztnawNCivstZzrgqjri6wNCivstZzrtoTrgqgNCivstZztg5zqt5wNCivstZzrs7XtnawNCivstZzssKztg5wNCivstZzrtoTshKANCivstZzsmIHqsJENCivstZzsnqzqta0NCivstZzrtoTtmIQNCivstZzrtoTsmKUNCivstZztmITsooUNCivstZzrgqjsmIENCivstZzsmIHtl4wNCivstZzrtoTsnbQNCivstZzrgqjtlbQNCivstZztg5ztmLgNCivstZztnJjtmqgNCivstZzsgrzrs7UNCivstZzshLHrjZUNCivstZzquLDsiKANCivstZzsirnquLgNCivstZzsgrzsiJwNCivstZzsoJXstpwNCivstZzsoJXsm5ANCivstZzqt5zsmrENCivstZzsgrzsmqkNCivstZztlZnshKANCivstZzsoJXsmKUNCivstZzsoJXsobANCivstZzsgrzsobANCivstZztmJXsoJUNCivstZzqtIDsp4QNCivstZzrqoXsm5ANCivstZzsgrztnawNCivstZzrqoXshKQNCivstZzrjIDsiJwNCivstZzshJ3sp4ANCivstZzsg4Hqs6QNCivstZzsnqzsmKQNCivstZzrs5HsnqwNCivstZzrs5HsmKUNCivstZzsg4Hqt6ANCivstZzquLDqs6QNCivstZwg7IudDQor7LWc6rWQ7JuFDQor7LWc7IOB6riwDQor7LWc66y467aEDQor7LWc7Jew7IiYDQor7LWc7Zqo7IOdDQor7LWc7IOB65GQDQor7LWc7JuQ6rWsDQor7LWc6rec7KeEDQor7LWc67OR7LKgDQor7LWc7IOB66a8DQor7LWc7YOc7IK8DQor7LWc7Zi46rWQDQor7LWc7YyQ7IicDQor7LWc7IOB66a8DQor7LWc7KKF7KGwDQor7LWc66y47Zi4DQor7LWc7JiB7IudDQor7LWc7IOB66a8DQor7LWc6rCV6rWsDQor7LWc7IiY7Jq0DQor7LWc6rK97KCVDQor7LWc7IOB66y0DQor7LWc64+E7ZmYDQor7LWc7J247Z2sDQor7LWc7Jm47KeEDQor7LWc7IOB67CxDQor7LWc7KCV6re8DQor7LWc66eQ7LmYDQor7LWc67SJ6recDQor7LWc7IOB7ISdDQor7LWc7YOc7ZmYDQor7LWc7IOB6regDQor7LWc7KKF7KGwDQor7LWc7IOB7IiZDQor7LWc7YyQ7IudDQor7LWc7ZWc6recDQor7LWc7KKF6raMDQor7LWc7IOB7Je0DQor7LWc7J6l6rWsDQor7LWc7KeA7ZmYDQor7LWc7Jqp7IudDQor7LWc7IOB7JiBDQor7LWc7KSR7Zi4DQor7LWc7JuQ7ZmYDQor7LWc67O07IudDQor7LWc7IOB7J20DQor7LWc7IyN7ISgDQor7LWcIO2DnA0KK+y1nO2DnOyXtA0KK+y1nOyDgeyihQ0KK+y1nOydmOq4sA0KK+y1nOyEseuNlQ0KK+y1nOyEoOyLpA0KK+y1nOyDge2YuA0KK+y1nOuMgOyaqQ0KK+y1nOyCrOq3vA0KK+y1nOygkOyaqQ0KK+y1nOyDge2YuA0KK+y1nOyDgeyImA0KK+y1nOydtO2ZjQ0KK+y1nOyEseybkA0KK+y1nOyDge2YuA0KK+y1nOyEneyekA0KK+y1nOq4uO2YuA0KK+y1nO2DnOyLnQ0KK+y1nOyDge2ZmA0KK+y1nOqyve2ZmA0KK+y1nOustOyatA0KK+y1nOyDgeyImA0KK+y1nOyDge2ZmA0KK+y1nOyEuOyhsA0KK+y1nOuzkeuqqA0KK+y1nOuTneu0iQ0KK+y1nOyDge2biA0KK+y1nOyaqeusuA0KK+y1nOyLoOyErQ0KK+y1nOyDgeuNlQ0KK+y1nOyEneq0gA0KK+y1nOyjvOyasQ0KK+y1nOuMgOyjvA0KK+y1nOuzkeq4sA0KK+y1nOyEneq0kQ0KK+y1nOuqheuwsA0KK+y1nO2VnO2drA0KK+y1nOuTneyXtA0KK+y1nOyEneq3vA0KK+y1nOyEse2DnA0KK+y1nOyEseyEnQ0KK+y1nOyaqe2DgQ0KK+y1nOyEneuqhQ0KK+y1nOyDgeqyvQ0KK+y1nOykkeyhsA0KK+y1nOyYgeyImA0KK+y1nOyEneusuA0KK+y1nOycoOyekA0KK+y1nOq0ke2YuA0KK+y1nOyDgeyerA0KK+y1nOyEneuwsA0KK+y1nOq4iOq3nA0KK+y1nOygleyImA0KK+y1nOyasOyErQ0KK+y1nOyEneyYpA0KK+y1nOyEuO2ZjQ0KK+y1nOyYgeyXtA0KK+y1nOyImOq4iA0KK+y1nOyEneyerA0KK+y1nOyYgeyIoA0KK+y1nOyEneyglQ0KK+y1nOq1rOynhA0KK+y1nOyEneyyoA0KK+y1nO2VnOyaqQ0KK+y1nOyerO2XjA0KK+y1nOuvuOyImA0KK+y1nOyEneyyoA0KK+y1nOyDgeqwkQ0KK+y1nOykgOydtA0KK+y1nOyaqeyLnQ0KK+y1nOyEne2XjA0KK+y1nOydvOqyvQ0KK+y1nOykkeyEnQ0KK+y1nOuqheynhA0KK+y1nOyEne2XjA0KK+y1nOyaqeqxtA0KK+y1nOyDge2ctA0KK+y1nOydmOyihQ0KK+y1nOyEne2YuA0KK+y1nOq2jOuhnQ0KK+y1nOydhOynhA0KK+y1nOyDgeyekA0KK+y1nOyEoOq3nA0KK+y1nOyblOywrA0KK+y1nOyEseq1rQ0KK+y1nOuylOq3oA0KK+y1nOyEoOydtA0KK+y1nOq4iO2drA0KK+y1nOyImOyXsA0KK+y1nOydmOyXtA0KK+y1nOyEoO2drA0KK+y1nOqyveyjvA0KK+y1nOygleq2jA0KK+y1nOuylO2ZlA0KK+y1nOyEseqyvQ0KK+y1nOuvuO2YuA0KK+y1nOuzkeuemA0KK+y1nOybkOq3vA0KK+y1nOyEseqzpA0KK+y1nOqyveuPjA0KK+y1nOygkOykgA0KK+y1nOyerOyImA0KK+y1nOyEseq0gA0KK+y1nOuzkeyEsQ0KK+y1nOyYgeyaqQ0KK+y1nOyihe2XjA0KK+y1nOyEseq1rA0KK+y1nOyEoOyZhA0KK+y1nOygleuqqQ0KK+y1nOygleyXtA0KK+y1nOyEseq3nA0KK+y1nOyEseykgA0KK+y1nOuNleyInA0KK+y1nOuvuO2VnA0KK+y1nOyEseq3nA0KK+y1nOyaqeyekA0KK+y1nOuPmeyXtA0KK+y1nOuCqOydvA0KK+y1nOyEseq3nA0KK+y1nOq3nOyLnQ0KK+y1nOyerOyLnQ0KK+y1nOyerOuRkA0KK+y1nOyEseq3nA0KK+y1nO2drOyasA0KK+y1nOyYgey2nA0KK+y1nOybkOq4sA0KK+y1nOyEseuMgA0KK+y1nOyYgeyaqQ0KK+y1nO2XjOyyoA0KK+y1nOy2mOyaqQ0KK+y1nOyEseuMgA0KK+y1nOychOycpA0KK+y1nOq3nOuPiA0KK+y1nOyEseyaqQ0KK+y1nOyEseuNlQ0KK+y1nOuMgO2ZmA0KK+y1nOyblOyaqQ0KK+y1nO2DnOq3vA0KK+y1nOyEseuPmQ0KK+y1nOykgOq3vA0KK+y1nOyjvOyyoA0KK+y1nOygleynhA0KK+y1nOyEseujoQ0KK+y1nOuylOumvA0KK+y1nOuCqO2YuA0KK+y1nOynhOuemA0KK+y1nOyEseusuA0KK+y1nO2VnOyyoA0KK+y1nOyiheyErQ0KK+y1nOykgOyLnQ0KK+y1nOyEseuvvA0KK+y1nOyYge2YhA0KK+y1nO2XjOyImA0KK+y1nOq3nOyEnQ0KK+y1nOyEseu0iQ0KK+y1nOyekOuCqA0KK+y1nOygle2WpQ0KK+y1nOyEseyImQ0KK+y1nOyEseyImA0KK+y1nOq1reyyoA0KK+y1nCDtmIENCivstZzsirnquLANCivstZzshLHsl7QNCivstZzrp5DsmqkNCivstZzsoJXrjZUNCivstZztjJTtmZQNCivstZzshLHsl7QNCivstZztg5zsooUNCivstZzsnbXtmLgNCivstZzsirnshK0NCivstZzshLHsl7QNCivstZzsvozspIANCivstZzsirnsnoQNCivstZzsnqztmIQNCivstZzshLHsmqkNCivstZzsnqzsnpANCivstZzsoJXsnqwNCivstZzrqoXspIANCivstZzshLHsmrENCivstZzsmrHtmZQNCivstZztg5zsiJgNCivstZzrjIDtmLgNCivstZzshLHsmrQNCivstZzqt7zsnbQNCivstZzsnqzqtowNCivstZzsg4HtmY0NCivstZzshLHsm5ANCivstZzshLHsl7ANCivstZzrs7TrhbgNCivstZztlbTsl7QNCivstZzshLHsm5ANCivstZzsoJXtg50NCivstZzsooXrtIkNCivstZzsoJXtm4gNCivstZzshLHsnqwNCivstZzrsKnsnpANCivstZztg5ztmLgNCivstZztg5zsoJwNCivstZzshLHsnqwNCivstZzsooXrj4QNCivstZztjJDsi50NCivstZzqt7zsiJwNCivstZzshLHsobANCivstZzsnqzsp4QNCivstZzsgrzsnbwNCivstZzsoJXsmqkNCivstZzshLHspIANCivstZzrrLTshJ0NCivstZztlZnqsbQNCivstZzqsJHsobANCivstZzshLHtg4ENCivstZzri6ztlZgNCivstZzsnqztmqgNCivstZzrs5HtnawNCivstZzshLHtg5wNCivstZzsoJXsooUNCivstZzspJHslrgNCivstZzsnbTrj5kNCivstZzshLHtg5wNCivstZzrj5nso7wNCivstZzsnqzsobANCivstZzrj5nsnbgNCivstZzshLHtg50NCivstZzshJ3rsLANCivstZztmJXqtawNCivstZztmZjsmqkNCivstZzshLHtmIQNCivstZzsiKDqt5wNCivstZztmLjrsLANCivstZzsiJzquLANCivstZzshLHtmLgNCivstZzstpjtmY0NCivstZzsp4Tqsr0NCivstZzsmIHrrLgNCivstZzshLHtmLgNCivstZzqsr3rrLgNCivstZztmZTshJ0NCivstZzsnYDtnLQNCivstZzshLHtmZQNCivstZzrp5DstpwNCivstZzsp4TsmqkNCivstZztmLjtlZgNCivstZzshLHtmZQNCivstZzrj5nsiJgNCivstZzshLHrjZUNCivstZzssKjrs7UNCivstZzshLHtmZgNCivstZzshKDsiJgNCivstZzshLHsnKQNCivstZzsnqzqtawNCivstZzshLHtm4gNCivstZzshJ3smqkNCivstZzrj5ntmLgNCivstZzrrLTtmLgNCivstZzshozrj4QNCivstZzshJ3smKUNCivstZzqsJHtmLgNCivstZztmY3smqkNCivstZzshozrj4QNCivstZzsooXsl4UNCivstZzrrLTquLANCivstZztmY3smqkNCivstZzshozsnoQNCivstZzrs5HsiJwNCivstZzsnYDsiJkNCivstZzshJ3snbQNCivstZzsiJjrgqgNCivstZztlZzrj5kNCivstZzsnKTrtoANCivstZzshLjtmLgNCivstZzsiJjrj5kNCivstZzsnbjssqANCivstZzssKjtmLgNCivstZzsg4HrhYANCivstZzsiJjrj5kNCivstZzshLjro6ENCivstZzsm5DsmrQNCivstZzsirnsnqwNCivstZzsiJjroKgNCivstZzrj5ntm4gNCivstZzqtIDqt5wNCivstZzsnKDsobANCivstZzsiJjrp4wNCivstZzquLjtnawNCivstZzsnqztmIQNCivstZzrs5Htl4wNCivstZzsiJjsl7QNCivstZzsgrztmIQNCivstZztmZTshLENCivstZzsnqzqsr0NCivstZzsiJjsnbgNCivstZzquIjsmqkNCivstZzshLHsiJgNCivstZzsg4Htg50NCivstZzsiJjsnbwNCivstZzsnbzqt5wNCivstZzrjIDshKANCivstZzssqDssqANCivstZzsiJjsnqUNCivstZzrhbjqtIANCivstZzsirntlZwNCivstZzshLjrjZUNCivstZzsiJjsooUNCivstZztlZnshKANCivstZztmLjqt5wNCivstZzsnqztlZkNCivstZzsiJjsooUNCivstZzrspTtmowNCivstZzsmIHqt7wNCivstZzrjZXsi50NCivstZzsiJzqt7wNCivstZztlbTsnbQNCivstZzsmIHsm5ANCivstZzsm5TrrLgNCivstZzsiJzquLANCivstZzsoJXtmLgNCivstZzsp4Tsg4ENCivstZzqtazrp4wNCivstZzsiJzquLANCivstZzsg4HtmY0NCivstZzspIDsiKANCivstZzstpjrtoQNCivstZzsiJzquLgNCivstZzrjIDsiJkNCivstZztg5zstpgNCivstZzsiJztmZgNCivstZzsiJzrhYANCivstZzsnqzsmKUNCivstZzsnoTsiJwNCivstZzsiJzrj5kNCivstZzsiJzrjZUNCivstZzssL3tmowNCivstZzqsr3qta0NCivstZzsiJzsmrENCivstZzsiJzrjZUNCivstZzrrLTquLgNCivstZzsooXqt5wNCivstZzsoJXqsJENCivstZzsiJzrj5kNCivstZzsm5Trp4wNCivstZzsmrTsnbUNCivstZzqs4TtmZgNCivstZzsiJzsg4ENCivstZzsooXtmLgNCivstZzsoJXrjZUNCivstZzsiKDqtowNCivstZzsiJzshKANCivstZzsooXsi50NCivstZzqsr3shJ0NCivstZztlZztg5wNCivstZzsiJzsi6ANCivstZzsoJXqsJENCivstZzrtIntnawNCivstZzsiJnrqqgNCivstZzsiJzsl7ANCivstZzsnKTtmLgNCivstZztlbTsnqwNCivstZwg7JikDQor7LWc7Iic7JewDQor7LWc7KCV7KSADQor7LWc7ZWE7JilDQor7LWc67O17JqpDQor7LWc7Iic7JqxDQor7LWc66qF7KeEDQor7LWc6riw7IiYDQor7LWc7JiB7JmEDQor7LWc7Iic7J20DQor7LWc7ISx7J6QDQor7LWc7JiB7JiBDQor7LWc6rSR7KGwDQor7LWc7Iic7J21DQor7LWcIOqzpA0KK+y1nOu2hOq3nA0KK+y1nOq0keq2jA0KK+y1nOyInOyerA0KK+y1nOygkOq0gA0KK+y1nOydvOywvQ0KK+y1nOyxhO2YuA0KK+y1nOyInOyerA0KK+y1nOqyveyynA0KK+y1nOyEseunjA0KK+y1nOq2jOyVlA0KK+y1nOyInOy2nA0KK+y1nOuFuOyEnQ0KK+y1nOuzkeyIoA0KK+y1nO2SjeyYpQ0KK+y1nOyInO2DnQ0KK+y1nOyGjOyEnQ0KK+y1nOuzkeusuA0KK+y1nOuPme2VmQ0KK+y1nOyInO2YuA0KK+y1nOybkOq3nA0KK+y1nO2DnOydvA0KK+y1nOq4iOyCvA0KK+y1nOyInO2ZlA0KK+y1nOyiheyYpQ0KK+y1nOybkOuPhA0KK+y1nOygleusuA0KK+y1nOyInO2drA0KK+y1nOuPiO2VmQ0KK+y1nOyYgeyihQ0KK+y1nOyihe2YhA0KK+y1nOyKueudvQ0KK+y1nOygleq1rQ0KK+y1nOyYge2YuA0KK+y1nOq0ke2YhA0KK+y1nOyKue2YhA0KK+y1nOyDgeyatA0KK+y1nOydhOu0iQ0KK+y1nOy2mOq3oA0KK+y1nOyKue2ZmA0KK+y1nOuCqOuTnQ0KK+y1nOygkOyErQ0KK+y1nOunkO2ZmA0KK+y1nOyLnOyYgQ0KK+y1nO2VtOuemA0KK+y1nOq0ke2cmA0KK+y1nO2ZqeyjvA0KK+y1nOyLne2DnA0KK+y1nOuzkeybkA0KK+y1nOyYgeq3nA0KK+y1nOynhO2YuA0KK+y1nOyVoOyglQ0KK+y1nOycpOydtQ0KK+y1nO2YnOyhsA0KK+y1nOyEse2ZlA0KK+y1nOyWkeyekA0KK+y1nOuMgOusuA0KK+y1nO2YleyXtA0KK+y1nOyDgeq0gA0KK+y1nOyWuOyLnQ0KK+y1nOuvuOyLnQ0KK+y1nOuqheyXsA0KK+y1nOuMgOq3vA0KK+y1nOyXrOq1kA0KK+y1nOyerOuLtA0KK+y1nOyKueyghA0KK+y1nOyDgeyImA0KK+y1nOyXsOq1rA0KK+y1nOqzhOyjvA0KK+y1nOunieywrA0KK+y1nOusuOyImA0KK+y1nOyXsO2ZjQ0KK+y1nOyYgeyYgQ0KK+y1nOq4sOq2jA0KK+y1nOyInO2drA0KK+y1nOyYgeqzpA0KK+y1nOuzkeyEoA0KK+y1nOuMgOyImQ0KK+y1nOyblOyEnQ0KK+y1nOyYgeq0gA0KK+y1nO2YuOuztQ0KK+y1nOyaqeyEsQ0KK+y1nOq3vOq3nA0KK+y1nOyYgeq1rQ0KK+y1nOyYpOq1rQ0KK+y1nO2VtOybkA0KK+y1nOyImOydtA0KK+y1nOyYgeq3nA0KK+y1nCDrnpgNCivstZzrp4ztmLgNCivstZzsnbjsl7ANCivstZzsmIHqt5wNCivstZzslYXqsJENCivstZzshozqt5wNCivstZzsnKTsiJgNCivstZzsmIHqt7wNCivstZzsnbzsobANCivstZzrs5Hsm5ANCivstZzshLHtm4gNCivstZzsmIHrjIANCivstZzslpHsnqwNCivstZztmqjtmLgNCivstZzsooXsnpANCivstZzsmIHrjZUNCivstZzquLDtmZgNCivstZzrgpnssqANCivstZzrr7jsnpANCivstZzsmIHrj4QNCivstZzshoztjJANCivstZzsiJztlqUNCivstZzrp5Dsm5ANCivstZzsmIHrj5kNCivstZzrqoXsnpANCivstZzrjIDquIgNCivstZzrjZXqs6QNCivstZzsmIHrp4wNCivstZzsmIHtnawNCivstZzsiJjqtawNCivstZztg5zsg4ENCivstZzsmIHrp4wNCivstZzrspTqt5wNCivstZzrj4TsnbgNCivstZzsmrTrrLgNCivstZzsmIHrp4wNCivstZztjJDsp4QNCivstZzsoJXsiJgNCivstZzqt4Dsg4ENCivstZzsmIHshJ0NCivstZzsooXsp4ENCivstZzsooXqt5wNCivstZzsnqztg50NCivstZzsmIHsiJgNCivstZwg7JiBDQor7LWc7JuU64+EDQor7LWc7JiB67CwDQor7LWc7JiB7IiYDQor7LWc7ISd7LKgDQor7LWc7J6s7Zi4DQor7LWc7ZiV7ISdDQor7LWc7JiB7IiZDQor7LWc7Zqo7ISdDQor7LWc7Jew7J6sDQor7LWc7ISx7JuQDQor7LWc7JiB7IicDQor7LWc7KCV7ZWcDQor7LWc66eM7JqpDQor7LWc7JiB6riwDQor7LWc7JiB7IicDQor7LWc7KeE7ZiEDQor7LWc6rSR7IiZDQor7LWc7Zi47KCQDQor7LWc7JiB7IudDQor7LWc66qF7ISkDQor7LWc7ZmY7IicDQor7LWc7JuU7IicDQor7LWc7JiB7Je9DQor7LWc7ISx7JWUDQor7LWc7KCV7IudDQor7LWc7LKg7KeEDQor7LWc7JiB7JikDQor7LWc7ZiV6re8DQor7LWc7KCV7IicDQor7LWc7J206riwDQor7LWc7JiB7J2YDQor7LWc7J217KSRDQor7LWc7IK87IudDQor7LWc7Jyk7ZWZDQor7LWc7JiB7J6QDQor7LWc7Jqp7IK8DQor7LWc66qF66CsDQor7LWc7IaM7IiZDQor7LWc7JiB7J6QDQor7LWc7YOc7IicDQor7LWc7IiY642VDQor7LWc67aE7IiYDQor7LWc7JiB7J6sDQor7LWc6raM7IiYDQor7LWc7IS47JilDQor7LWc7YOc6recDQor7LWc7JiB7KO8DQor7LWc7IiY7Je0DQor7LWc7KeE64+ZDQor7LWc7ISk7Zi4DQor7LWc7JiB7KSADQor7LWc6rK966eMDQor7LWc7KCV6rK9DQor7LWc7ZWZ7JiBDQor7LWc7JiB7KeBDQor7LWc7ISx6rK9DQor7LWc7Iic7ZmYDQor7LWc7LCs7J20DQor7LWc7JiB7KeEDQor7LWc7Jil7LKgDQor7LWc7Iic7Zi4DQor7LWc7KCV7KGwDQor7LWc7JiB7LCsDQor7LWc7LC97ZmYDQor7LWc7Jm47KSADQor7LWc7IOB7IiYDQor7LWc7JiB7LGEDQor7LWc7Iug7KCVDQor7LWc7KKF6recDQor7LWc64+Z7J20DQor7LWc7JiB7LKgDQor7LWc7ZmN7Zi4DQor7LWc7LaY7Z2sDQor7LWc7JiB7JesDQor7LWc7JiB7YOcDQor7LWc64us7J6QDQor7LWc7KCV7ZiBDQor7LWc64yA7ZWYDQor7LWc7JiB7YOcDQor7LWc7Iic7JqxDQor7LWc6reA7IiYDQor7LWc7JiB7JiBDQor7LWc7JiB7Y+sDQor7LWc7ZmN7KeEDQor7LWc66y07IiYDQor7LWc7IiY7Zi4DQor7LWc7JiB7ZWtDQor7LWc7LC97JqpDQor7LWc7Iic642VDQor7LWc7ISx7LC9DQor7LWc7JiB7ZiEDQor7LWc7LKc64yADQor7LWc67OR7LGEDQor7LWc7IaM7ZWEDQor7LWc7JiB7Zi4DQor7LWc7J6s7YOdDQor7LWc7Iq57J24DQor7LWc7J6s64+ZDQor7LWc7JiB7ZqoDQor7LWc7LKt7JqpDQor7LWc7Z2s6rCRDQor7LWc66qF7IiYDQor7LWc7JiB7Z2sDQor7LWc7LaY6recDQor7LWc7KKF64usDQor7LWc7Iic7KCVDQor7LWc7Jik6re8DQor7LWc7IOB7KO8DQor7LWc6riI7IiYDQor7LWc67OR7Je0DQor7LWc7Jik7IOdDQor7LWc67OR7LKgDQor7LWc7JiB7LKgDQor7LWc6rCV7JqpDQor7LWc7Jil6regDQor7LWc7J247ISgDQor7LWc64yA7JWgDQor7LWc6riw7ZiEDQor7LWc7Jil7JWUDQor7LWc7Jqp7IiYDQor7LWc7Zi47JqpDQor7LWc7J6s7LKgDQor7LWc7Jm47YOdDQor7LWc6re864+ZDQor7LWc7KCV6re8DQor7LWc7Jew7JuQDQor7LWc7Jqp6raMDQor7LWc6riw7JikDQor7LWc7ZW07KSADQor7LWc7Iq57ZmNDQor7LWc7Jqp6recDQor7LWc7J6s67CxDQor7LWc7KCV6rWsDQor7LWc7Jyg64+ZDQor7LWc7Jqp6regDQor7LWc7IiY7ZWZDQor7LWc7KKF66GADQor7LWc7ZWc66qoDQor7LWc7Jqp6re8DQor7LWc7J247IiZDQor7LWc7Iic6re8DQor7LWc7Z2s7ZmYDQor7LWc7Jqp6re8DQor7LWc7J247JilDQor7LWc7J6l7KeEDQor7LWc7JiB7Zi4DQor7LWc7Jqp642VDQor7LWc642V64W4DQor7LWc7Jq07YOcDQor7LWc7JiB7Jq0DQor7LWc7Jqp7ISgDQor7LWc7IOB7J6QDQor7LWc6rec7ZmYDQor7LWc6rK97Zi4DQor7LWc7Jqp7ISxDQor7LWc6rK97JqpDQor7LWc7IOB66y4DQor7LWc7ISx64KoDQor7LWc7Jqp7IiYDQor7LWc7ZeM7Z2sDQor7LWc7Jq07IStDQor7LWc6rec7ZmYDQor7LWc7Jqp7IiYDQor7LWc7KeE66y4DQor7LWc7KCV7IudDQor7LWc7Iic6ri4DQor7LWc7Jqp7Iq5DQor7LWc7JiB66qFDQor7LWc7KeE7Zi4DQor7LWc7YOc7IOBDQor7LWc7Jqp7KGwDQor7LWc7KSR6riwDQor7LWc67OR7ZmYDQor7LWc7J6s7ISdDQor7LWc7Jqp7KO8DQor7LWc7ZW0642VDQor7LWc7KO86rCRDQor7LWc7Iic642VDQor7LWc7Jqp7KSADQor7LWc7IK87KGwDQor7LWc7J6s7JWgDQor7LWc7J6s66GdDQor7LWc7Jqp7YOcDQor7LWc7J2R64+EDQor7LWc64us6rG0DQor7LWc7JiB7ZuIDQor7LWc7Jqp7YOdDQor7LWc6riw7YOcDQor7LWc7JiB7Zi4DQor7LWc6rK97JqpDQor7LWc7Jqp7ZWcDQor7LWc7KCQ6ri4DQor7LWc7ISx7JqpDQor7LWc7JiB7IukDQor7LWc7Jqp7ZmYDQor7LWc64+Z7JikDQor7LWc7Zqo7IudDQor7LWc7ZiE7Zi4DQor7LWc7Jqw6raMDQor7LWc7LC967O1DQor7LWc64us7IigDQor7LWc7YOc7ISgDQor7LWc7Jqw65OdDQor7LWc7Jqp7Z2sDQor7LWc66Oh6rK9DQor7LWc6riw7Z2sDQor7LWc7Jqw7IicDQor7LWc7KSA66qoDQor7LWc7Jyk7LacDQor7LWc7Jyk7YOcDQor7LWc7Jqw7JiBDQor7LWc66eM7LGEDQor7LWc7J6s6ri4DQor7LWc7Jqp7LKcDQor7LWc7Jqw7JiBDQor7LWc7Zi466qFDQor7LWc7ISx7JuQDQor7LWc7Jyg7IiYDQor7LWc7Jq06rOkDQor7LWc7IOB7ISdDQor7LWc66+47Je0DQor7LWc67OR7Je0DQor7LWc7Jq07IStDQor7LWc7J6s7J6EDQor7LWc7IOB7Z2sDQor7LWc6rK97IiYDQor7LWc7Jq07JqpDQor7LWc64+Z67KUDQor7LWc7JuQ6rWsDQor7LWc7ZW07YOcDQor7LWc7Jq07JuQDQor7LWc67aE64+ZDQor7LWc67aE7JiBDQor7LWc7KCQ6ri4DQor7LWc7Jq07ZiVDQor7LWc67OR7IigDQor7LWc6re86rOkDQor7LWc6raM7ZWYDQor7LWc7JuQ6recDQor7LWc7KKF7IiYDQor7LWc7LCo7JmEDQor7LWc7IOB6rK9DQor7LWc7JuQ6ri4DQor7LWc7J2E7LC9DQor7LWc7J6s7JikDQor7LWc7Jil7KKFDQor7LWc7JuQ64usDQor7LWc7Iic7JewDQor7LWc6ri47IiYDQor7LWc7JiB7JqwDQor7LWc7JuQ642VDQor7LWc7YOc6re8DQor7LWc64+Z7JWEDQor7LWc7YyU7Z2sDQor7LWc7JuQ67O0DQor7LWc7KCV6rOkDQor7LWc7ZmN7Zi4DQor7LWc7ZW06rWsDQor7LWc7JuQ7ISdDQor7LWc7JiB7J6QDQor7LWc7KO87JiBDQor7LWc7KSR7LapDQor7LWc7JuQ7J21DQor7LWc7KCV65OdDQor7LWc6rSA7Z2sDQor7LWc64W47JyoDQor7LWc7JuQ7J28DQor7LWc7Jil67O1DQor7LWc66eQ7J6QDQor7LWc6riw7ISgDQor7LWc7JuQ7KGwDQor7LWc7Iig6recDQor7LWc7KCQ7Zi4DQor7LWc7Iic7KeEDQor7LWc7JuQ7YOdDQor7LWc6riw7ZiEDQor7LWc7ISg6riIDQor7LWc7KKF6rK9DQor7LWc7JuQ7YOdDQor7LWc7KKF7IudDQor7LWc7IK87ZuIDQor7LWc7ZWY7KSRDQor7LWc7JuQ7Zi4DQor7LWc7Zqo7KGwDQor7LWc6rWQ7Y+sDQor7LWc7KO87ZalDQor7LWc7JuQ7ZmNDQor7LWc67aE7ZmYDQor7LWc7ZiE7IicDQor7LWc7IiY64+MDQor7LWc7JuQ7ZmNDQor7LWc7ISg7JqxDQor7LWc7ZmU656YDQor7LWc64Ko6rG4DQor7LWc7JuU7IicDQor7LWc6reA7ZmNDQor7LWc6riw7ZWEDQor7LWc7ISd7LKgDQor7LWc7JyE6rK9DQor7LWc7ISx7ZqoDQor7LWc66eQ7JWFDQor7LWc7KSR7Je0DQor7LWc7Jyk6rOkDQor7LWc7KCV6raMDQor7LWc7Iug7Je0DQor7LWc7YOc7IStDQor7LWc7Jyk6rOkDQor7LWc6riw7ISxDQor7LWc6riw7KSADQor7LWc66qF7KeEDQor7LWc7Jyk6riwDQor7LWc7Jil6riIDQor7LWc7KeE7KeEDQor7LWc7JuQ7IiYDQor7LWc7Jyk64KoDQor7LWc6rSR66CsDQor7LWc67OR67ORDQor7LWc7ZWc7IOBDQor7LWc7Jyk64+EDQor7LWc7JiB7ISdDQor7LWc66y47ISgDQor7LWc7JuQ7LKgDQor7LWc7Jyk67O1DQor7LWc7JiB7JykDQor7LWc67OR7JykDQor7LWc67SJ7IigDQor7LWc7Jyk7JiBDQor7LWc7Jew7IiYDQor7LWc7JuQ6rKsDQor7LWc7Jil7IiYDQor7LWc7Jyk7Zi4DQor7LWc7ISx7ZmYDQor7LWc7IK87IK8DQor7LWc7KKF7KO8DQor7LWc7Jyk7Zi4DQor7LWc7JuQ64yADQor7LWc65GQ6529DQor7LWc7IOB7JuQDQor7LWc7Jyo7YOcDQor7LWc7JiB7JuFDQor7LWc67OR6rK9DQor7LWc7KO87ISgDQor7LWc7J2A6rK9DQor7LWc7ZWc7IicDQor7LWc7Jil7ZiEDQor7LWc7J6s7LmgDQor7LWc7J2A7JiBDQor7LWc7Jqp7YOcDQor7LWc7Z2s7ZWZDQor7LWc7IiY7Z2sDQor7LWc7J2A7KKFDQor7LWc7IOB7ISdDQor7LWc7J247J21DQor7LWc7JiB7KGwDQor7LWc7J2R6rOkDQor7LWc7JyE6riwDQor7LWc7IOB7ZmUDQor7LWc67OR7ZeMDQor7LWc7J2Y6raMDQor7LWc7KKF7LGEDQor7LWc7IOB7IiYDQor7LWc7KKF7IiYDQor7LWc7J2Y7ZiEDQor7LWc7KCQ6rKsDQor7LWc7IOB7ZmYDQor7LWc6riw7YOBDQor7LWc7J206riwDQor7LWc7ZWY656YDQor7LWc7YOc7Je0DQor7LWc7ISd64WADQor7LWc7J216raMDQor7LWc7Jew7LaYDQor7LWc7JuQ7ISgDQor7LWc7J6s7IicDQor7LWc7J217IOBDQor7LWc7ZmU7IStDQor7LWc7IOB7KeEDQor7LWc64+Z7ZiEDQor7LWc7J217ZiEDQor7LWc7ISx64KoDQor7LWc7ISx7KeEDQor7LWc7YOc7ISdDQor7LWc7J246raMDQor7LWc7ISx7ZWcDQor7LWc7IaM7ZeMDQor7LWc7KKF67SJDQor7LWc7J2464yADQor7LWc7KeE67O1DQor7LWc6rOE67KUDQor7LWc7IaM7ZWEDQor7LWc7J2464+ZDQor7LWc7YOc66GdDQor7LWc7JaR6ri4DQor7LWc7Zi466CoDQor7LWc7J247IiYDQor7LWc64+Z7LKgDQor7LWc66eM7JuQDQor7LWc7IaM7Je0DQor7LWc7J247IudDQor7LWc7IOB7JqwDQor7LWc7YOc6re8DQor7LWc7YOc6regDQor7LWc7J247JilDQor7LWc66qF7IudDQor7LWc7IiY7LaYDQor7LWc7JiB66eMDQor7LWc7J247KO8DQor7LWc7KCc7KCcDQor7LWc7ZmY7LKgDQor7LWc7YOc7IigDQor7LWc7J247LKgDQor7LWc7Jm47IiYDQor7LWc7Iic7ZmNDQor7LWc67aE7IudDQor7LWc7J247ZmYDQor7LWc7Jqp64W4DQor7LWc6rK964+ZDQor7LWc7Jq0656RDQor7LWc7J286riIDQor7LWc7Zal7KO8DQor7LWc7JuQ7J6sDQor7LWc65GQ7KO8DQor7LWc7J2864+ZDQor7LWc7JiB7Zi4DQor7LWc7JuQ7IiYDQor7LWc6rec7YOcDQor7LWc7J287IiYDQor7LWc7KKF6rK9DQor7LWc7ISx7ZmUDQor7LWc67OR6ri4DQor7LWc7J287LacDQor7LWc7J286rWQDQor7LWc6rK97IiYDQor7LWcIOyLnQ0KK+y1nOydvO2YuA0KK+y1nO2ZjeuvuA0KK+y1nOywveyInA0KK+y1nOuPmeyaqQ0KK+y1nOydvO2ZmA0KK+y1nOuPmeqxtA0KK+y1nOy5oOyaqQ0KK+y1nOykgOyaqQ0KK+y1nOydvO2ZmA0KK+y1nOyYgeydtQ0KK+y1nOu0ieq1rQ0KK+y1nOq4sOyEoA0KK+y1nOydvO2biA0KK+y1nOqwkeq4sA0KK+y1nOyDgeusmA0KK+y1nOyEseydvA0KK+y1nOyekOuPhA0KK+y1nOqyveybhQ0KK+y1nOyerO2DnQ0KK+y1nOynhOqyvQ0KK+y1nOyepeqwlQ0KK+y1nOyEoOyEoA0KK+y1nOuzteuCnA0KK+y1nO2ZlO2ZjQ0KK+y1nOyepeq4sA0KK+y1nOq0keuNlQ0KK+y1nOy2mO2WiQ0KK+y1nOyerOyInA0KK+y1nOyepeyImA0KK+y1nOyXsOqzpA0KK+y1nOywveuNlQ0KK+y1nOybkOyLnQ0KK+y1nOyepeyIoA0KK+y1nOyZuO2ZmA0KK+y1nO2DnO2ajA0KK+y1nOyaqeuqqA0KK+y1nOyepeykgA0KK+y1nOq3nOq3vA0KK+y1nOywveyduA0KK+y1nOuzte2ZlA0KK+y1nOyerOq3nA0KK+y1nO2VmeyjvA0KK+y1nOyerO2YuA0KK+y1nOybkOycpA0KK+y1nOyerOq3nA0KK+y1nOyYgeydgA0KK+y1nOq3oOyImA0KK+y1nOykgO2YuA0KK+y1nOyerOuNlQ0KK+y1nOuqheyjvA0KK+y1nOyerOyEsQ0KK+y1nOustO2ZjQ0KK+y1nOyerOunjA0KK+y1nOyduOyXtA0KK+y1nOyEseycpA0KK+y1nO2YhO2ZmA0KK+y1nOyerOusuA0KK+y1nOyYge2ZlA0KK+y1nOq1kOyLrA0KK+y1nOqyveqzpA0KK+y1nOyerOuztQ0KK+y1nOqyve2VnA0KK+y1nOyaqe2VmQ0KK+y1nOyYgeycpA0KK+y1nOyerOu0iQ0KK+y1nOyWkeydtA0KK+y1nOyEseynhA0KK+y1nOyduOuLrA0KK+y1nOyerOyDgQ0KK+y1nOuPme2YhA0KK+y1nOyaqeyLnQ0KK+y1nOq4sOqyvQ0KK+y1nOyerOyEnQ0KK+y1nOuNle2YhA0KK+y1nOydvO2ZlA0KK+y1nOyDgeyjvA0KK+y1nOyerOyImA0KK+y1nOybkOuwsA0KK+y1nOyWke2YuA0KK+y1nOyYgeuPhA0KK+y1nOyerOyImQ0KK+y1nOyInO2YhA0KK+y1nOu0ieyYpQ0KK+y1nOygleyEnQ0KK+y1nOyerOyImQ0KK+y1nOyDgeyhsA0KK+y1nOyEoO2RnA0KK+y1nOuzte2VmA0KK+y1nOyerOyLnQ0KK+y1nOyYgeyInA0KK+y1nOyDgeyZhA0KK+y1nOq0keydtA0KK+y1nOyerOyYpA0KK+y1nOykgOyImA0KK+y1nOygle2VmQ0KK+y1nOqwleuMgA0KK+y1nOyerOyasA0KK+y1nOyImOyasA0KK+y1nOuzteq4sA0KK+y1nOuPmeyInA0KK+y1nOyerOyasQ0KK+y1nOunjO2DnA0KK+y1nCDquLANCivstZzsg4HsobANCivstZzsnqzsmrQNCivstZzsmqnshLENCivstZzsnbzshLENCivstZzshJ3siJgNCivstZzsnqzsnKQNCivstZzsgrzsiJgNCivstZzsnqzsm5ANCivstZzri6zsoJUNCivstZzsnqzstpgNCivstZzqtazspIANCivstZzrjIDroKgNCivstZztjJTrrLgNCivstZzsnqzstpwNCivstZzqtZDsl7QNCivstZzsgrzshKANCivstZzsmbjsmKQNCivstZzsnqztlZkNCivstZzso7zsiJgNCivstZztmJzrqoUNCivstZzrs5HsuZgNCivstZzsnqztl4wNCivstZzsiJjsiJgNCivstZzrrLTsl7ANCivstZzshLHsl7ANCivstZzsnqztmLgNCivstZzsvozqtIANCivstZzsnqztnawNCivstZztg5zsmqkNCivstZzsnqztmLgNCivstZzsiJjsp4QNCivstZzsnoTshJ0NCivstZzssL3shKANCivstZzsnqztmLgNCivstZzquLjtl4wNCivstZzrj4TrsKkNCivstZztlYTtnawNCivstZzsnqztmLgNCivstZzrtInslZQNCivstZzsnbztg5wNCivstZzrqoXtmLgNCivstZzsnqztmZgNCivstZzsl7Dsi50NCivstZztmLjtmZgNCivstZzquLDso7wNCivstZzsoITqt7wNCivstZzsmKXqta0NCivstZzsnbjssL0NCivstZzsnYTsl7QNCivstZzsoJDquLANCivstZzsmqnshK0NCivstZzsnZjtmIQNCivstZzsoJDsi50NCivstZzsoJDrjZUNCivstZzshJ3roZ0NCivstZzsoJXsspwNCivstZzsnqzquLANCivstZzsoJDsi50NCivstZzsmKTrj4QNCivstZzrp4zquLgNCivstZzsmIHtmLgNCivstZzsoJDsmqkNCivstZzsiJjrqoUNCivstZzquLDssqANCivstZztg5zshJ0NCivstZzsoJDspIANCivstZzshLHshJ0NCivstZzqt5zsobANCivstZzssL3sobANCivstZzsoJXrjZUNCivstZzsooXqt7wNCivstZzsirnsobANCivstZzsg4HstpwNCivstZzsoJXrtIkNCivstZzrkZDri6wNCivstZzsoJDtmLgNCivstZzsspzsi50NCivstZzsoJXsiJgNCivstZzsooXshJ0NCivstZzsnqzsl7QNCivstZzshKTshJ0NCivstZzsoJXsiJgNCivstZzrp4zsg50NCivstZzsp4TsoJwNCivstZztmLjquLgNCivstZzsoJXsiJgNCivstZzsnqzqta0NCivstZzqtJHtlZkNCivstZzrsKnqt5wNCivstZzsoJXsl7ANCivstZzsmqnsmrANCivstZzsnqzspIANCivstZzquLDrs5ENCivstZzsoJXsmKQNCivstZzshKDtmLgNCivstZzsmqnrnpgNCivstZzsp4Tqt7wNCivstZzsoJXsmrANCivstZzrgqjrs7UNCivstZzssqDtmY0NCivstZzsm5DsmqkNCivstZzsoJXsnKQNCivstZzrrLjsiJgNCivstZzqt7zsiJkNCivstZzsoJXrjZUNCivstZzsoJXsnoQNCivstZzrjZXrjZUNCivstZzslrjsnbQNCivstZztlbTsmrANCivstZzsoJXsooUNCivstZzsnqzsiJwNCivstZzrtInssKwNCivstZzsgrzshK0NCivstZzsoJXspIANCivstZzsoJXsm5ANCivstZzsnYTtnaANCivstZzspJHrr7wNCivstZzsoJXssqANCivstZzsg4Hrnb0NCivstZzso7zsnbQNCivstZzsnbzsiJwNCivstZzsoJXtmLgNCivstZzsooXquLANCivstZzssL3si50NCivstZzsmIHshJ0NCivstZzsoJXtmZgNCivstZzsoJXtmLgNCivstZzqtIDsooUNCivstZzrs5HsnbQNCivstZzsoJXtmZgNCivstZzqs7XsmrANCivstZzrs5HsiJgNCivstZzsiJnsiJkNCivstZzsoJXtmqgNCivstZzquLDsm5ANCivstZzqsr3rrLgNCivstZzsnqXslaANCivstZzsooXqsJENCivstZzquLjrr7gNCivstZzqsJHroZwNCivstZzsl7DqsbQNCivstZzsooXqsr0NCivstZztlqXquLANCivstZztg5zsnpANCivstZzrs5HrnpENCivstZzsooXqtZANCivstZzshJ3spIANCivstZzqsr3siJwNCivstZzsooXtmIQNCivstZzsooXqta0NCivstZzsmIHsi50NCivstZzquLDsnbQNCivstZzshLHrtoANCivstZzsooXqt5wNCivstZzqsr3tmLgNCivstZztmITrspQNCivstZzsnoTrp4wNCivstZzsooXquLANCivstZzsnqzsmrANCivstZztg4DsnqwNCivstZzsnKTsiJwNCivstZzsooXquLANCivstZzssL3siJgNCivstZzsnYDtmZQNCivstZzsuaDshJ0NCivstZzsooXquLANCivstZzqsJXqtawNCivstZzrj5nspJENCivstZztl4ztmLgNCivstZzsooXquLANCivstZzshLHtm4gNCivstZzsnKDtmZQNCivstZzrtoTtlqUNCivstZzsooXquLgNCivstZzquLDtlbQNCivstZzsooXquLANCivstZzsm5Dsp4QNCivstZzsooXquLgNCivstZzsnqzssKwNCivstZzssKjtnaANCivstZzshKDruYgNCivstZzsooXrqoUNCivstZztg5ztlZgNCivstZztlZnsiJkNCivstZzslrXrtoQNCivstZzsooXrr7wNCivstZzquLDsooUNCivstZzquLDsobANCivstZzsg4Hsi50NCivstZzsooXshKANCivstZzsooXspIANCivstZzsmqntnawNCivstZzsmIHroKgNCivstZzsooXshLENCivstZzsiJztmY0NCivstZztnazquLANCivstZzrtoDrsLANCivstZzsooXsiJkNCivstZzsoJXtmZgNCivstZztg5zso7wNCivstZzrjIDqt5wNCivstZzsooXsi50NCivstZzsmIHsiJgNCivstZzrs5Hrj4wNCivstZzqtJHqs6QNCivstZzsooXsl7QNCivstZzsnqXrs7UNCivstZzrs7Xrk50NCivstZzrtoTqta0NCivstZzsooXsmrQNCivstZzrgpztnawNCivstZzsoJXrsLENCivstZzsoJXssqANCivstZzsooXsnKgNCivstZzsg4HsmKUNCivstZzstpjtj4kNCivstZzrp5DsobANCivstZzsooXsnbwNCivstZzqsr3si50NCivstZzsg4HtlZkNCivstZzqsJXquLANCivstZzsooXssKwNCivstZztlbTrk50NCivstZzqtJHshJ0NCivstZzsnYDrtIkNCivstZzsooXtg5wNCivstZzqtJHrr7wNCivstZzsmqnssqANCivstZzqsr3slZQNCivstZzsooXtjJQNCivstZzrp4ztl4wNCivstZzsp4DsnZgNCivstZztlZnqtowNCivstZzsooXtmIQNCivstZzsooXsiJkNCivstZzrj5nsiJwNCivstZzspJHsm5ANCivstZzsooXtmIQNCivstZzrp4zsmrANCivstZzrtInsi50NCivstZzsmIHtmLgNCivstZzsooXtmLgNCivstZzsg4HtmZQNCivstZzqt5zstpgNCivstZztg5ztnawNCivstZzsooXtmY0NCivstZzsgrztmLgNCivstZzshLHrrLgNCivstZzrs7XtnawNCivstZzsooXtmY0NCivstZzquLDspIANCivstZzsp4Ttg5wNCivstZzquLDso7wNCivstZzsooXtmZgNCivstZztlZzqs6ANCivstZzsnbjsiJwNCivstZzshJ3snbwNCivstZzso7ztmZgNCivstZzsoITrj4QNCivstZzsp4TshK0NCivstZzqsr3sp4QNCivstZzspIDrs7UNCivstZzsmKXsi50NCivstZzsg4Hsg4ENCivstZzsnbTshKANCivstZzspIDsg50NCivstZzsiJjsg4ENCivstZzsnYDsiJkNCivstZzsnKTtmZgNCivstZzspIDsi50NCivstZzsmKXsiJgNCivstZzsooXshK0NCivstZzrjZXtmZgNCivstZzspIDsi50NCivstZzstqntmY0NCivstZzsnqzsi50NCivstZztmIHssqANCivstZzspJHqsJUNCivstZzsg4HrtoQNCivstZzquLjssqANCivstZzsnbjstpgNCivstZzspJHqs6QNCivstZzsgrzsi50NCivstZzsg4Hqt5wNCivstZzqt4DshJ0NCivstZzspJHqtowNCivstZzshLjrj5kNCivstZzrtoTrtIkNCivstZzrr7jrj4QNCivstZzspJHquLANCivstZzsoJXsmKQNCivstZzsoJXtg4ENCivstZzsnqztmLgNCivstZzsp4Dtm4gNCivstZzqt5zsl7ANCivstZzsooXqsr0NCivstZzsnqXtmZgNCivstZzsp4Tqta0NCivstZzsg4HssqANCivstZztmITsi50NCivstZzsg4Hrs5ENCivstZzsp4Tqta0NCivstZzsnbjtg5wNCivstZztlbTsnqwNCivstZzqsr3si50NCivstZzsp4Tqt5wNCivstZzshLHqs6QNCivstZzsnqzrp6QNCivstZzrjZXshLENCivstZzsp4Trj5kNCivstZzrp4zspIANCivstZzsnbjqs4QNCivstZzsgrzrtoQNCivstZzsp4TsiJgNCivstZzrqoXqsr0NCivstZzshLHtmZgNCivstZzsoJXquLgNCivstZzsp4TsmrANCivstZzsuZjrj4QNCivstZzsnbjtmLgNCivstZzrs5HsnpANCivstZzsp4TsmrQNCivstZzsooXsm5ANCivstZzrjZXsnbQNCivstZzsnoTtmLgNCivstZzsp4Tsm5ANCivstZzsirnsnKANCivstZzsmqnshKANCivstZzspIDqtZANCivstZzsp4TsooUNCivstZzrp4zsmqkNCivstZztjJDtmowNCivstZzqsr3roZ0NCivstZzsp4TssqANCivstZzsm5DtmZgNCivstZzsp4TssqANCivstZzsgrzroKwNCivstZzsp4jrj4QNCivstZzsnqXqt5wNCivstZzrtIntmJUNCivstZzshLHtg5wNCivstZzsp4jsnoQNCivstZzrs5HsmKUNCivstZzssL3siJgNCivstZzqt7zsnbUNCivstZzssKjshJ0NCivstZzsnYDquIgNCivstZzrgqjsmIENCivstZzsg4HtmJUNCivstZzssKjslZQNCivstZzsnbzsiJwNCivstZztmLjsmKUNCivstZzsiJjqt7wNCivstZzssKjsnqwNCivstZzqsJHsmrANCivstZzrtInsnpANCivstZztnaXqsr0NCivstZzssKzsiJgNCivstZzsmIHtmJENCivstZzsm5Dtg5wNCivstZzsnqzshKANCivstZzssL3qt5wNCivstZzrjIDtmLgNCivstZztlonsiJwNCivstZzrgqjtnawNCivstZzssL3rgqgNCivstZzrj5nquLgNCivstZzsm5Dtm4gNCivstZzsmqnqt5wNCivstZzssL3rj5kNCivstZztl4ztmZgNCivstZzshLHsl7ANCivstZzrs5HshJ0NCivstZzssL3rnb0NCivstZzsooXroYANCivstZzsnqzsnbwNCivstZzsooXtg5wNCivstZzssL3rs7UNCivstZzsoJXsiJgNCivstZzrs5HrtIkNCivstZzsmqntmLgNCivstZzssL3siJgNCivstZzshLHsiJgNCivstZzsi5ztjJANCivstZzsnbjsmrANCivstZzssL3siJkNCivstZzshJ3sl7ANCivstZzshLHsmKQNCivstZzqt5zsiJwNCivstZzssL3sp4ANCivstZzrp4zqta0NCivstZzrrLjsi50NCivstZzshozqsqwNCivstZzsspzsi50NCivstZzqtJHqta0NCivstZzrs5HssqANCivstZztlZntmZgNCivstZzsspztmLgNCivstZzrp5DtnawNCivstZzstpjtmZgNCivstZzspIDrj5kNCivstZzssqDqt5wNCivstZzsmIHshJ0NCivstZzshLHsiJgNCivstZzsiJzrj4wNCivstZzssqDquLANCivstZzshLHqt7wNCivstZzsnbjsiJgNCivstZztg5zrj5kNCivstZzssqDrj5kNCivstZzri6zqtawNCivstZzrp4zrnoANCivstZzrs5HrnpgNCivstZzssqDsiJgNCivstZzspJHshJ0NCivstZzsmqnquLANCivstZztg5zsnqwNCivstZzssqDtmIQNCivstZzsnqzsiJkNCivstZzsnqzsoJUNCivstZzsiJjtm4gNCivstZzssqDtmLgNCivstZzsm5Dsl7ANCivstZzsnqzstpwNCivstZzslaDrtIkNCivstZzssqDtmLgNCivstZzsnqzsmIENCivstZzsooXrj4wNCivstZzsmIHquLANCivstZzssq3smrQNCivstZzsnKTrs7UNCivstZzsiJjsiJgNCivstZzsm5DsiJgNCivstZzstpjrj4wNCivstZzso7ztg5wNCivstZzsmqntmZgNCivstZzsp4DtnawNCivstZzstpjsiJwNCivstZzsnqzsnoQNCivstZztl4zqtawNCivstZzsoJXtnawNCivstZzstpjsi50NCivstZzssL3snpANCivstZzqsJHrp4wNCivstZzstpjsiJwNCivstZzstpjtnawNCivstZzsm5DroZ0NCivstZztlYTsl7QNCivstZzrrLTsnpANCivstZzstqnqta0NCivstZzsg4Hsl7ANCivstZzsmIHrj5kNCivstZzsnbztmIQNCivstZzstqnqtowNCivstZztlZnsmIENCivstZzquLDsm5ANCivstZzqtozquIgNCivstZzstqnsnbwNCivstZzsg4Htm4gNCivstZzrtoTtmIQNCivstZzshKDrrLQNCivstZzsvozrj5kNCivstZzsmIHtg5wNCivstZzsiJzsnqwNCivstZzshLHsmqkNCivstZztg4DsmqkNCivstZzrj5nqt5wNCivstZzsnbjsnpANCivstZzshKDqt5wNCivstZztg5zqs6QNCivstZzsoJXsmIENCivstZzsoJXtmZgNCivstZzsooXsmqkNCivstZztg5zqs6QNCivstZzsg4Hsi50NCivstZzsmqntmLgNCivstZztg5ztg50NCivstZztg5zqtowNCivstZzsnqzsg50NCivstZzsoJXtlqUNCivstZzsoJDtmLgNCivstZztg5zqt5wNCivstZzsm5DtmJUNCivstZztg5zsiJgNCivstZzqsr3siJgNCivstZztg5zquLANCivstZzsuaDsiJgNCivstZzsoITrtIkNCivstZzssL3tmLgNCivstZztg5zquLANCivstZzqtJHsobANCivstZzsspztmLgNCivstZztg5zsmrQNCivstZztg5zrgqgNCivstZzshKDsmqkNCivstZzsnqzri6wNCivstZzsmqnqt7wNCivstZztg5zrgqgNCivstZzqt5zri6wNCivstZzsnqzshKANCivstZzshLHsooUNCivstZztg5zrtIkNCivstZzsm5TstpwNCivstZzsooXsg4ENCivstZzsmIHrqqkNCivstZztg5zsiJgNCivstZzsnKTshJ0NCivstZzquLDtlbQNCivstZzsmqnsmIENCivstZztg5zsiJgNCivstZztmY3tnawNCivstZzrs5HsnpANCivstZzsiJjsspwNCivstZztg5zsiJgNCivstZztnaztg5wNCivstZzsmIHso7wNCivstZzsnITtmIQNCivstZztg5zsiJgNCivstZzsooXrs7UNCivstZzspIDtmJwNCivstZzsp4TsnpANCivstZztg5zsiJgNCivstZzsm5DrjZUNCivstZzsg4HqtowNCivstZzqsJXqsJENCivstZztg5zsiJkNCivstZzroYDsm5ANCivstZzshLjqt7wNCivstZzsnqXsnqwNCivstZztg5zsiKANCivstZzsg4HsmrENCivstZzsi6DsiJgNCivstZzrr7jslYQNCivstZztg5zsl7QNCivstZzrrLTroZ0NCivstZzsooXtmLgNCivstZzsnYDsi50NCivstZztg5zsmIENCivstZzspIDquLgNCivstZzrqoXtg5wNCivstZzsnbzquLANCivstZztg5zsmIENCivstZzsg4HquLANCivstZzrj5nsooUNCivstZztmLjsmrENCivstZztg5zsnpANCivstZzsoJXtmZgNCivstZzqsr3siJgNCivstZzshJ3qt5wNCivstZztg5zsooUNCivstZzshozrj4QNCivstZzssqDqtZANCivstZzsnqzrnpgNCivstZztg5zsooUNCivstZzsmIHsm4UNCivstZzsnqXsg4ENCivstZzrjIDquLANCivstZztg5zsp4QNCivstZzrjIDrs7UNCivstZzsnbzqt5wNCivstZzshLHtg5wNCivstZztg5ztmLgNCivstZzqsr3siJkNCivstZzsnbjqt6ANCivstZzsmqnsmrQNCivstZztg5ztmZQNCivstZztg5zsl7ANCivstZzsiJztmLgNCivstZzsmIHrjIANCivstZztg5ztnaUNCivstZztlZzsmrANCivstZztg5zshJ0NCivstZzshLHsiKANCivstZztjJDqtbANCivstZztg5zsi50NCivstZzsoJXtmLgNCivstZzrjIDsmIENCivstZztjJDrgqgNCivstZzsgrzssqANCivstZzsgrzsiJgNCivstZzsobDsooUNCivstZztjJDrj5kNCivstZzqtJHslrgNCivstZzsiJzshJ0NCivstZzsiJjsi50NCivstZztjJDrtIkNCivstZzsmrDtmZgNCivstZzsooXsi50NCivstZzrhbjtmLgNCivstZztjJDslZQNCivstZzshJ3rj4QNCivstZzshLHrp4wNCivstZzrs5HsmKUNCivstZztjJDsl7QNCivstZzsoJXtmLgNCivstZzsm5Dsl7ANCivstZzsmqnsnbgNCivstZztjJDsmqkNCivstZzsnKTsnqwNCivstZzri6ztnLQNCivstZzsg4HsmKQNCivstZztjJDtg5wNCivstZzrs5HsiJwNCivstZztg5zsi50NCivstZzsiJjsnbwNCivstZztjJDtmLgNCivstZzsiJnsnKgNCivstZztmY3qs6QNCivstZzshLHsiJkNCivstZztjJTsg50NCivstZzrs5HsiJkNCivstZzqtazquLANCivstZzqt5zqsJENCivstZztjJTsiJgNCivstZzsoJXshJ0NCivstZzrs7XqtZANCivstZzshKDrqoUNCivstZztjL3so7wNCivstZzssL3smKQNCivstZzsoJXssqANCivstZzsg4Hsl7QNCivstZztko3sm4UNCivstZzshLHrp4kNCivstZztg5zsiJgNCivstZzsg4Hrj4QNCivstZztlYTrj5kNCivstZzsmbjrjIANCivstZzquLjsiJgNCivstZzsnbjsnKQNCivstZztlYTrtoQNCivstZzqsIDsm5ANCivstZzshLjqsr0NCivstZzsp4TsnbgNCivstZztlYTsiJwNCivstZztnaztnawNCivstZzsnqXsobANCivstZzsoJXsobANCivstZztlYTsi50NCivstZzsm5Dsm5ANCivstZzsl7DsmqkNCivstZzqtZDtkZwNCivstZztlZjsmIENCivstZzrj5nquLANCivstZzsirnspIANCivstZzqt7zqs6QNCivstZztlZjsnpANCivstZzsmqnrsLANCivstZzsp4Ttm4gNCivstZzslpHquLANCivstZztlZnrj4QNCivstZzri6ztlZkNCivstZzslpHtmLgNCivstZztmITtmZgNCivstZztlZnshJ0NCivstZzqsJHtmLgNCivstZwg64+ZDQor7LWc67O06riwDQor7LWc7ZWZ7IudDQor7LWc7LaY7ISgDQor7LWc67OR7IiYDQor7LWc7Iq57ISdDQor7LWc7ZWc7ISxDQor7LWc7IS467O1DQor7LWc7KO87Z2sDQor7LWc7IKs7ISxDQor7LWc7ZWc7IiYDQor7LWc7LCs7IicDQor7LWc7JiB656ADQor7LWc7Zmp67SJDQor7LWc7ZWc7IiYDQor7LWc67OR7J6QDQor7LWc7Z2s7JmEDQor7LWc7ZWE64usDQor7LWc7ZWc7KO8DQor7LWc66+46recDQor7LWc7J246rOkDQor7LWc7Jqw6rK9DQor7LWc7ZWc7LKcDQor7LWc7LaY7IugDQor7LWc7ZmY6raMDQor7LWc67OR66eMDQor7LWc7ZWc7LKgDQor7LWc7J6s7IiZDQor7LWc7LC97KeEDQor7LWc7ISg7LKgDQor7LWc7ZWc7Zi4DQor7LWc7YOc66y4DQor7LWc7IyN6recDQor7LWc7J246ri4DQor7LWc7ZW06rOkDQor7LWc64yA7JaRDQor7LWc7IiY7ZWZDQor7LWc7IOB7J6QDQor7LWc7ZW07IiZDQor7LWc7IOB7ZmNDQor7LWc7Jik7IudDQor7LWc7ZiE66OhDQor7LWc7ZW07IigDQor7LWc7YOc6recDQor7LWc7KKF642VDQor7LWc66+87ISdDQor7LWc7ZW07IudDQor7LWc6rec7IicDQor7LWc7KCV7IiYDQor7LWc7ZuE7JiBDQor7LWc7ZW07KO8DQor7LWc7JuQ7ZmYDQor7LWc7Zi464+EDQor7LWc66qF7Zi4DQor7LWc7ZW07LKcDQor7LWc7LaY7ZmYDQor7LWc66+47JiBDQor7LWc7Jqp7KO8DQor7LWc7ZW07LKcDQor7LWc7KKF7IudDQor7LWc7IiY7Zi4DQor7LWc6re87IudDQor7LWc7ZW07LKgDQor7LWc66y07IudDQor7LWc6ri47YOdDQor7LWc7IKs64+EDQor7LWc7ZW07ZmYDQor7LWc7YOc7ZiVDQor7LWc66eM7JilDQor7LWc7KCV7YOcDQor7LWc7ZiB6riwDQor7LWc6ri47Zi4DQor7LWc7Jqp7IicDQor7LWc64+E7LCsDQor7LWc7ZiE7ISxDQor7LWc7KCQ7JewDQor7LWc7JaR6rO1DQor7LWc7J247JqpDQor7LWc7ZiV6rOkDQor7LWc7IK866y4DQor7LWc642V6raMDQor7LWc7KeE7ZiBDQor7LWc7ZiV6rSADQor7LWc7ISx66+4DQor7LWc7IOB7Je0DQor7LWc7IOB7IiZDQor7LWc7ZiV66GcDQor7LWc7KO87Zi4DQor7LWc7ZWc6ri4DQor7LWc7YOc7JqwDQor7LWc7ZiV7ISdDQor7LWc7J247JilDQor7LWc6rK97JqwDQor7LWc64KZ6rWsDQor7LWc7Zi46rKBDQor7LWc7KeE7IiYDQor7LWc7J2A66eMDQor7LWc6rK966+4DQor7LWc7Zi465OdDQor7LWc7Jil7ISdDQor7LWc7Jqp7J24DQor7LWc7ISx7KeBDQor7LWc7Zi47ISgDQor7LWc6riw7LKcDQor7LWc64yA7J6QDQor7LWc7ISd7Zi4DQor7LWc7Zi47KeEDQor7LWc7JiB67aEDQor7LWc7JiB7Z2sDQor7LWc7LKg7KeADQor7LWc7ZmN6rOkDQor7LWc7YyQ7LKgDQor7LWc67OR7ZmUDQor7LWc7JiB6recDQor7LWc7ZmN7ISdDQor7LWc7ZW07JewDQor7LWc7JuQ7IiZDQor7LWc7YOc7IicDQor7LWc7ZmN7ISdDQor7LWc7J6s6recDQor7LWc7Jik7ZmYDQor7LWc7JiB64WEDQor7LWc7ZmN7IudDQor7LWc7IK87LKgDQor7LWc7IOB7Zi4DQor7LWc642V7YOcDQor7LWc7ZmN7IudDQor7LWc7Z2s66GdDQor7LWc66+47IiYDQor7LWc7IiY7KCVDQor7LWc7ZmN7IudDQor7LWc7KCV6529DQor7LWc7Zqo7Y+JDQor7LWc7Jqp64+ZDQor7LWc7ZmN7J21DQor7LWc7J6s7JqxDQor7LWc7Zi464KoDQor7LWc6re866qoDQor7LWc7ZmN7KeRDQor7LWc7LaY7LCsDQor7LWc7ISg6rWsDQor7LWc7IOB7KGwDQor7LWc7ZmU7IiZDQor7LWc7YOc7ZuIDQor7LWc7KCQ7J21DQor7LWc66y467CwDQor7LWc7ZmY64+ZDQor7LWc7KCV7Z2sDQor7LWc7JWg7ZmYDQor7LWc6rCR7YOcDQor7LWc7Zqo6rOkDQor7LWc7KeA6riwDQor7LWc7J2E7ZWcDQor7LWc66eJ7IStDQor7LWc7Zqo64+ZDQor7LWc7ZWc7Zi4DQor7LWc7IOB7LaUDQor7LWc6rec6ri4DQor7LWc7Z2l6riwDQor7LWc6riw7ISgDQor7LWc7J6s7ZmYDQor7LWc7J2Y7J6QDQor7LaU66+47IiZDQor7LaU6rCR6raMDQor7LaU7IK87JilDQor7LaU6riw66GdDQor7LaU7Jew7ZiEDQor7LaU65GQ7KO8DQor7LaU7J6s7JykDQor7LaU7IOB7ZqoDQor7LaU7JiB7Zi4DQor7LaU7IOB6raMDQor7LaU7Jyk7JiBDQor7LaU7ZiE7ZWcDQor7LaU7J247IiYDQor7LaU7Jqp7J6QDQor7LaU7J6s7ZmYDQor7LaU7KCV7IiZDQor7LaU7KCV7JilDQor7LaU7YOc7KeEDQor7LaU7J207ISgDQor7LaU7IOB7KeEDQor7LaU7YOc7Zi4DQor7LaU7LKg7Ja1DQor7LaU6riI7Zi4DQor7LaU67OR7YOdDQor7YOB66+47JilDQor7YOB7KCV7LKcDQor7YOB7LKg6riwDQor7YOB7JiB6rOgDQor7YOB7J6s64+ZDQor7YOB6rCR7Z2sDQor7YOB7J6s7Je0DQor7YOB6raM7IOdDQor7YOB7KKF7Z2sDQor7YOB7LC96raMDQor7YOB7JiB64KoDQor7YOB66+465OdDQor7YOB7Z2s6rOkDQor7YOB7J6s64KoDQor7YOB6riw7J6sDQor7YOB7KeE6raMDQor7Y647ISd7KeEDQor7Y64642V7KCVDQor7Y647JuQ7JaRDQor7Y647IiZ7JilDQor7ZGc7ISg7Z2sDQor7ZGc7Z2s7IiYDQor7ZGc7Jyk7ZmYDQor7ZGc67SJ6riwDQor7ZGc7IS466y4DQor7ZGc7IOB7LaYDQor7ZGc7J247IudDQor7ZGc7KSA7KGwDQor7ZGc7Iic6riwDQor7ZGc7JuU6rK9DQor7ZGc7JiB7J24DQor7ZGc7Jyk7ISdDQor7ZGc7Jil7ZiEDQor7ZGc7LCo7JewDQor7ZGc6rK97KCVDQor7ZGc7IK86rCRDQor7ZGc7JuQ7IStDQor7ZGc6riw7LKgDQor7ZGc67OR7IStDQor7ZGc7LC97JiBDQor7ZGc7J6s7IiYDQor7ZGc7J6s7IicDQor7ZGc7J6s7JWUDQor7ZGc6rWt7KGwDQor7ZGc7KCQ7JuQDQor7ZGc7IiY6rOkDQor7ZGc6rSR7ISgDQor7ZGc7Zi46re8DQor7ZS864+Z7ISdDQor7ZS86rCV7ZmYDQor7ZS87JiB7Zi4DQor7ZS87Jyk7ZmNDQor7ZWY6rCR7IudDQor7ZWY7ZmN7KO8DQor7ZWY7Zmp7Z2sDQor7ZWY7JiB7Z2sDQor7ZWY6rK966eMDQor7ZWY67SJ7JewDQor7ZWY7Jyk7IiYDQor7ZWY7LCo64W4DQor7ZWY6rK97KGwDQor7ZWY7IiY7Z2sDQor7ZWY7KKF7YOdDQor7ZWY7JiB642VDQor7ZWY6rK97Z2sDQor7ZWY6riw7KO8DQor7ZWY7YOc7IiYDQor7ZWY6rK966eMDQor7ZWY6rOE7ISgDQor7ZWY6rSR7Zi4DQor7ZWY7KKF66eMDQor7ZWY67OR7JqwDQor7ZWY6rWs66GdDQor7ZWY7Kad7J21DQor7ZWY7ISx7KGwDQor7ZWY66+47IOdDQor7ZWY6riw7KO8DQor7ZWY7IOB7JewDQor7ZWY6rSR7ISdDQor7ZWY7JiB6riwDQor7ZWY6ri47IiYDQor7ZWY7Ius7J6sDQor7ZWY7J6s7ISdDQor7ZWY64yA7IiYDQor7ZWY64Ko7IicDQor7ZWY7IOB7JuQDQor7ZWY7L6M7IS4DQor7ZWY6riw7YOcDQor7ZWY64yA7Zi4DQor7ZWY7Jil7Je0DQor7ZWY7J6s7J6RDQor7ZWY7KCV7J20DQor7ZWY64+Z7LCsDQor7ZWY7YOc64+ZDQor7ZWY7J6s7Zi4DQor7ZWY7JuQ7JqxDQor7ZWY66eM7YOcDQor7ZWY66+87ISdDQor7ZWY64K07ISxDQor7ZWY7JiB7JqpDQor7ZWY66qF64+ZDQor7ZWY7IiY7ZmYDQor7ZWY7J6s7J28DQor7ZWY7KeE7KeEDQor7ZWY66y07IicDQor7ZWY67OR67ORDQor7ZWY6rK964+MDQor7ZWY7JiB7IOBDQor7ZWY66+46rK9DQor7ZWY7IiY7YOcDQor7ZWY7KKF7IS4DQor7ZWY7J6s7Zi4DQor7ZWY66+47KCVDQor7ZWY67OR7ISxDQor7ZWY64+Z7IiYDQor7ZWY7IOB7Zi4DQor7ZWY67OR6rSADQor7ZWY7ISx7YOBDQor7ZWY7KeE67O0DQor7ZWY7Jyk642VDQor7ZWY67OR7JuQDQor7ZWY7IOB67ORDQor7ZWY7YOc7JqxDQor7ZWY7J6s7LKgDQor7ZWY67SJ6rCRDQor7ZWY6rSR7IudDQor7ZWY7IS47LKgDQor7ZWY7KCV64usDQor7ZWY67aE7KGwDQor7ZWY7J6s67SJDQor7ZWY7ISd7KKFDQor7ZWY66eQ7JykDQor7ZWY7IK86riIDQor7ZWY66eM7ZqMDQor7ZWY7JiB7JikDQor7ZWY6rK964KcDQor7ZWY7IOB7IudDQor7ZWY7KKF7IiYDQor7ZWY7ISd7J6QDQor7ZWY7Jqp7Zi4DQor7ZWY7ISd6re8DQor7ZWY6rec67O1DQor7ZWY7ZeM7IiYDQor7ZWY7ZW07JykDQor7ZWY7ISd7IiYDQor7ZWY7ISx7IiYDQor7ZWY7KKF7Zi4DQor7ZWY7Z2s7IS4DQor7ZWY7IS47KeEDQor7ZWY7KKF6riwDQor7ZWY7ZmU7LKgDQor7ZWY7Jyk7Zi4DQor7ZWY7Iic64KoDQor7ZWY7ISx7ZmYDQor7ZWY7JaR7IicDQor7ZWY64us7Zi4DQor7ZWY7Iic7IiZDQor7ZWY7Jyk6raMDQor7ZWY7J247J6QDQor7ZWY7IOB7Zi4DQor7ZWY7Iic7ZeMDQor7ZWY67OR6riIDQor7ZWY7ISx7JWUDQor7ZWY7Jqw6rOkDQor7ZWY7Iig7ISxDQor7ZWY7IiY7JuFDQor7ZWY7YOc6rWQDQor7ZWY7Jyk6rWsDQor7ZWY7Ius7ZmNDQor7ZWY7Jew7LaYDQor7ZWYIOq3nA0KK+2VmOywveyasQ0KK+2VmOyXsO2drA0KK+2VmOuzteq3vA0KK+2VmOybkOyYpA0KK+2VmOqxtOyXtA0KK+2VmOyYge2DnA0KK+2VmOydvOuFuA0KK+2VmOyEne2doA0KK+2VmOuvuOyLnQ0KK+2VmOyZuOyImA0KK+2VmOqyve2WpQ0KK+2VmOqyveyasA0KK+2VmOuPmey2nA0KK+2VmOyaqeyImA0KK+2VmOyYgeuTnQ0KK+2VmO2DnOqwkQ0KK+2VmOyasOyEsQ0KK+2VmOycpOydtA0KK+2VmOygleyXtA0KK+2VmOyKueq3oA0KK+2VmOyEneu0iQ0KK+2VmOyduOyImA0KK+2VmOyaqeyErQ0KK+2VmOydvOyCvA0KK+2VmOyKue2YhA0KK+2VmOyduOyYpQ0KK+2VmOygleydvA0KK+2VmOuztOuPmQ0KK+2VmOyLoO2YuA0KK+2VmOyehOyInA0KK+2VmOyerOuCqA0KK+2VmOyGkOqyvQ0KK+2VmOyjvO2DnQ0KK+2VmOyepeyXsA0KK+2VmOuLrOyhsA0KK+2VmOuzkeyekA0KK+2VmOyImOusuA0KK+2VmOyerOyInA0KK+2VmOuFuOyjvA0KK+2VmOygleq3nA0KK+2VmOyduO2ajA0KK+2VmOyerOyjvA0KK+2VmOu0ieuqqA0KK+2VmOyYgeyEoA0KK+2VmOuNleyDgQ0KK+2VmOygkOyInA0KK+2VmOyImOynhA0KK+2VmO2VtOq4uA0KK+2VmOygkO2ZjQ0KK+2VmOygkOyYpQ0KK+2VmOydteyXtA0KK+2VmOyaqe2ZmA0KK+2VmOyImOyImA0KK+2VmOygleyXsA0KK+2VmOygleyEoA0KK+2VmOyKueyEoA0KK+2VmOyDgeydtA0KK+2VmOygleyXtA0KK+2VmOy5oOyEoA0KK+2VmOyaqeyjvA0KK+2VmOyYgeyXtA0KK+2VmOygle2drA0KK+2VmOqyve2DnQ0KK+2VmOq3nOy2mA0KK+2VmOycpOynhA0KK+2VmOyiheuwsA0KK+2VmOyEse2drA0KK+2VmOyihe2ZmA0KK+2VmOygleyErQ0KK+2VmOyiheyXsA0KK+2VmOyDge2doA0KK+2VmOyInOq4sA0KK+2VmO2YgeyImA0KK+2VmOywveu2gA0KK+2VmOydkeywrA0KK+2VmOuzke2ZmA0KK+2VmOygle2YuA0KK+2VmOy2mOujoQ0KK+2VmOyYgeuPmQ0KK+2VmOyiheyEnQ0KK+2VmOyerOqyvQ0KK+2VmO2DgOyaqQ0KK+2VmOuTne2VmA0KK+2VmOyYgeuqqA0KK+2VmOyerO2VmQ0KK+2VmO2DnOqwkQ0KK+2VmOyYpeybkA0KK+2VmOyYgeyXsA0KK+2VmOqzteyYgQ0KK+2VmO2DnOq1rA0KK+2VmOyiheyEnQ0KK+2VmOyiheuwsA0KK+2VmOyerOyXsA0KK+2VmO2DnO2ZmA0KK+2VmOuemO2biA0KK+2VmOuRkOuqhQ0KK+2VmOycpOy5mA0KK+2VmO2VmeyIoA0KK+2VmOyInOq4sA0KK+2VmOy2mOusuA0KK+2VmO2VmO2YuA0KK+2VmO2VmeyaqQ0KK+2VmOustOynhA0KK+2VmOyiheyDgQ0KK+2VmOuMgOyhsA0KK+2VmO2VtOuqhQ0KK+2VmOyYgeuztQ0KK+2VmOu2hO2YuA0KK+2VmOyihe2YhA0KK+2VmO2VtOuqhQ0KK+2VmO2VnOyXsA0KK+2VmOuwseyImA0KK+2VmOyInO2YhA0KK+2VmO2ZlOyInA0KK+2VmO2YhO2drA0KK+2VmOq1reyDnQ0KK+2VmOywveyekA0KK+2VmO2bhOyhsA0KK+2VmO2Zjeq3vA0KK+2VmOyduOyaqQ0KK+2VmOyDgeywvQ0KK+2VnCDquLgNCivtlZztlbTrtIkNCivtlZzri6zqt7wNCivtlZzrr7jsmIENCivtlZwg7JilDQor7ZWc7J6s7Je0DQor7ZWc7JuQ7IiYDQor7ZWc64Ko7ISdDQor7ZWc6rCR7IiYDQor7ZWc7YOc66OhDQor7ZWc7JyE7JilDQor7ZWc67O17IudDQor7ZWc6rCR7IicDQor7ZWc7IOB7JWFDQor7ZWc66qF7KeEDQor7ZWc6rSR7IiYDQor7ZWc6rCV7KCcDQor7ZWc6rec7LmgDQor7ZWc7ISd7JqpDQor7ZWc67O17JewDQor7ZWc6rK97JWgDQor7ZWc7Zi464yADQor7ZWc7ISx7JWEDQor7ZWc7ZmN7ZWZDQor7ZWc6rK97J20DQor7ZWc7YyQ7ISdDQor7ZWc7YOc7IigDQor7ZWc67Cp6re8DQor7ZWc6rK97LKgDQor7ZWc7Jyk7J20DQor7ZWc7KSR642VDQor7ZWc7ZmN7JuQDQor7ZWc6rOk7ISdDQor7ZWc6rK97IK8DQor7ZWc7Iic7ZWcDQor7ZWc7JiB7ZiEDQor7ZWc6rO87Z2sDQor7ZWc7LaY7KGwDQor7ZWc67id7IiZDQor7ZWc7ZiV7J20DQor7ZWc6rSA7ZiEDQor7ZWc67aE7LaYDQor7ZWc7LKt7IudDQor7ZWc642V7ZmYDQor7ZWc6rWs7J28DQor7ZWc7ISd7J6sDQor7ZWc7ISx6re8DQor7ZWc7Zal6recDQor7ZWc6rWt7IudDQor7ZWc6riw7Zi4DQor7ZWc7YyQ66eMDQor7ZWc7LKg7LacDQor7ZWc6riI7IStDQor7ZWc7J6s7ZiEDQor7ZWc67OR66qpDQor7ZWc7LCo66+4DQor7ZWc6riw7LKgDQor7ZWc7J6s7Zi4DQor7ZWc6riw7ISgDQor7ZWc7Iic7IStDQor7ZWc6riw7ZWZDQor7ZWc67OR66qpDQor7ZWc7J287KGwDQor7ZWc7JiB7Z2sDQor7ZWc6ri47JuFDQor7ZWc7LCs7ISdDQor7ZWc7KeE7ZqoDQor7ZWc7J247Zi4DQor7ZWc64W47IiYDQor7ZWc7ISx6rCVDQor7ZWc7JiB7IicDQor7ZWc7YOc6regDQor7ZWc64u07JilDQor7ZWc7KCQ642VDQor7ZWc7J287KKFDQor7ZWc7Iic642VDQor7ZWc64yA6re8DQor7ZWc7IK87ZmNDQor7ZWc7KCV65OdDQor7ZWc7ISx6recDQor7ZWc64yA7ISxDQor7ZWc7ZiE7JilDQor7ZWc7J286rWsDQor7ZWc7KeE64+EDQor7ZWc64yA7JiBDQor7ZWc7IiY7IS4DQor7ZWc7JiB7JiBDQor7ZWc7J2A67O1DQor7ZWc642V6rWQDQor7ZWc7Zic7ZiEDQor7ZWc7JiB7IiYDQor7ZWc7IK864+EDQor7ZWc642V7JykDQor7ZWc7KeI7KCVDQor7ZWc7IiY7JikDQor7ZWc7YOc6rCRDQor7ZWc64+E7LmYDQor7ZWc7IiZ66y1DQor7ZWc7KCV7IStDQor7ZWc7YOc7Zi4DQor7ZWc64+Z6raMDQor7ZWc66qF7IiYDQor7ZWc7ISx7JuQDQor7ZWc7J247ZiEDQor7ZWc64+Z7IiYDQor7ZWc7LC96re8DQor7ZWc7KKF66y4DQor7ZWc7Jqw65OdDQor7ZWc64+Z7JaRDQor7ZWc7IiY7ISdDQor7ZWc6rK97ISgDQor7ZWc7ISx7IicDQor7ZWc65GQ6rWQDQor7ZWc7IK87ISdDQor7ZWc7LCo7YOdDQor7ZWc642V7KGwDQor7ZWc65GQ7ZiEDQor7ZWc7J287JuQDQor7ZWc6riw6ri4DQor7ZWc6rK96rWsDQor7ZWc66eM7JyEDQor7ZWc7J2R7Zi4DQor7ZWc7J247IudDQor7ZWc66y066eMDQor7ZWc66eM7Zi4DQor7ZWc7Jik7Je0DQor7ZWc7J247ZqoDQor7ZWc7IiY7J2ADQor7ZWc66e56rWQDQor7ZWc6rec642VDQor7ZWc7Lap7JiBDQor7ZWc64+Z64+ZDQor7ZWc66qF6rCRDQor7ZWc7J6s6rWtDQor7ZWc7J6s7YOdDQor7ZWc6riw6riwDQor7ZWc66qF7IiYDQor7ZWc7YOc6riwDQor7ZWc7LaY7ZiEDQor7ZWc7IiY7IiYDQor7ZWc66qF7IicDQor7ZWc7Jqp7JWUDQor7ZWc7KKF7IStDQor7ZWc7YOc642VDQor7ZWc66y06rWQDQor7ZWc7ZWZ7IiYDQor7ZWc7KSR7LGEDQor7ZWc7ISd66y4DQor7ZWc66y07ZiEDQor7ZWc64Kc66eMDQor7ZWc7KeE7LC9DQor7ZWc6rK966OhDQor7ZWc66y46rWQDQor7ZWc7KSA7JykDQor7ZWc67OR7Zi4DQor7ZWc7KO86recDQor7ZWc66+87J6QDQor7ZWc7LaY6rSRDQor7ZWc7ZW07ZmNDQor7ZWc7KKF7JilDQor7ZWc67OR6raMDQor7ZWc7IK87Z2sDQor7ZWc7KSA7IStDQor7ZWc7Jil7KO8DQor7ZWc67OR7JuQDQor7ZWc7YOc7IiYDQor7ZWc7ZiE7J6sDQor7ZWc7Jqp7IOBDQor7ZWc67OR7LKgDQor7ZWc7ZWY7JqwDQor7ZWc7Iuc6rWQDQor7ZWc7IK866qFDQor7ZWc67OR7ZWcDQor7ZWc7IyN7Zi4DQor7ZWc7YyQ7ZiEDQor7ZWc7Iic7ISxDQor7ZWc67O1656ADQor7ZWc7KCV6rK9DQor7ZWc66q96riwDQor7ZWc7KKF642VDQor7ZWc67O17IiYDQor7ZWc7YOc6re8DQor7ZWc7JiB7JmEDQor7ZWc7JiB7IicDQor7ZWc67O17IiYDQor7ZWc64yA7YOcDQor7ZWc6rK97J20DQor7ZWc7ZWZ7ISdDQor7ZWc67SJ7ISdDQor7ZWc7J2A7ZmYDQor7ZWc64+Z7IiYDQor7ZWc7Zmp7IiYDQor7ZWc67SJ7ISgDQor7ZWc7ISx7ISdDQor7ZWc7YOc7YOcDQor7ZWc66+47J28DQor7ZWc67SJ7IiYDQor7ZWc7Jqp7JqwDQor7ZWc7JiB66+8DQor7ZWc66y07J20DQor7ZWc67SJ7Z2sDQor7ZWc67OR7Jq0DQor7ZWc7Jqp7Zi4DQor7ZWc7J6s7Zi4DQor7ZWc67aA6rWQDQor7ZWc7YyQ7IiYDQor7ZWc64KZ7JmEDQor7ZWc7YOc6rCRDQor7ZWc7IKs7J28DQor7ZWc7ZWZ66y4DQor7ZWc7JiB7ZmUDQor7ZWc6rec7ISgDQor7ZWc7IK87IicDQor7ZWc7KCV7J20DQor7ZWc6rSR64+ZDQor7ZWc6rK97ZmYDQor7ZWc7IK87JyoDQor7ZWc7IOB7KSADQor7ZWc7ISd7LacDQor7ZWc66y47Zi4DQor7ZWc7IOB64yADQor7ZWc7JuQ7KeEDQor7ZWc7Iq57Zi4DQor7ZWc7ZmN7Je0DQor7ZWc7IOB66qoDQor7ZWc642V7JqwDQor7ZWc7IOB7Z2sDQor7ZWc7KKF6riwDQor7ZWc7IOB67SJDQor7ZWc7JuQ7Zi4DQor7ZWc7KeE66qpDQor7ZWc7LC97ZmYDQor7ZWc7IOB7ISdDQor7ZWc7KO87IudDQor7ZWc7JiB7ZWZDQor7ZWc7Zi47Je0DQor7ZWc7IOB7ISgDQor7ZWc6rSR7ZmUDQor7ZWc6reA66qoDQor7ZWc7KKF7JyhDQor7ZWc7IOB7ISkDQor7ZWc6rCR6rCRDQor7ZWc7ISx6recDQor7ZWc7Zqo7LaYDQor7ZWc7IOB7IiYDQor7ZWc7J247J28DQor7ZWc7IK86riwDQor7ZWc7Jqp7JuQDQor7ZWc7IOB7IiYDQor7ZWc7KCQ66+4DQor7ZWc7Jyg7JqpDQor7ZWc7ZW07JqwDQor7ZWc7IOB7JqwDQor7ZWc64Ko7ZiEDQor7ZWc7IOB7KGwDQor7ZWc7JuQ7YOcDQor7ZWc7IOB7JqxDQor7ZWc7YOc66eMDQor7ZWc66eM7IiYDQor7ZWc7JuQ7ZWZDQor7ZWc7IOB7ZWZDQor7ZWc7LCs6riwDQor7ZWc7JmV7JikDQor7ZWc7J287JqwDQor7ZWc7IOB7ZWZDQor7ZWc7YOc7IigDQor7ZWc7JaR7IiYDQor7ZWc7Zi467O0DQor7ZWc7IOB7Zi4DQor7ZWc7ZW07JiBDQor7ZWc7KGw7ZuIDQor7ZWc66y07JqpDQor7ZWc7IOd6riwDQor7ZWc7IOB7Zi4DQor7ZWc7Jqp6recDQor7ZWc7IOB66GdDQor7ZWc7ISd66GdDQor7ZWc7ZWZ642VDQor7ZWc64Ko7Je9DQor7ZWc7Jqp7J24DQor7ZWc7ISd67KUDQor7ZWc7LaY67SJDQor7ZWc7ISx7IStDQor7ZWc66qF642VDQor7ZWc7ISd7IudDQor7ZWc7KKF7JiBDQor7ZWc7LC96rOkDQor7ZWc7ZWZ7ZGcDQor7ZWc7ISd7JuQDQor7ZWc64+Z7IaMDQor7ZWc6ri47ISdDQor7ZWc7Jqp64WEDQor7ZWc7ISg7KO8DQor7ZWc6riw7J6EDQor7ZWc7Ja47Zi4DQor7ZWc7Jyk7Z2sDQor7ZWc7ISx6rWQDQor7ZWc7ZiE7ZmYDQor7ZWc7ISd6riwDQor7ZWc7Jqw7ZmUDQor7ZWc7ISx6rWsDQor7ZWc7YOd6regDQor7ZWc7Jqp6riwDQor7ZWc6riw7IudDQor7ZWc7ISx6rWsDQor7ZWc7Zic7ISdDQor7ZWc66y47KGwDQor7ZWc7IiY7JqpDQor7ZWc7ISx6rWtDQor7ZWc7Z2s642VDQor7ZWc67OR7LKgDQor7ZWc66qF7IicDQor7ZWc7IS47JiBDQor7ZWc7KKF7Zi4DQor7ZWc7LKg7LKgDQor7ZWc67SJ7IiZDQor7ZWc7IS47JqpDQor7ZWc67OR6rWsDQor7ZWc7Jqp6rOkDQor7ZWc67aE7ZWZDQor7ZWc7IaM7IicDQor7ZWc7JiB7IudDQor7ZWc7Jqp6rCRDQor7ZWc7LKg7J6QDQor7ZWc7IiY7IOBDQor7ZWc7LaY6riwDQor7ZWc7JuF7Z2gDQor7ZWc7JiB7IudDQor7ZWc7IiY7JmEDQor7ZWc7J6s6re8DQor7ZWc66eM7KeEDQor7ZWc7Jew7ZWYDQor7ZWc7Iic7JuQDQor7ZWc7YOc64KoDQor7ZWc7ZWc7Zi4DQor7ZWc7J2167O0DQor7ZWc7Iic7LCsDQor7ZWc7KCV7J2ADQor7ZWc7Iq57JyoDQor7ZWc7KKF7Zi4DQor7ZWc7Iq57IS4DQor7ZWc6rec7IudDQor7ZWc7J6s7JewDQor7ZWc7ZWE7Zi4DQor7ZWc7Iq57J24DQor7ZWc7J2Y7KGwDQor7ZWc7YOc6ri4DQor7ZWc6rec7LKgDQor7ZWc7Iq57Zi4DQor7ZWc7Z2s7IudDQor7ZWc7IOB7IiYDQor7ZWc7Iah7ISgDQor7ZWc7Je07LCsDQor7ZWc7IyN7Zi4DQor7ZWc7Jqp7JiBDQor7ZWc7Jyk7ZW0DQor7ZWc7JiB64yADQor7ZWc7Iq5642VDQor7ZWc7IOB66GADQor7ZWc7JiB66y1DQor7ZWc7JiB66qoDQor7ZWc7Z2s7YOcDQor7ZWc66y07Je0DQor7ZWc67O17KGwDQor7ZWc7JiB7IStDQor7ZWc6rCR7ZiEDQor7ZWc7LC966a8DQor7ZWc7JuQ7IiZDQor7ZWc7JiB7IiYDQor7ZWc64+Z64+MDQor7ZWc7KeE7LC9DQor7ZWc7Jqp656ADQor7ZWc7JiB7JilDQor7ZWc6rK9642VDQor7ZWc67aE7ZiBDQor7ZWc7Jm467O1DQor7ZWc7JiB7LKgDQor7ZWc64yA7ZeMDQor7ZWc6riw7ISdDQor7ZWc7IOB7JiBDQor7ZWc7JiB7YOcDQor7ZWc7J247IiYDQor7ZWc6rK97IiZDQor7ZWc7JiB7Z2sDQor7ZWc7JiB7ZiEDQor7ZWc67OR7IiYDQor7ZWc7Iic7IicDQor7ZWc7ISx7ZiEDQor7ZWc7JiB7Z2sDQor7ZWc7KCV7IiYDQor7ZWc7IaM7JikDQor7ZWc7KKF7YOcDQor7ZWc7Jqp7IiYDQor7ZWc7JiB7Zi4DQor7ZWc7JuQ66y4DQor7ZWc7J2R7ZmNDQor7ZWc7Jqw7IigDQor7ZWc7IOB7JilDQor7ZWc6rCV7ZalDQor7ZWc7ZiV64+ZDQor7ZWc7Jqw7LCsDQor7ZWc7ZWE7JqpDQor7ZWc7J6E7IiYDQor7ZWc7Iq57ZWZDQor7ZWc7JuQ6rWQDQor7ZWc7IOB7LacDQor7ZWc7ZWc7KeEDQor7ZWc7Jqp7IudDQor7ZWc7JuQ7IiYDQor7ZWc7Jyg7Z2sDQor7ZWc7ZiV7IudDQor7ZWc7ZWc7IigDQor7ZWc7Jyg6rWQDQor7ZWc7IOB7ISxDQor7ZWc7YOc6rWsDQor7ZWc7Kad7JiBDQor7ZWc7Jyh7KeADQor7ZWc6riI7IOBDQor7ZWc6rK97YOcDQor7ZWc7KKF6rCRDQor7ZWc7Jyk7ZiEDQor7ZWc7KCV7LacDQor7ZWc6rec7IStDQor7ZWc64+Z6recDQor7ZWc7J207IigDQor7ZWc7KO87JewDQor7ZWc66+46recDQor7ZWc7KO87J6sDQor7ZWc7J246rWQDQor7ZWc6rec7ZWZDQor7ZWc7KeE7JqpDQor7ZWc7J6s7JqwDQor7ZWc7J247IiZDQor7ZWc7J6s7Zy0DQor7ZWc7LGE7JmEDQor7ZWc7JiB6recDQor7ZWc7J287ISdDQor7ZWc7Iq57ZmUDQor7ZWc7YOc7J6EDQor7ZWc7J247Zi4DQor7ZWc7J6l7ZWZDQor7ZWc7JuQ7ISdDQor7ZWc7KCV6rWtDQor7ZWc7Jqw7YOcDQor7ZWc7J6l7ZiEDQor7ZWc7Lap7IicDQor7ZWc7KSR7KSRDQor7ZWc67SJ6recDQor7ZWc7J6l7ZiEDQor7ZWc67OR7JqpDQor7ZWc7J2Y7IiYDQor7ZWc7J246rK9DQor7ZWc7J6s6raMDQor7ZWc7YyQ6recDQor7ZWc6rWQ7JqxDQor7ZWc7IOB7JuQDQor7ZWc7J6s7IiYDQor7ZWc7KKF64KoDQor7ZWc7Ja47IiYDQor7ZWc7Z2s7YOdDQor7ZWc7KCV6rWQDQor7ZWc7IK87YOcDQor7ZWc7Iic6rK9DQor7ZWc7Ja17KSADQor7ZWc7KCV7IicDQor7ZWc7IOB7IOBDQor7ZWc7KKF7YOcDQor7ZWc7IOB7ZWYDQor7ZWc7KCV7KeEDQor7ZWc7Jqw67aADQor7ZWc67OR7J6QDQor7ZWc7JiB7KGwDQor7ZWc7KCV7Zi4DQor7ZWc64+Z66eMDQor7ZWc7LaY7JqpDQor7ZWc6rK97YOcDQor7ZWc7KKF7IiYDQor7ZWc7JuU6rK9DQor7ZWc7J6s7J6QDQor7ZWc7JuQ6recDQor7ZWc7KKF7IiYDQor7ZWc7ISx7Zi4DQor7ZWc7IyN7ZmYDQor7ZWc7J6s7ZmYDQor7ZWc7KKF7Je0DQor7ZWc7JaR7KSADQor7ZWc7KKF7IiYDQor7ZWc66eQ6rWtDQor7ZWc7KKF7LGEDQor7ZWc7JaR7IStDQor7ZWc7Jil7Zi4DQor7ZWc7J2E7JikDQor7ZWc7KSA6rWQDQor7ZWc7ISd7ISdDQor7ZWc7JiB7ZiEDQor7ZWc7J6s7ZWZDQor7ZWc7KSA7IiYDQor7ZWc7ISx7KO8DQor7ZWc7IOB6riwDQor7ZWc7LaY6ri4DQor7ZWc7KSR7IudDQor7ZWc64Ko7Z2sDQor7ZWc7JiB7ISxDQor7ZWc7Iig7Zi4DQor7ZWc7KSR7JWFDQor7ZWc6riw7KGwDQor7ZWc7JaR7IukDQor7ZWc7Iuc7LKgDQor7ZWc7KeA7JuQDQor7ZWc67OR6rK9DQor7ZWc7JuF6ri4DQor7ZWc7ZWE7ZW0DQor7ZWc7KeE6rWQDQor7ZWc7Jqp66y4DQor7ZWc7JaR7IiYDQor7ZWc7J247J6QDQor7ZWc7KeE7JWgDQor7ZWc7KKF7ZiEDQor7ZWc7IiY7KeEDQor7ZWc7Jyk7J21DQor7ZWc7LC96re8DQor7ZWc6re87IiYDQor7ZWc66qF6re8DQor7ZWc6riw7ZWcDQor7ZWc7LC97ISdDQor7ZWc7ZiV7JikDQor7ZWc7Iic66eMDQor7ZWc64+Z64+ZDQor7ZWc7LC97IiYDQor7ZWc7ZWE7JqpDQor7ZWc7J6s6ri4DQor7ZWc64+Z7Zi4DQor7ZWc7LKg7IiYDQor7ZWc7ISd7ZmNDQor7ZWc7LaY66qoDQor7ZWc7IOB7JiBDQor7ZWc7Lmg7JqpDQor7ZWc7ISd66a9DQor7ZWc6rWt7JqwDQor7ZWc7IOB7ZmNDQor7ZWc7YOc64KoDQor7ZWc64us7J28DQor7ZWc6riw7ISxDQor7ZWc7ISx7ZmYDQor7ZWc7YOc7IicDQor7ZWc7YOc7ZWYDQor7ZWc7KKF7Zi4DQor7ZWc7JiB7IukDQor7ZWc7YOc7LacDQor7ZWc7J287LCsDQor7ZWc7Jqp7IiZDQor7ZWc7J6s7ZiEDQor7ZWc7YyQ64usDQor7ZWc66eQ7KO8DQor7ZWc7KCV7ZeMDQor7ZWc7LCs6re8DQor7ZWc7ZiE7IiYDQor7ZWc7YOc7KGwDQor7ZWc6rOE7J2YDQor7ZWc6rCR7ISdDQor7ZWc7ZiE7KCVDQor7ZWc7ZmY6rWsDQor7ZWc7LaY7ZWZDQor7ZWc7Jqp7LihDQor7ZWc7ZiV7IiYDQor7ZWc7IyN7IigDQor7ZWc7IiY7ISdDQor7ZWc7IyN642VDQor7ZWc7Zi47Je0DQor7ZWc7IiY64yADQor7ZWc7Jqp7IudDQor7ZWc66+46rK9DQor7ZWc7ZmN7ISdDQor7ZWc7IS47IicDQor7ZWc7JuU6raMDQor7ZWc7ISg7IiYDQor7ZWc7Zqo6regDQor7ZWc64us7IicDQor7ZWc6rSR7IudDQor7ZWc7KCV7Zi4DQor7ZWc7Zqo64+ZDQor7ZWc7KCV7Zi4DQor7ZWc7ISx7JqwDQor7ZWc7KKF7YOcDQor7ZWc7Z2l7IiYDQor7ZWc6riw66y4DQor7ZWc7Z2s67aEDQor7ZWc7IiY7ISdDQor7ZWc7Z2s6rK9DQor7ZWc7ZWc7ZiEDQor7ZWc6re87J6sDQor7ZWc6rSR7ZiEDQor7ZWo6rOE7IigDQor7ZWo7KeE656ADQor7ZWo6rK97Zi4DQor7ZWo7Jew67SJDQor7ZWo67OR7JuQDQor7ZWo7KKF7J6QDQor7ZWo65GQ7IigDQor7ZWo67OR64+ZDQor7ZWo7IiY7YOcDQor7ZWo7ISx6re8DQor7ZWo6rWs6recDQor7ZWo7Iic7Jq0DQor7ZWo7JiB7KGwDQor7ZWo7YOc7IicDQor7ZWo7JiB7JilDQor7ZWo7JuQ7IudDQor7ZWo7Jqw7JWUDQor7ZWo7IOB7ZicDQor7ZWo64+Z7IicDQor7ZWo7KCV7JewDQor7ZWo7JuQ7ZmYDQor7ZWo7ZW07ZmNDQor7ZWo7KCV7JilDQor7ZWo7J2466qpDQor7ZWo7KCV7JuFDQor7ZWo7IOB7J6sDQor7ZWo6riw6re8DQor7ZWo6re87IiZDQor7ZWo7ZmY7KKFDQor7ZWo7IOB7JqpDQor7ZWo6riw7JuQDQor7ZWo7ISg7ZWZDQor7ZeIIOq0kQ0KK+2XiO2YhOyImA0KK+2XiOygleyaqQ0KK+2XiOyiheuLrA0KK+2XiCDrj5kNCivtl4jrp4zrtIkNCivtl4jso7zrj5kNCivtl4jsirnshJ0NCivtl4gg7ISdDQor7ZeI7J2Y7IigDQor7ZeI7ISx7JuQDQor7ZeI6reA7JuQDQor7ZeIIOyInA0KK+2XiOyDge2YuA0KK+2XiOyDgeyekA0KK+2XiOynhO2YhA0KK+2XiCDsmYQNCivtl4jrs5HspIANCivtl4jsiJzsnqwNCivtl4jtmLjshKANCivtl4gg7JuQDQor7ZeI7KCV64yADQor7ZeI7YOc7ZmUDQor7ZeI7KSR6rCRDQor7ZeIIOycoA0KK+2XiOygleyYgQ0KK+2XiOygleumvA0KK+2XiOuNleyImA0KK+2XiCDsnpENCivtl4jrj5nsoJwNCivtl4jtg5zrjIANCivtl4jso7ztmZQNCivtl4jqsr3stpwNCivtl4jtmY3sl7QNCivtl4jsgrztmZgNCivtl4jsoJXsiJwNCivtl4jqtJHsiJgNCivtl4jsiJnqsJENCivtl4jsoJXtm4gNCivtl4jsnqzrrLgNCivtl4jqtozssKwNCivtl4jtjJDsiJgNCivtl4jstpjsiJgNCivtl4jshJ3stpwNCivtl4jqt5ztg5wNCivtl4jsnqXsiJgNCivtl4jsiKDsmqkNCivtl4jsmKXssqANCivtl4jquLDsi50NCivtl4jtlYTsl7QNCivtl4jrp4ztnawNCivtl4jshKDquLANCivtl4jquLDssqANCivtl4jtnazrjZUNCivtl4jspIDtmLgNCivtl4jsmIHtla0NCivtl4jrgpzsl7ANCivtl4jrj5nsm5ANCivtl4jsnqzsi50NCivtl4jsnKTsi50NCivtl4jrgqjsnbwNCivtl4jsooXssL0NCivtl4jrs5HshJ0NCivtl4jrtInqta0NCivtl4jrj5nrn4kNCivtl4jsmIHtg5wNCivtl4jri6zssqANCivtl4jsnbTspIANCivtl4jrj5nrn4kNCivtl4jshKDslZQNCivtl4jrgpntnawNCivtl4jstpjsiJgNCivtl4jrj5nrn4kNCivtl4jtmLjrrJgNCivtl4jrqoXqsbQNCivtl4jshLHsm5ANCivtl4jrj5nroZ0NCivtl4jsmIHshJ0NCivtl4jssKzri6wNCivtl4jrs7Xsi50NCivtl4jrj5nshLENCivtl4jtlZnshK0NCivtl4jqsITshK0NCivtl4jqt4DrqqgNCivtl4jrj5nsiJgNCivtl4jssqDshLENCivtl4jsoJXrjZUNCivtl4jsmIHspIANCivtl4jrj5nsp4QNCivtl4jsnqXquLANCivtl4jqt5zsnpANCivtl4jrjZXsmqkNCivtl4jrp4zqtawNCivtl4jtmITsi50NCivtl4jqt5zrnb0NCivtl4jsiJjqtZANCivtl4jrp4zsg4ENCivtl4jqt5zssqANCivtl4jsoJXsnbUNCivtl4jsooXtmIQNCivtl4jrp4zshKANCivtl4jri6zsl7ANCivtl4jsmbjquLANCivtl4jtg5ztg5wNCivtl4jrp4zsl4UNCivtl4jrqoXsp4QNCivtl4jsm5DqtawNCivtl4jtmJXshK0NCivtl4jrp4zsl7QNCivtl4jsg4Hsp4QNCivtl4jsmIHsl70NCivtl4jsl7Dqsr0NCivtl4jrp4zsmIENCivtl4jsnqXrnpgNCivtl4jrs5HqtowNCivtl4jstpjqtawNCivtl4jrp4zsmKUNCivtl4jsnbzsl7ANCivtl4jsg4HtmZgNCivtl4jsg4HsiJgNCivtl4jrp4zsmrANCivtl4jsnqzshKANCivtl4jsnqztmY0NCivtl4jrs5Htm4gNCivtl4jrp4zsoJUNCivtl4jsnqXsmrANCivtl4jqsr3rp4wNCivtl4jrp4zqt7wNCivtl4jrp4zsobANCivtl4jsiJjsg4ENCivtl4jsmKXsnqwNCivtl4jrtInqtIANCivtl4jrp4zssqANCivtl4jsoJXtg5wNCivtl4jsoJXsnoQNCivtl4jsooXsl7QNCivtl4jrp4ztnawNCivtl4jsmIHsmKUNCivtl4jshLHsmqkNCivtl4jqtJHqta0NCivtl4jrp4ztnawNCivtl4jqsr3tmIQNCivtl4jsg4HrhbgNCivtl4jtmY3sm4UNCivtl4jrrLjqt5wNCivtl4jrj5ntm4gNCivtl4jsmqnqt5wNCivtl4jssL3siJgNCivtl4jrtInsiJwNCivtl4jqtJHquLANCivtl4jshozsl7QNCivtl4jstqntlZkNCivtl4jsgrzsiJgNCivtl4jqt7zrjIANCivtl4jsiJjsmqkNCivtl4jssL3tmLgNCivtl4jsg4HquLANCivtl4jsoJXsmrANCivtl4jshJ3smqkNCivtl4jsoJXsm5ANCivtl4jsg4HsiJkNCivtl4jsmIHshKQNCivtl4jqtJHrjZUNCivtl4jqsJHshLENCivtl4jsg4HsmqkNCivtl4jqsIHsiJgNCivtl4jrgqjqtowNCivtl4jsiJzsmqkNCivtl4jsg4HssqANCivtl4jsuZjshJ0NCivtl4jqtJHsm4UNCivtl4jsoJXsl7ANCivtl4jsg4HstpwNCivtl4jsi5zsoJUNCivtl4jshJ3rr7wNCivtl4jsg4HsmrENCivtl4jshJ3qtawNCivtl4jrrJjqtZANCivtl4jsiJjstpgNCivtl4jsuaDssqANCivtl4jshJ3qtawNCivtl4jrrLTssKwNCivtl4jrp5DqsJENCivtl4jsmIHsiJgNCivtl4jshKDstpwNCivtl4jsmIHtnJgNCivtl4jquLDshK0NCivtl4jrtoTsl7QNCivtl4jshLHsmqkNCivtl4jsg4HqtowNCivtl4jrj5nsmrANCivtl4jsnqzqt7wNCivtl4jsiJjslpENCivtl4jsnZjslbwNCivtl4jrj4Tqsr0NCivtl4jrrLjshJ0NCivtl4jsiJzslpENCivtl4jrj5nrp4wNCivtl4jssL3tlbQNCivtl4jsoJXtmIQNCivtl4jsiJzsnbQNCivtl4jqsr3tl4wNCivtl4gg6reADQor7ZeI7IK87ZWcDQor7ZeI7Iq57KGwDQor7ZeI7JiB6ri4DQor7ZeI7YOc7KCVDQor7ZeI7KCc7JikDQor7ZeI7JaR7ZWZDQor7ZeI66eM7ZmNDQor7ZeI6riw7JikDQor7ZeI67OR7ZmYDQor7ZeI7Jew6rWsDQor7ZeI7IOB7IudDQor7ZeI7IiY7ZmYDQor7ZeI7ISx7ISdDQor7ZeI7JiB7ISdDQor7ZeI7ZiE7Z2sDQor7ZeI7YOc65OdDQor7ZeI6rK97JewDQor7ZeI7JiB7JuQDQor7ZeI66eM7KeEDQor7ZeI7YyU66y4DQor7ZeI67OR7Je0DQor7ZeI7JiB7YOdDQor7ZeI7JuQ7ZuIDQor7ZeI7JiB7IigDQor7ZeI66y07Je0DQor7ZeI7JiB7Zi4DQor7ZeI7ZWc7YOcDQor7ZeI7KCV7J6QDQor7ZeI66y47LaYDQor7ZeI7Jil7ISgDQor7ZeI7Iug7JiBDQor7ZeI7IS464yADQor7ZeI7IOB7KCVDQor7ZeI7Jqp6raMDQor7ZeI6rK97JewDQor7ZeI6rK964+EDQor7ZeI7KKF7J6sDQor7ZeI7Jqp7ZWcDQor7ZeI7Iic7YOBDQor7ZeI7ISd7ZWYDQor7ZeI67OR7JWIDQor7ZeI7Jq07JqpDQor7ZeI6rK96regDQor7ZeI7LKg6rOkDQor7ZeI7IiY7ISgDQor7ZeI7JuF7IStDQor7ZeI7IOB7LKgDQor7ZeI64+Z7ZmUDQor7ZeI6rO87IicDQor7ZeI7JyE6rWsDQor7ZeI7JuQ7IiYDQor7ZeI6rec7LacDQor7ZeI7KSR656YDQor7ZeI7J207ISgDQor7ZeI67OR7IudDQor7ZeI7KCQ7J6QDQor7ZeI7ZmN65OdDQor7ZeI7J207Zi4DQor7ZeI7J287ZW0DQor7ZeI7KCV642VDQor7ZeI7KeE7JyoDQor7ZeI7J246recDQor7ZeI7ZmN7ZiEDQor7ZeI6re87Je0DQor7ZeI67OR6rCVDQor7ZeI7J247KSRDQor7ZeI67OR7IicDQor7ZeI6riw6rWtDQor7ZeI7Jqw7IiYDQor7ZeI7J247LacDQor7ZeI7Jik7IudDQor7ZeI7LaY7ZmYDQor7ZeI67OR7JaRDQor7ZeI7J6E7JaRDQor7ZeI7KCV7ISgDQor7ZeI66qF7JqpDQor7ZeI7YOc7JiBDQor7ZeI7J6s66qFDQor7ZeI7Lap7KKFDQor7ZeI7J6s67CwDQor7ZeI7YOc7Zy0DQor7ZeI7J6s7JuQDQor7ZeI7J6s7IOdDQor7ZeI64+M7JqwDQor7ZeI7ISx7ZWEDQor7ZeI7J6s7ZWEDQor7ZeI642V7JikDQor7ZeI7YOd7Je0DQor7ZeI7KCQ7IicDQor7ZeI7J6s7ZuIDQor7ZeI7KKF7JewDQor7ZeI7JmE7ISgDQor7ZeI7J207JqpDQor7ZeI7KCQ64+MDQor7ZeI7Iic64W4DQor7ZeI7Jqp6ri4DQor7ZeI7Iic66qFDQor7ZeI7KCQ7JWUDQor7ZeI7JuQ7IStDQor7ZeI6rSR7IudDQor7ZeI7KKF6raMDQor7ZeI7KCV7IudDQor7ZeI7J6s7JiBDQor7ZeI66y07IiYDQor7ZeI7ISx7KGwDQor7ZeI7KCV7JWEDQor7ZeI7ISx7J28DQor7ZeI7ZWc6recDQor7ZeI64yA7KCVDQor7ZeI7KCV7JqwDQor7ZeI6ri47LKgDQor7ZeI7IS47IiYDQor7ZeI7Jqw66GADQor7ZeI7KKF656YDQor7ZeI7IaM7ZeMDQor7ZeI7YOc7JuQDQor7ZeI7KeE7LaYDQor7ZeI7KO87Zi4DQor7ZeI7KCV64+EDQor7ZeI7Jm466qoDQor7ZeIIOyekA0KK+2XiOykgA0KK+2XiOusuA0KK+2XiO2ZlA0KK+2XiOyepQ0KK+2XiOynhOyEnQ0KK+2XiOyDgeyasA0KK+2XiOyYpeq4uA0KK+2XiOyEseq1rA0KK+2XiOynhOyasQ0KK+2XiOq4sOyyoA0KK+2XiO2YhOyYpQ0KK+2XiOq3nOyhsA0KK+2XiOy2mOyasA0KK+2XiOyYgeyyoA0KK+2XiOyerO2VhA0KK+2XiOyYgeuCqA0KK+2XiOy2mOyerA0KK+2XiOyYgeyEoA0KK+2XiOy2qeuPjA0KK+2XiOustOq3nA0KK+2XiO2DnOyDgQ0KK+2XiOq4sO2YhA0KK+2XiOuqheyEnQ0KK+2XiOyaqeyInA0KK+2XiO2DnOyImA0KK+2XiOqwkeyImQ0KK+2XiOyhsO2DnA0KK+2XiO2MkOyyoA0KK+2XiO2DnOyImA0KK+2XiOqyveydvA0KK+2XiOyYpO2biA0KK+2XiOydhOywvQ0KK+2XiO2DnOynhA0KK+2XiOq3nOyDnQ0KK+2XiOycpOu2hA0KK+2XiO2VnOyXtA0KK+2XiO2MkOyEsQ0KK+2XiOymneyyoA0KK+2XiOyaqe2DnQ0KK+2XiOyDgeydtA0KK+2XiO2MkOyImA0KK+2XiOyEseyIoA0KK+2XiOywveyInA0KK+2XiOq3vOyImA0KK+2XiO2VhOyhsA0KK+2XiO2DgeyyoA0KK+2XiOuPhOqyvQ0KK+2XiOyatOy2nA0KK+2XiO2YhOyImQ0KK+2XiOychOuPhA0KK+2XiOuPhOuPmQ0KK+2XiOyZuOq4uA0KK+2XiO2Zjeq3nA0KK+2XiO2DnOybhQ0KK+2XiOygle2DnA0KK+2XiOygleyXsA0KK+2XiO2cmOybhQ0KK+2XiOyYpeykkQ0KK+2XiOyihey2nA0KK+2XiO2DnOyjvA0KK+2YhOq4iOyInA0KK+2YhOygleyEnQ0KK+2YhOuRkOybkA0KK+2YhOyDgeyInA0KK+2YhOuPmeyXtA0KK+2YhOq3vOq2jA0KK+2YhOq3nO2ZjQ0KK+2YhOybkO2DgQ0KK+2YhOusuOyLnQ0KK+2YhO2DnOyYgQ0KK+2YhO2DnOyEnQ0KK+2YhOq4sOqzpA0KK+2YhOyEneybkA0KK+2YhOyGjOyEoA0KK+2YhOy2mOuMgA0KK+2YhOy2mOyYgQ0KK+2YhOyImOyaqQ0KK+2YhOusuO2ZmA0KK+2YhOq3vOqzpA0KK+2YhO2VnOygnA0KK+2YhOyInO2drA0KK+2YhOyerOq1kA0KK+2YhOyDgeybkA0KK+2YhOyerO2VnA0KK+2YhOyaqeyLnQ0KK+2YhO2DnOuqqA0KK+2YhOyjvO2YhA0KK+2YhOq3nOyLnQ0KK+2YhOywve2ZmA0KK+2YhOygleyIoA0KK+2YhO2XjO2YhA0KK+2YhOy2qeyYgQ0KK+2YhO2drO2biA0KK+2YhOq4iOyImA0KK+2YhOq0ke2YuA0KK+2YhO2DnOyekA0KK+2YleuCqOynhA0KK+2YleyDge2YhA0KK+2YleyInO2YhA0KK+2Yle2MkOyImQ0KK+2ZjSDtl4wNCivtmY3snqzqt5wNCivtmY3so7zqt7wNCivtmY3sirntmLgNCivtmY3qsJHsiJwNCivtmY3shLjsiJgNCivtmY3rqoXtmY0NCivtmY3rs5HqsJENCivtmY3qsr3rj4QNCivtmY3siJjsiJgNCivtmY3sp4Drr7wNCivtmY3soJXtmLgNCivtmY3qsr3tmLgNCivtmY3soJXsmrENCivtmY3snbjsm5ANCivtmY3rj5nrjZUNCivtmY3qs4Tsl7ANCivtmY3rs5HsiJwNCivtmY3smrDsmqkNCivtmY3quLDrn4kNCivtmY3qtJHsi50NCivtmY3tg5ztg5wNCivtmY3snbjsmqkNCivtmY3tmITsi50NCivtmY3quLDrrLgNCivtmY3shKDsnpANCivtmY3smIHspJENCivtmY3smqnquLANCivtmY3rjIDsiJwNCivtmY3rs7Tsp4ANCivtmY3qt4Drj5kNCivtmY3rgqjqtIANCivtmY3rj4Tsg50NCivtmY3sp4TshKANCivtmY3rp4zsp4ANCivtmY3qtJHrnoANCivtmY3rj5nquLANCivtmY3tg5zshK0NCivtmY3quIjtmLgNCivtmY3tnazstpwNCivtmY3rj5nshJ0NCivtmY3snKTsobANCivtmY3sm5Drp4wNCivtmY3shJ3ri6wNCivtmY3rkZDsi50NCivtmY3suZjsp4QNCivtmY3tg5zsi50NCivtmY3sm5DrnpgNCivtmY3rkZDsp4QNCivtmY3stpjqt7wNCivtmY3qsr3sp4QNCivtmY3rjIDsiJgNCivtmY3rqoXsiJwNCivtmY3ri6zshJ0NCivtmY3tjJDtnawNCivtmY3snqzsiJgNCivtmY3rrLTsm4UNCivtmY3tlLzsnbQNCivtmY3snqzrtIkNCivtmY3tmZjsiJgNCivtmY3rr7jtmZQNCivtmY3ssq3rqoUNCivtmY3smIHshJ0NCivtmY3sg4Hsi50NCivtmY3rs5HsiJkNCivtmY3smKTshLENCivtmY3rrLTrtIkNCivtmY3sg4HsiJgNCivtmY3rs7Xsi6QNCivtmY3spIDsiJwNCivtmY3rp4zquLANCivtmY3sg4HsoJUNCivtmY3rtoDquLANCivtmY3sooXrpr0NCivtmY3shLHssqANCivtmY3snKTquLANCivtmY3rtoTrgqgNCivtmY3stqnqt6ANCivtmY3rgqjtg50NCivtmY3rr7zsp4QNCivtmY3sgrzquLANCivtmY3smqnshJ0NCivtmY3snKTspIANCivtmY3sooXstpwNCivtmY3sg4HquLANCivtmY3rp5Dso7wNCivtmY3siJjtmY0NCivtmY3sooXroYANCivtmY3sg4HsobANCivtmY3tjJTtmLgNCivtmY3rs5HssKwNCivtmY3qtJHsmrANCivtmY3sg4HtnawNCivtmY3smIHsiJwNCivtmY3smIHsiJwNCivtmY3snKTrj4QNCivtmY3shJ3rtIkNCivtmY3shLHsiJwNCivtmY3smIHqs6QNCivtmY3rs5Hqt5wNCivtmY3shJ3snKQNCivtmY3tg5zshJ0NCivtmY3rs5HsnpANCivtmY3tmITqt5wNCivtmY3shJ3sp4QNCivtmY3qt4DsnpANCivtmY3qtJHtlYQNCivtmY3rhbjsoJANCivtmY3shJ3tmZgNCivtmY3snqXsnqwNCivtmY3sg4Hrs7UNCivtmY3smIHsnoQNCivtmY3shKDqt6ANCivtmY3smqnrs7UNCivtmY3soJXtnawNCivtmY3soJDsnbQNCivtmY3shKDrqqgNCivtmY3siJzsobANCivtmY3sgrzsm5ANCivtmY3shKDssqANCivtmY3shKDtkZwNCivtmY3snqztmZgNCivtmY3sg4HqtowNCivtmY3rj5ntg50NCivtmY3shKDtnawNCivtmY3qtazqt7wNCivtmY3soJXqsJENCivtmY3siJztlbQNCivtmY3shLHqtIANCivtmY3rtInsl7ANCivtmY3smqnsobANCivtmY3sooXrj5kNCivtmY3shLHqt7wNCivtmY3rj5ntmLgNCivtmY3qtZDshK0NCivtmY3shLjssqANCivtmY3shLHquLANCivtmY3sgqzsnKgNCivtmY3smIHsiJkNCivtmY3tlbTquLgNCivtmY3shLHrr7wNCivtmY3rs5HtnawNCivtmY3sg4HslZQNCivtmY3qsJXtmIQNCivtmY3shLHsiJgNCivtmY3rjZXrs5ENCivtmY3rkZDrjZUNCivtmY3rp4ztmLgNCivtmY3shLHsl7QNCivtmY3soJXqs6QNCivtmY3snqzsnpANCivtmY3rr7jrsLANCivtmY3shLHsm5ANCivtmY3rtIntmLgNCivtmY3tmoztmIQNCivtmY3qt5zshJ0NCivtmY3shLHsnKQNCivtmY3smKXshLENCivtmY3shLHsmqkNCivtmY3smKXssqANCivtmY3shLHtg5wNCivtmY3rspTsiJgNCivtmY3tlYTsg4ENCivtmY3shKDtlZkNCivtmY3shLHtg5wNCivtmY3rjZXsmqkNCivtmY3soJDsp4QNCivtmY3siJzqt5wNCivtmY3shLHtg5wNCivtmY3sg4Hsi5wNCivtmY3smrDsm4UNCivtmY3smqnsmqkNCivtmY3shLHtmZgNCivtmY3smIHtmLgNCivtmY3soJXquLgNCivtmY3soJXtmZQNCivtmY3shLHtmqgNCivtmY3quLDqt5wNCivtmY3shJ3tmLgNCivtmY3snYDsi50NCivtmY3shLjquLANCivtmY3si5zsiKANCivtmY3rqoXshJ0NCivtmY3snKTqtowNCivtmY3siJjrjZUNCivtmY3tg5zsi50NCivtmY3rqoXrp4wNCivtmY3shLHsg4ENCivtmY3siJzqtZANCivtmY3shLjtmLgNCivtmY3qtJHshKANCivtmY3snqzrj4QNCivtmY3siJztmLgNCivtmY3tmZTsl7ANCivtmY3rgqjshJwNCivtmY3soJXrtIkNCivtmY3sirnsnbwNCivtmY3smqnshKANCivtmY3snqztmLgNCivtmY3sooXtlZwNCivtmY3smIHqtawNCivtmY3sl7DrrLQNCivtmY3tg5zsobANCivtmY3sm4XroZ0NCivtmY3smIHqtowNCivtmY3rrLTrj4wNCivtmY3smKXstpwNCivtmY3tmLjslZQNCivtmY3smIHslaANCivtmY3snoTsnbQNCivtmY3smIHquLgNCivtmY3snbjsm5ANCivtmY3smIHsmrANCivtmY3tg5zsl7ANCivtmY3siJjtmLgNCivtmY3qt5zrqoUNCivtmY3smKTqs6QNCivtmY3shLHshKANCivtmY3sg4Hrj4QNCivtmY3tjJDtmZgNCivtmY3smKXtkZwNCivtmY3rtoTrj5kNCivtmY3smqntmZgNCivtmY3smqntm4gNCivtmY3smqntlZkNCivtmY3siJzrgqgNCivtmY3smIHsp4QNCivtmY3qt5ztg5wNCivtmY3smrDshJ0NCivtmY3shLHtmIQNCivtmY3rtInsmKQNCivtmY3tl4zso7wNCivtmY3smrTtnawNCivtmY3soJDsmrANCivtmY3siJjqt7wNCivtmY3snqzrnpgNCivtmY3sm5DsoIQNCivtmY3tmJztlokNCivtmY0g7ZWZDQor7ZmN7J6s66GdDQor7ZmN7JuQ7ZGcDQor7ZmN6riw7IiYDQor7ZmN66qF7JqpDQor7ZmNIOyasA0KK+2ZjeydmOyLnQ0KK+2ZjeyKueuwqQ0KK+2ZjeygleuztA0KK+2ZjeyiheuCqA0KK+2ZjeyerOq4sA0KK+2ZjeunjOyYgQ0KK+2ZjeyasO2ZmA0KK+2ZjeuPmeyerA0KK+2ZjeyerOq4sA0KK+2ZjeyGoeyaqQ0KK+2ZjeyYgeyVlA0KK+2Zje2Dne2XjA0KK+2ZjeyerOuCqA0KK+2ZjeyerOydtA0KK+2Zje2DgOyerA0KK+2ZjeuCqOuNlQ0KK+2ZjeyerOuqqA0KK+2Zje2VtOyekA0KK+2Zje2drOy4oQ0KK+2ZjeyKueuLrA0KK+2ZjeygleyImA0KK+2ZjeyDgeyynA0KK+2ZjeybkO2drA0KK+2Zjeq3vO2DnQ0KK+2ZjeygleyXvQ0KK+2ZjeyInOyXtA0KK+2ZjeynhOyhsA0KK+2ZjeuzkeyLnQ0KK+2ZjeygleybhQ0KK+2ZjeyYgey2mA0KK+2Zjeuzke2YuA0KK+2ZjeuPhOyEsQ0KK+2Zjeygle2RnA0KK+2ZjeygkOq3vA0KK+2Zje2YuOq4sA0KK+2ZjeqwkeybhQ0KK+2ZjeyiheycpA0KK+2ZjeuPme2drA0KK+2Zje2YuOq4uA0KK+2ZjeqyveyekA0KK+2ZjeyjvOuCnA0KK+2ZjeyghOyEnQ0KK+2ZjeynhO2ZmA0KK+2Zjeyaqeu5iA0KK+2ZjeyngOyatA0KK+2ZjeyEneyaqQ0KK+2Zje2DnO2YlQ0KK+2Zje2YhO2ZjQ0KK+2ZjeynhOqzpA0KK+2ZjeyDgeq1rA0KK+2ZjeyEuOyEoA0KK+2ZjeyerO2YlQ0KK+2ZjeynhOuFhA0KK+2ZjeyerOykgA0KK+2ZjeyjvOyXtA0KK+2ZjeuPme2ZlA0KK+2ZjeynhOusuA0KK+2ZjeuzkeyyoA0KK+2Zjeq4sOyInA0KK+2ZjeyYgeyEoA0KK+2ZjeynhOyEnQ0KK+2ZjeyInOycpA0KK+2ZjeygleusuA0KK+2Zjeq4sOyLnQ0KK+2ZjeynhOyEsQ0KK+2ZjeuMgOuhnQ0KK+2ZjeusuOyekA0KK+2ZjeyInO2drA0KK+2ZjeynhOyEsQ0KK+2Zjey2mOqzpA0KK+2Zjeygleq3nA0KK+2ZjeqwkeydtA0KK+2ZjeynhOyImA0KK+2ZjeyyoOyXtA0KK+2Zje2VtO2VnA0KK+2ZjeynhOyImQ0KK+2ZjeynhOyasQ0KK+2ZjeyYgeyLnQ0KK+2Zjeygle2DnQ0KK+2Zje2VmOqyvQ0KK+2ZjeynhOyyoA0KK+2ZjeyYgeq3nA0KK+2ZjeyGjOunjA0KK+2ZjeuzkeyYgQ0KK+2ZjeynhO2PiQ0KK+2ZjeyerOybkA0KK+2ZjeuvvO2ZlA0KK+2Zjeuzkeq1kA0KK+2Zjeywveq4sA0KK+2Zjeyaqe2VnA0KK+2Zjeyihe2ZmA0KK+2ZjeyduOyLnQ0KK+2Zjeywveq4sA0KK+2ZjeywqOyImA0KK+2ZjeqyveyImA0KK+2Zjeyyre2YuA0KK+2ZjeyxhO2drA0KK+2ZjeyYge2VnA0KK+2ZjeyYpeyYpQ0KK+2ZjeuvvOuPhA0KK+2ZjeyyoOq4sA0KK+2ZjeyDgeyEnQ0KK+2Zjeykkeq4sA0KK+2ZjeyEoOyImA0KK+2ZjeyyoOq4sA0KK+2ZjeyViO2YhA0KK+2ZjeqyveuPhA0KK+2ZjeuRkOu0iQ0KK+2ZjeyyoOyerA0KK+2ZjeyXsOydmA0KK+2ZjeyCvOqyvQ0KK+2Zjeq0keycpA0KK+2Zje2DnOq4sA0KK+2ZjeyLoOyImQ0KK+2Zje2DnOyEnQ0KK+2ZjeqyveuNlQ0KK+2Zje2DnOyVlA0KK+2ZjeyiheyaqQ0KK+2ZjeyerOyXtA0KK+2ZjeunjO2bhA0KK+2Zje2DnO2drA0KK+2ZjeuzteyhsA0KK+2Zje2VnOyerA0KK+2ZjeyZuOyLnQ0KK+2Zje2VnOq4sA0KK+2ZjeqwnOq4sA0KK+2ZjeyatOydtQ0KK+2ZjeyYge2biA0KK+2Zje2Vreq4uA0KK+2Zjey5oOyaqQ0KK+2ZjeyYgeydvA0KK+2ZjeyaqeuqqQ0KK+2Zje2VtOyEsQ0KK+2Zje2YleyImA0KK+2ZjeyEse2ZlA0KK+2Zjeyaqe2drA0KK+2Zje2YhOynhA0KK+2ZjeydhOuvvA0KK+2ZjeyYgeunjA0KK+2Zje2DnOyEnQ0KK+2Zje2YhOyyoA0KK+2ZjeuPmeq3nA0KK+2ZjeybkOq1rA0KK+2ZjeyEne2VmA0KK+2Zje2YhO2VhA0KK+2Zje2VhO2PiQ0KK+2ZjeygleyEnQ0KK+2ZjeyImOyynA0KK+2Zje2Zqeq4sA0KK+2Zje2aqOuPmQ0KK+2ZjeygleyIoA0KK+2Zjeu2hOyXtA0KK+2ZqeqxtOyYpA0KK+2ZqeyEoO2VnA0KK+2ZqeuMgO2YuA0KK+2Zqeuzte2YhA0KK+2ZqeqyveyImQ0KK+2Zqeq4sOuztQ0KK+2ZqeygkOyerA0KK+2ZqeyiheuhnQ0KK+2ZqeqyveyInA0KK+2ZqeyYgeyasQ0KK+2Zqe2Dne2ZmA0KK+2ZqeybkOuPjA0KK+2ZqeqyveyIoA0KK+2ZqeyVlOuqhQ0KK+2Zqe2DnOyLpA0KK+2ZqeyYgeq3vA0KK+2ZqeqyveyatA0KK+2ZqeuqheyasA0KK+2ZqeyEne2YuA0KK+2ZqeuNle2ZmA0KK+2ZqeqyveyehA0KK+2ZqeuwseyEsQ0KK+2Zqe2drOybkA0KK+2ZqeydvOyDgQ0KK+2Zqeqyve2VnA0KK+2ZqeyEoOuNlQ0KK+2ZqeyDgeyhsA0KK+2Zqeyaqeq4uA0KK+2Zqeq0keyXsA0KK+2ZqeydmOyZhA0KK+2Zqe2VtOq4sA0KK+2ZqeunkO2drA0KK+2Zqeq0keyaqQ0KK+2Zqe2DnOuPhA0KK+2Zqey2mO2ZmA0KK+2ZqeyYgeuPhA0KK+2Zqeq1kOydvA0KK+2ZqeyiheuztQ0KK+2ZqeynhO2ZmA0KK+2Zqeq3vOyImA0KK+2Zqeq1kOyepQ0KK+2ZqeqyveyYgQ0KK+2Zqeyiheq1kA0KK+2Zqe2YleuNlQ0KK+2Zqeq1re2WpQ0KK+2ZqeyiheyhsA0KK+2ZqeyYgeyehA0KK+2ZqeygkOugqA0KK+2Zqeq3nOuvuA0KK+2ZqeyerOyynA0KK+2Zqeq4sOyYpQ0KK+2ZqeyImO2YhA0KK+2Zqeq3nOyZhA0KK+2ZqeyYgeuztQ0KK+2ZqeyYge2YuA0KK+2ZqeqyveyaqQ0KK+2Zqeq3nOyghA0KK+2Zqey2lOyxhA0KK+2ZqeyYgeyInA0KK+2ZqeyerOyEoA0KK+2Zqeq4iOuPjA0KK+2ZqeydvOyLnQ0KK+2ZqeuzkeyLnQ0KK+2Zqe2YhOqwkQ0KK+2Zqeq4iOyEsQ0KK+2Zqeq4sOydtA0KK+2Zqe2YhO2drA0KK+2ZqeyaqeyaqQ0KK+2Zqeq4sOuPhA0KK+2ZqeyImOyekA0KK+2ZqeyblOyekA0KK+2Zqeq4iO2drA0KK+2Zqeq4sOyEnQ0KK+2ZqeygleybkA0KK+2ZqeuzkeyekA0KK+2ZqeyCvOyekA0KK+2Zqeq4sO2YuA0KK+2Zqe2VnO2ZlA0KK+2Zqe2VmeykgA0KK+2ZqeyYpeygnA0KK+2Zqeq4uO2YhA0KK+2Zqeu2hOyaqQ0KK+2ZqeyCvOydtA0KK+2Zqeq0keunjA0KK+2ZqeuCqOydtA0KK+2ZqeyjvOyhsA0KK+2ZqeyDgeyErQ0KK+2ZqeyLoOyEnQ0KK+2ZqeuLrOq4iA0KK+2ZqeyImOq3vA0KK+2Zqeq4sOugrA0KK+2Zqe2YhOybkA0KK+2ZqeuMgOyEoA0KK+2ZqeqyveyihQ0KK+2ZqeyXsOyInA0KK+2ZqeyiheybkA0KK+2ZqeuMgOyyoA0KK+2Zqeq3vOyImQ0KK+2ZqeyYpeyImA0KK+2ZqeuPmeq3nA0KK+2ZqeuNleyEsQ0KK+2ZqeyLnOqzhA0KK+2Zqeygle2DnA0KK+2ZqeybkO2DnA0KK+2ZqeuPmeyEnQ0KK+2ZqeuqheyImA0KK+2ZqeygleqwkQ0KK+2ZqeyXsOy2mA0KK+2ZqeuPmeyLnQ0KK+2ZqeyYge2biA0KK+2ZqeyYpOq4sA0KK+2ZqeyaqeyyoA0KK+2ZqeuRkOyyoA0KK+2Zqeq3gOyhsA0KK+2ZqeuzkeyErQ0KK+2ZqeyasOuMgA0KK+2ZqeuemOyEsQ0KK+2ZqeuzkeyLnQ0KK+2Zqe2drOyImA0KK+2Zqe2drOyImA0KK+2Zqeujoeq4sA0KK+2ZqeuLrOyjvA0KK+2ZqeuqheunjA0KK+2ZqeygleyImA0KK+2ZqeunkOyImA0KK+2ZqeyIme2ZmA0KK+2Zqe2drO2XjA0KK+2Zqe2DnOyVlA0KK+2ZqeunkOyInA0KK+2Zqeq4uOuRkA0KK+2Zqe2aqOuTnQ0KK+2Zqe2Vme2drA0KK+2Zqeuqheq3nA0KK+2ZqeyEse2YuA0KK+2ZqeywveyVlA0KK+2ZqeyYgeq1rQ0KK+2ZqeuqheyInA0KK+2Zqe2WpeyIoA0KK+2ZqeyYgeyyoA0KK+2ZqeyLnOydvA0KK+2Zqeuzkeq1rA0KK+2Zqeq3nOyEnQ0KK+2ZqeyyoOyImA0KK+2ZqeyEse2YuA0KK+2ZqeuzkeydvA0KK+2ZqeyCvO2VnA0KK+2Zqe2DnOyEoA0KK+2Zqeygle2drA0KK+2ZqeuztOyYpeyImA0KK+2Zqeywveu0ieyYgQ0KK+2ZqeqyveyEneyerA0KK+2Zqe2biOyImeuzkQ0KK+2Zqeu2hOyjvA0KK+2ZqeustO2YuA0KK+2ZqeyasOq3nA0KK+2ZqeyImOuhnQ0KK+2ZqeyDgeq3nA0KK+2ZqeyynOqzoA0KK+2Zqe2DnOynhA0KK+2ZqeyImOydvA0KK+2ZqeyDgeyehA0KK+2ZqeyEseyaqQ0KK+2ZqeuqheyxhA0KK+2ZqeydmOykgA0KK+2ZqeyDge2RnA0KK+2ZqeyEoOyasA0KK+2ZqeyaqeuPhA0KK+2Zqeqyveq4iA0KK+2ZqeyEoOq3nA0KK+2Zqe2ZlOyImA0KK+2Zqeq0keyjvA0KK+2ZqeygleyImA0KK+2ZqeyEoOq3vA0KK+2ZqeyEne2drA0KK+2ZqeyEseyaqQ0KK+2ZqeynhOyyoA0KK+2ZqeyEoOuPhA0KK+2ZqeyaqeyerA0KK+2ZqeyImOunjA0KK+2ZqeyZuOyWkQ0KK+2ZqeyEoOuPmQ0KK+2Zqe2YuOyImQ0KK+2ZqeybkOq4iA0KK+2Zqeu0ieyImA0KK+2ZqeyEoOuRkA0KK+2Zqeuqheq3vA0KK+2Zqe2DnOyEnQ0KK+2Zqeq1rO2ZmA0KK+2ZqeyEoOyaqQ0KK+2ZqeuNleyaqQ0KK+2ZqeycpOyXtA0KK+2ZqeusuOyEnQ0KK+2ZqeyEoOyasA0KK+2ZqeynhOq3vA0KK+2ZqeykgOyyoA0KK+2Zqeyiheq3nA0KK+2ZqeyEoOyasQ0KK+2ZqeyInOyEoA0KK+2ZqeyduO2doA0KK+2ZqeycpOuylA0KK+2ZqeyEoOyasQ0KK+2ZqeyYgeyYpQ0KK+2ZqeydgOyyoA0KK+2Zqe2ZjeyekA0KK+2ZqeyEoOybhQ0KK+2ZqeycoOyInA0KK+2ZqeyXsO2VnA0KK+2ZqeyerOyYpA0KK+2ZqeyEoOy2nA0KK+2ZqeyGjO2ZmA0KK+2ZqeustOq4sA0KK+2Zqe2DnOynhA0KK+2ZqeyEoO2ZjQ0KK+2ZqeyEuOyEoA0KK+2ZqeyYge2WpQ0KK+2Zqeu0ieyInA0KK+2ZqeyEseq3nA0KK+2ZqeygleuegA0KK+2ZqeyduOyLpA0KK+2ZqeyYpeyasQ0KK+2ZqeyEseq3vA0KK+2ZqeyerOyWkQ0KK+2ZqeunkOyjvA0KK+2ZqeyaqeyihQ0KK+2ZqeyEse2DnA0KK+2ZqeuFuOuLuQ0KK+2ZqeywveyIoA0KK+2ZqeyerOybkA0KK+2ZqeyGjO2YuA0KK+2ZqeuPme2DnA0KK+2Zqeq3vOq4uA0KK+2ZqeuzteyaqQ0KK+2ZqeyImOq3vA0KK+2ZqeygkO2WiQ0KK+2ZqeywqOu0iQ0KK+2ZqeygleyasA0KK+2ZqeyImOywrA0KK+2Zqe2DnO2DnQ0KK+2ZqeyDgeyXtA0KK+2ZqeycpOuLqA0KK+2ZqeyImeyekA0KK+2ZqeyYge2YuA0KK+2ZqeyEseyerA0KK+2ZqeyYgeq3nA0KK+2ZqeyInOq3nA0KK+2Zqe2YhOyaqQ0KK+2ZqeygleyaqQ0KK+2ZqeyaqeyImA0KK+2ZqeyInOyhsA0KK+2ZqeywveqwgQ0KK+2ZqeywveykgA0KK+2ZqeyYgeqwkQ0KK+2ZqeyLnOyyoA0KK+2ZqeyYpeyImQ0KK+2ZqeyEoOq1kA0KK+2Zqe2YhOq4sA0KK+2ZqeyYgeq1rQ0KK+2ZqeyiheuqqA0KK+2ZqeyYgeq0gA0KK+2ZqeyYpeq1rA0KK+2ZqeyYgeq1rQ0KK+2ZqeyaqeulnA0KK+2Zqeygle2ZmA0KK+2ZqeyngOyDgQ0KK+2ZqeyYgeq3nA0KK+2ZqeybkOujoQ0KK+2Zqeq4uO2drA0KK+2ZqeygleyduA0KK+2ZqeyYgeq4uA0KK+2ZqeynhOq3vA0KK+2ZqeyEseyatA0KK+2ZqeyDgeyEoA0KK+2ZqeyYgeusuA0KK+2ZqeustO2ZmA0KK+2ZqeycpOykgA0KK+2ZqeyYpeyglQ0KK+2ZqeyYgeyEoA0KK+2Zqe2DnOuLuQ0KK+2Zqe2ZlOyihQ0KK+2ZqeyerOyehA0KK+2ZqeyYgeyImQ0KK+2Zqe2ZjeyasQ0KK+2Zqeygleq4sA0KK+2Zqeq4iOyImQ0KK+2ZqeyYgeyInA0KK+2Zqeuqhe2XjA0KK+2ZqeyYpeyInA0KK+2ZqeyiheyYgQ0KK+2ZqeyYgeyerA0KK+2ZqeyerOybkA0KK+2ZqeybkOq4sA0KK+2ZqeyngOyEnQ0KK+2ZqeyYge2MlA0KK+2ZqeyYgeyLnQ0KK+2ZqeyYgeq4uA0KK+2Zqeyaqe2YuA0KK+2ZqeyYge2YuA0KK+2ZqeywveuLrA0KK+2ZqeyEseydgA0KK+2ZqeyCvO2YuA0KK+2ZqeyYge2ZmA0KK+2Zqeuqhe2YuA0KK+2Zqe2dpeyyoA0KK+2Zqeq1kOu2hA0KK+2ZqeyYpOynhA0KK+2Zqe2ZjeywqA0KK+2ZqeuLrOq3nA0KK+2ZqeydvOqyvQ0KK+2ZqeyYpe2drA0KK+2ZqeyImOyEnQ0KK+2ZqeyjvOyLnQ0KK+2ZqeyatOuPmQ0KK+2ZqeyaqeuMgA0KK+2ZqeyDgeyekA0KK+2Zqey5oOuPmQ0KK+2ZqeyEseyyoA0KK+2ZqeyaqeyepQ0KK+2ZqeuzkeyEuA0KK+2ZqeydmOyInA0KK+2ZqeuqheuwsA0KK+2Zqeyaqe2VmQ0KK+2ZqeyGjOyduA0KK+2ZqeuzkeuPjA0KK+2ZqeyCvOyatA0KK+2ZqeybkOydtA0KK+2ZqeyYge2drA0KK+2Zqeq4iO2RnA0KK+2ZqeuzkeyEnQ0KK+2ZqeybkOykgA0KK+2Zqeq0keyEnQ0KK+2Zqeygle2VmQ0KK+2Zqe2cmO2YuA0KK+2ZqeybkO2VmQ0KK+2ZqeyYgeqzpA0KK+2ZqeygleuNlQ0KK+2ZqeqzhOyerA0KK+2ZqeycpOyEnQ0KK+2ZqeyaqeyYpA0KK+2Zqeuzkeu0iQ0KK+2ZqeustOyXtA0KK+2ZqeydhOyIoA0KK+2ZqeyynOyImA0KK+2ZqeynhO2ZmA0KK+2ZqeyYge2YuA0KK+2ZqeydkeuztQ0KK+2Zqey2mO2drA0KK+2ZqeyImOyImA0KK+2ZqeuPmeq3vA0KK+2ZqeydmOyYgQ0KK+2ZqeyYgeyEoA0KK+2ZqeyerOuMgA0KK+2ZqeyEseuhnQ0KK+2ZqeydmOy2nA0KK+2ZqeyEneyImQ0KK+2ZqeuzkeydvA0KK+2ZqeyiheyynA0KK+2ZqeydmO2biA0KK+2ZqeyerO2VnA0KK+2ZqeyasO2YuA0KK+2Zqeywve2YhA0KK+2ZqeydtOyyoA0KK+2Zqe2DnOuNlQ0KK+2ZqeyDgeq3oA0KK+2Zqeq3nOyLnQ0KK+2ZqeyduOuNlQ0KK+2ZqeyatOy2nA0KK+2ZqeygleycqA0KK+2ZqeyYgeyInA0KK+2ZqeyduOu0iQ0KK+2ZqeydtOyImQ0KK+2ZqeuzkeyXsA0KK+2ZqeyerOq2jA0KK+2ZqeyduOy2nA0KK+2ZqeyKue2VmQ0KK+2ZqeyCvO2drA0KK+2ZqeuMgO2DnA0KK+2ZqeydvOq1rA0KK+2ZqeqwkeybhQ0KK+2Zqe2VnOyggQ0KK+2ZqeyyoOq4sA0KK+2ZqeydvOyEoA0KK+2Zqeq3nOyLnQ0KK+2ZqeycpOyYgQ0KK+2ZqeydmO2ZmA0KK+2ZqeydvOy2nA0KK+2ZqeyGjOyEoA0KK+2ZqeustOuylA0KK+2ZqeyYge2RnA0KK+2ZqeyerOuztQ0KK+2ZqeuzteyaqQ0KK+2ZqeyYgeuNlQ0KK+2ZqeyiheyLnQ0KK+2ZqeyerOyImA0KK+2ZqeqyveynhA0KK+2ZqeydvOyhsA0KK+2ZqeyEuOyaqQ0KK+2ZqeyerOyaqQ0KK+2ZqeyjvOq1kA0KK+2Zqeu2gOyImQ0KK+2ZqeustOyyoA0KK+2ZqeyerOydmA0KK+2ZqeuPmeyglQ0KK+2ZqSDsi50NCivtmanrj5nsiJgNCivtmansnqzssqANCivtmansnoTrgqgNCivtmansg4HtlZwNCivtmanri6zrrLgNCivtmansnqztlZkNCivtmanrj5nsiJwNCivtmantl4zsiKANCivtmantlZnrgqgNCivtmansnqztmLgNCivtmansnYTrnpENCivtmantg5zquIgNCivtmansm4XtmIQNCivtmansoJXqs6QNCivtmanquLDsiJgNCivtmansooXshKANCivtmantj4ntg50NCivtmansoJXrtIkNCivtmansnqzsoJwNCivtmantg5zsiJwNCivtmansnbjspJENCivtmansoJXsiJgNCivtmansmrDsmrANCivtmanqsr3qta0NCivtmantmanssqANCivtmansoJXsiJgNCivtmansm5Tri6wNCivtmanrrLjsobANCivtmansooXtnawNCivtmansoJXtmZgNCivtmantmqjtmY0NCivtmanrsLDtmZgNCivtmantnazrp4wNCivtmansooXqtawNCivtmansmYTqt7wNCivtmantlbTrp4wNCivtmansnqztmIQNCivtmansooXrjZUNCivtmansgrzshJ0NCivtmansl7Dsg4ENCivtmansnbjroKgNCivtmansooXshJ0NCivtmansiJjqtIANCivtmantg5zsiJgNCivtmansnZjsmqkNCivtmansooXsnKQNCivtmansmIHqt7wNCivtmanssL3qsr0NCivtmanrrLjsiKANCivtmansooXsnbwNCivtmanqt5zslYQNCivtmansmIHslrgNCivtmakg64+ZDQor7Zmp7KKF7LKgDQor7Zmp7JuQ64+ZDQor7Zmp6riI7IiYDQor7Zmp7KCV66y4DQor7Zmp7KeA7LacDQor7Zmp7KCc7JuFDQor7Zmp7ZiE7LaYDQor7Zmp7J6s7JiBDQor7Zmp7KeE7Zi4DQor7Zmp7KeE6riwDQor7Zmp7IS47ZiEDQor7Zmp6ri47KeEDQor7Zmp7KeE7ZmYDQor7Zmp7JiB7LKgDQor7Zmp7Zqo67CwDQor7Zmp7LCo7JqwDQor7Zmp7LC96recDQor7Zmp7YOc6regDQor7Zmp7Jq06rWsDQor7Zmp6rK97IS4DQor7Zmp7LC97IiYDQor7Zmp7LKt7ISxDQor7Zmp6riw7JWUDQor7Zmp6rec7IiZDQor7Zmp7LC97J21DQor7Zmp7KKF7IudDQor7Zmp7J207JqwDQor7Zmp64yA7LacDQor7Zmp7LKc6recDQor7Zmp7Jqp6rWtDQor7Zmp67OR7LaYDQor7Zmp7JiB7IiZDQor7Zmp7LKg6rCRDQor7Zmp7JiB7IiYDQor7Zmp7YOc7ISgDQor7Zmp7Kad7ZmYDQor7Zmp7LKg64+EDQor7Zmp7LKg7JqwDQor7Zmp7ISx7YOcDQor7Zmp7KKF7IiZDQor7Zmp7LKt7IicDQor7Zmp7Jqp7JqpDQor7Zmp66+86rWsDQor7Zmp7Iic7IiYDQor7Zmp7YOc6riIDQor7Zmp7LC97JWgDQor7Zmp7Zi46riwDQor7Zmp7LKc6rWsDQor7Zmp7YOc7JilDQor7Zmp7YOc7IiYDQor7Zmp7LaY7Z2sDQor7Zmp7JuQ7KGwDQor7Zmp7YOc7JuQDQor7Zmp7J6l7JiBDQor7Zmp7Iah7IudDQor7Zmp7YOc7YOcDQor7Zmp7ZWE7ISgDQor7Zmp7JiB7Je0DQor7Zmp6rK964+EDQor7Zmp7Jqp64+ZDQor7Zmp7ZWE7ISxDQor7Zmp7Lap7ZmYDQor7Zmp7JiB7ZiEDQor7Zmp7Z2s7ZeMDQor7Zmp7ZWE7IiYDQor7Zmp7J6s7J6QDQor7Zmp7ISx6recDQor7Zmp7Jyk7KGwDQor7Zmp7ZWc6recDQor7Zmp7Iic6raMDQor7Zmp6rSA7JqpDQor7Zmp6rWQ7Z2sDQor7Zmp7ZiB7KO8DQor7Zmp67OR7LacDQor7Zmp7ZiE6rCRDQor7Zmp64us7J20DQor7Zmp7ZiE6rWsDQor7Zmp7J247ISgDQor7Zmp64KZ7IiYDQor7Zmp7KCV7ZiEDQor7Zmp7Zqo7JiBDQor7Zmp7IiY7Zi4DQor7Zmp66eQ7YOdDQor7Zmp7JiB6recDQor7Zmp7Z2s7J6QDQor7Zmp7YOc7ZmNDQor7Zmp7IOB7IudDQor7Zmp7J6s7IiYDQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0xhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcyNDM4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19MYXRpbi50eHQKQEAgLTAsMCArMSw3NjExIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK0FhY2hlbiwgSGFucyB2b24NCitBYWx0bywgQWx2YXINCitBYmFrYW5vd2ljeiwgTWFnZGFsZW5hDQorQWJhcXVlc25lLCBNYXNzw6lvdA0KK0FiYmFzaSwgUml6YS1pDQorQWJiZXksIEVkd2luIEF1c3Rpbg0KK0FiYm90dCwgQmVyZW5pY2UNCitBYmJvdHQsIExlbXVlbCBGcmFuY2lzDQorQSdCZWNrZXQsIE1hcmlhDQorQWJlbCBkZSBQdWpvbA0KK0FiZXJjcm9tYmllLCBHZXJ0cnVkZQ0KK0FiZXl0YSwgVG9ueQ0KK0FiaWxkZ2FhcmQsIE5pY29sYWkNCitBYnJhaGFtcywgSXZvcg0KK0FicmFoYW1zb24sIE1hcmsNCitBYnJhbW93aXR6LCBBbGJlcnQNCitBY2NhcmRpLCBDYXJsYQ0KK0FjY29uY2ksIFZpdG8NCitBY2hlbmJhY2gsIEFuZHJlYXMNCitBY2hlbmJhY2gsIE9zd2FsZA0KK0FjaGlsbGVzIFBhaW50ZXIsIFRoZQ0KK0Fjb3JkLCBKYW1lcw0KK0FkYW0sIExhbWJlcnQtU2lnaXNiZXJ0DQorQWRhbSwgUm9iZXJ0DQorQWRhbXMsIEFuc2VsDQorQWRhbXMsIEhlcmJlcnQNCitBZGFtcywgSm9obiBPdHRpcw0KK0FkYW1zLCBKb2huIFdvbGNvdHQNCitBZGFtcywgUm9iZXJ0DQorQWRhbXMsIFdheW1hbg0KK0FkZGVyc29uLCBXYWx0ZXINCitBZGVzaGluYSwgQWdib25iaW9mZQ0KK0Fkb21laXQsIEdlb3JnZQ0KK0Fkc2hlYWQsIE1hcnkNCitBZWxzdCwgUGlldGVyIENvZWNrZSB2YW4NCitBZWxzdCwgV2lsbGVtIHZhbg0KK0FlcnRzZW4sIFBpZXRlcg0KK0FmZmVjdGVyLCBUaGUNCitBZ2FtLCBZYWFjb3YNCitBZ2FyLCBFaWxlZW4NCitBZ2Fzc2UsIEphY3F1ZXMtTGF1cmVudA0KK0FnZ2VyLCBLbnVkDQorQWdvc3Rpbm8gZGVpIE11c2kNCitBZ29zdGlubyBkaSBEdWNjaW8NCitBZ29zdGlubyBkaSBHaW92YW5uaQ0KK0Fnb3N0aW5vIFZlbmV6aWFubw0KK0FncmFzb3QgeSBKdWFuLCBKb2FxdcOtbg0KK0FpcsOyLCBNYXJpbw0KK0FpdmF6b3Zza3ksIEl2YW4NCitBam1vbmUsIEdpdXNlcHBlDQorQWthZ2F3YSwgS2luamkNCitBa2VsZXksIENhcmwgRXRoYW4NCitBa2VycywgQmVuamFtaW4gUGF1bA0KK0FsYmFuaSwgRnJhbmNlc2NvDQorQWxiYXJlbGxpLCBKYWNvcG8NCitBbGJlcmdoZXR0aSBJLCBHaW92YW5uaQ0KK0FsYmVycywgQW5uaQ0KK0FsYmVycywgSm9zZWYNCitBbGJlcnRpLCBDaGVydWJpbm8NCitBbGJlcnRpLCBHaW92YW5uaQ0KK0FsYmVydGksIExlb24gQmFwdGlzdGENCitBbGJlcnRpbmVsbGksIE1hcmlvdHRvDQorQWxicmlnaHQsIEl2YW4NCitBbGJyaXppbywgQ29ucmFkDQorQWxjYWluIFBhcnRlYXJyb3lvLCBBbGZyZWRvDQorQWxjb2xlYSwgQ2FybG9zIEdhcmPDrWENCitBbGRlZ3JldmVyLCBIZWlucmljaA0KK0FsZWNoaW5za3ksIFBpZXJyZQ0KK0FsZW4sIFdpbGxpYW0gVmFuDQorQWxleGFuZGVyLCBGcmFuY2lzDQorQWxleGFuZGVyLCBKb2huIFdoaXRlDQorQWxleGFuZGVyLCBXaWxsaWFtDQorQWxmYW5vLCBDYXJsbw0KK0FsZmFybywgQW5kcmV1DQorQWxnYXJkaSwgQWxlc3NhbmRybw0KK0FsaSBpYm4gTXVoaGFtYWQNCitBbGksIE1paHINCitBbGlrYXR1a3R1aywgVGhvbWFzaWUNCitBbGluYXJpLCBGcmF0ZWxsaQ0KK0FsaW5hcmksIEdpdXNlcHBlDQorQWxrZW4gU3IuLCBTYW11ZWwNCitBbGtlbiwgSGVucnkgVGhvbWFzDQorQWxsYW4sIERhdmlkDQorQWxsYW4sIFdpbGxpYW0NCitBbGxlZ3JhaW4sIEdhYnJpZWwNCitBbGxlbiwgQW5uZQ0KK0FsbGVuLCBBbm5lIEh1bnRpbmd0b24NCitBbGxlbiwgRG91Z2xhcw0KK0FsbGVuLCBHcmV0YQ0KK0FsbGVuLCBNYXJpb24gQm95ZA0KK0FsbGVuLCBNYXJ5IENlY2lsDQorQWxsZW4sIFRlcnJ5DQorQWxsaW5naGFtLCBIZWxlbg0KK0FsbGluZ3RvbiwgRWR3YXJkDQorQWxsb3JpLCBBbGVzc2FuZHJvDQorQWxsb3JpLCBDcmlzdG9mYW5vDQorQWxsc3RvbiwgV2FzaGluZ3Rvbg0KK0FsbWEtVGFkZW1hLCBMYXVyYQ0KK0FsbWEtVGFkZW1hLCBTaXIgTGF3cmVuY2UNCitBbG1laWRhIErDum5pb3IsIEpvc8OpIEZlcnJheiBkZQ0KK0FscGVybiwgUmFtaQ0KK0FscywgUGVkZXINCitBbHNsb290LCBEZW55cyB2YW4NCitBbHQsIEpha29iDQorQWx0LCBPdG1hcg0KK0FsdGRvcmZlciwgQWxicmVjaHQNCitBbHRpY2hpZXJvDQorQWx0c29uLCBBYnkNCitBbHZhIGRlIGxhIENhbmFsLCBSYW3Ds24NCitBbHZhcmV6IEJyYXZvLCBNYW51ZWwNCitBbHZhcmV6LCBNYWJlbA0KK0FtYWRlbywgR2lvdmFubmkgQW50b25pbw0KK0FtYW4tSmVhbiwgRWRtb25kLUZyYW7Dp29pcw0KK0FtYW50ZWEsIE5pY2hvbGFzDQorQW1hcmFsLCBBbnTDtG5pbyBIZW5yaXF1ZQ0KK0FtYXJhbCwgVGFyc2lsYSBkbw0KK0FtYXNpcyBQYWludGVyLCBUaGUNCitBbWF1cnktRHV2YWwsIEV1Z8OobmUtRW1tYW51ZWwNCitBbWJlcmdlciwgQ2hyaXN0b3BoDQorQW1lbm9mZiwgR3JlZ29yeQ0KK0FtaWNvbmksIEdpYWNvbW8NCitBbWl0dHUsIERhdmlkaWFsdWsgQWxhc2thDQorQW1tYW4sIEpvc3QNCitBbW1hbmF0aSwgQmFydG9sb21tZW8NCitBbiBIZQ0KK0FuY2hlciwgQW5uYQ0KK0FuY2hlciwgTWljaGFlbA0KK0FuY2hpLCBLYWlnZXRzdWRvDQorQW5kZXJlZ2csIFdlc2xleQ0KK0FuZGVyc2VuLCBNb2dlbnMNCitBbmRlcnNvbiwgQ2FybG9zDQorQW5kZXJzb24sIEdvcmRvbg0KK0FuZGVyc29uLCBKLg0KK0FuZGVyc29uLCBSdXRoIEEuDQorQW5kZXJzb24sIFNvcGhpZQ0KK0FuZGVyc29uLCBTdGFubGV5DQorQW5kb2tpZGVzDQorQW5kcmUsIENhcmwNCitBbmRyZWEgZGEgRmlyZW56ZQ0KK0FuZHJlYSBkZWwgQ2FzdGFnbm8NCitBbmRyZWEgZGVsIFNhcnRvDQorQW5kcmVhIGRpIEJhcnRvbG8NCitBbmRyZWEsIFpvYW4NCitBbmRyZWFuaSwgQW5kcmUNCitBbmRyZW90dGksIExpYmVybw0KK0FuZHLDqXMgZGUgTsOhamVyYQ0KK0FuZHJlc29uLCBDYXJsb3MNCitBbmRyZXdzLCBCZW5ueQ0KK0FuZHJld3MsIFN5YmlsDQorQW5kcmlldSwgUGllcnJlDQorQW5kcnVzLCBCYXJiYXJhDQorQW5nZWwsIEFicmFoYW0NCitBbmdlbGksIEdpdXNlcHBlDQorQW5nZWxpLCBIZWlucmljaCB2b24NCitBbmdlbGljbywgRnJhDQorQW5nZWxsaXMsIFBldGVyDQorQW5nbGFkYS1DYW1hcmFzYSwgSGVybWVuZWdpbGRvDQorQW5ndWlhbm8gVmFsYWRleiwgUmHDumwNCitBbmd1aWVyLCBGcmFuw6dvaXMNCitBbmd1aWVyLCBNaWNoZWwNCitBbmd1aXNzb2xhLCBMdWNpYQ0KK0FuZ3Vpc3NvbGEsIFNvZm9uaXNiYQ0KK0Fua2VyLCBBbGJlcnQNCitBbm5lc2xleSwgRGF2aWQNCitBbnF1ZXRpbiwgTG91aXMNCitBbnJhYWR0LCBQaWV0ZXIgdmFuDQorQW5zZWxtaSwgTWljaGVsYW5nZWxvDQorQW5zZWxtbyBkYSBDYW1waW9uZQ0KK0Fuc2VsbW8sIEdpb3Zhbm5pDQorQW5zaHV0eiwgVGhvbWFzDQorQW50ZWxhbWksIEJlbmVkZXR0bw0KK0FudGljbw0KK0FudGlnbmEsIEFsZXhhbmRyZQ0KK0FudGltZW5lcyBQYWludGVyDQorQW50b2zDrW5leiwgSm9zw6kgQ2xhdWRpbw0KK0FudG9uYWtvcywgU3RlcGhlbg0KK0FudG9uZWxsbyBkYSBNZXNzaW5hDQorQW50b25lbGxvIGRlIFNhbGliYQ0KK0FudG9uaW8gZGEgRmFicmlhbm8NCitBbnRyZWFzaWFuLCBHYXJvIFphcmVoDQorQW50cm9wb3YsIEFsZWtzZWkNCitBbnTDum5leiwgTmVtZXNpbw0KK0FudXN6a2lld2ljeiwgUmljaGFyZA0KK0Fvbm8sIEtyaXN0aW5lIFl1a2kNCitBcGFyaWNpbywgSm9zw6kNCitBcG9ub3ZpY2gsIEphbWVzDQorQXBwZWwsIEthcmVsDQorQXBwaWFuLCBBZG9scGhlDQorQXBwaWFuaSwgQW5kcmVhDQorQXBwbGVicm9vZywgSWRhDQorQXB0IHRoZSBFbGRlciwgVWxyaWNoDQorQXJhZ29uLCBKb3NlDQorQXJhaSwgSnVuaWNoaQ0KK0FyYWthd2EsIFNodXNha3UNCitBcmFsZGksIEFsZXNzYW5kcm8NCitBcmJ1cywgRGlhbmUNCitBcmNoZXIsIEphbWVzDQorQXJjaGlwZW5rbywgQWxleGFuZGVyDQorQXJjaHVsZXRhLCBGZWxpcGUNCitBcmNpbWJvbGRvLCBHaXVzZXBwZQ0KK0FyZGVuLCBSb3kNCitBcmRvbiwgTW9yZGVjYWkNCitBcmVsbGFubywgSnVhbiBkZQ0KK0FyZW50c3ouLCBBcmVudA0KK0FyZ3Vub3YsIEl2YW4gUGV0cm92aWNoDQorQXJpa2hhLCBBdmlnZG9yDQorQXJpc21hbiwgTWFyc2hhbGwNCitBcm1hamFuaSwgU2lhaA0KK0FybWFuDQorQXJtZmllbGQsIE1heHdlbGwNCitBcm1pdGFnZSwgRWR3YXJkDQorQXJtaXRhZ2UsIEtlbm5ldGgNCitBcm1zLCBKb2huIFRheWxvcg0KK0FybXN0ZWFkLCBIZW5yeSBIdWdoDQorQXJtc3Ryb25nLCBEYXZpZCBNYWl0bGFuZA0KK0FybXN0cm9uZywgSWFuDQorQXJtc3Ryb25nLCBKb2huDQorQXJtc3Ryb25nLCBXaWxsaWFtDQorQXJuYWxkLCBHZW9yZ2UNCitBcm5lc29uLCBSb2JlcnQNCitBcm5vbGQsIEFkZW4NCitBcm5vbGRpLCBBbGJlcnRvDQorQXJub2xmbyBkaSBDYW1iaW8NCitBcm5vdWxkLCBKZWFuDQorQXJwLCBKZWFuDQorQXJyb3lvLCBFZHVhcmRvDQorQXJ0IGFuZCBMYW5ndWFnZQ0KK0FydGF1ZCwgV2lsbGlhbQ0KK0FydHNjaHdhZ2VyLCBSaWNoYXJkDQorQXJ2aWxsYW5kDQorQXNhbSwgRWdpZCBRdWlyaW4NCitBc2FtLCBLb3NtYXMgRGFtaWFuDQorQXNoLCBTYW0NCitBc2hlciwgTWljaGFlbA0KK0FzaGV2YWssIEtlbm9qdWFrDQorQXNoZXZhaywgVG9tbXkNCitBc2hvb25hLCBLYWthDQorQXNob29uYSwgS2lhd2FrDQorQXNob29uYSwgUGl0c2VvbGFrDQorQXNodG9uLCBKdWxpYW4NCitBc2lucyBSb2RyaWd1ZXosIEVsZW5hDQorQXNwZXJ0aW5pLCBBbWljbw0KK0FzcGV0dGksIFRpemlhbm8NCitBc3NhZWwsIFN0ZXZlbg0KK0Fzc2VseW4sIEphbg0KK0Fzc2VyZXRvLCBHaW9hY2NoaW5vDQorQXNzbGVyLCBGZWRlcmljbw0KK0FzdCwgQmFsdGhhc2FyIHZhbiBkZXINCitBc3RlYXMNCitBc3RydWMsIFphY2hhcmllDQorQXRjaGVhbGFrLCBEYXZpZQ0KK0F0Z2V0LCBFdWfDqG5lDQorQXRraW5zb24sIEpvaG4gQXVndXN0dXMNCitBdGtpbnNvbiwgVy5FLg0KK0F0a2lzb24sIEdlb3JnZSBBLg0KK0F0bCwgRHIuDQorQXR0YXZhbnRlIERlZ2xpIEF0dGF2YW50aQ0KK0F1ZHVib24sIEpvaG4gSmFtZXMNCitBdWR1Ym9uLCBKb2huIFdvb2Rob3VzZQ0KK0F1ZXJiYWNoLCBGcmFuaw0KK0F1ZXJiYWNoLUxldnksIFdpbGxpYW0NCitBdWd1aW4sIExvdWlzLUF1Z3VzdGluDQorQXVndXN0ZSwgUm9iZXJ0LUpvc2VwaA0KK0F1bHQsIEdlb3JnZQ0KK0F1bW9uaWVyLCBKYW1lcw0KK0F1c3RpbiwgRGFycmVsDQorQXV0aW8sIExlbGENCitBdXRpbywgUnVkeQ0KK0F2ZWQsIEphY3F1ZXMtQW5kcsOpLUpvc2VwaA0KK0F2ZWRvbiwgUmljaGFyZA0KK0F2ZWxsaSwgRnJhbmNlc2NvIFhhbnRvDQorQXZlcmNhbXAsIEhlbmRyaWNrDQorQXZlcnksIE1pbHRvbg0KK0F3YWx0LCBFbGl6YWJldGgNCitBeWxlc2ZvcmQsIEhlbmVhZ2UgRmluY2gsIEZpZnRoIEVhcmwgb2YNCitBeWxlc2ZvcmQsIEhlbmVhZ2UgRmluY2gsIEZvdXJ0aCBFYXJsIG9mDQorQXktTw0KK0F5cnRvbiwgTWljaGFlbA0KK0F6YWNldGEsIEx1aXMgQ3J1eg0KK0JhYnVyZW4sIERpcmNrIHZhbg0KK0JhY2NoaWFjY2EsIEZyYW5jZXNjbw0KK0JhY2NpYXJlbGxpLCBNYXJjZWxsbw0KK0JhY2hhciwgSm9zZXBoDQorQmFjaGVyLCBPdHRvIEhlbnJ5DQorQmFjaHJvZHQsIFNhcmFoDQorQmFjaWNjaW8sIElsDQorQmFja2VyLCBKYWNvYiBBZHJpYWVuc3ouDQorQmFja2h1eXNlbiwgTHVkb2xmDQorQmFjb24sIEZyYW5jaXMNCitCYWNvbiwgSGVucnkNCitCYWNvbiwgSm9obiBIZW5yeSBGLg0KK0JhY29uLCBQZWdneQ0KK0JhY29uLCBTaXIgTmF0aGFuaWVsDQorQmFkYSBTaGFucmVuDQorQmFkYWxvY2NoaW8sIFNpc3RvDQorQmFkZ2VyLCBKb3NlcGgNCitCYWVjaGxlciwgRG9uYWxkDQorQmFlZGVyLCBKb2huDQorQmFlbiwgSmFuIGRlDQorQmFlciwgR2VvcmdlDQorQmFnZywgSGVucnkgSG93YXJkDQorQmFnbGlvbmUsIEdpb3Zhbm5pDQorQmFnbm9saSwgTWFyY28NCitCYWlpdHN1LCBZYW1hbW90bw0KK0JhaWxleSwgUm9nZXINCitCYWlsZXksIFdpbGxpYW0NCitCYWlsbGFpcmfDqSwgRnJhbsOnb2lzDQorQmFpbGx5LCBEYXZpZA0KK0JhaXplcm1hbiwgU2F1bA0KK0Jha2VyLCBXaWxsaWFtIEJsaXNzDQorQmFrc3QsIExlb24NCitCYWxkZXNzYXJpLCBKb2huDQorQmFsZG92aW5ldHRpLCBBbGVzc2lvDQorQmFsZHJpZGdlLCBDeXJ1cyBMZVJveQ0KK0JhbGR1bmcgR3JpZW4sIEhhbnMNCitCYWxkd2luLCBEb3VnbGFzDQorQmFsZW4sIEhlbmRyaWNrIHZhbg0KK0JhbGVzdHJhLCBBbnRvbmlvDQorQmFsbCwgQWxpY2UgV29ydGhpbmd0b24NCitCYWxsLCBUaG9tYXMNCitCYWxsYSwgR2lhY29tbw0KK0JhbGxpbmcsIE9sZSBQZXRlciBIYW5zZW4NCitCYWxsb3R0YSwgUGV0ZQ0KK0JhbG1lcywgSm9zw6kNCitCYWxzb24sIFJhbHBoDQorQmFsdGh1cw0KK0JhbHRpbW9yZSBQYWludGVyLCBUaGUNCitCYWx6YWMsIEFsYWluDQorQmFsemFjLCBFZG1lLVBpZXJyZQ0KK0JhbWEsIEphbWVzDQorQmFtYmFpYQ0KK0JhbmRlaXJhLCBBbnTDtG5pbw0KK0JhbmRpbmVsbGksIEJhY2Npbw0KK0JhbmRpbmksIEdpb3Zhbm5pDQorQmFua3MsIE1lbA0KK0Jhbm5lcm1hbiwgRnJhbmNlcyBNLiBKb25lcw0KK0Jhbm5pc3RlciwgRWR3YXJkIE0uDQorQmFwc3QsIEV2cmFyZA0KK0JhcHRpc3RhLCBNYXJjaWFubw0KK0JhcmFiw6FzLCBNaWtsw7NzDQorQmFyYWssIFdpbGxpYW0NCitCYXJhbmVrLCBGcmlkYQ0KK0JhcmFub2ZmLVJvc3NpbmUsIFdsYWRpbWlyDQorQmFyYmUNCitCYXJiZXJpLCBHaXVzZXBwZQ0KK0JhcmJldCwgSmVhbg0KK0JhcmJvdXIsIENhcmwNCitCYXJjaHVzLCBFbGl6YSBSb3Nhbm5hDQorQmFyZCwgSmFtZXMNCitCYXJkLCBKb2huDQorQmFyZW5nZXIsIEphbWVzDQorQmFyZ3VlLCBDaGFybGVzDQorQmFyaXNhbmksIFJlbmF0bw0KK0JhcmlzYW5vIGRhIFRyYW5pDQorQmFya2VyIG9mIEJhdGgsIFRob21hcw0KK0JhcmtlciwgQWxiZXJ0IFdpbnNsb3cNCitCYXJrZXIsIENsaXZlDQorQmFya2VyLCBNYXJnYXJldA0KK0JhcmtlciwgV3JpZ2h0DQorQmFybGFjaCwgRXJuc3QNCitCYXJsb3csIEZyYW5jaXMNCitCYXJuYSBkYSBTaWVuYQ0KK0Jhcm5hcmQsIFJldi4gV2lsbGlhbSBIZW5yeQ0KK0Jhcm5lcywgRXJuaWUNCitCYXJuZXQsIFdpbGwNCitCYXJuZXksIE1hdHRoZXcNCitCYXJuc2xleSwgSi5NLg0KK0Jhcm9jY2ksIEZlZGVyaWNvDQorQmFycmFkYXMsIFJhZmFlbA0KK0JhcnJhdWQsIEhlbnJ5DQorQmFycmF1ZCwgV2lsbGlhbQ0KK0JhcnJldCBKci4sIEdlb3JnZQ0KK0JhcnJldCBTci4sIEdlb3JnZQ0KK0JhcnJldHQsIEJpbGwNCitCYXJyaWFzLCBMb3Vpcy1Fcm5lc3QNCitCYXJyaW9zLCBHcmFjaWENCitCYXJyb24sIEh1Z2gNCitCYXJyb24sIFJvbg0KK0JhcnJvdywgSm9zZXBoIENoYXJsZXMNCitCYXJyeSwgQW5uZSBNZXJlZGl0aA0KK0JhcnJ5LCBKYW1lcw0KK0JhcnJ5LCBXaWxsaWFtIEdlcmFyZA0KK0JhcnNvdHRpLCBIw6lyY3VsZXMNCitCYXJ0aGVsLCBNZWxjaGlvcnJlDQorQmFydGhvbGRpLCBGcsOpZMOpcmljLUF1Z3VzdGUNCitCYXJ0aG9sb21lDQorQmFydGxlLCBTYXJhIE5vcndvb2QNCitCYXJ0bGV0dCwgQm8NCitCYXJ0bGV0dCwgSmVubmlmZXINCitCYXJ0b2xpbmksIExvcmVuem8NCitCYXJ0b2xvIGRpIEZyZWRpDQorQmFydG9sb21lbyBkYSBCcmVzY2lhDQorQmFydG9sb21lbyBkaSBHaW92YW5uaQ0KK0JhcnRvbG9tZW8gVmVuZXRvDQorQmFydG9sb21tZW8sIEZyYQ0KK0JhcnRvbG96emksIEZyYW5jZXNjbw0KK0JhcnksIEhlbmRyaWsNCitCYXJ5ZSwgQW50b2luZS1Mb3Vpcw0KK0Jhc2FpdGksIE1hcmNvDQorQmFzYWxkZWxsYSwgTWlya28NCitCYXNhbiwgUGllcnJlIEZyYW7Dp29pcw0KK0Jhc2NoZW5pcywgRXZhcmlzdG8NCitCYXNlbGl0eiwgR2VvcmcNCitCYXNoa2lydHNlZmYsIE1hcmlhDQorQmFzaXJlLCBKYW1lcw0KK0Jhc2tpbiwgTGVvbmFyZA0KK0Jhc3F1aWF0LCBKZWFuLU1pY2hlbA0KK0Jhc3Nhbm8sIEZyYW5jZXNjbw0KK0Jhc3Nhbm8sIEphY29wbw0KK0Jhc3Nhbm8sIExlYW5kcm8NCitCYXNzZW4sIEJhcnRob2xvbWV1cyB2YW4NCitCYXN0aWFuaSwgTGF6emFybw0KK0Jhc3RpYW5pbmksIEdpb3Zhbm5pDQorQmFzdGllbi1MZXBhZ2UsIEp1bGVzDQorQmF0ZW1hbiAxODQyLTE5MjIsIFJvYmVydA0KK0JhdGVtYW4sIEphbWVzDQorQmF0ZW1hbiwgUm9iZXJ0DQorQmF0ZXMsIERhdmlkDQorQmF0ZXMsIEhhcnJ5DQorQmF0ZXMsIE1heHdlbGwNCitCYXRvbmksIFBvbXBlbw0KK0JhdWRvdWluLCBQaWVycmUtQW50b2luZQ0KK0JhdWRyeSwgUGF1bA0KK0JhdWdpbiwgTHViaW4NCitCYXVtLCBDaGFybGVzDQorQmF1bWFuLCBMZWlsYSBULg0KK0JhdW1hbm4sIEd1c3RhdmUNCitCYXVtYW5uLCBLYXJsDQorQmF1bWVpc3RlciwgV2lsbGkNCitCYXVtZ2FydGVuLCBMb3RoYXINCitCYXVtZ2FydG5lciwgUGV0ZXINCitCYXdkZW4sIEVkd2FyZA0KK0JheHRlciwgR2VvcmdlDQorQmF4dGVyLCBUaG9tYXMgVGVubmFudA0KK0JheWV1IHkgU3Viw61hcywgRnJhbmNpc2NvDQorQmF5ZXUsIFJhbW9uDQorQmF6aWNhbHV2YSwgRXJjb2xlDQorQmF6aWxsZSwgRnLDqWTDqXJpYw0KK0JhemlvdGVzLCBXaWxsaWFtDQorQmF6emFybywgRXJuZXN0bw0KK0JlYWNoLCBUaG9tYXMNCitCZWFsLCBHaWZmb3JkDQorQmVhbCwgSmFjaw0KK0JlYWxlLCBNYXJ5DQorQmVhbGwtU21pdGgsIExhd3JlbmNlDQorQmVhbHMsIEplc3NlIFRhcmJveA0KK0JlYW0sIENhcmwNCitCZWFtLCBNYXJrDQorQmVhbiwgQ2Fyb2xpbmUgVmFuIEhvb2sNCitCZWFyZCwgQWRlbGlhIEJlbGxlDQorQmVhcmQsIFJpY2hhcmQNCitCZWFyZCwgV2lsbGlhbSBIb2xicm9vaw0KK0JlYXJkZW4sIFJvbWFyZQ0KK0JlYXJkc2xleSBMaW1uZXIsIFRoZQ0KK0JlYXJkc2xleSwgQXVicmV5DQorQmVhcmR5LCBKYWNrc29uDQorQmVhcmUsIEdlb3JnZQ0KK0JlYXNsZXksIEJydWNlDQorQmVhdG8sIEZlbGljZSBBLg0KK0JlYXR0eSwgSi5XLg0KK0JlYXVtb250LCBTaXIgR2VvcmdlIEhvd2xhbmQNCitCZWF1bmV2ZXUsIEFuZHLDqQ0KK0JlYXV4LCBDZWNpbGlhDQorQmVjY2FmdW1pLCBEb21lbmljbw0KK0JlY2hlciwgQmVybmhhcmQNCitCZWNoZXIsIEhpbGxhDQorQmVjaHRlbCwgTWVybGluDQorQmVjaHRsZSwgUm9iZXJ0DQorQmVjaywgTGVvbmhhcmQNCitCZWNrZXIsIEZlcmRpbmFuZA0KK0JlY2tlciwgRnJlZA0KK0JlY2tldHQsIENsYXJpY2UNCitCZWNrZXR0LCBGcmFuY2lzIEEuDQorQmVjay1GcmllZG1hbiwgVG92YQ0KK0JlY2ttYW5uLCBNYXgNCitCZWNrd2l0aCwgSmFtZXMgQ2Fycm9sbA0KK0JlZGZvcmQsIEZyYW5jaXMNCitCZWRpYSwgSm9zw6kNCitCZWR3YXNoLCBSaWNoYXJkDQorQmVlY2hleSwgU2lyIFdpbGxpYW0NCitCZWVtLCBPbGl2ZQ0KK0JlZXJib2htLCBTaXIgTWF4DQorQmVlcnMsIEp1bGllIEhhcnQNCitCZWVyc3RyYXRlbiwgSmFuIEFicmFoYW1zei4NCitCZWVydCB0aGUgRWxkZXIsIE9zaWFzDQorQmVnYSwgQ29ybmVsaXMNCitCZWdheSwgSGFycmlzb24NCitCZWdleW4sIEFicmFoYW0NCitCZWhhbSwgQmFydGhlbA0KK0JlaGFtLCBIYW5zIFNlYmFsZA0KK0JlaGxlcywgRWRtdW5kDQorQmVobmVzLCBXaWxsaWFtDQorQmVobmtlLCBMZWlnaA0KK0JlbGJlbGxvIGRhIFBhdmlhDQorQmVsbCwgQ2VjaWwgQy4NCitCZWxsLCBDaGFybGVzDQorQmVsbCwgRWR3YXJkIEEuDQorQmVsbCwgR2VvcmdlDQorQmVsbCwgSGFycmlldA0KK0JlbGwsIEpvaG4gWmVwaGFuaWFoDQorQmVsbCwgS2V2aW4NCitCZWxsLCBMYXJyeQ0KK0JlbGwsIFBldGVyDQorQmVsbCwgVHJldm9yDQorQmVsbCwgVmFuZXNzYQ0KK0JlbGxhbmfDqSwgSGlwcG9seXRlDQorQmVsbGFuZ2UsIEphY3F1ZXMNCitCZWxsYW5vLCBCYXJ0b2xvbWVvDQorQmVsbGUsIEFsZXhpcyBTaW1vbg0KK0JlbGxlY2hvc2UsIEhlbnJpDQorQmVsbGVnYW1iZSwgSmVhbg0KK0JlbGxldHRlLCBKZWFuDQorQmVsbGksIFZhbGVyaW8NCitCZWxsaW5naGFtLVNtaXRoLCBFbGlub3INCitCZWxsaW5pLCBHZW50aWxlDQorQmVsbGluaSwgR2lvdmFubmkNCitCZWxsaW5pLCBKYWNvcG8NCitCZWxsbWVyLCBIYW5zDQorQmVsbG9ndWV0LCBBLg0KK0JlbGxvdHRvLCBCZXJuYXJkbw0KK0JlbGxvd3MsIEFsYmVydCBGaXRjaA0KK0JlbGxvd3MsIEdlb3JnZSBXZXNsZXkNCitCZWxsLVNtaXRoLCBGLk0uDQorQmVsbHVjY2ksIEFudG9uaW8NCitCZW5hZ2xpbywgRnJhbmNlc2NvDQorQmVuYXplY2gsIFBldGVyIFBhdWwNCitCZW5icmlkZ2UsIEhlbnJ5DQorQmVuZHosIFdpbGhlbG0NCitCZW5kenNhLCBTeWx2aWENCitCZW5lZGV0dG8gZGEgTWFpYW5vDQorQmVuZWRldHRvIGRhIFJvdmV6emFubw0KK0JlbmdsaXMsIEx5bmRhDQorQmVubiwgQmVuDQorQmVubmV0dCwgSm9obg0KK0Jlbm5ldHQsIFJhaW5leQ0KK0Jlbm5ldHQsIFdpbGxpYW0gSmFtZXMNCitCZW5uZXksIFJvYmVydA0KK0Jlbm9pcywgQWxla3NhbmRyDQorQmVub2lzLCBOYWRpYQ0KK0Jlbm9pc3QsIE1hcmllLUd1aWxsZW1pbmUNCitCZW5zb24sIEFtYnJvc2l1cw0KK0JlbnNvbiwgRnJhbmsgV2VzdG9uDQorQmVuc29uLCBMZXNsaWUgTGFuZ2lsbGUNCitCZW50aGFtLCBEb3VnbGFzIFdheW5lDQorQmVudG9uLCBGbGV0Y2hlcg0KK0JlbnRvbiwgVGhvbWFzIEhhcnQNCitCZW52ZW51dG8gZGkgR2lvdmFubmkNCitCZW56aWdlciwgQXVndXN0DQorQmVuem9uaSwgR2lvdmFubmkgTWFyaWENCitCw6lyYXVkLCBKZWFuDQorQmVyY2hlbSwgQ2xhZXMNCitCZXJjaGVtLCBOaWNvbGFlcw0KK0JlcmNraGV5ZGUsIEdlcnJpdCBBZHJpYWVuc3ouDQorQmVyY2toZXlkZSwgSm9iDQorQmVyZGFubiwgRWxpemFiZXRoDQorQmVyZywgQWRyaWFuDQorQmVyZ2VyLCBKYWNxdWVzDQorQmVyZ2hhc2gsIE1hcmsNCitCZXJnaGUsIENocmlzdG9mZmVsIHZhbiBkZW4NCitCZXJnbcO8bGxlciwgSm9oYW5uIEdlb3JnDQorQmVyZ25lciwgWW9zbA0KK0JlcmdvZ25vbmUNCitCZXJrZWxleSwgUmV2LiBDLkouUi4NCitCZXJrbWFuLCBDaHJpc3RpbmUNCitCZXJsYW50LCBUb255DQorQmVybGluIFBhaW50ZXIsIFRoZQ0KK0JlcmxpbmdoaWVyaSwgQm9uYXZlbnR1cmENCitCZXJtYW4sIEV1Z2VuZQ0KK0Jlcm1lam8sIEJhcnRvbG9tw6kNCitCZXJuYXJkLCBFbWlsZQ0KK0Jlcm5hcmRpLCBHaW92YW5uaQ0KK0Jlcm5hdCwgTWFydGluDQorQmVybmluZ2hhdXMsIE9zY2FyIEVkbXVuZA0KK0Jlcm5pbmksIEdpYW5sb3JlbnpvDQorQmVybmluaSwgUGlldHJvDQorQmVybnN0ZWluLCBUaGVyZXNhIEZlcmJlcg0KK0LDqXJvdWQsIExvdWlzDQorQmVycnVndWV0ZSwgQWxvbnNvDQorQmVycnVndWV0ZSwgUGVkcm8NCitCZXJyeSwgRGF2aWQNCitCZXJzaGFkLCBIZWxlbg0KK0JlcnRpbiwgw4lkb3VhcmQNCitCZXJ0b2xkbyBkaSBHaW92YW5uaQ0KK0JlcnRyYW5kLCBSYXkNCitCZXJ0cmFuZCwgVmluY2VudA0KK0JlcnR1Y2NpLCBHaW92YW5uaSBCYXR0aXN0YQ0KK0Jlc25hcmQsIEFsYmVydA0KK0Jlc3QgTWF1Z2FyZCwgQWRvbGZvDQorQmV0dGVsaGVpbSwgSm9sYW4gR3Jvc3MNCitCZXR0ZXJhLCBCYXJ0b2xvbWVvDQorQmV0dGVzLCBKb2huDQorQmV0dHMsIExvdWlzDQorQmV1Y2tlbGFlciwgSm9hY2hpbQ0KK0JldWcsIExvcm5lDQorQmV1eXMsIEpvc2VwaA0KK0JldmFuLCBSb2JlcnQNCitCZXZhbiwgVG9ueQ0KK0JleWVyLCBKYW4gZGUNCitCZXllcmVuLCBBYnJhaGFtIEhlbmRyaWNrei4gdmFuDQorQmlhZ2lvIGQnQW50b25pbyBkYSBGaXJlbnplDQorQmlhbmNoaSwgRG9tZW5pY28NCitCaWFyZCwgUGllcnJlDQorQmliaWVuYSwgRmVyZGluYW5kbyBHYWxsaQ0KK0JpYmllbmEsIEZyYW5jZXNjbyBHYWxsaQ0KK0JpYmllbmEsIEdpdXNlcHBlIEdhbGxpDQorQmlja25lbGwsIEZyYW5rDQorQmlkZGxlLCBHZW9yZ2UNCitCaWR1aW5vDQorQmllZGVybWFuLCBDaGFybGVzDQorQmllZ2FzLCBCb2xlc2xhcw0KK0JpZW5uYWlzLCBNYXJ0aW4tR3VpbGxhdW1lDQorQmllcnN0YWR0LCBBbGJlcnQNCitCaWdhcmVsbGksIEd1aWRvDQorQmlnZ2VycywgSm9obg0KK0JpZ2dlcnN0YWZmLCBNeXJhDQorQmlnb3QsIFRyb3BoaW1lDQorQmlndW0sIE1hcnRpbg0KK0JpamxlcnQsIEphbiB2YW4NCitCaWxpbnNrYSwgQW5uYQ0KK0JpbGl2ZXJ0LCBHaW92YW5uaQ0KK0JpbGxlLCBFamxlcg0KK0JpbmNrLCBKYWNvYg0KK0JpbmdoYW0sIEdlb3JnZSBDYWxlYg0KK0Jpbm5pZSwgUGF1bA0KK0JpcmNoLCBDaGFybGVzIEJlbGwNCitCaXJjaCwgVGhvbWFzDQorQmlyY2gsIFdpbGxpYW0gUnVzc2VsbA0KK0JpcmxleSwgU2lyIE9zd2FsZCBIb3JuYnkgSm9zZXBoDQorQmlybmJhdW0sIERhcmENCitCaXJvbGxpLCBSZW5hdG8NCitCaXNjaG9mZiwgRWxtZXINCitCaXNjaG9mZiwgRnJhbnoNCitCaXNob3AsIElzYWJlbA0KK0Jpc29uLCBHaXVzZXBwZSBCZXJuYXJkaW5vDQorQmlzc2Nob3AsIENvcm5lbGlzDQorQmlzc2llciwgSnVsaXVzDQorQmlzc2nDqHJlLCBSb2dlcg0KK0Jpc3NvbG8sIFBpZXIgRnJhbmNlc2NvDQorQmlzdG9sZmksIExlb25hcmRvDQorQml0bmVyLCBSaG9uYQ0KK0JsYWFzLCBFdWdlbmUgZGUNCitCbGFjaywgSGVsZW5lDQorQmxhY2ssIE9saXZlIFBhcmtlcg0KK0JsYWNrYWRkZXIsIEVsaXphYmV0aA0KK0JsYWNrYnVybiwgRWQNCitCbGFja2J1cm4sIEpvc2VwaA0KK0JsYWNrbWFuLCBDaGFybGVzDQorQmxhY2t3ZWxsLCBUb20NCitCbGFja3dvb2QsIERhdmlkDQorQmxhZGVuLCBSb25hbGQNCitCbGFnZywgRGVubmlzDQorQmxhaXItTGVpZ2h0b24sIEVkbXVuZA0KK0JsYWlzLCBOb3JtYW5kDQorQmxha2UsIEppbQ0KK0JsYWtlLCBQZXRlcg0KK0JsYWtlLCBXaWxsaWFtDQorQmxha2Vsb2NrLCBNYXJpYW4NCitCbGFrZWxvY2ssIFJhbHBoIEFsYmVydA0KK0JsYW1leSwgTm9ybWFuDQorQmxhbXBpZWQsIEVkbXVuZA0KK0JsYW5jaGFyZCwgSmFjcXVlcw0KK0JsYW5jaGFyZCwgTWFyw61hDQorQmxhbmNoZSwgSmFjcXVlcy1FbWlsZQ0KK0JsYW5jaGV0LCBMb3Vpcy1HYWJyaWVsDQorQmxhbmQsIEJlYXRyaWNlDQorQmxhcmVuYmVyZ2hlLCBMb3VpcyBOaWNvbGFzIHZhbg0KK0JsYXNoZmllbGQsIEVkd2luIEhvd2xhbmQNCitCbGF1dmVsdCwgQ2hhcmxlcyBGLg0KK0JsZWNoZW4sIENhcmwNCitCbGVja25lciwgUm9zcw0KK0JsZXJ5LCBFdWdlbmUNCitCbGlzcywgRG91Z2xhcyBQZXJjeQ0KK0Jsb2NoLCBBbGJlcnQNCitCbG9jaCwgTHVjaWVubmUNCitCbG9jaCwgTWFydGluDQorQmxvY2ssIEJlbmphbWluDQorQmxvZW1hZXJ0LCBBYnJhaGFtDQorQmxvZW1lbiwgSmFuIEZyYW5zIHZhbg0KK0Jsb25kZWwsIE1lcnJ5LUpvc2VwaA0KK0Jsb29tLCBCYXJiYXJhDQorQmxvdywgU2FuZHJhDQorQmx1ZSBFYWdsZSwgQWNlZQ0KK0JsdWVtbmVyLCBPc2Nhcg0KK0JsdWhtLCBOb3JtYW4NCitCbHVobSwgT3NjYXINCitCbHVtLCBSb2JlcnQgRnJlZGVyaWNrDQorQmx1bWUsIFBldGVyDQorQmx1bWVuc2NoZWluLCBFcm5lc3QgTGVvbmFyZA0KK0JseXRoZSwgRGF2aWQgR2lsbW91cg0KK0JvY2NhY2Npbm8sIEJvY2NhY2Npbw0KK0JvY2Npb25pLCBVbWJlcnRvDQorQm9jaG5lciwgTWVsDQorQsO2Y2tsaW4sIEFybm9sZA0KK0JvY2tzdG9yZmZlciwgQ2hyaXN0b2ZmZWwNCitCb2RpbmksIEZsb3JpYW5vDQorQm9kbWVyLCBLYXJsDQorQm9lY2tob3JzdCwgSm9oYW5uDQorQm9laG0sIFNpciBKb3NlcGggRWRnYXINCitCb2VobWUsIEthcmwNCitCb2VsLCBQaWV0ZXINCitCb2V0dGksIEFsaWdoaWVybyBlDQorQm9nZ3MsIEZyYW5rIE0uDQorQm9naG9zc2lhbiwgU2t1bmRlcg0KK0JvZ2xlLCBKb2huDQorQm9obCwgV2FsdGVyIEUuDQorQm9ocm9kLCBBYXJvbg0KK0JvaWxseSwgTG91aXMtTMOpb3BvbGQNCitCb2lzc2VhdSwgQWxmcmVkDQorQm9pc3NlbGllciwgRsOpbGl4DQorQm9pc3NpZXUsIEplYW4tSmFjcXVlcyBkZQ0KK0JvbCwgRmVyZGluYW5kDQorQm9sLCBIYW5zDQorQm9sZGluaSwgR2lvdmFubmkNCitCb2xkdXF1ZSwgUGVkcm8gZGUNCitCb2xvdG93c2t5LCBJbHlhDQorQm9sdGFuc2tpLCBDaHJpc3RpYW4NCitCb2x0cmFmZmlvLCBHaW92YW5uaSBBbnRvbmlvDQorQm9tYmVyZywgRGF2aWQNCitCb24sIEJhcnRvbG9tZW8NCitCb24sIEdpb3Zhbm5pDQorQm9uYW5ubyBkYSBQaXNhDQorQm9uYXNvbmUsIEdpdWxpbyBkaSBBbnRvbmlvDQorQm9uYXp6YSwgQW50b25pbw0KK0JvbmNpbmVsbGksIEV2YXJpc3RvDQorQm9uZCwgQ2hhcmxlcyBWLg0KK0JvbmQsIE1hcmlvbg0KK0JvbmUsIEhlbnJ5DQorQm9uZSwgU2lyIE11aXJoZWFkDQorQm9uZSwgU3RlcGhlbg0KK0JvbmhldXIsIEF1Z3VzdGUNCitCb25oZXVyLCBSb3NhDQorQm9uaW5ndG9uLCBSaWNoYXJkIFBhcmtlcw0KK0JvbmlubyBkYSBDYW1waW9uZQ0KK0Jvbm5hcmQsIFBpZXJyZQ0KK0Jvbm5hdCwgTMOpb24NCitCb25uYXVkLCBQaWVycmUNCitCb25uZWZvbmQsIEplYW4tQ2xhdWRlDQorQm9ubmVsbCwgV2lsbGlhbQ0KK0Jvbm5lciwgSm9uYXRoYW4NCitCb25uZXQsIExvdWlzLU1hcmluDQorQm9uc2lnbm9yaSwgRnJhbmNlc2NvDQorQm9udGVjb3UsIExlZQ0KK0JvbnZpbiwgRnJhbsOnb2lzDQorQm9vdGgsIENhbWVyb24NCitCb3JjaHQsIEhlbmRyaWsgdmFuIGRlcg0KK0JvcmNodCwgUGlldGVyIFZhbiBEZXINCitCb3Jkb25lLCBQYXJpcw0KK0JvcmRvbmksIEZyYW5jZXNjbw0KK0JvcmR1YXMsIFBhdWwtw4ltaWxlDQorQm9yZWFkIFBhaW50ZXIsIFRoZQ0KK0JvcmVpbiwgRWR3YXJkDQorQm9yZXMgTG9wZXosIEZyYW5jaXNjbw0KK0JvcmcsIENhcmwgT3NjYXINCitCb3JnZXMsIFBlZHJvIEFsZXhhbmRyaW5vDQorQm9yZ2V0LCBBdWd1c3RlDQorQm9yZ2lhbm5pLCBPcmF6aW8NCitCb3JnbHVtLCBTb2xvbiBILg0KK0Jvcmdvw7FhLCBKdWFuIGRlDQorQm9yb2Zza3ksIEpvbmF0aGFuDQorQm9yb3Zpa292c2tpaSwgVmxhZGltaXIgTHVraWNoDQorQm9ycmFzc8OhLCBMdcOtcw0KK0JvcnJlZ2FhcmQsIEVkdWFyZA0KK0JvcnJvLCBMdWlnaQ0KK0JvcnJvbWluaSwgRnJhbmNlc2NvDQorQm9zYm9vbSwgSm9oYW5uZXMNCitCb3NjaCwgSGllcm9ueW11cw0KK0Jvc2NvbGksIEFuZHJlYQ0KK0Jvc2hpZXIsIERlcmVrDQorQm9zaW8sIEZyYW7Dp29pcy1Kb3NlcGgNCitCb3NzLCBIb21lcg0KK0Jvc3NjaGFlcnQgdGhlIEVsZGVyLCBBbWJyb3NpdXMNCitCb3NzY2hlLCBBZXJ0IHZhbiBkZW4NCitCb3NzZSwgQWJyYWhhbQ0KK0JvdGVybywgRmVybmFuZG8NCitCb3RoLCBBbmRyaWVzDQorQm90aCwgSmFuIERpcmtzeg0KK0JvdGtlLCBKZXNzaWUgQXJtcw0KK0JvdHRpY2VsbGksIFNhbmRybw0KK0JvdHRpY2luaSwgRnJhbmNlc2NvDQorQm91Y2hhcmRvbiwgRWRtw6kNCitCb3VjaMOpLCBMb3Vpcw0KK0JvdWNoZXIsIEZyYW7Dp29pcw0KK0JvdWRld3lucywgQWRyaWFlbiBGcmFucw0KK0JvdWRpbiwgRXVnw6huZQ0KK0JvdWdoLCBTYW11ZWwNCitCb3VnaHRvbiwgR2VvcmdlIEhlbnJ5DQorQm91Z3VlcmVhdSwgQWRvbHBoZSBXaWxsaWFtDQorQm91Z3VlcmVhdSwgRWxpemFiZXRoIEdhcmRuZXINCitCb3VsYW5nZXIsIEd1c3RhdmUNCitCb3VsbGUsIEFuZHLDqS1DaGFybGVzDQorQm91bGzDqWUsIMOJdGllbm5lLUxvdWlzDQorQm91bG9nbmUsIFZhbGVudGluIGRlDQorQm91cmRlbGxlLCBFbWlsZSBBbnRvaW5lDQorQm91cmRvbiwgU8OpYmFzdGllbg0KK0JvdXJnZW9pcywgTG91aXNlDQorQm91cmtlLVdoaXRlLCBNYXJnYXJldA0KK0JvdXJuZSwgSmFtZXMNCitCb3Vyc3NlLCBFc2FpYXMNCitCb3Vzc2FyZCwgRGFuYQ0KK0JvdXRldCBkZSBNb252ZWwsIExvdWlzLU1hdXJpY2UNCitCb3V0aWJvbm5lLCBDaGFybGVzIEVkd2FyZA0KK0JvdXRzIHRoZSBFbGRlciwgRGllcmljDQorQm91dHMgdGhlIFlvdW5nZXIsIERpZXJpYw0KK0JvdXRzLCBBZWxicmVjaHQNCitCb3V2YXJkLCBBbnRvaW5lDQorQm91dmllciwgTGF1cmVudCBKb3NlcGggRGFuaWVsDQorQm93ZGVuLCBIYXJyeQ0KK0Jvd2RlbiwgUGF1bA0KK0Jvd2RvaW4sIEhhcnJpZXR0ZQ0KK0Jvd2VuLCBBc2hsZXkNCitCb3dsZXIsIEhlbnJ5IEFsZXhhbmRlcg0KK0Jvd2xpbmcsIEZyYW5rDQorQm93bGluZywgVG9tDQorQm93bWFuLCBSb2dlcg0KK0JveGFsbCwgU2lyIFdpbGxpYW0NCitCb3ljZSwgR2VvcmdlIFByaWNlDQorQm95ZCBKci4sIEFydGh1cg0KK0JveWQgU3IuLCBBcnRodXINCitCb3lkLCBFbW1hIE1pbm5pZQ0KK0JveWVyLCBCb2INCitCb3lsZSwgRWxlYW5vciBWZXJlDQorQm95bGUsIE1hcmsNCitCb3luZSwgSm9obg0KK0JveXMsIFRob21hcyBTaG90dGVyDQorQm96aW90LCBGcmFuw6dvaXMtSm9zZXBoDQorQnJhYmF6b24sIEhlcmN1bGVzIEJyYWJhem9uDQorQnJhY2Nlc2NvLCBDYXJsbyBkaQ0KK0JyYWNjaSwgUGlldHJvDQorQnJhY2ssIEpvaG4NCitCcmFja21hbiwgUm9iZXJ0DQorQnJhY3F1ZW1vbmQsIEbDqWxpeA0KK0JyYWNxdWVtb25kLCBNYXJpZQ0KK0JyYWRmb3JkLCBXaWxsaWFtDQorQnJhZGxleSwgSm9obg0KK0JyYWRsZXksIE1hcnRpbg0KK0JyYWRzaGF3LCBEb3ZlDQorQnJhZHNoYXcsIEouVy4NCitCcmFkeSwgQ2Fyb2x5bg0KK0JyYWR5LCBNYXRoZXcNCitCcmFla2VsZWVyLCBIZW5yaSBEZQ0KK0JyYWlsZXMsIFdpbGxpYW0gZGUNCitCcmFraGFnZSwgU3Rhbg0KK0JyYW1hbnRlLCBEb25hdG8NCitCcmFtYW50aW5vDQorQnJhbWVyLCBMZW9uYWVydA0KK0JyYW1sZXksIEZyYW5rDQorQnJhbmN1c2ksIENvbnN0YW50aW4NCitCcmFuZGFuaSwgRmVkZXJpY28NCitCcmFuZGFyZCwgUm9iZXJ0DQorQnJhbmRpLCBHaWFjaW50bw0KK0JyYW5kdCwgQmlsbA0KK0JyYW5nd3luLCBTaXIgRnJhbmsgV2lsbGlhbQ0KK0JyYW50cywgV2FsbHkNCitCcmFxdWUsIEdlb3JnZXMNCitCcmFzY2Fzc2F0LCBKYWNxdWVzLVJheW1vbmQNCitCcmFzc2HDrw0KK0JyYXRieSwgSm9obg0KK0JyYXVuLCBNYXVyaWNlDQorQnJhdm8sIENlY2NvDQorQnJhdm8sIENsYXVkaW8NCitCcmF2bywgTG9sYSBBbHZhcmV6DQorQnJheSwgQWxhbg0KK0JyYXksIEphbiBkZQ0KK0Jyw6liaWV0dGUsIFBpZXJyZQ0KK0JyZWNodCwgR2VvcmdlDQorQnJlY2ssIEpvaG4gTGVzbGllDQorQnJlY2tlbnJpZGdlLCBIdWdoIEhlbnJ5DQorQnJlZGEsIENhcmwgRnJlZHJpayB2b24NCitCcmVkaW4sIFJhZSBTbG9hbg0KK0JyZWVuYmVyZ2gsIEJhcnRob2xvbWV1cw0KK0JyZWdubywgQW5kcmVhDQorQnJlZ25vLCBBbnRvbmlvDQorQnJla2VsZW5rYW0sIFF1aXJpam4gdmFuDQorQnJlbmV0LCBOaWNvbGFzLUd1eQ0KK0JyZXNkaW4sIFJvZG9scGhlDQorQnJldG9uLCBBbmRyw6kNCitCcmV0b24sIEp1bGVzDQorQnJldHQsIEpvaG4NCitCcmV1IHRoZSBFbGRlciwgSsO2cmcNCitCcmV1IHRoZSBZb3VuZ2VyLCBKw7ZyZw0KK0JyZXdzdGVyIEpyLiwgSm9obg0KK0JyZXdzdGVyLCBBbm5hIFJpY2hhcmRzDQorQnJld3RuYWxsLCBFZHdhcmQgRnJlZGVyaWNrDQorQnJpY2hlciwgQWxmcmVkIFRob21wc29uDQorQnJpZGdlcywgRmlkZWxpYQ0KK0JyaWRnZXMsIEpvaG4NCitCcmlkZ2V3b29kLCBKLkMuDQorQnJpZ2RlbiwgRi5ILg0KK0JyaWdncywgSGVucnkgUGVycm9uZXQNCitCcmlnaHQsIEhlbnJ5DQorQnJpbCwgUGF1bA0KK0JyaW9uLCBHdXN0YXZlDQorQnJpb3NjbywgQmVuZWRldHRvDQorQnJpc2NvZSwgQXJ0aHVyDQorQnJpc3RvbCwgSm9obiBCdW55YW4NCitCcml1bGxvdiwgS2FybA0KK0Jyb2MsIEplYW4NCitCcm9jaywgU2lyIFRob21hcw0KK0Jyb2NraHVyc3QsIEdlcmFsZCBMZXNsaWUNCitCcm9kc2t5LCBBbGV4YW5kZXINCitCcm9lZGVybGFtLCBNZWxjaGlvcg0KK0Jyb2VyLCBSb2dlcg0KK0Jyb2dnaW5pLCBMdWlnaQ0KK0Jyb2doYW1tZXIsIEpvc2VwaA0KK0Jyb2dpLCBHaWFjb21vDQorQnJvbXB0b24sIFJpY2hhcmQNCitCcm9uemlubywgQWdub2xvDQorQnJvb2tlLCBXaWxsaWFtIEhlbnJ5DQorQnJvb2tlciwgQmVydHJhbQ0KK0Jyb29raW5nLCBDaGFybGVzDQorQnJvb2tzLCBDb3JhIFNtYWxsZXkNCitCcm9va3MsIEVyaWNhDQorQnJvb2tzLCBIZW5yeSBKYW15bg0KK0Jyb29rcywgSmFtZXMNCitCcm9va3MsIE5pY2hvbGFzIEFsZGVuDQorQnJvc2FtZXIsIEhhbnMNCitCcm91ZXQsIEF1Z3VzdGUNCitCcm91Z2gsIFJvYmVydA0KK0Jyb3V3ZXIsIEFkcmlhZW4NCitCcm93biwgQm9iDQorQnJvd24sIENocmlzdG9waGVyDQorQnJvd24sIERlYm9yYWgNCitCcm93biwgRG91Z2xhcw0KK0Jyb3duLCBGb3JkIE1hZG94DQorQnJvd24sIEZyZWRlcmljayBKYW1lcw0KK0Jyb3duLCBHZW9yZ2UgTG9yaW5nDQorQnJvd24sIEouIEFwcGxldG9uDQorQnJvd24sIEpvYW4NCitCcm93biwgSm9obiBHZW9yZ2UNCitCcm93biwgSm9obi1MZXdpcw0KK0Jyb3duLCBMdWN5IE1hZG94DQorQnJvd24sIE1hZSBCZW5uZXR0DQorQnJvd24sIE1hdGhlcg0KK0Jyb3duLCBNaWtlDQorQnJvd24sIFJvZ2VyDQorQnJvd24sIFcuSC4NCitCcm93biwgV2lsbGlhbSBNYXNvbg0KK0Jyb3duZSwgQXJjaGliYWxkDQorQnJvd25lLCBCZWxtb3JlDQorQnJvd25lLCBCeXJvbg0KK0Jyb3duZSwgSGFibG90IEtuaWdodA0KK0Jyb3duZSwgSGVucmlldHRlDQorQnJvd25lLCBNYXJnYXJldCBGaXR6aHVnaA0KK0Jyb3duZSwgTWF0aWxkYQ0KK0Jyb3duZSwgU3lkDQorQnJvd25lbGwsIEZyYW5rbGluDQorQnJvd25pbmcsIENvbGxlZW4NCitCcm93bmluZywgUm9iZXJ0IEJhcnJldHQNCitCcm93bnNjb21iZSwgSmVubmllIEF1Z3VzdGENCitCcnVjZSwgUGF0cmljayBIZW5yeQ0KK0JydWNlLCBXaWxsaWFtIEJsYWlyDQorQnJ1Y2gsIEtsYXVzIHZvbg0KK0JydWVnZWwgdGhlIEVsZGVyLCBKYW4NCitCcnVlZ2VsIHRoZSBFbGRlciwgUGlldGVyDQorQnJ1ZWdlbCB0aGUgWW91bmdlciwgSmFuDQorQnJ1ZWdlbCB0aGUgWW91bmdlciwgUGlldGVyDQorQnJ1ZXN0bGUsIEdlb3JnZSBNLg0KK0JydW5lbGxlc2NoaSwgRmlsaXBwbw0KK0JydXMsIEfDvG50ZXINCitCcnVzYXNvcmNpDQorQnJ1c2gsIEdlb3JnZSBkZUZvcmVzdA0KK0JydXlhLCBNYXJpbHluDQorQnJ1eW4gdGhlIEVsZGVyLCBCYXJ0aGVsDQorQnJ1eW4gdGhlIFlvdW5nZXIsIEJhcnRlbA0KK0JyeWFucywgTGluYQ0KK0JyeWFudCwgQ2hhcmxlcw0KK0JyeWdvcyBQYWludGVyLCBUaGUNCitCcnltbmVyLCBXaWxsaWFtDQorQnJ6ZXppbnNraSwgRW1pbGllIEJlbmVzDQorQnVjY2kgUGFpbnRlciwgVGhlDQorQnVjaGhlaXQsIE1hbmZyZWQNCitCdWNoc2VyLCBGcmFuaw0KK0J1Y2ssIEpvaG4NCitCdWNrbGV5LCBKYW1lcw0KK0J1Y2tsZXksIFN0ZXBoZW4NCitCdWNrbG93LCBDaHJpc3RvcGhlcg0KK0J1ZGluZ3RvbiwgSm9uYXRoYW4NCitCdWZmZXQsIEJlcm5hcmQNCitCdWdpYXJkaW5pLCBHaXVsaWFubw0KK0J1aGxlciwgUm9iZXJ0DQorQnVob3QsIEbDqWxpeC1IaWxhaXJlDQorQnVsYW5kLCBFdWfDqG5lDQorQnVsZmluY2gsIENoYXJsZXMNCitCdWxsZXIsIENlY2lsIFRyZW1heW5lDQorQnVuYnVyeSwgQ2hhcmxlcw0KK0J1bmJ1cnksIEhlbnJ5IFdpbGxpYW0NCitCdW5jZSwgS2F0ZSBFbGl6YWJldGgNCitCdW5jZSwgTG91aXMNCitCdW5keSwgRWRnYXINCitCdW5keSwgSG9yYWNlDQorQnVua2VyLCBEZW5uaXMgTWlsbGVyDQorQnVubiwgS2VuDQorQnVubnksIFJ1cGVydA0KK0J1bnJpbiwgU2hpb2thd2ENCitCdW5yw7QNCitCdW5zZSwgRG9uYWxkDQorQnVyYmFuaywgRWxicmlkZ2UgQXllcg0KK0J1cmNoLCBIZW5kcmljayB2YW4gZGVyDQorQnVyY2hhcmQsIFBhYmxvDQorQnVyY2hhcnR6LCBNYXgNCitCdXJjaGZpZWxkLCBDaGFybGVzDQorQnVyY2ssIEphY29iDQorQnVyZGVuLCBDaHJpcw0KK0J1cmVuLCBEYW5pZWwNCitCdXJnZXNzLCBKb3NlcGggRS4NCitCdXJnZXNzLCBMb3dyeQ0KK0J1cmdlc3MsIFJ1dGggUGF5bmUNCitCdXJna21haXIgdGhlIEVsZGVyLCBIYW5zDQorQnVybiwgSGVucnkNCitCdXJuLCBJYW4NCitCdXJuYW5kLCBFdWfDqG5lDQorQnVybmUtSm9uZXMsIEVkd2FyZA0KK0J1cm5lbGwsIEJlbmphbWluDQorQnVybmV0LCBKYW1lcw0KK0J1cm5ldCwgSm9obg0KK0J1cm5leSwgRWR3YXJkIEZyYW5jaXMNCitCdXJwZWUsIFdpbGxpYW0gUGFydHJpZGdlDQorQnVyciwgR2VvcmdlIEVsYmVydA0KK0J1cnJpLCBBbGJlcnRvDQorQnVycmlsbCwgRWR3YXJkDQorQnVycm91Z2hzLCBCcnlzb24NCitCdXJyb3VnaHMsIE1hcmdhcmV0DQorQnVycm93ZXMsIFRob21hcw0KK0J1cnRvbiwgRnJlZGVyaWMgV2lsbGlhbQ0KK0J1cnRvbiwgSnVkaXRoDQorQnVydG9uLCBTY290dA0KK0J1cnRvbiwgV2lsbGlhbSBTaGFrZXNwZWFyZQ0KK0J1c2gsIENoYXJsZXMNCitCdXNoLCBKYWNrDQorQnVzaG5lbGwsIEpvaG4NCitCdXNzb2xhLCBEaW9uaWdpDQorQnVzdGVyLCBLZW5kYWxsDQorQnVzd2VsbCwgUmljaGFyZCBTLg0KK0J1dGNoZXIsIEVuaWQNCitCdXRpbm9uZSwgQmVybmFyZGlubyBKYWNvcGkNCitCdXRsZXIsIEVsaXphYmV0aA0KK0J1dGxlciwgSmFtZXMNCitCdXRsZXIsIE1hcnkNCitCdXRsZXIsIFJlZw0KK0J1dGxlciwgU2FtdWVsDQorQnV0bGVyLCBUaGVvZG9yZQ0KK0J1dHQsIEdhaWwNCitCdXR0ZXJmaWVsZCwgRGVib3JhaA0KK0J1dHRlcnN3b3J0aCwgSmFtZXMgRS4NCitCdXR0ZXJzd29ydGgsIFRob21hcw0KK0J1dHRzLCBGcmVlbWFuDQorQnV2ZWxvdCwgTG91aXMNCitCdXl0ZXdlY2gsIFdpbGxlbQ0KK0J5YXJzLCBKYW1lcyBMZWUNCitCeWdyYXZlLCBXaWxsaWFtDQorQnl3YXRlcnMsIEplcnJ5DQorQ2FiYW5lbCwgQWxleGFuZHJlDQorQ2Fib3QsIEh1Z2gNCitDYWJyZXJhLCBSb3NhcmlvDQorQ2FjY2luaSwgR2lvdmFubmkNCitDYWRtdXMsIFBhdWwNCitDYWR3ZWxsLCBNaWtlDQorQ2FmZmEsIE1lbGNoaW9yZQ0KK0NhZmZpZXJpLCBKZWFuLUphY3F1ZXMNCitDYWduYWNjaSwgR3VpZG8NCitDYWhpbGwsIFdpbGxpYW0gVmluY2VudA0KK0NhaG4sIE1pcmlhbQ0KK0NhaSBEaXpoaQ0KK0NhaSBMaWFuZw0KK0NhaWxsZWJvdHRlLCBHdXN0YXZlDQorQ2Fpcm8sIEZyYW5jZXNjbyBkZWwNCitDYWrDqXMsIEV1Z2VuaW8NCitDYWxhbWUsIEFsZXhhbmRyZQ0KK0NhbGFuZHJ1Y2NpLCBHaWFjaW50bw0KK0NhbGNhZ25vLCBMYXdyZW5jZQ0KK0NhbGNhciwgSm9oYW4gU3RlcGhlbiB2b24NCitDYWxkZXIsIEFsZXhhbmRlcg0KK0NhbGRlcm9uLCBXaWxsaWFtIEZyYW5rDQorQ2FsaXh0byBkZSBKZXN1cywgQmVuZWRpdG8NCitDYWxsIEksIEphbiB2YW4NCitDYWxsLCBILg0KK0NhbGxhaGFuLCBIYXJyeQ0KK0NhbGxjb3R0LCBTaXIgQXVndXN0dXMgV2FsbA0KK0NhbGxlcnksIE1hcnkNCitDYWxsZXQsIEFudG9pbmUgRnJhbsOnb2lzDQorQ2FsbG90LCBKYWNxdWVzDQorQ2FsbG93LCBXaWxsaWFtDQorQ2Fsw7IsIEFsZG8NCitDYWxyYWV0LCBBYnJhaGFtIHZhbg0KK0NhbHMsIEFkb2xwaGUtRmVsaXgNCitDYWx0aHJvcCwgQ2xhdWRlDQorQ2FsdmFlcnQsIERlbnlzDQorQ2FsdmVydCwgQ2hhcmxlcw0KK0NhbHZlcnQsIEVkd2FyZA0KK0NhbHpvbGFyaSwgUGllciBQYW9sbw0KK0NhbWJpYXNvLCBMdWNhDQorQ2FtZWxpbw0KK0NhbWVsb3RlDQorQ2FtZXJvbiwgRXJpYw0KK0NhbWVyb24sIEphbWVzDQorQ2FtZXJvbiwgSm9obg0KK0NhbWVyb24sIEp1bGlhIE1hcmdhcmV0DQorQ2FtZXJvbiwgU2lyIERhdmlkDQorQ2FtbWlsbGllcmksIE5pY2hvbGFzIFMuDQorQ2FtbWlsbGllcmksIE5pY29sYXMNCitDYW1wLCBKZWZmZXJ5DQorQ2FtcGFnbmEsIEdpcm9sYW1vDQorQ2FtcGFnbm9sYSwgRG9tZW5pY28NCitDYW1wYWdub2xhLCBHaXVsaW8NCitDYW1wYcOxYSwgUGVkcm8gZGUNCitDYW1wYmVsbCwgSXNhYmVsbGEgRnJvd2UNCitDYW1wYmVsbCwgSmFtZXMNCitDYW1wYmVsbCwgSmltDQorQ2FtcGVuLCBKYWNvYiB2YW4NCitDYW1wZW5kb25rLCBIZWlucmljaA0KK0NhbXBodXlzZW4sIEdvdmVydCBEaXJja3N6DQorQ2FtcGksIEdpdWxpbw0KK0NhbXBpLCBWaW5jZW56bw0KK0NhbXBpZ2xpLCBNYXNzaW1vDQorQ2FtcGluLCBSb2JlcnQNCitDYW5hbGV0dG8NCitDYW5kaWQsIFBpZXRlcg0KK0NhbmVqYSBCZXRlZ29uLCBKdWFuDQorQ2Fubm9uLCBULkMuDQorQ2FubyBNYW5pbGxhLCBSYW3Ds24NCitDYW5vLCBBbG9uc28NCitDYW5vZ2FyLCBSYWZhZWwNCitDYW5vdmEsIEFudG9uaW8NCitDYW50YWdhbGxpbmEsIFJlbWlnaW8NCitDYW50YXJpbmksIFNpbW9uZQ0KK0NhbnRhdG9yZSwgRG9tZW5pY28NCitDYW51dGksIERvbWVuaWNvIE1hcmlhDQorQ2FwYSwgUm9iZXJ0DQorQ2FwYW5uYSwgUHVjY2lvDQorQ2FwbGUsIFNwZW5jZXINCitDYXBvbmlncm8sIFBhdWwNCitDYXBvcmFsaSwgQmFydG9sb21tZW8NCitDYXBwZWxsZSwgSmFuIHZhbiBkZQ0KK0NhcHBlbGxvLCBDYXJtZWxvDQorQ2FwcHMsIEtlbm5ldGgNCitDYXByaW9sbywgRG9tZW5pY28NCitDYXJhYmluLCBSdXBlcnQNCitDYXJhY2Npb2xvLCBHaW92YW5uaSBCYXR0aXN0YQ0KK0NhcmFkb3Nzbw0KK0NhcmFmZmUsIEFybWFuZC1DaGFybGVzDQorQ2FyYWdsaW8sIEdpYW4gSmFjb3BvDQorQ2FyYXZhZ2dpbw0KK0NhcmF2YWdnaW8sIFBvbGlkb3JvIGRhDQorQ2FyYm9uZSwgR2lvdmFubmkgQmVybmFkbw0KK0NhcmR1Y2NpLCBCYXJ0b2xvbW1lbw0KK0NhcmR1Y2NpLCBWaW5jZW56bw0KK0NhcmlhbmksIEdpb3Zhbm5pDQorQ2FybGVzLCBBcnRodXIgQi4NCitDYXJsZXRvbiwgQW5uZQ0KK0NhcmxldmFyaXMsIEx1Y2ENCitDYXJsaW5lLCBHZW9yZ2UNCitDYXJsaW5lLCBSaWNoYXJkDQorQ2FybGlzbGUsIEdlb3JnZSBIb3dhcmQsIE5pbnRoIEVhcmwgb2YNCitDYXJsb25pLCBDYXJsbw0KK0NhcmxzZW4sIEVtaWwNCitDYXJsc29uLCBKb2huIEZhYmlhbg0KK0Nhcmxzb24sIEtlbg0KK0Nhcmx1LCBKZWFuDQorQ2FybWljaGFlbCwgRnJhbmtsaW4NCitDYXJtb250ZWxsZSwgTG91aXMgZGUNCitDYXJuZXZhbGUsIEZyYQ0KK0Nhcm5pY2VybywgQW50b25pbw0KK0Nhcm8sIFNpciBBbnRob255DQorQ2Fyb2x1cy1EdXJhbg0KK0Nhcm9uLCBBbnRvaW5lDQorQ2Fyb24sIFBhdWwNCitDYXJwYWNjaW8sIFZpdHRvcmUNCitDYXJwZWF1eCwgSmVhbi1CYXB0aXN0ZQ0KK0NhcnBlbnRlciBQYWludGVyLCBUaGUNCitDYXJwZW50ZXIsIEVkDQorQ2FycGVudGVyLCBGcmFuY2lzIEJpY2tuZWxsDQorQ2FycGlvbmksIEdpdWxpbw0KK0NhcnIsIEVtaWx5DQorQ2FyciwgU2FtdWVsIFMuDQorQ2FycsOgLCBDYXJsbw0KK0NhcnJhY2NpLCBBZ29zdGlubw0KK0NhcnJhY2NpLCBBbm5pYmFsZQ0KK0NhcnJhY2NpLCBMb2Rvdmljbw0KK0NhcnJlw7FvIGRlIE1pcmFuZGEsIEp1YW4NCitDYXJyZcOxbywgTWFyaW8NCitDYXJyaWVyYSwgUm9zYWxiYQ0KK0NhcnJpZXItQmVsbGV1c2UsIEFsYmVydC1Fcm5lc3QNCitDYXJyacOocmUsIEV1Z8OobmUNCitDYXJyaW5ndG9uLCBEb3JhDQorQ2FycmluZ3RvbiwgTGVvbm9yYQ0KK0NhcnMsIExhdXJlbnQNCitDYXJzZSwgSi5ILg0KK0NhcnRlbiwgVmlyZ2luaWENCitDYXJ0ZXIsIEh1Z2gNCitDYXJ0ZXIsIEtlaXRoDQorQ2FydGVyLCBMZWUNCitDYXJ0aWVyLUJyZXNzb24sIEhlbnJpDQorQ2FydHdyaWdodCwgSXNhYmVsIEJyYW5zb24NCitDYXJ2YWxobywgRmzDoXZpbyBkZQ0KK0NhcndpdGhhbSwgVGhvbWFzDQorQ2FzYW5vdmEsIEdpb3Zhbm5pDQorQ2FzYXMsIEp1YW4gVmlsYQ0KK0Nhc2NlbGxhLCBBbmRyZWENCitDYXNpbGVhciwgSm9obiBXaWxsaWFtDQorQ2Fzc2FuZHJlDQorQ2Fzc2FyYSwgRnJhbmsNCitDYXNzYXR0LCBNYXJ5DQorQ2Fzc2VsbGkgSnIuLCBIZW5yeSBDLg0KK0Nhc3NpZHksIFNoYXVuDQorQ2Fzc2luYXJpLCBCcnVubw0KK0Nhc3NvbiwgQS5KLg0KK0Nhc3RhZ25ldG8sIEpvw6NvIEJhdGlzdGENCitDYXN0YWdub2xhLCBHYWJyaWVsZQ0KK0Nhc3RlbGxhbmksIEVucmljbw0KK0Nhc3RlbGxhbm9zLCBKdWxpbw0KK0Nhc3RlbGxpLCBBbGZpbw0KK0Nhc3RlbGxvLCBCZXJuYXJkbw0KK0Nhc3RlbGxvLCBWYWxlcmlvDQorQ2FzdGVsbMOzbiwgRmVkZXJpY28NCitDYXN0aWdsaW9uZSwgR2lvdmFubmkgQmVuZWRldHRvDQorQ2FzdGlnbGlvbmUsIEdpdXNlcHBlDQorQ2FzdGlsbG8geSBTYWF2ZWRyYSwgQW50b25pbw0KK0Nhc3RpbGxvLCBKb3PDqSBkZWwNCitDYXN0bGUsIEphbWVzDQorQ2FzdGxlLCBXZW5kZWxsDQorQ2F0ZXNieSwgTWFyaw0KK0NhdGxldHQsIEVsaXphYmV0aA0KK0NhdGxpbiwgR2VvcmdlDQorQ2F0cywgSmFjb2INCitDYXR0YW5lbywgRGFuZXNlDQorQ2F0dGVsYW4sIE1hdXJpemlvDQorQ2F1bGZpZWxkLCBQYXRyaWNrDQorQ2F2YWVsLCBSb2xmDQorQ2F2YWxjYW50aSwgRW1pbGlhbm8gRGkNCitDYXZhbGxhcm8sIENvc2ltbw0KK0NhdmFsbGluaSwgUGlldHJvDQorQ2F2YWxsaW5vLCBCZXJuYXJkbw0KK0NhdmVkb25lLCBHaWFjb21vDQorQ2F5b3QsIENsYXVkZS1BdWd1c3Rpbg0KK0NhemluLCBKZWFuLUNoYXJsZXMNCitDYXppbiwgTWFyaWUNCitDZWNpb25pLCBBZHJpYW5vDQorQ2VkZXJzdHLDtm0sIEd1c3RhZg0KK0NlbGxpbmksIEJlbnZlbnV0bw0KK0NlbG1pbnMsIFZpamENCitDZXJhY2NoaSwgR2l1c2VwcGUNCitDZXJxdW96emksIE1pY2hlbGFuZ2Vsbw0KK0PDqXNhcg0KK0Nlc2FyZSBkYSBTZXN0bw0KK0Nlc2FyaSwgR2l1c2VwcGUNCitDZXNhcmssIE1hcmsNCitDw6l6YW5uZSwgUGF1bA0KK0NoYWJvdCwgTHVjaWxsZQ0KK0NoYWR3aWNrLCBMeW5uDQorQ2hhZHdpY2ssIFdpbGxpYW0NCitDaGFnYWxsLCBNYXJjDQorQ2hhaGluZSwgRWRnYXINCitDaGFsbGVuZXIsIEYuUy4NCitDaGFsb24sIEFsZnJlZA0KK0NoYWxvbiwgSGVucnkgQmVybmFyZA0KK0NoYW1iZXJsYWluLCBKb2huDQorQ2hhbWJlcmxhaW4sIFNhbXVlbA0KK0NoYW1iZXJzLCBUaG9tYXMNCitDaGFtcGFpZ25lLCBKZWFuLUJhcHRpc3RlIGRlDQorQ2hhbXBhaWduZSwgUGhpbGlwcGUgZGUNCitDaGFuIEhvbmdzaG91DQorQ2hhbmRsZXIsIEpvc2VwaCBHb29kaHVlDQorQ2hhbmRsZXIsIFdpbnRocm9wDQorQ2hhbmRvciwgRG91Z2xhcw0KK0NoYW5nIENoaS1zaHUNCitDaGFuZyBEYWktY2hpZW4NCitDaGFuZyBKaW4NCitDaGFuZyBTaHVob25nDQorQ2hhbmctYmFlLCBId2FuZw0KK0NoYW5nLXNvcCwgQ2h1bmcNCitDaGFudHJleSwgU2lyIEZyYW5jaXMgTGVnYXR0DQorQ2hhbyBTaGFvJ2FuZw0KK0NoYXBlcm9uLCBOaWNvbGFzDQorQ2hhcGluLCBKYW1lcw0KK0NoYXBpbiwgTHVjeSBHcm9zdmVub3INCitDaGFwbGluLCBNYXJ5IE1pbGxpY2VudA0KK0NoYXBtYW4sIENvbnJhZCBXaXNlDQorQ2hhcG1hbiwgSm9obiBHYWRzYnkNCitDaGFwcGVsLCBBbG9uem8NCitDaGFwdSwgSGVucmkgTWljaGVsIEFudG9pbmUNCitDaGFyZGluLCBKZWFuLUJhcHRpc3RlLVNpbcOpb24NCitDaGFybGVzLCBKYW1lcw0KK0NoYXJsZXMsIE1pY2hhZWwgUmF5DQorQ2hhcmxlc3dvcnRoLCBTYXJhaA0KK0NoYXJsZXQsIE5pY29sYXMtVG91c3NhaW50DQorQ2hhcmxpZXIsIEphY3F1ZXMNCitDaGFybHRvbiwgQWxhbg0KK0NoYXJ0b24gZGUgVHJldmlsbGUsIEVybmVzdG8NCitDaGFzZSwgQWRlbGFpZGUgQ29sZQ0KK0NoYXNlLCBSaWNoYXJkDQorQ2hhc2UsIFdpbGxpYW0gTWVycml0dA0KK0NoYXNzw6lyaWF1LCBUaMOpb2RvcmUNCitDaGF0ZWxhaW4sIEplYW4gQmFwdGlzdGUgQ2xhdWRlDQorQ2hhdGhhbSwgUnVzc2VsbA0KK0NoYXR0ZXJ0b24sIENsYXJlbmNlIEsuDQorQ2hhdWRldCwgQW50b2luZS1EZW5pcw0KK0NoYXV2aW4sIFBpZXJyZS1BdGhhbmFzZQ0KK0Now6F2ZXogTW9yYWRvLCBKb3PDqQ0KK0NoYXZleiwgRWR3YXJkIEFyY2VuaW8NCitDaGVmZmV0eiwgQXNhDQorQ2hlbiBCYW5kaW5nDQorQ2hlbiBDaGkNCitDaGVuIERhbnFpbmcNCitDaGVuIEZ1c2hhbg0KK0NoZW4gSGVuZ3F1ZQ0KK0NoZW4gS3Vhbg0KK0NoZW4gUGluZw0KK0NoZW4gUWl1Y2FvDQorQ2hlbiBSb25nDQorQ2hlbiBUaWVnZW5nDQorQ2hlbiBZYW5uaW5nDQorQ2hlbiBZYW5xaWFvDQorQ2hlbiBZaWZlaQ0KK0NoZW4gWXVzaGVuZw0KK0NoZW4gWmhpZm8NCitDaGVuIFppeWkNCitDaGVuZyBDb25nbGluDQorQ2hlbmcgU2hpZmENCitDaGVuZyBaaGFuZw0KK0NoZXJjaGksIFNhbmRybw0KK0NoZXJlc2hub3Zza3ksIE15a2hhaWxvDQorQ2jDqXJldCwgSnVsZXMNCitDaGVyaWNvLCBGcmFuY2VzY28gQW50b25pbyBkZWwNCitDaGV2YWxpZXIsIE5pY29sYXMNCitDaGlhLCBTYW5kcm8NCitDaGlhcmksIEdpdXNlcHBpDQorQ2hpY2FnbyBQYWludGVyLCBUaGUNCitDaGljYWdvLCBKdWR5DQorQ2hpZmZsYXJ0LCBGcmFuw6dvaXMtTmljb2xhcw0KK0NoaWh1bHksIERhbGUNCitDaGknaSBQYWktc2hpaA0KK0NoaWxkZSwgSmFtZXMgV2FycmVuDQorQ2hpbGxpZGEsIEVkdWFyZG8NCitDaGltZW50aSwgSmFjb3BvDQorQ2hpbWVyYSBQYWludGVyLCBUaGUNCitDaGluLCBNZWwNCitDaGluYXJkLCBKb3NlcGgNCitDaGlubmVyeSwgR2VvcmdlDQorQ2hpcG1hbg0KK0NoaXJpbm8gTMOzcGV6LCBNYXJ0w61uDQorQ2hvYnVuc2FpIEVpc2hpDQorQ2hvZG93aWVja2ksIERhbmllbCBOaWtvbGF1cw0KK0Nob2Vuc2FpIEVpc2hpbg0KK0Nob2kgU29raHdhbg0KK0Nob2tpLCBFaXNob3NhaQ0KK0Nob2tvc2FpIEVpc2hvDQorQ2hvbmcteXVuZywgS2ltDQorQ2hvdSwgU2hlbg0KK0NocmlzdGFuc2VuLCBIYW5zDQorQ2hyaXN0ZW5iZXJyeSwgV2lsbGlhbQ0KK0NocmlzdGVuc2VuLCBDLkMuQS4NCitDaHJpc3RlbnNlbiwgRGFuDQorQ2hyaXN0aWFuc2VuLCBSYXNtdXMNCitDaHJpc3RpZSwgUm9iZXJ0IER1bmNhbg0KK0NocmlzdGluZWssIENhcmwtTHVkd2lnDQorQ2hyaXN0LUphbmVyLCBBbGJlcnQgV2lsbGlhbQ0KK0NocmlzdG8NCitDaHJpc3RvcGhlLCBFcm5lc3QNCitDaHJpc3R1cywgUGV0cnVzDQorQ2hyaXN0eSwgSm9obg0KK0NodW5nIFNvb2ssIEtpbQ0KK0NodXJjaCwgRnJlZGVyaWMgRWR3aW4NCitDaHVyY2gsIEZyZWRlcmljayBTdHVhcnQNCitDaHVyY2gsIE1pY2hhZWwNCitDaHVyY2hpbGwsIFdpbnN0b24gU3BlbmNlcg0KK0NodXJjaHlhcmQsIFRob21hcw0KK0NpZW5mdWVnb3MgQnJvd25lLCBHb256YWxvDQorQ2lnb2xpLCBMb2Rvdmljbw0KK0NpbWFidWUNCitDaW1pbmFnaGksIFZpcmdpbmlvDQorQ2luY2luYXRvLCBGcmFuY2VzY28gUm9tdWxvDQorQ2lvbGksIFZhbGVyaW8NCitDaXByaWFuaSwgR2lvdmFubmkgQmF0dGlzdGENCitDaXJpbm8sIEFudG9uaW8NCitDaXNuZXJvcywgRG9taW5nbw0KK0NpdHJvbiwgTWlubmEgV3JpZ2h0DQorQ2l1cmxpb25pcywgTWlrYWxvanVzDQorQ2l2ZXJjaGlvLCBWaW5jZW56bw0KK0Npdml0YWxlLCBNYXR0ZW8NCitDaXZpdGljbywgQnJ1bm8NCitDbGFlaXNzZW5zIEksIFBpZXRlcg0KK0NsYWVzeiwgUGlldGVyDQorQ2xhZ3VlLCBSaWNoYXJkDQorQ2xhaXJpbiwgR2Vvcmdlcw0KK0NsYWlybW9udCwgQ29yd2luDQorQ2xhcHAsIFdpbGxpYW0gSGVucnkNCitDbGFyw6EsIEpvc8OpDQorQ2xhcmssIEFsc29uIFNraW5uZXINCitDbGFyaywgQ2xhdWRlDQorQ2xhcmssIEZsb3lkDQorQ2xhcmssIEpvc2VwaA0KK0NsYXJrLCBLYXRlIEZyZWVtYW4NCitDbGFyaywgTGFycnkNCitDbGFyaywgUGFyYXNrZXZhDQorQ2xhcmssIFRob21hcw0KK0NsYXJrLCBUaW0NCitDbGFya2UgSGFsbCwgTGFkeSBFZG5hDQorQ2xhcmtlLCBHZW9mZnJleQ0KK0NsYXJrZSwgSm9obiBDbGVtDQorQ2xhdWRlIExvcnJhaW4NCitDbGF1ZGVsLCBDYW1pbGxlDQorQ2xhdWRldCwgQW50b2luZQ0KK0NsYXVzZWxsLCBKb2FxdcOtbg0KK0NsYXVzZW4sIEMuDQorQ2xhdXNlbiwgRnJhbmNpc2thDQorQ2xhdXNlbiwgU2lyIEdlb3JnZQ0KK0NsYXbDqSwgQW50b25pbw0KK0NsYXh0b24sIE1hcnNoYWxsDQorQ2xheSwgQWx5c29uDQorQ2xheWVzLCBHZXJ0cnVkZSBkZXMNCitDbGVhdmVyLCBBbGljZQ0KK0NsZW1lbnMsIEouRi4NCitDbGVtZW50ZSBkYSBVcmJpbm8NCitDbGVtZW50ZSwgRnJhbmNlc2NvDQorQ2xlcmNrLCBIZW5kcmlrIGRlDQorQ2zDqXNpbmdlciwgSmVhbiBCYXB0aXN0ZQ0KK0NsZXZlLCBKb29zIHZhbg0KK0NsZXluLCBGcmFueg0KK0NsaW1lLCBXaW5maWVsZCBTY290dA0KK0NsaW1vLCBMaW5kZWUNCitDbGludCwgR2VvcmdlDQorQ2xvZGlvbg0KK0Nsb3NlLCBDaHVjaw0KK0Nsb3NlLCBNYXkgTGV3aXMNCitDbG91ZG1hbiwgSm9obiBHcmVlbmxlYWYNCitDbG91ZXQgdGhlIFlvdW5nZXIsIEplYW4NCitDbG91ZXQsIEZyYW7Dp29pcw0KK0Nsb3VnaCwgR2VvcmdlIExhZmF5ZXR0ZQ0KK0Nsb3VnaCwgUHJ1bmVsbGENCitDbG92aW8sIEdpb3JnaW8gR2l1bGlvDQorQ29hdGVzLCBFZG11bmQNCitDb2F0ZXMsIEdlb3JnZQ0KK0NvYnVybiwgRnJhbmsNCitDb2NoZXJlYXUsIEzDqW9uLU1hdHRoaWV1DQorQ29jaGluIHRoZSBZb3VuZ2VyLCBDaGFybGVzLU5pY29sYXMNCitDb2NocmFuLCBNYWxjb2xtDQorQ29jaywgSGllcm9ueW1vdXMNCitDb2NrLCBNYXR0aHlzDQorQ29kYXp6aSwgVml2aWFubw0KK0NvZGRlLCBQaWV0ZXINCitDb2RtYW4sIENoYXJsZXMNCitDb2UsIEVsaWFzIFYuDQorQ29lLCBFdGhlbCBMb3Vpc2UNCitDb2UsIFN1ZQ0KK0NvZWxsbywgQ2xhdWRpbw0KK0NvZ25pZXQsIEzDqW9uDQorQ29oZW4sIEJlY2t5DQorQ29oZW4sIEJlcm5hcmQNCitDb2hvb24sIEhhbm5haCBIYXJyaXNvbg0KK0NvaWduZXQsIEp1bGVzDQorQ29rZXIsIFBldGVyDQorQ29sYSBEZWxsJ0FtYXRyaWNlDQorQ29sZHN0cmVhbSwgU2lyIFdpbGxpYW0NCitDb2xlLCBHZW9yZ2UgVmljYXQNCitDb2xlLCBKLiBGb3hjcm9mdA0KK0NvbGUsIFRob21hcw0KK0NvbGUsIFRpbW90aHkNCitDb2xlLCBXaWxsaWUNCitDb2xlbWFuLCBDaGFybGVzIENhcnlsDQorQ29sZW1hbiwgTWljaGFlbA0KK0NvbGVvcHksIFN0ZXZlDQorQ29sZXNjb3R0LCBSb2JlcnQNCitDb2xsLCBKb3NlcGggQ2xlbWVudA0KK0NvbGxhLCBFdHRvcmUNCitDb2xsYWVydCwgQWRyaWFlbg0KK0NvbGxhbnRlcywgRnJhbmNpc2NvDQorQ29sbGF6bywgUmFwaGFlbA0KK0NvbGxldCwgSm9obg0KK0NvbGxpZXIsIEVkd2FlcnQNCitDb2xsaWVyLCBKb2huDQorQ29sbGluZ3MsIFNhbXVlbA0KK0NvbGxpbnMsIENlY2lsDQorQ29sbGlucywgQ2hhcmxlcw0KK0NvbGxpbnMsIENoYXJsZXMgQWxsc3Rvbg0KK0NvbGxpbnMsIFdpbGxpYW0NCitDb2xsaW5zb24sIEphbWVzDQorQ29sbG90LCBNYXJpZS1Bbm5lDQorQ29sbWFuIDE3ODAtMTg0NSwgU2FtdWVsDQorQ29sbWFuIDE4MzItMTkyMCwgU2FtdWVsDQorQ29sb21iZSwgTWljaGVsDQorQ29scXVob3VuLCBBbGV4YW5kZXINCitDb2xxdWhvdW4sIFJvYmVydA0KK0NvbHRvbiwgV2lsbGlhbSBSb2JlcnQNCitDb2x2aWxsZSwgQWxleA0KK0NvbHZpbiBBbmRyYWRlLCBNYXJ0YQ0KK0NvbWFuLCBDaGFybG90dGUgQnVlbGwNCitDb21mb3J0LCBDaGFybGVzIEYuDQorQ29uYW50IExpbW5lciwgVGhlDQorQ29uY2EsIFNlYmFzdGlhbm8NCitDb25kZSwgRWR1YXJkbw0KK0NvbmRlciwgQ2hhcmxlcw0KK0NvbmRvLCBHZW9yZ2UNCitDb25lLCBNYXJ2aW4NCitDb25lZ2xpYW5vLCBHaWFtYmF0dGlzdGEgQ2ltYSBkYQ0KK0Nvbmdkb24sIFdpbGxpYW0NCitDb25pbnhsb28sIEdpbGxpcyB2YW4NCitDb25uYWgsIEpvaG4NCitDb25uYXJkLCBQaGlsaXANCitDb25uZWxsLCBTdGVwaGVuDQorQ29ubmVsbCwgU3liaWwNCitDb25uZWxseSwgQnJpYW4NCitDb25yYWQsIEN5cmlsIEguDQorQ29ucm95LCBTdGVwaGVuDQorQ29uc2FncmEsIFBpZXRybw0KK0NvbnN0YWJsZSwgSm9obg0KK0NvbnN0YWJsZSwgTGlvbmVsIEJpY2tuZWxsDQorQ29uc3RhbnQsIEJlbmphbWluDQorQ29uc3RhbnRpbiwgRGltaXRyaW9zDQorQ29vayBvZiBQbHltb3V0aCwgV2lsbGlhbQ0KK0Nvb2ssIEV0aGVsDQorQ29vaywgR2xhZHlzIEVtZXJzb24NCitDb29rLCBIb3dhcmQNCitDb29rLCBMaWENCitDb29rZSwgQmFycmllDQorQ29va2UsIEVkd2FyZCBXaWxsaWFtDQorQ29va2UsIEdlb3JnZQ0KK0Nvb2tlLCBMLk0uDQorQ29vcGVyIEpyLiwgUmljaGFyZA0KK0Nvb3BlciwgQWJyYWhhbQ0KK0Nvb3BlciwgQWxmcmVkIEVnZXJ0b24NCitDb29wZXIsIENvbGluIENhbXBiZWxsDQorQ29vcGVyLCBFbW1hIExhbXBlcnQNCitDb29wZXIsIEdlb3JnZQ0KK0Nvb3BlciwgU2FtdWVsDQorQ29vcGVyLCBUaG9tYXMgU2lkbmV5DQorQ29vcGVyLCBXYXNoaW5ndG9uIEJvZ2FydA0KK0Nvb3BlciwgV2lsbGlhbQ0KK0Nvb3JuaGVydCwgRGlyY2sgVm9sa2VydHN6b29uDQorQ29wZSwgR2VvcmdlDQorQ29wbGV5LCBKb2huIFNpbmdsZXRvbg0KK0NvcHBlZGdlLCBGZXJuIElzYWJlbA0KK0NvcHBvIGRpIE1hcmNvdmFsZG8NCitDb3F1ZXMsIEdvbnphbGVzDQorQ29yYmV0LCBNYXR0aGV3IFJpZGxleQ0KK0NvcmJldHQsIEVkd2FyZA0KK0NvcmJpbm8sIEpvbg0KK0NvcmJvdWxkLCBIZW5yeQ0KK0NvcmJvdWxkLCBSaWNoYXJkDQorQ29yYnVzaWVyLCBMZQ0KK0NvcmRpZXIsIENoYXJsZXMgSGVucmkgSm9zZXBoDQorQ29yZGllciwgTmljb2xhcw0KK0NvcmVuemlvLCBCZWxpc2FyaW8NCitDb3JpbnRoLCBMb3Zpcw0KK0NvcmludGhpYW5pemluZyBQYWludGVyLCBUaGUNCitDb3Jpb2xhbm8sIEJhcnRvbG9tZW8NCitDb3Juw6gsIE1pY2hlbGUgRmVsaWNlDQorQ29ybmVpbGxlIGRlIEx5b24NCitDb3JuZWlsbGUsIEplYW4tQmFwdGlzdGUNCitDb3JuZWxpdXMsIFBldGVyIHZvbg0KK0Nvcm5lbGwsIEpvc2VwaA0KK0Nvcm5lbGwsIFRob21hcw0KK0Nvcm5veWVyLCBQYXVsDQorQ29yb3QsIEplYW4tQmFwdGlzdGUtQ2FtaWxsZQ0KK0NvcnJhZGluaSwgQW50b25pbw0KK0NvcnJlZ2dpbw0KK0NvcnRlcywgRWRvdWFyZA0KK0NvcnZpLCBEb21lbmljbw0KK0Nvc2dyb3ZlLCBTdGFubGV5DQorQ29zc2EsIEZyYW5jZXNjbyBkZWwNCitDb3NzaWVycywgSmFuDQorQ29zc2lvLCBQYW5jaG8NCitDb3N0YSwgQXJ0dXIgVGltw7N0ZW8gZGENCitDb3N0YSwgTG9yZW56bw0KK0Nvc3RhLCBPbGdhDQorQ29zdGFuemksIFBsYWNpZG8NCitDb3N0aWdhbiwgSm9obiBFLg0KK0Nvc3dheSwgTWFyaWENCitDb3N3YXksIFJpY2hhcmQNCitDb3QsIFBpZXJyZS1BdWd1c3RlDQorQ290ZXIsIENvbGlqbiBkZQ0KK0NvdGVzLCBGcmFuY2lzDQorQ290bWFuLCBKb2huIEpvc2VwaA0KK0NvdG1hbiwgSm9obiBTZWxsDQorQ290dGllciwgRGFuaWVsDQorQ290dGluZ2hhbSwgUm9iZXJ0DQorQ291ZGVyLCBMb3Vpcy1DaGFybGVzLUF1Z3VzdGUNCitDb3VuaWhhbiwgTm9lbA0KK0NvdXBlciwgV2lsbGlhbQ0KK0NvdXJiZXQsIEd1c3RhdmUNCitDb3VydGVyLCBGcmFua2xpbiBDLg0KK0NvdXJ0b2lzLCBHdWlsbGF1bWUNCitDb3VydG9pcywgSmFjcXVlcw0KK0NvdXNlLCBFYW5nZXIgSXJ2aW5nDQorQ291c2luIHRoZSBFbGRlciwgSmVhbg0KK0NvdXNpbmV0LCBIZW5yaS1OaWNvbGFzDQorQ291c2lucywgU2FtdWVsDQorQ291c3RvdSB0aGUgRWxkZXIsIEd1aWxsYXVtZQ0KK0NvdXN0b3UsIE5pY29sYXMNCitDb3V0dXJlLCBDaHJpc3Rpbg0KK0NvdXR1cmUsIFRob21hcw0KK0NvdmFycnViaWFzLCBNaWd1ZWwNCitDb3dlcnQsIEhhbmsNCitDb3dpbiwgRWlsZWVuDQorQ293bGVzLCBSdXNzZWxsDQorQ293bGV5LCBSZXRhIE1hZGVsaW5lDQorQ293cGVyLCBGcmFuaw0KK0NveCwgRGF2aWQNCitDb3gsIEdhcmRuZXINCitDb3gsIEpvaG4gUm9nZXJzDQorQ294LCBLZW4NCitDb3gsIEtlbnlvbg0KK0NveCwgU3RlcGhlbg0KK0NveCwgV2FsdGVyIEkuDQorQ294Y2llLCBNaWNoaWVsIHZhbg0KK0NveWUsIExlZSBCcm93bg0KK0NveXBlbCwgQW50b2luZQ0KK0NveXBlbCwgQ2hhcmxlcy1BbnRvaW5lDQorQ295cGVsLCBOb8OrbA0KK0NveXNldm94LCBBbnRvaW5lDQorQ296ZW5zLCBBbGV4YW5kZXINCitDb3plbnMsIEpvaG4gUm9iZXJ0DQorQ296emFyZWxsaSwgR2lhY29tbw0KK0NvenphcmVsbGksIEd1aWRvY2Npbw0KK0NyYWRvY2ssIE1hcm1hZHVrZQ0KK0NyYWdnLCBUb255DQorQ3JhaWctTWFydGluLCBNaWNoYWVsDQorQ3JhbmFjaCB0aGUgRWxkZXIsIEx1Y2FzDQorQ3JhbmFjaCB0aGUgWW91bmdlciwgTHVjYXMNCitDcmFuY2gsIEpvaG4NCitDcmFuZSwgQW5uZQ0KK0NyYW5lLCBCcnVjZQ0KK0NyYW5lLCBXYWx0ZXINCitDcmFuc3RvbiwgVG9sbGVyDQorQ3Jhd2ZvcmQsIExlbg0KK0NyYXdmb3JkLCBSYWxzdG9uDQorQ3Jhd2ZvcmQsIFRob21hcw0KK0NyYXh0b24sIEpvaG4NCitDcmF5ZXIsIEdhc3BhciBkZQ0KK0NyZW1hLCBHaW92YW4gQmF0dGlzdGENCitDcmVzcGksIERhbmllbGUNCitDcmVzcGksIEdpb3Zhbm5pIEJhdHRpc3RhDQorQ3Jlc3BpLCBHaXVzZXBwZSBNYXJpYQ0KK0NyZXN3aWNrLCBUaG9tYXMNCitDcmV0aSwgRG9uYXRvDQorQ3JldXpuYWNoLCBDb25yYWQgRmFiZXIgdm9uDQorQ3Jpb2xsbywgSm9zw6kNCitDcmlzcywgSi4gRnJhbmNpcw0KK0NyaXN0YWxsLCBKb3NodWENCitDcmlzdG9mb2wgUGVyYWxiYSwgTGVhbmRyZQ0KK0NyaXN3ZWxsLCBXYXJyZW4NCitDcml0Y2hlciwgQ2F0aGVyaW5lDQorQ3JpdmVsbGksIENhcmxvDQorQ3JpdmVsbGksIFZpdHRvcmlvDQorQ3JvY2VmaXNzaSwgU2ltb25lIGRlaQ0KK0Nyb2l4IEksIEplYW4gZGUgbGENCitDcm9sYSwgR2VvcmctSGVpbnJpY2gNCitDcm9tZSwgSm9obg0KK0Nyb213ZWxsLCBKb2FuZQ0KK0Nyb25hLCBSdWRvbGYNCitDcm9va2UsIFJheQ0KK0Nyb29zLCBBbnRob25pZSBKYW5zei4gdmFuIGRlcg0KK0Nyb3BzZXksIEphc3BlciBGcmFuY2lzDQorQ3Jvc2F0bywgR2lvdmFubmkgQmF0dGlzdGENCitDcm9zcywgRG9yb3RoeQ0KK0Nyb3NzLCBIZW5yaS1FZG1vbmQNCitDcm90Y2gsIERyLiBXaWxsaWFtDQorQ3Jvd2UsIEV5cmUNCitDcm96aWVyLCBXaWxsaWFtDQorQ3J1aWNrc2hhbmssIFdpbGxpYW0NCitDcnVpa3NoYW5rLCBHZW9yZ2UNCitDcnVpa3NoYW5rLCBJc2FhYw0KK0NydW1ibywgV29vZHkNCitDcnV6LCBFbWlsaW8NCitDcnV6LCBKdWFuIFBhbnRvamEgZGUgbGENCitDc8OzaywgSXN0dsOhbg0KK0Nzb250dsOhcnkgS29zenRrYSwgVGl2YWRhcg0KK0N1Y2NoaSwgRW56bw0KK0N1ZXZhcywgSm9zw6kgTHVpcw0KK0N1aXR0IEpyLiwgR2VvcmdlDQorQ3VsbGVuLCBNYXVyaWNlIEdhbGJyYWl0aA0KK0N1bHZlcmhvdXNlLCBKb2hhbm4gTS4NCitDdW1taW5ncywgTWljaGFlbA0KK0N1bXBzdG9uLCBOZXZpbg0KK0N1bmRhbGwsIENoYXJsZXMNCitDdW5lbywgUmluYWxkbw0KK0N1bm5pbmdoYW0sIEJlbg0KK0N1bm5pbmdoYW0sIEVhcmwNCitDdW5uaW5naGFtLCBJbW9nZW4NCitDdXJub2UsIEdyZWcNCitDdXJyYWRpLCBGcmFuY2VzY28NCitDdXJyYW4sIENoYXJsZXMgQ291cnRuZXkNCitDdXJyaWVyIGFuZCBJdmVzDQorQ3VycnkgLENodWNrDQorQ3VycnkgSUksIEF1c3Rpbg0KK0N1cnJ5LCBKb2huIFN0ZXVhcnQNCitDdXJ0aXMsIEVkd2FyZCBTLg0KK0N1cnRpcywgUGhpbGlwDQorQ3VydGlzLCBSLlcuDQorQ3VzdGlzLCBFbGVhbm9yIFBhcmtlDQorQ3V0aGJlcnRzb24sIEFyY2gNCitDdXljayBWYW4gTXllcm9wLCBGcmFucw0KK0N1eXAsIEFlbGJlcnQNCitDdXlwLCBCZW5qYW1pbiBHZXJyaXRzei4NCitDdXlwLCBKYWNvYiBHZXJyaXR6Lg0KK0RhYm8sIExlb24NCitEYWNvc3RhLCBNaWx0b24NCitEYWNyZSwgTGFkeQ0KK0RhZGQsIFJpY2hhcmQNCitEYWRkaSwgQmVybmFyZG8NCitEYWVsLCBKYW4gRnJhbnMgdmFuDQorRGFnbmFuLUJvdXZlcmV0LCBQYXNjYWwtQWRvbHBoZS1KZWFuDQorRGFobCwgSm9oYW4gQ2hyaXN0aWFuDQorRGFobCwgTWljaGFlbA0KK0RhaW5nZXJmaWVsZCwgRWxsaW90dA0KK0RhbCBQb250ZSwgR2lvdmFubmkNCitkYWwgU29sZSwgR2lvdmFubmkgR2lvc2VmZm8NCitEYWxlbSwgQ29ybmVsaXMgdmFuDQorRGFsZ2FhcmQsIENocmlzdGVuDQorRGFsw60sIFNhbHZhZG9yDQorRGFsbCwgTmljaG9sYXMgVGhvbWFzDQorRGFsbGUgTWFzZWduZSwgSmFjb2JlbGxvDQorRGFsbWF0YSwgR2lvdmFubmkNCitEYWxtYXUsIEx1w61zDQorRGFsb3UsIEp1bGVzDQorRGFsc2dhYXJkLCBTdmVuDQorRGFsdG9uLCBSaWNoYXJkDQorRGFseSwgU3RldmUNCitEYWx5LCBTdGV2ZQ0KK0RhbWVyLCBBbm5lIFNleW1vdXINCitEYW5hLCBGcmENCitEYW5ieSwgRnJhbmNpcw0KK0RhbmJ5LCBLZW4NCitEYW5jZSBJSSwgR2VvcmdlDQorRGFuY2UtSG9sbGFuZCwgU2lyIE5hdGhhbmllbA0KK0RhbmRpbmksIENlc2FyZQ0KK0RhbmRyw6ktQmFyZG9uLCBNaWNoZWwtRnJhbsOnb2lzDQorRGFuZHJpZGdlLCBCYXJ0aG9sb21ldw0KK2QnQW5nZXJzLCBQaWVycmUgSmVhbiBEYXZpZA0KK0RhbmllbGwsIFRob21hcw0KK0RhbmllbGwsIFdpbGxpYW0NCitEYW5sb3V4LCBIZW5yaS1QaWVycmUNCitEYW5uZXIsIEpvc2VmDQorRGFudGksIFZpbmNlbnpvDQorRGFuemlnZXIsIFlpdHpoYWsNCitEYXBobmlzLCBOYXNzb3MNCitEYXJib3ZlbiwgSGFubmUNCitEYXJieSwgSGVucnkgRi4NCitEJ0FyY2FuZ2VsbywgQWxsYW4NCitEYXJldCwgSmFjcXVlcw0KK0RhcmV0LCBKZWFuDQorRGFyaXVzIFBhaW50ZXIsIFRoZQ0KK0RhcmxleSwgRmVsaXggT2N0YXZpdXMgQ2Fycg0KK0Rhc2J1cmcsIEFuZHJldw0KK0RhdWJpZ255LCBDaGFybGVzLUZyYW7Dp29pcw0KK0RhdWNoZXIsIEFkb2xmDQorRGF1bGzDqSwgSmVhbg0KK0RhdW1pZXIsIEhvbm9yw6kNCitEYXV4LCBDLiBFZG1vbmQNCitEYXV6YXRzLCBBZHJpZW4NCitEYXZlbnBvcnQsIElhbg0KK0RhdmlkLCBDaGFybGVzDQorRGF2aWQsIEdlcmFyZA0KK0RhdmlkLCBKYWNxdWVzLUxvdWlzDQorRGF2aWQsIE1pY2hhZWwNCitEYXZpZHNvbiwgSm8NCitEYXZpZHNvbiwgUm9iZXJ0DQorRGF2aWUsIEFsYW4NCitEYXZpZXMsIEFydGh1ciBCb3dlbg0KK0RhdmllcywgRGFubnkNCitEYXZpZXMsIERhdmlkDQorRGF2aWVzLCBKb2huDQorRGF2aWVzLCBLZW5uZXRoDQorRGF2aWVzLCBULg0KK0RhdmlzLCBDaGFybGVzIEhhcm9sZA0KK0RhdmlzLCBEb3VnbGFzDQorRGF2aXMsIEVtbWEgRWFybGVuYmF1Z2gNCitEYXZpcywgR2VuZQ0KK0RhdmlzLCBIZW5yeSBXaWxsaWFtIEJhbmtzDQorRGF2aXMsIEpvaG4gU2NhcmxldHQNCitEYXZpcywgSm9zZXBoIEguDQorRGF2aXMsIFJpY2hhcmQgVGhvbWFzDQorRGF2aXMsIFN0dWFydA0KK0RhdmlzLCBVbHlzc2VzDQorRGF2aXMsIFdpbGxpYW0NCitEYXcsIExlaWxhDQorRGF3ZSwgR2VvcmdlDQorRGF3ZXMsIEVkd2luDQorRGF3c29uLCBEYXZpZA0KK0Rhd3NvbiwgSmFuZXQNCitEYXdzb24tV2F0c29uLCBKb2huDQorRGF5LCBGb3JzaGF3DQorRGF5LCBGcmFuY2lzDQorRGF5LCBGcmFuaw0KK0RheWVzLCBFZHdhcmQNCitEZSBCYWNrZXIsIEphY3F1ZXMNCitkZSBDaGlyaWNvLCBHaW9yZ2lvDQorRGUgRm9yZXN0LCBSb3kNCitEZSBGcmFuY2lhLCBQZXRlcg0KK0RlIEdyZXksIFNpciBSb2dlcg0KK0RlIEhhdmVuLCBGcmFua2xpbg0KK2RlIEtvb25pbmcsIEVsYWluZSBGcmllZA0KK2RlIEtvb25pbmcsIFdpbGxlbQ0KK0RlIExvdXRoZXJib3VyZywgUGhpbGlwcGUgSmFjcXVlcw0KK2RlIE1leWVyLCBCYXJvbiBBZG9sZiBHYXluZQ0KK0RlIE1vbmNoYXV4LCBDYXRoeQ0KK0RlIE1vcmdhbiwgRXZlbHluDQorZGUgUml2ZXJhLCBKb3PDqQ0KK2RlIFN0YWVsLCBOaWNob2xhcw0KK2RlIFZyaWVzLCBBdWtlDQorRGUgV2lsZGUsIFNhbXVlbA0KK0RlIFdpbnQsIFBldGVyDQorRGUgV2l0dGUsIFBldGVyDQorRGVhY29uLCBKYW1lcw0KK0RlYWNvbiwgUmljaGFyZA0KK0Rlw6FrLcOJYm5lciwgTGFqb3MNCitEZWFraW4sIEVkd2luDQorRGVBbmRyZWEsIEpvaG4NCitEZWFyZSwgSm9obg0KK0RlYXJ0aCwgSGVucnkgR29sZGVuDQorZGUnQmFyYmFyaSwgSmFjb3BvDQorRGViYXNzaWdlLCBCbGFrZQ0KK0RlYmF0LVBvbnNhbiwgRWRvdWFyZA0KK0RlYnVjb3VydCwgTG91aXMtUGhpbGliZXJ0DQorRGVDYW1wLCBKb3NlcGgNCitEZUNhbXAsIFJhbHBoIEUuDQorRGVjYW1wcywgQWxleGFuZHJlLUdhYnJpZWwNCitEZUNhcmF2YSwgUm95DQorRGVDcmVlZnQsIEpvc8OpDQorZGVEZWlnbywgSnVsaW8NCitEZWZyYW5jZSwgTMOpb25hcmQNCitEZWdhcywgRWRnYXINCitEZWdvdXZlIGRlIE51bmNxdWVzLCBXaWxsaWFtDQorRGVHcmFpbGx5LCBWLg0KK0RlaGFhcywgQWxpY2UgUHJlYmxlIFR1Y2tlcg0KK0RlaG4sIEFkb2xmDQorRGVobmVyLCBEb3JvdGh5DQorRGVra2VycywgQWQNCitkZWwgQ2FzZW50aW5vLCBKYWNvcG8NCitEZWwgUGV6em8sIEx1Y2lvDQorRGVsYWNyb2l4LCBFdWfDqG5lDQorRGVsYW1vdHRlLCBXaWxsaWFtIEFsZnJlZA0KK0RlbGFuZXksIEJlYXVmb3JkDQorRGVsYW5leSwgSm9zZXBoDQorRGVsYXJvY2hlLCBQYXVsDQorRGVsYXVuYXksIEp1bGVzLUVsaWUNCitEZWxhdW5heSwgUm9iZXJ0DQorRGVsYXVuYXksIFNvbmlhDQorRGVsYXVuZSwgw4l0aWVubmUNCitEZWxib3MsIEMuIEVkbXVuZA0KK0RlbGVuLCBEaXJjayB2YW4NCitEZWxmaW5vDQorZGVsbGEgVmFsbGUsIEZpbGlwcG8NCitkZWxsJ0FiYmF0ZSwgTmljY29sw7INCitEZWxvcnQsIENoYXJsZXMgRWRvdWFyZA0KK0RlbHZhdXgsIFBhdWwNCitEZWx2aWxsZSwgSmVhbg0KK0RlbHZveWUsIFdpbQ0KK0RlbHllbiwgSmFjcXVlcy1GcmFuw6dvaXMNCitEZW1hcm5lLCBKZWFuLUxvdWlzDQorRGVtYXJ0ZWF1LCBHaWxsZXMNCitEZU1hcnRlbGx5LCBKb2huIFMuDQorZGVNYXJ0aW5pLCBKb3NlcGgNCitEZW11dGgsIENoYXJsZXMNCitEZW5lcywgQWduZXMNCitEZW5oYW0sIEpvaG4gQ2hhcmxlcw0KK0RlbmlzLCBNYXVyaWNlDQorRGVuaXNvbiBMaW1uZXIsIFRoZQ0KK0Rlbm5lciwgQmFsdGhhc2FyDQorRGVubmluZywgU3RlcGhlbiBQb3ludHoNCitEZW5uaXMsIE1pY2hhZWwNCitEZW5uaXMsIFdheW5lDQorRGVubnksIFJvYnluDQorRGVub24sIEJhcm9uIERvbWluaXF1ZSBWaXZhbnQNCitEZXBlcm8sIEZvcnR1bmF0bw0KK0RlcHBlLCBGZXJkaW5hbmQNCitEZXJhaW4sIEFuZHLDqQ0KK0RlcmJ5LCBXaWxsaWFtDQorRGVybm92aWNoLCBEb24NCitkZSdSb2JlcnRpLCBFcmNvbGUNCitEZXJvdWluLCBSZW7DqQ0KK0RlcnVldCwgQ2xhdWRlDQorRGVzIEdyYW5nZXMsIERhdmlkDQorRGVzYm91dGluLCBNYXJjZWxsaW4gR2lsYmVydA0KK0Rlc2NoLCBGcmFuayBILg0KK0Rlc2NvdXJ0aXMsIENoYXJsZXMtTWVsY2hpb3INCitEZXNoYXlzLCBKZWFuLUJhcHRpc3RlDQorRGVzaWRlcmlvIGRhIFNldHRpZ25hbm8NCitEZXNpZGVyaW8sIFZpbmNlbnQNCitEZXNqYXJkaW5zLCBNYXJ0aW4NCitEZXNwaWF1LCBDaGFybGVzDQorRGVzcG9ydGVzLCBBbGV4YW5kcmUtRnJhbsOnb2lzDQorRGVzc2FyLCBMb3VpcyBQYXVsDQorRGVTdGFlYmxlciwgU3RlcGhlbg0KK0Rlc3VibGVvLCBNaWNoZWxlDQorRMOpdGFpbGxlLCDDiWRvdWFyZA0KK0RldG91Y2hlLCBIZW5yeS1KdWxpZW4NCitEZXZhbWJleiwgQW5kcsOpDQorRGV2ZXJlbGwsIFdhbHRlciBIb3dlbGwNCitEZXbDqXJpYSwgQWNoaWxsZQ0KK0RldmlsbHksIExvdWlzLVRow6lvZG9yZQ0KK0RldmlzLCBBbnRob255DQorRGV2aXMsIEFydGh1cg0KK0Rldm90bywgSm9obg0KK0RldywgSmFtZXMNCitEZVdlZXNlLCBCb2INCitEZVdlZXNlLCBHZW5uaWUNCitEZVdlZXNlLCBSb2JlcnQNCitEZXdpbmcsIE1hcmlhIE9ha2V5DQorRGV3aW5nLCBUaG9tYXMgV2lsbWVyDQorRGV4dGVyLCBIZW5yeQ0KK0RleHRlciwgV2FsdGVyDQorZCdIb25kZWNvZXRlciwgTWVsY2hpb3INCitEaSBSdWdnaWVybywgQ2FybWluZQ0KK2RpIFN1dmVybywgTWFyaw0KK0RpYWwgU3IuLCBUaG9ybnRvbg0KK0RpYW1vbmQsIERyLiBIdWdoIFdlbGNoDQorRGlhbmEsIEJlbmVkZXR0bw0KK0TDrWF6IGRlIGxhIFBlw7FhLCBOYXJjaXNzZS1WaXJnaWxlDQorRGliYmV0cywgSmFuDQorRGlja2Vyc29uLCBSb2JlcnQNCitEaWNraW5zb24sIFByZXN0b24NCitEaWNraW5zb24sIFNpZG5leSBFLg0KK0RpY2tzZWUsIFNpciBGcmFuaw0KK0RpY2tzZWUsIFRob21hcyBGcmFuY2lzDQorRGlja3NvbiwgSmFuZQ0KK0RpZWJlbmtvcm4sIFJpY2hhcmQNCitEaWVnbyBkZSBQZXNxdWVyYQ0KK0RpZXByYWFtLCBBYnJhaGFtDQorRGlldHJpY2gsIENocmlzdGlhbiBXaWxoZWxtIEVybnN0DQorRGlnZ3MsIFBlZ2d5DQorRGlnaHRvbiwgUmljaGFyZA0KK0RpZ2h0b24sIFJvYmVydA0KK0RpamNrLCBGbG9yaXMgdmFuDQorRGlsbGluZ2hhbSwgUmljaw0KK0RpbGxpcywgSm9oYW5uIEdlb3JnIHZvbg0KK0RpbmUsIEppbQ0KK0RpbmVyc3RlaW4sIEphbWVzDQorRGluZyBDb25nDQorRGluZyBZYW55b25nDQorRGluZyBZdW5wZW5nDQorRGluZ2xpbmdlciwgSm9oYW5uIE1lbGNoaW9yDQorRGluc21vcmUsIFN0ZXBoZW4NCitEaW9uaXNpaQ0KK0RpcHJlLCBOaWNvbGFzDQorRGlzY29uLCBXYXJyZW4NCitEaXgsIEV1bGFiZWUNCitEaXgsIE90dG8NCitEaXhvbiwgS2VuDQorRGl4b24sIE1hcmlhDQorRGl4b24sIE1heW5hcmQNCitEaXhvbiwgV2lsbGlhbQ0KK0RpemlhbmksIEdhc3BhcmUNCitEbywgR2lvdmFubmkNCitEb2JicywgRXZlcmV0dA0KK0RvYmVsbCwgV2lsbGlhbQ0KK0RvYnNvbiwgV2lsbGlhbQ0KK0RvYnNvbiwgV2lsbGlhbSBDaGFybGVzIFRob21hcw0KK0RvZGQsIERhbmllbA0KK0RvZGQsIEZyYW5jaXMNCitEb2RkLCBMYW1hcg0KK0RvZGQsIFJvYmVydA0KK0RvZGdlLCBXaWxsaWFtIERlTGVmdHdpY2gNCitEb2VzYnVyZywgVGhlbyB2YW4NCitEb2hhbiwgS2FpZ2V0c3Vkbw0KK0RvaGFub3MsIFN0ZXZhbg0KK0RvaWcsIFBldGVyDQorRG9pc25lYXUsIFJvYmVydA0KK0RvbGFuLCBFbGl6YWJldGgNCitEb2xjaSwgQ2FybG8NCitEb2xwaCwgSm9obiBIZW5yeQ0KK0RvbWJyb3dza2ksIENhcmwgUml0dGVyIHZvbg0KK0RvbWVuaWNoaW5vDQorRG9tZW5pY28gRGUnQ29yaQ0KK0RvbWVuaWNvIGRpIEJhcnRvbG8NCitEb21lbmljbyBkaSBQYXJpcw0KK0RvbWVuaWNvIFZlbmV6aWFubw0KK0RvbWluZ3VleiwgT3NjYXINCitEb21pbmljaXMsIEdpbm8gZGUNCitEb25hZ2gsIFJpdGENCitEb25haHVlLCBWaWMNCitEb25hbGQgTGlwc2tpDQorRG9uYWxkc29uLCBBbnRob255DQorRG9uw6F0LCBKw6Fub3MNCitEb25hdGVsbG8NCitEb25hdGksIEVucmljbw0KK0RvbmNrLCBHZXJhcmQNCitEb25lciwgTWljaGVsZSBPa2ENCitEb25nIFFpY2hhbmcNCitEb25nZW4sIERpb255cyB2YW4NCitEb25nZW4sIEtlZXMgdmFuDQorRG9ubmVsbHksIENodWNrDQorRG9ubmVyLCBHZW9yZyBSYXBoYWVsDQorRG9ub2dodWUsIEx5bm4NCitEb25vaG8sIEdhaW5lcyBSdWdlcg0KK0Rvb2xpdHRsZSwgQW1vcw0KK0Rvb3JuaWssIEZyYW5zIHZhbg0KK0RvcmF6aW8sIFBpZXJvDQorRG9yw6ksIEd1c3RhdmUNCitEb3JmbWVpc3RlciwgSXN0dsOhbg0KK2QnT3Jsw6lhbnMsIEV2cmFyZA0KK0Rvcm5lciwgSm9oYW5uDQorRG9ycmllbiwgQ2FybG9zDQorRG9ycmlzLCBSb3kNCitEb3JzZXksIEpvaG4NCitEJ09yc2ksIEFjaGlsbGUNCitEb3NhbWFudGVzLCBGcmFuY2lzY28NCitEb3NzaSwgRG9zc28NCitEb3UsIEdlcnJpdA0KK0RvdWdoZXJ0eSwgUGF1bA0KK0RvdWdodGVuLCBBbGljZQ0KK0RvdWdodHksIFRob21hcw0KK0RvdWdodHksIFdpbGxpYW0NCitEb3VnbGFzLCBBYXJvbg0KK0RvdWdsYXMsIEVkd2luDQorRG91Z2xhcywgU2lyIFdpbGxpYW0gRmV0dGVzDQorRG91cmlzDQorRG91dG5leSwgQ2hhcmxlcw0KK0RvdmUsIEFydGh1cg0KK0Rvd2xpbmcsIFJvYmVydA0KK0Rvd25hcmQsIEViZW5lemVyIE5ld21hbg0KK0Rvd25pbmcsIFRvbQ0KK0Rvd25tYW4sIEpvaG4NCitEb3lsZSwgQ2hhcmxlcyBBbHRhbW9udA0KK0RveWxlLCBSaWNoYXJkDQorRHJhcGVyLCBIZXJiZXJ0DQorRHJhcGVyLCBXaWxsaWFtIEZyYW5rbGluDQorRHJlY2hzbGVyLCBKb2hhbm4gQmFwdGlzdA0KK0RyZXcsIENsZW1lbnQNCitEcmV3ZXMsIFdlcm5lcg0KK0RyZXllciwgQ2xhcmljZQ0KK0RyaWdncywgRWxzaWUNCitEcsO2bGxpbmcsIE1hcnRpbg0KK0Ryb3N0LCBXaWxsZW0NCitEcm91YWlzLCBGcmFuw6dvaXMtSHViZXJ0DQorRHJvdWFpcywgSmVhbi1HZXJtYWluDQorRHJ1bW1vbmQsIEFydGh1cg0KK0RydW1tb25kLCBTYW11ZWwNCitEcnlzZGFsZSwgUnVzc2VsbA0KK0R1IE1hdXJpZXIsIEdlb3JnZQ0KK0R1IFppbGluZw0KK0R1Ym9pcywgSmFjcXVlcw0KK0R1Ym9pcy1EcmFob25ldCwgQWxleGFuZHJlLUplYW4NCitEdWJyZXVpbCwgVmljdG9yDQorRHVidWZlLCBMb3Vpcy1FZG91YXJkDQorRHVidWZmZXQsIEplYW4NCitEdWNjaW8gZGkgQnVvbmluc2VnbmENCitEdWNoYW1wLCBNYXJjZWwNCitEdWNoYW1wLVZpbGxvbiwgUmF5bW9uZA0KK0R1Y2ssIEphY29iDQorRHVjcmV1eCwgSm9zZXBoDQorRHVjcmV1eCwgUm9zZSBBZMOpbGHDr2RlDQorRHVkbGV5LCBGcmFuayBWLg0KK0R1ZXosIEVybmVzdA0KK0R1ZnJlc25lLCBDaGFybGVzDQorRHVmeSwgUmFvdWwNCitEdWdkYWxlLCBUaG9tYXMgQ2FudHJlbGwNCitEdWdnZXIsIEpvaG4NCitEdWdoZXQsIEdhc3BhcmQNCitEdWphcmRpbiwgS2FyZWwNCitEdWstaHl1biwgQ2hvDQorRHVsYWMsIEVkbXVuZA0KK0R1bWVzbmlsIHRoZSBZb3VuZ2VyLCBQaWVycmUgTG91aXMNCitEdW1vbmQsIEZyYW5rDQorRHVtb25zdGllciwgUGllcnJlDQorRHVtb250LCBKYWNxdWVzLUVkbWUNCitEdW1vdXN0aWVyIHRoZSBFbGRlciwgUGllcnJlDQorRHVuYW5kLCBKZWFuDQorRHVuYmFyLCBFdmVseW4NCitEdW5iYXIsIEhhcm9sZCBDcm9ja2VyDQorRHVuYmllciwgQXVndXN0dXMNCitEdW5jYW4sIEpvaG4NCitEdW5jYW4sIFJvYmVydA0KK0R1bmNhbiwgU3RldmUNCitEdW5jYW5zb24sIFJvYmVydCBTY290dA0KK0R1bmRhcywgRG91Z2xhcw0KK0R1bmtlciwgQmFsdGhhemFyIEFudG9uDQorRHVubGFwLCBXaWxsaWFtDQorRHVub3llciBkZSBTZWdvbnphYywgQW5kcsOpDQorRHVuc3QsIEhlaW5yaWNoDQorRHVudG9uLCBXaWxsaWFtIEhlcmJlcnQNCitEdXBhcmMsIEZyYW7Dp29pc2UNCitEdXBhcywgSmVhbg0KK0R1cGxlc3NpcywgSm9zZXBoLVNpZmZyZWQNCitEdXBvbnQsIEdhaW5zYm9yb3VnaA0KK0R1cHLDoCwgRG9tZW5pY28NCitEdXByw6ksIEdpb3Zhbm5pDQorRHVwcsOpLCBHdWlsbGF1bWUNCitEdXByw6ksIEp1bGVzDQorRHVwcsOpLCBKdWxpZW4NCitEdXB1aXMsIEdlb3JnZXMNCitEdXF1ZXNub3ksIEZyYW7Dp29pcw0KK0R1cmFuY2VhdSwgU3V6YW5uZQ0KK0R1cmFuZCwgQXNoZXIgQi4NCitEdXJhbmQsIEpvaG4NCitEdXJhbnRpLCBGb3J0dW5hdG8NCitEdXJlbiwgVGVyZW5jZQ0KK0TDvHJlciwgQWxicmVjaHQNCitEdXJoYW0sIEpvc2VwaA0KK0R1cnJpZSwgR2VvcmdlIEhlbnJ5DQorRHVzYXJ0LCBDb3JuZWxpcw0KK0R1c2VpZ25ldXIsIEplaGFuDQorRHVzZW5iZXJ5LCBXYWx0ZXINCitEdXNraWV3aWN6LCBSaWNrDQorRHVza2lld2ljeiwgUmljaw0KK0R1dmFsLCBKZWFubmUNCitEdXZhbCwgTWFyYw0KK0R1dmVuZWNrLCBFbGl6YWJldGggTHltYW4gQm9vdHQNCitEdXZlbmVjaywgRnJhbmsNCitEdXZldCwgSmVhbg0KK0R1eWNraW5jaywgR2VyYXJkdXMNCitEdXlmaHV5c2VuLCBQaWV0ZXINCitEdXlzdGVyLCBXaWxsZW0gQ29ybmVsaXN6Lg0KK0R3aWdodCwgTWFiZWwNCitEd3llciwgTmFuY3kNCitEeWNlLCBXaWxsaWFtDQorRHllciwgQ2hhcmxlcyBHaWZmb3JkDQorRHllciwgTmFuY3kNCitFYWdsZSBQYWludGVyLCBUaGUNCitFYWtpbnMsIFN1c2FuIE1hY2Rvd2VsbA0KK0Vha2lucywgVGhvbWFzDQorRWFtZXMsIENoYXJsZXMNCitFYW1lcywgUmF5DQorRWFyZGxleSwgSm9hbg0KK0VhcmwsIE1hdWQNCitFYXJsLCBSYWxwaA0KK0VhcmwsIFJhbHBoIEVsZWFzZXIgV2hpdGVzaWRlDQorRWFybGUsIEF1Z3VzdHVzDQorRWFybG9tLCBSaWNoYXJkDQorRWFzdCwgU2lyIEFsZnJlZA0KK0Vhc3RsYWtlLCBTaXIgQ2hhcmxlcyBMb2NrDQorRWFzdG1hbiwgRW1pbHkNCitFYXN0bWFuLCBSaWNvDQorRWFzdG1hbiwgU2V0aA0KK0VhdG9uLCBDaGFybGVzIFdhcnJlbg0KK0VhdG9uLCBXaWxsaWFtIEIuDQorRWF0b24sIFd5YXR0DQorRWJlcnQsIENoYXJsZXMNCitFYmVydCwgTWFyeSBSb2JlcnRzDQorRWJlcnosIEpvc2VmDQorRWJ5LCBLZXJyDQorRWNoZXZhcnLDrWEsIEp1YW4gZGUNCitFY2thcnQsIENocmlzdGlhbg0KK0Vja2Vyc2JlcmcsIENocmlzdG9mZmVyIFdpbGhlbG0NCitFZGRpcywgRWRlbiBVcHRvbg0KK0VkZHksIERvbg0KK0VkZWxmZWx0LCBBbGJlcnQNCitFZGVuc2hhdywgQ2hhcmxlcw0KK0VkbW9uZHMsIEZyYW5jaXMgV2lsbGlhbQ0KK0VkbW9uZHNvbiwgV2lsbGlhbQ0KK0VkcmlkZ2UsIEhlbnJ5DQorRWRzb24sIEFsYW4NCitFZHdhcmRzLCBCaWxseQ0KK0Vkd2FyZHMsIEVkd2luDQorRWR3YXJkcywgR2VvcmdlIFdoYXJ0b24NCitFZHdhcmRzLCBNZWx2aW4NCitFZWNraG91dCwgR2VyYnJhbmQgdmFuIGRlbg0KK0VlcnR2ZWx0LCBBbmRyaWVzIHZhbg0KK0VnZW5hdSBNb29yZSwgSnVhbg0KK0VnZXJpLCBLYXJsIHZvbg0KK0VnZywgQXVndXN0dXMgTGVvcG9sZA0KK0VnZ2VtZXllciwgTWF1ZGUgS2F1Zm1hbg0KK0VnZ2VyLCBWaWxtb3MNCitFZ2dsZXN0b24sIFdpbGxpYW0NCitFZ3J5LCBKw7N6c2VmDQorRWhuaW5nZXIsIEpvaG4gV2hldHRlbg0KK0VocmVuYmVyZywgV2lsaGVsbSBTY2h1YmVydCB2YW4NCitFaWNoZW5iZXJnLCBGcml0eg0KK0VpY2hob2x0eiwgSmFjb2INCitFaWNraG9mZiwgR290dGZyZWQNCitFaWxzaGVtaXVzLCBMb3Vpcw0KK0Vpc2VuLCBDaGFybGVzIERvbWluaXF1ZQ0KK0Vpc2VudHJhZ2VyLCBKYW1lcw0KK0Vpc3VpLCBJY2hpcmFrdXRlaQ0KK0VpemFuLCBLaWt1Z2F3YQ0KK0VsaW5nYSwgUGlldGVyIEphbnNzZW5zDQorRWxrLCBHZXIgdmFuDQorRWxsZXJodXNlbiwgRmxvcmVuY2UgQ29vbmV5DQorRWxsaW90dCwgQ2hhcmxlcyBMb3JpbmcNCitFbGxpcywgSGFydmV5DQorRWxzaGVpbWVyLCBBZGFtDQorRWx2Z3JlbiwgR2lsDQorRW1lcnksIExpbg0KK0VtaW4sIFRyYWNleQ0KK0VtbWV0LCBMeWRpYSBGaWVsZA0KK0Vtc2xpZSwgQWxmcmVkIEVkd2FyZA0KK0VuY2tlbGwsIE1hZ251cw0KK0VuZ2xlaGVhcnQsIEdlb3JnZQ0KK0VuamFrdQ0KK0Vuam9ybGFzLCBEZWxwaGluDQorRW5reW8sIEthYnVraWRvDQorRW5uZWtpbmcsIEpvaG4gSi4NCitFbnNvciwgSmFtZXMNCitFcGlrdGV0b3MNCitFcGltZW5lcw0KK0Vwc3RlaW4sIEphY29iDQorRXJoYXJkdCwgTWljaGVsDQorRXJoYXJ0LCBHcmVnb3INCitFcmljaHNlbiwgVmlnaWxpdXMNCitFcmlja3NvbiwgTmFuY3kNCitFcmljc29uLCBEYXZpZA0KK0VybGViYWNoZXIsIE1hcnRoYSBNYXllcg0KK0VybnN0LCBKaW1teQ0KK0VybnN0LCBNYXgNCitFcm5zdCwgUnVkb2xwaA0KK0VycmksIEFnbm9sbyBkZWdsaQ0KK0VycsOzDQorRXJ0w6kNCitFcywgSmFjb2IgdmFuDQorRXNjYWxhbnRlLCBKdWFuIEFudG9uaW8NCitFc2NoZXIsIE0uQy4NCitFc2lndW8sIE1hZXN0cm8NCitFc3Bpbm9zYSwgSnVhbiBkZQ0KK0VzcG95LCBBbmdlbA0KK0Vzc2VsZW5zLCBKYWNvYg0KK0VzdGVuc2UsIEJhbGRhc3NhcmUNCitFc3RlcywgUmljaGFyZA0KK0V0aWRsb29pZSwgS2luZ21lYXRhDQorRXRyb2csIFNvcmVsDQorRXR0eSwgV2lsbGlhbQ0KK0V1bi1obywgS2ltDQorRXVwaHJvbmlvcw0KK0V1cG9saXMgUGFpbnRlcg0KK0V1cmljaCwgUmljaGFyZA0KK0V1c3RhY2UsIEEuVy4NCitFdXhpdGhlb3MNCitFdmFucywgRGUgU2NvdHQNCitFdmFucywgRWR3aW4NCitFdmFucywgRnJlZGVyaWNrIEhlbnJ5DQorRXZhbnMsIEdhcnkNCitFdmFucywgSmVzc2llIEJlbnRvbg0KK0V2YW5zLCBNYXJ5IFBhZ2UNCitFdmFucywgTWlubmllDQorRXZhbnMsIFdhbGtlcg0KK0V2ZXJkaW5nZW4sIEFsbGFydCB2YW4NCitFdmVyZGluZ2VuLCBDZXNhciB2YW4NCitFdmVyZ29vZCwgTWlsZXMNCitFdmVyZ29vZCwgUGhpbGlwDQorRXZlcnNlbiwgQWRyaWFudXMNCitFd2JhbmssIEpvaG4gV2lsc29uDQorRXdlbiwgUGF0ZXJzb24NCitFd29ydGgsIEhhbnMNCitFeGVraWFzDQorRXljaywgSHViZXJ0IHZhbg0KK0V5Y2ssIEphbiB2YW4NCitFeXJlLCBJdmFuDQorRXl0b24sIEFudGhvbnkNCitGYWJicmksIEFuZ2Vub3JlDQorRmFiZXIgdGhlIFlvdW5nZXIsIEpvaG4NCitGYWJlcmfDqSwgQ2FybA0KK0ZhYnJlLCBGcmFuw6dvaXMtWGF2aWVyDQorRmFicml0aXVzLCBCYXJlbnQNCitGYWJyaXRpdXMsIENhcmVsDQorRmFicm8sIEx1Y2lhbm8NCitGYWNjaW5pLCBQaWV0cm8NCitGYWVkLCBKb2huDQorRmFlZCwgVGhvbWFzDQorRmFlcywgUGV0ZXINCitGYWZhcmQsIEpvZQ0KK0ZhZ2FuLCBSb2JlcnQNCitGYWdnaSwgQWxmZW8NCitGYWlyYmFua3MsIEF2YXJkIFQuDQorRmFpcmJhbmtzLCBTZW1hbnRoYQ0KK0ZhaXJicm90aGVyLCBSb2INCitGYWlyd2VhdGhlciwgSWFuDQorRmFsY2lhdG9yZSwgRmlsaXBwbw0KK0ZhbGNpZXJpLCBCaWFnaW8NCitGYWxjb25ldCwgw4l0aWVubmUtTWF1cmljZQ0KK0ZhbGNvbmV0LCBQaWVycmUtw4l0aWVubmUNCitGYWxlcm8sIEx1aXMgUmljYXJkbw0KK0ZhbGssIEdhdGhpZQ0KK0ZhbHRlciwgSm9obiBQaGlsbGlwDQorRmFuIEt1YW4NCitGYW5jZWxsaSwgQ29zaW1vDQorRmFuY2VsbGksIFBpZXRybw0KK0ZhbmcgSml6aG9uZw0KK0ZhbmcgWmVuZ3hpYW4NCitGYW5nIFpoYW9saW4NCitGYW50aW4tTGF0b3VyLCBIZW5yaQ0KK0ZhbnphZ28sIENvc2ltbw0KK0ZhcmluYXRpLCBQYW9sbw0KK0ZhcmluZ3RvbiwgSm9zZXBoDQorRmFyaXMsIEpvc2VwaCBBbmRlcnNvbg0KK0ZhcmthcywgSXN0dsOhbg0KK0Zhcm0sIEdlcmFsZA0KK0Zhcm1lciwgSm9obg0KK0Zhcm55LCBIZW5yeSBGLg0KK0ZhcnF1YXJzb24sIERhdmlkDQorRmFyciwgRWxsZW4gQnVycGVlDQorRmFycmVsbCwgS2F0aGVyaW5lIExldmluZQ0KK0ZhcnJlciwgQ2hhcmxlcw0KK0ZhcnJlciwgSGVucnkNCitGYXJyZXJhcywgRnJhbmNpc2NvDQorRmF0dG9yaSwgR2lvdmFubmkNCitGYXV2ZWxldCwgSmVhbi1CYXB0aXN0ZQ0KK0ZheG9uLCBSaWNoYXJkDQorRmF5ZGhlcmJlLCBMdWMNCitGYXllLCBBc3NhbmUNCitGYXp6aW5pLCBQZXJpY2xlDQorRmVhcm9uLCBIaWxkYQ0KK0ZlY2hpbiwgTmljb2xhaQ0KK0ZlZGksIEdpdXNlcHBpDQorRmVpbmluZ2VyLCBMeW9uZWwNCitGZWl0ZWxzb24sIExvcnNlcg0KK0Zla2UsIFJvYmVydA0KK0ZlbGd1w6lyZXosIE1hbnVlbA0KK0ZlbmRlcmljaCwgQ2hhcmxlcw0KK0ZlbmRpLCBQZXRlcg0KK0ZlbmcgS2FuZ2hvdQ0KK0ZlbmcgTWVuZ2JvDQorRmVuZyBaaWthaQ0KK0Zlbm5la2VyLCBKb3NlZg0KK0ZlbnRvbiwgUm9nZXINCitGZW50b24sIFRlcnJ5DQorRsOpbnllcywgQWRvbGYNCitGZXJiZXIsIEhlcmJlcnQNCitGZXJlbmN6eSwgS8Ohcm9seQ0KK0Zlcmd1c29uLCBHZXJhbGQNCitGZXJuw6FuZGV6IExlZGVzbWEsIEdhYnJpZWwNCitGZXJuw6FuZGV6LCBHcmVnb3Jpbw0KK0Zlcm7DoW5kZXosIEx1aXMNCitGZXJuZWxleSBJLCBKb2huDQorRmVybmVsZXkgSUksIEpvaG4NCitGZXJyYW50IHkgVmF6cXVleiwgQW5nZWwNCitGZXJyYXJhLCBKYWNraWUNCitGZXJyYXJpLCBEZWZlbmRlbnRlDQorRmVycmFyaSwgR2F1ZGVuemlvDQorRmVycmF0LCBKZWFuLUpvc2VwaC1IaXBwb2x5dGUtUm9tYWluDQorRmVycmF0YSwgRXJjb2xlDQorRmVycmVuLCBKb2huDQorRmVycmVyLCBSYWZhZWwNCitGZXJyZXR0aSwgR2lvdmFubmkgRG9tZW5pY28NCitGZXJyacOocmUsIEZyYW7Dp29pcw0KK0ZlcnJpbGwsIE1hcnRpbiBFZGdhcg0KK0ZlcnksIEpvaG4NCitGZXRpLCBEb21lbmljbw0KK0ZldHRpbmcsIFJhaW5lcg0KK0ZldWNow6hyZSwgSmVhbi1KYWNxdWVzDQorRmV1ZXJiYWNoLCBBbnNlbG0NCitGZXVyZSwgR2VvcmdlcyBkZQ0KK0ZpZWxkLCBFcmFzdHVzIFNhbGlzYnVyeQ0KK0ZpZWxkLCBSb2JlcnQNCitGaWVsZGluZywgQW50aG9ueSBWYW5keWtlIENvcGxleQ0KK0ZpZW5lLCBFcm5lc3QNCitGaWd1ZWlyZWRvIGUgTWVsbG8sIFBlZHJvIEFtw6lyaWNvIGRlDQorRmlsYXJldGUNCitGaWxkZXMsIFNpciBMdWtlDQorRmlsaXBwaSwgU2ViYXN0aWFubw0KK0ZpbGxpZXIsIFNjb3R0DQorRmlsb25vdiwgUGF2ZWwNCitGaW5jaCwgRnJhbmNpcyBPbGl2ZXINCitGaW5jaywgSGF6ZWwNCitGaW5lLCBQZXJsZQ0KK0ZpbmUsIFNhbGx5IFMuDQorRmluZWxsaSwgR2l1bGlhbm8NCitGaW5sYXksIElhbiBIYW1pbHRvbg0KK0ZpbnNvbiwgTHVkb3ZpY3VzDQorRmlvcmVudGlubywgQW50b25pbw0KK0Zpb3JlbnRpbm8sICdQc2V1ZG8nIFBpZXIgRnJhbmNlc2NvDQorRmlvcmksIEVybmVzdG8gZGUNCitGaW9yaW5pLCBDbGVtICYgVG9ueQ0KK0Zpcm1pbi1HaXJhcmQsIE1hcmllLUZyYW7Dp29pcw0KK0Zpc2NoZXIsIFBhdWwNCitGaXNjaGwsIEVyaWMNCitGaXNjaGxpLCBQZXRlcg0KK0Zpc2gsIEphbmV0DQorRmlzaGVyLCBBbHZhbg0KK0Zpc2hlciwgQW5uYQ0KK0Zpc2hlciwgRWxpemFiZXRoIENsYXkNCitGaXNoZXIsIEVsbGVuIEJvd2RpdGNoIFRoYXllcg0KK0Zpc2hlciwgTWFyaw0KK0Zpc2hlciwgU2FtdWVsIE1lbHRvbg0KK0Zpc2hlciwgVmVybm9uDQorRmlzaywgTGFycy1FcmlrDQorRmlza2UsIEdlcnRydWRlDQorRml0Y2gsIFdhbHRlcg0KK0ZpdHRvbiwgSGVkbGV5DQorRml0emdlcmFsZCwgSm9obiBBbnN0ZXINCitGaXR6Z2VyYWxkLCBMaW9uZWwNCitGbGFjaywgQXVkcmV5DQorRmxhZ2csIEphbWVzIE1vbnRnb21lcnkNCitGbGFtZW4sIEFuc2VsbWUNCitGbGFtZW5nLCBMw6lvcG9sZA0KK0ZsYW5hZ2FuLCBCYXJyeQ0KK0ZsYW5kcmluLCBIaXBwb2x5dGUNCitGbGFubmFnYW4sIEpvaG4gQmVybmFyZA0KK0ZsYXZpbiwgRGFuDQorRmxheG1hbiwgSm9obg0KK0ZsZWdlbCwgR2VvcmcNCitGbGVpc2NobmVyLCBSaWNoYXJkDQorRmxleG9yLCBTYW1zb24NCitGbGlja2UsIEdlcmxhY2gNCitGbGluY2ssIEdvdmVydA0KK0ZsaW50LCBXaWxsaWFtIExlcm95DQorRmxpcGFydCwgQ2hhcmxlcw0KK0Zsb3JpcywgQ29ybmVsaXMNCitGbG9yaXMsIEZyYW5zDQorRmxvcnksIEFydGh1ciBMLg0KK0ZvZ2FydHksIE1hcnkgQmV0aA0KK0ZvZ2dpbmksIEdpYW1iYXR0aXN0YQ0KK0ZvbGV5LCBKb2huIEhlbnJ5DQorRm9saWFnZSBNYXN0ZXINCitGb2xpZ25vLCBCYXJ0b2xvbWVvIGRpIFRvbW1hc28gZGENCitGb2xpbnNiZWUsIEpvaG4gRnVsdG9uDQorRm9sd2VsbCwgSm9keQ0KK0ZvbnRhbmEsIEFubmliYWxlDQorRm9udGFuYSwgTGF2aW5pYQ0KK0ZvbnRhbmEsIEx1Y2lvDQorRm9udGFuYSwgUHJvc3Blcm8NCitGb250ZWJhc3NvLCBGcmFuY2VzY28NCitGb290ZSwgTWFyeQ0KK0Zvb3RlLCBXaWxsIEhvd2UNCitGb3BwYSwgVmluY2Vuem8NCitGb3JhYm9zY28sIEdpcm9sYW1vDQorRm9yYWluLCBKZWFuLUxvdWlzDQorRm9yYmVzLCBEb25hbGQgRW1lcnkNCitGb3JiZXMsIEVsaXphYmV0aCBBZGVsYSBBcm1zdHJvbmcNCitGb3JiZXMsIEpvaG4gQ29saW4NCitGb3JiZXMsIFN0YW5ob3BlIEFsZXhhbmRlcg0KK0ZvcmQsIEVkd2FyZCBPbnNsb3cNCitGb3JkLCBMYXVyZW4NCitGb3JkLCBXaWxsaWFtDQorRsO2cmcsIEfDvG50ZXINCitGb3JyZXN0LCBKb25hdGhhbiBBbGlzdGFpcg0KK0ZvcnJlc3RhbGwsIFRvbQ0KK0ZvcnNtYW4sIENodWNrDQorRm9yc3RlciwgVGhvbWFzDQorRm9yc3l0aCwgV2lsbGlhbQ0KK0ZvcnRlc2N1ZS1Ccmlja2RhbGUsIEVsZWFub3INCitGb3J0aW4sIE1hcmMtQXVyw6hsZQ0KK0ZvcnRpbmksIEdpb3ZhY2NoaW5vDQorRm9ydHVueSB5IE1hZHJhem8sIE1hcmlhbm8NCitGb3J0dW55IHkgTWFyc2FsLCBNYXJpYW5vDQorRm9ydHksIEplYW4gSmFjcXVlcw0KK0Zvc2NoaSwgUGllcmZyYW5jZXNjbw0KK0Zvc3NhdGksIERhdmlkZSBBbnRvbmlvDQorRm9zc28sIFNhbXVlbA0KK0Zvc3RlciwgQmVuDQorRm9zdGVyLCBNeWxlcyBCaXJrZXQNCitGb3N0ZXIsIFdpbGxpYW0NCitGb3VqaXRhLCBUc3Vnb2hhcnUNCitGb3VuZHJ5IFBhaW50ZXIsIFRoZQ0KK0ZvdXF1ZXQsIEplYW4NCitGb3VyIEJlYXJzDQorRm91cm5pZXIsIEFsZXhpcyBKZWFuDQorRm93bGUsIElzYWFjDQorRm94LCBFLiBQaGlsbGlwcw0KK0ZveSBTdXpvci1Db3TDqSwgTWFyYy1BdXLDqGxlIGRlDQorRnJhZ29uYXJkLCBKZWFuLUhvbm9yw6kNCitGcmFnb25hcmQsIE1hcmllIEFubmUgR8OpcmFyZA0KK0ZyYW1wdG9uLCBFZHdhcmQgUmVnaW5hbGQNCitGcmFtcHRvbiwgSG9sbGlzDQorRnJhbXB0b24sIE1lcmVkaXRoDQorRnJhbmNhbGFuY2lhLCBSaWNjYXJkbw0KK0ZyYW5jYXZpbGxhLCBQaWV0cm8NCitGcmFuY2UsIEV1cmlsZGEgTG9vbWlzDQorRnJhbmNlcywgRXN0ZWJhbg0KK0ZyYW5jw6lzLCBOaWNvbMOhcw0KK0ZyYW5jZXNjaGluaSwgTWFyY2FudG9uaW8NCitGcmFuY2VzY28gZGUgTXVyYQ0KK0ZyYW5jZXNjbyBkaSBHaW9yZ2lvIE1hcnRpbmkNCitGcmFuY2VzY28gZGkgVmFubnVjY2lvDQorRnJhbmNoaW5hLCBOaW5vDQorRnJhbmNob3lzIHRoZSBZb3VuZ2VyLCBMdWNhcw0KK0ZyYW5jaWEsIEZyYW5jZXNjbw0KK0ZyYW5jaWEsIEZyYW7Dp29pcyBMb3VpcyBUaG9tYXMNCitGcmFuY2lhYmlnaW8NCitGcmFuY2lzLCBKb2huIEYuDQorRnJhbmNpcywgTWFyaw0KK0ZyYW5jaXMsIFNhbQ0KK0ZyYW5ja2VuIEksIEZyYW5zDQorRnJhbmNrZW4gSUksIEZyYW5zDQorRnJhbmNrZW4gSUksIEhpZXJvbnltdXMNCitGcmFuY28sIEdpb3Zhbm5pIEJhdHRpc3RhDQorRnJhbmNxdWV2aWxsZSwgUGllcnJlDQorRnJhbmssIE1hcnkNCitGcmFuaywgUm9iZXJ0DQorRnJhbmtlbCwgR29kZnJleQ0KK0ZyYW5rZW50aGFsZXIsIEhlbGVuDQorRnJhbnplbiwgQXVndXN0DQorRnJhc2NvbmksIEFudG9uaW8NCitGcmFzZXIsIEFsZXhhbmRlcg0KK0ZyYXNlciwgQ2Fyb2wgSG9vcm4NCitGcmFzZXIsIEphbWVzIEVhcmxlDQorRnJhdGVyLCBXaWxsaWFtDQorRnJhdGluLCBDaHJpc3RvcGhlDQorRnJhemV0dGEsIEZyYW5rDQorRnJlYWtlIExpbW5lciwgVGhlDQorRnJlY2tlbHRvbiwgU29uZHJhDQorRnJlZGRpZSwgV2lsaGVsbQ0KK0Zyw6lkw6lyaWMsIEzDqW9uDQorRnJlZWxhbmQsIEFubmEgQ2hhbWJlcmxhaW4NCitGcmVlbWFuLCBEb24NCitGcmVlbWFuLCBFZGl0aA0KK0ZyZWVtYW4sIEphbmUNCitGcmVpYmVyZ2VyLCBCZW5ueQ0KK0ZyZWlsaWNoZXIsIEphbmUNCitGcsOpbGF1dCwgSmVhbg0KK0ZyZW1pbiwgUmVuw6kNCitGcmVuY2gsIERhbmllbCBDaGVzdGVyDQorRnJlbmNoLCBKYXJlZA0KK0Zyw6hyZSwgQ2hhcmxlcy1UaMOpb2RvcmUNCitGcmVzbmF5ZSwgUm9nZXIgZGUgbGENCitGcmV1ZCwgTHVjaWFuDQorRnJldW5kbGljaCwgT3R0bw0KK0ZyZXksIFZpb2xhDQorRnJpZWJlcnQsIEpvc2VwaA0KK0ZyaWVkZWJlcmcsIFBlZHJvDQorRnJpZWRsYW5kZXIsIElzYWMNCitGcmllZGxhbmRlciwgTGVlDQorRnJpZWRyaWNoLCBDYXNwYXIgRGF2aWQNCitGcmllbmQsIERvbmFsZA0KK0ZyaWVuZCwgV2FzaGluZ3Rvbg0KK0ZyaWVzLCBFcm5zdA0KK0ZyaWVzZSwgUmljaGFyZA0KK0ZyaWVzZWtlLCBGcmVkZXJpY2sgQ2FybA0KK0ZyaWVzeiwgT3Rob24NCitGcmluaywgRGFtZSBFbGlzYWJldGgNCitGcmlwcCwgQWxmcmVkIERvd25pbmcNCitGcmlwcCwgR2VvcmdlIEFydGh1cg0KK0ZyaXBwLCBUaG9tYXMNCitGcmlzaG11dGgsIEhhcnJpZXQgV2hpdG5leQ0KK0ZyaXRoLCBXaWxsaWFtIFBvd2VsbA0KK0ZyaXRzY2gsIEthdGhhcmluYQ0KK0Zyb21lbnQsIE5pY29sYXMNCitGcm9tZW50aW4sIEV1Z8OobmUNCitGcm9tZW50LU1ldXJpY2UsIEZyYW7Dp29pcy1Ew6lzaXLDqQ0KK0Zyb3N0LCBKb2huDQorRnJvc3QsIFRlcnJ5DQorRnJvc3QsIFdpbGxpYW0gRWR3YXJkDQorRnJ5LCBSb2dlcg0KK0ZyeWUsIFRob21hcw0KK0Z1IEJhb3NoaQ0KK0Z1IEVyc2hpDQorRnVlcnRlcywgTG91aXMgQWdhc3Npeg0KK0bDvGdlciwgRnJpZWRyaWNoIEhlaW5yaWNoDQorRnVqaXdhcmEgTm9idXphbmUNCitGdWppd2FyYSBUYWthbm9idQ0KK0Z1a2EsIEV2YQ0KK0Z1bGxlciwgQnVja21pbnN0ZXINCitGdWxsZXIsIEdlb3JnZQ0KK0Z1bGxlciwgTWV0YSBXYXJyaWNrDQorRnVsbHdvb2QsIEpvaG4NCitGdWx0b24sIEhhbWlzaA0KK0Z1bmdhaSwgQmVybmFyZGlubw0KK0Z1cmluaSwgRnJhbmNlc2NvDQorRnVyc2UsIENoYXJsZXMgV2VsbGluZ3Rvbg0KK0Z1c2F0YW5lDQorRnVzZWxpLCBKb2huIEhlbnJ5DQorRnVzcywgQWRhbQ0KK0Z5dCwgSmFuDQorR2FiYmlhbmksIEFudG9uIERvbWVuaWNvDQorR2FibywgTmF1bQ0KK0dhZGRpLCBBZ25vbG8NCitHYWRkaSwgVGFkZGVvDQorR2FlcnRuZXIsIEVkdWFyZA0KK0fDoWcsIFdhbmRhDQorR2FnZW4sIFJvYmVydA0KK0dhZ2luaSwgRG9tZW5pY28NCitHYWdub24sIENsYXJlbmNlDQorR2FpbnNib3JvdWdoLCBUaG9tYXMNCitHYWzDoW4sIEp1bGlvDQorR2FsZSwgV2lsbGlhbQ0KK0dhbGxhZ2hlciwgU2VhcnMNCitHYWxsYWl0LCBMb3Vpcw0KK0dhbGxlIEksIENvcm5lbGlzDQorR2FsbMOpLCBFbWlsZQ0KK0dhbGxlLCBQaGlsaXANCitHYWxsZWdvLCBGZXJuYW5kbw0KK0dhbGxlbi1LYWxsZWxhLCBBa3NlbGkNCitHYWxsaWFuaSwgT21hcg0KK0dhbGxvLCBPc2Nhcg0KK0dhbWJhcmEsIExhdHRhbnppbw0KK0dhbWJsZSwgSm9obg0KK0dhbWVsaW4sIEphY3F1ZXMNCitHYW1tZWxsLCBSLkguIEl2ZXMNCitHYW5kb2xmaSwgR2FldGFubw0KK0dhbmRvbGZpLCBVYmFsZG8NCitHYW5kb2xmaW5vIGRhIFJvcmV0bw0KK0dhbm8gZGkgRmF6aW8NCitHYW5zLCBEb25uYSBILg0KK0dhbnNldm9vcnQgTGltbmVyLCBUaGUNCitHYW5zbywgRW1pbA0KK0dhbyBGZW5naGFuDQorR2FvIEppYW5mdQ0KK0dhbyBRaWZlbmcNCitHYXJiZXIsIERhbmllbA0KK0dhcmNpYSwgUnVwZXJ0DQorR2FyZG5lciwgRGFuaWVsDQorR2FyZG5lciwgVG9kZA0KK0dhcmVsbGksIEZyYW5jbw0KK0dhcmdhbGxvLCBQYWJsbw0KK0dhcmdpdWxvLCBEb21lbmljbw0KK0dhcm1hbiwgRWQNCitHYXJuZXIsIFNhcmFoDQorR2FybmllciwgTWljaGVsDQorR2Fyb2ZhbG8NCitHYXJyYXJkLCBHZW9yZ2UNCitHYXJyZXRzb24sIE1hcnRpbiBTLg0KK0dhcnJpZ3VzLCBLZWl0aA0KK0dhcnN0aW4sIE5vcm1hbg0KK0dhcnRuZXIsIEFsbGFuDQorR2FyemEsIENhcm1lbiBMb21hcw0KK0dhc3BhcmQsIExlb24NCitHYXNzZWwsIEx1Y2FzDQorR2F1ZMOtLCBBbnRvbmkNCitHYXVkaWVyLUJyemVza2EsIEhlbnJpDQorR2F1ZmZpZXIsIExvdWlzDQorR2F1Z2VuZ2lnbCwgSWduYXogTWFyY2VsDQorR2F1Z3VpbiwgUGF1bA0KK0dhdXRoaWVyLCBTdXphbm5lDQorR2F2YXJuaSwgUGF1bA0KK0dhdmFycm9uZSwgRG9tZW5pY28NCitHYXksIEVkd2FyZA0KK0dheSwgTmlrb2xheQ0KK0dheXdvb2QsIFJpY2hhcmQNCitHZWRkZXMsIEFuZHJldw0KK0dlZG92aXVzLCBHZXJtw6FuDQorR2VlciwgR3JhY2UgV29vZGJyaWRnZQ0KK0dlaHJrLCBSb2JlcnQgSi4NCitHZWhyeSwgRnJhbmsNCitHZWlnZXIsIEFubmEgQmVsbGENCitHZWlraWUsIFdhbHRlcg0KK0dlaXN0ZWQsIErDuHJnZW4NCitHZWxkZXIsIEFlcnQgZGUNCitHZWxzYXZhZ2UsIEpvaG4gWnlnbXVuZA0KK0dlbWl0bywgVmluY2Vuem8NCitHZW5nYSwgR2lyb2xhbW8NCitHZW5uYXJpLCBCZW5lZGV0dG8NCitHZW5zbGVyLCBNYXJ0aW4NCitHZW50LCBHLlcuDQorR2VudGgsIExpbGxpYW4gTWF0aGlsZGUNCitHZW50aGUsIEFybm9sZA0KK0dlbnRpbGUgZGEgRmFicmlhbm8NCitHZW50aWxlc2NoaSwgQXJ0ZW1pc2lhDQorR2VudGlsZXNjaGksIE9yYXppbw0KK0dlbnRpbGluaSwgRnJhbmNvDQorR2VudGxpbmcsIFNjb3R0DQorR2VvZmZyb3ksIEhlbnJ5LUp1bGVzLUplYW4NCitHZW9yZ2UsIFJheQ0KK0fDqXJhcmQsIEZyYW7Dp29pcw0KK0fDqXJhcmQsIE1hcmd1ZXJpdGUNCitHZXJhcmRpLCBBbGJlcnRvDQorR2VyYXJkbw0KK0dlcmhhZXJ0LCBOaWNvbGF1cw0KK0dlcmhhcmQsIEh1YmVydA0KK0dlcmhvbGQsIE1lbA0KK0fDqXJpY2F1bHQsIFRow6lvZG9yZQ0KK0dlcmluaSwgTmljY29sw7IgZGkgUGlldHJvDQorR2VybG92aW4sIFZhbGVyaXkNCitHZXJsb3ZpbmEsIFJpbW1hDQorR2VybWFpbiwgRnJhbsOnb2lzLVRob21hcw0KK0dlcm1haW4sIExvdWlzDQorR8OpcsO0bWUsIEplYW4tTMOpb24NCitHZXJzdGwsIFJpY2hhcmQNCitHZXJ0bGVyLCBNYXJrDQorR2VydHNjaCwgRnJhbnoNCitHZXJ2ZXgsIEhlbnJpDQorR2VyenNvLCBHdW50aGVyDQorR2V0eiwgQXJ0aHVyDQorR2V1ZXIsIEp1YW4NCitHaGVlcmFlcnRzIHRoZSBZb3VuZ2VyLCBNYXJjdXMNCitHaGVyYXJkbyBkaSBHaW92YW5uaQ0KK0doZXluIElJLCBKYWNxdWVzIGRlDQorR2hleW4sIEphY3F1ZXMgZGUNCitHaGV6emksIFBpZXIgTGVvbmUNCitHaGliZXJ0aSwgTG9yZW56bw0KK0doaXJsYW5kYWlvLCBCZW5lZGV0dG8NCitHaGlybGFuZGFpbywgRG9tZW5pY28NCitHaGlybGFuZGFpbywgUmlkb2xmbw0KK0doaXNsYW5kaSwgR2l1c2VwcGUNCitHaWFjb21ldHRpLCBBbGJlcnRvDQorR2lhY29tZXR0aSwgR2lvdmFubmkNCitHaWFtYm9sb2duYQ0KK0dpYW1ib25vLCBNaWNoZWxlDQorR2lhbXBpZXRyaW5vDQorR2lhbm5ldHRpLCBSYWZmYWVsZQ0KK0dpYW5uaWNvbGEgZGkgUGFvbG8NCitHaWFxdWludG8sIENvcnJhZG8NCitHaWJicywgSGVucnkNCitHaWJicywgUGVyY3kgVy4NCitHaWJzb24sIFJhbHBoDQorR2llcmdsLCBBbGFqb3MgR3nDtnJneWkNCitHaWVzYnJlY2h0LCBHYXJyeQ0KK0dpZmZvcmQsIFNhbmZvcmQgUm9iaW5zb24NCitHaWdlciwgSC5SLg0KK0dpZ25vdXgsIFLDqGdpcy1GcmFuw6dvaXMNCitHaWdvbGEsIEdpb3Zhbm5pIEJhdHRpc3RhDQorR2lqc2JyZWNodHMsIENvcm5lbGl1cw0KK0dpbCBkZSBDYXN0cm8sIEpvc8OpDQorR2lsYmVydCBhbmQgR2VvcmdlDQorR2lsYmVydCwgQWxmcmVkDQorR2lsYmVydCwgQXJ0aHVyIEhpbGwNCitHaWxiZXJ0LCBKb2huIENvbnJhZA0KK0dpbGJlcnQsIFNpciBKb2huDQorR2lsYmVydCwgVmljdG9yLUdhYnJpZWwNCitHaWxkZXIsIFJvYmVydA0KK0dpbGUsIFNlbGRlbiBDb25ub3INCitHaWxob29seSwgRGF2aWQNCitHaWxsLCBFcmljDQorR2lsbGVzcGllLCBHcmVnb3J5DQorR2lsbGV0dCwgRnJhbmsNCitHaWxsaWFtLCBTYW0NCitHaWxsaW5pLCBBbGJlcnRvDQorR2lsbG90LCBDbGF1ZGUNCitHaWxscmF5LCBKYW1lcw0KK0dpbG1hbiwgSGFyb2xkDQorR2lscGluLCBSZXYuIFdpbGxpYW0NCitHaWxwaW4sIFNhd3JleQ0KK0dpbm5ldmVyLCBDaGFybGVzDQorR2lvcmRhbm8sIEx1Y2ENCitHaW9yZ2lvbmUNCitHaW90dGlubw0KK0dpb3R0byBkaSBCb25kb25lDQorR2lvdmFubmkgZGEgQmFsZHVjY2lvDQorR2lvdmFubmkgZGEgQ2FtcGlvbmUNCitHaW92YW5uaSBkYSBNaWxhbm8NCitHaW92YW5uaSBkYSBOb2xhDQorR2lvdmFubmkgZGEgU2FuIEdpb3Zhbm5pDQorR2lvdmFubmkgZGVsIEJpb25kbw0KK0dpb3Zhbm5pIGRpIFBhb2xvDQorR2lvdmVub25lLCBHaXJvbGFtbw0KK0dpcGUsIExhd3JlbmNlDQorR2lyYXJkb24sIEZyYW7Dp29pcw0KK0dpcm9kZXQgZGUgUm91c3N5LVRyaW9zb24sIEFubmUtTG91aXMNCitHaXJvbGFtbyBkYSBDYXJwaQ0KK0dpcm9sYW1vIGRhaSBMaWJyaQ0KK0dpcm9sYW1vIGRpIEJlbnZlbnV0bw0KK0dpcm9uZWxsYSwgQWxiZXJ0bw0KK0dpcm91eCwgQW5kcsOpDQorR2lydGluLCBUaG9tYXMNCitHaXVsaW8gUm9tYW5vDQorR2xhY2tlbnMsIFdpbGxpYW0NCitHbGFpemUsIEF1Z3VzdGUNCitHbGFpemUsIFBpZXJyZS1QYXVsLUzDqW9uDQorR2xhcm5lciwgRnJpdHoNCitHbGVlc29uLCBKYW1lcw0KK0dsZWhuLCBXaWxmcmlkIGRlDQorR2xlaXplcywgQWxiZXJ0DQorR2xlbmRlbm5pbmcsIEFsZnJlZA0KK0dsZXlyZSwgQ2hhcmxlcw0KK0dsaWNrLCBKb2huDQorR2xpbnRlbmthbXAsIEhlbmRyaWsNCitHbG92ZXIsIEpvaG4NCitHbHlkZSwgSGVucnkgR2VvcmdlDQorR29iZXIsIFJvYmVydA0KK0dvYmxlLCBQYXVsDQorR29kZnJleSwgRGVXaXR0DQorR29kd2FyZCwgSm9obiBXaWxsaWFtDQorR29lbmV1dHRlLCBOb3JiZXJ0DQorR29lcywgSHVnbyB2YW4gZGVyDQorR29nYXMsIEdlb3JnZQ0KK0dvaW5ncywgUmFscGgNCitHb2l0aWEsIEZyYW5jaXNjbw0KK0dvbGRiZXJnLCBSdWJlDQorR29sZGluLCBOYW4NCitHb2xkc3dvcnRoeSwgQW5keQ0KK0dvbGlua2luLCBKb3NlcGgNCitHb2xsaW5ncywgRS4gVy4NCitHb2x0eml1cywgSGVuZHJpY2sNCitHb2x1YiwgTGVvbg0KK0dvbWV6IGRlIE1vcmEsIEp1YW4NCitHw7NtZXosIFZpY2VudGUgU2FsdmFkb3INCitHb27Dp2FsdmVzLCBOdW5vDQorR29uY2hhcm92YSwgTmF0YWxpYQ0KK0dvbmcgWGlhbg0KK0dvbnphZ2EsIFBpZXRybw0KK0dvbnphbGVzLCBFdmENCitHb256w6FsZXogRXNjb2JhciwgSnVhbiBGcmFuY2lzY28NCitHb256w6FsZXogUGVsbGljZXIsIEp1bGlvDQorR29uemFsZXogUnVpeiwgRGFuaWVsDQorR29uemFsZXogeSBTZXJyYW5vLCBCYXJ0b2xvbWUNCitHb256w6FsZXosIEpvYW4NCitHb256YWxleiwgSnVhbg0KK0dvbnrDoWxleiwgVmljZW50ZSBQYWxtYXJvbGkNCitHb256YWxlei1Ub3JyZXMsIEZlbGl4DQorR29vZCwgVGhvbWFzIFN3b3JkDQorR29vZGFsbCwgRnJlZGVyaWNrDQorR29vZGZlbGxvdywgU3RlcGhlbg0KK0dvb2RtYW4sIEJyZW5kYQ0KK0dvb2RtYW4sIFNpZG5leQ0KK0dvb2Rub3VnaCwgUm9iZXJ0DQorR29vZHJpZGdlLCBFbGl6YQ0KK0dvb2RzaXIsIEFnbmVzDQorR29vZHdpbiwgQXJ0aHVyIENsaWZ0b24NCitHb29kd2luLCBHaWxiZXJ0YSBEYW5pZWxzDQorR29vZHdpbiwgUGhpbGlwIFIuDQorR29vZHdpbiwgUmljaGFyZCBMYUJhcnJlDQorR29vZHdpbiwgU3RldmUNCitHb29raW5zLCBKYW1lcyBGYXJyaW5ndG9uDQorR29yZGlsbG8sIEx1aXMgUm9kcsOtZ3Vleg0KK0dvcmRvbiwgQXJ0dXJvDQorR29yZG9uLCBEb3VnbGFzDQorR29yZG9uLCBIYXJyeSBILg0KK0dvcmRvbiwgSnVsaWEgRW1pbHkNCitHb3Jkb24sIExhZHkNCitHb3Jkb24sIFJ1c3NlbGwgVC4NCitHb3Jkb24sIFNpciBIYXJyeSBQZXJjeQ0KK0dvcmRvbiwgU2lyIEpvaG4gV2F0c29uDQorR29yZSwgQ2hhcmxlcw0KK0dvcmUsIFNwZW5jZXINCitHb3JlbmtvLCBSaWNoYXJkIFdpbGxpYW1zIFNhbXVlbA0KK0dvcmdvbmksIEcuDQorR29yaW4sIEplYW4NCitHb3JreSwgQXJzaGlsZQ0KK0dvcm1sZXksIEFudG9ueQ0KK0dvcm5paywgQXByaWwNCitHb3JvIGRpIEdyZWdvcmlvDQorR29yc2xpbmUsIERvdWdsYXMNCitHb3Jzb24sIEFhcm9uIEhhcnJ5DQorR29zaGluDQorR29zaHVuLCBNYXRzdW1hcmENCitHb3RjaCwgVGhvbWFzIENvb3Blcg0KK0dvdHRsaWViLCBBZG9scGgNCitHb3R0bGllYiwgSGFycnkNCitHb3VkaWUsIFNjb3R0DQorR291ZHQsIEhlbmRyaWsNCitHb3Vqb24sIEplYW4NCitHb3VsZCwgV2lsbGlhbQ0KK0dvdXBpbCwgSnVsZXMtQWRvbHBoZQ0KK0dvdmFlcnMsIERhbmllbA0KK0dvdmFlcnRzLCBBYnJhaGFtDQorR293LCBBbmRyZXcgQ2Fycmljaw0KK0dvd2VyLCBHZW9yZ2UNCitHb3dpbmcsIFNpciBMYXdyZW5jZQ0KK0dveWEsIEZyYW5jaXNjbyBkZQ0KK0dveWVuLCBKYW4gdmFuDQorR295bywgSGFzaGlndWNoaQ0KK0dvenpvbGksIEJlbm96em8NCitHcmFldmVuaXR6LCBHZXJoYXJkIHZvbg0KK0dyYWYsIEdlbmV2aWV2ZSBHb3RoDQorR3JhZiwgVXJzDQorR3JhZmYsIEFudG9uDQorR3JhaGFtLCBEYW4NCitHcmFoYW0sIEpvaG4NCitHcmFoYW0sIFBhdWwNCitHcmFoYW0sIFBldGVyDQorR3JhaGFtLCBSb2JlcnQNCitHcmFtemEsIExlcm95DQorR3JhbmFjY2ksIEZyYW5jZXNjbw0KK0dyYW5kaSwgR2lhbiBHaXJvbGFtbw0KK0dyYW5kaSwgR2l1c2VwcGUNCitHcmFuZGluLCBFdWdlbmUNCitHcmFuZG1haXNvbiwgTmljaG9sYXMgZGUNCitHcmFuZXQsIEZyYW7Dp29pcy1NYXJpdXMNCitHcmFuZ2VyLCBDaGFybGVzIEhlbnJ5DQorR3JhbnQsIER1bmNhbg0KK0dyYW50LCBGcmVkZXJpYyBNaWx0b24NCitHcmFudCwgR29yZG9uDQorR3JhbnQsIFNpciBGcmFuY2lzDQorR3JhcywgQ2FzcGFyDQorR3Jhc3MsIFBoaWxpcHBlDQorR3Jhc3NlciwgRXJhc211cw0KK0dyYXVzbWFuLCBQaGlsaXANCitHcmF2ZWxvdCwgSHViZXJ0IEZyYW7Dp29pcw0KK0dyYXZlcywgQWJib3R0IEZ1bGxlcg0KK0dyYXZlcywgSGVucnkgUmljaGFyZA0KK0dyYXZlcywgTW9ycmlzDQorR3JhdmVzLCBOYW5jeQ0KK0dyYXZlc2FuZGUsIENoYXJsZXMgU3Rvcm0gdmFuIFMnDQorR3JheSwgQ2xldmUNCitHcmF5LCBHdXN0YXZlIExlDQorR3JheSwgSGVucnkgUGVyY3kNCitHcmF5LCBKYWNrDQorR3JheSwgTWFyeQ0KK0dyYXppb3NlLCBQaGlsDQorR3JlYWNlbiwgRWRtdW5kIFcuDQorR3JlYWNlbiwgTmFuDQorR3JlYXZlcywgV2FsdGVyDQorR3JlYmJlciwgUGlldGVyIGRlDQorR3JlY28sIEVsDQorR3JlY28sIEVtaWxpbw0KK0dyZWVuLCBBbGFuDQorR3JlZW4sIEFudGhvbnkNCitHcmVlbiwgQy5FLkwuDQorR3JlZW4sIEZyYW5rIFJ1c3NlbGwNCitHcmVlbiwgSG9tZXINCitHcmVlbiwgUmVuw6llDQorR3JlZW4sIFNhbXVlbCBNLg0KK0dyZWVuLCBWYWxlbnRpbmUNCitHcmVlbiwgV2FsdGVyDQorR3JlZW5hbXllciwgR2VvcmdlDQorR3JlZW5ibGF0LCBSb2RuZXkgQWxhbg0KK0dyZWVuaGFtLCBQZXRlcg0KK0dyZWVuaGlsbCwgSGFyb2xkDQorR3JlZW5sZWFmLCBCZW5qYW1pbg0KK0dyZWVub3VnaCwgSG9yYXRpbw0KK0dyZWVud29vZCwgSm9obg0KK0dyZWV2ZXMsIFJpY2hhcmQgVi4NCitHcmVnb3J5LCBFZHdhcmQgSm9obg0KK0dyZWdvcnksIFNoZWlsYQ0KK0dyZWlmZmVuaGFnZW4sIE1hdXJpY2UgV2lsbGlhbQ0KK0dyZXV6ZSwgSmVhbi1CYXB0aXN0ZQ0KK0dyZXksIEFsZXgNCitHcmliYnJvZWssIFJvYmVydA0KK0dyaWZmYSwgR2lvcmdpbw0KK0dyaWZmaWVyIHRoZSBFbGRlciwgSm9obg0KK0dyaWZmaW4sIFdhbHRlcg0KK0dyaWZmaXRocywgSmFtZXMNCitHcmlnZ3MsIEZyZWRlcmljayBMYW5kc2VlciBNYXVyDQorR3JpZ2dzLCBMZWUNCitHcmlnZ3MsIFNhbXVlbCBXLg0KK0dyaWdvcmVzY3UsIE5pY29sYWUNCitHcmltYWxkaSwgR2lvdmFubmkgRnJhbmNlc2NvDQorR3JpbW0sIFNhbXVlbCBIaWVyb255bW91cw0KK0dyaW1tZXIsIEFiZWwNCitHcmltb3UsIEFsZXhpcw0KK0dyaW1zaGF3LCBBdGtpbnNvbg0KK0dyaW5hZ2VyLCBBbGV4DQorR3JpcHBlLCBQZXRlcg0KK0dyaXMsIEp1YW4NCitHcml0dGVuLCBIZW5yeQ0KK0dyb2dhbiwgTmF0aGFuaWVsDQorR3JvbGwsIEFsYmVydCBMLg0KK0dyb29tcywgUmVkDQorR3JvcHBlciwgV2lsbGlhbQ0KK0dyb3MsIEFudG9pbmUtSmVhbg0KK0dyb3NlLCBIYXJyaWV0IEVzdGVsbGENCitHcm9zcywgQW50aG9ueQ0KK0dyb3NzLCBDaGFpbQ0KK0dyb3NzLCBTaWRuZXkNCitHcm9zc21hbiwgRWxpYXMgTS4NCitHcm9zc21hbm4sIFJ1ZG9sZg0KK0dyb3NzbywgTHVpZ2kNCitHcm9zeiwgR2VvcmdlDQorR3JvdXgsIEhlbnJ5IGRlDQorR3J1YW1vbnRlDQorR3J1YmVyLCBGcmFuY2lzDQorR3J1ZWxsZSwgUmljaGFyZCBCLg0KK0dydW5lciwgRWxpb3RoDQorR3LDvG5ld2FsZCwgTWF0dGhpYXMNCitHcnVwcMOpLCBFbWlsZSBBLg0KK0dydXBwZSwgVmlyZ2luaWENCitHdSBMaW5zaGkNCitHdSBZdWFuDQorR3UgWXVuDQorR3VhbGl0aWVyaSBkaSBHaW92YW5uaSBkYSBQaXNhDQorR3VhbiBTaGFueXVlDQorR3VhbiBaaWxhbg0KK0d1YXJkaSwgRnJhbmNlc2NvDQorR3VhcmRpLCBHaWFuIEFudG9uaW8NCitHdWFyaWVudG8gZGkgQXJwbw0KK0d1ZGUsIEhhbnMgRnJlZHJpaw0KK0d1ZGluLCBUaMOpb2RvcmUNCitHdcOpcmFyZCwgRXVnZW5lIHZvbg0KK0d1ZXJjaW5vDQorR3VlcmluLCBHaWxsZXMNCitHdcOpcmluLCBQaWVycmUtTmFyY2lzc2UNCitHdWVycmVybyBHYWx2w6FuLCBKZXPDunMNCitHdWVycmVybyBHYXJjw61hLCBKb3PDqQ0KK0d1Z2xpZWxtaSwgR3JlZ29yaW8NCitHdWdsaWVsbWksIE8uIExvdWlzDQorR3VnbGllbG1vLCBGcmENCitHdWdsaWVsbW8sIE1hc3Rybw0KK0d1aWRpLCBEb21lbmljbw0KK0d1aWRpLCBWaXJnaWxpbw0KK0d1aWRvIGRhIFNpZW5hDQorR3VpZ25ldCwgQWRyaWVuDQorR3VpZ291LCBQYXVsLUNhbWlsbGUNCitHdWlsZCwgTHVyZWxsZQ0KK0d1aWxsYWluLCBTaW1vbg0KK0d1aWxsYXVtaW4sIEFybWFuZA0KK0d1aWxsb3UsIEFsZnJlZA0KK0d1aW5vdmFydCBCZXJ0cmFuLCBKb3NlcA0KK0d1aXJhbmQgZGUgU2Nldm9sYSwgTHVjaWVuLVZpY3Rvcg0KK0d1bMOhY3N5LCBMYWpvcw0KK0d1bnRoZXIsIEZyYW56IElnbmF6DQorR3VvIEJpDQorR3Vyc2NobmVyLCBIZXJiZXJ0DQorR3Vyc2t5LCBBbmRyZWFzDQorR3VzdG9uLCBQaGlsaXANCitHdXRocmllLCBTaXIgSmFtZXMNCitHdXRpw6lycmV6LCBKdWFuIFNpbcOzbg0KK0d1dG1hbm4sIEJlcm5oYXJkDQorR3V0bWFubiwgSm9obg0KK0d1dHR1c28sIFJlbmF0bw0KK0d1eSwgRnJhbmNpcw0KK0d1eSwgU2V5bW91ciBKb3NlcGgNCitHdXlzLCBDb25zdGFudGluDQorR3V5dG9uLCBUeXJlZQ0KK0d3YXRobWV5LCBSb2JlcnQNCitHd3lubmUtSm9uZXMsIEFsbGFuDQorR3nDoXJmw6FzLCBKZW7Dsw0KK0d5bGVzLCBIZW5yeQ0KK0d5b2t1ZG8sIFVyYWdhbWkNCitHeXNlbHMsIFBpZXRlcg0KK0hhYWdlbiwgSm9yaXMgQWJyYWhhbXN6LiB2YW4gZGVyDQorSGFhcmxlbSwgQ29ybmVsaXMgQ29ybmVsaXN6LiB2YW4NCitIYWFzLCBNYXVyaXR6IEYuSC4gRGUNCitIYWJlcmxlLCBKb2huDQorSGFja2FlcnQsIEphbg0KK0hhY2tlciwgQXJ0aHVyDQorSGFja2VydCwgSmFjb2IgUGhpbGlwcGUNCitIYWRkb2NrLCBBLg0KK0hhZGVuLCBTaXIgRnJhbmNpcyBTZXltb3VyDQorSGFlcywgQ2FybG9zIGRlDQorSGFobiwgRW1hbnVlbA0KK0hhaG4sIEd1c3Rhdg0KK0hhaG4sIEhlcmJlcnQgQy4NCitIYWhuLCBXaWxsaWFtDQorSGFpZCwgSm9oYW5uIExvcmVueg0KK0hhaWxlLCBTYW11ZWwNCitIYWxlLCBFZHdhcmQgTWF0dGhldw0KK0hhbGUsIEVsbGVuIERheQ0KK0hhbGUsIEpvc2VwaGluZQ0KK0hhbGUsIExpbGlhbiBXZXN0Y290dA0KK0hhbGUsIFBoaWxpcCBMZXNsaWUNCitIYWxsIDE3MzktMTc5NywgSm9obg0KK0hhbGwgMTg4NSwgRG91Z2xhcw0KK0hhbGwsIEFubg0KK0hhbGwsIEJlcm5hcmQNCitIYWxsLCBDeXJlbml1cw0KK0hhbGwsIERvdWcNCitIYWxsLCBHZW9yZ2UgSGVucnkNCitIYWxsLCBIYXJyeQ0KK0hhbGwsIEpvaG4NCitIYWxsLCBQYW0NCitIYWxsw6ksIEVkd2FyZCBDaGFybGVzDQorSGFsbGVuLCBBbWJyb3NlDQorSGFsbGV5LCBQZXRlcg0KK0hhbGxpZGF5LCBFZHdhcmQgSXJ2aW5lDQorSGFscywgRGlyaw0KK0hhbHMsIEZyYW5zDQorSGFsc21hbiwgUGhpbGlwcGUNCitIYWxzd2VsbGUsIEtlZWxleQ0KK0hhbWJsaW4sIFN0dXJ0ZXZhbnQgSi4NCitIYW1lbiB5IExlw7NuLCBKdWFuIHZhbiBkZXINCitIYW1pbHRvbiwgQW5uDQorSGFtaWx0b24sIEdhdmluDQorSGFtaWx0b24sIEdhd2VuDQorSGFtaWx0b24sIEdyYW50DQorSGFtaWx0b24sIEhhbWlsdG9uDQorSGFtaWx0b24sIEh1Z2ggRG91Z2xhcw0KK0hhbWlsdG9uLCBKYW1lcw0KK0hhbWlsdG9uLCBKdWFuDQorSGFtaWx0b24sIE1hcnkgUml0ZXINCitIYW1pbHRvbiwgTWlrZQ0KK0hhbWlsdG9uLCBSaWNoYXJkDQorSGFtaWx0b24sIFdpbGxpYW0NCitIYW1tZXJzaMO4aSwgVmlsaGVsbQ0KK0hhbW1vbmQsIEphbmUNCitIYW1tb25zLCBEYXZpZA0KK0hhbW9uLCBKZWFuLUxvdWlzDQorSGFuIEdhbg0KK0hhbmZzdGFlbmdsLCBEcmVzZGVuDQorSGFuaWFzLCBKb2hhbm5lcw0KK0hhbmtleSwgV2lsbGlhbSBMZWUNCitIYW5uZW1hbiwgQWRyaWFlbg0KK0hhbm5vY2ssIFN0ZXBoZW4NCitIYW5zZW4sIEFybWluIENhcmwNCitIYW5zZW4sIENvbnN0YW50aW4NCitIYW5zZW4sIFN2ZW5kIFdpaWcNCitIYW5zb24sIER1YW5lDQorSGFvem91cywgQm9iDQorSGFyY291cnQsIEdlb3JnZQ0KK0hhcmRpZSwgTWFydGluDQorSGFyZGluZywgQ2hhcmxlcyBTdGV3YXJ0DQorSGFyZGluZywgQ2hlc3Rlcg0KK0hhcmRpbmcsIEdlb3JnZSBQZXJmZWN0DQorSGFyZGluZywgSmFtZXMgRHVmZmllbGQNCitIYXJkaW5nLCBTeWx2ZXN0ZXINCitIYXJkcmljaywgSm9obiBXZXNsZXkNCitIYXJkd2ljaywgQWxpY2UNCitIYXJkd2ljaywgTWVsYm91cm5lDQorSGFyZHksIEFubmEgRWxpemENCitIYXJkeSwgSGV5d29vZA0KK0hhcmUsIERhdmlkDQorSGFyZm9yZCwgSm9obiBTY2FuZHJldHQNCitIYXJpbmcsIEtlaXRoDQorSGFybG93LCBHZW9yZ2UgSGVucnkNCitIYXJuZXR0LCBXaWxsaWFtIE1pY2hhZWwNCitIYXJwZXIsIEhlbnJ5IEFuZHJldw0KK0hhcnBpZ25pZXMsIEhlbnJpLUpvc2VwaA0KK0hhcnJpY2gsIEpvYnN0DQorSGFycmllcywgTWFncw0KK0hhcnJpcywgQm9iDQorSGFycmlzLCBKb2huDQorSGFycmlzLCBMYXdyZW4gUy4NCitIYXJyaXMsIFJvYmVydA0KK0hhcnJpcywgU2FtIEh5ZGUNCitIYXJyaXNvbiwgSC5CLg0KK0hhcnJpc29uLCBULiBBbGV4YW5kZXINCitIYXJyaXNvbiwgV2FsbGFjZQ0KK0hhcnQsIEZyZWRlcmljaw0KK0hhcnQsIEphbWVzIE1jRG91Z2FsDQorSGFydCwgTGV0aXRpYSBCb25uZXQNCitIYXJ0LCAnUG9wJw0KK0hhcnQsIFNvbG9tb24gQWxleGFuZGVyDQorSGFydCwgV2lsbGlhbQ0KK0hhcnRpZ2FuLCBHcmFjZQ0KK0hhcnRsZXksIEouIFNjb3R0DQorSGFydGxleSwgTWFyc2Rlbg0KK0hhcnRyYXRoLCBMdWNpZQ0KK0hhcnR1bmcsIEhhbnMNCitIYXJ1bm9idQ0KK0hhcnVzaGlnZSwgU3V6dWtpDQorSGFydmV5LCBCdW5ueQ0KK0hhcnZleSwgSGVyYmVydCBKb2huc29uDQorSGFydmV5LCBXaWxsaWFtDQorSGFyd29vZCwgRnJhbmNpcw0KK0hhcndvb2QsIEphbWVzIFRheWxvcg0KK0hhc2VnYXdhIFRvaGFrdQ0KK0hhc2VsdGluZSwgV2lsbGlhbSBTdGFubGV5DQorSGFzaGFnZW4sIEEuDQorSGFzaGltb3RvLCBPa2lpZQ0KK0hhc2tlbGwsIEVybmVzdA0KK0hhc3NhbSwgQ2hpbGRlDQorSGFzc2VsbCwgSm9obg0KK0hhc3VpLCBLYXdhc2UNCitIYXRjaCwgSmltDQorSGF0Y2hlciwgQnJvd2VyDQorSGF0b3VtLCBNb25hDQorSGF0dCwgRW1pbGllIERlbWFudA0KK0hhdWVyLCBTdGFubGV5DQorSGF1Z2h0b24sIE1hdHRoZXcNCitIYXVwZXJzLCBDbGVtZW50DQorSGF1c21hbm4sIFJhb3VsDQorSGF2ZWwsIEpvc2VwaA0KK0hhdmVsbCwgUm9iZXJ0DQorSGF2ZWxsLCBXaWxsaWFtDQorSGF2ZW5zLCBMZW9uYXJkIE0uDQorSGF3a2lucywgQmFzaWwNCitIYXdraW5zLCBIZW5yeQ0KK0hhd2tpbnMsIExvdWlzIFdlbGRlbg0KK0hhd3Rob3JuZSwgQ2hhcmxlcyBXZWJzdGVyDQorSGF4dG9uLCBFbGFpbmUNCitIYXksIEdpbGJlcnQNCitIYXlkZW4sIEhlbnJpDQorSGF5ZG9uLCBCZW5qYW1pbiBSb2JlcnQNCitIYXllcywgRWR3aW4NCitIYXllcywgR2VvcmdlIEEuDQorSGF5ZXosIEZyYW5jZXNjbw0KK0hheWxzLCBKb2huDQorSGF5bWFuLCBGcmFuY2lzDQorSGF5bmVzLCBEb3VnbGFzIEhlY3Rvcg0KK0hheW5lcywgRi4gSmF5DQorSGF5bmVzLVdpbGxpYW1zLCBKb2huDQorSGF5bmllLCBLZWl0aA0KK0hheXMsIFdpbGxpYW0gSmFjb2INCitIYXl0ZXIsIEpvaG4NCitIYXl0ZXIsIFNpciBHZW9yZ2UNCitIYXl0ZXIsIFN0YW5sZXkgV2lsbGlhbQ0KK0hheXRsZXksIEVkd2FyZA0KK0hhemVsdG9uLCBNYXJ5IEJyZXdzdGVyDQorSGUgQmFpdGFvDQorSGUgS29uZ2RlDQorSGUgVGlhbmppYW4NCitIZWFkLCBHdXkNCitIZWFkLCBUaW0NCitIZWFkZSwgTWFydGluIEpvaG5zb24NCitIZWFseSwgR2VvcmdlIFAuQS4NCitIZWFuZXksIENoYXJsZXMNCitIZWFwaHksIFRob21hcw0KK0hlYXJuZSwgVGhvbWFzDQorSGVhcnRmaWVsZCwgSm9obg0KK0hlYXRoLCBIZW5yeQ0KK0hlYXRoLCBXaWxsaWFtDQorSGVhdnlTaGllbGQsIEZheWUNCitIw6liZXJ0LCBBZHJpZW4NCitIw6liZXJ0LCBFcm5lc3QNCitIw6liZXJ0LCBQaWVycmUtRXVnw6huZS1FbWlsZQ0KK0hlY2tlbCwgRXJpY2gNCitIZWNrZW4sIEFicmFoYW0gdmFuIGRlcg0KK0hlY2ttYW4sIEFsYmVydA0KK0hlZGEsIEdlcnJldCBXaWxsZW1zei4NCitIZWRhLCBXaWxsZW0gQ2xhZXN6Lg0KK0hlZW0sIENvcm5lbGlzIGRlDQorSGVlbSwgSmFuIERhdmlkc3ouIGRlDQorSGVlbSwgSmFuIEphbnN6LiBkZQ0KK0hlZW1za2VyY2ssIE1hZXJ0ZW4gdmFuDQorSGVnZWR1cywgTGFzemxvDQorSGVpbCwgRGFuaWVsIHZhbg0KK0hlaWxidXRoLCBGZXJkaW5hbmQNCitIZWlsbWFubiwgTWFyeQ0KK0hlaW0sIEZyYW7Dp29pcy1Kb3NlcGgNCitIZWltbGljaCwgSGVybWFuDQorSGVpbnR6LCBKb3NlcGgNCitIZWludHplbG1hbiwgQXJ0aHVyIFdpbGxpYW0NCitIZWl6ZXIsIE1pY2hhZWwNCitIZWpkdWssIEpvaG4NCitIZWxkIEpyLiwgSm9obg0KK0hlbGQsIEFsDQorSGVsZCwgTWFyaW9uDQorSGVsZGVyLCBaYW1hIFYuDQorSGVsbGVyLCBIZWxlbiBXZXN0DQorSGVsbSwgQWxpc29uDQorSGVsbWJyZWtlciwgRGlyaw0KK0hlbG1pY2ssIFJhbHBoDQorSGVsc3QsIEJhcnRob2xvbWV1cyB2YW4gZGVyDQorSGVsemVyLCBSaWNoYXJkDQorSGVtZXNzZW4sIENhdGVyaW5hIHZhbg0KK0hlbWVzc2VuLCBKYW4gU2FuZGVycyB2YW4NCitIZW1pbmcsIEFydGh1cg0KK0hlbXksIENoYXJsZXMgTmFwaWVyDQorSGVuZGVyc29uLCBDaGFybGVzIENvb3Blcg0KK0hlbmRlcnNvbiwgSm9obg0KK0hlbmRlcnNvbiwgSm9zZXBoDQorSGVuZGVyc29uLCBOaWdlbA0KK0hlbmRyaWNrc29uLCBEYW5pZWwNCitIZW5uZXIsIEplYW4tSmFjcXVlcw0KK0hlbm5lc3N5LCBXaWxsaWFtIEpvaG4NCitIZW5uaW5ncywgRS4gTWFydGluDQorSGVucmksIFJvYmVydA0KK0hlbnJ5LCBFZHdhcmQgTGFtc29uDQorSGVuc2VsLCBTYWxvbWUNCitIZXBoZXIsIERhdmlkDQorSGVwd29ydGgsIEJhcmJhcmENCitIZXJiZXJ0LCBKb2huIFJvZ2Vycw0KK0hlcmJpbiwgQXVndXN0ZQ0KK0hlcmxpY2ssIEdlb3JnZQ0KK0hlcm5hbmRleiBQaWp1YW4sIEpvYW4NCitIZXJvbiwgUGF0cmljaw0KK0hlcnLDoW4sIFNhdHVybmlubw0KK0hlcnJlcmEgQmFybnVldm8sIFNlYmFzdGlhbiBkZQ0KK0hlcnJlcmEgdGhlIFlvdW5nZXIsIEZyYW5jaXNjbyBkZQ0KK0hlcnJpbmcsIEpvaG4gRnJlZGVyaWNrDQorSGVydGVyLCBBbGJlcnQNCitIZXJ0aGVsLCBMdWR3aWcNCitIZXJ0bGUsIEphbWVzDQorSGVyem9nLCBIZXJtYW4NCitIZXNzZSwgRXZhDQorSGVzc2VsaXVzLCBKb2huDQorSGVzc2luZywgVmFsamVhbg0KK0hld2FyZCwgUHJ1ZGVuY2UNCitIZXksIEplYW4NCitIZXlib2VyLCBBbnRvbg0KK0hleWRlbiwgSmFuIHZhbiBkZXINCitIZXlkZW4sIFBpZXRlciB2YW4gRGVyDQorSGV5bnNpdXMsIEtlZXMNCitIZXlzZW4sIEhhbnMNCitIZXl3b29kLCBKLkMuDQorSGljaywgSmFjcXVlbGluZQ0KK0hpY2tleSwgRGFsZQ0KK0hpY2tleSwgVGhvbWFzDQorSGlja294LCBFbGl6YWJldGgNCitIaWNrcywgRWR3YXJkDQorSGlja3MsIEdlb3JnZSBFbGdhcg0KK0hpY2tzLCBTaGVpbGENCitIaWNrcywgVGhvbWFzDQorSGlja3MsIFdpbGxpYW0NCitIaWRhbGdvLCBKdWFuDQorSGlnZ2lucyBJSUksIEVkd2FyZCBGLg0KK0hpZ2dpbnMsIEV1Z2VuZQ0KK0hpZ2dpbnMsIFZpY3Rvcg0KK0hpZ2htb3JlLCBKb3NlcGgNCitIaWdoc3RlaW4sIEplbmUNCitIaWxkZWJyYW5kdCwgRWR3YXJkDQorSGlsZXIsIEhpbGFpcmUNCitIaWxsLCBBbnRob255DQorSGlsbCwgQ2FybCBGcmVkcmlrDQorSGlsbCwgRGF2aWQgT2N0YXZpdXMNCitIaWxsLCBKb2huDQorSGlsbCwgSm9obiBXaWxsaWFtDQorSGlsbCwgVGhvbWFzDQorSGlsbGlhcmQsIE5pY2hvbGFzDQorSGlsbGllciwgVHJpc3RyYW0NCitIaWxsaW5nLCBKb2huDQorSGlsbHMsIEFubmEgQWx0aGVhDQorSGlsbHMsIExhdXJhIENvb21icw0KK0hpbGxzLCBSb2JlcnQNCitIaWx0b24gdGhlIFlvdW5nZXIsIFdpbGxpYW0NCitIaWx0b24sIFJvZ2VyDQorSGltaWQsIEx1YmFpbmENCitIaW5kLCBXaWxsaWFtIEcuUi4NCitIaW5lLCBMZXdpcyBXaWNrZXMNCitIaW5rbGUsIENsYXJlbmNlDQorSGlyYXRzdWthLCBVbidpY2hpDQorSGlyb2FraSwgTW9yaW5vDQorSGlyb3NhZGENCitIaXJvc2hpZ2UgSUkNCitIaXJvc2hpZ2UsIEFuZG8NCitIaXJzY2gsIEpvc2VwaA0KK0hpcnNjaHZvZ2VsIHRoZSBFbGRlciwgVmVpdA0KK0hpcnNjaHZvZ2VsLCBBdWd1c3Rpbg0KK0hpcnN0LCBDbGF1ZGUgUmFndWV0DQorSGlyc3QsIERhbWllbg0KK0hpcnN6ZW5iZXJnLCBTYW11ZWwNCitIaXRjaGNvY2ssIEdlb3JnZQ0KK0hpdGNoY29jaywgSGFyb2xkDQorSGl0Y2hlbnMsIEl2b24NCitIbml6ZG92c2t5LCBKYWNxdWVzDQorSG9hcmUsIFByaW5jZQ0KK0hvYXJlLCBTaXIgUmljaGFyZCBDb2x0DQorSG9hcmUsIFdpbGxpYW0NCitIb2JiZW1hLCBNZWluZGVydA0KK0jDtmNoLCBIYW5uYWgNCitIb2NraW5nLCBSb2JlcnQNCitIb2NrbmV5LCBEYXZpZA0KK0hvZGdlcywgSmltDQorSG9kZ2VzLCBXaWxsaWFtDQorSG9kZ2tpbiwgSG93YXJkDQorSG9kZ2tpbnMsIEZyYW5jZXMNCitIb2RsZXIsIEZlcmRpbmFuZA0KK0hvZWNrLCBSaWNoYXJkDQorSG9lY2tlLCBKYW4gdmFuIGRlbg0KK0hvZWZuYWdlbCwgSm9yaXMNCitIb2VybWFuLCBDYXJsDQorSG9mZXIsIENhcmwNCitIb2ZmLCBSYXluZXINCitIb2ZmYmF1ZXIsIENoYXJsZXMNCitIb2ZmbWFuLCBJcndpbg0KK0hvZmZtYW4sIE1hbHZpbmENCitIb2ZmbWFubiwgSGFucw0KK0hvZmZtZWlzdGVyLCBHZW9yZ2UNCitIb2ZsYW5kLCBUaG9tYXMgQ2hyaXN0b3BoZXINCitIb2ZtYW5uLCBDaGFybGVzIEMuDQorSG9mbWFubiwgSGFucw0KK0hvZm1laXN0ZXIsIEFuZHJldw0KK0hvZ2FydGgsIFdpbGxpYW0NCitIb2dlcnMsIEphY29iDQorSG9ndWUsIEFsZXhhbmRyZQ0KK0hvaW4sIENsYXVkZQ0KK0hvaXQsIEFsYmVydCBHYWxsYXRpbg0KK0hva3VlaQ0KK0hva3VzYWkgS2F0c3VzaGlrYQ0KK0hvbGJlaW4gdGhlIEVsZGVyLCBIYW5zDQorSG9sYmVpbiB0aGUgWW91bmdlciwgSGFucw0KK0hvbGJlaW4sIEFtYnJvc2l1cw0KK0hvbGJlcmcsIFJ1dGggTGFuZ2xhbmQNCitIb2xjb21iLCBBbGljZQ0KK0hvbGRzdG9jaywgQWxmcmVkIFcuDQorSG9sZ2F0ZSwgRWR3aW4NCitIb2xpZGF5LCBIZW5yeQ0KK0hvbGwsIEZyYW5rDQorSG9sbGFuZCwgSmFtZXMNCitIb2xsYW5kLCBUaXNoDQorSG9sbGFyLCBXZW5jZXNsYXVzDQorSG9sbMOzc3ksIFNpbW9uDQorSG9sbSwgSnVsaXVzDQorSG9sbWFuLCBGcmFuY2lzDQorSG9sbWVzLCBLZW5uZXRoDQorSG9sbWVzLCBNZWx2aWxsZQ0KK0hvbG1lcywgVGltDQorSG9sb3VuLCBIYWwNCitIb2xyb3lkLCBTaXIgQ2hhcmxlcw0KK0hvbHNtYW4sIEVsaXphYmV0aCBULg0KK0hvbHQsIE5hbmN5DQorSG9semVyLCBKZW5ueQ0KK0hvbWVyLCBXaW5zbG93DQorSG9uJ2FtaSBLb2V0c3UNCitIb25kaXVzIHRoZSBFbGRlciwgSGVuZHJpaw0KK0hvbmRpdXMsIEFicmFoYW0NCitIb25lLCBOYXRoYW5pZWwNCitIb8OxZ2Vlw71lc2ENCitIb25nLUpvbywgS2ltDQorSG9uZ3Jlbg0KK0hvbnRob3JzdCwgR2Vycml0IHZhbg0KK0hvb2NoLCBQaWV0ZXIgZGUNCitIb29kLCBSYXltb25kDQorSG9vZ3N0cmF0ZW4sIFNhbXVlbCB2YW4NCitIb29rLCBEci4gUmljaGFyZA0KK0hvb2ssIEphbWVzIENsYXJrZQ0KK0hvb2ssIFdhbHRlcg0KK0hvcGZlciwgRGFuaWVsDQorSG9wZmVyLCBIaWVyb255bW91cw0KK0hvcGtpbnMsIEZyYW5jZXMgQW5uZQ0KK0hvcGtpbnMsIEphbWVzIFIuDQorSG9wa2lucywgTWlsdG9uIFcuDQorSG9wcGVyLCBFZHdhcmQNCitIb3BwbmVyLCBKb2huDQorSG9wd29vZCwgSGVucnkgU2lsa3N0b25lDQorSG9yZW1hbnMgdGhlIEVsZGVyLCBKYW4gSm9zZWYNCitIb3JpLCBUZXRzdXphbg0KK0hvcm4sIFJlYmVjY2ENCitIb3JuLCBSb25pDQorSG9ybmVib3V0LCBHZXJhcmQNCitIb3JudW5nLCBQcmViZW4NCitIb3JzbGV5LCBKb2huIENhbGxjb3R0DQorSG9ydG9uLCBXaWxsaWFtIFNhbXVlbA0KK0hvc2tpbnMsIEpvaG4NCitIb3NtZXIsIEhhcnJpZXQgR29vZGh1ZQ0KK0hvdSBNb3Vnb25nDQorSG91IFlpbWluDQorSG91YXNzZSwgTWljaGVsLUFuZ2UNCitIb3VicmFrZW4sIEphY29idXMNCitIb3Vkb24sIEplYW4tQW50b2luZQ0KK0hvdWVsLCBKZWFuDQorSG91Z2h0b24sIEFydGh1ciBCb3lkDQorSG91c2UsIEdvcmRvbg0KK0hvdXNlLCBTZXRoDQorSG91c2VyLCBBbGxhbg0KK0hvdXNoaWFyeSwgU2hpcmF6ZWgNCitIb3ZlbmRlbiwgVGhvbWFzDQorSG92ZXksIE90aXMNCitIb3dhcmQsIEJlc3NpZSBKZWFubmV0dGUNCitIb3dhcmQsIERhbg0KK0hvd2FyZCwgRWRpdGggTHVjaWxlDQorSG93YXJkLCBKb3NlcGgNCitIb3dlLCBPc2Nhcg0KK0hvd2l0dCwgU2FtdWVsDQorSG93bGV0dCwgUm9iZXJ0DQorSG95bGFuZCwgSm9obg0KK0hyb24sIFZpbmNlbnQNCitIdSBZaWNodWFuDQorSHUgWXVhbg0KK0h1YSBZYW4NCitIdWFuZyBCaW5ob25nDQorSHVhbmcgTGl6aGVuDQorSHVhbmcgWGluYm8NCitIdWFuZyBaaG91DQorSHViYmFyZCwgSm9obg0KK0h1YmJhcmQsIFdoaXRuZXkNCitIdWJiZWxsLCBIZW5yeSBTYWxlbQ0KK0h1YmVyLCBXb2xmDQorSHVkc29uLCBHcmFjZSBDYXJwZW50ZXINCitIdWRzb24sIEhlbnJ5IEouDQorSHVkc29uLCBUaG9tYXMNCitIdWV0LCBKZWFuLUJhcHRpc3RlIE1hcmllDQorSHVldCwgUGF1bA0KK0h1ZmZtYW4sIExhdG9uIEFsdG9uDQorSHVnZSwgSnVyZ2FuIEZyZWRlcmljaw0KK0h1Z2dpbnMsIFdpbGxpYW0NCitIdWdnaW5zLCBXaWxsaWFtIEpvaG4NCitIdWdoZXMsIEFydGh1cg0KK0h1Z2hlcywgQ29ybmVsaXVzIEphYmV6DQorSHVnaGVzLCBFZHdhcmQgUm9iZXJ0DQorSHVnaGVzLCBQYXRyaWNrDQorSHVnbywgSmVhbg0KK0h1Z28sIFZhbGVudGluZQ0KK0h1Z28sIFZpY3Rvcg0KK0h1Z29uaW4sIEphbWVzDQorSHVndWUsIE1hbnVlbA0KK0h1Z3VldCwgSmF1bWUNCitIdWlsbGlvdCwgUGllcnJlIE5pY29sYXMNCitIdWl6b25nLCBFbXBlcm9yDQorSHVsbCwgTHlubmUNCitIdWxsLCBNYXJpZSBBdGtpbnNvbg0KK0h1bXBocmV5LCBKYWNrDQorSHVtcGhyZXksIFJhbHBoDQorSHVtcGhyZXksIFRvbQ0KK0h1bXBocmV5cywgQ2hhcmxlcyBTLg0KK0h1bmRlcnR3YXNzZXINCitIdW5nIExpdQ0KK0h1bnQsIEFsZnJlZCBXaWxsaWFtDQorSHVudCwgQWxpY2UNCitIdW50LCBCcnlhbg0KK0h1bnQsIENhbHZpbg0KK0h1bnQsIEVzdGhlciBBbm5hDQorSHVudCwgTWFiZWxsZSBBbGNvdHQNCitIdW50LCBSaWNoYXJkDQorSHVudCwgVG9tbXkNCitIdW50LCBXaWxsaWFtIEhlbnJ5DQorSHVudCwgV2lsbGlhbSBIb2xtYW4NCitIdW50LCBXaWxsaWFtIE1vcnJpcw0KK0h1bnRlciwgQ29saW4NCitIdW50ZXIsIEdlb3JnZSBMZXNsaWUNCitIdW50aW5ndG9uLCBBbm5hIFYuIEh5YXR0DQorSHVudGluZ3RvbiwgRGFuaWVsDQorSHVudGluZ3RvbiwgRWxpemFiZXRoIEhhbWlsdG9uDQorSHVudGluZ3RvbiwgSmltDQorSHVudGxleSwgVmljdG9yaWEgSHV0c29uDQorSHVudG9vbiwgTWFyeQ0KK0h1cmQsIFBldGVyDQorSHVybHN0b25lLCBGcmVkZXJpY2sgWWVhdGVzDQorSHVycmVsbCwgR2VvcmdlDQorSHVzYWluLCBNLkYuDQorSHVzc2V5LCBHaWxlcw0KK0h1c3R3aWNrLCBDLg0KK0h1dGluLCBDaGFybGVzLUZyYW7Dp29pcw0KK0h1dHR5LCBBbGZyZWQgSGViZXINCitIdXlzbWFucywgQ29ybmVpbGxlDQorSHV5c21hbnMsIEphY29iDQorSHV5c21hbnMsIEplYW4tQmFwdGlzdGUNCitIdXlzdW0sIEphbiB2YW4NCitIeWRlLCBIZWxlbg0KK0h5by1qb29uZywgWXVuDQorSWFuZWxsaSwgQXJjw6JuZ2Vsbw0KK0liYmV0c29uLCBKdWxpdXMgQ2Flc2FyDQorSWJlbHMsIEhlbnJpIEdhYnJpZWwNCitJY2F6YSwgRXJuZXN0bw0KK0loYXJhLCBNaWNoaW8NCitJaGxlLCBKb2huDQorSWtlLW5vLVRhaWdhDQorSW1iZXIsIEpvbmF0aGFuDQorSW1tZW5kb3JmZiwgSm9lcmcNCitJbW1lbnJhZXQsIFBoaWxpcHBlLUF1Z3VzdGluDQorSW5jZSwgSm9zZXBoIE11cnJheQ0KK0luY2hib2xkLCBKb2huIFdpbGxpYW0NCitJbmRpYW5hLCBSb2JlcnQNCitJbi1kdSwgSGENCitJbmdoYW0sIENoYXJsZXMgQ3JvbXdlbGwNCitJbmdsw6lzLCBKb3JnZQ0KK0luZ3JlcywgSmVhbi1BdWd1c3RlLURvbWluaXF1ZQ0KK0lubWFuLCBIZW5yeQ0KK0lubmVzLCBKYW1lcyBEaWNrc29uDQorSW5uZXNzLCBHZW9yZ2UNCitJbm5vY2Vuem8gZGEgSW1vbGENCitJbnNjcmlwdGlvbiBQYWludGVyLCBUaGUNCitJbnVycmlhLCBNYXRlbw0KK0luemEsIEpvYXF1w61uDQorSXJ2aW4sIEFsYmVydA0KK0lydmluZSwgV2lsc29uDQorSXJ3aW4sIFJvYmVydA0KK0lzYWJleSwgRXVnw6huZQ0KK0lzYWJleSwgSmVhbiBCYXB0aXN0ZQ0KK0lzZW5icmFudCwgQWRyaWFlbg0KK0lzaGlrYXdhIEtvbWVpDQorSXNrb3dpdHosIEdlcnNob24NCitJc3JhZWxzLCBJc2FhYw0KK0lzcmHDq2xzLCBKb3plZg0KK0l0byBKYWt1Y2h1DQorSXR0ZW4sIEpvaGFubmVzDQorSXR0ZW5iYWNoLCBGcmFueg0KK0l2YW5vdiwgQWxleGFuZGVyDQorSXZhbm92LCBBbmRyZWkNCitJdmFub3YsIFNlcmdlaQ0KK0l2YW5vdiwgVmljdG9yDQorSXZlcm55LCBKYWNxdWVzDQorSXZlcywgQ2hhdW5jZXkgQi4NCitJenF1aWVyZG8sIE1hcsOtYQ0KK0phY2ssIE1hYmVsIFdlbGxpbmd0b24NCitKYWNrLCBSaWNoYXJkDQorSmFja3NvbiwgQS5ZLg0KK0phY2tzb24sIEJpbGx5IE1vcnJvdw0KK0phY2tzb24sIEdpbGJlcnQNCitKYWNrc29uLCBKb2huDQorSmFja3NvbiwgU2FtdWVsIFBoaWxsaXBzDQorSmFja3NvbiwgV2lsbGlhbSBIZW5yeQ0KK0phY29iLURlc21hbHRlciwgRnJhbsOnb2lzLUhvbm9yw6ktR2Vvcmdlcw0KK0phY29iZWxsbyBEZWwgRmlvcmUNCitKYWNvYmksIE90dG8NCitKYWNvYnNlbiwgQW50b25pbw0KK0phY29ic2hhZ2VuLCBLZWl0aA0KK0phY29ic29uLCBKYWtlDQorSmFjb2JzeiwgRGlyY2sNCitKYWNvYnN6LCBMYW1iZXJ0DQorSmFjb21ldHRvDQorSmFjb3Bpbm8gZGVsIENvbnRlDQorSmFjb3BvIGRlbCBTZWxsYWlvDQorSmFjb3BvIGRpIENpb25lDQorSmFjb3BvIGRpIERvbWVuaWNvIEZvc2NoaQ0KK0phY29wbyBOaXp6b2xhIGRhIFRyZXp6bw0KK0phY29wbywgTWVsaW9yZSBkaQ0KK0phY291bGV0LCBQYXVsDQorSmFjcXVhbmQsIENsYXVkaXVzDQorSmFjcXVlLCBDaGFybGVzIMOJbWlsZQ0KK0phY3F1ZW1hcnQgZGUgSGVzZGluDQorSmFjcXVlbWFydCwgSnVsZXMgRmVyZGluYW5kDQorSmFjcXVlbWluLCBKZWFubmUNCitKYWNxdWV0LCBNYXRoaWV1DQorSmFjcXVldHRlLCBZdm9ubmUNCitKYWZmZWUsIEpheQ0KK0phbGFiZWF0LCBDaGFybGVzIEZyYW7Dp29pcw0KK0phbWVzLCBBbGV4YW5kZXINCitKYW1lcywgQWxpY2UgQXJjaGVyDQorSmFtZXMsIEZyZWRlcmljaw0KK0phbWVzLCBSZWJlY2NhIFNhbHNidXJ5DQorSmFtZXMsIFdpbGwNCitKYW1lc29uLCBBbm5lIEJyb3duZWxsDQorSmFtaWVzb24sIEJlcm5pY2UgRXZlbHluDQorSmFtaWVzb24sIE1pdGNoZWxsDQorSmFtaW4sIFBhdWwNCitKYW5pbmV0LCBKZWFuLUZyYW7Dp29pcw0KK0phbm93aXR6LCBKb2VsDQorSmFuc2VuLCBGcmFueiBNLg0KK0phbnNzZW5zLCBBYnJhaGFtDQorSmFuc3NvbiwgRXVnZW5lDQorSmFudmllciwgQWxleA0KK0phcnZpcywgQ2hhcmxlcyBXZXNsZXkNCitKYXJ2aXMsIEpvaG4gV2VzbGV5DQorSmF3bGVuc2t5LCBBbGV4ZWkNCitKZWFuIGRlIExpw6hnZQ0KK0plYW4gZGUgVG91eWwNCitKZWFubmUtQ2xhdWRlDQorSmVhdXJhdCwgw4l0aWVubmUNCitKZWZmZXJ5cywgSmFtZXMNCitKZWZmcmllcywgSmltDQorSmVnaGVyLCBDaHJpc3RvZmZlbA0KK0plbmtpbnMsIFBhdWwNCitKZW5uZXdlaW4sIEMuIFBhdWwNCitKZW5uZXksIE5laWwNCitKZW5ueXMsIFdpbGxpYW0NCitKw6lub3QsIFBhdWxpbg0KK0plbnNlbiwgQWxmcmVkDQorSmVuc2VuLCBDaHJpc3RpYW4gQWxicmVjaHQNCitKZW5zc2VuLCBPbGF2IENocmlzdG9waGVyDQorSmVycnkgS3J1c3MNCitKZXNzDQorSmVzc3VwLCBSb2JlcnQNCitKZXdlbGwsIFJvbg0KK0pld2V0dCwgV2lsbGlhbQ0KK0ppLCBCeXVuIFNoaQ0KK0ppYSBZb3VmdQ0KK0ppYW5nIEZlbmcNCitKaWFuZyBUaW5neGkNCitKaWhlaSwgU3VnaW11cmENCitKaW3DqW5leiBBcmFuZGEsIEx1aXMNCitKaW3DqW5leiwgTHVpcw0KK0ppbiBTaGFuZ3lpDQorSmluLWt5dSwgS3dvbg0KK0pvY2VseW4sIE5hdGhhbmllbA0KK0pvaGFubm90LCBBbnRvaW5lDQorSm9obiwgQXVndXN0dXMNCitKb2huLCBHd2VuDQorSm9obiwgUGhpbGlwDQorSm9obnMsIEphc3Blcg0KK0pvaG5zZ2FyZCwgUGF1bA0KK0pvaG5zb24gSnIuLCBKLiBTZXdhcmQNCitKb2huc29uLCBDaGFybGVzIEVkd2FyZA0KK0pvaG5zb24sIENvcm5lbGl1cw0KK0pvaG5zb24sIERhdmlkDQorSm9obnNvbiwgRWFzdG1hbg0KK0pvaG5zb24sIEZyYW5rIFRlbm5leQ0KK0pvaG5zb24sIElzYWJlbGxlDQorSm9obnNvbiwgSm9zaHVhDQorSm9obnNvbiwgUGhpbGlwDQorSm9obnNvbiwgUmFlDQorSm9obnNvbiwgUmF5bW9uZA0KK0pvaG5zb24sIFNhcmdlbnQgQ2xhdWRlDQorSm9obnNvbiwgV2lsbGlhbSBILg0KK0pvaG5zb24tQ2FsbG93YXksIE1hcmllDQorSm9obnN0b24sIEZyYW5rDQorSm9obnN0b24sIEpvaG4NCitKb2huc3RvbiwgWW5leg0KK0pvbGksIEFudG9uaW8NCitKb2xsYWluLCBOaWNvbGFzLVJlbsOpDQorSm9uYXMsIExvdWlzIFBhdWwNCitKb25lcywgQWxsZW4NCitKb25lcywgQmVuDQorSm9uZXMsIEJyYWRsZXkNCitKb25lcywgRGF2aWQNCitKb25lcywgRmF5DQorSm9uZXMsIEZyYW5jaXMgQ29hdGVzDQorSm9uZXMsIEdlb3JnZQ0KK0pvbmVzLCBIdWdoIEJvbHRvbg0KK0pvbmVzLCBKb2UNCitKb25lcywgTG/Dr3MgTWFpbG91DQorSm9uZXMsIEx1dGhlcg0KK0pvbmVzLCBNaWxkcmVkDQorSm9uZXMsIE5lbGwgQ2hvYXRlDQorSm9uZXMsIFRob21hcw0KK0pvbmVzLCBXaWxsaWFtDQorSm9uZ2gsIEx1ZG9sZiBMZWVuZGVydHN6LiBkZQ0KK0pvbmctSGFrLCBLaW0NCitKb25naGVsaW5jaywgSmFjcXVlcw0KK0pvbmdraW5kLCBKb2hhbiBCYXJ0aG9sZA0KK0pvbnNvbiwgUmF5bW9uZA0KK0rDs25zc29uLCDDgXNncsOtbXVyDQorSm9vLCBNaWNoYWVsDQorSm9vcyB2YW4gV2Fzc2VuaG92ZQ0KK0pvcmRhZW5zLCBKYWNvYg0KK0pvcmRhbiwgU2FtdWVsDQorSm9zZXBoc29uLCBFcm5zdA0KK0pvc2V0c3UNCitKb3NsaW4sIFJpY2hhcmQNCitKb3VlIElJLCBKYWNxdWVzIGRlIGxhDQorSm91ZXR0LCBNYXR0aGV3IEhhcnJpcw0KK0pvdXZlbmV0LCBKZWFuDQorSm95LCBHZW9yZ2UgV2lsbGlhbQ0KK0p1YW4gZGUgRmxhbmRlcw0KK0p1YW4gZGUgSGVycmVyYQ0KK0p1YW4gZGUgSnVuaQ0KK0p1YW4gZGUgVmlsbGFudWV2YQ0KK0p1YW5lcywgSnVhbiBkZQ0KK0p1w6FyZXosIEx1aXMNCitKdWFyZXosIFJvYmVydG8NCitKdWRkLCBEb25hbGQNCitKdWRzb24sIFdpbGxpYW0gTGVlcw0KK0p1ZWwsIEplbnMNCitKdWxlcywgTWVydmluDQorSnVsaWVuLCBIZW5yaQ0KK0p1bGllbiwgUGllcnJlDQorSnVtYm8sIEp1bGlhDQorSnV2YXJyYSwgRmlsaXBwbw0KK0thYmFrb3YsIElseWENCitLYWJvdGllLCBGcmVkDQorS2FjZXJlLCBKb2huDQorS2FkaXNobWFuLCBNZW5hc2hlDQorS2FobG8sIEZyaWRhDQorS2FobiwgQWxiZXJ0DQorS2FobiwgV29sZg0KK0thaWhvIFl1c2hvDQorS2FpbmVuLCBKYWNvYg0KK0thaXNlcm1hbm4sIEZyYW56DQorS2FsZiwgV2lsbGVtDQorS2FsbGVvLCBKb3NlcGhpbmENCitLYW1lbmV2LCBMLg0KK0thbmRpbnNreSwgV2Fzc2lseQ0KK0thbmUsIFBhdWwNCitLYW5nIFNoaXlhbw0KK0thbmcgWW91d2VpDQorS2FubyBFaXRva3UNCitLYW5vIEhpZGV5b3JpDQorS2FubyBNb3Rvbm9idQ0KK0thbm8gU2FucmFrdQ0KK0thbm8gU2Fuc2V0c3UNCitLYW5ww7QsIFlvc2hpa2F3YQ0KK0thbnRvciwgTW9ycmlzDQorS2Fwb29yLCBBbmlzaA0KK0thcnBpaywgQW5kcmV3DQorS2Fyc2gsIFlvdXN1Zg0KK0thcnRuZXIgTWVpc3Rlcg0KK0vDpHNlYmllciwgR2VydHJ1ZGUNCitLYXNzLCBEZWJvcmFoDQorS2F0eiwgQWxleA0KK0thdHosIENpbWENCitLYXR6ZW4sIExpbGENCitLYXVmZm1hbm4sIEFuZ2VsaWNhDQorS2F1Zm1hbm4sIElzaWRvcg0KK0thdWxhLCBMZWUgTHVma2luDQorS2F3YWthbWksIFN1bWlvDQorS2F3YW5vLCBLYW9ydQ0KK0thd2FyYSwgT24NCitLYXllLCBPdGlzDQorS2F6dW1hLCBPZGENCitLY2hvDQorS2VhbmUsIEpvaG4NCitLZWVuZSwgQ2hhcmxlcyBTYW11ZWwNCitLZWVzZXksIFcuTS4NCitLZWlidW4NCitLZWlsLCBCZXJuaGFyZA0KK0tlaXJpbmN4LCBBbGV4YW5kZXINCitLZWlzYWkgRWlzZW4NCitLZWlzYWkgTWFzYXlvc2hpDQorS2VpdGgsIEVsaXphYmV0aA0KK0tlaXRoLCBXaWxsaWFtDQorS2VsbGVyLCBIZW5yeQ0KK0tlbGxleSwgTWlrZQ0KK0tlbGx5LCBFbGxzd29ydGgNCitLZW1leXMsIEVkd2FyZA0KK0tlbW1lbG1leWVyLCBGcmVkZXJpY2sNCitLZW1wdG9uLCBFbG1pcmENCitLZW1wdG9uLCBHcmV0YQ0KK0tlbXAtV2VsY2gsIEx1Y3kNCitLZW5kYWxsLCBXaWxsaWFtIFNlcmdlYW50DQorS2VuZHJpY2ssIE1lbA0KK0tlbm5lZHksIEdhcnJ5IE5laWwNCitLZW5uZWR5LCBNYXJ5DQorS2VubmVkeSwgU2hhbm5vbg0KK0tlbm5pbmd0b24sIEVyaWMNCitLZW5zZXR0LCBHZW9yZ2UNCitLZW5zZXR0LCBKb2huIEZyZWRlcmljaw0KK0tlbnQsIENvcml0YQ0KK0tlbnQsIFJvY2t3ZWxsDQorS2VybiwgRGVubmlzDQorS2VybiwgTGVvbmhhcmQNCitLZXJyLCBDaGFybGVzIEhlbnJ5IE1hbGNvbG0NCitLZXJyLCBJbGxpbmd3b3J0aCBIb2xleQ0KK0tlcnItTGF3c29uLCBKYW1lcw0KK0tlcnN0aW5nLCBHZW9yZyBGcmllZHJpY2gNCitLZXJ0w6lzeiwgQW5kcsOpDQorS2Vzc2VsIHRoZSBZb3VuZ2VyLCBKYW4gdmFuDQorS2Vzc2VsLCBKYW4gdmFuDQorS2Vzc2xlciwgV3lubg0KK0tldGNodW0sIFJvYmVydCBHbGVubg0KK0tldGVsLCBDb3JuZWxpcw0KK0tldHRsZSwgVGlsbHkNCitLZXVuaW5jaywgS2Vyc3RpYWVuIGRlDQorS2V5LCBKb2huIFJvc3MNCitLZXlsLCBGcmllZHJpY2ggV2lsaGVsbQ0KK0tleXNlciBJLCBIZW5kcmljayBkZQ0KK0tleXNlciwgVGhvbWFzIGRlDQorS2hhdGNoYXR1cg0KK0tobm9wZmYsIEZlcm5hbmQNCitLaHJ1dHNreSwgSXZhbg0KK0tpY2ssIFNpbW9uDQorS2lja2luZyBCZWFyDQorS2lkZCwgSm9zZXBoIEJhcnRob2xvbWV3DQorS2llZmVyLCBBbnNlbG0NCitLaWVuZXJrLCBHaW9yZ2lvDQorS2llbmhvbHosIEVkd2FyZA0KK0tpZW5ob2x6LCBOYW5jeSBSZWRkaW4NCitLaWVuemVyLCBNaWNoYWVsDQorS2lpdHN1LCBTdXp1a2kNCitLaW0sIEd1aWxpbg0KK0tpbWJhbGwsIFdheW5lDQorS2luZywgQ2FybA0KK0tpbmcsIENoYXJsZXMgQmlyZA0KK0tpbmcsIEpvaG4gSGVucnkgWWVlbmQNCitLaW5nLCBQaGlsaXANCitLaW5nLCBSb25hbGQNCitLaW5nLCBTYW11ZWwNCitLaW5nLCBXaWxsaWFtDQorS2luZ21hbiwgRG9uZw0KK0tpbmthZGUsIFRob21hcw0KK0tpbmxleSwgUGV0ZXINCitLaW5uYXJkLCBXLg0KK0tpbm9zaGl0YSwgVG9taW8NCitLaW5zb24sIEZyYW7Dp29pcy1Kb3NlcGgNCitLaW5zdGxlciwgRXZlcmV0dCBSYXltb25kDQorS2lwcCwgTHltYW4NCitLaXBwZWxsLCBOaWNsYXVzcw0KK0tpcHBpbmcsIEJyaWFuDQorS2lwcmVuc2t5LCBPcmVzdA0KK0tpcmJlcmcsIE90dG8gS2FybA0KK0tpcmNobmVyLCBFcm5zdCBMdWR3aWcNCitLaXJrZWJ5LCBQZXINCitLaXJrbGFuZCwgVmFuY2UNCitLaXJtc2UsIE1hcmd1ZXJpdGUNCitLaXJzY2gsIER3aWdodA0KK0tpcnN0YSwgR2VvcmcNCitLaXNzLCBTw6FtdWVsDQorS2lzc2VsLCBFbGVvbm9yYQ0KK0tpdGFqLCBSLkIuDQorS2l0YW9rYSwgRnVtaW8NCitLaXRpLCBNd2FtYQ0KK0tpeW9tYXN1LCBUb3JpaQ0KK0tpeW9taXRzdSwgVG9yaWkNCitLaXlvbmFnYQ0KK0tpeW9ub2J1DQorS2l5b25vYnUgSUksIFRvcmlpDQorS2l5b3RzdW5lLCBUb3JpaQ0KK0tsZWJlLCBHZW5lDQorS2xlZSwgUGF1bA0KK0tsZWVtYW5uLCBSb24NCitLbGVpbiwgWXZlcw0KK0tsZWluaG9seiwgRnJhbmsNCitLbGVpdHNjaCwgSm9zZXBoDQorS2xlb3BocmFkZXMgUGFpbnRlciwgVGhlDQorS2xpbXQsIEd1c3Rhdg0KK0tsaW5lLCBGcmFueg0KK0tsaW5nZXIsIE1heA0KK0tsdW1wa2UsIEFubmEgRWxpemFiZXRoDQorS2x1bmRlciwgVGltDQorS2x1dHNpcywgR3VzdGF2DQorS25hcHRvbiwgR2VvcmdlDQorS25hdGhzLCBLYXJsDQorS25hdWIsIFJheQ0KK0tuYXViZXIsIEFsbWEgSm9yZGFuDQorS25lYWxlLCBCcnlhbg0KK0tuZWxsZXIsIFNpciBHb2RmcmV5DQorS25pZ2h0LCBEYW1lIExhdXJhDQorS25pZ2h0LCBEYW5pZWwgUmlkZ3dheQ0KK0tuaWdodCwgSm9obiBCYXZlcnN0b2NrDQorS25pZ2h0LCBKb2huIFByZXNjb3R0DQorS25pZ2h0LCBKb2huIFdpbGxpYW0gQnV4dG9uDQorS25pZ2h0LCBKb3NlcGgNCitLbmlnaHQsIExvdWlzIEFzdG9uDQorS25pZ2h0LCBTdXNhbg0KK0tub2ViZWwsIEltaQ0KK0tub3R0LCBIZW5yeQ0KK0tub3dsZXMsIERvcm90aHkgRWxzaWUNCitLbm93bGVzLCBGYXJxdWhhciBNY0dpbGxpdnJheQ0KK0tub3dsaW5nLCBLYXRobGVlbg0KK0tub3gsIFN1c2FuIFJpY2tlcg0KK0tuw7xwZmVyLCBOaWNvbGF1cw0KK0tvYmVsbCwgV2lsaGVsbSB2b24NCitLw7hia2UsIENocmlzdGVuDQorS29jaCwgSm9obg0KK0tvY2gsIEpvc2VwaCBBbnRvbg0KK0tvZWhsZXIsIFJvYmVydA0KK0tvZWtrb2VrLCBCYXJlbmQgQ29ybmVsaXVzDQorS29la2tvZWssIFdpbGxlbQ0KK0tvZWxsaW4sIFBldGVyDQorS29lcmJlY2tlLCBKb2hhbm4NCitLb2VybmVyLCBIZW5yeQ0KK0tvZXN0ZXIsIEFsZXhhbmRlcg0KK0tvZ2xlciwgUGV0ZXINCitLb2d2aWssIENoYXJsaWUNCitLb2tlaSwgVHN1cnV5YQ0KK0tva29zY2hrYSwgT3NrYXINCitLb2xiZSwgR2VvcmcNCitLb2xsZXIsIFJ1ZG9sZg0KK0tvbGx3aXR6LCBLw6R0aGUNCitLb25jaGFsb3Zza3ksIFB5b3RyDQorS29uaW5jaywgUGhpbGlwcw0KK0tvbnJhZCBvZiBTb2VzdA0KK0tvbyBNZWkNCitLb29ucywgSmVmZg0KK0tvb3lvbyBQZXRlcg0KK0tvcG1hbiwgQmVuamFtaW4NCitLb3JpbiwgUGF2ZWwNCitLb3JsaW5nLCBUb3JrZWwNCitLb3JvdmluLCBLb25zdGFudGluDQorS29yeXVzYWkNCitLb3Nha2EsIEdhamluDQorS29zc29mZiwgTGVvbg0KK0tvc3RhYmksIE1hcmsNCitLb3N1dGgsIEpvc2VwaA0KK0tvdGFrdSwgSG9zb2kNCitLb3RvbmRvLCBUb3JpaQ0KK0tvdW5lbGxpcywgSmFubmlzDQorS291d2VuYmVyZ2gsIFBoaWxpcCB2YW4NCitLb3dhbCwgRGVubmlzDQorS296aW5hLCBTw6FuZG9yDQorS3JhZmZ0LCBKb2hhbm4gUGV0ZXINCitLcmFmdCwgQWRhbQ0KK0tyYW1za295LCBJdmFuIE5pa29sYWV2aWNoDQorS3Jhc25lciwgTGVlDQorS3JlaGJpZWwsIEFsYmVydCBILg0KK0tyZW1lciwgTmljb2xhdXMNCitLcmV0c2NoLCBLYXJsDQorS3JpZWdob2ZmLCBDb3JuZWxpdXMNCitLcm9oZywgQ2hyaXN0aWFuDQorS3JvbGwsIExlb24NCitLcsO4eWVyLCBQZWRlciBTZXZlcmluDQorS3J1ZWdlciwgRGF2aWQNCitLcnVnZXIsIEJhcmJhcmENCitLcnVnZXIsIEZyYW56DQorS3J1bXBlciwgSGFucw0KK0tyeWxvdiwgTmlraWZvcg0KK0t1YW5nIFlhb2RpbmcNCitLdWJpbiwgQWxmcmVkDQorS3ViaW55aSwgS2FsbWFuDQorS3Vib3RhLCBJdGNoaWt1DQorS3Vib3Z5LCBKaXLDrQ0KK0t1ZWhuZSwgTWF4DQorS3VlbW1lbCwgQ29ybmVsaWENCitLdWhuLCBCb2INCitLw7xobiwgSnVzdHVzIEVuZ2VsaGFyZHQNCitLdWhuLCBXYWx0DQorS3VobmVydCwgRnJpZWRyaWNoIFdpbGhlbG0NCitLdWluZHpoaSwgQXJraGlwIEl2YW5vdmljaA0KK0t1aXRjYSwgR3VpbGxlcm1vDQorS3VrLWt3YW5nLCBDaHVuDQorS3VsaXVrc2luLCBOZWt0YXJpaQ0KK0t1bG1iYWNoLCBIYW5zIFPDvHNzIHZvbg0KK0t1bmMsIEthcmVuDQorS3VuaWNoaWthDQorS3VuaWhpcm8sIFV0YWdhd2ENCitLdW5pa2F6dQ0KK0t1bmltYXNhDQorS3VuaW1hc3UNCitLdW5pc2FkYSwgVXRhZ2F3YQ0KK0t1bml5b3NoaSwgVXRhZ2F3YQ0KK0t1bml5b3NoaSwgWWFzdW8NCitLdW5zdCwgUGlldGVyIENvcm5lbGlzei4NCitLdXBmZXJtYW4sIExhd3JlbmNlIEUuDQorS3VwZmVybWFuLCBNb3NoZQ0KK0t1cGthLCBGcmFudGlzZWsNCitLdXJvc2FraSwgQWtpcmENCitLdXNhbWEsIFlheW9pDQorS3VzdG9kaWV2LCBCb3Jpcw0KK0t1eXRlbmJyb3V3ZXIsIE1hcnRpbnVzIEFkcmlhbnVzDQorS3V6bmV0c292LCBOaWtvbGFpIERtaXRyaWV2aWNoDQorS3V6bmV0c292LCBQYXZlbA0KK0t3YW4tc2lrLCBCeWVvbg0KK0t5bGUsIEpvc2VwaA0KK0t5b3VuZyBBZSBDaG8NCitLeXVuZy1qYSwgQ2h1bg0KK0xhIENhdmUsIFBldGVyDQorTGEgQ3JvaXggZGUgTWFyc2VpbGxlLCBDaGFybGVzDQorTGEgRmFyZ2UsIEpvaG4NCitMYSBGb3NzZSwgQ2hhcmxlcyBkZQ0KK0xhIEh5cmUsIExhdXJlbnQgZGUNCitMYSBUaGFuZ3VlLCBIZW5yeSBILg0KK0xhIFRvdXIsIEdlb3JnZXMgZGUNCitMYSBUb3VyLCBNYXVyaWNlIFF1ZW50aW4gZGUNCitMYWJhdWR0LCBMdWNpZW4NCitMYWJpbGxlLUd1aWFyZCwgQWTDqWxhw69kZQ0KK0xhYm91cmV1ciwgSmVhbi3DiW1pbGUNCitMYWJydXp6aSwgQ2FybG8NCitMYWNoYWlzZSwgR2FzdG9uDQorTGFjb21iZSwgR2Vvcmdlcw0KK0xhY29zdGUsIENoYXJsZXMNCitMYWNvdXIsIFBpZXJyZQ0KK0xhY3JvaXgsIFBhdWwNCitMYWRicm9va2UsIFJvYmVydA0KK0xhZGQsIERhbmllbA0KK0xhZW1tbGUsIENoZXJ5bA0KK0xhZXIsIFBpZXRlciB2YW4NCitMYUZhcmd1ZSwgUGF1bHVzIENvbnN0YW50aWpuDQorTGFmcmVuc2VuLCBOaWNsYXMNCitMYWdlcmlubywgU3RlZmFubw0KK0xhZ3JlbmVlLCBKZWFuLUphY3F1ZXMNCitMYWdyZW7DqWUsIExvdWlzIEplYW4gRnJhbsOnb2lzDQorTGFndWFyZGlhLCBFbG95IEdpbcOpbmV6DQorTGFpIFNoYW9xaQ0KK0xhaSBTdW5nDQorTGFpYiwgQ29ucmFkDQorTGFpZGxheSwgV2lsbGlhbSBKYW1lcw0KK0xhaW5nLCBHZXJhbGQNCitMYWluZywgSi5TLg0KK0xhaXJlc3NlLCBHZXJhcmQgZGUNCitMYWxhbm5lLCBNYXhpbWUNCitMYWxpcXVlLCBSZW7DqQ0KK0xhbSwgV2lsZnJlZG8NCitMYW1iLCBBLkEuDQorTGFtYiwgQW5kcmlhbg0KK0xhbWIsIEhlbnJ5DQorTGFtYmRpbiwgSmFtZXMgUmVpZA0KK0xhbWJlcnQsIEdlb3JnZQ0KK0xhbWJlcnQsIEdlb3JnZSBXLg0KK0xhbWJlcnQsIEphbWVzDQorTGFtYmVydGksIFBpZXJvIGRpIE5pY2NvbG8NCitMYW1pLCBFdWfDqG5lDQorTGFtbSwgTGVvbmlkDQorTGFNb3JlLCBDaGV0DQorTGFtcXVhDQorTGFuIFlpbmcNCitMYW5jYXN0ZXIsIFJldi4gUmljaGFyZCBIdW1lDQorTGFuY2UsIEdlb3JnZQ0KK0xhbmNyZXQsIE5pY29sYXMNCitMYW5kYWNyZSwgUGF1bCBIYW1iZWx0b24NCitMYW5kZWNrLCBBcm1pbg0KK0xhbmRlbGxlLCBDaGFybGVzDQorTGFuZGluaSwgVGFkZGVvDQorTGFuZGlzLCBKb2huDQorTGFuZHNlZXIsIENoYXJsZXMNCitMYW5kc2VlciwgU2lyIEVkd2luIEhlbnJ5DQorTGFuZSwgRml0eiBIdWdoDQorTGFuZSwgU2FtdWVsDQorTGFuZSwgVGhlb2RvcmUNCitMYW5ldXZpbGxlLCBKZWFuLUxvdWlzDQorTGFuZnJhbmNvLCBHaW92YW5uaQ0KK0xhbmdlLCBEb3JvdGhlYQ0KK0xhbmdlbmRpamssIERpcmsNCitMYW5nZXR0aSwgR2lvdmFuIEJhdHRpc3RhDQorTGFuZ2hhbnMsIEthcmwgRmVyZGluYW5kDQorTGFuZ2xvaXMsIErDqXLDtG1lLU1hcnRpbg0KK0xhbmluZywgRWR3YXJkDQorTGFuaW5vLCBCZXJuYXJkaW5vDQorTGFOb3VlLCBUZXJyZW5jZQ0KK0xhbnNpbCwgV2FsdGVyIEZyYW5rbGluDQorTGFudGVyaSwgRWRvdWFyZA0KK0xhbnlvbiwgRWxsZW4NCitMYW55b24sIFBldGVyDQorTGFwb2ludGUsIEZyYW5rDQorTGFwb3J0ZSwgR2VvcmdlIEhlbnJ5DQorTGFwb3J0ZSwgSm9obg0KK0xhcHJhZGUsIFBpZXJyZQ0KK0xhcmNpYW5pLCBHaW92YW5uaQ0KK0xhcmRlcmEsIEJlcnRvDQorTGFyZ2lsbGnDqHJlLCBOaWNvbGFzIGRlDQorTGFyaW9ub3YsIE1pa2hhaWwNCitMYXJraW4sIFdpbGxpYW0NCitMYXJvb24gdGhlIFlvdW5nZXIsIE1hcmNlbGx1cw0KK0xhcnNvbiwgUGhpbGlwDQorTGFyc3NvbiwgQ2FybA0KK0xhcnRlciwgUmljaGFyZA0KK0xhc2Fuc2t5LCBNYXVyaWNpbw0KK0xhc2Vyc3RlaW4sIExvdHRlDQorTGFzaCwgSm9uDQorTGFzc2F3LCBJYnJhbQ0KK0xhc3NuaWcsIE1hcmlhDQorTGFzdCwgRmlyc3QgbmFtZQ0KK0xhc3RtYW4sIFBpZXRlcg0KK0xhc3psbywgUGhpbGlwIEFsZXhpdXMgZGUNCitMYXRoYW0sIEpvaG4NCitMYXRocm9wLCBJZGEgUHVsaXMNCitMYXVyYW5hLCBGcmFuY2VzY28NCitMYXVyZW5jZSwgU2FtdWVsDQorTGF1cmVuY2luLCBNYXJpZQ0KK0xhdXJlbnMsIEhlbnJpDQorTGF1cmVucywgSmVhbi1QYXVsDQorTGF1cmVudCwgRXJuZXN0DQorTGF1cmVudCwgSi4NCitMYXVyZW50LCBKZWFuIEFudG9pbmUNCitMYXVyZW50LCBSb2JlcnQNCitMYXVyaWUsIFJvYmVydA0KK0xhdXRlbnNhY2ssIEhhbnMgU2ViYWxkDQorTGF1dmVyZ25lLCBCYXJ0aGVsZW15DQorTGF2ZXJ5LCBTaXIgSm9obg0KK0xhdmllciwgQmVydHJhbmQNCitMYVZpZ25lIElJLCBKb3NlcGgNCitMYXcsIEFsZnJlZA0KK0xhd3JhbnNvbiwgVGhvbWFzDQorTGF3cmVuY2UsIEphY29iDQorTGF3cmVuY2UsIFNpciBUaG9tYXMNCitMYXdzb24sIEVybmVzdA0KK0xheSwgRXJuZXN0DQorTGF6bywgQWd1c3TDrW4NCitMYXp6ZWxsLCBCbGFuY2hlDQorTGUgQmFyYmllciwgSmVhbi1KYWNxdWVzLUZyYW7Dp29pcw0KK0xlIEJhcywgRWR3YXJkDQorTGUgQmxvbiwgSmFrb2IgQ2hyaXN0b2YNCitMZSBCcnVuLCBDaGFybGVzDQorTGUgQ291cnQsIEdpdXN0bw0KK0xlIEZhdWNvbm5pZXIsIEhlbnJpDQorTGUgR3JvcyBJLCBQaWVycmUNCitMZSBHcm9zIElJLCBQaWVycmUNCitMZSBMb3JyYWluLCBMb3Vpcy1Kb3NlcGgNCitMZSBMb3JyYWluLCBSb2JlcnQNCitMZSBNaXJlLCBOb8OrbA0KK0xlIE1veW5lLCBGcmFuw6dvaXMNCitMZSBOYWluLCBBbnRvaW5lDQorTGUgTmFpbiwgTG91aXMNCitMZSBOYWluLCBNYXRoaWV1DQorTGUgUHJpbmNlLCBKZWFuLUJhcHRpc3RlDQorTGUgU2VjcSwgSGVucmkgSmVhbi1Mb3Vpcw0KK0xlIFNpZGFuZXIsIEhlbnJpIEV1Z2VuZSBBdWd1c3Rpbg0KK0xlIFN1ZXVyLCBFdXN0YWNoZQ0KK0xlYSwgVG9tDQorTGVhZGVyLCBCZW5qYW1pbiBXaWxsaWFtcw0KK0xlYWwsIEZlcm5hbmRvDQorTMOpYW5kcmUsIENoYXJsZXMNCitMZWFyLCBFZHdhcmQNCitMZWJvdXJnLCBBbGJlcnQNCitMZWJydW4sIFJpY28NCitMZWNrLCBCYXJ0IHZhbiBkZXINCitMZUNsZWFyLCBUaG9tYXMNCitMZWRlcmVyLCBKb2hhbm4gR2VvcmcNCitMZWR1YywgT3ppYXMNCitMZWUsIERvcmlzDQorTGVlLCBGcmVkZXJpY2sgUmljaGFyZA0KK0xlZSwgSm9obg0KK0xlZWNoLCBKb2huDQorTGVla2UsIEZlcmRpbmFuZA0KK0xlZW4sIE5pbmENCitMZWUtU21pdGgsIEh1Z2hpZQ0KK0xlZmVidnJlLCBKdWxlcy1Kb3NlcGgNCitMZWbDqXZyZSwgUm9iZXJ0LUphY3F1ZXMtRnJhbsOnb2lzDQorTGVnYSwgU3lsdmVzdHJvDQorTMOpZ2Fyw6ksIEpvc2VwaA0KK0zDqWdlciwgRmVybmFuZA0KK0xlZ3JvcywgQWxwaG9uc2UNCitMZWhldXRyZSwgR3VzdGF2ZQ0KK0xlaG1hbm4sIEFydGh1cg0KK0xlaG1hbm4sIEhlbnJpDQorTGVobWFubiwgUm9sZg0KK0xlaG1icnVjaywgV2lsaGVsbQ0KK0xlaG1kZW4sIEFudG9uDQorTGVpYmwsIFdpbGhlbG0NCitMZWlnaCwgV2lsbGlhbSBSLg0KK0xlaWdodG9uLCBBLkMuDQorTGVpZ2h0b24sIENsYXJlDQorTGVpZ2h0b24sIEZyZWRlcmljLCBMb3JkDQorTGVpZ2h0b24sIE5pY2hvbGFzIFdpbmZpZWxkIFNjb3R0DQorTGVpcm5lciwgSmFjDQorTGVpdGNoLCBXaWxsaWFtIExlaWdodG9uDQorTGVsZXUsIEplYW4tRnJhbsOnb2lzDQorTGVsdWphDQorTGVseSwgU2lyIFBldGVyDQorTGVtYWlyZSwgSmVhbg0KK0xlbWJlcmdlciwgR2VvcmcNCitMZW1pZXV4LCBBbm5ldHRlDQorTGVtaWV1eCwgSmVhbiBQYXVsDQorTGVtbWVuLCBHZW9yZ2VzDQorTGVtbWVucywgVGjDqW9waGlsZS1WaWN0b3ItRW1pbGUNCitMZW1vaW5lLCBKYWNxdWVzIEFudG9pbmUgTWFyaWUNCitMZW1vaW5lLCBNYXJpZS1WaWN0b2lyZQ0KK0xlbW95bmUgSUksIEplYW4tQmFwdGlzdGUNCitMZW1veW5lLCBKZWFuLUxvdWlzDQorTGVtcGlja2EsIFRhbWFyYSBkZQ0KK0xlbmJhY2gsIEZyYW56IHZvbg0KK0xlbmRlcnMsIEVtaWwgVy4NCitMZW5lcHZldSwgSnVsZXMtRXVnw6huZQ0KK0xlbmluZ3JhZCBQYWludGVyLCBUaGUNCitMZW5ub3gsIExvcmQgV2lsbGlhbSBQaXR0DQorTGVucywgQmVybmFyZA0KK0xlbnNvbiwgTWljaGFlbA0KK0xlb2NoYXJlcw0KK0xlb25hcmRvIGRhIFZpbmNpDQorTGVvbmNpbGxvLCBMZW9uYXJkaQ0KK0xlb25pLCBMZW9uZQ0KK0xlb25pLCBPdHRhdmlvDQorTGVvbmksIFBvbXBlbw0KK0xlb25pZA0KK0xlcMOocmUsIEF1Z3VzdGUtTG91aXMNCitMZXBpY2nDqSwgTWljaGFlbCBOaWNvbGFzLUJlcm5hcmQNCitMw6lwaW5lLCBTdGFuaXNsYXMNCitMZXJtYW4sIExlb25pZA0KK0xlcm1vbmQsIENoYXJsZXMgQy5FLg0KK0xlcm9sbGUsIEhlbnJ5DQorTGVzbGllLCBBbGZyZWQNCitMZXNsaWUsIENoYXJsZXMgUm9iZXJ0DQorTGVzc29yZSwgSm9obg0KK0xldGVuZHJlLCBSaXRhDQorTGV0aCwgSGFyYWxkDQorTGV0aGnDqHJlLCBHdWlsbGF1bWUNCitMZXUgdGhlIEVsZGVyLCBIYW5zDQorTGV1dHplLCBFbWFudWVsIEdvdHRsaWViDQorTGV2aSwgSnVsaWFuDQorTGV2aW5lLCBKYWNrDQorTGV2aW5lLCBNYXJpbHluDQorTGV2aW5lLCBTaGVycmllDQorTGV2aW50aGFsLCBEYXZpZA0KK0xldml0YW4sIElzYWFrIElsJ2ljaA0KK0xldml0c2tpaSwgRG1pdHJpaSBHcmlnb3JldmljaA0KK0xldml0dCwgSGVsZW4NCitMw6l2eSwgRW1pbGUNCitMZXZ5LCBKb2FuDQorTMOpdnktRGh1cm1lciwgTHVjaWVuDQorTGV3YW5kb3dza2ksIEVkbXVuZA0KK0xld2lzLCBFZG1vbmlhDQorTGV3aXMsIEdlb3JnZSBSb2JlcnQNCitMZXdpcywgSmVubmllDQorTGV3aXMsIEpvaG4gRnJlZGVyaWNrDQorTGV3aXMsIEx1Y3kgTS4NCitMZXdpcywgTWFydGluDQorTGV3aXMsIE1hdWQNCitMZXdpcywgTm9ybWFuDQorTGV3aXMsIFByb2Zlc3NvciBIZW5yeQ0KK0xld2lzLCBXeW5kaGFtDQorTGV3aXR0LCBTb2wNCitMZXhpZXIsIE1pY2FoDQorTGV5ZGVuLCBMdWNhcyB2YW4NCitMZXlzLCBIZW5kcmljaw0KK0xleXN0ZXIsIEp1ZGl0aA0KK0wnaGVybWl0dGUsIEzDqW9uIEF1Z3VzdGluDQorTGhldXJldXgsIExvdWlzLUVybmVzdA0KK0xob3RlLCBBbmRyw6kNCitMaSBGYW5neWluZw0KK0xpIEh1YQ0KK0xpIEh1YXlpDQorTGkgSHVpeGlhbg0KK0xpIEthbg0KK0xpIEtlcmFuDQorTGkgS3VjaGFuDQorTGkgUGluZ2Zhbg0KK0xpIFFpDQorTGkgV2VueGkNCitMaSBYaW9uZ2NhaQ0KK0xpYW5nIFpoaWhlDQorTGlhbyBMdQ0KK0xpYmVyYWxlIGRhIFZlcm9uYQ0KK0xpYmVyaSwgUGlldHJvDQorTGliZXJtYW4sIEFsZXhhbmRlcg0KK0xpY2hhbm90dXMsIEluZHJpcw0KK0xpY2h0ZW5zdGVpbiwgUm95DQorTGljaW5pbywgQmVybmFyZGlubw0KK0xpZSwgSm9uYXMNCitMaWViZXJtYW5uLCBNYXgNCitMaWVibGluZywgSmVyb21lDQorTGllZnJpbmNrLCBDb3JuZWxpdXMNCitMaWV2ZW5zLCBKYW4NCitMaWdldGksIEFudGFsDQorTGlnb3p6aSwgSmFjb3BvDQorTGlsZXMsIENhdGhhcmluZQ0KK0xpbGplZm9ycywgQnJ1bm8gQW5kcmVhcw0KK0xpbGxpbywgQW5kcmVhDQorTGltYmFjaCwgUnVzc2VsbA0KK0xpbWJvdXJnLCBIZXJtYW5uDQorTGltYm91cmcsIEplYW4NCitMaW1ib3VyZywgUGF1bA0KK0xpbW9zaW4sIEzDqW9uYXJkDQorTGluIEZlbmdtaWFuDQorTGluIEdhbmcNCitMaW4gTGlhbmcNCitMaW4gU2FuemhpDQorTGluIFlvbmcNCitMaW4sIE1heWENCitMaW5hcmVzLCBEb24NCitMaW5idXJnLCBTdWUNCitMaW5kZXIsIFJvbmFsZCBGLg0KK0xpbmRuZXIsIFJpY2hhcmQNCitMaW5kcXVpc3QsIE1hcmsNCitMaW5kcXVpc3QsIE1lbHZpbg0KK0xpbmdlbGJhY2gsIEpvaGFubmVzDQorTGlubmVsbCwgSm9obg0KK0xpbnRvbiwgV2lsbGlhbQ0KK0xpb3RhcmQsIEplYW4tw4l0aWVubmUNCitMaXBjaGl0eiwgSmFjcXVlcw0KK0xpcHBpLCBGaWxpcHBpbm8NCitMaXBwaSwgRnJhIEZpbGlwcG8NCitMaXBwaSwgUmFmZmFlbGUNCitMaXBzY29tYiwgQ0QNCitMaXJhLCBQZWRybw0KK0xpc21lciwgQXJ0aHVyDQorTGlzcywgSm9oYW5uDQorTGlzc2l0emt5LCBFbA0KK0xpdHRsZSwgS2VuDQorTGl0dGxlZmllbGQsIFdpbGxpYW0gSG9yYWNlDQorTGl0dGxldG9uLCBIYXJ2ZXkgSy4NCitMaXUgRGFuemhhaQ0KK0xpdSBHdW9zb25nDQorTGl1IEppeW91DQorTGl1IEt1aWxpbmcNCitMaXUgU2hpcnUNCitMaXUgV2VuZnUNCitMaXUgV2VueGkNCitMaXUgWGlhbg0KK0xpdSBaaWppYW4NCitMaXZlcnNlZWdlLCBIZW5yeQ0KK0xpdmluZ3N0b24sIEFsZXgNCitMaXhhcnMsIFMuQy4NCitMaXphcnMsIFdpbGxpYW0gSG9tZQ0KK0xvYmUsIFJvYmVydA0KK0xvY2huZXIsIFN0ZXBoYW4NCitMb2NocmllLCBFbGl6YWJldGgNCitMb2NrZSBKci4gb2YgTm9yYnVyeSwgV2lsbGlhbQ0KK0xvY2tlLCBDaGFybGVzIFdoZWVsZXINCitMb2NrZXIsIEVkd2FyZCBIYXdrZQ0KK0xvY2tleSwgUm93bGFuZA0KK0xvY2toYXJ0LCBTaGFyb24NCitMb2dhbiwgSmFtZXMNCitMb2dnYW4sIERhdmlkDQorTG9nc2RhaWwsIFdpbGxpYW0NCitMb21haGFmdGV3YSwgRGFuIFYuDQorTG9tYmFyZCwgTGFtYmVydA0KK0xvbWJhcmQsIFdhcnJlbiBQLg0KK0xvbWJhcmRvLCBBbnRvbmlvDQorTG9tYmFyZG8sIExvZG92aWNvDQorTG9tYmFyZG8sIFBpZXRybw0KK0xvbWJhcmRvLCBUdWxsaW8NCitMb25nIFRpbmdiYQ0KK0xvbmcsIEFtZWxpYQ0KK0xvbmcsIENoYXJsZXMNCitMb25nLCBFZHdpbg0KK0xvbmcsIE1jS2VuZHJlZSBSb2JiaW5zDQorTG9uZywgUmljaGFyZA0KK0xvbmcsIFN5ZG5leQ0KK0xvbmcsIFRlZA0KK0xvbmdoaSwgQWxlc3NhbmRybw0KK0xvbmdoaSwgQmFyYmFyYQ0KK0xvbmdoaSwgUGlldHJvDQorTG9uZ28sIFJvYmVydA0KK0xvbmdzdGFmZiwgSm9obg0KK0xvbnNkYWxlLCBKYW1lcw0KK0xvbnNpbmcsIEZyYW7Dp29pcy1Mb3Vpcw0KK0xvbywgSmVhbiBCYXB0aXN0ZSB2YW4NCitMb29wLCBMZW90YSBXaWxsaWFtcw0KK0xvcGV6IEdhcmNpYSwgQW50b25pbw0KK0xvcGV6IEhlcm5hbmRleiwgSnVsaW8NCitMw7NwZXogeSBQb3J0YcOxYSwgVmljZW50ZQ0KK0xvcGV6LCBCZXJuYXJkbw0KK0xvcGV6LCBDYXJsb3MNCitMb3BleiwgR2VvcmdlDQorTG9wZXosIEdlb3JnZSBULg0KK0xvcmQsIENhcm9saW5lDQorTG9yZW56LCBSaWNoYXJkDQorTG9yZW56ZXR0aSwgQW1icm9naW8NCitMb3JlbnpldHRpLCBQaWV0cm8NCitMb3JlbnpldHRpLCBVZ29saW5vDQorTG9yZW56aSwgU3RvbGRvDQorTG9yZW56byBkaSBDcmVkaQ0KK0xvcmVuem8gTW9uYWNvDQorTG9yZW56byBWZW5lemlhbm8NCitMb3RoLCBKb2hhbm4gQ2FybA0KK0xvdHRvLCBMb3JlbnpvDQorTG90eiwgS8Ohcm9seQ0KK0xvdSwgTGl6YQ0KK0xvdWRvdW4sIEVkaXRoIE1hdWQgUmF3ZG9uLUhhc3RpbmdzLCBDb3VudGVzcyBvZg0KK0xvdWdoLCBKb2huIEdyYWhhbQ0KK0xvdWlzIGRlIENsZXJjcQ0KK0xvdWlzLCBIdWJlcnQtTm/Dq2wNCitMb3VpcywgTW9ycmlzDQorTG91aXMsIFZpY3Rvcg0KK0xvdmUsIEppbQ0KK0xvdmVsbCwgU2hhdW4NCitMb3ZldC1Mb3Jza2ksIEJvcmlzDQorTG93LCBCZXJ0aGEgTGVhDQorTG93ZSwgVHJ1bWFuDQorTG93aW5za3ksIFRob21hcw0KK0xvd3J5LCBLZWl0aA0KK0xvd3J5LCBMYXVyZW5jZSBTLg0KK0xvem93aWNrLCBMb3Vpcw0KK0x1IEZ1c2hlbmcNCitMdSBIdWkNCitMdSBTaG91a3VuDQorTHUgWHVuDQorTHUgWWFuc2hhbw0KK0x1IFpoaQ0KK0x1YmVyLCBQYXRyaWNrDQorTHVjYSBkaSBUb21tw6gNCitMdWNhcyBWaWxsYW1pbCwgRXVnZW5pbw0KK0x1Y2FzLCBEYXZpZA0KK0x1Y2FzLCBKb2huIFNleW1vdXINCitMdWNjaGVzaSwgQnJ1bm8NCitMdWNlLCBNYXhpbWlsaWVuDQorTHVjZXJvLCBNaWNoYWVsDQorTHVjaGlhbiwgU3RlZmFuDQorTHVjaWVyLCBNYXJ5DQorTHVjaW9uaSwgTHVpZ2kNCitMdWRpbnMsIFJ5YWgNCitMdWluaSwgQmVybmFyZGlubw0KK0x1a3MsIEdlb3JnZQ0KK0x1bSwgS2VuDQorTHVtaW5haXMsIEV2YXJpc3RlLVZpdGFsDQorTHVtaXMsIEhhcnJpZXQgUmFuZGFsbA0KK0x1bXNkZW4sIEVybmVzdCBTdGVwaGVuDQorTHVuYSwgSmFtZXMNCitMdW5kZWJlcmcsIEhlbGVuDQorTHVuZGVlbiwgR2VvcmdlDQorTHVuZHN0csO4bSwgVmlsaGVsbQ0KK0x1bmdyZW4sIEZlcm5hbmQgSGFydmV5DQorTHVvIEdvbmdsaXUNCitMdW8gWmhvbmdsaQ0KK0zDvHBlcnR6LCBNYXJrdXMNCitMdXLDp2F0LCBKZWFuDQorTHVyaWUsIE5hbg0KK0x1c2NvbWIsIFdpbGxpYW0gSGVucnkNCitMdXp6bywgR2lvdmFubmkNCitMeWFsbCwgTGF1cmEgTXVudHoNCitMeWRvcw0KK0x5bWFuLCBKb2huIEdvb2R3aW4NCitMeXNpcHBpZGVzIFBhaW50ZXIsIFRoZQ0KK0x5c2lwcHVzDQorTWEgWXVhbg0KK01hYXMgdGhlIFlvdW5nZXIsIEpvaGFubmVzDQorTWFiZSwgTWFuYWJ1DQorTWFidXNlDQorTWFjYXJ0bmV5LCBDYXJsaWxlIEhlbnJ5IEhheWVzDQorTWFjJ0F2b3kNCitNYWNjYWxsdW0sIEFuZHJldw0KK01hY0NhbWVyb24sIFJvYmVydCBMZWUNCitNYWNjacOzLCBSw7NtdWxvDQorTWFjZG9uYWxkLCBHZW9yZ2luYQ0KK01hY0RvbmFsZCwgSi5FLkguDQorTWFjRG9uYWxkLCBKLlcuRy4NCitNYWNEb25hbGQsIE1hcmdhcmV0DQorTWFjZG9uYWxkLVdyaWdodCwgU3RhbnRvbg0KK01hY0Rvd2VsbCwgUGF0cmljaw0KK01hY2hpYXZlbGxpLCBaYW5vYmkNCitNYWNJdmVyLCBMb3Jlbg0KK01hY0theQ0KK01hY2tlLCBBdWd1c3QNCitNYWNrZW5uYWwsIEJlcnRyYW0NCitNYWNrZW56aWUsIEZyZWRlcmljaw0KK01hY2tleSwgQmVhdHJpY2UgSG93aWUNCitNYWNraWUsIFJheQ0KK01hY2tpbnRvc2gsIENoYXJsZXMgUmVubmllDQorTWFjTGF1Z2hsYW4sIERvbmFsZCBTaGF3DQorTWFjbGlzZSwgRGFuaWVsDQorTWFjTW9ubmllcywgRnJlZGVyaWNrIFcuDQorTWFjTW9ubmllcywgTWFyeSBGYWlyY2hpbGQNCitNYWNOYWlyLCBGcmFuY2VzDQorTWFjbmFpciwgSGVyYmVydA0KK01hY05lZSwgQ29saW4NCitNYWNOZWlsLCBIZXJtb24gQXRraW5zDQorTWFjb21iZXIsIE1hcnkNCitNYWNQaGVyc29uLCBSb2JlcnQNCitNYWNyYWUsIEVtbWEgRm9yZHljZQ0KK01hY1JpdGNoaWUsIExld2lzDQorTWFkZGVsZW5hIE1hc3Rlcg0KK01hZGVyLCBMb3Vpcw0KK01hZGVybm8sIFN0ZWZhbm8NCitNYWRyYXpvIHkgQWd1ZG8sIEpvc2UgRGUNCitNYWRyYXpvIHkgR2FycmV0YSwgUmFpbXVuZG8gZGUNCitNYWRyYXpvIHkgS8O8bnR6LCBGZWRlcmljbyBkZQ0KK01hZXMsIE5pY29sYWVzDQorTWFlc3Rvc2ksIEZyYW5jZXNjbw0KK01hZXN0cm8gUHVnbGllc2UtQWJydXp6ZXNlDQorTWFmZmVpLCBGcmFuY2VzY28NCitNYWdhbnphLCBBbGVzc2FuZHJvDQorTWFnZ2lvdHRvLCBEb21lbmljbw0KK01hZ25hc2NvLCBBbGVzc2FuZHJvDQorTWFnbmVyLCBQaGlsaXBwZQ0KK01hZ3JpdHRlLCBSZW7DqQ0KK01haGFmZmV5LCBNZXJyaWxsDQorTWFoZGksIE11aGFtbWFkDQorTWFoZXIsIEFsaWNlDQorTWFob24sIEpvc2VwaGluZQ0KK01haG9uZXksIE1pa2UNCitNYWkgWGlhbnlhbmcNCitNYWlsbG9sLCBBcmlzdGlkZQ0KK01haW5hcmRpLCBTZWJhc3RpYW5vDQorTWFpbmUsIENhbWlsbG8NCitNYWluZXJpLCBGcmFuY2VzY28NCitNYWlub2xmaSwgTHVpZ2kNCitNYWlyIHZvbiBMYW5kc2h1dA0KK01haXMsIEhpbGFyaWUNCitNYWlzY2gsIEpvaGFubg0KK01haXRhbmksIExvcmVuem8NCitNYWl0bGFuZCwgUGF1bA0KK01ham9yLCBFcm5lc3QgTGVlDQorTWFrYXJ0LCBIYW5zDQorTWFrb3Zza3ksIEtvbnN0YW50aW4gRWdvcm92aWNoDQorTWFrb3dza2ksIFRhZGV1c3oNCitNYWxib25lLCBFZHdhcmQgR3JlZW5lDQorTWFsY2hhaXIsIEpvaG4gQmFwdGlzdA0KK01hbGRvbmFkbywgQWxleGFuZGVyIEEuDQorTWFsZXIgenUgU2Nod2F6LCBIYW5zDQorTWFsZXZpY2gsIEthc2ltaXINCitNYWxmYXR0aSwgQW5pdGENCitNYWxpbmNvbmljbywgTmljb2xhDQorTWFsbGV0LCBKZWFuLUJhcHRpc3RlDQorTWFsbG8sIE1hcnVqYQ0KK01hbG9uZSwgUm9iZXJ0IFIuDQorTWFsb3VlbCwgSmVhbg0KK01hbHBhc3MsIE1pY2hhZWwNCitNYWx0ZXNlLCBGcmFuY2VzY28NCitNYWx0d29vZCwgS2F0aGVyaW5lIEVtbWENCitNYW4gUmF5DQorTWFuZGVyLCBLYXJlbCB2YW4NCitNYW5kaWpuLCBKYW4NCitNYW5kbGViYXVtLCBCaWxsDQorTWFuZXNzaWVyLCBBbGZyZWQNCitNYW5ldCwgw4lkb3VhcmQNCitNYW5mcmVkaSwgQmFydG9sb21lbw0KK01hbmdvbGQsIFJvYmVydA0KK01hbmdvbGQsIFN5bHZpYSBQbGltYWNrDQorTWFuZ29zLCBTaW1vbmUNCitNYW5ndWluLCBIZW5yaQ0KK01hbmxleSwgVGhvbWFzDQorTWFubiwgSi5ILlMuDQorTWFubiwgU2FsbHkNCitNYW5zaGlwLCBQYXVsDQorTWFuc29uLCBKYW1lcyBCb2xpdmFyDQorTWFuc3VldGksIEdpb3Zhbm5pDQorTWFudGVnYXp6YSwgQW50b25pbw0KK01hbnRlZ2F6emEsIENyaXN0b2Zvcm8NCitNYW50ZWduYSwgQW5kcmVhDQorTUFOVUFMDQorTWFudWVsLCBOaWtsYXVzDQorTWFuLXlvdW5nLCBIYW4NCitNYW56b25pLCBQaWVybw0KK01hbnrDuSwgR2lhY29tbw0KK01hbnp1b2xpLCBUb21tYXNvDQorTWFvIExpemkgKFpoYW5nIFpodW5saSkNCitNYW95ZSwgU2hlbmcNCitNYS1QZS1XaQ0KK01hcHBsZXRob3JwZSwgUm9iZXJ0DQorTWFyYXR0YSwgQ2FybG8NCitNYXJjLCBGcmFueg0KK01hcmNhLVJlbGxpLCBDb25yYWQNCitNYXJjaGVzaW5pLCBBbGVzc2FuZHJvDQorTWFyY2hpb3JpLCBHaW92YW5uaQ0KK01hcmNpbGxhdCwgR3VpbGxhdW1lIGRlDQorTWFyY2tzLCBHZXJoYXJkDQorTWFyY28gZCdPZ2dpb25vDQorTWFyY291c3NpcywgTG91aXMNCitNYXJkZW4sIEJyaWNlDQorTWFyw6llcywgSGFucyB2b24NCitNYXJlc2NvdHRpLCBBbnRvbmlvDQorTWFyZ2FyaXRvbmUgZCdBcmV6em8NCitNYXJnb2xpZXMsIFNhbXVlbA0KK01hcmlhbmksIENhbWlsbG8NCitNYXJpYW5pLCBDYXJsbyBNYXJpYQ0KK01hcmllLCBKYW5lIEdvbGRpbmcNCitNYXJpZXNjaGksIE1pY2hlbGUgR2lvdmFubmkNCitNYXJpbGhhdCwgUHJvc3Blcg0KK01hcmlsbGllciwgQ2zDqW1lbnQgUGllcnJlDQorTWFyaW4sIEphdmllcg0KK01hcmluLCBKb2huDQorTWFyaW5hbGksIE9yYXppbw0KK01hcmluYXJpLCBPbm9yaW8NCitNYXJpbmV0dGksIEZpbGlwcG8gVG9tbWFzbw0KK01hcmluaSwgTWFyaW5vDQorTWFyaW9uaSwgRGFudGUNCitNYXJpb25pLCBKb3NlcGgNCitNYXJpcywgSmFjb2IgSGVucmljdXMNCitNYXJpcywgTWF0dGhpanMNCitNYXJpcywgV2lsbGVtDQorTWFyaXNhbGRpLCBFdmENCitNYXJpc29sDQorTWFyaywgR2VvcmdlIFdhc2hpbmd0b24NCitNYXJrLCBNYXJ5IEVsbGVuDQorTWFya2hhbSwgS3lyYQ0KK01hcmtvdywgSmFjaw0KK01hcmtzLCBIZW5yeSBTdGFjeQ0KK01hcmxvdywgV2lsbGlhbQ0KK01hcm1pb24sIFNpbW9uDQorTWFybWl0dGEsIEZyYW5jZXNjbw0KK01hcm9jaGV0dGksIENhcmxvDQorTWFyb24sIEFudG9uIHZvbg0KK01hcnF1ZXQsIEFsYmVydA0KK01hcnF1ZXogZGUgVmVsYXNjbywgRXN0ZWJhbg0KK01hcnNoLCBSZWdpbmFsZA0KK01hcnNoYWxsLCBCZW5qYW1pbg0KK01hcnNpbmdhbGwsIEEuDQorTWFyc3kgSUksIEdhc3BhcmQNCitNYXJzeWFzIFBhaW50ZXIsIFRoZQ0KK01hcnRhLCBMdWlnaQ0KK01hcnRlbnMsIENvbnJhZA0KK01hcnRlbnMsIFdpbGxlbQ0KK01hcnRpbiwgQWduZXMNCitNYXJ0aW4sIENoYXJsZXMNCitNYXJ0aW4sIERhdmlkIFN0b25lDQorTWFydGluLCBEZW5uaXMNCitNYXJ0aW4sIERvdWdsYXMNCitNYXJ0aW4sIEVsaWFzDQorTWFydGluLCBIZW5yaQ0KK01hcnRpbiwgSG9tZXIgRG9kZ2UNCitNYXJ0aW4sIEpvaG4NCitNYXJ0aW4sIFRob21hcyBNb3dlcg0KK01hcnRpbmVhdSwgUm9iZXJ0IEJyYWl0aHdhaXRlDQorTWFydGluZWssIER3aWdodA0KK01hcnRpbmVsbGksIEdpb3Zhbm5pDQorTWFydGluZXosIEp1bGlhbg0KK01hcnRpbmV6LCBNYXLDrWENCitNYXJ0aW5leiwgU2FudGFuYQ0KK01hcnRpbmksIEFydHVybw0KK01hcnRpbmksIFNpbW9uZQ0KK01hcnRpbm8gZGkgQmFydG9sb21lbyBkaSBCaWFnbw0KK01hcnRvcmVsbCwgQmVybmFyZG8NCitNYXJ1eWFtYSBPa3lvDQorTWFzYWNjaW8NCitNYXNhamkgWW9zaGlkYQ0KK01hc2Fub2J1LCBPa3VtdXJhDQorTWFzYXlvc2hpLCBLaXRhbw0KK01hc2NoZXJpbmksIE1hcmNlbGxvDQorTWFzZWssIFZpdGV6bGF2IEthcmVsDQorTWFzbyBkaSBCYW5jbw0KK01hc29saW5vIGRhIFBhbmljYWxlDQorTWFzb24sIEVsYWluZQ0KK01hc29uLCBHZW9yZ2UNCitNYXNvbiwgSmFtZXMNCitNYXNvbiwgTWF1ZCBNYXJ5DQorTWFzb24sIFJheW1vbmQNCitNYXNvbiwgUm95DQorTWFzc29uLCBBbmRyw6kNCitNYXNzb3UsIEJlbm/DrnQNCitNYXNzeXMsIFF1ZW50aW4NCitNYXN0ZXIgQS5DLg0KK01hc3RlciBBLkcuDQorTWFzdGVyIEIuIG9mIHRoZSBEaWUNCitNYXN0ZXIgQmVydHJhbQ0KK01hc3RlciBFLlMuDQorTWFzdGVyIEYuVi5CLg0KK01hc3RlciBJLksuDQorTWFzdGVyIEphY29tbw0KK01hc3RlciBMQ3oNCitNYXN0ZXIgTS5TLg0KK01hc3RlciBNLlouDQorTWFzdGVyIG9mIDE0MTkNCitNYXN0ZXIgb2YgQXBvbGxvIGFuZCBEYXBobmUNCitNYXN0ZXIgb2YgRmVtYWxlIEhhbGYtTGVuZ3Rocw0KK01hc3RlciBvZiBGbG9yYQ0KK01hc3RlciBvZiBGcmFua2Z1cnQNCitNYXN0ZXIgb2YgSGVpbGlnZW5rcmV1eg0KK01hc3RlciBvZiBIb29nc3RyYWV0ZW4NCitNYXN0ZXIgb2YgSsOhbm9zcsOpdA0KK01hc3RlciBvZiBNYXJ5IG9mIEJ1cmd1bmR5DQorTWFzdGVyIG9mIFByYXRvdmVjY2hpbw0KK01hc3RlciBvZiBTYWludCBGcmFuY2lzDQorTWFzdGVyIG9mIFNhaW50IEdpbGxlcw0KK01hc3RlciBvZiBTYWludCBHcmVnb3J5DQorTWFzdGVyIG9mIFNhaW50IFZlcm9uaWNhDQorTWFzdGVyIG9mIFNhbiBGcmFuY2VzY28gQmFyZGkNCitNYXN0ZXIgb2YgU2FuIEphY29wbyBhIE11Y2NpYW5hDQorTWFzdGVyIG9mIFNhbnRvIFNwaXJpdG8NCitNYXN0ZXIgb2YgdGhlIEFjdHMgb2YgTWVyY3kNCitNYXN0ZXIgb2YgdGhlIEFpeC1lbi1DaGFwZWwgQWx0YXJwaWVjZQ0KK01hc3RlciBvZiB0aGUgQW5udW5jaWF0aW9uIHRvIHRoZSBTaGVwaGVyZHMNCitNYXN0ZXIgb2YgdGhlIEF1Z3NidXJnIFZpc2l0YXRpb24NCitNYXN0ZXIgb2YgdGhlIEF2aWdub24gU2Nob29sDQorTWFzdGVyIG9mIHRoZSBCYXJkaSBTYWludCBGcmFuY2lzDQorTWFzdGVyIG9mIHRoZSBCYXJvbmNlbGxpIFBvcnRyYWl0cw0KK01hc3RlciBvZiB0aGUgQmF0dGxlIG9mIEZvcm5vdm8NCitNYXN0ZXIgb2YgdGhlIEJlcnN3b3JkdCBBbHRhcg0KK01hc3RlciBvZiB0aGUgQ2FuZGxlDQorTWFzdGVyIG9mIHRoZSBDYXN0ZWxsbyBOYXRpdml0eQ0KK01hc3RlciBvZiB0aGUgQ29idXJnIFJvdW5kZWxzDQorTWFzdGVyIG9mIHRoZSBDb2RleCBvZiBTYWludCBHZW9yZ2UNCitNYXN0ZXIgb2YgdGhlIEN5cHJlc3Nlcw0KK01hc3RlciBvZiB0aGUgRGF2aWQgYW5kIFNhaW50IEpvaG4gU3RhdHVldHRlcw0KK01hc3RlciBvZiB0aGUgRGludGV2aWxsZSBBbGxlZ29yeQ0KK01hc3RlciBvZiB0aGUgRG9taW5pY2FuIEVmZmlnaWVzDQorTWFzdGVyIG9mIHRoZSBEdWtlIG9mIEJlZGZvcmQNCitNYXN0ZXIgb2YgdGhlIEVtYnJvaWRlcmVkIEZvbGlhZ2UNCitNYXN0ZXIgb2YgdGhlIEZvZ2cgUGlldMOgDQorTWFzdGVyIG9mIHRoZSBGcmFuY2lzY2FuIENydWNpZml4ZXMNCitNYXN0ZXIgb2YgdGhlIEdyaXNlbGRhIExlZ2VuZA0KK01hc3RlciBvZiB0aGUgSG9seSBGYW1pbHkNCitNYXN0ZXIgb2YgdGhlIEhvdXNlYm9vaw0KK01hc3RlciBvZiB0aGUgSm9zZXBoIExlZ2VuZA0KK01hc3RlciBvZiB0aGUgS2FybHNydWhlIFBhc3Npb24NCitNYXN0ZXIgb2YgdGhlIEtoYW5lbmtvIEFkb3JhdGlvbg0KK01hc3RlciBvZiB0aGUgTGF0b3VyIGQnQXV2ZXJnbmUgVHJpcHR5Y2gNCitNYXN0ZXIgb2YgdGhlIExpZmUgb2YgU2FpbnQgSm9obiB0aGUgQmFwdGlzdA0KK01hc3RlciBvZiB0aGUgTGlmZSBvZiB0aGUgVmlyZ2luDQorTWFzdGVyIG9mIHRoZSBNYWdkYWxlbiBMZWdlbmQNCitNYXN0ZXIgb2YgdGhlIE1hbm5hDQorTWFzdGVyIG9mIHRoZSBNYXJibGUgTWFkb25uYXMNCitNYXN0ZXIgb2YgdGhlIE1hc2NvbGkgQWx0YXINCitNYXN0ZXIgb2YgdGhlIE1pZGRsZS1SaGluZQ0KK01hc3RlciBvZiB0aGUgTW9ycmlzb24gVHJpcHR5Y2gNCitNYXN0ZXIgb2YgdGhlIE9zc2VydmFuemENCitNYXN0ZXIgb2YgdGhlIFBmdWxsZW5kb3JmIEFsdGFyDQorTWFzdGVyIG9mIHRoZSBQbGF5aW5nIENhcmRzDQorTWFzdGVyIG9mIHRoZSBQb2xsaW5nIFBhbmVscw0KK01hc3RlciBvZiB0aGUgUG9ydHJhaXRzIG9mIHRoZSBQcmluY2VzDQorTWFzdGVyIG9mIHRoZSBQcmFkbydzIEFkb3JhdGlvbiBvZiB0aGUgTWFnaQ0KK01hc3RlciBvZiB0aGUgUHJvY2Vzc2lvbg0KK01hc3RlciBvZiB0aGUgUmViZWwgQW5nZWxzDQorTWFzdGVyIG9mIHRoZSBSZXRhYmxvIG9mIHRoZSBSZXllcyBDYXRvbGljb3MNCitNYXN0ZXIgb2YgdGhlIFJpbnVjY2luaSBDaGFwZWwNCitNYXN0ZXIgb2YgdGhlIFNhaW50IEJhcnRob2xvbWV3IEFsdGFycGllY2UNCitNYXN0ZXIgb2YgdGhlIFNhaW50IENhdGhlcmluZSBMZWdlbmQNCitNYXN0ZXIgb2YgdGhlIFNhaW50IEx1Y3kgTGVnZW5kDQorTWFzdGVyIG9mIHRoZSBTYWludCBVcnN1bGEgTGVnZW5kDQorTWFzdGVyIG9mIHRoZSBTdMO2dHRlcml0eiBBbHRhcg0KK01hc3RlciBvZiB0aGUgVGVnZXJuc2VlIFBhc3Npb24NCitNYXN0ZXIgb2YgdGhlIFRodWlzb24gQWx0YXJwaWVjZQ0KK01hc3RlciBvZiB0aGUgVGliZXJ0aW5lIFNpYnlsDQorTWFzdGVyIG9mIHRoZSBWaWV3IG9mIFNhaW50ZSBHdWR1bGUNCitNYXN0ZXIgb2YgVmlyZ28gaW50ZXIgVmlyZ2luZXMNCitNYXN0ZXIgUy4NCitNYXN0ZXJzIG9mIHRoZSBGb250YWluZWJsZWF1DQorTWFzdGVycywgRS4NCitNYXN0cm9pYW5uaSwgVW1iZXJ0bw0KK01hc3Ryby1WYWxlcmlvLCBBbGVzc2FuZHJvDQorTWF0ZWprbywgSmFuDQorTWF0aGFtLCBKYWNvYg0KK01hdGhld3MsIEFydGh1ciBGcmFuaw0KK01hdGlzc2UsIEhlbnJpDQorTWF0aXNzZSwgUGF1bA0KK01hdHN1YmFyYSwgTmFva28NCitNYXR0YSwgUm9iZXJ0bw0KK01hdHRhLUNsYXJrLCBHb3Jkb24NCitNYXR0ZWlzLCBQYW9sbyBkZScNCitNYXR0ZW8gZGEgR3VhbGRvDQorTWF0dGVvIGRpIEdpb3Zhbm5pDQorTWF0dGVzb24sIFRvbXBraW5zIEhhcnJpc29uDQorTWF0dGhld3MsIE1hcm1hZHVrZQ0KK01hdHRpYWNjaSwgRWxpc2VvDQorTWF0dGlvbGksIENhcmxvDQorTWF0dGlzLVRldXRzY2gsIEhhbnMNCitNYXR1bGthLCBKYW4NCitNYXVmcmEsIE1heGltZQ0KK01hdWxiZXJ0c2NoLCBGcmFueiBBbnRvbg0KK01hdXBlcmNow6ksIEhlbnJpDQorTWF1cmVhdSwgQWxwaG9uc2UNCitNYXVyZXIsIEFsZnJlZCBIZW5yeQ0KK01hdXZlLCBBbnRvbg0KK01hdmVyaWNrLCBQZXRlciBSdXNodG9uDQorTWF4LCBQZXRlcg0KK01heGVuY2UsIEVkZ2FyDQorTWF4d2VsbCwgRG9uYWxkDQorTWF5LCBQaGlsDQorTWF5YWxsLCBKb2huIEphYmV6IEVkd2luDQorTWF5ZXIsIEZyYW5rIEJsYWNrd2VsbA0KK01heWVyLUxhbWFydGluacOocmUsIE1hcmllLUZyYW7Dp29pc2UtQ29uc3RhbmNlDQorTWF5aGV3LCBGcmVkZXJpY2sgVy4NCitNYXlubywgSnVhbiBCYXV0aXN0YQ0KK01heXIsIENocmlzdGlhbg0KK01hem8sIEp1YW4gQmF1dGlzdGEgTWFydMOtbmV6IGRlbA0KK01henphY3VyYXRpLCBNYXJpbm8NCitNYXp6aW5naGksIFBpZXRybw0KK01henpvbGEgQmVkb2xpLCBHaXJvbGFtbw0KK01henpvbGlubywgTHVkb3ZpY28NCitNYXp6b25pLCBHdWlkbw0KK01henp1Y2NvbmksIE1hcmNvDQorTWF6enVvbGksIEdpdXNlcHBlDQorTWNBdm95LCBNYXJpbHluDQorTWNCZXksIEphbWVzDQorTWNDYXJ0aHksIENhdGhlcmluZQ0KK01jQ2FydGh5LCBHYWlsDQorTWNDYXJ0bmV5LCBMaW5kYQ0KK01jQ2FzbGluLCBKYWNrDQorTWNDbG9za2V5LCBXaWxsaWFtIEouDQorTWNDb2xsdW0sIEFsbGFuDQorTWNDdWJiaW4sIEZyZWRlcmljaw0KK01jRGVybW90dCwgRW1tYQ0KK01jRXZveSwgQW1icm9zZQ0KK01jRXdlbiwgSm9obg0KK01jRmFybGFuZSwgRHVuY2FuDQorTWNHZWUsIENoYXJsZXMNCitNY0ludG9zaCwgSGFycmlzb24NCitNY0tlbnppZSwgUm9iZXJ0IFRhaXQNCitNY0tpc3NpY2ssIExvdWlzZQ0KK01jTGF1Z2hsaW4sIEpvaG4NCitNY0xlYW4sIFJpY2hhcmQNCitNY0xlYW4sIFQuVy4NCitNY01hc3RlciwgR2VyYWxkDQorTWNNaWxsYW4sIExlbw0KK01jTWlsbGVuLCBNaWNoYWVsDQorTWNOZWlsLCBHZW9yZ2UNCitNY05pY29sbCwgSGVsZW4NCitNY1NoZWVoeSwgQ29ybmVsaWENCitNY1RhZ2dhcnQsIFdpbGxpYW0NCitNY1ZlaWdoLCBCbGFuY2hlDQorTWVhZCwgTWFyeQ0KK01lYWQsIFJheQ0KK01lYWRvd3MsIEJlcm5hcmQNCitNZWF0eWFyZCwgUmFscGggRXVnZW5lDQorTWVja2VuZW0sIElzcmFoZWwgdmFuDQorTWVlZ2FuLCBUaW0NCitNZWhvZmZlciwgSsOzemVmDQorTWVpZGlhcyBQYWludGVyLCBUaGUNCitNZWlkbmVyLCBMdWR3aWcNCitNZWlyZWxlcyBkZSBMaW1hLCBWw610b3INCitNZWlzc25lciwgTGVvIEouDQorTWVpc3NvbmllciwgSmVhbi1Mb3Vpcy1Fcm5lc3QNCitNZWlzdGVybWFubiwgR2VvcmcNCitNZWl0LCBDb25yYWQNCitNZWxjaGVycywgR2FyaQ0KK01lbGRydW0sIE1heA0KK01lbGVhZ2VyIFBhaW50ZXIsIFRoZQ0KK01lbMOpbmRleiwgTHVpcyBFZ2lkaW8NCitNZWxsYW4sIENsYXVkZQ0KK01lbGxlcnksIFhhdmllcg0KK01lbGxpLCBSb2JlcnRvDQorTWVsbGlzLCBNYXJnYXJldA0KK01lbG90dGksIEZhdXN0bw0KK01lbG96em8gZGEgRm9ybMOtDQorTWVscm9zZSwgQW5kcmV3DQorTWVsdHNuZXIsIFBhdWwNCitNZWx2aWxsZSwgQXJ0aHVyDQorTWVsemksIEZyYW5jZXNjbw0KK01lbWxpbmcsIEhhbnMNCitNZW1taSwgTGlwcG8NCitNZW5hYnVvaSwgR2l1c3RvIGRlDQorTcOpbmRleiwgTGVvcG9sZG8NCitNZW5kaWV0YSwgQW5hDQorTWVuZG96YSwgSnVuZQ0KK01lbmUsIFBpZXJyZS1KdWxlcw0KK01lbmVzZXMgT3NvcmlvLCBGcmFuY2lzY28NCitNZW5naW4sIENoYXJsZXMgQXVndXN0DQorTWVuZ3MsIEFudG9uIFJhcGhhZWwNCitNZW5pw6hyZSwgUGF1bC1OaWNvbGFzDQorTWVubmllLCBTdGV2ZQ0KK01lbnBlcywgTW9ydGltZXINCitNZW56ZWwsIEFkb2xmIHZvbg0KK01lbnpsZXItUGF5dG9uLCBCZXJ0aGENCitNZXJjacOpLCBNYXJpdXMtSmVhbi1BbnRvbmluDQorTWVyY2llciwgUGhpbGlwDQorTWVyZWRpdGgsIEpvaG4NCitNZXJpYW4sIE1hcmlhIFNpYnlsbGENCitNw6lyaWRhLCBDYXJsb3MNCitNZXJpdmFsZSwgRnJhbmNpcw0KK01lcmxlLCBIdWd1ZXMNCitNZXJyaXR0LCBBbm5hIExlYQ0KK01lcnlvbiwgQ2hhcmxlcw0KK01lcnosIE1hcmlvDQorTWVyeiwgTWFyaXNhDQorTWVzc2FnZXIsIEFubmV0dGUNCitNZXNzZXJzY2htaWR0LCBGcmFueiBYYXZlcg0KK01lc3NpbmEsIEZyYW5jZXNjbw0KK01lc3Ryb3ZpYywgSXZhbg0KK01ldCBkZSBCbGVzLCBIZW5yeQ0KK01ldGNhbGYsIFdpbGxhcmQgTGVyb3kNCitNZXRleWFyZCwgU2lkbmV5DQorTWV0c29uLCBHcmFoYW0NCitNZXRzdSwgR2FicmllbA0KK01ldHppbmdlciwgSmVhbg0KK01ldHpuZXIsIEJhcnJ5IA0KK01ldWxlbiwgQWRhbS1GcmFueiB2YW4gZGVyDQorTWV1bGVuLCBTdGV2ZW4gdmFuIGRlcg0KK01ldXJlciwgQ2hhcmxlcyBBLg0KK01leWVyIElJLCBIZW5kcmlrIGRlDQorTWV5ZXIsIEphbWVzDQorTWV5ZXIsIEpvaGFubiBHZW9yZw0KK01leWVyb3dpdHosIEpvZWwNCitNZXl0ZW5zLCBNYXJ0aW4gdmFuDQorTWkgRnUNCitNaWNoYWVscywgSmFtZXMNCitNaWNoYWxsb24sIEFjaGlsbGUgRXRuYQ0KK01pY2hhbG92LCBBbm4NCitNaWNoZWwsIEFsZm9uc28NCitNaWNoZWwsIEdlb3JnZXMNCitNaWNoZWxhbmdlbG8gQnVvbmFycm90aQ0KK01pY2hlbGUgZGEgVmVyb25hDQorTWljaGVsZSBQYW5ub25pbw0KK01pY2hlbGksIFBhcnJhc2lvDQorTWljaGVsaW4sIEplYW4NCitNaWNoZWxsaSwgQW5kcmVhDQorTWljaGVsbW9yZSwgUmljaGFyZA0KK01pY2hlbG96em8gZGkgQmFydG9sb21lbw0KK01pZWwsIEphbg0KK01pZWxhdHosIENoYXJsZXMgRnJlZGVyaWNrIFdpbGxpYW0NCitNaWVsaWNoLCBIYW5zDQorTWllcmV2ZWxkLCBNaWNoaWVsIEphbnN6Lg0KK01pZXJpcyB0aGUgRWxkZXIsIEZyYW5zIHZhbg0KK01pZXJpcywgSmFuIHZhbg0KK01pZXJpcywgV2lsbGVtIHZhbg0KK01pZXMgdmFuIGRlciBSb2hlLCBMdWR3aWcNCitNaWduYXJkLCBOaWNvbGFzDQorTWlnbmFyZCwgUGllcnJlDQorTWlnbm9uLCBBYnJhaGFtDQorTWlnbm90LCBMb3VpcyBSw6lteQ0KK01pam4sIEZyYW5zIHZhbiBkZXINCitNaWxhbmksIEF1cmVsaWFubw0KK01pbGFuaSwgVW1iZXJ0bw0KK01pbGxhaXMsIEpvaG4gRXZlcmV0dA0KK01pbGxhciwgSmFtZXMNCitNaWxsYXJlcyBTYWxsLCBNYW51ZWwNCitNaWxsZXIsIEFsZnJlZCBKYWNvYg0KK01pbGxlciwgRGV3ZXkNCitNaWxsZXIsIEZyZWQgRS4NCitNaWxsZXIsIEdlb3JnZSBNLg0KK01pbGxlciwgSmFtZXMNCitNaWxsZXIsIEtlbm5ldGggSGF5ZXMNCitNaWxsZXIsIE1lbGlzc2ENCitNaWxsZXIsIFJpY2hhcmQNCitNaWxsZXIsIFJpY2hhcmQgRW1pbA0KK01pbGxlciwgUm9zcw0KK01pbGxlciwgU2FsbHkNCitNaWxsZXIsIFNhbXVlbA0KK01pbGxlciwgV2lsbGlhbSBSaWNrYXJieQ0KK01pbGxldCwgRnJhbmNpcyBEYXZpcw0KK01pbGxldCwgRnJhbmNpc3F1ZQ0KK01pbGxldCwgSmVhbi1GcmFuw6dvaXMNCitNaWxsaWVyLCBBcnRodXIgSC4NCitNaWxsaW5ndG9uLCBQcm9mZXNzb3INCitNaWxuZSwgRGF2aWQNCitNaW5ndXp6aSwgTHVjaWFubw0KK01pbm5lLCBHZW9yZ2UNCitNaW5vIGRhIEZpZXNvbGUNCitNaW5vciwgQW5uZSBSb2dlcnMNCitNaW5venppLCBGbGFtaW5pbyBJbm5vY2Vuem8NCitNaW50b24sIEpvaG4NCitNaXIsIEpvYXF1w61uDQorTWlyYmVsLCBMaXppbmthLUFpbcOpZS1ab8OpIGRlDQorTWlyw7MsIEpvYW4NCitNaXJvbGEsIEdpcm9sYW1vDQorTWlzZXJvbmksIE90dGF2aW8NCitNaXRjaGVsbCwgSm9hbg0KK01pdGNobmljaywgTmFuY3kNCitNaXRzdW5vYnUsIEhhc2VnYXdhDQorTWl5YWppbWEsIFRhdHN1bw0KK01vY2V0dG8sIEdpcm9sYW1vDQorTW9jaGksIEZyYW5jZXNjbw0KK01vZGVybm8NCitNb2RlcnNvaG4tQmVja2VyLCBQYXVsYQ0KK01vZGlnbGlhbmksIEFtYWRlbw0KK01vZG90dGksIFRpbmENCitNb2VsbGVyLCBMb3VpcyBDaGFybGVzDQorTW9oYWx5aSwgWW9sYW5kYQ0KK01vaG9seS1OYWd5LCBMw6FzemzDsw0KK01vaHJtYW5uLCBKb2huIEhlbnJ5DQorTW9pbGxvbiwgTG91aXNhDQorTW9sYSwgUGllciBGcmFuY2VzY28NCitNb2xkdmF5LCBBbGJlcnQNCitNb2xlbmFlciwgSmFuIE1pZW5zZQ0KK01vbGluYXJpLCBHdWlkbw0KK01vbGwsIENhcmwNCitNb2x5biwgUGlldGVyIGRlDQorTW9semFobiwgSm9oYW5uZXMNCitNb21wZXIgSUksIEpvb3MgZGUNCitNb21ww7MsIE1hbnVlbCBIZXJuw6FuZGV6DQorTW9uYWxkaSwgUGFvbG8NCitNb25hbXksIFBldGVyDQorTW9uZHJpYW4sIFBpZXQNCitNb25ldCwgQ2xhdWRlDQorTW9ubmluZ3RvbiwgU2lyIFRob21hcw0KK01vbm5vdCwgUGllcnJlIMOJdGllbm5lDQorTW9ubm95ZXIsIEplYW4tQmFwdGlzdGUNCitNb25ybywgRHIuIFRob21hcw0KK01vbnRhZ25hLCBCYXJ0b2xvbWVvDQorTW9udGHDsWV6LCBKdWFuIE1hcnRpbmV6DQorTW9udGFyZGllcg0KK01vbnRlbmVncm8sIFJvYmVydG8NCitNb250Z29tZXJpZSwgU3Rld2FydA0KK01vbnRpLCBGcmFuY2VzY28NCitNb250aSwgR2FldGFubw0KK01vbnRpY2VsbGksIEFkb2xwaGUtSm9zZXBoLVRob21hcw0KK01vbnRvcnNvbGksIEdpb3Zhbm5pIEFuZ2Vsbw0KK01vbnRveWEsIEd1c3Rhdm8NCitNb252b2lzaW4sIFJheW1vbmQNCitNb29keSwgUm9uYWxkDQorTW9vbi1zZXVwLCBTaGltDQorTW9vcmUgMTgzMS0xODk1LCBIZW5yeQ0KK01vb3JlLCBBbGJlcnQgSm9zZXBoDQorTW9vcmUsIENoYXJsZXMNCitNb29yZSwgSGVucnkNCitNb29yZSwgVC4NCitNb29yZS1QYXJrLCBDYXJ0b24NCitNb295LCBKYW4NCitNb3BvcGUsIFN0ZXBoZW4NCitNb3BwZXR0LCBDYXJyb2xsDQorTW9yLCBBbnRob25pcw0KK01vcmEsIEZyYW5jaXMgTHVpcw0KK01vcmFsZG8sIFBhb2xvDQorTW9yYWxlcywgTHVpcyBkZQ0KK01vcmFuLCBFZHdhcmQNCitNb3JhbiwgS2F0ZQ0KK01vcmFuLCBUaG9tYXMNCitNb3JhbmRpLCBHaW9yZ2lvDQorTW9yZGVjYWksIEpvc2VwaA0KK01vcmUsIEphY29iDQorTW9yZWF1LCBHdXN0YXZlDQorTW9yZWF1LCBKZWFuLU1pY2hlbA0KK01vcmVhdSwgTG91aXMgR2FicmllbA0KK01vcmVhdSwgTHVjLUFsYmVydA0KK01vcmVlbHNlLCBQYXVsdXMNCitNb3JlbGxldCwgRnJhbsOnb2lzDQorTW9yZXQsIEhlbnJpDQorTW9yZXR0byBkYSBCcmVzY2lhDQorTW9yZ2FuLCBCYXJiYXJhDQorTW9yZ2FuLCBHZW9yZ2lhIFdlc3Rvbg0KK01vcmdhbiwgTGVzbGllDQorTW9yZ2FuLCBXaWxsaWFtIEV2YW4gQ2hhcmxlcw0KK01vcmkgWW9zaGl0b3NoaQ0KK01vcmksIENhbWlsbw0KK01vcmksIE1hcmlrbw0KK01vcmltdXJhLCBZYXN1bWFzYQ0KK01vcmlzb3QsIEJlcnRoZQ0KK01vcml5YW1hLCBEYWlkbw0KK01vcmxhaXRlciwgR2lvdmFuIE1hcmlhDQorTW9ybGFuZCwgR2VvcmdlDQorTW9ybGFuZCwgSGVucnkgUm9iZXJ0DQorTW9ybGV5LCBFdWdlbmUNCitNb3JsZXksIE1hbGNvbG0NCitNb3Jsb3R0aSwgRW5uaW8NCitNb3JvLCBMaWxpYW5hDQorTW9yb2xlcywgSmVzw7pzIEJhdXRpc3RhDQorTW9yb25pLCBHaW92YW5uaSBCYXR0aXN0YQ0KK01vcm9ub2J1LCBIaXNoaWthd2ENCitNb3JyaWNlLCBKYW1lcyBXaWxzb24NCitNb3JyaXMsIENoYXJsZXMNCitNb3JyaXMsIEdlb3JnZSBMLksuDQorTW9ycmlzLCBnbGFzc21ha2VyIFdpbGxpYW0NCitNb3JyaXMsIFBoaWxpcCBSaWNoYXJkDQorTW9ycmlzLCBSb2JlcnQNCitNb3JyaXMsIFNpciBDZWRyaWMNCitNb3JyaXMsIFdpbGxpYW0NCitNb3JyaXMsIFdyaWdodA0KK01vcnJpc29uLCBHZW9yZ2UNCitNb3JyaXNzZWF1LCBOb3J2YWwNCitNb3JzZSwgU2FtdWVsIEYuQi4NCitNb3J0ZW5zZW4sIFJpY2hhcmQNCitNb3J0aW1lciwgSm9obiBIYW1pbHRvbg0KK01vcnRvbiwgQW5kcmV3DQorTW9ydG9uLCBDaHJpc3RpbmENCitNb3NlcywgRWQNCitNb3NlcywgR3JhbmRtYQ0KK01vc2VzLCBIZW5yeQ0KK01vc25pZXIsIEplYW4tTGF1cmVudA0KK01vc3NhLCBHdXN0YXZlIEFkb2xwaGUNCitNb3N0YWVydCwgSmFuDQorTW90aGVyd2VsbCwgUm9iZXJ0DQorTW90bGV5LCBBcmNoaWJhbGQNCitNb3R0ZXQsIEplYW5pZSBHYWxsdXANCitNb3R0ZXosIFZpY3Rvcg0KK01vdWNoZXJvbiwgSXNhYWMgZGUNCitNb3VsaW4sIEh5cG9seXRlLUFsZXgtQW5kcmUtSnVsaWVuDQorTW91bnQsIFdpbGxpYW0gU2lkbmV5DQorTW93YnJheSwgSC4gU2lkZG9ucw0KK01veW5paGFuLCBSb2RyaWdvDQorTXUgWGkNCitNdWNjaW5pLCBNYXJjZWxsbw0KK011Y2hhLCBBbHBob25zZQ0KK011ZWxsZXIsIE90dG8NCitNdWVyYXJpdHksIFIuIEJydWNlDQorTcO8aGwsIE90dG8NCitNdWxpZXIsIFBpZXRlcg0KK03DvGxsZXIsIENoYXJsZXMNCitNw7xsbGVyLCBGcml0eg0KK011bGxlciwgSmFuIEguDQorTcO8bGxlciwgV2lsbGlhbSBKYW1lcw0KK011bGxpY2FuLCBNYXR0DQorTXVscmVhZHksIFdpbGxpYW0NCitNdWx0c2NoZXIsIEhhbnMNCitNdW5ha2F0YSwgU2hpa28NCitNdW5hcmksIENyaXN0b2Zvcm8NCitNdW5jaCwgRWR2YXJkDQorTXVuZ2VyLCBHaWxiZXJ0DQorTXVua8OhY3N5LCBNaWjDoWx5DQorTXVubiwgUGF1bCBTYW5kYnkNCitNdW5uaW5ncywgU2lyIEFsZnJlZCBKYW1lcw0KK011w7FveiBNYXJ0aW5leiwgTHVjaW8NCitNdcOxb3osIEp1YW4NCitNw7xudGVyLCBHYWJyaWVsZQ0KK011cmF5LCBOaWNrb2xhcw0KK011cmNoLCBXYWx0ZXINCitNdXJpbGxvLCBCYXJ0b2xvbcOpIEVzdGViYW4NCitNdXJwaHksIENhdGhlcmluZQ0KK011cnBoeSwgRGVib3JhaA0KK011cnBoeSwgSm9obiBGcmFuY2lzDQorTXVycGh5LCBKb2huIEouQS4NCitNdXJwaHksIE1pbm5pZSBMb2lzDQorTXVycGh5LCBNeWxlcw0KK011cnBoeSwgTmVsbHkgTGl0dGxlaGFsZQ0KK011cnJheSwgQWxiZXJ0IEsuDQorTXVycmF5LCBDaGFybGVzIEZhaXJmYXgNCitNdXJyYXksIERyLiBKb2huDQorTXVycmF5LCBFbGl6YWJldGgNCitNdXJyYXksIFJvYmVydA0KK011c2dyYXZlLCBHZW9yZ2UNCitNdXNpa2l5c2t5LCBHcmlnb3JpaXMNCitNdXNzY2hlciwgTWljaGllbCB2YW4NCitNdXNzb2ZmLCBKb2R5DQorTXV5YnJpZGdlLCBFYWR3ZWFyZA0KK011emlhbm8sIEdpcm9sYW1vDQorTXllcnMsIEplcm9tZQ0KK015dGVucyB0aGUgRWxkZXIsIERhbmllbA0KK05hZGFyLCBGw6lsaXgNCitOYWRlbG1hbiwgRWxpZQ0KK05hZ2FoaWRlLCBZw7tyYWt1c2FpDQorTmFobCwgQ2hhcmxlcyBDaHJpc3RpYW4NCitOYWtpYW4sIFJldWJlbg0KK05hbGRpbmksIEdpb3Zhbm5pIEJhdHRpc3RhDQorTmFtaW5naGEsIERhbg0KK05hbXBleW8NCitOYW5uaSBkaSBCYW5jbw0KK05hbm5pIGRpIEJhcnRvbG8NCitOYW50ZXVpbCwgQ8OpbGVzdGluIEZyYW7Dp29pcw0KK05hbnRldWlsLCBSb2JlcnQNCitOYXBsZXMgUGFpbnRlciwgVGhlDQorTmFyZG8gZGkgQ2lvbmUNCitOYXJkbywgTWFyaW90dG8gZGkNCitOYXJvdmVjLCBHLg0KK05hc2gsIERhdmlkDQorTmFzaCwgRnJlZGVyaWNrDQorTmFzaCwgSm9obg0KK05hc2gsIFBhdWwNCitOYXNteXRoLCBQYXRyaWNrDQorTmFzb24sIEdlcnRydWRlDQorTmFzb24sIFRob21hcyBXaWxsb3VnaGJ5DQorTmFzdCwgVGhvbWFzDQorTmF0a2luLCBSb2JlcnQNCitOYXRvaXJlLCBDaGFybGVzIEpvc2VwaA0KK05hdHQsIFBob2ViZSBEYXZpcw0KK05hdHRlcywgSm9obiBDbGF1ZGUNCitOYXR0aWVyLCBKZWFuLU1hcmMNCitOYXVtYW4sIEJydWNlDQorTmF2ZXosIEZyYW7Dp29pcy1Kb3NlcGgNCitOYXksIEVybnN0IFdpbGhlbG0NCitOYXlsb3IsIE1hcmllIEouDQorTmVhZ2xlLCBKb2huDQorTmVhbGUsIEpvaG4gUHJlc3Rvbg0KK05lYm90LCBCYWx0aGF6YXINCitOZWVmZnMgSSwgUGVldGVyDQorTmVlbCwgQWxpY2UNCitOZWVsLCBEYXZpZA0KK05lZXIsIEFlcnQgdmFuIGRlcg0KK05lZXIsIEVnbG9uIEhlbmRyaWNrIHZhbiBkZXINCitOZWZmLCBCaWxsDQorTsOoZ3JlLCBDaGFybGVzDQorTmVncmksIE1hcmlvDQorTmVobGlnLCBWaWN0b3INCitOZWxzb24sIEVyaWMNCitOZXJkcnVtLCBPZGQNCitOZXJnZXIsIEV0aGVsIFBlYXJjZQ0KK05lcmkgZGkgQmljY2kNCitOZXJpLCBNYW51ZWwNCitOZXJvY2Npbw0KK05lc2JpdHQsIExvd2VsbA0KK05lc2ZpZWxkLCBXaWxsaWFtIEFuZHJld3MNCitOZXN0ZXJvdiwgTWlraGFpbCBWYXNpbCdldmljaA0KK05ldHNjaGVyLCBDYXNwYXINCitOZXR6ZXIsIERvbg0KK05ldWZjaGF0ZWwsIE5pY29sYXMNCitOZXVtYW5uLCBHaWxiZXJ0IEYuDQorTmV1dmlsbGUsIEFscGhvbnNlLU1hcmllLUFkb2xwaGUgZGUNCitOZXZlbHNvbiwgTG91aXNlDQorTmV2aW5zb24sIENocmlzdG9waGVyIFJpY2hhcmQgV3lubmUNCitOZXZpdHQsIFJpY2hhcmQgQmFycmluZ3Rvbg0KK05ld2RpZ2F0ZSwgQW5uDQorTmV3aGFsbCwgSGFycmlvdA0KK05ld21hbiwgQmFybmV0dA0KK05ld21hbiwgSm9obg0KK05ld21hbiwgUmljaGFyZA0KK05ld25zLCBCaWxsDQorTmV3dG9uLCBBbm4gTWFyeQ0KK05ld3RvbiwgR2lsYmVydCBTdHVhcnQNCitOZXd0b24sIExpbGlhcyBUb3JyYW5jZQ0KK05ld3RvbiwgU2lyIFdpbGxpYW0NCitOaWNjb2zDsiBkJ0FuZ2Vsbw0KK05pY2NvbG8gRGVsbCdBcmNhDQorTmljY29sbyBkaSBCdW9uYWNjb3Jzbw0KK05pY2NvbMOyIGRpIFNlciBTb3p6byBUZWdsaWFjY2kNCitOaWNjb2zDsiBGaW9yZW50aW5vDQorTmljaG9sbHMsIEJ1cnINCitOaWNob2xscywgUmhvZGEgSG9sbWVzDQorTmljaG9scywgRGFsZQ0KK05pY2hvbHNvbiwgQmVuDQorTmljaG9sc29uLCBGcmFuY2lzDQorTmljaG9sc29uLCBNYWJlbA0KK05pY2hvbHNvbiwgU2lyIFdpbGxpYW0NCitOaWNob2xzb24sIFRob21hcyBIZW5yeQ0KK05pY2hvbHNvbiwgV2luaWZyZWQNCitOaWNrLCBHZW9yZ2UNCitOaWNrZWwsIEdyYWNlDQorTmljbGF1cyBvZiBIYWd1ZW5hdQ0KK05pY29kZW1vIGRhIEd1YXJkaWFncmVsZQ0KK05pY29sLCBFcnNraW5lDQorTmljb2xhIGRhIFVyYmlubw0KK05pY29sYSBkaSBNYWVzdHJvIEFudG9uaW8gZCdBbmNvbmENCitOaWNvbGF1cw0KK05pY29sbCwgTWFyaW9uDQorTmljb2zDsg0KK05pY29sbyBkYSBCb2xvZ25hDQorTmljb2xvIGRlIEJvbmlzDQorTmljb3NpYSwgTmljDQorTmllbHNlbiwgSmFpcw0KK05pZWxzZW4sIEtheQ0KK05pbHNzb24sIEdsYWR5cw0KK05pb2JpZCBQYWludGVyLCBUaGUNCitOaXRzY2gsIEhlcm1hbm4NCitOaXgsIERhcndpbg0KK05peG9uLCBKb2INCitOaXhvbiwgSm9obg0KK05vZGEsIFRldHN1eWENCitOb2VsLCBTY290dA0KK05vZ2FyaSwgR2l1c2VwcGUNCitOb2d1Y2hpLCBJc2FtdQ0KK05vbGFuLCBTaWRuZXkNCitOb2xhbmQsIENhZHkNCitOb2xhbmQsIEtlbm5ldGgNCitOb2xkZSwgRW1pbA0KK05vbGxla2VucywgSm9zZXBoDQorTm9uZWxsLCBJc2lkcm8NCitOb29tcywgUmVpbmllcg0KK05vb3JkdCwgSm9hbiB2YW4NCitOb3JkZmVsZHQsIEJyb3IgSnVsaXVzIE9sc3Nvbg0KK05vcmRtYW4sIE1hcmlhDQorTm9ydGgsIEYuRS4NCitOb3J0aGNvdGUsIEphbWVzDQorTm9zZXdvcnRoeSwgR2VvcmdlDQorTm91cnNlLCBFbGl6YWJldGgNCitOb3ZlbGxpLCBQaWV0cm8gQW50b25pbw0KK051bmV6IGRlIFZpbGxhdmljZW5jaW8sIFBlZHJvDQorTnVuZXogZGVsIFZhbGxlLCBQZWRybw0KK051w7FleiwgR3VpbGxlcm1vDQorTnV0dCwgSmltDQorTnV2YXF1aXJxLCBNb3Nlc2llDQorTnV2b2xvbmUsIENhcmxvIEZyYW5jZXNjbw0KK051eWVuLCBXaWpuYW5kDQorTnV6aSwgQWxsZWdyZXR0bw0KK09ha2xleSwgVmlvbGV0DQorw5NiaWRvcywgSm9zZWZhIGRlDQorTydCcmllbiwgSm9obg0KK08nQnJpZW4sIEx1Y2l1cyBSLg0KK09jYW1wbywgSXNpZG9ybw0KK09jaHNuZXIsIEVybmVzdA0KK09jaHRlcnZlbHQsIEphY29iDQorT2NodG1hbiwgRG9yb3RoeQ0KK09jaHRtYW4sIE1pbmEgRm9uZGENCitPJ0Nvbm5vciwgSmFtZXMgQXJ0aHVyDQorT2RqaWcsIERhcGhuZQ0KK09kb20sIFJhbmR5IEUuDQorT2Vsc2NoaWcsIEF1Z3VzdGENCitPZmZuZXIsIEVsbGlvdA0KK09nYXRhIEtvcmluDQorTydHb3JtYW4sIEp1YW4NCitPJ0hpZ2dpbnMsIFBhYmxvDQorT2hyLCBHZW9yZ2UgRS4NCitPaHRha2UsIFRvbWllDQorTydLZWVmZmUsIEdlb3JnaWENCitPbGRlbmJ1cmcsIENsYWVzDQorT2xkZXJtYW5uDQorT2xkZmllbGQsIE90aXMgVy4NCitPbGRzLCBFbGl6YWJldGgNCitPbGl2ZWlyYSwgTmF0aGFuDQorT2xpdmVyLCBJc2FhYw0KK09saXZlciwgTWFkZ2UNCitPbGl2ZXIsIFQuIENsYXJrDQorT2xpdmVyLCBXaWxsaWFtDQorT2xvd2Ugb2YgSXNlDQorT2x0b3MNCitPbWFoYSBQYWludGVyLCBUaGUNCitPbmRlcmRvbmssIFJvYmVydA0KK08nTmVpbGwsIEdlb3JnZSBCZXJuYXJkDQorT25vZnJpaiwgQ3Jlc2Nlbnppbw0KK09ub2ZyaW8sIEp1ZHkNCitPbm9zYXRvLCBUb3NoaW5vYnUNCitPb25hcmssIEplc3NpZQ0KK09vc3QgdGhlIEVsZGVyLCBKYWNvYiB2YW4NCitPb3N0c2FuZW4sIEphY29iIENvcm5lbGlzeiB2YW4NCitPcGFsa2EsIFJvbWFuDQorT3Bhem8gQmVybmFsZXMsIFJvZG9sZm8NCitPcGllLCBKb2huDQorT3BpZSwgSnVsaWFuDQorT3BpdHosIEdlb3JnIEVtYW51ZWwNCitPcHBlbmhlaW0sIERlbm5pcw0KK09wcGVuaGVpbSwgTWVyZXQNCitPcHBlbmhlaW0sIE1vcml0eiBEYW5pZWwNCitPcHBlbmhlaW1lciwgSi4NCitPcHN0YWwsIEdlcmFyZCB2YW4NCitPcmFtLCBXLg0KK09yYXppbyBEZSBGZXJyYXJpDQorT3JjYWduYSwgQW5kcmVhIGRpDQorT3JjaGFyZHNvbiwgU2lyIFdpbGxpYW0gUXVpbGxlcg0KK09ybGV5LCBCZXJuYWVydCB2YW4NCitPcmxvZmYsIEdyZWdvcnkNCitPcm96Y28gUm9tZXJvLCBDYXJsb3MNCitPcm96Y28sIEpvc8OpIENsZW1lbnRlDQorT3JwZW4sIFNpciBXaWxsaWFtDQorT3JyZW50ZSwgUGVkcm8NCitPcnNpLCBMZWxpbw0KK09yc28NCitPcnRpeiwgQW5nZWwNCitPcnRpeiwgRnJhbmNpc2NvIFByYWRpbGxhDQorT3J0bWFuLCBHZW9yZ2UNCitPcnRvbGFubyBGZXJyYXJlc2UNCitPcnR1emFyIFdvcnRoaW5ndG9uLCBDYXJsb3MNCitPcywgUGlldGVyIEdlcmFyZHVzIHZhbg0KK09zYWkNCitPc2JlcnQsIEFscGhvbnNlDQorT3Nib3JuLCBFbWlseSBNYXJ5DQorT3Nib3JuLCBXaWxsaWFtIEV2ZWx5bg0KK09zYm9ybmUsIE1hbGNvbG0NCitPc2Jvcm5lLCBNaWNoYWVsDQorT3Nib3JuZSwgV2FsdGVyIEZyZWRlcmljaw0KK09zZ29vZCwgQ2hhcmxlcw0KK09zaHVpdG9xLCBOaW5nZWV1Z2ENCitPc29yaW8sIFBlcMOzbg0KK09zc29yaW8sIEFsZm9uc28NCitPc3RhZGUsIEFkcmlhZW4gdmFuDQorT3N0YWRlLCBJc2FhY2sgdmFuDQorT3N0aGF1cywgRWRtdW5kIEhlbnJ5DQorT3N1aXRvaywgSXBlZWxlZQ0KK08nU3VsbGl2YW4sIFRpbW90aHkNCitPdGVpemEgRW1iaWwsIEpvcmdlIGRlDQorT3Rlcm8sIFBhdWwNCitPdHRlcnNvbiwgSm9lbA0KK090dGxleSwgV2lsbGlhbSBZb3VuZw0KK091YXR0YXJhDQorT3VkcnksIEplYW4tQmFwdGlzdGUNCitPdWl6aWxsZSwgQ2hhcmxlcw0KK091bGVzcywgV2FsdGVyIFdpbGxpYW0NCitPdWx0b24sIFRow6lyw6hzZQ0KK091cnNsZXIsIFRvbnkNCitPdXR0ZXJicmlkZ2UsIEpvaG4NCitPdmVucywgSsO8cmdlbg0KK092ZXJiZWNrLCBKb2hhbm4gRnJpZWRyaWNoDQorT3dlbiwgV2lsbGlhbQ0KK1BhYmxvIGRlIFNhbiBMZW9jYWRpbw0KK1BhY2VjY28gZGUgUm9zYQ0KK1BhY2hlciwgTWljaGFlbA0KK1BhY2lubyBkaSBCb25hZ3VpZGENCitQYWVsaW5jaywgSm9zZXBoDQorUGFnYW5pLCBHcmVnb3Jpbw0KK1BhZ2FuaW4sIEdpb3Zhbm5pDQorUGFnZSwgRWR3YXJkIEEuDQorUGFnZSwgV2lsbGlhbQ0KK1BhaSwgSm9obg0KK1BhaWssIE5hbSBKdW5lDQorUGFqb3UsIEF1Z3VzdGluDQorUGFsYWNpb3MsIEZyYW5jaXNjbyBkZQ0KK1BhbGFkaW5vLCBNaW1tbw0KK1BhbGF6dWVsbywgUGFibG8NCitQYWxlbmNpYSwgQmVuamFtw61uDQorUGFsaXNzeSwgQmVybmFyZA0KK1BhbGxhZGlvLCBBbmRyZWENCitQYWxtYSBHaW92YW5lDQorUGFsbWEgVmVjY2hpbw0KK1BhbG1lciwgQWxmcmVkIEhlcmJlcnQNCitQYWxtZXIsIEVyYXN0dXMgRG93DQorUGFsbWVyLCBGcmFuY2VzIEZsb3JhIEJvbmQNCitQYWxtZXIsIEhlcmJlcnQgUy4NCitQYWxtZXIsIFNhbXVlbA0KK1BhbG1lenphbm8sIE1hcmNvDQorUGFtcGhhaW9zDQorUGFuIFBhaW50ZXIsIFRoZQ0KK1BhbiBUaWFuc2hvdQ0KK1BhbiBZdWxpYW5nDQorUGFuYW1hcmVua28NCitQYW5jZXR0aSwgSm9zw6kNCitQYW5jaG8gVg0KK1BhbmcgVGFvDQorUGFuZyBYdW5xaW4NCitQYW5uaW5pLCBHaW92YW5uaSBQYW9sbw0KK1BhbnVuemksIEJlbml0bw0KK1Bhb2xpbmksIEdpdWxpbw0KK1Bhb2xvIGRpIEdpb3Zhbm5pIEZlaQ0KK1Bhb2xvIFJvbWFubw0KK1Bhb2xvIFZlbmV6aWFubw0KK1Bhb2xvenppLCBFZHVhcmRvDQorUGFwYWdlb3JnZSwgR2VvcmdpZQ0KK1BhcMOpdHksIERvbWluaXF1ZSBMb3Vpcw0KK1BhcmVuemFubywgQmVybmFyZGlubw0KK1BhcmlzLCBNYXR0aGV3DQorUGFyaXNoLCBEYXZpZA0KK1BhcmssIERhdmlkDQorUGFyaywgTGludG9uDQorUGFya2VyLCBCYXJyeQ0KK1BhcmtlciwgTGF3dG9uDQorUGFya2VyLCBXaWxsaWFtIEEuDQorUGFya3MsIEdvcmRvbg0KK1BhcmxlciwgUGV0ZXINCitQYXJtaWdpYW5pbm8NCitQYXJvZGksIEZpbGlwcG8NCitQYXJyDQorUGFyciwgTWlrZQ0KK1BhcnJpcywgRWRtdW5kIFRob21hcw0KK1BhcnJpc2gsIE1heGZpZWxkDQorUGFycm90dCwgV2lsbGlhbQ0KK1BhcnMsIFdpbGxpYW0NCitQYXJzb25zLCBBbGZyZWQNCitQYXJzb25zLCBDaGFybGVzDQorUGFyc29ucywgUGF1bA0KK1BhcnRyaWRnZSwgTmVoZW1pYWgNCitQYXJ0cmlkZ2UsIFJvaQ0KK1Bhc2NhbGksIFBpbm8NCitQYXNjaGtlLCBFZHdhcmQNCitQYXNjaW4sIEp1bGVzDQorUGFzaW5lbGxpLCBMb3JlbnpvDQorUGFzbW9yZSwgVmljdG9yDQorUGFzcXVpZXIsIFBpZXJyZQ0KK1Bhc3NlcmksIEdpdXNlcHBlDQorUGFzc2Vyb3R0aSwgQmFydG9sb21lbw0KK1BhdGFzLCBDaGFybGVzIEVtbWFudWVsDQorUGF0ZWwsIFBpZXJyZQ0KK1BhdGVyLCBKZWFuLUJhcHRpc3RlIEpvc2VwaA0KK1BhdGluaXIsIEpvYWNoaW0NCitQYXRvbiwgU2lyIEpvc2VwaCBOb2VsDQorUGF0cmljaywgSmFtZXMgTWNJbnRvc2gNCitQYXR0ZWluLCBDZXNhcg0KK1BhdHRlbiwgR2VvcmdlDQorUGF0dGVuLCBXaWxsaWFtDQorUGF1ZGlzcywgQ2hyaXN0b3BoZXINCitQYXVsLCBKb3NlcGgNCitQYXVsc2VuLCBCcmlhbg0KK1BheHNvbiwgRWRnYXIgUy4NCitQYXhzb24sIEV0aGVsDQorUGF4dG9uLCBXaWxsaWFtIE1jR3JlZ29yDQorUGF5ZXR0ZSwgSmFjcXVlcw0KK1BheW5lLCBFZGdhciBBbHdpbg0KK1BheW5lLCBFbHNpZQ0KK1BheW5lLCBIZW5yeSBBcnRodXINCitQYXluZSwgSm9uLCBDTUwNCitQYXluZSwgV2lsbGlhbQ0KK1BlYWtlLCBSb2JlcnQNCitQZWFsZSwgQW5uYSBDbGF5cG9vbGUNCitQZWFsZSwgQ2hhcmxlcyBXaWxsc29uDQorUGVhbGUsIEhhcnJpZXQgQ2FueQ0KK1BlYWxlLCBKYW1lcw0KK1BlYWxlLCBNYXJnYXJldHRhIEFuZ2VsaWNhDQorUGVhbGUsIE1hcnkNCitQZWFsZSwgUmFwaGFlbGxlDQorUGVhbGUsIFJlbWJyYW5kdA0KK1BlYWxlLCBSdWJlbnMNCitQZWFsZSwgU2FyYWggTWlyaWFtDQorUGVhbGUsIFRpdGlhbg0KK1BlYXJjZSwgQ2hhcmxlcyBTcHJhZ3VlDQorUGVhcmNlLCBFZHdhcmQNCitQZWFyY2UsIEdhcnkNCitQZWFybHN0ZWluLCBQaGlsaXANCitQZWFyc29uLCBCcnVjZQ0KK1BlYXJzb24sIE1hcmd1ZXJpdGUgU3R1YmVyDQorUGVhcnNvbiwgTWFyeSBNYXJ0aGENCitQZWNoc3RlaW4sIE1heA0KK1BlY2h0LCBBdWd1c3QgRnJpZWRyaWNoDQorUGVjaywgQXVndXN0dXMgSC4NCitQZWRybyBkZSBsYSBDdWFkcmENCitQZWRybyBkZSBNZW5hDQorUGVlZCwgTWljaGFlbA0KK1BlZWwsIFBhdWwNCitQZWV0ZXJzIEksIEJvbmF2ZW50dXJhDQorUGVldGVycywgQ2xhcmENCitQZWksIEkuTS4NCitQZWxoYW0sIFBldGVyDQorUGVsbGFuLCBBbGZyZWQNCitQZWxsZWdyaW4sIEhvbm9yw6kNCitQZWxsZWdyaW5pLCBEb21lbmljbw0KK1BlbGxlZ3JpbmksIEdpb3Zhbm5pIEFudG9uaW8NCitQZWxvdXNlLCBMw6lvbi1HZXJtYWluDQorUGVscywgTWFyc2hhDQorUGVtYmVydG9uLCBTb3BoaWUNCitQZcOxYSwgVG9uaXRhDQorUGVuY2ssIEEuUi4NCitQZW5jeiwgR2VvcmcNCitQw6huZSBkdSBCb2lzLCBHdXkNCitQZW5uLCBJcnZpbmcNCitQZW5uZWxsLCBKb3NlcGgNCitQZW5uaSwgR2lvdmFuIEZyYW5jZXNjbw0KK1Blbm5pbmd0b24sIEJ1ZA0KK1Blbm5pbmd0b24sIEhhcnBlcg0KK1Blbm9uZSwgR2l1c2VwcGUNCitQZW5yb3NlLCBTaXIgUm9sYW5kDQorUGVuc2lvbmFudGUgZGVsIFNhcmFjZW5pDQorUGVwaW9uLCBFcm5pZQ0KK1BlcHBlciwgQmV2ZXJseQ0KK1BlcmFjaW5vLCBMb3JlbnpvDQorUGVyY3ksIExhZHkgU3VzYW4gRWxpemFiZXRoDQorUGVyZWRhLCBBbnRvbmlvIGRlDQorUGVyZWh1ZG9mZiwgV2lsbGlhbQ0KK1BlcmVpcmEsIEkuIFJpY2UNCitQZXJlc3MsIEdpbGxlcw0KK1BlcmV6LCBBdWd1c3RvDQorUGVyaWdub24gSSwgQWxleGlzIE5pY29sYXMNCitQZXJpbm8gZGVsIFZhZ2ENCitQZXJsaW4sIFJhZQ0KK1Blcm1vc2VyLCBCYWx0aGFzYXINCitQZXJyYXVkLCBQaGlsaWJlcnQNCitQZXJyw6lhbCwgSmVhbg0KK1BlcnJpbiwgUGhpbGlwcGUNCitQZXJyb25uZWF1LCBKZWFuLUJhcHRpc3RlDQorUGVycnksIENsYXJhIEdyZWVubGVhZg0KK1BlcnJ5LCBMaWxsYSBDYWJvdA0KK1BlcnNpY28sIE1hcmlvDQorUGVydWdpbmksIENoYXJsZXMgRS4NCitQZXJ1Z2lubywgUGlldHJvDQorUGVzZWxsaW5vDQorUGVzbmUsIEFudG9pbmUNCitQZXRlbCwgSsO2cmcNCitQZXRlcmRpLCBHYWJvcg0KK1BldGVyc29uLCBKYWNvYg0KK1BldGVyc29uLCBKYW5lDQorUGV0ZXJzb24sIExhcnJ5DQorUGV0aGVyLCBBYnJhaGFtDQorUGV0aGljaywgSmVycnkNCitQZXRvLCBKb2huIEZyZWRlcmljaw0KK1BldHJhc2N1LCBHaGVvcmdoZQ0KK1BldHRlbmtvZmVuLCBBdWd1c3QgWGF2ZXIgS2FybA0KK1BldHRlciwgRnJhbnogWGF2ZXINCitQZXR0aWUsIEpvaG4NCitQZXR0aXQsIENhcm9sDQorUGV0dHJpY2gsIEZlcmRpbmFuZA0KK1BleXJvbiwgUGllcnJlDQorUGZhZmYsIEp1ZHkNCitQZmVpbGVyLCBNYXhpbWlsaWFuDQorUGZvcnIsIEZyYW56DQorUGhpYWxlIFBhaW50ZXINCitQaGlkaWFzDQorUGhpbGxpcCwgSm9obg0KK1BoaWxsaXBzLCBBbW1pDQorUGhpbGxpcHMsIEdvcmRvbg0KK1BoaWxsaXBzLCBMYXVyYQ0KK1BoaWxsaXBzLCBNYXJqb3JpZQ0KK1BoaWxsaXBzLCBQZXRlcg0KK1BoaWxsaXBzLCBSaWNoYXJkDQorUGhpbGxpcHMsIFRvbQ0KK1BoaWxsaXBzLCBXYWx0ZXIgSi4NCitQaGlscG90LCBHbHluDQorUGhyeW5vcyBQYWludGVyLCBUaGUNCitQaWF6ZXR0YSwgR2lvdmFubmkgQmF0aXN0YQ0KK1BpYXp6YSwgQ2FsbGlzdG8NCitQaWNhYmlhLCBGcmFuY2lzDQorUGljYXJ0LCBCZXJuYXJkDQorUGljYXNzbywgUGFibG8NCitQaWNrZW5veSwgTmljb2xhZXMgRWxpYXN6Lg0KK1BpY2tlcnNnaWxsLCBGcmVkZXJpY2sgUmljaGFyZA0KK1BpY2tlcnNnaWxsLCBIZW5yeSBIYWxsDQorUGlja2Vyc2dpbGwsIEhlbnJ5IFdpbGxpYW0NCitQaWVyaW5vIGRhIFZpbmNpDQorUGllcm8gZGVsbGEgRnJhbmNlc2NhDQorUGllcm8gZGkgQ29zaW1vDQorUGllcnJlLCBKZWFuLUJhcHRpc3RlIE1hcmllDQorUGlldCwgRmVybmFuZA0KK1BpZXRlcnN6IHRoZSBZb3VuZ2VyLCBQaWV0ZXINCitQaWV0cm8gZGEgQ29ydG9uYQ0KK1BpZXRybyBkYSBSaG8NCitQaWV0cm8gZGVnbGkgSW5nYW5uYXRpDQorUGlldHJvIGRpIEdpb3Zhbm5pIGQnQW1icm9naW8NCitQaWV0dGUsIEx1ZG92aWMNCitQaWdhbGxlLCBKZWFuLUJhcHRpc3RlDQorUGlnbm9uaSwgU2ltb25lDQorUGlrZSwgSm9obg0KK1BpbGxlbWVudCwgSmVhbiBCYXB0aXN0ZQ0KK1BpbG8sIENhcmwgR3VzdGFmDQorUGlsb24sIEdlcm1haW4NCitQaWxzLCBJc2lkb3JlDQorUGluYWlnaWVycywgSmVhbg0KK1BpbmRlbGwsIEhvd2FyZGVuYQ0KK1BpbmUsIFJvYmVydCBFZGdlDQorUGluZSwgVGhlb2RvcmUgRS4NCitQaW5lZGEsIEpvc2UNCitQaW5rbmV5LCBKZXJyeQ0KK1Bpbm5leSwgRXVuaWNlDQorUGludHVyaWNjaGlvDQorUGludHosIEpvaGFubiBHZW9yZw0KK1Bpb2xhLCBEb21lbmljbw0KK1BpcGVyLCBKb2huDQorUGlwZXIsIFJvc2UNCitQaXBwaW4sIEhvcmFjZQ0KK1BpcXRvdWt1biwgRGF2aWQgUnViZW4NCitQaXJhbmVzaSwgR2lvdmFubmkgQmF0dGlzdGENCitQaXNhbmVsbG8NCitQaXNhbmksIEdpYW5uaQ0KK1Bpc2FuaSwgVmV0dG9yDQorUGlzYW5vLCBBbmRyZWENCitQaXNhbm8sIEdpb3Zhbm5pDQorUGlzYW5vLCBOaWNvbGENCitQaXNhbm8sIE5pbm8NCitQaXNzYXJybywgQ2FtaWxsZQ0KK1Bpc3NhcnJvLCBMdWNpZW4NCitQaXN0b2xldHRvLCBNaWNoZWxhbmdlbG8NCitQaXRzaXVsYWssIExpcGENCitQaXR0bWFuLCBMYXJpDQorUGl0dG9uaSwgR2lvdmFubmkgQmF0dGlzdGENCitQaXphLCBBcnRodXIgTHVpeg0KK1BpenppbmF0bywgQXJtYW5kbw0KK1BsYWNlLCBGcmFuY2lzDQorUGxhbW9uZG9uLCBBbnRvaW5lDQorUGxhcywgUGlldGVyIHZhbiBkZXINCitQbGF0emVyLCBKb2hhbm4gR2VvcmcNCitQbGVpc3NuZXIsIE9nZGVuDQorUGxlcHAsIEpvc2VwaA0KK1BsZXlkZW53dXJmZiwgSGFucw0KK1BvY2NpLCBHcmFmIEZyYW56IFZvbg0KK1BvY29jaywgSXNhYWMNCitQb2NvY2ssIE5pY2hvbGFzDQorUG9lbCwgRWdiZXJ0IHZhbiBkZXINCitQb2VsZW5idXJnaCwgQ29ybmVsaXMgdmFuDQorUG9nZ2luaSwgRG9tZW5pY28NCitQb2ludCwgQXJtYW5kDQorUG9sYWNrLCBKYW4NCitQb2xlbm92LCBWYXNpbGl5DQorUG9saWFrb2ZmLCBTZXJnZQ0KK1BvbGlkb3JvIExhbnphbmkNCitQb2xrLCBDaGFybGVzIFBlYWxlDQorUG9sa2UsIFNpZ21hcg0KK1BvbGxhaW9sbywgQW50b25pbw0KK1BvbGxhaW9sbywgUGllcm8NCitQb2xsYXJkIExpbW5lciwgVGhlDQorUG9sbGFyZCwgSmFtZXMNCitQb2xsYXJkLCBSb2JlcnQNCitQb2xsb2NrLCBKYWNrc29uDQorUG9sbG9jaywgSm9obg0KK1BvbG9zLCBUaGVvZG9yZSBDLg0KK1BvbHlnbm90b3MNCitQb21tZXIsIEp1bGl1cyBKLg0KK1BvbW9kb3JvLCBHacOyDQorUG9uw6csIEpvYW4NCitQb25jZSBkZSBMZW9uIHkgQ2FiZWxsbywgQWxmb25zbw0KK1BvbnQsIENoYXJsZXMgRXJuZXN0DQorUG9udG9ybW8NCitQb29sZSwgQWJyYW0NCitQb29ucywgTGF3cmVuY2UNCitQb290b29nb29rLCBLYW5hbmdpbmFrDQorUG9wZSBKci4sIENhcmwgUm9iZXJ0DQorUG9wb3ZhLCBMaXVib3YNCitQb3BwaSwgSWwNCitQb3JjZWxsaXMsIEphbg0KK1BvcmRlbm9uZSwgSWwNCitQb3J0YSwgR2lhY29tbyBkZWxsYQ0KK1BvcnRhLCBHaXVzZXBwZQ0KK1BvcnRhLCBHdWdsaWVsbW8gZGVsbGENCitQb3J0YWlsLCBKYWNxdWVzIEFuZHLDqQ0KK1BvcnRlciwgQnJpYW4NCitQb3J0ZXIsIENoYXJsZXMNCitQb3J0ZXIsIEZhaXJmaWVsZA0KK1BvcnRlciwgU2lyIFJvYmVydCBLZXINCitQb3J0aW5hcmksIENhbmRpZG8NCitQb3NhZGEsIEpvc8OpIEd1YWRhbHVwZQ0KK1Bvc3QsIEZyYW5zDQorUG90LCBIZW5kcmljayBHZXJyaXRzei4NCitQb3RyZSwgTGUNCitQb3R0ZXIsIEJlYXRyaXgNCitQb3R0ZXIsIENhcnRlcg0KK1BvdHRlciwgRnJhbmsgSHVkZGxlc3RvbmUNCitQb3R0ZXIsIE1hcnkNCitQb3R0ZXIsIE1pa2UNCitQb3R0ZXIsIFBhdWx1cw0KK1BvdHRoYXN0LCBFZHdhcmQgSGVucnkNCitQb3VnbnksIEplYW4NCitQb3VyYnVzIHRoZSBFbGRlciwgRnJhbnMNCitQb3VyYnVzIHRoZSBZb3VuZ2VyLCBGcmFucw0KK1BvdXJidXMsIFBpZXRlcg0KK1BvdXNldHRlLURhcnQsIFJpY2hhcmQNCitQb3Vzc2luLCBOaWNvbGFzDQorUG93ZWxsLCBKb3NlcGgNCitQb3dlcnMsIEFzYWhlbA0KK1Bvd2VycywgSGlyYW0NCitQb3dlcnMsIE1hcmlvbg0KK1BveWV0LCBKZWFuDQorUG95bnRlciwgU2lyIEVkd2FyZA0KK1BvenphdHRpLCBSdWR5DQorUG96emksIEx1Y2lvDQorUG96em8sIEFuZHJlYQ0KK1ByYWRpZXIsIEphbWVzDQorUHJhZG8sIE1hcmluYSBOdcOxZXogZGVsDQorUHJhbXBvbGluaSwgRW5yaWNvDQorUHJhbmdob2ZlciwgRnJhbmsNCitQcmF0dCwgQmVsYSBMeW9uDQorUHJhdHQsIENocmlzdG9waGVyDQorUHJhdHQsIEZyYW5jZXMNCitQcmF0dCwgTWFyeQ0KK1ByYXR0LCBNYXR0aGV3DQorUHJheGl0ZWxlcw0KK1ByZWRhdG9yDQorUHJlZGlzLCBBbWJyb2dpbyBkZQ0KK1ByZW5kZXJnYXN0LCBDaGFybGVzDQorUHJlbmRlcmdhc3QsIE1hdXJpY2UNCitQcmVudGljZSwgTGV2aSBXZWxscw0KK1ByZXN0b24sIEplc3NpZSBHb29kd2luDQorUHJlc3RvbiwgTWFyZ2FyZXQNCitQcmVzdG9waW5vLCBHcmVnb3Jpbw0KK1ByZXRpLCBNYXR0aWENCitQcmljZSwgSXJlbmUNCitQcmlldXIsIEJhcnRow6lsw6lteQ0KK1ByaWtrZXIsIEpvaGFuIFRob3JuDQorUHJpbWF0aWNjaW8sIEZyYW5jZXNjbw0KK1ByaW5jZSwgUmljaGFyZA0KK1ByaW5nbGUsIEouDQorUHJpbmdsZSwgSm9obiBRdWludG9uDQorUHJpbnNlcCwgVmFsZW50aW5lIENhbWVyb24NCitQcmluc2VwLCBXaWxsaWFtDQorUHJpbnR6LCBIYW5rDQorUHJpb3IsIFNjb3R0DQorUHJpb3IsIFdpbGxpYW0gTWF0dGhldw0KK1Byb2NhY2NpbmkgSWwgR2lvdmFuZSwgRXJjb2xlDQorUHJvY2FjY2luaSwgR2l1bGlvIENlc2FyZQ0KK1Byb2N0ZXIsIERvZA0KK1Byb2N0b3IsIEFsZXhhbmRlciBQaGltaXN0ZXINCitQcm9wZXJ6aWEgZGUgUm9zc2kNCitQcm91dCwgU2FtdWVsDQorUHJvdm9zdCwgSmFuDQorUHJ1ZCdob24sIFBpZXJyZS1QYXVsDQorUHJ1bmEsIFBlZHJvDQorUHJ1c3prb3dza2ksIFdpdG9sZA0KK1B1Y2NpbyBkaSBTaW1vbmUNCitQdWNlbGxlLCBKZWFuDQorUHVkbGF0LCBQdWRsbw0KK1B1ZWxtYSwgSGVybsOhbg0KK1B1ZWx6LCBTdXNhbg0KK1B1Z2EsIEFudG9uaW8NCitQdWdldCwgUGllcnJlDQorUHVsaWdvLCBEb21lbmljbw0KK1B1cnllYXIsIE1hcnRpbg0KK1B1c2V5LCBKb2huDQorUHVzaG1hbiwgSG92c2VwDQorUHV0aHVmZiwgSGFuc29uIEQuDQorUHV0bmFtLCBKYW5lDQorUHV2aXMgZGUgQ2hhdmFubmVzLCBQaWVycmUNCitQdXksIEplYW4NCitQeWxlLCBBYXJvbg0KK1B5bGUsIEhvd2FyZA0KK1B5bmFja2VyLCBBZGFtDQorUHluYXMsIEphY29iDQorUHluYXMsIEphbg0KK1B5bmUsIFdpbGxpYW0gSGVucnkNCitQeXRob24NCitRaSBCYWlzaGkNCitRaWFuIEp1bnRhbw0KK1FpYW4gU29uZ3lhbg0KK1FpYW4gWHVhbg0KK1FpYW5sb25nLCBFbXBlcm9yDQorUWlwZWksIEdhbw0KK1FpdSBUaQ0KK1F1IERpbmcNCitRdWFkYWwsIE1hcnRpbiBGZXJkaW5hbmQNCitRdWFuIFNoYW5zaGkNCitRdWFyZW5naGksIEdpYWNvbW8NCitRdWFydG9uLCBFbmd1ZXJyYW5kDQorUXVhc3QsIFBpZXRlciBKYW5zeg0KK1F1ZWxsaW51cywgRXJhc211cw0KK1F1ZXJjaWEsIEphY29wbyBkZWxsYQ0KK1F1ZXNuZWwsIEZyYW7Dp29pcw0KK1F1aWRvciwgSm9obg0KK1F1aW5uLCBNYXJjDQorUXVpbm4sIFRob21hcw0KK1F1aW5udWF5dWFrLCBMdWN5DQorUmFhZGFsLCBFcmlrDQorUmFib3ksIE1hYw0KK1JhY2toYW0sIEFydGh1cg0KK1JhZSwgRmlvbmENCitSYWVidXJuLCBTaXIgSGVucnkNCitSYWV0eiwgTWFya3VzDQorUmFmZmFlbCwgSm9zZXBoDQorUmFmZmHDq2xsaSwgSmVhbi1GcmFuw6dvaXMNCitSYWZmZXQsIERlbmlzIEF1Z3VzdGUgTWFyaWUNCitSw6Fmb2xzIENhc2FtYWRhLCBBbGJlcnQNCitSYWdhbHppLCBTZXJnaW8NCitSYWdnaSwgQW50b25pbw0KK1JhaW1vbmRpLCBNYXJjYW50b25pbw0KK1JhaW4sIENoYXJsZXMNCitSYWluZXIsIEFybnVsZg0KK1JhbGVpZ2gsIENoYXJsZXMgUy4NCitSYWxwaCwgQmVuamFtaW4NCitSYWxzdG9uLCBKb2huDQorUmFtYmFsZGksIENhcmxvIEFudG9uaW8NCitSYW1lbmdoaSwgR2lvdmFuIEJhdHRpc3RhDQorUmFtw61yZXogZGUgQXJlbGxhbm8sIENocmlzdMOzYmFsDQorUmFtb3MgTWFydMOtbmV6LCBBbGZyZWRvDQorUmFtb3MsIE1lbA0KK1JhbXNheSwgQWxsYW4NCitSYW1zYXksIEh1Z2gNCitSYW11bm5vLCBUb255DQorUmFuZGFsbCwgQS5NLg0KK1JhbmRhbGwtUGFnZSwgUGV0ZXINCitSYW5kb2xwaCwgTHlubiBNLg0KK1JhbmdlbCwgUmljYXJkbw0KK1JhbmdlciwgSGVucnkgV2FyZA0KK1JhbmtpbiwgSmVycnkNCitSYW5uZXksIFdpbGxpYW0gVHlsZWUNCitSYW5zb24sIFBhdWwNCitSYW91eCwgSmVhbg0KK1JhcGhhZWwNCitSYXBoYWVsIE1hZmFpLCBBbnRvbmlldHRhDQorUmFwaGFlbCwgSm9zZXBoDQorUmFwaGFlbCwgTWFyeSBGLg0KK1Jhc2NoZW4sIEhlbnJ5DQorUmF0Z2ViLCBKw7ZyZw0KK1JhdGhzYWNrLCBTdGVybGluZw0KK1JhdHRuZXIsIEFicmFoYW0NCitSYXUsIFdpbGxpYW0gSGVybWFuDQorUmF1c2NoZW5iZXJnLCBSb2JlcnQNCitSYXZlZWwsIFJvZ2VyDQorUmF2ZW4sIEpvaG4gU2FtdWVsDQorUmF2aWxpb3VzLCBFcmljDQorUmF5LCBDaGFybGVzDQorUmVhZCwgRGF2aWQgQ2hhcmxlcw0KK1JlYWQsIEphbWVzIEIuDQorUmVhZCwgVGhvbWFzIEJ1Y2hhbmFuDQorUmVhbSwgQ2FyZHVjaXVzIFAuDQorUmVhcmRvbiwgVGltDQorUmVhdWdoLCBDaGFybGVzIEZyYW5rbGluDQorUmViZWNjYSwgQmlhZ2lvDQorUmViaWxsw6ksIE5pY29sYXMNCitSZWNjbywgR2l1c2VwcGUNCitSZWQgU3RhciwgS2V2aW4NCitSZWRmaWVsZCwgRWR3YXJkIFdpbGxpcw0KK1JlZGdyYXZlLCBSaWNoYXJkDQorUmVkbW9uZCwgR3JhbnZpbGxlDQorUmVkb24sIE9kaWxvbg0KK1JlZG91dMOpLCBQaWVycmUgSm9zZXBoDQorUmVkcGF0aA0KK1JlZWIsIERhdmlkDQorUmVlZCwgRGF2aWQNCitSZWVkLCBSb2JlcnQNCitSZWVzLCBNaWNoYWVsDQorUmVmcmVnaWVyLCBBbnRvbg0KK1JlZ2lzdGVyLCBKb2huDQorUmVnbmF1bHQsIEJhcm9uIEplYW4gQmFwdGlzdGUNCitSZWduYXVsdCwgSGVucmkNCitSZWduaWVyLCBOaWNvbGFzDQorUmVnbywgUGF1bGENCitSZWdveW9zLCBEYXLDrW8gZGUNCitSZWljaGVsLCBIYW5zDQorUmVpY2hsaWNoLCBNYXJ4DQorUmVpZCwgQmlsbA0KK1JlaWQsIEdlb3JnZSBBLg0KK1JlaWQsIEphbmV0DQorUmVpZCwgSm9obiBSb2JlcnRzb24NCitSZWlkLCBSb2JlcnQNCitSZWlmZmVsLCBDaGFybGVzDQorUmVpbmFnbGUsIFBoaWxpcA0KK1JlaW5hZ2xlLCBSYW1zYXkgUmljaGFyZA0KK1JlaW5kZWwsIFdpbGxpYW0gR2VvcmdlDQorUmVpbmRlcnMsIEppbQ0KK1JlaW5oYXJkdCwgQWQNCitSZWlzbWFuLCBQaGlsaXANCitSZWpsYW5kZXIsIE9zY2FyIEd1c3RhdmUNCitSZW1icmFuZHQgdmFuIFJpam4NCitSZW1pbmd0b24sIEZyZWRlcmljDQorUmVuIFhpb25nDQorUmVuIFh1bg0KK1JlbiBZaQ0KK1JlbmksIEd1aWRvDQorUmVuaWVyaSwgTmljY29sbw0KK1Jlbm9pciwgUGllcnJlLUF1Z3VzdGUNCitSZW5vdWYsIEVkZGENCitSZXBpbiwgSWxpeWENCitSZXNsZXIsIEdlb3JnZSBFYXJsDQorUmVzbWFubiwgRnJhbmNlc2NvDQorUmVzdG91dCwgSmVhbg0KK1JldGhlbCwgQWxmcmVkDQorUmV0aGVsLCBQb25jZSBKYWNxdWlvdA0KK1LDqXRpLCBJc3R2w6FuDQorUmV2ZXJlLCBQYXVsDQorUsOpdm9pbCwgUGllcnJlLUhlbnJpDQorUmV5bWVyc3dhZWxlLCBNYXJpbnVzIHZhbg0KK1JleW1vbmQsIFBpZXJyZQ0KK1JleW5hcmQsIEdyYW50DQorUmV5bm9sZHMgSnIuLCBTYW11ZWwgV2lsbGlhbQ0KK1JleW5vbGRzLCBBbGFuDQorUmV5bm9sZHMsIFNpciBKb3NodWENCitSZXlzc2Nob290LCBQZXRlciBKb2huIFZhbg0KK1JoZWFkLCBMb3VpcyBKb2huDQorUmhlYW0sIEhlbnJ5IE1heW5lbGwNCitSaWJhbHRhLCBGcmFuY2lzY28NCitSaWJhbHRhLCBKb3JnZQ0KK1JpYmVyYSwgSnVzZXBlIGRlDQorUmlibGUsIERhdmUNCitSaWJvdCwgQXVndXN0aW4gVGjDqW9kdWxlDQorUmljYXJkLCBMb3Vpcy1HdXN0YXZlDQorUmljY2ksIE1hcmNvDQorUmljY2ksIFNlYmFzdGlhbm8NCitSaWNjaW8sIElsDQorUmljaCwgQWxmcmVkIFdpbGxpYW0NCitSaWNoYXJkcywgRnJhbmNlcw0KK1JpY2hhcmRzLCBKb2huIEluaWdvDQorUmljaGFyZHMsIFdpbGxpYW0gVHJvc3QNCitSaWNoYXJkc29uIEksIEpvbmF0aGFuDQorUmljaGFyZHNvbiBKci4sIFRob21hcyBNaWxlcw0KK1JpY2hhcmRzb24sIFNhbQ0KK1JpY2hhcmRzb24sIFN0ZXZlbg0KK1JpY2hhcmRzb24sIFdpbGxpYW0NCitSaWNoaWVyLCBHZXJtYWluZQ0KK1JpY2htb25kLCBBZ25lcyBNaWxsZW4NCitSaWNobW9uZCwgR2VvcmdlDQorUmljaG1vbmQsIFNpciBXaWxsaWFtIEJsYWtlDQorUmljaHRlciwgR2VyaGFyZA0KK1JpY2h0ZXIsIEdpb3Zhbm5pDQorUmlja2V5LCBHZW9yZ2UNCitSaWNvLCBEYW4NCitSaWRlciwgQXJ0aHVyIEdyb3Zlcg0KK1JpZGd3YXksIFBldGVyDQorUmllY2hhcmR0LCBSaWNoYXJkDQorUmllZGVsbCwgRG9uDQorUmllbWVuc2NobmVpZGVyLCBUaWxtYW4NCitSaWV6aW8sIE1hcnRpbm8NCitSaWdhdWQsIEh5YWNpbnRoZQ0KK1JpZ2F1ZCwgSm9obiBGcmFuY2lzDQorUmlnYnksIEVsaXphYmV0aA0KK1JpZ2dzLCBSb2JlcnQNCitSaWdoZXR0aSwgRnJhbmNlc2NvDQorUmlpcywgSmFjb2INCitSaWxleSwgQnJpZGdldA0KK1JpbGV5LCBKb2huDQorUmltbWVyLCBXaWxsaWFtDQorUmluZGlzYmFjaGVyLCBQZXRlcg0KK1JpbmVoYXJ0LCBGcmFuaw0KK1JpbmVoYXJ0LCBXaWxsaWFtIEhlbnJ5DQorUmluZywgTC5BLg0KK1JpbmcsIFBpZXRlciBkZQ0KK1Jpbmdnb2xkLCBGYWl0aA0KK1Jpbnp5LCBKb2huIEhlbnJ5IGRlDQorUmlvcGVsbGUsIEplYW4gUGF1bA0KK1Jpb3MsIE1pZ3VlbCBBbmdlbA0KK1JpcGxleSwgQWlkZW4gTGFzc2VsbA0KK1JpcHBvbiwgVG9tDQorUmlzdCwgUGlwaWxvdHRpDQorUml0Y2hpZSwgV2lsbGlhbSBCLg0KK1JpdG1hbiwgTG91aXMNCitSaXRzY2hlbCwgV2lsbGlhbQ0KK1JpdHRlcm1hbm4sIFBoaWxpcCBTY2hvbHoNCitSaXR0cywgSGVyYg0KK1JpdHpvcywgQW5kcmVhcw0KK1JpdmFseiwgQW50b2luZQ0KK1JpdmUsIFJvYmVydG8NCitSaXZlcmEgSGVybmFuZGV6LCBNYW51ZWwNCitSaXZlcmEsIERpZWdvDQorUml2ZXJzLCBMYXJyeQ0KK1JpdmnDqHJlLCBCcml0b24NCitSaXhlbnMsIEplYW4gQW5kcsOpDQorUml6em8sIEFudG9uaW8NCitSb2JiaWEsIEFuZHJlYSBkZWxsYQ0KK1JvYmJpYSwgR2lvdmFubmkgZGVsbGENCitSb2JiaWEsIEdpcm9sYW1vIGRlbGxhDQorUm9iYmlhLCBMdWNhIGRlbGxhDQorUm9iYmlucywgRGF2aWQNCitSb2JiaW5zLCBFbGxlbg0KK1JvYmVydCwgSHViZXJ0DQorUm9iZXJ0LCBKb2huDQorUm9iZXJ0LCBMb3Vpcy1Mw6lvcG9sZA0KK1JvYmVydC1GbGV1cnksIEpvc2VwaC1OaWNvbGFzDQorUm9iZXJ0bw0KK1JvYmVydHMsIERhdmlkDQorUm9iZXJ0cywgR29vZHJpZGdlDQorUm9iZXJ0cywgVG9tDQorUm9iZXJ0cywgV2lsbGlhbQ0KK1JvYmVydHNvbiwgQXJjaGliYWxkDQorUm9iZXJ0c29uLCBDaHJpc3RpbmENCitSb2JlcnRzb24sIFNhcmFoDQorUm9iZXR0YSwgQ3Jpc3RvZmFubw0KK1JvYmluZWF1LCBBZGVsYWlkZQ0KK1JvYmlucywgV2lsbGlhbSBQYWxtZXINCitSb2JpbnNvbiwgQW5uDQorUm9iaW5zb24sIENoYXJsZXMNCitSb2JpbnNvbiwgRi4gQ2F5bGV5DQorUm9iaW5zb24sIEouQy4NCitSb2JpbnNvbiwgTGVvbmFyZA0KK1JvYmluc29uLCBUaGVvZG9yZQ0KK1JvYmluc29uLCBXaWxsaWFtDQorUm9ic29uLCBHZW9yZ2UgRmVubmVsDQorUm9idXN0aSwgRG9tZW5pY28NCitSb2NjYXRhZ2xpYXRhLCBOaWNjb2zDsg0KK1JvY2hlLCBQaWVycmUNCitSb2NoZS1SYWJlbGwsIEFybmFsZG8NCitSb2NodXNzZW4sIENoYXJsZXMNCitSb2NrZW5zY2hhdWIsIEdlcndhbGQNCitSb2Nrd2VsbCwgTm9ybWFuDQorUm9kY2hlbmtvLCBBbGV4YW5kZXINCitSb2RpbiwgQXVndXN0ZQ0KK1JvZHLDrWd1ZXogTG96YW5vLCBNYW51ZWwNCitSb2VibGluZywgSm9obg0KK1JvZWJsaW5nLCBXYXNoaW5ndG9uDQorUm9lbG9mcywgV2lsbGVtDQorUm9lbnRnZW4sIEFicmFoYW0NCitSb2VudGdlbiwgRGF2aWQNCitSb2VyaWNoLCBOaWNob2xhcw0KK1JvZXNlbiwgU2V2ZXJpbg0KK1JvZ2VycywgSm9obg0KK1JvZ2htYW4sIFJvZWxhbnQNCitSb2hsZnMsIENocmlzdGlhbg0KK1Jva290b3YsIEZlZG9yDQorUm9sYW5kLCBQaGlsaXBwZS1MYXVyZW50DQorUm9sZMOhbiwgTHVpc2ENCitSb2xsaW5zLCBUaW0NCitSb21ha28sIEFudG9uDQorUm9tw6FuIFJvamFzLCBTYW11ZWwNCitSb21hbmVsbGksIFJvbWFubw0KK1JvbWFuaW5vLCBHaXJvbGFtbw0KK1JvbWFubywgR2lhbiBDcmlzdG9mb3JvDQorUm9tYm91dHMsIEdpbGxpcw0KK1JvbWJvdXRzLCBTYWxvbW9uDQorUm9tYm91dHMsIFRow6lvZG9yZQ0KK1JvbW5leSwgR2VvcmdlDQorUm9uZGVsLCBGcmVkZXJpY2sNCitSb28sIFJvZWxvZiBkZQ0KK1Jvb2tlciwgTWljaGFlbCBBbmdlbG8NCitSb29zLCBKb2hhbiBIZWlucmljaA0KK1Jvb3MsIEpvc2VwaA0KK1Jvb3MsIFBoaWxpcHAgUGV0ZXINCitSb3BlciwgUmljaGFyZA0KK1JvcGVzIEpyLiwgR2VvcmdlDQorUm9wcywgRsOpbGljaWVuDQorUm9xdWVwbGFuLCBDYW1pbGxlDQorUm9xdWVzLCBKb3NlcGgNCitSb3NhLCBFcmNvbGUNCitSb3NhLCBTYWx2YXRvcg0KK1Jvc2FpLCBPdHRvbmUNCitSb3NhbGVzLCBFZHVhcmRvDQorUm9zYXMsIFJ1YsOpbg0KK1Jvc2F0aSwgSmFtZXMNCitSb3NlLCBHdXkNCitSb3NlLCBLbnV0DQorUm9zZW5iZXJnLCBIZW5yeSBNLg0KK1Jvc2VuYmVyZywgSXNhYWMNCitSb3NlbmJlcmcsIExvdWlzIENvbnJhZA0KK1Jvc2VuYmx1bSwgUmljaGFyZA0KK1Jvc2VucXVpc3QsIEphbWVzDQorUm9zZW50aGFsLCBBbm4gVGV2eQ0KK1Jvc2VudGhhbCwgRG9yaXMNCitSb3NlbnRoYWwsIFRvbnkNCitSb3NodSwgRnVrYWUNCitSb3NsaW4sIEFsZXhhbmRlcg0KK1Jvc2xpbiwgTGUgQ2hldmFsaWVyDQorUm9zbGluLCBUJ29yb3MNCitSb3NzLCBTaXIgV2lsbGlhbSBDaGFybGVzDQorUm9zc2JhY2gsIEVkd2FyZA0KK1Jvc3NlbGxpLCBDb3NpbW8NCitSb3NzZWxsaSwgTWF0dGVvDQorUm9zc2VsbGlubywgQW50b25pbw0KK1Jvc3NlbGxpbm8sIEJlcm5hcmRvDQorUm9zc2V0dGksIERhbnRlIEdhYnJpZWwNCitSb3NzaXRlciwgVGhvbWFzIFByaWNoYXJkDQorUm9zc28gRmlvcmVudGlubw0KK1Jvc3NvLCBNZWRhcmRvDQorUm9zc28sIE1pbm8NCitSb3N6YWssIFRoZW9kb3JlDQorUm90YXJpLCBQaWV0cm8NCitSb3RlbGxhLCBNaW1tbw0KK1JvdGgsIEVybmVzdCBEYXZpZA0KK1JvdGhlbmJlcmcsIFN1c2FuDQorUm90aGVuc3RlaW4sIE1pY2hhZWwNCitSb3RoZW5zdGVpbiwgU2lyIFdpbGxpYW0NCitSb3RoZXJtZWwsIFBldGVyIEZyZWRlcmljaw0KK1JvdGhrbywgTWFyaw0KK1JvdGhzY2hpbGQsIEdhaWwNCitSb3Roc3RlaW4sIEFydGh1cg0KK1JvdHRlbmhhbW1lciwgSGFucw0KK1JvdWF1bHQsIEdlb3JnZXMNCitSb3ViaWxpYWMsIExvdWlzLUZyYW7Dp29pcw0KK1JvdWdldCwgR2Vvcmdlcw0KK1JvdXNzZWF1LCBIZW5yaQ0KK1JvdXNzZWF1LCBUaMOpb2RvcmUNCitSb3Vzc2VsLCBLZXIgWGF2aWVyDQorUm91c3NlbCwgVGjDqW9kb3JlDQorUm91c3NlbGV0LCBHaWxsZXMNCitSb3V4LCBBbmdlLUpvc2VwaCBBbnRvaW5lDQorUm91eCwgRnJhbsOnb2lzIEdlb2Zmcm9pDQorUm91eCwgRnJhbsOnb2lzIEpvc2VwaCBGcsOpZMOpcmljDQorUm91eCwgSm9zZXBoDQorUm91eCwgTG91aXMNCitSb3V4LCBNYXRoaWV1IEFudG9pbmUNCitSb3V4LUNoYW1waW9uLCBKb3NlcGggVmljdG9yDQorUm93YW4sIFBhdHJpY2sNCitSb3dlLCBTYW5kcmENCitSb3dsYW5kc29uLCBUaG9tYXMNCitSb3dsZXksIFJldWJlbg0KK1JveWVuLCBXaWxsZW0gRnJlZGVyaWsgdmFuDQorUnJhcCwgSnVsaWUNCitSdWJlbnMsIFBldGVyIFBhdWwNCitSdWJpbiwgUmV1dmVuDQorUnVibGV2LCBBbmRyZWkNCitSdWRlLCBGcmFuw6dvaXMNCitSdWRlLCBPbGFmDQorUnVlbGFzLCBKdWxpbw0KK1J1ZmYsIFRob21hcw0KK1J1Z2VuZGFzIEksIEdlb3JnIFBoaWxpcHANCitSdWdlbmRhcywgSnVhbiBNYXVyaWNpbw0KK1J1aXNkYWVsLCBKYWNvYiB2YW4NCitSdWl6LCBBbnRvbmlvIE0uDQorUnVsZm8sIEp1YW4NCitSdW1tZWwsIEpheQ0KK1J1bW5leSwgUmFscGgNCitSdW5naXVzLCBDYXJsIENsZW1lbnMgTW9yaXR6DQorUnVwZXJ0LCBQcmluY2UNCitSdXNjaGEsIEVkDQorUnVzY29uaSwgQ2FtaWxsbw0KK1J1c2VsbCwgRWR3YXJkIEouDQorUnVzaCwgT2xpdmUNCitSdXNoLCBXaWxsaWFtDQorUnVzaGJ1cnksIEhlbnJ5DQorUnVza2luLCBKb2huDQorUnVzc2VsbCwgQW5kcmV3DQorUnVzc2VsbCwgQ2hhcmxlcyBNLg0KK1J1c3NlbGwsIEpvaG4NCitSdXNzZWxsLCBNb3JnYW4NCitSdXNzbywgQWxleGFuZGVyDQorUnVzdGljaSwgR2lvdmFubmkgRnJhbmNlc2NvDQorUnV0ZWxsaSwgTWFyaW8NCitSdXRoYXJ0LCBDYXJsIEJvcnJvbcOkdXMgQW5kcmVhcw0KK1J1eXNjaCwgUmFjaGVsDQorUnV5c2RhZWwsIFNhbG9tb24gdmFuDQorUnlhbiwgQW5uZQ0KK1J5Y2tlcmUsIEJlcm5oYXJ0IGRlDQorUnljcm9mdCBQYWludGVyLCBUaGUNCitSeWRlciwgQWxiZXJ0IFBpbmtoYW0NCitSeWRpbmdzdmFyZCwgVXJzdWxhIHZvbg0KK1J5ZHpld3NraSwgV2lsbGlhbSANCitSeW1hbiwgUm9iZXJ0DQorU2FhciwgQWxpc29uDQorU2FhciwgQmV0eWUNCitTYWFyLCBMZXpsZXkNCitTYWFyaW5lbiwgRWVybw0KK1NhY2NoZXR0aSwgTG9yZW56bw0KK1NhY2NoaSwgQW5kcmVhDQorU2FjaHMsIExhbWJlcnQNCitTYWRlbGVyIEksIEphbg0KK1NhZGVsZXIgSUksIEFlZ2lkaXVzDQorU2FkbGVyLCBXYWx0ZXIgRGVuZHkNCitTYWVucmVkYW0sIEphbg0KK1NhZW5yZWRhbSwgUGlldGVyIEphbnN6Lg0KK1NhZnJhbiwgQmVybmFyZA0KK1NhZnRsZXZlbiB0aGUgWW91bmdlciwgSGVybWFuDQorU2FmdGxldmVuLCBDb3JuZWxpcw0KK1NhZ2UsIEtheQ0KK1NhZ2VyLCBQZXRlciBXaW5jaGVsbA0KK1NhaWQgQWJkdWxsYWggb2YgdGhlIE1heWFjDQorU2FpbGEsIFBhdXRhDQorU2FpbG1ha2VyLCBJc2FhYw0KK1NhaW50IENlY2lsaWEgTWFzdGVyDQorU2FpbnQtQW5kcmUsIFNpbW9uIFJlbmFyZCBkZQ0KK1NhaW50LUF1YmluLCBBdWd1c3RpbiBkZQ0KK1NhaW50LUF1YmluLCBDaGFybGVzIEdlcm1haW4gZGUNCitTYWludC1BdWJpbiwgR2FicmllbCBKYWNxdWVzIGRlDQorU2FpbnQtR2F1ZGVucywgQXVndXN0dXMNCitTYWludC1KZWFuLCBTaW1vbg0KK1NhaW50LU3DqW1pbiwgQ2hhcmxlcy1CYWx0aGF6YXItSnVsaWVuIEbDqXZyZXQgZGUNCitTYWludC1QaGFsbGUsIE5pa2kgZGUNCitTYWl0bywgS2l5b3NoaQ0KK1NhaXRvd2l0eiwgU3RhbmxleQ0KK1Nha2FpIEhvaWNoaQ0KK1Nha2FpIEhvaXRzdQ0KK1NhbGEsIEdlb3JnZSBBdWd1c3R1cyBIZW5yeQ0KK1NhbGF0aMOpLCBGcmllZHJpY2gNCitTYWxsZSwgRGF2aWQNCitTYWxsZWUsIENoYXJsZXMNCitTYWxtb24sIFJvYmVydA0KK1NhbHQsIEpvaG4NCitTYWx0ZXIsIFdpbGxpYW0NCitTYWx2YWRvcmksIFJlbW8NCitTYWx2aSwgTmljb2xhDQorU2FsdmlhdGksIEZyYW5jZXNjbw0KK1NhbHksIEphY3F1ZXMtRnJhbsOnb2lzLUpvc2VwaA0KK1NhbWFjY2hpbmksIE9yYXppbw0KK1NhbWFyYXMsIEx1Y2FzDQorU2FtcGxlLCBQYXVsIFN0YXJyZXR0DQorU8OhbmNoZXogQ29lbGxvLCBBbG9uc28NCitTw6FuY2hleiBDb3TDoW4sIEp1YW4NCitTw6FuY2hleiBQZXJleiwgQWxiZXJ0bw0KK1NhbmNoZXosIEFiZWwNCitTYW5jaGV6LCBQZWRybw0KK1NhbmRieSwgUGF1bA0KK1NhbmRieSwgVGhvbWFzDQorU2FuZGVyLCBBdWd1c3QNCitTYW5kZXJzLCBBbm4NCitTYW5kbGVyLCBCYXJiYXJhDQorU2FuZHJhcnQsIEpvYWNoaW0gdm9uDQorU2FuZHlzLCBFbW1hDQorU2FuZHlzLCBGcmVkZXJpY2sNCitTYW5nYWxsbywgRnJhbmNlc2NvIGRhDQorU2FuZ2FsbG8sIEdpdWxpYW5vIGRhDQorU2FuZy1Id2EsIENodW5nDQorU2FubWFydGlubywgR2l1c2VwcGUNCitTYW5vIGRpIFBpZXRybw0KK1NhbnNldmVyaW5vLCBMb3JlbnpvIGRpIEFsZXNzYW5kcm8gZGENCitTYW5zb3Zpbm8sIEFuZHJlYQ0KK1NhbnNvdmlubywgSmFjb3BvDQorU2FudCwgSmFtZXMNCitTYW50YWNyb2NlLCBHaXJvbGFtbw0KK1NhbnRlcnJlLCBKZWFuLUJhcHRpc3RlDQorU2FudG9tYXNvLCBHaXVzZXBwZQ0KK1NhbnRvcyBUb3Jyb2VsbGEsIEFuZ2VsZXMNCitTYW55dQ0KK1NhcG91c2VrLCBGcmFuaw0KK1NhcmFjZW5pLCBDYXJsbw0KK1NhcmdlbnQsIEhlbnJ5DQorU2FyZ2VudCwgSm9obiBTaW5nZXINCitTYXJraXNpYW4sIFBhdWwNCitTYXJraXNpYW4sIFNhcmtpcw0KK1NhcnRhaW4sIEpvaG4NCitTYXJ0b3JpdXMsIEpvaG4gTm9zdA0KK1Nhc2FqaW1hLCBLaWhlaQ0KK1Nhc3NldHRhDQorU2Fzc29mZXJyYXRvDQorU2Fzc3UsIEFsaWdpDQorU2F1bmRlcnMsIEdhcnkNCitTYXVyYSBBdGFyZXMsIEFudG9uaW8NCitTYXZhZ2UsIEVkd2FyZA0KK1NhdmVyeSwgUm9lbGFuZHQNCitTYXZvbGRvLCBHaW92YW5uaSBHaXJvbGFtbw0KK1NhdnJhc292LCBBbGV4ZXkNCitTYXd5ZXIsIEhlbGVuDQorU2F4ZSwgQW5kcmVzIE1hcnNhbCBkZQ0KK1NjYW5nYSwgSXRhbG8NCitTY2FybGV0dCwgUm9scGgNCitTY2FycGl0dGEsIFNhbHZhdG9yZQ0KK1NjYXJzZWxsaW5vDQorU2NoYWQsIENocmlzdGlhbg0KK1NjaGFkb3csIEpvaGFubiBHb3R0ZnJpZWQNCitTY2hhZWNodGVyLCBKdWRpdGgNCitTY2hhZWZlciwgQ2FybA0KK1NjaGFsY2tlbiwgR29kZnJpZWQNCitTY2hhbWJlcmcsIE1vcnRvbiBMaXZpbmdzdG9uDQorU2NoYW5rZXIsIExvdWlzDQorU2NoYXBpcm8sIE1pcmlhbQ0KK1NjaGFyZHQsIEJlcm5hcmQgUC4NCitTY2hhcmYsIEtlbm55DQorU2NoYXJmZiwgRWR3aW4NCitTY2jDpHVmZWxlaW4sIEhhbnMgTGVvbmhhcmQNCitTY2hlZG9uaSwgQmFydG9sb21lbw0KK1NjaGVmZmVyLCBBcnkNCitTY2hlaWJlciwgSHVnw7MNCitTY2hlbGZob3V0LCBBbmRyZWFzDQorU2NoZW5hdSwgSm9oYW5uIEVsZWF6YXINCitTY2hlcmVyLCBIZXJtYW5uDQorU2NoZXJzY2hlbCwgSm9zZXBoIEouDQorU2NoaWFmZmlubywgRnJhbmNlc2NvIE1hcmlhDQorU2NoaWF2b25lLCBBbmRyZWENCitTY2hpZWxlLCBFZ29uDQorU2NoaW5kbGVyLCBFbWlsIEpha29iDQorU2NoaW5rZWwsIEthcmwgRnJpZWRyaWNoDQorU2NobGVtbWVyLCBPc2thcg0KK1NjaGzDvHRlciwgQW5kcmVhcw0KK1NjaG1pZHQsIEp1bGl1cw0KK1NjaG1pZHQsIEthdGhlcmluZQ0KK1NjaG1pZHQtUm90dGx1ZmYsIEthcmwNCitTY2htdXR6ZXIsIEZlcmRpbmFuZA0KK1NjaG5hYmVsLCBKdWxpYW4NCitTY2huZWlkZXIsIEJlcm5oYXJkDQorU2Nobm9yciB2b24gQ2Fyb2xzZmVsZCwgSnVsaXVzDQorU2Nob2xkZXIsIEZyaXR6DQorU2Nob2xkZXJlciwgT3R0bw0KK1NjaG9uZmVsZCwgSm9oYW5uIEhlaW5yaWNoDQorU2Nob25nYXVlciwgTWFydGluDQorU2Nob256ZWl0LCBCZW4NCitTY2hvb25ob3ZlbiwgSmFuDQorU2Nob29ub3ZlciwgRnJhbmsgRS4NCitTY2hvb3RlbiwgRmxvcmlzIHZhbg0KK1NjaG9waW4sIEhlbnJpLUZyw6lkw6lyaWMNCitTY2hyYWRlciwgSnVsaXVzDQorU2NocmFnLCBLYXJsDQorU2NocmV5ZXIsIEFkb2xmDQorU2NocmV5ZXIsIExvdGhhcg0KK1NjaHJleXZvZ2VsLCBDaGFybGVzDQorU2Nocm8sIERpZXRyaWNoDQorU2NodWNoYXJkdCBKci4sIEZlcmRpbmFuZA0KK1NjaHVmZmVuZWNrZXIsIENsYXVkZS1FbWlsZQ0KK1NjaHVsdGUsIExhcnJ5DQorU2NodWx0aGVpc3MsIEthcmwgTWF4DQorU2NodWx0eiwgRGFuaWVsDQorU2NodWx0emUsIFJheQ0KK1NjaHVtYWNoZXIsIFdpbGxpYW0NCitTY2h1cHBlbiwgSmFjb2IgdmFuDQorU2NodXNzZWxlLCBDaHJpc3RpYW4NCitTY2h1c3RlciwgRG9ubmEgTm9yaW5lDQorU2NodXRsZXIsIEpvaG4NCitTY2h1eWxlciBMaW1uZXIsIFRoZQ0KK1NjaHdhYmUsIENhcmxvcw0KK1NjaHdhbGJlLCBPbGUNCitTY2h3YXJ0eiwgQXVicmV5DQorU2Nod2FydHosIExlc3RlciBPLg0KK1NjaHdlaWNraGFyZHQsIEhlaW5yaWNoIFdpbGhlbG0NCitTY2h3aWVnZXIsIEMuIFJvYmVydA0KK1NjaHdpZXJpbmcsIENvbnJhZA0KK1NjaHdpbmQsIE1vcml0eiBWb24NCitTY2h3aXR0ZXJzLCBLdXJ0DQorU2NvbGFyaSwgR2l1c2VwcGUNCitTY29yZWwsIEphbiB2YW4NCitTY290dCwgQW5uYSBQYWdlDQorU2NvdHQsIEJpbGwNCitTY290dCwgQm9iDQorU2NvdHQsIEZyYW5jZXMNCitTY290dCwgSm9obg0KK1Njb3R0LCBMb3Vpc2UNCitTY290dCwgTWFyeQ0KK1Njb3R0LCBTYW11ZWwNCitTY290dCwgV2lsbGlhbQ0KK1Njb3R0LCBXaWxsaWFtIEVkb3VhcmQNCitTY3VkZGVyLCBKYW5ldA0KK1NjdWxseSwgU2Vhbg0KK1NlYWdvLCBFZHdhcmQNCitTZWF2ZXksIEp1bGllbiBSLg0KK1NlYmEsIEFsYmVydA0KK1PDqWJhaCwgSi4gUGFzY2FsDQorU2ViYXN0acOhbg0KK1NlYmFzdGlhbm8gZGVsIFBpb21ibw0KK1NlYnJlZSwgQ2hhcmxlcw0KK1NlYnJvbiwgSHlwcG9seXRlIFZpY3RvciBWYWxlbnRpbg0KK1NlLWNob29uZywgS2ltDQorU2Vjb25kIEdvdWRhIFdvb2RjdXR0ZXINCitTZWNyZXN0LCBEYXZpZA0KK1NlZGRvbiwgVGhvbWFzDQorU2VnYWwsIEdlb3JnZQ0KK1NlZ2FsbCwgTGFzYXINCitTZWdhbnRpbmksIEdpb3Zhbm5pDQorU2VnZXJzdHJvbSwgUmljaw0KK1NlZ2hlcnMsIERhbmllbA0KK1NlZ2hlcnMsIEfDqXJhcmQNCitTZWdoZXJzLCBIZXJjdWxlcw0KK1NlZ25hIGRpIEJ1b25hdmVudHVyZQ0KK1NlaXNlbmVnZ2VyLCBKYWNvYg0KK1Nla2lubywgSnVuJ2ljaGlyw7QNCitTZWtrYSwgS2FtaXNha2ENCitTZWxpZ21hbm4sIEt1cnQNCitTZWxsaWVyLCBDaGFybGVzDQorU2Vsb3VzLCBIZW5yeSBDb3VydG5leQ0KK1NlbW1lcywgQmV2ZXJseQ0KK1NlbXBlcmUgSnVhbiwgRXVzZWJpbw0KK1NlbmlvciwgQy5GLg0KK1PDqW9uLCBBbGV4YW5kcmUNCitTZXJnZWwsIEpvaGFuIFRvYmlhcw0KK1Nlcmlha292LCBJYWtvdiBQYW5maWxvdmljaA0KK1Nlcm92LCBWYWxlbnRpbiBBbGVrc2FuZHJvdmljaA0KK1NlcnBvdHRhLCBHaWFjb21vDQorU2VycmEsIFJpY2hhcmQNCitTZXJyYW5vIEFndWlsYXIsIFBhYmxvDQorU2VycmFubywgQW5kcmVzDQorU2VycmVzLCBEb21pbmljDQorU2VycmVzLCBKb2huIFRob21hcw0KK1NlcnJ1ciwgSGVucmkNCitTw6lydXNpZXIsIFBhdWwNCitTZXNzaHUgVG95bw0KK1Nlc3NvbiBTaHVrZWkNCitTZXRjaCwgVGVycnkNCitTZXVyYXQsIEdlb3JnZXMNCitTZXZlcmluaSwgR2lubw0KK1NldmVybiwgSm9zZXBoDQorU2V2ZXJvIGRhIFJhdmVubmENCitTZXZpbGxhIFBvcnRpbGxvLCBTb2xlZGFkDQorU2V5ZmZlcnQsIExlb3BvbGQNCitTZXlsZXIsIEp1bGl1cw0KK1NleW1vdXIsIERhdmlkDQorU2V5bW91ciwgSmFtZXMNCitTaGEgUWkNCitTaGFkYm9sdCwgSmFjaw0KK1NoYWhuLCBBYmJ5DQorU2hhaG4sIEJlbg0KK1NoYW1zdWRkaW4sIEFzYWYgSmFoaQ0KK1NoYW5ub24sIFNpciBKYW1lcyBKZWJ1c2ENCitTaGFubm9uaG91c2UsIFNhbmR5DQorU2hhcGlybywgRGF2aWQNCitTaGFwaXJvLCBKb2VsDQorU2hhcGlybywgSm9zZXBoDQorU2hhcmFmDQorU2hhcnAsIEpvc2VwaCBIZW5yeQ0KK1NoYXJwZSwgQ2hhcmxlcyBLaXJrcGF0cmljaw0KK1NoYXJwZSwgU3RlcGhlbg0KK1NoYXJwbGVzLCBSb2xpbmRhDQorU2hhdWdobmVzc3ksIE1pY2hhZWwNCitTaGF3LCBKb2huIEJ5YW0NCitTaGF3LCBKb3NodWENCitTaGF3LCBSaWNoYXJkDQorU2hhdywgU2NvdHQNCitTaGF3LCBXaWxmcmVkIEJ5cm9uDQorU2hheSwgRWQNCitTaGF5ZXIgU3IuLCBXaWxsaWFtDQorU2hjaGVkcmluLCBTaWwndmVzdHIgRmVvZG9zaWV2aWNoDQorU2hlYSwgSnVkaXRoDQorU2hlZSwgU2lyIE1hcnRpbiBBcmNoZXINCitTaGVlbGVyLCBDaGFybGVzDQorU2hlZXRzLCBNaWxsYXJkDQorU2hlZmZpZWxkLCBJc2FhYw0KK1NoZWxieSwgTGlsYSBOb3JtYQ0KK1NoZWxsZXksIFNhbXVlbA0KK1NoZWx0b24sIE1hcmdhcmV0DQorU2hlbiBKaWF3ZWkNCitTaGVuIFlpbm1vDQorU2hlb3Vhaw0KK1NoZXBhcmQsIEVybmVzdA0KK1NoZXBoZXJkLCBIZWxlbiBQYXJzb25zDQorU2hlcGhlcmQsIFJlZ2luYWxkDQorU2hlcGxlciwgRHdpZ2h0DQorU2hlcmlkYW4sIE1hcnkNCitTaGVybG9jaywgV2lsbGlhbSBQLg0KK1NoZXJtYW4gTGltbmVyLCBUaGUNCitTaGVybWFuLCBDaW5keQ0KK1NoZXJyLCBSb24NCitTaGkgRGF3ZWkNCitTaGkgTHUNCitTaGllLCBTdXNhbg0KK1NoaWVsZHMsIEFsYW4NCitTaGllbGRzLCBGcmFuY2lzIEIuDQorU2hpZ2VtYXNhDQorU2hpZ2VuYWdhLCBOaXNoaW11cmENCitTaGlnZW5vYnUgSUksIFlhbmFnYXdhDQorU2hpa2lidSBUZXJ1dGFkYQ0KK1NoaW1hLCBUYW1hbWkNCitTaGltb211cmEsIFJvZ2VyDQorU2hpbmFnYXdhLCBUYWt1bWkNCitTaGlubiwgRXZlcmV0dA0KK1NoaW5vaGFyYSwgVXNoaW8NCitTaGlzaGtpbiwgSXZhbg0KK1NoaXRhbw0KK1Now7Rrw7RzYWksIEhhbmJlaQ0KK1Nob3J0LCBTaXIgRnJhbmsNCitTaG9zb24sIE9oYXJhDQorU2hyYWR5LCBIZW5yeSBNZXJ3aW4NCitTaHUgQ2h1YW54aQ0KK1NodWVicm9vaywgUm9uDQorU2jDu2jDtCwgWWFtYWthd2ENCitTaHVseiwgQWxiZXJ0YSBSZWhtDQorU2h1bmNobw0KK1NodW4nZWksIEthdHN1a2F3YQ0KK1NodW5zZW4sIEthdHN1a2F3YQ0KK1NodW5zZW4sIE5hdG9yaQ0KK1NodW5zbywgS2F0c3VrYXdhDQorU2h1bnphbiwgS2F0c3VrYXdhDQorU2h1dGUsIE5lbGwgQ2hvYXRlDQorU2liZXJlY2h0cywgSmFuDQorU2lja2VydCwgQmVybmFyZA0KK1NpY2tlcnQsIFdhbHRlciBSaWNoYXJkDQorU2lkZGFsLCBFbGl6YWJldGggRWxlYW5vcg0KK1NpZW1pcmFkemtpLCBIZW5yeWsNCitTaWVycmEsIFBhdWwNCitTaWV2ZXJkaW5nLCBLYXRoYXJpbmENCitTaWduYWMsIFBhdWwNCitTaWduZXIsIFJvbWFuDQorU2lnbm9yZWxsaSwgTHVjYQ0KK1Npa2FuZGVyLCBTaGFoemlhDQorU2lsbywgQWRhbQ0KK1NpbG/DqSwgRGllZ28gZGUNCitTaWxvZSwgR2lsIGRlDQorU2lsdmEsIEZyYW5jaXMgQS4NCitTaWx2YSwgR3VpbGxlcm1vDQorU2lsdmVyLCBKb25hdGhhbg0KK1NpbHZlc3RyZSB0aGUgWW91bmdlciwgSXNyYWVsDQorU2lsdmVzdHJvIERlbGwnQWNxdWlsYQ0KK1NpbHZ5LCBDYW1pbGxlLUzDqW9uLUxvdWlzDQorU2ltYmVyZywgSHVnbw0KK1NpbW9uLCBULiBGcmFudGlzZWsNCitTaW1vbmRzLCBDaGFybGVzDQorU2ltb25lIGRlaSBDcm9jaWZpc3NpDQorU2ltb25pbmksIEZyYW5jZXNjbw0KK1NpbXBzb24sIEJ1c3Rlcg0KK1NpbXBzb24sIEpvaG4NCitTaW1wc29uLCBMb3JuYQ0KK1NpbXMsIEthcmwNCitTaW1zLCBMLlcuICJSb2NreSINCitTaW11biwgS29uc3RhbnRpbg0KK1NpbmdlciwgQ2x5ZGUNCitTaW5nZXIsIE1pY2hhZWwNCitTaW5nbGV0b24sIEhlbnJ5DQorU2ludGVuaXMsIFJlbsOpZQ0KK1NpbnQtSmFucywgR2VlcnRnZW4gVG90DQorU2lxdWVpcm9zLCBEYXZpZCBBbGZhcm8NCitTaXJhbmksIEVsaXNhYmV0dGENCitTaXJvbmksIE1hcmlvDQorU2lza2luZCwgQWFyb24NCitTaXNsZXksIEFsZnJlZA0KK1Npc3lwaHVzIFBhaW50ZXIsIFRoZQ0KK1NpdHRvdywgTWljaGVsDQorU2l2dXJhcSwgVGhvbWFzDQorU2tlYWYsIEQuDQorU2tlbHRvbiwgSm9uYXRoYW4NCitTa2VyYmlzY2gsIEhhcnRtdXQNCitTa2lsbGV0LCBTdGVwaGFuIEQuDQorU2tpbm5lciwgQ2xhcmENCitTa2lwcGUsIEpvaG4NCitTa29nbHVuZCwgU2FuZHkNCitTa3lubmVyLCBUaG9tYXMNCitTbGF1Z2h0ZXIsIFN0ZXBoZW4NCitTbGV0ZXIsIEZyYW5jZXNjbw0KK1NsZXZvZ3QsIE1heA0KK1NsaW5nZWxhbmR0LCBQaWV0ZXIgQ29ybmVsaXN6LiB2YW4NCitTbG9hbiwgSGVsZW4gRmFycg0KK1Nsb2FuLCBKZWFuZXR0ZSBQYXNpbg0KK1Nsb2FuLCBKb2huDQorU2xvYW4sIEp1bml1cyBSLg0KK1Nsb2FuLCBNYXJpYW5uYQ0KK1Nsb2R0eiwgTWljaGVsYW5nZWxvDQorU2xvdHQtTcO4bGxlciwgSGFyYWxkDQorU2xvd2luc2tpLCBSb25hbGQNCitTbHVpanRlcnMsIEphbg0KK1NsdXNzZXIsIEplYW4gUGF1bA0KK1NsdXRlciwgQ2xhdXMNCitTbWFsbHdvb2QsIFdpbGxpYW0gRnJvbWUNCitTbWFydCwgSm9obg0KK1NtYXJ0bHksIEhlbnJ5DQorU21pYmVydCwgSm9obg0KK1NtaWR0aCwgSGFucw0KK1NtaWxsaWUsIEdlb3JnZSBIZW5yeQ0KK1NtaXJrZSwgUm9iZXJ0DQorU21pdGggSUlJLCBMZWUgTi4NCitTbWl0aCwgQWxleGlzDQorU21pdGgsIEFsZnJlZA0KK1NtaXRoLCBBbGxlbg0KK1NtaXRoLCBEYW5hDQorU21pdGgsIERhdmlkDQorU21pdGgsIERlYmJpZQ0KK1NtaXRoLCBFZGl0aCBBZ25lcw0KK1NtaXRoLCBHcmFjZSBDb3NzaW5ndG9uDQorU21pdGgsIEphY2sNCitTbWl0aCwgSmF1bmUgUXVpY2stVG8tU2VlDQorU21pdGgsIEplc3NpZSBXaWxsY294DQorU21pdGgsIEpvaG4gQ2hyaXN0b3BoZXINCitTbWl0aCwgSm9obiBSYXBoYWVsDQorU21pdGgsIEpvaG4gVGhvbWFzDQorU21pdGgsIEpvaG4gJ1dhcndpY2snDQorU21pdGgsIEpvc2VwaCBCLg0KK1NtaXRoLCBLaWtpDQorU21pdGgsIExlb24gUG9saw0KK1NtaXRoLCBMZXdpcw0KK1NtaXRoLCBNYXJpb24gQy4NCitTbWl0aCwgT2xpdmVyIFBoZWxwcw0KK1NtaXRoLCBQaGViZSBBLg0KK1NtaXRoLCBSaWNrDQorU21pdGgsIFJveWFsbCBCcmV3c3Rlcg0KK1NtaXRoLCBTaXIgTWF0dGhldw0KK1NtaXRoLCBUaG9tYXMNCitTbWl0aCwgVG9ueQ0KK1NtaXRoLCBUdWNrZXINCitTbWl0aCwgVy4gRXVnZW5lDQorU21pdGgsIFdhbHRlciBHcmFudmlsbGUNCitTbWl0aGVycywgQ29sbGllcg0KK1NtaXRoc29uLCBSb2JlcnQNCitTbWl0cywgSmFjb2INCitTbXl0aGUsIExpb25lbCBQZXJjeQ0KK1Nub3csIE1pY2hhZWwNCitTbm93ZGVuLCBHaWxkYQ0KK1NueWRlciwgQW1hbmRhDQorU255ZGVyLCBEZWFuDQorU255ZGVycywgRnJhbnMNCitTb2FuZSwgU2lyIEpvaG4NCitTb2RvbWEsIElsDQorU29lc3QsIEdlcmFyZA0KK1NvZ2xpYW5pLCBHaW92YW5uaSBBbnRvbmlvDQorU29obGJlcmcsIEhhcmFsZA0KK1NvbGFuYSwgSm9zw6kgR3V0acOpcnJleg0KK1NvbGFyaSwgQ3Jpc3RvZm9ybw0KK1NvbGFyaW8sIEFuZHJlYQ0KK1NvbGFybywgR2VudGluZQ0KK1NvbGRhbmksIE1hc3NpbWlsaWFubw0KK1NvbGRhdGksIEF0YW5hc2lvDQorU29sZG5lciwgUGF1bA0KK1NvbGVyaSwgUGFvbG8NCitTb2xpbWVuYSwgRnJhbmNlc2NvDQorU29saXMsIFZpcmdpbA0KK1NvbG9tb24sIEFicmFoYW0NCitTb2xvbW9uLCBSZWJlY2NhDQorU29sb21vbiwgU2ltZW9uDQorU29sb21vbiwgU29sb21vbiBKb3NlcGgNCitTb21lcnMsIEZyZWQNCitTb21lcnNjYWxlcywgVGhvbWFzIEouDQorU29tbWVyLCBGcmVkZXJpY2sNCitTb21tZXIsIEdpb3JnaW8NCitTb21vZ3lpLCBEw6FuaWVsDQorU29tb3YsIEtvbnN0YW50aW4NCitTw7huZGVyZ2FhcmQsIEplbnMNCitTb25nIFdlbnpoaQ0KK1Nvbm5pZXIsIEtlaXRoDQorU29ubnRhZywgV2lsbGlhbSBMb3Vpcw0KK1NvbnMsIEdpb3Zhbm5pDQorU29yZWF1LCBJc2FhYw0KK1PDuHJlbnNlbiwgQXJuZSBIYXVnZW4NCitTb3JnaCwgSGVuZHJpayBNYXJ0ZW5zeg0KK1Nvcmlhbm8sIEp1YW4NCitTb3JvbGxhIHkgQmFzdGlkYSwgSm9hcXVpbg0KK1Nvc2VraQ0KK1Nvc2VuLCBNb3JpDQorU290bywgSmVzw7pzLVJhZmFlbA0KK1NvdWNoLCBKb2huDQorU291bGFnZXMsIFBpZXJyZQ0KK1NvdXRoYWxsLCBKb3NlcGggRWR3YXJkDQorU291dGluZSwgQ2hhaW0NCitTb3llciwgSXNhYWMNCitTb3llciwgTW9zZXMNCitTb3llciwgUmFwaGFlbA0KK1NwYWRpbmksIEFybWFuZG8NCitTcGFldGgsIE1hcmllIEhhdWdodG9uDQorU3BhZ25hLCBMbw0KK1NwYWxsZXR0aSwgRXR0b3JlDQorU3BhcmFnYW5hLCBKb2huDQorU3BhdWxkaW5nLCBGcmVkYQ0KK1NwZWFyLCBSdXNraW4NCitTcGVja2FlcnQsIEhhbnMNCitTcGVuY2UsIFRob21hcyBSYWxwaA0KK1NwZW5jZXIsIEZyZWRlcmljayBSLg0KK1NwZW5jZXIsIEdpbGJlcnQNCitTcGVuY2VyLCBKb3NlcGgNCitTcGVuY2VyLCBMYWR5DQorU3BlbmNlciwgTGlsbHkgTWFydGluDQorU3BlbmNlciwgTmlsZXMNCitTcGVuY2VyLCBTdGFubGV5DQorU3BlbmNlciwgVGhvbWFzDQorU3BlbmdsZXIsIEplcm9uaW11cw0KK1NwZXJhbmRpbywgU2F2ZWxsaQ0KK1NwZXJvLCBOYW5jeQ0KK1NwaWVnZWwsIERvcmlzDQorU3BpbGJlcmcsIEpvaGFubg0KK1NwaWxsaWFlcnQsIEzDqW9uDQorU3BpbiwgSmFjb2INCitTcGluZWxsaSwgUGFycmkNCitTcGluZWxsbyBBcmV0aW5vDQorU3Bpbm9zYSwgRG9tZW5pY28NCitTcGl0endlZywgQ2FybA0KK1Nwb2VycmksIERhbmllbA0KK1Nwb2lsdW0NCitTcG9sdmVyaW5pLCBJbGFyaW8NCitTcG9ycmluZywgT2xlDQorU3ByYW5nZXIsIEJhcnRob2xvbWV1cw0KK1NwcmluZ2VyLCBDb3JuZWxpcw0KK1NwcnVhbmNlLCBCZW50b24gTXVyZG9jaA0KK1NweWJ1Y2ssIEVybmVzdA0KK1NxdWlyZXMsIEdlcmFsZA0KK1N0YWRsZXIsIEpvc2VwaCBDb25zdGFudGluDQorU3RhZHRiw6R1bWVyLCBQaWENCitTdGFobGVja2VyLCBLYXJlbg0KK1N0YW1vcywgVGhlb2Rvcm9zDQorU3RhbmN6YWssIEp1bGlhbg0KK1N0YW5maWVsZCwgQ2xhcmtzb24gRnJlZGVyaWNrDQorU3RhbmhvcGUsIEpvaG4gUm9kZGFtIFNwZW5jZXINCitTdGFua2lld2ljeiwgUmljaGFyZA0KK1N0YW5sYXdzLCBQZW5yaHluDQorU3RhbmxleSwgQWJyYW0gUm9zcw0KK1N0YW5sZXksIEphbmUgQy4NCitTdGFubGV5LCBKb2huIE1peA0KK1N0YW56aW9uZSwgTWFzc2ltbw0KK1N0YXJrLCBKYW1lcw0KK1N0YXJrLCBPdHRvDQorU3RhdGksIENyaXN0b2Zvcm8NCitTdGF1dGJlcmcsIEFubg0KK1N0YXZlcmVuLCBKYW4gQWRyaWFlbnN6LiB2YW4NCitTdGVhZCwgR2FyeQ0KK1N0ZWFkbWFuLCBSYWxwaA0KK1N0ZWFybnMsIEp1bml1cyBCcnV0dXMNCitTdGVhcm5zLCBXaWxsaWFtDQorU3RlY2ssIFBhdWwNCitTdGVlbGUsIEJlbg0KK1N0ZWVsZSwgRnJlZGVyaWMgRG9ycg0KK1N0ZWVsZSwgVGhlb2RvcmUgQ2xlbWVudA0KK1N0ZWVuLCBFcmxpbmcNCitTdGVlbiwgSmFuDQorU3RlZW53aWpjaywgSGFybWVuDQorU3RlZW53eWNrIHRoZSBZb3VuZ2VyLCBIZW5kcmlrIHZhbg0KK1N0ZWVyLCBQaGlsaXAgV2lsc29uDQorU3RlZmFubyBkYSBWZXJvbmENCitTdGVmYW5vIGRlbGxhIEJlbGxhDQorU3RlZmFubyBkaSBaZXZpbw0KK1N0ZWZmZW4sIEJlcm5hcmQgSi4NCitTdGVpY2hlbiwgRWR3YXJkIEouDQorU3RlaW5iYWNoLCBIYWltDQorU3RlaW5iZXJnLCBTYXVsDQorU3RlaW5icnVjaywgRWRvdWFyZA0KK1N0ZWluZXIsIEpvaG4NCitTdGVpbmxlbiwgVGjDqW9waGlsZSBBbGV4YW5kcmUNCitTdGVpciwgUGF0DQorU1RFTEFSQw0KK1N0ZWxsYSwgRnJhbmsNCitTdGVsbGEsIEphY3F1ZXMgZGUNCitTdGVsbGEsIEpvc2VwaA0KK1N0ZXBoZW5zLCBGcmVkZXJpYyBHZW9yZ2UNCitTdGVwaGVucywgVGhvbWFzIEVkZ2FyDQorU3RlcGhlbnNvbiwgSm9obiBDZWNpbA0KK1N0ZXBoZW5zb24sIFBldGVyDQorU3Rlcm5iZXJnLCBIYXJyeQ0KK1N0ZXJuZSwgTWF1cmljZQ0KK1N0ZXJuZXIsIEFsYmVydCBFZHdhcmQNCitTdGV0aCwgUmF5bW9uZA0KK1N0ZXR0aGVpbWVyLCBGbG9yaW5lDQorU3RldHRuZXIsIExvdWlzDQorU3RldmVucyAxODE3LTE4NzUsIEFsZnJlZA0KK1N0ZXZlbnMgMTgyMy0xOTA2LCBBbGZyZWQNCitTdGV2ZW5zLCBSdXRoIFR1bmFuZGVyDQorU3Rld2FyZCwgSm9zZXBoDQorU3Rld2FyZHNvbiwgVGhvbWFzDQorU3Rld2FydCwgQWxiZXJ0DQorU3Rld2FydCwgRGF2aWQNCitTdGV3YXJ0LCBKb2huIFAuDQorU3Rld2FydCwgSnVsaXVzIEwuDQorU3RpZWdsaXR6LCBBbGZyZWQNCitTdGllbGVyLCBKb3NlcGgNCitTdGlsbCwgQ2x5ZmZvcmQNCitTdGlsbG1hbiwgTWFyaWUgU3BhcnRhbGkNCitTdGlsbG1hbi1NeWVycywgSm95Y2UNCitTdG9jaywgQW5kcmllcw0KK1N0b2NrLCBKb3NlcGggV2hpdGluZw0KK1N0b2NrdCwgVnJhbmNrZSB2YW4gZGVyDQorU3RvY2t0b24sIEJpbGwNCitTdG9kYXJ0LCBFZHdhcmQgV2lsbGlhbQ0KK1N0b2tlcyAxODU0LTE5MzUsIEFkcmlhbg0KK1N0b2tlcyAxOTAyLTE5NzIsIEFkcmlhbg0KK1N0b2tlcywgTWFyaWFubmUNCitTdG9sbCwgTGVvcG9sZCB2b24NCitTdG9semwsIEd1bnRhDQorU3RvbWVyLCBNYXR0aGlhcw0KK1N0b25lLCBBbm5lIEJlbGxlDQorU3RvbmUsIEVsaW5vcmUNCitTdG9uZSwgTWFyY3VzDQorU3RvbmUsIE5pY2hvbGFzDQorU3RvbmUsIFJpY2hhcmQNCitTdG9vcCwgRGlyY2sNCitTdG9yY2ssIEFicmFoYW0NCitTdG9yY2ssIEphY29iDQorU3RvcnJzLCBGcmFuY2VzIEh1ZHNvbg0KK1N0b3JycywgSm9obg0KK1N0b3J5LCBHZW9yZ2UgSC4NCitTdG9yeSwgSnVsaWFuDQorU3RvcnksIFdpbGxpYW0gV2V0bW9yZQ0KK1N0b3NzLCBWZWl0DQorU3RvdGhhcmQsIFRob21hcw0KK1N0b3R0LCBFZHdhcmQNCitTdG90dCwgV2lsbGlhbQ0KK1N0b3VmLCBKZWFuLUJhcHRpc3RlDQorU3RvdW1lbiwgTG91DQorU3RvdXQsIFJlbsOpZQ0KK1N0b3V0ZXIsIEQuRy4NCitTdHJhZXQsIEphbiB2YW4gZGVyDQorU3RyYW5kLCBQYXVsDQorU3RyYW5nLCBXaWxsaWFtDQorU3RyYXR0b24sIE1hcnkgQ2hhc2UNCitTdHJhdWIsIFBoaWxpcHBlIEpha29iDQorU3RyZWV0LCBSb2JlcnQNCitTdHJlZXRvbiwgQXJ0aHVyDQorU3RyZXVsaSwgQmVhdA0KK1N0cmlnZWwsIEJlcm5oYXJkDQorU3Ryb21leWVyLCBEYXZpZA0KK1N0cm9uZywgRWxpemFiZXRoDQorU3Ryb25nLUN1ZXZhcw0KK1N0cm90aGVyLCBEYXZpZCBIdW50ZXINCitTdHJvenppLCBCZXJuYXJkbw0KK1N0cnViIHRoZSBZb3VuZ2VyLCBQZXRlcg0KK1N0cnVjaywgSGVybWFubg0KK1N0cnVkd2ljaywgSm9obiBNZWxodWlzaA0KK1N0cnVzcywgRXRoZWwNCitTdHJ1dGgsIFRob21hcw0KK1N0cnV0dCwgQXJ0aHVyIEpvaG4NCitTdHVhcnQsIEdpbGJlcnQNCitTdHVhcnQsIEphbmUNCitTdHVhcnQsIE1pY2hlbGxlDQorU3R1YXJ0LCBTaWduZQ0KK1N0dWJiaW5zLCBLeWxlDQorU3R1YmJzLCBHZW9yZ2UNCitTdHViZXIsIE5pa29sYXVzIEdvdHRmcmllZA0KK1N0dWNrLCBGcmFueiB2b24NCitTdHVlbXBmaWcsIFdhbHRlcg0KK1N0dXJ0ZXZhbnQsIEhlbGVuYQ0KK1N1IEhhbmNoZW4NCitTdWJsZXlyYXMsIFBpZXJyZQ0KK1N1ZWhhcnUsIEZ1a2FtaQ0KK1N1Z2ltb3RvLCBIaXJvc2hpDQorU3VpbywgVGFtdXJhDQorU3VrZW5vYnUNCitTdWtvbGEsIEphc29uDQorU3Vrd29uLCBQYXJrDQorU3VsZWltYW4sIE1hc3Rlcg0KK1N1bGxpdmFuLCBMb3Vpcw0KK1N1bGxpdmFuLCBNYXJ0eQ0KK1N1bGx5LCBUaG9tYXMNCitTdWxseSwgVGhvbWFzIFdpbGNvY2tzDQorU3VsdGFuIE11aGFtbWFkDQorU3VsdGFuLCBEb25hbGQNCitTdW4gWml4aQ0KK1N1bmRlcmxhbmQsIFRob21hcw0KK1N1bnF1YQ0KK1N1cmxzLCBKYW1lcw0KK1N1c2luaSwgQW50b25pbw0KK1N1c2luaSwgR2lhbmZyYW5jZXNjbw0KK1N1c3Rlcm1hbnMsIEp1c3R1cw0KK1N1dGNsaWZmZSwgRnJhbmsNCitTdXRoZXJsYW5kLCBFbGl6YWJldGggTGV2ZXNvbi1Hb3dlciwgQ291bnRlc3Mgb2YNCitTdXRoZXJsYW5kLCBHcmFoYW0NCitTdXR0b24sIERhdmlkDQorU3V2w6llLCBKb3NlcGgtQmVub8OudA0KK1N2ZW5kc2VuLCBCamFya2UgUmVnbg0KK1N2ZW5uc29uLCBDYXJzdGVuDQorU3dhbiwgSm9obiBNYWNhbGxhbg0KK1N3YW4sIE1hcmdhcmV0DQorU3dhbmV2ZWx0LCBIZXJtYW4gdmFuDQorU3dlZXJ0cywgTWljaGllbA0KK1N3ZW5kc29uLCBUcnlndmUNCitTd2VudHplbGwsIFJveGFubmUNCitTd2luZyBQYWludGVyLCBUaGUNCitTd3lubmVydG9uLCBBbm5pZSBMb3Vpc2UNCitTeWxldXMgUGFpbnRlciwgVGhlDQorU3ltb25kcywgV2lsbGlhbSBSb2JlcnQNCitTeW1vbnMsIEdlb3JnZSBHYXJkbmVyDQorU3lyaXNrb3MNCitTesOpa2VseSwgQmVydGFsYW4NCitTemlsYXJkLCBWaWMNCitTemlsYXNpLCBHYWJvcg0KK1RhYWZmZSwgUGhpbGlwDQorVGFjY2EsIFBpZXRybw0KK1RhY2ssIEF1Z3VzdHVzIFZpbmNlbnQNCitUYWRkZW8gZGkgQmFydG9sbw0KK1RhZm95YSwgTWFyZ2FyZXQNCitUYWlsZmVhdGhlcnMsIEdlcmFsZA0KK1RhaWxsYXNzb24sIEplYW4tSm9zZXBoDQorVGFpdCwgQWduZXMNCitUYWthZXp1LCBUb3NoaWtvDQorVGFrYWhhc2hpLCBSaWtpbw0KK1RhbGJvdCwgVG9tDQorVGFsYm90LCBXaWxsaWFtIEhlbnJ5IEZveA0KK1RhbC1Db2F0LCBQaWVycmUNCitUYWxpcnVuaWxpLCBKb2UNCitUYWxwaW5vLCBFbmVhDQorVGFtYXlvLCBSdWZpbm8NCitUYW1vdHp1LCBDaHV6bw0KK1RhbmFiZSwgVGFrYW8NCitUYW5nIE11bGkNCitUYW5nIFlpaGUNCitUYW5nIFlpbg0KK1RhbmcgWWluZ3dlaQ0KK1Rhbmd1eSwgWXZlcw0KK1Rhbm5lciwgQmVuamFtaW4NCitUYW5uZXIsIEhlbnJ5IE9zc2F3YQ0KK1Rhbm5lciwgSi5HLg0KK1Rhbm5pbmcsIERvcm90aGVhDQorVGFuc2V5LCBNYXJrDQorVGFuemlvIGRhIFZhcmFsbG8NCitUJ2FvIENoJ2VuZw0KK1RhbyBZdWFucWluZw0KK1TDoHBpZXMsIEFudG9uaQ0KK1RhcGllcywgTW9kZXN0DQorVGFyYXZhbCwgSHVnaGVzDQorVGFyYXZhbCwgTG91aXMgR3VzdGF2ZQ0KK1RhcmJlbGwsIEVkbXVuZCBDaGFybGVzDQorVGFzc2FlcnQsIEplYW4tUGllcnJlLUFudG9pbmUNCitUYXNzYWVydCwgUGhpbGlwcGUgSm9zZXBoDQorVGF0YWZpb3JlLCBHdWlkbw0KK1RhdW5heSwgTmljb2xhcy1BbnRvaW5lDQorVGF2ZXJuYXJpLCBWaXR0b3Jpbw0KK1RhdmVybmVyLCBXaWxsaWFtDQorVGF2ZXJuaWVyLCBKdWxlcw0KK1Rhd2FyYXlhIFNvdGF0c3UNCitUYXlsZXIsIEFsYmVydCBDaGV2YWxsaWVyDQorVGF5bG9yLCBBbm5hIEhleXdhcmQNCitUYXlsb3IsIEpvaG4gVy4NCitUYXlsb3IsIFByZW50aXNzDQorVGF5bG9yLCBSaWNoYXJkDQorVGF5bG9yLCBXZXMNCitUYXlsb3ItTGluZG9lLCBDYXJyb2xsDQorVGNoZWxpdGNoZXcsIFBhdmVsDQorVGVlcmxpbmUsIExldmluYQ0KK1RlaWNoZXJ0LCBNaW5lcnZhDQorVGVpeGVpcmEgZGUgTWF0dG9zLCBKb3NlcGgNCitUZW1wZWwsIEFicmFoYW0gdmFuIGRlbg0KK1RlbXBsZXRvbiwgUm9iZXJ0DQorVGVuZXJhbmksIFBpZXRybw0KK1RlbmcgSGlvayBDaGl1DQorVGVuZ25hZ2VsLCBKYW4NCitUZW5pZXJzIHRoZSBZb3VuZ2VyLCBEYXZpZA0KK1Rlbm5pZWwsIFNpciBKb2huDQorVGVueXUgU2hva2VpDQorVGVyYm9yY2gsIEdlcmFyZA0KK1RlcmJydWdnaGVuLCBIZW5kcmljaw0KK1RlcnJlbGwsIEVsaXphYmV0aA0KK1Rlc2ksIE1hdXJvIEFudG9uaW8NCitUZXN0YSwgUGlldHJvDQorVGV1cGtlbiBTci4sIEQuQS4NCitUaGFuLCBNw7NyDQorVGhheWVyLCBBYmJvdHQgSGFuZGVyc29uDQorVGhlZWQsIFdpbGxpYW0NCitUaMOpb2RvbiwgSmVhbiBCYXB0aXN0ZQ0KK1RoZW9waGFuZXMgdGhlIEdyZWVrDQorVGhlcmJ1c2NoLCBBbm5hIERvcm90aGVhDQorVGhlcmllbiwgUm9iZXJ0DQorVGhldXMsIEplcmVtaWFoDQorVGhpZWJhdWQsIFdheW5lDQorVGhpZWxlIElJLCBKb2hhbm4gRnJpZWRyaWNoIEFsZXhhbmRlcg0KK1RoaWVsZW4sIEphbiBQaGlsaXBzIHZhbg0KK1RoaWVtZSwgQW50aG9ueQ0KK1RoaWVycnksIEplYW4NCitUaGllc3NlbiwgTGVvbmFyZA0KK1Rob21hcywgQWxtYQ0KK1Rob21hcywgSmFtZXMgSGF2YXJkDQorVGhvbXBzb24sIEJlbmphbWluDQorVGhvbXBzb24sIEJvYg0KK1Rob21wc29uLCBSaWNoYXJkIEVhcmwNCitUaG9tcHNvbiwgV2lsZnJlZA0KK1Rob21wc29uLCBXb3Jkc3dvcnRoDQorVGhvbXNvbiwgQWxmcmVkIFJlZ2luYWxkDQorVGhvbXNvbiwgUmV2LiBKb2huDQorVGhvbXNvbiwgVG9tDQorVGhvbiwgV2lsbGlhbQ0KK1Rob3JuaGlsbCwgU2lyIEphbWVzDQorVGhvcm55Y3JvZnQsIFNpciBIYW1vDQorVGhvcnZhbGRzZW4sIEJlcnRlbA0KK1RocmFzaCwgRG94DQorVGh1bGRlbiwgVGhlb2Rvb3IgdmFuDQorVGlhbiBTaGlndWFuZw0KK1RpYXJpbmksIEFsZXNzYW5kcm8NCitUaWJhbGRpLCBQZWxsZWdyaW5vDQorVGliYmV0dHMsIEdhcnkNCitUaWNlLCBHZW9yZ2UNCitUaWVuIENoaQ0KK1RpZXBvbG8sIEdpb3Zhbm5pIEJhdHRpc3RhDQorVGllcG9sbywgR2lvdmFubmkgRG9tZW5pY28NCitUaWZmYW55LCBMb3VpcyBDb21mb3J0DQorVGlpc2FsYSwgRWV2YQ0KK1RpbGxlbWFucywgUGV0ZXINCitUaWxsZXJzLCBJbWFudHMNCitUaWxzb24sIEpvZQ0KK1RpbWNoYWssIEdhcnkNCitUaW1tYW5uLCBCaWxsDQorVGluZWxsaSwgVGliZXJpbw0KK1RpbmcsIFdhbGFzc2UNCitUaW5ncXVhDQorVGluZ3VlbHksIEplYW4NCitUaW5vIGRhIENhbWFpbm8NCitUaW5xdWENCitUaW50b3JldHRvDQorVGlyb25pLCBGcmFuY2VzY28NCitUaXNjaGJlaW4sIEpvaGFubiBIZWlucmljaCBXaWxoZWxtDQorVGlzY2hiZWluLCBKb2hhbm4tRnJpZWRyaWNoLUF1Z3VzdA0KK1Rpc3NvdCwgSmFtZXMNCitUaXRpYW4NCitUaXRsZSwgQ2hyaXN0aWFuDQorVG9iZXksIE1hcmsNCitUb2NxdcOpLCBMb3Vpcw0KK1RvZGQsIEphbWVzDQorVG9kZCwgTWljaGFlbA0KK1RvZGVyaSwgR3JhemlhDQorVG9lcHV0LCBMb2Rld3lrDQorVG9nb3JlcyBpIExsYWNoLCBKb3PDqSBkZQ0KK1RvaWtrYSwgT2l2YQ0KK1RvbGVkbywgRnJhbmNpc2NvDQorVG9tZWEsIEZpb3JlbnpvDQorVG9ta2lucywgV2lsbGlhbQ0KK1RvbW1hc28gQ2F6emFuaWdhDQorVG9tb3l1a2ksIFNob2t5dXNhaQ0KK1RvbmdlcmVuLCBIZXJrIFZhbg0KK1Rvbm5hbmNvdXIsIEphY3F1ZXMgRy4gZGUNCitUb29rZXIsIEdlb3JnZQ0KK1Rvb2tvb21lLCBTaW1vbg0KK1Rvb2xlLCBKb2huDQorVG9vbGV5IEpyLiwgSmFtZXMNCitUb29yb3AsIENoYXJsZXkNCitUb29yb3AsIEphbg0KK1RvcGNoZXZza3ksIE1vcnJpcw0KK1RvcG9sc2tpLCBGZWxpa3MNCitUb3JiZXJ0LCBTdGVwaGFuaWUNCitUb3JsYWtzb24sIEphbWVzDQorVG9yb25pLCBOaWVsZQ0KK1RvcnJlbnMsIEJlcm5hcmRvDQorVG9ycmVzLUdhcmPDrWEsIEpvYXF1w61uDQorVG9ycmV0dGksIEdpdXNlcHBlDQorVG9ycmV5LCBIaXJhbSBEd2lnaHQNCitUb3JyaWdpYW5pLCBTZWJhc3RpYW5vDQorVG9ycmlnaWFubywgUGlldHJvDQorVG9zYSwgTWl0c3V5b3NoaQ0KK1Rvc2FuaSwgUGF0cmljaw0KK1Rvc2NhbmksIEdpb3Zhbm5pDQorVG9zaHVzYWkgU2hhcmFrdQ0KK1Rvc2luaSwgTWljaGVsZQ0KK1RvdWxvdXNlLUxhdXRyZWMsIEhlbnJpIGRlDQorVG91cm5pZXIsIE5pY29sYXMNCitUb3VzaWduYW50LCBDbGF1ZGUNCitUb3V0YW50LCBXYWxseQ0KK1Rvd24sIEhhcm9sZA0KK1Rvd25lLCBGcmFuY2lzDQorVG95b2hhcnUsIFV0YWdhd2ENCitUb3lva3VuaQ0KK1RveW9rdW5pIElJLCBVdGFnYXdhDQorVG95b21hc2EsIE5haXRvDQorVHJhaW5pLCBGcmFuY2VzY28NCitUcmF2ZXIsIE1hcmlvbiBHcmF5DQorVHJheWxvciwgQmlsbA0KK1RyZWF0LCBIZW5yeQ0KK1RyZWdvciwgTmlzb24NCitUcmVpbWFuLCBKb3ljZQ0KK1RyZXNoYW0sIEhlbnJ5DQorVHJldmVseWFuLCBKdWxpYW4NCitUcmV2aW5vLCBKZXNzZQ0KK1RyZXZpc2FuaSwgRnJhbmNlc2NvDQorVHJpYm9sbywgTmljY29sbw0KK1RyaW5xdWVzc2UsIExvdWlzIFJvbGxhbmQNCitUcmlxdWV0aSwgSGVucmkgZGUNCitUcmlzdMOhbiBkZSBFc2NhbWlsbGEsIEx1aXMNCitUcm9ja2VsLCBSb3NlbWFyaWUNCitUcm9tYmFkb3JpLCBGcmFuY2VzY28NCitUcm9vc3R3aWprLCBXb3V0ZXIgSm9oYW5uZXMgdmFuDQorVHJvcGluaW4sIFZhc2lsaWkgQW5kcmVldmljaA0KK1Ryb3VpbGxlYmVydCwgUGF1bCBEZXNpcsOpDQorVHJvd2VyLCBXYWx0ZXIgSm9obg0KK1Ryb3ksIEZyYW7Dp29pcyBkZQ0KK1Ryb3ksIEplYW4tRnJhbsOnb2lzIGRlDQorVHJveW9uLCBDb25zdGFudA0KK1RydW1idWxsLCBKb2huDQorVHJ5b24sIER3aWdodCBXLg0KK1RzaWhuYWhqaW5uaWUsIEh1bGxlYWgNCitUc2lyZWgsIEF3YQ0KK1RzdWtpbWFybywgS2l0YWdhd2ENCitUdSwgQmFpeGlvbmcNCitUdWJ5IEksIEplYW4tQmFwdGlzdGUNCitUdWNoZmFyYmVyLCBGcmFuaw0KK1R1Y2tlciwgQWxsZW4NCitUdWNrZXIsIFdpbGxpYW0NCitUdWNrZXJtYW4sIEphbmUNCitUdWRnYXksIEZyZWRlcmlrDQorVHVkZ2F5LCBKb2huDQorVHVkbGlrDQorVHVkb3QsIEVkbW9uZA0KK1R1bGx5LCBTeWRuZXkgU3RyaWNrbGFuZA0KK1R1bm5pY2xpZmZlLCBDaGFybGVzIEZyZWRlcmljaw0KK1R1bm5pbGxpZSwgT3ZpbG9vDQorVHVyYSwgQ29zbcOoDQorVHVyY2hpLCBBbGVzc2FuZHJvDQorVHVybmJ1bGwsIEphbWVzDQorVHVybmJ1bGwsIFdpbGxpYW0NCitUdXJuZXIsIENoYXJsZXMNCitUdXJuZXIsIERhbmllbA0KK1R1cm5lciwgSGVsZW4gTS4NCitUdXJuZXIsIEpvc2VwaCBNYWxsb3JkIFdpbGxpYW0NCitUdXJuZXIsIFJvYmluDQorVHVybmVyLCBXLg0KK1R1cnBpbiBkZSBDcmlzc8OpLCBIZW5yeSBSb2xhbmQgTGFuY2Vsb3QNCitUdXJwaW4gZGUgQ3Jpc3PDqSwgTGFuY2Vsb3QtVGjDqW9kb3JlDQorVHVycmVsbCwgSmFtZXMNCitUdXJ0b24sIE0uDQorVHV4ZW4sIExhdXJpdHMNCitUd2FjaHRtYW4sIEpvaG4gSGVucnkNCitUd2l0dHksIEphbWVzDQorVHdvbWJseSwgQ3kNCitUd29ya292LCBKYWNrDQorVHlsZXIsIEJyYWQNCitUeWxlciwgSmFtZXMgR2FsZQ0KK1VjY2VsbG8sIFBhb2xvDQorVWMtY2hpbiwgQ2hhbmcNCitVY2hpZGEsIEJhcnQNCitVZGFsdHNvdmEsIE5hZGV6aGRhIEFuZHJlZXZuYQ0KK1VkZWxsLCBKYW5pY2UNCitVZGVuLCBMdWNhcyB2YW4NCitVZmVyLCBXYWx0ZXINCitVZ28gRGEgQ2FycGkNCitVZ29saW5vIGRhIFNpZW5hDQorVWhkZSwgRnJpdHogS2FybCBIZXJtYW5uIHZvbg0KK1VobG1hbm4sIEhhbnMNCitVa2VsZXMsIE1pZXJsZSBMYWRlcm1hbg0KK1VraXRhIElra2VpDQorVWxsYmVyZywgS2VudA0KK1VsbHVsYXEsIEp1ZGFzDQorVWxtYW5uLCBEb3Jpcw0KK1VuZGVyd29vZCwgVGhvbWFzIFJpY2hhcmQNCitVbmRlcndvcmxkIFBhaW50ZXIsIFRoZQ0KK1Vua29rdSBUb2dhbg0KK1Vub2xkLCBNYXgNCitVcnVzaGliYXJhLCBZb3NoaWppcm8NCitVc2hha292LCBTaW1vbg0KK1V0YW1hcm8sIEtpdGFnYXdhDQorVXRraW4sIElseWENCitVdHJpbGxvLCBNYXVyaWNlDQorVXdpbnMsIFRob21hcw0KK1V5dHRlbmJyb2VjaywgTW9zZXMgdmFuDQorVmEsIEJhcnJ5IExlDQorVmFjY2FybywgQW5kcmVhDQorVmFjaGVyLCBDaGFybGVzDQorVmFkZGVyLCBMb2Rld2lqayBkZQ0KK1ZhaWwsIEV1Z2VuZSBMYXdyZW5jZQ0KK1ZhaWxsYW50LCBXYWxsZXJhbnQNCitWYWxhZG9uLCBTdXphbm5lDQorVmFsY2tlbmJvcmNoLCBMdWNhcyB2YW4NCitWYWxkYW1icmlubywgRnJhbmNlc2NvIGRpDQorVmFsZMOpcyBMZWFsLCBKdWFuIGRlDQorVmFsZW5jaWVubmVzLCBQaWVycmUtSGVucmkgZGUNCitWYWxlbnp1ZWxhIExsYW5vcywgQWxiZXJ0bw0KK1ZhbGV0LCBKb2FuDQorVmFsbGVqbywgQm9yaXMNCitWYWxsb3R0b24sIEbDqWxpeA0KK1ZhbGxzIFN1YmlyYSwgWGF2aWVyDQorVmFsdGF0LCBMb3Vpcw0KK1ZhbiBBa2VuLCBKb3NlcGgNCitWYW4gQWxzdGluZSwgSm9obg0KK1ZhbiBBc3NlbiwgQmVuZWRpY3QgQW50aG9ueQ0KK3ZhbiBCZWVzdCwgQWxiZXJ0dXMNCit2YW4gQnJ1Z2dlbiwgQ29vc2plDQorVmFuIENsZXZlLCBDb3JuZWlsbGUNCit2YW4gZGUgVmVsZGUgSUlJLCBKYW4gSmFuc3ouDQordmFuIGRlciBTY2hhcmR0LCBKb2hhbiBHcmVnb3INCitWYW4gRGVyemVlLCBKYW1lcw0KK1ZhbiBEeWNrLCBTaXIgQW50aG9ueQ0KK3ZhbiBHb2doLCBWaW5jZW50DQordmFuIEhlZW1za2VyayBJLCBFZ2JlcnQNCit2YW4gSGVlbXNrZXJrIElJSSwgRWdiZXJ0DQorVmFuIEhvZXNlbiwgQmV0aA0KK3ZhbiBIb3ZlLCBIdWJlcnR1cw0KK1ZhbiBMYWFyLCBUaW0NCitWYW4gTGFlciwgQWxleGFuZGVyIFRoZW9iYWxkDQordmFuIExvbywgTG91aXMtTWljaGVsDQorVmFuIE5lc3MsIEJlYXRyaWNlIFcuDQorVmFuIFNvbWVyLCBQYXVsDQordmFuIFNwYWVuZG9uY2ssIENvcm5lbGlzDQordmFuIFN0cnksIEFicmFoYW0NCitWYW5kZXJiYW5rLCBKb2huDQorVmFuZGVybHluLCBKb2huDQorVmFubG9vLCBDYXJsZQ0KK1ZhbmxvbywgQ2hhcmxlcyBBbcOpZMOpZSBQaGlsaXBwZQ0KK1Zhbm5pLCBGcmFuY2VzY28NCitWYW5uaSwgTGlwcG8NCitWYW52aXRlbGxpLCBMdWlnaQ0KK1ZhcmdhcywgQWxiZXJ0bw0KK1ZhcmlhbiwgTGVzdGVyIEUuDQorVmFybGV5LCBDb3JuZWxpdXMNCitWYXJsZXksIEYuSC4NCitWYXJsZXksIEpvaG4NCitWYXJsZXksIFdpbGxpYW0gRmxlZXR3b29kDQorVmFybmVsaXMsIEthenlzDQorVmFybywgUmVtZWRpb3MNCitWYXNhcmVseSwgVmljdG9yDQorVmFzYXJpLCBHaW9yZ2lvDQorVmFzY28gZGUgbGEgWmFyemENCitWYXNuZXRzb3YsIFZpa3RvciBNaWtoYWlsb3ZpY2gNCitWYXNzYWxsZXR0bywgUGlldHJvDQorVmFzc2FsbG8sIEFudG9uaW8gTWFyaWENCitWYXV0aWVyLCBCZW4NCitWw6F6cXVleiBEw61heiwgRGFuaWVsDQorVmViZWxsLCBFZHdhcmQNCitWZWNjaGlhLCBQaWV0cm8gZGVsbGENCitWZWNjaGlldHRhDQorVmVkZGVyLCBFbGlodQ0KK1ZlZG92YSwgRW1pbGlvDQorVmVlcmVuZGFlbCwgTmljb2xhZXMgdmFuDQorVmVsYSwgVmluY2Vuem8NCitWZWxhcmRlLCBQYWJsaXRhDQorVmVsYXNjbyBCZWxhdXN0ZWd1aWdvaXRpYSwgUm9zYXJpbyBkZQ0KK1ZlbGFzY28sIEpvc8OpIE1hcsOtYQ0KK1ZlbMOhenF1ZXosIERpZWdvDQorVmVsZGUgSUksIEphbiB2YW4gZGUNCitWZWxkZSB0aGUgRWxkZXIsIFdpbGxlbSB2YW4gZGUNCitWZWxkZSB0aGUgWW91bmdlciwgV2lsbGVtIHZhbiBkZQ0KK1ZlbGRlLCBBZHJpYWVuIHZhbiBkZQ0KK1ZlbGRlLCBFc2FpYXMgdmFuIGRlDQorVmVubmUsIEFkcmlhZW4gUGlldGVyc3ouIHZhbiBkZQ0KK1ZlbnVzdGksIE1hcmNlbGxvDQorVmVyYmVlY2ssIENvcm5lbGlzDQorVmVyYm9lY2tob3ZlbiwgRXVnw6huZQ0KK1ZlcmJydWdnZW4sIEhlbmRyaWNrIEZyYW5zDQorVmVyYnVyZywgSm9Bbm4NCitWZXJjcnV5c3NlLCBKYW4NCitWZXJlbHN0LCBIYXJtYW4NCitWZXJlbHN0LCBNYXJpYQ0KK1ZlcmVsc3QsIFNpbW9uDQorVmVyaGFlY2h0LCBUb2JpYXMNCitWZXJob2VmLCBUb29uDQorVmVyaHVsc3QsIFJvbWJvdXQNCitWZXJrYWRlLCBKYW4NCitWZXJrb2xqZSwgSmFuDQorVmVybWVlciBJSUksIEphbg0KK1Zlcm1lZXIsIEphbg0KK1Zlcm1leWVuLCBKYW4NCitWZXJuZXIsIEVsaXphYmV0aCBPJ05laWxsDQorVmVybmVyLCBGcmVkZXJpY2sgQS4NCitWZXJuZXQsIENhcmxlDQorVmVybmV0LCBDbGF1ZGUtSm9zZXBoDQorVmVybmV0LCBIb3JhY2UNCitWZXJvbmVzZSwgQm9uaWZhY2lvDQorVmVyb25lc2UsIFBhb2xvDQorVmVycm9jY2hpbywgQW5kcmVhIGRlbA0KK1ZlcnNjaHV1ciwgV291dGVydXMNCitWZXJzcHJvbmNrLCBKYW4gQ29ybmVsaXN6Lg0KK1ZlcnN0ZXIsIEZsb3Jpcw0KK1ZlcnR1ZSwgR2VvcmdlDQorVmVzcGlnbmFuaSwgUmVuem8NCitWaWFuaSwgQWxiZXJ0bw0KK1ZpYmVydCwgSmVoYW4gR2Vvcmdlcw0KK1ZpY2VudGUsIEVzdGViYW4NCitWaWNrcmV5LCBSb2JlcnQNCitWaWN0b3JpYSBNYXJ6LCBTYWx2YWRvcg0KK1ZpY3RvcnMsIEphbg0KK1ZpZW4sIEpvc2VwaCBNYXJpZQ0KK1ZpZXN1bGFzLCBSb21hcw0KK1ZpZ2FybnksIEZlbGlwZQ0KK1ZpZ8OpZS1MZWJydW4sIE1hcmllIExvdWlzZSDDiWxpc2FiZXRoDQorVmlnZWxhbmQsIEd1c3Rhdg0KK1ZpZ25hdWQsIEplYW4NCitWaWxsYSwgQ2xhdWRpbw0KK1ZpbGxhYnJpbGxlIHkgUm9uLCBKdWFuIEFsb25zbw0KK1ZpbGxhbGJhIEZsb3JleiwgRGFyw61vDQorVmlsbGVycywgTWFyaWUtRGVuaXNlDQorVmlsbG9uLCBKYWNxdWVzDQorVmluY2VudCwgRnJhbsOnb2lzLUFuZHLDqQ0KK1ZpbmNlbnpvIGRpIENhdGVuYQ0KK1ZpbmNrYm9vbnMsIERhdmlkDQorVmlubmUsIFZpbmNlbnQgTGF1cmVuc3ogdmFuIGRlcg0KK1ZpbnRvbiwgRnJlZGVyaWNrIFBvcnRlcg0KK1Zpb2xhLCBCaWxsDQorVmlvbGEsIEdpYW4gQmF0dGlzdGENCitWaXNjaGVyIHRoZSBFbGRlciwgUGV0ZXINCitWaXNjaGVyIHRoZSBZb3VuZ2VyLCBQZXRlcg0KK1Zpc2NvbnRpLCBFbGlzZXUNCitWaXNobnlha292LCBJdmFuDQorVmlzc2NoZXIsIENsYWVzIEphbnN6Lg0KK1ZpdGFsZSBkYSBCb2xvZ25hDQorVml0dG9yaWEsIEFsZXNzYW5kcm8NCitWaXR1bGxvLCBTZXNvc3RyaXMNCitWaXZhcmluaSwgQWx2aXNlDQorVml2YXJpbmksIEFudG9uaW8NCitWaXZhcmluaSwgQmFydG9sb21lbw0KK1ZsYW1pbmNrLCBNYXVyaWNlIGRlDQorVmxpZWdlciwgU2ltb24gZGUNCitWbGlldCwgSGVuZHJpayBDb3JuZWxpc3ogdmFuIGRlcg0KK1ZvZXQsIEZlcmRpbmFuZA0KK1ZvZ2VsLCBKb3NlcGgNCitWb2lsbGUsIEplYW4tTG91aXMNCitWb2xhaXJlLCBQaWVycmUtSmFjcXVlcw0KK1ZvbGssIERvdWdsYXMNCitWb2xsLCBGLiBVc2hlciBEZQ0KK1ZvbGxtZXIsIEFkb2xmIEZyaWVkcmljaA0KK1ZvbGxvbiwgQW50b2luZQ0KK1ZvbHRlcnJhLCBEYW5pZWxlIGRhDQordm9uIERlZnJlZ2dlciwgRnJhbnoNCit2b24gSGVya29tZXIsIFNpciBIdWJlcnQNCitWb25jaywgSmFuDQorVm9uZHJvdXMsIEphbiBDLg0KK1Zvbm5vaCwgQmVzc2llIFBvdHRlcg0KK1Zvbm5vaCwgUm9iZXJ0DQorVm9yc3Rlcm1hbiB0aGUgRWxkZXIsIEx1Y2FzDQorVm9zLCBDb3JuZWxpcyBkZQ0KK1ZvcywgTWFydGluIGRlDQorVm9zLCBTaW1vbiBkZQ0KK1Zvc21hZXIsIERhbmllbA0KK1Zvc3MsIFBhdWwNCitWb3VldCwgQXViaW4NCitWb3VldCwgU2ltb24NCitWb3Vsa29zLCBQZXRlcg0KK1ZyYW5jeCwgQmFzdGlhZW4NCitWcmFua2VuLCBEdXRjaA0KK1ZyZWRlbWFuIGRlIFZyaWVzLCBIYW5zDQorVnJlbCwgSmFjb2J1cw0KK1ZyZWxhbnQsIFdpbGxlbQ0KK1ZyaWVzLCBBYnJhaGFtIGRlDQorVnJpZXMsIEFkcmlhZW4gZGUNCitWcm9vbSwgQ29ybmVsaXMNCitWcm9vbSwgSGVuZHJpY2sgQ29ybmVsaXN6Lg0KK1ZydWJlbCwgTWlraGFpbA0KK1Z1aWxsYXJkLCDDiWRvdWFyZA0KK1Z1b2x2aW5pbw0KK1dhY2h0ZWwsIEVsbWVyDQorV2FjaHRlbCwgTWFyaW9uIEthdmFuYXVnaA0KK1dhZGRlbGwsIFRlZA0KK1dhZGRlbGwsIFRoZW9kb3JlIEouDQorV2FkbGVpZ2gsIFBldGUNCitXYWRzd29ydGgsIEVkd2FyZA0KK1dhZ2VzLCBCb2INCitXYWdndW5vDQorV2FnbmVyLCBPdHRvDQorV2FpbndyaWdodCwgSm9obg0KK1dhaXRlLCBFbWlseSBCdXJsaW5nDQorV2FrZWxpbiwgUm9sYW5kDQorV2FsZG3DvGxsZXIsIEZlcmRpbmFuZCBHZW9yZw0KK1dhbGRvLCBTYW11ZWwgTG92ZXR0DQorV2FsZG9ycCwgQW50b25pZQ0KK1dhbGUsIFNhbXVlbA0KK1dhbGVzLCBLaXR0eQ0KK1dhbGtlciwgQW50aG9ueQ0KK1dhbGtlciwgRG91Z2xhcw0KK1dhbGtlciwgRnJlZGVyaWNrDQorV2Fsa2VyLCBLYXJhDQorV2Fsa2VyLCBXaWxsaWFtIEEuDQorV2Fsa2xleSwgUGV0ZXINCitXYWxrb3dpdHosIEFicmFoYW0NCitXYWxsLCBCcmlhbg0KK1dhbGwsIEplZmYNCitXYWxsLCBXaWxsaWFtIEFsbGVuDQorV2FsbCwgV2lsbGlhbSBHdXkNCitXYWxsYWNlLCBJYW4NCitXYWxsYWNlLCBKLiBMYXVyaWUNCitXYWxsaXMsIEhlbnJ5DQorV2FsdGVyLCBNYXJ0aGENCitXYWx0ZXJzLCBNaWxlcw0KK1dhbHRlcnMsIFNhbXVlbA0KK1dhbHRvbiwgRWR3YXJkIEFydGh1cg0KK1dhbHRvbiwgSGVucnkNCitXYWx0b24sIEpvaG4gV2hpdGVoZWFkDQorV2FsdHJvdXMsIEhhcnJ5IFdpbHNvbg0KK1dhbmcgQ2h1bmppZQ0KK1dhbmcgRG9uZ2xpbmcNCitXYW5nIEdleWkNCitXYW5nIEh1YWlxaW5nDQorV2FuZyBIdWkNCitXYW5nIEppcWlhbiAoQy5DLiBXYW5nKQ0KK1dhbmcgTWVuZ3FpDQorV2FuZyBTaGVuZ2xpZQ0KK1dhbmcgV2VuDQorV2FuZyBXdXhpZSAoV3VjaXVzIFdvbmcpDQorV2FuZyBYdWV0YW8NCitXYW5nIFlpbmdjaHVuDQorV2FuZyBZdWFuZ2kNCitXYW5nIFl1bg0KK1dhbmcgWmhlbg0KK1dhbmdlcnNreSwgQmFyYmFyYSBQcmF0dA0KK1dhcHBlcnMsIEd1c3RhdmUNCitXYXJkLCBFZHdhcmQgTWF0dGhldw0KK1dhcmQsIEphbWVzDQorV2FyZCwgSm9obiBRdWluY3kgQWRhbXMNCitXYXJkLCBMZXNsaWUNCitXYXJkbGUsIEFydGh1cg0KK1dhcmhvbCwgQW5keQ0KK1dhcmxvdywgSGVyYmVydCBHb3Jkb24NCitXYXJuZXIsIEV2ZXJldHQNCitXYXJuZXIsIE9saW4gTGV2aQ0KK1dhcnJlbiwgSGVucnkNCitXYXJzYWdlciwgSHltYW4NCitXYXJzaGF3c2t5LCBBYnJhaGFtIEcuDQorV2FzZXIsIEFubmENCitXYXNoaW5ndG9uLCBFbGl6YWJldGggRmlzaGVyDQorV2FzaGluZ3RvbiwgVGltb3RoeQ0KK1dhdGFuYWJlIEthemFuDQorV2F0YW5hYmUgU2hpa28NCitXYXRhbmFiZSwgU2FkYW8NCitXYXRlcmhvdXNlLCBKb2huIFdpbGxpYW0NCitXYXRlcmxvbywgQW50aG9uaWUNCitXYXRlcmxvdywgU2lyIEVybmVzdCBBbGJlcnQNCitXYXRlcnMsIEhlcmJlcnQgT2dkZW4NCitXYXRlcnMsIFN1c2FuIEMuDQorV2F0a2lucywgQ2FybGV0b24NCitXYXRzb24sIEhvbWVyDQorV2F0dCwgQWxpc29uDQorV2F0dGVhdSwgSmVhbi1BbnRvaW5lDQorV2F0dGxlcywgVmlyZ2luaWENCitXYXR0cywgR2VvcmdlIEZyZWRlcmljDQorV2F1Z2gsIEZyZWRlcmljayBKdWRkDQorV2F1dGVycywgRW1pbGUNCitXYXksIFRob21hcyBSb2JlcnQNCitXZWFyaW5nLCBHaWxsaWFuDQorV2VhdmVyLCBSb2JlcnQNCitXZWF2ZXIsIFRob21hcw0KK1dlYmIsIEphbWVzDQorV2ViYiwgVG9kZA0KK1dlYmVyLCBDaHJpcw0KK1dlYmVyLCBJZGVsbGUNCitXZWJlciwgSm9obiBQaXRtYW4NCitXZWJlciwgTWF4DQorV2Vic3RlciwgTWVnDQorV2Vic3RlciwgVGhvbWFzDQorV2VlZ2VlDQorV2Vla2VzLCBIZW5yeQ0KK1dlZWtzLCBKYW1lcw0KK1dlZW1zLCBDYXJyaWUgTWFlDQorV2Vlbml4IElJLCBKYW4NCitXZWVuaXgsIEphbiBCYXB0aXN0DQorV2VlcnRzLCBKZWFuLUpvc2VwaA0KK1dlZ2dlbGFuZCwgVGVycnkNCitXZWdtYW4sIFdpbGxpYW0NCitXZWd1ZWxpbiwgSm9obiBSZWluaGFyZA0KK1dlaSBKaW5nc2hhbg0KK1dlaSBKaXVkaW5nDQorV2VpbmJlcmcsIEVtaWxpZSBTaWV2ZXJ0DQorV2VpbmVyLCBMYXdyZW5jZQ0KK1dlaXIsIEp1bGlhbiBBbGRlbg0KK1dlaXIsIFJvYmVydCBXLg0KK1dlaXJvdHRlciwgRnJhbnogRWRtdW5kDQorV2Vpc2Jyb2QsIENhcmwgV2lsaGVsbQ0KK1dlaXNzLCBEYXZpZA0KK1dlaXNzZW5icnVjaCwgSmFuDQorV2Vpc3NlbmJydWNoLCBKb2hhbiBIZW5kcmlrDQorV2Vpc3NtYW4sIEJhcnJ5DQorV2Vpc3dlaWxlciwgQWRhbQ0KK1dlbGNoLCBEZW50b24NCitXZWxsZXIsIFBhdWwNCitXZWxsaXZlciwgTmVpbA0KK1dlbGxzLCBIZW5yeSBUYW53b3J0aA0KK1dlbGxzLCBKb2FubmEgTWFyeQ0KK1dlbGxzLCBMeW50b24NCitXZWx0aSwgQWxiZXJ0DQorV2VuIEJhbw0KK1dlbiBMb3UNCitXZW4gWmhlbmdtaW5nDQorV2VuIFpoZW5taW5nDQorV2VuY2ssIEVybnN0DQorV2VuZGVsLCBUaGVvZG9yZQ0KK1dlbmRvcmYsIEppbQ0KK1dlbmR0LCBXaWxsaWFtDQorV2VuZ2Vucm90aCwgU3Rvdw0KK1dlbnplbCB2b24gT2xtdXR6DQorV2VyZmYsIEFkcmlhZW4gdmFuIGRlcg0KK1dlcm5lciwgQmV0dGluYQ0KK1dlcnRoZWltLCBHYXJ5DQorV2VydGluZ2VyLCBIYW5zDQorV2VydG3DvGxsZXIsIEFkb2xmLVVscmlrDQorV2Vzc2VsLCBCZXNzaWUgSG9vdmVyDQorV2Vzc2VsLCBIZXJtYW4gSC4NCitXZXNzZWxtYW5uLCBUb20NCitXZXN0LCBCZW5qYW1pbg0KK1dlc3QsIEJlbmphbWluIEZyYW5rbGluDQorV2VzdGFsbCwgUmljaGFyZA0KK1dlc3RtYWNvdHQsIEphbWVzIFNoZXJ3b29kDQorV2VzdG9uLCBFZHdhcmQNCitXZXQsIEphY29iIGRlDQorV2V5ZGVuLCBSb2dpZXIgdmFuIGRlcg0KK1dleWVyLCBIZXJtYW5uDQorV2hhbGUsIFJvYmVydCBSLg0KK1doYXJuY2xpZmZlLCBMYWR5DQorV2hlYXRsZXksIENsYXJhDQorV2hlYXRsZXksIEZyYW5jaXMNCitXaGVlbGVyLCBTdGV2ZQ0KK1doZWVsd3JpZ2h0LCBKb3NlcGgNCitXaGVlbHdyaWdodCwgUm9sYW5kDQorV2hldHN0b25lLCBEYW4NCitXaGlzdGxlciwgSmFtZXMgTWNOZWlsbA0KK1doaXRlIDE3NzMtMTc5NCwgQ2hhcmxlcw0KK1doaXRlLCBDaGFybGVzIFdpbGJlcnQNCitXaGl0ZSwgUmFuZHkgTGVlDQorV2hpdGUsIFJvYmVydA0KK1doaXRlaGVhZCwgRnJhbmNlcw0KK1doaXRlbGV5LCBCcmV0dA0KK1doaXRlbWFuLCBFcm5lc3QNCitXaGl0ZXJlYWQsIFJhY2hlbA0KK1doaXRuZXksIEFubmUNCitXaGl0dGxlLCBDaGFybGVzDQorV2hpdHRyZWRnZSwgVGhvbWFzIFdvcnRoaW5ndG9uDQorV2ljYXIsIEplYW4tQmFwdGlzdGUgSm9zZXBoDQorV2lja3MsIE1hcnkNCitXaWVsYW5kLCBKb3ljZQ0KK1dpZW5lciwgUGh5bGxpcw0KK1dpZXJpbmdlbiwgQ29ybmVsaXMgQ2xhZXN6LiB2YW4NCitXaWVydHosIEFudG9pbmUNCitXaWdnaW5zLCBHdXkNCitXaWxiZXIsIEplc3NpZQ0KK1dpbGJlcnQsIFJvYmVydA0KK1dpbGNveCwgTGVzbGllDQorV2lsZGluZywgQWxpc29uDQorV2lsZG1hbiwgSm9obiBSLg0KK1dpbGR0LCBBZG9sZm8NCitXaWxlcywgSXJ2aW5nIFIuDQorV2lsZXksIFdpbGxpYW0NCitXaWxpZ2VsbW8NCitXaWxrZSwgSGFubmFoDQorV2lsa2llLCBSb2JlcnQNCitXaWxraWUsIFNpciBEYXZpZA0KK1dpbGtpbnMsIE1pa2UNCitXaWxsYWVydHMsIEFicmFoYW0NCitXaWxsYXJkLCBBcmNoaWJhbGQgTS4NCitXaWxsZXRzLCBSb2JlcnQNCitXaWxsaWFtcywgQXJjaA0KK1dpbGxpYW1zLCBGcmVkDQorV2lsbGlhbXMsIEh1Z2ggV2lsbGlhbQ0KK1dpbGxpYW1zLCBLZWl0aCBTaGF3DQorV2lsbGlhbXMsIE1hcmdhcmV0IExpbmRzYXkNCitXaWxsaWFtcywgUGF1bGluZSBCbGlzcw0KK1dpbGxpYW1zLCBSb2QNCitXaWxsaWFtcywgV2lsbGlhbQ0KK1dpbGxpYW1zb24sIERhbmllbCBBbGV4YW5kZXINCitXaWxsaW5rLCBDYXJlbA0KK1dpbGxtYW5uLCBNaWNoYWVsIEx1a2FzIExlb3BvbGQNCitXaWxsb3VnaGJ5LCBSb2JlcnQNCitXaWxscywgV2lsbGlhbSBHb3JtYW4NCitXaWxsc29uLCBCYXJiYXJhDQorV2lsbHNvbiwgTWFyeSBBbm4NCitXaWxzb24sIEFuZHJldw0KK1dpbHNvbiwgQmVuamFtaW4NCitXaWxzb24sIENoYXJsZXMgSi5BLg0KK1dpbHNvbiwgR2VvcmdlIFdhc2hpbmd0b24NCitXaWxzb24sIEpvaG4NCitXaWxzb24sIFJpY2hhcmQNCitXaWxzb24sIFdpbGxpYW0gQS4NCitXaWx0b24sIEpvc2VwaA0KK1dpbWFyLCBDaGFybGVzDQorV2luZHVzLCBXaWxsaWFtIExpbmRzYXkNCitXaW5lZ2FyLCBBbm5hDQorV2lua2xlciwgSm9obiBXLg0KK1dpbm9ncmFuZCwgR2FycnkNCitXaW5zb3IsIEphY2tpZQ0KK1dpbnN0YW5sZXksIFdpbGxpYW0NCitXaW50ZXIsIEZyaWVkcmljaA0KK1dpbnRlciwgR2VvcmdlDQorV2ludGVyaGFsdGVyLCBGcmFueiBYYXZpZXINCitXaW50ZXJoYWx0ZXIsIEhlcm1hbm4NCitXaW50ZXJzLCBUZXJyeQ0KK1dpbnRvdXIsIEpvaG4gQ3Jhd2ZvcmQNCitXaXJzdW0sIEthcmwNCitXaXJ0IHZvbiBXaWwsIE5pY29sYXVzDQorV2lydHosIFJvYmVydA0KK1dpdCwgSmFjb2IgZGUNCitXaXRoZXJpbmd0b24sIFdpbGxpYW0gRnJlZGVyaWNrDQorV2l0a2lld2ljeiwgU3RhbmlzbGF3IElnbmFjeQ0KK1dpdGtpbiwgSXNhYWMNCitXaXRraW4sIEplcm9tZSBQYXVsDQorV2l0dGUsIEVtYW51ZWwgZGUNCitXaXR0ZWwsIEdhc3BhciB2YW4NCitXaXR6LCBDb25yYWQNCitXbyBaaGENCitXb2Vocm1hbiwgUmFscGgNCitXb2ljZXNrZSwgUm9uYXUgV2lsbGlhbQ0KK1dvanRraWV3aWN6LCBXaXRvbGQNCitXb2xmLCBIZW5yeQ0KK1dvbGZlLCBNZXllcg0KK1dvbGZlLCBSdXRoIE1pdGNoZWxsDQorV29sZmZvcnQsIEFydHVzDQorV8O2bGZsaSwgQWRvbGYNCitXb2xmcmFtLCBXaWxsaWFtDQorV29sbGFzdG9uLCBKb2huDQorV29sbGhlaW0sIEdlcnQNCitXb29kLCBDaHJpc3RvcGhlcg0KK1dvb2QsIEVsaXphYmV0aCBXeW4NCitXb29kLCBFbGxhIE1pcnJpYW0NCitXb29kLCBHcmFudA0KK1dvb2QsIEpvaG4NCitXb29kLCBUaG9tYXMgV2F0ZXJtYW4NCitXb29kYnVyeSwgQ2hhcmxlcyBIZXJiZXJ0DQorV29vZHJ1ZmYsIEhhbGUNCitXb29kcywgSmFuDQorV29vZHZpbGxlLCBSaWNoYXJkIENhdG9uDQorV29vZHdhcmQsIEdlb3JnZSBNb250YXJkDQorV29vZHdhcmQsIEpvaG4gRG91Z2xhcw0KK1dvb2R3YXJkLCBNYWJlbCBNYXkNCitXb29kd2FyZCwgU3RhbmxleSBXaW5nYXRlDQorV29vZHdhcmQsIFRob21hcw0KK1dvby1oZWUsIENoYQ0KK1dvb2stS3l1bmcsIENob2kNCitXb29sLCBDaHJpc3RvcGhlcg0KK1dvb2xzZXksIENsYXJlbmNlDQorV29vbHNleSwgR3JhY2UNCitXb290dG9uLCBKb2huDQorV29yZXMsIFRoZW9kb3JlDQorV29ybGlkZ2UsIFRob21hcw0KK1dvdHJ1YmEsIEZyaXR6DQorV291dGVycywgUmlrDQorV291d2VybWFuLCBQaGlsaXBzDQorV3JlbiwgU2lyIENocmlzdG9waGVyDQorV3Jlbm4sIENoYXJsZXMNCitXcmlnaHQgb2YgRGVyYnksIEpvc2VwaA0KK1dyaWdodCwgQXV0aW4NCitXcmlnaHQsIERvbg0KK1dyaWdodCwgRnJhbmsgTGxveWQNCitXcmlnaHQsIEphbWVzIEhlbnJ5DQorV3JpZ2h0LCBKb2huIE1pY2hhZWwNCitXcmlnaHQsIFJlZG1vbmQgU3RlcGhlbnMNCitXcmluY2gsIE1hcnkNCitXdGV3YWVsLCBKb2FjaGltIEFudG9uaXN6Lg0KK1d1IEJpZHVhbg0KK1d1IENoYW5nc2hpDQorV3UgQ2hhbmdzaHVvDQorV3UgR3Vhbnpob25nDQorV3UgSHVmYW4NCitXdSBKaWF5b3UNCitXdSBKaW5ndGluZw0KK1d1IExpDQorV3UgWnVvcmVuDQorV3VqY2lrLCBUaGVvDQorV3VydHpidXJnZXIsIFNraXANCitXdXJ6ZWxiYXVlciwgQmVuZWRpa3QNCitXdXRreSwgTWljaGFlbA0KK1d5YW50LCBBbGV4YW5kZXIgSGVsd2lnDQorV3ljaywgSmFuDQorV3ljaywgVGhvbWFzDQorV3lldGgsIEFuZHJldw0KK1d5ZXRoLCBIZW5yaWV0dGUNCitXeWV0aCwgSmFtaWUNCitXeWV0aCwgTi5DLg0KK1d5bmFudHMsIEphbg0KK1d5b24sIEVkd2FyZCBXaWxsaWFtDQorV3lzZSwgQWxleA0KK1hlbm9waGFudG9zDQorWGlhIEd1aQ0KK1hpYW8gSGFpY2h1bg0KK1hpYW8gWXVuY29uZw0KK1h1IEJlaWhvbmcNCitYdSBEYW9uaW5nDQorWHUgTGVpDQorWHUgTGVsZQ0KK1h1LCBHdW8NCitYdWd1DQorWWEgTWluZw0KK1lhbiBIYW4NCitZYW4gSHVpDQorWWFuIExpYmVuDQorWcOhw7FleiwgRmVybmFuZG8NCitZYW5nIEppbmdzaGVuZw0KK1lhbmcgS2V3dQ0KK1lhbmcgS2V5YW5nDQorWWFuZyBMaXpob3UNCitZYW5nIE5hd2VpDQorWWFuZyBTaGFuc2hlbg0KK1lhbmcgWW9uZw0KK1lhbmcgWmhpZ3VhbmcNCitZZSBNaW5yZW4NCitZZWFtZXMsIFdpbGxpYW0gRnJlZGVyaWNrDQorWWVhdHMsIEphY2sgQi4NCitZZWdnc3RlciANCitZZWxsYW5kLCBSYXltb25kDQorWWluIFJvbmdzaGVuZw0KK1lrZW5zLCBGcmFuw6dvaXMNCitZb25nLVlvcCwgSHdhbmcNCitZb3JrZSwgV2lsbGlhbSBHLg0KK1lvcmtlLCBXaWxsaWFtIEhvd2FyZA0KK1lvc2EgQnVzb24NCitZb3NoaWRhLCBIaXJvc2hpDQorWW9zaGl0YWtpLCBOYWthaQ0KK1lvc2hpdG9yYSwgVXRhZ2F3YQ0KK1lvc2hpdG9zaGksIFRzdWtpb2thDQorWW9zaGl0c3V5YSBJLCBJY2hpZWlzYWkNCitZb3NoaXl1a2ksIFJha2tha2VuDQorWW91bmcsIEJsYW1pcmUNCitZb3VuZywgQnJlbnQgS2VlDQorWW91bmcsIE1haG9ucmkgTWFjaW50b3NoDQorWW91bmcsIFN0ZXBoZW4gU2NvdHQNCitZb3VuZy1saW0sIENob2kNCitZb3VuZy1zb28sIFNvbmcNCitZb3VxdWENCitZb3VzZSwgR2F5DQorWXBoYW50aXMsIEdlb3JnZQ0KK1l1IEJlbg0KK1l1IFlvdXJlbg0KK1l1biBHZQ0KK1l1biBTaG91cGluZw0KK1l1bmtlcnMsIEFkamENCitaYWJhbGV0YSBGdWVudGVzLCBSYWZhZWwNCitaYWdhbmVsbGksIEZyYW5jZXNjbw0KK1phaXMsIEdpdXNlcHBlDQorWmFrLCBFdWfDqG5lDQorWmFrYW5pdGNoLCBSb2JlcnQNCitaYWxjZSwgQWxmcmVkbw0KK1phbmd1aWRpLCBKYWNvcG8NCitaYW8gV291LWtpDQorWmFyaXRza3ksIFlvc3NlZg0KK1rDoXJyYWdhLCBBbmdlbA0KK1plaG5hY2tlciwgUnVzcw0KK1plbGlmZiwgQW16aSBFbW1vbnMNCitaZW5hbGUsIEJlcm5hcmRpbm8NCitaZW5nIE1pDQorWmVudHosIFBhdHJpY2sNCitaZXJiZSwgS2FybA0KK1plc2hpbiwgU2hpYmF0YQ0KK1poYSBTaGliaWFvDQorWmhhbiBKaWFuanVuDQorWmhhbmcgRGFxaWFuDQorWmhhbmcgRGF6aHVhbmcNCitaaGFuZyBIb25nDQorWmhhbmcgSHVpDQorWmhhbmcgV2FuZw0KK1poYW5nIFlpDQorWmhhbyBDaHVuZ3hpYW5nDQorWmhhbyBTaG91DQorWmhhbyBZYW5uaWFuDQorWmhhbyBaaGlxaWFuDQorWmhhbyBaaGlxdWFuDQorWmhlbmcgR3VvZ3UNCitaaGVuZyBXdQ0KK1poZW5nIFd1Y2hhbmcNCitaaG9uZyBXZWlzaGVuZw0KK1pob3UgQ2hhbmdqaWFuZw0KK1pob3UgTHV5dW4NCitaaG91IFNodXFpYW8NCitaaG91IFNpY29uZw0KK1podSBEYQ0KK1podSBRaXpoYW4NCitaaHUgUnVpDQorWmh1IFhpbmdodWENCitaaWVtLCBGw6lsaXgNCitaaW5nZywgQWRyaWFuDQorWml2ZXJpLCBBbGJlcnRvDQorWm9iZXJuaWcsIEhlaW1vDQorWm9mZmFueSwgSm9oYW5uDQorWm9wcG8sIE1hcmNvDQorWm9yYWNoLCBNYXJndWVyaXRlIFRob21wc29uDQorWm9yYWNoLCBXaWxsaWFtDQorWm9yaW8sIEdpbGJlcnRvDQorWm9ybiwgQW5kZXJzDQorWm94LCBMYXJyeQ0KK1p1Y2NhcmVsbGksIEZyYW5jZXNjbw0KK1p1Y2Nhcm8sIEZlZGVyaWNvDQorWnVjY2FybywgVGFkZGVvDQorWnVjY2hpLCBBbnRvbmlvDQorWnVjY2hpLCBKYWNvcG8NCitadWNrZXIsIEpvZQ0KK1p1Z25vLCBGcmFuY2VzY28NCitadWxvYWdhLCBJZ25hY2lvDQorWsO8bmR0LCBNYXRoaWFzDQorWsO6w7FpZ2EsIEZyYW5jaXNjbw0KK1p1cmF3c2tpLCBOb3JtDQorWnVyYmFyw6FuLCBGcmFuY2lzY28gZGUNCitadXJiYXLDoW4sIEp1YW4gZGUNCitaw7xybiwgTWljaGFlbA0KK1p5bnNreSwgVG9vdHMNCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfUnVzc2lhbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfUnVzc2lhbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5Zjg3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19SdXNzaWFuLnR4dApAQCAtMCwwICsxLDEzMTAgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor0JvRg9C60LDRiNC10LIsINCY0LPQvtGA0Ywg0JvRjNCy0L7QstC40YcNCitD0LXQvNC10L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCc0LDQs9C+0LzQtdC00L7QstC40YcNCivQm9GD0LrQsNGI0LXQvdC60L4sINCQ0LvQtdC60YHQsNC90LTRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JDQsdCw0LvQutC40L0sINCb0LXQvtC90LjQtCDQmNCy0LDQvdC+0LLQuNGHDQor0JvRg9C60LDRiNC10L3QutC+LCDQlNC80LjRgtGA0LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQkNCx0LTRg9C70LDRgtC40L/QvtCyLCDQoNCw0LzQsNC30LDQvSDQk9Cw0LTQttC40LzRg9GA0LDQtNC+0LLQuNGHDQor0JvRg9C60LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0JDQsdC00YPQu9Cx0LDRgdC40YDQvtCyLCDQnNCw0LPQvtC80LXQtNGC0LDQs9C40YAg0JzQtdC00LbQuNC00L7QstC40YcNCivQm9GD0LrRjNGP0L3QtdC90LrQviwg0KLQsNGC0YzRj9C90LAg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0L3QsA0KK9CQ0LHQtdC70YzRhtC10LIsINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0YPQutGM0Y/QvdC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CQ0LHRgNCw0LzQtdC90LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0YPQutGM0Y/QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkNCx0YDQsNC80L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cb0YPQvdGC0L7QstGB0LrQuNC5LCDQk9C10L7RgNCz0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JDQsdGA0LDQvNC+0LLQuNGHLCDQoNC+0LzQsNC9INCQ0YDQutCw0LTRjNC10LLQuNGHDQor0JvRg9GF0LzQsNC90L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JXQstCz0LXQvdGM0LXQstC40YcNCivQkNCy0LDQu9C40LDQvdC4LCDQotC10LnQvNGD0YDQsNC3INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JvRg9GH0LjQvSwg0JLQuNC60YLQvtGAINCe0YHQuNC/0L7QstC40YcNCivQkNCy0LDQu9C40YjQstC40LvQuCwg0JPRg9GA0LDQvNC4INCU0LbQtdC80LDQu9C+0LLQuNGHDQor0JvRi9C20LjQvSwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkNCy0LTQtdC10LIsINCS0LDQu9C10YDQuNC5INCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Cb0YvQvNCw0YDRjCwg0JvRjtCx0L7QstGMINCc0LjRhdCw0LnQu9C+0LLQvdCwDQor0JvRi9GB0LXQvdC60L4sINCQ0L3QsNGC0L7Qu9C40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CQ0LLQtdC9LCDQn9C10YLRgCDQntC70LXQs9C+0LLQuNGHDQor0JvRi9GB0LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkNCy0LXRgNGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0JvRi9GB0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JvRi9GH0LDQutC+0LIsINCQ0L3QtNGA0LXQuSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JDQs9Cw0L/QvtCyLCDQrtGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cb0Y7QsdC40LzRhtC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkNCz0LDQv9C+0LLQsCwg0JXQu9C10L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9Cb0Y/RiNC60L4sINCu0YDQuNC5INCT0LDQstGA0LjQu9C+0LLQuNGHDQor0JDQs9Cw0YTQvtC90L7Qsiwg0JLQsNC70LXQvdGC0LjQvSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cc0LDQstGA0L7QtNC4LCDQodC10YDQs9C10Lkg0J/QsNC90YLQtdC70LXQtdCy0LjRhw0KK9CQ0LPQsNGE0L7QvdC+0LIsINCV0LPQvtGAINCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cc0LDQs9C+0LzQtdC00L7Qsiwg0JzQsNCz0L7QvNC10LTQsNC70Lgg0JzQsNCz0L7QvNC10LTQvtCy0LjRhw0KK9CQ0LPQtdC10LLQsCwg0JvRjtCx0L7QstGMINCQ0L3QsNGC0L7Qu9GM0LXQstC90LANCivQnNCw0LPQvtC80LXQtNC+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQrtC90YPRgdC+0LLQuNGHDQor0JDQtNCw0LzQuNGI0LjQvSwg0JDQvdCw0YLQvtC70LjQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cc0LDQt9GD0YAsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CQ0LTQsNC80L7Qsiwg0JXQstCz0LXQvdC40Lkg0J7Qu9C10LPQvtCy0LjRhw0KK9Cc0LDQudC+0YDQvtCyLCDQm9C10L7QvdC40LQg0KHQtdGA0LPQtdC10LLQuNGHDQor0JzQsNC60LDRgNC+0LIsINCQ0L3QtNGA0LXQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cc0LDQutCw0YjQvtCyLCDQkNC70YzQsdC10YDRgiDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CQ0LrRgdC10L3QtdC90LrQviwg0J3QuNC60L7Qu9Cw0Lkg0JXQvNC10LvRjNGP0L3QvtCy0LjRhw0KK9Cc0LDQutGB0LDQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JDQutGB0LXQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQnNCw0LrRgdC40LzQvtCyLCDQldCy0LPQtdC90LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CQ0LrRgdC10L3RgtGM0LXQsi3QmtC40LrQsNC70LjRiNCy0LjQu9C4LCDQkNC90LfQvtGA0Lgg0JjQvtGB0LjRhNC+0LLQuNGHDQor0JzQsNC60YHQuNC80L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkNC60YHRjtGH0LjRhiwg0JLQuNC60YLQvtGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cc0LDQu9Cw0LXQsiwg0JDQu9C10LrRgdC10Lkg0J3QuNC60LjRhNC+0YDQvtCy0LjRhw0KK9Cc0LDQu9Cw0YjQtdC90LrQviwg0JjQs9C+0YDRjCDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9CQ0LvQtdC60L/QtdGA0L7Qsiwg0JLQsNCz0LjRgiDQrtGB0YPRhNC+0LLQuNGHDQor0JzQsNC70LrQuNC9LCDQktC40YLQsNC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQkNC70LXQutGB0LDQvdC00YDQvtCyLCDQkNC70LXQutGB0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JzQsNC70YzQutC+0LIsINCY0LPQvtGA0Ywg0J7Qu9C10LPQvtCy0LjRhw0KK9CQ0LvQtdC60YHQtdC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcuDQor0JzQsNC70YzRhtC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CQ0LvQtdC60YHQtdC10LIsINCT0LXQvdC90LDQtNC40Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQnNCw0LvRjNGG0LXQsiwg0JHQvtGA0LjRgSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CQ0LvQtdC60YHQuNC5LCDQktGC0L7RgNC+0Lkg0L/QsNGC0YDQuNCw0YDRhQ0KK9Cc0LDQu9GO0YLQuNC90LAsINCi0LDRgtGM0Y/QvdCwINCT0YDQuNCz0L7RgNGM0LXQstC90LANCivQnNCw0L3QtdCy0LjRhywg0JzQuNGF0LDQuNC7INCS0LvQsNC00LjRgdC70LDQstC+0LLQuNGHDQor0JDQu9C60YHQvdC40YEsINCS0LjQutGC0L7RgCDQmNC80LDQvdGC0L7QstC40YcNCivQnNCw0L3QttC+0YHQvtCyLCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JDQu9GC0YPRhdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNCw0L3QuNC70L7Qsiwg0JLQsNC70LXRgNC40Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQkNC70YLRi9C90LHQsNC10LIsINCW0LDQutGB0LvRi9C6INCa0YPQsNC90YLQsNC10LLQuNGHDQor0JDQu9GE0LXRgNC+0LIsINCW0L7RgNC10YEg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0LDQvdGP0LrQuNC9LCDQodC10YDQs9C10Lkg0JjQvtGB0LjRhNC+0LLQuNGHDQor0JDQu9GM0LzRj9GI0LrQuNC9LCDQktCw0YHQuNC70LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JzQsNGA0LPQtdC70L7Qsiwg0JzQuNGF0LDQuNC7INCS0LjRgtCw0LvRjNC10LLQuNGHDQor0JDQvNCx0LDRgNGG0YPQvNC+0LIsINCV0LLQs9C10L3QuNC5INCQ0YDRiNCw0LrQvtCy0LjRhw0KK9Cc0LDRgNC60LXQu9C+0LIsINCb0LXQvtC90LjQtCDQmNCz0L7RgNC10LLQuNGHDQor0JDQvNC10LvQuNC90LAsINCQ0LvQu9CwINCb0LXQvtC90LjQtNC+0LLQvdCwDQor0JzQsNGA0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JDQvNC10YLQuNGB0YLQvtCyLCDQrdGA0L3QtdGB0YIg0JzQuNGF0LDQudC70L7QstC40YcNCivQnNCw0YDQutC+0LLQsCwg0KDQuNC80LzQsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9CQ0L3QsNC90YzQtdCyLCDQldCy0LPQtdC90LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cc0LDRgNGC0YvQvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQk9Cw0LLRgNC40LvQvtCy0LjRhw0KK9CQ0L3QtNGA0LXQtdCyLCDQkNC70LXQutGB0LXQuSDQn9C10YLRgNC+0LLQuNGHDQor0JzQsNGA0YLRi9C90L7Qsiwg0JHQvtGA0LjRgSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cc0LDRgNGH0LXQvdC60L4sINCf0LXRgtGAINCf0LXRgtGA0L7QstC40YcNCivQkNC90LTRgNC10LXQstCwLCDQndC40L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9Cc0LDRgNGL0YfQtdCyLCDQktGP0YfQtdGB0LvQsNCyINCQ0L3RgtC+0L3QvtCy0LjRhw0KK9CQ0L3QuNGH0LrQuNC9LCDQmNCy0LDQvSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Cc0LDRgdCw0YDRgdC60LjQuSwg0JzQsNGA0Log0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0JDQvdC/0LjQu9C+0LIsINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0JzQsNGB0LvQvtCyLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQkNC90YLQvtC90L7Qsiwg0JjQs9C+0YDRjCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cc0LDRgdC70L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNCw0YHQu9GO0LrQvtCyLCDQrtGA0LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9CQ0L3RgtGD0YTRjNC10LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQnNCw0YHRhdCw0LTQvtCyLCDQkNGB0LvQsNC9ICjQpdCw0LvQuNC0KSDQkNC70LjQtdCy0LjRhw0KK9CQ0L/QsNGA0LjQvdCwLCDQkNC70LXQstGC0LjQvdCwINCS0LjQutGC0L7RgNC+0LLQvdCwDQor0JzQsNGB0YXQsNC00L7Qsiwg0JDRgdC70LDQvSDQkNC70LjQtdCy0LjRhw0KK9CQ0YDQsNC60YfQsNCwLCDQmtCw0YDQsC3QmtGL0YEg0JTQvtC90LPQsNC60L7QstC90LANCivQkNGA0LHQsNGC0L7Qsiwg0JDQu9C10LrRgdC10Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQnNCw0YLQstC40LXQvdC60L4sINCS0LDQu9C10L3RgtC40L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0JDRgNCx0YPQt9C+0LIsINCS0LDQu9C10YDQuNC5INCf0LXRgtGA0L7QstC40YcNCivQnNCw0YLQvtGH0LrQuNC9LCDQrtGA0LjQuSDQodC10LzQtdC90L7QstC40YcNCivQkNGA0LXRhNGM0LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNCw0YLRj9GI0L7Qsiwg0J/QtdGC0YAg0JjQstCw0L3QvtCy0LjRhw0KK9CQ0YDQuNC90LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JDRgNGB0LvQsNC90L7QstCwLCDQpNCw0L3Rg9C30LAg0KjQsNGA0LDRhNC40LXQstC90LANCivQnNCw0YjQuNC90YHQutC40LksINCS0LjQutGC0L7RgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cc0LDRiNC60L7QstGG0LXQsiwg0JzQuNGF0LDQuNC7INCR0L7RgNC40YHQvtCy0LjRhw0KK9CQ0YDRgtGO0YXQvtCyLCDQktC40YLQsNC70LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JzQtdC00LLQtdC00LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQodC10YDQs9C10LXQstC40YcNCivQkNGA0YXQuNC/0L7Qsiwg0KHQtdGA0LPQtdC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cc0LXQtNCy0LXQtNC10LIsINCU0LzQuNGC0YDQuNC5INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQkNGB0LDQtdCyLCDQoNCw0LjRgSDQkdCw0LTRi9Cz0YPRgtC00LjQvdC+0LLQuNGHDQor0JzQtdC00LLQtdC00LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9CQ0YHQutC10YDRhdCw0L3QvtCyLCDQk9Cw0LzQuNC0INCg0LDRiNC40LTQvtCy0LjRhw0KK9Cc0LXQtNCy0LXQtNC10LIsINCf0LDQstC10Lsg0JDQu9C10LrRgdC10LXQstC40YcNCivQkNGB0LvQsNGF0LDQvdC+0LIsINCQ0YHQu9Cw0L3QsdC10Log0JDRhdC80LXQtNC+0LLQuNGHDQor0JzQtdC00LLQtdC00LXQsiwg0KDQvtC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JDRgdGB0LXQutGA0LjRgtC+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQkdC+0YDQuNGB0L7QstC40YcNCivQnNC10LTQstC10LTQtdCyLCDQodC10YDQs9C10Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CQ0YHRgtCw0YTRjNC10LIsINCc0LjRhdCw0LjQuyDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Cc0LXQtNC40LrQvtCyLCDQktC40LrRgtC+0YAg0K/QutC+0LLQu9C10LLQuNGHDQor0JDRgdGC0LDRhNGM0LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9Cc0LXQu9C40LrRjNGP0L0sINCT0LXQvdC90LDQtNC40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQkNGB0YLRgNCw0YXQsNC90LrQuNC90LAsINCi0LDRgtGM0Y/QvdCwINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0JzQtdC70YzQutC+0LIsINCQ0LvQtdC60YHQtdC5INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQkNGD0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Cc0LXQu9GM0L3QuNC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0K7RgNGM0LXQstC40YcNCivQkNGD0YjQtdCyLCDQnNGD0YXQsNGA0LHQtdC6INCY0LfQvNCw0LjQu9C+0LLQuNGHDQor0JzQtdC70YzQvdC40LrQvtCyLCDQmNCy0LDQvSDQmNCy0LDQvdC+0LLQuNGHDQor0JDRg9GI0LXQsiwg0KDRg9GB0LvQsNC9INCh0YPQu9GC0LDQvdC+0LLQuNGHDQor0JzQtdC90YwsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CQ0YXQvNCw0LTQuNC10LIsINCk0LDQvdC40LvRjCDQndCw0LjQu9C+0LLQuNGHDQor0JzQtdGA0LXQvNGP0L3QuNC9LCDQmtC+0L3RgdGC0LDQvdGC0LjQvSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9CQ0YfQsNC70L7Qsiwg0JLQu9Cw0LTQuNGB0LvQsNCyINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JzQtdGA0LrRg9C70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CQ0Y7RiNC40LXQsiwg0JHQvtC70L7RgiDQktCw0L3QtNCw0L3QvtCy0LjRhw0KK9Cc0LXRgNC60YPQu9C+0LIsINCT0LXQvdC90LDQtNC40Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CQ0Y/RhtC60L7Qsiwg0JTQvNC40YLRgNC40Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0JzQtdGA0LrRg9GI0LjQvSwg0J3QuNC60L7Qu9Cw0Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LDQsdC40L0sINCd0LjQutC+0LvQsNC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cc0LjQt9GD0LvQuNC90LAsINCV0LvQtdC90LAg0JHQvtGA0LjRgdC+0LLQvdCwDQor0JHQsNCx0LjRh9C10LIsINCS0LvQsNC00LjQvNC40YAg0KHRgtC10L/QsNC90L7QstC40YcNCivQnNC40LrQuNGC0LDQtdCyLCDQkNCx0LTRg9C70LDRhSDQmtCw0YHQsdGD0LvQsNGC0L7QstC40YcNCivQkdCw0LHQuNGH0LXQsiwg0JjQs9C+0YDRjCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0LDQsdGD0YDQuNC9LCDQodC10YDQs9C10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNC40LvQvtGB0LXRgNC00L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JHQsNCx0YPRhSwg0JvQsNGA0LjRgdCwINCS0LvQsNC00LjQvNC40YDQvtCy0L3QsA0KK9Cc0LjQvdCw0LrQvtCyLCDQktC40LrRgtC+0YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQkdCw0LPQsNGD0YLQtNC40L3QvtCyLCDQk9Cw0LHQtNGD0LvQstCw0YXQuNC0INCT0LjQu9GM0LzRg9GC0LTQuNC90L7QstC40YcNCivQnNC40L3QutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0LDQs9C70LDQuSwg0JzQsNGA0LDRgiDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Cc0LjRgNC30L7QtdCyLCDQk9Cw0YHQsNC9INCR0L7RgNC40YHQvtCy0LjRhw0KK9CR0LDQttC10L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNC40YDQvtC90L7Qsiwg0JLQsNC70LXRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LDQt9GL0LvQtdCy0LAsINCi0LDQvNCw0YDQsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9Cc0LjRgNC+0L3QvtCyLCDQktC40LrRgtC+0YAg0J/QuNC80LXQvdC+0LLQuNGHDQor0JHQsNC60LDRgtC40L0sINCS0LDQtNC40Lwg0JLQuNC60YLQvtGA0L7QstC40YcNCivQnNC40YDQvtC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CR0LDQu9Cw0LrRiNC40L0sINCf0LDQstC10Lsg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNC40YDQvtC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JHQsNC70LDQu9Cw0LXQsiwg0JLRj9GH0LXRgdC70LDQsiDQldGE0LjQvNC+0LLQuNGHDQor0JzQuNGA0L7QvdC+0LIsINCe0LvQtdCzINCe0YDQtdGB0YLQvtCy0LjRhw0KK9CR0LDQu9GC0LjQvSwg0K3QtNGD0LDRgNC0INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JzQuNGB0L3QuNC6LCDQkdC+0YDQuNGBINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQkdCw0YDQsNCx0LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQnNC40YLQuNC9LCDQodC10YDQs9C10Lkg0JPQtdGA0LDRgdC40LzQvtCy0LjRhw0KK9CR0LDRgNCw0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0LjRgtC40L3QsCwg0JTQsNGA0YzRjyDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9CR0LDRgNCw0L3QvtCyLCDQktCw0LvQtdGA0LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JzQuNGC0LrQvtCy0LAsINCi0LDRgtGM0Y/QvdCwINCg0L7RgdGC0LjRgdC70LDQstC+0LLQvdCwDQor0JHQsNGA0LjQtdCyLCDQnNCw0YDQsNGCINCc0LDQvdGB0YPRgNC+0LLQuNGHDQor0JzQuNGC0YDQvtGE0LDQvdC+0LIsINCQ0LvQtdC60YHQtdC5INCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9CR0LDRgNC60LDRiNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQn9C10YLRgNC+0LLQuNGHDQor0JzQuNGC0YDQvtGF0LjQvSwg0KHQtdGA0LPQtdC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CR0LDRgNGB0YPQutC+0LIsINCc0LjRhdCw0LjQuyDQmNCy0LDQvdC+0LLQuNGHDQor0JzQuNGC0Y7QutC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CR0LDRgNGL0YjQtdCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQnNC40YLRj9C10LIsINCY0LLQsNC9INCY0LLQsNC90L7QstC40YcNCivQkdCw0YDRi9GI0L3QuNC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CR0LDRgdCw0LXQsiwg0KjQsNC80LjQu9GMINCh0LDQu9C80LDQvdC+0LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JDQu9C10LrRgdC10Lkg0K7RgNGM0LXQstC40YcNCivQkdCw0YHQuNC9LCDQldGE0LjQvCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQktC40LrRgtC+0YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CR0LDRgtCw0LPQsNC10LIsINCQ0LvQtdC60YHQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JLQuNC60YLQvtGAINCd0LjQutC40YLQvtCy0LjRhw0KK9CR0LDRgtGD0YDQuNC9LCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQkdCw0YPRjdGALCDQktC70LDQtNC40LzQuNGAINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CR0LDRiNC80LDRh9C90LjQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JXQstCz0LXQvdC40Lkg0K3QtNGD0LDRgNC00L7QstC40YcNCivQkdCw0Y7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CR0LXQt9Cx0L7RgNC+0LTQvtCyLCDQndC40LrQvtC70LDQuSDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQkdC10LfQstC10YDRhdC40LksINCh0LXRgNCz0LXQuSDQpNC10LTQvtGA0L7QstC40YcNCivQnNC40YXQsNC50LvQvtCy0LAsINCt0LvRjNC80LjRgNCwINCT0LXRgNC80LDQvdC+0LLQvdCwDQor0JHQtdC30LvQtdC/0LrQuNC90LAsINCb0Y7QtNC80LjQu9CwINCk0LXQtNC+0YDQvtCy0L3QsA0KK9Cc0LjRhdCw0LvQutC+0LIsINCd0LjQutC40YLQsCDQodC10YDQs9C10LXQstC40YcNCivQkdC10LrQtdGC0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LTRgNC10LXQstC40YcNCivQnNC40YXQsNC70LrQvtCyLdCa0L7QvdGH0LDQu9C+0LLRgdC60LjQuSwg0JDQvdC00YDQvtC9INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CR0LXQutC70LXQvNC40YnQtdCy0LAsINCe0LvRjNCz0LAg0JDQu9C10LrRgdC10LXQstC90LANCivQnNC40YXQtdC10LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cc0LjRiNC40L0sINCS0LjQutGC0L7RgCDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9Cc0L7QuNGB0LXQtdCyLCDQkdC+0YDQuNGBINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JzQvtC40YHQtdC10LLQsCwg0JLQtdGA0L7QvdC40LrQsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQnNC+0L3QsNGB0YLRi9GA0YHQutC40LksINCc0LjRhdCw0LjQuyDQm9GM0LLQvtCy0LjRhw0KK9CR0LXQu9C+0LfQtdGA0YbQtdCyLCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JzQvtGA0L7Qt9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KLQuNC80L7RhNC10LXQstC40YcNCivQkdC10LvQvtC90L7Qs9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNC+0YDQvtC30L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cc0L7RgNC+0LfQvtCyLCDQntC70LXQsyDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0LXQu9GP0LXQsiwg0KHQtdGA0LPQtdC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JzQvtGA0YnQsNC60L7QstCwLCDQotCw0LzQsNGA0LAg0JPQtdC+0YDQs9C40LXQstC90LANCivQkdC10LvRj9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXQvNC10L3QvtCy0LjRhw0KK9Cc0L7RgdGC0L7QstC+0LksINCf0LXRgtGAINCf0LXRgtGA0L7QstC40YcNCivQkdC10L3QtNGD0LrQuNC00LfQtSwg0JrQsNGF0LAg0JDQstGC0LDQvdC00LjQu9C+0LLQuNGHDQor0JzQvtGI0L3Rj9C60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JHQtdC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQnNCw0YLQstC10LXQstC40YcNCivQnNGD0LrQvtC80LXQu9GMLCDQktC70LDQtNC40LzQuNGAINCY0LfRj9Cy0LjRhw0KK9CR0LXRgNC00L3QuNC60L7QstCwLCDQndC40L3QsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQnNGD0LvQsNC00LbQsNC90L7Qsiwg0KjQvtC0INCh0LDQuNC00L7QstC40YcNCivQnNGD0YDQsNCy0LvQtdC90LrQviwg0KHQtdGA0LPQtdC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JHQtdGA0LXQt9C+0LLRgdC60LjQuSwg0JHQvtGA0LjRgSDQkNCx0YDQsNC80L7QstC40YcNCivQnNGD0YHQsNC70LDRgtC+0LIsINCl0LDRgdCw0L0g0JDQu9Cw0YHRhdCw0L3QvtCy0LjRhw0KK9CR0LXRgNC10YHRgtC+0LLQvtC5LCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0YPRgdCw0YLQvtCyLCDQnNC40YXQsNC40Lsg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LXRgdC/0LDQu9C+0LIsINCu0YDQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JzRg9GF0LAsINCS0LjRgtCw0LvQuNC5INCf0LXRgtGA0L7QstC40YcNCivQkdC10YHRgdCw0YDQsNCx0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0J3QsNC30LDRgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Cd0LDQt9Cw0YDRh9GD0LosINCQ0LvQtdC60YHQsNC90LTRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JHQuNCz0L3QvtCyLCDQoNCw0LzQuNC70Ywg0JjQvNCw0LzQsNCz0LfQsNC80L7QstC40YcNCivQndCw0LfQtNGA0LDRgtC10L3QutC+LCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JHQuNC60LDQu9C+0LLQsCwg0J3QsNC00LXQttC00LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQkdC40L3QtNGO0LrQvtCyLCDQndC40LrQvtC70LDQuSDQk9Cw0LLRgNC40LvQvtCy0LjRhw0KK9Cd0LDQudGH0YPQutC+0LLQsCwg0KHQstC10YLQu9Cw0L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0J3QsNC50YjRg9C70YwsINCS0LjRgtCw0LvQuNC5INCQ0YDQutCw0LTRjNC10LLQuNGHDQor0JHQuNGA0Y7QutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQndCw0YDQvtC70LjQvSwg0JzQuNGF0LDQuNC7INCi0LjRhdC+0L3QvtCy0LjRhw0KK9CR0LjRgNGO0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQndCw0YDRg9GB0L7QstCwLCDQm9GO0LTQvNC40LvQsCDQkdC+0YDQuNGB0L7QstC90LANCivQkdC40YfQtdC70LTQtdC5LCDQmtCw0LDQtNGL0YAt0J7QvtC7INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QsNGF0LzQsNC90L7QstC40YcsINCf0LXRgtGAINCQ0LHRgNCw0LzQvtCy0LjRhw0KK9CR0LvQsNCz0L7QstC+0LvQuNC9LCDQodC10YDQs9C10Lkg0JXQstCz0LXQvdGM0LXQstC40YcNCivQndC10LLQtdGA0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cd0LXQstC30LvQuNC9LCDQm9C10L7QvdC40LQg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JHQvtCz0LDRgtC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J3QtdCy0LfQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCT0LvQtdCx0L7QstC40YcNCivQkdC+0LPQsNGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0LvQtdC90YLQuNC90L7QstC40YcNCivQndC10LTQtdC70LjQvSwg0JPQtdC90L3QsNC00LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0JHQvtCz0LTQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cd0LXQtNC+0YjQuNCy0LjQvSwg0JLRj9GH0LXRgdC70LDQsiDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CR0L7Qs9C00LDQvdC+0LLQsCwg0JXQu9C10L3QsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Cd0LXQtdC70L7Qsiwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdC+0LPQtNCw0L3Rh9C40LrQvtCyLCDQodC10YDQs9C10Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQndC10LrRgNCw0YHQvtCyLCDQm9C10L7QvdC40LQg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdC+0LPQvtC80L7Qu9C+0LIsINCe0LvQtdCzINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QtdC60YDRg9GC0LXQvdC60L4sINCS0LjQutGC0L7RgCDQrtGA0YzQtdCy0LjRhw0KK9CR0L7QttC10LTQvtC80L7QstCwLCDQk9Cw0LvQuNC90LAg0JrQu9Cw0LLQtNC40LXQstC90LANCivQndC10LzRhtC+0LIsINCR0L7RgNC40YEg0JXRhNC40LzQvtCy0LjRhw0KK9CR0L7QudC60L4sINCS0LDQtNC40Lwg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Cd0LXRgdGC0LXRgNC10L3QutC+LCDQotCw0YLRjNGP0L3QsCDQk9C10L3QvdCw0LTRjNC10LLQvdCwDQor0JHQvtC50LrQviwg0JLRj9GH0LXRgdC70LDQsiDQkNC90LTRgNC10LXQstC40YcNCivQndC10YHRgtC10YDQvtCyLCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CR0L7QudC60L4sINCc0LDQutGB0LjQvCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQndC10YPQvNGL0LLQsNC60LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCv0LrQvtCy0LvQtdCy0LjRhw0KK9Cd0LXRh9Cw0LXQsiwg0JDQvdC00YDQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JHQvtC50YbQtdCyLCDQkNC90LDRgtC+0LvQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J3QtdGJ0LDQtNC40L0sINCQ0L3QtNGA0LXQuSDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0JHQvtC60L7QstC40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQndC40LPQutC+0LXQsiwg0KHQtdGA0LPQtdC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JHQvtC70LTRi9GA0LXQsiwg0K7RgNC40Lkg0K7RgNGM0LXQstC40YcNCivQndC40LrQuNGC0LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQkdC+0LvRjNGI0LDQutC+0LIsINCQ0LvQtdC60YHQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QuNC60LjRgtC40L0sINCQ0L3QtNGA0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQkdC+0LvRjNGI0LDQutC+0LIsINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J3QuNC60LjRgtC40L0sINCS0LDQu9C10L3RgtC40L0g0JjQstCw0L3QvtCy0LjRhw0KK9CR0L7Qu9GM0YjQsNC60L7Qsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cd0LjQutC40YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCf0LXRgtGA0L7QstC40YcNCivQkdC+0L3QtNCw0YDQtdCyLCDQk9GA0LjQs9C+0YDQuNC5INCh0LXQvNC10L3QvtCy0LjRhw0KK9Cd0LjQutC40YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0J3QuNC60LjRgtGH0YPQuiwg0JjQstCw0L0g0JjQs9C90LDRgtGM0LXQstC40YcNCivQkdC+0L7RgSwg0JPQtdC+0YDQs9C40Lkg0JLQsNC70LXQvdGC0LjQvdC+0LLQuNGHDQor0J3QuNC60LjRhNC+0YDQtdC90LrQviwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdC+0YDQuNGB0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQndC40LrQuNGE0L7RgNC+0LIsINCh0LXRgNCz0LXQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cd0LjQutC+0LvQsNC10LIsINCQ0LvQtdC60YHQtdC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JHQvtGA0LjRgdC+0LPQu9C10LHRgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LPQvtGA0LXQstC40YcNCivQndC40LrQvtC70LDQtdCyLCDQkNC90LTRgNC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CR0L7RgNC+0LLQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0KHQtdC80LXQvdC+0LLQuNGHDQor0J3QuNC60L7Qu9Cw0LXQsiwg0JzQuNGF0LDQuNC7INCV0YTQuNC80L7QstC40YcNCivQkdC+0YDQvtCy0L7QuSwg0JrQvtC90YHRgtCw0L3RgtC40L0g0J3QsNGC0LDQvdC+0LLQuNGHDQor0J3QuNC60L7Qu9Cw0LXQstGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCu0YDRjNC10LLQuNGHDQor0JHQvtGA0L7QtNCw0LXQsiwg0JLQsNC70LXRgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQndC40LrQvtC70L7Qs9C+0YDRgdC60LjQuSwg0JLQsNC70LXRgNC40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CR0L7RgNC+0LTQuNC9LCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cd0LjQutC+0L3QvtCyLCDQktGP0YfQtdGB0LvQsNCyINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QuNC60YPQu9C40L0sINCS0LDQu9C10YDQuNC5INCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQkdC+0YDRidC10LIsINCS0LDQu9C10YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0J3QuNC60YPQu9C40L0sINCu0YDQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CR0L7RgdGF0L7Qu9C+0LIsINCh0LXRgNCz0LXQuSDQodC10LzQtdC90L7QstC40YcNCivQndC40Y/Qt9C+0LIsINCh0LDQv9Cw0YDQvNGD0YDQsNGCINCQ0YLQsNC10LLQuNGHDQor0JHQvtGH0LDRgNC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cd0L7QstC40LrQvtCyLCDQntC70LXQsyDQmNCy0LDQvdC+0LLQuNGHDQor0JHQvtGH0LjQvSwg0JvQtdC+0L3QuNC0INCQ0YDQvdC+0LvRjNC00L7QstC40YcNCivQndC+0LLQvtC00LLQvtGA0YHQutCw0Y8sINCS0LDQu9C10YDQuNGPINCY0LvRjNC40L3QuNGH0L3QsA0KK9CR0YDQsNCz0LjQvdGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0J/QsNCy0LvQvtCy0LjRhw0KK9Cd0L7QttC40LrQvtCyLCDQrtGA0LjQuSDQkNCx0YDQsNC80L7QstC40YcNCivQkdGA0LDRgtC40YnQtdCyLCDQmNCz0L7RgNGMINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J3QvtGB0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JHRgNC10LLQvdC+0LIsINCR0L7RgNC40YEg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Ce0LHQvtC70LXQvdGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0JzQuNGC0YDQvtGE0LDQvdC+0LLQuNGHDQor0JHRgNGD0YHQvdC40LrQuNC9LCDQndC40LrQvtC70LDQuSDQrtGA0YzQtdCy0LjRhw0KK9Ce0LLRh9C10L3QutC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JjQstCw0L3QvtCy0LjRhw0KK9CR0YDRg9GB0L3QuNGG0YvQvSwg0K7RgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQntCy0YfQuNC90L3QuNC60L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkdGA0YvQvdGG0LDQu9C+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQntC30LXRgNC+0LIsINCS0LjQutGC0L7RgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ce0LnQutC40L3QsCwg0JfQvtGPINCd0LjQutC+0LvQsNC10LLQvdCwDQor0JHRgNGL0L3RhtCw0LvQvtCyLCDQrtGA0LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0J7QudC90LLQuNC0LCDQk9GA0LjQs9C+0YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JHRg9Cz0LXRgNCwLCDQnNC40YXQsNC40Lsg0JXQstCz0LXQvdGM0LXQstC40YcNCivQntC70LXQudC90LjQuiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JHRg9C00LDQttCw0L/QvtCyLCDQodC10YDQs9C10Lkg0J/Rg9GA0LHRg9C10LLQuNGHDQor0J7Qu9C10LnQvdC40LosINCb0Y7QsdC+0LLRjCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9Ce0LvRjNGI0LDQvdGB0LrQuNC5LCDQlNC80LjRgtGA0LjQuSDQktCw0LTQuNC80L7QstC40YcNCivQkdGD0LrQsNGC0L4sINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0J7QvtGA0LbQsNC6LCDQqNC10YDQuNCzLdC+0L7QuyDQlNC40LfQuNC20LjQutC+0LLQuNGHDQor0JHRg9C70LDQstC40L3QvtCyLCDQktCw0LTQuNC8INCV0LLQs9C10L3RjNC10LLQuNGHDQor0J7RgNC00LbQvtC90LjQutC40LTQt9C1LCDQmNC+0YHQuNGEINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JHRg9C70LPQsNC6LCDQktC70LDQtNC40LzQuNGAINCR0L7RgNC40YHQvtCy0LjRhw0KK9Ce0YDQu9C+0LIsINCS0LjQutGC0L7RgCDQn9C10YLRgNC+0LLQuNGHDQor0J7RgNC70L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LTRgNC10LXQstC40YcNCivQkdGD0L3QuNGHLCDQn9Cw0LLQtdC7INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQntGA0LvQvtCy0LAsINCh0LLQtdGC0LvQsNC90LAg0K7RgNGM0LXQstC90LANCivQkdGD0YDQsdGD0LvQuNGBLCDQk9C10L3QvdCw0LTQuNC5INCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0J7RgdC80LDQtdCyLCDQkNC80LjQvSDQkNGF0LzQtdC00L7QstC40YcNCivQkdGD0YDQtNGD0LrQvtCyLCDQn9Cw0LLQtdC7INCi0LjQvNC+0YTQtdC10LLQuNGHDQor0J7RgdC90L7QstC90LDRjywg0LTQtdGP0YLQtdC70YzQvdC+0YHRgtGMOg0KK9CR0YPRgNC10L3QuNC9LCDQktC70LDQtNC40LzQuNGAINCQ0YDRgdC10L3RjNC10LLQuNGHDQor0J7RgdGC0LDQu9GM0YHQutC40LksINCU0LzQuNGC0YDQuNC5INCS0YHQtdCy0L7Qu9C+0LTQvtCy0LjRhw0KK9Ce0YHRgtCw0L3QuNC90LAsINCd0LjQvdCwINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0JHRg9GA0LrQvtCyLCDQodC10YDQs9C10Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdGD0YDQu9GD0YbQutC40LksINCu0YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQn9Cw0LLQu9C+0LIsINCd0LjQutC+0LvQsNC5INCQ0LvQtdC60YHQsNC90LRw0L7QstC40YcNCivQkdGD0YLQsNC10LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0LDQstC70L7QstGB0LrQuNC5LCDQk9C70LXQsSDQntC70LXQs9C+0LLQuNGHDQor0JHRg9GC0L7Qsiwg0JXQstCz0LXQvdC40Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQkdGD0YfQtdC90LrQvtCyLCDQldCy0LPQtdC90LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0YPRiNC80LjQvSwg0JXQstCz0LXQvdC40Lkg0JLQuNC60YLQvtGA0L7QstC40YcNCivQn9Cw0LvRjNGH0LXQstGB0LrQuNC5LCDQkNC90LTRgNC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0LDQvNGE0LjQu9C+0LLQsCwg0K3Qu9C70LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQkdGL0LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cf0LDQvdCw0YDQuNC9LCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CR0YvQutC+0LIsINCg0L7Qu9C70LDQvSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0J/QsNC90LjQvSwg0JLQuNC60YLQvtGAINCV0LLQs9C10L3RjNC10LLQuNGHDQor0JHRi9C70LXQstGB0LrQuNC5LCDQn9Cw0LLQtdC7INCT0LXQvdC90LDQtNGM0LXQstC40YcNCivQn9Cw0L3QutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KHQtdC80LXQvdC+0LLQuNGHDQor0JHRi9GB0YLRgNC40YbQutCw0Y8sINCt0LvQuNC90LAg0JDQstGA0LDQsNC80L7QstC90LANCivQn9Cw0L3QutGA0LDRgtC+0LIt0KfQtdGA0L3Ri9C5LCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdGL0YHRgtGA0L7Qsiwg0KHQtdGA0LPQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/QsNC90YHQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JPQtdC+0YDQs9C40LXQstC40YcNCivQkdGL0YfQutC+0LIsINCQ0L3QtNGA0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QsNC90YTQuNC70L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CS0LDQstC40LvQvtCyLCDQkNC90LTRgNC10Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cf0LDQvdGE0LjQu9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0LDQstC40LvQvtCyLCDQodGC0LDQvdC40YHQu9Cw0LIg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J/QsNC90YzQutC40L0sINCS0Y/Rh9C10YHQu9Cw0LIg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JLQsNCz0LjQvSwg0JLQsNC70LXRgNC40Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0J/QsNGA0LDQtNC40LcsINCQ0LvQtdC60YHQsNC90LTRgCDQm9Cw0LfQsNGA0LXQstC40YcNCivQktCw0LnQvdGI0YLQvtC6LCDQodC10LzQtdC9INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J/QsNGA0LDQvNC+0L3QvtCy0LAsINCi0LDRgtGM0Y/QvdCwINCS0LvQsNC00LjQvNC40YDQvtCy0L3QsA0KK9CS0LDQutGD0LvQtdC90LrQviwg0JzQuNGF0LDQuNC7INCu0YDRjNC10LLQuNGHDQor0J/QsNGA0LjQvdC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0KHQtdC80LXQvdC+0LLQuNGHDQor0JLQsNGA0LXQvdC90LjQutC+0LIsINCS0LDQu9C10L3RgtC40L0g0JjQstCw0L3QvtCy0LjRhw0KK9CS0LDRgNC90LDQstGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J/QsNGA0YjQsNC60L7Qsiwg0K7RgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktCw0YDRgtCw0LfQsNGA0L7QstCwLCDQm9GO0LTQvNC40LvQsCDQodGC0LXQv9Cw0L3QvtCy0L3QsA0KK9Cf0LDRgdGC0YPRhdC+0LIsINCR0L7RgNC40YEg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktCw0YHQuNC70YzQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0LHQtNGD0LDQu9C40LXQstC40YcNCivQn9Cw0YLRgNGD0YjQtdCyLCDQndC40LrQvtC70LDQuSDQn9C70LDRgtC+0L3QvtCy0LjRhw0KK9Cf0LDRiNGD0YLQviwg0JLQu9Cw0LTQuNC80LjRgCDQoNC+0YHRgtC40YHQu9Cw0LLQvtCy0LjRhw0KK9CS0LDRgdC40LvRjNC10LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cf0LXRgNC80LjQvdC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktCw0YXRgNGD0LrQvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQn9C10YLQvtGI0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JLQtdC00LXRgNC90LjQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0J/QsNCy0LvQvtCy0LjRhw0KK9Cf0LXRgtGA0LXQvdC60L4sINCh0LXRgNCz0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CS0LXQtNC10YDQvdC40LrQvtCyLCDQndC40LrQvtC70LDQuSDQotGA0L7RhNC40LzQvtCy0LjRhw0KK9Cf0LXRgtGA0LjQuiwg0JDQu9C10LrRgdCw0L3QtNGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQktC10L3Qs9C10YDQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9Cf0LXRgtGA0L7Qsiwg0JDQvdC00YDQtdC5INCu0YDRjNC10LLQuNGHDQor0JLQtdC90LPQtdGA0L7QstGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0JTQvNC40YLRgNC40LXQstC40YcNCivQn9C10YLRgNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0LXQv9GA0LXQsiwg0JDRgNC60LDQtNC40Lkg0KTQuNC70LjQvNC+0L3QvtCy0LjRhw0KK9Cf0LXRgtGA0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JLQtdGA0LXRidCw0LPQuNC9LCDQktC40LrRgtC+0YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J/QtdGC0YDQvtCyLCDQntC70LXQsyDQktCw0LTQuNC80L7QstC40YcNCivQktC10YDQvdC40LPQvtGA0LAsINCS0LvQsNC00LjQvNC40YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0J/QtdGC0YDQvtCyLCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQktC10YDRhdC+0LLRgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCc0LDRgNC60L7QstC40YcNCivQktC10YDRiNC40L3QuNC9LCDQn9Cw0LLQtdC7INCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/QtdGF0YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JLQtdGB0LXQu9C60LjQvSwg0J/QsNCy0LXQuyDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cf0LXRiNC60L7Qsiwg0JLQuNC60YLQvtGAINCf0LXRgtGA0L7QstC40YcNCivQn9C40LLQvdC10L3QutC+LCDQktCw0LvQtdC90YLQuNC90LAg0J3QuNC60L7Qu9Cw0LXQstC90LANCivQktC10YfQutCw0YHQvtCyLCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QuNC70LjQv9C10L3QutC+LCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQktC10YjQvdGP0LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9GM0LHQtdGA0YLQvtCy0LjRhw0KK9Cf0LjQu9C40L/QtdGI0LjQvSwg0J3QuNC60L7Qu9Cw0Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0LjQs9C00L7RgNGH0LjQuiwg0JXQu9C10L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9Cf0LjRgdC60YPQvSwg0J3QuNC60L7Qu9Cw0Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQn9C40Y/RiNC10LLQsCwg0JvQsNGA0LjRgdCwINCY0LLQsNC90L7QstC90LANCivQktC40LrRgtC+0YDQvtCyLCDQktCw0LvQtdGA0YzRj9C9INCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/Qu9Cw0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCY0LPQvdCw0YLRjNC10LLQuNGHDQor0JLQuNC70LjQvdCx0LDRhdC+0LIsINCT0LXQvtGA0LPQuNC5INCS0LDQtNC40LzQvtCy0LjRhw0KK9Cf0LvQsNGC0L7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CS0LjQvdC+0LPRgNCw0LTQvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0J/Qu9Cw0YLQvtC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CS0LjQvdC+0LPRgNCw0LTQvtCyLCDQndC40LrQvtC70LDQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQn9C70LXRgtC90LXQstCwLCDQotCw0LzQsNGA0LAg0JLQsNGB0LjQu9GM0LXQstC90LANCivQktC40L3QvtCz0YDQsNC00L7Qsiwg0J/QsNCy0LXQuyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQn9C70LjQtdCyLCDQoNGD0YHQu9Cw0L0g0KHRg9C70YLQsNC90L7QstC40YcNCivQktC40YLRgNGD0LosINCd0LjQutC+0LvQsNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0J/Qu9C+0YLQvdC40LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQuNGI0L3Rj9C60L7Qsiwg0JLQuNC60YLQvtGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQn9C+0LHQtdC00LjQvdGB0LrQsNGPLCDQm9GO0LTQvNC40LvQsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9CS0LjRiNC90Y/QutC+0LIsINCS0LjRgtCw0LvQuNC5INCV0LLQs9C10L3RjNC10LLQuNGHDQor0J/QvtCy0L7QtNGL0YDRjCwg0KHQtdGA0LPQtdC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JLQu9Cw0LTQuNGB0LvQsNCy0LvQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0J/QsNCy0LvQvtCy0LjRhw0KK9Cf0L7QstC+0LvRj9C10LIsINCS0LvQsNC00LjQvNC40YAg0JzQuNGC0YDQvtGE0LDQvdC+0LLQuNGHDQor0JLQu9Cw0YHQvtCyLCDQkNC70LXQutGB0LXQuSDQpNC10LvQuNC60YHQvtCy0LjRhw0KK9Cf0L7QtNCx0LXRgNC10LfQutC40L0sINCQ0LvQtdC60YHQtdC5INCY0LLQsNC90L7QstC40YcNCivQktC70LDRgdC+0LIsINCS0LDQu9C10L3RgtC40L0g0KHRgtC10L/QsNC90L7QstC40YcNCivQn9C+0LTQs9C+0YDQvdC+0LIsINCd0LjQutC+0LvQsNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JLQu9Cw0YHQvtCyLCDQrtGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cf0L7QtNC60L7Qu9C30LjQvSwg0JXQstCz0LXQvdC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQn9C+0LTQvtC/0YDQuNCz0L7RgNCwLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQu9Cw0YHQvtCy0LAsINCQ0L3QvdCwINCf0LXRgtGA0L7QstC90LANCivQn9C+0LTRg9GE0LDQu9C+0LIsINCd0LjQutC+0LvQsNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JLQvtC10LLQvtC00LjQvSwg0JLQsNC00LjQvCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cf0L7Qu9C00L3QuNC60L7Qsiwg0K7RgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CS0L7QudC60L7Qsiwg0JDQvdC00YDQtdC5INCY0LLQsNC90L7QstC40YcNCivQn9C+0LvQtdCy0LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J/QsNCy0LvQvtCy0LjRhw0KK9CS0L7Qu9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J/QvtC70LXQttCw0LXQsiwg0JvQtdC+0L3QuNC0INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQn9C+0LvRgtCw0LLRh9C10L3QutC+LCDQk9C10L7RgNCz0LjQuSDQodC10YDQs9C10LXQstC40YcNCivQktC+0LvQutC+0LIsINCS0LDRgdC40LvQuNC5INCf0LXRgtGA0L7QstC40YcNCivQn9C+0LvRgtC+0YDQsNC90LjQvSwg0JzQuNGF0LDQuNC7INCd0LjQutC40YTQvtGA0L7QstC40YcNCivQktC+0LvQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQn9C+0LvRg9GP0L3QvtCyLCDQndC40LrQvtC70LDQuSDQkNC90LTRgNC10LXQstC40YcNCivQktC+0LvQutC+0LIsINCT0LXQvdC90LDQtNC40Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Cf0L7Qu9GP0LrQvtCyLCDQkNC90LTRgNC10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQktC+0LvQutC+0LIsINCd0LjQutC+0LvQsNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J/QvtC70Y/QutC+0LIsINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQktC+0LvQutC+0LLQsCwg0J7Qu9GM0LPQsCDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Cf0L7Qu9GP0LrQvtCyLCDQrtGA0LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CS0L7Qu9C+0LLQuNC6LCDQkNC70LXQutGB0LDQvdC00YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQn9C+0LzQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LTRgNC40LDQvdC+0LLQuNGHDQor0JLQvtC70L7QtNC40L0sINCd0LjQutC+0LvQsNC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cf0L7QvdCw0YHQvtCyLCDQodGC0LXQv9Cw0L0g0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktC+0LvQvtGI0LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCh0YLQsNC70YzQtdCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JLQvtC70YfQtdC6LCDQk9Cw0LvQuNC90LAg0JHQvtGA0LjRgdC+0LLQvdCwDQor0J/QvtC90L7QvNCw0YDQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JLQvtC70YzRgdC60LjQuSwg0JDRgNC60LDQtNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JDQu9C10LrRgdC10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQktC+0YDQvtCx0YzQtdCyLCDQrdC00YPQsNGA0LQg0JDRgNC60LDQtNGM0LXQstC40YcNCivQn9C+0L3QvtC80LDRgNC10LIsINCQ0LvQtdC60YHQtdC5INCk0LjQu9C40L/Qv9C+0LLQuNGHDQor0JLQvtGA0L7Qs9GD0YjQuNC9LCDQktC40LrRgtC+0YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JPQtdC90L3QsNC00LjQuSDQodC10LzQtdC90L7QstC40YcNCivQktC+0YDQvtC90LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JvQtdCyINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JLQvtGA0L7QvdC40L0sINCT0LXQvdC90LDQtNC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cf0L7Qv9C60L7QstC40YcsINCg0L7QvNCw0L0g0KHQtdC80LXQvdC+0LLQuNGHDQor0JLQvtGA0L7QvdC40L0sINCu0YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J/QvtC/0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JLQvtGA0L7QvdGG0L7Qsiwg0JDQu9C10LrRgdC10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQn9C+0L/QvtCyLCDQkNC70LXQutGB0LXQuSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JLQvtGA0L7QvdGG0L7QstCwLCDQl9C+0Y8g0JjQstCw0L3QvtCy0L3QsA0KK9Cf0L7Qv9C+0LIsINCQ0YDQutCw0LTQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JLQvtGA0L7RgtC90LjQutC+0LIsINCS0LDQu9C10YDQuNC5INCf0LDQstC70L7QstC40YcNCivQn9C+0L/QvtCyLCDQktC40LrRgtC+0YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQktGL0YPRh9C10LnRgdC60LjQuSwg0JLRj9GH0LXRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cf0L7Qv9C+0LIsINCT0LDQstGA0LjQuNC7INCl0LDRgNC40YLQvtC90L7QstC40YcNCivQktGP0YXQuNGA0LXQsiwg0KDRjdC8INCY0LLQsNC90L7QstC40YcNCivQn9C+0L/QvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQk9Cw0LHQuNC00YPQu9C70LjQvSwg0KDQuNC90LDRgiDQk9C40L3QtNGD0LvQu9C+0LLQuNGHDQor0J/QvtC/0L7Qsiwg0KHQtdGA0LPQtdC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CT0LDQsdGD0L3QuNGPLCDQk9C10L7RgNCz0LjQuSDQktCw0LvQtdGA0YzQtdCy0LjRhw0KK9Cf0L7Qv9C+0LLQsCwg0KLQsNGC0YzRj9C90LAg0JvRjNCy0L7QstC90LANCivQn9C+0L/RhtC+0LIsINCe0LvQtdCzINCc0LDQutGB0LjQvNC+0LLQuNGHDQor0JPQsNC00LbQuNC10LIsINCT0LDQtNC40YEg0JDQsdC00YPQu9C70LDQtdCy0LjRhw0KK9Cf0L7RgNC+0YXQvtCy0YnQuNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCo0LDQu9Cy0L7QstC40YcNCivQk9Cw0LXRgCwg0JXQstC00L7QutC40Y8g0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQn9C+0YLQsNC90LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQntC70LXQs9C+0LLQuNGHDQor0JPQsNC30LXQtdCyLCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QvtGC0LDQv9C10L3QutC+LCDQkNC70LXQutGB0LDQvdC00YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0JPQsNC30LjQt9GD0LvQu9C40L0sINCk0LDRgNC40YIg0KDQsNGE0LjQutC+0LLQuNGHDQor0J/QvtGC0LDQv9C+0LIsINCb0LXQvtC90LjQtCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CT0LDQudC00LDRgCwg0JXQs9C+0YAg0KLQuNC80YPRgNC+0LLQuNGHDQor0J/QvtGC0LDQv9C+0LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0LDQudC00LDRiCwg0JzQsNGA0LjRjyDQmNCy0LDQvdC+0LLQvdCwDQor0J/QvtGF0LzQtdC70LrQuNC9LCDQktC40LrRgtC+0YAg0JLQsNC70LXRgNGM0LXQstC40YcNCivQk9Cw0LnRgdC40L0sINCc0LDQu9C40Log0KTQsNCy0LfQsNCy0LjQtdCy0LjRhw0KK9Cf0L7Rh9C40L3QvtC6LCDQkNC70LXQutGB0LDQvdC00YAg0J/QtdGC0YDQvtCy0LjRhw0KK9CT0LDQu9Cw0LPQsNC9LCDQlNC80LjRgtGA0LjQuSDQkNC90LTRgNC10LXQstC40YcNCivQn9GA0LXQvNGM0Y/Quiwg0J/QtdGC0YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CT0LDQu9Cw0LfQuNC5LCDQk9GA0LjQs9C+0YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQn9GA0LjQvNCw0LrQvtCyLCDQldCy0LPQtdC90LjQuSDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9CT0LDQu9Cw0LfQvtCyLCDQkNGF0YHQsNGA0LHQtdC6INCl0LDQtNC20LjQvNGD0YDQt9Cw0LXQstC40YcNCivQn9GA0LjRhdC+0LTRjNC60L4sINCh0LXRgNCz0LXQuSDQrdC00YPQsNGA0LTQvtCy0LjRhw0KK9CT0LDQu9C40LXQsiwg0JDRhdC80LXRgtCz0LDQu9C4INCc0YPRhdCw0LzQtdGC0LPQsNC70LjQtdCy0LjRhw0KK9Cf0YDQvtC60L7Qv9C10L3QutC+LCDQktC10YDQsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQk9Cw0LzQt9CwLCDQk9C10L3QvdCw0LTQuNC5INCV0YTQuNC80L7QstC40YcNCivQk9Cw0LzQuNC00L7Qsiwg0JPQsNC80LjQtCDQnNGD0YHRgtCw0YTQsNC10LLQuNGHDQor0J/RgNC+0YXQsNC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0L3QtNGA0LXQtdCy0LjRhw0KK9CT0LDQvdC10LXQsiwg0JzRg9C70LvQsNC90YPRgCDQpNCw0YXRgNCw0LfQuNC10LLQuNGHDQor0J/RgNGD0LTQvdC40LrQvtCyLCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQk9Cw0L3RgtCw0LzQuNGA0L7Qsiwg0JHQuNGB0LvQsNC9INCh0LDQudC0LdCQ0LvQuNC10LLQuNGHDQor0J/RgNGD0YHQsNC6LCDQnNC40YXQsNC40Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQk9Cw0YDQtdC10LIsINCc0LDRhdC80YPRgiDQkNGF0LzQtdGC0L7QstC40YcNCivQn9GD0LfQsNC90L7QstGB0LrQuNC5LCDQkNC00YDQuNCw0L0g0JPQtdC+0YDQs9C40LXQstC40YcNCivQk9Cw0Y7Qu9GM0YHQutC40LksINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0J/Rg9C70LjQutC+0LLRgdC60LjQuSwg0JrQvtC90YHRgtCw0L3RgtC40L0g0JHQvtGA0LjRgdC+0LLQuNGHDQor0JPQstC+0LfQtNC10LLQsCwg0KHQstC10YLQu9Cw0L3QsCDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Cf0YPRgtC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JPQtNC70Y/QvSwg0KLQtdC70YzQvNCw0L0g0KXQvtGA0LXQvdC+0LLQuNGHDQor0J/Rh9C10LvQutC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQk9C10L3QtdGA0LDQu9C+0LIsINCQ0L3QtNGA0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/Ri9C30LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0LXQvdC10YDQsNC70L7Qsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cf0YvQu9GM0L3QtdCyLCDQktC40LrRgtC+0YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQk9C10L3QuNCw0YLRg9C70LjQvSwg0KDQsNCy0LjQu9GMINCk0LDRgNC40YLQvtCy0LjRhw0KK9Cf0Y/RgtC90LjRhtC60LjQuSwg0K7RgNC40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQk9C10YDQsNGB0LjQvNC10L3QutC+LCDQndC40LrQvtC70LDQuSDQpNC10LTQvtGA0L7QstC40YcNCivQoG/QudGC0LzQsNC9LCDQmNC70YzRjyDQkdC+0YDQuNGB0L7QstC40YcNCivQk9C10YDQsNGB0LjQvNC+0LIsINCh0LXRgNCz0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KDQsNCx0LTQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQoNCw0LHQtNCw0L3QvtCy0LjRhw0KK9CT0LXRgNCw0YnQtdC90LrQviwg0JLQuNC60YLQvtGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cg0LDQtNGD0LXQsiwg0KHQsNC70LzQsNC9DQor0KDQsNC10LLRgdC60LDRjywg0J3QsNGC0LDQu9C40Y8g0JDQu9C10LrRgdC10LXQstC90LANCivQk9C40L3Qt9Cx0YPRgNCzLCDQodC+0LvQvtC80L7QvSDQmNC30YDQsNC40LvQtdCy0LjRhw0KK9Cg0LDQudC60L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JPQuNGC0LjQvSwg0JLQuNC60YLQvtGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cg0LDRhdC40LzQvtCyLCDQnNGD0YDRgtCw0LfQsCDQk9GD0LHQsNC50LTRg9C70LvQvtCy0LjRhw0KK9CT0LvQsNC30YzQtdCyLCDQodC10YDQs9C10Lkg0K7RgNGM0LXQstC40YcNCivQoNCw0YXQvNCw0L3QuNC9LCDQktC70LDQtNC40LzQuNGAINCe0LvQtdCz0L7QstC40YcNCivQk9C70L7RgtC+0LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cg0LDRhdC80L7QvdC+0LIsINCt0LzQvtC80LDQu9C4INCo0LDRgNC40L/QvtCy0LjRhw0KK9CT0LvRg9Cx0L7QutC+0LLRgdC60LjQuSwg0JzQuNGF0LDQuNC7INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQoNC10LnQvNCw0L0sINCb0LXQvtC90LjQtCDQlNC+0LTQvtC00LbQvtC90L7QstC40YcNCivQk9C70YPRhdC40YUsINCS0LjQutGC0L7RgCDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KDQtdGI0YPQu9GM0YHQutC40LksINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CT0LvRg9GI0LXQvdC60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQldCz0L7RgNC+0LLQuNGHDQor0KDQuNC80YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0JvRjNCy0L7QstC40YcNCivQk9C70YPRidC10L3QutC+LCDQnNC40YXQsNC40Lsg0JjQstCw0L3QvtCy0LjRhw0KK9Cg0L7Qs9C+0LfQuNC9LCDQlNC80LjRgtGA0LjQuSDQntC70LXQs9C+0LLQuNGHDQor0JPQvtCy0L7RgNC40L0sINCR0L7RgNC40YEg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQoNC+0LTQuNC+0L3QvtCyLCDQmNCz0L7RgNGMINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JPQvtCy0L7RgNGD0YXQuNC9LCDQodGC0LDQvdC40YHQu9Cw0LIg0KHQtdGA0LPQtdC10LLQuNGHDQor0KDQvtC00LjQvtC90L7Qsiwg0J/QtdGC0YAg0JjQstCw0L3QvtCy0LjRhw0KK9CT0L7Qu9C10LzQsdC40L7QstGB0LrQuNC5LCDQmNCz0L7RgNGMINCd0LXRgdGC0L7RgNC+0LLQuNGHDQor0KDQvtC00LjQvtC90L7Qsiwg0KHQtdGA0LPQtdC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CT0L7Qu9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cg0L7QttC60L7Qsiwg0JLQuNC60YLQvtGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JPQvtC70L7QstC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0JvQtdC+0L3QsNGA0LTQvtCy0LjRhw0KK9Cg0L7QutC10YbQutC40LksINCb0LXQvtC90LjQtCDQrtC70LjQsNC90L7QstC40YcNCivQk9C+0LvQvtCy0LvQtdCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQoNC+0LzQsNC90L7Qsiwg0JLQsNC70LXQvdGC0LjQvSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9CT0L7QvNCw0L0sINCS0LvQsNC00LjQvNC40YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KDQvtC80LDQvdC+0LIsINCf0LXRgtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JPQvtC90LbQsNGA0L7Qsiwg0J7Qu9C10LMg0J/QsNCy0LvQvtCy0LjRhw0KK9Cg0L7QvNCw0L3QvtCy0YHQutC40LksINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0L7QvdGH0LDRgCwg0J3QuNC60L7Qu9Cw0Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQoNC+0LzQsNGI0LrQuNC9LCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQk9C+0YDQsdCw0YfQtdCyLCDQnNC40YXQsNC40Lsg0KHQtdGA0LPQtdC10LLQuNGHDQor0KDQvtGB0YHQtdC70YwsINCt0LTRg9Cw0YDQtCDQrdGA0LPQsNGA0YLQvtCy0LjRhw0KK9CT0L7RgNCx0LDRh9C10LLQsCwg0KDQsNC40YHQsCDQnNCw0LrRgdC40LzQvtCy0L3QsA0KK9Cg0L7RhdC70LjQvSwg0JvQtdCyINCv0LrQvtCy0LvQtdCy0LjRhw0KK9CT0L7RgNC00LXQtdCyLCDQkNC70LXQutGB0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cg0L7RidC40L3QsCwg0KLQsNGC0YzRj9C90LAg0J3QuNC60L7Qu9Cw0LXQstC90LANCivQk9C+0YDQtNC10LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cg0YPQs9CwLCDQktC70LDQtNC40LzQuNGAINCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0JPQvtGA0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQoNGD0LTQutC40L0sINCu0YDQuNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JPQvtGA0YjQutC+0LIsINCc0LjRhdCw0LjQuyDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KDRg9C00L3QvtCyLCDQntC70LXQsyDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0JPQvtGA0Y7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JTQvNC40YLRgNC40LXQstC40YcNCivQoNGD0LzRj9C90YbQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0K7RgNGM0LXQstC40YcNCivQk9C+0YDRjtC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KDRg9C80Y/QvdGG0LXQsiwg0J7Qu9C10LMg0JPQtdGA0LzQsNC90L7QstC40YcNCivQk9C+0YDRj9GH0LXQsiwg0JLQsNC70LXRgNC40Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0JPQvtGA0Y/Rh9C10LIsINCc0LDRgNC6INCb0LXQvtC90LjQtNC+0LLQuNGHDQor0KDRg9GC0LrQvtCy0YHQutC40LksINCe0LvQtdCzINCS0YHQtdCy0L7Qu9C+0LTQvtCy0LjRhw0KK9CT0L7RgNGP0YfQtdCyLCDQrtGA0LjQuSDQpNGA0L7Qu9C+0LLQuNGHDQor0KDRg9GG0LrQvtC5LCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JPQvtGA0Y/Rh9C10LLQsCwg0KHQstC10YLQu9Cw0L3QsCDQn9C10YLRgNC+0LLQvdCwDQor0KDRg9GI0LDQudC70L4sINCS0LvQsNC00LjQvNC40YAg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JPQvtGB0YLQtdCyLCDQoNGD0YHQu9Cw0L0g0JPQtdC+0YDQs9C40LXQstC40YcNCivQoNGL0LHQsNC60L7Qsiwg0K7Qu9C40Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0KDRi9Cx0LrQuNC9LCDQmNCy0LDQvSDQn9C10YLRgNC+0LLQuNGHDQor0JPRgNCw0YfQtdCyLCDQn9Cw0LLQtdC7INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cg0YvQs9Cw0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQvdC00YDQtdC10LLQuNGHDQor0JPRgNC10LHQtdC90L3QuNC60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQoNGL0LbQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQoNGL0LbQutC+0LIsINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQk9GA0LXRiNC90LXQstC40LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KDRjtGA0LjQutC+0LIsINCU0LzQuNGC0YDQuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CT0YDQuNCz0L7RgNC40LDQtNC4LCDQktC70LDQtNC40LzQuNGAINCh0YLQuNC70LvQuNCw0L3QvtCy0LjRhw0KK9Cg0Y/QsdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JPRgNC40LPQvtGA0YzQtdCyLCDQktCw0LvQtdGA0LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cg0Y/QsdC+0LIsINCd0LjQutC+0LvQsNC5INCi0LjQvNC+0YTQtdC10LLQuNGHDQor0JPRgNC40LPQvtGA0YzQtdCyLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CT0YDQuNGI0LjQvSwg0JLQsNGB0LjQu9C40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQoNGP0LHRg9GF0LjQvSwg0KHQtdGA0LPQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JPRgNC40YjQutC10LLQuNGHLCDQntC70LXQsyDQn9C10YLRgNC+0LLQuNGHDQor0KHQsNCx0LjRgNC+0LIsINCc0LDRgNCw0YIg0KXQsNC80LfQuNC90L7QstC40YcNCivQk9GA0LjRiNGD0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LjRgtCw0LvRjNC10LLQuNGHDQor0KHQsNCy0LXQu9GM0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCT0LXQvtGA0LPQuNC10LLQuNGHDQor0KHQsNCy0LXQu9GM0LXQsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0KHQtdGA0LPQtdC10LLQuNGHDQor0JPRgNC+0LzQvtCyLCDQkdC+0YDQuNGBINCS0YHQtdCy0L7Qu9C+0LTQvtCy0LjRhw0KK9Ch0LDQstC10LvRjNC10LIsINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JPRgNC+0LzQvtCyLCDQktC70LDQtNC40LzQuNGAINCf0LDQstC70L7QstC40YcNCivQk9GA0L7QvNC+0LIsINCk0LXQu9C40LrRgSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LDQstC40L3Ri9GFLCDQktC40LrRgtC+0YAg0J/QtdGC0YDQvtCy0LjRhw0KK9CT0YDQvtGI0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQn9Cw0LLQu9C+0LLQuNGHDQor0KHQsNCy0LjRhtC60LDRjywg0KHQstC10YLQu9Cw0L3QsCDQldCy0LPQtdC90YzQtdCy0L3QsA0KK9CT0YDRg9GJ0LDQuiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ch0LDQstC40YbQutC40LksINCS0LjRgtCw0LvQuNC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KHQsNCy0LjRhtC60LjQuSwg0J7Qu9C10LMg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JPRg9Cx0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQsNCy0YfQtdC90LrQviwg0JXQstCz0LXQvdC40Lkg0KHRgtC10L/QsNC90L7QstC40YcNCivQk9GD0LHQutC40L0sINCY0LPQvtGA0Ywg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KHQsNCy0YfQtdC90LrQviwg0J7Qu9C10LMg0JLQuNGC0LDQu9GM0LXQstC40YcNCivQk9GD0LTQuNC80LAsINCi0LDQvNCw0YDQsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Ch0LDQstGH0YPQuiwg0JLQtdGA0LAg0KHQtdC80LXQvdC+0LLQvdCwDQor0JPRg9C20LLQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCf0LXRgtGA0L7QstC40YcNCivQodCw0LPQsNC70LDQtdCyLCDQrdC00YPQsNGA0LQg0JzQuNGF0LDQudC70L7QstC40YcNCivQk9GD0YDQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0LDQtNGH0LjQutC+0LIsINCT0LXQvtGA0LPQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JPRg9GB0LDRgNC+0LLQsCwg0JPQsNC70LjQvdCwINCY0LLQsNC90L7QstC90LANCivQodCw0LXRgtCz0LDQu9C40LXQsiwg0JfQuNGE0LrQsNGCINCY0YHQu9Cw0LzQvtCy0LjRhw0KK9CT0YPRgdC10LIsINCS0LvQsNC00LjQvNC40YAg0JrRg9C30YzQvNC40YcNCivQodCw0LbQuNC90L7Qsiwg0J/QsNCy0LXQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0YPRgdC10LIsINCf0LDQstC10Lsg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodCw0LnRhNGD0LvQu9C40L0sINCQ0LvRjNC30LDQvCDQotGD0YXQstCw0YLRg9C70LvQuNC90L7QstC40YcNCivQk9GD0YHQuNC90YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQodCw0LnRhNGD0LvQu9C40L0sINCY0L3RgdCw0YQg0KjQsNGA0LjRhNGD0LvQu9C+0LLQuNGHDQor0JPRg9GB0LzQsNC9LCDQrtC70LjQuSDQodC+0LvQvtC80L7QvdC+0LLQuNGHDQor0KHQsNC70LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQk9GD0YHRgtC+0LIsINCS0LDQtNC40Lwg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Ch0LDQu9C+0LIsINCV0LLQs9C10L3QuNC5INCY0LLQsNC90L7QstC40YcNCivQk9GD0YHRjNC60L7Qsiwg0K7RgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQodCw0LvRh9Cw0LosINCT0LDQu9C40L3QsCDQkNC70LXQutGB0LXQtdCy0L3QsA0KK9CT0YPRhtC10YDQuNC10LIsINCc0LjRhdCw0LjQuyDQodCw0YTQsNGA0LHQtdC60L7QstC40YcNCivQodCw0LvRjNC1LCDQnNCw0YDQuNC90LAg0JXQstCz0LXQvdGM0LXQstC90LANCivQlNCw0LLQuNC00LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0LDQu9GM0L3QuNC60L7Qsiwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQlNCw0LLQuNGC0LDRiNCy0LjQu9C4LCDQldCy0LPQtdC90LjRjyDQrtCy0LDRiNC10LLQvdCwICjQlNC20YPQvdCwKQ0KK9Ch0LDQvdC00LvQtdGALCDQnNCw0YDQs9Cw0YDQuNGC0LAg0KDQtdCy0LzQuNGA0L7QstC90LANCivQlNCw0LLRi9C00LrQuNC9LCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQodCw0L/QuNGA0L4sINCV0LLQs9C10L3QuNC5INCh0LDRg9C70L7QstC40YcNCivQlNCw0LLRi9C00L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXQvNC10L3QvtCy0LjRhw0KK9Ch0LDQv9C+0LbQvdC40LrQvtCyLCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JTQsNCy0YvQtNC+0LIsINCQ0L3QtNGA0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ch0LDRgtCw0YDQvtCyLCDQk9C10L7RgNCz0LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQktC40LrRgtC+0YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0KHQsNGE0LDRgNC+0LIsINCg0LDQtNC20LDQsSDQodCw0YLRgtCw0YDQvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQktGB0LXQstC+0LvQvtC0INCT0LXQvdC90LDQtNGM0LXQstC40YcNCivQodCw0YTRgNC+0L3QvtCyLCDQktC40YLQsNC70LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQntC70LXQsyDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ch0LDRhdCw0YDQutC+0LIsINCu0YDQuNC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JTQsNCy0YvQtNC+0LIsINCh0LXRgNCz0LXQuSDQktGP0YfQtdGB0LvQsNCy0L7QstC40YcNCivQodCy0LXRh9C90LjQutC+0LIsINCf0LXRgtGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQlNCw0LvRjNGB0LrQuNC5LCDQndC40LrQvtC70LDQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LLQuNC90LjQvSwg0KHQtdGA0LPQtdC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JTQsNC90LjQu9C10L3QutC+LCDQodC10YDQs9C10Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0KHQtdCy0LDRgdGC0YzRj9C90L7Qsiwg0JLQuNGC0LDQu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CU0LDQvdC40LvQvtCyLCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ch0LXQstC10L3QsNGA0LQsINCa0L7QvdGB0YLQsNC90YLQuNC9INCu0YDRjNC10LLQuNGHDQor0JTQsNC90LjQu9C+0LLQsCwg0J3QuNC90LAg0J/QtdGC0YDQvtCy0L3QsA0KK9Ch0LXQstC10L3QsNGA0LQsINCu0YDQuNC5INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQlNCw0L3Rh9C10L3QutC+LCDQkdC+0YDQuNGBINCY0LLQsNC90L7QstC40YcNCivQodC10LLRgNGO0LPQuNC9LCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0LXQu9C10LfQvdC10LIsINCT0LXQvdC90LDQtNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQlNC10LnQvdC10LrQuNC9LCDQn9C10YLRgCDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ch0LXQu9C10LfQvdC10LIsINCd0LjQutC+0LvQsNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JTQtdC80LXQvdGC0YzQtdCy0LAsINCd0LDRgtCw0LvRjNGPINCb0LXQvtC90LjQtNC+0LLQvdCwDQor0KHQtdC70LjQstCw0L3QvtCyLCDQkNC90LTRgNC10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JTQtdC80LjQtNC+0LIsINCY0LLQsNC9INCY0LLQsNC90L7QstC40YcNCivQodC10LvQuNCy0LXRgNGB0YLQvtCyLCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KHQtdC80LDQs9C+LCDQktC70LDQtNC40LzQuNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CU0LXQvdC40YHQtdC90LrQviwg0JHRjdC70LvQsCDQkNC90LDRgtC+0LvRjNC10LLQvdCwDQor0KHQtdC80LXQvdC+0LIsINCS0LjQutGC0L7RgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CU0LXQvdC40YHQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCa0YPQt9GM0LzQuNGHDQor0KHQtdC80LXQvdC+0LIsINCc0LjRhdCw0LjQuyDQmNC90L3QvtC60LXQvdGC0YzQtdCy0LjRhw0KK9CU0LXRgNC10LLRj9C90LrQviwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHQtdC80LXQvdC+0LIsINCh0LXRgNCz0LXQuSDQodC10YDQs9C10LXQstC40YcNCivQlNC10YDQuNC/0LDRgdC60LAsINCe0LvQtdCzINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ch0LXQvNC10L3QvtCyLCDQrtGA0LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0JTQtdGA0Y7Qs9C40L0sINCu0YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQodC10LzQtdGA0LPQtdC5LCDQm9C10L7QvdC40LQg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQlNC10YDRj9Cx0LjQvSwg0K7RgNC40Lkg0KHRgtC10L/QsNC90L7QstC40YcNCivQodC10L3QuNC9LCDQk9GA0LjQs9C+0YDQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JTQtdGB0Y/RgtC90LjQutC+0LIsINCS0LDRgdC40LvQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KHQtdGA0LPQtdC10LIsINCY0LPQvtGA0Ywg0JTQvNC40YLRgNC40LXQstC40YcNCivQodC10YDQs9C10LXQvdC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LvQvtCy0LjRhw0KK9CU0LbQsNC90LjQsdC10LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KHQtdGA0LPQuNC10L3QutC+LCDQktCw0LvQtdGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JTQttCw0YDQuNC80L7Qsiwg0JDRgdC70LDQvSDQkNC70LjQtdCy0LjRhw0KK9Ch0LXRgNC+0LIsINCS0LDQu9C10YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHQtdGB0LvQsNCy0LjQvdGB0LrQuNC5LCDQnNC40YXQsNC40Lsg0JLQsNC00LjQvNC+0LLQuNGHDQor0JTQt9Cw0YHQvtGF0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Ch0LjQstCw0LosINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQlNC80LjRgtGA0LjQtdCy0LAsINCe0LrRgdCw0L3QsCDQk9C10L3RgNC40YXQvtCy0L3QsA0KK9Ch0LjQs9Cw0YDQtdCyLCDQodC10YDQs9C10Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0JTQvNC40YLRgNC40LXQstCwLCDQotCw0YLRjNGP0L3QsCDQkdC+0YDQuNGB0L7QstC90LANCivQodC40LTQvtGA0L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9CU0L7Qu9Cz0L7Qu9Cw0L/RgtC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC40LTQvtGA0L7Qsiwg0JXQstCz0LXQvdC40Lkg0K7RgNGM0LXQstC40YcNCivQodC40LTQvtGA0L7Qsiwg0JzQuNGF0LDQuNC7INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JTQvtC90LTRg9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQuNC80L7QvdC+0LIsINCQ0LvQtdC60YHQtdC5INCa0LjRgNC40LvQu9C+0LLQuNGHDQor0JTQvtGA0LXQvdC60L4sINCh0LXRgNCz0LXQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Ch0LjQvNC+0L3QvtCyLCDQktCw0LvQtdGA0LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JTRgNCw0YfQtdCy0YHQutC40LksINCb0LXQvtC90LjQtCDQktCw0LTQuNC80L7QstC40YcNCivQodC40LzQvtC90L7Qsiwg0JzQuNGF0LDQuNC7INCf0LXRgtGA0L7QstC40YcNCivQlNGD0LHQtdC90LXRhtC60LjQuSwg0K/QutC+0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC40YDQvtGC0LrQuNC9LCDQktC70LDQtNC40LzQuNGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JTRg9Cx0LjQvdC40L0sINCh0LXRgNCz0LXQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHQuNGC0L3QuNC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9CU0YPQsdGA0L7QstC40L3QsCwg0JXQu9C10L3QsCDQn9Cw0LLQu9C+0LLQvdCwDQor0KHQutCy0L7RgNGG0L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CU0YPRgNGP0LPQuNC9LCDQmNCy0LDQvSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LrQstC+0YDRhtC+0LIsINCh0LXRgNCz0LXQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQlNGD0YjQtdC90L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0K7RgNGM0LXQstC40YcNCivQodC60LvRj9GA0L7Qsiwg0JjQstCw0L0g0J/QtdGC0YDQvtCy0LjRhw0KK9CU0YzRj9GH0LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC60L7QutC+0LIsINCu0YDQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CU0YzRj9GH0LXQvdC60L4sINCi0LDRgtGM0Y/QvdCwINCR0L7RgNC40YHQvtCy0L3QsA0KK9Ch0LrRg9GA0LDRgtC+0LIsINCu0YDQuNC5INCY0LvRjNC40YcNCivQldCy0YHRgtCw0YTRjNC10LIsINCQ0YDQutCw0LTQuNC5INCS0Y/Rh9C10YHQu9Cw0LLQvtCy0LjRhw0KK9Ch0LrRg9GA0LjRhdC40L0sINCh0LXRgNCz0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0LrRg9GA0LvQsNGC0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CV0LPQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCa0LjRgNGM0Y/QvdC+0LLQuNGHDQor0KHQu9Cw0LLQvdGL0LksINCS0LDRgdC40LvQuNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JXQs9C+0YDQvtCyLCDQktC70LDQtNC40LzQuNGAINCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQodC70LjQstCwLCDQkNC90LDRgtC+0LvQuNC5INCv0LrQvtCy0LvQtdCy0LjRhw0KK9CV0LPQvtGA0L7Qsiwg0JzQuNGF0LDQuNC7INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQodC70LjRgdC60LAsINCb0Y7QsdC+0LLRjCDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQvdCwDQor0JXQs9C+0YDQvtCyLCDQndC40LrQvtC70LDQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ch0LzQtdGC0LDQvdC60LjQvSwg0JXQstCz0LXQvdC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQldCz0L7RgNC+0LIsINCh0LXRgNCz0LXQuSDQldGE0LjQvNC+0LLQuNGHDQor0KHQvNC40YDQvdC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CV0LvQsNCz0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0LzQuNGA0L3QvtCyLCDQktCw0LvQtdGA0LjQuSDQnNCw0YDQutGB0L7QstC40YcNCivQldC70LjRgdC10LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LPQvtGA0LXQstC40YcNCivQodC80LjRgNC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQldC70YfQtdCyLCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQodC80LjRgNC90L7Qsiwg0JzQuNGF0LDQuNC7INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CV0LvRjNGG0LjQvSwg0JHQvtGA0LjRgSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LzQvtC70LXQvdGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0J/QsNCy0LvQvtCy0LjRhw0KK9CV0LzQtdC70YzRj9C90L7Qsiwg0JDQu9C10LrRgdC10Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQodC80L7Qu9C40L0sINCe0LvQtdCzINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JXQvNC10LvRjNGP0L3QvtCyLCDQnNC40YXQsNC40Lsg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC80L7Qu9GP0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JXQvdGM0LrQvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQodC+0LHQsNC60LjQvSwg0JXQstCz0LXQvdC40Lkg0K7RgNGM0LXQstC40YcNCivQodC+0LHQvtC70LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CV0YDQvNCw0YfQtdC90LrQviwg0KHRgtCw0L3QuNGB0LvQsNCyINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHQvtCx0YfQsNC6LCDQkNC90LDRgtC+0LvQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JXRgNC80LjRiNC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Ch0L7QsdGP0L3QuNC9LCDQodC10YDQs9C10Lkg0KHQtdC80LXQvdC+0LLQuNGHDQor0JXRhNC40LzQvtCyLCDQktC40YLQsNC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQodC+0LrQvtC7LCDQodCy0Y/RgtC+0YHQu9Cw0LIg0JzQuNGF0LDQudC70L7QstC40YcNCivQldGE0YDQtdC80L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQkNC90YLQvtC90L7QstC40YcNCivQodC+0LrQvtC70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9CW0LDQsdC+0LXQsiwg0JzQsNGF0LzRg9C0INCd0LDQtNC40YDQvtCy0LjRhw0KK9Ch0L7QutC+0LvQvtCyLCDQkNC90LTRgNC10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JbQsNC80YHRg9C10LIsINCR0LDQuNGAINCR0LDRj9GB0YXQsNC70LDQvdC+0LLQuNGHDQor0KHQvtC60L7Qu9C+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CW0LTQsNC60LDQtdCyLCDQmNCy0LDQvSDQkNC90LTRgNC10LXQstC40YcNCivQodC+0LrRg9GALCDQlNC80LjRgtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KHQvtC70L7QstGM0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQr9C60L7QstC70LXQstC40YcNCivQltC10LHRgNC+0LLRgdC60LjQuSwg0KHRgtCw0L3QuNGB0LvQsNCyINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHQvtC70L7QstGM0LXQsiwg0JLQsNC00LjQvCDQn9Cw0LLQu9C+0LLQuNGHDQor0JbQuNC80LjRgNC+0LIsINCS0LDQtNC40Lwg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC+0LvQvtCy0YzQtdCyLCDQktC70LDQtNC40LzQuNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CW0LjRgNC40L3QvtCy0YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0JLQvtC70YzRhNC+0LLQuNGHDQor0KHQvtC70L7QvNCw0YLQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JbRg9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0KHQvtC70L7QvNCw0YLQuNC9LCDQldCz0L7RgCDQrtGA0YzQtdCy0LjRhw0KK9CW0YPQutC+0LLQsCwg0J3QtdC70LvRjyDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Ch0L7Qu9C+0L3QvdC40LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQltGD0LrQvtCy0YHQutC40LksINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0KHQvtC70YLQsNCz0LDQvdC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0KTQtdC00L7RgNC+0LLQuNGHDQor0JbRg9GA0LHQtdC90LrQviwg0JLQu9Cw0LTQuNC80LjRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ch0L7Qu9GD0Y/QvdC+0LIsINCQ0L3QtNGA0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQltGD0YDQutC+LCDQktCw0YHQuNC70LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0L7RgNC+0LrQuNC90LAsINCV0LvQtdC90LAg0KHRgtCw0L3QuNGB0LvQsNCy0L7QstC90LANCivQl9Cw0LHQtdC50LLQvtGA0L7RgtCwLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0L7RgdC60L7QstC10YYsINCe0LvQtdCzINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JfQsNCy0LPQsNC10LIsINCU0L7QutGDINCT0LDQv9GD0YDQvtCy0LjRhw0KK9Ch0L7RhdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JrQsNC30LHRg9C70LDRgtC+0LLQuNGHDQor0JfQsNCy0LXRgNGO0YXQsCwg0JDQu9C10LrRgdCw0L3QtNGAINCl0LDRgNC70LDQvNC/0LjQtdCy0LjRhw0KK9Ch0L/QuNGA0LjQtNC+0L3QvtCyLCDQrtGA0LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CX0LDQstC40LTQuNGPLCDQkNC90LTRgNC10Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0KHRgtCw0L3QutC10LLQuNGHLCDQodC10YDQs9C10Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JfQsNC00L7RgNC40L0sINCY0LPQvtGA0Ywg0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0KHRgtCw0L3QutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQl9Cw0LTQvtGA0L3QvtCyLCDQnNC40YXQsNC40Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQodGC0LDRgNC60L7Qsiwg0JLQu9Cw0LTQuNGB0LvQsNCyINCQ0L3QtNGA0LXQtdCy0LjRhw0KK9CX0LDQudGG0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ch0YLQsNGA0L7QstC+0LnRgtC+0LLQsCwg0JPQsNC70LjQvdCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0JfQsNC70YvQs9C40L0sINCh0LXRgNCz0LXQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0KHRgtCw0YDQvtC00YPQsdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9CX0LDRgNC40YfQsNC90YHQutC40LksINCh0YLQsNC90LjRgdC70LDQsiDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHRgtCw0YDQvtC00YPQsdGG0LXQsiwg0JLQsNGB0LjQu9C40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQl9Cw0YHQu9Cw0LLRgdC60LDRjywg0KLQsNGC0YzRj9C90LAg0JjQstCw0L3QvtCy0L3QsA0KK9Ch0YLQsNGA0L7RgdGC0LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9CX0LDRgdGC0YDQvtC20L3QsNGPLCDQntC70YzQs9CwINCa0LjRgNC40LvQu9C+0LLQvdCwDQor0KHRgtC10L/QsNC90LrQvtCyLCDQktCw0LvQtdC90YLQuNC9INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JfQsNGC0YPQu9C40L0sINCa0L7QvdGB0YLQsNC90YLQuNC9INCk0LXQtNC+0YDQvtCy0LjRhw0KK9Ch0YLQtdC/0LDQvdC+0LIsINCQ0L3QtNGA0LXQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9CX0LDRhdCw0YDQvtCyLCDQkNC70LXQutGB0LXQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHRgtC10L/QsNC90L7Qsiwg0JLQuNC60YLQvtGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JfQsNGG0LXQv9C40L3QsCwg0J3QuNC90LAg0JDQvdC00YDQtdC10LLQvdCwDQor0KHRgtC10L/QsNC90L7Qsiwg0JLQuNC60YLQvtGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CX0LLQvtC70LjQvdGB0LrQuNC5LCDQktGP0YfQtdGB0LvQsNCyINCf0LXRgtGA0L7QstC40YcNCivQodGC0LXQv9Cw0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JfQtdC70LXQvdC40L0sINCS0LvQsNC00LjQvNC40YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQodGC0LXQv9Cw0L3QvtCyLCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JfQtdC70LXQvdC60LjQvSwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHRgtC10L/QsNC90L7Qsiwg0KHQtdGA0LPQtdC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CX0LXQu9C10L3QutC40L0sINCS0LjRgtCw0LvQuNC5INCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQodGC0LXQv9Cw0L3QvtCyLCDQotC10LnQvNGD0YDQsNC3INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JfQtdC70LXQvdC+0LIsINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KHRgtC10L/QsNGI0LjQvSwg0KHQtdGA0LPQtdC5INCS0LDQtNC40LzQvtCy0LjRhw0KK9CX0LXQu9C10L3Rgiwg0JjQstCw0L0g0JfQuNCz0LzRg9C90LTQvtCy0LjRhw0KK9Ch0YLQtdGA0LvQuNCz0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JfQtdGA0LXQvdC60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQodGC0L7Qu9GP0YDQvtCyLCDQndC40LrQvtC70LDQuSDQodC10YDQs9C10LXQstC40YcNCivQl9C70L7QsdC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0KHRgtC+0LvRj9GA0L7QstCwLCDQndCw0YHQuNC80LAg0JrQsNC70LjQvNC+0LLQvdCwDQor0JfQu9C+0LHQuNC90LAsINCb0LDRgNC40YHQsCDQkNGE0LDQvdCw0YHRjNC10LLQvdCwDQor0KHRgtGA0LDRhdC+0LIsINCQ0LvQtdC60YHQtdC5INCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JfQu9C+0YLQvdC40LrQvtCy0LAsINCi0LDQvNCw0YDQsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQodGC0YDQtdC60L7Qt9C+0LIsINCS0LvQsNC00LjQvNC40YAg0JPQtdC+0YDQs9C40LXQstC40YcNCivQl9C+0LvQvtGC0LDRgNC10LIsINCS0LjQutGC0L7RgCDQkdC+0YDQuNGB0L7QstC40YcNCivQl9C+0LvQvtGC0LDRgNC10LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdGC0L7QvdC+0LLQuNGHDQor0KHRg9Cy0L7RgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcNCivQl9C+0YDQutCw0LvRjNGG0LXQsiwg0JLQuNC60YLQvtGAINCY0LvRjNC40YcNCivQodGD0LTQsNC60L7Qsiwg0JPRg9GA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CX0L7RgNGM0LrQuNC9LCDQktCw0LvQtdGA0LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ch0YPQtNCw0YDQtdC90LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CX0L7RgtC40LrQvtCyLCDQkNC70LXQutGB0LXQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ch0YPQu9Cw0LrRiNC40L0sINCh0YLQtdC/0LDQvSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9CX0L7RgtC40L0sINCS0LvQsNC00LjRgdC70LDQsiDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9Ch0YPQu9C10LnQvNC10L3QvtCyLCDQmNCx0YDQsNCz0LjQvCDQkNCx0LTRg9GA0LDRhdC80LDQvdC+0LLQuNGHDQor0KHRg9C70YLQsNC90L7Qsiwg0KDQuNC90LDRgiDQmNGI0LHRg9C70LTQvtCy0LjRhw0KK9CX0YPQsdC+0LIsINCS0LDQu9C10YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHRg9GA0LPQsNC90L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQodC10YDQs9C10LXQstC40YcNCivQl9GL0YDRj9C90L7Qsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ch0YPRgNC40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQl9GO0LPQsNC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQkNC90LTRgNC10LXQstC40YcNCivQodGD0YDQutC+0LIsINCc0LjRhdCw0LjQuyDQodC10LzQtdC90L7QstC40YcNCivQl9GP0LHQu9C40YbQtdCyLCDQldCy0LPQtdC90LjQuSDQk9C10L3QvdCw0LTRjNC10LLQuNGHDQor0KHRg9GA0L7Qsiwg0J/QtdGC0YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JjQstCw0L3QtdC90LrQviwg0KHQtdGA0LPQtdC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KHRi9GB0YPQtdCyLCDQntC70LXQsyDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0LLQsNC90LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQodGL0YfQtdCyLCDQkNC90LDRgtC+0LvQuNC5INCf0LDQstC70L7QstC40YcNCivQmNCy0LDQvdC+0LIsINCS0LDRgdC40LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHRi9GH0LXQsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ci0LDQvdCw0LXQsiwg0JrQuNGA0LjQu9C7INCS0LDQu9C10YDRjNC10LLQuNGHDQor0JjQstCw0L3QvtCyLCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ci0LDRgNCw0L3RhtC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CY0LLQsNC90L7Qsiwg0JjQs9C+0YDRjCDQodC10YDQs9C10LXQstC40YcNCivQotCw0YDQsNGB0L7Qsiwg0JDRgNGC0LXQvCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ci0LDRgNCw0YHQvtCyLCDQktCw0LvQtdGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ci0LDRgNCw0YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JjQstCw0L3QvtCy0LAsINCi0LDRgtGM0Y/QvdCwINCR0L7RgNC40YHQvtCy0L3QsA0KK9Ci0LDRgtCw0YDQutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JjQstCw0L3Rh9C10L3QutC+LCDQm9C10L7QvdC40LQg0JDQvdC00YDQtdC10LLQuNGHDQor0KLQsNGG0Y7QvSwg0JzQuNGA0L7QvSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CY0LLQsNC90Y7QttC10L3QutC+0LIsINCR0L7RgNC40YEg0JLQuNC60YLQvtGA0L7QstC40YcNCivQotC10LzQuNGA0LbQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQpdCw0YHQsNC90LHQuNC10LLQuNGHDQor0JjQs9C90LDRgtC10L3QutC+LCDQktC40YLQsNC70LjQuSDQndC40LrQuNGC0LjRhw0KK9Ci0LXRgNC10LHQvtCyLCDQntC70LXQsyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmNCz0L3QsNGC0YzQtdCyLCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ci0LXRgNC10L3RgtGM0LXQsiwg0JLQsNGB0LjQu9C40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQmNCz0L3QsNGC0YzQtdCyLCDQmtC40YDQuNC70Lsg0JHQvtGA0LjRgdC+0LLQuNGHDQor0KLQtdGA0LXRhdC+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0LPQvdCw0YLRjNC10LIsINCh0LXRgNCz0LXQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ci0LXRgtC10LvRjNC80LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmNCz0YDRg9C90L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQotC40LfRj9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQmNCz0YPQvNC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQktGP0YfQtdGB0LvQsNCy0L7QstC40YcNCivQotC40YLQutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CY0LvQu9Cw0YDQuNC+0L3QvtCyLCDQkNC90LTRgNC10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQotC40YLQvtCyLCDQk9C10YDQvNCw0L0g0KHRgtC10L/QsNC90L7QstC40YcNCivQmNC70YzRjtGI0LXQvdC60L4sINCQ0LvQtdC60YHQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KLQuNGC0L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0JDQu9C10LrRgdC10LXQstC40YcNCivQmNC70YzRj9GB0L7Qsiwg0KHRgtCw0L3QuNGB0LvQsNCyINCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Ci0LjRg9C90L7Qsiwg0J7Qu9C10LMg0JjQstCw0L3QvtCy0LjRhw0KK9CY0LvRjtC80LbQuNC90L7Qsiwg0JrQuNGA0YHQsNC9INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KLQuNGF0L7QvNC40YDQvtCyLCDQktCw0LvQtdGA0LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CY0LvRjtGF0LjQvSwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQotC40YXQvtC80LjRgNC+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0LvRjtGI0LjQvSwg0JLQuNC60YLQvnAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQotC40YXQvtC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQmNC+0L3QvtCyLCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KLQuNGF0L7QvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0L/Qv9C+0LvQuNGC0L7Qsiwg0JrRgdC10L3QvtGE0L7QvdGCINCl0YDQuNGB0YLQvtGE0L7RgNC+0LLQuNGHDQor0KLQuNGF0L7QvdC+0LIsINCS0LjQutGC0L7RgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CY0YHQsNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkdC+0YDQuNGB0L7QstC40YcNCivQotC40YXQvtC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNC70YzQuNGHDQor0JjRgdCw0LrQvtCyLCDQndC40LrQvtC70LDQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ci0LjRhdC+0L3QvtCyLCDQk9C10L7RgNCz0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KLQuNGI0LrQvtCyLCDQkNC90LTRgNC10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmNGI0LzRg9GA0LDRgtC+0LIsINCc0LjQvdC90LjQsNGA0LjRgSDQnNC40L3QuNCz0LDQu9C40LXQstC40YcNCivQotC60LDRh9C10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0YnQtdC90LrQviwg0JXQstCz0LXQvdC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Ci0L7Qv9C+0YDQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0KLQvtC/0L7RgNC60L7Qsiwg0JzQuNGF0LDQuNC7INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrQsNCz0LDQu9C+0LLRgdC60LjQuSwg0JrQvtC90YHRgtCw0L3RgtC40L0g0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Ci0L7Qv9C+0YDQvtCyLCDQktC70LDQtNC40LzQuNGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JrQsNC00LDQvdC90LjQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQotC+0YDQu9C+0L/QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KLQvtGB0YPQvdGP0L0sINCT0LDRgNC10LPQuNC9INCQ0YjQvtGC0L7QstC40YcNCivQmtCw0LfQsNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQotC+0YLQuNC10LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0LDQt9Cw0LrQvtCyLCDQm9C10L7QvdC40LQg0JDQvdC00YDQtdC10LLQuNGHDQor0KLQvtGF0YLQsNCx0LjQtdCyLCDQodC10YDQs9C10Lkg0JDQvNC40L3QvtCy0LjRhw0KK9Ca0LDQt9Cw0LrQvtCy0LAsINCg0LjQvNC80LAg0KTQtdC00L7RgNC+0LLQvdCwDQor0KLRgNCw0LLQutC40L0sINCd0LjQutC+0LvQsNC5INCY0LvRjNC40YcNCivQmtCw0LfQsNC60L7QstGG0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ci0YDQsNC/0LXQt9C90LjQutC+0LIsINCS0LDQu9C10YDQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ca0LDQt9Cw0L3QvdC40LosINCQ0LvQtdC60YHQtdC5INCY0LLQsNC90L7QstC40YcNCivQotGA0LXRgtGM0Y/QutC+0LIsINCS0LjRgtCw0LvQuNC5INCi0L7QstC40LXQstC40YcNCivQotGA0L7RiNC10LIsINCT0LXQvdC90LDQtNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtCw0LfQsNGA0L7Qsiwg0J7Qu9C10LMg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KLRgNC+0YjQutC40L0sINCd0LjQutC+0LvQsNC5INCd0LjQutC40YLQuNGHDQor0JrQsNC30LXQvdC90L7Qsiwg0KHQtdGA0LPQtdC5INCu0YDRjNC10LLQuNGHDQor0KLRgNGD0LHQvdC40LrQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCY0LLQsNC90L7QstC40YcNCivQotGA0YPRiNC90LjQutC+0LIsINCS0LDQu9C10YDQuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JrQsNC70LDQvNCw0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LLQtNCw0YjQtdCy0LjRhw0KK9Ci0YPQu9C10LXQsiwg0JDQvNCw0L0t0LPQtdC70YzQtNGLINCc0L7Qu9C00LDQs9Cw0LfRi9C10LLQuNGHDQor0JrQsNC70LDRh9C10LIsINCa0L7QvdGB0YLQsNC90YLQuNC9INCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCS0LDQtNC40Lwg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0LDQu9Cw0YjQvdC40LrQvtCyLCDQodC10YDQs9C10Lkg0JLRj9GH0LXRgdC70LDQstC+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtCw0LvRg9Cz0LjQvSwg0J7Qu9C10LMg0JTQsNC90LjQu9C+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0LDQu9GO0LbQvdGL0LksINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmtCw0LvRj9Cz0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ci0YPQv9C+0LvQtdCyLCDQkNC70LXQutGB0LXQuSDQkNC90LTRgNC10LXQstC40YcNCivQmtCw0LzRi9GI0LjQvdGB0LrQuNC5LCDQndC40LrQvtC70LDQuSDQkNC60LjQvNC+0LLQuNGHDQor0KLRg9GA0YPRgdC40L0sINCQ0L3QsNGC0L7Qu9C40Lkg0JDRhNCw0L3QsNGB0YzQtdCy0LjRhw0KK9Ca0LDQvdCw0LXQsiwg0JvQtdC+0L3QuNC0INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KLRjtC70YzQutC40L0sINCS0LjQutGC0L7RgCDQkNGA0LrQsNC00YzQtdCy0LjRhw0KK9Ca0LDRgNCw0LPQsNC90L7Qsiwg0KHQtdGA0LPQtdC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KLRj9Cz0YPQvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0LDRgNCw0L/QtdGC0Y/QvSwg0KHQsNCw0Log0JDQu9GM0LHQtdGA0YLQvtCy0LjRhw0KK9Ci0Y/QttC70L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0LDRgNC10LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQo9Cx0L7QttC60L4sINCb0LXQsiDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JrQsNGA0LXQu9C40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cj0LLQsNGA0L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0LDRgNC10LvQvtCy0LAsINCT0LDQu9C40L3QsCDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Cj0LTRg9Cz0L7Qsiwg0JzQvtCy0LvQsNC00LgNCivQmtCw0YDQuNC80L7QstCwLCDQlNCw0L3QuNGPINCu0YHRg9GE0L7QstC90LANCivQo9C70YzQsdCw0YjQtdCyLCDQnNGD0YXQsNGA0LHQuCDQnNCw0LPQvtC80LXQtNC+0LLQuNGHDQor0JrQsNGA0L/QvtCyLCDQkNC90LDRgtC+0LvQuNC5INCV0LLQs9C10L3RjNC10LLQuNGHDQor0KPQu9GO0LrQsNC10LIsINCQ0LvQtdC60YHQtdC5INCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Ca0LDRgNC/0L7Qsiwg0KHRgtCw0L3QuNGB0LvQsNCyINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQo9C80LDQu9Cw0YLQvtCy0LAsINCh0LDQttC4INCX0LDQudC90LTQuNC90L7QstC90LANCivQmtCw0YHQsNGC0L7QvdC+0LIsINCY0LPQvtGA0Ywg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KPRgNCw0LfQsdCw0LXQsiwg0J3Rg9GA0LvQsNC9INCj0LvQsNC90L7QstC40YcNCivQmtCw0YHRjNGP0L3QvtCyLCDQnNC40YXQsNC40Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQo9GA0LjQvdGB0L7QvSwg0K/QutC+0LIg0JzQvtC40YHQtdC10LLQuNGHDQor0JrQsNGC0LDQu9GM0L3QuNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Cj0YHRgtC40L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JrQstCw0YjQvdC40L0sINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQo9GB0YLRjtCz0L7Qsiwg0JLQsNC70LXRgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC10YfQutC40L0sINCS0LDQu9C10YDQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KPRgtC60LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0JrQuNCx0LjRgNC10LIsINCR0L7RgNC40YEg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cj0YLQutC40L0sINCu0YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JrQuNCy0LXQu9C40LTQuCwg0JjQstCw0L0g0KXQsNGA0LvQsNC80L/QuNC10LLQuNGHDQor0KPRiNCw0LrQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCu0YDRjNC10LLQuNGHDQor0JrQuNC90LXQu9C10LIsINCS0LvQsNC00LjQvNC40YAg0JPQtdC+0YDQs9C40LXQstC40YcNCivQpNCw0LvQsNC70LXQtdCyLCDQodC10YDQs9C10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC40YDQuNC10L3QutC+LCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC70LXQvdC+0LLQuNGHDQor0KTQsNGA0YXRg9GC0LTQuNC90L7Qsiwg0JjQs9C+0YDRjCDQn9Cw0LLQu9C+0LLQuNGHDQor0JrQuNGA0LjQu9C7LCDQvNC40YLRgNC+0L/QvtC70LjRgg0KK9Ck0LXQtNC+0YDQvtCyLCDQkdC+0YDQuNGBINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQmtC40YDQv9C40YfQvdC40LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ck0LXQtNC+0YDQvtCyLCDQktCw0LvQtdGA0LjQuSDQktCw0LvQtdGA0YzQtdCy0LjRhw0KK9Ca0LjRgNC/0LjRh9C90LjQutC+0LIsINCc0LjRhdCw0LjQuyDQn9C10YLRgNC+0LLQuNGHDQor0KTQtdC00L7RgNC+0LIsINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JrQuNGA0L/QuNGH0L3QuNC60L7Qsiwg0K7RgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQpNC10LTQvtGA0L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC40YHQtdC70LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KTQtdC00L7RgNC+0LIsINCh0LLRj9GC0L7RgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0LjRgdC10LvQtdCyLCDQktGP0YfQtdGB0LvQsNCyINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KTQtdC00L7RgdC10LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0LjRgdC10LvQtdCyLCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ck0LXQtNC+0YHQtdC10LLQsC3QqNGD0LrRiNC40L3QsCwg0JvQuNC00LjRjyDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Ca0LjRgdC10LvQtdCyLCDQntC70LXQsyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQpNC10LTQvtGB0L7Qsiwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQmtC40YHQu9GO0LosINCc0LjRhdCw0LjQuyDQkdC+0YDQuNGB0L7QstC40YcNCivQpNC10LTRg9C70L7QstCwLCDQkNC70LXQstGC0LjQvdCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0JrQuNGGLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KTQtdC00YPRgtC40L3QvtCyLCDQrtGA0LjQuSDQrtGA0YzQtdCy0LjRhw0KK9Ca0LvQtdCx0LDQvdC+0LIsINCY0LvRjNGPINCY0L7RgdC40YTQvtCy0LjRhw0KK9Ck0LjQu9Cw0YLQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNC70LXQvdGC0LjQvdC+0LLQuNGHDQor0JrQu9C40LzQsNC90YLQvtCy0LAsINCT0LDQu9C40L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0KTQuNC70LjQvNC+0L3QvtCyLCDQktCw0LTQuNC8INCU0L7QvdCw0YLQvtCy0LjRhw0KK9Ca0LvRj9C80LrQuNC9LCDQmNCz0L7RgNGMINCc0L7QuNGB0LXQtdCy0LjRhw0KK9Ck0LjQu9C40L0sINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0L3Ri9GILCDQktCw0LvQtdC90YLQuNC9INCk0LjQu9C40L/Qv9C+0LLQuNGHDQor0KTQuNC70LjQv9C10L3QutC+LCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC+0LHQtdC70LXQsiwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KTQuNC70LjQv9C/0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0L7QsdC10YYsINCa0L7QvdGB0YLQsNC90YLQuNC9INCY0LLQsNC90L7QstC40YcNCivQpNC40LvQuNC/0L/QvtCyLCDQn9C10YLRgCDQodC10YDQs9C10LXQstC40YcNCivQmtC+0LHQt9C+0L0sINCY0L7RgdC40YQg0JTQsNCy0YvQtNC+0LLQuNGHDQor0KTQuNC70YzRiNC40L0sINCc0LjRhdCw0LjQuyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmtC+0LHRi9C70LrQuNC9LCDQktCw0YHQuNC70LjQuSDQpNC10LTQvtGA0L7QstC40YcNCivQpNC40L3RjNC60L4sINCe0LvQtdCzINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtCy0LDQu9C10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQr9C60L7QstC70LXQstC40YcNCivQpNC+0LzQuNC90YbQtdCyLCDQodC10YDQs9C10Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Ca0L7QstCw0LvQtdCyLCDQktCw0LvQtdC90YLQuNC9INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KTQvtGA0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCV0LLQs9C10L3RjNC10LLQuNGHDQor0JrQvtCy0LDQu9C10LIsINCd0LjQutC+0LvQsNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0KTRgNCw0LTQutC+0LIsINCc0LjRhdCw0LjQuyDQldGE0LjQvNC+0LLQuNGHDQor0JrQvtCy0LDQu9C10LIsINCh0LXRgNCz0LXQuSDQkNC00LDQvNC+0LLQuNGHDQor0KTRgNCw0L3Quiwg0KHQtdGA0LPQtdC5INCe0YLRgtC+0LLQuNGHDQor0JrQvtCy0LDQu9C10L3QvtC6LCDQktC70LDQtNC40LzQuNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KXQsNCx0LDRgNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQmtC+0LLQsNC70YzRgdC60LjQuSwg0JvQtdC+0L0g0JjQvtGB0LjRhNC+0LLQuNGHDQor0KXQsNCx0LDRgNC+0LIsINCe0LvQtdCzINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Ca0L7QstC70Y/Qs9C40L0sINCQ0L3QsNGC0L7Qu9C40Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0KXQsNC60LDQvNCw0LTQsCwg0JjRgNC40L3QsCDQnNGD0YbRg9C+0LLQvdCwDQor0JrQvtCz0LDQvSwg0JXQstCz0LXQvdC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KXQsNC80LDQtdCyLCDQkNC30LDRgiDQmtC40Y/QvNC+0LLQuNGHDQor0JrQvtC20L7QutC40L0sINCV0LLQs9C10L3QuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KXQsNGA0LjRgtC+0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Ca0L7Qt9Cw0LosINCU0LzQuNGC0YDQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KXQsNGA0LjRgtC+0L3QvtCyLCDQldCy0LPQtdC90LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0L7Qt9C10YDQsNC00YHQutC40LksINCQ0L3QsNGC0L7Qu9C40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQpdCw0YDQuNGC0L7QvdC+0LIsINCd0LjQutC+0LvQsNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JrQvtC30LjRhtGL0L0sINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQpdCw0YLRgtCw0LEsICjQpdCw0LHQuNCxINCQ0LHQtNGD0Lsg0KDQsNGF0LzQsNC9KQ0KK9Ca0L7Qt9C70L7Qsiwg0JDQvdC00YDQtdC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cl0LLQsNGC0LrQvtCyLCDQndC40LrQvtC70LDQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0JrQvtC30LvQvtCyLCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cl0LjQttCwLCDQk9C10L7RgNCz0LjQuSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0L7Qt9GL0YDQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cl0LvRi9GB0YLRg9C9LCDQktC40LrRgtC+0YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC+0LfRi9GA0LXQsiwg0JDQvdC00YDQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cl0L7QtNC+0YDQutC+0LLRgdC60LjQuSwg0JzQuNGF0LDQuNC7INCR0L7RgNC40YHQvtCy0LjRhw0KK9Ca0L7Qt9GL0YDQtdCy0LAsINCQ0LvQtdC60YHQsNC90LTRgNCwINCc0LjRhdCw0LnQu9C+0LLQvdCwDQor0KXQvtC00YvRgNC10LIsINCT0LXQvdC90LDQtNC40Lkg0JzQsNC60YHQuNC80L7QstC40YcNCivQmtC+0LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQnNGD0YXQsNC80LXQtNC+0LLQuNGHDQor0KXQvtC70L7QtCwg0JvQtdC+0L3QuNC0INCY0LLQsNC90L7QstC40YcNCivQmtC+0LrQvtGI0LjQvSwg0JDQvdC00YDQtdC5INCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQpdC+0YXQu9C+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtC+0LvQtdGB0L3QuNC60L7Qsiwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQpdC+0YXRgNGP0LrQvtCy0LAsINCe0LvRjNCz0LAg0KHQtdGA0LPQtdC10LLQvdCwDQor0JrQvtC70LXRgdC90LjQutC+0LIsINCc0LjRhdCw0LjQuyDQn9C10YLRgNC+0LLQuNGHDQor0KXRgNC40L/QtdC70YwsINCT0LXQvdC90LDQtNC40Lkg0KLQuNC80L7RhNC10LXQstC40YcNCivQpdGA0LjRgdGC0LXQvdC60L4sINCS0LjQutGC0L7RgCDQkdC+0YDQuNGB0L7QstC40YcNCivQmtC+0LvRjtGI0LjQvSwg0JXQstCz0LXQvdC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cl0YDRg9GB0YLQsNC70LXQsiwg0JPQtdGA0LzQsNC9INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtC80LDRgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcNCivQpdGD0LHQuNC10LIsINCS0LvQsNC00LjQvNC40YAg0JjRgdC70LDQvNC+0LLQuNGHDQor0JrQvtC80LDRgNC+0LIsINCV0LLQs9C10L3QuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9Cl0YPRgtCw0L3QvtCyLCDQm9C10L7QvdC40LQg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtC+0LzQsNGA0L7QstGB0LrQuNC5LCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmtC+0LzQvtCyLCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cm0LLQtdGC0LrQvtCyLCDQktCw0LvQtdC90YLQuNC9INCY0LLQsNC90L7QstC40YcNCivQmtC+0LzRh9Cw0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9Cm0LjQsdC70LjQtdCyLCDQktCw0YHQuNC70LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0L7QvdC00YDQsNGC0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCY0LPQvdCw0YLQvtCy0LjRhw0KK9Cm0LjQutGDLCDQmtCw0LfQsdC10Log0JDRgdC70LDQvdCx0LXRh9C10LLQuNGHDQor0JrQvtC90LTRgNCw0YLRjNC10LIsINCT0LXQvtGA0LPQuNC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQmtC+0L3QvtC90L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cn0LDQudC60LAsINCu0YDQuNC5INCv0LrQvtCy0LvQtdCy0LjRhw0KK9Ca0L7QvdGB0YLQsNC90YLQuNC90L7Qsiwg0JjQu9GM0Y8g0JLQu9Cw0LTQuNGB0LvQsNCy0L7QstC40YcNCivQp9Cw0L/RgtGL0L3QvtCyLCDQktCw0LvQtdGA0L3QuNC5INCY0LLQsNC90L7QstC40YcNCivQmtC+0L3RgtCw0YjQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCf0LDQstC70L7QstC40YcNCivQp9Cw0YXQutC40LXQsiwg0JHQsNGI0LjRgCDQkNGF0LzQtdC00L7QstC40YcNCivQp9C10YDQtdC/0LrQvtCyLCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0L7RgNCz0YPQvdGO0LosINCu0YDQuNC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQp9C10YDQutC10YHQvtCyLCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC+0YDQttCw0LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQp9C10YDQvdC10L3QutC+LCDQkNC90LTRgNC10Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Ca0L7RgNC90LjQtdC90LrQviwg0JLQuNC60YLQvtGAINCj0LvRjNGP0L3QvtCy0LjRhw0KK9Cn0LXRgNC90LjRh9C10L3QutC+LCDQrtGA0LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ca0L7RgNC90LjQu9C+0LLQsCwg0JfQvtGPINCQ0YTQsNC90LDRgdGM0LXQstC90LANCivQp9C10YDQvdC+0LPQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JrQvtGA0L3Rg9C60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cn0LXRgNC90L7QvNGL0YDQtNC40L0sINCS0LjQutGC0L7RgCDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0L7RgNC+0LLQvdC40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQtdC90LjQtNC40LrRgtC+0LLQuNGHDQor0KfQtdGA0L3Ri9C5LCAo0KfQtdGA0L3QvtC5KSDQnNC40YXQsNC40Lsg0KHQtdC80LXQvdC+0LLQuNGHDQor0JrQvtGA0L7Qu9C10LIsINCe0LvQtdCzINCf0LXRgtGA0L7QstC40YcNCivQp9C10YDQvdGL0YjQtdCyLCDQkNC70LXQutGB0LXQuSDQkNC90LTRgNC10LXQstC40YcNCivQmtC+0YDQvtGC0LrQvtCyLCDQm9C10L7QvdC40LQg0JLQuNC60YLQvtGA0L7QstC40YcNCivQp9C10YDQvdGL0YjQtdCyLCDQktCw0YHQuNC70LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtGA0YHQsNC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQp9C10YHQvdCw0LrQvtCyLCDQkNC70LXQutGB0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0L7RgNGB0YPQvSwg0K7RgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQp9C10YLQuNC9LCDQmNCy0LDQvSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0L7RgNGI0YPQvdC+0LIsINCb0LXQsiDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cn0LXRhdC+0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Ca0L7RgdC40LrQvtCyLCDQnNC40YXQsNC40Lsg0KTQuNC70LjQv9C/0L7QstC40YcNCivQp9C10YfQtdCy0LDRgtC+0LIsINCS0LjQutGC0L7RgCDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0L7RgdGC0LXRgNC40L0sINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KfQuNC60LjQvSwg0JLQsNC70LXQvdGC0LjQvSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0L7RgdGC0LjQvSwg0JPQtdC+0YDQs9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQp9C40LvQuNC90LPQsNGA0L7Qsiwg0JDRgNGC0YPRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0L7RgdGC0L7QtdCyLCDQmNGB0YHQsCDQnNCw0LPQvtC80LXQtNC+0LLQuNGHDQor0KfQuNGB0YLQvtGF0L7QtNC+0LLQsCwg0KDQuNGC0LAg0JLQsNGB0LjQu9GM0LXQstC90LANCivQmtC+0YHRgtGO0YLQutC40L0sINCS0LvQsNC00LjQvNC40YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQp9GD0LEsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0KfRg9Cx0LDQudGBLCDQkNC90LDRgtC+0LvQuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9Ca0L7RgtC10LvQutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0KfRg9C80LjQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0L7RgtC10L3QutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cn0YPQvdGM0LrQvtCyLCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtGC0LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0KfRg9GA0LjQu9C+0LIsINCQ0LvQtdC60YHQtdC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JrQvtGFLCDQkNC70YzRhNGA0LXQtCDQoNC10LnQvdCz0L7Qu9GM0LTQvtCy0LjRhw0KK9Cn0YPRgNC60LjQvSwg0JPQtdC90L3QsNC00LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtGI0LXQstCwLCDQktC40L7Qu9C10YLRgtCwINCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC90LANCivQqNCw0LHQsNC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtGI0LXQu9GO0LosINCc0LjRgNC+0YHQu9Cw0LIg0JXQstCz0LXQvdGM0LXQstC40YcNCivQqNCw0LHQsNC90L7Qsiwg0JjQstCw0L0g0JzQuNGF0LDQudC70L7QstC40YcNCivQmtC+0YjQutC40L0sINCc0LjRhdCw0LjQuyDQn9C10YLRgNC+0LLQuNGHDQor0KjQsNCx0LTRg9GA0LDRgdGD0LvQvtCyLCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Co0LDQsdGD0L3QuNC9LCDQmNCy0LDQvSDQn9C10YLRgNC+0LLQuNGHDQor0JrRgNCw0LLQtdGGLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQqNCw0LPQuNC00YPQu9C40L0sINCQ0L3QstC10YAg0JPQsNC70LvRj9C80L7QstC40YcNCivQmtGA0LDQstGG0L7Qsiwg0K7RgNC40Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Co0LDQuNC90YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0K/QutC+0LLQu9C10LLQuNGHDQor0JrRgNCw0LLRh9GD0LosINCb0LXQvtC90LjQtCDQnNCw0LrQsNGA0L7QstC40YcNCivQqNCw0LnQvNC40LXQsiwg0JzQuNC90YLQuNC80LXRgCDQqNCw0YDQuNC/0L7QstC40YcNCivQmtGA0LDQv9C40LLQuNC9LCDQrtGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Co0LDQutC60YPQvCwg0JzQsNGA0YLQuNC9INCb0Y7RhtC40LDQvdC+0LLQuNGHDQor0JrRgNCw0YHQvdC40LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQpNC10LTQvtGA0L7QstC40YcNCivQqNCw0LzQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JrRgNCw0YHQvdC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Co0LDQvdC00YvQsdC40L0sINCS0LDRgdC40LvQuNC5INCY0LLQsNC90L7QstC40YcNCivQmtGA0LDRiNC10L3QuNC90L3QuNC60L7Qsiwg0J/QsNCy0LXQuyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQqNCw0L/QvtCy0LDQu9GM0Y/QvdGGLCDQkNC90LTRgNC10Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQmtGA0LXQvNC10L3QtdGGLCDQmNGA0LjQvdCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0KjQsNC/0L7RiNC90LjQutC+0LIsINCV0LLQs9C10L3QuNC5INCY0LLQsNC90L7QstC40YcNCivQmtGA0LXRgdGBLCDQktC40LrRgtC+0YAg0JzQtdC70YzRhdC40L7RgNC+0LLQuNGHDQor0KjQsNGA0LDQv9C+0LIsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0JrRgNC10YHRgtGM0Y/QvdC40L3QvtCyLCDQldCy0LPQtdC90LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQqNCw0YDQvtCy0LAsINCT0LDQu9C40L3QsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Ca0YDQuNCy0LXQu9GM0YHQutCw0Y8sINCd0LjQvdCwINCS0LjQutGC0L7RgNC+0LLQvdCwDQor0KjQsNGC0LDQu9C40L0sINCh0YLQsNC90LjRgdC70LDQsiDQodC10YDQs9C10LXQstC40YcNCivQmtGA0YPQs9C70LjQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Co0LDRgtCw0LvQvtCyLCDQodC10YDQs9C10Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQmtGA0YPQs9C70L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQodC10YDQs9C10LXQstC40YcNCivQqNCw0YTRgNCw0L3QuNC6LCDQrtGA0LjQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0JrRgNGD0L/QvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Co0LDRhdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtGA0Y7Rh9C60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Co0LDRhdGA0LDQuSwg0KHQtdGA0LPQtdC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JrRg9Cy0LDQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQqNCw0YjRg9GA0LjQvSwg0KHQtdGA0LPQtdC5INCf0LXRgtGA0L7QstC40YcNCivQmtGD0LLRiNC40L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Co0LLQtdGGLCDQm9GO0LHQvtCy0Ywg0J3QuNC60LjRgtC40YfQvdCwDQor0JrRg9C00LXQu9C40L3QsCwg0JvRjtCx0L7QstGMINCa0L7QvdC00YDQsNGC0YzQtdCy0L3QsA0KK9Co0LLQuNC00LvQtdGALCDQldCy0LPQtdC90LjQuSDQnNCw0YDQutC+0LLQuNGHDQor0JrRg9C00YDQuNC9LCDQkNC70LXQutGB0LXQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Co0LLRi9C00LrQvtC5LCDQnNC40YXQsNC40Lsg0JXRhNC40LzQvtCy0LjRhw0KK9Ca0YPQtdCy0LTQsCwg0JPRgNC40LPQvtGA0LjQuSDQkNC90LTRgNC10LXQstC40YcNCivQqNC10LLQtdC70YPRhdCwLCDQktC40LrRgtC+0YAg0KHRgtC10L/QsNC90L7QstC40YcNCivQmtGD0LfQvdC10YbQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KjQtdCy0YfQtdC90LrQviwg0JLRj9GH0LXRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCR0L7RgNC40YEg0K7RgNGM0LXQstC40YcNCivQqNC10LLRh9C10L3QutC+LCDQrtGA0LjQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Co0LXQudC90LjRgSwg0JLQuNC60YLQvtGAINCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JrRg9C30L3QtdGG0L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQrtGA0YzQtdCy0LjRhw0KK9Co0LXQu9C40YksINCf0LXRgtGAINCR0L7RgNC40YHQvtCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCb0LXQvtC90YLQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KjQtdC90LjQvSwg0J7Qu9C10LMg0KHQtdC80LXQvdC+0LLQuNGHDQor0JrRg9C30L3QtdGG0L7Qsiwg0JzQuNGF0LDQuNC7INCS0LDRgNGE0L7Qu9C+0LzQtdC10LLQuNGHDQor0KjQtdC90LrQsNGA0LXQsiwg0J7Qu9C10LMg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtGD0LfQvdC10YbQvtCyLCDQrtGA0LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0KjQtdGB0YLQsNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0JrRg9C30YzQvNC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQqNC10YHRgtCw0LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQrtGA0YzQtdCy0LjRhw0KK9Ca0YPQu9C10YjQvtCyLCDQntC70LXQsyDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Co0LjQv9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkdC+0YDQuNGB0L7QstC40YcNCivQmtGD0LvQuNC6LCDQk9C10L3QvdCw0LTQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KjQuNGI0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JrRg9C70LjQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Co0LrQuNGA0LrQviwg0JDQvdCw0YLQvtC70LjQuSDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0JrRg9C70LjQutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0KjQvNCw0LrQvtCyLCDQnNC40YXQsNC40Lsg0JLQuNC60YLQvtGA0L7QstC40YcNCivQmtGD0LvRjNCx0LDQutCwLCDQndC40L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0KjQvNCw0YLQvtCyLCDQrtGA0LjQuSDQkNC90LjRgdC40LzQvtCy0LjRhw0KK9Ca0YPQu9GM0Y/QvdC+0LIsINCV0LLQs9C10L3QuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0KjQvNC10LvQtdCyLCDQndC40LrQvtC70LDQuSDQn9C10YLRgNC+0LLQuNGHDQor0JrRg9C70Y/RgdC+0LLQsCwg0J3QuNC90LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQqNC+0LnQs9GDLCDQodC10YDQs9C10Lkg0JrRg9C20YPQs9C10YLQvtCy0LjRhw0KK9Ca0YPQvNCw0YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KjQvtGF0LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrRg9C/0YbQvtCyLCDQktCw0LvQtdC90YLQuNC9INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KjQv9C40LPQtdC70YwsINCb0LXQvtC90LjQtCDQotC10L7QtNC+0YDQvtCy0LjRhw0KK9Ca0YPRgNCw0LzQuNC9LCDQktC70LDQtNC40LzQuNGAINCf0LXRgtGA0L7QstC40YcNCivQqNGC0L7Qs9GA0LjQvSwg0KHQtdGA0LPQtdC5INCY0LLQsNC90L7QstC40YcNCivQmtGD0YDQsdCw0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KjRgtGL0LPQsNGI0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0YPRgNCz0LjQvdGP0L0sINCh0LXRgNCz0LXQuSDQldGA0LLQsNC90LTQvtCy0LjRhw0KK9Co0YPQsdCwLCDQktC40YLQsNC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQmtGD0YDQutC+0LLQsCwg0JHRjdC70LvQsCDQkNC70LXQutGB0LXQtdCy0L3QsA0KK9Co0YPQsdC40L3QsCwg0KLQsNGC0YzRj9C90LAg0JjQstCw0L3QvtCy0L3QsA0KK9Ca0YPRgNC+0LXQtNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0YPRgNC+0YfQutC40L0sINCS0LjQutGC0L7RgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Co0YPQs9GD0YDQvtCyLCDQoNCw0YHRg9C70Ywg0JjQs9C00LjRgdCw0LzQvtCy0LjRhw0KK9Cb0LDQv9C40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Co0YPQvNC10LnQutC+LCDQktC70LDQtNC40LzQuNGAINCk0LjQu9C70LjQv9C+0LLQuNGHDQor0JvQsNC/0YLQtdCyLCDQmNCy0LDQvSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Co0YPRgNGH0LDQvdC+0LIsINCS0LDQu9C10L3RgtC40L0g0KHQtdGA0LPQtdC10LLQuNGHDQor0JvQsNC/0YjQuNC9LCDQnNC40YXQsNC40Lsg0JjQstCw0L3QvtCy0LjRhw0KK9Co0YPRgtC10LXQsiwg0JLQsNGB0LjQu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cb0LDRgNC40L7QvdC+0LIsINCV0LPQvtGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KjRg9GI0LrQtdCy0LjRhywg0KHRgtCw0L3QuNGB0LvQsNCyINCh0YLQsNC90LjRgdC70LDQstC+0LLQuNGHDQor0JvQsNGA0LjRhtC60LjQuSwg0JLQu9Cw0LTQuNC80LjRgCDQldGA0LzQvtC70LDQtdCy0LjRhw0KK9Cp0LXQutC+0YfQuNGF0LjQvSwg0K7RgNC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cb0LDRhdC+0LLQsCwg0JXQutCw0YLQtdGA0LjQvdCwINCk0LjQu9C40L/Qv9C+0LLQvdCwDQor0KnQtdGA0LHQsNC6LCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JvQsNGG0LjRgSwg0J7RgtGC0L4g0KDRg9C00L7Qu9GM0YTQvtCy0LjRhw0KK9Cp0LXRgNCx0LDQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cb0LXQsdC10LTQtdCyLCDQktGP0YfQtdGB0LvQsNCyINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0K3QsdC30LXQtdCyLCDQkdC+0YDQuNGBINCh0LDRhNCw0YDQvtCy0LjRhw0KK9Cb0LXQsdC10LTRjCwg0JDQu9C10LrRgdCw0L3QtHAg0JjQstCw0L3QvtCy0LjRhw0KK9Cb0LXQsdC10LTRjCwg0JDQu9C10LrRgdC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cu0LzQsNGI0LXQsiwg0JLQsNC70LXQvdGC0LjQvSDQkdC+0YDQuNGB0L7QstC40YcNCivQm9C10LzQtdGI0LXQsiwg0JzQuNGF0LDQuNC7INCv0LrQvtCy0LvQtdCy0LjRhw0KK9Cu0YDQutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cb0LXQvNC10YjQvtCyLCDQk9C10L3QvdCw0LTQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cu0YDRh9C40LosINCS0LvQsNC00LjRgdC70LDQsiDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JvQtdC+0L3QuNC0LCDQndC40LrQvtC70LDQtdCy0LjRhyDQp9C10YDQvdGL0YjQtdCyDQor0K7RgNGM0LXQsiwg0JzQuNGF0LDQuNC7INCX0LjQvdC+0LLRjNC10LLQuNGHDQor0K7RiNC10L3QutC+0LIsINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0LXQvtC90YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0K/QstC70LjQvdGB0LrQuNC5LCDQk9GA0LjQs9C+0YDQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JvQtdGB0LjQvSwg0JzQuNGF0LDQuNC7INCu0YDRjNC10LLQuNGHDQor0K/QutC40LzQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JvQtdGD0YjQutC40L0sINCh0LXRgNCz0LXQuSDQk9C10L3QvdCw0LTRjNC10LLQuNGHDQor0K/QutC40LzQvtCyLCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQm9C40LLRiNC40YYsINCQ0LvQtdC60YHQsNC90LTRgCDQr9C60L7QstC70LXQstC40YcNCivQr9C60L7QstC70LXQsiwg0JLQtdC90LjQsNC80LjQvSDQpNC10LTQvtGA0L7QstC40YcNCivQm9C40LzQvtC90L7QsiwgKNCh0LDQstC10L3QutC+KSDQrdC00YPQsNGA0LQg0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0K/QutC+0LLQu9C10LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Cb0LjQvdC90LjQuiwg0JLQuNGC0LDQu9C40Lkg0JLQuNC60YLQvtGA0L7QstC40YcNCivQr9C60L7QstC70LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0LjQv9C40YbQutC40LksINCS0LDRgdC40LvQuNC5INCh0LXQvNC10L3QvtCy0LjRhw0KK9Cv0LrRg9Cx0L7QstC40YcsINCb0LXQvtC90LjQtCDQkNGA0LrQsNC00YzQtdCy0LjRhw0KK9Cb0LjQv9GB0LjRhiwg0JjQs9C+0YDRjCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQr9C60YPQvdC40L0sINCT0LvQtdCxINCf0LDQstC70L7QstC40YcNCivQm9C40YHQtdGG0LrQuNC5LCDQn9C10YLRgCDQmNCy0LDQvdC+0LLQuNGHDQor0K/QutGD0YgsINCc0LjRhdCw0LjQuyDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cb0LjRgdC40YbQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCY0LLQsNC90L7QstC40YcNCivQr9C60YPRiNC60LjQvSwg0JTQvNC40YLRgNC40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQm9C40YHQuNGH0LrQuNC9LCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0K/QvdC00LDRgNCx0LjQtdCyLCDQl9C10LvQuNC80YXQsNC9INCQ0LHQtNGD0LzRg9GB0LvQuNC80L7QstC40YcNCivQm9C40YHQvtCy0YHQutC40LksINCh0LXRgNCz0LXQuSDQpNC10LTQvtGA0L7QstC40YcNCivQr9C90LrQvtCy0YHQutC40LksINCQ0YDQutCw0LTQuNC5INCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0JvQuNGF0LDQvdC+0LIsINCQ0LvRjNCx0LXRgNGCINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQr9GA0LjRhdCw0L3QvtCyLCDQpdC+0LYt0JDRhdC80LXQtA0KK9Cb0LjRhdCw0YfQtdCyLCDQktCw0YHQuNC70LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0LjRhdCw0YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0K/RgNC+0YHQu9Cw0LLRhtC10LIsINCS0LvQsNC00LjQvNC40YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cb0L7QsdCw0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0K/RgNC+0YjQtdC90LrQviwg0JDQvdCw0YLQvtC70LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0K/RgNGD0LvQu9C40L0sINCS0LDRhNCwINCh0LXQudGC0LHQsNGC0YLQsNC70L7QstC40YcNCivQm9C+0LPQuNC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0K7RgNGM0LXQstC40YcNCivQr9GA0YvQs9C40L3QsCwg0KLQsNGC0YzRj9C90LAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQvdCwDQor0JvQvtC00LrQuNC9LCDQrtGA0LjQuSDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Cv0YHQuNC9LCDQldCy0LPQtdC90LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JvQvtC30LjQvdGB0LrQsNGPLCDQltCw0L3QvdCwINCc0LjRhdCw0LnQu9C+0LLQvdCwDQor0K/RgdGC0YDQttC10LzQsdGB0LrQuNC5LCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JvQvtC/0LDRgtC40L0sINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQr9GF0LjQvSwg0KXQsNC70LjRgiDQkNGF0LzQtdGC0L7QstC40YcNCivQm9C+0YLQvtGA0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0K/RhtC60LXQstC40YcsINCR0L7RgNC40YEg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQm9GD0LbQutC+0LIsINCu0YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNILnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDZmNDhlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQKQEAgLTAsMCArMSw2MTI1NCBAQAor77u/Iy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisKK8SMQcSMScSGIEFMRUtTQU5EQVIKK8SMQcSMScSGIEpFTElDQQorxIxBxIxJxIYgTUFSSUpBCivEjEHEjEnEhiBOSUtPTEEKK8SMQcSMSUpBIEJSQU5LTworxIxBxJBFTk9WScSGIMW9QVJLTworxIxBxJBFTk9WScSGIFNBQklOQQorxIxBQkFJIEFORFJJSkEKK8SMQUJBSSBMQUpPxaAKK8SMQUJBSSBNQVJJSkEKK8SMQUJBSSBTVEVWQU4KK8SMQUJBSSBTVEVWQU4KK8SMQUJBUktBUEEgQlJBTktPCivEjEFCQVJLQVBBIE1JTEVOS08KK8SMQUJBUktBUEEgTUlST1NMQVYKK8SMQUJBUktBUEEgU0lNTworxIxBQkFSS0FQQSBTVEFOS08KK8SMQUJBUktBUEEgVEFNQVJBCivEjEFCQVJLQVBBIFRPTUHFoAorxIxBQkRBUknEhiBOSUtPTEEKK8SMQUJEQVJJxIYgWk9SSUNBCivEjEFCSSBOQU5ET1IKK8SMQUJPVknEhiBNSUxBTgorxIxBQlJBREkgQUdORVpJSkEKK8SMQUJSQURJIElWQU4KK8SMQUJSQURJIEpFTEVOQQorxIxBQlJBREkgTEpVQklDQQorxIxBQlJBREkgU1RFVkFOCivEjEFCUkRBIE1BUlRJTgorxIxBQlJJTE8gQk9HREFOCivEjEFCUklMTyBCUkFOSVNMQVYKK8SMQUJSSUxPIExBWkFSCivEjEFCUklMTyBMSlVCSUNBCivEjEFCUklMTyBTUEFTT0pBCivEjEFERcWgIFpERU5LQQorxIxBREVTS0kgQkxBR09KRQorxIxBRE9WU0tJIFZMQURJTUlSCivEjEFHTEpFVknEhiBUT01BCivEjEFHT1JPVknEhiBWTEFESU1JUgorxIxBSkEgVkFOS0EKK8SMQUpJxIYgQk9HT0xKVUIKK8SMQUpJxIYgQk9SSVNMQVYKK8SMQUpJxIYgUkFET1NMQVYKK8SMQUvFoElSQU4gTUlMQURJTgorxIxBS0FOIEVVR0VOCivEjEFLQU4gRVZHRU5JSkUKK8SMQUtBTiBJVkFOCivEjEFLQU4gSlVMSUpBTgorxIxBS0FOIE1JSEFKTE8KK8SMQUtBTiBTVEVWQU4KK8SMQUtBTiBWTEFESU1JUgorxIxBS0FOIFZMQURJTUlSCivEjEFLQU4gVkxBRElNSVIKK8SMQUtBUkEgQU5BCivEjEFLQVJFVknEhiBNT01JUgorxIxBS0FSRVZJxIYgTkVERUxKS08KK8SMQUtJIMWgQU5ET1IKK8SMQUtJIEFNQUxJSkEKK8SMQUtJIEFORFJBxaAKK8SMQUtJIExBRElTTEFWCivEjEFLSSBMQUpPxaAKK8SMQUtJIExBU0xPCivEjEFLSSBNSUhBTEoKK8SMQUtJIE1JSEFMSgorxIxBS0kgUElST8WgS0EKK8SMQUtJxIYgU0FWQQorxIxBS0nEhiBaTEFUT0pFIERSCivEjEFLTUFLIERBTklDQQorxIxBS01BSyBERUpBTgorxIxBS01BSyBMQVpBUgorxIxBS01BSyBMSklMSkFOQQorxIxBS01BSyBMSlVCSUNBCivEjEFLTUFLIFNPRklKQQorxIxBS01BSyBTVkVUT1pBUgorxIxBS01BTCBWT0pJU0xBVgorxIxBS09WQUMgQk9SSVNMQVYKK8SMQUtPVkFDIE1JUk9TTEFWCivEjEFLT1ZBQyBQQU5URUxJSkEKK8SMQUtPVkFDIFNBVkEKK8SMQUtPVknEhiBaRFJBVktPCivEjEFLUkEgTUlMRU5BCivEjEFMQSDEkFVMQQorxIxBTEEgSVJFTgorxIxBTEEgSVZBTktBCivEjEFMQSBMRU5LQQorxIxBTEFLScSGIEJSQU5LTworxIxBTEFLScSGIExKVUJPTUlSCivEjEFMQUtJxIYgTUFSS08KK8SMQUxBS0nEhiBNSUxBTgorxIxBTEUgSVZBTgorxIxBTEUgSk9TSVAKK8SMQUxFIE1JTEFOCivEjEFMRSBTT0ZJSkEKK8SMQUxFIFZMQURJTUlSCivEjEFMRU5JxIYgQk9SSVNMQVYKK8SMQUxFTknEhiBCUkFOSVNMQVZBCivEjEFMRU5JxIYgRElOQQorxIxBTEVOScSGIERSQUdJQ0EKK8SMQUxFTknEhiBMQVpBUgorxIxBTEVOScSGIExKSUxKQU5BCivEjEFMRU5JxIYgTEpVQk9NSVIKK8SMQUxFTknEhiBMVUtBCivEjEFMRU5JxIYgTUlMT1NBVkEKK8SMQUxFTknEhiBNSVJKQU5BCivEjEFMRU5JxIYgU1RFVkFOCivEjEFMScSGIEJPxaBLTworxIxBTEnEhiBKT1ZPCivEjEFMScSGIE1BUklKQQorxIxBTElKQSBEQU5JQ0EKK8SMQUxJSkEgSk9WQU4KK8SMQUxJSkEgTEFaQVIKK8SMQUxJSkEgTUlMQU4KK8SMQU3EkEnEhiBKQUhJSkEKK8SMQU1BTkdPUyDEkE9SxJBFCivEjEFNQU5HT1MgS0FUSUNBCivEjEFNQkVSIExKVUJJQ0EKK8SMQU1CT1IgxJBVUk8KK8SMQU1CT1IgQU5EUklKQQorxIxBTUJPUiBKT1NJUAorxIxBTUTFvUnEhiBORUFECivEjEFNTyBCQVJCQVJBCivEjEFNUFJBRyDEkE9SxJBFIExFS0FSCivEjEFNUFJBRyBEUkFHQQorxIxBTVBSQUcgRFXFoEFOCivEjEFNUFJBRyBMSlVCSUNBCivEjEFNUFJBRyBNSUxBTgorxIxBTsSMQVIgxJBPUsSQRQorxIxBTsSMQVJFVknEhiBKT1ZBTktBCivEjEFOxIxBUkVWScSGIE1JUk9MSlVCCivEjEFOxIxBUkVWScSGIE1MQURFTgorxIxBTkFExb1JxIYgxJBPUsSQRQorxIxBTkFExb1JxIYgSk9WQU4KK8SMQU5BRMW9ScSGIFNBTkpBCivEjEFOQURBTk9WScSGIEFORFJJSkEKK8SMQU5BREFOT1ZJxIYgTUlSS08KK8SMQU5BREFOT1ZJxIYgUkFETUlMQQorxIxBTkFESSBKQU5PxaAgTVIKK8SMQU5BREkgTEpJTEpBTkEKK8SMQU5BR0xJxIYgxJBPS0EKK8SMQU5BSyDFvUVMSktPCivEjEFOQUsgxJBVUkEKK8SMQU5BSyBCT1NJTEpLQSBEUgorxIxBTkFLIE1JSEFKTE8KK8SMQU5BSyBNSVJLTworxIxBTkFLIE1PTcSMSUxPCivEjEFOQUsgTkVWRU5LQQorxIxBTkFLIE5JS09MQQorxIxBTkFLIE5JS09MQQorxIxBTkFLIE5JS09MQQorxIxBTkFLIE9MSVZFUkEKK8SMQU5BSyBWRUxKS08KK8SMQU5BSyBWRVNFTElOCivEjEFOQUsgVlVLQcWgSU4KK8SMQU5HQUxJxIYgRFXFoEFOCivEjEFOScSGIExKSUxKQU5BCivEjEFOScSGIE1JTE/FoAorxIxBTknEhiBPU1RPSkEKK8SMQU5KRVZBQyDFoEFSTE9UQQorxIxBTkpJIEFORFJJSkEKK8SMQU5KSSBHQUJJCivEjEFOSkkgR0FCT1IKK8SMQU5KSSBHSVpFTEEKK8SMQU5KSSBJUkVOQQorxIxBTkpJIElSRU5BCivEjEFOSkkgSkFOS08KK8SMQU5KSSBLQVJMTworxIxBTkpJIExBU0xPCivEjEFOSkkgTEFTTE8KK8SMQU5KSSBOQURBCivEjEFOSkkgU0FNVUVMCivEjEFOSkkgU1RFVkFOCivEjEFOSkkgU1RFVkFOCivEjEFOSkkgVkxBRElNSVIKK8SMQU5KSSBaT0xUQU4KK8SMQU5KSSBaVVpBTkEKK8SMQU5LT1ZJxIYgxJBPUsSQRQorxIxBTktPVknEhiBCT8WgS08KK8SMQU5LT1ZJxIYgQk9KQQorxIxBTktPVknEhiBCUkFOS08KK8SMQU5LT1ZJxIYgREFORQorxIxBTktPVknEhiBEQU5FCivEjEFOS09WScSGIERBTkUKK8SMQU5LT1ZJxIYgREFOSUNBCivEjEFOS09WScSGIEpPVkEKK8SMQU5LT1ZJxIYgTEpVQklOS0EKK8SMQU5LT1ZJxIYgTUFSSUpBCivEjEFOS09WScSGIE1BUktPCivEjEFOS09WScSGIE1JS0EKK8SMQU5LT1ZJxIYgTUlMQU4KK8SMQU5LT1ZJxIYgTUlMQU4KK8SMQU5LT1ZJxIYgTUlMSVZPSgorxIxBTktPVknEhiBNSUxPUkFECivEjEFOS09WScSGIE1MQURFTgorxIxBTktPVknEhiBPTEdBCivEjEFOS09WScSGIFBFVEFSIE1SCivEjEFOS09WScSGIFBFVEFSCivEjEFOS09WScSGIFJBRE9NSVIKK8SMQU5LT1ZJxIYgUkFET01JUgorxIxBTktPVknEhiBTTEHEkEFOQQorxIxBTktPVknEhiBTTEFWS08KK8SMQU5LT1ZJxIYgU0xPQk9EQU4KK8SMQU5LT1ZJxIYgWkxBVEEKK8SMQU5LT1ZJxIYgWk9SQU4KK8SMQVAgQU5UQUwKK8SMQVBBTkRBIEpPU0lQCivEjEFQRUxKQSBEUkFHQU4KK8SMQVBFTEpBIEpBTiBEUgorxIxBUEVMSkEgSk9WQU4KK8SMQVBFTEpBIFBBVkxFCivEjEFQS08gSlVMSUpBTgorxIxBUEtPIE1JTE9SQUQKK8SMQVBLTyBNSVJPU0xBVgorxIxBUEtPIE5FU1RPUgorxIxBUE8gQURBTQorxIxBUE8gSUxJSkEKK8SMQVBPIEpBTk/FoAorxIxBUE8gTUFSSUpBCivEjEFQTyBOQURBCivEjEFQUknEhiBNSUxPUkFECivEjEFSQVBJxIYgVE9NSVNMQVYKK8SMQVNOSkkgRVLFvUVCRVQKK8SMQVNOSkkgRkVSRU5DCivEjEFTVFZFTiBKVUxJSkFOQQorxIxBVCBBTkRSSUpBCivEjEFUQUxJTkFDIE1JTEFOCivEjEFUQUxJTkFDIE5JS09MQQorxIxBVEFMT1YgU1RPSkFOCivEjEFUTEFKQSBTVEFOQQorxIxBVExBSyBPTElWRVJBCivEjEFUVcWgIFpMQVRLTworxIxBVcWgRVZJxIYgS0VNQUwKK8SMQVXFoEVWScSGIE1JREhBVAorxIxBVcWgRVZJxIYgVEFUSkFOQQorxIxBVknEhiDFoFRFRklDQQorxIxBVknEhiDFvUlWS0EKK8SMQVZJxIYgxJBPUsSQRQorxIxBVknEhiBCT8WgS08KK8SMQVZJxIYgQlJBTklTTEFWCivEjEFWScSGIERFSkFOCivEjEFWScSGIERFSkFOCivEjEFWScSGIERSQUdJQ0EKK8SMQVZJxIYgRFJBR08KK8SMQVZJxIYgR09SREFOQQorxIxBVknEhiBHT1JEQU5BCivEjEFWScSGIEtSU1RBTgorxIxBVknEhiBMSlVCT01JUgorxIxBVknEhiBMSlVCT01JUgorxIxBVknEhiBMSlVCT01JUgorxIxBVknEhiBNQVJJSkEKK8SMQVZJxIYgTUlMRU5BCivEjEFWScSGIE1JUktPCivEjEFWScSGIFBFVEFSCivEjEFWScSGIFJBRE9NSVIKK8SMQVZJxIYgUkFET1ZBTgorxIxBVknEhiBTTE9CT0RBTgorxIxBVknEhiBTTE9CT0RBTgorxIxBVknEhiBTT0tBCivEjEFWScSGIFRPxaBBCivEjEFWScSGIFZFTElaQVIKK8SMQVZJxIYgVkxBRE8KK8SMQVZJxIYgWk9SS0EKK8SMQVpJTSDEjEVMRUJJSkEKK8SMRcSMRUsgRFJBR0lDQQorxIxFxIxFSyBWSUxJTQorxIxFxIxVSyBBTEVLU0FOREFSCivEjEXEjFVLIEJSQU5JU0xBVgorxIxFxIxVSyBNSUxPxaAKK8SMRcSMVUsgU0xBVklDQQorxIxFxIxVSyBTVEVWQU4KK8SMRcWgTEpBUiDEkFVSQQorxIxFxaBMSkFSIEFMRUtTQU5EQVIKK8SMRcWgTEpBUiBEQVJJTktBCivEjEXFoExKQVIgSk9TSVAKK8SMRcWgTEpBUiBKT1ZBTgorxIxFxaBMSkFSIFNURVZBTgorxIxFxaBMSkVWScSGIERVxaBBTgorxIxFxaBMSkVWScSGIEtPU1RBCivEjEXFoExKRVZJxIYgTUlMRU5LTworxIxFxaBMSkVWScSGIE1JUk9TTEFWQQorxIxFxaBMSkVWScSGIE1PTcSMSUxPCivEjEXFoExKRVZJxIYgU1RBTktPCivEjEVCQUMgTEpVQklDQQorxIxFQkFDIFBBVkxFCivEjEVCRUTFvUnEhiBNSUxBTgorxIxFQlNLSSBWTEFESU1JUgorxIxFQlpBTiBQQU5UQQorxIxFREnEhiBSRUTFvU8KK8SMRUdBUiBCT8W9TworxIxFR0FSIERFU0FOS0EKK8SMRUdBUiBEUkFHQU4KK8SMRUdBUiBNSUxPxaAKK8SMRUdBUiBNSVJLTworxIxFR0FSIFBBTkUKK8SMRUdBUiBTUkVUS08KK8SMRUdBUiBTVEVWQU5JSkEKK8SMRUdBUiBTVkVUTEFOQQorxIxFR0FSIFRPRE9SCivEjEVIIEFOVE9OCivEjEVIIEpPxb1FRgorxIxFSCBKT1NJUAorxIxFSCBKT1ZBTgorxIxFSCBNSUtMT8WgCivEjEVIIFNUQU5LQQorxIxFSCBaTEFUQQorxIxFSEFLIEtBTE1BTiBEUgorxIxFSE9WIElWQU4KK8SMRUhPViBQRVRBUgorxIxFSk9WScSGIEJJU0VSS0EKK8SMRUpPVknEhiBTTE9CT0RBTgorxIxFSk9WScSGIFZFTElNSVIKK8SMRUpPVknEhiBWTEFESU1JUgorxIxFS0FOT1ZJxIYgxb1JVkFOQQorxIxFS0FOT1ZJxIYgVklUT01JUgorxIxFS0UgREXFvUUKK8SMRUtFIE1BUklKQQorxIxFS0UgU05Fxb1BTkEKK8SMRUtFIFNURVZBTgorxIxFS0VSRVZBQyBCUkFOS08KK8SMRUtFUklOQUMgRFXFoEFOCivEjEVLRVJJTkFDIFpPUkFOCivEjEVLSSBEQVJJTktBCivEjEVLSSBEQVZJRAorxIxFS0nEhiBBTkEKK8SMRUtJxIYgREFSSU5LQQorxIxFS0nEhiBESU1JVFJJSkUKK8SMRUtJxIYgRFJBR0FOCivEjEVLScSGIElMSUpBCivEjEVLScSGIEpPVkFOCivEjEVLScSGIE1JTE9SQUQKK8SMRUtJxIYgTUlMT1JBRAorxIxFS0nEhiBNSUxPVkFOCivEjEVLScSGIE1JUkpBTkEKK8SMRUtJxIYgTU9NxIxJTE8KK8SMRUtJxIYgU0FWQQorxIxFS0nEhiBTQVZBCivEjEVLScSGIFZBU0EKK8SMRUtJxIYgWkRSQVZLTworxIxFS1JExb1JTiBSQURJU0xBVgorxIxFTEFSIFNURVZBTgorxIxFTEVCScSGIEFMRUtTQU5EQVIKK8SMRUxFQknEhiBCT8W9TworxIxFTEVCScSGIElMSUpBCivEjEVMRUJJxIYgTUlMT1JBRAorxIxFTEVCScSGIE1PTcSMSUxPCivEjEVMRUJJxIYgT0xHQQorxIxFTEVCScSGLVRVQknEhiBWRVNOQQorxIxFTEVCScSGIFpPUktBCivEjEVMRUtFVEnEhiBKT1ZBTgorxIxFTEVLRVRJxIYgSk9WQU4KK8SMRUxFS0VUScSGIE1JUk9TTEFWCivEjEVMRUtFVEnEhiBNSVJPU0xBVgorxIxFTEVLRVRJxIYgUkFET1ZBTgorxIxFTEVLRVRJxIYgVEFNQVJBCivEjEVMRU5BSyBLQVRBTElOCivEjEVMRVNOSUsgRFJBR1VUSU4KK8SMRUxJxIYgQkFORQorxIxFTEnEhiBESU5LQQorxIxFTEnEhiBHTElHT1JJSkUKK8SMRUxJxIYgSUxJSkEKK8SMRUxJxIYgS0FUQVJJTkEKK8SMRUxJxIYgTEpVQklOS08KK8SMRUxJxIYgTEpVQk9NSVIKK8SMRUxJxIYgTUlMSVZPSgorxIxFTEnEhiBQQVZMRQorxIxFTEnEhiBTUsSQQU4KK8SMRUxJxIYgU1RBTktPIERSCivEjEVMScSGIFZFUkEKK8SMRUxJQ0EgSkVMRU5BCivEjEVMSUtPVknEhiBFTUlMCivEjEVMT0ZJR0EgQU5UT05JSkEKK8SMRUxPVknEhiBNSVJKQU5BCivEjEVMT1ZTS0kgQU5EUkVKCivEjEVMT1ZTS0kgRFJBR0lDQQorxIxFTUFOIMSQT1LEkEUKK8SMRU1BTiDEkFVSQQorxIxFTUFOIEFORFJJSkEKK8SMRU1BTiBEQU5JTE8KK8SMRU1BTiBHT1JEQU5BCivEjEVNQU4gSkFOCivEjEVNQU4gSk9WQU4KK8SMRU1BTiBNScWgQQorxIxFTUFOIE1JUk9TTEFWCivEjEVNQU4gT0xHQQorxIxFTUFOIFJVxb1FTktBCivEjEVNQU4gU0FNVUVMCivEjEVNQU4gU1RFVkFOCivEjEVNQU4gVEVSRVpBCivEjEVNQknEhiBNSUxBTgorxIxFTUVSRSBFUsW9RUJFVAorxIxFTUVSRSBMQUpPxaAKK8SMRU1FUkxJxIYgUEVUQVIKK8SMRU5ERcWgIEJSQU5LTworxIxFTkVKQUMgxb1JVkFOCivEjEVORUpBQyBHUlVKQQorxIxFTkVKQUMgTEpVQklDQQorxIxFTkVKQUMgTEpVQklDQQorxIxFTkVKQUMgTUlMT8WgCivEjEVORUpBQyBNSUxVVElOCivEjEVORUpBQyBUT01JU0xBVgorxIxFTkVKQUMgVkVMSVNMQVYKK8SMRU5HRVJJIEFUSUxBCivEjEVOR0nEhiBNQVJJSkEKK8SMRU5VxaBBIEdFT1JHSU5BCivEjEVQxIxBTkpJIE1JUkpBTkEKK8SMRVBFIEFOSUNBCivEjEVQSSBKQU5PxaAKK8SMRVBJIExBU0xPCivEjEVQSSBNQVJJSkEKK8SMRVBJIE5BTkRPUgorxIxFUEnEhiBCT1JJU0xBVgorxIxFUEnEhiBTTE9CT0RBTgorxIxFUEnEhiBTTUlMSkEKK8SMRVBJxIYgVkVMSU1JUgorxIxFUElOIFZJS1RPUgorxIxFUExFIFNURVZBTgorxIxFUFJFR0kgSVJFTkEKK8SMRVBSRUdJIEpVTElKQQorxIxFUFNLSSBKT1ZBTgorxIxFUFNLSSBTVEVWQU4KK8SMRVIgxaBBTkRPUgorxIxFUiBBTEVLU0FOREFSCivEjEVSIEZSQU5KQQorxIxFUiBMQURJU0xBVgorxIxFUiBNQVJJSkEKK8SMRVJFS09WScSGIEVMSVpBQkVUQQorxIxFUkVLT1ZJxIYgUklTVE8KK8SMRVJFS09WScSGIFNMQVZLTworxIxFUkVLT1ZJxIYgVkFTS1JTSUpFCivEjEVSRVZJxIYgSVZBTgorxIxFUkVWScSGIFZFUklDQQorxIxFUkVWSUNLSSBBTEVLU0FOREFSCivEjEVSRVZJQ0tJIERVxaBBTgorxIxFUkVWSUNLSSBKT1ZBTgorxIxFUkVWSUNLSSBMSlVCSUNBCivEjEVSRVZJQ0tJIE1JVEEKK8SMRVJFVklDS0kgTkFEQQorxIxFUkVWSUNLSSBSQURBCivEjEVSRVZJQ0tJIFJVxb1JQ0EKK8SMRVJFVklDS0kgU1RFVkFOCivEjEVSRVZJQ0tJIFNWRVRJU0xBVgorxIxFUkVWSUNLSSBURU9ET1IKK8SMRVJHRSBCRUxBCivEjEVSSSBKT8W9RUYKK8SMRVJLRVogQk9HREFOS0EKK8SMRVJLRVogRFXFoEFOS0EKK8SMRVJLRVogRVZJQ0EKK8SMRVJLRVogSk9WQU5LQQorxIxFUktFWiBTVEVWQU4KK8SMRVJLRVpPViBEVcWgQU5LQQorxIxFUktJxIYgT1NNQU4KK8SMRVJLScSGIFZBU0lMSUpFCivEjEVSTsSMRUMgVkVSQQorxIxFUk5BSyBFVkEKK8SMRVJORUstQVBSTyDFvVXFvUFOQQorxIxFUk5FS0EgU1RFVkFOCivEjEVSTkkgScWgVFZBTgorxIxFUk5JxIxFSyBFUsW9RUJFVAorxIxFUk5JxIxFSyBJxaBUVkFOCivEjEVSTknEjEVLIEnFoFRWQU4KK8SMRVJOScSGIERVxaBBTgorxIxFUk5JSyBBVElMQQorxIxFUk5JSyBKT8W9RUYKK8SMRVJOSUsgTUFSR0lUQQorxIxFUk5JVkVDIFRBVEpBTkEKK8SMRVJOSkEgTUFSSUpBCivEjEVSTkpBIE1BVElMREEKK8SMRVJOSkFLIExBRElTTEFWCivEjEVSTkpBTlNLSSBEUkFHT01JUgorxIxFUk5KRVZTS0kgU1ZFVElTTEFWCivEjEVSTkpVxaAgSkFLSU0KK8SMRVJOT0dVQk9WIEJPUklTCivEjEVSTlXFoCBJQk9MSkEKK8SMRVJOVcWgIFRJQk9SCivEjEVST1ZJxIYgUkFUS08KK8SMRVJVQkTFvUnEhiBEUkFHT01JUgorxIxFUlVCRMW9ScSGIEpPVkFOCivEjEVSVUJExb1JxIYgTUFSR0lUQQorxIxFUlVCRMW9ScSGIE1BUkdJVEEKK8SMRVJVUE/FvUnEhiBPTEdBCivEjEVSVkFSSSBFUsW9RUJFVAorxIxFUlZFTkpBSyBKRUxJU0FWRVRBCivEjEVSVkVOSkFLIEpPU0lQCivEjEVSVkVOSkFLIExKVUJJQ0EKK8SMRVJWRU5KQUsgT0xHQQorxIxFUlZFTkpBSyBQRVRBUgorxIxFUlZFTkpBSyBaQUdPUktBCivEjEVSVkVOS08gQUxFS1NBTkRBUgorxIxFUlZFTktPIEFOQQorxIxFU0FLIEFORFJJSkEKK8SMRVRFIEFST04gRElQTCBJTkcKK8SMRVRJxIYgTUlMT1JBRAorxIxFVExFIE1BUklKQQorxIxFVE5JSyBCT0dEQU4KK8SMRVROSUsgSk9WQU4KK8SMRVROSUsgWkFHT1JLQQorxIxFVE5JS09WScSGIFBFVEFSIERJUEwgT0VDCivEjEVUT0pFVknEhiBNSUxLQQorxIxFVE9KRVZJxIYgUkFESVZPSkUKK8SMRVZBUkkgxJBPUsSQRQorxIxFVkFSSSBBTlRBTAorxIxFVkFSSSBNQVJJSkEKK8SMRVZBUkkgTUlIQUpMTworxIxFVkFSSSBaT0xUQU4KK8SMScSMQSBKT1ZBTgorxIxJxIxBIE5JS09MQQorxIxJxIxBSSBKT8W9RUYKK8SMScSMQUsgQU5LSUNBCivEjEnEjEFLIE1JUktPCivEjEnEjEFLSU4gQU7EkEVMS0EKK8SMScSMQVJFVknEhiBTQVZPCivEjEnEjEVLIERBTklKRUwKK8SMScSMScSGIERSQUdPTEpVQgorxIxJxIxJxIYgTUlMRQorxIxJxIxJxIYgTUlST1NMQVYKK8SMScSMS09WScSGIFNWRVRLTworxIxJxIxPVkHEjEtJIEJPUklTTEFWCivEjEnEjE9WQcSMS0kgRElNSVRSSUpFCivEjEnEjE9WQUMgxJBPUsSQRQorxIxJxIxPVkFDIEtPU1RBCivEjEnEjE9WQUMgTUlMSUNBCivEjEnEjE9WQUMgUkFET1NMQVYKK8SMScSMT1ZBQyBWTEFESU1JUgorxIxJxb1FSyBQQVZMRQorxIxJxb1FSyBTTEFWT01JUgorxIxJxb1NRcWgSUpBIElWQU4KK8SMSUJSSSBKQU5PxaAKK8SMSUJSSSBQSVJPxaBLQQorxIxJRUYgSkFOCivEjElFRiBNQVJUSU4KK8SMSUVGIFNBTVVFTAorxIxJSEkgRkVSRU5DCivEjElISSBKQU5PxaAKK8SMSUhJIEpBTk/FoAorxIxJSyBBTkRSSUpBCivEjElLIElMSUpBCivEjElLIEpFTkUKK8SMSUsgWk9MVEFOCivEjElLSSBKT1NJUAorxIxJS0kgTUFSSUpBCivEjElLScSGIMSQT1LEkEUKK8SMSUtJxIYgQ1ZFVE9NSVIKK8SMSUtJxIYgRFJBR0lDQQorxIxJS0nEhiBFTUlMCivEjElLScSGIEVWSUNBCivEjElLScSGIE1JTEFOCivEjElLScSGIE5JS09MQQorxIxJS0nEhiBTVEVWQU4KK8SMSUtPxaAgxb1Vxb1BTkEKK8SMSUtPxaAgxJBFUsSQCivEjElLT8WgIMSQT1LEkEUKK8SMSUtPxaAgRVLFvUVCRVQKK8SMSUtPxaAgRVLFvUVCRVQKK8SMSUtPxaAgRkVSRU5DCivEjElLT8WgIEpPU0lQIERSCivEjElLT8WgIEpVTElKQU5BCivEjElLT8WgIExBRElTTEFWCivEjElLT8WgIExFSEVMCivEjElLT8WgIE1BUklKQQorxIxJS09KRVZJxIYgVklOS08KK8SMSUtPVknEhiBTUkVUS08KK8SMSUtWQVIgS0FSTE8KK8SMSUxBRyBKQU5PxaAKK8SMSUxBRyBOQU5ET1IKK8SMSUxBRyBOQU5ET1IKK8SMSUxFRyBFVkEKK8SMSUxJxIYgQVZETworxIxJTEnEhiBJxaBUVkFOCivEjElMScSGIEpPU0lQCivEjElMScSGIEpVTElBTkEKK8SMSUxJxIYgTUFMVklOQQorxIxJTEnEhiBNQVJLTworxIxJTElLIEFOS0EKK8SMSUxJSyBJTE9OS0EKK8SMSUxJTkdJUklTIFBBVkxFCivEjElOxIxBSyBHQUJPUgorxIxJTsSMVVJBSyBNSUhBSkxPCivEjElOxIxVUkFLIFBBVkxFCivEjElOxIxVUkFLIFNURVZBTgorxIxJTsSMVVJFSyBCT8WgS08KK8SMSU5EUkFLIERBVVQKK8SMSU5EUkFLIFNBTklKQQorxIxJUCBNQVRPCivEjElQQUstRkFaRUtBxaAgSUJPSkEKK8SMSVBFIMSQT1LEkEUKK8SMSVBFIEVSxb1FQkVUCivEjElQRSBFUsW9SUtBCivEjElQRSBGUkFOSkEKK8SMSVBFIElSRU4KK8SMSVBFIEpBTk/FoAorxIxJUEUgSk9TSVAKK8SMSVBFIEpVTElKQU5BCivEjElQRSBMQVNMTworxIxJUEUgTEFTTE8KK8SMSVBFIE1BUklKQQorxIxJUEUgTUFSVEEKK8SMSVBFIE1JSEFMSgorxIxJUEUgTUlIQUxKCivEjElQRSBTVEpFUEFOCivEjElQScSGIEtBVElDQQorxIxJUEtBUiBBTkRSRUoKK8SMSVBLQVIgU1RFVkFOCivEjElQTEnEhiBMQVpBUgorxIxJUExJxIYgTUlMQU4KK8SMSVBMScSGIFZFUkEKK8SMSVBMScSGIFZJREEKK8SMSVJIIERFxb1FCivEjElSSCBWQVNLQQorxIxJUknEhiBKT8W9RUYKK8SMSVNBUiBGRVJFTkMgRElQTCBJTkcKK8SMSVNBUiBMQVNMTworxIxJVExVxIxBTklOIE1JTElDQQorxIxJVsSMScSGIEVSxb1FQkVUCivEjElWxIxJxIYgTUlIQUpMTworxIxJVsSMScSGIE1JTEUKK8SMSVbEjEnEhiBNSUxKQQorxIxJVsSMScSGIFJBRE9NSVIKK8SMSVbEjEnEhiBTQVZPCivEjElWT1ZJxIYgTUlMRVZBCivEjElWT1ZJxIYgUkFET1ZBTgorxIxJWk1BRElBIEdVU1RBVgorxIxJWk1BRElBIFZFUk9OSUtBCivEjElaTUFESUpBIMSQVUxBCivEjElaTUFESUpBIEnFoFRWQU4KK8SMSVpNQURJSkEgSkFOT8WgCivEjElaTUFESUpBIEtBUk9MSgorxIxJWk1BRElKQSBNSUtJCivEjElaTUFSIEFOQQorxIxJWk1BUiBBTklDQQorxIxJWk1BUiBKQU5LTworxIxJWk1BUiBKT0FLSU0KK8SMSVpNQVIgTEFKT8WgCivEjElaTUFSIE1BUklKQQorxIxJWk1BUiBNSVJLTworxIxJWk1BUiBQQVZMRQorxIxJWk1BUiBTVEVWQU4KK8SMSVpNQVIgVkxBRElNSVIKK8SMSVpNRcWgSUpBIE1BR0RBCivEjElaTUnEhiBBTklDQQorxIxJWk1JxIYgSVZBTgorxIxJWk1JxIYgUkFEQQorxIxJWk1JxIYgWk9SQQorxIxJWk1PVknEhiBWSURBSworxIxNRUxJSyBNQVJUSU4KK8SMTUVMSUsgUkFTVElTTEFWCivEjE/EjEFKIFNVTE8KK8SMT8WgS09WIE5BREEKK8SMT0HFoCBJUkVOQQorxIxPQkFOIEpPTgorxIxPQkFOIEpPVkFOCivEjE9CQU4gSk9WQU4KK8SMT0JBTiBMSURJSkEKK8SMT0JBTiBNQVJJSkEKK8SMT0JBTiBOSUtVCivEjE9CQU5PViDFvUlWS0EKK8SMT0JBTk9WIEJJTEpBTkEKK8SMT0JBTk9WIERSQUdJQ0EKK8SMT0JBTk9WIERSQUdPTUlSCivEjE9CQU5PViBEVcWgQU4KK8SMT0JBTk9WIEpFTEVOQQorxIxPQkFOT1YgTEpJTEpBTkEKK8SMT0JBTk9WIE1FTEFOSUpBCivEjE9CQU5PViBNSUxKS0EKK8SMT0JBTk9WIFJVxb1JQ0EKK8SMT0JBTk9WIFNMT0JPREFOCivEjE9CQU5PViBTVkVUTworxIxPQkFOT1YgVkFTQQorxIxPQkFOT1YgVkxBRElTTEFWCivEjE9CQU5PViBaT1JBTgorxIxPQkFOT1ZJxIYgQk/FoEtPCivEjE9CQU5PVknEhiBCUkFOSVNMQVYKK8SMT0JBTk9WScSGIERSQUdBTgorxIxPQkFOT1ZJxIYgRFJBR0FOCivEjE9CQU5PVknEhiBEUkFHQU4KK8SMT0JBTk9WScSGIERVxaBBTgorxIxPQkFOT1ZJxIYtR0VaIE1BUklKQQorxIxPQkFOT1ZJxIYgSUxJSkEKK8SMT0JBTk9WScSGIEpFTEVOQQorxIxPQkFOT1ZJxIYgTEFaQVIKK8SMT0JBTk9WScSGIExKSUxKQU5BCivEjE9CQU5PVknEhiBOSUtPTEEKK8SMT0JBTk9WScSGIFJBRE1JTEEKK8SMT0JBTk9WScSGIFNBVkEKK8SMT0JBTk9WScSGIFNBVk8KK8SMT0JBTk9WScSGIFNMT0JPREFOCivEjE9CQU5PVknEhiBWQUxFUklKQQorxIxPQkFOT1ZJxIYgWk9SQU4KK8SMT0JBTlNLSSBEUkFHQU4KK8SMT0JBTlNLSSBNSUxFTkEKK8SMT0JBTlNLSSBSQURPSktBCivEjE9CScSGIFJFTEpBCivEjE9CScSGIFNUUkFISU5KQQorxIxPQknEhiBUSU1PVEVKCivEjE9CT1QgSUxPTktBCivEjE9CUkRBIEpBTktPCivEjE9CUkRBIEpBTktPCivEjE9KScSGIFNURUZBTklEQQorxIxPS0EgSVZBTktBCivEjE9LQcWgIExVQ0lKQQorxIxPS0FOIE5JS09MQQorxIxPS0FOSUNBIFNBVkEKK8SMT0tBTklDQSBTT0ZJSkEKK8SMT0tJxIYgTUlMQU4KK8SMT0tMSkFUIFpERU5LQQorxIxPS1JMScSGIEJBUkJBUkEKK8SMT0tSTEnEhiBKT1NJUAorxIxPTEFLIEFMRUtTQU5EQVIKK8SMT0xBSyBEUkFHT0xKVUIKK8SMT0xBSyBEUkFHT0xKVUIKK8SMT0xBSyBHT1JBTgorxIxPTEFLIEtSSVNUSU5BCivEjE9MQUsgTUlIQUpMTworxIxPTEFLLU1JSEFMSUsgTUFSSUpBCivEjE9MQUtPViBNSUxBTgorxIxPTEFLT1YgTUlMRQorxIxPTEFLT1YgUEFWTEUKK8SMT0xBS09WScSGIEFOxJBFTEtBCivEjE9MQUtPVknEhiBNT01BCivEjE9MQUtPVknEhiBOSUtPTEEKK8SMT0xBS09WScSGIFNWRVRPWkFSCivEjE9MQUtPVknEhiBURU9ET1IKK8SMT0xBS09WScSGIFZBTkpBCivEjE9MRVZJxIYgU1ZFVElTTEFWCivEjE9MScSGIMSQVVJPCivEjE9MScSGIEFOxJBFTEtBCivEjE9MScSGIEJPUk8KK8SMT0xJxIYgREVTQQorxIxPTEnEhiBEVcWgQU4KK8SMT0xJxIYgRFXFoEtPCivEjE9MScSGIEVMSVpBQkVUQQorxIxPTEnEhi1HQcSGRcWgQSBTTEFWSUNBCivEjE9MScSGIElWQU4KK8SMT0xJxIYgSk9WQU5LQQorxIxPTEnEhiBKT1ZBTgorxIxPTEnEhiBKT1ZBTgorxIxPTEnEhiBMVUtBCivEjE9MScSGIE1BUkEKK8SMT0xJxIYgTUFSSUpBCivEjE9MScSGIE1JTEFOCivEjE9MScSGIE1JTEFOCivEjE9MScSGIE1JTEFOCivEjE9MScSGIE1JUkpBTkEKK8SMT0xJxIYgTUlSS08KK8SMT0xJxIYgTUlST1NMQVZLQQorxIxPTEnEhiBQRVRBUgorxIxPTEnEhiBSQURBCivEjE9MScSGIFJBRE1JTEEKK8SMT0xJxIYgUklTVE8KK8SMT0xJxIYgU0FWQQorxIxPTE9WScSGIEJPR09MSlVCCivEjE9MT1ZJxIYgRFJBR0FOCivEjE9MT1ZJxIYgRFXFoEFOCivEjE9MT1ZJxIYgTUlMRQorxIxPTE9WScSGIE1JTElKQU5BCivEjE9MT1ZJxIYgT0xHQQorxIxPTE9WScSGIFBFVEFSCivEjE9MT1ZJxIYgUkFET1NMQVYKK8SMT0xPVknEhiBSQURPVkFOCivEjE9MT1ZJxIYgU1RFVkFOCivEjE9MT1ZJxIYgVklET1NBVgorxIxPTE9WScSGIFZMQURPCivEjE9NQSDEkFVMQQorxIxPTUEgxJBVTEEKK8SMT01JxIYgxJBVUsSQSU5BCivEjE9NScSGIERBUkEKK8SMT01JxIYgRFJBR0FOCivEjE9NScSGIERVxaBBTktBCivEjE9NScSGIEVSxb1FQkVUCivEjE9NScSGIElMSUpBCivEjE9NScSGIEpBxaBLTworxIxPTUnEhiBKQcWgS08KK8SMT01JxIYgS1JTVEEKK8SMT01JxIYgTElESUpBCivEjE9NScSGIExKVUJPTUlSCivEjE9NScSGIE1JTE/FoAorxIxPTUnEhiBNSVJPTEpVQgorxIxPTUnEhiBNTEFERU4KK8SMT01JxIYgU0xPQk9EQU4KK8SMT01JxIYgU01JTEpBTkEKK8SMT01JxIYgVE9ET1IKK8SMT01JxIYgVE9ET1IKK8SMT01PUiBJTE9OS0EKK8SMT01PUiBNQVRJTERBCivEjE9OR1JBREFDIERBTklKRUxBCivEjE9OR1JBREFDIElWQU5LQQorxIxPTkdSQURBQyBSQURPU0xBVgorxIxPTknEhiBBTktBCivEjE9OScSGIE1JTEVOS08KK8SMT05JxIYgTUlMT8WgCivEjE9OScSGIFBFVEFSCivEjE9OScSGIFRJSkFOQQorxIxPTknEhiBaT1JBTgorxIxPTktBIMSQRVLEkAorxIxPTktBIEdPUkRBTkEKK8SMT05LQSBLQVJPTEoKK8SMT05LQSBQRVRBUgorxIxPTktBxaAgRU1JTAorxIxPTktBxaAgR0FCUklFTEEKK8SMT05LQcWgIExBRElTTEFWCivEjE9OS0nEhiDFvUlWS08KK8SMT05LScSGIEFMRUtTQQorxIxPTktJxIYgQklMSkFOQQorxIxPTktJxIYgQk9HT0xKVUIgTEVLQVIKK8SMT05LScSGIEJPUklTTEFWCivEjE9OS0nEhiBEUkFHQU4KK8SMT05LScSGIEpFTEEKK8SMT05LScSGIEpVRElUCivEjE9OS0nEhiBMSklMSkFOQQorxIxPTktJxIYgTUFSSUpBCivEjE9OS0nEhiBNSUxBTktBCivEjE9OS0nEhiBNSUxFTkEKK8SMT05LScSGIE1JTE/FoAorxIxPTktJxIYgTUlMT1JBRAorxIxPTktJxIYgTUlMT1JBRAorxIxPTktJxIYgTUlMT1ZBTgorxIxPTktJxIYgTU9NxIxJTE8gRElQTCBJTkcKK8SMT05LScSGIE5FQk9KxaBBCivEjE9OS0nEhiBORVNUT1IKK8SMT05LScSGIFBFVEFSCivEjE9OS0nEhiBSQURFTktPCivEjE9OS0nEhiBSQURPU0xBVgorxIxPTktJxIYgU0HFoEEKK8SMT05LScSGIFNMQVZLTworxIxPTktJxIYgU0xPQk9EQU4KK8SMT05LScSGIFNORcW9QU5BCivEjE9OS0nEhiBTVEFNRU5BCivEjE9OS0nEhiBTVEVWQU4KK8SMT05LScSGIFRJSE9NSVIKK8SMT05UT8WgIEpPxb1FRgorxIxPTlRPxaAgWk9SQQorxIxPUMSMScSGIE1BUlRJTgorxIxPUElLIFBFVEFSCivEjE9QSUsgVkFTSUxJSkEKK8SMT1BPUkRBIFZVS09TQVZBCivEjE9SIEZSQU5KQQorxIxPUiBKT1NJUAorxIxPUkFLIEpPU0lQCivEjE9SQUsgU1RJUEUKK8SMT1JBTEnEhiBJVkFOS0EKK8SMT1JCQSDEkEVSxJAKK8SMT1JCQSBJxaBUVkFOCivEjE9SQkEgSk9WQU4KK8SMT1JCQSBKT1ZBTgorxIxPUkJBIE1JSEFMSgorxIxPUkRBIEFMRUtTQU5EUkEKK8SMT1JEQSBBTElKQQorxIxPUkRBIE5BREXFvURBCivEjE9SREEgVE9NSVNMQVYKK8SMT1JEQSBWRVJBCivEjE9SREHFoCBBTkRSSUpBCivEjE9SREHFoCBBUlBBRAorxIxPUkRBxaAgRFXFoEFOS0EKK8SMT1JEQcWgIEVSxb1FQkVUCivEjE9SREHFoCBIQVJHSVRBCivEjE9SREHFoCBJUkVOQQorxIxPUkRBxaAgTEFTTE8KK8SMT1JEQcWgIE1JSEFMSgorxIxPUkRBxaAgU0xBVktPCivEjE9SREFSIEJSQU5LTworxIxPUkRBUkVWIExKSUxKQU5BCivEjE9SREFSRVYgVkVSQQorxIxPUkRBUk9WIEJPUklTTEFWS0EKK8SMT1JEQVJPViBJVkFOCivEjE9SREFST1YgU1ZFVElTTEFWCivEjE9SREFST1YgVEVPRE9SCivEjE9SREFST1YgVEVPRE9SCivEjE9SScSGIE1BUklKQU4KK8SMT1JORU5LSSBCT1JJU0xBVgorxIxPUk5FTktJIERSQUdPTEpVQgorxIxPUk5FTktJIEpPVkFOCivEjE9STkVOS0kgVkxBREEKK8SMT1JOSSBNSUxVTkEKK8SMT1JOSUogTUlST1NMQVYKK8SMT1JUQU4gxb1JVktPCivEjE9SVEFOIEJPxaBLTworxIxPUlRBTiBNSUxJQ0EKK8SMT1JUQU4gTkFEQQorxIxPUlRBTiBSQURJVk9KCivEjE9SVEFOT1ZBxIxLSSBTTE9CT0RBTgorxIxPVknEhiBEQVJLTworxIxPVknEhiBEQVJLTworxIxPVknEhiBEUkFHQU4KK8SMT1ZJxIYgR1VTVEFWCivEjE9WScSGIElWQU4KK8SMT1ZJxIYgSkFOS08KK8SMT1ZJxIYgSk9TSVAKK8SMT1ZJxIYgS09WSUxKS0EKK8SMT1ZJxIYgS1JTVE8KK8SMT1ZJxIYgTEFEQQorxIxPVknEhiBNQVJJSkFOQQorxIxPVknEhiBNSUxBTgorxIxPVknEhiBNSUxFVkEKK8SMT1ZJxIYgTU9NSVIKK8SMT1ZJxIYgT0xHQQorxIxPVknEhiBQRVRBUgorxIxPVknEhiBSQURPxaAKK8SMT1ZJxIYgUkFET1NMQVYKK8SMT1ZJxIYgUkFUS08KK8SMT1ZJxIYgU05Fxb1BTkEKK8SMT1ZJxIYgU1RBTktPCivEjE9WScSGIFZMQURBCivEjE9WScSGIFZMQVRLTworxIxPVknEhiBaT1JJQ0EKK8SMT1ZJTE8gQlJBTklTTEFWCivEjE9WUyBKQcWgQQorxIxPVlMgUEFWTEUKK8SMT1ZTIFBBVkxFCivEjE9WUyBWRVJJQ0EKK8SMUkVUTklLLUNWRUpBTk9WScSGIE9MR0EgRElQTCBJTkcKK8SMUk5KRUtBIFpMQVRLTworxIxSTk9KQcSMS0kgREFOSVNMQVYKK8SMVcSMIEpFTEVOQQorxIxVxIwgTUFSSUpBCivEjFXEjElMT1ZJxIYgQlJBTktBCivEjFXEjEtPVknEhiDEjEVETworxIxVxIxLT1ZJxIYgxb1FTEpLTworxIxVxIxLT1ZJxIYgxJBVUk8KK8SMVcSMS09WScSGIEJPxb1JREFSCivEjFXEjEtPVknEhiBEUkFHQU4KK8SMVcSMS09WScSGIFJBRE9KS0EKK8SMVcSMS09WScSGIFNBVkEgRElQTCBJTkcKK8SMVcSMS09WScSGIFNMT0JPREFOCivEjFXEjEtPVknEhiBTUEFTQQorxIxVxIxLT1ZJxIYgVkxBRElNSVIKK8SMVcSMVUxJUyBESU1JVFJJSkUKK8SMVUJSQU5PVknEhiBSQURPTUlSCivEjFVCUklMTyBBTktBCivEjFVCUklMTyBEUkFHQU4KK8SMVUJSSUxPIERVxaBBTgorxIxVQlJJTE8gSk9WTworxIxVQlJJTE8gTEFaTworxIxVQlJJTE8gTUlMQU4KK8SMVUJSSUxPIFBFVEFSCivEjFVCUklMTyBTT0ZJSkEKK8SMVUJSSUxPIFZMQURJTUlSCivEjFVCUklMT1ZJxIYgTUlMQU4KK8SMVUJST1ZJxIYgU1RFVkFOCivEjFVEQU5PViDEjEVEQQorxIxVREFOT1YgQUxFS1NBTkRBUgorxIxVREFOT1YgTUFSSUpBCivEjFVEQU5PViBNSUxJQ0EKK8SMVURJxIYgSVZBTgorxIxVREnEhiBKT1ZBTktBCivEjFVEScSGIE1JTE9SQUQKK8SMVURJxIYgTklLT0xBCivEjFVEScSGIFBSRURSQUcKK8SMVURJxIYgU0xPQk9EQU4KK8SMVURPTUlST1ZJxIYgQk9HREFOCivEjFVET01JUk9WScSGIFVST8WgCivEjFVHQUxKIEFOS0EKK8SMVUdBTEogTUlSSkFOQQorxIxVR0FMSiBTVkVUTworxIxVR0VMSiBBTkdFTElOQQorxIxVSEEgTUFSSUpBCivEjFVIQSBQQVZMRQorxIxVSEEgU0xBVktPCivEjFVIQSBTVEVWQU4KK8SMVUhBLVZVSktPViBSVcW9QQorxIxVSEEgWkxBVEEKK8SMVUpBTk9WIEJPUklTCivEjFVLQSBWSkVLT1NMQVYKK8SMVUtBTEpJxIYgTkVWRU5LQQorxIxVS0nEhiBCT1JJVk9KRQorxIxVS0nEhiBNSUxLQQorxIxVS0nEhiBNSVJTQURBCivEjFVLScSGIFNMT0JPREFOCivEjFVLScSGIFpPUkFOCivEjFVLTEpBxaAgSVZBTgorxIxVS0xKRUsgRlJBTkpBCivEjFVLTEpFSyBNQVJHSVRBCivEjFVLTEpFVknEhiBCVURJTUtBCivEjFVLT1ZJxIYgU0xBVktPCivEjFVLVVJBTk9WScSGIMW9SUtBCivEjFVLVVJBTk9WScSGIE1JSkEKK8SMVUxBSkVWScSGIEpPVkFOCivEjFVMQUpFVknEhiBTVEFOS08KK8SMVUxJxIYgSk9WQQorxIxVTElLIEhBSk5FUklLCivEjFVMSU5BIMW9RUxKS08KK8SMVUxKQUsgRFJBR0EKK8SMVUxKQUsgSVZBTgorxIxVTEpBSyBLQVJMTworxIxVTEpBSyBNSVJLTworxIxVTEpBSyBOQURBCivEjFVMSkFUIERBTkUKK8SMVUxKQVQgSkFLT1YKK8SMVUxKScSGIMW9SVZPSklOCivEjFVMTyBCT8W9QQorxIxVTE8gTUFSS08KK8SMVUxPIE1BVE8KK8SMVU5LTyBCUkFOS08KK8SMVVBBSyBBTEVLU0FOREFSCivEjFVQRUxKScSGIE1JTElWT0pFCivEjFVQScSGIMSQT1LEkEUKK8SMVVBJxIYgQk/FvUlEQVIKK8SMVVBJxIYgQk9KQU4KK8SMVVBJxIYgQlJBTklTTEFWCivEjFVQScSGIERSQUdBTgorxIxVUEnEhiBEVcWgQU4KK8SMVVBJxIYgSFJJU1RJRk9SCivEjFVQScSGIEpFTEVOQQorxIxVUEnEhiBLQUpLQQorxIxVUEnEhiBLQUpLQQorxIxVUEnEhiBLQVRJQ0EKK8SMVVBJxIYgS0FUSUNBCivEjFVQScSGIEtPU1RBRElOS0EKK8SMVVBJxIYgS1JJU1RJTkEKK8SMVVBJxIYgTEpVQk9NSVIKK8SMVVBJxIYgTUlMQU4KK8SMVVBJxIYgTUlMSUNBCivEjFVQScSGIE1JT0RSQUcKK8SMVVBJxIYgTUlPRFJBRworxIxVUEnEhiBNSU9EUkFHCivEjFVQScSGIE1JUkpBTkEKK8SMVVBJxIYgTUlST1NMQVYKK8SMVVBJxIYgT0xHQQorxIxVUEnEhiBSQURJTktBCivEjFVQScSGIFJBRE9TTEFWCivEjFVQScSGIFNQT01FTktBCivEjFVQScSGIFNURVZBTgorxIxVUEnEhiBTVEVWQU4KK8SMVVBJxIYgU1RPSkFOCivEjFVQScSGIFVST8WgCivEjFVQScSGIFpPUkFOCivEjFVSxIxJxIYgRFXFoEFOCivEjFVSxIxJxIYgSUxJSkEKK8SMVVLEjEnEhiBMQVpBUgorxIxVUsSMScSGIFNMT0JPREFOS0EKK8SMVVJHQU5PViBFTUlMCivEjFVSScSGIMW9QVJLTworxIxVUknEhiDEkE9SxJBFCivEjFVSScSGIERSQUdPU0xBVkEKK8SMVVJJxIYgRFXFoEFOS0EKK8SMVVJJxIYgTUlMRU5BCivEjFVSScSGIE1JTE/FoAorxIxVUknEhiBOQVRBTElKQQorxIxVUknEhiBSQURPU0xBViBEUiBQUk9GCivEjFVSScSGIFNMT0JPREFOCivEjFVSScSGIFZBU0EKK8SMVVJJxIYgVkVMSU5LQQorxIxVUknEhiBWSURPU0FWQQorxIxVUknEhiBWSURPU0FWQQorxIxVUk9WScSGIERBTklMTworxIxVUk9WScSGIFZVS1NBTgorxIxVUlXFoEtJIEdBVlJBCivEjFVSVcWgS0kgTUlDQQorxIxVU1RPVknEhiBBUklGCivEjFVUVVJBIE1BUktPCivEjFVUVVJJxIYgSkVST05JTQorxIxVVFVSSUxPIMSMRURPTUlSCivEjFVUVVJJTE8gQk/FvUEKK8SMVVRVUklMTyBNSUxJVk9KRQorxIxVVFVSSUxPIFNMT0JPREFOIERJUEwgSU5HCivEjFVUVVJJTE9WIE1BUklKQQorxIxVVFVSSUxPViBNSUxPxaAKK8SMVVRVUklMT1YgTUlMT8WgCivEjFVUVVJJTE9WIFNWRVRPWkFSCivEjFVUVVJJTE9WIFZFTElOS0EKK8SMVVRVUklMT1YgVlVKSUNBCivEjFVWQUxPIExKVUJJQ0EKK8SMVVZBUkRJxIYgQU5UVU4KK8SMVk9LScSGIE1BUktPCivEjFZPS0nEhiBSQVRLTworxIxWT1JJxIYgRFXFoEFOCivEjFZPUknEhiBNSUxPSkUKK8SMVk9SS09WIExKVUJPTUlSCivEjFZPUktPViBaRFJBVktPCivEjFZPUktPViBaTEFUQU4KK8SMVk9STy3EkFVLScSGIERVxaBBTktBCivEjFZPUk8gRE9CUk9TTEFWCivEjFZPUk9WScSGIEpFTEVOS0EKK8SMVk9ST1ZJxIYgTEpVQk8KK8SMVk9ST1ZJxIYgUkFUS08KK8SMVk9ST1ZJxIYgVlVKSUNBCivFoMSGRUtJxIYgQlVESU1JUgorxaDEhkVLScSGIERSQUdPTUlSCivFoMSGRUtJxIYgS09TQQorxaDEhkVLScSGIE1JTEFOS0EKK8WgxIZFS0nEhiBNSUxJxIYKK8WgxIZFS0nEhiBNSUxJQ0EKK8WgxIZFS0nEhiBNSU9NSVIKK8WgxIZFS0nEhiBTTE9CT0RBTgorxaDEhkVLScSGIFNWRVRPWkFSCivFoMSGRUtJxIYgVlVLTworxaDEhkVQQU7EjEVWScSGIMSQT1LEkEUKK8WgxIZFUEFOxIxFVknEhiBOSUtPTEEKK8WgxIZFUEFOT1ZJxIYgQk9HT0xKVUIKK8WgxIZFUEFOT1ZJxIYgQlJBTklTTEFWCivFoMSGRVBBTk9WScSGIERPQlJPU0xBVkEKK8WgxIZFUEFOT1ZJxIYgRFJBR0FOCivFoMSGRVBBTk9WScSGIERSQUdBTgorxaDEhkVQQU5PVknEhiBEUkFHVVRJTgorxaDEhkVQQU5PVknEhiBEVcWgQU4KK8WgxIZFUEFOT1ZJxIYgR09SQU4KK8WgxIZFUEFOT1ZJxIYgR09SREFOQQorxaDEhkVQQU5PVknEhiBMSlVCT01JUgorxaDEhkVQQU5PVknEhiBNSUxFVkEKK8WgxIZFUEFOT1ZJxIYgTUlMT1ZBTgorxaDEhkVQQU5PVknEhiBNSU9EUkFHCivFoMSGRVBBTk9WScSGIFJBxaBLTworxaDEhkVQQU5PVknEhiBSQURPVkFOCivFoMSGRVBBTk9WScSGIFJBTktPIERJUEwgSU5HCivFoMSGRVBBTk9WScSGIFNJTknFoEEKK8WgxIZFUEFOT1ZJxIYgWk9SQU4KK8WgxIZFUEFOT1ZJxIYgWk9SQQorxaDEhkVQT1ZJxIYgUEVUQVIKK8WgxIZFUkJBxIZFViBHTElHT1JJSkUKK8WgxIZFVsSMSUsgUEFWTEUKK8WgxIZJQkFOIE1BUklOQQorxaDEhk9QScSGIE1JT0RSQUcKK8WgxIZPUEnEhiBTVEFOSU1JUgorxaDEhk9QVUxPVknEhiBQRVRBUgorxaDEhlVSSUMgSk9TSVAKK8WgQcWgScSGIMW9SVZLTworxaBBxaBJxIYgxJBPUsSQRQorxaBBxaBJxIYgRFXFoEFOCivFoEHFoEnEhiBNSUxBTgorxaBBxaBJxIYgTUlMQU4KK8WgQcWgScSGIE1JTE/FoAorxaBBxaBJxIYgTUlSS08KK8WgQcWgScSGIE5FVkVOS0EKK8WgQcWgScSGIFBFVEFSCivFoEHFoEnEhiBTQVZPCivFoEHFoEnEhiBTVEVWQU4KK8WgQcWgScSGIFpPUkFOCivFoEHFoElOIERBTklDQQorxaBBxaBJTiBSQURPTUlSCivFoEHFoElOQcSMS0kgTUFSSUpBCivFoEHFoElOQcSMS0kgU09OSkEKK8WgQcWgSU5BxIxLSSBWQVNJTElKRQorxaBBxaBMSklOIExBWkFSCivFoEHFoE9WScSGIFRSSUZLTworxaBBQkFOSSBOQVpJTQorxaBBQkFOT1ZJxIYgQUJEVVJBSE1BTgorxaBBQkFOT1ZJxIYgT0JSQUQKK8WgQUJFQyBEUkFHSUNBCivFoEFCScSGIMSQVVJPCivFoEFCScSGIEhVU0VJTgorxaBBQknEhiBQQVZMRQorxaBBQkxJIE1BUlRPTgorxaBBQkxJIE1JSEFKTE8KK8WgQUJPVknEhiBNRUhNRURBTElKQQorxaBBREUgSkVMRU5BCivFoEFGQVJJSyBMSklMSkFOQQorxaBBRlJBTkogQU5EUklKQQorxaBBRlJBTkogREXFvUUKK8WgQUZSQU5KIEZSQU5KQQorxaBBRlJBTkogTEFTTE8KK8WgQUZSQU5KIExBU0xPCivFoEFGUkFOSiBQSVJPxaBLQQorxaBBRlJBTkogU1RFVkFOCivFoEFGUkFOSiBURU9ET1JBCivFoEFHVU5PVknEhiBEVcWgQU4KK8WgQUdVTk9WScSGIE1JTElWT0oKK8WgQUlOIEFORFJJSkEKK8WgQUlOIE1JTEVWQQorxaBBSU4gWkFHT1JLQQorxaBBSU5PVknEhiBEVcWgQU4KK8WgQUlOT1ZJxIYgTUFSSU5BCivFoEFKQVRPVknEhiBKRUxJQ0EKK8WgQUpBVE9WScSGIFpEUkFWS08KK8WgQUpCRVIgREFOSUNBCivFoEFKQkVSIE1JTEVOS08KK8WgQUpESUsgRlJBTkNJxaBLQQorxaBBSkZBUiBQQVZMRQorxaBBSklOIE1JTE9SQUQKK8WgQUpJTk9WScSGIERSQUdPU0xBVgorxaBBSklOT1ZJxIYgRFXFoEFOCivFoEFKSU5PVknEhiBHT1JEQU5BCivFoEFKSU5PVknEhiBNQVJJTktPCivFoEFKSU5PVknEhiBTSURBCivFoEFKTiBEVcWgQU4KK8WgQUpOQkVSR0VSIEpPVkFOCivFoEFKTkJFUkdFUiBMSUxJCivFoEFKTk9WIEpPVkFOCivFoEFKTk9WIEtBVElDQQorxaBBSk5PViBQRVRBUgorxaBBSk5PVknEhiBSQURJTktBCivFoEFKVEkgRVRFTEtBCivFoEFKVEkgR0laRUxBCivFoEFKVEkgS0FUSUNBCivFoEFKVEkgTUFSSUpBCivFoEFKVE/FoCDEkE9SxJBFCivFoEFKVE/FoCDEkFVSQQorxaBBSlRPxaAgTEpVQknFoEEKK8WgQUpUT8WgIE5JS09MQQorxaBBSlRPxaAgU0lNQQorxaBBSlRPxaAgU0lNQQorxaBBS0nEhiDFvUVMSktPCivFoEFLScSGIMSQT1LEkEUKK8WgQUtJxIYgSUxJSkEKK8WgQUtJxIYgSUxJSkEKK8WgQUtJxIYgSUxJSkEKK8WgQUtJxIYgSkFOSkEKK8WgQUtJxIYgS0FUQQorxaBBS0nEhiBNQU5FCivFoEFLScSGIE1JTFVUSU4KK8WgQUtJxIYgUkFERQorxaBBS0nEhiBaT1JLQQorxaBBS09UQSBEVcWgQU4KK8WgQUtPVEEgS09KTworxaBBS09UQSBNSUxBTgorxaBBS09UQSBNSUxPUkFECivFoEFLT1RBIFNJTUVPTgorxaBBS09UScSGIExKVUJPTUlSCivFoEFLT1RJxIYgTUlSSkFOQQorxaBBS1UgTUVITUVECivFoEFMQUJBTElKQSBEUkFHT01JUgorxaBBTEFCQUxJSkEgVkFTTworxaBBTEFKScSGIFNURVZBTgorxaBBTEFNT04gxaBBTkRPUgorxaBBTEFNT04gQU5EUklKQQorxaBBTEFNT04gSk9TSVAKK8WgQUxBTU9OIEpPU0lQCivFoEFMQU1PTiBNScWgQQorxaBBTEFNT04gTUlIQUpMTworxaBBTEFNT04gTUlIQUpMTworxaBBTEFOS0kgSkFOT8WgCivFoEFMQU5LSSBKQU5PxaAKK8WgQUxCT1QgWlVaQQorxaBBTEVSIFZFUkEKK8WgQUxHTyBKRUxJU0FWRVRBCivFoEFMSVBVUk9WScSGIE1JTE9WQU4KK8WgQUxJUFVST1ZJxIYgU0xBVknFoEEKK8WgQU1BVEnEhiBORU1BTkpBCivFoEFNRUMgTUlMSUNBCivFoEFORE9MIEFUSUxBCivFoEFORE9MIEFUSUxBCivFoEFORE9MIEnFoFRWQU4KK8WgQU5ET0wgS0FUSUNBCivFoEFORE9MIE1BVElKQQorxaBBTkRPTCBNSUhBSkxPCivFoEFORE9SIElMT05BCivFoEFORE9SIEpPU0lQCivFoEFORE9SIExBRElTTEFWCivFoEFORE9SIE1BUklKQQorxaBBTkRPUiBUSUJPUgorxaBBTkRPUkkgxaBBUklLQQorxaBBTkpJxIYgTUlMQURJTgorxaBBTk9WScSGIERVxaBBTgorxaBBTlRBIMWgQU5ET1IKK8WgQU5UQSBBTUFMSUpBCivFoEFOVEEgQkVMQQorxaBBTlRBIERVxaBBTktBCivFoEFOVEEgRkVSRU5DCivFoEFOVEEgScWgVFZBTgorxaBBTlRBIElMT05LQQorxaBBTlRBIElNUkUKK8WgQU5UQSBKT1NJUAorxaBBTlRBIExBU0xPCivFoEFOVEEgTUlST1NMQVYKK8WgQU5UQSBQQUwKK8WgQU5UQSBTSU1BCivFoEFOVEEgU0xBVktPCivFoEFOVEEgU09GSUpBCivFoEFOVEEgU1RFVkFOCivFoEFOVEEgVklOS08KK8WgQU5UQSBWTEFESU1JUgorxaBBTlRBSyBKT1NJUAorxaBBTlRBSyBLQVJMTworxaBBTlRBTEFCIFNPRklKQQorxaBBTlRFSyDFvUVMSktPCivFoEFOVEVLIFpERU5LQQorxaBBUEkgUElST8WgS0EgRElQTCBJTkcKK8WgQVBJxIYgTklLT0xBCivFoEFQSU5BIE1JUk9TTEFWCivFoEFQT05KQSBKT1ZBTgorxaBBUE9OSkEgTUFSS08KK8WgQVBPTkpBQyDFvUFSS08KK8WgQVBPTkpBQyDFvUFSS08KK8WgQVBPTkpBQyBBTEVLU0FOREFSCivFoEFQT05KQUMgSkVMS0EgUFJPRkVTT1IKK8WgQVBPTkpBQyBSQURBCivFoEFQT05KQUMgU1RFVkFOCivFoEFQT05KU0tJIFJBRElWT0oKK8WgQVBVUknEhiBTVkVUT1pBUgorxaBBUsSMQU5TS0kgSlVMS0EKK8WgQVLEjEFOU0tJIE1JTElDQQorxaBBUsSMQU5TS0kgTUlST1NMQVYKK8WgQVLEjEVWIEFOVE9OSUpBCivFoEFSxIxFViBKRUxFTkEKK8WgQVLEjEVWIE1JUk9TTEFWQQorxaBBUsSMRVYgTklLT0xBCivFoEFSxIxFViBWTEFESU1JUgorxaBBUsSMRVZJxIYgxb1BUktPCivFoEFSxIxFVknEhiDFvUVMSU1JUgorxaBBUsSMRVZJxIYgQU5JQ0EKK8WgQVLEjEVWScSGIEJSQVRJTUlSCivFoEFSxIxFVknEhiBEVcWgQU4KK8WgQVLEjEVWScSGIEdST1pEQU5BCivFoEFSxIxFVknEhiBJTEtBCivFoEFSxIxFVknEhiBLQVRJQ0EKK8WgQVLEjEVWScSGIE1BUkdJVEEgRFIKK8WgQVLEjEVWScSGIE1JTEVOQQorxaBBUsSMRVZJxIYgTkVCT0rFoEEKK8WgQVLEjEVWScSGIFBFVEFSCivFoEFSxIxFVknEhiBQUkVEUkFHCivFoEFSxIxFVknEhiBSQUpLTworxaBBUsSMRVZJxIYgVklET0pFCivFoEFSxIxFVknEhiBWT0pJU0xBVgorxaBBUsWgQU5TS0kgTUFSSU5LTworxaBBUsWgQU5TS0kgTUlMQU4KK8WgQVJBIElNUkUKK8WgQVJBIElNUkUKK8WgQVJBQyDEkE9SxJBFCivFoEFSQUMgQklMSkFOQQorxaBBUkFDIEJPxaBLTworxaBBUkFDIERVxaBBTgorxaBBUkFDIERVxaBBTgorxaBBUkFDIE1JTEFOCivFoEFSQUMgTUlMRQorxaBBUkFDIE1JTElDQQorxaBBUkFDIE1JT0RSQUcKK8WgQVJBQyBSQURPSkUKK8WgQVJBQyBSQURPTUlSCivFoEFSQUMgUkFET1ZBTgorxaBBUkFDIFJVxb1JQ0EKK8WgQVJBQyBTVEVWQQorxaBBUkFDIFNWRVRPWkFSCivFoEFSQU5ESSDFoEFORE9SCivFoEFSQU5PVknEhiBBTklUQQorxaBBUkFOT1ZJxIYgRFJBR0nFoEEKK8WgQVJBTk9WScSGIE1JTEFESU4gRFIgTEVLQVIKK8WgQVJBTk9WScSGIE1JTE/FoAorxaBBUkFOT1ZJxIYgTUlPRFJBRworxaBBUkFOT1ZJxIYgWk9SQU4KK8WgQVJFTkFDIEJPxb1JREFSCivFoEFSRU5BQyBNQVJLTworxaBBUkVOQUMgUk9aSU5BCivFoEFSRU5BQyBWSURBSworxaBBUkVOQUMgVk9KSVNMQVYKK8WgQVJHQcSMIEJSQU5LTworxaBBUkdJxIYgTUlMT1JBRAorxaBBUkdJxIYgVkxBRElNSVIKK8WgQVJHScSGIFpMQVRJQ0EKK8WgQVJHSU4gxb1BUktPCivFoEFSR0lOIE1BUklKQQorxaBBUkkgTUFSSUpBCivFoEFSSSBTVEVWQU4KK8WgQVJJxIYgSk9TSVAKK8WgQVJJxIYgS0FUQVJJTkEKK8WgQVJJxIYgS09TVEEKK8WgQVJJxIYgTEpVQklDQQorxaBBUknEhiBNQVJJSkEKK8WgQVJJxIYgTUFUTworxaBBUknEhiBORU5BRAorxaBBUknEhiBTTE9CT0RBTgorxaBBUknEhiBTT0ZJSkEKK8WgQVJJxIYgU1RFVkFOCivFoEFSScSGIFRPTUlTTEFWIE1SCivFoEFSScSGIFpWRVpEQU5BCivFoEFSSUsgQU5BCivFoEFSSUsgQU5EUklKQQorxaBBUklLIEpPVkFOCivFoEFSSUsgS0FUSUNBCivFoEFSSUsgTEpVQklDQQorxaBBUklLIE1JUk9TTEFWCivFoEFSSUsgU1RFVkFOCivFoEFSSUstVklEScSGIE5BREEKK8WgQVJJSyBWTEFESU1JUgorxaBBUktBREkgVkVST05JS0EKK8WgQVJLQU5KIEFOVE9OCivFoEFSS0FOSiBGRVJFTkMKK8WgQVJLQU5KIEZSQU5KQQorxaBBUktBTkogSkFOT8WgCivFoEFSS0FOSkFDIEZFUkVOQworxaBBUktFWkktUEVUUknEhiBNQVJHSVRBCivFoEFSS0nEhiBTUsSQQU4KK8WgQVJLT1ZJxIYgRFXFoEFOCivFoEFSS09WScSGIE1JT0RSQUcgRFIKK8WgQVJLT1ZJxIYgWk9SQU4KK8WgQVJOSkFJIEFOS0lDQQorxaBBUk5KQUkgTUlLTE/FoAorxaBBUk5KQUkgUEFMCivFoEFSTyBKT1ZBTgorxaBBUk8gTkFEQQorxaBBUk/FoEkgVkFMRVJJSkEKK8WgQVJPxaBLT1ZJxIYgVlVLSUNBCivFoEFST0ktU0FCTyBWRVJBCivFoEFST1ZJxIYgxJBVUk8KK8WgQVJPVknEhiBNSVJLTworxaBBUk9WScSGIFBFVEFSCivFoEFSVSBEVcWgSUNBCivFoEFSVkFSSSDFoEFORE9SCivFoEFSVkFSSSBLQVJPTEoKK8WgQVJWQVJJIE1BUlRBCivFoEFSVkFSSSBST1pBTElKQQorxaBBUlZBUkkgVkFMRVJJSkEKK8WgQVNJVkFSIEFITUVECivFoEFUQVJBIE1JTEFOCivFoEFUT1JBIFNUT0pBTgorxaBBVFJJxIYgQU5BCivFoEFUUknEhiBCUkFOSVNMQVYKK8WgQVVMQSBHT1JBTgorxaBBVUxBIFJBRE9WQU4KK8WgQVVMScSGIERJTUlUUklKRQorxaBBVkVMSU4gxaBBTkRPUgorxaBBVkVMSU4gSk9TSVAKK8WgQVZFTElOIEpPVkFOCivFoEFWRUxJTiBKVUxJSkEKK8WgQVZFUkRJSkEgTklLT0xBCivFoEFWSUpBIERVxaBBTgorxaBBVklKQSBNSUxFCivFoEFWSUpBIE1JTE9SQUQKK8WgQVZJSkEgUEVUQVIKK8WgQVZJSkEgUkFERQorxaBBVlJMSlVHQSBNSUxBTgorxaBFxIxJxIYgQUxJSkEKK8WgRcSMScSGIEpVTEtBCivFoEXFoEEgU0xBVktPCivFoEXFoEVMSkEgQlJBTklNSVIKK8WgRcWgRUxKQSBNQVJJSkFOCivFoEXFoEVSSU5BQyDEkE9SxJBFCivFoEXFoEVWScSGIMSQT1LEkEUKK8WgRcWgRVZJxIYgRFJBR0lDQQorxaBFxaBFVknEhiBMRU9OQQorxaBFxaBFVknEhiBMSklMSkFOQQorxaBFxaBFVknEhiBNQVJBCivFoEXFoEVWScSGIE1JTElWT0oKK8WgRcWgRVZJxIYgU1RFVkFOCivFoEXFoEnEhiDFvUlWT1RBIERJUEwgSU5HCivFoEXFoEnEhiBBVVJFTElKQQorxaBFxaBJxIYgRFJBR09MSlVCCivFoEXFoEnEhiBEUkFHT0xKVUIKK8WgRcWgScSGIFZFUkEKK8WgRcWgScSGIFZJREEKK8WgRcWgS0FSIE5BREEKK8WgRcWgTElKQSDEjEVEQQorxaBFxaBMSUpBIEJSQU5LTworxaBFxaBMSUpBIERSQUdBTgorxaBFxaBMSUpBIERVxaBBTgorxaBFxaBVTSBCUkFOS08KK8WgRcWgVU0gRFJBR09MSlVCCivFoEXFoFVNIElMSUpBCivFoEXFoFVNIE1JSEFKTE8KK8WgRcWgVU0gTUlMQU4KK8WgRcWgVU0gTUlMQU4KK8WgRcWgVU0gTUlMRU5LTworxaBFxaBVTSBTQVZBCivFoEXFoFVNIFNMQVZJQ0EKK8WgRcWgVU0gVE9NQQorxaBFxIZFUk9WIEFOxJBFTElKQQorxaBFxIZFUk9WIEJJTEpBTkEKK8WgRcSGRVJPViBCUkFOSVNMQVYKK8WgRcSGRVJPViBEUkVOS0EKK8WgRcSGRVJPViBEVcWgQU4KK8WgRcSGRVJPViBFTUlMCivFoEXEhkVST1YgSURBCivFoEXEhkVST1YgSVZBTgorxaBFxIZFUk9WIEpPVkFOCivFoEXEhkVST1YgS0FKQQorxaBFxIZFUk9WIE1BVEEKK8WgRcSGRVJPViBNSUxBTgorxaBFxIZFUk9WIFBBVkxFCivFoEXEhkVST1YgUEVUQVIgRElQTCBJTkcKK8WgRcSGRVJPViBQRVRBUgorxaBFxIZFUk9WIFBST0RBTgorxaBFxIZFUk9WIFJBRE9TTEFWCivFoEXEhkVST1YgU0FWQQorxaBFxIZFUk9WIFNJTknFoEEKK8WgRcSGRVJPViBTVkVUTEFOQQorxaBFxIZFUk9WIFNWRVRPWkFSCivFoEXEhkVST1YgU1ZFVE9aQVIKK8WgRcSGRVJPViBTVkVUT1pBUgorxaBFxIZFUk9WIFpMQVRPSkUKK8WgRcSGRVJPViBaTEFUT0pFCivFoEVCRcWgxIZFTiBJTVJFCivFoEVCRcWgxIZFTiBKT8W9RUYKK8WgRUJFRElOSSBORVZaQUQKK8WgRUJFSyDEkFVMQQorxaBFQkVLIEFOVcWgS0EKK8WgRUJFSyBJVkFOCivFoEVCRUsgSk9TSVAKK8WgRUJFS09WScSGIFBBVkxFCivFoEVCRVogRFJBR0FOCivFoEVCRVogRFXFoEFOCivFoEVCRVogTEFaTworxaBFQkVaIFJBRE9KS0EKK8WgRUJFWiBTSU1PCivFoEVCRVogU1RFVkFOCivFoEVCRVogU1RFVk8KK8WgRUJFWiBTVEVWTworxaBFQkkgSkVMSUNBCivFoEVGxIxJxIYgRU1JTAorxaBFRsSMScSGIE1JUktPCivFoEVGRVIgxJBPUsSQRSBESVBMIElORworxaBFRkVSIEFMRUtTQU5EUkEKK8WgRUZFUiBKVUxJSkUgRFIKK8WgRUZFUiBLQVRBUklOQQorxaBFRkVSIEtMQVJBCivFoEVGRVIgTUlPRFJBRworxaBFRkVSIFBFVEFSCivFoEVGRVIgUkFET0pFCivFoEVGRVIgU0xBVktPCivFoEVHRUMgRURVQVJECivFoEVHSU5BIE5JS09MQQorxaBFR08gTklLT0xBCivFoEVHT1ZJxIYgRFJBR0FOCivFoEVHT1ZJxIYgTUlMT8WgCivFoEVHUlQgxIxFRE9NSVIKK8WgRUdSVCDEjEVET01JUgorxaBFR1JUIEpPVk8KK8WgRUdSVCBKT1ZPCivFoEVHUlQgTUFUTworxaBFR1JUIE1MQURFTgorxaBFR1JUIE5BREEKK8WgRUdSVCBQRVRBUgorxaBFR1JUIFZPSklTTEFWCivFoEVHVUxKRVYgRFXFoEFOCivFoEVHVUxKRVYgRFXFoEFOCivFoEVHVUxKRVYgRFXFoEFOCivFoEVHVUxKRVYgR1JVSkEKK8WgRUdVTEpFViBKT1ZBTgorxaBFR1VMSkVWIE1BUktPCivFoEVHVUxKRVYgTUlLQQorxaBFR1VMSkVWIE1JTEVOS08KK8WgRUdVTEpFViBQQUpBCivFoEVHVUxKRVYgUEVUQVIKK8WgRUdVTEpFViBSQURPU0xBVgorxaBFR1VMSkVWIFJVxb1JQ0EKK8WgRUdVTEpFViBTTEFWS08KK8WgRUdVTEpFViBTTkXFvUFOQQorxaBFR1VMSkVWIFpBR09SS0EKK8WgRUdVTEpFViBaT1JJQ0EKK8WgRUhJxIYgTEpVQklDQQorxaBFSEnEhiBNSVJTQQorxaBFSEnEhiBTTEFWSUNBCivFoEVIT1ZJxIYgUkFNSVoKK8WgRUpNRcWgSSBTVEVWQU4KK8WgRUpQRcWgIMWgQVJMT1RBCivFoEVKUEXFoCBGRURPUgorxaBFSlBFxaAgRkVET1IKK8WgRUpQRcWgIEdBTElOQQorxaBFSlBFxaAgSUxPTkEKK8WgRUsgSlVMSUpBTgorxaBFS0FSScSGIE1JTE9TQVYKK8WgRUtBUknEhiBOQURBCivFoEVLRVJPVknEhiBEUkFHQU4KK8WgRUtVTEFSQUMgQUxFS1NBTkRSQQorxaBFS1VMQVJBQyBCUkFOSVNMQVYgRElQTCBPRUMKK8WgRUtVTEFSQUMgRFXFoEFOCivFoEVLVUxBUkFDIFBSRURSQUcKK8WgRUtVTEFSQUMgU0FWS0EKK8WgRUtVTEFSQUMgU0xPQk9EQU4KK8WgRUwgTUFSR0lUQQorxaBFTEIgTEFTTE8KK8WgRUxFU1QgU0xPQk9EQU5LQQorxaBFTEpFTSBKVUxJSkFOQQorxaBFTEpFTSBLQVJPTEogRElQTCBJTkcKK8WgRUxKRU0gTEpJTEpBTkEKK8WgRUxKRU0gU1RFVkFOCivFoEVMSkVNIFpPTFRBTgorxaBFTEtFTiBJTE9OS0EKK8WgRUxNScSGIFZVS09NQU4gRElQTCBJTkcKK8WgRU7EjEVWScSGIE1JTE9NSVIKK8WgRU5CT1JOIEFEQUxCRVJUIERSIFBST0YKK8WgRU5EVUxBIMWgQU5ET1IKK8WgRU5EVUxBIEFOVEFMCivFoEVORFVMQSBHQUJPUgorxaBFTkhBVVpFUiBUT01JU0xBVgorxaBFTksgQUxCSU5BCivFoEVOSyBJVkFOIERJUEwgSU5HCivFoEVOSyBWT0pJTgorxaBFTlRBTEVSIEVNSUwKK8WgRVAgTEVOS0EKK8WgRVDFoEVJIEtSSVNUSU5BCivFoEVQQSBTVkVUT1pBUgorxaBFUEFSRVZJxIYgREFSS08KK8WgRVBBUk9WScSGIERBUktPCivFoEVQQVJPVknEhiBMSklMSkFOQQorxaBFUEFST1ZJxIYgTUlST1NMQVYKK8WgRVBBUk9WScSGIFpPUkEKK8WgRVBFQyBWTEFESU1JUgorxaBFUEVDQU5PVknEhiBNSUxPxaAKK8WgRVBFTEogTEVOS0EKK8WgRVBFUkFDIFJBTktBCivFoEVQScSGIFpBREEKK8WgRVBJTlNLSSDEkFVSQQorxaBFUElOU0tJIMSQVVJBCivFoEVQSU5TS0kgSk9BS0lNCivFoEVQSU5TS0kgU0xBVklDQQorxaBFUkJBTiBTTE9CT0RBTktBCivFoEVSQkVExb1JSkEgRFJBR09MSlVCCivFoEVSQkVExb1JSkEgTUlSS08KK8WgRVJCRUTFvUlKQSBNSVJLTworxaBFUkJJxIYgSkVMS0EKK8WgRVJCScSGIFpBR09SS0EKK8WgRVJCScSGIFpBR09SS0EKK8WgRVJCVUxBIEJSQU5LTworxaBFUkJVTEEgTUlMQU4KK8WgRVJFxaAgxaBBTkRPUgorxaBFUkXFoCDFvVXFvUFOQQorxaBFUkXFoCBBTkEKK8WgRVJFxaAgQU5UVU4KK8WgRVJFxaAgRU5EUkUKK8WgRVJFxaAgRVNURVIKK8WgRVJFxaAgRlJBTkNJxaBLQQorxaBFUkXFoCBHSVpFTEEKK8WgRVJFxaAgSU1SRQorxaBFUkXFoCBKQU5PxaAKK8WgRVJFxaAgS0FST0xKIE1SCivFoEVSRcWgIExBU0xPCivFoEVSRcWgIFNURVZBTgorxaBFUkVHSSBaT0xUQU4KK8WgRVJFTUVUS09WU0tJIEFMRUtTQQorxaBFUkVNRVRLT1ZTS0kgQk9OQQorxaBFUkVSIExFTktBCivFoEVSRkVaSSDEkFVSQQorxaBFUknEhiBNSUxLQQorxaBFUklGIE5FxaBBVAorxaBFUklGSSBSQUJJSkEKK8WgRVJJRkkgU0FGRVQKK8WgRVJLT1YgTEpJTEpBTkEKK8WgRVJLT1YgUkFET1NMQVYKK8WgRVJPVknEhiBKT1ZJQ0EKK8WgRVNFSyBTVEFOSVNMQVYKK8WgRVNUQU4gQk9SSVMKK8WgRVNUQU5PViBCUkFOS08KK8WgRVNUQU5PViBNSUxFTkEKK8WgRVNUScSGIEJPR0RBTgorxaBFVEFMTyDFoEFORE9SCivFoEVUQUxPIEZSQU5KQQorxaBFVEFMTyBJTVJFCivFoEVUQUxPIElNUkUKK8WgRVRBTE8gS0FSTE8KK8WgRVRBTE8gS0FST0xKCivFoEVUS0EgS0FUQQorxaBFVEtBIFRPTUlTTEFWCivFoEVUUkFKxIxJxIYgSUxESUtPCivFoEVWxIxJxIYgxJBPUsSQRQorxaBFVkFSIEVNSUxJSkEKK8WgRVZBUiBKT1NJUCBWRVRFUklOQVIKK8WgRVZBUiBWTEFESVNMQVYKK8WgRVZBUkxJxIYgS09TVEEKK8WgRVZFUk9WIFJBRE9TTEFWCivFoEVWScSGIMSQT1LEkEUgTVIKK8WgRVZJxIYgxJBPUsSQRQorxaBFVknEhiDEkE9SxJBFCivFoEVWScSGIEFMRUtTQU5EQVIKK8WgRVZJxIYgQk9SSVNMQVYKK8WgRVZJxIYgRFJBR0FOCivFoEVWScSGIERSQUdPTEpVQgorxaBFVknEhiBEUkFHT0xKVUIKK8WgRVZJxIYgSk9WTworxaBFVknEhiBMQVpBUgorxaBFVknEhiBNSUxBTgorxaBFVknEhiBNSUxPxaAKK8WgRVZJxIYgTUlMT1JBRAorxaBFVknEhiBNSVJPU0xBVkEKK8WgRVZJxIYgTkFEQQorxaBFVknEhiBOQURBCivFoEVWScSGIFBFVEFSCivFoEVWScSGIFBFVEFSCivFoEVWScSGIFBSRURSQUcKK8WgRVZJxIYgUkFET1ZBTgorxaBFVknEhiBTQVZLQQorxaBFVknEhiBTTE9CT0RBTgorxaBFVknEhiBTUsSQQU4KK8WgRVZJxIYgVFJJVk8KK8WgRVZPIMSMRURPTUlSCivFoEVWTyBBTEVLU0FOREFSCivFoEVWTyBCT8WgS08KK8WgRVZPIEJPxaBLTworxaBFVk8gQlJBTktPCivFoEVWTyBEVcWgQU4KK8WgRVZPIEpPVk8KK8WgRVZPIE1JTEFOCivFoEVWTyBNSUxBTgorxaBFVk8gTUlMQU4KK8WgRVZPIE1MQURFTgorxaBFVk8gU0xBVklDQQorxaBFVk8gVkxBRE8KK8WgScWgQSBKT1NJUAorxaBJxaBBIEpPU0lQCivFoEnFoEFLT1ZJxIYgTUlMRU5BCivFoEnFoEFLT1ZJxIYgTUlST1NMQVYKK8WgScWgQVJJQ0EgTEpVUEtPCivFoEnFoEFSSUNBIFpEUkFWS08KK8WgScWgRVZJxIYgQU7EkEVMS0EKK8WgScWgScSGIE1JTEFOCivFoEnFoEnEhiBNTEFERU4KK8WgScWgScSGIFBFVEtBCivFoEnFoEnEhiBTVEpFUEFOCivFoEnFoEtBIE1BUkdJVEEKK8WgScWgS09WIEFOVEUKK8WgScWgS09WScSGIERSQUdPTEpVQgorxaBJxaBLT1ZJxIYgRFJBR09MSlVCCivFoEnFoExKQUdJxIYgxIxFRE8KK8WgScWgTEpBR0nEhiBEVcWgQU4KK8WgScWgT1ZJxIYgRFJBR09MSlVCCivFoEnFoE9WScSGIE1JTEHFoElOCivFoEnEkEFOSU4gQlJBTklTTEFWCivFoEnEkEFOSU4gRFXFoEFOIERJUEwgSU5HCivFoEnEkEFOSU4gTUlMSUNBCivFoEnEkEFOSU4gTUlMT0pFIERJUEwgSU5HCivFoEnEkEFOU0tJIEJVRElNSVIKK8WgScSQQU5TS0kgTUlST1NMQVYKK8WgSUJBTEnEhiBJTElKQQorxaBJQkFMScSGIExKVUJPTUlSCivFoElCVUwgWk9SQU4KK8WgSUJVTCBaT1JJQ0EKK8WgSUJVTE9WIMSQVVJBCivFoElDIE1BUklKQQorxaBJQyBURVJFWkEKK8WgSUZMScWgIEpBR09EQQorxaBJRkxJxaAgTEFKT8WgCivFoElGTEnFoCBTTEFWS08KK8WgSUdVRCDEkE9SxJBFCivFoElIQSBJxaBUVkFOCivFoElKQcSMScSGIEFMRUtTQU5EQVIKK8WgSUpBxIxJxIYgQUxFS1NBTkRBUgorxaBJSkHEjEnEhiBCT1JJU0xBVgorxaBJSkHEjEnEhiBCT1NJTEpLQQorxaBJSkHEjEnEhiBCUkFOSVNMQVYKK8WgSUpBxIxJxIYgREFOSUNBCivFoElKQcSMScSGIERBTklDQQorxaBJSkHEjEnEhiBEQU5JTE8KK8WgSUpBxIxJxIYgREFOSUxPCivFoElKQcSMScSGIERVxaBBTgorxaBJSkHEjEnEhiBEVcWgSUNBCivFoElKQcSMScSGIERVxaBJQ0EKK8WgSUpBxIxJxIYgSkVMSUNBCivFoElKQcSMScSGIExFU0EKK8WgSUpBxIxJxIYgTUlMSVZPSkUKK8WgSUpBxIxJxIYgTUlMT1JBRAorxaBJSkHEjEnEhiBNSVJPU0xBVgorxaBJSkHEjEnEhiBSQURPU0xBVgorxaBJSkHEjEnEhiBTVEFOS0EKK8WgSUpBxIxJxIYgU1RFVkFOCivFoElKQcSMScSGIFpPUklDQQorxaBJSkHEjEtJIMW9SVZBCivFoElKQcSMS0kgxb1JVktPCivFoElKQcSMS0kgxJBVUsSQSU5LQQorxaBJSkHEjEtJIEJPxb1JREFSCivFoElKQcSMS0kgRFJBR0FOQQorxaBJSkHEjEtJIEdPUkRBTkEKK8WgSUpBxIxLSSBJU0EKK8WgSUpBxIxLSSBKT1ZBTgorxaBJSkHEjEtJIEtPU1RBCivFoElKQcSMS0kgTEFaQVIKK8WgSUpBxIxLSSBNSUxBTgorxaBJSkHEjEtJIE1JTEVOS08KK8WgSUpBxIxLSSBNSUxPxaAKK8WgSUpBxIxLSSBNSVJKQU5BCivFoElKQcSMS0kgTkVTVE9SIERSCivFoElKQcSMS0kgUEVUQVIKK8WgSUpBxIxLSSBQUkVEUkFHCivFoElKQcSMS0kgUkFET1NMQVZBCivFoElKQcSMS0kgU0lNQQorxaBJSkHEjEtJIFNMQVZLTworxaBJSkHEjEtJIFNMT0JPREFOCivFoElKQcSMS0kgU1RFVkFOCivFoElKQcSMS0kgVE9NSVNMQVYKK8WgSUpBxIxLSSBWSVRPTUlSCivFoElKQcSMS0kgVlVKSUNBCivFoElKQUsgxJBPUsSQRQorxaBJSkFLIEpFTElDQQorxaBJSkFLIE1JTEVOS08KK8WgSUpBSyBNSUxPxaAKK8WgSUpBSyBQQVZMRQorxaBJSkFLIFBFVEFSCivFoElKQUsgVE9NQQorxaBJSkFLT1YgU1RBTklTTEFWQQorxaBJSkFLT1YgVkVMSktPCivFoElKQUtPVknEhiBEUkFHSUNBCivFoElKQUtPVknEhiBNSUxPUkFECivFoElKQUtPVknEhiBTVEVWQQorxaBJSkFLT1ZJxIYgWk9SQU4KK8WgSUpBTiBBTEVLU0FORFJBCivFoElKQU4gQk9KQQorxaBJSkFOIEJSQU5LTworxaBJSkFOIEJSQU5LTworxaBJSkFOIEJSQU5LTworxaBJSkFOIERBTkUKK8WgSUpBTiBJTElKQQorxaBJSkFOIE1JTEVWQQorxaBJSkFOIE1JTE/FoAorxaBJSkFOIE1JUktPCivFoElKQU4gTkVWRU5LQQorxaBJSkFOIE5JS09MQQorxaBJSkFOIFJBREUKK8WgSUpBTiBTTE9CT0RBTgorxaBJSlVLIERSQUdBTgorxaBJSyBUSUJPUgorxaBJS0VUIEnFoFRWQU4KK8WgSUtFVCBJxaBUVkFOCivFoElLRVQgSU1SRQorxaBJS0VUIEpPxb1FRgorxaBJS0VUIExBU0xPCivFoElLRVQgTEFTTE8KK8WgSUtFVCBMQVNMTworxaBJS0VUIE1BR0RBCivFoElLRVQgU1RFVkFOCivFoElLScSGIEJPR0RBTgorxaBJS0nEhiBSQURPU0xBVgorxaBJS01BTiBaVk9OS08KK8WgSUtPUEFSSUpBIMSQT1LEkEUKK8WgSUtPUEFSSUpBIEJPUklTTEFWCivFoElLT1BBUklKQSBEVcWgQU4KK8WgSUtPUEFSSUpBIEpFTEVOQQorxaBJS09QQVJJSkEgTUlMQU4KK8WgSUtPUEFSSUpBIE5FVkVOQQorxaBJS09QQVJJSkEgVElIT01JUgorxaBJS09QQVJJSkEgVElIT01JUgorxaBJS09QQVJJSkEgVkxBRElNSVIKK8WgSUxFIMWgQU5ET1IKK8WgSUxFIExBRElTTEFWCivFoElMRSBaT0xUQU4KK8WgSUxFUiBNSUxPUkFECivFoElMRVIgTUlMT1JBRAorxaBJTEkgScWgVFZBTgorxaBJTEkgS0FSTE8KK8WgSUxJIE1JSEFKTE8KK8WgSUxJIFZBTEVSSUpBCivFoElMScSGIMSQT1LEkEUKK8WgSUxJxIYgxJBPUsSQRQorxaBJTEnEhiDEkE9SxJBFCivFoElMScSGIEFOQQorxaBJTEnEhiBCT0dEQU4KK8WgSUxJxIYgREFOSUNBCivFoElMScSGIERSQUdPTUlSCivFoElMScSGIERVxaBJQ0EKK8WgSUxJxIYgSk9WQU4KK8WgSUxJxIYgTEpVQklDQQorxaBJTEnEhiBNSUxPUkFEIERSCivFoElMScSGIE1JTE9TQVZBCivFoElMScSGIE1JUkpBTkEKK8WgSUxJxIYgTUlSS08KK8WgSUxJxIYgTUlSS08KK8WgSUxJxIYgTkFEQQorxaBJTEnEhiBOSUtPTEEKK8WgSUxJxIYgT0xHSUNBCivFoElMScSGIE9MR0lDQQorxaBJTEnEhiBQRVRBUgorxaBJTEnEhiBQRVRBUgorxaBJTEnEhiBSQUNLTworxaBJTEnEhiBTQVZBCivFoElMScSGIFNQQVNFTktBCivFoElMScSGIFNUT0pBTgorxaBJTEnEhiBUT8WgQQorxaBJTEnEhiBUT0RPUgorxaBJTEnEhiBWQVNBCivFoElMScSGIFZFUkEKK8WgSUxJxIYgVklUT01JUgorxaBJTEpFRyBKT1pPCivFoElMSkVHT1ZJxIYgQk/FoEtPCivFoElMSkVHT1ZJxIYgQk/FoEtPCivFoElMSkVHT1ZJxIYgRFJBR09MSlVCCivFoElMSkVHT1ZJxIYgRFXFoEFOCivFoElMSkVHT1ZJxIYgSk9WQU5LQQorxaBJTEpFR09WScSGIE1JTEFOCivFoElMSkVHT1ZJxIYgTkFEQQorxaBJTEpJxIYgxIZBTUlMCivFoElMSktVVCBNSUxBTgorxaBJTEpLVVQgTUlMQU4KK8WgSUxKS1VUIE1JUktPCivFoElNxIxJxIYgT0xHSUNBCivFoElNxaBJxIYgRFXFoEFOCivFoElNxaBJxIYgSUxJSkEKK8WgSU3FoEnEhiBTQVZPCivFoElNQSBKT0FLSU0KK8WgSU1BIE1BUkdJVEEKK8WgSU1BIFZFUk9OSUtBCivFoElNQUsgSkFOCivFoElNQUxBIFZJS1RPUgorxaBJTUFOIEFMRUtTRUoKK8WgSU1BTkRJIEdBQlJJSkVMQQorxaBJTUFOREkgU1RFVkFOCivFoElNRUsgVkxBVEtPCivFoElNScSMScSGIFBFVEFSCivFoElNScSMScSGIFNWRVRJU0xBVgorxaBJTUnEhiBBTlRPCivFoElNScSGIEJPxb1BTkEKK8WgSU1JxIYgRlJBTkpPCivFoElNScSGIEdJWkVMQQorxaBJTUnEhiBIUlZPSkUKK8WgSU1JxIYgSlVMQSBESVBMIElORworxaBJTUnEhiBNSUxBTgorxaBJTUnEhiBNSUxBTgorxaBJTUnEhiBNSVJPU0xBVgorxaBJTUnEhiBNTEFERU4KK8WgSU1JxIYgTklOT1NMQVYKK8WgSU1JxIYgU0xBVktPCivFoElNScSGIFNMQVZLTworxaBJTUnEhiBTVEVWQU4KK8WgSU1JRyBUSUJPUgorxaBJTU9LT1ZJxIYgS0FUQVJJTkEKK8WgSU1PTiDFoEFORE9SCivFoElNT04gxJBFUsSQCivFoElNT04gQVJQQUQKK8WgSU1PTiBFUsW9RUJFVAorxaBJTU9OIE1BUklDQQorxaBJTU9OIE1JSEFMSgorxaBJTU9OIFZJTE1PxaAgRFIKK8WgSU1PTklLIFZMQURBCivFoElNT05KSSDFoEFORE9SCivFoElNT05KSSBCQVJCQVJBCivFoElNT05KSSBKQU5PxaAKK8WgSU1PTkpJIFNPRklKQQorxaBJTU9OSkkgWk9MVEFOCivFoElNT05KSSBaVk9OS08KK8WgSU1PTkpJSyBNQVRJSkEKK8WgSU1PVknEhiBKT8W9RUYKK8WgSU1PVknEhiBNSVJPCivFoElNUFJBR0EgRFXFoEFOCivFoElNUFJBR0EgSkFEUkFOS0EKK8WgSU1VRFZBUkFDIFBBVkFPCivFoElNVUxJSkEgRFJBxb1FTgorxaBJTVVMSUpBIEpPVk8KK8WgSU1VTsSQQSBMSlVCT01JUgorxaBJTVVORUMgTUFSSUpBCivFoElNVU5JxIYgQU5LQQorxaBJTVVOScSGIElWQU4KK8WgSU1VTknEhiBLQVJMTworxaBJTVVOScSGIFNURVZBTgorxaBJTVVOT1ZBxIxLSSBLQVRJQ0EKK8WgSU1VTk9WQcSMS0kgTklLT0xBCivFoElNVU5PVkHEjEtJIE5JS09MQQorxaBJTVVOT1ZBxIxLSSBTTEFWS08KK8WgSU1VTk9WScSGIEdPUkRBTkEKK8WgSU1VTk9WScSGIEdPUkRBTkEKK8WgSU1VTk9WScSGIEpPU0lQCivFoElNVU5PVknEhiBKT1NJUAorxaBJTVVOT1ZJxIYgSk9TSVAKK8WgSU1VTk9WScSGIE5FTkFECivFoElNVU5PVknEhiBOSUtPTEEgRElQTCBJTkcKK8WgSU1VTk9WScSGIFNUQU5JU0xBVgorxaBJTVVOT1ZJxIYgU1RBTktPCivFoElNVU5PVknEhiBTVkVUTEFOQQorxaBJTVVOT1ZJxIYgVE9NQQorxaBJTkFHTCBLQVJPTEoKK8WgSU5BR0wgS0FST0xKCivFoElOQUdMIE9UTworxaBJTkFHTCBTVEVWQU4KK8WgSU5JSyBEUkFHQU4KK8WgSU5JS09WIMSQT1LEkEUKK8WgSU5JS09WIE1JTEFOCivFoElOS0EgTUFSR0lUQQorxaBJTktBIFpMQVRLTworxaBJTktPIEdJWkVMQQorxaBJTktPIElWQU5LQQorxaBJTktPIEpBTk/FoAorxaBJTktPIFNURVZBTgorxaBJTktPIFZMQURJU0xBVgorxaBJTktPVknEhiBNQVJJSkEKK8WgSVDEjEnEhiBMSlVCT01JUgorxaBJUMSMScSGIE1BUklKQQorxaBJUMSMScSGIE1JRE8KK8WgSVDEjEnEhiBNSUpPRFJBRworxaBJUMSMScSGIE5JTk9TTEFWCivFoElQRUsgSk9TSVAgTk9WSU5BUgorxaBJUEVUScSGIEFOxJBBCivFoElQRVRJxIYgTU9NxIxJTE8KK8WgSVBJxIYgQUxFS1NBTkRSQQorxaBJUElOIEpPVkFOS0EKK8WgSVBLQSBCT8W9QQorxaBJUEtBIEJPxb1PCivFoElQS0EgQlJBTktPCivFoElQS0EgRFJBR0FOCivFoElQS0EgRFJBR08KK8WgSVBLQSBHUlVKTworxaBJUEtBIE1BUktPCivFoElQS0EgTUlSS08KK8WgSVBLQSBNSVJPU0xBVgorxaBJUEtBIE1JUk8KK8WgSVBLQSBORcSQTworxaBJUEtBIFpPUkFOCivFoElQS0EgWk9SQU4KK8WgSVBPxaAgxaBBTkRPUgorxaBJUE/FoCDEkE9SxJBFCivFoElQT8WgIMSQT1LEkEUKK8WgSVBPxaAgxJBVUkEKK8WgSVBPxaAgxJBVUk8KK8WgSVBPxaAgRURJVAorxaBJUE/FoCBFUsW9RUJFVAorxaBJUE/FoCBJR05KQUMKK8WgSVBPxaAgSkFOT8WgCivFoElQT8WgIEpPVkFOS0EKK8WgSVBPxaAgSk9WQU4KK8WgSVBPxaAgSlVMSUpBTkEKK8WgSVBPxaAgTUlSSkFOQQorxaBJUE/FoCBST1pBTElKQQorxaBJUE/FoCBWTEFESU1JUgorxaBJUE/FoEVWScSGIFJBRE9KS0EKK8WgSVBPU0tJIEtSU1RFCivFoElQT1ZBQyBDVklKRVRBCivFoElQT1ZBQyBEQU5JTE8KK8WgSVBPVkFDIEpBTkpBCivFoElQT1ZBQyBORURFTEpLTworxaBJUE9WQUMgUkFESUNBCivFoElQT1ZBQyBWQVNJTElKQQorxaBJUFJBR0EgVVJPxaAKK8WgSVBVxaBJxIYgSEVMRU5BCivFoElSQURPVknEhiBCUkFOSVNMQVYKK8WgSVJJSk9WU0tJIEdPQ0UKK8WgSVJLQSBKQU4KK8WgSVJLQSBTQU1VRUwKK8WgSVJPxIxLQSBBTlRVTgorxaBJUk9LSSBBREFNCivFoElST0xBIElWQU4KK8WgSVJPTknEhiBMSlVCTworxaBJU1RPViBEUkFHTworxaBJVEUgS0FST0xKCivFoElURSBNQVJJSkEKK8WgSVRFIFRJQk9SCivFoElURVIgS0FSTE8KK8WgSVRFUiBSVcW9SUNBCivFoElURVIgU0xPQk9EQU4KK8WgSVZFR0kgSU1SRQorxaBLQUxKQUMgU1RBTktPCivFoEtBTEpBQyBaT1JBTgorxaBLQVJJxIxJxIYgTUlST1NMQVYKK8WgS0FSSUNBIERPTE9SRVMKK8WgS0FSSUNBIFNUSkVQQU4KK8WgS0FSSU4gVE9ET1IKK8WgS0FUQVJJxIYgWk9SQU4KK8WgS0FWScSGIENWSUpPCivFoEtBVknEhiBKT1ZPCivFoEtBVknEhiBNSUxBTgorxaBLQVZJxIYgTklLT0xBCivFoEtFS0nEhiBNSU9NSVIKK8WgS0lMSkFKSUNBIFZMQURJTUlSCivFoEtJTEpFVknEhiBNSUxJRFJBRworxaBLT0JBTEogTkFEQQorxaBLT0JBTEogVk9KSVNMQVYKK8WgS09EQUsgUEFWTEUKK8WgS09MT1BJSkEgTEFaQVIKK8WgS09ORFJJxIYgRFJBR09NSVIKK8WgS09SScSGIMSMRURPTUlSCivFoEtPUknEhiDFoFRSQUNJTUlSCivFoEtPUknEhiDEkFVKQQorxaBLT1JJxIYgxJBVUk8KK8WgS09SScSGIEFOS0EKK8WgS09SScSGIEJPU0lMSktBCivFoEtPUknEhiBCUkFOSVNMQVYKK8WgS09SScSGIEJSQU5LTworxaBLT1JJxIYgRFJBR0FOIERSCivFoEtPUknEhiBEUkFHQU4KK8WgS09SScSGIERSQUdBTgorxaBLT1JJxIYgRFXFoEFOCivFoEtPUknEhiBEVcWgQU4KK8WgS09SScSGIERVxaBBTgorxaBLT1JJxIYgRFXFoEtPCivFoEtPUknEhiBHUlVNSUtPVgorxaBLT1JJxIYgSk9WQU4KK8WgS09SScSGIEpPVkFOCivFoEtPUknEhiBLU0VOSUpBCivFoEtPUknEhiBMQVpBUgorxaBLT1JJxIYgTEpJTEpBTkEKK8WgS09SScSGIE1BUkEKK8WgS09SScSGIE1BUklKQQorxaBLT1JJxIYgTUFSSUpBCivFoEtPUknEhiBNScSGTworxaBLT1JJxIYgTUlMQU4KK8WgS09SScSGIE1JTEFOCivFoEtPUknEhiBNSUxBTgorxaBLT1JJxIYgTUlMQU4KK8WgS09SScSGIE1JTEVOS08KK8WgS09SScSGIE1JTElWT0oKK8WgS09SScSGIE1JTEtBCivFoEtPUknEhiBNSUxPxaAKK8WgS09SScSGIE1JUkpBTkEKK8WgS09SScSGIE1JUktPCivFoEtPUknEhiBNSVJLTworxaBLT1JJxIYgTUlSS08KK8WgS09SScSGIE5JS09MQQorxaBLT1JJxIYgTklLT0xBCivFoEtPUknEhiBQQVZMRQorxaBLT1JJxIYgUEFWTEUKK8WgS09SScSGIFBFUk8KK8WgS09SScSGIFNMQVZLTworxaBLT1JJxIYgU0xPQk9EQU4KK8WgS09SScSGIFNNSUxKQQorxaBLT1JJxIYgU01JTEpBCivFoEtPUknEhiBTUkXEhktPCivFoEtPUknEhiBTVEFOQQorxaBLT1JJxIYgVkxBRElNSVIKK8WgS09SScSGIFpPUkEKK8WgS09STyDFoElNRQorxaBLT1JPIE1JUkpBTkEKK8WgS09STyBWQVNJTElKQQorxaBLUkFWQU4gQU5EUklKQQorxaBLUkJJxIYgxb1FTEpLTworxaBLUkJJxIYgxJBVUk8KK8WgS1JCScSGIEFOSUNBCivFoEtSQknEhiBCTEHFvU8KK8WgS1JCScSGIEJPxb1PCivFoEtSQknEhiBCT0pBTkEKK8WgS1JCScSGIEJSQU5LTworxaBLUkJJxIYgRFJBR0lDQQorxaBLUkJJxIYgRFXFoEFOCivFoEtSQknEhiBKT1ZBTgorxaBLUkJJxIYgSk9WQU4KK8WgS1JCScSGIExKVUJJQ0EKK8WgS1JCScSGIE1BUkEKK8WgS1JCScSGIE1BUklDQQorxaBLUkJJxIYgTUlMRQorxaBLUkJJxIYgTUlMT1JBRAorxaBLUkJJxIYgTUlMT1JBRAorxaBLUkJJxIYgTkVCT0rFoEEKK8WgS1JCScSGIE9TVE9KQQorxaBLUkJJxIYgUEVUQVIKK8WgS1JCScSGIFJBRE9TTEFWCivFoEtSQknEhiBTVkVUT1pBUgorxaBLUkJJxIYgWk9SS0EKK8WgS1JCSU5BIFNUSkVQQU4KK8WgS1JHRVQgSk9TSVAKK8WgS1JJSkVMIERSQUdBTgorxaBLUklKRUwgTUlMQU4KK8WgS1JJSkVMSiBBSk5JSkEKK8WgS1JJSkVMSiBTQU1JUgorxaBLUklKRUxKIFZFSEJPCivFoEtSSU5KQVIgS0FST0xKCivFoEtSSU5KQVIgTUFSSU8KK8WgS1JJTkpBUiBaVk9OSU1JUgorxaBLUklWQU4gxJBVUkEKK8WgS1JJVkFOIEFOVFVOCivFoEtSSVZBTiBGUkFOSkEKK8WgS1JJVkFOIEtBUkxPCivFoEtSSVZBTiBMQURJU0xBVgorxaBLUklWQU4gUEVUQVIKK8WgS1JJVkFOIFNURVZBTgorxaBLUklWQU4gU1RFVkFOCivFoEtSSVZBTkogUEnFoFRBCivFoEtVTEVUScSGIE9MR0EKK8WgS1VMRVRJxIYgWk9SQU4KK8WgS1VOQ0EgSVZBTgorxaBLVU5DQSBKRUxJQ0EKK8WgS1VORFJJxIYgRFXFoEFOCivFoEtVTkRSScSGIE1JTElDQQorxaBLVU5EUknEhiBQRVRBUgorxaBLVU5EUknEhiBST1pBTElKQQorxaBLVkFSRUsgVkxBREEKK8WgTEFIVEVSIFZFTkRFTAorxaBMQUpFUiBSVURPTEYKK8WgTEFWSUsgSUxPTkEKK8WgTEVIVEEgWkRFTktPCivFoExFTUVOREVSIMSQT1LEkEUKK8WgTEVNRU5ERVIgQU5HRUxBCivFoExFTUVOREVSIElSRU5BCivFoExKQVBJxIYgR09SQU4KK8WgTEpBUEnEhiBNSVJKQU5BCivFoExKQVBJxIYgT0JSRU4KK8WgTEpBUEnEhiBSVcW9SUNBCivFoExKQVBJxIYgU1RFVkFOCivFoExKQVBJxIYgVEFUSkFOQQorxaBMSkFQScSGIFRPTUlTTEFWCivFoExKQVBJxIYgVkVMRU1JUgorxaBMSklWQU7EjEFOSU4gSk9WQU4KK8WgTEpJVkFOxIxBTklOIEpPVkFOCivFoExKSVZBTsSMQU5JTiBNQVJJSkEKK8WgTEpJVkFOxIxBTklOIE1JTFVUSU4KK8WgTEpJVknEhiDEkE9SxJBFCivFoExKSVZJxIYgQk9SS0EKK8WgTEpJVknEhiBKRUxFTkEKK8WgTEpJVknEhiBMSklMSkFOQQorxaBMSklWScSGIE1JUkpBTkEKK8WgTEpJVknEhiBSQURPSklDQQorxaBMSklWScSGIFNQQVNPSkUKK8WgTEpJVknEhiBWTEFESVNMQVYKK8WgTEpJVktPVknEhiDEkE9SxJBFCivFoExKVUtBIERSQUdJxaBBCivFoExKVUtBIE1JSk9EUkFHCivFoExKVUtBIE1JTEFOCivFoExKVUtBIE1JTE/FoAorxaBMSlVLScSGIMW9SVZBTiBEUgorxaBMSlVLScSGIE1JTElWT0oKK8WgTEpVS0nEhiBST1NBTkRBCivFoE1BTkpBIE1JUktPCivFoE1BTkpBIFNMQVZLTworxaBNSURFUktBTCBGUkFOSkEKK8WgTUlHRUxKU0tJIE5JS09MQQorxaBNSUdJxIYgQk9SSVNMQVYKK8WgTUlHScSGIE1JTE9SQUQKK8WgTUlHScSGIFNWRVRPWkFSCivFoE1JVCBGRVJESU5BTkQKK8WgTUlUIEdJWkVMQQorxaBNSVQgSk9TSVAKK8WgTUlUIEpPVkFOCivFoE1JVC1LT1RBIEtBVElDQQorxaBNSVQgTUFSSUpBCivFoE1JVCBNSVJKQU5BCivFoE1JVC1QUk9LSU4gxJBVUsSQSU5BCivFoE1JVCBSRcW9RQorxaBNSVQgU1RBTkEKK8WgTUlUIFNUQU5PSktBCivFoE1JVCBTVEVWQU4KK8WgTUlUIFNURVZBTgorxaBNSVQgVklPTEVUQQorxaBNSVQgWkxBVEtPCivFoE1JVFJBTiDEkE9SxJBFCivFoE1VSyBJVkFOCivFoE5BSkRFUiDFoEFORE9SCivFoE5BSkRFUiBBTklDQQorxaBOQUpERVIgSUxJTktBCivFoE5BSkRFUiBKQU5PxaAKK8WgTkFKREVSIEpBUk9TTEFWCivFoE5BSkRFUiBTVEVWQU4KK8WgTkFKREVSIFZFUkEKK8WgTkFKREVST1YgSk9TSVAKK8WgTkFKREVST1YgVkVTTkEKK8WgTkFVVElMIERSQUdVVElOCivFoE5FTCBQRVRFUgorxaBOSkFSScSGIElWQU4KK8WgT8WgIEFOVEFMCivFoE/FoCBBTlRBTAorxaBPxaAgQkFMSU5UCivFoE/FoCBERVpJREVSCivFoE/FoCBHSVpFTEEKK8WgT8WgIElMT05BCivFoE/FoCBKRUxJQ0EKK8WgT8WgIExBSk/FoAorxaBPxaAgTUFSSUpBCivFoE/FoCBUSUJPUgorxaBPxaBJxIYgTUlSS08KK8WgT8WgScSGIE5BVEHFoEEKK8WgT8WgScSGIE9MR0EKK8WgT8WgScSGIFJBRE9TTEFWCivFoE/FoEnEhiBWVUsKK8WgT8WgS0nEhiBEUkFHT01JUgorxaBPxaBLScSGIE1JUkEKK8WgT8SGIEJPSkFOQQorxaBPxIYgRFXFoEFOCivFoE/EhiBUT01JU0xBVgorxaBPQkFKScSGIERSQUdPU0xBVgorxaBPQkFLSSBNQVJJSkEKK8WgT0JJxIYgTUlSQQorxaBPQknEhiBSQURFCivFoE9CScSGIFZFUkEKK8WgT0JJxIYgWk9SQU4KK8WgT0JJxIYgWk9SQU4KK8WgT0JPVCDEkFVSQQorxaBPQk9UIEJPxaBLTworxaBPQk9UIEJSQU5LTworxaBPQk9UIERSQUdBTgorxaBPQk9UIEpPVkFOCivFoE9CT1QgTEpVQk9NSVIKK8WgT0JPVCBNSUxBTgorxaBPQk9UIE1JTElDQQorxaBPQk9UIFBFVEtPCivFoE9CT1QgU0VLVUxBCivFoE9CT1QgU0xBVklDQQorxaBPREnEhiBET0JSSUxBCivFoE9EScSGIERSQUdJTkpBCivFoE9EScSGIEdJWkVMQQorxaBPREnEhiBNSUxBTgorxaBPREnEhiBUT0RPUgorxaBPRE9ST1ZJxIYgUk9TQQorxaBPRkhBVVpFUiBNSUhBSkxPCivFoE9GSEFVWkVSIFJPWkFMSUpBCivFoE9GUkFOIE1BUklKQQorxaBPRlJBTkFDIE1FTEFOSUpBCivFoE9HT1JPViBTVEVWQU4KK8WgT0pJxIYgxb1JVktPCivFoE9KScSGIEJSQU5LTworxaBPSknEhiBEUkFHSUNBCivFoE9KScSGIE5FREVMSktBCivFoE9KTEVWU0tBIFNBTkpBCivFoE9LScSGIMSQT1LEkEUKK8WgT0tJxIYgSlVESVRBCivFoE9LScSGIE1JTEFOCivFoE9LScSGIFBFVEFSCivFoE9LScSGIFJBRE9WQU4KK8WgT0tJxIYgU01JTEpBCivFoE9LSUNBIMW9SVZLTworxaBPS0lDQSBCUkFOSVNMQVYKK8WgT0tJQ0EgRElNSVRSSUpFCivFoE9LSUNBIERSQUdJxaBBCivFoE9LSUNBIEpPVkFOCivFoE9LSUNBIEpVRElUQQorxaBPS0lDQSBMSlVCSUNBCivFoE9LSUNBIE1JTE/FoAorxaBPS0lDQSBaT1JBCivFoE9LTE9WQcSMS0kgxb1JVktPCivFoE9LTE9WQcSMS0kgRFJBR09MSlVCCivFoE9LTE9WQcSMS0kgTkFEQQorxaBPS0xPVkHEjEtJIFJBVE9NSVIKK8WgT0wgQkVMQQorxaBPTEFKQSDEkE9SxJBFCivFoE9MQUpBIERJTUlUUklKRQorxaBPTEFKQSBHT0pLTworxaBPTEFKQSBNSUxBTgorxaBPTEFKQSBNSVJPU0xBVgorxaBPTEFKQSBOQURBCivFoE9MQUpBIE5BREEKK8WgT0xBSkEgUkFET1NMQVYKK8WgT0xBSkEgU0xBVktPCivFoE9MQUpBIFNMQVZLTworxaBPTEFKQSBTTE9CT0RBTgorxaBPTEFKQSBWScWgTkpBCivFoE9MQUsgSk9LQQorxaBPTEFLIE1BUklOS08KK8WgT0xBSyBNSUxFCivFoE9MQUsgUkFERQorxaBPTEVWScSGIE1JTElWT0pFCivFoE9MVEVTIMWgQU5ET1IKK8WgT0xURVMgSUJPTEpBCivFoE9MVEVTIEpPxb1FRgorxaBPTUtFUkVLSSBJTE9OS0EKK8WgT01LRVJFS0kgSk9TSVAKK8WgT01LRVJFS0kgSlVMSUpBTkEKK8WgT01LRVJFS0kgTEFESVNMQVYKK8WgT01LRVJFS0kgU1RFVkFOCivFoE9NS0VSRUtJIFNURVZBTgorxaBPTU/EkEkgxb1PRklKQQorxaBPTU/EkEkgxJBPUsSQRQorxaBPTU/EkEkgRVZBCivFoE9NT8SQSSBGUkFOSkEKK8WgT01PxJBJIEnFoFRWQU4KK8WgT01PxJBJIEpFTEVOQQorxaBPTU/EkEkgSk9WQU4KK8WgT01PxJBJIExBU0xPCivFoE9NT8SQSSBNSUhBSkxPCivFoE9NT8SQSSBQQUwKK8WgT01PxJBJIFBBTAorxaBPTU/EkEkgUEFMCivFoE9NT8SQSSBST1pBCivFoE9NT8SQSSBaT0xUQU4KK8WgT01PxJBJIFpPUkEKK8WgT1AgTUFHREFMRU5BCivFoE9QIE1JTEFOCivFoE9QQUxPIMSQVVLEkElOQQorxaBPUEFMTyDEkFVSxJBJTkEKK8WgT1BBTE8gTUlPRFJBRyBESVBMIE9FQworxaBPUEFMTyBNSU9EUkFHCivFoE9SxJBBTiBST01BTgorxaBPUkFLIE1JUkpBTkEKK8WgT1JBTE9WIE1JTE/FoAorxaBPUkFMT1YgTUlST1NMQVYKK8WgT1JNQVogRFXFoEFOCivFoE9STUFaIE1JTEFOCivFoE9STUFaIE5JS09MQQorxaBPUk1BWiBWTEFESU1JUgorxaBPUk9OSkEgU0FWQQorxaBPUk9OSkEgVkVSQQorxaBPU0JFUkdFUiBCT1JJxaBLQQorxaBPU0JFUkdFUiBKT1NJUCBESVBMIE9FQworxaBPU0JFUkdFUiBQQVZMRQorxaBPU1RBS09WIFJBU1RJU0xBViBESVBMIElORworxaBPVEktxIxBTEVOScSGIE1BUklKQQorxaBPVEkgRkXEkEEKK8WgT1RJIElWQU5BCivFoE9USSBKT1NJUAorxaBPVEkgSk9TSVAKK8WgT1RJIE1BUklKQQorxaBPVEkgTUFSSUpBCivFoE9UUkEgTU9NxIxJTE8KK8WgT1VDIE1JTEFOCivFoE9VQyBNSVJPU0xBVgorxaBPVUMgWkxBVEEKK8WgT1bFoCBKQU5LTworxaBPVsWgIEpPQUtJTQorxaBPVkFOSiBKT0FLSU0KK8WgT1ZFTkogQUxFS1NBTkRBUgorxaBPVkVOSiBLQVJMTworxaBPVkVOSiBWRVJBCivFoE9WTEpBS09WIEpPVkFOCivFoE9WTEpBS09WIE1JTE/FoAorxaBPVkxKQUtPViBNSUxPxaAKK8WgT1ZMSkFOU0tJIMSQT1LEkEUgRElQTCBJTkcKK8WgT1ZMSkFOU0tJIMSQT1LEkEUKK8WgT1ZMSkFOU0tJIEFOS0lDQQorxaBPVkxKQU5TS0kgQk9TSUxKS0EKK8WgT1ZMSkFOU0tJIEJSQU5LTworxaBPVkxKQU5TS0kgREFOSUNBCivFoE9WTEpBTlNLSSBEQU5JTE8KK8WgT1ZMSkFOU0tJIERBTktBCivFoE9WTEpBTlNLSSBESU1JVFJJSkUKK8WgT1ZMSkFOU0tJIERSQUdJxaBBCivFoE9WTEpBTlNLSSBEUkFHSUNBCivFoE9WTEpBTlNLSSBEUkFHSUNBCivFoE9WTEpBTlNLSSBEUkFHSUNBCivFoE9WTEpBTlNLSSBEUkFHT01JUgorxaBPVkxKQU5TS0kgRFJBR09NSVIKK8WgT1ZMSkFOU0tJIERSQUdPU0xBVgorxaBPVkxKQU5TS0kgRFJFTktBCivFoE9WTEpBTlNLSSBFTUlMCivFoE9WTEpBTlNLSSBKVUxLQQorxaBPVkxKQU5TS0kgTEFaQVIKK8WgT1ZMSkFOU0tJIExKVUJJQ0EKK8WgT1ZMSkFOU0tJIExKVUJPTUlSCivFoE9WTEpBTlNLSSBNQVJHSVRBCivFoE9WTEpBTlNLSSBNSUxBTgorxaBPVkxKQU5TS0kgTUlMT8WgCivFoE9WTEpBTlNLSSBNSUxPUkFECivFoE9WTEpBTlNLSSBNSVJKQU5BCivFoE9WTEpBTlNLSSBNSVJKQU5BCivFoE9WTEpBTlNLSSBNSVJKQU5BCivFoE9WTEpBTlNLSSBNSVJPU0xBViBEUgorxaBPVkxKQU5TS0kgTkFEQQorxaBPVkxKQU5TS0kgUEFWTEUKK8WgT1ZMSkFOU0tJIFJBRElWT0oKK8WgT1ZMSkFOU0tJIFJBRE9TTEFWCivFoE9WTEpBTlNLSSBTQVZBCivFoE9WTEpBTlNLSSBTVE9KQU4KK8WgUEFESUpFUiBUQVRJSkFOQQorxaBQQUdPVknEhiBEUkFHT1NMQVYKK8WgUEFLIFZMQURJTUlSCivFoFBBTsSMScSGIFJBRE1JTEEKK8WgUEFORyBMQVNMTworxaBQQU5HIFpPTFRBTgorxaBQQU5JxIYgQk/FoEtPCivFoFBBTknEhiBGUkFOSkEKK8WgUEFOScSGIExBRElTTEFWCivFoFBBTknEhiBOQURBCivFoFBBTknEhiBPVE8KK8WgUEFOSkVWScSGIFNVWkFOQQorxaBQQU5KRVZJxIYgVlVLT1RBCivFoFBBTk9WScSGIMSQT1LEkEUKK8WgUEFOT1ZJxIYgQUxFS1NBCivFoFBBTk9WScSGIE1JTE/FoAorxaBQQU5PVknEhiBOSUtPTEEKK8WgUEFSQVZBTE8gTUFSSUpBCivFoFBBUkFWQUxPIE5BVEHFoEEKK8WgUEFSQVZBTE8gU0FWQQorxaBQQVJBVkFMTyBaRFJBVktPCivFoFBBUk9WScSGIElMSUpBCivFoFBFR0FSIExBWkFSCivFoFBFSEFSIE1BUklKQQorxaBQRVMgRVRFTAorxaBQRVMgVklMSU0KK8WgUEVTIFZJTElNCivFoFBJQ0EgTUlPRFJBRworxaBQSUtBIE1JTEFOCivFoFBJTkRMRVIgTUFSSUpBCivFoFBJTkRMRVItVFJCT0pFVknEhiBNSVJKQU5BCivFoFBJUknEhiBCT1JJVk9KRQorxaBQSVJJxIYgR09SREFOQQorxaBQSVJJxIYgR09TUEFWQQorxaBQSVJJxIYgSUxFCivFoFBJUknEhiBKT1ZPCivFoFBJUknEhiBMVUtBCivFoFBJUknEhiBMVUtBCivFoFBJUknEhiBNSUxFCivFoFBJUknEhiBORcSQTworxaBQSVJJxIYgT0JSQUQKK8WgUElSScSGIFNUT0pBTgorxaBQSVJJxIYgVE9ERQorxaBQSVJJxIYgVVJPxaAKK8WgUElSScSGIFpPUkFOCivFoFBJUktBIE1BVElMRAorxaBQSVJUQSBBTEVLU0FOREFSCivFoFBJUlRBIEFMRUtTQU5EQVIKK8WgUElTIERBTklMTworxaBQSVMgREFOSUxPCivFoFBJUyBMQUpPxaAKK8WgUElTIE1JUkpBTkEKK8WgUElTIE5BTkRPUgorxaBQT05KQSBLT1ZJTEpLTworxaBQUk9IIERSRU5LQQorxaBQUk9IIEpBTktPCivFoFBST0ggTUFHREEKK8WgUFJPSCBTTEFWS08KK8WgUFJPSCBTVEFOS08KK8WgUFJPSCBTVEVWQU4KK8WgUkFIT0wgSElMREEKK8WgUkFIT0wgS0FSTE8KK8WgUkFIT0wgTEpVREVWSVQKK8WgUkFKIFZMQURJTUlSCivFoFJBSyBKT1ZJQ0EKK8WgUkFLIExBRElTTEFWCivFoFJBSyBMQVNMTworxaBSQUsgT1RPCivFoFJBSyBPVE8KK8WgUkFNIEhVR08KK8WgUkFOQyBSSUhBUkQKK8WgUkFOQyBSSUhBUkQKK8WgUkFOS0EgQU5BCivFoFJBTktBIERFU0FOS0EKK8WgUkVERVIgSkFOT8WgCivFoFJFREVSIEpBTk/FoAorxaBSRUsgQU5EUklKQSBESVBMIElORworxaBSRUsgU1RFVkFOIERJUEwgSU5HCivFoFRBQkkgxaBURUZJQ0EKK8WgVEFKTiBMSVZJSkEKK8WgVEFKTkVSIEtSRcWgSU1JUgorxaBUQUpORVIgTUlSSkFOQQorxaBUQUpORVIgTUlST1NMQVYKK8WgVEFKTkVSIFpWT05JTUlSCivFoFRBSk5GRUxEIE1JSEFKTE8KK8WgVEFKTklDIE1JUk9TTEFWCivFoFRBSk5JQyBUSUJPUgorxaBUQU5ESSBLQVRJQ0EKK8WgVEFOREkgWk9MVEFOCivFoFRBTkZFTEogQUxPSloKK8WgVEFORkVMSiBNSVJPU0xBVgorxaBUQU5HTCDEkE9SxJBFCivFoFRBTkpPLVRPVCBHSVpFTEEKK8WgVEFSSyBFR09OIERJUEwgSU5HCivFoFRBUksgTUlSS08KK8WgVEFTTkkgSk9TSVAKK8WgVEFTTkkgS0FUSUNBCivFoFRBVEtJxIYgTUlST1NMQVYKK8WgVEFVSEVSIEpPU0lQCivFoFRFQkwgSkVMRU5BCivFoFRFRkFOIMSQT1LEkEUKK8WgVEVGQU4gRVXEkEVOCivFoFRFRkFOIEpVTElKQU5BCivFoFRFRkFOIE1BVElKQQorxaBURUZBTiBPU0tBUgorxaBURUZBTiBSVURPTEYKK8WgVEVGQU4gVFJBSkFOCivFoFRFRkFOQUMgU1RFVkFOCivFoFRFRkFOSUNLSSBNScWgTworxaBURUZBTklERVMgS0FSTE8gRFIKK8WgVEVGQU5JREVTIEtBUkxPCivFoFRFRkFOS08gVklLVE9SSUpBCivFoFRFRkFOT1ZJxIYgRFJBR0FOCivFoFRFRkFOT1ZJxIYgRFJBR1VUSU4KK8WgVEVGQU5PVknEhiBUT01JU0xBVgorxaBURUZLTyDEkE9SxJBFCivFoFRFRktPIMSQT1LEkEUKK8WgVEVGT1ZJxIYgVkxBRElNSVIKK8WgVEVGVUxJSyBKT8W9RUYKK8WgVEVHRVIgUk/FvUkKK8WgVEVHRVIgVkFMRU5USU5BCivFoFRFSEVSIFJBRE1JTEEKK8WgVEVMQ0VSIEpPU0lQCivFoFRFTEkgQU5UVU4KK8WgVEVSTEUgSk9TSVAKK8WgVEVSTEUgU1RFVkFOCivFoFRFUkxFTUFOIEtSSVNUSUpBTgorxaBURVJMRU1BTiBQRVJBCivFoFRFVEnEhiBLUklTVElOQQorxaBURVRJxIYgVElIT01JUgorxaBURVRJxIYgVkVTTkEKK8WgVEVUScSGIFZJREEKK8WgVEVUSU4gSEVMRU5BCivFoFRFVElOIE1JTEFOCivFoFRFVElOIE1JTEUKK8WgVEVUSU4gU1ZFVElTTEFWCivFoFRFVkFOxIxFViBMSlVCT01JUgorxaBUSUNBIFZJVE9NSVIKK8WgVElHTEVSIElWQU4KK8WgVElHTEVSIE1JTEFOCivFoFRJR0xJxIYgRFJBR0FOCivFoFRJR0xJxIYgU1ZFVE9aQVIKK8WgVElLQVZBQyBLT1NPVktBCivFoFRJS09WQUMgU1BBU09KRQorxaBUSU1BQyBPVE8KK8WgVElNQUMgUlVET0xGCivFoFRPS09WQUMgSk9WQU4KK8WgVE9LT1ZBQyBUT01JU0xBVgorxaBUT0xCQSBaVk9OSU1JUgorxaBUT1MgS0FUSUNBCivFoFRSQUpIIEnFoFRWQU4KK8WgVFJBSkggSk9TSVAKK8WgVFJBSkggT1RUTworxaBUUkFOR0FSIE5BREEKK8WgVFJBTkdBUk9WIEJPUklWT0oKK8WgVFJBTkdBUk9WIERJTUlUUklKRQorxaBUUkFOR0FST1YgSkVMRU5BCivFoFRSQU5HQVJPViBKRUxFTkEKK8WgVFJBTkdBUk9WIE1JTElDQQorxaBUUkFOR0FST1YgU0xPQk9EQU4KK8WgVFJBUEFKRVZJxIYgSlVMSUpBTkEKK8WgVFJBU0VSIE1JSEFKTE8gRFIgTEVLQVIKK8WgVFJBU0VSIE5BREEKK8WgVFJBVUIgRVLFvUVCRVQKK8WgVFJBVUIgScWgVFZBTgorxaBUUkFVQiBTVEVWQU4KK8WgVFJCQSBEQU5JTE8KK8WgVFJCQSBNSUxBTgorxaBUUkJBxIxLSSBCT1JJU0xBVgorxaBUUkJBQyDFvUVMSktPCivFoFRSQkFDIMSQT1LEkEUKK8WgVFJCQUMgxJBVUk8KK8WgVFJCQUMgQU7EkEVMS0EKK8WgVFJCQUMgQk/FoEtPCivFoFRSQkFDIEJPUklTTEFWCivFoFRSQkFDIEJSQU5LQQorxaBUUkJBQyBEQVJJTktBCivFoFRSQkFDIERFU0FOS0EKK8WgVFJCQUMgRFJBR0FOCivFoFRSQkFDIERVxaBBTgorxaBUUkJBQyBEVcWgQU4KK8WgVFJCQUMgRFXFoEFOCivFoFRSQkFDIERVxaBBTgorxaBUUkJBQyBKT1ZBTgorxaBUUkJBQyBMSlVCSUNBCivFoFRSQkFDIExKVUJPTUlSCivFoFRSQkFDIE1BUklKQQorxaBUUkJBQyBNScSGTworxaBUUkJBQyBNScSGTworxaBUUkJBQyBNSUxBTktPCivFoFRSQkFDIE1JTEFOCivFoFRSQkFDIE1JTEFOCivFoFRSQkFDIE1JTEFOCivFoFRSQkFDIE1JTEFOCivFoFRSQkFDIE1JTEVOQQorxaBUUkJBQyBNSUxJQ0EKK8WgVFJCQUMgTUlMSVZPSgorxaBUUkJBQyBNSUxPxaAKK8WgVFJCQUMgTUlSSkFOQQorxaBUUkJBQyBNSVJLTworxaBUUkJBQyBNT03EjElMTworxaBUUkJBQyBORU1BTkpBCivFoFRSQkFDIE5JS09MQQorxaBUUkJBQyBSQURPSktBCivFoFRSQkFDIFJBRE9WQU4KK8WgVFJCQUMgU0FWS0EKK8WgVFJCQUMgU0xBVklDQQorxaBUUkJBQyBTTEFWS08KK8WgVFJCQUMgU1RBTkEKK8WgVFJCQUMgU1RFVkFOCivFoFRSQkFDIFRPTUlTTEFWCivFoFRSQkFDIFVST8WgCivFoFRSQkFDIFZMQURPCivFoFRSQkFDIFZVS0lDQQorxaBUUkJBQyBaT1JJQ0EKK8WgVFJCRU5LIElWQU5LQQorxaBUUkJFTksgTklLT0xBCivFoFRSQk9KQSDFvUlWS08KK8WgVFJCT0pBIMSQT1LEkEUKK8WgVFJCT0pBIMSQT1LEkEUKK8WgVFJCT0pBIFJBREEKK8WgVFJCT0pBIFJBRElWT0oKK8WgVFJCT0pBIFNURVZBTgorxaBUUkJPSkUgRElNSVRSSUpFCivFoFRSSUNLSSBKT1NJUAorxaBUUksgSk9TSVAKK8WgVFJLIE1BUklKQQorxaBUUktJxIYgTUlST1NMQVYKK8WgVFJLScSGIE1PTUlSCivFoFRST0sgxb1FTEpLTworxaBUUlRBSyBTTEFWS08KK8WgVFJUQUsgU0xPQk9EQU4KK8WgVFVMQSBNSUxFCivFoFRVTEnEhiBCT8W9SURBUgorxaBUVUxJxIYgR09SQU4KK8WgVFVMScSGIEpPVk8KK8WgVFVMScSGIE1BUktPCivFoFRVTEnEhiBSQURPVkFOCivFoFRVTVBGIEhFTE1VVAorxaBUVU1QRiBPU1ZBTEQKK8WgVcWgxIxFVknEhiBKT1ZPCivFoFXFoMSMRVZJxIYgWkRSQVZLTworxaBVxaBBIMSMRURPTUlSCivFoFXFoEEgRFXFoEFOCivFoFXFoEEgSk9WQU4KK8WgVcWgQSBLRU1BTAorxaBVxaBBIFNUT0pBTktBCivFoFXFoEFLIMSQT0tBCivFoFXFoEFLIMSQT1LEkEUKK8WgVcWgQUsgR09TUEFWQQorxaBVxaBBSyBNQVJJSkEKK8WgVcWgQUsgTkVWRU5BCivFoFXFoEFLIFNUQU1FTktPIERSCivFoFXFoEFLIFRPTUlTTEFWCivFoFXFoEFLT1YgUEFKQQorxaBVxaBFVlNLSSBNSUxBTgorxaBVxaBJxIYgUklTVE8KK8WgVcWgScSGIFRPTUlTTEFWCivFoFXFoEtBVsSMRVZJxIYgSUxJSkEKK8WgVcWgS0FWxIxFVknEhiBNSU9EUkFHCivFoFXFoEtPVknEhiBCT1JJUworxaBVxaBMSklLIEpPVkFOCivFoFXFoE5KQVIgxb1BUktPCivFoFXFoE5KQVIgQk9SSVNMQVYKK8WgVcWgTkpBUiBCT1JJU0xBVgorxaBVxaBOSkFSIE1JSEFKTE8KK8WgVcWgTkpBUiBNSUxBTgorxaBVxaBOSkFSIE1JTEFOCivFoFXFoE5KQVIgUEVUQVIKK8WgVcWgTkpBUiBQRVRBUgorxaBVxaBOSkFSIFBFVEFSCivFoFXFoE5KQVIgU0xBVktPCivFoFXFoE5KQVIgU09GSUpBCivFoFXFoE5KQVIgU1RBTktPCivFoFXFoE5KRVZJxIYgRFXFoEFOCivFoFXFoE5KRVZJxIYgTU9NxIxJTE8KK8WgVcWgTkpFVknEhiBSQURPU0xBVgorxaBVxaBOSknEhiBTVEFOS0EKK8WgVcWgVFJBTiBNTEFERU4KK8WgVcWgVFVNIEpPVkFOCivFoFXEhkFLIE1JTEFOCivFoFXEhk9WIMSGSVJBCivFoFXEhk9WIERBTklDQQorxaBVxIZPViBEQU5JTE8KK8WgVcSGT1YgTUlMT8WgCivFoFXEhk9WIFZVS09TQVZBCivFoFVCQVJBIE1MQURFTgorxaBVQkFSScSGIExVS0EKK8WgVUJBUknEhiBWTEFTVElNSVIKK8WgVUJBUknEhiBaT1JBTgorxaBVQkVSVCBJTE9OS0EKK8WgVUJJxIYgSk9WQU5LQQorxaBVQk9OSiBTSUxWSVVTCivFoFVEQVIgSk/FvUVGCivFoFVEQVIgSk9TSVAKK8WgVURJQ0tJIEpPxb1FRgorxaBVR0nEhiBNSUxBTgorxaBVR0nEhiBOQURBCivFoFVHScSGIFBFVEFSCivFoFVHSU4gxb1JVktPCivFoFVHSU4gQkVSSVNBVgorxaBVR0lOIERJTUlUUklKRQorxaBVR0lOIExFS1NBCivFoFVHSU4gTEpJTEpBTkEKK8WgVUdJTiBMSklMSkFOQQorxaBVR0lOIE1JTEtBCivFoFVHSU4gTUlPRFJBRworxaBVR0lOIE1JT0RSQUcKK8WgVUdJTiBSQURBCivFoFVHSU4gUkFOS0EKK8WgVUhBSkRBIMSQVVJBCivFoFVIQUpEQSBJTVJFCivFoFVIQUpEQSBMQUpPxaAKK8WgVUpET1ZJxIYgWk9SQU4KK8WgVUpJxIYgRFJBR09NSVIKK8WgVUpJxIYgUkVExb1PCivFoFVKSUNBIE1JTEFOCivFoFVLQSBBTEVLU0EKK8WgVUtBTE9WScSGIMSQT1LEkEUKK8WgVUtBUkEgQk9HREFOCivFoFVLQVJBIERNSVRBUgorxaBVS0FSQSBEVcWgQU4KK8WgVUtJxIYgRFJBR0lDQQorxaBVS0nEhiBNSVJPTEpVQgorxaBVS0nEhiBaT1JJQ0EKK8WgVUtMQSBTTEFWS08KK8WgVUtPVknEhiBNSUxBTgorxaBVS09WScSGIFpPUktBCivFoFVLVU5EQSBNQVJJSkEKK8WgVUtVTkRBIE1JTEFOCivFoFVLVVJNQSBTVEVWTworxaBVTEFKQSBNSVJPU0xBVgorxaBVTEMgQU5EUkHFoAorxaBVTEMgREVMSU1JUiBEUiBQUk9GCivFoFVMQyBJTVJFIERJUEwgSU5HCivFoFVMQyBJTVJFCivFoFVMQyBKT8W9RUYKK8WgVUxDIEpPxb1FRgorxaBVTEMgS09TQU5BCivFoFVMQyBWRVJBCivFoFVMRU5UScSGIE1JTEUKK8WgVUxIT0YgSk/FvUVGIEtOSknFvUVWTklLCivFoFVMSkFOIEFOQQorxaBVTEpBTiBKQU5LTworxaBVTEpBTiBKQU4KK8WgVUxKQU4gSkFOCivFoFVMSkFOIEpBUk9TTEFWCivFoFVMSkFOIFBBTAorxaBVTEpNQU5BQy3FoEXEhkVST1YgTUlSSkFOQQorxaBVTEpNQU5BQyBCUkFOSU1JUgorxaBVTEpNQU5BQyBKT1ZBTgorxaBVTEpNQU5BQyBVUk/FoAorxaBVTE9WScSGIFBFVEFSCivFoFVNQUhFUiBJTE9OQQorxaBVTUFIRVIgSkFOT8WgCivFoFVNQUpTS0kgQkxBxb1FTktBCivFoFVNQU4gVklUT01JUgorxaBVTUFOT1ZBQyBQQVZMRSBESVBMIElORworxaBVTUFOT1ZJxIYgQlJBTklTTEFWCivFoFVNQU5PVknEhiBMSklMSkFOQQorxaBVTUFSIEJPxb1PCivFoFVNQVIgTUlMQU4KK8WgVU1BUiBTSU1BCivFoFVNQVJFVknEhiBEUkFHT1JBRAorxaBVTUFST1YgTklLT0xBCivFoFVNQVJVTkEgQ1ZFVEEKK8WgVU1BUlVOScSGIFBBVkxFCivFoFVNRUMgRVJOQQorxaBVTUVDIEpBTk/FoAorxaBVTUnEhiBNTEFERU4KK8WgVU1PTkpBIE1JTEFOCivFoFVORE9WQSBGTE9SQQorxaBVTknEhiBKT1ZPCivFoFVOSknEhiBQRVRBUgorxaBVTkpLQSBNQVJLTworxaBVTkpLQSBNSUxJQ0EKK8WgVU5KS0EgUkFUS08KK8WgVU5LQSBKT1ZBTgorxaBVTktJxIYgTEFaQVIKK8WgVU5UScSGIE1BVEVKCivFoFVQRSDFoElNRQorxaBVUElDQSBEVcWgQU4KK8WgVVBJQ0EgTEFaQVIKK8WgVVBJQ0EgTEFaQQorxaBVUElDQSBMSlVCSUNBCivFoFVQSUNBIE1BUkEKK8WgVVBJQ0EgTUlMQU4KK8WgVVBJQ0EgTUlMT8WgCivFoFVQSUNBIFBFVEFSCivFoFVQSUNBIFNMQVZLTworxaBVUElDQSBWQVNBCivFoFVQVVQgxb1BUktPIERJUEwgSU5HCivFoFVQVVQgxJBVUk8KK8WgVVBVVCBEVcWgQU4KK8WgVVBVVCBTTE9CT0RBTgorxaBVUFVUIFNWRVRPWkFSCivFoFVSQU5KSSBURVJFWklKQQorxaBVUkJBTk9WScSGIEJSQU5LTworxaBVUkpBTiBKQU5PxaAKK8WgVVJKQU4gSk9WQU4KK8WgVVJKQU7EjEVWIElWQU4KK8WgVVJKQU5PVknEhiBNSUxBTgorxaBVUkpBTk9WScSGIE1JTEVOQQorxaBVUktBTE9WScSGIE1JTEVOQQorxaBVUktPVknEhiBET1JBTgorxaBVUktPVknEhiBJUkZBTiBESVBMIElORworxaBVUkxBTiDEjEVET01JUgorxaBVUkxBTiDEkE9SxJBPCivFoFVSTEFOIERSQUdPTUlSCivFoFVSTEFOIERSQUdPU0xBVgorxaBVUkxBTiBHT0pLTworxaBVUkxBTiBKT1ZBTgorxaBVUkxBTiBNQVJJTktPCivFoFVSTEFOIE1BUktPCivFoFVSTEFOIE1JTE/FoAorxaBVUkxBTiBNSVJLTworxaBVUkxBTiBNT01JUgorxaBVUkxBTiBORURFTEpLTworxaBVUkxBTiBSVcWgS08KK8WgVVJMQU4gVk9KSVNMQVYKK8WgVVJMQU4gVlVLT1NBVkEKK8WgVVNURVIgTkVHT1NMQVYKK8WgVVNUUklKQU4gT0xHQQorxaBVVEFOT1ZJxIYgTkFEQQorxaBVVElMT1ZJxIYgTUlMT1JBRAorxaBVVElMT1ZJxIYgTkVWRU5LQQorxaBVVFVMT1ZJxIYgREFOS0EKK8WgVVRVTE9WScSGIFZFU05BCivFoFVUVknEhiBCUkFOS0EKK8WgVVZBSyBNSU9EUkFHCivFoFVWQUtPViBEQVJJTktBCivFoFVWQUtPViBERUpBTgorxaBVVkFLT1YgSk9WQU4KK8WgVVZBS09WIE1JTEVOQQorxaBVVkFLT1YgTUlMT1JBRAorxaBVVkFLT1YgU1RFVkFOCivFoFVWQUtPViBUSUhPTUlSIERSCivFoFVWQUtPViBWRVNFTElOS0EKK8WgVVZBS09WScSGIMSQVVLEkElDQQorxaBVVkFLT1ZJxIYgQk9HT1NMQVYKK8WgVVZBS09WScSGIERBTUpBTiBEUiBMRUtBUgorxaBVVkFLT1ZJxIYgSlVMSUpBTkEKK8WgVVZBS09WScSGIFpPUkFOCivFoFZBQiBFU1RFUgorxaBWQUIgSEVOUklKRVRBCivFoFZBR0VSIE1BUlRJTgorxaBWQUpCRVJJxIYgVklSR0lOSUpBCivFoFZBSkNFUiBHSVpFTEEKK8WgVkFKQ0VSIElWSUNBCivFoFZBSkNFUi1SQUtJxIYgSVJFTkEKK8WgVkFKQ0VSIFJPWkFMSUpBCivFoFZBTkRJTElLIEpPxb1FRgorxaBWQVJDIElMT05BCivFoFZBUkMgVElCT1IKK8WgVkFSQyBWTEFESU1JUgorxaBWRURJxIYgQcSGSU0KK8WgVkVEScSGIERVxaBBTgorxaBWRURJxIYgRUxJWkFCRVRBCivFoFZFREnEhiBFUsW9SUtBCivFoFZFREnEhiBHUlVKQQorxaBWRURJxIYgSk9WQU4KK8WgVkVEScSGIE1JTElDQQorxaBWRURJxIYgTUlMT1JBRAorxaBWRURJxIYgTUlMVVRJTgorxaBWRURJxIYgTklLT0xBCivFoFZFREnEhiBQRVRBUgorxaBWRUxKQSBCT0dEQU4KK8WgVkVMSkEgUEVUQVIKK8WgVkVNIMSQVVJBCivFoFZFTkRBIEdPUkFOCivFoFZFUiBLQVJMTworxaBWRVJFUiBSVURPTEYKK8WgVkVSS08gQU7EkEVMSUpBCivFoFZJTkQgTkVOQUQKK8WgVk9CIEpPU0lQCivFoFZPQiBMQUpPxaAKK8WgVk9OSkEgxb1FTEpLTworxaBWT05KQSDEkFVSxJBJTktBCivFoFZPTkpBIEJJTEpBTkEKK8WgVk9OSkEgQk/FoEtPCivFoFZPTkpBIEJPxaBLTworxaBWT05KQSBCT8W9SURBUgorxaBWT05KQSBCT1JJVk9KCivFoFZPTkpBIEJSQU5LTworxaBWT05KQSBEUkFHT0xKVUIKK8WgVk9OSkEgRFXFoEFOCivFoFZPTkpBIERVxaBLTworxaBWT05KQSBNSUxBTgorxaBWT05KQSBNSVJBCivFoFZPTkpBIFJBVEtPCivFoFZPTkpBIFJBVEtPCivFoFZPTkpBIFNWRVRPWkFSCivFoFZPTkpBIFZFTEpLTworxaBWUkFLQSBGUkFOSk8KK8WgVlJBS0EgU1RFVkFOIERJUEwgSU5HCivFoFZSQUtBIFNURVZBTgorxIZBxIZJxIYgREFOSUNBCivEhkHEhknEhiBEVcWgQU4KK8SGQcSGScSGIE1BUktPCivEhkHEhknEhiBOSU5PU0xBVgorxIZBSFVOIEtBUkxPIERJUEwgSU5HCivEhkFKQSBWQU5LQQorxIZBS0nEhiBHSVpBCivEhkFMQVNBTiBKT1ZBTgorxIZBTEFTQU4gU1RPSkFOCivEhkFMRVRBIElWSUNBCivEhkFMScSGIElMSUpBCivEhkFMScSGIEpPVkFOCivEhkFMScSGIEpPVkFOCivEhkFMScSGIExVS0EKK8SGQUxJxIYgTUlMT8WgCivEhkFMScSGIE1PTcSMSUxPCivEhkFMScSGIFNMT0JPREFOCivEhkFMScSGIFpPUkFOCivEhkFMT1YgTUlMT1JBRAorxIZBTE9WScSGIExBS0nEhgorxIZBTE9WScSGIFJBRE9NSVIKK8SGQUxVxaBJxIYgSkFLT1YKK8SGQVRJxIYgUkFERU5LTworxIZBVEnEhiBTTUlMSkFOQQorxIZBVE9WScSGIERSQUdBTgorxIZBVE9WScSGIEdPU1BBVkEKK8SGQVRPVknEhiBNQUhJVAorxIZBVE9WScSGIFNJTUFOCivEhkFWQVIgTUFSS08KK8SGQVpJxIYgxJBPUsSQRQorxIZBWknEhiBNSUxFCivEhkFaScSGIE1JTEUKK8SGQVpJxIYgUEVUQVIKK8SGRUJJxIYgQk9SSVZPSgorxIZFQknEhiBNSUxBTgorxIZFQknEhiBTTEFWSUNBCivEhkVCT1ZJxIYgTkVOQUQKK8SGRUhBIEJSQU5FCivEhkVKScSGIERVxaBBTgorxIZFSknEhiBEVcWgQU4KK8SGRUxBUCBNTEFERU4KK8SGRUxBUCBTVkVUT1pBUgorxIZFTEnEhiBMSlVCQQorxIZFTEnEhiBTTEFWS08KK8SGRUxJxIYgVklLVE9SSUpBCivEhkVOQU5PVknEhiBNSVJKQU5BCivEhkVSQU4gQk/FoEtPCivEhkVSQU4gRFXFoEFOCivEhkVSQU4gSkVMS0EKK8SGRVJBTiBNSUxFTktPCivEhkVSQU4gU1RPSkFOCivEhkVSQU4gVkVMSktPCivEhkVSQU4gWk9SQU5LQQorxIZFUkFOScSGIEJSQU5JU0xBVgorxIZFUkFOScSGIE1JTEFOCivEhkVSQU5JxIYgTUlMSUNBCivEhkVSQU5JxIYgUkFESU5LQQorxIZFUkFOScSGIFNORcW9QU5BCivEhkVSQU5JxIYgWk9SQU4KK8SGRVJJTUFHScSGIEVUSEVNCivEhkVSTU9WLUtBVkXEjEFOIEJPSkFOQQorxIZFU0FST1Ygxb1BUktPCivEhkVTQVJPViBCUkFOSVNMQVYKK8SGRVNBUk9WIFJVxb1JQ0EKK8SGRVNBUk9WIFNJTUEKK8SGRVNBUk9WIFNURVZBTgorxIZFU0FST1YgU1ZFVE9aQVIKK8SGRVNBUk9WScSGIEJPU0lMSktBCivEhkVTQVJPVknEhiBSQURJVk9KCivEhkVUS09WScSGIMW9QVJLTworxIZFVEtPVknEhiBCT8W9SURBUgorxIZFVEtPVknEhiBEVcWgQU5LQQorxIZFVEtPVknEhiBNSUxFTktPCivEhkVUS09WScSGIE5FTkFECivEhkVUS09WScSGIFBSRURSQUcKK8SGRVRPSkVWScSGIMSQT1LEkEUKK8SGRVRPSkVWScSGIEJPU0EKK8SGRVRPSkVWScSGIERSQUdPTEpVQgorxIZFVE9KRVZJxIYgSk9WTworxIZFVE9KRVZJxIYgTUlMT8WgCivEhkVUT0pFVknEhiBNSUxPVkFOCivEhkVUT0pFVknEhiBNSVJPU0xBVgorxIZFVE9KRVZJxIYgTkVERUxKS08KK8SGRVRPSkVWScSGIFJBRE9WQU4KK8SGRVZBUCBCT8W9QQorxIZJxaBJTiBEVcWgQU5LQQorxIZJTktVTCBTQVZBCivEhklOS1VMIFZBTFRBCivEhklQRSBFUsW9RUJFVAorxIZJUFJPVkFDIFNBVkEKK8SGSVBST1ZBQyBUT8WgQQorxIZJUFJPVkFDIFpEUkFWS08KK8SGSVJBSyBNSUxPUkFECivEhklSQUtPVknEhiDFvUlWT1JBRAorxIZJUkFLT1ZJxIYgTUFSS08KK8SGSVJBS09WScSGIE1JTE9SQUQKK8SGSVJBS09WScSGIFNBSkEKK8SGSVJFVlNLSSBCVURJTUlSCivEhklSScSGIMSGSVJBCivEhklSScSGIMW9SVZLQQorxIZJUknEhiDFvUlWS0EKK8SGSVJJxIYgxJBPUsSQRQorxIZJUknEhiDEkE9SxJBFCivEhklSScSGIMSQT1LEkEUKK8SGSVJJxIYgxJBPUsSQRQorxIZJUknEhiDEkE9SxJBFCivEhklSScSGIMSQT1LEkEUKK8SGSVJJxIYgxJBPUsSQRQorxIZJUknEhiDEkFVSxJBJTktBCivEhklSScSGIEFOSUNBCivEhklSScSGIEFOSVRBCivEhklSScSGIEJPxaBLTworxIZJUknEhiBCT8W9SURBUiBEUgorxIZJUknEhiBCT8W9SURBUgorxIZJUknEhiBCT8W9TworxIZJUknEhiBCT1JJU0xBVgorxIZJUknEhiBCT1JJU0xBVgorxIZJUknEhiBCT1JJU0xBVgorxIZJUknEhiBCUkFOS0EKK8SGSVJJxIYgQlJBTktPCivEhklSScSGIERBTklDQQorxIZJUknEhiBEQU5JTE8KK8SGSVJJxIYgREVTQU5LQQorxIZJUknEhiBESVZLTworxIZJUknEhiBET0JSSUxBCivEhklSScSGIERSQUdBTgorxIZJUknEhiBEUkFHSUNBCivEhklSScSGIERSQUdJTkpBCivEhklSScSGIERSQUdPTEpVQgorxIZJUknEhiBEVcWgQU4gRElQTCBJTkcKK8SGSVJJxIYgRFXFoEFOS0EKK8SGSVJJxIYgRFXFoEFOCivEhklSScSGIERVxaBBTgorxIZJUknEhiBEVcWgSUNBCivEhklSScSGIEdBVlJJTE8KK8SGSVJJxIYgR09SREFOQQorxIZJUknEhiBJVkFOS0EKK8SGSVJJxIYgSVZBTgorxIZJUknEhiBKRUxJU0FWRVRBCivEhklSScSGIEpPUkRBTgorxIZJUknEhiBKT1ZBTktBCivEhklSScSGIEpPVkFOCivEhklSScSGIEpPVkFOCivEhklSScSGIEpPVkFOCivEhklSScSGIEtBTUVOS08KK8SGSVJJxIYgS0FUSUNBCivEhklSScSGIExBWkFSCivEhklSScSGIExFTktBCivEhklSScSGIExKVUJJQ0EKK8SGSVJJxIYgTEpVQklDQQorxIZJUknEhiBMSlVCT01JUgorxIZJUknEhiBNQVJLTworxIZJUknEhiBNSUxBTiBESVBMIElORworxIZJUknEhiBNSUxBTgorxIZJUknEhiBNSUxFTktPCivEhklSScSGIE1JTEVOS08KK8SGSVJJxIYgTUlMRVRBCivEhklSScSGIE1JTElDQQorxIZJUknEhiBNSUxLQQorxIZJUknEhiBNSUxPxaAKK8SGSVJJxIYgTUlMT8WgCivEhklSScSGIE1JTE9SQUQKK8SGSVJJxIYgTUlMT1JBRAorxIZJUknEhiBNSU9EUkFHCivEhklSScSGIE1JUkEKK8SGSVJJxIYgTUxBREVOCivEhklSScSGIE5JS09MQQorxIZJUknEhiBQQUpBCivEhklSScSGIFBFVEFSCivEhklSScSGIFBFVEFSCivEhklSScSGLVBFVFJPVknEhiBLQVRBUklOQQorxIZJUknEhiBQUkVEUkFHCivEhklSScSGIFJBREUKK8SGSVJJxIYgUkFETUlMQQorxIZJUknEhiBSQURNSUxPCivEhklSScSGIFJBRE9NSVIKK8SGSVJJxIYgUkFET1ZBTgorxIZJUknEhiBST0JFUlQKK8SGSVJJxIYgU0FWQQorxIZJUknEhiBTTEFWSUNBCivEhklSScSGIFNMQVZLTworxIZJUknEhiBTTEFWS08KK8SGSVJJxIYgU0xPQk9EQU4KK8SGSVJJxIYgU01JTEpBCivEhklSScSGIFNPRklKQQorxIZJUknEhiBTUkVET0pFCivEhklSScSGIFNUQU5JU0xBVgorxIZJUknEhiBTVEVWQU4KK8SGSVJJxIYgU1RFVkFOCivEhklSScSGIFNURVZBTgorxIZJUknEhiBTVkVUSVNMQVYKK8SGSVJJxIYgU1ZFVE9aQVIKK8SGSVJJxIYgU1ZFVE9aQVIKK8SGSVJJxIYgU1ZFVE9aQVIKK8SGSVJJxIYgU1ZFVE9aQVIKK8SGSVJJxIYgVE9NSVNMQVYKK8SGSVJJxIYgVE9NSVNMQVYKK8SGSVJJxIYtVE9OIEpFTElDQQorxIZJUknEhiBWQVNBCivEhklSScSGIFZFUkEKK8SGSVJJxIYgVkxBRElNSVIKK8SGSVJJxIYgVkxBRElNSVIKK8SGSVJJxIYgVkxBRElTTEFWCivEhklSScSGIFZVxIxLTworxIZJUknEhiBaT1JBTgorxIZJUknEhiBaT1JBCivEhklSScSGIFpPUkEKK8SGSVJJxIYgWk9SS0EKK8SGSVJJTE9WIE1JTEFOCivEhklSSUxPVknEhiBBTklDQQorxIZJUklMT1ZJxIYgQlJBTklTTEFWCivEhklSSUxPVknEhiBNSUxJVk9KCivEhklSSUxPVknEhiBNTEFERU4KK8SGSVJJTE9WScSGIE9MR0EKK8SGSVJJTE9WScSGIFBFVEFSCivEhklSSUxPVknEhiBWRVJBCivEhklSSU4gRFJBR09TTEFWCivEhklSSU4tTk9WVEEgVkVSQQorxIZJUklOIFNMT0JPREFOCivEhklSSVRPVknEhiBEVcWgQU5LQQorxIZJUkpBS09WScSGIEdPUkRBTkEKK8SGSVJKQUtPVknEhiBTTEFWT0xKVUIKK8SGSVJKQUtPVknEhiBTTE9CT0RBTgorxIZJUktPVknEhiDEkE9SxJBFCivEhklSS09WScSGIENWRVRBTktBCivEhklSS09WScSGIElWQU4KK8SGSVJLT1ZJxIYgSVZBTgorxIZJUktPVknEhiBKQU5LTworxIZJUktPVknEhiBLQVRJQ0EKK8SGSVJLT1ZJxIYgTUFSS08KK8SGSVJLT1ZJxIYgTUFSVEEKK8SGSVJLT1ZJxIYgTUlMRU5LTworxIZJUktPVknEhiBNSVJPU0xBVgorxIZJUktPVknEhiBORU5BRAorxIZJUktPVknEhiBSQURNSUxBCivEhklST1ZJxIYgxb1BUktPCivEhklST1ZJxIYgREVKQU4KK8SGSVJPVknEhiBHUlVKSUNBCivEhklST1ZJxIYgTUlMVVRJTgorxIZJUk9WScSGIE5JS09MQQorxIZJUk9WScSGIFZFTElNSVIKK8SGSVJPVknEhiBWRUxJTUlSCivEhklSUEFOT1YgTUlPRFJBRworxIZJUlXFoEnEhiBSQUpLTworxIZJVEnEhiBEVcWgQU4KK8SGSVRJxIYgTUlMT1ZBTgorxIZPxIZLQUxPIFNJTUEKK8SGT0pBTk9WScSGIEJPxb1JREFSCivEhk9KQU5PVknEhiBCT1JPCivEhk9KQU5PVknEhiBNSUxLQQorxIZPSkRFUiBHT0pLTworxIZPTUEgS0FUQVJJTkEKK8SGT1BJxIYgQU5EUklKQQorxIZPUEnEhiBFVklDQQorxIZPUEnEhiBNScSGQQorxIZPUEnEhiBNSUxFCivEhk9QScSGIE1JTE/FoAorxIZPUEnEhiBWRVJBCivEhk9SScSGLcSQT0tJxIYgTkFEQQorxIZPUknEhiDEkE9SxJBFCivEhk9SScSGIMSQVVJPCivEhk9SScSGIMSQVVJPCivEhk9SScSGIEFORFJJSkEKK8SGT1JJxIYgQklTRVJLQQorxIZPUknEhiBCTEFHT0pFCivEhk9SScSGIEJPUkEKK8SGT1JJxIYgSk9WQU4KK8SGT1JJxIYgS0FUQVJJTkEKK8SGT1JJxIYgTEpJTEpBTkEKK8SGT1JJxIYgTUFSSUpBCivEhk9SScSGIE1JxIZPCivEhk9SScSGIE1JS0FJTE8KK8SGT1JJxIYgUkFKS08KK8SGT1JLT1ZJxIYgSVZBTgorxIZPUktPVknEhiBNQVJLTworxIZPUk9WScSGIERBTklMTworxIZPUk9WScSGIEpPVkFOCivEhk9ST1ZJxIYgTUlSxIxFVEEKK8SGT1JPVknEhiBNSVJPCivEhk9ST1ZJxIYgUkVOQVRBCivEhk9ST1ZJxIYgU0xPQk9EQU4KK8SGT1NJxIYgxaBURUZJQ0EKK8SGT1NJxIYgxb1BUktPCivEhk9TScSGIMW9SVZBTkEKK8SGT1NJxIYgxb1JVktBCivEhk9TScSGIEFMRUtTQU5EQVIKK8SGT1NJxIYgQUxFS1NBTkRBUgorxIZPU0nEhiBCT0dEQU4gU1VESUpBCivEhk9TScSGIEJSQU5LTworxIZPU0nEhiBCUkFOS08KK8SGT1NJxIYgREFOSUNBCivEhk9TScSGIERSQUdBTkEKK8SGT1NJxIYgRFJBR0FOCivEhk9TScSGIERSQUdJQ0EKK8SGT1NJxIYgRFJBR0lDQQorxIZPU0nEhiBEVcWgQU4KK8SGT1NJxIYgRFXFoEFOCivEhk9TScSGIERVxaBLTworxIZPU0nEhiBGQURJTAorxIZPU0nEhiBJTElKQQorxIZPU0nEhiBKRUxLQQorxIZPU0nEhiBKT1ZBTgorxIZPU0nEhiBKT1ZBTgorxIZPU0nEhiBKT1ZBTgorxIZPU0nEhiBKT1pPCivEhk9TScSGIExKSUxKQU5BCivEhk9TScSGIE1BUklKQQorxIZPU0nEhiBNQVJJSkEKK8SGT1NJxIYgTUlMQU4KK8SGT1NJxIYgTUlMRU5BCivEhk9TScSGIE1JTElDQQorxIZPU0nEhiBNSVJKQU5BCivEhk9TScSGIE1VSEFNRUQKK8SGT1NJxIYgT0xHQQorxIZPU0nEhiBQQU5URUxJSkEKK8SGT1NJxIYgU0FWS0EKK8SGT1NJxIYgU01JTEpBCivEhk9TScSGIFNORcW9QU5BCivEhk9TScSGIFNUQU5LQQorxIZPU0nEhiBTVE9KQU4KK8SGT1NJxIYgVE9ET1IgRElQTCBJTkcKK8SGT1NJxIYgVkVSQQorxIZPU0nEhiBWRVJPU0xBVgorxIZPU0nEhiBWTEFESU1JUgorxIZPU0nEhiBaT1JBTgorxIZPU0nEhiBaT1JLQQorxIZPU0lOIERVxaBBTgorxIZPU0lOIFpPUkFOCivEhk9TTyBHQVZSSUxPCivEhk9TT1ZJxIYgSkVMRU5BCivEhk9TT1ZJxIYgTUlMRVRBCivEhk9TT1ZJxIYgVE9NSVNMQVYKK8SGT1ZJxIYgTEFaQVIKK8SGT1ZJTiBNSUxBTgorxIZVxIZBIEFEQU0KK8SGVcSGSUxPVknEhiBDVklKQQorxIZVxIZJTE9WScSGIE1PTcSMSUxPCivEhlXEhklMT1ZJxIYgUlXFvUlDQQorxIZVxIZVWiBNQVJLTworxIZVxIZVWiBTQcWgQQorxIZVxIZVWiBTVEFOS08KK8SGVUJBIFJBVEtPIERJUEwgSU5HCivEhlVCScSGIERVxaBBTgorxIZVScSGIElMSUpBCivEhlVJxIYgTUFSQQorxIZVScSGIE1JTEtBCivEhlVKScSGIExKVUJJQ0EKK8SGVUpJxIYgU1RFVkFOCivEhlVLIMSQVVJPCivEhlVLIERSQUdPCivEhlVLIERVxaBBTgorxIZVSyBEVcWgQU4KK8SGVUsgR09KS08KK8SGVUsgTEVMQQorxIZVSyBMVUtBCivEhlVLIE1BUkEKK8SGVUsgTUlMQU4gRElQTCBJTkcKK8SGVUsgTUlMRQorxIZVSyBNSUxJQ0EKK8SGVUsgTUlMS0FOCivEhlVLIE1JTE9SQUQKK8SGVUsgTUlST1NMQVYKK8SGVUsgTklLT0xBCivEhlVLIFJBRElWT0oKK8SGVUsgUkFUS08KK8SGVUsgU0xPQk9EQU4KK8SGVUsgVE9NSVNMQVYKK8SGVUsgWk9SS0EKK8SGVUtPVknEhiBNSUxVTgorxIZVS09WScSGIE1JUkEKK8SGVUtPVknEhiBSQURPTUlSIERJUEwgSU5HCivEhlVLT1ZJxIYgUkFET1ZBTgorxIZVS09WScSGIFRJSE9NSVJLQQorxIZVS09WScSGIFpPUkFOCivEhlVMScSGIMSQT1LEkEUKK8SGVUxJxIYgSkFTTUlOS0EKK8SGVUxJQlJLIEJPR0RBTgorxIZVTElCUksgRFJBR0FOCivEhlVMSUJSSyBEUkFHQU4KK8SGVUxJQlJLIERSQUdPU0xBVgorxIZVTElCUksgRFXFoEFOS0EKK8SGVUxJQlJLIERVxaBBTgorxIZVTElCUksgR09TUEFWQQorxIZVTElCUksgSkVMSUNBCivEhlVMSUJSSyBKRUxLQQorxIZVTElCUksgTUlMQU4KK8SGVUxJQlJLIE1JTEUKK8SGVUxJQlJLIE1JTEUKK8SGVUxJQlJLIE1JT0RSQUcKK8SGVUxJQlJLIE1JUktPCivEhlVMSUJSSyBNTEFERU4KK8SGVUxJQlJLIE1PTcSMSUxPCivEhlVMSUJSSyBSQURJVk9KRQorxIZVTElCUksgUkFET0pLQQorxIZVTElCUksgUkFUS08KK8SGVUxJQlJLIFJJU1RPCivEhlVMSUJSSyBTTE9CT0RBTgorxIZVTElCUksgU09LQQorxIZVTElCUksgU1RFVkFOCivEhlVMSUJSSyBUUklWTworxIZVTFVNIEJSQU5LTworxIZVTFVNIEdPSktPCivEhlVMVU0gSUxJSkEKK8SGVUxVTSBKRUxJQ0EKK8SGVUxVTSBKT1ZBTgorxIZVTFVNIExBWkFSCivEhlVMVU0gTUFSQQorxIZVTFVNIE1BUkEKK8SGVUxVTSBNSUhBSkxPCivEhlVMVU0gTUlMQU4KK8SGVUxVTSBNSUxFVEEKK8SGVUxVTSBNSUxPxaAKK8SGVUxVTSBNSU9EUkFHCivEhlVMVU0gTUlSS08KK8SGVUxVTSBNSVJLTworxIZVTFVNIE5BREEKK8SGVUxVTSBOQURBCivEhlVMVU0gTklLT0xBCivEhlVMVU0gUEVSTworxIZVTFVNIFJBREUKK8SGVUxVTSBSQURFCivEhlVMVU0gU0FWQQorxIZVTFVNIFNMQVZLTworxIZVTFVNIFNUQU5LQQorxIZVTFVNIFNUQU5LQQorxIZVTFVNIFNURVZPCivEhlVMVU0gU1RFVk8KK8SGVUxVTSBVUk/FoAorxIZVTFVNIFZBU0EKK8SGVUxVTUFOIFNURVZBTgorxIZVTFVNT1ZJxIYgU1RKRVBBTgorxIZVTVVST1ZJxIYgU0xBVklDQQorxIZVUEnEhiBEVcWgQU4KK8SGVVBJTkEgQlJBTktPCivEhlVQSU5BIE1JTEFESU4KK8SGVVBJTkEgTk9WSUNBCivEhlVQSU5BIFRPTUlTTEFWIERSCivEhlVQVVJESUpBIEpFTEVOQQorxIZVUFVSRElKQSBNSUxBTgorxIZVUFVSRElKQSBNSUxPVkFOCivEhlVQVVJESUpBIFNBxaBBCivEhlVQVVJESUpBIFNURVZBTgorxIZVUsSMScSGIMSMRURPTUlSCivEhlVSxIxJxIYgxb1JVkFOCivEhlVSxIxJxIYgxb1JVkFOCivEhlVSxIxJxIYgxb1JVktPCivEhlVSxIxJxIYgxJBPUsSQRQorxIZVUsSMScSGIEFMRUtTQU5EQVIKK8SGVVLEjEnEhiBBTkRSSUpBCivEhlVSxIxJxIYgQk/FoEtPCivEhlVSxIxJxIYgQk9HREFOCivEhlVSxIxJxIYgQk9SSVZPSgorxIZVUsSMScSGIEJSQU5JU0xBVgorxIZVUsSMScSGIEJSQU5LTworxIZVUsSMScSGIEJSQU5LTworxIZVUsSMScSGIEJSQU5LTworxIZVUsSMScSGIERBTklMTworxIZVUsSMScSGIERFU1BJTkEKK8SGVVLEjEnEhiBEUkFHQU4KK8SGVVLEjEnEhiBEUkFHQU4KK8SGVVLEjEnEhiBEUkFHQU4KK8SGVVLEjEnEhiBEUkFHT01JUgorxIZVUsSMScSGIERSQUdPU0xBVgorxIZVUsSMScSGIERVxaBBTktBCivEhlVSxIxJxIYgRFXFoEFOCivEhlVSxIxJxIYgRFXFoEFOCivEhlVSxIxJxIYgRFXFoEFOCivEhlVSxIxJxIYgR0VPUkdJSkUKK8SGVVLEjEnEhiBHT0pLTworxIZVUsSMScSGIEdPUkRBTkEKK8SGVVLEjEnEhiBJQk9KQQorxIZVUsSMScSGIElMSUpBCivEhlVSxIxJxIYgSUxJSkEKK8SGVVLEjEnEhiBKQVNNSU5BCivEhlVSxIxJxIYgSkVMRU5BCivEhlVSxIxJxIYgSk9WQU4gTk9WSU5BUgorxIZVUsSMScSGIEpPVkEKK8SGVVLEjEnEhiBLQU1FTktPCivEhlVSxIxJxIYtS0FTQUxJQ0EgQk9TQQorxIZVUsSMScSGIEtBVElDQQorxIZVUsSMScSGIExBWkFSCivEhlVSxIxJxIYgTEFaQVIKK8SGVVLEjEnEhiBMSklMSkFOQQorxIZVUsSMScSGIExKSUxKQU5BCivEhlVSxIxJxIYgTEpVQknFoEEKK8SGVVLEjEnEhiBMSlVCT01JUgorxIZVUsSMScSGIE1BUkEKK8SGVVLEjEnEhiBNQVJBCivEhlVSxIxJxIYgTUFSSUpBCivEhlVSxIxJxIYgTUFSSUpBCivEhlVSxIxJxIYgTUFSSUpBCivEhlVSxIxJxIYgTUlIQUpMTworxIZVUsSMScSGIE1JSk8KK8SGVVLEjEnEhiBNSUxBTgorxIZVUsSMScSGIE1JTEFOCivEhlVSxIxJxIYgTUlMQU4KK8SGVVLEjEnEhiBNSUxBTgorxIZVUsSMScSGIE1JTEFOCivEhlVSxIxJxIYgTUlMRU5BCivEhlVSxIxJxIYgTUlMRVZBCivEhlVSxIxJxIYgTUlMRQorxIZVUsSMScSGIE1JTEUKK8SGVVLEjEnEhiBNSUxJxIYKK8SGVVLEjEnEhiBNSUxJQ0EKK8SGVVLEjEnEhiBNSUxJVk9KCivEhlVSxIxJxIYgTUlMT1JBRAorxIZVUsSMScSGIE1JTE9SQUQKK8SGVVLEjEnEhiBNSU9EUkFHCivEhlVSxIxJxIYgTUlPRFJBRworxIZVUsSMScSGIE1JUkpBTkEKK8SGVVLEjEnEhiBNSVJKQU5BCivEhlVSxIxJxIYgTUlSS08KK8SGVVLEjEnEhiBNSVJPU0xBVgorxIZVUsSMScSGIE1JUk9TTEFWCivEhlVSxIxJxIYgTUxBREVOCivEhlVSxIxJxIYgTU9NxIxJTE8KK8SGVVLEjEnEhiBOQURBCivEhlVSxIxJxIYgTkVOQUQKK8SGVVLEjEnEhiBOSUtPTEEKK8SGVVLEjEnEhiBPTEdBCivEhlVSxIxJxIYgT0xHQQorxIZVUsSMScSGIFBBVkxFCivEhlVSxIxJxIYgUEVUQVIKK8SGVVLEjEnEhiBSQURFCivEhlVSxIxJxIYgUkFESVZPSgorxIZVUsSMScSGIFJBRE1JTEEKK8SGVVLEjEnEhiBSQURNSUxBCivEhlVSxIxJxIYgUkFET1NMQVYKK8SGVVLEjEnEhiBSQURPU0xBVgorxIZVUsSMScSGIFJBRE9TTEFWCivEhlVSxIxJxIYgUkFKS08KK8SGVVLEjEnEhiBSQUpLTworxIZVUsSMScSGIFJBVEtBCivEhlVSxIxJxIYgUkFUT01JUgorxIZVUsSMScSGIFNBVkEKK8SGVVLEjEnEhiBTTEFWSUNBCivEhlVSxIxJxIYgU0xBVktPCivEhlVSxIxJxIYgU0xPQk9EQU4KK8SGVVLEjEnEhiBTTE9CT0RBTgorxIZVUsSMScSGIFNMT0JPREFOCivEhlVSxIxJxIYgU1RFVkFOCivEhlVSxIxJxIYgU1RFVk8KK8SGVVLEjEnEhiBVUk/FoAorxIZVUsSMScSGIFZBU0lMSUpFCivEhlVSxIxJxIYgVkVSQQorxIZVUsSMScSGIFZFU0VMSU5LQQorxIZVUsSMScSGIFZVS0HFoElOCivEhlVSxIxJxIYgWkRSQVZLTworxIZVUsSMScSGIFpMQVRBCivEhlVSxIxJxIYgWk9SQU4KK8SGVVLEjEnEhiBaT1JBTgorxIZVUsSMSUpBIFNJTUEKK8SGVVLEjElOIMW9SVZLTworxIZVUsSMSU4gxb1JVktPCivEhlVSxIxJTiDEkE9SxJBFCivEhlVSxIxJTiDEkFVSQQorxIZVUsSMSU4gQUxFS1NBTkRBUgorxIZVUsSMSU4gQk/FvUlEQVIKK8SGVVLEjElOIEJSQU5LTworxIZVUsSMSU4gRFJBR09NSVIKK8SGVVLEjElOIERSQUdPU0xBVgorxIZVUsSMSU4gRFJFTktBCivEhlVSxIxJTiBEVcWgQU4KK8SGVVLEjElOIERVxaBBTgorxIZVUsSMSU4gRU1JTElKQQorxIZVUsSMSU4gSkVMRU5BCivEhlVSxIxJTiBKRUxJU0FWRVRBCivEhlVSxIxJTiBMSlVCSUNBCivEhlVSxIxJTiBNQUtTQQorxIZVUsSMSU4gTUlMQU4KK8SGVVLEjElOIE1JTEVOQQorxIZVUsSMSU4gTUlMT1JBRAorxIZVUsSMSU4gTUlMT1JBRAorxIZVUsSMSU4gT0JSQUQKK8SGVVLEjElOIFBFVEFSCivEhlVSxIxJTiBSQURJVk9KCivEhlVSxIxJTiBSQURPU0xBVgorxIZVUsSMSU4gUlXFvUEKK8SGVVLEjElOIFNBUkEKK8SGVVLEjElOIFNWRVRPWkFSCivEhlVSxIxJTiBUT0RPUgorxIZVUsSMSU4gVkFTQQorxIZVUsSMSU4gVkVMRU1JUgorxIZVUsSMSU4gVkVMSU1JUgorxIZVUsSMSU4gVkVSSUNBCivEhlVSxIxJTiBWVUtJQ0EKK8SGVVLEjElOIFpPUkEKK8SGVVLEhklKScSGIFJBVE9NSVIKK8SGVVJEScSGIEpPVkFOCivEhlVSREnEhiBWQVNJTElKRQorxIZVUkRJxIYgWk9SQU4KK8SGVVJHVVogSUxJSkEKK8SGVVJHVVogTUlMT1JBRAorxIZVUkdVWiBOQURBCivEhlVSR1VaIFZFUklDQQorxIZVUknEjEnEhiBUQVRKQU5BCivEhlVSScSGIMSQT1LEkEUKK8SGVVJJxIYgSk9WQU4KK8SGVVJJxIYgTUlMQU4KK8SGVVJJxIYgTUlMT8WgCivEhlVSScSGIE1JTE9SQUQKK8SGVVJJxIYgTUlMVVRJTgorxIZVUknEhiBQRUxBR0lKQQorxIZVUknEhiBTQVZPCivEhlVSScSGIFNJTU8KK8SGVVJJxIYgU0lOScWgQQorxIZVUknEhiBTVVpBTkEKK8SGVVJJxIYgVkxBRElTTEFWCivEhlVSS09WScSGIMWgUElSTworxIZVUktPVknEhi3EkE9SxJBFVknEhiBNSU9NSVJBCivEhlVSS09WScSGIEtBVElDQQorxIZVUkxJQlJLIEJPU0lMSktBCivEhlVSVVZJSkEgQlJBTktPCivEhlVSVVZJSkEgTklLT0xBCivEhlVSVVZJSkEgTklLT0xBCivEhlVSVVZJSkEgVkxBRE8KK8SGVVRJTE8gU1RFVk8KK8SGVVpPVknEhiBCUkFORQorxIZVWk9WScSGIERSQUdPTEpVQgorxIZVWk9WScSGIERSQUdPTEpVQgorxIZVWk9WScSGIEdPUkFOCivEhlVaT1ZJxIYgTUlSS08KK8W9QUJBTEpBQyBWT0pJU0xBVgorxb1BQknEhiBHT1JBTgorxb1BQknEhiBMSlVCT01JUgorxb1BQlVMSkFDIFBBVkxFCivFvUFGUkFOIE1BUlRJTgorxb1BR0FSIERSQUdBTgorxb1BR0FSIEVSTkVTVAorxb1BR0FSIElWQU4KK8W9QUdBUiBKT1ZBTgorxb1BR0FSIExKSUxKQQorxb1BR0FSIE1BUklKQQorxb1BR0FSIE1BVElKQQorxb1BR0FSIFBBVkFPCivFvUFHQVIgUkFET1NMQVZBCivFvUFKQSBUT01JU0xBVgorxb1BSkHEjEtPIMW9RUxKS08KK8W9QUsgRFJBR1VUSU4KK8W9QUtJxIYgTEpVQklDQQorxb1BS0nEhiBNQVJJSkEKK8W9QUtJxIYgTUlPRFJBRworxb1BS0nEhiBNTEFERU4KK8W9QUtJxIYgVkVSQQorxb1BS0nEhiBWTEFESU1JUgorxb1BS0nEhiBWT0pJU0xBVgorxb1BS1VMQSBBUkFOS0EKK8W9QUtVTEEgQk9SSVNMQVYKK8W9QUtVTEEgTUlMQU4KK8W9QUtVTEEgTUlMQU4KK8W9QUtVTEEgTUlPRFJBRworxb1BS1VMQSBNSVJBCivFvUFLVUxBIFJBRElWT0ogRFIgUFJPRgorxb1BS1VMQSBaT1JBCivFvUFNQk9LSSBNQVJJSkEKK8W9QU1CT0tJIFZFUk9OQQorxb1BUsSMQU5JTiBCUkFOS08KK8W9QVLEjEFOSU4gUFJFRFJBRworxb1BUklOIFJBRE9KSUNBCivFvUFSSU4gU0lOScWgQQorxb1BUklOLVRBQkFLIE5BVEFMSUpBCivFvUFSSU4gVkVTRUxJTgorxb1BUktPIExBRElTTEFWCivFvUFSS08gTUlIQUpMTworxb1BUktPViBEVcWgQU4KK8W9QVJLT1YgS09TVEEKK8W9QVJLT1YgTEpJTEpBTkEKK8W9QVJLT1YgVkVTRUxLQQorxb1BUktPViBaTEFUT0pFCivFvUFSS09WQcSMS0kgSUxJSkEKK8W9QVJLT1ZBxIxLSSBNSVJLTworxb1BUktPVknEhiDFvUFSS08KK8W9QVJLT1ZJxIYgREFOSUxPCivFvUFSS09WScSGIERBTklMTworxb1BUktPVknEhiBEUkFHT0pFIERSIFBST0YKK8W9QVJLT1ZJxIYgR09KS08KK8W9QVJLT1ZJxIYgR09KS08KK8W9QVJLT1ZJxIYgSk9WQU4KK8W9QVJLT1ZJxIYgSk9WQU4KK8W9QVJLT1ZJxIYgTUlMRU5BCivFvUFSS09WScSGIE1JT0RSQUcKK8W9QVJLT1ZJxIYgTUlPRFJBRworxb1BUktPVknEhiBNSVJLTworxb1BUktPVknEhiBORUJPSsWgQQorxb1BUktPVknEhiBORU5BRAorxb1BUktPVknEhiBORU5BRAorxb1BUktPVknEhiBOT1ZJQ0EKK8W9QVJLT1ZJxIYgUklTVE8KK8W9QVJLT1ZJxIYgUklTVE8KK8W9QVJLT1ZJxIYgU0xBVktPCivFvUFSS09WScSGIFZMQUpLTworxb1BUktPVknEhiBaRFJBVktPCivFvUFSS09WScSGIFpEUkFWS08KK8W9QVJLT1ZJxIYgWk9SQQorxb1ERVJJxIYgSkVMSUNBCivFvURFUknEhiBNQVJJSkEKK8W9REVSScSGIE1JTEFOCivFvURFUknEhiBNSUxFTktPCivFvURFUk8gRFJBR0lOSkEKK8W9REVSTyBEVcWgSUNBCivFvURFUk8gR09KS08KK8W9REVSTyBNQVJJTktPCivFvURFUk8gUEVUQVIKK8W9REVSTyBQRVRBUgorxb1ERVJPIFJBRE9NSVIKK8W9RFJBTEUgUkFET1ZBTgorxb1EUkFMScSGIFZBU08KK8W9RFJOSkEgTUlMQU4KK8W9RFJOSkEgTUlMQU4KK8W9RFJOSkEgTUlSS08KK8W9RFJOSkEgTkXEkE8KK8W9RFJOSkEgTkXEkE8KK8W9RFJOSkEgU0lNTworxb1Fxb1FTEogQlJBTktPCivFvUXFvUVMSiBNSUxBTgorxb1Fxb1FTEogTUlMQU4KK8W9RcW9RUxKIFNBVkEKK8W9RcW9RUxKIFNWRVRJU0xBVgorxb1FQkVMSkFOIE1JTEVOQQorxb1FQkVMSkFOIE1JTEVOS08KK8W9RUJFTEpBTiBNSUxPUkFECivFvUVCRUxKQU4gTUlUQQorxb1FQkVMSkFOIE5FREVMSktPCivFvUVCRVJBTiBBTsSQRUxLQQorxb1FR0FSQUMgxJBPUsSQRQorxb1FR0FSQUMgREFOSUNBCivFvUVHQVJBQyBEVcWgQU4KK8W9RUdBUkFDIExBWkFSCivFvUVHQVJBQyBNSUxBTgorxb1FR0FSQUMgTUlMRU5LTworxb1FR0FSQUMgTUlSSkFOQQorxb1FR0FSQUMgU1RFVkFOCivFvUVHQVJBQyBWT0pJU0xBVgorxb1FS0nEhiDFvUlWS08KK8W9RUtJxIYgQk/FoEtPCivFvUVLScSGIFJBRElTTEFWCivFvUVLScSGIFJVxb1BCivFvUVLScSGIFpPUkFOCivFvUVMRU0gU1RFVkFOCivFvUVMRVIgxJBVUsSQRVZLQQorxb1FTEVaRU4gSk9TSVAKK8W9RUxJIEFORFJBxaAKK8W9RUxJIEnFoFRWQU4KK8W9RUxJIEtBVEFSSU5BCivFvUVMSSBTSUxWRVNURVIKK8W9RU1CRVJJIMWgQU5ET1IKK8W9RU1CRVJJIEpPU0lQCivFvUVNQkVSSSBST0JFUlQKK8W9RU1CRVJJIFJPQkVSVAorxb1FTkVSIEtBUkxPCivFvUVOSUxPIEJPxb1JREFSCivFvUVSQUpJxIYgR0FWUklMTworxb1FUkFWSUNBIERBTUpBTgorxb1FUkFWSUNBIE1JTEFESU4KK8W9RVJBVklDQSBOQURBCivFvUVSQVZJQ0EgU1RBTk9KRQorxb1FUkFWTEpFViBJTElKQQorxb1FUknEhiBJUk1BCivFvUVTVEnEhiDFoFRFRkFOSUpBCivFvUnFvUEgTkFEQQorxb1Jxb1BS0nEhiBTQVZBCivFvUnFvUFLT1YgRFJBR09MSlVCCivFvUnFvUFLT1YgS0FUSUNBCivFvUnFvUFLT1YgTUlMT8WgCivFvUnFvUFLT1YgUEFWTEUKK8W9ScW9QUtPViBWRUxJTktBCivFvUnFvUFLT1YgVklUT01JUgorxb1Jxb1BS09WIFZMQURBCivFvUnFvUFLT1YgVkxBRElNSVIKK8W9ScW9ScSGIMSMRURPTUlSCivFvUnFvUnEhiBBTsSQRUxJSkEKK8W9ScW9ScSGIEJSQU5JU0xBVgorxb1Jxb1JxIYgRFJBR0FOCivFvUnFvUnEhiBNSUxPUkFECivFvUnFvUnEhiBWRVNFTElOCivFvUnFvU9WScSGIFNMT0JPREFOS0EKK8W9SUJSRUcgQUxFS1NBTkRBUgorxb1JQlJFRyBJVkFOQQorxb1JREVLIEpPU0lQCivFvUlEScWgScSGIFpPUkFOCivFvUlHQSBKRUxFTkEKK8W9SUdBIEtBUkxPCivFvUlHQSBNSVJLTworxb1JR0EgTVVTVEFGQQorxb1JR0FMQUMgVkVST05BCivFvUlHScSGIEJPR0RBTgorxb1JR0nEhiBCUkFOS08KK8W9SUdJxIYgREFOSUNBCivFvUlHScSGIERJTUlUUklKRQorxb1JR0nEhiBEVcWgQU4KK8W9SUdJxIYgSlVMSUpBCivFvUlHScSGIExKVUJJxaBBCivFvUlHScSGIE1JTEFOCivFvUlHScSGIE1JTEFOCivFvUlHScSGIE1JTEFOCivFvUlHScSGIE1JTEVWQQorxb1JR0nEhiBNSUxLQQorxb1JR0nEhiBNSVJLTworxb1JR0nEhiBORURFTEpLTworxb1JR0nEhiBOSUtPTEEKK8W9SUdJxIYgUEVUQVIKK8W9SUdJxIYgUEVUQVIKK8W9SUdJxIYgUEVUQVIKK8W9SUdJxIYgUkFERQorxb1JR0nEhiBSQURPU0xBVgorxb1JR0nEhiBTQVZLQQorxb1JR0nEhiBWT0pJTgorxb1JR01PTkQgQkVMQQorxb1JR01PTkQgQlJBTktBCivFvUlHUkFJIMSQT1LEkEUKK8W9SUdSQUkgScWgVFZBTiBNUgorxb1JR1JBSSBKT1ZBTgorxb1JR1JJIEpPU0lQCivFvUlHUkkgTEpVQklDQQorxb1JR1JJIE1JUktPCivFvUlHVVJTS0kgUEFWTEUKK8W9SUhBIE1BUklKQQorxb1JSExBVlNLSSBKVUxLQQorxb1JSknEhiBWVUtPU0FWQQorxb1JS0nEhiDEkE9SxJBFCivFvUlLScSGIMSQT1LEkEUKK8W9SUtJxIYgxJBPUsSQRQorxb1JS0nEhiBBTEVLU0FOREFSCivFvUlLScSGIERJTUlUUklKRQorxb1JS0nEhiBET0JSSUxBCivFvUlLScSGIERSQUdBTgorxb1JS0nEhiBEVcWgQU4KK8W9SUtJxIYgSk9WQU5LQQorxb1JS0nEhiBKT1ZBTgorxb1JS0nEhiBKT1ZBTgorxb1JS0nEhiBLQVRJQ0EKK8W9SUtJxIYgTEpVQklDQQorxb1JS0nEhiBNQVJJQ0EKK8W9SUtJxIYgTUFSSUpBCivFvUlLScSGIE1JSEFKTE8KK8W9SUtJxIYgTUlMQU4KK8W9SUtJxIYgTUlMT1JBRCBEUgorxb1JS0nEhiBORVZFTkEKK8W9SUtJxIYgTklLT0xBCivFvUlLScSGIE5JS09MQQorxb1JS0nEhiBPTEdBCivFvUlLScSGIE9MSVZFUkEKK8W9SUtJxIYgUkFESVZPSgorxb1JS0nEhiBSQURPTUlSCivFvUlLScSGIFNMT0JPREFOCivFvUlLScSGIFNPRklKQQorxb1JS0nEhiBUQU1BUkEKK8W9SUtJxIYgVElIT01JUiBESVBMIElORworxb1JS0nEhiBUT0RPUgorxb1JS0nEhiBWQVNBCivFvUlLScSGLVZBU0nEhiBUQU1BUkEKK8W9SUtJxIYgVkVMSU1JUgorxb1JS0nEhiBWRVJBCivFvUlLScSGIFZFUklDQQorxb1JS0nEhiBWSVRPTUlSCivFvUlLScSGIFZMQURJTUlSCivFvUlLT1ZJxIYgTkVOQUQKK8W9SUxFVlNLSSBLUlNUTworxb1JTEnEhiBNSUxFTktPCivFvUlMScSGIE1JUk9TTEFWCivFvUlMScSGIFNUT0pBTgorxb1JTE5JSyDEkFVSQQorxb1JTE5JSyDEkFVSQQorxb1JTE5JSyBQQVZMRSBESVBMIElORworxb1JTE5JSy1QRVRST1ZJxIYgxb1FTElNSVIKK8W9SU5JxIYgTUFSSU5BCivFvUlSQVZBQyBTVEVWQU4KK8W9SVJLQSBQQVZFTAorxb1JUk/FoCBNSVJPTgorxb1JUk9WTklLIEFOVE9OCivFvUlWxIxJxIYgU1ZFVExBTkEKK8W9SVZBTEpFVknEhiBEUkFHT01JUgorxb1JVkFMSkVWScSGIEdPUkFOCivFvUlWQUxKRVZJxIYgT0xHQQorxb1JVkFMSkVWScSGIFNUQU5BCivFvUlWQU7EjEVWIElMSUpBCivFvUlWQU7EjEVWIEpPVkFOCivFvUlWQU7EjEVWIEtBU0EgRElQTCBJTkcKK8W9SVZBTsSMRVYgTUlLQQorxb1JVkFOxIxFViBNSUxBTgorxb1JVkFOxIxFViBNSUxBTgorxb1JVkFOxIxFViBQQUpBCivFvUlWQU7EjEVWIFJBREEKK8W9SVZBTsSMRVYgUkFOS08KK8W9SVZBTsSMRVYgU1RFVkFOCivFvUlWQU7EjEVWIFNUUkFISU5KQQorxb1JVkFOxIxFVknEhiBMQVpBUgorxb1JVkFOxIxFVknEhiBNSUxKS08KK8W9SVZBTsSMRVZJxIYgTUlMT1JBRCBEUgorxb1JVkFOxIxFVknEhiBTTE9CT0RBTgorxb1JVkFOxIxFVknEhiBWRUxJTUlSCivFvUlWQU5BQyBERUpBTgorxb1JVkFOQUMgREVKQU4KK8W9SVZBTkFDIExBWkFSCivFvUlWQU5BQyBaT1JJQ0EKK8W9SVZBTknEhiDEkE9LQQorxb1JVkFOScSGIE1JSEFKTE8KK8W9SVZBTknEhiBNSUxBTgorxb1JVkFOScSGIE1JTE9SQUQKK8W9SVZBTknEhiBNSVRBUgorxb1JVkFOScSGIFBSRURSQUcKK8W9SVZBTknEhiBWTEFESU1JUgorxb1JVkFOScSGIFpPUkFOCivFvUlWQU5LScSGIEVWSUNBCivFvUlWQU5LT1YgSUdOSkFUCivFvUlWQU5PViDFvUFSS08KK8W9SVZBTk9WIMW9SVZBTgorxb1JVkFOT1Ygxb1JVktPCivFvUlWQU5PViBBTsSQRUxJSkEKK8W9SVZBTk9WIEJPR09MSlVCCivFvUlWQU5PViBCUkFOS08KK8W9SVZBTk9WIERBTklDQQorxb1JVkFOT1YgRElNSVRSSUpFCivFvUlWQU5PViBET0JSSUxBCivFvUlWQU5PViBET0JSSVZPSgorxb1JVkFOT1YgRFJBR09KTEEKK8W9SVZBTk9WIERSQUdPU0xBVgorxb1JVkFOT1YgRFJBR09TTEFWCivFvUlWQU5PViBEVcWgQU4KK8W9SVZBTk9WIEdPUk9TTEFWQQorxb1JVkFOT1YgSlVTVElOQQorxb1JVkFOT1YgTEFaQVIKK8W9SVZBTk9WIExBWkFSCivFvUlWQU5PViBMRVBPU0FWQQorxb1JVkFOT1YgTEpVQklDQQorxb1JVkFOT1YgTUFHREEKK8W9SVZBTk9WIE1BS1NJTgorxb1JVkFOT1YgTUFSSUpBCivFvUlWQU5PViBNQVJJSkEKK8W9SVZBTk9WIE1BUklKQQorxb1JVkFOT1YgTUFSSUpBCivFvUlWQU5PViBNSUxBTgorxb1JVkFOT1YgTUlMRVRBCivFvUlWQU5PViBNSUxJVk9KCivFvUlWQU5PViBNSUxPxaAKK8W9SVZBTk9WIE1JTE/FoAorxb1JVkFOT1YgTUlMT1JBRAorxb1JVkFOT1YgTUlPRFJBRworxb1JVkFOT1YgTUlPTUlSCivFvUlWQU5PViBNSVRBCivFvUlWQU5PViBNTEFERU4KK8W9SVZBTk9WIE1MQURFTgorxb1JVkFOT1YgTUxBREVOCivFvUlWQU5PViBNT01JUgorxb1JVkFOT1YgTkFUQcWgQQorxb1JVkFOT1YgTklLT0xBCivFvUlWQU5PViBQQVZJQ0EKK8W9SVZBTk9WIFBBVkxFCivFvUlWQU5PViBQQVZMRQorxb1JVkFOT1YgUEFWTEUKK8W9SVZBTk9WIFBBVkxFCivFvUlWQU5PViBSQURJxaBBCivFvUlWQU5PViBSQUpLTworxb1JVkFOT1YgU0FWQQorxb1JVkFOT1YgU0xBVktPCivFvUlWQU5PViBTUsSQQU4KK8W9SVZBTk9WIFNSQklTTEFWCivFvUlWQU5PViBTVEFOSVNMQVYKK8W9SVZBTk9WIFNWRVRPWkFSCivFvUlWQU5PViBUT0RPUgorxb1JVkFOT1YgVE9NSVNMQVYKK8W9SVZBTk9WIFRVR09NSVIKK8W9SVZBTk9WIFZFTElNSVIKK8W9SVZBTk9WIFZMQURJTUlSCivFvUlWQU5PViBWTEFESU1JUgorxb1JVkFOT1YgVk9KSVNMQVYKK8W9SVZBTk9WIFpMQVRJTktBCivFvUlWQU5PVknEhiDFvUFSS08KK8W9SVZBTk9WScSGIMW9SUtBCivFvUlWQU5PVknEhiDFvUlWQU4KK8W9SVZBTk9WScSGIMW9SVZPSklOIERJUEwgUFJBVk5JSworxb1JVkFOT1ZJxIYgxb1JVk9KSU4KK8W9SVZBTk9WScSGIMSQT1LEkEUKK8W9SVZBTk9WScSGIEFMRUtTQU5EQVIKK8W9SVZBTk9WScSGIEFMRUtTQU5EQVIKK8W9SVZBTk9WScSGIEFMRUtTSUpBCivFvUlWQU5PVknEhiBBTktJQ0EKK8W9SVZBTk9WScSGIEJPxaBLTworxb1JVkFOT1ZJxIYgQk/FoEtPCivFvUlWQU5PVknEhiBCT0dEQU4KK8W9SVZBTk9WScSGIEJPUktBCivFvUlWQU5PVknEhiBCVURJTUtBCivFvUlWQU5PVknEhiBEUkFHScWgQQorxb1JVkFOT1ZJxIYgRFJBR09MSlVCCivFvUlWQU5PVknEhiBEUkFHT1NMQVYKK8W9SVZBTk9WScSGIEpBRFJBTktBCivFvUlWQU5PVknEhiBKRUxFTkEKK8W9SVZBTk9WScSGIEpPVkFOCivFvUlWQU5PVknEhiBKT1ZBTgorxb1JVkFOT1ZJxIYgTEFaQVIKK8W9SVZBTk9WScSGLUxFxaAgRFXFoElDQQorxb1JVkFOT1ZJxIYgTEpJTEpBTkEKK8W9SVZBTk9WScSGIE1BUklDQQorxb1JVkFOT1ZJxIYgTUFSSUpBCivFvUlWQU5PVknEhiBNSUxBTgorxb1JVkFOT1ZJxIYgTUlMSVNBVgorxb1JVkFOT1ZJxIYgTUlMSVZPSgorxb1JVkFOT1ZJxIYgTUlMT8WgCivFvUlWQU5PVknEhiBNSUxPUkFECivFvUlWQU5PVknEhiBNSUxPVkFOCivFvUlWQU5PVknEhiBNSU9EUkFHIERSCivFvUlWQU5PVknEhiBNSU9EUkFHCivFvUlWQU5PVknEhiBNSVJKQU5BCivFvUlWQU5PVknEhiBNT03EjElMTworxb1JVkFOT1ZJxIYgTk9WSUNBCivFvUlWQU5PVknEhiBPQlJBRAorxb1JVkFOT1ZJxIYgUEVUQVIKK8W9SVZBTk9WScSGIFBFVEFSCivFvUlWQU5PVknEhiBQRVRBUgorxb1JVkFOT1ZJxIYgUkFEQQorxb1JVkFOT1ZJxIYgUkFETUlMQQorxb1JVkFOT1ZJxIYgU0xBVktBCivFvUlWQU5PVknEhiBTTEFWS08KK8W9SVZBTk9WScSGIFNURVZBTgorxb1JVkFOT1ZJxIYgVE9NSVNMQVYKK8W9SVZBTk9WScSGIFZJRE9KRQorxb1JVkFOT1ZJxIYgVkxBRElNSVIKK8W9SVZBTk9WScSGIFZMQURJU0xBVgorxb1JVkFOT1ZJxIYgVk9KSVNMQVYKK8W9SVZBTk9WScSGIFpPUkFOCivFvUlWQU5PVknEhiBaT1JBTgorxb1JVkFOT1ZJxIYgWk9SS0EKK8W9SVZJxIYgxJBPUsSQRQorxb1JVknEhiDEkE9SxJBFCivFvUlWScSGIEJPxb1JREFSCivFvUlWScSGIEdBVlJBCivFvUlWScSGIEpFRlRBCivFvUlWScSGIEpFTElDQQorxb1JVknEhiBKT1ZBTgorxb1JVknEhiBMQVpBUgorxb1JVknEhiBMSlVCSUNBCivFvUlWScSGIFJBRE9KSUNBCivFvUlWScSGIFNBVkEKK8W9SVZJxIYgU0FWQQorxb1JVknEhiBTTUlMSkEKK8W9SVZJxIYgU1BBU09KRQorxb1JVknEhiBWRUxJQk9SCivFvUlWScSGIFZJTktBIERSCivFvUlWScSGIFpPUktBCivFvUlWSU4gTkFEQQorxb1JVktBTk9WScSGIEpPVkFOCivFvUlWS0nEhiBTVEVWQU4KK8W9SVZLT1YgxJBPUsSQRQorxb1JVktPViBBTsSQRUxLQQorxb1JVktPViBBTsSQRUxLQQorxb1JVktPViBCT1JJU0xBVkEKK8W9SVZLT1YgQlJBTklTTEFWCivFvUlWS09WIERSQUdJTkpBCivFvUlWS09WIERSQUdPTEpVQgorxb1JVktPViBEVcWgS08KK8W9SVZLT1YgRVNURVIKK8W9SVZLT1YgR1JBRElNSVIKK8W9SVZLT1YgSVZBTgorxb1JVktPViBLT1NUQQorxb1JVktPViBNQVJLTworxb1JVktPViBNRUxBTklKQQorxb1JVktPViBORU5BRAorxb1JVktPViBQQVZMRQorxb1JVktPViBSQURPSktBCivFvUlWS09WIFNBVkEKK8W9SVZLT1YgU0FWQQorxb1JVktPViBTTEFWS08KK8W9SVZLT1YgU0xBVktPCivFvUlWS09WIFZBU0EKK8W9SVZLT1ZJxIYgxIxBU0xBVgorxb1JVktPVknEhiDFvUFLTElOQQorxb1JVktPVknEhiDFvUlWS0EKK8W9SVZLT1ZJxIYgxb1JVk9KSU4KK8W9SVZLT1ZJxIYgxJBPS0EKK8W9SVZLT1ZJxIYgxJBPUsSQRQorxb1JVktPVknEhiDEkE9SxJBFCivFvUlWS09WScSGIEFKS0EKK8W9SVZLT1ZJxIYgQUxFS1NBTkRBUgorxb1JVktPVknEhiBBTEVLU0FOREFSCivFvUlWS09WScSGIEFMRUtTQU5EQVIKK8W9SVZLT1ZJxIYgQUxFS1NBTkRBUgorxb1JVktPVknEhiBBTEVLU0FOREFSCivFvUlWS09WScSGIEFMRUtTQU5EQVIKK8W9SVZLT1ZJxIYgQUxFS1NBTkRBUgorxb1JVktPVknEhiBBTE9KWklKQQorxb1JVktPVknEhiBBTsSQRUxLQQorxb1JVktPVknEhiBCTEHFoEtPCivFvUlWS09WScSGIEJPR0RBTgorxb1JVktPVknEhiBCT0dEQU4KK8W9SVZLT1ZJxIYgQk9HT0xKVUIKK8W9SVZLT1ZJxIYgQk9HT01JUgorxb1JVktPVknEhiBCT0dPTUlSCivFvUlWS09WScSGIEJPUklTTEFWCivFvUlWS09WScSGIEJPUklTTEFWCivFvUlWS09WScSGIEJPUk8KK8W9SVZLT1ZJxIYgQlJBTklTTEFWCivFvUlWS09WScSGIEJSQU5JU0xBVgorxb1JVktPVknEhiBCUkFOSVNMQVYKK8W9SVZLT1ZJxIYgQlJBTktBIERSCivFvUlWS09WScSGIEJSQU5LTworxb1JVktPVknEhiBEQU5JTE8KK8W9SVZLT1ZJxIYgREVKQU4KK8W9SVZLT1ZJxIYgRElNSVRSSUpFCivFvUlWS09WScSGIERJTUlUUklKRQorxb1JVktPVknEhiBET0JST1NBVgorxb1JVktPVknEhiBEUkFHQU5BCivFvUlWS09WScSGIERSQUdBTkEKK8W9SVZLT1ZJxIYgRFJBR0FOCivFvUlWS09WScSGIERSQUdBTgorxb1JVktPVknEhiBEUkFHQU4KK8W9SVZLT1ZJxIYgRFJBR0FOCivFvUlWS09WScSGIERSQUdJxaBBIERSCivFvUlWS09WScSGIERSQUdJxaBBCivFvUlWS09WScSGIERSQUdJxIYKK8W9SVZLT1ZJxIYgRFJBR09MSlVCCivFvUlWS09WScSGIERVxaBBTktBCivFvUlWS09WScSGIERVxaBBTgorxb1JVktPVknEhiBEVcWgQU4KK8W9SVZLT1ZJxIYgRFXFoEFOCivFvUlWS09WScSGIERVxaBJQ0EKK8W9SVZLT1ZJxIYgR0FCUklKRUxBCivFvUlWS09WScSGIEdBQlJJSkVMQQorxb1JVktPVknEhiBHT1JBTgorxb1JVktPVknEhiBHT1JEQU5BCivFvUlWS09WScSGIElMSUpBCivFvUlWS09WScSGIElMSUpBCivFvUlWS09WScSGIElMT05LQQorxb1JVktPVknEhiBJVkFOS0EKK8W9SVZLT1ZJxIYgSVZJQ0EKK8W9SVZLT1ZJxIYgSkFTTUlOQQorxb1JVktPVknEhiBKRUxJQ0EKK8W9SVZLT1ZJxIYgSkVMSUNBCivFvUlWS09WScSGIEpPVkFOCivFvUlWS09WScSGIEpPVkFOCivFvUlWS09WScSGIEpPVklDQQorxb1JVktPVknEhiBKVUxLQQorxb1JVktPVknEhiBKVUxLQQorxb1JVktPVknEhiBKVUxLSUNBCivFvUlWS09WScSGIEtPU1RBCivFvUlWS09WScSGIEtSRcWgTworxb1JVktPVknEhiBMQVpBUgorxb1JVktPVknEhiBMQVpBUgorxb1JVktPVknEhiBMRVBPU0FWQQorxb1JVktPVknEhiBMSklMSkFOQQorxb1JVktPVknEhiBMSlVCSUNBCivFvUlWS09WScSGIExKVUJJTktBCivFvUlWS09WScSGIExKVUJPTUlSCivFvUlWS09WScSGIExKVUJPTUlSCivFvUlWS09WScSGIE1BUklKQQorxb1JVktPVknEhiBNSUhBSkxPCivFvUlWS09WScSGIE1JTEFOS0EKK8W9SVZLT1ZJxIYgTUlMQU4KK8W9SVZLT1ZJxIYgTUlMSUNBCivFvUlWS09WScSGIE1JTElWT0oKK8W9SVZLT1ZJxIYgTUlMS0EKK8W9SVZLT1ZJxIYgTUlMS0EKK8W9SVZLT1ZJxIYgTUlMT8WgCivFvUlWS09WScSGIE1JTE/FoAorxb1JVktPVknEhiBNSUxPTUlSCivFvUlWS09WScSGIE1JTE9SQUQKK8W9SVZLT1ZJxIYgTUlMT1JBRAorxb1JVktPVknEhiBNSUxVVElOCivFvUlWS09WScSGIE1JT0RSQUcKK8W9SVZLT1ZJxIYgTUlSxIxFVEEKK8W9SVZLT1ZJxIYgTUlSSkFOQQorxb1JVktPVknEhiBNSVJLTworxb1JVktPVknEhiBNSVJPU0xBVgorxb1JVktPVknEhiBNSVJPU0xBVgorxb1JVktPVknEhiBNT03EjElMTworxb1JVktPVknEhiBORUJPSsWgQQorxb1JVktPVknEhiBORUJPSsWgQQorxb1JVktPVknEhiBORURFTEpLTworxb1JVktPVknEhiBOSUtPTEEKK8W9SVZLT1ZJxIYgT0JSQUQKK8W9SVZLT1ZJxIYgUEFWTEUKK8W9SVZLT1ZJxIYgUEVUQVIKK8W9SVZLT1ZJxIYgUEVUQVIKK8W9SVZLT1ZJxIYgUEVUQVIKK8W9SVZLT1ZJxIYgUEVUQVIKK8W9SVZLT1ZJxIYgUkFERU5LTworxb1JVktPVknEhiBSQURFCivFvUlWS09WScSGIFJBRElWT0oKK8W9SVZLT1ZJxIYgUkFETUlMQQorxb1JVktPVknEhiBSQURNSUxPCivFvUlWS09WScSGIFJBRE9NSVIKK8W9SVZLT1ZJxIYgUkFET1NMQVZBCivFvUlWS09WScSGIFJBRE9TTEFWCivFvUlWS09WScSGIFJBRE9TTEFWCivFvUlWS09WScSGIFJBRE9TTEFWCivFvUlWS09WScSGIFJPU0EKK8W9SVZLT1ZJxIYgUlXFvUlDQQorxb1JVktPVknEhiBTQcWgQQorxb1JVktPVknEhiBTQVZBCivFvUlWS09WScSGIFNBVkEKK8W9SVZLT1ZJxIYgU0FWQQorxb1JVktPVknEhiBTQVZBCivFvUlWS09WScSGIFNJTknFoEEKK8W9SVZLT1ZJxIYgU0xBVktPCivFvUlWS09WScSGIFNMQVZLTworxb1JVktPVknEhiBTTEFWS08KK8W9SVZLT1ZJxIYgU0xPQk9EQU4gRFIKK8W9SVZLT1ZJxIYgU0xPQk9EQU4KK8W9SVZLT1ZJxIYgU01JTEpLQQorxb1JVktPVknEhiBTTkXFvUFOQQorxb1JVktPVknEhiBTUkVURU4KK8W9SVZLT1ZJxIYgU1RBTUVOS08KK8W9SVZLT1ZJxIYgU1RFUEFOCivFvUlWS09WScSGIFNURVZBTgorxb1JVktPVknEhiBTVE9KQU5LQQorxb1JVktPVknEhiBTVE9KQU4KK8W9SVZLT1ZJxIYgU1RPSkFOCivFvUlWS09WScSGIFNWRVRJU0xBVgorxb1JVktPVknEhiBTVkVUTEFOQQorxb1JVktPVknEhiBTVkVUT1pBUgorxb1JVktPVknEhiBUQU5BU0lKRQorxb1JVktPVknEhiBUSU5LQQorxb1JVktPVknEhiBUT8WgQQorxb1JVktPVknEhiBUT01JU0xBVgorxb1JVktPVknEhiBUT01JU0xBVgorxb1JVktPVknEhiBWRUtPU0xBVgorxb1JVktPVknEhiBWRVJBCivFvUlWS09WScSGIFZFUkEKK8W9SVZLT1ZJxIYgVklET0pLTworxb1JVktPVknEhiBWTEFEQU4KK8W9SVZLT1ZJxIYgVkxBRElNSVIKK8W9SVZLT1ZJxIYgVkxBU1RJTUlSCivFvUlWS09WScSGIFZPSklOCivFvUlWS09WScSGIFZPSklTTEFWCivFvUlWS09WScSGIFpERU5LQQorxb1JVktPVknEhiBaREVOS08KK8W9SVZLT1ZJxIYgWkRSQVZLTworxb1JVktPVknEhiBaTEFUT01JUgorxb1JVktPVknEhiBaT1JBTgorxb1JVktPVknEhiBaT1JBTgorxb1JVktPVknEhiBaT1JBTgorxb1JVktPVknEhiBaT1JBTgorxb1JVktPVknEhiBaT1JBTgorxb1JVktPVkxKRVZJxIYgVklET1NBVkEKK8W9SVZLVUNJTiBNSVJPU0xBVkEKK8W9SVZLVUNJTiBTTE9CT0RBTgorxb1JVk5JIEFOQQorxb1JVk5JIEZSQU5KQQorxb1JVk9KSU5PViBCT1JJVk9KCivFvUlWT0pJTk9WIExKVUJJQ0EKK8W9SVZPSklOT1YgTUlMT1ZBTgorxb1JVk9KSU5PViBSQURJVk9KCivFvUlWT0pJTk9WScSGIFJPWkFMSUpBCivFvUlWT0pJTk9WScSGIFZMQURJTUlSCivFvUlWT0pOT1YgQlJBTklTTEFWCivFvUlWT0pOT1YgTUlST1NMQVYKK8W9SVZPSk5PVknEhiDFvUlWT0pJTgorxb1JVk9KTk9WScSGIFNBTkpBCivFvUlWT0pOT1ZJxIYgU1LEkEFOIERSIExFS0FSCivFvUlWT0pOT1ZJxIYgWk9SS0EKK8W9SVZPVEnEhiBBTkdFTElOQQorxb1JVk9UScSGIERVxaBBTgorxb1JVk9UScSGIFNUQU5JU0xBVgorxb1JVk9UScSGIFNURVZBTgorxb1JVk9UScSGIFZFTElNSVIKK8W9SVZPVElOIE1BUklDQQorxb1JVk9USU4gTUlUQVIKK8W9TVVLScSGIEJSQU5LTworxb1NVUtJxIYgR09SREFOQQorxb1NVUtJxIYgTklLT0xBCivFvU5JREFSxaBJxIYgSUdOQUMKK8W9TklEQVJFQyBJVkFOCivFvU5JREFSRUMgSVZBTgorxb1PTENFUiBGRVJFTkMKK8W9T0xDRVIgVklMTU/FoAorxb1PTEpPTSBLTEFSQQorxb1PTEpPTSBNSVJKQU5BCivFvU9Sxb0gQUxFS1NBTkRBUgorxb1PUknEhiBGSUxJUAorxb1Vxb1BIE1JUktPCivFvVVCT1JJIE1JTEVOQQorxb1VR0nEhiBEUkFHT0xKVUIKK8W9VUdJxIYgS1JTVE8KK8W9VUdJxIYgTUFSSUpBCivFvVVHScSGIE1JTElKQQorxb1VR0nEhiBNSUxJU0FWCivFvVVHScSGIE1JTE9SQUQKK8W9VUdJxIYgTUlSS08KK8W9VUdJxIYgUkFET0pLQQorxb1VR0nEhiBSQVRLTworxb1VR0nEhi1SSUpBVkVDIFNJTFZJSkEKK8W9VUdJxIYgU1RBTknFoEEKK8W9VUdJxIYgU1RBTktPCivFvVVKScSGIE1PTUlSCivFvVVKScSGIFNMQVZLTworxb1VSk8gTUFSSkFOCivFvVVNQkVSS09WScSGIMSQT1LEkEUgTVIKK8W9VU5BQyBKVUxLQQorxb1VTkFDIFRPTUlTTEFWCivFvVVOR1VMIFNNSUxKQQorxb1VTknEhiBCT8WgS08KK8W9VU5JxIYgREFSS08KK8W9VU5JxIYgSk9WScWgQQorxb1VTknEhiBNSUxBTgorxb1VTknEhiBNSUxFTktPCivFvVVOScSGIE1JTElKQU4KK8W9VU5JxIYgTU9NxIxJTE8KK8W9VU5JxIYgTkVOQUQKK8W9VU5JxIYtUE9QT1YgU05Fxb1BTkEKK8W9VU5JxIYgUkFEQQorxb1VTknEhiBTSU1BCivFvVVOScSGIFNPTkpBCivFvVVOScSGIFZFTElNSVIKK8W9VU5KScSGIERSQUdPTUlSCivFvVVOVEVSIEFOVFVOIERJUEwgSU5HCivFvVVOVEVSIEJPxb1BTkEKK8W9VVBBTiBFRFVBUkQKK8W9VVBBTiBNSVJLTworxb1VUEFOxIxJxIYgTUFSR0FSRVRBCivFvVVQQU5FQyBBTEJFUlQgRFIKK8W9VVBBTkVDIEtTRU5JSkEKK8W9VVBBTkVDIE1JUkEKK8W9VVBBTkVDIE1JUkEKK8W9VVBBUknEhiBWSUtUT1IKK8W9VVBJxIYgQU5URQorxb1VUEnEhiBEQU5FCivFvVVQScSGIERSQUdJQ0EKK8W9VVBJxIYgTUlKTworxb1VUFVOU0tJIMW9QVJLTworxb1VUFVOU0tJIMW9SVZPUkFECivFvVVQVU5TS0kgR09KS08KK8W9VVBVTlNLSSBHUk9aREFOQQorxb1VUFVOU0tJIEdSVUpJQ0EKK8W9VVBVTlNLSSBIRUxFTkEKK8W9VVBVTlNLSSBJVkFOCivFvVVQVU5TS0kgTUFSSU5LTworxb1VUFVOU0tJIFNURVZBTgorxb1VUFVOU0tJIFZFU0VMSU5LQQorxb1VUsW9RVZJxIYgQ1ZFVEtPCivFvVVSxb1JTk9WScSGIEtPU1RBCivFvVVSxb1PVkFOIExJQQorxb1VUsW9T1ZBTiBORUxVCivFvVVSxb1PVkFOIFRSQU5EQUZJUgorxb1VUsW9VUwgQk/FoEtPCivFvVVSxb1VTCBTVEFOT0pFCivFvVVSScSGIE1JSEFJTE8KK8W9VVJJxIYgVkFTTworxb1VUktBIEFVUk9SQQorxb1VVEnEhiBNSUxLQQorxb1VVEnEhiBQRVRBUgorxb1VVEnEhiBTVEVWTworxJBBxIxBTklOIFJBRE9WQU4KK8SQQcSMScSGIFZMQURJTUlSCivEkEFJxIYgTUlST1NMQVYKK8SQQUpJxIYgxb1BUktPCivEkEFKScSGIMW9RUxKS08KK8SQQUpJxIYgQUxFS1NBTkRSQQorxJBBSknEhiBCT0dEQU4KK8SQQUpJxIYgSkVMRU5LTworxJBBSknEhi1KT1ZBTk9WScSGIFJBSktBCivEkEFKScSGIE1JTE9SQUQKK8SQQUpJxIYgTkFEQQorxJBBSknEhiBORVZFTkEKK8SQQUpJxIYgTklLT0xBCivEkEFKScSGIFZFTEpLTworxJBBSknEhiBWTEFESVNMQVZBCivEkEFLT05PViBNSUxLQQorxJBBS09OT1YgU1RFVkFOCivEkEFLT05PVknEhiBNSUxPVkFOCivEkEFLT05PVknEhiBTTEFWSUNBCivEkEFLT05PVknEhiBTVEVWQU4KK8SQQUtPViBMSklMSkFOQQorxJBBS09WIE1JSEFKTE8KK8SQQUtPViBNSUxBTgorxJBBS09WScSGIMW9SVZLQQorxJBBS09WScSGIMSQT1LEkEUgRFIKK8SQQUtPVknEhiDEkE9SxJBFCivEkEFLT1ZJxIYgxJBPUsSQRQorxJBBS09WScSGIMSQVVJBCivEkEFLT1ZJxIYgxJBVUk8KK8SQQUtPVknEhiDEkFVSTworxJBBS09WScSGIEFOS0EKK8SQQUtPVknEhiBEQVJBCivEkEFLT1ZJxIYgRFJBR0FOCivEkEFLT1ZJxIYgRFJBR0FOCivEkEFLT1ZJxIYgRFJBR09MSlVCIERSCivEkEFLT1ZJxIYgRFJBR09MSlVCCivEkEFLT1ZJxIYgRFXFoEFOCivEkEFLT1ZJxIYgSUxFCivEkEFLT1ZJxIYgSUxJSkEKK8SQQUtPVknEhiBKT0tBCivEkEFLT1ZJxIYgSk9WQU5LQQorxJBBS09WScSGIEpPVkFOCivEkEFLT1ZJxIYgSk9WSUNBCivEkEFLT1ZJxIYgSk9WTworxJBBS09WScSGIExKVUJPTUlSIERSIElORworxJBBS09WScSGIExKVUJPTUlSCivEkEFLT1ZJxIYgTUFSSUpBCivEkEFLT1ZJxIYgTUlMQU4KK8SQQUtPVknEhiBNSUxBTgorxJBBS09WScSGIE1JTEFOCivEkEFLT1ZJxIYgTUlMS0EKK8SQQUtPVknEhiBNSVJKQU5BCivEkEFLT1ZJxIYgTUlSSkFOQQorxJBBS09WScSGIE5FxJBPCivEkEFLT1ZJxIYgTkVERUxKS08KK8SQQUtPVknEhiBOSUtPTEEKK8SQQUtPVknEhiBPU1RPSkEKK8SQQUtPVknEhiBQRVJTSURBCivEkEFLT1ZJxIYgUEVUQVIKK8SQQUtPVknEhiBQUkVEUkFHCivEkEFLT1ZJxIYgUFJFRFJBRworxJBBS09WScSGIFJBRE9NSVIKK8SQQUtPVknEhiBSQURPU0FWCivEkEFLT1ZJxIYgUkFOS08KK8SQQUtPVknEhiBTQVZBCivEkEFLT1ZJxIYgU0xBVklDQQorxJBBS09WScSGIFNMQVZPTEpVQgorxJBBS09WScSGIFNMT0JPREFOCivEkEFLT1ZJxIYgU1RFVkFOCivEkEFLT1ZJxIYgU1RFVkFOCivEkEFLT1ZJxIYgU1RPSkFOCivEkEFLT1ZJxIYgVEFUSkFOQQorxJBBS09WScSGIFZBU08KK8SQQUtPVknEhiBWTEFESU1JUgorxJBBS09WScSGIFZPSk8KK8SQQUtPVknEhiBWVUtPU0FWQQorxJBBS09WScSGIFpPUkFOCivEkEFMQUkgTEFKT8WgCivEkEFMSU5BQyBHT1JEQU5BCivEkEFMSU5BQyBSQURJVk9KCivEkEFMTyBNSVJLTworxJBBTE9WScSGIFJBRE9TTEFWCivEkEFMVcWgIFNURVZBTgorxJBBTiBKT1ZBTgorxJBBTknFoCBMQVpBUgorxJBBTknFoCBPTElWRVJBCivEkEFOScSGIE1BVE8KK8SQQU5LT1ZJxIYgTUlMT8WgCivEkEFOVEFSIEFOxJBFTElKQQorxJBBTlRBUiBKT8W9RUYKK8SQQVBBIEFMRUtTQU5EQVIKK8SQQVBBIERVxaBBTgorxJBBUEEgTUFSS08KK8SQQVBBIFBFVEFSCivEkEFQScSGIERBVklECivEkEFQScSGIEtSU1RBCivEkEFQScSGIE1JTEVTQQorxJBBUEnEhiBNSUxFU0EKK8SQQVBJxIYtTUlMScSGIFRBVEpBTkEgTEVLQVIKK8SQQVBJxIYgUEFWTEUKK8SQQVJNQVRJIEZSQU5KQQorxJBBUk1BVEkgR0laRUxBCivEkEFSTUFUSSBJTE9OQQorxJBBUk1BVEkgSlVMSU8KK8SQQVJNQVRJIExBU0xPCivEkEFSTUFUSSBNSUhBSkxPCivEkEFSTUFUSSBTTkXFvUFOQQorxJBBVEtPViBSQURBCivEkEVCTkFSIE9CUkFECivEkEVLRVIgUk9aQUxJSkEKK8SQRUtJxIYgxb1JVk9KSU4KK8SQRUtJxIYgS0FUSUNBCivEkEVLScSGIE1JTEFOCivEkEVLScSGIE1JTEVOQQorxJBFS0nEhiBNSUxPTUlSCivEkEVLScSGIE5BREEKK8SQRUtJxIYgTkVERUxKS08KK8SQRUtJxIYgUEFWTEUKK8SQRUtJxIYgUkFERQorxJBFS0nEhiBSQURNSUxBCivEkEVLScSGIFNUQU5BCivEkEVLScSGIFNUT0pBTktBCivEkEVMScSGIFVST8WgCivEkEVNQkVSIEnFoFRWQU4KK8SQRU1ST1ZTS0kgVE9NQcWgCivEkEVNUk9WU0tJIFZMQVRLTworxJBFTVJPVlNLSSBaREVOS08KK8SQRU5BREnEhiBEUkFHScWgQQorxJBFTkFESUpBIFBFVEFSCivEkEVOREnEhiBKT1ZBTiBESVBMIElORworxJBFTkRJxIYgTEFaQVIKK8SQRU5FxaAgUEVUQVIKK8SQRU5HRSBBTkRSQcWgCivEkEVOR0UgQU5EUklKQQorxJBFTkdFIFBFVEVSCivEkEVOScSGIEpFTEVOQQorxJBFTknEhiBTTE9CT0RBTgorxJBFTknEhiBTTE9CT0RBTgorxJBFTknEhiBaT1JJQ0EKK8SQRU5JU0nEhiBTVEFOSU1JUgorxJBFUsSQIMSQVVJBCivEkEVSxJAgQU5UVU4KK8SQRVLEkCBJR09SCivEkEVSxJAgSk9TSVAKK8SQRVLEkCBLQVRBUklOQQorxJBFUsSQIExKVUJJQ0EKK8SQRVLEkCBQRVRBUgorxJBFUsSQIFZJTE1PxaAKK8SQRVJFIEtPUk5FTAorxJBFUkUgWk9MVEFOCivEkEVSRkkgQUxFS1NBTkRBUgorxJBFUkkgxaBBTkRPUgorxJBFUkkgRU5EUkUKK8SQRVJJIEVSxb1FQkVUCivEkEVSSSBHRVpBCivEkEVSSSBLQVJPTEoKK8SQRVJJIExBRElTTEFWCivEkEVSSSBMQVNMTworxJBFUkkgU0FCT0zEjAorxJBFUkkgU0FMT01FCivEkEVSScSGIMW9SVZBTgorxJBFUknEhiDEkE9SxJBFCivEkEVSScSGIMSQVVJBCivEkEVSScSGIEJSQU5LTworxJBFUknEhiBEQU5JQ0EKK8SQRVJJxIYgREVTQU5LQQorxJBFUknEhiBESU1JVFJJSkUKK8SQRVJJxIYgRE9CUklOS08KK8SQRVJJxIYgRFJBR0FOCivEkEVSScSGIEZFTElLUworxJBFUknEhiBKQVJPU0xBVgorxJBFUknEhiBKT1ZBTgorxJBFUknEhiBKT1ZBTgorxJBFUknEhiBKVUxLQQorxJBFUknEhiBNSUNBCivEkEVSScSGIE1JSEFKTE8KK8SQRVJJxIYgTUlMQU4KK8SQRVJJxIYgTUlMRU5LTworxJBFUknEhiBNSUxFCivEkEVSScSGIE1JTElWT0pFCivEkEVSScSGIE1JTE/FoAorxJBFUknEhiBNSU9EUkFHCivEkEVSScSGIE1JUkpBTkEKK8SQRVJJxIYgTkFEQQorxJBFUknEhiBPTEdBCivEkEVSScSGIE9MSVZFUkEKK8SQRVJJxIYgUEVUQVIKK8SQRVJJxIYgUkFERQorxJBFUknEhiBSQURJVk9KCivEkEVSScSGIFJBRE9NSVIKK8SQRVJJxIYgUkFET1NMQVYKK8SQRVJJxIYgUkFET1ZBTgorxJBFUknEhiBTTEFWS08KK8SQRVJJxIYgU1RBTklTTEFWCivEkEVSScSGIFZFTEpLTworxJBFUknEhiBWT0pJTgorxJBFUktJIFZFUkEKK8SQRVJLT1ZJxIYgTUlSxIxFVEEKK8SQRVJLT1ZJxIYgUkFET0pLQQorxJBFUktPVknEhiBWTEFERVRBCivEkEVSTUFOIMW9SVZLTworxJBFUk1BTiBORURFTEpLTworxJBFUk1BTk9WIElWQU4KK8SQRVJNQU5PViBMSlVCT01JUgorxJBFUk1BTk9WIE1JTEFOCivEkEVSTUFOT1YgTUlMRU5BCivEkEVSTUFOT1YgTkFERcW9REEKK8SQRVJNQU5PViBPTEdBCivEkEVSTUFOT1YgUEVUQVIKK8SQRVJNQU5PViBUT0RPUgorxJBFUk1BTk9WIFZMQURBCivEkEVSTUFOT1ZJxIYgSkVMSUNBCivEkEVSTUFOT1ZJxIYgTUFSSUpBCivEkEVSTUFOT1ZJxIYgTUlMT0RBTktBCivEkEVSTUFOT1ZJxIYgU0xBVktPCivEkEVSTUFOT1ZJxIYgU1RBTktPCivEkEVSTUFUSSBJUkVOQQorxJBFVEtBIEpBTk8KK8SQRVRLQSBNSUhBTAorxJBFVEtBIE1JSEFMCivEkEVUS0EgTUlSS08KK8SQRVRWQUkgQU5EUkHFoCBESVBMIElORworxJBFVFZBSSBBTkRSQcWgCivEkEVUVkFJIEFOSUNBCivEkEVUVkFJIEZFUkVOQworxJBFVFZBSSBJTVJFCivEkEVUVkFJIExBSk/FoAorxJBFVkVLSSBKT1ZBTgorxJBJREnEhiBNQVJJSkEKK8SQSURJxIYgTUFSSU5LTworxJBJS0nEhiBTVE9KQU4KK8SQSUtJxIYgVklLVE9SSUpBCivEkElMQVMgQk9STworxJBJTEFTIERSQUdBTgorxJBJTEFTIERVxaBBTgorxJBJTEFTIEdST1pEQU5BCivEkElMQVMgTUFSSU5LTworxJBJTEFTIE1JTE9SQUQKK8SQSUxBUyBNSUxPUkFECivEkElMQVMgTUlMT1JBRAorxJBJTEFTIE5JS09MQQorxJBJTEFTIFNURVZBTgorxJBJTFZFU0kgxaBBTkRPUgorxJBJTFZFU0kgS0FSTE8KK8SQSU4gxJBVUkEKK8SQSU4gSlVMSUpBTkEKK8SQSU7EkEnEhiBNSUxPSktPCivEkElOScSGIElWSUNBCivEkElOScSGIE5JS09MQQorxJBJTknEhiBTTEFWS0EKK8SQSU5JxIYgU09GSUpBCivEkElOScSGIFZMQURFVEEKK8SQSU5JxIYgWk9SQU4KK8SQSU5KQSBBTkRSRUoKK8SQSU5PVknEhiBDVkVUS08KK8SQSU5PVknEhiBJVktPCivEkElOT1ZJxIYgS09MRQorxJBJUEFMTyDEkFVSTworxJBJUEFMTyBHT0pLTworxJBJUEFMTyBNSUxBTgorxJBJUEFMTyBNSVJLTworxJBJUEFMTyBNSVJPU0xBVgorxJBJUEFMTyBSQURFCivEkElQQU5PViBJREEKK8SQSVBBTk9WIE5JS09MQQorxJBJUEFOT1YgUkVMSkEKK8SQSVBBTk9WIFNWRVRPWkFSCivEkElSScWgSSBJxaBUVkFOCivEkElSTEnEhiBTVEVWQU4KK8SQSVNBTE9WIEJSQU5JU0xBVgorxJBJU0FMT1YgSkVMRU5BCivEkElTQUxPViBKRUxFTkEKK8SQSVNBTE9WIExBWkFSCivEkElTQUxPViBMSlVCSU5LQQorxJBJU0FMT1YgTUlMQU4KK8SQSVNBTE9WIE1JTEFOCivEkElTQUxPViBNSUxJVk9KCivEkElTQUxPViBNSUxJVk9KCivEkElTQUxPViBNSU9EUkFHCivEkElTQUxPViBNSU9EUkFHCivEkElTQUxPViBOQURBCivEkElTQUxPViBTT05KQQorxJBJU0FMT1ZJxIYgS0FUSUNBCivEkElUS09WIEpPVkFOCivEkElUS09WIFNPRklKQQorxJBKQUsgxb1JVktPCivEkE/EkEnEhiBNSUxPUkFECivEkE9HTyBNSUxPVkFOCivEkE9HTyBNSVJKQU5BCivEkE9HTyBSVcW9SUNBCivEkE9HTyBaT1JBTgorxJBPR09WScSGIE1JTE9SQUQKK8SQT0dPVknEhiBSQURJVk9KS0EKK8SQT0tJxIYgQUxFS1NBTkRBUgorxJBPS0nEhiBCT8WgS08KK8SQT0tJxIYgQk9SSVZPSkUKK8SQT0tJxIYgQlJBVElTTEFWCivEkE9LScSGIENWRVRLTworxJBPS0nEhiBEQVJJTktBCivEkE9LScSGIERSQUdBTgorxJBPS0nEhiBEUkFHScWgQQorxJBPS0nEhiBEUkFHT0xKVUIKK8SQT0tJxIYgRFJBR08KK8SQT0tJxIYgR09SQU4KK8SQT0tJxIYgSVZBTgorxJBPS0nEhiBKRUxJU0FWQQorxJBPS0nEhiBKT1JEQU4KK8SQT0tJxIYgTEpVQklOS08KK8SQT0tJxIYgTEpVQk8KK8SQT0tJxIYgTFVLQQorxJBPS0nEhiBNQVJJTktPCivEkE9LScSGIE1BVElMREEKK8SQT0tJxIYgTUlIQUpMTworxJBPS0nEhiBNSUxBTgorxJBPS0nEhiBNSUxBTgorxJBPS0nEhiBNSUxJU0FWCivEkE9LScSGIE1JTElWT0pFCivEkE9LScSGIE1JTE9WQU4KK8SQT0tJxIYgTUlMVVRJTgorxJBPS0nEhiBQQU5URUxJSkEKK8SQT0tJxIYgUEVUQVIKK8SQT0tJxIYgUkFESVNBVgorxJBPS0nEhiBSQURPVkFOCivEkE9LScSGIFJBVEtPCivEkE9LScSGIFJVxb1BCivEkE9LScSGIFNMT0JPREFOS0EKK8SQT0tJxIYgU0xPQk9EQU4KK8SQT0tJxIYgU09GSUpBCivEkE9LScSGIFNUQU5JxaBBCivEkE9LScSGIFNWRVRJU0xBVgorxJBPS0nEhiBWRVJBCivEkE9LScSGIFZMQURJU0xBVgorxJBPS0nEhiBWT0pJU0xBVgorxJBPS0nEhiBWVUpBRElOCivEkE9LScSGIFZVS0FESU4KK8SQT0tJxIYgWk9SQU4KK8SQT0tPVknEhiBEUkFHT01JUgorxJBPS09WScSGIE1BUktPCivEkE9LT1ZJxIYgTUlMQU4KK8SQT0tPVknEhiBNSUxPVkFOCivEkE9LT1ZJxIYgUEVUQVIKK8SQT0tPVknEhiBSQURPTUlSCivEkE9LT1ZJxIYgUkFET1ZBTgorxJBPS09WScSGIFNUT0pBTgorxJBPS1ZVxIxJxIYgTkFEQQorxJBPTEFJIElNUkUKK8SQT0xBSSBNQVRJTERBCivEkE9MSkVWScSGIMSQT0tBCivEkE9MT1ZJxIYgxIxFRE9NSVIKK8SQT01QQVJJxIYgRFXFoEFOCivEkE9NUEFSScSGIElMSUpBCivEkE9NUEFSScSGIE1FTEFOSUpBCivEkE9NUEFSScSGIE5JS09MQQorxJBPTVBBUknEhiBOSUtPTEEKK8SQT01QQVJJxIYgTklLT0xBCivEkE9NUEFSScSGIFZMQURJU0xBVkEKK8SQT05PVknEhiDEkE9SxJBJSkUKK8SQT05PVknEhiBLQVJPTElOQQorxJBPTk9WScSGIFpBUklKQQorxJBPUsSQRVZJxIYgxIxFRE9NSVIKK8SQT1LEkEVWScSGIMW9SVZLTworxJBPUsSQRVZJxIYgxb1JVk9KSU4KK8SQT1LEkEVWScSGIMW9SVZPSklOCivEkE9SxJBFVknEhiDFvUlWT0pJTgorxJBPUsSQRVZJxIYgxb1JVk9SQUQKK8SQT1LEkEVWScSGIMW9SVZPUkFECivEkE9SxJBFVknEhiDFvUlWT1RBCivEkE9SxJBFVknEhiDEkE9LQQorxJBPUsSQRVZJxIYgxJBPUsSQRQorxJBPUsSQRVZJxIYgxJBPUsSQRQorxJBPUsSQRVZJxIYgxJBVUkEKK8SQT1LEkEVWScSGIEFDQQorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRBUgorxJBPUsSQRVZJxIYgQUxFS1NBTkRSQQorxJBPUsSQRVZJxIYgQk9HREFOCivEkE9SxJBFVknEhiBCT1JBCivEkE9SxJBFVknEhiBCT1JJU0FWCivEkE9SxJBFVknEhiBCT1JJVk9KRQorxJBPUsSQRVZJxIYgQlJBTklNSVIKK8SQT1LEkEVWScSGIEJSQU5JU0xBVgorxJBPUsSQRVZJxIYgQlJBTklTTEFWCivEkE9SxJBFVknEhiBCUkFOSVNMQVYKK8SQT1LEkEVWScSGIEJSQU5JU0xBVgorxJBPUsSQRVZJxIYgQlJBTklTTEFWCivEkE9SxJBFVknEhiBCUkFOSVNMQVYKK8SQT1LEkEVWScSGIEJSQU5LTworxJBPUsSQRVZJxIYgQlVESU1JUgorxJBPUsSQRVZJxIYgQlVESU1JUgorxJBPUsSQRVZJxIYgREFSS08KK8SQT1LEkEVWScSGIERFU0FOS0EKK8SQT1LEkEVWScSGIERFU1BPVAorxJBPUsSQRVZJxIYgRElNSVRSSUpFCivEkE9SxJBFVknEhiBET0JSSVZPSkUKK8SQT1LEkEVWScSGIERSQcW9QQorxJBPUsSQRVZJxIYgRFJBR0FOQQorxJBPUsSQRVZJxIYgRFJBR0FOCivEkE9SxJBFVknEhiBEUkFHQU4KK8SQT1LEkEVWScSGIERSQUdBTgorxJBPUsSQRVZJxIYgRFJBR0FOCivEkE9SxJBFVknEhiBEUkFHQU4KK8SQT1LEkEVWScSGIERSQUdBCivEkE9SxJBFVknEhiBEUkFHScWgQQorxJBPUsSQRVZJxIYgRFJBR0nFoEEKK8SQT1LEkEVWScSGIERSQUdJxaBBCivEkE9SxJBFVknEhiBEUkFHT0xKVUIgRFIKK8SQT1LEkEVWScSGIERSQUdPTEpVQgorxJBPUsSQRVZJxIYgRFJBR09MSlVCCivEkE9SxJBFVknEhiBEUkFHT0xKVUIKK8SQT1LEkEVWScSGIERSQUdPTEpVQgorxJBPUsSQRVZJxIYgRFJBR09TTEFWCivEkE9SxJBFVknEhiBEUkFHVVRJTgorxJBPUsSQRVZJxIYgRFXFoEFOS0EKK8SQT1LEkEVWScSGIERVxaBBTgorxJBPUsSQRVZJxIYgRFXFoEFOCivEkE9SxJBFVknEhiBEVcWgQU4KK8SQT1LEkEVWScSGIERVxaBBTgorxJBPUsSQRVZJxIYgRVJORVNUCivEkE9SxJBFVknEhiBFVklDQQorxJBPUsSQRVZJxIYgRkFUSU1BCivEkE9SxJBFVknEhiBHSVpFTEEKK8SQT1LEkEVWScSGIEdPUkEKK8SQT1LEkEVWScSGIEdPUkRBTkEKK8SQT1LEkEVWScSGIEdSQURJTUlSCivEkE9SxJBFVknEhiBHUkFESU1JUgorxJBPUsSQRVZJxIYgSFJBTklTTEFWCivEkE9SxJBFVknEhiBJTElOS0EKK8SQT1LEkEVWScSGIElMT05BCivEkE9SxJBFVknEhiBJVkFOQQorxJBPUsSQRVZJxIYgSVZBTgorxJBPUsSQRVZJxIYgSkFHT0RBCivEkE9SxJBFVknEhiBKRUxFTkEKK8SQT1LEkEVWScSGIEpFTEVOQQorxJBPUsSQRVZJxIYgSkVMRU5BCivEkE9SxJBFVknEhiBKT1ZBTgorxJBPUsSQRVZJxIYgSk9WQU4KK8SQT1LEkEVWScSGIEpPVkFOCivEkE9SxJBFVknEhiBKT1ZBTgorxJBPUsSQRVZJxIYgSk9WQU4KK8SQT1LEkEVWScSGIEpPVklDQQorxJBPUsSQRVZJxIYgSlVMS0lDQQorxJBPUsSQRVZJxIYgSlVMS0lDQQorxJBPUsSQRVZJxIYgS0FUQVJJTkEKK8SQT1LEkEVWScSGIEtPTlNUQU5ESU5BCivEkE9SxJBFVknEhiBLT1NUQQorxJBPUsSQRVZJxIYgTEFaQVIKK8SQT1LEkEVWScSGIExBWkFSCivEkE9SxJBFVknEhiBMSklMSkFOQQorxJBPUsSQRVZJxIYgTEpVQkEgRElQTCBJTkcKK8SQT1LEkEVWScSGIExKVUJJxaBBCivEkE9SxJBFVknEhiBMSlVCScWgQQorxJBPUsSQRVZJxIYgTEpVQklDQQorxJBPUsSQRVZJxIYgTEpVQklDQQorxJBPUsSQRVZJxIYgTEpVQklDQQorxJBPUsSQRVZJxIYgTEpVQklOS0EKK8SQT1LEkEVWScSGIExKVUJJU0FWCivEkE9SxJBFVknEhiBMSlVCT01JUgorxJBPUsSQRVZJxIYgTEpVQk9NSVIKK8SQT1LEkEVWScSGIE1BUklKQQorxJBPUsSQRVZJxIYgTUFSSUpBCivEkE9SxJBFVknEhiBNSUxBTktBCivEkE9SxJBFVknEhiBNSUxBTktBCivEkE9SxJBFVknEhiBNSUxBTgorxJBPUsSQRVZJxIYgTUlMQU4KK8SQT1LEkEVWScSGIE1JTEVOQQorxJBPUsSQRVZJxIYgTUlMRU5LTworxJBPUsSQRVZJxIYgTUlMRU5LTworxJBPUsSQRVZJxIYgTUlMSUpBCivEkE9SxJBFVknEhiBNSUxPxaAgRFIKK8SQT1LEkEVWScSGIE1JTE/FoAorxJBPUsSQRVZJxIYgTUlMT1JBRAorxJBPUsSQRVZJxIYgTUlMT1JBRAorxJBPUsSQRVZJxIYgTUlMT1NBVgorxJBPUsSQRVZJxIYgTUlMT1ZBTgorxJBPUsSQRVZJxIYgTUlMT1ZBTgorxJBPUsSQRVZJxIYgTUlMVVRJTgorxJBPUsSQRVZJxIYgTUlPRFJBRworxJBPUsSQRVZJxIYgTUlPRFJBRworxJBPUsSQRVZJxIYgTUlPRFJBRworxJBPUsSQRVZJxIYgTUlSSkFOQQorxJBPUsSQRVZJxIYgTUlSSkFOQQorxJBPUsSQRVZJxIYgTUlSS08KK8SQT1LEkEVWScSGIE1JUktPCivEkE9SxJBFVknEhiBNSVJPU0xBVgorxJBPUsSQRVZJxIYgTUlST1NMQVYKK8SQT1LEkEVWScSGIE1JUk9TTEFWCivEkE9SxJBFVknEhiBNTEFERU4KK8SQT1LEkEVWScSGIE5BREEKK8SQT1LEkEVWScSGIE5BREEKK8SQT1LEkEVWScSGIE5FREVMSktPIERSCivEkE9SxJBFVknEhiBORVZFTktBCivEkE9SxJBFVknEhiBOSUtPTEEKK8SQT1LEkEVWScSGIFBBSkEKK8SQT1LEkEVWScSGIFBBTlRBCivEkE9SxJBFVknEhiBQQVZMRQorxJBPUsSQRVZJxIYgUEFWTEUKK8SQT1LEkEVWScSGIFBBVkxFCivEkE9SxJBFVknEhiBQRVRBUgorxJBPUsSQRVZJxIYgUkFET01JUgorxJBPUsSQRVZJxIYgUkFET01JUgorxJBPUsSQRVZJxIYgUkFET1NMQVYKK8SQT1LEkEVWScSGIFJBRE9TTEFWCivEkE9SxJBFVknEhiBSQURPU0xBVgorxJBPUsSQRVZJxIYgUkFKS0EKK8SQT1LEkEVWScSGIFJBTsSQRUwKK8SQT1LEkEVWScSGIFNBxaBBCivEkE9SxJBFVknEhiBTQVZBCivEkE9SxJBFVknEhiBTSU5JxaBBCivEkE9SxJBFVknEhiBTTEHEkEFOQQorxJBPUsSQRVZJxIYgU0xBVktPCivEkE9SxJBFVknEhiBTTEFWS08KK8SQT1LEkEVWScSGIFNMQVZLTworxJBPUsSQRVZJxIYgU0xPQk9EQU4KK8SQT1LEkEVWScSGIFNMT0JPREFOCivEkE9SxJBFVknEhiBTTE9CT0RBTgorxJBPUsSQRVZJxIYgU0xPQk9EQU4KK8SQT1LEkEVWScSGIFNORcW9QU5BCivEkE9SxJBFVknEhiBTT0ZJSkEKK8SQT1LEkEVWScSGIFNPRklKQQorxJBPUsSQRVZJxIYgU1LEkEFOCivEkE9SxJBFVknEhiBTUsSQQU4KK8SQT1LEkEVWScSGIFNSRVRFTgorxJBPUsSQRVZJxIYgU1RBTkEKK8SQT1LEkEVWScSGIFNUQU5JU0xBVgorxJBPUsSQRVZJxIYgU1RBTktBCivEkE9SxJBFVknEhiBTVEVWQU5BCivEkE9SxJBFVknEhiBTVEVWQU4KK8SQT1LEkEVWScSGIFNURVZBTgorxJBPUsSQRVZJxIYgU1ZFVElTTEFWCivEkE9SxJBFVknEhiBTVkVUSVNMQVYKK8SQT1LEkEVWScSGIFNWRVRPWkFSCivEkE9SxJBFVknEhiBUSU9TQVYKK8SQT1LEkEVWScSGIFRPTUlTTEFWCivEkE9SxJBFVknEhiBUT01JU0xBVgorxJBPUsSQRVZJxIYgVkVMSVNBVgorxJBPUsSQRVZJxIYgVkVMSVpBUgorxJBPUsSQRVZJxIYgVkVSQQorxJBPUsSQRVZJxIYgVkVSQQorxJBPUsSQRVZJxIYgVklET1NBVkEKK8SQT1LEkEVWScSGIFZMQURJTUlSCivEkE9SxJBFVknEhiBWTEFKS08KK8SQT1LEkEVWScSGIFZMQVNUSU1JUgorxJBPUsSQRVZJxIYgVkxBU1RJTUlSCivEkE9SxJBFVknEhiBWT0pJTgorxJBPUsSQRVZJxIYgVlXEjEtPCivEkE9SxJBFVknEhiBaT1JBTgorxJBPUsSQRVZJxIYgWk9SQU4KK8SQT1LEkEVWScSGIFpPUkFOCivEkE9SxJBFVknEhiBaT1JBTgorxJBPUsSQScSGIEJSQU5LTworxJBPUsSQScSGIE1BUktPCivEkE9SxJBJxIYgTUlMQU4KK8SQT1LEkElKRVZTS0kgRFJBR0FOCivEkE9SxJBJSkVWU0tJIERVxaBBTgorxJBPUsSQSUpFVlNLSSBaT1JBTgorxJBPUsSQSU4gRkVNS0EKK8SQT1LEkElOIFJBREUKK8SQT1LEkElOIFNBVkEKK8SQT1LEkElPU0tJIEtJUk8KK8SQT1JFVlNLSSBHT1JBTgorxJBPUkdJRVZBIEpFTElDQQorxJBPUknEhiBBTlRPTklKRQorxJBPUknEhiBHT1JEQU5BCivEkE9SScSGIExKVUJJU0FWCivEkE9SScSGIE1JTElWT0pFCivEkE9SScSGIE1JT0RSQUcKK8SQT1JJxIYgVkVSSUNBCivEkE9ST0pFVknEhiBWVUtPVEEKK8SQT1RFVkEgVFJBSkFOS0EKK8SQT1RVTk9WScSGIEFOxJBFTElKQQorxJBPWknEhiDFoFVLUklKQQorxJBVxJBBUiBNRUxBTklKQQorxJBVxJBBUiBWTEFEQQorxJBVxJBBUiBWTEFESU1JUgorxJBVxJBBUiBaVk9OSU1JUgorxJBVxJBJxIYgRFJBR0FOCivEkFVEVVJPVknEhiBEVcWgQU4KK8SQVUdBIFBBVkVMCivEkFVLQU5PViBCT1JJVk9KCivEkFVLQU5PViBFTUlMSUpBTgorxJBVS0FOT1YgTUlMQU4KK8SQVUtBTk9WIE5BREEKK8SQVUtBTk9WIFNMT0JPREFOCivEkFVLQU5PVknEhiBBTEVLU0FOREFSCivEkFVLQU5PVknEhiBCUkFOS08KK8SQVUtBTk9WScSGIElWTworxJBVS0FOT1ZJxIYgTEpVQklDQQorxJBVS0FOT1ZJxIYgTUFSQQorxJBVS0FOT1ZJxIYgTUlMQU4KK8SQVUtBTk9WScSGIE1JUk9MSlVCCivEkFVLQU5PVknEhiBOQURBCivEkFVLQU5PVknEhiBOQURBCivEkFVLQU5PVknEhiBQVU5JxaBBCivEkFVLQU5PVknEhiBTUkVURU4KK8SQVUtBTk9WScSGIFNUQUtBCivEkFVLQU5PVknEhiBWTEFESU1JUgorxJBVS0FOT1ZJxIYgWk9SQQorxJBVS0nEjElOIEpPVkFOS0EKK8SQVUtJxIxJTiBNQVJJSkEKK8SQVUtJxIxJTiBTUkVET0pFCivEkFVLScSMSU4gU1JFRE9KRQorxJBVS0nEhi3FoEFCScSGIEdPUkRBTkEKK8SQVUtJxIYgxb1BUktBCivEkFVLScSGIMW9QVJLTworxJBVS0nEhiDFvUVMSktPCivEkFVLScSGIMW9SVZPVEEKK8SQVUtJxIYgxJBPUsSQRQorxJBVS0nEhiDEkE9SxJBFCivEkFVLScSGIMSQT1LEkEUKK8SQVUtJxIYgxJBPUsSQRQorxJBVS0nEhiDEkFVSMAorxJBVS0nEhiDEkFVSQQorxJBVS0nEhiDEkFVSTworxJBVS0nEhiBBR05JQ0EKK8SQVUtJxIYgQUxFS1NBTkRBUiBESVBMIElORworxJBVS0nEhiBBTkEKK8SQVUtJxIYgQU5BCivEkFVLScSGIEFORFJJSkEKK8SQVUtJxIYgQU5JQ0EKK8SQVUtJxIYgQklMSkFOQQorxJBVS0nEhiBCT1JJU0xBVgorxJBVS0nEhiBCUkFOSVNMQVYKK8SQVUtJxIYgQlJBTklTTEFWCivEkFVLScSGIEJSQU5LTworxJBVS0nEhiBEQU5JQ0EgRFIKK8SQVUtJxIYgREFOSUxPCivEkFVLScSGIERJSkFOQQorxJBVS0nEhiBESU1JVFJJSkUKK8SQVUtJxIYgRE9CUklMQQorxJBVS0nEhiBET0JSSVZPSgorxJBVS0nEhiBEUkFHQU4KK8SQVUtJxIYgRFJBR0FOCivEkFVLScSGIERSQUdPSkxPCivEkFVLScSGIERSQUdPTUlSCivEkFVLScSGIERVxaBBTgorxJBVS0nEhiBEVcWgQU4KK8SQVUtJxIYgRFXFoEFOCivEkFVLScSGIERVxaBBTgorxJBVS0nEhiBEVcWgQU4KK8SQVUtJxIYgR0VOQQorxJBVS0nEhiBHRU5PCivEkFVLScSGIEdJWkVMQQorxJBVS0nEhiBHT1JEQU5BCivEkFVLScSGIElMSUpBCivEkFVLScSGIElMSUpBCivEkFVLScSGIElWQU4gRElQTCBJTkcKK8SQVUtJxIYgSVZBTktBCivEkFVLScSGIEpBxaBBCivEkFVLScSGIEpFTEVOQQorxJBVS0nEhiBKT1ZBTgorxJBVS0nEhiBKT1ZJQ0EKK8SQVUtJxIYgSlVMS0EKK8SQVUtJxIYgTEVPCivEkFVLScSGIExKSUxKQU5BCivEkFVLScSGIExKVUJJQ0EKK8SQVUtJxIYgTEpVQk9NSVIKK8SQVUtJxIYgTEpVQk9NSVIKK8SQVUtJxIYgTUFLU0lNCivEkFVLScSGIE1BUkEKK8SQVUtJxIYgTUFSSUpBCivEkFVLScSGIE1BUklOQQorxJBVS0nEhiBNSUpPRFJBRworxJBVS0nEhiBNSUxBTktBCivEkFVLScSGIE1JTEFOCivEkFVLScSGIE1JTEFOCivEkFVLScSGIE1JTEFOCivEkFVLScSGIE1JTEFOCivEkFVLScSGIE1JTEFOCivEkFVLScSGIE1JTEFOCivEkFVLScSGIE1JTEFOCivEkFVLScSGIE1JTEVOS08KK8SQVUtJxIYgTUlMRVZBCivEkFVLScSGIE1JTEUKK8SQVUtJxIYgTUlMRQorxJBVS0nEhiBNSUxJQ0EKK8SQVUtJxIYgTUlMSUNBCivEkFVLScSGIE1JTEpLTworxJBVS0nEhiBNSUxLQQorxJBVS0nEhiBNSUxPxaAKK8SQVUtJxIYgTUlMT8WgCivEkFVLScSGIE1JTE9SQUQKK8SQVUtJxIYgTUlMT1ZBTgorxJBVS0nEhiBNSVJLTworxJBVS0nEhiBNSVJLTworxJBVS0nEhiBNSVJLTworxJBVS0nEhiBNSVJLTworxJBVS0nEhiBNSVJLTworxJBVS0nEhiBORcSQTworxJBVS0nEhiBORURFTEpLTworxJBVS0nEhiBOSUtPTEEKK8SQVUtJxIYgTklLT0xBCivEkFVLScSGIE5PVkFLCivEkFVLScSGIE5PVkFLCivEkFVLScSGIE5PVkFLCivEkFVLScSGIE9TVE9KQQorxJBVS0nEhiBQQU5FCivEkFVLScSGIFBBVkxFCivEkFVLScSGIFBFUknFoEEKK8SQVUtJxIYgUEVUQVIKK8SQVUtJxIYgUEVUQVIKK8SQVUtJxIYgUkFERQorxJBVS0nEhiBSQURJVk9KCivEkFVLScSGIFJBRE9KSUNBCivEkFVLScSGIFJBRE9WQU4KK8SQVUtJxIYgUkFKS08KK8SQVUtJxIYgUk9TQQorxJBVS0nEhiBSVcW9SUNBIExPS0FMCivEkFVLScSGIFNBVkEKK8SQVUtJxIYgU0FWS0EKK8SQVUtJxIYgU0FWTyBEUgorxJBVS0nEhiBTTEFWSUNBCivEkFVLScSGIFNMQVZLTworxJBVS0nEhiBTTEFWT0xKVUIKK8SQVUtJxIYgU0xPQk9EQU4KK8SQVUtJxIYgU1LEkEFOCivEkFVLScSGIFNSQk9MSlVCCivEkFVLScSGIFNUQU5BCivEkFVLScSGIFNUQU5LTworxJBVS0nEhiBTVEFOS08KK8SQVUtJxIYgU1RFVkFOCivEkFVLScSGIFNUT0pBTktBCivEkFVLScSGIFNUT0pBTgorxJBVS0nEhiBTVkVUTEFOQQorxJBVS0nEhiBTVkVUTEFOQQorxJBVS0nEhiBUT01JU0xBVgorxJBVS0nEhiBUT01JU0xBVgorxJBVS0nEhiBWQUxFUklKQQorxJBVS0nEhiBWRUxFTUlSCivEkFVLScSGIFZFUklDQQorxJBVS0nEhiBWRVJPTklLQQorxJBVS0nEhiBWSURBSworxJBVS0nEhiBWSURBCivEkFVLScSGIFZMQURJTUlSCivEkFVLScSGIFZMQURJTUlSCivEkFVLScSGIFZMQURJTUlSCivEkFVLScSGIFZMQUpLTworxJBVS0nEhiBWT0pJTgorxJBVS0nEhiBWT0pJU0xBVgorxJBVS0nEhiBWVUtBTgorxJBVS0nEhiBaT1JBTgorxJBVS0lOIERVxaBBTgorxJBVS0lOIFNURVZBTgorxJBVS05JxIYgU1JFVEVOCivEkFVMQSBLQVJMTworxJBVTElOQUMgSkVMSUNBCivEkFVMSU5BQyBWRVNFTElOCivEkFVMSVpJQkFSScSGLU9SRcWgS09WScSGIERBTklDQQorxJBVTFZFWkFOIEtPU0EKK8SQVUxWRVpBTiBNSUxPxaAKK8SQVUxWRVpBTiBST1pBTElKQQorxJBVTUnEhiBCT0dEQU4KK8SQVU1JxIYgRFXFoEFOCivEkFVNScSGIEdPU1BBVkEKK8SQVU1JxIYgSUxJSkEKK8SQVU1JxIYgTUFSSUpBCivEkFVNScSGIE1JTEVOS08KK8SQVU1JxIYgU0xBVktPCivEkFVNScSGIFNUQU5LTworxJBVTUnEhiBVUk/FoAorxJBVTkRJxIYgTUFSSU5LTworxJBVUsSMRUsgTUlMRU5LTworxJBVUsSMRVZJxIYgS1NFTklKQQorxJBVUsSMSUFOU0tJIE1JUk9TTEFWCivEkFVSxIxJQU5TS0kgUEFWTEUKK8SQVVLEjElLIEpPU0lQCivEkFVSxIxKQU5TS0kgTUlST1NMQVYKK8SQVVLEjE9LIE1JTElOQQorxJBVUsSQRVYgxb1BUktPCivEkFVSxJBFViDEkE9SxJBFCivEkFVSxJBFViBBTEVLU0FOREFSCivEkFVSxJBFViBBTEVLU0FOREFSCivEkFVSxJBFViBCT8W9SURBUgorxJBVUsSQRVYgQlJBTklTTEFWCivEkFVSxJBFViBESU1JVFJJSkUKK8SQVVLEkEVWIERPQlJJTEEKK8SQVVLEkEVWIERSQUdPTEpVQgorxJBVUsSQRVYgRFXFoEFOCivEkFVSxJBFViBEVcWgQU4KK8SQVVLEkEVWIEtBxIZBCivEkFVSxJBFViBLQVRBCivEkFVSxJBFViBMSlVCScWgQQorxJBVUsSQRVYgTUFSSUpBCivEkFVSxJBFViBNQVJJSkEKK8SQVVLEkEVWIE1JTEVUQQorxJBVUsSQRVYgTUxBREVOCivEkFVSxJBFViBOQURFxb1EQQorxJBVUsSQRVYgTkVWRU5LQQorxJBVUsSQRVYgTk9WQUsKK8SQVVLEkEVWIE9CUkFECivEkFVSxJBFViBQQVZBCivEkFVSxJBFViBQUlZPU0xBVgorxJBVUsSQRVYgU0FWSUNBCivEkFVSxJBFViBTTEFWS08KK8SQVVLEkEVWIFNURVZBTgorxJBVUsSQRVYgVE9ET1IKK8SQVVLEkEVWIFZBU0EKK8SQVVLEkEVWIFZFUkEKK8SQVVLEkEVWIFpPUktBCivEkFVSxJBFVkFDIERSQUdPTEpVQgorxJBVUsSQRVZJxIYgxb1FTEpLTworxJBVUsSQRVZJxIYgxb1JVkFOCivEkFVSxJBFVknEhiDFvUlWS08KK8SQVVLEkEVWScSGIMW9SVZLTworxJBVUsSQRVZJxIYgxJBPUsSQRQorxJBVUsSQRVZJxIYgxJBVUsSQSUNBIERJUEwgSU5HCivEkFVSxJBFVknEhiBBTsSQRUxLTworxJBVUsSQRVZJxIYgQk9HREFOCivEkFVSxJBFVknEhiBCUkFOS08KK8SQVVLEkEVWScSGIEJSQU5LTworxJBVUsSQRVZJxIYgQlVESU1JUgorxJBVUsSQRVZJxIYgRFJBR1VUSU4KK8SQVVLEkEVWScSGIERVxaBBTgorxJBVUsSQRVZJxIYgRFXFoEFOCivEkFVSxJBFVknEhiBEVcWgSUNBCivEkFVSxJBFVknEhiBHT1JEQU5BCivEkFVSxJBFVknEhiBKQUtPVgorxJBVUsSQRVZJxIYgSkVMRU5BCivEkFVSxJBFVknEhiBKRUxFTkEKK8SQVVLEkEVWScSGIEpFTElDQQorxJBVUsSQRVZJxIYgSk9WQU5LQQorxJBVUsSQRVZJxIYgSk9WQU4KK8SQVVLEkEVWScSGIEpVTEtBCivEkFVSxJBFVknEhiBMQVpBUgorxJBVUsSQRVZJxIYgTEFaTworxJBVUsSQRVZJxIYgTEpVQk9NSVIKK8SQVVLEkEVWScSGIE1BTk9KTE8KK8SQVVLEkEVWScSGIE1BUklKQQorxJBVUsSQRVZJxIYgTUlMQU4KK8SQVVLEkEVWScSGIE1JTEFOCivEkFVSxJBFVknEhiBNSUxBTgorxJBVUsSQRVZJxIYgTUlMRU5LTworxJBVUsSQRVZJxIYgTUlMSUNBCivEkFVSxJBFVknEhiBNSUxJVk9KCivEkFVSxJBFVknEhiBNSUxPUkFECivEkFVSxJBFVknEhiBNSUxPUkFECivEkFVSxJBFVknEhiBNSVJKQU5BCivEkFVSxJBFVknEhiBNSVJKQU5BCivEkFVSxJBFVknEhiBNT03EjElMTworxJBVUsSQRVZJxIYgTkVERUxKS08KK8SQVVLEkEVWScSGIE5JS09MQQorxJBVUsSQRVZJxIYgUkFESU5LQQorxJBVUsSQRVZJxIYgUkFOS08KK8SQVVLEkEVWScSGIFNBVkEKK8SQVVLEkEVWScSGIFNBVkEKK8SQVVLEkEVWScSGIFNMT0JPREFOCivEkFVSxJBFVknEhiBTUsSQQU4gRFIKK8SQVVLEkEVWScSGIFNUQU5LTworxJBVUsSQRVZJxIYgU1RBTk9KS0EKK8SQVVLEkEVWScSGIFNURVZBTgorxJBVUsSQRVZJxIYgU1ZFVE9aQVIKK8SQVVLEkEVWScSGIFRPRE9SCivEkFVSxJBFVknEhiBUT01JU0xBVgorxJBVUsSQRVZJxIYgVE9NSVNMQVYKK8SQVVLEkEVWScSGIFZFU0VMSU4KK8SQVVLEkEVWScSGIFZJRAorxJBVUsSQRVZJxIYgVkxBREEKK8SQVVLEkEVWScSGIFZMQURBCivEkFVSxJBFVknEhiBWTEFESU1JUgorxJBVUsSQRVZJxIYgVkxBRElNSVIKK8SQVVLEkEVWScSGIFZMQURJU0xBVgorxJBVUsSQRVZJxIYgWk9SQU4KK8SQVVLEkEVWScSGIFpPUkFOCivEkFVSxJBFVlNLSSBCT8WgS08KK8SQVVLEkEnEhiBCT8W9SURBUgorxJBVUsSQScSGIE1JTE/FoAorxJBVUsSQScSGIE1PTcSMSUxPCivEkFVSxJBJxIYgU0FWTworxJBVUsSQScSGIFNUQU5BCivEkFVSxJBJTiBTVEVWQU4KK8SQVVLEkFVMT1YgREVKQU4KK8SQVVLEkFVMT1YgRVZJQ0EKK8SQVVJBIEZSQU5KQQorxJBVUkEgSkVMSVNBVkVUQQorxJBVUkEgSlVMSUpBTkEgTVIKK8SQVVJBxIxJxIYgRFJBR0FOCivEkFVSQcWgIE1JT0RSQUcKK8SQVVJBxaBFVknEhiDEkE9SxJBFCivEkFVSQcWgRVZJxIYgxJBVUk8KK8SQVVJBxaBFVknEhiBHT0pLTworxJBVUkHFoEVWScSGIElWTworxJBVUkHFoEVWScSGIE1BUklKQU5BCivEkFVSQcWgRVZJxIYgTUlMRQorxJBVUkHFoEVWScSGIFJBRE9NSVIKK8SQVVJBxaBFVknEhiBUSUJPUgorxJBVUkHFoEVWScSGIFpPUkFOCivEkFVSQcWgSU5PViBWRUxJTUlSCivEkFVSQcWgSU5PVknEhiBJTElKQQorxJBVUkHFoEtPVknEhiDFvUlWT0pJTgorxJBVUkHFoEtPVknEhiBCT8W9TworxJBVUkHFoEtPVknEhiBEUkFHQU4KK8SQVVJBxaBLT1ZJxIYgRFJBR08KK8SQVVJBxaBLT1ZJxIYgR09SREFOQQorxJBVUkHFoEtPVknEhiBKT1ZBTgorxJBVUkHFoEtPVknEhiBKT1ZBTgorxJBVUkHFoEtPVknEhiBKT1ZJQ0EKK8SQVVJBxaBLT1ZJxIYgUkFKS08KK8SQVVJBxaBLT1ZJxIYgU1RBTk9KRQorxJBVUkFHScSGIMSQT1LEkEUKK8SQVVJBR0nEhiBESUxFCivEkFVSQUdJxIYgRFJBR0FOCivEkFVSQUdJxIYgR0lHQQorxJBVUkFHScSGIEpPVkFOCivEkFVSQUdJxIYgSlVMS0EKK8SQVVJBR0nEhiBMQVpBUgorxJBVUkFHScSGIE1JUk9TTEFWCivEkFVSQUdJxIYgU0FWQQorxJBVUkFHScSGIFNURVZBTgorxJBVUkFHSU4gSk9WQU4KK8SQVVJBR0lOIFNUQU5LQQorxJBVUkFLIEpPxb1FRgorxJBVUkFLIEpPU0lGCivEkFVSQUtPVkFDIEZBVE1JUkEKK8SQVVJBTiBCT0pBTkEKK8SQVVJBTiBJTElKQQorxJBVUkFOIEpFTEVOQQorxJBVUkFOIEpPVk8KK8SQVVJBTiBNSUxBTgorxJBVUkFOIE1JTEFOCivEkFVSQU4gUkFKS08KK8SQVVJBTiBSQUpLTworxJBVUkFOIFNMQVZLTworxJBVUkFOIFNORcW9QU5BCivEkFVSQU4gWkRSQVZLTworxJBVUkFOT1ZJxIYgRFXFoEFOCivEkFVSQU5PVknEhiBJTE9OQQorxJBVUkFOT1ZJxIYgTUlIQUlMTworxJBVUkFOT1ZJxIYgTUlMQU4KK8SQVVJBTk9WScSGIE1JT0RSQUcKK8SQVVJBTk9WScSGIE1JUktPCivEkFVSQU5PVknEhiBOQURBCivEkFVSQU5PVknEhiBTTEHEkEFOQQorxJBVUkFTSU5PVknEhiBNSUxFCivEkFVSREtPViBFVkEKK8SQVVJFS09WScSGIEtBUkxPCivEkFVSRUtPVknEhiBMSlVCSUNBCivEkFVSRUtPVknEhiBaVk9OSU1JUgorxJBVUkVOREnEhiDEkE9SxJBFCivEkFVSRU5EScSGIERVxaBBTgorxJBVUkVUScSGIE5JS09MQQorxJBVUknEjEnEhiBEUkFHSU5KQQorxJBVUknEjEnEhiBEUkFHTworxJBVUknEjEnEhiBEUkFHVVRJTgorxJBVUknEjEnEhiBEVcWgQU4KK8SQVVJJxIxJxIYgSk9WQU4KK8SQVVJJxIxJxIYgTUlMSk9KS08KK8SQVVJJxIxJxIYgTUlMT8WgCivEkFVSScSMScSGIE5FxaBLTworxJBVUknEjEnEhiBOSUtPTEEKK8SQVVJJxIxJxIYgUEFWTEUKK8SQVVJJxIxJxIYgUlXFvUEKK8SQVVJJxIxJxIYgU0xBVktPCivEkFVSScSMScSGIFNMQVZLTworxJBVUknEjEnEhiBTVEFOS08KK8SQVVJJxIxJxIYgVEFOS09TQVZBCivEkFVSScSMScSGIFpMQVRJQ0EKK8SQVVJJxIxJxIYgWk9SQU4KK8SQVVJJxIxJTiDEkE9SxJBFCivEkFVSScSMSU4gQUxFS1NBTkRBUgorxJBVUknEjElOIERSQUdBTgorxJBVUknEjElOIERSQUdVVElOCivEkFVSScSMSU4gS0FUQVJJTkEKK8SQVVJJxIxJTiBLQVRJQ0EKK8SQVVJJxIxJTiBNQVJLTworxJBVUknEjElOIE1JTEFOCivEkFVSScSMSU4gTUlMT1JBRAorxJBVUknEjElOIE1JT0RSQUcKK8SQVVJJxIxJTiBQRVRBUgorxJBVUknEjElOIFJBRE9TTEFWQQorxJBVUknEjElOIFJVxb1JQ0EKK8SQVVJJxIxJTiBTSU5JxaBBCivEkFVSScSMSU4gU09GSUpBCivEkFVSScSMSU4gU1RBTklKQQorxJBVUknEjElOIFNURVZBTgorxJBVUknEjElOIFNWRVRMQU5BCivEkFVSScSMSU4gVE9NSVNMQVYKK8SQVVJJxIxJTiBWQVNJTElKRQorxJBVUknEjElOIFpPUktBCivEkFVSScSMS09WScSGIE1JTE9SQUQKK8SQVVJJxIxLT1ZJxIYgUEFWTEUKK8SQVVJJxIxLT1ZJxIYgWkxBVEFOQQorxJBVUknFoCBLTEFSQQorxJBVUknFoCBNSVJPU0xBVgorxJBVUknFoCBQQUxKTworxJBVUknFoEVWScSGIE1JTEVOQQorxJBVUknFoEnEhiBEVcWgQU4KK8SQVVJJxaBJxIYgSkVMRU5BCivEkFVSScWgScSGIExBWkFSCivEkFVSScWgScSGIE1BVE8KK8SQVVJJxaBJxIYgTUlMQU4KK8SQVVJJxaBJxIYgTUlMQU4KK8SQVVJJxaBJxIYgTUlMSUpBCivEkFVSScWgScSGIE1JTElTQVYKK8SQVVJJxaBJxIYgTklLT0xBCivEkFVSScWgScSGIFJBRE1JTEEKK8SQVVJJxaBJxIYgUkFET01JUgorxJBVUknFoEnEhiBTTEFWS08KK8SQVVJJxaBJxIYgU1ZFVExBTkEKK8SQVVJJxaBJxIYgVkVSQQorxJBVUknFoEnEhiBWSURBCivEkFVSScWgScSGIFpMQVRBTkEKK8SQVVJJxaBJxIYgWkxBVEEKK8SQVVJJxIYgxb1BUktPCivEkFVSScSGIMW9RUxKS08KK8SQVVJJxIYgxb1JVk9SQUQKK8SQVVJJxIYgxJBFUsSQCivEkFVSScSGIMSQT1LEkEUKK8SQVVJJxIYgxJBPUsSQRQorxJBVUknEhiDEkE9SxJBFCivEkFVSScSGIMSQVVJBCivEkFVSScSGIMSQVVJJQ0EKK8SQVVJJxIYgQUxFS1NBTkRBUgorxJBVUknEhiBBTsSQRUxLQQorxJBVUknEhiBBTkdFTElOQQorxJBVUknEhiBBTktBCivEkFVSScSGIEFSU0VOSUpFCivEkFVSScSGIEJMQUdPTUlSCivEkFVSScSGIEJPxb1JREFSCivEkFVSScSGIEJPxb1JREFSCivEkFVSScSGIEJPR09MSlVCCivEkFVSScSGIEJPR09MSlVCCivEkFVSScSGIEJPSkFOCivEkFVSScSGIEJPUklWT0oKK8SQVVJJxIYgQk9SS0EKK8SQVVJJxIYgQk9SS0EKK8SQVVJJxIYgQlJBTklTTEFWIERSIExFS0FSCivEkFVSScSGIEJSQU5JU0xBVkEKK8SQVVJJxIYgQlJBTktBCivEkFVSScSGIEJSQU5LQQorxJBVUknEhiBCUkFOS08KK8SQVVJJxIYgQlJBVElTTEFWCivEkFVSScSGIEJVRElNSVIKK8SQVVJJxIYgREVKQU4KK8SQVVJJxIYgREVKQU4KK8SQVVJJxIYgREVTUE9UCivEkFVSScSGIERPQlJFCivEkFVSScSGIERPQlJJTEEKK8SQVVJJxIYgRFJBR0FOCivEkFVSScSGIERSQUdBTgorxJBVUknEhiBEUkFHQU4KK8SQVVJJxIYgRFJBR0FOCivEkFVSScSGIERSQUdBTgorxJBVUknEhiBEUkFHQU4KK8SQVVJJxIYgRFJBR0FOCivEkFVSScSGIERSQUdJQ0EKK8SQVVJJxIYgRFJBR0lDQQorxJBVUknEhiBEUkFHVVRJTiBEUgorxJBVUknEhiBEVcWgQU4KK8SQVVJJxIYgRFXFoEFOCivEkFVSScSGIEVWQQorxJBVUknEhiBGUkFOSkEKK8SQVVJJxIYgR09KS08KK8SQVVJJxIYgR09KS08KK8SQVVJJxIYgR09SREFOQQorxJBVUknEhiBIUkFOSVNMQVYKK8SQVVJJxIYgSFJBTklTTEFWCivEkFVSScSGIElMSUpBCivEkFVSScSGIElMSUpBCivEkFVSScSGIEpBU01JTktBCivEkFVSScSGIEpFTElDQQorxJBVUknEhiBKT1ZBTgorxJBVUknEhiBKT1ZBTgorxJBVUknEhiBKT1ZBTgorxJBVUknEhiBKT1ZPCivEkFVSScSGIEtSSVNUSU5BCivEkFVSScSGIExKSUxKQU5BCivEkFVSScSGIExKVUJJxaBBCivEkFVSScSGIExKVUJJxaBBCivEkFVSScSGIExKVUJJQ0EKK8SQVVJJxIYgTEpVQklDQQorxJBVUknEhiBMSlVCT0RSQUcKK8SQVVJJxIYgTEpVQk9NSVIKK8SQVVJJxIYgTUFSQQorxJBVUknEhiBNQVJJSkEKK8SQVVJJxIYgTUnEhkEKK8SQVVJJxIYgTUlMQU5LTworxJBVUknEhiBNSUxBTgorxJBVUknEhiBNSUxBTgorxJBVUknEhiBNSUxBTgorxJBVUknEhiBNSUxBTgorxJBVUknEhiBNSUxFTktPCivEkFVSScSGIE1JTElDQQorxJBVUknEhiBNSUxJVk9KRQorxJBVUknEhiBNSUxPxaAKK8SQVVJJxIYgTUlMT1JBRAorxJBVUknEhiBNSUxPUkFECivEkFVSScSGIE1JTE9WQU4KK8SQVVJJxIYgTUlMVU4KK8SQVVJJxIYgTUlPRFJBRworxJBVUknEhiBNSU9EUkFHCivEkFVSScSGIE1JUkpBTkEKK8SQVVJJxIYgTUlSS08KK8SQVVJJxIYgTUlST0xKVUIKK8SQVVJJxIYgTUlST1NMQVZBCivEkFVSScSGIE1JUk9TTEFWCivEkFVSScSGIE1JVEFSCivEkFVSScSGIE1PTcSMSUxPCivEkFVSScSGIE5FREVMSktPCivEkFVSScSGIE5FTUFOSkEKK8SQVVJJxIYgTkVOQUQKK8SQVVJJxIYgTkVWRU5LQQorxJBVUknEhiBQRVRSQQorxJBVUknEhiBQUkVEUkFHCivEkFVSScSGIFBSRURSQUcKK8SQVVJJxIYgUkFESVZPSkUKK8SQVVJJxIYgUkFETUlMQQorxJBVUknEhiBSQURPSUNBCivEkFVSScSGIFJBRE9KS0EKK8SQVVJJxIYgUkFET1NMQVYKK8SQVVJJxIYgUkFUS08KK8SQVVJJxIYgU0FOSkEKK8SQVVJJxIYgU0FWS0EKK8SQVVJJxIYgU0FWTworxJBVUknEhiBTRUtVTEEKK8SQVVJJxIYgU0xBVklDQQorxJBVUknEhiBTTEFWS0EKK8SQVVJJxIYgU0xBVktPCivEkFVSScSGIFNMQVZLTworxJBVUknEhiBTUkJPTEpVQgorxJBVUknEhiBTVEFOSU1JUgorxJBVUknEhiBTVEFOSU1JUgorxJBVUknEhiBTVEVWQU4KK8SQVVJJxIYgU1RPSkFOS0EKK8SQVVJJxIYgU1RPSkFOS0EKK8SQVVJJxIYgVEVPRE9SCivEkFVSScSGIFRFUkVaQQorxJBVUknEhiBUT0RPUgorxJBVUknEhiBUT0RPUgorxJBVUknEhiBUVUdPTUlSCivEkFVSScSGIFZBU0EKK8SQVVJJxIYgVkVMSktPCivEkFVSScSGIFZFUkEKK8SQVVJJxIYgVkVSQQorxJBVUknEhiBWSURBCivEkFVSScSGIFZJRE9KRQorxJBVUknEhiBWTEFEQQorxJBVUknEhiBWTEFESU1JUgorxJBVUknEhiBWTEFESU1JUgorxJBVUknEhiBWTEFESU1JUgorxJBVUknEhiBWT0pJTgorxJBVUknEhiBWT0pJU0xBVgorxJBVUknEhiBWVUtBxaBJTgorxJBVUknEhiBaREVOS0EKK8SQVVJJxIYgWkRSQVZLTworxJBVUknEhiBaT1JBTgorxJBVUklDQSBNSUxPxaAKK8SQVVJJQ0EgTkVWRU5LQQorxJBVUklDQSBSQURFCivEkFVSSUNBIFJBTktPCivEkFVSSUNBIFJBTktPCivEkFVSSUNBIFJBVEtPCivEkFVSSUNBIFNMT0JPREFOIERJUEwgT0VDCivEkFVSSUsgRFXFoEFOCivEkFVSSUsgSlVMS0EKK8SQVVJJSyBNSUxBTgorxJBVUklLIE9USUxJSkEKK8SQVVJJS0lOIElMSUpBCivEkFVSSUtJTiBWRVJBCivEkFVSSU4gSUxJSkEKK8SQVVJJTiBKT1NJUAorxJBVUklOIE5PVkEKK8SQVVJJTiBOT1ZBCivEkFVSSU4gU0FWQSBESVBMIElORworxJBVUklOIFNWRVRMQU5BCivEkFVSSU4gVEVPRE9SCivEkFVSS0nEhiBEUkFHSUNBCivEkFVSS0lOIE1JTEVOS08KK8SQVVJLSU4gUkFEScWgS08KK8SQVVJLSU4gVkxBRElNSVIKK8SQVVJLT1ZJxIYgxIxBU0xBVgorxJBVUktPVknEhiDEkEVOQQorxJBVUktPVknEhiBBTEVLU0FOREFSIERJUEwgSU5HCivEkFVSS09WScSGIEFOVE9OCivEkFVSS09WScSGIE1BR0RBTEVOQQorxJBVUktPVknEhiBQRVJJQ0EKK8SQVVJLT1ZJxIYgUkFERQorxJBVUktPVknEhiBSVcW9SUNBCivEkFVSS09WScSGIFNURVZBTgorxJBVUktPVknEhiBTVkVUT01JUgorxJBVUktPVknEhiBWTEFKS08KK8SQVVJLT1ZTS0kgUEFWRUwKK8SQVVJOScSGIFJBRE1JTEEKK8SQVVJOScSGIFZPSklTTEFWCivEkFVST1ZJxIYgxb1JVktBCivEkFVST1ZJxIYgQUxFS1NBTkRBUgorxJBVUk9WScSGIEJPxaBLTworxJBVUk9WScSGIEJPSkEKK8SQVVJPVknEhiBCT1JJU0xBVgorxJBVUk9WScSGIEJPU0lMSktBCivEkFVST1ZJxIYgREFOSUxPCivEkFVST1ZJxIYgREFSSU5LQQorxJBVUk9WScSGIERSQUdBTgorxJBVUk9WScSGIERSQUdBTgorxJBVUk9WScSGIERSQUdBTgorxJBVUk9WScSGIERSQUdBTgorxJBVUk9WScSGIERSQUdBTgorxJBVUk9WScSGIERSQUdPTEpVQgorxJBVUk9WScSGIEdPSktPCivEkFVST1ZJxIYgSkFTTUlOS0EKK8SQVVJPVknEhiBKT1ZBTgorxJBVUk9WScSGIExKVUJJQ0EKK8SQVVJPVknEhiBNSUxFTktPCivEkFVST1ZJxIYgTUlMSUNBCivEkFVST1ZJxIYgTUlMSVNBVgorxJBVUk9WScSGIE1JTEtBCivEkFVST1ZJxIYgTkFERcW9REEKK8SQVVJPVknEhiBOSUtPTEEKK8SQVVJPVknEhiBPTEdJQ0EKK8SQVVJPVknEhiBSQURFTktPCivEkFVST1ZJxIYgUkFERQorxJBVUk9WScSGIFJBRE9NSVIKK8SQVVJPVknEhiBSQURPTUlSCivEkFVST1ZJxIYgUkFET1NMQVYKK8SQVVJPVknEhiBSQURPVkFOCivEkFVST1ZJxIYgU09GSUpBCivEkFVST1ZJxIYgU1ZFVExBTkEKK8SQVVJPVknEhiBTVkVUT01JUgorxJBVUk9WScSGIFZBU08KK8SQVVJPVknEhiBWRVNOQQorxJBVUk9WScSGIFZVS0HFoElOCivEkFVST1ZJxIYgVlVLQURJTgorxJBVUk9WScSGIFpPUktBCivEkFVST1ZLQSBNQVJJSkEKK8SQVVJPVktBIE9ORFJFSgorxJBVUk9WS0EgVkxBRElTTEFWCivEkFVST1ZTS0kgSk9WSUNBCivEkFVTScSGIE1JT0RSQUcKK8SQVVpBIFNURVZPCitBxIwgxaBBTkRPUgorQcSMIEZFUkVOQworQcSMIEZSQU5KQSBEUiBQUklNQVJJSlVTCitBxIwgR0FCT1IKK0HEjCBKT8W9RUYgQUtBREVNU0tJIFNMSUtBUgorQcSMIEpPxb1FRiBCSU9MT0cKK0HEjCBKT1ZBTgorQcSMIEtBVElDQQorQcSMIExBSk/FoAorQcSMLU5JS09MScSGIEVSxb1FQkVUCitBxIwgT1RPCitBxIwgUEFWTEUKK0HEjCBUSUJPUgorQcSMQUkgScWgVFZBTgorQcSMQUkgWk9MVEFOCitBxIxBTkFTS0kgVkVTTkEKK0HEjEFOU0tJIMW9SVZLTworQcSMQU5TS0kgQUxCSU5BCitBxIxBTlNLSSBBTEVLU0FOREFSCitBxIxBTlNLSSBCUkFOSVNMQVYKK0HEjEFOU0tJIERPQlJJVk9KCitBxIxBTlNLSSBEUkFHSUNBCitBxIxBTlNLSSBEUkFHT01JUgorQcSMQU5TS0kgSkVMSVNPVgorQcSMQU5TS0kgS09TQU5BCitBxIxBTlNLSSBMQVpBUgorQcSMQU5TS0kgTEFaQVIKK0HEjEFOU0tJIE5JS09MQQorQcSMQU5TS0kgUkFEQQorQcSMQU5TS0kgU1RBTkEKK0HEjEFOU0tJIFNUQU5JU0xBVgorQcSMQU5TS0kgVEVPRE9SIERJUEwgSU5HCitBxIxBTlNLSSBUT0RPUgorQcSMQU5TS0kgVklET1NBVkEKK0HEjEFOU0tJIFpEUkFWS08KK0HEjEFOU0tJIFpPUklDQQorQcWgxIZFUknEhiBTVEVWQU4KK0HFoMSGRVJJxIYgU1RFVkFOCitBxaDEhkVSScSGIFpPUkEKK0HFoEFOSU4gUkFESVZPSkUKK0HFoEFOSU4gWk9SQU4KK0HFoElLVSBWSVRBTElTIERSIExFS0FSCitBxaBLT1ZJxIYgU0xBVktPIERJUEwgSU5HCitBxaBLT1ZJxIYgVE9NSVNMQVYKK0HFoEtPVknEhiBWT0pJU0xBVkEKK0HFoE9OSkEgTkVERUxKS08KK0HFoE9OSkEgT0xHQQorQcWgVEFMS09WU0tJIEFMRUtTQU5EQVIKK0HFoFRBTEtPVlNLSSBLUklTVElOQQorQcSGQU5TS0kgxJBPUsSQRQorQcSGQU5TS0kgTEFaQVIKK0HEhknEhiBJTElKQQorQcSGScSGIE1JUktPCitBxIZJxIYgU1RFVkFOCitBxIZJTU9WIEFMRUtTQU5EQVIKK0HEhklNT1YgQk/FoEtPCitBxIZJTU9WIERSQUdJQ0EKK0HEhklNT1YgTEVMQQorQcSGSU1PViBNQVJLTworQcSGSU1PViBNSUxBTgorQcSGSU1PViBNSVJKQU5BIFBST0ZFU09SCitBxIZJTU9WIE5FREVMSktPCitBxIZJTU9WIFJBRElWT0oKK0HEhklNT1YgUkFET1NMQVZBCitBxIZJTU9WScSGIMW9SVZLTworQcSGSU1PVknEhiDFvUlWT0pJTgorQcSGSU1PVknEhiDEkE9SxJBFCitBxIZJTU9WScSGIMSQT1LEkEUKK0HEhklNT1ZJxIYgxJBVUsSQSU5LQQorQcSGSU1PVknEhiBCT8WgS08KK0HEhklNT1ZJxIYgQk9HREFOS0EKK0HEhklNT1ZJxIYgQk9SS0EKK0HEhklNT1ZJxIYgQlJBTktPCitBxIZJTU9WScSGIEJSQU5LTworQcSGSU1PVknEhiBEUkFHQU4KK0HEhklNT1ZJxIYgRFJBR09MSlVCCitBxIZJTU9WScSGIERSQUdPU0xBVgorQcSGSU1PVknEhiBEVcWgQU5LQQorQcSGSU1PVknEhiBEVcWgQU4KK0HEhklNT1ZJxIYgRFXFoEFOCitBxIZJTU9WScSGIEdPSktPCitBxIZJTU9WScSGIElMSUpBCitBxIZJTU9WScSGIEpPVkEKK0HEhklNT1ZJxIYgTUlMQU4KK0HEhklNT1ZJxIYgTUlMQQorQcSGSU1PVknEhiBNSUxJVk9KRSBEUgorQcSGSU1PVknEhiBNSUxJVk9KCitBxIZJTU9WScSGIE1JTE9KSUNBCitBxIZJTU9WScSGIE1JT0RSQUcKK0HEhklNT1ZJxIYgT0JSQUQKK0HEhklNT1ZJxIYgUkFETUlMQQorQcSGSU1PVknEhiBSQURPVkFOCitBxIZJTU9WScSGIFJBVEtPCitBxIZJTU9WScSGIFNBVkEKK0HEhklNT1ZJxIYgU0FWQQorQcSGSU1PVknEhiBTTEFWS08KK0HEhklNT1ZJxIYgU0xPQk9EQU4KK0HEhklNT1ZJxIYgVEFESUpBCitBxIZJTU9WScSGIFZBU0EKK0HEhklNT1ZJxIYgVkFTSUxJSkUKK0HEhklNUFZJxIYgQUxFS1NBTkRBUgorQcSQQU5TS0kgQlJBTklTTEFWCitBxJBBTlNLSSBJVkFOQQorQcSQQU5TS0kgTUlMSVZPSgorQcSQQU5TS0kgTkFEQQorQcSQQU5TS0kgU1RFVkFOCitBxJBJxIYgRFJBR08KK0HEkEnEhiBPVE8KK0HEkElOIEFEQU0KK0FCQUTFvUnEhiBNQVJLTworQUJBRMW9ScSGIFJBRE1JTEEKK0FCQUTFvUnEhiBTQVZPCitBQkFExb1JxIYgU1RBTktPCitBQkFaQSBWRVNOQQorQUJBWkkgSUxKQVoKK0FCQVpJIFJBTUFEQU4KK0FCQVpPVlNLSSBTVUxUQU4KK0FCRElKRVZJxIYgxaBVS1JJSkEKK0FCRElKRVZJxIYgSVNNRVQKK0FCUkFIQU0gRVZBCitBQlJBSEFNIElSRU5BCitBQlJBSEFNIFBBVkVMCitBQlJBTU9WScSGIERVxaBBTktBCitBQlJBTU9WScSGIExJVklKQQorQUJSQU1PVknEhiBNSUxPUkFECitBQlJBTU9WScSGIE1JUkpBTkEKK0FCUkFNT1ZJxIYgTkFEQQorQUJSQU1PVknEhiBTVEFOQQorQUJSQU1PVknEhiBWQUxFUklKQQorQUJSTEnEhiBOQURBCitBQlQgTEFTTE8KK0FCVS1BQkVEIE1VSEFNRUQKK0FDSUdBTiBKT1ZBTktBCitBQ0lOLVBFVFJPVknEhiBJVkFOS0EKK0FDS0VUQSBEUkFHQU4KK0FDS0VUQSBNSVJKQU5BCitBQ0tFVEEgVElIT01JUgorQUNLT1ZJxIYgTUFSQQorQUTFvUFJUCBNSUxPUkFECitBRMW9QUlQIE1JUkpBTkEKK0FExb1FTU9WScSGIEFMRUtTQU5EQVIKK0FExb1FTU9WScSGIEdSVUpPCitBRMW9ScSGIMW9QVJLTworQUTFvUnEhiBCT8WgS08KK0FExb1JxIYgQlJBTktPCitBRMW9ScSGIERFU0FOS0EKK0FExb1JxIYgRFJBR09MSlVCCitBRMW9ScSGIERVxaBJQ0EKK0FExb1JxIYgR09SQU4KK0FExb1JxIYgSUxJSkEKK0FExb1JxIYgSk9WQU5LQQorQUTFvUnEhiBKT1ZBTgorQUTFvUnEhiBMSlVCT0RSQUcKK0FExb1JxIYgTUlMQU4KK0FExb1JxIYgTUlMRU4KK0FExb1JxIYgTUlMSVNBVgorQUTFvUnEhiBNSUxJVk9KRQorQUTFvUnEhiBNSUxPUkFECitBRMW9ScSGIE5FREVMSktPCitBRMW9ScSGIFBFUk8KK0FExb1JxIYgUkFESVNBVgorQUTFvUnEhiBSQURPTkpBCitBRMW9ScSGIFJBTktPCitBRMW9ScSGIFJBVEtPCitBRMW9ScSGIFNMT0JPREFOCitBRMW9ScSGIFZMQURPCitBRMW9ScSGIFpPUkFOCitBRMW9SUJBQkEgTUlMSUNBCitBRMW9SUJBQkEgTklLT0xBCitBREFNIMWgQVJMT1RBCitBREFNIMSQVVJBCitBREFNIERFTkXFoAorQURBTSBJUk1BCitBREFNIEpPxb1FRgorQURBTSBKT1NJUAorQURBTSBLUlVOSUNBIERSCitBREFNIExBRElTTEFWCitBREFNIExBRElTTEFWCitBREFNIExBU0xPCitBREFNIE9MR0lDQQorQURBTSBUSUJPUiBOT1ZJTkFSCitBREFNT1YgxJBPUsSQRQorQURBTU9WIEJPxb1JREFSCitBREFNT1YgRFJBR0FOCitBREFNT1YgRFXFoEFOCitBREFNT1YgSVZBTgorQURBTU9WIEpPVkFOCitBREFNT1YgSlVMSUFOQQorQURBTU9WIEpVTEtBCitBREFNT1YgSlVMS0EKK0FEQU1PViBLQVRBUklOQQorQURBTU9WIExKVUJBCitBREFNT1YgTUFSSUpBCitBREFNT1YgTUlST1NMQVZBCitBREFNT1YgUkFET1ZBTgorQURBTU9WIFRJQ0EKK0FEQU1PViBWSVRPTUlSCitBREFNT1ZJxIYgxJBVUkEKK0FEQU1PVknEhiBCT8WgS08KK0FEQU1PVknEhiBEUkFHQQorQURBTU9WScSGIERSQUdPTEpVQgorQURBTU9WScSGIERSQUdPTEpVQgorQURBTU9WScSGIERSQUdVVElOCitBREFNT1ZJxIYgRFXFoEFOCitBREFNT1ZJxIYgRFXFoEFOCitBREFNT1ZJxIYgRFXFoEFOCitBREFNT1ZJxIYgRFXFoEFOCitBREFNT1ZJxIYgR09KS08KK0FEQU1PVknEhiBHT0pLTworQURBTU9WScSGIEdPUkFOCitBREFNT1ZJxIYgSUxPTkEKK0FEQU1PVknEhiBJVkFOCitBREFNT1ZJxIYgSkVMQQorQURBTU9WScSGIEpFTEVOQQorQURBTU9WScSGIEpPVkFOS0EKK0FEQU1PVknEhiBKT1ZBTgorQURBTU9WScSGIEtBVEEKK0FEQU1PVknEhiBMQVpBUgorQURBTU9WScSGIExBWkFSCitBREFNT1ZJxIYgTEpJTEpBTkEKK0FEQU1PVknEhiBMSlVCT01JUgorQURBTU9WScSGIE1BUkEKK0FEQU1PVknEhiBNQVJBCitBREFNT1ZJxIYgTUFSQQorQURBTU9WScSGIE1BUklOS08KK0FEQU1PVknEhiBNSUxFTkEKK0FEQU1PVknEhiBNSUxJQ0EKK0FEQU1PVknEhiBNSUxLQU4KK0FEQU1PVknEhiBNSVJLTworQURBTU9WScSGIE1JUktPCitBREFNT1ZJxIYgTU9NxIxJTE8KK0FEQU1PVknEhiBNT03EjElMTworQURBTU9WScSGIE1PTcSMSUxPCitBREFNT1ZJxIYgUkFETUlMQQorQURBTU9WScSGIFJBRE9TQVYKK0FEQU1PVknEhiBTTEFWS08KK0FEQU1PVknEhiBTT05KQQorQURBTU9WScSGIFNUT0pBTktBCitBREFNT1ZJxIYgU1ZFVE9aQVIKK0FEQU1PVknEhiBUT01JU0xBVgorQURBTU9WScSGIFRPTUlTTEFWCitBREFNT1ZJxIYgVkxBRElNSVIKK0FERU1JIEdPUkRBTkEKK0FERU1JIElNRVIKK0FERU1PViBLRU1BTAorQURFTU9WScSGIEpVU1VGCitBREVNT1ZJxIYgT1NNQU4KK0FETEXFoEnEhiBMSlVCSUNBCitBRE5BxJBFVknEhiBTVkVUT1pBUgorQURPUiBKT1ZBTgorQUdBUlNLSSBKQU4gRFIKK0FHQVRJxIYgTUFURQorQUdBVEnEhiBNSVJLTworQUdBVEnEhiBWRUxJTUlSCitBR0JBQkEgQlJBTktBCitBR0JBQkEgREFORQorQUdCQUJBIERBTklDQQorQUdCQUJBIERBTklMTworQUdCQUJBIERVxaBBTgorQUdCQUJBIEpPVkFOCitBR0JBQkEgTkVERUxKS0EKK0FHQkFCQSBORURFTEpLTworQUdCQUJBIE5JS09MQSBEUgorQUdCQUJBIE5JS09MQQorQUdCQUJBIFZJREEKK0FHScSGIE1BUktPCitBR0nEhiBOQURBCitBR0nEhiBOSUtPTEFKCitBR0nEhiBOSUtPTEEKK0FHScSGIFNMT0JPREFOIERJUEwgT0VDCitBR0nEhiBTUkJJU0xBVgorQUdJxIYgVkxBRElNSVIKK0FHTyBNQVJLTworQUdPIFpPUklDQQorQUdPxIwgRFXFoEFOCitBR0/FoFRPTiBCRUxBCitBR0/FoFRPTiBGRVJFTkMKK0FHT8WgVE9OIEtBUk9MSgorQUdPxaBUT04gTEFTTE8KK0FHT8WgVE9OIE1JSEFMSgorQUdPxaBUT04gVkVSQQorQUdSQU1PVknEhiBERVNBTktBCitBR1JBTU9WScSGIFJBREUKK0FHVcWgRVZJxIYgU0xPQk9EQU5LQQorQUdVQ0nEhiBPTEdJQ0EKK0FITUVEIEVMRVoKK0FITUVUT1YgxaBVS1JJCitBSE1FVE9WScSGIEtBUkxPCitBSE1FVE9WScSGIFNPRklKQQorQUhNRVRPVknEhiBaTEFUS08KK0FJUkFMREkgQk/FvUlEQVIKK0FKIEJSQU5JU0xBVgorQUogVkVTTkEKK0FKQU5PVknEhiBTQUxLTworQUpDRVYgRFXFoEFOCitBSkTFvUFOT1ZJxIYgQU5BU1RBU0lKQSBEUiBMRUtBUgorQUpEQVJJxIYgUkFET1NMQVYKK0FKREVSIMW9RUxKS08KK0FKREVSIEJPxaBLTworQUpERVIgREFOSUNBCitBSkRJxIYgxJBPUsSQRQorQUpESU5JIFNBQlJJSkEKK0FKRElOT1ZJxIYgTklLT0xBCitBSkRVSyBKT1NJTQorQUpEVUsgTUFSS08KK0FKRFVLIE1JTElDQQorQUpEVUsgVE/FoEEKK0FKRFVLT1ZJxIYgR09KS08KK0FKRFVLT1ZJxIYgTEpJTEpBTkEKK0FKRFVLT1ZJxIYgTUlMQU4KK0FKRFVLT1ZJxIYgU09GSUpBCitBSkdFTk1BSFQgTUFSSU5BCitBSktVTknEhiBBRElMCitBSktVTknEhiBORVpJUgorQUpSQU5PVknEhiBKVVNVRgorQUpUScSGIFNWRVRJU0xBVgorQUpUTEJFWiBNSUpBVAorQUpUTEJFWiBNSUpBVAorQUpWQVpPVknEhiBBxIZJRgorQUpWQVpPVknEhiBBU0xBTgorQUpWQVpPVknEhiBFU01BCitBSlZBWk9WScSGIEZBSUQKK0FKVklMRVIgU1RFVkFOCitBSlpFTkJFUkdFUiBCRUxBCitBS8WgQU1PVknEhiBQTEFWxaBBCitBS0lLIERSQUdJQ0EKK0FLSUsgRFXFoEFOCitBS0lOIERSQUdBCitBS0lOIFNPRklKQQorQUtPTsSMScSGIFpPUkFOCitBS1JBUCBGSUxJUCBQUk9GCitBS1JBUE9WScSGIE1JUk9TTEFWCitBS1NFTlRJSkVWScSGIEpPVkFOCitBS1NFTlRJSkVWScSGIE5JS09MQSBTVURJSkEKK0FLU0VOVElKRVZJxIYgU1RPSkFESU4KK0FLU0lOIEJSQU5JU0xBVgorQUtTSU4gTUlMT1ZBTgorQUtTSU4gVkxBRElNSVIgRFIgSU5HCitBTEHEkEkgxaBBTkRPUgorQUxBQkHFoE9WU0tJIEdSVUpBCitBTEFCQcWgT1ZTS0kgSUJSQUhJTQorQUxBQlVSScSGIFBBVkxFCitBTEFCVVJJxIYgVEVPRE9SIERJUEwgSU5HCitBTEFExb1JxIYgxJBPUsSQTworQUxBREnEhiBBTEVLU0FOREFSCitBTEFEScSGIEFMRUtTQU5EQVIKK0FMQURJxIYgQlJBTklTTEFWQQorQUxBREnEhiBJREEKK0FMQURJxIYgU1RFVkFOCitBTEFHScSGIERVxaBBTgorQUxBR0nEhiBNVUpPCitBTEFHScSGIE5BREEKK0FMQUdJxIYgUkFET1NMQVYKK0FMQUdJxIYgVkVSQQorQUxBSUNBIFJBRE9KS0EKK0FMQUpJQ0EgQlJBTktPCitBTEFKSUNBIEpPVk8KK0FMQU4gVkVSQQorQUxBTk9WIFJVxb1JQ0EKK0FMQVJHScSGIEpFTEVOQQorQUxBUkdJxIYgTUlMSUNBCitBTEFSR0nEhiBQRVRBUgorQUxBUkdJxIYgUkFERQorQUxBUkdJxIYgUkFOS0EKK0FMQVJHScSGIFRJTUEKK0FMQVNPViBEUkFHT1NMQVYKK0FMQVNPViBMQVpBUiBESVBMIElORworQUxBVkFOSkEgTUlSSkFOQQorQUxCSUpBTknEhiBCT1JPCitBTEJJSkFOScSGIERSQUdVVElOCitBTEJPVCBJTElKQQorQUxCUkVIVCBKQU5PxaAKK0FMQlJFSFQgTUFSSUpBCitBTEJSRUhUIE1BUklKQQorQUxCVUxKIERJVk5BCitBTEJVTEogR09SREFOQQorQUxCVUxKIFZFU0VMSU4KK0FMQlVMSiBWT0pJU0xBVktBCitBTEVLU0FOREVSIEFOQQorQUxFS1NBTkRFUiBSVURPTEYKK0FMRUtTQU5EUknEhiBNSUxFU0EgRFIKK0FMRUtTQU5EUk9WIFNMQVbEjEEKK0FMRUtTQU5EUk9WScSGIERSQUdBTgorQUxFS1NBTkRST1ZJxIYgRFXFoEFOCitBTEVLU0kgU1RFVkFOCitBTEVLU0nEhiDEjEFTTEFWCitBTEVLU0nEhiDEjEVET01JUgorQUxFS1NJxIYgxb1JVk9NSVIKK0FMRUtTScSGIMSQT1LEkEUKK0FMRUtTScSGIMSQVVJBCitBTEVLU0nEhiBBQ0EKK0FMRUtTScSGIEFEQU0KK0FMRUtTScSGIEFSU0EKK0FMRUtTScSGIEJJU0VSS0EKK0FMRUtTScSGIEJPxb1JREFSCitBTEVLU0nEhiBCT8W9SURBUgorQUxFS1NJxIYgQk9HREFOCitBTEVLU0nEhiBCUkFOSVNMQVYKK0FMRUtTScSGIEJSQU5LTworQUxFS1NJxIYgQlJBTktPCitBTEVLU0nEhiBCUkFOS08KK0FMRUtTScSGIEJVRElNSVIKK0FMRUtTScSGIERBTklDQQorQUxFS1NJxIYgREFSSU5LQQorQUxFS1NJxIYgRFJBR0FOCitBTEVLU0nEhiBEUkFHQQorQUxFS1NJxIYgRFJBR09MSlVCCitBTEVLU0nEhiBEUkFHT01JUgorQUxFS1NJxIYgRFJBR09TTEFWIERSCitBTEVLU0nEhiBEVcWgQU4KK0FMRUtTScSGIERVxaBBTgorQUxFS1NJxIYgRVZJQ0EKK0FMRUtTScSGIEdPSktPCitBTEVLU0nEhiBHT1JBTgorQUxFS1NJxIYgR09SREFOQQorQUxFS1NJxIYtR1JJU0VSIE5JS09MQQorQUxFS1NJxIYgSUxJTktBCitBTEVLU0nEhiBJVkFOCitBTEVLU0nEhiBKRUxFTkEKK0FMRUtTScSGIEpFTElDQQorQUxFS1NJxIYgSkVMSUNBCitBTEVLU0nEhiBKT1NJUAorQUxFS1NJxIYgSk9WQU4KK0FMRUtTScSGIEpPVk8KK0FMRUtTScSGIEtBVEEKK0FMRUtTScSGIEtBVElDQQorQUxFS1NJxIYgS0FUSUNBCitBTEVLU0nEhiBLT1NBCitBTEVLU0nEhiBLT1NUQQorQUxFS1NJxIYgS09TVEEKK0FMRUtTScSGIExFUE9TQVZBCitBTEVLU0nEhiBMRVBPU0FWQQorQUxFS1NJxIYgTEpJTEpBTkEKK0FMRUtTScSGIExKSUxKQU5BCitBTEVLU0nEhiBMSlVCScWgQQorQUxFS1NJxIYgTEpVVE9NSVIKK0FMRUtTScSGIE1BUklOCitBTEVLU0nEhiBNSUxBTktBCitBTEVLU0nEhiBNSUxBTgorQUxFS1NJxIYgTUlMQU4KK0FMRUtTScSGIE1JTEFOCitBTEVLU0nEhiBNSUxFTkEKK0FMRUtTScSGIE1JTElOS0EKK0FMRUtTScSGIE1JTElWT0oKK0FMRUtTScSGIE1JTElWT0oKK0FMRUtTScSGIE1JTE/FoAorQUxFS1NJxIYgTUlMT8WgCitBTEVLU0nEhiBNSUxPxaAKK0FMRUtTScSGIE1JTE9KRQorQUxFS1NJxIYgTUlMT1JBRAorQUxFS1NJxIYgTUlMT1ZBTgorQUxFS1NJxIYgTUlPRFJBRworQUxFS1NJxIYgTUlPRFJBRworQUxFS1NJxIYgTUlPRFJBRworQUxFS1NJxIYgTUlSSkFOQQorQUxFS1NJxIYgTUlSS08KK0FMRUtTScSGIE1JUk9TTEFWCitBTEVLU0nEhiBNT03EjElMTworQUxFS1NJxIYgTU9NxIxJTE8KK0FMRUtTScSGIE1PTUlSCitBTEVLU0nEhiBOQURBCitBTEVLU0nEhiBOQVRBTElKQQorQUxFS1NJxIYgTkVCT0rFoEEKK0FMRUtTScSGIE5JS09MQQorQUxFS1NJxIYgTklLT0xBCitBTEVLU0nEhiBQQVVMSU5BCitBTEVLU0nEhiBQQVZMRQorQUxFS1NJxIYgUEVUQVIKK0FMRUtTScSGIFBFVEFSCitBTEVLU0nEhiBQRVRBUgorQUxFS1NJxIYgUFJFRFJBRworQUxFS1NJxIYgUkFERQorQUxFS1NJxIYgUkFETUlMQQorQUxFS1NJxIYgUkFET01JUgorQUxFS1NJxIYgUkFKS08KK0FMRUtTScSGIFJBVEtPCitBTEVLU0nEhiBSQVRLTworQUxFS1NJxIYgUklTVE8KK0FMRUtTScSGIFNBVk8KK0FMRUtTScSGIFNMQVZOQQorQUxFS1NJxIYgU01JTEpBCitBTEVLU0nEhiBTVEVWQU4KK0FMRUtTScSGIFNURVZBTgorQUxFS1NJxIYgVkFTQQorQUxFS1NJxIYgVkVSQQorQUxFS1NJxIYgVkVSQQorQUxFS1NJxIYgVkVTTkEKK0FMRUtTScSGIFZJVE9NSVIKK0FMRUtTScSGIFZMQVNUSU1JUgorQUxFS1NJxIYgVk9KSVNMQVYKK0FMRUtTScSGIFpEUkFWRU5LQQorQUxFS1NJxIYgWkRSQVZLTworQUxFS1NJxIYgWkxBVElCT1IKK0FMRUtTScSGIFpPUkFOCitBTEVLU0lKRVZJxIYgQk9HREFOCitBTEVLU0lKRVZJxIYgQk9SQQorQUxFS1NJSkVWScSGIElTSURPUgorQUxFS1NJSkVWScSGIEpPVkFOCitBTEVLU0lKRVZJxIYgTUFSSUpBCitBTEVLU09WIEdFT1JHSQorQUxFS1NPViBNSUxVVElOCitBTEVLU09WIFNJTUVPTgorQUxFS1NPViBaT1JBTgorQUxFS1NPVlNLSSBNSUxFCitBTEVLU09WU0tJIFNSQk9MSlVCCitBTEVNUEnEhiBTQVZPCitBTEVNUElKRVZJxIYgWk9SQU4KK0FMRU1QSUpFVknEhiBaT1JBTgorQUxFTkRFUiDFoEVGSUsKK0FMSSBKVUxJU1RBTgorQUxJxaBJxIYgQkVTSU0KK0FMScWgScSGIE5JSkFaCitBTEnFoEnEhiBSRUTFvUVQCitBTEnFoEnEhiBWQVNWSUpBCitBTEnEkFVLScSGIElMSUpBCitBTElCQcWgScSGIEhBTUlECitBTElKQSBBQkRJUkFITUFOCitBTElKQSBJWkVUCitBTElKRVZJxIYgTkVaSVIKK0FMSUpFVknEhiBTQURSSUpBCitBTElMT1ZJxIYgVklOS08KK0FMSU1QScSGIMW9SVZLTworQUxJTVBJxIYgQUxFS1NBTkRBUgorQUxJTVBJxIYgQkFSQkFSQQorQUxJTVBJxIYgQk9HT01JUgorQUxJTVBJxIYgQk9SSVZPSkUKK0FMSU1QScSGIERSQUdBTgorQUxJTVBJxIYgRFJBR0lDQQorQUxJTVBJxIYgSkVMQQorQUxJTVBJxIYgSk9WQU4KK0FMSU1QScSGIExKVUJJQ0EKK0FMSU1QScSGIE1PTcSMSUxPCitBTElNUEnEhiBTTEFWS0EKK0FMSU1QScSGIFNMQVZLTworQUxJTVBJxIYgU1RFVkFOCitBTElNUEnEhiBUSUhPTUlSCitBTElNUEnEhiBUT01JU0xBVgorQUxJTVBJxIYgVk9KSVNMQVYKK0FMSU1QSUpFVknEhiDEkE9SxJBFCitBTElNUElKRVZJxIYgRElNSVRSSUpFCitBTElNUElKRVZJxIYgSk9WQU4KK0FMSU1QSUpFVknEhiBKT1ZBTgorQUxJTVBJSkVWScSGIFZFU0VMSU5LQQorQUxJT1YgSFVTRUlOCitBTElPViBPTUVSCitBTEpJIEFKUkFESU4KK0FMSkkgTUFLU1VUCitBTEpJxIYgS0FUQVJJTkEKK0FMSknEhiBSQU1PCitBTEpJSlVQSSDEjEVSSU0KK0FMS0nEhiBTVEVWQU4KK0FMS0nEhiBWTEFESU1JUgorQUxNQcWgSSBFVEVMCitBTE1BxaBJIE1BUknFoEtBCitBTE1BxaBJIE1BVElKQQorQUxNQcWgSSBTQU1VRUwKK0FMTUHFvUFOIFNMQVZLTyBOT1ZJTkFSCitBTE9SScSGIERSQUdPTUlSS0EKK0FMT1JJxIYgSUxJSkEKK0FMVEVST1YgQU5BCitBTFRLT1JOIE1BTFZJTkEKK0FMVkFExb1JTiBEUkFHVVRJTgorQUxWSVJPVknEhiBEUkFHT1JBRAorQUxWSVJPVknEhiBNSU9EUkFHCitBTUFNT1ZJxIYgRFXFoEFOCitBTUFNT1ZJxIYgTUlMRVZBCitBTUJBUkTFvUlKRVYgSFJJU1RPCitBTUJPIElMSUpBCitBTUJST1pJxIYgUkFTVEtPCitBTUJSVcWgIEFUSUxBCitBTUJSVcWgScSGIE1BR0RBCitBTUJSVVNPViBKT1ZBTgorQU1FVE9WIE9TTUFOCitBTUVUT1ZJxIYgxJBPUsSQRQorQU1FVE9WScSGIMSQT1LEkE8KK0FNRVRPVknEhiDEkFVSTworQU1FVE9WScSGIEJVRElNSVIKK0FNRVRPVknEhiBKRUxFTkEKK0FNRVRPVknEhiBKT1ZBTgorQU1FVE9WScSGIEtBVElDQQorQU1FVE9WScSGIExBWkFSCitBTUVUT1ZJxIYgTEFaQVIKK0FNRVRPVknEhiBNQVJLTworQU1FVE9WScSGIE1JTEFESU4KK0FNRVRPVknEhiBNSUxPUkFECitBTUVUT1ZJxIYgTUlSS08KK0FNRVRPVknEhiBNT03EjElMTworQU1FVE9WScSGIFJBSktPCitBTUVUT1ZJxIYgUkFUS08KK0FNRVRPVknEhiBSVVNNSVJBCitBTUVUT1ZJxIYgU09GSUpBCitBTUVUT1ZJxIYgVk9KSU4KK0FNScW9ScSGIERBTklDQQorQU1Jxb1JxIYgTUlST1NMQVYKK0FNScW9ScSGIFRFT0RPUkEKK0FOxIxJxIYgQUxFS1NBTkRSQQorQU7EjEnEhiBNSUxBTgorQU7EjEnEhiBORVZFTktBIERSCitBTsSQRUxJxIYgQU7EkEVMS08KK0FOxJBFTEnEhiBBTkRSSUpBCitBTsSQRUxJxIYgQU5JQ0EKK0FOxJBFTEnEhiBCSUxKQU5BCitBTsSQRUxJxIYgQkxBR0nFoEEKK0FOxJBFTEnEhiBCT8W9SURBUiBEUgorQU7EkEVMScSGIEJPUklWT0pFCitBTsSQRUxJxIYgQk9SSVZPSkUKK0FOxJBFTEnEhiBCUkFOSVNMQVYKK0FOxJBFTEnEhiBEQVJJTktBCitBTsSQRUxJxIYgRFJBR0lDQQorQU7EkEVMScSGIERSQUdPTUlSCitBTsSQRUxJxIYgRFXFoEFOS0EKK0FOxJBFTEnEhiBHT1JBTgorQU7EkEVMScSGIElMSUpBCitBTsSQRUxJxIYgSUxJSkEKK0FOxJBFTEnEhiBNSUxFTktPCitBTsSQRUxJxIYgTUlMSVZPSkUKK0FOxJBFTEnEhiBNSUxPUkFECitBTsSQRUxJxIYgTUlMT1JBRAorQU7EkEVMScSGIE1JUkpBTkEKK0FOxJBFTEnEhiBNSVJKQU5BCitBTsSQRUxJxIYgTUlUQVIKK0FOxJBFTEnEhiBOSUtPTEEKK0FOxJBFTEnEhiBSQURNSUxBCitBTsSQRUxJxIYgUkFET0pJQ0EKK0FOxJBFTEnEhiBSQURPU0xBVgorQU7EkEVMScSGIFNBVkEKK0FOxJBFTEnEhiBTTE9CT0RBTiBEUiBMRUtBUgorQU7EkEVMScSGIFNMT0JPREFOCitBTsSQRUxJxIYgU0xPQk9EQU4KK0FOxJBFTEnEhiBTVEVWQU4KK0FOxJBFTEnEhiBWQVNBCitBTsSQRUxJxIYgVkFTTworQU7EkEVMScSGIFZFTEpLTworQU7EkEVMScSGIFZFU0VMSU4KK0FOxJBFTEnEhiBWRVNOQQorQU7EkEVMScSGIFZMQURBCitBTsSQRUxJxIYgVk9KSVNMQVYKK0FOxJBFTEtPVknEhiBBTsSQRUxLTworQU7EkEVMS09WScSGIEJPxb1JREFSCitBTsSQRUxLT1ZJxIYgRFJBR09NSVIKK0FOxJBFTEtPVknEhi1EVURJxIYgWkxBVEEKK0FOxJBFTEtPVknEhiBKRUxJQ0EKK0FOxJBFTEtPVknEhiBKT1ZBTgorQU7EkEVMS09WScSGIExJRElKQQorQU7EkEVMS09WScSGIExKVUJJxaBBCitBTsSQRUxLT1ZJxIYgTUlMQU4KK0FOxJBFTEtPVknEhiBNSUxPxaAKK0FOxJBFTEtPVknEhiBNSUxPUkFECitBTsSQRUxLT1ZJxIYgTUlST1NMQVYKK0FOxJBFTEtPVknEhiBNSVJPU0xBVgorQU7EkEVMS09WScSGIE5BVEHFoEEKK0FOxJBFTEtPVknEhiBQRVRBUgorQU7EkEVMS09WScSGIFBSRURSQUcKK0FOxJBFTEtPVknEhiBSQURPTUlSCitBTsSQRUxLT1ZJxIYgUk9CRVJUCitBTsSQRUxLT1ZJxIYgU0lNQQorQU7EkEVMS09WScSGIFNMT0JPREFOCitBTsSQRUxLT1ZJxIYgU1RBTklNSVIKK0FOxJBFTEtPVknEhiBTVEFOS08KK0FOxJBFTEtPVknEhiBTVEVWQU4KK0FOxJBFTEtPVknEhiBTVE9KQU4KK0FOxJBFTEtPVknEhiBTVkVUSVNMQVYKK0FOxJBFTEtPVknEhiBTVkVUSVNMQVYKK0FOxJBFTEtPVknEhiBTVkVUT01JUgorQU7EkEVMS09WScSGIFZBTEVSSUpBCitBTsSQRUxLT1ZJxIYgVkVSQQorQU7EkEVMS09WScSGIFZJTktPCitBTsSQRUxLT1ZJxIYgVklOS08KK0FOxJBFTEtPVknEhiBWSU5LTworQU7EkEVMS09WScSGIFZVS0FESU4KK0FOxJBFTEtPVknEhiBaT1JBTgorQU7EkEVMS09WScSGIFpPUkFOCitBTsSQRUxLT1ZJxIYgWk9SQQorQU7EkEVMT1ZJxIYgTEpVQknFoEEKK0FOxJBFTE9WScSGIFZFUklDQQorQU7EkEVMT1ZTS0kgxJBPUsSQRQorQU7EkEnEhiBTVEVWQU4KK0FOxJBVxaBJxIYgxb1BUktPCitBTsSQVcWgScSGIEpFTElTQVZLQQorQU7EkFXFoEnEhiBNSUxPUkFECitBTsSQVcWgScSGIFNMT0JPREFOCitBTkFTVEFTSUpFVknEhiBEVcWgQU4KK0FOQVNUQVNJSkVWScSGIEpVTEtJQ0EKK0FOQVNUQVNJSkVWScSGIFpPUklDQQorQU5BU1RBU0lKRVZJxIYgWk9SSUNBCitBTkFTVEFTT1YgTUFSS08KK0FOQVNUQVNPViBOSUtPTEEKK0FOQVNUQVNPVlNLSSBBTEVLU0FOREFSCitBTkFVIEdBQlJJRUxBCitBTkFVIFNURVZBTgorQU5EQUJBSyBNQVJLTworQU5EQUJBS0EgQU5URQorQU5EQUJBS0EgU0xBVklDQQorQU5ERVIgSU1SRQorQU5ERVJMT04gU1RFVklDQQorQU5ERVNFTEnEhiDFoFRFRklDQQorQU5ERVZTS0kgUkFERQorQU5EScSGIFNWRVRPWkFSCitBTkRJxIYgVkxBRElNSVIKK0FORE9OSUFESVMgTUlMSUNBCitBTkRPTk9WIERJTUlUUklKRQorQU5ET05PViBORU5BRAorQU5ET05PViBaT1JJQ0EKK0FORE9OT1ZJxIYgRElNSVRSSUpFCitBTkRSQcWgSUsgUEFWRUwKK0FORFJFQVRBIFNMQVZLTworQU5EUkVJxIYgUkFET1ZBTgorQU5EUkVKRVYgSEVMRU5BCitBTkRSRUpFViBNSUhBSkxPCitBTkRSRUpFVknEhiBCT0dPU0FWCitBTkRSRUpFVknEhiBCT1JJVk9KRQorQU5EUkVKRVZJxIYgR1JBRElNSVIKK0FORFJFSkVWScSGIElWQU4KK0FORFJFSkVWScSGIE1BUktPCitBTkRSRUpFVknEhiBNSUxBTgorQU5EUkVKRVZJxIYgTUlST1NMQVYKK0FORFJFSkVWScSGIFNMT0JPREFOCitBTkRSRUpFVknEhiBURU9ET1IKK0FORFJFSkVWScSGIFZVS0HFoElOIERJUEwgSU5HCitBTkRSRUpJxIYgxb1BUktPCitBTkRSRUpJxIYgQk9SSVNMQVYKK0FORFJFSknEhiBEUkFHQU4KK0FORFJFSknEhiBSQURPU0xBVgorQU5EUkVKScSGIFNMQVZPTEpVQgorQU5EUkVKScSGIFNSRVRFTgorQU5EUkVKScSGIFZFUkEKK0FORFJFSknEhiBaT1JBTgorQU5EUkVKScSGIFpPUklDQQorQU5EUkVTIEFOxJBFTEtPCitBTkRSScSMRUsgQU5BCitBTkRSScSMRUsgTEFKT8WgCitBTkRSScSMRUsgTUFHREFMRU5BCitBTkRSScSMRUsgUEFWQU8KK0FORFJJxIxFSyBQQVZMRQorQU5EUknEhiDFvUVMSktBCitBTkRSScSGIMW9SUtBCitBTkRSScSGIMW9SVZBTgorQU5EUknEhiDEkE9SxJBFCitBTkRSScSGIMSQVVLEkElOQQorQU5EUknEhiBBTEVLU0FOREFSCitBTkRSScSGIEJPR09MSlVCCitBTkRSScSGIEJPSkFOCitBTkRSScSGIEJPU0lMSktBCitBTkRSScSGIEJSQU5JTUlSCitBTkRSScSGIEJSQU5JU0xBVgorQU5EUknEhiBEQVJJTktBCitBTkRSScSGIERPU1RBCitBTkRSScSGIERSQUdBTgorQU5EUknEhiBEUkFHT0xKVUIKK0FORFJJxIYgRFXFoEFOCitBTkRSScSGIERVxaBBTgorQU5EUknEhiBEVcWgQU4KK0FORFJJxIYgRFXFoEFOCitBTkRSScSGIERVxaBBTgorQU5EUknEhiBGUklEQQorQU5EUknEhiBJTElKQQorQU5EUknEhiBKRUxFTkEKK0FORFJJxIYgSkVMSVNBVkVUQQorQU5EUknEhiBKT1ZJQ0EKK0FORFJJxIYtS09WQcSMRVZJxIYgT0xJVkVSQQorQU5EUknEhiBMQVpBUgorQU5EUknEhiBMQVpBCitBTkRSScSGIExKSUxKQU5BCitBTkRSScSGIExKSUxKQU5BCitBTkRSScSGIExVRE1JTEEKK0FORFJJxIYgTUlMRQorQU5EUknEhiBNSUxPxaAKK0FORFJJxIYgTUlMT8WgCitBTkRSScSGIE5FQk9KxaBBCitBTkRSScSGIE5FU1RPUgorQU5EUknEhiBOSUtPTEEKK0FORFJJxIYgUEVSSUNBCitBTkRSScSGIFBFVEFSCitBTkRSScSGIFJBRElTQVYKK0FORFJJxIYgUkFESVNMQVYKK0FORFJJxIYgU0FWQQorQU5EUknEhiBTSU1BCitBTkRSScSGIFNMQVZLQQorQU5EUknEhiBTTEFWS0EKK0FORFJJxIYgU0xBVk9MSlVCCitBTkRSScSGIFNMT0JPREFOCitBTkRSScSGIFNURVZBTgorQU5EUknEhiBTVEVWQU4KK0FORFJJxIYgVE9ET1IKK0FORFJJxIYgVE9NSVNMQVYKK0FORFJJxIYgVkVSSUNBCitBTkRSScSGIFZMQURBCitBTkRSScSGIFZMQURJTUlSQQorQU5EUknEhiBWVUtPTUFOCitBTkRSScSGIFpPUkEKK0FORFJJR0EgQUxFS1NBTkRBUgorQU5EUklKQcWgRVYgS09TQU5BCitBTkRSSUpBxaBFViBSVcW9SUNBCitBTkRSSUpBxaBFVknEhiDFvUVMSktPCitBTkRSSUpBxaBFVknEhiBBTktBCitBTkRSSUpBxaBFVknEhiBCUkFOS08KK0FORFJJSkHFoEVWScSGIEpFTEVOQQorQU5EUklKQcWgRVZJxIYgUkFET1ZBTgorQU5EUklKRVZJxIYgxb1JVkEKK0FORFJJSkVWScSGIEpPVkFOCitBTkRSSU4gQU7EkEVMS0EKK0FORFJJTiBJU0lET1IKK0FORFJJTiBLQVRJQ0EKK0FORFJJTiBNSUxBRElOS0EKK0FORFJJTiBOQURBCitBTkRST0NLSSBQQUwgRElQTCBJTkcKK0FORFVMQUpFVknEhiBTVEVWTworQU5HRUJSQU5UIElMT05LQQorQU5HRUxFU0tJIFZBTkdFTAorQU5HRUxPViBEVcWgQU4KK0FOR0VMT1YgU1JFxIZLTworQU5HRUxPVlNLSSBEVcWgQU4KK0FOR0VMT1ZTS0kgSUxJSkEKK0FOR0VMT1ZTS0kgSkFORFJFCitBTkdFTE9WU0tJIE1JVFJFCitBTkdFTE9WU0tJIFRPTU8KK0FOScSMScSGIMW9SVZPVEEKK0FOScSMScSGIEJSQU5JU0xBVgorQU5JxIxJxIYgRFJBR0FOCitBTknEjEnEhiBEVcWgQU4gRElQTCBPRUMKK0FOScSMScSGIEZJTElQCitBTknEjEnEhiBJTElKQQorQU5JxIxJxIYgS09WSU5LQQorQU5JxIxJxIYgTUlMRU5BIERJUEwgRUNDCitBTknEjEnEhiBNSVJLTworQU5JxIxJxIYgTUlSTworQU5JxIxJxIYgTUlSTworQU5JxIxJxIYgTkVOQUQKK0FOScSMScSGIE9TVE9KQQorQU5JxIxJxIYgUFJFRFJBRworQU5JxIxJxIYgU1RBS0EKK0FOScSMScSGIFNUT0pBTktBCitBTknEjEnEhiBUT0RPUgorQU5JxIxJxIYgWkRSQVZLTworQU5JxIxJTiDFvUFSS08KK0FOScSMSU4gQlJBTklTTEFWCitBTknFoEnEhiBKQVNNSU5LQQorQU5JxIYgRFXFoEFOCitBTknEhiBTTE9CT0RBTgorQU5JxIYgWk9SQQorQU5JS0EgR0FWUklMTworQU5JS0EgSlVMSUpFIFBST0ZFU09SCitBTklUScSGIEnFoFRWQU4KK0FOS0nEhiBNQVJKQU4KK0FOS0nEhiBQRVJJQ0EKK0FOT0rEjEnEhiDFvUVMSktPCitBTk9KxIxJxIYgTEFaQVIKK0FOT0rEjEnEhiBNSUxBTgorQU5PSsSMScSGIFJBRElWT0oKK0FOT0rEjEnEhiBSQURJVk9KCitBTk9KxIxJxIYgU1BBU09KRQorQU5PSsSMScSGLVNUT0pLT1ZJxIYgSkFTTUlOS0EKK0FOVEFMIEFMRUtTQU5EQVIKK0FOVEFMIFZFUk9OQQorQU5UQU5BU0nEhiBTVEFOS08KK0FOVEFOQVNJSkVWScSGIEJPUkEKK0FOVEVMSkVWScSGIEFMRUtTQU5EQVIKK0FOVEnEhiDEkE9LQQorQU5UScSGIMSQT1LEkEUKK0FOVEnEhiDEkE9SxJBFCitBTlRJxIYgQUxFS1NBTkRBUgorQU5UScSGIEFOR0VMSU5BCitBTlRJxIYgQk/FoEtPCitBTlRJxIYgQk/FvUlEQVIgRFIgU1RPTUFUT0xPRworQU5UScSGIEJPxb1JREFSCitBTlRJxIYgQlJBTktPCitBTlRJxIYgQlJBVElTTEFWCitBTlRJxIYgRElNSVRSSUpFCitBTlRJxIYgRFJBR0FOCitBTlRJxIYgRFJBR0FOCitBTlRJxIYgRFJBR0nFoEEKK0FOVEnEhiBEVcWgQU5LQQorQU5UScSGIERVxaBBTktBCitBTlRJxIYgSlVMS0EKK0FOVEnEhiBLT1NUQQorQU5UScSGIExKVUJJxaBBCitBTlRJxIYgTFVLQQorQU5UScSGIE1BUklDQQorQU5UScSGIE1BUklKQQorQU5UScSGIE1JTEFOCitBTlRJxIYgTUlMQU4KK0FOVEnEhiBNSUxBTgorQU5UScSGIE1JTEFOCitBTlRJxIYgTUlMSVZPSgorQU5UScSGIE1JTFVUSU4KK0FOVEnEhiBNSU9EUkFHCitBTlRJxIYgTUlSS08KK0FOVEnEhiBNSVJLTworQU5UScSGIE5FTkFECitBTlRJxIYgTkVWRU5BCitBTlRJxIYgT0xHQQorQU5UScSGIFBBVkxFCitBTlRJxIYgUEFWTEUKK0FOVEnEhiBQQVZMRQorQU5UScSGIFBFVEFSCitBTlRJxIYgUkFET0pLTworQU5UScSGIFJBRE9NSVIKK0FOVEnEhiBSQURPVkFOCitBTlRJxIYgU0xBxJBBTkEKK0FOVEnEhiBTTEFWSUNBCitBTlRJxIYgU0xPQk9EQU4KK0FOVEnEhiBTTUlMSkEKK0FOVEnEhiBTTUlMSkEKK0FOVEnEhiBTT0ZJSkEKK0FOVEnEhiBTVEFOxIxBCitBTlRJxIYgU1RBTklTTEFWCitBTlRJxIYgU1RBTk9KRQorQU5UScSGIFNUT0pBTgorQU5UScSGIFNWRVRJU0xBVgorQU5UScSGIFNWRVRMQU5BCitBTlRJxIYgU1ZFVE9WSUQKK0FOVEnEhiBWRVJJQ0EKK0FOVEnEhiBWVUtBxaBJTgorQU5UScSGIFpBR09SS0EKK0FOVEnEhiBaTEFUQU4KK0FOVElOIElWQU5LQQorQU5USU4gVkVMRU1JUgorQU5UT0xPVknEhiBJVkFOCitBTlRPTknEhiDFvUlWS08gRElQTCBJTkcKK0FOVE9OScSGIMW9SVZLTworQU5UT05JxIYgxJBPUsSQRQorQU5UT05JxIYgQk9SSVZPSgorQU5UT05JxIYgQlJBTktPCitBTlRPTknEhiBET0JSSVZPSgorQU5UT05JxIYgRFJBR0FOCitBTlRPTknEhiBEUkFHQU4KK0FOVE9OScSGIEdPUkRBTkEKK0FOVE9OScSGIEpBRFJBTktBCitBTlRPTknEhiBKQVNNSU5LQQorQU5UT05JxIYgSkVMRU5BCitBTlRPTknEhiBMSlVCSUNBCitBTlRPTknEhiBNQVJJSkEKK0FOVE9OScSGIE1JTEFOCitBTlRPTknEhiBNSUxBTgorQU5UT05JxIYgTUlMQU4KK0FOVE9OScSGIE1JTElWT0oKK0FOVE9OScSGIE5FQk9KxaBBIERJUEwgSU5HCitBTlRPTknEhiBSQURJU0FWCitBTlRPTknEhiBSQU5LTworQU5UT05JxIYgUkFUS08KK0FOVE9OScSGIFNJTUEKK0FOVE9OScSGIFNMQVZJQ0EKK0FOVE9OScSGIFNMT0JPREFOCitBTlRPTknEhiBTTE9CT0RBTgorQU5UT05JxIYgU1RFVkFOCitBTlRPTknEhiBaT1JLQQorQU5UT05JSkVWScSGIEFMRUtTQU5EQVIKK0FOVE9OSUpFVknEhiBCSUxKQU5BCitBTlRPTklKRVZJxIYgQk/FvVVSCitBTlRPTklKRVZJxIYgQlJBTktPCitBTlRPTklKRVZJxIYgREFNTkpBTgorQU5UT05JSkVWScSGIERVxaBBTiBEUgorQU5UT05JSkVWScSGIERVxaBBTgorQU5UT05JSkVWScSGIExKSUxKQQorQU5UT05JSkVWScSGIFBFVEFSCitBTlRPTklKRVZJxIYgU1RFVkEKK0FOVE9OSU5JIE1BUklKQQorQU5UT05PVknEhiBNSUxJVk9KCitBTlRPVknEhiBMSlVCSUNBCitBTlRVTiBNSUxPxaAKK0FOVFVOT1ZJxIYgQU5EUklKQQorQU5UVU5PVknEhiBCT0dEQU4KK0FOVFVOT1ZJxIYgR0laRUxBCitBTlRVTk9WScSGIExBWkFSCitBTlRVTk9WScSGIE1MQURFTgorQU5UVU5PVknEhiBNT03EjElMTworQU5UVU5PVknEhiBORURBCitBTlRVTk9WScSGIFRPTUlTTEFWCitBTlXEjElOIE5FTkFECitBTlVLScSGIEtPU1RBCitBUEFSQUMgU1ZFVE9aQVIKK0FQQVRPVknEhiBKT1ZBTgorQVBBVE9WScSGIExBWkFSCitBUEFUT1ZJxIYgTklLT0xBCitBUEFUT1ZJxIYgU0FWQQorQVBFUkxJxIYgVk9KSU4KK0FQScSGIMSQT1LEkEUKK0FQScSGIEFOS0lDQQorQVBJxIYgQlJBTktPIERSIFZFVEVSSU5FCitBUEnEhiBCUkFOS08KK0FQScSGIERVxaBBTgorQVBJxIYgSlVMS0EKK0FQScSGIEtBVEFSSU5BCitBUEnEhiBNSUxBTgorQVBJxIYgTUlMQU4KK0FQScSGIE1JTElDQQorQVBJxIYgTUlMT8WgCitBUEnEhiBNSUxPUkFECitBUEnEhiBNSVJKQU5BCitBUEnEhiBNSVJPU0xBVgorQVBJxIYgT0xJVkVSQQorQVBJxIYgUEFKQQorQVBJxIYgUEFKQQorQVBJxIYgUkFEScWgS08KK0FQScSGIFJBRElWT0pFCitBUEnEhiBSQVRPTUlSIERJUEwgSU5HCitBUEnEhiBTUkVUQQorQVBJxIYgU1RFVkFOCitBUEnEhiBTVE9KQU4KK0FQScSGIFNWRVRPWkFSCitBUEnEhiBTVkVUT1pBUgorQVBJxIYgVkVSQQorQVBJxIYgWkRSQVZLTworQVBJxIYgWk9SS0EKK0FQT1NUT0xPViBMSlVCT01JUgorQVBPU1RPTE9WScSGIEJPxb1JREFSCitBUE9TVE9MT1ZJxIYgTUlMT1JBRAorQVBSTyBGUkFOSkEKK0FQUk8gSkFOT8WgCitBUFJPIEpPxb1FRgorQVBSTyBMQVNMTworQVBSTyBMSlVCT01JUgorQVBSTyBSSUhBUkQKK0FQUk8tU0FNQVJExb1JSkEgVkVSQSBEUgorQVBSTyBTVEVWQU4KK0FQUk8gWk9MVEFOCitBUFQgQk9HT0xKVUIKK0FQVCBNQVJLTworQVLFoElOT1YgxJBPUsSQRQorQVLFoElOT1YgTUlMT1JBRAorQVLEkEVMQU0txaBSQUsgRURJVAorQVLEkEVMQU4gScWgVFZBTgorQVJBxIxJxIYgU0xPQk9EQU4KK0FSQcSQQU5JTiBUSU1PVElKRQorQVJBxJBBTlNLSSBLQVRJQ0EKK0FSQcSQQU5TS0kgTkFEQQorQVJBxJBBTlNLSS1SQUpLT1YgTUFKQQorQVJBQ0tJIEVSxb1JS0EKK0FSQUNLScSGIMSQT1LEkEUKK0FSQUNLScSGIE1JTElDQQorQVJBQ0tJxIYgWkxBVE9KRSBESVBMIFBSQVZOSUsKK0FSQURTS0kgQUxFS1NBTkRBUiBESVBMIElORworQVJBRFNLSSBJVkFOS0EKK0FSQURTS0kgTUlMT1JBRAorQVJBRFNLSSBNSVRBCitBUkFEU0tJIFJBRElWT0oKK0FSQURTS0kgU09GSUpBCitBUkFEU0tJIFNSRVRFTktBCitBUkFEU0tJIFNUT0pBTktBCitBUkFEU0tJIFpMQVRBCitBUkFMSUNBIFJBSktPCitBUkFNQkHFoEnEhiDEkE9SxJBFCitBUkFNQkHFoEnEhiBEUkFHQU4KK0FSQU7EjEnEhiBBTEVLU0FOREFSCitBUkFOxIxJxIYgS0FSTE8KK0FSQU7EkEVMT1ZJxIYgQUxFS1NBTkRBUgorQVJBTsSQRUxPVknEhiBCT8W9SURBUgorQVJBTsSQRUxPVknEhiBESU1JVFJJSkUKK0FSQU7EkEVMT1ZJxIYgTkpFR09WQU4KK0FSQU7EkEVMT1ZJxIYgU0FWQQorQVJBTsSQRUxPVknEhiBTUkVURU4KK0FSQU7EkFVTIEFOVE9OCitBUkFOSUNLSSBESU5LQQorQVJBTklDS0kgR0xJR09SSUpFCitBUkFOSUNLSSBNSUxBTkEKK0FSQU5JQ0tJIE1JTElDQQorQVJBTklDS0kgTUlMT8WgIERSIFBST0YKK0FSQU5JQ0tJIFpBR09SS0EKK0FSQU5JQ0tJIFpPUklDQQorQVJBTklUT1ZJxIYgTEFaQVIKK0FSQU5KT8WgIFBBTAorQVJBUMSMScSGIFBBxaBBR0EKK0FSQVBJTkFDIE1JTElDQQorQVJBUE9WScSGIERSQUdPCitBUkFQT1ZJxIYgRFJBR1VUSU4KK0FSQVIgUEVUQVIKK0FSQVMgQlJBTktPCitBUkFTIEpVR09TTEFWCitBUkFTIExKVUJPCitBUkJFUyBORU5BRAorQVJCVU5JxIYgUEVSQQorQVJCVVRJTkEgxJBVUsSQSU5LQQorQVJCVVRJTkEgQlJBTklTTEFWCitBUkJVVElOQSBNQVJJSkEKK0FSQlVUSU5BIE5BVEFMSUpBCitBUkJVVElOQSBWRUxJTUlSCitBUkJVVElOQSBWTEFESU1JUgorQVJExb1PTiBOQVRBTElKQQorQVJEQUxJxIYgSk9WQU5LQQorQVJEQUxJxIYgTEVQT1NBVkEKK0FSREFMScSGIFNMQVZLTworQVJERUxKQU4gSk9OCitBUkRFTEpBTiBNQVJJSkEKK0FSREVMSkFOIFBFVEFSCitBUkRPQ0tJIEnFoFRWQU4KK0FSRcW9SU5BIMSQT1LEkEUKK0FSRcW9SU5BIEJPxaBLTworQVJJRkkgSUJSQUhJTQorQVJJRk9WScSGIFNSQklDQQorQVJJWkFUT1ZJxIYgSkFTTUlOQQorQVJLVUxBIEJMQcW9RQorQVJLVUxBIFNMQVZJQ0EKK0FSS1VMQSBTTEFWSUNBCitBUkxPViBEUkFHQU4KK0FSTUFDS0kgQlJBTklTTEFWCitBUk1BQ0tJIFJBRE9WQU4KK0FSTUFDS0kgU09GSUpBCitBUk1BQ0tJIFNURVZBTgorQVJNQlJVU1RFUiBMQVNMTworQVJNQlJVU1RFUiBNQVJJSkEKK0FSTkFVVCDEkE9SxJBFCitBUk5BVVQgRFJBR0lOSkEKK0FSTkFVVCBNSUxJQ0EKK0FSTkFVVCBWQVNBCitBUk5PVVMgVEVSRVpBCitBUk5PVkxKRVZJxIYgS0FUQVJJTkEKK0FST0stRElWSkFLIEdPUkRBTkEKK0FSUEHFoEkgxJBPUsSQRQorQVJQQcWgSSBMQVNMTworQVJTRU5JxIYgxb1JVktPCitBUlNFTknEhiBCUkFUSVNMQVZBCitBUlNFTknEhiBESU1JVFJJSkUKK0FSU0VOScSGIERSQcWgS08KK0FSU0VOScSGIEpPVkFOS0EKK0FSU0VOScSGIE1PTUlSCitBUlNFTknEhiBPTEdJQ0EKK0FSU0VOScSGIFZFTEpLTworQVJTRU5JSkVWScSGIEJPUklTTEFWCitBUlNFTklKRVZJxIYgSk9WQU4KK0FSU0VOSUpFVknEhiBNSUxBTgorQVJTRU5JSkVWScSGIE1JTE9SQUQKK0FSU0VOSUpFVknEhiBNSUxPVkFOCitBUlNFTklKRVZJxIYgTUlMVU5LQQorQVJTRU5JSkVWScSGIE1PTcSMSUxPIERSCitBUlNFTklKRVZJxIYgTU9NxIxJTE8KK0FSU0VOSUpFVknEhiBNT01JUgorQVJTRU5JSkVWScSGIFNMQVZLQQorQVJTRU5JSkVWScSGIFNNSUxKQQorQVJTRU5JSkVWScSGIFZPSklTTEFWCitBUlNFTklKRVZJxIYgVk9KSVNMQVYKK0FSU0VOSU4gxJBVUsSQSU5LQQorQVJTRU5JTiBBTEVLU0FOREFSCitBUlNFTklOIEFMRUtTQU5EQVIKK0FSU0VOSU4gQk9HT0xKVUIKK0FSU0VOSU4gR0FKQQorQVJTRU5JTiBKT1ZBTgorQVJTRU5JTiBKT1ZBTgorQVJTRU5JTiBLT1NUQQorQVJTRU5JTiBLUklTVElOQQorQVJTRU5JTiBNQVJJSkEKK0FSU0VOSU4gTUlUQQorQVJTRU5JTiBNTEFERU4KK0FSU0VOSU4gTUxBREVOCitBUlNFTklOIFNWRVRPWkFSCitBUlNFTklOIFZJVE9NSVIKK0FSU0VOSU4gVkxBRElNSVIKK0FSU0VOSkVWIEFMRUtTRUoKK0FSU0VOT1YgQUxFS1NBCitBUlNFTk9WIEFSScWgS08KK0FSU0VOT1YgQlJBTklTTEFWCitBUlNFTk9WIEJSQU5JU0xBVgorQVJTRU5PViBCUkFOSVNMQVYKK0FSU0VOT1YgRFJBR0lDQQorQVJTRU5PViBLQVRJQ0EKK0FSU0VOT1YgTUlMQU4KK0FSU0VOT1YgTUlST1NMQVYKK0FSU0VOT1YgUEVSQQorQVJTRU5PViBQRVRBUgorQVJTRU5PViBQRVRBUgorQVJTRU5PViBSQURJVk9KCitBUlNFTk9WIFNBxaBBCitBUlNFTk9WIFZBU0lMSUpFCitBUlNFTk9WScSGIMW9SVZLTworQVJTRU5PVknEhiBNQVJJQ0EKK0FSU0VOT1ZJxIYgTkFEQSBEUgorQVJTRU5PVknEhiBSQURJU0FWCitBUlNFTk9WScSGIFJBRE9NSVIKK0FSU0VOT1ZJxIYgU0FWTworQVJTRU5PVknEhiBTUsSQQU4KK0FSU0VOT1ZJxIYgU1RPSkFESU4KK0FSU0VOT1ZJxIYgVFJJVk8KK0FSU0VOT1ZJxIYgVkVTTkEKK0FSU0VOT1ZJxIYgVkxBREEKK0FSU0VOT1ZJxIYgWk9SQU4KK0FSU0nEhiDEjEVET01JUgorQVJTScSGIMW9QVJLTworQVJTScSGIMW9SVZLTworQVJTScSGIEFMRUtTQU5EQVIKK0FSU0nEhiBET0JSSVZPSkUKK0FSU0nEhiBEVcWgS08KK0FSU0nEhiBFUsW9RUJFVAorQVJTScSGIExBWkFSCitBUlNJxIYgTElESUpBCitBUlNJxIYgTEpVQknFoEEKK0FSU0nEhiBNQVJJSkEKK0FSU0nEhiBNSUhBSUxPCitBUlNJxIYgTUlIT0xKS0EKK0FSU0nEhiBNSUxPxaAKK0FSU0nEhiBNSUxPU0xBViBEUgorQVJTScSGIE1JTFVUSU4KK0FSU0nEhiBNSU9EUkFHCitBUlNJxIYgTUlPTUlSCitBUlNJxIYgTUlSSkFOQQorQVJTScSGIE1JUkpBTkEKK0FSU0nEhiBNT03EjElMTworQVJTScSGIE9CUkFECitBUlNJxIYgUEVSSUNBCitBUlNJxIYgUEVUQVIKK0FSU0nEhiBSQURPTUlSCitBUlNJxIYgUkFET1NBVgorQVJTScSGIFNBVkVUQQorQVJTScSGIFNMQVZLQQorQVJTScSGIFNMQVZPSktBCitBUlNJxIYgU0xBVk9MSlVCCitBUlNJxIYgU1RBTktPCitBUlNJxIYgVE9NSVNMQVYKK0FSU0nEhiBUT01JU0xBVgorQVJTScSGIFRPTUlTTEFWCitBUlNJxIYgVFJBSkFOCitBUlNJxIYgWk9SQU4KK0FSU0nEhiBaT1JBTgorQVJTScSGIFpPUkFOCitBUlNJS0lOIE1JTEFOS08KK0FSU0lLSU4gUEFWTEUKK0FSU0xBTkFHScSGIE5BxJBBCitBUlNPVknEhiBBTEVLU0FOREFSCitBUlNPVknEhiBET0JST1NBVgorQVJTT1ZJxIYgSk9WQU4KK0FSU09WScSGIE1BVEVKQQorQVJTT1ZJxIYgTUlMQU4KK0FSU09WScSGIE1JTElDQQorQVJUIMSQVVJBCitBUlQgWlZPTklNSVIKK0FSVFVLT1YgRFXFoEFOCitBUlRVS09WIE9MR0EKK0FSVUxBIE1JxIZPCitBUlZBSSBBTEVLU0FOREFSCitBUlZBSSBBUlBBRAorQVJWQUkgREFOSUNBCitBUlZBSSBQQVZBTworQVJWQUkgVEVSRVpBCitBUlZBSkkgUEFWQU8KK0FSVkFOSVRJRElTIFNURVJKT1MKK0FTQU5JIEFTQU4KK0FTQU5JIEhVUknFoEEKK0FTQU5JIE5BSUxKQQorQVNBTkkgTkFaSUZBCitBU0FOT1YgWk9SQQorQVNBTk9WScSGIE1JTEVWQQorQVNBTk9WScSGIFNUQU5LQQorQVNBTk9WScSGIFpVSFJBCitBU0FOT1ZTS0kgUk9aQUxJSkEKK0FTScSGIE1JTEFOCitBU09ESSBKQU5PxaAKK0FTT0RJIEpPxb1FRgorQVNPREkgTUlSS08KK0FTT1RJxIYgTVVBTUVSCitBU1RBSE9WLUpFUkVNScSGIE1BUklKQQorQVNUQUxPxaAgScWgVFZBTgorQVNVUkTFvUnEhiBLUklTVElOQQorQVNVUkTFvUnEhiBMVUtBCitBU1VSRMW9ScSGIE1JTE/FoAorQVNVUkTFvUnEhiBNSUxPxaAKK0FTVVJExb1JxIYgTUlMT8WgCitBU1VSRMW9ScSGIE1PTE/FoAorQVNVUkTFvUnEhiBOSUtPTEEKK0FTVVJExb1JxIYgTklLT0xBCitBU1VSRMW9ScSGIFNPRklKQQorQVNVUkTFvUnEhiBTVEVWQU4KK0FTVVJExb1JxIYgVEVPRE9SCitBU1VSRMW9ScSGIFRFT0RPUgorQVRBTkFDS09WIMSQT1LEkEUKK0FUQU5BQ0tPViBCT1JBCitBVEFOQUNLT1YgQk9SSVZPSgorQVRBTkFDS09WIERSQUdBTgorQVRBTkFDS09WIElMT05BCitBVEFOQUNLT1YgTUFSSUpBCitBVEFOQUNLT1YgTUlSSkFOQQorQVRBTkFDS09WIE1JUktPCitBVEFOQUNLT1YgTk9WQQorQVRBTkFDS09WIE9MR0EKK0FUQU5BQ0tPViBQQVZMRQorQVRBTkFDS09WIFNBxaBBCitBVEFOQUNLT1YgU1RFVkFOCitBVEFOQUNLT1YgU1RFVkFOCitBVEFOQUNLT1ZJxIYgxb1JVkFOCitBVEFOQUNLT1ZJxIYgxJBPUsSQRQorQVRBTkFDS09WScSGIEFMRUtTQU5EQVIKK0FUQU5BQ0tPVknEhiBBTkEKK0FUQU5BQ0tPVknEhiBCT0dPQk9KCitBVEFOQUNLT1ZJxIYgQk9SSVNMQVYKK0FUQU5BQ0tPVknEhiBCT1JJU0xBVgorQVRBTkFDS09WScSGIEJSQU5LQSBESVBMIFBSQVZOSUsKK0FUQU5BQ0tPVknEhiBEUkFHScWgQSBEUgorQVRBTkFDS09WScSGIERVxaBBTiBEUiBMRUtBUgorQVRBTkFDS09WScSGIEdSQURJTUlSCitBVEFOQUNLT1ZJxIYgSVZBTgorQVRBTkFDS09WScSGIEtBVEFSSU5BCitBVEFOQUNLT1ZJxIYgTEFaQQorQVRBTkFDS09WScSGIExVS0EKK0FUQU5BQ0tPVknEhiBNSUxFTktPCitBVEFOQUNLT1ZJxIYgTUlMRU5LTworQVRBTkFDS09WScSGIE1JUktPCitBVEFOQUNLT1ZJxIYgTUxBREVOCitBVEFOQUNLT1ZJxIYgUkFUS08KK0FUQU5BQ0tPVknEhiBTQVZBCitBVEFOQUNLT1ZJxIYgU0xBxJBBTkEKK0FUQU5BQ0tPVknEhiBTVEVWQU4KK0FUQU5BQ0tPVknEhiBTVkVUT01JUgorQVRBTkFDS09WScSGIFRFT0RPUiBEUgorQVRBTkFDS09WScSGIFRPxaBBCitBVEFOQUNLT1ZJxIYgVkFTSUxKS0EKK0FUQU5BQ0tPVknEhiBWTEFESU1JUiBESVBMIElORworQVRBTkFDS09WScSGIFpPUkFOCitBVEFOQVNJQURJUyBIUklTVE9GT1JPUworQVRBTkFTSUpBRElTIEFORVNUSQorQVRBTkFTS09WScSGIEdPUkRBTkEKK0FUQU5BU0tPVknEhiBNSVJKQU5BCitBVEFOQVNLT1ZJxIYgTUlST0xKVUIKK0FUQU5BU09TS0kgU1RFVk8KK0FUQU5BU09WIE1BUktPCitBVEFOQVNPVlNLSSBSSVNUTworQVRBUkFDIERSQUdPxaAKK0FURUxKRVZJxIYgRFXFoEFOCitBVEVMSkVWScSGIE1JTE9WQU4KK0FUScSGIERBTklDQQorQVRMQUdJxIYgQlJBTktPCitBVExBR0nEhiBKT1ZBTgorQVRMQUdJxIYgTUlMQU4KK0FUTEFHScSGIE1JTElDQQorQVRMQUdJxIYgWkRSQVZLTworQVRMQUdJxIYgWkRSQVZLTworQVRMQVMgxJBPUsSQRSBEUgorQVRMQVMgSVZBTgorQVRMQVMgTUlSS08KK0FUTEnEhiBMQVpBUgorQVRMScSGIE1JTEFOCitBVcW9SU5BIE1JTElDQQorQVXFvUlOQSBNSVJBCitBVcW9SU5BIE1JUk9TTEFWQQorQVVFUiBNQVJBCitBVUdVU1RJTiBJVklDQQorQVVHVVNUSU5PViBBTlRPTgorQVVHVVNUSU5PViBJVkFOCitBVUxJSyBJTE9OQQorQVVSRUxJSkFOIMSQQU4KK0FWQUtVTU9WScSGIExKVUJJTktBCitBVkFLVU1PVknEhiBOSUtPTEEKK0FWREFMT1ZJxIYgR09SREFOQQorQVZEQUxPVknEhiBNSUxBRElOCitBVkRBTE9WScSGIFZJRE9TQVZBCitBVkRBTE9WScSGIFZMQURJTUlSCitBVkRJIFJBTUFEQU4KK0FWREnEhiBBTEVLU0FOREFSCitBVkRJxIYgRlVBRAorQVZEScSGIEdPUkRBTkEKK0FWREnEhiBIVVNOSUpBCitBVkRJxIYgTUFMScSGCitBVkRJxIYgTVVMSUpBCitBVkVNQVJJQSBQRVRBUgorQVZSQU1PViBCT8WgS08KK0FWUkFNT1YgQlJBTklTTEFWCitBVlJBTU9WIERJTUlUUklKRQorQVZSQU1PViBET0JSSUxBCitBVlJBTU9WIEdBVlJBCitBVlJBTU9WIElWQU4KK0FWUkFNT1YgSk9WQU5LQQorQVZSQU1PViBKT1ZBTgorQVZSQU1PViBMSklMSkFOQQorQVZSQU1PViBNSUxBRElOCitBVlJBTU9WIE1JTEVWQQorQVZSQU1PViBNSUxLQQorQVZSQU1PViBNSVJKQU5BCitBVlJBTU9WIE1JVEEKK0FWUkFNT1YgUEFKQQorQVZSQU1PViBQRVJBCitBVlJBTU9WIFBFVEFSCitBVlJBTU9WIFJBRElWT0oKK0FWUkFNT1YgU1RFVkFOCitBVlJBTU9WIFNWRVRPTElLCitBVlJBTU9WIFNWRVRPTElLCitBVlJBTU9WIFpPUkFOCitBVlJBTU9WIFpPUkFOCitBVlJBTU9WScSGIMW9SVZLTworQVZSQU1PVknEhiBCT1JJVk9KRQorQVZSQU1PVknEhiBEQVJJTktBCitBVlJBTU9WScSGIERJTUlUUklKRQorQVZSQU1PVknEhiBESU1JVFJJSkUKK0FWUkFNT1ZJxIYgRFJBR08KK0FWUkFNT1ZJxIYgRlJBTkNJxaBLQQorQVZSQU1PVknEhiBHT0pLTworQVZSQU1PVknEhiBJTElOS0EKK0FWUkFNT1ZJxIYgSk9WQU4gRFIgTEVLQVIKK0FWUkFNT1ZJxIYgTEpVQknFoEEKK0FWUkFNT1ZJxIYgTEpVQklOS08KK0FWUkFNT1ZJxIYgTEpVQk9NSVIKK0FWUkFNT1ZJxIYgTUlMQU4KK0FWUkFNT1ZJxIYgTUlMQU4KK0FWUkFNT1ZJxIYgTUlMQU4KK0FWUkFNT1ZJxIYgTUlMSVZPSgorQVZSQU1PVknEhiBNSVJKQU5BCitBVlJBTU9WScSGIE1JVEEKK0FWUkFNT1ZJxIYgTU9NSVIKK0FWUkFNT1ZJxIYgTklLT0xBCitBVlJBTU9WScSGIFJBRElWT0oKK0FWUkFNT1ZJxIYgUkFET1NMQVYKK0FWUkFNT1ZJxIYgUkFUS08KK0FWUkFNT1ZJxIYgUkFUS08KK0FWUkFNT1ZJxIYgU0lOScWgQQorQVZSQU1PVknEhiBTVEFOS0EKK0FWUkFNT1ZJxIYgU1RFVkFOCitBVlJBTU9WScSGIFRFT0RPUgorQVZSQU1PVknEhiBUT01BCitBVlJBTU9WScSGIFZFTEpLTworQVZSQU1PVknEhiBWRVJBCitBVlJBTU9WScSGIFZFUkEKK0FWUkFNT1ZJxIYgVkVSQQorQVZSQU1PVlNLSSBCT1JJUworQVpMRU4gQk9SSVNMQVYKK0JBxIxBIMWgQU5ET1IKK0JBxIxBIExBRElTTEFWCitCQcSMQU5PVknEhiBORU5BRAorQkHEjEnEhiDEjEVET01JUiBQUk9GRVNPUgorQkHEjEnEhiDFvUlWS08KK0JBxIxJxIYgxJBPUsSQRQorQkHEjEnEhiBBTlRFCitCQcSMScSGIEJSQU5LQQorQkHEjEnEhiBEUkFHT1NMQVYKK0JBxIxJxIYgSk9WQU4KK0JBxIxJxIYgS0FSQQorQkHEjEnEhiBNQVJJSkEKK0JBxIxJxIYgTUlMQU4gRFIgVkVURVJJTkUKK0JBxIxJxIYgTUlMSUNBCitCQcSMScSGIE1JUktPCitCQcSMScSGIE5JS09MQQorQkHEjEnEhiBTTUlMSkFOQQorQkHEjEtBTEnEhiDEkE9SxJBFCitCQcSMS0FMScSGIEFMRUtTQU5EQVIKK0JBxIxLQUxJxIYgRE9CUkEKK0JBxIxLQUxJxIYgRE9CUklDQQorQkHEjEtBTEnEhiBKT1ZBTgorQkHEjEtBTEnEhiBMQVpBUgorQkHEjEtBTEnEhiBMSlVCSUNBCitCQcSMS0FMScSGIExKVUJPTUlSCitCQcSMS0FMScSGIE1JTEFOCitCQcSMS0FMScSGIE1JTEEKK0JBxIxLQUxJxIYgTk9WQUsKK0JBxIxLTyBNSUxBTkEKK0JBxIxLTyBQRVRBUgorQkHEjExJxIYgxJBPUsSQRQorQkHEjExJxIYgQlJBTklTTEFWCitCQcSMTEnEhiBMQVpBUgorQkHEjExJxIYgTEpVQklDQQorQkHEjExJSkEgSk9TSVAKK0JBxIxMSUpBIE1BUktPCitCQcSMTElKQSBSVcW9SUNBCitCQcSMTElKQSBTTEFWSUNBCitCQcSMVUxPViBTVEVWQU4KK0JBxIxWQU5JTiDFvUlWT0pJTgorQkHEjFZBTlNLSSBCT8WgS08KK0JBxIxWQU5TS0kgU1RFVkFOIERSIElORworQkHFoCBKVUxJQQorQkHFoEEgRFXFoEFOCitCQcWgQSBKT1ZBTgorQkHFoEVWScSGIMSMRURPTUlSCitCQcWgRVZJxIYgTkVWRU5LQQorQkHFoEnEjEVWScSGIFZPSklOIERSCitCQcWgScSMRVZJxIYgVk9KSU4KK0JBxaBJxIYgxb1BUktPCitCQcWgScSGIMSQVVJPCitCQcWgScSGIEFMRUtTQU5EQVIKK0JBxaBJxIYgQklMSkFOQQorQkHFoEnEhiBCT8W9TworQkHFoEnEhiBEUkFHVVRJTgorQkHFoEnEhiBEUkFHVVRJTgorQkHFoEnEhiBEVcWgQU4KK0JBxaBJxIYgRFXFoEFOCitCQcWgScSGIERVxaBBTgorQkHFoEnEhiBEVcWgQU4KK0JBxaBJxIYgRFXFoEFOCitCQcWgScSGIEZSQU5KTworQkHFoEnEhiBHQVZSQQorQkHFoEnEhiBHUlVKSUNBCitCQcWgScSGIElEUklaCitCQcWgScSGIElMSUpBCitCQcWgScSGIEpBTktPCitCQcWgScSGIEpFTEEKK0JBxaBJxIYgSkVMRU5BCitCQcWgScSGIEpPVkFOCitCQcWgScSGIEpPVkFOCitCQcWgScSGIEpVUkUKK0JBxaBJxIYgTEFaQVIKK0JBxaBJxIYgTEpVQklDQQorQkHFoEnEhiBMSlVCSUNBCitCQcWgScSGIExVS0EKK0JBxaBJxIYgTUFSSUpBCitCQcWgScSGIE1JTEFOCitCQcWgScSGIE1JTEFOCitCQcWgScSGIE1JTEEKK0JBxaBJxIYgTUlMSUNBCitCQcWgScSGIE1JTFVUSU4gRElQTCBJTkcKK0JBxaBJxIYgTUlUQQorQkHFoEnEhiBORURFTEpLQQorQkHFoEnEhiBORVNUT1IKK0JBxaBJxIYgTklLT0xBCitCQcWgScSGIFBBVkxFCitCQcWgScSGIFBFVEFSCitCQcWgScSGIFJBRE9TTEFWCitCQcWgScSGIFNBVkEKK0JBxaBJxIYgU0FWQQorQkHFoEnEhiBTSU1LQQorQkHFoEnEhiBTTE9CT0RBTktBCitCQcWgScSGIFNMT0JPREFOS0EKK0JBxaBJxIYgU0xPQk9EQU4KK0JBxaBJxIYgU0xPQk9EQU4KK0JBxaBJxIYgU09OSkEKK0JBxaBJxIYgU1BBU09KRQorQkHFoEnEhiBTVEVWQU4KK0JBxaBJxIYgVE9NSVNMQVYKK0JBxaBJxIYgVkVSQQorQkHFoEnEhkVWScSGIERFU0EKK0JBxaBJQ0EgTUlMQU4KK0JBxaBJQ0EgUkFOS08KK0JBxaBJQ0EgUklTVE8KK0JBxaBLQUxPIE1BUktPCitCQcWgTkVDIElWQU4KK0JBxaBUScSGIEJPxb1JREFSCitCQcWgVEnEhiBNSUxLQQorQkHFoFRJxIYgUEVUQVIKK0JBxaBUT1ZBTk9WIERBTklDQQorQkHFoFRPVkFOT1YgU1RFVkFOCitCQcWgVE9WQU5PVknEhiBJVkFOCitCQcWgVE9WQU5PVknEhiBNSUxBTgorQkHEhkFOIERSQUdPTUlSCitCQcSGQU5PViBEUkFHSUNBCitCQcSGQU5PViBTVEFOS08KK0JBxIZBTk9WIFNURVZBTgorQkHEhkFOT1ZJxIYgREFOSUNBCitCQcSGQU5PVknEhiBKVUNBCitCQcSGQU5PVknEhiBNSUxBTgorQkHEhkFOT1ZJxIYgTUlMT8WgCitCQcSGQU5PVknEhiBORU1BTkpBCitCQcSGQU5PVknEhiBTSU5JxaBBCitCQcSGQU5PVknEhiBTVE9KQU4KK0JBxIZJxIYgTEpJTEpBTkEKK0JBxIZJxIYgTEpVQk9NSVIKK0JBxIZJTkEgTUxBREVOCitCQcSGSU5BQyBSQURPU0xBVgorQkHFvUFOxIxJSyBCRUxBCitCQcW9QU5USUsgTUFSQQorQkHFvURBUiBCUlVOTworQkHFvURBUiBNSUxPUkFECitCQcW9RU5PViBBTkdFTElOQQorQkHEkEkgxaBBTkRPUgorQkHEkEktUklCQVIgUkVOQVRBCitCQcSQSU4gU01JTEpLQQorQkFCQSBJTE9OS0EKK0JBQkEgSkFOT8WgCitCQUJBIEpPTgorQkFCQUpJxIYgQUxFS1NBTkRBUgorQkFCQVJJS0lOIE1BUktPCitCQUJFQyBaT1JBTgorQkFCSSBJVkFOCitCQUJJxIYgxb1BUktPCitCQUJJxIYgxb1FTEpLQQorQkFCScSGIMW9SVZBTgorQkFCScSGIMW9SVZBTgorQkFCScSGIMSQT1LEkEUKK0JBQknEhiDEkE9SxJBFCitCQUJJxIYgxJBPUsSQRQorQkFCScSGIMSQT1LEkEUKK0JBQknEhiDEkE9SxJBFCitCQUJJxIYgxJBVUsSQSUNBCitCQUJJxIYgxJBVUkEKK0JBQknEhiDEkFVSQQorQkFCScSGIMSQVVJPCitCQUJJxIYgQUNBCitCQUJJxIYgQUlEQQorQkFCScSGIEFMRUtTQU5EQVIKK0JBQknEhiBBTEVLU0FOREFSCitCQUJJxIYgQUxFS1NBTkRSQQorQkFCScSGIEFMRUtTQQorQkFCScSGIEFMS0EKK0JBQknEhiBBTkEKK0JBQknEhiBBTkEKK0JBQknEhiBBTkEKK0JBQknEhiBCSUxKQU5BCitCQUJJxIYgQk/FvUlDQQorQkFCScSGIEJPxb1JREFSS0EKK0JBQknEhiBCT0dEQU4KK0JBQknEhiBCT0pBCitCQUJJxIYgQk9SScWgQQorQkFCScSGIEJPUklTTEFWQQorQkFCScSGIEJPUklWT0pFCitCQUJJxIYgQlJBTktPCitCQUJJxIYgQ1ZJSk8KK0JBQknEhiBEQU5FCitCQUJJxIYgREFSSU5LQQorQkFCScSGIERBVklECitCQUJJxIYgRFJBxaBLTworQkFCScSGIERSQUdBTkEKK0JBQknEhiBEUkFHQU4KK0JBQknEhiBEUkFHScWgQQorQkFCScSGIERSQUdJxaBBCitCQUJJxIYgRFJBR0nFoEEKK0JBQknEhiBEUkFHScWgQQorQkFCScSGIERSQUdJxaBBCitCQUJJxIYgRFJBR08KK0JBQknEhiBEVcWgQU5LQQorQkFCScSGIERVxaBBTgorQkFCScSGIERVxaBBTgorQkFCScSGIERVxaBBTgorQkFCScSGIERVxaBBTgorQkFCScSGIERVxaBJQ0EKK0JBQknEhiBHT0pLTworQkFCScSGIEdPSktPCitCQUJJxIYgR09SQU4KK0JBQknEhiBHT1JEQU5BCitCQUJJxIYgR09SSUNBCitCQUJJxIYgR09TUEFWQQorQkFCScSGIEhFTEVOQQorQkFCScSGIElMSUpBCitCQUJJxIYgSUxJSkEKK0JBQknEhiBJTElKQQorQkFCScSGIElMSU5LQQorQkFCScSGIElWQU4KK0JBQknEhiBJVkFOCitCQUJJxIYgSVZBTgorQkFCScSGIEpPVkFOCitCQUJJxIYgSk9WQU4KK0JBQknEhiBKT1ZBTgorQkFCScSGIEpPVkFOCitCQUJJxIYgSk9WQU4KK0JBQknEhiBLQVRJQ0EKK0JBQknEhiBLQVpJTUlSCitCQUJJxIYtS09QTEpBTiBST8W9QQorQkFCScSGIEtPU0EKK0JBQknEhiBLT1NUQURJTgorQkFCScSGIEtPU1RBCitCQUJJxIYgS1JTVEEKK0JBQknEhiBMQVpPCitCQUJJxIYgTEFaTworQkFCScSGIExFT05JRAorQkFCScSGIExKSUxKQU5BCitCQUJJxIYgTEpJTEpBTkEKK0JBQknEhiBMSklMSkFOQQorQkFCScSGIExKVUJJxaBBCitCQUJJxIYgTEpVQklDQQorQkFCScSGIExKVUJPTUlSCitCQUJJxIYgTEpVQk9NSVIKK0JBQknEhiBMVUtBCitCQUJJxIYgTUFKQQorQkFCScSGIE1BUklKQU5BCitCQUJJxIYgTUFSSUpBCitCQUJJxIYgTUFSSU5LTworQkFCScSGIE1BUktPCitCQUJJxIYgTUFUTworQkFCScSGIE1JSk8KK0JBQknEhiBNSUxBRElOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxFVEEKK0JBQknEhiBNSUxFVkEKK0JBQknEhiBNSUxFVkEKK0JBQknEhiBNSUxJxIYKK0JBQknEhiBNSUxJVk9KRSBESVBMIElORworQkFCScSGIE1JTElWT0oKK0JBQknEhiBNSUxJVk9KCitCQUJJxIYgTUlMT8WgCitCQUJJxIYgTUlMT8WgCitCQUJJxIYgTUlMT8WgCitCQUJJxIYgTUlMT8WgCitCQUJJxIYgTUlMT8WgCitCQUJJxIYgTUlMT8WgCitCQUJJxIYgTUlMT1JBRAorQkFCScSGIE1JTE9SQUQKK0JBQknEhiBNSUxPUkFECitCQUJJxIYgTUlMT1NBVgorQkFCScSGIE1JUkEKK0JBQknEhiBNSVJBCitCQUJJxIYgTUlSSkFOQQorQkFCScSGIE1JUk9TTEFWCitCQUJJxIYgTUlST1NMQVYKK0JBQknEhiBNSVJPU0xBVgorQkFCScSGIE1PTcSMSUxPCitCQUJJxIYgTU9NSVIKK0JBQknEhi1NUkvFoEnEhiBKVUxLQQorQkFCScSGIE1VUklaCitCQUJJxIYgTkFEQQorQkFCScSGIE5BREEKK0JBQknEhiBOQURBCitCQUJJxIYgTkFUQcWgQQorQkFCScSGIE5FREVMSktPCitCQUJJxIYgTkVOQUQKK0JBQknEhiBOSUtPTEEKK0JBQknEhiBOSUtPTEEKK0JBQknEhiBOSUtPTEEKK0JBQknEhiBPTEdJQ0EKK0JBQknEhiBPU1RPSkEKK0JBQknEhiBPU1RPSkEKK0JBQknEhiBQRVJTQQorQkFCScSGIFBFUlNJREEKK0JBQknEhiBQRVRBUgorQkFCScSGIFBFVEFSCitCQUJJxIYgUEVUQVIKK0JBQknEhiBQRVRBUgorQkFCScSGIFBFVEFSCitCQUJJxIYgUFJFRFJBRworQkFCScSGIFJBREVOS08KK0JBQknEhiBSQURFCitCQUJJxIYgUkFERQorQkFCScSGIFJBRElOS0EKK0JBQknEhiBSQURJU0FWCitCQUJJxIYgUkFESVZPSkUKK0JBQknEhiBSQURPSkUKK0JBQknEhiBSQURPSktBCitCQUJJxIYgUkFET0pLQQorQkFCScSGIFJBRE9NSVIKK0JBQknEhiBSQURPU0xBVgorQkFCScSGIFJBRE9WQU4KK0JBQknEhiBSQURPVkFOCitCQUJJxIYgUkFKS08KK0JBQknEhiBSQUpLTworQkFCScSGIFJBTktPCitCQUJJxIYgU0HFoEEKK0JBQknEhiBTQVZPCitCQUJJxIYgU0xBREUKK0JBQknEhiBTTEFWSUNBCitCQUJJxIYgU0xPQk9EQU4KK0JBQknEhiBTTE9CT0RBTgorQkFCScSGIFNNSUxKS0EKK0JBQknEhiBTTUlMSktBCitCQUJJxIYgU05Fxb1BTkEKK0JBQknEhiBTT0ZJSkEKK0JBQknEhiBTVEFLQQorQkFCScSGIFNUQU5LTworQkFCScSGIFNURVZBTgorQkFCScSGIFNURVZBTgorQkFCScSGIFNURVZBTgorQkFCScSGIFNURVZBTgorQkFCScSGIFNURVZBTgorQkFCScSGIFNURVZPCitCQUJJxIYgU1ZFVExBTkEKK0JBQknEhiBTVkVUTEFOQQorQkFCScSGIFRPTU8KK0JBQknEhiBWQVNBCitCQUJJxIYgVkFTQQorQkFCScSGIFZFUkEKK0JBQknEhiBWRVJJQ0EKK0JBQknEhiBWRVNOQQorQkFCScSGIFZJRE9TQVZBCitCQUJJxIYgVlVKTworQkFCScSGIFZVS01BTgorQkFCScSGIFpBR09SS0EKK0JBQknEhiBaRFJBVktPCitCQUJJxIYgWk9SQU4KK0JBQknEhiBaT1JBTgorQkFCScSGIFpPUktBCitCQUJJSkFOT1ZJxIYgSlVMS0EKK0JBQklMT04gVkxBRElNSVIKK0JBQklMT04gVkxBRElNSVIKK0JBQklOIMSQT1LEkEUKK0JBQklOIEJPR0RBTgorQkFCSU4gQlJBTklTTEFWCitCQUJJTiBESU1JVFJJSkUKK0JBQklOIERVxaBBTgorQkFCSU4gSk9WQU4KK0JBQklOIEtBVEFSSU5BCitCQUJJTiBLUklTVElOQQorQkFCSU4gTEFaQVIKK0JBQklOIExKVUJPTUlSCitCQUJJTiBNQVJJSkEKK0JBQklOIE1BUklOCitCQUJJTiBNSUhBSkxPCitCQUJJTiBNSUxBTgorQkFCSU4gTUlMRU5BCitCQUJJTiBNSUxFTktPIERSIElORworQkFCSU4gTUlMRU5LTworQkFCSU4gTUlPRFJBRworQkFCSU4gTUlSSkFOQQorQkFCSU4gTUlSSkFOQQorQkFCSU4gTkFEQQorQkFCSU4gTklLT0xBCitCQUJJTiBQRVRBUgorQkFCSU4gUkFET0pLQQorQkFCSU4gU0FWQQorQkFCSU4gWk9SQU4KK0JBQkpBSyBTTE9CT0RBTgorQkFCS0EgSkFOCitCQUJPUkFDIERSQUdBTgorQkFCT1ZJxIYgxIxFRE9NSVIKK0JBQk9WScSGIEJSQU5JU0xBVgorQkFCT1ZJxIYgSkFTTUlOQQorQkFCT1ZJxIYgSkVMRU5BCitCQUJPVknEhiBKT1ZBTgorQkFCT1ZJxIYgTEpVQk9NSVIKK0JBQk9WScSGIE1JSEFJTE8KK0JBQk9WScSGIE1JTElTQVYKK0JBQk9WScSGIE1PTcSMSUxPCitCQUJPVknEhiBTSU5JxaBBIERSCitCQUJPVknEhiBUT01JU0xBVgorQkFCT1ZJxIYgWk9SQQorQkFDS09WScSGIERPQlJPU0xBVgorQkFDS09WScSGIERSQUdBTgorQkFDS09WScSGIE1BUklKQQorQkFDS09WScSGIE1JTElDQQorQkFDS09WScSGIE1JTElWT0pFCitCQUNLT1ZJxIYgTUlMT1JBRAorQkFDS09WScSGIE1JTE9WQU4KK0JBQ0tPVknEhiBSQURJVk9KRQorQkFEQSBJxaBUVkFOCitCQURBTEnEhiBNQUpEQQorQkFEQU5KQUMgSkVMRU5BCitCQUROSkFSIE1JTEFOCitCQUROSkFSIE1JTElWT0pFCitCQUROSkFSIFZMQURPCitCQUROSkFSRVZJxIYgQUxFS1NBTkRBUiBESVBMIFBSQVZOSUsKK0JBRE5KQVJFVknEhiBCT8W9SURBUgorQkFETkpBUkVWScSGIE1JTEFOQQorQkFETkpBUkVWScSGIE1JT0RSQUcKK0JBRE5KQVJFVknEhiBSQURPxaAKK0JBRE5KQVJFVknEhiBTVEFOQQorQkFET1ZJTkFDIERSQUdVVElOCitCQURPVklOQUMgTklLT0xBCitCQURSS0nEhiBOSUtPTEEKK0JBRFJMSklDQSBEVcWgSUNBCitCQURSTEpJQ0EgR0FWUkEKK0JBRFJMSklDQSBMQVpBUgorQkFEUkxKSUNBIE1MQURFTgorQkFEUkxKSUNBIE9MR0EKK0JBRFJMSklDQSBQRVRBUgorQkFEUkxKSUNBIFJBRE9KS0EKK0JBRlVTIExBU0xPCitCQUdJIMSQVUxBCitCQUdJLUJFTktPVknEhiBQQUwKK0JBR0kgRkVSRU5DCitCQUdJIEnFoFRWQU4KK0JBR0kgSkFOT8WgCitCQUdJxIYgTUlSSkFOQQorQkFHSU5KIExBWkFSCitCQUdJTkogTEVQT1NBVkEKK0JBR0xBVkEgTUlMQU4KK0JBR09OSkEgSkFOCitCQUdPTkpBIE1BUklKQQorQkFHT05KQSBOQURBCitCQUggRVJOQQorQkFITUFOIE1BUktPCitCQUhUSUpBUkVWScSGIEpFTEEKK0JBSFVOIE5JS09MQQorQkFIVU4gUEVUQVIKK0JBScSGIE1JUktPCitCQUnEhiBTVEFOQQorQkFKxIxFVEEgTU9NxIxJTE8KK0JBSsSMRVRBIFJBRE9TTEFWCitCQUrEjEVUScSGIEJPR0RBTiBEUgorQkFKxIxFVEnEhiBMSlVCSUNBCitCQUrEjEVUScSGIE1BUklKQQorQkFKxIxFVEnEhiBNQVJLTworQkFKxIxFVEnEhiBNSUxFTktPCitCQUrEjEVUScSGIE1JUktPCitCQUrEjEVUScSGIFBBVkxFCitCQUrEjEVUScSGIFBFVEFSCitCQUrEjEVWIEpPVkFOCitCQUrEjEVWIE1JUkpBTkEKK0JBSsWgQU5TS0kgRFJBR09TTEFWCitCQUrFoEFOU0tJIEpPVkFOCitCQUrFoEFOU0tJIExKSUxKQU5BCitCQUrFoEFOU0tJIE1JTEFESU4KK0JBSsWgQU5TS0kgTUlMRU5LTworQkFKxaBBTlNLSSBSQURPVkFOCitCQUrFoEFOU0tJIFNBVkEKK0JBSsWgQU5TS0kgU0FWQQorQkFKxaBBTlNLSSBTTUlMSkEKK0JBSsWgQU5TS0kgWk9SQU4KK0JBSsWgRVYgRFJBR09NSVIKK0JBSsWgRVYgSUxJSkEKK0JBSsWgRVYgTUlMSUNBCitCQUrFoEVWIFNURVZBTgorQkFKxaBFViBTVkVUSVNMQVYKK0JBSsWgScSGIMW9QVJLTworQkFKxaBJxIYgRFJBR0FOCitCQUrFoEnEhiBNSUxBTgorQkFKQSDEkE9SxJBFCitCQUpBIFNURVZBTgorQkFKQUMgQk9SSVNMQVYKK0JBSkFDIEVNSUxJSkEgRFIKK0JBSkFDIElTQUsKK0JBSkFDIExKVUJJQ0EKK0JBSkFDIE1JTEFOCitCQUpBQyBNSUxPxaAKK0JBSkFDIE1JTFVUSU4KK0JBSkFDIFNWRVRMQU5BCitCQUpBQyBWRVJBCitCQUpBR0nEhiBLQVRJQ0EKK0JBSkFHScSGIE1JTEVOQQorQkFKQUdJxIYgTUlPRFJBRworQkFKQUdJxIYgTU9NxIxJTE8KK0JBSkFHScSGIE1PTcSMSUxPCitCQUpBR0nEhiBQRVRBUgorQkFKQUdJxIYgUkFEQQorQkFKQUdJxIYgUkFERQorQkFKQUdJxIYgU0FWTworQkFKQUdJxIYgU1ZFVE9aQVIKK0JBSkFHScSGIFRBTUFSQQorQkFKQUtJxIYgTUFSQQorQkFKQUxPIEpPVkFOS0EKK0JBSkFMT1ZJxIYgU09GSUpBCitCQUpBTE9WScSGIFNWRVRJU0xBVgorQkFKQVQgTUlMT1JBRAorQkFKQVQgTUlSS08KK0JBSkFUIE1JUktPCitCQUpBVCBORURFTEpLTworQkFKQVQgTklLT0xBCitCQUpBVCBSQURPVkFOCitCQUpBVCBUUklGVU4KK0JBSkFUIFZFTElNSVIKK0JBSkFaRVQgSkVWR0VOSUpBCitCQUpBWkVUIFRPRE9SCitCQUpBWkVUIFZFUkEgRElQTCBJTkcKK0JBSkFaRVRPViBEUkFHQU4KK0JBSkFaRVRPViBEUkFHQU4KK0JBSkFaRVRPViBSQURJVk9KCitCQUpBWklUIE1JTEFOCitCQUpCQVJBSyBJVkFOCitCQUpHTyBaT0xUQU4KK0JBSkkgQVJBTktBCitCQUpJLUhSSUJBUiBKVUxJSkEKK0JBSkkgU1RFVkFOCitCQUpJxIYgxIxFRE9NSVIKK0JBSknEhiDFvUFSS08KK0JBSknEhiDFvUlLQQorQkFKScSGIMW9SVZLTworQkFKScSGIMW9SVZPSklOCitCQUpJxIYgxJBPUsSQRSBEUgorQkFKScSGIMSQVVJBCitCQUpJxIYgxJBVUk8KK0JBSknEhiBBTEVLU0FOREFSCitCQUpJxIYgQk/FoEtPCitCQUpJxIYgQk/FvUlDQQorQkFKScSGIEJPR0RBTgorQkFKScSGIEJPR09MSlVCCitCQUpJxIYgQk9KS0EKK0JBSknEhiBCT1JBCitCQUpJxIYgQk9SSVZPSkUKK0JBSknEhiBCT1NJTEpLQQorQkFKScSGIEJSQU5JU0xBVgorQkFKScSGIEJSQU5JU0xBVgorQkFKScSGIEJSQU5JU0xBVgorQkFKScSGIEJSQU5JU0xBVgorQkFKScSGIEJSQU5JU0xBVgorQkFKScSGIEJSQU5LTworQkFKScSGIERBTklDQQorQkFKScSGIERJTUlUUklKRQorQkFKScSGIERSQUdJQ0EKK0JBSknEhiBEUkFHT1NMQVYKK0JBSknEhiBEUkFHVVRJTgorQkFKScSGIERVxaBBTgorQkFKScSGIERVxaBBTgorQkFKScSGIERVxaBBTgorQkFKScSGIERVxaBBTgorQkFKScSGIERVxaBBTgorQkFKScSGIERVxaBBTgorQkFKScSGIERVxaBLTworQkFKScSGIEdPSktPCitCQUpJxIYgR09SREFOQQorQkFKScSGIElMSUpBCitCQUpJxIYgSUxJTktBCitCQUpJxIYgSUxPTkEKK0JBSknEhiBKQUdPxaAKK0JBSknEhiBKQU5LTworQkFKScSGIEpBTktPCitCQUpJxIYgSkVMSUNBCitCQUpJxIYgSk9WQU4KK0JBSknEhiBKT1ZBTgorQkFKScSGIEpPVkFOCitCQUpJxIYgSk9WSUNBCitCQUpJxIYgS1JTVEEKK0JBSknEhiBMQVpBUgorQkFKScSGIExVS0EKK0JBSknEhiBNQVJBCitCQUpJxIYgTUFSQQorQkFKScSGIE1BUklDQQorQkFKScSGIE1BUklKQQorQkFKScSGIE1BUklKQQorQkFKScSGIE1FTEFOSUpBCitCQUpJxIYgTUnEhk8KK0JBSknEhiBNSUhBSkxPIERSCitCQUpJxIYgTUlMQU4gRFIgUFJPRgorQkFKScSGIE1JTEFOCitCQUpJxIYgTUlMQU4KK0JBSknEhiBNSUxBTgorQkFKScSGIE1JTEFOCitCQUpJxIYgTUlMQU4KK0JBSknEhiBNSUxBTgorQkFKScSGIE1JTEFOCitCQUpJxIYgTUlMRU5LTworQkFKScSGIE1JTEUKK0JBSknEhiBNSUxJQ0EKK0JBSknEhiBNSUxLQQorQkFKScSGIE1JTE9WQU4KK0JBSknEhiBNSU9EUkFHCitCQUpJxIYgTUlSS08KK0JBSknEhiBNSVJLTworQkFKScSGIE1JUk9TTEFWCitCQUpJxIYgTUlST1NMQVYKK0JBSknEhiBNSVJPU0xBVgorQkFKScSGIE1JUk9TTEFWCitCQUpJxIYgTUlUQVIKK0JBSknEhiBNSVRBUgorQkFKScSGIE1JVEEKK0JBSknEhiBNTEFERU4KK0JBSknEhiBNTEFERU4KK0JBSknEhiBNTEFERU4KK0JBSknEhiBNT03EjElMTworQkFKScSGIE5BREEKK0JBSknEhiBOQURBCitCQUpJxIYgTkFUQcWgQQorQkFKScSGIE5FxJBPCitCQUpJxIYgTkVWRU5BCitCQUpJxIYgTklLT0xBCitCQUpJxIYgTklLT0xBCitCQUpJxIYgUEVSQQorQkFKScSGIFBFUk8KK0JBSknEhiBQRVJTSURBCitCQUpJxIYgUEVUQVIKK0JBSknEhiBQRVRBUgorQkFKScSGIFJBREUKK0JBSknEhiBSQURFCitCQUpJxIYgUkFERQorQkFKScSGIFJBRElWT0oKK0JBSknEhiBSQURNSUxBCitCQUpJxIYgUkFET1NMQVYKK0JBSknEhiBTQVZBCitCQUpJxIYgU0FWTworQkFKScSGIFNJTU8KK0JBSknEhiBTSU5JxaBBCitCQUpJxIYgU0xBVktPCitCQUpJxIYgU0xBVktPCitCQUpJxIYgU05Fxb1BTkEKK0JBSknEhiBTTkXFvUFOQQorQkFKScSGIFNPRklKQQorQkFKScSGIFNPRklKQQorQkFKScSGIFNPRklKQQorQkFKScSGIFNPTkpBCitCQUpJxIYgU1BBU09KRQorQkFKScSGIFNUQU5JU0xBVgorQkFKScSGIFNURVZBTgorQkFKScSGIFNURVZBTgorQkFKScSGIFNURVZBTgorQkFKScSGIFNURVZBTgorQkFKScSGIFNWRVRMQU5BCitCQUpJxIYgVE9ET1IKK0JBSknEhiBUT01JU0xBVgorQkFKScSGLVRVUklOU0tJIE1JUkpBTkEKK0JBSknEhiBWQVNBCitCQUpJxIYgVkFTQQorQkFKScSGIFZFUk9OQQorQkFKScSGIFZFU0VMSU4KK0JBSknEhiBWSURBCitCQUpJxIYgVkxBRElNSVIKK0JBSknEhiBWTEFESU1JUgorQkFKScSGIFZMQURJTUlSCitCQUpJxIYgWk9SQU5LQQorQkFKScSGIFpPUkFOCitCQUpJxIYgWk9SQU4KK0JBSknEhiBaT1JBTgorQkFKScSGIFpPUklDQQorQkFKSUxPIERSQUdPTUlSCitCQUpJTE8gRFJBR09NSVIKK0JBSklMTyBEVcWgQU4KK0JBSklMTyBQRVJPCitCQUpJTE8gVklET1NBVkEKK0JBSklMT1YgTEpJTEpBTkEKK0JBSklOIEJPUklTTEFWCitCQUpJTiBCUkFOSVNMQVYKK0JBSklOIEdBVlJJTE8KK0JBSklOIElWQU4KK0JBSklOIEtBxIZBCitCQUpJTiBMSlVCSUNBCitCQUpJTiBNSUxBTktBCitCQUpJTiBOQURBCitCQUpJTiBSQURPSktBCitCQUpJTiBSQUpLTworQkFKSU4gUlXFvUlDQQorQkFKSU4gU0FWQQorQkFKSU4gU0FWRVRBCitCQUpJTiBTVE9KQU5LQQorQkFKS0lOIEFOxJBFTEtPCitCQUpLSU4gU1RPSkFOCitCQUpLSU4gU1ZFVE9aQVIKK0JBSktJTiBWRVNFTElOCitCQUpLSU4gVklUT01JUgorQkFKT1IgTUFSSUpBCitCQUpPVknEhiBCUkFOS08KK0JBSk9WScSGIE1BUkEKK0JBSk9WScSGIE1JVEFSCitCQUpPVknEhiBWRVJBCitCQUpSQU1JIMWgRUZLSQorQkFKUkFNSSDFoEVGS0kKK0JBSlJBTUkgQUdST04KK0JBSlJBTUkgQkFUSUpBCitCQUpSQU1JIEdBTkkKK0JBSlJBTUkgU0tFTkRFUgorQkFKUkFNT1ZJxIYgxaBFUklGCitCQUpSQU1PVknEhiBISVZaSUpBCitCQUpSScSGIFJBRE1JTEEKK0JBSlMgRlJBTkMKK0JBSlVOT1ZJxIYgTUxBREVOCitCQUpVUyBKT8W9RUYKK0JBS8WgQSDEkE9SxJBFCitCQUvFoEEgSU1SRQorQkFLxaBBIEpPxb1FRgorQkFLxaBBIExBSk/FoAorQkFLxaBBIExBSk/FoAorQkFLxaBBIExBU0xPCitCQUvFoEEgTUFHREEKK0JBS8WgQSBNSUhBSkxPCitCQUvFoEEgWk9MVEFOCitCQUvFoEEgWk9MVEFOCitCQUtBIEFOVEFMCitCQUtBIEnFoFRWQU4KK0JBS0EgScWgVFZBTgorQkFLQSBJxaBUVkFOCitCQUtBIElCT0xKQQorQkFLQSBNSUxJQ0EKK0JBS0FJIElSRU4KK0JBS0FKIElWQU4KK0JBS0FKIE1JTEpLTworQkFLQUpJxIYgTUlMQU4KK0JBS0FKSU4gRE9CUklMQQorQkFLQUpJTiBMSlVCT01JUgorQkFLQUpJTiBORVZFTktBCitCQUtBSklOIFRPRE9SCitCQUtBTEnEhiDEkFVMSU5LQSBTVURJSkEKK0JBS0FMScSGIE1JSEFKTE8KK0JBS0FMScSGIFZPSklTTEFWCitCQUtBTE9WScSGIE5FTUFOSkEKK0JBS0VWIMSQT1LEkEUKK0JBS0kgSVJFTkEKK0JBS0kgT1RPCitCQUtJIFZFUkEKK0JBS0nFoCDEjEVET01JUiBESVBMIElORworQkFLScSGIEJPUklWT0pFCitCQUtJxIYgRElNSVRSSUpFCitCQUtJxIYgRFXFoEFOIERJUEwgSU5HCitCQUtJxIYgSVZBTgorQkFLScSGIEpPVkFOCitCQUtJxIYgS09TVEEKK0JBS0nEhiBNSUpPTUlSCitCQUtJxIYgTUlMT8WgCitCQUtJxIYgTUlMT8WgCitCQUtJxIYgTUlMVVRJTgorQkFLScSGIE1JUkEKK0JBS0nEhiBNSVJPU0xBVgorQkFLScSGIE1JUk9TTEFWCitCQUtJxIYgTkFEQQorQkFLScSGIFNJTknFoEEKK0JBS0nEhiBTT05KQQorQkFLTEFJxIYgSk9WQU5LQQorQkFLTUFaIExBWk8KK0JBS01BWiBMSlVCQU4KK0JBS01BWiBaT1JBTgorQkFLTyBNScWgQQorQkFLT8SMRVZJxIYgTUlSSkFOQQorQkFLT8WgIMSQRVLEkEkKK0JBS0/FoCBHQUJPUgorQkFLT8WgIExBSk/FoAorQkFLT8WgIExBU0xPCitCQUtPxaAgTUFSSUpBCitCQUtPxaAgUEFMCitCQUtPxaAgUEVUQVIKK0JBS0/FoCBURVJFWklKQQorQkFLT1ZJxIYgUkFERQorQkFLVEFJIFNURVZBTgorQkFLVU5JxIYgSVZBTgorQkFLVU5JxIYgVklET1NBVkEKK0JBS1ZJxIYgTUlMQU4KK0JBTCBLQVJMTworQkFMIFpWT05JTUlSCitCQUzEjEFLT1ZJxIYgVkFTTworQkFMxaBJxIYgUkFOS0EKK0JBTEEgRVRFTEtBCitCQUxBIEnFoFRWQU4KK0JBTEEgSkFOT8WgCitCQUxBIEpVTElKQU5BCitCQUxBIEpVTElKQQorQkFMQSBLQVJMTworQkFMQSBLQVJMTworQkFMQSBLQVJPTEoKK0JBTEEgTEFESVNMQVYKK0JBTEEgTUlIQUxKCitCQUxBIFRFUkVaCitCQUxBxaBBIEpPxb1FRgorQkFMQcSGIEFOQQorQkFMQcSGIERVxaBBTktBCitCQUxBxIYgSk9WQU4KK0JBTEHEhiBMSlVCTworQkFMQcSGIE1JUk9TTEFWCitCQUxBxIYgTUlST1NMQVYKK0JBTEHEhiBTTEFWS08KK0JBTEHEhiBTUkJJU0xBVgorQkFMQcSGIFNURVZBTgorQkFMQcSGIFZVSk8KK0JBTEHEhiBaT1JBCitCQUxBxb0gxaBBTkRPUgorQkFMQcW9IMSQVUxBCitCQUxBxb0gxJBVTEEKK0JBTEHFvSDEkFVMQQorQkFMQcW9IMSQVUxBCitCQUxBxb0gQURBTEJFUlQKK0JBTEHFvSBBTkEKK0JBTEHFvSBFVEVMS0EKK0JBTEHFvSBHRVpBCitCQUxBxb0gR0VaQQorQkFMQcW9IElSRU5BCitCQUxBxb0gSVZBTktBCitCQUxBxb0gSkFOSUtBCitCQUxBxb0gSkVMSVNBVkVUQQorQkFMQcW9IEpPU0lQCitCQUxBxb0gSk9WQU4KK0JBTEHFvSBLQVRBUklOQQorQkFMQcW9IExBU0xPCitCQUxBxb0gUEFMCitCQUxBxb0gUEFMCitCQUxBxb0tUElSSSDEkEVSxJAKK0JBTEHFvSBaSVRBCitCQUxBxb1FViBTVElQQU4KK0JBTEHFvUVWScSGIFNMT0JPREFOS0EKK0JBTEFCQU4gQk/FoEtPCitCQUxBQkFOIEJSQU5LTworQkFMQUJBTiBNSUxPVkFOCitCQUxBQkFOIE1JTFVUSU4KK0JBTEFCQU4gTkXEkE8KK0JBTEFCQU4gUEVUQVIKK0JBTEFCQU4gU0FWTworQkFMQUJBTiBTUE9NRU5LQQorQkFMQUJBTiBWSUQKK0JBTEFCQU4gVlVLQcWgSU4KK0JBTEFCQU5PViBBTkEKK0JBTEFCQU5PVknEhiBCT8WgS08KK0JBTEFCQU5PVknEhiBNSUxPUkFECitCQUxBQkFOT1ZJxIYgTklLT0xBCitCQUxBQkFOT1ZJxIYgUEVUQVIKK0JBTEFCQU5PVknEhiBWT0pJU0xBVgorQkFMQUogTUlIQUpMTworQkFMQUxJxIYgRMW9RVZBRCBESVBMIElORworQkFMQUxJxIYgRMW9RVZBRAorQkFMQU5FU0tPIEFMRUtTQU5EQVIKK0JBTEFUIElSRU5BCitCQUxBVE9OIMSQRVLEkAorQkFMQVRPTiDEkEVSxJAKK0JBTEFUT04gxJBFUsSQCitCQUxBVE9OIEJFTEEKK0JBTEFUT04gSU1SRQorQkFMQVRPTiBNQUdET0xOQQorQkFMQVRPTiBQRVRBUgorQkFMQ0EgVkxBRElNSVIKK0JBTENBIFZMQURJTUlSCitCQUxEScSGIFNMT0JPREFOCitCQUxFTk9WScSGIEFORFJJSkEKK0JBTEVSIEpPU0lQCitCQUxFVknEhiBNSUxJVk9KCitCQUxHTyBGUkFOQ0nFoEtBCitCQUxJIEFMRUtTQU5EUkEKK0JBTEkgR0FCT1IKK0JBTEkgTEFTTE8KK0JBTEnEhiBFU0FECitCQUxJxb0gSUxEQQorQkFMScW9IE1JSEFMSgorQkFMScW9IFpPTFRBTgorQkFMSU5EIFBBTAorQkFMSU5EIFNJTFZJQQorQkFMSU5PVknEhiBNSUxFVkEKK0JBTElOT1ZJxIYgU0lOScWgQQorQkFMSU5UIMWgQU5ET1IgTVIKK0JBTElOVCDFvUlHTVVORAorQkFMSU5UIMSQT1LEkEUKK0JBTElOVCDEkFVSQQorQkFMSU5UIEFORFJFSgorQkFMSU5UIERFxb1FCitCQUxJTlQgScWgVFZBTgorQkFMSU5UIElMT05BCitCQUxJTlQgSU1SRQorQkFMSU5UIElNUkUKK0JBTElOVCBKT8W9RUYKK0JBTElOVCBKT8W9RUYKK0JBTElOVCBKT1NJUAorQkFMSU5UIEpPU0lQCitCQUxJTlQgSk9TSVAKK0JBTElOVCBKVUxJSkFOQQorQkFMSU5UIEtBUk9MSgorQkFMSU5UIE1BxIZBxaAKK0JBTElOVCBNQVJHQVJFVEEKK0JBTElOVCBNQVJJQQorQkFMSU5UIE1BUklKQQorQkFMSU5UIE1BUklKQQorQkFMSU5UIE1JSEFJTE8KK0JBTElOVCBNSVJPU0xBVgorQkFMSU5ULU1JVFJPVknEhiBPTEdBCitCQUxJTlQgUkFET1NMQVYKK0JBTElOVCBST0JFUlQKK0JBTElOVCBTTEFWT01JUgorQkFMSiBCUkFOS08KK0JBTEogTUlMT1JBRAorQkFMSiBTQVZPCitCQUxKQSBJRFJJWgorQkFMSkFLIMSMRURPTUlSCitCQUxKT8WgRVZJxIYgQUxFS1NBTkRBUgorQkFMSk/FoEVWScSGIEJPR0RBTktBCitCQUxKT8WgRVZJxIYgSk9WQU4KK0JBTEpPxaBFVknEhiBNSVJPCitCQUxKT1pPVknEhiBPTElWRVJBCitCQUxKT1pPVknEhiBUT01JU0xBViBEUgorQkFMS09WT0ogVkxBRElNSVIKK0JBTE5Pxb1BTiBORVZFTktBCitCQUxOT8W9QU4gU0lNQQorQkFMTyBHQcWgUEFSCitCQUxPIFBFVEFSCitCQUxPxaAgTlVDQQorQkFMT8WgIFRPRE9SCitCQUxPxaAgVE9ET1IKK0JBTE9CQU4gTUlMQU4KK0JBTE9CQU4gTUlMQU4KK0JBTE9HIMWgQU5ET1IKK0JBTE9HIMW9SVZLQQorQkFMT0cgxb1Vxb1BTkEKK0JBTE9HIMSQT1LEkEUKK0JBTE9HIMSQT1LEkEUKK0JBTE9HIMSQT1LEkEUKK0JBTE9HIMSQVVJBCitCQUxPRyDEkFVSQQorQkFMT0cgQUxFS1NBTkRBUgorQkFMT0cgQU5BCitCQUxPRyBBTkEKK0JBTE9HIEFOQQorQkFMT0cgQU5EUkHFoAorQkFMT0cgQU5EUklKQQorQkFMT0cgQkVMQQorQkFMT0cgQlJBTktPCitCQUxPRyBERcW9RQorQkFMT0cgREXFvUUKK0JBTE9HIERSQUdBTgorQkFMT0cgRFXFoEFOS0EKK0JBTE9HIEZFUkVOQworQkFMT0cgRlJBTkpBCitCQUxPRyBGUkFOSkEKK0JBTE9HIEZSQU5KQQorQkFMT0cgScWgVFZBTgorQkFMT0cgSUJPSktBCitCQUxPRyBJTVJFCitCQUxPRyBJTVJFCitCQUxPRyBKT8W9RUYKK0JBTE9HIEpPQ0EKK0JBTE9HIEpPVkFOCitCQUxPRyBKVUxJSkFOQQorQkFMT0cgSlVMSUpBTkEKK0JBTE9HIEtBTE1BTgorQkFMT0cgS0FST0xKCitCQUxPRyBLQVJPTEoKK0JBTE9HIEtBVEFSSU5BCitCQUxPRyBMQURJU0xBVgorQkFMT0cgTEFESVNMQVYKK0JBTE9HIExBU0xPCitCQUxPRyBNQUdEQQorQkFMT0cgTUFSQQorQkFMT0cgTUFSSUpBCitCQUxPRyBNQVJJSkEKK0JBTE9HIE1BUklKQQorQkFMT0cgTUFSSUpBCitCQUxPRyBNQVJJSkEKK0JBTE9HIE1BUlRBCitCQUxPRyBNSUxFTkEKK0JBTE9HIE1JUktPCitCQUxPRyBOSUtPTEEKK0JBTE9HIE5JS09MQQorQkFMT0cgUEnFoFRBCitCQUxPRyBQSVJPxaBLQQorQkFMT0cgU0lNQQorQkFMT0cgU01JTEpBCitCQUxPRyBTUE9NRU5LQQorQkFMT0cgU1RFVkFOCitCQUxPRyBTVEVWQU4KK0JBTE9HIFNURVZBTgorQkFMT0cgVElCT1IKK0JBTE9HIFZFTElNSVIKK0JBTE9HIFpPUkFOCitCQUxPSyBJxaBUVkFOCitCQUxPVknEhiBNSUxJxIYKK0JBTFRBIEFOQQorQkFMVEnEhiBEQU5JQ0EKK0JBTFRJxIYgUkFETUlMQQorQkFMVEnEhiBWTEFESU1JUiBEUgorQkFMVE9WScSGIERSQUdBTgorQkFMVE9WScSGIFBFVEFSCitCQUxVTk9WScSGIElWQU4KK0JBTUJVTE9WScSGIE1JTEtBCitCQU4gU1RFVkFOCitCQU7EjEVWScSGIFBFVEFSCitCQU7EjEVWScSGIFJBREUKK0JBTsSMSSBCQUxJTlQKK0JBTsSMSSBLQVJPTEoKK0JBTsSMScSGIMW9SVZLTworQkFOxIxJxIYgQUxFS1NBTkRBUgorQkFOxIxJxIYgSk9WQU4KK0JBTsSMScSGIEpVTEtBCitCQU7EjEnEhiBMQVpBCitCQU7EjEnEhiBNQVJJSkEKK0JBTsSMScSGIFNPRklKQQorQkFOxIxJxIYgU1RFVklDQQorQkFOxIxJxIYgVE9ET1IKK0JBTsSQVVIgTUlSS08KK0JBTkHEhkFOSU4gTEpJTEpBTkEKK0JBTkHEhkFOSU4gT0xHQQorQkFOQUkgVElCT1IKK0JBTkFJIFZFUkEKK0JBTkFKIEpPU0lQCitCQU5EQSDFvUlWS08KK0JBTkRJxIYgQkxBR09KRQorQkFOREnEhiBKRUxJQ0EKK0JBTkRJxIYgTEpVQk9NSVIKK0JBTkRJxIYgTEpVQk8KK0JBTkRJxIYgUkFERQorQkFOREnEhiBTQVZLQQorQkFOREnEhiBUT01JU0xBVgorQkFOREnEhiBWRVJJQ0EKK0JBTkRJxIYgVlVKQURJTgorQkFORElOIMW9SVZPUkFECitCQU5ESU4gSVZBTgorQkFORElOIEtBVElDQQorQkFORElOIE1JT0RSQUcKK0JBTkRJTiBNTEFERU4KK0JBTkRPQlJBTlNLSSBPTEdBCitCQU5ET0xPIERSQUdJQ0EKK0JBTkRVS0EgRFJBR1VUSU4KK0JBTkZJIE1BUklKQQorQkFOR08gTEpVREVWSVQKK0JBTknEhiBBTsSQQQorQkFOScSGIEJPxb1JREFSCitCQU5JxIYgQlJBTktPIERSCitCQU5JxIYgRU1JTElKQQorQkFOScSGIEVWSUNBCitCQU5JxIYgS0FUSUNBCitCQU5JxIYgTUlMT8WgCitCQU5JxIYgTUlMT1ZBTgorQkFOScSGIFBBTkUKK0JBTknEhiBQRVRBUgorQkFOScSGIFJBREUKK0JBTknEhiBSQURPTUlSCitCQU5JxIYgUkFTVEtPCitCQU5JxIYgUlXFvUlDQQorQkFOScSGIFNMQVZLTworQkFOScSGIFNWRVRPWkFSCitCQU5JxIYgWk9SS0EKK0JBTknEhkVWScSGIEpFTEVOQQorQkFOScSGRVZJxIYgVkVTRUxJTgorQkFOSUEtxb1JVkFESU5PVknEhiBNSVJKQU5BCitCQU5KQcWgIMSQVVJBCitCQU5KQUMgxIxFRE9NSVIKK0JBTkpBQyDEjEVETworQkFOSkFDIMSMRURPCitCQU5KQUMgxaBQSVJPIERJUEwgSU5HCitCQU5KQUMgxb1JVkFOCitCQU5KQUMgxJBPUsSQRQorQkFOSkFDIMSQT1LEkEUKK0JBTkpBQyDEkE9SxJBFCitCQU5KQUMgQk9TSUxKS0EKK0JBTkpBQyBEQU5JTE8KK0JBTkpBQyBETUlUQVIKK0JBTkpBQyBEUkFHQU4gRElQTCBJTkcKK0JBTkpBQyBEUkFHQU4KK0JBTkpBQyBEUkFHSUNBCitCQU5KQUMgRFJBR0lDQQorQkFOSkFDIERVxaBBTgorQkFOSkFDIERVxaBLTworQkFOSkFDIERVxaBLTworQkFOSkFDIEVNSUwKK0JBTkpBQyBHQVZSQQorQkFOSkFDIEdPSktPCitCQU5KQUMgSkVMRU5BCitCQU5KQUMgSk9WQU4KK0JBTkpBQyBKT1ZBTgorQkFOSkFDIEtBVElDQQorQkFOSkFDIE1JTEFOCitCQU5KQUMgTUlMQU4KK0JBTkpBQyBNSUxFCitCQU5KQUMgTUlMT1JBRAorQkFOSkFDIE1JUktPCitCQU5KQUMgTkVERUxKS08KK0JBTkpBQyBOSUtPTEEKK0JBTkpBQyBPTEdBCitCQU5KQUMgUEVSTworQkFOSkFDIFBFVEFSCitCQU5KQUMgUkFEQQorQkFOSkFDIFJBRE9OSkEKK0JBTkpBQyBTQVZBCitCQU5KQUMgU0FWQQorQkFOSkFDIFNBVkVUQQorQkFOSkFDIFNBVk8KK0JBTkpBQyBTTEFWS08KK0JBTkpBQyBTTEFWTkEKK0JBTkpBQyBTTE9CT0RBTgorQkFOSkFDIFNURVZBTgorQkFOSkFDIFRFT0RPUgorQkFOSkFDIFZFU05BCitCQU5KQUMgVklOS08KK0JBTkpBQyBWSVRPTUlSCitCQU5KQUMgVk9KSVNMQVYKK0JBTkpBSSBKQUdBCitCQU5KQUkgSkFOT8WgCitCQU5KQUkgSk9WQU4KK0JBTkpBSSBMQUpPxaAKK0JBTkpBSSBNQcSGQcWgCitCQU5KQUkgTUFSSUpBCitCQU5KQUkgUk9NQU4KK0JBTkpBSSBSVcW9QQorQkFOSkFOQUMgQlJBTktPCitCQU5KQU5BQyBCUkFUSVNMQVYKK0JBTkpBTkFDIE1JTEFOCitCQU5KQU5BQyBSQURFCitCQU5KQU5BQyBTTEFWSUNBCitCQU5KQU5JTiBEQU5JQ0EKK0JBTkpBTklOIERBUkEKK0JBTkpBTklOIEpFTEVOQQorQkFOSkFOSU4gSkVMSVNBVkVUQQorQkFOSkFOSU4gSk9WQU4KK0JBTkpBTklOIE5FREVMSktPCitCQU5KQU5JTiBORURFTEpLTworQkFOSkFOSU4gTklLT0xBCitCQU5KQU5JTiBOSUtPTEEKK0JBTkpBTklOIFJBRE1JTEEKK0JBTkpBTklOIFNPRklKQQorQkFOSkFOSU4gVkVMSU1JUgorQkFOSkFSSSBMQUpPxaAKK0JBTkpFR0xBViBCT8W9QQorQkFOSkVHTEFWIERSQUdBTgorQkFOSkVHTEFWIERVxaBBTgorQkFOSkVHTEFWIE5JS09MQQorQkFOSkVHTEFWIFJBRElWT0oKK0JBTkpFVknEhiBTTE9CT0RBTktBCitCQU5LQSBMQUpPxaAKK0JBTktPVkHEjEtJIMSQVVJBCitCQU5LT1ZBxIxLSSBKT1ZBTgorQkFOS09WQcSMS0kgTUFSSUpBCitCQU5LT1ZBxIxLSSBOQURBCitCQU5LT1ZBxIxLSSBQRVRBUgorQkFOS09WQcSMS0kgU0FWQQorQkFOS09WQcSMS0kgU1ZFVE9aQVIKK0JBTktPVknEhiBNSUxVTgorQkFOT1bEjEFOSU4gRFJBR0lDQQorQkFOT1bEjEFOSU4gTUlMQU4KK0JBTk9WxIxBTklOIE1PTcSMSUxPCitCQU5PVkHEjEtJIMSQT1LEkEUKK0JBTk9WQcSMS0kgSk9WQU4KK0JBTk9WQcSMS0kgTUFSSUpBCitCQU5PVkHEjEtJIFJVxb1JQ0EKK0JBTk9WScSGIMW9QVJLTworQkFOT1ZJxIYgxb1JVk9SQUQKK0JBTk9WScSGIERVxaBBTgorQkFOT1ZJxIYgSk9WQU5LQQorQkFOT1ZJxIYgTEVQT1NBVkEKK0JBTk9WScSGLUxPQyBOQURBCitCQU5PVknEhiBNSUxBTgorQkFOT1ZJxIYgTUlMQU4KK0JBTk9WScSGIE1JTEpLTworQkFOT1ZJxIYgTklLT0xBCitCQU5PVknEhiBTTEFWQQorQkFOT1ZJxIYgU0xPQk9EQU4KK0JBTlNLSSBFUklLQQorQkFOU0tJIE1BUklKQQorQkFSxIxJS0lOIMSQT1LEkEUKK0JBUsWgSSBFTkRSRQorQkFSxaBJIExBU0xPCitCQVJBxIxBTklOIERBTklDQQorQkFSQcSMQU5JTiBMQVpBUgorQkFSQcSMQU5JTiBQQUpBCitCQVJBxIxBTklOIFNBVktBCitCQVJBxIxJIFNURVZBTgorQkFSQcSMS09WIMSMRURPTUlSCitCQVJBxIxLT1YgxJBPUsSQRQorQkFSQcSMS09WIEdPUklOS0EKK0JBUkHEjEtPViBNSUxBTgorQkFSQcSMS09WIFNSRURPSkUKK0JBUkHEjEtPViBWRVNFTElOCitCQVJBxaBFVknEhiBNSVJPU0xBVkEKK0JBUkHFoEVWScSGIFRPTUlTTEFWCitCQVJBxaBJTiBHT1JBTgorQkFSQcWgSU4gTEpVQk9NSVIKK0JBUkHFoElOIE5FVkVOS0EKK0JBUkHFoElOIFNBVkEKK0JBUkHEhiDFvUFSS08KK0JBUkHEhiBEUkFHSUNBCitCQVJBxIYgRFXFoEFOS0EKK0JBUkHEhiBHT0RJTUlSCitCQVJBxIYgR09KS08KK0JBUkHEhiBKT1NJUAorQkFSQcSGIEtPVklMSktBCitCQVJBxIYgTUlMQU4KK0JBUkHEhiBNSUxPxaAKK0JBUkHEhiBNSUxPxaAKK0JBUkHEhiBNSUxPU0FWQQorQkFSQcSGIE1PTcSMSUxPCitCQVJBxIYgUkFET05KQQorQkFSQcSGIFNBUkFGSU5BCitCQVJBxIYgU1RBTklNSVJLQQorQkFSQcSGIFZFU0VMSU4KK0JBUkHEhiBWSURBSworQkFSQcSGIFZVxIxJTkEKK0JBUkFDIE1BTEnFoEEKK0JBUkFDIE1BUktPCitCQVJBQyBOT1ZPCitCQVJBQyBUT01JU0xBVgorQkFSQUpFVkFDIEpPVkEKK0JBUkFLTyBTQVZBCitCQVJBTEnEhiBNSVJPU0xBVgorQkFSQU4gSkFLSU0KK0JBUkFOIE1JSEFKTE8KK0JBUkFOIE1JUk9OIERJUEwgSU5HCitCQVJBTklOIFZBU0lMSUpFCitCQVJBTkpBSSBKRU5FCitCQVJBTkpJIEZFUkVOQworQkFSQU5KSSBGRVJFTkMKK0JBUkFOSkkgTEFTTE8KK0JBUkFOSkkgUEFWTEUKK0JBUkFOSkkgU1RFVkFOCitCQVJBTk9WU0tJIFZMQURBCitCQVJBUyBUT01BIERSCitCQVJBVCBBTEVLU0FOREFSCitCQVJBVCBEUkFHSUNBCitCQVJBVCBEUkFHSU5KQQorQkFSQVQgRkVSRU5DCitCQVJBVCBJTVJFCitCQVJBVCBPTEdBCitCQVJBVCBPU0tBUgorQkFSQVRPViBCT8WgS08KK0JBUkJBUknEhiBBTlRFCitCQVJCQVJJxIYgUEFWTEUKK0JBUkJBVEVTS09WScSGIExKVUJJxaBBCitCQVJCRVJJxIYgRFJBR0FOCitCQVJCRVJJxIYgTUlSS08KK0JBUkJJUiBBTlRFCitCQVJCSVIgTEpVQkEKK0JBUkJVIFZBU0EKK0JBUkJVTCBNQVJJSkEKK0JBUkJVTCBNSUxBTgorQkFSQlVMIE1JTEFOCitCQVJCVUwgU0FWQQorQkFSQlVMIFNUT0pBTgorQkFSQlVMIFZMQURJU0xBVkEKK0JBUkJVTE9WIERJTUlUUklKRQorQkFSQlVMT1YgRE9CUklWT0oKK0JBUkJVTE9WIE1JTElWT0oKK0JBUkJVTE9WIE5JS09MQQorQkFSQlVMT1ZJxIYgRFJBR0FOCitCQVJCVVpBTiBKQVNOQQorQkFSQlVaQU4gUlXFvUlDQQorQkFSQ0FMIMSQRVLEkAorQkFSQ0FMIEFOQQorQkFSQ0FMIEpPxb1FRgorQkFSQ0FMIExBU0xPIERJUEwgSU5HCitCQVJDRUwgS0FUSUNBCitCQVJEQUsgQUxFS1NBTkRBUgorQkFSREFLIEFOS0lDQQorQkFSREFLIExVS0EKK0JBUkRJxIYgxb1FTEpLTworQkFSREnEhiBNSVJLTworQkFSRE/FoCBKT8W9RUYKK0JBUkRPxaAgTUVMQU5JSkEKK0JBUkRVTiBLQVJMTworQkFSRcWgScSGIElWQU4KK0JBUkXFoEnEhiBNQVRPCitCQVJFVEnEhiBEUkFHT0xKVUIKK0JBUknEjEVWScSGIFNUSVBFCitCQVJJxIxJxIYgQklTRVJLQQorQkFSScWgScSGIEFOxJBFTEtPCitCQVJJxaBJxIYgQkxBR09KRQorQkFSScWgScSGIEJPxaBLTworQkFSScWgScSGIElMSUpBCitCQVJJxaBJxIYgSUxJSkEKK0JBUknFoEnEhiBKQU5KQQorQkFSScWgScSGIExKVUJJQ0EKK0JBUknFoEnEhiBNQVJLTworQkFSScWgScSGIE1JTEFOCitCQVJJxaBJxIYgTUlMQU4KK0JBUknFoEnEhiBQRVRBUgorQkFSScWgScSGIFNUSkVQQU4KK0JBUknFoEnEhiBWRVJPTklLQQorQkFSScWgScSGIFpPUktBCitCQVJJxIYgTEpVQklDQQorQkFSScSGIFBBVUxJTkEKK0JBUknEhiBTTEFWSUNBCitCQVJKQUtUQVIgU1BBU0VOSUpBCitCQVJKQUtUQVIgU1RFVkEKK0JBUkpBS1RBUkVWScSGIMW9SVZLTworQkFSSkFLVEFSRVZJxIYgRFJBR0FOCitCQVJKQUtUQVJFVknEhiBNQVJBCitCQVJKQUtUQVJFVknEhiBNQVJBCitCQVJKQUtUQVJFVknEhiBNSUxBTgorQkFSSkFLVEFSRVZJxIYgTUlMS0EKK0JBUkpBS1RBUkVWScSGIE1JTE9KRQorQkFSSkFLVEFSRVZJxIYgVkFMRVJJSkEKK0JBUkpBS1RBUkVWScSGIFpMQVRLTworQkFSSkFLVEFST1YgTUlMSUNBCitCQVJKQUtUQVJPVknEhiDEkE9LTworQkFSSkFLVEFST1ZJxIYgQU5LQQorQkFSSkFLVEFST1ZJxIYgTUlMT8WgCitCQVJKQUtUQVJPVknEhiBTTkXFvUFOQQorQkFSSkFLVEFST1ZJxIYgVlXEjElOQQorQkFSSkFLVEFST1ZJxIYgVlXEjElOQQorQkFSSkFLVEFST1ZJxIYgWk9SS0EKK0JBUkpBTU9WScSGIEFMSUwKK0JBUkpBTU9WScSGIEFSU0VOSUpFCitCQVJKQU1PVknEhiBTTE9CT0RBTgorQkFSTkEgR0HFoFBBUgorQkFSTkEgSVZBTgorQkFSTkEgSkFOT8WgCitCQVJOQSBKT1NJUAorQkFSTkEgTUlIQUxKCitCQVJPIEZSQU5KTworQkFSTyBKRUxFTkEKK0JBUk8gSk/FvUVGCitCQVJPIEpPxb1FRgorQkFSTyBKT1NJUAorQkFST8WgIEJPxb1PCitCQVJPxaAgQk9SSVNMQVYgRFIKK0JBUk/FoCBCT1JJU0xBVgorQkFST8WgIExBWk8KK0JBUk/FoCBORUJPSsWgQQorQkFST8WgIE5JS09MQQorQkFST8WgIE5JS09MQQorQkFST8WgRVZJxIYgSk9WTworQkFST1ZJxIYgVkVMSU1JUgorQkFST1ZJxIYgVk9KSVNMQVYKK0JBUlRBIMSQRVLEkAorQkFSVEEgxJBPUsSQRQorQkFSVEEgQVJQQUQKK0JBUlRBIERFxb1FCitCQVJUQSBFTUEKK0JBUlRBIElMRElLTworQkFSVEEgSVJNQQorQkFSVEEgTUFHREFMRU5BCitCQVJURUsgQU5EUklKQQorQkFSVEVLIEtBVEFSSU5BCitCQVJURUsgUlVET0xGIERJUEwgSU5HCitCQVJURUsgU1RFVkFOCitCQVJUT8WgIERBTklMTworQkFSVE/FoCBEUkFHSUNBCitCQVJUT8WgIElNUkUKK0JBUlRPxaAgTEFESVNMQVYKK0JBUlRPxaAgTEFTTE8KK0JBUlRPxaAgU1ZFVExBTkEKK0JBUlRPxaAgWlZPTklNSVIKK0JBUlRPSiBNSVJKQU5BCitCQVJUT0sgTUFSR0lUCitCQVJUT0xPVknEhiBBTlRVTgorQkFSVE9MT1ZJxIYgSk9TSVAKK0JBUlRPTE9WScSGIE1BUklOCitCQVJUVUxPVknEhiBQQVZMRQorQkFSVcWgScSGIE1BUlRJTgorQkFSVUTFvUlKQSBNQVJLTworQkFSVURBTk9WIERVxaBBTktBCitCQVNBUkEgxJBVUk8KK0JBU0FSQSBBTktBCitCQVNBUkEgRElWTkEKK0JBU0FSQSBEUkFHSUNBCitCQVNBUkEgSk9WQU4KK0JBU0FSQSBNQVJUQQorQkFTQVJBIE1JTElWT0oKK0JBU0FSQSBNSVJBCitCQVNBUkEgUEFKTworQkFTQVJBQkEgRFXFoElDQQorQkFTQVJJxIYgQk9HREFOCitCQVNBUknEhiBEQU5FCitCQVNBUknEhiBEUkFHSU5KQQorQkFTQVJJxIYgRFXFoEFOCitCQVNBUknEhiBKRUxFTkEKK0JBU0FSScSGIEpPVkFOCitCQVNBUknEhiBMSlVCT01JUgorQkFTQVJJxIYgTUlMQU4KK0JBU0FSScSGIE1JTEFOCitCQVNBUknEhiBNSUxLQQorQkFTQVJJxIYgTUlSSkFOQQorQkFTQVJJxIYgTklLT0xBCitCQVNBUknEhiBTVEVWQU4KK0JBU0FSScSGIFZFUkEKK0JBU0nEhiBLT1ZJTEpLQQorQkFTScSGIFNSxJBBTgorQkFTSU9MSSBTUkXEhktPCitCQVNLSUpJTiBaT1JBCitCQVNSQUsgQlJBTktPCitCQVNSQUsgTUlMQU4KK0JBU1RBIERBTkUKK0JBU1RBIERBTklFTEEKK0JBU1RBIERSQUdVVElOCitCQVNUQSBEVcWgQU4KK0JBU1RBIElWQU5BCitCQVNUQSBLQVRJQ0EKK0JBU1RBIExKVUJJQ0EKK0JBU1RBIE1BUklKQQorQkFTVEEgTUFSSUpBCitCQVNUQSBNQVJJSkEKK0JBU1RBIE1JTEFOCitCQVNUQSBNSUxPxaAKK0JBU1RBIE1JUk9TTEFWCitCQVNUQSBOSUtPTEEKK0JBU1RBIFNURVZBCitCQVNUQSBWTEFETworQkFTVEFIIEJSQU5LTworQkFTVEFKQSBCUkFOS08KK0JBU1RBSkEgTUlMQU4KK0JBVEEgREVaSURFUgorQkFUQSBJTE9OQQorQkFUQSBLQVJPTEoKK0JBVEEgTEFTTE8KK0JBVEEgTEFTTE8KK0JBVEEgTUFSR0lUQQorQkFUQUpJxIYgQk9HT0xKVUIKK0JBVEFLIEVNSUwKK0JBVEFLIE1JUktPCitCQVRBS09WScSGIEtPU0FSQQorQkFUQUtPVknEhiBNSUxBTgorQkFUQUtPVknEhiBWSVRPTUlSCitCQVRBTE9WIFJBRElDQQorQkFUQU7EjEVWIEpPVkFOCitCQVRBTsSMRVYgU0xBVk5BCitCQVRBTkpTS0kgTUlMQU4KK0JBVEFOSlNLSSBNSUxBTgorQkFUQU5PVknEhiBBTktBCitCQVRBUiDEjEVET01JUgorQkFUQVIgxIxFRE9NSVIKK0JBVEFSIE1JTE/FoAorQkFUQVIgTU9NSVIKK0JBVEFSIFNMT0JPREFOCitCQVRBUiBWRUxJTUlSCitCQVRBUiBWT0pJTgorQkFUQVJJTE8gxb1FTEpLTworQkFUQVMgQk/FvUFOQQorQkFUQVogVkxBRE8KK0JBVEVSTkVLIElWQU4KK0JBVEnEhiDEkFVSQcSQCitCQVRJxIYgQk/FvUlEQVIKK0JBVEnEhiBCUkFOS0EKK0JBVEnEhiBJVkFOQQorQkFUScSGIE1JSEFKTE8KK0JBVElOScSGIMSQVVJPCitCQVRJTknEhiBEUkFHQU4KK0JBVElOScSGIEdPUkRBTkEKK0JBVElOScSGIFNBVkEKK0JBVElOScSGIFNQQVNPSkUKK0JBVElTVEnEhiBJVkFOCitCQVRLScSGIEpVU1VGCitCQVRLScSGIFNUQU5JU0xBVkEKK0JBVEtPVknEhiBNQVJBCitCQVRPUkkgSkFOT8WgCitCQVRPUkkgSk/FvUVGCitCQVRPUkkgTUFSSUpBCitCQVRPUkkgTUFSSUpBCitCQVRPUkkgTUlIQUxKCitCQVRPUkkgTUlIQUxKCitCQVRPUkkgTUlIQUxKCitCQVRPUyBBTEVLU0FOREFSCitCQVRPUyBCT8WgS08KK0JBVE9TIEJPxaBLTworQkFUT1MgTUlMQU4KK0JBVE9TIE5BREEKK0JBVE9TIFJBRElWT0oKK0JBVE9TIFpPUklDQQorQkFUUk5FSyBaREVOS0EKK0JBVFVSQU4gT0JSQUQKK0JBVFVSQU4gUkFET1ZBTgorQkFVRVIgRVZBCitCQVVFUiBKVUxJSkFOQQorQkFVRVIgS1NFTklKQQorQkFVRVIgT1RPCitCQVVLIERSQUdBTgorQkFVS09WIFZMQURJTUlSCitCQVVSQU5PViBMQVpBUgorQkFWQVLEjEnEhiBNSUxPUkFECitCQVZBUsSMScSGIFZFU0VMSU4KK0JBWkFOxIxJSyBWQUxFUklKQQorQkFaT0tJTiDFvUlWSUNBCitCRcSMIEpBTkpBCitCRcSMRUkgTEFKT8WgCitCRcSMRUpBQyBBTEVLU0FOREFSCitCRcSMRUpBQyBCT8WgS08KK0JFxIxFSkFDIEJSQU5JU0xBVgorQkXEjEVKQUMgSk9WQU4KK0JFxIxFSkFDIEtBTUVOS08KK0JFxIxFSkFDIE1JTEFOCitCRcSMRUpBQyBSQURFTktPCitCRcSMRUpBQyBSQURPSktBCitCRcSMRUpBQyBTQVZBCitCRcSMRUxJxIYgxJBPUsSQRQorQkXEjEVMScSGIEJJU0VSS0EKK0JFxIxFTEnEhiBCT1NJTEpLQQorQkXEjEVMScSGIERPQlJJTktPCitCRcSMRUxJxIYgRFJBR0lDQQorQkXEjEVMScSGIEdJTkEKK0JFxIxFTEnEhiBKT1ZBTgorQkXEjEVMScSGIExBWkFSCitCRcSMRUxJxIYgTUFSSUpBCitCRcSMRUxJxIYgTUFSSUpBCitCRcSMRUxJxIYgTUlMQU4KK0JFxIxFTEnEhiBNSUxFTkEKK0JFxIxFTEnEhiBNSUxJQ0EKK0JFxIxFTEnEhiBNSUxPxaAKK0JFxIxFTEnEhiBQRVRBUgorQkXEjEVMScSGIFJBRElWT0oKK0JFxIxFTEnEhiBSQURPVkFOCitCRcSMRUxJxIYgU1RFVkFOCitCRcSMRUxJxIYgU1RFVkFOCitCRcSMRUxJxIYgVkFTQQorQkXEjEVMScSGIFZFU0VMSU4KK0JFxIxFTEnEhiBWRVNFTElOCitCRcSMScSGIE1VSElCQQorQkXEjEnEhiBWRVJPTEpVQgorQkXEjEtFSSBKQU5PxaAKK0JFxIxLRUkgUEVUQVIKK0JFxIxLRUpJIEtBUkxPCitCRcSMVkFSREkgQUxFS1NBTkRBUgorQkXEjFZBUkRJIEpPU0lQCitCRcWgQU5JxIYgQk/FvUFOQQorQkXFoEFOScSGIFpEUkFWS08KK0JFxaBFTkpJIEtBUkxPCitCRcWgRU5KSSBLQVJMTworQkXFoEVOU0tJIE5JS09MQQorQkXFoEVWScSGIEFMRUtTQQorQkXFoEVWScSGIEpPVkFOCitCRcWgRVZJxIYgTUlSSkFOQQorQkXFoEVWScSGIE5JS09MQSBESVBMIE9FQworQkXFoEnEhiBNQVJJSkEKK0JFxaBJxIYgTUFSSUpBCitCRcWgScSGIE1FSE1FRAorQkXFoEnEhiBNSUhBSkxPCitCRcWgScSGIFNMT0JPREFOCitCRcWgScSGIFNWRVRJU0xBVgorQkXFoEtFUiBBTkRSSUpBCitCRcWgS0VSIEJPxb1PCitCRcWgS0VSIFNSRcSGS0EKK0JFxaBMScSGIEpPVkFOCitCRcWgTEnEhiBURVJFWklKQQorQkXFoExJSkEgR09TUEFWQQorQkXFoExJTiDFvUlWS08gRElQTCBPRUMKK0JFxaBMSU4gQlJBTktPCitCRcWgTElOIElWQU4KK0JFxaBMSU4gSVZJQ0EKK0JFxaBMSU4gSkVMSVNBVkVUQQorQkXFoExJTiBNSU9EUkFHCitCRcWgTElOIFNUT0pBTgorQkXFoExJTiBWTEFESVNMQVZBCitCRcSGQUdVTCBTQVZBCitCRcSGSU4gQUxFS1NBTkRBUgorQkXEhklOIE9MR0EKK0JFxIZJUk9WU0tJIEFERU0KK0JFxb1BTiBWSUtUT1IKK0JFxb1BTk9WIEFMRUtTQU5EQVIKK0JFxb1BTk9WIEJSQU5JU0xBVgorQkXFvUFOT1YgRFJBR09MSlVCCitCRcW9QU5PViBNSVJPTEpVQgorQkXFvUFOT1ZJxIYgxJBPUsSQRQorQkVBREVSIEpPVkFOCitCRUFSQSDFvUlWS08KK0JFQVJBIMSQT1LEkEUKK0JFQVJBIEpPVkFOCitCRUFSQSBNQVJLTworQkVBUkEgUEVUQVIKK0JFQVJBIFBFVEFSCitCRUFUT1ZJxIYgTkVCT0rFoEEKK0JFQkVLIE1BVE8KK0JFQkVMSkEtTUFUVcWgIEFOS0EKK0JFQknEhiBBTkEKK0JFQknEhiBMSklMSkFOQQorQkVCScSGIE5FVkVOS0EKK0JFQknEhiBORVZFTktBCitCRUJJxIYgUEVUQVIKK0JFQknEhiBTVE9KQU5LQQorQkVDRSBCRUxBCitCRUNFIFRJQk9SCitCRUNJxIYgU1RFVkFOCitCRUTFvUVUSSBNQVJJSkEKK0JFREFLIEJJTEpBTkEKK0JFREUgxaBBTkRPUgorQkVERSBQRVRBUiBEUgorQkVERSBQRVRBUgorQkVERUtPVknEhiBBTlRPTgorQkVETkFSSUsgQU5EUklKQQorQkVETkFSSUsgREFSSU5LQQorQkVETkFSSUsgSkFOT8WgCitCRUROQVJJSyBKT1NJUAorQkVETkFSSUsgTUlIQUxKCitCRURPViBCSVNFUktBCitCRURPViBKT1ZBTgorQkVET1YgTEpVQklDQQorQkVET1YgTUFSSUpBCitCRURPViBNSVJPU0xBVgorQkVET1YgTkFEQQorQkVET1YgUFJFRFJBRworQkVET1YgUkFEQQorQkVET1YgU1LEkEFOCitCRURPViBTVU7EjElDQQorQkVET1YgU1ZFVElTTEFWCitCRURSSUsgQUxFS1NBTkRBUgorQkVHIEFORFJJSkEKK0JFRy1WQUxPVknEjEnEhiBBTsSQRUxLTworQkVHLVZPTE9WScSMScSGIElWQU4KK0JFR0FOSSDFoEVSSUYKK0JFR0FOT1ZJxIYgTUVITUVECitCRUdBTk9WScSGIFNBTklECitCRUdFxIxLSSBSQUpLTworQkVHRcSMS0kgU0FWQQorQkVHRU5JxaBJxIYgRFJBR09SQUQKK0JFR0VOScWgScSGIFZVS0HFoElOCitCRUdJxIYgTUlMT8WgCitCRUdJxIYgTUlSS08KK0JFR0xFUkJFR09WScSGIETFvUVWQUQKK0JFR09KRVYgQU5LQQorQkVHT0pFViBCT0dEQU4KK0JFR09KRVYgTEFaQVIKK0JFR09KRVYgTEFaQQorQkVHT0pFViBQRVRBUgorQkVHT0pFViBSQURPSktBCitCRUdPSkVWIFRPxaBBCitCRUdPSkVWScSGIFJBRElWT0oKK0JFR09WScSGIEVWSUNBCitCRUdPVknEhiBKQVNNSU5BCitCRUdPVknEhiBKT1ZBTgorQkVHT1ZJxIYgTEFESVNMQVYKK0JFR09WScSGLUxJVkFKQSBJTElKQQorQkVHT1ZJxIYgTEpVQkFOCitCRUdPVknEhiBNSUxJSkEKK0JFR09WScSGIE1JTE9SQUQKK0JFR09WScSGIE1JUktPCitCRUdPVknEhiBST8SGS08KK0JFR09WScSGIFNBVk8KK0JFR09WScSGIFRPRE9SCitCRUdPVknEhiBaT1JPCitCRUhFUiBFVkEKK0JFSEVSQU5PIEpPU0lQCitCRUhURVIgQUxFS1NBTkRBUgorQkVKQVJPVknEhiBNQVJLTworQkVKQVJPVknEhiBORU5BRAorQkVKQVRPVknEhiDEkE9SxJBFCitCRUpBVE9WScSGIE1JTE9SQUQKK0JFSkFUT1ZJxIYgTUlSS08KK0JFSlRPVknEhiBBTElKQQorQkVLIEFOVE9OSUpBCitCRUsgRFJBR0FOQQorQkVLIEpPVkFOCitCRUsgTEFESVNMQVYKK0JFSyBMSklMSkFOQQorQkVLIFJVxb1BCitCRUsgU1RFVkFOCitCRUvEjEnEhiBNSUxPUkFECitCRUtBUkVLIElMSU5LQQorQkVLRSBMQVNMTworQkVLRSBNQVJJSkFOCitCRUtFUiBGUkVERVJJSworQkVLRVIgScWgVFZBTgorQkVLRVIgSURBCitCRUtFUiBKT8W9RUYKK0JFS0VSIEpPU0lQCitCRUtFUiBTVEVWQU4KK0JFS0nEhiBCT1JJUworQkVLScSGIEJSQU5LQQorQkVLScSGIEpVUkUKK0JFS0nEhiBNSUxPUkFECitCRUtJxIYgVE9NSVNMQVYKK0JFS0nEhiBWRVJBCitCRUtSScSGIERSQUdBTgorQkVLUknEhiBNSVJBCitCRUtSScSGIFRPTUlTTEFWCitCRUtUQcWgIERBTklDQQorQkVLVEHFoCBTTEFWS08KK0JFS1VUIERSQUdBTgorQkVLVVQgUEVUQVIKK0JFS1ZBTEFDIMW9SVZBTgorQkVLVkFMQUMgQlJBTklTTEFWCitCRUtWQUxBQyBCUkFOSVNMQVYKK0JFS1ZBTEFDIEJSQU5LQQorQkVLVkFMQUMgQlJBTktPCitCRUtWQUxBQyBCUkFOS08KK0JFS1ZBTEFDIERSQUdPTEpVQgorQkVLVkFMQUMgRU1JTElKQQorQkVLVkFMQUMgSVNBCitCRUtWQUxBQyBMQVpBUgorQkVLVkFMQUMgTEpVQklDQQorQkVLVkFMQUMgTEpVQklDQQorQkVLVkFMQUMgTEpVQklOS08KK0JFS1ZBTEFDIE1BUkEKK0JFS1ZBTEFDIE1JSkEKK0JFS1ZBTEFDIE1JTEFOS08KK0JFS1ZBTEFDIE1JTEFOCitCRUtWQUxBQyBNSUxJU0FWCitCRUtWQUxBQyBNSVJKQU5BCitCRUtWQUxBQyBSQURJVk9KCitCRUtWQUxBQyBSQURNSUxBCitCRUtWQUxBQyBTRVJBRklOQQorQkVLVkFMQUMgU1RFVkFOCitCRUzEjEVWScSGIEdSQURJTUlSCitCRUzEjEVWScSGIFJBVEtPCitCRUxBSyDFoEFORE9SCitCRUxBSyBBTkEKK0JFTEFLIE1BUkdJVEEKK0JFTEFLIE1JSk8KK0JFTEFLIFZMQURBCitCRUxBTiBKT8W9RUYKK0JFTEFOxIxJxIYgRUxJWkFCRVRBCitCRUxBTk9WScSGIMSQT1LEkEUKK0JFTEFOT1ZJxIYgQUxFS1NBTkRSQQorQkVMQU5PVknEhiBLQVRJQ0EKK0JFTEFOT1ZJxIYgTUlMSVZPSgorQkVMQU5PVknEhiBUSUJPUgorQkVMRUNLSSBKRUxFTkEKK0JFTEVHScWgQU5JTiBEUkFHT01JUiBEUgorQkVMRVNMSUpJTiBNSUxPUkFECitCRUxFU0xJSklOIFNMT0JPREFOCitCRUxFU0xJTiBET0JSSUxBCitCRUxFU0xJTiBNSVJPU0xBVgorQkVMRVNMSU4gU1ZFVE9aQVIgRFIKK0JFTEVUScSGIEpFTEVOQQorQkVMSSBBTkRSSUpBCitCRUxJIEVNSUwKK0JFTEkgUk9aQUxJSkEKK0JFTEkgU1RFVkFOCitCRUxJIFZPSklTTEFWCitCRUxJxIxLQSBBTkEKK0JFTEnEjEtBIEJSQU5JU0xBVgorQkVMScSMS0EgTUlST1NMQVYKK0JFTEnEhiDFvUlWS0EKK0JFTEnEhiDEkE9SxJBFCitCRUxJxIYgxJBPUsSQRQorQkVMScSGIMSQVVJJQ0EKK0JFTEnEhiBCT8WgS08KK0JFTEnEhiBCT8W9SURBUgorQkVMScSGIEJPxb1JREFSCitCRUxJxIYgQk9SSVNMQVYKK0JFTEnEhiBCT1JJU0xBVgorQkVMScSGIEJPUklTCitCRUxJxIYgQk9SSVZPSkUKK0JFTEnEhiBCT1JJVk9KRQorQkVMScSGIEJSQU5JU0xBVgorQkVMScSGLUJSS0nEhiBWTEFESVNMQVZBCitCRUxJxIYgREFOSUNBCitCRUxJxIYgREFOSUpFTEEKK0JFTEnEhiBEUkFHQU4KK0JFTEnEhiBEUkFHSUNBCitCRUxJxIYgRFJBR1VUSU4KK0JFTEnEhiBEVcWgQU4gRFIKK0JFTEnEhiBEVcWgQU4gRFIKK0JFTEnEhiBEVcWgQU4KK0JFTEnEhiBEVcWgQU4KK0JFTEnEhiBEVcWgQU4KK0JFTEnEhiBEVcWgS08KK0JFTEnEhiBEVcWgS08KK0JFTEnEhiBGTE9SSUtBCitCRUxJxIYgSUxJSkEKK0JFTEnEhiBKT1NJTQorQkVMScSGIEpPVkFOS0EKK0JFTEnEhiBKT1ZJQ0EKK0JFTEnEhiBKVUxJSkFOQQorQkVMScSGIEpVTEtBCitCRUxJxIYgTEFaQVIKK0JFTEnEhiBMSlVCSUNBCitCRUxJxIYgTUFSSUNBCitCRUxJxIYgTUlMQU4KK0JFTEnEhiBNSUxBTgorQkVMScSGIE1JTEFOCitCRUxJxIYgTUlMQU4KK0JFTEnEhiBNSUxFTkEKK0JFTEnEhiBNSUxJVk9KCitCRUxJxIYgTUlMT8WgCitCRUxJxIYgTUlMT1JBRAorQkVMScSGIE1JUkpBTkEKK0JFTEnEhiBNSVJPU0xBVgorQkVMScSGIE5FTkFECitCRUxJxIYgTkVTVE9SCitCRUxJxIYgTklLT0xBCitCRUxJxIYgUEVUQVIKK0JFTEnEhiBQRVRBUgorQkVMScSGIFJBRElOS0EKK0JFTEnEhiBSQURPSktBCitCRUxJxIYgUkFET1NMQVYKK0JFTEnEhiBSQURPVkFOCitCRUxJxIYgU0FWQQorQkVMScSGIFNFTkEKK0JFTEnEhiBTSU1BCitCRUxJxIYgU0xBVktPIERJUEwgSU5HCitCRUxJxIYgU0xBVktPCitCRUxJxIYgU0xPQk9EQU5LQQorQkVMScSGIFNPRklKQQorQkVMScSGIFNSxJBBTgorQkVMScSGIFNUQU5LTworQkVMScSGIFNURVZBTgorQkVMScSGIFNUT0pBTktBCitCRUxJxIYgU1RPSkFOCitCRUxJxIYgU1ZFVElTTEFWCitCRUxJxIYgU1ZFVElTTEFWCitCRUxJxIYgU1ZFVExBTkEKK0JFTEnEhiBUT0RPUgorQkVMScSGIFZFUkEKK0JFTEnEhiBWRVNOQQorQkVMScSGIFZMQURJU0xBVgorQkVMScSGIFZMQURJU0xBVgorQkVMScSGIFZPSklTTEFWCitCRUxJxIYgVlVLQQorQkVMScSGIFpPUkEKK0JFTElNQVJLT1ZJxIYgU0xBVk9MSlVCCitCRUxJTknEhiDEkFVSQQorQkVMSU5TS0kgQUxFS1NBTkRBUgorQkVMSU5TS0kgU1BBU0VOSUpBCitCRUxKQUtPViBNSUxJQ0EKK0JFTEpBTlNLSSDFvUlWS0EKK0JFTEpBTlNLSSDFvUlWS0EKK0JFTEpBTlNLSSDEkE9SxJBFCitCRUxKQU5TS0kgxJBPUsSQRQorQkVMSkFOU0tJIMSQT1LEkEUKK0JFTEpBTlNLSSBBTsSQRUxJSkEKK0JFTEpBTlNLSSBBTktJQ0EKK0JFTEpBTlNLSS1CQUpJxIYgS0HEhlXFoEEKK0JFTEpBTlNLSSBCT1JBCitCRUxKQU5TS0kgQk9SQQorQkVMSkFOU0tJIEJPUklWT0oKK0JFTEpBTlNLSSBEUkFHQU5BCitCRUxKQU5TS0kgRFJBR0lDQQorQkVMSkFOU0tJIEVNSUxJSkEKK0JFTEpBTlNLSSBHQVZSQQorQkVMSkFOU0tJIEdPUkRBTkEKK0JFTEpBTlNLSSBKRUxJU0FWRVRBCitCRUxKQU5TS0kgSk9WQU4KK0JFTEpBTlNLSSBKT1ZBTgorQkVMSkFOU0tJIEpVTElKQU5BCitCRUxKQU5TS0kgTEFaQVIKK0JFTEpBTlNLSSBMQVpBUgorQkVMSkFOU0tJIExBWkFSCitCRUxKQU5TS0kgTEVQT0pLQQorQkVMSkFOU0tJIExKVUJPTUlSCitCRUxKQU5TS0kgTUlMQU4KK0JFTEpBTlNLSSBNSUxFTktPCitCRUxKQU5TS0kgTUlMT1JBRAorQkVMSkFOU0tJIE1JTE9SQUQKK0JFTEpBTlNLSSBNSUxVVElOCitCRUxKQU5TS0kgTUlSSkFOQQorQkVMSkFOU0tJIFBBVkxFCitCRUxKQU5TS0kgUkFEQQorQkVMSkFOU0tJIFJBRE1JTEEKK0JFTEpBTlNLSSBSQURPVkFOCitCRUxKQU5TS0kgUkFOS08KK0JFTEpBTlNLSSBSVcW9SUNBCitCRUxKQU5TS0kgU0xPQk9EQU4KK0JFTEpBTlNLSSBTVEVWQU4KK0JFTEpBTlNLSSBURU9ET1IKK0JFTEpBTlNLSSBUT8WgQQorQkVMSkFOU0tJIFZBU0lMSUpFCitCRUxKQU5TS0kgVkVSQQorQkVMSkFOU0tJIFZMQURJTUlSCitCRUxKQU5TS0kgVkxBRElTTEFWCitCRUxKQU5TS0kgVk9KSVNMQVYKK0JFTEpBTlNLSSBaQUdPUktBCitCRUxKQU5TS0kgWkRFTktBCitCRUxKSU4gxb1JVkEKK0JFTEpJTiDEkE9SxJBFCitCRUxKSU4gQlJBTklTTEFWQQorQkVMSklOIERJTUlUUklKRQorQkVMSklOIE1BUklKQSBNQUdEQUxFTkEKK0JFTEpJTiBORURFTEpLTworQkVMSklOIFJBRElWT0oKK0JFTEpJTiBSQURPU0xBVgorQkVMSklOIFJVxb1BCitCRUxKSU4gU0FWQQorQkVMSklOIFNPRklKQQorQkVMSklOIFZMQURJTUlSCitCRUxKSU5BQyBaT1JBTgorQkVMT8WgRVYgTkVWRU5LQQorQkVMT0JSQURJxIYgTUlMQU4KK0JFTE9CUkFEScSGIFNBVkEKK0JFTE9CUksgQlJBTklTTEFWCitCRUxPQlJLIERSQUdPU0xBVgorQkVMT0JSSyBMSVZJSkUKK0JFTE9DScSGIE1JTEVOS08KK0JFTE9DScSGIFJBRE1JTEEKK0JFTE9JQ0EgUkFET1NMQVYKK0JFTE9JQ0EgVklEQU4KK0JFTE9QQVZMT1ZJxIYgRFJBR0EgRFIKK0JFTE9QQVZMT1ZJxIYgTUlMT0pLTworQkVMT1BBVkxPVknEhiBaT1JBTiBEUgorQkVMT1BBVkxPVknEhiBaT1JBTiBEUgorQkVMT1NBVknEhiBKRUxJQ0EKK0JFTE9USSBJVkFOS08KK0JFTE9WQVJJIElWQU4KK0JFTE9WScSGIEJJTEpBTkEKK0JFTE9WScSGIFJBREEKK0JFTE9WScSGIFNURVZBTgorQkVMVcWgRVZJxIYgQk/FvUlEQVIKK0JFTFXFoEVWScSGIE5PVklDQQorQkVMVcW9ScSGIERBUklOS0EKK0JFTFXFvUnEhiBTVEpFUEFOCitCRU0gSVZBTgorQkVNIEpPVkFOCitCRU0gS0FSTE8KK0JFTSBNSVJPU0xBVgorQkVNSUxFUiBNQUdEQUxFTkEKK0JFTsSMSUsgxJBVTEEKK0JFTsSMSUsgSUxPTktBCitCRU5BIE1JTE9TQVZBCitCRU5BxaBJxIYgVklOS08KK0JFTkFLIFBBTAorQkVOQVJJSyBMQVNMTworQkVOQVJJSyBNQUdEQUxFTkEKK0JFTkMgQlJBTklTTEFWQQorQkVOQyBEUkFHQU4KK0JFTkNFIE1BUklKQQorQkVOQ0UgTUlIQUxKCitCRU5DRSBNSUtFxaAKK0JFTkNFVEnEhiBBTkRSSUpBCitCRU5DRVRJxIYgTEpVREVWSVQKK0JFTkNVTiBWRUxJTktBCitCRU5ERUsgTUlMQU4KK0JFTkXFoCBMSlVETUlMQQorQkVORcW9QU4gTEpVQklDQQorQkVORURFS09WScSGIElWQU4KK0JFTkdJTi3EkFVSS0nEhiBORVpBCitCRU5HSU4gQk/FvUlEQVIKK0JFTkdJTiBET0JSSU5LQQorQkVOR0lOIERVxaBBTgorQkVOR0lOIEtPVklDQQorQkVOR0lOIE1JTEFOCitCRU5JxIxBSyBLQVJMTworQkVOScSMQUsgTUFHREFMRU5BCitCRU5JxaBFSyBEUkFHVVRJTgorQkVOScSGIEVWQQorQkVOScSGIEdSVUpJQ0EKK0JFTknEhiBQRVRBUgorQkVOScSGIFNFS1VMQQorQkVOScSGIFpERU5LTworQkVOSU4gxb1JVk9KSU4KK0JFTkpBIEtBVEFSSU5BCitCRU5KQUsgRFJBR09TTEFWQQorQkVOSkFLIEVWSUNBCitCRU5LQSBNQVJJSkEKK0JFTktBIE1JSEFJTE8KK0JFTktFIEVMWkEKK0JFTktPVknEhiBKT0NBCitCRU5LT1ZJxIYgSk9DQQorQkVOTyBUSUJPUgorQkVOT1ZJxIYgSk9TSVAKK0JFTk9WScSGIFNUQU5BCitCRU/EjEFOSU4gSk9WQU4KK0JFT8SMQU5JTiBNSU9EUkFHCitCRU/EjEFOSU4gUEFWTEUKK0JFT0RSQU5TS0kgRFJBR09NSVIKK0JFT0RSQU5TS0kgU1RPSkFOCitCRU9LT1ZJxIYgREFNSVIKK0JFUiBBTEVLU0lKRQorQkVSIEZSQU5KTworQkVSxIxFSyDEkEVSxJAKK0JFUsSMRUsgQk/FvUlEQVIKK0JFUsSMRUsgRlJBTkpBCitCRVLEjEVLIExBRElTTEFWCitCRVLEjEVLIE1BUklKQQorQkVSxIxFSyBNSUhBSUxPCitCRVLEjEVLIE9TS0FSCitCRVLEjEVLIFNBTklTTE8KK0JFUsSGQU4gTUlSSkFOQQorQkVSxIZBTiBQRVRBUgorQkVSxIZBTiBTTEFWS08KK0JFUkEgxJBPUsSQTworQkVSQSBEUkFHQU4KK0JFUkFLIE5FQk9KxaBBCitCRVJBTk9WScSGIEFMRUtTQU5EQVIKK0JFUkFSIMW9SVZBTkEKK0JFUkFSIEJPUklWT0oKK0JFUkFSIEJSQU5JU0xBVgorQkVSQVIgQlJBTklTTEFWCitCRVJBUiBEVcWgQU5LQQorQkVSQVIgTUlMQU4KK0JFUkFSIE1JTEFOCitCRVJBUiBNSUxBTgorQkVSQVIgUkFESVZPSgorQkVSQVIgU0xPQk9EQU4KK0JFUkFSIFNMT0JPREFOCitCRVJBUiBUSU1BCitCRVJBUiBWTEFESU1JUgorQkVSQVJPViDEkFVSSUNBCitCRVJCQUtPViBMSlVCSUNBCitCRVJCQUtPViBNQVJBCitCRVJCQUtPViBNSUxPxaAKK0JFUkJBS09WIFBFVEFSCitCRVJCQUtPViBTVEVWQU4KK0JFUkJBVE9WScSGIMW9QVJLTworQkVSQkFUT1ZJxIYgTUlSSkFOQQorQkVSQkVSIExKSUxKQU5BCitCRVJCRVIgU1RFVkFOCitCRVJCRVJJxIYgSkVMSVNBVkVUQQorQkVSQkVSScSGIEpPVkFOCitCRVJCRVJJxIYgTEFaQVIKK0JFUkJFUknEhiBNSUxVVElOCitCRVJFxaAgxJBPUsSQRQorQkVSRcWgIERBTklMTworQkVSRcWgIElMT05BCitCRVJFxaAgSk9TSVAKK0JFUkXFoCBKVUxJxaBLQQorQkVSRcWgIEtBUk9MSgorQkVSRcWgIEtPUk5FTAorQkVSRcWgIFRJQk9SCitCRVJFxaAtVE9UIEtPUk5FTAorQkVSRUhBTknEhiBKVUxLQQorQkVSRU5KSSBFVUdFTgorQkVSRU5KSSBKQU5PxaAKK0JFUkVOSkkgSkVMRU5BCitCRVJFTkpJIE1JS0xPxaAKK0JFUkVOSkkgTUlLTE/FoAorQkVSRU5KSSBST1pBTElKQQorQkVSRU5KSSBTVEVWQU4KK0JFUkVOSkkgVElCT1IKK0JFUkVOVEEgSk9TSVAKK0JFUkVOVEUgSUxPTkEKK0JFUkVUScSGIEFOVFVOCitCRVJFVEnEhiBMQURJU0xBVgorQkVSRVRJxIYgTUFSR0lUQQorQkVSRVRLQSDFoEFORE9SCitCRVJFVEtBIEdPUkRBTkEKK0JFUkVUS0EgSlVMSUpBTkEKK0JFUkVUS0EgS0FSTE8KK0JFUkVUS0EgTUlIQUxKCitCRVJHRUwgxJBVUkEKK0JFUkdFTCBBTlRVTgorQkVSR0VSIEZSQU5KQSBEUiBTVE9NQVRPTE9HCitCRVJHRVIgTUlST1NMQVYKK0JFUknFoEEgQVpJUworQkVSScWgQSBCT0pLQQorQkVSScWgQSBERU1PCitCRVJJxaBBIEZBSUsKK0JFUknFoEEgTUlSVkVUQQorQkVSScWgQSBSQUdJQgorQkVSScSGIMW9SVZLTworQkVSScSGIEFOxJBFTEtPCitCRVJJxIYgQU5UQQorQkVSScSGIEFOVEEKK0JFUknEhiBCRVJJU0xBViBEUiBQUk9GCitCRVJJxIYgQklMSkFOQQorQkVSScSGIEJPxb1JREFSCitCRVJJxIYgQk9HREFOCitCRVJJxIYgRFJBR0lOSkEKK0JFUknEhiBEVcWgQU5LQQorQkVSScSGIERVxaBBTgorQkVSScSGIEdPSktPCitCRVJJxIYgR09KS08KK0JFUknEhiBHT0pLTworQkVSScSGIElMSUpBCitCRVJJxIYgSk9SREFOQQorQkVSScSGIEpPVk8KK0JFUknEhiBLT1NUQQorQkVSScSGIE1BUkEKK0JFUknEhi1NQVNLQVJFTCBLQVJNRU5TSVRBIERSCitCRVJJxIYgTUlMQU4KK0JFUknEhiBNSUxBTgorQkVSScSGIE1JTEFOCitCRVJJxIYgTUlMSUNBIE1SCitCRVJJxIYgTUlMSVZPSgorQkVSScSGIE1JTE9SQUQKK0JFUknEhiBNSUxPUkFECitCRVJJxIYgTUlMT1ZBTgorQkVSScSGIE5BREEKK0JFUknEhiBOSUtPTEEKK0JFUknEhiBQRVJTSURBCitCRVJJxIYgUEVUQVIKK0JFUknEhiBSQURJVk9KCitCRVJJxIYgUkFKS08KK0JFUknEhiBSQUpLTworQkVSScSGIFNBVkEKK0JFUknEhiBUT0RFCitCRVJJxIYgVkVSQQorQkVSScSGIFZFUklDQQorQkVSScSGIFZFU05BIERSCitCRVJJxIYgWk9SSUNBCitCRVJJU0FWTEpFVknEhiBSQUpLTworQkVSSVNBVkxKRVZJxIYgWk9SSUNBCitCRVJLRcWgIEnFoFRWQU4KK0JFUktJIEpPxb1FRgorQkVSS0nEhiBSVcW9SUNBCitCRVJLT1ZJxIYgQkVSSVNMQVYKK0JFUktPVknEhiBExb1BRkVSCitCRVJLT1ZJxIYgTUlST1NMQVYKK0JFUktPVknEhiBTTEFWT0xKVUIKK0JFUkxBTsSMScSGIERBTklKRUwKK0JFUkxPVkFOIEdFT1JHSU5BCitCRVJOQUNLSSBBRE9MRgorQkVSTkFSRCDEkE9SxJBFCitCRVJOSEFSRCDFvUFSS08KK0JFUk5IQVJEIEJPxb1JREFSCitCRVJOSEFSRCBCT0pBTkEKK0JFUk5IQVJEIEZJTElQCitCRVJOSEFSRCBJTElKQQorQkVSTkhBUkQgTEpVQkFOCitCRVJOSEFSRCBNQVJJSkEKK0JFUk5IQVJEIE1JTEFOCitCRVJOSEFSRCBNSUxJQ0EgRFIKK0JFUk5IQVJEIE1JTE9SQUQKK0JFUk5IQVJEIFJBRE9TTEFWCitCRVJOSEFSRCBSQUpLTworQkVSTkhBUkQgU0lNTworQkVSTkhBUkQgVFJJVk8KK0JFUk/FoCBMSlVCSUNBCitCRVJUQSBKQU5PxaAKK0JFUlRBIE1JTElDQQorQkVSVEEgUEFMCitCRVJUQSBQRVRBUgorQkVSVEnEhiBUQVRKQU5BCitCRVJUScSGIFpWT05LTworQkVSVE9LIEpBTk/FoAorQkVSVE9LIEpVTElKQU5BCitCRVJUT0sgTEFKT8WgCitCRVJUUk9OIExFTktFCitCRVJVUyBWSkVLT1NMQVYKK0JFUlpBIEFMRUtTQU5EQVIKK0JFU0VERcWgIEpPxb1FRgorQkVTRVJNRU5KSSDEkE9SxJBFCitCRVNFUk1FTkpJIEJSQU5LTworQkVTRVJNRU5KSSBESU9OSVpJSkUKK0JFU0VSTUVOSkkgRVVGRU1JSkEKK0JFU0VSTUVOSkkgSVJFTkEKK0JFU0VSTUVOSkkgSVZBTgorQkVTRVJNRU5KSSBLSVJJTAorQkVTRVJNRU5KSSBLU0VOSUpBCitCRVNFUk1FTkpJIExFT05BCitCRVNFUk1FTkpJIE1FTEFOSUpBCitCRVNFUk1FTkpJIE9MR0EKK0JFU0VSTUVOSkkgVkxBRElNSVIKK0JFU0VSTUVOSkkgVkxBRElNSVIKK0JFU0tPUk9WQUpOSSBWTEFESU1JUgorQkVTTEHEhiBEUkFHQU5BCitCRVNMQcSGIE1JTFVUSU4KK0JFU0xBxIYgUkFETUlMQQorQkVTTklMT1YgQk/FoEtPCitCRVNOSUxPViBPTElWRVJBCitCRVNVIFNJTEEKK0JFU1UgVE9ET1IKK0JFU1UgVFJBTkRBRklSCitCRVRJIFNUQU5LTyBBRFZPS0FUCitCRVVDIMW9SVZBTgorQkVVQyBNSVJBCitCRVVDIE9MR0EKK0JFWkRBTiBBTkEKK0JFWkRBTiBGUkFOSkEKK0JFWkRBTiBJTERJS08KK0JFWkRBTiBJUkVOQQorQkVaREFOIEpPU0lQCitCRVpFTsWgRUsgTkFUQUxJSkEKK0JFWkkgS0FUSUNBCitCRVpKQUsgTUlMQU5LQQorQkVaSkFLIFpERU5LTworQkVaVUxKIMSQT1LEkEUKK0JFWlVMSiBMSklMSkFOQSBQUk9GRVNPUgorQknEjEFLIElHTkFDCitCScSMQUsgSlVTVElOQQorQknEjEFOIEFOS0EKK0JJxIxBTiBJVklDQQorQknEjEtFSSBURVJFWklKQQorQknEhkFOScSGIERBTklDQQorQknEhkFOScSGIEtSSVNUSU5BCitCScSGQU5JxIYgTUFSSUpBCitCScSGQU5JxIYgUEVUQVIKK0JJxIZBTknEhiBQRVRSQQorQklCRVIgU1RFVkFOCitCSUJFUkTFvUnEhiBSQURPTUlSCitCSUJJxIYgQUxFS1NBTkRBUgorQklCScSGIFBBVkxFCitCSUJJxIYgU09GSUpBCitCSUJJxIYgU1RKRVBBTgorQklCSU4gSlVHT1NMQVYKK0JJQklOIE1JTElOS08KK0JJQ0lLSU4gTUlMQU4KK0JJQ0sgRFJBR1VUSU4KK0JJQ08gUlXFvUlDQQorQklDT0sgRVRFTEtBCitCSUNPSyBNQVJHSVRBCitCSUNPSyBNQVJHSVRBCitCSUVMxIxJSyBMSURJSkEKK0JJR0EgQk9SSVNMQVYKK0JJR0EgTUlMQU4KK0JJR0EgTkFEQQorQklHQSBTTUlMSkEKK0JJR09WScSGLcWgSVJPS0kgWk9SSUNBCitCSUdPVknEhiBBTkEKK0JJR09WScSGIFZPSklOCitCSUdPVknEhiBWT0pJU0xBVgorQklIT1JBQyBNSVJKQU5BCitCSUpBTknEhiBNSUxFTktPCitCSUpBTktPIFBFVEFSCitCSUpFREnEhiBNSUxPUkFECitCSUpFTEnEhiBBTEVLU0EKK0JJSkVMScSGIEJSQU5JU0xBVgorQklKRUxJxIYgREFSQQorQklKRUxJxIYgSVZJQ0EKK0JJSkVMScSGIEpPVkFOCitCSUpFTEnEhiBKT1ZJQ0EKK0JJSkVMScSGIE1BVE8KK0JJSkVMScSGIE1JTEFOCitCSUpFTEnEhiBNSUxFCitCSUpFTEnEhiBNSUxFCitCSUpFTEnEhiBNSUxFCitCSUpFTEnEhiBNSUxFCitCSUpFTEnEhiBOT1ZBSworQklKRUxJxIYgUEVSTworQklKRUxJxIYgUklTVE8KK0JJSkVMScSGIFNUT0pBTgorQklKRUxJxIYgU1RPSkFOCitCSUpFTEpBQyBORURFTEpLTyBESVBMIElORworQklKRUxPVknEhiBOT1ZLQQorQklKVUtMScSGIERSQUdPU0xBVgorQklKVUtMScSGIERSQUdPU0xBVgorQklKVUtMScSGIE1BUklOS08KK0JJS0FSIERSQUdBTkEKK0JJS0FSIEZFRE9SQQorQklLQVJFVknEhiBEUkFHQU4KK0JJS0nEhiDFvUlWQU4KK0JJS0nEhiDEkE9SxJBFCitCSUtJxIYgREFOSUNBCitCSUtJxIYgRFXFoEFOCitCSUtJxIYgS09OU1RBTlRJTgorQklLScSGIExKSUxKQU5BCitCSUtJxIYgTUlMT1ZBTgorQklLScSGIE1JT0RSQUcKK0JJS0nEhiBOSUtPTEEKK0JJS0nEhiBQRVJBCitCSUtJQ0tJIMSQT1LEkEUKK0JJS0lDS0kgQUxFS1NBTkRBUgorQklLSUNLSSBCUkFOSVNMQVYKK0JJS0lDS0kgSkVMSUNBCitCSUtJQ0tJIEpFTElDQQorQklLSUNLSSBKT1ZBTgorQklLSUNLSSBKT1ZBTgorQklLSUNLSSBLQVRBUklOQQorQklLSUNLSSBNSUxPxaAKK0JJS0lDS0kgTUlST1NMQVYKK0JJS0lDS0kgUkFET0pLQQorQklLSUNLSSBTSU5JxaBBCitCSUtJQ0tJIFNJTknFoEEKK0JJS0lDS0kgVkFTSUxJSkUKK0JJS0lUIE1BR0RPTE5BCitCSUtJVCBOT1JCRVJUCitCSUtPVknEhiBMSlVCSUNBCitCSUtPVknEhiBWTEFESU1JUgorQklMxIxBUiBISUxEQQorQklMxIxBUiBWRVJBCitCSUxBIE1JUktPCitCSUxBSyBNSUxBTgorQklMQUsgTkFEQQorQklMQUxPVknEhiBTQUJBSFVESU4KK0JJTEFORMW9SUpBIERBTklDQQorQklMQU5JxIYgTkFEQQorQklMQU5PVknEhiBEVcWgQU4KK0JJTEFOT1ZJxIYgR09SREFOQQorQklMQU5PVknEhiBQRVJPCitCSUxBUyBTTUlMSkEKK0JJTEJJSkEgQk9HREFOCitCSUxCSUpBIERFSkFOCitCSUxCSUpBIERSQUdBTgorQklMQklKQSBKQVNOQQorQklMQklKQSBNSUxBTgorQklMQklKQSBTTUlMSkEKK0JJTEVLIE1JTElDQQorQklMRVIgxJBPUsSQRQorQklMSSBKVUxJSkEKK0JJTEnEjEnEhiBTVEpFUEFOCitCSUxJxIYgQU5URQorQklMScSGIEJSQU5LSUNBCitCSUxJxIYgR09SREFOQQorQklMScSGIElWQU4gRElQTCBJTkcKK0JJTEnEhiBJVkFOCitCSUxJxIYgSkFLT1YKK0JJTEnEhiBKRUxFTkEKK0JJTEnEhiBNSUxBTgorQklMScSGIE1JTEFOCitCSUxJxIYgTUlMRU5LTworQklMScSGIE1JTE9SQUQKK0JJTEnEhiBNSVJPCitCSUxJxIYgUFJFRFJBRworQklMScSGIFNSxJBBTgorQklMScSGIFNUSkVQQU4KK0JJTEnEhiBTVFJBSU4KK0JJTElDS0kgTEFTTE8KK0JJTElOT1ZJxIYgQk9SSVMKK0JJTElOT1ZJxIYgU0HFoEEKK0JJTEpBTknEhiBSQURPSktBCitCSUxKTkpBIFZMQURJTUlSCitCSUxPS0FQScSGIElWQU4KK0JJTE9LQVBJxIYgSlVSRQorQklMT0tBUEnEhiBTVEVWQU4KK0JJTFXFoEnEhiBTTEFWSUNBCitCSU4gQUxFS1NBTkRBUgorQklOIE1VSEFNRVQKK0JJTkFLQUogQkFKUkFNCitCSU5EQVMgxJBVUkEKK0JJTkRBUyBEUkFHSUNBCitCSU5EQVMgTUlIQUpMTworQklOREVSIEFSQU5LQQorQklOR09MRCBEUkFHVVRJTgorQklOR09MRCBLQVJMTworQklOR09MRCBSVURPTEYKK0JJTkdVTEFDIMW9SVZLTworQklOR1VMQUMgQk9KQU5BCitCSU5HVUxBQyBNSVJKQU5BCitCSU9OREnEhiBKRUxFTkEKK0JJT1JBQyBERVNJTUlSCitCSU9SQUMgUkFOS08KK0JJUsSGQSBTUkVUS08KK0JJUkNMSU4gUlXFvUlDQQorQklSREnEhiBCRUxBCitCSVJFxaAgTEVOS0EKK0JJUkXFoCBST1pBTElKQQorQklSR0VNQUpFUiBNQVJJSkEKK0JJUkhNQU4gQU5BCitCSVJJTkpJIERFTkXFoAorQklSSU5KSSBFVUdFTgorQklSTUFOQUMgRFXFoEFOCitCSVJPIEFOVE9OCitCSVJPIEdJWkVMQQorQklSTyBHSVpFTEEKK0JJUk8gScWgVFZBTgorQklSTyBJTE9OQQorQklSTyBJTVJFCitCSVJPIElNUkUKK0JJUk8gS0FUQUxJTgorQklSTyBMQUpPxaAKK0JJUk8gTUlLTE/FoAorQklSTyBNSUxPxaAKK0JJUk/FoEVWScSGIE1JTElDQQorQklST1ZMSkVWIEJSQU5JTUlSCitCSVJPVkxKRVYgQlJBTklTTEFWCitCSVJPVkxKRVYgTUlMQU4KK0JJUk9WTEpFViBNSUxPUkFECitCSVJPVkxKRVYgTUlMT1NBVgorQklST1ZMSkVWIE1JUk9TTEFWCitCSVJPVkxKRVYgVE9ET1IgRFIKK0JJUk9WTEpFVknEhiBEUkFHQU4KK0JJUk9WTEpFVknEhiBMSlVCSUNBCitCSVJUQSBWTEFESU1JUgorQklSVkFMU0tJIERVxaBBTgorQklTRVLEjEnEhiBBTkRSSUpBCitCSVNFUsSMScSGIERSQUdPCitCSVNFUsSMScSGIE1JTEtBTkEKK0JJU0nEhiBKT1ZBTgorQklTVFJJQ0FOIE9MR0EKK0JJU1RST1ZJxIYgQU5UT04KK0JJVEnEhiBExb1FTUFJTAorQklUTyBTVEVWQU4KK0JJVUsgTUFSSUpBCitCSVZPTEFSRVZJxIYgVlVLQcWgSU4KK0JJWkpBSyBSRU5BVE8KK0JJWlVNScSGIEdFT1JHSUpFCitCSVpVTUnEhiBKRUxLQQorQklaVU1JxIYgTEFaQVIKK0JJWlVNScSGIE1JTEFOCitCSkVEScSGIERFU0FOS0EKK0JKRURPViDEkFVLQQorQkpFRE9WIERSQUdPCitCSkVET1YgTklLT0xBCitCSkVHT1ZJxIYgREFOSUxLQQorQkpFR09WScSGIEdPSktPCitCSkVLScSGIExVS0EKK0JKRUtJxIYgT1NUT0pBCitCSkVLT1ZJxIYgTUlSSkFOQQorQkpFS09WScSGIFJBREUKK0JKRUxBQyDEkFVSQQorQkpFTEFDIERSQUdBTgorQkpFTEFDIERSQUdBTgorQkpFTEFDIEVURUxLQQorQkpFTEFKQUMgRFJBR0FOCitCSkVMQUpBQyBNSUxKQQorQkpFTEFKQUMgU1ZFVE9aQVIKK0JKRUxBS09WScSGIFJBRElWT0pFCitCSkVMQU5PVknEhiBNSUxPU0FWCitCSkVMQU5PVknEhiBNSVJLTworQkpFTEFOT1ZJxIYgUkFKS08KK0JKRUxBTk9WScSGIFNUQU5JTUlSCitCSkVMQU5PVknEhiBUQU5KQQorQkpFTEVUScSGIEJPR0RBTgorQkpFTEVUScSGIExKVUJJQ0EKK0JKRUxFVEnEhiBMVUtBCitCSkVMSS1IQUTFvUnEhiBKRUxJQ0EKK0JKRUxJxIYgxJBVUkEKK0JKRUxJxIYgQk9SSVNMQVYKK0JKRUxJxIYgQlJBTktPCitCSkVMScSGIERBTklMS0EKK0JKRUxJxIYgRE1JVEFSCitCSkVMScSGIEdPUkRBTkEKK0JKRUxJxIYgSk9WQU4KK0JKRUxJxIYgS0FUSUNBCitCSkVMScSGIEtSU1RBTgorQkpFTEnEhiBMSlVCT01JUgorQkpFTEnEhiBNSUxBTgorQkpFTEnEhiBNSVJLTworQkpFTEnEhiBORURFTEpLTworQkpFTEnEhiBPTEdBCitCSkVMScSGIFBFVEFSCitCSkVMScSGIFBFVEFSCitCSkVMScSGIFNMQVZLTworQkpFTEnEhiBTTE9CT0RBTgorQkpFTEnEhiBTVEVWTworQkpFTEnEhiBTVkVUTEFOQQorQkpFTEnEhiBWRVJBCitCSkVMScSGIFZMQURJTUlSCitCSkVMSUNBIMSMRURPCitCSkVMSUNBIMSQT1LEkElKQQorQkpFTElDQSBBTEVLU0EKK0JKRUxJQ0EgQk9HREFOCitCSkVMSUNBIEJSQU5JU0xBVgorQkpFTElDQSBEQU5JTE8KK0JKRUxJQ0EgRE9CUklWT0pFCitCSkVMSUNBIERSQUdVVElOCitCSkVMSUNBIEdPSktPCitCSkVMSUNBIEdPSktPCitCSkVMSUNBIEpBRFJBTktBCitCSkVMSUNBIEpBRFJBTktBCitCSkVMSUNBIExVS0EKK0JKRUxJQ0EgTUlMQU4KK0JKRUxJQ0EgTUlMSUNBCitCSkVMSUNBIE1JT0RSQUcKK0JKRUxJQ0EgTkFEQQorQkpFTElDQS1QT1BPVknEhiBMSlVCSUNBCitCSkVMSUNBIFJBSktPCitCSkVMSUNBIFJBS08KK0JKRUxJQ0EgUkFUS08KK0JKRUxJQ0EgU0FWS0EKK0JKRUxJQ0EgU0xBVktPCitCSkVMSUNBIFNQQVNPSkUKK0JKRUxJQ0EgVElHUkFOCitCSkVMSUNBIFZFTEpLTworQkpFTElDQSBWRUxKS08KK0JKRUxJQ0EgVk9KTworQkpFTElDQSBWVUtPU0FWQQorQkpFTElDQSBaT1JBTgorQkpFTElOScSGIERBUklOS0EKK0JKRUxJTknEhiBKT1ZPCitCSkVMSVZVSyBHT1JBTgorQkpFTElWVUsgVkxBRElNSVIKK0JKRUxKQUMgQU5BCitCSkVMSkFDIEJPUkEKK0JKRUxKQUMgQlJBTktPCitCSkVMSkFDIE1JTEFOCitCSkVMSkFDIE1JTE9SQUQKK0JKRUxPxaAgREFOSUNBCitCSkVMT8WgIE1JUk9TTEFWCitCSkVMT8WgIE1JUk9TTEFWCitCSkVMT8WgRVZJxIYgU0xBVktPCitCSkVMT0JBQkEgQUxFS1NBTkRBUgorQkpFTE9CQUJBIERBUkEKK0JKRUxPQlJLIEJPxaBLTworQkpFTE9CUksgQk/FoEtPCitCSkVMT0JSSyBHT1JBTgorQkpFTE9CUksgTEFaQVIKK0JKRUxPQlJLIExBWkFSCitCSkVMT0JSSyBNQU5FCitCSkVMT0JSSyBNQVJLTworQkpFTE9CUksgTUlMQU4KK0JKRUxPQlJLIE1JTE/FoAorQkpFTE9CUksgUEVUQVIKK0JKRUxPQlJLLVZBUkdBIEpBU05BCitCSkVMT0dSTEnEhiDEkE9SxJBFCitCSkVMT0dSTEnEhiBCTEFHT0pFCitCSkVMT0dSTEnEhiBERUpBTkEKK0JKRUxPR1JMScSGIERSQUdBTgorQkpFTE9HUkxJxIYgTEpVQklDQQorQkpFTE9HUkxJxIYgTEpVQk8KK0JKRUxPR1JMScSGIE1JVEFSCitCSkVMT0dSTEnEhiBNT03EjElMTworQkpFTE9UT01JxIYgSk9WTworQkpFTE9WScSGIFJBVEtPCitCSkVMT1ZVSyBNSVJKQU5BCitCSkVMT1ZVSyBTTEFWSUNBCitCSkVMT1ZVSyBTTEFWS08KK0JMQcWgS08gVElCT1IKK0JMQcWgS09WScSGIEZSQU5KTworQkxBxaBLT1ZJxIYgTEFTTE8KK0JMQcWgS09WScSGIFBBVkxFCitCTEHFvUFOIEZSQU5KTworQkxBxb1BTiBJVk8KK0JMQcW9QU4gTUFSS08KK0JMQcW9QU4gU0xBVktPCitCTEHFvUVLIEdVU1RBVgorQkxBxb1FSyBKRUxFTkEKK0JMQcW9RUsgTUFSSUpBCitCTEHFvUVLIE1JSEFMSgorQkxBxb1FVkEgT0xHQQorQkxBxb1FVknEhiBBTkRSSUpBCitCTEHFvUVWScSGIERSQUdBTkEKK0JMQcW9RVZJxIYgRFJBR08KK0JMQcW9RVZJxIYgRFXFoEFOS0EKK0JMQcW9RVZJxIYgRFXFoElDQQorQkxBxb1FVknEhiBEVUJSQVZLQQorQkxBxb1FVknEhiBGUkFOSk8KK0JMQcW9RVZJxIYgTUlPRFJBRworQkxBxb1FVknEhiBSQURFIERSIExFS0FSCitCTEHFvUVWScSGIFNUSkVQQU4KK0JMQcW9RVZJxIYgU1VaQU5BCitCTEHFvUVWScSGIFZFUkEKK0JMQcW9RVZJxIYgWk9SQU4KK0JMQcW9ScSGIMSQT1LEkEUKK0JMQcW9ScSGIEJPxaBLTworQkxBxb1JxIYgQlJBTklTTEFWQQorQkxBxb1JxIYgRFJBR0FOCitCTEHFvUnEhiBEUkFHQU4KK0JMQcW9ScSGIERSQUdPTEpVQgorQkxBxb1JxIYgSFJJU1RJTkEKK0JMQcW9ScSGIElWQU4KK0JMQcW9ScSGIEpFTEVOQQorQkxBxb1JxIYgS1NFTklKQQorQkxBxb1JxIYgTUFSSUpBCitCTEHFvUnEhiBNRVRPRElKRQorQkxBxb1JxIYgTUlIQUpMTworQkxBxb1JxIYgU0FWQQorQkxBxb1JxIYgU0FWS08KK0JMQcW9ScSGIFNWRVRPWkFSCitCTEHFvUnEhiBWSURBCitCTEHFvUlLIEFOVEFMCitCTEHFvUlOIERSQUdJTkpBCitCTEFHT0pFViDFvUlWS08KK0JMQUdPSkVWIMW9SVZLTworQkxBR09KRVYgxJBPUsSQRQorQkxBR09KRVYgSVZBTgorQkxBR09KRVYgTUlMSVZPSgorQkxBR09KRVYgTUlMT1JBRAorQkxBR09KRVYgTUlUQQorQkxBR09KRVYgUkFEQQorQkxBR09KRVYgUkFET1NMQVYKK0JMQUdPSkVWIFNURVZBTgorQkxBR09KRVYgVkVMSU1JUgorQkxBR09KRVZJxIYgxIxFRE8KK0JMQUdPSkVWScSGIMW9QVJLTworQkxBR09KRVZJxIYgxJBPUsSQRQorQkxBR09KRVZJxIYgxJBPUsSQRQorQkxBR09KRVZJxIYgQU5BCitCTEFHT0pFVknEhiBCRcSGS08KK0JMQUdPSkVWScSGIEJPUkEKK0JMQUdPSkVWScSGIEJPUklTTEFWCitCTEFHT0pFVknEhiBCT1JJVk9KRQorQkxBR09KRVZJxIYgQk9SSVZPSgorQkxBR09KRVZJxIYgQk9SS08KK0JMQUdPSkVWScSGIEJSQU5JU0xBVgorQkxBR09KRVZJxIYgREFOSUNBCitCTEFHT0pFVknEhiBEUkFHT01JUgorQkxBR09KRVZJxIYgRFXFoEFOIERJUEwgSU5HCitCTEFHT0pFVknEhiBEVcWgQU4KK0JMQUdPSkVWScSGIEpBR0lDQQorQkxBR09KRVZJxIYgSkFOS08KK0JMQUdPSkVWScSGIEtSU1RBTgorQkxBR09KRVZJxIYgTEpVQk9NSVIKK0JMQUdPSkVWScSGIE1BUklOS08KK0JMQUdPSkVWScSGIE1JS0EKK0JMQUdPSkVWScSGIE1JS0EKK0JMQUdPSkVWScSGIE1JTEFOCitCTEFHT0pFVknEhiBNSUxBTgorQkxBR09KRVZJxIYgTUlMQU4KK0JMQUdPSkVWScSGIE1JTEVOQQorQkxBR09KRVZJxIYgTUlMSUNBCitCTEFHT0pFVknEhiBNSUxJVk9KRQorQkxBR09KRVZJxIYgTUlMT8WgCitCTEFHT0pFVknEhiBNSVJPU0xBVgorQkxBR09KRVZJxIYgTUxBxJBBCitCTEFHT0pFVknEhiBNT01JUgorQkxBR09KRVZJxIYgTkFEQQorQkxBR09KRVZJxIYgUFJFRFJBRworQkxBR09KRVZJxIYgUkFERQorQkxBR09KRVZJxIYgUkFET01JUgorQkxBR09KRVZJxIYgU0VSQUZJTkEKK0JMQUdPSkVWScSGIFNMT0JPREFOCitCTEFHT0pFVknEhiBTTE9CT0RBTgorQkxBR09KRVZJxIYgU0xPQk9EQU4KK0JMQUdPSkVWScSGIFNORcW9QU5BCitCTEFHT0pFVknEhiBTTkpFxb1BTkEKK0JMQUdPSkVWScSGIFNUQU5LTworQkxBR09KRVZJxIYgU1RFVk8KK0JMQUdPSkVWScSGIFNWRVRLTworQkxBR09KRVZJxIYgVkxBRElTTEFWCitCTEFHT1ZJxIYgTUFSSUpBCitCTEFITyBKT8W9RUYKK0JMQU5BUklLIMWgQU5ET1IKK0JMQU5BUklLIMSQVVJBCitCTEFOQVJJSyBBTEVLU0FOREFSCitCTEFOQVJJSyBFVEVMS0EKK0JMQU5BUklLIElMT05BCitCTEFOQVJJSyBKT8W9RUYKK0JMQU5BUklLIExBRElTTEFWCitCTEFOQVJJSyBPTEdBCitCTEFOQVJJSyBTVEVWQU4KK0JMQU5BUklLIFRJQk9SCitCTEFOQVJJSyBWQUxFUklKQQorQkxBTlXFoEEgQlJBTktPCitCTEFOVcWgQSBJTElKQQorQkxBTlXFoEEgUkFERQorQkxBTlXFoEEgVkVSQQorQkxBTlXFoEEgWk9SQU4KK0JMQVRFxaBJxIYgTUlPTEpLQQorQkxBVEXFoEnEhiBSQUpLTworQkxBVE5JQ0tJIFZFU05BCitCTEXEjEnEhiBKRUxFTkEKK0JMRcSMScSGIExKVUJJQ0EKK0JMRcSMScSGIE1JTEFESU4KK0JMRcSMScSGIE1JT0RSQUcKK0JMRcSMScSGIFJBRE9TQVYgTVIKK0JMRcSMScSGIFNBxaBBCitCTEVITCBKT1ZBTktBCitCTElUVkEgxJBPUsSQRQorQkxJVFZBIEJSQU5LTworQkxJWkFOQUMgRE9CUklWT0oKK0JMSVpBTkFDIERSQUdPTEpVQgorQkxJWkFOQUMgRFXFoEFOCitCTElaQU5BQyBKRUxLSUNBCitCTElaQU5BQyBMRVBPU0FWQQorQkxJWkFOQUMgTUlMT1JBRAorQkxJWkFOQUMgTUlST1NMQVYKK0JMSVpBTkFDIE5FTkFECitCTElaQU5BQyBTQVZBCitCTElaQU5BQyBWVUpJQ0EKK0JMT8W9ScSGIERJTUlUUklKRQorQkxVTUVOxaBBSk4gS0FSTE8KK0JPxIxBTiBJVkFOCitCT8SMS09SIE5JS09MQQorQk/FoMSMQU5JTiBCT8WgS08KK0JPxaBLScSGIEJPUktBCitCT8WgS0nEhiBNSVJKQU5BCitCT8WgS0nEhiBOQVRBxaBBCitCT8WgS0nEhiBaT1JBCitCT8WgS09WIMW9QVJLTyBESVBMIElORworQk/FoEtPViDFvUlWT0pJTgorQk/FoEtPVi1KQUdPREnEhiBaT1JJQ0EKK0JPxaBLT1YgTEpVQklOS0EKK0JPxaBLT1YgTFVLQQorQk/FoEtPViBNSUxJVk9KRQorQk/FoEtPViBNSUxPxaAKK0JPxaBLT1YgTUlSSkFOQQorQk/FoEtPViBTQVZLQQorQk/FoEtPViBTT0ZJSkEKK0JPxaBLT1YgU1JFVEVOCitCT8WgS09WIFNURVZBTgorQk/FoEtPViBTVE9KQU4KK0JPxaBLT1YgVkVTTkEKK0JPxaBLT1YgVlVKQURJTgorQk/FoEtPVknEhiDFvUVMSktPCitCT8WgS09WScSGIMW9SVZLTworQk/FoEtPVknEhiBBTEVLU0FOREFSCitCT8WgS09WScSGIEFMRUtTQQorQk/FoEtPVknEhiBBTEVLU0EKK0JPxaBLT1ZJxIYgQU7EkEEKK0JPxaBLT1ZJxIYgQklMSkFOQQorQk/FoEtPVknEhiBCTEFHT0pFCitCT8WgS09WScSGIEJPxaBLTworQk/FoEtPVknEhiBCT0dEQU5LQQorQk/FoEtPVknEhiBCT0dEQU4KK0JPxaBLT1ZJxIYgQk9SSVMKK0JPxaBLT1ZJxIYgQlVESU1JUgorQk/FoEtPVknEhiBDVkVUS08KK0JPxaBLT1ZJxIYgREFOSUxPCitCT8WgS09WScSGIERFU0FOS0EKK0JPxaBLT1ZJxIYgRFJBR0FOCitCT8WgS09WScSGIERSQUdJQ0EKK0JPxaBLT1ZJxIYgRFJBR09KTE8KK0JPxaBLT1ZJxIYgRFJBR09MSlVCCitCT8WgS09WScSGIERSQUdPTUlSCitCT8WgS09WScSGIERSQUdPTUlSCitCT8WgS09WScSGIERVxaBBTgorQk/FoEtPVknEhiBEVcWgQU4KK0JPxaBLT1ZJxIYgRFXFoEtPCitCT8WgS09WScSGIEdPUkFOCitCT8WgS09WScSGIEdPUkFOCitCT8WgS09WScSGIEhFRFZJR0EKK0JPxaBLT1ZJxIYgSk9WQU4KK0JPxaBLT1ZJxIYgS1JTVE8KK0JPxaBLT1ZJxIYgTEpJTEpBTkEKK0JPxaBLT1ZJxIYgTEpVQknFoEEKK0JPxaBLT1ZJxIYgTEpVQklOS0EKK0JPxaBLT1ZJxIYgTEpVQk9NSVIKK0JPxaBLT1ZJxIYgTEpVQk9NSVIKK0JPxaBLT1ZJxIYgTUlMRVZBCitCT8WgS09WScSGIE1JTElWT0pFCitCT8WgS09WScSGIE1JTElWT0pFCitCT8WgS09WScSGIE1JTE9SQUQKK0JPxaBLT1ZJxIYgTUlMT1JBRAorQk/FoEtPVknEhiBNSUxPUkFECitCT8WgS09WScSGIE1JTE9SQUQKK0JPxaBLT1ZJxIYgTUlMT1ZBTgorQk/FoEtPVknEhiBNSU9EUkFHCitCT8WgS09WScSGIE1JUktPCitCT8WgS09WScSGIE1PTcSMSUxPCitCT8WgS09WScSGIE1PTcSMSUxPCitCT8WgS09WScSGIE5BREEKK0JPxaBLT1ZJxIYgTkFEQQorQk/FoEtPVknEhiBORURFTEpLTworQk/FoEtPVknEhiBOSUtPTEEKK0JPxaBLT1ZJxIYgTklLT0xBCitCT8WgS09WScSGIE5PVktBCitCT8WgS09WScSGLVBFUk9WScSGIElWQU5BCitCT8WgS09WScSGIFBFVEFSCitCT8WgS09WScSGIFBFVEFSCitCT8WgS09WScSGIFBFVEFSCitCT8WgS09WScSGIFBFVEFSCitCT8WgS09WScSGIFBFVEFSCitCT8WgS09WScSGIFJBRE9NSVIKK0JPxaBLT1ZJxIYgUkFUT01JUgorQk/FoEtPVknEhiBST1NBCitCT8WgS09WScSGIFNBVkEKK0JPxaBLT1ZJxIYgU0xPQk9EQU5LQQorQk/FoEtPVknEhiBTTE9CT0RBTgorQk/FoEtPVknEhiBTTE9CT0RBTgorQk/FoEtPVknEhiBTVEVWQU4gQURWT0tBVAorQk/FoEtPVknEhiBTVEVWQU4KK0JPxaBLT1ZJxIYgU1RFVkFOCitCT8WgS09WScSGIFRPTUlTTEFWCitCT8WgS09WScSGIFRPTUlTTEFWCitCT8WgS09WScSGIFZFTEpLTworQk/FoEtPVknEhiBWTEFEQQorQk/FoEtPVknEhiBWTEFESU1JUgorQk/FoEtPVknEhiBWT0pJU0xBVgorQk/FoEtPVlNLSSBET0rEjElOCitCT8WgS09WU0tJIFJBREEKK0JPxaBOSkHEjEnEhiBSQUpLTworQk/FoE5KQUsgxJBPUsSQRQorQk/FoE5KQUsgxJBVUkEKK0JPxaBOSkFLIMSQVVJPCitCT8WgTkpBSyBBTkEKK0JPxaBOSkFLIEJPxb1JREFSCitCT8WgTkpBSyBEQVJLTworQk/FoE5KQUsgREVKQU4KK0JPxaBOSkFLIERFU0FOS0EKK0JPxaBOSkFLIEZFUkVOQworQk/FoE5KQUsgScWgVFZBTgorQk/FoE5KQUsgSkVMRU5BCitCT8WgTkpBSyBKRUxJQ0EKK0JPxaBOSkFLIEpFTElDQQorQk/FoE5KQUsgSlVMS0EKK0JPxaBOSkFLIEtBVEFSSU5BCitCT8WgTkpBSyBLT1NUQQorQk/FoE5KQUsgTEpVQk9NSVIKK0JPxaBOSkFLIExKVUJPTUlSCitCT8WgTkpBSyBNQUdEQUxFTkEKK0JPxaBOSkFLIE1BUklKQQorQk/FoE5KQUsgTUlMQU4KK0JPxaBOSkFLIE1JTEVOQQorQk/FoE5KQUsgTUlMT1JBRAorQk/FoE5KQUsgTUlSS08KK0JPxaBOSkFLIE5FxJBPCitCT8WgTkpBSyBOSUtPTEEKK0JPxaBOSkFLIFBBVkxFCitCT8WgTkpBSyBQRVRBUgorQk/FoE5KQUsgUkFETUlMQQorQk/FoE5KQUsgUkFET0pLQQorQk/FoE5KQUsgUkFET1ZBTgorQk/FoE5KQUsgU0xBVktBCitCT8WgTkpBSyBTTEFWS08KK0JPxaBOSkFLIFRPTUlTTEFWCitCT8WgTkpBSyBWRUxJTUlSCitCT8WgTkpBSyBWSURPU0FWQQorQk/FoE5KQUsgVklOS0EKK0JPxaBOSkFLIFZPSklTTEFWCitCT8WgTkpBSyBaT1JBTgorQk/FoE5KQUtPVknEhiBBTEVLU0FOREFSIERJUEwgSU5HCitCT8WgTkpBS09WScSGIEFMRUtTQU5EQVIgRElQTCBQUkFWTklLCitCT8WgTkpBS09WScSGIEFOVE9OSUpBCitCT8WgTkpBS09WScSGIEJJTEpBTkEKK0JPxaBOSkFLT1ZJxIYgQk9SSVNMQVYKK0JPxaBOSkFLT1ZJxIYgQk9SSVNMQVYKK0JPxaBOSkFLT1ZJxIYgQlJBTktBCitCT8WgTkpBS09WScSGIENWSUpFVElOCitCT8WgTkpBS09WScSGIERPQlJJTktBCitCT8WgTkpBS09WScSGIEtPUk5FTElKRQorQk/FoE5KQUtPVknEhiBMSlVCT01JUgorQk/FoE5KQUtPVknEhiBNQVJJQ0EgRElQTCBPRUMKK0JPxaBOSkFLT1ZJxIYgTUlMVVRJTgorQk/FoE5KQUtPVknEhiBNSVJPU0xBVgorQk/FoE5KQUtPVknEhiBNSVRBUgorQk/FoE5KQUtPVknEhiBQQVZBTworQk/FoE5KQUtPVknEhiBSQURPU0xBVgorQk/FoE5KQUtPVknEhiBSQVRLTworQk/FoE5KQUtPVknEhiBTSU5JxaBBCitCT8WgTkpBS09WScSGIFNMQVZLQQorQk/EhkFOIE1BUklKQQorQk/EhkVSRUcgWlVaQU5BCitCT8W9QSBQQUwKK0JPxb1BTknEhiDFvUlLQQorQk/FvUFOScSGIMSQT1LEkEUKK0JPxb1BTknEhiBBTsSQRUxLQQorQk/FvUFOScSGIERVxaBBTgorQk/FvUFOScSGIEdPSktPCitCT8W9QU5JxIYgSkVMRU5BCitCT8W9QU5JxIYgS09TQQorQk/FvUFOScSGIE1JTElDQQorQk/FvUFOScSGIE1JTE9SQUQKK0JPxb1BTknEhiBORVZFTktBCitCT8W9QU5PVknEhiBSQUpLQQorQk/FvUFOT1ZJxIYgWk9SQU4KK0JPxb1FUiBMQUpPxaAKK0JPxb1FUiBMSlVERVZJVAorQk/FvUVSIFpPUkEKK0JPxb1JxIxJxIYgTUlMQU4KK0JPxb1JxIxJxIYgTUlMRU5LTworQk/FvUnEjEnEhiBQRVRBUgorQk/FvUnEjEtPVknEhiBKT1ZBTgorQk/FvUnEjEtPVknEhiBORURFTEpLTyBEUgorQk/FvUnEjEtPVknEhiBORVJBCitCT8W9ScSMS09WScSGIFZPSklTTEFWCitCT8W9ScSMS09WScSGIFpPUktBCitCT8W9ScSGIMSMRURPTUlSCitCT8W9ScSGIMW9QVJLTworQk/FvUnEhiDFvUlWQU5BCitCT8W9ScSGIMW9SVZLTworQk/FvUnEhiDEkE9SxJBFCitCT8W9ScSGIMSQVVLEkElOQQorQk/FvUnEhiDEkFVSQQorQk/FvUnEhiBBTEVLU0FOREFSCitCT8W9ScSGIEFMRUtTQU5EQVIKK0JPxb1JxIYgQU7EkEVMS0EKK0JPxb1JxIYgQk/FoEtPCitCT8W9ScSGIEJPxb1BTkEKK0JPxb1JxIYgQk9SSVZPSgorQk/FvUnEhiBCT1JLTworQk/FvUnEhiBCUkFOSVNMQVYKK0JPxb1JxIYgQlJBTklTTEFWCitCT8W9ScSGIERBUklOS0EKK0JPxb1JxIYgREVKTworQk/FvUnEhiBERVNBTktBCitCT8W9ScSGIERSQUdBTgorQk/FvUnEhiBEUkFHQU4KK0JPxb1JxIYgRFJBR0FOCitCT8W9ScSGIERSQUdBTgorQk/FvUnEhiBEUkFHT0xKVUIKK0JPxb1JxIYgRFJBR09NSVIKK0JPxb1JxIYgRFJBR09NSVIKK0JPxb1JxIYgRFJBR09NSVIKK0JPxb1JxIYgRFXFoEFOCitCT8W9ScSGIEdBVlJPCitCT8W9ScSGIEdPSktPCitCT8W9ScSGIEdPUkRBTkEKK0JPxb1JxIYgR09SREFOQQorQk/FvUnEhiBHUkFESU1JUgorQk/FvUnEhiBJTElKQQorQk/FvUnEhiBJVkFOCitCT8W9ScSGIEpPVkFOS0EKK0JPxb1JxIYgSk9WQU4KK0JPxb1JxIYgSk9WQU4KK0JPxb1JxIYgSk9WSUNBCitCT8W9ScSGIEpVTEtBCitCT8W9ScSGIEtTRU5JSkEKK0JPxb1JxIYgTEFaQVIKK0JPxb1JxIYgTEFaQVIKK0JPxb1JxIYgTEpJTEpBTkEKK0JPxb1JxIYgTUFSQQorQk/FvUnEhiBNQVJJTktPCitCT8W9ScSGIE1BUktPCitCT8W9ScSGIE1BUktPCitCT8W9ScSGIE1BUktPCitCT8W9ScSGIE1BVElKQQorQk/FvUnEhiBNSUxBTgorQk/FvUnEhiBNSUxBTgorQk/FvUnEhiBNSUxBTgorQk/FvUnEhiBNSUxBTgorQk/FvUnEhiBNSUxBTgorQk/FvUnEhiBNSUxBTgorQk/FvUnEhiBNSUxFVkEKK0JPxb1JxIYgTUlMRQorQk/FvUnEhiBNSUxJU0FWCitCT8W9ScSGIE1JTEpLTworQk/FvUnEhiBNSUxPUkFECitCT8W9ScSGIE1JT0RSQUcKK0JPxb1JxIYgTUlSSkFOQQorQk/FvUnEhiBNSVJLTworQk/FvUnEhiBNSVJLTworQk/FvUnEhiBNT03EjElMTworQk/FvUnEhiBNT03EjElMTworQk/FvUnEhiBORcSQTworQk/FvUnEhiBORU5BRAorQk/FvUnEhiBORU5BRAorQk/FvUnEhiBOSUtPTEEKK0JPxb1JxIYgT0xHQQorQk/FvUnEhiBPWlJFTgorQk/FvUnEhiBQQVZMRSBESVBMIElORworQk/FvUnEhiBQRVJBCitCT8W9ScSGIFBFVEFSCitCT8W9ScSGIFJBRElWT0oKK0JPxb1JxIYgUkFETUlMQQorQk/FvUnEhi1SQURPTUlST1ZJxIYgSk9LQQorQk/FvUnEhiBSQURPVkFOCitCT8W9ScSGIFJBSktPCitCT8W9ScSGIFJBTktPCitCT8W9ScSGIFNBTkpBCitCT8W9ScSGIFNBVkEKK0JPxb1JxIYgU0FWQQorQk/FvUnEhiBTQVZPCitCT8W9ScSGIFNMT0JPREFOCitCT8W9ScSGIFNMT0JPREFOCitCT8W9ScSGIFNSRVRFTgorQk/FvUnEhiBTVEFOSU1JUgorQk/FvUnEhiBTVEVWQU4KK0JPxb1JxIYgU1RFVk8KK0JPxb1JxIYgU1RPSkFOS0EKK0JPxb1JxIYgVEFNQVJBCitCT8W9ScSGIFRBVEpBTkEKK0JPxb1JxIYgVEVPRE9SCitCT8W9ScSGIFRPTUlTTEFWCitCT8W9ScSGIFZFUklDQQorQk/FvUnEhi1WSUxJxIYgSkVMRU5BCitCT8W9ScSGIFZMQURBTktBCitCT8W9ScSGIFZMQURBCitCT8W9ScSGIFZMQURBCitCT8W9ScSGIFZMQURBCitCT8W9ScSGIFZMQURJU0xBVgorQk/FvUnEhiBWVUtPU0FWQQorQk/FvUnEhiBaTEFUQQorQk/FvUnEhiBaTEFUSUNBCitCT8W9ScSGIFpPUkFOCitCT8W9ScSGIFpPUkFOCitCT8W9ScSGIFpPUkFOCitCT8W9ScSGIFpPUkFOCitCT8W9ScSGIFpPUktBCitCT8W9SURBUiBBTEVLU0FOREFSCitCT8W9SURBUiBCT1JJU0xBVgorQk/FvUlEQVIgQk9SSVNMQVYKK0JPxb1JREFSLUtSScW9QUsgSVJFTkEKK0JPxb1JREFSIExKVUJPTUlSCitCT8W9SURBUkVWScSGIMSQVVJBCitCT8W9SURBUkVWScSGIERFU0FOS0EKK0JPxb1JREFSRVZJxIYgUEVSU0lEQQorQk/FvUlEQVJFVknEhiBWRUxKS08KK0JPxb1JTiDFvUFSS08KK0JPxb1JTiDEkE9SxJBFCitCT8W9SU4gREFOSUNBCitCT8W9SU4gREFSSU5LQQorQk/FvUlOIERFU0FOS0EKK0JPxb1JTiBJR05KQVQgRElQTCBJTkcKK0JPxb1JTiBJU0lET1IKK0JPxb1JTiBKRUxJQ0EKK0JPxb1JTiBKVUxJSkFOQQorQk/FvUlOIEtSSVNUSU5BCitCT8W9SU4gS1NFTklKQQorQk/FvUlOIExBWkFSCitCT8W9SU4gTEpVQklDQQorQk/FvUlOIExKVUJJQ0EKK0JPxb1JTiBNSUxPxaAKK0JPxb1JTiBNSUxPxaAKK0JPxb1JTiBNSVJPU0xBVgorQk/FvUlOIE5JS09MQQorQk/FvUlOIFBBVkxFCitCT8W9SU4gUEVUQVIKK0JPxb1JTiBSQURJVk9KCitCT8W9SU4gUkFET1ZBTgorQk/FvUlOIFNJTknFoEEKK0JPxb1JTiBTTEFWSUNBCitCT8W9SU4gU0xPQk9EQU4KK0JPxb1JTiBTVEVWQU4KK0JPxb1JTiBTVEVWQU4KK0JPxb1JTiBTVEVWQU4KK0JPxb1JTknEhiBSVcW9SUNBCitCT8W9SU5PVlNLSSBBTkdFTAorQk/FvUlOT1ZTS0kgUklTVEUKK0JPxb1JTk9WU0tJIFRSQUpBTgorQk/FvUpBSyBGUkFOSk8KK0JPxb1KQUsgTUlLQQorQk/FvUpBS09WScSGIExKVUJJTktBCitCT8W9TyBFTEVPTk9SQQorQk/FvU9LSSBFUk5FCitCT8W9T0tJIElMT05BCitCT8W9T1ZJxIYgQk/FvUlEQVIKK0JPxb1PVknEhiBCT1JJVk9KCitCT8W9T1ZJxIYgQlJBVElTTEFWCitCT8W9T1ZJxIYgR09SxIxJTgorQk/FvU9WScSGIEdPUkRBTkEKK0JPxb1PVknEhiBMSlVCSUNBCitCT8W9T1ZJxIYgTUlMQURJTiBESVBMIElORworQk/FvU9WScSGIE1JTEFESU4KK0JPxb1PVknEhiBNSUxPUkFECitCT8W9T1ZJxIYgTUlMT1ZBTgorQk/FvU9WScSGIE1JUkpBTkEKK0JPxb1PVknEhiBNSVJPTEpVQgorQk/FvU9WScSGIFJBxaBLTworQk/FvU9WScSGIFNMQVZLTworQk/FvU9WScSGIFNORcW9QU5BCitCT8W9T1ZJxIYgU1RBTktBCitCT8W9T1ZJxIYgVkVMSU1JUgorQk/FvU9WScSGIFZFUkEKK0JPxb1PVknEhiBWTEFESU1JUgorQk/FvVVMScSGIEFOxJBFTEtPCitCT8W9VUxJxIYgSVZBTgorQk/FvVVMScSGIElWSUNBCitCT8W9VUxJxIYgU0lOScWgQQorQk/FvVVOT1ZJxIYgRFXFoEFOCitCT8SQQSDEkFVSQQorQk/EkEEgQU5EUklKQQorQk/EkEEgQU5EUklKQQorQk/EkEEgQU5EUklKQQorQk/EkEEgSVZBTgorQk/EkEEgSVZBTgorQk/EkEEgSk9WQU4KK0JPxJBBIFNBxaBBCitCT8SQQSBTVEVWQU4KK0JPxJBBTkFDIEpFTEVOQQorQk/EkEFOQUMgTUlST1NMQVYKK0JPxJBBTkFDIFpEUkFWS08KK0JPxJBBTlNLSSBBTEVLU0FOREFSCitCT0FST1YgRElNSVRSSUpFCitCT0FST1YgSk9WQU4KK0JPQVJPViBLQVRBUklOQQorQk9BUk9WIE1JTEFOS0EKK0JPQiBKVVNUSU5BCitCT0JBSyBJxaBUVkFOCitCT0JBSyBLQVRJQ0EKK0JPQkFOIMSQRVLEkAorQk9CQU4gTUFSSUpBCitCT0JBTiBNRVJJTUEKK0JPQkFOIE5FREVMSktPCitCT0JBTiBTVElQRQorQk9CQU4gU1VaQU5BCitCT0JBTi1WQVJOVVMgRVLFvUVCRVQKK0JPQkFOSiBJTVJFCitCT0JBUiBCT8WgS08KK0JPQkFSRVZJxIYgUlXFvUlDQQorQk9CRVJJxIYgT0xHQQorQk9CRVJJxIYgWk9SS0EKK0JPQknEhiDEkE9SxJBFCitCT0JJxIYgxJBPUsSQRQorQk9CScSGIEJPR0RBTgorQk9CScSGIEJSQU5JU0xBVgorQk9CScSGIElWQU4KK0JPQknEhiBKT1NJUAorQk9CScSGIEtBSkEKK0JPQknEhiBMSlVCT01JUgorQk9CScSGIE1JTEFOS0EKK0JPQknEhiBNSUxJQ0EKK0JPQknEhiBNTEFERU4KK0JPQknEhiBORU5BRAorQk9CScSGIFJVxb1JQ0EKK0JPQknEhiBUQU5KQQorQk9CSU5BQyBKT1NJUAorQk9CSU5BQyBMVUNJSkEKK0JPQklORUMgSk9TSVAKK0JPQkxKQUdPVknEhiBCT0dPU0xBVgorQk9CT8WgIFNUQU5LTworQk9DIFNURVZBTgorQk9DQSBEQU5FCitCT0NBIERVxaBBTgorQk9DQSBNSUxFCitCT0NBIE1JTE/FoAorQk9DT05BREkgTUFSVE9OCitCT0TFvU9OSSBHSVpFTEEKK0JPRMW9T05JIFNURVZBTgorQk9EQSBKT1ZBTgorQk9EQUtPxaAgSk9TSVAKK0JPREFLT8WgIFNUSkVQQU4KK0JPREVHUkFKQUMgU09GSUpBCitCT0RJIEVSxb1FQkVUCitCT0RJIEpBU01JTkEKK0JPREkgTEFKT8WgCitCT0RJIExBU0xPCitCT0RJIE1JSEFKTE8KK0JPREnFoCBKT8W9RUYKK0JPREnFoCBNSUxJQ0EKK0JPRElST8W9QSBQRVRBUgorQk9ESVJPxb1BIFJBRElWT0oKK0JPRElST0dBIEpPVkFOCitCT0RJUk9HQSBNQVJJSkEKK0JPRElST0dBIE5JS08KK0JPRElST0dBIFBSRURSQUcKK0JPRExPVknEhiBOSUtPTEEKK0JPRE5BUiDFoEFORE9SCitCT0ROQVIgUklTVEEKK0JPRE5BUiBTVEVWQU4KK0JPRE5BUiBWRVJJQ0EKK0JPRE8gScWgVFZBTgorQk9ETyBLQVJPTEoKK0JPRE8gTUFSSUpBCitCT0RPIE1BUklKQQorQk9ETyBNQVRJSkEKK0JPRE8gU1RFVkFOCitCT0RPxIxJIEpPxb1FRgorQk9ET0xPIMWgQU5ET1IKK0JPRE9MTyBJxaBUVkFOCitCT0RPTkpJIEtBUkxPCitCT0RPUiBBTlRPTgorQk9ET1IgQU5UVU4KK0JPRE9SIEJPU0lMSktBCitCT0RPUiBGUkFOSkEKK0JPRE9SIEZSQU5KQQorQk9ET1IgScWgVFZBTgorQk9ET1IgSkFOT8WgCitCT0RPUiBKT1NJUAorQk9ET1IgUEVUQVIKK0JPRE9SIFNJTknFoEEKK0JPRFJFIEnFoFRWQU4KK0JPRFJJxIwtSEVSxIZBTiBBUkFOS0EKK0JPRFJJxIwgTUlIQUpMTworQk9EUknEjCBTVEVWQU4KK0JPRFJJxIwgVkVTTkEKK0JPRFJJxIYgSkVMSVNBVkVUQQorQk9EUk/FvUEgQlJBTktPCitCT0RST8W9QSBPTEdBCitCT0RST8W9ScSGIElMSUpBCitCT0RST8W9ScSGIElMSUpBCitCT0RST8W9ScSGIEpPVkFOCitCT0RST8W9ScSGIE1JTEFOCitCT0RST8W9ScSGIFNURVZBTgorQk9EVUxJxIYgxaBURUZBTklKQQorQk9EVUxJxIYgSkVMRU5BCitCT0RVTEnEhiBQRVRBUgorQk9EVUxJxIYgU0xPQk9EQU4KK0JPRFVMScSGIFNMT0JPREFOCitCT0RWQUkgSkFOS08KK0JPR0FST8WgSSBTTE9CT0RBTgorQk9HQVJPxaBLSSBBTkRSSUpBCitCT0dBVElOT1NLSSBUT01JU0xBVgorQk9HQVZBQyBBTEVLU0FOREFSIERSCitCT0dBVkFDIEJSQU5JU0xBVgorQk9HQVZBQyBEUkFHSUNBCitCT0dBVkFDIEpBRFJBTktBCitCT0dBVkFDIE1JUkpBTkEKK0JPR0RBTiBBTkRSQcWgCitCT0dEQU4gQklMSkFOQQorQk9HREFOIERVxaBBTgorQk9HREFOIEnFoFRWQU4KK0JPR0RBTiBJTVJFCitCT0dEQU4gSVZBTgorQk9HREFOIEpPU0lQCitCT0dEQU4gSk9TSVAKK0JPR0RBTiBNQU5FCitCT0dEQU4tTUlKSU4gRFXFoEFOS0EKK0JPR0RBTiBNSUxLQQorQk9HREFOIE5JS09MQQorQk9HREFOIFNURVZBTgorQk9HREFOIFNURVZBCitCT0dEQU4gVkVSSUNBCitCT0dEQU4gWk9SQU4KK0JPR0RBTkZJIMWgQU5ET1IgTk9WSU5BUgorQk9HREFORkkgTUFSSU5LTworQk9HREFOT1YtQU5UT05JxIYgQklMSkFOQQorQk9HREFOT1YgQklTRVJLQQorQk9HREFOT1YgQlJBTklTTEFWIERSIFBST0YKK0JPR0RBTk9WIEJSQU5LQSBEUiBMRUtBUgorQk9HREFOT1YgREFOSUxPCitCT0dEQU5PViBESU1JVFJJSkUKK0JPR0RBTk9WIERSQUdBTgorQk9HREFOT1YgRFXFoEFOCitCT0dEQU5PVi1ISUwgRE9CUklMQQorQk9HREFOT1YgSVJNQQorQk9HREFOT1YgSVZBTgorQk9HREFOT1YgTEFaQVIKK0JPR0RBTk9WIE1BUklDQQorQk9HREFOT1YgTUlMQU4KK0JPR0RBTk9WIE1JTEVOQQorQk9HREFOT1YgTUlMT8WgCitCT0dEQU5PViBNSUxPUkFECitCT0dEQU5PViBOQURBCitCT0dEQU5PViBPTEdBCitCT0dEQU5PViBQRVRBUgorQk9HREFOT1YgU0xBVktPCitCT0dEQU5PViBTTEFWTkEKK0JPR0RBTk9WIFNNSUxKQQorQk9HREFOT1YgU1RBTktPCitCT0dEQU5PViBTVEVWQU4KK0JPR0RBTk9WIFNURVZBTgorQk9HREFOT1YgWk9SQU4KK0JPR0RBTk9WScSGIMW9SVZBTiBNUgorQk9HREFOT1ZJxIYgxJBPUsSQRQorQk9HREFOT1ZJxIYgxJBPUsSQRQorQk9HREFOT1ZJxIYgxJBVUkEKK0JPR0RBTk9WScSGIEFMRUtTQU5EQVIKK0JPR0RBTk9WScSGIEFOS0EKK0JPR0RBTk9WScSGIEJMQUdPSkEKK0JPR0RBTk9WScSGIEJPxaBLTworQk9HREFOT1ZJxIYgQk/FvUlEQVIKK0JPR0RBTk9WScSGIEJPR0RBTgorQk9HREFOT1ZJxIYgQk9SQQorQk9HREFOT1ZJxIYgQk9SSVZPSgorQk9HREFOT1ZJxIYgQlJBTklTTEFWQQorQk9HREFOT1ZJxIYgQlJBTklTTEFWCitCT0dEQU5PVknEhiBCUkFOSVNMQVYKK0JPR0RBTk9WScSGIEJSQU5JU0xBVgorQk9HREFOT1ZJxIYgQlJBTklTTEFWCitCT0dEQU5PVknEhiBCUkFOS08KK0JPR0RBTk9WScSGIERBUklOS0EKK0JPR0RBTk9WScSGIERFU0FOS0EKK0JPR0RBTk9WScSGIERJTUlUUklKRQorQk9HREFOT1ZJxIYgRE9CUklWT0oKK0JPR0RBTk9WScSGIERSQUdBTgorQk9HREFOT1ZJxIYgRFJBR0FOCitCT0dEQU5PVknEhiBEUkFHT0xKVUIKK0JPR0RBTk9WScSGIERSQUdPTEpVQgorQk9HREFOT1ZJxIYgRFXFoEtPCitCT0dEQU5PVknEhiBFVEVMS0EKK0JPR0RBTk9WScSGIEdFREVPTgorQk9HREFOT1ZJxIYgR09KS08KK0JPR0RBTk9WScSGIEdPUkRBTkEKK0JPR0RBTk9WScSGIElMSUpBCitCT0dEQU5PVknEhiBJTE9OQQorQk9HREFOT1ZJxIYgSVZBTgorQk9HREFOT1ZJxIYgSk9WQU4KK0JPR0RBTk9WScSGIEpPVklDQQorQk9HREFOT1ZJxIYgS1NFTklKQQorQk9HREFOT1ZJxIYgTEFaQVIKK0JPR0RBTk9WScSGIExBWkFSCitCT0dEQU5PVknEhiBMSklMSkFOQQorQk9HREFOT1ZJxIYgTEpVQklTQVYKK0JPR0RBTk9WScSGIExKVUJPTUlSCitCT0dEQU5PVknEhiBMSlVCT01JUgorQk9HREFOT1ZJxIYgTUFSSU5BCitCT0dEQU5PVknEhiBNScSGTworQk9HREFOT1ZJxIYgTUlIQUpMTworQk9HREFOT1ZJxIYgTUlMQU4KK0JPR0RBTk9WScSGIE1JTEFOCitCT0dEQU5PVknEhiBNSUxBTgorQk9HREFOT1ZJxIYgTUlMQU4KK0JPR0RBTk9WScSGIE1JTEtBCitCT0dEQU5PVknEhiBNSUxPxaAKK0JPR0RBTk9WScSGIE1JTE9TQVYKK0JPR0RBTk9WScSGIE1JT0RSQUcKK0JPR0RBTk9WScSGIE1JUkpBTkEKK0JPR0RBTk9WScSGIE1JVEFSCitCT0dEQU5PVknEhiBNTEFERU4KK0JPR0RBTk9WScSGIE5BREEKK0JPR0RBTk9WScSGIE5BREEKK0JPR0RBTk9WScSGIE5FREVMSktPCitCT0dEQU5PVknEhiBOSUtPTEEKK0JPR0RBTk9WScSGIE5JS09MQQorQk9HREFOT1ZJxIYgTk9WQUsKK0JPR0RBTk9WScSGIFBBSkEKK0JPR0RBTk9WScSGIFBBVkxFCitCT0dEQU5PVknEhiBQQVZMRQorQk9HREFOT1ZJxIYgUEVUQVIKK0JPR0RBTk9WScSGIFBFVEFSCitCT0dEQU5PVknEhiBQRVRBUgorQk9HREFOT1ZJxIYgUEVUQVIKK0JPR0RBTk9WScSGIFBSVk9TTEFWCitCT0dEQU5PVknEhiBSQURJU0FWCitCT0dEQU5PVknEhiBSQURJVk9KRQorQk9HREFOT1ZJxIYgUkFET1NMQVYKK0JPR0RBTk9WScSGIFJBRE9WQU4KK0JPR0RBTk9WScSGIFJBTktPCitCT0dEQU5PVknEhiBSQVRPTUlSCitCT0dEQU5PVknEhiBSVcW9SUNBCitCT0dEQU5PVknEhiBTTEFWS08gTVIgUFJBVk5JSworQk9HREFOT1ZJxIYgU0xPQk9EQU5LQSBQUk9GRVNPUgorQk9HREFOT1ZJxIYgU0xPQk9EQU4KK0JPR0RBTk9WScSGIFNMT0JPREFOCitCT0dEQU5PVknEhiBTT0ZJSkEKK0JPR0RBTk9WScSGIFNPTkpBCitCT0dEQU5PVknEhiBTVEVWQU4KK0JPR0RBTk9WScSGIFNURVZBTgorQk9HREFOT1ZJxIYgU1RFVk8KK0JPR0RBTk9WScSGIFNWRVRJU0xBVgorQk9HREFOT1ZJxIYgVElIT01JUgorQk9HREFOT1ZJxIYgVElIT01JUgorQk9HREFOT1ZJxIYgVkFKQQorQk9HREFOT1ZJxIYgVkFTQQorQk9HREFOT1ZJxIYgVkVSQQorQk9HREFOT1ZJxIYgVklUT01JUgorQk9HREFOT1ZJxIYgVkxBRElNSVIKK0JPR0RBTk9WScSGIFZMQUpLTworQk9HREFOT1ZJxIYgWkRSQVZLTworQk9HREFOT1ZJxIYgWk9SQU4KK0JPR0RBTk9WU0tJIERJTUlUUklKRQorQk9HREFOT1ZTS0kgU0xPQk9EQU4KK0JPR0VUScSGIERSQUdPTEpVQgorQk9HRVRJxIYgU0FOSkEKK0JPR0nEjEVWScSGIMW9SVZLTworQk9HScSMRVZJxIYgQU7EkEVMS0EKK0JPR0nEjEVWScSGIERBTklDQQorQk9HScSMRVZJxIYgRFXFoEFOCitCT0dJxIxFVknEhiBHRU9SR0lKRQorQk9HScSMRVZJxIYgS09TVEFESU5LQQorQk9HScSMRVZJxIYgS1JTVEEKK0JPR0nEjEVWScSGIExKVUJJxaBBCitCT0dJxIxFVknEhiBMSlVCSUNBCitCT0dJxIxFVknEhiBNQVJJSkEKK0JPR0nEjEVWScSGIE1JTElDQQorQk9HScSMRVZJxIYgTklLT0xBCitCT0dJxIxFVknEhiBOSUtPTEEKK0JPR0nEjEVWScSGIFRJSE9NSVIKK0JPR0nEjEVWScSGIFpPUktBCitCT0dJxaBJxIYgQU5EUklKQQorQk9HScWgScSGIEZSQU5KQQorQk9HScWgScSGIEpPU0lQCitCT0dJxIYgQUxFS1NBTkRBUgorQk9HScSGIEFOxJBFTEtBCitCT0dJxIYgQlJBTklTTEFWCitCT0dJxIYgRElNSVRSSUpFCitCT0dJxIYgRFJBR0FOCitCT0dJxIYgRFXFoEFOS0EKK0JPR0nEhiBJTERJS08KK0JPR0nEhiBKRUxFTkEKK0JPR0nEhiBKRUxJU0FWRVRBCitCT0dJxIYgSk9WQU4KK0JPR0nEhiBMSlVCSUNBCitCT0dJxIYgTUFSSUpBCitCT0dJxIYgTUlMQU4KK0JPR0nEhiBNSVJKQU5BCitCT0dJxIYgU09GSUpBCitCT0dJxIYgU1JFxIZLTworQk9HScSGIFNURVZBTgorQk9HScSGRVZJxIYgxb1FTEpLQQorQk9HScSGRVZJxIYgQU7EkEVMS0EKK0JPR0nEhkVWScSGIEJSQU5JU0xBVgorQk9HScSGRVZJxIYgRElNSVRSSUpFCitCT0dJxIZFVknEhiBKRUxJU0FWRVRBCitCT0dJxIZFVknEhiBKRUxLQQorQk9HScSGRVZJxIYgSk9MRVRBCitCT0dJxIZFVknEhiBLT05TVEFOVElOCitCT0dJxIZFVknEhiBNSUxBTgorQk9HTkFSIMWgQU5ET1IKK0JPR05BUiBBTEVLU0FOREFSIERJUEwgSU5HCitCT0dOQVIgQU5UQUwKK0JPR05BUiBFTElaQUJFVEEKK0JPR05BUiBFTElaQUJFVEEKK0JPR05BUiBHSVpFTEEKK0JPR05BUiBKT8W9RUYKK0JPR05BUiBLQUxNQU4KK0JPR05BUiBMQUpPxaAKK0JPR05BUiBNQVJJQQorQk9HTkFSIE1BUklKQQorQk9HTkFSIE1JUktPCitCT0dOQVIgUk9aSUtBCitCT0dOQVIgU0lMQVJECitCT0dOQVIgU1RFVkFOIERSCitCT0dPSkVWIMW9SVZLTworQk9HT0pFVkFDIEVSxb1FQkVUCitCT0dPSkVWQUMgSk9WQU4KK0JPR09KRVZJxIYgQU5HRUxJTkEKK0JPR09KRVZJxIYgQklMSkFOQQorQk9HT0pFVknEhiBCT8W9TworQk9HT0pFVknEhiBCUkFOSVNMQVYKK0JPR09KRVZJxIYgQlJBTktPCitCT0dPSkVWScSGIERSQUdPCitCT0dPSkVWScSGIEpPVkFOS0EKK0JPR09KRVZJxIYgTEFaTworQk9HT0pFVknEhiBMSlVCSVNBVgorQk9HT0pFVknEhiBNSUxBTgorQk9HT0pFVknEhiBNSUxPUkFECitCT0dPSkVWScSGIE1JVEFSCitCT0dPSkVWScSGIE1PTcSMSUxPCitCT0dPSkVWScSGIFJBRE1JTEEKK0JPR09KRVZJxIYgUkFET0pLQQorQk9HT0pFVknEhiBSQURPTUlSCitCT0dPSkVWScSGIFJBRE9NSVIKK0JPR09KRVZJxIYgUkFKS08KK0JPR09KRVZJxIYgU1RBTklKQQorQk9HT0pFVknEhiBUT0RPUgorQk9HT0pFVknEhiBWRUxJTUlSCitCT0dPSkVWScSGIFZMQURBCitCT0dPSkVWScSGIFZMQURJQ0EKK0JPR09KRVZJxIYgVkxBSktPCitCT0dPU0FWIE1JTEFOCitCT0dPU0FWQUMgTUlST1NMQVYKK0JPR09TQVZBQyBNSVJPU0xBVgorQk9HT1NBVkFDIFpEUkFWS08KK0JPR09TQVZMSkVWIEpPVkFOS0EKK0JPR09TQVZMSkVWScSGIMW9QVJLTworQk9HT1NBVkxKRVZJxIYgQlJBTklTTEFWCitCT0dPU0FWTEpFVknEhiBET0JSSUxBCitCT0dPU0FWTEpFVknEhiBET0JSSVZPSkUKK0JPR09TQVZMSkVWScSGIERSQUdJQ0EKK0JPR09TQVZMSkVWScSGIERSQUdPTUlSCitCT0dPU0FWTEpFVknEhiBNSUxBRElOCitCT0dPU0FWTEpFVknEhiBNSU9EUkFHIERSIElORworQk9HT1NBVkxKRVZJxIYgUkFERQorQk9HT1NBVkxKRVZJxIYgU1RBTklNSVIKK0JPR09TQVZMSkVWScSGIFpMQVRBCitCT0dPVkFDIERPQlJPU0xBVkEKK0JPR09WQUMgRFJBR09MSlVCCitCT0dPVkFDIE1JTEFOIERSCitCT0dPVkFDIE5JS09MQQorQk9HT1ZBQyBTTE9CT0RBTgorQk9HT1ZJxIYgSUJPSkEKK0JPR09WScSGIE1JSk8KK0JPR09WScSGIE5JS09MQQorQk9HT1ZJxIYgU1RFVkFOCitCT0dPVknEhiBUT01JU0xBVgorQk9HT1ZJxIYgVkVTTkEKK0JPR09WScSGIFZFU05BCitCT0dPVknEhiBaTEFUS08KK0JPR1VOT1ZJxIYgxJBPUsSQRQorQk9HVU5PVknEhiBCT0dEQU4KK0JPR1VOT1ZJxIYgQlJBTktPCitCT0dVTk9WScSGIERSQUdBTgorQk9HVU5PVknEhiBNSUxBTgorQk9HVU5PVknEhiBUT01JU0xBVgorQk9HVU5PVknEhiBWTEFERQorQk9HVU5PVknEhiBaT1JBTgorQk9HVVQgTEpVQk8KK0JPR1VUIE5BREEKK0JPSEHEjEVLIFZBTFRFUgorQk9ISU5DIEJPxb1BTkEKK0JPSE9DS0kgSkFOT8WgCitCT0hPQ0tJIEpVTElKQU5BCitCT0hPQ0tJIFBFVEFSCitCT0hPQ0tJIFJPQkVSVAorQk9IT1RBIFNJTFZFU1RFUgorQk9IVcWgIEpPVkFOCitCT0rEjEVUQSBHT1JBTgorQk9KxIxFVlNLSSBOQVVNCitCT0rEjEnEhiBNSUxBTgorQk9KQSBBTkRSQcWgCitCT0pBIEVSSUtBCitCT0pBQyBEQUZJTkEKK0JPSkFDIFJBRElWT0oKK0JPSkFEScSGIE1JUktPCitCT0pBR0nEhiBNQVJLTworQk9KQU5JxIYgQUxFS1NBTkRBUgorQk9KQU5JxIYgQU5BCitCT0pBTknEhiBCT0dPU0FWCitCT0pBTknEhiBCT1JJS0EKK0JPSkFOScSGIEJPU0lMSktBCitCT0pBTknEhiBCUkFORQorQk9KQU5JxIYgQlVESU1JUgorQk9KQU5JxIYgREFSSU5LQQorQk9KQU5JxIYgREVTQU5LQQorQk9KQU5JxIYgRFJBR0lDQQorQk9KQU5JxIYgRFJBR09MSlVCCitCT0pBTknEhiBEVcWgQU4KK0JPSkFOScSGIERVxaBBTgorQk9KQU5JxIYgSUxJSkEKK0JPSkFOScSGIEpFTElDQQorQk9KQU5JxIYgTEpVQk8KK0JPSkFOScSGIE1JTEFOCitCT0pBTknEhiBNSUxJVk9KCitCT0pBTknEhiBNSUxJVk9KCitCT0pBTknEhiBNSUxPxaAKK0JPSkFOScSGIE1JTFVOCitCT0pBTknEhiBNSU9EUkFHCitCT0pBTknEhiBSQU5LTworQk9KQU5JxIYgU0xPQk9EQU4KK0JPSkFOScSGIFNWRVRMQU5BCitCT0pBTknEhiBWRUxJTUlSCitCT0pBTknEhiBaT1JBTgorQk9KQU5JxIYgWk9SQQorQk9KQU5PVknEhiDEjEVETworQk9KQU5PVknEhiBEVcWgS08KK0JPSkFOT1ZJxIYgTEFaQVIKK0JPSkFOT1ZJxIYgTUFSSkFOCitCT0pBTk9WScSGIE1JTE9SQUQKK0JPSkFOT1ZJxIYgUklTVEFOCitCT0pBTk9WScSGIFZVSkFESU4KK0JPSkFOT1ZJxIYgVlVKQURJTgorQk9KQVQgSkFOS08KK0JPSkFUIE1JTE9SQUQKK0JPSkFUIFJBRE9NSVIKK0JPSkFUIFZFU0VMSU4gRFIKK0JPSkJJxIYgUkFKS08KK0JPSknEjEnEhiBSQURJVk9KCitCT0pJxIYgQU7EkEVMSUpBCitCT0pJxIYgQkxBR09UQQorQk9KScSGIEJPR0RBTgorQk9KScSGIEJPR09MSlVCCitCT0pJxIYgQk9HT01JUgorQk9KScSGIEJPUklTTEFWCitCT0pJxIYgQlJBTklTTEFWQQorQk9KScSGIEJSQU5JU0xBVgorQk9KScSGIEJSQU5JU0xBVgorQk9KScSGIEJSQU5JU0xBVgorQk9KScSGIERBTklDQQorQk9KScSGIERFSkFOCitCT0pJxIYgRFJBR0FOCitCT0pJxIYgRFJBR0FOCitCT0pJxIYgRFJBR0lDQQorQk9KScSGIERSQUdJTkpBCitCT0pJxIYgRFXFoEFOS0EKK0JPSknEhiBEVcWgQU4KK0JPSknEhiBEVcWgQU4KK0JPSknEhiBHT1JEQU5BIERSCitCT0pJxIYgR09SREFOQQorQk9KScSGIEdPUkRBTkEKK0JPSknEhiBLQVRJQ0EKK0JPSknEhi1LT0xBUlNLSSBHT1JEQU5BCitCT0pJxIYgTEFaQVIKK0JPSknEhiBNQVJLTworQk9KScSGIE1JxaBLTworQk9KScSGIE1JTEEKK0JPSknEhiBNSUxFTktPCitCT0pJxIYgTUlMSURBUgorQk9KScSGIE1JTE9WQU4KK0JPSknEhiBNSU9EUkFHCitCT0pJxIYgTUlSS08KK0JPSknEhiBNSVJPU0xBVgorQk9KScSGIFJBRE9TTEFWQQorQk9KScSGIFJBSktPCitCT0pJxIYgUkFKS08KK0JPSknEhiBTRU5LQQorQk9KScSGIFNORcW9QU5BCitCT0pJxIYgU05Fxb1BTkEKK0JPSknEhiBTT05KSUNBCitCT0pJxIYgU1JFVEVOCitCT0pJxIYgU1RFVkFOCitCT0pJxIYgVE9NSVNMQVYKK0JPSknEhiBVR0xKRcWgQQorQk9KScSGIFZFUkEKK0JPSklOT1ZJxIYgSkVMRU5BCitCT0pLScSGIEFMRUtTQU5EQVIKK0JPSktJxIYgTUlMSUNBCitCT0pLTyBBTEVLU0FOREFSCitCT0pLTyBKT1ZBTktBCitCT0pLTyBNQVJJSkEKK0JPSktPIE5FVkVOS0EKK0JPSktPViBGRU9ET1IKK0JPSktPViBST01BTgorQk9KS09WScSGIERBTklDQQorQk9KS09WScSGIEtSSVNUSU5BCitCT0pLT1ZJxIYgTEVOQQorQk9KS09WScSGIE1JTElDQQorQk9KS09WScSGIFNMT0JPREFOCitCT0pPVknEhiDFvUlWT1JBRAorQk9KT1ZJxIYgQk/FoEtPCitCT0pPVknEhiBCT0dEQU4KK0JPSk9WScSGIEJSQU5LTworQk9KT1ZJxIYgQlJBTktPCitCT0pPVknEhiBEUkFHT0pFCitCT0pPVknEhiBEUkFHT1NMQVYKK0JPSk9WScSGIERSQUdVVElOCitCT0pPVknEhiBEUkFHVVRJTgorQk9KT1ZJxIYgSUtPTklKQQorQk9KT1ZJxIYgSkFLT1YKK0JPSk9WScSGIExKVUJJQ0EKK0JPSk9WScSGIExKVUJPCitCT0pPVknEhiBNSUxBTgorQk9KT1ZJxIYgTUlMQU4KK0JPSk9WScSGIE1JTElDQQorQk9KT1ZJxIYgTUlMSUNBCitCT0pPVknEhiBNSUxPSkUKK0JPSk9WScSGIE1JUk9TTEFWCitCT0pPVknEhiBOQURBCitCT0pPVknEhiBOT1ZJQ0EKK0JPSk9WScSGIFBFVEFSCitCT0pPVknEhiBTUkVUS08KK0JPSk9WScSGIFRPTUlTTEFWCitCT0pPVknEhiBWRUxJxaBBCitCT0pPVknEhiBWRUxKS08KK0JPSk9WScSGIFZMQURBTgorQk9KT1ZJxIYgVk9KSU4KK0JPSk9WScSGIFpPUkFOCitCT0vFoEFOIEFOS0EKK0JPS8WgQU4gRU1JTElKQU4KK0JPS8WgQU4gU1RPSkFOCitCT0vFoEnEhiDEkE9LQQorQk9LxaBJxIYgSkVMRU5BCitCT0vFoEnEhiBMQVpBUgorQk9LxaBJxIYgTUlSSkFOQQorQk9LxaBJxIYgTUlSSkFOQQorQk9LxaBJxIYgUkFEQQorQk9LxaBJxIYgUkFET0pLQQorQk9LxaBJxIYgUkFET1NMQVYKK0JPS8WgScSGIFJVxb1FTktBCitCT0vFoEnEhiBTT0tBCitCT0tBIMW9SVZLQQorQk9LQSBTSUxWSU8KK0JPS0EgU1RKRVBBTgorQk9LQU4gQU7EkEEKK0JPS0FOIEFOSUNBCitCT0tBTiBEUkFHTworQk9LQU4gTUlMQU4KK0JPS0FOIE1JTEFOCitCT0tBTiBNSUxFTkEKK0JPS0FOIE1JUktPCitCT0tBTiBOSUtPTEEKK0JPS0FOIFJBREUKK0JPS0FOIFJBRE9NSVIKK0JPS0FOIFNMT0JPREFOCitCT0tBTiBUT01JU0xBVgorQk9LQU4gVkVMSktPCitCT0tBTknEhiBCUkFOSVNMQVYKK0JPS0FOScSGIFZMQURJTUlSCitCT0tJxIYgREFOSUxPCitCT0tJxIYgRFXFoEFOCitCT0tJxIYgTUlMQU4KK0JPS0nEhiBSQURPSklDQQorQk9LScSGIFZJRAorQk9LT1IgxJBPUsSQRSBESVBMIElORworQk9LT1IgxJBPUsSQRQorQk9LT1IgR0FWUkEKK0JPS09SIExBU0xPIERJUEwgSU5HCitCT0tPUiBMQVNMTworQk9LT1IgTUFSSUpBCitCT0tPUk9WIFRBTkFTSUpFIERJUEwgSU5HCitCT0tVTiBEVUJSQVZLQQorQk9LVU4gTk9WQUsKK0JPS1VOIFBFVEFSCitCT0tVTiBTUEFTSUpBCitCT0tVTiBTVEVWQQorQk9LVU4gVkxBRElNSVIKK0JPTEFOT1ZJxIYgUkFKS0EKK0JPTERJxb1BUiBKT8W9RUYKK0JPTERJxb1BUiBMQVNMTworQk9MRElOIFJVRE9MRgorQk9MRE9DS0kgSk/FvUVGCitCT0xET0NLSSBWTEFESU1JUgorQk9MRE9HIExBSk/FoAorQk9MRVJBQyBBTkEKK0JPTEVTTklLT1YgQlJBTklTTEFWCitCT0xFU05JS09WIERBUklOS0EKK0JPTEVTTklLT1YgTUlMT1JBRAorQk9MRVNOSUtPViBaT1JBTgorQk9MRiBCUkFOS08KK0JPTEYgTkVWRU5LQQorQk9MRklLIEpPU0lQCitCT0xJxIYgWkxBVEtPCitCT0xJTk9WU0tBIFNPRklKQQorQk9MSU5PVlNLSSBNSVJPU0xBVgorQk9MSkFOT1ZJxIYgxJBPUsSQRQorQk9MSkFOT1ZJxIYgQUxFS1NBTkRBUgorQk9MSkFOT1ZJxIYgTUlMSVZPSkUKK0JPTEpBTk9WScSGIE5JS09MQQorQk9MSkFOT1ZJxIYgUkFET1ZBTgorQk9MSkFOT1ZJxIYgWk9SSUNBCitCT0xKRVZJxIYgU1ZFVE9aQVIKK0JPTE1BTkFDIEJSQU5LTworQk9MTUFOQUMgRVZHRU5JSkUKK0JPTE8gxb1PTFQKK0JPTE9LIEFORFJBxaAKK0JPTE9LIEpPxb1FRgorQk9MT0sgS0FSTE8KK0JPTE9LIEtBUk9MSgorQk9MT0sgUEFMCitCT0xPUklOIFJBRElWT0oKK0JPTFRBIMW9RUxKS08KK0JPTFRBIMSQVVJBCitCT0xUQSBCUkFOS08KK0JPTFRBIERSQUdJQ0EKK0JPTUXFoFRBUiBSQURBCitCT05BIFNURVZBTgorQk9ORMW9ScSGIERFSkFOCitCT05EQVJFTktPIEFMRUtTQU5EQVIgRFIKK0JPTkRPS0nEhiBCT1JJVk9KRQorQk9ORE9LScSGIExKVUJJQ0EKK0JPTkVSVCBEVcWgQU4gRFIKK0JPTkVSVCBEVcWgQU4KK0JPTknEhiBEUkFHQU4KK0JPTknEhiBNQVJKQU4KK0JPTknEhiBNSUxJQ0EKK0JPTknEhiBWTEFESU1JUgorQk9OVVMgTEpVQklDQQorQk9SIEVORFJFCitCT1LEjEFOSU4gTEpVQklDQQorQk9SxIxBTklOIFNPRklKQQorQk9SxIxBTlNLSSBUSU5LQQorQk9SxIxJxIYgQlVERQorQk9SxIxJxIYgRFJBR0FOQQorQk9SxIxJxIYgSk9WQU4KK0JPUsWgSSBUSVZBREFSIERJUEwgT0VDCitCT1LFoE/FoCBBVElMQQorQk9SxaBPxaAgQkFSQkFSQQorQk9SxaBPxaAgScWgVFZBTgorQk9SxaBPxaAgScWgVFZBTgorQk9SxaBPxaAgSU1SRQorQk9SxaBUTkFSIEhFTlJJSworQk9SxaBUTkVSIE5BREEKK0JPUsSQSU4gTEFaQVIKK0JPUsSQT8WgS0kgxJBPUsSQRSBESVBMIElORworQk9SxJBPxaBLSSBCT8WgS08KK0JPUsSQT8WgS0kgTUlMSUNBCitCT1LEkE/FoEtJIFRBTUFSQQorQk9SxJBPxaBLSSBWT0pJTgorQk9SQcWgIElSRU5BCitCT1JBUyBCT1JJU0xBVgorQk9SQVMgTUFSSUpBCitCT1JBUyBNSUxJQ0EKK0JPUkJBxaAgS0FST0xKCitCT1JCQcWgIFZJT0xFVEEKK0JPUkJBxaAgWk9MVEFOCitCT1JCRUxKIEFMRUtTQU5EQVIKK0JPUkJFTEogSkFOT8WgCitCT1JCRUxKIEpPU0lQCitCT1JCRUxKIExKVUJJQ0EKK0JPUkJFTEogTUFSSUpBCitCT1JCRUxKIE5FVkVOS0EKK0JPUkRBxaAgxJBFWkUKK0JPUkRBxaAgQUtPxaAKK0JPUkRBxaAgQkVMQQorQk9SREHFoCBGRVJFTkMKK0JPUkRBxaAgRlJBTkpBCitCT1JEQcWgIEhJTERBCitCT1JFTk9WScSGIEFOVE9OSUpFCitCT1JFTk9WScSGIE1JTEUKK0JPUkVOT1ZJxIYgVkVSQQorQk9SSSBJTVJFIERSCitCT1JJIE1BUklKQQorQk9SScSMScSGIExBWkFSCitCT1JJxIxJxIYgTk9WQUsKK0JPUknEjEnEhiBSQURJVk9KRQorQk9SScSMScSGIFJBRFVMRQorQk9SScWgRVYgQk9SSVNMQVYKK0JPUknFoEVWIExKSUxKQU5BCitCT1JJxaBFViBNSUxFTktPCitCT1JJxaBFViBOSUtPTEEKK0JPUknFoEVWIFJVxb1JQ0EKK0JPUknFoEVWIFNBVkEKK0JPUknFoEVWIFRFT0RPUgorQk9SScWgRVYgVkFTQQorQk9SScWgScSGIE1BUklKQQorQk9SScWgScSGIFZMQURJTUlSCitCT1JJxIYgxIxFRE9NSVIKK0JPUknEhiBBTEVLU0FOREFSCitCT1JJxIYgRFXFoEFOCitCT1JJxIYgS0FNRU5LTworQk9SScSGIEtBVElDQQorQk9SScSGIE1JTEFOCitCT1JJxIYgTUlMS0EKK0JPUknEhiBOSUtPTEEKK0JPUknEhiBQRVRBUgorQk9SScSGIFNURVZBTgorQk9SScSGIFpPUkFOCitCT1JJxIYgWk9SQU4KK0JPUklTIEpPU0lQCitCT1JJVk9KRVZJxIYgVklUT01JUgorQk9SSkFOSU4gU0xBVktPCitCT1JKQU5PVknEhiBHT1JEQU5BCitCT1JKQU5PVknEhiBJTElKQQorQk9SSkFOT1ZJxIYgTklLT0xBCitCT1JLTyBTVEFOSVNMQVYKK0JPUktPVkHEjEtJIFpPUkFOCitCT1JLT1ZBQyBLQVRBUklOQQorQk9SS09WScSGIERSQUdPU0xBVkEKK0JPUktPVknEhiBNSUxBTgorQk9STEpBIFNURVZBTgorQk9ST8WgIMWgQU5ET1IKK0JPUk/FoCDFoEFORE9SCitCT1JPxaAgxJBFUsSQCitCT1JPxaAtxJBFVkkgxb1FTEpLTworQk9ST8WgIMSQT1LEkEUKK0JPUk/FoCBBTEVLU0FOREFSCitCT1JPxaAgQU5EUklKQQorQk9ST8WgIEFOVFVOCitCT1JPxaAgRVJORQorQk9ST8WgIEVWQQorQk9ST8WgIEnFoFRWQU4KK0JPUk/FoCBKT8W9RUYKK0JPUk/FoCBKT0xBTgorQk9ST8WgIEpVTElKQQorQk9ST8WgIExBRElTTEFWCitCT1JPxaAgTEFKT8WgCitCT1JPxaAgTUFSR0lUQQorQk9ST8WgIE1JSEFKTE8KK0JPUk/FoCBNSUhBSkxPCitCT1JPxaAgTUlLTE/FoAorQk9ST8WgIFZFUkEKK0JPUk/FoEnEhiBFTElaQUJFVEEKK0JPUk9DS0kgQUxFS1NBTkRBUgorQk9ST0NLSSBEQU5JQ0EKK0JPUk9DS0kgTEpVQklOS0EKK0JPUk9KQSBMSlVCQU4KK0JPUk9KQSBSVcW9SUNBCitCT1JPSkVWIEFSU0VOIERSIExFS0FSCitCT1JPSkVWIEVNSUxJSkFOIERSCitCT1JPSkVWIEpBR09EQQorQk9ST0pFViBMSlVCT01JUgorQk9ST0pFViBSQURNSUxBCitCT1JPSkVWScSGIEFOQQorQk9ST0pFVknEhiBCT8WgS08KK0JPUk9KRVZJxIYgQk/FoEtPCitCT1JPSkVWScSGIEJPxaBLTworQk9ST0pFVknEhiBCUkFOS08KK0JPUk9KRVZJxIYgRFJBR0FOCitCT1JPSkVWScSGIERSQUdPTEpVQgorQk9ST0pFVknEhiBEVcWgQU4KK0JPUk9KRVZJxIYgS1JTVEEKK0JPUk9KRVZJxIYgTEpJTEpBTkEKK0JPUk9KRVZJxIYgTUlMQU4KK0JPUk9KRVZJxIYgUEFWTEUKK0JPUk9KRVZJxIYgUEVUUkEKK0JPUk9KRVZJxIYgU0xBVktPIFBST0YKK0JPUk9NSVNBIERSQUdJQ0EKK0JPUk9NSVNBIEpFTEVOQQorQk9ST05KQUMgRFJBR0FOCitCT1JPTkpBQyBNSUxJQ0EKK0JPUk9OSkFDIE9MR0EKK0JPUk9OSkFDIFZFUkEKK0JPUk9UQSBBTEVLU0FOREFSCitCT1JPVEEgSk9WQU5LQQorQk9ST1RBIE1JTEFOCitCT1JPVEEgTUlMT1JBRAorQk9ST1RBIE1JUkEKK0JPUk9UQSBSQURPU0xBViBEUiBMRUtBUgorQk9ST1bEjEFOSU4gTEpVQk9NSVIKK0JPUk9WxIxBTklOIE1JTElTQVYKK0JPUk9WxIxBTklOIE5FREVMSktPCitCT1JPVsSMQU5JTiBSQURPTUlSCitCT1JPVsSMQU5JTiBTTE9CT0RBTgorQk9ST1ZBQyBBUlNPCitCT1JPVkFDIEJSQU5JU0xBVgorQk9ST1ZBQyBLQVRJQ0EKK0JPUk9WQUMgTUlMT1JBRAorQk9ST1ZJxIxBTklOIE1JTE9SQUQKK0JPUk9WScSGIEFUSUxBCitCT1JPVknEhiBKT1NJUAorQk9ST1ZJxIYgSk9WQU4KK0JPUk9WScSGIEtPU1RBCitCT1JPVknEhiBNRU5BCitCT1JPVknEhiBQRVRBUgorQk9ST1ZJxIYgUlVET0xGCitCT1JPVknEhiBWTEFERQorQk9ST1ZJxIZBTklOIE1JUk9TTEFWCitCT1JPVklDQSBCT0pLQQorQk9ST1ZJQ0EgSVZBTgorQk9ST1ZJQ0EgSVZBTgorQk9ST1ZJQ0EgSkVMRU5BCitCT1JPVklDQSBNSU9EUkFHCitCT1JPVk5JQ0EgQlJBTktPCitCT1JPVk5JQ0EgTUFSS08KK0JPUk9WTklDQSBNSUxBTgorQk9ST1ZOSUNBIE1JTEVWQQorQk9ST1pBTiBNSUxPUkFECitCT1JVxaAgScWgVFZBTgorQk9SVcWgIElSRU5BCitCT1JaQcWgS0kgQlJBVElTTEFWQQorQk9SWkHFoEtJIFJBRE9NSVIKK0JPUlpBxaBLSSBTVEVWQU4KK0JPU0FLIElSRU5BCitCT1NBS09WIERSQUdBTgorQk9TQU7EjEnEhiBCT8WgS08KK0JPU0FOxIxJxIYgQk9HREFOCitCT1NBTsSMScSGIEJPR0RBTgorQk9TQU7EjEnEhiBKRUxJQ0EKK0JPU0FOxIxJxIYgTUFOT0pMTworQk9TQU7EjEnEhiBNSUxFVkEKK0JPU0FOxIxJxIYgTUlPRFJBRworQk9TQU7EjEnEhiBSQURPVkFOCitCT1NBTsSMScSGIFJBSktPCitCT1NBTsSMScSGIFRSSVZBCitCT1NBTsSMScSGIFZBU08KK0JPU0FOxIxJxIYgVkxBRE8KK0JPU0FOxIxJxIYgVlVKTworQk9TQU5BQyBKT1ZBTgorQk9TQU5BQyBMSlVCSUNBCitCT1NBTkFDIE1BUklKQQorQk9TQU5BQyBOSUtPTEEKK0JPU0FOQUMgVkVSQQorQk9TScSGIEJPxb1BTkEKK0JPU0nEhiBCUkFOS08KK0JPU0nEhiBEVcWgQU4gRFIKK0JPU0nEhiBKT1ZBTgorQk9TScSGIE1JT0RSQUcKK0JPU0nEhiBSQURPVkFOCitCT1NJxIYgU0xBVktBCitCT1NJTEpLScSGIExBWkFSCitCT1NJTEpLScSGIExVS0EKK0JPU0lOIFNMT0JPREFOCitCT1NJT0sgRE9SVQorQk9TTkFJLUJBQkEgTFVDSUpBCitCT1NOQUkgSkFOT8WgCitCT1NOScSGIMSMRURPTUlSCitCT1NOScSGIMSQVVLEkElOS0EKK0JPU05JxIYgQUxFS1NBTkRBUgorQk9TTknEhiBCT8W9SURBUgorQk9TTknEhiBCT1NJTEpLQQorQk9TTknEhiBEQVZJRAorQk9TTknEhiBEQVZJRAorQk9TTknEhiBKT1ZBTgorQk9TTknEhiBNQVJBCitCT1NOScSGIE1JUktPCitCT1NOScSGIE1MQURFTgorQk9TTknEhiBOQURBCitCT1NOScSGIE5VUklKQQorQk9TTknEhiBSQURPU0EKK0JPU05JxIYgUkFKS08KK0JPU05JxIYgVkVSQQorQk9TTknEhiBWTEFEQQorQk9TTknEhiBWTEFEQQorQk9TTknEhiBaT1JBTgorQk9UQSBCUkFOSVNMQVYKK0JPVEnEjCBPTElWRVJBCitCT1RJxIYgQUxFS1NBTkRBUgorQk9UScSGIEJPR0RBTgorQk9UScSGIERBTklDQQorQk9UScSGIERBUktPCitCT1RJxIYgREFSS08KK0JPVEnEhiBHQVZSQQorQk9UScSGIE1JTEFOCitCT1RJxIYgTUlMQU4KK0JPVEnEhiBNSUxFCitCT1RJxIYgTUlMT1JBRCBBRFZPS0FUCitCT1RJxIYgTUlST1NMQVZBCitCT1RJxIYgT0xJVkVSQQorQk9UScSGIFBST0tBCitCT1RJxIYgUkFET1NMQVZBCitCT1RJxIYgVkVSSUNBCitCT1RJxIYgVkxBRElNSVIKK0JPVEnEhiBaT1JBTktBCitCT1RLQSBBTlRBTAorQk9US0EgREFWSUQKK0JPVEtBIEVSxb1FQkVUCitCT1RLQSBWRVJPTkEKK0JPVEtBIFpPTFRBTgorQk9UTElLIEdFWkEKK0JPVExJSyBNQVJJSkEKK0JPVE/FoEtJIERSQUdPVkFOCitCT1RPxaBLSSBTQVZBCitCT1RPUknEhiBSQURPSklDQQorQk9UWkEgScWgVFZBTgorQk9aRUpBQyBBTlRBTCBESVBMIFBSQVZOSUsKK0JPWkVKQUMgRFXFoEFOCitCT1pFSkFDIEdPUkRBTkEKK0JPWkVKQUMgTUlMRU5LTworQk9aRUpBQyBTTUlMSktBCitCT1pFSkFDIFNWRVRJU0xBVgorQk9aRUpBQyBWRVJBCitCT1pPS0lOIFNURVZJQ0EKK0JSxIxJxIYgSUdOSkFDCitCUsSMScSGIE1JUk9TTEFWCitCUsSMScSGIE5FxJBPCitCUsSMScSGIFJBRE9WQU4KK0JSxIxJTiDEkE9SxJBFCitCUsSMSU4gTUlMSU5LQQorQlLEjElOIE5JS09MQQorQlLEjElOIFJBVE9NSVIKK0JSxIxJTiBTTEFWSUNBCitCUsSMSU4gU1ZFVE9aQVIKK0JSxIxJTk9WScSGIFBBVkxFCitCUsSMS0FMT1ZJxIYgTEpVQk9NSVIKK0JSQcSMRVZJxIYgSVZBTgorQlJBxIxFVknEhiBNSVJKQU5BCitCUkHFoEFOQUMgQk9SSVNMQVYKK0JSQcWgQU5BQyBHQVZSSUxPIERJUEwgSU5HCitCUkHFoEFOQUMgSUxJSkEKK0JSQcWgQU5BQyBNSVJKQU5BCitCUkHFoEFOQUMgTUlST1NMQVYKK0JSQcWgS08gSk/FvUVGCitCUkHFoE5KTyBHVVNUQVYKK0JSQcWgTkpPIEnFoFRWQU4KK0JSQcWgTkpPIEnFoFRWQU4KK0JSQUNBTk9WScSGIERBTUpBTgorQlJBQ0FOT1ZJxIYgTUlMVVRJTgorQlJBQ0nEhiBNSUxBTgorQlJBREHEjCBFTElaQUJFVEEKK0JSQURBxIwgSU1SRQorQlJBREHFoCDFvUlWQSBESVBMIElORworQlJBREFSScSGIE5FREVMSktPCitCUkFEScSGIMSQT1LEkEUKK0JSQURJxIYgxJBPUsSQRQorQlJBREnEhiBCT8W9SURBUgorQlJBREnEhiBCT0dPTEpVQgorQlJBREnEhiBCT0dPTEpVQgorQlJBREnEhiBCUkFOS08KK0JSQURJxIYgRVZHRU5JSkEKK0JSQURJxIYgR0FWUklMTworQlJBREnEhiBKVVNUSU5BCitCUkFEScSGIE1JTEFOIERJUEwgSU5HCitCUkFEScSGIE1JTEFOCitCUkFEScSGIE1JTElDQQorQlJBREnEhiBNSUxJVk9KRQorQlJBREnEhiBNSUxKS08KK0JSQURJxIYgU0xPQk9EQU4KK0JSQURJxIYgU1JFVEEKK0JSQURJxIYtVEVOSkkgWk9SSUNBCitCUkFEScSGIFRFT0RPUkEKK0JSQURJxIYgVE9NSVNMQVZBCitCUkFEScSGIFZJRE9KRQorQlJBREnEhiBaT1JJQ0EKK0JSQURPxaAgU0xPQk9EQU4KK0JSQUhUTCBNQVJJQ0EKK0JSQUpEScSGIElWQU4KK0JSQUpFUiBGUkFOSkEKK0JSQUpFVknEhiBQUkVEUkFHCitCUkFKScSGIE1JTElDQQorQlJBSknEhiBSQURPVkFOCitCUkFKScSGIFNMT0JPREFOCitCUkFKS09WIE1BUktPCitCUkFKS09WScSGIElWTworQlJBSktPVknEhiBNSVJKQU5BCitCUkFKT1ZJxIYgTUlMSVZPSkUKK0JSQUpPVknEhiBNSUxPxaAKK0JSQUpPVknEhiBTTEFWS0EKK0JSQUpPVknEhiBTUEFTT0pFCitCUkFKT1ZJxIYgU1RBTktBCitCUkFKT1ZJxIYgVkVMSktPCitCUkFLT8SMRVZJxIYgSk9WQU4KK0JSQUtVUyBEVcWgQU5LQQorQlJBS1VTIExKSUxKQU5BCitCUkFLVVMgTUFSSUpBCitCUkFLVVMgTUlMQU4KK0JSQUtVUyBNT03EjElMTworQlJBTE9WScSGIFJBVEtPCitCUkFOxIxJxIYgQk9SSVMgRElQTCBJTkcKK0JSQU7EjEnEhiBKQVNOQQorQlJBTsSMScSGIE1JTEVOQQorQlJBTsSMScSGIE1JTFXFoEtPCitCUkFOQSBQRVRBUgorQlJBTklMT1ZJxIYgU1RKRVBBTgorQlJBTktPViDEkE9SxJBFCitCUkFOS09WIMSQT1LEkEUKK0JSQU5LT1YgQUxFS1NBTkRSQQorQlJBTktPVi1CT0tBIFJPWkFMSUpBCitCUkFOS09WIEJPUklWT0oKK0JSQU5LT1YgQlJBTklTTEFWCitCUkFOS09WIERPQlJJQ0EKK0JSQU5LT1YgRFJBR0FOQQorQlJBTktPViBEUkFHQU4KK0JSQU5LT1YgRFXFoEFOCitCUkFOS09WIEVNSUwKK0JSQU5LT1YgSUxJSkEKK0JSQU5LT1YgSkVMSUNBCitCUkFOS09WIEpPVkFOS0EKK0JSQU5LT1YgS09TVEEKK0JSQU5LT1YgS09TVEEKK0JSQU5LT1YgTEpVQklDQQorQlJBTktPViBMSlVCSUNBCitCUkFOS09WIExKVUJJTktPCitCUkFOS09WIE1JTElDQQorQlJBTktPViBNSUxPUkFECitCUkFOS09WIE1JUktPCitCUkFOS09WIE1JVEEKK0JSQU5LT1YgTUlUQQorQlJBTktPViBNTEFERU4KK0JSQU5LT1YgTU9NSVIKK0JSQU5LT1YgTkFEQQorQlJBTktPViBPTElWRVJBCitCUkFOS09WIFJBRElWT0oKK0JSQU5LT1YgUkFET1ZBTgorQlJBTktPViBSQURPVkFOCitCUkFOS09WIFNWRVRJU0xBVgorQlJBTktPViBWRUxKS08KK0JSQU5LT1YgVkxBRElNSVIKK0JSQU5LT1YgWkxBVElOS0EKK0JSQU5LT1ZBTiDEkE9SxJBFCitCUkFOS09WQU4gVkxBU1RJTUlSCitCUkFOS09WScSGIEJPR09MSlVCCitCUkFOS09WScSGIEJPSkEKK0JSQU5LT1ZJxIYgQlJBTktPCitCUkFOS09WScSGIEJSQU5LTworQlJBTktPVknEhiBEUkFHQU4KK0JSQU5LT1ZJxIYgRFXFoEFOS0EKK0JSQU5LT1ZJxIYgRFXFoEFOCitCUkFOS09WScSGIERVxaBBTgorQlJBTktPVknEhiBJTElKQQorQlJBTktPVknEhi1LT1ZBxIxFVknEhiBSQURNSUxBCitCUkFOS09WScSGIExKSUxKQU5BCitCUkFOS09WScSGIExKVUJJQ0EKK0JSQU5LT1ZJxIYgTUlMQU4KK0JSQU5LT1ZJxIYgTUlMRU5BCitCUkFOS09WScSGIE1JTE9SQUQKK0JSQU5LT1ZJxIYgTUlSS08KK0JSQU5LT1ZJxIYgTUxBREVOCitCUkFOS09WScSGIFNBVktBCitCUkFOS09WScSGIFNMQVZLTworQlJBTktPVknEhiBTTEFWT0xKVUIKK0JSQU5LT1ZJxIYgU0xBVk9MSlVCCitCUkFOS09WScSGIFNWRVRMQU5BCitCUkFOS09WScSGIFRVR09NSVIKK0JSQU5LT1ZJxIYgWklOQQorQlJBTktPVknEhiBaT1JBTgorQlJBTk9WQcSMS0kgxJBPUsSQRQorQlJBTk9WQcSMS0kgQU5HRUxJTkEKK0JSQU5PVkHEjEtJIEdBVlJJTE8KK0JSQU5PVkHEjEtJIElWQU5BCitCUkFOT1ZBxIxLSSBMSlVCSUNBCitCUkFOT1ZBxIxLSSBPTEdBCitCUkFOT1ZBxIxLSSBTVkVUSVNMQVYKK0JSQU5PVknEhiBCSVNFUktBCitCUkFOT1ZJxIYgUlXFvUEKK0JSQU9WScSGIFNBTkRSQQorQlJBT1ZJxIYgVkxBRElNSVIKK0JSQVQgRFXFoEFOCitCUkFUScSGIEHFoElSCitCUkFUScSGIERSQUdPCitCUkFUScSGIERVxaBBTgorQlJBVEnEhiBHT1JBTgorQlJBVEnEhiBMSlVCSUNBCitCUkFUScSGIExKVUJPTUlSCitCUkFUScSGIE1VSE8KK0JSQVRJxIYgTkVERUxKS08KK0JSQVRJxIYgUkFET1ZBTgorQlJBVEnEhiBWT0pJU0xBVgorQlJBVE9OT8W9ScSGIE1BUkdJVEEKK0JSQk9SScSGIExBWkFSCitCUkJPUknEhiBTUkJJU0xBVgorQlJDQU5PViDEkFVSxJBJTktBCitCUkNBTk9WIE9MR0EKK0JSQ0FOT1YgU0lNQQorQlJDQU5PViBUSUhPTUlSCitCUkNBTlNLSSBOSUtPTEEKK0JSREFSIERBTkUKK0JSREFSIERSQUdPCitCUkRBUiBJTElKQQorQlJEQVIgSVZBTktBCitCUkRBUiBNSUxBTgorQlJEQVIgUEVSTworQlJEQVIgU0xBVknFoEEKK0JSREFSRVZJxIYgRFXFoEtPCitCUkRBUknEhiBEUkFHT01JUgorQlJEQVJJxIYgS09TVEEKK0JSREFSScSGIE1JTEFOCitCUkRBUknEhiBQRVRBUgorQlJFxaDEhkFOU0tJIE1BUklKQQorQlJFxaBLT1ZJxIYgU1RBTklTTEFWQQorQlJFxaBLT1ZTS0kgRFJBR0lDQQorQlJFxb1BTiBJTE9OQQorQlJFxb1BTiBMRU9OT1JBCitCUkXFvUFOIE1BUklKQQorQlJFQkVSIExKVUJJQ0EKK0JSRUJFUklOQSBNSUxBTgorQlJFQkVSSU5BIFNURVZBTgorQlJFR1VOIMSQT1LEkEUKK0JSRUdVTiBBTEVLU0FORFJBCitCUkVHVU4gTklLT0xBCitCUkVHVU4gUkFET1NMQVYgRElQTCBJTkcKK0JSRUtBTE8gSk9TSVAKK0JSRUtJxIYgSUxJSkEKK0JSRUtJxIYgTklLT0xBCitCUkVLScSGIFNURVZBTgorQlJFTkVDS0kgWkRSQVZLTworQlJFTkVTRUwgRFJBR0FOCitCUkVORVNFTCBHQUJSSUVMCitCUkVORVNFTCBNSVJKQU5BCitCUkVORVNFTCBOSUtPTEEKK0JSRVNUT1ZBxIxLSSBJVkFOCitCUkVTVE9WQcSMS0kgSkFTTUlOQQorQlJFU1RPVkHEjEtJIE1JTEtBCitCUkVTVE9WQcSMS0kgU1RFVkEKK0JSRVQgVkVSQQorQlJFVMWgTkFKREVSIEFOQQorQlJFWk5JSyBFUk5FCitCUkVaTkpBSyBKQU5PxaAKK0JSRVpOSkFLIE1BUklKQQorQlJFWk9WxIxFSyBKT1ZBTktBCitCUkVaT1ZBQyBEUkFHSUNBCitCUkVaT1ZBQyBEVcWgQU4KK0JSRVpPVkFDIElWQU4KK0JSRVpPVkFDIElWQU4KK0JSRVpPVkFDIEpVUkFKCitCUkVaT1ZBQyBLQVRBUklOQQorQlJFWk9WQUMgTEpVQklOS0EKK0JSRVpPVkFDIE1JTEVOQQorQlJFWk9WQUMgTUlMT8WgCitCUkVaT1ZBQyBQRVRBUgorQlJFWk9WQUMgU0FWQQorQlJFWk9WScSGIE1JUkpBTkEKK0JSScWgRVZBQyBKVVJFCitCUklLRVIgU01JTEpBTkEKK0JSSU5KQUsgRFJBR08KK0JSSVRWRUMgTUFSS08KK0JSSVpBIMW9RUxNSVJBCitCUklaQSBKQU4KK0JSSVpBIExVS1JFQ0lKQQorQlJLIFNJTU8KK0JSS0FOScSGIE1BUktPCitCUktBTknEhiBNSUxFTktPCitCUktBTknEhiBUQVRKQU5BCitCUktBTkxJxIYgxb1FTEpLTworQlJLQU5MScSGIERVxaBBTgorQlJLScSGIMSQT1LEkEUKK0JSS0nEhiDEkE9SxJBFCitCUktJxIYgxJBVUk8KK0JSS0nEhiBBQkFaCitCUktJxIYgQUxFS1NBTkRBUgorQlJLScSGIEFMRUtTQU5EQVIKK0JSS0nEhiBBTktBCitCUktJxIYgQU5LSUNBCitCUktJxIYtQkVMScSGIERBTklDQQorQlJLScSGIEJPR0RBTgorQlJLScSGIEJSQU5LTworQlJLScSGIERSQUdBTgorQlJLScSGIERSQUdBCitCUktJxIYgRFJBR08KK0JSS0nEhiBEVcWgQU5LQQorQlJLScSGIEdPSktPCitCUktJxIYgSUxJSkEKK0JSS0nEhiBJVkFOCitCUktJxIYgSVZJQ0EKK0JSS0nEhiBKRUxJU0FWRVRBCitCUktJxIYgSk9WQU4KK0JSS0nEhiBKT1ZBTgorQlJLScSGIEpPVkFOCitCUktJxIYgSk9WQU4KK0JSS0nEhiBMSlVCT01JUgorQlJLScSGIExVS0EKK0JSS0nEhiBNQUdEQUxFTkEKK0JSS0nEhiBNQU5EQQorQlJLScSGIE1BUklKQQorQlJLScSGIE1BUklKQQorQlJLScSGIE1JTEFESU4KK0JSS0nEhiBNSUxBTgorQlJLScSGIE1JTEFOCitCUktJxIYgTUlMQU4KK0JSS0nEhiBNSVJKQU5BCitCUktJxIYgTUlUQVIKK0JSS0nEhiBOQURBCitCUktJxIYgTkVCT0rFoEEKK0JSS0nEhiBOSUtPTEEKK0JSS0nEhiBOSUtPTEEKK0JSS0nEhiBQRVRBUgorQlJLScSGIFBFVEFSCitCUktJxIYgUEVUUkEKK0JSS0nEhiBSQURPSktBCitCUktJxIYgUkFET1NMQVYKK0JSS0nEhiBSQURPU0xBVgorQlJLScSGIFJBRE9TTEFWCitCUktJxIYgUkFUS08KK0JSS0nEhiBSVcW9QQorQlJLScSGIFNJTFZJSkEKK0JSS0nEhiBTTEFWS08KK0JSS0nEhiBTTkXFvUFOQQorQlJLScSGIFNORcW9QU5BCitCUktJxIYgVE9NTyBESVBMIElORworQlJLScSGIFVST8WgCitCUktJxIYgVkVaSUxJSkEKK0JSS0nEhiBWTEFESU1JUgorQlJLScSGIFZMQURJTUlSCitCUktJxIYgVkxBRElNSVIKK0JSS0nEhiBWT0pJU0xBVgorQlJLScSGIFpEUkFWS08KK0JSS0nEhiBaT1JBTgorQlJLTEpBxIwgQlJBTklNSVIKK0JSS0xKQcSMIEJSQU5JU0xBVgorQlJLTEpBxIwgRFJBR09MSlVCCitCUktMSkHEjCBJTElKQQorQlJLTEpBxIwgS0FUQVJJTkEKK0JSS0xKQcSMIE1JTEFOS08KK0JSS0xKQcSMIE1JTEFOCitCUktMSkHEjCBOSUtPTEEKK0JSS0xKQcSMIE5JS09MQQorQlJLTEpBxIwgUlXFvUlDQQorQlJLTEpBxIwgU0xPQk9EQU4KK0JSS0xKQcSMIFNURVZBTgorQlJLTEpBxIxBIEJSQVRPTEpVQgorQlJLTEpBxIxJxIYgQk/FvUVOQQorQlJLTEpBxIxJxIYgVkxBRElNSVIKK0JSS08gTklLT0xBCitCUktPVknEhiDEkE9SxJBFCitCUktPVknEhiBBTlRVTgorQlJLT1ZJxIYgQk9TSUxKS0EKK0JSS09WScSGIERSQUdPCitCUktPVknEhiBEVcWgQU4KK0JSS09WScSGIEVNSUxJSkEKK0JSS09WScSGIEpPVkFOS0EKK0JSS09WScSGIExKVUJPTUlSCitCUktPVknEhiBNQUdEQQorQlJLT1ZJxIYgTUlMQU4KK0JSS09WScSGIE1JTElDQQorQlJLT1ZJxIYgTkFEQQorQlJLT1ZJxIYgTklLT0xBCitCUktPVknEhiBSQURPVkFOCitCUktPVknEhiBWSU9EU0FWQQorQlJLT1ZJxIYgVkpFS09TTEFWCitCUktPVknEhiBaTEFUS08KK0JSTEnEhiBEUkFHVVRJTgorQlJMScSGIElWQU4KK0JSTUJPVEEgSk9WQU4KK0JSTUJPVEEgSk9WQU4KK0JSTkpBS09WScSGIE1BUklKQQorQlJOT1ZJxIYgU1ZFVE9aQVIKK0JST8WgVEVBTiBWSU9SRUwKK0JST8SGRVRBIEJPR0RBTgorQlJPxIZFVEEgTUnEhkEKK0JST8SGRVRBIE1JTE9SQUQKK0JST8SGRVRBIE5FREVMSktPCitCUk/EhkVUQSBPQlJBRAorQlJPRFJBTlNLSSBTVkVUTEFOQQorQlJPSsSMSU4gRFXFoEFOCitCUk9KxIxJTiBTQVZBCitCUk9OWkEgRFJBR0FOCitCUk9OWkEgUkFKS08KK0JST1pPVknEhiBJVkFOCitCUlNBTk9WScSGIEtSU1RBCitCUlNUSU5BIFZBU0lMSUpFCitCUlRBTiBKT1NJUAorQlJUS0EgSkFOCitCUlXFoE5KQUkgSk9TSVAKK0JSVcWgTkpBSyBQRVJPCitCUlVKScSGIERVxaBBTgorQlJVSknEhiBKT1ZBTgorQlJVSknEhiBNQU5PSkxPCitCUlVKScSGIE1JTEFOCitCUlVKScSGIE1JTElDQQorQlJVSknEhiBTTEFWS08KK0JSVUpJxIYgVkxBRElNSVIKK0JSVUsgQU5EUklKQSBEUgorQlJVS05FUiBCT0dEQU4KK0JSVUtORVIgQk9HREFOCitCUlVOxIxFVknEhiBISVZaTworQlJVTsSMRVZJxIYgUkVExb1FUAorQlJVTkRaQSBDRUNJTElKQQorQlJVTkRaQSBWTEFESU1JUiBNUgorQlJVTkVSIEpPU0lQCitCUlVORVQgRUxFTUVSCitCUlVORVQgRlJBTkpBCitCUlVORVQgScWgVFZBTgorQlJVTkVUIFpPTFRBTgorQlJVTkVUIFpPTFRBTgorQlJVU0lOIERVxaBLTworQlJVU0lOIEtBSklDQQorQlJVU0lOIE1JTE9KS08KK0JSVVNJTiBNSUxPVkFOCitCUlVTSU4gUkFESUNBCitCUlVTSU4gU0xBVktPCitCUlVTTkpBSSBLQVJMTworQlJVU05KQUkgTEFTTE8KK0JSVVNOSkFJIE1BUkdBUklUQQorQlJaQUsgxb1JVktBCitCUlpBSyDFvUlWT1JBRAorQlJaQUsgxJBPUsSQRQorQlJaQUsgxJBPUsSQRQorQlJaQUsgxJBPUsSQRQorQlJaQUsgxJBPUsSQRQorQlJaQUsgxJBVS0EKK0JSWkFLIEFMRUtTQU5EQVIKK0JSWkFLIEFMRUtTQU5EQVIKK0JSWkFLIEFOxJBFTEtBCitCUlpBSyBCT0dEQU5LQQorQlJaQUsgQk9SSVNMQVYKK0JSWkFLIEJPU0EKK0JSWkFLIEJSQU5JU0xBVgorQlJaQUsgRFJBR0FOCitCUlpBSyBEUkFHQU4KK0JSWkFLIERSQUdJQ0EKK0JSWkFLIERSQUdPTUlSCitCUlpBSyBEVcWgS08KK0JSWkFLIEdPSktPCitCUlpBSyBJTElKQQorQlJaQUsgSkFEUkFOS0EKK0JSWkFLIEpFTEVOQQorQlJaQUsgSk9WQU4KK0JSWkFLIEpPVkFOCitCUlpBSyBKT1ZBTgorQlJaQUsgSk9WQU4KK0JSWkFLIEpPVkFOCitCUlpBSyBKT1ZBTgorQlJaQUsgS09TVEEKK0JSWkFLIExBWkFSCitCUlpBSyBMRVBPU0FWQQorQlJaQUsgTUFSSUpBCitCUlpBSyBNSUxBCitCUlpBSyBNSUxFTktPCitCUlpBSyBNSUxFTktPCitCUlpBSyBNSUxFTktPCitCUlpBSyBNSUxPVkFOCitCUlpBSyBNSUxPVkFOCitCUlpBSyBNSVJBCitCUlpBSyBNSVJBCitCUlpBSyBNSVJPU0xBVgorQlJaQUsgTUlUQVIKK0JSWkFLIFBFVEFSCitCUlpBSyBQUkVEUkFHCitCUlpBSyBSQURPU0xBVgorQlJaQUsgU0FWQQorQlJaQUsgU0FWRVRBCitCUlpBSyBTSU1FT04KK0JSWkFLIFNMQVZLTworQlJaQUsgU0xPQk9EQU5LQQorQlJaQUsgU1RFVkFOCitCUlpBSyBTVEVWQU4KK0JSWkFLIFNURVZBTgorQlJaQUsgU1RPSkFOS0EKK0JSWkFLIFNWRVRMQU5BCitCUlpBSyBTVkVUT1pBUgorQlJaQUsgVE/FoEEKK0JSWkFLIFRPxaBBCitCUlpBSyBUT8WgSUNBCitCUlpBSyBUT0RPUgorQlJaQUsgVkFTQQorQlJaQUsgVkFTQQorQlJaQUsgVkFTQQorQlJaQUsgVkVMSktPCitCUlpBSyBWSURBCitCUlpBSyBWSURPU0FWQQorQlJaQUsgVklET1NMQVYKK0JSWkFLIFZMQURJU0xBVgorQlJaQUsgWk9SQU4KK0JSWkFLT1ZJxIYgSUdPUgorQlJaQUtPVknEhiBORU5BRCBEUgorQlJaQUtPVknEhiBWSVRPTUlSIERSIExFS0FSCitCUlpBTk9WScSGIERSQUdBTgorQlJaScSGIMW9SVZBTgorQlJaScSGIMSQT1LEkEUKK0JSWknEhiBCUkFOS08KK0JSWknEhiBGUkFOSkEKK0JSWknEhiBJVkFOCitCUlpJxIYgSk9WQU4KK0JSWknEhiBMQVpBUgorQlJaScSGIExBWkFSCitCUlpJxIYgTUlSSkFOQQorQlJaScSGIFBFVEFSCitCUlpJxIYgUEVUQVIKK0JSWknEhiBSQURPU0xBVgorQlJaScSGIFNURVZBTgorQlJaScSGIFNWRVRPWkFSCitCUlpJxIYgVE9ET1IKK0JSWknEhiBaTEFUQQorQlJaSUNBIEJSQU5LQQorQlJaSUNBIEZFUkRPCitCUlpJQ0EgSVZBTktBCitCUlpJQ0EgTUFSSU5LTworQlJaT1ZBTiBCRUhJSkEKK0JVIEnFoFRWQU4KK0JVxIxBIERVxaBBTgorQlXEjEEgRFXFoElDQQorQlXEjEEgSVJJTkEKK0JVxIxBIFZBU0EKK0JVxIxBTlNLSSBKT8W9RUYKK0JVxIxJxIYgQk9SSVNMQVYKK0JVxIxLTyBBSE5FVEEKK0JVxIxLTyBKQU5LTworQlXEjEtPIE1BUklKQQorQlXEjE8gREFOSUpFTEEKK0JVxIxVLU1BUlRPTk/FoEkgR0laRUxBCitCVcWgIEFOQQorQlXFoCBNQUdEQUxFTkEKK0JVxaAgU0lMVkVTVEVSCitCVcWgScSGIFNSRcSGS08KK0JVxaBMSkVUQSBCUkFOS0EKK0JVxaBUUkVWScSGIE1JUkpBTkEKK0JVxaBUUkVWScSGIFNMT0JPREFOS0EKK0JVxaBUUk9WScSGIE9MR0EKK0JVxIZBTiBEVcWgQU4KK0JVxIZBTiBEVcWgQU4KK0JVxIZBTiBNSUxFVkEKK0JVxIZBTiBTTEFWS0EKK0JVxIZBTlNLSSBNQcSGQcWgCitCVcSGSU4gUkFERQorQlXEhk8gWkFHT1JLQQorQlXFvUFOxIxJxIYgTUlSQQorQlXFvUFOSU4gTUlMRQorQlXEkEkgxJBVTEEKK0JVxJBJTEFOIFBFVEFSCitCVUHEjEEgRFJBR0FOCitCVUHEjEEgT0xHSUNBCitCVUHEjEEgU1RFVkFOCitCVUJBTE8gRFJBR0FOCitCVUJBTE8gRFJBR0lOSkEKK0JVQkFMTyBHT1JBTgorQlVCQUxPIElMSUpBCitCVUJBTE8gSk9WQU4KK0JVQkFMTyBKT1ZPCitCVUJBTE8gTUlST1NMQVYKK0JVQkFMTyBQRVRBUgorQlVCQUxPIFJBVE9NSVIKK0JVQkFMTyBTSU1PCitCVUJBTE8gVEVPRE9SQQorQlVCQU5KIEJSQU5JU0xBVgorQlVCQU5KIERBTkUKK0JVQkFOSiBJVkFOS0EKK0JVQkFOSiBNSUxJQ0EKK0JVQkFOSiBNSUxPxaAKK0JVQkFOSiBSQURFCitCVUJBTkogUkFET0pLQQorQlVCQU5KIFNSQk9MSlVCCitCVUJBTkogVklET1NBVkEKK0JVQkFOSkEgQUxFS1NBTkRBUgorQlVCQU5KQSBCQVRSScSGCitCVUJBTkpBIERBUklOS0EKK0JVQkFOSkEgS0FUSUNBCitCVUJBTkpBIE1BxaBBTgorQlVCQU5KQSBSQURJU0FWCitCVUJBTkpBIFRBRElKQQorQlVCQU5KQSBWT0pJU0xBVgorQlVCQU5KQSBaT1JLQQorQlVCScSGIE1JTEFOCitCVUJOScSGIFZFUk9OQQorQlVCTkpFVknEhiDEkE9SxJBFCitCVUJOSkVWScSGIEJPUkUKK0JVQk5KRVZJxIYgREFSQQorQlVCTkpFVknEhiBEUkFHTworQlVCTkpFVknEhiBHT0pLTworQlVCTkpFVknEhiBKQU5KQQorQlVCTkpFVknEhiBMSlVCT01JUgorQlVCTkpFVknEhiBNQVJJQ0EKK0JVQk5KRVZJxIYgTUFSSU5LTworQlVCTkpFVknEhiBNSVJLTworQlVCTkpFVknEhiBORU5BRAorQlVCTkpFVknEhiBPU1RPSkEKK0JVQk5KRVZJxIYgUkFEQQorQlVCTkpFVknEhiBSQURPTUlSCitCVUJOSkVWScSGIFJFTEpBCitCVUJOSkVWScSGIFNSQk9MSlVCCitCVUJOSkVWScSGIFNSRVRFTgorQlVCTkpFVknEhiBTVE9KQU5LQQorQlVCTkpFVknEhiBWQVNLUlNJSkUKK0JVQk5KRVZJxIYgVkxBRElNSVIKK0JVQk5KScSGIMW9RUxKS08KK0JVQk9OSkEgQk9SSVMKK0JVQk9OSkEgRE9TVEFOQQorQlVCT05KQSBEVcWgQU4KK0JVQk9OSkEgUkFET1ZBTgorQlVCUkXFoEtPIEdPUkRBTkEKK0JVQlVMSiBNSUxJxIYKK0JVQlVMSiBOQURBCitCVUJVTEogU1RPSkFOS0EKK0JVQlVMSiBTVE9KQQorQlVDQUxPIE1JTEFESU4KK0JVQ0FMTyBNSVJBCitCVUNBTE8gTUlUQVIKK0JVQ0FMT1ZJxIYgRFXFoEFOCitCVUNJxIYgQU5URQorQlVDScSGIE1JTElWT0oKK0JVQ1VMSkVWScSGIEFMRUtTQU5EQVIKK0JVQ1VMSkVWScSGIFpMQVRPTUlSIERSCitCVUTFvUFLT1NLSSBUT01BCitCVUTFvUFST1YgU0FWQQorQlVEQSBBREEKK0JVREEgRVZBCitCVURBIEhBSk5BTEtBCitCVURBIEpPxb1FRgorQlVEQSBURVJFWkEKK0JVREHEhiBaT1JBTgorQlVEQUkgR09SSUNBCitCVURBSSBJTE9OS0EKK0JVREFJIEpPxb1FRgorQlVEQUkgSk9MQU4KK0JVREFJIEpPVkFOCitCVURBSSBMQUpPxaAKK0JVREFJIExBSk/FoAorQlVEQUkgWk9SQQorQlVEQUsgRFJBR0FOCitCVURBSyBJVklDQQorQlVEQUsgTUlMQU4KK0JVREFLIFZFUkEKK0JVREFLT1YgQUxFS1NBTkRSQQorQlVEQUtPViBCUkFOSVNMQVYKK0JVREFLT1YgRFJBR0FOCitCVURBS09WIEdPUklDQQorQlVEQUtPViBJVkFOCitCVURBS09WIExKSUxKQU5BCitCVURBS09WIE1JTEFOCitCVURBS09WIE1JTFVUSU4KK0JVREFLT1YgT0xJVkVSQQorQlVEQUtPViBTTE9CT0RBTgorQlVEQU5PViBBTlRBTAorQlVEQU5PViBEQU5JQ0EKK0JVREFOT1ZJxIYgU0FWRVRBCitCVURBTk9WScSGIFNUQU5BCitCVURFUktBIE1BUklKQQorQlVEScWgQSBCT8W9QQorQlVEScWgQSBCT1JBCitCVURJxaBBIE1JUktPCitCVURJxaBBIFRJSE9NSVIKK0JVREnFoEnEhiBEUkFHQU4KK0JVREnFoElOIMSQT1LEkEUKK0JVREnFoElOIElWQU4KK0JVREnFoElOIE1JTE/FoAorQlVEScWgSU4gTUlMT8WgCitCVURJxaBJTiBOSUtPTEEgRFIKK0JVREnFoElOLVNBS0HEjCBTT05KQSBEUgorQlVEScWgSU4gVkxBRElNSVIKK0JVREnEhiDFvUVMSktPCitCVURJxIYgREFOSUxPCitCVURJxIYgRFJBR09TTEFWCitCVURJxIYgRFXFoEFOS0EKK0JVREnEhiBNSUxBTgorQlVEScSGIFpPUktBCitCVURJTcSMScSGIEpPVkFOCitCVURJTcSMScSGIExKSUxKQU5BCitCVURJTcSMScSGIE1JTElWT0oKK0JVRElNQSBCQUpSVcWgCitCVURJTUFDIEJVRElNSVIKK0JVRElNQUMgWk9SQU4KK0JVRElNSVIgTUFSSUpBCitCVURJTUlSIE1JTEFOCitCVURJTUlSIE1JTE9KS08KK0JVRElNSVJPVknEhiBEUkFHSUNBCitCVURJTUlST1ZJxIYgTkVHT1ZBTgorQlVESU1JUk9WScSGIFVST8WgCitCVURJTUtJxIYtS1JTVEnEhiBEUkFHQU5BCitCVURJTUxJSkEgQUxFS1NBTkRBUgorQlVESU1MSUpBIERSQUdJQ0EKK0JVRElNTElKQSBJTElKQQorQlVESU1MSUpBIE1JTEFOCitCVURJTUxJSkEgTUlMQU4KK0JVRElNTElKQSBSQURFCitCVURJTVNLSSDEkFVSQQorQlVESU1TS0kgU0xBVlVKCitCVURJTsSMRVZJxIYgR0FCT1IKK0JVRElOxIxFVknEhiBKVUxJSkFOQQorQlVESU7EjEVWScSGIE1JUktPCitCVURJTsSMRVZJxIYgTklLT0xBCitCVURJTlNLSSBLSVJJTAorQlVESU5TS0kgTEpVQkEKK0JVRElOU0tJIE1BUklKQQorQlVESU5TS0kgVkxBRElNSVIKK0JVRElTQVZMSkVWScSGIEJSQU5LTworQlVESVNBVkxKRVZJxIYgRFXFoEFOCitCVURJU0FWTEpFVknEhiBLQVJPTElOQQorQlVESVNBVkxKRVZJxIYgTUFSSUpBCitCVURJU0FWTEpFVknEhiBOQVRBTElKQQorQlVESVNBVkxKRVZJxIYgTkVWRU5LQQorQlVESVNBVkxKRVZJxIYgUlXFvUlDQQorQlVESVNBVkxKRVZJxIYgVkVSSUNBCitCVURKSUxBTiBQRVRBUgorQlVET8WgQU4gxb1JVktPCitCVURPxaBBTiDEkE9SxJBFCitCVURPxaBBTiBBTEVLU0FOREFSCitCVURPxaBBTi1LT1ZBxIwgSkVMRU5BCitCVURPxaBBTiBNSUxPxaAKK0JVRE/FoEFOIE5BREEKK0JVRE/FoEFOIFNBVkEKK0JVRE/FoEFOIFNBVkEKK0JVRE/FoEFOIFNURVZBTgorQlVET8WgQU4gVE/FoElDQQorQlVET8WgQU4gVkFTQQorQlVET8WgQU4gVkFTQQorQlVET8WgQU4gVlVLT1NBVkEKK0JVRE9WQUzEjEVWIEFSU0EKK0JVRE9WQUzEjEVWIE9MR0EKK0JVRE9WQUzEjEVWIFBFVEFSCitCVURPVkFMxIxFViBQRVRBUgorQlVEVVJJTiBSQURPSkUKK0JVR0FExb1JSkEgTEFKT8WgCitCVUdBRMW9SUpBIFNURVZBTgorQlVHQVLEjEnEhiBQRVRBUgorQlVHQVLEjEnEhiBSQURNSUxPCitCVUdBUsSMScSGIFNNSUxKS0EKK0JVR0FSSU4txIxPTktJxIYgUkFET0pLQQorQlVHQVJJTiDFvUlWQU4KK0JVR0FSSU4gxb1JVkFOCitCVUdBUklOIMW9SVZBTgorQlVHQVJJTiDFvUlWQU4KK0JVR0FSSU4gQk/FoEtPCitCVUdBUklOIEJPUklTTEFWCitCVUdBUklOIERBTklDQQorQlVHQVJJTiBJTElKQQorQlVHQVJJTiBJVkFOQQorQlVHQVJJTiBKRVZST1NJTUEKK0JVR0FSSU4gTEpJTEpBTkEKK0JVR0FSSU4gTEpVQk9NSVIKK0JVR0FSSU4gTUFSSUpBCitCVUdBUklOIE1JTE/FoAorQlVHQVJJTiBNSUxPUkFECitCVUdBUklOIFJBRElTTEFWCitCVUdBUklOIFJBRE9TTEFWCitCVUdBUklOIFNJTknFoEEKK0JVR0FSSU4gU1BBU09KRQorQlVHQVJJTiBTVEVWQU4KK0JVR0FSSU4gVkVMSUJPUgorQlVHQVJJTiBWRVNOQQorQlVHQVJJTiBaT1JBTgorQlVHQVJJTiBaT1JJQ0EKK0JVR0FSSU5PVknEhiBNQVJHQVJFVEEKK0JVR0FSSVUgSlVMSUpBTgorQlVHQVJTS0kgxb1BUktPCitCVUdBUlNLSSDFvUlLQQorQlVHQVJTS0kgxb1JVkFOIERJUEwgSU5HCitCVUdBUlNLSSDEkE9SxJBFCitCVUdBUlNLSSDEkE9SxJBFCitCVUdBUlNLSSDEkFVSSUNBCitCVUdBUlNLSSBCT0pBTkEKK0JVR0FSU0tJIEJSQU5LTworQlVHQVJTS0kgRElNSVRSSUpFCitCVUdBUlNLSSBESU1JVFJJSkUKK0JVR0FSU0tJIERSQUdBTgorQlVHQVJTS0kgRFJBR0lDQQorQlVHQVJTS0kgRFJBR09MSlVCIERSCitCVUdBUlNLSSBEUkFHT0xKVUIKK0JVR0FSU0tJIERSQUdPU0xBVgorQlVHQVJTS0kgRFJBR09TTEFWCitCVUdBUlNLSSBEUkFHT1NMQVYKK0JVR0FSU0tJIERVxaBBTiBEUgorQlVHQVJTS0kgRFXFoEFOCitCVUdBUlNLSSBEVcWgSUNBCitCVUdBUlNLSSBEVcWgSUNBCitCVUdBUlNLSSBEVcWgS08KK0JVR0FSU0tJIEVWSUNBCitCVUdBUlNLSSBKT1ZBTgorQlVHQVJTS0kgSlVMS0EKK0JVR0FSU0tJIEtBVEEKK0JVR0FSU0tJIEtSU1RBCitCVUdBUlNLSSBLU0VOSUpBCitCVUdBUlNLSSBMQVpBUgorQlVHQVJTS0kgTEFaQVIKK0JVR0FSU0tJIE1JTEFOCitCVUdBUlNLSSBNSUxBTgorQlVHQVJTS0kgTUlMRU5BCitCVUdBUlNLSSBNSUxFTktPCitCVUdBUlNLSSBNSUxFVEEKK0JVR0FSU0tJIE1JTElDQQorQlVHQVJTS0kgTUlMT1JBRAorQlVHQVJTS0kgTUlSQQorQlVHQVJTS0kgTUlSSkFOQQorQlVHQVJTS0kgTUlSSkFOQQorQlVHQVJTS0kgTUlST1NMQVZBCitCVUdBUlNLSSBNSVJPU0xBVgorQlVHQVJTS0kgTkFEQQorQlVHQVJTS0kgTkVERUxKS08KK0JVR0FSU0tJIE5JS09MQQorQlVHQVJTS0kgT0xJVkVSQQorQlVHQVJTS0kgUEFKQQorQlVHQVJTS0kgUEFWTEUKK0JVR0FSU0tJIFJBRE9TTEFWCitCVUdBUlNLSSBSQVNUS08KK0JVR0FSU0tJIFJBVE9NSVIKK0JVR0FSU0tJIFNBVkEKK0JVR0FSU0tJIFNBVkEKK0JVR0FSU0tJIFNMT0JPREFOCitCVUdBUlNLSSBTTE9CT0RBTgorQlVHQVJTS0kgU0xPQk9EQU4KK0JVR0FSU0tJIFNPRklKQQorQlVHQVJTS0kgU1RFVkFOCitCVUdBUlNLSSBTVEVWQU4KK0JVR0FSU0tJIFNURVZBTgorQlVHQVJTS0kgU1RFVkFOCitCVUdBUlNLSSBTVkVUTEFOQQorQlVHQVJTS0kgVEFUSkFOQQorQlVHQVJTS0kgVk9KSVNMQVZBCitCVUdBUlNLSSBWT0pJU0xBVgorQlVHQVJTS0kgVk9KSVNMQVYKK0JVR0FSU0tJIFpPUkEKK0JVR0VMSiBJVkFOCitCVUhBIEJSQU5LQQorQlVIQSBSQURJVk9KRQorQlVIQSBWVUtBxaBJTgorQlVITUlMRVIgQUdORcWgCitCVUhNSUxFUiBBVElMQQorQlVITUlMRVIgRVZBCitCVUhNSUxFUiBKT1NJUAorQlVITUlMRVIgSk9TSVAKK0JVSE1JTEVSIEtBUkxPCitCVUnFoEEgTUlMSU5LTworQlVJTEEgQU5BCitCVUlMQSBJUklORUoKK0JVSUxBIExKVUJJQ0EKK0JVSUxBIE1BS1NJTUlMSUpBTgorQlVJTEEgTUlST1NMQVYKK0JVSUxBIFNMQVZJQ0EKK0JVSUxBIFNMQVZPTUlSCitCVUpBSyBFTUlMCitCVUpBSyBNQVRJTERBCitCVUpBSyBTQVZBCitCVUpBTkRSScSGIEFOxJBFTEtBCitCVUpBTkRSScSGIEpPVkFOCitCVUpBTkRSScSGIExKVUJJQ0EKK0JVSkFORFJJxIYgTUFSSUpBCitCVUpBTkRSScSGIE1JTElWT0oKK0JVSkFORFJJxIYgTUlUQVIKK0JVSkFORFJJxIYgTklLT0xBCitCVUpBTkRSScSGIFBBVkxFCitCVUpBTkRSScSGIFBFVEFSCitCVUpBTkRSScSGIFNWRVRPWkFSCitCVUpBTkRSScSGIFZMQURJTUlSCitCVUpBUyBNSUxFTktPCitCVUpBUyBWRU7EjEVTTEFWCitCVUpET8WgQSBTVEVWQU4KK0JVSkRPxaBJSyBCT0hPTUlMCitCVUpET8WgSUsgS0xBUkEKK0JVSkRPxaBJSyBNSVJPU0xBVgorQlVKRE/FoE8gScWgVFZBTgorQlVKScWgScSGIMW9SVZLTworQlVKScSGIEJPUklWT0pFCitCVUpMQSBFVEVMS0EKK0JVSkxBIEpBU01JTkEKK0JVSk5PVknEhiDEkE9SxJBFCitCVUpOT1ZJxIYgTUlMSU5LTworQlVLQUxPViBaT1JBCitCVUtBUkEgRFXFoEFOS0EKK0JVS0FSSUNBIERBTklDQQorQlVLQVJJQ0EgSk9WQU4KK0JVS0FUS0EgQU5EUkVKCitCVUtBVEtBIFJBRE9TTEFWCitCVUtBVEtPIFZMQURJTUlSCitCVUtBVEtPViBJVkFOCitCVUtJxIYgSkFLT1YKK0JVS0lMScSGIERSQUdBCitCVUtJTEnEhiBEUkFHSUNBCitCVUtJTiBOSUtPTEEgRElQTCBJTkcKK0JVS0lOQUMgxJBPUsSQRQorQlVLSU5BQyBCSUxKQU5BCitCVUtJTkFDIEJPR1VNSUxBCitCVUtJTkFDIERJTkEKK0JVS0lOQUMgR0xJR09SSUpFCitCVUtJTkFDIElWQU4KK0JVS0lOQUMgSlVMS0EKK0JVS0lOQUMgTEFaQVIKK0JVS0lOQUMgTUlMQURJTgorQlVLSU5BQyBNSUxBTgorQlVLSU5BQyBNSUxJQ0EKK0JVS0lOQUMgTUlMT1NBVkEKK0JVS0lOQUMgTUlSS08KK0JVS0lOQUMgTUlST1NMQVYKK0JVS0lOQUMgUlXFvUlDQQorQlVLSU5BQyBTTEFWS08KK0JVS0lOQUMgU1RBTktBCitCVUtJTkFDIFNURVZBTgorQlVLSU5BQyBVUk/FoAorQlVLT1bEjEFOSU4gQUNBCitCVUtPVkHEjEtJIE1JT0RSQUcKK0JVS09WQcSMS0kgUEVSQQorQlVLT1ZBxIxLSSBTVkVUT1pBUgorQlVLT1ZBQyBBTktJQ0EKK0JVS09WQUMgQVRJTEEKK0JVS09WQUMgU1RFVkFOCitCVUtPVkFDIFZMQURPCitCVUtPVkFMQSBERVNBTktBCitCVUtPVknEjEFOSU4gUkVMSkEKK0JVS09WScSGIEFORFJBxaAKK0JVS09WSUNBIERJTUlUUklKRQorQlVLT1ZJQ0EgUkFOS08KK0JVS1RBIE5BREEKK0JVS1RBIFpWT05LTworQlVLVU1JUk9WScSGIE1JTE9NSVIKK0JVS1VNSVJPVknEhiBNSUxPUkFEIERJUEwgSU5HCitCVUtVUkVDS0kgQlJBTklTTEFWCitCVUtVUkVDS0kgU0lOScWgQQorQlVLVVJJxIYgVEFUSkFOQQorQlVLVVJPViDFvUFSS08KK0JVS1VST1Ygxb1JVkFOCitCVUtVUk9WIMW9SVZBTgorQlVLVVJPViBCT8WgS08KK0JVS1VST1YgQlJBTklTTEFWIERSIFBST0YKK0JVS1VST1YgS1NFTklKQQorQlVLVkEgVkVMSU1JUgorQlVLVknEhiDFvUVMSktBCitCVUtWScSGIEFMRUtTQU5EQVIKK0JVS1ZJxIYgQlJBTktPCitCVUtWScSGIEJVREUKK0JVS1ZJxIYgREFORQorQlVLVknEhiBEQU5JTE8KK0JVS1ZJxIYgREFOSUxPCitCVUtWScSGIERSQUdBTgorQlVLVknEhiBEVcWgQU4KK0JVS1ZJxIYgSUxJSkEKK0JVS1ZJxIYgSUxJTktBCitCVUtWScSGIEpBTktPCitCVUtWScSGIEpFTElTQVZFVEEKK0JVS1ZJxIYgSk9WQU4KK0JVS1ZJxIYgS09WSUxKS0EKK0JVS1ZJxIYgTEpVQk9NSVIKK0JVS1ZJxIYgTUFSSUpBCitCVUtWScSGIE1BUklOS08KK0JVS1ZJxIYgTUlMRU5LTworQlVLVknEhiBNSUxLQQorQlVLVknEhiBNSUxPxaAKK0JVS1ZJxIYgTUlMT8WgCitCVUtWScSGIE1JTE/FoAorQlVLVknEhiBNSUxPUkFECitCVUtWScSGIE1JUk9TTEFWCitCVUtWScSGIE1MQURFTgorQlVLVknEhiBOT1ZJQ0EKK0JVS1ZJxIYgUkFET1ZBTgorQlVLVknEhiBTTEFWSUNBCitCVUtWScSGIFNPRklKQQorQlVLVknEhiBTVEVWQU4KK0JVS1ZJxIYgU1ZFVE9aQVIKK0JVS1ZJxIYgVE9NSVNMQVYKK0JVS1ZJxIYgVkVMSU1JUgorQlVLVknEhiBWTEFETworQlVMQUnEhiBSRUxKQQorQlVMQUpJxIYgxJBVUk8KK0JVTEFKScSGIERBTklDQQorQlVMQUpJxIYgTUlPRFJBRworQlVMQUpJxIYgTkFUQUxJSkEKK0JVTEFKScSGIE5FREVMSktPCitCVUxBSknEhiBWTEFESU1JUgorQlVMQUtJxIYgVlVLQcWgSU4KK0JVTEFUT1ZJxIYgQUxFS1NBTkRBUgorQlVMQVRPVknEhiBCUkFOSVNMQVYKK0JVTEFUT1ZJxIYgRElNSVRSSUpFCitCVUxBVE9WScSGIERSQUdBTgorQlVMQVRPVknEhiBEUkFHQU4KK0JVTEFUT1ZJxIYgRFXFoEFOS0EKK0JVTEFUT1ZJxIYgRFXFoEFOCitCVUxBVE9WScSGIEdSQURJTUlSCitCVUxBVE9WScSGIElMSUpBCitCVUxBVE9WScSGIE1JTEFESU4KK0JVTEFUT1ZJxIYgTUlMSUpBTkEKK0JVTEFUT1ZJxIYgTUlMSU5LTworQlVMQVRPVknEhiBNSUxVVElOCitCVUxBVE9WScSGIE1PTUlSCitCVUxBVE9WScSGIE5JS09MQQorQlVMQVRPVknEhiBOSUtPTEEKK0JVTEFUT1ZJxIYgTk9WQUsKK0JVTEFUT1ZJxIYgUEFWTEUKK0JVTEFUT1ZJxIYgUEVSTworQlVMQVRPVknEhiBQUkVEUkFHCitCVUxBVE9WScSGIFJBRE1JTE8KK0JVTEFUT1ZJxIYgUkFET05KQQorQlVMQVRPVknEhiBTQVZBCitCVUxBVE9WScSGIFNMQcSQQU5BCitCVUxBVE9WScSGIFNQQVNBCitCVUxBVE9WScSGIFNWRVRPWkFSCitCVUxBVE9WScSGIFZPSklOCitCVUxBVE9WScSGIFZPSklTTEFWCitCVUxBVE9WScSGIFpMQVRJSkEKK0JVTEFUT1ZJxIYgWk9SQU4KK0JVTEVUSU5BQyBNSUxPVkFOCitCVUxFVlNLQSBWRVJBCitCVUxJxIYgxaBVxIZPCitCVUxJxIYgQURJTEEKK0JVTEnEhiBBTlRFCitCVUxJxIYgQVJJRgorQlVMScSGIEJPUklTCitCVUxJxIYgRFJBR0FOCitCVUxJxIYgRFJBR09MSlVCCitCVUxJxIYgRFXFoEFOCitCVUxJxIYgTUFSQQorQlVMScSGIE1BUklKQQorQlVMScSGIE1BUklOQQorQlVMScSGIE9aUkVOCitCVUxJxIYgUEVSU0EKK0JVTEnEhiBQRVRBUgorQlVMScSGIFBSRURSQUcKK0JVTEnEhiBTTUlMSkEKK0JVTEnEhiBTVEVWQU4KK0JVTEnEhiBUT01JU0xBVgorQlVMSUstSUxFQU5BIERPUklOQQorQlVMSiDEkFVSQQorQlVMSiBCT1NJTEpLQQorQlVMSiBNSUxBTgorQlVMSsSMSUsgRVVHRU4KK0JVTErEjElLIEpPQUtJTQorQlVMSsSMSUsgTUlIQUpMTworQlVMSsSMSUsgTklLT0xBCitCVUxKxIxJSyBQQVVMSU5BCitCVUxKQUsgUkFUS08KK0JVTEpBTiBEUkFHVVRJTiBESVBMIElORworQlVMSkFOIFBFVEFSCitCVUxKQU4gU0xBVklDQQorQlVMSknEhiBJTElKQQorQlVMSknEhiBKRUxFTkEKK0JVTEpJxIYgSk9WQU4KK0JVTEpJxIYgTEpVQklDQQorQlVMSknEhiBNSUxBTgorQlVMSknEhiBNSUxFCitCVUxKScSGIE5PVkFLCitCVUxKScSGIFBBVk8KK0JVTEpJxIYgUkFET1ZBTgorQlVMSknEhiBTRUtVTEEKK0JVTEpJxIYgU05Fxb1BTkEKK0JVTEpJxIYgU1RFVkEKK0JVTEpJxIYgVkFTTworQlVMSklOIEJSQU5LTworQlVMSklOIFNMQVZLTworQlVMSklOIFRPTUlTTEFWCitCVUxKT1bEjEnEhiBTVElQQU4KK0JVTEpVR0nEhiBSQURPSkUKK0JVTE9WQU4gQlJBTklTTEFWCitCVUxPVknEhiBJUklORUoKK0JVTFVNIFBFVEFSCitCVUxVVCBBTsSQRUxLTworQlVMVVQgTk9WSUNBCitCVU1CIEFOVE9OCitCVU1CQVJPU0tJIFJBREEKK0JVTUJJxIYgTUlMQURJTiBEUgorQlVNQknEhiBSQURNSUxBCitCVU1CScSGIFJBSktPCitCVU1CScSGIFZFTEpLTworQlVNQknEhiBWRUxKS08KK0JVTsSMScSGIMSQT1LEkEUKK0JVTsSMScSGIEFMRUtTQU5EQVIKK0JVTsSMScSGIEFMRUtTQU5EQVIKK0JVTsSMScSGIERSQUdBTgorQlVOxIxJxIYgTUFSSUpBTkEKK0JVTsSMScSGIE1JTEFOCitCVU5BSiBNVUhBTUVECitCVU5EQUxFU0tJIE1JTE/FoAorQlVOREFMTyBCUkFOS08KK0JVTkRBTE8gTkVCT0rFoEEKK0JVTkRBTE8gTklLT0xBCitCVU5EQUxPIFNMQVZLTworQlVOREFMTyBTTE9CT0RBTgorQlVOREFMTyBTTE9CT0RBTgorQlVOREnEhiBBTlRVTgorQlVORVRBIEFMRUtTQU5EQVIKK0JVTkVUQSBNSUxBTgorQlVORVRBIFNORcW9QU5BCitCVU5FVEEgVlVLT1NBVkEKK0JVTknEhiBEUkFHQU4KK0JVTknEhiBNSUxBTgorQlVOSkFDIFZBU08KK0JVTkpBQyBWT0pJU0xBVgorQlVOSkVWxIxFViDEkE9SxJBFCitCVU5KRVbEjEVWIEFMRUtTQU5EQVIKK0JVTkpFVsSMRVYgU1LEkEFOCitCVU5KRVZBxIxLSSDFvUlWT0pJTgorQlVOSkVWQcSMS0kgQlJBTktPCitCVU5KRVZBxIxLSSBEUkFHSU5KQQorQlVOSkVWQcSMS0kgSk9WQU5LQQorQlVOSkVWQcSMS0kgTEpVQklDQQorQlVOSkVWQcSMS0kgTUlMRU5BCitCVU5KRVZBxIxLSSBWT0pJU0xBVgorQlVOSklLIMWgQU5ET1IKK0JVTkpJSyBEUkFHSUNBCitCVU5KSUsgSVZBTgorQlVOSklLIEpPU0lQCitCVU5KSUsgS0FST0xKCitCVU5KSUsgWk9MVEFOCitCVU5KSUsgWk9MVEFOCitCVU5PVknEhiBEUkFHVVRJTgorQlVOT1ZJxIYgTEFaQVIKK0JVTlQgTUlKTworQlVSxIxFUiBUT01JU0xBVgorQlVSxaBJxIYgVElOS0EKK0JVUkFJIEFMRUtTQU5EQVIKK0JVUkFJIEFORFJBxaAKK0JVUkFJIEtBUk9MSgorQlVSQUkgS0FUSUNBCitCVVJBSSBQRVRBUgorQlVSQUpJIEpPU0lQCitCVVJBTkogQkVMQSBEUiBMRUtBUgorQlVSQU5KIEVORFJFCitCVVJBTkogTUFSVEEKK0JVUkFOSiBOQU5ET1IKK0JVUkFOSiBTSURPTklKQQorQlVSQU5KSSBNQVJJSkEKK0JVUkFOSkkgTkFORE9SCitCVVJBWk9SIERSQUdPSkEKK0JVUkFaT1IgWkRSQVZLTworQlVSQkFIIEdFUkhBUkQKK0JVUkJBTiBGSUxJUAorQlVSREEgTUVMSU5EQQorQlVSREEgU1RBTklTTEFWCitCVVJFVknEhiBNSUxJxIYKK0JVUkdJxIYgRFJBR09KRQorQlVSR0nEhiBKT1ZBTgorQlVSR0nEhiBQRVRBUgorQlVSR0lKQcWgRVYgVkVTRUxJTgorQlVSScSGIMSQT0tPIERJUEwgSU5HCitCVVJJxIYgRElNSVRSSUpFCitCVVJJxIYgRFXFoEFOIERSCitCVVJJxIYgRFXFoEFOS0EKK0JVUknEhiBGUkFOSkEKK0JVUknEhiBHT1JEQU5BCitCVVJJxIYgS0FUSUNBCitCVVJJxIYgS09TVEEKK0JVUknEhiBMRU9OT1JBCitCVVJJxIYgTUlMSVZPSkUKK0JVUknEhiBOQURBCitCVVJKQU4gxJBPUsSQRQorQlVSSkFOT1ZTS0kgU1RPSkFOCitCVVJLQSBFTEVPTk9SQSBEUgorQlVSS0EgRU1JTElKQQorQlVSS0EgRVLFvUVCRVQKK0JVUktBIEpPVkFOCitCVVJLQSBNSVJPU0xBVgorQlVSS0EgUEFWTEUKK0JVUktBIFBFVEFSCitCVVJLQSBTT0ZJSkEKK0JVUktBIFNURVZBTgorQlVSS0EgU1RFVkFOCitCVVJLRVJUIEVEVklOCitCVVJLSU4gxb1JVkFOCitCVVJLSU4gxJBPS0EKK0JVUkxBSyBOQVRBTElKQQorQlVSTUFKQSBOSUtPTEEKK0JVUk1VRMW9SUpBIEJSQU5LTworQlVSTVVExb1JSkEgTUlMQU4KK0JVUk1VRMW9SUpBIE5JS09MQQorQlVSTkHEhiBGRUxJS1MKK0JVUk5BxIYgSkVMSVNBVkVUQQorQlVSTkHEhiBTVEVWQU4KK0JVUk5BxIYgVkxBRElNSVIKK0JVUk5PViBJVkFOQQorQlVSTk9WIElWQU4KK0JVUk5PViBWRVNFTElOS0EKK0JVUk9WQUMgTkFEQQorQlVSU0HEhiBEQVJJTktBCitCVVJTQcSGIERSQUdPU0xBVkEgRElQTCBQUkFWTklLCitCVVJTQcSGIEpPVkFOCitCVVJTQcSGIExKVUJPTUlSCitCVVJTQcSGIE1JTEFOS0EKK0JVUlNBxIYgTUlMQU4KK0JVUlNBxIYgTUlMSUNBCitCVVJTQcSGIE1JTE9SQUQKK0JVUlNBxIYgTUlSS08KK0JVUlNBxIYgTklLT0xBCitCVVJTQcSGIFBFUkEKK0JVUlNBxIYgUEVSU0EKK0JVUlNBxIYgU0xPQk9EQU4KK0JVUlNBxIYgU0xPQk9EQU4KK0JVUlNBxIYgVkpFS09TTEFWQQorQlVSU0HEhiBWTEFETyBESVBMIFBSQVZOSUsKK0JVUlNJxIYgU1RFVkFOCitCVVJTScSGIFZMQURJTUlSCitCVVJVxaAgQUxFS1NBTkRSQQorQlVSVcWgIEJPxaBLTworQlVSVU1Exb1JSkEgUkFERQorQlVSWkFOIE1JUkpBTkEKK0JVUlpFTEnEhiBNSUxLQQorQlVSWkVMScSGIFpMQVRBCitCVVNBUsSMRVZJxIYgU0xBVklDQQorQlVTQVLEjEVWScSGIFNURVZBTgorQlVTSUpBIExKVUJJTktBCitCVVNJSkEgTUlMQU4KK0JVU09WIEFMRUtTSUpFIERJUEwgSU5HCitCVVNPViBJR09SCitCVVNVTEFExb1JxIYgTVVTVEFGQQorQlVUQSBMQVpBUgorQlVUQSBWT0pJU0xBViBEUgorQlVUQcWgIEZFUkVOQworQlVURVIgS1NFTklKQQorQlVURVJFUiBJxaBUVkFOCitCVVRFUkVSIEpVTElKQQorQlVURVJJTiBERcWgQQorQlVUT1IgQUxFS1NBTkRBUgorQlVUT1IgRU5EUkUKK0JVVE9SIE1JSEFKTE8KK0JVVE9SQUMgSk9TSVAKK0JVVE9SQUMgTUFSSUpBCitCVVRPUkFDIFpPUkFOCitCVVRVTElKQSBCUkFOSVNMQVYKK0JVVFVST1ZJxIYgUkFUS08KK0JVVFVST1ZJxIYgU1ZFVE9aQVIKK0JVWkEgSVJFTkEKK0JVWkEgS09STkVMSVUKK0JVWkEgTUlIQUxKCitCVVpBxaAgxaBBTkRPUgorQlVaQcWgIEpPU0lQCitCVVpBxaAgSk9TSVAKK0JVWkHFoCBMQUpPxaAKK0JVWkHFoCBQQVZBTworQlVaQcWgIFBBVkxFCitCVVpBxaBJIEpPU0lQCitCVVpBxaBJIE1JSEFKTE8KK0JVWkFExb1JxIYgTEpJTEpBTkEKK0JVWkFExb1JxIYgTUlSSkFOQQorQlVaQUTFvUlKQSBORU5BRAorQlVaQUTFvUlKQSBOT1ZBSworQlVaQUxKS08gSlVTVUYgRElQTCBJTkcKK0JVWkFOxIxJxIYgSk9TSVAKK0JVWkFOxIxJxIYgTkFERcW9REEKK0JVWkFOU0tJIE1JxaBBCitCVVpBUkVWScSGIEJSQU5LTworQlVaQVJFVknEhiBSQURPSktBCitCVVpBUkVWScSGIFJVxb1BCitCVVpBUk9WIMW9SVZBTgorQlVaQVJPViBKT1ZBTgorQlVaQVJPViBaT1JBCitCVVpBUlNLSSDEkE9SxJBFCitCVVpHTyBKQU5PxaAKK0JVWk9HQU5KIE1BUklKQQorQ0FDS08gTUFSSUpBCitDQUpJxIYgTUlMT8WgCitDQUpORVIgSkVMRU5BCitDQUpORVIgTEpVQklDQQorQ0FKTkVSIFNURVZBTgorQ0FKTkVSIFNURVZBCitDQUtJxIYgRFXFoEFOS0EKK0NBS0nEhiBHT1JEQU5BCitDQUtJxIYgSkVMRU5LTworQ0FLScSGIE1JUk9TTEFWCitDQUtJxIYgUEVUQVIKK0NBS0nEhiBTVEVWQU4KK0NBTkRJUiBGUkFOSkEKK0NBTknEhiBMSklMSkFOQQorQ0FOScSGIFZFTElNSVIKK0NBUCDEkFVSQQorQ0FQIEJPxaBLTworQ0FQIEpPQUtJTQorQ0FQIEpPVkFOCitDQVAgTkVOQUQKK0NBUCBORU5BRAorQ0FQIFJBRE9KS0EKK0NBUCBUQU1BUkEKK0NBUEFSLUpBTktPVknEhiBWQUxFUklKQQorQ0FQQVIgSkFOT8WgCitDQVBBUiBKT1ZBTgorQ0FQQVIgTUFSSUpBCitDQVBBUiBNQVJJSkEKK0NBUElLIEpPU0lQCitDQVBJSyBMSlVERVZJVAorQ0FSIE1BUklKQQorQ0FSQU4gQk/FoEtPCitDQVJBTiBHRU9SR0UKK0NBUkFOIFBFUlNBCitDQVJBTiBQRVRBUgorQ0FSQU5PVknEhiBTVEFOT0pFCitDQVJFVknEhiDFvUlWQU4KK0NBUkVWScSGIMW9SVZLQQorQ0FSRVZJxIYgxJBPUsSQRQorQ0FSRVZJxIYgRFXFoEFOCitDQVJFVknEhiBFU1RFUgorQ0FSRVZJxIYgS0FUSUNBCitDQVJFVknEhiBNSUhBSkxPCitDQVJFVknEhiBNSUxFTkEKK0NBUkVWScSGIE1JTEUKK0NBUkVWScSGIE5BREEKK0NBUkVWScSGIFBFVEFSCitDQVJFVknEhiBTQVZBCitDQVJFVknEhiBTTEFWS08KK0NBUkVWScSGIFNMQVZLTworQ0FSRVZJxIYgU1RFVkFOCitDQVJFVknEhiBTVkVUT1pBUgorQ0FSScSMScSGIFNMQVZLTworQ0FSScSGIEFORFJJSkEKK0NBUknEhiBCUkFOS08KK0NBUknEhiBHT0pLTworQ0FSScSGIExBWkFSCitDQVJJxIYgTUFSSUpBCitDQVJJxIYgTUlSSkFOQQorQ0FSScSGIFNMQVZLTyBEUiBQUk9GCitDQVJJxIYgU0xPQk9EQU4gRFIKK0NBUknEhkVWScSGIE1JTEVOS08KK0NBUk8gR09SQU4KK0NBVEnEhiBMQVpBUgorQ0FWTknEhiBNQVJUQQorQ0FWTknEhiBTVkVUTEFOQQorQ0FaSU4gRFJBR0FOCitDRSBQQVZMRQorQ0VDRUwgTUFSSUpBCitDRUdMRURJIMSQVVJPCitDRUhPTEEgRkVSRU5DCitDRUtJxIYgQk9SSVNMQVYKK0NFS0nEhiBCT1JJVk9KRQorQ0VLScSGIEJPUktPCitDRUtJxIYgSlVMS0EKK0NFS0nEhiBQRVRBUgorQ0VLScSGIFJBRE1JTEEKK0NFS1XFoCBFVkEKK0NFTEnEhiBCUkFOS08KK0NFTElOIE1JTEFOCitDRUxJTiBNSUxBTgorQ0VOQUogVEFISVIKK0NFTkRFUiBBTkdFTElOQQorQ0VOScSGIE1JTE9WQU4KK0NFUCBTVEVWQU4KK0NFUEYgU1RFVkFOCitDRVJHT0wgVklET1NBVkEKK0NFUknEhiBEQU5JQ0EKK0NFUknEhiBNRUhNRUQKK0NFUk5BIFJVRE9MRgorQ0VST1ZBQyBaT1JLQQorQ0VST1ZJxIYgQkFUUknEhgorQ0VST1ZJxIYgQk9HREFOCitDRVJPVknEhiBCT0pBTkEKK0NFUk9WScSGIERBUklOS0EKK0NFUk9WScSGIElLT05JSkEKK0NFUk9WScSGIExKVUJJVk9KRQorQ0VST1ZJxIYgTUnFoE8KK0NFUk9WScSGIE5FTkFECitDRVJPVknEhiBOT1ZBSworQ0VST1ZJxIYgUEVUQVIKK0NFUk9WScSGIFNMT0JPREFOCitDRVJPVknEhiBTUkVURU4KK0NFUk9WScSGIFRPTUlTTEFWCitDRVJPVknEhiBVUk/FoAorQ0VST1ZTS0kgREFOSUpFTAorQ0VTTkFLIEpBTktPCitDRVNOQUsgUEFWTEUKK0NFU05BSyBaTEFUS08KK0NFVEVOSkkgSk9WQU4KK0NFVElOQSBKT1ZBTgorQ0VUSU5BIExKSUxKQU5BCitDRVZDIEZSQU5KQQorQ0VWQyBTT05KQQorQ0lCUknEhiBUT0RPUgorQ0lCVUxBIMSQVVJBCitDSUJVTEEgQkVMQQorQ0lCVUxBIEpBTktPCitDSUJVTEEgSk9WQU4KK0NJQlVMQSBKT1ZBTgorQ0lCVUxBIE1BUkpFTktBCitDSUJVTEEgTUnFoEEKK0NJQlVMQSBQRVJBCitDSUNFUkkgRkVSRU5DCitDSUNFUkkgS0FST0xKCitDSUNFUkkgTEFTTE8KK0NJQ0VSSSBNQVRJTERBCitDSUNFUkkgUEVSQQorQ0lDRVJJIFZJTktPCitDSUNLQSDFoMSGRUZBTgorQ0lDS0EgSkFOCitDSUNNSUwgQk/FvUlEQVIKK0NJQ01JTCBCUkFOS08KK0NJQ01JTCBLUlNUTworQ0lDTUlMIE1BUklKQQorQ0lDTUlMIE1BUktPCitDSUNNSUwgTUlMQU4KK0NJQ01JTCBTVE9KQU4KK0NJQ01JTCBUQVRKQU5BCitDSUNNSUwgWk9SQU4KK0NJQ01JTE9WScSGIERSQUdBTgorQ0lDTUlMT1ZJxIYgWk9SS0EKK0NJQ08gRFXFoEFOCitDSUNWQVJJTiBMSlVCT01JUgorQ0lGUknEhiBHQUxJQgorQ0lHQU4gQU5UVU4KK0NJR0FOIElWQU4KK0NJR0FOSiBKT1NJUAorQ0lHQU5PVknEhiBCUkFOS08KK0NJR0FOT1ZJxIYgREFORQorQ0lHQU5PVknEhiBEVcWgQU4KK0NJR0FOT1ZJxIYgTUlMT1JBRAorQ0lHQU5PVknEhiBPU1RPSkEKK0NJR0FOT1ZJxIYgUkFKS08KK0NJR0FOT1ZJxIYgU1RFVk8KK0NJR0nEhiBJVkFOCitDSUdMRVIgU05Fxb1BTkEKK0NJR0xKRUNLSSBGUkFOSkEKK0NJR0xKRUNLSSBWRVJBCitDSUtPUkEgxb1Vxb1BTkEKK0NJS09UQSDFvUVMSktPCitDSUtPVEEgT0xHQQorQ0lLT1RBIFNMQVZLTworQ0lLVcWgQSBKT1ZBTgorQ0lLVcWgQSBaT1JBTgorQ0lNQkFMIEFMRUtTQU5EQVIKK0NJTUJBTCBBTEVLU0FOREFSCitDSU1CQUwgVElCT1IKK0NJTUJBTCBWRVJJQ0EKK0NJTUJBTEpFVknEhiBaTEFUQU5BCitDSU1FUk1BTiBMQURJU0xBVgorQ0lNRVJNQU4gU01JTEpBCitDSU5DT1ZJxIYgxb1JVktBCitDSU5ERVIgVklEQQorQ0lORFJJxIYgxJBPUsSQRQorQ0lORFJJxIYgRVLFvUVCRVQKK0NJTkRSScSGIFBFVEFSIERSCitDSU5HQVJBIEFMRUtTQU5EQVIKK0NJTkdFTEkgTUlMRU5BCitDSU5HSSBLQVJMTworQ0lOS0xFUiBKRUxJU0FWRVRBIERJUEwgSU5HCitDSU5LTEVSIEpVTElKRQorQ0lOS0xFUiBLQUxNQU4gRElQTCBJTkcKK0NJTktMRVIgS0FMTUFOIERJUEwgSU5HCitDSU5LTEVSIEtBTE1BTgorQ0lOS0xFUiBNQUdET0xOQQorQ0lOS09DS0kgxJBPUsSQRQorQ0lOS09DS0kgVk9KSVNMQVYKK0NJUFJVxaAgQUxFS1NBTkRSQQorQ0lSQlVTIE1BUklKQQorQ0lSR0VSIERVxaBBTktBCitDSVJPSyDFoEFORE9SCitDSVRLT1ZJxIYgSVZLQQorQ0lUS09WScSGIFNMT0JPREFOCitDSVZSScSGIE1JTEtBCitDTUlMSkFOT1ZJxIYgRFJBR0nFoEEKK0NPQ0VLIMWgVEVGQU5JSkEKK0NPQ0VLIElNUkUKK0NPQ0VLIEpPU0lQCitDT0NFSyBTVEVWQU4KK0NPQ0lOIE1JUkEKK0NPQ08gVkFIREVUQQorQ09MScSGIEJPxb1JREFSCitDT0xJxIYgQk9HT1NBVgorQ09MScSGIEZSQU5KQQorQ09MScSGIEpPU0lQCitDT0xJxIYgS0FUSUNBCitDT0xJxIYgTEFESVNMQVYKK0NPTEnEhiBTVkVUTEFOQQorQ09OScSGIERSQUdJTkpBCitDT05JxIYgSkFOS08gTVIgSU5HCitDT05JxIYgTUlPRFJBRworQ09QS09WIMW9RUxKS08KK0NSRVBJxIYgTEFESVNMQVYKK0NSRVBVTEnEhiBWSURPU0FWQQorQ1JFUFVMSkEgVE9ET1IKK0NSRVZBUiBCT0dEQU4KK0NSRVZBUiBNSUxVVElOIERJUEwgSU5HCitDUkVWQVIgU0lNQQorQ1JFVkFSIFNMQVZLTworQ1JLVkVOSkFLT1YgREFOSUNBCitDUktWRU5KQUtPViBEVcWgQU5LQQorQ1JLVkVOSkFLT1YgU1VMVEFOSUpBCitDUk7EjEVWScSGIERBUklOS0EKK0NSTsSMRVZJxIYgTUlSS08KK0NSTsSMRVZJxIYgTUlSS08KK0NSTsSMRVZJxIYgTkVERUxKS0EKK0NSTsSMRVZJxIYgU0xBVktPCitDUk7EjEVWScSGIFZFUkEKK0NSTsSMRVZJxIYgVkxBRE8KK0NSTkFEQUsgVkxBVEtPCitDUk5JIFZFUklDQQorQ1JOSSBaT1JJQ0EKK0NSTknEhiBCUkFOS0EKK0NSTknEhiBEUkFHQU4KK0NSTknEhiBHT1JBTgorQ1JOScSGIE1BUktPCitDUk5JxIYgTUlMQU4KK0NSTknEhiBNSUxVVElOCitDUk5JxIYgTklLT0xBCitDUk5JxIYgT1NUT0pBCitDUk5JxIYgUkFET01JUgorQ1JOScSGIFNPRklKQQorQ1JOScSGIFVHTEpFxaBBCitDUk5JxIYgVkFTQQorQ1JOScSGIFZFUkEKK0NSTkpBQyBNSUxFTkEKK0NSTkpBSyDFvUlWQU5LQQorQ1JOSkFLT1YgRElNSVRSSUpFCitDUk5KQU5JTiBCUkFOSVNMQVZBCitDUk5KQU5JTiBaQUdPUktBCitDUk5KQU5TS0ktxIxFTkdFUkkgS1JJU1RJTkEKK0NSTkpBTlNLSSDFvUFSS08KK0NSTkpBTlNLSSDEkE9LQQorQ1JOSkFOU0tJIEJVRElNS0EKK0NSTkpBTlNLSSBJVkFOCitDUk5KQU5TS0kgSkVMRU5BCitDUk5KQU5TS0kgS0FUSUNBCitDUk5KQU5TS0kgS1VaTUFOCitDUk5KQU5TS0kgTEFaQVIKK0NSTkpBTlNLSSBSQURJVk9KCitDUk5KQU5TS0kgU0FOSkEKK0NSTkpBTlNLSSBTVEVWQU4KK0NSTkpBTlNLSSBWTEFESU1JUgorQ1JOSkFOU0tJIFpPUkFOCitDUk5KQU5TS0kgWk9SQU4KK0NSTktPVknEhiBOSUtPTEEKK0NSTktPVknEhi1TQVZJxIYgTEpJTEpBTkEKK0NSTktPVknEhiBaTEFUQQorQ1JOT0JBUkFDIERVxaBBTgorQ1JOT0JBUkFDIEpPVkFOCitDUk5PQlJOSkEgTUlMQU4KK0NSTk9CUk5KQSBNSVJKQU5BCitDUk5PQlJOSkEgUEVUQVIKK0NSTk9HTEFWQUMgTUlIQUpMTworQ1JOT0dMQVZBQyBSQURPU0xBVgorQ1JOT0dPUsSMRVZJxIYgSkVMSUNBCitDUk5PR09SQUMgxJBPS08KK0NSTk9HT1JBQyBCT1JJxaBBCitDUk5PR09SQUMgQk9TSUxKS0EKK0NSTk9HT1JBQyBEUkFHQU4KK0NSTk9HT1JBQyBEUkFHT0xKVUIKK0NSTk9HT1JBQyBEVcWgQU4KK0NSTk9HT1JBQyBNSUxBTgorQ1JOT0dPUkFDIE1JTEtBCitDUk5PR09SQUMgTUlMT1NBVgorQ1JOT0dPUkFDIE1JUk9TTEFWCitDUk5PR09SQUMgUEFWTEUKK0NSTk9HT1JBQyBTTE9CT0RBTgorQ1JOT0dPUkFDIFNWRVRMQU5BCitDUk5PR09SQUMgVkVMSU1JUiBEUgorQ1JOT0dPUkFDIFpEUkFWS08KK0NSTk9HT1JBQyBaT1JJQ0EKK0NSTk9KQSBBTlRFCitDUk5PSkEgU0xBVklDQQorQ1JOT0pBxIxLSSBCT0dEQU4KK0NSTk9KQcSMS0kgREFOSUNBIERSCitDUk5PSkHEjEtJIERBTklMTworQ1JOT0pBxIxLSSBEUkFHQU4KK0NSTk9KQcSMS0kgRFJBR09NSVIKK0NSTk9KQcSMS0kgR09SREFOQQorQ1JOT0pBxIxLSSBKT1ZBTgorQ1JOT0pBxIxLSSBLQVRJQ0EKK0NSTk9KQcSMS0kgTUlMRU5BIERSCitDUk5PSkHEjEtJIE1JTE/FoAorQ1JOT0pBxIxLSSBNTEFERU4KK0NSTk9KQcSMS0kgT0JSQUQKK0NSTk9KQcSMS0kgT0JSQUQKK0NSTk9KQcSMS0kgUkFETUlMQQorQ1JOT0pBxIxLSSBTT0ZJSkEKK0NSTk9KQcSMS0kgVkxBRElNSVIKK0NSTk9KQcSMS0kgWk9SSUNBCitDUk5PS1JBSyBKT1ZBTgorQ1JOT0tSQUsgTUlMT8WgCitDUk5PS1JBSyBTVEVWQU4KK0NSTk9NQVJLT1ZJxIYgQk9HREFOCitDUk5PTUFSS09WScSGIERVxaBBTgorQ1JOT01BUktPVknEhiBEVcWgQU4KK0NSTk9NQVJLT1ZJxIYgR09KS08KK0NSTk9NQVJLT1ZJxIYgTFVLQQorQ1JOT01BUktPVknEhiBOSUtPTEEKK0NSTk9NQVJLT1ZJxIYgUEVUQVIKK0NSTk9NQVJLT1ZJxIYgUkFOS08KK0NSTk9NQVJLT1ZJxIYgU1RPSkFOCitDUk5PTUFSS09WScSGIFZFUklDQQorQ1JOT01VVCBNSUhBSkxPCitDUlZFTkkgxb1BUktPCitDUlZFTkkgQU5BCitDUlZFTkkgQklTRVJLQQorQ1JWRU5JIERSQUdBTgorQ1JWRU5JIE1BUktPCitDUlZFTkkgTUlMQU4KK0NSVkVOSSBNSUxFTktPCitDUlZFTkkgTUlPTUlSCitDUlZFTkkgU0lNQQorQ1JWRU5JIFNURVZBTgorQ1JWRU5JIFNURVZBTgorQ1JWRU5LTyBKQU5LTworQ1JWRU5LTyBNSUxBTgorQ1JWRU5LTyBSQURPTUlSCitDUlZFTktPViBCT1JJU0xBVgorQ1JWRU5LT1YgTUlMT1NBVkEKK0NSVkVOS09WIFBFVEFSCitDUlZFTktPVknEhiDEkE9SxJBFCitDUlZFTktPVknEhiDEkFVSxJBJQ0EKK0NSVkVOS09WScSGIFBFVEFSCitDUlZFTktPVknEhiBSQURFTktPCitDUlZFTktPVknEhiBTSU5JxaBBIERSCitDUlZFTktPVknEhiBWSVRPTUlSCitDVUNBSyBNSVJKQU5BCitDVUNBSyBSQUhJTQorQ1VDScSGIEFMRUtTQU5EQVIKK0NVQ0nEhiBCT1JJU0xBVgorQ1VDScSGIEdJTkEKK0NVQ0nEhiBKRUxLQQorQ1VDScSGIExKSUxKQU5BCitDVUNJxIYgU1RBTkEKK0NVQ0nEhiBTVEFOT0pMTworQ1VDScSGIFZFUkEKK0NVQ0nEhiBWRVNOQQorQ1VDScSGIFZMQURJTUlSCitDVUNPVknEhiBSQUZFVAorQ1VHTEkgSk9WQU4KK0NVS0nEhiBSQURBCitDVUtJxIYgUkFET0pJQ0EKK0NVS0nEhiBTVkVUT1pBUgorQ1VOSkFLIE1JTFVUSU4KK0NVUEHEhiBTVkVUT01JUiBESVBMIFBSQVZOSUsKK0NVUEFSScSGIFRPTUEKK0NVUkFLT1ZJxIYgTUlMSVZPSkUKK0NWRUpBTk9WIEpFTEVOQQorQ1ZFSkFOT1YgTkVCT0rFoEEKK0NWRUpBTk9WIFBSRURSQUcKK0NWRUpBTk9WIFZFTElCT1IKK0NWRUpBTk9WScSGIEtTRU5JSkEKK0NWRUpBTk9WScSGIExBWkFSCitDVkVKQU5PVknEhiBOQURBCitDVkVKQU5PVknEhiBOSUtPTEEKK0NWRUpBTk9WScSGIFNQT01FTktBCitDVkVKQU5PVknEhiBWSURPU0FWQQorQ1ZFSkFOT1ZJxIYgVk9KSVNMQVYKK0NWRUpBTk9WScSGIFpPUklDQQorQ1ZFSknEhiDEjEVET01JUgorQ1ZFSknEhiDFvUFSS08KK0NWRUpJxIYgxb1JVk9KSU4KK0NWRUpJxIYgxJBPUsSQRSBEUgorQ1ZFSknEhiDEkFVSxJBJTktBCitDVkVKScSGIEFMRUtTQU5EQVIgRFIKK0NWRUpJxIYgQUxFS1NBTkRBUgorQ1ZFSknEhiBBTEVLU0FOREFSCitDVkVKScSGIEJPxb1JREFSCitDVkVKScSGIEJPUklWT0oKK0NWRUpJxIYgRFJBR0FOCitDVkVKScSGIERSQUdPU0xBVgorQ1ZFSknEhiBEUkFHVVRJTgorQ1ZFSknEhiBJR05KQVQKK0NWRUpJxIYgSVZBTgorQ1ZFSknEhiBKRUxFTkEKK0NWRUpJxIYgS0FUSUNBCitDVkVKScSGIExBWkFSCitDVkVKScSGIE1JTEFOCitDVkVKScSGIE1JTEFOCitDVkVKScSGIE1JTElTQVYKK0NWRUpJxIYgTUlMT8WgCitDVkVKScSGIE1JT0RSQUcKK0NWRUpJxIYgTUlSSkFOQQorQ1ZFSknEhiBOQURFxb1EQQorQ1ZFSknEhiBORURFTEpLQQorQ1ZFSknEhiBOSUtPTEEgRElQTCBJTkcKK0NWRUpJxIYgTklLT0xBCitDVkVKScSGIE9MR0EKK0NWRUpJxIYgUEFWTEUKK0NWRUpJxIYgUkFET1NMQVYKK0NWRUpJxIYgUkFET1ZBTgorQ1ZFSknEhiBSVcW9SUNBCitDVkVKScSGIFNMQVZPTEpVQgorQ1ZFSknEhiBTVEVWQU4KK0NWRUpJxIYgU1RFVkFOCitDVkVKScSGIFZMQURBTgorQ1ZFSknEhiBaQUdPUktBCitDVkVKSU4gQk/FvUEKK0NWRUpJTiBCT0pBTkEKK0NWRUpJTiBEVcWgQU4gRElQTCBJTkcKK0NWRUpJTiBNQVJJSkEKK0NWRUpJTiBNSUxBTgorQ1ZFSklOIE1JTE/FoAorQ1ZFSklOIE1JUkpBTkEKK0NWRUpJTiBOT1ZBSworQ1ZFSklOIFNMT0JPREFOCitDVkVKSU4gVFJJVkEKK0NWRUtJxIYgTUlMRVRBCitDVkVLScSGIFZPSklOCitDVkVLScSGIFpMQVRJQ0EKK0NWRVJERUxKIEpBTktPCitDVkVSREVMSiBSVcW9QQorQ1ZFUk5KQUsgSkVORQorQ1ZFVEFOT1ZJxIYgQU5JVEEKK0NWRVRBTk9WScSGIERSQUdPU0xBVgorQ1ZFVEFOT1ZJxIYgSkVMRU5BCitDVkVUQU5PVknEhiBKRVJNSU5BIERSIExFS0FSCitDVkVUQU5PVknEhiBNQUdET0xOQQorQ1ZFVEFOT1ZJxIYgUkFESUNBCitDVkVUQU5PVknEhiBTVE9KQURJTgorQ1ZFVEFOT1ZJxIYgU1RPSkFOS0EKK0NWRVRBTk9WScSGIFZFTEpBCitDVkVUQU5PVknEhiBaT1JBTgorQ1ZFVEFOT1ZJxIYgWk9SQU4KK0NWRVRBTk9WScSGIFpPUkFOCitDVkVUQU5PVlNLSSBNQU5PSkxPCitDVkVUQU5PVlNLSSBNSUxFCitDVkVUScSMQU5JTiBMSlVCSUNBCitDVkVUScSMQU5JTiBNSUxLQQorQ1ZFVEnEjEFOSU4gVkVTTkEKK0NWRVRJxIxBTklOIFpPUkFOCitDVkVUScSGIEJPxaBLTworQ1ZFVEnEhiBEUkFHT01JUgorQ1ZFVEnEhiBMQVpBUgorQ1ZFVEnEhiBMQVpPCitDVkVUScSGIExKVUJJQ0EKK0NWRVRJxIYgTUFSSUpBCitDVkVUScSGIFBFVEFSCitDVkVUScSGIFNMQVZLTworQ1ZFVEnEhiBTVEFOS08KK0NWRVRJxIZBTklOIEJPxaBLTworQ1ZFVEnEhkFOSU4gQlJBTktPCitDVkVUScSGQU5JTiBEQU5FCitDVkVUScSGQU5JTiBEQU5JQ0EKK0NWRVRJxIZBTklOIERSQUdPTUlSCitDVkVUScSGQU5JTiBJTElKQQorQ1ZFVEnEhkFOSU4gSVJFTkEKK0NWRVRJxIZBTklOIE1JTE/FoAorQ1ZFVEnEhkFOSU4gTUlMT1JBRAorQ1ZFVEnEhkFOSU4gTUlST1NMQVYKK0NWRVRJxIZBTklOIFNORcW9QU5BCitDVkVUScSGQU5JTiBaT1JBTgorQ1ZFVElOScSGIE1BUktPCitDVkVUSU5JxIYgTUFUSUpBCitDVkVUSU5KQU5JTiBUT01JU0xBVgorQ1ZFVElOT1YgU0FWQQorQ1ZFVElOT1ZJxIYgQU5LQQorQ1ZFVElOT1ZJxIYgQlJBTkEKK0NWRVRJTk9WScSGIEJSQU5LTworQ1ZFVElOT1ZJxIYgRElNSVRSSUpFCitDVkVUSU5PVknEhiBJTElKQQorQ1ZFVElOT1ZJxIYgSVZBTktPCitDVkVUSU5PVknEhiBNSUxBTgorQ1ZFVElOT1ZJxIYgU0lNTworQ1ZFVElOT1ZJxIYgVkVSQQorQ1ZFVElOT1ZJxIYgWk9SQQorQ1ZFVEtPViBKT1ZBTgorQ1ZFVEtPViBNSUxBTiBESVBMIElORworQ1ZFVEtPViBSQURPSkUKK0NWRVRLT1ZJxIYgxIxFRE9NSVIKK0NWRVRLT1ZJxIYgxb1JVk9KSU4KK0NWRVRLT1ZJxIYgxJBPUsSQRQorQ1ZFVEtPVknEhiDEkE9SxJBFCitDVkVUS09WScSGIEFMRUtTQU5EQVIKK0NWRVRLT1ZJxIYgQUxFS1NBTkRBUgorQ1ZFVEtPVknEhiBBTEVLU0FOREFSCitDVkVUS09WScSGIEFOS0EKK0NWRVRLT1ZJxIYgQk9KQU5BCitDVkVUS09WScSGIEJPUkEKK0NWRVRLT1ZJxIYgQk9SSVNMQVYKK0NWRVRLT1ZJxIYgQk9SSVNMQVYKK0NWRVRLT1ZJxIYgQlJBTklTTEFWCitDVkVUS09WScSGIEJSQU5LTworQ1ZFVEtPVknEhiBCUkFOS08KK0NWRVRLT1ZJxIYgQlVESU1JUgorQ1ZFVEtPVknEhiBEQVJJTktBCitDVkVUS09WScSGIERFU0lNSVIKK0NWRVRLT1ZJxIYgRFJBR0FOCitDVkVUS09WScSGIERSQUdBTgorQ1ZFVEtPVknEhiBEUkFHQU4KK0NWRVRLT1ZJxIYgRFJBR0FOCitDVkVUS09WScSGIERSQUdJxaBBCitDVkVUS09WScSGIERSQUdPTEpVQgorQ1ZFVEtPVknEhiBEUkFHT01JUiBNUgorQ1ZFVEtPVknEhiBEUkFHT01JUgorQ1ZFVEtPVknEhiBEVcWgQU4KK0NWRVRLT1ZJxIYgRFXFoEFOCitDVkVUS09WScSGLUdMQURJxIYgU01JTEpBCitDVkVUS09WScSGIEdST1pEQQorQ1ZFVEtPVknEhiBJTElKQQorQ1ZFVEtPVknEhiBJVkFOS0EKK0NWRVRLT1ZJxIYgSkVMRU5BCitDVkVUS09WScSGIEpFTEVOQQorQ1ZFVEtPVknEhiBKRUxLQQorQ1ZFVEtPVknEhiBKT1ZBTgorQ1ZFVEtPVknEhiBKT1ZBTgorQ1ZFVEtPVknEhiBKT1ZBTgorQ1ZFVEtPVknEhiBMSVZJQQorQ1ZFVEtPVknEhiBMSklMSkFOQQorQ1ZFVEtPVknEhiBMSklMSkFOQQorQ1ZFVEtPVknEhiBNRUxBTklKQQorQ1ZFVEtPVknEhiBNSUxBTgorQ1ZFVEtPVknEhiBNSUxBTgorQ1ZFVEtPVknEhiBNSUxJQ0EKK0NWRVRLT1ZJxIYgTUlPRFJBRworQ1ZFVEtPVknEhiBNSU9EUkFHCitDVkVUS09WScSGIE1JT0RSQUcKK0NWRVRLT1ZJxIYgTUlSQQorQ1ZFVEtPVknEhiBNSVJKQU5BCitDVkVUS09WScSGIE1JUk9TTEFWIERSCitDVkVUS09WScSGIE1JUk9TTEFWCitDVkVUS09WScSGIE5JS09MQQorQ1ZFVEtPVknEhiBOSUtPTEEKK0NWRVRLT1ZJxIYgTklLT0xBCitDVkVUS09WScSGIFBFVEFSCitDVkVUS09WScSGIFJBRE1JTEEKK0NWRVRLT1ZJxIYgUkFET0pLTworQ1ZFVEtPVknEhiBSQURPU0xBVgorQ1ZFVEtPVknEhiBSQURPU0xBVgorQ1ZFVEtPVknEhiBSQURPVkFOCitDVkVUS09WScSGIFJBRFVMQQorQ1ZFVEtPVknEhiBSQVRPTUlSCitDVkVUS09WScSGIFJJU1RPCitDVkVUS09WScSGIFJVxb1JQ0EKK0NWRVRLT1ZJxIYgU0xBVk9MSlVCCitDVkVUS09WScSGIFNPS0EKK0NWRVRLT1ZJxIYgU1JCT0JSQU4KK0NWRVRLT1ZJxIYgU1RBTktPCitDVkVUS09WScSGIFNUQU5PSkUKK0NWRVRLT1ZJxIYgU1RBTk9KRQorQ1ZFVEtPVknEhiBTVkVUT1pBUgorQ1ZFVEtPVknEhiBUQVRKQU5BCitDVkVUS09WScSGIFRPTkkKK0NWRVRLT1ZJxIYgVkVMSU1JUgorQ1ZFVEtPVknEhiBWTEFESU1JUgorQ1ZFVEtPVknEhiBaT1JBCitDVkVUS09WU0tJIEJPUklTCitDVkVUS09WU0tJIERSQUdPTEpVQgorQ1ZFVEtPVlNLSSBOSUtPTEEKK0NWRVRLT1ZTS0kgVk9KTworQ1ZFVE9KRVZJxIYgTEpJTEpBTkEKK0NWRVRPSkVWScSGIExKSUxKQU5BCitDVkVUT0pFVknEhiBNSUxJU0FWCitDVkVUT0pFVknEhiBTTEFWS08KK0NWSUpBTiBNQVJJSkEKK0NWSUpBTiBNQVJLTworQ1ZJSkFOT1ZJxIYgQU7EkEEKK0NWSUpBTk9WScSGIEFOQQorQ1ZJSkFOT1ZJxIYgQU5UTworQ1ZJSkFOT1ZJxIYgQk/FoEtPCitDVklKQU5PVknEhiBCT1JPCitDVklKQU5PVknEhiBET0JSSUNBCitDVklKQU5PVknEhiBEUkFHQU4KK0NWSUpBTk9WScSGIERSQUdVVElOCitDVklKQU5PVknEhiBEVcWgQU5LQQorQ1ZJSkFOT1ZJxIYgSUxJSkEKK0NWSUpBTk9WScSGIE1JTEFOCitDVklKQU5PVknEhiBNSUxBTgorQ1ZJSkFOT1ZJxIYgTUlMQU4KK0NWSUpBTk9WScSGIE1JTEVWQQorQ1ZJSkFOT1ZJxIYgTUlST1NMQVYKK0NWSUpBTk9WScSGIE1PTUlSCitDVklKQU5PVknEhiBQRVRBUgorQ1ZJSkFOT1ZJxIYgUkFERQorQ1ZJSkFOT1ZJxIYgUkFOS08KK0NWSUpBTk9WScSGIFNBVkEKK0NWSUpBTk9WScSGIFNMQVZLTworQ1ZJSkFOT1ZJxIYgU05Fxb1BTkEKK0NWSUpBTk9WScSGIFZPSklTTEFWCitDVklKQU5PVknEhiBaTEFUQQorQ1ZJSkVUQU4gTUlSS08KK0NWSUpFVEnEjEFOSU4gSk9WTworQ1ZJSkVUScSGIElHT1IKK0NWSUpFVEnEhiBKT1ZPCitDVklKRVRJxIYgTUlMRQorQ1ZJSkVUScSGIE5BREEKK0NWSUpFVElOT1ZJxIYgUlXFvUEKK0NWSUpFVElOT1ZJxIYgUlXFvUlDQQorQ1ZJSkVUSU5PVknEhiBTSU5JxaBBCitDVklKScSGIMW9RUxKS08KK0NWSUpJxIYgRFJBR0FOCitDVklKScSGIEdPUkFOCitDVklKScSGIEpFTElTQVZBCitDVklKScSGIEpPVkFOS0EKK0NWSUpJxIYgTUlMRU5LTworQ1ZJSknEhiBNSU9EUkFHCitDVklKScSGIE1MQcSQQQorQ1ZJSknEhiBOSUtPTEEKK0NWSUpJxIYgUEFOVEUKK0NWSUpJxIYgUlXFvUlDQQorQ1ZJSknEhiBTVEVWQU4KK0NWSUpJTiBCUkFOS08KK0NWSUpPVknEhiBNSUxFTktPCitDVklKT1ZJxIYgTUlMSVZPSkUKK0NWSUpPVknEhiBORcSQRUxKS0EKK0NWSUpPVknEhiBSQURPU0FWCitDVklKT1ZJxIYgVk9KSU4KK0NWSUtJxIYgTUlIQUlMTworQ1ZJTkcgSk9TSVAKK0NWSVRBTk9WScSGIFNORcW9QU5BCitDVklUS08gUEVUQVIKK0NWSVRLT1ZBQyBNQVJLTworQ1ZKRVRBTiBPTEdBCitDVkpFVEnEhiBJTElKQQorQ1ZKRVRJxIZBTklOIMW9SVZLTworQ1ZKRVRJxIZBTklOIEdPSktPCitDVkpFVEnEhkFOSU4gU1RFVk8KK0NWSkVUS09WScSGIE1JT0RSQUcKK0NWSkVUS09WScSGIE5FQk9KxaBBCitDVkpFVE9KRVZJxIYgxIxFRE9NSVIKK0NWT1JPVknEhiBSQURPxaAKK0NWUktBTEogxJBVUk8KK0TFvUFCQVNBTiBEUkFHT0pFCitExb1BQknEhiBNSUxLQQorRMW9QUTFvUnEhiBWVUtPU0FWQQorRMW9QUZFUk9WU0tJIFJFxJBFUAorRMW9QUZJxIYgSEFNRElKQQorRMW9QUZPIE1BVElKQQorRMW9QUpBIE1BUklDQQorRMW9QUtJxIYgxIxFRE8KK0TFvUFLScSGIEJPxb1BTkEKK0TFvUFLScSGIExBWkEKK0TFvUFLT1ZJxIYgRFJBR0FOCitExb1BS1VMQSBFUsW9RUJFVAorRMW9QUtVTEEgRVLFvUVCRVQKK0TFvUFLVUxBIElWQU4KK0TFvUFLVUxBIE1BUklDQQorRMW9QUtVTEEgTkVERUxKS08KK0TFvUFLVUxBIFBFVEFSCitExb1BS1VMQSBSQURFCitExb1BS1VMQSBWSURPU0FWCitExb1BS1VMSU4gRFXFoEFOS0EKK0TFvUFLVUxJTiBQRVRBUgorRMW9QUtVTElOIFNURVZBTgorRMW9QUxJxIYgU1RPSkFOCitExb1BTUJBUlNLSSBKT1ZBTgorRMW9QU1CQVMgRFXFoEFOIERSIExFS0FSCitExb1BTUJBUyBNSUxFCitExb1BTUJBU09WScSGIE1JTEVOS08KK0TFvUFNQknEhiBCUkFOS08KK0TFvUFNQknEhiBNSUxPVkFOCitExb1BTUJJxIYgUkFET1ZBTgorRMW9QU1CScSGIFNMQVZLTworRMW9QU1CScSGIFNSRVRBCitExb1BTknEhiBTQVZBCitExb1BTknEhiBTVEFaQQorRMW9QVJJxIYgRE9CUklOS0EKK0TFvUFSScSGIFJBRE9NSVIKK0TFvUVMRVRPVknEhiBNSUxBRElOCitExb1FTEVUT1ZJxIYgTUlMQU4KK0TFvUVMRVRPVknEhiBNTEFERU4KK0TFvUVMRVRPVknEhiBSQURPSktBCitExb1FTEVUT1ZJxIYgU0xPQk9EQU4KK0TFvUVMRVRPVknEhiBUT01PCitExb1FTElMT1ZJxIYgSkFOQQorRMW9RVBJTkEgSk9WQU4KK0TFvUVWRUxFS0lESVMgTUFSSU5BCitExb1FVkVMRUtJRElTIFBBTlRBCitExb1FVkVSIE5FREVMSktPCitExb1FVkVSREFOT1ZJxIYgQU5JVEEKK0TFvUVWRVJEQU5PVknEhiBMQVpBUgorRMW9RVZFUkRBTk9WScSGIE5BU1RPCitExb1FVkVSREFOT1ZJxIYgVkVMSVpBUgorRMW9SURBIEtBVElDQQorRMW9SURBIEtBVElDQQorRMW9SURBIE1JTEFESU4KK0TFvUlEQSBNSUxPTUlSCitExb1JR1VSQcWgIE1JTEVOS08KK0TFvUlHVVJTS0kgQk9SSVZPSgorRMW9SUdVUlNLSSBCUkFOSU1JUgorRMW9SUdVUlNLSSBCUkFOS08KK0TFvUlHVVJTS0kgREFOSUxPCitExb1JR1VSU0tJIERVxaBLTworRMW9SUdVUlNLSSBMSklMSkFOQQorRMW9SUdVUlNLSSBMSklMSkFOQQorRMW9SUdVUlNLSSBNQVJJSkEKK0TFvUlHVVJTS0kgTUFSSUpBCitExb1JR1VSU0tJIE1JTEFOCitExb1JR1VSU0tJIE1JTEVOS08KK0TFvUlHVVJTS0kgUEVUQVIKK0TFvUlHVVJTS0kgUFJFRFJBRworRMW9SUtJxIYgTUlMQU4KK0TFvUlMSVRPViBBTEVLU0FOREFSCitExb1JTElUT1YgS0FUSUNBCitExb1JTElUT1YgU1RFVkFOCitExb1JTElUT1YgU1RFVkEKK0TFvUlMSVRPViBWRUxJTktBCitExb1JTFZJRMW9SUpFViBNSVRLTworRMW9SU4gTUlSS08KK0TFvUlOScSGIE1JUk9TTEFWIERSCitExb1JTknEhiBNSVJPU0xBVgorRMW9SU5PVknEhiBWRVNFTElOCitExb1JUknEhiBSVcW9SUNBCitExb1PRMW9TyBSSVNUTworRMW9T0RBTiBEUkFHQQorRMW9T0RBTiBNSVJKQU5BCitExb1PREFOIE5JS09MQQorRMW9T0RBTiBWRVJBCitExb1PR0FOT1ZJxIYgTUlMT1JBRAorRMW9T0dPVknEhiDFvUlWQU4KK0TFvU9HT1ZJxIYgTUlMVU4KK0TFvU9MRVYgQVNFTiBEUiBTVE9NQVRPTE9HCitExb1PTEVWIEFTRU4KK0TFvU9MRVYgQVNFTgorRMW9T0xFViBNSVRLTworRMW9T0xFViBQQU5ERQorRMW9T0xJxIYgR09SREFOQQorRMW9T0xJxIYgVE9NSVNMQVYKK0TFvU9NQkEgxb1JVktPCitExb1PTUJFVEEgS09TVEEKK0TFvU9NQkVUQSBNSUxPxaAKK0TFvU9NQkVUQSBOSUtPTEEKK0TFvU9NQkVUQSBTVkVUT1pBUgorRMW9T01CRVRBIFZMQURPCitExb1PTUJJxIYgRFXFoEFOCitExb1PTUJJxIYgTUlMSkEKK0TFvU9NQknEhiBTT0tBCitExb1PTkxFWiBQSVJPxaBLQQorRMW9T1BBTEnEhiBEUkFHQU4KK0TFvVVExb1BUiDEkFVSQQorRMW9VUTFvUFSIEpPQUtJTQorRMW9VUTFvUFSIFNMQVZLTworRMW9VURPVknEhiBTTUlMSktBCitExb1VRE9WScSGIFZBU08KK0TFvVVLTEVWU0tJIFNBxaBBCitExb1VS0xKRVYgRFJBR0FOCitExb1VS0xKRVYgU1RPSkFOCitExb1VTknEhiDFvUlWT1JBRAorRMW9VU5JxIYgTUlMSVZPSkUKK0TFvVVOScSGIE1JUkpBTkEKK0TFvVVOScSGIFJBRE9NSVIKK0TFvVVOSkEgQU1BTElKQQorRMW9VU5KQSBFVkdFTklKRQorRMW9VU5KQSBHT1JEQU5BCitExb1VTkpBIElSRU5BCitExb1VTkpBIElWQU4KK0TFvVVOSkEgSkFLSU0KK0TFvVVOSkEgSkFOS08KK0TFvVVOSkEgSkVMRU5BCitExb1VTkpBIExKVUJPTUlSCitExb1VTkpBIE1JUk9OCitExb1VTkpBIFZMQURJTUlSCitExb1VTkpBIFpWT05JTUlSCitExb1VVkVSIFZFU0VMSU5LQQorRMW9VVZFUiBWT0pJU0xBVgorRMW9VVZFUk9WScSGIElWQU5LQQorREHEjEVWScSGIE1JTEFOCitEQcSMRVZJxIYgTU9NSVIKK0RBxIxJxIYgRFXFoEFOCitEQcSMScSGIEtSSVNUSU5BCitEQcSMScSGIExKVUJPTUlSCitEQcSMScSGIE1JxaBBCitEQcSMScSGIE1JTEFOIFBST0ZFU09SCitEQcSMScSGIE1JTEFOCitEQcSMScSGIE1JTElDQQorREHEjEnEhiBOQURFxb1EQQorREHEjEnEhiBSQURNSUxBCitEQcSMScSGIFZFTElOS0EKK0RBxIxJxIYgVkxBU1RJTUlSCitEQcWgScSGLUdVTEQgTEpJTEpBTkEKK0RBxaBJxIYgTUFSSUpBCitEQcWgScSGIE1JTEVOS08KK0RBxaBJxIYgUkFEVUxFCitEQcWgScSGIFZMQURPCitEQcW9xJBVIE5JU1RPUgorREFCQU5PVknEhiBEQU5JQ0EKK0RBQkFOT1ZJxIYgVkFTSUxJSkUKK0RBQkVSRVIgQU5UT05JSkEKK0RBQkVUScSGIFJBRElTQVYKK0RBQkVUScSGIFJBRE9NSVIKK0RBQknEhiDEjEVET01JUiBESVBMIE9FQworREFCScSGIMSQT1LEkEUKK0RBQknEhiBBTEVLU0FOREFSCitEQUJJxIYgQk9SS08KK0RBQknEhiBHT1NQQVZBCitEQUJJxIYgSk9WQU4KK0RBQknEhiBKT1ZBTgorREFCScSGIE1BUklKQQorREFCScSGIE1BUktPCitEQUJJxIYgTUlMQU4KK0RBQknEhiBNSUxPxaAKK0RBQknEhiBNSUxPUkFECitEQUJJxIYgTUlMVVRJTgorREFCScSGIE1JT0RSQUcKK0RBQknEhiBORURFTEpLTworREFCScSGIE5FTkFECitEQUJJxIYgTkVOQUQKK0RBQknEhiBORU5BRAorREFCScSGIFJBRE9NSVIKK0RBQknEhiBTTEFWS08KK0RBQknEhiBTVEVWQU4KK0RBQknEhiBTVkVUQQorREFCScSGIFZPSklTTEFWCitEQUJJTiDEkE9SxJBFCitEQUJPVknEhiBCT0dEQU4KK0RBQk9WScSGIEJSQU5LTworREFDSU4gxb1FTEpLTworREFEQUkgxJBVTEEKK0RBREFJIEJBUkJBUkEKK0RBREFJIExBRElTTEFWCitEQURBSSBMQURJU0xBVgorREFEQUkgTEFTTE8KK0RBREFJIFNURVZBTgorREFEScSGIEJSQU5JU0xBVgorREFEScSGIExKVUJJQ0EKK0RBScSGIExVS0EKK0RBScSGIE1JTEFOCitEQUrEjCBNSUhBSkxPCitEQUrEjCBOQURBCitEQUrEjCBSVUJFTgorREFKxIwgWk9SSUNBCitEQUpJxIYgQlJBTktPCitEQUpJxIYgRFJBR0lDQQorREFKScSGIERVxaBBTgorREFKScSGIExKSUxKQU5BCitEQUpJxIYgVkVMSU1JUgorREFKS08gVkxBRElNSVIKK0RBSktPIFZMQURJTUlSCitEQUpPVknEhiBaT1JBCitEQUtJxIYgxJBPUsSQRQorREFLScSGIEFOVEUKK0RBS0nEhiBCT0pBTkEKK0RBS0nEhiBCT1JJUworREFLScSGIEJPUktBCitEQUtJxIYgQlJBTktBCitEQUtJxIYgREFORQorREFLScSGIERBTklMTworREFLScSGIERSQUdPCitEQUtJxIYgRFJBR08KK0RBS0nEhiBEVcWgQU5LQQorREFLScSGIEdPSktPCitEQUtJxIYgSUxJSkEKK0RBS0nEhiBKRUxFTkEKK0RBS0nEhiBLU0VOSUpBCitEQUtJxIYgTUlMQU4KK0RBS0nEhiBNSUxPSkUKK0RBS0nEhiBNSUxPTUlSCitEQUtJxIYgTUlUQVIKK0RBS0nEhiBORUJPSsWgQQorREFLScSGIE5FREVMSktPCitEQUtJxIYgTkVERUxKS08KK0RBS0nEhiBOSUtPTEEKK0RBS0nEhiBOSUtPTEEKK0RBS0nEhiBQQVZMRQorREFLScSGIFBFVEFSCitEQUtJxIYgUkFKS08KK0RBS0nEhiBSQU5LTworREFLScSGIFJBVEtPCitEQUtJxIYgUkVMSkEKK0RBS0nEhiBTTEFWSUNBCitEQUtJxIYgU0xBVktPCitEQUtJxIYgU0xPQk9EQU4KK0RBS0nEhiBTUkVURU4KK0RBS0nEhiBTVkVUT1pBUgorREFLScSGIFZMQURJTUlSIERSCitEQUtJxIYgVkxBRElNSVIgRFIKK0RBS0nEhiBWTEFESU1JUgorREFLScSGIFZMQURJTUlSCitEQUtJxIYgVkxBRE8KK0RBS0nEhiBaT1JBTgorREFLT1ZJxIYgxJBPS08KK0RBS09WScSGIEJSQU5LTworREFLT1ZJxIYgVkVTRUxJTgorREFLT1ZJxIYgWk9SQU4KK0RBS1NFUiBKT1ZBTgorREFLU0VSIFNURVZBTgorREFMxIxFS09WScSGIElMSUpBCitEQUxJUE9WIEJVRElNSVIKK0RBTElQT1ZJxIYgQUJEVUwKK0RBTEpBQyBMSlVCSUNBCitEQUxKRVYgTEpJTEpBTkEKK0RBTEpFViBNSUxBTgorREFMTUFDSUpBIEpBRFJBTktBCitEQUxNQUNJSkEgTUlSS08KK0RBTE/FoCBNQVJJSkEKK0RBTcWgScSGIEpPU0lGCitEQU1KQU4gSkVMSVNBVkVUQQorREFNSkFOIEpPTgorREFNSkFOQUMgUkFETUlMQQorREFNSkFOQUMgUkFET1ZBTgorREFNSkFOQUMgU1RPSkFOS0EKK0RBTUpBTknEhiBaT1JJQ0EKK0RBTUpBTk9TS0EgU0xBVktBCitEQU1KQU5PViDFvUlLQQorREFNSkFOT1YgxJBPUsSQRQorREFNSkFOT1YgQklMSkFOQQorREFNSkFOT1YgQlJBTktBCitEQU1KQU5PViBDVkVUS08KK0RBTUpBTk9WIERJTUlUUklKRQorREFNSkFOT1YgRFJBR09NSVIKK0RBTUpBTk9WIElEQQorREFNSkFOT1YgSk9SREFOS0EKK0RBTUpBTk9WIEpPVkFOCitEQU1KQU5PViBLQVRJQ0EKK0RBTUpBTk9WIExBWkEKK0RBTUpBTk9WIE1JTEVOS08KK0RBTUpBTk9WIE1JTEVOS08KK0RBTUpBTk9WIFBBVkxFCitEQU1KQU5PViBTT0ZJSkEKK0RBTUpBTk9WIFNUQU5LTworREFNSkFOT1YgU1RFVkFOCitEQU1KQU5PVknEhiDEkE9SxJBFCitEQU1KQU5PVknEhiBBTEVLU0FOREFSCitEQU1KQU5PVknEhiBBUlNFTklKRQorREFNSkFOT1ZJxIYgQk/FoEtPCitEQU1KQU5PVknEhiBCT1JJU0xBVgorREFNSkFOT1ZJxIYgREFSSU5LQQorREFNSkFOT1ZJxIYgRFJBR0lDQQorREFNSkFOT1ZJxIYgRFJBR09TTEFWCitEQU1KQU5PVknEhiBEUkFHTworREFNSkFOT1ZJxIYgRFJBR1VUSU4KK0RBTUpBTk9WScSGIERVxaBBTgorREFNSkFOT1ZJxIYgRFXFoEFOCitEQU1KQU5PVknEhiBEVcWgSUNBCitEQU1KQU5PVknEhiBEVcWgS08KK0RBTUpBTk9WScSGIEVNSUwKK0RBTUpBTk9WScSGIEdPUkRBTkEKK0RBTUpBTk9WScSGIEpPVkFOCitEQU1KQU5PVknEhiBKT1ZBTgorREFNSkFOT1ZJxIYgSk9WTworREFNSkFOT1ZJxIYgTEpJTEpBTkEKK0RBTUpBTk9WScSGIExKVUJJxaBBCitEQU1KQU5PVknEhiBMSlVCSUNBCitEQU1KQU5PVknEhiBNQVJJSkEKK0RBTUpBTk9WScSGIE1JTEFOCitEQU1KQU5PVknEhiBNSUxBTgorREFNSkFOT1ZJxIYtTUlMRU5LT1ZJxIYgSkVMRU5BCitEQU1KQU5PVknEhiBNSU9EUkFHCitEQU1KQU5PVknEhiBOT1ZPCitEQU1KQU5PVknEhiBPQlJBRAorREFNSkFOT1ZJxIYgUEVUQVIKK0RBTUpBTk9WScSGIFJBREUKK0RBTUpBTk9WScSGIFJBRE9WQU4KK0RBTUpBTk9WScSGIFJBTktPCitEQU1KQU5PVknEhiBSQVRLTworREFNSkFOT1ZJxIYgU0lNTworREFNSkFOT1ZJxIYgU0lOScWgQQorREFNSkFOT1ZJxIYgU0xBVktPCitEQU1KQU5PVknEhiBTTE9CT0RBTktBCitEQU1KQU5PVknEhiBTTkXFvUFOQQorREFNSkFOT1ZJxIYgU1RBTklTTEFWCitEQU1KQU5PVknEhiBTVEVWQU4KK0RBTUpBTk9WScSGIFNURVZBTgorREFNSkFOT1ZJxIYgU1RFVk8KK0RBTUpBTk9WScSGIFRFUkVaQQorREFNSkFOT1ZJxIYgVE9ET1IKK0RBTUpBTk9WScSGIFRPTUlTTEFWCitEQU1KQU5PVknEhiBWQVNJTElKRSBEUgorREFNSkFOT1ZJxIYgVkFTSUxJSkUKK0RBTUpBTk9WScSGIFZBU0lMSUpFCitEQU1KQU5PVknEhiBWT0pJU0xBVgorREFNSkFOT1ZJxIYgWk9SQU4KK0RBTUpBTk9WU0tJIMW9SVZLTworREFNSkFOT1ZTS0kgQUxFS1NBTkRBUgorREFNSkFOT1ZTS0kgQUxFS1NBTkRBUgorREFNSkFOT1ZTS0kgTUlMQU4KK0RBTUpBTk9WU0tJIFJVxb1JQ0EKK0RBTUpBTk9WU0tJIFZMQURJTUlSCitEQU1MSkFOT1ZJxIYgxb1JVk9UQQorREFNTkpBTk9WScSGIEFMRUtTQU5EQVIKK0RBTU5KQU5PVknEhiBLUklTVElOQQorREFNTkpBTk9WScSGIExBWkFSCitEQU1OSkFOT1ZJxIYgTEpJTEpBTkEKK0RBTU5KQU5PVknEhiBTTEFWT0xKVUIKK0RBTU5KQU5PVknEhiBaT1JBTgorREFNTkpBTk9WScSGIFpPUkFOCitEQU4gTUlSQQorREFOxIwgVElCT1IKK0RBTsSMRVRPVknEhiBaT1JJQ0EKK0RBTsSMTyDEjEFCQQorREFOxIxPIEpFTkUKK0RBTkFJTE9WIEFDQQorREFOQUlMT1YgVEVWQQorREFOR1VCScSGIMW9QVJLTworREFOR1VCScSGIFJBRElWT0pFIERJUEwgSU5HCitEQU5HVUJJxIYgUkFUS08KK0RBTkdVWk9WIERVxaBBTgorREFOSSBHQcWgUEFSCitEQU5JIExBU0xPCitEQU5JxIxJxIYgQk9STworREFOScSMScSGIEJSQU5JU0xBVgorREFOScSMScSGIERSQUdPTEpVQgorREFOScSMScSGIERSQUdPCitEQU5JxIxJxIYgSVJFTkEKK0RBTknEjEnEhiBTQVZJQ0EKK0RBTknEjEnEhiBaRFJBVktPCitEQU5JxaAgRVZBCitEQU5JxaAgScWgVFZBTgorREFOScWgIE1BUklKQQorREFOScSGIFBFVEFSIERJUEwgSU5HCitEQU5JxIYgVkVTTkEKK0RBTknEhiBaT1JJQ0EKK0RBTklFTCBBTkRSSUpBCitEQU5JRUwgQVJBTktBCitEQU5JRUwgSElMREEKK0RBTklFTCBKT1NJUAorREFOSUVMIFBFVEFSCitEQU5JRUwgUElST8WgS0EKK0RBTklFTCBSVcW9QQorREFOSUtPViBNSVJPTEpVQgorREFOSUtPViBWQUxFUklKQQorREFOSUxPViBBTklDQQorREFOSUxPViBCT1NJTEpLQQorREFOSUxPViBEVcWgQU4KK0RBTklMT1YgTUlMQU4KK0RBTklMT1YgUkFET01JUgorREFOSUxPViBTTUlMSkFOQQorREFOSUxPViBTVE9KQU4KK0RBTklMT1YgVkFTQQorREFOSUxPVkFDIERJTUlUUklKRQorREFOSUxPVkFDIFBFVEFSCitEQU5JTE9WQUMgUlXFvUEKK0RBTklMT1ZBQyBWSVRPTUlSCitEQU5JTE9WScSGIMW9SVZBTgorREFOSUxPVknEhiDFvUlWT1JBRAorREFOSUxPVknEhiBBTEVLU0FOREFSCitEQU5JTE9WScSGIEJSQU5LTworREFOSUxPVknEhiBKT1ZBTgorREFOSUxPVknEhiBLQVRBUklOQQorREFOSUxPVknEhiBMSklMSkFOQQorREFOSUxPVknEhiBNQVJLTworREFOSUxPVknEhiBNSUxBTgorREFOSUxPVknEhiBNSVJLTyBEUgorREFOSUxPVknEhiBOSUtPTEEKK0RBTklMT1ZJxIYgTklLT0xBCitEQU5JTE9WScSGIFBFUlNBCitEQU5JTE9WScSGIFJBREEKK0RBTklMT1ZJxIYgUkFETUlMQQorREFOSUxPVknEhiBTVEFOSVNMQVZBCitEQU5JTE9WScSGIFNURVZBTgorREFOSUxPVknEhiBUSUhPTUlSCitEQU5JTE9WScSGLVZFU0VMSU5PViBWRVJBCitEQU5JTE9WScSGIFpEUkFWS08KK0RBTkpJIEZFUkVOQworREFOSkkgR0VaQQorREFOSkkgS0FST0xKCitEQU5KSSBMQVNMTworREFOSkkgTUHEhkHFoAorREFOS0EgTUFSS08KK0RBTktBIFpMQVRBCitEQU5LTyBKQU5LTworREFOS08gSkFST1NMQVYKK0RBTktPVknEhiBCT0dPTEpVQgorREFOS09WScSGIFNMQVZJxaBBCitEQU5LT1ZJxIYgU0xBVktBCitEQU5LVUMgRFJBR0FOCitEQU5LVUMgTUlMSUNBCitEQU5LVUMgVk9KSVNMQVYKK0RBTktVQyBWT0pJU0xBVgorREFOT0pFVknEhiBTVEVWQU4KK0RBUMSMRVZJxIYgRFXFoEFOCitEQVDEjEVWScSGIEpPVkFOCitEQVDEjEVWScSGIExKVUJJQ0EKK0RBUMSMRVZJxIYgUEFWTEUKK0RBUMSMRVZJxIYgUkFKS08KK0RBUMSMRVZJxIYgUlXFvUlDQQorREFQxIxFVknEhiBWRVJJQ0EKK0RBUkHFoCDFvUVMSktPCitEQVJBxb0gSlVMSUpBTkEKK0RBUkHFvSBTVEVWQU4KK0RBUkFCQU5KIEpPxb1FRgorREFSQUJPxaAgSlVMS0EKK0RBUkFCT8WgIExBRElTTEFWCitEQVJBQk/FoCBNQVJJSkEKK0RBUkFCT8WgIFBFVEFSCitEQVJBQlVDIE5FREVMSktPCitEQVJBREnEhiBTVEVWQU4KK0RBUk1BTk9WScSGIE1JTEFOCitEQVJNQU5PVknEhiBTVEFOS08KK0RBUk1BTk9WScSGIFRPTUlTTEFWCitEQVJPSkVWScSGIExBWkFSCitEQVJWScWgIFpPUklDQQorREFTT1ZJxIYgU1RPSkFOS0EKK0RBU09WScSGIFpMQVRBCitEQVVUT1ZBLVJVxaBFVkxKQU4gVkVMSU5LQSBEUgorREFVVE9WScSGIMSQT1LEkEUKK0RBVVRPVknEhiBCT0dEQU4KK0RBVVRPVknEhiBExb1FTUFMCitEQVVUT1ZJxIYgRFJBR0FOCitEQVVUT1ZJxIYgTUlMQU4KK0RBVVRPVknEhiBNSUxBTgorREFWScSGIEJSQU5JU0xBVgorREFWSUQgQU5EUkHFoAorREFWSUQgSUxPTkEKK0RBVklET1YgxJBVUsSQSU5BCitEQVZJRE9WIEJPR0RBTgorREFWSURPViBCVURJTUtBCitEQVZJRE9WIEpFTElDQQorREFWSURPViBKT1ZBTgorREFWSURPViBMSlVCT01JUgorREFWSURPViBNSUxBTgorREFWSURPViBNSUxBTgorREFWSURPViBNSUxJxIYKK0RBVklET1YgTUlMSVZPSgorREFWSURPViBNSUxLQQorREFWSURPViBORUdPVkFOCitEQVZJRE9WIFJBRE9TTEFWCitEQVZJRE9WIFJBRE9WQU4KK0RBVklET1YgU0xBVktPCitEQVZJRE9WIFNUT0pBTgorREFWSURPViBUSUhPTUlSCitEQVZJRE9WQUMgxJBPUsSQRQorREFWSURPVkFDIEJPxaBLTworREFWSURPVkFDIERBTklMTworREFWSURPVkFDIERVxaBBTktBCitEQVZJRE9WQUMgRUxWSVJBCitEQVZJRE9WQUMgR0FWUkEKK0RBVklET1ZBQyBHT0pLTworREFWSURPVkFDIExKVUJJQ0EKK0RBVklET1ZBQyBNSVJPU0xBVgorREFWSURPVkFDIFJBRElWT0oKK0RBVklET1ZBQyBSQURJVk9KCitEQVZJRE9WQUMgUkFESVZPSgorREFWSURPVkFDIFJBRElWT0oKK0RBVklET1ZBQyBSQURNSUxBCitEQVZJRE9WQUMgU1RFVkFOCitEQVZJRE9WQUMgVE9ET1IKK0RBVklET1ZBQyBWRVJJQ0EKK0RBVklET1ZBQyBWRVNFTElOS0EKK0RBVklET1ZBQyBaRFJBVktPCitEQVZJRE9WScSGIMSMQVNMQVYKK0RBVklET1ZJxIYgREFWT1IKK0RBVklET1ZJxIYgRFJBR0FOCitEQVZJRE9WScSGIERSQUdJQ0EKK0RBVklET1ZJxIYgRFXFoEFOS0EKK0RBVklET1ZJxIYgRFXFoEtPCitEQVZJRE9WScSGIEdPUkFOCitEQVZJRE9WScSGIEpPVkFOCitEQVZJRE9WScSGIEpPVk8KK0RBVklET1ZJxIYgTEpJTEpBTkEKK0RBVklET1ZJxIYgTUFSSUpBCitEQVZJRE9WScSGIE1BUklKQQorREFWSURPVknEhiBNQVJKQU4KK0RBVklET1ZJxIYgTUlIQUlMTworREFWSURPVknEhiBNSUxBTgorREFWSURPVknEhiBNSUxBTgorREFWSURPVknEhiBNSUxBTgorREFWSURPVknEhiBNSUxBTgorREFWSURPVknEhiBNSUxBTgorREFWSURPVknEhiBNSUxBTgorREFWSURPVknEhiBNSUxBCitEQVZJRE9WScSGIE1JTE/FoAorREFWSURPVknEhiBNSUxPxaAKK0RBVklET1ZJxIYgTUlMT1ZBTgorREFWSURPVknEhiBNSUxVVElOCitEQVZJRE9WScSGIE1JUktPCitEQVZJRE9WScSGIE1JUk9TTEFWCitEQVZJRE9WScSGIE1JUk9TTEFWCitEQVZJRE9WScSGIE1MQURFTgorREFWSURPVknEhiBORUJPSsWgQQorREFWSURPVknEhiBORU5BRAorREFWSURPVknEhiBPTEdBCitEQVZJRE9WScSGIFBFUkEKK0RBVklET1ZJxIYgUEVUQVIKK0RBVklET1ZJxIYgUEVUQVIKK0RBVklET1ZJxIYgUEVUQVIKK0RBVklET1ZJxIYgUkFERSBEUgorREFWSURPVknEhiBSQURFCitEQVZJRE9WScSGIFJBRE9KRQorREFWSURPVknEhiBSQURPTUlSCitEQVZJRE9WScSGIFNBVkEKK0RBVklET1ZJxIYgU0xBVktPCitEQVZJRE9WScSGIFNSRVRBCitEQVZJRE9WScSGIFNUQU5LTworREFWSURPVknEhiBTVEVWQU4KK0RBVklET1ZJxIYgVVJPxaAKK0RBVklET1ZJxIYgVkFTQQorREFWSURPVknEhiBWSVRPTUlSCitEQVZJRE9WScSGIFZMQURJTUlSCitEQVZJRE9WScSGIFZPSklTTEFWCitEQVZJRE9WScSGIFpPUkEKK0RBVklET1ZTS0kgTUFSQQorREFWSU5JxIYgU1RPSkFOCitEQVZPR0nEhiBURU9ET1IKK0RBVk9TSVIgSVZBTgorREFWT1NJUiBNQUtTSU0KK0RBVk9TSVIgVEVPRE9SCitEQVZPU0lSIFZMQURJTUlSCitERS1WUklFUyBJVkFOS0EKK0RFxaBJIFpPTFRBTgorREXFoEnEhiBNQVJBCitERcWgTyDFvUlWQU5LQQorREXFvUUgSk9WQU4KK0RFxb1FIEtBUkxPCitERcW9RSBaREVOS0EKK0RFxb1FTEnEhiBKT1ZBTktBCitERcSQQU5TS0kgxJBPUsSQRQorREXEkEFOU0tJIERVxaBBTgorREXEkEFOU0tJIFBFVEFSCitERUFLIMW9QVJLTworREVBSyBBTkRSQcWgCitERUFLIEFORFJJSkFOQQorREVBSyBBTkRSSUpBCitERUFLIEFSQU5LQQorREVBSyBGRVJFTkMKK0RFQUsgSUxFxaAKK0RFQUsgTEFVUkEKK0RFQUsgTUFUSUxEQQorREVBTiBORVZFTktBCitERUFST1NLSSBGRUhJTQorREVBUk9WScSGIFNBTElNCitERUJFTEpBxIxLSSDFvUlWT0pJTgorREVCRUxKQcSMS0kgxJBPUsSQRQorREVCRUxKQcSMS0kgQUxFS1NBTkRBUgorREVCRUxKQcSMS0kgQUxFS1NBTkRBUgorREVCRUxKQcSMS0kgQk9TSUxKS0EKK0RFQkVMSkHEjEtJIERSQUdPTUlSCitERUJFTEpBxIxLSSBJVkFOCitERUJFTEpBxIxLSSBJVkFOCitERUJFTEpBxIxLSSBLQVRJQ0EKK0RFQkVMSkHEjEtJIExKVUJJQ0EKK0RFQkVMSkHEjEtJIE1JUkpBTkEKK0RFQkVMSkHEjEtJIE1JUk9TTEFWCitERUJFTEpBxIxLSSBOQURBCitERUJFTEpBxIxLSSBTUsSQQQorREVCRUxKQcSMS0kgU1ZFVE9aQVIKK0RFQkVMSkHEjEtJIFZFUkEKK0RFQkVMSkHEjEtJIFZVS09TQVZBCitERUJFTEpFVknEhiBWRUxJTUlSCitERUMgQU5JQ0EKK0RFREFKIERBVklECitERURBSiBMRUtPCitERURFSSBJTE9OQQorREVERUnEhiBFTElaQUJFVEEKK0RFREnEhiBCUkFOSVNMQVYKK0RFREnEhiBET0JST1NBVgorREVEScSGIERSQUdBTgorREVEScSGIERSQUdPU0xBVgorREVEScSGIEVMSVpBQkVUQQorREVEScSGIEdBVlJJTE8KK0RFREnEhiBKT1ZPCitERURJxIYgS09WSU5LQQorREVEScSGIE1BUkEKK0RFREnEhiBNQVJJSkEKK0RFREnEhiBNSUxJVk9KIERSIFBST0YKK0RFREnEhiBNSUxPCitERURJxIYgTUlPRFJBRworREVEScSGIE5FTUFOSkEKK0RFREnEhiBSQURJQ0EKK0RFREnEhiBTTEFWS0EKK0RFREnEhiBTVEVWQU4KK0RFREnEhi1UQVNJxIYgTUlSQQorREVESU4gREVKQU4KK0RFRElOIERJTUlUUklKRQorREVESU4gRElNSVRSSUpFCitERURJTiBWQVNJTElKRQorREVESU5TS0kgVElCT1IKK0RFRE9WScSGIE1JxaBPCitERUZSQU5HRVBBTiBGUkFOU09BCitERUdBIEFWUkFNCitERUpBTkFDIE1JTE9SQUQKK0RFSkFOT1NLSSBNSUxBTgorREVKQU5PViBCRVJJU0xBVgorREVKQU5PViBEQU5JTE8KK0RFSkFOT1YgSkVMRU5BCitERUpBTk9WIE1JVEEKK0RFSkFOT1YgU0lNQQorREVKQU5PVknEhiDFvUFSS08KK0RFSkFOT1ZJxIYgxb1BUktPCitERUpBTk9WScSGIMW9SVZBTgorREVKQU5PVknEhiDFvUlWT0pJTgorREVKQU5PVknEhiDEkE9SxJBFCitERUpBTk9WScSGIMSQVVLEkElOS0EKK0RFSkFOT1ZJxIYgxJBVUklDQQorREVKQU5PVknEhiBBTEVLU0FOREFSCitERUpBTk9WScSGIEFMRUtTQU5EUkEKK0RFSkFOT1ZJxIYgQU7EkEVMSUpBCitERUpBTk9WScSGIEFOS0lDQQorREVKQU5PVknEhiBCT1JJU0xBVkEKK0RFSkFOT1ZJxIYgREFOSUxPCitERUpBTk9WScSGIERJTUlUUklKRQorREVKQU5PVknEhiBET0JSSVZPSkUKK0RFSkFOT1ZJxIYgRE9CUklWT0pFCitERUpBTk9WScSGIERSQUdBTgorREVKQU5PVknEhiBEVcWgQU4KK0RFSkFOT1ZJxIYgRFXFoEFOCitERUpBTk9WScSGIERVxaBBTgorREVKQU5PVknEhiBJVkFOCitERUpBTk9WScSGIEpFTEVOQQorREVKQU5PVknEhiBKRUxJQ0EKK0RFSkFOT1ZJxIYgSk9SREFOCitERUpBTk9WScSGIEpPVkFOCitERUpBTk9WScSGIEtBVElDQQorREVKQU5PVknEhiBMQVpBUgorREVKQU5PVknEhiBMQVpBUgorREVKQU5PVknEhiBNSUxBTkEKK0RFSkFOT1ZJxIYgTUlMQU4KK0RFSkFOT1ZJxIYgTUlMQU4KK0RFSkFOT1ZJxIYgTUlMSUNBCitERUpBTk9WScSGIE1JTE/FoAorREVKQU5PVknEhiBNSUxPxaAKK0RFSkFOT1ZJxIYgTUlMT1JBRAorREVKQU5PVknEhiBNSUxPUkFECitERUpBTk9WScSGIE1JUkpBTkEKK0RFSkFOT1ZJxIYgTUlST1NMQVYKK0RFSkFOT1ZJxIYgUEVUQVIKK0RFSkFOT1ZJxIYgUEVUQVIKK0RFSkFOT1ZJxIYgUEVUQVIKK0RFSkFOT1ZJxIYgUkFEQQorREVKQU5PVknEhiBTVEVWQU4KK0RFSkFOT1ZJxIYgU1RFVkFOCitERUpBTk9WScSGIFZPSklTTEFWCitERUpBTk9WU0tJIE1MQURFTgorREVKQU5PVlNLSSBUT01JU0xBVgorREVKQU5PVlNLSSBWRVNFTElOCitERUtBTknEhiBCUkFOS08KK0RFS0FOScSGIEdMSUdPUklKRQorREVLQU5JxIYgTUlMT8WgCitERUtBTknEhiBNSUxPxaAKK0RFS0FOScSGIFZPSklTTEFWCitERUtBTknEhiBWT0pJU0xBVgorREVLQU5KIEFOVEFMCitERUtBTlNLSSBESU5BCitERUtBTlNLSSBQQVZMRQorREVLScSGIERBTkUKK0RFTEHEjCBGUkFOQ0nFoEtBCitERUxFVEnEhiBHT1JEQU5BCitERUxJxIYgxJBPUsSQRQorREVMScSGIEJJTEpBTkEKK0RFTEnEhiBCT8W9SURBUgorREVMScSGIEJPR0RBTgorREVMScSGIERBUklOS0EKK0RFTEnEhiBERVNJTUlSCitERUxJxIYgRFJBR0lDQQorREVMScSGIERSQUdJQ0EKK0RFTEnEhiBEUkFHVVRJTgorREVMScSGLUlCVUtJxIYgRVNBRAorREVMScSGIElMSUpBCitERUxJxIYgSkFOSkEKK0RFTEnEhiBKT1ZBTgorREVMScSGIE1BUkEKK0RFTEnEhiBNScSGTyBEUgorREVMScSGIE1JSEFKTE8KK0RFTEnEhiBNSUxBTkEKK0RFTEnEhiBNSUxBTgorREVMScSGIE1JTElDQQorREVMScSGIE1JTEtBCitERUxJxIYgTUlMT8WgCitERUxJxIYgTUlMT01JUgorREVMScSGIE1JTE9TQVZBCitERUxJxIYgTVVTVEFGQQorREVMScSGIFBBxaBLTworREVMScSGIFBFVEFSCitERUxJxIYgUkFETUlMQQorREVMScSGIFJBRE9KS0EgRFIKK0RFTEnEhiBSQURPTUlSCitERUxJxIYgUkFET1NBVgorREVMScSGLVNMQVZLT1ZJxIYgVkVSQQorREVMScSGIFNSRVRFTgorREVMScSGIFNUT0pBTgorREVMScSGIFNWRVRPWkFSCitERUxJxIYgVE9NSVNMQVYKK0RFTEnEhiBWQVNBCitERUxJxIYgVkVTRUxLTworREVMScSGIFZFU05BCitERUxJxIYgVkxBRE8KK0RFTEnEhiBWTEFETworREVMScSQT1LEkEVWScSGIFNURVZBTktBCitERUxJQkHFoEnEhiBERUpBTiBESVBMIElORworREVMSUJBxaBJxIYgTEpVQknFoEEKK0RFTElCQcWgScSGIExKVUJJQ0EKK0RFTElCQcWgScSGIE1BUklDQQorREVMSUJBxaBJxIYgTUlMSVZPSkUKK0RFTElCQcWgScSGIE1JTElWT0pFCitERUxJQkHFoEnEhiBNSUxPUkFECitERUxJQkHFoEnEhiBNSU9EUkFHCitERUxJQkHFoEnEhiBTQVZPCitERUxJQkHFoEnEhiBTT0ZJSkEKK0RFTElCQcWgScSGIFRPTUlTTEFWCitERUxJQkxBxIZBTklOIEpPVkFOCitERUxLT1ZJxIYgSk9WSUNBCitERUxPSUsgRFJBR1VUSU4KK0RFTE9OR0EgU1RBTktPCitERUxPViBPUkRBTsSMTworREVNxIxFxaBFTiBWQVNJTElKRQorREVNxaBBUiBHT1JEQU5BCitERU3FoEFSLVZFR0VSIE1BUklKQQorREVNQUsgTUlST1NMQVYKK0RFTUFOIEpBTktPCitERU1BTiBSQVNUSVNMQVYKK0RFTUJJQyBTTUlMSkFOQQorREVNRSBFTUEKK0RFTUUgRlJBTkNJxaBLQQorREVNRSBJUkVOQQorREVNRSBLTEFSQQorREVNRcWgSSBBUlBBRAorREVNRUxJUyBMSlVCSUNBCitERU1FTkRJIEJFTEEKK0RFTUVOREkgRE9ST1RFQQorREVNRVIgQkVMQQorREVNRVIgRlJBTkMKK0RFTUVURVIgRkVSRU5DCitERU1FVEVSIEZSQU5KQQorREVNRVRFUiBTVEVWQU4KK0RFTUnEhiDFvUlWT1JBRAorREVNSkVOIEJPUklTTEFWCitERU1LTy1SSUhURVIgSk9TSVAKK0RFTU9WU0tJIFNFVkRJSkEKK0RFTVVUIFJPWkFMSUpBCitERU7EjElLIFZMQURJU0xBVgorREVOREEgRFJBR0FOCitERU5EQSBNSUxJVk9KCitERU5EScSGIFNSRVRJTUlSCitERU5FxaBJIFZJTElNCitERU5HT1JJQ0lKQSBTVEpFUEFOCitERU5JxIYgxIxFRE9NSVIKK0RFTknEhiDFvUlWT1RBCitERU5JxIYgTEpVQknFoEEKK0RFTknEhiBNT03EjElMTyBESVBMIElORworREVOScSGIFJBRElDQQorREVOScSGIFNJTknFoEEKK0RFTknEhiBaVVpBTkEKK0RFTktPVknEhiBMSlVCT01JUgorREVOS09WU0tJIEpBTkUKK0RFUMSMRU5KU0tJIFNURUZBTgorREVSIEZSQU5KQQorREVSIEpPxb1FRgorREVSIExBSk/FoAorREVSIFNURVZBTgorREVSQUpJxIYgU1RPSkEKK0RFUkJBS09WIE1BUktPCitERVJCT0dPU0lKQU4gQlJBTktPCitERVJEScSGIFJVRE9MRgorREVSRUggU0lNRU9OCitERVJFVEEgTUlMQU4KK0RFUkVUQSBQRVRBUgorREVSRVRBIFNWRVRPWkFSCitERVJFVEnEhiBTVkVUT1pBUgorREVSSUtSQVZBIE1JQ0EKK0RFUk1FTsSQSUpFVlNLSSBESU1JVEFSCitERVJPTkpJxIYgVE9ET1IKK0RFUlXFoEVLIE1JTEpFTktPCitERVJWScWgRVZJxIYgSlVTVUYKK0RFUlZJxaBFVknEhiBORUTFvUlCCitERVJWScWgRVZJxIYgU0xBVktPCitERVJWScWgSSBNSVNJTgorREVSVknFoEkgUkFNQURBTgorREVSVknFoEkgUlXFoElUCitERVJWScSGIMWgRUZLQQorREVTTklDQSDEkE9SxJBFCitERVNOSUNBIMSQVVJPIE1SCitERVNOSUNBIEJPR0RBTgorREVTTklDQSBCUkFOS08KK0RFU05JQ0EgSkFOS08KK0RFU05JQ0EgTFVLQQorREVTTklDQSBOSUtPTEEKK0RFU05JQ0EgUkFET01JUiBESVBMIElORworREVTTklDQSBSQURPTUlSCitERVNOSUNBIFJFTEpBCitERVNOSUNBIFNNSUxKS0EKK0RFU05JQ0EgU1RBTkEKK0RFU1BFTknEhiBBTEVLU0FOREFSCitERVNQSSBKT1ZBCitERVNQSSBWRUxKS08KK0RFU1BJxIYgTEFaQVIKK0RFU1BJxIYgTUFSS08KK0RFU1BJxIYgTUlSSkFOQQorREVTUEnEhiBTUkVURU4KK0RFU1BJxIYgWk9SQU4KK0RFU1BPVCBEVcWgQU4KK0RFU1BPVCBNSUxBTgorREVTUE9UIE1JTElDQQorREVTUE9UIE1JUkpBTkEKK0RFU1BPVCBOQURBCitERVNQT1QgTkVOQUQKK0RFU1BPVCBTTE9CT0RBTgorREVTUE9UT1YgQUxFS1NBTkRBUgorREVTUE9UT1YgRE9CUklMQQorREVTUE9UT1YgRVZET0tJSkEKK0RFU1BPVE9WIElMSUpBCitERVNQT1RPViBKT0NBCitERVNQT1RPViBMSlVCSU5LQQorREVTUE9UT1YgTUlMQU4KK0RFU1BPVE9WIE1JTE9WQU4KK0RFU1BPVE9WIFJBRE1JTEEKK0RFU1BPVE9WIFJVxb1JQ0EKK0RFU1BPVE9WIFZJTE1BCitERVNQT1RPViBWSVRPTUlSS0EKK0RFU1BPVE9WIFZPSklTTEFWCitERVNQT1RPViBaT1JBTgorREVTUE9UT1ZJxIYgQklMSkFOQQorREVTUE9UT1ZJxIYgRFJBR1VUSU4KK0RFU1BPVE9WScSGIExKSUxKQU5BCitERVNQT1RPVknEhiBQQU5URUxJSkEKK0RFU1BPVE9WScSGIFJBRElTTEFWCitERVNQT1RPVknEhiBSQURJU0xBVgorREVTUE9UT1ZJxIYgUkFESVZPSkUKK0RFU1BPVE9WScSGIFJBRElWT0pFCitERVNQT1RPVknEhiBSQURNSUxBCitERVNQT1RPVknEhiBSQVRLTworREVTUE9UT1ZJxIYgU0lNS0EKK0RFU1BPVE9WScSGIFNUQU5LTworREVTUE9UT1ZJxIYgVkFTTworREVTUE9UT1ZJxIYgVk9KSVNMQVYKK0RFU1BPVE9WU0tJIERVxaBBTgorREVUQVJJIE1BUklKQQorREVURUxJTiDEkFVSQQorREVURUxJTiBKT1NJUAorREVURUxJTiBOQURBCitERVVSQSBEVcWgQU4gRElQTCBQUkFWTklLCitERVVSQSBSQUpLTworREVVUkEgVkVSQQorREVVUknEhiBSQURNSUxBCitERVZBSSDFoEFORE9SCitERVZBSSBJTVJFCitERVZBSSBMQUpPxaAKK0RFVkFJIFNBTkpBCitERVZBSSBaT1JJQ0EKK0RFVkFKQSBOQURBCitERVZBSkEgT01FUiBEUgorREVWQUxEIEVURUxLQQorREVWQUxEIElWQU4KK0RFVkFMRCBKT0hBTgorREVWRcSMRVJJIEtSSVNUSU5BCitERVZFxIxFUlNLSSBBVlJBTQorREVWRcSMRVJTS0kgREFOSUNBCitERVZFxIxFUlNLSSBWQVNJTElKRSBEUgorREVWRURBTiDEkE9SxJBFCitERVZFREFOIEJPR0RBTgorREVWRURBTiBEUkFHT0pFCitERVZFREFOIE1BUkEKK0RFVkVEQU4gTUlMT1ZBTgorREVWRURBTiBNSVJLTworREVWRVRBSyBaT1JBCitERVZJxIYtxIxPQkFOS1NJIE1JTEpFTktBCitERVZJxIYgxb1JVkFOCitERVZJxIYgxJBPS0EKK0RFVknEhiDEkE9SxJBFCitERVZJxIYgQUxFS1NBTkRBUgorREVWScSGIEFOS0lDQQorREVWScSGIEJJTEpBTkEKK0RFVknEhiBCUkFOSVNMQVZBCitERVZJxIYgQlJBTktBCitERVZJxIYgQ1ZJSkVUQQorREVWScSGIERBTklDQQorREVWScSGIERBTklMS0EKK0RFVknEhiBET0JST1NBVgorREVWScSGIERSQUdPTEpVQgorREVWScSGIERSQUdPTUlSCitERVZJxIYgRFJBR08KK0RFVknEhiBEVcWgQU4KK0RFVknEhiBFVklDQQorREVWScSGIEdPUkFOCitERVZJxIYgR1JPWkRBCitERVZJxIYgSUdOSkFUCitERVZJxIYgSUxJSkEKK0RFVknEhiBKT1ZBTiBESVBMIElORworREVWScSGIEpPVkFOS0EgRFIKK0RFVknEhiBKT1ZBTgorREVWScSGIEtBVElDQQorREVWScSGIE1JTEFOCitERVZJxIYgTUlMQU4KK0RFVknEhiBNSUxFTktPCitERVZJxIYgTUlMRVRBCitERVZJxIYgTUlMT8WgCitERVZJxIYgTUlPRFJBRworREVWScSGIE1JUkEKK0RFVknEhiBNTEFERU4KK0RFVknEhiBORUJPSsWgQQorREVWScSGIE5FTkFECitERVZJxIYgTk9WS0EKK0RFVknEhiBQRVRBUgorREVWScSGIFJBRE9TTEFWCitERVZJxIYgU0lNQQorREVWScSGIFNMQVZLTworREVWScSGIFNMT0JPREFOCitERVZJxIYgVEFUSkFOQQorREVWScSGIFRPTUEKK0RFVknEhiBWRUxJTktBCitERVZJxIYgVkxBREEKK0RFVknEhiBWT0pJU0xBViBESVBMIElORworREVWScSGIFpBR09SS0EKK0RFVlJOSkEgQlJBTklTTEFWCitERVZSTkpBIERSQUdJQ0EKK0RFVlJOSkEgTEpVQklDQQorREVWUk5KQS1NSUhBSkxPVknEhiBMSklMSkFOQQorREVWUk5KQSBNSU9EUkFHCitERVZSTkpBIFNQQVNPSkUKK0RFVlXFoEnEhiBNSUxBTgorRElDS09WIMSQT1LEkEUKK0RJQ0tPViBBTEVLU0FORFJBCitESUNLT1YgRFJBR0FOCitESUNLT1YgRFJBR0FOCitESUNLT1YgRFXFoEtPCitESUNLT1YgSVZBTgorRElDS09WIEtPU1RBCitESUNLT1YgTUlSSkFOQQorRElDS09WIE5JS09MQQorRElDS09WIFNURVZBTgorRElDS09WIFZFU0VMSU4KK0RJQ0tPViBWRVNFTElOCitESUNLT1YgWk9SS0EKK0RJQ01BTiBaREVOS0EKK0RJREFOT1ZJxIYgxIxFRE9NSVIKK0RJREFOT1ZJxIYgQlVESU1JUgorRElKQUtPVknEhiBQQVZBCitESUpBTUFUT1ZJxIYgRFJBR0lDQQorRElLScSGIEJSQU5JU0xBVgorRElLScSGIEJSQU5LTworRElLScSGIERVxaBBTgorRElLScSGIEdPUkFOCitESUtJxIYgSk9WQU5LQQorRElLScSGIEpPVkFOCitESUtJxIYgTUlMQU4KK0RJS0nEhiBSQVRLTworRElLScSGIFNBVkEgRElQTCBJTkcKK0RJS0nEhiBTVEVWQU4KK0RJS0nEhiBWRUxJTktBCitESUtJxIYgWkFHT1JLQQorRElLTEnEhiBBTEVLU0FOREFSCitESUtMScSGIEFMRUtTQU5EQVIKK0RJS0xJxIYgQlJBTklTTEFWCitESUtMScSGIERSQUdBTgorRElLTEnEhiBEUkFHQU4KK0RJS0xJxIYgRFXFoEFOCitESUtMScSGIERVxaBBTgorRElLTEnEhiBKQVNNSU5BCitESUtMScSGIEpPVkFOCitESUtMScSGIEpVRElUCitESUtMScSGIE1BUlRBCitESUtMScSGIE1JTEFOCitESUtMScSGIE1JTEVUQQorRElLTEnEhiBNSVJPU0xBVgorRElLTEnEhiBQRVRBUgorRElLTEnEhiBTVEFOS08KK0RJS09WScSGIE5JS09MQQorRElMQkVST1ZJxIYgQU5UTworRElNxIxPVlNLSSBUUkFKxIxFCitESU3FoEnEhiBBTktBCitESU1BIEJPU0EKK0RJTUHFoEVWScSGIEFMRUtTQU5EQVIKK0RJTUHFoEVWScSGIFBFVEFSCitESU1BTknEhiBBTktBCitESU1BTknEhiBCUkFOSVNMQVYKK0RJTUVTS0kgSUxJSkEKK0RJTUVTS0kgTUVUT0RJSkUKK0RJTUnEhiDFvUFSS08KK0RJTUnEhiDEkE9SxJBFCitESU1JxIYgQUtTRU5USUpFCitESU1JxIYgQUtTRU5USUpFCitESU1JxIYgQU7EkEVMS0EKK0RJTUnEhiBCT0dEQU4KK0RJTUnEhiBCUkFOS08KK0RJTUnEhiBEQU5JQ0EKK0RJTUnEhiBESU1JVFJJSkUKK0RJTUnEhiBEUkFHT0xKVUIgRFIKK0RJTUnEhiBEUkFHT01JUgorRElNScSGIERSQUdPCitESU1JxIYgRFXFoEFOIERSCitESU1JxIYgRFXFoEFOCitESU1JxIYgRFXFoEFOCitESU1JxIYgRU1JTElKQQorRElNScSGIEVSxb1FQkVUCitESU1JxIYgSUdOSkFUCitESU1JxIYgSVZBTgorRElNScSGIEpBTktPCitESU1JxIYgS09TVEEKK0RJTUnEhiBMQVpBUgorRElNScSGIExBWkFSCitESU1JxIYgTEpVQk9NSVIKK0RJTUnEhiBNSUxBTgorRElNScSGIE1JTEFOCitESU1JxIYgTUlMRVZBCitESU1JxIYgTUlMSUNBCitESU1JxIYgTUlMT8WgCitESU1JxIYgTUlMT0pFIERJUEwgSU5HCitESU1JxIYgTUlUQQorRElNScSGIE5BREEKK0RJTUnEhiBOQURBCitESU1JxIYgTkVCT0rFoEEKK0RJTUnEhiBOSUtPTEEKK0RJTUnEhiBOSUtPTEEKK0RJTUnEhiBOSUtPTEEKK0RJTUnEhiBOSUtPTEEKK0RJTUnEhiBPTEdBCitESU1JxIYgT1pSRU4KK0RJTUnEhiBQRVRBUgorRElNScSGIFNUQU5LTworRElNScSGIFNURVZBTgorRElNScSGIFNURVZBTgorRElNScSGIFNURVZBTgorRElNScSGIFNURVZBCitESU1JxIYgVkFTQQorRElNScSGIFZFUklDQQorRElNScSGIFZJVE9NSVIKK0RJTUnEhiBWSVRPTUlSCitESU1JxIYgVkxBRElNSVIKK0RJTUlUUkHFoEtPVknEhiBWTEFESU1JUgorRElNSVRSScSGIMW9SVZPUkFECitESU1JVFJJxIYgQk9HT0xKVUIKK0RJTUlUUknEhiBCUkFOS08KK0RJTUlUUknEhiBEUkFHQU4KK0RJTUlUUknEhiBNSUxFTktPCitESU1JVFJJxIYgTUlMRVZBCitESU1JVFJJxIYgTk9WQUsKK0RJTUlUUknEhiBQRVJPCitESU1JVFJJxIYgUkFUS08KK0RJTUlUUknEhiBWTEFEQU4KK0RJTUlUUknEhiBaT1JBTgorRElNSVRSSUFESVMgUEFWTE9TCitESU1JVFJJSkVWScSGIMSMRURPTUlSCitESU1JVFJJSkVWScSGIMSMRURPTUlSCitESU1JVFJJSkVWScSGIMSQT1LEkEUKK0RJTUlUUklKRVZJxIYgxJBPUsSQRQorRElNSVRSSUpFVknEhiDEkFVSxJBBCitESU1JVFJJSkVWScSGIEFMRUtTQU5EQVIKK0RJTUlUUklKRVZJxIYgQVJTQQorRElNSVRSSUpFVknEhiBBUlNFTgorRElNSVRSSUpFVknEhi1CRVNFUk1FTkpJIEtBVElDQQorRElNSVRSSUpFVknEhiBCT1JJVk9KRQorRElNSVRSSUpFVknEhiBCUkFOSVNMQVZBCitESU1JVFJJSkVWScSGIEJSQU5JU0xBVgorRElNSVRSSUpFVknEhiBCUkFOSVNMQVYKK0RJTUlUUklKRVZJxIYgQlJBTktBCitESU1JVFJJSkVWScSGIEJSWk9NSVIKK0RJTUlUUklKRVZJxIYgREFOSUNBCitESU1JVFJJSkVWScSGIERBTklDQQorRElNSVRSSUpFVknEhiBERVNBTktBCitESU1JVFJJSkVWScSGIERJTUlUUklKRQorRElNSVRSSUpFVknEhiBET0JSSUNBCitESU1JVFJJSkVWScSGIERSQUdBTgorRElNSVRSSUpFVknEhiBEUkFHQU4KK0RJTUlUUklKRVZJxIYgRFJBR0FOCitESU1JVFJJSkVWScSGIERSQUdBTgorRElNSVRSSUpFVknEhiBEVcWgQU4gRFIKK0RJTUlUUklKRVZJxIYgRFXFoEFOS0EKK0RJTUlUUklKRVZJxIYgRFXFoEFOCitESU1JVFJJSkVWScSGIEVSxb1FQkVUCitESU1JVFJJSkVWScSGIEVURUxBCitESU1JVFJJSkVWScSGIEVWSUNBCitESU1JVFJJSkVWScSGIEpFTEVOQQorRElNSVRSSUpFVknEhiBKRUxFTkEKK0RJTUlUUklKRVZJxIYgSkVMSUNBCitESU1JVFJJSkVWScSGIEpPVkFOCitESU1JVFJJSkVWScSGIEpPVkFOCitESU1JVFJJSkVWScSGIEpPVkFOCitESU1JVFJJSkVWScSGIExBWkFSCitESU1JVFJJSkVWScSGIExKVUJJQ0EgRFIKK0RJTUlUUklKRVZJxIYgTEpVQklDQQorRElNSVRSSUpFVknEhiBMSlVCSUNBCitESU1JVFJJSkVWScSGIExKVUJJTktPCitESU1JVFJJSkVWScSGIE1BUkdJVEEKK0RJTUlUUklKRVZJxIYgTUFSSUNBCitESU1JVFJJSkVWScSGIE1JTEFOIE1SCitESU1JVFJJSkVWScSGIE1JTEFOCitESU1JVFJJSkVWScSGIE1JTEFOCitESU1JVFJJSkVWScSGIE1JTEFOCitESU1JVFJJSkVWScSGIE1JTEEKK0RJTUlUUklKRVZJxIYgTUlMSVZPSgorRElNSVRSSUpFVknEhiBNSUxLQQorRElNSVRSSUpFVknEhiBNSUxPSkUKK0RJTUlUUklKRVZJxIYgTUlMT1ZBTgorRElNSVRSSUpFVknEhiBNSUxVVElOCitESU1JVFJJSkVWScSGIE1JT0RSQUcKK0RJTUlUUklKRVZJxIYgTUlPRFJBRworRElNSVRSSUpFVknEhiBNSU9EUkFHCitESU1JVFJJSkVWScSGIE1JUsSMRQorRElNSVRSSUpFVknEhiBNSVJPU0xBVktBCitESU1JVFJJSkVWScSGIE1JUk9TTEFWCitESU1JVFJJSkVWScSGIE1MQURFTgorRElNSVRSSUpFVknEhiBOQURBCitESU1JVFJJSkVWScSGIE5BREEKK0RJTUlUUklKRVZJxIYgTkVOQUQKK0RJTUlUUklKRVZJxIYgTkVWRU5LQQorRElNSVRSSUpFVknEhiBQQUpBCitESU1JVFJJSkVWScSGIFBFVEFSCitESU1JVFJJSkVWScSGIFBFVEFSCitESU1JVFJJSkVWScSGIFBFVEFSCitESU1JVFJJSkVWScSGIFBSRURSQUcKK0RJTUlUUklKRVZJxIYgUFJFRFJBRworRElNSVRSSUpFVknEhiBSQURJU0FWCitESU1JVFJJSkVWScSGIFJBRElWT0pFCitESU1JVFJJSkVWScSGIFJBRElWT0oKK0RJTUlUUklKRVZJxIYgUkFUS08KK0RJTUlUUklKRVZJxIYgU0HFoEEKK0RJTUlUUklKRVZJxIYgU0FWQQorRElNSVRSSUpFVknEhiBTTEFWS08KK0RJTUlUUklKRVZJxIYgU0xBVk9MSlVCCitESU1JVFJJSkVWScSGIFNSxJBBCitESU1JVFJJSkVWScSGIFNUQU5LTworRElNSVRSSUpFVknEhiBTVEFOT0pFCitESU1JVFJJSkVWScSGIFNURVZBTgorRElNSVRSSUpFVknEhiBTVE9KQURJTgorRElNSVRSSUpFVknEhiBTVE9KQURJTgorRElNSVRSSUpFVknEhiBTVkVUT01JUgorRElNSVRSSUpFVknEhiBUSUhPTUlSCitESU1JVFJJSkVWScSGIFRPTUlTTEFWCitESU1JVFJJSkVWScSGIFZFUkEKK0RJTUlUUklKRVZJxIYgVklUT01JUgorRElNSVRSSUpFVknEhiBWVUpJQ0EKK0RJTUlUUklKRVZJxIYgVlVLT1NBVkEKK0RJTUlUUklKRVZJxIYgWkxBVElCT1IKK0RJTUlUUklKRVZJxIYgWk9SQU4KK0RJTUlUUklKRVZJxIYgWk9SQU4KK0RJTUlUUklKRVZJxIYgWk9SSUNBCitESU1JVFJJSkVWScSGIFpPUklDQQorRElNSVRSSUpFVlNLSSBNSUhBSkxPCitESU1JVFJPViDFvUlWT0pJTgorRElNSVRST1YgxJBPS0EKK0RJTUlUUk9WIMSQT1LEkEUKK0RJTUlUUk9WIEJPxaBLTworRElNSVRST1YgQk9STworRElNSVRST1YgQlJBTklTTEFWCitESU1JVFJPViBCUkFOS08KK0RJTUlUUk9WIERJTUlUUklKRQorRElNSVRST1YgRFXFoEFOCitESU1JVFJPViBEVcWgQU4KK0RJTUlUUk9WIEVGVElNCitESU1JVFJPViBKT0NBCitESU1JVFJPViBQRVRBUgorRElNSVRST1YgUkFESVNMQVYKK0RJTUlUUk9WIFNMQVZLTworRElNSVRST1YgU09TQQorRElNSVRST1YgU1RFVkFOCitESU1JVFJPViBTVkVUSVNMQVYKK0RJTUlUUk9WIFVST8WgCitESU1JVFJPViBWRUxJxIxLTworRElNSVRST1YgWkxBVEEKK0RJTUlUUk9WU0tJIElMT05BCitESU1JVFJPVlNLSSBMSlVCT01JUgorRElNSVRST1ZTS0kgTEpVQk9NSVIKK0RJTUlUUk9WU0tJIFBBVkxFCitESU1LT1ZJxIYgQk9SSVNMQVYKK0RJTUtPVlNLSSBHT1JBTgorRElNS09WU0tJIExKVUJJxaBBCitESU1PU0tJIE5JS09MQQorRElNT1YgRElNSVRBUgorRElNT1YgVE9ET1IKK0RJTU9WQSBLQVRJQ0EKK0RJTU9WScSGIFNPRklKQQorRElNT1ZTS0kgxJBFUk8KK0RJTU9WU0tJIEFORFJJSkEKK0RJTU9WU0tJIExKVUJJQ0EKK0RJTU9WU0tJIE1BUklOQQorRElNT1ZTS0kgTUlMSUNBCitESU1PVlNLSSBUUkFKxIxFCitESU7EjEnEhiBLQVRJQ0EKK0RJTsSMScSGIE1JTE9SQUQKK0RJTsSMScSGIFNMT0JPREFOCitESU7EjEnEhiBTUkVURU5LQQorRElOxIxJSyBNQVJJSkEKK0RJTknEhiDEjEVET01JUgorRElOScSGIEJPxb1JREFSCitESU5JxIYgQk9TQQorRElOScSGIEpPxaBLQQorRElOScSGLUtORcW9RVZJxIYgRFXFoEFOS0EKK0RJTknEhiBNSUxPUkFECitESU5JxIYgUkFET01JUgorRElOScSGIFZBTEVSSUpBCitESU5JxIYgVkxBREVUQQorRElOScSGIFpWT05JTUlSCitESU5KQcWgS0kgxb1BUktPCitESU5KQcWgS0kgSVJJTkEKK0RJTkpBxaBLSSBLU0VOSUpBCitESU5KQcWgS0kgTEVQQQorRElOSkHFoEtJIE5FU1RPUgorRElOSkHFoEtJIFNUQU5JTUlSCitESU5KQcWgS0kgU1RBTktBCitESU5KQcWgS0kgU1RFVkFOCitESU5KQcWgS0kgVFJJVkEKK0RJTkpBxaBLSSBaRFJBVktPCitESU5KRcWgIEpPU0lQCitESU5VTE9WScSGIFJBRE9TTEFWCitESU/FoEkgSk9TSVAKK0RJUk5FUiBBUkFOS0EKK0RJU0nEhiBMSlVCScWgQQorRElTScSGIFZMQURJTUlSCitESVRSSUggQU5BCitESVRSSUggUk9CRVJUCitESVRSSUggVkxBRElNSVIKK0RJVknEhiBNSUxFTktPCitESVZJSkHEjEtJIERSQUdBTgorRElWSUpBxIxLSSBEUkFHQU4KK0RJVklMRCDEkE9SxJBFCitESVZJTEQgQU5EUklKQQorRElWSUxEIEpFTElTQVZFVEEKK0RJVklMRCBSQURPU0xBVgorRElWSkFLIERVxaBBTgorRElWSkFLIERVxaBBTgorRElWSkFLIERVxaBBTgorRElWSkFLIE1BUklOS08KK0RJVkpBSyBNSUxBTgorRElWSkFLIE1JTEFOCitESVZKQUsgTUlMQU4KK0RJVkpBSyBTQVZBCitESVZKQUtPVknEhiDEkE9SxJBFCitESVZKQUtPVknEhiBCUkFOS08KK0RJVkpBS09WScSGIEdBVlJBCitESVZKQUtPVknEhiBKRUxJQ0EKK0RJVkpBS09WScSGIExKVUJJQ0EKK0RJVkpBS09WScSGIE1BUklKQQorRElWSkFLT1ZJxIYtUkFEScSMRVZBIERPUklOQQorRElWSkFLT1ZJxIYgU1RFVkFOCitESVZKQUtPVknEhiBUT0RPUgorRElWSkFLT1ZJxIYgVkxBREEKK0RJVkxKQUsgQUxFS1NBTkRBUgorRElWTEpBSyBBTkdFTElOQQorRElWTEpBSyBCT8WgS08KK0RJVkxKQUsgREVTSU1JUgorRElWTEpBSyBET0JSSVZPSgorRElWTEpBSyBEUkFHTworRElWTEpBSyBNSVJPU0xBVgorRElWTEpBSyBNSVJPU0xBVgorRElWTEpBSyBSQVRLTworRElWTEpBSyBaRFJBVktPCitESVZMSkFLT1ZJxIYgRFJBR1VUSU4KK0RJVkxKQUtPVknEhiBJVkFOS0EKK0RJVkxKQU4gTkVOQUQKK0RJVk5JxIYgxb1JVkFOCitESVZOScSGIMSQT1LEkEUKK0RJVk5JxIYgSkVMS0EKK0RJVk5JxIYgTUlSSkFOQQorRElWTknEhiBQQUpBCitESVZOScSGIFNMT0JPREFOCitESVZOScSGIFNPTkpBCitESVZOScSGIFNWRVRPWkFSCitESVZPVknEhiBSQURPVkFOCitESVpEQVIgQU7EkEEKK0RJWkRBUiBBTktJQ0EKK0RJWkRBUiBJVklDQQorRElaREFSIEpPU0lQCitESVpEQVIgSlVSRQorRElaREFSIEpVUk8KK0RJWkRBUiBNQVJJSkEKK0RJWkRBUiBNQVJLTworRElaREFSIFBBVk8KK0RJWkRBUiBTQVJBRklOQQorRElaREFSIFZMQURPCitESVpEQVJFVknEhiBSQURPTEpVQgorRExVSEkgSk9TSVAKK0RNSVRSQcWgSU5PVknEhiBSQURFCitETUlUUklKRVYgTElESUpBCitETUlUUk9WScSGIERBTklDQQorRE1JVFJPVknEhiBMSklMSkFOQQorRE1JVFJPVknEhiBNSUxPxaAKK0RNSVRST1ZJxIYgTUlSSkFOQQorRE1JVFJPVknEhiBSQURFTktPIExFS0FSCitETUlUUk9WScSGIFNURVZBTgorRE1JVFJPVknEhiBTVEVWQU4KK0RPxaBFTU9WScSGIFBSRURSQUcKK0RPxaBFTiDFvUlWQURJTgorRE/FoEVOIEJJTEpBTkEKK0RPxaBFTiBCUkFOS08KK0RPxaBFTiBERVNBTktBCitET8WgRU4gRFJBR0FOCitET8WgRU4gRFXFoEFOCitET8WgRU4gRFXFoEFOCitET8WgRU4gRFXFoEFOCitET8WgRU4gRFVCUkFWS0EKK0RPxaBFTiBIUklTVElOQSBEUgorRE/FoEVOIElMSUpBCitET8WgRU4gSVZBTgorRE/FoEVOIElWQU4KK0RPxaBFTiBKRUxFTkEKK0RPxaBFTiBNSUxBTgorRE/FoEVOIE1JTEFOCitET8WgRU4gTUlMRQorRE/FoEVOIE1JTE/FoAorRE/FoEVOIFJBRE9TTEFWCitET8WgRU4gUkFET1NMQVYKK0RPxaBFTiBSQVRLTworRE/FoEVOIFNWRVRMQU5BCitET8WgRU4gVk9KSU4KK0RPxaBFTk9WScSGIMSMRURPTUlSCitET8WgRU5PVknEhiBNSUxJVk9KRQorRE/FoEVOT1ZJxIYgTUlST1NMQVZBCitET8WgRU5PVknEhiBWQVNJTEpLQQorRE/FoEVOT1ZJxIYgVk9KSU4KK0RPxaBJxIYgR0laRUxBCitET8WgTEnEhiBNSUxJQ0EKK0RPxaBMScSGIE5FTkFECitET8WgTEnEhiBSQURPU0xBVgorRE/FoExPViBLUlNUTworRE/FoExPViBTTEFWSUNBCitET8W9ScSGIExKSUxKQU5BCitET8W9ScSGIE1BUklDQQorRE/FvUnEhiBTVEVWQU4KK0RPxb1JxIYgU1RFVkFOCitET8W9ScSGIFNWRVRJU0xBVgorRE/FvUnEhiBWQVNJTEpLQQorRE9CQU4gTUFSxIxFTAorRE9CQU5PVkHEjEtJIMSMRURPTUlSCitET0JBTk9WQcSMS0kgQUxFS1NBTkRBUgorRE9CQU5PVkHEjEtJIEJPUklTTEFWCitET0JBTk9WQcSMS0kgQlJBTklTTEFWCitET0JBTk9WQcSMS0kgRE9CUklOS0EKK0RPQkFOT1ZBxIxLSSBEVcWgQU5LQQorRE9CQU5PVkHEjEtJIERVxaBBTktBCitET0JBTk9WQcSMS0kgRFXFoEFOCitET0JBTk9WQcSMS0kgSVJFTkEKK0RPQkFOT1ZBxIxLSSBKRUxLQQorRE9CQU5PVkHEjEtJIEpVTEtBCitET0JBTk9WQcSMS0kgSlVMS0lDQQorRE9CQU5PVkHEjEtJIE1BS1NJTQorRE9CQU5PVkHEjEtJIE1JTEFOCitET0JBTk9WQcSMS0kgTUlMQU4KK0RPQkFOT1ZBxIxLSSBNSVJKQU5BCitET0JBTk9WQcSMS0kgTUlSS08KK0RPQkFOT1ZBxIxLSSBQRVRBUgorRE9CQU5PVkHEjEtJIFJBRE9NSVIKK0RPQkFOT1ZBxIxLSSBTQVZBCitET0JBTk9WQcSMS0kgU0FWQQorRE9CQU5PVkHEjEtJLVNBVknEhiBUSU5LQQorRE9CQU5PVkHEjEtJIFNURVZBTgorRE9CQU5PVkHEjEtJIFRJTktBCitET0JBTk9WQcSMS0kgWk9SSUNBCitET0JBTk9WScSGIFNPRklKQQorRE9CRcWgIEpPVkFOCitET0JJIEpVTElKQU5BCitET0JJxIYgQlJBTklTTEFWCitET0JJxIYgUEVUQVIKK0RPQk8gSUxFxaAKK0RPQk8gSk/FvUVGCitET0JPIEpPxb1FRgorRE9CT8WgIEpPxb1FRgorRE9CT8WgSSDFoEFORE9SCitET0JPxaBJIMSQRVLEkAorRE9CT8WgSSBFUsW9RUJFVAorRE9CT8WgSSBKQU5PxaAKK0RPQk/FoEkgTEFTTE8KK0RPQk/FoEkgTUFHREFMRU5BCitET0JPxaBJIE1BUkdJVEEKK0RPQk/FoEkgUEFMCitET0JPS0FJIE1JSEFKTE8KK0RPQk9WScSMRUsgRlJBTkMKK0RPQlJBIElWQU4KK0RPQlJBxaAgTUlMS0EKK0RPQlJBTiBTTEFWS08KK0RPQlJBTknEhiBSQURPVkFOCitET0JSQU5JxIYgVklET1NBVkEKK0RPQlJFIEJPxb1BCitET0JSRU5PViBEVcWgQU4gRElQTCBJTkcKK0RPQlJFTk9WIEdSRVRBCitET0JSRU5PViBKRUxJU0FWRVRBCitET0JSRU5PViBKRUxJU0FWRVRBCitET0JSRU5PViBOSUtPTEEKK0RPQlJFTk9WIFNBTkRSQQorRE9CUkVOT1YgVk9KSU4KK0RPQlJFVEnEhiBNQVJJQ0EKK0RPQlJJxIxLSSBEVcWgQU4KK0RPQlJJxIxLSSBNQVJJSkEKK0RPQlJJxIYgxb1JVktPCitET0JSScSGIMSQT1LEkEUKK0RPQlJJxIYgQk/FoEtPCitET0JSScSGIEJSQU5JU0xBVgorRE9CUknEhiBFUsW9RUJFVAorRE9CUknEhiBHT0pLTworRE9CUknEhiBKT1ZBTgorRE9CUknEhiBLT1NUQQorRE9CUknEhiBMSlVCSUNBCitET0JSScSGIE1JTEFESU4KK0RPQlJJxIYgTUlMQU4KK0RPQlJJxIYgTUlMQU4KK0RPQlJJxIYgTkVHT1NBVkEKK0RPQlJJxIYgUkFESVNMQVYKK0RPQlJJxIYgUkFESVZPSgorRE9CUknEhiBTTE9CT0RBTgorRE9CUknEhiBTVEVWQU4KK0RPQlJJxIYgVUdMSkXFoEEKK0RPQlJJxIYgVkVST05JS0EKK0RPQlJJxIYgVkVTTkEKK0RPQlJJxIYgWkRSQVZLTworRE9CUklKRVZJxIYgRFXFoEFOCitET0JSSUpFVknEhiBQRVRBUgorRE9CUklKRVZJxIYgU0xPQk9EQU5LQQorRE9CUklMT1ZJxIYgUkFKS08KK0RPQlJJTE9WScSGIFJBSktPCitET0JSSUxPVknEhiBTSU1BCitET0JSSU4gREXFvUUKK0RPQlJJTiBOSUtPTEEKK0RPQlJJTiBPTEdBCitET0JSSU5JxIYgREFSSU5LQQorRE9CUklWT0pFVknEhiBEVcWgQU4KK0RPQlJJVk9KRVZJxIYgU1ZFVExBTkEKK0RPQlJOSkFDIFNUT0pBTktBCitET0JST0RFTCBGUkFOSk8KK0RPQlJPRE9MU0tJIEpFTEVOQQorRE9CUk9ET0xTS0kgSlVMS0EKK0RPQlJPRE9MU0tJIFZVS0lDQQorRE9CUk9LRVMgTUlMRU5BCitET0JST01JUk9WIEFMRUtTQU5EQVIKK0RPQlJPTUlST1YgQUxFS1NBTkRBUgorRE9CUk9NSVJPViBEVcWgQU4KK0RPQlJPTUlST1YgRVVGSU1JSkEKK0RPQlJPTUlST1YgTkFEQQorRE9CUk9NSVJPViBQRVRBUgorRE9CUk9NSVJPViBWSVRPTUlSCitET0JST01JUk9WIFZMQURJTUlSCitET0JST01JUk9WIFZPSklTTEFWCitET0JST01JUk9WScSGIFBBVkxFCitET0JST1NBVkxKRVYgTEFaQVIKK0RPQlJPU0FWTEpFViBMQVpBUgorRE9CUk9TQVZMSkVWIE1JTEFOCitET0JST1NBVkxKRVYgTUlMQU4KK0RPQlJPU0FWTEpFViBNSUxBTgorRE9CUk9TQVZMSkVWIE1JTE9WQU4KK0RPQlJPU0FWTEpFViBNSVJBCitET0JST1NBVkxKRVYgUEVUQVIKK0RPQlJPU0FWTEpFViBSQURBCitET0JST1NBVkxKRVYgUkFOS08KK0RPQlJPU0FWTEpFViBTQVZBCitET0JST1NBVkxKRVYgU1ZFVE9aQVIKK0RPQlJPU0FWTEpFVknEhiBEUkVOS0EKK0RPQlJPU0FWTEpFVknEhiBTTEFWS08KK0RPQlJPU0FWTEpFVknEhiBWQVNBIE5PVklOQVIKK0RPQlJPU0FWTEpFVknEhiBWQVNJTElKRQorRE9CUk9TQVZMSkVWScSGIFZBU0lMSUpFCitET0JST1RBIEJJU0VSS0EKK0RPQlJPVEEgREFNSVIKK0RPQlJPVknEhiBBTEVLU0FORFJBCitET0JST1ZJxIYgREFNSkFOS0EKK0RPQlJPVknEhiBMSlVCT01JUgorRE9ERVJPVknEhiBNSUxPU0FWCitET0RFUk9WScSGIFJBRElWT0oKK0RPREnEhiBJVkFOCitET0RJxIYgSkVMRU5BCitET0RJxIYgTUlMSVZPSgorRE9EScSGIE1JT0RSQUcKK0RPREnEhiBNSU9EUkFHCitET0RJxIYgU0FWQQorRE9EScSGIFNMT0JPREFOCitET0RJxIYgU1RBTk9KRQorRE9EScSGIFNUT0pBTgorRE9EScSGIFZFUkEKK0RPRElLIEJBUlRPTAorRE9ESUsgU1RFVkFOCitET0RMRUsgVkxBRElNSVIKK0RPRE/FoCBMQVpBUgorRE9HQU5Exb1JxIYgRE9CUklWT0pFCitET0rEjElOT1ZJxIYgxJBVSkEKK0RPSsSMSU5PVknEhiDEkFVSxJBJQ0EKK0RPSsSMSU5PVknEhiBCTEFHT0pFCitET0rEjElOT1ZJxIYgQk/FvUlEQVIKK0RPSsSMSU5PVknEhiBEVcWgQU4KK0RPSsSMSU5PVknEhiBKT1NJRgorRE9KxIxJTk9WScSGIE1JSEFKTE8KK0RPSsSMSU5PVknEhiBNSVJPU0xBViBEUgorRE9KxIxJTk9WScSGIFJBRE9TTEFWCitET0rEjElOT1ZJxIYgVkxBREEKK0RPSsSMSU5PVlNLSSBWQU7EjEEKK0RPSkRFUiBJVk8KK0RPSkRFUiBKQUtPVgorRE9KScSGIExBWkFSCitET0pLScSGIEJPxb1JREFSCitET0pLScSGIEpVTEtJQ0EKK0RPSktJxIYgS1NFTklKQQorRE9KS0nEhiBNQVJJSkEKK0RPSktJxIYgTUlMT1JBRAorRE9KS0nEhiBNSUxPUkFECitET0pLScSGIE1MQURFTgorRE9KS0nEhiBNTEFERU4KK0RPSktJxIYgUEFKQQorRE9KS0nEhiBQRVRBUiBEUgorRE9KS0nEhiBQRVRBUgorRE9KS0nEhiBSQUpLTworRE9KS0nEhiBSQUpLTworRE9KS0nEhiBTTEFWS08KK0RPSktJxIYgVkpFS09TTEFWCitET0tMRUFOIEFEQU0KK0RPS01BTk9WScSGIEJPUklWT0oKK0RPS01BTk9WScSGIERFSkFOCitET0tNQU5PVknEhiBNQVJJSkEKK0RPS01BTk9WScSGIE1JTElDQQorRE9LTUFOT1ZJxIYgTkFEQQorRE9LTUFOT1ZJxIYgUkFESVZPSgorRE9LTknEhiBWRUxKS08KK0RPS0/FoEnEhiBNQVJJSkEKK0RPTEHFoCBNSUxPVkFOCitET0xFTkVDIEZMT1JJSkFOCitET0xHQSBNSUxFTkEKK0RPTElOQUogxJBVUk8KK0RPTElOQUogSkFST1NMQVZBCitET0xJTkFSIExKVUJJQ0EKK0RPTElOR0EgTUFSSU9SQQorRE9MSU5HQSBOSUtPTEFKRQorRE9MT8WgIEZSQU5KQQorRE9MT1bEjEFLIEtBVElDQQorRE9MT1ZBQyBBTktJQ0EKK0RPTE9WQUMgQklTRVJLQQorRE9MT1ZBQyBEUkFHSUNBCitET0xPVkFDIEpPVkFOCitET0xPVkFDIExBWkFSCitET0xPVkFDIExBWkFSCitET0xPVkFDIE1BUklKQQorRE9MT1ZBQyBNSUxJQ0EKK0RPTE9WQUMgTUlMT8WgCitET0xPVkFDIFJBRElWT0oKK0RPTE9WQUMgUkFET1NMQVYKK0RPTE9WQUMgUkFET1NMQVYKK0RPTE9WQUMgU0xBVktPCitET0xPVkFDIFNMQVZLTworRE9MT1ZBQyBTTE9CT0RBTgorRE9MT1ZBQyBWRUxJTUlSCitET0xPVkFDIFpPUktBCitET01BU1RPVknEhiBEQU5JQ0EKK0RPTUFaRVQgTklLT0xBCitET01BWkVUIFpPUklDQQorRE9NQVpFVE9WIFZFTElNSVIKK0RPTUFaRVRPVknEhiDEjEVET01JUgorRE9NQVpFVE9WScSGIE1JUkpBTkEKK0RPTUFaRVRPVknEhiBNSVJKQU5BCitET01CSSBMQVNMTworRE9NQkkgUkFET0pLQQorRE9NQkkgU01JTEpLQQorRE9NSU5JxIYgQU5BCitET01JTknEhiBOSUtPTEEKK0RPTU9OSkkgTUFSVElOCitET01PTktPxaAgRVZBCitET01PTktPxaAgVklMTU/FoAorRE9NT05LT1MgScWgVFZBTgorRE9NT1ZJxIYgTUlMQU4KK0RPTsSMRVYgVE9ERQorRE9OxIxJxIYgTkFEQQorRE9OQVQgRFJBR1VUSU4KK0RPTkFUIFNBVkVUQQorRE9ORFVSIMW9SVZLTworRE9ORFVSIERBTklDQQorRE9ORFVSIERBUklOS0EKK0RPTkRVUiBNSUxJQ0EKK0RPTkRVUiBTTEFWS08KK0RPTkRVUiBTVEFOS08KK0RPTkRVUiBaRFJBVktPCitET05FViBUT0RPUgorRE9ORVZTS0kgSkVMRU5BCitET05FVlNLSSBLUklTVElOQQorRE9OScSGIMW9SVZPSklOCitET05LT1IgRMW9RU1TCitET05TS09WIFNFUkdJSkUKK0RPTlNLT1ZBIFpPSkEgRFIgTEVLQVIKK0RPUFXEkCBCT8W9SURBUgorRE9QVcSQIEJSQU5LTworRE9QVcSQIERVQlJBVktBCitET1BVxJAgR09SQU4KK0RPUFXEkCBNQVJJSkEKK0RPUFXEkCBNSUxBTiBEUgorRE9QVcSQIE1JUk9TTEFWQQorRE9QVcSQQSDFvUlWS08KK0RPUFXEkEEgREFSQQorRE9QVcSQQSBEUkFHT01JUgorRE9QVcSQQSBTQVZBCitET1BVxJBBIFZMQURJTUlSCitET1LEjEnEhiBBTE9KWkEKK0RPUsSMScSGLUJJS0nEhiBPTEdJQ0EKK0RPUsSMScSGIEJPxb1PCitET1LEjEnEhiBLTEVNRU5UCitET1LEjEnEhiBNQVJKQU4KK0RPUknEhiDFvUFSS08KK0RPUknEhiBCSUxKQU5BCitET1JJxIYgQklMSkFOQQorRE9SScSGIEJPUklTTEFWCitET1JJxIYgRlJBTkpBCitET1JJxIYgSUxJSkEKK0RPUknEhiBJUk1BCitET1JJxIYgSk9TSVAKK0RPUknEhiBQRVRBUgorRE9SScSGIFNURVZBTgorRE9SScSGIFZFU0VMSU4KK0RPUktPIFNPRklKQQorRE9STUFOIExBU0xPCitET1JPIEdFWkEgRFIKK0RPUk/FoEVWIMSQT1LEkEUKK0RPUk/FoEtJIMSQT1LEkEUKK0RPUk/FoEtJIEJSQU5LTworRE9ST8WgS0kgREVTQU5LQQorRE9ST8WgS0kgSk9WQU4gRFIKK0RPUk/FoEtJIExKSUxKQU5BCitET1JPxaBLSSBNQVJJSkEKK0RPUk/FoEtJIE1JTEFOCitET1JPxaBLSSBNSUxBCitET1JPxaBLSSBNSVJKQU5BCitET1JPxaBLSSBOSUtPTEEKK0RPUk/FoEtJIFNJTUEKK0RPUk/FoEtJIFZJRE9TQVZBCitET1JPxaBLSSBWVUpBRElOCitET1JPQ0tJIE1BSEFMCitET1JPR0hBWkkgSVJJTkEKK0RPUk9HSSDFoEFORE9SCitET1JPTkpTS0kgRFXFoEFOCitET1JPTkpTS0kgS0FUQVJJTkEKK0RPUk9TTE9WQcSMS0kgxJBVUkEKK0RPUk9TTE9WQcSMS0kgQUxFS1NBTkRBUgorRE9ST1NMT1ZBxIxLSSBBTklDQQorRE9ST1NMT1ZBxIxLSSBEQU5JQ0EKK0RPUk9TTE9WQcSMS0kgR1JVSkEKK0RPUk9TTE9WQcSMS0kgSkVMRU5BCitET1JPU0xPVkHEjEtJIEtTRU5JSkEKK0RPUk9TTE9WQcSMS0kgTUFSR0lUQQorRE9ST1NMT1ZBxIxLSSBNQVJJTkEKK0RPUk9TTE9WQcSMS0kgTUFSSkFOQQorRE9ST1NMT1ZBxIxLSSBNSVJPU0xBVgorRE9ST1NMT1ZBxIxLSSBOSUtPTEEKK0RPUk9TTE9WQcSMS0kgUkFERQorRE9ST1NMT1ZBxIxLSSBTQVZFVEEKK0RPUk9TTE9WQcSMS0kgU1RFVkFOS0EKK0RPUk9TTE9WQcSMS0kgVlVKQQorRE9ST1NMT1ZBxIxLSSBWVUtBCitET1JPU0xPVkFDIEJSQU5JU0xBVkEKK0RPUk9TTE9WQUMgTEFaQVIKK0RPUk9TTE9WQUMgTUFSSUpBCitET1JPU0xPVkFDIE1JTEFOQQorRE9ST1NMT1ZBQyBNSVJPU0xBVgorRE9ST1NMT1ZBQyBQRVRBUgorRE9ST1NMT1ZBQyBaT1JBTgorRE9ST1RJxIYgxJBPUsSQRQorRE9ST1RJxIYgxJBPUsSQRQorRE9ST1RJxIYgR0laRUxBCitET1JPVEnEhiBHT1JEQU4KK0RPUk9UScSGLUdVVEXFoEEgTEVPTkEKK0RPUk9UScSGIElMQSBNUiBQUk9GCitET1JPVEnEhiBNQVJJSkEKK0RPUk9UScSGIFNURVZBTgorRE9ST1RLQSBEUkFHQU4KK0RPUk9US0EgTUlMT8WgCitET1NUQU4gQU5BCitET1NUQU4gQVJQQUQKK0RPU1RBTiBEQVJJTktBCitET1NUQU4gScWgVFZBTgorRE9TVEFOIEpPxb1FRgorRE9TVEFOIExBRElTTEFWCitET1NUQU4gUEVUQVIKK0RPU1RBTiBTVEVWQU4KK0RPU1RBTiBUSUJPUgorRE9TVEFOScSGIERSQUdJQ0EKK0RPU1RBTknEhiBSQURNSUxPCitET1NUQU5JxIYgVk9JU0xBVgorRE9TVEFOSiBKT1NJUAorRE9TVEFOSiBST1pBTElKQQorRE9TVEnEhiBTTEFWS08KK0RPU1RJxIYgU09GSUpBCitET1RMScSGIMW9SVZLTworRE9UTEnEhiBCT8WgS08KK0RPVExJxIYgQk9SSVNMQVYKK0RPVExJxIYgRE9CUklMQQorRE9UTEnEhiBEVcWgQU4KK0RPVExJxIYgTEFaQVIKK0RPVExJxIYgTEFaQVIKK0RPVExJxIYgTFVLQQorRE9UTEnEhiBTQVZBCitET1RMScSGIFNPRklKQQorRE9UTEnEhiBWQVNBCitET1RPViBEUkFHTworRE9WQVQgUEFWTEUgRFIKK0RPVkFUIFZMQURJTUlSCitET1ZBVE9WIEFEQU0KK0RPVkVERU4gQk9SSVNMQVYKK0RPVkdBTiBKT1NJUAorRE9WSUpBUk9WIE1JTE/FoAorRE9WSUpBUk9WIFJBRElWT0oKK0RPVklKQVJTS0kgQlJBTktBCitET1ZJSkFSU0tJIE1JTEVOQQorRE9WSUpBUlNLSSBTVEFOSU1JUgorRE9WTklLT1ZJxIYgTEFaQVIKK0RPWkVUIMSQT1LEkEUKK0RPWkVUIEJPxb1PCitET1pFVCBEUkFHSUNBCitET1pFVCBJTElKQQorRE9aRVQgSkFTTkEKK0RPWkVUIEpVTEtJQ0EKK0RPWkVUIExKVUJJQ0EKK0RPWkVUIExKVUJPTUlSCitET1pFVCBNSUhBSkxPCitET1pFVCBNSUxBTgorRE9aRVQgTUlMT1ZBTgorRE9aRVQgTklLT0xBCitET1pFVCBSQURFCitET1pFVCBSQURNSUxBCitET1pFVCBSQURPU0xBVktBCitET1pFVCBTQVZLQQorRE9aRVQgU1RBTktPCitEUsSMQSBBTkEKK0RSxIxBIEJSQU5LTworRFLEjEEgRFJBR0lDQQorRFLEjEEgSkFOS08KK0RSxIxBIE1JTEFOCitEUsSMQSBSQVRLTworRFLEjEEgU0xBVktPCitEUsSMQSBTVEVWQU4KK0RSxIxBLVVSR0VOIE1BUklKQQorRFLEjEEgVkxBVEtPCitEUsSMRUxJxIYgRE9CUklTQVYKK0RSxIxFTEnEhiBNSVJKQU5BCitEUsW9QUpJxIYgRElNSVRSSUpFIFBST0ZFU09SCitEUsW9ScSGIElMSUpBCitEUkHEjEEgxb1JVktPCitEUkHEjEEgxJBPUsSQRQorRFJBxIxBIEFDQQorRFJBxIxBIERVQlJBVktBCitEUkHEjEEgTUlMRQorRFJBxIxBIFBFVEFSIERSCitEUkHEjEEgUEVUQVIKK0RSQcSMQSBTUEFTRU5LQQorRFJBxIxBIFRPTU8gRFIKK0RSQcSMSU4gS09TVEEKK0RSQcWgScSGIE5BVEFMSUpBCitEUkHFoEtPIEpFTEtBCitEUkHFoEtPIE1JTE9WQU4KK0RSQcWgS08gU0xPQk9EQU4KK0RSQcWgS09WScSGIEJSQU5LTyBESVBMIE9FQworRFJBxaBLT1ZJxIYgRFJBR0EKK0RSQcWgS09WScSGIERVxaBBTgorRFJBxaBLT1ZJxIYgTEpVQk9NSVIKK0RSQcWgS09WScSGIE1JSEFKTE8KK0RSQcWgS09WScSGIE1JTE9NSVIKK0RSQcWgS09WScSGIE1JTE9SQUQKK0RSQcWgS09WScSGIE5FTkFECitEUkHFoEtPVknEhiBTQVZPCitEUkHFoEtPVknEhiBTTE9CT0RBTktBCitEUkHFoEtPVknEhiBTTE9CT0RBTgorRFJBxaBLT1ZJxIYgU1JFVEVOCitEUkHFvUVUQSBNSUxFTktPCitEUkHFvUVUQSBTVEVWQU4KK0RSQcW9RVRJTiBEVcWgQU4KK0RSQcW9RVRJTiBNTEFERU4KK0RSQcW9ScSGIMW9QVJLTworRFJBxb1JxIYgxJBPUsSQRQorRFJBxb1JxIYgxJBPUsSQRQorRFJBxb1JxIYgQUxFS1NBTkRBUgorRFJBxb1JxIYgQk9HREFOCitEUkHFvUnEhiBCVURPCitEUkHFvUnEhiBET0JSSVZPSgorRFJBxb1JxIYgRFJBR09MSlVCCitEUkHFvUnEhiBEVcWgQU4KK0RSQcW9ScSGIERVxaBBTgorRFJBxb1JxIYgRU1JTAorRFJBxb1JxIYgR09SREFOQQorRFJBxb1JxIYgSUxJSkEKK0RSQcW9ScSGIElMSUpBCitEUkHFvUnEhiBJUkVOQQorRFJBxb1JxIYgSkHFoEEKK0RSQcW9ScSGIEpFTElDQQorRFJBxb1JxIYgSk9WQU4KK0RSQcW9ScSGIEpPVkFOCitEUkHFvUnEhiBKT1ZBTgorRFJBxb1JxIYgSk9WQU4KK0RSQcW9ScSGIEpPVkFOCitEUkHFvUnEhiBLQVRJQ0EKK0RSQcW9ScSGIEtPU1RBCitEUkHFvUnEhiBMQVpBUgorRFJBxb1JxIYgTEpVQklDQQorRFJBxb1JxIYgTUFSSUpBCitEUkHFvUnEhiBNSUxBTgorRFJBxb1JxIYgTUlMQU4KK0RSQcW9ScSGIE1JTEVOS08KK0RSQcW9ScSGIE1JTEVOS08KK0RSQcW9ScSGIE1JTElOS08gRElQTCBJTkcKK0RSQcW9ScSGIE1JTE9SQUQKK0RSQcW9ScSGIE1JTE9SQUQKK0RSQcW9ScSGIE1JTE9SQUQKK0RSQcW9ScSGIE1JUkEKK0RSQcW9ScSGIE1JVEEKK0RSQcW9ScSGIE5BVEFMSUpBCitEUkHFvUnEhiBOQVRBTElKQQorRFJBxb1JxIYgTkVTVE9SCitEUkHFvUnEhiBORVZFTktBCitEUkHFvUnEhiBOSUtPTEEKK0RSQcW9ScSGIE5JS09MQQorRFJBxb1JxIYgT1NUT0pBCitEUkHFvUnEhiBQRVRBUgorRFJBxb1JxIYgUkFET1ZBTgorRFJBxb1JxIYgUkVMSkEKK0RSQcW9ScSGIFNMQVZLTworRFJBxb1JxIYgU09GSUpBCitEUkHFvUnEhiBTVEFOS08KK0RSQcW9ScSGIFNURVZBTgorRFJBxb1JxIYgU1RFVkFOCitEUkHFvUnEhiBTVVpBTkEKK0RSQcW9ScSGIFRPTUlTTEFWCitEUkHFvUnEhiBWRUxJTktBCitEUkHFvUnEhiBWRVJBCitEUkHFvUnEhiBWRVJBCitEUkHFvUnEhiBWRVJBCitEUkHFvUnEhiBaTEFUS08KK0RSQcW9SUxPVknEhiBTVEFOScWgQQorRFJBxb1JTiBCT1JJU0xBVgorRFJBR0HFoCDEkE9SxJBFCitEUkFHQcWgIMSQVVJPCitEUkFHQcWgIEJPUklTTEFWCitEUkFHQcWgIEJSQU5LTworRFJBR0HFoCBEUkFHT01JUgorRFJBR0HFoCBJVkFOCitEUkFHQcWgIEtBVElDQQorRFJBR0HFoC1LT1ZBxIwgTEpVQklDQQorRFJBR0HFoCBMRVBPU0FWQQorRFJBR0HFoCBMSlVCSUNBCitEUkFHQcWgIExKVUJJQ0EKK0RSQUdBxaAgTUFOT0pMTworRFJBR0HFoCBNSUxBTgorRFJBR0HFoCBNSUxFTktPCitEUkFHQcWgIE1JUkEKK0RSQUdBxaAgTUlSSkFOQQorRFJBR0HFoCBNT03EjElMTworRFJBR0HFoCBSQURJVk9KCitEUkFHQcWgIFJBRE9NSVIKK0RSQUdBxaAgU1BPTUVOS0EKK0RSQUdBxaAgU1ZFVExBTkEKK0RSQUdBxaAgWk9SQU4KK0RSQUdBxaBFViBWTEFESU1JUgorRFJBR0FOIE1JTEVOQQorRFJBR0FOScSGIERSQUdBCitEUkFHQU5JxIYgSkFOS08KK0RSQUdBTknEhiBNSUhBSkxPCitEUkFHQU5JxIYgTUlMSUNBIERSCitEUkFHQU5JxIYgTUlMS0EKK0RSQUdBTknEhiBNSVJLTworRFJBR0FOScSGIE1JUk9TTEFWCitEUkFHQU5JxIYgTkFERcW9REEKK0RSQUdBTknEhiBSQU5LTworRFJBR0FOScSGIFZJREEKK0RSQUdBTknEhiBaRUtPCitEUkFHQU5PViBNSUxPxaAKK0RSQUdBTk9WIE9MR0EKK0RSQUdBTk9WIFNMT0JPREFOCitEUkFHQU5PViBTVE9KQU5LQQorRFJBR0FOT1ZJxIYgU0xBVktPCitEUkFHRUxKRVZJxIYgRFXFoEFOCitEUkFHRUxKRVZJxIYgSk9WQU4KK0RSQUdJxIxFVknEhiBBREFNCitEUkFHScSMRVZJxIYgQUxFS1NBTkRBUgorRFJBR0nEjEVWScSGIEJPUklTTEFWCitEUkFHScSMRVZJxIYgR09KS08KK0RSQUdJxIxFVknEhiBJTElOS0EKK0RSQUdJxIxFVknEhiBJVktBCitEUkFHScSMRVZJxIYgS1JFxaBJTUlSCitEUkFHScSMRVZJxIYgTEFaQVIKK0RSQUdJxIxFVknEhiBMSlVCSUNBCitEUkFHScSMRVZJxIYgTEpVQk9NSVIKK0RSQUdJxIxFVknEhiBNSUxKQQorRFJBR0nEjEVWScSGIE1JTE/FoAorRFJBR0nEjEVWScSGIE1JUktPCitEUkFHScSMRVZJxIYgUkFERU5LTworRFJBR0nEjEVWScSGIFNQQVNBCitEUkFHScSMRVZJxIYgU1JFVEVOCitEUkFHScSMRVZJxIYgVk9KSU4KK0RSQUdJxIxFVknEhiBWT0pJU0xBVgorRFJBR0nEjEVWScSGIFpPUkFOCitEUkFHScWgQSDFvUFSS08KK0RSQUdJxaBJxIYgQk9HREFOCitEUkFHScWgScSGIEJPUklTTEFWS0EKK0RSQUdJxaBJxIYgSk9WQU5LQQorRFJBR0nFoEnEhiBOSUtPTEEKK0RSQUdJxaBJxIYgUEVUQVIKK0RSQUdJxaBJxIYgUkFERQorRFJBR0nEhiDEjEVET01JUgorRFJBR0nEhiDFvUVMSktPCitEUkFHScSGIMSQT1LEkEUKK0RSQUdJxIYgQU5BCitEUkFHScSGIEJSQU5LTworRFJBR0nEhiBEVcWgQU4KK0RSQUdJxIYgRFXFoEFOCitEUkFHScSGIEVMVklSQQorRFJBR0nEhiBJTElKQQorRFJBR0nEhiBJTElKQQorRFJBR0nEhiBJTElKQQorRFJBR0nEhiBKRUxFTkEKK0RSQUdJxIYgTEpVQknFoEEKK0RSQUdJxIYgTEpVQknFoEEKK0RSQUdJxIYgTUFSSUpBTkEKK0RSQUdJxIYgTUlMRU5LTworRFJBR0nEhiBNSUxJVk9KRQorRFJBR0nEhiBNSUxLQQorRFJBR0nEhiBNSUxPUkFECitEUkFHScSGIE5BREEKK0RSQUdJxIYgTkVERUxKS08KK0RSQUdJxIYgTkVWRU5LQQorRFJBR0nEhiBOSUtPTEEKK0RSQUdJxIYgT0JSQUQKK0RSQUdJxIYgUEFVTEEKK0RSQUdJxIYgUEFWTEUKK0RSQUdJxIYgUEVSQQorRFJBR0nEhiBQRVRBUgorRFJBR0nEhiBQRVRBUgorRFJBR0nEhiBSQU5LTworRFJBR0nEhiBTQVZBCitEUkFHScSGIFNMQVZLTworRFJBR0nEhiBTUEFTT0pFCitEUkFHScSGIFNURVZBTgorRFJBR0nEhiBTVEVWQU4KK0RSQUdJxIYgVE9NSVNMQVYKK0RSQUdJxIYgVkVSQQorRFJBR0nEhiBWRVNOQQorRFJBR0nEhkVWScSGIEJPR0lDQQorRFJBR0nEhkVWScSGIEJPUklTTEFWCitEUkFHScSGRVZJxIYgQlJBTklTTEFWCitEUkFHScSGRVZJxIYgUkFKSUNBCitEUkFHSU4gxb1BUktPCitEUkFHSU4gQk9HREFOCitEUkFHSU4gQk9SSVZPSgorRFJBR0lOIERBTklMTworRFJBR0lOIERFU0FOS0EKK0RSQUdJTiBEVcWgS08KK0RSQUdJTiBHT1JEQU5BCitEUkFHSU4gSk9WQU4gRElQTCBJTkcKK0RSQUdJTiBKT1ZPIERJUEwgSU5HCitEUkFHSU4gTEFaQVIKK0RSQUdJTiBNQVJLTworRFJBR0lOIE1JT0RSQUcKK0RSQUdJTiBNSU9EUkFHCitEUkFHSU4gTklLT0xBCitEUkFHSU4gUEVUUklKQQorRFJBR0lOIFJBRElWT0oKK0RSQUdJTiBSSVNUTworRFJBR0lOIFNBxaBBCitEUkFHSU4gU09LSUNBCitEUkFHSU4gU1RFVkFOCitEUkFHSU4gU1ZFVElTTEFWCitEUkFHSU4gVkFTQQorRFJBR0lOIFZPSklTTEFWCitEUkFHSU4gWk9SQU4KK0RSQUdJTsSMScSGIERVxaBBTgorRFJBR0lOxIxJxIYgU0xBVktPCitEUkFHT8WgRVYgRFJBR0FOCitEUkFHT0pFVknEhiDFvUVMSktPCitEUkFHT0pFVknEhiBBTsSQRUxLTworRFJBR09KRVZJxIYgQk/FoEtPCitEUkFHT0pFVknEhiBCUkFOSVNMQVYKK0RSQUdPSkVWScSGIERBUklOS0EKK0RSQUdPSkVWScSGIERSQUdVVElOCitEUkFHT0pFVknEhiBHT0pLTworRFJBR09KRVZJxIYgSFJJU1RJTkEKK0RSQUdPSkVWScSGIExKVUJPTUlSCitEUkFHT0pFVknEhiBNSUxFTkEKK0RSQUdPSkVWScSGIE1JTEVOS08KK0RSQUdPSkVWScSGIE1JTEVOS08KK0RSQUdPSkVWScSGIE1JTElDQQorRFJBR09KRVZJxIYgTUlMT1JBRAorRFJBR09KRVZJxIYgTklLT0xBCitEUkFHT0pFVknEhiBSQURJxaBBCitEUkFHT0pFVknEhiBTVEVWQU4KK0RSQUdPSkVWScSGIFpMQVRBTkEKK0RSQUdPSkxPViBBTktJQ0EKK0RSQUdPSkxPViBCT8WgS08KK0RSQUdPSkxPViBEVcWgQU4KK0RSQUdPSkxPViBEVUJSQVZLQQorRFJBR09KTE9WIEdBVlJBCitEUkFHT0pMT1YgTEFaQVIKK0RSQUdPSkxPViBNQVJHSVRBCitEUkFHT0pMT1YgTUlMT8WgCitEUkFHT0pMT1YgTUlMT8WgCitEUkFHT0pMT1YgTUlST1NMQVYKK0RSQUdPSkxPViBWT0pJU0xBVgorRFJBR09KTE9WScSGIERVxaBLTworRFJBR09KTE9WScSGIExBWkFSCitEUkFHT0pMT1ZJxIYgTUFSQQorRFJBR09KTE9WScSGIE1JTEFOCitEUkFHT0pMT1ZJxIYgTUlMQU4KK0RSQUdPSkxPVknEhiBaT1JJQ0EKK0RSQUdPTEpFVknEhiBHT0pLTworRFJBR09MSkVWScSGIE1BUklOS08KK0RSQUdPTEpFVknEhiBNSVRBUgorRFJBR09MSkVWScSGIFJBTktPCitEUkFHT0xKRVZJxIYgU0VLVUxBCitEUkFHT0xKRVZJxIYgU1RPSkFOCitEUkFHT0xKRVZJxIYgVkxBREUKK0RSQUdPTUlST1ZJxIYgxJBPS0EKK0RSQUdPTUlST1ZJxIYgRElNSVRSSUpFCitEUkFHT01JUk9WScSGIERSQUdJQ0EKK0RSQUdPTUlST1ZJxIYgSVZBTgorRFJBR09NSVJPVknEhiBMSlVCSUNBCitEUkFHT01JUk9WScSGIFNBVkEKK0RSQUdPTUlST1ZJxIYgVE9ET1IKK0RSQUdPU0FWQUMgQU5HRUxJTkEKK0RSQUdPU0FWQUMgSUxJSkEKK0RSQUdPU0FWQUMgS0FUSUNBCitEUkFHT1NBVkFDIE1FTEFOSUpBCitEUkFHT1NBVkFDIE1JTEFOS08KK0RSQUdPU0FWQUMgTUlMT1JBRAorRFJBR09TQVZBQyBOSUtPTEEKK0RSQUdPU0FWQUMgWlVaQU5BCitEUkFHT1NBVkxKRVZJxIYgxJBVUkEKK0RSQUdPU0FWTEpFVknEhiBMSklMSkFOQQorRFJBR09TQVZMSkVWScSGIE1BUklKQQorRFJBR09TQVZMSkVWScSGIE1JUkpBTkEKK0RSQUdPU0FWTEpFVknEhiBNTEFERU4KK0RSQUdPU0FWTEpFVknEhiBTVEVWQSBESVBMIElORworRFJBR09TQVZMSkVWScSGIFNUT0rFoEEKK0RSQUdPU0FWTEpFVknEhiBWT0pBCitEUkFHT1NMQVZJxIYgVklEQUsKK0RSQUdPVkFDIFNMQVZLTworRFJBR09WScSGIMSMRURPCitEUkFHT1ZJxIYgQlVESU1JUgorRFJBR09WScSGIERSQUdBTgorRFJBR09WScSGIEdPSktPCitEUkFHT1ZJxIYgR09SREFOQQorRFJBR09WScSGIEpBU01JTktBCitEUkFHT1ZJxIYgSk9WQU5LQQorRFJBR09WScSGIE1JTEFOCitEUkFHT1ZJxIYgTUlMScSGCitEUkFHT1ZJxIYgTUlMSUNBCitEUkFHT1ZJxIYgTUlSQQorRFJBR09WScSGIFJBTktPCitEUkFHT1ZJxIYgU05JSkXFvUFOQQorRFJBR09WScSGIFNUQU1FTktBCitEUkFHT1ZJxIYgU1ZFVElNSVIKK0RSQUdPVknEhiBTVkVUT01JUgorRFJBR09WScSGIFZFUkEKK0RSQUdPVknEhiBWSURBSworRFJBR09WScSGIFZMQURBCitEUkFHT1ZJxIYgWk9SQU4KK0RSQUdVTUlMTyBNSUxPTUlSCitEUkFHVU1JTE8gTUlMVVRJTgorRFJBR1VOT1ZJxIYgQk9SSVNMQVYKK0RSQUdVTk9WScSGIFBFUk8KK0RSQUdVVElOT1ZJxIYgxb1JVktBCitEUkFHVVRJTk9WScSGIE1JTEFOCitEUkFHVVRJTk9WScSGIFBSRURSQUcKK0RSQUdVVElOT1ZJxIYgWk9SQU4KK0RSQUggSkVMSVNBVkVUQQorRFJBSCBKRUxJU0FWRVRBCitEUkFIT1RVU0tJIEJPUklTTEFWCitEUkFIT1RVU0tJIFBFVEFSCitEUkFLScSGIERSQUdJxaBBCitEUkFLScSGIFNMT0JPREFOIERSCitEUkFLVUwgVkFTTworRFJBS1VMQSBEVcWgQU4KK0RSQUtVTEEgUkFETUlMQQorRFJBS1VMScSGIEFMRUtTQU5EQVIKK0RSQUtVTEnEhiBCUkFOSVNMQVYKK0RSQUtVTEnEhiBEUkFHT01JUiBEUiBTVE9NQVRPTE9HCitEUkFLVUxJxIYgRFJBR09NSVIKK0RSQUtVTEnEhiBFUsW9RUJFVAorRFJBS1VMScSGIEpFTEVOQQorRFJBS1VMScSGIEpPVkFOCitEUkFLVUxJxIYgS09TVEEKK0RSQUtVTEnEhiBMQVpBUgorRFJBS1VMScSGIExKVUJJQ0EKK0RSQUtVTEnEhiBNQVJBCitEUkFLVUxJxIYgTUFSQQorRFJBS1VMScSGIE1JTEFOCitEUkFLVUxJxIYgTUlMQU4KK0RSQUtVTEnEhiBNSUxBTgorRFJBS1VMScSGIE1JTElWT0oKK0RSQUtVTEnEhiBNSVJPU0xBVgorRFJBS1VMScSGIFBSRURSQUcKK0RSQUtVTEnEhiBTTUlMSkEKK0RSQUtVTEnEhiBTT0ZJSkEKK0RSQUtVTEnEhiBTVEVWQU4KK0RSQUtVTEnEhiBTVE9KQU5LQQorRFJBS1VMScSGIFNWRVRJU0xBVgorRFJBS1VMScSGIFNWRVRPWkFSCitEUkFLVUxJxIYgU1ZFVE9aQVIKK0RSQUtVTEnEhiBUT0RPUgorRFJBS1VMScSGIFpPUkFOCitEUkFQxaBJTiDEjEFWQQorRFJBUMWgSU4gxJBPUsSQRQorRFJBUMWgSU4gREFOSUNBCitEUkFQxaBJTiBMRVBPU0FWQQorRFJBUMWgSU4gTUlMQU4KK0RSQVDFoElOIE1JTEVOS08KK0RSQVDFoElOIFBFVEFSCitEUkFQxaBJTiBQUkVEUkFHCitEUkFQxaBJTiBTQVZBCitEUkFQxaBJTiBaQUdPUktBCitEUkFQxaBJTiBaT1JBTgorRFJBUEnEhiBCT0dEQU4KK0RSQVBJxIYgU0VOSVRBCitEUkFQScSGIFNMT0JPREFOCitEUkFQScSGIFZFTElNSVIKK0RSQVBPxaAgU1RFVkFOCitEUkXFoEtBSSDFoEFORE9SCitEUkVDVU4gVkVMSktPCitEUkVIRVIgTEFKT8WgCitEUkVIRVIgTklLT0xBCitEUkVIRVIgT1RPCitEUkVIRVIgVklMSU0gRElQTCBJTkcKK0RSRUtPVknEhiDEkFVSTworRFJFS09WScSGIEtBVElDQQorRFJFS09WScSGIFpPUkFOCitEUkVNUEVUScSGIERBUktPCitEUkVNUEVUScSGIFBFVEFSCitEUkVNUEVUScSGIFpERU5LTworRFJFTkpBS09WScSGIEpFTElDQQorRFJFTktPVknEhiBMQVNMTworRFJFTk9WxIxBTklOIExKVUJPTUlSCitEUkVOT1ZBQyBSQU5LTworRFJFTk9WRUMgQ1ZFVE8KK0RSRVRBUiBNSVJLTworRFJFWkdBIEpBS09WCitEUkVaR0EgVE9ET1IKK0RSRVpHScSGIERBUkEKK0RSRVpHScSGIElMSUpBCitEUkVaR0nEhiBNQVJJSkEKK0RSRVpHScSGIE1JTEFOCitEUkVaR0nEhiBSQURJVk9KCitEUkVaR0nEhiBTVkVUTEFOQQorRFJFWkdJxIYgVkxBRElNSVIKK0RSSUdVTE9WIFNQQVNPSkUKK0RSSU7EjEVWScSGIMW9SVZPVEEKK0RSSU7EjEVWScSGIERFU0FOS0EgRFIKK0RSSU7EjEnEhiBNRUxBTklKQQorRFJJTsSMScSGIE1JTE9KS08KK0RSSU7EjEnEhiBSQURNSUxBCitEUklOScSGIEFMRUtTQU5EQVIKK0RSSU5JxIYgQk9SSVNMQVYKK0RSSU5JxIYgSkFHT0RBCitEUklOScSGIE1JTEFOCitEUklOScSGIE1JTEVOS08KK0RSSU5JxIYgTUlMRVRBCitEUklOScSGIE1JTE9WQU4KK0RSSU5JxIYgTUlSS08KK0RSSU5JxIYgTkVERUxKS08KK0RSSU5JxIYgUEVSTworRFJJTknEhiBSQURNSUxBCitEUklOScSGIFNBVk8KK0RSSU5JxIYgU0xBVklDQQorRFJJTknEhiBTVEVWTworRFJJTknEhiBUT01PCitEUklOScSGIFpEUkFWS08KK0RSSU5KT1ZTS0kgQUxFS1NBTkRBUgorRFJJTkpPVlNLSSBWT0pJU0xBVgorRFJLIEJBUkJBUkEKK0RSS1XFoEnEhiBJTElKQQorRFJMSkHEjEEgxJBPUsSQRQorRFJMSkHEjEEgxJBPUsSQRQorRFJMSkHEjEEgQlJBTktBCitEUkxKQcSMQSBEUkFHQU4KK0RSTEpBxIxBIERVxaBBTgorRFJMSkHEjEEgTUFSS08KK0RSTEpBxIxBIE1JxIZBCitEUkxKQcSMQSBNSUxBTktPCitEUkxKQcSMQSBNSUxPUkFECitEUkxKQcSMQSBNSVJLTworRFJMSkHEjEEgTkXEkE8KK0RSTEpBxIxBIE5FTkFECitEUkxKQcSMQSBSQURPVkFOCitEUkxKQcSMQSBSQURPVkFOCitEUkxKQcSMQSBTVE9KQQorRFJMSkHEjEEgWkRSQVZLQQorRFJMSkHEjEnEhiBLQVRBCitEUkxKRVZJxIYgxJBVUk8KK0RSTEpFVknEhiBBTklDQQorRFJMSkVWScSGIEpPVkFOS0EKK0RSTEpFVknEhiBNSUxFVEEKK0RSTEpFVknEhiBNSUxKQQorRFJMSkVWScSGIE1JUkpBTkEKK0RSTEpJxIYgTUlMQURJTgorRFJMSknEhiBQUkVEUkFHCitEUk1BTkFDIE1JUk9TTEFWCitEUk1BTkFDIFNUQU5LTworRFJNQU5PVknEhiBNSUxFVkEKK0RSTkRBUkVWScSGIEJPUkEKK0RSTkRBUkVWScSGIEJPUkEKK0RSTkRBUkVWScSGIEtBVElDQQorRFJOREFSU0tJIE1JTEFOCitEUk5EQVJTS0kgVkVMSU1JUgorRFJPQkFDIMW9QVJLTworRFJPQkFDIMW9QVJLTworRFJPQkFDIMSQT1LEkEUKK0RST0JBQyBBTkEKK0RST0JBQyBCUkFOSVNMQVYKK0RST0JBQyBMSklMSkFOQQorRFJPQkFDIE1JTEFOCitEUk9CQUMgTUlMQU4KK0RST0JBQyBNSUxPUkFECitEUk9CQUMgTUlST1NMQVYKK0RST0JBQyBORU5BRAorRFJPQkFDIE5JS09MQQorRFJPQkFDIFBSRURSQUcKK0RST0JBQyBSQURPSktBCitEUk9CQUMgUkFET0pLQQorRFJPQkFDIFNMQVZLTworRFJPQkFDIFZMQURPCitEUk9CQUMgVlVLQcWgSU4gTk9WSU5BUgorRFJPQkFDIFpEUkFWS08KK0RST0JJTkEgSlVMSUpBTkEKK0RST0JJTkEgTEpVQklDQQorRFJPQklOQSBNSUhBTEoKK0RST0JJTkpBSyBSVcW9QQorRFJPQk5KQUsgRVZJQ0EKK0RST0JOSkFLIExKSUxKQU5BCitEUk9CTkpBSyBNSUxJVk9KRQorRFJPQk5KQUsgTUlPRFJBRworRFJPQk5KQUsgTU9NxIxJTE8KK0RST0JOSkFLIFJBREnFoEEKK0RST0JOSkFLIFJBRE9KSUNBCitEUk9CTkpBSyBSQURPSklDQQorRFJPQk5KQUtPVknEhiBEVcWgQU4KK0RST0JOSkFLT1ZJxIYgR1ZPWkRFTgorRFJPQk5KQUtPVknEhiBSSVNUSVZPSkUKK0RST0JOSklLIEpPU0lQCitEUk9CTkpJSyBKVURJVAorRFJPTkpBSyDFvUlWQU5BCitEUk9OSkFLIMW9SVZLTworRFJPTkpBSyDEkE9SxJBFCitEUk9OSkFLIERBUklOS0EKK0RST05KQUsgTUlMQU4KK0RST05KQUsgTUlSSkFOQQorRFJPTkpBSyBPTEdBCitEUk9OSkFLIFJBU1RLTworRFJPTkpBSyBTQVZJTktBCitEUk9OSkFLIFNURVZBTgorRFJPUEtBIEFSUEFECitEUk9QS0EgSkVMRU5BCitEUk9QS0EgTkFUQcWgQQorRFJPUEtBIFNURVZBTgorRFJPUE8gTUlMS0EKK0RST1BPIFZBU0EKK0RST1BPIFpPUkFOCitEUk9aRElLIElMT05BCitEUk9aRElLIE1BUklKQQorRFJVxb1FVEnEhiDFvUlLQQorRFJVR09WScSGIFJVxb1JQ0EKK0RSVUdPVknEhiBSVcW9SUNBCitEUlZFTkTFvUlKQSBSQURPVkFOCitEUlZFTkTFvUlKQSBTTEFWS08KK0RSVkVOSkFLIFZFUklDQQorRFXEjEVWScSGIFZBU0lMSUpFCitEVcSMScSGIE1JTEFOCitEVcSMScSGIFNMT0JPREFOCitEVcWgQU5JxIYgRFJBR0FOCitEVcWgQU5JxIYgTEFaQVIKK0RVxaBBTknEhiBMSlVCSUNBCitEVcWgQU5JxIYgTkFEQQorRFXFoEFOScSGIE5FTkFECitEVcWgQU5PVknEhiBTVEFOT0pFCitEVcWgQU5PVknEhiBaVkVaREFOQQorRFXFoEVLIFpMQVRLTyBESVBMIE9FQworRFXFoEnEhiBCUkFOS08KK0RVxaBJxIYgWk9SQU4KK0RVxIZBSyBBTkRSSUpBCitEVcSGQUsgQVJBTktBCitEVcSGQUsgQkFSQkFSQQorRFXEhkFLIE1JSEFKTE8KK0RVxIZBSyBUT01BCitEVcSQQUsgRFJBR1VUSU4KK0RVxJBJSyBGUkFOSkEKK0RVQkFJxIYgQk/FvUlEQVIKK0RVQkFJxIYgTUlMQU4KK0RVQkFJxIYgTUlSS08KK0RVQkFKScSGIMW9QVJLTworRFVCQUpJxIYgxJBVUkEKK0RVQkFKScSGIEFMRUtTQU5EQVIKK0RVQkFKScSGIEJJTEpBTkEKK0RVQkFKScSGIERSQUdBTgorRFVCQUpJxIYgTUlMSUNBCitEVUJBSknEhiBNSUxPxaAKK0RVQkFKScSGIE1JUktPCitEVUJBSknEhiBWSURBCitEVUJMSkVWScSGIFNMT0JPREFOCitEVUJMSkVWScSGIFNUT0pBTgorRFVCTEpFVknEhiBWT0pJU0xBVgorRFVCTEpFVknEhiBaTEFUQQorRFVCTkpBS09WScSGIE1BUlRBCitEVUJPVlNLQSBNSUxPVEEKK0RVQk9WU0tJIEpBTktPCitEVUJPVlNLSSBLQVRJQ0EKK0RVQlJBVkFDIERVxaBBTgorRFVCUk9KQSBEQU5JQ0EKK0RVQlJPSkEgU0xPQk9EQU4KK0RVQ0FOT1ZJxIYgQk/FoEtPCitEVUNJxIYgTUlMQU4KK0RVREEgUEFWTEUKK0RVREHFoCDEkFVSQQorRFVEQcWgIMSQVVJBCitEVURBxaAgxJBVUkEKK0RVREHFoCBBTkEKK0RVREHFoCBBTlRBTAorRFVEQcWgIEFSUEFECitEVURBxaAgQVJQQUQKK0RVREHFoCBCT1JJUworRFVEQcWgIEhFTEVOQQorRFVEQcWgIEpBTk/FoAorRFVEQcWgIEpVTElKQU4KK0RVREHFoCBMQVpBUgorRFVEQcWgIE1BUklOS08KK0RVREHFoCBNSUhBTEoKK0RVREHFoCBQSVJPxaBLQQorRFVEQcWgIFJPTUFOCitEVURBxaAgU0xBVk9NSVIKK0RVREFLIEpBUk9TTEFWCitEVURBSyBNQVJJSkEKK0RVREFLIFNURVZBTgorRFVEQU4gTUlMSVZPSgorRFVEQVIgTklLT0xBCitEVURBUklOIMW9QVJLTworRFVEQVJJTiBEUkFHQU4KK0RVREFSSU4gU0FWQQorRFVEQVJJTiBTVEVWQU4KK0RVREFSSU4gU1RFVkFOCitEVURBUklOIFZFU0VMSU4KK0RVREFSSU4gWk9SQU4KK0RVREFSSU4gWk9SQU4KK0RVREnEhiBBTklDQQorRFVEScSGIEtPU1RBCitEVURJxIYgS09TVEEKK0RVREnEhiBNQVRFCitEVURJxIYgTUlMQQorRFVEScSGIE1JTEUKK0RVREnEhiBNSUxPxaAKK0RVREnEhiBNSUxPxaAKK0RVREnEhiBOQURBCitEVURJxIYgU1ZFVE9aQVIKK0RVREnEhiBWQVNBCitEVURJxIYgVkFTQQorRFVEScSGIFZFUklDQQorRFVEScSGIFpPUkFOCitEVURPSkVWScSGIE5FRMW9QUQKK0RVRE9LIERBTklFTCBEUgorRFVET0sgSkFOS08KK0RVRE9LIFBBVkVMCitEVURVS09WScSGIEFMRUtTQU5EQVIKK0RVRFVLT1ZJxIYgU0xPQk9EQU4KK0RVRFVLT1ZJxIYgU1RFVkFOCitEVURWQVJTS0kgQk/FvUlEQVIKK0RVRFZBUlNLSSBEUkFHT0xKVUIKK0RVRFZBUlNLSSBJVkFOCitEVURWQVJTS0kgUEFKQQorRFVEVkFSU0tJIFZFTElOS0EKK0RVR0FKTEnEhiBBTsSQRUxLQQorRFVHQUpMScSGIEFSSkFOQQorRFVHQUpMScSGIE1JTE/FoAorRFVHQUpMScSGIFJBRE9WQU4KK0RVR0FMScSGIERSQUdBTgorRFVHQU5Exb1JSkEgQlJBTktPCitEVUdBTkTFvUlKQSBEUkFHT01JUgorRFVHQU5Exb1JSkEgRFXFoEFOCitEVUdBTkTFvUlKQSBORURFTEpLTworRFVHSU4gU1RPSkFOCitEVUdPxaBJSkEgxb1JVktPCitEVUdPxaBJSkEtTUFLU0lNT1ZJxIYgTkFEQQorRFVHT05KScSGIE1JTEUKK0RVR09OSknEhiBNSUxVVElOCitEVUdPTkpJxIYgTklLT0xBCitEVUdPTkpJxIYgU1ZFVE9NSVIKK0RVSCBLQVRBUklOQQorRFVIQcSMRUsgVkxBRE8KK0RVScSGIEpPU0lQCitEVUpBS09WScSGIE1JTEVOQQorRFVKQUtPVknEhiBNSUxJQ0EKK0RVSkFLT1ZJxIYgTk9WQQorRFVKQUtPVknEhiBWRUxKS08KK0RVSkVWU0tJIFZBTkdFTCBEUgorRFVKScSGIMSQT1LEkEUKK0RVSknEhiBJVkFOCitEVUpJxIYgSVZJQ0EKK0RVSknEhiBMSlVCSUNBCitEVUpJxIYgU0xPQk9EQU4KK0RVSknEhiBTTE9CT0RBTgorRFVKScSGIFNMT0JPREFOCitEVUpJxIYgU01JTEpBCitEVUpJxIYgU1RPSkFOS0EKK0RVSklOIMW9SVZBCitEVUpJTiDFvUlWS08KK0RVSklOIERBTklDQQorRFVKSU4gTFVLQQorRFVKSU4gU0lNRU9OCitEVUpJTiBTVkVUSVNMQVYKK0RVSklOIFRFT0RPUgorRFVKSU4gVklUT01JUgorRFVKS0nEhiBWTEFESVNMQVYKK0RVSktPVknEhiBCUkFOS08KK0RVSktPVknEhiBQRVRBUgorRFVKS09WScSGIFRFT0RPUgorRFVKS09WScSGIFZMQURJTUlSCitEVUpMT1ZJxIYgQk9SQQorRFVKTUnEhiBBTlRFCitEVUpNT1ZJxIYgRUxJWkFCRVRBCitEVUpNT1ZJxIYgRVZBCitEVUpNT1ZJxIYgRkVSRU5DCitEVUpNT1ZJxIYgSk9TSVAKK0RVSk9WScSGIElMSUpBCitEVUpPVknEhiBSQURNSUxBCitEVUpPVknEhiBSQURNSUxBCitEVUtBIE1JUk9TTEFWCitEVUtBSSBBTkRSQcWgCitEVUtBTiBOQVRBxaBBCitEVUtBUknEhiBWSURBCitEVUtFUyBGT1NLQQorRFVLScSGIMSQVVJPCitEVUtJxIYgQk9SQQorRFVLScSGIERBTklMTworRFVLScSGIERSQUdBTgorRFVLScSGIERSQUdJQ0EKK0RVS0nEhiBEVcWgQU4KK0RVS0nEhiBJVkFOS0EKK0RVS0nEhiBKRUxFTkEKK0RVS0nEhiBKT1ZBTgorRFVLScSGIEpPVkFOCitEVUtJxIYgS09TQQorRFVLScSGIExKVUJJQ0EKK0RVS0nEhiBNSUxBTgorRFVLScSGIE1JTEFOCitEVUtJxIYgTUlMQU4KK0RVS0nEhiBNSUxJQ0EKK0RVS0nEhiBNSUxJQ0EKK0RVS0nEhiBNSVJKQU5BCitEVUtJxIYgUFJFRFJBRworRFVLScSGIFJBREUKK0RVS0nEhiBSQURFCitEVUtJxIYgUkFKS08KK0RVS0nEhiBTTEFWSUNBCitEVUtJxIYgU09GSUpBCitEVUtJxIYgU1RFVk8gRElQTCBJTkcKK0RVS0nEhiBWVUtBxaBJTiBEUgorRFVLScSGIFpPUkFOCitEVUtPVkEgTElMSQorRFVLT1ZTS0kgU1ZFVElTTEFWCitEVUxFSkFOIMW9SVZBRElOS0EKK0RVTEVKQU4gU0xBVktPCitEVUxJxIYgxaBBTkRPUgorRFVMScSGIEFOS0EKK0RVTEnEhiBJVkFOCitEVUxJxIYgSk9TSVAKK0RVTEnEhiBKT1NJUAorRFVMScSGIExKVURFVklUCitEVUxJxIYgTUFHREEKK0RVTEnEhiBNSUhBSkxPCitEVUxJxIYgTUlST1NMQVYKK0RVTEnEhiBOSUtPTEEKK0RVTE9WScSGIEFOxJBFTEtPCitEVUxPVknEhiBCT0dEQU4KK0RVTE9WScSGIEJSQU5LTworRFVMT1ZJxIYgRFXFoEFOCitEVUxPVknEhiBNSUxPVkFOCitEVUxPVknEhiBNSUxVTgorRFVMT1ZJxIYgUkFET1ZBTgorRFVMT1ZJxIYgUkFOS08KK0RVTE9WScSGIFJBVEtBCitEVUxPVknEhiBaT1JBTgorRFVNQSBNSUxPUkFECitEVU1BTsSMScSGIFNMQVZJQ0EKK0RVTUFOxIxJxIYgWkRSQVZLTworRFVNQU5PVknEhiBNTEFERU4KK0RVTUVEQcWgIFNQQVNPSkUKK0RVTUVEQcWgIFZBU0lMSUpFCitEVU1FTsSMScSGIElWQU4KK0RVTUnEhiBTTEFWSUNBCitEVU1JxIYgU1RFVkFOIERJUEwgSU5HCitEVU1JVFJPViBBTEVLU0FOREFSCitEVU1JVFJPViBESU1JVFJJSkUKK0RVTUlUUk9WIExVS0EKK0RVTUlUUk9WIE1BUklKQQorRFVNSVRST1YgTUlPRFJBRworRFVNSVRST1YgTkVERUxKS08KK0RVTUlUUk9WIFNMQVZLTworRFVNSVRST1YgVkVSSUNBCitEVU1JVFJPViBWT0pJTgorRFVNTknEhiDFoEFSSUtBCitEVU1OScSGIE1JTEFOCitEVU1PTknEhiBCUkFOS08KK0RVTU9OScSGIFBFVEFSCitEVU7EkEVSIFJBREUKK0RVTsSQRVIgUkFERQorRFVOxJBFUklOIMSQT1LEkEUKK0RVTsSQRVJPViBLT1NBTkEKK0RVTsSQRVJPViBOQURBCitEVU7EkEVST1YgUElST8WgS0EKK0RVTsSQRVJPVknEhiBSQURPVkFOCitEVU7EkEVSU0tJIMW9SVZBTgorRFVOxJBFUlNLSSDEkE9SxJBFCitEVU7EkEVSU0tJIMSQT1LEkEUKK0RVTsSQRVJTS0kgQUxFS1NBTkRBUgorRFVOxJBFUlNLSSBBTkEKK0RVTsSQRVJTS0kgQ1ZFVEFOQQorRFVOxJBFUlNLSSBEUkFHQU4KK0RVTsSQRVJTS0kgSVZBTktBCitEVU7EkEVSU0tJIElWQU4KK0RVTsSQRVJTS0kgSk9WQU4KK0RVTsSQRVJTS0kgTUFSSUpBCitEVU7EkEVSU0tJIE1JTEFOCitEVU7EkEVSU0tJIE1JUkpBTkEKK0RVTsSQRVJTS0kgTk9WQUsKK0RVTsSQRVJTS0kgU0lNQQorRFVOxJBFUlNLSSBTT0ZJSkEKK0RVTsSQRVJTS0kgU1RBTklTTEFWCitEVU7EkEVSU0tJIFRJSE9NSVIKK0RVTsSQRVJTS0kgVFJJVkEKK0RVTsSQRVJTS0kgWkRSQVZLTworRFVOREnEhiBIQVJBTEFNUElKRQorRFVOREnEhiBKRUxFTkEKK0RVTkRJxIYgU0xBVktPCitEVU5ET1ZJxIYgU1RKRVBBTgorRFVOScSGIERSQUdJxIYKK0RVTkpJxIYgU1RPSkFOCitEVU5PVknEhiBNSUxLQQorRFVOT1ZJxIYgTkFUQcWgQQorRFVQQUsgSU1SRQorRFVQQUsgTUFSSUpBCitEVVBBTE8gU0xBVktBCitEVVBPUiBHT1JEQU5BCitEVVBPUiBNSUxPxaAKK0RVUE9SIE1JUktPCitEVVBPUiBaT1JJQ0EKK0RVUkHEjEtPVknEhiBCQUhSSUpBCitEVVJBxIxLT1ZJxIYgU0VOSUpBCitEVVJBS09WScSGIMSQVVJPCitEVVJBS09WScSGIERSQUdBTgorRFVSQUtPVknEhiBHT0pLTworRFVSQUtPVknEhiBHT0pLTworRFVSQU4gQlJBTktPCitEVVJBTk9WScSGIFZMQURJTUlSCitEVVJHVVRPVknEhiBSSUZBRAorRFVSS0FMScSGIFZJS1RPUgorRFVSS09WScSGIE1JTE9SQUQKK0RVUktPVknEhiBWTEFKS08KK0RVUktVTEnEhiBBTEVLU0FOREFSCitEVVJLVUxJxIYgU1BBU09KRQorRFVSTEVWScSGIE1JTElDQQorRFVSTUFOIERSQUdPTEpVQgorRFVSTUFOIEdPSktPCitEVVJNQU4gTkFEQQorRFVSTUFOIFJBU1RJU0xBVgorRFVST8WgS0EgxaBBTkRPUgorRFVST8WgS0EgSVZBTktBCitEVVJPxaBLQSBKRUxFTkEKK0RVUk/FoEtBIE1JSEFKTE8KK0RVUk/FoEtJIEpVTElKQU5BCitEVVJVxaBLQSBQQUwKK0RVUlVUT1ZJxIYgRFJBR0FOCitEVVJVVE9WScSGIFJBRE9WQU4KK0RVUlVUT1ZJxIYgU0VOS0EKK0RVU0nEhiBHT1NQQVZBCitEVVNQQVJBIE1JTEVOQQorRFVTUEVSIMWgSU1PCitEVVRJTkEgQU5EUklKQQorRFVUSU5BIEJSQU5JU0xBVgorRFVUSU5BIEJSQVRPTEpVQgorRFVUSU5BIERSQUdBTgorRFVUSU5BIElSRU5BCitEVVRJTkEgTUlPTUlSCitEVVRJTkEgU0xPQk9EQU4KK0RVVElOQSBWTEFESU1JUgorRFVWTkpBSyBESVZOQQorRFVWTkpBSyBESVZOQQorRFVWTkpBSyBJVklDQQorRFVWTkpBSyBLT1NUQQorRFVWTkpBSyBMQVpBUgorRFVWTkpBSyBMQVpBUgorRFVWTkpBSyBNQVJBCitEVVZOSkFLIE1JTEVOS08KK0RVVk5KQUsgTUlMT1JBRAorRFVWTkpBSyBORU5BRAorRFVWTkpBSyBSQURPSktBCitEVVZOSkFLIFNUQU5BCitEVk9SQcSMS08gxaBBTkRPUgorRFZPUk5JxIYgTUlSSkFOQQorRcWgS0kgRVLFvUVCRVQKK0XFoEtJxIxFVknEhiBWQVNBCitFxIZJTSBSQURPVkFOCitFxIZJTU9WScSGIEdPSktPCitFxIZJTU9WScSGIE5JS09MQQorRcSGSU1PVknEhiBWRVNFTElOCitFxJBFREkgSk/FvUVGCitFxJBFREkgSlVMSUpBTkEKK0VCRU5IRS1KT1ZBTk9WScSGIEpBU05BIERSCitFQkVOSEUgTklLT0xBCitFQkVSSEFSRC1NQVJLT1ZJxIYgTUlSSkFOQQorRUJFUkhBUlQgUEVUQVIKK0VCRVJTVC1TRURMQcSMRUsgR0FCUklFTEEKK0VDRVQgSk9WQU4KK0VDRVQgSk9WQU4KK0VDRVQgS0FUQUxJTgorRUNFVCBQQUwKK0VERUxFTkpJIE1BUklKQQorRURFTElOU0tJIEVVR0VOCitFREVMSU5TS0kgSk9BS0lNCitFREVMSU5TS0kgTEpVQklDQQorRURFTElOU0tJIFZFUkEKK0VERUxJTlNLSSBWRVJBCitFRlRFTUlKVSBOSUtPTEEKK0VHRUxKQSBNSUxJQ0EKK0VHRUxKQSBORUJPSsWgQQorRUdFUknEhiBNSVJPU0xBViBEUgorRUdJxIYgxIxFRE1JTEEKK0VHScSGIMSQT0tBCitFR0nEhiBCUkFDTworRUdJxIYgQlJBTklTTEFWCitFR0nEhiBDVkVUQU5LQQorRUdJxIYgRFJBR0FOCitFR0nEhiBNQU5FCitFR0nEhiBNQVJJSkFOCitFR0nEhiBNSUNBCitFR0nEhiBNSUxBTgorRUdJxIYgTUlMQU4KK0VHScSGIE9MR0EKK0VKScSGIE1JTEFOCitFS0XFoCBBTEVLU0FOREFSCitFS0hBUkRUIExKVUJJQ0EKK0VLTEnEhiBNQVJKQU4KK0VLTUXFoMSMScSGIE1JTElTQVYKK0VLTUVExb1JxIYgQU5LQQorRUtNRUTFvUnEhiBOSUtPTEEKK0VLUkVTIMSQT1LEkEUKK0VLUkVTIEFORFJJSkEKK0VLUkVTIEpBTk/FoAorRUtSRVMgSlVMSUpBTkEKK0VLUkVTIE1JTEtBCitFS1JFUyBOQU5ET1IKK0VLUkVTIE9UTworRUtSRVMtUkFLScSGIFZFUklDQQorRUtSRVMgUk9aQUxJSkEKK0VLUkVTIFZBTEVSSUpBCitFTEVLIEVWQQorRUxFUk8gWlZFWkRBTkEKK0VMRVNJTiBCUkFOSVNMQVYKK0VMRVNJTiBCUkFOS0EKK0VMRVNJTiBEUkFHQQorRUxFU0lOIERSQUdPTEpVQgorRUxFU0lOIERVxaBBTktBCitFTEVTSU4gR1JBRElNSVIKK0VMRVNJTiBNSVJPU0xBVgorRUxFU0lOIFNBVkEKK0VMRVNJTiBTSU5JxaBBCitFTEVTSU4gVkxBRElNSVIKK0VMRVogxJBPS0EKK0VMRVogR09SQU4KK0VMRVpPVknEhiBOSUtPTEEKK0VMRVpPVknEhiBQRVRBUgorRUxIQVJUIExBWkFSCitFTEhBUlQgTEFaQVIKK0VMSUFTIElSRU5BCitFTElKQcWgIEpBTgorRUxJWkVLIMW9VcW9QU5BCitFTElaRUsgSVZBTgorRUxPUiBJxaBUVkFOCitFTE9SIEpBTk/FoAorRUxPUiBMSlVCSUNBCitFTE9SIFBBVkxFCitFTE9SIFpPUklDQQorRUxURVIgSkFOT8WgCitFTFRFUiBaT0xUQU4KK0VNRVIgSkFLT1YKK0VNRVIgTUFSS08KK0VNSU5JIEJBSlJBTQorRU1JTkkgR0FOSQorRU1JTkkgUk9aQUxJSkEKK0VOQUhPTE8gTkFEQQorRU5HRUxNQU4gS0FUSUNBCitFTkdFUlQgTUlIQUpMTworRU5HTEVSIExBSk/FoAorRVBJRkFOScSGIENWRVRBTkEKK0VQSUZBTknEhiBEVcWgS08KK0VSxIxJLVZBUkdBIE1BUknFoEtBCitFUsSMScSGIEJPSkFOQQorRVLEjEnEhiBNSUxPUkFECitFUsSMScSGIFJBRE9WQU4KK0VSxaBURSDFvUVMSktPCitFUkFLIEJPUk8KK0VSQUsgRFXFoEFOCitFUkFLIElMSUpBCitFUkFLIExBWkFSCitFUkFLIE1BUktPCitFUkFLT1ZJxIYgQk9HREFOCitFUkFLT1ZJxIYgREFOSUxPCitFUkFLT1ZJxIYgRFJBR0lDQQorRVJBS09WScSGIEtSSVNUSVZPSgorRVJBS09WScSGIExKVUJJxaBBCitFUkFLT1ZJxIYgTEpVQk9KRQorRVJBS09WScSGIE1JTE9SQUQKK0VSQUtPVknEhiBNSVRBUgorRVJBS09WScSGIFJBREUKK0VSQUtPVknEhiBSQUpLTworRVJBS09WScSGIFNSRVRFTgorRVJCRcWgIEVSxb1FQkVUCitFUkJFxb1OSUsgU09OSkEKK0VSQkVTIEJSQU5LQQorRVJCRVMgTUFSR0lUQQorRVJCRVogQkxBxb1PCitFUkJFWiBFUsW9RUJFVAorRVJDRUcgxaBQSVJPCitFUkNFRyDFvUFSS08KK0VSQ0VHIMW9SVZLTworRVJDRUcgREFSQQorRVJDRUcgTEpJTEpBTkEKK0VSQ0VHIE1JS0EKK0VSQ0VHIFJBRE9WQU4KK0VSQ0VHIFJBSktPCitFUkNFRyBSQUpLTworRVJDRUcgU0xPQk9EQU4KK0VSQ0VHIFNUQU5BCitFUkNFRyBaREVOS08KK0VSQ0VHIFpEUkFWS08KK0VSQ0VHQU4gR09SQU4KK0VSQ0VHQU4gTUlUQQorRVJDRUdPVsSMRVZJxIYgxb1JVk9EQVIKK0VSQ0VHT1bEjEVWScSGIERPU1RBCitFUkNFR09WQUMgQU7EkEVMS08KK0VSQ0VHT1ZBQyBCUkFUSVNMQVYKK0VSQ0VHT1ZBQyBNSU9EUkFHCitFUkNFR09WQUMgTUlUQVIKK0VSQ0VHT1ZBQyBOQURBCitFUkNFR09WQUMgU0FWQQorRVJDRUdPVkFDIFNMT0JPREFOCitFUkNFR09WQUMgU1RFVkFOCitFUkNFR09WQUMgVE9NSVNMQVYKK0VSQ0VHT1ZJxIYgREFOSUNBCitFUkRFxaAgREFOSUVMCitFUkRFxaAgRU1JTAorRVJERcWgIEVTVEVSCitFUkRFxaAgRVRFTEtBCitFUkRFxaAgSUxPTkEKK0VSREXFoCBJVkFOCitFUkRFxaAgSlVMSUpBTkEKK0VSREXFoCBLTEFSQQorRVJERcWgIExBU0xPCitFUkRFxaAgUEFMCitFUkRFxaAgUEVUQVIKK0VSREXFoEkgTEFTTE8KK0VSREXFoEkgVkFMRVJJSkEKK0VSREVHIEFSQU5LQQorRVJERUcgSUxPTkEKK0VSREVHIEpBTk/FoAorRVJERUcgSlVTVElOQQorRVJERUcgVE9NSVNMQVYKK0VSREVJIMWgQU5ET1IKK0VSREVJIEpPU0lQCitFUkRFSSBKT1ZBTgorRVJERUkgTUlIQUpMTworRVJERUkgUEVUQVIKK0VSREVJIFpPTFRBTgorRVJERUxKIEJSQU5LTworRVJERUxKIEVNSUwKK0VSREVMSiBHT1JBTgorRVJERUxKIExVRE1JTEEKK0VSREVMSiBNSUxVVElOCitFUkRFTEpBTiDFvUlWS08KK0VSREVMSkFOIEFMRUtTQU5EQVIKK0VSREVMSkFOIEFMS1NBTkRBUgorRVJERUxKQU4gQklTRVJLQQorRVJERUxKQU4gQk/FoEtPCitFUkRFTEpBTi1CT0dEQU5PViBTTEFWSUNBCitFUkRFTEpBTiBEQU5JTE8KK0VSREVMSkFOIERPQlJJVk9KCitFUkRFTEpBTiBEVcWgQU5LQQorRVJERUxKQU4gRFXFoEFOCitFUkRFTEpBTiBEVcWgQU4KK0VSREVMSkFOIERVxaBBTgorRVJERUxKQU4gRFXFoEFOCitFUkRFTEpBTiBKRUxFTkEKK0VSREVMSkFOIEtBVElDQQorRVJERUxKQU4gTEpVQklDQQorRVJERUxKQU4gTEpVQk9NSVIKK0VSREVMSkFOIE1JTEFESU4KK0VSREVMSkFOIE1JTEFOIERJUEwgSU5HCitFUkRFTEpBTiBNSUxBTgorRVJERUxKQU4gTUlMRU5LTworRVJERUxKQU4gTUlMSVZPSgorRVJERUxKQU4gTUlMT1JBRAorRVJERUxKQU4gTUlMT1JBRAorRVJERUxKQU4gTUlMT1ZBTgorRVJERUxKQU4gTUlSSkFOQQorRVJERUxKQU4gTkFERcW9REEKK0VSREVMSkFOIE5JS09MQQorRVJERUxKQU4gUFJFRFJBRworRVJERUxKQU4gUkFESVZPSgorRVJERUxKQU4gU0xBVktBCitFUkRFTEpBTiBTTEFWS0EKK0VSREVMSkFOIFNMT0JPREFOIERJUEwgSU5HCitFUkRFTEpBTiBTUkVET0pFCitFUkRFTEpBTiBTVEVWQU4KK0VSREVMSkFOIFNWRVRJU0xBVgorRVJERUxKQU4gVElIT01JUgorRVJERUxKQU4gVkVSSUNBCitFUkRFTEpBTiBWVUtJQ0EKK0VSREVMSkFOIFpMQVRLTworRVJERUxKQU4gWk9SQQorRVJERUxKQU5JTiBBTsSQRUxLTworRVJERUxKSSDEkEVSxJAKK0VSREVMSkkgQU5UQUwKK0VSREVMSkkgQkVMQQorRVJERUxKSSBCSVNFUktBCitFUkRFTEpJIEJPUkJBTEEKK0VSREVMSkkgREXFvUUKK0VSREVMSkkgRFJBR0lDQQorRVJERUxKSSBGUkFOSkEKK0VSREVMSkkgR0HFoFBBUgorRVJERUxKSSBJxaBUVkFOCitFUkRFTEpJIEpFTkUKK0VSREVMSkkgSk/FvUVGCitFUkRFTEpJIEtBUk9MSgorRVJERUxKSSBMQUpPxaAKK0VSREVMSkkgTEFTTE8gRElQTCBJTkcKK0VSREVMSkkgTUFUSUxEQQorRVJERUxKSSBTT0ZST05BCitFUkRFTEpJIFNURVZBTgorRVJERUxKSSBUSUJPUgorRVJERVZJSyBNQVJBCitFUkRFVklLIE1BUklKQQorRVJERVZJSyBTTE9CT0RBTgorRVJERVZJSyBWT0pJU0xBVgorRVJERVZJSyBWVUtJQ0EKK0VSREVWSUsgWkRSQVZLTworRVJFxaAgxaBBTkRPUgorRVJFxaAgTEFTTE8KK0VSRcSQSU4gVlVLQcWgSU4KK0VSRUcgTEFKT8WgCitFUkVNScSGIEpFTElDQQorRVJFTUnEhiBKT1ZBTgorRVJFTUnEhiBOSU5PU0xBVgorRVJFTUnEhiBSQURPVkFOCitFUkVNScSGIFNBVkEKK0VSRU1JxIYgU0xBVklDQQorRVJFTUnEhiBTVEFOSVNMQVZBCitFUkVNScSGIFRJSE9NSVIgRFIgTEVLQVIKK0VSRU1JxIYgVkVTRUxJTktBCitFUkVNSUpBIE1JTEFOCitFUkVNSUpBIFNUQU5LTworRVJFTUlOIE5JS09MQQorRVJFTlRBIExKVUJJQ0EKK0VSRyBPTEdBCitFUkdFTEHFoEVWIERVQlJBVktBCitFUkdFTEHFoEVWIElWQU4KK0VSR0VMQcWgRVYgSk9WQU4KK0VSR0VMQcWgRVYgTUlMQU4KK0VSR0VMQcWgRVYgTUlMT8WgCitFUkdFTEHFoEVWIE1PTcSMSUxPCitFUkdFTEHFoEVWIE5FU1RPUgorRVJHRUxBxaBFViBTTUlMSktBCitFUkdFTEHFoEVWIFRJSE9NSVIKK0VSR0VMQcWgRVYgWk9SS0EKK0VSSEFSVEnEjCBBTkEKK0VSSEFSVEnEjCBSVURPTEYKK0VSSSBJTE9OQQorRVJJIEpBTk/FoAorRVJJIEpPVkFOCitFUknEhiDEkFVMSU5LQQorRVJJxIYgQk/FvUlOCitFUknEhiBMSklMSkFOQQorRVJJxIYgTUFSS08KK0VSScSGIE1JTE9NSVIKK0VSScSGIE5FQk9KxaBBCitFUknEhiBQRVJPCitFUknEhiBTTkXFvUFOQQorRVJJxIYgU1ZFVE9NSVIKK0VSScSGIFpPUklDQQorRVJLScSGIMSQT1LEkEUKK0VSS0nEhiBQRVRBUgorRVJMQVVFUiBJVkFOCitFUkxBVUVSIEpPU0lQCitFUkxFUiBWRVJPTkEKK0VSTkVTVCBGUkFOSkEKK0VST1IgSk9WQU4KK0VST1IgUEVUQVIKK0VST1IgU1RFVkFOCitFUlNLSSBQRVRBUgorRVJTS0ktUEVUS09WScSGIFNPTkpBCitFUlRMIEZFUkVOQworRVJUTCBIRURWSUdBCitFUlRMIExBU0xPCitFUlRMIFZMQVNUQQorRVMgS0xBUkEKK0VTRSDFoEFORE9SCitFU0tJxIYgU1ZFVE9aQVIKK0VTVEVSIEpPU0lQCitFU1RFUiBNQVJJSkEgRFIKK0VTVEVSIE1BUlRBCitFVMWgQkVSR0VSIEpBS09CCitFVEVSIE9UTworRVRFUk9WScSGIFZFUkEKK0VUSU5TS0kgxb1JVkFOCitFVElOU0tJIMW9SVZPSklOCitFVElOU0tJIMSQT1LEkEUKK0VUSU5TS0kgRFJBR0nEhgorRVRJTlNLSSBEUkFHScSGCitFVElOU0tJIEpPVkFOCitFVElOU0tJIExKVUJJxaBBCitFVElOU0tJIE1JSEFKTE8KK0VUSU5TS0kgTUlMT8WgCitFVElOU0tJIE1JTE9SQUQKK0VUSU5TS0kgTUlMT1JBRAorRVRJTlNLSSBNSUxPVkFOCitFVElOU0tJIE5BREEKK0VUSU5TS0kgUEVUQVIKK0VUSU5TS0kgUkFET1ZBTgorRVRJTlNLSSBTTE9CT0RBTktBCitFVElOU0tJIFZFTEpLTworRVRJTlNLSSBWRVJBCitFVElOU0tJIFZFUklDQQorRVRPUkUgxJBJTkEKK0VWxJBJxIYgU1RBTktBCitFVkVUT1ZJxIYgQkxBxaBLTworRVZFVE9WScSGIEpPU0lQCitFVkVUT1ZJxIYgSk9WQU4KK0VWRVRPVknEhiBKT1ZBTgorRVZJxIYgQUxFS1NBTkRBUgorRVZJxIYgRFJBR0lDQQorRVZJxIYgSkVMSVNBVkVUQQorRVZJxIYgSk9WQU4KK0VWScSGIExBWkFSCitFVknEhiBMQVpBUgorRVZJxIYgUEVUQVIKK0VWScSGIFNBVkEKK0ZBIE1FTEFOSUpBCitGQSBNSUxLQQorRkHEjEFSIFNURVZBTgorRkHEjEtPIEpPxb1FRgorRkHEjEtPIFNJTUEKK0ZBQklBTiBCT1JCQUxBCitGQUJJQU4gScWgVFZBTgorRkFCSUFOIEpBTk/FoAorRkFCSUpBTiDFoEFORE9SCitGQUJJSkFOIEFOQQorRkFCSUpBTiBJTE9OQQorRkFCSUpBTiBJTVJFCitGQUJJSkFOIElWQU4KK0ZBQklKQU4gSkFOT8WgCitGQUJJSkFOIExBU0xPCitGQUJJSkFOIE5JS09MQQorRkFCSUpBTiBTVEVWQU4KK0ZBQklKQU4gU1RFVkFOCitGQUJJSkFOxIxJxIYgSVZBTgorRkFCSUpBTsSMScSGIFNUSkVQQU4KK0ZBQklKQU5JxIYgTUFSSUpBCitGQUJJSkFOT1ZJxIYgQU5BCitGQUJSSSBNSUtMT8WgCitGQUJSSSBOQU5ET1IKK0ZBQlJJIFNUSkVQQU4KK0ZBQlJJIFpWT05LTworRkFCUklLIEtBVEFMSU4KK0ZBQ0lTIFBBTlRBCitGQUlOIEFOQQorRkFJTiBMQUpPxaAKK0ZBSU4gU1RFVkFOCitGQUogR0FCT1IKK0ZBSkRFVEnEhiBMSlVCSUNBCitGQUpESUdBIEFMRUtTQU5EQVIKK0ZBSkZFUiBQRVRBUgorRkFKR0VMSiBJVkFOCitGQUpITkVSIEhFTlJJSworRkFKSFRORVIgSk9TSVAKK0ZBSkhUTkVSIFJVxb1BCitGQUpJTiBJxaBUVkFOCitGQUpLQSBEQU5JQ0EKK0ZBSktBIE5BREEKK0ZBSktBIFBBVkxFCitGQUpOSUsgTUFSSUpBCitGQUpULUdSQU5FUiBST8W9QQorRkFKVCBKRUxJQ0EKK0ZBSlRORVIgVkVST05JS0EKK0ZBS0lOIEZSQU5KQQorRkFLSU4gSVZBTgorRkFLSU4gWlZPTklNSVIKK0ZBTEIgxJBPUsSQRQorRkFMQiBCT1NJTEpLQQorRkFMQiBKT1NJUAorRkFMQiBLQVJPTEoKK0ZBTEIgS0FST0xKCitGQUxCIE1BUklOQQorRkFMQiBNQVRJSkEKK0ZBTEIgT1RPCitGQUxCIFpPTFRBTgorRkFNSUxJxIYgxJBPUsSQRQorRkFNSUxJxIYgSVZBTgorRkFOxIxFVknEhiBBTEVLU0FOREFSCitGQU7EjEVWScSGIEpPU0lQCitGQU7EjEVWScSGIEtBVEFMSU4KK0ZBTsSMRVZJxIYgTEpVREVWSVQKK0ZBTsSMRVZJxIYgVEVSRVpJSkEKK0ZBTktBIERVxaBBTgorRkFOS0EgTUFSQQorRkFSQUdPIMWgQU5ET1IKK0ZBUkFHTyDFoEFORE9SCitGQVJBR08gQVJBTktBCitGQVJBR08gQVJQQUQKK0ZBUkFHTyBGUkFOSkEKK0ZBUkFHTyBKT8W9RUYKK0ZBUkFHTyBKT1NJUAorRkFSQUdPIEtBUkxPCitGQVJBR08gTEFTTE8KK0ZBUkFHTyBNQVJJSkEKK0ZBUksgQU1BTElKQQorRkFSSyBCRUFUQQorRkFSS0HFoCBBTEVLU0FOREFSCitGQVJLQcWgIEFMRUtTQU5EQVIKK0ZBUktBxaAgQk/FvUVOQQorRkFSS0HFoCBEUkFHVVRJTgorRkFSS0HFoCBFTEVNRVIKK0ZBUktBxaAgRUxJWkFCRVRBCitGQVJLQcWgIEVMWkEKK0ZBUktBxaAgRVNURVIKK0ZBUktBxaAgRVNURVIKK0ZBUktBxaAgRkVSRU5DCitGQVJLQcWgIEZFUkVOQworRkFSS0HFoCBGRVJFTkMKK0ZBUktBxaAgRkVSRU5DCitGQVJLQcWgIEZSQU5KQQorRkFSS0HFoCBHQUJPUgorRkFSS0HFoCBJxaBUVkFOCitGQVJLQcWgIEnFoFRWQU4KK0ZBUktBxaAgSUxPTkEKK0ZBUktBxaAgSUxPTktBCitGQVJLQcWgIElNUkUKK0ZBUktBxaAgSkFOCitGQVJLQcWgIEpBUk9TTEFWCitGQVJLQcWgIEpFTElTQVZFVEEKK0ZBUktBxaAgSk/FvUVGCitGQVJLQcWgIEpPxb1FRgorRkFSS0HFoCBKT8W9RUYKK0ZBUktBxaAgSk/FvUVGCitGQVJLQcWgIEpPU0lQCitGQVJLQcWgIEpPU0lQCitGQVJLQcWgIEpPVkFOCitGQVJLQcWgIEpPVkdFTgorRkFSS0HFoCBKVURJVEEKK0ZBUktBxaAgS0FSTE8KK0ZBUktBxaAgS0FUQUxJTgorRkFSS0HFoCBLTEFSQQorRkFSS0HFoCBMQURJU0xBVgorRkFSS0HFoCBMQUpPxaAKK0ZBUktBxaAgTEFTTE8KK0ZBUktBxaAgTUFSSUpBCitGQVJLQcWgIE1BVElMREEKK0ZBUktBxaAgTUlIQUxKCitGQVJLQcWgIE5BREEKK0ZBUktBxaAgUEFMCitGQVJLQcWgIFBBVkxFCitGQVJLQcWgIFJPWkFMSUpBCitGQVJLQcWgIFNURVZBTgorRkFSS0HFoC1UT1QgVklLVE9SSUpBCitGQVJLQcWgIFZFUkEKK0ZBUktBxaAgVkVSSUNBCitGQVJLScSGIE1JTEFOCitGQVJLT1YgSk9WQU5LQQorRkFUIEpPU0lQCitGQVQgTEFTTE8KK0ZBVCBNSUhBTAorRkFUScSGIE1BUkEKK0ZBVFVST1ZJxIYgUkFKS08KK0ZBVUtPVknEhiBOQURBCitGQVpFS0HFoCBBTlRBTAorRkFaRUtBxaAgSkFOT8WgCitGQVpFS0HFoCBLQVRBTElOCitGQVpFS0HFoCBUSUJPUgorRkFaTEnEhiBKRUxJQ0EKK0ZBWkxJxIYgSk9WQU5LQQorRkFaTElOT1ZJxIYgRUxCSVNBCitGQVpMSU5PVknEhiBKQVNNSU5LQQorRkXFoEnFoCBJTVJFCitGRcWgScWgIEpPxb1FRgorRkXFoEnFoCBKT8W9RUYKK0ZFQ0UgSVZBTgorRkVDRSBNQVJJSkEKK0ZFREVSRVIgSk9WQU4KK0ZFREVSRVIgTUlSS08KK0ZFREkgSk/FvUVGCitGRUhFUiDFoEFORE9SCitGRUhFUiDFoEFORE9SCitGRUhFUiDEkEVSxJAKK0ZFSEVSIMSQVUxBCitGRUhFUiDEkFVMQQorRkVIRVIgQU5EUkHFoAorRkVIRVIgQVJJU1RJRAorRkVIRVIgRVJORQorRkVIRVIgRVJORQorRkVIRVIgRkVSRU5DCitGRUhFUiBKQU5PxaAKK0ZFSEVSIEpBTk/FoAorRkVIRVIgSkFOT8WgCitGRUhFUiBKT8W9RUYKK0ZFSEVSIEpPxb1FRgorRkVIRVIgSk9WQU4KK0ZFSEVSIEpPVkFOCitGRUhFUiBKVUxJSkEKK0ZFSEVSIEtBTE1BTgorRkVIRVIgTEFKT8WgCitGRUhFUiBMQVNMTworRkVIRVIgTEFTTE8KK0ZFSEVSIE1BUkdJVEEKK0ZFSEVSIE1BUklKQQorRkVIRVIgTUlIQUpMTworRkVIRVIgTkFORE9SCitGRUhFUiBTVEVWQU4KK0ZFSEVSIFNURVZBTgorRkVIRVIgVEVSRVpBCitGRUhFUiBWRVJBCitGRUhFUlZBUkkgSkVMSVNBVkVUQQorRkVISVIgQUxFS1NBTkRBUgorRkVISVIgUEVUQVIKK0ZFSElST1YgQVZSQU0KK0ZFSElST1YgS09TQU5BCitGRUhJUk9WIE1JUkpBTkEKK0ZFSsSQSSBWTEFESU1JUgorRkVKREVUScSGIFRPTUlTTEFWCitGRUpFxaAgxaBBTkRPUgorRkVKRcWgIMSQT1LEkEUKK0ZFSkXFoCBBUkFOS0EKK0ZFSkXFoCBHRU5BCitGRUpFxaAgScWgVFZBTgorRkVKRcWgIEnFoFRWQU4KK0ZFSkXFoCBKQU5PxaAKK0ZFSkXFoCBKQU5PxaAKK0ZFSkXFoCBMSklMSkFOQQorRkVKRcWgIFpPTFRBTgorRkVKRcWgIFpPTFRBTgorRkVKRkFSIEpVTElKQU5BCitGRUpTQSBHRU9SR0lKRQorRkVKU0EgSkFOS08gTVIgUEgKK0ZFSlNBIE1BUkdJVEEKK0ZFSlNBLVBPUE9WScSGIExFT05BCitGRUpTVEhBTUVMIFBBTAorRkVKWlVMQUhJIEZFSlpVTEFICitGRUtFVEUgxaBBTkRPUgorRkVLRVRFIMWgQU5ET1IKK0ZFS0VURSDFvVXFvUFOQQorRkVLRVRFIEFET0xGCitGRUtFVEUgRkVSRU5DCitGRUtFVEUgRkVSRU5DCitGRUtFVEUgSkFHT0RBCitGRUtFVEUgS0FSTE8KK0ZFS0VURSBLQVRJQ0EKK0ZFS0VURSBMQVNMTworRkVLRVRFIE1BUklKQQorRkVLRVRFIE1BUklKQQorRkVLRVRFIE1BUklKQQorRkVLRVRFIE1JSEFKTE8KK0ZFS0VURSBNSUhBTEoKK0ZFS0VURSBQRVRBUgorRkVLRVRFIFNURVZBTgorRkVLRVRFIFZFU05BCitGRUtJxIYgVkxBRElNSVIKK0ZFTEJBQiBSQURBCitGRUxCQUIgU0FWQQorRkVMQkFCIFNUQU5JTUlSCitGRUxCQUJPViBESU1JVFJJSkUKK0ZFTEJBQk9WIEpPVkFOCitGRUxCQUJPViBWTEFESVNMQVZBCitGRUxCQVAgSlVMS0EKK0ZFTEJBUCBOSUtPTEEKK0ZFTEJBUE9WIERJTUlUUklKRQorRkVMQkFQT1YgTUlMQU5LQQorRkVMQkFQT1YgTUlMT1JBRAorRkVMQkFQT1YgTkVNQU5KQQorRkVMQkFQT1YgUkFETUlMQQorRkVMQkFQT1YgUkFET1NMQVYKK0ZFTEJBUE9WIFNURVZBTgorRkVMRMWgRVIgQU5BCitGRUxExaBFUiBLQVJMTworRkVMREXFoERJIEFORFJJSkEKK0ZFTERFxaBJIEZSQU5KQQorRkVMREXFoEkgSUJPTEpBIERSCitGRUxERcWgSSBNQVJJSkEKK0ZFTERFxb1ESSBKVUxJSkFOQQorRkVMREXFvURJIExBU0xPCitGRUxERcW9REkgUEVUQVIKK0ZFTERFxb1ESSBTVEVWQU4KK0ZFTERFQUsgREFOSUNBCitGRUxERUFLIEpPxb1FRgorRkVMREkgxaBBTkRPUgorRkVMREkgRVLFvUVCRVQKK0ZFTERJIEpBUk9TTEFWCitGRUxEVkFSSSBKT1NJUAorRkVMRFZBUkkgSk9WQU4KK0ZFTERWQVJJIEpVU1RJTkEKK0ZFTERWQVJJIEtBTE1BTgorRkVMRFZBUkkgT0xHSUNBCitGRUxEVkFSSSBTVEVWQU4KK0ZFTERWRUJFTCBST1pBTElKQQorRkVMRSBEUkHFvUVOIExFS0FSCitGRUxFxIYgSVpFVAorRkVMRUdJIEFOQQorRkVMRUdJIExBRElTTEFWCitGRUxKQSBNSVJKQU5BCitGRUxORVIgRFXFoEFOS0EKK0ZFTE5FUiBUSUJPUgorRkVNScSGIEFMRUtTSUpFCitGRU1JxIYgQkxBR09KRQorRkVNScSGIEdSVUpJQ0EKK0ZFTUnEhiBNSUxJSkEKK0ZFTUnEhiBNSUxPVkFOCitGRU1JxIYgUEVUS08KK0ZFTUnEhiBSQURNSUxBCitGRU1JxIYgU1RBTktBCitGRU1JxIYgVkVMSktPCitGRU1JxIYgWk9SQQorRkVOQyBSVcW9SUNBCitGRU5ETEVSIEpPVkFOCitGRU5EUklLIEFORFJJSkEKK0ZFTkRSSUsgRlJBTkpPCitGRU5EUklLIEtBUkxPCitGRU5KQUMgSVZBTgorRkVOSkFDIEpPVkFOCitGRU5KQUMgU0lOScWgQQorRkVOSkFDIFNMT0JPREFOS0EKK0ZFTkpFxaAgQU5BCitGRU5KRcWgIEZSQU5KQQorRkVOSlZFxaBJIE1BUknFoEtBCitGRVLEjElLIEFORFJJSkEKK0ZFUkFSSU5PViBQQVZMRQorRkVSQVJJTyBTSUxWSU8KK0ZFUkFUSSBBRklaCitGRVJBVEkgQkVSTworRkVSQVRJIEVIQVQKK0ZFUkFUSSBSQUdJUAorRkVSQVRJIFNFSkZJRElOCitGRVJBVEkgU0tFTkRFUgorRkVSRU7EjEFLIElWSUNBCitGRVJFTsSMRUsgTEpVQklDQQorRkVSRU7EjEVLIE9MSVZFUiBESVBMIElORworRkVSRU7EjEVLIFZJTEtPCitGRVJFTsSMRVYgTUlMT1JBRAorRkVSRU7EjEVWIFpPUkEKK0ZFUkVOxIxFVknEhiDEkE9SxJBFCitGRVJFTsSMRVZJxIYtU0FMQUogSkVMRU5BCitGRVJFTkFDIEFORFJJSkEKK0ZFUkVOQUMgQU5EUklKQQorRkVSRU5BQyBJVkFOCitGRVJFTkFDIFJBRE1JTEEKK0ZFUkVOQyBBTlRBTAorRkVSRU5DIEpPxb1FRgorRkVSRU5DIEpPxb1FRgorRkVSRU5DSSDEkEVSxJAKK0ZFUkVOQ0kgREVaSURFUgorRkVSRU5DSSBFVUdFTgorRkVSRU5DSSBGUkFOSkEKK0ZFUkVOQ0kgSlVMSUpBTkEKK0ZFUkVOQ0kgU1RFVkFOCitGRVJFTkNJIFZFUkEKK0ZFUklLIEpVUkFKCitGRVJJSyBKVVJBSgorRkVSSVpPVknEhiBBSE1FVAorRkVSS08gQU5EUkVKIERSIExFS0FSCitGRVJLTyBNSUxPxaAKK0ZFUktPIFBBVkVMCitGRVJLTyBQQVZMRQorRkVSTEFOIFJBRE1JTEEKK0ZFVEFISSBCQUpSQU0KK0ZFVEFIT1ZJxIYgSVNNRVQKK0ZFVEFJIFpJQkVSCitGScSMT0sgQUxPSlpJSkUKK0ZJxaBBS09WIEtPTlNUQURJTgorRknFoEFORyBMSklMSkFOQQorRknFoEVSIMSQT1LEkEUgRFIgTEVLQVIKK0ZJxaBFUiDEkE9SxJBFCitGScWgRVIgQUxFS1NBTkRBUiBEUgorRknFoEVSIEFMRUtTQU5EQVIKK0ZJxaBFUiBBTlRPTgorRknFoEVSIEJMQU5LQQorRknFoEVSIERSQUdVVElOCitGScWgRVIgR0FWUkEKK0ZJxaBFUiBJUkVOQQorRknFoEVSIElSRU5BCitGScWgRVIgSkVORQorRknFoEVSIEpPU0lQCitGScWgRVIgS0FST0xKCitGScWgRVIgTEFTTE8KK0ZJxaBFUiBMRU8gRFIKK0ZJxaBFUiBOQVRBTElKQQorRknFoEVSIFBJUk/FoEtBCitGScWgRVIgU1RFVkFOCitGScWgRVIgWlZPTklNSVIKK0ZJxaBMIEZFRE9SCitGScWgTCBKVUxJSkEgRElQTCBJTkcKK0ZJxaBURcWgIElNUkUKK0ZJxaBURcWgIE1BUklKQQorRknFoFRFxaAgTUlIQUxKCitGScWgVEXFoCBQSVJPxaBLQQorRklBTEEgSVZBTktBCitGSUFMQSBJVkFOCitGSUJJxaBBTiDEkFVSQcSQCitGSUJJxaBBTiBTTEFWT0xKVUIKK0ZJQ0UgRVLFvUVCRVQKK0ZJQ0lOR0VSIFZBTEVSSUpBCitGSURVxaBFSyBLQVRJQ0EKK0ZJRkEgRFJBR0lDQQorRklGQSBORUJJCitGSUdVUkEgxaBBTkRPUgorRklKQVRPVknEhiBPTEdBCitGSUpVS09WScSGIFNBREVUQQorRklKVUxKQU5JTiBaVUxGTworRklMRUtJIE1JUk9TTEFWCitGSUxFS09WScSGIFNFSUQKK0ZJTEVQIMSQRVLEkAorRklMRVAgxJBPUsSQRQorRklMRVAgxJBPUsSQRQorRklMRVAgQU5UQUwKK0ZJTEVQIEJFTEEKK0ZJTEVQIElEQQorRklMRVAgSkVORQorRklMRVAgSk/FvUVGCitGSUxFUCBLQUxNQU4KK0ZJTEVQIEtBTE1BTgorRklMRVAgTEFESVNMQVYKK0ZJTEVQIE1JUkpBTkEKK0ZJTEVQIFpPTFRBTgorRklMRVBJIE1JUk9TTEFWCitGSUxJTU9OT1ZJxIYgxb1JVk9SQUQKK0ZJTElNT05PVknEhiDEkE9SxJBFCitGSUxJUCBKT1ZBTiBEUiBQUkFWTklLCitGSUxJUCBSQURPU0FWCitGSUxJUMSMRVYgWkRSQVZLTworRklMSVBBxaAgRFJBR0FOCitGSUxJUEHFoEVWIE5BREEKK0ZJTElQRUMgWklUQQorRklMSVBFTkRJTiBNQVJLTworRklMSVBPViBJTElKQQorRklMSVBPViBNSUxPxaAKK0ZJTElQT1YgTUlPRFJBRworRklMSVBPViBNT01JUgorRklMSVBPViBOSUtPTEEKK0ZJTElQT1YgUFJFRFJBRworRklMSVBPViBSQURPVkFOCitGSUxJUE9WIFNMQcSQQU5BCitGSUxJUE9WIFRJSE9NSVIKK0ZJTElQT1YgVElKQU5BCitGSUxJUE9WScSGIMSMRURPCitGSUxJUE9WScSGIEFMRUtTQU5EQVIKK0ZJTElQT1ZJxIYgQU5UT04KK0ZJTElQT1ZJxIYgQk/FoEtPCitGSUxJUE9WScSGIEJPR09NSVIKK0ZJTElQT1ZJxIYgQk9SQQorRklMSVBPVknEhiBCUkFOS08KK0ZJTElQT1ZJxIYtREFNSkFOT1YgTkFEQQorRklMSVBPVknEhiBERVNBTktBCitGSUxJUE9WScSGIERJSkFOQQorRklMSVBPVknEhiBET0JSSUNBCitGSUxJUE9WScSGIERPQlJJTEEKK0ZJTElQT1ZJxIYgRFJBR0FOCitGSUxJUE9WScSGIERSQUdBTgorRklMSVBPVknEhiBEVcWgQU5LQQorRklMSVBPVknEhiBEVcWgQU5LQQorRklMSVBPVknEhiBHT1JEQU5BCitGSUxJUE9WScSGIElWQU4KK0ZJTElQT1ZJxIYgSVZBTgorRklMSVBPVknEhiBKRUxJU0FWRVRBCitGSUxJUE9WScSGIEpPVkFOCitGSUxJUE9WScSGIEpPVkFOCitGSUxJUE9WScSGIExFUE9TQVZBCitGSUxJUE9WScSGIExKSUxKQU5BCitGSUxJUE9WScSGIExKVUJJQ0EKK0ZJTElQT1ZJxIYgTEpVQklOS0EKK0ZJTElQT1ZJxIYgTEpVQklOS08KK0ZJTElQT1ZJxIYgTUlMQURJTgorRklMSVBPVknEhiBNSUxBRElOCitGSUxJUE9WScSGIE1JTEFOIERJUEwgSU5HCitGSUxJUE9WScSGIE1JTEFOS0EKK0ZJTElQT1ZJxIYgTUlMQU5LQQorRklMSVBPVknEhiBNSUxBTgorRklMSVBPVknEhiBNSUxBTgorRklMSVBPVknEhiBNSUxBTgorRklMSVBPVknEhiBNSUxFTkEKK0ZJTElQT1ZJxIYgTUlMRU5LTworRklMSVBPVknEhiBNSUxJVk9KRQorRklMSVBPVknEhiBNSUxLQQorRklMSVBPVknEhiBNSUxPSktPCitGSUxJUE9WScSGIE1JTE9WQU4KK0ZJTElQT1ZJxIYgTUlPRFJBRworRklMSVBPVknEhiBNSU9EUkFHCitGSUxJUE9WScSGIE1JUkpBTkEKK0ZJTElQT1ZJxIYgTUlSS08KK0ZJTElQT1ZJxIYgTUlST1NMQVYKK0ZJTElQT1ZJxIYgTkFUQcWgQQorRklMSVBPVknEhiBOSUtPTEEKK0ZJTElQT1ZJxIYgTklLT0xBCitGSUxJUE9WScSGIE5JS09MQQorRklMSVBPVknEhiBOSUtPTEEKK0ZJTElQT1ZJxIYgTklLT0xJTkEKK0ZJTElQT1ZJxIYgUEFVTEEKK0ZJTElQT1ZJxIYgUEVSTworRklMSVBPVknEhiBSQURJVk9KCitGSUxJUE9WScSGIFJBRE9KS0EKK0ZJTElQT1ZJxIYgUkFET0pLTworRklMSVBPVknEhiBSQURPU0xBVgorRklMSVBPVknEhiBSQURPVkFOCitGSUxJUE9WScSGIFJBTktBCitGSUxJUE9WScSGIFJVxb1BTkEKK0ZJTElQT1ZJxIYgUlVET0xGCitGSUxJUE9WScSGIFNBVkEgRElQTCBJTkcKK0ZJTElQT1ZJxIYgU0FWQQorRklMSVBPVknEhiBTSUJJTgorRklMSVBPVknEhiBTTEFWS08KK0ZJTElQT1ZJxIYgU05Fxb1BTkEKK0ZJTElQT1ZJxIYgU1BBU09KRQorRklMSVBPVknEhiBTUsSQQU4KK0ZJTElQT1ZJxIYgU1JFxIZLTworRklMSVBPVknEhiBTVEVWQU4gRFIgU1RPTUFUT0xPRworRklMSVBPVknEhiBTVE9KQU4KK0ZJTElQT1ZJxIYgU1RPSkFOCitGSUxJUE9WScSGIFRPTUlTTEFWCitGSUxJUE9WScSGIFZFU05BCitGSUxJUE9WScSGIFZJRE9TQVYKK0ZJTElQT1ZJxIYgVkxBRElNSVIKK0ZJTElQT1ZJxIYgWk9SQU4KK0ZJTElQT1ZJxIYgWk9SQU4KK0ZJTElQT1ZJxIYgWk9SQU4KK0ZJTElQT1ZJxIYgWk9SQU4KK0ZJTElQT1ZJxIYgWk9SSUNBCitGSUxJUE9WU0tBLU9CUkFET1ZJxIYgVkVSQQorRklMSVBPVlNLSSBCT8W9TworRklMSVBPVlNLSSBUT0RPUworRklMS08gRFJBR0lDQQorRklMS08gSk9TSVAKK0ZJTEtPIEpPVkFOCitGSUxLTyBNQVJJSkEKK0ZJTEtPIE1JSEFMSgorRklMS08gTUlIQUxKCitGSUxLTyBQQVZFTAorRklMS08gVElIT01JUgorRklOxIxVUiBBTEVLU0FOREFSCitGSU7EjFVSIEpPxb1FRgorRklOxIxVUiBKVUxJSkFOQQorRklOxIxVUiBMQURJU0xBVgorRklORMW9QU5PVknEhiBHT0pLTworRklORMW9QU5PVknEhiBNSUtPCitGSU5Exb1BTk9WScSGIE1JUktPCitGSU5Exb1BTk9WScSGIE9CUkFECitGSU5LLURJTUlUUklKRVZJxIYgRE9ST1RFQQorRklOSyBWSUtUT1IgTk9WSU5BUgorRklOS0EgR09SxIxBTgorRklSIEJFQVRBCitGSVJBTkogSk/FvUVGCitGSVJBTkpJIMSQRVLEkAorRklSQU5KSSDEkE9SxJBFCitGSVJBTkpJIMSQT1LEkEUKK0ZJUkFOSkkgRVLFvUVCRVQKK0ZJUkFOSkkgSk9WQU4KK0ZJUkFOSkkgVklLVE9SCitGSVJJxIYgTUFSSUpBCitGSVJVTE9WScSGIEtPU1RBTlRJTgorRklTVFJJxIYgxJBPUsSQRQorRklTVFJJxIYgTUlSSkFOQQorRklWRcWgSSBHQUJPUgorRklWRcWgSSBUSUJPUgorRkxBQyBJVkFOS0EKK0ZMQUMgUEVUQVIKK0ZMQUpTIEpFTElTQVZFVEEKK0ZMRUdFUiBTVEVWQU4KK0ZMRUdPIElWQU4KK0ZMRUdPIE1BUlRBCitGTEVLQcSMIFZMQURPCitGTElUTkVSIE9TS0FSCitGTE9LQSDEkEVOSUtBCitGTE9SQSBWQVNBCitGTE9SScSGIERJTUlUUklKRQorRkxPUknEhiBMSlVCSUNBCitGTE9SScSGIFpPUkFOCitGTE9SScSGIFpPUkFOCitGTE9SSU4gVklOS0EKK0ZPRE9SIMW9T0ZJSkEKK0ZPRE9SIEFOQQorRk9ET1IgQU5EUklKQQorRk9ET1IgRVLFvUVCRVQKK0ZPRE9SIEZFUkVOQworRk9ET1IgRlJBTkpBCitGT0RPUiBGUkFOSkEKK0ZPRE9SIEpPTEFOCitGT0RPUiBKT1ZBTgorRk9ET1IgSk9WQU4KK0ZPRE9SIEtBTE1BTgorRk9ET1IgS0FUQQorRk9ET1IgTEFKT8WgCitGT0RPUiBMQVNMTworRk9ET1IgTEFTTE8KK0ZPRE9SIExBU0xPCitGT0RPUiBMQVNMTworRk9ET1IgTElESUpBCitGT0RPUiBNQVJUQQorRk9ET1IgT1NLQVIgRElQTCBPRUMKK0ZPRE9SIFRJQk9SCitGT0RPUiBUSUJPUgorRk9ET1IgVElCT1IKK0ZPRE9SIFpEUkFWS08KK0ZPRE9SQSBKQU5LTworRk9HQVJBxaBJIMSQRVLEkCBEUgorRk9HQVJBxaBJIMSQRVLEkAorRk9HQVJBxaBJIEFORFJJSkEKK0ZPR0FSQcWgSSBBTklLTworRk9HQVJBxaBJIElMT05BCitGT0dBUkHFoEkgU1RFVkFOCitGT0dMIE1BR0RBTEVOQQorRk9KS0FSIEpBTktPCitGT0xJxIYgUkFET01JUiBEUgorRk9MVElOIE1BUkdJVEEKK0ZPTFRJTiBNSUxJQ0EKK0ZPTlRBTkogTE9UQVIKK0ZPUkFJIFpPTFRBTgorRk9SQUkgWk9SSUNBCitGT1JHQcSMIEpFTElTQVZFVEEKK0ZPUkdJxIYgSVZBTgorRk9SR08gScWgVFZBTgorRk9SR08gTEFTTE8KK0ZPUknFoEtPViBKT1ZBTktBCitGT1JJxaBLT1YgTEFaQVIKK0ZPUknFoEtPVknEhiBBTEVLU0FOREFSCitGT1JLQVBBIFNBVk8KK0ZPUktBUEnEhiBBTEVLU0FOREFSCitGT1JLQVBJxIYgSVZBTktBCitGT1JLQVBJxIYgTEFaQVIKK0ZPUktBUEnEhiBNQVJJSkEKK0ZPUktBUEnEhiBOSUtPTEEKK0ZPUktBUEnEhiBTQVZBCitGT1JLQVBJxIYgU0xBVklDQQorRk9SS0FQScSGIFZFTElOS0EKK0ZPUk8gSVZBTgorRk9STyBKVUxJSkFOQQorRk9UScSGIMSQT1LEkEUKK0ZPWkVLT8WgIEFOS0lDQQorRlLEjEVLIMSQVVJBCitGUsSMRUsgTUFSSUpBCitGUsW9T1AgTUnFoEUKK0ZSxb1PVknEhiDEkE9SxJBFCitGUsW9T1ZJxIYgR0FWUklMTworRlLFvU9WScSGIE1JSEFKTE8KK0ZSxb1PVknEhiBNSUxFTkEKK0ZSQUNJTEUgTklDRQorRlJBSlNUIFJVRE9MRgorRlJBSlRPVknEhiBNT03EjElMTworRlJBSlogUEVUQVIKK0ZSQU7EjEnEhiBST0sKK0ZSQU5DIE1BR0RBTEVOQSBESVBMIElORworRlJBTkNFTEogRlJBTkMKK0ZSQU5DRVIgSVZBTgorRlJBTkNFUiBJVkFOCitGUkFOQ0nFoEtPVknEhiBBVElMQQorRlJBTkNJxaBLT1ZJxIYgSVZBTgorRlJBTkNJxaBLT1ZJxIYgTUFURQorRlJBTkNJQSBBTkRSSUpBCitGUkFOQ0lBIEnFoFRWQU4KK0ZSQU5DSUEgUEVUQVIKK0ZSQU5DSUpBIEpPxb1FRgorRlJBTkNJSkEtS1VLScSMS0EgTUFSR0FSRVRBCitGUkFOQ0lTVEkgxJBPUsSQRQorRlJBTkNJU1RJIEpBUk9TTEFWCitGUkFOQ0lTVEkgUEFWTEUKK0ZSQU5DSVNUSSBWTEFESU1JUgorRlJBTkNVU0tJIEFMRUtTQQorRlJBTkNVU0tJIEJSQU5JU0xBVgorRlJBTkNVU0tJIERBUklOS0EKK0ZSQU5DVVNLSSBERVNBTktBCitGUkFOQ1VTS0kgRFJBR0FOCitGUkFOQ1VTS0kgRFXFoEFOCitGUkFOQ1VTS0kgSVZBTiBEUgorRlJBTkNVU0tJIEpPVkFOS0EKK0ZSQU5DVVNLSSBNQVJLTworRlJBTkNVU0tJIE1JTEFOCitGUkFOQ1VTS0kgTUlST1NMQVYKK0ZSQU5DVVNLSSBQRVRBUgorRlJBTkNVU0tJIFJBRE9WQU4KK0ZSQU5DVVNLSSBTTE9CT0RBTktBCitGUkFOQ1VTS0kgU1RSQUhJTkpBCitGUkFOQ1VTS0kgWk9SQU4KK0ZSQU5DVVNLSSBaT1JBTgorRlJBTkNVU0tJIFpPUktBCitGUkFOQ1VTS0kgWk9SS0EKK0ZSQU5DVVogREFSSU5LQQorRlJBTkNVWiBKRUxFTkEKK0ZSQU5DVVogVkVMSU1JUgorRlJBTkNVWiBWVUsKK0ZSQU5FVEEgSk9WTworRlJBTknEhiBJVkFOCitGUkFOScSGIE1JTEtBCitGUkFOSknEjEVWScSGIE5JS09MQQorRlJBTkpJxIYgTUFSSUNBCitGUkFOSk8gxb1Vxb1BTkEKK0ZSQU5LIMSQRVLEkAorRlJBTksgRkVSRU5DCitGUkFOSyBJTEXFoAorRlJBTksgSkFOT8WgCitGUkFOSyBUSUJPUgorRlJBTktBIE1JSEFKTE8KK0ZSQU5LT1ZJxIYgSk9WQU4KK0ZSQU5PVknEhiBBTEVLU0FORFJBCitGUkFOT1ZJxIYgVkxBRElNSVIKK0ZSQU5aRVIgSVZBTgorRlJBVE9KIEpPQ0EKK0ZSQVRSScSGIFNJR01VTkQKK0ZSQVRVQ0FOIMSQT1LEkEUKK0ZSQVRVQ0FOIMSQT1LEkEUKK0ZSQVRVQ0FOIEZJTElQCitGUkFUVUNBTiBJVkFOCitGUkFUVUNBTiBORVZFTkEKK0ZSQVRVQ0FOIFBFVEFSCitGUkFUVUNBTk9WIElWQU5LQQorRlJFSSBFTElaQUJFVEEKK0ZSRU1FUiBBTlRVTgorRlJFTUwgxaBBTkRPUgorRlJFTktFTCBBTkEKK0ZSRU5LRUwgRVZBCitGUkVOS0wgRFJBR0lDQQorRlJJxIwgQk/FvUlEQVIKK0ZSScSMIEtBVElDQQorRlJJxaAgRFJBR0FOCitGUknFoCBNSUxBTgorRlJJxaDEjEnEhiBEUkFHVVRJTgorRlJJQyBSVURPTEYKK0ZSSURSSUggQU5BCitGUklEUklIIEpFTEVOQQorRlJJRFJJSCBNQUdEQQorRlJJRFJJSCBaT1JJQ0EKK0ZSSU5ESUsgRlJBTkpBCitGUklORElLIE1JSEFMSgorRlJJTkRSSUsgQkVMQQorRlJLQSBBUlRVUgorRlJLQSBOSUtPTEEKK0ZSTEogTVVIQVJFTQorRlJPTCBNQVJJSkFOCitGUk9MIE5BREEKK0ZST0wgVklMSU0KK0ZSVcW9QSBBTEVLU0FOREFSCitGVcSMSUsgS0FSTE8KK0ZVREVSRVIgSlVMSUpFCitGVURFUkVSIE1BR0RBTEVOQQorRlVKS0EgxJBPUsSQRQorRlVKVE8gVkxBRElNSVIKK0ZVTEFKVEVSIMSQT1LEkEUKK0ZVTsSGSUsgUEFWTEUKK0ZVTkRVUlVMSkEgTUlMRU5LTworRlVOSyDFoFRFRkFOSUpBCitGVU5LIExBSk/FoAorRlVOVEVLIElWQU4KK0ZVUkpBTk9WScSGIFZMQURJU0xBVgorRlVSTEFOIEVSxb1FQkVUCitGVVJMQU4gTUFSS08KK0ZVUk1BTiBGUkFOSkEKK0ZVUk1BTiBKT1ZBTgorRlVSTUFOIE1BUklKQQorRlVSTUFOIFRJTU9GRUoKK0ZVUk1BTiBUSU5LQQorRlVSTyBJTVJFCitGVVNLTyBBTkdFTEEKK0ZVU0tPIEnFoFRWQU4KK0ZVU0tPIE1BUklKQQorRlVTS08gTUlIQUxKCitGVVRPIEFOVEFMCitGVVRPIEpPxb1FRgorRlVUTyBKT8W9RUYKK0ZVVE8gTUlSS08KK0ZVVE/FoEtJIE1JTEFOCitGVVRPxaBLSSBNSVRBCitHQcSMQU5PVknEhiBEUkFHQU4KK0dBxIxFVknEhiBNSVJPU0xBVgorR0HEjEVWScSGIFJBREVOS08KK0dBxIxFVknEhiBURVJFWkEKK0dBxIxJxIYgQlJBTktPCitHQcSMScSGIERBTklDQQorR0HEjEnEhiBEQU5JTE8KK0dBxIxJxIYgTUlMQU4KK0dBxIxJxIYgU1RFVkFOCitHQcSMScSGIFNURVZBTgorR0HEjEnEhiBWTEFEQU4KK0dBxaBFVknEhiBNSUxPUkFECitHQcWgRVZJxIYgTUlMT1ZBTgorR0HFoEVWScSGIE1PTcSMSUxPCitHQcWgRVZJxIYgUkFETUlMQQorR0HFoEVWScSGIFNBVktBCitHQcWgRVZJxIYgWkRSQVZLTworR0HFoEkgxJBFTUFJTEoKK0dBxaBJIEhBTURJCitHQcWgSSBKVUxJSkFOQQorR0HFoEkgTEpVQU4KK0dBxaBJIFpPUkFOCitHQcWgScSGIEJPR0RBTgorR0HFoEnEhiBEVcWgQU4KK0dBxaBJxIYgS09WSUxKS0EKK0dBxaBJxIYgS09WSUxKS0EKK0dBxaBJxIYgS1JTVEEKK0dBxaBJxIYgTUlST0xKVUIKK0dBxaBJxIYgTklLT0xBCitHQcWgScSGIFNJTFZBTkEKK0dBxaBJxIYgVE9ET1IgRElQTCBJTkcKK0dBxaBJxIYgVkFMRVJJSkEKK0dBxaBJxIYgWkRSQVZLTworR0HFoEnEhiBaT1JBCitHQcWgUEFSIEJPR0RBTgorR0HFoFBBUiBKQU5PxaAKK0dBxaBQQVIgTEFKT8WgCitHQcWgUEFSIExJRElKQQorR0HFoFBBUiBNSUxFTktPCitHQcWgUEFSRVZJxIYgRVJJS0EKK0dBxaBQQVJFVknEhiBMSklMSkFOQQorR0HFoFBBUknEhiBOQURBCitHQcWgUEFSSU4gTEpJTEpBTkEKK0dBxaBQQVJPVknEhiBKT1NJUAorR0HEhkEgQlJBTklTTEFWCitHQcSGQSBNSU9EUkFHCitHQcSGQSBWTEFESU1JUgorR0HEhkHFoCBEUkFHSUNBCitHQcSGQcWgIFNJTknFoEEKK0dBxIZBxaAgU1RFVkFOCitHQcSGRcWgQSDEkFVSTworR0HEhkXFoEEgQlJBTktBCitHQcSGRcWgQSBEUkFHQU4KK0dBxIZFxaBBIERSQUdBTgorR0HEhkXFoEEgSUxJSkEKK0dBxIZFxaBBIE1BTk9KTE8KK0dBxIZFxaBBIE1JTE/FoAorR0HEhkXFoEEgTUlMT1JBRAorR0HEhkXFoEEgTUlMT1ZBTiBEUgorR0HEhkXFoEEgTklLT0xBCitHQcSGRcWgQSBTTEFWS08KK0dBxIZFxaBBIFZFTEpLTworR0HEhkXFoEEgVkxBRElNSVIKK0dBxIZJTkEgxb1BUktPCitHQcSGSU5BIExKSUxKQU5BCitHQcSGSU5PVknEhiBCT8W9TworR0HEhklOT1ZJxIYgQlJBTktPCitHQcSGSU5PVknEhiBNSUxJVk9KRQorR0HEhklOT1ZJxIYgTUlMT1JBRAorR0HEhklOT1ZJxIYgUkFKS08KK0dBxb1JIEpFTElTQVZFVEEKK0dBxb1JSyBURVJFWklKQQorR0HFvU8gS0FUSUNBCitHQcW9Ty1NQVRPxaBLT1ZJxIYgT0xHSUNBCitHQcW9TyBNSUhBSkxPCitHQcW9TyBNSUtMT8WgCitHQcSQQU5TS0kgWk9SQU4KK0dBQkxFUiBWSUtUT1JJSkEKK0dBQk9SIEFSUEFECitHQUJPUiBCRUxBCitHQUJPUiBFUsW9RUJFVAorR0FCT1IgSVJFTkEKK0dBQk9SIEpPxb1FRgorR0FCT1IgS0FST0xKCitHQUJPUiBOQU5ET1IKK0dBQk9ST1YgQlJBTklTTEFWCitHQUJPUk9WIEJSQU5JU0xBVgorR0FCT1JPViBHQVZSSUxPCitHQUJPUk9WIE1JTEFOCitHQUJPUk9WIE1JVEEKK0dBQk9ST1YgUEFWTEUKK0dBQk9ST1YgUEVUQVIKK0dBQlJFIFJPS08KK0dBQlJJxIYgRVZJQ0EKK0dBQlJJxIYgS1NFTklKQQorR0FCUknEhiBNSUhBSkxPCitHQUJSScSGIE5FU1RPUgorR0FCUknEhiBQRVRBUgorR0FCUknEhiBTTEFWS08KK0dBQlJJRUwgTUlLTE/FoAorR0FCUklKRUzEjEnEhiBaRFJBVktPCitHQUJST1ZJxIYgQU5EUkHFoAorR0FCUk9WScSGIEFORFJJSkEKK0dBQ0lOIE1JUk9TTEFWCitHQUTFvUEgS1JJxb1BTgorR0FExb1BIFJVxb1BCitHQUTFvUnEhiBNSUxBTgorR0FExb1JxIYgVklOS08KK0dBRMW9VVIgSVZBTgorR0FExb1VUknEhiBaTEFUS08KK0dBREFORUMgS0FUQVJJTkEKK0dBRE5KQUkgSk9WQQorR0FETkpBTlNLSSBWTEFESU1JUgorR0FHScSGIEFMRUtTQU5EQVIKK0dBR0nEhiBBVlJBTQorR0FHScSGIEJPxaBLTworR0FHScSGIEJPUklWT0pFCitHQUdJxIYgRFJBR0lDQQorR0FHScSGIERVxaBBTgorR0FHScSGLUdSVUJFxaBBIE1JTEVWQQorR0FHScSGIEpPVkFOS0EKK0dBR0nEhiBKT1ZBTgorR0FHScSGIE5JS09MQQorR0FHScSGIE5JS09MQQorR0FHScSGIFJBRE9TTEFWCitHQUdJxIYgUkFET1ZBTgorR0FHScSGIFNMT0JPREFOCitHQUdJxIYgVklET1NBVkEKK0dBR09WScSGIE1JTE9SQUQKK0dBR09WScSGIE5PVkFLCitHQUdPVknEhiBPTEdBCitHQUdPVknEhiBSQURPU0FWCitHQUdSxIxJTiBMQVpBUgorR0FHUsSMSU4gTUxBREVOCitHQUdSSUNBIEpPVkFOCitHQUdVTEEgTVVKTworR0FJxIYgVkVMSktPCitHQUlDS0kgTklLT0xBCitHQUlDS0kgU0FOSkEKK0dBSUNLSSBUQU5BU0lKRQorR0FJQ0tJIFZFUklDQQorR0FJTk9WIFJBRE9WQU4KK0dBSsWgSU4gU0xBVklDQQorR0FKxaBJTiBTTUlMSkEKK0dBSsWgSU4gU1RBTklTTEFWCitHQUpBTknEhiBTVEpFUEFOCitHQUpEQSDFoEFORE9SCitHQUpET8WgIMSQVUxBCitHQUpET8WgIEnFoFRWQU4KK0dBSkRPxaAgSUJPTEpBCitHQUpET8WgIExBU0xPCitHQUpET8WgIExKVUJPTUlSCitHQUpET8WgIE1JSEFKTE8KK0dBSkRPxaAgTklLT0xBCitHQUpET8WgIFBFVEFSCitHQUpET8WgRVZJxIYgxJBPUsSQRQorR0FKRE9CUkFOU0tJIMSQT1LEkEUgRFIKK0dBSkRPQlJBTlNLSSBEQU5JQ0EKK0dBSkRPQlJBTlNLSSBEUkFHSUNBCitHQUpET0JSQU5TS0kgTEpVQklDQQorR0FKRE9CUkFOU0tJIE1BUklKQQorR0FKRE9CUkFOU0tJIE1JTElWT0oKK0dBSkRPQlJBTlNLSSBQRVRBUgorR0FKRE9CUkFOU0tJIFRPRE9SCitHQUpFUiDEkFVSQQorR0FKRVIgSk9DQQorR0FKRVIgTEVPTkEKK0dBSkVSIE1BTk9KTE8KK0dBSkVSIE5BREEKK0dBSkdFUiBKT8W9RUYKK0dBSknFoElOIERBUkEKK0dBSknFoElOIExBWkFSCitHQUpJxaBJTiBNSUxJQ0EKK0dBSknFoElOIFBFVEFSCitHQUpJxaBJTiBTVEVWQU4KK0dBSknFoElOIFNURVZBTgorR0FKScWgSU4gVE9NSVNMQVYKK0dBSknEhiDFvUFSS08KK0dBSknEhiDFvUFSS08KK0dBSknEhiDFvUlWS0EKK0dBSknEhiDFvUlWS08KK0dBSknEhiDFvUlWT1RBCitHQUpJxIYgxJBPUsSQRQorR0FKScSGIMSQVVJPCitHQUpJxIYgQUxFS1NBTkRBUgorR0FKScSGIEFOQQorR0FKScSGIEJPxb1JQ0EKK0dBSknEhiBCT8W9SURBUgorR0FKScSGIEJPR0RBTgorR0FKScSGIEJPR09MSlVCCitHQUpJxIYgQk9SSVNMQVYKK0dBSknEhiBCUkFOS08KK0dBSknEhiBCUkFOS08KK0dBSknEhiBDVklKQU4KK0dBSknEhiBDVklKQU4KK0dBSknEhiBEQU5JQ0EKK0dBSknEhiBERUpBTgorR0FKScSGIERFSkFOCitHQUpJxIYgREVKQU4KK0dBSknEhiBESU1JVFJJSkUKK0dBSknEhiBEUkFHQU4KK0dBSknEhiBEUkFHQU4KK0dBSknEhiBEUkFHSUNBCitHQUpJxIYgRFJBR09MSlVCCitHQUpJxIYgRFJBR08KK0dBSknEhiBEVcWgQU4gRElQTCBJTkcKK0dBSknEhiBEVcWgS08gRElQTCBQUkFWTklLCitHQUpJxIYgR09KS08KK0dBSknEhiBHT1JBTgorR0FKScSGIEdPUkRBTkEKK0dBSknEhiBJQk9MSkEKK0dBSknEhiBKRUxFTkEKK0dBSknEhiBLQVRBUklOQQorR0FKScSGIEtSSVNUSU5BCitHQUpJxIYgS1JVTkEKK0dBSknEhiBMQVpBUgorR0FKScSGIExBWk8KK0dBSknEhiBNQUtTQQorR0FKScSGIE1BUklKQSBEUgorR0FKScSGIE1BUklKQQorR0FKScSGIE1BUklOS08gRFIKK0dBSknEhiBNScSGTworR0FKScSGIE1JS0EKK0dBSknEhiBNSUxBTkEKK0dBSknEhiBNSUxBTgorR0FKScSGIE1JTEFOCitHQUpJxIYgTUlMQU4KK0dBSknEhiBNSUxBTgorR0FKScSGIE1JTEFOCitHQUpJxIYgTUlMSU5LTworR0FKScSGIE1JTElWT0oKK0dBSknEhiBNSUxPxaAKK0dBSknEhiBNSUxPSktBCitHQUpJxIYgTUlMT1NBVgorR0FKScSGIE1JTE9WQU4KK0dBSknEhiBNSU9EUkFHCitHQUpJxIYgTUlPRFJBRworR0FKScSGIE1JUkpBTkEKK0dBSknEhiBNSVJLTyBEUgorR0FKScSGIE1JUktPCitHQUpJxIYgTUlST1NMQVYKK0dBSknEhiBNSVRSQQorR0FKScSGIE1MQURFTktPCitHQUpJxIYgTUxBREVOCitHQUpJxIYgTU9NxIxJTE8KK0dBSknEhiBORURFTEpLTworR0FKScSGIE5JS09MQSBESVBMIElORworR0FKScSGIE5JS09MQQorR0FKScSGIE5JS09MQQorR0FKScSGIE5PVkFLCitHQUpJxIYgT0xJVkVSQQorR0FKScSGIFBFTEtBCitHQUpJxIYgUEVSU0EKK0dBSknEhiBSQURFTktPCitHQUpJxIYgUkFETUlMQQorR0FKScSGIFJBRE9NSVIKK0dBSknEhiBSQUpLQQorR0FKScSGIFJBVEtPCitHQUpJxIYgUkFUS08KK0dBSknEhiBST1pBTElKQQorR0FKScSGIFJVxb1JQ0EKK0dBSknEhiBTQVZBCitHQUpJxIYgU0xBS0EKK0dBSknEhiBTTEFWSUNBCitHQUpJxIYgU0xBVktPCitHQUpJxIYgU0xBVktPCitHQUpJxIYgU1JFxIZLTworR0FKScSGIFNSRVRPCitHQUpJxIYgU1RBTklNSVIKK0dBSknEhiBTVEFOT0pMTworR0FKScSGIFNUT0pBTgorR0FKScSGIFNUUkFISU5KQQorR0FKScSGIFNWRVRPWkFSCitHQUpJxIYgVEFOQVNLTworR0FKScSGIFZFTElNSVIKK0dBSknEhiBWRVNOQQorR0FKScSGIFZJREEKK0dBSknEhiBWSURPU0FWQQorR0FKScSGIFZMQURJU0xBVgorR0FKScSGIFpPUkFOCitHQUpJQ0EgQlJBTktPCitHQUpJQ0tJIEJSQU5LTworR0FKSUNLSSBEVcWgQU4KK0dBSklDS0kgSkVMRU5BCitHQUpJQ0tJIExBWkFSCitHQUpJQ0tJIE1BUklKQQorR0FKSUNLSSBNSUxBCitHQUpJQ0tJIE1JTElDQQorR0FKSUNLSSBTQVZBCitHQUpJTiDFvUlWS08KK0dBSklOIMSQT1LEkEUKK0dBSklOIEFMRUtTQU5EQVIKK0dBSklOIEFOS0EKK0dBSklOIEJSQU5LTworR0FKSU4gRFJBR0lDQQorR0FKSU4gSk9WQU4KK0dBSklOIExBWkFSCitHQUpJTiBNSUhBSkxPCitHQUpJTiBNSUxBTgorR0FKSU4gTUlMRU5LTworR0FKSU4gTUlMT1ZBTgorR0FKSU4gTUlSSkFOQQorR0FKSU4gTkFEQQorR0FKSU4gTkVWRU5LQQorR0FKSU4gUEVUQVIKK0dBSklOIFNMQVZLQSBEUgorR0FKSU4gU1ZFVExBTkEKK0dBSklOIFZMQURJTUlSCitHQUpJTkEgRFJBR09NSVIKK0dBSklOT1Ygxb1JVkFOCitHQUpJTk9WIMW9SVZLTworR0FKSU5PViDFvUlWS08KK0dBSklOT1YgxJBPS0lDQQorR0FKSU5PViBBTEVLU0FOREFSCitHQUpJTk9WIEFOxJBFTEtBCitHQUpJTk9WIEJSQU5LTworR0FKSU5PViBESU1JVFJJSkUKK0dBSklOT1YgRFJBR09NSVIKK0dBSklOT1YgSVZBTktBCitHQUpJTk9WIEpFTEVOQQorR0FKSU5PViBKT1ZBTgorR0FKSU5PViBKVUxLQQorR0FKSU5PViBLT1NUQQorR0FKSU5PViBLT1NUQQorR0FKSU5PViBMQVpBUgorR0FKSU5PViBMQVpBUgorR0FKSU5PViBMQVpBUgorR0FKSU5PViBMSklMSkFOQQorR0FKSU5PViBMSlVCSUNBCitHQUpJTk9WIExKVUJJQ0EKK0dBSklOT1YgTUFSSUpBCitHQUpJTk9WIE1BUktPCitHQUpJTk9WIE1BUktPCitHQUpJTk9WIE1JTEFOCitHQUpJTk9WIE1JTE9SQUQKK0dBSklOT1YgTUlMT1JBRAorR0FKSU5PViBNSUxPUkFECitHQUpJTk9WIE5JS09MQQorR0FKSU5PViBQRVJBCitHQUpJTk9WIFBFUlNJREEKK0dBSklOT1YgUkFEQQorR0FKSU5PViBSQURJVk9KCitHQUpJTk9WIFJBRElWT0oKK0dBSklOT1YgU0FWQQorR0FKSU5PViBTVEVWQU4KK0dBSklOT1YgU1RFVkFOCitHQUpJTk9WIFRPRE9SCitHQUpJTk9WIFZFTElNSVIKK0dBSklOT1ZJxIYgxJBPUsSQRQorR0FKSU5PVknEhiDEkE9SxJBFCitHQUpJTk9WScSGIERBTklDQQorR0FKSU5PVknEhiBEUkFHQU5BCitHQUpJTk9WScSGIERVxaBBTgorR0FKSU5PVknEhiBJS09OSUpBCitHQUpJTk9WScSGIEpPVkFOCitHQUpJTk9WScSGIEpPVkFOCitHQUpJTk9WScSGIEtBVElDQQorR0FKSU5PVknEhiBMSlVCSUNBCitHQUpJTk9WScSGIE1JTEFOCitHQUpPIEnFoFRWQU4KK0dBSk9ESSBKT8W9RUYKK0dBSk9ESSBNQVJJSkEKK0dBSk9WScSGIEpVTElKQU5BCitHQUpPVknEhiBNT03EjElMTworR0FKT1ZJxIYgUkFET0pFCitHQUpUQSBBTklDQQorR0FKVEEgQVVSRUxJSkEKK0dBSyBBTEVLU0FORFJBCitHQUsgTUlMQU4KK0dBSyBORVZFTktBCitHQUsgUkFERQorR0FLIFNMQVZLTworR0FLIFNORcW9QU5BCitHQUsgWk9SS0EKK0dBS0nEhiBCT8WgS08KK0dBS09WScSGIEFOVE9OSUpBCitHQUtPVknEhiBKRUxFTkEKK0dBS09WScSGIE1BUklKQQorR0FLT1ZJxIYgTUlSS08KK0dBS09WScSGIE1JUktPCitHQUtPVknEhiBSQU5LTworR0FLT1ZJxIYgWk9SQQorR0FMIMWgQU5ET1IKK0dBTCDEkFVMQQorR0FMIMSQVUxBCitHQUwgQU5LQQorR0FMIEZFUkVOQworR0FMIEZFUkVOQworR0FMIEZFUkVOQworR0FMIEdBQk9SCitHQUwgR0laRUxBCitHQUwgSkFOT8WgCitHQUwgSk/FvUVGCitHQUwgSk/FvUVGCitHQUwgSk9WQU4KK0dBTCBLQUxNQU4KK0dBTCBMQUpPxaAKK0dBTCBMQUpPxaAKK0dBTCBNQVJHSVQKK0dBTCBNQVJJQQorR0FMIE1JxaBBCitHQUwgTUlLTE/FoAorR0FMIFBBVkxFCitHQUwgUEVUQVIKK0dBTCBQRVRBUgorR0FMIFNURVZBTgorR0FMQUMgSk9TSVAKK0dBTEFDIFBBVkxFCitHQUxBTUIgQVRJTEEKK0dBTEFNQk/FoCBBTkEKK0dBTEFNQk/FoCBBTlRPTgorR0FMQU1CT8WgIEVSxb1FQkVUCitHQUxBTUJPxaAgSU1SRQorR0FMQU1CT8WgIEpPU0lQCitHQUxBTUJPxaAgTEFTTE8KK0dBTEFNQk/FoCBMQVNMTworR0FMQkHEjCBKT8W9RUYKK0dBTEXEjEnEhiBCUkFOSVNMQVYKK0dBTEXEjEnEhiBEUkFHQU4KK0dBTEXEjEnEhiBNSVJPU0xBVgorR0FMRcSMScSGIFpPUkFOCitHQUxFxIxJxIYgWk9SQU4KK0dBTEXFoEVWIMW9SVZPSklOCitHQUxFxaBFViBEVUJSQVZLQQorR0FMRcWgRVYgU0xPQk9EQU4KK0dBTEVUScSGIEFMRUtTQU5EQVIKK0dBTEVUScSGIE1BUklKQQorR0FMRVRJxIYgTUlMQU4KK0dBTEVUScSGIFZBU0EKK0dBTEVUScSGIFZMQURJTUlSCitHQUxFVEnEhiBaT1JBCitHQUxFVElOIE1JTElDQQorR0FMRVRJTiBOSUtPTEEKK0dBTEVUSU4gUEFKSUNBCitHQUxFVElOIFNJTUEKK0dBTEVUSU4gU0xBVktPCitHQUxFVElOLVNNSVQgUkFET0pLQQorR0FMRVRJTiBTVEVWQU4KK0dBTEVUSU4gWkxBVEtPCitHQUxGSSBKT1NJUAorR0FMRkkgTUlMRU5BCitHQUxHTyBJxaBUVkFOCitHQUxJxIxJxIYgQlJBTktPCitHQUxJxIxJxIYgTUlMSUNBCitHQUxJxIYgRFXFoEFOS0EKK0dBTEnEhiBJVkFOS0EKK0dBTEnEhiBKT1ZBTgorR0FMScSGIEpPVkFOCitHQUxJxIYgSk9WQU4KK0dBTEnEhiBLQVRJQ0EKK0dBTEnEhiBLQVRJQ0EKK0dBTEnEhiBMQURJU0xBVgorR0FMScSGIExKVUJJQ0EKK0dBTEnEhiBNQVJJSkFOCitHQUxJxIYgTUlMQURJTgorR0FMScSGIE1JTEVOS08KK0dBTEnEhiBNSUxLQQorR0FMScSGIE1JTE/FoAorR0FMScSGIE1JTE9WQU4KK0dBTEnEhiBNSVJLTworR0FMScSGIE1JVEFSCitHQUxJxIYgTU9NxIxJTE8KK0dBTEnEhiBORURFTEpLTworR0FMScSGIE5JS09MQQorR0FMScSGIE9MR0EKK0dBTEnEhiBQRVRBUgorR0FMScSGIFJPxb1JS0EKK0dBTEnEhiBTQU5KQQorR0FMScSGIFNMQVZLQQorR0FMScSGIFNURVZPCitHQUxJxIYgVEVSRVpBCitHQUxJxIYgVk9KSVNMQVYKK0dBTEnEhiBaRFJBVktPCitHQUxJQ0tJIMSQVVJBCitHQUxJSyBFVEVMS0EKK0dBTElQT1ZJxIYgSk9WSUNBCitHQUxLTyBKVUxJQQorR0FMTyDEkFVSQQorR0FMT05KQSBERVNBTktBCitHQUxPTkpBIERSQUdPTEpVQgorR0FMT05KQSBNSU9EUkFHCitHQUxPTkpBIE1JUktPCitHQUxPTkpBIFJBREUKK0dBTE9WScSGIMSQT1LEkEUKK0dBTE9WScSGIMSQVVJBCitHQUxPVknEhiBBTEVLU0FORFJBCitHQUxPVknEhiBBTsSQRUxLQQorR0FMT1ZJxIYgQlJBTktPCitHQUxPVknEhiBEUkFHSUNBIERSCitHQUxPVknEhiBJVklDQQorR0FMT1ZJxIYgSkVMSUNBCitHQUxPVknEhiBMSlVCSUNBCitHQUxPVknEhiBNSUxBTgorR0FMT1ZJxIYgTUlMQU4KK0dBTE9WScSGIE1JTEVOS08KK0dBTE9WScSGIFJBRE9NSVIKK0dBTE9WScSGIFNURVZPCitHQUxPVknEhiBaT1JLQQorR0FMVVMgTEFTTE8KK0dBTUJFUiBTTE9CT0RBTgorR0FORMW9SSBTQVZLQQorR0FOR0xJIEFOQQorR0FOScSGIEFMT0paSUpFCitHQU5JxIYgQUxPSlpJSkUKK0dBTknEhiBNScWgTworR0FOScSGIFNUQU5JU0xBVkEKK0dBTknEhiBaREVOS08KK0dBTknEhiBaT1JJQ0EKK0dBTkpJIFNBTVVFTAorR0FOVEFSIEFMRUtTQU5EUkEKK0dBTlRBUiBGSUxJUAorR0FOVEFSIE1JUk9TTEFWIERSCitHQVLEjEVWIERBTklDQQorR0FSxIxFViBNSUxVVElOCitHQVLEjEVWScSGIFBFUk8KK0dBUsSMRVZJxIYgUEVSTworR0FSQcWgRVZJxIYgTUlMS0EKK0dBUkFCQSBBTkRSSUpBCitHQVJBQkFOREnEhiDEkE9SxJBFCitHQVJBQkFOREnEhiBNQVJJSkEKK0dBUkFCQU5EScSGIE1JTEVOS08KK0dBUkFCQU5EScSGIE5JS09MQQorR0FSQUJBTlRJTiBJVkFOCitHQVJBQkFOVElOIE1JTE9WQU4KK0dBUkFCQU5USU4gU1RFVkFOCitHQVJBSSBCRUxBCitHQVJBSSBLT1JORUxJSkEKK0dBUkFKIEJSQU5JTUlSCitHQVJBSiBKRUxFTkEKK0dBUkFKIE9MR0EKK0dBUkFMRUpJxIYgVkVSSUNBCitHQVJBUEnEhiBCUkFOS08gRElQTCBJTkcKK0dBUkRBxaBFVknEhiBNSUxPxaAKK0dBUkRBxaBFVknEhi1TVFJJxIxFVknEhiBKT1ZBTktBCitHQVJEQcWgRVZJxIYgVkVTRUxJTgorR0FSREnEhiBBTElKQQorR0FSRElOT1ZBxIxLSSDEkE9SxJBFCitHQVJESU5PVkHEjEtJIEJPUklTTEFWCitHQVJESU5PVkHEjEtJIEJSQU5JTUlSCitHQVJESU5PVkHEjEtJIENWRVRBCitHQVJESU5PVkHEjEtJIE1JT1JLQQorR0FSRElOT1ZBxIxLSSBORURFTEpLTworR0FSRElOT1ZBxIxLSSBTVEVWQU4KK0dBUkRJTk9WQcSMS0kgU1ZFVE9aQVIKK0dBUkVMT1ZJxIYgTUlST1NMQVYKK0dBUkVWU0tJIERJTUlUUklKQQorR0FSScSGIMW9QVJLTworR0FSScSGIExBWkFSCitHQVJJxIYgTFVLQQorR0FSScSGIE1JUk9TTEFWCitHQVJJxIYgTkFEQQorR0FSScSGIFNURVZBTgorR0FST1ZJxIYgTUlMVVRJTgorR0FST1ZJxIYgTUlMVVRJTgorR0FST1ZOSUtPViDEkE9SxJBFCitHQVJPVk5JS09WIEJPUktBCitHQVJUTkVSIFBFVEFSCitHQVJVTk9WScSGIERBTklDQQorR0FSVU5PVknEhiBWQVNBCitHQVRBTE8gR09SQU4KK0dBVEFMTyBSQVRLTworR0FUQVJJxIYgxb1FTEpLTworR0FUQVJJxIYgxb1FTEpLTworR0FUQVJJxIYgQk/FoEtPCitHQVRBUknEhiBEUkHFvUUKK0dBVEFSScSGIE1BTk9KTE8KK0dBVEFSScSGIFNBVktBCitHQVRBUknEhiBTVEFOQQorR0FUQVJJxIYgU1ZFVE9aQVIKK0dBVEFSScSGIFpMQVRJQk9SCitHQVRFUiBKT1NJUAorR0FVREVOSkkgR0FCUklKRUxBCitHQVVERU5KSSBNQVRJTEQKK0dBVURFTkpJIFRJVkFEQVIKK0dBVkEgQUxFS1NFSgorR0FWQU5TS0kgQlJBTklTTEFWIEFEVk9LQVQKK0dBVkFOU0tJIEJSQU5JU0xBVkEKK0dBVkFOU0tJIEJSQU5JU0xBVkEKK0dBVkFOU0tJIERBUkEKK0dBVkFOU0tJIERSQUdBTgorR0FWQU5TS0kgRFXFoEFOCitHQVZBTlNLSSBHQVZSSUxPCitHQVZBTlNLSSBJVkFOCitHQVZBTlNLSSBKRUxFTkEKK0dBVkFOU0tJIEpVRElUQQorR0FWQU5TS0kgS09OU1RBTlRJTiBEUgorR0FWQU5TS0kgS09TVEEgRFBMIElORworR0FWQU5TS0kgS09TVEEKK0dBVkFOU0tJIExBWkFSCitHQVZBTlNLSSBMVUtBCitHQVZBTlNLSSBNQVJHSVRBCitHQVZBTlNLSSBNSUxJQ0EKK0dBVkFOU0tJIE1JTElDQQorR0FWQU5TS0kgTkFEQQorR0FWQU5TS0kgTk9WQUsKK0dBVkFOU0tJIFBBVkxFCitHQVZBTlNLSSBQRVRSQQorR0FWQU5TS0kgU1RFVkFOCitHQVZBTlNLSSBTVEVWQU4KK0dBVkFOU0tJIFNURVZBTgorR0FWQU5TS0kgU1RFVkFOCitHQVZBTlNLSSBTVkVUT1pBUgorR0FWQU5TS0kgWk9SQU4KK0dBVkFOU0tJIFpPUkFOCitHQVZBUknEhiBBTEVLU0FOREFSCitHQVZBUknEhiBHQVZSSUxPCitHQVZBUknEhiBKRVJFTUlKRQorR0FWQVJJxIYgTEpVQklDQQorR0FWQVJJxIYgTUlMRU5LTworR0FWTElLIEdFUkdFTEoKK0dBVk9ESSBFU1RFUgorR0FWUkFOIEdPSktPCitHQVZSQU4gTEpVQk9NSVIKK0dBVlJBTsSMScSGIMSQVVLEkElDQQorR0FWUkFOxIxJxIYgSk9WQU4KK0dBVlJBTsSMScSGIEtBVElDQQorR0FWUkFOxIxJxIYgTUFSR0lUQQorR0FWUkFOxIxJxIYgTUFSSUpBCitHQVZSQU7EjEnEhiBOSUtPTEEKK0dBVlJBTsSMScSGIFZMQURJTUlSCitHQVZSQU5JxIYgR09KS08KK0dBVlJBTknEhiBJTElKQQorR0FWUkFOScSGIFpWRVpEQU5BCitHQVZSQU5PViBCT1NBCitHQVZSQU5PViBTTE9CT0RBTgorR0FWUkFOT1ZJxIYgVE9NSVNMQVYKK0dBVlJBTk9WScSGIFpEUkFWS08KK0dBVlJJxIYgxIxFRE9NSVIKK0dBVlJJxIYgxb1JVktBCitHQVZSScSGIMSQT1LEkEUKK0dBVlJJxIYgQlJBTklTTEFWCitHQVZSScSGIERJTUlUUklKRQorR0FWUknEhi1HQVpEScSGIE5JS09MQQorR0FWUknEhiBJVkFOCitHQVZSScSGIElWQU4KK0dBVlJJxIYgSk9WQU4KK0dBVlJJxIYgSk9WTworR0FWUknEhiBNQVJJSkEKK0dBVlJJxIYgTUlIQUpMTworR0FWUknEhiBNSUxBTgorR0FWUknEhiBNSUxBTgorR0FWUknEhiBNSUxFTkEKK0dBVlJJxIYgTUlMRU5LTworR0FWUknEhiBNSUxFTktPCitHQVZSScSGIE1JTE/FoAorR0FWUknEhiBNSVJLTworR0FWUknEhiBNSVJPU0xBVgorR0FWUknEhiBQRVRBUgorR0FWUknEhiBSQURPTUlSCitHQVZSScSGIFJBRE9TTEFWCitHQVZSScSGIFNFTktBCitHQVZSScSGIFNMQVZLQQorR0FWUknEhiBTUEFTT0pFCitHQVZSScSGIFNWRVRPWkFSCitHQVZSScSGIFZFTElOS0EKK0dBVlJJxIYgVkxBRElNSVIKK0dBVlJJxIYgWk9SQU4KK0dBVlJJxIYgWk9SQQorR0FWUklMT1Ygxb1JVktBCitHQVZSSUxPViBBTktJQ0EKK0dBVlJJTE9WIEJPR0RBTgorR0FWUklMT1YgR09SREFOQQorR0FWUklMT1YgSEVSTUlOQQorR0FWUklMT1YgSlVMS0EKK0dBVlJJTE9WIExKVUJJQ0EKK0dBVlJJTE9WIE1BUlRBCitHQVZSSUxPViBNSUxJVk9KCitHQVZSSUxPViBNSUxJVk9KCitHQVZSSUxPViBNSUxPUkFECitHQVZSSUxPViBSQURJVk9KCitHQVZSSUxPViBTTEFWS08KK0dBVlJJTE9WIFNNSUxKQQorR0FWUklMT1YgVE9ET1IKK0dBVlJJTE9WIFVST8WgCitHQVZSSUxPVknEhiDFvUlLSUNBCitHQVZSSUxPVknEhiDFvUlWS0EKK0dBVlJJTE9WScSGIMW9SVZPSklOIERSCitHQVZSSUxPVknEhiBBTEVLU0FOREFSCitHQVZSSUxPVknEhiBBTEVLU0FOREFSCitHQVZSSUxPVknEhiBBTEVLU0EKK0dBVlJJTE9WScSGIEJPR0RBTktBCitHQVZSSUxPVknEhiBCT1JJVk9KCitHQVZSSUxPVknEhiBCUkFOS0EKK0dBVlJJTE9WScSGIEJSQU5LTworR0FWUklMT1ZJxIYgRE9CUklMQQorR0FWUklMT1ZJxIYgRE9CUklWT0pFCitHQVZSSUxPVknEhiBEVcWgSUNBCitHQVZSSUxPVknEhiBFTUlMCitHQVZSSUxPVknEhiBHUk9aREFOCitHQVZSSUxPVknEhiBKRUxJU0FWS0EKK0dBVlJJTE9WScSGIEpPVkFOCitHQVZSSUxPVknEhiBKT1ZBTgorR0FWUklMT1ZJxIYgS0FUSUNBCitHQVZSSUxPVknEhiBLTEFVRElKQQorR0FWUklMT1ZJxIYgTEFaQVIKK0dBVlJJTE9WScSGIExKVUJPTUlSCitHQVZSSUxPVknEhiBNQVJBCitHQVZSSUxPVknEhiBNQVJJSkEKK0dBVlJJTE9WScSGIE1BUklKQQorR0FWUklMT1ZJxIYgTUlMRU5BCitHQVZSSUxPVknEhiBNSUxFTktPCitHQVZSSUxPVknEhiBNSUxFTktPCitHQVZSSUxPVknEhiBNSUxJQ0EKK0dBVlJJTE9WScSGIE1JTE/FoAorR0FWUklMT1ZJxIYgTUlMT8WgCitHQVZSSUxPVknEhiBNSUxPSkUKK0dBVlJJTE9WScSGIE1JTE9TQVZBCitHQVZSSUxPVknEhiBNSUxPVkFOCitHQVZSSUxPVknEhiBNSVJBCitHQVZSSUxPVknEhiBNSVJKQU5BCitHQVZSSUxPVknEhiBNSVJKQU5BCitHQVZSSUxPVknEhiBNSVJLTworR0FWUklMT1ZJxIYgTUlST1NMQVYKK0dBVlJJTE9WScSGIE1JUk9TTEFWCitHQVZSSUxPVknEhiBNSVRBUgorR0FWUklMT1ZJxIYgTUxBREVOCitHQVZSSUxPVknEhiBORUJPSsWgQQorR0FWUklMT1ZJxIYgTklLT0xBIERSIFBST0YKK0dBVlJJTE9WScSGIE5JS09MQQorR0FWUklMT1ZJxIYgUEFWTEUKK0dBVlJJTE9WScSGIFJBRE9TTEFWCitHQVZSSUxPVknEhiBSQUpLQQorR0FWUklMT1ZJxIYgU0FWQSBEUgorR0FWUklMT1ZJxIYgU0FWTworR0FWUklMT1ZJxIYgU0xBVklDQQorR0FWUklMT1ZJxIYgU0xBVktPIERSCitHQVZSSUxPVknEhiBTTEFWS08KK0dBVlJJTE9WScSGIFNMQVZLTworR0FWUklMT1ZJxIYgU0xBVk9MSlVCCitHQVZSSUxPVknEhiBTTE9CT0RBTgorR0FWUklMT1ZJxIYgU09GSUpBCitHQVZSSUxPVknEhiBTVEFOQQorR0FWUklMT1ZJxIYgU1RFVkEKK0dBVlJJTE9WScSGIFNUT0pBTgorR0FWUklMT1ZJxIYgVE/FoEEKK0dBVlJJTE9WScSGIFRPRE9SCitHQVZSSUxPVknEhiBWRVJBIERSCitHQVZSSUxPVknEhiBWRVJJQ0EKK0dBVlJJTE9WScSGIFZMQURJTUlSCitHQVZSSUxPVknEhiBWTEFESU1JUgorR0FWUklMT1ZJxIYgVkxBRElNSVIKK0dBVlJJTE9WScSGIFZVS0lDQQorR0FWUklMT1ZJxIYgWkxBVEEKK0dBVlJJTE9WU0tJIFBBVkxJTkEKK0dBVlJPVknEhiBHT1JBTgorR0FWUk9WScSGIEdPUkRBTkEKK0dBVlJPVknEhiBMSlVCSVZPSkUKK0dBVlJPVknEhiBTVkVUTEFOQSBMT0tBTAorR0FaQUZJIExBU0xPCitHQVpEScSGIEJPUklWT0oKK0dBWkVQT1YgSUxJSkEKK0dBWknEhiBJVkFOCitHQVpJQkFSScSGIElaRVRBCitHQVpJQkFSScSGIEpFTEVOQQorR0FaSUJBUknEhiBKT1ZBTktBCitHQVpJQkFSScSGIFNJTUEKK0dBWklKQSBKT1ZBTgorR0FaSVZPREEgR09KS08KK0dFxIxFVlNLSSBTUkVUS08KK0dFQkFVRVIgRVJWSU4gRFIKK0dFQkVMUyBBTkEKK0dFQ0kgxJBVUkEKK0dFREVMT1ZTS0kgRFXFoEFOCitHRURFTE9WU0tJIFNPRklKQQorR0VHRcWgIEpVTElKQU5BCitHRUdFxaAgTkFORE9SCitHRUdFxaAgU0xBVklDQQorR0VHRU5CQVVFUiBEUkFHVVRJTgorR0VHRU5CQVVFUiBJTE9OS0EKK0dFR0VOQkFVRVIgWk9SQQorR0VHScSGIEFMRUtTQU5EQVIKK0dFR0nEhiBORU1BTkpBCitHRUxFSSBKRU5FCitHRUxFUiDFoEFORE9SCitHRUxFUiDEkFVMQQorR0VMRVIgQURBTQorR0VMRVIgQUxFS1NBTkRBUgorR0VMRVIgQkVMQQorR0VMRVIgSkVMSVNBVkVUQQorR0VMRVIgSk9WQU4KK0dFTEVSIExBU0xPCitHRUxFUiBMQVNMTworR0VMRVIgTUFSSUpBCitHRUxFUiBNQVJUQQorR0VMRVIgT0xHQQorR0VMRVItUEVUS09WScSGIEdJWkVMQQorR0VMRVIgVElCT1IKK0dFTEpJxIYgTUFUTworR0VNT1ZJxIYgQUxFS1NBTkRBUgorR0VOQyBGRVJFTkMKK0dFTkMgTEFKT8WgCitHRU5DRUwgSlVMSUpBTkEKK0dFTkNFTCBNQVJJSkFOQQorR0VOQ0VMIFZBTEVSSUpBCitHRU5DSSBKT1NJUAorR0VORVZBSk4gxJBVUkEKK0dFTkVWQUpOIEpPVkFOCitHRU5FVkFKTiBLQVJMTworR0VORVZBSk4gTEFKT8WgCitHRU5FVkFKTiBMQUpPxaAKK0dFTk9WQSBNQUpEQSBESVBMIElORworR0VOT1ZBIE1JTElDQSBESVBMIElORworR0VPUkdJRVYgTEVQT1NBVkEKK0dFT1JHSUVWU0tJIFBFUk8KK0dFT1JHSUVWU0tJIFZBU0lMCitHRU9SR0lKRVZJxIYgxb1JVktPCitHRU9SR0lKRVZJxIYgQUxFS1NBTkRBUgorR0VPUkdJSkVWScSGIElWQU5BCitHRU9SR0lKRVZJxIYgSk9WQU4KK0dFT1JHSUpFVknEhiBKT1ZBTgorR0VPUkdJSkVWScSGIExBWkFSCitHRU9SR0lKRVZJxIYgTEFaQQorR0VPUkdJSkVWScSGIExKVUJJxaBBCitHRU9SR0lKRVZJxIYgTUlMQU4KK0dFT1JHSUpFVknEhiBNSUxPU0FWCitHRU9SR0lKRVZJxIYgTUlMT1ZBTgorR0VPUkdJSkVWScSGIE5FU1RPUgorR0VPUkdJSkVWScSGIFJBRE9WQU4KK0dFT1JHSUpFVknEhiBWT0pJU0xBVgorR0VSQSBJQk9MSkEKK0dFUkFLIEVNSUxJSkEKK0dFUkFTSU1PVlNLSSBaTEFURQorR0VSQVRPVknEhiBaT1JBTgorR0VSRElKQU4gxIxFRE9NSVIKK0dFUkUgTEFKT8WgCitHRVJFIFpPTFRBTgorR0VSRUNJIEpVUkFKCitHRVJFRyDFvVXFvUFOQQorR0VSRUcgQU5EUkHFoAorR0VSRUcgQkxBTktBCitHRVJFRyBFVUdFTgorR0VSRUcgVElCT1IKK0dFUkdFxIwgU01JTEpBCitHRVJHRUxKIMWgSU1PTgorR0VSSSBURVJFWkEKK0dFUknEhiDFvUFSS08KK0dFUknEhiDEkE9SxJBFCitHRVJJxIYgQUxFS1NBTkRBUgorR0VSScSGIEFOVE9OCitHRVJJxIYgQ1ZFVEEKK0dFUknEhiBHSU5BCitHRVJJxIYgR09SREFOQQorR0VSScSGIElWQU4KK0dFUknEhiBJVkFOCitHRVJJxIYgS09TVEEKK0dFUknEhiBLT1ZJQ0EKK0dFUknEhiBMSlVCT01JUgorR0VSScSGIE1BUklKQQorR0VSScSGIE1JTEFOCitHRVJJxIYgTUlMT8WgCitHRVJJxIYgTUlMT8WgCitHRVJJxIYgTUlSS08KK0dFUknEhiBORURFTEpLTworR0VSScSGIE5FU1RPUgorR0VSScSGIE9CUkFECitHRVJJxIYgUEVUQVIKK0dFUknEhiBSQURJTktBCitHRVJJxIYgU1RFVkFOCitHRVJJSCBBTkRSSUpBCitHRVJMIEZFUkRPCitHRVJMIE1BUklKQQorR0VSTEEgRFJBR0FOQQorR0VSTEEgTEFESVNMQVYKK0dFUkxBIFRFT0RPUgorR0VSTUFOT1ZJxIYgTUlMQU4KK0dFUk1BTk9WScSGIFNUQU5PSkUKK0dFUk5BxIwgxJBPUsSQRQorR0VSTkHEjCBGUkFOSkEKK0dFUk5BxIwgTEFESVNMQVYKK0dFUk8gxJBFUsSQCitHRVJPIERVxaBBTktBCitHRVJPIEpBTk/FoAorR0VSTyBKT8W9RUYKK0dFUk8gS0FSTE8KK0dFUk8gTEFKT8WgCitHRVJPIE1BUkdJVEEKK0dFUk9MRCBKQUtPQgorR0VST0xEIExBU0xPCitHRVJPViBBTkdFTCBESVBMIElORworR0VSVE5FUiBBTkEKK0dFUlRORVIgRlJBTkpBCitHRVJUTkVSIEpPxb1FRgorR0VSVE5FUiBSRcW9RQorR0VURUwgSEVMTVVUCitHRVogSkFOT8WgCitHRVogSkVMSUNBCitHRVogS0FUSUNBCitHRVogVElCT1IKK0dFWiBWRVJPTklLQQorR0hBTkRPVVItxaBBTCBKVUxJSkFOQQorR0lBRFJPxaBJxIYgTUFSSUpBCitHSUJBTklDQSBHRU9SR0lOQQorR0lHQSBTUkVURU4KK0dJR0nEhiBNSU9NSVIKK0dJR0nEhiBNSVJKQU5BCitHSUdJxIYgWk9SQU4KK0dJS0nEhiBCT8W9SURBUgorR0lLScSGIERJTUlUUklKRQorR0lLScSGIFJBRElWT0pFCitHSUtPVlNLSSBNSU5PCitHSUxFWkFOIEtPUklPTEFOCitHSUxHIElSRU5BCitHSUxJxIYgRFJBR0FOCitHSUxJxIYgRFJBR0FOCitHSU1CT8WgIERPQlJJVk9KRQorR0lOQ1VMSiBTRVJHSUpFIERJUEwgSU5HCitHSU9OIEFMRUtTQU5EQVIKK0dJT04gQU5BIERSCitHSU9OIEnFoFRWQU4KK0dJT04gS0FMTUFOCitHSU9OIE5BTkRPUgorR0lSScSGIE1BVElKQQorR0lSSUMgQkVMQQorR0lSSUMgRUxFTkEKK0dJUklDIElNUkUKK0dJUklDIEpPxb1FRgorR0lSSUMgTEFTTE8KK0dJUklDLU1PS1XFoCBLTEFSQQorR0lSSVpEIExBU0xPIE5PVklOQVIKK0dJUk5UIFJPWkFMSUpBCitHSVMgSEVEVklHQQorR0pBRk8gTUFUSUpBCitHSkVSIFZMQURJTUlSCitHTEFEScWgIFNURVZBTgorR0xBREnEhiBNSUxBTgorR0xBREnEhiBSQUpLTworR0xBREnEhiBTVkVUT1pBUgorR0xBRE9WScSGIERVxaBBTgorR0xBRE9WScSGIFRBVEpBTkEKK0dMQUpIIEdFT1JHCitHTEFNT8SMQU5JTiBORVZFTktBCitHTEFNT8SMQU5JTiBORVZFTktBCitHTEFNT8SMQU5JTiBQRVJPCitHTEFNT8SMQU5JTiBWTEFESU1JUgorR0xBTU/EjEnEhiBEQU5FCitHTEFNT8SMScSGIFNORcW9QU5BCitHTEFNT8SMTElKQSBSVcW9SUNBCitHTEFOQyBBTlRVTgorR0xBU09WQUMgTUFSVEEKK0dMQVbEjEnEhiBNSUxPUkFECitHTEFWQcWgIMW9QVJLTworR0xBVkHFoCBKT1ZPCitHTEFWQcWgIE1JTEFOCitHTEFWQcWgLVRSQknEhiBCT8WgS08KK0dMQVZBxaBFVknEhiBBTsSQRUxLTworR0xBVkHFoEVWScSGIEFOxJBFTEtPCitHTEFWQcWgS0kgxb1JVk9KSU4KK0dMQVZBxaBLSSBBTEVLU0FOREFSCitHTEFWQcWgS0kgQUxFS1NBTkRSQQorR0xBVkHFoEtJIEFOxJBFTEtBCitHTEFWQcWgS0kgQk9HREFOIERJUEwgSU5HCitHTEFWQcWgS0kgQlJBTklTTEFWCitHTEFWQcWgS0kgQlJBTktPIERJUEwgUFJBVk5JSworR0xBVkHFoEtJIERSQUdBTgorR0xBVkHFoEtJIERVxaBBTgorR0xBVkHFoEtJIEdMScWgQQorR0xBVkHFoEtJIE1JTFVUSU4KK0dMQVZBxaBLSSBORU1BTkpBCitHTEFWQcWgS0kgU0lNQQorR0xBVkHFoEtJIFNJTknFoEEKK0dMQVZBxaBLSSBTTUlMSktBCitHTEFWQU4gSk9WQU4KK0dMQVZBTknEhiBCT1NJTEpLQQorR0xBVkFOScSGIEpVTEtBCitHTEFWQU5JxIYgTUlSS08KK0dMQVZBUkRBTk9WIEFMRUtTQU5EQVIKK0dMQVZBUkRBTk9WIElWQU4gRElQTCBJTkcKK0dMQVZBUkRBTk9WIE1BUklKQQorR0xBVkFSREFOT1YgU09LTworR0xBVkFUT1ZJxIYgRFJBR0FOCitHTEFWQVRPVknEhiBEVcWgQU4KK0dMQVZJxIxJxIYgTUFSSUpBTkEKK0dMQVZJxIYgQk/FoEtPCitHTEFWScSGIEdBVlJPCitHTEFWScSGIEpFTEtBCitHTEFWScSGIFJBRElTTEFWCitHTEFWSU5JxIYgSk9WTworR0xBVklOScSGIE1JTE9SQUQKK0dMQVZPxIxFVknEhiBJTElKQQorR0xFxJBBIE1JTEVOS08KK0dMRURJxIYgTUlMSUNBCitHTEnFoEnEhiDEkE9SxJBPCitHTEnFoEnEhiBCT1JJU0xBVgorR0xJxaBJxIYgQlJBTktPCitHTEnFoEnEhiBHUkFESU1JUgorR0xJxaBJxIYgSUxJSkEKK0dMScWgScSGIElWQU4KK0dMScWgScSGIEpFTElDQQorR0xJxaBJxIYgSk9WQU4KK0dMScWgScSGLUtFU0VHIFZBTEVSSUpBCitHTEnFoEnEhiBMSlVCScWgQQorR0xJxaBJxIYgTUlMRVZBCitHTEnFoEnEhiBORU5BRAorR0xJxaBJxIYgUFJFRFJBRworR0xJxaBJxIYgUkFET01JUgorR0xJxaBJxIYgU0lNTworR0xJxaBJxIYgU1JFVEEKK0dMScWgScSGIFZFU05BCitHTEnFoEnEhiBaT1JBTgorR0xJxaBJTiDEkE9SxJBFCitHTEnFoElOIEJSQU5LQQorR0xJxaBJTiBORU5BRAorR0xJxaBPVknEhiBNQVJJSkEKK0dMSUJJxIYgTUlMQU4KK0dMSUJPVEEgVkxBRE8KK0dMSUdJxIYgxb1FTEpLQQorR0xJR0nEhiBNSVJBCitHTElHScSGIE5FREVMSktPCitHTElHScSGIFRPTUlTTEFWCitHTElHT1JFVknEhiBEVcWgS08KK0dMSUdPUkVWScSGIFRPTU8KK0dMSUdPUknEhiDFvUVMSktPCitHTElHT1JJxIYgxb1JVk9KSU4KK0dMSUdPUknEhiDFvUlWT1JBRAorR0xJR09SScSGIEFOxJBFTEtBCitHTElHT1JJxIYgQ1ZFVEFOS0EKK0dMSUdPUknEhiBEUkFHQU4KK0dMSUdPUknEhiBEUkFHQU4KK0dMSUdPUknEhiBEUkFHScWgQQorR0xJR09SScSGIERSQUdJQ0EKK0dMSUdPUknEhiBEUkFHSU5KQQorR0xJR09SScSGIERSQUdPTUlSCitHTElHT1JJxIYgSkVMRU5BCitHTElHT1JJxIYgS0FUSUNBCitHTElHT1JJxIYgTEpVQk9NSVIKK0dMSUdPUknEhiBNSUxBTgorR0xJR09SScSGIE1JTEFOCitHTElHT1JJxIYgTUlMT1JBRAorR0xJR09SScSGIE1MQURFTgorR0xJR09SScSGIE5JS09MQQorR0xJR09SScSGIFJBREnFoEEKK0dMSUdPUknEhiBTVEFOT0pFCitHTElHT1JJxIYgU1RFVkFOCitHTElHT1JJxIYgU1RFVkFOCitHTElHT1JJSkVWScSGIEFMRUtTQU5EQVIKK0dMSUdPUklKRVZJxIYgRFJBR0FOQQorR0xJR09SSUpFVknEhiBEUkFHSUNBCitHTElHT1JJSkVWScSGIEtSU1RBCitHTElHT1JJSkVWScSGIE1JSEFKTE8KK0dMSUdPUklKRVZJxIYgTUlPRFJBRworR0xJR09SSUpFVknEhiBQRVRSQQorR0xJR09SSUpFVknEhiBSVcW9SUNBCitHTElHT1JJTiDEkFVSxJBJTktBCitHTElHT1JJTiBCT0pBTkEKK0dMSUdPUklOIE1JUk9TTEFWCitHTElHT1JJTiBTTEFWSUNBCitHTElHT1JJTiBTVEVWQU4KK0dMSUdPUklOIFRPTUlTTEFWCitHTElHT1JJTiBaT1JBTgorR0xJR09SSU4gWk9SS0EKK0dMSUdPUk9WIERFU0lNSVIKK0dMSUdPUk9WIEpPVkFOCitHTElHT1JPViBMRUtBCitHTElHT1JPViBMSlVCT01JUgorR0xJR09ST1ZJxIYgU0xBVktPCitHTElHT1JPVlNLSSBUUkFKS08KK0dMSU5UScSGIE1JTEUKK0dMSU5UScSGIE1JT0RSQUcKK0dMSU5UScSGIE5JS09MQQorR0xJTlRJxIYgUkFET1NMQVYKK0dMSU5UScSGIFNBVktBCitHTElOVEnEhiBWRVNFTEtBCitHTE/FvUFOU0tJIE1BUklKQQorR0xPxb1BTlNLSSBQRVRBUgorR0xPxb1BTlNLSSBWT0pJU0xBVgorR0xPR09OSkFDIFZJVE9NSVIKK0dMT0dPVsSMQU4gTUlMT8WgIERJUEwgSU5HCitHTE9HT1ZBQyBKRVZSRU0KK0dMT0dPVkFDIEtPUk5FTElKQQorR0xPR09WQUMgTUlSS08KK0dMT0dPVkFDIE1PTcSMSUxPCitHTFXFoEFDIEJPxb1JREFSCitHTFXFoEFDIERVxaBBTgorR0xVxaBBQyBNSUhBSkxPCitHTFXFoEFDIE1JTEFOCitHTFXFoEFDIE1JTE/FoAorR0xVxaBBQyBNSUxPUkFECitHTFXFoEFDIFBFVEFSCitHTFXFoEnEhiBCUkFOS08KK0dMVcWgSUNBIExKVUJPTUlSCitHTFXFoElDQSBNSUxBTgorR0xVxaBJQ0EgTUlMQU4KK0dMVcWgSUNBIE1JTEUKK0dMVcWgSUNBIE5FTkFECitHTFXFoElDQSBQRVRBUgorR0xVxaBJQ0EgU0xBxJBBTkEKK0dMVcWgSUNBIFNMQVZLQQorR0xVxaBJQ0EgWkRSQVZLTworR0xVSEFJxIYgQU7EkEVMS08KK0dMVUhBSknEhiBCT8W9TworR0xVSEFLIEtBUkxPCitHTFVIT1ZJxIYgTUlMT8WgCitHTFVIT1ZJxIYgTUlMT01JUgorR0xVSE9WScSGIFZFTEpLTworR0xVTUFDIERBTkUKK0dMVU1BQyBEQU5JTE8KK0dMVU1BQyBEQU5JTE8KK0dMVU1BQyBEUkFHQU4KK0dMVU1BQyBEVcWgQU4KK0dMVU1BQyBHQVZSQQorR0xVTUFDIEpFTEVOQQorR0xVTUFDIExBWk8KK0dMVU1BQyBMSlVCTworR0xVTUFDIE1BR0RBTEVOQQorR0xVTUFDIE1JTEFOCitHTFVNQUMgTUlMRQorR0xVTUFDIE1JT0RSQUcgRFIKK0dMVU1BQyBNSVJPU0xBVgorR0xVTUFDIFNMT0JPREFOIERSCitHTFVNScSMScSGIE1BTkRBCitHTFVWQUnEhiDEkE9SxJBFCitHTFVWQUpJxIYgRFJBR0FOCitHTFVWQUpJxIYgSk9WQU4KK0dMVVZBS09WIE1JTEFESU5LQQorR0xVVkFLT1YgUEFWTEUKK0dMVVZBS09WScSGIFZMQURJTUlSCitHTFVWTkpBIFNURVZBTgorR01JWknEhiBCUkFOSVNMQVYKK0dNSVpJxIYgTkVHT1ZBTgorR01JWknEhiBWTEFEQQorR05JUCBKT0FLSU0KK0dOSVAgVkVMSU1JUiBESVBMIElORworR05JUCBWRVJBCitHTklQIFZMQURJTUlSCitHTkpBVEnEhiBTVE9KQU5LQQorR05KRcSMIFNWRU4KK0dPxIxBTklOIFJBREUKK0dPxIxJxIYgQU7EkEEKK0dPxaBJxIYgSkVWUkVNCitHT8WgScSGIExKSUxKQQorR0/FoEnEhiBQQVZMRQorR0/FoEnEhiBQQVZMRQorR0/FoEnEhiBQQVZMRQorR0/FoEnEhiBUT01JU0xBVgorR0/FoEnEhiBUT01JU0xBVgorR0/FoE5KScSGIERPQlJJVk9KCitHT8SQRVZBQyBCT1NJTEpLQQorR09CRUMgS0FUSUNBCitHT0JFQyBNSUxBTgorR09CRUxKScSGIE1JTE9WQU4KK0dPQkVMSknEhiBTVFJBSElOSkEKK0dPQkVMSknEhiBTVkVUSVNMQVYKK0dPQkVMSknEhiBWVUtBRElOCitHT0JFTEpJxIYgVlVLCitHT0JPUiBBTkEKK0dPQk9SIExBRElTTEFWCitHT0JPUiBaT0xUQU4KK0dPQk9SIFpPTFRBTgorR09DScSGIEJPR09TQVYKK0dPQ0nEhiBKRVZST1NJTUEKK0dPQ0nEhiBWSURPSktPCitHT0RBIE9MSVZJSkEKK0dPREFSIEtBVEFSSU5BCitHT0RJxIYgTUFSSUpBCitHT0RJxIYgWlZPTktPCitHT0RJxIYgWlZPTktPCitHT0RJTkEgREFSS08KK0dPRElOQSBNSUxLTworR09ESU5TS0kgVkxBRElNSVIKK0dPRE/FoEVWIEtSU1RBCitHT0RPUiDFoEFORE9SCitHT0RPUiBKQU5PxaAKK0dPRE9SIEpPU0lQCitHT0RVTkMgRFXFoEFOCitHT0dJxIYgRE9CUklMTworR09HScSGIERSQUdPTEpVQgorR09HScSGIE1BUkEKK0dPR0nEhiBQQVZMRQorR09HScSGIFNMQVZLTworR09HScSGIFZFTElOS0EKK0dPR09MQUsgTUFSR0lUQQorR09HT0xKRVYgTUlIQUpMTworR09HT0xKRVYgVUxKQU5BCitHT0dPTEpFViBWQVNJTElKRQorR09HT1YgTUlMQU4KK0dPSkFOIEZFUkVOQworR09KScSGIERSQUdBTgorR09KScSGIEdPSktPCitHT0pJxIYgTUlMRU5BCitHT0pJxIYgTUlMRQorR09KS09WIMW9SVZLTworR09KS09WIEpVTElKQU5BCitHT0pLT1YgTUlMRU5BCitHT0pLT1YgUkFET01JUgorR09KS09WIFZBU0lMSUpFCitHT0pLT1ZJxIYgRE9OS0EKK0dPSktPVknEhiBEUkFHQU4KK0dPSktPVknEhiBEUkFHT1JBRAorR09KS09WScSGIERVxaBBTgorR09KS09WScSGIEdFT1JHSUpFIERJUEwgSU5HCitHT0pLT1ZJxIYgSUxJSkEKK0dPSktPVknEhiBKRUxBCitHT0pLT1ZJxIYgTEpVQknFoEEKK0dPSktPVknEhiBNSUxJU0FWCitHT0pLT1ZJxIYgTUlUQQorR09KS09WScSGIE5BREXFvURBCitHT0pLT1ZJxIYgTkVWRU5LQQorR09KS09WScSGIFBBVkxFCitHT0pLT1ZJxIYgUkFETUlMTworR09KS09WScSGIFJBRE9MSlVCCitHT0pLT1ZJxIYgU0FWTworR09KS09WScSGIFRPTUlTTEFWCitHT0pOScSGIERBVk9SCitHT0pPVknEhiBWVUtPU0FWCitHT0tMRVIgSUxPTkEKK0dPTERNQU4gQU5LSUNBCitHT0xETUFOLVRPTUHFoEVWScSGIEVWQQorR09MRcWgIFJVxb1BCitHT0xFTknEhiBTTEFWS08KK0dPTEVOSkEgQlJBTktPCitHT0xFTkpBIElSRU5BCitHT0xFTkpBIE1JUk9TTEFWQQorR09MRU5KQSBNSVJPU0xBVkEKK0dPTEVWQSBOQURBCitHT0xJxaBFVknEhiBNSVJKQU5BCitHT0xJxIYgxb1JVkFOCitHT0xJxIYgxJBPUsSQRQorR09MScSGIEFMRUtTQU5EQVIKK0dPTEnEhiBBTklDQQorR09MScSGIERPQlJJVk9KRQorR09MScSGIEZBSUQKK0dPTEnEhiBMSlVCT01JUgorR09MScSGIE1BUktPCitHT0xJxIYgU0xBVktBCitHT0xJxIYgU1RBTktBCitHT0xJxIYgVE9NSVNMQVYKK0dPTEnEhiBWT0pJTgorR09MScSGIFZPSktPCitHT0xJSkFOIEFOQQorR09MSUpBTklOIERVxaBBTktBCitHT0xJSkFOSU4gRVLFvUVCRVQKK0dPTElLIE9MR0EKK0dPTElLIFNMT0JPREFOCitHT0xKRVZBxIxLSSBEUkFHSUNBCitHT0xPIEFMRUtTQU5EQVIKK0dPTE8gRFJBR09TTEFWCitHT0xPxIxPUkJJTiBTTEFWVUoKK0dPTE/EjE9SRElOIERSQUdPCitHT0xPxaBJTi1ESU1JVFJJSkVWScSGIExKSUxKQU5BCitHT0xPxaBJTiBTVEVWSUNBCitHT0xPQk/EjEFOSU4gTUlMT1NBVgorR09MT01FSknEhiBNSUxPUkFECitHT0xPTknEhiBaQUdPUktBCitHT0xPVUggSVZBTgorR09MT1ZJxIYgSk9WQU4KK0dPTFXFoElOIEJSQU5JU0xBVgorR09MVcWgSU4gRFJBR0FOCitHT0xVxaBJTiBMSlVCSUNBCitHT0xVxaBJTiBMSlVCT01JUgorR09MVcWgSU4tTUnEhknEhiBNSUxFTktPCitHT0xVxaBJTiBNSU9EUkFHCitHT0xVxaBJTiBOQURBCitHT0xVxaBJTiBOSUtPTEEKK0dPTFVCScSMScSGIFZFUkEKK0dPTFVCScSGIE1JTElWT0pFCitHT0xVQkpBVE5JS09WQSBOSU5BCitHT0xVQk9WIE5BS0EKK0dPTFVCT1ZJxIYgxIxFRE9NSVIKK0dPTFVCT1ZJxIYgxJBPUsSQRQorR09MVUJPVknEhiBBTEVLU0FOREFSCitHT0xVQk9WScSGIEFSU0VOCitHT0xVQk9WScSGIEJPxaBLTworR09MVUJPVknEhiBCT0dEQU4KK0dPTFVCT1ZJxIYgQk9SSVZPSgorR09MVUJPVknEhiBCUkFOS08KK0dPTFVCT1ZJxIYgRElNSVRSSUpFCitHT0xVQk9WScSGIERPQlJJTEEKK0dPTFVCT1ZJxIYgRFJBR0FOQQorR09MVUJPVknEhiBEUkFHQU4KK0dPTFVCT1ZJxIYgRFJBR0EKK0dPTFVCT1ZJxIYgR09MVUIKK0dPTFVCT1ZJxIYgR09MVUIKK0dPTFVCT1ZJxIYgSUxJSkEKK0dPTFVCT1ZJxIYgSVZBTgorR09MVUJPVknEhiBKRVJFTUlKRQorR09MVUJPVknEhiBKT1ZBTgorR09MVUJPVknEhiBLU0VOSUpBCitHT0xVQk9WScSGIExKSUxKQU5BCitHT0xVQk9WScSGIExKVUJJTktBCitHT0xVQk9WScSGIExVS0EKK0dPTFVCT1ZJxIYgTUFOT0pMTworR09MVUJPVknEhiBNQU5PSkxPCitHT0xVQk9WScSGIE1BUklKQQorR09MVUJPVknEhiBNSUhBSkxPCitHT0xVQk9WScSGIE1JTEFOCitHT0xVQk9WScSGIE1JTEVOS08KK0dPTFVCT1ZJxIYgTUlMRU5LTworR09MVUJPVknEhiBNSUxVTgorR09MVUJPVknEhiBNSUxVVElOCitHT0xVQk9WScSGIE1JT0RSQUcKK0dPTFVCT1ZJxIYgTUlSSkFOQQorR09MVUJPVknEhiBNSVJPU0xBVgorR09MVUJPVknEhiBNTEHEkEVOCitHT0xVQk9WScSGIE1PTcSMSUxPCitHT0xVQk9WScSGIE1PTcSMSUxPCitHT0xVQk9WScSGIE1PTcSMSUxPCitHT0xVQk9WScSGIE5BREEKK0dPTFVCT1ZJxIYgTklLT0xBCitHT0xVQk9WScSGIE9MR0lDQQorR09MVUJPVknEhiBQRVJJxaBBCitHT0xVQk9WScSGIFNFS1VMQQorR09MVUJPVknEhiBTVEFOQQorR09MVUJPVknEhiBTVEFOQQorR09MVUJPVknEhiBURU9ET1JBCitHT0xVQk9WScSGIFRJSE9NSVIKK0dPTFVCT1ZJxIYgVE9NTworR09MVUJPVknEhiBWQUxFUklKQQorR09MVUJPVknEhiBWRUxJWkFSCitHT0xVQk9WScSGIFZVS0HFoElOCitHT0xVQk9WScSGIFZVS0HFoElOCitHT0xVQk9WScSGIFpPUkFOCitHT0xVQk9WScSGIFpWT05JTUlSCitHT0xVQlNLSSBNSUxJQ0EKK0dPTFVCU0tJIFJVxb1BCitHT01CQcWgIFRBTUHFoAorR09NQkFSIMWgQU5ET1IKK0dPTUJBUiBFTElaQUJFVEEKK0dPTUJBUiBGRVJFTkMKK0dPTUJBUiBJxaBUVkFOCitHT01CQVIgSkFOT8WgCitHT01CQVIgSkFOT8WgCitHT01CQVIgS0FUQUxJTgorR09NQkFSIE1JSEFMSgorR09NQkFSIFJPWkFMSUpBCitHT01CT8WgIEnFoFRWQU4KK0dPTUJPxaAgSVZJQ0EKK0dPTUJPxaAgS0FSTE8KK0dPTUJPVknEhiBCUkFOS08KK0dPTUlSQUMgxb1JVktPCitHT01JUkFDIEJSQU5LTworR09NSVJBQyBTVE9KQU4KK0dPTsSMSU4gU1JFVEtPCitHT07EkEEgxb1JVkFOCitHT07EkEEgTUlMRU5BCitHT07EkEEgUEVUQVIKK0dPTkRBIExBRElTTEFWCitHT05EQVIgUlXFvUEKK0dPTkpBIEJSQU5JTUlSCitHT05KQSBNSUxPU0xBVgorR09OSkEgUEVUQVIKK0dPUsWgRSBBTkRSSUpBCitHT1JBTk9WScSGIERSQUdPCitHT1JBTk9WScSGIE1JUktPCitHT1JCQU5PViBJVkFOCitHT1JEQU5JxIYgU1RPSkFOCitHT1JEScSGIERBUklOS0EKK0dPUkRJxIYgR09KS08KK0dPUkRJxIYgTEFWSU5JSkEKK0dPUkRJxIYgTUlMT1JBRAorR09SREnEhiBNSUxPVkFOCitHT1JEScSGIFJJU1RPCitHT1JEScSGIFNMQVZLTworR09SREnEhiBTVEVWQU4KK0dPUkRJxIYgVklUT01JUgorR09SRE/FoCDFvVXFvUFOQQorR09SRcSMQU4gS0FSTE8KK0dPUkVDIERSQUdVVElOCitHT1JFQyBOQURBCitHT1JFTkpBSyBSVURPTEYKK0dPUknEjEFORUMgTUlKTworR09SSkFOQUMgQlJBTktPCitHT1JKQU5BQyBNQVJJTgorR09STkpBSyBLQVRJQ0EKK0dPUlRWQSBKT1NJUAorR09TQVJJxIYgRlJBTkpBCitHT1NQScSGIE5FREVMSktPCitHT1NQT8SQSU5BxIxLSSBSQURPVkFOCitHT1NQT0RJTk9WScSGIElWQU4KK0dPU1RJxIYgWkRSQVZLTworR09TVElNSVJPVknEhiBNQVJJTgorR09TVElNSVJPVknEhiBQRVRBUgorR09TVE9KScSGIMSQVVLEkElOS0EKK0dPU1RPSknEhiBEVcWgQU4KK0dPU1RPSknEhiBKT1ZBTgorR09TVE9KScSGIExBWkFSCitHT1NUT0pJxIYgTUlMQU5BCitHT1NUT0pJxIYgTUlMT8WgCitHT1NUT0pJxIYgTUlST1NMQVYKK0dPU1RPSknEhiBNSVRBUgorR09TVE9KScSGIFNMQVZLQQorR09TVE9KScSGIFNMT0JPREFOS0EKK0dPU1RPSknEhiBURU9ET1IKK0dPU1RPVknEhiDEkE9SxJBFCitHT1NUT1ZJxIYgQk9HREFOCitHT1NUT1ZJxIYgSUtBCitHT1NUT1ZJxIYgTEpVQk9NSVIKK0dPU1RPVknEhiBNT01JUgorR09UxaBUQUpOIEZFUkVOQworR09WRURBUklDQSDEjEVETworR09WRURBUklDQSDFvUVMSU1JUgorR09WRURBUklDQSBERUpBTgorR09WRURBUklDQSBEUkFHSUNBCitHT1ZFREFSSUNBIE1JTEVOS08KK0dPVkVEQVJJQ0EgTUlMT1ZBTgorR09WRURBUklDQSBNSVRBUgorR09WRURBUklDQSBNSVRBUgorR09WRURBUklDQSBQQVZMRQorR09WRURBUklDQSBTSU1PCitHT1ZFREFSSUNBIFNMQVZLTworR09WRURBUklDQSBUQVRBSkFOQQorR09WRURBUklDQSBWRUxJTUlSCitHT1ZFREFSSUNBIFZMQURJTUlSCitHT1ZFREFST1ZJxIYgSlVMSUpBCitHT1ZFREFST1ZJxIYgTklLT0xBCitHT1ZFREFST1ZJxIYgUEVUQVIKK0dPVk9SxIxJTiDFvUlWS0EKK0dPVk9SxIxJTiBCT0dEQU4KK0dPVk9SxIxJTiBEQVJJTktBCitHT1ZPUsSMSU4gREVMSU5LQQorR09WT1LEjElOIERJTUlUUklKRQorR09WT1LEjElOIERJTUlUUklKRQorR09WT1LEjElOIERVxaBBTgorR09WT1LEjElOIEdBVlJBCitHT1ZPUsSMSU4gTEFaQVIKK0dPVk9SxIxJTiBNTEFERU4KK0dPVk9SxIxJTiBTQVZBCitHT1ZPUsSMSU4gU0xBVklDQQorR09WT1LEjElOIFNMT0JPREFOCitHT1ZPUsSMSU4gU1RFVkFOCitHT1ZPUsSMSU4gU1RPSkFOCitHT1ZPUsSMSU4gVkVSQQorR09WT1LEjElOIFZMQURBCitHT1ZPUsSMSU4gVkxBRElNSVIKK0dPVk9SxIxJTk9WIE1JUk9TTEFWCitHUsSMQU5BQyBCUkFOS08KK0dSxIxFIE1JTEFOCitHUsSMScSGIE1JTEVOS08KK0dSxIxJxIYgTUlMSVZPSgorR1LEjEnEhiBTTE9CT0RBTiBESVBMIElORworR1LEjEnEhiBTVkVUSVNMQVYKK0dSxIxJxIYtVFVCScSGIEpPVkFOS0EKK0dSxIxJxIYgVkVSSUNBCitHUsSMScSGIFpPUktBCitHUsSMS0kgTUlMRQorR1LEjEtJIE1JUkpBTkEKK0dSxaBJxIYgxJBPUsSQRQorR1LFoEnEhiDEkE9SxJBFCitHUsWgScSGIE1JTElDQQorR1LFoEnEhiBOSUtPTEEKK0dSxaBJxIYgUlXFvUlDQQorR1LFoEnEhiBTT0ZJSkEKK0dSxJBJxIYgRFJBR1VUSU4KK0dSQcSMQU5JTiBJVkFOCitHUkHEjEFOSU4gVkFMRVJJSkEKK0dSQcSMRUsgU1RFVkFOCitHUkHEjElLIFNMQVZLQQorR1JBxIxJSyBTVEVWQU4KK0dSQcSMS08gxaBBTkRPUgorR1JBxIxLTyBPTEdBCitHUkHEjEtPIE9MR0EKK0dSQcSMS08gUk9aQUxJSkEKK0dSQcWgQSBKT1NJUAorR1JBxaBBUiBBTkEKK0dSQcWgScSGIFZBTEVOVElOCitHUkHFoEnEhiBaREVOS08KK0dSQcWgTkVSIFNPRklKQQorR1JBxJBJTiBNSUxPxaAKK0dSQUIgRkVSRU5DCitHUkFCQVIgSk9TSVBBCitHUkFCQVIgSk9TSVAKK0dSQUJBUiBNSVJLTworR1JBQkXFvSBJTEUKK0dSQUJFxb0gSk9KQQorR1JBQknEhiBTVEVWQU4KK0dSQUJJxIYgVVJPxaAKK0dSQUJPQ0kgUkFNQURBTgorR1JBQk9WQUMgQUNPCitHUkFCT1ZBQyBDVkVUQQorR1JBQk9WQUMgRElNSVRSSUpFCitHUkFCT1ZBQyBKT1ZBTgorR1JBQk9WQUMgTkVWRU5LQQorR1JBQk9WQUMgUkFOS08KK0dSQUJPVkFDIFNJTUVVTgorR1JBQlVORMW9SUpBIEpVTElKQU5BCitHUkFEQcWgxIxFVknEhiBPU01BTgorR1JBREnEhiDFvUlWS08KK0dSQURJxIYgQk/FvUlDQQorR1JBREnEhiBEQU5LQQorR1JBREnEhiBTUEFTT0pFCitHUkFESU7EjEVWScSGIEFSU0VOSUpFCitHUkFESU5BIFNNSUxKS0EKK0dSQURJTkFDIEFMRUtTQU5EQVIKK0dSQURJTkFDIFNSRURPSkUKK0dSQURJTkFDIFNSRURPSkUKK0dSQURJTkFDIFNSRURPSkUKK0dSQURJTkFST1YgRElNSVRSSUpFCitHUkFET0pFVknEhiBLQVRJQ0EKK0dSQURPSkVWScSGIExKVUJJQ0EKK0dSQUhFSyBOQURBCitHUkFIT1ZBQyDEkE9SxJBFCitHUkFIT1ZBQyDEkE9SxJBFCitHUkFIT1ZBQyBCUkFOSVNMQVYKK0dSQUhPVkFDIENWSUpPCitHUkFIT1ZBQyBEQU5JSkVMQQorR1JBSE9WQUMgRFJBR0FOQQorR1JBSE9WQUMgRFJBR0lDQQorR1JBSE9WQUMgRFXFoEFOS0EKK0dSQUhPVkFDIERVxaBBTgorR1JBSE9WQUMgRFXFoEFOCitHUkFIT1ZBQyBEVcWgQU4KK0dSQUhPVkFDIEdPSktPCitHUkFIT1ZBQyBKQU5LTworR1JBSE9WQUMgSk9WQU4KK0dSQUhPVkFDIEpPVkFOCitHUkFIT1ZBQyBNSU9EUkFHCitHUkFIT1ZBQyBNSVJLTworR1JBSE9WQUMgTUlST1NMQVYKK0dSQUhPVkFDIE5BREEKK0dSQUhPVkFDIE5JS09MQQorR1JBSE9WQUMgT0JSQUQKK0dSQUhPVkFDIFJBREUKK0dSQUhPVkFDIFJBTktBCitHUkFIT1ZBQyBTTEFWSUNBCitHUkFIT1ZBQyBTTEFWS08KK0dSQUhPVkFDIFNMQVZLTworR1JBSE9WQUMgU01JTEpBCitHUkFIT1ZBQyBTUEFTTworR1JBSE9WQUMgVkFTTworR1JBSE9WQUMgVkVMSU1JUgorR1JBSE9WQUMgWkRFTktPCitHUkFKTElORyBFTUlMCitHUkFOREnEhiBNSUpPRFJBRworR1JBTkRJxIYgTUlMSUNBCitHUkFOREnEhiBSQURPVkFOIERSIFBST0YKK0dSQU5EScSGIFNUT0pBTgorR1JBTknEhiBNQVJJSkEKK0dSQU5JxIYgTUFSSUpBCitHUkFOScSGIE5JS09MQQorR1JBTlVMQSBHT0pLTworR1JBT05KQSDEkFVSTworR1JBT1IgTUlST1NMQVYKK0dSQU9SIFNMQVZLTworR1JBT1JBQyBJU0lET1IKK0dSQU9WQUMgxJBPUsSQRQorR1JBT1ZBQyBBT1JJS0EKK0dSQU9WQUMgQkxBxb0KK0dSQU9WQUMgQk9HREFOCitHUkFPVkFDIEJPR0RBTgorR1JBT1ZBQyBCT1JJU0xBVgorR1JBT1ZBQyBEVcWgQU4KK0dSQU9WQUMgTUlMT8WgCitHUkFPVkFDIE1JTE9SQUQKK0dSQU9WQUMgT0xJVkVSQQorR1JBT1ZBQy1QQURST1YgTEpVQklOS0EKK0dSQU9WQUMgU0xPQk9EQU5LQQorR1JBUMSMQUsgSk9TSVAKK0dSQVZBUkEgRFJBR0lDQQorR1JBVkFSQSBOSUtPTEEKK0dSQVZBUkEgUkFERQorR1JCQSBLT1NUQQorR1JCQSBNSUxBTgorR1JCQSBORVZFTktBCitHUkJBIFZVS09KSUNBCitHUkJBVElOScSGIE1JTEFOCitHUkJBVElOScSGIE1JTE/FoAorR1JCQVYgSk9OCitHUkJBVkFDIE5FVkVOS0EKK0dSQkFWQUMgTklLT0xBCitHUkJJxIYgxb1JVkFOCitHUkJJxIYgxb1JVktPCitHUkJJxIYgxJBPUsSQRSBNUgorR1JCScSGIMSQVVJBxJAKK0dSQknEhiDEkFVSTworR1JCScSGIEFOxJBFTElKQQorR1JCScSGIEFOS0EKK0dSQknEhiBBTktJQ0EKK0dSQknEhiBCT8WgS08KK0dSQknEhiBCT0dEQU5LQQorR1JCScSGIEJPUklWT0pFCitHUkJJxIYgQlJBTktPCitHUkJJxIYgRMW9RVZBRAorR1JCScSGIERBUklOS0EKK0dSQknEhiBERVNBCitHUkJJxIYgRFJBR0FOCitHUkJJxIYgRFJBR0FOCitHUkJJxIYgRFJBR0FOCitHUkJJxIYgRFJBR08KK0dSQknEhiBEUkVOS0EKK0dSQknEhiBEVcWgQU4KK0dSQknEhiBEVcWgQU4KK0dSQknEhiBEVcWgQU4KK0dSQknEhiBEVcWgQU4KK0dSQknEhiBEVcWgQU4KK0dSQknEhiBEVcWgQU4KK0dSQknEhiBEVcWgQU4KK0dSQknEhiBEVcWgSUNBCitHUkJJxIYgR09KS08KK0dSQknEhiBHT1JBTgorR1JCScSGIEpPVkFOS0EKK0dSQknEhiBKT1ZBTktBCitHUkJJxIYgSk9WQU4KK0dSQknEhiBKT1ZBTgorR1JCScSGIEpPVklDQQorR1JCScSGIEpPVk8KK0dSQknEhiBMQVpBUgorR1JCScSGIExKVUJBTgorR1JCScSGIExKVUJJxaBBCitHUkJJxIYgTUFSSUpBCitHUkJJxIYgTUlMQU4KK0dSQknEhiBNSUxBTgorR1JCScSGIE1JTEFOCitHUkJJxIYgTUlMRU5BCitHUkJJxIYgTUlMRU5BCitHUkJJxIYgTUlMRU5LTworR1JCScSGIE1JTEVOS08KK0dSQknEhiBNSUxFCitHUkJJxIYgTUlMScSGCitHUkJJxIYgTUlMSUNBCitHUkJJxIYgTUlMS0EKK0dSQknEhiBNSUxPxaAKK0dSQknEhiBNSUxPxaAKK0dSQknEhiBNSUxPUkFECitHUkJJxIYgTUlMT1ZBTgorR1JCScSGIE1JTE9WQU4KK0dSQknEhiBNSUxVVElOCitHUkJJxIYgTUlSQQorR1JCScSGIE1JUkEKK0dSQknEhiBNTEFERU4KK0dSQknEhiBOSUtPTEEKK0dSQknEhiBPU1RPSkEKK0dSQknEhiBQRVRBUgorR1JCScSGIFBFVEFSCitHUkJJxIYgUEVUQVIKK0dSQknEhiBSQURFCitHUkJJxIYgUk9TQQorR1JCScSGIFNMT0JPREFOCitHUkJJxIYgU1RFVkFOCitHUkJJxIYgU1RFVkFOCitHUkJJxIYgU1RFVk8KK0dSQknEhiBTVkVUS08KK0dSQknEhiBWQVNBIERSCitHUkJJxIYgVkVSQQorR1JCScSGIFZJRAorR1JCScSGIFZPSklOCitHUkJJxIYgVk9KSVNMQVYKK0dSQknEhiBWVUtPU0FWQQorR1JCSU4gTUFSSUpBCitHUkJJTiBSQURPU0xBVgorR1JCT1ZBQyBNSUhBTEoKK0dSQk9WScSGIEFMSUwKK0dSQk9WScSGIERSQUdBTgorR1JCT1ZJxIYgR0FWUklMTworR1JCT1ZJxIYgSk9WQU4KK0dSQk9WScSGIEpPVkFOCitHUkJPVknEhiBNSUxBTgorR1JCT1ZJxIYgTUlMQU4KK0dSQk9WScSGIE1JUsSMRVRBCitHUkJPVknEhiBNT03EjElMTworR1JCT1ZJxIYgTVVSQVQKK0dSQk9WScSGIE1VUkFUCitHUkJPVknEhiBSQURJU0FWCitHUkJPVknEhiBSVcW9SUNBCitHUkJPVknEhiBTTEFWS08KK0dSQk9WScSGIFNNSUxKQQorR1JDRSBBTklDQQorR1JDScSGIEpPVkFOCitHUkNJxIYgTUlMSUNBCitHUkNJxIYgTklLT0xBCitHUkNJxIYgVkVTRUxJTgorR1JDT1ZJxIYgVkVSSUNBCitHUkRJxIYgSVZJQ0EKK0dSREnEhiBMVUpLQQorR1JEScSGIE1BUkEKK0dSRElOScSGIE1JUktPCitHUkRJTknEhiBTTE9CT0RBTgorR1JFxIwgUk9aQUxJSkEKK0dSRcSMRUwgS0FSTE8KK0dSRcSMTklLIEpBTktPCitHUkXEjE5JSyBNQVJJSkEKK0dSRcSMTklLIFBBVkxFCitHUkVCRUxESU5HRVIgTEpVQklDQQorR1JFQkVMRElOR0VSIFBFVEFSCitHUkVCTkpFViBST1pBTElKQQorR1JFQk8gTkVERUxKS08KK0dSRUJPVknEhiBSQU5LTworR1JFR0VDIE1BUklKQQorR1JFR0VDIFZJTEkKK0dSRUdFQyBWSUxJCitHUkVHRVIgSEVEVklHQQorR1JFR09SIEpPU0lQCitHUkVHT1JJxIYgQlJBTktPCitHUkVHT1JJxIYgRFXFoEFOCitHUkVHT1JJxIYgTUlMQU5LQQorR1JFR09SSU4gUEVUQVIKK0dSRUdPUk9WScSGIEFOVE9OSUpFCitHUkVHT1JPVknEhiBJVkFOCitHUkVHT1JPVknEhiBWTEFESU1JUiBESVBMIElORworR1JFR1XFoCBBTlRBTAorR1JFR1XFoCBKQU5PxaAKK0dSRUdVxaAgTEFTTE8KK0dSRUdVxaAgUEVUQVIKK0dSRUdVUknEhiBJVkFOCitHUkVJU0lOR0VSIERBUklOQQorR1JFSVpFUiBQRVRBUgorR1JFSyBTQURJSworR1JFS1MgUEFWRUwKK0dSRUtVIEFERU0KK0dSRUtVIEdBTkkKK0dSRUtVIEhBU0FOCitHUkVLVSBNVUhBTUVSCitHUkVLVSBORVpJUgorR1JFS1UgUkFNSVoKK0dSRUtVIFNBQklUCitHUkVLVUxPVknEhiBKT1ZBTgorR1JFS1VMT1ZJxIYgU1RBTsSMRQorR1JHQU5PVknEhiDEkFVSQQorR1JHQVIgxJBVUklDQQorR1JHQVIgQlJBTktBCitHUkdBUiBMQVpBUgorR1JHQVIgVE/FoEEKK0dSR0nEjEVWScSGIEpVTEnFoEtBCitHUkdJxIYgQk/FoEtPCitHUkdJxIYgQk9KQU5BCitHUkdJxIYgRFJBR09KRQorR1JHScSGIE1JSk8KK0dSR0nEhiBNSUxBTgorR1JHScSGIFNBVkVUQQorR1JHScSGIFNJTU8KK0dSR0nEhiBWRVJBCitHUkdJxIYgVkVSSUNBCitHUkdJxIYgWlZPTklNSVIKK0dSR0lOxIxFVknEhiBNSUhBRUxBIFBST0ZFU09SCitHUkdJTsSMRVZJxIYgVkxBRElNSVIKK0dSR1VSIERVxaBBTgorR1JHVVIgUkFET1NMQVYKK0dSR1VSIFZMQURBCitHUkdVUkVWScSGIE1JUk9TTEFWCitHUkdVUkVWScSGIFJBSktPCitHUkdVUknEhiBBTlRVTgorR1JHVVJJxIYgSk9TSVAKK0dSR1VSScSGIFJVxb1JQ0EKK0dSR1VST1YgU0xPQk9EQU4KK0dSR1VST1ZJxIYgTUlMT1JBRAorR1JJRkFUT05HIEtBUkxPCitHUklGQVRPTkcgT1RPCitHUklHT1JJSkVWIEFMRUtTQU5EQVIKK0dSSUdPUklKRVZJxIYgTklLT0xBCitHUklHT1JJSkVWScSGIFBFVEFSCitHUklKQUsgREFOSUNBCitHUklKQUsgS09TT1ZLQQorR1JJSkFLIE1JTEFOCitHUklKQUtPVknEhiBNSUxJQ0EKK0dSSUpBS09WScSGIE1JTE/FoAorR1JJTEVDIFNUQU5LTworR1JJTEVDIFNUQU5LTworR1JJTkhVVCBMQURJU0xBVgorR1JJU0EgUEVUQVIKK0dSSVNIQUJFUiBGUkFOSkEKK0dSSVpFTEogS0FSTE8KK0dSSVpFUiBQRVRBUgorR1JJWkVSIFNURVZBTgorR1JLQVZBQyBNSUxBTgorR1JLQVZBQyBNSVJPU0xBVgorR1JLSU5JxIYgS09TQVJBCitHUktJTknEhiBNSUxBTgorR1JLT1ZJxIYgxb1JVkFOCitHUktPVknEhiDEkE9SxJBFCitHUktPVknEhiDEkFVSTworR1JLT1ZJxIYgQU5LQQorR1JLT1ZJxIYgQk/FvUlEQVIKK0dSS09WScSGIEJPR09MSlVCCitHUktPVknEhiBCT1JJU0xBVgorR1JLT1ZJxIYgQlJBTktPCitHUktPVknEhiBEQU5FCitHUktPVknEhiBEVcWgQU4KK0dSS09WScSGIERVxaBBTgorR1JLT1ZJxIYgR0FWUklMTworR1JLT1ZJxIYgSkVMRU5BCitHUktPVknEhiBKT1ZBTiBESVBMIElORworR1JLT1ZJxIYgSk9WQU4KK0dSS09WScSGIExKSUxKQU5BCitHUktPVknEhiBNSUxJQ0EgRFIKK0dSS09WScSGIE1JUkpBTkEKK0dSS09WScSGIFNUT0pBTktBCitHUktPVknEhiBWRVJBCitHUktPVknEhiBWT0pJTUlSCitHUktPVknEhiBWT0pJTgorR1JLT1ZTS0kgUEFOVEEKK0dSTEnEhiDEkE9SxJBFCitHUkxJxIYgTEpVQklOS08KK0dSTEnEhiBNSUxFTktPCitHUkxJQ0Egxb1FTEpLTworR1JMSUNBIEJPU0lMSktBCitHUkxJQ0EgTUlMRVZBCitHUkxJQ0EgTUlMT1ZBTgorR1JMSUNBIFNUQU5LTworR1JMSUNBIFZPSklOCitHUkxKRVZJxIYgTUlSSkFOQQorR1JNQcWgIMSQVVJPCitHUk1BxaAgQlJBTktPCitHUk1PxaAgUFJFRFJBRworR1JNVcWgQSDFvUlWS08KK0dSTVXFoEEgxJBVUk8KK0dSTVXFoEEgTUlMQU4KK0dSTVXFoEEgTUlMQU4KK0dSTVXFoEEgUkFERQorR1JNVcWgQSBTTEFWS08KK0dSTVXFoEEgU01JTEpLQQorR1JNVcWgQSBTVE9KQU4KK0dSTVXFoEEgVkVMS08KK0dSTkpBIMSQVVJBCitHUk5KQSBBTkRSSUpBCitHUk5KQSBBTktBCitHUk5KQS1BU0FOSSBMSlVNTklKQQorR1JOSkEgRFXFoEFOCitHUk5KQSBKQU5LTworR1JOSkEgSkFOCitHUk5KQSBKT1ZBTgorR1JOSkEgSk9WQU4KK0dSTkpBIEpPVkFOCitHUk5KQSBKT1ZBTgorR1JOSkEgSlVSQUoKK0dSTkpBIExBU0xPCitHUk5KQSBMSlVERVZJVAorR1JOSkEgTUFSSUpBCitHUk5KQSBPU0tBUgorR1JOSkEgU09GSUpBCitHUk5KQSBTVEVWQU4KK0dSTkpBIFNURVZBTgorR1JOSkEgU1RFVkFOCitHUk5KQSBWTEFESU1JUgorR1JPxaBFSyBaVk9OSU1JUgorR1JPxaBLTyBNQVJJSkEKK0dST00gQ0lSSUwKK0dST01JTEnEhiBNSUxPUkFECitHUk9TIMSQT1LEkEUKK0dST1MgSVZBTgorR1JPUyBMQURJU0xBVgorR1JPWkRBTknEhiDEkE9SxJBFCitHUk9aREFOScSGIEVOSU5LQQorR1JPWkRBTknEhiBKT1NJUAorR1JPWkRBTknEhiBNSUxBTgorR1JPWkRBTknEhiBNSUxBTgorR1JPWkRBTk9WIFNMQVZLTworR1JPWkRBTk9WU0tJIERBTUpBTgorR1JPWkRBTk9WU0tJIE1JTEUKK0dST1pEQU5PVlNLSSBQRVRBUgorR1JPWkRJxIYgQk/FoEtPCitHUk9aREnEhiBCT0dEQU4KK0dST1pEScSGIERFU0FOS0EKK0dST1pEScSGIERPQlJJVk9KCitHUk9aREnEhiBEVcWgQU4KK0dST1pEScSGIEpBU01JTkEKK0dST1pEScSGIEpPVkFOCitHUk9aREnEhiBKT1ZBTgorR1JPWkRJxIYgSk9WQU4KK0dST1pEScSGIEtVWk1BTgorR1JPWkRJxIYgTEFaQVIKK0dST1pEScSGIExKVUJJxaBBCitHUk9aREnEhiBMSlVCT01JUgorR1JPWkRJxIYgTUlMQU4KK0dST1pEScSGIFBFVEFSCitHUk9aREnEhiBTVEVWQU4KK0dST1pEScSGIFZFU05BCitHUk9aREnEhiBaRFJBVktPCitHUk9aREnEhiBaT1JBTgorR1JPWkRJxIYgWk9SSUNBCitHUk9aR1VUIFRJQk9SCitHUlVCQSBET1JVCitHUlVCQSBUSUJFUklKRQorR1JVQkHEjCBHT1JEQU5BCitHUlVCQcSMIE1BS1NBCitHUlVCQcSMIE1PTcSMSUxPCitHUlVCQcSMIFNUQU5LQQorR1JVQkHEjCBUQU5BU0lKRQorR1JVQkHEjEnEhiBHT0pLTworR1JVQkFOT1YgRE9CUklWT0oKK0dSVUJBTk9WIERVxaBBTktBCitHUlVCQU5PViBOT1ZBSworR1JVQkFOT1YgWkFIQVJJSkUKK0dSVUJFxaBBIE5JS09MQQorR1JVQkXFoEnEhiBEUkFHQU4KK0dSVUJFxaBJxIYgRFXFoEFOCitHUlVCRcWgScSGIE1FTEFOSUpBCitHUlVCRVIgRURVQVJECitHUlVCRVIgRU1JTAorR1JVQkVSIEVWQUxECitHUlVCRVIgRlJBTkpBCitHUlVCRVIgUlVET0xGCitHUlVCRVRJxIYgT0xHQQorR1JVQknFoEEgQU7EkEVMTworR1JVQknFoEnEhiBNSVJKQU5BCitHUlVCScWgScSGIE1JUktPCitHUlVCScWgScSGIE5JS09MQQorR1JVQknEhiDFvUFSS08KK0dSVUJJxIYgxb1BUktPCitHUlVCScSGIEFOS0EKK0dSVUJJxIYgTUlMQU4KK0dSVUJJxIYgTklLT0xBCitHUlVCSU4gTUlMQU4KK0dSVUJJTiBNSVJPU0xBVgorR1JVQkpFxaBJxIYgQlJBTktPCitHUlVCSkXFoEnEhiBNSUxFTktPCitHUlVCSkXFoEnEhiBNSVJLTworR1JVQkpFxaBJxIYgU1RFVk8KK0dSVUJPUiBBREFNCitHUlVCT1IgQlJBTktPCitHUlVCT1IgRU1BCitHUlVCT1IgSkVGVE8KK0dSVUJPUi1KT0pJxIYgU0xBVklDQQorR1JVQk9SIEpPVk8KK0dSVUJPUiBMQVpBUgorR1JVQk9SIExBWk8KK0dSVUJPUiBMSlVCT01JUgorR1JVQk9SIE1JTEpBTkEKK0dSVUJPUiBNSUxPxaAKK0dSVUJPUiBORcSQTworR1JVQk9SIE5FREVMSktPCitHUlVCT1IgTkVWRU5BCitHUlVCT1IgTklLT0xBCitHUlVCT1IgTklLT0xBCitHUlVCT1IgT0xHQQorR1JVQk9SIFJBREUKK0dSVUJPUiBTTE9CT0RBTgorR1JVQk9SIFNSRVRPCitHUlVCT1IgVlVKTworR1JVQk9SIFpEUkFWS08KK0dSVUJPUk9WScSGIE1JTEUKK0dSVUJPVknEhiBJTElKQQorR1JVRVNLVS3EhklSScWgQU4gREVMSUpBCitHUlVJxIxJxIYgRFJBR09MSlVCCitHUlVJSyBWRVJPTklLQQorR1JVSsSMScSGIE5JS09MQQorR1JVSkFOQUMgTUlMQU4KK0dSVUpFViBPR05KQU4gRElQTCBJTkcKK0dSVUpJxIwgU0xPQk9EQU4KK0dSVUpJxIxJxIYgQklMSkFOQQorR1JVSknEjEnEhiBKT1ZBCitHUlVKScSMScSGIE1BUklOS08KK0dSVUpJxIxJxIYgTUlBCitHUlVKScSMScSGIE1JTElDQQorR1JVSknEjEnEhiBNSUxPSkUKK0dSVUpJxIxJxIYgTkVOQUQKK0dSVUpJxIxJxIYgUEVUQVIKK0dSVUpJxIxJxIYgUFJFRFJBRworR1JVSknEjEnEhiBSQURPTUlSCitHUlVKScSMSU4gU1RBTk9KRQorR1JVSknEjEtPViBKT1ZBTgorR1JVSknEjEtPViBNSUxLQQorR1JVSknEhiDFvUlWS0EKK0dSVUpJxIYgxb1JVk9SQUQKK0dSVUpJxIYgxJBFTkEKK0dSVUpJxIYgxJBFTklTSUpFCitHUlVKScSGIMSQT1LEkEUKK0dSVUpJxIYgxJBVUsSQSUNBCitHUlVKScSGIMSQVVJBCitHUlVKScSGIMSQVVJBCitHUlVKScSGIEFMRUtTQU5EQVIKK0dSVUpJxIYgQUxFS1NBTkRBUgorR1JVSknEhiBBTEVLU0FOREFSCitHUlVKScSGIEFMRUtTQU5EQVIKK0dSVUpJxIYgQUxFS1NBTkRBUgorR1JVSknEhiBBTsSQRUxLTworR1JVSknEhiBBTkRSSUpBCitHUlVKScSGIEFOSUNBCitHUlVKScSGIEJPxb1JREFSCitHUlVKScSGIEJPxb1JREFSCitHUlVKScSGIEJPUklTTEFWCitHUlVKScSGIEJPUklWT0oKK0dSVUpJxIYgQk9TSUxKS0EKK0dSVUpJxIYgQlJBTklTTEFWCitHUlVKScSGIEJSQU5JU0xBVgorR1JVSknEhiBCUkFOS08KK0dSVUpJxIYgQ1ZJSkVUSU4KK0dSVUpJxIYgQ1ZJSk8KK0dSVUpJxIYgREFOSUNBCitHUlVKScSGIERJTUlUUklKRQorR1JVSknEhiBEUkFHSUNBCitHUlVKScSGIERVxaBBTgorR1JVSknEhiBEVcWgQU4KK0dSVUpJxIYgRFXFoEFOCitHUlVKScSGIEZSQU5DScWgS0EKK0dSVUpJxIYgR0FWUkEKK0dSVUpJxIYgR0FWUklMTworR1JVSknEhiBHT1JBTgorR1JVSknEhiBHT1JJQ0EKK0dSVUpJxIYgR1JVSkEKK0dSVUpJxIYgSUxJTktBCitHUlVKScSGIElWQU4gRElQTCBJTkcKK0dSVUpJxIYgSVZBTktBCitHUlVKScSGIEpBTkpBCitHUlVKScSGIEpFTElDQQorR1JVSknEhiBKRUxJU0FWRVRBCitHUlVKScSGIEpFTEtBIERSCitHUlVKScSGIEpPVkFOS0EKK0dSVUpJxIYgSk9WQU5LQQorR1JVSknEhiBKT1ZBTgorR1JVSknEhiBKT1ZBTgorR1JVSknEhiBKT1ZBTgorR1JVSknEhiBKT1ZBTgorR1JVSknEhiBKT1ZJQ0EKK0dSVUpJxIYgSlVMS0EKK0dSVUpJxIYgS09TVEEgRFIKK0dSVUpJxIYgS09TVEEgRFIKK0dSVUpJxIYgTEFaQVIKK0dSVUpJxIYgTEVOS0EKK0dSVUpJxIYgTEpJTEpBTkEKK0dSVUpJxIYgTEpVQklDQQorR1JVSknEhiBMSlVCT01JUgorR1JVSknEhiBMSlVCTworR1JVSknEhiBNQVJJSkEKK0dSVUpJxIYgTUFSSUpBCitHUlVKScSGIE1BUklKQQorR1JVSknEhiBNQVJJSkEKK0dSVUpJxIYgTUFSSU5BCitHUlVKScSGIE1JSEFKTE8KK0dSVUpJxIYgTUlMQU4KK0dSVUpJxIYgTUlMQU4KK0dSVUpJxIYgTUlMQU4KK0dSVUpJxIYgTUlMRU5BCitHUlVKScSGIE1JTEVOS08KK0dSVUpJxIYgTUlMRQorR1JVSknEhiBNSUxJQ0EKK0dSVUpJxIYgTUlMT8WgCitHUlVKScSGIE1JTE/FoAorR1JVSknEhiBNSUxPUkFECitHUlVKScSGIE1JTE9SQUQKK0dSVUpJxIYgTUlSSkFOQQorR1JVSknEhiBNSVJPU0xBViBESVBMIElORworR1JVSknEhiBNSVJPU0xBVgorR1JVSknEhiBNSVRBUgorR1JVSknEhiBOQURBIERSIExFS0FSCitHUlVKScSGIE5BREEKK0dSVUpJxIYgTkFEQQorR1JVSknEhiBORURFTEpLTworR1JVSknEhiBOSUtPTEEKK0dSVUpJxIYgTklLT0xBCitHUlVKScSGIE5JS09MQQorR1JVSknEhiBOSUtPTEEKK0dSVUpJxIYgTklLT0xBCitHUlVKScSGIE5JS09MQQorR1JVSknEhiBOT1ZBSworR1JVSknEhiBQQVZMRQorR1JVSknEhiBQRVRBUgorR1JVSknEhiBSQURFTktPCitHUlVKScSGIFJBREUKK0dSVUpJxIYgUkFEScWgQQorR1JVSknEhiBSQURJTktBCitHUlVKScSGIFJBRElWT0oKK0dSVUpJxIYgUkFESVZPSgorR1JVSknEhiBSQURNSUxBCitHUlVKScSGIFJBRE9KSUNBCitHUlVKScSGIFJBRE9WQU4KK0dSVUpJxIYgUlXFvUlDQQorR1JVSknEhiBTQU5KQQorR1JVSknEhiBTQVZBCitHUlVKScSGIFNBVkEKK0dSVUpJxIYgU0lOScWgQQorR1JVSknEhiBTTEFWScWgQQorR1JVSknEhiBTTEFWSUNBCitHUlVKScSGIFNMQVZLQQorR1JVSknEhiBTTEFWS08KK0dSVUpJxIYgU0xPQk9EQU4gRElQTCBJTkcKK0dSVUpJxIYgU0xPQk9EQU4KK0dSVUpJxIYgU0xPQk9EQU4KK0dSVUpJxIYgU0xPQk9EQU4KK0dSVUpJxIYgU0xPQk9EQU4KK0dSVUpJxIYgU01JTEpBTkEKK0dSVUpJxIYgU01JTEpBCitHUlVKScSGIFNNSUxKQQorR1JVSknEhiBTUsSQQU4KK0dSVUpJxIYgU1RFVkFOCitHUlVKScSGIFNURVZBTgorR1JVSknEhiBTVEVWQU4KK0dSVUpJxIYgU1RFVkFOCitHUlVKScSGIFNUT0pBTiBEUgorR1JVSknEhiBTVkVUT1pBUgorR1JVSknEhiBTVkVUT1pBUgorR1JVSknEhiBUQVRKQU5BCitHUlVKScSGIFZFTElNSVIKK0dSVUpJxIYgVkVSSUNBCitHUlVKScSGIFZFU0VMSU4KK0dSVUpJxIYgVkVTTkEKK0dSVUpJxIYgVk9KSVNMQVYKK0dSVUpJxIYgWkRSQVZLTworR1JVSknEhiBaTEFUSUNBCitHUlVKScSGIFpMQVRJQ0EKK0dSVUpJTiBEQU5JQ0EKK0dSVUpJTiBEVcWgQU4KK0dSVUpJTiBMSlVCSUNBCitHUlVKSU4gTUlMQU4KK0dSVUpJTiBNSUxPxaAKK0dSVUpJTiBOQURBCitHUlVKSU4gT0xHQQorR1JVSklOIFBFVEFSCitHUlVKSU4gUkFET1NMQVYKK0dSVUpJTiBTQcWgQQorR1JVSklOIFNNSUxKQQorR1JVSklOIFNQQVNPSkUKK0dSVUpJTiBURVJFWkEKK0dSVUpJTiBaT1JBTgorR1JVSklOT1ZJxIYgRFJBR1VUSU4KK0dSVUpJTk9WScSGIFpPUktBCitHUlVKT1ZJxIYgQlJBTklTTEFWCitHUlVKT1ZJxIYgTUlIQUpMTworR1JVSk9WU0tJIExBWkFSCitHUlVMT1ZJxIYgUkFET0pLQQorR1JVTE9WScSGIFpERU5LTworR1JVTE9WScSGIFpEUkFWS0EKK0dSVUxPVknEhiBaRFJBVktPCitHUlVOxIxJxIYgSk9WQU4KK0dSVU5JSyBWTEFESU1JUiBEUgorR1XFoEEgTklLT0xBCitHVcWgQSBQUkVEUkFHCitHVcWgQVZBQyBaT1JBTgorR1XFoEnEhiBCT0dEQU4KK0dVxaBJxIYgQk9SSVMKK0dVxaBJxIYgTUFOT0pMTworR1XFoEnEhiBNQU5PSkxPCitHVcWgScSGIE1JTEVOS0EKK0dVxaBJxIYgUkFERU5LTworR1XFoEnEhiBSQURFTktPCitHVcWgScSGIFVHTEpFxaBBCitHVcWgScSGIFZBU0lMSktBCitHVcW9QUxJxIYgTUFSSUpBCitHVcW9QUxJxIYgU1RKRVBBTgorR1XFvUFMScSGIFZMQURJTUlSCitHVcW9QUxJxIYgWlZPTklNSVIKK0dVxb1FTEEgTEFTTE8KK0dVxb1WQU5KIElWSUNBCitHVcW9VklDQSDEkE9SxJBFCitHVcW9VklDQSDEkE9SxJBFCitHVcW9VklDQSBCUkFOSVNMQVYKK0dVxb1WSUNBIE1JTEFOCitHVcW9VklDQSBNSUxBTgorR1XFvVZJQ0EgTUlSS08KK0dVxb1WSUNBIE5JS09MQQorR1XFvVZJQ0EgU1RFVk8KK0dVxb1WSUNBIFpPUkFOCitHVUJBxaAgQU7EkEVMSUpBCitHVUJBxaAgTUlST1NMQVYKK0dVQkHFoCBWTEFESU1JUgorR1VCQcWgIFpBR09SS0EKK0dVQkFOREEgQkFSQkFSQQorR1VCQU5EQSBMQURJU0xBVgorR1VCRVJJTkEgRFXFoEFOCitHVUJFUklOQSBTTE9CT0RBTgorR1VCRVJJTknEhiBMSlVCSUNBCitHVUJFUk5PViBKVUxJSkFOQQorR1VCScSGIE1JUktPCitHVUJJQ0EgSk9WQU4KK0dVQklLIMWgQU5ET1IKK0dVQklLIMWgQU5ET1IKK0dVQklLIEtBUkxPCitHVUJJSyBLQVRBUklOQQorR1VCSUsgU1RFVkFOCitHVUMgU1RFVkFOCitHVUNJSkFOIFNURVZBCitHVUNVIE1JUkpBTkEKK0dVQ1VMSiBKRUxFTkEKK0dVQ1VMSiBNQVJHSVRBCitHVUNVTEogVkVSQQorR1VDVU5KQSBKT1ZBTgorR1VDVU5KQSBNSUxBTgorR1VDVU5KQSBNSUxPUkFECitHVUNVTkpBIE1JTE9SQUQKK0dVQ1VOU0tJIMW9SVZLQQorR1VDVU5TS0kgxJBPUsSQRQorR1VDVU5TS0kgQk/FvUlEQVIKK0dVQ1VOU0tJIEJPUklTTEFWCitHVUNVTlNLSSBCUkFOSVNMQVYKK0dVQ1VOU0tJIElWQU5LQQorR1VDVU5TS0kgSVZBTktBCitHVUNVTlNLSSBKRUxFTkEKK0dVQ1VOU0tJIEpPVkFOCitHVUNVTlNLSSBNQVJJSkEKK0dVQ1VOU0tJIE5BREEKK0dVQ1VOU0tJIFBFUlNJREEKK0dVQ1VOU0tJIFJBREUKK0dVQ1VOU0tJIFNJTUEKK0dVREFMSiBNQVJUQQorR1VEQUxPVknEhiBNT01JUgorR1VEQUxPVknEhiBSQURNSUxBCitHVURFTEogxJBPUsSQRQorR1VERUxKIEJSQU5JU0xBViBESVBMIElORworR1VERUxKIEpPVkFOCitHVURFTEogTUFSSUpBCitHVURFTEogTUlMQU4KK0dVREVMSiBNSUxFTkEKK0dVREVMSiBNT03EjElMTworR1VERUxKIE5FREVMSktBCitHVURFTEogU0FWQSBEUgorR1VET1ZJxIYgRFJBR09NSVIKK0dVRE9WScSGIFBBVkxFCitHVURPVknEhiBSQURNSUxBCitHVURPVknEhiBTVEVWQU4KK0dVRFVSScSGIEFMRUtTQU5EQVIKK0dVRFVSScSGIEFOxJBFTEtBIERSCitHVURVUknEhiBCUkFOSU1JUiBEUgorR1VEVVJJxIYgREVKQU4KK0dVRFVSScSGIEpPVkFOCitHVURVUknEhiBTVkVUSVNMQVYKK0dVRFVSScSGIFZBU0EKK0dVRFVSScSGIFpPUkFOCitHVUVMTUlOTyDFoEFORE9SCitHVUVMTUlOTyBGUknEkEXFoAorR1VHQSBWRVJBCitHVUdBIFZFUkEKK0dVR0nEhiBTSU5JxaBBCitHVUdMRVRBIFNSQklTTEFWCitHVUtPREkgTUxBREVOCitHVUxBxIxJIEpPU0lQCitHVUxBxIZJIExKVUJJTktBCitHVUxBTiBCT8WgS08KK0dVTEFOIEJSQU5JU0xBVgorR1VMQU4gVklET1NBVkEKK0dVTEQgVkFMRVJJSkEKK0dVTEVWScSGIFRBVEpBTkEKK0dVTEVWScSGIFZMQURJTUlSIERSIExFS0FSCitHVUxFVlNLSSBESU3EjEUKK0dVTEVWU0tJIERJTcSMRQorR1VMRVZTS0kgRElNxIxFCitHVUxFVlNLSSBESU3EjEUKK0dVTEVWU0tJIERJTcSMRQorR1VMRVZTS0kgTUlIQUpMTworR1VMRVZTS0kgU0HFoEEKK0dVTEnEjCBJTVJFCitHVUxJxIYgU1RBTktPCitHVUxJxIYgVkVTTkEKK0dVTElOIE1BUklDQQorR1VMSU4gWkxBVEtPCitHVUxKQcWgIE1BUklKQQorR1VMSkHFoCBURVJFWklKQQorR1VMSkHFoCBWRVNOQQorR1VMSlBBIE1JTEFOCitHVUxKUEEgU0FWQQorR1VORUsgTUFSSUpBCitHVU5FSyBNQVRFCitHVU5FSyBUT01BCitHVU5JxIYgTUlMRU5BCitHVU5KRVZJxIYgTUlMRQorR1VOSkVWScSGIE5FVkVOS0EKK0dVUkFOIFRBTUHFoAorR1VSSkFOT1Ygxb1BUktPCitHVVJKQU5PViBCTEFHT0pFCitHVVJKQU5PViBKRUxJQ0EKK0dVUkpBTk9WIFZBU0EKK0dVUk9WScSGIEJPxb1JREFSCitHVVNJxIYgTUlMRVZBCitHVVNNQU4gxJBPUsSQRSBEUiBMRUtBUgorR1VTTUFOIERSQUdJQ0EKK0dVU01BTiBHRVJIQVJECitHVVNNQU4gSElMREEKK0dVU01BTiBJTVJFCitHVVQgSkFOS08KK0dVVCBKT1ZBTgorR1VUIE5BVEFMSUpBCitHVVRBSSBKT0xBTgorR1VUQUkgTUlIQUxKCitHVVRBSkkgSUxFxaAKK0dVVEFMSiBNSUxPUkFECitHVVRFxaBBIMSQVVJPCitHVVRFxaBBIE1JUktPCitHVVRFxaBBIE5JS09MQQorR1VURcWgQSBWT0pJU0xBVgorR1VUSSDFvU9MVAorR1VUScSGIMWgUElSTworR1VUScSGIEdPUkFOCitHVVRNQU4gQUxFS1NBTkRBUgorR1VUTUFOIERBUklOS08KK0dVVE9WScSGIEFOxJBFTEtPCitHVVRPVknEhiBEQU5JRUxBCitHVVRPVknEhiBNSUxFTktPCitHVVRPVknEhiBSQURFCitHVVRPVknEhiBSSVNUTworR1VUT1ZJxIYgU0lOScWgQQorR1VUT1ZJxIYgU05Fxb1BTkEKK0dVVE9WScSGIFpPUkFOCitHVVRWQUpOIEFEQU0KK0dVVFZBSk4gQURBTQorR1VUVkFKTiBFTElaQUJFVEEKK0dVVFZBSk4gRVZBCitHVVpJSkFOIEpPVk8KK0dVWklKQU4gTUlMQU4KK0dVWklKQU4gTklLT0xBCitHVVpJTkEgxIxFRE9NSVIKK0dVWklOQSBMSlVCSVNBVgorR1VaSU5BIE1JSEFKTE8KK0dVWklOQSBNSUxPUkFECitHVVpJTkEgTUlMT1JBRAorR1VaSU5BIE1JTE9TQVYgRFIKK0dVWklOQSBWTEFESU1JUgorR1VaSU5BIFZPSklTTEFWCitHVVpJTkEgVlVLQcWgSU4KK0dWRVJJxIYgQk9SSVZPSgorR1ZFUknEhiBTTkXFvUFOQQorR1ZFUk8gTEFaTworR1ZFUk8gTUlSQQorR1ZPxb3EkEFOIEJPUklTTEFWQQorR1ZPxb3EkEFOIE1JSEFKTE8KK0dWT8W9xJBBTiBSQURPVkFOCitHVk9JxIYgQlJBTktPCitHVk9JxIYgTUlMQU4KK0dWT0nEhiBWQUxFUklKQQorR1ZPSknEhiBCT1JJU0xBVgorR1ZPSknEhiBNSUxBTgorR1ZPSknEhiBTVEFOS08KK0dWT0pJxIYgU1RFVkFOCitHVk9LQSBOQURBCitHVk9aREVOIEJPU0lMSktBCitHVk9aREVOIEJSQU5LTworR1ZPWkRFTiBTUkVUTworR1ZPWkRFTiBWTEFESU1JUgorR1ZPWkRFTkFDIMW9SVZLTworR1ZPWkRFTkFDIEJPUkEKK0dWT1pERU5BQyBCT1JBCitHVk9aREVOQUMgQk9SS0EKK0dWT1pERU5BQyBEUkFHT0xKVUIKK0dWT1pERU5BQyBEVcWgQU4KK0dWT1pERU5BQyBSQUpLTworR1ZPWkRFTkFDIFNORcW9QU5BCitHVk9aREVOT1YgSk9WQU4KK0dWT1pERU5PViBNSUxBTgorR1ZPWkRFTk9WScSGIMW9SVZPUkFECitHVk9aREVOT1ZJxIYgxJBPUsSQRQorR1ZPWkRFTk9WScSGIMSQVVJPCitHVk9aREVOT1ZJxIYgQk/FvU8KK0dWT1pERU5PVknEhiBCUkFOS08KK0dWT1pERU5PVknEhiBCUkFOS08KK0dWT1pERU5PVknEhiBERUpBTgorR1ZPWkRFTk9WScSGIERSQUdJTkpBCitHVk9aREVOT1ZJxIYgRFXFoEFOIERSCitHVk9aREVOT1ZJxIYgRFXFoEFOCitHVk9aREVOT1ZJxIYgRU1JTElKQQorR1ZPWkRFTk9WScSGIExKSUxKQU5BCitHVk9aREVOT1ZJxIYgTEpVQk8KK0dWT1pERU5PVknEhiBNScSGTworR1ZPWkRFTk9WScSGIE1JTElWT0pFCitHVk9aREVOT1ZJxIYgTUlMT8WgCitHVk9aREVOT1ZJxIYgTUlSS08KK0dWT1pERU5PVknEhiBNSVJPU0xBVgorR1ZPWkRFTk9WScSGIE1JUk9TTEFWCitHVk9aREVOT1ZJxIYgTklLT0xBCitHVk9aREVOT1ZJxIYgUEVUQVIKK0dWT1pERU5PVknEhiBSQUpLTworR1ZPWkRFTk9WScSGIFJBSktPCitHVk9aREVOT1ZJxIYgUkFKS08KK0dWT1pERU5PVknEhiBTVEVWTworR1ZPWkRFTk9WScSGLVRPRE9ST1ZJxIYgWkFHT1JLQQorR1ZPWkRFTk9WScSGLVRPRE9ST1ZJxIYgWkFHT1JLQQorR1ZPWkRFTk9WScSGIFZJREEKK0dWT1pERU5PVknEhiBWSVRPTUlSCitHVk9aREVOT1ZJxIYgVkxBREEKK0dWT1pERU5PVknEhiBWTEFEQQorR1ZPWkRFTk9WScSGIFpPUklDQQorR1ZPWkRJxIYgxJBPUsSQRQorR1ZPWkRJxIYgTUlMQU4KK0hBxaBPVknEhiBBTkRSSUpBCitIQcWgT1ZJxIYgSU1SRQorSEHEkElOQUMgQlJBTklTTEFWCitIQUJBxaAgWk9SQU4KK0hBQkFKRUMgTEpVQklDQQorSEFCRUsgxb1FTEpLTworSEFCRU7FoFVTIE1JTEVOS08KK0hBQkVOxaBVUyBNSUxFTktPCitIQUJJSkFOIEZSQU5KQQorSEFCSUpBTiBWRVNOQQorSEFCSUpBTkVDIFRJSE9NSVIKK0hBQk9SIEpBTgorSEFCUkFNIEFSQU5LQQorSEFCUkFNIEtBUk9MSgorSEFCVURBIEpPU0lQCitIQUJVREEgVkFMRU5USU4KK0hBQ09QVUxPUyDEkE9SxJBFCitIQUNPUFVMT1MgTkFEQQorSEFExb1JIEFMRUtTQU5EQVIKK0hBRMW9SSBLT1NUQSBBRFZPS0FUCitIQUTFvUktTUFOT1YgTEpVUMSMTworSEFExb1JLVBBVkxPVknEhiBPTEdBCitIQUTFvUkgUkFNQURBTgorSEFExb1JxIYgQk9TSUxKS0EKK0hBRMW9ScSGIEdPUkFOS0EKK0hBRMW9ScSGIElCUkFISU0KK0hBRMW9ScSGIElTTUVUCitIQUTFvUnEhiBMQVpBUgorSEFExb1JxIYgTEFaQVIKK0hBRMW9ScSGIE1JTEFOIERSCitIQUTFvUnEhiBNSUxFVkEKK0hBRMW9ScSGIE1PTklLQQorSEFExb1JxIYgTVVIQVJFTQorSEFExb1JxIYgTkFEQQorSEFExb1JxIYgT0xHQSBEUgorSEFExb1JxIYgUEFWTEUKK0hBRMW9ScSGIFJBRElWT0oKK0hBRMW9ScSGIFNMQVZVSgorSEFExb1JxIYgVkxBRElNSVIKK0hBRMW9SUFITUVUT1ZJxIYgUkFTSU0KK0hBRMW9SUFSU0nEhiBET0JSSVZPSkUKK0hBRMW9SUJBQknEhiBEUkFHQU4KK0hBRMW9SUJBQknEhiBSQURPTUlSCitIQUTFvUlCQUJJxIYgUkFET01JUgorSEFExb1JQkFCScSGIFpPUklDQQorSEFExb1JSEFTQU5PVknEhiBSQURNSUxBCitIQUTFvUlWVUtPVknEhiBTVEVWQU4gRFIgUFJPRgorSEFExb1PVknEhiBKRUxJU0FWRVRBCitIQUTFvU9WScSGIFJBVEtPCitIQURBREkgU01JTEpBCitIQURJSyBBRFJJRU4KK0hBRElLIEpPxb1FRgorSEFETkHEkCBHSVpFTEEKK0hBRE5BxJAgVEVSRVpBCitIQUROQcSQIFZFUkEKK0hBRE5BxJAgVkVST05JS0EKK0hBRE5BxJBFViBBUlNFTgorSEFETkHEkEVWIERVxaBBTiBEUgorSEFETkHEkEVWIERVxaBBTgorSEFETkHEkEVWIElTSURPUgorSEFETkHEkEVWIE1JT0RSQUcKK0hBRE5BxJBFViBNSVJLTworSEFETkHEkEVWIFNUQU5JU0xBVgorSEFETkHEkEVWIFNURVZBTgorSEFETkHEkEVWIFNUT0pBTgorSEFJTiBCUkFOSVNMQVYKK0hBSU4gWk9SSUNBCitIQUrEjFVOSyBKT8W9RUYKK0hBSsSMVU5LIE1JUktPCitIQUpBxaAgSkVMSVNBVkVUQQorSEFKREFSRVZJxIYgT1JIQU4KK0hBSkRBUlBBxaBJxIYgRVNBRAorSEFKREVSIMSQT1LEkEUKK0hBSkRFUiBEUkFHQU4KK0hBSkRFUiBMVUtBCitIQUpERVIgTUFSSUNBCitIQUpERVIgTUFSS08KK0hBSkRFUiBNSUxPxaAKK0hBSkRFUiBSQURFCitIQUpERVIgUkFKS08KK0hBSkRFUiBTVE9KQU5LQQorSEFKREVSIFZFU05BCitIQUpERVIgWk9SQU4KK0hBSkRJxIYgQU7EkEVMS08KK0hBSkRJTiBCT0dEQU4KK0hBSkRJTiBTTEFWS08KK0hBSkRVIEFOQQorSEFKRFUgQU5EUklKQQorSEFKRFUgQU5UQUwKK0hBSkRVIEZFUkVOQworSEFKRFUtR1JBSkxBSCBFTUEKK0hBSkRVIElMT05LQQorSEFKRFUgSVJFTkEKK0hBSkRVIEpPxb1FRgorSEFKRFUgSk9MSUtBCitIQUpEVSBKT1NJUAorSEFKRFUgS0FUSUNBCitIQUpEVSBLTEFSQQorSEFKRFUgTEFKT8WgCitIQUpEVSBMQVNMTworSEFKRFUgTEpVREVWSVQKK0hBSkRVIE1BUklKQQorSEFKRFUgT1RPCitIQUpEVSBQQVZMRQorSEFKRFUgU1RFVkFOCitIQUpEVUsgxJBPUsSQRQorSEFKRFVLIElSSU5BCitIQUpEVUsgSkFOS08KK0hBSkRVS09WScSGIEFSU0VOCitIQUpEVUtPVknEhiBCT8WgS08KK0hBSkRVS09WScSGIEJPR0RBTgorSEFKRFVLT1ZJxIYgREVTQU5LQQorSEFKRFVLT1ZJxIYgRFXFoEFOCitIQUpEVUtPVknEhiBKT1ZBTktBCitIQUpEVUtPVknEhiBMSklMSkFOQQorSEFKRFVLT1ZJxIYgTUlMQU5LQQorSEFKRFVLT1ZJxIYgTUlMQU4KK0hBSkRVS09WScSGIE5BREXFvURBCitIQUpEVUtPVknEhiBPVE8KK0hBSkRVS09WScSGIFJBRE9TTEFWIERJUEwgSU5HCitIQUpEVUtPVknEhiBTTUlMSkEKK0hBSk5BTCBBTlRBTAorSEFKTkFMIEdBQlJJSkVMQQorSEFKTkFMIElWQU4KK0hBSk5BTCBMQVNMTworSEFKTkFMIExKVUJJQ0EKK0hBSk5BTCBNQVJJSkEKK0hBSk5BTCBOSUtPTEEKK0hBSk5DIMSQT1LEkEUKK0hBSk5DIEpPU0lQCitIQUpOQyBKT1ZBTgorSEFKTkMgWkxBVEEKK0hBSlRGT0dFTCBWTEFEQQorSEFKVEZPR0VMIFZMQURJU0xBVgorSEFKVEwgSVZBTgorSEFKVkFaIFJBSktPCitIQUpaTEVSIMSQT1LEkEUKK0hBSlpMRVIgRFXFoEFOCitIQUpaTEVSIEpPVkFOCitIQUtBxIwgTUFUSUpBCitIQUtFUiBJVkFOCitIQUtFUiBURVJFWkEKK0hBTEHFoCBaVVpBTkEKK0hBTEHFoEkgxJBPUsSQRQorSEFMQcWgSSBFVEVMS0EKK0hBTEHFoEktS0nFoCBGUkFOS0EKK0hBTEHFoEkgUlXFvUEgRFIgSU5HCitIQUxBSSBJTVJFCitIQUxBSSBNQVJJSkEKK0hBTEFJIFBFVEFSCitIQUxBSSBTQUJPTMSMCitIQUxBUEkgRFJBR0lDQQorSEFMQVBJIElSRU5BCitIQUxBUEkgSVZBTgorSEFMQVMgxaBBTkRPUgorSEFMQVMgRlJBTkpBCitIQUxBUyBNQVJJSkEKK0hBTEFWQU5KQSDFvUVMSktPCitIQUxBVkFOSkEgTEpVQkFOCitIQUxBVkFOSkEgTUlMQU4KK0hBTEFWQU5KQSBSQURFCitIQUxBVkFOSkEgU1RFVkEKK0hBTEVSIFNURVZBTgorSEFMSUxPVknEhiBNVUhBUkVNCitIQUxJTSBTRUZFUgorSEFMVVBLQSBKT8W9RUYgRFIKK0hBTSBBTEVLU0FOREFSCitIQU1VIE1JSEFMSgorSEFNWknEhiBNSUxFTkEKK0hBTiBTT0ZJSkEKK0hBTkNLTyBKT8W9RUYgRFIKK0hBTkNLTyBKT8W9RUYgRFIKK0hBTkRBIEtBVElDQQorSEFORyBNQVRFSgorSEFORyBWTEFUS08KK0hBTkdBIEFOVFVOCitIQU5HQSBBTlRVTgorSEFOR0EgTUFSSUpBCitIQU5HT1ZTS0kgQU5EUklKQQorSEFOU0tPIEpPU0lQCitIQU5TS08gU1RFVkFOCitIQU5VxaBJxIYgU0VBRAorSEFSQcSMScSGIETFvUVNQUwKK0hBUkHEjEnEhiBMSlVCSUNBCitIQVJBSyBQQVZMRQorSEFSQU1CQcWgScSGIEJPxb1BTkEKK0hBUkFNSUpBIE1BUklKQQorSEFSQU5HT1pPIMWgQU5ET1IKK0hBUkFOR09aTyDFoEFORE9SCitIQVJBTkdPWk8gxaBBUklLQQorSEFSQU5HT1pPIEJBTElOVAorSEFSQU5HT1pPIEJPxaBLTworSEFSQU5HT1pPIEVSxb1FQkVUCitIQVJBTkdPWk8gRVLFvUVCRVQKK0hBUkFOR09aTyBJxaBUVkFOCitIQVJBTkdPWk8gSU1SRQorSEFSQU5HT1pPLUpFR1JJxaBLSSBNQVJJSkEKK0hBUkFOR09aTyBLQVJPTEoKK0hBUkFOR09aTy1UT1JJIMW9VcW9QU5BCitIQVJBTkdPWk8tVE9SSSDEkFVSQQorSEFSQU5HT1pPLVRPUkkgQk/FvUlEQVIKK0hBUkFOR09aTy1UT1JJIElSSU5BCitIQVJBTkdPWk8tVE9SSSBJVkFOCitIQVJBTkdPWk8tVE9SSSBKT0FLSU0KK0hBUkFOR09aTy1UT1JJIEpPVkFOCitIQVJBTkdPWk8tVE9SSSBKT1ZBTgorSEFSQU5HT1pPLVRPUkkgTEpVQklDQQorSEFSQU5HT1pPLVRPUkkgTkVTVE9SCitIQVJBTkdPWk8tVE9SSSBOSUtPTEEKK0hBUkFOR09aTy1UT1JJIFNJTFZFU1RFUgorSEFSQU5HT1pPLVRPUkkgU1RPSkFOS0EKK0hBUkFOR09aTy1UT1JJIFZFU05BCitIQVJBTkdPWk8tVE9SSSBWTEFESU1JUgorSEFSQU5HT1pPLVRPUkkgVkxBRElNSVIKK0hBUkZNQU4gTUFSQQorSEFSSEFJIMW9RUxKS08KK0hBUkhBSSBCT8W9QU5BCitIQVJIQUkgSkFOS08KK0hBUkhBSkkgSEVMRU5BCitIQVJIQUpJIEpBTktPCitIQVJIQUpJIEpPQUtJTQorSEFSSEFKSSBKT0FLSU0KK0hBUkhBSkkgTEpVQk9NSVIKK0hBUkhBSkkgTEpVQk9NSVIKK0hBUkhBSkkgTUlST04KK0hBUkhBSkkgTklLT0xBCitIQVJIQUpJIFZMQURJTUlSCitIQVJIQUpJIFZMQURJTUlSCitIQVJJxaAgSkVMSVNBVkVUQQorSEFSScWgIEpFTElTQVZFVEEKK0hBUknFoCBMSlVCSVZPSkUKK0hBUknFoCBQSVJPxaBLQQorSEFSSUpBTiDFoFRFRklDQQorSEFSS0FJIFNURVZBTgorSEFSTUFUIEtPTlJBRAorSEFSUEFOSiBNSUhBTAorSEFSVCBNQVJHSVRBCitIQVJUSUcgSVJFTkEKK0hBUlRJRyBUSUJPUgorSEFSVE1BTiBLQVRBUklOQQorSEFSVE1BTiBWRVNOQQorSEFTIEFMRUtTQU5EQVIKK0hBUyBLQVJMTworSEFTIE1BUlRBCitIQVMgTUlMSUNBCitIQVNBTkFHScSGIEVTTkFGCitIQVNBTkFHScSGIE1JTEFOCitIQVNFTkFVRVIgSk9TSVAKK0hBU0nEhiBExb1FTUFMCitIQVRBTEEgTUFURQorSEFUQUxBIFpPTFRBTgorSEFVRyBBTklDQQorSEFVSyBST0JFUlQKK0hBVVBUTUFOIFNMQVZLTworSEFVUkRJxIYgUkFCSUpBCitIQVVTRVIgSElMREEKK0hBVVpFUiBPU0tBUgorSEFVWkxPSE5FUiBJUkVOQQorSEFWSkFSIFZFTElaQVIKK0hBVkxFSyBGUkFOSkEKK0hBVkxFSyBKT1NJUAorSEFWUkFOIFpMQVRLTworSEFWWkkgxaBFUklGCitIQVZaSSBMSU1BTgorSEXEkEXFoCBKQU5PxaAKK0hFxJBFTEFJIFNURVZBTgorSEXEkEkgQUxFS1NBTkRBUgorSEXEkEkgTUlMSUNBCitIRURFxaAgSkFOT8WgCitIRUdFREnFoCDEkEVSxJAKK0hFR0VEScWgIEJFTEEKK0hFR0VEScWgIEJFUlRBCitIRUdFREnFoCBHRVpBCitIRUdFREnFoCBJxaBUVkFOCitIRUdFREnFoCBKT8W9RUYKK0hFR0VEScWgIEpPSEFOQQorSEVHRURJxaAgSk9aRUZJTkEKK0hFR0VEScWgIFRFUkVaSUpBCitIRUdFREnFoCBaT0xUQU4KK0hFR0VEVcWgIEtBUk9MSU5BCitIRUlNIE1BR0RBCitIRUtJxIYgU0xBVklDQQorSEVMRVIgR0FCUklKRUwKK0hFTEVSIElOR1JJRAorSEVNIEpBTk/FoAorSEVNSSBBTklDQQorSEVNSSBWTEFESVNMQVYKK0hFTU9OIEJPUklTCitIRU1PTiBNQVJJSkEKK0hFTU9OIFNMQVZJQ0EKK0hFTU9OIFRFUkVaSUpBCitIRU1PTiBWTEFESU1JUgorSEVNT04gVkxBRElNSVIKK0hFTVJJSCBLTEFSQQorSEVNVU4gTUlIQUpMTworSEVOIMW9RUxKS08KK0hFTiBJVklDQQorSEVOIE1BUklKQQorSEVOR0wgREFNSkFOCitIRU5HTCBKT1ZBTgorSEVOR0wgUklIQVJECitIRU5JxaAgVklMTUEKK0hFTktFTCBGSUxJUAorSEVQIE1BS1NJTQorSEVSxIxJSyBST0JFUlQKK0hFUkFLIElWQU4KK0hFUkFLIFNUQU5JU0xBVgorSEVSQUtPVknEhiBBTEVLU0FOREFSCitIRVJBS09WScSGIEJSQU5JU0xBVgorSEVSQUtPVknEhiBTTE9CT0RBTgorSEVSQkVaIE1JTEVOS08KK0hFUkJTVCBBTlRVTgorSEVSQlVUIMSQT1LEkEUKK0hFUkJVVCBHQUJPUgorSEVSQlVUIEpPxb1FRgorSEVSQlVUIEtBUk9MSgorSEVSQlVUIEtJUklMCitIRVJCVVQgTUlIQUpMTworSEVSQlVUIFNJTFZFU1RFUgorSEVSQ0VHIMSQT1LEkEUKK0hFUkNFRyBEUkFHT1NMQVYKK0hFUkNFRyBLQVJMTworSEVSQ0VOQkVSR0VSIMSQVUxBCitIRVJDRU5CRVJHRVIgQUxFS1NBTkRBUgorSEVSQ0VOQkVSR0VSIEFMRUtTQU5EQVIKK0hFUkNFTkJFUkdFUiBHSVpFTEEKK0hFUkNFTkJFUkdFUiBJUkVOCitIRVJDT0cgxJBPUsSQRQorSEVSREkgSk9TSVAKK0hFUkRJIExKSUxKQU5BCitIRVJESS1TVE9KQU5PVknEhiBBTkdFTElOQQorSEVSRU7EjEnEhiBMRU9QT0xECitIRVJFTkRJSkEgxJBPUsSQRQorSEVSRU5ESUpBIE1BUktPCitIRVJFVEEgU0xPQk9EQU4KK0hFUkdFVCBLQVRJQ0EKK0hFUknEhiBNSUhPVklMCitIRVJJTkcgQU1BTElKQQorSEVSSU5HIElWQU4KK0hFUk1BTiDEjElMQQorSEVSTUFOIEFOxJBBCitIRVJNQU4gSVZBTgorSEVSTUFOIEtBUkxPCitIRVJNQU4gVklMSU0KK0hFUk9SIExBWkFSCitIRVJQS0EgRFVCUkFWS0EKK0hFUlBLQSBJVkFOIERSIElORworSEVSVEwgSk/FvUVGCitIRVJUTCBOQURBCitIRVMgxaBBTkRPUgorSEVTIExBU0xPCitIRVNLTyBWSUtUT1JJSkEKK0hFVkVSIE1BUkdJVEEKK0hFVkVSIFBBVkxFCitIRVZFUkEgTUlIQUpMTworSEVWRVJBIFpVWkFOQQorSEVWSVpJIElMT05BCitIRVZJWkkgUEVUQVIKK0hJxIZJTCBBTEVLU0FOREFSCitIScSGSUwgSk9TSVAKK0hJxIZJTCBLQVRBUklOQQorSEnFvUEgSk9WQU4KK0hJxb1BIE1JxaBBCitISULFoCBNQVJJSkEKK0hJQsWgIFJJSEFSRCBTVURJSkEKK0hJQsWgIFRBTktSRUQKK0hJRUwgS1NFTklKQQorSElMIEpPU0lQCitISUwgVkVSQQorSElMSUVSLUtPTEFST1YgVkFMRVJJSkEgRFIKK0hJTElFUiBMQUpPxaAgRElQTCBJTkcKK0hJTknEhiDEkE9SxJBFCitISU5JxIYgQlJBTktPCitISU5JxIYgTUFORQorSElOScSGIE1JTElDQQorSElOScSGIFBSRURSQUcKK0hJUElLIMWgVEVGQU5BCitISVBJSyBKT1ZBTgorSElQSUsgS0FSTE8KK0hJUsWgIFNUSkVQQU4KK0hJUsWgRU5CRVJHRVIgTUFSVEEKK0hJUsWgRU5CRVJHRVIgU1RFVkFOIERJUEwgSU5HCitISVLFoE1BTiBBTlRVTgorSElSSk9WQVRJIExKVUJJQ0EKK0hJUkpPVkFUSUogTUlST04KK0hJUk1BTiBGUkFOSkEKK0hJUk1BTiBaT0xUQU4KK0hJVEVOQkVSR0VSIMSQT1LEkEUKK0hJVEkgRlJBTkMKK0hJVEwgRUxJWkFCRVRBCitISVRMIFNURVZBTgorSExBxJBJSyBaVk9OS08KK0hMQUROSSBJVkFOCitITEFETkkgU0xBVktPCitITEFQRUMgU1RKRVBBTgorSExBVlNBIFNMQVZJQ0EKK0hMRUJFQyBOT1JCRVJUCitITE/FvUFOIEpPVkFOCitITUlMSiBJTElKQQorSE5BVEtPIE1JxaBLTworSE/EjEtPIEFKRVQKK0hPxaBFSyDEjEFCQQorSE/FoEVLIEZSQU5KQQorSE9CUkFUIE1BUlRBCitIT0TFvUEgUkFNQURBTgorSE9Exb1JxIYgSEFMSUQKK0hPRMW9ScSGIE9NRVIKK0hPRMW9ScSGIFNUQVpBCitIT0RBIE1FSlJFTQorSE9EQUsgTUlMRQorSE9EQUsgU0lMVkVTVEFSCitIT0RBSyBTT0ZJSkEKK0hPREFLIFZFUkEKK0hPREFLIFZMQURJU0xBVgorSE9EQVIgSk9TSVAKK0hPREkgRVJORQorSE9ESSBFUk5FCitIT0RJIEZFUkVOQworSE9ESSBWSUxNQQorSE9ESUsgQkFSQkFSQQorSE9ESU5LQSBNSUhBSUxPCitIT0ROSUsgQUxPSloKK0hPRE9CQSBEQU5JSkVMQQorSE9ET0xJxIwgSkFOS08KK0hPRE9MScSGIEpBUk9TTEFWCitIT0ZNQU4gQUxFS1NBTkRBUgorSE9GTUFOIEFSVFVSCitIT0ZNQU4gQlJVTk8KK0hPRk1BTiBGUkFOSkEKK0hPRk1BTiBMQURJU0xBVgorSE9GTUFOIE1BUklKQQorSE9GTUFOIFZFU05BCitIT0hOSkVDIERBUktPCitIT0hOSkVDIFBFVEFSCitIT0hOSkVDIFZMQURJTUlSCitIT0xDRVIgTEFESVNMQVYKK0hPTEVSQkFIIEtBVElDQQorSE9MSSBBTkRSSUpBIE1SIFBICitIT0xJIEtBVEFSSU5BCitIT0xJxIxFSyBMQVNMTworSE9MScSMRUsgTUFSR0lUCitIT0xJxIxFSyBTVEVWQU4KK0hPTElHQSBLQVJMTworSE9MSUdBIFNORcW9QU5BCitIT0xJR0EgU1RFVkFOCitIT0xJSyBKQU5LTworSE9MSUsgSk9BS0lNCitIT0xPIExFT05USU5BCitIT0xPIFZJTE1PxaAgRElQTCBJTkcKK0hPTE9EIFNURVZBTgorSE9MT0RLT1YgVkxBRElNSVIKK0hPTE9UIFJVxb1BCitIT0xPVktBIEFOS0EKK0hPTE9WS0EgQlJBTktBCitIT0xPVktBIE5BVEFMSUpBCitIT0xQRVJUIEVSTkVTVAorSE9MUEVSVCBMVUpPCitIT01BIEFOQQorSE9NQSBCT1NJTEpLQQorSE9NQSBFVUdFTgorSE9NQSBKQU5LTworSE9NQSBKT1ZHRU4KK0hPTUEgTUlST1NMQVYKK0hPTUEgTklLT0xBCitIT01BIFBFVEFSIERJUEwgSU5HCitIT01BIFZMQURJTUlSCitIT01BIFZMQURJTUlSCitIT01BIFZVS0lDQQorSE9NT0xKQSBKT8W9RUYKK0hPUiBCT8W9SUNBCitIT1IgSUxJSkEKK0hPUiBQQVZMRQorSE9SQUsgTUlIQUpMTworSE9SQUsgTkFORE9SCitIT1JHQVMgScWgVFZBTgorSE9SR0FTIE1BVElMREEKK0hPUkdPxaBJIMSQVUxBCitIT1JHT8WgSSBLQVRBUklOQQorSE9SScSGIEpFTElTQVZFVEEKK0hPUknEhiBLT1NJTQorSE9STiBWQUxFTlRJTgorSE9STkpBSyDFvUlWQQorSE9STkpBSyDEkFVSTworSE9STkpBSyBESU1JVFJJSkUKK0hPUk5KQUsgRElNSVRSSUpFCitIT1JOSkFLIElWQU4KK0hPUk5KQUsgSkFOT8WgCitIT1JOSkFLIEpBTgorSE9STkpBSyBNQUdEQUxFTkEKK0hPUk5KQUsgTUnFoEEKK0hPUk5KQUsgTUlSS08KK0hPUk5KQUsgT0xHQQorSE9STkpBSyBQRVRBUgorSE9STkpBSy1QVcWgS0HFoE9WQSBNQVJJSkEKK0hPUk5KQUsgU09GUk9OQQorSE9STkpBSyBTVEVWQU4KK0hPUk5KQUsgVkxBREEKK0hPUk5KQUsgVkxBREEKK0hPUk5KQUsgVkxBRElNSVIKK0hPUk5KSUsgxaBBTkRPUgorSE9STkpJSyDEkEVSxJAKK0hPUk5KSUsgxJBFUsSQCitIT1JOSklLIFpPTFRBTgorSE9STk9LIFpPTFRBTgorSE9STlVORy3FoE9NQU4gxaBURUZBTklKQQorSE9ST8WgSUxPViBTT0ZJSkEKK0hPUk/FoEtPIEFMRUtTQU5EQVIKK0hPUk/FoEtPIFNURUZBTiBEUgorSE9ST1ZJQyBEUkFHSU5KQQorSE9ST1ZJQyBWTEFESU1JUgorSE9SVEkgRFJBR0FOQQorSE9SVEkgR0VaQQorSE9SVEkgSk9TSVAKK0hPUlRJIFZMQURJU0xBVgorSE9SVkFDS0kgTUFSS08KK0hPUlZBQ0tJIFNORcW9QU5BCitIT1JWQVQgxaBBTkRPUgorSE9SVkFUIMWgQU5ET1IKK0hPUlZBVCDFvU9MVAorSE9SVkFUIMSQVUxBCitIT1JWQVQgxJBVUkEKK0hPUlZBVCBBR0kKK0hPUlZBVCBBTEVLU0FOREFSCitIT1JWQVQgQUxFS1NBTkRBUgorSE9SVkFUIEFORFJBxaAKK0hPUlZBVCBBTkRSSUpBCitIT1JWQVQgQU5LQQorSE9SVkFUIEFOVEFMCitIT1JWQVQgQVJQQUQKK0hPUlZBVCBCRUxBCitIT1JWQVQgQklTRVJLQQorSE9SVkFUIERFxb1FCitIT1JWQVQgRElNSVRSSUpFCitIT1JWQVQgRURJVAorSE9SVkFUIEVMSVpBQkVUQQorSE9SVkFUIEVSxb1FQkVUCitIT1JWQVQgRVJJS0EKK0hPUlZBVCBFU1RFUgorSE9SVkFUIEZFUkVOQworSE9SVkFUIEZFUkVOQworSE9SVkFUIEZFUkVOQworSE9SVkFUIEZFUkVOQworSE9SVkFUIEZSQU5KQQorSE9SVkFUIEZSQU5KQQorSE9SVkFUIEZSQU5KTworSE9SVkFUIEdBQk9SCitIT1JWQVQgR0laRUxBCitIT1JWQVQgR1JPWkRBTkEKK0hPUlZBVCBJxaBUVkFOCitIT1JWQVQgSUdPUgorSE9SVkFUIElHT1IKK0hPUlZBVCBJTE9OS0EKK0hPUlZBVCBJTVJFCitIT1JWQVQgSU1SRQorSE9SVkFUIElNUkUKK0hPUlZBVCBJUkVOQQorSE9SVkFUIElSRU5LQQorSE9SVkFUIElWQU5LQQorSE9SVkFUIElWQU4KK0hPUlZBVCBKQU5PxaAgRElQTCBJTkcKK0hPUlZBVCBKQU5PxaAKK0hPUlZBVCBKRUxFTkEKK0hPUlZBVCBKT8W9RUYKK0hPUlZBVCBKT8W9RUYKK0hPUlZBVCBKT8W9RUYKK0hPUlZBVCBKT1NJUAorSE9SVkFUIEpPU0lQCitIT1JWQVQgSk9TSVAKK0hPUlZBVCBKT1NJUAorSE9SVkFUIEpPU0lQCitIT1JWQVQgSk9WQU4KK0hPUlZBVCBLQUxNQU4KK0hPUlZBVCBLQVJMTworSE9SVkFUIEtBUkxPCitIT1JWQVQgS0FSTE8KK0hPUlZBVCBLQVJPTEoKK0hPUlZBVCBLQVRBTElOCitIT1JWQVQgS0FUQVJJTkEKK0hPUlZBVCBLQVRJQ0EKK0hPUlZBVCBLQVRJQ0EKK0hPUlZBVCBMQUpPxaAKK0hPUlZBVCBMQVNMTworSE9SVkFUIExBU0xPCitIT1JWQVQgTEFTTE8KK0hPUlZBVCBMQVNMTworSE9SVkFUIExBU0xPCitIT1JWQVQgTEFTTE8KK0hPUlZBVCBMVURWSUcKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVJJSkEKK0hPUlZBVCBNQVRPCitIT1JWQVQgTUlIQUxKCitIT1JWQVQtTUlMSVRJxIxJIEtBUk9MSiBEUgorSE9SVkFUIE1JTEtBCitIT1JWQVQgTUlMS0EKK0hPUlZBVCBNSUxPU0xBVgorSE9SVkFUIE1JUktPCitIT1JWQVQgUEFKQQorSE9SVkFUIFBBVkxFCitIT1JWQVQgUEVUQVIKK0hPUlZBVCBSQURNSUxBCitIT1JWQVQgUk/FvUEKK0hPUlZBVCBST1pBTElKQQorSE9SVkFUIFJVxb1BCitIT1JWQVQgUlVET0xGCitIT1JWQVQgU0FNVUVMCitIT1JWQVQgU0lMVkVTVEVSCitIT1JWQVQgU0xBVktPCitIT1JWQVQgU01JTEpBCitIT1JWQVQgU1RFVkFOCitIT1JWQVQgVEFNQcWgCitIT1JWQVQgVEVSRVpBCitIT1JWQVQgVEVSRVpBCitIT1JWQVQgVElCT1IKK0hPUlZBVCBUSUJPUgorSE9SVkFUIFRJQk9SCitIT1JWQVQgVElCT1IKK0hPUlZBVCBWQUxFUklKQQorSE9SVkFUIFZFUklDQQorSE9SVkFUIFZFUk9OSUtBCitIT1JWQVQgVkVST05JS0EKK0hPUlZBVCBWTEFESU1JUgorSE9SVkFUIFpPTFRBTgorSE9SVkFUIFpPTFRBTgorSE9SVkFUScSGIE1BUklKQU4KK0hPUlZBVEnEhiBPTEdBCitIT1JWQVRJxIYgU0xBVktPCitIT1JWQVRJxIYgWlZPTklNSVIKK0hPUlZBVE9WIFJBU1RLTworSE9SVkFUT1ZJxIYgxJBPUsSQRQorSE9SVkFUT1ZJxIYgS0FUSUNBCitIT1JWQVRPVknEhiBNSVJKQU5BCitIT1JWQVRPVknEhiBQQVZMRSBEUgorSE9SVkFUU0tJIERVxaBBTgorSE9SVkFUU0tJIExKVUJJQ0EKK0hPUlZBVFNLSSBMSlVCSUNBCitIT1JWQVRTS0kgTUlMRU5LTworSE9SVkFUU0tJIE1JUk9TTEFWCitIT1JWQVRTS0kgUkFESVZPSgorSE9SVkFUU0tJIFJVxb1JQ0EKK0hPU1RJxIYgQklTRVJLQQorSE9TVE5JSyBLQVRJQ0EKK0hPU1RPTlNLSSBTVEFOQQorSE9UIEFERU0KK0hPVUYgRUxWSVJBCitIT1ZBTiBNQVJUSU4KK0hPVkFOIE1JUk9TTEFWCitIT1ZBTkVDIFZJS1RPUklKQQorSFLEhkFOIEpPVkFOCitIUsSGQU4gSk9WQU4KK0hSQUJBUiBJVk8KK0hSQUJPVlNLSSBBTlRPTgorSFJBQk9WU0tJIEFOVE9OCitIUkFCT1ZTS0kgQk9KQU5BIERSCitIUkFCT1ZTS0kgRURHQVIgRElQTCBPRUMKK0hSQUJPVlNLSSBJTVJFCitIUkFCT1ZTS0kgTEFESVNMQVYKK0hSQUJSScSGIEVVR0VOCitIUkFERcSMTkkgQkVMQQorSFJBREXEjE5JIEZSQU5KQQorSFJBREXEjE5JIEpPU0lQCitIUkFOScSMQUsgTUlSS08KK0hSQU5JU0FWTEpFVknEhiBQQVZMRQorSFJBUE9WScSGIE9TTUFOCitIUkRMScSMS0EgREVTQU5LQQorSFJFxaDEjEFLIFZMQURJTUlSCitIUkVOQVIgTEFVUkEKK0hSR0nEhiBMSlVCT01JUgorSFJHScSGIE1JTEFOCitIUkdJxIYgVkxBU1RJTUlSCitIUknEjEFORUsgTUlST1NMQVYKK0hSScSMQU5FSyBORURFTEpLQQorSFJJQkxKQU4gQU5UT04KK0hSSUJPVsWgRUsgRlJBTkMKK0hSSUNLQU5JxIYgTFVLQQorSFJJRcWgSUsgTUFSSUpBCitIUklKRcWgSUsgSkFOCitIUklKRcWgSUsgSlVSQUoKK0hSSVNUScSGIEJMQUdPSkUKK0hSSVNUScSGIERJTUlUUklKRQorSFJJU1RJxIYgTEVQT1NBVkEKK0hSSVNUScSGIExKVUJJQ0EKK0hSSVNUSURJUyBBUE9TVE9MCitIUklTVElESVMgTklLT0xBCitIUklTVElESVMgTklLT0xBCitIUklTVE9WIEJSQU5LTworSFJJU1RPViBNSUxPU0lKQQorSFJJU1RPViBWRVNOQQorSFJJU1RPViBaQUdPUktBCitIUklTVE9WQSBFTUlMSUpBCitIUklTVE9WU0tJIFRPTUEKK0hSSVNUVSBUSUhPTUlSCitIUktBTE9WScSGIEJPxaBLTworSFJOxIxBUiBTQU1VRUwKK0hSTsSMScSGIE1BUkdJVEEKK0hSTsSMScSGIE1JSEFECitIUk7EjEnEhiBWQUhJRAorSFJOxIxJQVIgQU5BCitIUk7EjElBUiBKQU5LTworSFJOxIxJQVJPVkEgVEVSRVpJQQorSFJOxIxKQVIgQU5EUkVKCitIUk7EjEpBUiBWTEFESU1JUgorSFJOSkHEjEtJIMW9QVJLTworSFJOSkHEjEtJIMSQT1LEkEUKK0hSTkpBxIxLSSBKRUxJQ0EKK0hSTkpBxIxLSSBKT1ZBTgorSFJOSkHEjEtJIExBWklDQQorSFJOSkHEjEtJIE1JTEtBCitIUk5KQcSMS0kgTUxBREVOCitIUk5KQUsgREFORQorSFJOSkFLIERSQUdBTgorSFJOSkFLIERVxaBBTgorSFJOSkFLIExKSUxKQU5BCitIUk5KQUsgTUFSSUpBCitIUk5KQUsgUkFKS08KK0hSTkpBSyBWRUxKS08KK0hSTkpBS09WScSGIEJSQU5JU0xBVgorSFJOSkFLT1ZJxIYgSVZBTkEKK0hSTkpBS09WScSGIEpPVkFOCitIUk5KQUtPVknEhiBNSVJLTworSFJOSkVaIE9CUkFECitIUk9NScWgIEFNQUxJSkEKK0hST01JxaAgQU5BCitIUk9NScWgIEJBUkJBUkEKK0hST01JxaAgQk9SSVNMQVYKK0hST01JxaAgSk9BS0lNCitIUk9NScWgIEpPQUtJTQorSFJPTUnFoCBLQVRJQ0EKK0hST01JxaAgTUFSSUpBCitIUk9NScWgIE1FTEFOSUpBCitIUk9NScWgIE1JSEFKTE8gRElQTCBJTkcKK0hST01JxaAgTUlST1NMQVYKK0hST01JxaAgTUlST1NMQVYKK0hST01JxaAgTkFEQQorSFJPTUnFoCBOSUtPTEEKK0hST01JxaAgUEVUQVIKK0hST01JxaAgU0lNQQorSFJPTUnFoCBWTEFESU1JUgorSFJPTUnFoCBaREVOS0EKK0hST05KRUMgVknEhkFaT1NMQVYKK0hSU1RPIFNMQVZLTworSFJVQkVOSkEgxJBVUkEKK0hSVUJFTkpBIEZFQlJPTkEKK0hSVUJFTkpBIEpBTktPCitIUlVCRU5KQSBKT0FLSU0KK0hSVUJFTkpBIEpPQUtJTQorSFJVQkVOSkEgSk9BS0lNCitIUlVCRU5KQSBLQVJMTworSFJVQkVOSkEgTUlIQUpMTworSFJVQkVOSkEgTUlST1NMQVYKK0hSVUJFTkpBIFBFVEFSCitIUlVCRU5KQSBaVk9OSU1JUgorSFJVQklLIEFORFJFSgorSFJVQklLIEpPVkFOCitIUlVCSUsgS0FSTE8KK0hSVUJJSyBNSVJLTworSFJVQklLIE9TS0FSIERSIExFS0FSCitIUlVCSUsgUk9aQUxJSkEKK0hSVVNUQU5PVknEhiBUVVJTVU4KK0hSVVNUScSGIEVNSU4KK0hSVVNUScSGIEVOVkVSCitIUlVTVEnEhiBaSUpBSAorSFJVU1RJxIYgWklMSEEKK0hVxIxJxIYgU1RKRVBBTgorSFXEjEtBIEpPVkFOCitIVcW9VkFSIMWgQU5ET1IKK0hVxJBFQyBKT1ZBTktBCitIVcSQRUMgS0FSTE8KK0hVQkFJIEdBQk9SCitIVUJBTknEhiBNSUxFTkEKK0hVQkVSIEJPSkFOQQorSFVCRVIgRFJBR0FOCitIVUJFUiBFTFpBCitIVUJFUiBKT1ZBTiBESVBMIElORworSFVCRVIgTUFHREFMRU5BCitIVUJFUiBNQVJJSkEKK0hVQkVSIE1BVElMREEKK0hVQkVSIFBFVEFSCitIVUJFUiBUSUJPUgorSFVCRVJUIEVWQQorSFVCRVJUIFJBRE1JTEEKK0hVQkVSVCBWRVJBCitIVUJJSkFSIEVORVMKK0hVQklKQVIgTkFEQQorSFVEQUsgSVJJTkVKCitIVURBSyBOQVRBTElKQQorSFVET01FTCBJVkFOCitIVUpEVVIgQlJBTktBCitIVU1TS0kgUk9TQQorSFVOSkFESSBBTEVLU0FOREFSCitIVU5KQURJIElMT05LQQorSFVOSkFESSBPTEdBCitIVVBFUlQgTEFKT8WgCitIVVBJSyBNSVJKQU5BCitIVVMgSU1SRQorSFVTQUcgQVJQQUQKK0hVU0FHScSGIEVTQUQKK0hVU0FHScSGIFNVTEVKTUFOCitIVVNBR0nEhiBaSU5FVEEKK0hVU0FLIFJBRE9WQU4KK0hVU0FSIEVWQQorSFVTQVIgScWgVFZBTgorSFVTQVIgSkFOS08KK0hVU0FSIExBU0xPCitIVVNBUiBUT0RPUgorSFVTRUlOIE1FSE1FRAorSFVTRUlOQkVHT1ZJxIYgTkFNSUsKK0hVU0VJTk9WScSGIEFOSUNBCitIVVNFSU5PVknEhiBBVElMQQorSFVTRUlOT1ZJxIYgQVRJTEEKK0hVU0VJTk9WScSGIEVTTUVSQUxEQQorSFVTRUlOT1ZJxIYgSVNNRVQKK0hVU0VOQkVHT1ZJxIYgUk9aQUxJSkEKK0hVU0nEhiDEkFVSxJBJTktBCitIVVNJxIYgTEFESVNMQVYKK0hVU0tBIElMT05BCitIVVNLQS1ST0tBIE1BR0RBIERSCitIVVNLTyBNSUpPCitIVVNPVknEhiBIVVNPCitIVVRBTEFST1ZJxIYgSkVMRU5BCitIVVRBTEFST1ZJxIYgS09TVEEKK0hVWkpBTiBUSUhPTUlSCitIVkFMQSBNSVJBCitIVkVUS09WScSGIEpFTElTQVZFVEEKK0nEjEFHScSGIE5JS09MQQorScSMRVZJxIYgTU9NxIxJTE8KK0nEjElOIMW9SVZLTworScSMSU4gTUlMRU5LTworScSMSU4gUkFESVNMQVYKK0nEjElOIFNSRVRFTgorScWgScSGIEVMSVpBQkVUQQorScWgUEFOIMWgQU5ET1IKK0nFoFBBTiBNQVJHSVRBCitJxaBQQU5PVknEhiBKT8W9RUYKK0nFoFRPSyBKT1NJUAorScWgVE9LIEpPU0lQCitJxaBUT0sgTUlSSkFOQQorScWgVE9LIFNURVZBTgorScWgVE9LT1ZJxIYgU1RFVk8KK0nFoFRWQU5PViBTVEFOSVNMQVZBCitJxIZJVE9WScSGIE1JTEFOCitJxIZVUlVQIMW9SVZPSklOCitJxIZVUlVQIE1JTE9SQUQKK0nEhlVSVVAgUkFET1NMQVYgRElQTCBJTkcKK0nFvUFLIEZFUkVOQworScW9QUsgS0FSTE8KK0nFvUFLIFJPWkFMSUpBCitJxJBJRE9WIE9MR0EKK0nEkElET1YgVkVMSU5LQQorScSQT8WgS0kgSE9SU1QKK0nEkE/FoEtJIE5JS09MQQorScSQVcWgS0kgU1RFVkFOCitJQlJBSElNIERFTUlSCitJQlJBSElNQUdJxIYgTkFEQQorSUJSQUhJTUkgSUJSQUhJTQorSUJSQUhJTU9WScSGIERFUlZJxaBBCitJQlJBSElNT1ZJxIYgRU1JTAorSUJSQUhJTU9WScSGIEhBTURJSkEKK0lCUkFISU1PVknEhiBNSUxBTgorSUJSQUhJTU9WScSGIFNMQVZLTworSUJSQUhJTU9WScSGIFZFUkEKK0lCUkFISU1QQcWgScSGIEFOQQorSUJSQUpURVIgSVZBTgorSUJSQUpURVIgTEpVQk9NSVIKK0lCUkFKVEVSIE1MQURFTgorSUJSScWgRVZJxIYgxJBVTEFHQQorSUJSScWgRVZJxIYgTUlSU0FECitJQlJJxaBFVknEhiBTVUFECitJQlJPxIxJxIYgRElNSVRSSUpFIERJUEwgSU5HCitJQlJPxIxJxIYgTUFSSUpBCitJQlJPxIxJxIYgUkFUT01JUgorSUJST8SMScSGIFNMT0JPREFOCitJQlJPxIxJxIYgVkVSQQorSUJST0xJIEJBTgorSUNPU0tJIExBWkFSCitJREVJIE5BTkRPUgorSURFSkkgSk9WQU4KK0lERUpJIFZBTEVSSUpBCitJRFJJWk9WScSGIEFITUVUIERSCitJRFZPUkVBTiBUT0RPUgorSURWT1JFQU4gVklLRU5USUpFCitJRkpVIEFOR0VMSUtBCitJRkpVIEdBQk9SCitJRktPIElMRElLTyBESVBMIElORworSUdJxIYgxb1JVkFESU4KK0lHScSGIMSQVUxWQVNJSkEKK0lHScSGIEFOS0EKK0lHScSGIERSQUdBTgorSUdJxIYgSk9WQU5LQQorSUdJxIYgTUlMS0EKK0lHScSGIE1JTE9SQUQKK0lHScSGIE1JUk9TTEFWQQorSUdJxIYgTUlST1NMQVYKK0lHScSGIE5JS09MQQorSUdJxIYgUEFWTEUKK0lHScSGIFJBSktPCitJR0nEhiBTQcWgQQorSUdJxIYgU1RFVkFOCitJR0nEhiBTVEVWQU4KK0lHScSGIFNWRVRPWkFSCitJR0nEhiBUT01JU0xBVgorSUdJxIYgVlVLQQorSUdOQUMgUEVSQQorSUdOSkFDIFZJREEKK0lHTkpBVEnEhiBBTktBCitJR05KQVRJxIYgQk9SSVZPSgorSUdOSkFUScSGIERVxaBBTktBCitJR05KQVRJxIYgR09KS08KK0lHTkpBVEnEhiBORVZFTktBCitJR05KQVRJxIYgUkFET1ZBTgorSUdOSkFUScSGIFZJRAorSUdOSkFUSUpFVknEhiBBTEVLU0FOREFSCitJR05KQVRJSkVWScSGIEJSQU5JU0xBVgorSUdOSkFUSUpFVknEhiBET0JSSUxBCitJR05KQVRJSkVWScSGIERSQUdPTUlSCitJR05KQVRJSkVWScSGIERVxaBBTgorSUdOSkFUSUpFVknEhiBEVcWgQU4KK0lHTkpBVElKRVZJxIYgSk9WQU4KK0lHTkpBVElKRVZJxIYgTEpJTEpBTkEKK0lHTkpBVElKRVZJxIYgTEpJTEpBTkEKK0lHTkpBVElKRVZJxIYgTEpVQk9NSVIKK0lHTkpBVElKRVZJxIYgTUFSQQorSUdOSkFUSUpFVknEhiBNSUxBTgorSUdOSkFUSUpFVknEhiBNSUxFTkEKK0lHTkpBVElKRVZJxIYgTUlST1NMQVYKK0lHTkpBVElKRVZJxIYgTUlUQQorSUdOSkFUSUpFVknEhiBOT1ZBSworSUdOSkFUSUpFVknEhiBSQURBxaBJTgorSUdOSkFUSUpFVknEhiBSQURPVkFOCitJR05KQVRJSkVWScSGIFNWRVRJU0xBVgorSUdOSkFUSUpFVknEhiBTVkVUT1pBUgorSUdOSkFUSUpFVknEhiBUT01JU0xBVgorSUdOSkFUSUpFVknEhiBUT01JU0xBVgorSUdOSkFUSUpFVknEhiBWT0pJU0xBVgorSUdOSkFUSUpFVknEhiBaT1JBTgorSUdOSkFUT1YtUkFET1ZBTk9WScSGIE1JTEVOQSBQUk9GCitJR05KQVRPVknEhiDFvUlWS08KK0lHTkpBVE9WScSGIMW9SVZPUkFECitJR05KQVRPVknEhiBBTkdFTEEKK0lHTkpBVE9WScSGIEFOS0EKK0lHTkpBVE9WScSGIERBTklMTworSUdOSkFUT1ZJxIYgR09SREFOQQorSUdOSkFUT1ZJxIYgS09TQVJBCitJR05KQVRPVknEhiBMSlVCScWgQQorSUdOSkFUT1ZJxIYgTUFSSUNBCitJR05KQVRPVknEhiBNSUxBTgorSUdOSkFUT1ZJxIYgTUlMRQorSUdOSkFUT1ZJxIYgTUlMS0EKK0lHTkpBVE9WScSGIE1JTE/FoCBEUiBQUkFWTklLCitJR05KQVRPVknEhiBNSUxPxaAKK0lHTkpBVE9WScSGIE1JTE9SQUQKK0lHTkpBVE9WScSGIE1JTFVUSU4KK0lHTkpBVE9WScSGIE1JUkpBTkEKK0lHTkpBVE9WScSGIFNBVkEKK0lHTkpBVE9WScSGIFNMT0JPREFOCitJR05KQVRPVknEhiBWRVJBCitJR05KQVRPVknEhiBWRVJBCitJR05KQVRPVknEhiBWSURBSworSUdOSkFUT1ZJxIYgVkxBRElNSVIKK0lHTkpBVE9WScSGIFZPSklTTEFWCitJR05KQVRPVknEhiBWVcSMS08KK0lHTkpBVE9WU0tJIEVGUkVNCitJR05KScSGIEJSQU5LTworSUdOSknEhiBKT1ZBTgorSUdOSknEhiBTVE9KQU4KK0lHTkpJxIYgWklaQQorSUdOSknEhiBaT1JBTgorSUdOSk9WScSGIE1BUklKQQorSUdSQcSMS0kgxJBPUsSQRQorSUdSQcSMS0kgRVRFTEEKK0lHUkHEjEtJIEpVTElOCitJR1JBxIxLSSBLQVJMTworSUdSQcSMS0kgTEFTTE8KK0lHUknEhiBOQURBCitJR1JJxIYgU1RPSkFOS0EKK0lHUlVUSU5PVknEhiBTTE9CT0RBTgorSUhBUyBJTE9OQQorSUpBxIxJxIYgQlJBTktPCitJSkHEjEnEhiBNQUtTSU0KK0lKRVZMSkVWIEZFT0RPUgorSUtBTk9WScSGIERVxaBBTgorSUtBTk9WScSGIElWQU4KK0lLQU5PVknEhiBKRUxFTkEKK0lLQU5PVknEhiBOSUtPTEEKK0lLRUxKScSGIElSRkFOCitJS0nEhiBERUpBTgorSUtJxIYgSk9WQU4KK0lLScSGIE1MQURFTgorSUtJxIYgTUxBREVOCitJS0nEhiBTTUlMSkFOQQorSUtPRElOT1ZJxIYgRFXFoEFOCitJS09OScSGIMSQVVJBCitJS09OT1YgREVKQU4KK0lLT1RJTiBKQU5PxaAKK0lLT1RJTiBKT1ZBTktBCitJS09USU4gTUFUSUpBCitJS09USU4gUEFMCitJS09USU4gUEVUQVIKK0lLT1ZBQyBCT8WgS08KK0lLT1ZBQyBTVEVWQU4KK0lLT1ZJxIYgRFJBR1VUSU4KK0lLT1ZJxIYgTUlMT8WgCitJS09WScSGIE1JTE9TQVYKK0lLT1ZJxIYgVkVMSU5LQQorSUtSQcWgRVYgSkVMSUNBCitJS1JBxaBFViBKT1ZBTgorSUwgQUxFS1NBTkRBUgorSUwgSkVMSUNBCitJTMSMSUsgTUFSSUpBCitJTEXFoCBGUkFOQ0nFoEtBCitJTEXFoCBJTVJFCitJTEXFoCBJUkVOQQorSUxFxaAgTUlIQUlMTworSUxFxaAgTUlMQU4KK0lMRcWgIE1JUk9TTEFWCitJTEnEjEnEhiBBTlRVTgorSUxJxIxJxIYgSVZBTgorSUxJxIxJxIYgTEpVQklDQQorSUxJxIxJxIYgTUlIQUpMTworSUxJxIxJxIYgUEVUQVIKK0lMScSMScSGLVBPUEnEhiBPTEpBCitJTEnEhiDEjEVET01JUgorSUxJxIYgxIxFRE8KK0lMScSGIMWgSU1VTgorSUxJxIYgxb1FTEpLTworSUxJxIYgxb1JVktPCitJTEnEhiDFvUlWS08KK0lMScSGIMW9SVZLTworSUxJxIYgxb1JVk9NSVIKK0lMScSGIMW9SVZPTUlSCitJTEnEhiDFvUlWT01JUgorSUxJxIYgxb1JVk9SQUQKK0lMScSGIMW9SVZPUkFECitJTEnEhiDEkE9SxJBFCitJTEnEhiDEkE9SxJBFCitJTEnEhiDEkE9SxJBFCitJTEnEhiBBTEVLU0EgRFIKK0lMScSGIEFMRUtTQU5EQVIKK0lMScSGIEFMRUtTQU5EQVIKK0lMScSGIEFMRUtTQU5EQVIKK0lMScSGIEFMRUtTQU5EQVIKK0lMScSGIEFOSUNBCitJTEnEhiBBTktJQ0EKK0lMScSGIEFSU0EKK0lMScSGIEFSU0EKK0lMScSGIEJJTEpBTkEKK0lMScSGIEJMQUdPSkUKK0lMScSGIEJPxaBLTworSUxJxIYgQk/FoEtPCitJTEnEhiBCT8W9SURBUgorSUxJxIYgQk9CQU4KK0lMScSGIEJPR0RBTgorSUxJxIYgQk9HT0xKVUIKK0lMScSGIEJPUklTTEFWS0EKK0lMScSGIEJPUklTTEFWCitJTEnEhiBCT1JJU0xBVgorSUxJxIYgQk9SSVZPSkUKK0lMScSGIEJPUktBCitJTEnEhiBCT1NJTEpLQQorSUxJxIYgQlJBTklTTEFWCitJTEnEhiBCUkFOSVNMQVYKK0lMScSGIEJSQU5JU0xBVgorSUxJxIYgQlJBTktPCitJTEnEhiBCUkFOS08KK0lMScSGIEJSQU5LTworSUxJxIYgQlJBVElTTEFWCitJTEnEhiBCUkFUSVNMQVYKK0lMScSGIENFQ0lMSUpBCitJTEnEhiBDVkVUQQorSUxJxIYgQ1ZJSkFOCitJTEnEhiBEQU5FCitJTEnEhiBEQVJJTktBCitJTEnEhiBERUpBTgorSUxJxIYgRE9CUklWT0pFCitJTEnEhiBET0JST1NBVgorSUxJxIYgRFJBR0FOCitJTEnEhiBEUkFHQU4KK0lMScSGIERSQUdBTgorSUxJxIYgRFJBR0lDQQorSUxJxIYgRFJBR09MSlVCCitJTEnEhiBEUkFHTworSUxJxIYgRFJBR1VUSU4KK0lMScSGIERVxaBBTktBCitJTEnEhiBEVcWgQU4KK0lMScSGIERVxaBBTgorSUxJxIYgRFXFoEFOCitJTEnEhiBEVcWgQU4KK0lMScSGIERVxaBBTgorSUxJxIYgRFXFoElDQQorSUxJxIYgRFXFoElDQQorSUxJxIYgRURJVAorSUxJxIYgRVLFvUlLQQorSUxJxIYgR09SQU4KK0lMScSGIEdPUkFOCitJTEnEhi1HUkVHT1IgTUlSQQorSUxJxIYgSUxJSkEKK0lMScSGIElMSUpBCitJTEnEhiBJTElKQQorSUxJxIYgSVJFTkEKK0lMScSGIElWQU4gRFIKK0lMScSGIElWQU4KK0lMScSGIElWQU4KK0lMScSGIEpFTEVOQQorSUxJxIYgSkVMRU5BCitJTEnEhiBKRUxFTktPCitJTEnEhiBKRUxJU0FWRVRBCitJTEnEhiBKRUxLQQorSUxJxIYgSk9TSUYKK0lMScSGIEpPVkFOS0EKK0lMScSGIEpPVkFOCitJTEnEhiBKT1ZBTgorSUxJxIYgSk9WQU4KK0lMScSGIEpPVkFOCitJTEnEhiBKT1ZBTgorSUxJxIYgSk9WSUNBCitJTEnEhiBLT1ZJTEpLQQorSUxJxIYgS1JTVEFOCitJTEnEhiBMQVpBUgorSUxJxIYgTEFaQVIKK0lMScSGIExBWkFSCitJTEnEhiBMSlVCScWgQQorSUxJxIYgTEpVQknFoEEKK0lMScSGIExKVUJJQ0EKK0lMScSGIExKVUJJQ0EKK0lMScSGIExKVUJJQ0EKK0lMScSGIExKVUJJTktPCitJTEnEhiBMSlVCTworSUxJxIYgTUFSQQorSUxJxIYgTUFSQQorSUxJxIYgTUFSSUpBCitJTEnEhiBNQVJJSkEKK0lMScSGIE1BUklKQQorSUxJxIYgTUFSSUpBCitJTEnEhiBNQVJJTktPCitJTEnEhiBNQVJLTworSUxJxIYgTUlIQUpMTworSUxJxIYgTUlIQUpMTworSUxJxIYgTUlMQURJTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQQorSUxJxIYgTUlMRU5BCitJTEnEhiBNSUxFTkEKK0lMScSGIE1JTEVOCitJTEnEhiBNSUxFVkEKK0lMScSGIE1JTEUKK0lMScSGIE1JTEnEhgorSUxJxIYgTUlMSUNBCitJTEnEhiBNSUxJQ0EKK0lMScSGIE1JTElDQQorSUxJxIYgTUlMSVNBVgorSUxJxIYgTUlMSVZPSkUKK0lMScSGIE1JTElWT0oKK0lMScSGIE1JTElWT0oKK0lMScSGIE1JTElWT0oKK0lMScSGIE1JTE/FoAorSUxJxIYgTUlMT8WgCitJTEnEhiBNSUxPxaAKK0lMScSGIE1JTE/FoAorSUxJxIYgTUlMT1JBRAorSUxJxIYtTUlMVcWgScSGIE9MR0EKK0lMScSGIE1JTFXFoEtBCitJTEnEhiBNSUxVVElOCitJTEnEhiBNSU9EUkFHIERSCitJTEnEhiBNSU9EUkFHCitJTEnEhiBNSU9EUkFHCitJTEnEhiBNSU9EUkFHCitJTEnEhiBNSVJKQU5BCitJTEnEhiBNSVJLTworSUxJxIYgTUlST1NMQVZBCitJTEnEhiBNSVJPU0xBVgorSUxJxIYgTUlST1NMQVYKK0lMScSGIE1JVEFSCitJTEnEhiBNT03EjElMTworSUxJxIYgTU9NxIxJTE8KK0lMScSGIE1PTcSMSUxPCitJTEnEhiBNT03EjElMTworSUxJxIYgTkFEQQorSUxJxIYgTkXEkE8KK0lMScSGIE5FQk9KxaBBCitJTEnEhiBORUJPSsWgQQorSUxJxIYgTkVOQUQKK0lMScSGIE5FVkVOS0EKK0lMScSGIE5JS09MQQorSUxJxIYgTklLT0xBCitJTEnEhiBPQlJBRAorSUxJxIYgT0JSRU4KK0lMScSGIE9MR0EKK0lMScSGIE9MR0EKK0lMScSGIE9MSVZFUkEKK0lMScSGIE9TVE9KQQorSUxJxIYgUEFWTEUgRElQTCBJTkcKK0lMScSGIFBBVkxFCitJTEnEhiBQRVJPCitJTEnEhiBQRVRBUgorSUxJxIYgUEVUQVIKK0lMScSGIFBFVEFSCitJTEnEhiBQRVRBUgorSUxJxIYgUEVUQVIKK0lMScSGLVBFVFJPVknEhiBTUE9NRU5LQQorSUxJxIYgUFJFVklTTEFWCitJTEnEhiBSQURFCitJTEnEhiBSQURJVk9KCitJTEnEhiBSQURPSktBCitJTEnEhiBSQURPTUlSCitJTEnEhiBSQURPU0xBVgorSUxJxIYgUkFET1NMQVYKK0lMScSGIFJBRE9TTEFWCitJTEnEhiBSQURPVkFOCitJTEnEhiBSQURPVkFOCitJTEnEhiBSQURPCitJTEnEhiBSQU5LTworSUxJxIYgUkFUS08KK0lMScSGIFJBVEtPCitJTEnEhiBSVcW9QQorSUxJxIYgUlXFvUlDQQorSUxJxIYgU0FWQSBEUgorSUxJxIYgU0FWQQorSUxJxIYtU0FWScSGIFZPSklTTEFWQQorSUxJxIYgU0lNTworSUxJxIYgU0lOScWgQQorSUxJxIYgU0xBVklDQQorSUxJxIYgU0xBVktPCitJTEnEhiBTTEFWS08KK0lMScSGIFNMQVZPTEpVQgorSUxJxIYgU0xPQk9EQU4KK0lMScSGIFNMT0JPREFOCitJTEnEhiBTTE9CT0RBTgorSUxJxIYgU0xPQk9EQU4KK0lMScSGIFNSxJBBTgorSUxJxIYgU1LEkEFOCitJTEnEhiBTUsSQQU4KK0lMScSGIFNSRVRFTgorSUxJxIYgU1RBTkEKK0lMScSGIFNUQU5JxaBBCitJTEnEhiBTVEFOSU1JUgorSUxJxIYgU1RBTklNSVIKK0lMScSGIFNUQU5LQQorSUxJxIYgU1RFVk8KK0lMScSGIFNUT0pBTsSMRQorSUxJxIYgU1RPSkFOCitJTEnEhiBTVE9KQU4KK0lMScSGIFNWRVRJU0xBViBEUiBMRUtBUgorSUxJxIYgU1ZFVExBTkEKK0lMScSGIFNWRVRPWkFSCitJTEnEhiBUQVRKQU5BCitJTEnEhiBUT0RFCitJTEnEhiBUT0RFCitJTEnEhiBUT01JU0xBVgorSUxJxIYgVkFTQQorSUxJxIYgVkVSQQorSUxJxIYgVklET1NBVgorSUxJxIYgVklOS0EKK0lMScSGIFZJTktPCitJTEnEhiBWTEFEQU4KK0lMScSGIFZMQURBTgorSUxJxIYgVkxBRElNSVIgRFIKK0lMScSGIFZMQURJTUlSCitJTEnEhiBWTEFESU1JUgorSUxJxIYgVkxBRElNSVIKK0lMScSGIFZMQURJTUlSCitJTEnEhiBWTEFESU1JUgorSUxJxIYgVkxBVEtBCitJTEnEhiBWT0pJU0xBVgorSUxJxIYgVk9KSVNMQVYKK0lMScSGIFZPSklTTEFWCitJTEnEhiBWT0pJU0xBVgorSUxJxIYgWkRSQVZLTworSUxJxIYgWkxBVEtPCitJTEnEhiBaTEFUS08KK0lMScSGIFpPUkFOCitJTEnEhiBaT1JJQ0EKK0lMSUJBxaBJxIYgREFSSU5LQQorSUxJQkHFoEnEhiBOSUtPTEEKK0lMSUJBxaBJxIYgT1NUT0pBCitJTElCQcWgScSGIFNURVZBTgorSUxJQkHFoEnEhiBTVEVWTworSUxJQkHFoEnEhiBaTEFUQQorSUxJRVZTS0kgQUxFS1NBTkRBUgorSUxJSsSGIFNNSUxKQQorSUxJSsSGIFNWRVRPTElLCitJTElKQcWgRVYgU09GSUpBCitJTElKQcWgRVZJxIYgQUxFS1NBTkRBUgorSUxJSkHFoEVWScSGIERBUkEKK0lMSUpBxaBFVknEhiBMSlVCScWgQQorSUxJSkHFoEVWScSGIFNWRVRJU0xBVgorSUxJSkFaSSBBQkRJU0FNSQorSUxJSkFaSSBEQVVUCitJTElKQVpJIEhBRklaQQorSUxJSkFaSSBKQUzEjElOCitJTElKQVpJIFpBSk5FTAorSUxJSkFaT1ZJxIYgVkVExb1SSUpBCitJTElKRVYgSVZBTgorSUxJSkVWIElWQU4KK0lMSUpFViBMSlVCRU4KK0lMSUpFVknEhiBEVcWgQU4gRElQTCBJTkcKK0lMSUpFVknEhiBOSUtPTEEKK0lMSUpFVknEhiBSQURFCitJTElKRVZTS0kgxIZJUk8KK0lMSUpFVlNLSSDEkE9SxJBFCitJTElKRVZTS0kgREFOSUxPCitJTElKSU4gxb1BUktPCitJTElKSU4gxb1JVkFOCitJTElKSU4gRFXFoEFOCitJTElKSU4gSkVMRU5BCitJTElKSU4gSk9WQU4KK0lMSUpJTiBKT1ZBTgorSUxJSklOIE1JTEFOCitJTElKSU4gTUlMSVZPSgorSUxJSklOIE1JTElWT0oKK0lMSUpJTiBNSUxPxaAKK0lMSUpJTiBNSVJKQU5BCitJTElKSU4gU1RFVkFOCitJTElKSU4gU1ZFVE9aQVIKK0lMSUpJTiBUQU5BU0lKRQorSUxJSklOIFVST8WgCitJTElKSU4gWk9SS0EKK0lMSU4gxb1BUktPCitJTElOIEFMRUtTQU5EQVIKK0lMSU4gQU5LSUNBCitJTElOIEJPUklTTEFWCitJTElOIEJPUktBCitJTElOIERSQUdJTkpBCitJTElOIERSQUdJTkpBCitJTElOIERVxaBBTgorSUxJTiBEVcWgQU4KK0lMSU4gSVZBTgorSUxJTiBMSlVCSU5LTworSUxJTiBMSlVCT01JUgorSUxJTiBNSUxBTgorSUxJTiBNSUxFTktPCitJTElOIE1MQURFTgorSUxJTiBORURFTEpLTworSUxJTiBOSUtPTEEKK0lMSU4gUkFERQorSUxJTiBTTkXFvUFOQQorSUxJTiBTT0ZJSkEKK0lMSU4gVElNQQorSUxJTiBaT1JBCitJTElOxIxJxIYgTU9NSVIKK0lMSU7EjEnEhiBORUJPSsWgQQorSUxKQVpJIETFvUFNSUxKCitJTEtJxIYgSkVMQQorSUxLScSGIE1BUklDQQorSUxLScSGIE1JTEFOCitJTEtJxIYgTUlSQQorSUxLScSGIE5BREEKK0lMS0nEhiBORUJPSsWgQQorSUxLScSGIE5FTkFECitJTEtJxIYgUkFETUlMQQorSUxLScSGIFNURVZJQ0EKK0lMS0nEhiBaTEFUT0pBCitJTEtJTiBSQURJVk9KCitJTE9WQcSMQSBNQVJLTworSUxPVlNLSSBBTEVLU0FOREFSCitJTE9WU0tJIFpMQVRBCitJTcWgSVJPVknEhiBLT0xPTUFOCitJTcWgSVJPVknEhiBNSVJPU0xBVgorSU3FoElST1ZJxIYgU01BSklMCitJTUFNT1ZJxIYgSkFTTUlOQQorSU1CUkEgxb1JVk9KSU4KK0lNQlJJxaBJxIYgQkVISUpBCitJTUJSScWgScSGIElWQU4KK0lNQlJPTkpFViBSQUpLTworSU1CUk9OSkVWIFJBSktPCitJTUJST05KRVYgUkFKS08KK0lNQlJPTkpFViBTUEFTT0pBCitJTUJST05PVknEhiDEkE9SxJBFCitJTUJST05PVknEhiBEVcWgQU4KK0lNQlJPTk9WScSGIEpVTEtBCitJTVJFxaBJIElWQU4KK0lOxJBJxIYgRFJBR0lDQQorSU7EkEnEhiBEVcWgQU4KK0lOxJBJxIYgSkVMRU5BCitJTsSQScSGIEpFTElDQQorSU7EkEnEhiBURVJFWgorSU7EkEnEhiBWT0pJTgorSU7EkElOIMW9SVZLTworSU7EkElOIMSQVVJBCitJTsSQSU4gRFXFoEFOCitJTsSQSU4gVkxBRElNSVIKK0lOScSGIEJSQU5LTworSU5JxIYgRFJBR0FOCitJTknEhiBEVcWgQU4KK0lOScSGIEpFTEVOQQorSU5JxIYgS1JTVEEKK0lOScSGIExKVUJJQ0EKK0lOScSGIE1JTEFOIERSCitJTknEhiBUSU5EQQorSU5JxIYgVkFTTworSU5KQUMgQk9HREFOCitJTkpBQyBEUkFHSUNBCitJTkpBQyBKT1ZBTgorSU5KQUMgTEpVQklDQQorSU5KQUMgTUlSS08KK0lOSkFDIE5JS09MQQorSU5KQUMgUkFEQQorSU5KQUMgUkFERQorSU5KQUMgUkFET01JUgorSU5KQUMgU0xPQk9EQU4KK0lOSkFDIFZMQURJTUlSCitJTk9WQU4gRE9CUklWT0pFCitJUEHEjCBLQVRBTElOQQorSVBBxIwgS0FUSUNBCitJUEnEhiBaT1JBCitJUsWgQUkgSVZBTgorSVLFoEFKSSBKT1ZBTgorSVLFoEFKSSBTVEVWQQorSVJJxIYgQk/FvU8KK0lSScSGIEdBxaBQQVIKK0lSTUXFoCBNQVJJQQorSVJNRU5KSSBKT8W9RUYKK0lSTUVOSkkgSk9TSVAKK0lSTUVOSkkgTUFSR0lUCitJU0FJTE9WScSGIExKVUJJxaBBCitJU0FJTE9WScSGIE1JTEFOS0EKK0lTQUlMT1ZJxIYgTUlSS08KK0lTQUlMT1ZJxIYgVkVMSVNBVgorSVNBSkVWIE1BUklKQQorSVNBSkVWScSGIExBWkFSCitJU0FKRVZJxIYgTUlMT8WgCitJU0FKRVZJxIYgWkRSQVZLTworSVNBSkxPViBKT05FTAorSVNBSkxPViBKT05FTAorSVNBSkxPViBKT05FTAorSVNBSkxPVknEhiBBTEVLU0FOREFSCitJU0FKTE9WScSGIEFMRUtTQU5EQVIKK0lTQUpMT1ZJxIYgQlJBTktPCitJU0FKTE9WScSGIERVxaBBTgorSVNBSkxPVknEhiBGRURPUgorSVNBSyBJTElKQQorSVNBSyBTVEFOS08KK0lTQUtPViDFvUFSS08KK0lTQUtPViDFvUlWT0pJTgorSVNBS09WIEFDS08KK0lTQUtPViBCT1JJU0xBVgorSVNBS09WIENWRVRLTworSVNBS09WIERJTUlUUklKRQorSVNBS09WIERSQUdBTkEKK0lTQUtPViBEUkFHT0xKVUIKK0lTQUtPViBEVcWgSUNBCitJU0FLT1YgRVNURVIKK0lTQUtPViBJVkFOCitJU0FLT1YgSkVMSUNBCitJU0FLT1YgSk9WQU5LQQorSVNBS09WIEtBVElDQQorSVNBS09WIExFUE9TQVZBCitJU0FLT1YgTEpVQklDQQorSVNBS09WIExKVUJJQ0EKK0lTQUtPViBNSUxBTgorSVNBS09WIE1JTEFOCitJU0FLT1YgTUlMRU5LTworSVNBS09WIE1JTElWT0oKK0lTQUtPViBNSUxPUkFECitJU0FLT1YgTUlMVVRJTgorSVNBS09WIE1JT0RSQUcKK0lTQUtPViBNSVJPU0xBVgorSVNBS09WIE5FTkFECitJU0FLT1YgUEVUQVIKK0lTQUtPViBSQURFCitJU0FLT1YgUkFESUNBCitJU0FLT1YgUkFESU5LQQorSVNBS09WIFJBRElWT0oKK0lTQUtPViBSQURNSUxBCitJU0FLT1YgUkFET01JUgorSVNBS09WIFJBRE9WQU4KK0lTQUtPViBSVcW9SUNBCitJU0FLT1YgU0FWQQorSVNBS09WIFNMQVZLTworSVNBS09WIFNNSUxKS0EKK0lTQUtPViBTUkVET0pFCitJU0FLT1YgU1RFVkFOCitJU0FLT1YgU1RFVkFOCitJU0FLT1YgVE9ET1IKK0lTQUtPViBUT01JU0xBVgorSVNBS09WIFZPSklTTEFWCitJU0FLT1YgWk9SSUNBCitJU0FLT1ZJxIYgxJBVUkEgRElQTCBJTkcKK0lTQUtPVknEhiBBTkEKK0lTQUtPVknEhiBNQVJLTworSVNBS09WScSGIFNURVZBTgorSVNBS09WScSGIFpPUkFOCitJU0FLT1ZTS0kgSkFLT1YKK0lTQUtPVlNLSSBTTE9CT0RBTiBEUgorSVNBTk9WScSGIEFOQQorSVNJSkFOT1YgU0xPQk9EQU5LQQorSVNJSkFOT1YgVkxBRElNSVIKK0lTS0FMT1YgTUFSSUpBTkEKK0lTS0nEhiBNSUxBRElOCitJU0tSSU4gQlJBTktPCitJU0tSSU4gSkVMRU5BCitJU0xBTUJBxaBJxIYgTEpJTEpBTkEKK0lTTEFNSSBBQklCCitJU0xBTU9WScSGIE1BSE1VRAorSVNMQU1PVknEhiBOQURBCitJU01BSUxJIMWgQcSGSVIKK0lUQUxPIEVWSUNBCitJVEFMTyBNQVJLTworSVRFQkVKQUMgWk9SQQorSVZBxIxLT1ZJxIYgQlJBTklTTEFWCitJVkHEjEtPVknEhiBNQU5PSkxPCitJVkHEjEtPVknEhiBOQURBCitJVkHFoMSMRU5LTyBBTEVLU0FOREFSCitJVkHFoMSMRU5LTyBBTEVLU0FOREFSCitJVkHFoMSMRU5LTyBLQVRJQ0EKK0lWQcWgS1UtTUlMT1ZBTk9WScSGIEZFTEnEjElBCitJVkFLIEpBTgorSVZBTiDFoEFORE9SCitJVkFOIMSQVVJBCitJVkFOIEFUSUxBCitJVkFOIENFQ0lMSUpBCitJVkFOIEdBQk9SCitJVkFOIEpPxb1FRgorSVZBTiBKT1ZBTgorSVZBTiBLQVRBTElOCitJVkFOIE1JSEFKTE8KK0lWQU4gU0lMVkVTVEVSCitJVkFOIFZFUk9OQQorSVZBTsSMRVYgSVJJTkEKK0lWQU7EjEVWIFZMQURJTUlSCitJVkFOxIxFVknEhiDFvUFSS08gRFIKK0lWQU7EjEVWScSGIEJPxaBLTworSVZBTsSMRVZJxIYgQlJBTktBCitJVkFOxIxFVknEhiBEQVJLTworSVZBTsSMRVZJxIYgRElNSVRSSUpFCitJVkFOxIxFVknEhiBEUkFHT1NMQVZBCitJVkFOxIxFVknEhiBEVcWgQU4KK0lWQU7EjEVWScSGIEdBVlJBCitJVkFOxIxFVknEhiBKT1ZBTgorSVZBTsSMRVZJxIYgSk9WQU4KK0lWQU7EjEVWScSGIE1BUklDQQorSVZBTsSMRVZJxIYgTUlMQU4KK0lWQU7EjEVWScSGIE1JTEFOCitJVkFOxIxFVknEhiBNSUxFTktPCitJVkFOxIxFVknEhiBNSUxJVk9KRSBQUk9GRVNPUgorSVZBTsSMRVZJxIYgT0xJVkVSQQorSVZBTsSMRVZJxIYgUEVUQVIKK0lWQU7EjEVWScSGIFBFVEFSCitJVkFOxIxFVknEhiBSQURJVk9KIERJUEwgSU5HCitJVkFOxIxFVknEhiBSQURNSUxBCitJVkFOxIxFVknEhiBTSU5JxaBBCitJVkFOxIxFVknEhiBTVEFOS08KK0lWQU7EjEVWScSGIFNWRVRPWkFSCitJVkFOxIxFVknEhiBWTEFEQQorSVZBTsSMRVZJxIYgVkxBRElNSVIgRFIKK0lWQU7EjEnEhiBBTlRFCitJVkFOxIxJxIYgQlJBTktPCitJVkFOxIxJxIYgRFJBR0FOCitJVkFOxIxJxIYgSk9TSVAKK0lWQU7EjEnEhiBKVUxJSkFOQQorSVZBTsSMScSGIE1BUklKQQorSVZBTsSMScSGIE1JTEFOCitJVkFOxIxJxIYgT0xHQQorSVZBTsSMScSGIFNUQU5JTUlSCitJVkFOxIxJxIYgU1RBTklTTEFWCitJVkFOxIxJxIYgU1RFVkFOCitJVkFOxIxJxIYgU1RFVkFOCitJVkFOxIxJxIYgVkxBRElNSVIKK0lWQU7EjElOIE5JS09MQQorSVZBTsSMSU4gT0xKRUcKK0lWQU7EjFVLIFBBVkFPCitJVkFOREnEhiBJVklDQQorSVZBTkRJxIYgUkFETUlMQQorSVZBTkXFvUEgQU5EUklKQQorSVZBTkVLIMSQVVJBCitJVkFORUsgRFXFoEtPCitJVkFORUsgVklLVE9SSUpBCitJVkFOSSBISUxKQQorSVZBTknFoCBLT1ZJTEpLQQorSVZBTknFoCBTTEFWS08KK0lWQU5JxaAgU0xBVktPCitJVkFOScWgRVZJxIYgxJBVUk8KK0lWQU5JxaBFVknEhiBEVcWgQU4KK0lWQU5JxaBFVknEhiBFVklDQQorSVZBTknFoEVWScSGIElMSUpBCitJVkFOScWgRVZJxIYgSkVMSUNBCitJVkFOScWgRVZJxIYgTUlIQUlMTworSVZBTknFoEVWScSGIE1JTEFOCitJVkFOScWgRVZJxIYgTUlST1NMQVYKK0lWQU5JxaBFVknEhiBNSVJPU0xBVgorSVZBTknFoEVWScSGIE1JVEFSCitJVkFOScWgRVZJxIYgTkFEQQorSVZBTknFoEVWScSGIE5BREEKK0lWQU5JxaBFVknEhiBORcSQQQorSVZBTknFoEVWScSGIE5FTUFOSkEKK0lWQU5JxaBFVknEhiBPTEdBCitJVkFOScWgRVZJxIYgUEVUQVIKK0lWQU5JxaBFVknEhiBSQUpLTworSVZBTknFoEVWScSGIFNWRVRPWkFSCitJVkFOScWgRVZJxIYgVElOQQorSVZBTknFoEVWScSGIFZVS0lDQQorSVZBTknEhiDEjEVET01JUgorSVZBTknEhiDEkE9SxJBFCitJVkFOScSGIEFMQkVSVAorSVZBTknEhiBBTkEKK0lWQU5JxIYgQlJBTktPCitJVkFOScSGIERSQUdBTkEKK0lWQU5JxIYgRFJBR0FOCitJVkFOScSGIERSQUdJQ0EKK0lWQU5JxIYgRFXFoEFOCitJVkFOScSGIERVxaBBTgorSVZBTknEhiBHUk9aREFOQQorSVZBTknEhiBJVkFOQQorSVZBTknEhiBJVkFOCitJVkFOScSGIElWQU4KK0lWQU5JxIYgSVZBTgorSVZBTknEhiBKT1ZPCitJVkFOScSGIE1BUklOQQorSVZBTknEhiBNSUxBTgorSVZBTknEhiBNSUxBTgorSVZBTknEhiBNSUxBTgorSVZBTknEhiBORVZFTktBCitJVkFOScSGIFBFUlNJREEKK0lWQU5JxIYgUEVUQVIKK0lWQU5JxIYgU05Fxb1BTkEKK0lWQU5JxIYgU1RFVkFOCitJVkFOScSGIFpMQVRPSkUKK0lWQU5KSSBTSU5JxaBBCitJVkFOSkkgVkVST05JS0EKK0lWQU5LT1ZJxIYgxIxFRE9NSVIKK0lWQU5LT1ZJxIYgxJBPUsSQRQorSVZBTktPVknEhiBCT8W9QU5BCitJVkFOS09WScSGIEJPxb1PCitJVkFOS09WScSGIEpBTktPCitJVkFOS09WScSGIE1BUklOS08KK0lWQU5LT1ZJxIYgTUlMRU5LTworSVZBTktPVknEhiBNSUxFCitJVkFOS09WScSGIE1JTEtBCitJVkFOS09WScSGIE1JTEtBCitJVkFOS09WScSGIE5FTkFECitJVkFOS09WScSGIE5PVk8KK0lWQU5LT1ZJxIYgUkFERQorSVZBTktPVknEhiBSQURFCitJVkFOS09WScSGIFNBVk8KK0lWQU5LT1ZJxIYgU0xBVktPCitJVkFOS09WScSGIFRJSE9NSVIKK0lWQU5LT1ZJxIYgWkRSQVZLTworSVZBTk9WIMW9SVZBTgorSVZBTk9WIMSQT0tBCitJVkFOT1YgxJBPUsSQRQorSVZBTk9WIMSQVVLEkEVWS0EKK0lWQU5PViDEkFVSxJBJTktBCitJVkFOT1YgQk9SSVMKK0lWQU5PViBESU1JVEFSCitJVkFOT1YgRFJBR0lDQQorSVZBTk9WIERSQUdPU0xBVkEKK0lWQU5PViBFTUlMSUpBCitJVkFOT1YgRVZJQ0EKK0lWQU5PViBHQVZSQQorSVZBTk9WIEpVTEtBCitJVkFOT1YgS0FUSUNBCitJVkFOT1YgTEpVQk9NSVIKK0lWQU5PViBNQVJJQ0EKK0lWQU5PViBNQVJJSkEKK0lWQU5PViBNScWgQQorSVZBTk9WIE1JTEVOS08KK0lWQU5PViBNSUxFCitJVkFOT1YgTUlMT1JBRAorSVZBTk9WIE1JVEEKK0lWQU5PViBOSUtPTEEKK0lWQU5PViBPTElWRVJBCitJVkFOT1YgUEVUQVIKK0lWQU5PViBTRVJHSUpFCitJVkFOT1YgU0xBVktPCitJVkFOT1YgVkVSQQorSVZBTk9WIFpEUkFWS08KK0lWQU5PViBaT1JBCitJVkFOT1YgWk9SSUNBCitJVkFOT1ZJxIYgxIxFRE9NSVIKK0lWQU5PVknEhiDFvUlLQQorSVZBTk9WScSGIMW9SVZPUkFECitJVkFOT1ZJxIYgxJBPUsSQRQorSVZBTk9WScSGIEFMRUtTQQorSVZBTk9WScSGIEFOR0VMSU5BCitJVkFOT1ZJxIYgQk/FvUEKK0lWQU5PVknEhiBCT0dEQU4KK0lWQU5PVknEhiBCUkFOSVNMQVZBCitJVkFOT1ZJxIYgQlJBTklTTEFWCitJVkFOT1ZJxIYgQlJBTklTTEFWCitJVkFOT1ZJxIYgQlJBTklTTEFWCitJVkFOT1ZJxIYgQlJBTklTTEFWCitJVkFOT1ZJxIYgQ1ZFSkEKK0lWQU5PVknEhiBERVNBTktBCitJVkFOT1ZJxIYgREVTQQorSVZBTk9WScSGIERJTUlUUklKRQorSVZBTk9WScSGIERSQUdBTgorSVZBTk9WScSGIERSQUdBTgorSVZBTk9WScSGIERSQUdBTgorSVZBTk9WScSGIERSQUdBTgorSVZBTk9WScSGIERSQUdBTgorSVZBTk9WScSGIERSQUdPTEpVQgorSVZBTk9WScSGIERSQUdPTEpVQgorSVZBTk9WScSGIERVxaBBTktBCitJVkFOT1ZJxIYgRFXFoEFOCitJVkFOT1ZJxIYgRlJBTkpBCitJVkFOT1ZJxIYgSUxJSkEKK0lWQU5PVknEhiBJTElKQQorSVZBTk9WScSGIElWQU4gRFIKK0lWQU5PVknEhiBKQU5PxaAKK0lWQU5PVknEhiBKRUxFTkEKK0lWQU5PVknEhiBKT1JEQU4KK0lWQU5PVknEhiBKT1ZBTgorSVZBTk9WScSGIEtPVklOS0EKK0lWQU5PVknEhiBLUlNUT01JUgorSVZBTk9WScSGIEtTRU5JSkEKK0lWQU5PVknEhiBMSlVCSUNBCitJVkFOT1ZJxIYgTEpVQklTQVYKK0lWQU5PVknEhiBMSlVCT01JUgorSVZBTk9WScSGIExKVURFVklUCitJVkFOT1ZJxIYgTUFSSUpBCitJVkFOT1ZJxIYgTUFSSU5LTworSVZBTk9WScSGIE1BUktPCitJVkFOT1ZJxIYgTUlMQU4gU1VESUpBCitJVkFOT1ZJxIYgTUlMRU5LTworSVZBTk9WScSGIE1JTEVOS08KK0lWQU5PVknEhiBNSUxFVEEKK0lWQU5PVknEhiBNSUxFVkEKK0lWQU5PVknEhiBNSUxJQ0EKK0lWQU5PVknEhiBNSUxJSkEKK0lWQU5PVknEhiBNSUxLQQorSVZBTk9WScSGIE1JTEtPCitJVkFOT1ZJxIYgTUlMT1JBRAorSVZBTk9WScSGIE1JTFVOCitJVkFOT1ZJxIYgTUlMVVRJTgorSVZBTk9WScSGIE1JT0RSQUcKK0lWQU5PVknEhiBNSVJBCitJVkFOT1ZJxIYgTUlSSkFOQQorSVZBTk9WScSGIE1JUktPCitJVkFOT1ZJxIYgTUlST1NMQVYKK0lWQU5PVknEhiBNSVJPU0xBVgorSVZBTk9WScSGIE1MQURFTgorSVZBTk9WScSGIE5FQk9KxaBBCitJVkFOT1ZJxIYgTkVHT1ZBTgorSVZBTk9WScSGIE5JS09MQQorSVZBTk9WScSGIE9CUkFECitJVkFOT1ZJxIYgUEVUQVIKK0lWQU5PVknEhiBQRVRSQQorSVZBTk9WScSGIFJBxaBLTworSVZBTk9WScSGIFJBRE1JTEEKK0lWQU5PVknEhiBSQURPTUlSCitJVkFOT1ZJxIYgUkFET1NMQVYKK0lWQU5PVknEhiBSQURPVkFOCitJVkFOT1ZJxIYgU0VMSU1JUgorSVZBTk9WScSGIFNJTU8KK0lWQU5PVknEhiBTTE9CT0RBTktBCitJVkFOT1ZJxIYgU0xPQk9EQU4KK0lWQU5PVknEhiBTTE9CT0RBTgorSVZBTk9WScSGIFNMT0JPREFOCitJVkFOT1ZJxIYgU0xPQk9EQU4KK0lWQU5PVknEhiBTVEFNRU4KK0lWQU5PVknEhiBTVEFOSVNMQVZBCitJVkFOT1ZJxIYgU1RBTktBCitJVkFOT1ZJxIYgU1RFVkFOCitJVkFOT1ZJxIYgU1RFVkFOCitJVkFOT1ZJxIYgU1RPSkFOCitJVkFOT1ZJxIYgVkFTSUxJSkUKK0lWQU5PVknEhiBWRUxJQk9SCitJVkFOT1ZJxIYgVklUT01JUgorSVZBTk9WScSGIFZMQURBCitJVkFOT1ZJxIYgVkxBREEKK0lWQU5PVknEhiBWT0pJU0xBVgorSVZBTk9WScSGIFZPSklTTEFWCitJVkFOT1ZJxIYgVlVLT1NBVkEKK0lWQU5PVknEhiBaT1JBTiBESVBMIElORworSVZBTk9WScSGIFpPUkEKK0lWQU5PVlNLSSDEkE9SxJBFCitJVkFOT1ZTS0kgQkxBR09KRQorSVZBTk9WU0tJIElMSUpBCitJVkFOT1ZTS0kgU1RBTkEKK0lWQVRPVknEhiBCUkFOS08KK0lWRUdFxaAgQU5BCitJVkVHRcWgIEnFoFRWQU4gRElQTCBJTkcKK0lWRUdFxaAgTEFTTE8KK0lWRUsgVkxBRElNSVIKK0lWRVRJxIYgQlJBTklTTEFWQQorSVZFVEnEhiBCUkFOSVNMQVZBCitJVkVUScSGIERJTUlUUklKRQorSVZFVEnEhiBEUkFHQU4KK0lWRVRJxIYgTEFaQQorSVZFVEnEhiBMSklMSkFOQQorSVZFVEnEhiBNSUxPSktPCitJVkVUScSGIFJBREUgRFIKK0lWRVRJxIYgUkFERSBEUgorSVZFVEnEhiBSQURPVkFOCitJVkVUScSGIFZBU0EKK0lWRVRJxIYgVkVTTkEKK0lWRVpJxIYgQUxFS1NBTkRBUgorSVZFWknEhiBEUkFHTworSVZFWknEhiBHT0pLTworSVZFWknEhiBNQVJLTyBEUgorSVZFWknEhiBNSUxFCitJVkVaScSGIFpPUkFOCitJVkVaScSGIFpWT05LTworSVZJxIxJxIYgTUlSQQorSVZJxIxJxIYgTkFEQQorSVZJxIxJxIYtVE9NScSGIEJJTEpBTkEKK0lWScSGIEJMQUdPTUlSCitJVknEhiBERVNBTktBCitJVknEhiBKVUxJSkEKK0lWScSGIE1FTElUQQorSVZJxIYgTUlSS08gTVIgUEgKK0lWScSGIFBFVEFSIERJUEwgT0VDCitJVknEhiBSQURFCitJVknEhiBTVE9KQU4KK0lWScSGIFZBU0lMSUpFCitJVknEhiBWQVNPCitJVknEhiBWT0pJTUlSCitJVknEhiBaTEFUS08KK0lWS09WIMSMRURPTUlSCitJVktPViDFvUlWS0EKK0lWS09WIMSQT1LEkEUKK0lWS09WIEJPxaBLTworSVZLT1YgQk9SSVZPSgorSVZLT1YgREFOSUxPCitJVktPViBET0JSSVZPSgorSVZLT1YgRFXFoEFOCitJVktPViBJU0EKK0lWS09WIElWQU4KK0lWS09WIEpFTEVOQQorSVZLT1YgSkVMRU5BCitJVktPViBLQVRJQ0EKK0lWS09WIEtBVElDQQorSVZLT1YgS0FUSUNBCitJVktPViBNSUxFTktPCitJVktPViBNSUxJQ0EKK0lWS09WIE1JTE9WQU4KK0lWS09WIE9MR0lDQQorSVZLT1YgUEVUQVIKK0lWS09WIFJBRE9TTEFWCitJVktPViBSQURPVkFOCitJVktPViBTQVZBCitJVktPViBTRUtVTEEKK0lWS09WIFNMQVZLTworSVZLT1YgU0xPQk9EQU4KK0lWS09WIFNMT0JPREFOCitJVktPViBTVEFOQQorSVZLT1YgU1RBTklTTEFWQQorSVZLT1YgU1RFVkFOCitJVktPViBTVEVWQU4KK0lWS09WIFNURVZBTgorSVZLT1YgVVJPxaAKK0lWS09WIFZPSklTTEFWCitJVktPVknEhiDEkFVSTworSVZLT1ZJxIYgQU5UVU4KK0lWS09WScSGIEFSU0EKK0lWS09WScSGIEJPxb1BCitJVktPVknEhiBCT0dEQU4KK0lWS09WScSGIEJPUklTTEFWCitJVktPVknEhiBCT1JJU0xBVgorSVZLT1ZJxIYgREVKQU4KK0lWS09WScSGIERJVk5BCitJVktPVknEhiBEUkFHQU4gRElQTCBJTkcKK0lWS09WScSGIERVxaBBTgorSVZLT1ZJxIYgRFXFoEFOCitJVktPVknEhiBEVcWgQU4KK0lWS09WScSGIEVTVEVSQQorSVZLT1ZJxIYgR1VTVEFWIERSCitJVktPVknEhi1JVkFOREVLScSGIERBTklDQQorSVZLT1ZJxIYgSkVMRU5BCitJVktPVknEhiBKT1ZBTgorSVZLT1ZJxIYgS09WSUxKS0EKK0lWS09WScSGLUxBWkFSIFRBVEpBTkEgRFIKK0lWS09WScSGIExVS0EKK0lWS09WScSGIE1JSEFKTE8KK0lWS09WScSGIE1JTEFOS0EKK0lWS09WScSGIE1JTEFOCitJVktPVknEhiBNSUxFTlRJSkUKK0lWS09WScSGIE1JTEVWQQorSVZLT1ZJxIYgTUlMRQorSVZLT1ZJxIYgTUlMSUNBCitJVktPVknEhiBNSUxPTEpVQiBESVBMIElORworSVZLT1ZJxIYgTUlMT1JBRAorSVZLT1ZJxIYgTUlMVVRJTgorSVZLT1ZJxIYgTUlSSkFOQQorSVZLT1ZJxIYgTUxBREVOCitJVktPVknEhiBOQVRBxaBBCitJVktPVknEhiBOQVRBxaBBCitJVktPVknEhiBORUJPSsWgQQorSVZLT1ZJxIYgTklLT0xBCitJVktPVknEhiBOSUtPTEEKK0lWS09WScSGIFBFVEFSCitJVktPVknEhiBQUkVEUkFHCitJVktPVknEhiBSQURJU0FWCitJVktPVknEhiBSQU5LTworSVZLT1ZJxIYgU1RFVkFOCitJVktPVknEhiBTVE9KQU4KK0lWS09WScSGIFZFUkEKK0lWS09WScSGIFZFUkEKK0lWS09WScSGIFZFUklDQQorSVZLT1ZJxIYgVkxBRElNSVIKK0lWS09WScSGIFZMQUpLTworSVZLT1ZJxIYgWkFHT1JLQQorSVZLT1ZJxIYgWkRSQVZLTworSVZLT1ZJxIYgWk9SSUNBCitJVk/FoCBBTEVLU0FOREFSCitJVk/FoCBST0RPTEpVQgorSVZPxaAgVk9KSVNMQVYKK0lWT8WgRVYgQUxFS1NBTkRBUgorSVZPxaBFViBEVcWgQU4KK0lWT8WgRVYgSUxJSkEKK0lWT8WgRVYgS0FUQVJJTkEKK0lWT8WgRVYgS09TVEEKK0lWT8WgRVYgTUFSS08KK0lWT8WgRVYgU0xBVktPCitJVk/FoEVWIFZPSklTTEFWCitJVk/FoEVWScSGIMSQVVJPCitJVk/FoEVWScSGIEFMRUtTQU5EUkEKK0lWT8WgRVZJxIYgREFOSUNBCitJVk/FoEVWScSGIEdPSktPCitJVk/FoEVWScSGIE1JTEFOCitJVk/FoEVWScSGIE1JTEVOS08KK0lWT8WgRVZJxIYgU0FWQQorSVZPxaBFVknEhiBTTE9CT0RBTgorSVZPxaBFVknEhiBaT1JBTgorSVZPVknEhiBMSlVCScWgQQorSVZPVknEhiBQRVRBUgorSVpCUkFEScSGIFNURVZBTgorSVpHQVJKQU4gTUlMSVZPSgorSkHFoMSMRU5LT1YgU1RBTkEKK0pBxaBBUiBIQVNBTgorSkHFoEFSQUdJxIYgSVZBTktBCitKQcWgQVJBR0nEhiBaSUpPCitKQcWgQVJFVknEhiBIVVNFSU4KK0pBxaBBUkVWScSGIE1VSEFSRU0KK0pBxaBBUkVWScSGIFJBTU8KK0pBxaBBUkVWScSGIFZPSklTTEFWCitKQcWgQVJJIETFvUFGRVIKK0pBxaBBUk9WIMWgQUlQCitKQcWgScSGIERFU0FOS0EKK0pBxaBJxIYgU0lOScWgQQorSkHFoElOU0tJIFJVxb1BCitKQcWgTyBBTkEKK0pBxaBPIEpPxb1FRiBEUgorSkHFoE8gTUlMT1NBVgorSkHFoE8gTUlST1NMQVZBCitKQcWgT1ZJxIYgR09KS08KK0pBxIZFVknEhiBNSU9EUkFHCitKQcSGSU1PVknEhiBBTEVLU0FOREFSIExFS0FSCitKQcSGSU1PVknEhiBCT0pJTgorSkHEhklNT1ZJxIYgSk9WQQorSkHEhklNT1ZJxIYgTUlMRU5LTworSkHEhklNT1ZJxIYgTUlMT0pLTworSkHEhklNT1ZJxIYgTUlSSkFOQQorSkHEhklNT1ZJxIYgUEVUQVIKK0pBxIZJTU9WScSGIFNURVZPCitKQcSGSU1PVknEhiBWT0pJU0xBVgorSkHEhklNT1ZTS0kgTU9KU0UKK0pBQkxBTk9WIMSQVUtBCitKQUJMQU5PViBEUkFHSUNBCitKQUJMQU5PViBJR05KQVRJSkUKK0pBQkxBTk9WIEpFTEVOQQorSkFCTEFOT1YgTEpVQk9NSVIKK0pBQkxBTk9WIE1JTE9SQUQgRElQTCBJTkcKK0pBQkxBTk9WIFpPUkEKK0pBQkxBTk9WIFpPUkEKK0pBQkxBTk9WScSGIERFU0FOS0EKK0pBQkxBTk9WScSGIFJBVEtPCitKQUNBTk9WScSGIMW9SVZLQQorSkFDQU5PVknEhiBHQUJSSUpFTEEKK0pBQ0FOT1ZJxIYgVkxBRElNSVIKK0pBQ0nFoElOIEFOS0EKK0pBQ0nEhiBEQVJJTktBCitKQUNJxIYgRFJBR0FOCitKQUdFUiBBTkEKK0pBR0VSIE1BUklOCitKQUdFUiBNSUhBSkxPCitKQUdFUiBQQVZBTworSkFHRVRJxIYgQUxFS1NBTkRBUgorSkFHRVRJxIYgTUlMT8WgCitKQUdFVEnEhiBTVEVWQU4KK0pBR0VUScSGIFZFTElNSVIKK0pBR0VUScSGIFZPSklTTEFWCitKQUdJxIYgU0xBVklDQQorSkFHTElDQSBCUkFOS08KK0pBR0xJQ0EgU0xPQk9EQU4KK0pBR05KScSGIERSQUdBTgorSkFHT0RJxIYgQU7EkEVMS08KK0pBR09EScSGIERVxaBBTgorSkFHT0RJxIYgTUlMSUNBCitKQUdPREnEhiBNSVJPU0xBVgorSkFHT0RJxIYgUEVUQVIKK0pBR09EScSGIFJBTktPCitKQUdPREnEhiBWRUxKS08KK0pBR09EScSGIFZMQURPCitKQUdVxaBULUFLS0FEIExBREEKK0pBSEpBIFJFxaBBRAorSkFIVVJBIFZVS0HFoElOCitKQUrEjEFOSU4gQk/FvU8KK0pBSsSMRVZJxIYgQU5HRUxBCitKQUpBR0lOIFJBRE9WQU4KK0pBSkFHSU4gU1BBU09KRQorSkFKQUdJTiBaT1JJQ0EKK0pBSknEhiDEkE9SxJBFIERSCitKQUpJxIYgxJBPUsSQRQorSkFKScSGIERSQUdBTgorSkFKScSGIElMSUpBCitKQUpJxIYgSVZBTktBCitKQUpJxIYgTEFaQVIKK0pBSknEhiBMRU5LQQorSkFKScSGIE1JTEVOQQorSkFKScSGIE1JTElDQQorSkFKScSGIE5JS09MQQorSkFKScSGIFNBVkEKK0pBSknEhiBTVEVWQU4KK0pBSknEhiBTVkVUTEFOQQorSkFKSU4gTEFESVNMQVYKK0pBSklOIE1JUkpBTkEKK0pBSklOIFpMQVRLTworSkFLxaBBIFBJUk/FoEtBCitKQUvFoEVWQUMgRFJBR08KK0pBS8WgScSGIMW9QVJLTworSkFLxaBJxIYgxJBPUsSQRQorSkFLxaBJxIYgxJBPUsSQRQorSkFLxaBJxIYgxJBVUkEKK0pBS8WgScSGIEFOQQorSkFLxaBJxIYgQk9HREFOCitKQUvFoEnEhiBCT0dEQU4KK0pBS8WgScSGIEJPSkFOCitKQUvFoEnEhiBCUkFOS08KK0pBS8WgScSGIERBTkUKK0pBS8WgScSGIERBTkUKK0pBS8WgScSGIERBTkUKK0pBS8WgScSGIERFSkFOCitKQUvFoEnEhiBETUlUQVIKK0pBS8WgScSGIERSQUdBTgorSkFLxaBJxIYgRFXFoEFOS0EKK0pBS8WgScSGIERVxaBBTktBCitKQUvFoEnEhiBEVcWgQU4KK0pBS8WgScSGIERVxaBBTgorSkFLxaBJxIYgRFXFoEFOCitKQUvFoEnEhiBEVcWgQU4KK0pBS8WgScSGIERVxaBBTgorSkFLxaBJxIYgRFXFoEtPCitKQUvFoEnEhiBFTUlMCitKQUvFoEnEhiBJTElKQQorSkFLxaBJxIYgSUxJSkEKK0pBS8WgScSGIElWSUNBCitKQUvFoEnEhiBJVklDQQorSkFLxaBJxIYgSkFEUkFOS0EKK0pBS8WgScSGIEpBU01JTktBCitKQUvFoEnEhiBKRUxFTkEKK0pBS8WgScSGIEpPVkFOS0EKK0pBS8WgScSGIEpPVkFOCitKQUvFoEnEhiBKT1ZBTgorSkFLxaBJxIYgS0FUSUNBCitKQUvFoEnEhiBMSklMSkEKK0pBS8WgScSGIExKVUJJU0FWCitKQUvFoEnEhiBMSlVCT01JUgorSkFLxaBJxIYgTEpVQk9NSVIKK0pBS8WgScSGIExKVUJPTUlSCitKQUvFoEnEhiBMSlVCT01JUgorSkFLxaBJxIYgTUFSS08KK0pBS8WgScSGIE1BUktPCitKQUvFoEnEhiBNQVJLTworSkFLxaBJxIYgTUlKQVQKK0pBS8WgScSGIE1JTEFOCitKQUvFoEnEhiBNSUxBTgorSkFLxaBJxIYgTUlMRU5LTworSkFLxaBJxIYgTUlMRVZBCitKQUvFoEnEhiBNSUxPxaAKK0pBS8WgScSGIE1JTE9SQUQKK0pBS8WgScSGIE1JTE9SQUQKK0pBS8WgScSGIE1JT0RSQUcKK0pBS8WgScSGIE1JUktPCitKQUvFoEnEhiBORUJPSsWgQQorSkFLxaBJxIYgTkVERUxKS08KK0pBS8WgScSGIE5FTkFECitKQUvFoEnEhiBQQVZMRQorSkFLxaBJxIYgUEFWTEUKK0pBS8WgScSGIFBFVEFSCitKQUvFoEnEhiBQRVRBUgorSkFLxaBJxIYtUFJPVsSMSSBCUkFOS0EKK0pBS8WgScSGIFJBREVOS08KK0pBS8WgScSGIFJBREUKK0pBS8WgScSGIFJBREUKK0pBS8WgScSGIFJBREnFoEEKK0pBS8WgScSGIFJBRE9KS08KK0pBS8WgScSGIFJBRE9WQU4KK0pBS8WgScSGIFJBRFVOCitKQUvFoEnEhiBSSVNUTworSkFLxaBJxIYgUk9TQQorSkFLxaBJxIYgUlXFvUlDQQorSkFLxaBJxIYgUlXFvUlDQQorSkFLxaBJxIYgU0FWQQorSkFLxaBJxIYgU0xPQk9EQU4KK0pBS8WgScSGIFNNSUxKQQorSkFLxaBJxIYgU1RFVkFOCitKQUvFoEnEhiBTVkVUS08KK0pBS8WgScSGIFNWRVRMQU5BIERJUEwgUEgKK0pBS8WgScSGIFRPTUlTTEFWCitKQUvFoEnEhiBWQVNJTElKRQorSkFLxaBJxIYgVkVMSU1JUgorSkFLxaBJxIYgVkVSQQorSkFLxaBJxIYgVkxBREEKK0pBS8WgScSGIFZMQURJTUlSCitKQUvFoEnEhiBWT0pJU0xBVgorSkFLQUIgREXFvUUKK0pBS0FCIEpPxb1FRgorSkFLQUIgUEFWRUwKK0pBS0XFoEVWScSGIERSQUdBTgorSkFLRcWgRVZJxIYgTklLTworSkFLScWgQSBJxaBUVkFOCitKQUtJxIYgxJBPUsSQRQorSkFLScSGIERBTklDQQorSkFLScSGIERBUkEKK0pBS0nEhiBERVNBTktBCitKQUtJxIYgTUlMQU5LQQorSkFLScSGIE1JT0RSQUcKK0pBS0nEhiBOSUtPTEEKK0pBS0nEhiBTVEVWQU4KK0pBS0nEhiBWSURBCitKQUtJQ0EgxIxFRE8KK0pBS0lDQSBJTElKQQorSkFLSU1PViBTTEFWS08gRFIgTEVLQVIKK0pBS0lNT1ZBLUdBWkVQT1ZBIEpVTEtBIERSCitKQUtJTU9WU0tJIEJMQUdPSgorSkFLSU1PVlNLSSBCT0dPU0xBVgorSkFLSU1PVlNLSSBCT1JLTworSkFLSU1PVlNLSSBEQU5FCitKQUtMScSGIElWQU4KK0pBS09CIEpPxaBLQQorSkFLT0IgSk/FvUVGCitKQUtPQiBMQUpPxaAKK0pBS09CQUMgxJBVUsSQSUNBCitKQUtPQkkgQk9SSVMKK0pBS09CSSBUQVRKQU5BCitKQUtPQkkgVklMTU/FoAorSkFLT0JPVknEhiBGUkFOSk8KK0pBS09CUyBJxaBUVkFOCitKQUtPTknEhiBEUkFHT1NMQVYgRFIKK0pBS09OScSGIEpBU01JTkEKK0pBS09OScSGIE1JTEFOIERJUEwgT0VDCitKQUtPTknEhiBSQURNSUxBCitKQUtPUMSMRVZJxIYgQlJBTktBCitKQUtPUE9WScSGIEJSQU5JU0xBVkEKK0pBS09QT1ZJxIYgTUlST1NMQVYKK0pBS09QT1ZJxIYgVkxBRElNSVIKK0pBS09USU4gxb1JVktPCitKQUtPVElOIEtPU1RBCitKQUtPVElOIFBMRU1FTktBCitKQUtPViBTQUxBTVVOCitKQUtPVkFDIElWQU4KK0pBS09WScSGIFJBREUKK0pBS09WTEpFViDFvUFSS08KK0pBS09WTEpFViDEkFVSQQorSkFLT1ZMSkVWIMSQVVJJQ0EKK0pBS09WTEpFViBBTEVLU0VKCitKQUtPVkxKRVYgREFOSUNBCitKQUtPVkxKRVYgRFJBR0FOCitKQUtPVkxKRVYgRFXFoEFOCitKQUtPVkxKRVYgSVZBTgorSkFLT1ZMSkVWIEpFRlJFTQorSkFLT1ZMSkVWIEtBVEEKK0pBS09WTEpFViBLT1NUQQorSkFLT1ZMSkVWIEtSSVNUSUZPUgorSkFLT1ZMSkVWIE1BUklOQQorSkFLT1ZMSkVWIE1JTE/FoAorSkFLT1ZMSkVWIE1JTE/FoAorSkFLT1ZMSkVWIE1JUk9TTEFWCitKQUtPVkxKRVYgUkFET1ZBTgorSkFLT1ZMSkVWIFNMT0JPREFOCitKQUtPVkxKRVYgU1ZFVE9aQVIKK0pBS09WTEpFViBWTEFEQQorSkFLT1ZMSkVWIFpMQVRPSkUKK0pBS09WTEpFVknEhiDFvUlWQU4KK0pBS09WTEpFVknEhiDFvUlWT1JBRAorSkFLT1ZMSkVWScSGIMSQT1LEkEUKK0pBS09WTEpFVknEhiDEkE9SxJBPCitKQUtPVkxKRVZJxIYgxJBVUsSQSU5LQQorSkFLT1ZMSkVWScSGIEFMRUtTQU5EQVIKK0pBS09WTEpFVknEhiBBTkEKK0pBS09WTEpFVknEhiBCT8W9QU5BCitKQUtPVkxKRVZJxIYgQk9HREFOCitKQUtPVkxKRVZJxIYgQk9SScWgQQorSkFLT1ZMSkVWScSGIEJSQU5LQQorSkFLT1ZMSkVWScSGIERBTUpBTgorSkFLT1ZMSkVWScSGIERBTUpBTgorSkFLT1ZMSkVWScSGIERJVk5BCitKQUtPVkxKRVZJxIYgRFJBR0FOCitKQUtPVkxKRVZJxIYgRFJBR09TTEFWCitKQUtPVkxKRVZJxIYgRU1JTElKQQorSkFLT1ZMSkVWScSGIEdPSktPCitKQUtPVkxKRVZJxIYgR1JPWkRBTkEKK0pBS09WTEpFVknEhiBJR05KQVQKK0pBS09WTEpFVknEhiBKQU5KQQorSkFLT1ZMSkVWScSGIEpPU08KK0pBS09WTEpFVknEhiBKT1ZBTgorSkFLT1ZMSkVWScSGIEpPVkFOCitKQUtPVkxKRVZJxIYgSk9WTworSkFLT1ZMSkVWScSGIEpPVk8KK0pBS09WTEpFVknEhiBMQVpBUgorSkFLT1ZMSkVWScSGIExKSUxKQU5BCitKQUtPVkxKRVZJxIYgTEpVQklOS08KK0pBS09WTEpFVknEhiBMVUtBCitKQUtPVkxKRVZJxIYgTUFSS08KK0pBS09WTEpFVknEhiBNSUxBTkEKK0pBS09WTEpFVknEhiBNSUxBTgorSkFLT1ZMSkVWScSGIE1JTEFOCitKQUtPVkxKRVZJxIYgTUlMRU5BCitKQUtPVkxKRVZJxIYgTUlMScSGCitKQUtPVkxKRVZJxIYgTUlMSUNBCitKQUtPVkxKRVZJxIYgTUlMSUNBCitKQUtPVkxKRVZJxIYgTUlMSVZPSiBNUiBQSAorSkFLT1ZMSkVWScSGIE1JTEpBTkEKK0pBS09WTEpFVknEhiBNSUxPxaAKK0pBS09WTEpFVknEhiBNSUxPVkFOCitKQUtPVkxKRVZJxIYgTUlMVVRJTgorSkFLT1ZMSkVWScSGIE1JUkpBTkEKK0pBS09WTEpFVknEhiBNSVJLTworSkFLT1ZMSkVWScSGIE1JUk9TTEFWCitKQUtPVkxKRVZJxIYgTUlUQQorSkFLT1ZMSkVWScSGIE5JS09MQQorSkFLT1ZMSkVWScSGIE9CUkFECitKQUtPVkxKRVZJxIYgUEFKQQorSkFLT1ZMSkVWScSGIFJBREnFoEEKK0pBS09WTEpFVknEhiBSQURJVk9KCitKQUtPVkxKRVZJxIYgUkFET0pLTworSkFLT1ZMSkVWScSGIFNBVkEKK0pBS09WTEpFVknEhiBTSU1PCitKQUtPVkxKRVZJxIYgU0xPQk9EQU4KK0pBS09WTEpFVknEhiBTT05KQQorSkFLT1ZMSkVWScSGIFNURVZBTgorSkFLT1ZMSkVWScSGIFRBVEpBTkEKK0pBS09WTEpFVknEhiBWQVNBCitKQUtPVkxKRVZJxIYgVkFTQQorSkFLT1ZMSkVWScSGIFZBU0lMSUpFCitKQUtPVkxKRVZJxIYgVklLVE9SCitKQUtPVkxKRVZJxIYgVklLVE9SCitKQUtPVkxKRVZJxIYgVklLVE9SCitKQUtPVkxKRVZJxIYgWkRSQVZLTworSkFLT1ZPVknEhiBEVcWgQU4KK0pBS1XFoCBNSVJKQU5BCitKQUtVQkVDIMSQVVJBCitKQUtVQkVDIExBRElTTEFWCitKQU1BIE5BREEKK0pBTUJPUiBBTkRSRUEKK0pBTUJPUiBEQU5JRUxBCitKQU1CT1IgSU1SRQorSkFNQk9SIE1JSEFMSgorSkFNQlJVxaBJxIYgRlJBTkpPCitKQU1JTkEgTUlMT1ZBTgorSkFNSU5BIFJBVEtPCitKQU1SSUsgxJBPUsSQRQorSkFNUklLIEpFTEVOQQorSkFNUklLIExKVUJJQ0EKK0pBTVJJSyBPVE8KK0pBTsSMQSBERUpBTiBEUgorSkFOxIxBIEtPU1RBIERSCitKQU7EjEEgTEpVQklDQQorSkFOxIxJxIYgQklMSkFOQQorSkFOxIxJxIYgQk/FvUFOQQorSkFOxIxJxIYgQk9HREFOCitKQU7EjEnEhiBESU1JVFJJSkUKK0pBTsSMScSGIERSQUdJTkpBCitKQU7EjEnEhiBEUkFHT1NMQVZBCitKQU7EjEnEhiBEUkFHT1NMQVYKK0pBTsSMScSGIERVxaBBTgorSkFOxIxJxIYgRFXFoEFOCitKQU7EjEnEhiBHT1JEQU5BCitKQU7EjEnEhiBHT1JJQ0EKK0pBTsSMScSGIEpFUk9TSU0KK0pBTsSMScSGIExKVUJJQ0EKK0pBTsSMScSGIE1JTE/FoAorSkFOxIxJxIYgTUlST1NMQVYKK0pBTsSMScSGIE1MQURFTgorSkFOxIxJxIYgTklLT0xBCitKQU7EjEnEhiBQRVJBCitKQU7EjEnEhiBQRVRBUgorSkFOxIxJxIYgUkFET1ZBTgorSkFOxIxJxIYgU0FWQQorSkFOxIxJxIYgU1ZFVElTTEFWCitKQU7EjEnEhiBTVkVUSVNMQVYKK0pBTsSMScSGIFRJSE9NSVIKK0pBTsSMScSGIFRJTktBCitKQU7EjEnEhiBWRUxJQk9SCitKQU7EjEnEhiBWSU5LQQorSkFOxIxJxIYgVkxBRElNSVIKK0pBTsSMScSGIFZMQVNUQQorSkFOxIxVUknEhiBBTEVLU0FOREFSCitKQU7EjFVSScSGIERBUklOS0EKK0pBTsSMVVJJxIYgRFXFoEFOCitKQU7EjFVSScSGIEpPVkFOCitKQU7EjFVSScSGIExBWkFSCitKQU7EjFVSScSGIExFTktBCitKQU7EjFVSScSGIE1JUkpBTkEKK0pBTsSMVVJJxIYgU0FWQQorSkFOxb1FS09WScSGIE1JTEVWS0EKK0pBTsW9RUtPVknEhiBPTEdBCitKQU7FvUVMSiBBTlRPTgorSkFOQcSMRUsgxJBPUsSQRQorSkFOQcSMRUsgS0FUSUNBCitKQU5BxIxLT1ZJxIYgU1RPSUwKK0pBTkHEhiBKQU5PxaAKK0pBTkHEhiBLQVJPTEoKK0pBTkNJxIYgQkxBR09KRQorSkFOQ0nEhiBQUkVEUkFHCitKQU5EUknEhiDEkFVSSUNBCitKQU5EUknEhiBCT0dEQU4KK0pBTkRSScSGIEpBTkRSSUpBCitKQU5EUknEhiBNQVJJTktPCitKQU5EUknEhiBNQVJLTworSkFORFJJxIYgTUFSS08KK0pBTkRSScSGIE1JxIZPCitKQU5EUknEhiBNSUxFTkEKK0pBTkRSScSGIE1JTElOQQorSkFORFJJxIYgTUlMS0EKK0pBTkRSScSGIE1JTE9SQUQKK0pBTkRSScSGIE1JTE9SQUQKK0pBTkRSScSGIE1JUk9TTEFWCitKQU5EUknEhiBNSVJPU0xBVgorSkFORFJJxIYgTUlUQVIKK0pBTkRSScSGIE1PTcSMSUxPCitKQU5EUknEhiBORURFTEpLTworSkFORFJJxIYgUkFET1ZBTgorSkFORFJJxIYgUkFUS08KK0pBTkRSScSGIFJJU1RPCitKQU5EUknEhiBTSU1PCitKQU5EUknEhiBTTE9CT0RBTgorSkFORFJJxIYgU1JFVEVOCitKQU5EUknEhiBTVEFOS08KK0pBTkRSScSGIFNUQU5LTworSkFORFJJxIYgU1RBTktPCitKQU5EUknEhiBVR0xKRcWgQQorSkFORFJJxIYgVklEQQorSkFORFJJxIYgVklOS0EKK0pBTkRSScSGIFpPUkFOCitKQU5EUknEhiBaT1JBTgorSkFORcWgIE5FVkVOCitKQU5FR0EgU05Fxb1BTkEKK0pBTkVWIEJMQUdPSkUgRElQTCBJTkcKK0pBTkVWU0tJIEFMRUtTQU5EQVIKK0pBTknEjEnEhiBCTEHFvU8KK0pBTknEjEnEhiBCT8W9QQorSkFOScSMScSGIEpFTEVOQQorSkFOScSMScSGIE1JTEVWQQorSkFOScSMScSGIE1JUktPCitKQU5JxIxJxIYgUkFET0pJQ0EKK0pBTknEjEnEhiBTVEVWTworSkFOScSGIMSMQVNMQVYgRElQTCBJTkcKK0pBTknEhiDFvUlWT1JBRAorSkFOScSGIEFMRUtTQU5EQVIKK0pBTknEhiBBTsSQRUxLTworSkFOScSGIERVxaBBTgorSkFOScSGIERVxaBLTworSkFOScSGLUhJTFQgR09SREFOQQorSkFOScSGIElSRU5BCitKQU5JxIYgSVZBTiBEUgorSkFOScSGIE1JTElTQVYKK0pBTknEhiBOQURBCitKQU5JxIYgUkFET0pLQQorSkFOScSGIFNMT0JPREFOCitKQU5JxIYgVkxBRElNSVIKK0pBTknEhklKRVZJxIYgTUlMRU5LTworSkFOScSGSUpFVknEhiBNSUxPxaAKK0pBTknEhklKRVZJxIYgTUlSS08KK0pBTknEhklKRVZJxIYgTU9NxIxJTE8KK0pBTknEhklKRVZJxIYgTkFERcW9REEKK0pBTknEhklKRVZJxIYgT1pSRU5LQQorSkFOScSGSUpFVknEhiBSQVRLTworSkFOScSGSUpFVknEhiBTT0ZJSkEKK0pBTknEhklKRVZJxIYgVklUT01JUgorSkFOScSGSU4gQU5HRUxJTkEKK0pBTknEhklOIElMSUpBCitKQU5JQ0tJIFNUQU5JTUlSCitKQU5JSyBGRVJFTkMKK0pBTkpBTklOIEJSQU5LTworSkFOSkFOSU4gU0lNTworSkFOSkFUT1ZJxIYgREVKQU4KK0pBTkpBVE9WScSGIEdPUklDQQorSkFOSkFUT1ZJxIYgTUFORQorSkFOSkFUT1ZJxIYgTUlMQU4KK0pBTkpBVE9WScSGIE1JUktPCitKQU5KQVRPVknEhiBORURFTEpLTworSkFOSkFUT1ZJxIYgTklLT0xBCitKQU5KQVRPVknEhiBTTEFWSUNBCitKQU5KQVRPVknEhiBTTEFWSUNBCitKQU5KQVRPVknEhiBWRVJBCitKQU5KRVRPViBSQURBCitKQU5KRVRPVknEhiBCUkFOS08KK0pBTkpFVE9WScSGIE5FQk9KxaBBCitKQU5KRVRPVknEhiBTTEFWSUNBCitKQU5KRVRPVknEhiBTTE9CT0RBTgorSkFOSkVWScSGIERSQUdPU0xBVgorSkFOSkVWScSGIEtTRU5JSkEKK0pBTkpFVknEhiBaT1JBTgorSkFOSkVWScSGIFpPUkFOCitKQU5KScSMScSGIFNJTU8KK0pBTkpJxaAgSkVMSUNBCitKQU5KScSGIMSMRURPTUlSCitKQU5KScSGIMW9RUxKS08KK0pBTkpJxIYgxb1JVktBCitKQU5KScSGIMW9SVZLTworSkFOSknEhiDEkE9SxJBFIERSCitKQU5KScSGIEJPxaBLTworSkFOSknEhiBEQU5JQ0EKK0pBTkpJxIYgRFJBR09NSVIgRElQTCBPRUMKK0pBTkpJxIYgSUxJSkEKK0pBTkpJxIYgSkVMQQorSkFOSknEhiBKRVZSRU0KK0pBTkpJxIYgSkVWVE8KK0pBTkpJxIYgSk9WQU4KK0pBTkpJxIYgSk9WTworSkFOSknEhiBKT1ZPCitKQU5KScSGIEpPVk8KK0pBTkpJxIYgS1NFTklKQQorSkFOSknEhiBMSlVCT01JUgorSkFOSknEhiBMVUtBCitKQU5KScSGIE1BUklKQQorSkFOSknEhiBNQVJLTworSkFOSknEhiBNSUxJQ0EKK0pBTkpJxIYgTUlMSVZPSgorSkFOSknEhiBNSUxLQQorSkFOSknEhiBNSUxPTUlSCitKQU5KScSGIE1MQURFTgorSkFOSknEhiBOQVRBxaBBCitKQU5KScSGIE5FQk9KxaBBCitKQU5KScSGIFJBRE9WQU4KK0pBTkpJxIYgU0FWTworSkFOSknEhiBTVEVWQU4KK0pBTkpJxIYgVklUT01JUgorSkFOSknEhiBWT0pJU0xBViBNUgorSkFOSknEhiBWT0pLTworSkFOSknEhiBWVUtPVEEKK0pBTkpJTiBCT0dPTEpVQgorSkFOSklOIERBTUpBTgorSkFOSklOIExBWkFSCitKQU5KSU4gTUlMSVZPSgorSkFOSklOIFJBRElWT0oKK0pBTkpJTiBTTkXFvUFOQQorSkFOSk/FoCBaT1JBTgorSkFOSk/FoEVWScSGIEJSQU5JU0xBVgorSkFOSk/FoEVWScSGIE1JTElDQQorSkFOSk/FoEVWScSGIFNURVZBTktBCitKQU5KVcWgRVZJxIYgQk9TSUxKS0EKK0pBTkpVxaBFVknEhiBHT0pLTworSkFOSlXFoEVWScSGIEpPS0lDQQorSkFOSlXFoEVWScSGIE1JUkEKK0pBTkpVxaBFVknEhiBORURFTEpLTworSkFOSlXFoEVWScSGIE5FREVMSktPCitKQU5KVcWgRVZJxIYgU1RPSkFOCitKQU5LQSDFoEFORE9SCitKQU5LQSBJVkFOCitKQU5LQU5KIFZMQURPCitKQU5LScSGIEtSSVNUSU5BCitKQU5LTyBKQU5PxaAKK0pBTktPViBCT1JJU0xBVgorSkFOS09WIEJPUklTTEFWCitKQU5LT1YgQk9SSVNMQVYKK0pBTktPViBCUkFOSVNMQVYKK0pBTktPViBEUkFHSUNBCitKQU5LT1YgRFXFoEFOCitKQU5LT1YgSVZBTgorSkFOS09WIEpFTElDQQorSkFOS09WIEpPVkFOCitKQU5LT1YgSk9WSUNBCitKQU5LT1YgTUlMQU4KK0pBTktPViBNSUxJSkFOQQorSkFOS09WIE1JT01JUgorSkFOS09WIE1JVEEKK0pBTktPViBNSVRLTworSkFOS09WIE5BREEKK0pBTktPViBORURFTEpLTworSkFOS09WIE5JS09MQQorSkFOS09WIE5JS09MQQorSkFOS09WIE5PVktBCitKQU5LT1YgUFJFRFJBRworSkFOS09WIFJBRElWT0oKK0pBTktPViBSQURPU0xBVkEKK0pBTktPViBSQU7EkEVMCitKQU5LT1YgU0xPQk9EQU4KK0pBTktPViBTTE9CT0RBTgorSkFOS09WIFNNSUxKS0EKK0pBTktPViBTUEFTT0pBCitKQU5LT1YgU1JFRE9KRQorSkFOS09WIFRJSE9NSVIKK0pBTktPViBWRVJBCitKQU5LT1YgWkFHT1JLQSBEUgorSkFOS09WScSGIMSMQVNMQVYKK0pBTktPVknEhiDEjEVETworSkFOS09WScSGIMSMRURPCitKQU5LT1ZJxIYgxb1BUktPIERJUEwgSU5HCitKQU5LT1ZJxIYgxb1BUktPCitKQU5LT1ZJxIYgxb1JVktPCitKQU5LT1ZJxIYgxb1JVk9SQUQKK0pBTktPVknEhiDFvUlWT1JBRAorSkFOS09WScSGIMW9SVZPUkFECitKQU5LT1ZJxIYgxJBPUsSQRQorSkFOS09WScSGIMSQT1LEkEUKK0pBTktPVknEhiDEkFVSxJBJQ0EKK0pBTktPVknEhiDEkFVSQQorSkFOS09WScSGIEFMRUtTQU5EQVIKK0pBTktPVknEhiBBTEVLU0FOREFSCitKQU5LT1ZJxIYgQU5BCitKQU5LT1ZJxIYgQU5JQ0EKK0pBTktPVknEhiBBTktBCitKQU5LT1ZJxIYgQk/FoEtPCitKQU5LT1ZJxIYgQk/FoEtPCitKQU5LT1ZJxIYgQk/FvUlEQVIKK0pBTktPVknEhiBCT8W9SURBUgorSkFOS09WScSGIEJPxb1PCitKQU5LT1ZJxIYgQk9HT0xKVUIKK0pBTktPVknEhiBCT1JJVk9KIERSIExFS0FSCitKQU5LT1ZJxIYgQlJBTktPCitKQU5LT1ZJxIYgQlJBVElTTEFWCitKQU5LT1ZJxIYgREFSQQorSkFOS09WScSGIERJTUlUUklKRQorSkFOS09WScSGIERJTUlUUklKRQorSkFOS09WScSGIERJTUlUUklKRQorSkFOS09WScSGIERPQlJJVk9KRQorSkFOS09WScSGIERPQlJJVk9KCitKQU5LT1ZJxIYgRFJBR0FOQQorSkFOS09WScSGIERSQUdBTgorSkFOS09WScSGIERSQUdBTgorSkFOS09WScSGIERSQUdBTgorSkFOS09WScSGIERSQUdJTkpBCitKQU5LT1ZJxIYgRFJBR09NSVIKK0pBTktPVknEhiBEUkFHT1NMQVYKK0pBTktPVknEhiBEVcWgQU5LQQorSkFOS09WScSGIERVxaBBTgorSkFOS09WScSGIERVxaBBTgorSkFOS09WScSGIERVxaBJQ0EKK0pBTktPVknEhiBHT1JEQU5BCitKQU5LT1ZJxIYgR09SREFOQQorSkFOS09WScSGIEhSSVNUSVZPSkUKK0pBTktPVknEhiBJR05KQVQKK0pBTktPVknEhiBKRUxJQ0EKK0pBTktPVknEhiBKT1JEQU4KK0pBTktPVknEhiBKT1ZBTgorSkFOS09WScSGIEpPVkFOCitKQU5LT1ZJxIYgSk9WQU4KK0pBTktPVknEhiBKT1ZBTgorSkFOS09WScSGIEpVTElKQU5BCitKQU5LT1ZJxIYgS0FMTUFOIERJUEwgSU5HCitKQU5LT1ZJxIYgS0FMTUFOCitKQU5LT1ZJxIYgS0FUSUNBCitKQU5LT1ZJxIYgS09WSUxKS0EKK0pBTktPVknEhiBLUlNUQQorSkFOS09WScSGLUtVWk1BTsSMRVYgT0xJVkVSQQorSkFOS09WScSGIExBU0xPCitKQU5LT1ZJxIYgTEFTTE8KK0pBTktPVknEhiBMQVpBUgorSkFOS09WScSGIExBWkFSCitKQU5LT1ZJxIYgTEpJTEpBTkEKK0pBTktPVknEhiBMSlVCSUNBCitKQU5LT1ZJxIYgTEpVQklDQQorSkFOS09WScSGIExKVUJJQ0EKK0pBTktPVknEhiBMSlVCT01JUgorSkFOS09WScSGIE1BUkEKK0pBTktPVknEhiBNQVJJSkFOCitKQU5LT1ZJxIYgTUFSSUpBCitKQU5LT1ZJxIYgTUFSSUpBCitKQU5LT1ZJxIYgTUFSSUpBCitKQU5LT1ZJxIYgTUFSSUpBCitKQU5LT1ZJxIYgTUFSSU5BCitKQU5LT1ZJxIYgTUFSS08KK0pBTktPVknEhiBNRUxBTklKQQorSkFOS09WScSGIE1JxIZBCitKQU5LT1ZJxIYgTUnEhkEKK0pBTktPVknEhiBNSUxBTgorSkFOS09WScSGIE1JTEVOQQorSkFOS09WScSGIE1JTEVOS08KK0pBTktPVknEhiBNSUxFTktPCitKQU5LT1ZJxIYgTUlMSUNBCitKQU5LT1ZJxIYgTUlMSUNBCitKQU5LT1ZJxIYgTUlMSUpBTkEKK0pBTktPVknEhiBNSUxJTktPCitKQU5LT1ZJxIYgTUlMSVNBVgorSkFOS09WScSGIE1JTElWT0pFCitKQU5LT1ZJxIYgTUlMT0pFCitKQU5LT1ZJxIYgTUlMT0pJQ0EKK0pBTktPVknEhiBNSUxPTUlSCitKQU5LT1ZJxIYgTUlMT1JBRAorSkFOS09WScSGIE1JTE9SQUQKK0pBTktPVknEhiBNSUxPUkFECitKQU5LT1ZJxIYgTUlMT1NBVgorSkFOS09WScSGIE1JTE9TQVYKK0pBTktPVknEhiBNSUxPU0FWCitKQU5LT1ZJxIYgTUlMVVRJTgorSkFOS09WScSGIE1JTFVUSU4KK0pBTktPVknEhiBNSUxVVElOCitKQU5LT1ZJxIYgTUlMVVRJTgorSkFOS09WScSGIE1JUkpBTkEKK0pBTktPVknEhiBNSVJPTEpVQgorSkFOS09WScSGIE1JVEFSCitKQU5LT1ZJxIYgTUxBREVOCitKQU5LT1ZJxIYtTVJLScSGIFpPUkEgRElQTCBJTkcKK0pBTktPVknEhiBOQURBCitKQU5LT1ZJxIYgTkFEQQorSkFOS09WScSGIE5BU1RBCitKQU5LT1ZJxIYgTkVOQUQKK0pBTktPVknEhiBOSUtPTEEKK0pBTktPVknEhiBPQlJBRAorSkFOS09WScSGIFBBVkxFCitKQU5LT1ZJxIYgUEFWTEUKK0pBTktPVknEhiBQQVZMRQorSkFOS09WScSGIFBFVEFSCitKQU5LT1ZJxIYgUEVUQVIKK0pBTktPVknEhiBQRVRBUgorSkFOS09WScSGIFBSVk9TTEFWCitKQU5LT1ZJxIYgUFJWT1NMQVYKK0pBTktPVknEhiBSQURJVk9KRQorSkFOS09WScSGIFJBRE9NSVIKK0pBTktPVknEhiBSQURPU0xBVgorSkFOS09WScSGIFJBRE9TTEFWCitKQU5LT1ZJxIYgUkFET1ZBTgorSkFOS09WScSGIFJBSktPCitKQU5LT1ZJxIYgUkFKS08KK0pBTktPVknEhiBSQU5LTworSkFOS09WScSGIFJBVEtPCitKQU5LT1ZJxIYgUk9TQQorSkFOS09WScSGIFJVxb1BCitKQU5LT1ZJxIYgU0xBVklDQQorSkFOS09WScSGIFNMQVZLTworSkFOS09WScSGIFNMQVZLTworSkFOS09WScSGIFNMT0JPREFOCitKQU5LT1ZJxIYgU0xPQk9EQU4KK0pBTktPVknEhiBTTE9CT0RBTgorSkFOS09WScSGIFNMT0JPREFOCitKQU5LT1ZJxIYgU09GSUpBCitKQU5LT1ZJxIYgU1BBU0EKK0pBTktPVknEhiBTUEFTT0pFCitKQU5LT1ZJxIYgU1BPTUVOS0EKK0pBTktPVknEhiBTUkJPTEpVQgorSkFOS09WScSGIFNUQU5LTworSkFOS09WScSGIFNURVZBTgorSkFOS09WScSGIFNURVZBTgorSkFOS09WScSGIFNURVZBTgorSkFOS09WScSGIFNUT0pBTktBCitKQU5LT1ZJxIYgU1ZFVElTTEFWCitKQU5LT1ZJxIYgU1ZFVE9aQVIKK0pBTktPVknEhiBUSUJPUgorSkFOS09WScSGIFRPRE9SCitKQU5LT1ZJxIYgVE9ET1IKK0pBTktPVknEhiBUT0RPUgorSkFOS09WScSGIFZFU05BCitKQU5LT1ZJxIYgVklUT01JUgorSkFOS09WScSGIFZJVE9NSVIKK0pBTktPVknEhiBWTEFESU1JUgorSkFOS09WScSGIFZVS0nEhgorSkFOS09WScSGIFZVS0lDQQorSkFOS09WScSGIFZVS09NQU4KK0pBTktPVknEhiBaTEFUT0pFCitKQU5LT1ZJxIYgWk9MVEFOCitKQU5LT1ZJxIYgWk9SQU4KK0pBTktPVknEhiBaT1JBTgorSkFOS09WScSGIFpPUklDQQorSkFOS09WScSGIFpPUklDQQorSkFOS09WScSGIFpPUklDQQorSkFOS09WScSGIFpPUktBCitKQU5LVUxPViBEQU5JQ0EKK0pBTktVTE9WLURFTUpFTiBNQUpBCitKQU5LVUxPViBEUkFHScWgQSBNUiBQSAorSkFOS1VMT1YgU1RFVkFOCitKQU5LVUxPVlNLSSBNQVJJSkEKK0pBTktVTE9WU0tJIFBFVEFSCitKQU5PIEpVTElKQQorSkFOT8WgRVYgQklTRVJLQQorSkFOT8WgRVYgRFJBR0lDQQorSkFOT8WgRVYgTEpJTEpBTkEKK0pBTk/FoEVWIE1JTEFOCitKQU5PxaBFViBNSUxFTkEKK0pBTk/FoEVWIE1JTEVOS08KK0pBTk/FoEVWScSGIFJBRElWT0oKK0pBTk/FoEkgRlJBTkNJxaBLQQorSkFOT8WgSSBJTE9OQQorSkFOT8WgSSBLQVJMTworSkFOT8WgSSBMQVNMTworSkFOT8WgSSBNQVJHSVRBCitKQU5PxaBJIE1JSEFMSgorSkFOT8WgSSBNSUhBTEoKK0pBTk/FoEkgVEVSRVpBCitKQU5PxaBJIFpPTFRBTgorSkFOT1ZBQyDFvUlWT0pJTgorSkFOT1ZJxIYgTEpJTEpBCitKQU5VxaBLTyBJxaBUVkFOCitKQU5VUyBNSUxLQQorSkFOVVMgVk9JU0xBVgorSkFOVVpPVknEhiBEVcWgQU5LQQorSkFOVVpPVknEhiBKT0xBTgorSkFOVVpPVknEhiBNSUxPVkFOCitKQU5VWk9WScSGIE1JUkFMSlVCCitKQU5VWk9WScSGIE5PVklDQSBEUgorSkFOVVpPVknEhiBTTE9CT0RBTgorSkFOVVpPVknEhiBTVkVUTEFOQQorSkFQVU5Exb1BIExBWkEKK0pBUFVORMW9ScSGIMSQT1LEkEUKK0pBUFVORMW9ScSGIEdPUkRBTkEKK0pBUFVORMW9ScSGIE1JUktPCitKQVBVTkTFvUnEhiBOSUtPTEEKK0pBUFVORMW9ScSGIE5JS09MQQorSkFQVU5Exb1JxIYgTklLT0xBCitKQVBVTkTFvUnEhiBTQVZBCitKQVJBSyBJVkFOCitKQVJBTUFaIERJSkFOQQorSkFSQU1BWiBNSUxPVkFOCitKQVJBTUFaIE5JS09MQQorSkFSQyBBTkdFTAorSkFSSSBQUk9LQQorSkFSScSGIMSMRURPTUlSCitKQVJJxIYgQUxFS1NBTkRBUgorSkFSScSGIEFWRE8KK0pBUknEhiBCT0pBTgorSkFSScSGIEJSQU5LTworSkFSScSGIERBTklFTEEKK0pBUknEhiBERVNBTktBCitKQVJJxIYgRFJBR0FOQQorSkFSScSGIERSQUdBTgorSkFSScSGIERVxaBBTiBEUgorSkFSScSGIEtSSVNUSU5BCitKQVJJxIYgS1JJU1RJTkEKK0pBUknEhiBMSklMSkFOQQorSkFSScSGIExKSUxKQU5BCitKQVJJxIYgTUFSSUpBCitKQVJJxIYgTUFSSUpBCitKQVJJxIYgTUlMQU4KK0pBUknEhiBNSUxBTgorSkFSScSGIE1JTE9KS08KK0pBUknEhiBNSVJBCitKQVJJxIYgU0xPQk9EQU4KK0pBUknEhiBaT1JBTgorSkFSTUlOQUMgQlJBTktPCitKQVJPxaBFTktPIEtBVEFSSU5BCitKQVJPxaBFVlNLSSBBTlRPTgorSkFST8WgRVZTS0kgSVZJQ0EKK0pBUk/FoEVWU0tJIFBBVkVMCitKQVNFTk9WU0tJIEFOQQorSkFTScSGIERJVk5BCitKQVNJxIYgSkFOS08KK0pBU0nEhiBNQU5EQQorSkFTScSGIE1JUktPCitKQVNJxIYgVkVSSUNBCitKQVNJS0EgUlXFvUEKK0pBU0lLQSBTVE9KQU5LQQorSkFTSUtJxIYgTUlMT1JBRAorSkFTTUlOT1ZJxIYgSkFNSU4KK0pBU05JxIYgTUlMQU4gRFIgTEVLQVIKK0pBU05JxIYgTUlMQU4KK0pBU05JxIYgTUlMT01JUktBCitKQVNOScSGIFNJTknFoEEKK0pBU05JR0VSIEFMRUtTQU5EQVIKK0pBVEnEhiBBTsSQRUxJSkEKK0pBVEnEhiBEUkFHQU4KK0pBVEnEhiBHUkFESU1JUgorSkFUScSGIFNURVZBTgorSkFVS09WScSGIERSQUdJxaBBCitKQVVLT1ZJxIYgUEVKS0EKK0pBVVMgVkFMVEVSCitKQVZOSSBQRVRBUgorSkFWT1JBTiBJVkFOCitKQVZPUklOQSDEkFVSQQorSkFWT1JJTkEgTEpJTEpBTkEKK0pBVk9SSU5BIE1JTEUKK0pBVk9SSU5BIFNJTU8KK0pBVk9STklLIEJPU0lMSktBCitKQVZPUk5JSyBQQVZFTAorSkFaScSGIERBTklMTworSkFaScSGIElWQU5LQQorSkFaScSGIExBWkEKK0pBWknEhiBMSlVCT01JUgorSkFaScSGIE1BUklOS08KK0pBWknEhiBNSVJPU0xBVgorSkFaScSGLVNBVklOIFRBVEpBTkEKK0pBWknEhiBTVkVUTEFOQQorSkFaVknEhiBBTktBCitKRcSMSU5BQyBNSUxBTgorSkXEjElOQUMgTUlMT1JBRAorSkXEjElOQUMgVkVSQQorSkXEjE1FTklDQSBBTEVLU0FOREFSCitKRcSMTUVOSUNBIEFMRUtTQU5EQVIKK0pFxIxNRU5JQ0EgSkVMRU5BCitKRcSMTUVOSUNBIE1JTE/FoAorSkXEjE1FTklDQSBWTEFESU1JUgorSkXFoEnEhiDFvUlWS0EKK0pFxaBJxIYgQU7EkEVMS08KK0pFxaBJxIYgREFOSUpFTEEKK0pFxaBJxIYgSlVMS0EKK0pFxaBJxIYgTUlMQU4KK0pFxaBJxIYgTUlPRFJBRworSkXFoEnEhiBNSVJPU0xBVkEKK0pFxaBJxIYgU1RFVkFOCitKRcWgScSGIFpPUkFOCitKRcW9IERSQUdBTgorSkXFvSBHT1NQT0pJTktBCitKRcW9IE1JTE9SQUQKK0pFxb0gU0xPQk9EQU4KK0pFxb0gVFJJVk8KK0pFxb1FSyBNSUxJVk9KCitKRUNLT1YgTkFEQQorSkVERVJBTiBKT1NJUAorSkVERVJBTiBKT1NJUAorSkVGScSGIEdPUkFOCitKRUZURU5JxIYgxaBQSVJPCitKRUZURU5JxIYgVkxBRE8KK0pFRlRJxIYgxb1BUktPCitKRUZUScSGIEJJTEpBTkEKK0pFRlRJxIYgQk/FvUlEQVIKK0pFRlRJxIYgQk9SSVNMQVYgRElQTCBJTkcKK0pFRlRJxIYgQlJBTktPCitKRUZUScSGIERBTUpBTgorSkVGVEnEhiBEUkFHQU4KK0pFRlRJxIYgSkFEUkFOS0EKK0pFRlRJxIYgSkVGVEEKK0pFRlRJxIYgSkVMRU5BCitKRUZUScSGIEpPVkFOCitKRUZUScSGIEtBVEFSSU5BCitKRUZUScSGIExKVUJPTUlSCitKRUZUScSGIE1JTEFOCitKRUZUScSGIE1JTEFOCitKRUZUScSGIE1JTEVOS08KK0pFRlRJxIYgTUlMT1JBRAorSkVGVEnEhiBNSVRBCitKRUZUScSGIFNSRVRFTktBCitKRUZUScSGIFRJSE9NSVIKK0pFRlRJxIYgVE9NSVNMQVYKK0pFRlRJxIYgVkVMSU5LQQorSkVGVEnEhiBWTEFESU1JUgorSkVGVEnEhiBWTEFTVEEKK0pFRlRJxIYgWkRSQVZLTworSkVGVE9WScSGIEZSQU5KQQorSkVHQVJBQyBPTEdBCitKRUdEScSGIERBTUpBTgorSkVHREnEhiBHT1JEQU5BCitKRUdEScSGIFNWRVRJU0xBVgorSkVHREnEhiBWQVNBCitKRUdEScSGIFZBU08KK0pFR0XFoCBNSUxBCitKRUtFTEnEhiBCUkFOSVNMQVYKK0pFS0VMScSGIEJSQU5LTworSkVLRUxJxIYgRU1JTElKQQorSkVLRUxJxIYgTEFTTE8KK0pFS0VMScSGIE1JTEFOCitKRUtFTEnEhiBNSUxJxIYKK0pFS0VMScSGIFJBRE9TTEFWIERJUEwgSU5HCitKRUtFTEnEhiBTTEFWS08KK0pFS0VMScSGIFpPUklDQQorSkVLTknEhiBSQURPSklDQQorSkVMxIxJxIYgSk9aRUZJTkEKK0pFTMSMScSGIEtSSVNUSUpBTgorSkVMxIxJxIYgTEpVQknFoEEKK0pFTMSMScSGIE1JTE9WQU4KK0pFTMSMScSGIE1JTE9WQU4KK0pFTMSMScSGIFBBVkxFCitKRUzEjEnEhiBaT1JBCitKRUxBxIxBIMSQVVJPCitKRUxBxIxBIMSQVVJPCitKRUxBxIxBIEJSQU5LTworSkVMQcSMQSBERVNBCitKRUxBxIxBIEtPU1RBCitKRUxBxIxBIE1JSEFKTE8KK0pFTEHEjEEgTUlMRU5LTworSkVMQcSMQSBSVcW9QQorSkVMQcSMQSBTSU1PIERSIElORworSkVMQcSMQSBTTE9CT0RBTgorSkVMQcSMQSBTVEFOS08KK0pFTEHEjEEgU1RPSkFOCitKRUxBxIxJxIYgQk/FvUlEQVIKK0pFTEHEjEnEhiBCUkFOS08KK0pFTEHEjEnEhiBEQU5JTE8KK0pFTEHEjEnEhiBEVcWgQU4KK0pFTEHEjEnEhiBKVUxJxaBLQQorSkVMQcSMScSGIExKVUJPTUlSCitKRUxBxIxJxIYgTUlIQUpMTworSkVMQcSMScSGIE1JTEVOS08KK0pFTEHEjEnEhiBNSVJPU0xBVgorSkVMQcSMScSGIFJBVE9NSVIKK0pFTEHEjEnEhiBTTE9CT0RBTgorSkVMQcSMScSGIFpPUktBCitKRUxBVknEhiDFvUVMSktPCitKRUxBVknEhiBEUkFHTworSkVMRcSMIElMSUpBCitKRUxFxIxBTklOIMSQT1LEkEUKK0pFTEXEjEFOSU4gTUFSSUpBCitKRUxFxIxJxIYgSk9WQU4KK0pFTEVOxIxJxIYgRlJBTkpBCitKRUxFTknEhiDFvUlWQU4KK0pFTEVOScSGIE1JTEFOCitKRUxFTknEhiBQQU5UQQorSkVMRU5JxIYgUEFWTEUKK0pFTEVOScSGIFJBREEKK0pFTEVOScSGIFNMT0JPREFOCitKRUxFTknEhiBWQVNJTElKRQorSkVMRU5LT1ZJxIYgQUxFS1NBTkRBUgorSkVMRU5LT1ZJxIYgR1JPWkRBCitKRUxFTktPVknEhiBWTEFESVNMQVYKK0pFTEVTScSGIEFOR0VMQSBQUk9GRVNPUgorSkVMScSMScSGIMW9SVZLTworSkVMScSMScSGIMSQVVJPCitKRUxJxIxJxIYgQkVBVEEKK0pFTEnEjEnEhiBCUkFOS08KK0pFTEnEjEnEhiBEVcWgQU4KK0pFTEnEjEnEhiBKRUxFTkEKK0pFTEnEjEnEhiBKT1ZPCitKRUxJxIxJxIYgTEpVQklDQQorSkVMScSMScSGIE1BUklKQQorSkVMScSMScSGIE1JTEFOCitKRUxJxIxJxIYgTUlMRQorSkVMScSMScSGIE1JUktPCitKRUxJxIxJxIYgUEVUQVIKK0pFTEnEjEnEhiBQRVRBUgorSkVMScSMScSGIFJPU0EKK0pFTEnEjEnEhiBWSUQKK0pFTEnEhiDFvUlWS08KK0pFTEnEhiDFvUlWS08KK0pFTEnEhiDEkE9SxJBFCitKRUxJxIYgxJBPUsSQRQorSkVMScSGIEHEhklNCitKRUxJxIYgQU7EkEEKK0pFTEnEhiBBTlRFCitKRUxJxIYgQlVESU1JUgorSkVMScSGIERSQUdBTgorSkVMScSGIERSQUdVVElOCitKRUxJxIYgRFXFoEFOCitKRUxJxIYgRU1JTElKQQorSkVMScSGIEVTVEVSQQorSkVMScSGIEdPUkRBTkEKK0pFTEnEhiBJVkFOS0EKK0pFTEnEhiBJVklDQQorSkVMScSGIEpBR09ESU5LQQorSkVMScSGIEpBTkpBCitKRUxJxIYgSkVMRU5BCitKRUxJxIYgSk9WQU4KK0pFTEnEhiBMQVpBUgorSkVMScSGIExBWkFSCitKRUxJxIYgTEpVQklDQQorSkVMScSGIExKVUJJTktBCitKRUxJxIYgTFVLQQorSkVMScSGIE1BUklDQQorSkVMScSGIE1BUklOQQorSkVMScSGLU1BVEnEhiBNQVJJSkEKK0pFTEnEhiBNSUxBTgorSkVMScSGIE1JTEFOCitKRUxJxIYgTUlMRU5BCitKRUxJxIYgTUlMRU5LTworSkVMScSGIE1JTEtBCitKRUxJxIYgTUlPRFJBRworSkVMScSGIE1JT0RSQUcKK0pFTEnEhiBNSVJKQU5BCitKRUxJxIYgTUlUQQorSkVMScSGIE1PTUlSCitKRUxJxIYgTkFEQQorSkVMScSGIE5FREVMSktPCitKRUxJxIYgUEFWTEUKK0pFTEnEhiBQUkVEUkFHCitKRUxJxIYgUFJFRFJBRworSkVMScSGIFJBREVOS08KK0pFTEnEhiBST1NBCitKRUxJxIYgU0FWQQorSkVMScSGIFNJTUEKK0pFTEnEhiBTTEFWSUNBCitKRUxJxIYgU1RBTklNSVIKK0pFTEnEhiBTVEVWQU4KK0pFTEnEhiBTVEVWQQorSkVMScSGIFNURVZBCitKRUxJxIYgU1RJUEUKK0pFTEnEhiBTVkVUSVNMQVYgRElQTCBJTkcKK0pFTEnEhiBTVkVUT1pBUgorSkVMScSGIFRPTUEKK0pFTEnEhiBUT01JU0xBVgorSkVMScSGIFZBU0EKK0pFTEnEhiBWQVNPCitKRUxJxIYgVklLVE9SSUpBCitKRUxJQ0tJIFNJTUVVTgorSkVMSU4gSk9WQU4KK0pFTElOIFJBRE1JTEEKK0pFTElOxIxJxIYgRFVKTworSkVMSU5FSyBTVEVWQU4KK0pFTElTQVZBQyBHT1JEQU4KK0pFTElTQVZBQyBNSUxPxaAKK0pFTElTQVZBQyBNT01JUgorSkVMS0nEhiBKT1ZBTgorSkVMS0nEhiBMQVpBUgorSkVMS0nEhiBPTElWRVJBCitKRUxLScSGIFZMQURJTUlSCitKRUxPVkFDIMW9QVJLTworSkVMT1ZBQyDFvUFSS08KK0pFTE9WQUMgxJBPUsSQRQorSkVMT1ZBQyDEkE9SxJBFCitKRUxPVkFDIMSQVVJPCitKRUxPVkFDIEJJU0VSS0EKK0pFTE9WQUMgQlJBTklTTEFWCitKRUxPVkFDIEJSQU5LQQorSkVMT1ZBQyBCUkFOS0EKK0pFTE9WQUMgQlJBTktPCitKRUxPVkFDIERSQUdBTgorSkVMT1ZBQyBEUkFHQU4KK0pFTE9WQUMgRFXFoEFOCitKRUxPVkFDIElaQUJFTEEKK0pFTE9WQUMgSk9WQU4KK0pFTE9WQUMgTUlMQU4KK0pFTE9WQUMgTUlMSUNBCitKRUxPVkFDIE1JUk9TTEFWCitKRUxPVkFDIE1JUk9TTEFWCitKRUxPVkFDIE5BREEKK0pFTE9WQUMgTklLT0xBCitKRUxPVkFDIFJBRE9KS0EKK0pFTE9WQUMgUkFET0pLQQorSkVMT1ZBQyBSQURPTUlSIERSIExFS0FSCitKRUxPVkFDIFJVxb1JQ0EKK0pFTE9WQUMgU0xPQk9EQU4KK0pFTE9WQUMgU1RFVkFOCitKRUxPVkFDIFNUT0pBTgorSkVMT1ZBQyBUVUdPTUlSCitKRUxPVkFDIFZFTElNSVIKK0pFTE9WQUMgVkxBREEKK0pFTE9WQUMgVlVKSUNBCitKRUxPVknEhiBNSUxBTktBCitKRUxVxaBJxIYgR09SREFOQQorSkVMVcWgScSGIExFTktBCitKRUxVxaBJxIYgTUFUSUpFCitKRU3EjCBCUkFOSVNMQVYKK0pFTVJJxIYgSkVMQQorSkVORUNLT1YgUkFETUlMQQorSkVORUNLT1YgU0HFoEEKK0pFTkVJIEFORFJBxaAKK0pFTkVJIEVVR0VOCitKRU5FSSBMQUpPxaAKK0pFTkVJIE1JT0RSQUcKK0pFTkVJIFJVxb1BCitKRU5FSSBTVEVWQU4KK0pFTkVJIFRJQk9SCitKRU5FViBCTEFHT0oKK0pFUFVSU0tJIE5FTkFECitKRVLEjEnEhiBGUkFOSk8KK0pFUkFOxIxFIERBTklDQQorSkVSQU5UIEFORFJJSkEKK0pFUkFOVCBQQVRJxIYgVkVSQSBEUgorSkVSQU5UIFBFVEFSCitKRVJBVcWgRUsgRlJBTkpPCitKRVJBVcWgRUsgSVZJQ0EKK0pFUkJJxIYgRFJBR0lDQQorSkVSRUJJTsWgRUsgQU5BCitKRVJFQklOxaBFSyBTTEFWS08KK0pFUkVMRSBGUkFOQ0nFoEtBCitKRVJFTUVOS08gQUxFS1NBTkRSQQorSkVSRU1JxIYgxJBPS0EKK0pFUkVNScSGIMSQT1LEkEUKK0pFUkVNScSGIEFMRUtTQU5EQVIKK0pFUkVNScSGLUJMQUdPSkVWScSGIFZFUklDQQorSkVSRU1JxIYgQkxBR09KRQorSkVSRU1JxIYgRElNSVRSSUpFIERSIExFS0FSCitKRVJFTUnEhiBEUkFHT1NMQVYKK0pFUkVNScSGIERVxaBBTktBCitKRVJFTUnEhiBKQVNOQQorSkVSRU1JxIYgSkVMRU5BCitKRVJFTUnEhiBKT1ZBTgorSkVSRU1JxIYgSk9WQU4KK0pFUkVNScSGIExBWkFSCitKRVJFTUnEhiBMSklMSkFOQQorSkVSRU1JxIYgTUVMQU5JSkEKK0pFUkVNScSGIE1JTEVWQQorSkVSRU1JxIYgTUlSQQorSkVSRU1JxIYgTUlST1NMQVYKK0pFUkVNScSGIE5BREXFvURBCitKRVJFTUnEhiBORU5BRAorSkVSRU1JxIYgT0xJVkVSQQorSkVSRU1JxIYgUEFWTEUKK0pFUkVNScSGIFBBVkxFCitKRVJFTUnEhiBSQURFCitKRVJFTUnEhiBTVEFOQQorSkVSRU1JxIYgU1RBTktPCitKRVJFTUnEhiBTVEFOT0pFCitKRVJFTUnEhiBTVEVWQU4KK0pFUkVNScSGIFNURVZBTgorSkVSRU1JxIYgVkFTSUxJSkUKK0pFUkVNScSGIFZFUkEKK0pFUkVNScSGIFZPSklTTEFWCitKRVJFTUnEhiBaT1JBCitKRVJFTUlKScSGIFZJVE9NSVIKK0pFUkVOScSGIE1MQURFTgorSkVSR0nEhiBNSUxJQ0EKK0pFUkdJxIYgTUlPRFJBRworSkVSR0nEhiBNSVJLTworSkVSR0nEhiBQRVRBUgorSkVSR0nEhiBTTEFWSUNBCitKRVJHScSGIFNQQVNPSkUKK0pFUknEhiBEVcWgQU4KK0pFUknEhiBLT1ZJTktBCitKRVJJxIYgTEpVQknFoEEKK0pFUknEhiBNSUxJQ0EKK0pFUknEhiBQRVRBUgorSkVSSU5JxIYgQlJBTktPCitKRVJJTknEhi1LVVJJTiBFRElUCitKRVJJTknEhiBNSU9EUkFHCitKRVJJTknEhiBWT0pJU0xBVgorSkVSSU5LScSGIERSQUdBTgorSkVSSU5LScSGIElWQU4KK0pFUklOS0nEhiBQQVZMRQorSkVSS0FOIEFOVEUKK0pFUktJxIYgU1ZFVE9aQVIKK0pFUktPViDFvUFSS08KK0pFUktPViBBTkRSSUpBCitKRVJLT1YgQlJBTklNSVIKK0pFUktPViBKT1ZBTgorSkVSS09WIEpPVklDQQorSkVSS09WIEpPVklDQQorSkVSS09WIE1JUkpBTkEKK0pFUktPViBNSVJKQU5BCitKRVJLT1YgUEFWTEUKK0pFUktPViBTTUlMSkEKK0pFUktPViBTTkXFvUFOQQorSkVSS09WIFZFTEpLTworSkVSS09WIFZPSklTTEFWCitKRVJLT1ZJxIYgxJBPUsSQRQorSkVSS09WScSGIEFMRUtTQU5EQVIKK0pFUktPVknEhiBETUlUQVIKK0pFUktPVknEhiBGUkFOSk8KK0pFUktPVknEhiBKT1ZBTgorSkVSS09WScSGIEpPVkFOCitKRVJLT1ZJxIYgSk9WQU4KK0pFUktPVknEhiBKT1ZBTgorSkVSS09WScSGIEtBVElDQQorSkVSS09WScSGIEtBVElDQQorSkVSS09WScSGIExFTktBCitKRVJLT1ZJxIYgTUlMQU4KK0pFUktPVknEhiBNSUxPxaAKK0pFUktPVknEhiBOQURFxb1EQQorSkVSS09WScSGIE5JS09MQQorSkVSS09WScSGIFBSRURSQUcKK0pFUktPVknEhiBSQUpLTworSkVSS09WScSGIFNJTU8KK0pFUktPVknEhiBTSU5JxaBBCitKRVJLT1ZJxIYgU09GSUpBCitKRVJLT1ZJxIYgU1RFVkFOCitKRVJLT1ZJxIYgU1RPSkFOCitKRVJLT1ZJxIYgU1ZFVEtPCitKRVJLT1ZJxIYgVEFESUpBCitKRVJLT1ZJxIYgVkFMRVJJSkEKK0pFUktPVknEhiBWQVNBCitKRVJLT1ZJxIYgVkxBRElNSVIgTVIKK0pFUktPVknEhiBWTEFESU1JUgorSkVSS09WScSGIFZMQURPCitKRVJLT1ZJxIYgVlVLT1NBVkEKK0pFUktPVknEhiBaT1JBTgorSkVST1NJTU9WScSGIEJSQU5JTUlSCitKRVJPVElKRVZJxIYgREFSSU5LQQorSkVTScSGIE1JTEVOQQorSkVTVFJPTknEhiBUT01JU0xBVgorSkVTVFJPVknEhiBJUkVOQQorSkVWxJBFTknEhiBSVcW9SUNBCitKRVbEkEVOScSGIFZMQURBCitKRVbEkE9WScSGIE1FTEFOSUpBIERSCitKRVbEkE9WScSGIE1FTEFOSUpBCitKRVZJxIYgxIxFRE8KK0pFVknEhiBCUkFOS08KK0pFVknEhiBNSUxBTgorSkVWScSGIE1JTElWT0oKK0pFVknEhiBNSU9EUkFHCitKRVZJxIYgTU9NxIxJTE8KK0pFVknEhiBOQURBCitKRVZJxIYgTklLT0xBCitKRVZJxIYgVE9ET1IKK0pFVlJFTU9WIMW9SVZBCitKRVZSRU1PViDEkE9SxJBFCitKRVZSRU1PViBNSUxBTgorSkVWUkVNT1YgTUlSSkFOQQorSkVWUkVNT1ZJxIYgRE9CUklMQQorSkVWUkVNT1ZJxIYgTEpVQklOS0EKK0pFVlJFTU9WScSGIE1JTElWT0oKK0pFVlJFTU9WScSGIE1JTE9SQUQKK0pFVlJFTU9WScSGIE1JT0RSQUcKK0pFVlJFTU9WScSGIFJBREnFoEEKK0pFVlJFTU9WScSGIFNJTknFoEEKK0pFVlJFTU9WScSGIFNPRklKQQorSkVWUkVNT1ZJxIYgU1RFVkFOCitKRVZSRU1PVknEhiBWTEFEQU4KK0pFVlJJxIYgxb1JVkFOCitKRVZSScSGIMSQT1LEkEUKK0pFVlJJxIYgxJBPUsSQRQorSkVWUknEhiBCT8W9SURBUgorSkVWUknEhiBCT0dPTEpVQgorSkVWUknEhiBCUkFOS08KK0pFVlJJxIYgQlJBVElTTEFWCitKRVZSScSGIERBTklDQQorSkVWUknEhiBERVNJTUlSCitKRVZSScSGIERSQUdVVElOCitKRVZSScSGIEVWSUNBCitKRVZSScSGIEdJR0EKK0pFVlJJxIYgR09SQU4KK0pFVlJJxIYgSkVMQQorSkVWUknEhiBKT1ZBTgorSkVWUknEhiBLUklTVElOQQorSkVWUknEhiBMSlVCSUNBCitKRVZSScSGIE1BUklKQQorSkVWUknEhiBNSUxBTgorSkVWUknEhiBNSUxFTktPCitKRVZSScSGIE1JTEUKK0pFVlJJxIYgTUlMT8WgCitKRVZSScSGIE1JUk9TTEFWCitKRVZSScSGIFJBREnFoEEKK0pFVlJJxIYgUkFESVZPSkUKK0pFVlJJxIYgUkFESVZPSgorSkVWUknEhiBSQURJVk9KCitKRVZSScSGIFJBRE9TTEFWCitKRVZSScSGIFJBTklTQVYKK0pFVlJJxIYgU0xBVktPCitKRVZSScSGIFNMQVZLTworSkVWUknEhiBTTEFWS08KK0pFVlJJxIYgU0xBVktPCitKRVZSScSGIFNMT0JPREFOCitKRVZSScSGIFNSQk9MSlVCCitKRVZSScSGIFNUQU1FTktPCitKRVZSScSGIFNURVZBTiBEUiBJTkcKK0pFVlJJxIYgU1RFVkFOCitKRVZSScSGIFpMQVRPTUlSCitKRVZUT1ZJxIYgQUxFS1NBTkRBUgorSkVWVE9WScSGIEFMRUtTQU5EUkEKK0pFVlRPVknEhiBKT1JEQU4KK0pFVlRPVknEhiBNSUxBTgorSkVWVE9WScSGIE1JUktPCitKRVZUT1ZJxIYgUkFESVZPSkUKK0pFVlRPVknEhiBTVEFOSVNMQVZBCitKRVZUT1ZJxIYgVk9KS0FOCitKRVZUT1ZJxIYgVlVLT1RBCitKRVZUT1ZJxIYgVlVMRQorSkVaREnEhiBET0JSSUxBCitKRVpEScSGIERSQUdBTgorSkVaREnEhiBKT1ZBTgorSkVaREnEhiBMSlVCT01JUgorSkVaREnEhiBNT03EjElMTworSkVaREnEhiBTQVZBCitKRVpEScSGIFNQSVJBCitKRVpEScSGIFNURVZLQQorSkVaREnEhiBTVE9KQU4gRElQTCBJTkcKK0pFWkRJTUlST1ZJxIYgQUNBCitKRVpESU1JUk9WScSGIERSQUdBTgorSkVaRElNSVJPVknEhiBEUkFHSUNBCitKRVpESU1JUk9WScSGIExBWkFSCitKRVpESU1JUk9WScSGIE1JUkpBTkEKK0pFWkRJTUlST1ZJxIYgU1RPSkFOS0EKK0pFWkRJTUlST1ZJxIYgWk9SSUNBCitKRVpFUktJxIYgT0xHSUNBCitKSVJPVEEtR0FaSUJBUknEhiBEQU5JRUxBCitKT8SMScSGIE1PTcSMSUxPCitKT8SMScSGIFNUQU5PSkxPCitKT8SMSU4gxb1JS0EKK0pPxIxLT1ZJxIYgSk9WQU4KK0pPxaBBTk9WIEFMRUtTQU5EUkEKK0pPxaBBTk9WIExBWkFSCitKT8WgQU5PViBMSlVCSUNBCitKT8WgQU5PViBNTEFERU4KK0pPxaBFVlNLSSDEkE9SxJBJSkEKK0pPxaBJxIYgxJBVUkEKK0pPxaBJxIYgQkxBxb1PCitKT8WgScSGIERSQUdPU0xBVgorSk/FoEnEhiBNSUxBTgorSk/FoEnEhiBNSUxJVk9KCitKT8WgScSGIE1JTE9SQUQKK0pPxaBJxIYgUEVUQVIKK0pPxb1BIEtBVEFMSU4KK0pPxb1JxIYgxJBVUkEKK0pPQU5PVknEhiBDVkVUS08gRElQTCBJTkcKK0pPQU5PVknEhiBFUsW9RUJFVAorSk9BTk9WScSGIFJBTU9OQQorSk9DScSGIMW9SVZPSklOIERJUEwgSU5HCitKT0NJxIYgxb1JVk9SQUQgRFIKK0pPQ0nEhiDEkE9SxJBFCitKT0NJxIYgQUxFS1NBTkRBUgorSk9DScSGIEFOxJBFTEtBCitKT0NJxIYgQU5HRUxJTkEKK0pPQ0nEhiBBTktJQ0EKK0pPQ0nEhiBCT1JJU0xBVgorSk9DScSGIEJSQU5JU0xBViBEUgorSk9DScSGIEJSQU5LQQorSk9DScSGIERSQUdJQ0EKK0pPQ0nEhiBEUkFHVVRJTgorSk9DScSGIEZJTElQCitKT0NJxIYgSFJJU1RJTkEKK0pPQ0nEhiBJTElKQQorSk9DScSGIElTSURPUgorSk9DScSGIEpFTElTQVZFVEEKK0pPQ0nEhiBKT1ZBTktBCitKT0NJxIYgTEpJTEpBTkEKK0pPQ0nEhiBNQVJJSkEKK0pPQ0nEhiBNQVJLTworSk9DScSGIE1BUktPCitKT0NJxIYgTUFSVEEKK0pPQ0nEhiBNSUxBRElOS0EKK0pPQ0nEhiBNSUxBTgorSk9DScSGIE1JTEFOCitKT0NJxIYgTUlMT8WgCitKT0NJxIYgTUlMT8WgCitKT0NJxIYgTUlSS08KK0pPQ0nEhiBNTEFERU4KK0pPQ0nEhiBORU5BRAorSk9DScSGIFBFVEFSCitKT0NJxIYgUEVUQVIKK0pPQ0nEhiBQRVRBUgorSk9DScSGIFJBRElWT0oKK0pPQ0nEhiBSQURNSUxBCitKT0NJxIYgUkFET1NMQVYKK0pPQ0nEhiBST0RPTEpVQgorSk9DScSGIFNBVkEKK0pPQ0nEhiBTTE9CT0RBTgorSk9DScSGIFNNSUxKQQorSk9DScSGIFNURVZBTiBESVBMIElORworSk9DScSGIFNURVZBTgorSk9DScSGIFNURVZBTgorSk9DScSGIFZBTEVSSUpBCitKT0NJxIYgVkVSQQorSk9DScSGIFpPUkFOCitKT0NJTiBCUkFOS08KK0pPQ0lOIFBFUlNJREEKK0pPQ0lOIFpMQVRPSkUKK0pPQ0tPViBEQU5JQ0EKK0pPQ0tPViBNQU5PSkxPCitKT0NLT1YgTUlMQU5LQQorSk9DS09WIE1JTE9TQVYKK0pPQ0tPViBNSVJPU0xBVkEKK0pPQ0tPViBOSUtPTEEKK0pPQ0tPViBOSUtPTEEKK0pPQ0tPViBSQURPVkFOCitKT0NLT1ZJxIYgxJBPUsSQRSBEUgorSk9DS09WScSGIEpPVkFOS0EKK0pPQ0tPVknEhiBPQlJBRAorSk9DT1ZJxIYgxb1JVk9NSVIKK0pPQ09WScSGIE1JT0RSQUcKK0pPQ09WScSGIFJBREVOS08KK0pPQ09WScSGIFpPUklDQQorSk9DVUxPViBCUkFOS0EKK0pPQ1VMT1YgTUlIQUxKCitKT0RBTCBST8W9QQorSk9ISU1TVEFMIEFHQVRBCitKT0pJxIYgxJBPUsSQRQorSk9KScSGIEFMRUtTQU5EQVIKK0pPSknEhiBCT8W9SURBUgorSk9KScSGIERPSU5BCitKT0pJxIYgRFJBR0kKK0pPSknEhiBEUkFHT1NMQVYgRFIKK0pPSknEhiBEVcWgQU4KK0pPSknEhiBHRU9SR0lKRQorSk9KScSGIElWQU5LQQorSk9KScSGIElWQU5LQQorSk9KScSGIEpFTEEKK0pPSknEhiBKRUxFTkEKK0pPSknEhiBMSlVCSUNBCitKT0pJxIYgTUnEhktPCitKT0pJxIYgTUlMRVZBCitKT0pJxIYgTUlMT8WgCitKT0pJxIYgTUlPRFJBRworSk9KScSGIE1JUktPCitKT0pJxIYgTUlSS08KK0pPSknEhiBNSVJPTEpVQgorSk9KScSGIE1JUk9TTEFWCitKT0pJxIYgT0xHQQorSk9KScSGIFNBVkEKK0pPSknEhiBTSU1PCitKT0pJxIYgU1RBTkEKK0pPSknEhiBTVEVWQU4KK0pPSknEhiBTVkVUT1pBUgorSk9KScSGIFNWRVRPCitKT0pJTiBCQVJCQVJBCitKT0pJTiBET0JST1NBVgorSk9KSU4gU0lOScWgQQorSk9KS0nEhiDEkE9SxJBFCitKT0pLScSGIMSQT1LEkEUKK0pPSktJxIYgxJBPUsSQRQorSk9KS0nEhiBBTEVLU0FOREFSCitKT0pLScSGIEJPUklTTEFWQQorSk9KS0nEhiBCUkFOSVNMQVYKK0pPSktJxIYgREFOSUNBCitKT0pLScSGIERJTkEKK0pPSktJxIYgRFXFoEFOCitKT0pLScSGIERVxaBLTworSk9KS0nEhiBKT1ZJQ0EKK0pPSktJxIYgS0FUSUNBCitKT0pLScSGIEtBVElDQQorSk9KS0nEhiBMSlVCT01JUgorSk9KS0nEhiBNQVJJQ0EKK0pPSktJxIYgTUFSSUpBCitKT0pLScSGIE1BUklKQQorSk9KS0nEhiBNSUxBRElOCitKT0pLScSGIE1JTEVOQQorSk9KS0nEhiBNSUxFTktPCitKT0pLScSGIE1JTElDQQorSk9KS0nEhiBNSUxJQ0EKK0pPSktJxIYgTUlPRFJBRworSk9KS0nEhiBNSVJKQU5BIERSCitKT0pLScSGIE1JUk9TTEFWCitKT0pLScSGIE5BREEKK0pPSktJxIYgT0xHQQorSk9KS0nEhiBQQUpBCitKT0pLScSGLVBPTEVUVE8gWk9SQQorSk9KS0nEhiBSQURJVk9KCitKT0pLScSGIFJBRElWT0oKK0pPSktJxIYgUkFET0pLQQorSk9KS0nEhiBSQURPU0xBVgorSk9KS0nEhiBTTEFWS08KK0pPSktJxIYgU01JTEpLQQorSk9KS0nEhiBTTkXFvUFOQQorSk9KS0nEhiBTT0ZJSkEKK0pPSktJxIYgU09LTworSk9KS0nEhiBTVEFOS08KK0pPSktJxIYgVVJPxaAKK0pPSktJxIYgVk9KSVNMQVYKK0pPSktJxIYgWkRSQVZLTworSk9LQSBLQVRBUklOQQorSk9LQSBWQVNPCitKT0tBTknEhiBJTElKQQorSk9LQU5PVknEhiBCTEFHT0pFCitKT0tBTk9WScSGIEJPU0lMSktBCitKT0tBTk9WScSGIEJSQU5LTworSk9LQU5PVknEhiBCUkFOS08KK0pPS0FOT1ZJxIYgREVTSU1JUgorSk9LQU5PVknEhiBNSUxPUkFECitKT0tBTk9WScSGIFJBREEKK0pPS0FOT1ZJxIYgUkFET01JUgorSk9LQU5PVknEhiBTSU5JxaBBCitKT0tBTk9WScSGIFRPRE9SCitKT0tBTk9WScSGIFRPTUlTTEFWCitKT0tBTk9WScSGIFZMQURJTUlSIERSCitKT0tJxaBJxIYgQlJBTktPCitKT0tJxaBJxIYgU1BBU09KRQorSk9LScSGIMW9QVJLTworSk9LScSGIMW9QVJLTworSk9LScSGIMW9SVZBTgorSk9LScSGIMSQT1LEkEUKK0pPS0nEhiDEkFVSQcSQCitKT0tJxIYgQk/FvUlEQVIKK0pPS0nEhiBCT1JJU0xBVgorSk9LScSGIEJSQU5JU0xBVgorSk9LScSGIEJVRElNSVIKK0pPS0nEhiBDVklKRVRJTgorSk9LScSGIERBTkUKK0pPS0nEhiBET0JSSUxBCitKT0tJxIYgRFJBR0FOCitKT0tJxIYgRFJBR0FOCitKT0tJxIYgRFJBR0FOCitKT0tJxIYgRFJBR0lDQQorSk9LScSGIERSQUdJTkpBCitKT0tJxIYgRFXFoEFOS0EKK0pPS0nEhiBEVcWgQU4KK0pPS0nEhiBEVcWgQU4KK0pPS0nEhiBEVcWgQU4KK0pPS0nEhiBEVcWgQU4KK0pPS0nEhiBEVcWgQU4KK0pPS0nEhiBEVcWgQU4KK0pPS0nEhiBJR05KQVQKK0pPS0nEhiBKRUxFTkEKK0pPS0nEhiBKT0tBCitKT0tJxIYgS1JTVEFOCitKT0tJxIYgS1NFTklKQQorSk9LScSGIExBS0nEhgorSk9LScSGIExBWk8KK0pPS0nEhiBMSklMSkFOQQorSk9LScSGIExKVUJJQ0EKK0pPS0nEhiBMSlVCTworSk9LScSGIExVS0EKK0pPS0nEhiBNQVJBCitKT0tJxIYgTUFSSUpBCitKT0tJxIYgTUFSS08KK0pPS0nEhiBNSUhBSkxPCitKT0tJxIYgTUlMQU4KK0pPS0nEhiBNSUxBTgorSk9LScSGIE1JTEFOCitKT0tJxIYgTUlMQU4KK0pPS0nEhiBNSUxFTktPCitKT0tJxIYgTUlMRVZBCitKT0tJxIYgTUlMSUpBCitKT0tJxIYgTUlMSVNBVgorSk9LScSGIE1JTE9SQUQKK0pPS0nEhiBNSUxPVkFOCitKT0tJxIYgTUlSS08KK0pPS0nEhiBNSVJLTworSk9LScSGIE1JUktPCitKT0tJxIYgTUlSS08KK0pPS0nEhiBNSVJPU0xBVgorSk9LScSGIE5BREEKK0pPS0nEhiBOQURBCitKT0tJxIYgTkFESUNBCitKT0tJxIYgTkVOQUQKK0pPS0nEhiBOSUtPTEEKK0pPS0nEhiBOSUtPTEEKK0pPS0nEhiBQRVRBUgorSk9LScSGIFJBRElWT0pFCitKT0tJxIYgUkFET0lDQQorSk9LScSGIFJJU1RBCitKT0tJxIYgU0HFoEEKK0pPS0nEhiBTSU1BCitKT0tJxIYgU0lOScWgQQorSk9LScSGIFNMQVZLTworSk9LScSGIFNMQVZLTworSk9LScSGIFNMQVZLTworSk9LScSGIFNORcW9QU5BCitKT0tJxIYgU1RFVkFOIERJUEwgSU5HCitKT0tJxIYgU1RFVkFOCitKT0tJxIYgU1ZFVElTTEFWCitKT0tJxIYgU1ZFVE9aQVIKK0pPS0nEhiBTVkVUT1pBUgorSk9LScSGIFRPTUlTTEFWCitKT0tJxIYgVkVMSktPCitKT0tJxIYgVkVSQQorSk9LScSGIFZMQURPCitKT0tJxIYgVk9KSVNMQVYKK0pPS0nEhiBWT0pJU0xBVgorSk9LScSGIFZVSkFESU4KK0pPS0nEhiBWVUtBRElOCitKT0tJxIYgVlVLTworSk9LScSGIFpMQVRBCitKT0tJxIYgWk9SS0EKK0pPS01BTk9WScSGIFNBVkVUQQorSk9LT1ZJxIYgxb1JVktPCitKT0tPVknEhiDEkFVSxJBJTkEKK0pPS09WScSGIERPQlJJVk9KRQorSk9LT1ZJxIYtTUlLScSGIE1JUkpBTkEKK0pPS09WScSGIE1JTEtBCitKT0tPVknEhiBSQURPU0FWCitKT0tPVknEhiBWT0pJU0xBVgorSk9LU0nEhiBEUkFHScWgQQorSk9LU0nEhiBHT0pLTworSk9LU0lNT1bEhiBORUJPSsWgQQorSk9LU0lNT1ZJxIYgxb1BUktPCitKT0tTSU1PVknEhiBEQVJLTworSk9LU0lNT1ZJxIYgRFXFoEtPCitKT0tTSU1PVknEhiBHT0xVQkFOS0EKK0pPS1NJTU9WScSGIEpPVkFOIERJUEwgSU5HCitKT0tTSU1PVknEhiBMSlVCSUNBCitKT0tTSU1PVknEhiBMSlVCSVNBViBEUgorSk9LU0lNT1ZJxIYgTEpVQklTQVYKK0pPS1NJTU9WScSGIE1PTcSMSUxPCitKT0tTSU1PVknEhiBOQURBCitKT0tTSU1PVknEhiBQQVZMRQorSk9LU0lNT1ZJxIYgUEVUQVIKK0pPS1NJTU9WScSGIFJBRE9NSVIKK0pPS1NJTU9WScSGIFNJTknFoEEKK0pPS1NJTU9WScSGIFNURVZBTgorSk9LU0lNT1ZJxIYgVkxBRElNSVIKK0pPS1NJTU9WScSGIFpMQVRPTUlSCitKT0tTSU1PVknEhiBaT1JBTgorSk9LU09WScSGIERSQUdJxaBBCitKT0tTT1ZJxIYgU05Fxb1BTkEKK0pPTERJxIYgTUFSQQorSk9MREnEhiBNSU9EUkFHCitKT0xJxIYgxb1JVkFOCitKT0xJxIYgxb1JVk9KSU4KK0pPTEnEhiBBTkdFTElOQQorSk9MScSGIERBTklMTworSk9MScSGIEpBRFJBTktBCitKT0xJxIYgSk9WQU4KK0pPTEnEhiBLT05TVEFOVElOCitKT0xJxIYgS09TVEEKK0pPTEnEhiBNSVJKQU5BCitKT0xJxIYgTkVCT0rFoEEKK0pPTEnEhiBQRVRBUgorSk9MScSGIFNMT0JPREFOCitKT0xJxIYgVVJPxaAKK0pPTEnEhiBWQVNBCitKT0xPVknEhiBNSUxPVkFOCitKT07EjEnEhiBNQVJBCitKT05BxaAgRFXFoEFOCitKT05BxaAgTEFTTE8KK0pPTkHFoCBOSUtPTEEKK0pPTknEhiBCT8WgS08KK0pPTknEhiBEUkFHQU4KK0pPTkpFViBNSUxJVk9KCitKT05KRVYgU0xBVk9MSlVCCitKT05KScSGIFNBVk8KK0pPTk9WScSGIERVxaBBTgorSk9OT1ZJxIYgUEVUQVIKK0pPTlRPVknEhiBBTEVLU0EKK0pPTlRPVknEhi1CSUtJxIYgTUlSSkFOQQorSk9OVE9WScSGIFJVRE9MRgorSk9OVVpPVknEhiBWTEFESU1JUgorSk9SREHEjCBBTkEKK0pPUkRBTiBFUsW9RUJFVAorSk9SREFOT1YgS0lSSUwKK0pPUkRBTk9WU0tJIFNUQU5PSktPCitKT1JHQU5PVknEhiBTSU1PCitKT1JHScSGIMW9SVZBTkEKK0pPUkdJxIYgRFJBR09NSVIKK0pPUkdPVkFOT1ZJxIYgSkVMSVNBVkVUQQorSk9ST1ZJxIYgQlJBTktPCitKT1JPVknEhiBSQU5LTworSk9TRVZTS0kgU0lNRU9OCitKT1NJxIYgQUxFS1NBTkRBUgorSk9TScSGIEZJTElQCitKT1NJxIYgSUxJSkEKK0pPU0nEhiBJVkFOCitKT1NJxIYgS09TQU5BCitKT1NJxIYgTEpVQklOS08KK0pPU0nEhiBMSlVCSU5LTworSk9TScSGIExKVUJPTUlSCitKT1NJxIYgTUlMRU5LTworSk9TScSGIE1JUkpBTkEKK0pPU0nEhiBPQlJBRAorSk9TScSGIE9MR0EKK0pPU0nEhiBSQURJTktBCitKT1NJxIYgU1LEkEEKK0pPU0nEhiBTVEVWQU4KK0pPU0nEhiBTVEVWQU4KK0pPU0lGSURJUyBLT1NUQQorSk9TSUZPVknEhiBESU1JVFJJSkUKK0pPU0lGT1ZJxIYgRFJBR0nEhgorSk9TSUZPVknEhiBMSlVCSUNBCitKT1NJRk9WScSGIE9MR0EKK0pPU0lNxIxFViBaVk9OSU1JUgorSk9TSU1PViBCT1JJU0xBVgorSk9TSU1PViBEUkFHT1NMQVYKK0pPU0lNT1YgRFXFoEFOCitKT1NJTU9WIEdMSUdPUklKRQorSk9TSU1PViBKRUxFTkEKK0pPU0lNT1YgU1RFVkFOCitKT1NJTU9WIFZBU0lMSUpFCitKT1NJTU9WIFZPSk8KK0pPU0lNT1ZJxIYgxb1JVkEKK0pPU0lNT1ZJxIYgQk9SSVZPSgorSk9TSU1PVknEhiBCT1JJVk9KCitKT1NJTU9WScSGIEpVTElKQU5BCitKT1NJTU9WScSGIE1BUktPCitKT1NJTU9WScSGIE1JTElDQQorSk9TSU1PVknEhiBORU5BRAorSk9TSU1PVknEhiBTSU5JxaBBCitKT1NJTU9WScSGIFNURVZBTgorSk9TSU1PVknEhiBTVEVWQU4KK0pPU0lNT1ZJxIYgU1RFVktBCitKT1NJTU9WScSGIFRBVEpBTkEKK0pPU0lNT1ZJxIYgVkxBRElNSVIKK0pPU0lNT1ZJxIYgVkxBRElNSVIKK0pPU0lNT1ZJxIYgVkxBRElNSVIKK0pPU0lNT1ZJxIYgWkRFTktBCitKT1NJTU9WU0tJIEFMRUtTQU5EQVIKK0pPU0lOIERSQUdBTgorSk9TSU4gTUFSSUpBCitKT1NJTiBNSUxFCitKT1NJTiBSQURJQ0EKK0pPU0lOIFJBRE9WQU4KK0pPU0lOIFNMT0JPREFOCitKT1NJUE9WScSGIEJPUklTTEFWCitKT1NJUE9WScSGIEJPUk8KK0pPU0lQT1ZJxIYgREFOSUNBCitKT1NJUE9WScSGIElWSUNBCitKT1NJUE9WScSGIFBFVEFSCitKT1NJUE9WScSGIFNMT0JPREFOCitKT1NJUE9WScSGIFZMQURJTUlSCitKT1RBTk9WScSGIERBUklOS0EKK0pPVEFOT1ZJxIYgS09STkVMSUpBCitKT1RBTk9WScSGIExKVUJPTUlSCitKT1RBTk9WScSGIE1JTElWT0oKK0pPVEFOT1ZJxIYgTkVERUxKS08KK0pPVEFOT1ZJxIYgUkFKS08KK0pPVEFOT1ZJxIYgU1RBTktPCitKT1RBTk9WScSGIFRPTUlTTEFWCitKT1RJxIYgTUlST1NMQVYKK0pPVsSMScSGIERVxaBLTworSk9WxIxJxIYgU0xBVktPCitKT1bEjEnEhiBWTEFEQU4KK0pPVkHEjEVWScSGIERNSVRBUgorSk9WQcWgRVZJxIYgU0xPQk9EQU4KK0pPVkFOxIxFVknEhiBCT1NJTEpLQQorSk9WQU7EjEVWScSGIEdPSktPCitKT1ZBTsSMRVZJxIYgSUxJSkEKK0pPVkFOxIxFVknEhiBKRUxJQ0EKK0pPVkFOxIxFVknEhiBKT1ZBTgorSk9WQU7EjEVWScSGIEpPVkFOCitKT1ZBTsSMRVZJxIYgS09WSUxKS0EKK0pPVkFOxIxFVknEhiBTVEVWQU4KK0pPVkFOxIxFVknEhi1aRUtJxIYgTklLT0xBCitKT1ZBTsSMRVZJxIYtWkVLScSGIE5JS09MQQorSk9WQU7EjEnEhiBEUkFHSUNBCitKT1ZBTsSMScSGIE1FTEFOSUpBCitKT1ZBTsSMScSGIE1JT0RSQUcKK0pPVkFOxIxJxIYgTUlST1NMQVYKK0pPVkFOQ0FJIE1BUklKQQorSk9WQU5EScSGIE1BTkRBCitKT1ZBTkRJxIYgTUlMT8WgCitKT1ZBTkRJTiBNSUxBTgorSk9WQU5JxIYgxJBPUsSQRQorSk9WQU5JxIYgxJBVUk8KK0pPVkFOScSGIEJPxaBLTworSk9WQU5JxIYgQk/FoEtPCitKT1ZBTknEhiBET0JSSUNBCitKT1ZBTknEhiBEVcWgQU4gRElQTCBJTkcKK0pPVkFOScSGIE1BUklKQQorSk9WQU5JxIYgTUlSS08KK0pPVkFOScSGIE1MQURFTgorSk9WQU5JxIYgTU9NSVIKK0pPVkFOScSGIE9MSVZFUkEKK0pPVkFOScSGIE9MSVZFUkEKK0pPVkFOS0lOIEFMRUtTQU5EQVIKK0pPVkFOS09WScSGIFJBRE9TTEFWCitKT1ZBTk9WIMW9QVJLTworSk9WQU5PViDFvUlWQQorSk9WQU5PViBCSUxKQU5BCitKT1ZBTk9WIEJPxaBLTworSk9WQU5PViBCT0pBTkEKK0pPVkFOT1YgQk9SSVNMQVYKK0pPVkFOT1YgQk9SSVNMQVYKK0pPVkFOT1YgQlJBTklTTEFWCitKT1ZBTk9WIERSQUdBTgorSk9WQU5PViBEUkFHSUNBCitKT1ZBTk9WIERSQUdJTkpBCitKT1ZBTk9WIERSQUdPTEpVQgorSk9WQU5PViBEUkFHT01JUgorSk9WQU5PViBEVcWgQU4KK0pPVkFOT1YgRFXFoEFOCitKT1ZBTk9WIERVxaBJQ0EKK0pPVkFOT1YgSUdOSkFUCitKT1ZBTk9WIElTQQorSk9WQU5PViBJVkFOCitKT1ZBTk9WIEpBxaBBCitKT1ZBTk9WIEpBU05BCitKT1ZBTk9WIEpFTEVOQQorSk9WQU5PViBKT1ZBTgorSk9WQU5PViBKT1ZBTgorSk9WQU5PViBKT1ZJQ0EKK0pPVkFOT1YgTEFaQVIKK0pPVkFOT1YgTEFaQVIKK0pPVkFOT1YgTUVMQU5JSkEKK0pPVkFOT1YgTUlMQU4KK0pPVkFOT1YgTUlMQU4KK0pPVkFOT1YgTUlMQU4KK0pPVkFOT1YgTUlMSVZPSgorSk9WQU5PViBNSUxPxaAKK0pPVkFOT1YgTUlSSkFOQQorSk9WQU5PViBNTEFERU4KK0pPVkFOT1YgTU9NxIxJTE8KK0pPVkFOT1YgUEVUQVIKK0pPVkFOT1YgUkFESVZPSgorSk9WQU5PViBTQVZBCitKT1ZBTk9WIFNQT01FTktBCitKT1ZBTk9WIFNURVZBTktBCitKT1ZBTk9WIFNURVZBTgorSk9WQU5PViBTVkVUSVNMQVYKK0pPVkFOT1YgU1ZFVElTTEFWCitKT1ZBTk9WIFNWRVRPWkFSCitKT1ZBTk9WIFRPRE9SCitKT1ZBTk9WIFRPTUEKK0pPVkFOT1YgVklEQQorSk9WQU5PViBWTEFESU1JUgorSk9WQU5PVknEhiDEjEVEQQorSk9WQU5PVknEhiDEjEVET01JUgorSk9WQU5PVknEhiDEjEVET01JUgorSk9WQU5PVknEhiDEjEVET01JUgorSk9WQU5PVknEhiDEjEVETworSk9WQU5PVknEhiDFvUlWQURJTgorSk9WQU5PVknEhiDFvUlWS0EKK0pPVkFOT1ZJxIYgxb1JVktPCitKT1ZBTk9WScSGIMW9SVZLTworSk9WQU5PVknEhiDFvUlWS08KK0pPVkFOT1ZJxIYgxb1JVk9KSU4KK0pPVkFOT1ZJxIYgxb1JVk9KSU4KK0pPVkFOT1ZJxIYgxb1JVk9KSU4KK0pPVkFOT1ZJxIYgxb1JVk9SQUQKK0pPVkFOT1ZJxIYgxb1JVk9SQUQKK0pPVkFOT1ZJxIYgxb1JVk9UQQorSk9WQU5PVknEhiDEkEVOxJBJCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQVVLEkElOQQorSk9WQU5PVknEhiDEkFVSxJBJTktBCitKT1ZBTk9WScSGIMSQVVJBCitKT1ZBTk9WScSGIMSQVVJPCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIgRFIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRSQQorSk9WQU5PVknEhiBBTEVLU0EKK0pPVkFOT1ZJxIYgQU7EkEEKK0pPVkFOT1ZJxIYgQU7EkEEKK0pPVkFOT1ZJxIYgQU7EkEVMSUpBIERSCitKT1ZBTk9WScSGIEFOxJBFTEtBCitKT1ZBTk9WScSGIEFOxJBFTEtPCitKT1ZBTk9WScSGIEFORFJJSkEgRElQTCBJTkcKK0pPVkFOT1ZJxIYgQU5EUklKQSBESVBMIE9FQworSk9WQU5PVknEhiBBTkRSSUpBCitKT1ZBTk9WScSGIEFORFJJSkEKK0pPVkFOT1ZJxIYgQU5HRUxJTkEKK0pPVkFOT1ZJxIYgQU5JQ0EKK0pPVkFOT1ZJxIYgQU5LSUNBCitKT1ZBTk9WScSGIEFSQU7EkEVMCitKT1ZBTk9WScSGIEFSU0EgRFIKK0pPVkFOT1ZJxIYgQVJTQQorSk9WQU5PVknEhiBBUlNFTklKRQorSk9WQU5PVknEhi1BUlNJxIYgVklPTEVUQQorSk9WQU5PVknEhi1CQU5LT1ZBxIxLSSBKT1ZBTktBCitKT1ZBTk9WScSGIEJMQUdPSkUKK0pPVkFOT1ZJxIYgQk/FoEtPCitKT1ZBTk9WScSGIEJPxaBLTworSk9WQU5PVknEhiBCT8WgS08KK0pPVkFOT1ZJxIYgQk/FoEtPCitKT1ZBTk9WScSGIEJPxaBLTworSk9WQU5PVknEhiBCT8W9SURBUiBQUk9GRVNPUgorSk9WQU5PVknEhiBCT8W9SURBUgorSk9WQU5PVknEhiBCT8W9TworSk9WQU5PVknEhiBCT0dEQU5LQQorSk9WQU5PVknEhiBCT0dEQU5LQQorSk9WQU5PVknEhiBCT0dEQU4KK0pPVkFOT1ZJxIYgQk9HREFOCitKT1ZBTk9WScSGIEJPR0RBTgorSk9WQU5PVknEhiBCT0pBTkEKK0pPVkFOT1ZJxIYgQk9SSVNMQVYKK0pPVkFOT1ZJxIYgQk9SSVNMQVYKK0pPVkFOT1ZJxIYgQk9SSVZPSiBESVBMIElORworSk9WQU5PVknEhiBCT1JJVk9KCitKT1ZBTk9WScSGIEJPU0lMSktBCitKT1ZBTk9WScSGIEJSQU5JQk9SCitKT1ZBTk9WScSGIEJSQU5JTUlSCitKT1ZBTk9WScSGIEJSQU5JU0xBVkEKK0pPVkFOT1ZJxIYgQlJBTklTTEFWCitKT1ZBTk9WScSGIEJSQU5JU0xBVgorSk9WQU5PVknEhiBCUkFOSVNMQVYKK0pPVkFOT1ZJxIYgQlJBTklTTEFWCitKT1ZBTk9WScSGIEJSQU5LQQorSk9WQU5PVknEhiBCUkFOS08KK0pPVkFOT1ZJxIYgQlJBTktPCitKT1ZBTk9WScSGIEJSQU5LTworSk9WQU5PVknEhiBCUkFUSVNMQVYgRFIKK0pPVkFOT1ZJxIYgQlVESU1JUgorSk9WQU5PVknEhiBDVkVUQQorSk9WQU5PVknEhiBDVkVUS08KK0pPVkFOT1ZJxIYgREFMSUJPUiBESVBMIFBSQVZOSUsKK0pPVkFOT1ZJxIYgREFMSUJPUgorSk9WQU5PVknEhiBEQU5JTE8KK0pPVkFOT1ZJxIYgREFSSU5LQQorSk9WQU5PVknEhiBERUpBTgorSk9WQU5PVknEhiBERUpBTgorSk9WQU5PVknEhiBESU1JVFJJSkUKK0pPVkFOT1ZJxIYgRElNSVRSSUpFCitKT1ZBTk9WScSGIERJTUlUUklKRQorSk9WQU5PVknEhiBESU1JVFJJSkUKK0pPVkFOT1ZJxIYgRE9CUklMQQorSk9WQU5PVknEhiBET0JSSVZPSkUKK0pPVkFOT1ZJxIYgRE9CUk9TQVYKK0pPVkFOT1ZJxIYgRE9CUk9TQVYKK0pPVkFOT1ZJxIYgRFJBR0FOQQorSk9WQU5PVknEhiBEUkFHQU5BCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0nFoEEKK0pPVkFOT1ZJxIYgRFJBR0nEhgorSk9WQU5PVknEhiBEUkFHScSGCitKT1ZBTk9WScSGIERSQUdJQ0EKK0pPVkFOT1ZJxIYgRFJBR0lDQQorSk9WQU5PVknEhiBEUkFHSUNBCitKT1ZBTk9WScSGIERSQUdJQ0EKK0pPVkFOT1ZJxIYgRFJBR0lWT0pFCitKT1ZBTk9WScSGIERSQUdPTEpVQiBPRUMKK0pPVkFOT1ZJxIYgRFJBR09MSlVCCitKT1ZBTk9WScSGIERSQUdPTEpVQgorSk9WQU5PVknEhiBEUkFHT0xKVUIKK0pPVkFOT1ZJxIYgRFJBR09TTEFWIERJUEwgSU5HCitKT1ZBTk9WScSGIERSQUdPU0xBViBESVBMIElORworSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPCitKT1ZBTk9WScSGIERSQUdVVElOCitKT1ZBTk9WScSGIERVxaBBTiBEUiBQUk9GCitKT1ZBTk9WScSGIERVxaBBTiBEUgorSk9WQU5PVknEhiBEVcWgQU4gRFIKK0pPVkFOT1ZJxIYgRFXFoEFOS0EKK0pPVkFOT1ZJxIYgRFXFoEFOS0EKK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgS08KK0pPVkFOT1ZJxIYgRFXFoEtPCitKT1ZBTk9WScSGIERVREEKK0pPVkFOT1ZJxIYgRUxFTkEKK0pPVkFOT1ZJxIYgRU1JQ0EKK0pPVkFOT1ZJxIYgRVNNQQorSk9WQU5PVknEhiBFVklDQQorSk9WQU5PVknEhiBGRUxJQ0lKQQorSk9WQU5PVknEhiBGSUxJUAorSk9WQU5PVknEhiBHRU9SRworSk9WQU5PVknEhiBHT0pLTworSk9WQU5PVknEhiBHT0pLTworSk9WQU5PVknEhiBHT1JBTgorSk9WQU5PVknEhiBHT1JBTgorSk9WQU5PVknEhiBHT1JEQU5BCitKT1ZBTk9WScSGIEdPUkRBTkEKK0pPVkFOT1ZJxIYgR09SREFOQQorSk9WQU5PVknEhiBHT1JEQU5BCitKT1ZBTk9WScSGIEdPUkRBTkEKK0pPVkFOT1ZJxIYgR1JPWkRBCitKT1ZBTk9WScSGIEdSVUpBCitKT1ZBTk9WScSGIEdSVUpJQ0EKK0pPVkFOT1ZJxIYgSFJJU1RJTkEKK0pPVkFOT1ZJxIYgSUxFCitKT1ZBTk9WScSGIElMSUpBCitKT1ZBTk9WScSGIElMSUpBCitKT1ZBTk9WScSGIElMSUpBCitKT1ZBTk9WScSGIElMSUpBCitKT1ZBTk9WScSGIElMSUpBCitKT1ZBTk9WScSGIElMSUpBCitKT1ZBTk9WScSGIElSSU5BCitKT1ZBTk9WScSGIElWQU4gRFIKK0pPVkFOT1ZJxIYgSVZBTktBIERSIFBST0YKK0pPVkFOT1ZJxIYgSVZBTktBCitKT1ZBTk9WScSGIElWQU4KK0pPVkFOT1ZJxIYgSVZBTgorSk9WQU5PVknEhiBKQcWgQQorSk9WQU5PVknEhiBKQURSQU5LQQorSk9WQU5PVknEhiBKQVNNSU5LQQorSk9WQU5PVknEhiBKRUxBCitKT1ZBTk9WScSGIEpFTEVOQQorSk9WQU5PVknEhiBKRUxFTkEKK0pPVkFOT1ZJxIYgSkVMRU5BCitKT1ZBTk9WScSGIEpFTEVOQQorSk9WQU5PVknEhiBKRUxJQ0EKK0pPVkFOT1ZJxIYgSkVMSVNBVkVUQQorSk9WQU5PVknEhiBKRUxJU0FWRVRBCitKT1ZBTk9WScSGIEpFTElTQVZFVEEKK0pPVkFOT1ZJxIYgSkVMS0EKK0pPVkFOT1ZJxIYgSkVWVEEKK0pPVkFOT1ZJxIYgSk9DQQorSk9WQU5PVknEhiBKT1ZBTktBCitKT1ZBTk9WScSGIEpPVkFOS0EKK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WQU4KK0pPVkFOT1ZJxIYgSk9WSUNBCitKT1ZBTk9WScSGIEpPVklDQQorSk9WQU5PVknEhiBKT1ZJQ0EKK0pPVkFOT1ZJxIYgSk9WSUNBCitKT1ZBTk9WScSGIEpPVklDQQorSk9WQU5PVknEhiBKVUxJSkFOQQorSk9WQU5PVknEhiBKVUxLQQorSk9WQU5PVknEhiBLQVRBUklOQQorSk9WQU5PVknEhiBLQVRJQ0EKK0pPVkFOT1ZJxIYgS09TQU5BCitKT1ZBTk9WScSGIEtPU1RBCitKT1ZBTk9WScSGIEtPU1RBCitKT1ZBTk9WScSGLUtPU1RJxIYgRFJBR09TTEFWQQorSk9WQU5PVknEhiBLT1ZJTktBCitKT1ZBTk9WScSGIEtTRU5JSkEKK0pPVkFOT1ZJxIYgTEFaQVIKK0pPVkFOT1ZJxIYgTEFaQVIKK0pPVkFOT1ZJxIYgTEFaQVIKK0pPVkFOT1ZJxIYgTEFaQVIKK0pPVkFOT1ZJxIYgTEFaQVIKK0pPVkFOT1ZJxIYgTEpJTEpBTkEKK0pPVkFOT1ZJxIYgTEpVQkFOCitKT1ZBTk9WScSGIExKVUJJxaBBCitKT1ZBTk9WScSGIExKVUJJxaBBCitKT1ZBTk9WScSGIExKVUJJQ0EKK0pPVkFOT1ZJxIYgTEpVQklDQQorSk9WQU5PVknEhiBMSlVCSUNBCitKT1ZBTk9WScSGIExKVUJJQ0EKK0pPVkFOT1ZJxIYgTEpVQklOS0EKK0pPVkFOT1ZJxIYgTEpVQklOS0EKK0pPVkFOT1ZJxIYgTEpVQklWT0pFIERSCitKT1ZBTk9WScSGIExKVUJPTUlSIE1SCitKT1ZBTk9WScSGIExKVUJPTUlSCitKT1ZBTk9WScSGIExKVUJPCitKT1ZBTk9WScSGIExVS0EKK0pPVkFOT1ZJxIYgTFVLQQorSk9WQU5PVknEhiBMVUtBCitKT1ZBTk9WScSGIExVS0EKK0pPVkFOT1ZJxIYgTUFMScWgQQorSk9WQU5PVknEhiBNQVJBCitKT1ZBTk9WScSGIE1BUkEKK0pPVkFOT1ZJxIYgTUFSQQorSk9WQU5PVknEhiBNQVJJQ0EKK0pPVkFOT1ZJxIYgTUFSSUpBCitKT1ZBTk9WScSGIE1BUklKQQorSk9WQU5PVknEhiBNQVJJSkEKK0pPVkFOT1ZJxIYgTUFSSUpBCitKT1ZBTk9WScSGIE1BUklKQQorSk9WQU5PVknEhiBNQVJJSkEKK0pPVkFOT1ZJxIYgTUFSSUpBCitKT1ZBTk9WScSGIE1BUktPCitKT1ZBTk9WScSGIE1BUktPCitKT1ZBTk9WScSGIE1JxIZPCitKT1ZBTk9WScSGIE1JSEFKTE8KK0pPVkFOT1ZJxIYgTUlIQUpMTworSk9WQU5PVknEhiBNSUhBSkxPCitKT1ZBTk9WScSGIE1JSkFUCitKT1ZBTk9WScSGIE1JSkEKK0pPVkFOT1ZJxIYgTUlMQcWgSU4KK0pPVkFOT1ZJxIYgTUlMQURJTgorSk9WQU5PVknEhiBNSUxBTiBBRFZPS0FUCitKT1ZBTk9WScSGIE1JTEFOIERJUEwgSU5HCitKT1ZBTk9WScSGIE1JTEFOS0EKK0pPVkFOT1ZJxIYgTUlMQU5LQQorSk9WQU5PVknEhiBNSUxBTktBCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEFOCitKT1ZBTk9WScSGIE1JTEVOQQorSk9WQU5PVknEhiBNSUxFTkEKK0pPVkFOT1ZJxIYgTUlMRU5BCitKT1ZBTk9WScSGIE1JTEVOS08gRFIKK0pPVkFOT1ZJxIYgTUlMRU5LTworSk9WQU5PVknEhiBNSUxFTktPCitKT1ZBTk9WScSGIE1JTEVOS08KK0pPVkFOT1ZJxIYgTUlMRU5LTworSk9WQU5PVknEhiBNSUxFTktPCitKT1ZBTk9WScSGIE1JTEVOS08KK0pPVkFOT1ZJxIYgTUlMRU5LTworSk9WQU5PVknEhiBNSUxFTlRJSkUKK0pPVkFOT1ZJxIYgTUlMRVZBCitKT1ZBTk9WScSGIE1JTEUKK0pPVkFOT1ZJxIYgTUlMRQorSk9WQU5PVknEhiBNSUxJxIYKK0pPVkFOT1ZJxIYgTUlMScSGCitKT1ZBTk9WScSGIE1JTElDQQorSk9WQU5PVknEhiBNSUxJQ0EKK0pPVkFOT1ZJxIYgTUlMSUNBCitKT1ZBTk9WScSGIE1JTElKQU5BCitKT1ZBTk9WScSGIE1JTElTQVYKK0pPVkFOT1ZJxIYgTUlMSVZPSkUKK0pPVkFOT1ZJxIYgTUlMSVZPSgorSk9WQU5PVknEhiBNSUxJVk9KCitKT1ZBTk9WScSGIE1JTEpBTkEKK0pPVkFOT1ZJxIYgTUlMS0FOCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT05KQQorSk9WQU5PVknEhiBNSUxPUkFEIERJUEwgSU5HCitKT1ZBTk9WScSGIE1JTE9SQUQgRFIgTEVLQVIKK0pPVkFOT1ZJxIYgTUlMT1JBRAorSk9WQU5PVknEhiBNSUxPUkFECitKT1ZBTk9WScSGIE1JTE9WQU4KK0pPVkFOT1ZJxIYgTUlMT1ZBTgorSk9WQU5PVknEhiBNSUxVVElOCitKT1ZBTk9WScSGIE1JTFVUSU4KK0pPVkFOT1ZJxIYgTUlPRFJBRworSk9WQU5PVknEhiBNSU9EUkFHCitKT1ZBTk9WScSGIE1JT0RSQUcKK0pPVkFOT1ZJxIYgTUlPRFJBRworSk9WQU5PVknEhiBNSU9EUkFHCitKT1ZBTk9WScSGIE1JT0RSQUcKK0pPVkFOT1ZJxIYgTUlSQQorSk9WQU5PVknEhiBNSVJBCitKT1ZBTk9WScSGIE1JUkEKK0pPVkFOT1ZJxIYgTUlSSkFOQQorSk9WQU5PVknEhiBNSVJKQU5BCitKT1ZBTk9WScSGIE1JUkpBTkEKK0pPVkFOT1ZJxIYgTUlSS08KK0pPVkFOT1ZJxIYgTUlSS08KK0pPVkFOT1ZJxIYgTUlSS08KK0pPVkFOT1ZJxIYgTUlSS08KK0pPVkFOT1ZJxIYgTUlST0xKVUIKK0pPVkFOT1ZJxIYgTUlST1NMQVZBCitKT1ZBTk9WScSGIE1JUk9TTEFWQQorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVJPU0xBVgorSk9WQU5PVknEhiBNSVRBUgorSk9WQU5PVknEhiBNTEHEkEEKK0pPVkFOT1ZJxIYgTUxBREVOS0EKK0pPVkFOT1ZJxIYgTUxBREVOCitKT1ZBTk9WScSGIE1MQURFTgorSk9WQU5PVknEhiBNT03EjElMTworSk9WQU5PVknEhiBNT03EjElMTworSk9WQU5PVknEhiBNT01JUgorSk9WQU5PVknEhiBOQURBCitKT1ZBTk9WScSGIE5BREEKK0pPVkFOT1ZJxIYgTkFEQQorSk9WQU5PVknEhiBOQURBCitKT1ZBTk9WScSGIE5BREXFvURBCitKT1ZBTk9WScSGIE5BREXFvURBCitKT1ZBTk9WScSGIE5BREXFvURBCitKT1ZBTk9WScSGIE5FQk9KxaBBCitKT1ZBTk9WScSGIE5FREEKK0pPVkFOT1ZJxIYgTkVERUxKS0EKK0pPVkFOT1ZJxIYgTkVNQU5KQQorSk9WQU5PVknEhiBORU1BTkpBCitKT1ZBTk9WScSGIE5FTkFEIEFEVk9LQVQKK0pPVkFOT1ZJxIYgTkVOQUQKK0pPVkFOT1ZJxIYgTkVOQUQKK0pPVkFOT1ZJxIYgTkVOQUQKK0pPVkFOT1ZJxIYgTkVWRU5BCitKT1ZBTk9WScSGIE5FVkVOS0EKK0pPVkFOT1ZJxIYgTkVWRU5LQQorSk9WQU5PVknEhiBOSUtPTEEKK0pPVkFOT1ZJxIYgTklLT0xBCitKT1ZBTk9WScSGIE5JS09MQQorSk9WQU5PVknEhiBOSUtPTEEKK0pPVkFOT1ZJxIYgTklLT0xBCitKT1ZBTk9WScSGIE5PVkFLCitKT1ZBTk9WScSGIE5PVklDQQorSk9WQU5PVknEhiBPQlJBRAorSk9WQU5PVknEhiBPTEdBCitKT1ZBTk9WScSGIE9MR0EKK0pPVkFOT1ZJxIYgT0xHQQorSk9WQU5PVknEhiBPTEdBCitKT1ZBTk9WScSGIE9MR0lDQQorSk9WQU5PVknEhiBPU1RPSkEKK0pPVkFOT1ZJxIYgT1NUT0pBCitKT1ZBTk9WScSGIE9TVE9KQQorSk9WQU5PVknEhiBQQVZMRQorSk9WQU5PVknEhiBQQVZMRQorSk9WQU5PVknEhiBQQVZMRQorSk9WQU5PVknEhiBQRVJBCitKT1ZBTk9WScSGIFBFUklDQQorSk9WQU5PVknEhiBQRVJJQ0EKK0pPVkFOT1ZJxIYgUEVSTworSk9WQU5PVknEhiBQRVJPCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBFVEFSCitKT1ZBTk9WScSGIFBSRURSQUcgRFIKK0pPVkFOT1ZJxIYgUFJFRFJBRworSk9WQU5PVknEhiBQUkVEUkFHCitKT1ZBTk9WScSGIFBSRURSQUcKK0pPVkFOT1ZJxIYgUkFERQorSk9WQU5PVknEhiBSQURJxaBBCitKT1ZBTk9WScSGIFJBRElOS0EKK0pPVkFOT1ZJxIYgUkFESVZPSgorSk9WQU5PVknEhiBSQURJVk9KCitKT1ZBTk9WScSGIFJBRE1JTEEKK0pPVkFOT1ZJxIYgUkFETUlMQQorSk9WQU5PVknEhiBSQURNSUxBCitKT1ZBTk9WScSGIFJBRE9NSVIgRFIKK0pPVkFOT1ZJxIYgUkFET01JUgorSk9WQU5PVknEhiBSQURPTkpBCitKT1ZBTk9WScSGIFJBRE9TTEFWQQorSk9WQU5PVknEhiBSQURPU0xBVgorSk9WQU5PVknEhiBSQURPU0xBVgorSk9WQU5PVknEhiBSQURPVkFOCitKT1ZBTk9WScSGIFJBRE9WQU4KK0pPVkFOT1ZJxIYgUkFET1ZBTgorSk9WQU5PVknEhiBSQURPVkFOCitKT1ZBTk9WScSGIFJBRE9WQU4KK0pPVkFOT1ZJxIYgUkFKS08KK0pPVkFOT1ZJxIYgUkFOxJBFTAorSk9WQU5PVknEhiBSQU5LTworSk9WQU5PVknEhiBSQVRLQQorSk9WQU5PVknEhiBSVcW9QQorSk9WQU5PVknEhiBSVcW9SUNBCitKT1ZBTk9WScSGIFJVxb1JQ0EKK0pPVkFOT1ZJxIYgUlXFvUlDQQorSk9WQU5PVknEhiBTQcWgQQorSk9WQU5PVknEhiBTQVZBCitKT1ZBTk9WScSGIFNBVkVUQQorSk9WQU5PVknEhiBTQVZPCitKT1ZBTk9WScSGIFNBVk8KK0pPVkFOT1ZJxIYgU0VMSU1JUgorSk9WQU5PVknEhiBTRVJBRklNCitKT1ZBTk9WScSGIFNJTUEKK0pPVkFOT1ZJxIYgU0lNQQorSk9WQU5PVknEhiBTSU1PCitKT1ZBTk9WScSGIFNJTknFoEEKK0pPVkFOT1ZJxIYgU0xBVklDQQorSk9WQU5PVknEhiBTTEFWS08KK0pPVkFOT1ZJxIYgU0xBVktPCitKT1ZBTk9WScSGIFNMQVZLTworSk9WQU5PVknEhiBTTEFWS08KK0pPVkFOT1ZJxIYgU0xPQk9EQU4gRFIKK0pPVkFOT1ZJxIYgU0xPQk9EQU4KK0pPVkFOT1ZJxIYgU0xPQk9EQU4KK0pPVkFOT1ZJxIYgU0xPQk9EQU4KK0pPVkFOT1ZJxIYgU0xPQk9EQU4KK0pPVkFOT1ZJxIYgU0xPQk9EQU4KK0pPVkFOT1ZJxIYgU0xPQk9EQU4KK0pPVkFOT1ZJxIYgU01JTEpBCitKT1ZBTk9WScSGIFNNSUxKQQorSk9WQU5PVknEhiBTTUlMSktBCitKT1ZBTk9WScSGIFNNSUxKS0EKK0pPVkFOT1ZJxIYgU09GSUpBCitKT1ZBTk9WScSGIFNQSVJBCitKT1ZBTk9WScSGIFNQT01FTktBCitKT1ZBTk9WScSGIFNSxJBBTgorSk9WQU5PVknEhiBTUkJJU0xBVgorSk9WQU5PVknEhiBTUkVURU4KK0pPVkFOT1ZJxIYgU1RBTknFoEEKK0pPVkFOT1ZJxIYgU1RBTklNSVIKK0pPVkFOT1ZJxIYgU1RBTklNSVIKK0pPVkFOT1ZJxIYgU1RBTklNSVIKK0pPVkFOT1ZJxIYgU1RBTktPCitKT1ZBTk9WScSGIFNUQU5PSkUKK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RPSsWgQQorSk9WQU5PVknEhi1TVE9KQU4gR0VSVFJVREEgRFIKK0pPVkFOT1ZJxIYgU1RPSkFOS0EKK0pPVkFOT1ZJxIYgU1RPSkFOS0EKK0pPVkFOT1ZJxIYgU1RPSkFOCitKT1ZBTk9WScSGIFNUT0pBTgorSk9WQU5PVknEhiBTVE9KQU4KK0pPVkFOT1ZJxIYgU1RPSkFOCitKT1ZBTk9WScSGIFNVWkFOQQorSk9WQU5PVknEhiBTVkVUTEFOQQorSk9WQU5PVknEhiBTVkVUT1pBUgorSk9WQU5PVknEhiBTVkVUT1pBUgorSk9WQU5PVknEhiBTVkVUT1pBUgorSk9WQU5PVknEhiBTVkVUT1pBUgorSk9WQU5PVknEhiBUQVRKQU5BCitKT1ZBTk9WScSGIFRFT0RPUkEKK0pPVkFOT1ZJxIYgVElIT01JUgorSk9WQU5PVknEhiBUSUhPTUlSCitKT1ZBTk9WScSGIFRPRE9SCitKT1ZBTk9WScSGIFRPTUEKK0pPVkFOT1ZJxIYgVE9NSVNMQVYKK0pPVkFOT1ZJxIYgVE9NSVNMQVYKK0pPVkFOT1ZJxIYgVFJBSktPCitKT1ZBTk9WScSGIFRVR09NSVIKK0pPVkFOT1ZJxIYgVVJPxaAKK0pPVkFOT1ZJxIYgVkFTQQorSk9WQU5PVknEhiBWQVNBCitKT1ZBTk9WScSGIFZBU0lMSUpFCitKT1ZBTk9WScSGIFZBU0lMSUpFCitKT1ZBTk9WScSGIFZBU0lMSUpFCitKT1ZBTk9WScSGIFZBU0lMSUpFCitKT1ZBTk9WScSGIFZBU0lMSgorSk9WQU5PVknEhiBWRUxJxIxLTworSk9WQU5PVknEhiBWRUxJQk9SCitKT1ZBTk9WScSGIFZFTElCT1IKK0pPVkFOT1ZJxIYgVkVMSUJPUgorSk9WQU5PVknEhiBWRUxJTktBCitKT1ZBTk9WScSGIFZFUkEKK0pPVkFOT1ZJxIYgVkVSQQorSk9WQU5PVknEhiBWRVJBCitKT1ZBTk9WScSGIFZFUkEKK0pPVkFOT1ZJxIYgVkVSSUNBCitKT1ZBTk9WScSGIFZFUklDQQorSk9WQU5PVknEhiBWRVJPTEpVQgorSk9WQU5PVknEhiBWRVNFTElOCitKT1ZBTk9WScSGIFZFU05BCitKT1ZBTk9WScSGIFZFU05BCitKT1ZBTk9WScSGIFZFU05BCitKT1ZBTk9WScSGIFZJREEKK0pPVkFOT1ZJxIYgVklET1NMQVYKK0pPVkFOT1ZJxIYgVklMTUEKK0pPVkFOT1ZJxIYgVkxBREEKK0pPVkFOT1ZJxIYgVkxBREEKK0pPVkFOT1ZJxIYgVkxBRElNSVIKK0pPVkFOT1ZJxIYgVkxBRElNSVIKK0pPVkFOT1ZJxIYgVkxBRElNSVIKK0pPVkFOT1ZJxIYgVkxBRElNSVIKK0pPVkFOT1ZJxIYgVkxBRElTTEFWQQorSk9WQU5PVknEhiBWTEFKS08KK0pPVkFOT1ZJxIYgVkxBU1RJTUlSCitKT1ZBTk9WScSGIFZPSklTTEFWIERSIFBST0YKK0pPVkFOT1ZJxIYgVk9KSVNMQVYKK0pPVkFOT1ZJxIYgVk9KSVNMQVYKK0pPVkFOT1ZJxIYgVk9KSVNMQVYKK0pPVkFOT1ZJxIYgVk9KSVNMQVYKK0pPVkFOT1ZJxIYgVk9KSVNMQVYKK0pPVkFOT1ZJxIYgVk9KSVNMQVYKK0pPVkFOT1ZJxIYgVlXEjEVUQQorSk9WQU5PVknEhiBaQUdPUktBCitKT1ZBTk9WScSGIFpERU5LQQorSk9WQU5PVknEhiBaRFJBVktPCitKT1ZBTk9WScSGIFpEUkFWS08KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQU4KK0pPVkFOT1ZJxIYgWk9SQQorSk9WQU5PVknEhiBaT1JBCitKT1ZBTk9WScSGIFpPUklDQQorSk9WQU5PVknEhiBaT1JJQ0EKK0pPVkFOT1ZJxIYgWk9SSUNBCitKT1ZBTk9WScSGIFpPUktBCitKT1ZBTk9WScSGIFpWT05JTUlSCitKT1ZBTk9WU0tBIENWRVRBCitKT1ZBTk9WU0tBIFRBU0tBCitKT1ZBTk9WU0tJIERJTUlUQVIKK0pPVkFOT1ZTS0kgRFXFoEFOCitKT1ZBTk9WU0tJIE1JTEUKK0pPVkFOT1ZTS0kgTUlMRQorSk9WQU5PVlNLSSBNSUxJQ0EKK0pPVkFOT1ZTS0kgTklLT0xBCitKT1ZBTk9WU0tJIFBFVEFSCitKT1ZBTk9WU0tJIFNJTUVPTkEKK0pPVkFOT1ZTS0kgU1RPSkFESU4KK0pPVkVSIE1JSEFMSgorSk9WRVRJxIYgQU5EUklKQQorSk9WRVRJxIYgQlJBTktPCitKT1ZFVEnEhiBCUkFOS08KK0pPVkVUScSGIE1JTElDQQorSk9WRVRJxIYgU1RBTktPCitKT1ZFVEnEhiBWRVNFTElOCitKT1ZJxIxFVknEhiBWTEFESU1JUiBEUgorSk9WScSMScSGIMSMRURPTUlSCitKT1ZJxIxJxIYgxb1BUktPCitKT1ZJxIxJxIYgxb1BUktPCitKT1ZJxIxJxIYgxb1FTEpLTworSk9WScSMScSGIMW9SVZBTgorSk9WScSMScSGIMSQT1LEkEUKK0pPVknEjEnEhiDEkE9SxJBFCitKT1ZJxIxJxIYgxJBVUkEKK0pPVknEjEnEhiBBTktJQ0EKK0pPVknEjEnEhiBCT8WgS08KK0pPVknEjEnEhiBCT0dEQU4KK0pPVknEjEnEhiBCT1JBCitKT1ZJxIxJxIYgQlJBTkUKK0pPVknEjEnEhiBCUkFOSVNMQVZBCitKT1ZJxIxJxIYgQlJBTktBCitKT1ZJxIxJxIYgREVKQU4KK0pPVknEjEnEhiBEUkFHQU4KK0pPVknEjEnEhiBEUkFHQU4KK0pPVknEjEnEhiBEUkFHQU4KK0pPVknEjEnEhiBEUkFHQU4KK0pPVknEjEnEhiBEUkFHT0xKVUIKK0pPVknEjEnEhiBEVcWgQU4KK0pPVknEjEnEhiBEVcWgQU4KK0pPVknEjEnEhiBEVcWgS08KK0pPVknEjEnEhiBHRU9SR0lKRQorSk9WScSMScSGIEhFTEVOQQorSk9WScSMScSGIElMSUpBCitKT1ZJxIxJxIYgSUxJSkEKK0pPVknEjEnEhiBKRUxJU0FWRVRBCitKT1ZJxIxJxIYgSk9WQU4KK0pPVknEjEnEhiBKT1ZJQ0EKK0pPVknEjEnEhiBLQVRJQ0EKK0pPVknEjEnEhiBMQVpBUgorSk9WScSMScSGIExFUE9TQVZBCitKT1ZJxIxJxIYgTEpJTEpBTkEKK0pPVknEjEnEhiBMSklMSkFOQQorSk9WScSMScSGIExKVUJJQ0EKK0pPVknEjEnEhiBMSlVCSUNBCitKT1ZJxIxJxIYgTEpVQklOS0EKK0pPVknEjEnEhiBMSlVCT01JUgorSk9WScSMScSGIE1BS1NJTQorSk9WScSMScSGIE1BUkEKK0pPVknEjEnEhiBNQVJJSkEKK0pPVknEjEnEhiBNQVJJSkEKK0pPVknEjEnEhiBNQVJLTworSk9WScSMScSGIE1BUktPCitKT1ZJxIxJxIYgTUFSS08KK0pPVknEjEnEhiBNQVJLTworSk9WScSMScSGIE1JTEFESU4KK0pPVknEjEnEhiBNSUxBTgorSk9WScSMScSGIE1JTEFOCitKT1ZJxIxJxIYgTUlMRU5LTworSk9WScSMScSGIE1JTEVOS08KK0pPVknEjEnEhiBNSUxJQ0EKK0pPVknEjEnEhiBNSUxJQ0EKK0pPVknEjEnEhiBNSUxPxaAKK0pPVknEjEnEhiBNSUxPxaAKK0pPVknEjEnEhiBNSUxPTUlSCitKT1ZJxIxJxIYgTUlMT1JBRAorSk9WScSMScSGIE1JTE9WQU4KK0pPVknEjEnEhiBNSVJPU0xBVgorSk9WScSMScSGIE1MQURFTgorSk9WScSMScSGIE9CUkFECitKT1ZJxIxJxIYgT0xHQQorSk9WScSMScSGIFBBSkEKK0pPVknEjEnEhiBQRVRBUgorSk9WScSMScSGIFJBREEKK0pPVknEjEnEhiBSQURFCitKT1ZJxIxJxIYgUkFESVNMQVYKK0pPVknEjEnEhiBSQURJVk9KRQorSk9WScSMScSGIFJBRE9NSVIKK0pPVknEjEnEhiBSQURPVkFOCitKT1ZJxIxJxIYgUkFUS08KK0pPVknEjEnEhiBTQVZFVEEKK0pPVknEjEnEhiBTSU1PCitKT1ZJxIxJxIYgU0xBVktPCitKT1ZJxIxJxIYgU0xPQk9EQU5LQQorSk9WScSMScSGIFNMT0JPREFOCitKT1ZJxIxJxIYgU1JFVEVOCitKT1ZJxIxJxIYgU1RBTktPCitKT1ZJxIxJxIYgU1ZFVElTTEFWCitKT1ZJxIxJxIYgU1ZFVE9aQVIKK0pPVknEjEnEhiBTVkVUT1pBUgorSk9WScSMScSGIFRBTkFTSUpFCitKT1ZJxIxJxIYgVEFUSkFOQQorSk9WScSMScSGIFRPRE9SCitKT1ZJxIxJxIYgVVJPxaAKK0pPVknEjEnEhiBWQVNBCitKT1ZJxIxJxIYgVkVSSUNBCitKT1ZJxIxJxIYgVk9KSU4KK0pPVknEjEnEhiBWT0pJU0xBVgorSk9WScSMScSGIFpEUkFWS08KK0pPVknEjEnEhiBaT1JBTgorSk9WScSMSU4gQUxFS1NBTkRBUgorSk9WScSMSU4gQU5JQ0EKK0pPVknEjElOIEtBVElDQQorSk9WScSMSU4gTEpVQklDQQorSk9WScSMSU4gTEpVQklDQQorSk9WScSMSU4gTUlMT1ZBTgorSk9WScSMSU4gU0xBVktPCitKT1ZJxIxJTiBTT0ZJSkEKK0pPVknEjElOIFRPxaBBCitKT1ZJxaBFVknEhiBNSUxBTgorSk9WScWgRVZJxIYgTUlSSkFOQQorSk9WScWgRVZJxIYgWkRSQVZLTworSk9WScWgScSGIMW9QVJLTworSk9WScWgScSGIMSQVVJPCitKT1ZJxaBJxIYgQk9STworSk9WScWgScSGIERVxaBBTgorSk9WScWgScSGIEpPVkFOCitKT1ZJxaBJxIYgTUlUQVIKK0pPVknFoEnEhiBOSUtPTEEKK0pPVknFoEnEhiBQQVZMRQorSk9WScWgScSGIFBSRURSQUcKK0pPVknFoEnEhiBTSU1PCitKT1ZJxIYgxIxFRE9NSVIKK0pPVknEhiDFvUFSS08KK0pPVknEhiDFvUFSS08KK0pPVknEhiDFvUlWT0pJTgorSk9WScSGIMW9SVZPUkFECitKT1ZJxIYgxb1JVk9SQUQKK0pPVknEhiDEkE9SxJBFCitKT1ZJxIYgQUxFS1NBTkRBUgorSk9WScSGIEFMRUtTQU5EQVIKK0pPVknEhiBBTklDQQorSk9WScSGIEJPxaBLTworSk9WScSGIEJPQkFOCitKT1ZJxIYgQk9SQQorSk9WScSGIEJSQU5LTworSk9WScSGIEJSQU5LTworSk9WScSGIENWRVRBCitKT1ZJxIYgREFWSUQKK0pPVknEhiBESU1JVFJJSkUKK0pPVknEhiBEUkFHQU5BCitKT1ZJxIYgRFJBR09MSlVCCitKT1ZJxIYgRFJBR09MSlVCCitKT1ZJxIYgRFXFoEFOCitKT1ZJxIYgRFXFoEFOCitKT1ZJxIYgRVJJS0EKK0pPVknEhiBHT0pLTworSk9WScSGIEdPUkRBTkEKK0pPVknEhiBJVkFOQQorSk9WScSGIElWQU4KK0pPVknEhiBKQURSQU5LQSBEUgorSk9WScSGIEpBU05BCitKT1ZJxIYgSk9DTworSk9WScSGIEpPVkFOS0EKK0pPVknEhiBKT1ZBTgorSk9WScSGIEpPVkFOCitKT1ZJxIYgSk9WTworSk9WScSGIEtPU1RBCitKT1ZJxIYgS1NFTklKQQorSk9WScSGIExKVUJJxaBBCitKT1ZJxIYgTUFSSUNBCitKT1ZJxIYgTUFSSUpBTgorSk9WScSGIE1BUktPCitKT1ZJxIYgTUVMSVRBCitKT1ZJxIYgTUlMQURJTgorSk9WScSGIE1JTEFOS0EKK0pPVknEhiBNSUxBTktBCitKT1ZJxIYgTUlMQU4KK0pPVknEhiBNSUxBTgorSk9WScSGIE1JTEFOCitKT1ZJxIYgTUlMRU5LTworSk9WScSGIE1JTElWT0pFCitKT1ZJxIYgTUlMT0pJQ0EKK0pPVknEhiBNSUxVVElOCitKT1ZJxIYgTUlMVVRJTgorSk9WScSGIE1JUkEKK0pPVknEhiBNSVJKQU5BCitKT1ZJxIYgTUlSSkFOQQorSk9WScSGIE1JUk9TTEFWQQorSk9WScSGIE1JUk9TTEFWCitKT1ZJxIYgTUlUQVIKK0pPVknEhiBOSUtPTEEKK0pPVknEhiBOSUtPTEEKK0pPVknEhiBOSUtPTEEKK0pPVknEhiBOSUtPTEEKK0pPVknEhiBQQUpJQ0EKK0pPVknEhiBQRVJTSURBCitKT1ZJxIYgUEVUQVIKK0pPVknEhiBQRVRBUgorSk9WScSGIFJBREUKK0pPVknEhiBSQURJVk9KRQorSk9WScSGIFJBRElWT0pFCitKT1ZJxIYgUkFET1ZBTgorSk9WScSGIFJBSktPCitKT1ZJxIYgU0FWTworSk9WScSGIFNMQVZLTworSk9WScSGIFNMT0JPREFOCitKT1ZJxIYgU1BBU0VOSUpBCitKT1ZJxIYgU1RBTkEKK0pPVknEhiBTVEFOScWgQQorSk9WScSGIFNUQU5LTworSk9WScSGIFNUQU5LTworSk9WScSGIFNUQU5LTworSk9WScSGIFNURVZBTgorSk9WScSGIFNWRVRJU0xBVgorSk9WScSGIFZBU0EKK0pPVknEhiBWRUxJTUlSCitKT1ZJxIYgVkVMSVpBUgorSk9WScSGIFZFTEpLTworSk9WScSGIFZFUkEKK0pPVknEhiBWRVJBCitKT1ZJxIYgVkVSQQorSk9WScSGIFZMQURBCitKT1ZJxIYgVkxBREEKK0pPVknEhiBWTEFEQQorSk9WScSGIFZMQURBCitKT1ZJxIYgVkxBRElNSVIKK0pPVknEhiBWTEFESVNMQVYKK0pPVknEhiBWT0pJU0xBVgorSk9WScSGIFZVS09TQVZBCitKT1ZJxIYgWkRSQVZLTworSk9WScSGIFpWT05JTUlSCitKT1ZJxIZFVknEhiBCT8W9SURBUgorSk9WScSGRVZJxIYgTUlMQQorSk9WScSGRVZJxIYgTUlMVVRJTgorSk9WScSGRVZJxIYgTkVOQUQKK0pPVknEhkVWScSGIFNUQU5LTyBESVBMIElORworSk9WScSGRVZJxIYgVklET1NBVkEKK0pPVknEhkVWScSGIFpPUkFOCitKT1ZJTiDFvUlWQQorSk9WSU4gQU7EkEVMS0EKK0pPVklOIEJPUklWT0oKK0pPVklOIEJSQU5LTworSk9WSU4gRFJBR0FOCitKT1ZJTiBEUkFHT01JUgorSk9WSU4gRFXFoEFOCitKT1ZJTiBEVcWgQU4KK0pPVklOIElWQU4KK0pPVklOIEpFTEVOQQorSk9WSU4gTEpVQklDQQorSk9WSU4gTUlMQU4KK0pPVklOIE1JTElWT0ogRFIKK0pPVklOIE1JTE/FoAorSk9WSU4gTUlSSkFOQQorSk9WSU4gUkFET1NMQVYKK0pPVklOIFJBRE9WQU4KK0pPVklOIFNJTUEKK0pPVklOIFNMQVZLTyBEUgorSk9WSU4gU1ZFVExBTkEKK0pPVklOIFZFU05BCitKT1ZJTiBaTEFUT0pFCitKT1ZJTiBaVVNLQQorSk9WSU5PViBCT0dEQU4KK0pPVktPVknEhiBNSU9EUkFHCitKT1ZLT1ZJxIYgUkFUT01JUgorSk9WT1ZJxIYgxb1FTEpLTworSk9WT1ZJxIYgQU5LQQorSk9WT1ZJxIYgQk/FvUlEQVIKK0pPVk9WScSGIEJSQU5JU0xBVgorSk9WT1ZJxIYgSk9WQU4KK0pPVk9WScSGIEpPVkFOCitKT1ZPVknEhiBMSklMSkFOQQorSk9WT1ZJxIYgTUlMT1JBRAorSk9WT1ZJxIYgTUlMT1ZBTgorSk9WT1ZJxIYgTklLT0xBCitKT1ZPVknEhiBOSUtPTEEKK0pPVk9WScSGIFJBREUKK0pPVk9WScSGIFJBRE9NSVIKK0pPVk9WScSGIFJBSktPCitKT1ZPVknEhiBTVEFOQQorSk9WT1ZJxIYgU1RPSkFOCitKT1pBTk9WIERBTklDQQorSk9aQU5PViBNSUxBTgorSk9aQU5PViBTTE9CT0RBTgorSk9aQU5PViBaT1JBTgorSk9aRUbEjEFLIElWQU4KK0pPWknEhiBKT1pBCitKT1pJxIYgS0FUQVJJTkEKK0pPWknEhiBNSU9EUkFHCitKT1pJxIYgTUlSS08KK0pPWknEhiBQRUpPCitKVcWgScSGIE5BVEFMSUpBCitKVcWgS09WScSGIEJSQU5JU0xBVgorSlVBTklOIMW9SVZPSklOIERJUEwgSU5HCitKVUFOSU4gSk9WQU4KK0pVR0lOIE1JTEVOQQorSlVHT1ZJxIYgxJBVUkHEkAorSlVHT1ZJxIYgTEVQT1NBVkEKK0pVR09WScSGIE1JTEUKK0pVR09WScSGIE1JTE/FoAorSlVHT1ZJxIYgVkVTRUxJTgorSlVHT1ZJxIYgWkRSQVZLTworSlVIQVMgxJBFUsSQCitKVUhBUyBBTkRSQcWgCitKVUhBUyBBTkRSQcWgCitKVUhBUyBBTlRBTAorSlVIQVMgREVaRQorSlVIQVMgRVJORQorSlVIQVMgRVZBCitKVUhBUyBGRVJFTkMKK0pVSEFTIEZFUkVOQworSlVIQVMgR0VaQSBEUiBQUk9GRVNPUgorSlVIQVMgR0laRUxBCitKVUhBUyBJVkFOS0EKK0pVSEFTIEpBTk/FoAorSlVIQVMgSkFOT8WgCitKVUhBUyBKRUxJU0FWRVRBCitKVUhBUyBLQVRBUklOQQorSlVIQVMtS09TVEnEhiDEkEVSxJBJCitKVUhBUyBMQURJU0xBVgorSlVIQVMgTUFSSUpBCitKVUhBUyBNSUhBTEoKK0pVSEFTIE1JSEFMSgorSlVIQVMgTUlKTworSlVIQVMgTUlST04KK0pVSEFTIFNURVZBTgorSlVIQVMgU1RFVkFOCitKVUhBUyBTVEVWQU4KK0pVSEFTIFNURVZBTgorSlVIQVMgVElCT1IgRElQTCBJTkcKK0pVSEFTIFRJQk9SCitKVUhBUyBWQUxFUklKQQorSlVIQVMgVklLVE9SSUpBCitKVUhBUyBWTEFESVNMQVYKK0pVS0nEhiBCQU5FCitKVUtJxIYgRlJBTkpBCitKVUtJxIYgRlJBTkpPCitKVUtJxIYgSVZJQ0EKK0pVS0nEhiBKT1NJUAorSlVLScSGIExVS0EKK0pVS0nEhiBNQVJLTworSlVLScSGIE5BREEKK0pVS0nEhiBWTEFESVNMQVYKK0pVS09WScSGIFJBU0lNCitKVUxJTkFDIERSQUdJTkpBCitKVU5HIMSQRVLEkAorSlVORyBGUkFOQ0nFoEtBCitKVU5HIElCT0xKS0EKK0pVTkcgSUxESUtPCitKVU5HIElWSUNBCitKVU5HIEpPU0lQCitKVU5HIEpPVkFOCitKVU5HIEtBUk9MSiBNUgorSlVORyBNQVJJSkEKK0pVTkcgUk9CRVJUCitKVU5HIFJPQkVSVAorSlVORyBWRVJJQ0EKK0pVTlVaT1ZJxIYgSVNNRVQKK0pVUEVLIFpERU5LQQorSlVSxIxFVknEhiBNQVJLTworSlVSxIxJxIYgxb1FTEpLTworSlVSxIxJxIYgREVTQU5LQQorSlVSxaBJxIYgQ1ZFVEEKK0pVUkFHQSBNQVJLTworSlVSQUdBIE1JTE9SQUQKK0pVUkFLScSGIEdPUkFOCitKVVJBS0nEhiBJTElKQQorSlVSQUtJxIYgSVZBTgorSlVSQUtJxIYgSkVMQQorSlVSQUtJxIYgSk9aTworSlVSQUtJxIYgUEVKTworSlVSQUtJxIYgU1RJUE8KK0pVUkFOSkkgTUFSSUpBCitKVVJBUyBBTklDQQorSlVSQVMgQU5URQorSlVSQVNPVknEhiBKT1ZBTgorSlVSQ0Egxb1FTEpLTworSlVSQ0EgxJBPUsSQRQorSlVSQ0EgSVZBTgorSlVSQ0EgTEFSSVNBCitKVVJFxaBFViBQRVRBUgorSlVSRcWgScSGIEpPWk8KK0pVUkXFoEnEhiBWRVJBCitKVVJJxaBFVknEhiBBTktBCitKVVJJxaBFVknEhiBNQVJBCitKVVJJxaBFVknEhiBNSVJLTworSlVSScWgScSGIMSQT1LEkEUKK0pVUknFoEnEhiDEkFVSQQorSlVSScWgScSGIEFMT0paCitKVVJJxaBJxIYgQU5EUklKQQorSlVSScWgScSGIEJPR09MSlVCCitKVVJJxaBJxIYgRFJBR0FOCitKVVJJxaBJxIYgRlJBTkpBCitKVVJJxaBJxIYgR09TUEFWQQorSlVSScWgScSGIElHTkpBVAorSlVSScWgScSGIElMSU5LQQorSlVSScWgScSGIElWQU4KK0pVUknFoEnEhiBKRUxFTkEKK0pVUknFoEnEhiBKT1ZBTgorSlVSScWgScSGIEtBVEFSSU5BCitKVVJJxaBJxIYgTEpVQklDQQorSlVSScWgScSGIE1BUklKQQorSlVSScWgScSGIE1JTEVOS08KK0pVUknFoEnEhiBNSUxPUkFECitKVVJJxaBJxIYgTUlMT1JBRAorSlVSScWgScSGIE5FREVMSktBCitKVVJJxaBJxIYgTkVOQUQKK0pVUknFoEnEhiBOSUtPTEEKK0pVUknFoEnEhiBPTEdBCitKVVJJxaBJxIYgT1NUT0pBCitKVVJJxaBJxIYgUEVUQVIKK0pVUknFoEnEhiBQRVRBUgorSlVSScWgScSGIFJBREVOS08KK0pVUknFoEnEhiBTVEVWQU4KK0pVUknFoEnEhiBTVEVWQU4KK0pVUknFoEnEhiBWTEFUS08KK0pVUknFoEnEhiBaT1JLQQorSlVSScWgSU4gxb1BUktPCitKVVJJxaBJTiDFvUlWQQorSlVSScWgSU4gQlJBTklTTEFWCitKVVJJxaBJTiBEUkFHT0xKVUIKK0pVUknFoElOIExKSUxKQU5BCitKVVJJxaBJTiBNSUxJTkEKK0pVUknFoElOIE1JTE/FoAorSlVSScWgSU4gTkFUQUxJSkEKK0pVUknFoElOIFJBU1RLTyBESVBMIElORworSlVSScWgSU4gU0xBVktPCitKVVJJxaBJTiBWTEFESU1JUgorSlVSScSGIMW9SVZBRElOS0EKK0pVUknEhiBBTkEKK0pVUknEhiBBVkdVU1QKK0pVUknEhiBCT1NJTEpLTworSlVSScSGIENWSUpPCitKVVJJxIYgRklMSVAKK0pVUknEhiBJTElKQQorSlVSScSGIElWQU4KK0pVUknEhiBKRUxLQQorSlVSScSGIE1BUklKQQorSlVSScSGIE1BUklKQQorSlVSScSGIE1BUktPCitKVVJJxIYgTUFSS08KK0pVUknEhiBNSUxPxaAKK0pVUknEhiBQQVVMSU5BCitKVVJJxIYgUEVUQVIKK0pVUknEhiBTT0ZJSkEKK0pVUklCQcWgScSGIE1BUklKQQorSlVSSUJBxaBJxIYgVE9NSVNMQVYKK0pVUklDIElWQU4KK0pVUklDIEpPU0lQCitKVVJJQyBTVEpFUEFOCitKVVJJQ0EgQU5BCitKVVJJQ0EgREFMSUJPUgorSlVSSUNBIEpBTgorSlVSSUsgxaBBTkRPUgorSlVSSUsgRFXFoEFOCitKVVJJSyBKT1NJUAorSlVSSUsgSk9TSVAKK0pVUklLIEpPVkFOCitKVVJJSyBNQVJJSkEKK0pVUklLIE1JSEFMCitKVVJJSyBNSUxLQQorSlVSSUsgUEFWTEUKK0pVUklLIFNURVZBTgorSlVSSVNUT1ZTS0kgR0VPUkcgRElQTCBJTkcKK0pVUkpBTk9WScSGIERVxaBBTktBCitKVVJKRVZJxIYgSkFTTUlOQQorSlVSS0nEhiBBTlRVTgorSlVSS0nEhiBBVUdVU1RJTgorSlVSS0nEhiBNQVJLTworSlVSS09WScSGIEFOQQorSlVSS09WScSGIEJJTEpBTkEKK0pVUktPVknEhiBCT8W9SUNBCitKVVJLT1ZJxIYgRFJBR0FOCitKVVJLT1ZJxIYgRFXFoEFOCitKVVJLT1ZJxIYgS1JJU1RJTkEKK0pVUktPVknEhiBQRVRBUgorSlVSS09WScSGIFBFVEFSCitKVVJLT1ZJxIYgWkxBVEtPCitKVVJLT1ZJxIYgWlZPTktPCitKVVJLT1ZTS0kgU1RFVkFOCitKVVJMSU5BIEFOVFVOCitKVVJMSU5BIE1BUktPIERSCitKVVJMSU5BIFBBVkxFCitKVVJVS09WU0tJIEdPU1BBVkEKK0pVUlVLT1ZTS0kgTEVWS08KK0pVUlVLT1ZTS0kgTUlMT1ZBTktBCitKVVNUSU4gQ0lSSUwKK0pVU1RJTiBEQU5JQ0EKK0pVU1VGSSBCRVJaQVQKK0pVU1VGT1ZJxIYgQU1JUgorSlVWQU4gRkFOSUtBCitLxIZJS1UgxJBBVklECitLxIZJS1UgUkFISU0KK0tBxIxBSyBJTE9OQQorS0HEjEFQT1IgU0VGRURJTgorS0HEjEFSIMSMRURPTUlSCitLQcSMQVIgxJBVUk8KK0tBxIxBUiBCUkFOSVNMQVYKK0tBxIxBUiBEVcWgQU5LQQorS0HEjEFSIFNMQVZLTworS0HEjEFSIFNMT0JPREFOCitLQcSMQVIgU0xPQk9EQU4KK0tBxIxBUiBUQURJSkEKK0tBxIxBUkVWScSGIE1JTEFOCitLQcSMQVZFTkRBIEJSQU5JU0xBVkEKK0tBxIxBVkVOREEgTEFaTworS0HEjEFWRU5EQSBNSUxBTgorS0HEjEFWRU5EQSBNSUxPUkFECitLQcSMQVZFTkRBIE1JTE9SQUQKK0tBxIxBVkVOREEgU0xPQk9EQU4KK0tBxIxBVkVOREEgVEFUSkFOQQorS0HEjEFWRU5EQSBUQVRKQU5BCitLQcSMQVZFTkRBIFZFUkEKK0tBxIxNQVLEjElLIMWgVEVGQU4KK0tBxIxNQVLEjElLIEpFTEVOQQorS0HFoEEgVElCT1IKK0tBxaBBSSBKRUxJU0FWRVRBCitLQcWgQU5JTiBNSUxFVEEKK0tBxaBBTklOIE1JUkEKK0tBxaBBTklOIE1JUkpBTkEKK0tBxaBBTklOIE1JUk9TTEFWCitLQcWgScSGIEFMRUtTQU5EQVIKK0tBxaBJxIYgSk9WQU4gRFIKK0tBxaBJxIYgTUFSSUpBCitLQcWgScSGIE1JTElWT0oKK0tBxaBJxIYgTUxBREVOCitLQcWgScSGIFJFVkVLQQorS0HFoEnEhiBWRVJBCitLQcWgScSGIFZJS1RPUklKQQorS0HFoEnEhiBWT0pJU0xBVgorS0HFoElLIElWQU4KK0tBxaBJS09WScSGIMSQT1LEkE8KK0tBxaBJS09WScSGIEJPxaBLTworS0HFoElLT1ZJxIYgR09KS08KK0tBxaBJS09WScSGIFBSRURSQUcKK0tBxaBJS09WScSGIFNMQVZLQQorS0HFoElLT1ZJxIYgVkxBRE8KK0tBxaBMSUsgSU1SRQorS0HFoExJSyBNQVRJSkEKK0tBxaBPVlNLSSBKQU5LTworS0HFoE9WU0tJIE5JS09MQQorS0HEhkFOU0tJIMW9QVJLTworS0HEhkFOU0tJIMW9QVJLTworS0HEhkFOU0tJIMW9SVZLTworS0HEhkFOU0tJIMSQT1LEkEUKK0tBxIZBTlNLSSBCT0pBTkEKK0tBxIZBTlNLSSBCUkFOSVNMQVYKK0tBxIZBTlNLSSBCUkFOS08KK0tBxIZBTlNLSSBEVcWgQU5LQQorS0HEhkFOU0tJIERVxaBBTgorS0HEhkFOU0tJIEpFTElTQVZFVEEKK0tBxIZBTlNLSSBLT05TVEFOVElOCitLQcSGQU5TS0kgTEpVQklDQQorS0HEhkFOU0tJIE1JTElWT0oKK0tBxIZBTlNLSSBNSUxJVk9KCitLQcSGQU5TS0kgTUlMS0EKK0tBxIZBTlNLSSBNSUxPUkFECitLQcSGQU5TS0kgTUlMVVRJTgorS0HEhkFOU0tJIE1JUk9TTEFWQQorS0HEhkFOU0tJIE1MQURFTgorS0HEhkFOU0tJIFBBVkxFIERSIExFS0FSCitLQcSGQU5TS0kgUExBVE9OIERSCitLQcSGQU5TS0kgUkFET1ZBTgorS0HEhkFOU0tJIFNJTUEKK0tBxIZBTlNLSSBTTEFWS08KK0tBxIZBTlNLSSBTTUlMSkEKK0tBxIZBTlNLSSBTT0ZJSkEKK0tBxIZBTlNLSSBTVkVUSVNMQVYKK0tBxIZBTlNLSSBUT0RPUgorS0HEhkFOU0tJIFZFTElOS0EKK0tBxIZBTlNLSSBWRVJBCitLQcSGQU5TS0kgVkxBRElNSVIgVkVURVJJTkFSCitLQcSGQU5TS0kgVkxBRElTTEFWQQorS0HEhklBSyBNSUhBSkxPCitLQcSGVVJJTiDFvUlWQU4KK0tBxIZVUklOIEtSSVNUSU5BCitLQcSGVVJJTiBNSUxBTkEKK0tBxIZVUklOIE1JTEFOCitLQcSGVVJJTiBSQURPU0xBVgorS0HFvUnEhiBWTEFESU1JUgorS0FCQSBTVUxFSk1BTgorS0FCScSGIEFOQQorS0FCScSGIEJPR0RBTgorS0FCScSGIERBTklMTworS0FCScSGIERSQUdJQ0EKK0tBQknEhiBEUkFHVVRJTgorS0FCScSGIFNMT0JPREFOCitLQUJJxIYgVElNT8WgRU5LTworS0FCSUxKTyBEUkFHSUNBCitLQUJJTEpPIEpPU0lQCitLQUJJTEpPIFNJTFZJTworS0FCT0sgRVJJS0EKK0tBQk9LIEpPxb1FRgorS0FDQVJPxaAgS09TVEFTCitLQURBxaAgTEFKT8WgIERJUEwgSU5HCitLQURBUiBKVUxJSkFOQQorS0FEScSGIElMSUpBCitLQURJxIYgTUFSSUpBTgorS0FEScSGIE5JS09MQQorS0FEScSGIFJBRE1JTEEKK0tBREnEhiBTQVZBCitLQURJSkEgVk9KSVNMQVYKK0tBRElWTklLIE1JT0RSQUcKK0tBRExFxIxJSyBLQVRJQ0EKK0tBRFJJSkEgRkVWWklKQQorS0FEUklKQSBIQUJJTEoKK0tBRFJJSkEgSEFTQUYKK0tBRFJJSkEgSFVSTUVUCitLQURWQU5KIEpBTk/FoAorS0FEVkFOSiBKT1ZBTgorS0FEVkFOSiBMQURJU0xBVgorS0FEVkFOSiBMQUpPxaAKK0tBSFJJTUFOIFBFVEFSCitLQUhSSU1BTiBTTkXFvUFOQQorS0FIUklNQU4gU05Fxb1BTkEKK0tBSFJJTUFOIFNORcW9QU5BCitLQUnEhiBJVkFOCitLQUnEhiBLQVRBTElOIERSCitLQUnEhiBQRVRBUgorS0FJTk9WScSGIEdPUkRBTkEKK0tBSVRPVknEhiBKRUxBCitLQUrEjEnEhiBMSklMSkFOQQorS0FKxIxJxIYgTUlMT1ZBTgorS0FKxIxJxIYgVkVMSU1JUgorS0FKRVZJxIYgxb1BUktPCitLQUpGRcWgIFpWT05LTworS0FKR0FOScSGIElMSUpBCitLQUpHQU5JxIYgTEpVQkFOCitLQUpHQU5JxIYgTUlMT1JBRAorS0FKR0FOScSGIFZFUk9OSUtBCitLQUpJxaAgxb1FTEpLTworS0FKScWgIE1JTEUKK0tBSknEhiDFvUVMSktPCitLQUpJxIYgTkFEQQorS0FKS0FSQSBCT0dEQU4KK0tBSktBUkEgTUlMRU5LTworS0FKS0FSQSBSQURPU0xBVgorS0FKT04gQUxFS1NBTkRBUgorS0FKT04gQU5BCitLQUpPTiBMSklMSkFOQQorS0FKT04gTUlST1NMQVYKK0tBSk9OIE1JUk9TTEFWCitLQUpURVMgxJBVUk8KK0tBSlRFWiBEUkFHQU4KK0tBSlRFWiBNSVJLTworS0FKVEVaIE5FREVMSktPCitLQUpURVogUk9aQUxJSkEKK0tBSlRFWiBUUklWVU4KK0tBSlRFWiBWQUxFTlRJTkEKK0tBSlpFUiBLQVJMTworS0FLQcWgIERBTUlSCitLQUtBxaAgSUxJSkEKK0tBS0HFoCBKT8W9RUYKK0tBS0HFoCBKT1NJUAorS0FLQcWgIE1BUklKQQorS0FLT05KSSBBTkEKK0tBS1XEjEtBIEnFoFRWQU4KK0tBS1XEjEtBIEpFTElTQVZFVEEKK0tBS1XEjEtBIFNURVZBTgorS0FMxIxPViBNSUhBTEoKK0tBTEEgR0VaQQorS0FMQcSMQUpJIFNWRVRJU0xBVgorS0FMQcSMRVZJxIYgVkxBRElNSVIKK0tBTEFCQSBCT0pBTgorS0FMQUJBIEJSQU5LTworS0FMQUJBIERSQUdJQ0EKK0tBTEFCQSBMSlVQS08KK0tBTEFCQSBMVUtBCitLQUxBQkEgTUFSS08KK0tBTEFCQSBNTEFERU4KK0tBTEFCQSBOSUtPTEEKK0tBTEFCQSBTVEVWQU4KK0tBTEFCScSGIERBTkUKK0tBTEFCScSGIFNURVZPCitLQUxBQlJJxIYgQlJBTktPCitLQUxBQlJJxIYgTUlIT1ZJTAorS0FMQUZBVEnEhiBNSUxJVk9KCitLQUxBRkFUScSGIE5FQk9KxaBBCitLQUxBSSBLQVJPTEoKK0tBTEFKRMW9ScSGIERBUktPCitLQUxBSkTFvUnEhiBMVUtBCitLQUxBSkTFvUnEhiBNSUhBSUxPCitLQUxBSkTFvUnEhiBNSUxBTgorS0FMQU1BTkRBIERSQUdBTgorS0FMQU1BTkRBIFNMT0JPREFOCitLQUxBTkogxJBVS0EKK0tBTEFOSiBEUkFHScWgQQorS0FMQU5KIEZFTUtBCitLQUxBTkogU1RFVkFOCitLQUxBTkpBIERVxaBBTktBCitLQUxBTkpBIE1JUk9TTEFWCitLQUxBTkpFViBaT1JBCitLQUxBTkpPxaAgxJBVUkEKK0tBTEFOSk/FoCBBTkEKK0tBTEFOSk/FoCBCT1JJU0xBVgorS0FMQU5KT8WgIEpBTk/FoAorS0FMQU5KT8WgIE1JUkpBTkEKK0tBTEFOSk/FoCBQRVRBUgorS0FMQU5KT8WgIFBFVEFSCitLQUxBTkpPxaAgUlXFvUEKK0tBTEFOSk/FoCBSVcW9QQorS0FMQU5KVcWgIMSQVVJBCitLQUxBTkpVxaAgRlJBTkpBCitLQUxBUEHFoCBFVklDQQorS0FMQVBBxaBFViBESU5BCitLQUxBUEHFoEVWIFNJTknFoEEKK0tBTEFQQVRJIMWgQVJBCitLQUxBUEFUSSBGRVJFTkMKK0tBTEFQQVRJIElWQU4KK0tBTEFQQVRJIFJVRE9MRgorS0FMQVBJxaAgUlVESQorS0FMQVBJxaAgWk9MVEFOCitLQUxBVVogTUFSSU5LTworS0FMQVVaT1YgTUHFoEEKK0tBTEMgTUlMRU5LQQorS0FMQyBNSUxLTworS0FMQyBTTEFWT0pLQQorS0FMRUEgSkVMRU5BCitLQUxFSlNLSSBaTEFUT01JUgorS0FMRU0gQlJBTktPCitLQUxFTSBJVkFOS0EKK0tBTEVNIE1JUkpBTkEKK0tBTEVNIE5FREVMSktPCitLQUxFTSBTUkVURU4KK0tBTEVNIFNSRVRFTgorS0FMRU1CRVIgQk/FoEtPCitLQUxFTUJFUiBNScWgQQorS0FMRU1CRVIgTUlMRU5BCitLQUxFTUJFUiBNSUxJVk9KCitLQUxFTUJFUiBNSVJKQU5BCitLQUxFTUJFUiBTT0ZJSkEKK0tBTEVNQkVSIFNUT0pBRElOCitLQUxFTUkgxaBFUklGCitLQUxFTkRFUiBLUklTVElOQQorS0FMRU5JxIYgQUxFS1NBTkRBUiBESVBMIElORworS0FMRU5JxIYgQUxFS1NBTkRBUgorS0FMRU5JxIYgVk9KSVNMQVYKK0tBTEVOSlVLIE1JVEFSCitLQUxFTlRJxIYgQk9TQQorS0FMRU5UScSGIFJBRE9WQU4KK0tBTEVaScSGIEpFTEVOQQorS0FMRVpJxIYgSk9WQU5LQQorS0FMRVpJxIYgT0xHQQorS0FMRVpJxIYgVE9NSVNMQVYKK0tBTEnEjEFOSU4gTU9NxIxJTE8KK0tBTEnEhiBEUkFHQU5BCitLQUxJxIYgSk9TSVAKK0tBTEnEhiBKT1ZBTktBCitLQUxJxIYgTUlMRU5BCitLQUxJxIYgTVVTVEFGQQorS0FMScSGIE9MR0EKK0tBTEnEhiBSQURPVkFOCitLQUxJxIYgU09GSUpBCitLQUxJSyBHUk9aREEKK0tBTElOIEVEVUFSRAorS0FMSU4gTUFSSUpBTgorS0FMSU5JxIYgREFOSUNBCitLQUxJTknEhiBKT1ZPCitLQUxJTknEhiBLUlNUTworS0FMSU5JxIYgTUlMQURJTgorS0FMSU5JxIYgTUlMSUNBCitLQUxJTknEhiBOQURBCitLQUxJTlNLSSBEQVJLTworS0FMSVZPREEgUlVET0xGCitLQUxKRVZJxIYgQUxFS1NBTkRBUgorS0FMSkVWScSGIEtSU1RPCitLQUxKRVZJxIYgU1RFVkFOCitLQUxLQU4gTUlMQU4KK0tBTE1BTiBLTEFSQQorS0FMTUFOIE1JSEFKTE8KK0tBTE1BTiBNSUtMT8WgCitLQUxNQU4gUkFESUNBCitLQUxNQVIgxJBPUsSQRQorS0FMTUFSIMSQVVJBCitLQUxNQVIgQU5BCitLQUxNQVIgRkVSRU5DCitLQUxNQVIgRlJBTkpBCitLQUxNQVIgR1JHVVIKK0tBTE1BUiBJxaBUVkFOCitLQUxNQVIgTEFKT8WgCitLQUxNQVIgTUlSS08KK0tBTE1BUi1WRVJFxaAgR0laRUxBCitLQUxNQVIgVkxBRElNSVIKK0tBTE1BUkVWScSGIEFMRUtTQU5EQVIKK0tBTE5PSyBTTE9CT0RBTgorS0FMT8SMQUkgxaBBTkRPUgorS0FMT8SMQUkgScWgVFZBTgorS0FMT8SMQUkgTEVOS0UKK0tBTE/EjEFJIFBFVEFSCitLQUxPxIxBSkkgxJBPUsSQRQorS0FMT8SMQU5KIEZFUkVOQworS0FMT0NJIElWQU4KK0tBTE9DSSBMQURJU0xBVgorS0FMT0NJIFRJQk9SCitLQUxPQ0kgVkVTRUxJTktBCitLQUxPUEVSIEpPVkFOS0EKK0tBTE9QRVIgUEVSSUNBCitLQUxPWkkgQVJBTktBCitLQUxUTkVLRVIgRU1JTElKQQorS0FMVE5FS0VSIEVNSUxJSkEKK0tBTFXFoEVWIEdMScWgQQorS0FMVcWgS0EgU0xBVktPCitLQUxVxb1JxIYgS0FUSUNBCitLQUxVxb1JxIYgTkFEQQorS0FMVcSQRVJPVknEhiBNQVJLTworS0FMVcSQRVJPVknEhiBNSUxJVk9KRQorS0FMVcSQRVJPVknEhiBNSUxPxaAKK0tBTFXEkEVST1ZJxIYgTUlSSUpBTkEKK0tBTFXEkEVST1ZJxIYgTUxBREVOCitLQUxVxJBFUk9WScSGIE1PTcSMSUxPCitLQUxVxJBFUk9WScSGIE9MSVZFUkEKK0tBTFXEkEVST1ZJxIYgVVJPxaAKK0tBTFXEkEVSU0tJIMSQT0tBCitLQUxVxJBFUlNLSSDEkE9LQQorS0FMVcSQRVJTS0kgQUdORVpBCitLQUxVxJBFUlNLSSBCT1JJUworS0FMVcSQRVJTS0kgR0FWUkEKK0tBTFXEkEVSU0tJIE1JTE9SQUQKK0tBTFXEkEVSU0tJIE1JUk9TTEFWCitLQUxVxJBFUlNLSSBTSU5JxaBBCitLQUxVxJBFUlNLSSBTVE9KQU4gRFIKK0tBTFVHRVIgTklLT0xBCitLQUxVR0VSIFpPUkFOCitLQU3EjEVTS0EgRFJBR0lDQQorS0FNxIxFU0tJIERJTcSMRQorS0FNxIxFU0tJIFNURVZBTgorS0FNxIxFVknEhiBBTkEKK0tBTcSMRVZTS0kgU0FWQQorS0FNQVJJVCBaT1JBTgorS0FNQVNJIEZFUkVOQworS0FNQVNJIEZFUkVOQworS0FNQVNJIElNUkUKK0tBTUFTSSBKQU5PxaAKK0tBTUJFUkkgRFXFoEFOCitLQU1CRVJJIE1VU0EKK0tBTUJFUk9WScSGIEJBVE8KK0tBTUJFUk9WScSGIFNJTknFoEEKK0tBTUVOQVJPVknEhiBHTElHT1JJSkUKK0tBTUVOQVJPVknEhiBNSUxBTgorS0FNRU5BUk9WScSGIE5JS09MQQorS0FNRU5KSUNLSSBKVUxJSkFOCitLQU1FTktPIE1JTEFOCitLQU1FTktPIFJBREUKK0tBTUVOS08gUkFERQorS0FNRU5LTyBWRVJBCitLQU1FTktPVknEhiBBTEVLU0FORFJBCitLQU1FTktPVknEhiBET0JSSUxBCitLQU1FTktPVknEhiBKT1NJUAorS0FNRU5LT1ZJxIYgSk9WQU5LQQorS0FNRU5LT1ZJxIYgT0xHQQorS0FNRU5PViBFTUlMIERSCitLQU1QRUwgSVZBTgorS0FNUEnEhiBQQVZMRQorS0FNUkEgSVZBTgorS0FOxIxBUiBFUsW9RUJFVAorS0FOQcSMS0kgxb1BUktPCitLQU5BxIxLSSBMSklMSkFOQQorS0FOQcSMS0kgTUFHREFMRU5BCitLQU5BxIxLSSBTVEVWQU4KK0tBTkHEjEtJIFpMQVRBCitLQU5BWklSIMW9SVZLQQorS0FOQVpJUiBBTEVLU0FOREFSCitLQU5BWklSLUJFTEnEhiBNSUxJQ0EKK0tBTkFaSVIgQk9SSVNMQVYKK0tBTkFaSVIgQk9SSVNMQVYKK0tBTkFaSVIgQlJBTklTTEFWCitLQU5BWklSIENWRVRBCitLQU5BWklSIERSQUdJQ0EKK0tBTkFaSVIgRFJBR0lDQQorS0FOQVpJUiBEVcWgQU4KK0tBTkFaSVIgSVZBTktBCitLQU5BWklSIEpPVkFOS0EKK0tBTkFaSVIgSk9WQU4KK0tBTkFaSVIgS09TVEEKK0tBTkFaSVIgS09TVEEKK0tBTkFaSVIgS09TVEEKK0tBTkFaSVIgTUFSSUpBCitLQU5BWklSIE1JTEFOCitLQU5BWklSIE1JTElDQQorS0FOQVpJUiBNSUxPVkFOCitLQU5BWklSIFJBRElWT0oKK0tBTkFaSVIgU0xBVktPCitLQU5BWklSIFZBU0EKK0tBTkFaSVIgVkVSSUNBIERSCitLQU5BWklSIFZVS0lDQQorS0FOQVpJUiBaQUhBUklKRQorS0FOQkFOIE1JTElDQQorS0FOREnEhiBOQURBCitLQU5EScSGIFJBRE1JTEEKK0tBTkRJxIYgU01JTEpBTkEKK0tBTkRJxIYgVklET0pFCitLQU5EUkHEjCDEkE9SxJBFCitLQU5EUkHEjCBMRU9OQQorS0FOR1JHQSBBTktBCitLQU5HUkdBIEtPU1RBCitLQU5HUkdBIFJVxb1BCitLQU5Jxb1BSSBFVkEKK0tBTkpBIEpBTgorS0FOSkVSScSGIE1BVEUKK0tBTkpPIEnFoFRWQU4KK0tBTkpPIFNUSkVQQU4KK0tBTkpPIFpPTFRBTgorS0FOSlVIIEpBS0lNCitLQU5KVUggSk9BS0lNCitLQU5KVUggTUFSSUNBCitLQU5KVUggTUlSQQorS0FOSlVIIFZMQURJTUlSCitLQU5KVUggWlZPTktPCitLQU5KVUtBIElWQU4KK0tBTkpVS0EgVkxBRElNSVIKK0tBTktBUkHFoCBSQURPU0FWCitLQU5LQVJBxaAgVkVTRUxJTgorS0FOTEnEhiBNSUxBTgorS0FOTEnEhiBaQVJJSkEKK0tBTk9WScSGIFBBVkxFIERJUEwgSU5HCitLQU5UQVIgxJBVUk8KK0tBTlRBUiBETUlUQVIKK0tBTlRBUiBLQUpBCitLQU5UQVIgTUlMQU4KK0tBTlRBUiBNSUxPxaAKK0tBTlRBUiBNSVJPU0xBVgorS0FOVEFSIE5JS09MQQorS0FOVEFSIE9TVE9KQQorS0FOVEFSIFZMQURPCitLQU5UQVJExb1JxIYgxJBPUsSQRQorS0FOVEFSRMW9ScSGIEdPUkRBTkEKK0tBTlRBUkTFvUnEhiBKRUxFTkEKK0tBTlRBUkTFvUnEhiBLQVRJQ0EKK0tBTlRBUkTFvUnEhiBLT1NUQQorS0FOVEFSRMW9ScSGIExBWkFSCitLQU5UQVJExb1JxIYgTEFaQQorS0FOVEFSRMW9ScSGIE1JTElDQQorS0FOVEFSRMW9ScSGIE1JTE9WQU4KK0tBTlRBUkTFvUnEhiBNSUxPVkFOCitLQU5UQVJExb1JxIYgTUlST1NMQVYKK0tBTlRBUkTFvUnEhiBNTEFERU4KK0tBTlRBUkTFvUnEhiBOQURBCitLQU5UQVJExb1JxIYgT0xHQQorS0FOVEFSRMW9ScSGIFBFVEFSCitLQU5UQVJExb1JxIYgU1RFVkFOCitLQU5UQVJExb1JxIYgVkFTQQorS0FOVElOS09TS0kgSEFOVQorS0FOVE9SIExBSk/FoAorS0FOVE9SIE9TS0FSCitLQU5VUknEhiBBTEVLU0FOREFSCitLQU5VUknEhiBNSUxJQ0EKK0tBTlVSScSGIFpPUktBCitLQU5VUlNLSSBKT1ZBTgorS0FOVVJTS0kgVklET1NBVkEKK0tBUEFNQUTFvUlKQSBBTEVLU0FORFJBCitLQVBBTUFExb1JSkEgQk9SSVNMQVYgRFIKK0tBUEFNQUTFvUlKQSBEVcWgQU5LQQorS0FQQU1BRMW9SUpBIFJBRE1JTEEKK0tBUEFNQUTFvUlOIEpPVkFOCitLQVBFTEFOIE5JS09MQQorS0FQRVMgQUxFS1NBTkRBUgorS0FQRVMgWkRSQVZLQQorS0FQRVRBTknEhiBUT01JU0xBVgorS0FQRVRBTk9WIE1JUkpBTkEKK0tBUEVUQU5PViBTVkVUSVNMQVYKK0tBUEVUQU5PViBWVUtJQ0EKK0tBUEVUQU5PVknEhiBKT1ZBTgorS0FQRVRBTk9WScSGIE1JREhBVAorS0FQRVRBTk9WScSGIE1PTcSMSUxPCitLQVBFVEFOT1ZJxIYgT0xHQQorS0FQRVRBTk9WScSGIFJBVEtPCitLQVBFVEFOT1ZJxIYgVkVSSUNBCitLQVBJxIxJxIYgRFXFoEFOCitLQVBJxIxJxIYgU0FWTworS0FQScSMScSGIFNURVZBTgorS0FQSUNMIERSQUdVVElOCitLQVBJVEFOSiBMQVNMTworS0FQTEFSIMW9SVZBTgorS0FQTEFSIE1BUklKQQorS0FQTEFSRVZJxIYgTUlPRFJBRworS0FQTEFSU0tJIEtPTlNUQU5USU4KK0tBUExBUlNLSSBNTEFERU4KK0tBUExBUlNLSSBTVkVUTEFOQQorS0FQTElKRVYgUEVUQVIKK0tBUE1BSkVSIEFMRUtTQU5EQVIKK0tBUE/EjCBBTlRBTAorS0FQT8SMIEpVRElUCitLQVBPUiBBR05FxaAKK0tBUE9SIEFMRUtTQU5EQVIKK0tBUE9SIERFU0FOS0EKK0tBUE9SIEdPSktPCitLQVBPUiBLQVRBUklOQQorS0FQT1IgTkFEQQorS0FQT1IgTk9WSUNBCitLQVBPUiBTVEFOQQorS0FQT1NUQSBURVJFWkEKK0tBUFJJxaAgTUlSSkFOQQorS0FQVcSGIElMT05BCitLQVLEhkHFoCBNSUxLQQorS0FSQcSMIE1JUktPCitLQVJBxIxPTkpJIEnFoFRWQU4KK0tBUkHEhiBEUkFHQU4KK0tBUkHEhiBEVcWgQU4KK0tBUkHEhiBEVcWgQU4KK0tBUkHEhiBJTElKQQorS0FSQcSGIEpFTElDQQorS0FSQcSGIExKVUJPTUlSCitLQVJBxIYgTUFSSUpBCitLQVJBxIYgTUlMRU5LTworS0FSQcSGIFJBREVOS08KK0tBUkHEhiBSQUpLTworS0FSQcSGIFNMT0JPREFOCitLQVJBxJBFTk9WIElWQU4KK0tBUkHEkEVOT1YgSVZBTgorS0FSQcSQRU5PViBNSVJKQU5BCitLQVJBxJBJTk9WScSGIMWgUElSTworS0FSQcSQSU5PVknEhiBORU5BRAorS0FSQcSQSU5PVknEhiBQRVRBUgorS0FSQcSQSU5PVknEhiBWRUxJTUlSCitLQVJBxJBJTk9WScSGIFpPUkEKK0tBUkFCQSBJUkVOQSBEUiBMRUtBUgorS0FSQUJBIEpPVkFOCitLQVJBQkEgT0xHQQorS0FSQUJBxaAgTUlMSVZPSgorS0FSQUJBxaAgU0xPQk9EQU4KK0tBUkFCQVNJTCBEUkFHQU4KK0tBUkFCQVNJTCBWSURPTUlSCitLQVJBQkVHT1ZJxIYgREFOSUxPCitLQVJBRMW9ScSGIMWgVUpPCitLQVJBRMW9ScSGIMW9QVJLTworS0FSQUTFvUnEhiDEkE9SxJBFCitLQVJBRMW9ScSGIEFSU0VOSUpFCitLQVJBRMW9ScSGIEFWUkFNCitLQVJBRMW9ScSGIEJPxb1PCitLQVJBRMW9ScSGIEJSQVRJU0xBVgorS0FSQUTFvUnEhiBKT1ZBTgorS0FSQUTFvUnEhiBKT1ZBTgorS0FSQUTFvUnEhiBLU0VOSUpBCitLQVJBRMW9ScSGIE1BUklKQQorS0FSQUTFvUnEhiBNSUxPUkFECitLQVJBRMW9ScSGIE1JT0RSQUcKK0tBUkFExb1JxIYgTUlST1NMQVYKK0tBUkFExb1JxIYgTkVOQUQKK0tBUkFExb1JxIYgUkVMSkEKK0tBUkFExb1JxIYgUlXFvUEKK0tBUkFExb1JxIYgU0xBVklDQQorS0FSQUTFvUnEhiBUVlJUS08KK0tBUkFExb1JxIYgVkVSQQorS0FSQUTFvUnEhiBWVUsKK0tBUkFExb1JxIYgWk9SQU4KK0tBUkFExb1JxIYgWk9SQU4KK0tBUkFEQVJFVknEhiBNSUxBTgorS0FSQURBUkVWScSGIE1JTE/FoAorS0FSQURFR0xJxIYgS09TQQorS0FSQUdBIE5JS09MQQorS0FSQUdJxIYtTElQSU5TS0kgSUxPTkEKK0tBUkFJQ0EgWk9SQU4KK0tBUkFKS09WIEFMT0paSUpFCitLQVJBSktPViBWTEFESU1JUgorS0FSQUpLT1YgVkxBRElNSVIKK0tBUkFKTE9WScSGIMSQVVJPCitLQVJBSk9WScSGIE1JTFVUSU4KK0tBUkFLQcWgIE1JUkpBTkEKK0tBUkFLQcWgRVZJxIYgREVTQU5LQQorS0FSQUtBxaBFVknEhiBEUkFHSUNBCitLQVJBS0HFoEVWScSGIEVWSUNBCitLQVJBS0HFoEVWScSGIFNURVZBTgorS0FSQUtBxaBFVknEhiBaT1JBCitLQVJBTUFSS09WScSGIE1JTEEKK0tBUkFNQVRJxIYgQU5URQorS0FSQU4gxb1FTEpLTworS0FSQU4gRFJBR0FOCitLQVJBTi1LRVJOIEJBUkJBUkEKK0tBUkFOIE1JTEFOCitLQVJBTiBNSUxFTktPCitLQVJBTiBNSUxJTktPCitLQVJBTiBTQVZPCitLQVJBTiBTUsSQTworS0FSQU5KQUMgRFJBR09TTEFWCitLQVJBTkpBQyBMSlVCSUNBCitLQVJBTkpBQyBWRVJPTEpVQgorS0FSQU5PViDFvUlWQU4KK0tBUkFOT1YgQlVESU1LQQorS0FSQU5PViBEUkFHT0xKVUIKK0tBUkFOT1YgS1VaTUFOCitLQVJBTk9WIE1JTEFOCitLQVJBTk9WIE1JTE9WQU4KK0tBUkFOT1YgTUlST1NMQVYKK0tBUkFOT1YgU09GSUpBCitLQVJBTk9WScSGIMSQT1LEkEUKK0tBUkFOT1ZJxIYgQk/FvU8KK0tBUkFOT1ZJxIYgRFJBR0FOCitLQVJBTk9WScSGIERVxaBBTgorS0FSQU5PVknEhiBEVcWgQU4KK0tBUkFOT1ZJxIYgRU1JTElKQQorS0FSQU5PVknEhiBHUkVUQQorS0FSQU5PVknEhiBJTElKQQorS0FSQU5PVknEhiBJTElKQQorS0FSQU5PVknEhiBJTElKQQorS0FSQU5PVknEhiBJVklDQQorS0FSQU5PVknEhiBKT1ZBTgorS0FSQU5PVknEhiBLQVRJQ0EKK0tBUkFOT1ZJxIYgTEpJTEpBTkEKK0tBUkFOT1ZJxIYgTEpVQkEKK0tBUkFOT1ZJxIYgTUlMQU4KK0tBUkFOT1ZJxIYgTUlMQU4KK0tBUkFOT1ZJxIYgTUlMT01JUgorS0FSQU5PVknEhiBNSUxVVElOCitLQVJBTk9WScSGIE1JUkpBTkEKK0tBUkFOT1ZJxIYgTUlSS08KK0tBUkFOT1ZJxIYgTklLT0xBCitLQVJBTk9WScSGIFBFUk8KK0tBUkFOT1ZJxIYgUkFUS08KK0tBUkFOT1ZJxIYgU0xBVktPCitLQVJBTk9WScSGIFNMT0JPREFOCitLQVJBTk9WScSGIFNURVZBTgorS0FSQU5PVknEhiBTVEVWTworS0FSQU5PVknEhiBTVkVUT1pBUgorS0FSQU5PVknEhiBUUklWTworS0FSQU5PVknEhiBWRVNPCitLQVJBTk9WScSGIFZMQURJTUlSCitLQVJBUEFOxb1BIE1BUklKQQorS0FSQVBBTkTFvUEgTEpJTEpBTkEKK0tBUkFQQU5Exb1BIFZJVE9NSVIKK0tBUkFQQU5Exb1JxIYgxJBVUkEKK0tBUkFQQU5Exb1JxIYgR09SREFOQQorS0FSQVBBTkTFvUnEhiBNSVJKQU5BCitLQVJBUEFORMW9SU4gQkFSQkFSQQorS0FSQVBBTkTFvUlOIFpPUktBCitLQVJBUyBLQVpJTUlSCitLQVJBUyBNQUdEQQorS0FSQVMgUEVUQVIKK0tBUkFTIFBFVEFSCitLQVJBU0FMSUhPVknEhiBTTUFJTAorS0FSQVNFSyBLQVJPTEoKK0tBUkFTSUogQk9SSVMKK0tBUkFTSUogSkFTTUlOQQorS0FSQVNJSiBWRVJPTklLQQorS0FSQVRJIEVVR0VOCitLQVJBVFVSIEpBRFJBTktBCitLQVJBVkxBIEtBVEFSSU5BCitLQVJBVkxBIFpMQVRLTworS0FSQVZMQSBaT1JJQ0EKK0tBUkJBTiBSVURPTEYKK0tBUkRBxaAgT0JSQUQKK0tBUkRBxaAgT0xHQQorS0FSREHFoEVWScSGIEJSQU5JU0xBVgorS0FSREHFoEVWScSGIEZJSkEKK0tBUkRBxaBFVknEhiBIVVNOSUpBCitLQVJET8WgIEFMRUtTQU5EQVIKK0tBUkRPxaAgRVJJS0EKK0tBUkRPxaAgSUxPTkEKK0tBUkRPxaAgTEFKT8WgCitLQVJET8WgIFBBTAorS0FSRE/FoCBWRVJPTklLQQorS0FSRE9WIEpPU0lQCitLQVJEVU0gxJBPUsSQRQorS0FSR0HEjElOIEpFTElTQVZFVEEKK0tBUknFoEnEhiBJVkFOS0EKK0tBUknFoElLIERBTkUKK0tBUknFoElLIEpPVkFOS0EKK0tBUknFoElLIE1JTFVUSU4KK0tBUknEhiBCT1NJTEpLQQorS0FSScSGIEpPVkFOS0EKK0tBUknEhiBSQURPU0xBVgorS0FSScSGIFNBVkEKK0tBUknEhiBTQVZBCitLQVJJxIYgU1ZFVElTTEFWCitLQVJJS08gSk9TSVAKK0tBUklLTyBNQVJJSkEKK0tBUklLTyBURVJFWkEKK0tBUklOQSBEUkFHSUNBCitLQVJJVVMgTUFSSUpBCitLQVJJVVMgVkVSQQorS0FSTEHFoCBNSUxPUkFECitLQVJMQVZBUklTIERSQUdBTgorS0FSTEFWQVJJUyBJVkFOCitLQVJMQVZBUklTIE5BREEKK0tBUkxBVkFSSVMgUkFESVZPSgorS0FSTEFWQVJJUy1aRUtPVknEhiBNSVJFTEEKK0tBUkxJxIYgSkVGVEEKK0tBUkxJxIYgTEFaQVIKK0tBUkxJxIYgTUlMSVZPSgorS0FSTE8gVkFKREEKK0tBUkxPVsSMRUMgTUlSS08KK0tBUkxPVknEhiDEkEVSxJAKK0tBUkxPVknEhiBNQVJJQ0EKK0tBUk9MScSGIExKVUJJQ0EKK0tBUk9MScSGIE1JUktPCitLQVJPTEnEhiBNSVJPU0xBVgorS0FST0xKSSBKQU5PxaAKK0tBUk9MSkkgTEFTTE8KK0tBUk9WScSGIEdMScWgQQorS0FSUEFUSSBMQVNMTworS0FSUE9OSkEgSlVMSUpBTkEKK0tBUlBPTkpBIFNJTknFoEEKK0tBUlRBRyBOQU5ET1IKK0tBUlRBSSBMQUpPxaAKK0tBUlRBTE9WScSGIE1JTEFOCitLQVJUSkUgSk9WQU4KK0tBUlZBSyBFTUEKK0tBUlZBSyBHRVpBCitLQVNBIMSQRVLEkAorS0FTQSBBTkRSSUpBCitLQVNBIEFOVEFMCitLQVNBIEZSQU5KQQorS0FTQSBJREEKK0tBU0EgSU1SRQorS0FTQSBKRUxFTkEKK0tBU0EgTUlIQUxKCitLQVNBIFJVxb1BCitLQVNBIFJVxb1BCitLQVNBIFpPUktBCitLQVNBxaAgQUxFS1NBTkRBUiBNUgorS0FTQcWgIEFMRUtTQU5EQVIKK0tBU0HFoCBJTVJFCitLQVNBxaAgSU1SRQorS0FTQcWgIElNUkUKK0tBU0HFoCBKQU5PxaAKK0tBU0HFoCBKT8W9RUYKK0tBU0HFoCBKT1NJUAorS0FTQcWgIEtBUk9MSgorS0FTQcWgIEtBUk9MSgorS0FTQcWgIEtBUk9MSgorS0FTQcWgIE9MR0EKK0tBU0FHScSGIEJPUklTTEFWCitLQVNBTElDQSDFvUFSS08KK0tBU0FMSUNBIMW9SVZLTworS0FTQUxJQ0EgTUlMQU4KK0tBU0FMSUNBIFNURVZBTklKQQorS0FTQVAgRVJWSU4KK0tBU0FQT1YgU1RFVkFOCitLQVNBUE9WScSGIE1BUkEKK0tBU0FQT1ZJxIYgTUVITworS0FTQVBPVknEhiBUSUhPTUlSCitLQVNBUFNLSSDFvUFSS08KK0tBU0FQU0tJIEpFTEtBCitLQVNBUiBTRUxJTQorS0FTScSGIERBTklDQQorS0FTTkVSIE1JSk9MSktBCitLQVNQRVIgQUxFS1NBTkRBUgorS0FTUEVSIEZFUkVOQworS0FTUEVSIEZSQU5KQQorS0FTUEVSIExBRElTTEFWCitLQVNQRVIgU1RFVkFOCitLQVNURUxJIMSQVVLEkElOS0EKK0tBU1RFTEkgTUFSS08KK0tBU1RPUkkgUlVET0xGCitLQVNUUkFUSSBGQURJTAorS0FTVFJBVE9WScSGIEFMRUtTQU5EQVIKK0tBU1RSQVRPVknEhiBCT0dEQU4KK0tBU1RSQVRPVknEhiBNSUhBSUxPCitLQVNUUkFUT1ZJxIYgVkxBRElNSVIKK0tBU1RSQVRPVknEhiBaT1JBTgorS0FTVFJBVE9WScSGIFpPUkFOCitLQVRBxaBJxIYgUEVUQVIKK0tBVEFMRU5JxIYgRFXFoEFOCitLQVRBTElOxIxFViDFvUlWQU4KK0tBVEFOQSBBTkdFTElOQQorS0FUQU5BIE5JS09MQQorS0FUQU5JxIYgQU7EkEVMS0EKK0tBVEFOScSGIEpFQ0EKK0tBVEFOScSGIEtTRU5JSkEKK0tBVEFOScSGIExKVUJJQ0EKK0tBVEFOScSGIE1BUkEKK0tBVEFOScSGIFJBRElWT0oKK0tBVEFOScSGIFJBRE9NSVIKK0tBVEFOScSGIFNBVkEgRFIKK0tBVEFOU0tJIE1JTE/FoAorS0FUQU5TS0kgUEFWTEUKK0tBVEFSSU7EjEnEhiBDRUxFU1RJTgorS0FUQVJJVkFTIEVMQQorS0FUQVJJVkFTLU5JS09MScSGIEdJWkVMQQorS0FUQVRJxIYgSUxPTkEKK0tBVEFWQSBSVURPTEYKK0tBVEFWScSGIERBTklMS0EKK0tBVEFWScSGIE1BUklKQQorS0FUQVZJxIYgUkFETUlMQQorS0FUScSGIEFEQQorS0FUScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK0tBVEnEhiBCT1NJTEpLQQorS0FUScSGIERBUkEKK0tBVEnEhiBET0JSSUxBCitLQVRJxIYgR09KS08KK0tBVEnEhiBJTElKQQorS0FUScSGIElMSUpBCitLQVRJxIYgSVZBTgorS0FUScSGIEpPVkFOCitLQVRJxIYgSk9WTworS0FUScSGIEtPU1RBCitLQVRJxIYgS1JTVEEKK0tBVEnEhiBLU0VOSUpBCitLQVRJxIYgTEpJTEpBTkEKK0tBVEnEhiBMSlVCSU5LTworS0FUScSGIExVS0EKK0tBVEnEhiBNQVJHQVJFVEEKK0tBVEnEhiBNQVJJSkEKK0tBVEnEhiBNSUxBTgorS0FUScSGIE1JTEFOCitLQVRJxIYgTUlMT1JBRAorS0FUScSGIE1JTE9SQUQKK0tBVEnEhiBNSVRBCitLQVRJxIYgTklLT0xBCitLQVRJxIYgTk9WQUsKK0tBVEnEhiBPVElMSUpBCitLQVRJxIYgUEFWTEUgRFIKK0tBVEnEhiBSQURJVk9KCitLQVRJxIYgUkFUS08KK0tBVEnEhiBTQVZPCitLQVRJxIYgU0xPQk9EQU4KK0tBVEnEhiBTTE9CT0RBTgorS0FUScSGIFNORcW9QU5BCitLQVRJxIYgU1JFVEVOCitLQVRJxIYgU1RBTktPCitLQVRJxIYgU1ZFVElTTEFWCitLQVRJxIYgU1ZFVExBTkEKK0tBVEnEhiBWRVNFTEEKK0tBVEnEhiBWRVNOQQorS0FUScSGIFZMQURJTUlSCitLQVRJxIYgWkxBVE9NSVIKK0tBVElOxIxJxIYgxb1FTElNSVIgRElQTCBJTkcKK0tBVE5JxIYgU0FWRVRBCitLQVRPTkEgSU1SRQorS0FUT05BIEpPxb1FRgorS0FUT05BIExBSk/FoCBESVBMIElORworS0FUT05BIExBU0xPCitLQVRPTkEgVklOQ0UKK0tBVVJJxIYgTklLT0xBCitLQVVSSU4gSlVSRQorS0FVUklOIEtSU1RPCitLQVVSSU4gTEFaQVIKK0tBVVJJTiBNT03EjElMTworS0FVUklOIE5FREVMSktPCitLQVVSSU4gVkFTTworS0FVUklOT1ZJxIYgQk/FvUlEQVIKK0tBVVJJTk9WScSGIFNJTU8gRElQTCBJTkcKK0tBVVRFTiBKT0hBTgorS0FWxIxJxIYgU1RFVkFOCitLQVZBSkEgTFVLQQorS0FWQUpBIE5JS08KK0tBVkFMScSGIEJPUklTTEFWCitLQVZFxIxBTiBJVkFOIERSCitLQVZFxIxBTiBOSUtPTEEKK0tBVkdJxIYgTUlPRFJBRworS0FWR0nEhiBOSUtPTEEKK0tBVkdJxIYgUEVUQVIKK0tBVkdJxIYgUEVUQVIKK0tBVkdJxIYgU1RFVkFOCitLQVZSQUpBIFNURVZBTgorS0FWUkFKQSBTVkVUT1pBUgorS0FWUkFOIMW9RUxKS08KK0tBWkFGRVJPVknEhiBSRcWgQUQKK0tBWkFOQ0VWIEpPU0lQQQorS0FaSSBFUk5FCitLQVpJIEpPxb1FRgorS0FaSUpBIFNNSUxKS0EKK0tBWklNScSGIFNURVZBTgorS0FaSU1JUk9WScSGIEFOQQorS0FaSU1JUk9WScSGIExKVUJJU0FWCitLQVpJTUlST1ZJxIYgTUlSSkFOQQorS0FaSU1JUk9WScSGIE5FU1RPUgorS0XEjEEgQk9KQU5BCitLRcSMQSBEVcWgQU5LQQorS0XEjEEgSUxJSkEKK0tFxIxBIE1JS0FOCitLRcSMQSBNSUxBTgorS0XEjEEgTUlMQU4KK0tFxIxBIE1JTEFOCitLRcSMQSBNSUxFTktPCitLRcSMQSBNSUxFVkEKK0tFxIxBIFBFUk8KK0tFxIxBIFJBTktPCitLRcSMQSBTTE9CT0RBTgorS0XEjEEgVk9KSU4KK0tFxIxJxIYgxb1JVkFOCitLRcSMScSGIE1JTEFOIEFLQURFTVNLSSBTTElLQVIKK0tFxIxLRcWgIMSQRVLEkAorS0XEjEtFxaAgRkVSRU5DCitLRcSMS0XFoCBKT1NJUAorS0XEjEtFTUVUSSBJxaBUVkFOCitLRcSMS0kgUlXFvUlDQQorS0XFoEFOU0tJIElWS0EKK0tFxaBBTlNLSSBLQVRJQ0EKK0tFxaBBTlNLSSBSQURFTktPCitLRcWgQU5TS0kgUkFESVZPSgorS0XFoEFOU0tJIFJVxb1JQ0EKK0tFxaBBTlNLSSBTSU1PCitLRcWgQU5TS0kgU1RBTklTTEFWCitLRcWgRUxKIMSMRURPTUlSCitLRcWgRUxKIEVWQQorS0XFoEVMSiBHT0pLTworS0XFoEVMSiBKT1ZBTgorS0XFoEVMSiBSQURNSUxBCitLRcWgRUxKIFNMT0JPREFOCitLRcWgRUxKIFVHTEpFxaBBCitLRcWgRUxKIFZVS0HFoElOCitLRcWgS0nEhiBaVk9OSU1JUgorS0XFoE1BUktJLUtSRVNUQSBKRUxFTkEKK0tFxb1JxIYgQklMSkFOQQorS0XFvUnEhiBEVcWgQU4KK0tFxb1JxIYgS0FUSUNBCitLRcW9ScSGIE1BUkpBTgorS0XFvUnEhiBNSUxBTgorS0XFvUnEhiBORVZFTktBCitLRcW9ScSGIFZMQURPCitLRUJJTiDFvUFSS08KK0tFQ0VMSSBNSUhBTEoKK0tFQ0nEhiBEQU5JTE8gRFIKK0tFQ0nEhiBNSVJPU0xBVgorS0VDScSGIFNMT0JPREFOCitLRUNNQU4gxIxFREEKK0tFQ01BTiDFvUFSS08KK0tFQ01BTiDEkFVSTworS0VDTUFOIMSQVVJPCitLRUNNQU4gQk9SSVNMQVYKK0tFQ01BTiBCUkFOS08KK0tFQ01BTiBEUkFHSUNBCitLRUNNQU4gRFXFoEFOCitLRUNNQU4gSUxJSkEKK0tFQ01BTiBKT1ZBTgorS0VDTUFOIEpPVkFOCitLRUNNQU4gSlVMS0EKK0tFQ01BTiBMSlVCQQorS0VDTUFOIE1BUkEKK0tFQ01BTiBNQVJLTworS0VDTUFOIE1JTEFESU4KK0tFQ01BTiBNSUxBTgorS0VDTUFOIE1JTEFOCitLRUNNQU4gTUlMS0EKK0tFQ01BTiBNSUxVVElOCitLRUNNQU4gTUlSSkFOQQorS0VDTUFOIE1JUk9TTEFWQQorS0VDTUFOIE1MQURFTgorS0VDTUFOIFNURVZBTgorS0VDTUFOIFNWRVRLTworS0VDTyDEjEVET01JUgorS0VDTyBHT0pLTworS0VDTyBKRUxFTkEKK0tFQ08gTEpVQk9NSVIKK0tFQ08gTUFSSUpBCitLRUNPIE1BUklKQQorS0VDTyBNSVJKQU5BCitLRUNPIE1JVEFSCitLRUNPIE1PTUlSCitLRUNPIFJBRE9KRQorS0VDTyBSQVRLTworS0VDTyBTTE9CT0RBTgorS0VDTyBTTE9CT0RBTgorS0VExb1BIE1JTE9SQUQKK0tFREnEhiBEVcWgQU4KK0tFREnEhiBTVEFOS08KK0tFRFZFxaAgRVZBCitLRUZFUiBKQU5PxaAKK0tFRkVSIEpPU0lQCitLRUdMT1ZJxIYgVklOS08KK0tFSyBFUsW9RUJFVAorS0VLIEVWQQorS0VLRUxKRVZJxIYgTUlPRFJBRworS0VLRU5KIEdJWkVMQQorS0VLRVogRFJBR0lOSkEKK0tFS0nEhiDEkE9SxJBFCitLRUtJxIYgxJBVUkEKK0tFS0nEhiBBR0lDQQorS0VLScSGIERBTklDQQorS0VLScSGIERSQUdBTgorS0VLScSGIERVxaBBTgorS0VLScSGIEdPUkRBTkEKK0tFS0nEhiBLT1NPVktBCitLRUtJxIYgTUlMQU4KK0tFS0nEhiBNSUxJQ0EKK0tFS0nEhiBNSVJLTworS0VLScSGIE5BVEFMSUpBCitLRUtJxIYgUEVUQVIKK0tFS0nEhiBTTEFWSUNBCitLRUtJxIYgVEVPRE9SCitLRUtJTiBNQVJJSkEKK0tFS09WScSGIERSQUdPTEpVQgorS0VLT1ZJxIYgTUVMQU5JSkEKK0tFS09WScSGIE1JT0RSQUcKK0tFTEJMSSBNSUhBSkxPCitLRUxFIEpPxb1FRgorS0VMRSBKT8W9RUYKK0tFTEXEjCBNSUxPUkFECitLRUxFxIwgTUlSS08KK0tFTEXEjEVWScSGIERBTklDQQorS0VMRcSMRVZJxIYgTklLSUNBCitLRUxFxIxJxIYgSVZBTgorS0VMRcSMScSGIEpPU0lQCitLRUxFTUVOIEFMRUtTQU5EQVIgRElQTCBJTkcKK0tFTEVNRU4gQUxFS1NBTkRBUgorS0VMRU1FTiBBTkEKK0tFTEVNRU4gR0FCT1IKK0tFTEVNRU4gSU1SRQorS0VMRU1FTiBKT8W9RUYKK0tFTEVNRU4gSk/FvUVGCitLRUxFTUVOIExBSk/FoAorS0VMRU1FTiBNQcSGQcWgCitLRUxFTUVOIE1BUklKQQorS0VMRU1FTiBUSUJPUgorS0VMRVIgSkFOT8WgCitLRUxFUiBKQU5PxaAKK0tFTEVSIFBFVEFSCitLRUxFUiBSQURNSUxBCitLRUxFUiBTVEVWQU4KK0tFTEVVVkEgRFJBR08KK0tFTEVVVkEgTUlIQUpMTworS0VMScSGIFNURVZBTktBCitLRUxJSkHFoEVWScSGIMW9SVZLTworS0VMTkVSIE1BUklKQQorS0VMT1ZJxIYgTUlMT01JUgorS0VNRUMgQU5EUklKQQorS0VNRUMgTUlKTyBESVBMIElORworS0VNRU5DSSBCRUxBCitLRU1FTkogTUlSQQorS0VNRU5KIFRFUkVaSUpBIERJUEwgSU5HCitLRU1JVkXFoCBHRU9SRworS0VOxJBFTCBTVEVWSUNBCitLRU5DRUwgU01JTEpBCitLRU5FxaBLSSBEUkFHQU4KK0tFTklHIEhFTkRSSUgKK0tFTklHIEpFS0EKK0tFTklHIEpFTEVOQQorS0VOSkFMTyBTVE9KQU4KK0tFUMSMSUpBIElMSUpBCitLRVDEjElKQSBNSUxFCitLRVDEjElKQSBUT0RPUgorS0VQRS1EUkFHT1NBVkxKRVZJxIYgTElWSUpBCitLRVBFIEpVTElKQU5BCitLRVBJxIYgxb1JVkFOCitLRVLEjEVWIEtBUkxPCitLRVLEjFUgTUlSSkFOQQorS0VSxIxVIFNUQU5JU0xBVgorS0VSxaBORVIgQUxFS1NBTkRBUgorS0VSQUMgxb1BUktPCitLRVJBQyDFvUFSS08KK0tFUkFDIMSQVVJBCitLRVJBQyBCUkFOSVNMQVYKK0tFUkFDIERBTklDQQorS0VSQUMgRFXFoEFOCitLRVJBQyBFUsW9RUJFVAorS0VSQUMgR0FWUkEKK0tFUkFDIEpPVkFOCitLRVJBQyBKT1ZBTgorS0VSQUMgTEFaQVIKK0tFUkFDIExBWkFSCitLRVJBQyBMRVBPU0FWQQorS0VSQUMgTUlMSVZPSgorS0VSQUMgTUlMT8WgCitLRVJBQyBNSVRBCitLRVJBQyBQQVZMRQorS0VSQUMgUEFWTEUKK0tFUkFDIFBFUkEKK0tFUkFDIFNJTUEKK0tFUkFDIFNPTkpBCitLRVJBQyBTUEFTQQorS0VSQUMgU1RBTkEKK0tFUkFDIFNUQU5JU0xBVkEKK0tFUkFDIFNURVZBTgorS0VSQUMgU1RFVkFOCitLRVJBQyBUT0RPUgorS0VSQUMgWkxBVEtPCitLRVJBTk9WScSGIE1JTEFOCitLRVJBTk9WScSGIFNUQU5BCitLRVJBVsSMSU4gTUlUQQorS0VSQVbEjElOIFNWRVRPWkFSCitLRVJBVklDQSBEQVZJRAorS0VSQVZJQ0EgSk9WQU4KK0tFUkFWSUNBIExKVUJPTUlSCitLRVJBVklDQSBNSUxJVk9KCitLRVJBVklDQSBNSUxPxaAKK0tFUkFWSUNBIE1JTE/FoAorS0VSQVZJQ0EgTUlPRFJBRworS0VSQVZJQ0EgTUlPRFJBRworS0VSQVZJQ0EgUEVUQVIKK0tFUkFWSUNBIFNURVZBTgorS0VSQVZJQ0EgU1ZFVElTTEFWCitLRVJFxIxLSSBCUkFOS08KK0tFUkXEjEtJIERSQUdPTUlSCitLRVJFxaBFVknEhiBBTEVLU0FORFJBCitLRVJFxaBFVknEhiBJTE9OQQorS0VSRcWgRVZJxIYgU1RPSkFOS0EKK0tFUkXFoEkgSlVMSUpBTkEKK0tFUkXFoEkgVklOQ0UKK0tFUkXFvUkgRkVSRU5DCitLRVJFQyBJVkFOCitLRVJFRMW9SU4gTUlMQU4KK0tFUkVExb1JTiBNSVJKQU5BCitLRVJFRMW9SU4gU09GSUpBCitLRVJFS0XFoCBJxaBUVkFOIERJUEwgSU5HCitLRVJFS0XFoC1NQUxPTktBIEVURUxLQQorS0VSRU5FQyBMSklMSkFOQQorS0VSRU5KSSBBTEVLU0FOREFSCitLRVJFU1RFxaAgSkVORQorS0VSRVNURcWgIExKVUJJQ0EKK0tFUkVTVEXFoCBNQVJHSVRBCitLRVJFWk9WScSGIE1JSEFKTE8KK0tFUkVaT1ZJxIYgTkXEkE8KK0tFUkkgREVORcWgCitLRVJJIEZSQU5KTworS0VSSSBKT1ZBTgorS0VSScSGIFNBVkEKK0tFUktFWiBEUkFHTworS0VSS0VaIERVxaBBTktBCitLRVJLRVogRFXFoEFOCitLRVJLRVogRFXFoEFOCitLRVJLRVogR09KS08KK0tFUktFWiBJTElKQQorS0VSS0VaIExBWkFSCitLRVJLRVogTUlMQU4KK0tFUktFWiBNSUxFTktPCitLRVJLRVogTUlMSUNBCitLRVJLRVogTUlSSkFOQQorS0VSS0VaIE1JUk9TTEFWCitLRVJLRVogTUxBREVOCitLRVJLRVogTklLT0xBCitLRVJLRVogUEFVTElOQQorS0VSS0VaIFBFVEFSCitLRVJLRVogU0xPQk9EQU4KK0tFUktFWiBTUkVURU4KK0tFUktFWiBTVEVWQU4KK0tFUktFWiBTVEVWQU4KK0tFUktFWiBWTEFEQQorS0VSS0VaIFZPSklOCitLRVJMRVRBIE5FxJBPCitLRVJNRUMgSUxPTktBCitLRVJNRUNJIFRJQk9SCitLRVJNRU5ESSBQRVRBUgorS0VSTiBEQU5JRUwKK0tFUlBFTCBTT0ZJSkEKK0tFUlNOSUsgSk/FvUUKK0tFUlNOSUsgTUnFoEEKK0tFUlNUSU5HIEtBVEFSSU5BCitLRVJURVMgRVLFvUVCRVQKK0tFUlRFUyBKQU5PxaAKK0tFUlRFUyBKQU5PxaAKK0tFUlRFUyBWSUxNT8WgCitLRVJWSU5BIEFOVE9OCitLRVJWSU5BIEFSSUpBTkEKK0tFU0VHIExBSk/FoAorS0VTRUcgTEFKT8WgCitLRVNFR0kgR0VaQQorS0VTRUdJIEtBUk9MSgorS0VTRUdJIFZPSklTTEFWCitLRVNFUiBEUkFHScWgQQorS0VTRVJPVknEhiBLQVRBUklOQQorS0VTScSGIMW9SVZLTworS0VTScSGIMSQVVJBCitLRVNJxIYgQk/FoEtPCitLRVNJxIYgQk9SSVNMQVYKK0tFU0nEhiBHT1JBTgorS0VTScSGIEpPVkFOCitLRVNJxIYgTUFSSU5LTworS0VTScSGIE1JTEUKK0tFU0nEhiBNSUxJQ0EKK0tFU0nEhiBNSUxLQQorS0VTScSGIE5FVkVOS0EKK0tFU0nEhiBTTE9CT0RBTgorS0VTScSGIFNUQU5PSkUgRElQTCBQUkFWTklLCitLRVNMRVIgQU5EUklKQSBEUiBMRUtBUgorS0VTTEVSIFJPQkVSVAorS0VURUxFxaAgUk/FvUlLQQorS0VUSUcgVE9NSVNMQVYKK0tFVElHIFRPTUlTTEFWCitLRVZJxIYgTUlMQQorS0VWScSGIE9MR0EKK0tFVknEhiBSQURFCitLRVZJTEogQlJBTktPCitLRVZSRcWgQU4gRU1JTAorS0VaRcWgSSBEVcWgS08KK0tFWknEhiBEVcWgQU5LQQorS0VaScSGIE1JUktPCitLRVpJSkEgTUlMT1JBRAorS0VaTUnEhiBCSUxKQU5BCitLRVpVTk9WScSGIE1JTE9WQU4KK0tFWlVOT1ZJxIYgUEVUS08KK0tFWlVOT1ZJxIYgUkFKS08KK0tJxIxJIEVSTkUKK0tJxIxJTiBFVkEKK0tJxIxJTkEgTEFaQVIKK0tJxIxJTkogRUxJWkFCRVRBCitLScWgLcSMRVBFR0kgR0FCT1IKK0tJxaAtxIxFUEVHSSBHQUJPUgorS0nFoC3EjEVQRUdJIFJVRE9MRgorS0nFoC3EjEVQRUdJIFRFUkVaQQorS0nFoCDFoEFORE9SCitLScWgIMWgQU5ET1IKK0tJxaAgxJBFUsSQCitLScWgIMSQRVLEkAorS0nFoCBBTEVLU0FOREFSCitLScWgIEFOQQorS0nFoCBBTkRSSUpBCitLScWgIEJFTEEKK0tJxaAgQkVMQQorS0nFoCBCT0xEScW9QVIKK0tJxaAgQlJBTktPCitLScWgIERVxaBBTktBCitLScWgIERVxaBJQ0EKK0tJxaAgRVJORVNUCitLScWgIEVSTkUKK0tJxaAgRVNURVIKK0tJxaAgRVZBCitLScWgIEZFUkVOQworS0nFoCBGRVJFTkMKK0tJxaAgRkVSRU5DCitLScWgIEZSQU5KTworS0nFoCBHRVpBCitLScWgIEdFWkEKK0tJxaAgR0laRUxBCitLScWgIEhFTEVOQQorS0nFoCBIRU5SSUpFVEEKK0tJxaAgScWgVFZBTgorS0nFoCBJxaBUVkFOCitLScWgIEnFoFRWQU4KK0tJxaAgSUxPTkEKK0tJxaAgSUxPTktBCitLScWgIElSRU5BCitLScWgIElTSURPUgorS0nFoCBJVkFOCitLScWgIElWQU4KK0tJxaAgSkFOS08KK0tJxaAgSkFOT8WgCitLScWgIEpPxb1FRgorS0nFoCBKT0NBCitLScWgIEpPU0lQCitLScWgIEpPU0lQCitLScWgLUpPVkFLIEZSQU5KQQorS0nFoCBKT1pFRklOQQorS0nFoCBKVUxJSkFOCitLScWgIEtBTE1BTgorS0nFoCBLQVRBTElOCitLScWgIEtBVElDQQorS0nFoCBLQVRJQ0EKK0tJxaAgTEFDSUtBCitLScWgIExBU0xPCitLScWgIExBU0xPCitLScWgIE1BUkdJVEEKK0tJxaAgTUFSSUpBCitLScWgIE1BUklKQQorS0nFoCBNSUhBTEoKK0tJxaAgTUlKQQorS0nFoCBNSUxBTgorS0nFoCBNSUxJQ0EKK0tJxaAgTUlSS08KK0tJxaAgTkFORE9SCitLScWgIE5JS09MQQorS0nFoCBOSUtPTEEKK0tJxaAgT1RPCitLScWgIE9UTworS0nFoCBQQVZMRQorS0nFoCBQRVJBCitLScWgIFBFVEFSCitLScWgIFBFVEFSCitLScWgIFBFVEFSCitLScWgIFJPWkFMSUpBCitLScWgIFNMQVZJQ0EKK0tJxaAgU0xBVklDQQorS0nFoCBTTE9CT0RBTgorS0nFoCBTVEFOSVNMQVYKK0tJxaAgU1RFVkFOCitLScWgIFNURVZBTgorS0nFoCBTVEVWQU4KK0tJxaAgU1RFVkFOCitLScWgIFNUSkVQQU4KK0tJxaAgVElCT1IgRFIKK0tJxaAgVElCT1IKK0tJxaAgVElCT1IKK0tJxaAgVE9ET1IKK0tJxaAgVkVTTkEKK0tJxaAgVklLVE9SSUpBCitLScWgIFZMQURJTUlSCitLScWgIFZMQURJTUlSCitLScWgIFZMQURJTUlSCitLScWgIFZMQURJTUlSCitLScWgIFZVS09TQVZBCitLScWgIFpPTFRBTgorS0nFoCBaT0xUQU4KK0tJxaAgWk9MVEFOCitLScWgIFpPTFRBTgorS0nFoCBaT0xUQU4KK0tJxaAgWk9MVEFOCitLScWgIFpPTFRBTgorS0nFoERPQlJBTlNLSSBNSUxJVk9KCitLScWgRUdFQ0kgSkFOIERSCitLScWgR0VDSS1EVURBxaAgS0xBUkEKK0tJxaBHRUNJIEVNSUwKK0tJxaBHRUNJIElWQU4KK0tJxaBHRUNJIFBBVkxFCitLScWgR0VDSSBTVEFOSVNMQVYKK0tJxaBHRUNJIFNUQU5JU0xBVgorS0nFoEdFQ0kgU1RFVkFOCitLScWgR0VDSSBWTEFESU1JUgorS0nFoEpVSEFTIEpBS09WCitLScWgTUnFoEtBIFBBTAorS0nFoFBSRElMT1YgREVKQU4KK0tJxaBQUkRJTE9WIFpPUkFOCitLScSGQU5PVknEhiBCT1JPCitLScSGQU5PVknEhiBEQVJJTktBCitLScSGQU5PVknEhiBKT0tBCitLScSGQU5PVknEhiBNSVJPU0xBVgorS0nEhkFOT1ZJxIYgTUlUQVIKK0tJxIZBTk9WScSGIFBFVEFSCitLScSGQU5PVknEhiBSQURNSUxBCitLScSGQU5PVknEhiBSQUpLTworS0nEhkFOT1ZJxIYgWk9SQU4KK0tJxb1ET0JSQU5TS0kgxb1BUktPCitLScW9RE9CUkFOU0tJIExKVUJJQ0EKK0tJxb1ET0JSQU5TS0kgTUlMQU4KK0tJxb1ET0JSQU5TS0kgTUlMQU4KK0tJxb1ET0JSQU5TS0kgTUlMSVZPSgorS0nFvURPQlJBTlNLSSBTQVZBCitLScW9RVZTS0kgRElNS08KK0tJxb1FVlNLSSBNSVJBCitLScW9RVZTS0kgVk9KSVNMQVYKK0tJQ0/FoEVWIEJSQU5LTworS0lDT8WgRVYgTEpJTEpBTkEKK0tJQ0/FoEVWIE1JVEEKK0tJQ0/FoEVWIFNBxaBBCitLSUNPxaBFViBTVE9KQU4KK0tJQ0/FoEVWScSGIFRSSVZBCitLSUNPxaBFVknEhiBWTEFKS08KK0tJSkHEjEtJIEJSQU5JU0xBVgorS0lKQU5PVknEhiBNQU5PSkxFCitLSUpBTk9WScSGIFNUQU5LTworS0lLQU5PVknEhiBESU1JVFJJSkUKK0tJS0FOT1ZJxIYgRE9CUklMQQorS0lLQU5PVknEhiBNSUxFTklKQQorS0lLScSGLcWgT1ZMSkFOU0tJIExKSUxKQU5BCitLSUtJxIYgTUlSS08KK0tJS0nEhiBTTUlMSkEgRFIKK0tJS0lOxJBBTklOIE1JUk9TTEFWQQorS0lLSU5EQUkgVkVSQQorS0lLT8WgIEdPUkRBTgorS0lLT8WgIEpPVkFOCitLSUtPxaAgTEFaQVIKK0tJS0/FoCBTUkJJU0xBVgorS0lLT1ZJxIYgU0xBVklDQQorS0lMScSGIE5JS09MQQorS0lMSUJBUkRBIE1JTE9SQUQKK0tJTElCQVJEQSBNSVRBUgorS0lMSUJBUkRBIFBBVkxFCitLSUxJQkFSREEgVkxBRElNSVIKK0tJTElCQVJEQSBWT0pJU0xBVgorS0lNUEFOT1YgQlJBTklTTEFWCitLSU1QQU5PViBOQVRBTElKQQorS0lNUEFOT1YgU0xPQk9EQU4KK0tJTVBBTk9WIFNMT0JPREFOCitLSU1QQU5PViBTT0ZJSkEKK0tJTsSMRcWgIE1JSEFMSgorS0lOxJBJTiBTVkVUT1pBUgorS0lOxJBJTiBWQVNBCitLSU5ERVJOQUogSUxJSkEKK0tJTkRFUk5BSiBNSUxBTgorS0lOREVSTkFKIE9UTworS0lOREVSTk9KIFBBVkxFCitLSU5JSyBKQU4KK0tJTklLIFBBVkxFCitLSU5KRVJBTiBTVkVUSVNMQVYKK0tJTktBIFJJVEEKK0tJUEVST1ZJxIYgSk9WTworS0lQScSGIMSQVUxBCitLSVBJxIYgQU5EUklKQQorS0lQScSGIEFOS0EKK0tJUEnEhiBFRElUQQorS0lQScSGIEVSxb1FQkVUCitLSVBJxIYgRVJORQorS0lQScSGIEZFUkVOQworS0lQScSGIEZSQU5KQQorS0lQScSGIEnFoFRWQU4KK0tJUEnEhiBKT1NJUAorS0lQScSGIExBU0xPCitLSVBJxIYgTkFORE9SCitLSVLEjEFOIEVNSUwKK0tJUsWgIEpPxb1FRgorS0lSxaAgTUlMT1JBRAorS0lSxaBFSyBKVVJBSgorS0lSxIZBTiBTQVZBCitLSVLEhkFOU0tJIEJSQU5LTworS0lSxIZBTlNLSSBEVcWgS08KK0tJUsSGQU5TS0kgSVZBTgorS0lSxIZBTlNLSSBNSUxJQ0EKK0tJUsSGQU5TS0kgT0JSQUQKK0tJUsSGQU5TS0kgUkFESVZPSgorS0lSxIZBTlNLSSBSQURPU0xBVkEKK0tJUkRBIFZMQURJTUlSCitLSVJJxIYgRlJBTkpPCitLSVJJxIYgTUVOS0EKK0tJUknEhiBTTE9CT0RBTgorS0lSScSGIFNUQU5JU0xBVgorS0lSSUTFvUnEhiBEUkFHScWgQQorS0lSSUTFvUnEhiBNSUxPxaAKK0tJUklExb1JxIYgT0JSQUQKK0tJUklMT1YgQUxFS1NBTkRBUgorS0lSSUxPVknEhiBBTEVLU0FOREFSCitLSVJJTE9WScSGIERPQlJJTktBCitLSVJJTE9WScSGIEpFTEVOQQorS0lSSUxPVknEhiBLUklTVEEKK0tJUklMT1ZJxIYgS1JJU1RJTkEKK0tJUklMT1ZJxIYgT0xHQQorS0lSSU4gxb1FTEpLTworS0lSSU4gSVZJQ0EKK0tJUklOIFNORcW9QU5BCitLSVJKQUtPVknEhiBKT1ZBTgorS0lSSkFLT1ZJxIYgTklLT0xBCitLSVJLT1YgRElNSVRBUgorS0lSS09WIFZFUklDQQorS0lSTiBWTEFESU1JUgorS0lST1ZBS09WIFZBTEVSSUpBCitLSVJUScSGIERVxaBBTgorS0lTQcSMQU5JTiBERVNBTktBCitLSVNBxIxBTklOIERVxaBBTgorS0lTQcSMQU5JTiBNSU9EUkFHIERJUEwgSU5HCitLSVNBxIxBTklOIE1JUk9TTEFWCitLSVNBxIxBTklOIFBBVkxFCitLSVNBxIxBTklOIFNWRVRPWkFSCitLSVNFTEnEjEtJIMW9SVZLTyBTVURJSkEKK0tJU0VMScSMS0kgREFOSUNBCitLSVNFTEnEjEtJIEZFRE9SIERSCitLSVNFTEnEjEtJIExBWkFSIERJUEwgSU5HCitLSVNFTElDQSDFvUFSS08KK0tJU0VMSUNBIE5BREEKK0tJU0VMSUNBIFBFVEFSCitLSVNFTElDQSBQRVRBUgorS0lTScSGIERVxaBBTgorS0lTScSGIEpPVkFOCitLSVNJxIYgTUlSS08KK0tJU0nEhiBTUsSQQU4KK0tJU0nEhiBTVkVUT1pBUgorS0lTSU4gQU7EkEEKK0tJU0lOIE1JTElDQQorS0lTSU4gTUlMS0EKK0tJU0lOIFRPTU8KK0tJU0xJQyBJUkVOQQorS0lTTE9WU0tJIFZMQURJTUlSCitLSVNPIE1JTE9SQUQKK0tJU1RFUiBWSU5LTworS0lUIFZBU0lMSgorS0lUQU5PVknEhiDFvUlWS08KK0tJVEFOT1ZJxIYgQlJBTklTTEFWQQorS0lUQU5PVknEhiBLQVRJQ0EKK0tJVEFOT1ZJxIYgTEVOS0EKK0tJVEFOT1ZJxIYgTUlSSkFOQQorS0lUQU5PVknEhiBORURFTEpLTworS0lUQU5PVknEhiBUT01BCitLSVRBTk9WU0tJIERJTcSMRQorS0lUScSGIFJBRE9KS0EKK0tJVEnEhiBTQVZPCitLSVRJxIYgU1RPSktPCitLSVRJxIYgVkVMSU1JUgorS0lVUlNLSSBTVEVWQU4gRElQTCBPRUMKK0tJVk9WScSGIEFOVE9OSUpBCitLSVpBIEJSQU5LSUNBCitLSVpJxIYgRFXFoEFOCitLSVpJxIYgTElESUpBCitLSVpJxIYgTUFSS08KK0tJWknEhiBNSUhBSUxPCitLSVpJxIYgU0FWS0EKK0tJWknEhiBTTE9CT0RBTgorS0laScSGIFNMT0JPREFOCitLSVpJxIYgU05Fxb1BTkEKK0tJWknEhiBUSUhPU0xBVgorS0laVVIgQU5EUkHFoAorS0laVVIgScWgVFZBTgorS0laVVIgSkFOT8WgCitLSVpVUiBMQVNMTworS0laVVIgUEFWRUwKK0tJWlVSIFZFUkEKK0tMQcSMQVIgTUlMS08KK0tMQcSMQVIgTUlMT8WgCitLTEHFoE5KQSDFvUFSS08KK0tMQcWgTkpBIEJSQU5LTworS0xBxaBOSkEgSk9WQU4KK0tMQcWgTkpBIE1BUklKQQorS0xBxaBOSkEgTUlLQQorS0xBxaBOSkEgTUlMRU5BCitLTEHFoE5KQSBNSUxFCitLTEHFoE5KQSBNSUxJQ0EKK0tMQcWgTkpBIE1JUk9TTEFWCitLTEHFoE5KQSBWTEFESVNMQVYgRFIgTEVLQVIKK0tMQcSGIERSQUdBTgorS0xBxIZJSyBKT8W9RUYKK0tMQcSGSUsgTUFSSUpBCitLTEFEVcWgScSGIE1FTlNVUkEKK0tMQUnEhiBBTlRPCitLTEFJxIYgUEFWTworS0xBSiBQRVRBUgorS0xBSknEhiDEkFVSQQorS0xBSknEhiBEQU5JTE8KK0tMQUpJxIYgTEpVQklDQQorS0xBSknEhiBNQUdEQUxFTkEKK0tMQUpJxIYgT0xHQQorS0xBSknEhiBST1pBTElKQQorS0xBSknEhiBWQUxFUklKQQorS0xBSknEhiBWSURBCitLTEFKTiBBTEJFUlQKK0tMQUpOIEFOQQorS0xBSk4gRFJBR1VUSU4KK0tMQUpOIElWQU5LQQorS0xBSk4gSVZBTgorS0xBSk4gTEFKxIxPIERSCitLTEFKTiBNSVJPU0xBVgorS0xBSk4gVkVSQQorS0xBSk5FUiBFU1RFUgorS0xBSk5FUiBJxaBUVkFOCitLTEFNQVIgS0FSTE8KK0tMQU1JSyBJTVJFCitLTEFQQVJFVknEhiBHT1JBTgorS0xBUEFSRVZJxIYgU0FWQQorS0xBUEFSRVZJxIYgVkFTSUxJSkUKK0tMQVJJxIYgRFXFoEFOS0EKK0tMQVJJxIYgR09SQU4KK0tMQVJJxIYgTEpVQklDQQorS0xBUknEhiBNSUxJxIYKK0tMQVJJxIYgTUlMT1JBRAorS0xBUknEhiBPTEdBCitLTEFSScSGIFNFS0EKK0tMQVNBTiBBTkEKK0tMQVNFUiBBTEJFUlQKK0tMQVNJxIYgTEFESVNMQVYKK0tMQVNJxIYgU0HFoEEKK0tMQVVTIEVSxb1FQkVUCitLTEFVUyBFUsW9RUJFVAorS0xBVVMgTEFTTE8KK0tMRUJFxIxLTyDFoEFORE9SCitLTEVCRcSMS08gxaBBTkRPUgorS0xFTSBBREFNIERSCitLTEVNIEpPxb1FRgorS0xFTSBURVJFWkEKK0tMRU1FTk9WScSGIFVST8WgCitLTEVOT0NLSSBNQVJJSkEKK0tMRU5PVsWgRUsgRlJBTkpBCitLTEVOT1bFoEVLIFRFUkVaSUpBCitLTEVOT1bFoEVLIFpWT05JTUlSCitLTEVQScSGIMSQVVJBxJAKK0tMRVBJxIYgTklLT0xBCitLTEVUIEdFWkEKK0tMRVVUIE1JTEFOCitLTEVVVCBSVcW9QSBEUiBMRUtBUgorS0xFVkVSTknEhiBCT1JJU0xBVgorS0xJxIxFSyBJUkVOQQorS0xJxIxLT1ZJxIYgREFOSUNBCitLTEnEjEtPVknEhiBLT1NUQQorS0xJxIxLT1ZJxIYgVkVSQQorS0xJxaBBTknEhiBKT1NJUAorS0xJxaBBTknEhiBTVEFOSVNMQVYKK0tMSUNPViBJTElKQQorS0xJS09WQUMgTUlIQUpMTworS0xJS09WQUMgVkVMSU1JUgorS0xJTUXFoCBEUkFHQU5BCitLTElNRcWgIFpPUkEKK0tMSU5BQyBVUk/FoAorS0xJTkFSIElWQU4KK0tMSU5DT1YgTkFEQQorS0xJTkTFvUnEhiBTVEpFUEFOCitLTElOR0VSIEtBVElDQQorS0xJTktPIEpBTgorS0xJTk9DS0kgxJBFUsSQCitLTElOT1ZTS0kgQlJBTktPCitLTElOT1ZTS0kgRFJBR0FOCitLTElOT1ZTS0kgRFJBR0FOCitLTElOT1ZTS0kgRFXFoEFOCitLTElQQSDFvUlWQU4KK0tMSVBBIMSQT1LEkEUKK0tMSVBBIEpFTElDQQorS0xJUEEtS1JBQkVTIEdSRVRBCitLTElQQSBMQVpBUgorS0xJUEEgTUlLQQorS0xJUiBJTE9OQQorS0xJUiBST1pBTElKQQorS0xJU0FSQSDFvUlWS08KK0tMSVNBUkEgxJBPUsSQRQorS0xJU0FSScSGIE1JUktPCitLTElTScSGIE5BREEKK0tMSVNLQSBBTsSQRUxJSkEKK0tMSVNLQSBWT0pPCitLTElTVVJBIE1JTE/FoAorS0xJU1VSQSBNT01JUgorS0xJU1VSQSBTVEFLQQorS0xJU1VSScSGIMSQVVJPCitLTElWSU5KSSBKT8W9RUYKK0tMSkFJxIYgTEVQT1NBVkEKK0tMSkFJxIYgTUFDQQorS0xKQUnEhiBTSU1PCitLTEpBSU4gRFJBR0lOSkEKK0tMSkFJTiBMQVpBUgorS0xKQUpJxIYgxJBPUsSQRSBQUk9GRVNPUgorS0xKQUpJxIYgxJBPUsSQRQorS0xKQUpJxIYgxJBPUsSQRQorS0xKQUpJxIYgQk9SSVZPSkUKK0tMSkFKScSGIEJPUktBCitLTEpBSknEhiBCUkFOS08KK0tMSkFKScSGIEJSQU5LTworS0xKQUpJxIYgREFOSUxPCitLTEpBSknEhiBEUkFHQU4KK0tMSkFKScSGIERSQUdBTgorS0xKQUpJxIYgRFXFoEFOS0EKK0tMSkFKScSGIElMSUpBCitLTEpBSknEhiBJTElKQQorS0xKQUpJxIYgSVZBTgorS0xKQUpJxIYgSkVMRU5BCitLTEpBSknEhiBLT1ZJTEpLQQorS0xKQUpJxIYgTFVLQQorS0xKQUpJxIYgTUFSQQorS0xKQUpJxIYgTUlMQU4KK0tMSkFKScSGIE1JTEVWQQorS0xKQUpJxIYgTUlPRFJBRworS0xKQUpJxIYgTkFEQQorS0xKQUpJxIYgT0xJVkVSQQorS0xKQUpJxIYgUEVUQVIKK0tMSkFKScSGLVJBREFLT1ZJxIYgTUlMSUNBCitLTEpBSknEhiBTRU5LQQorS0xKQUpJxIYgVkFUQQorS0xKQUpJxIYgVkxBRE8KK0tMSkFKScSGIFZVS0lDQQorS0xKQUpJxIYgWkRSQVZLTworS0xKQUtJxIYgVlVLQcWgSU4KK0tMSkXEjEFOSU4gTUlSSkFOQQorS0xKVcSMT1ZTS0kgTUFIQUxKSU5BCitLTEpVxIxPVlNLSSBOSUtPTEEKK0tMSlVUScSGIEpBU01JTkEKK0tMSlVUScSGIE9TVE9KQQorS0xPQlXFoElDS0kgVkxBRElTTEFWCitLTE9QRkVSIMSQT1LEkEUKK0tMT1BLQSBLTEFSQSBEUgorS0xPUEtBIFBJUk/FoEtBCitLTUXEjCBNQVJUSU4KK0tNRcSMS08gU1RFVkFOCitLTUXEhiBKQU4gRFIKK0tNRVpJxIYgSVZBTktBCitLTUVaScSGIE1JTEUKK0tNRVpJxIYgVkxBREEKK0tNSUNJS0VWScSGIFpPUkFOCitLTUlDSUtPVknEhiBNSUxPSktBCitLTkXFoEFVUkVLIE1BUklKQQorS05Fxb1FViDFvUFSS08gRElQTCBJTkcKK0tORcW9RVYgxJBPUsSQRQorS05Fxb1FViDEkE9SxJBFCitLTkXFvUVWIMSQVVJBCitLTkXFvUVWIEpFTElDQQorS05Fxb1FViBMSklMSkFOQQorS05Fxb1FVknEhiDFvUFSS08KK0tORcW9RVZJxIYgxb1FTEpLTworS05Fxb1FVknEhiDFvUVMSktPCitLTkXFvUVWScSGIMW9RUxKS08KK0tORcW9RVZJxIYgxb1JVktBCitLTkXFvUVWScSGIMW9SVZLTworS05Fxb1FVknEhiDFvUlWT0pJTgorS05Fxb1FVknEhiDFvUlWT0pJTgorS05Fxb1FVknEhiDEkElORQorS05Fxb1FVknEhiDEkE9SxJBFCitLTkXFvUVWScSGIMSQT1LEkEUKK0tORcW9RVZJxIYgxJBPUsSQRQorS05Fxb1FVknEhiDEkE9SxJBFCitLTkXFvUVWScSGIMSQT1LEkEUKK0tORcW9RVZJxIYgxJBPUsSQRQorS05Fxb1FVknEhiDEkE9SxJBFCitLTkXFvUVWScSGIMSQVVJBCitLTkXFvUVWScSGIMSQVVJBCitLTkXFvUVWScSGIMSQVVJPCitLTkXFvUVWScSGIEFMRUtTQU5EQVIKK0tORcW9RVZJxIYgQUxFS1NBTkRBUgorS05Fxb1FVknEhiBBTEVLU0FOREFSCitLTkXFvUVWScSGIEFMRUtTQU5EUkEKK0tORcW9RVZJxIYgQUxFS1NBCitLTkXFvUVWScSGIEFOxJBFTEtPCitLTkXFvUVWScSGIEFOSUNBCitLTkXFvUVWScSGIEFOSUNBCitLTkXFvUVWScSGIEFSS0FESUpBCitLTkXFvUVWScSGIEJPxaBLTworS05Fxb1FVknEhiBCT8W9TworS05Fxb1FVknEhiBCT0dEQU4KK0tORcW9RVZJxIYgQk9HREFOCitLTkXFvUVWScSGIEJPR0RBTgorS05Fxb1FVknEhiBCT1JJU0xBVgorS05Fxb1FVknEhiBCT1JJUworS05Fxb1FVknEhiBCT1JLQQorS05Fxb1FVknEhiBCT1NJTEpLQQorS05Fxb1FVknEhiBCUkFOSU1JUgorS05Fxb1FVknEhiBCUkFOS08KK0tORcW9RVZJxIYgQlJBTktPCitLTkXFvUVWScSGIENWSUpPCitLTkXFvUVWScSGIERPQlJJVk9KRQorS05Fxb1FVknEhiBEUkFHQU4KK0tORcW9RVZJxIYgRFJBR0FOCitLTkXFvUVWScSGIERSQUdBTgorS05Fxb1FVknEhiBEUkFHQU4KK0tORcW9RVZJxIYgRFJBR0nFoEEKK0tORcW9RVZJxIYgRFJBR0lDQQorS05Fxb1FVknEhiBEUkFHSUNBCitLTkXFvUVWScSGIERSQUdPTEpVQgorS05Fxb1FVknEhiBEUkFHT0xKVUIKK0tORcW9RVZJxIYgRFXFoEFOS0EKK0tORcW9RVZJxIYgRFXFoEFOCitLTkXFvUVWScSGIERVxaBBTgorS05Fxb1FVknEhiBEVcWgQU4KK0tORcW9RVZJxIYgRFXFoEFOCitLTkXFvUVWScSGIEdMScWgQQorS05Fxb1FVknEhiBHT1JEQU5BCitLTkXFvUVWScSGIElMSUpBCitLTkXFvUVWScSGIElMSUpBCitLTkXFvUVWScSGIElMSUpBCitLTkXFvUVWScSGIElMSUpBCitLTkXFvUVWScSGIElMSUpBCitLTkXFvUVWScSGIElMSUpBCitLTkXFvUVWScSGIElWQU5LQQorS05Fxb1FVknEhiBJVkFOCitLTkXFvUVWScSGIElWQU4KK0tORcW9RVZJxIYgSkVMQQorS05Fxb1FVknEhiBKRUxFTkEKK0tORcW9RVZJxIYgSkVMRU5BCitLTkXFvUVWScSGIEpFTElTQVZLQQorS05Fxb1FVknEhiBKT1NJUAorS05Fxb1FVknEhiBKT1ZBTktBCitLTkXFvUVWScSGIEpPVkFOS0EKK0tORcW9RVZJxIYgSk9WQU4KK0tORcW9RVZJxIYgSk9WQU4KK0tORcW9RVZJxIYgSk9WQU4KK0tORcW9RVZJxIYgSk9WQU4KK0tORcW9RVZJxIYgSk9WQU4KK0tORcW9RVZJxIYgSk9WTworS05Fxb1FVknEhiBKVUdPU0xBVgorS05Fxb1FVknEhiBLUlNUQU4KK0tORcW9RVZJxIYgTEFUSU5LQQorS05Fxb1FVknEhiBMQVpBUgorS05Fxb1FVknEhiBMQVpBUgorS05Fxb1FVknEhiBMSklMSkFOQQorS05Fxb1FVknEhiBMSlVCT01JUgorS05Fxb1FVknEhiBMSlVCT01JUgorS05Fxb1FVknEhiBMSlVCT01JUgorS05Fxb1FVknEhiBNQU5FCitLTkXFvUVWScSGIE1BUklDQQorS05Fxb1FVknEhiBNQVJJQ0EKK0tORcW9RVZJxIYgTUFSSUpBCitLTkXFvUVWScSGIE1BUklKQQorS05Fxb1FVknEhiBNQVJJSkEKK0tORcW9RVZJxIYgTUFSSUpBCitLTkXFvUVWScSGIE1BUktPCitLTkXFvUVWScSGIE1JxIZBCitLTkXFvUVWScSGIE1JSEFKTE8KK0tORcW9RVZJxIYgTUlIQUpMTworS05Fxb1FVknEhiBNSUhBSkxPCitLTkXFvUVWScSGIE1JSEFKTE8KK0tORcW9RVZJxIYgTUlMQURJTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxBTgorS05Fxb1FVknEhiBNSUxJQ0EKK0tORcW9RVZJxIYgTUlMSUpBTkEKK0tORcW9RVZJxIYgTUlMSVZPSgorS05Fxb1FVknEhiBNSUxLQQorS05Fxb1FVknEhiBNSUxPxaAKK0tORcW9RVZJxIYgTUlMT01JUgorS05Fxb1FVknEhiBNSUxPTkpBCitLTkXFvUVWScSGIE1JTE9OSkEKK0tORcW9RVZJxIYgTUlMT1JBRAorS05Fxb1FVknEhiBNSUxVVElOCitLTkXFvUVWScSGIE1JT0RSQUcKK0tORcW9RVZJxIYgTUlPRFJBRworS05Fxb1FVknEhiBNSU9EUkFHCitLTkXFvUVWScSGIE1JUkpBTkEKK0tORcW9RVZJxIYgTUlSS08KK0tORcW9RVZJxIYgTUlSS08KK0tORcW9RVZJxIYgTUlSS08KK0tORcW9RVZJxIYgTUlSS08KK0tORcW9RVZJxIYgTUlSS08KK0tORcW9RVZJxIYgTUlSS08KK0tORcW9RVZJxIYgTUlSS08KK0tORcW9RVZJxIYgTUlST1NMQVYKK0tORcW9RVZJxIYgTUlST1NMQVYKK0tORcW9RVZJxIYgTUxBREVOCitLTkXFvUVWScSGIE1PTcSMSUxPCitLTkXFvUVWScSGIE1PTUlSCitLTkXFvUVWScSGIE1PTUlSCitLTkXFvUVWScSGIE1PTUlSCitLTkXFvUVWScSGIE5BREEKK0tORcW9RVZJxIYgTkFERcW9REEKK0tORcW9RVZJxIYgTkVOQUQKK0tORcW9RVZJxIYgTkVWRU5BCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgUEFOVEEKK0tORcW9RVZJxIYgUEFWTEUKK0tORcW9RVZJxIYgUEVSQQorS05Fxb1FVknEhiBQRVRBUgorS05Fxb1FVknEhiBQRVRBUgorS05Fxb1FVknEhiBQRVRBUgorS05Fxb1FVknEhiBQRVRBUgorS05Fxb1FVknEhiBQRVRLTworS05Fxb1FVknEhiBSQURBCitLTkXFvUVWScSGIFJBREUKK0tORcW9RVZJxIYgUkFESVZPSkUKK0tORcW9RVZJxIYgUkFESVZPSkUKK0tORcW9RVZJxIYgUkFETUlMQQorS05Fxb1FVknEhiBSQURPTUlSCitLTkXFvUVWScSGIFJBRE9TTEFWCitLTkXFvUVWScSGIFJBSktPCitLTkXFvUVWScSGIFJBTktPCitLTkXFvUVWScSGIFJJU1RPCitLTkXFvUVWScSGIFJPWkEKK0tORcW9RVZJxIYgU0FWTworS05Fxb1FVknEhiBTSU5JxaBBCitLTkXFvUVWScSGIFNMQVZLTworS05Fxb1FVknEhiBTTEFWS08KK0tORcW9RVZJxIYgU0xBVk9MSlVCCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNMT0JPREFOCitLTkXFvUVWScSGIFNQQVNFTklKQQorS05Fxb1FVknEhiBTUkJJU0xBVkEKK0tORcW9RVZJxIYgU1RBTkEKK0tORcW9RVZJxIYgU1RBTknFoEEKK0tORcW9RVZJxIYgU1RBTklNSVIKK0tORcW9RVZJxIYgU1RBTktPCitLTkXFvUVWScSGIFNURVZBTgorS05Fxb1FVknEhiBTVEVWTworS05Fxb1FVknEhiBTVEVWTworS05Fxb1FVknEhiBTVElQRQorS05Fxb1FVknEhiBTVE9KQU4KK0tORcW9RVZJxIYgU1ZFVEtPCitLTkXFvUVWScSGIFNWRVRPCitLTkXFvUVWScSGIFRFT0RPUgorS05Fxb1FVknEhiBUT01JU0xBVgorS05Fxb1FVknEhiBVUk/FoAorS05Fxb1FVknEhiBWQVNJTElKQQorS05Fxb1FVknEhiBWRVJBCitLTkXFvUVWScSGIFZFUkEKK0tORcW9RVZJxIYgVkxBRElNSVIKK0tORcW9RVZJxIYgVkxBRElNSVIKK0tORcW9RVZJxIYgVkxBU1RJTUlSCitLTkXFvUVWScSGIFZMQVNUSU1JUgorS05Fxb1FVknEhiBWT0pJTgorS05Fxb1FVknEhiBWVUtPU0FWCitLTkXFvUVWScSGIFpEUkFWS08KK0tORcW9RVZJxIYgWkxBVEFOCitLTkXFvUVWScSGIFpPUkFOCitLTkXFvUVWScSGIFpPUkFOCitLTkXFvUVWScSGIFpPUkEKK0tORcW9ScSGIE9MR0EKK0tORcW9ScSGIFJBRE9NSVIKK0tORUJMIEZSQU5KQQorS05FQkwgTklLT0xBCitLTkVHScSGIE1JUk9TTEFWCitLTkVSIERFWklERVIKK0tORVNFTEFDIEJSQU5JU0xBVkEKK0tORVogWkxBVEtPCitLTkVaSSBJVkFOCitLTkVaSSBKT8W9RUYKK0tORVpJIFNMT0JPREFOCitLTkpFxaBLTyDFvVXFvUFOQQorS05KRcWgS08gQUxCRVJUCitLT8SMQVIgTEFTTE8KK0tPxIxBUiBTVEVGQU5JSkEKK0tPxIxBUiBUSUhPTUlSCitLT8SMRVRPViBUQVRKQU5BCitLT8SMSSBFVEVMS0EKK0tPxIxJIEnFoFRWQU4KK0tPxIxJIFZMQURJTUlSCitLT8SMScWgIMSQVVJBCitLT8SMScWgIEFORFJJSkEKK0tPxIxJxaAgQU5EUklKQQorS0/EjEnFoCBFUk5FU1QKK0tPxIxJxaAgR0VSR0VMSiBESVBMIElORworS0/EjEnFoCBIRUxFTkEKK0tPxIxJxaAgScWgVFZBTgorS0/EjEnFoCBKQUtPVgorS0/EjEnFoCBKQU5LTworS0/EjEnFoCBKQU5PxaAKK0tPxIxJxaAgS0FSTE8KK0tPxIxJxaAgTUFSSUpBCitLT8SMScWgIE1JSEFKTE8KK0tPxIxJxaAgTklLT0xBIFBST0ZFU09SCitLT8SMScWgIFJBREUKK0tPxIxJxaAgVkxBRElNSVIKK0tPxIxJxaAgVkxBRElNSVIKK0tPxIxJxIYgRFJBR08KK0tPxIxJxIYgTUFORQorS0/EjEnEhiBNSUxPUkFECitLT8SMScSGIFNUQU5JU0xBVgorS0/EjE9CQSBSQURJU0xBVgorS0/EjE9TS0kgUEVUQVIKK0tPxIxPVknEhiBBTEVLU0FOREFSCitLT8SMT1ZJxIYgTUlMRVRBCitLT8WgxIZBSyBTQVZLQQorS0/FoEEgVElCT1IgRElQTCBJTkcKK0tPxaBBTklOIE1JTE9NSVIKK0tPxaBBTkpJIEZFUkVOQworS0/FoEFSScSGIERJTUlUUklKRQorS0/FoEnEhiBMSlVCSUNBCitLT8WgScSGIE1JVEEKK0tPxaBJxIYgU1RFVkFOCitLT8WgScSGIFNURVZPCitLT8WgScSGIFZBU0lMSUpFCitLT8WgSUNLSSBMRUEKK0tPxaBJQ0tJIE1BUklKQQorS0/FoE5JxIxBUiBNSUxBTgorS0/FoE5JxIxBUiBTT0ZJSkEKK0tPxaBPQ0tJIE1BUklKQQorS0/FoFVUScSGIMSQVVJPCitLT8WgVVRJxIYgxJBVUk8KK0tPxaBVVEnEhiBCT8W9SURBUgorS0/FoFVUScSGIEJSQU5LTworS0/FoFVUScSGIERJTUlUUklKRQorS0/FoFVUScSGIERVxaBBTgorS0/FoFVUScSGIEpPVkFOCitLT8WgVVRJxIYgS09TVEEKK0tPxaBVVEnEhiBNQU5FCitLT8WgVVRJxIYgTUlMT8WgCitLT8WgVVRJxIYgTklLT0xBCitLT8SGQUxPIFJBRE9KSUNBCitLT8W9VUwgR09KS08KK0tPxb1VTCBHT0pLTworS0/FvVVMIFJBSktPCitLT8W9VVZBUkEgR0FWUkEKK0tPQkHFoCBKT1NJUAorS09CQcWgIEtBVElDQQorS09CQcWgIFZVS0HFoElOCitLT0JBTCDEkFVSQQorS09CQUwgQk/FvUlEQVIKK0tPQkFMIElSSVMKK0tPQkFMIElWQU4KK0tPQklMQVJJxIYgxJBVUsSQSUNBCitLT0JJTEFST1YgQU5HRUxJTkEKK0tPQklMQVJPViBMSlVCT01JUgorS09CSUxBUk9WIE1JTEFOS0EKK0tPQklMQVJPViBNSUxPxaAKK0tPQklMQVJPViBNSVJPU0xBVgorS09CSUxBUk9WIE5FR09WQU4KK0tPQklMQVJPViBORVNUT1IKK0tPQklMQVJPViBTSU1BCitLT0JJTEFST1YgVE/FoEEKK0tPQklMQVJPViBWQVNBCitLT0JJTEpTS0kgxJBPUsSQRQorS09CSUxKU0tJIERPQlJJTEEKK0tPQklMSlNLSSBEUkFHT01JUgorS09CSUxKU0tJIERVxaBBTgorS09CSUxKU0tJIExBWkFSCitLT0JJTEpTS0kgTUlMT8WgCitLT0JJTEpTS0kgTUlSSkFOQQorS09CSUxKU0tJIE1MQURFTgorS09CSUxKU0tJIE5JS09MQQorS09CSUxKU0tJIFNURVZBTgorS09CSUxKU0tJIFZJREEKK0tPQklMU0tJIE1BUklKQQorS09CUkVIRUwgTEFKT8WgCitLT0NBUCBNQVJJSkEKK0tPQ0FQIE1JUkEKK0tPQ0FQIFZMQURJTUlSCitLT0NJIEZFUkVOQworS09DSSBSRcW9RQorS09DScSGIMW9SUtJQ0EKK0tPQ0nEhiBBTEVLU0FOREFSCitLT0NJxIYgQU5JQ0EKK0tPQ0nEhiBEVcWgQU5LQQorS09DScSGIEpBU05BCitLT0NJxIYgTEpJTEpBTkEKK0tPQ0nEhiBNSUxJSkFOQQorS09DScSGIFJBRE1JTEEKK0tPQ0nEhiBTSU5JxaBBCitLT0NJxIYgU0xBxJBBTkEKK0tPQ0nEhiBTTEFWS08KK0tPQ0nEhiBUT01JU0xBVgorS09DScSGIFZBU0lMSUpFCitLT0NJxIYgVkVMSU5LQQorS09DScSGIFpWRVpEQU4KK0tPQ0lKQU7EjEnEhiBNSVJBCitLT0NLQVIgQk9SSVNMQVYKK0tPQ0tBUiBCT1JJU0xBVgorS09DS0FSIExKVUJPTUlSCitLT0NLQVIgVkxBRElNSVIKK0tPQ0tBUkVWScSGIEJSQU5JU0xBVgorS09DS0FSRVZJxIYgSk9WQU4KK0tPQ0tBUkVWScSGIE1JTElDQQorS09DTyDFoEFORE9SCitLT0NPIEVSxb1FQkVUCitLT0NPTEpFVkFDIFNUQU5JU0xBVgorS09Exb1PIFNBxaBBCitLT0TFvU8gWk9SQU4KK0tPREnEhiBESU1JVFJJSkUKK0tPRFJBTk9WIFJBRE9WQU4KK0tPRFJBTk9WIFNSRURPSkUKK0tPRFJJTiBMSlVETUlMQQorS09HT0ogRURVQVJECitLT0dPSiBFTUEKK0tPSCBKT8W9RUYKK0tPSCBTQVZFVEEKK0tPSEFORUMgxaBBTkRPUgorS09IQU5FQyBGUkFOSkEKK0tPSEFORUMgR0HFoFBBUgorS09IQU5FQyBKT1ZBTgorS09IQU5FQyBNQVJJSkEKK0tPSEFORUMgUEFMCitLT0hVVCDEkFVSQQorS09IVVQgU1RPSkEKK0tPSsSMScSGIEFOxJBFTEtPCitLT0rEjEnEhiBEUkFHSUNBCitLT0rEjEnEhiBJVkFOQQorS09KxIxJxIYgUFJFRFJBRworS09KxIxJxIYgU1JFRE9KRSBEUgorS09KxIxJTiBExb1FTUlMSkEKK0tPSsSMSU4gTUlMRVZBCitLT0pBRElOT1ZJxIYgxb1JVktPCitLT0pBRElOT1ZJxIYgQk/FoEtPCitLT0pBRElOT1ZJxIYgQk9STworS09KQURJTk9WScSGIEdPUkRBTkEKK0tPSkFESU5PVknEhiBLQVRBCitLT0pBRElOT1ZJxIYgTUlSQQorS09KQURJTk9WScSGIFJBREUKK0tPSkFESU5PVknEhiBTVE9KQU4KK0tPSkFESU5PVknEhiBWTEFESU1JUgorS09KREnEhiBNSVJKQU5BCitLT0pEScSGIE1MQURFTgorS09KREnEhiBQRVRBUgorS09KScSMScSGIE5PVktBCitLT0pJxIxJxIYgVE9NSVNMQVYKK0tPSknEjElOIE1JTEFOCitLT0pJxIYgxIxFRE9NSVIKK0tPSknEhiDFvUlWQU4KK0tPSknEhiDEkFVSQcSQCitLT0pJxIYgQUxFS1NBTkRBUgorS09KScSGIEFMRUtTQU5EQVIKK0tPSknEhiBBTEVLU0FOREFSCitLT0pJxIYgQVJTRU4KK0tPSknEhiBCT8WgS08KK0tPSknEhi1CT8W9QU5JxIYgU09GSUpBCitLT0pJxIYgQk9SSVZPSgorS09KScSGIEJSQU5JU0xBVgorS09KScSGIERBTklDQQorS09KScSGIERSQUdBTgorS09KScSGIERSQUdBTgorS09KScSGIERSQUdBTgorS09KScSGIERSQUdBTgorS09KScSGIERSQUdJTkpBCitLT0pJxIYgRFXFoEFOCitLT0pJxIYgRVLFvUVCRVQKK0tPSknEhiBHT1JBTgorS09KScSGIEdPUkFOCitLT0pJxIYgR09SQU4KK0tPSknEhiBIUklTVElGT1IKK0tPSknEhiBJVkFOCitLT0pJxIYgSVZBTgorS09KScSGIElWQU4KK0tPSknEhiBKT1ZBTktBCitLT0pJxIYgSk9WQU5LQQorS09KScSGIEpPVk8KK0tPSknEhiBMRVBPU0FWQQorS09KScSGIExKVUJJQ0EKK0tPSknEhiBMSlVCT0RSQUcKK0tPSknEhiBMVUtBCitLT0pJxIYgTUlIQUlMTworS09KScSGIE1JTEFOCitLT0pJxIYgTUlMQU4KK0tPSknEhiBNSUxBTgorS09KScSGIE1JTEFOCitLT0pJxIYgTUlMRU5BCitLT0pJxIYgTUlMRU5BCitLT0pJxIYgTUlMRU5LTworS09KScSGIE1JTEVOS08KK0tPSknEhiBNSUxFTktPCitLT0pJxIYgTUlMT1ZJTkEKK0tPSknEhiBNSU9EUkFHCitLT0pJxIYgTUlSSkFOQQorS09KScSGIE1PTcSMSUxPCitLT0pJxIYgTkXEkE8KK0tPSknEhiBORUJPSsWgQQorS09KScSGIE5FQk9KxaBBCitLT0pJxIYgTkVERUxKS08KK0tPSknEhiBPTEdJQ0EKK0tPSknEhiBQRVRBUgorS09KScSGIFJBRElWT0oKK0tPSknEhiBSVcW9SUNBCitLT0pJxIYgUlXFvUlDQQorS09KScSGIFNBVk8KK0tPSknEhiBTSU1FT04KK0tPSknEhiBTSU5JxaBBCitLT0pJxIYgU1BBU0VOSUpBCitLT0pJxIYgU1RFVkFOCitLT0pJxIYgU1RFVkFOCitLT0pJxIYgU1RFVkFOCitLT0pJxIYgU1ZFVElTTEFWCitLT0pJxIYgVUdMSkXFoEEKK0tPSknEhiBWQVNBCitLT0pJxIYgVkVMSU1JUgorS09KScSGIFZJTktBCitLT0pJxIYgVkxBRElTTEFWCitLT0pPVknEhiDFvUFSS08KK0tPSk9WScSGIE1JTElOS08KK0tPS0FJIMWgQU5ET1IKK0tPS0FJIMWgQU5ET1IKK0tPS0FJIMWgQU5ET1IKK0tPS0FJIEFMSVNBCitLT0tBSSBFTEVOQQorS09LQUkgRkVSRU5DCitLT0tBSSBGRVJFTkMKK0tPS0FJIEZFUkVOQworS09LQUkgTEFESVNMQVYKK0tPS0FJIExBU0xPCitLT0tBSSBNQUdET0xOQQorS09LQUkgTUlIQUpMTworS09LQUkgVElCT1IKK0tPS0FOIElWQU4KK0tPS0FOT1YgTUlMRVRBCitLT0tBTk9WScSGIERVxaBBTgorS09LQU5PVknEhiBLT1ZJTEpLQQorS09LQVIgVkVSSUNBCitLT0tBUiBWSUxNQQorS09LRUxKIFRVR09NSVIKK0tPS0VaQSDFvUFSS08KK0tPS0VaQSBEVcWgQU4KK0tPS0VaQSBNSUxFTkEKK0tPS0nEhiBKT1ZBTgorS09LScSGIE1JUk9TTEFWCitLT0tJTk9WScSGIFNMQVZLTworS09LSVIgTEpVQk8KK0tPS09SVcWgIE9TVE9KQQorS09LT1QgUkFERQorS09LT1QgU01JTEpBCitLT0tPVCBTUkVUQQorS09LT1QgU1ZFVExBTkEKK0tPS09UIFZJQ08KK0tPS09UT1ZJxIYgxb1JVktPCitLT0tPVE9WScSGIEJPxb1JREFSCitLT0tPVE9WScSGIEdPSktPCitLT0tPVE9WScSGIElMSUpBCitLT0tPVE9WScSGIElWSUNBCitLT0tPVE9WScSGIEpFTElTQVZFVEEKK0tPS09UT1ZJxIYgS0FUSUNBCitLT0tPVE9WScSGIFBFVEFSCitLT0tPVE9WScSGIFNORcW9QU5BCitLT0tPVE9WScSGIFZFU0VMSU4KK0tPS09WScSGIERSQUdBTgorS09LT1ZJxIYgR09SQU4KK0tPTMSQRVJBSiDEkE9OCitLT0xBxIxBUknEhiBWRUxJQk9SCitLT0xBxaBJTkFDIExKVUJPTUlSCitLT0xBSyBEVcWgQU4KK0tPTEFLIEpFTEVOQQorS09MQUsgTUlMQU4KK0tPTEFLT1ZJxIYgQUxNQVoKK0tPTEFLT1ZJxIYgSlVSRQorS09MQUtPVknEhiBNSUxFCitLT0xBS09WScSGIFpEUkFWS08KK0tPTEFLVcWgScSGIElWSUNBCitLT0xBS1ZJxIYgTEpJTEpBTkEKK0tPTEFOTyBBTlRPTgorS09MQU5PIERSQUdPU0xBVgorS09MQU5PIElWQU4KK0tPTEFOTyBKVUxLQQorS09MQVIgQU5BCitLT0xBUiBBTkEKK0tPTEFSIEFORFJJSkEKK0tPTEFSIEFOVEFMCitLT0xBUiBEQVJLTworS09MQVIgSUJPTEpLQQorS09MQVIgSVZBTgorS09MQVIgSk9TSVAKK0tPTEFSIEpPU0lQCitLT0xBUiBKVUxJSkFOQQorS09MQVIgTEFKT8WgCitLT0xBUiBMQVNMTworS09MQVIgTE9aSU5LQQorS09MQVIgTUFUSUpBCitLT0xBUiBNSUxJQ0EKK0tPTEFSIE1JUktPCitLT0xBUiBQQVZMRQorS09MQVIgUEVUQVIKK0tPTEFSxaAgxaBURUZBTgorS09MQVJFVknEhiBMSlVCSUNBCitLT0xBUknEhiBBTEVLU0FORFJBCitLT0xBUknEhiBCUkFOS08KK0tPTEFSScSGIEJSSUdJVEEKK0tPTEFSScSGIERPQlJJTEEKK0tPTEFSScSGIERSQUdJQ0EKK0tPTEFSScSGIERSQUdPTEpVQgorS09MQVJJxIYgRFXFoEFOCitLT0xBUknEhiBGSUxJUAorS09MQVJJxIYgSURBCitLT0xBUknEhiBLT1NUQQorS09MQVJJxIYgTUFSSUpBCitLT0xBUknEhiBNQVJJSkEKK0tPTEFSScSGIE1JTEFOCitLT0xBUknEhiBNSUxBTgorS09MQVJJxIYgTUlMSVZPSgorS09MQVJJxIYgTUxBREVOCitLT0xBUknEhiBOQURBCitLT0xBUknEhiBORU1BTkpBCitLT0xBUknEhiBOSUtPTEEKK0tPTEFSScSGIFJBRE9WQU4KK0tPTEFSScSGIFNMQVZLTworS09MQVJJxIYgU0xPQk9EQU4KK0tPTEFSScSGIFNMT0JPREFOCitLT0xBUknEhiBTTkXFvUFOQQorS09MQVJJxIYgU1RFVkFOCitLT0xBUknEhiBUT01JU0xBVgorS09MQVJJxIYgVk9KQQorS09MQVJJxIYgWk9SQU4KK0tPTEFSScSGIFpWT05LTworS09MQVJPViDFvUlWQQorS09MQVJPViDEkE9SxJBFCitLT0xBUk9WIEFMRUtTQU5EQVIKK0tPTEFST1YgRElNSVRSSUpFCitLT0xBUk9WIERSQUdPU0xBVgorS09MQVJPViBEUkFHT1NMQVYKK0tPTEFST1YgR09KS08KK0tPTEFST1YgSk9WQU4KK0tPTEFST1YgSk9WQU4KK0tPTEFST1YgSlVMS0EKK0tPTEFST1YgS0FURQorS09MQVJPViBMSklMSkFOQQorS09MQVJPViBNQVJJQ0EKK0tPTEFST1YgTUlMQU5LQQorS09MQVJPViBNSUxJVk9KCitLT0xBUk9WIE1JTE/FoAorS09MQVJPViBNT01JUgorS09MQVJPViBOQURBIERSIExFS0FSCitLT0xBUk9WIE5FQk9KxaBBCitLT0xBUk9WIFBBVkxFCitLT0xBUk9WIFBFVEFSCitLT0xBUk9WIFJBRE9KS08KK0tPTEFST1YtUkFET1ZBTk9WScSGIE1BUklOQQorS09MQVJPViBTQVZBCitLT0xBUk9WIFRPRE9SCitLT0xBUk9WIFRPTUlTTEFWCitLT0xBUk9WIFZPSklTTEFWCitLT0xBUk9WScSGIMW9SVZLTworS09MQVJPVknEhiBKRUxFTkEKK0tPTEFST1ZJxIYgS0FUSUNBCitLT0xBUk9WScSGIEtPVklOS0EKK0tPTEFST1ZJxIYgTFVLQSBEUgorS09MQVJPVknEhiBNSUhBSkxPCitLT0xBUk9WScSGIE1JTElDQQorS09MQVJPVknEhiBORU5BRAorS09MQVJTS0kgxJBPUsSQRQorS09MQVJTS0kgQUxFS1NBTkRBUgorS09MQVJTS0kgQU5JQ0EKK0tPTEFSU0tJIEFSUEFECitLT0xBUlNLSSBCT1NJTEpLQQorS09MQVJTS0kgQlJBTklTTEFWCitLT0xBUlNLSSBEQU5JQ0EKK0tPTEFSU0tJIERVxaBBTktBIERJUEwgT0VDCitLT0xBUlNLSSBKT1ZBTgorS09MQVJTS0kgSk9WQU4KK0tPTEFSU0tJIEtBVElDQQorS09MQVJTS0kgTEFTTE8KK0tPTEFSU0tJIExBWkFSCitLT0xBUlNLSSBNSUxBRElOCitLT0xBUlNLSSBNSUxBTgorS09MQVJTS0kgTUlMRU5LTyBWRVRFUklOQVIKK0tPTEFSU0tJIE1JTEVOS08KK0tPTEFSU0tJIE1JTElDQQorS09MQVJTS0kgTUlUQVIKK0tPTEFSU0tJIE1MQURFTgorS09MQVJTS0kgTUxBREVOCitLT0xBUlNLSSBOQURBCitLT0xBUlNLSSBOSUtPTEEKK0tPTEFSU0tJIFJBRE1JTEEKK0tPTEFSU0tJIFJBRE9TTEFWCitLT0xBUlNLSSBSQURPVkFOCitLT0xBUlNLSSBSQURPVkFOCitLT0xBUlNLSSBTTEFWSUNBCitLT0xBUlNLSSBTVEVWQU4KK0tPTEFSU0tJIFNURVZBTgorS09MQVJTS0kgVE9ET1IKK0tPTEFSU0tJIFZFUkEKK0tPTEFSU0tJIFpEUkFWS08KK0tPTEJBUyBEQU5JSkVMCitLT0xCQVMgSkFOS08KK0tPTEJBUyBKT0FLSU0KK0tPTEJBUyBNRUxBTklKQQorS09MQkFTIE1JTEVWQQorS09MQkFTIFZMQURBCitLT0xExb1JxIYgQlJBTktBCitLT0xExb1JxIYgQlJBTktPCitLT0xExb1JTiBNSVJLTworS09MRMW9SU4gVkVTRUxJTgorS09MREFOIE1JTEVOS08KK0tPTEXFoEtBIEVEVUFSRAorS09MRURBUiBBTkRSSUpBCitLT0xFRElOIMSQT1LEkEUKK0tPTEVESU4gRk9USUpFCitLT0xFRElOIE1JTE/FoAorS09MRURJTiBNSVJKQU5BCitLT0xFRElOIFBFVEFSCitLT0xFRElOIFJBRE9TTEFWCitLT0xFRElOIFJBRE9WQU4KK0tPTEVESU4gUkFET1ZBTgorS09MRURJTiBTVEVWQU4KK0tPTEVESU4gVkVMSU1JUgorS09MRURJTiBWRVJBCitLT0xFUiBBTlRBTAorS09MRVIgTEFKT8WgCitLT0xFU0FSIMSQVVJBCitLT0xFU0FSIEFOSUNBCitLT0xFU0FSIEZFRE9SCitLT0xFU0FSIEZFUkVOQworS09MRVNBUiBHQVZSQQorS09MRVNBUiBKQU5PxaAKK0tPTEVTQVIgSk9WQU4KK0tPTEVTQVIgSk9WQU4KK0tPTEVTQVIgSlVMSUpBTgorS09MRVNBUiBKVUxJSkFOCitLT0xFU0FSIEtBVElDQQorS09MRVNBUiBLU0VOSUpBCitLT0xFU0FSIE1JSEFKTE8KK0tPTEVTQVIgUEVUQVIgRFIKK0tPTEVTQVIgUEVUQVIKK0tPTEVTQVIgU0lNRU9OCitLT0xFU0FSIFZFUkEKK0tPTEVTQVIgVkxBRElNSVIKK0tPTEVTQVIgWk9SSUNBCitLT0xFU0FSScSGIFZJTktPCitLT0xFViBUT0RPUktBCitLT0xJxIYgQUnFoEEKK0tPTElOIEpPxb1FRiBOT1ZJTkFSCitLT0xKQUTFvUlOU0tJIEpPVkFOCitLT0xKQUTFvUlOU0tJIFNURUZBTklKQQorS09MSkFKQSBCTEFHT0pFCitLT0xKQUpBIERSQUdBTgorS09MSkFKQSBHT1JBTgorS09MSkFOSU4gUEVUQVIKK0tPTE1BTiBKT8W9RUYKK0tPTE/EjEFJIEpPU0lQCitLT0xPxaBOSkFJIE1JUk9OCitLT0xPxaBOSkFKSSBKQU5LTworS09MT8WgTkpBSkkgVkxBRElNSVIKK0tPTE9QScSGIFBFVEFSCitLT0xPUEnEhiBSVcW9SUNBCitLT0xPVknEhiBTVEVWQU4KK0tPTFRJTiBCUkFOS08KK0tPTFVORMW9ScSGIMW9SVZLQQorS09MVU5Exb1JxIYgxJBVUkEKK0tPTFVORMW9ScSGIEFOS0EKK0tPTFVORMW9ScSGIFBFUklDQQorS09MVU5Exb1JxIYgU0xBVktPCitLT0xVTkTFvUnEhiBTTEFWS08KK0tPTFVORMW9SUpBIEFOxJBFTEtBCitLT0xVTkTFvUlKQSBCT1JJU0xBVgorS09MVU5Exb1JSkEgREFWT1JLQQorS09MVU5Exb1JSkEgRFJBR0FOCitLT0xVTkTFvUlKQSBMQVpBUgorS09MVU5Exb1JSkEgTEpVQk9NSVIKK0tPTFVORMW9SUpBIE1JUktPCitLT0xVTkTFvUlKQSBOQURBCitLT0xVTkTFvUlKQSBOSUtPTEEKK0tPTFVORMW9SUpBIFpPUktBCitLT0xVVEFDIE1BVElKQQorS09NxaBJxIYgSk9WQU4KK0tPTcWgTyBOSUtPTEEKK0tPTUFEIEFOQQorS09NQUQgR09KS08KK0tPTUFEIFJBVE9NSVIKK0tPTUFEIFRPTUlTTEFWCitLT01BREFOT1ZJxIYgTU9NxIxJTE8KK0tPTUFEQU5PVknEhiBNT01JUgorS09NQURBUknEhiBNSUxPxaAKK0tPTUFESU5BIE1BTkUKK0tPTUFESU5BIFZFTElTTEFWCitLT01BRElOQSBWVUpBRElOCitLT01BRElOScSGIE1JTE9SQUQKK0tPTUFESU5PVknEhiBEVcWgQU4KK0tPTUFESU5PVknEhiBNSVJBCitLT01BRElOT1ZJxIYgUkFET1NMQVYKK0tPTUFOIEJPU0lMSktBCitLT01BTk9WIE1BUklKQQorS09NQVIgR09KS08gRElQTCBJTkcKK0tPTUFSIFJBRElWT0pFCitLT01BUiBTTEFWS0EKK0tPTUFSIFNMT0JPREFOCitLT01BUiBaT1JLQQorS09NQVLEjEVWScSGIEFMRUtTQU5EQVIKK0tPTUFSxIxFVknEhiBJxaBUVkFOCitLT01BUsSMRVZJxIYgTUlMRU5BCitLT01BUsSMRVZJxIYgTUlMSU5LTyBEUgorS09NQVLEjEVWScSGIE1JUk9TTEFWCitLT01BUsSMRVZJxIYgVkxBRElNSVIKK0tPTUFSSUNBIE1BUktPCitLT01BUklDQSBOT1ZLTworS09NQVJJQ0EgUkFETUlMQQorS09NQVJPTUkgxJBPUsSQRQorS09NQVJPTUkgQU7EkEVMS0EKK0tPTUFST01JIEJPUkJBTEEKK0tPTUFST01JIEJPUkpBTktBCitLT01BUk9NSSBCT1JKQU5LQQorS09NQVJPTUkgSVJNQQorS09NQVJPTUkgS0xBUkEKK0tPTUFST01JIE1BR0RPTE5BCitLT01BUk9NSSBNQUdET0xOQQorS09NQVJPTUkgTUFSSUpBCitLT01BUk9NSSBQRVRBUgorS09NQVJPTUkgWk9MVEFOCitLT01BUk9WIEFMRUtTQU5EQVIgRElQTCBJTkcKK0tPTUFST1YgQUxFS1NBTkRBUgorS09NQVJPViBCUkFOS0EKK0tPTUFST1YgRFJBR0lDQQorS09NQVJPViBEUkFHT01JUgorS09NQVRJTkEgRFJBR0FOCitLT01BVElOT1ZJxIYgTUlIQUpMTworS09NQVRPVknEhiBNSUxBTgorS09NQVRPVknEhiBWRUxJTUlSCitLT01BWkVDIERSQUdPTUlSCitLT01BWkVDIFBFVEFSCitLT01CRVJJIEFWRFXFoAorS09NQklMSiBWRVJBCitLT01FTkRBIEFORFJJSkEKK0tPTUlOS08gTEpVQklDQQorS09NTEVOScSGIMSQT1LEkEUKK0tPTUxFTk9WIMW9SVZBTgorS09NTEVOT1YgxJBPUsSQRQorS09NTEVOT1YgSk9WQU4KK0tPTUxFTk9WScSGIE1BUklKQQorS09NTEVOT1ZJxIYgTUlMQU4KK0tPTUxFTk9WScSGIE1JTEUKK0tPTUxFTk9WScSGIFZFTEpLTworS09NTEVOU0tJIMW9SVZBTgorS09NTEVOU0tJLURFTEnEhiBWVUtPU0FWQSBEUgorS09NTEVOU0tJIFpPUkFOCitLT01MSkVOT1ZJxIYgQUxFS1NBTkRSQQorS09NTEpFTk9WScSGIEJPxaBLTworS09NTEpFTk9WScSGIE1JTEFOCitLT01MSkVOT1ZJxIYgTU9NSVIKK0tPTUxKRU5PVknEhiBTVEVWQU4KK0tPTUxKRU5PVknEhiBWTEFETworS09NTFXFoEFOIEJPxb1BCitLT01MVcWgS0kgSVZBTkEgTVIKK0tPTU5FTknEhiBJVkFOS0EKK0tPTU5FTk9WIMWgQVJMT1RBCitLT01ORU5PViBNSUxPUkFECitLT01ORU5PViBOSUtPTEEKK0tPTU5FTk9WIFNBTkRSQQorS09NTkVOT1YgU1RBTklTTEFWCitLT01ORU5PViBWRVNFTElOQQorS09NTkVOT1YgVkxBRElNSVIgRFIKK0tPTU5FTk9WScSGIMW9SVZBTgorS09NTkVOT1ZJxIYgQlJBTktPCitLT01ORU5PVknEhiBERUpBTgorS09NTkVOT1ZJxIYgSkVMRU5BCitLT01ORU5PVknEhiBMSlVCT0pFCitLT01ORU5PVknEhiBNSUxBTgorS09NTkVOT1ZJxIYgUkFET1NMQVYKK0tPTU5FTk9WScSGIFNUQU5LTworS09NTkVOT1ZJxIYgU1RPSkFOCitLT01ORU5PVknEhiBWRVJJQ0EKK0tPTU9TQVIgQlJBTktPCitLT01PU0FSIFJBSktPCitLT01PWkVDIMSQT1LEkEUKK0tPTU9aRUMgTEFaQVIKK0tPTiBTTE9CT0RBTktBCitLT04gU1RFVkFOCitLT04gVE9NQcW9CitLT07EjEFSIEFORFJJSkEKK0tPTsSMQVIgQk9TSUxKS0EKK0tPTsSMQVIgSk9WTworS09OxIxBUiBMQURJU0xBVgorS09OxIxBUiBNSVJBCitLT07EjEFSIE1JVEFSCitLT07EjEFSIE5JS09MQQorS09OxIxBUiBOSUtPTEEKK0tPTsSMQVIgUkFOS08KK0tPTsSMQVIgU0xBVktPCitLT07EjEFSIFpPUkEKK0tPTsSMQVIgWk9SQQorS09OxIxBUkVWScSGIERBTklDQQorS09OxIxBUkVWScSGIElMSUpBCitLT07EjEVLIFJPWkFMSUpBCitLT05BS09WIE5FREVMSktPCitLT05DIMWgQU5ET1IKK0tPTkMgScWgVFZBTgorS09OQyBJTE9OQQorS09OQyBMSklMSkFOQQorS09OQyBaT1JBTktBCitLT05EQU4gTUFSR0FSRVRBCitLT05EScSGIEFOQQorS09OREnEhiBBTktBCitLT05EScSGIEJSQU5LTworS09OREnEhiBEUkFHQU4KK0tPTkRJxIYgRFJBR0lDQQorS09OREnEhiBEUkFHT0xKVUIKK0tPTkRJxIYgRFXFoEFOS0EKK0tPTkRJxIYgSk9WQU4KK0tPTkRJxIYgTEpVQklDQQorS09OREnEhiBNSUxFTktPCitLT05EScSGIE1JUkEKK0tPTkRJxIYgTkVCT0rFoEEKK0tPTkRJxIYgTkVNQU5KQQorS09OREnEhiBOSUtPTEEKK0tPTkRJxIYgTklLT0xBCitLT05EScSGIFJBRE1JTEEKK0tPTkRJxIYgUkFET0pLQQorS09OREnEhiBSQUpLTworS09OREnEhiBTQU5EUkEKK0tPTkRJxIYgVFJJVk8KK0tPTkRJxIYgWkRSQVZLTworS09OREnEhiBaT1JLQQorS09ORE9KQU5JIMSQT1LEkEUKK0tPTkRSQUsgU1RPSkFOCitLT05EUkFUSkVWIMWgVEVGQU5JSkEKK0tPTkXEjE5JIE1BUklKQQorS09ORUNLSSBaTEFUS08KK0tPTkVDS0kgWkxBVEtPCitLT05FTiBST0JFUlQKK0tPTkVOIFJPQkVSVAorS09ORVNLQSBMSklMSkFOQQorS09OR08gVkVSQQorS09OSkFUScSGIMWgSU1PCitLT05KRVZJxIYgxb1JVkEgRElQTCBQUkFWTklLCitLT05KRVZJxIYgQU5BCitLT05KRVZJxIYgREFOSUxPCitLT05KRVZJxIYgRE9CUklWT0oKK0tPTkpFVknEhiBEUkFHT01JUgorS09OSkVWScSGIEdST1pEQU5BCitLT05KRVZJxIYgSVZBTktBCitLT05KRVZJxIYgTUlMRVZBCitLT05KRVZJxIYgTUlMSVZPSgorS09OSkVWScSGIE1MQcSQRU4KK0tPTkpFVknEhiBNTEFERU4KK0tPTkpFVknEhiBORU5BRAorS09OSkVWScSGIFBSRURSQUcKK0tPTkpFVknEhiBQUkVEUkFHCitLT05KRVZJxIYgUFJFRFJBRworS09OSkVWScSGIFNUQU5JU0xBVgorS09OSkVWScSGIFNUQU5JU0xBVgorS09OSknEhiBTVE9KQU5LQQorS09OSklLIE5BREEKK0tPTkpJSyBWSURPSkUKK0tPTkpPVknEhiBCUkFOSVNMQVYKK0tPTkpPVknEhiBKT1ZBTgorS09OSk9WScSGIE1BS1NJTQorS09OSk9WScSGIE1JTEFOCitLT05KT1ZJxIYgTUlSSkFOQQorS09OSk9WScSGIE5JS09MQQorS09OSk9WScSGIFJBRE9TTEFWQQorS09OSk9WScSGIFNNSUxKQQorS09OSk9WScSGIFNPRklKQQorS09OSk9WScSGIFRJTktBCitLT05KT1ZJxIYgVkVSQQorS09OS09MIE1JSEFKTE8KK0tPTktPTEogTUFSSUpBCitLT05PUEVLIFNUQU5JTUlSCitLT05SQUQgRlJBTkpBCitLT05SQUQgTUlSxIxBCitLT05SQUQgUEFWTEUKK0tPTlNUQU5USU4gQlVIQQorS09OU1RBTlRJTklESVMgRElNSVRSSUpFCitLT05TVEFOVElOSURJUyBHRU9SR0lPUworS09OU1RBTlRJTklESVMgVEVPRE9SCitLT05TVEFOVElOSURVIFNPRklKQQorS09OU1RBTlRJTk9WScSGIEFOxJBFTElKQQorS09OU1RBTlRJTk9WScSGIEJMQUdPSkUKK0tPTlNUQU5USU5PVknEhiBIRVJNSU5BCitLT05TVEFOVElOT1ZJxIYgSkVMSUNBCitLT05TVEFOVElOT1ZJxIYgSk9SREFOCitLT05TVEFOVElOT1ZJxIYgSk9WQU4KK0tPTlNUQU5USU5PVknEhiBMSklMSkFOQQorS09OU1RBTlRJTk9WScSGIExVS0EKK0tPTlNUQU5USU5PVknEhiBNSVJKQU5BCitLT05TVEFOVElOT1ZJxIYgTklLT0xBCitLT05TVEFOVElOT1ZJxIYgUEVUQVIKK0tPTlNUQU5USU5PVknEhiBWRVJBCitLT05TVEFOVElOT1ZJxIYgWlZPTklNSVIKK0tPTlRJxIYgRE9CUklWT0oKK0tPTlRJxIYgSk9WQU5LQQorS09OVEnEhiBNSUxBTgorS09OVEnEhiBTTEFWSUNBCitLT05UUknEhiBKT1ZBTgorS09QxIxBTlNLSSDFvUVMSktPCitLT1DEjEFOU0tJIElSSU5BCitLT1DEjEFOU0tJIE5JS09MQQorS09QxIxBTlNLSSBQRVRBUgorS09QxIxBTlNLSSBSQURNSUxBCitLT1DEjEFOU0tJIFNURVZBTgorS09QxIxBTlNLSSBWTEFEQQorS09QxIxPSyBBTkEKK0tPUMSMT0sgS0FUSUNBCitLT1DEjE9LIE1JxaBBCitLT1DEjE9LIFNBTkRSQQorS09QQU5KQSBEQU5JTE8KK0tPUEFOSkEgRFJBR09NSVIKK0tPUEFOSkEgRFXFoEFOCitLT1BBTkpBIERVxaBBTgorS09QQU5KQSBHT0pLTworS09QQU5KQSBHT0pLTworS09QQU5KQSBJTElKQQorS09QQU5KQSBMSlVQS08KK0tPUEFOSkEgTUnEhk8KK0tPUEFOSkEgTUlPRFJBRworS09QQU5KQSBNSVRBUgorS09QQU5KQSBSQU5JU0xBVgorS09QQU5KQSBST1NBCitLT1BBTkpBIFZJRAorS09QQVMgSkFOT8WgCitLT1BFUkVDIEFMRUtTQU5EQVIKK0tPUEVSRUMgQU5EUklKQQorS09QRVJFQyBKQU5PxaAKK0tPUEVSRUMgSk9WQU4KK0tPUEVSRUMgU1RFVkFOCitLT1BFUkVDIFNURVZBTgorS09QRVNURU5TS0kgS0FUSUNBCitLT1BFU1RJTlNLSUogUkVHSU5BCitLT1BJxIYgSUxPTkEKK0tPUElDTCBSVURPTEYKK0tPUElMT1ZJxIYgSk9TSVAKK0tPUElMT1ZJxIYgTUFSR0EKK0tPUElMT1ZJxIYtTUlKQVRPViBEUkFHSUNBCitLT1BJTE9WScSGIFBBVkxFCitLT1BJVE9WScSGIMWgUElSTworS09QSVRPVknEhiBQRVRBUgorS09QTEFOSkkgTUFSSUpBCitLT1BMQU5KSSBNSVJPU0xBVkEKK0tPUExJxIYgxJBPUsSQRQorS09QTEnEhiBEQU5JQ0EKK0tPUExJxIYgRFXFoEFOCitLT1BMScSGIE1JTEUKK0tPUFJFTk9WScSGIFJBRE9KS0EKK0tPUFJJVsWgRUsgWlZPTklNSVIKK0tPUFJJVklDQSBBTkdFTElOQQorS09QUklWSUNBIEJPxb1JREFSCitLT1BSSVZJQ0EgQk/FvUlEQVIKK0tPUFJJVklDQSBCT1JJU0xBVgorS09QUklWSUNBIEdPUkRBTkEKK0tPUFJJVklDQSBMSklMSkFOQQorS09QUklWSUNBIE1JTEVOS08KK0tPUFJJVklDQSBNSUxVVElOCitLT1BSSVZJQ0EgTUlPRFJBRworS09QUklWSUNBIE5PVkFLCitLT1BSSVZJQ0EgT0JSRU4KK0tPUFJJVklDQSBQRVRBUgorS09QUklWSUNBIFNWRVRPWkFSCitLT1BSSVZJQ0EgWk9SQU4KK0tPUFVOT1ZJxIYgTEpVQklDQQorS09SxIxPSyBKQU4KK0tPUsSMT0sgTUFSSUpBCitLT1LEjE9LIFZMQURJTUlSCitLT1JBxIYgxb1FTEpLTworS09SQcSGIEFOxJBFTElKQQorS09SQcSGIERVxaBBTgorS09SQcSGIEdPSktPCitLT1JBxIYgSUdPUgorS09SQcSGIEpVTElKQU5BCitLT1JBxIYgS0FUSUNBCitLT1JBxIYgTEpVQklTQVYKK0tPUkHEhiBNQU5FCitLT1JBxIYgTUlIQUpMTworS09SQcSGIE1JTEFOCitLT1JBxIYgTUlMRQorS09SQcSGIE1JTEUKK0tPUkHEhiBNSUxFCitLT1JBxIYgTUlMRQorS09SQcSGIE1JTE9WQU4gRFIgUFJPRgorS09SQcSGIE1JTE9WQU4KK0tPUkHEhiBNSUxPVkFOCitLT1JBxIYgTUlPRFJBRworS09SQcSGIFBFVEFSCitLT1JBxIYgUEVUUkEKK0tPUkHEhiBSQURFCitLT1JBxIYgUkFET0pLQQorS09SQcSGIFJBRE9KS0EKK0tPUkHEhiBSQURPU0FWCitLT1JBxIYgU0xPQk9EQU4KK0tPUkHEhiBTTkXFvUFOQQorS09SQcSGIFRBVEpBTkEKK0tPUkHEhiBWTEFETworS09SQUpJQ0EgxJBVUkEKK0tPUkFKTElKQSDFvUFSS08KK0tPUkFKTElKQSDFvUFSS08KK0tPUkFKTElKQSDFvUFSS08KK0tPUkFKTElKQSBESU1JVFJJSkUKK0tPUkFKTElKQSBNSUxBTgorS09SQUtVIExVxIxJSkFOCitLT1JBS1UgTFVDSUpBTgorS09SQkFURklOU0tJIEVMVklSQQorS09SQkFURklOU0tJIFZJS1RPUiBEUgorS09SQkFUVklOU0tJIERSQUdBTgorS09SQkFUVklOU0tJLUxBTE/FoEVWScSGIFpMQVRBCitLT1JCScSGIE1MQURFTgorS09SREEgTUlMT8WgCitLT1JEQSBOQU5ET1IKK0tPUkRJxIYgxJBVUkEKK0tPUkRJxIYgQk9KQU4KK0tPUkRJxIYgRFXFoEFOS0EKK0tPUkRJxIYgR09KS08KK0tPUkRJxIYgTUlMQU4KK0tPUkVOScSGIEdBQlJJRUwKK0tPUkVOScSGIFRFT0RPUgorS09SRU5KSSDEkE9SxJBFCitLT1JFTkpJIEFMRUtTQU5EQVIKK0tPUkVOSkkgTEFTTE8KK0tPUkVOVCBMVURWSUcKK0tPUkhBTUVSIEZFUkVOQworS09SSEVDIFBBVkxFCitLT1JJxaAgSlVMSUpBTkEKK0tPUknEhkFOQUMgSVZBTgorS09SScSGQU5BQyBMSlVCSU5LQQorS09SScW9IEFSUEFECitLT1JJQ0EgxJBPUsSQRQorS09SSUNBIMSQVVJPCitLT1JJQ0EgRFXFoEFOCitLT1JJQ0EgSkFOS08KK0tPUklDQSBNSUxPUkFECitLT1JJQ0EgTkVERUxKS08KK0tPUklDQSBOSUtPTEEKK0tPUklDQSBQRVRBUgorS09SSUNBIFNORcW9QU5BCitLT1JJQ0EgU09GSUpBCitLT1JJQ0EgU1RFVkFOCitLT1JJU1RPVknEhiBNSUtTQVJECitLT1JMQVQgUEVSSUNBCitLT1JMQVQgUEVUQVIKK0tPUk1BTkpPxaAgxaBBTkRPUgorS09STUFOSk/FoCBBTkRSSUpBCitLT1JNQU5KT8WgIEJPUktBCitLT1JNQU5KT8WgIEZFUkVOQworS09STUFOSk/FoCBLQVJPTEoKK0tPUk1BTkpPxaAgTUlIQUxKCitLT1JNT8WgIEpBTk/FoAorS09STU/FoCBNQVJHSVRBCitLT1JNT8WgIE1BUkdJVEEKK0tPUk1PxaAgTUFSSUpBCitLT1JNT8WgIFRFUkVaQQorS09ST8WgIFJBU1RJU0xBVgorS09ST8WgIFZMQURBCitLT1JPxaBBTiDFoEFORE9SCitLT1JPxaBFQyBMRU8KK0tPUk9CS08gVEFSQVMKK0tPUk9ESSBGUkFOSkEKK0tPUk9LTkFJIEZFUkVOQworS09ST0tOQUkgSkFOT8WgCitLT1JPS05BSSBaT0xUQU4KK0tPUk9MSUpBIERVxaBBTiBEUiBMRUtBUgorS09ST0xJSkEgRFXFoEFOCitLT1JPTElKQSBTVEVWQU4gRFIKK0tPUk9MSUpBIFZFUkEKK0tPUk9NIEVSxb1FQkVUCitLT1JPTSBUSUJPUgorS09ST01BTiBNSUxPUkFECitLT1JPViDEkE9SxJBFCitLT1JPVkxKRVYgSVZBTgorS09ST1ZMSkVWIEpPVkFOS0EKK0tPUk9WTEpFViBNQVJJSkEKK0tPUk9WTEpFViBNSUxFTktPCitLT1JPVkxKRVYgTUlMT8WgCitLT1JPVkxKRVYgUkFETUlMQQorS09ST1ZMSkVWIFZVS0lDQQorS09SUEEgQkVMQQorS09SUEHFoCBBTUFMSUpBCitLT1JQQcWgIERBTklDQQorS09SUEHFoCBESU1JVFJJSkUKK0tPUlBBxaAgSkFOS08KK0tPUlBBxaAgTUlST1NMQVYKK0tPUlBBxaAgTUlST1NMQVYKK0tPUlBBxaAgUEVSQQorS09SUEFLIERSQUdJTkpBCitLT1JQQUsgTkFEQQorS09SUE9OQUkgScWgVFZBTgorS09SUE9OQUkgTUFSSUpBCitLT1JVR0EgQk9SQQorS09SVUdBIEpVTEtBCitLT1JVR0EgUkFET01JUgorS09SVU5JxIYgTElaQQorS09TIElEQQorS09TIE1BUklKQQorS09TIFNMQVZLTworS09TIFNMQVZLTworS09TIFNUQU5LTworS09TQcSGIERBUklOS0EKK0tPU0FOScSGIEJSQU5JU0xBVgorS09TQU5JxIYgSVZBTktBCitLT1NBTknEhiBTQVZBCitLT1NBTk9WIEFMRUtTQU5EQVIKK0tPU0FOT1YgS0FUSUNBCitLT1NBTk9WIFZMQURJTUlSCitLT1NBTk9WScSGIEFOxJBFTEtBCitLT1NBTk9WScSGIEJPR0RBTiBNUgorS09TQU5PVknEhiBCUkFOS08KK0tPU0FOT1ZJxIYgQlJBTktPCitLT1NBTk9WScSGIERBTkUKK0tPU0FOT1ZJxIYgRFJBR0FOCitLT1NBTk9WScSGIERVxaBBTktBCitLT1NBTk9WScSGIERVxaBBTgorS09TQU5PVknEhiBKRUxJQ0EKK0tPU0FOT1ZJxIYgSk9WQU4KK0tPU0FOT1ZJxIYgS09TQU5BCitLT1NBTk9WScSGIExBWk8KK0tPU0FOT1ZJxIYgTEpVQklDQQorS09TQU5PVknEhiBMSlVCT01JUiBEUgorS09TQU5PVknEhi1NQU5EScSGIE5FTkEKK0tPU0FOT1ZJxIYgTUFORQorS09TQU5PVknEhiBNQVJLTworS09TQU5PVknEhiBNScSGTworS09TQU5PVknEhiBNSUxBTgorS09TQU5PVknEhiBNSUxFCitLT1NBTk9WScSGIE1JTE9SQUQKK0tPU0FOT1ZJxIYgTUlSS08KK0tPU0FOT1ZJxIYgTUlUQVIKK0tPU0FOT1ZJxIYgTUxBREVOCitLT1NBTk9WScSGIE5BREEKK0tPU0FOT1ZJxIYgT0xHQQorS09TQU5PVknEhiBQRVRBUgorS09TQU5PVknEhiBSQURPVkFOCitLT1NBTk9WScSGIFNMQVZLTworS09TQU5PVknEhiBTVE9KQU4KK0tPU0FOT1ZJxIYgVkVMSU1JUgorS09TQU5PVknEhiBaT1JJQ0EKK0tPU0FSRU5LTyBQRVRBUgorS09TRUROQVIgU1RKRVBBTgorS09TScSGIMW9QVJLTworS09TScSGIMW9QVJLTworS09TScSGIMW9SVZPSklOCitLT1NJxIYgQklMSkFOQQorS09TScSGIEJPSkFOCitLT1NJxIYgQk9SS08KK0tPU0nEhiBCUkFOSVNMQVYKK0tPU0nEhiBHT1JBTgorS09TScSGIEdPUkRBTkEKK0tPU0nEhiBJVkFOCitLT1NJxIYgSkVMSUNBCitLT1NJxIYgSk9WSUNBCitLT1NJxIYgTFVLQQorS09TScSGIE1BUklKQQorS09TScSGIE1JTE9WQU4KK0tPU0nEhiBNSVJLTyBESVBMIElORworS09TScSGIE5FREVMSktPCitLT1NJxIYgUlXFvUEKK0tPU0nEhiBTVkVUT1pBUgorS09TScSGIFRPTUEKK0tPU0nEhiBaT1JJQ0EKK0tPU0lOQSBNSUxJQ0EKK0tPU0lST1ZJxIYgTUFSSUpBCitLT1NJUk9WScSGIE1JTEFOCitLT1NJUk9WScSGIFBBTlRFTElKQQorS09TSkVSIERVxaBBTgorS09TSkVSSU5BIE1JTEVOS08KK0tPU0tBIEFUTUFOQQorS09TS0EgSEFUSUTFvUUKK0tPU0tBIEpBU01JRElOCitLT1NLQSBMSkVSS0EKK0tPU0tBIE1JTEVOQQorS09TS0EgTkFERcW9REEKK0tPU0tBIFNBRkVUCitLT1NLQSBTQUxJCitLT1NNQUpBQyDEkE9SxJBFCitLT1NNQUpBQyBBTklDQQorS09TTyBCT1NJTEpLQQorS09TTyBGUkFOSk8KK0tPU08gTUlIQUxKCitLT1NPIE9MSVZFUkEKK0tPU08gUEFMCitLT1NPUlXFoCDEkFVSQQorS09TT1JVxaAgRVRFTEtBCitLT1NPUlXFoCBQRVRFUgorS09TT1ZBQyDEjEVEQQorS09TT1ZBQyDFvUlWS08KK0tPU09WQUMgQUxFS1NBTkRBUiBEUgorS09TT1ZBQyBCT0pBTgorS09TT1ZBQyBCT0pBTgorS09TT1ZBQyBEQVJLTworS09TT1ZBQyBEUkFHQU4KK0tPU09WQUMgRFXFoEFOCitLT1NPVkFDIEdFT1JHSUpFCitLT1NPVkFDIEdPSktPCitLT1NPVkFDIEpVTElKQU5BCitLT1NPVkFDIE1JTEFOCitLT1NPVkFDIE1JTEFOCitLT1NPVkFDIE1JUktPCitLT1NPVkFDIE5JS09MQQorS09TT1ZBQyBSQURJVk9KCitLT1NPVkFDIFpEUkFWS08KK0tPU09WScSGIEFORFJJSkEKK0tPU09WScSGIEFOS0lDQQorS09TT1ZJxIYgTUlMT1JBRAorS09TT1ZJxIYgT0xHQSBQUk9GRVNPUgorS09TT1ZJxIYgUkFESVNMQVYKK0tPU09WScSGIFJBVEtPCitLT1NPVknEhiBTVkVUSVNMQVYKK0tPU09WUkFTVEkgQUTFvUkKK0tPU1RBRElOT1NLSSBCTEFHT0pFCitLT1NUQURJTk9WIFJJU1RBCitLT1NUQURJTk9WScSGIEJSQU5JU0xBVgorS09TVEFESU5PVknEhiBEUkFHT0xKVUIKK0tPU1RBRElOT1ZJxIYgTEpJTEpBTkEKK0tPU1RBRElOT1ZJxIYgVElIT01JUgorS09TVEFESU5PVknEhiBWRVJBCitLT1NUQURJTk9WScSGIFZFUklDQQorS09TVEFESU5PVknEhiBWVUtBTgorS09TVEFESU5PVlNLSSBESU3EjEUKK0tPU1RFTE5JSyBORVNUT1IKK0tPU1RFTE5JSyBTSUxWRVNURVIKK0tPU1RFVlNLSSBJVkFOCitLT1NUScSGLcWgT0JPVCBNSUxLQQorS09TVEnEhiDFvUFSS08KK0tPU1RJxIYgxb1FTEpLTworS09TVEnEhiDFvUlWT0pJTgorS09TVEnEhiDEkE9SxJBFCitLT1NUScSGIMSQT1LEkEUKK0tPU1RJxIYgxJBPUsSQRQorS09TVEnEhiDEkE9SxJBFCitLT1NUScSGIMSQT1LEkEUKK0tPU1RJxIYgxJBVUsSQSUNBCitLT1NUScSGIEFDQQorS09TVEnEhiBBTEVLU0FOREFSCitLT1NUScSGIEFMRUtTQU5EQVIKK0tPU1RJxIYgQUxFS1NBTkRBUgorS09TVEnEhiBBTEVLU0FORFJBCitLT1NUScSGIEFOQQorS09TVEnEhiBBTkdFTElOQQorS09TVEnEhiBBTktJQ0EKK0tPU1RJxIYgQk/FvUlEQVIKK0tPU1RJxIYgQk/FvUlEQVIKK0tPU1RJxIYgQk9HT0xKVUIKK0tPU1RJxIYgQlJBTklNSVIKK0tPU1RJxIYgQlJBTklTTEFWCitLT1NUScSGIEJSQU5JU0xBVgorS09TVEnEhiBCUkFOS08KK0tPU1RJxIYgREFOSUxPCitLT1NUScSGIERFSkFOCitLT1NUScSGIERFU0FOS0EKK0tPU1RJxIYgRFJBR0FOCitLT1NUScSGIERSQUdBCitLT1NUScSGIERSQUdBCitLT1NUScSGIERSQUdJQ0EKK0tPU1RJxIYgRFJBR0lDQQorS09TVEnEhiBEUkFHSUNBCitLT1NUScSGIERSQUdPTEpVQgorS09TVEnEhiBEVcWgQU4KK0tPU1RJxIYgRFXFoEFOCitLT1NUScSGIERVxaBBTgorS09TVEnEhiBFTEVPTk9SQQorS09TVEnEhiBHRU9SR0lOQQorS09TVEnEhiBHTEnFoEEKK0tPU1RJxIYgR09MVUIKK0tPU1RJxIYgR09SREFOQQorS09TVEnEhiBHUkFESU1JUgorS09TVEnEhiBJVkFOCitLT1NUScSGIElWQU4KK0tPU1RJxIYgSkVMRU5BCitLT1NUScSGIEpFTElDQQorS09TVEnEhiBKRUxJQ0EKK0tPU1RJxIYgSk9SREFOS0EKK0tPU1RJxIYgSk9WQU4KK0tPU1RJxIYgSk9WQU4KK0tPU1RJxIYgSk9WQU4KK0tPU1RJxIYgSk9WQU4KK0tPU1RJxIYgSk9WQU4KK0tPU1RJxIYgS1JTTUFOCitLT1NUScSGIEtSU1RBCitLT1NUScSGIExKSUxKQU5BCitLT1NUScSGIExKSUxKQU5BCitLT1NUScSGIExKVUJJxaBBCitLT1NUScSGIExKVUJJQ0EKK0tPU1RJxIYgTEpVQklDQQorS09TVEnEhiBMSlVCSUNBCitLT1NUScSGIE1BS1NJTQorS09TVEnEhiBNQVJJSkEKK0tPU1RJxIYgTUFSS08KK0tPU1RJxIYgTUVUT0RJSkUKK0tPU1RJxIYgTUlIQUpMTworS09TVEnEhiBNSUxBTgorS09TVEnEhiBNSUxBTgorS09TVEnEhiBNSUxFTkEgRFIKK0tPU1RJxIYgTUlMRU5BCitLT1NUScSGIE1JTEVWQQorS09TVEnEhiBNSUxJQ0EKK0tPU1RJxIYgTUlMT1JBRAorS09TVEnEhiBNSUxPVkFOCitLT1NUScSGIE1JTFXFoEEKK0tPU1RJxIYgTUlSSkFOQQorS09TVEnEhiBNSVJLTworS09TVEnEhiBNT0pTRQorS09TVEnEhiBOQURBCitLT1NUScSGIE5BREEKK0tPU1RJxIYgTklLT0xBCitLT1NUScSGIE5JS09MQQorS09TVEnEhiBPTElWRVJBCitLT1NUScSGIFBBVkxFCitLT1NUScSGIFBFVEFSCitLT1NUScSGIFBFVEFSCitLT1NUScSGIFBFVEFSCitLT1NUScSGIFBFVEFSCitLT1NUScSGIFBFVEFSCitLT1NUScSGIFJBRE9KSUNBCitLT1NUScSGIFJBRE9KS08KK0tPU1RJxIYgUkFET01JUgorS09TVEnEhiBSQURPU0FWCitLT1NUScSGIFJBVEtPCitLT1NUScSGIFJVxb1JQ0EKK0tPU1RJxIYgU0FWQQorS09TVEnEhiBTQVZBCitLT1NUScSGIFNMQVZJQ0EKK0tPU1RJxIYgU0xBVktBCitLT1NUScSGIFNMT0JPREFOCitLT1NUScSGIFNMT0JPREFOCitLT1NUScSGIFNMT0JPREFOCitLT1NUScSGIFNORcW9QU5BCitLT1NUScSGIFNQQVNFTktPCitLT1NUScSGIFNSRVRFTgorS09TVEnEhiBTVEFOQQorS09TVEnEhiBTVEFOSU1JUgorS09TVEnEhiBTVEFOS08KK0tPU1RJxIYgU1RBWkEKK0tPU1RJxIYgU1RFVkFOCitLT1NUScSGIFNUT0pBRElOCitLT1NUScSGIFNUUkFISU5KQSBEUiBQUk9GCitLT1NUScSGIFNWRVRJU0xBViBEUgorS09TVEnEhiBTVkVUSVNMQVYKK0tPU1RJxIYgU1ZFVE9aQVIKK0tPU1RJxIYgVElCRVJJSkUKK0tPU1RJxIYgVE9NSVNMQVYKK0tPU1RJxIYgVE9NSVNMQVYKK0tPU1RJxIYgVE9NSVNMQVYKK0tPU1RJxIYgVkFTTworS09TVEnEhiBWRUxJTUlSCitLT1NUScSGIFZFUkEKK0tPU1RJxIYgVkxBRElTTEFWQQorS09TVEnEhiBWTEFESVNMQVYKK0tPU1RJxIYgVkxBU1RJTUlSCitLT1NUScSGIFZPSklTTEFWCitLT1NUScSGIFZVS0HFoElOCitLT1NUScSGIFpEUkFWS08KK0tPU1RJxIYgWk9SQU4KK0tPU1RJxIYgWk9SQU4KK0tPU1RJxIYgWk9SQU4KK0tPU1RJxIYgWk9SQU4KK0tPU1RJxIYgWk9SQU4KK0tPU1RJxIYgWk9SSUNBCitLT1NUT1ZJxIYgSkVMSUNBCitLT1NUT1ZJxIYgUkFUS08KK0tPU1RPVknEhiBTTkXFvUFOQQorS09TVE9WU0tJIEtBVElDQQorS09TVE9WU0tJIE1JUk9TTEFWCitLT1NUT1ZTS0kgVFJBSsSMRQorS09TVFJFxaAgTU9NxIxJTE8KK0tPU1RSRcWgRVZJxIYgR09SQU4KK0tPU1RSRcWgRVZJxIYgTUlMQURJTgorS09TVFJFxaBFVknEhiBORURFTEpLTworS09TVFJFxaBFVknEhiBTVEFOS0EKK0tPU1RSScSMRU5LTyBWQVNJTElKRQorS09TVFVESUpBIE1JUk9TTEFWCitLT1QgSUxPTkEKK0tPVCBKT1NJUAorS09UIExBRElTTEFWCitLT1QgTEFTTE8KK0tPVCBNQVJUQQorS09UIE1JUkEKK0tPVCBNSVJLTworS09UQSBFUsW9RUJFVAorS09UQSBMQUpPxaAKK0tPVEEgTUlIQUpMTworS09UQVLEjEVWScSGIEVMVklSQQorS09UQVLEjEVWScSGIE5JS09MQQorS09UQVJBQyBLQVRJQ0EKK0tPVEFSQUMgS09TVEEKK0tPVEFSQUMgU1ZFVElTTEFWCitLT1RBUkFOSU4gTEpJTEpBTkEKK0tPVEFSQU5JTiBQRVRBUgorS09UQVJMScSGIERBUktPCitLT1RBUkxJxIYgRFJBR0FOQQorS09UQVJMScSGIFNBVkEKK0tPVEhBSSBJxaBUVkFOCitLT1RIQUkgSk/FvUVGCitLT1RIQUkgU1RFVkFOCitLT1RIQUogU1RFVkFOCitLT1RJxIYgVk9KSVNMQVYKK0tPVExBSkEgTUlMQU5LTworS09UTEFKQSBNSUxLTworS09UTEFSScSGIE1BUktPIERSCitLT1RMQVJJxIYgU1RBTklNSVIKK0tPVFJCQSBGUkFOSkEKK0tPVFJFIE1BR0RPTE5BCitLT1RVxaAgRVLFvUVCRVQKK0tPVFXFoCBNSUxJQ0EKK0tPVFXFoCBNSVJPU0xBVgorS09UVcWgIFNURVZBTgorS09UVcSGIE1BUklKRVRBCitLT1RVUiBBTsSQRUxLQQorS09UVVIgRFJBR0FOCitLT1RVUiBKRUxBCitLT1RVUiBSQURFCitLT1RVUk9WIE5BREEKK0tPVFVST1ZJxIYgS0FUSUNBCitLT1VOSVMgTEpJTEpBTkEKK0tPVsSMRSBBTUFMSUpBCitLT1bEjEVWIFNQQVNFTktBCitLT1bEjElOIE1JTElDQQorS09WxIxJTiBNSUxPVkFOCitLT1bEjElOIE1JUk9TTEFWIERJUEwgSU5HCitLT1bEjElOIE5FR0EKK0tPVsSMSU4gU1RBTklNSVIgRFIKK0tPVkHEjCDEjEVETworS09WQcSMIMWgQU5ET1IKK0tPVkHEjCDFoEFORE9SCitLT1ZBxIwgxJBPUsSQRQorS09WQcSMIMSQT1LEkEUKK0tPVkHEjCDEkFVMQQorS09WQcSMIMSQVVLEkEEKK0tPVkHEjC1BxIwgS0FST0xKCitLT1ZBxIwgQUxFS1NBTkRBUgorS09WQcSMIEFMRUtTQU5EQVIKK0tPVkHEjCBBTkEKK0tPVkHEjCBBTkEKK0tPVkHEjCBBTkRSQcWgCitLT1ZBxIwgQU5UQUwKK0tPVkHEjCBBTlRPTgorS09WQcSMIEFSUEFECitLT1ZBxIwgQVRJTEEKK0tPVkHEjCBCRUxBCitLT1ZBxIwgQkVMQQorS09WQcSMLUJJUktBxaAgTUlIQUxKCitLT1ZBxIwgQk9SSVMKK0tPVkHEjCBERcW9RQorS09WQcSMIERFU0FOS0EKK0tPVkHEjCBEUkFHSUNBIE1SCitLT1ZBxIwgRFXFoEFOCitLT1ZBxIwgRVRFTEtBCitLT1ZBxIwgRVRFTEtBCitLT1ZBxIwgRkVSRU5DCitLT1ZBxIwgRkVSRU5DCitLT1ZBxIwgRlJBTkpBCitLT1ZBxIwgRlJBTkpBCitLT1ZBxIwgR0FCT1IKK0tPVkHEjCBHSVpFTEEKK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJTE9OQQorS09WQcSMIElNUkUKK0tPVkHEjCBJTVJFCitLT1ZBxIwgSU1SRQorS09WQcSMIElSRU5BCitLT1ZBxIwgSVJFTkEKK0tPVkHEjCBJVkFOCitLT1ZBxIwgSVZBTgorS09WQcSMIElWQU4KK0tPVkHEjCBJVkFOCitLT1ZBxIwgSVZBTgorS09WQcSMIElWQU4KK0tPVkHEjCBKQUtPQgorS09WQcSMIEpBTktPCitLT1ZBxIwgSkFOT8WgCitLT1ZBxIwgSkFOT8WgCitLT1ZBxIwgSkFOT8WgCitLT1ZBxIwgSkFOT8WgCitLT1ZBxIwgSkFOT8WgCitLT1ZBxIwgSkFOT8WgCitLT1ZBxIwgSkFOT8WgCitLT1ZBxIwgSkFOCitLT1ZBxIwgSkFOCitLT1ZBxIwgSkVMSUNBCitLT1ZBxIwgSkVMSVNBVkVUQQorS09WQcSMIEpPxb1FRgorS09WQcSMIEpPxb1FRgorS09WQcSMIEpPU0lQCitLT1ZBxIwgSk9TSVAKK0tPVkHEjCBKT1NJUAorS09WQcSMIEpPU0lQCitLT1ZBxIwgSk9WQU4KK0tPVkHEjCBKT1ZBTgorS09WQcSMIEpPVkFOCitLT1ZBxIwgSlVMSUFOQQorS09WQcSMIEpVTElKQU5BCitLT1ZBxIwgS0FSTE8KK0tPVkHEjCBLQVJMTworS09WQcSMIEtBUk9MSgorS09WQcSMIEtBUk9MSgorS09WQcSMIEtBUk9MSgorS09WQcSMIEtBUk9MSgorS09WQcSMIEtBVEFMSU4KK0tPVkHEjCBLQVRBUklOQQorS09WQcSMIEtBVElDQQorS09WQcSMIEtBVElDQQorS09WQcSMIEtBVElDQQorS09WQcSMIEtBVElDQQorS09WQcSMIEtBVElDQQorS09WQcSMIEtPVklMSktBCitLT1ZBxIwgTEFESVNMQVYKK0tPVkHEjCBMQURJU0xBVgorS09WQcSMIExBRElTTEFWCitLT1ZBxIwgTEFESVNMQVYKK0tPVkHEjCBMQURJU0xBVgorS09WQcSMIExBSk/FoAorS09WQcSMIExBSk/FoAorS09WQcSMIExBU0xPCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMQVNMTworS09WQcSMIExBU0xPCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMQVNMTworS09WQcSMIExBU0xPCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMSlVCQU4KK0tPVkHEjCBMSlVERVZJVAorS09WQcSMIE1BSkEKK0tPVkHEjCBNQVJHSVRBCitLT1ZBxIwgTUFSSUpBCitLT1ZBxIwgTUFSSUpBCitLT1ZBxIwgTUFSSUpBCitLT1ZBxIwgTUFSSUpBCitLT1ZBxIwgTUFSSUpBCitLT1ZBxIwgTUFSVElOCitLT1ZBxIwgTUFUSUpBCitLT1ZBxIwgTUlIQUpMTworS09WQcSMIE1JSEFKTE8KK0tPVkHEjCBNSUhBTEoKK0tPVkHEjCBNSUhBTEoKK0tPVkHEjCBNSUtMT8WgCitLT1ZBxIwgTUlLTE/FoAorS09WQcSMIE1JTEFESU4KK0tPVkHEjCBNSUxBTgorS09WQcSMIE1JTEVOQQorS09WQcSMIE1JTE/FoAorS09WQcSMIE1JTE9SQUQKK0tPVkHEjCBNSVJKQU5BCitLT1ZBxIwgTUlSSkFOQQorS09WQcSMIE1JUkpBTkEKK0tPVkHEjCBNSVJLTworS09WQcSMIE1JUk9OIERJUEwgSU5HCitLT1ZBxIwgTUlST1NMQVYKK0tPVkHEjCBOQVRBTElKQQorS09WQcSMIE5JS09MQQorS09WQcSMIE5JS09MQQorS09WQcSMIE9MR0lDQQorS09WQcSMIE9MR0lDQQorS09WQcSMIE9UTworS09WQcSMIFBBVkVMCitLT1ZBxIwgUEVUQVIKK0tPVkHEjCBSSVNUTyBESVBMIElORworS09WQcSMIFJPxb1JCitLT1ZBxIwgUk/FvUkKK0tPVkHEjCBST1pBTElKQQorS09WQcSMIFJPWkFMSUpBCitLT1ZBxIwgUlXFvUlDQQorS09WQcSMIFNJTFZFU1RFUgorS09WQcSMIFNNSUxKQQorS09WQcSMIFNUQU5PSktBCitLT1ZBxIwgU1RFVkFOCitLT1ZBxIwgU1RFVkFOCitLT1ZBxIwgU1RFVkFOCitLT1ZBxIwgU1RFVkFOCitLT1ZBxIwgU1RKRVBBTiBESVBMIElORworS09WQcSMIFNWRVRPWkFSCitLT1ZBxIwgVEVPRE9SIERSIFBST0YKK0tPVkHEjCBURU9ET1IgRFIKK0tPVkHEjCBUSUJPUgorS09WQcSMIFRJQk9SCitLT1ZBxIwtVElITUFKRVIgU1RFVkFOCitLT1ZBxIwgVE9NSVNMQVYKK0tPVkHEjCBUUlBJTUlSCitLT1ZBxIwgVkFMRVJJSkEKK0tPVkHEjCBWRVJBCitLT1ZBxIwgVkVSQQorS09WQcSMIFZFUkEKK0tPVkHEjCBWRVJBCitLT1ZBxIwgVkVSQQorS09WQcSMIFZFUklDQQorS09WQcSMIFZFUk9OQQorS09WQcSMIFZFUk9OQQorS09WQcSMIFZJREEKK0tPVkHEjCBWTEFESU1JUgorS09WQcSMIFZMQURJTUlSCitLT1ZBxIwgWk9SQQorS09WQcSMIFpWT05JTUlSCitLT1ZBxIxFSyBCT8W9SURBUiBEUgorS09WQcSMRUsgREFOSUNBCitLT1ZBxIxFSyBKRUxFTkEKK0tPVkHEjEVWIMSQT1LEkEUKK0tPVkHEjEVWIEFMRUtTQU5EQVIKK0tPVkHEjEVWIEJSQU5LQQorS09WQcSMRVYgQlJBTktPCitLT1ZBxIxFViBCUkFOS08KK0tPVkHEjEVWIERBTsSMRQorS09WQcSMRVYgREFOSUxLQQorS09WQcSMRVYgRElNSVRSSUpFCitLT1ZBxIxFViBEUkFHScWgQQorS09WQcSMRVYgRFJBR09TTEFWCitLT1ZBxIxFViBEUkFHVVRJTgorS09WQcSMRVYgRFJBR1VUSU4KK0tPVkHEjEVWIERVxaBBTktBCitLT1ZBxIxFViBHT1JBTgorS09WQcSMRVYgR09SREFOQQorS09WQcSMRVYgR09SREFOQQorS09WQcSMRVYgSUxJSkEKK0tPVkHEjEVWIElWSUNBCitLT1ZBxIxFViBKRUxBCitLT1ZBxIxFViBKRUxFTkEKK0tPVkHEjEVWIEpPVkFOCitLT1ZBxIxFViBKVUxJSkFOQQorS09WQcSMRVYgSlVMS0EKK0tPVkHEjEVWIExBWkFSCitLT1ZBxIxFViBNQVJJSkEKK0tPVkHEjEVWIE1JTEFOCitLT1ZBxIxFViBNSUxBTgorS09WQcSMRVYgTUlMRU5BCitLT1ZBxIxFViBNSUxJQ0EKK0tPVkHEjEVWIE1JTE/FoAorS09WQcSMRVYgTUlMT1JBRCBEUiBMRUtBUgorS09WQcSMRVYgTUlMVVRJTgorS09WQcSMRVYgTUlSSkFOQQorS09WQcSMRVYgTUxBREVOCitLT1ZBxIxFViBORURFTEpLTworS09WQcSMRVYgTkVNQU5KQQorS09WQcSMRVYgUEVUQVIKK0tPVkHEjEVWIFNURVZBTgorS09WQcSMRVYgU1RFVkFOCitLT1ZBxIxFViBTVEVWQU4KK0tPVkHEjEVWIFNWRVRJU0xBVgorS09WQcSMRVYgU1ZFVE9aQVIKK0tPVkHEjEVWIFRFT0RPUiBEUgorS09WQcSMRVYgVEVPRE9SIERSCitLT1ZBxIxFViBWRVJBCitLT1ZBxIxFViBWRVJBCitLT1ZBxIxFViBWRVNOQQorS09WQcSMRVZJxIYgxIxFREEKK0tPVkHEjEVWScSGIMW9RUxJTUlSCitLT1ZBxIxFVknEhiDFvUVMSktPCitLT1ZBxIxFVknEhiDFvUlWQU4KK0tPVkHEjEVWScSGIMW9SVZBTgorS09WQcSMRVZJxIYgxJBPUsSQRSBESVBMIElORworS09WQcSMRVZJxIYgxJBPUsSQRQorS09WQcSMRVZJxIYgxJBPUsSQRQorS09WQcSMRVZJxIYgxJBPUsSQRQorS09WQcSMRVZJxIYgxJBPUsSQRQorS09WQcSMRVZJxIYgxJBVUsSQSU5BCitLT1ZBxIxFVknEhiDEkFVSQQorS09WQcSMRVZJxIYgQUdORcWgCitLT1ZBxIxFVknEhiBBTEVLU0FOREFSCitLT1ZBxIxFVknEhiBBTEVLU0FOREFSCitLT1ZBxIxFVknEhiBBTEVLU0FOREFSCitLT1ZBxIxFVknEhiBBTsSQRUxJSkEKK0tPVkHEjEVWScSGIEFORFJJSkEKK0tPVkHEjEVWScSGIEFORVRBCitLT1ZBxIxFVknEhiBBTktJQ0EKK0tPVkHEjEVWScSGIEFSU0EKK0tPVkHEjEVWScSGIEJMQUdPSkUKK0tPVkHEjEVWScSGIEJPxaBLTworS09WQcSMRVZJxIYgQk/FoEtPCitLT1ZBxIxFVknEhiBCT8WgS08KK0tPVkHEjEVWScSGIEJPxb1JREFSCitLT1ZBxIxFVknEhiBCT0dEQU4KK0tPVkHEjEVWScSGIEJPR0RBTgorS09WQcSMRVZJxIYgQk9SSVNMQVZBCitLT1ZBxIxFVknEhiBCT1JJU0xBVgorS09WQcSMRVZJxIYgQk9SSVNMQVYKK0tPVkHEjEVWScSGIEJPUklWT0pFCitLT1ZBxIxFVknEhiBCT1JJVk9KCitLT1ZBxIxFVknEhiBCT1JJVk9KCitLT1ZBxIxFVknEhiBCT1JJVk9KCitLT1ZBxIxFVknEhiBCT1JLQQorS09WQcSMRVZJxIYgQlJBTklNSVIKK0tPVkHEjEVWScSGIEJSQU5JU0xBVkEgRElQTCBJTkcKK0tPVkHEjEVWScSGIEJSQU5JU0xBVkEKK0tPVkHEjEVWScSGIEJSQU5JU0xBVkEKK0tPVkHEjEVWScSGIEJSQU5JU0xBVgorS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJVRElNSVIKK0tPVkHEjEVWScSGIEJVRElNSVIKK0tPVkHEjEVWScSGIERBTUpBTgorS09WQcSMRVZJxIYgREFOSUNBCitLT1ZBxIxFVknEhiBEQU5JQ0EKK0tPVkHEjEVWScSGIERBTklDQQorS09WQcSMRVZJxIYgREFOSUNBCitLT1ZBxIxFVknEhiBEQU5JQ0EKK0tPVkHEjEVWScSGIERBTklMTworS09WQcSMRVZJxIYgREFOS0EKK0tPVkHEjEVWScSGIERBVk9SS0EKK0tPVkHEjEVWScSGIERFU0FOS0EKK0tPVkHEjEVWScSGIERJTUlUUklKRSBESVBMIE9FQworS09WQcSMRVZJxIYgRFJBR0FOIERSCitLT1ZBxIxFVknEhiBEUkFHQU5BCitLT1ZBxIxFVknEhiBEUkFHQU4KK0tPVkHEjEVWScSGIERSQUdBTgorS09WQcSMRVZJxIYgRFJBR0FOCitLT1ZBxIxFVknEhiBEUkFHSUNBCitLT1ZBxIxFVknEhiBEUkFHSUNBCitLT1ZBxIxFVknEhiBEUkFHT0xKVUIKK0tPVkHEjEVWScSGIERSQUdPTEpVQgorS09WQcSMRVZJxIYgRFJBR09MSlVCCitLT1ZBxIxFVknEhiBEUkFHTworS09WQcSMRVZJxIYgRFJBR08KK0tPVkHEjEVWScSGIERSQUdVVElOCitLT1ZBxIxFVknEhiBEUkFHVVRJTgorS09WQcSMRVZJxIYgRFJFTkEKK0tPVkHEjEVWScSGIERVxaBBTktBCitLT1ZBxIxFVknEhiBEVcWgQU4KK0tPVkHEjEVWScSGIERVxaBBTgorS09WQcSMRVZJxIYgRFXFoEFOCitLT1ZBxIxFVknEhiBEVcWgQU4KK0tPVkHEjEVWScSGIERVxaBBTgorS09WQcSMRVZJxIYgRFXFoEFOCitLT1ZBxIxFVknEhiBEVcWgQU4KK0tPVkHEjEVWScSGIERVxaBJQ0EKK0tPVkHEjEVWScSGIERVxaBJQ0EKK0tPVkHEjEVWScSGIERVxaBLTworS09WQcSMRVZJxIYgRFXFoEtPCitLT1ZBxIxFVknEhiBEVcWgS08KK0tPVkHEjEVWScSGIEZSQU5KQQorS09WQcSMRVZJxIYgR0FWUklMTworS09WQcSMRVZJxIYgR0xJR09SSUpFCitLT1ZBxIxFVknEhiBHT0pLTworS09WQcSMRVZJxIYgScWgVFZBTgorS09WQcSMRVZJxIYgSUdOSkFUCitLT1ZBxIxFVknEhiBJTElKQQorS09WQcSMRVZJxIYgSUxJSkEKK0tPVkHEjEVWScSGIElMSUpBCitLT1ZBxIxFVknEhiBJU0EKK0tPVkHEjEVWScSGIElWQU4KK0tPVkHEjEVWScSGIEpBR0/FoAorS09WQcSMRVZJxIYgSkVMRU5BCitLT1ZBxIxFVknEhiBKRUxJQ0EKK0tPVkHEjEVWScSGIEpFTElDQQorS09WQcSMRVZJxIYgSkVMSVNBVkVUQQorS09WQcSMRVZJxIYgSk9SREFOCitLT1ZBxIxFVknEhiBKT1ZBTktBCitLT1ZBxIxFVknEhiBKT1ZBTgorS09WQcSMRVZJxIYgSk9WQU4KK0tPVkHEjEVWScSGIEpPVkFOCitLT1ZBxIxFVknEhiBKT1ZJQ0EKK0tPVkHEjEVWScSGIEpPVk8KK0tPVkHEjEVWScSGIEtBVEFSSU5BCitLT1ZBxIxFVknEhiBLQVRBCitLT1ZBxIxFVknEhiBLQVRJQ0EgRFIKK0tPVkHEjEVWScSGIEtBVElDQQorS09WQcSMRVZJxIYgS0FUSUNBCitLT1ZBxIxFVknEhiBLTEFSQQorS09WQcSMRVZJxIYgS0/EjEEKK0tPVkHEjEVWScSGIEtPSkEKK0tPVkHEjEVWScSGIEtPU1RBCitLT1ZBxIxFVknEhiBLT1NUQQorS09WQcSMRVZJxIYgS09WSUxKS0EKK0tPVkHEjEVWScSGIEtSU1RBCitLT1ZBxIxFVknEhiBLUlNUTworS09WQcSMRVZJxIYgS1NFTklKQQorS09WQcSMRVZJxIYgS1NFTklKQQorS09WQcSMRVZJxIYgTEFaTworS09WQcSMRVZJxIYgTEpJTEpBTkEKK0tPVkHEjEVWScSGIExKSUxKQQorS09WQcSMRVZJxIYgTEpVQklDQQorS09WQcSMRVZJxIYgTEpVQk8KK0tPVkHEjEVWScSGIE1BUkEKK0tPVkHEjEVWScSGIE1BUkEKK0tPVkHEjEVWScSGIE1BUklKQQorS09WQcSMRVZJxIYgTUFSSUpBCitLT1ZBxIxFVknEhiBNQVJLTworS09WQcSMRVZJxIYgTUFSS08KK0tPVkHEjEVWScSGIE1JSEFKTE8KK0tPVkHEjEVWScSGIE1JSEFKTE8KK0tPVkHEjEVWScSGIE1JTEFESU5LQQorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxFTkEKK0tPVkHEjEVWScSGIE1JTEVOQQorS09WQcSMRVZJxIYgTUlMRQorS09WQcSMRVZJxIYgTUlMSUNBCitLT1ZBxIxFVknEhiBNSUxJQ0EKK0tPVkHEjEVWScSGIE1JTElDQQorS09WQcSMRVZJxIYgTUlMSUNBCitLT1ZBxIxFVknEhiBNSUxJTUlSCitLT1ZBxIxFVknEhiBNSUxJVk9KIERSCitLT1ZBxIxFVknEhiBNSUxKQU4KK0tPVkHEjEVWScSGIE1JTEtBCitLT1ZBxIxFVknEhiBNSUxPxaAKK0tPVkHEjEVWScSGIE1JTE/FoAorS09WQcSMRVZJxIYgTUlMT8WgCitLT1ZBxIxFVknEhiBNSUxPxaAKK0tPVkHEjEVWScSGIE1JTE/FoAorS09WQcSMRVZJxIYgTUlMT1JBRAorS09WQcSMRVZJxIYgTUlMT1JBRAorS09WQcSMRVZJxIYgTUlMT1ZBTgorS09WQcSMRVZJxIYgTUlMT1ZBTgorS09WQcSMRVZJxIYgTUlPRFJBRworS09WQcSMRVZJxIYgTUlPRFJBRworS09WQcSMRVZJxIYgTUlSQQorS09WQcSMRVZJxIYgTUlSQQorS09WQcSMRVZJxIYgTUlSSkFOQQorS09WQcSMRVZJxIYgTUlSSkFOQQorS09WQcSMRVZJxIYgTUlSS08KK0tPVkHEjEVWScSGIE1JUk9TTEFWCitLT1ZBxIxFVknEhiBNSVJPU0xBVgorS09WQcSMRVZJxIYgTUlST1NMQVYKK0tPVkHEjEVWScSGIE1JVEFSCitLT1ZBxIxFVknEhiBNSVRBCitLT1ZBxIxFVknEhi1NTEFERU5PVknEhiBPTEdBCitLT1ZBxIxFVknEhiBNTEFERU4KK0tPVkHEjEVWScSGIE5BREEKK0tPVkHEjEVWScSGIE5BREXFvURBCitLT1ZBxIxFVknEhiBOQVRBTElKQQorS09WQcSMRVZJxIYgTkVCT0rFoEEKK0tPVkHEjEVWScSGIE5FREVMSktBCitLT1ZBxIxFVknEhiBORURFTEpLTworS09WQcSMRVZJxIYgTklLT0xBCitLT1ZBxIxFVknEhiBOSUtPTEEKK0tPVkHEjEVWScSGIE5JS09MQQorS09WQcSMRVZJxIYgT0xHSUNBCitLT1ZBxIxFVknEhiBPWlJFTgorS09WQcSMRVZJxIYgUEFWTEUKK0tPVkHEjEVWScSGIFBBVkxFCitLT1ZBxIxFVknEhiBQRVRBUgorS09WQcSMRVZJxIYgUkFERU5LTworS09WQcSMRVZJxIYgUkFERQorS09WQcSMRVZJxIYgUkFESVZPSkUKK0tPVkHEjEVWScSGIFJBRElWT0oKK0tPVkHEjEVWScSGIFJBRElWT0oKK0tPVkHEjEVWScSGIFJBRE1JTEEKK0tPVkHEjEVWScSGIFJBRE9KS0EKK0tPVkHEjEVWScSGIFJBRE9KS08KK0tPVkHEjEVWScSGIFJBRE9NQU4KK0tPVkHEjEVWScSGIFJBRE9TTEFWCitLT1ZBxIxFVknEhiBSQURPVkFOCitLT1ZBxIxFVknEhiBSQUpLTworS09WQcSMRVZJxIYgUkFKS08KK0tPVkHEjEVWScSGIFJBTktPCitLT1ZBxIxFVknEhiBSRUxKQQorS09WQcSMRVZJxIYgUlXFvUlDQQorS09WQcSMRVZJxIYgUlXFvUlDQQorS09WQcSMRVZJxIYgU0FWQQorS09WQcSMRVZJxIYgU0FWQQorS09WQcSMRVZJxIYgU0FWQQorS09WQcSMRVZJxIYgU0FWS0EKK0tPVkHEjEVWScSGIFNBVk8KK0tPVkHEjEVWScSGIFNFS1VMQQorS09WQcSMRVZJxIYgU0lNRU9OCitLT1ZBxIxFVknEhiBTTEHEkEFOQQorS09WQcSMRVZJxIYgU0xBVklDQQorS09WQcSMRVZJxIYgU0xBVktPCitLT1ZBxIxFVknEhiBTTEFWS08KK0tPVkHEjEVWScSGIFNMQVZLTworS09WQcSMRVZJxIYgU0xBVktPCitLT1ZBxIxFVknEhiBTTE9CT0RBTgorS09WQcSMRVZJxIYgU0xPQk9EQU4KK0tPVkHEjEVWScSGIFNMT0JPREFOCitLT1ZBxIxFVknEhiBTTE9CT0RBTgorS09WQcSMRVZJxIYgU0xPQk9EQU4KK0tPVkHEjEVWScSGIFNMT0JPREFOCitLT1ZBxIxFVknEhiBTUEFTRU5JSkEKK0tPVkHEjEVWScSGIFNSQklKQU5LQQorS09WQcSMRVZJxIYgU1JFVEEKK0tPVkHEjEVWScSGIFNSRVRFTgorS09WQcSMRVZJxIYgU1RBTkEKK0tPVkHEjEVWScSGIFNUQU5LQQorS09WQcSMRVZJxIYgU1RFVkFOCitLT1ZBxIxFVknEhiBTVEVWQU4KK0tPVkHEjEVWScSGIFNURVZBTgorS09WQcSMRVZJxIYgU1RFVkFOCitLT1ZBxIxFVknEhiBTVEVWQU4KK0tPVkHEjEVWScSGIFNURVZPCitLT1ZBxIxFVknEhiBTVEVWTworS09WQcSMRVZJxIYgU1RFVk8KK0tPVkHEjEVWScSGIFNWRVRMQU5BCitLT1ZBxIxFVknEhiBTVkVUTEFOQQorS09WQcSMRVZJxIYgU1ZFVExBTkEKK0tPVkHEjEVWScSGIFNWRVRPTElLCitLT1ZBxIxFVknEhiBTVkVUT1pBUgorS09WQcSMRVZJxIYgU1ZFVE9aQVIKK0tPVkHEjEVWScSGIFNWRVRPWkFSCitLT1ZBxIxFVknEhiBURVJFWkEKK0tPVkHEjEVWScSGIFRPRE9SCitLT1ZBxIxFVknEhiBUT01JU0xBVgorS09WQcSMRVZJxIYgVkFTQQorS09WQcSMRVZJxIYgVkVMSU1JUgorS09WQcSMRVZJxIYgVkVMSU1JUgorS09WQcSMRVZJxIYgVkVSQQorS09WQcSMRVZJxIYgVkVSQQorS09WQcSMRVZJxIYgVkVSQQorS09WQcSMRVZJxIYgVklET1NBVkEKK0tPVkHEjEVWScSGIFZJRE9TQVZBCitLT1ZBxIxFVknEhiBWSURPU0FWQQorS09WQcSMRVZJxIYgVklET1NBVkEKK0tPVkHEjEVWScSGIFZJTktPCitLT1ZBxIxFVknEhiBWTEFESU1JUgorS09WQcSMRVZJxIYgVkxBRElNSVIKK0tPVkHEjEVWScSGIFZMQURJTUlSCitLT1ZBxIxFVknEhiBWTEFESVNMQVYKK0tPVkHEjEVWScSGIFZPSklOCitLT1ZBxIxFVknEhiBWT0pJTgorS09WQcSMRVZJxIYgVk9KSVNMQVYgRElQTCBJTkcKK0tPVkHEjEVWScSGIFZVSk8KK0tPVkHEjEVWScSGIFZVS0HFoElOCitLT1ZBxIxFVknEhiBWVUtBxaBJTgorS09WQcSMRVZJxIYgWkRFTktPCitLT1ZBxIxFVknEhiBaRFJBVktPCitLT1ZBxIxFVknEhiBaT1JBTiBEUgorS09WQcSMRVZJxIYgWk9SQU4KK0tPVkHEjEVWScSGIFpPUkFOCitLT1ZBxIxFVknEhiBaT1JJQ0EKK0tPVkHEjEVWScSGIFpPUklDQQorS09WQcSMRVZJxIYgWlZPTklNSVJLQQorS09WQcSMScSGIMW9SVZLTworS09WQcSMScSGIEFOSUNBCitLT1ZBxIxJxIYgQk/FvUFOQQorS09WQcSMScSGIEJPUklWT0oKK0tPVkHEjEnEhiBEUkFHQU5BCitLT1ZBxIxJxIYgRFXFoEFOS0EKK0tPVkHEjEnEhiBEVcWgQU4KK0tPVkHEjEnEhiBKT1ZBTgorS09WQcSMScSGIEpPVkFOCitLT1ZBxIxJxIYgSk9WQU4KK0tPVkHEjEnEhiBMSkVQT1NBVkEKK0tPVkHEjEnEhiBMVUtBCitLT1ZBxIxJxIYgTUlMQU4KK0tPVkHEjEnEhiBNSUxFTktPCitLT1ZBxIxJxIYgTUlST1NMQVYKK0tPVkHEjEnEhiBNSVJPU0xBVgorS09WQcSMScSGIE5FREVMSktPCitLT1ZBxIxJxIYgTklLT0xBCitLT1ZBxIxJxIYgUEVUQVIKK0tPVkHEjEnEhiBSQURPU0xBVgorS09WQcSMScSGIFNMT0JPREFOCitLT1ZBxIxJxIYgU1RBTklTTEFWCitLT1ZBxIxJxIYgVEFOQVNJSkUKK0tPVkHEjEnEhiBUT8WgQQorS09WQcSMScSGIFRPTUlTTEFWCitLT1ZBxIxJxIYgVkVTTkEKK0tPVkHEjElLIE1BUkdJVEEKK0tPVkHEjElLIE1BUklKQQorS09WQUzEjElLIFZMQURJU0xBVgorS09WQUxPVlNLSSBURU9ET1IKK0tPVkFOT1ZJxIYgUEVUQVIKK0tPVkFSIEpBTkpBCitLT1ZBUsSMSUsgQU5EUklKQQorS09WQVLEjElLIE1BUklKQQorS09WQVJJSyBWQUxFUklKQQorS09WRUlOREwgSk9TSVAKK0tPVkVMSiBUT01JU0xBVgorS09WScSGIERSQUdJQ0EKK0tPVknEhiBOQURBCitLT1ZJxIYgU0xPQk9EQU4KK0tPVklKQU5JxIYgVkxBRElNSVIKK0tPVklOxIxJxIYgQk9KQU4KK0tPVklOxIxJxIYgTUlMQU4KK0tPVklOxIxJxIYgTkFEQQorS09WSU7EjEnEhiBOQVRBxaBBCitLT1ZJTsSMScSGIFNMT0JPREFOIERJUEwgSU5HCitLT1ZJTsSMScSGIFNUT0pBTgorS09WSkFOScSGIEFMRUtTQU5EQVIKK0tPVkpBTknEhiBKT1ZBTgorS09WSkFOScSGIE1JTE9SQUQKK0tPVkpBTknEhiBOQURBCitLT1ZKQU5JxIYgTkVOQUQKK0tPVkpBTknEhiBQRVJBCitLT1ZKQU5JxIYgU0FWQQorS09WTEpBTiDEkE9SxJBFCitLT1ZMSkFOIFNBVk8KK0tPVlJMSUpBIEpPVkFOCitLT1pBSyBNQVJJSkEKK0tPWkFLSVYgSVZBTgorS09aQVIgUkFERQorS09aQVLEjEnEhiBKT1ZBTktBCitLT1pBUsSMScSGIEpPVkFOCitLT1pBUsSMScSGIEpPVkFOCitLT1pBUsSMScSGIE1BUktPCitLT1pBUsSMScSGIE1JTEFOCitLT1pBUkFDIE1JxIZPCitLT1pBUkVWIMW9QVJLTworS09aQVJFViDFvUlWS08KK0tPWkFSRVYgQUxFS1NBTkRSQQorS09aQVJFViBCT0dPTEpVQgorS09aQVJFViBEQVJJTktBCitLT1pBUkVWIERJTUlUUklKRQorS09aQVJFViBESU1JVFJJSkUKK0tPWkFSRVYgRFJBR0lDQQorS09aQVJFViBHT1NQQVZBCitLT1pBUkVWIExBWkFSCitLT1pBUkVWIExKVUJJQ0EKK0tPWkFSRVYgTUFSSUpBCitLT1pBUkVWIE1JTEFOCitLT1pBUkVWIE1JTEtBCitLT1pBUkVWIE1MQURFTgorS09aQVJFViBORURFTEpLTworS09aQVJFViBQQVZMRQorS09aQVJFViBQRVRBUgorS09aQVJFViBTQVZBCitLT1pBUkVWIFNBVkEKK0tPWkFSRVYgVE9ET1IKK0tPWkFSRVZJxIYgUkFESU5LQQorS09aQVJFVknEhiBaT1JBTgorS09aQVJPViDEkE9SxJBFCitLT1pBUk9WIEFOSUNBCitLT1pBUk9WIEdBVlJBCitLT1pBUk9WIElWQU4KK0tPWkFST1YgSk9WQU5LQQorS09aQVJPViBLQVRJQ0EKK0tPWkFST1YgTUlMT8WgCitLT1pBUk9WIE5BVEFMSUpBCitLT1pBUk9WIFBBVkxFCitLT1pBUk9WIFBBVkxFCitLT1pBUk9WIFNSQklTTEFWCitLT1pBUk9WIFRPTUlTTEFWCitLT1pBUlNLSSDFvUlWQU4KK0tPWkFSU0tJIMW9SVZLTworS09aQVJTS0kgTElESUpBCitLT1pBUlNLSSBNQVJJSkEKK0tPWkFSU0tJIE1JUk9TTEFWCitLT1pBUlNLSS1SQUpJxIYgVkVSSUNBCitLT1pBUlNLSSBTTE9CT0RBTgorS09aQVJTS0kgU09GSUpBCitLT1pBUlNLSSBTVEVWQU4KK0tPWkFSU0tJIFRFT0RPUkEKK0tPWkFSU0tJIFZBU0lMSUpFCitLT1pBUlNLSSBWRVJBCitLT1pBUlNLSSBWT0pJU0xBVgorS09aQVJTS0kgVk9KSVNMQVYKK0tPWkJBxaBJxIYgU1RFVkFOCitLT1pJxIYgQk9HREFOCitLT1pJxIYgUEVUQVIKK0tPWknEhiBSQVRLTworS09aScSGIFJPxb1BCitLT1pJxIYgU0FWQQorS09aScSGIFNUQU5LTworS09aScSGIFZFTEpLTworS09aSU5BIElWQU4KK0tPWklOQSBNQVJJQ0EKK0tPWkxJSyBLQVRBUklOQQorS09aTElLIExBSk/FoAorS09aTElOQSBERVNBTktBCitLT1pMSU5BIERVxaBLTworS09aTElOQSBKRUtBCitLT1pMSU5BIE1JTEUKK0tPWkxJTkEgWkxBVElDQQorS09aTE9WQcSMS0kgxb1JVktPCitLT1pMT1ZBxIxLSSBHT1JEQU5BCitLT1pMT1ZBxIxLSSBMSlVCQQorS09aTE9WQcSMS0kgU0FWQQorS09aTE9WQcSMS0kgU09GSUpBCitLT1pMT1ZBxIxLSSBWRVNFTElOCitLT1pMT1ZJxIYgQk9SSVMKK0tPWkxPVknEhiBTQVZBCitLT1pNQSDFoEFORE9SCitLT1pNQSBFVEVMCitLT1pNQSBGRVJFTkMKK0tPWk1BIEpPxb1FRgorS09aTUEgSk9TSVAKK0tPWk1JRElTLVBFVFJPVknEhiBBTkEKK0tPWk9NQVJBIMSQT1LEkEUKK0tPWk9NQVJBIEpPVk8KK0tPWk9NQVJBIExKVUJJQ0EKK0tPWk9NQVJBIE1BUklKQQorS09aT01BUkEgWk9SQU4KK0tPWk9NQVJJxIYgTUFSSUpBCitLT1pPTU9SQSBCT8W9SURBUgorS09aT01PUkEgQlJBTktPCitLT1pPTU9SQSBJTElKQQorS09aT01PUkEgSk9LQQorS09aT01PUkEgSk9WTworS09aT01PUkEgTEFaTworS09aT01PUkEgTUlMQU4KK0tPWk9NT1JBIE1JTEUKK0tPWk9NT1JBIE1JTE9KS08KK0tPWk9NT1JBIE1JUk9TTEFWCitLT1pPTU9SQSBQRVRBUgorS09aT01PUkEgUkFET01JUgorS09aT01PUkEgU1LEkEFOCitLT1pPTU9SQSBUQVRKQU5BCitLT1pPTU9SQSBWQVNJTElKRQorS09aT01PUknEhiBCUkFOSVNMQVZBIERSIExFS0FSCitLT1pVTk9WScSGIE1JUk9TTEFWCitLUsSMQURJTkFDIEtPU1RBCitLUsSMQURJTkFDIE5JS09MQQorS1LEjEVESU5BQyBNSU9EUkFHCitLUsSMRURJTkFDIFRJTUEKK0tSxIxFTEnEhiBBTkRSSUpBCitLUsSMTUFSIMW9RUxKS08KK0tSxIxNQVIgQ1ZJSk8KK0tSxIxNQVIgRFJBR09NSVIKK0tSxIxNQVIgRFXFoEtPCitLUsSMTUFSIEpPVkFOCitLUsSMTUFSIExFUE9TQVZBCitLUsSMTUFSIExKVUJJQ0EKK0tSxIxNQVIgTEpVQklDQQorS1LEjE1BUiBNSUxBTgorS1LEjE1BUiBNSUxBTgorS1LEjE1BUiBNSVJLTworS1LEjE1BUiBQQU5FCitLUsSMTUFSIFZBU08KK0tSxIxNQVIgVklOS08KK0tSxIxNQVIgWk9SQU4KK0tSxIxNQVIgWk9SQU4KK0tSxIxNQVJJSyBEQU5JTE8KK0tSxIxNQVJJSyBQUkVEUkFHCitLUsSMTyBCT8W9SURBUgorS1LEjE8gTUlMRU5LTworS1LEjE8gUkFTSU0KK0tSxIxPIFJBU0lNCitLUsWgRVYgQk9SSVMKK0tSxaBFViBJVkFOCitLUsWgRVYgSlVMSUpBTkEKK0tSxaBFViBKVUxLSUNBCitLUsWgScSGIERBUkEKK0tSxaBJxIYgSUdOSkFUCitLUsWgScSGIEpFTEEKK0tSxaBJxIYgVE9NTworS1LFoElOIEpPVk8KK0tSxaBPVknEhiBKRUxFTkEKK0tSxaBURU5JxIYgREVTQU5LQQorS1LFvUEgTUlMRU5LTworS1LFvUnEhiBTSU1PCitLUsSQScSGIFNQT01FTktBCitLUkHEjEVOU0tJIEJPUklTTEFWCitLUkHEjEVWU0tJIEFQT1NUT0wKK0tSQcSMVU4gSVZBTgorS1JBxIxVTiBUUkFKQU4KK0tSQcSMVU4gVFJBSkFOCitLUkHEjFVOT1YgUEVUQVIKK0tSQcSMVU5PViBTVEVWQU4KK0tSQcSMVU5PVknEhiDFvUlWT1JBRAorS1JBxIxVTk9WScSGIFZFTEpLTworS1JBxIZBSyBCT8WgS08KK0tSQUdJxIxFSyBLTEFSQQorS1JBR0nEhiBCSUxKQU5BCitLUkFHScSGIEJPUkEKK0tSQUdJxIYgTEpJTEpBTkEKK0tSQUdJxIYgWk9SQU4KK0tSQUdPVknEhiBNQVJJTktPCitLUkFHT1ZJxIYgVkxBRElNSVIKK0tSQUdVSkVWIERVxaBBTgorS1JBR1VKRVZJxIYgTUlMT1JBRCBEUiBMRUtBUgorS1JBR1VKRVZJxIYgUkFKS08KK0tSQUdVSkVWScSGIFNUQU5JU0xBViBEUiBMRUtBUgorS1JBR1VMSiBBTEVLU0FOREFSCitLUkFHVUxKIERVxaBBTktBCitLUkFHVUxKIEpFTEEKK0tSQUdVTEogTEFaTworS1JBR1VMSiBTQVZLQQorS1JBR1VMSkVWScSGIFpPUklDQQorS1JBSsSMRVZJxIYgTUlPRFJBRworS1JBSsSMSSBWTEFESU1JUgorS1JBSsSMSU5PVknEhiBKT1ZBTiBEUiBMRUtBUgorS1JBSsWgScSGIE1JUktPCitLUkFKQcSMRVZJxIYgQk9SSVNMQVYKK0tSQUpBxIxFVknEhiBISUxEQQorS1JBSkHEjEVWScSGIE1JUkpBTkEKK0tSQUpBxIxFVknEhiBUT01JU0xBVgorS1JBSkHEjEVWScSGIFpPUkFOCitLUkFKQ0FSIFZMQURJTUlSCitLUkFKQ0VSIEVVR0VOCitLUkFKQ0VSIElSRU5BCitLUkFKQ0VSIElWQU4KK0tSQUpDRVIgUEVUQVIKK0tSQUpJxaBOSUsgxb1JVk9SQUQKK0tSQUpJxaBOSUsgS1JJU1RJTkEKK0tSQUpJxIYgQUdJQ0EKK0tSQUpJTkEgQUxFS1NBTkRBUgorS1JBSklOQSBGSUxJUAorS1JBSklOT1ZJxIYgQlJBTktPCitLUkFKSU5PVknEhiBMQVpBUgorS1JBSklOT1ZJxIYgTUlMQU4KK0tSQUpJTk9WScSGIFBBVkxFCitLUkFKSU5PVknEhiBTSU5JxaBBCitLUkFKTklLIMW9QVJLTworS1JBSk5JSyBMQVpBUgorS1JBSk5JS0VSIE5BTkRPUgorS1JBSk5PViBCT0dEQU4KK0tSQUpOT1YgQk9HT0xKVUIKK0tSQUpOT1YgR09SQU4KK0tSQUpOT1ZJxIYgxJBPUsSQRQorS1JBSk5PVknEhiDEkE9SxJBFCitLUkFKTk9WScSGIMSQVVJPCitLUkFKTk9WScSGIEJPxaBLTworS1JBSk5PVknEhiBCT0dEQU4KK0tSQUpOT1ZJxIYgSkFEUkFOS0EKK0tSQUpOT1ZJxIYgTUlMScSGCitLUkFKTk9WScSGIE1JTElDQQorS1JBSk5PVknEhiBOSUtPTEEKK0tSQUpOT1ZJxIYgUEVUQVIKK0tSQUpOT1ZJxIYgUkFERQorS1JBSk5PVknEhiBTTEFWSUNBCitLUkFKTk9WScSGIFZFUkEKK0tSQUpPVkFOIE1JUkpBTkEKK0tSQUpPVkFOIE1JUk9TTEFWCitLUkFLIE1JxaBBCitLUkFLQU5PVknEhiBEVcWgQU4KK0tSQUtBTk9WScSGIFZPSklTTEFWCitLUkFMSUsgTUlST1NMQVYKK0tSQUxJSyBPTElOS0EKK0tSQUxJSyBQQVZMRQorS1JBTElLIFNURVZBTgorS1JBTEogVkFMRU5USU4KK0tSQUxKIFpWT05JTUlSCitLUkFMSkVWQcSMS0kgQkFSQkFSQQorS1JBTEpFVkHEjEtJIElMSUpBCitLUkFMSkVWQcSMS0kgSk9TSVAKK0tSQUxKRVZJxIYgQk9TSUxKS0EKK0tSQUxKRVZJxIYgRFXFoEFOCitLUkFMSkVWScSGIE1BUklDQQorS1JBTEpFVknEhiBNSUxLQQorS1JBTEpFVknEhiBTQVZPCitLUkFMSkVWScSGIFZMQURJTUlSIERSCitLUkFMSknEhiBKRUxFTkEKK0tSQUxKScSGIFZMQURBCitLUkFOSsSMRVZJxIYgR09SREFOQQorS1JBTkrEjEVWScSGIEpPU0lQCitLUkFTIEpFTEVOQQorS1JBU0FWQUMgxb1JVk9SQUQKK0tSQVNBVkFDIE1JTEtBCitLUkFTQVZBQyBNSUxPUkFECitLUkFTQVZBQyBNSUxPUkFECitLUkFTQVZBQyBSVcW9SUNBCitLUkFTScSGIEJSQU5JU0xBVgorS1JBU0nEhiBEVcWgQU4KK0tSQVNJxIYgR09MVUIKK0tSQVNJxIYgTUlMT0pFCitLUkFTScSGIE5JS09MQQorS1JBU0nEhiBTVEVWQU4KK0tSQVNLTyBKQU5LTworS1JBU05JxIYgSVJJTkEKK0tSQVNOScSGIFZFUkEKK0tSQVNOSUsgVkxBVEtPCitLUkFTTklLIFpWT05LTworS1JBU09KRVZJxIYgS09OU1RBTlRJTgorS1JBU09KRVZJxIYgWk9SQU4KK0tSQVNVTEEgVE9NQQorS1JBU1VMSkEgRFXFoEFOCitLUkFTVUxKQSBTVEVWQU4KK0tSQVVTIEFOQQorS1JBVVMgT1RPCitLUkFWxIxFTktPIFBFVEFSCitLUkFWQVJVxaBJxIYgRFJBR0FOCitLUkFWQVJVxaBJxIYgSUxJSkEKK0tSQVZBUlXFoEnEhiBUUklWVU4KK0tSQVZBUlXFoEnEhiBWSVRPTUlSCitLUkFWScSGIERVxaBBTgorS1JBVknEhiBNSUxBTgorS1JBVknEhiBQRVRBUgorS1JBVkxKQU5BQyBBTEVLU0FORFJBCitLUkFWTEpBTkFDIElWQU5LQQorS1JCQU5KRVZJxIYgQUxFS1NBTkRBUgorS1JCQU5KRVZJxIYgTUlMQU4KK0tSQkFOSkVWScSGIFNBxaBBCitLUkJBVkFDIEpFTEEKK0tSQ0nEhiBCUkFUSU1JUgorS1JDVU5PVknEhiBCTEFHT0pFCitLUkTFvUFMScSGIERSQUdBTgorS1JExb1BTEnEhiBTVEVWQU4KK0tSRMW9ScSGIFZJRE9KRQorS1JFxaBPIEVNSVIKK0tSRUNVTCBMSURJSkEKK0tSRUNVTEogTUFSSUpBCitLUkVHIEVEVUFSRAorS1JFRyBWTEFESU1JUgorS1JFSknEhiBCT1JJU0xBVgorS1JFSknEhiBKT1ZBTgorS1JFSknEhiBNQVJJTktPCitLUkVKScSGIFNUQU5JU0xBVgorS1JFSknEhiBTVEFOSVNMQVYKK0tSRUpJxIYgU1RPSkEKK0tSRUtJxIYgQkFSScWgQSBEUgorS1JFS0nEhiBFTlZFUgorS1JFS0nEhiBGUkFOSkEKK0tSRUtJxIYgTUlMRU5BCitLUkVLTyBMSlVCSUNBCitLUkVNRU5PVknEhiBCT1JJU0xBVgorS1JFTUVOT1ZJxIYgS0xBUkEKK0tSRU1FTk9WScSGIExKVUJBCitLUkVNRU5PVknEhiBMSlVCQQorS1JFTUVOT1ZJxIYgTEpVQkEKK0tSRU1FTk9WScSGIE1JTEFOS0EKK0tSRU1FTk9WScSGIE1JTEVOQQorS1JFTUVOT1ZJxIYgTUlMRU5LTworS1JFTUVOT1ZJxIYgTUlMT8WgCitLUkVNRU5PVknEhiBNSVJLTworS1JFTUVOT1ZJxIYgTkVERUxKS08KK0tSRU1FTk9WScSGIFBFVEFSCitLUkVNRU5PVknEhiBSQURPU0xBVgorS1JFTUVOT1ZJxIYgU0lOScWgQQorS1JFTUVOT1ZJxIYgU05Fxb1BTkEKK0tSRU1FTk9WScSGIFNUQU5LTworS1JFTUVOT1ZJxIYgU1RFVk8KK0tSRU1FTk9WScSGIFZPSklOCitLUkVNRVIgRUxJWkFCRVRBCitLUkVNRVIgRlJBTkpBCitLUkVNRVIgSk9WQU4KK0tSRU1FUiBLQVRJQ0EKK0tSRU1FUiBNQVRJSkEKK0tSRU1FUiBQQUpBCitLUkVNScSGIERSQUdBTgorS1JFTUnEhiBMSlVCT01JUgorS1JFTVBBU0tJLUFORFJJxIYgSElMREEKK0tSRU1QQVNLSSBFTElaQUJFVEEKK0tSRVNBTktPIExBU0xPCitLUkVTQU5LTyBNQVJHSVRBCitLUkVTQU5LTyBNQVJJSkEKK0tSRVNJxIYgSkFOSkEKK0tSRVNJxIYgTUlMRU5BCitLUkVTScSGIE1JVEFSCitLUkVTScSGIFNMQVZLTworS1JFU08gxaBBxIZJUgorS1JFU09KQSBEVcWgS08KK0tSRVNPSkEgTUFSSU5LTworS1JFU09KRVZJxIYgREFNSkFOCitLUkVTT0pFVknEhiBKT1ZBTktBCitLUkVTT0pFVknEhiBKT1ZBTgorS1JFU09KRVZJxIYgU1JCT1NMQVYKK0tSRVNPSkVWScSGIFZFU05BCitLUkVTT0pFVknEhiBaRFJBVktPCitLUkVTT1ZJxIYgU0xBVktPCitLUkVTT1ZJxIYgU0xPQk9EQU4KK0tSRVNPVknEhiBWQVNPCitLUkVTVEEgQVJQQUQKK0tSRVNUQSBBVElMQQorS1JFU1RJxIYgREFGSU5BCitLUkVTVEnEhiBOQURBCitLUkVTVEnEhiBTVEVWQU4KK0tSRVNUScSGIFZMQURJTUlSCitLUkVWRcWgScSGIEtBUkxPCitLUkVWRcWgScSGIEtBVEEKK0tSR0EgR0FWUkEKK0tSR0EgTUFORQorS1JHQSBNQVJBCitLUkdBIE1JTEFOCitLUkdBIE1JTE/FoAorS1JHQSBWQVNBCitLUkdJTiBNTEFERU4KK0tSR0lOIE5BREEKK0tSR0lOIE5FREVMSktPCitLUkdPVknEhiBEVcWgQU5LQQorS1JHT1ZJxIYgRFXFoEFOS0EKK0tSR09WScSGIEpPVk8KK0tSR09WScSGIE1BTEnFoEEKK0tSR09WScSGIE1BUklKQQorS1JHT1ZJxIYgTUnEhk8KK0tSR09WScSGIE1JTEFOCitLUkdPVknEhiBNSUxPUkFEIERSIExFS0FSCitLUkdPVknEhiBNT03EjElMTworS1JHT1ZJxIYgUkFUS08KK0tSR09WScSGIFNNSUxKQQorS1JHT1ZJxIYgU05Fxb1BTkEKK0tSR09WScSGIFNWRVRPWkFSCitLUkdPVknEhiBWTEFEQQorS1JHT1ZJxIYgVlVLT01BTiBESVBMIElORworS1JHT1ZJxIYgWk9SSUNBCitLUknFoCBQRVRBUgorS1JJxaBBTiBCT1NJTEpLQQorS1JJxaBBTiBEUkFHT0pMTworS1JJxaBBTiBNQVRJSkEKK0tSScWgQU4gTUlMT8WgCitLUknFoEFOIFZVS0lDQQorS1JJxaBBTiBaRFJBVktPCitLUknFoEFOT1YgSk9WQU4KK0tSScWgQU5PVknEhiBEUkFHT01JUgorS1JJxaBUTyBKVUxJSkFOQQorS1JJxb0gSkFOS08KK0tSScW9IFBBVkVMCitLUknFvUFLIEFOQQorS1JJxb1BTiDFoEFORE9SCitLUknFvUFOIMSQVVJBCitLUknFvUFOIEFOSUNBCitLUknFvUFOIEVEVUFSRAorS1JJxb1BTiBKQU5PxaAKK0tSScW9QU4gSlVMQQorS1JJxb1BTiBMQVNMTworS1JJxb1BTiBNQVJJSkEKK0tSScW9QU4gTUFUSUpBCitLUknFvUFOIE1JS0xPxaAKK0tSScW9QU4gUk/FvUEKK0tSScW9QU5JxIYgSk9WQU4KK0tSScW9QU5JxIYgSk9WQU4KK0tSScW9QU5JxIYgTUlMRU5LTworS1JJxb1BTknEhiBTTEHEkEFOQQorS1JJxb1BTknEhiBWTEFESU1JUgorS1JJxb1BTk9WScSGIMW9VcW9QU5BCitLUknFvU5BUiBCT0pBTgorS1JJxb1OQVIgTUFSQQorS1JJxb1OQVIgTUlSS08gRFIgRElQTCBJTkcKK0tSScW9TkFSIFRPTUEgRElQTCBJTkcKK0tSSU3FoEFNSEFMT1YgWkFJREEKK0tSSU5LT1ZTS0kgQUxFS1NBTkRBUgorS1JJTktPVlNLSSBBTEVLU0FOREFSCitLUklOS09WU0tJIFZFUk9OSUtBCitLUklTVEnEhiBNQVJJSkEKK0tSSVNUScSGIE5BREEKK0tSSVNUSUFOIEpPxb1FRgorS1JJU1RPVknEhiBNSVJPU0xBVkEKK0tSSVNUT1ZJxIYgUlVET0xGCitLUklWQUsgQU5BCitLUklWQUsgTUlST1NMQVYKK0tSSVZJxIYgRFJBR0FOQQorS1JJVknEhiBMSklMSkFOQQorS1JJVknEhiBOSUtPTEEKK0tSSVZPxaBJSkEgxb1JVktPCitLUklWT8WgSUpBIEZSQU5KTworS1JJVk/FoElKQSBNSUxFCitLUklWT0tBUEnEhiBBTUFMSUpBCitLUklWT0tBUEnEhiBEQU5JQ0EKK0tSSVZPS0FQScSGIE1BUlRJTgorS1JJVk9LQVBJxIYgTkVERUxKS08KK0tSSVZPS0FQScSGIE5FVkVOS0EgRElQTCBFQ0MKK0tSSVZPS0FQScSGIFJBRE9TTEFWCitLUklWT0tBUEnEhiBTTE9CT0RBTgorS1JJVk9LQVBJxIYgU0xPQk9EQU4KK0tSSVZPS0FQScSGIFNURVZBTgorS1JJVk9LQVBJxIYgVkxBRElNSVIKK0tSSVZPS1XEhkEgxJBPUsSQRQorS1JJVk9LVcSGQSBERUpBTiBESVBMIElORworS1JJVk9LVcSGQSBESU1JVFJJSkUKK0tSSVZPS1XEhkEgRFJBR0lDQQorS1JJVk9LVcSGQSBEUkFHT01JUgorS1JJVk9LVcSGQSBEUkFHT01JUgorS1JJVk9LVcSGQSBEVcWgQU4KK0tSSVZPS1XEhkEgSkVMSVNBVkVUQQorS1JJVk9LVcSGQSBKT1ZBTgorS1JJVk9LVcSGQSBKVUxJSkFOQQorS1JJVk9LVcSGQSBNSUxBTgorS1JJVk9LVcSGQSBNSUxJQ0EKK0tSSVZPS1XEhkEgTUlMS0EKK0tSSVZPS1XEhkEgTUlPRFJBRworS1JJVk9LVcSGQSBQRVRBUgorS1JJVk9LVcSGQSBSQURPU0xBVgorS1JJVk9LVcSGQSBSQURPVkFOCitLUklaQkFJIFpPTFRBTgorS1JLRUxJxIYgU0xPQk9EQU4KK0tSS0VMSkXFoCBCT1JJUworS1JLRUxKScSGIE1PTcSMSUxPCitLUktFTEpJxIYgU1ZFVElTTEFWCitLUktJxIYgTUlMT1ZBTgorS1JLTEVDIEpPU0lQCitLUktMRUMgVkVSQQorS1JLTEVDIFZMQURJTUlSCitLUktMSkXFoCDEkFVSTworS1JLTEpFxaAgQk9SQQorS1JLTEpFxaAgTUlMRSBEUgorS1JLTEpJxIYgxJBVUk8KK0tSS0xKScSGIERSQUdBTgorS1JLTEpJxIYgTUlMQU4KK0tSS0xKScSGIE1JTE9WQU4KK0tSS0xKScSGIE5JS09MQQorS1JLTEpJxIYgT1NUT0pBCitLUktMSlXFoCBCT8WgS08KK0tSS0xKVcWgIEJSQU5LTworS1JLTEpVxaAgRFJBR0FOQQorS1JLTEpVxaAgRFXFoEFOS0EKK0tSS0xKVcWgIERVxaBBTgorS1JLTEpVxaAgSkVMRU5BCitLUktMSlXFoCBKRUxJQ0EKK0tSS0xKVcWgIEtSSVNUSU5BCitLUktMSlXFoCBMSlVCSU5LQQorS1JLTEpVxaAgTEpVQk9NSVJLQSBEUgorS1JLTEpVxaAgTUlMQU4KK0tSS0xKVcWgIE1JTEFOCitLUktMSlXFoCBNSUxJQ0EKK0tSS0xKVcWgIE1JTE9SQUQKK0tSS0xKVcWgIE1JUk9TTEFWCitLUktMSlXFoCBNT03EjElMTworS1JLTEpVxaAgUEVUQVIKK0tSS0xKVcWgIFBFVEFSCitLUktMSlXFoCBSQURFCitLUktMSlXFoCBTTEFWS08KK0tSS0xKVcWgIFNMT0JPREFOCitLUktMSlXFoCBTVEVWQU4KK0tSS0xKVcWgIFZFUklDQQorS1JLT0JBQknEhiBJTElKQQorS1JLT0JBQknEhiBWRVJJQ0EKK0tSS09WScSGLUpVUEVLIERVxaBBTktBCitLUk1BUiBEVcWgQU4KK0tSTUFSIEpBU05BCitLUk1BUiBNQVJLTworS1JNQVIgWk9SQQorS1JNUE9UIEdPSktPCitLUk1QT1QgTEFaQVIKK0tSTVBPVEnEhiBBTsSQRUxLQQorS1JNUE9UScSGIFZPSklTTEFWIERJUEwgUFJBVk5JSworS1JNUE9UScSGIFZVS0lDQQorS1JOxIxFVknEhiBBTsSQRUxLQQorS1JOQUpBQyDFvUlWQU4KK0tSTkFKQUMgSVZBTgorS1JOQUpBQyBNT03EjElMTworS1JOQUpBQyBORVZFTktBCitLUk5BSkFDIFBFVEFSCitLUk5BSkFDIFJBRE9WQU4KK0tSTkFKQUMgWkxBVElDQQorS1JOQUpTS0kgTUlMT1JBRAorS1JORElKQSBCT0dPTEpVQgorS1JORElKQSBCUkFOS08KK0tSTkRJSkEgTUFSS08KK0tSTkRJSkEgTUlMT1ZBTgorS1JORElKQSBORU5BRAorS1JORElKQSBQRVRBUgorS1JORElKQSBTVEFOQQorS1JORElKQSBTVEVWTworS1JORElKQSBWT0pJTgorS1JORVRBIEJPR0RBTgorS1JORVRBIEpFTEtBCitLUk5FVEEgTUlMT1JBRAorS1JORVRBIE1JTE9TQVZBCitLUk5FVEEgTklLT0xBCitLUk5FVEEgUkFERQorS1JORVRBIFNMT0JPREFOCitLUk5FVEEgU1RFVkFOCitLUk5FVEnEhiBHT0pLTworS1JORVRJxIYgSk9WQU4KK0tSTknEhiBBTkEKK0tSTknEhiBQRVJBCitLUk5JxIYgUkFET0pLQQorS1JOScSGIFNURVZBTgorS1JOScSGIFNUSVBPCitLUk5JSkEgTUFSSU5LTworS1JOSkFJxIYgRFJBR08KK0tSTkpBScSGIEdPUkFOCitLUk5KQUnEhiBKRUxJU0FWRVRBCitLUk5KQUpJxIYgRFXFoEFOS0EKK0tSTkpBSknEhiBJTElKQQorS1JOSkFKScSGIElWSUNBCitLUk5KQUpJxIYgSk9WQU4KK0tSTkpBSknEhiBNSUxPxaAKK0tSTkpBSknEhiBNSVJPU0xBVgorS1JOSkFKScSGIFJBRE9NSVIKK0tSTkpFxaBFVkFDIFNBVkEKK0tSTkpFVEEgTEVQT1NBVkEKK0tSTkpFVEEgTk9WQUsKK0tSTkpFVElOIMW9SVZLTworS1JOSkVUSU4gQlJBTktPCitLUk5KRVRJTiBEUkFHQU4KK0tSTkpFVElOIEpPVkFOCitLUk5KRVRJTiBLQVRJQ0EKK0tSTkpFVElOIE1BSkEKK0tSTkpFVElOIE1JS0EKK0tSTkpFVElOIFNBVkEKK0tSTkpJxIYgSVZBTgorS1JOSlVMQUMgRFXFoEFOCitLUk5PSkVMQUMgREFOSUxPCitLUk/FoExBSyBTVEVWQU4KK0tST01CSE9MQyBFTUlMCitLUk9NSE9MQyBLQVJMTworS1JPTVBJxIYgTEpJTEpBTkEgUFJPRkVTT1IKK0tST01QScSGIExKVUJJQ0EKK0tST01QScSGIE1JTEFOCitLUk9NUEnEhiBTVEFOS08KK0tST05BVkVURVIgQUxGUkVECitLUk9OScSGIExBWkFSCitLUk9OScSGIE1JTEVOS08KK0tST05KQSBJVkFOCitLUk9OSkEgSVZBTgorS1JPTkpBIE1JTEFOS0EKK0tST1DFoCBISUxEQQorS1JPUEHEjEVLIElWQU4KK0tST1BGIEFOxJBFTEtBCitLUk9QRiBGUkFOSkEKK0tSUEFOIMW9RUxKS08KK0tSUEFOIElWQU4KK0tSUEFOIExKSUxKQU5BCitLUlBBTiBNSVJLTworS1JQQU4gU1RFVkFOCitLUlNNQU5PVknEhiBCT8W9SURBUktBCitLUlNNQU5PVknEhiBCT0dEQU5LQQorS1JTTUFOT1ZJxIYgQlJBTktPCitLUlNNQU5PVknEhiBDVklKQU4KK0tSU01BTk9WScSGIEpPVkFOCitLUlNNQU5PVknEhiBLUlNNQU4gRElQTCBJTkcKK0tSU01BTk9WScSGIExBWkFSCitLUlNNQU5PVknEhiBMSklMSkFOQQorS1JTTUFOT1ZJxIYgTUlMT8WgCitLUlNNQU5PVknEhiBNT03EjElMTworS1JTTUFOT1ZJxIYgT0JSRU4KK0tSU01BTk9WScSGIFNBxaBBCitLUlNNQU5PVknEhiBTTEFWT0pLQQorS1JTTUFOT1ZJxIYgU1JFVEVOCitLUlNNQU5PVknEhiBWQVNBCitLUlNOSUsgSk9OCitLUlNOSUsgTUFSSUpBCitLUlNUQUpJxIYgTUlMT0pJQ0EKK0tSU1RBSknEhiBQRVJLTworS1JTVEFOT1ZJxIYgQ1ZJSk8KK0tSU1RBTk9WScSGIERSQUdPTUlSCitLUlNUQU5PVknEhiBGUkFOSkEKK0tSU1RBTk9WScSGIElWQU5LQQorS1JTVEFOT1ZJxIYgS09TVEEKK0tSU1RBTk9WScSGIE1PTcSMSUxPCitLUlNUQU5PVknEhiBQRVRBUgorS1JTVEVLQU5JxIYgxIxFRE9NSVIKK0tSU1RFS0FOScSGIEFOQQorS1JTVEVLQU5JxIYgS1JJU1RJTkEKK0tSU1RFS0FOScSGIFJBVE9NSVIKK0tSU1RFVlNLSSBEUkFHT1NMQVYKK0tSU1RFVlNLSSBTVEFOSVNMQVYKK0tSU1RJxIYtxaBUSU1BQyBTUEFTRU5JSkEgRFIKK0tSU1RJxIYgxb1BUktPCitLUlNUScSGIMW9SVZBTgorS1JTVEnEhiDFvUlWS08KK0tSU1RJxIYgxb1JVktPCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYtxJBVUsSMSkFOU0tJIFJVxb1FTktBCitLUlNUScSGIEFMRUtTQU5EQVIgRFIKK0tSU1RJxIYgQUxFS1NBTkRBUgorS1JTVEnEhiBBTEVLU0FOREFSCitLUlNUScSGIEFMRUtTQU5EQVIKK0tSU1RJxIYgQU5EUklKQQorS1JTVEnEhiBBTklDQQorS1JTVEnEhiBCT8WgS08KK0tSU1RJxIYgQk/FvUlEQVIKK0tSU1RJxIYgQk/FvUlEQVIKK0tSU1RJxIYgQk/FvUlEQVIKK0tSU1RJxIYgQk9HREFOCitLUlNUScSGIEJPUklWT0oKK0tSU1RJxIYgQlJBTklTTEFWCitLUlNUScSGIEJSQU5JU0xBVgorS1JTVEnEhiBCUkFOSVNMQVYKK0tSU1RJxIYgQlJBTklTTEFWCitLUlNUScSGIEJSQU5JU0xBVgorS1JTVEnEhiBCUkFOSVNMQVYKK0tSU1RJxIYgQlJBTklTTEFWCitLUlNUScSGIEJSQU5LQQorS1JTVEnEhiBCUkFOS0EKK0tSU1RJxIYgQlJBTktPCitLUlNUScSGIERBTklDQQorS1JTVEnEhiBERVNBTktBCitLUlNUScSGIERJTUlUUklKRQorS1JTVEnEhiBET0JSSUxBCitLUlNUScSGIERPQlJJTEEKK0tSU1RJxIYgRE9CUklOS0EKK0tSU1RJxIYgRE9CUk9TTEFWCitLUlNUScSGIERSQUdBTgorS1JTVEnEhiBEUkFHSU5KQQorS1JTVEnEhiBEUkFHT0xKVUIKK0tSU1RJxIYgRFJBR09TTEFWCitLUlNUScSGIERSQUdVVElOCitLUlNUScSGIERVxaBBTiBESVBMIElORworS1JTVEnEhiBEVcWgQU4KK0tSU1RJxIYgRFXFoEtPCitLUlNUScSGIEVURUxLQQorS1JTVEnEhiBFVklDQQorS1JTVEnEhiBHQVZSQQorS1JTVEnEhi1HVU5FSyBNQVJJSkEKK0tSU1RJxIYgSUxJSkEKK0tSU1RJxIYgSVZBTiBEUgorS1JTVEnEhiBKRUxFTkEKK0tSU1RJxIYgSkVMRU5BCitLUlNUScSGIEpPUkRBTgorS1JTVEnEhiBKT1ZBTgorS1JTVEnEhiBKT1ZBTgorS1JTVEnEhiBKT1ZBTgorS1JTVEnEhiBLQU1FTktPCitLUlNUScSGIEtBTUVOS08KK0tSU1RJxIYgS0FUSUNBCitLUlNUScSGIEtBVElDQQorS1JTVEnEhiBLQVRJQ0EKK0tSU1RJxIYgS09STkVMSUpBCitLUlNUScSGIExBWkFSCitLUlNUScSGIExBWkFSCitLUlNUScSGIExKSUxKQU5BCitLUlNUScSGIExKSUxKQU5BCitLUlNUScSGIExKVUJJxaBBCitLUlNUScSGIExKVUJJxaBBCitLUlNUScSGIExKVUJJQ0EKK0tSU1RJxIYgTEpVQklOS0EKK0tSU1RJxIYgTEpVQklTQVYKK0tSU1RJxIYgTEpVQk9NSVIKK0tSU1RJxIYgTEpVQk9NSVIKK0tSU1RJxIYgTEpVQk9NSVIKK0tSU1RJxIYgTEpVQk9NSVIKK0tSU1RJxIYgTEpVQk9NSVIKK0tSU1RJxIYgTUFSSUpBCitLUlNUScSGIE1BUklKQQorS1JTVEnEhiBNQVJJSkEKK0tSU1RJxIYgTUFSS08KK0tSU1RJxIYgTUlMQURJTgorS1JTVEnEhiBNSUxBTgorS1JTVEnEhiBNSUxBTgorS1JTVEnEhiBNSUxBTgorS1JTVEnEhiBNSUxFTktPCitLUlNUScSGIE1JTEVOS08KK0tSU1RJxIYgTUlMSUNBCitLUlNUScSGIE1JTElDQQorS1JTVEnEhiBNSUxJQ0EKK0tSU1RJxIYgTUlMSUNBCitLUlNUScSGIE1JTElDQQorS1JTVEnEhiBNSUxPxaAKK0tSU1RJxIYgTUlMT8WgCitLUlNUScSGIE1JTE9KS08KK0tSU1RJxIYgTUlMT1JBRAorS1JTVEnEhiBNSUxPUkFECitLUlNUScSGIE1JTE9SQUQKK0tSU1RJxIYgTUlMT1JBRAorS1JTVEnEhiBNSUxPVkFOCitLUlNUScSGIE1JTE9WQU4KK0tSU1RJxIYgTUlMT1ZBTgorS1JTVEnEhiBNSU7EjEUgRElQTCBJTkcKK0tSU1RJxIYgTUlPRFJBRworS1JTVEnEhiBNSU9EUkFHCitLUlNUScSGIE1JT0RSQUcKK0tSU1RJxIYgTUlSS08KK0tSU1RJxIYgTUlSS08KK0tSU1RJxIYgTUlST0xKVUIKK0tSU1RJxIYgTUlST0xKVUIKK0tSU1RJxIYgTUlST1NMQVZBCitLUlNUScSGIE1JUk9TTEFWQQorS1JTVEnEhiBNSVJPU0xBVgorS1JTVEnEhiBNSVRBUgorS1JTVEnEhiBOQURBCitLUlNUScSGIE5FQk9KxaBBCitLUlNUScSGIE5FTkFECitLUlNUScSGIE5FTkFECitLUlNUScSGIE5JS09MQQorS1JTVEnEhiBOSUtPTEEKK0tSU1RJxIYgTklLT0xBCitLUlNUScSGIE5PVkFLCitLUlNUScSGIE5PVkFLCitLUlNUScSGIFBFVEFSIERJUEwgSU5HCitLUlNUScSGIFBFVEFSCitLUlNUScSGIFBFVEFSCitLUlNUScSGIFBFVEFSCitLUlNUScSGIFBFVEFSCitLUlNUScSGIFBFVFJVTgorS1JTVEnEhiBSQURJU0FWCitLUlNUScSGIFJBRElWT0oKK0tSU1RJxIYgUkFESVZPSgorS1JTVEnEhiBSQURPSkUKK0tSU1RJxIYgUkFET01JUgorS1JTVEnEhiBSQURPTUlSCitLUlNUScSGIFJBRE9TQVYKK0tSU1RJxIYgUkFET1NMQVYKK0tSU1RJxIYgUkFET1ZBTgorS1JTVEnEhiBSQVRLTworS1JTVEnEhiBSQVRLTworS1JTVEnEhiBTQVZBCitLUlNUScSGIFNBVkVUQQorS1JTVEnEhiBTSU5JxaBBCitLUlNUScSGIFNMQVZJQ0EKK0tSU1RJxIYgU0xPQk9EQU4KK0tSU1RJxIYgU1LEkEFOCitLUlNUScSGIFNSRVRFTgorS1JTVEnEhiBTVEFOS08KK0tSU1RJxIYgU1RBTk9KRQorS1JTVEnEhiBTVEVWQU4KK0tSU1RJxIYgU1RFVkFOCitLUlNUScSGIFNURVZBTgorS1JTVEnEhiBTVEVWQU4KK0tSU1RJxIYgU1RFVkFOCitLUlNUScSGIFNUT0pBTktBCitLUlNUScSGIFNWRVRJU0xBVgorS1JTVEnEhiBTVkVUSVNMQVYKK0tSU1RJxIYgU1ZFVExBTkEKK0tSU1RJxIYgU1ZFVExBTkEKK0tSU1RJxIYgU1ZFVE9aQVIKK0tSU1RJxIYgVElOS0EKK0tSU1RJxIYgVUdMSkXFoEEgRFIKK0tSU1RJxIYgVkFTQSBEUiBMRUtBUgorS1JTVEnEhiBWQVNBCitLUlNUScSGIFZBU0lMSUpFIERJUEwgSU5HCitLUlNUScSGIFZBU0lMSUpFCitLUlNUScSGIFZFTElNSVIKK0tSU1RJxIYgVkVMSktPCitLUlNUScSGIFZFUkEKK0tSU1RJxIYgVkVSQQorS1JTVEnEhiBWRVNFTElOCitLUlNUScSGIFZMQURBCitLUlNUScSGIFZPSklOCitLUlNUScSGLVZSxb1JTkEgQk9TQU5LQQorS1JTVEnEhiBWVUtJQ0EKK0tSU1RJxIYgWk9SQU4KK0tSU1RJxIYgWk9SQU4KK0tSU1RJTiDFvUlWS0EKK0tSU1RJTiBCUkFOS08KK0tSU1RJTiBJVkFOCitLUlNUSU4gSkVMS0EKK0tSU1RJTiBLT1NUQQorS1JTVElOIExBWkFSCitLUlNUSU4gTUxBREVOCitLUlNUSU4gTkFUQcWgQQorS1JTVElOIFBFVEFSCitLUlNUSU4gU0xBVktPCitLUlNUSU4gU1RFVkFOCitLUlNUSU4gU1ZFVE9aQVIKK0tSU1RJTiBWRVJBCitLUlNUSU4gVkxBREFOCitLUlNUSU4gWk9SQU4KK0tSU1RJTknEhiBEUkFHQU4KK0tSU1RPTk/FoEnEhiDFvUlWQU4KK0tSU1RPTk/FoEnEhiBCT1NJTEpLQQorS1JTVE9OT8WgScSGIEpFTEVOQQorS1JTVE9OT8WgScSGIEpPVkFOCitLUlNUT05PxaBJxIYgTEpVQklDQQorS1JTVE9OT8WgScSGIE1JTEFOS0EKK0tSU1RPTk/FoEnEhiBNSUxFTktPCitLUlNUT05PxaBJxIYgTUlMRU5LTworS1JTVE9OT8WgScSGIE1JUk9TTEFWCitLUlNUT05PxaBJxIYgTkFEQQorS1JTVE9OT8WgScSGIE5FU1RPUgorS1JTVE9OT8WgScSGIFBFVEFSCitLUlNUT05PxaBJxIYgUEVUQVIKK0tSU1RPTk/FoEnEhiBTVEVWQU4KK0tSU1RPTk/FoEnEhiBWRVJBCitLUlNUT05PxaBJxIYgVklEQQorS1JTVE9OT8WgScSGIFpMQVRBIERSCitLUlNUT05PxaBJxIYgWk9SQQorS1JTVE9WU0tJIFJBRE9KS0EKK0tSVEVOScSGIEJSQU5LTworS1JURU5JxIYgRE9CUklMQQorS1JURU5JxIYgUEFWTEUKK0tSVElOScSGIEJPUkEKK0tSVElOScSGIERBTkUKK0tSVElOScSGIERBTkUKK0tSVElOScSGIE1JUkpBTkEKK0tSVElOScSGIE1JUktPCitLUlRJTknEhiBNSVJPU0xBVgorS1JUSU5JxIYgTkFEQQorS1JUSU5JxIYgU0FWQQorS1JUSU5JxIYgU01JTEpBTkEKK0tSVElOScSGIFZMQURJTUlSCitLUlXEjEnEjEFOIE1JTEFOCitLUlXFoEtBIMSQT1LEkEUKK0tSVcWgS0EgU1RFVkFOCitLUlXFvUVWScSGIERFSkFOCitLUlXFvUVWScSGIE5FTkFECitLUlXFvUVWScSGIFZMQURJTUlSCitLUlXFvUVWScSGIFpEUkFWS08KK0tSVcW9RVZJxIYgWk9SQU4KK0tSVcW9ScSGIEFOQQorS1JVTEogQlJBTklTTEFWQQorS1JVTEogTUlMQU4KK0tSVU5JxIYgxb1JVkFOCitLUlVOScSGIMW9SVZPUkFECitLUlVOScSGIMSQT1LEkEUKK0tSVU5JxIYgxJBPUsSQRQorS1JVTknEhiDEkE9SxJBFCitLUlVOScSGLUJFTEnEhiBNSUxBTkEKK0tSVU5JxIYgQlJBTktPCitLUlVOScSGIEJSQU5LTworS1JVTknEhiBCUkFOS08KK0tSVU5JxIYgREFSQQorS1JVTknEhiBEUkFHT0xKVUIKK0tSVU5JxIYgRFJBR09NSVIKK0tSVU5JxIYgR1JBRElNSVIKK0tSVU5JxIYgSUxJSkEKK0tSVU5JxIYgSUxPTktBCitLUlVOScSGIEpFTEVOQQorS1JVTknEhiBMSlVCScWgQQorS1JVTknEhiBMSlVCSUNBCitLUlVOScSGIExKVUJPTUlSCitLUlVOScSGIE1JxIZPCitLUlVOScSGIE1JS0EKK0tSVU5JxIYgTUlMQU5LQQorS1JVTknEhiBNSUxBTgorS1JVTknEhiBNSUxPxaAKK0tSVU5JxIYgTk9WQUsKK0tSVU5JxIYgUEFWTEUKK0tSVU5JxIYgUEVSScWgQQorS1JVTknEhiBQTEVNRU5LQQorS1JVTknEhiBSQURPSktBCitLUlVOScSGIFNMT0JPREFOCitLUlVOScSGIFNPRklKQQorS1JVTknEhiBUT8WgSUNBCitLUlVOScSGIFVST8WgCitLUlVOScSGIFZFTEnEjEtPCitLUlVOScSGIFZFUklDQQorS1JVTknEhiBaRFJBVktPCitLUlVQRcW9RVZJxIYgREFSSU5LQQorS1JVUEXFvUVWScSGIFBSVk9TTEFWCitLUlVQTEpBTklOIFNUQU5BCitLUlVQTEpBTklOIFZFU0VMQQorS1JVVEEgQk/FvUFOQQorS1JVVEEgRFJBR0FOCitLUlZBVkFDIEJJU0VSS0EKK0tSVkFWSUNBIERSQcW9RU4KK0tSVkFWSUNBIFRPTUlTTEFWCitLUlZPUEnEhiBPTEdBCitLUlpNQU5PVknEhiBNQVJHQVJFVEEKK0tSWk5BUknEhiBNSUxFCitLUlpOQVJJxIYgVkFMRU5USU5BCitLVcSMIFNMT0JPREFOCitLVcSMRVJBIEFMRUtTQU5EQVIKK0tVxIxFUkEgU1RFVkFOCitLVcSMScSGIE5JS09MQQorS1XEjE1BxaAgSVJFTkEKK0tVxIxNQcWgIE5BVEHFoEEKK0tVxIxNQcWgIE5JS09MQQorS1XEjE5FUiBMQURJU0xBVgorS1XFoEFLT1ZJxIYgU01JTEpBCitLVcWgTEnEhiBNSUxBTgorS1XFoExKQU4gU0xBVktPCitLVcWgTEpJxIYgQk9SSVNMQVYKK0tVxaBMSknEhiBCT1JJU0xBVgorS1XFoExKScSGIEJPUklTCitLVcSGIFNUQU5LQQorS1XFvUFUS08gQU5JQ0EKK0tVxb1BVEtPIEVNSUwKK0tVxb1BVEtPIE1BUlRBCitLVcW9QVRLTyBWTEFESU1JUgorS1XFvUVMS0EgU0lNQQorS1XFvUVUSU4gQk/FvUEKK0tVxb1FVElOIEpFTElTQVZFVEEKK0tVxb1FVElOIE1BUkEKK0tVxb1FVElOIE1JTEFOCitLVcW9RVRJTiBOT1ZBSworS1XFvUVWU0tJIE1JTElWT0pFCitLVcW9ScSGIERSQUdVVElOCitLVcW9ScSGIE1MQURFTgorS1XFvUnEhiBNTEFERU4KK0tVxb1JxIYgUEVUQVIKK0tVQkFOSkkgQU5BCitLVUJBTk9WSSBaTEFUS08KK0tVQkFUIE1JTEFOIERJUEwgSU5HCitLVUJBVCBVUk/FoAorS1VCQVRPVknEhiBBTkEKK0tVQkFUT1ZJxIYgSUxJSkEKK0tVQkXEjEtBIE1JTEFOCitLVUJFVCBNSUxBTgorS1VCScSMRUxBIFBFVEFSCitLVUJJxIxLTyBGRVJFTkMKK0tVQklDQSBTVEpFUEFOCitLVUJJQ0EgVkVSQQorS1VCSUsgRlJBTkNJxaBLQQorS1VCSU5KRUMgSk9TSVAKK0tVQlVSScSGIE1JxIZPCitLVUJVUknEhiBOT1ZLQQorS1VCVVJJxIYgU1ZFVE9aQVIKK0tVQ1VMT1ZJxIYgREFOSUNBCitLVUNVTE9WScSGIFZPSklTTEFWCitLVUNVUkFDIERJTUlUUklKRQorS1VDVVJBQyBNQVJBCitLVUNVUkFDIE5BREXFvURBCitLVUNVUkFDIFNURVZBTgorS1VDVVJTS0kgxJBVUklDQQorS1VDVVJTS0kgRFJBR09NSVIKK0tVQ1VSU0tJIFJBRElTTEFWCitLVURJxIYgTUlMT1NBVkEKK0tVREnEhiBTVEVWQQorS1VEUkEgREFOSUpFTEEKK0tVRFJBIE9MR0EKK0tVRFJBLVpJS09WScSGIExKVUJJQ0EKK0tVRFJJxIYgREVTSU1JUgorS1VHQSBKT1ZBTgorS1VHScSGIElMSUpBCitLVUdJxIYgUkFETUlMQQorS1VHScSGIFNBVktBCitLVUdMSSBJTVJFCitLVUdMSSBKT1NJUAorS1VHTEkgTUlIQUpMTworS1VHTEkgTUlIQUxKCitLVUdMSSBQQVZBTworS1VHTEkgUk/FvUlLQQorS1VHTEkgU1RFVkFOCitLVUhBSkRBIMWgQU5ET1IKK0tVSEFKREEgS1NFTklKQSBNUgorS1VIQUpEQSBWTEFESU1JUiBNUgorS1VIQUpEQSBaTEFUQQorS1VIQVIgSkVMRU5BCitLVUhBUiBKT1ZBTgorS1VIQVIgU0xBVklDQQorS1VKQcSMScSGIERSQUdBTgorS1VKT1ZJxIYgTkVEQQorS1VKT1ZJxIYgU09GSUpBCitLVUpVTkTFvUnEhiBMVUpaQQorS1VKVU5Exb1JxIYgTUlPRFJBRworS1VKVU5Exb1JxIYgVE9NQU5JSkEKK0tVSlVORMW9ScSGIFZFUkEKK0tVS0FWSUNBIEpPUkRBTgorS1VLQVZJQ0EgTUlSS08KK0tVS0FWSUNBIFJVxb1JQ0EKK0tVS0FWU0tJIFBBVkxFCitLVUtJxIYgxb1BUktPCitLVUtJxIYgQlJBTktBCitLVUtJxIYgRFJBR0FOCitLVUtJxIYgR09KS08KK0tVS0nEhiBHT1JEQU5BCitLVUtJxIYgSkVMSUNBCitLVUtJxIYgSkVMS0EKK0tVS0nEhiBNSUxBTgorS1VLScSGIE1JTE9KS0EKK0tVS0nEhiBNSVJKQU5BCitLVUtJxIYgTUlSS08KK0tVS0nEhiBORUJPSsWgQQorS1VLScSGIE5JS09MQQorS1VLScSGIFBFVEFSCitLVUtJxIYgU0xPQk9EQU4KK0tVS0nEhiBTVEVWQU4KK0tVS0nEhiBTVkVUT1pBUgorS1VLScSGIFZFUkEKK0tVS0nEhiBWTEFESU1JUgorS1VLScSGIFpPUkFOCitLVUtJxIYgWk9SQU4KK0tVS0nEhiBaVk9OSU1JUgorS1VLSU4gxb1JVkFOCitLVUtJTiBBTEVLU0FOREFSCitLVUtJTiBERUpBTgorS1VLSU4gU01JTEpLQQorS1VLTEEgSVZBTgorS1VLT8SMIFZJTktPCitLVUtPQkFUIFJBRE9WQU4KK0tVS09MSiBEQU5FCitLVUtPTEogRFJBR0FOCitLVUtPTEogRFXFoEtPCitLVUtPTEogTUlMS0EKK0tVS09MSiBNSVJKQU5BCitLVUtPTEogUkFETUlMQQorS1VLT0xKIFJBSktPCitLVUtPVlNLSSBKT1ZBTgorS1VLUklLQSBCT8WgS08KK0tVS1XEjEtBIEpBTgorS1VLVcSMS0EgTUlIQUpMTworS1VLVUxKIERPQlJJTEEKK0tVS1VST1YgSk9TSUYKK0tVS1VSVVpPVknEhiBKRUxFTkEKK0tVS1VSVVpPVknEhiBWTEFESU1JUgorS1VMxIxBUiBJxaBUVkFOCitLVUxBxIxBTklOIEFOSUNBCitLVUxBxIxBTklOIEJSQU5JU0xBVgorS1VMQcSMQU5JTiBNSUxFTktPCitLVUxBxIxBTklOIE5BREEKK0tVTEHEjEnEhiBaVk9OSU1JUgorS1VMQcSMSU4gxJBVUk8KK0tVTEHEjElOIEJVRElNS0EKK0tVTEHEjElOIERVxaBBTgorS1VMQcSMSU4gU0xBVktPCitLVUxBxIxLSSBNSVRBUgorS1VMQcWgIE1BUktPCitLVUxBxaAgU0xPQk9EQU4KK0tVTEHFoEVWScSGIFpMQVRBCitLVUxBxaBJTk9WScSGIEFOxJBFTEtBCitLVUxBxaBJTk9WScSGIERBTklDQQorS1VMQcWgSU5PVknEhiBEVcWgSUNBCitLVUxBxaBJTk9WScSGIE1JTEFOCitLVUxBxaBJTk9WScSGIE1JTElWT0oKK0tVTEFVWk9WIEFSS0FESUpFCitLVUxBVVpPViBKT1ZBTktBCitLVUxBVVpPViBNSUxFTktPIERSCitLVUxFxaBFVknEhiBPTElWRVJBCitLVUxFxaBFVknEhiBQRVRBUgorS1VMRcWgS08gRFJBR09TTEFWQQorS1VMRU5PVknEhiBBSE1FRAorS1VMRU5PVknEhiBaT1JBTgorS1VMRVZTS0kgS0FUSUNBCitLVUxFVlNLSSBST8W9QQorS1VMRVZTS0kgUk/FvUEKK0tVTEnFoEnEhiBORURBCitLVUxJxaBJxIYgT0xHQQorS1VMScWgScSGIFNMQVZPTEpVQgorS1VMScSGIERBUklOS0EKK0tVTEnEhiBKT1ZBTgorS1VMScSGIEpPVk8KK0tVTEnEhiBMQVpBUgorS1VMScSGIE5FQk9KxaBBCitLVUxJxIYgUkFESVZPSgorS1VMScSGIFZMQURJTUlSCitLVUxJRMW9QU4gRFJBR1VUSU4KK0tVTElExb1BTiBORU1BTkpBCitLVUxJRMW9QU4gVkFTTyBEUgorS1VMSkHEjEEgSUxJSkEKK0tVTEpBxIxBIFBFVEFSCitLVUxKQUsgTUFSSUpBCitLVUxKQU7EjEnEhiBEVcWgQU4KK0tVTEpBTsSMScSGIEpVTEtBCitLVUxKQU7EjEnEhiBNSUxFTkEKK0tVTEpBTsSMScSGIE5JS09MQQorS1VMSkFOxIxJxIYgU0FWTworS1VMSkFOxIxJxIYgVkVSQQorS1VMSkFOSU4gSkFLT1YKK0tVTEpBTktJxIYgTVVSQURJRgorS1VMSkFOU0tJIE9MR0EKK0tVTEpBTlNLSSBTTEFWS08KK0tVTEpJxaAgU0xPQk9EQU4KK0tVTEpJxIYgQklTRVJLQQorS1VMSknEhiBEUkFHT1NMQVYKK0tVTEpJxIYgTEFaQVIKK0tVTEpJxIYgTEpVQk9NSVIKK0tVTEpJxIYgTUlSSkFOQQorS1VMSknEhiBORURFTEpLTworS1VMSknEhiBOSUtPTEEKK0tVTEpJxIYgUEVUQVIKK0tVTEpJxIYgU0FWTworS1VMSknEhi1TTVXEkEEgTUFHREFMRU5BCitLVUxKScSGIFpEUkFWS08KK0tVTEtBIEdSRVRBCitLVUxQSU7EjEVWScSGIMSQT1LEkEUKK0tVTFBJTsSMRVZJxIYgSk9WTworS1VMUElOU0tJIERVxaBBTgorS1VMUElOU0tJIE1JUkpBTkEKK0tVTFBJTlNLSSBTVEVWQU4KK0tVTFBJTlNLSSBWVUpBRElOCitLVU1BTk9WIMW9SVZBTgorS1VNQU5PViBCT8W9SURBUgorS1VNQU5PVknEhiBNSU9EUkFHCitLVU1BWkVDIExBWkEKK0tVTU9WScSGIEJSQU5LQQorS1VNT1ZJxIYgTUlMSUNBCitLVU1PVknEhiBTQVZPCitLVU4gxJBVUkEKK0tVTiBBTEVLU0FOREFSCitLVU4gQkVMQQorS1VOIERBTklDQQorS1VOIEVESVRBCitLVU4gRVJORQorS1VOIExBU0xPCitLVU4gU1RFVkFOCitLVU7EjEFLT1ZBIE1BUklKQQorS1VOQVJBQyBBTklFTEEKK0tVTkRBxIxJTkEgSk9WTworS1VOREHEjElOQSBSQURPVkFOCitLVU5EQcSMSU5BIFNBVk8KK0tVTknEhiDEkE9SxJBFCitLVU5JxIYgR09SREFOQQorS1VOScSGIFZFU0VMSU5LQQorS1VOT1NJxIYgTkVExb1BRAorS1VOT1NJxIYgT1NNQU4KK0tVTk9WQUMgTEpVQk8KK0tVTlNUIElSRU4KK0tVTlNUTUFOIEFOQVNUQVNJSkEKK0tVUEVLIMW9RUxKS0EKK0tVUEVLIFpPUklDQQorS1VQSVJPVknEhiBTT0ZJSkEKK0tVUFJFxaBBSyBEQU5JTE8KK0tVUFJFxaBBSyBWSURBCitLVVBSRcWgQU5JTiBCSUxKQU5BCitLVVBSRcWgQU5JTiBJTElKQQorS1VQUkXFoEFOSU4gTUlMRSBESVBMIElORworS1VQUkXFoEtJIEpPQ0EKK0tVUFJFxaBLSSBWRVJBCitLVVBVU0FSRVZJxIYgQlJBTklTTEFWCitLVVBVU0lOQUMgQlJBTklTTEFWCitLVVBVU0lOQUMgVkVMSktPCitLVVLEjFVCScSGIERSQUdJxIYKK0tVUsSMVUJJxIYgTUVMQU5JSkEKK0tVUsWgVU1PVknEhiBBVkRVTEFICitLVVJBSknEhiBKT1ZBTgorS1VSQU4gSVZBTgorS1VSQU5KSSBKQU4KK0tVUkFOSkkgSkFOCitLVVJCQUxJSkEgxJBPUsSQRQorS1VSQkFMSUpBIERBTklDQQorS1VSQkFMSUpBIEpPVkFOCitLVVJCQUxJSkEgTEFaQVIKK0tVUkJBTElKQSBNSVJKQU5BCitLVVJCQVRGSU5TS0kgRkXEkEEgRElQTCBJTkcKK0tVUkJBVEZJTlNLSSBJVkFOCitLVVJCQVRGSU5TS0kgU0xBVktPCitLVVJCQVRGSU5TS0kgVkxBRElNSVIKK0tVUkJBVFZJTlNLSSBESU5BCitLVVJCQVRWSU5TS0kgSVZBTgorS1VSQkFUVklOU0tJIFNURVZBTgorS1VSQkFUVklOU0tJIFpPUkEKK0tVUkNJTkFLIEVNSUwKK0tVUkNJTkFLIElNUkUKK0tVUkNJTkFLIEpPU0lQCitLVVJDSU5BSyBMQUpPxaAKK0tVUkNJTkFLIFBBVkxFCitLVVJDSU5BSyBTVEVWQU4KK0tVUkNJTkFLIFZFU05BCitLVVJESSBBTUFMSUpBCitLVVJET1ZTS0kgTUlUQVIKK0tVUkRVTEnEhiBNSUxPxaAKK0tVUkXFoEVWScSGIFJBQ0tPCitLVVJFxaBFVknEhiBTQVZPCitLVVJFS0HFoCBNSVRBUgorS1VSRVBBIFZBU0EKK0tVUknFoCDFoFRFRkFOCitLVVJJRMW9QSBCT0dEQU4KK0tVUklExb1BIERVxaBBTgorS1VSSUogVE9NSVNMQVYKK0tVUklKQSBWRUxKS08KK0tVUklLxaBBIEFOVE9OSU5BCitLVVJJTEEgSkFOT8WgCitLVVJJTEnEhiBKT1ZPCitLVVJJTEnEhiBNSUxBTgorS1VSSUxJxIYgTUlMT8WgCitLVVJJTEnEhiBNSVJPU0xBVgorS1VSSU4gxJBPUsSQRQorS1VSSU4gSk9TSVAKK0tVUkpBxIxLSSDFvUlWS08KK0tVUkpBxIxLSSDEkE9SxJBFCitLVVJKQcSMS0kgxJBVUsSQSU5BCitLVVJKQcSMS0kgQU5LSUNBCitLVVJKQcSMS0kgREFOSUNBCitLVVJKQcSMS0kgSk9WQU4KK0tVUkpBxIxLSSBNSUhBSkxPCitLVVJKQcSMS0kgTUlMQU4KK0tVUkpBxIxLSSBNSUxFVkEKK0tVUkpBxIxLSSBNSUxFVkEKK0tVUkpBxIxLSSBNSUxJQ0EKK0tVUkpBxIxLSSBNSUxJVk9KCitLVVJKQcSMS0kgTUlPRFJBRworS1VSSkHEjEtJIE1JUkpBTkEKK0tVUkpBxIxLSSBNSVJKQU5BCitLVVJKQcSMS0kgU1JFRE9KRQorS1VSSkHEjEtJIFNUQU5LTworS1VSSkHEjEtJIFNURVZBTgorS1VSSkHEjEtJIFNWRVRPWkFSCitLVVJKQcSMS0kgWk9SQQorS1VSSkFLT1YgxJBPUsSQRQorS1VSSkFLT1YgREFOSUxPCitLVVJKQUtPViBEUkFHQU4KK0tVUkpBS09WIE1JTEFOCitLVVJKQUtPViBNSUxJVk9KCitLVVJKQUtPViBST0tTQU5EQQorS1VSSkFLT1YgVklLVE9SSUpBCitLVVJTIMSQT1LEkEUKK0tVUlRBIEFaSVMKK0tVUlRFxaAgSkFTTkEKK0tVUlRFxaAgTEFaQVIKK0tVUlRFxaAgTUFSQQorS1VSVEXFoCBTVkVUS08KK0tVUlRFxaBJIEZVQVQKK0tVUlRFxaBJIE5VU1JFVAorS1VSVEXFoEkgWkVOVU4KK0tVUlRJIE1VU1RBRkEKK0tVUlRJIE5FWklSCitLVVJUScWgRVZJxIYgTkFTVUYKK0tVUlRJxIYgQUxFS1NBTkRBUgorS1VSVEnEhiBCUkFOSVNMQVZBCitLVVJUScSGIE1JTE9WQU4KK0tVUlRJTk9WScSGIFBSRURSQUcKK0tVUlRPVknEhiBBTkEKK0tVUlRPVknEhiBJVkFOCitLVVJUVcWgScSGIElWQU5LQQorS1VSVcSMRVYgTUFSSUpBCitLVVJVxIxFViBNSVJKQU5BCitLVVJVxIxFViBTTE9CT0RBTgorS1VSVcSMS0kgS0FNRU5LTworS1VSVcSMS0kgVkxBRElNSVIKK0tVUlXEjEtJIFpMQVRJTUlSCitLVVJVxaBJxIYgQk9STworS1VSVUMgxJBVTEEKK0tVUlVDIMSQVUxBCitLVVJVQyBJR05BQworS1VSVUMgSVJFTkEKK0tVUlVDIEpBTk/FoAorS1VSVUMgSk9WTworS1VSVUMgTEFKT8WgCitLVVJVQyBMQVNMTworS1VSVUMgTkFORE9SCitLVVJVQyBUSUJPUgorS1VSVUMgVklOS0EKK0tVUlVDQSBCT8W9QQorS1VSVUNBIEpPVkFOCitLVVJVQ0nEhiBEUkFHQU4KK0tVUlVDScSGIExKVUJJQ0EKK0tVUlVDScSGIFNJTknFoEEKK0tVUlVDScSGIFZJVE9NSVIKK0tVUlVDSU4gxb1JVkFOQQorS1VSVU5DSSBBTkRSSUpBCitLVVJVTkNJIEpPxb1FRgorS1VSVU5DSSBKT8W9RUYKK0tVUlVOQ0kgTUFSSUpBCitLVVJVWk9WScSGIFRBVEpBTkEKK0tVU0nEhiBTUkVUS08KK0tVU0xJIEZFUkVOQworS1VTTEkgR0VaQQorS1VTTVVLIERBUklOS0EKK0tVU1RJxIYgU09GSUpBCitLVVNUVURJSkEgREFOSUNBCitLVVNUVURJSkEgTUlST1NMQVYKK0tVU1RVRElKQSBTTE9CT0RBTgorS1VTVFVSScSGIE5JS09MQQorS1VTVFVSScSGIFNFTElNSVIKK0tVU1RVUklDQSBIQVNBTgorS1VTVFVSSUNBIE5BWklGCitLVVNUVVJJTiBBTlRVTgorS1VTVFVSSU4gTUlSSkFOQQorS1VTVVJPVknEhiBBTktJQ0EKK0tVVElKRVZBQyBMSlVCSUNBCitLVVRMQcSMQSBNQVJLTworS1VUTEXFoEnEhiBMSlVCScWgQQorS1VUTEXFoEnEhiBMSlVCScWgQQorS1VUUkkgS0FSTE8KK0tVVFJJIEtBUk9MSgorS1VUUkkgU1RFVkFOCitLVVRSScSMS0kgWk9SQU4KK0tVVFVaT1YgTUlMT1JBRAorS1VUVVpPViBNSVJPU0xBVgorS1VWQUxKIFNURVZBTgorS1VWQUxKQSBEUkFHQU4KK0tVVkFMSkEgRFJBR09MSlVCCitLVVZBTEpBIEtBVElDQQorS1VWQUxKQSBPU1RPSkEKK0tVVkVLQUxPVknEhiBSQURPU0xBVgorS1VWRUtBTE9WScSGIFNUUkFJTgorS1VWRUxKScSGIMW9QVJLTworS1VWRUxKScSGIExKSUxKQU5BCitLVVZFTEpJxIYgUkFESVZPSkUKK0tVVkVMSknEhiBSQURPTUFOCitLVVZJWknEhiDFvUlWT0pJTgorS1VWSVpJxIYgxb1JVk9KSU4KK0tVWkVWU0tJIERSQUdBTgorS1VaTUFOIEFOS0EKK0tVWk1BTiBCT0dEQU4KK0tVWk1BTiBCT0dEQU4KK0tVWk1BTiBCT1JJU0xBVgorS1VaTUFOIERJTUlUUklKRQorS1VaTUFOIERSQUdBTgorS1VaTUFOIE1JTEFOCitLVVpNQU4gTUlMT1ZBTgorS1VaTUFOIE1JUktPCitLVVpNQU4gTkFEQQorS1VaTUFOIE5BREEKK0tVWk1BTiBOQURBCitLVVpNQU4gTkFERcW9REEKK0tVWk1BTiBQRVRBUgorS1VaTUFOIFJJU1RPCitLVVpNQU4gU0xBVklDQQorS1VaTUFOxIxFViBBTEVLU0FOREFSCitLVVpNQU7EjEVWIERJTUlUUklKRQorS1VaTUFOxIxFViBEVcWgQU4KK0tVWk1BTsSMRVYgT0xJVkVSQSBEUgorS1VaTUFOxIxFViBUSU1PxaBFTktPCitLVVpNQU5PViBCT1JJU0xBVgorS1VaTUFOT1YgTUFSSUpBCitLVVpNQU5PViBPQlJBRAorS1VaTUFOT1YgT0JSQUQKK0tVWk1BTk9WIFJBRE/FoCBESVBMIElORworS1VaTUFOT1YgUkFET1NMQVYKK0tVWk1BTk9WIFNBVkEKK0tVWk1BTk9WIFNMQVZLTworS1VaTUFOT1YgU1ZFVElTTEFWCitLVVpNQU5PViBUQU5BU0lKRQorS1VaTUFOT1YgWk9SQU4KK0tVWk1BTk9WScSGIMSMRURPTUlSCitLVVpNQU5PVknEhiDFvUlWT0pJTgorS1VaTUFOT1ZJxIYgxJBPUsSQRQorS1VaTUFOT1ZJxIYgxJBVUkEKK0tVWk1BTk9WScSGIEFMRUtTQU5EQVIKK0tVWk1BTk9WScSGIEFOR0VMSU5BCitLVVpNQU5PVknEhiBCT8WgS08KK0tVWk1BTk9WScSGIEJPR0RBTgorS1VaTUFOT1ZJxIYgQk9HREFOCitLVVpNQU5PVknEhiBCT1JJU0xBVgorS1VaTUFOT1ZJxIYgQlJBTklTTEFWQQorS1VaTUFOT1ZJxIYgQlJBTklTTEFWCitLVVpNQU5PVknEhiBEQU5JQ0EKK0tVWk1BTk9WScSGIERBUklOS0EKK0tVWk1BTk9WScSGIERFSkFOCitLVVpNQU5PVknEhiBEUkFHSU5KQQorS1VaTUFOT1ZJxIYgRFJBR09NSVIKK0tVWk1BTk9WScSGIERSQUdVVElOCitLVVpNQU5PVknEhiBEUkFHVVRJTgorS1VaTUFOT1ZJxIYgRFXFoEFOCitLVVpNQU5PVknEhiBEVcWgQU4KK0tVWk1BTk9WScSGIERVxaBBTgorS1VaTUFOT1ZJxIYgRFXFoEtPCitLVVpNQU5PVknEhiBHT1JBTgorS1VaTUFOT1ZJxIYgSkVMRU5BCitLVVpNQU5PVknEhiBKT1ZBTgorS1VaTUFOT1ZJxIYgSk9WQU4KK0tVWk1BTk9WScSGIEtBVEEKK0tVWk1BTk9WScSGIExBWkFSCitLVVpNQU5PVknEhiBMQVpBUgorS1VaTUFOT1ZJxIYgTEFaTworS1VaTUFOT1ZJxIYgTEVOS0EKK0tVWk1BTk9WScSGIExKSUxKQU5BCitLVVpNQU5PVknEhiBMSlVCScWgQQorS1VaTUFOT1ZJxIYgTEpVQklDQQorS1VaTUFOT1ZJxIYgTEpVQklDQQorS1VaTUFOT1ZJxIYgTEpVQklDQQorS1VaTUFOT1ZJxIYgTEpVQk9NSVIKK0tVWk1BTk9WScSGIE1JTEFOCitLVVpNQU5PVknEhiBNSUxBTgorS1VaTUFOT1ZJxIYgTUlMRU5BCitLVVpNQU5PVknEhiBNSUxFTktPCitLVVpNQU5PVknEhiBNSUxFCitLVVpNQU5PVknEhiBNSUxKT0pLTyBESVBMIElORworS1VaTUFOT1ZJxIYgTUlMT8WgCitLVVpNQU5PVknEhiBNSUxPxaAKK0tVWk1BTk9WScSGIE1JTE/FoAorS1VaTUFOT1ZJxIYgTUlMT8WgCitLVVpNQU5PVknEhiBNSU9EUkFHCitLVVpNQU5PVknEhiBNSVJKQU5BCitLVVpNQU5PVknEhiBNTEFERU4KK0tVWk1BTk9WScSGIE5BREEKK0tVWk1BTk9WScSGIE5BREXFvURBCitLVVpNQU5PVknEhiBORU5BRAorS1VaTUFOT1ZJxIYgTkVWRU5BCitLVVpNQU5PVknEhiBOSUtPTEEKK0tVWk1BTk9WScSGIE5JS09MQQorS1VaTUFOT1ZJxIYgUEFKQQorS1VaTUFOT1ZJxIYgUEVUQVIKK0tVWk1BTk9WScSGIFBFVEFSCitLVVpNQU5PVknEhiBQUkVEUkFHCitLVVpNQU5PVknEhiBSQURJVk9KCitLVVpNQU5PVknEhiBSQURJVk9KCitLVVpNQU5PVknEhiBSQURPSktPCitLVVpNQU5PVknEhiBSQURPU0FWCitLVVpNQU5PVknEhiBSQURPU0xBVgorS1VaTUFOT1ZJxIYgUkFKS08KK0tVWk1BTk9WScSGIFNMQVZLTworS1VaTUFOT1ZJxIYgU0xBVktPCitLVVpNQU5PVknEhiBTTE9CT0RBTgorS1VaTUFOT1ZJxIYgU0xPQk9EQU4KK0tVWk1BTk9WScSGIFNMT0JPREFOCitLVVpNQU5PVknEhiBTUE9NRU5LQQorS1VaTUFOT1ZJxIYgU1RPSkFOCitLVVpNQU5PVknEhiBTVE9KQU4KK0tVWk1BTk9WScSGIFRPRE9SCitLVVpNQU5PVknEhiBUT0RPUgorS1VaTUFOT1ZJxIYgVkFTSUxJSkUKK0tVWk1BTk9WScSGIFZBU0lMSUpFCitLVVpNQU5PVknEhiBWRVJBCitLVVpNQU5PVknEhiBWRVJBCitLVVpNQU5PVknEhiBWTEFTVElNSVIKK0tVWk1BTk9WScSGIFZPSklTTEFWCitLVVpNQU5PVknEhiBaRFJBVktPCitLVVpNQU5PVknEhiBaT1JBTgorS1VaTUFOT1ZJxIYgWk9SQQorS1VaTUFOT1ZTS0kgQkxBR09KQQorS1VaTUFOT1ZTS0kgQ1ZFVEEKK0tVWk1BTk9WU0tJIERVxaBBTgorS1VaTUFOT1ZTS0kgTUlMRQorS1VaTUFOT1ZTS0kgUEVSRQorS1VaTUFOT1ZTS0kgUkFET0pLQQorS1VaTUFOT1ZTS0kgVEFTRQorS1VaTUFOT1ZTS0kgVFJBSsSMRQorS1VaTUnEhiBNSUxLQQorS1VaTUnEhiBaVk9OS08KK0tVWk1JTkFDIEJPUklTTEFWCitLVVpNSU5BQyBHT1JEQU5BCitLVVpNSU5BQyBQRVRBUgorS1VaTUlOQUMgUFJFRFJBRworS1VaTUlOQUMgUkFET1NMQVYKK0tWQcWgxIxFViBKT1ZBTgorS1ZBxaDEjEVWIE1JUkEKK0tWQcWgxIxFViBSQURJVk9KCitLVkFJxIYgxJBPUsSQRQorS1ZBScSGIERVxaBBTgorS1ZBScSGIEpFTEVOQQorS1ZBScSGIE1JTEVWQQorS1ZSR0nEhiBCT8WgS08KK0tWUkdJxIYgTUlMQU4KK0tWUkdJxIYgUEVUQVIKK0tWUkdJxIYgUkFET1ZBTgorS1ZSR0nEhiBTQVZPCitLVlJHScSGIFRPTUlTTEFWCitMQcSMQU5TS0kgREVTQU5LQQorTEHEjE9LIEtBUkxPCitMQcSMT0sgS0FST0xKCitMQcWgS09WIElHT1IgRElQTCBJTkcKK0xBxIZBSyDEkFVSQQorTEHEhkFLIE1JSEFMSgorTEHEhkFOU0tJIFZPSklTTEFWCitMQcSGQVJBQyDFvUFSS08KK0xBxIZBUkFDIEJJTEpBTkEKK0xBxIZBUkFDIEJPUklTTEFWCitMQcSGQVJBQyBET0JSSVZPSkUKK0xBxIZBUkFDIEpPVkFOCitMQcSGQVJBQyBNQUtTSU0KK0xBxIZBUkFDIE5JS09MQQorTEHEhkFSQUMgTklLT0xBCitMQcSGQVJBQyBOSUtPTEEKK0xBxIZBUkFDIFRFT0RPUgorTEHEhkFSQUMgVkVSQQorTEHEhkFSQUsgxb1BUktPCitMQcSGQVJBSyBMQVpBUgorTEHEhkFSQUsgTEFaQQorTEHEhkFSQUsgTUlMT8WgCitMQcSGQVJBSyBNTEFERU4KK0xBxIZBUkFLIE9HTkpBTktBCitMQcW9RUdJxIYgTkVWRU5LQQorTEHFvUVUScSGIEFMRUtTQU5EQVIKK0xBxb1FVEnEhiBNQVJJSkEgRFIKK0xBxJBFVkFDIERVxaBBTgorTEHEkEVWScSGIERSQUdBTgorTEHEkEVWScSGIEdPSktPCitMQcSQRVZJxIYgSk9WQU4KK0xBxJBJTk9WScSGIMW9SUtBCitMQcSQSU5PVknEhiBaTEFUS08KK0xBQkHFoCBJVkFOCitMQUJBREkgSk/FvUVGCitMQUJBTiBKVUxLQQorTEFCQU4gTUlSS08KK0xBQkFUIEFOQQorTEFCQVQgQU5LQQorTEFCQVQgSkFOCitMQUJBVCBLVkVUT1NMQVZBCitMQUJBVCBSVcW9RU5BCitMQUJBVCBTVEVWQU4KK0xBQkFUIFZFUkEKK0xBQkFUIFZMQURJTUlSCitMQUJBVCBWTEFESVNMQVYKK0xBQkFWScSGIElWQU4KK0xBQk9WScSGIEJPxb1JREFSCitMQUJPVknEhiBNQU5PSkxPCitMQUJST1ZJxIYgTUlSS08KK0xBQlVET1ZJxIYgQk9SSVMKK0xBQlVET1ZJxIYgSEVMRU5BCitMQUJVRE9WScSGIFJPWkFMSUpBCitMQUJVRE9WScSGIFZMQURJTUlSCitMQUJVUyDEkFVSTworTEFCVVMgQk/FvUlEQVIKK0xBQlVTIEJSQU5LTworTEFCVVMgSUxJSkEKK0xBQlVTIEpPVkFOCitMQUJVUyBMSlVCT01JUgorTEFCVVMgTUFLRURPTktBCitMQUJVUyBNSUxBTgorTEFCVVMgTUlMQU4KK0xBQlVTIE1JTEFOCitMQUJVUyBNSUxBTgorTEFCVVMgTUlMRQorTEFCVVMgTklLT0xBCitMQUJVUyBTTEFWS08KK0xBQ0lLIEpBTk/FoAorTEFDSUsgU0xBVklDQQorTEFDS08gTUlIQUpMTworTEFDS09WScSGIERSQUdJxaBBCitMQUNLT1ZJxIYgSk9TSVAKK0xBQ0tPVknEhiBSQURFCitMQUNLT1ZJxIYgUkFET1ZBTgorTEFDS09WScSGIFNPRklKQQorTEFDS09WScSGIFNUQU5JTUlSCitMQUNLT1ZJxIYgWkxBVEtPCitMQUNLT1ZJxIYgWk9SQU4KK0xBQ01BTk9WScSGIE1JT0RSQUcKK0xBQ01BTk9WScSGIFNMQVZPSktBCitMQURBUiBNSUxPxaAKK0xBREFSIFNURVZBTgorTEFESSBJxaBUVkFOCitMQURJIExBSk/FoAorTEFESSBNQVJJSkEKK0xBREnFoEnEhiBBTlRPTgorTEFEScWgScSGIEdVU1RBVgorTEFEScWgScSGIEpFTElTQVZFVEEKK0xBREnFoEnEhiBKT1NJUAorTEFEScWgScSGIE1JUktPCitMQURJxaBJxIYgTklLT0xBCitMQURJxaBJxIYgU1RFVkFOCitMQURJSyDFoEFORE9SCitMQURJSyBGRVJFTkMKK0xBRElLIEtBVEFMSU4KK0xBRElLIEtBVEFMSU4KK0xBRElLIE1BUkdJVEEKK0xBRElLIE1JUkpBTkEKK0xBRElLQSBCTEHFvQorTEFET0NLSSBBTkRSSUpBCitMQURPTEXFvSBFUsW9RUJFVAorTEFET0xFxb0gTUlMQURJTgorTEFHVU1Exb1JSkEgSEFNSUQKK0xBR1VNRMW9SUpBIE1JTEVOQQorTEFHVU5Exb1JTiBEUkFHQU4KK0xBR1VORMW9SU4gRFJBR0FOCitMQUdVTkTFvUlOIERSQUdBTgorTEFHVU5Exb1JTiBTVkVUT1pBUgorTEFHVU5Exb1JTiBaT1JBTgorTEFIQVJOQVIgTFVDSUpBCitMQUhPxaAgxJBPUsSQRQorTEFIT8WgIEFORFJJSkEKK0xBSE/FoCBJxaBUVkFOCitMQUlOT1ZJxIYgQUxFS1NBCitMQUlOT1ZJxIYgQk9SSVNMQVYKK0xBSU5PVknEhiBSQU5LTworTEFKxaBJxIYgU1RFVkFOCitMQUrFoEnEhiBaT1JLQQorTEFKSCBNQVJJSkEKK0xBSkhUTkVSIEFOVEFMCitMQUpIVE5FUiBGUkFOSkEKK0xBSkhUTkVSIE5JS09MQSBESVBMIElORworTEFKScSGIMWgVEVGS0EKK0xBSknEhiBCUkFOS08KK0xBSknEhiBEUkFHQU4KK0xBSknEhiBEUkFHT0xKVUIKK0xBSknEhiBMSklMSkFOQQorTEFKScSGIE1JUktPCitMQUpJxIYgUkFKS08KK0xBSknEhiBTVEFOQQorTEFKScSGIFpEUkFWS08KK0xBSktPIMWgQU5ET1IKK0xBSktPIEpPU0lQCitMQUpLTyBMQUpPxaAgRElQTCBJTkcKK0xBSktPIE1BUklKQQorTEFKS08gU1RFVkFOCitMQUpLTyBWRVJBCitMQUpPxaAgTEFTTE8KK0xBSlRFUiBFTFpBCitMQUpURVIgR0laRUxBCitMQUpURVIgSVZBTgorTEFKVElIIFNJR0ZSSUQKK0xBS0FUT8WgIEFNQUxJSkEKK0xBS0FUT8WgIEFOQQorTEFLQVRPxaAgQU5EUkHFoAorTEFLQVRPxaAgRFJBR0lDQQorTEFLQVRPxaAgR0laQQorTEFLQVRPxaAgSU1SRQorTEFLQVRPxaAgSU1SRQorTEFLQVRPxaAgSU1SRQorTEFLQVRPxaAgSkFTTUlOS0EKK0xBS0FUT8WgIEpFTEVOQQorTEFLQVRPxaAgTEFKT8WgCitMQUtBVE/FoCBNSUhBSkxPCitMQUtBVE/FoCBNSUxJQ0EKK0xBS0FUT8WgIE5BREEKK0xBS0FUT8WgIFBBVkxFCitMQUtBVE/FoCBTVEVWQU4KK0xBS0FUT8WgIFRJQk9SCitMQUtBVE/FoCBWRVJBCitMQUtBVE/FoCBWSUxNT8WgCitMQUtBVE/FoCBaT0xUQU4KK0xBS0FUT8WgIFpPTFRBTgorTEFLQVRVxaAgQlJBTklTTEFWCitMQUtFVEEgQk/FvU8KK0xBS0VUScSGIExKVUJPTUlSCitMQUtFVEnEhiBNSUxBTgorTEFLRVRJxIYgTUlMSVZPSgorTEFLScSMRVZJxIYgTkFEQQorTEFLScSMRVZJxIYtU1RPSkHEjEnEhiBTTkXFvUFOQQorTEFLScSGIEFOxJBBCitMQUtJxIYgQU7EkEVMS0EKK0xBS0nEhiBCT0dPU0FWCitMQUtJxIYgQlJBTktPIERSIExFS0FSCitMQUtJxIYgQlJBTktPCitMQUtJxIYgQlJBTktPCitMQUtJxIYgREFOSUxPCitMQUtJxIYgSUxJSkEKK0xBS0nEhiBKT0xBTgorTEFLScSGIE1BUktPCitMQUtJxIYgTUlSQQorTEFLScSGIE1JUkpBTkEKK0xBS0nEhiBNTEFERU4KK0xBS0nEhiBNT01JUgorTEFLScSGIE5JS09MQQorTEFLScSGIFJBRElWT0pFCitMQUtJxIYgUkFESVZPSgorTEFLScSGIFJBRElWT0oKK0xBS0nEhiBSQURNSUxBCitMQUtJxIYgUkFKS08KK0xBS0nEhiBTQVZBIERSCitMQUtJxIYgU0xPQk9EQU4KK0xBS0nEhiBTTUlMSkEKK0xBS0nEhiBTUEFTT0pFCitMQUtJxIYgU1LEkEFOCitMQUtJxIYgU1LEkEFOCitMQUtJxIYgU1LEkEFOCitMQUtJxIYgU1RFVkFOCitMQUtJxIYgU1ZFVElTTEFWCitMQUtJxIYgVE9NSVNMQVYKK0xBS0nEhiBWRUxJTUlSCitMQUtJxIYgVkVTTkEKK0xBS0nEhiBWVcSMRVRBCitMQUtJxIYgWk9SSUNBCitMQUtJxIZFVknEhiBNSUxJSkEKK0xBS0nEhkVWScSGIFNWRVRMQU5BCitMQUtJxIZFVknEhiBWQVNPCitMQUtJxIZFVknEhiBWRVNOQQorTEFLScSGRVZJxIYgVlVLU0FOIERSCitMQUtMSUpBIFNURVZBTgorTEFLTyBNQVJJSkEKK0xBS09CUklKQSBEUkFHQU4KK0xBS09CUklKQSBEVcWgQU4KK0xBS09CUklKQSBJTElKQQorTEFLT0JSSUpBIEpFTEVOQQorTEFLT0JSSUpBIE1JTEFOCitMQUtPQlJJSkEgTUlMQU4KK0xBS09CUklKQSBNSUxPxaAKK0xBS09CUklKQSBNSUxPxaAKK0xBS09CUklKQSBOSUtPTEEKK0xBS09WScSGIEJVRElNSVIKK0xBS09WScSGIERVxaBLTworTEFLT1ZJxIYgTUlMScSGCitMQUtPVknEhiBNSUxPUkFECitMQUtPVknEhiBQRVRBUgorTEFLT1ZJxIYgUk9aQUxJSkEKK0xBS09WScSGIFZBU0lMSktBCitMQUxBVE9WScSGIERFU0FOS0EKK0xBTEFUT1ZJxIYgRFJBR1VUSU4KK0xBTEFUT1ZJxIYgU0xPQk9EQU5LQQorTEFMQVRPVknEhiBWQVNJTElKRQorTEFMScSMScSGIFZFTElNSVIKK0xBTEnEhiDFvUlWQQorTEFMScSGIMSQT1LEkEUKK0xBTEnEhiBBTktJQ0EKK0xBTEnEhiBBUktBRElKRQorTEFMScSGIEJPR0RBTgorTEFMScSGIEdMSUdPUklKRQorTEFMScSGIEdPSktPCitMQUxJxIYgR09SREFOQQorTEFMScSGIElLT05JSkEKK0xBTEnEhiBKQUdPREEKK0xBTEnEhiBKVUxJSkFOQQorTEFMScSGIEpVTEtBCitMQUxJxIYgTEpVQk9NSVIKK0xBTEnEhiBNQVJJSkEKK0xBTEnEhiBNSUxBRElOS0EKK0xBTEnEhiBNSUxBTgorTEFMScSGIE1JTElDQQorTEFMScSGIE1JUktPCitMQUxJxIYgTkVOQUQKK0xBTEnEhiBOSUtPTEEKK0xBTEnEhiBSQURPTUlSIERSCitMQUxJxIYgU1JFRE9KRQorTEFMScSGIFRBTUFSQQorTEFMScSGIFRPRE9SCitMQUxJxIYgVUdMSkXFoEEKK0xBTEnEhiBWQVNJTElKRQorTEFMSU4gQUxFS1NBTkRBUgorTEFMSU4gTUlMQU4KK0xBTE/FoEVWScSGIEFMRUtTQU5EQVIKK0xBTE/FoEVWScSGIEFMRUtTQU5EQVIKK0xBTE/FoEVWScSGIERJTUlUUklKRQorTEFMT8WgRVZJxIYgRFXFoEFOCitMQUxPxaBFVknEhiBEVcWgS08KK0xBTE/FoEVWScSGIEZFTUtBCitMQUxPxaBFVknEhiBKRUxJU0FWRVRBCitMQUxPxaBFVknEhiBKT1ZBTgorTEFMT8WgRVZJxIYgS0FUSUNBCitMQUxPxaBFVknEhiBMQVpBUgorTEFMT8WgRVZJxIYgTUFSQQorTEFMT8WgRVZJxIYgTUlLQQorTEFMT8WgRVZJxIYgU1RFVkFOCitMQUxPxaBFVknEhiBTVEVWQQorTEFMT8WgRVZJxIYgVkFTQQorTEFMT8WgRVZJxIYgVkxBRElNSVIKK0xBTE/FoEVWScSGIFZMQURJTUlSCitMQUxPVknEhiBKQU5LTworTEFMT1ZJxIYgTUFSS08KK0xBTE9WScSGIE1JUkpBTkEKK0xBTE9WScSGIE5BREEKK0xBTE9WScSGIFJBRElWT0pFCitMQUxPVknEhiBTVVpBTkEKK0xBTE9WScSGIFZFUkEKK0xBTUJFVEEgUEVLTworTEFNQknEhiBCUkFOSVNMQVYKK0xBTUJJxIYgSk9WTworTEFNQknEhiBPTElWRVJBCitMQU1QUkVUIEtSSVNUSUpBTgorTEFOxIxVxaBLSSBFTUlMS0EKK0xBTkMgRlJBTkpBCitMQU5DIE1BUklKQQorTEFOQ0/FoCBBTkEKK0xBTkNPxaAgTkVOQUQKK0xBTkNPxaAgU1ZFVE9aQVIKK0xBTkNPxaAgVE9NSVNMQVYKK0xBTkRFS0EgQU5UT05JSkUKK0xBTkcgQVRJTEEKK0xBTkcgRFJBR0lDQQorTEFORyBKT1NJUAorTEFORyBNSVJKQU5BCitMQU5HIFZBTEVSSUpBCitMQU5KSSBBTkRSQcWgCitMQU5KSSBTVEVWQU4KK0xBTktPVlNLSSBQRUNPCitMQU5LT1ZTS0kgVE9NxIxFCitMQVDEjEVWScSGIERSQUdJQ0EKK0xBUMSMRVZJxIYgTUlMSUNBCitMQVDEjEVWScSGIE1JTFVUSU4KK0xBUMSMRVZJxIYgUEFKQQorTEFQxIxFVknEhiBWVUtPU0FWQQorTEFQxIxJxIYgTUlMQU4KK0xBUEFEQVQgSE9SVEVOWklKQQorTEFQQURBVCBTT1JJTgorTEFQQURBVCBWQVNJTElKRQorTEFQQUpORSBNSUxBTgorTEFQTyBKT1ZBTgorTEFQVSBBTkRSQcWgCitMQVJLSU4gU1RFVkFOCitMQVNJxIYgVE9NSVNMQVYKK0xBU0nEhiBaVk9OS08KK0xBU0nEhiBaVk9OS08KK0xBU0lDQSBCVURJTUlSCitMQVNJQ0EgRFJBR1VUSU4KK0xBU0lDQSBJTElKQQorTEFTSUNBIE1JTEFOCitMQVNJQ0EgTUlMQU4KK0xBU0lDQSBNSUxFTktPCitMQVNJQ0EgTUlST1NMQVYKK0xBU0lDQSBVUk/FoAorTEFTSUNBIFZFTEpLTworTEFTSUNBIFpEUkFWS08KK0xBU0lDQSBaTEFUQQorTEFTSUNBIFpPUkEKK0xBU0tPViBET0JSRQorTEFTS09WScSGIEJSQU5LQQorTEFTS09WScSGIERBTklMTworTEFTS09WScSGIERSQUdBTgorTEFTTE8gRVRFTEtBCitMQVNMTyBGRVJFTkMKK0xBU0xPIEZSQU5KQQorTEFTTE8gRlJBTkpBCitMQVNMTyBJTE9OQQorTEFTTE8gSk/FvUVGCitMQVNMTyBKT1NJUAorTEFTTE8gSk9WQU4KK0xBU0xPIExBU0xPCitMQVNMTyBNSUtMT8WgCitMQVNMTyBNSUxFTkEKK0xBU0xPIFRJQk9SCitMQVNMTyBWRVJBCitMQVNMT1ZTS0kgVEVSRVpBCitMQVNUScSGIEFMRUtTQU5EQVIKK0xBVEFLIE5BTkRPUgorTEFUQUwgTUFSSkFOCitMQVRBTCBTTEFWSUNBCitMQVRBTCBTVEVWQU4KK0xBVEFMIFZFUkEKK0xBVEFMIFpBR09SS0EKK0xBVEFTIMW9SVZLQQorTEFUQVMgTEFaQVIKK0xBVEFTIE1BUktPCitMQVRBUyBNSUxBRElOCitMQVRBUyBNSUxBTgorTEFUQVMgUEVUQVIKK0xBVEFTIFNBVkEgRFIgU1RPTUFUT0xPRworTEFUQVMgWk9SQQorTEFUScWgS08gVVJPxaAKK0xBVEnEhiBJU0FLCitMQVRJxIYgUkFESVZPSgorTEFUSU7EjEnEhiBCT1JJU0xBVgorTEFUSU7EjEnEhiBEQU5JQ0EKK0xBVElOxIxJxIYgR1JVSkEKK0xBVElOxIxJxIYgTklLT0xBCitMQVRJTsSMScSGIFJVxb1BCitMQVRJTktJxIYgU1RFVkFOCitMQVRJTktJxIYgVklOS0EKK0xBVElOS09WScSGIFJBRE9NSVIKK0xBVElOT1ZJxIYgxb1BUktPCitMQVRJTk9WScSGIMSQVUpBCitMQVRJTk9WScSGIEJPxb1PCitMQVRJTk9WScSGIERSQUdBTgorTEFUSU5PVknEhiBEUkFHQU4KK0xBVElOT1ZJxIYgRVJJS0EKK0xBVElOT1ZJxIYgSUxJSkEKK0xBVElOT1ZJxIYgSk9WQU4KK0xBVElOT1ZJxIYgSk9WQU4KK0xBVElOT1ZJxIYgTEFaQQorTEFUSU5PVknEhiBMSlVCQQorTEFUSU5PVknEhiBNQUNBCitMQVRJTk9WScSGIE1BUklOS08KK0xBVElOT1ZJxIYgTUlMRU5LTworTEFUSU5PVknEhiBNSUxPUkFECitMQVRJTk9WScSGIE1JUktPCitMQVRJTk9WScSGIE5FxJBPCitMQVRJTk9WScSGIE5FREVMSktPCitMQVRJTk9WScSGIE5JS09MQQorTEFUSU5PVknEhiBOSUtPTEEKK0xBVElOT1ZJxIYgUEVUQVIKK0xBVElOT1ZJxIYgUkFET01JUgorTEFUSU5PVknEhiBSQUpLTworTEFUSU5PVknEhiBTQVZPCitMQVRJTk9WScSGIFNMT0JPREFOS0EKK0xBVElOT1ZJxIYgU0xPQk9EQU4KK0xBVElOT1ZJxIYgU0xPQk9EQU4KK0xBVElOT1ZJxIYgU01JTEpBCitMQVRJTk9WScSGIFNWRVRPWkFSCitMQVRJTk9WScSGIFpPUktBCitMQVRLT1ZJxIYgxb1FTEpLTworTEFUS09WScSGIEpPVkFOCitMQVRLT1ZJxIYgSk9WTworTEFUS09WScSGIE1JTEUKK0xBVEtPVknEhiBWVUpPCitMQVRLT1ZTS0kgUklTVE8KK0xBVE8gSkFTTkEKK0xBVE9WTEpFViBaQUdPUktBCitMQVXFoCBESU1JVFJJSkUKK0xBVcWgIFZMQURJTUlSCitMQVXFoEVWIERSQUdBTkEKK0xBVcWgRVYgSk9DQQorTEFVxaBFViBMSlVCSU5LQQorTEFVxaBFViBNSVJKQU5BCitMQVXFoEVWIFRPxaBBCitMQVXFoEVWIFZFTElNSVIKK0xBVcWgRVYgVk9KSVNMQVYKK0xBVcWgRVZJxIYgxb1JVkFOCitMQVXFoEVWScSGIMW9SVZLQQorTEFVxaBFVknEhiDFvUlWS0EKK0xBVcWgRVZJxIYgQlJBTklTTEFWCitMQVXFoEVWScSGIERSQUdPSkUKK0xBVcWgRVZJxIYgRFJBR1VUSU4KK0xBVcWgRVZJxIYgUEFWTEUKK0xBVcWgRVZJxIYgUkFET0pJQ0EKK0xBVcWgRVZJxIYgVkVTRUxJTgorTEFVxaBFVknEhiBaSVRBCitMQVXFoElOIEJSQU5JU0xBVgorTEFVQkVSVCBWTEFESVNMQVZBCitMQVVTIEFOQQorTEFVUyBLQVRBUklOQQorTEFVVEFSRVZJxIYgRFJBR0FOCitMQVVURVJFUiDEkEVOxJBJCitMQVVURVJFUiBMQVNMTworTEFWQcSMIEpPxb1FRgorTEFWQcSMIExBU0xPCitMQVZJxIxLQSBLQVJMTworTEFWUk5JxIYgS1NFTklKQQorTEFWUk5JxIYgS1NFTklKQQorTEFWUk5JxIYgTUlMT8WgCitMQVZSTknEhiBSQURJVk9KCitMQVZSTkpBIExBWkFSCitMQVZSTkpBIE1JTEtBTgorTEFaQSBKT04KK0xBWkEgVEVPRE9SQQorTEFaQU5TS0kgQU5BCitMQVpBTlNLSSBCUkFOSVNMQVYKK0xBWkFOU0tJIEdPUkRBTkEKK0xBWkFOU0tJIEdPUkRBTkEKK0xBWkFSIMSQVUxBCitMQVpBUiBFTEVOQQorTEFaQVIgSlVMSUEKK0xBWkFSIEpVTElKQQorTEFaQVIgS0FUQUxJTgorTEFaQVIgTEFESVNMQVYKK0xBWkFSIFBBVkxFCitMQVpBUiBTSU1BCitMQVpBUiBTVEpFUEFOCitMQVpBUiBWTEFESU1JUgorTEFaQVJFViDEkE9LQQorTEFaQVJFViBBTkEKK0xBWkFSRVYgQU5EUklKQQorTEFaQVJFViBKT1ZBTgorTEFaQVJFViBWRVJBCitMQVpBUkVWScSGIMSMRURBCitMQVpBUkVWScSGIMW9SVZLQQorTEFaQVJFVknEhiDFvUlWT1RBCitMQVpBUkVWScSGIMSQT1LEkEUKK0xBWkFSRVZJxIYgQk/FoEtPCitMQVpBUkVWScSGIEJPUklTTEFWCitMQVpBUkVWScSGIEJSQU5LTworTEFaQVJFVknEhiBCUkFOS08KK0xBWkFSRVZJxIYgREFOSUxPCitMQVpBUkVWScSGIERBUklOS0EKK0xBWkFSRVZJxIYgRElNSVRSSUpFCitMQVpBUkVWScSGIERPQlJPU0FWCitMQVpBUkVWScSGIERSQUdJxaBBCitMQVpBUkVWScSGIERSQUdPTUlSCitMQVpBUkVWScSGIEpBRFZJR0EKK0xBWkFSRVZJxIYgSkVMRU5BCitMQVpBUkVWScSGIEpFTEVOQQorTEFaQVJFVknEhiBMQVpBUgorTEFaQVJFVknEhiBMSlVCT01JUgorTEFaQVJFVknEhiBMSlVCTworTEFaQVJFVknEhiBNQU5EQQorTEFaQVJFVknEhiBNSUxBRElOS0EKK0xBWkFSRVZJxIYgTUlMQU4KK0xBWkFSRVZJxIYgTUlMQU4KK0xBWkFSRVZJxIYgTUlMSVZPSkUKK0xBWkFSRVZJxIYgTUlMT1JBRAorTEFaQVJFVknEhiBNSUxPUkFECitMQVpBUkVWScSGIE1JTFVOCitMQVpBUkVWScSGIE1JTFVUSU4KK0xBWkFSRVZJxIYgTklLT0xBCitMQVpBUkVWScSGIFNBVkEKK0xBWkFSRVZJxIYgU01JTEpBCitMQVpBUkVWScSGIFNUQU5JxaBBCitMQVpBUkVWScSGIFNUQU5PSkUKK0xBWkFSRVZJxIYgU1RFVkFOCitMQVpBUkVWScSGIFNURVZBTgorTEFaQVJFVknEhiBTVkVUSVNMQVYKK0xBWkFSRVZJxIYgVkVMSU1JUgorTEFaQVJFVknEhiBWRVNOQQorTEFaQVJFVknEhiBWSURBTgorTEFaQVJFVknEhiBWTEFESU1JUgorTEFaQVJFVknEhiBWT0pJU0xBVgorTEFaQVJFVknEhiBaT1JBTiBEUiBMRUtBUgorTEFaQVJFVknEhiBaT1JBTgorTEFaQVJFVlNLSSDEkE9SxJBFCitMQVpBUkVWU0tJIERSQUdPTEpVQgorTEFaQVJFVlNLSSBTTEFWS08KK0xBWkFST1YgVkVTRUxJTgorTEFaQVJPViBaT1JBTgorTEFaQVJPVlNLSSBEUkFHQU4KK0xBWkVOREnEhiBMQVpBUgorTEFaRU5EScSGIE5JS09MQQorTEFaScSMScSGIEJSQU5LTworTEFaScSMScSGIFNUQU5JSkEKK0xBWknEhiDFvUFSS08KK0xBWknEhiDFvUlWQU4KK0xBWknEhiDFvUlWQU4KK0xBWknEhiDFvUlWQU4KK0xBWknEhiDFvUlWS08KK0xBWknEhiDFvUlWT0pJTgorTEFaScSGIMW9SVZPUkFECitMQVpJxIYgxJBPUsSQRSBESVBMIElORworTEFaScSGIEFOxJBFTEtBCitMQVpJxIYgQU5EUklKQQorTEFaScSGIEJPxaBLTworTEFaScSGIEJPxb1JREFSCitMQVpJxIYgQlJBTklTTEFWQQorTEFaScSGIEJSQU5JU0xBVkEKK0xBWknEhiBCUkFOSVNMQVYKK0xBWknEhiBCUkFOSVNMQVYKK0xBWknEhiBCUkFOSVNMQVYKK0xBWknEhiBCUkFOS0EgRFIKK0xBWknEhiBCVURJTUlSCitMQVpJxIYgREFNSkFOS0EKK0xBWknEhiBERUpBTiBESVBMIElORworTEFaScSGIERFSkFOCitMQVpJxIYgRFJBR0FOQQorTEFaScSGIERSQUdBTgorTEFaScSGIERSQUdBCitMQVpJxIYgRFJBR0lDQQorTEFaScSGIERSQUdPTEpVQgorTEFaScSGIERSQUdPTUlSCitMQVpJxIYgRFJBR08KK0xBWknEhiBEUkFHVVRJTgorTEFaScSGIERVxaBBTgorTEFaScSGIERVxaBBTgorTEFaScSGIERVxaBBTgorTEFaScSGIERVxaBBTgorTEFaScSGIEVNSUwgRFIgTEVLQVIKK0xBWknEhiBHT0pLTworTEFaScSGIEdPUk9MSlVCCitMQVpJxIYgR1JPWkRBTkEKK0xBWknEhiBJVkFOQQorTEFaScSGIEpFTElTQVZFVEEKK0xBWknEhiBKT0NBCitMQVpJxIYgSk9WQU5LQQorTEFaScSGIEpPVkFOCitMQVpJxIYgSlVMS0EKK0xBWknEhiBLQVRJQ0EKK0xBWknEhiBLQVRJQ0EKK0xBWknEhiBLQVRJQ0EKK0xBWknEhiBLT1NUQURJTgorTEFaScSGIEtPU1RBCitMQVpJxIYgTEFaQVIKK0xBWknEhiBMQVpBUgorTEFaScSGIExKVUJBTgorTEFaScSGIExKVUJJTktBCitMQVpJxIYgTEpVQklTQVZBCitMQVpJxIYgTEpVQk9NSVIKK0xBWknEhiBNQVJJSkEKK0xBWknEhiBNQVJJSkEKK0xBWknEhiBNQVJJTktPCitMQVpJxIYgTUFSVEEKK0xBWknEhiBNSUxBRElOCitMQVpJxIYgTUlMQURJTgorTEFaScSGIE1JTEFESU4KK0xBWknEhiBNSUxBTgorTEFaScSGIE1JTEFOCitMQVpJxIYgTUlMQU4KK0xBWknEhiBNSUxBTgorTEFaScSGIE1JTEVOQQorTEFaScSGIE1JTEVOQQorTEFaScSGIE1JTEVOS08KK0xBWknEhiBNSUxFTktPCitMQVpJxIYgTUlMRVZLQQorTEFaScSGIE1JTElDQQorTEFaScSGIE1JTElDQQorTEFaScSGIE1JTElDQQorTEFaScSGIE1JTElOS08KK0xBWknEhiBNSUxJU0FWIFBST0ZFU09SCitMQVpJxIYgTUlMSVNBVgorTEFaScSGIE1JTElWT0oKK0xBWknEhiBNSUxPxaAKK0xBWknEhiBNSUxPUkFECitMQVpJxIYgTUlPRFJBRworTEFaScSGIE1JUkEKK0xBWknEhiBNSVJKQU5BCitMQVpJxIYgTUlSS08KK0xBWknEhiBNSVJPTEpVQgorTEFaScSGIE1JUk9TTEFWCitMQVpJxIYgTUxBREVOCitMQVpJxIYgTkFEQQorTEFaScSGIE5BREEKK0xBWknEhiBOQURBCitMQVpJxIYgTkFERcW9REEKK0xBWknEhiBOQUpEQU4KK0xBWknEhiBORVZFTkEKK0xBWknEhiBOSUtPTEEgRElQTCBJTkcKK0xBWknEhiBOSUtPTEEKK0xBWknEhiBOSUtPTEEKK0xBWknEhiBOSUtPTEEKK0xBWknEhiBOSUtPTEEKK0xBWknEhiBPQlJFTgorTEFaScSGIFBBSkEKK0xBWknEhiBQRVRBUgorTEFaScSGIFBFVEFSCitMQVpJxIYgUEVUQVIKK0xBWknEhiBQRVRBUgorTEFaScSGIFBJUk/FoEtBCitMQVpJxIYgUElST8WgS0EKK0xBWknEhiBSQURBCitMQVpJxIYgUkFERQorTEFaScSGIFJBREnFoEEKK0xBWknEhiBSQURJVk9KCitMQVpJxIYgUkFETUlMQQorTEFaScSGIFJBRE9KS0EKK0xBWknEhiBSQURPSktPCitMQVpJxIYgUkFET1ZBTgorTEFaScSGIFJBSktPCitMQVpJxIYgUk9ET0xKVUIKK0xBWknEhiBSVcW9QQorTEFaScSGIFNBTkpBCitMQVpJxIYgU0FWQQorTEFaScSGIFNBVkEKK0xBWknEhiBTQVZBCitMQVpJxIYgU0FWQQorTEFaScSGIFNJTUEgRFIKK0xBWknEhiBTTEFWS08KK0xBWknEhiBTTE9CT0RBTgorTEFaScSGIFNMT0JPREFOCitMQVpJxIYgU01JTEpBCitMQVpJxIYgU1JCSVNMQVYKK0xBWknEhiBTVEFOSU1JUgorTEFaScSGIFNUQU5LTworTEFaScSGIFNURVZBTktBCitMQVpJxIYgU1RFVkFOCitMQVpJxIYgU1RFVkFOCitMQVpJxIYgU1RFVkFOCitMQVpJxIYgU1RFVkFOCitMQVpJxIYgU1RPSkFESU4KK0xBWknEhiBTVE9KQU4KK0xBWknEhiBTVkVUT1pBUgorTEFaScSGIFRFT0RPUgorTEFaScSGIFRSQUpLTworTEFaScSGIFZBTEVSSUpBCitMQVpJxIYgVkFTSUxJSkUKK0xBWknEhiBWRUxJTktBCitMQVpJxIYgVkVTRUxJTgorTEFaScSGIFZFU05BCitMQVpJxIYgVkxBRElNSVIKK0xBWknEhiBaT1JBTgorTEFaScSGIFpPUklDQQorTEFaScSGIFpPUklDQQorTEFaSUNBTkkgQUxKVcWgCitMQVpJTiBCT0dEQU4KK0xBWklOIEJSQU5LTworTEFaSU4gR09KS08KK0xBWklOIE1JUk9TTEFWQQorTEFaSU4gTkFUQUxJSkEKK0xBWklOIFNBVkEKK0xBWklOIFNBVkEKK0xBWklOIFNJTknFoEEKK0xBWklOIFNJTknFoEEKK0xBWklOIFNMT0JPREFOCitMQVpJTiBWT0pJTgorTEFaSU4gWk9SSUNBCitMQVpJTklDQSBSQURPSktBCitMQVpPUiBNSVJPTgorTEFaT1IgTklLT0xBCitMQVpPViBUUkFKQU4KK0xBWk9WQSBUUkFKS0EKK0xBWk9WScSGIMSMRURPCitMQVpPVknEhiBCT8WgS08KK0xBWk9WScSGIEJPxb1JREFSCitMQVpPVknEhiBERUpBTiBESVBMIElORworTEFaT1ZJxIYgRFJBR0FOCitMQVpPVknEhiBMQVpBUgorTEFaT1ZJxIYgTEpJTEpBTkEKK0xBWk9WScSGIE1JTEVOVElKRQorTEFaT1ZJxIYgTUlMRVRBCitMQVpPVknEhiBNSUxJQ0EKK0xBWk9WScSGIE1JTE9KSUNBCitMQVpPVknEhiBORU5BRAorTEFaT1ZJxIYgUkFET1NBVgorTEFaT1ZJxIYgU0FWSUNBCitMQVpPVknEhiBTTE9CT0RBTgorTEFaT1ZJxIYgU1RBTktPCitMQVpPVknEhiBTVEVWQU4gUFJPRkVTT1IKK0xBWk9WScSGIFNWRVRJU0xBVgorTEFaT1ZJxIYgVlVKQURJTgorTEFaT1ZJxIYgWk9SQU4KK0xBWk9WScSGIFpPUkFOCitMQVpPVlNLSSBTTEFWxIxPCitMQVpVS0nEhiDEjEVETworTEFaVUtJxIYgQU7EkEEKK0xBWlVLScSGIEpPVk8KK0xBWlVLScSGIEtBxIZBCitMQVpVS0nEhiBNSUxBTgorTEFaVUtJxIYgU0xPQk9EQU4KK0xFxIwgRU5EUkUgRFIKK0xFxIwgRVJJSAorTEXEjEFSIEpPU0lQCitMRcSMQVIgS0FSTE8KK0xFxIxJxIYgxIxFRE9NSVIKK0xFxIxJxIYgRE9CUklMQQorTEXEjEnEhiBET0JST1NBVgorTEXEjEnEhiBHT0pLTworTEXEjEnEhiBNSUxFVkEKK0xFxIxJxIYgTUlMT1ZBTgorTEXEjEnEhiBOQURBCitMRcSMScSGIE5BREEKK0xFxIxJxIYgU0lNTworTEXEjEnEhiBTUEFTT0pFCitMRcSMScSGIFZJRE9TQVZBCitMRcSMScSGIFZMQURJTUlSCitMRcWgxIxFxaBFTiBFRFZBUkQKK0xFxaDEjEXFoEVOIEpFTEVOQQorTEXFoEnEhiDEkFVSQQorTEXFoEnEhiBTVE9KQU4KK0xFxaBLScSGIMSQT1LEkEUKK0xFxaBLScSGIFZPSklTTEFWCitMRcWgS09WIEpPVkFOCitMRcWgS09WIE1JTEFOCitMRcWgS09WIE1JT0RSQUcKK0xFxaBLT1YgT0xHSUNBCitMRcWgS09WScSGIFpMQVRLTworTEXFoE5JSyBaQUdPUktBCitMRcWgVEFSIFNURVZBTgorTEXFoFRBUiBaT1JJQ0EKK0xFxb1BSknEhiBWVUtBRElOCitMRcW9QUtPViDEkFVSxJBJQ0EKK0xFxb1BS09WIE1JTEFOCitMRcW9SU1JUkFDIEFMRUtTQU5EQVIKK0xFxb1JTUlSQUMgQlJBTktJQ0EKK0xFxb1JTUlSQUMgRE9CUklOS0EKK0xFxb1JTUlSQUMgU0xPQk9EQU4KK0xFxb1JTUlSQUMgU0xPQk9EQU4KK0xFxb1JTUlSQUMgU1ZFVExBTkEKK0xFxb1JTUlSQUMgVkxBRElNSVIKK0xFxJBBTkEgSkVMRU5BCitMRcSQQU5BQyDEkFVSxJBJTktBCitMRcSQQU5BQyBCUkFOSVNMQVZBCitMRcSQQU5BQyBEUkFHT01JUgorTEXEkEFOQUMgRU1JTElKQQorTEXEkEFOQUMgR0FWUkEKK0xFxJBBTkFDIEdPUklDQQorTEXEkEFOQUMgSk9WQU4KK0xFxJBBTkFDIE1JTEFOCitMRcSQQU5BQyBTRUtVTEEKK0xFxJBBTkFDIFNFS1VMQQorTEXEkEFOQUMgU0xBVktPCitMRcSQQU5BQyBTVEVWQU4KK0xFxJBBTkFDIFNURVZBTgorTEXEkEFOQUMgVklUT01JUgorTEXEkEFOU0tJIEJSQU5LQQorTEXEkEVOQUMgRFJBR0FOCitMRcSQRU5BQyBOQURBCitMRcSQRU5BQyBTTEFWS08KK0xFxJBFTkFDIFNUQU5JTUlSCitMRcSQRU5BQyBTVFJBSElOSkEKK0xFQkFSIFpMQVRJQ0EKK0xFQkVSIFpMQVRLTworTEVCTCBBUlBBRCBEUiBQUk9GRVNPUgorTEVCT1ZJxIYgTUFSSU5LTworTEVCVVJJxIYgVkFTSUxJSkUKK0xFQ0tJIMSQVUxBCitMRUNLSSBLUknFoFRPRgorTEVDS09WScSGIEVNSUwKK0xFREVOS08gQU5URSBNUgorTEVERVIgRU1JTkEKK0xFREVSIE9MR0EKK0xFR0VOIFNUT0pBTgorTEVHRVRJxIYgQlJBTktBCitMRUhPQ0tJIMWgQU5ET1IKK0xFSE9DS0kgRkVSRU5DCitMRUhPVFNLSSBLQVJMTworTEVIUiBEQVZPUgorTEVJVE5FUiBOSUtPTEEKK0xFS0kgxJBVUkEKK0xFS0kgTUFSSUpBCitMRUtJIFNUSkVQQU4KK0xFS0kgVEVSRVpJSkEKK0xFS0nEhiDFvUlWQURJTgorTEVLScSGIMSQT1LEkElKRQorTEVLScSGIEJPR0RBTgorTEVLScSGIEJSQU5LQQorTEVLScSGIEJSQU5LTworTEVLScSGIERFSkFOCitMRUtJxIYgRFJBR09MSlVCCitMRUtJxIYgRFXFoEFOCitMRUtJxIYgSk9SREFOCitMRUtJxIYgTEpVQk9NSVIKK0xFS0nEhiBMSlVCT01JUgorTEVLScSGIE1JTEFESU4KK0xFS0nEhiBNSUxBTktBCitMRUtJxIYgTkXEkE8KK0xFS0nEhiBOSUtPTEEKK0xFS0nEhiBTSU1FVlVOCitMRUtJxIYgU1RBTktBCitMRUtJxIYgU1RFVkFOCitMRUtJxIYgVEFUSkFOQQorTEVLScSGIFRFT0RPUgorTEVLScSGIFZFU0VMS08KK0xFS0nEhiBaQUdPUktBCitMRUtJxIYgWkRSQVZLTworTEVLSU4gTEpVQklDQQorTEVLSU4gTUlMQU4KK0xFS0lOIE1JTEFOCitMRUtJTiBNSUxBTgorTEVLSU4gWkRSQVZLTworTEVLTyDEkEVSxJAKK0xFS08gQUxFS1NBTkRBUgorTEVLTyBCT1JJU0xBVgorTEVLTyBNTEFERU4KK0xFS09WScSGIERPQlJJTE8KK0xFS09WScSGIERSQUdJxaBBCitMRUtPVknEhiBNSUxPxaAKK0xFS09WScSGIE1JUktPCitMRUtPVknEhiBOT1ZBSworTEVLT1ZJxIYgU0xPQk9EQU5LQQorTEVLT1ZJxIYgVE9NSVNMQVYKK0xFS09WScSGIFZFUklDQQorTEVMRUEgVE9ET1IKK0xFTEVPVknEhiBCT1JPCitMRUxJxIYgxb1FTEpLTworTEVMScSGIE1BSE1VVAorTEVMScSGIE1BUklKQQorTEVMScSGIE1JUlNBTQorTEVMScSGIFpVTVJFVEEKK0xFTElLIEpBTk/FoAorTEVMSUsgSkVORQorTEVMT1ZJxIYgUkFERQorTEVNQUnEhiDFvUVMSktPCitMRU1BScSGIFNPRklKQQorTEVNQUpJxIYgQlJBTktPCitMRU1BSknEhiBDRUNJTElKQQorTEVNQUpJxIYgS0FUSUNBCitMRU1BSknEhiBNQVJJSkEKK0xFTUFKScSGIE1JTEFOCitMRU1BSknEhiBNSUxBTgorTEVNQUpJxIYgTUlST1NMQVYKK0xFTUFKScSGIFJBRE9KSUNBCitMRU1BSknEhiBTTE9CT0RBTgorTEVNQUpJxIYgVkxBRElNSVIKK0xFTUhFIEpFTElTQVZFVEEKK0xFTUnEhiBCT1NBCitMRU1JxIYgRFJBR0lOSkEKK0xFTUnEhiBMQVpBUgorTEVNScSGIE1JTEVOS08KK0xFTUnEhiBORUJPSsWgQQorTEVNScSGIFZMQURJTUlSCitMRU4gUElST8WgS0EKK0xFTsSMQSBBTkRSSUpBCitMRU7EjEEgS0FUQQorTEVOxJBFTCDEkFVSTworTEVOxJBFTCBKT1ZBTgorTEVOxJBFTCBKT1ZBTgorTEVOxJBFTCBLQVJPTEoKK0xFTsSQRUwgTUlIQUpMTworTEVOQVJEIEFSUEFECitMRU5BUkQgUEVUQVIKK0xFTkFSVCBLQVRJQ0EKK0xFTkFSVEnEhiDEkE9SxJBFCitMRU5BVE9WIERVxaBBTgorTEVOREnEhiBKT1NJUAorTEVORFZBSkkgQU5EUklKQQorTEVORFZBSkkgSk/FvUVGCitMRU5EVkFKSSBMSklMSkFOQQorTEVORVIgQU5EUkHFoAorTEVORVIgREXFvUUKK0xFTkVSVCBBTlRBTAorTEVORVJUIFBFVEFSIERSIERPQ0VOVAorTEVORVJUIFNURVZBTgorTEVOSEFSRCBKQU5PxaAKK0xFTktFxaAgSk9WQU4KK0xFTktFxaAgTEFTTE8KK0xFT1ZBQyBNSUxJVk9KRQorTEVPVkFDIFZVS0FESU4KK0xFUMSMRVZJxIYgTUlMRVRBCitMRVDFoEFOT1ZJxIYgTEFaQVIgRFIgTEVLQVIKK0xFUMWgScSGIERSQUdJQ0EKK0xFUEFSIMWgQU5ET1IKK0xFUEFSIEpFTElDQQorTEVQQVIgTEFESVNMQVYKK0xFUEXFoCBMQURJU0xBVgorTEVQRcWgIFRJQk9SIERSIFBST0YKK0xFUEhBRlQgUEFMCitMRVBJUiBBTsSQRUxLQQorTEVQSVIgQk9TSUxKS0EKK0xFUElSIE1JTE9SQUQKK0xFUElSIFZFTElNSVIKK0xFUE/FoEEgUlVET0xGCitMRVBPSkVWIEJSQU5LTworTEVQT0pFViBTQVZBCitMRVBPSkVWIFZBU0lMSUpFCitMRVBPSkVWScSGIMW9SVZPUkFECitMRVBPSkVWScSGIFNUQU5LTworTEVQT1JJUyBKQU4KK0xFUE9UScSGIMW9SVZBTgorTEVQT1RJxIYgTUlMRU5LTworTEVQT1RJxIYgTklLT0xBCitMRVBPVknEhiBNSUtBCitMRVBVxaBBIFpERU5LTworTEVSIElWQU4KK0xFUknEhiBFUsW9RUJFVAorTEVSSUsgQU5EUkHFoAorTEVSSUsgScWgVFZBTgorTEVSSUsgTUlLTE/FoAorTEVSSU5DIEFOSUtPCitMRVJJTkMgRFJBR09TTEFWCitMRVJJTkMgSkFOT8WgCitMRVJJTkMgS0FSTE8KK0xFUklOQyBLQVRBTElOCitMRVJJTkMgTEFTTE8KK0xFUklOQyBMQVNMTworTEVSSU5DIExFTworTEVSSU5DIExFTworTEVSTyBCT8W9SURBUgorTEVSTyBWTEFESU1JUgorTEVTS09WQUMgxJBPUsSQRQorTEVTS09WQUMgRFJBR0FOCitMRVNLT1ZBQyBMSlVCSUNBCitMRVNLT1ZBQyBNSUxBTgorTEVTS09WQUMgTUlMQU4KK0xFU0tPVkFDIE1JTEVUQQorTEVTS09WQUMgTUxBREVOIFBST0ZFU09SCitMRVNLT1ZBQyBSQURPTUlSCitMRVNLT1ZBQyBTVEFOS0EKK0xFU0tPVkFDIFZMQURJTUlSIERSCitMRVNLT1ZBQyBWT0pJU0xBVgorTEVUQUpFViBBTEVLU0FOREFSCitMRVRBSkVWIEFMRUtTQU5EQVIKK0xFVEFKRVYgTUlIQUpMTworTEVUQUpFViBWTEFESU1JUgorTEVUScSGIMSMRURPCitMRVRJxIYgxb1BUktPCitMRVRJxIYgxb1JVkEKK0xFVEnEhiDFvUlWS08gRElQTCBJTkcKK0xFVEnEhiDEkE9LTworTEVUScSGIMSQT1LEkEUKK0xFVEnEhiDEkE9SxJBFCitMRVRJxIYgxJBPUsSQRQorTEVUScSGIMSQT1LEkEUKK0xFVEnEhiDEkE9SxJBFCitMRVRJxIYgQU5JQ0EKK0xFVEnEhiBBTklDQQorTEVUScSGIEFSScWgS08KK0xFVEnEhiBCT0dEQU4KK0xFVEnEhiBCT1JJVk9KCitMRVRJxIYgQlJBTklTTEFWCitMRVRJxIYgQlJBTklTTEFWCitMRVRJxIYgQlJBTktBCitMRVRJxIYgQlJBTktPCitMRVRJxIYgREFSSU5LQQorTEVUScSGIERSQUdBTgorTEVUScSGIERSQUdJxaBBCitMRVRJxIYgRFJBR0lDQQorTEVUScSGIERVxaBBTgorTEVUScSGIERVxaBBTgorTEVUScSGIEdBVlJBCitMRVRJxIYgR09KS08KK0xFVEnEhiBHT1JEQU5BIERSCitMRVRJxIYgSVZBTgorTEVUScSGIEpPVkFOS0EKK0xFVEnEhiBKT1ZBTgorTEVUScSGIEtPU1RBCitMRVRJxIYgTEFaQVIKK0xFVEnEhiBMQVpBUgorTEVUScSGIExBWkFSCitMRVRJxIYgTEpVQknFoEEKK0xFVEnEhiBMSlVCSUNBCitMRVRJxIYgTUFSSUNBCitMRVRJxIYgTUFSSUpBCitMRVRJxIYgTUFSSUpBCitMRVRJxIYgTUFSSU5LTworTEVUScSGIE1JTEFOCitMRVRJxIYgTUlMQU4KK0xFVEnEhiBNSUxBTgorTEVUScSGIE1JTEFOCitMRVRJxIYgTUlMSUNBCitMRVRJxIYgTUlMSUNBCitMRVRJxIYgTUlMSUNBCitMRVRJxIYgTUlMT1JBRAorTEVUScSGIE1JTE9SQUQKK0xFVEnEhiBNSUxPUkFECitMRVRJxIYgTUlMT1ZBTgorTEVUScSGIE1JT0RSQUcKK0xFVEnEhiBNSVJPU0xBVgorTEVUScSGIE1JUk9TTEFWCitMRVRJxIYgTkVOQUQKK0xFVEnEhiBORVZFTkEKK0xFVEnEhiBPTEdBCitMRVRJxIYgT0xHQQorTEVUScSGIE9MR0lDQQorTEVUScSGIFBFUkEKK0xFVEnEhiBSQURBCitMRVRJxIYgUkFERQorTEVUScSGIFJBRE1JTEEKK0xFVEnEhiBTQVZBCitMRVRJxIYgU0FWQQorTEVUScSGIFNJTUtBCitMRVRJxIYgU0xPQk9EQU4KK0xFVEnEhiBTVEVWQU4KK0xFVEnEhiBTVEVWQU4KK0xFVEnEhiBTVEVWQU4KK0xFVEnEhiBTVE9KQU4gTEVLQVIKK0xFVEnEhiBTVkVUSVNMQVYKK0xFVEnEhiBTVkVUT1pBUgorTEVUScSGIFRPRE9SCitMRVRJxIYgVkVSQQorTEVUScSGIFZFU05BCitMRVRJxIYgVklEQQorTEVUScSGIFZMQURJTUlSCitMRVRJxIYgVkxBRElTTEFWQQorTEVUScSGIFpEUkFWS08KK0xFVEnEhiBaT1JBTgorTEVUScSGIFpPUkFOCitMRVRJxIYgWk9SQU4KK0xFVEnEhiBaT1JLQQorTEVUSUNBIElWQU5BCitMRVRJQ0EgTUlMQU4KK0xFVElDQSBUT01JU0xBVgorTEVUTyBSVcW9SUNBCitMRVRPTkFJIEpBTk/FoAorTEVUT05BSSBMQVNMTworTEVWQSBJTElOS0EKK0xFVkFJIEdBQk9SCitMRVZBSSBLQVRBTElOCitMRVZBSSBOQU5ET1IKK0xFVkFJIFNURVZBTgorTEVWQUpBQyBWRVJBCitMRVZBS09WIE1BUkEKK0xFVkFLT1YgU0xPQk9EQU4KK0xFVkFLT1YgVk9KSVNMQVYKK0xFVkFSU0tJIE1JSEFKTE8KK0xFVkFUScSGIE1BVElKQQorTEVWQVRJxIYgTUlMS0EKK0xFVkFUScSGIE1JTEtJQ0EKK0xFVkVOU0tJIFRBREVKCitMRVZJIEdPUkFOCitMRVZJIExFT04KK0xFVkkgVklLVE9SCitMRVZJxIYgTEpVQklOS08KK0xFVk5BSknEhiBEUkFHQU4KK0xFVk5BSknEhiBNSUxLQQorTEVWTkFKScSGIE1PTcSMSUxPCitMRVpFxIxFViBTSU5JxaBBCitMScSMQU5JTiBEUkFHQU4KK0xJxIxBTklOIE1BUklKQQorTEnEjEFOSU4gU0xBVktPCitMScSMRU4gSE9USU1JUgorTEnEjEVOIEpPU0lQIERJUEwgSU5HCitMScSMRU4gTEpVRE1JTEEKK0xJxIxJTkEgxJBPUsSQRQorTEnEjElOQSBCUkFOS0lDQQorTEnEjElOQSBEQU5JTE8KK0xJxIxJTkEgRE1JVEFSCitMScSMSU5BIERSQUdPCitMScSMSU5BIERVxaBBTgorTEnEjElOQSBMVUtBCitMScSMSU5BIE1BUklKQQorTEnEjElOQSBNSUxBTktBCitMScSMSU5BIE1JTEFOCitMScSMSU5BIE1JTEUKK0xJxIxJTkEgUFJFRFJBRworTEnEjElOQSBSQURFCitMScSMSU5BIFZFTElCT1IKK0xJxIxJTkEgWk9SQU4KK0xJxIxJTkFSIERSQUdBTgorTEnEjElOQVIgTkVERUxKS08KK0xJxIxJTkFSIFNMQVZLTworTEnEjElOQVIgU1RBTktPCitMScSMSU5JxIYgRFXFoEFOCitMScSMSU5JxIYgTkFEQQorTEnFoMSMScSGIFZFTElOS0EKK0xJxaBJxIYgxJBVUsSQSU5LQQorTEnFoEnEhiBNQVJJQ0EKK0xJxaBLT1ZJxIYgTUlST1NMQVYKK0xJxaBLT1ZJxIYgTUlST1NMQVYKK0xJQkVSIFNURVZBTgorTElCUknEhiBJVkFOCitMSUJSScSGIElWQU4KK0xJQlJJxIYgTUFSSUpBTgorTElETE9GIFBJUk/FoEtBCitMSURMT0YgUlVET0xGCitMSURMT0YgWk9MVEFOCitMSUhURU5UQUwgQU5UQUwKK0xJSFRFTlRBTCBFTElaQUJFVEEKK0xJSFZBUsSMRUsgQU5EUklKQQorTElLQVZFQyBKQVJPTUlSCitMSUtBVkVDIEtBUkxPIERJUEwgSU5HCitMSUtJxIYgQk9SSVNMQVYKK0xJS0nEhiBCVURJU0xBVgorTElLT0RSScSGIE1JTE9WQU4KK0xJTMSMRVYgREFSSU5LQQorTElMSSBWRVJBCitMSUxJxIYgxJBPUsSQRQorTElMScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK0xJTEnEhiBNQVJJSkFOQQorTElMScSGIE1JTEVOQQorTElMScSGIE1JT0RSQUcKK0xJTEnEhiBTUkJJU0xBVgorTElMScSGIFRBVEpBTkEKK0xJTEnEhiBWRUxJTUlSCitMSU1BTkkgxaBBxIZJUgorTElNQU5JIE1FTUnFoAorTElNQU5JIE5BWklGCitMSU1BTk9WScSGIE5BWklGCitMSU1BTk9WU0tJIElCUkFISU0KK0xJTUFOT1ZTS0kgTVVTQUZFVAorTElNQk9DS0kgUEVUQVIKK0xJTUJVUkdFUiBKT8W9RUYKK0xJTkRFTUFOIEpFTEVOQQorTElOREVNQU4gUlVET0xGCitMSU5ETkVSIE1BUkdJVAorTElOScSGIERSQUdBTgorTElOSkFLIERSQUdPTUlSCitMSU5LTyBLT0xPTUFOCitMSVBBSSBLT1JORUwKK0xJUEFOT1ZJxIYgR09KS08KK0xJUE5JxIxLSSBaT1JJQ0EKK0xJUE9UScSGIFBFVEFSCitMSVBPVkFDIERVxaBBTgorTElQT1ZBQyBNQVRJSkEKK0xJU0nEjElOIE5BREEKK0xJU0nEjElOIFRPTUlTTEFWCitMSVNJxIYgTUFSSUNBCitMSVNJQ0EgTUlIQUpMTworTElTSUNBIE1JSEFKTE8KK0xJU0lDQSBNSUxPxaAgQURWT0tBVAorTElTT1YgS0FUSUNBCitMSVNPViBNSUxJTUlSCitMSVNPViBNSVJLTworTElTT1ZBQyBaT1JBTgorTElTVUwgQUxFS1NBTkRBUgorTElTVUwgTUlMS0EKK0xJU1VMT1YgT0xHQQorTElTVUxPViBSQVRPTUlSCitMSVNVTE9WIFpPUkFOCitMSVRBVlNLSSBWTEFESU1JUgorTElUTkVSIEpPVkFOCitMSVRSScSMScSGIEdBVlJBCitMSVRSScSMSU4gQk9HREFOCitMSVRSScSMSU4gR0VOQQorTElUUknEjElOLVZFQkVSIEJPR0RBTktBCitMSVRSScSMSU4gVkVMSU1JUgorTElUVkpBSyBQQVZMRQorTElUVkpBSyBWTEFESU1JUgorTElWQURBIE1JTEFOCitMSVZBREEgTUlMT8WgCitMSVZBSkEgSk9aTworTElWQUpBIEpVUkUKK0xJWkFUT1ZJxIYgQlJBTktPCitMSkHEjEVWScSGIEJPxb1JREFSCitMSkFKScSGIFRBSVAKK0xKQUxKScSGIMSQT1LEkEUKK0xKQVRJRkkgS0FEUkkKK0xKQVZST8WgS0EgUEFWRUwKK0xKQVZST8WgS0EgUEFWRUwKK0xKRcWgRVZJxIYgTEpJTEpBTkEgRFIKK0xKRcWgRVZJxIYgTUFSSUpBCitMSkXFoE5KQUsgTUlST0xKVUIKK0xKRcWgTkpBSyBNT03EjElMTworTEpFTEpBSyBNRUhPCitMSkVQT0pFVknEhiBTVEVWQU4KK0xKSUtBUiBFVkdFTklKRQorTEpJS0FSIE1JSEFKTE8gRElQTCBJTkcKK0xKSUtBUiBWRVJPTkEKK0xKSUtBUiBWTEFESU1JUiBMRUtBUgorTEpJTEpBSyBMSklMSkFOQQorTEpJTEpBSyBNSUxBTgorTEpJTEpBSyBNSUxBTgorTEpJTEpBSyBNSUxFTktPCitMSklMSkFLIE1JTE9SQUQKK0xKSUxKQUsgTUlPRFJBRworTEpJTEpBSyBNSVJLTworTEpJTEpBSyBNSVJPU0xBVgorTEpJTEpBSyBOQURBCitMSklMSkFLIE5BREXFvURBCitMSklMSkFLIFBBSk8KK0xKSUxKQUsgU0FWQQorTEpJTEpBSyBTTEFWS08KK0xKSUxKQUsgVkxBRElNSVIKK0xKSUxKQUsgVkxBRE8KK0xKVcWgVElOQSDFvUlWQU4KK0xKVcWgVElOQSDEkE9SxJBFCitMSlXFoFRJTkEgSkVMRU5BCitMSlXFoFRJTkEgTEpVQklDQQorTEpVxaBUSU5BIE1JTEFOCitMSlXFoFRJTkEgTUlMQU4KK0xKVcWgVElOQSBNSUxPVkFOCitMSlXFoFRJTkEgTklLT0xBCitMSlXFoFRJTkEgT0xHQQorTEpVxaBUSU5BIFNPRklKQQorTEpVxaBUSU5BIFZPSktBCitMSlXFoFRJTk9WIE5BREEKK0xKVUJBxaDEjElLIEFOVE9OCitMSlVCQU5JxIYgTUFSQQorTEpVQkFOT1ZJxIYgTUlMRU5LTworTEpVQkFOT1ZJxIYgUkFESVNMQVYKK0xKVUJFTktPVknEhiBNSUxPVkFOCitMSlVCRU5LT1ZJxIYgUEVUQVIKK0xKVUJFTktPVknEhiBQRVRBUgorTEpVQknEjEnEhiDFvUFSS08KK0xKVUJJxIxJxIYgxb1BUktPCitMSlVCScSMScSGIMW9SVZLQQorTEpVQknEjEnEhiDEkFVSxJBJTktBCitMSlVCScSMScSGIEJMQcW9TworTEpVQknEjEnEhiBCT1JJU0xBVgorTEpVQknEjEnEhiBEQU5LTworTEpVQknEjEnEhiBEQVJBCitMSlVCScSMScSGIERSQUdVVElOCitMSlVCScSMScSGIEpPVklDQQorTEpVQknEjEnEhiBMQVpBUgorTEpVQknEjEnEhiBMVUtBCitMSlVCScSMScSGIE1BUklKQU4KK0xKVUJJxIxJxIYgTUFSSU5BCitMSlVCScSMScSGIE1JSEFKTE8KK0xKVUJJxIxJxIYgTUlMT8WgIExPS0FMCitMSlVCScSMScSGIE1JTE/FoAorTEpVQknEjEnEhiBNSVJPU0xBVkEKK0xKVUJJxIxJxIYgTUlST1NMQVYKK0xKVUJJxIxJxIYgTkFEQQorTEpVQknEjEnEhiBOQURBCitMSlVCScSMScSGIE5FVkVOS0EKK0xKVUJJxIxJxIYgTklLT0xBCitMSlVCScSMScSGIFBFVEFSCitMSlVCScSMScSGIFBFVEFSCitMSlVCScSMScSGIFJBRE9TTEFWCitMSlVCScSMScSGIFJBRE9TTEFWCitMSlVCScSMScSGIFJBVEtPCitMSlVCScSMScSGIFJFTEpBCitMSlVCScSMScSGIFJVRE9MRgorTEpVQknEjEnEhiBTTE9CT0RBTgorTEpVQknEjEnEhiBTVEFOS08KK0xKVUJJxIxJxIYgU1RFVkFOCitMSlVCScSMScSGIFNVWkFOQQorTEpVQknEjEnEhiBUQUxJTktBCitMSlVCScSMScSGIFZMQURJTUlSCitMSlVCScSMScSGIFpPUkEKK0xKVUJJxaBFVknEhiBNSUxPxaAKK0xKVUJJxaBJxIYgQlJBTklTTEFWCitMSlVCScWgScSGIE1JTEFOS08KK0xKVUJJxaBJxIYgUEVUQVIKK0xKVUJJxaBJxIYgU1VaQU5BCitMSlVCScSGIEFOxJBFTEtBCitMSlVCScSGIEFORFJJSkEKK0xKVUJJxIYgSVZBTgorTEpVQknEhiBKRUxFTkEKK0xKVUJJxIYgTUlSSkFOQQorTEpVQknEhiBOQVRBTElKQQorTEpVQknEhiBQRVJPCitMSlVCScSGIFJBSktPCitMSlVCSUJSQVRJxIYgRURPCitMSlVCSUJSQVRJxIYgTEVPCitMSlVCSU5BQyBNSUxBTktBCitMSlVCSU5LT1ZJxIYgQUxFS1NBTkRSQQorTEpVQklOS09WScSGIEJPR09MSlVCCitMSlVCSU5LT1ZJxIYgTEVOS0EKK0xKVUJJTktPVknEhiBNQVJJSkEKK0xKVUJJTktPVknEhiBNSUxBTktPCitMSlVCSU5LT1ZJxIYgTUlMQU4KK0xKVUJJTktPVknEhiBNSUxPUkFECitMSlVCSU5LT1ZJxIYgUEFWTEUKK0xKVUJJTktPVknEhiBTQVZBCitMSlVCSU5LT1ZJxIYgU1RFVkFOCitMSlVCSU5LT1ZJxIYgVkVMSU1JUgorTEpVQklTQVZMSkVWScSGIERBTklDQQorTEpVQklTQVZMSkVWScSGIE1JxaBBCitMSlVCSVNBVkxKRVZJxIYgTUlMQU4KK0xKVUJJU0FWTEpFVknEhiBNSUxJQ0EKK0xKVUJPSkEgRFJFTktBCitMSlVCT0pBIE1MQURFTgorTEpVQk9KQSBTSUxWSUpBCitMSlVCT0pFViBCSUxKQU5BCitMSlVCT0pFViBJVkFOCitMSlVCT0pFViBKRUxFTkEKK0xKVUJPSkVWIExBWkFSCitMSlVCT0pFViBNQUpBCitMSlVCT0pFViBQRVRBUiBNUgorTEpVQk9KRVYgUkFKS08KK0xKVUJPSkVWScSGIMSMRURPTUlSCitMSlVCT0pFVknEhiBBTsSQRUxJSkEKK0xKVUJPSkVWScSGIEJPUklTTEFWCitMSlVCT0pFVknEhiBCUkFOS08KK0xKVUJPSkVWScSGIERFU0lNSVIKK0xKVUJPSkVWScSGIERSQUdJQ0EKK0xKVUJPSkVWScSGIElMSUpBCitMSlVCT0pFVknEhiBKT1ZBTgorTEpVQk9KRVZJxIYgSlVMS0EKK0xKVUJPSkVWScSGIEtBVElDQQorTEpVQk9KRVZJxIYgS09TVEEKK0xKVUJPSkVWScSGIE1BUktPCitMSlVCT0pFVknEhiBNQVJLTworTEpVQk9KRVZJxIYgTUlIQUpMTworTEpVQk9KRVZJxIYgTUlMRU5BCitMSlVCT0pFVknEhiBNSUxJQ0EKK0xKVUJPSkVWScSGIE1JUktPCitMSlVCT0pFVknEhiBPU1RPSkEKK0xKVUJPSkVWScSGIFBFVEFSCitMSlVCT0pFVknEhiBSVcW9QQorTEpVQk9KRVZJxIYgUlXFvUlDQQorTEpVQk9KRVZJxIYgU0xBVktPCitMSlVCT0pFVknEhiBTTE9CT0RBTgorTEpVQk9KRVZJxIYgU1RFVkFOCitMSlVCT0pFVknEhiBUT0RPUgorTEpVQk9KRVZJxIYgVkVMSktPCitMSlVCT0pFVknEhiBWTEFESU1JUgorTEpVQk9KRVZJxIYgVkxBRElNSVIKK0xKVUJPSkVWScSGIFZPSklTTEFWCitMSlVCT1RJTiBKRUxFTkEKK0xKVUJPVElOIFJBRE9TTEFWCitMSlVCT1RJTkEtQlJLScSGIFJBSk5BCitMSlVCT1ZJxIYgTUFSSU5LTworTEpVQlXFoMSMSUsgUEVUQVIKK0xKVUtPVsSMQU5JTiBNSVJKQU5BCitMSlVLT1bEjEFOSU4gWk9SSUNBCitMSlVNT8W9RVZTS0kgSkVMRU5BCitMSlVNT8W9RVZTS0kgTUFSSUpBCitMSlVNT1ZJxIYgREFOSUNBCitMSlVUScSGIFNUQU5JS0EKK0xKVVRWSSBSQURJVk9KCitMT8SMS0kgSkVMSVNBVkVUQQorTE/FoEnEhiBNSUxPUkFECitMT8WgScSGIE1JTE9SQUQKK0xPxaBJxIYgTUlUUkEKK0xPxaBPTkMgSEVOUklKRVRFCitMT0JPREEgQU5UVU4KK0xPQk9EQSBTVEVWQU4KK0xPQyBBTkRSQcWgCitMT0MgSk/FvUVGCitMT0NJIEnFoFRWQU4KK0xPREkgR0FCT1IKK0xPREkgSkVMSVNBVkVUQQorTE9ESSBMQVNMTworTE9HVU5PViBBTEVLU0VKIERJUEwgSU5HCitMT0pBTknEjEnEhiBSQURJVk9KRQorTE9KQU5JQ0EgQk/FoEtPCitMT0pOQSBJVkFOCitMT0pPVknEhiBCT8W9SUNBCitMT0pPVknEhiBPU1RPSkEKK0xPSk9WScSGIFJBTktPCitMT0pQVVIgTUlMT1ZBTgorTE9LQVMgREFSS08KK0xPS0nEhiBEQU5JQ0EKK0xPS0nEhiBKRUxFTkEKK0xPS0nEhiBMSlVCSUNBCitMT0tJxIYgTUlMT1ZBTgorTE9LScSGIFZFUkEKK0xPTEnEhiBCT8WgS08KK0xPTEnEhiBET0JSSU5LQQorTE9MScSGIE1BUklKQQorTE9MScSGIE1JTEFOCitMT0xJxIYgTkVERUxKS08KK0xPTEnEhiBTTEFWS0EKK0xPTEnEhiBUT0RPUgorTE9MSU4gREVKQU4KK0xPTElOIFpPUklDQQorTE9NRU4gRUxFTkEKK0xPTUnEhiBNT01JUgorTE9NScSGIFJBRE9WQU4KK0xPTUnEhiBTTE9CT0RBTgorTE9NSkFOU0tJIEFEQU0KK0xPTUpBTlNLSSBTVEVWQU4KK0xPTU9WScSGIEJSQVRJU0xBViBNUiBPRUMgSSBJVVJFCitMT01PVknEhiBNSUhBSU5BCitMT01PVknEhiBNSUhBSU5BCitMT01QQVIgRFJBR0FOCitMT01QQVIgTUlUQVIKK0xPTVBBUiBQRVRBUgorTE9NUEFSIFNBVkEKK0xPTsSMQVIgxIxFRE9NSVIKK0xPTsSMQVIgxJBVUk8KK0xPTsSMQVIgQk/FoEtPCitMT07EjEFSIEJPxb1JREFSCitMT07EjEFSIEJPSkFOQQorTE9OxIxBUiBCT1JJUworTE9OxIxBUiBCUkFOSVNMQVYKK0xPTsSMQVIgRFJBR0FOCitMT07EjEFSIERVxaBBTgorTE9OxIxBUiBEVcWgQU4KK0xPTsSMQVIgRFXFoEFOCitMT07EjEFSIERVxaBBTgorTE9OxIxBUiBHT0pLTworTE9OxIxBUiBHT1JEQU5BCitMT07EjEFSIElMSUpBCitMT07EjEFSIEpFTElDQQorTE9OxIxBUiBKT1ZBTgorTE9OxIxBUiBLT1NUQQorTE9OxIxBUiBLU0VOSUpBCitMT07EjEFSIExKVUJJQ0EKK0xPTsSMQVIgTEpVQklDQQorTE9OxIxBUiBMSlVCSUNBCitMT07EjEFSIE1BUktPCitMT07EjEFSIE1JSEFKTE8KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMQU4KK0xPTsSMQVIgTUlMRU5LTworTE9OxIxBUiBNSUxFCitMT07EjEFSIE1JTEUKK0xPTsSMQVIgTUlMT1JBRAorTE9OxIxBUiBNSVJLTworTE9OxIxBUiBNSVJLTworTE9OxIxBUiBORURFTEpLTworTE9OxIxBUiBORVZFTktBCitMT07EjEFSIE5JS09MQQorTE9OxIxBUiBOSUtPTEEKK0xPTsSMQVIgUEFOVEVMSUpBCitMT07EjEFSIFBSRURSQUcKK0xPTsSMQVIgUkFERQorTE9OxIxBUiBSQURPTUlSCitMT07EjEFSIFJBRE9NSVIKK0xPTsSMQVIgU0lNTworTE9OxIxBUiBTTEFWS08KK0xPTsSMQVIgU0xPQk9EQU4KK0xPTsSMQVItU1JFTcSMRVYgVkVSSUNBCitMT07EjEFSIFNURVZPCitMT07EjEFSIFRBVEpBTkEKK0xPTsSMQVIgVkVMSU1JUgorTE9OxIxBUiBWRVJBCitMT07EjEFSIFZMQURBCitMT07EjEFSIFZMQURJTUlSS0EgRFIKK0xPTsSMQVIgVlVLQcWgSU4KK0xPTsSMQVIgWkRSQVZLTworTE9OxIxBUiBaT1JBTgorTE9OxIxBUkVWScSGIMW9SVZPVEEKK0xPTsSMQVJFVknEhiBJR05KQVQKK0xPTsSMQVJFVknEhiBNSUxBTgorTE9OxIxBUkVWScSGIFBVTknFoEEKK0xPTsSMQVJFVknEhiBSQURPVkFOCitMT07EjEFSRVZJxIYgVklUT01JUgorTE9OxIxBUknEhiBSQURNSUxBCitMT07EjEFSU0tJIERSQUdBTkEKK0xPTsSMQVJTS0kgRFJBR0nFoEEKK0xPTsSMQVJTS0kgUFJFRFJBRworTE9OxIxBUlNLSSBTQVZBCitMT07EjEFSU0tJIFNSRURPSkUKK0xPTsSMSU5BIE1JTEpBCitMT07EjElOQSBQUkVEUkFHCitMT05DScSGIEJFUklTTEFWQQorTE9OQ0nEhiBSQUpLTworTE9QQVRJTiBOSUtPTEEKK0xPUEnEjEnEhiDFoFBJUk8KK0xPUEnEjEnEhiBCUkFOS08KK0xPUEnEjEnEhiBCUkFOS08KK0xPUEnEjEnEhiBKRUxJQ0EKK0xPUEnEjEnEhiBKT1ZBTgorTE9QScSMScSGIE1JT0RSQUcKK0xPUEnEjEnEhiBPTEdBCitMT1BJxIxJxIYgVkVTRUxJTgorTE9QVcWgQU5TS0kgRFXFoElDQQorTE9QVcWgSU5BIEFMRUtTQU5EQVIKK0xPUFXFoElOQSBKRUxJQ0EKK0xPUkJFSyBKT1NJUAorTE9SRUsgSk9WQU4KK0xPUkVOQ0lOIE1JTEFOCitMT1RJTkEgRFJBR0FOCitMT1RJTkEgTUlST1NMQVYKK0xPVElOQSBTTUlMSkEKK0xPVsSMRVZJxIYgREFSSU5LQQorTE9WxIxFVknEhiBEUkFHT1NMQVYKK0xPVsSMRVZJxIYgTUlMScSGCitMT1bEjEVWScSGIFRPTUlTTEFWCitMT1bEjEVWScSGIFZPSklTTEFWCitMT1ZBxaAgUk9aQUxJSkEKK0xPVkFESU5PViBTVkVUT1pBUgorTE9WQVMgSVZBTgorTE9WScSGIEtVWk1BTgorTE9WUkUgxIxFRE8KK0xPVlJFIERSQUdBTgorTE9WUkUgTEpJTEpBTkEKK0xPVlJFIE1JTE/FoAorTE9WUkUgU0FWTworTE9WUkUgU0xBVktPCitMT1ZSRSBTVEVWQU4KK0xPVlJFS09WScSGIFRPTUlTTEFWCitMT1ZSRUtPVknEhiBaTEFUS08KK0xPVlJFTiBTTEFWS08KK0xPVlJFTsSMScSGIEtBVElDQQorTE9WUkVOT1ZJxIYgTUlST1NMQVZBCitMT1ZSRU5TS0kgRFXFoEFOCitMT1ZSRU5TS0kgRFXFoEFOCitMT1ZSScSGIMW9RUxKS08KK0xPVlJJxIYgxb1FTEpLTworTE9WUknEhiDEkFVSQQorTE9WUknEhiBESVZOQQorTE9WUknEhiBNQVJLTworTE9WUknEhiBOSUtPTEEKK0xPVlJJxIYgUEVUQVIKK0xPVlJJxIYgUkFKS08KK0xPVlJJxIYgUkFUS08KK0xPVlJJxIYgU0xBVktPCitMT1ZSScSGIFNMQVZLTworTE9WUknEhiBTVEVWQU4KK0xPVlJJxIYgU1RFVkFOCitMT1ZSScSGIFRBVEpBTkEKK0xPVlJJxIYgVFJJVlVOCitMT1ZSSU4gREFSQQorTE9WUklOIERSQUdBTgorTE9aQU7EjEnEhiBOSUtPCitMT1pBTknEhiBJVkFOIERJUEwgSU5HCitMT1pBTknEhi1QQVZMT1ZJxIYgxJBVUsSQSU5LQQorTE9aQU5PViBFTUlMCitMT1pBTk9WIFNBVkEKK0xPWknEhiBKT1NJUAorTE9aScSGIEtSU1RBCitMT1pJxIYgS1NFTklKQQorTE9aScSGIE1JT0RSQUcgRElQTCBJTkcKK0xPWknEhiBUT01JU0xBVgorTE9aSkFOSU4gTklLT0xBCitMT1pKQU5JTiBOSUtPTEEKK0xPWkpBTklOIE5JS09MQQorTE9aT1ZPSiBMSlVCSUNBCitMVcSMQUsgWkxBVElDQQorTFXEjEFSIE1JTEFESU4KK0xVxIxBUiBNSUxBTgorTFXEjEFSIFZFUkEKK0xVxIxJIEFOSUNBCitMVcSMSSBJVkFOCitMVcSMScSGIMSMRURPTUlSCitMVcSMScSGIMW9SVZLTworTFXEjEnEhiDEkE9LTworTFXEjEnEhiDEkE9SxJBFCitMVcSMScSGIMSQVVLEkElOQQorTFXEjEnEhiBBTEVLU0FOREFSIERSCitMVcSMScSGIEFMRUtTQU5EUkEKK0xVxIxJxIYgQlJBTktPCitMVcSMScSGIERSQUdBTgorTFXEjEnEhiBEUkFHSUNBCitMVcSMScSGIERSQUdJTkpBCitMVcSMScSGIERSQUdVVElOCitMVcSMScSGIEdFT1JHSUpFCitMVcSMScSGIEpFTEVOQQorTFXEjEnEhiBKRUxJQ0EKK0xVxIxJxIYgSk9WQU4gTVIKK0xVxIxJxIYgSk9WQU4KK0xVxIxJxIYgSk9WQU4KK0xVxIxJxIYgSk9WSUNBCitMVcSMScSGIExBWk8KK0xVxIxJxIYgTEpVQkFOCitMVcSMScSGIExKVUJPTUlSCitMVcSMScSGIExKVUJPCitMVcSMScSGIE1JSEFKTE8KK0xVxIxJxIYgTUlMQU4KK0xVxIxJxIYgTUlMRU5LTworTFXEjEnEhiBNSUxFTktPCitMVcSMScSGIE1JTElDQQorTFXEjEnEhiBNSUxJVk9KRQorTFXEjEnEhiBNSUxPxaAKK0xVxIxJxIYgTUlMT0pJQ0EKK0xVxIxJxIYgTUlMT0pLQQorTFXEjEnEhiBNSUxPTUlSCitMVcSMScSGIE1JTE9TQVZBCitMVcSMScSGIE1JTFVUSU4KK0xVxIxJxIYgTUlPRFJBRworTFXEjEnEhiBNSVJKQU5BCitMVcSMScSGIE1JUk9TTEFWQQorTFXEjEnEhiBNT03EjElMTworTFXEjEnEhiBNT01JUgorTFXEjEnEhiBOQURBCitMVcSMScSGIE9CUkFECitMVcSMScSGIFBBTlRBCitMVcSMScSGIFBBVkEKK0xVxIxJxIYgUEVUQVIKK0xVxIxJxIYgUEVUS08KK0xVxIxJxIYgUEVUS08KK0xVxIxJxIYgUkFKS08KK0xVxIxJxIYgUklTVE8KK0xVxIxJxIYgU0xBVktPCitMVcSMScSGIFNMQVZOQQorTFXEjEnEhiBTT0ZJSkEKK0xVxIxJxIYgU1BBU09KRQorTFXEjEnEhiBTVEVGQU5JSkEKK0xVxIxJxIYgU1RFVkFOCitMVcSMScSGIFZBU08KK0xVxIxJxIYgVkxBRE8KK0xVxIxJxIYgVk9KSU4KK0xVxIxJxIYgWkRSQVZLTworTFXFoElOT1ZTS0kgRElNSVRSSUpFCitMVcW9QUnEhiDEkE9SxJBFCitMVcW9QUnEhiDEkE9SxJBFCitMVcW9QUnEhiBBTktBCitMVcW9QUnEhiBCT8W9SUNBCitMVcW9QUnEhiBEVcWgS08KK0xVxb1BScSGIEpBRFJBTktBCitMVcW9QUnEhiBKVUxLQQorTFXFvUFJxIYgTUlSQQorTFXFvUFJxIYgVkxBRElNSVIKK0xVxb1BScSGIFZMQURJTUlSCitMVcW9QUpJxIYgQU5LQQorTFXFvUFKScSGIEpBRFJBTktBCitMVcW9QUpJxIYgTUlMRU5BCitMVcW9QUpJxIYgTkFEQQorTFXFvUFKScSGIFNUQU5LTworTFXFvUFKScSGIFNUQU5LTworTFXFvUFKScSGIFNUT0pBTgorTFXFvUFOSU4gU1ZFVE9aQVIKK0xVQkHFoMSMSUsgQU5UQUwKK0xVQkHFoMSMSUsgTEFTTE8KK0xVQkFSREEgTEpVQklDQQorTFVCQVJEQSBTVEVWQU4KK0xVQkVOIFJBTktPCitMVUJFTiBTQVZBCitMVUJVUknEhiDEjEVET01JUgorTFVCVVJJxIYgREFOSUxPCitMVUJVUknEhiBNSUxPUkFECitMVUJVUknEhiBNSUxPUkFECitMVUJVUknEhiBNSUxPVkFOCitMVUJVUknEhiBNSU9EUkFHCitMVUJVUknEhiBNSVJLTworTFVCVVJJxIYgTkFEQQorTFVCVVJJxIYgUkFET01JUgorTFVCVVJJxIYgUkFKS08KK0xVQlVSScSGIFNUQU5BCitMVUJVUknEhiBTVEVWQU4KK0xVQyBKQU5PxaAKK0xVQyBKVUxJSkEKK0xVQ0nEhiDFvUlWT0pJTgorTFVDScSGIEFMRUtTQU5EUkEKK0xVQ0nEhiBQRVRBUgorTFVDScSGIFJBRElWT0oKK0xVQ0tBUsW9IFZMQURJTUlSCitMVURBSknEhiBEVcWgQU4gRElQTCBJTkcKK0xVREFKScSGIFZFUkEKK0xVRE/FoEtJIEFOxJBFTEtPCitMVURPxaBLSSBLQVRJQ0EKK0xVRE/FoEtJIExBWkFSCitMVURPxaBLSSBMQVpBUgorTFVET8WgS0kgTEpVQklDQQorTFVET8WgS0kgTEpVQk9NSVIKK0xVRE/FoEtJIE1JTEVOS08KK0xVRE/FoEtJIFZFTElNSVIKK0xVRFJPVkFOIFNURVZBCitMVUdPTkpBIExBWk8KK0xVR09OSkEgUEVUQVIKK0xVR09OSkEgUkFESVZPSgorTFVHT05KQSBTQVZBCitMVUdPTkpBIFNMT0JPREFOCitMVUdPTkpBIFZFTEpLTworTFVHT05KQSBWSURPSkUKK0xVR1VNRVJTS0kgREFOSUNBCitMVUlOT1ZJxIYgTUlMQU4KK0xVSkFOT1YgRFJBR09TTEFWCitMVUpJTk9WScSGIE1JTEFOCitMVUpOT1ZJxIYgQlJBTktBCitMVUtBxIwgxaBBTkRPUgorTFVLQcSMIEFORFJBxaAKK0xVS0HEjCBBTktJQ0EKK0xVS0HEjCBBUkFOS0EKK0xVS0HEjCBCT8WgS08KK0xVS0HEjCBCT8WgS08KK0xVS0HEjCBCT8W9SURBUgorTFVLQcSMIEJSQU5JU0xBVgorTFVLQcSMIERBTklMTworTFVLQcSMIERSQUdBTgorTFVLQcSMIERSQUdPU0xBViBEUgorTFVLQcSMIEZFUkVOQworTFVLQcSMIEZSQU5DScWgS0EKK0xVS0HEjCBGUkFOSkEKK0xVS0HEjCBHUk9aREEKK0xVS0HEjCBJR05KQVQKK0xVS0HEjCBJVkFOCitMVUtBxIwgTEFaQVIKK0xVS0HEjCBNSUhBSkxPCitMVUtBxIwgTUlIQUpMTworTFVLQcSMIE1JSEFKTE8KK0xVS0HEjCBNSUxFVkEKK0xVS0HEjCBOQURFxb1EQQorTFVLQcSMIFBFVEFSCitMVUtBxIwgUEVUQVIKK0xVS0HEjCBSQURFCitMVUtBxIwgU0FWQQorTFVLQcSMIFNMT0JPREFOS0EKK0xVS0HEjCBTTE9CT0RBTgorTFVLQcSMIFNURVZBTgorTFVLQcSMIFNWRVRLTworTFVLQcSMIFZFTElNSVIKK0xVS0HEjEVWScSGIExKVUJJxaBBCitMVUtBxIxJIEpFTElTQVZFVEEKK0xVS0HEjEkgSlVMSUpBTkEKK0xVS0FKScSGIExBWkFSIE1SCitMVUtBTiDEkE9SxJBFCitMVUtBTiBWSU5DRU5DCitMVUtBTknEhiBGUknEkEXFoAorTFVLQU5JxIYgU1RFVkFOCitMVUtBVEVMSSBJVkFOS0EKK0xVS0FWQUMgU01JTEpLQQorTFVLQVZBQyBaT1JBTgorTFVLRcWgRVZJxIYgRFJBR0FOCitMVUtFTknEhiBMSklMSkFOQQorTFVLRVRBIFJBRE1JTEEKK0xVS0nEjEnEhiBCT0dEQU4gRElQTCBJTkcKK0xVS0nEjEnEhiBLQVRJQ0EKK0xVS0nEjEnEhiBSQURBCitMVUtJxIxJxIYgU0xPQk9EQU4KK0xVS0nEjEnEhiBTTE9CT0RBTgorTFVLScSGIMW9SVZPUkFECitMVUtJxIYgxb1JVk9SQUQKK0xVS0nEhiDFvUlWT1RBCitMVUtJxIYgxJBVUkEKK0xVS0nEhiDEkFVSTworTFVLScSGIEFMRUtTQU5EQVIKK0xVS0nEhiBBTEVLU0FOREFSCitMVUtJxIYgQUxFS1NBTkRBUgorTFVLScSGIEFOR0VMSU5BCitMVUtJxIYgQkVSVEEKK0xVS0nEhiBCT8WgS08KK0xVS0nEhiBCT8W9SURBUgorTFVLScSGIEJPR09MSlVCCitMVUtJxIYgQk9SSVZPSkUKK0xVS0nEhiBCT1JPCitMVUtJxIYgQk9TSUxKS0EKK0xVS0nEhiBDVkVUQQorTFVLScSGIENWSkVUS08KK0xVS0nEhiBEQU5FCitMVUtJxIYgREFORQorTFVLScSGIERBUklOS0EKK0xVS0nEhiBESU1JVFJJSkUKK0xVS0nEhiBET0JSSUxBCitMVUtJxIYgRE9CUk9TQVYKK0xVS0nEhiBEUkFHQU4KK0xVS0nEhiBEUkFHQQorTFVLScSGIERSQUdPSkUKK0xVS0nEhiBEUkFHT1NMQVZBCitMVUtJxIYgRFXFoEFOS0EKK0xVS0nEhiBEVcWgQU4KK0xVS0nEhiBEVcWgQU4KK0xVS0nEhi1GVURFUkVSIEpPTEFOS0EKK0xVS0nEhiBHUk9aREEKK0xVS0nEhiBHUlVKSUNBIERJUEwgSU5HCitMVUtJxIYgSUxJSkEKK0xVS0nEhiBJTElKQQorTFVLScSGIElMSUpBCitMVUtJxIYgSVZBTgorTFVLScSGIElWQU4KK0xVS0nEhiBJVkFOCitMVUtJxIYgSkFEUkFOS0EKK0xVS0nEhiBKQVNNSU5BCitMVUtJxIYgSkVMRU5BCitMVUtJxIYgSkVMRU5BCitMVUtJxIYgSkVMRU5BCitMVUtJxIYgSkVMSUNBCitMVUtJxIYgSk9WQU5LQQorTFVLScSGIEpPVkFOCitMVUtJxIYgSk9WQU4KK0xVS0nEhiBKT1ZBTgorTFVLScSGIEpPVk8KK0xVS0nEhiBKT1ZPCitMVUtJxIYgSlVMS0EKK0xVS0nEhiBLQVRBUklOQQorTFVLScSGIEtPU1RBCitMVUtJxIYgS09TVEEKK0xVS0nEhiBMQVpBUgorTFVLScSGIExKSUxKQU5BCitMVUtJxIYgTEpVQkEKK0xVS0nEhiBMSlVCScWgQSBEUiBMRUtBUgorTFVLScSGIExKVUJJQ0EKK0xVS0nEhiBMSlVCT01JUgorTFVLScSGIE1BUkEKK0xVS0nEhiBNQVJJSkEKK0xVS0nEhiBNQVJLTworTFVLScSGIE1BUktPCitMVUtJxIYgTUFSS08KK0xVS0nEhiBNScSGQQorTFVLScSGIE1JTEFOCitMVUtJxIYgTUlMQU4KK0xVS0nEhiBNSUxBTgorTFVLScSGIE1JTEFOCitMVUtJxIYgTUlMQU4KK0xVS0nEhiBNSUxBTgorTFVLScSGIE1JTEFOCitMVUtJxIYgTUlMRQorTFVLScSGIE1JTElKQQorTFVLScSGIE1JTEtBCitMVUtJxIYgTUlMT8WgCitMVUtJxIYgTUlMT1JBRAorTFVLScSGIE1JTE9SQUQKK0xVS0nEhiBNSU9EUkFHCitMVUtJxIYgTUlSSkFOQQorTFVLScSGIE1JUkpBTkEKK0xVS0nEhiBNSVJPU0xBVgorTFVLScSGIE1JUk9TTEFWCitMVUtJxIYgTU9NxIxJTE8KK0xVS0nEhiBORVZFTkEKK0xVS0nEhiBOSUtPTEEKK0xVS0nEhiBOSUtPTEEKK0xVS0nEhiBOSUtPTEEKK0xVS0nEhiBOT1ZLQQorTFVLScSGIE9CUkFECitMVUtJxIYgT0xHQQorTFVLScSGIE9MR0lDQQorTFVLScSGIFBFVEFSCitMVUtJxIYgUEVUQVIKK0xVS0nEhiBQRVRBUgorTFVLScSGIFBFVEFSCitMVUtJxIYgUkFET1NBVgorTFVLScSGIFJBRE9TTEFWCitMVUtJxIYgUkFET1ZBTgorTFVLScSGIFJBRE9WQU4KK0xVS0nEhiBSQUpLTworTFVLScSGIFJJU1RPCitMVUtJxIYgUlXFvUEKK0xVS0nEhiBSVcW9QQorTFVLScSGIFNBVktBCitMVUtJxIYgU0xPQk9EQU5LQQorTFVLScSGIFNMT0JPREFOCitMVUtJxIYgU0xPQk9EQU4KK0xVS0nEhiBTTE9CT0RBTgorTFVLScSGIFNMT0JPREFOCitMVUtJxIYgU09GSUpBCitMVUtJxIYgU09GSUpBCitMVUtJxIYgU1RBTkEKK0xVS0nEhiBTVEFOScWgQQorTFVLScSGIFNUQU5JU0xBVgorTFVLScSGIFNURVZBTgorTFVLScSGIFNURVZBTgorTFVLScSGLVNURVZJxIYgTEpJTEpBTkEKK0xVS0nEhiBTVEVWTworTFVLScSGIFNUT0pBTktBCitMVUtJxIYgU1RPSkFOCitMVUtJxIYgU1ZFVExBTkEKK0xVS0nEhiBUQU1BUkEKK0xVS0nEhiBUT01JU0xBVgorTFVLScSGIFRPTUlTTEFWCitMVUtJxIYgVkVMSUJPUiBEUgorTFVLScSGIFZFTElCT1IgRFIKK0xVS0nEhiBWRUxJTUlSCitMVUtJxIYgVkVMSktPCitMVUtJxIYgVkVSQQorTFVLScSGIFZFUklDQQorTFVLScSGIFZFUk9OQQorTFVLScSGIFZFUk9OSUtBCitMVUtJxIYgVkVTRUxJTgorTFVLScSGIFZJRE9TQVZBCitMVUtJxIYgVkxBRElNSVIgRElQTCBJTkcKK0xVS0nEhiBWTEFESU1JUgorTFVLScSGIFZPSklOCitMVUtJxIYgVlVLT1NBVgorTFVLScSGIFZVSworTFVLScSGIFpPUkFOCitMVUtJxIYgWk9SQU4KK0xVS0nEhiBaT1JBTgorTFVLScSGIFpPUktBCitMVUtPIMWgQU5ET1IKK0xVS08gQU5EUkHFoAorTFVLT1ZBQyBBTklDQQorTFVLT1ZBQyBEUkFHQU4KK0xVS09WQUMgTUlMQU4KK0xVS09WQUMgTUlMT1ZBTgorTFVLT1ZJxIYgRFXFoEFOCitMVUtPVknEhiBJVkFOCitMVUtPVknEhiBKT1ZBTgorTFVLT1ZJxIYgTUlMQU4KK0xVS09WScSGIE1JTE9SQUQKK0xVS09WScSGIE1JTE9SQUQKK0xVS09WScSGIE1JTFVUSU4KK0xVS09WScSGIFNMQVZLTworTFVLT1ZJxIYgU0xPQk9EQU5LQQorTFVLT1ZJxIYgVkxBRElNSVIKK0xVTEnEhiBBTkEKK0xVTEnEhiBBTlRVTgorTFVMScSGIEZSQU5KQQorTFVMScSGIElWQU4gTVIKK0xVTEnEhiBJVkFOCitMVUxJxIYgTUFKQQorTFVMScSGIE1BUktPCitMVU5HIERSQUdBTgorTFVORyBTVEVWQU4KK0xVTkdJTk9WScSGIE1BUklKQQorTFVOR1VMT1YgTUlMSVZPSgorTFVQxaBJxIYgSlVMSUpBTkEKK0xVUMWgScSGIEtPUk5FTAorTFVQxaBJxIYgS09STkVMCitMVVDFoE9SIFNURUxBCitMVVBJTlNLSSBOSU5PU0xBVgorTFVQSU5TS0kgVkxBRElNSVIKK0xVUFVDIEpFTElDQQorTFVQVVJPViBMQVpBCitMVVBVUk9WSU4gTkVWRU5LQQorTFVUS0nEhiDFvUlWS0EKK0xVVEtJxIYgxJBPUsSQRQorTFVUS0nEhiBBTEVLU0FORFJBCitMVVRLScSGIExBWkFSCitMVVRLScSGIE1JTE9SQUQKK0xVVEtJxIYgU1RBTktPCitMVVRLScSGIFNURVZBTgorTFVUS0nEhiBaQUdPUktBCitMVVRST1YgTkFEQQorTFVWUkFET1YgQkxBR09KRQorTUHEjEVLIEpPVkFOCitNQcSMS0nEhiBCUkFOS08KK01BxIxLScSGIERSQUdJQ0EKK01BxIxLScSGIEpBTktPCitNQcSMS0nEhiBKQU5LTworTUHEjEtJxIYgTUlMRU5BCitNQcSMS0nEhiBNSUxFTktPCitNQcSMS0nEhiBNSUxFVktBCitNQcSMS0nEhiBNSUxJVk9KCitNQcSMS0nEhiBNSUxKS0EKK01BxIxLScSGIE1JTE/FoAorTUHEjEtJxIYgTkVERUxKS08KK01BxIxLScSGIE5FTkFECitNQcSMS0nEhiBQRVRSQQorTUHEjEtJxIYgU1RFVk8KK01BxIxLScSGIFZBU08KK01BxIxLScSGIFZMQURJTUlSCitNQcSMS09WScSGIE1JTEFOQQorTUHEjEtPVknEhiBNSUxBTgorTUHEjEtPVknEhiBUT01BCitNQcSMVUtBVCBHUkdPCitNQcSMVkFOSU4gQk9KQU5BIERSIExFS0FSCitNQcWgQSBFUsW9RUJFVAorTUHFoEEgTUlIQUpMTworTUHFoEEgVkxBRElNSVIKK01BxaBBTk9WScSGIMSQT1LEkEUgRElQTCBJTkcKK01BxaBBTk9WScSGIMSQT1LEkElKRQorTUHFoEFOT1ZJxIYgQkxBxb1PCitNQcWgQU5PVknEhiBCT1NJTEpLQQorTUHFoEFOT1ZJxIYgQlJBTklTTEFWCitNQcWgQU5PVknEhiBEUkFHTworTUHFoEFOT1ZJxIYgTklLT0xBCitNQcWgQU5PVknEhiBQRVRBUgorTUHFoEFOT1ZJxIYgUEVUQVIKK01BxaBBTk9WScSGIFBFVEFSCitNQcWgQU5PVknEhiBaT1JBTgorTUHFoEnEhiDFvUFSS08KK01BxaBJxIYgxb1JVkFOCitNQcWgScSGIEJPUklTCitNQcWgScSGIERSQUdBTgorTUHFoEnEhiBEUkFHScSGCitNQcWgScSGIEnFoFRWQU4KK01BxaBJxIYgSU1SRQorTUHFoEnEhiBJVkFOCitNQcWgScSGIEpPVkFOCitNQcWgScSGIEtBUk9MSgorTUHFoEnEhiBNQU5EQQorTUHFoEnEhiBNSUxBTiBEUgorTUHFoEnEhiBNSUxJTktPCitNQcWgScSGIE1JTElWT0oKK01BxaBJxIYgTUlMSkFOQQorTUHFoEnEhiBNSUxPSkUKK01BxaBJxIYgTUlSQQorTUHFoEnEhiBNSVJLTworTUHFoEnEhiBNSVJPU0xBVgorTUHFoEnEhiBOQURBCitNQcWgScSGIFBFVEFSCitNQcWgScSGIFJFxaBBRAorTUHFoEnEhiBTRU5LQQorTUHFoEnEhiBTRU5LQQorTUHFoEnEhiBTSU1FT04KK01BxaBJxIYgU1RFVkFOCitNQcWgScSGIFRPTUlTTEFWCitNQcWgScSGIFZFUkEKK01BxaBJxIYgVklLVE9SCitNQcWgScSGIFZVxIxFVEEKK01BxaBJUkVWScSGIEdPUkRBTkEKK01BxaBJUkVWScSGIFNURVZBTgorTUHFoEtPVknEhiBOT1ZJQ0EKK01BxaBLT1ZJxIYgWk9SQU4KK01BxaBUUkFQT1ZJxIYgRFJBR09MSlVCCitNQcWgVUxPVknEhiBKQVNNSU5BCitNQcWgVUxPVknEhiBKT1ZBTktBCitNQcSGQcWgIFNURVZBTgorTUHEhkHFoCBWQVNBCitNQcSGQcWgRVYgQUxFS1NBTkRBUgorTUHEhkHFoEVWIEJSQU5JU0xBVgorTUHEhkHFoEVWIERBTklMTworTUHEhkHFoEVWScSGIFZMQURJTUlSCitNQcSGRcWgScSGIEpPU0lQCitNQcSGRcWgScSGIE1JSEFJTE8KK01BxIZLTyBKT8W9RUYKK01BxIZLTyBWSUxNT8WgCitNQcW9ScSGIMSQT1LEkEUKK01Bxb1JxIYgRFJBR0nFoEEKK01Bxb1JxIYgTUlSQQorTUHFvUnEhiBQRVRBUgorTUHFvUnEhiBSVcW9QQorTUHFvUlCUkFEQSBWQVNPCitNQcW9SUJSQURBLVZVR1JJTiBNQVJUQSBESVBMIElORworTUHEkEFSIEJPxb1JREFSCitNQcSQQVIgRVLFvUVCRVQKK01BxJBBUiBKT1ZBTgorTUHEkEFSIEpPVkFOCitNQcSQQVIgTEFESVNMQVYKK01BxJBBUiBTVEVWQU4KK01BxJBBUkVWScSGIEFMRUtTQU5EQVIKK01BxJBBUkVWScSGIElWQU4KK01BxJBBUkVWScSGIEtPU1RBCitNQcSQQVJFVknEhiBNSUxFCitNQcSQQVJFVknEhiBNSUxPxaAKK01BxJBBUkVWScSGIFNQQVNPSkUKK01BxJBBUkVWScSGIFpPUklDQQorTUHEkEFSSSBBTkRPUgorTUHEkElTVE9ST1YgVkxBRElNSVIKK01BQ0FLIFBBVkxFCitNQUNBSyBWTEFESU1JUgorTUFDQU5PVknEhiBEVcWgQU4KK01BQ0FOT1ZJxIYgSkVMRU5BCitNQUNBTk9WScSGIEpFVlJPU0lNQQorTUFDQU5PVknEhiBKT1ZBTgorTUFDQU5PVknEhiBNSUxPxaAKK01BQ0FOT1ZJxIYgUkFUS08KK01BQ0VET05JxIYgQk9HREFOIERSCitNQUNFRE9OScSGIEdPUkRBTkEKK01BQ0VET05JxIYgU1RBTklNSVIKK01BQ0VET05JxIYgVkxBRElNSVIKK01BQ0tPIMSQVVJBCitNQUNLTyBBTkEKK01BQ05FUiBEQVZPUgorTUFDVVJBIMSMRURPCitNQUNVUkEgxJBPUsSQRQorTUFDVVJBIERPQlJJTktBCitNQUNVUkEgRFJBR08KK01BQ1VSQSBMSURJSkEKK01BQ1VSQSBNSUxPxaAKK01BQ1VSQSBNSUxPUkFECitNQUNVUkEgTUlST1NMQVYKK01BQ1VSQSBQRVRBUgorTUFDVVJBIFRFT0RPUgorTUFDVVQgTUlMT8WgCitNQUTFvUFSIEJPUklTTEFWCitNQUTFvUFSIE1JTE9SQUQKK01BRMW9QVIgTUlSS08KK01BRMW9QVJBQyDEjEVET01JUgorTUFExb1BUkFDIERVxaBBTiBESVBMIElORworTUFExb1BUkVWIERVxaBBTgorTUFExb1BUkVWIE1JTEFOS0EKK01BRMW9QVJFVknEhiDFvUlWT1JBRAorTUFExb1BUkVWScSGIMSQT1LEkEUKK01BRMW9QVJFVknEhiBCSVNFUktBCitNQUTFvUFSRVZJxIYgTUFSS08KK01BRMW9QVJFVknEhiBTQVZBCitNQUTFvUdBTEogTUlMRU5LTworTUFExb1HQUxKIFNMT0JPREFOCitNQUTFvU9WU0tJIFNBTkRFCitNQURBxIxJIE1BUklKQQorTUFEQUNLSSBBTlRBTAorTUFEQUNLSSBKQU4KK01BREFDS0kgSk9TSVAKK01BREFDS0kgS0FSTE8KK01BREFSQVMgQU5EUkHFoAorTUFEQVJBUyBBUlBBRAorTUFEQVJBUyBNQcSGQcWgCitNQURBUkFTIE1BUklKQQorTUFEQVJBUyBST1pBTElKQQorTUFESSDEkFVSSUNBCitNQURJIEpPxb1FRgorTUFEScSGIEJPxb1JREFSIERJUEwgSU5HCitNQURJxIYgTUFSSUpBTgorTUFEScSGIE1JTElTQVYKK01BRE9OScSGIFNUSkVQQU4KK01BRE9WIElMSUpBCitNQUdBUkHFoEVWScSGIEFOQU1BUklKQQorTUFHQVJBxaBFVknEhiBCT1JJVk9KCitNQUdBUkHFoEVWScSGIEtBVEFSSU5BCitNQUdBUkHFoEVWScSGIE1JUktPCitNQUdBUkHFoEVWScSGIE5BREEKK01BR0RBIEtMQVJBCitNQUdEQUxFTknEhiBWRVJKT1YKK01BR0RJxIYgVE9NSVNMQVYKK01BR0RVIEpPTiBESVBMIElORworTUFHRFUgTElBCitNQUdEVSBST0RJS0EgTEVLQVIKK01BR0nEhiBOSUtPTEEKK01BR0xBSkxJxIYgU0FCUklKQQorTUFHTEnEhiBKT1ZBTgorTUFHTElOU0tJIEJPUklTTEFWIERJUEwgUFJBVk5JSworTUFHTE9WIEFMRUtTQU5EQVIKK01BR0xPViBEUkFHT0xKVUIKK01BR0xPViBEVcWgQU4KK01BR0xPVlNLSSBEVcWgS08KK01BR0xPVlNLSSBKT1NJUAorTUFHTE9WU0tJIE1BUkdJVEEKK01BR0xPVlNLSSBNSUxJQ0EKK01BR0xPVlNLSSBNSVJPU0xBVgorTUFHTE9WU0tJIFNURVZBTgorTUFHTE9WU0tJIFNURVZBTgorTUFHT8SMIEZSQU5KQQorTUFHT8SMIEpVTElKQU4KK01BR0/EjCBNSVJPTkoKK01BR0/FoCDFoEFORE9SCitNQUdPxaAgSkVMSVNBVkVUQQorTUFHT8WgIEpVTElKQU5BCitNQUdPxaAgTUFSSUpBCitNQUdVUkEgVE9NQQorTUFIxJBJSyBFTEVOQQorTUFIQcSMSSBKQU5PxaAKK01BSE1VVEkgTUFITVVUCitNQUhNVVRJIFpVWkFOQQorTUFIT1ZBQyBNSUxPUkFECitNQUlDSEVSIMSQT1LEkEUKK01BSsWgQUkgRkVSRU5DCitNQUrFoEFJIEtMQVJBCitNQUpEQU7EjEVWScSGIE1JVEFSCitNQUpEQU5BQyBEUkFHSU5KQQorTUFKREFORMW9ScSGIEpPWk8KK01BSkRBTkTFvUnEhiBQRVJJQ0EKK01BSkRBTkTFvUnEhiBQRVRBUgorTUFKREVWQUMgxb1JVktPIERSCitNQUpERVZBQyBSQURPVkFOCitNQUpFUiDFoEFORE9SCitNQUpFUiBFRFVBUkQKK01BSkVSIEpBTk/FoAorTUFKRVIgSk9WQU4KK01BSkVSIEtBVElDQQorTUFKRVIgTUFSSUpBCitNQUpFUiBOSUtPTEEKK01BSkVSIFBFVEFSCitNQUpFUiBTVEVWQU4KK01BSkVSU0tJIMWgVEVGQU4KK01BSkVUScSGIEFOVE9OCitNQUpFVEnEhiBNQVJJSkEKK01BSkVUScSGIE5JS09MQQorTUFKScSGIFNURVZBTgorTUFKScSGIFZFU05BCitNQUpJxIYgWk9SQU4KK01BSknEhiBaT1JBTgorTUFKSU4gRUZJTUlKQQorTUFKSU4gTUlPRFJBRworTUFKSU5TS0kgWk9SQQorTUFKS0nEhiBBTEVLU0FORFJBCitNQUpLScSGIEJPR0RBTgorTUFKS0nEhiBCT0dEQU4KK01BSktJxIYgRFJBR0FOCitNQUpLScSGIElMSUpBCitNQUpLScSGIElWQU5LQQorTUFKS0nEhiBKT0NBCitNQUpLScSGIE1JTEFOCitNQUpLScSGIE1JTEFOCitNQUpLScSGIE1JTEFOCitNQUpLScSGIE1JTEFOCitNQUpLScSGIE1JUk9TTEFWCitNQUpLScSGIE5JS09MQQorTUFKS0nEhiBPQlJBRAorTUFKS0nEhiBSQURFCitNQUpLScSGIFJBRE9KS0EKK01BSktJxIYgU1RPSkFOS0EKK01BSktJxIYgVkVMSktPCitNQUpLScSGIFZMQURPCitNQUpLScSGIFpEUkFWS08KK01BSktJxIYgWk9SQU4KK01BSktTTkVSIMSQT1LEkEUKK01BSk9SIMSQVVJBCitNQUpPUiBBTkEKK01BSk9SIEZFUkVOQyBEUiBJTkcKK01BSk9SIEpPxb1FRgorTUFKT1IgSk/FvUVGCitNQUpPUiBLQVJPTEoKK01BSk9SIEtBUk9MSgorTUFKT1IgTUFSR0lUQQorTUFKT1IgTUFSSUpBCitNQUpPUiBNQVJJSkEKK01BSk9SIE5BTkRPUgorTUFKT1IgU1RFVkFOCitNQUpPUsSMSUsgRlJBTkpBCitNQUpPUk/FoCBCRUxBIERSCitNQUpPUk/FoCBERcW9RQorTUFKT1JPxaAgSk9WQU4KK01BSk9ST8WgIExBSk/FoAorTUFKT1JPxaAgU1RFVkFOCitNQUpPUk/FoCBURVJFWklKQQorTUFKT1JPxaBJLURFVVJBIE1BUklKQQorTUFKT1JPxaBJIElNUkUKK01BSlNLSSBKRUxJQ0EKK01BSlNLSSBKT1ZBTgorTUFKU0tJIE1JTEFOCitNQUpTS0kgTklLT0xBCitNQUpTS0kgU0xBVktPCitNQUpTS0kgVkVTTkEKK01BSlNUT1JBQyBEUkFHQU4KK01BSlNUT1JBQyBMSlVCT01JUgorTUFKU1RPUkFDIFBFVEFSCitNQUpTVE9SQUMgU0FWTworTUFKU1RPUk9WIExKVUJJxaBBCitNQUpTVE9ST1YgVkxBRElNSVIKK01BSlNUT1JPVknEhiDEkFVSQcSQCitNQUpTVE9ST1ZJxIYgQU7EkEEKK01BSlNUT1JPVknEhiBBTktBCitNQUpTVE9ST1ZJxIYgQk9HREFOCitNQUpTVE9ST1ZJxIYgQk9SSVZPSgorTUFKU1RPUk9WScSGIEJPUklWT0oKK01BSlNUT1JPVknEhiBEQVJLTworTUFKU1RPUk9WScSGIERSQUdBTgorTUFKU1RPUk9WScSGIERSQUdPTUlSCitNQUpTVE9ST1ZJxIYgRFXFoEFOCitNQUpTVE9ST1ZJxIYgRFXFoEtPCitNQUpTVE9ST1ZJxIYgR09SREFOQQorTUFKU1RPUk9WScSGIEtBVElDQQorTUFKU1RPUk9WScSGLUtPU1RJxIYgVkVTTkEKK01BSlNUT1JPVknEhiBMSklMSkFOQQorTUFKU1RPUk9WScSGIE1JTEFOCitNQUpTVE9ST1ZJxIYgTUlMQU4KK01BSlNUT1JPVknEhiBNSUxJQ0EKK01BSlNUT1JPVknEhiBORcSQTworTUFKU1RPUk9WScSGIE5FQk9KxaBBCitNQUpTVE9ST1ZJxIYgTkVWRU5LQQorTUFKU1RPUk9WScSGIE5JS09MQQorTUFKU1RPUk9WScSGIFBFVEFSCitNQUpTVE9ST1ZJxIYgUkFET1NMQVYKK01BSlNUT1JPVknEhiBTQVZLQQorTUFKU1RPUk9WScSGIFNJTUEKK01BSlNUT1JPVknEhiBTTE9CT0RBTgorTUFKU1RPUk9WScSGIFNWRVRMQU5BCitNQUpTVE9ST1ZJxIYgVEVPRE9SCitNQUpTVE9ST1ZJxIYgVVJPxaAKK01BSlNUT1JPVknEhiBWQVNBCitNQUpTVE9ST1ZJxIYgVklUT01JUgorTUFKU1RPUk9WScSGIFZVS0HFoElOCitNQUpTVE9ST1ZJxIYgVlVLT1NBVkEKK01BSlRBTiDEkE9SxJBFIERJUEwgSU5HCitNQUpUQU4gS0FSTE8KK01BSlRBTiBNSUhBSkxPCitNQUpUQU4gUEFWTEUKK01BSyBBTkRSSUpBCitNQUsgSk9TSVBBCitNQUsgT1NLQVIKK01BS8WgQSBBTkEKK01BS8WgQSBKT1ZBTgorTUFLxaBBIEtBUkxPCitNQUvFoEEgUEVUQVIKK01BS0FKSSBKQUtPVgorTUFLQUpJIEpBTktPCitNQUtBTiBKQU4KK01BS0FOSknEhiBCT0pBTgorTUFLQU5KScSGIE1JTElTQVYKK01BS0FSScSGIE5BREEKK01BS0FSScSGIFNURVZBTgorTUFLQVJJxIYgVklEQQorTUFLQVJJxIYgWk9SQU4KK01BS0FSSU4gxb1BUktPCitNQUtBUklOIFpWT05JTUlSIERJUEwgSU5HCitNQUtJxaAgUlXFvUEKK01BS0nFoCBWTEFUS08KK01BS0lUQU4gSk9WQU4KK01BS0lWScSGIE1JSEFKTE8KK01BS0lWScSGIE1JTE/FoAorTUFLSVZJxIYgU0FWQQorTUFLSVZJxIYgU1RBTklTTEFWCitNQUtKSSBaREVOS0EKK01BS0xFTk9WScSGIFJBREEKK01BS0xKRU5PVknEhiBTUkJPTEpVQgorTUFLTEpFTk9WScSGIFpPUkFOCitNQUtPIMWgQU5ET1IKK01BS08gRlJBTkpBCitNQUtPIEpVTElKQU5BCitNQUtPIE1JTEVOQQorTUFLT0ggQU5UT04KK01BS1JBIEFOQQorTUFLUkEgSVZBTgorTUFLUkEgSk9TSVAKK01BS1JBIEtBVEFSSU5BCitNQUtSSU4gTUFSR0lUQSBEUgorTUFLUklOIFJVxb1JQ0EKK01BS1NJxIYgxb1JVkFOQQorTUFLU0nEhiDEkE9SxJBFCitNQUtTScSGIEJJTEpBTkEKK01BS1NJxIYgQk/FoEtPCitNQUtTScSGIEJPxb1JREFSCitNQUtTScSGIERBTklDQQorTUFLU0nEhiBERUpBTgorTUFLU0nEhiBETUlUQVIKK01BS1NJxIYgRE9CUklWT0pFCitNQUtTScSGIERSQUdBTgorTUFLU0nEhiBEUkFHQU4KK01BS1NJxIYgRFJBR09NSVIKK01BS1NJxIYgRFXFoEFOCitNQUtTScSGIEVESVQKK01BS1NJxIYgR0FWUkEKK01BS1NJxIYgSkVMSUNBCitNQUtTScSGIEpFTElDQQorTUFLU0nEhiBKT1ZBTktBCitNQUtTScSGIEpPVkFOCitNQUtTScSGIEpPVkFOCitNQUtTScSGIExVS0EKK01BS1NJxIYgTUFSSUpBTkEKK01BS1NJxIYgTUlMQU5BCitNQUtTScSGIE1JTElDQQorTUFLU0nEhiBNSUxJQ0EKK01BS1NJxIYgTUlMT1JBRAorTUFLU0nEhiBNSUxPUkFECitNQUtTScSGIE5JS09MQQorTUFLU0nEhiBSQURPU0xBVgorTUFLU0nEhiBSQVRLTworTUFLU0nEhiBTQVZBCitNQUtTScSGIFNMQVZLTworTUFLU0nEhiBWT0pJTgorTUFLU0nEhiBaT1JLQQorTUFLU0lNxIxFViBBTsSQRUxLTworTUFLU0lNxIxFViBTVEVWQU4KK01BS1NJTU9WIEJSQU5JU0xBVgorTUFLU0lNT1YgTEpVQk9NSVIKK01BS1NJTU9WIFNMT0JPREFOCitNQUtTSU1PViBWRVJBCitNQUtTSU1PVknEhiDEjEVET01JUgorTUFLU0lNT1ZJxIYgxb1JVk9SQUQKK01BS1NJTU9WScSGIMSQVVJJQ0EKK01BS1NJTU9WScSGIEFMRUtTQU5EQVIKK01BS1NJTU9WScSGIEFMRUtTQU5EQVIKK01BS1NJTU9WScSGIEFMRUtTQU5EQVIKK01BS1NJTU9WScSGIEFOQQorTUFLU0lNT1ZJxIYgQU5LSUNBCitNQUtTSU1PVknEhiBCT8WgS08KK01BS1NJTU9WScSGIEJPUklWT0pFCitNQUtTSU1PVknEhiBCT1JJVk9KCitNQUtTSU1PVknEhiBCUkFOSVNMQVYKK01BS1NJTU9WScSGIEJSQU5LQQorTUFLU0lNT1ZJxIYgQ1ZJSkVUSU4KK01BS1NJTU9WScSGIERBTklDQQorTUFLU0lNT1ZJxIYgREFSS08KK01BS1NJTU9WScSGIERJTUlUUklKRQorTUFLU0lNT1ZJxIYgRFJBR0FOCitNQUtTSU1PVknEhiBEUkFHQU4KK01BS1NJTU9WScSGIERSQUdBTgorTUFLU0lNT1ZJxIYgRFJBR0nEhgorTUFLU0lNT1ZJxIYgRFJBR09TTEFWCitNQUtTSU1PVknEhiBEVcWgQU4gTVIgT0VDCitNQUtTSU1PVknEhiBEVcWgQU4KK01BS1NJTU9WScSGIERVxaBBTgorTUFLU0lNT1ZJxIYgRFXFoEFOCitNQUtTSU1PVknEhiBJVkFOS0EKK01BS1NJTU9WScSGIElWQU4KK01BS1NJTU9WScSGIEpBS09WCitNQUtTSU1PVknEhiBKRUxJU0FWRVRBCitNQUtTSU1PVknEhiBKT1ZBTgorTUFLU0lNT1ZJxIYgSk9WQU4KK01BS1NJTU9WScSGIEpPVkFOCitNQUtTSU1PVknEhiBLQVRBUklOQQorTUFLU0lNT1ZJxIYgS0FUSUNBCitNQUtTSU1PVknEhiBMQVpBUgorTUFLU0lNT1ZJxIYgTEFaQQorTUFLU0lNT1ZJxIYgTEVOS0EKK01BS1NJTU9WScSGIExKVUJJxaBBCitNQUtTSU1PVknEhiBMSlVCScWgQQorTUFLU0lNT1ZJxIYgTEpVQklDQQorTUFLU0lNT1ZJxIYgTEpVQklDQQorTUFLU0lNT1ZJxIYgTFVLQQorTUFLU0lNT1ZJxIYgTUFSS08KK01BS1NJTU9WScSGIE1JTEFOIERJUEwgSU5HCitNQUtTSU1PVknEhiBNSUxBTkEKK01BS1NJTU9WScSGIE1JTEFOCitNQUtTSU1PVknEhiBNSUxFTktPCitNQUtTSU1PVknEhiBNSUxFTktPCitNQUtTSU1PVknEhiBNSUxJTkEKK01BS1NJTU9WScSGIE1JTE9SQUQKK01BS1NJTU9WScSGIE1JTFVUSU4KK01BS1NJTU9WScSGIE1JT0RSQUcKK01BS1NJTU9WScSGIE1JT0RSQUcKK01BS1NJTU9WScSGIE1JT0RSQUcKK01BS1NJTU9WScSGIE1JT0RSQUcKK01BS1NJTU9WScSGIE1JUk9TTEFWCitNQUtTSU1PVknEhiBNTEFERU4KK01BS1NJTU9WScSGIE5BREEKK01BS1NJTU9WScSGIE5BVEFMSUpBCitNQUtTSU1PVknEhiBOSUtPTEEKK01BS1NJTU9WScSGIE5JS09MQQorTUFLU0lNT1ZJxIYgUEVUQVIKK01BS1NJTU9WScSGIFBSRURSQUcKK01BS1NJTU9WScSGIFJBRE1JTEEKK01BS1NJTU9WScSGIFJBRE9WQU5LQQorTUFLU0lNT1ZJxIYgUkFETworTUFLU0lNT1ZJxIYgUkFOxJBFTAorTUFLU0lNT1ZJxIYgUklTVE8KK01BS1NJTU9WScSGIFNBVkEKK01BS1NJTU9WScSGIFNBVk8KK01BS1NJTU9WScSGIFNMQVZPTEpVQgorTUFLU0lNT1ZJxIYgU1JFxIZLTworTUFLU0lNT1ZJxIYgU1RFVkFOCitNQUtTSU1PVknEhiBTVEVWQU4KK01BS1NJTU9WScSGIFNURVZBTgorTUFLU0lNT1ZJxIYgU1RFVklDQQorTUFLU0lNT1ZJxIYgU1ZFVE9NSVIKK01BS1NJTU9WScSGIFRJSE9NSVIKK01BS1NJTU9WScSGIFRJTktBCitNQUtTSU1PVknEhiBUT01JU0xBVgorTUFLU0lNT1ZJxIYgVE9NSVNMQVYKK01BS1NJTU9WScSGIFZFTEnEjEtPCitNQUtTSU1PVknEhiBWRUxJTUlSCitNQUtTSU1PVknEhiBWTEFESU1JUgorTUFLU0lNT1ZJxIYgWkxBVEEKK01BS1NJTU9WScSGIFpPUkFOCitNQUtTSU1PVlNLSSDEkE9SxJBFCitNQUtTSU1PVlNLSSBWT0pPCitNQUtTSU4gU0xBVktBCitNQUtVSCBNSUhBSUxPCitNQUtVSCBNSUhBSkxPCitNQUtVSCBWTEFESU1JUgorTUFMxIxJxIYgQU5EUklKQSBESVBMIElORworTUFMxIxJxIYgQU5EUklKQQorTUFMxIxJxIYgSk/FvUVGCitNQUzEjEnEhiBKVUxLQQorTUFMxIxJxIYgTklLT0xBCitNQUxBxaBFVknEhiBNSUxVVElOCitNQUxBQ0tPIEpVTElKQU4KK01BTEFDS08gTEpVQklDQQorTUFMQUVOScSGIERSQUdBTgorTUFMQVZSQVpJxIYgSk9WQU4KK01BTEJBxaBBIEJPUklTTEFWQQorTUFMQkHFoEEgRFJBR09MSlVCCitNQUxCQcWgQSBEVcWgQU5LQQorTUFMQkHFoEEgSkVMS0EKK01BTEJBxaBBIE1JTEFOCitNQUxCQcWgQSBNSUxFCitNQUxCQcWgQSBWRUxKS08KK01BTEJBxaBBIFpEUkFWS08KK01BTEJBxaBJxIYgQk/FoEtPCitNQUxCQcWgScSGIERSQUdBTgorTUFMQkHFoEnEhiBKQU5LTworTUFMQkHFoEnEhiBNScSGTworTUFMQkHFoEnEhiBSVcW9QQorTUFMQkHFoEtJIERVxaBBTgorTUFMQkHFoEtJLUpBTktPViBBTsSQQQorTUFMQkHFoEtJIE1BUklKQQorTUFMQkHFoEtJIE1JTElOS0EKK01BTEXFoCBBTsSQRUxLQQorTUFMRcWgIEJPUkEKK01BTEXFoCBETUlUQVIKK01BTEXFoCBKRUxFTkEKK01BTEXFoCBKT1ZBTktBCitNQUxFxaAgS09TVEEKK01BTEXFoCBMSklMSkFOQQorTUFMRcWgIE1BUklOS08KK01BTEXFoCBOT1ZBSworTUFMRcWgIFJBRE9NSVIKK01BTEXFoCBSVcW9SUNBCitNQUxFxaAgU1RBTkEKK01BTEXFoCBTVkVUTEFOQQorTUFMRcWgIFZBU08KK01BTEXFoCBWT0pJU0xBVgorTUFMRcWgIFpPUkEKK01BTEXFoEVWIMW9SVZLTworTUFMRcWgRVYgxb1JVk9KSU4KK01BTEXFoEVWIMSQT1LEkEUKK01BTEXFoEVWIEJPxaBLTworTUFMRcWgRVYgQk9SSVNMQVYKK01BTEXFoEVWIEJSQU5LTworTUFMRcWgRVYgREFNSkFOCitNQUxFxaBFViBEQU1KQU4KK01BTEXFoEVWIERJTUlUUklKRQorTUFMRcWgRVYgRFJBR0FOQQorTUFMRcWgRVYgRFJBR09MSlVCCitNQUxFxaBFViBEUkFHT0xKVUIKK01BTEXFoEVWIERVxaBBTgorTUFMRcWgRVYgSkVMSUNBCitNQUxFxaBFViBKT1ZBTgorTUFMRcWgRVYgS09TQU5BCitNQUxFxaBFViBMQVpBUgorTUFMRcWgRVYgTEpVQklDQQorTUFMRcWgRVYgTEpVQklOS08KK01BTEXFoEVWIExKVUJPTUlSCitNQUxFxaBFViBMVUtBCitNQUxFxaBFViBNQVJJSkEKK01BTEXFoEVWIE1JTEVOS08KK01BTEXFoEVWIE1JTEVWQQorTUFMRcWgRVYgTUlMSkEKK01BTEXFoEVWIE1JTE/FoAorTUFMRcWgRVYgTUlPRFJBRworTUFMRcWgRVYgTUlPRFJBRworTUFMRcWgRVYgTUlST1NMQVYKK01BTEXFoEVWIE1JUk9TTEFWCitNQUxFxaBFViBQRVRBUgorTUFMRcWgRVYgUEVUQVIKK01BTEXFoEVWIFBSRURSQUcKK01BTEXFoEVWIFBSRURSQUcKK01BTEXFoEVWIFBSSVpSRU5LQQorTUFMRcWgRVYgU0xBVktPCitNQUxFxaBFViBUQU1BUkEKK01BTEXFoEVWIFZFUkEKK01BTEXFoEVWIFZJVE9NSVIKK01BTEXFoEVWScSGIMW9SVZBTgorTUFMRcWgRVZJxIYgxb1JVktBCitNQUxFxaBFVknEhiDEkFVLQQorTUFMRcWgRVZJxIYgQUxFS1NBTkRSQQorTUFMRcWgRVZJxIYgRElNSVRSSUpFCitNQUxFxaBFVknEhiBEUkFHQU5BCitNQUxFxaBFVknEhiBEUkFHQU4KK01BTEXFoEVWScSGIERVxaBLTworTUFMRcWgRVZJxIYgR09KS08KK01BTEXFoEVWScSGIElWQU4KK01BTEXFoEVWScSGIEpPVkFOCitNQUxFxaBFVknEhiBKT1ZBTgorTUFMRcWgRVZJxIYgTEFaQVIKK01BTEXFoEVWScSGIExKVUJJQ0EKK01BTEXFoEVWScSGIE1BUklKQQorTUFMRcWgRVZJxIYgTUFSS08KK01BTEXFoEVWScSGIE1JTEUKK01BTEXFoEVWScSGIE1JTElDQQorTUFMRcWgRVZJxIYgTUlMT8WgCitNQUxFxaBFVknEhiBNSVJLTworTUFMRcWgRVZJxIYgTUlST1NMQVYKK01BTEXFoEVWScSGIE1MQURFTgorTUFMRcWgRVZJxIYgTkFEQQorTUFMRcWgRVZJxIYgTkVERUxKS08KK01BTEXFoEVWScSGIE5JS0lDQQorTUFMRcWgRVZJxIYgUEVUQVIKK01BTEXFoEVWScSGIFBFVEFSCitNQUxFxaBFVknEhiBTQVZLTyBMT0tBTAorTUFMRcWgRVZJxIYgU0xPQk9EQU5LQSBEUgorTUFMRcWgRVZJxIYgVkFTS1JTSUpFCitNQUxFxaBFVknEhiBWTEFESU1JUgorTUFMRcWgRVZJxIYgVk9KSVNMQVZBCitNQUxFQ0tJIEJMQcW9CitNQUxFTsSMScSGIMSQT1LEkEUKK01BTEVOxIxJxIYgR0FWUklMTworTUFMRU7EjEnEhiBNQVJJSkEKK01BTEVOxIxJxIYgTklLT0xBCitNQUxFTsSMScSGIFJPRE9MSlVCCitNQUxFTsSMScSGIFJVxb1JQ0EKK01BTEVOScSGIExBWkFSCitNQUxFTknEhiBSVcW9QQorTUFMRU5JxIYgU0lNQQorTUFMRU5JxIYgVE9NSVNMQVYKK01BTEVOSUNBIMSQVVJPCitNQUxFTklDQSBBTlRVTgorTUFMRU5JQ0EgRFJBR08KK01BTEVOSUNBIElWQU4KK01BTEVOSUNBIE1BUktPCitNQUxFTktPVknEhiDEkE9SxJBFCitNQUxFTktPVknEhiBNSUxPxaAgRFIKK01BTEVOS09WScSGIFZMQURJTUlSCitNQUxFTk9WScSGIE1JUk9TTEFWCitNQUxFUiBLUknFoFRPRgorTUFMRVJUIFZFTkRFTAorTUFMRVRBxaBLSSBFVklDQQorTUFMRVRJxIYtxaBSRUsgTUFSSUpBCitNQUxFVEnEhi3FoFJFSyBNQVJJSkEKK01BTEVUScSGIMW9QVJLTworTUFMRVRJxIYgxb1JVkFOS0EKK01BTEVUScSGIMW9SVZLTworTUFMRVRJxIYgxJBPUsSQRSBESVBMIElORworTUFMRVRJxIYgxJBPUsSQRQorTUFMRVRJxIYgxJBPUsSQRQorTUFMRVRJxIYgQk9TSUxKS0EKK01BTEVUScSGIERSQUdPU0xBVgorTUFMRVRJxIYgRFJBR08KK01BTEVUScSGIEpFTElDQQorTUFMRVRJxIYgSk9WQU5LQQorTUFMRVRJxIYgSk9WQU4KK01BTEVUScSGIExBVVJBCitNQUxFVEnEhiBMQVpBUgorTUFMRVRJxIYgTEFaQVIKK01BTEVUScSGIExVS0EKK01BTEVUScSGIE1BUklDQQorTUFMRVRJxIYgTUlMRU5LTworTUFMRVRJxIYgTUlMT01JUgorTUFMRVRJxIYgTUlPRFJBRworTUFMRVRJxIYgTUlPTUlSCitNQUxFVEnEhiBOQURBCitNQUxFVEnEhiBORURFTEpLTworTUFMRVRJxIYgTklLT0xBCitNQUxFVEnEhiBQQUpBCitNQUxFVEnEhiBSQURJVk9KCitNQUxFVEnEhiBSQURPU0xBVgorTUFMRVRJxIYgUkFET1NMQVYKK01BTEVUScSGIFNBVkEKK01BTEVUScSGIFNBVk8KK01BTEVUScSGIFNMQVZJQ0EKK01BTEVUScSGIFNMT0JPREFOS0EKK01BTEVUScSGIFNMT0JPREFOCitNQUxFVEnEhiBTUkJPTEpVQgorTUFMRVRJxIYgU1RFVkFOCitNQUxFVEnEhiBTVEVWQU4KK01BTEVUScSGIFNURVZBTgorTUFMRVRJxIYgU1ZFVE9aQVIKK01BTEVUScSGIFNWRVRPWkFSCitNQUxFVEnEhiBUQU1BUkEKK01BTEVUScSGIFZFS09TTEFWCitNQUxFVEnEhiBWSkVSQQorTUFMRVRJxIYgVkpFUkEKK01BTEVUScSGIFpMQVRLTworTUFMRVRJTiDEjEFSTkEgRElQTCBJTkcKK01BTEVUSU4gxb1JVktPCitNQUxFVElOIMSQT1LEkEUKK01BTEVUSU4gxJBPUsSQRQorTUFMRVRJTiDEkFVSQQorTUFMRVRJTiDEkFVSSUNBCitNQUxFVElOIEFMRUtTQU5EQVIKK01BTEVUSU4gQk/FoEtPCitNQUxFVElOIEJPxb1BTkEKK01BTEVUSU4gREFOSUNBCitNQUxFVElOIERBUklOS0EKK01BTEVUSU4gRFJBR0nFoEEKK01BTEVUSU4gRFXFoEFOCitNQUxFVElOIERVxaBBTgorTUFMRVRJTiBHT1JBTgorTUFMRVRJTiBKQU5BCitNQUxFVElOIEpFTEVOQQorTUFMRVRJTiBKT1ZBTgorTUFMRVRJTiBKT1ZBTgorTUFMRVRJTiBKT1ZBTgorTUFMRVRJTiBMSlVCT01JUgorTUFMRVRJTiBNQVJJSkEKK01BTEVUSU4gTUFSSUpBCitNQUxFVElOIE1JTEFOS0EKK01BTEVUSU4gTUlMQU4KK01BTEVUSU4gTUlMQU4KK01BTEVUSU4gTUlMT8WgCitNQUxFVElOIE1JTE9WQU4KK01BTEVUSU4gTUlSS08KK01BTEVUSU4gUEFKQQorTUFMRVRJTiBQQVZMRQorTUFMRVRJTiBSQURBCitNQUxFVElOIFJBRElWT0pFCitNQUxFVElOIFJVxb1JQ0EKK01BTEVUSU4gU0xBVklDQQorTUFMRVRJTiBTTEFWS08KK01BTEVUSU4gU1BPTUVOS0EKK01BTEVUSU4gU1RFVkFOCitNQUxFVElOIFNURVZBTgorTUFMRVRJTiBTVkVUT1pBUgorTUFMRVRJTiBTVkVUT1pBUgorTUFMRVRJTiBUSU1BCitNQUxFVElOIFRPRE9SCitNQUxFVElOIFRPRE9SCitNQUxFVElOIFZBU0EKK01BTEVUSU4gVklUT01JUgorTUFMRVRJTiBWT0pJU0xBVgorTUFMRVRJTiBaT1JBCitNQUxFVElOIFpPUkEKK01BTEVWScSGIFZMQURJTUlSCitNQUxJIMW9SVZBTgorTUFMSSDFvUlWS08KK01BTEkgREFNSkFOCitNQUxJIERSQUdBCitNQUxJIEVMRU9OT1JBCitNQUxJIEdPUkFOCitNQUxJIEpPVkFOCitNQUxJIEtSSVNUSUZPUgorTUFMSSBMSlVCSUNBCitNQUxJIExKVUJPTUlSCitNQUxJIE1JTE/FoAorTUFMSSBNSU9EUkFHCitNQUxJIFNBVkEKK01BTEkgU1RBTklNSVIKK01BTEkgVk9KSVNMQVYKK01BTEnEjEVWScSGIMSQT1LEkEUKK01BTEnEjEVWScSGIFJBRElWT0pFCitNQUxJxIxJxIYgTUlMT8WgCitNQUxJxIxJxIYgVk9KSVNMQVYKK01BTEnEhiDFvUFSS08KK01BTEnEhiBCSUxKQU5BCitNQUxJxIYgQk/FvUFOQQorTUFMScSGIENWSUpFVElOCitNQUxJxIYgTUlMQU4KK01BTEnEhiBNSUxFTktPCitNQUxJxIYgTUlUQVIKK01BTEnEhiBNTEFERU4KK01BTEnEhiBOT1ZBSworTUFMScSGIFBSRURSQUcKK01BTEnEhiBSQURJVk9KCitNQUxJxIYgUkFUS08KK01BTEnEhiBTTEFWS08KK01BTEnEhiBTT0ZJSkEKK01BTEnEhiBTVE9KQU4KK01BTEnEhiBTVE9KQQorTUFMScSGIFVST8WgCitNQUxJxIYgVlVLSUNBCitNQUxJRMW9QSDFvUVMSktPCitNQUxJRMW9QU4gQkxBxb1PCitNQUxJS09WScSGIERVxaBBTgorTUFMSU4gxJBVUkEKK01BTElOIElMSUpBCitNQUxJTiBNSUxJQ0EKK01BTElOIE9MR0EKK01BTElOIFNUQU5JU0xBVgorTUFMSU4gVEFUSkFOQQorTUFMSU5BUiBKRUxFTkEKK01BTElOScSGIFNQQVNPSkUKK01BTElOT1ZJxIYgQU7EkEEKK01BTElOT1ZJxIYgQU5LSUNBCitNQUxJTk9WScSGIEFOS0lDQQorTUFMSU5PVknEhiBCT8W9TworTUFMSU5PVknEhiBCT0dEQU4KK01BTElOT1ZJxIYgQk9HREFOCitNQUxJTk9WScSGIERBTklDQQorTUFMSU5PVknEhiBEUkFHQU4KK01BTElOT1ZJxIYgRFJBR0lOSkEKK01BTElOT1ZJxIYgRFJBR09MSlVCCitNQUxJTk9WScSGIEpPVk8KK01BTElOT1ZJxIYgTUFSSU5LTworTUFMSU5PVknEhiBORURFTEpLTworTUFMSU5PVknEhiBORURFTEpLTworTUFMSU5PVknEhiBTQVZPCitNQUxJTk9WScSGIFNJTknFoEEKK01BTElOT1ZJxIYgU0xBVklDQQorTUFMSU5PVknEhiBTVEVWQU4KK01BTElOT1ZJxIYgVkVMSktPCitNQUxJVlVLIEJPxb1BTkEKK01BTElWVUsgRFXFoEFOCitNQUxJVlVLIE1JTEFOCitNQUxJVlVLIE5JS09MQQorTUFMSVZVSyBQQVZMRQorTUFMSVZVSyBTVkVUSVNMQVYKK01BTEpBIE1PUklOQQorTUFMSklLIFNURVZBCitNQUxKS09WScSGIMSQVVJPCitNQUxKS09WScSGIEJSQU5LTworTUFMSktPVknEhiBCUkFOS08KK01BTEpLT1ZJxIYtRMW9VUtMRVZTS0kgQU5BCitNQUxKS09WScSGIE1BUktPCitNQUxKS09WScSGIE1JTEFOCitNQUxKS09WScSGIE1JTEFOCitNQUxKS09WScSGIE5FVkVOS0EKK01BTEpLT1ZJxIYgTklLT0xBCitNQUxKS09WScSGIFJBTktBCitNQUxKS09WScSGIFZFUkEKK01BTEtJxIYgR09SREFOCitNQUxLScSGIExKVUJJxaBBCitNQUxLScSGIFNUQU5BCitNQUxNRVIgQU5EUklKQQorTUFMTUVSIEFORFJJSkEKK01BTE5BUiBEUkFHVVRJTgorTUFMTkFSIEpPU0lQCitNQUxPxIxJxIYgTUlMQU4KK01BTE/EjEnEhiBNSUxPUkFECitNQUxPQkFCScSGIExKVUJBTgorTUFMT0JBQknEhiBNQVJLTworTUFMT0JBQknEhiBNSVJPU0xBVgorTUFMT0JBQknEhiBOT1ZJQ0EKK01BTE9CQUJJxIYgUkFERQorTUFMT0dBSlNLSSBCT1JJU0xBVgorTUFMT0dBSlNLSSBTVEVWQU4KK01BTE9UScSGIFNBVk8KK01BTE9WQcWgScSGIE1BUklKQQorTUFMT1ZJxIYgQk9HREFOCitNQUxPVknEhiBSQURNSUxBCitNQUxPVknEhiBTVEFOScWgQQorTUFMT1ZSQVpJxIYgR09KS08KK01BTE9WUkFaScSGIEdPSktPCitNQUxVQ0tPViBCT0dEQU4KK01BTFVDS09WIERBTklDQQorTUFMVUNLT1YgSk9WQU4KK01BTFVDS09WIE1BUklKQQorTUFMVUNLT1YgTUlPRFJBRyBESVBMIElORworTUFMVUNLT1YgUkFET1ZBTiBEUiBMRUtBUgorTUFMVUNLT1YgU0xPQk9EQU4KK01BTFVDS09WIFNURVZBTgorTUFMVUNLT1YgWk9SS0EKK01BTUnEhiBJVkFOCitNQU1JxIYgSk9aTworTUFNVcW9ScSGIElWQU4gRElQTCBJTkcKK01BTVXFvUnEhiBJVkFOCitNQU1Vxb1JxIYgSVZBTgorTUFNVUxBIERVxaBBTgorTUFNVUxBIE1MQURFTktBCitNQU1VTEEgUEFWTEUKK01BTVVMQSBSVcW9QQorTUFNVVRPVknEhiBNSUxBTgorTUFNVVRPVknEhiBNSUxBTgorTUFNVVRPVknEhiBSQURJVk9KCitNQU1VWknEhiBCT0dEQU5LQQorTUFOxIxFViBOSUtPTEEKK01BTsSMRVZTS0kgS0FUQQorTUFOxIxFVlNLSSBTVEVWQU4KK01BTsSMScSGIEFSQU5LQQorTUFOxIxJxIYgRFJBR0FOIERSCitNQU7EjEnEhiBLQVRBCitNQU7EjEnEhiBOSUtPTEEKK01BTsSMScSGIFNBxaBBCitNQU7EjEnEhiBTTE9CT0RBTgorTUFOxIxJxIYgU1ZFVE9aQVIKK01BTsSMVSDEkE9SxJBFCitNQU7EjFUgRFJBR0lOSkEKK01BTsSMVSBEVcWgQU4KK01BTsSMVSBNSUxBTgorTUFOxIxVIE1JTEFOCitNQU7EjFUgTUlMT8WgCitNQU7EjFUgTUlMT8WgCitNQU7EjFUgTkVOQUQKK01BTsSMVSBTVEVWQU4KK01BTsSMVSBTVkVUT1pBUgorTUFOxIxVIFZJS1RPUgorTUFOQVNJSkVWScSGIEdFUkFTSU0KK01BTkFTVElSQUMgREFNSkFOCitNQU5BU1RJUkFDIExKVUJJxaBBCitNQU5DIFNURVZBTgorTUFOQ0VERVIgxJBVUkEKK01BTkTFvVVLScSGIE1JT0RSQUcKK01BTkTFvVVLT1ZJxIYgVkVMSU1JUgorTUFOREFSSU4gTkFUQcWgQQorTUFOREVLIEZJTElQCitNQU5ERUxDIExKVUJJQ0EKK01BTkRJxIYgxIxBVkEKK01BTkRJxIYgxb1JVktPCitNQU5EScSGIMSQT1LEkEUKK01BTkRJxIYgxJBPUsSQRQorTUFOREnEhiDEkFVSQQorTUFOREnEhiDEkFVSSUNBCitNQU5EScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK01BTkRJxIYgQUxFS1NBTkRBUgorTUFOREnEhiBCT8WgS08KK01BTkRJxIYgQk9HREFOCitNQU5EScSGIEJPUklTTEFWQQorTUFOREnEhiBCT1JJU0xBVgorTUFOREnEhiBCUkFOSVNMQVYKK01BTkRJxIYgQ1ZJSkVUQQorTUFOREnEhiBEQU5JQ0EKK01BTkRJxIYgREFSQQorTUFOREnEhiBERUxGSU5BCitNQU5EScSGIERFTkXFoAorTUFOREnEhiBET0JSSUxBCitNQU5EScSGIERSQUdBTkEKK01BTkRJxIYgRFJBR0FOCitNQU5EScSGIERSQUdPU0xBVgorTUFOREnEhiBEUkFHTworTUFOREnEhiBEUkFHTworTUFOREnEhiBEUkFHVVRJTgorTUFOREnEhiBEVcWgQU5LQQorTUFOREnEhiBEVcWgQU5LQQorTUFOREnEhiBEVcWgQU5LQQorTUFOREnEhiBEVcWgQU4KK01BTkRJxIYgRlJBTkpBCitNQU5EScSGIElHTkpBVAorTUFOREnEhiBJVkFOS0EKK01BTkRJxIYgSVZLQQorTUFOREnEhiBKT1ZBTktBCitNQU5EScSGLUpPVkFOT1ZJxIYgVklOS0EKK01BTkRJxIYgSk9WTworTUFOREnEhiBKT1ZPCitNQU5EScSGIEtBVElDQQorTUFOREnEhiBLT1NUQQorTUFOREnEhiBLU0VOSUpBCitNQU5EScSGIExKSUxKQU5BCitNQU5EScSGIExKVUJJQ0EKK01BTkRJxIYgTEpVQk9NSVIKK01BTkRJxIYgTUFORQorTUFOREnEhiBNQU5FCitNQU5EScSGIE1BUkEKK01BTkRJxIYgTUFSR0lUQQorTUFOREnEhiBNQVJJSkEKK01BTkRJxIYgTUFSSUpBCitNQU5EScSGIE1BUklKQQorTUFOREnEhiBNSUtBCitNQU5EScSGIE1JTEFESUpBCitNQU5EScSGIE1JTEFOIERJUEwgSU5HCitNQU5EScSGIE1JTEFOCitNQU5EScSGIE1JTEVOQQorTUFOREnEhiBNSUxFCitNQU5EScSGIE1JTEUKK01BTkRJxIYgTUlMRQorTUFOREnEhiBNSUxFCitNQU5EScSGIE1JTE9KRQorTUFOREnEhiBNSUxPSktPIERSIExFS0FSCitNQU5EScSGIE1JTE9SQUQKK01BTkRJxIYgTUlMT1JBRAorTUFOREnEhiBNSU9EUkFHCitNQU5EScSGIE1JUk9TTEFWCitNQU5EScSGIE5BREEKK01BTkRJxIYgTkFEQQorTUFOREnEhiBORcSQTworTUFOREnEhiBORcSQTworTUFOREnEhiBORURFTEpLTyBESVBMIFBSQVZOSUsKK01BTkRJxIYgTklLT0xBCitNQU5EScSGIE5JS09MQQorTUFOREnEhiBOT1ZLQQorTUFOREnEhiBQQU5FCitNQU5EScSGIFBFUkEKK01BTkRJxIYgUEVUQVIKK01BTkRJxIYgUkFERU5LTworTUFOREnEhiBSQURJVk9KRQorTUFOREnEhiBSQURNSUxBCitNQU5EScSGIFJBRE1JTEEKK01BTkRJxIYgUkFET0pLQQorTUFOREnEhiBSQURPTUlSCitNQU5EScSGIFJBRE9WQU4KK01BTkRJxIYgUkFET1ZBTgorTUFOREnEhiBSQUpBCitNQU5EScSGIFNJTknFoEEKK01BTkRJxIYgU0xBVktBCitNQU5EScSGIFNMQVZLTworTUFOREnEhiBTTE9CT0RBTgorTUFOREnEhiBTTE9CT0RBTgorTUFOREnEhiBTTkXFvUFOQQorTUFOREnEhiBTUkVURU4KK01BTkRJxIYgU1JFVEVOCitNQU5EScSGIFNSRVRPCitNQU5EScSGIFNURVZBTgorTUFOREnEhiBTVkVUS08KK01BTkRJxIYgU1ZFVExBTkEKK01BTkRJxIYgVEVSRVpJSkEKK01BTkRJxIYgVElCT1IKK01BTkRJxIYgVE9NSVNMQVYKK01BTkRJxIYgVE9NSVNMQVYKK01BTkRJxIYgVVJPxaAgRElQTCBPRUMKK01BTkRJxIYgVkFTSUxJSkUKK01BTkRJxIYgVkVMSVpBUgorTUFOREnEhiBWRVJBCitNQU5EScSGIFZJT0xFVEEKK01BTkRJxIYgWkxBVElDQQorTUFOREnEhiBaT1JBTgorTUFOREnEhiBaT1JBTgorTUFOREnEhiBaT1JJQ0EKK01BTkRJxIYgWk9SS0EKK01BTkRJxIYgWk9SS0EKK01BTkRJxIYgWk9SS0EKK01BTkRJxIYgWlZPTklNSVIKK01BTkRSQVBBIMSQVVJPCitNQU5EUklOTyBTQU5LQQorTUFORVNLSSBCTEFHT0pBCitNQU5FVlNLSSBCUkFOSVNMQVYKK01BTkVWU0tJIERVxaBBTgorTUFORVZTS0kgUkFET1NMQVYKK01BTkVWU0tJIFRSQUpLTyBEUgorTUFORVZTS0kgVkVSQQorTUFORyBCUkFOS08KK01BTkdFUiBKT1NJUAorTUFOSEFKTSBKT8W9RUYKK01BTknEhiBBTktJQ0EKK01BTknEhiBCTEFOS0EKK01BTknEhiBCT8W9SURBUgorTUFOScSGIEJSQU5JU0xBVgorTUFOScSGIEJSQU5LTworTUFOScSGIEJSQU5LTworTUFOScSGIERBTklMTworTUFOScSGIERSQUdJxaBBCitNQU5JxIYgTUlMT0pFCitNQU5JxIYgTUlMT0pFCitNQU5JxIYgTUlMT1JBRAorTUFOScSGIFNFVkVSIERJUEwgUEgKK01BTknEhiBTVkVUT01JUgorTUFOSU4gxJBPUsSQRQorTUFOSkEgU1JFRE9KRQorTUFOSkEgWkRSQVZLTworTUFOSkFLIERSQUdPCitNQU5KRU7EjEnEhiBTTE9CT0RBTgorTUFOSlVMT1YgTFVLQQorTUFOT0pMT1YgSVJFTkEKK01BTk9KTE9WIElWQU4KK01BTk9KTE9WIEpPVkFOS0EKK01BTk9KTE9WScSGIMSMRURPTUlSCitNQU5PSkxPVknEhiDEjEVETworTUFOT0pMT1ZJxIYgxb1BUktPCitNQU5PSkxPVknEhiDFvUlWS08KK01BTk9KTE9WScSGIMSQT1LEkEUKK01BTk9KTE9WScSGIEFMRUtTQU5EQVIKK01BTk9KTE9WScSGIEFMRUtTQU5EQVIKK01BTk9KTE9WScSGIEFMRUtTQQorTUFOT0pMT1ZJxIYgQU5HRUxJTkEKK01BTk9KTE9WScSGIEJJTEpBTkEKK01BTk9KTE9WScSGIEJPU0lMSktBCitNQU5PSkxPVknEhiBCUkFOSVNMQVYKK01BTk9KTE9WScSGIERBUklOS0EKK01BTk9KTE9WScSGIERFU0FOS0EKK01BTk9KTE9WScSGIERPQlJJTEEKK01BTk9KTE9WScSGIERSQUdBTkEKK01BTk9KTE9WScSGIERSQUdJQ0EKK01BTk9KTE9WScSGIERVxaBBTgorTUFOT0pMT1ZJxIYgRFXFoEFOCitNQU5PSkxPVknEhiBHUlVKSUNBCitNQU5PSkxPVknEhiBJTElKQQorTUFOT0pMT1ZJxIYgSkVMRU5BCitNQU5PSkxPVknEhiBKT1ZBTgorTUFOT0pMT1ZJxIYgS0FUQVJJTkEKK01BTk9KTE9WScSGIEtPVklMSktPCitNQU5PSkxPVknEhiBMQVpBUgorTUFOT0pMT1ZJxIYgTEFaQVIKK01BTk9KTE9WScSGIExBWkFSCitNQU5PSkxPVknEhiBMSlVCSUNBCitNQU5PSkxPVknEhiBMSlVCSUNBCitNQU5PSkxPVknEhiBMSlVCT01JUgorTUFOT0pMT1ZJxIYgTUFKQQorTUFOT0pMT1ZJxIYgTUFOT0pMTworTUFOT0pMT1ZJxIYgTUFOT0pMTworTUFOT0pMT1ZJxIYgTUFSSUpBCitNQU5PSkxPVknEhiBNSUxBTgorTUFOT0pMT1ZJxIYgTUlMQU4KK01BTk9KTE9WScSGIE1JTEFOCitNQU5PSkxPVknEhiBNSUxFTktPCitNQU5PSkxPVknEhiBNSUxPxaAKK01BTk9KTE9WScSGIE1JTE/FoAorTUFOT0pMT1ZJxIYgTUlMT8WgCitNQU5PSkxPVknEhiBNSUxPUkFECitNQU5PSkxPVknEhiBNSUxPUkFECitNQU5PSkxPVknEhiBNSU9EUkFHCitNQU5PSkxPVknEhiBNSU9EUkFHCitNQU5PSkxPVknEhiBNSVJKQU5BCitNQU5PSkxPVknEhiBNSVJLTyBESVBMIElORworTUFOT0pMT1ZJxIYgTUlSS08KK01BTk9KTE9WScSGIE1JUk9TTEFWCitNQU5PSkxPVknEhiBNT03EjElMTworTUFOT0pMT1ZJxIYgTU9NxIxJTE8KK01BTk9KTE9WScSGIE1PTcSMSUxPCitNQU5PSkxPVknEhiBORU5BRAorTUFOT0pMT1ZJxIYgTklLT0xBCitNQU5PSkxPVknEhiBQRVRBUgorTUFOT0pMT1ZJxIYgUEVUQVIKK01BTk9KTE9WScSGIFJBRElWT0oKK01BTk9KTE9WScSGIFJBVEtPCitNQU5PSkxPVknEhiBTQVZBCitNQU5PSkxPVknEhiBTQVZPCitNQU5PSkxPVknEhiBTTEFWSUNBCitNQU5PSkxPVknEhiBTTE9CT0RBTgorTUFOT0pMT1ZJxIYgU1RBTknFoEEgRFIgUFJPRgorTUFOT0pMT1ZJxIYgU1RBTktPCitNQU5PSkxPVknEhiBTVEVWQU4KK01BTk9KTE9WScSGIFNURVZBTgorTUFOT0pMT1ZJxIYgU1ZFVE9aQVIKK01BTk9KTE9WScSGIFRPxaBBCitNQU5PSkxPVknEhiBWQU5EQQorTUFOT0pMT1ZJxIYgVkVMSVNMQVYKK01BTk9KTE9WScSGIFZFUkEKK01BTk9KTE9WScSGIFpPUkFOCitNQU5PSkxPVknEhiBaT1JBTgorTUFOT0pMT1ZJxIYgWk9SQU4KK01BTk9KTE9WScSGIFpPUklDQQorTUFOT0pMT1ZJxIYgWlZPTktPCitNQU5VS09WIE9MR0EKK01BTlVLT1YgVE9ET1IKK01BT0RVxaAgQU5BCitNQU9EVcWgIERBTklDQQorTUFPRFXFoCBKT1ZPCitNQU9EVcWgIE1JT0RSQUcKK01BT0RVxaAgTklLT0xBCitNQU9EVcWgIFBSRURSQUcKK01BUiBFRFZBUkQKK01BUsSMQUsgTUlIQUpMTworTUFSxIxFSyBNSUxBTgorTUFSxIxFVEEgxJBVUkEKK01BUsSMRVRBIEJSQU5LTworTUFSxIxFVEEgRFJBR0lDQQorTUFSxIxFVEEgRFJBR0lDQQorTUFSxIxFVEEgTEFaQVIKK01BUsSMRVRBIE1JTEFOCitNQVLEjEVUQSBSQUpLTworTUFSxIxFVEEgU0xPQk9EQU4KK01BUsSMRVRBIFNURVZBCitNQVLEjEVUQSBWRUxJTUlSCitNQVLEjEVUQSBaT1JBCitNQVLEjEVUScSGIENWRVRBCitNQVLEjEVUScSGIERSQUdPCitNQVLEjEVUScSGIE1BUktPCitNQVLEjEVUScSGIE1JTEFOCitNQVLEjEVUScSGIE1JTEFOCitNQVLEjEVUScSGIE1JTEFOCitNQVLEjEVUScSGIE5JS09MQQorTUFSxIxFVEnEhiBPQlJFTklKQQorTUFSxIxFVEnEhiBPTEJJTkEKK01BUsSMRVRJxIYgUEVSSUNBCitNQVLEjEVUScSGIFBFVEFSCitNQVLEjEVUScSGIFBFVEFSCitNQVLEjEVUSU4gUkFERQorTUFSxIxJxIYgxb1JVkFOCitNQVLEjEnEhiDEkE9SxJBFCitNQVLEjEnEhiBBTEVLU0FOREFSCitNQVLEjEnEhiBCT8W9QU5BCitNQVLEjEnEhiBKRUxFTkEKK01BUsSMScSGIE1BUklKQQorTUFSxIxJxIYgTUlMRU5LTworTUFSxIxJxIYgU1RFVkFOCitNQVLEjEnEhiBTVEVWQU4KK01BUsSMScSGIFNURVZBTgorTUFSxIxJxIZFViBNQVJJSkEKK01BUsSMScSGRVYgTUVSSU1BCitNQVLEjElOS08gTUlMQU4KK01BUsSMT0sgQU5JQ0EKK01BUsSMT0sgScWgVFZBTgorTUFSxIxPSyBJU0lET1JBCitNQVLEjE9LIExJRElKQQorTUFSxIxPSyBNSUhBSkxPCitNQVLEjE9LIE1JSEFKTE8KK01BUsSMT0sgVkVSQQorTUFSxIxPSyBaVVpBTkEKK01BUsSMVUsgU0HFoEEKK01BUsSMVUsgU1RFVkFOCitNQVLFvUnEhiBBTklDQQorTUFSxJBFTE/FoEtJIFNUQU5VxaBBCitNQVJBxaAgSk9WQU4KK01BUkHFoCBNSVJPSkUKK01BUkHFoCBTTE9CT0RBTgorTUFSQcWgIFZPSklOCitNQVJBQ0kgTUlIQUxKCitNQVJBS09WScSGIE5FVkVOQQorTUFSQU1JQ0EgSkVMRU5BCitNQVJBTUlDQSBNSVJPU0xBVgorTUFSQU4gRFJBR0nFoEEKK01BUkFOIE1JTE9SQUQKK01BUkFTIEZJTElQCitNQVJBUyBKT1NJUAorTUFSQVVDIFpWT05JTUlSCitNQVJBVknEhiDEkFVSTworTUFSQVZJxIYgxJBVUk8KK01BUkFWScSGIMSQVVJPCitNQVJBVknEhiBCUkFOSVNMQVYKK01BUkFWScSGIERNSVRBUgorTUFSQVZJxIYgRFJBR0lDQQorTUFSQVZJxIYgTEFaTworTUFSQVZJxIYgTUFSS08KK01BUkFWScSGIE1JSEFKTE8KK01BUkFWScSGIE1JTEFOCitNQVJBVknEhiBNSUxFTkEKK01BUkFWScSGIE1JTE/FoAorTUFSQVZJxIYgTklLT0xBCitNQVJBVknEhiBTQVZBCitNQVJBVknEhiBTTEFWSUNBCitNQVJBVknEhiBWTEFEQQorTUFSQ0VLScSGIERPQlJJTktBCitNQVJDSUtJxIYgxb1JVkFOQQorTUFSQ0lLScSGIEJPR0RBTgorTUFSQ0lLScSGIERSQUdJQ0EKK01BUkNJS0nEhiBFTUlMCitNQVJDSUtJxIYgR0lHQSBEUgorTUFSQ0lLScSGIEtPTlNUQU5USU4KK01BUkNJS0nEhiBMSklMSkFOQQorTUFSQ0lLScSGIExKVUJJTktBCitNQVJDSUtJxIYgTUFSSUNBCitNQVJDSUtJxIYgTUlMRU5BCitNQVJDSUtJxIYgU09GSUpBCitNQVJDSUtJxIYgU1RFVkFOCitNQVJDSUtJxIYgU1RFVkFOCitNQVJDSUtJxIYgVkVSQQorTUFSREXFoEnEhiDFoElNRQorTUFSRcWgIEJPxb1PCitNQVJFxaAgVFJJRlVOCitNQVJFxaDEjFVLIFBFVEFSCitNQVJFTEogxb1JVkFOCitNQVJFTEogTUlST1NMQVYKK01BUkVMSiBTRUxFTkEKK01BUkVMSiBWRUxJU0xBVgorTUFSRUxKIFpMQVRBCitNQVJFTEpFViBKRUxFTkEKK01BUkVUScSGIE1BUktPIERJUEwgT0VDCitNQVJFVEnEhiBTVEVWTworTUFSRVRJxIYgVkxBREEKK01BUkVUScSGIFZMQURBCitNQVJFVEnEhiBWTEFEQQorTUFSRVZJxIYgQU5URQorTUFSRkkgU01JTEpLQQorTUFSR0FOT1ZJxIYgRFJBR0lDQQorTUFSR0FOT1ZJxIYgRFXFoEFOIERSCitNQVJHQU5PVknEhiBHRU9SR0lOQQorTUFSR0FOWiBWSUtUT1IKK01BUkdFVEEgQU5JQ0EKK01BUkdFVEEgTUFSSUpBCitNQVJHRVRJxIYgxb1Jxb1BCitNQVJHRVRJxIYgRUxWSVJBCitNQVJHSVQgSlVMSUpBTkEKK01BUkdJVCBWRVJBCitNQVJHVcWgScSGIEFORFJJSkEKK01BUkhPxaBFVknEhiBNVUpPCitNQVJJxIxFVknEhiBLQVRJQ0EKK01BUknEjEVWScSGIFJJU1RBCitNQVJJxIxJxIYgQU5EUklKQQorTUFSScSMScSGIEJSQU5LTworTUFSScSMScSGIEJSQVRPTEpVQgorTUFSScSMScSGIEdPSktPCitNQVJJxIxJxIYgSUxJSkEKK01BUknEjEnEhiBJVklDQQorTUFSScSMScSGIE1BUkEKK01BUknEjEnEhiBNSUxBTgorTUFSScSMScSGIE1JTE9SQUQKK01BUknEjEnEhiBNSVJBCitNQVJJxIxJxIYgTkVERUxKS08KK01BUknEjEnEhiBOSUtPTEEKK01BUknEjEnEhiBOSUtPTEEKK01BUknEjEnEhiBQQVZMRQorTUFSScSMScSGIFNURVZBTgorTUFSScSMScSGIFNURVZBTgorTUFSScSMScSGIFZPSklTTEFWCitNQVJJxIxJTiBORU5BRAorTUFSScWgQU4gVkxBRElNSVIKK01BUknEhiDFvUFSS08KK01BUknEhiDFvUFSS08KK01BUknEhiDFvUlLQQorTUFSScSGIMW9SVZBTkEKK01BUknEhiDFvUlWS08KK01BUknEhiDEkE9SxJBFCitNQVJJxIYgxJBVUk8KK01BUknEhiBBREFNIERSCitNQVJJxIYgQUxFS1NBTkRBUgorTUFSScSGIEFOxJBFTEtPCitNQVJJxIYgQU7EkEVMS08KK01BUknEhiBBTktBCitNQVJJxIYgQU5LQQorTUFSScSGIEFOS0lDQQorTUFSScSGIEJPxaBLTworTUFSScSGIEJPxaBLTworTUFSScSGIEJPxb1JQ0EKK01BUknEhiBCT8W9SURBUgorTUFSScSGIEJPR09MSlVCCitNQVJJxIYgQk9KQURJTUlSCitNQVJJxIYgQk9SSVZPSgorTUFSScSGIEJPU0lMSktBCitNQVJJxIYgQlJBTklTTEFWIERJUEwgSU5HCitNQVJJxIYgQlJBTktPCitNQVJJxIYgQlJBTktPCitNQVJJxIYgQlJBTk8KK01BUknEhiBDVklKTworTUFSScSGIERBTklDQQorTUFSScSGIERBUklOS0EKK01BUknEhiBEQVZJRAorTUFSScSGIERSQUdBTkEKK01BUknEhiBEUkFHQU4KK01BUknEhiBEUkFHQU4KK01BUknEhiBEUkFHQU4KK01BUknEhiBEUkFHQU4KK01BUknEhiBEUkFHQU4KK01BUknEhiBEUkFHQU4KK01BUknEhiBEUkFHSUNBCitNQVJJxIYgRFJBR09MSlVCCitNQVJJxIYgRFXFoEFOS0EKK01BUknEhiBEVcWgQU4KK01BUknEhiBEVcWgQU4KK01BUknEhiBEVcWgQU4KK01BUknEhiBEVcWgQU4KK01BUknEhiBEVcWgQU4KK01BUknEhiBEVcWgSUNBCitNQVJJxIYgRVLFvUVCRVQKK01BUknEhiBHT0pLTworTUFSScSGIEdPSktPCitNQVJJxIYgR1JVSklDQSBEUgorTUFSScSGIElMRQorTUFSScSGIElMSUpBCitNQVJJxIYgSUxJSkEKK01BUknEhiBJTElOS0EKK01BUknEhiBJVk8KK01BUknEhiBKQURSQU5LQQorTUFSScSGIEpFTElDQQorTUFSScSGIEpPQ0EKK01BUknEhiBKT0xBTktBCitNQVJJxIYgSk9WQU5LQQorTUFSScSGIEpPVkFOCitNQVJJxIYgSk9WQU4KK01BUknEhiBKT1ZBTgorTUFSScSGIEpPVkFOCitNQVJJxIYgSk9WQU4KK01BUknEhiBKT1ZPCitNQVJJxIYgSk9WTworTUFSScSGIEpVTElKQU5BCitNQVJJxIYgS0FESVZLQQorTUFSScSGIEtBVElDQQorTUFSScSGIEtBVElDQQorTUFSScSGIEtPU1RBCitNQVJJxIYgTEFaQVIKK01BUknEhiBMSkVQT1NBVkEKK01BUknEhiBMSlVCQQorTUFSScSGIExKVUJJQ0EKK01BUknEhiBMSlVCT01JUgorTUFSScSGIExKVUJPTUlSCitNQVJJxIYgTEpVQk9NSVIKK01BUknEhiBMSlVQS08KK01BUknEhiBMVUtBCitNQVJJxIYgTUFSQQorTUFSScSGIE1BUklKQQorTUFSScSGIE1BUklKQQorTUFSScSGIE1BUklKQQorTUFSScSGIE1BUktPCitNQVJJxIYgTUFSS08KK01BUknEhiBNScSGQSBESVBMIElORworTUFSScSGIE1JSEFKTE8KK01BUknEhiBNSUxBTiBESVBMIElORworTUFSScSGIE1JTEFOIERSCitNQVJJxIYgTUlMQU5BCitNQVJJxIYgTUlMQU5LQQorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEUgRElQTCBPRUMKK01BUknEhiBNSUxFTkEKK01BUknEhiBNSUxFTkEKK01BUknEhiBNSUxFTktPCitNQVJJxIYgTUlMRU5LTworTUFSScSGIE1JTEVOS08KK01BUknEhiBNSUxJU0FWCitNQVJJxIYgTUlMT8WgCitNQVJJxIYgTUlMT8WgCitNQVJJxIYgTUlMT1JBRAorTUFSScSGIE1JTE9SQUQKK01BUknEhiBNSUxPU0FWCitNQVJJxIYgTUlMVU4KK01BUknEhiBNSUxVVElOCitNQVJJxIYgTUlSS08KK01BUknEhiBNSVJLTworTUFSScSGIE1JUktPCitNQVJJxIYgTUlSS08KK01BUknEhiBNSVJPTEpVQgorTUFSScSGIE1JVEFSCitNQVJJxIYgTUlUQVIKK01BUknEhi1NSVRST1ZJxIYgTUFSSUpBCitNQVJJxIYgTU9NxIxJTE8KK01BUknEhiBORUJPSsWgQQorTUFSScSGIE5FREVMSktPCitNQVJJxIYgTkVWRU5LQQorTUFSScSGIE5JS09MQQorTUFSScSGIE5JS09MQQorTUFSScSGIE5PVkFLCitNQVJJxIYgTk9WQUsKK01BUknEhiBPU1RPSkEKK01BUknEhiBQQVZMRQorTUFSScSGIFBFVEFSCitNQVJJxIYgUEVUQVIKK01BUknEhiBQUlZPU0xBVgorTUFSScSGIFJBRElWT0oKK01BUknEhiBSQURNSUxBCitNQVJJxIYgUkFETUlMQQorTUFSScSGIFJBRE1JTEEKK01BUknEhiBSQURPTUlSIERSCitNQVJJxIYgUkFET1NBVgorTUFSScSGIFJBRE9TTEFWQQorTUFSScSGIFJBRE9WQU5LQQorTUFSScSGIFJBRE9WQU4KK01BUknEhiBSQURPVkFOCitNQVJJxIYgUkFKS08KK01BUknEhiBTQVZBCitNQVJJxIYgU0lOScWgQQorTUFSScSGIFNMQVZJQ0EKK01BUknEhiBTTEFWS08KK01BUknEhiBTTEFWS08KK01BUknEhiBTTE9CT0RBTgorTUFSScSGIFNMT0JPREFOCitNQVJJxIYgU1JFVEVOIERSIFBST0YKK01BUknEhiBTVEFOSVNMQVYKK01BUknEhiBTVEFOSVNMQVYKK01BUknEhiBTVEVWQU4KK01BUknEhiBTVEVWQU4KK01BUknEhiBTVEVWQU4KK01BUknEhiBTVEVWQU4KK01BUknEhiBTVEVWQU4KK01BUknEhiBTVEVWS0EKK01BUknEhiBTVEVWTworTUFSScSGIFNUT0pBTktBCitNQVJJxIYgU1ZFVElTTEFWIFBST0ZFU09SCitNQVJJxIYgU1ZFVElTTEFWCitNQVJJxIYgVEFNQVJBIERJUEwgSU5HCitNQVJJxIYgVVJPxaAKK01BUknEhiBWQVNLQQorTUFSScSGIFZBU08KK01BUknEhiBWRVJBCitNQVJJxIYgVklECitNQVJJxIYgVkxBRElTTEFWCitNQVJJxIYgVk9KSVNMQVYgRFIgUFJPRgorTUFSScSGIFZVS0FESU4KK01BUknEhiBaT1JBTktBCitNQVJJxIYgWk9SQU4KK01BUknEhiBaT1JBTgorTUFSScSGRVZJxIYgWk9SQU4KK01BUklBxaAgSk/FvUVGCitNQVJJQcWgIE1BUklKQQorTUFSSUpBxaAgSk9WQU4KK01BUklKQcWgIE1BUklKQQorTUFSSUpBxaAgTUFSSUpBCitNQVJJSkHFoCBNQVJJSkEKK01BUklKQcWgIE1JSEFMSgorTUFSSUpBxaAgU1RFVkFOCitNQVJJSkHFoCBaREVOS0EKK01BUklKQU4gxb1FTEpLTworTUFSSUpBTiBCUkFOSVNMQVZBCitNQVJJSkFOQUMgU1RPSkEKK01BUklKQU5PVknEhiBSQURPSktBCitNQVJJSkFOT1ZJxIYgU1ZFVE9aQVIKK01BUklKQU5TS0kgxJBPUsSQRQorTUFSSUpBTlNLSSDEkE9SxJBFCitNQVJJSkFOU0tJIEFMRUtTQU5EQVIKK01BUklKQU5TS0kgTUlMT8WgCitNQVJJSkFOU0tJIFNURVZBTgorTUFSSUpBTlNLSSBWRVNOQQorTUFSSU4gTUlMQU4KK01BUklOIE1JTElWT0oKK01BUklOIE1MQURFTgorTUFSSU4gTkFUQUxJSkEKK01BUklOIE5JS09MQQorTUFSSU4gUkFET01JUgorTUFSSU4gVkFTTworTUFSSU4gVkVSSUNBCitNQVJJTiBaT1JBTgorTUFSSU7EjEVWIEJSQU5JU0xBVgorTUFSSU7EjEVWIFNURVZBTgorTUFSSU7EjEnEhiBEUkFHSUNBCitNQVJJTsSMScSGIE1BUktPCitNQVJJTsSMScSGIE1JTEFOCitNQVJJTsSMScSGIE1JTEFOCitNQVJJTsSMScSGIE9MR0EKK01BUklOxaBFSyBWSkVLT1NMQVYKK01BUklOQSDFoFRFRkFOCitNQVJJTkEgTFXEhklKQU4KK01BUklOQUMgWk9SQU4KK01BUklOScSGIEJSQU5LTworTUFSSU5JxIYgSVZPCitNQVJJTknEhiBTVElQQU4KK01BUklOS09WIMSMRURBCitNQVJJTktPViDFvUFSS08KK01BUklOS09WIMSQT1LEkEUKK01BUklOS09WIMSQT1LEkEUKK01BUklOS09WIMSQVVJBIERJUEwgSU5HCitNQVJJTktPViBBTktJQ0EKK01BUklOS09WIEFSU0VOCitNQVJJTktPViBCT8W9QQorTUFSSU5LT1YgREVKQU4KK01BUklOS09WIERSQUdJTkpBCitNQVJJTktPViBEVcWgQU4KK01BUklOS09WIEZFTUtBCitNQVJJTktPViBHQVZSQQorTUFSSU5LT1YgSk9WQU5LQQorTUFSSU5LT1YgSk9WQU4KK01BUklOS09WIEpPVkFOCitNQVJJTktPViBKVUxJSkFOQQorTUFSSU5LT1YgSlVMSUpBTkEKK01BUklOS09WIE1FTEFOSUpBCitNQVJJTktPViBNSUxFTktPCitNQVJJTktPViBNSUxJVk9KIERJUEwgSU5HCitNQVJJTktPViBNSUxKQQorTUFSSU5LT1YgTUlMT1JBRAorTUFSSU5LT1YgTUlMT1NBVkEKK01BUklOS09WIE1JT0RSQUcKK01BUklOS09WIE1JUkpBTkEKK01BUklOS09WIE1PTcSMSUxPCitNQVJJTktPViBNT03EjElMTworTUFSSU5LT1YgTklLT0xBCitNQVJJTktPViBPTUVSCitNQVJJTktPViBQQUpBCitNQVJJTktPViBQUkVEUkFHCitNQVJJTktPViBSVcW9SUNBCitNQVJJTktPViBTQVZBCitNQVJJTktPViBTSU5JxaBBCitNQVJJTktPViBTTEFWS08KK01BUklOS09WIFNMQVZLTworTUFSSU5LT1YgU1RFVkFOCitNQVJJTktPViBTVEVWQU4KK01BUklOS09WIFNUUkFISU5KQSBEUiBQUk9GCitNQVJJTktPViBWRVNFTElOCitNQVJJTktPViBWRVNOQQorTUFSSU5LT1YgVkxBREEKK01BUklOS09WIFZMQUpLTworTUFSSU5LT1YgWk9SQU4KK01BUklOS09WScSGIMSMRURPTUlSCitNQVJJTktPVknEhiDFvUlWQQorTUFSSU5LT1ZJxIYgxb1JVktBCitNQVJJTktPVknEhiDFvUlWS08KK01BUklOS09WScSGIMW9SVZLTworTUFSSU5LT1ZJxIYgxb1JVktPCitNQVJJTktPVknEhiDFvUlWT0pJTgorTUFSSU5LT1ZJxIYgxb1JVk9SQUQKK01BUklOS09WScSGIEJPR09MSlVCCitNQVJJTktPVknEhiBCT0pBCitNQVJJTktPVknEhiBCT1JJU0xBVgorTUFSSU5LT1ZJxIYgQk9SSVZPSkUgRFIKK01BUklOS09WScSGIEJSQU5LTworTUFSSU5LT1ZJxIYgQlJBVElNSVIKK01BUklOS09WScSGIERSQUdBTgorTUFSSU5LT1ZJxIYgRFJBR0FOCitNQVJJTktPVknEhiBEUkFHQU4KK01BUklOS09WScSGIERSQUdBTgorTUFSSU5LT1ZJxIYgRFJBR0lDQQorTUFSSU5LT1ZJxIYgRFJBR0lDQQorTUFSSU5LT1ZJxIYgSkVMSUNBCitNQVJJTktPVknEhiBKT1ZBTgorTUFSSU5LT1ZJxIYgS0FUQUxJTgorTUFSSU5LT1ZJxIYgTEVQT1NBVkEKK01BUklOS09WScSGIE1JxIZPCitNQVJJTktPVknEhiBNSUxBTgorTUFSSU5LT1ZJxIYgTUlMRU5BCitNQVJJTktPVknEhiBNSUxFTkEKK01BUklOS09WScSGIE1JTEVOQQorTUFSSU5LT1ZJxIYgTUlMRU4KK01BUklOS09WScSGIE1JTElDQQorTUFSSU5LT1ZJxIYgTUlMSVZPSkUKK01BUklOS09WScSGIE1JTE9KS08KK01BUklOS09WScSGIE1JTE9SQUQKK01BUklOS09WScSGIE1JTE9WQU4KK01BUklOS09WScSGIE1JTFVUSU4KK01BUklOS09WScSGIE1JUktPCitNQVJJTktPVknEhiBNSVJPU0xBVgorTUFSSU5LT1ZJxIYgTUlUQVIKK01BUklOS09WScSGIE1JVEFSCitNQVJJTktPVknEhiBORU5BRAorTUFSSU5LT1ZJxIYgTklLT0xBCitNQVJJTktPVknEhiBOSUtPTEEKK01BUklOS09WScSGIE5JS09MQQorTUFSSU5LT1ZJxIYgUkFEQQorTUFSSU5LT1ZJxIYgUkFESVZPSgorTUFSSU5LT1ZJxIYgUkFET0pJQ0EKK01BUklOS09WScSGIFJBRE9KS0EKK01BUklOS09WScSGIFJBRE9NSVIKK01BUklOS09WScSGIFJBRE9TTEFWIERSCitNQVJJTktPVknEhiBSQURPVkFOCitNQVJJTktPVknEhiBSSVNUQU5BCitNQVJJTktPVknEhiBSVcW9SUNBCitNQVJJTktPVknEhiBTQVZBCitNQVJJTktPVknEhiBTTEFWS08KK01BUklOS09WScSGIFNMT0JPREFOCitNQVJJTktPVknEhiBTTE9CT0RBTgorTUFSSU5LT1ZJxIYgU0xPQk9EQU4KK01BUklOS09WScSGIFNPRklKQQorTUFSSU5LT1ZJxIYgU1RBTktPCitNQVJJTktPVknEhiBTVEFOT0pLQQorTUFSSU5LT1ZJxIYgU1RFVkFOCitNQVJJTktPVknEhiBTVE9KQU5LQQorTUFSSU5LT1ZJxIYgU1RPSkFOCitNQVJJTktPVknEhiBTVkVUSVNMQVYKK01BUklOS09WScSGIFZMQURJQ0EKK01BUklOS09WScSGIFZMQURPCitNQVJJTktPVknEhiBWT0pJTgorTUFSSU5LT1ZJxIYgVk9KSVNMQVZLQQorTUFSSU5LT1ZJxIYgVlVLQcWgSU4KK01BUklOS09WScSGIFpPUkFOCitNQVJJTk9WIE1BUklOS08KK01BUklOT1ZJxIYgxJBPUsSQRQorTUFSSU5PVknEhiBBTEVLU0FOREFSCitNQVJJTk9WScSGIEFMRUtTQU5EQVIKK01BUklOT1ZJxIYgRE9CUklWT0pFCitNQVJJTk9WScSGIERVxaBBTgorTUFSSU5PVknEhiBLQVRJQ0EKK01BUklOT1ZJxIYgTUFSSUpBCitNQVJJTk9WScSGIE1JTEFOCitNQVJJTk9WScSGIFBFSk8KK01BUklOT1ZJxIYtU1JEQU5PViBEQU5JQ0EKK01BUklOT1ZJxIYgVE9NSVNMQVYKK01BUklOT1ZJxIYgVklOS0EKK01BUklOT1ZJxIYgWkxBVElDQQorTUFSSU5PVknEhiBaT1JJQ0EKK01BUklOT1ZJxIYgWk9SSUNBCitNQVJJTk9WU0tJIMSQT1LEkEUKK01BUklOT1ZTS0kgS0FUSUNBCitNQVJKQcWgIEFOS0EKK01BUkpBxaAgSkFOS08KK01BUkpBxaAgTUnFoEEKK01BUkpBxaAgTUlIQUpMTworTUFSSkHFoCBNSUxLQQorTUFSSkHFoCBTVEFOS08KK01BUkpBxaAgVkxBRElNSVIKK01BUkpBTiBEVcWgQU4KK01BUkpBTiBNSUxJSkFOQQorTUFSSkFOIE1JUktPCitNQVJKQU5PViBEVcWgQU4KK01BUkpBTk9WIEVSxb1FQkVUCitNQVJKQU5PViBKT1ZBTktBCitNQVJKQU5PViBMSlVCT01JUgorTUFSSkFOT1YgTUFSQQorTUFSSkFOT1YgTUlIQUpMTyBEUgorTUFSSkFOT1YgTUlMRU5LTworTUFSSkFOT1YgT0xHQQorTUFSSkFOT1YgUkFET1ZBTgorTUFSSkFOT1YgU09OSkEKK01BUkpBTk9WIFRJTU9USUpFCitNQVJKQU5PViBWVUpJQ0EKK01BUkpBTk9WScSGIMSMRURPTUlSCitNQVJKQU5PVknEhiDFvUFSS08KK01BUkpBTk9WScSGIMW9RUxKS08KK01BUkpBTk9WScSGIMW9SVZPVEEKK01BUkpBTk9WScSGIMW9SVZPVEEKK01BUkpBTk9WScSGIMSQT1LEkEUKK01BUkpBTk9WScSGIMSQVVJPCitNQVJKQU5PVknEhiBBTEVLU0FOREFSCitNQVJKQU5PVknEhiBCSUxKQU5BCitNQVJKQU5PVknEhiBCT8W9SURBUgorTUFSSkFOT1ZJxIYgQk/FvUlEQVIKK01BUkpBTk9WScSGIEJPSkFOQQorTUFSSkFOT1ZJxIYgQk9SSVZPSkUKK01BUkpBTk9WScSGIEJPU0lMSktBCitNQVJKQU5PVknEhiBCUkFOSU1JUgorTUFSSkFOT1ZJxIYgREFOQQorTUFSSkFOT1ZJxIYgREFOSUxLTworTUFSSkFOT1ZJxIYgRElNSVRSSUpFCitNQVJKQU5PVknEhiBEUkFHQU4KK01BUkpBTk9WScSGIERSQUdJxaBBCitNQVJKQU5PVknEhiBEUkFHScWgQQorTUFSSkFOT1ZJxIYgRFJBR09NSVIKK01BUkpBTk9WScSGIERVxaBBTktPCitNQVJKQU5PVknEhiBEVcWgQU4KK01BUkpBTk9WScSGIERVxaBBTgorTUFSSkFOT1ZJxIYgRFXFoEtPCitNQVJKQU5PVknEhiBHQUJSSUpFTAorTUFSSkFOT1ZJxIYgR09KS08KK01BUkpBTk9WScSGIEpPVkFOS0EKK01BUkpBTk9WScSGIEpPVkFOCitNQVJKQU5PVknEhiBKT1ZBCitNQVJKQU5PVknEhiBMSlVCSVZPSkUKK01BUkpBTk9WScSGIExKVUJPTUlSCitNQVJKQU5PVknEhiBMVUtBCitNQVJKQU5PVknEhiBNQVJJSkEKK01BUkpBTk9WScSGIE1JTEFOCitNQVJKQU5PVknEhiBNSUxBTgorTUFSSkFOT1ZJxIYgTUlMQU4KK01BUkpBTk9WScSGIE1JTEFOCitNQVJKQU5PVknEhiBNSUxFTktPIERSIElORworTUFSSkFOT1ZJxIYgTUlMSUNBIERSCitNQVJKQU5PVknEhiBNSUxPxaAKK01BUkpBTk9WScSGIE1JTE9NSVIKK01BUkpBTk9WScSGIE1JTE9SQUQKK01BUkpBTk9WScSGIE1JTE9SQUQKK01BUkpBTk9WScSGIE1JTE9SQUQKK01BUkpBTk9WScSGIE1JTE9SQUQKK01BUkpBTk9WScSGIE1JTFVUSU4KK01BUkpBTk9WScSGIE1JUk9TTEFWCitNQVJKQU5PVknEhiBNSVJPU0xBVgorTUFSSkFOT1ZJxIYgTUlUQVIKK01BUkpBTk9WScSGIE5BREEKK01BUkpBTk9WScSGIE5BVEFMSUpBCitNQVJKQU5PVknEhiBORURFTEpLTworTUFSSkFOT1ZJxIYgTkVERUxKS08KK01BUkpBTk9WScSGIE5JS09MQSBNUgorTUFSSkFOT1ZJxIYgTklLT0xBCitNQVJKQU5PVknEhiBOSUtPTEEKK01BUkpBTk9WScSGIE5JS09MQQorTUFSSkFOT1ZJxIYgTklLT0xBCitNQVJKQU5PVknEhiBOSUtPTEEKK01BUkpBTk9WScSGIFBSVk9TTEFWCitNQVJKQU5PVknEhiBSQURNSUxBCitNQVJKQU5PVknEhiBSVcW9SUNBCitNQVJKQU5PVknEhiBTTEFWT0xKVUIgRFIKK01BUkpBTk9WScSGIFNURVZLQQorTUFSSkFOT1ZJxIYgU1ZFVExBTkEKK01BUkpBTk9WScSGIFRBVEpBTkEKK01BUkpBTk9WScSGIFRSSVZVTgorTUFSSkFOT1ZJxIYgVkVMSU1JUgorTUFSSkFOT1ZJxIYgVkVSQQorTUFSSkFOT1ZJxIYgVklECitNQVJKQU5PVknEhiBWTEFETworTUFSSkFOT1ZJxIYgVk9KSU4KK01BUkpBTk9WScSGIFpPUkFOCitNQVJKQU5PVknEhiBaT1JBCitNQVJKQU5TS0kgRkVET1IKK01BUktBTk9WIExKVUJJQ0EKK01BUktBTk9WIFpPUklDQQorTUFSS0dSQUYgQU5JQ0EKK01BUktHUkFGIFNPRklKQQorTUFSS0kgTkVWRU5LQQorTUFSS0kgTklLT0xBCitNQVJLSSBTTEFWS0EKK01BUktJxaAgU09GSUpBCitNQVJLScSGRVZJxIYgRFXFoEFOS0EKK01BUktJxIZFVknEhiBNSUxBTgorTUFSS08gSkFOIFBST0ZFU09SCitNQVJLTyBOQURBIERSCitNQVJLT1NLSSBTVE9KQU4KK01BUktPViDFvUFSS08KK01BUktPViDFvUlWQQorTUFSS09WIMSQVVJBCitNQVJLT1YgQU7EkEVMS0EKK01BUktPViBDVkVUQU5BCitNQVJLT1YgRE9CUklMQQorTUFSS09WIERSQUdBTgorTUFSS09WIERSQUdBTgorTUFSS09WIERVxaBBTgorTUFSS09WIEVNSUwKK01BUktPViBGT1RJSkUKK01BUktPViBJTElKQQorTUFSS09WIElWSUNBCitNQVJLT1YtSkVMRU5JxIYgTUlSSkFOQQorTUFSS09WIExKVUJPTUlSCitNQVJLT1YgTEpVQk9NSVIKK01BUktPViBMSlVCT01JUgorTUFSS09WIE1BUklKQQorTUFSS09WIE1JTEFOCitNQVJLT1YgTUlMQU4KK01BUktPViBNSUxFTktPCitNQVJLT1YgTUlMSUNBCitNQVJLT1YgTUlMSUNBCitNQVJLT1YgTUlSQQorTUFSS09WIE5BREEKK01BUktPViBOQURBCitNQVJLT1YgTklLT0xBCitNQVJLT1YgUEVUQVIKK01BUktPViBQRVRBUgorTUFSS09WIFJBRElTTEFWCitNQVJLT1YgUkFET1NBVgorTUFSS09WIFJBRE9WQU4KK01BUktPViBSQURPVkFOCitNQVJLT1YgU0FWQQorTUFSS09WIFNJTknFoEEKK01BUktPViBTUEFTT0pFIERSCitNQVJLT1YgU1RPSkFOCitNQVJLT1YgVE9NSVNMQVYKK01BUktPViBWRVJBCitNQVJLT1YgVklET1NBVkEKK01BUktPViBaT1JBTiBNUgorTUFSS09WIFpPUkEKK01BUktPViBaT1JLQQorTUFSS09WScSGIMSMRURPTUlSCitNQVJLT1ZJxIYgxb1BUktPCitNQVJLT1ZJxIYgxb1BUktPCitNQVJLT1ZJxIYgxb1BUktPCitNQVJLT1ZJxIYgxb1FTElCT1IKK01BUktPVknEhiDFvUVMSktBCitNQVJLT1ZJxIYgxb1FTEpLTworTUFSS09WScSGIMW9SVZBTgorTUFSS09WScSGIMW9SVZLTworTUFSS09WScSGIMW9SVZPSklOIERSCitNQVJLT1ZJxIYgxb1JVk9KSU4KK01BUktPVknEhiDFvUlWT0pJTgorTUFSS09WScSGIMW9SVZPU0xBVgorTUFSS09WScSGIMW9SVZPVEEKK01BUktPVknEhiDEkEVOQQorTUFSS09WScSGIMSQT1LEkEUKK01BUktPVknEhiDEkE9SxJBFCitNQVJLT1ZJxIYgxJBPUsSQRQorTUFSS09WScSGIMSQT1LEkEUKK01BUktPVknEhiDEkE9SxJBFCitNQVJLT1ZJxIYgQURBTQorTUFSS09WScSGIEFMRUtTQU5EQVIKK01BUktPVknEhiBBTEVLU0FOREFSCitNQVJLT1ZJxIYgQUxFS1NBTkRBUgorTUFSS09WScSGIEFMRUtTQU5EQVIKK01BUktPVknEhiBBTEVLU0FOREFSCitNQVJLT1ZJxIYgQU5UT05JSkUKK01BUktPVknEhiBCT8WgS08KK01BUktPVknEhiBCT1JJU0xBVgorTUFSS09WScSGIEJPUklTTEFWCitNQVJLT1ZJxIYgQk9SSVMKK01BUktPVknEhiBCT1JJVk9KCitNQVJLT1ZJxIYgQlJBTklTTEFWCitNQVJLT1ZJxIYgQlJBTklTTEFWCitNQVJLT1ZJxIYgQlJBTklTTEFWCitNQVJLT1ZJxIYgQlJBTktPCitNQVJLT1ZJxIYgQlJBTktPCitNQVJLT1ZJxIYgQlVESU1JUgorTUFSS09WScSGIEJVRElNSVIKK01BUktPVknEhiBDVkVUS08KK01BUktPVknEhiBDVkVUS08KK01BUktPVknEhiBEQU5JQ0EKK01BUktPVknEhiBEQU5JQ0EKK01BUktPVknEhiBEQU5JQ0EKK01BUktPVknEhiBERUpBTgorTUFSS09WScSGIERFU0FOS0EKK01BUktPVknEhiBESU1JVFJJSkUKK01BUktPVknEhiBESU1JVFJJSkUKK01BUktPVknEhiBET0JST1NBVgorTUFSS09WScSGIERPQlJPU0FWCitNQVJLT1ZJxIYgRFJBR0FOCitNQVJLT1ZJxIYgRFJBR0FOCitNQVJLT1ZJxIYgRFJBR0FOCitNQVJLT1ZJxIYgRFJBR0nFoEEKK01BUktPVknEhiBEUkFHT0pBCitNQVJLT1ZJxIYgRFJBR09KQQorTUFSS09WScSGIERSQUdPTEpVQgorTUFSS09WScSGIERSQUdPTEpVQgorTUFSS09WScSGIERSQUdPTEpVQgorTUFSS09WScSGIERSQUdPTUlSCitNQVJLT1ZJxIYgRFJBR09TTEFWCitNQVJLT1ZJxIYgRFJBR09TTEFWCitNQVJLT1ZJxIYgRFJBR1VUSU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVcWgQU4KK01BUktPVknEhiBEVUJSQVZLTworTUFSS09WScSGIEVSxb1FQkVUCitNQVJLT1ZJxIYgRVZJQ0EKK01BUktPVknEhiBHT1JBTgorTUFSS09WScSGIEdPUkRBTkEKK01BUktPVknEhiBJR05KQVQKK01BUktPVknEhiBJTElKQQorTUFSS09WScSGIElMSUpBCitNQVJLT1ZJxIYgSVJFTkEKK01BUktPVknEhiBJVkFOCitNQVJLT1ZJxIYgSVZLTworTUFSS09WScSGIEpBRFJBTktBCitNQVJLT1ZJxIYgSkFEUkFOS0EKK01BUktPVknEhiBKQVJPU0xBVgorTUFSS09WScSGIEpFTEVOQQorTUFSS09WScSGIEpFTElDQQorTUFSS09WScSGIEpFTElDQQorTUFSS09WScSGIEpFTElTQVZLQQorTUFSS09WScSGIEpPVkFOIERJUEwgSU5HCitNQVJLT1ZJxIYgSk9WQU5LQQorTUFSS09WScSGIEpPVkFOCitNQVJLT1ZJxIYgSk9WQU4KK01BUktPVknEhiBKT1ZBTgorTUFSS09WScSGIEpPVkFOCitNQVJLT1ZJxIYgSk9WQU4KK01BUktPVknEhiBKT1ZBTgorTUFSS09WScSGIEpPVkFOCitNQVJLT1ZJxIYgSk9WTworTUFSS09WScSGIEpPVk8KK01BUktPVknEhiBKVUxJSkEKK01BUktPVknEhiBKVUxLQQorTUFSS09WScSGIEtBUkxPCitNQVJLT1ZJxIYgS0FST0xJTkEKK01BUktPVknEhiBLQVJPTElOQQorTUFSS09WScSGIEtBVEEKK01BUktPVknEhiBLQVRJQ0EKK01BUktPVknEhiBLT1NBTkEKK01BUktPVknEhiBLT1NUQQorTUFSS09WScSGIEtSQVNJTUlSCitNQVJLT1ZJxIYgS1NFTklKQQorTUFSS09WScSGIExFUE9TQVZBIExFS0FSCitNQVJLT1ZJxIYgTEpVQknFoEEKK01BUktPVknEhiBMSlVCSUNBCitNQVJLT1ZJxIYgTEpVQklDQQorTUFSS09WScSGIExKVUJJQ0EKK01BUktPVknEhiBMSlVCSU5LTworTUFSS09WScSGIExKVUJPTUlSCitNQVJLT1ZJxIYgTEpVQk9NSVIKK01BUktPVknEhiBMVUtBCitNQVJLT1ZJxIYtTUFKVEVOSkkgQU5EUklKQQorTUFSS09WScSGLU1BSlRFTkpJIE1JSEFMSgorTUFSS09WScSGIE1BUkEKK01BUktPVknEhiBNQVJJSkEKK01BUktPVknEhiBNQVJJSkEKK01BUktPVknEhiBNQVJJTkEKK01BUktPVknEhiBNQVJLTworTUFSS09WScSGIE1BUktPCitNQVJLT1ZJxIYgTUlIQUlMTworTUFSS09WScSGIE1JSEFKTE8KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEEKK01BUktPVknEhiBNSUxFVkEKK01BUktPVknEhiBNSUxFVkEKK01BUktPVknEhiBNSUxLTworTUFSS09WScSGIE1JTEtPCitNQVJLT1ZJxIYgTUlMT8WgCitNQVJLT1ZJxIYgTUlMT8WgCitNQVJLT1ZJxIYgTUlMT8WgCitNQVJLT1ZJxIYgTUlMT8WgCitNQVJLT1ZJxIYgTUlMT0xKVUIKK01BUktPVknEhiBNSUxPTUlSCitNQVJLT1ZJxIYgTUlMT1JBRAorTUFSS09WScSGIE1JTE9SQUQKK01BUktPVknEhiBNSUxPUkFECitNQVJLT1ZJxIYgTUlMT1JBRAorTUFSS09WScSGIE1JTE9SQUQKK01BUktPVknEhiBNSUxPCitNQVJLT1ZJxIYgTUlMVVRJTgorTUFSS09WScSGIE1JTFVUSU4KK01BUktPVknEhiBNSU9EUkFHCitNQVJLT1ZJxIYgTUlPRFJBRworTUFSS09WScSGIE1JT0RSQUcKK01BUktPVknEhiBNSVJLTworTUFSS09WScSGIE1JUktPCitNQVJLT1ZJxIYgTUlST1NMQVZBCitNQVJLT1ZJxIYgTUlST1NMQVZBCitNQVJLT1ZJxIYgTUlST1NMQVYKK01BUktPVknEhiBNSVJPU0xBVgorTUFSS09WScSGIE1JUk9TTEFWCitNQVJLT1ZJxIYgTUlST1NMQVYKK01BUktPVknEhiBNTEFERU4KK01BUktPVknEhiBNTEFERU4KK01BUktPVknEhiBNT03EjElMTworTUFSS09WScSGIE1PTcSMSUxPCitNQVJLT1ZJxIYgTU9NSVIKK01BUktPVknEhiBOQURBCitNQVJLT1ZJxIYgTkFEQQorTUFSS09WScSGIE5BREEKK01BUktPVknEhiBOQURBCitNQVJLT1ZJxIYgTkFEQQorTUFSS09WScSGIE5BVEHFoEEKK01BUktPVknEhiBOQVRBTElKQQorTUFSS09WScSGIE5FREVMSktPCitNQVJLT1ZJxIYgTkVHT1NMQVYKK01BUktPVknEhiBORU1BTkpBCitNQVJLT1ZJxIYgTkVOQUQKK01BUktPVknEhiBORU5BRAorTUFSS09WScSGIE5JS09MQQorTUFSS09WScSGIE5JS09MQQorTUFSS09WScSGIE5JS09MQQorTUFSS09WScSGIE5JS09MQQorTUFSS09WScSGIE9CUkFECitNQVJLT1ZJxIYgT0JSQUQKK01BUktPVknEhiBPTEdBCitNQVJLT1ZJxIYgT0xHQQorTUFSS09WScSGIE9MR0EKK01BUktPVknEhiBPTEdBCitNQVJLT1ZJxIYgT0xHQQorTUFSS09WScSGIE9MR0EKK01BUktPVknEhiBPTEdBCitNQVJLT1ZJxIYgUEFWTEUKK01BUktPVknEhiBQRUrEjEEKK01BUktPVknEhiBQRVRBUiBESVBMIElORworTUFSS09WScSGIFBFVEFSIFZFVEVSSU5BUgorTUFSS09WScSGIFBFVEFSCitNQVJLT1ZJxIYgUEVUQVIKK01BUktPVknEhiBQRVRBUgorTUFSS09WScSGIFBFVEFSCitNQVJLT1ZJxIYgUEVUQVIKK01BUktPVknEhiBQRVRST05JSkUKK01BUktPVknEhiBQUkVEUkFHCitNQVJLT1ZJxIYgUFJWT1NMQVYgRFIKK01BUktPVknEhiBSQcWgQQorTUFSS09WScSGIFJBREVOS08KK01BUktPVknEhiBSQURFCitNQVJLT1ZJxIYgUkFESU5LQQorTUFSS09WScSGIFJBRElWT0oKK01BUktPVknEhiBSQURJVk9KCitNQVJLT1ZJxIYgUkFETUlMQQorTUFSS09WScSGIFJBRE1JTEEKK01BUktPVknEhiBSQURPSktBCitNQVJLT1ZJxIYgUkFET1NBViBESVBMIElORworTUFSS09WScSGIFJBRE9TQVYKK01BUktPVknEhiBSQURPU0xBVgorTUFSS09WScSGIFJBRE9WQU5LQQorTUFSS09WScSGIFJBRE9WQU4KK01BUktPVknEhiBSQURPVkFOCitNQVJLT1ZJxIYgUkFET1ZBTgorTUFSS09WScSGIFJBTktPCitNQVJLT1ZJxIYgUkFUS08KK01BUktPVknEhiBST0RPTEpVQgorTUFSS09WScSGIFJPWkFMSUpBCitNQVJLT1ZJxIYgUlXFvUlDQQorTUFSS09WScSGIFJVxb1JQ0EKK01BUktPVknEhiBTQcWgQQorTUFSS09WScSGIFNBVkEKK01BUktPVknEhiBTQVZBCitNQVJLT1ZJxIYgU0FWQQorTUFSS09WScSGIFNJTknFoEEKK01BUktPVknEhiBTSU5JxaBBCitNQVJLT1ZJxIYgU0xPQk9EQU4KK01BUktPVknEhiBTTE9CT0RBTgorTUFSS09WScSGIFNMT0JPREFOCitNQVJLT1ZJxIYgU01JTEpBCitNQVJLT1ZJxIYgU1LEkEFOCitNQVJLT1ZJxIYgU1RBTkEKK01BUktPVknEhiBTVEFOScWgQQorTUFSS09WScSGIFNUQU5JTUlSCitNQVJLT1ZJxIYgU1RBTklTTEFWCitNQVJLT1ZJxIYgU1RFRkFOSUpBCitNQVJLT1ZJxIYgU1RFVkFOCitNQVJLT1ZJxIYgU1RFVkFOCitNQVJLT1ZJxIYgU1RFVkFOCitNQVJLT1ZJxIYgU1RFVkFOCitNQVJLT1ZJxIYgU1RPSkFOCitNQVJLT1ZJxIYgU1RPSkFOCitNQVJLT1ZJxIYgU1RPSkFOCitNQVJLT1ZJxIYgU1RPSkEKK01BUktPVknEhiBTVkVUSVNMQVYKK01BUktPVknEhiBTVkVUTEFOQQorTUFSS09WScSGIFNWRVRPWkFSCitNQVJLT1ZJxIYgU1ZFVE9aQVIKK01BUktPVknEhiBUQU5BU0lKRQorTUFSS09WScSGIFRBVEpBTkEKK01BUktPVknEhiBUT0RPUgorTUFSS09WScSGIFRPTUlTTEFWCitNQVJLT1ZJxIYgVUdMSkXFoEEKK01BUktPVknEhiBWQVNBCitNQVJLT1ZJxIYgVkFTSUxJSkUgRFIKK01BUktPVknEhiBWRUxJTUlSCitNQVJLT1ZJxIYgVkVMSktPCitNQVJLT1ZJxIYgVkVMSktPCitNQVJLT1ZJxIYgVkVSQQorTUFSS09WScSGIFZFUkEKK01BUktPVknEhiBWRVJBCitNQVJLT1ZJxIYgVkVSQQorTUFSS09WScSGIFZFUkEKK01BUktPVknEhiBWScSGQQorTUFSS09WScSGIFZJRE9KRQorTUFSS09WScSGIFZJRE9TQVZBCitNQVJLT1ZJxIYgVklECitNQVJLT1ZJxIYgVklOS08KK01BUktPVknEhiBWSVRLTworTUFSS09WScSGIFZJVE9NSVIKK01BUktPVknEhiBWTEFEQU4KK01BUktPVknEhiBWTEFESU1JUgorTUFSS09WScSGIFZMQURJTUlSCitNQVJLT1ZJxIYgVkxBRElNSVIKK01BUktPVknEhiBWTEFET0pFCitNQVJLT1ZJxIYgVk9KSU4KK01BUktPVknEhiBWT0pJTgorTUFSS09WScSGIFZPSklTTEFWCitNQVJLT1ZJxIYgWkFHT1JLQQorTUFSS09WScSGIFpBR09SS0EKK01BUktPVknEhiBaTEFUQQorTUFSS09WScSGIFpMQVRJSkEKK01BUktPVknEhiBaT1JBTgorTUFSS09WScSGIFpPUkFOCitNQVJLT1ZJxIYgWk9SQU4KK01BUktPVknEhiBaT1JBTgorTUFSS09WScSGIFpPUkFOCitNQVJLT1ZJxIYgWk9SQQorTUFSS09WScSGIFpPUkEKK01BUktPVknEhiBaT1JJQ0EKK01BUktPVknEhkFOIEpPTgorTUFSS09WSU5PVknEhiBQRVRBUgorTUFSS09WSU5PVknEhiBQRVRBUgorTUFSS09WTEpFViBEUkFHQU4KK01BUktPVlNLSSBDVkVUQU5BCitNQVJLT1ZTS0kgSk9WQU4KK01BUktTRVIgSVZBTgorTUFSS1NFUiBKT1ZBTgorTUFSS1XFoCBBTktJQ0EKK01BUktVxaAgQk9SSVNMQVYKK01BUktVxaAgRU1JTAorTUFSS1XFoCBFVEVMS0EKK01BUktVxaAgSk9TSVAKK01BUktVxaAgUFJFRFJBRworTUFSS1XFoCBaT1JBTgorTUFSS1XFoEVWIERSQUdJQ0EKK01BUktVxaBFViBKRUxFTkEKK01BUkxPRyBNSVJPU0xBVgorTUFST8WgIERVxaBBTgorTUFST8WgIE1JTE9WQU4KK01BUk/FoCBTVEVWQU4KK01BUk/FoCBWRUxKS08KK01BUk/FoEFOIFRJSE9NSVIKK01BUk/FoEVWIEtSSVNUQQorTUFST8WgRVZJxIYgSVZBTgorTUFST8WgRVZJxIYgTUFSS08KK01BUk/FoEVWScSGIE1BVEEKK01BUk/FoEVWScSGIE5BVEFMSUpBCitNQVJPxaBFVknEhiBWTEFESU1JUgorTUFST8SQSSBJVkFOCitNQVJPxJBJIEpPTEFOCitNQVJPxJBJIEpPTEFOCitNQVJPQ0kgTUFSR0lUQQorTUFST0pFVknEhiBBTEVLU0FOREFSCitNQVJPSkVWScSGIElWQU5LQQorTUFST0pFVknEhiBKT1NJUAorTUFST0pFVknEhiBSQURNSUxPCitNQVJPSkVWScSGIFNMQVZPTEpVQgorTUFST0xEIEpPU0lQCitNQVJPTEkgSVNBSworTUFST04gREVORcWgCitNQVJPTiBLQVJMTworTUFST1NMQVZBQyBNSVJPU0xBVgorTUFST1QgSVZBTgorTUFST1RJIE1JS0xPxaAKK01BUk9WScSGIMSQVVJBCitNQVJPVknEhiBCT1JJUyBEUgorTUFST1ZJxIYgREFSSU5LQQorTUFST1ZJxIYgTUlMSUNBCitNQVJPVknEhiBNSVJLTworTUFST1ZJxIYgUkFET01JUgorTUFST1ZJxIYgWkRFTktBCitNQVJPVlNLSSBOSUtPTEEKK01BUlNFTknEhiBEUkFHQU5BCitNQVJTRU5JxIYgTEVLQQorTUFSU0VOScSGIFNMQVZPSktBCitNQVJUScSGIMW9SVZPSklOCitNQVJUScSGIMSQVVJBCitNQVJUScSGIEJSQU5LQQorTUFSVEnEhiBEUkFHQU4KK01BUlRJxIYgS09TVEEKK01BUlRJxIYgTEFaQVIKK01BUlRJxIYgTEpVQk9NSVIKK01BUlRJxIYgTUFSQQorTUFSVEnEhiBNSUxBTgorTUFSVEnEhiBNSUxFTktPCitNQVJUScSGIE1JTElDQQorTUFSVEnEhiBPTEdBCitNQVJUScSGIFBFUk8KK01BUlRJxIYgUkFETUlMQQorTUFSVEnEhiBSQURPTUlSCitNQVJUScSGIFNMQVZLTworTUFSVEnEhiBTVEVWQU4KK01BUlRJxIYgVkxBRElNSVIKK01BUlRJxIYgVk9KTkEKK01BUlRJQ0tJIE1MQURFTgorTUFSVElOIEFMT0paSUpFCitNQVJUSU4gQU5UQUwKK01BUlRJTiBFTkRSRQorTUFSVElOIEVSxb1FQkVUCitNQVJUSU4gSU1SRQorTUFSVElOIElWQU4KK01BUlRJTiBKT1NJRgorTUFSVElOIEpPVkFOCitNQVJUSU4gTEpVQklOS0EKK01BUlRJTiBNQVRJTERBCitNQVJUSU4gTUlST1NMQVZBCitNQVJUSU4gWlZPTklNSVIKK01BUlRJTsSMRVZJxIYgTUlIQUpMTworTUFSVElOxIxJxIYgREFWT1IKK01BUlRJTsSMScSGIERBVk9SCitNQVJUSU5BxaBFVknEhiBIRVJNSU5BCitNQVJUSU5BxaBFVknEhiBPVE8KK01BUlRJTkFLIEpPVkFOCitNQVJUSU5FQyBBTlRPTgorTUFSVElORUsgQU5UQUwKK01BUlRJTkVLIEZFUkVOQworTUFSVElOS08gQU5EUklKQQorTUFSVElOT1YgxJBPUsSQRQorTUFSVElOT1YgQU5LQQorTUFSVElOT1YgTEFaQVIKK01BUlRJTk9WIE1JS0EKK01BUlRJTk9WIE1JTEFOIERSCitNQVJUSU5PViBNSUxJQ0EKK01BUlRJTk9WIE1JTE/FoAorTUFSVElOT1YgTUlMT8WgCitNQVJUSU5PViBNSUxPxaAKK01BUlRJTk9WIFNBTkRSQQorTUFSVElOT1YgU0FWQQorTUFSVElOT1YgU0xBVktPCitNQVJUSU5PViBTTEFWS08KK01BUlRJTk9WScSGIMSQT1LEkEUKK01BUlRJTk9WScSGIEFOxJBFTEtBCitNQVJUSU5PVknEhiBBTkEKK01BUlRJTk9WScSGIEFOSVRBCitNQVJUSU5PVknEhiBCUkFOS0EKK01BUlRJTk9WScSGIERFU0FOS0EKK01BUlRJTk9WScSGIERVxaBBTgorTUFSVElOT1ZJxIYgRUxJWkFCRVRBCitNQVJUSU5PVknEhiBGSUxJUAorTUFSVElOT1ZJxIYgRklOS0EKK01BUlRJTk9WScSGIElWTworTUFSVElOT1ZJxIYgSkVMRU5BCitNQVJUSU5PVknEhiBKT1ZBTiBWRVRFUklOQVIKK01BUlRJTk9WScSGIE1BUklKQU5BCitNQVJUSU5PVknEhiBNQVJJSkEKK01BUlRJTk9WScSGIE1JTEUKK01BUlRJTk9WScSGIE1JTElDQQorTUFSVElOT1ZJxIYgTUlMS0EKK01BUlRJTk9WScSGIE1JTEtBCitNQVJUSU5PVknEhiBOQURBCitNQVJUSU5PVknEhiBORU5BRAorTUFSVElOT1ZJxIYgT0xHQQorTUFSVElOT1ZJxIYgUEVSU0lEQQorTUFSVElOT1ZJxIYgUklTVEEKK01BUlRJTk9WScSGIFNMQVZLTworTUFSVElOT1ZJxIYgU1RBTknFoEEKK01BUlRJTk9WScSGIFNUQU5LQQorTUFSVElOT1ZJxIYgU1RFVkFOCitNQVJUSU5PVknEhiBTVkVUT1pBUgorTUFSVElOT1ZJxIYgVVJPxaAKK01BUlRJTk9WScSGIFZFTElNSVIKK01BUlRJTk9WScSGIFZFTEpLTworTUFSVElOT1ZJxIYgWkFSSUpFCitNQVJUSU5PVlNLSSBST01BTgorTUFSVE9OIMWgQU5ET1IKK01BUlRPTiDFvVXFvUFOQQorTUFSVE9OIEFORFJBxaAKK01BUlRPTiBGRVJFTkMKK01BUlRPTiBJxaBUVkFOCitNQVJUT04gSUxFxaAKK01BUlRPTiBKT8W9RUYKK01BUlRPTiBKT8W9RUYKK01BUlRPTiBKT0xBTgorTUFSVE9OIExBSk/FoAorTUFSVE9OIE1BxIZBxaAKK01BUlRPTiBNQVJJSkEKK01BUlRPTiBST1pBCitNQVJVxaDEjFVLIE1JUk9TTEFWCitNQVJVxaBFVknEhiBJVkFOCitNQVJVxaBJxIYgREFOSUNBCitNQVJVxaBJxIYgRlJBTkpBCitNQVJVxaBJxIYgR09SQU4KK01BUlXFoEnEhiBKVUxJSkFOQQorTUFSVcWgScSGIExKVUJPCitNQVJVxaBJxIYgTUlPUklDQQorTUFSVcWgScSGIE5FQk9KxaBBCitNQVJVxaBJxIYgT0xHQQorTUFSVcWgScSGIFNUT0pBTgorTUFSVcWgScSGIFZMQURJTUlSCitNQVJVTknEhiBCT1NJTEpLQQorTUFSVU5LScSGIE1JTElOQQorTUFSVU5PVknEhiBCTEFHT1RBCitNQVNMQcSGIEFOVEUKK01BU0xBxIYgTUlMRU5LTworTUFTTEHEhiBSQUpLTworTUFTTEHEhiBWSU5LTworTUFTTE9WQVJJxIYgQk/FvUlEQVIgRFIKK01BU05FQyBBTktBCitNQVNOSUtPU0EgRkVNS0EKK01BU05JS09TQSBGRU1LQQorTUFTTk9WIFJPWkFMSUpBCitNQVNUSUtPU0EgRFJBR0lDQQorTUFTVElLT1NBIE5JS08KK01BU1RJTE9WScSGIERVxaBBTgorTUFTVElMT1ZJxIYgTEpVQklDQQorTUFTVElMT1ZJxIYgTUlSQQorTUFTVElMT1ZJxIYgTUlSS08KK01BU1RJTE9WScSGIE1PTcSMSUxPCitNQVNUSUxPVknEhiBQTEVNQQorTUFTVElMT1ZJxIYgUkFOS08KK01BVEFKxIxJxIYgRlJBTkpPCitNQVRBSsSMScSGIElWQU4KK01BVEFLIE1BUklKQQorTUFUQUsgTUFSSkFOCitNQVRBSyBWRVNOQQorTUFUQUtPVknEhiBLQVRJQ0EKK01BVEFOT1YgSkFTTUlOQQorTUFUQU5PVknEhiBERVpJREVSCitNQVRBTk9WScSGIElSRU5BCitNQVRBTk9WScSGIEpBRFJBTktBCitNQVRBTk9WScSGIEpFTElTQVZFVEEKK01BVEFOT1ZJxIYgTUlMT1JBRAorTUFUQU5PVknEhiBNSUxPUkFECitNQVRBTk9WScSGIE1JT0RSQUcKK01BVEFOT1ZJxIYgUEVUQVIKK01BVEFOT1ZJxIYgUEVUQVIKK01BVEFOT1ZJxIYgU0xBVklDQQorTUFUQU5PVknEhiBWTEFEQQorTUFUQVJVR0EgTEpJTEpBTkEKK01BVEFSVUdBIE1JTEtBCitNQVRBUlVHQSBQQVZMRQorTUFUQVJVR0EgWkFHT1JLQQorTUFUQVJVR0lOIEFMRUtTQU5EQVIKK01BVEFTScSGIE1BUklKQQorTUFUQVZVTEogTUlMSUNBCitNQVRFIEVURUxLQQorTUFURSBHSVpFTEEKK01BVEUgVkVOREVMIERSCitNQVRFxIxJSyBNSUtMT8WgCitNQVRFSkHFoEVWIEFMRUtTQU5EQVIKK01BVEVKQcWgRVYgU1ZFVE9aQVIKK01BVEVKQcWgRVYgU1ZFVE9aQVIKK01BVEVKRVZJxIYgSkVMRU5BCitNQVRFSkVWScSGIFNUQU5LTworTUFURUpFVknEhiBWRUxJTUlSCitNQVRFSkVWScSGIFZMQURJTUlSCitNQVRFSkVWScSGIFpJTERBCitNQVRFSknEhiDEkFVSQQorTUFURUpJxIYgQUxFS1NBTkRBUgorTUFURUpJxIYgTkFERcW9REEKK01BVEVKScSGIFJBVEtPCitNQVRFSknEhiBSVcW9SUNBCitNQVRFSknEhiBTTEFWT0xKVUIgRFIgTEVLQVIKK01BVEVKSU4gxJBPUsSQRQorTUFURUpJTiBEUkFHQU4KK01BVEVKSU4gRFJBR0nEhgorTUFURUpJTiBEVcWgQU4KK01BVEVKSU4gTUlMSVZPSgorTUFURUpJTiBWRVNFTElOCitNQVRFS0FMTyBNSUxLQQorTUFURUtPVknEhiBTTUlMSkEKK01BVEVPVknEhiBQVUJBIERSCitNQVRFVlNLSSBMVUnEkEkKK01BVEnEjEVLIExKVURFVklUCitNQVRJxaBBIElSRU5BCitNQVRJxaBJxIYgTEpVQk9NSVIKK01BVEnEhiDFvUFSS08KK01BVEnEhiDFvUlWS0EKK01BVEnEhiDFvUlWS08KK01BVEnEhiDFvUlWS08KK01BVEnEhiDFvUlWT0pJTgorTUFUScSGIMW9SVZPUkFECitNQVRJxIYgxJBPUsSQRQorTUFUScSGIMSQT1LEkEUKK01BVEnEhiDEkE9SxJBFCitNQVRJxIYgxJBVUsSQSUNBCitNQVRJxIYgxJBVUkEgRFIKK01BVEnEhiBBQ0tPCitNQVRJxIYgQUNLTworTUFUScSGIEFMRUtTQU5EQVIKK01BVEnEhiBBTEVLU0FOREFSCitNQVRJxIYgQUxFS1NBTkRBUgorTUFUScSGIEFOS0EKK01BVEnEhiBBTktJQ0EKK01BVEnEhiBBUkFOS0EKK01BVEnEhiBBUkFOS0EKK01BVEnEhi1CQVVTIMW9SVZLTworTUFUScSGLUJFS1ZBTEFDIFZFU05BCitNQVRJxIYgQk/FvUlEQVIgRFIKK01BVEnEhiBCT0pBTkEKK01BVEnEhiBCUkFOSVNMQVYKK01BVEnEhiBEQU1KQU4gRElQTCBJTkcKK01BVEnEhiBERVNBTktBCitNQVRJxIYgRE9CUklDQQorTUFUScSGIERPQlJJTE8KK01BVEnEhiBEUkFHQU4KK01BVEnEhiBEUkFHQU4KK01BVEnEhiBEUkFHQU4KK01BVEnEhiBEUkFHScWgQQorTUFUScSGIERSQUdJQ0EKK01BVEnEhiBEUkFHSU5KQQorTUFUScSGIERSQUdVVElOCitNQVRJxIYgRFXFoEFOS0EKK01BVEnEhiBEVcWgQU5LQQorTUFUScSGIERVxaBBTgorTUFUScSGIERVxaBBTgorTUFUScSGIERVxaBBTgorTUFUScSGIERVxaBBTgorTUFUScSGIEVMSVpBQkVUQQorTUFUScSGIEVWQQorTUFUScSGIEZJTktBCitNQVRJxIYgR09SREFOQQorTUFUScSGIElMSUpBCitNQVRJxIYgSkVMRU5BCitNQVRJxIYgSkVMSVNBVkVUQQorTUFUScSGIEpFTElTQVZFVEEKK01BVEnEhiBKRUxJU0FWS0EKK01BVEnEhiBKT1ZBTgorTUFUScSGIEtBVElDQQorTUFUScSGLUtFS0nEhiBTTkXFvUFOQQorTUFUScSGIEtSSVNUSU5BCitNQVRJxIYgTEFaQVIKK01BVEnEhiBMQVpBUgorTUFUScSGIExKSUxKQU5BCitNQVRJxIYgTEpJTEpBTkEKK01BVEnEhiBMSklMSkFOQQorTUFUScSGIExKVUJJQ0EKK01BVEnEhiBMSlVCSUNBCitNQVRJxIYgTEpVQk8KK01BVEnEhiBMVUtBCitNQVRJxIYgTUFHREFMRU5BCitNQVRJxIYgTUFSSUNBCitNQVRJxIYgTUFSSUpBCitNQVRJxIYgTUFSS08KK01BVEnEhiBNQVJLTworTUFUScSGIE1JTEFOCitNQVRJxIYgTUlMQU4KK01BVEnEhiBNSUxBTgorTUFUScSGIE1JTEVOS08KK01BVEnEhiBNSUxFTktPCitNQVRJxIYgTUlMSVNBVgorTUFUScSGIE1JTE/FoAorTUFUScSGIE1JTE/FoAorTUFUScSGIE1JTE/FoAorTUFUScSGIE1JTE/FoAorTUFUScSGIE1JTE/FoAorTUFUScSGIE1JTE9SQUQKK01BVEnEhiBNSUxPUkFECitNQVRJxIYgTUlMT1JBRAorTUFUScSGIE1JTE9WQU4KK01BVEnEhiBNSVJKQU5BCitNQVRJxIYgTUlSSkFOQQorTUFUScSGIE1JUktPCitNQVRJxIYgTkFEQQorTUFUScSGIE5BREXFvURBCitNQVRJxIYgTkFUQcWgQQorTUFUScSGIE5BVEFMSUpBCitNQVRJxIYgTkVHT1ZBTgorTUFUScSGIE5JS09MQQorTUFUScSGIE5PVklDQQorTUFUScSGIFBBVkEKK01BVEnEhiBQQVZMRQorTUFUScSGIFBBVkxFCitNQVRJxIYgUEVUQVIKK01BVEnEhiBQRVRBUgorTUFUScSGIFBMQU5JTktBCitNQVRJxIYgUFJFRFJBRworTUFUScSGIFBSRURSQUcKK01BVEnEhiBSQURFCitNQVRJxIYgUkFETUlMQQorTUFUScSGIFJBRE9KRQorTUFUScSGIFJBRE9NSVIKK01BVEnEhiBSQURPTUlSCitNQVRJxIYgUkFET01JUgorTUFUScSGIFJBRE9TTEFWCitNQVRJxIYgUkFET1ZBTgorTUFUScSGIFJBRE9WQU4KK01BVEnEhiBSQUpLTworTUFUScSGIFNBVkEKK01BVEnEhiBTSU1BCitNQVRJxIYgU0xBVktPCitNQVRJxIYgU0xBVktPCitNQVRJxIYgU0xBVktPCitNQVRJxIYgU0xBVktPCitNQVRJxIYgU0xPQk9EQU4KK01BVEnEhiBTVEFOS08KK01BVEnEhiBTVEFOS08KK01BVEnEhiBTVEFaQQorTUFUScSGIFNUSVBPCitNQVRJxIYgU1RPSkFOCitNQVRJxIYgU1ZFVExBTkEKK01BVEnEhiBTVkVUT1pBUgorTUFUScSGIFNWRVRPWkFSCitNQVRJxIYgVE9NQQorTUFUScSGIFRPTUlTTEFWCitNQVRJxIYgVkFMRVJJSkEKK01BVEnEhiBWRVNFTElOCitNQVRJxIYgVklEQQorTUFUScSGIFZJVE9NSVIgRElQTCBJTkcKK01BVEnEhiBWTEFEQQorTUFUScSGIFZMQURJTUlSCitNQVRJxIYgVkxBRElNSVIKK01BVEnEhiBWTEFESVNMQVYKK01BVEnEhiBWTEFTVElNSVIgTVIKK01BVEnEhiBWVUpJQ0EKK01BVEnEhiBWVUtJQ0EKK01BVEnEhiBaQUdPUktBCitNQVRJxIYgWkRSQVZLQQorTUFUScSGIFpPUkEKK01BVElDS0kgTUlMQU5BIERSCitNQVRJQ0tJIE1JTE/FoAorTUFUSUpBxaAgSUxJSkEKK01BVElKQcWgRVYgQUxFS1NBTkRBUgorTUFUSUpBxaBFViBSQURJVk9KCitNQVRJSkHFoEVWScSGIEFMRUtTQU5EQVIKK01BVElKQcWgRVZJxIYgSkVMS0EKK01BVElKQcWgRVZJxIYgS0FUSUNBCitNQVRJSkHFoEVWScSGIE1BUktPCitNQVRJSkHFoEVWScSGIE1JSEFJTE8KK01BVElKQcWgRVZJxIYgU1RBTklTTEFWS0EKK01BVElKRVZJxIYgQU5USUNBCitNQVRJSkVWScSGIEFOVFVOCitNQVRJSkVWScSGIEJPSkFOCitNQVRJSkVWScSGIEJSQU5LTworTUFUSUpFVknEhiBEUkFHSUNBCitNQVRJSkVWScSGIEZSQU7EjEnFoEtBCitNQVRJSkVWScSGIElMSUpBCitNQVRJSkVWScSGIEpPU0lQCitNQVRJSkVWScSGIEtBVEFMSU4KK01BVElKRVZJxIYgTEFKT8WgCitNQVRJSkVWScSGIE1BUklKQQorTUFUSUpFVknEhiBNSUxFCitNQVRJSkVWScSGIE1JTE9KS08KK01BVElKRVZJxIYgUEVSTworTUFUSUpFVknEhiBQRVRBUgorTUFUSUpFVknEhiBQRVRBUgorTUFUSUpFVknEhiBQRVRBUgorTUFUSUpFVknEhiBSQURFCitNQVRJSkVWScSGIFNMQVZLTworTUFUSUpFVknEhiBWVUtPU0FWQQorTUFUSUpFVknEhiBaT1JBTgorTUFUSUpFVknEhiBaT1JBCitNQVRJSkVWScSGIFpPUkEKK01BVElOIERPUk9URUEKK01BVElOIEpPU0lQCitNQVRJTiBMQUpPxaAKK01BVElOIE1BVElKQQorTUFUSVMgxaBBTkRPUiBESVBMIFBSQVZOSUsKK01BVElTIMWgQU5ET1IKK01BVEpBxIxJxIYgVklOS08KK01BVEtPIEVWQQorTUFUS09WScSGIMW9QVJLTworTUFUS09WScSGIMW9QVJLTworTUFUS09WScSGIEJPxb1JREFSCitNQVRLT1ZJxIYgRFJBR09MSlVCCitNQVRLT1ZJxIYgRFJBR09MSlVCCitNQVRLT1ZJxIYgSk9WQU4KK01BVEtPVknEhiBMQURJU0xBVgorTUFUS09WScSGIE1JTEVOS08KK01BVEtPVknEhiBNSVJPU0xBVkEKK01BVEtPVknEhiBNSVJPU0xBVgorTUFUS09WScSGIE1JUk9TTEFWCitNQVRLT1ZJxIYgTU9NSVIKK01BVEtPVknEhiBSQURPVkFOCitNQVRLT1ZJxIYgUk9aQUxJSkEKK01BVEtPVknEhiBSVcW9SUNBCitNQVRLT1ZJxIYgU1RBTUVOS08KK01BVEtPVknEhiBWTEFTVElNSVIKK01BVEtPVknEhiBaREVOS0EgRFIKK01BVE/FoEVWScSGIElWQU4KK01BVE/FoEnEhiBTVEFOSVNMQVYKK01BVE/FoEtPVknEhiBBR0FUQQorTUFUT8WgS09WScSGIFRFUkVaQQorTUFUT1ZJxIYgQU7EkEVMS08KK01BVE9WScSGIEFOQQorTUFUT1ZJxIYgQk/FvUFOQQorTUFUT1ZJxIYgQk9SSVZPSkUKK01BVE9WScSGIEJPUk8KK01BVE9WScSGIEJSQU5JU0xBVgorTUFUT1ZJxIYgREFOSUNBCitNQVRPVknEhiBEQVJPCitNQVRPVknEhiBERVNBCitNQVRPVknEhiBEUkFHQU5BCitNQVRPVknEhiBEUkFHScWgQQorTUFUT1ZJxIYgTEpVQklOS0EKK01BVE9WScSGIE1JTEFOIERJUEwgSU5HCitNQVRPVknEhiBNSUxBTgorTUFUT1ZJxIYgTUlMRU5LTworTUFUT1ZJxIYgTUlMRQorTUFUT1ZJxIYtTUlMScSGIEJBVFJJxIYKK01BVE9WScSGIE1JTEnEhgorTUFUT1ZJxIYgTUlMT0pLTworTUFUT1ZJxIYgTkFUQcWgQQorTUFUT1ZJxIYgUEFWTEUKK01BVE9WScSGIFBFVEFSCitNQVRPVknEhiBSQURJVk9KRQorTUFUT1ZJxIYgUkFET1NBVgorTUFUT1ZJxIYgUkFET1NMQVYKK01BVE9WScSGIFZJVE9NSVIKK01BVE9WSU5BIEZSQU5KQQorTUFUT1ZJTkEgR09SQU4KK01BVE9WSU5BIE1BUktPCitNQVRSQUsgRFJBR0FOCitNQVRVxaAgSkFOCitNQVRVxaBLQSBNQVJUT04KK01BVFVMSklOIElHTkpBQworTUFUVVNLSSBTT05KQQorTUFUVklLT1YgRVVHRU5JSkUKK01BVUtPVknEhiBWT0pJU0xBVgorTUFVTCBHT1JEQU5BCitNQVVSScSGIEZFUkVOQworTUFVUknEhiBHRVpBCitNQVVSScSGIE5FTkFECitNQVZJxIYgU1LEkEFOCitNQVZSQUsgSU1SRQorTUFWUkVOU0tJIEJPR0RBTgorTUFWUkVOU0tJIEJPUktPCitNQVZSRU5TS0kgSVZJQ0EKK01BVlJPVknEhiBCUkFOSVNMQVYKK01BWkFMSUNBIEJSQU5JU0xBVgorTUFaQUxJQ0EgRFXFoEFOCitNQVpBTElDQSBHT0pLTworTUFaQUxJQ0EgTEpVQk8KK01BWkFMSUNBIE1BUklKQQorTUFaQUxJQ0EgUkFKS08KK01BWkFMSUNBIFNORcW9QU5BCitNQVpBTElDQSBVUk/FoAorTUFaQUxJQ0EgVkFTTworTUFaQUxJQ0EgVkVMSktPCitNQVpBTsSMSUsgQU5EUklKQQorTUFaQU7EhklLIFBBSkEKK01BWkFOSkkgS0FSTE8KK01BWknEhiDFvUlWS08KK01BWknEhiBCUkFOS08KK01BWknEhiBEUkFHQU4KK01BWknEhiBMSlVCT01JUgorTUFaScSGIE1JSEFKTE8KK01BWknEhiBNSVJPU0xBVgorTUFaScSGIFBMRVRJS09TQQorTUFaSU5KQU5JTiBEVcWgQU4KK01BWkxBTUkgRMW9QUJJUgorTUFaVVIgVlVLSUNBCitNQy1DT05ORUxMIE1BUlRBCitNRcSMS0FST1ZTS0kgRFJBR0FOCitNRcSMS0nEhiBET0JSSUxBCitNRcSMS0nEhiBTTEFWS08KK01FxaBBTk9WScSGIEhBWklNCitNRcWgVEVSIElSRU5BCitNRcWgVEVST1ZJxIYgTEpJTEpBTkEKK01FxaBUUk9WScSGIEJPxb1JREFSCitNRcSGQVZBIEJSQU5LTworTUXEhkFWQSBEUkFHQU4KK01FxIZBVkEgTUlMQU4KK01FxJBBTklOIERVxaBBTgorTUXEkEXFoEkgTEpVQk9NSVIKK01FxJBFxaBJIFZMQURJTUlSCitNRcSQRUQgTUFSSUNBCitNRcSQRURPVknEhiDEkE9SxJBJSkUKK01FxJBFRE9WScSGIEJSQU5LTworTUXEkEVET1ZJxIYgREFOSUxPCitNRcSQRURPVknEhiBEUkFHT0xKVUIKK01FxJBFRE9WScSGIERSQUdPCitNRcSQRURPVknEhiBEVUJSQVZLQQorTUXEkEVET1ZJxIYgTUlSSkFOQQorTUXEkEVET1ZJxIYgTkVNQU5KQQorTUXEkEVET1ZJxIYgUkFET1ZBTgorTUXEkEVSSSBWRVJPTklLQQorTUXEkElNT1JFQyBFRFVBUkQKK01FxJBJTU9SRUMgTEpVQk9NSVIKK01FxJBJTU9SRUMgU1RKRVBBTgorTUXEkElNT1JFQyBWSUtUT1IKK01FQU1Exb1JSkEgTUlSQQorTUVBTkTFvUnEhiBTTEFWS08KK01FQ0FOT1YgU1RPSkFOS0EKK01FREFLT1Ygxb1JVktPCitNRURBS09WIE1BUklKQQorTUVEQUtPViBNSUxBTgorTUVEQUtPViBNSUxBTgorTUVEQUtPViBNSUxKQU5BCitNRURBS09WIFJBRElWT0oKK01FREFLT1YgVkxBRElNSVIKK01FREFLT1ZJxIYgQk9HREFOCitNRURBS09WScSGIERBTUlSCitNRURBS09WScSGIERBUklOS0EKK01FREFLT1ZJxIYgRFXFoEFOCitNRURBS09WScSGIERVxaBBTgorTUVEQUtPVknEhiBJTERJS08KK01FREFLT1ZJxIYgSUxJSkEKK01FREFLT1ZJxIYgSk9WQU4KK01FREFLT1ZJxIYgTEpVQklDQQorTUVEQUtPVknEhiBMSlVCSUNBCitNRURBS09WScSGIFBFVEFSCitNRURBS09WScSGIFNWRVRMQU5BCitNRURBS09WScSGIFNWRVRMQU5BCitNRURBS09WScSGIFZMQURJU0xBVgorTUVEQU4gRFJBR0lOSkEKK01FREFOIE1BTk9KTE8KK01FREFOIE1JTEVOS08KK01FREFOIE1JTEVOS08KK01FREFOIE1JTEVOS08KK01FREFOIE1JTE9SQUQKK01FREFOIE1JUk9TTEFWCitNRURBTiBSQURFTktPCitNRURBTiBTTEFWSUNBCitNRURBTiBTUEFTT0pFCitNRURBTiBWRUxJTUlSCitNRURBTiBWTEFESVNMQVYKK01FREFOT1ZTS0kgQk9SSVMKK01FREFSIFZVxIxLTworTUVEQVJFVknEhiBEUkFHQU4KK01FREFSRVZJxIYgRFJBR0FOCitNRURBUkVWScSGIFNUQU5BCitNRURFTklDQSDEkFVSxJBJQ0EKK01FREVOSUNBIMSQVVJPCitNRURFTklDQSBCT1NJTEpLQQorTUVERU5JQ0EgTUlMSVNBVgorTUVERU5JQ0EgUkFET01JUgorTUVERU5JQ0EgU05Fxb1BTkEKK01FREVOSUNBIFNORcW9QU5BCitNRURFTklDQSBWT0pJU0xBVgorTUVERU5JQ0EgVk9KSVNMQVYKK01FREVSIMSQT1LEkEUKK01FREVSIEpFTEVOQQorTUVEScSGIMSQVVJBCitNRURJxIYgxJBVUkEKK01FREnEhiBCT8WgS08KK01FREnEhiBCT0dEQU4KK01FREnEhiBCT0dEQU4KK01FREnEhiBCT1JJVk9KCitNRURJxIYgQlJBTktBCitNRURJxIYgREFORQorTUVEScSGIERBTkUKK01FREnEhiBEQU5JQ0EKK01FREnEhiBEUkFHSUNBCitNRURJxIYgRFJBR09MSlVCCitNRURJxIYgRFJBR09TTEFWQQorTUVEScSGIERVxaBBTgorTUVEScSGIERVxaBBTgorTUVEScSGIEdPSktPCitNRURJxIYgSUxJSkEKK01FREnEhiBJTElKQQorTUVEScSGIElMSUpBCitNRURJxIYgTEFaQVIKK01FREnEhiBNScSGTworTUVEScSGIE1JTEFOCitNRURJxIYgTUlMQU4KK01FREnEhiBNSUxFCitNRURJxIYgTUlMSUNBCitNRURJxIYgTUlMS0EKK01FREnEhiBNSUxPxaAKK01FREnEhiBNSUxPUkFECitNRURJxIYgTUlMT1JBRAorTUVEScSGIE1JT0RSQUcKK01FREnEhiBNSVJBCitNRURJxIYgTUlSSkFOQQorTUVEScSGIE1JUktPCitNRURJxIYgTUlST1NMQVZBCitNRURJxIYgTklLT0xBCitNRURJxIYgTklLT0xBCitNRURJxIYgTklLT0xBCitNRURJxIYgTklLT0xBCitNRURJxIYgUEVUQVIKK01FREnEhiBSQURFCitNRURJxIYgUkFET1ZBTgorTUVEScSGIFJBRE9WQU4KK01FREnEhiBTQVZPCitNRURJxIYgU0lNTworTUVEScSGIFNMQVZLTworTUVEScSGIFNMT0JPREFOS0EKK01FREnEhiBTTUlMSkEKK01FREnEhiBTVEVWQU4KK01FREnEhiBTVkVUT1pBUgorTUVEScSGIFRBVEpBTkEKK01FREnEhiBaRFJBVktPCitNRURJxIYgWkRSQVZLTworTUVEScSGIFpPUkFOCitNRURJxIYgWk9SQQorTUVET8WgIFVST8WgCitNRURPSkVWScSGIE1JTEFOCitNRURPSkVWScSGIE1JTEVUQQorTUVET0pFVknEhiBOSUtPTEEKK01FRE9WQVJTS0kgRlJBTkpBCitNRURPVkFSU0tJIE1JxaBBCitNRURPVkFSU0tJIFBJUk/FoEtBCitNRURPVkFSU0tJIFBJUk/FoEtBCitNRURPVkFSU0tJIFNURVZBTgorTUVET1ZJxIYgUFJFRFJBRyBEUgorTUVEVU5KQU5JTiBGRUJST05BCitNRURVTkpBTklOIElTSURPUgorTUVEVVJJxIYgREFOSUxPCitNRURVUknEhiBEUkFHT01JUgorTUVEVVJJxIYgR09SQU4KK01FRFVSScSGIElSRU5BCitNRURVUknEhiBKRUxFTkEKK01FRFVSScSGIEtPU1RBCitNRURVUknEhiBNSUxJVk9KCitNRURVUknEhiBQRVRBUgorTUVEVVJJxIYgU01JTEpBCitNRURVUknEhiBaTEFUQQorTUVEVkVET1ZJxIYgRFJBR0EKK01FR0xBSiBCT1NJTEpLQQorTUVIQUtPVknEhiBEQU5JQ0EKK01FSEFORMW9SVNLSSBWRU5LTworTUVITUVUSSBISVNFTgorTUVITUVUSSBSQUZFVAorTUVITUVUT0ogSEFTQU4KK01FSknEhiBORVZFTktBCitNRUtFTkpJxaBBQyBWRVNFTElOCitNRUtFTkpJxaBBQyBaT1JBTgorTUVLScSGIFNPRklKQQorTUVLSU5EQSBNQVJJSkFOIERSCitNRUtJTkRBIE1JUkpBTkEKK01FS0lOScSGIEFOVEUKK01FS0lOScSGIE1JUkpBTkEKK01FS0lOScSGIFRPTktBCitNRUxBUiBBTkRSQcWgCitNRUxBUiBKRUxFTkEKK01FTEFSIExKVURFVklUCitNRUxFRyBKQU5LTworTUVMRUcgSk9WQU4KK01FTEVHIEpPVkFOCitNRUxFRyBNScWgQQorTUVMRUcgVkxBRElNSVIKK01FTEVSVCBWRU5ERUwKK01FTElOSyBEVcWgQU5LQQorTUVMSU5LIEpPSEFOCitNRUxKQSBKVUxJSkFOQQorTUVMSktVVEkgRkVSRU5DCitNRUxKS1VUSSBKT8W9RUYKK01FTEpLVVRJIEtBUkxPCitNRUxKS1VUSSBPUkJBTgorTUVMSk5JSyBJTElKQQorTUVMSk5JS09WIERFU0FOS0EKK01FTEtVUyBCT8W9QQorTUVMS1VTIEJPUklWT0oKK01FTEtVUyBLQVRJQ0EKK01FTEtVUyBNSVJKQU5BCitNRUxLVVMgVk9KSVNMQVYKK01FTE8gQUxFS1NBTkRBUgorTUVMT1ZJxIYgREVKQU4KK01FTE9WScSGIE1JTE9WQU4KK01FTFZBTiBFUsW9RUJFVAorTUVMVkFOIFBFVEFSCitNRUxWQU4gWk9SQU4KK01FTFZJTkdFUiBBTE9KWklKQQorTUVNQVJPVknEhiBSQURPVkFOCitNRU1FRE9WScSGIEJPUklTTEFWCitNRU1FRE9WScSGIEJPU0lMSktBCitNRU1FRE9WU0tJIFVaRUlSCitNRU1JxaBFVknEhiBJQlJBSElNCitNRU1JxaBFVknEhiBJU01BSUwKK01FTUnFoEVWScSGIE1BUkpBTgorTUVNScWgRVZJxIYgTUVITUVECitNRU1JxaBFVknEhiBSQcWgSURBCitNRU1JxaBJIFRFRklLCitNRU1JRMW9QU4gUkVExb1PCitNRU7EkEFOIMWgQU5ET1IKK01FTsSQQU4gTUFSSUpBCitNRU7EkEFOIFBBVkVMCitNRU7EkEFOIFJBU1RJU0xBVgorTUVOREVCQUJBIEJPUklTTEFWCitNRU5ERUJBQkEgUEFOVEEKK01FTkRFTCBFTElaQUJFVEEKK01FTkRSQUdJxIYgxJBPUsSQRQorTUVORFJFSSBIRUxFTkEKK01FTkXFoEkgQkVMQQorTUVORcWgSSBJUkVOQQorTUVORcWgSSBMQVNMTworTUVOR0wgSVJFTgorTUVOR0wgTEFKT8WgCitNRU5JxIxBTklOIEpFTEEKK01FTknEjEFOSU4gU1RFVkFOCitNRU5JxIZBTklOIFBFVEFSCitNRU5KQUsgSVZBTgorTUVOWklMRMW9ScSGIEdBQlJJSkVMQQorTUVSxIwgSkFOT8WgCitNRVLEjEEgU1RFVkFOCitNRVLFoCBNSUxBTgorTUVSxb1BIEtBUk9MSgorTUVSxJBFTE/FoEtJIE1JTElDQQorTUVSQyBFVkEKK01FUkRJxIYgTUlST1NMQVYKK01FUkRPVknEhiBNSUxLQQorTUVSRUkgS0FUQUxJTgorTUVSRUkgTUFSR0lUQQorTUVSR0FOQyBLQVRJQ0EKK01FUkdFxaAgSkFOT8WgCitNRVJHRUwgTUFSSUpBCitNRVJJxIxBUiBSQURPSklDQQorTUVSS09WScSGIEFMRUtTQU5EQVIKK01FUktPVknEhiBBTE9KWgorTUVSS09WScSGIEFOS0lDQQorTUVSS09WScSGIEpVRElUCitNRVJLT1ZJxIYgTEpVREVWSVQKK01FUktPVknEhiBOSUtPTEEKK01FUktPVknEhiBQRVRBUgorTUVSS09WScSGIFNJTFZJQQorTUVSS09WScSGIFNWRVRJU0xBVkEKK01FUktPVknEhiBWRVJBCitNRVJLVUxPViBMSklMSkFOQQorTUVSS1ZBIEVNQQorTUVSS1ZBIEpPxb1FRgorTUVSTkpBSyBGUkFOSk8KK01FU0FLIE5JS09MQQorTUVTQVJJxIYgR0FCUklKRUxBCitNRVNBUk/FoCDFoEFORE9SIERSCitNRVNBUk/FoCDEkFVSQQorTUVTQVJPxaAgQU5EUkHFoAorTUVTQVJPxaAgQVJQQUQKK01FU0FST8WgIEFUSUxBCitNRVNBUk/FoCBCQUxBxb0KK01FU0FST8WgIEZFUkVOQworTUVTQVJPxaAgRlJBTkpBCitNRVNBUk/FoCBHRVpBCitNRVNBUk/FoCBHRVpBCitNRVNBUk/FoCBHT1JBTgorTUVTQVJPxaAgScWgVFZBTgorTUVTQVJPxaAgScWgVFZBTgorTUVTQVJPxaAgSUxPTkEKK01FU0FST8WgIElMT05BCitNRVNBUk/FoCBJTVJFCitNRVNBUk/FoCBKRUxFTkEKK01FU0FST8WgIEpFTElDQQorTUVTQVJPxaAgSk9TSUYKK01FU0FST8WgIEpPU08KK01FU0FST8WgIEtBUkxPCitNRVNBUk/FoCBLQVRJQ0EKK01FU0FST8WgIExBSk/FoAorTUVTQVJPxaAgTEFTTE8KK01FU0FST8WgIExFT04KK01FU0FST8WgIE1JSEFMSgorTUVTQVJPxaAgTUlLTE/FoAorTUVTQVJPxaAgUEFWTEUKK01FU0FST8WgIFBJUk/FoEtBCitNRVNBUk/FoCBTVEVWQU4KK01FU0FST8WgIFRJQk9SCitNRVNBUk/FoCBUSUJPUgorTUVTQVJPxaAgWk9MVEFOCitNRVNBUk/FoCBaT1JBIERJUEwgSU5HCitNRVNBUk/FoCBaT1JJQ0EKK01FU0FST1ZJxIYgRFXFoEFOCitNRVNBUk9WScSGIEpPVkFOCitNRVNBUk9WScSGIE1BUkdJVEEKK01FU0FST1ZJxIYgTUlMQU4KK01FU0FST1ZJxIYgU1ZFVE9MSUsKK01FU0XFoEFOIEdFWkEKK01FU0VMRMW9SUpBIMW9SVZLTworTUVTRUxExb1JSkEgTkFERcW9REEKK01FU0VMRMW9SUpBIE9TVE9KQQorTUVTRUxExb1JSkEgUkFKS08KK01FU0VMRMW9SUpBIFNMQVZJQ0EKK01FU0VMRMW9SUpBIFNUQU5JTUlSCitNRVRFTEpTS0kgU0VSR0lKRQorTUVUT0RJSkVWScSGIE1JTE9TQVYKK01FWkUgSlVMSUpBTkEKK01FWkXFoCBJTVJFCitNRVpFSSDFoEFORE9SCitNRVpFSSBKT8W9RUYKK01FWkVJIExBRElTTEFWCitNRVpFSSBMQVNMTworTUVaRUkgU05Fxb1BTkEKK01FWkVJIFNURVZBTiBEUgorTUVaRUkgU1RFVkFOCitNScSMQSBKT1NJUAorTUnEjEEgSk9WQU4KK01JxIxJxIYtxJBFUk1BTk9WIFZJREEKK01JxIxJxIYgQk/FoEtPCitNScSMScSGIEJPxaBLTworTUnEjEnEhiBNSVJKQU5BCitNScSMScSGLU1JVFJPVknEhiBNSUxJQ0EKK01JxIxJxIYgTkVERUxKS08KK01JxIxJxIYgU05Fxb1BTkEKK01JxIxJxIYgU09GSUpBCitNScSMScSGIFpPUkEKK01JxIxVUklOIEpPU0lQCitNScWgxIxFVknEhiBCUkFOS08KK01JxaDEjEVWScSGIEJSQU5LTworTUnFoMSMRVZJxIYgRFXFoEFOCitNScWgxIxFVknEhiBEVcWgQU4KK01JxaDEjEVWScSGIElMSUpBCitNScWgxIxFVknEhiBJVkFOS0EKK01JxaDEjEVWScSGIE1BUklKQQorTUnFoMSMRVZJxIYgTUlDQQorTUnFoMSMRVZJxIYgTUlMQURJTgorTUnFoMSMRVZJxIYgTUlMQU4KK01JxaDEjEVWScSGIE5JS09MQQorTUnFoMSMRVZJxIYgT0xHQQorTUnFoMSMRVZJxIYgUEVUQVIKK01JxaDEjEVWScSGIFBFVEFSCitNScWgxIxFVknEhiBQRVRBUgorTUnFoMSMRVZJxIYgVkxBRElNSVIKK01JxaDEjEVWScSGIFpMQVRLTworTUnFoEFOIExBWkFSCitNScWgQU5PVknEhiBEUkFHT0xKVUIKK01JxaBBTk9WScSGIFNJTU8KK01JxaBFTEnEhiBKRUZUQQorTUnFoEnEhiDEjEVET01JUgorTUnFoEnEhiDEkFVSQQorTUnFoEnEhiBBTEVLU0FOREFSCitNScWgScSGIEFMRUtTQU5EQVIKK01JxaBJxIYgQUxFS1NBTkRBUgorTUnFoEnEhiBBTsSQRUxJSkEKK01JxaBJxIYgQU7EkEVMS0EKK01JxaBJxIYgQU5BCitNScWgScSGIEJPR0RBTgorTUnFoEnEhiBCVURJTUlSCitNScWgScSGIERSQUdJQ0EKK01JxaBJxIYgRFJBR0lDQQorTUnFoEnEhiBFVEpFTgorTUnFoEnEhiBHT1JBTgorTUnFoEnEhiBJVkFOCitNScWgScSGIElWQU4KK01JxaBJxIYgSkFHT0RBCitNScWgScSGIEpBS09WCitNScWgScSGIEpBU01JTkEKK01JxaBJxIYgSk9TSVAKK01JxaBJxIYgSk9WQU4KK01JxaBJxIYgTEFaQVIKK01JxaBJxIYgTEFaQVIKK01JxaBJxIYgTElOS0EKK01JxaBJxIYgTEpJTEpBTkEKK01JxaBJxIYgTEpVQk8KK01JxaBJxIYgTUFSSUpBCitNScWgScSGIE1BUktPCitNScWgScSGIE1JTEFOCitNScWgScSGIE1JTEFOCitNScWgScSGIE1JTEFOCitNScWgScSGIE1JTEFOCitNScWgScSGIE1JTEFOCitNScWgScSGIE1JTE9TQVZLQQorTUnFoEnEhiBNSUxPVkFOCitNScWgScSGIE1JT0RSQUcKK01JxaBJxIYgTUlPTUlSCitNScWgScSGIE1JUkpBTkEKK01JxaBJxIYgTUlST1NMQVYKK01JxaBJxIYgTUlST1NMQVYKK01JxaBJxIYgTkFEQQorTUnFoEnEhiBORU5BRAorTUnFoEnEhiBORVNUT1IKK01JxaBJxIYgTklLT0xBCitNScWgScSGIFBFVEFSCitNScWgScSGIFBSRURSQUcKK01JxaBJxIYgUkFERQorTUnFoEnEhiBSQURJVk9KRQorTUnFoEnEhiBSQURJVk9KRQorTUnFoEnEhiBSQURPSktBCitNScWgScSGIFJBTktPCitNScWgScSGIFNBVkEKK01JxaBJxIYgU0xBVktPCitNScWgScSGIFNMT0JPREFOCitNScWgScSGIFNMT0JPREFOCitNScWgScSGIFNMT0JPREFOCitNScWgScSGIFNPRklKQQorTUnFoEnEhiBTVElQTworTUnFoEnEhiBTVEpFUEFOCitNScWgScSGIFNWRVRPWkFSCitNScWgScSGIFNWRVRPWkFSCitNScWgScSGIFRPRE9SIERSCitNScWgScSGIFRVR09NSVIKK01JxaBJxIYgVkFTQQorTUnFoEnEhiBWSURPU0FWQQorTUnFoEnEhiBWTEFESUNBCitNScWgScSGIFZPSklOCitNScWgScSGIFpEUkFWS08KK01JxaBJxIYgWk9SQU4KK01JxaBJxIYgWk9SQQorTUnFoEnEhiBaT1JJQ0EKK01JxaBJxIYgWlZPTklNSVIKK01JxaBJTlNLSSBKRUxFTkEKK01JxaBLQVIgSk9WQU4KK01JxaBLRUxKSU4gQk/FoEtPCitNScWgS0nEhiDFoElNVU4KK01JxaBLScSGIERVxaBBTgorTUnFoEtJxIYgSVZBTgorTUnFoEtJxIYgTUlMQU4KK01JxaBLScSGIFJBSktPCitNScWgS0nEhiBSQU5LTworTUnFoEtJxIYgU1ZFVElTTEFWS0EKK01JxaBLScSGIFZJVE9NSVIKK01JxaBLScSGRVZJxIYgQk9SSVZPSgorTUnFoEtMSklOIEtBVElDQQorTUnFoEtPViDEkFVSxJBJTktBCitNScWgS09WIEFMRUtTQU5EQVIKK01JxaBLT1YgQU5HRUxJTkEKK01JxaBLT1YgQU5LQQorTUnFoEtPViBBTktJQ0EKK01JxaBLT1YgQVZSQU0KK01JxaBLT1YgQklMSkFOQQorTUnFoEtPViBCT0pLQQorTUnFoEtPViBCUkFOSU1JUgorTUnFoEtPViBCUkFOS08KK01JxaBLT1YgSVZJQ0EKK01JxaBLT1YgSk9WQU4KK01JxaBLT1YgS0FUQVJJTkEKK01JxaBLT1YgS0FUQVJJTkEKK01JxaBLT1YgTEpVQklDQQorTUnFoEtPViBMSlVCSUNBCitNScWgS09WIE1BS1NBCitNScWgS09WIE1BUklDQQorTUnFoEtPViBNSUxPxaAKK01JxaBLT1YgTUlMT1ZBTgorTUnFoEtPViBNSVJPU0xBVgorTUnFoEtPViBOQURBCitNScWgS09WIE5FVkVOS0EKK01JxaBLT1YgTklLT0xBCitNScWgS09WIE5PVkEKK01JxaBLT1YgUkFESVZPSgorTUnFoEtPViBTQVZBIERJUEwgSU5HCitNScWgS09WIFNBVkEKK01JxaBLT1YgU1RBTktBCitNScWgS09WIFNURVZBTgorTUnFoEtPViBWRVNOQQorTUnFoEtPViBWRVNOQQorTUnFoEtPViBaQUdPUktBCitNScWgS09WIFpMQVRBCitNScWgS09WScSGIMW9SVZLTworTUnFoEtPVknEhiDEkE9SxJBFCitNScWgS09WScSGIMSQT1LEkEUKK01JxaBLT1ZJxIYgxJBPUsSQRQorTUnFoEtPVknEhiBBTEVLU0FORFJBCitNScWgS09WScSGIEFOQQorTUnFoEtPVknEhiBBTkEKK01JxaBLT1ZJxIYgQVJTQQorTUnFoEtPVknEhiBCTEHFvU8KK01JxaBLT1ZJxIYgQk/FvUlEQVIKK01JxaBLT1ZJxIYgQk9KQU5BCitNScWgS09WScSGIEJPSkFOCitNScWgS09WScSGIEJPUklWT0oKK01JxaBLT1ZJxIYgQlJBTklTTEFWCitNScWgS09WScSGIEJSQU5LTworTUnFoEtPVknEhiBDVkVUS08KK01JxaBLT1ZJxIYgREFOxIxJS0EKK01JxaBLT1ZJxIYgREFSSU5LQQorTUnFoEtPVknEhiBERUxJTktBCitNScWgS09WScSGIERSQUdBTgorTUnFoEtPVknEhiBEUkFHT1JBRAorTUnFoEtPVknEhiBEVUJSQVZLQQorTUnFoEtPVknEhiBJTElKQQorTUnFoEtPVknEhiBJTElKQQorTUnFoEtPVknEhiBJTE9OS0EKK01JxaBLT1ZJxIYgSk9DQQorTUnFoEtPVknEhiBKT1ZBTgorTUnFoEtPVknEhiBMQVpBUgorTUnFoEtPVknEhiBMSlVCSUNBCitNScWgS09WScSGIExKVUJJQ0EKK01JxaBLT1ZJxIYgTUFSS08KK01JxaBLT1ZJxIYgTUlIQUpMTworTUnFoEtPVknEhiBNSUxLQQorTUnFoEtPVknEhiBNSUxPxaAKK01JxaBLT1ZJxIYgTUlMT0pFCitNScWgS09WScSGIE1JTE9SQUQKK01JxaBLT1ZJxIYgTUlPRFJBRworTUnFoEtPVknEhiBNSVJKQU5BCitNScWgS09WScSGIE1JUktPCitNScWgS09WScSGIE1JUktPCitNScWgS09WScSGIE1JUktPCitNScWgS09WScSGIE1JUk9TTEFWQQorTUnFoEtPVknEhiBORU5BRAorTUnFoEtPVknEhiBOScSGSUZPUgorTUnFoEtPVknEhiBPQlJBRAorTUnFoEtPVknEhiBPTEdJQ0EKK01JxaBLT1ZJxIYgUEVUQVIKK01JxaBLT1ZJxIYgUkFERQorTUnFoEtPVknEhiBSQURJVk9KIE1SCitNScWgS09WScSGIFJBRE9TTEFWCitNScWgS09WScSGIFJBTktPCitNScWgS09WScSGIFNBxaBBCitNScWgS09WScSGIFNBVktBCitNScWgS09WScSGIFNUQU5LQQorTUnFoEtPVknEhiBTVEVWQU4KK01JxaBLT1ZJxIYgU1RFVkFOCitNScWgS09WScSGIFRBTkpBCitNScWgS09WScSGIFZJRE9TQVZBCitNScWgS09WScSGIFZJSkVOQ0VTTEFWCitNScWgS09WScSGIFZVS0lDQQorTUnFoEtPVknEhiBWVUtJQ0EKK01JxaBLT1ZJxIYgWlJOS0EKK01JxaBLT1ZJQyBMSlVERVZJVAorTUnFoEtPVklDIFpVWkFOQQorTUnFoEtVTElOIERSQUdJxaBBCitNScWgS1VMSU4gTkFEQQorTUnFoEtVTElOIE5JS09MQQorTUnFoExKRU5PVknEhiBNSU9EUkFHCitNScWgTE9WIExKVUJJQ0EKK01JxaBPVknEhiBNSVJLTworTUnFoE9WU0tJIFJJU1RPCitNScWgVUxJxIYgUEVUQVIKK01JxaBVTEnEhiBWSURBSworTUnFoFVMScSGIFZPSklTTEFWCitNScWgVVJBIElWQU4KK01JxIZBxaBFVknEhiBCT8WgS08KK01JxIZBxaBFVknEhiBTQVZBCitNScSGQU5PVknEhiBEUkFHQU4KK01JxIZBTk9WScSGIERSQUdJxaBBCitNScSGQU5PVknEhiBNQVJKQU4KK01JxIZFVknEhiBEVcWgQU4KK01JxIZFVknEhiBTT0ZJSkEKK01JxIZJxIYgxJBPUsSQRQorTUnEhknEhiDEkFVSxJBJTkEKK01JxIZJxIYgQk9KQU5BCitNScSGScSGIEJSQU5JU0xBVgorTUnEhknEhiBCUkFOS0EKK01JxIZJxIYgQlJBTktPIERJUEwgSU5HCitNScSGScSGIEJSQU5PCitNScSGScSGIENWSUpFVElOCitNScSGScSGIERSQUdPTEpVQgorTUnEhknEhiBEVcWgQU4gRElQTCBQUkFWTklLCitNScSGScSGIERVxaBBTgorTUnEhknEhiBEVcWgQU4KK01JxIZJxIYgSUxJSkEKK01JxIZJxIYgSk9WQU5LQQorTUnEhknEhiBLT05TVEFOVElOQQorTUnEhknEhiBLUlNUQQorTUnEhknEhiBMSlVCT01JUgorTUnEhknEhiBMSlVCT01JUgorTUnEhknEhiBNQVJJSkEKK01JxIZJxIYgTUlIQUpMTworTUnEhknEhiBNSUxBTkEKK01JxIZJxIYgTUlMRU5BCitNScSGScSGIE1JTEVOS08gRElQTCBJTkcKK01JxIZJxIYgTUlMSUNBCitNScSGScSGIE1JTElDQQorTUnEhknEhiBNSUxLQQorTUnEhknEhiBNSUxPUkFECitNScSGScSGIE1JUk9TTEFWCitNScSGScSGIE9MSVZFUkEKK01JxIZJxIYgT1pSRU4KK01JxIZJxIYgUkFETUlMQQorTUnEhknEhiBSQURPSklDQQorTUnEhknEhiBSQURPVkFOCitNScSGScSGIFJPRE9MSlVCCitNScSGScSGIFNMQVZJQ0EKK01JxIZJxIYgU0xBVktPCitNScSGScSGIFNNSUxKQQorTUnEhknEhiBTVE9KQU4KK01JxIZJxIYgU1VaQU5BCitNScSGScSGIFZFTElNSVIKK01JxIZJxIYgVkxBRElNSVIKK01JxIZJTiDFvUFSS08KK01JxIZJTiDEkE9SxJBFCitNScSGSU4gRFXFoEtPCitNScSGSU4gTEFaQQorTUnEhklOIE1JTElDQQorTUnEhklOIFJBRE9WQU4KK01JxIZJTiBVUk/FoAorTUnEhktPVknEhiBNSUxJTktPCitNScSGT1ZJxIYgxIxFRE9NSVIKK01JxIZPVknEhiBCT1JJU0xBVgorTUnEhk9WScSGIEJPU0lMSktBCitNScSGT1ZJxIYgSkFOS08KK01JxIZPVknEhiBLT1NUQURJTiBEUgorTUnEhk9WScSGIE1JTEFOCitNScSGT1ZJxIYgTUlSSkFOQQorTUnEhk9WScSGIE5FQk9KxaBBIERJUEwgSU5HCitNScSGT1ZJxIYgUFJFRFJBRyBESVBMIElORworTUnEhk9WScSGIFNUT0pBTktBCitNScSGT1ZJxIYgVkVMSU1JUgorTUnEhlVOT1ZJxIYgRFJBR1VUSU4KK01JxIZVTk9WScSGIE1BUklDQQorTUnEhlVOT1ZJxIYgU1RBTktBCitNScSGVU5PVknEhiBWTEFETworTUnEhlVOT1ZJxIYgVk9KSVNMQVZLQQorTUlBVkVDIE1BxIZBxaAKK01JQ0FJIE1BUklKQQorTUlDScSGIERSQUdBTgorTUlDScSGIERSQUdPTEpVQgorTUlDScSGIERSQUdPTEpVQgorTUlDScSGIERVxaBBTgorTUlDScSGIEtSU1RBIERSCitNSUNJxIYgTUlSS08KK01JQ0tPViBCTEFHT0oKK01JQ0tPViBFTEVOQQorTUlESSBORU5BRAorTUlEScSGIMSQT1LEkEUKK01JREnEhiBCT1JJVk9KCitNSURJxIYtRFVOxJBFUlNLSSBNSUxFTkEKK01JREnEhiBKRUxFTkEKK01JREnEhiBKT1ZBTgorTUlEScSGIExKVUJJxaBBCitNSURJxIYgTUlMRU5LTworTUlEScSGIE1JTE9SQUQKK01JREnEhiBTTE9CT0RBTgorTUlEScSGIFNURVZBTgorTUlEScSGIFNWRVRPWkFSCitNSURJxIYgU1ZFVE9aQVIKK01JREnEhiBaT1JLQQorTUlHTElOQ0kgQkFSQkFSQQorTUlHTElOQ0kgRVRFTEtBCitNSUdMSU5DSSBKRUxFTkEKK01JR0xJTkNJIExBU0xPCitNSUhBSUxPVknEhiDEjEVET01JUgorTUlIQUlMT1ZJxIYgxJBPS08KK01JSEFJTE9WScSGIERSQUdVVElOCitNSUhBSUxPVknEhiBHT1JBTgorTUlIQUlMT1ZJxIYgSk9WQU4KK01JSEFJTE9WScSGIEtPU1RBRElOCitNSUhBSUxPVknEhiBMSlVCSUNBCitNSUhBSUxPVknEhiBNSUxBTgorTUlIQUlMT1ZJxIYgTUlMT8WgCitNSUhBSUxPVknEhiBNSU9EUkFHCitNSUhBSUxPVknEhiBNSVJPU0xBVgorTUlIQUlMT1ZJxIYgTUlST1NMQVYKK01JSEFJTE9WScSGIFNMQVZPTEpVQgorTUlIQUlMT1ZJxIYgU1ZFVExBTkEKK01JSEFJTE9WScSGIFNWRVRPWkFSCitNSUhBSUxPVknEhiBWRUxJQk9SCitNSUhBSUxPVknEhiBWRVJBIERSCitNSUhBSUxPVknEhiBWT0pJU0xBVgorTUlIQUlMT1ZJxIYgWk9SQU4KK01JSEFKTEpFVknEhiBSQVRPTUlSCitNSUhBSkxPIExKQVZPCitNSUhBSkxPViDFvUlWQQorTUlIQUpMT1YgxJBPUsSQRQorTUlIQUpMT1YgQUxFS1NBTkRBUiBEUgorTUlIQUpMT1YgQk9HREFOCitNSUhBSkxPViBCUkFOSVNMQVYKK01JSEFKTE9WIERSQUdBTkEKK01JSEFKTE9WIERSQUdBTgorTUlIQUpMT1YgRFXFoEFOCitNSUhBSkxPViBJVkFOCitNSUhBSkxPViBKT1ZBTktBCitNSUhBSkxPViBMQVpBUgorTUlIQUpMT1YgTEpJTEpBTkEKK01JSEFKTE9WIE1BUklKQQorTUlIQUpMT1YgTUlMQU4KK01JSEFKTE9WIE1JTE/FoAorTUlIQUpMT1YgTUlMT1JBRAorTUlIQUpMT1YgTUlMT1ZBTgorTUlIQUpMT1YgTUlMT1ZBTgorTUlIQUpMT1YgTUlST1NMQVZBCitNSUhBSkxPViBOSUtPTEEKK01JSEFKTE9WIE9MR0EKK01JSEFKTE9WIFJBRE9KS0EKK01JSEFKTE9WIFJBRE9TTEFWCitNSUhBSkxPViBTUEFTT0pFCitNSUhBSkxPViBWRVJBCitNSUhBSkxPViBWRVNFTElOCitNSUhBSkxPViBWSURPU0FWCitNSUhBSkxPViBaT1JBTgorTUlIQUpMT1ZJxIYgxIxFRE9NSVIKK01JSEFKTE9WScSGIMSMRURPCitNSUhBSkxPVknEhiDFvUFSS08KK01JSEFKTE9WScSGIMW9QVJLTworTUlIQUpMT1ZJxIYgxb1FTEpLTworTUlIQUpMT1ZJxIYgxb1JVktPCitNSUhBSkxPVknEhiDFvUlWT0pJTgorTUlIQUpMT1ZJxIYgxJBPUsSQRQorTUlIQUpMT1ZJxIYgxJBPUsSQRQorTUlIQUpMT1ZJxIYgxJBPUsSQRQorTUlIQUpMT1ZJxIYgxJBVUkEKK01JSEFKTE9WScSGIEFOxJBFTEtPCitNSUhBSkxPVknEhiBBTklDQQorTUlIQUpMT1ZJxIYgQU5LQQorTUlIQUpMT1ZJxIYgQk/FoEtPCitNSUhBSkxPVknEhiBCT0dPTEpVQiBEUgorTUlIQUpMT1ZJxIYgQk9HT0xKVUIKK01JSEFKTE9WScSGIEJSQU5JU0xBVgorTUlIQUpMT1ZJxIYgQlJBTklTTEFWCitNSUhBSkxPVknEhiBCUkFOSVNMQVYKK01JSEFKTE9WScSGIEJSQU5LQQorTUlIQUpMT1ZJxIYgQlJBTktPCitNSUhBSkxPVknEhiBCUkFOS08KK01JSEFKTE9WScSGIEJSQU5LTworTUlIQUpMT1ZJxIYgQlJBTktPCitNSUhBSkxPVknEhiBEQU5LQQorTUlIQUpMT1ZJxIYgREFSSU5LQQorTUlIQUpMT1ZJxIYgREVKQU4KK01JSEFKTE9WScSGIERFSkFOCitNSUhBSkxPVknEhiBERUxJSkEKK01JSEFKTE9WScSGIERJTUlUUklKRQorTUlIQUpMT1ZJxIYgRFJBR0nFoEEKK01JSEFKTE9WScSGIERSQUdPTEpVQiBEUiBMRUtBUgorTUlIQUpMT1ZJxIYgRFJBR09MSlVCCitNSUhBSkxPVknEhiBEUkFHT0xKVUIKK01JSEFKTE9WScSGIERSRU5LQQorTUlIQUpMT1ZJxIYgRFXFoEFOS0EKK01JSEFKTE9WScSGIERVxaBBTgorTUlIQUpMT1ZJxIYgRFXFoEFOCitNSUhBSkxPVknEhiBEVcWgQU4KK01JSEFKTE9WScSGIERVxaBLTworTUlIQUpMT1ZJxIYgRVJORVNUCitNSUhBSkxPVknEhiBGUkFOSkEKK01JSEFKTE9WScSGIEdPSktPCitNSUhBSkxPVknEhiBHT1JEQU5BCitNSUhBSkxPVknEhiBHT1JEQU5BCitNSUhBSkxPVknEhiBJTEUKK01JSEFKTE9WScSGIElMSUpBCitNSUhBSkxPVknEhiBJTElKQQorTUlIQUpMT1ZJxIYgSUxJSkEKK01JSEFKTE9WScSGIElMSUpBCitNSUhBSkxPVknEhiBJTElKQQorTUlIQUpMT1ZJxIYgSUxJSkEKK01JSEFKTE9WScSGIElWQU5LQQorTUlIQUpMT1ZJxIYgSkFTTUlOQSBEUgorTUlIQUpMT1ZJxIYgSkVMQQorTUlIQUpMT1ZJxIYgSkVMRU5LTworTUlIQUpMT1ZJxIYgSkVMSUNBCitNSUhBSkxPVknEhiBKRUxJQ0EKK01JSEFKTE9WScSGIEpPS0EKK01JSEFKTE9WScSGIEpPVkFOIERJUEwgSU5HCitNSUhBSkxPVknEhiBKT1ZBTgorTUlIQUpMT1ZJxIYgSk9WQU4KK01JSEFKTE9WScSGIEpPVkFOCitNSUhBSkxPVknEhiBKT1ZBTgorTUlIQUpMT1ZJxIYgSlVMSUpBTkEKK01JSEFKTE9WScSGIEtBVElDQQorTUlIQUpMT1ZJxIYgS09TVEEKK01JSEFKTE9WScSGIEtSSVNUSU5BCitNSUhBSkxPVknEhiBLU0VOSUpBCitNSUhBSkxPVknEhiBMQVpPCitNSUhBSkxPVknEhiBMRU5LQQorTUlIQUpMT1ZJxIYgTEVOS0EKK01JSEFKTE9WScSGIExFUE9TQVZBCitNSUhBSkxPVknEhiBMSlVCScWgQQorTUlIQUpMT1ZJxIYgTEpVQk8KK01JSEFKTE9WScSGIE1BUkdJVEEKK01JSEFKTE9WScSGIE1BUklKQQorTUlIQUpMT1ZJxIYgTUFSSUpBCitNSUhBSkxPVknEhiBNScSGQQorTUlIQUpMT1ZJxIYgTUlIQUpMTworTUlIQUpMT1ZJxIYgTUlMQURJTgorTUlIQUpMT1ZJxIYgTUlMQU4KK01JSEFKTE9WScSGIE1JTEFOCitNSUhBSkxPVknEhiBNSUxBTgorTUlIQUpMT1ZJxIYgTUlMQU4KK01JSEFKTE9WScSGIE1JTEEKK01JSEFKTE9WScSGIE1JTEVOS08KK01JSEFKTE9WScSGIE1JTEVOS08KK01JSEFKTE9WScSGIE1JTEVUQQorTUlIQUpMT1ZJxIYgTUlMRQorTUlIQUpMT1ZJxIYgTUlMSUNBCitNSUhBSkxPVknEhiBNSUxPUkFEIERJUEwgSU5HCitNSUhBSkxPVknEhiBNSUxPUkFECitNSUhBSkxPVknEhiBNSUxPUkFECitNSUhBSkxPVknEhiBNSUxPVkFOCitNSUhBSkxPVknEhiBNSUxVTgorTUlIQUpMT1ZJxIYgTUlSQQorTUlIQUpMT1ZJxIYgTUlSS08KK01JSEFKTE9WScSGIE1JUktPCitNSUhBSkxPVknEhiBNSVJLTworTUlIQUpMT1ZJxIYgTUlST0xKVUIgRElQTCBJTkcKK01JSEFKTE9WScSGIE1JUk9TTEFWCitNSUhBSkxPVknEhiBNSVJPU0xBVgorTUlIQUpMT1ZJxIYgTUlST1NMQVYKK01JSEFKTE9WScSGIE1PTcSMSUxPCitNSUhBSkxPVknEhiBOQURBCitNSUhBSkxPVknEhiBOQURBCitNSUhBSkxPVknEhiBOQURBCitNSUhBSkxPVknEhiBOQURJUkEKK01JSEFKTE9WScSGIE5FQk9KxaBBCitNSUhBSkxPVknEhiBORURFTEpLTworTUlIQUpMT1ZJxIYgTkVERUxKS08KK01JSEFKTE9WScSGIE5JS09MQQorTUlIQUpMT1ZJxIYgTklLT0xBCitNSUhBSkxPVknEhiBOSUtPTEEKK01JSEFKTE9WScSGIE5PVkFLCitNSUhBSkxPVknEhiBPTElWRVJBCitNSUhBSkxPVknEhiBPU1RPSkEKK01JSEFKTE9WScSGIFBFVEFSCitNSUhBSkxPVknEhiBQUlZPU0xBVgorTUlIQUpMT1ZJxIYgUkFERQorTUlIQUpMT1ZJxIYgUkFESVZPSgorTUlIQUpMT1ZJxIYgUkFETUlMQQorTUlIQUpMT1ZJxIYgUkFETUlMQQorTUlIQUpMT1ZJxIYgUkFET01JUgorTUlIQUpMT1ZJxIYgUkFET1NMQVYKK01JSEFKTE9WScSGIFJBRE9TTEFWCitNSUhBSkxPVknEhiBSQURPVkFOCitNSUhBSkxPVknEhiBSQURPVkFOCitNSUhBSkxPVknEhiBSQURPVkFOCitNSUhBSkxPVknEhiBST1pBTElKQQorTUlIQUpMT1ZJxIYgUlXFvUlDQQorTUlIQUpMT1ZJxIYgUlXFvUlDQQorTUlIQUpMT1ZJxIYgU0FOSkEKK01JSEFKTE9WScSGIFNBVkEKK01JSEFKTE9WScSGIFNBVkEKK01JSEFKTE9WScSGIFNBVkEKK01JSEFKTE9WScSGIFNBVk8KK01JSEFKTE9WScSGIFNJTknFoEEKK01JSEFKTE9WScSGIFNMQVZJQ0EKK01JSEFKTE9WScSGIFNMQVZLTworTUlIQUpMT1ZJxIYgU0xBVk9MSlVQS0EKK01JSEFKTE9WScSGIFNMT0JPREFOCitNSUhBSkxPVknEhiBTTE9CT0RBTgorTUlIQUpMT1ZJxIYgU01JTEpBTkEKK01JSEFKTE9WScSGIFNPRklKQQorTUlIQUpMT1ZJxIYgU1LEkEEKK01JSEFKTE9WScSGIFNSQklTTEFWIERSIExFS0FSCitNSUhBSkxPVknEhiBTUkVURU4KK01JSEFKTE9WScSGIFNSRVRLTworTUlIQUpMT1ZJxIYgU1RBTknFoEEgRElQTCBJTkcKK01JSEFKTE9WScSGIFNUQU5JU0xBVkEKK01JSEFKTE9WScSGIFNUQU5LTworTUlIQUpMT1ZJxIYgU1RFVkFOCitNSUhBSkxPVknEhiBTVEVWQU4KK01JSEFKTE9WScSGIFNURVZBCitNSUhBSkxPVknEhiBTVEVWSUNBCitNSUhBSkxPVknEhiBTVE9KQU4KK01JSEFKTE9WScSGIFNUT0pBTgorTUlIQUpMT1ZJxIYtU1VCScSGIEpPVkFOS0EKK01JSEFKTE9WScSGIFNWRVRPWkFSCitNSUhBSkxPVknEhiBTVkVUT1pBUgorTUlIQUpMT1ZJxIYgU1ZFVE9aQVIKK01JSEFKTE9WScSGIFRVR09NSVIKK01JSEFKTE9WScSGIFVST8WgCitNSUhBSkxPVknEhiBWQVNBCitNSUhBSkxPVknEhiBWRVJBCitNSUhBSkxPVknEhiBWSVRPTUlSCitNSUhBSkxPVknEhiBWTEFESU1JUgorTUlIQUpMT1ZJxIYgVkxBRElNSVIKK01JSEFKTE9WScSGIFZPSklTTEFWCitNSUhBSkxPVknEhiBaT1JBTkEKK01JSEFKTE9WScSGIFpPUklDQQorTUlIQUpMT1ZTS0kgTEpVQklOS0EKK01JSEFKTE9WU0tJIE1JUk9TTEFWCitNSUhBSkxPVlNLSSBWTEFESU1JUgorTUlIQUxBxIxLSSBNSUhBSUxPCitNSUhBTEHEjEtJIFNMT0JPREFOCitNSUhBTEVDIEFOR0VMSU5BCitNSUhBTEVDIE1BUklKQQorTUlIQUxFSyBJVkFOCitNSUhBTEVLIE1BUklKQQorTUlIQUxFTktPIFNURVZBTgorTUlIQUxJxIYgUEVUQVIKK01JSEFMSUstVElSIFpVWkFOQQorTUlIQUxKIEVTVEVSCitNSUhBTEogTUFSSUpBIERSCitNSUhBTEogTUlIQUpMTyBEUgorTUlIQUxKIE1JUk9TTEFWIERSCitNSUhBTEogVkxBRElNSVIKK01JSEFMSsSMRVZJxIYgQUxPSlpJSkUKK01JSEFMSsSMScSGIERSQUdBTgorTUlIQUxKxIxJxIYgR09KS08KK01JSEFMSsSMScSGIElMRQorTUlIQUxKxIxJxIYgSk9WQU4KK01JSEFMSsSMScSGIEpPVkFOCitNSUhBTErEjEnEhiBMVUtBCitNSUhBTErEjEnEhiBNSVRBUgorTUlIQUxKxIxJxIYgU1BBU09KRQorTUlIQUxKRVYgxb1FTEpLTworTUlIQUxKRVYgSVZBTiBEUgorTUlIQUxKRVYgU1RPSkFOCitNSUhBTEpFVknEhiBBTlRPTgorTUlIQUxKRVZJxIYgRU1JTAorTUlIQUxKRVZJxIYgSVZBTgorTUlIQUxKRVZJxIYgTUlMQU4KK01JSEFMSkVWScSGIFJVxb1JQ0EKK01JSEFMSkVWScSGIFpEUkFWS08KK01JSEFMSkZJIE1BUklLQQorTUlIQUxKSSBNQVJJSkEKK01JSEFMSknEjEnEhiBCUkFOS08KK01JSEFMSknEjEnEhiBETUlUQVIKK01JSEFMSknEjEnEhiBKT1ZBTktBCitNSUhBTEpJxIxJxIYgU0lNTworTUlIQUxKScSMScSGIFRPREUKK01JSEFMSklDQSBBTsSQQQorTUlIQUxKSUNBIEJPxb1PCitNSUhBTEpJQ0EgQ1ZFVEtPCitNSUhBTEpJQ0EgTUlSQQorTUlIQUxKS0EgQlJBTklTTEFWCitNSUhBTEpPVlNLSSBEQU5JTE8KK01JSEFMT1ZJxIYgQlJBTktPCitNSUhBTE9WScSGIEdST1pEQU5BCitNSUhFTEogRlJBTkpPCitNSUhFVkMgSVZBTktBCitNSUhJxIYgxIxFRE9NSVIKK01JSEnEhiBCT8W9SURBUgorTUlIScSGIE1JTEFOCitNSUhJxIYgTUlMQU4KK01JSEnEhiBNSUxFTkEKK01JSEnEhiBSSVNUTworTUlIScSGIFJJU1RPCitNSUhJxIYgU0FWQSBESVBMIElORworTUlIScSGIFZFUkEKK01JSEnEhiBWTEFESU1JUgorTUlIScSGIFZPSklTTEFWS0EKK01JSEnEhiBaT1JBTgorTUlITElDIFBFVEFSCitNSUhOSkFLIEpPQUtJTQorTUlITkpBSyBLQVRJQ0EKK01JSE5KQUsgTEFESVNMQVYKK01JSE5KQUsgTUVMQU5JSkEKK01JSE5KQUsgTkFEQQorTUlITkpBSyBQRVRBUgorTUlIT0NJIEZSQU5KQQorTUlIT0NJIFpWT05JTUlSCitNSUhPSkVWScSGIMSQT1LEkEUKK01JSE9KRVZJxIYgTUlMRU5BCitNSUhPSkVWScSGIE5JS09MQQorTUlIT0pFVknEhiBTTkXFvUFOQQorTUlIT0zEjEnEhiBTVEVWSUNBCitNSUhPTEpFVknEhiBFTUEKK01JSE9MSkVWScSGIE1JTE9US0EKK01JSkHEjCBTTEFWS08KK01JSkHEjEVWScSGIE1JTEFOCitNSUpBRMW9RVZJxIYgSk9WTworTUlKQUlMT1ZJxIYgxJBPUsSQRQorTUlKQUlMT1ZJxIYgTUlMSVZPSkUKK01JSkFJTE9WScSGIFBBTlRFTElKQQorTUlKQUlMT1ZJxIYgUkFOSVNBVgorTUlKQUlMT1ZJxIYgUkFOS08KK01JSkFJTE9WScSGIFNUQU5PSkUKK01JSkFKTE9WScSGIEFKTkEKK01JSkFKTE9WScSGIFZVS09TQVZBCitNSUpBTMSMScSGIE1JTEFOCitNSUpBTMSMScSGIFNBVkEKK01JSkFMxIxJxIYgWk9SQQorTUlKQUxJQ0EgU1ZFVE9TTEFWCitNSUpBTk9WScSGIMSQT1LEkEUKK01JSkFOT1ZJxIYgxJBPUsSQRQorTUlKQU5PVknEhiBNSUxJQ0EKK01JSkFOT1ZJxIYgTUlMT8WgCitNSUpBTk9WScSGIE1JTE9SQUQKK01JSkFOT1ZJxIYgTUlMT1JBRAorTUlKQU5PVknEhiBQQVZMRQorTUlKQU5PVknEhiBSQURPTUlSCitNSUpBVCBJVkFOCitNSUpBVCBNSUxBTktBCitNSUpBVCBST0tPCitNSUpBVCBUT01JU0xBVgorTUlKQVRPViDFvUlWS0EKK01JSkFUT1YgQUxFS1NBTkRBUgorTUlKQVRPViBBTsSQRUxLQQorTUlKQVRPViBCUkFOSVNMQVYKK01JSkFUT1YgRFJBR0nEhgorTUlKQVRPViBEUkFHSUNBCitNSUpBVE9WIElWQU4KK01JSkFUT1YgSVZBTgorTUlKQVRPViBKT1NBCitNSUpBVE9WIEtBVElDQQorTUlKQVRPViBMQVpBUgorTUlKQVRPViBMSlVCSU5LQQorTUlKQVRPViBMSlVCT01JUgorTUlKQVRPViBNSUxBRElOCitNSUpBVE9WIE1JTEFOCitNSUpBVE9WIE1JTEFOCitNSUpBVE9WIE1JTEFOCitNSUpBVE9WIE1JTEEKK01JSkFUT1YgTUlMRU5LTworTUlKQVRPViBNSUxPxaAKK01JSkFUT1YgTUlMT1JBRAorTUlKQVRPViBNSU9EUkFHCitNSUpBVE9WIE1JUkpBTkEKK01JSkFUT1YgUkFESVZPSgorTUlKQVRPViBSQURPVkFOCitNSUpBVE9WIFNBVkEKK01JSkFUT1YgU0FWS0EKK01JSkFUT1YgU0xBVktPCitNSUpBVE9WIFNNSUxKS0EKK01JSkFUT1YgU1RFVkFOCitNSUpBVE9WIFZJRE9TQVZBCitNSUpBVE9WIFZPSklOCitNSUpBVE9WIFpMQVRJTktBCitNSUpBVE9WScSGIMW9SVZBTgorTUlKQVRPVknEhiDEkE9SxJBFCitNSUpBVE9WScSGIMSQVUpBCitNSUpBVE9WScSGIMSQVVJJQ0EKK01JSkFUT1ZJxIYgxJBVUk8KK01JSkFUT1ZJxIYgQUxFS1NBTkRSQQorTUlKQVRPVknEhiBBTlRPTklKRQorTUlKQVRPVknEhiBCSVNFUktBCitNSUpBVE9WScSGIEJPxaBLTworTUlKQVRPVknEhiBCT8W9SURBUgorTUlKQVRPVknEhiBCT8W9TworTUlKQVRPVknEhiBCT0dPTUlSCitNSUpBVE9WScSGIEJSQU5LTworTUlKQVRPVknEhiBEUkFHQU4KK01JSkFUT1ZJxIYgRFJBR0FOCitNSUpBVE9WScSGIERSQUdJxIYKK01JSkFUT1ZJxIYgRFJBR0kKK01JSkFUT1ZJxIYgRFXFoEFOCitNSUpBVE9WScSGIERVxaBBTgorTUlKQVRPVknEhiBEVcWgQU4KK01JSkFUT1ZJxIYgR09KS08KK01JSkFUT1ZJxIYgSUxJSkEKK01JSkFUT1ZJxIYgSUxJSkEKK01JSkFUT1ZJxIYgSk9WQU4KK01JSkFUT1ZJxIYgSk9WQU4KK01JSkFUT1ZJxIYgS0FUSUNBCitNSUpBVE9WScSGIEtPU1RBCitNSUpBVE9WScSGIExBWkFSCitNSUpBVE9WScSGIExBWkFSCitNSUpBVE9WScSGIExFTEEKK01JSkFUT1ZJxIYgTEpJTEpBTkEKK01JSkFUT1ZJxIYgTEpVQkVOS08KK01JSkFUT1ZJxIYgTEpVQklDQQorTUlKQVRPVknEhiBMSlVCSUNBCitNSUpBVE9WScSGIExKVUJJQ0EKK01JSkFUT1ZJxIYgTUFSVEEKK01JSkFUT1ZJxIYgTUFUTworTUlKQVRPVknEhiBNScWgQQorTUlKQVRPVknEhiBNSUxBTgorTUlKQVRPVknEhiBNSUxFVkEKK01JSkFUT1ZJxIYgTUlMSVZPSkUKK01JSkFUT1ZJxIYgTUlMS08KK01JSkFUT1ZJxIYgTUlMT8WgCitNSUpBVE9WScSGIE1JTE9SQUQKK01JSkFUT1ZJxIYgTUlMT1ZBTgorTUlKQVRPVknEhiBNSU9EUkFHCitNSUpBVE9WScSGIE1JUkEKK01JSkFUT1ZJxIYgTUlSSkFOQQorTUlKQVRPVknEhiBNSVJKQU5BCitNSUpBVE9WScSGIE5BVEHFoEEKK01JSkFUT1ZJxIYgTkVWRU5BCitNSUpBVE9WScSGIE5JS09MQQorTUlKQVRPVknEhiBOT1ZPCitNSUpBVE9WScSGIE9CUkFECitNSUpBVE9WScSGIFBFUkEKK01JSkFUT1ZJxIYgUEVUQVIKK01JSkFUT1ZJxIYtUFXFoEnEhiBCUkFOSVNMQVZBIERSCitNSUpBVE9WScSGIFJBREnEjAorTUlKQVRPVknEhiBSQURPU0xBVgorTUlKQVRPVknEhiBTSU1PCitNSUpBVE9WScSGIFNORcW9QU5BCitNSUpBVE9WScSGIFNUQU5BCitNSUpBVE9WScSGIFRPxaBBCitNSUpBVE9WScSGIFRPTUlTTEFWCitNSUpBVE9WScSGIFZFUkEKK01JSkFUT1ZJxIYgVkVSQQorTUlKQVRPVknEhiBWSUQKK01JSkFUT1ZJxIYgVkxBREFOCitNSUpBVE9WScSGIFZPSklOIEFEVk9LQVQKK01JSkFUT1ZJxIYgWkRSQVZLTyBESVBMIElORworTUlKQVRPVknEhiBaT1JBTgorTUlKQVRPVknEhiBaT1JBCitNSUpBVE9WScSGIFpPUklDQQorTUlKQVRPVknEhiBaVk9OSU1JUgorTUlKQVZFQyDEkE9SxJBFCitNSUpBVkVDIEpPVkFOCitNSUpBVkVDIExVRFZJRworTUlKQVZFQyBNSUhBSkxPCitNSUpBVkVDIFBBSkEKK01JSkFWRUMgWk9SQQorTUlKScSGIMW9RUxKS08KK01JSknEhiDFvUVMSktPCitNSUpJxIYgxJBPUsSQRQorTUlKScSGIEFMRUtTQU5EQVIKK01JSknEhiBBTlRFCitNSUpJxIYgQlJBTktPCitNSUpJxIYgREVTQU5LQQorTUlKScSGIERSQUdBTgorTUlKScSGIERVxaBBTgorTUlKScSGIElMSUpBCitNSUpJxIYgSkFOSkEKK01JSknEhiBNSUhBSkxPCitNSUpJxIYgTUlMQU4KK01JSknEhiBNSUxPxaAKK01JSknEhiBNSU9EUkFHCitNSUpJxIYgTklLT0xBCitNSUpJxIYgUEVSQQorTUlKScSGIFBFVEFSCitNSUpJxIYgUEVUQVIKK01JSknEhiBSQURPVkFOCitNSUpJxIYgUkFET1ZBTgorTUlKScSGIFNBVkEKK01JSknEhiBTVkVUSVNMQVYKK01JSknEhiBUSU5LQQorTUlKScSGIFZFTEpLTworTUlKScSGIFZFU05BCitNSUpJxIYgVkxBRElNSVIKK01JSklOIEJPUklTTEFWCitNSUpJTiBCUkFOSVNMQVYKK01JSklOIEpPVkEKK01JSklOIExBWkFSCitNSUpJTiBMQVpBUgorTUlKSU4gTUlMQU4KK01JSklOIE1JTEVWQQorTUlKSU4gTUlMSUNBCitNSUpJTiBNSUxPxaAKK01JSklOIFBFVEFSCitNSUpJTiBQRVRBUgorTUlKSU4gUkFEQQorTUlKSU4gU0FWQQorTUlKSU4gU0lNQQorTUlKSU4gU1RFVkFOCitNSUpJTiBTVkVUT1pBUgorTUlKT0tPViBEUkFHQU4KK01JSk9MScSGIFNMT0JPREFOCitNSUpPTEpFVknEhiBNSUxFTktPCitNSUpPVknEhiDFvUFSS08KK01JSk9WScSGIERSQUdJQ0EKK01JSk9WScSGIEdBVlJJTE8KK01JSk9WScSGIFJBRE9KS0EKK01JSk9WScSGIFZFUkEKK01JSlXEjEnEhiBTVEVWQU4KK01JSlXEjEnEhiBWRVJBCitNSUpVxIxJTiBNSUxLQQorTUlKVcWgS09WScSGIERSQUdJQ0EKK01JSlXFoEtPVknEhiBKT1ZBTgorTUlKVcWgS09WScSGIE1JTElWT0pFCitNSUpVxaBLT1ZJxIYgT0JSRU4KK01JSlXFoEtPVknEhiBSQURFCitNSUpVxaBLT1ZJxIYgUkFETUlMQQorTUlKVcWgS09WScSGIFRJTktBCitNSUvFoEEgTUlMQU4KK01JS8WgScSGIMSMRURPTUlSCitNSUvFoEnEhiBPVE9OCitNSUvFoEnEhiBTTE9CT0RBTgorTUlLQcWgSU5PVknEhiBCSUxKQU5BCitNSUtBxaBJTk9WScSGIFNBVkEKK01JS0HEhiBNSUxBTgorTUlLQUMgRVZLQQorTUlLQUxBxIxLSSDEkE9SxJBFCitNSUtBTEHEjEtJIEFMRUtTQU5EQVIKK01JS0FMQcSMS0kgRFJBR0lDQQorTUlLQUxBxIxLSSBJVkFOS0EKK01JS0FMQcSMS0kgSVZBTktBCitNSUtBTEHEjEtJIEpBU01JTkEKK01JS0FMQcSMS0kgTUlMVVRJTgorTUlLQUxBxIxLSSBNSVJKQU5BCitNSUtBTEHEjEtJIFBBVkxFCitNSUtBTEHEjEtJIFVST8WgCitNSUtBTEHEjEtJIFpPUkFOCitNSUtBTEHEjEtJIFpPUkFOCitNSUtBTiBCT1NJTEpLQQorTUlLQU4gSVZBTgorTUlLQU5PVknEhiBEQU5JQ0EKK01JS0FOT1ZJxIYgRFJBR0FOCitNSUtBTk9WScSGIElSRU5BCitNSUtBTk9WScSGIFJBTktPCitNSUtBVklDQSBTVEFOSU1JUgorTUlLRSBFU1RFUgorTUlLRcWgIEFORFJJSkEKK01JS0XFoCBFTkRSRQorTUlLRcWgIEVURUwKK01JS0XFoCBNRUxBTklKQQorTUlLRcWgIE1JSEFMSgorTUlLRVRJxIYgTUlSSkFOQQorTUlLScSGIMW9QVJLTworTUlLScSGIMW9QVJLTworTUlLScSGIMSQVVJBIERSCitNSUtJxIYgREVTSU1JUgorTUlLScSGIElWQU4KK01JS0nEhiBKT1NJUCBESVBMIElORworTUlLScSGIExBWkFSCitNSUtJxIYgTUFLU0lNCitNSUtJxIYgTUlMQU4KK01JS0nEhiBNSUxFTkEKK01JS0nEhiBNSUxJU0FWCitNSUtJxIYgTUlMS0EKK01JS0nEhiBNSUxLQQorTUlLScSGIE1JTE9WQU4KK01JS0nEhiBNSVJPU0xBVgorTUlLScSGIE9MR0EKK01JS0nEhiBSQURJVk9KRQorTUlLScSGIFJBRE9KS0EKK01JS0nEhiBSQURPU0xBVktBCitNSUtJxIYgUlXFvUEKK01JS0nEhiBTTE9CT0RBTgorTUlLScSGIFNSQk9MSlVCCitNSUtJxIYgU1RPSkEKK01JS0nEhiBUT0RPUgorTUlLScSGIFZMQURBTgorTUlLScSGIFpPUktBCitNSUtJTiBOQURBCitNSUtJVEnFoElOIE5BREEKK01JS0xFViBTVE9KQU5LQQorTUlLTEnEhiDEkE9SxJBFCitNSUtMScSGIEFOQQorTUlLTEnEhiBURVJFWkEKK01JS0xPxaAgQU5EUkHFoAorTUlLTE/FoCBBTkRSSUpBCitNSUtMT8WgIEFOVEFMCitNSUtMT8WgIERJTUlUUklKRQorTUlLTE/FoCBKQU5LTworTUlLTE/FoCBKRUxJU0FWRVRBCitNSUtMT8WgIEpVTElKQU4KK01JS0xPxaAgTkFORE9SIERSIExFS0FSCitNSUtMT8WgIFNURVZBTgorTUlLTE/FoCBWTEFESU1JUgorTUlLTE9WSUMgSkFOCitNSUtMT1ZJQyBNSUxPU0xBVgorTUlLT0xBIMSQVVJBCitNSUtPTEFDSSBMRVBPU0FWQQorTUlLT0xFQ0tJIFNMQVZJQ0EKK01JS09MScSGIEFMRUtTQU5EQVIKK01JS09WIEpPVkFOS0EKK01JS09WIE1FVE9ESSBEUiBMRUtBUgorTUlLT1YgTU9NSVIKK01JS09WScSGIMSQT1LEkEUKK01JS09WScSGIMSQT1LEkEUKK01JS09WScSGIMSQVVJBCitNSUtPVknEhiBBTEVLU0FOREFSCitNSUtPVknEhiBBTEVLU0FOREFSCitNSUtPVknEhiBEQU5JTE8KK01JS09WScSGIERBUklOS0EKK01JS09WScSGIERFSkFOCitNSUtPVknEhiBERVNBTktBCitNSUtPVknEhiBKRUxFTkEKK01JS09WScSGIExBWkFSCitNSUtPVknEhiBMSklMSkFOQQorTUlLT1ZJxIYgTUlMRU5BCitNSUtPVknEhiBNSU9EUkFHCitNSUtPVknEhiBNTEFERU4KK01JS09WScSGIE1PTcSMSUxPIERSIFBSQVZOSUsKK01JS09WScSGIE5BREEKK01JS09WScSGIE5JTk9TTEFWCitNSUtPVknEhiBQQVZBCitNSUtPVknEhiBSVcW9SUNBCitNSUtPVknEhiBTTEFWS08KK01JS09WScSGIFNORcW9QU5BCitNSUtPVknEhiBTUkVET0pFCitNSUtPVklMT1ZJxIYgSVZBTgorTUlLU0FUIEpPxb1FRgorTUlLVcWgIEFOxJBFTEtBCitNSUtVxaAgTUlMS0EKK01JS1XFoCBNSVJKQU5BCitNSUtVTEVTS08gRFXFoEFOCitNSUtVTEVTS08gU0FWTyBESVBMIElORworTUlLVUxJxIYgxaBJTUUKK01JS1VMScSGIEJJTEpBTkEKK01JS1VMScSGIEJMQcW9CitNSUtVTEnEhiBFRElUCitNSUtVTEnEhiBJVkFOCitNSUtVTEnEhiBJVkFOCitNSUtVTEnEhiBJVkEKK01JS1VMScSGIEpFTElTQVZFVEEKK01JS1VMScSGIExPVlJFCitNSUtVTEnEhiBNQVJBCitNSUtVTEnEhiBNSUxFCitNSUtVTEnEhiBNSUxJxIYKK01JS1VMSU5BQyBNQVRJSkEKK01JS1VMSU5BQyBSRU5FVEEKK01JS1VMSU5BQyBTTEFWSUNBCitNSUzEjEnEhiBEUkFHQU4KK01JTMSMScSGIEpPVkFOCitNSUxBxIxJxIYgxb1FTEpLTworTUlMQcSMScSGIEJPUklWT0pFCitNSUxBxIxJxIYgQlJBTklTTEFWCitNSUxBxIxJxIYgQlJBTktPCitNSUxBxIxJxIYgRFXFoEFOCitNSUxBxIxJxIYgSVZBTgorTUlMQcSMScSGIExKVUJPTUlSCitNSUxBxIxJxIYgTUHFoEFOCitNSUxBxIxJxIYgTUlMRU5LTworTUlMQcSMScSGIFNSQk9TTEFWCitNSUxBxIxJxIYgU1ZFVE9aQVIKK01JTEHEjEnEhiBaT1JJQ0EKK01JTEHFoCBEUkFHQU4KK01JTEHFoCBEVcWgQU5LQQorTUlMQcWgRVZJxIYgWk9SS0EKK01JTEHFoElOT1ZJxIYgSk9WQU4KK01JTEHFoElOT1ZJxIYgTEpVQk9NSVIKK01JTEHFoElOT1ZJxIYgTUnEhlVOCitNSUxBxaBJTk9WScSGIE1JTE9SQUQKK01JTEHFoElOT1ZJxIYgTUlSSkFOQQorTUlMQcWgSU5PVknEhiBNSVJLTworTUlMQcWgSU5PVknEhiBNSVJLTworTUlMQcWgSU5PVknEhiBSQURFCitNSUxBxaBJTk9WScSGLVNUQU5PSkVWScSGIExKSUxKQU5BCitNSUxBxaBJTk9WScSGIFZVS09NQU4KK01JTEHFoElOT1ZJxIYgWkxBVE9KQQorTUlMQURJxIYgxIxFREEKK01JTEFEScSGIERPQlJPTUlSCitNSUxBREnEhiBQRVRBUgorTUlMQURJTk9TS0kgTEVWS08KK01JTEFESU5PViDFvUFSS08KK01JTEFESU5PViDFvUlWS08KK01JTEFESU5PViBCT8W9SURBUgorTUlMQURJTk9WIERBTklDQQorTUlMQURJTk9WIERBTklDQQorTUlMQURJTk9WIERVxaBBTktBCitNSUxBRElOT1YgRFXFoEFOCitNSUxBRElOT1YgSk9DQQorTUlMQURJTk9WIEpPVkFOCitNSUxBRElOT1YgSk9WQU4KK01JTEFESU5PViBKT1ZBTgorTUlMQURJTk9WIEpPVklDQQorTUlMQURJTk9WIExKVUJJQ0EKK01JTEFESU5PViBNQVJJSkEKK01JTEFESU5PViBNSUxBTgorTUlMQURJTk9WIE1JTEFOCitNSUxBRElOT1YgTUlMRU5BCitNSUxBRElOT1YgTUlMRU5LTworTUlMQURJTk9WIE1JTE9WQU4gRElQTCBJTkcKK01JTEFESU5PViBNSUxPVkFOCitNSUxBRElOT1YgTkFEQQorTUlMQURJTk9WIE5PVkFLCitNSUxBRElOT1YgUkFESVZPSgorTUlMQURJTk9WIFJBRE9WQU4KK01JTEFESU5PViBTTEFWSUNBCitNSUxBRElOT1YgU1JCSU5LTworTUlMQURJTk9WIFNWRVRPWkFSCitNSUxBRElOT1YgU1ZFVE9aQVIKK01JTEFESU5PViBUSUhPTUlSCitNSUxBRElOT1YgVkVTTkEKK01JTEFESU5PViBWSkVSQQorTUlMQURJTk9WScSGIMW9SVZBRElOIERJUEwgSU5HCitNSUxBRElOT1ZJxIYgxb1JVk9KSU4KK01JTEFESU5PVknEhiDEkE9SxJBFCitNSUxBRElOT1ZJxIYgQUxFS1NBTkRBUgorTUlMQURJTk9WScSGIEFMRUtTQU5EQVIKK01JTEFESU5PVknEhiBCT8W9SURBUgorTUlMQURJTk9WScSGIEJSQU5JTUlSCitNSUxBRElOT1ZJxIYgQlJBTktPCitNSUxBRElOT1ZJxIYgREFNSVIKK01JTEFESU5PVknEhiBESVZOQQorTUlMQURJTk9WScSGIERSQUdBTgorTUlMQURJTk9WScSGIERSQUdBTgorTUlMQURJTk9WScSGIERSQUdJxaBBCitNSUxBRElOT1ZJxIYgRFJBR09NSVIKK01JTEFESU5PVknEhiBEUkFHT1NMQVYKK01JTEFESU5PVknEhiBEVcWgQU4KK01JTEFESU5PVknEhiBKT1ZBTgorTUlMQURJTk9WScSGIEpPVkFOCitNSUxBRElOT1ZJxIYgTEpVQklDQQorTUlMQURJTk9WScSGIExKVUJJTktBCitNSUxBRElOT1ZJxIYgTUFSS08KK01JTEFESU5PVknEhiBNSUhBSkxPCitNSUxBRElOT1ZJxIYgTUlMQU4KK01JTEFESU5PVknEhiBNSUxBTgorTUlMQURJTk9WScSGIE1JTEFOCitNSUxBRElOT1ZJxIYgTUlMRQorTUlMQURJTk9WScSGIE1JTE9WQU4KK01JTEFESU5PVknEhiBNSVJPU0xBVgorTUlMQURJTk9WScSGIE5PVklDQQorTUlMQURJTk9WScSGIFBSRURSQUcKK01JTEFESU5PVknEhiBSQURNSUxPCitNSUxBRElOT1ZJxIYgUkFET1NMQVYKK01JTEFESU5PVknEhiBTTEFWS08KK01JTEFESU5PVknEhiBTTE9CT0RBTktBCitNSUxBRElOT1ZJxIYgU0xPQk9EQU4KK01JTEFESU5PVknEhiBTTE9CT0RBTgorTUlMQURJTk9WScSGIFNWRVRPTUlSCitNSUxBRElOT1ZJxIYgVE9ERQorTUlMQURJTk9WScSGIFZFUkEKK01JTEFLIMSQT1LEkEUKK01JTEFLIERBUklOS0EKK01JTEFLIERVxaBBTgorTUlMQUsgSkVMRU5BCitNSUxBSyBKT1ZBTgorTUlMQUsgSk9WQU4KK01JTEFLIEtBVElDQQorTUlMQUsgTEFaQVIKK01JTEFLIE1JTEFOCitNSUxBSyBNSUxBTgorTUlMQUsgTUlMRU5LTworTUlMQUsgTUlMT8WgCitNSUxBSyBSQURPU0xBVgorTUlMQUsgU0FWQQorTUlMQUtPViBKRUxFTkEgRFIgUFJPRgorTUlMQUtPViBMSlVCSUNBIERSCitNSUxBS09WIE1JUkpBTkEKK01JTEFLT1ZJxIYgxJBPUsSQRQorTUlMQUtPVknEhiDEkFVSQcSQCitNSUxBS09WScSGIMSQVVJPCitNSUxBS09WScSGIEJPU0lMSktBCitNSUxBS09WScSGIERBTklDQQorTUlMQUtPVknEhiBEUkFHSUNBCitNSUxBS09WScSGIERVxaBBTgorTUlMQUtPVknEhiBHT1JBTgorTUlMQUtPVknEhiBNSUxBTgorTUlMQUtPVknEhiBNSUxLQQorTUlMQUtPVknEhiBNTEFERU4KK01JTEFLT1ZJxIYgUkFETUlMQQorTUlMQUtPVknEhiBSQVRPTUlSCitNSUxBS09WScSGIFRFT0RPUgorTUlMQUtPVknEhiBWT0pJU0xBVgorTUlMQUtPVknEhiBWT0pPCitNSUxBS09WScSGIFZVS0lDQQorTUlMQUtPVknEhiBaT1JBTgorTUlMQU5LTyBTTEFWS08KK01JTEFOS09WIMW9SVZBCitNSUxBTktPViDFvUlWQQorTUlMQU5LT1YgxJBPUsSQRQorTUlMQU5LT1YgQlJBTklTTEFWCitNSUxBTktPViBDVkVUQQorTUlMQU5LT1YgRFXFoEFOCitNSUxBTktPViBJVkFOCitNSUxBTktPViBKRUxFTkEKK01JTEFOS09WIEpVTElKQU5BCitNSUxBTktPViBMQVpBUgorTUlMQU5LT1YgTUFSS08KK01JTEFOS09WIE1JTEVOS08KK01JTEFOS09WIE1JTElWT0oKK01JTEFOS09WIE1JTEtPCitNSUxBTktPViBTTEFWSU1JUgorTUlMQU5LT1YgU09GSUpBCitNSUxBTktPViBTVEFOSU1JUgorTUlMQU5LT1YgU1RFVkFOCitNSUxBTktPVknEhiDEkE9SxJBFCitNSUxBTktPVknEhiDEkE9SxJBFCitNSUxBTktPVknEhiBBTkEKK01JTEFOS09WScSGLUNPS09WScSGIE1JUkpBTkEKK01JTEFOS09WScSGIERSQUdPTEpVQgorTUlMQU5LT1ZJxIYgR09SQU4KK01JTEFOS09WScSGIEdPUkFOCitNSUxBTktPVknEhiBJTElOS0EKK01JTEFOS09WScSGIExBWkFSCitNSUxBTktPVknEhiBNSUxBTktPCitNSUxBTktPVknEhiBNSUxBTgorTUlMQU5LT1ZJxIYgTUlMRVZBCitNSUxBTktPVknEhiBSQURPU0xBVgorTUlMQU5LT1ZJxIYgU0xPQk9EQU4KK01JTEFOS09WScSGIFpPUkEKK01JTEFOT1YgQU5JQ0EKK01JTEFOT1YgQU5LQQorTUlMQU5PViBCT0dEQU4KK01JTEFOT1YgQk9SSVNMQVZBCitNSUxBTk9WIERPQlJJVk9KCitNSUxBTk9WIEpFTElDQQorTUlMQU5PViBMSlVCScWgQQorTUlMQU5PViBNSUxBTgorTUlMQU5PViBNSU9EUkFHCitNSUxBTk9WIE1JUkpBTkEKK01JTEFOT1YgTUxBREVOCitNSUxBTk9WIFBFUlNJREEKK01JTEFOT1YgUkFESVZPSgorTUlMQU5PViBTQVZLQQorTUlMQU5PViBTVkVUT1pBUgorTUlMQU5PViBWVUtPU0FWQQorTUlMQU5PVknEhiDFvUVMSktPCitNSUxBTk9WScSGIMW9SVZPUkFECitNSUxBTk9WScSGIMW9SVZPVElKRQorTUlMQU5PVknEhiBBTEVLU0FOREFSCitNSUxBTk9WScSGIEJPxaBLTworTUlMQU5PVknEhiBCT8W9SURBUgorTUlMQU5PVknEhiBCT0dEQU4KK01JTEFOT1ZJxIYgQlJBTktPIERSCitNSUxBTk9WScSGIEJSQU5LTworTUlMQU5PVknEhiBDVklKRVRJTgorTUlMQU5PVknEhiBEQU1KQU5LQQorTUlMQU5PVknEhiBERVNBTktBCitNSUxBTk9WScSGIERPTktBCitNSUxBTk9WScSGIERSQUdBTgorTUlMQU5PVknEhiBEUkFHQU4KK01JTEFOT1ZJxIYgRFJBR0FOCitNSUxBTk9WScSGIERSQUdJQ0EKK01JTEFOT1ZJxIYgRFJBR08KK01JTEFOT1ZJxIYgRFXFoEFOCitNSUxBTk9WScSGIEdPUkFOCitNSUxBTk9WScSGIEdPUkFOCitNSUxBTk9WScSGIElMSUpBCitNSUxBTk9WScSGIElMSUpBCitNSUxBTk9WScSGIEpBU01JTkEKK01JTEFOT1ZJxIYgS0FUSUNBCitNSUxBTk9WScSGIExKSUxKQU5BCitNSUxBTk9WScSGIExKVUJJxaBBCitNSUxBTk9WScSGIExKVUJJQ0EKK01JTEFOT1ZJxIYgTUFSVEEKK01JTEFOT1ZJxIYgTUlITworTUlMQU5PVknEhiBNSUxBTkEKK01JTEFOT1ZJxIYgTUlMRU5LTworTUlMQU5PVknEhiBNSUxFTktPCitNSUxBTk9WScSGIE1JTElKQQorTUlMQU5PVknEhiBNSUxJU0FWCitNSUxBTk9WScSGIE1JTElTQVYKK01JTEFOT1ZJxIYgTUlMT0pFCitNSUxBTk9WScSGIE1JTE9SQUQKK01JTEFOT1ZJxIYgTUlMT1JBRAorTUlMQU5PVknEhiBNSU9EUkFHCitNSUxBTk9WScSGIE1MQURFTgorTUlMQU5PVknEhiBOQURBCitNSUxBTk9WScSGLVBFVFJBxaBFVknEhiBEUkFHSUNBCitNSUxBTk9WScSGIFJBRE9TTEFWCitNSUxBTk9WScSGIFJBRE9WQU4KK01JTEFOT1ZJxIYgU0HFoEEKK01JTEFOT1ZJxIYgU0xBVk9MSlVCCitNSUxBTk9WScSGIFNMT0JPREFOCitNSUxBTk9WScSGIFNWRVRPTUlSCitNSUxBTk9WScSGIFZJS1RPUklKQQorTUlMQU5PVknEhiBWSVRLTworTUlMQU5PVknEhiBWTEFESU1JUgorTUlMQU5PVknEhiBWTEFESU1JUgorTUlMQU5PVknEhiBWVUpPCitNSUxBTk9WScSGIFpPUkFOCitNSUxBTk9WScSGIFpPUkFOCitNSUxBTk9WScSGIFpPUkEKK01JTEFOT1ZJxIYgWk9SS0EKK01JTEFSScSGIElWQU4KK01JTEFUT1ZJxIYgREFOSUxPCitNSUxBVE9WScSGIEpPVkFOS0EKK01JTEFUT1ZJxIYgVkxBRElNSVIKK01JTEXFoEVWIE1JTElDQQorTUlMRcWgRVZJxIYgT0JSQUQKK01JTEVDIERPUk9URUEKK01JTEVDIElMT05LQQorTUlMRUkgRFJBR1VUSU4KK01JTEVJIEpBTk/FoAorTUlMRUkgVE9NSVNMQVYKK01JTEVLxaBJxIYgQk9HREFOCitNSUxFS0nEhiBEVcWgQU4KK01JTEVLScSGIE1JTE9NSVIKK01JTEVLScSGIE5JS09MQQorTUlMRUtJxIYgU1RFVkFOCitNSUxFS0nEhiBVUk/FoAorTUlMRU5LT1ZJxIYgxb1BUktPCitNSUxFTktPVknEhiDFvUlWT0pJTgorTUlMRU5LT1ZJxIYgxJBPUsSQRQorTUlMRU5LT1ZJxIYgxJBVUsSQSU5BCitNSUxFTktPVknEhiBBTEVLU0FOREFSCitNSUxFTktPVknEhi1BTlRJxIYgTEFaQVIKK01JTEVOS09WScSGLUJKRUxBSkFDIE1JTEFOS0EKK01JTEVOS09WScSGIEJPxb1JREFSCitNSUxFTktPVknEhiBCT0dPTUlSCitNSUxFTktPVknEhiBCT1JJVk9KRQorTUlMRU5LT1ZJxIYgQlJBTklTTEFWCitNSUxFTktPVknEhiBCUkFOSVNMQVYKK01JTEVOS09WScSGIEJSQU5LTworTUlMRU5LT1ZJxIYgQlJBVElTTEFWCitNSUxFTktPVknEhiBCUkFUSVNMQVYKK01JTEVOS09WScSGIERBUklOS0EKK01JTEVOS09WScSGIERPQlJJTEEKK01JTEVOS09WScSGIERPQlJJTEEKK01JTEVOS09WScSGIERPQlJJVk9KRQorTUlMRU5LT1ZJxIYgRFJBR0FOIERSCitNSUxFTktPVknEhiBEUkFHT8WgCitNSUxFTktPVknEhiBEUkFHT0xKVUIgRFIKK01JTEVOS09WScSGIERSQUdPU0xBVgorTUlMRU5LT1ZJxIYgRFJBR09TTEFWCitNSUxFTktPVknEhiBEVcWgQU4KK01JTEVOS09WScSGIERVxaBBTgorTUlMRU5LT1ZJxIYgRVLFvUlLQQorTUlMRU5LT1ZJxIYgR1JPWkRBTkEKK01JTEVOS09WScSGIElMT05LQQorTUlMRU5LT1ZJxIYgSVJFTkEKK01JTEVOS09WScSGIEpFTElDQQorTUlMRU5LT1ZJxIYgSkVWVE8KK01JTEVOS09WScSGIEpVR09TTEFWCitNSUxFTktPVknEhiBKVVNUSU5BCitNSUxFTktPVknEhiBLT1ZJTEpLQQorTUlMRU5LT1ZJxIYgS1JTVEFOQQorTUlMRU5LT1ZJxIYgTEpJTEpBTkEKK01JTEVOS09WScSGIExKSUxKQU5BCitNSUxFTktPVknEhiBNSUxJSkFOCitNSUxFTktPVknEhiBNSUxJU0FWCitNSUxFTktPVknEhiBNSUxPUkFECitNSUxFTktPVknEhiBNSUxPUkFECitNSUxFTktPVknEhiBNSUxPU0FWCitNSUxFTktPVknEhiBNSUxVVElOCitNSUxFTktPVknEhiBNSU9EUkFHCitNSUxFTktPVknEhiBNSVJPU0xBVgorTUlMRU5LT1ZJxIYgTUlST1NMQVYKK01JTEVOS09WScSGIE1PTcSMSUxPCitNSUxFTktPVknEhiBORUJPSsWgQQorTUlMRU5LT1ZJxIYgTkVOQUQKK01JTEVOS09WScSGIE5JxIZJRk9SCitNSUxFTktPVknEhiBQQVVOCitNSUxFTktPVknEhiBQUkVEUkFHCitNSUxFTktPVknEhiBSQURJU0FWCitNSUxFTktPVknEhiBSQURPTUlSCitNSUxFTktPVknEhiBSQURPU0xBVgorTUlMRU5LT1ZJxIYgUkFET1ZBTgorTUlMRU5LT1ZJxIYgU0FWQQorTUlMRU5LT1ZJxIYgU0xBVk9MSlVCCitNSUxFTktPVknEhiBTTkXFvUFOQQorTUlMRU5LT1ZJxIYgU1JFVEVOCitNSUxFTktPVknEhiBTVE9KQU5LQQorTUlMRU5LT1ZJxIYgU1ZFVElTTEFWCitNSUxFTktPVknEhiBTVkVUT01JUgorTUlMRU5LT1ZJxIYgVElIT01JUgorTUlMRU5LT1ZJxIYgVkVTRUxJTktBCitNSUxFTktPVknEhiBWSVRPTUlSCitNSUxFTktPVknEhiBWTEFEQU4KK01JTEVOS09WScSGIFpPUklDQQorTUlMRU5LT1ZJxIYgWk9SS0EKK01JTEVOS09WU0tJIEJMQUdPSkUKK01JTEVOS09WU0tJIE1JTElDQQorTUlMRU5PVknEhiDFvUlWQQorTUlMRU5PVknEhi1CRUtJxIYgTUlSSkFOQQorTUlMRU5PVknEhiBCUkFOS08KK01JTEVOT1ZJxIYgTUlMT1JBRAorTUlMRU5PVknEhiBPTEdBCitNSUxFTk9WScSGIFBSRURSQUcKK01JTEVOVElKRVZJxIYgxb1JVk9SQUQKK01JTEVOVElKRVZJxIYgWkRSQVZLTworTUlMRVIgQkFSQkFSQQorTUlMRVIgRVLFvUVCRVQKK01JTEVSIEZSQU5KQQorTUlMRVIgSU1SRSBEUiBMRUtBUgorTUlMRVIgSVZBTktBCitNSUxFUiBKRUxFTkEKK01JTEVSIEpFTElDQQorTUlMRVIgS0FSTE8KK01JTEVSIE1BUklKQQorTUlMRVIgTUlIQUpMTworTUlMRVIgT1RPS0FSCitNSUxFUiBaTEFUS08KK01JTEVTS0kgQVRBTkFTSUpFCitNSUxFVEEgTklLT0xBCitNSUxFVEHFoEtJIEJPUklWT0oKK01JTEVUQcWgS0kgTUlMRQorTUlMRVRJxIYgxb1JVktPCitNSUxFVEnEhiDFvUlWT1RBCitNSUxFVEnEhiDEkE9SxJBFCitNSUxFVEnEhiBBTEVLU0FORFJBCitNSUxFVEnEhiBBTkEKK01JTEVUScSGIEJPxb1BCitNSUxFVEnEhiBCT1JJxaBBCitNSUxFVEnEhiBCUkFOSVNMQVYKK01JTEVUScSGIERPQlJPU0FWCitNSUxFVEnEhiBEUkFHSUNBCitNSUxFVEnEhiBEVcWgQU4KK01JTEVUScSGIERVxaBBTgorTUlMRVRJxIYgRFXFoEFOCitNSUxFVEnEhiBHT0pLTworTUlMRVRJxIYgR1ZPWkRFTgorTUlMRVRJxIYgSUxJSkEKK01JTEVUScSGIElWSUNBCitNSUxFVEnEhiBMSlVCSUNBCitNSUxFVEnEhiBMSlVCSVNBVgorTUlMRVRJxIYgTUlMSUNBCitNSUxFVEnEhiBNSUxJVk9KCitNSUxFVEnEhiBNSUxPSkUKK01JTEVUScSGIE1JVEEKK01JTEVUScSGIE5BREEKK01JTEVUScSGIE5JS09MQQorTUlMRVRJxIYgT0xHQQorTUlMRVRJxIYgUEVUQVIKK01JTEVUScSGIFJBREUKK01JTEVUScSGIFJBRE/FoAorTUlMRVRJxIYgUkFET0pLQQorTUlMRVRJxIYgUkFET1NMQVYKK01JTEVUScSGIFJBTktPCitNSUxFVEnEhiBTRVZFUklOQQorTUlMRVRJxIYgU0xBVktPIERSIExFS0FSCitNSUxFVEnEhiBTTEFWS08KK01JTEVUScSGIFNMQVZPTEpVQgorTUlMRVRJxIYgU0xPQk9EQU4KK01JTEVUScSGIFNMT0JPREFOCitNSUxFVEnEhiBTT05KQQorTUlMRVRJxIYgU1RFVkFOCitNSUxFVEnEhiBWRUxFCitNSUxFVEnEhiBWRUxJQk9SCitNSUxFVEnEhiBWRUxJQk9SCitNSUxFVEnEhiBWRUxJTUlSCitNSUxFVEnEhiBWSURPU0FWQQorTUlMRVRJxIYgWkRSQVZLTworTUlMRVRJQ0tJIFJBREEKK01JTEVUSUNLSSBaT1JLQQorTUlMRVRJTiBEQU5BCitNSUxFVElOIE1JUkpBTkEKK01JTEVUSU4gTklLT0xBCitNSUxFVElOIFJBRElWT0oKK01JTEVUSU4gU1ZFVE9aQVIgRElQTCBPRUMKK01JTEVUT1ZJxIYgU0xBVktPCitNSUxFVVNOScSGIERSQUdBTgorTUlMRVVTTknEhiBNQVJLTworTUlMRVVTTknEhiBOQURBCitNSUxFVVNOScSGIE5BREEKK01JTEVVU05JxIYgUEVUQVIKK01JTEVWIFBFVEFSCitNSUxFVlNLSSDEkE9SxJBFCitNSUxIQU5TIFNUQU5JU0xBVgorTUlMScSMRVZJxIYgxJBVUkEKK01JTEnEjEVWScSGIEFSQU5LQQorTUlMScSMRVZJxIYgQlJBTktPCitNSUxJxIxFVknEhiBEUkFHSU5KQQorTUlMScSMRVZJxIYgRFXFoEFOCitNSUxJxIxFVknEhiBKT1ZBTgorTUlMScSMRVZJxIYgS0FUSUNBCitNSUxJxIxFVknEhiBNSUxBTgorTUlMScSMRVZJxIYgTUlMRU5LTworTUlMScSMRVZJxIYgTUlMSUNBCitNSUxJxIxFVknEhiBNSUxJVk9KCitNSUxJxIxFVknEhiBNSUxLQU4KK01JTEnEjEVWScSGIE1MQURFTgorTUlMScSMRVZJxIYgTkVOQUQKK01JTEnEjEVWScSGIE5PVklDQQorTUlMScSMRVZJxIYgUEFWQQorTUlMScSMRVZJxIYgUEVSTworTUlMScSMRVZJxIYgU1RBTklNSVIKK01JTEnEjEVWScSGIFNURVZBTgorTUlMScSMRVZJxIYgVE9NSVNMQVYKK01JTEnEjEnEhiDFvUFSS08KK01JTEnEjEnEhiBBTEVLU0FOREFSCitNSUxJxIxJxIYgQU5BCitNSUxJxIxJxIYgQU5EUklKQQorTUlMScSMScSGIEFOS0EKK01JTEnEjEnEhiBCT1JJU0xBVgorTUlMScSMScSGIEJSQU5LTworTUlMScSMScSGIERSQUdJQ0EKK01JTEnEjEnEhiBEUkFHT01JUgorTUlMScSMScSGIERVxaBBTgorTUlMScSMScSGIEpFTElDQQorTUlMScSMScSGIEpPVkFOS0EKK01JTEnEjEnEhiBKT1ZBTgorTUlMScSMScSGIEtBVElDQQorTUlMScSMScSGIExKVUJJTktBCitNSUxJxIxJxIYgTUFSSU5LTworTUlMScSMScSGIE1JSEFKTE8KK01JTEnEjEnEhiBNSUxPxaAKK01JTEnEjEnEhiBNSVJKQU5BCitNSUxJxIxJxIYgUkFET1ZBTgorTUlMScSMScSGIFJBSktPCitNSUxJxIxJxIYgU1RFVkFOCitNSUxJxIxJxIYgVElMS0EKK01JTEnEjEnEhiBWQVNBCitNSUxJxaBJxIYgxJBPUsSQRQorTUlMScWgScSGIERVxaBBTktBCitNSUxJxaBJxIYgTkVCT0rFoEEKK01JTEnEhiDEjEVET01JUgorTUlMScSGIMSMRURPTUlSCitNSUxJxIYgxb1JS0EKK01JTEnEhiDFvUlWS08KK01JTEnEhiDFvUlWT01JUgorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBVUklDQQorTUlMScSGIEFESUxBCitNSUxJxIYgQUxFS1NBTkRBUgorTUlMScSGIEFMRUtTQU5EUkEKK01JTEnEhiBBTsSQRUxJSkEKK01JTEnEhiBCT8W9SURBUiBEUgorTUlMScSGIEJPxb1JREFSCitNSUxJxIYgQk/FvU8KK01JTEnEhiBCT0dEQU4KK01JTEnEhiBCT0pBTkEKK01JTEnEhiBCT1JJVk9KRQorTUlMScSGIEJPUklWT0oKK01JTEnEhiBCUkFOSVNMQVYKK01JTEnEhiBCUkFOSVNMQVYKK01JTEnEhiBCUkFOSVNMQVYKK01JTEnEhiBCUkFOS0EKK01JTEnEhiBCUkFOS08KK01JTEnEhiBCUkFOS08KK01JTEnEhiBCUkFUSVNMQVYKK01JTEnEhiBEQU5JQ0EKK01JTEnEhiBEQU5JTEtBCitNSUxJxIYgREFOSUxLQQorTUlMScSGIERBTklMTworTUlMScSGIERBUkEKK01JTEnEhiBEUkFHQU4KK01JTEnEhiBEUkFHQU4KK01JTEnEhiBEUkFHQU4KK01JTEnEhiBEUkFHSUNBCitNSUxJxIYgRFJBR0lDQQorTUlMScSGIERSQUdPTUlSCitNSUxJxIYgRFJBR09NSVIKK01JTEnEhiBEUkFHT1NMQVYKK01JTEnEhiBEVcWgQU5LQQorTUlMScSGIERVxaBBTktBCitNSUxJxIYgRFXFoEFOCitNSUxJxIYgRFXFoEFOCitNSUxJxIYgRFXFoEFOCitNSUxJxIYgRFXFoEFOCitNSUxJxIYgRUxJWkFCRVRBCitNSUxJxIYgRU1JTElKQQorTUlMScSGIEVNSUxJSkEKK01JTEnEhiBFVkEKK01JTEnEhiBFVkEKK01JTEnEhiBFVklDQQorTUlMScSGIEZFUkVOQworTUlMScSGIEdBVlJBCitNSUxJxIYgSUxJSkEKK01JTEnEhi1KQUdPRElOU0tJIE1JTEFOCitNSUxJxIYgSkFOS08KK01JTEnEhiBKRUxFTkEKK01JTEnEhiBKRUxJQ0EKK01JTEnEhiBKRUxLQQorTUlMScSGIEpPVkFOCitNSUxJxIYgSk9WQU4KK01JTEnEhiBKT1ZBTgorTUlMScSGIEpPVkEKK01JTEnEhiBKT1ZPCitNSUxJxIYgSk9WTworTUlMScSGIEpVTEtBCitNSUxJxIYgS0FUSUNBCitNSUxJxIYgS1JTVE8KK01JTEnEhiBLU0VOSUpBCitNSUxJxIYgTEFaQVIKK01JTEnEhiBMSklMSkFOQQorTUlMScSGIExKVUJJxaBBCitNSUxJxIYgTEpVQklDQQorTUlMScSGIExKVUJPTUlSIERJUEwgSU5HCitNSUxJxIYgTEpVQk9NSVIKK01JTEnEhiBMSlVCT01JUgorTUlMScSGIExKVUJPTUlSCitNSUxJxIYgTUFSQQorTUlMScSGIE1BUklKQQorTUlMScSGIE1BUklKQQorTUlMScSGIE1BUklKQQorTUlMScSGIE1JTEFOS0EKK01JTEnEhiBNSUxBTgorTUlMScSGIE1JTEVOS08KK01JTEnEhiBNSUxJQ0EKK01JTEnEhiBNSUxJQ0EKK01JTEnEhiBNSUxPxaAKK01JTEnEhiBNSUxPxaAKK01JTEnEhiBNSUxPUkFECitNSUxJxIYgTUlMT1NBVgorTUlMScSGIE1JTFVUSU4KK01JTEnEhiBNSU9EUkFHCitNSUxJxIYgTUlSSkFOQSBESVBMIE9FQworTUlMScSGIE1JUkpBTkEKK01JTEnEhiBNSVJPU0xBVgorTUlMScSGIE1JVEEKK01JTEnEhiBNTEFERU4KK01JTEnEhiBOQURBCitNSUxJxIYgTkVERUxKS08KK01JTEnEhiBOSUtPTEEKK01JTEnEhiBOSUtPTEEKK01JTEnEhiBOT1ZBSworTUlMScSGIE5PVkFLCitNSUxJxIYgUEFOVEEKK01JTEnEhiBQQVZMRQorTUlMScSGIFBFUkEKK01JTEnEhiBQRVRBUgorTUlMScSGIFBFVEFSCitNSUxJxIYgUFJPS0EKK01JTEnEhiBSQURBCitNSUxJxIYgUkFERQorTUlMScSGIFJBRElWT0pFCitNSUxJxIYgUkFETUlMQQorTUlMScSGIFJBRE9KS0EKK01JTEnEhiBSQURPTUlSCitNSUxJxIYgUkFOS08KK01JTEnEhiBSVcW9QQorTUlMScSGIFNBTkRSQQorTUlMScSGIFNBVkEKK01JTEnEhiBTTEFWSUNBCitNSUxJxIYgU0xBVklDQQorTUlMScSGIFNMQVZLQQorTUlMScSGIFNMQVZLTworTUlMScSGIFNMQVZVSgorTUlMScSGIFNPRklKQQorTUlMScSGIFNURVZBTgorTUlMScSGIFNURVZBTgorTUlMScSGIFNURVZBTgorTUlMScSGIFNWRVRMQU5BCitNSUxJxIYgU1ZFVE9aQVIKK01JTEnEhiBTVkVUT1pBUgorTUlMScSGIFRFT0RPUkEKK01JTEnEhiBUT0RPUgorTUlMScSGIFRPRE9SCitNSUxJxIYgVE9NSVNMQVYKK01JTEnEhiBUT01JU0xBVgorTUlMScSGIFVST8WgCitNSUxJxIYgVkFTQQorTUlMScSGIFZFTElOS0EKK01JTEnEhiBWRVJBCitNSUxJxIYgVkVSQQorTUlMScSGIFZFUklDQQorTUlMScSGIFZMQURJQ0EKK01JTEnEhiBWTEFETworTUlMScSGIFZVS0lDQQorTUlMScSGIFpEUkFWS08KK01JTEnEhiBaT1JBTgorTUlMScSGIFpPUkFOCitNSUxJxIYgWk9SQU4KK01JTEnEhiBaT1JBCitNSUxJxIZFViBCT1JJU0xBVgorTUlMScSGRVYgQlJBTktPCitNSUxJxIZFViBTTEFWS08KK01JTEnEhkVWIFZBU0lMSUpFCitNSUxJxIZFViBWSUtFTlRJSkUKK01JTEnEhkVWScSGIMW9SVZPUkFECitNSUxJxIZFVknEhiDEkE9SxJBFCitNSUxJxIZFVknEhiDEkE9SxJBFCitNSUxJxIZFVknEhiDEkFVSQcSQCitNSUxJxIZFVknEhiBCT8W9SURBUgorTUlMScSGRVZJxIYgQk9SScWgQQorTUlMScSGRVZJxIYgQlJBTktPCitNSUxJxIZFVknEhiBEUkFHQU4KK01JTEnEhkVWScSGIERVxaBBTgorTUlMScSGRVZJxIYgRFXFoEFOCitNSUxJxIZFVknEhiBHT0pLTworTUlMScSGRVZJxIYgR09SREFOQQorTUlMScSGRVZJxIYgS0FUQVJJTkEKK01JTEnEhkVWScSGIEtBVElDQQorTUlMScSGRVZJxIYgS1NFTklKQSBEUiBTVE9NQVRPTE9HCitNSUxJxIZFVknEhiBMSlVCT01JUgorTUlMScSGRVZJxIYgTUFSS08KK01JTEnEhkVWScSGIE1JSEFJTE8KK01JTEnEhkVWScSGIE1JTElDQQorTUlMScSGRVZJxIYgTUlMT1JBRAorTUlMScSGRVZJxIYgTUlMT1ZBTgorTUlMScSGRVZJxIYgTUlPRFJBRworTUlMScSGRVZJxIYgTUlPRFJBRworTUlMScSGRVZJxIYgTU9NxIxJTE8KK01JTEnEhkVWScSGIE1PTcSMSUxPCitNSUxJxIZFVknEhiBOQVRBxaBBCitNSUxJxIZFVknEhiBOSUtPTEEKK01JTEnEhkVWScSGIFBBVkxFCitNSUxJxIZFVknEhiBQRVRBUgorTUlMScSGRVZJxIYgUkFETUlMQQorTUlMScSGRVZJxIYgUkFKS08KK01JTEnEhkVWScSGIFNMQcSQQU5BCitNSUxJxIZFVknEhiBTTEFWSUNBCitNSUxJxIZFVknEhiBTTE9CT0RBTgorTUlMScSGRVZJxIYgU0xPQk9EQU4KK01JTEnEhkVWScSGIFNMT0JPREFOCitNSUxJxIZFVknEhiBTTE9CT0RBTgorTUlMScSGRVZJxIYgU0xPQk9EQU4KK01JTEnEhkVWScSGIFNMT0JPREFOCitNSUxJxIZFVknEhiBTUEFTTworTUlMScSGRVZJxIYgU1RBTkEKK01JTEnEhkVWScSGIFNURVZBTgorTUlMScSGRVZJxIYgU1RFVkFOCitNSUxJxIZFVknEhiBTVkVUSVNMQVYKK01JTEnEhkVWScSGIFZFTEnFoEEKK01JTEnEhkVWScSGIFZFUk9MSlVCCitNSUxJxIZFVknEhiBWSVRPTUlSCitNSUxJxIZFVknEhiBWTEFESU1JUgorTUlMScSGRVZJxIYgVlVLT01JUgorTUlMSUMgS0FST0xKCitNSUxJRFJBRyBLUlNUTworTUlMSURSQUdPVknEhiBCT1JJU0xBVgorTUlMSURSQUdPVknEhiBMQVpBUgorTUlMSURSQUdPVknEhiBNSUxJVk9KRQorTUlMSURSQUdPVknEhiBNSUxPUkFEIERJUEwgSU5HCitNSUxJRFJBR09WScSGIE1MQURFTgorTUlMSURSQUdPVknEhiBORURFTEpLTworTUlMSURSQUdPVknEhiBTTE9CT0RBTgorTUlMSUpBxaAtUEFWS09WScSGIE1BUklKQQorTUlMSUpBxaBFVknEhiDFvUlWT1JBRAorTUlMSUpBxaBFVknEhiBCT8WgS08KK01JTElKQcWgRVZJxIYgTUlMQU4KK01JTElKQU5PVknEhiDEkE9SxJBFCitNSUxJSkFOT1ZJxIYgTUlMQU4KK01JTElKRVZJxIYgxJBVUkHEkAorTUlMSUtJxIYgRFJBR09KRQorTUlMSUtJxIYgU0lNQQorTUlMSU4gxb1JVkFOCitNSUxJTiBCUkFOSVNMQVYKK01JTElOIERVxaBBTgorTUlMSU4gRFXFoEFOCitNSUxJTiBJVkFOCitNSUxJTiBKT1ZBTgorTUlMSU4gTUlMRU5LTworTUlMSU4gTUlMSUNBCitNSUxJTiBNT01JUgorTUlMSU4gUkFESVZPSiBEUgorTUlMSU4gUkFESVZPSgorTUlMSU4gU05Fxb1BTkEKK01JTElOIFNURVZBTgorTUlMSU4gU1ZFVElTTEFWCitNSUxJTiBWT0pJU0xBViBOT1ZJTkFSCitNSUxJTiBaRFJBVktPIERJUEwgSU5HCitNSUxJTiBaT1JJQ0EKK01JTElOxIxJxIYgxIxBU0xBVgorTUlMSU7EjEnEhiBTVE9KQU4KK01JTElOScSGIFJBREVOS08KK01JTElOScSGIFJBSktPCitNSUxJTktPViDFvUlWQU4KK01JTElOS09WIMW9SVZPSklOCitNSUxJTktPViBBTsSQRUxLQQorTUlMSU5LT1YgQk/FvUEKK01JTElOS09WIEJSQU5JU0xBVgorTUlMSU5LT1YgQlJBTklTTEFWCitNSUxJTktPViBCUkFOS08KK01JTElOS09WIERBTklMTworTUlMSU5LT1YgRFXFoEFOCitNSUxJTktPViBJVkFOCitNSUxJTktPViBKVUxLQQorTUlMSU5LT1YgTEFaQVIKK01JTElOS09WIExKVUJJQ0EKK01JTElOS09WIE1JTEFOCitNSUxJTktPViBNSUxJQ0EKK01JTElOS09WIE5FTkFECitNSUxJTktPViBORU5BRAorTUlMSU5LT1YgTklLT0xBCitNSUxJTktPViBTTE9CT0RBTgorTUlMSU5LT1YgVkVSQQorTUlMSU5LT1YgVkVTRUxJTgorTUlMSU5LT1YgVkxBSktPCitNSUxJTktPViBaT1JBTgorTUlMSU5LT1ZJxIYgxJBPUsSQRQorTUlMSU5LT1ZJxIYgxJBPUsSQRQorTUlMSU5LT1ZJxIYgxJBPUsSQRQorTUlMSU5LT1ZJxIYgxJBVUk8KK01JTElOS09WScSGIEJJTEpBTkEKK01JTElOS09WScSGIEJPSk8KK01JTElOS09WScSGIEJVRElNSVIKK01JTElOS09WScSGIERSQUdBTgorTUlMSU5LT1ZJxIYgRFJBR09TTEFWCitNSUxJTktPVknEhiBEVcWgQU4KK01JTElOS09WScSGIERVxaBBTgorTUlMSU5LT1ZJxIYgRFXFoEFOCitNSUxJTktPVknEhiBEVcWgQU4KK01JTElOS09WScSGIEVURUxLQQorTUlMSU5LT1ZJxIYgSVZBTgorTUlMSU5LT1ZJxIYgSVZBTgorTUlMSU5LT1ZJxIYgSVZBTgorTUlMSU5LT1ZJxIYgSVZBTgorTUlMSU5LT1ZJxIYgSk9WQU4KK01JTElOS09WScSGIEpPVklDQQorTUlMSU5LT1ZJxIYgTEpJTEpBTkEKK01JTElOS09WScSGIE1BUkEKK01JTElOS09WScSGIE1JTEFOCitNSUxJTktPVknEhiBNSUxFTkEKK01JTElOS09WScSGIE1JTEnEhgorTUlMSU5LT1ZJxIYgTUlMT1JBRAorTUlMSU5LT1ZJxIYgTkFERcW9REEKK01JTElOS09WScSGIE5PVkFLCitNSUxJTktPVknEhiBQQU5UQQorTUlMSU5LT1ZJxIYgUEVUQVIKK01JTElOS09WScSGIFNMQVZLTworTUlMSU5LT1ZJxIYgU0xPQk9EQU4KK01JTElOS09WScSGIFNMT0JPREFOCitNSUxJTktPVknEhiBTTE9CT0RBTgorTUlMSU5LT1ZJxIYgU01JTEpLQQorTUlMSU5LT1ZJxIYgU1JFVE8KK01JTElOS09WScSGIFZJREEKK01JTElOS09WScSGIFZMQURJU0xBVgorTUlMSU5LT1ZJxIYgVk9KQQorTUlMSU5PViBHQVZSQQorTUlMSU5PViBKRUxFTktPCitNSUxJTk9WIE1JTE9SQUQKK01JTElOT1YgTUlSSkFOQQorTUlMSU5PViBNSVJPU0xBVgorTUlMSU5PViBORVZFTkEKK01JTElOT1YgTklLT0xBCitNSUxJTk9WIFJBRElWT0oKK01JTElOT1YgU0xBVktPCitNSUxJTk9WIFNURVZBTgorTUlMSU5PViBTVkVUSVNMQVYKK01JTElOT1ZJxIYgxb1BUktPCitNSUxJTk9WScSGIEJPxb1JREFSCitNSUxJTk9WScSGIEJPR09MSlVCCitNSUxJTk9WScSGIERSQUdBTgorTUlMSU5PVknEhiBEUkFHQU4KK01JTElOT1ZJxIYgS1NFTklKQQorTUlMSU5PVknEhiBMQVpPCitNSUxJTk9WScSGIExKVUJPTUlSCitNSUxJTk9WScSGIExKVUJPTUlSCitNSUxJTk9WScSGIE1JSEFKTE8KK01JTElOT1ZJxIYgTUlST1NMQVYKK01JTElOT1ZJxIYgTklLT0xBCitNSUxJTk9WScSGIFBFVEFSCitNSUxJTk9WScSGIFBFVEFSCitNSUxJTk9WScSGIFJBRE9NSVIKK01JTElOT1ZJxIYgU0FWQQorTUlMSU5PVknEhiBTTE9CT0RBTgorTUlMSU5PVknEhiBTVEVWQU4KK01JTElOT1ZJxIYgU1RFVkEKK01JTElOT1ZJxIYgVElNQQorTUlMSU5PVknEhiBWSkVLT1NMQVYKK01JTElOU0tJIEFMRUtTQU5EQVIKK01JTElOU0tJIEFSUEFECitNSUxJTlNLSSBFUsW9RUJFVAorTUlMSU5TS0kgR0FCT1IKK01JTElOU0tJIEdPUkRBTkEKK01JTElOU0tJIEpFTEVOQQorTUlMSU5TS0kgSkVMRU5BCitNSUxJTlNLSSBMQURJU0xBVgorTUlMSU5TS0kgTUlIQUlMTworTUlMSU5TS0kgTklLT0xBCitNSUxJTlNLSSBURU9ET1IKK01JTElOU0tJIFZJS1RPUgorTUlMSU5TS0kgVklLVE9SCitNSUxJTlNLSSBaT0xUQU4KK01JTElTQVZBQyDFvUlWQU4KK01JTElTQVZMSkVWScSGIERSQUdPTUlSCitNSUxJU0FWTEpFVknEhiBEUkFHT1NMQVYgRFIgUFJPRgorTUlMSVNBVkxKRVZJxIYgSk9WQU4KK01JTElTQVZMSkVWScSGIEpVTElKQU5BCitNSUxJU0FWTEpFVknEhiBNSUxBRElOCitNSUxJU0FWTEpFVknEhiBNSUxBTgorTUlMSVNBVkxKRVZJxIYgTUlMT1JBRAorTUlMSVNBVkxKRVZJxIYgTUlSxIxFVEEKK01JTElTQVZMSkVWScSGIFNUQU5JTUlSCitNSUxJU0FWTEpFVknEhiBTVEFOSU1JUgorTUlMSVNBVkxKRVZJxIYgVkxBRElNSVIKK01JTElWT0rEjEVWIEJPUklTTEFWCitNSUxJVk9KxIxFViBTVEVWQU4KK01JTElWT0rEjEVWScSGIEFMRUtTQU5EQVIKK01JTElWT0rFoEEgTEFaQVIKK01JTElWT0rFoElOIEpPVkFOCitNSUxJVk9KxaBJTiBQQUpBCitNSUxJVk9KRVYgQU5JQ0EKK01JTElWT0pFViBCT1JJVk9KCitNSUxJVk9KRVYgR1JBRE9KRQorTUlMSVZPSkVWIEpPVkFOS0EKK01JTElWT0pFViBLT05TVEFOVElOCitNSUxJVk9KRVYgTFVLQQorTUlMSVZPSkVWIE1JSEFKTE8KK01JTElWT0pFViBNSUxBTkEKK01JTElWT0pFViBNSUxBTgorTUlMSVZPSkVWIE1JTEFOCitNSUxJVk9KRVYgTUlMT8WgCitNSUxJVk9KRVYgTUxBREVOCitNSUxJVk9KRVYgTkFEQQorTUlMSVZPSkVWIFBBVkxFCitNSUxJVk9KRVYgU09GSUpBCitNSUxJVk9KRVYgU09GSUpBCitNSUxJVk9KRVYgU09GSUpBCitNSUxJVk9KRVZJxIYgxIxFRE9NSVIKK01JTElWT0pFVknEhiDFvUlWS0EKK01JTElWT0pFVknEhiDEkE9SxJBFCitNSUxJVk9KRVZJxIYgxJBPUsSQRQorTUlMSVZPSkVWScSGIMSQT1LEkEUKK01JTElWT0pFVknEhiBCSUxKQU5BCitNSUxJVk9KRVZJxIYgQk/FoEtPCitNSUxJVk9KRVZJxIYgQlJBTktPCitNSUxJVk9KRVZJxIYgQlVESU1JUgorTUlMSVZPSkVWScSGIEJVRElTTEFWCitNSUxJVk9KRVZJxIYgRFJBR0FOCitNSUxJVk9KRVZJxIYgRFJBR0FOCitNSUxJVk9KRVZJxIYgRFXFoEFOCitNSUxJVk9KRVZJxIYgRFXFoEFOCitNSUxJVk9KRVZJxIYgSUxJSkEKK01JTElWT0pFVknEhiBKQUdPREEKK01JTElWT0pFVknEhiBKRUxFTkEKK01JTElWT0pFVknEhiBKT1ZBTgorTUlMSVZPSkVWScSGIEpPVkFOCitNSUxJVk9KRVZJxIYgTUFSSU5BCitNSUxJVk9KRVZJxIYgTUlMQU4KK01JTElWT0pFVknEhiBNSUxFTkEKK01JTElWT0pFVknEhiBNSUxPTUlSCitNSUxJVk9KRVZJxIYgTUlMT1JBRAorTUlMSVZPSkVWScSGIE1JTE9WQU4KK01JTElWT0pFVknEhiBNSVJKQU5BCitNSUxJVk9KRVZJxIYgTUlSS08KK01JTElWT0pFVknEhiBNSVJPU0xBVgorTUlMSVZPSkVWScSGIE1PTcSMSUxPCitNSUxJVk9KRVZJxIYgUkFET0pFCitNSUxJVk9KRVZJxIYgUkFET1NMQVYKK01JTElWT0pFVknEhiBTQVZPCitNSUxJVk9KRVZJxIYgU0xBVktPCitNSUxJVk9KRVZJxIYgU0xBVk5BCitNSUxJVk9KRVZJxIYgU1RPSkFOS0EKK01JTElWT0pFVknEhiBWTEFESU1JUgorTUlMSVZPSkVWScSGIFZMQVNUSU1JUgorTUlMSVZPSkVWScSGIFZPSkEKK01JTElWT0pFVknEhiBWT0pJU0xBVgorTUlMSVZPSkVWScSGIFZVxIxPCitNSUxJVk9KRVZJxIYgWkRSQVZLTworTUlMSVZPSkVWScSGIFpPUkEKK01JTEpBS09WScSGIE1JTEFOCitNSUxKQU5JxIYgxb1JVktBCitNSUxKQU5JxIYgRFJBR0FOCitNSUxKQU5JxIYgRFXFoEFOCitNSUxKQU5JxIYgSk9WQU4KK01JTEpBTknEhiBNQVJLTworTUlMSkFOScSGIE5PVkFLCitNSUxKQU5JxIYgT0JSQUQKK01JTEpBTknEhiBSQURJVk9KRQorTUlMSkFOScSGIFJBRE9TTEFWCitNSUxKQU5JxIYgU0xPQk9EQU4KK01JTEpBTknEhiBTTE9CT0RBTgorTUlMSkFOScSGIFNUQU5LTworTUlMSkFOScSGIFZVS09UQQorTUlMSkFOT1ZJxIYgxb1FTEpLTworTUlMSkFOT1ZJxIYgQURBTQorTUlMSkFOT1ZJxIYgQlJBTktPCitNSUxKQU5PVknEhiBEVcWgQU4KK01JTEpBTk9WScSGIERVxaBJQ0EKK01JTEpBTk9WScSGIE1JTEtBCitNSUxKQU5PVknEhiBQUkVEUkFHCitNSUxKQU5PVknEhiBTVEFOS08KK01JTEpBTk9WScSGIFZJTE1BCitNSUxKQU5TS0kgQk/FoEtPCitNSUxKQU5TS0kgTEFaQVIKK01JTEpBTlNLSSBaT1JJQ0EKK01JTEpBTlNLSSBaT1JJQ0EKK01JTEpBVE9WScSGIMSQT1LEkEUKK01JTEpBVE9WScSGIE1BUklDQQorTUlMSkFUT1ZJxIYgTUlMQU4KK01JTEpBVE9WScSGIE1JTFVUSU4KK01JTEpBVE9WScSGIFZFUkEKK01JTEpFxaBJxIYgTkVOQUQKK01JTEpFTk9WScSGIFNMT0JPREFOCitNSUxKRVZJxIYgxb1JVktPCitNSUxKRVZJxIYgQURBTQorTUlMSkVWScSGIEFOS0EKK01JTEpFVknEhiBCT0dEQU4gRElQTCBJTkcKK01JTEpFVknEhiBEUkFHT0xKVUIKK01JTEpFVknEhiBEVcWgQU4KK01JTEpFVknEhiBHQVZSSUxPCitNSUxKRVZJxIYgSkFOSkEKK01JTEpFVknEhiBKT1ZBTgorTUlMSkVWScSGIEpPVk8KK01JTEpFVknEhiBMQVpBUgorTUlMSkVWScSGIExKVUJJQ0EKK01JTEpFVknEhiBMSlVCSU5LTworTUlMSkVWScSGIE1BUklOS08KK01JTEpFVknEhiBNSUxPUkFECitNSUxKRVZJxIYgTkFUQcWgQQorTUlMSkVWScSGIE5FREVMSktPCitNSUxKRVZJxIYgT0JSQUQKK01JTEpFVknEhiBSQURPSktBCitNSUxKRVZJxIYgU1RFVkFOCitNSUxKRVZJxIYgVkVSSUNBCitNSUxKRVZJxIYgVkVSSUNBCitNSUxKRVZJxIYgVklOS08KK01JTEpJxIYgU0xBVktPCitNSUxKS09WIMSQVVJJQ0EKK01JTEpLT1ZBQyBCT0dPU0FWCitNSUxKS09WQUMgRFJBR09NSVIKK01JTEpLT1ZBQyBQRVRBUgorTUlMSktPVkFDIFJBRE9WQU4KK01JTEpLT1ZBQyBUQVRKQU5BCitNSUxKS09WScSGIMSMRURPTUlSCitNSUxKS09WScSGIMW9SVZBTgorTUlMSktPVknEhiBCT8WgS08KK01JTEpLT1ZJxIYgQk9SSVNMQVYKK01JTEpLT1ZJxIYgQk9TSUxKS0EKK01JTEpLT1ZJxIYgRE9CUklMTworTUlMSktPVknEhiBEUkFHQU4KK01JTEpLT1ZJxIYgRFJBR0nFoEEKK01JTEpLT1ZJxIYgRFJBR1VUSU4KK01JTEpLT1ZJxIYgRFXFoEFOCitNSUxKS09WScSGIERVxaBBTgorTUlMSktPVknEhiBMRU5LRQorTUlMSktPVknEhiBMSklMSkFOQQorTUlMSktPVknEhiBMSlVCScWgQQorTUlMSktPVknEhiBMSlVCSUNBCitNSUxKS09WScSGIExKVVDEjEUKK01JTEpLT1ZJxIYgTUFSQQorTUlMSktPVknEhiBNScSGQQorTUlMSktPVknEhiBNSUxJQ0EKK01JTEpLT1ZJxIYgTUlMSUNBCitNSUxKS09WScSGIE1JTE/FoAorTUlMSktPVknEhiBNSU9EUkFHCitNSUxKS09WScSGIE1JUkEKK01JTEpLT1ZJxIYgTUlSSkFOQQorTUlMSktPVknEhiBNSVJKQU5BCitNSUxKS09WScSGIE1JVEEKK01JTEpLT1ZJxIYgTUxBREVOCitNSUxKS09WScSGIE1PSlNBCitNSUxKS09WScSGIE5JS09MQSBEUiBJTkcKK01JTEpLT1ZJxIYgTklLT0xBCitNSUxKS09WScSGIE5JS09MQQorTUlMSktPVknEhiBSQURPU0FWCitNSUxKS09WScSGIFJBRE9TTEFWCitNSUxKS09WScSGIFJBSElMSkEKK01JTEpLT1ZJxIYgUk9TQQorTUlMSktPVknEhiBST1NBCitNSUxKS09WScSGIFNMT0JPREFOCitNSUxKS09WScSGIFNUQU1FTktPIERSIExFS0FSCitNSUxKS09WScSGIFNUT0pBRElOCitNSUxKS09WScSGIFNUT0pBTgorTUlMSktPVknEhiBUT01JU0xBVgorTUlMSktPVknEhiBWRUxJQk9SCitNSUxKT0pLT1ZJxIYgREVTSU1JUgorTUlMSk9KS09WScSGIERPQlJJTktBCitNSUxKT0pLT1ZJxIYgRU1JTElKQQorTUlMSk9KS09WScSGIExKVUJJxaBBCitNSUxKT0pLT1ZJxIYgTEpVQknFoEEKK01JTEpVxaAgxJBVUk8KK01JTEpVxaAgQUxFS1NBTkRBUgorTUlMSlXFoCBCUkFOS08KK01JTEpVxaAgQlJBTktPCitNSUxKVcWgIERSQUdPCitNSUxKVcWgIERVxaBBTktBCitNSUxKVcWgIERVxaBBTgorTUlMSlXFoCBFVkEKK01JTEpVxaAgSk9WQU4gRFIKK01JTEpVxaAgSk9WQU4KK01JTEpVxaAgSk9WQU4KK01JTEpVxaAgS0FUQVJJTkEKK01JTEpVxaAgTEpJTEpBTkEKK01JTEpVxaAgTEpVQklDQQorTUlMSlXFoCBNQVJJSkEKK01JTEpVxaAgTUFSSUpBCitNSUxKVcWgIE1JTEFOCitNSUxKVcWgIE1JTEUKK01JTEpVxaAgTUlMT1JBRAorTUlMSlXFoCBNSU9EUkFHCitNSUxKVcWgIE5JS09MQQorTUlMSlXFoCBQRVRBUgorTUlMS09WIMSQVVLEkElOS0EKK01JTEtPViDEkFVSxJBJTktBCitNSUxLT1YgQUNBCitNSUxLT1YgRFJBR0FOIERSCitNSUxLT1YgRFJBR0lOSkEKK01JTEtPViBHT1JEQU5BCitNSUxLT1YgR09SREFOQQorTUlMS09WIEpBU01JTkEKK01JTEtPViBKRUxFTkEKK01JTEtPViBMQVpBUgorTUlMS09WIExBWkFSCitNSUxLT1YgU0xBVklDQQorTUlMS09WIFNUQU5PSkUKK01JTEtPViBTVEVWQU4KK01JTEtPVknEhiBEUkFHSUNBCitNSUxLT1ZJxIYgRFXFoEFOCitNSUxLT1ZJxIYgRFXFoEFOCitNSUxLT1ZJxIYgVkVMSktPCitNSUxOT1ZJxIYgQUxFS1NBTkRBUgorTUlMTk9WScSGIEtBTUVOS08KK01JTE5PVknEhiBMQVpBUgorTUlMTk9WScSGIE1JSEFKTE8KK01JTE5PVknEhiBTVE9KQU4KK01JTE5PVknEhiBWQVNJTElKRQorTUlMTk9WScSGIFpPUkEKK01JTE8gR0laRUxBCitNSUxPxaAgSVZBTgorTUlMT8WgxIxJTiBTVEHFoEEKK01JTE/FoMSMSU4gU1RFVkFOCitNSUxPxaDEjElOIFZMQURJTUlSCitNSUxPxaBFViDFvUFSS08gRFIKK01JTE/FoEVWIMW9SUtBCitNSUxPxaBFViDFvUlWS0EKK01JTE/FoEVWIMW9SVZPSklOCitNSUxPxaBFViBBTEVLU0FOREFSCitNSUxPxaBFViBBTsSQRUxJSkEKK01JTE/FoEVWIEJPxaBLTyBESVBMIElORworTUlMT8WgRVYgQlJBTklTTEFWQQorTUlMT8WgRVYgQlJBTklTTEFWCitNSUxPxaBFViBCUkFOSVNMQVYKK01JTE/FoEVWIERPQlJJVk9KCitNSUxPxaBFViBEVcWgQU4KK01JTE/FoEVWIERVxaBLTworTUlMT8WgRVYgSk9WQU5LQQorTUlMT8WgRVYgSk9WQU4KK01JTE/FoEVWIExKVUJPTUlSCitNSUxPxaBFViBNQVJJSkEKK01JTE/FoEVWIE1JxIZPCitNSUxPxaBFViBNSUhBSkxPCitNSUxPxaBFViBNSUxBTgorTUlMT8WgRVYgTUlMRU5LTworTUlMT8WgRVYgTUlMSVZPSgorTUlMT8WgRVYgTUlMSkFOQQorTUlMT8WgRVYgTUlMT8WgCitNSUxPxaBFViBNSUxPxaAKK01JTE/FoEVWIE1JTE/FoAorTUlMT8WgRVYgTUlMT1JBRAorTUlMT8WgRVYgTUlMT1JBRAorTUlMT8WgRVYgTUlPRFJBRworTUlMT8WgRVYgTUlSQQorTUlMT8WgRVYgTUlSSkFOQQorTUlMT8WgRVYgTUlSS08KK01JTE/FoEVWIE1JUk9TTEFWQQorTUlMT8WgRVYgTUlST1NMQVYKK01JTE/FoEVWIE1JVEEKK01JTE/FoEVWIE1PTcSMSUxPCitNSUxPxaBFViBORUJPSsWgQQorTUlMT8WgRVYgTk9WS0EKK01JTE/FoEVWIFBFVEFSCitNSUxPxaBFViBSQURBCitNSUxPxaBFViBTQVZBCitNSUxPxaBFViBTTEFWS0EKK01JTE/FoEVWIFNPRklKQQorTUlMT8WgRVYgU1RBTkEKK01JTE/FoEVWIFNUT0pBTktBCitNSUxPxaBFViBWQVNBIERJUEwgSU5HCitNSUxPxaBFViBWQVNBCitNSUxPxaBFViBWRUxJTUlSCitNSUxPxaBFViBaTEFUT01JUgorTUlMT8WgRVZJxIYgxb1JVk9KSU4KK01JTE/FoEVWScSGIMW9SVZPUkFECitNSUxPxaBFVknEhiBBTEVLU0FOREFSCitNSUxPxaBFVknEhiBBTEVLU0FOREFSCitNSUxPxaBFVknEhiBBTEVLU0FOREFSCitNSUxPxaBFVknEhiBBTEVLU0FOREFSCitNSUxPxaBFVknEhiBBTEVLU0FORFJBCitNSUxPxaBFVknEhiBBTEVLU0FORFJBCitNSUxPxaBFVknEhiBBTkFTVEFaSUpBCitNSUxPxaBFVknEhiBBTktBCitNSUxPxaBFVknEhiBCSUxKQU5BCitNSUxPxaBFVknEhiBCSVNFUktBCitNSUxPxaBFVknEhiBCT8WgS08KK01JTE/FoEVWScSGIEJPxb1JREFSCitNSUxPxaBFVknEhiBCT8W9SURBUgorTUlMT8WgRVZJxIYgQk/FvUlEQVIKK01JTE/FoEVWScSGIEJPxb1PCitNSUxPxaBFVknEhiBCT0dEQU4KK01JTE/FoEVWScSGIEJPSkFOQQorTUlMT8WgRVZJxIYgQlJBTklTTEFWQQorTUlMT8WgRVZJxIYgQlJBTklTTEFWQQorTUlMT8WgRVZJxIYgQlJBTklTTEFWCitNSUxPxaBFVknEhiBCUkFOSVNMQVYKK01JTE/FoEVWScSGIEJSQU5LTworTUlMT8WgRVZJxIYgQlJBTktPCitNSUxPxaBFVknEhiBCUkFOS08KK01JTE/FoEVWScSGIEJSQU5LTworTUlMT8WgRVZJxIYgQlJBTktPCitNSUxPxaBFVknEhiBCUkFOS08KK01JTE/FoEVWScSGIEJSQU5LTworTUlMT8WgRVZJxIYgQ1ZFVEFOCitNSUxPxaBFVknEhiBDVkVUQU4KK01JTE/FoEVWScSGIERBTklDQQorTUlMT8WgRVZJxIYgREFSSU5LQQorTUlMT8WgRVZJxIYgREVKQU4KK01JTE/FoEVWScSGIERPQlJJTktBCitNSUxPxaBFVknEhiBET0JST1NBVgorTUlMT8WgRVZJxIYgRFJBR0FOQQorTUlMT8WgRVZJxIYgRFJBR0FOCitNSUxPxaBFVknEhiBEUkFHQU4KK01JTE/FoEVWScSGIERSQUdBTgorTUlMT8WgRVZJxIYgRFJBR0lDQQorTUlMT8WgRVZJxIYgRFJBR0lDQQorTUlMT8WgRVZJxIYgRFJBR09MSlVCCitNSUxPxaBFVknEhiBEUkFHT01JUiBESVBMIElORworTUlMT8WgRVZJxIYgRFJBR1VUSU4KK01JTE/FoEVWScSGIERVxaBBTiBEUgorTUlMT8WgRVZJxIYgRFXFoEFOCitNSUxPxaBFVknEhiBEVcWgQU4KK01JTE/FoEVWScSGIEVWQQorTUlMT8WgRVZJxIYgRVZJQ0EKK01JTE/FoEVWScSGIEdST1pEQQorTUlMT8WgRVZJxIYgSUdOSkFUCitNSUxPxaBFVknEhiBJVkFOS0EKK01JTE/FoEVWScSGIEpBS09WCitNSUxPxaBFVknEhiBKQU5LTworTUlMT8WgRVZJxIYgSkVMRU5BCitNSUxPxaBFVknEhiBKRUxFTkEKK01JTE/FoEVWScSGIEpFTEVOQQorTUlMT8WgRVZJxIYgSkVMRU5BCitNSUxPxaBFVknEhiBKRVJJTkEKK01JTE/FoEVWScSGIEpPVkFOCitNSUxPxaBFVknEhiBKT1ZBTgorTUlMT8WgRVZJxIYgSk9WQU4KK01JTE/FoEVWScSGIEpPVkFOCitNSUxPxaBFVknEhiBKT1ZJQ0EKK01JTE/FoEVWScSGIEpVTEtBCitNSUxPxaBFVknEhiBLTEFVRElKRQorTUlMT8WgRVZJxIYgS1JJU1RJTkEKK01JTE/FoEVWScSGIExBVElOS0EKK01JTE/FoEVWScSGIExBWkFSCitNSUxPxaBFVknEhiBMQVpBUgorTUlMT8WgRVZJxIYgTEpJTEpBTkEKK01JTE/FoEVWScSGIExKSUxKQU5BCitNSUxPxaBFVknEhiBMSlVCScWgQQorTUlMT8WgRVZJxIYgTEpVQk9NSVIKK01JTE/FoEVWScSGIExPWkFOQQorTUlMT8WgRVZJxIYgTUFSQQorTUlMT8WgRVZJxIYgTUFSSUNBCitNSUxPxaBFVknEhiBNQVJJSkEKK01JTE/FoEVWScSGIE1BUklKQQorTUlMT8WgRVZJxIYgTUFSS08KK01JTE/FoEVWScSGIE1BUlRBCitNSUxPxaBFVknEhiBNSUhBSUxPCitNSUxPxaBFVknEhiBNSUhBTEpJTkEKK01JTE/FoEVWScSGIE1JTEFESU4KK01JTE/FoEVWScSGIE1JTEFOS0EKK01JTE/FoEVWScSGIE1JTEFOCitNSUxPxaBFVknEhiBNSUxBTgorTUlMT8WgRVZJxIYgTUlMQU4KK01JTE/FoEVWScSGIE1JTEFOCitNSUxPxaBFVknEhiBNSUxBTgorTUlMT8WgRVZJxIYgTUlMRU5LTworTUlMT8WgRVZJxIYgTUlMRU5LTworTUlMT8WgRVZJxIYgTUlMRU5LTworTUlMT8WgRVZJxIYgTUlMRU5LTworTUlMT8WgRVZJxIYgTUlMSUNBCitNSUxPxaBFVknEhiBNSUxJVk9KRQorTUlMT8WgRVZJxIYgTUlMSVZPSkUKK01JTE/FoEVWScSGIE1JTE/FoAorTUlMT8WgRVZJxIYgTUlMT8WgCitNSUxPxaBFVknEhiBNSUxPUkFECitNSUxPxaBFVknEhiBNSUxPUkFECitNSUxPxaBFVknEhiBNSUxPUkFECitNSUxPxaBFVknEhiBNSUxPUkFECitNSUxPxaBFVknEhiBNSUxPU0FWCitNSUxPxaBFVknEhiBNSU9EUkFHCitNSUxPxaBFVknEhiBNSU9EUkFHCitNSUxPxaBFVknEhiBNSU9EUkFHCitNSUxPxaBFVknEhiBNSU9EUkFHCitNSUxPxaBFVknEhiBNSU9EUkFHCitNSUxPxaBFVknEhiBNSU9EUkFHCitNSUxPxaBFVknEhiBNSVJBCitNSUxPxaBFVknEhiBNSVJKQU5BCitNSUxPxaBFVknEhiBNSVJKQU5BCitNSUxPxaBFVknEhiBNSVJKQU5BCitNSUxPxaBFVknEhiBNSVJKQU5BCitNSUxPxaBFVknEhiBNSVJLTworTUlMT8WgRVZJxIYgTUlST1NMQVYKK01JTE/FoEVWScSGIE1JVEFSCitNSUxPxaBFVknEhiBNT03EjElMTworTUlMT8WgRVZJxIYgTkFEQQorTUlMT8WgRVZJxIYgTkVWRU5BCitNSUxPxaBFVknEhiBOSUtPTEEKK01JTE/FoEVWScSGIE5JS09MQQorTUlMT8WgRVZJxIYgTk9WSUNBCitNSUxPxaBFVknEhiBPQlJBRAorTUlMT8WgRVZJxIYgT0xHQQorTUlMT8WgRVZJxIYgT0xJVkVSQQorTUlMT8WgRVZJxIYgUEFWTEUKK01JTE/FoEVWScSGIFBBVkxFCitNSUxPxaBFVknEhiBQRVRBUgorTUlMT8WgRVZJxIYgUEVUQVIKK01JTE/FoEVWScSGIFBFVEFSCitNSUxPxaBFVknEhiBQUkVEUkFHCitNSUxPxaBFVknEhiBSQURFIERSCitNSUxPxaBFVknEhiBSQURFCitNSUxPxaBFVknEhiBSQURFCitNSUxPxaBFVknEhiBSQURFCitNSUxPxaBFVknEhiBSQURFCitNSUxPxaBFVknEhiBSQURPVkFOCitNSUxPxaBFVknEhiBSQUpLTworTUlMT8WgRVZJxIYgUkFKS08KK01JTE/FoEVWScSGIFJBVEtPCitNSUxPxaBFVknEhiBSSVNUTworTUlMT8WgRVZJxIYgUlXFvUEKK01JTE/FoEVWScSGIFJVxb1JQ0EKK01JTE/FoEVWScSGIFNBVkEKK01JTE/FoEVWScSGIFNBVkEKK01JTE/FoEVWScSGIFNBVkEKK01JTE/FoEVWScSGIFNBVkEKK01JTE/FoEVWScSGIFNFTEVOS0EKK01JTE/FoEVWScSGIFNMQVZBCitNSUxPxaBFVknEhiBTTEFWS08KK01JTE/FoEVWScSGIFNMT0JPREFOCitNSUxPxaBFVknEhiBTTE9CT0RBTgorTUlMT8WgRVZJxIYgU0xPQk9EQU4KK01JTE/FoEVWScSGIFNORcW9QU5BCitNSUxPxaBFVknEhiBTTkXFvUFOQQorTUlMT8WgRVZJxIYgU1BBU09KRQorTUlMT8WgRVZJxIYgU1BBU09KRQorTUlMT8WgRVZJxIYgU1JCT0JSQU4KK01JTE/FoEVWScSGIFNUQU5JTUlSCitNSUxPxaBFVknEhiBTVEFOS08KK01JTE/FoEVWScSGIFNUQU5LTworTUlMT8WgRVZJxIYgU1RFVklDQQorTUlMT8WgRVZJxIYgU1RPSkEKK01JTE/FoEVWScSGIFNWRVRJU0xBVgorTUlMT8WgRVZJxIYgU1ZFVE9MSlVCCitNSUxPxaBFVknEhiBTVkVUT1pBUgorTUlMT8WgRVZJxIYgU1ZFVE9aQVIKK01JTE/FoEVWScSGIFRBRElKQQorTUlMT8WgRVZJxIYgVE9NSVNMQVYKK01JTE/FoEVWScSGIFVST8WgCitNSUxPxaBFVknEhiBWQVNBCitNSUxPxaBFVknEhiBWQVNJTElKRQorTUlMT8WgRVZJxIYgVkVMSktPCitNSUxPxaBFVknEhiBWRVJBCitNSUxPxaBFVknEhiBWRVNFTElOCitNSUxPxaBFVknEhiBWSURPSkUKK01JTE/FoEVWScSGIFZMQURBIERJUEwgT0VDCitNSUxPxaBFVknEhiBWTEFESU1JUgorTUlMT8WgRVZJxIYgVk9KSVNMQVYKK01JTE/FoEVWScSGIFZPSklTTEFWCitNSUxPxaBFVknEhiBWT0pLQU4KK01JTE/FoEVWScSGIFZVS0HFoElOIERSIExFS0FSCitNSUxPxaBFVknEhiBWVUtBxaBJTgorTUlMT8WgRVZJxIYgWkFIQVJJSkUKK01JTE/FoEVWScSGIFpEUkFWS08KK01JTE/FoEVWScSGIFpMQVRJTUlSCitNSUxPxaBFVknEhiBaT1JBTiBESVBMIElORworTUlMT8WgRVZJxIYgWk9SQU4KK01JTE9KRVZJxIYgxJBPUsSQRQorTUlMT0pFVknEhiBBTkEKK01JTE9KRVZJxIYgQlJBTklTTEFWCitNSUxPSkVWScSGIEJSQU5JU0xBVgorTUlMT0pFVknEhiBDVklKRVRBCitNSUxPSkVWScSGIERJTUlUUklKRQorTUlMT0pFVknEhiBEUkFHQU4KK01JTE9KRVZJxIYgRFJBR0FOCitNSUxPSkVWScSGIERVxaBBTktBCitNSUxPSkVWScSGIERVxaBBTgorTUlMT0pFVknEhiBEVcWgQU4KK01JTE9KRVZJxIYgRFXFoEFOCitNSUxPSkVWScSGIEdPSktPCitNSUxPSkVWScSGIEdPUkRBTkEKK01JTE9KRVZJxIYgR1JPWkRBTkEKK01JTE9KRVZJxIYgSkFOS08KK01JTE9KRVZJxIYgSkVMRU5BCitNSUxPSkVWScSGIEpVTElKQU5BCitNSUxPSkVWScSGIE1JSEFKTE8KK01JTE9KRVZJxIYtTUlMQU5PViBTVkVUTEFOQQorTUlMT0pFVknEhiBNSUxJVk9KRQorTUlMT0pFVknEhiBNSUxPSkUgRFIgUFJPRgorTUlMT0pFVknEhiBNSUxPUkFECitNSUxPSkVWScSGIE1JUk9TTEFWCitNSUxPSkVWScSGIE1PTUlSIERSCitNSUxPSkVWScSGIE9MR0lDQQorTUlMT0pFVknEhiBQQVZMRQorTUlMT0pFVknEhiBQUkVEUkFHCitNSUxPSkVWScSGIFJBRE9WQU4KK01JTE9KRVZJxIYgUkFOS08KK01JTE9KRVZJxIYgU0xPQk9EQU4KK01JTE9KRVZJxIYgVkFTQQorTUlMT0pFVknEhiBWTEFEQQorTUlMT0pFVknEhiBWTEFESU1JUgorTUlMT0pFVknEhiBWT0pJTgorTUlMT0pFVknEhiBWT0pJU0xBVgorTUlMT0pFVknEhiBaT1JBTgorTUlMT0pFVknEhiBaT1JBTgorTUlMT0pFVknEhiBaVk9OS08KK01JTE9KSUNBIE1JTEpBCitNSUxPSktPVknEhiDFvUlWQU4KK01JTE9KS09WScSGIEFDQQorTUlMT0pLT1ZJxIYgQk/FvUFOQQorTUlMT0pLT1ZJxIYgQk/FvUlEQVIKK01JTE9KS09WScSGIERVxaBBTgorTUlMT0pLT1ZJxIYgRFXFoEFOCitNSUxPSktPVknEhiBKT1ZBTktBCitNSUxPSktPVknEhiBLQVRBUklOQQorTUlMT0pLT1ZJxIYgS1JJU1RBCitNSUxPSktPVknEhiBMSlVCT01JUgorTUlMT0pLT1ZJxIYgTUlMSVZPSgorTUlMT0pLT1ZJxIYgTUlMT1ZBTgorTUlMT0pLT1ZJxIYgTUlST0xKVUIKK01JTE9KS09WScSGIE5BREXFvURBCitNSUxPTSBJTVJFCitNSUxPTSBJTVJFCitNSUxPUkFEScSGIEJSQU5LTworTUlMT1JBREnEhiBOSUtPTEEKK01JTE9SQURPViBCT1JJU0xBVkEKK01JTE9SQURPViBNSUxPxaAKK01JTE9SQURPViBNSUxPUkFECitNSUxPUkFET1YgUkFET1NMQVZLQQorTUlMT1JBRE9WIFZJT0xFVEEKK01JTE9SQURPVknEhiBCUkFOSVNMQVYKK01JTE9SQURPVknEhiBERUpBTgorTUlMT1JBRE9WScSGIERSQUdBTgorTUlMT1JBRE9WScSGIE1JTE/FoAorTUlMT1JBRE9WScSGIE1MQURFTgorTUlMT1JBRE9WScSGIFpMQVRPSkUKK01JTE9TQVZBQyBNScSGQQorTUlMT1NBVknEhiBCT1JJU0xBVgorTUlMT1NBVknEhiBCUkFOS08KK01JTE9TQVZJxIYgS1JTVEFOCitNSUxPU0FWScSGIE1MQURFTgorTUlMT1NBVknEhiBNT03EjElMTworTUlMT1NBVknEhiBQRVRBUgorTUlMT1NBVknEhiBSQURJVk9KCitNSUxPU0FWScSGIFNUT0pBCitNSUxPU0FWTEpFViDFvUlWQU4KK01JTE9TQVZMSkVWIMW9SVZLQQorTUlMT1NBVkxKRVYgQUxFS1NBTkRBUgorTUlMT1NBVkxKRVYgQk/FvUlEQVIKK01JTE9TQVZMSkVWIERPQlJFTgorTUlMT1NBVkxKRVYgRFJBR0lOSkEKK01JTE9TQVZMSkVWIExKSUxKQU5BCitNSUxPU0FWTEpFViBNRUxBTklKQQorTUlMT1NBVkxKRVYgTUlMRU5LTworTUlMT1NBVkxKRVYgTUlMSUNBCitNSUxPU0FWTEpFViBOT1ZLQQorTUlMT1NBVkxKRVYgVkxBREEKK01JTE9TQVZMSkVWIFZPSkEKK01JTE9TQVZMSkVWScSGIMW9QVJLTworTUlMT1NBVkxKRVZJxIYgxb1JVkFESU4KK01JTE9TQVZMSkVWScSGIMW9SVZLTworTUlMT1NBVkxKRVZJxIYgxb1JVktPCitNSUxPU0FWTEpFVknEhiBBREFNIERJUEwgUFJBVk5JSworTUlMT1NBVkxKRVZJxIYgQk/FvUlEQVIKK01JTE9TQVZMSkVWScSGIEJPUkEKK01JTE9TQVZMSkVWScSGIEJPUklWT0pFCitNSUxPU0FWTEpFVknEhiBCUkFOSVNMQVYKK01JTE9TQVZMSkVWScSGIEJSQU5LTworTUlMT1NBVkxKRVZJxIYgQlJBVElTTEFWCitNSUxPU0FWTEpFVknEhiBERUpBTgorTUlMT1NBVkxKRVZJxIYgRFJBR0FOCitNSUxPU0FWTEpFVknEhiBEUkFHQU4KK01JTE9TQVZMSkVWScSGIERSQUdBTgorTUlMT1NBVkxKRVZJxIYgRFJBR0lDQQorTUlMT1NBVkxKRVZJxIYgRFJBR0lDQQorTUlMT1NBVkxKRVZJxIYgRFJBR1VUSU4KK01JTE9TQVZMSkVWScSGIERVxaBBTktBCitNSUxPU0FWTEpFVknEhiBJTElKQQorTUlMT1NBVkxKRVZJxIYgSkVMSVNBVkVUQQorTUlMT1NBVkxKRVZJxIYgSk9WQU4KK01JTE9TQVZMSkVWScSGIEpPVkFOCitNSUxPU0FWTEpFVknEhiBKT1ZBTgorTUlMT1NBVkxKRVZJxIYgS0FUSUNBCitNSUxPU0FWTEpFVknEhiBMQVpBUgorTUlMT1NBVkxKRVZJxIYgTUFSSUpBCitNSUxPU0FWTEpFVknEhiBNSUhBSkxPCitNSUxPU0FWTEpFVknEhiBNSUxBTgorTUlMT1NBVkxKRVZJxIYgTUlMQU4KK01JTE9TQVZMSkVWScSGIE1JTEUKK01JTE9TQVZMSkVWScSGIE1JTElDQQorTUlMT1NBVkxKRVZJxIYgTUlMS0EKK01JTE9TQVZMSkVWScSGIE1JTE9SQUQKK01JTE9TQVZMSkVWScSGIE1JTE9SQUQKK01JTE9TQVZMSkVWScSGIE1JTE9SQUQKK01JTE9TQVZMSkVWScSGIE1JTE9WQU4KK01JTE9TQVZMSkVWScSGIE1JT0RSQUcgRFIKK01JTE9TQVZMSkVWScSGIE1JT0RSQUcKK01JTE9TQVZMSkVWScSGIE1JT0RSQUcKK01JTE9TQVZMSkVWScSGIE1JT0RSQUcKK01JTE9TQVZMSkVWScSGIE1JT0RSQUcKK01JTE9TQVZMSkVWScSGIE1JT0RSQUcKK01JTE9TQVZMSkVWScSGIE1JT0RSQUcKK01JTE9TQVZMSkVWScSGIE1JUk9TTEFWCitNSUxPU0FWTEpFVknEhiBOSUtPTEEgRFIKK01JTE9TQVZMSkVWScSGIE5PVklDQQorTUlMT1NBVkxKRVZJxIYgT0xHQQorTUlMT1NBVkxKRVZJxIYgUEVUQVIKK01JTE9TQVZMSkVWScSGIFJBRElWT0pFCitNSUxPU0FWTEpFVknEhiBSQURJVk9KCitNSUxPU0FWTEpFVknEhiBSQURPTUlSCitNSUxPU0FWTEpFVknEhiBTQVZPCitNSUxPU0FWTEpFVknEhiBTTEFWS08KK01JTE9TQVZMSkVWScSGIFNMT0JPREFOCitNSUxPU0FWTEpFVknEhiBTTE9CT0RBTgorTUlMT1NBVkxKRVZJxIYgU1JFVEEKK01JTE9TQVZMSkVWScSGIFNUQU5JU0xBVgorTUlMT1NBVkxKRVZJxIYgU1RBTktPCitNSUxPU0FWTEpFVknEhiBTVEVWTworTUlMT1NBVkxKRVZJxIYgU1ZFVE9aQVIKK01JTE9TQVZMSkVWScSGIFZFUkEKK01JTE9TQVZMSkVWScSGIFZFUkEKK01JTE9TQVZMSkVWScSGIFZMQURJTUlSCitNSUxPU0FWTEpFVknEhiBWTEFESVNMQVYKK01JTE9TQVZMSkVWScSGIFpPUkFOCitNSUxPU09WScSGIEpPVkFOCitNSUxPU09WScSGIE1JTE/FoAorTUlMT1NPVknEhiBNSVJLTworTUlMT1bEjEVWScSGIE1JTE/FoAorTUlMT1ZBQyBEVcWgQU4KK01JTE9WQUMgR0xJxaBBCitNSUxPVkFDIEdPUkFOCitNSUxPVkFDIElMRQorTUlMT1ZBQyBJTElKQQorTUlMT1ZBQyBKRUxBCitNSUxPVkFDIE1JTEFOCitNSUxPVkFDIE1JTEFOCitNSUxPVkFDIE1JTEFOCitNSUxPVkFDIFBFVEFSCitNSUxPVkFDIFJVxb1JQ0EKK01JTE9WQUMgU0lNTworTUlMT1ZBQyBTVEFOS08KK01JTE9WQUMgU1RFVkFOCitNSUxPVkFDIFNUT0pBTgorTUlMT1ZBTiBLT05TVEFOQ0EKK01JTE9WQU7EjEVWIEFMRUtTQU5EQVIKK01JTE9WQU7EjEVWIElTSURPUgorTUlMT1ZBTsSMRVYgTklLT0xBCitNSUxPVkFOxIxFViBTTE9CT0RBTiBESVBMIElORworTUlMT1ZBTsSMRVYgU1ZFVE9aQVIgRFIKK01JTE9WQU5LScSGIMSQT1LEkEUKK01JTE9WQU5LScSGIE1JUk9TTEFWCitNSUxPVkFOT1YgxJBPUsSQRQorTUlMT1ZBTk9WIEFMRUtTQU5EQVIgRElQTCBJTkcKK01JTE9WQU5PViBBTklDQQorTUlMT1ZBTk9WIEJPxb1JREFSCitNSUxPVkFOT1YgRElNSVRSSUpFIERJUEwgSU5HCitNSUxPVkFOT1YgRFJBR0FOCitNSUxPVkFOT1YgR09KS08KK01JTE9WQU5PViBHT0pLTworTUlMT1ZBTk9WIEdPUkFOCitNSUxPVkFOT1YgR09SREFOQSBEUiBMRUtBUgorTUlMT1ZBTk9WIElWQU4KK01JTE9WQU5PViBKVUxLQQorTUlMT1ZBTk9WIE1JTEFOCitNSUxPVkFOT1YgTUlMRQorTUlMT1ZBTk9WIE1JTElOS0EKK01JTE9WQU5PViBNSUxJTktBCitNSUxPVkFOT1YgTUlSSkFOQQorTUlMT1ZBTk9WIFNJTUEKK01JTE9WQU5PViBTVE9KQU5LQQorTUlMT1ZBTk9WIFRPRE9SCitNSUxPVkFOT1YgVkFTSUxJSkUKK01JTE9WQU5PViBaT1JBTgorTUlMT1ZBTk9WScSGIMW9SUtBCitNSUxPVkFOT1ZJxIYgxb1JVktPCitNSUxPVkFOT1ZJxIYgQU7EkEVMS0EKK01JTE9WQU5PVknEhiBBTklDQQorTUlMT1ZBTk9WScSGIEFOSUNBCitNSUxPVkFOT1ZJxIYgQk9HT1NBVgorTUlMT1ZBTk9WScSGIEJSQU5JU0xBVkEKK01JTE9WQU5PVknEhiBCUkFOSVNMQVYKK01JTE9WQU5PVknEhiBCUkFOSVNMQVYKK01JTE9WQU5PVknEhiBEQU5JQ0EKK01JTE9WQU5PVknEhiBET0JSSVNBVgorTUlMT1ZBTk9WScSGIERPQlJJVk9KRQorTUlMT1ZBTk9WScSGIERSQUdJTkpBCitNSUxPVkFOT1ZJxIYgRFJBR09MSlVCCitNSUxPVkFOT1ZJxIYgRFJBR09MSlVCCitNSUxPVkFOT1ZJxIYgRFJBR09NSVIKK01JTE9WQU5PVknEhiBEUkFHT1NMQVYKK01JTE9WQU5PVknEhiBEUkFHT1NMQVYKK01JTE9WQU5PVknEhiBEVcWgQU4gRFIgTEVLQVIKK01JTE9WQU5PVknEhiBEVcWgQU4KK01JTE9WQU5PVknEhiBHT1JBTgorTUlMT1ZBTk9WScSGIEdPUkRBTkEKK01JTE9WQU5PVknEhiBJTElKQQorTUlMT1ZBTk9WScSGIElWQU5LQQorTUlMT1ZBTk9WScSGIElWSUNBCitNSUxPVkFOT1ZJxIYgSk9WQU4KK01JTE9WQU5PVknEhiBLQVRBTElOCitNSUxPVkFOT1ZJxIYgS0FUSUNBCitNSUxPVkFOT1ZJxIYgS09TQVJBCitNSUxPVkFOT1ZJxIYgS1JTVE9NSVIKK01JTE9WQU5PVknEhiBMSklMSkFOQQorTUlMT1ZBTk9WScSGIExKSUxKQU5BCitNSUxPVkFOT1ZJxIYgTEpVQklDQQorTUlMT1ZBTk9WScSGIExVS0EKK01JTE9WQU5PVknEhiBNSUxBRElOCitNSUxPVkFOT1ZJxIYgTUlMQU4KK01JTE9WQU5PVknEhiBNSUxFTkEKK01JTE9WQU5PVknEhiBNSUxFTktPCitNSUxPVkFOT1ZJxIYgTUlMRVZBCitNSUxPVkFOT1ZJxIYgTUlMSVNBVgorTUlMT1ZBTk9WScSGIE1JTElWT0pFCitNSUxPVkFOT1ZJxIYgTUlMT1JBRAorTUlMT1ZBTk9WScSGIE1JTE9WQU4KK01JTE9WQU5PVknEhiBNSUxPVkFOCitNSUxPVkFOT1ZJxIYgTUlSSkFOQQorTUlMT1ZBTk9WScSGIE1JUkpBTkEKK01JTE9WQU5PVknEhiBNT01JUiBESVBMIElORworTUlMT1ZBTk9WScSGIE5BREEgTVIKK01JTE9WQU5PVknEhiBOSUtPTEEKK01JTE9WQU5PVknEhiBPQlJFTgorTUlMT1ZBTk9WScSGIE9MR0EKK01JTE9WQU5PVknEhiBSQURBxaBJTgorTUlMT1ZBTk9WScSGIFJBREVOS08KK01JTE9WQU5PVknEhiBSQURFTktPCitNSUxPVkFOT1ZJxIYgUkFERU5LTworTUlMT1ZBTk9WScSGIFJBREUKK01JTE9WQU5PVknEhiBSQURJU0FWCitNSUxPVkFOT1ZJxIYgUkFESVNMQVYKK01JTE9WQU5PVknEhiBSQURPU0xBVgorTUlMT1ZBTk9WScSGIFJJU1RBCitNSUxPVkFOT1ZJxIYgU0FWQQorTUlMT1ZBTk9WScSGIFNMQVZLQQorTUlMT1ZBTk9WScSGIFNMQVZLTworTUlMT1ZBTk9WScSGIFNMT0JPREFOCitNSUxPVkFOT1ZJxIYgU09OSkEKK01JTE9WQU5PVknEhiBTUkJJU0xBVgorTUlMT1ZBTk9WScSGIFNUQU5JQ0EKK01JTE9WQU5PVknEhiBTVEVWQU4gRElQTCBJTkcKK01JTE9WQU5PVknEhiBTVEVWQU4KK01JTE9WQU5PVknEhiBTVEVWQU4KK01JTE9WQU5PVknEhiBTVkVUT1pBUgorTUlMT1ZBTk9WScSGIFNWRVRPWkFSCitNSUxPVkFOT1ZJxIYgVEVSS0EKK01JTE9WQU5PVknEhiBWRVNFTElOS0EKK01JTE9WQU5PVknEhiBWRVNOQQorTUlMT1ZBTk9WScSGIFZJREFOCitNSUxPVkFOT1ZJxIYgVkxBRElNSVIKK01JTE9WQU5PVknEhiBWTEFESU1JUgorTUlMT1ZBTk9WScSGIFZMQURJU0xBVgorTUlMT1ZBTk9WScSGIFZPSkEKK01JTE9WQU5PVknEhiBWT0pJU0xBVgorTUlMT1ZBTk9WScSGIFZPSklTTEFWCitNSUxPVkFOT1ZJxIYgVk9KSVNMQVYKK01JTE9WQU5PVknEhiBWT0pJU0xBVgorTUlMT1ZBTk9WScSGIFZVS09TQVZBCitNSUxPVkFOT1ZJxIYgWk9SQU4KK01JTE9WQU5PVknEhiBaT1JBTgorTUlMT1ZBTk9WScSGIFpPUktBCitNSUxPVknEhiDEjEVETworTUlMT1ZJxIYgxJBPUsSQRQorTUlMT1ZJxIYgQk/FoEtPCitNSUxPVknEhiBCT0dEQU4KK01JTE9WScSGIEJPUknFoEEKK01JTE9WScSGIEJPUk8KK01JTE9WScSGIEJPUk8KK01JTE9WScSGIEJSQU5LTworTUlMT1ZJxIYgREVTSU1JUgorTUlMT1ZJxIYgRFXFoEFOCitNSUxPVknEhiBHT0pLTworTUlMT1ZJxIYgR09KS08KK01JTE9WScSGIElMSUpBCitNSUxPVknEhiBKRUxFTkEKK01JTE9WScSGIEtSU1RPCitNSUxPVknEhiBMSlVCT01JUgorTUlMT1ZJxIYgTUFKQQorTUlMT1ZJxIYgTUFSSUpBTgorTUlMT1ZJxIYgTUlMQU4KK01JTE9WScSGIE1JTEVOS08KK01JTE9WScSGIE1JTE9SQUQKK01JTE9WScSGIE1JTE9SQUQKK01JTE9WScSGIE1JT01JUgorTUlMT1ZJxIYgTU9NxIxJTE8KK01JTE9WScSGIE9STEUKK01JTE9WScSGIFBFVEFSCitNSUxPVknEhiBSQURFCitNSUxPVknEhiBSQURPVkFOCitNSUxPVknEhiBTTE9CT0RBTgorTUlMT1ZJxIYgU1RBTktPCitNSUxPVknEhiBUT01JU0xBVgorTUlMT1ZJxIYgVlVLQcWgSU4KK01JTFXFoEnEhiBFVklDQQorTUlMVcWgScSGIFBFVEFSIERJUEwgSU5HCitNSUxVTk9WIEpPVkFOCitNSUxVTk9WIEpVTEtBCitNSUxVTk9WScSGIEJSQU5LTworTUlMVU5PVknEhiBEUkFHT01JUgorTUlMVU5PVknEhiBNSUxPxaAKK01JTFVOT1ZJxIYgTUlMT01JUgorTUlMVU5PVknEhiBNSUxPUkFECitNSUxVTk9WScSGIE1JTFVOCitNSUxVTk9WScSGIFJBRE9NSVIKK01JTFVOT1ZJxIYgU1BBU0VOS08KK01JTFVOT1ZJxIYgWk9SSUNBCitNSUxVUk9WScSGIFNMT0JPREFOCitNSUxVVElOIMW9SVZLTworTUlMVVRJTiBKQVNOQQorTUlMVVRJTiBNSVJBCitNSUxVVElOIE5FREVMSktPCitNSUxVVElOIFJBVEtPCitNSUxVVElOIFZPSklTTEFWCitNSUxVVElOT1YgxJBPS0EKK01JTFVUSU5PViBBQ0EKK01JTFVUSU5PViBEUkFHT1NMQVYKK01JTFVUSU5PViBKRUxJU0FWRVRBCitNSUxVVElOT1YgSk9WQU4KK01JTFVUSU5PViBLT05TVEFOVElOCitNSUxVVElOT1YgTEFaQVIKK01JTFVUSU5PViBNSUxJU0FWCitNSUxVVElOT1YgTUlUQQorTUlMVVRJTk9WLU5FREVMSktPVknEhiBSQURPVkFOCitNSUxVVElOT1YgUkFEQQorTUlMVVRJTk9WIFJBRE9TTEFWCitNSUxVVElOT1YgU0FWQQorTUlMVVRJTk9WIFNBVkVUQQorTUlMVVRJTk9WIFRPRE9SCitNSUxVVElOT1YgVkVMSUJPUgorTUlMVVRJTk9WScSGIMWgVEVGSUNBCitNSUxVVElOT1ZJxIYgxb1JS0EKK01JTFVUSU5PVknEhiDEkE9SxJBFCitNSUxVVElOT1ZJxIYgxJBPUsSQRQorTUlMVVRJTk9WScSGIMSQT1LEkEUKK01JTFVUSU5PVknEhiDEkFVSxJBJQ0EKK01JTFVUSU5PVknEhiBBTsSQRUxLTworTUlMVVRJTk9WScSGIEJPxaBLTworTUlMVVRJTk9WScSGIEJPSkFOCitNSUxVVElOT1ZJxIYgQlJBTktBCitNSUxVVElOT1ZJxIYgQlVESU1JUgorTUlMVVRJTk9WScSGIERBTklKRUxBCitNSUxVVElOT1ZJxIYgRFJBR0FOCitNSUxVVElOT1ZJxIYgRFJBR0lDQQorTUlMVVRJTk9WScSGIERSQUdJQ0EKK01JTFVUSU5PVknEhiBEUkFHVVRJTgorTUlMVVRJTk9WScSGIERVxaBBTktBCitNSUxVVElOT1ZJxIYgRFXFoEFOCitNSUxVVElOT1ZJxIYgR0FWUklMTworTUlMVVRJTk9WScSGIElHTkpBVAorTUlMVVRJTk9WScSGIEpPVkFOCitNSUxVVElOT1ZJxIYgSk9WQU4KK01JTFVUSU5PVknEhiBKVUxLSUNBCitNSUxVVElOT1ZJxIYgTElESUpBCitNSUxVVElOT1ZJxIYgTElESUpBCitNSUxVVElOT1ZJxIYgTEpVQklOS0EKK01JTFVUSU5PVknEhiBMSlVCTworTUlMVVRJTk9WScSGIE1BTkRBCitNSUxVVElOT1ZJxIYgTUFSVEEKK01JTFVUSU5PVknEhiBNRUxBTklKQQorTUlMVVRJTk9WScSGIE1JTEFESU4KK01JTFVUSU5PVknEhiBNSUxBTgorTUlMVVRJTk9WScSGIE1JTEFOCitNSUxVVElOT1ZJxIYgTUlMRU5LTworTUlMVVRJTk9WScSGIE1JTElOS08KK01JTFVUSU5PVknEhiBNSUxJVk9KRQorTUlMVVRJTk9WScSGIE1JTElWT0pFCitNSUxVVElOT1ZJxIYgTUlMT8WgCitNSUxVVElOT1ZJxIYgTUlMT0pLTworTUlMVVRJTk9WScSGIE1JTE9SQUQKK01JTFVUSU5PVknEhiBNSUxPUkFECitNSUxVVElOT1ZJxIYgTUlMT1ZBTgorTUlMVVRJTk9WScSGIE1JTFVUSU4KK01JTFVUSU5PVknEhiBNSU9NSVIKK01JTFVUSU5PVknEhiBNSVJKQU5BCitNSUxVVElOT1ZJxIYgTUlSSkFOQQorTUlMVVRJTk9WScSGIE1JUkpBTkEKK01JTFVUSU5PVknEhiBNSVJPU0xBVkEgRFIKK01JTFVUSU5PVknEhiBNSVJPU0xBVgorTUlMVVRJTk9WScSGIE1PTUlSCitNSUxVVElOT1ZJxIYgT0xHQQorTUlMVVRJTk9WScSGIFBFVEFSCitNSUxVVElOT1ZJxIYgUEVUQVIKK01JTFVUSU5PVknEhiBSQURFCitNSUxVVElOT1ZJxIYgUkFEScWgQQorTUlMVVRJTk9WScSGIFJBRE9KS0EKK01JTFVUSU5PVknEhiBSQURPU0FWCitNSUxVVElOT1ZJxIYgU0HFoEEKK01JTFVUSU5PVknEhiBTTEFWS08KK01JTFVUSU5PVknEhiBTTE9CT0RBTktBCitNSUxVVElOT1ZJxIYgU1JFVEVOCitNSUxVVElOT1ZJxIYgU1RBTkEKK01JTFVUSU5PVknEhiBTVEVWQU4KK01JTFVUSU5PVknEhiBTVE9KQU5LQQorTUlMVVRJTk9WScSGIFNUT0pBTgorTUlMVVRJTk9WScSGIFNWRVRPWkFSCitNSUxVVElOT1ZJxIYgVkVMSU1JUgorTUlMVVRJTk9WScSGIFZFUkEKK01JTFVUSU5PVknEhiBWRVJBCitNSUxVVElOT1ZJxIYgVkVSSUNBIERSCitNSUxVVElOT1ZJxIYtVlVLU0FOIE9MR0EKK01JTFVUSU5PVknEhiBaT1JBTgorTUlMVVRJTk9WScSGIFpPUkFOCitNSUxVVElOT1ZJxIYgWk9SQU4KK01JTFVUSU5PVknEhiBaT1JBTgorTUlNSUNBIE1MQURFTgorTUlNSUNBIE5FTkFECitNSU1JQ0EgTkVOQUQKK01JTUlDQSBORU5BRAorTUlOxIxJxIYgTUlST0xKVUIKK01JTsSMScSGIE1JUk9TTEFWCitNSU7EjEnEhiBTTE9CT0RBTktBCitNSU5EQS1SQcSQRU5PVknEhiBFTEVOQQorTUlOREEgVElCT1IKK01JTkRJxIYgTUlSSkFOQQorTUlOREnEhiBTVkVUSVNMQVYKK01JTkVBIFJPTUFOCitNSU5JxIYgTUlMT1NBVgorTUlOScSGIE5BREEKK01JTknEhiBTTEFWS08KK01JTknEhiBUT01JU0xBVgorTUlOScSGIFpPUktBCitNSU5JSyDFoEFORE9SCitNSU5JSyBKT1NJUAorTUlOSkEgTUFKQQorTUlOSkEgTUlMVVRJTgorTUlPxIwgxb1FTEpLTworTUlPxIwgSVZBTgorTUlPxIwgWkRFTktPCitNSU/EjElOT1ZJxIYgTUFSS08KK01JT8SMSU5PVknEhiBNSUxBTgorTUlPREFOScSGIERBTktPCitNSU9EUkFHIEFOQQorTUlPRFJBRyBNSVJLTworTUlPRFJBRyBQRVJPCitNSU9EUkFHIFpEUkFWS0EKK01JT0RSQUcgWk9SSUNBCitNSU9EUkFHT1ZJxIYgQUxBS1NBTkRBUgorTUlPRFJBR09WScSGIEJPUklTTEFWCitNSU9EUkFHT1ZJxIYgRFJBR09MSlVCCitNSU9EUkFHT1ZJxIYgRFJBR09MSlVCCitNSU9EUkFHT1ZJxIYgRFJBR09NSVIKK01JT0RSQUdPVknEhiBEVcWgS08KK01JT0RSQUdPVknEhiBNSUxFTktPIERJUEwgSU5HCitNSU9EUkFHT1ZJxIYgTUlMRU5LTworTUlPRFJBR09WScSGIFJBRE9TTEFWCitNSU9EUkFHT1ZJxIYgU1RFVkFOCitNSU9EUkFHT1ZJxIYgVE/FoEEKK01JT0RSQUdPVknEhiBWRVJBCitNSU9EUkFHT1ZJxIYtVlVLQU5JxIYgQUxFS1NBTkRSQQorTUlPRFJBR09WScSGIFpPUklDQQorTUlPSyBWTEFTVElNSVIKK01JT0tPVknEhiBCUkFOS08KK01JT0tPVknEhiBEQU5JQ0EKK01JT0tPVknEhiBSQURPU0xBVgorTUlPTFNLSSBCT1JJU0xBVgorTUlPTFNLSSBEVcWgS08KK01JT0xTS0kgU1RBTktPCitNSU9MU0tJIFNURVZBTgorTUlSxIxFVEnEhiBKT1ZBTgorTUlSxIxFVEnEhiBMQVpBUgorTUlSxIxFVEnEhiBNSUxJQ0EKK01JUsSMRVRJxIYgTUlMVVRJTgorTUlSxIxFVEnEhiBSQURPU0xBVgorTUlSxIxFVEnEhiBTTEFWS08KK01JUsSMRVRJxIYgWk9SQU4KK01JUsSMRVRJxIYgWk9SQU4KK01JUsSMRVZTS0kgTUlIQUlMTworTUlSxIxJxIYgS09WSUxKS0EKK01JUsSMScSGIE1JTE9SQUQKK01JUsSMScSGIE5JS09MQQorTUlSxIxJxIYgUkFET1ZBTgorTUlSxIxJxIYgU1RPSkFOS0EKK01JUsSMScSGIFNUT0pBTgorTUlSQcW9ScSGIEFOVFVOCitNSVJBxb1JxIYgQlJBTklTTEFWCitNSVJBxb1JxIYgQlJBTktPCitNSVJBxb1JxIYgSkVMQQorTUlSQcW9ScSGIE1BUkEKK01JUkHFvUnEhiBWRVNFTElOS0EKK01JUkFMRU0gQUhNRUQKK01JUkFOT1ZJxIYgS1NFTklKQSBEUiBMRUtBUgorTUlSQU5PVknEhiBNQUpBCitNSVJBTk9WScSGIE1JUktPCitNSVJFxaBFVknEhiBEVcWgQU4KK01JUkXFoEVWScSGIFJBRE9KS0EKK01JUknEhiDEkFVSQQorTUlSScSGIEFHQVRBCitNSVJJxIYgQk/FvUlEQVIKK01JUknEhiBEQU5FCitNSVJJxIYgRFJBR09NSVIKK01JUknEhiBEUkFHVVRJTgorTUlSScSGIERVxaBBTktBCitNSVJJxIYgRFXFoEFOCitNSVJJxIYgRFXFoEFOCitNSVJJxIYgRFXFoEtPCitNSVJJxIYgSk9TSUYKK01JUknEhiBKT1ZBTgorTUlSScSGIEpPVk8KK01JUknEhiBLQVRBCitNSVJJxIYgS0FUSUNBCitNSVJJxIYgS09WSUxKS0EKK01JUknEhiBNQVJJSkEKK01JUknEhiBNSUxBTgorTUlSScSGIE1JTEFOCitNSVJJxIYgTUlMQU4KK01JUknEhiBNSUxFTkEKK01JUknEhiBNSUxLQQorTUlSScSGIE5JS09MQQorTUlSScSGIFBBVkxFCitNSVJJxIYgUkFKS08KK01JUknEhiBSVcW9SUNBCitNSVJJxIYgU0HFoEEKK01JUknEhiBTQVZLQQorTUlSScSGIFNNSUxKQQorTUlSScSGIFNURVZBTgorTUlSScSGIFNUT0pBTktBCitNSVJJxIYgVkFTSUxJSkUKK01JUklMT1YgQUxFS1NBTkRBUgorTUlSSUxPViBNSUxBRElOIERSCitNSVJJTE9WIFpPUktBCitNSVJJTE9WScSGIERSQUdBTgorTUlSSUxPVknEhiBHT1JEQU5BCitNSVJJTE9WScSGIExBWkFSCitNSVJJTE9WScSGIE1MQURFTgorTUlSSUxPVknEhiBTTkXFvUFOQQorTUlSSU1BTk9WIERBUkEKK01JUklNQU5PViBWTEFESU1JUgorTUlSSkHEjEnEhiBCT1NBCitNSVJKQU5JxIYgREFOSUNBCitNSVJKQU5JxIYgTU9SQVZLQQorTUlSSkFOScSGIFZBU0EKK01JUkpBTknEhiBWRVJJQ0EKK01JUkpBTklOIE5FUkEKK01JUktBQyBTVEFOSVNMQVYKK01JUktBSkxPVknEhiBNSUxPVkFOCitNSVJLQUpMT1ZJxIYgTUlMT1ZBTgorTUlSS0nEhiBCTEFHT0pFCitNSVJLT05KIFNSRURPSkUKK01JUktPTkpFViBCUkFOSVNMQVYKK01JUktPTkpFViBTTkXFvUFOQQorTUlSS09WIMW9RUxKS08KK01JUktPViDFvUlWQU4KK01JUktPViDEkE9SxJBFCitNSVJLT1YgxJBVUsSQSUpBCitNSVJLT1YgxJBVUsSQSUpBCitNSVJLT1YgxJBVUklDQQorTUlSS09WIEJPU0lMSktBCitNSVJLT1YgRFXFoElDQQorTUlSS09WIEVWSUNBCitNSVJLT1YgTUFSSUNBCitNSVJLT1YgUEFWTEUKK01JUktPViBSVcW9SUNBCitNSVJLT1YgU0VLVUxBIERJUEwgT0VDCitNSVJLT1YgU0xPQk9EQU4KK01JUktPViBTTkXFvUFOQQorTUlSS09WIFNUQU5JU0xBVgorTUlSS09WIFNURVZBTgorTUlSS09WIFNURVZBTgorTUlSS09WIFZFTEpLTworTUlSS09WIFZMQURBCitNSVJLT1YgWk9SQU4KK01JUktPViBaT1JJQ0EKK01JUktPViBaT1JLQQorTUlSS09WScSGIMSMRURPTUlSCitNSVJLT1ZJxIYgxb1JVkFOCitNSVJLT1ZJxIYgxb1JVktBCitNSVJLT1ZJxIYgxb1JVk9KSU4KK01JUktPVknEhiDEkE9SxJBFCitNSVJLT1ZJxIYgxJBPUsSQRQorTUlSS09WScSGIEFWUkFNCitNSVJLT1ZJxIYgQk9SQQorTUlSS09WScSGIEJSQU5JU0xBVgorTUlSS09WScSGIEJSQU5LQQorTUlSS09WScSGIEJSQU5LQQorTUlSS09WScSGIEJSQU5LTworTUlSS09WScSGIEJSQU5LTworTUlSS09WScSGIERBTklDQQorTUlSS09WScSGIERFSkFOCitNSVJLT1ZJxIYgRFJBR0FOQQorTUlSS09WScSGIERSQUdJQ0EKK01JUktPVknEhiBEUkFHSUNBCitNSVJLT1ZJxIYgRFJBR09MSlVCCitNSVJLT1ZJxIYgRFXFoEFOCitNSVJLT1ZJxIYgRFXFoEFOCitNSVJLT1ZJxIYgRFXFoEFOCitNSVJLT1ZJxIYgRFXFoEtPCitNSVJLT1ZJxIYgRFVCUkFWS0EKK01JUktPVknEhiBFRElUQQorTUlSS09WScSGIEVMQQorTUlSS09WScSGIEVNSUxJSkEKK01JUktPVknEhiBHQVZSSUxPCitNSVJLT1ZJxIYgSVZBTgorTUlSS09WScSGIEpPVkFOS0EKK01JUktPVknEhiBKT1ZBTgorTUlSS09WScSGIEpPVkFOCitNSVJLT1ZJxIYgSk9WQU4KK01JUktPVknEhiBLQVRJQ0EKK01JUktPVknEhiBMQVpBUgorTUlSS09WScSGIExKSUxKQU5BCitNSVJLT1ZJxIYgTEpJTEpBTkEKK01JUktPVknEhiBNQVJBCitNSVJLT1ZJxIYgTUFSQQorTUlSS09WScSGIE1JTEFOIERSCitNSVJLT1ZJxIYgTUlMQU4KK01JUktPVknEhiBNSUxBTgorTUlSS09WScSGIE1JTEFOCitNSVJLT1ZJxIYgTUlMQU4KK01JUktPVknEhiBNSUxJQ0EKK01JUktPVknEhiBNSUxJU0FWCitNSVJLT1ZJxIYgTUlMSVZPSiBESVBMIElORworTUlSS09WScSGIE1JTElWT0pFCitNSVJLT1ZJxIYgTUlMS0EKK01JUktPVknEhiBNSUxPxaAKK01JUktPVknEhiBNSUxPU0FWCitNSVJLT1ZJxIYgTUlMT1ZBTgorTUlSS09WScSGIE1JTFVUSU4KK01JUktPVknEhiBNSU9EUkFHCitNSVJLT1ZJxIYgTUlSSkFOQQorTUlSS09WScSGIE1JUktPCitNSVJLT1ZJxIYgTUlST1NMQVYKK01JUktPVknEhiBORU5BRAorTUlSS09WScSGIE5PVkFLCitNSVJLT1ZJxIYgUEVUQVIKK01JUktPVknEhiBQRVRBUgorTUlSS09WScSGIFBFVEFSCitNSVJLT1ZJxIYgUEVUQVIKK01JUktPVknEhiBQUkVEUkFHCitNSVJLT1ZJxIYgUkFETUlMQQorTUlSS09WScSGIFJBVEtPCitNSVJLT1ZJxIYgU0FOSkEKK01JUktPVknEhiBTQVZBCitNSVJLT1ZJxIYgU0xPQk9EQU4gRFIgTEVLQVIKK01JUktPVknEhiBTTE9CT0RBTgorTUlSS09WScSGIFNURVZBTgorTUlSS09WScSGIFNWRVRJU0xBVgorTUlSS09WScSGIFRSSUZVTgorTUlSS09WScSGIFZMQURJTUlSCitNSVJLT1ZJxIYgWk9SQU4gRFIKK01JUktPVknEhiBaT1JBTgorTUlSS09WScSGIFpPUkFOCitNSVJLT1ZJxIYgWk9SS0EKK01JUktPVknEhiBaT1JLQQorTUlSTknEhiBKT1NJUCBEUgorTUlSTknEhiBTSUxWSUpBCitNSVJOScSGIFZVS0HFoElOCitNSVJPxaBFVknEhiBOSU5PCitNSVJPTklDS0kgUlXFvUlDQQorTUlST05JQ0tJIFpWT05JTUlSCitNSVJPU0FWScSGIE1JTEVOS08KK01JUk9TQVZJxIYgTUlMRU5LTworTUlST1NBVkxKRVYgSUxJTktBCitNSVJPU0FWTEpFViBKT0NBCitNSVJPU0FWTEpFViBNQVJJSkEKK01JUk9TQVZMSkVWIE1JTEVOS08KK01JUk9TQVZMSkVWIE1MQURFTgorTUlST1NBVkxKRVZJxIYgQUxFS1NBTkRBUgorTUlST1NBVkxKRVZJxIYgQk/FoEtPCitNSVJPU0FWTEpFVknEhiBCT1JJU0xBVgorTUlST1NBVkxKRVZJxIYgQk9SSVZPSgorTUlST1NBVkxKRVZJxIYgQlJBTktBCitNSVJPU0FWTEpFVknEhiBET0JSSUxBCitNSVJPU0FWTEpFVknEhiBKT1ZBTgorTUlST1NBVkxKRVZJxIYgTEVQT1NBVkEKK01JUk9TQVZMSkVWScSGIExKVUJJQ0EKK01JUk9TQVZMSkVWScSGIExKVUJPRFJBRworTUlST1NBVkxKRVZJxIYgTUFHREEKK01JUk9TQVZMSkVWScSGIE1JTEVOS08KK01JUk9TQVZMSkVWScSGIE5JS09MQQorTUlST1NBVkxKRVZJxIYgTklLT0xBCitNSVJPU0FWTEpFVknEhiBTVEVWQU4KK01JUk9TQVZMSkVWScSGIFNUUkFISU5KQQorTUlST1NBVkxKRVZJxIYgU1ZFVElTTEFWCitNSVJPU0FWTEpFVknEhiBUT01JU0xBVgorTUlST1NBVkxKRVZJxIYgVE9NSVNMQVYKK01JUk9TQVZMSkVWScSGIFZFUkEKK01JUk9TQVZMSkVWScSGIFZFUkEKK01JUk9TQVZMSkVWScSGIFZPSklTTEFWCitNSVJPU0FWTEpFVknEhiBaT1JBTgorTUlST1NBVkxKRVZJxIYgWk9SS0EKK01JUk9TTEFWTEpFVknEhiBEVcWgQU5LQQorTUlST1ZJxIYgQUxFS1NBTkRBUgorTUlST1ZJxIYgRElNSVRSSUpFCitNSVJPVknEhiBJR09SCitNSVJPVknEhiBNQVJJSkEKK01JUk9WScSGIE1JTE8KK01JUk9WScSGIE5FTkFECitNSVNBSUxPVknEhiBTVkVUT1pBUgorTUlTQUpMT1ZJxIYgTUFSR0lUQQorTUlTQUxKRVZJxIYgTkVNQU5KQQorTUlTSU1JIEtBTUJFUgorTUlTSU5JIE1JUklNQU4KK01JU0lSS0nEhiBNSUxPxaAKK01JU0lSS0nEhiBWTEFEQQorTUlTSVJMSVMgR0VPUkdJT1MKK01JU0tJTiBEUkFHQU4KK01JU0tJTiBNSUxPxaAKK01JU0tJTiBOSUtPCitNSVNLSU4gWkRSQVZLTworTUlTTElNSSBBTElWRUJJCitNSVRBUiBUT01BCitNSVRBUiBWRVJBCitNSVRFVlNLSSBJVkFOCitNSVRJxIYgxIxFRE9NSVIKK01JVEnEhiBBTEVLU0FOREFSCitNSVRJxIYgQk9SSVZPSgorTUlUScSGIEJSQU5JU0xBVkEKK01JVEnEhiBCUkFOSVNMQVYKK01JVEnEhiBCVURJTUlSCitNSVRJxIYgREFOSUNBCitNSVRJxIYgRFJBR09MSlVCCitNSVRJxIYgRFJBR09MSlVCCitNSVRJxIYgRFJBR1VUSU4KK01JVEnEhiBEVcWgQU4KK01JVEnEhiBHT1JEQU5BCitNSVRJxIYgSUdPUgorTUlUScSGIEpPU0lGCitNSVRJxIYgSk9WQU4KK01JVEnEhiBKT1ZBTgorTUlUScSGIE1BUklKQQorTUlUScSGIE1JTEFOCitNSVRJxIYgTUlMSVZPSgorTUlUScSGIE1JT0RSQUcgRFIgTEVLQVIKK01JVEnEhiBNSU9EUkFHCitNSVRJxIYgTUlSS08KK01JVEnEhiBNSVRBUiBESVBMIElORworTUlUScSGIE5JS09MQQorTUlUScSGIFBBVkxFCitNSVRJxIYgUkFESVZPSkUKK01JVEnEhiBSVcW9SUNBCitNSVRJxIYgU0xBVktPCitNSVRJxIYgU1JFQlJBCitNSVRJxIYgU1VaQU5BCitNSVRJxIYgVE9NSVNMQVYKK01JVEnEhiBWRUxJTUlSCitNSVRJxIYgVkVSQQorTUlUScSGIFZJRE9TQVZBCitNSVRJxIYgVklUT01JUgorTUlUS09WScSGIERSQUdBTgorTUlUT8WgRVZJxIYgQk9HREFOCitNSVRPxaBFVknEhiBNSUxFCitNSVRPxaBFVknEhiBOQURBCitNSVRPxaBFVknEhiBTQVZBCitNSVRPVknEhiBBTEVLU0FOREFSCitNSVRPVknEhiBET0JSSVNMQVYKK01JVE9WScSGIE1JUk9TTEFWCitNSVRSQcWgSU5PVknEhiBMSklMSkFOQQorTUlUUkHFoElOT1ZJxIYgWk9SQQorTUlUUkFLT1ZJxIYgxJBVUkHEkAorTUlUUkFLT1ZJxIYgTUlST1NMQVYKK01JVFJBS09WScSGIE5FTkFECitNSVRSQUtPVknEhiBVR0xKRcWgQQorTUlUUkVLQU5JxIYgTUlMT1JBRAorTUlUUkVTS0kgTU9NxIxJTE8KK01JVFJFVlNLQSBFVkRPS0lKQQorTUlUUkVWU0tJIExBTUJFCitNSVRSRVZTS0kgTU9NxIxJTE8KK01JVFJFVlNLSSBSQURBCitNSVRSScSMRVZJxIYgxb1JS0EKK01JVFJJxIxFVknEhiBBTsSQRUxLQQorTUlUUknEjEVWScSGIEFOQQorTUlUUknEjEVWScSGIFNNSUxKQQorTUlUUknEhiDEkFVSTworTUlUUknEhiBCT0dJxIYKK01JVFJJxIYgTUlMQU4KK01JVFJJxIYgTUlMQU4KK01JVFJJxIYgTUlMT8WgCitNSVRSScSGIE5FxJBPCitNSVRSScSGIE5FxJBPCitNSVRSScSGIE5PVkFLCitNSVRSScSGIFJBRE1JTEEKK01JVFJJxIYgVkFMRU5USU5BCitNSVRST1bEjEFOIEpVTEtJQ0EKK01JVFJPVsSMQU4gS09TVEEKK01JVFJPVsSMQU4gTEFaQVIKK01JVFJPVsSMQU4gTEpVQklOS08KK01JVFJPVsSMQU4gTEpVQklOS08KK01JVFJPVsSMQU4gTUlUQQorTUlUUk9WxIxBTiBSQURJTktBCitNSVRST1bEjEFOIFNURVZBTgorTUlUUk9WxIxBTiBTVEpFUEFOCitNSVRST1bEjEFOIFpBR09SS0EKK01JVFJPVknEhiDEjEVET01JUgorTUlUUk9WScSGIMW9QVJLTworTUlUUk9WScSGIMW9SVZPUkFECitNSVRST1ZJxIYgxJBPS08KK01JVFJPVknEhiBBTEVLU0FOREFSCitNSVRST1ZJxIYgQUxFS1NBTkRBUgorTUlUUk9WScSGIEFMRUtTQU5EQVIKK01JVFJPVknEhiBBTkdFTElOQQorTUlUUk9WScSGIEFOS0EKK01JVFJPVknEhiBCSUxKQU5BCitNSVRST1ZJxIYgQk/FoEtPCitNSVRST1ZJxIYgQk9SSVNMQVYKK01JVFJPVknEhiBCUkFOS08KK01JVFJPVknEhiBCUkFOS08KK01JVFJPVknEhiBEQU5JQ0EKK01JVFJPVknEhiBEQVJJTktBCitNSVRST1ZJxIYgREVTQU5LQQorTUlUUk9WScSGIERSQUdBTgorTUlUUk9WScSGIERSQUdBTgorTUlUUk9WScSGIERSQUdJQ0EKK01JVFJPVknEhiBEUkFHSQorTUlUUk9WScSGIERSQUdPSkxPCitNSVRST1ZJxIYgRFJBR09MSlVCCitNSVRST1ZJxIYgRFXFoEFOS0EKK01JVFJPVknEhiBEVcWgQU4KK01JVFJPVknEhiBEVcWgQU4KK01JVFJPVknEhiBEVcWgS08KK01JVFJPVknEhiBEVUJSQVZLQQorTUlUUk9WScSGIEdPSktPCitNSVRST1ZJxIYgR09TUEFWQQorTUlUUk9WScSGIEdPU1BBCitNSVRST1ZJxIYgSUtBCitNSVRST1ZJxIYgSVZBTgorTUlUUk9WScSGIEpFTEVOQQorTUlUUk9WScSGIEpFTEVOQQorTUlUUk9WScSGIEpFTElDQQorTUlUUk9WScSGIEpPVkFOCitNSVRST1ZJxIYgSk9WQU4KK01JVFJPVknEhiBKT1ZBTgorTUlUUk9WScSGIExBWkFSCitNSVRST1ZJxIYgTEFaQVIKK01JVFJPVknEhiBMSklMSkFOQQorTUlUUk9WScSGIExKVUJJU0FWCitNSVRST1ZJxIYgTEpVQk9NSVIKK01JVFJPVknEhiBMSlVCT01JUgorTUlUUk9WScSGIE1BUktPCitNSVRST1ZJxIYgTUlIQUpMTworTUlUUk9WScSGIE1JSEFKTE8KK01JVFJPVknEhiBNSUxBTktBCitNSVRST1ZJxIYgTUlMQU4KK01JVFJPVknEhiBNSUxBTgorTUlUUk9WScSGIE1JTEVOQQorTUlUUk9WScSGIE1JTEVOS08KK01JVFJPVknEhiBNSUxJQ0EKK01JVFJPVknEhiBNSUxLQQorTUlUUk9WScSGIE1JTE/FoAorTUlUUk9WScSGIE1JTE/FoAorTUlUUk9WScSGIE1JTE9SQUQKK01JVFJPVknEhiBNSUxPVkFOCitNSVRST1ZJxIYgTUlPRFJBRworTUlUUk9WScSGIE1JT0RSQUcKK01JVFJPVknEhiBNSU9EUkFHCitNSVRST1ZJxIYgTUlSS08KK01JVFJPVknEhiBNSVJLTworTUlUUk9WScSGIE1JUk9TTEFWCitNSVRST1ZJxIYgTUlST1NMQVYKK01JVFJPVknEhiBNSVRBUiBESVBMIElORworTUlUUk9WScSGIE1MQURFTgorTUlUUk9WScSGIE1MQURFTgorTUlUUk9WScSGIE1MQURFTgorTUlUUk9WScSGIE1PTcSMSUxPCitNSVRST1ZJxIYgTU9NSVIKK01JVFJPVknEhiBOQURFxb1EQQorTUlUUk9WScSGIE5FTkFECitNSVRST1ZJxIYgTklLT0xBCitNSVRST1ZJxIYgT0xHQQorTUlUUk9WScSGIFBFVEFSCitNSVRST1ZJxIYgUkFESVNMQVYKK01JVFJPVknEhiBSQURJVk9KRQorTUlUUk9WScSGIFJBRElWT0oKK01JVFJPVknEhiBSQURNSUxBCitNSVRST1ZJxIYgUkFETUlMQQorTUlUUk9WScSGIFJBRE9KSUNBCitNSVRST1ZJxIYgUkFET1ZBTgorTUlUUk9WScSGIFJBRE9WQU4KK01JVFJPVknEhiBSQURPCitNSVRST1ZJxIYgUkFUS08KK01JVFJPVknEhiBTTEFWS08KK01JVFJPVknEhiBTTEFWS08KK01JVFJPVknEhiBTTE9CT0RBTgorTUlUUk9WScSGIFNMT0JPREFOCitNSVRST1ZJxIYgU0xPQk9EQU4KK01JVFJPVknEhiBTT0ZJSkEKK01JVFJPVknEhiBTUkVUQQorTUlUUk9WScSGIFNUQUtBCitNSVRST1ZJxIYgU1RBTknFoEEKK01JVFJPVknEhiBTVEFOS08KK01JVFJPVknEhiBTVEVWQU4KK01JVFJPVknEhiBTVEVWQU4KK01JVFJPVknEhiBTVVpBTkEKK01JVFJPVknEhiBTVVpBTkEKK01JVFJPVknEhiBUSUhPTUlSIERJUEwgSU5HCitNSVRST1ZJxIYgVElIT01JUgorTUlUUk9WScSGIFRPREUKK01JVFJPVknEhiBWQUxFUklKQQorTUlUUk9WScSGIFZBU0EKK01JVFJPVknEhiBWRUxJTUlSCitNSVRST1ZJxIYgVkVSQQorTUlUUk9WScSGIFZFUkEKK01JVFJPVknEhiBWRVJJQ0EKK01JVFJPVknEhiBWRVJPTklLQQorTUlUUk9WScSGIFZFU0VMSU4KK01JVFJPVknEhiBWTEFESU1JUgorTUlUUk9WScSGIFZVxIxFVEEKK01JVFJPVknEhi1WVUpOScSGIFNNSUxKQU5BCitNSVRST1ZJxIYgVlVKT8WgCitNSVRST1ZJxIYgWkxBVEtPCitNSVRSVcWgScSGIEJPUklTTEFWCitNSVRSVcWgScSGIEJSQU5JU0xBVgorTUlUUlXFoEnEhiBKRUxJU0FWRVRBCitNSVXEjElOIE5BVEFMSUpBCitNSVXEjElOIFJPWklOQQorTUlVxIxJTiBTTEFWS08KK01JVcSMSU4gU1ZFVE9aQVIKK01JVcSMSU4gVkVSSUNBCitNSVogTUFSSUpBCitNSVogUk9NQU4KK01JWkRSQUsgQlJBTktPCitNSkVEQSBTSU1PTgorTUxBxJBFTiDEkFVSTworTUxBxJBFTiBETUlUQVIKK01MQcSQRU5PVknEhiBCUkFOS0EKK01MQcSQRU5PVknEhiBFTEVOQQorTUxBxJBFTk9WScSGIFJBREUKK01MQURFTk9WScSGIMW9SVZPUkFECitNTEFERU5PVknEhiDEkE9SxJBFCitNTEFERU5PVknEhiDEkE9SxJBFCitNTEFERU5PVknEhiBBTEVLU0FOREFSCitNTEFERU5PVknEhiBBTEVLU0FOREFSCitNTEFERU5PVknEhiBBTsSQRUxLQQorTUxBREVOT1ZJxIYgQU5LSUNBCitNTEFERU5PVknEhiBCT8WgS08KK01MQURFTk9WScSGIEJPR0RBTgorTUxBREVOT1ZJxIYgQk9TSUxKS0EKK01MQURFTk9WScSGIERBTklMTworTUxBREVOT1ZJxIYgRFJBR0FOCitNTEFERU5PVknEhiBEUkFHQU4KK01MQURFTk9WScSGIERSQUdPTEpVQgorTUxBREVOT1ZJxIYgRFJBR09NSVIKK01MQURFTk9WScSGIERVxaBBTgorTUxBREVOT1ZJxIYgRFXFoEFOCitNTEFERU5PVknEhiBHUkFESU1JUgorTUxBREVOT1ZJxIYgSkVMRU5BCitNTEFERU5PVknEhiBKRUxFTkEKK01MQURFTk9WScSGIEpFTElDQQorTUxBREVOT1ZJxIYgSkVMSUNBCitNTEFERU5PVknEhiBKVVNUSU5BCitNTEFERU5PVknEhiBNQVJBCitNTEFERU5PVknEhiBNQVJJTkEKK01MQURFTk9WScSGIE1JSEFKTE8KK01MQURFTk9WScSGIE1JTEFOIERJUEwgSU5HCitNTEFERU5PVknEhiBNSUxBTgorTUxBREVOT1ZJxIYgTUlMQU4KK01MQURFTk9WScSGIE1JTE9SQUQKK01MQURFTk9WScSGIE1JTE9SQUQKK01MQURFTk9WScSGIE1JTE9WQU4KK01MQURFTk9WScSGIE1JTE9WQU4KK01MQURFTk9WScSGIE1MQURFTgorTUxBREVOT1ZJxIYgTkFERcW9REEKK01MQURFTk9WScSGIE5FQk9KxaBBCitNTEFERU5PVknEhi1OSUtPTEnEhiBHT1JEQU5BCitNTEFERU5PVknEhiBPTEdBCitNTEFERU5PVknEhiBQRVRBUgorTUxBREVOT1ZJxIYgUkFESVZPSgorTUxBREVOT1ZJxIYgUkFKS08KK01MQURFTk9WScSGIFJBTktPCitNTEFERU5PVknEhiBSVcW9SUNBCitNTEFERU5PVknEhiBTQVZBCitNTEFERU5PVknEhiBTTE9CT0RBTgorTUxBREVOT1ZJxIYgU0xPQk9EQU4KK01MQURFTk9WScSGIFNSQklTTEFWS0EKK01MQURFTk9WScSGIFRJSE9NSVIKK01MQURFTk9WScSGIFRPTUlTTEFWCitNTEFERU5PVknEhiBUT01JU0xBVgorTUxBREVOT1ZJxIYgVVJPxaAKK01MQURFTk9WScSGIFZFS09TTEFWCitNTEFERU5PVknEhiBWRVJJQ0EKK01MQURFTk9WScSGIFZPSklTTEFWCitNTEFERU5PVknEhiBaQUdPUktBCitNTEFERU5PVknEhiBaT1JBTkEKK01MQURFTk9WU0tJIExPWkFOQQorTUxBRElOIElNUkUKK01MQURJTiBNQVJHSVRBCitNTEFaRVYgVkFTSUwKK01MSU5BUiBNVUhBUkVNCitNTElOQVIgTVVTVEFGQQorTUxJTktPIEFNQlJPWklKRQorTUxJTktPIERVxaBBTgorTUxJTktPIFBFVEFSCitNTElOS08gWlZPTklNSVIKK01PxIwgSkVMRU5BCitNT8SMIEpPVkFOS0EKK01PxaBPIEpPxb1FRgorTU/FoE9SSU5BQyDFvUlWS08KK01PxaBPUklOQUMgTkVOQUQKK01PxaBPUklOU0tJIFpBR09SS0EKK01PxaBPUklOU0tJIFpPUkEKK01PxIZBTiBKRUxFTkEgRElQTCBJTkcKK01Pxb1FIEVNSUwKK01PQ0nEhiBNT01JUgorTU9DSUsgxJBVTEEKK01PQ0lLIElSRU5LQQorTU9DS08gSkFOCitNT0NLTy1NSUxBRElOT1ZJxIYgVklFUkEKK01PQ0tPIE1JUk9TTEFWCitNT0NLTyBTVEVWQU4KK01PQ05BSSBJUkVOQQorTU9DTkkgSk9WQU4KK01PQ05JIE1BUklKQQorTU9DTkkgU1RFVkFOCitNT0RFTFNLSSBCUkFOSVNMQVZBCitNT0RJxIYgTUlMRU5LTworTU9EScSGIE1JTEVOS08KK01PREnEhiBNSUxJVk9KRQorTU9EScSGIFJBTktPCitNT0RJxIYgU0xPQk9EQU4KK01PREnEhiBUT01JU0xBVgorTU9EScSGIFRPTUlTTEFWCitNT0RPxaBBTk9WIE1BUlRBCitNT0RPxaBBTk9WIE5JS09MQQorTU9EUkFIIFZMQURJTUlSCitNT0RSSSDFoEFORE9SCitNT0RSSSBEUkFHQU4KK01PRFJJIEVWQQorTU9EUknEhiBJTElKQQorTU9EUknEhiBTVEFOS08KK01PRFJJTknEhiBNSUxJQ0EKK01PRFJPTkpBIEZFSElNCitNT0ZBUkRJTiBTUEFTRU5LQQorTU9HQSBCUkFOS08KK01PR0EgSk9WQU4KK01PR0EgTUlMQU4gRFIgTEVLQVIKK01PR0EgTUxBREVOCitNT0dBIFBBSkEKK01PR0EgU1RFVkFOCitNT0dBIFZFUkEKK01PR0nEhiBBTEVLU0FOREFSCitNT0dJxIYgQk9SSVNMQVYKK01PR0nEhiBHT1JBTkEKK01PR0lOIEFMRUtTQU5EQVIKK01PR0lOIEFMRUtTQU5EQVIKK01PR0lOIEFMRUtTQU5EQVIKK01PR0lOIEJPUklTTEFWCitNT0dJTiBJUklOQQorTU9HSU4gSkVMRU5BCitNT0dJTiBKVUxJSkFOQQorTU9HSU4gS1NFTklKQQorTU9HSU4gTEFaQVIKK01PR0lOIExKVUJJxaBBCitNT0dJTiBNQVJBCitNT0dJTiBNSUxBTkEKK01PR0lOIE1JTEFOCitNT0dJTiBQQVZMRQorTU9HSU4gUEFWTEUKK01PR0lOIFBBVkxFCitNT0dJTiBQRVRBUgorTU9HSU4gUkFET01JUgorTU9HSU4gUkFET01JUgorTU9HSU4gVklUT01JUgorTU9IQcSMSSBBTEVLU0FOREFSCitNT0hBxIxJIExBU0xPCitNT0hBTiBERUFOQQorTU9IQU4gSk9OCitNT0hBTiBQRVRBUgorTU9IQU4gU01JTEpBTkEKK01PSE9SQSBFTUlMSUpBTgorTU9IT1JJxIYgREFOSUNBCitNT0hPUktPIElMSUpBCitNT0hPUktPIElMSUpBCitNT0hPUktPIE1BUkdJVEEKK01PSE9SS08gUkFKS08KK01PSknEhiBEVcWgQU4KK01PSknEhiBEVcWgQU4KK01PSknEhiBJVkFOS0EKK01PSknEhiBNSUxJVk9KRQorTU9KScSGIE1JTE9SQUQKK01PSknEhiBNSVRBUgorTU9KScSGIE5JS09MQQorTU9KScSGIE5JS09MQQorTU9KScSGIFNMQVZLTworTU9KScSGRVZJxIYgREVTSU1JUgorTU9KSU4gU09GSUpBCitNT0pTRSBLQVRJQ0EKK01PSlNFIE5BTkRPUgorTU9KU0VKRVYgQUxFS1NBTkRBUgorTU9KU0VKRVYgS09OU1RBTlRJTiBESVBMIFBICitNT0pTSUpFVknEhiBOSUtPTEEKK01PSlNJSkVWScSGIFNBVkEKK01PSlNJTE9WIERJTUlUUklKRQorTU9KU0lMT1YgRFJBR0FOCitNT0pTSUxPViBNSUxJU0FWCitNT0pTSUxPVknEhiBNSUxPTUlSCitNT0pTSUxPVknEhiBQRVRBUgorTU9KU0lMT1ZJxIYgU0xBVklDQQorTU9KU0lMT1ZJxIYgVkVSQQorTU9KU0lMT1ZJxIYgVklET0pFCitNT0pTSU4gRFJBR09NSVIKK01PSlNPVknEhiBBTEVLU0FOREFSCitNT0paRcWgIEFMRlJFRAorTU9KWkXFoCBNQVJJSkEKK01PS1XFoCDFoEFORE9SCitNT0tVxaAgSU1SRQorTU9LVcWgIEpPVkFOCitNT0tVxaAgS0FMTUFOCitNT0tVxaAgTEFTTE8KK01PS1XFoCBMQVNMTworTU9LVcWgIExBU0xPCitNT0tVxaAgTUlLTE/FoAorTU9LVcWgIFRJQk9SCitNT0tVxaAgWk9MVEFOCitNT0xBQyBNSUxPUkFECitNT0xDIEtBVElDQQorTU9MRE9WQU4gTEpVQklOS0EKK01PTERPVkFOIE1BUklKQQorTU9MRE9WQU5PViBCT8WgS08KK01PTERPVkFOT1ZJxIYgxJBPUsSQRQorTU9MRFZBSSBFUlZJTgorTU9MRFZBSSBJWkFCRUxBCitNT0xEVkFJIExBU0xPCitNT0xEVkFJIE9UTworTU9MRFZBSiBGUkFOSkEKK01PTERWQUogSElMREEKK01PTERWQUotT0xBSCBFTUlMSUpBCitNT0xEVkFKIFJPWkFMSUEKK01PTERWQUogU1RFVkFOCitNT0xEVkFKIFZJS1RPUgorTU9MRFZBSkkgUFJFRFJBRworTU9MRVJPViBSQURPVkFOCitNT0xKQUMgxJBPUsSQRQorTU9MSkFDIEJSQU5LQQorTU9MSkFDIEdBVlJBCitNT0xKQUMgR0FWUkEKK01PTEpBQyBKT1ZBTgorTU9MSkFDIEpPVkFOCitNT0xKQUMgS0FUSUNBCitNT0xKQUMgTUlMSUNBCitNT0xKQUMgTUlPRFJBRworTU9MSkFDIE5BREEKK01PTEpBQyBQQUpBCitNT0xKQUMgU1RFVkFOCitNT0xKQUMgU1RFVkFOCitNT0xKQUMgVkVSQQorTU9MSlNLSSBNSVJPU0xBVgorTU9MS1VDIFBFVEFSIERJUEwgSU5HCitNT0xLVUMgVklSxJBJTkVMCitNT0xOQVIgxaBBTkRPUgorTU9MTkFSLcWgVEVGVUxJSyBJTE9OQQorTU9MTkFSIMSQT1LEkEUKK01PTE5BUiBBTEVLU0FOREFSCitNT0xOQVIgQU5EUkHFoAorTU9MTkFSIEFORFJBxaAKK01PTE5BUiBBTlRPTgorTU9MTkFSIEFSUEFECitNT0xOQVIgQlJBTklTTEFWQQorTU9MTkFSIERFxb1FCitNT0xOQVIgRU1JTElKQQorTU9MTkFSIEVNSUxJSkEKK01PTE5BUiBFVklDQQorTU9MTkFSIEZFT0RPUgorTU9MTkFSIEZFUkVOQyBESVBMIElORworTU9MTkFSIEnFoFRWQU4KK01PTE5BUiBJxaBUVkFOCitNT0xOQVIgSU1SRSBEUgorTU9MTkFSIElNUkUKK01PTE5BUiBJTVJFCitNT0xOQVIgSVJFTkEKK01PTE5BUiBJVkFOIERJUEwgSU5HCitNT0xOQVIgSVZBTgorTU9MTkFSIElWQU4KK01PTE5BUiBKQUtPVgorTU9MTkFSIEpBTk/FoAorTU9MTkFSIEpBTgorTU9MTkFSIEpFTEVOQQorTU9MTkFSIEpFTElDQQorTU9MTkFSIEpFTElTQVZFVEEKK01PTE5BUiBKRUxJU0FWRVRBCitNT0xOQVIgSkVMSVNBVkVUQQorTU9MTkFSIEpPxb1FRgorTU9MTkFSIEpPxb1FRgorTU9MTkFSIEpPxb1FRgorTU9MTkFSIEpPxb1FRgorTU9MTkFSIEpPxb1FRgorTU9MTkFSIEpPTEFOS0EKK01PTE5BUiBKT1NJUAorTU9MTkFSIEpPU0lQCitNT0xOQVIgSk9TSVAKK01PTE5BUiBKT1NJUAorTU9MTkFSIEpPVkFOCitNT0xOQVIgS0FSTE8KK01PTE5BUiBLQVRBTElOCitNT0xOQVIgTEFTTE8KK01PTE5BUiBMQVpBUgorTU9MTkFSIE1BxIZBxaAKK01PTE5BUiBNQVJJSkEgRFIKK01PTE5BUiBNQVJUQSBEUgorTU9MTkFSIE1BVElMREEKK01PTE5BUiBNSUhBSkxPCitNT0xOQVIgTUlIQUxKCitNT0xOQVIgTUlIQUxKCitNT0xOQVIgTUlIQUxKCitNT0xOQVIgTUlIQUxKCitNT0xOQVIgTUlMQU4KK01PTE5BUiBNSVJPTgorTU9MTkFSIE5JS09MQQorTU9MTkFSIFNQT01FTktBCitNT0xOQVIgU1ZFVE9TTEFWCitNT0xOQVIgVEVSRVpBCitNT0xOQVIgVkVSQQorTU9MTkFSIFZJTE1PxaAgRElQTCBJTkcKK01PTE5BUiBWSkVSQQorTU9MTkFSIFZMQURJTUlSCitNT0xOQVIgWlZPTktPCitNT03EjElMT1YgRE9CUklKQQorTU9NxIxJTE9WIEdBVlJJTE8KK01PTcSMSUxPViBHQVZSSUxPCitNT03EjElMT1YgU1RFVkFOCitNT03EjElMT1ZJxIYgxIxFRE9NSVIKK01PTcSMSUxPVknEhiBCT0dPTUlSCitNT03EjElMT1ZJxIYgQlJBTktPIERSCitNT03EjElMT1ZJxIYgREFORQorTU9NxIxJTE9WScSGIERSQUdBTgorTU9NxIxJTE9WScSGIERVxaBBTktBCitNT03EjElMT1ZJxIYgSUxJSkEKK01PTcSMSUxPVknEhiBNSUhBSkxPCitNT03EjElMT1ZJxIYgTUlMQU4KK01PTcSMSUxPVknEhiBNSUxBTgorTU9NxIxJTE9WScSGIE1JTEUKK01PTcSMSUxPVknEhiBNSVJBCitNT03EjElMT1ZJxIYgTUlSQQorTU9NxIxJTE9WScSGIE1PTcSMSUxPCitNT03EjElMT1ZJxIYgUEVUQVIKK01PTcSMSUxPVknEhiBSVcW9SUNBCitNT03EjElMT1ZJxIYgU01JTEpBCitNT03EjElMT1ZJxIYgVE9NSVNMQVYKK01PTcSMSUxPVknEhiBWQVNBCitNT03EjElMT1ZJxIYgVklEQU4KK01PTcSMSUxPVknEhiBWT0pJU0xBVgorTU9NxIxJTE9WScSGIFZVS0lDQQorTU9NQU5JIEFLUkFNCitNT01JxIYgT0JSQUQKK01PTUlST1YgSUxJSkEKK01PTUlST1YgTEpJTEpBTkEKK01PTUlST1YgTUlMRU5LTworTU9NSVJPViBNSUxFVEEKK01PTUlST1YgTUlST1NMQVYKK01PTUlST1YgTkFEQQorTU9NSVJPViBQQUpBCitNT01JUk9WIFNBVkEKK01PTUlST1YgU1ZFVExBTkEKK01PTUlST1YgU1ZFVE9aQVIKK01PTUlST1YgVE/FoEEKK01PTUlST1YgWk9SSUNBCitNT01JUk9WScSGIEJSQU5LTworTU9NSVJPVknEhiBKRUxJQ0EKK01PTUlST1ZJxIYgSk9WSUNBCitNT01JUk9WScSGIExBWkEKK01PTUlST1ZJxIYgUEVUQVIKK01PTUlST1ZJxIYgU1JFxIZLTworTU9NSVJPVknEhiBTVEVWQU4KK01PTUlST1ZTS0ktTUlMT8WgRVZJxIYgQ1ZFVEFOQQorTU9OQVIgSkFOS08KK01PTkFSRVYgQUxFS1NBTkRBUgorTU9OQVJFViBKT1NJUEEKK01PTkFSRVYtU09LT0xJxIYgTkFEQQorTU9OQVJPViBFTElaQUJFVEEKK01PTkFST1YgSk9aRUZJTkEKK01PTkRPVknEhiDEkFVMQQorTU9ORE9WScSGIEFMRUtTQU5EQVIKK01PTkRPVknEhiBGUkFOSkEKK01PTkRPVknEhiBLQVRJQ0EKK01PTkRPVknEhiBMQURJU0xBVgorTU9OR0VKQVIgUkFET1NBVkEKK01PTkkgSVNMQU0KK01PTk9LSSDEkFVMQQorTU9OT0tJIEnFoFRWQU4KK01PUiDEkEVSxJAKK01PUiBGUkFOSkEKK01PUiBHQUJPUgorTU9SIEdBQk9SCitNT1IgTEFTTE8KK01PUiBaREVOS08KK01PUkEgQU5BCitNT1JBIEFORFJBxaAKK01PUkEgS09STkVMSUpBCitNT1JBxIxBIMSQVVJBxJAKK01PUkHEjEEgTUlPRFJBRworTU9SQcSMQSBOSUtPTEEKK01PUkHEjEEgUkFETUlMQQorTU9SQcSMQSBWQVNPCitNT1JBxIxBIFZBU08KK01PUkHEjEFOSU4gTUlMT1JBRAorTU9SQUnEhiDEkE9SxJBFCitNT1JBUkVWScSGIExKVUJJQ0EKK01PUkFSRVZJxIYgVk9KS0FOCitNT1JBVkFDIFZPSklTTEFWCitNT1JBVkVLIEpBTktPCitNT1JFIE1BUklKQQorTU9SRSBTSUxWRVNURVIKK01PUkdFTlRBTEVSIEpPVkFOCitNT1JJxIYgSEFNTworTU9SSUMgRFJBR1VUSU4KK01PUklDIEdBQk9SCitNT1JJQyBKQU5PxaAKK01PUklDIEpFTEVOQQorTU9SSUMgSlVMSUpBCitNT1JJQyBLQVJMTworTU9SSUMgTEFKT8WgCitNT1JJQyBMQVNMTworTU9SSUMgTEFTTE8KK01PUklDIExJRElKQQorTU9SSUMgTUlMQU5BCitNT1JJQyBQQVVMQQorTU9SSUMgU0lMQVJECitNT1JJQyBTTEFWSUNBCitNT1JJQyBaT0xUQU4KK01PUk/FoEVWIFJBRE9TTEFWCitNT1JPS1ZBxaBJxIYgQk9HREFOS0EKK01PUk9LVkHFoEnEhiBNSUxJU0FWCitNT1JPS1ZBxaBJxIYgTkVOQUQKK01PUk9LVkHFoEnEhiBOSUtPTEEKK01PUk9NSUxPViBMSlVCSU5LQQorTU9ST1RWQU5TS0kgVklET1NBVkEKK01PUk9WScSGIE1BVElMREEKK01PUk9WScSGIE1JTEVOQQorTU9ST1ZJxIYgTkVTVE9SCitNT1JPVklDIExBU0xPCitNT1JWQUkgxaBBTkRPUgorTU9SVkFJIMSQRVLEkAorTU9SVkFJIEZFUkVOQworTU9SVkFJIEpBTk/FoAorTU9SVkFJIEtBUkxPCitNT1JWQUkgTEFESVNMQVYKK01PUlZBSSBQRVRBUgorTU9TScSGIE1JT0RSQUcKK01PU0tBTEogTEpVQk9NSVIKK01PU0tBTEogTklLT0xBCitNT1NLQUxKIE5JS09MQQorTU9TS0FMSiBSQURNSUxBCitNT1NLVkFMSiBTQVZLQQorTU9TTE9WQUMgS0FUQVJJTkEKK01PU05BSyBBTkRSSUpBCitNT1NOQUsgUEFWRUwKK01PU1RBUkFDIEpFTEVOQQorTU9TVEFSU0tJIFNMQVZJQ0EKK01PU1RJxIYgUkFETUlMQQorTU9TVVJPVknEhiBNSUxJSkFOQQorTU9UT0sgxJBPUsSQRQorTU9UT0sgQlJBTktPCitNT1RPUk/FvUVTS1UgQVVST1JBCitNT1ZSSU4gSVZBTgorTU9aRVRJxIYgTUxBREVOCitNUsSMQVJJQ0EgWk9SQU4KK01SxaBBIE1JTEVOS0EKK01SxaBJxIYgxJBPUsSQRQorTVLFoEnEhiBCT0dEQU4KK01SxaBJxIYgRFXFoEFOCitNUsWgScSGIE1BUktPCitNUsWgScSGIE1JTEUKK01SxaBPIEFOVE8KK01SxaBVTEpBIE5JS09MQQorTVLFoFVMSkEgUkFET01JUgorTVLEkEEgQk/FoEtPCitNUsSQQSBCT0dEQU4KK01SxJBBIE1BTkUKK01SxJBBIE1JTEtBTgorTVLEkEEgTUlST1NMQVYKK01SxJBBIFNURVZBTgorTVLEkEEgWk9SQU4KK01SxJBBTiBEVcWgQU4KK01SxJBBTiBNSUhBSkxPCitNUsSQQU4gUlXFvUlDQQorTVLEkEFOIFNBVkEKK01SxJBBTiBTQVZBCitNUsSQQU4gU1RFVkFOCitNUsSQQU4gU1RFVkFOCitNUsSQQU5JTiBWTEFESVNMQVYKK01SxJBBTk9WIMW9QVJLTworTVLEkEFOT1YgQU5JQ0EKK01SxJBBTk9WIEtTRU5JSkEKK01SxJBBTk9WIExBWkEKK01SxJBBTk9WIE1BUklOS08KK01SxJBBTk9WIE1FTEFOSUpBCitNUsSQQU5PViBNSVJPU0xBVgorTVLEkEFOT1YgTU9NxIxJTE8KK01SxJBBTk9WIE5FTUFOSkEKK01SxJBBTk9WIE5PVklDQQorTVLEkEFOT1YgUFJPS0EKK01SxJBBTk9WIFNNSUxKQQorTVLEkEFOT1YgVlVLT1NBVkEKK01SxJBBTk9WIFpEUkFWS08KK01SxJBFTiBJTElKQQorTVLEkEVOIEpFTEVOQQorTVLEkEVOIExBWkFSCitNUsSQRU4gTUlSS08KK01SxJBFTiBWRUxKS08KK01SxJBFTk9WIEtBVElDQQorTVLEkEVOT1ZJxIYgQlJBTklTTEFWCitNUsSQRU5PVknEhiBCUkFOS08KK01SxJBFTk9WScSGIExKVUJPTUlSCitNUsSQRU5PVknEhiBORUJPSsWgQQorTVLEkEVOT1ZJxIYgUEVUQVIKK01SxJBFTk9WScSGIFZBU08KK01SQcSMQUpBQyBDVklKTworTVJBxIxBSkFDIERFSkFOCitNUkHEhkVWScSGIFJBRElWT0oKK01SQUtPVknEhiBCT8W9SURBUgorTVJBS09WScSGIExKVUJBTgorTVJBS09WScSGIFNMT0JPREFOS0EKK01SQU9WScSGLUJBSFVOIE1JTElKQU5BCitNUkFPVknEhiBEUkFHQU4KK01SQU9WScSGIERVxaBBTgorTVJBT1ZJxIYgS0FUSUNBCitNUkFPVknEhiBNQVJLTworTVJBT1ZJxIYgT0xHQSBEUiBQUkFWTklLCitNUkFPVknEhiBTTE9CT0RBTgorTVJBT1ZJxIYgU1RPSkFOCitNUkFUSU5LT1ZJxIYgQk9SSVMgRFIgTEVLQVIKK01SQVRJTktPVknEhiBEVcWgQU4gRFIKK01SQVRJTktPVknEhiBMSlVCSUNBCitNUkFWSUsgxb1JVktBCitNUkFWSUsgxJBVUkEKK01SQVZJSyBQQVZMRQorTVJBWiBBTkRSSUpBCitNUkFaRUsgQkVSTkFSRE8KK01SQVpPVknEhiBKT1NJUAorTVJBWk9WScSGIE1JTEFOQQorTVJBWk9WScSGIE1JTEFOCitNUkFaT1ZJxIYgTkVWRU5LQQorTVJEQUsgxJBPUsSQRQorTVJEQUsgTUlSQcWgCitNUkRBS09WScSGIEJPUklTQVYKK01SREFLT1ZJxIYgTUlMVVRJTgorTVJEQUtPVknEhiBWRVJJQ0EKK01SREFLT1ZJxIYgVlVLT1NBVgorTVJEQUxKIFBFVEFSCitNUkRJxIYgS0FST0xJTkEKK01SREnEhiBNQVJLTworTVJEScSGIFNBTkpBCitNUkdBTknEhiBKT1pPCitNUkdBTknEhiBTUkXEhktPCitNUkdJxIYgTUlSSkFOQQorTVJLxaBJxIYgxJBPUsSQRQorTVJLxaBJxIYgQUxFS1NBTkRBUgorTVJLxaBJxIYgQk9KQU5BCitNUkvFoEnEhiBEUkFHQU4KK01SS8WgScSGIERSQUdBTgorTVJLxaBJxIYgSkVMRU5BCitNUkvFoEnEhiBKT0NBCitNUkvFoEnEhiBKT0NBCitNUkvFoEnEhiBLT1NUQQorTVJLxaBJxIYgTUlMT8WgCitNUkvFoEnEhiBORU5BRAorTVJLxaBJxIYgU0xBVklDQQorTVJLxaBJxIYgWkFHT1JLQQorTVJLxaBJxIYgWkxBVEEKK01SS0FJxIYgR09SQU4KK01SS0FJxIYgU0lNQQorTVJLQUnEhiBUT01JU0xBVgorTVJLQUxKIEJPxb1JREFSCitNUktFTEEgTUlSQQorTVJLRUxBIFZPSklOCitNUktJxIYgQlJBTklTTEFWCitNUktJxIYgTUlMS0EgTVIgUEgKK01SS0nEhiBOSUtPTEEKK01SS0nEhiBTTUlMSkEKK01SS09KRVZJxIYgS09TVEEKK01SS09KRVZJxIYgTUFSSUpBCitNUktPTkpFViBEUkFHQU4KK01SS09OSknEhiDFvUlWT0pJTgorTVJLT1ZBxIxLSSBKRUxFTkEKK01SS09WQcSMS0kgTUlMT8WgCitNUktPVkHEjEtJIE1JTE9WQU4KK01SS09WScSGIE1MQURFTgorTVJLVcWgScSGIE1JTElDQQorTVJLVcWgScSGIE1JTElDQQorTVJLVcWgScSGIFJBRElWT0oKK01SS1XFoEnEhiBTVEVWQU4KK01STU/FoCBNSUxBTgorTVJOVcWgVElLIFNURVZBTgorTVJWScSGIE5FREVMSktPCitNUlZJxIYgU0FWQQorTVJWScSGIFNURVZBTgorTVJWScSGIFZVS09NSVIKK01SVklDQSBSVcW9SUNBCitNUlZPxaAgSk9WQU4KK01SVk/FoCBNSUhBSUxPCitNUlZPxaAgTUlMQU5LQQorTVXEjEFMSUNBIERSQUdPTEpVQgorTVXEjEFMTyBTTEFWSUNBCitNVcSMQUxPViBTTE9CT0RBTgorTVXEjEFMT1ZJxIYgRFXFoEtPCitNVcSMRU5TS0kgTEpVQk9NSVIKK01VxIxFTlNLSSBOSUtPTEEKK01VxIxFTlNLSSBWTEFESU1JUgorTVXEjEkgxJBFUsSQIERJUEwgSU5HCitNVcSMSSBBTkRSQcWgCitNVcSMSSBGUkFOSkEKK01VxIxJIElMT05BCitNVcSMSSBJTE9OS0EKK01VxIxJIEpPxb1FRgorTVXEjEkgSk/FvUVGCitNVcSMSUJBQknEhiBNSVJKQU5BCitNVcSMSUJBQknEhiBOQVRBTElKQQorTVXEjElCQUJJxIYgUkFET1ZBTgorTVXEjElCQUJJxIYgUkFET1ZBTgorTVXEjElCQUJJxIYgU0FWTworTVXEjElCQUJJxIYgVkVSQQorTVXEjFUgSk9WQU4KK01VxIxVIE5JS09MQQorTVXFoEFOIE1BUklKQQorTVXFoEnEhiBGUkFOSkEKK01VxaBJQ0tJIMSGSVJBCitNVcWgSUNLSSDFvUlWQU4KK01VxaBJQ0tJIMW9SVZBTgorTVXFoElDS0kgxb1JVkFOCitNVcWgSUNLSSDEkE9SxJBFCitNVcWgSUNLSSDEkE9SxJBFCitNVcWgSUNLSSBCT0dEQU4KK01VxaBJQ0tJIEJPSkFOQQorTVXFoElDS0kgQlJBTklTTEFWCitNVcWgSUNLSSBCUkFOS0EKK01VxaBJQ0tJIERPUk9URUpBCitNVcWgSUNLSSBEUkFHQU4KK01VxaBJQ0tJIERSQUdPU0xBVgorTVXFoElDS0kgRFXFoEFOCitNVcWgSUNLSSBEVcWgQU4KK01VxaBJQ0tJIERVxaBBTgorTVXFoElDS0kgRVZJQ0EKK01VxaBJQ0tJIEpPVkFOCitNVcWgSUNLSSBMQVpBUgorTVXFoElDS0kgTUFSSUpBCitNVcWgSUNLSSBNSUxBTkEKK01VxaBJQ0tJIE1JTEVOS08KK01VxaBJQ0tJIE1JTElDQQorTVXFoElDS0kgTUlMSUNBCitNVcWgSUNLSSBNSUxPUkFECitNVcWgSUNLSSBOQVRBxaBBCitNVcWgSUNLSSBOT1ZBSworTVXFoElDS0kgUFJPS0EKK01VxaBJQ0tJIFNMQVZLTworTVXFoElDS0kgU0xBVktPCitNVcWgSUNLSSBTT0ZJSkEKK01VxaBJQ0tJIFNURVZBTgorTVXFoElDS0kgVkVMSktPCitNVcWgSUtJxIYgQk/FvUlEQVIKK01VxaBJS0nEhiBMSlVCSUNBCitNVcWgSUtJxIYgUkFET01JUgorTVXFoElLScSGIFJBVEtPCitNVcWgS0lOSkEgQkFSSUNBCitNVcWgS0lOSkEgTUlSS08KK01Vxb1FSyBWSURBCitNVcW9SUpFVknEhiBSSVNUTworTVXFvUlLIEJJTEpBTkEKK01Vxb1JSyBNQVRBCitNVcW9SUtBLVRPVCBaT0xUQU4KK01Vxb1MQUkgxaBBTkRPUgorTVVDIFpMQVRPTUlSCitNVUNJIEpBTk/FoAorTVVEUkVOScSGIE1BUklKQQorTVVEUkVOScSGIFJBRElTTEFWCitNVURSSSBFVUdFTgorTVVEUkkgSk9BS0lNCitNVURSSSBMSlVCSUNBCitNVURSSSBNSVJPU0xBVgorTVVEUkkgUEVUQVIKK01VRFJJIFBFVEFSCitNVURSSSBWRVJBIERSIFZFVEVSSU5FCitNVURSSSBWTEFEQQorTVVEUkkgVkxBRElNSVIKK01VRFJJIFZMQURJTUlSCitNVURSScSGIMSQVVJBCitNVURSScSGIERSQUdPTEpVQgorTVVEUknEhiBMSlVCT01JUiBESVBMIElORworTVVEUknEhiBQRVRBUgorTVVEUknEhiBTTEFWS0EKK01VRFJJTknEhiBCT8WgS08KK01VRFJJTknEhiBCT8WgS08KK01VRFJJTknEhiBCUkFOS08KK01VRFJJTknEhiBHT0pLTworTVVEUklOScSGIE1BSkEKK01VRFJJTknEhiBNSUhBSkxPCitNVURSSU5JxIYgTUlMQU4KK01VRFJJTknEhiBNSUxFVkEKK01VRFJJTknEhiBNTEFERU4KK01VRFJJTknEhiBQRVRBUiBEUgorTVVEUklOScSGIFNMQVZLTworTVVEUklOScSGIFNQQVNFTktBCitNVURSSU5JxIYgU1RFVk8KK01VRFJJTknEhiBTVE9KQU4KK01VRFJJTknEhiBWTEFESU1JUgorTVVEUklOScSGIFZPSklOCitNVURSSU5TS0kgxJBPUsSQRQorTVVEUklOU0tJIEFMRUtTQU5EQVIKK01VRFJJTlNLSSBBTEVLU0FOREFSCitNVURSSU5TS0kgQk9SSVNMQVYKK01VRFJJTlNLSSBCT1NJTEpLQQorTVVEUklOU0tJIElWQU5LQQorTVVEUklOU0tJIExBWkFSCitNVURSSU5TS0kgTUlMQU4KK01VRFJJTlNLSSBNSUxFVEEKK01VRFJJTlNLSSBNSUxPxaAKK01VRFJJTlNLSSBNSVJPU0xBVgorTVVEUklOU0tJIE9MR0EKK01VRFJJTlNLSSBQRVRBUgorTVVEUklOU0tJIFNBVkEKK01VRFJJTlNLSSBTT0ZJSkEKK01VRFJJTlNLSSBTVEVWQU4KK01VRFJJTlNLSSBWT0pJU0xBVgorTVVHT8WgQSBNSUxPCitNVUhBIFpVWkFOQQorTVVIQVJFTUkgRlVBRAorTVVIQVJFTVNLSS1CRcSGSVJPVknEhiBSRU1aSUpBCitNVUhBUkkgTEFKT8WgCitNVUhJIEJFTEEKK01VSkFOT1ZJxIYgU0FGRVQKK01VSkFOT1ZJxIYgU0xPQk9EQU4KK01VSkFOT1ZJxIYgU1ZFVExBTkEKK01VSkVaSU5PVknEhiBBTE1BUworTVVKRVpJTk9WScSGIElSRU5BCitNVUpFWklOT1ZJxIYgWkxBVEFOCitNVUpJxIYgTUlMQU4KK01VSktBTk9WScSGIFNBTElICitNVUpLScSGIMWgRUZJSworTVVKS0nEhiBIQUpSVURJTgorTVVKS0nEhiBJTERVWkEKK01VSktJxIYgSVpVRElOCitNVUpLScSGIEpBS1VCCitNVUpLScSGIE1FSE1FRAorTVVLLVNBTUFSRMW9ScSGIEVNQQorTVVMQUkgTUFUSUpBCitNVUxBSiBFU1RJS0EKK01VTEFKIEtBVElDQQorTVVMScSGIEtBVEFSSU5BCitNVUxJxIYgTUlPRFJBRworTVVMScSGIE1JUk9TTEFWCitNVUxJxIYgUEVUQVIKK01VTEnEhiBSQURNSUxPCitNVUxJxIYgU1ZFVElTTEFWCitNVUxJxIYgVkVMSktPCitNVUxJxIYgWk9SQU4KK01VTUTFvUnEhiBIQVpJUgorTVVNSU4gQUxFS1NBTkRBUgorTVVNSU4gTklLT0xBCitNVU1JTkFHScSGIEFMSURBCitNVU1JTk9WScSGIEFMSU0KK01VTUlOT1ZJxIYgSEFNRUQKK01VTU9WScSGIEFORFJJSkEKK01VTU9WScSGIEpPVkEKK01VTU9WScSGIFNBVkEKK01VTsSGQU4gxJBPUsSQRQorTVVOxIZBTiDEkE9SxJBFCitNVU7EhkFOIMSQT1LEkEUKK01VTsSGQU4gQUxFS1NBTkRBUgorTVVOxIZBTiBBTkdFTElOQQorTVVOxIZBTiBCT8WgS08KK01VTsSGQU4gQk/FoEtPCitNVU7EhkFOIERSQUdBTgorTVVOxIZBTiBEUkFHT0xKVUIKK01VTsSGQU4gRFXFoEFOCitNVU7EhkFOIEpPVkFOIERSCitNVU7EhkFOIEpPVkFOCitNVU7EhkFOIExBWkFSCitNVU7EhkFOIExBWkEKK01VTsSGQU4gTUlMRU5LTworTVVOxIZBTiBSQURPVkFOCitNVU7EhkFOIFNMQVZLTworTVVOxIZBTiBTT0ZJSkEKK01VTsSGQU4gVE9ET1IKK01VTsSGQU4gVkFTQQorTVVOxIZBTiBWRVNFTElOCitNVU7EhkFOIFZMQURJTUlSCitNVU7EhkFOIFpPUkEKK01VTkTFvUnEhiDFvUlWT0pJTgorTVVORMW9ScSGIEJPR0RBTgorTVVORMW9ScSGIE1JUkpBTkEKK01VTkTFvUnEhiBQRVRBUgorTVVORElORyBFVEVMS0EKK01VTknFoEnEhiBKT1ZBTgorTVVOScW9QUJBIMSQT1LEkEUgRElQTCBJTkcKK01VTknFvUFCQSBCUkFOSVNMQVYKK01VTknFvUFCQSBKT1ZBTgorTVVOScW9QUJBIEtBVElDQQorTVVOScW9QUJBIExBWkFSCitNVU5Jxb1BQkEgTUlMRU5LTworTVVOScW9QUJBIFZFRFJBTkEKK01VTklUTEFLIERSQUdBTgorTVVOSkFTIEJPxb1JREFSCitNVU5KQVMgRE1JVEFSCitNVU5KQVMgTUlMQU4KK01VTkpBUyBTSU1LQQorTVVOSkFTIFNUQU5BCitNVU5KSU4gxb1JVktPCitNVU5KSU4gQUxFS1NBTkRBUgorTVVOSklOLUJBTknEhiBPTEdBIERJUEwgUFJBVk5JSworTVVOSklOIEtBSklDQQorTVVOSklOIExBWkFSCitNVU5KSU4gUEVUQVIKK01VTkpJTiBTTUlMSkEKK01VTkpJWkEgxb1FTEpLTworTVVOSklaQSBKT1ZBTktBCitNVU5LIMSQT1LEkEUKK01VTktBIERVxaBBTktBCitNVU5LQcSMSSBNSUhBSkxPCitNVU5URUFOIElMSUpBCitNVU5URUFOIFRPRE9SCitNVU5aQVIgVkVSQQorTVVSQVRJIE1JTEpBWklNCitNVVJBVEkgU1RBTkEKK01VUkFUT1ZJxIYgSUJSQUhJTQorTVVSQVRPVknEhiBKT1ZPCitNVVJBVE9WScSGIE1JS0EKK01VUkFUT1ZJxIYgUkFERU5LTworTVVSQVRPVknEhiBTQUJSSUpBCitNVVJHQcWgS0kgQlJBTktBCitNVVJHQcWgS0kgREFOSUNBCitNVVJHQcWgS0kgRE9CUkVOCitNVVJHQcWgS0kgRFXFoEFOCitNVVJHQcWgS0kgSk9WQU4KK01VUkdBxaBLSSBMSlVCSU5LQQorTVVSR0HFoEtJIE1BVElKQQorTVVSR0HFoEtJIE1JSEFKTE8KK01VUkdBxaBLSSBNSUxJQ0EKK01VUkdBxaBLSSBNSUxPxaAKK01VUkdBxaBLSSBNSUxPUkFECitNVVJHQcWgS0kgTUlST1NMQVYKK01VUkdBxaBLSSBORU5BRAorTVVSR0HFoEtJIE5PVkFLCitNVVJHQcWgS0kgUEVUQVIKK01VUkdBxaBLSSBTQVZBCitNVVJHQcWgS0kgU0VWRVIKK01VUkdBxaBLSSBTTE9CT0RBTiBEUgorTVVSR0HFoEtJIFNWRVRPWkFSCitNVVJHQcWgS0kgVlVLT1NBVkEKK01VUkdVTCBMSlVCT01JUgorTVVSR1VMT1ZJxIYgTU9NSVIKK01VUknEhiBTTEFWS08KK01VUknEhiBTVEVWQU4KK01VUknEhiBWRUxKS08KK01VUklOSkkgSk9TSVAKK01VUklOSkkgS0FUSUNBCitNVVJJTkpJIE1JTEVWQQorTVVSSU5KSSBTVE9KQU5LQQorTVVSUEhVIE1JUkpBTkEKK01VUlNFTEkgTUlSxIxFCitNVVJTRUxJIE5FWklSCitNVVJTRUxPVknEhiBOQVpJRgorTVVSU0VMT1ZJxIYgUkFJRgorTVVTQSBJVkFOS0EKK01VU0EgSkVMSUNBCitNVVNBRklKQSBCTEFOS0EKK01VU0nEhiDFoEFCQU5JSkEKK01VU0nEhiDFoEVNU0EKK01VU0nEhiBLQVRJQ0EKK01VU0nEhiBNSVJLTworTVVTScSGIFJBRE9KS0EKK01VU0nEhiBaT1JBTgorTVVTSU4gS0FMTUFOCitNVVNPVlNLSSBJU0EKK01VU1RBRknEhiBCUkFOS0EKK01VU1RBRknEhiBIQVJJWgorTVVTVEFGScSGIE1JTElDQQorTVVTVEFGScSGIFNFREFUCitNVVNUQUZPU0tJIEJFRFJJSkEKK01VU1RFREFOQUdJxIYgRVNBRAorTVVTVUxJTiBHT1JLSQorTVVTVUxJTiBNSUxPUkFECitNVVNVTElOIFNMQVZLTworTVVUQUJExb1JSkEgTUlMT1ZBTgorTVVUQVbEjElFViBJVkFOCitNVVRBVkTFvUnEhi1HSU9OIE1BUklKQQorTVVUQVZExb1JxIYgTUlMQU4KK01VVEFWRMW9ScSGIE1JTEFOCitNVVRBVkTFvUnEhiBNSUxPxaAKK01VVEFWRMW9ScSGIFJBVEtPCitNVVRBVkTFvUnEhiBUT01JU0xBVgorTVVUQVZExb1JxIYgVkVMSktPCitNVVRBVkTFvUnEhiBaTEFUQQorTVVUQVZExb1JSkEgTUlSSkFOQQorTVVUScSGIMW9SVZLTworTVVUScSGIEJSQU5LTworTVVUScSGIERVxaBBTgorTVVUScSGIERVxaBBTgorTVVUScSGIERVxaBBTgorTVVUScSGIERVxaBJQ0EKK01VVEnEhiBLQU1FTktPCitNVVRJxIYgTEpJTEpBTkEKK01VVEnEhiBSQURPU0xBVgorTVVUScSGIFNNSUxKQQorTVVUSUJBUknEhiBBTEVLU0FOREFSIERSCitNVVRJQkFSScSGIEFMRUtTQU5EQVIKK01VVElCQVJJxIYgRFJBR09MSlVCCitNVVRJQkFSScSGIElSRU5BCitNVVRJQkFSScSGIExJQlXFoEEKK01VVElCQVJJxIYgTUlMQU4KK01VVElCQVJJxIYgTUlMRQorTVVUSUJBUknEhiBOQVRBxaBBCitNVVRJQkFSScSGIFNURVZBTgorTVVUSUJBUknEhiBUT0RPUgorTVVUSU4gxJBPUsSQRQorTVVUSU4gRU1JTAorTVVUSU4gWkRSQVZLTworTVVaQUxFVlNLSSBBTEVLU0FOREFSCitNVVpFS0EgTUFSSUpBTkEKK01VWkVSIEZSQU5KQQorTVVaRVIgTUlST1NMQVYKK01VWkVSIFJBRE9TTEFWCitNVVpJS1JBVknEhiBCTEHFvU8KK01VWklLUkFWScSGIExKVUJPTUlSIERSCitOQcSMIEFORFJJSkEKK05BxIxBIEpBTk/FoAorTkHEjEEgSk9TSVAKK05BxIxBIE9USUxJSkEKK05BxaBJR0HEhklOIE1JTEVOS08KK05BxIZVSyBBTEVLU0FOREFSCitOQcSGVUsgSVJJTkEKK05BxJAgxIxPTkdPUgorTkHEkCDEjE9OR09SCitOQcSQIMWgQU5ET1IKK05BxJAgxaBBTkRPUgorTkHEkCDEkEVSxJAKK05BxJAtQUJPTkpJIEdBQk9SCitOQcSQIEFMRUtTQU5EQVIKK05BxJAgQU5BCitOQcSQIEFOR0VMQQorTkHEkCBCQVJCQVJBCitOQcSQIEJFTEEKK05BxJAgQlJBTktBCitOQcSQIERFxb1FCitOQcSQLURPUk9UScSGIE1BUklKQQorTkHEkCBEUkFHSVNMQVYKK05BxJAgRFXFoEFOS0EKK05BxJAgRVLFvUVCRVQKK05BxJAgRVRFTAorTkHEkCBFVUZFTUlKQQorTkHEkCBGRVJFTkMKK05BxJAgRkVSRU5DCitOQcSQIEZFUkVOQworTkHEkCBGRVJFTkMKK05BxJAgRkVSRU5DCitOQcSQLUZPUktBxaAgS0FUSUNBCitOQcSQIEZSQU5KQQorTkHEkCBGUkFOSkEKK05BxJAgRlJBTkpBCitOQcSQIEdFT1JHSU5BCitOQcSQIEdJWkVMQQorTkHEkC1IRVZFxaBJIExBU0xPCitOQcSQIEnFoFRWQU4KK05BxJAgScWgVFZBTgorTkHEkCBJTE9OQQorTkHEkCBJTVJFCitOQcSQIElSSU5BCitOQcSQIElWQU4KK05BxJAgSkFOT8WgCitOQcSQIEpBTk/FoAorTkHEkCBKT8W9RUYKK05BxJAgSk/FvUVGCitOQcSQIEpPxb1FRgorTkHEkCBKT8W9RUYKK05BxJAgSk9TSVAKK05BxJAgSk9TSVAKK05BxJAgSk9TSVAKK05BxJAgSk9TSVAKK05BxJAgSk9TSVAKK05BxJAgSk9TSVAKK05BxJAgSk9WQU5LQQorTkHEkCBKT1ZBTgorTkHEkCBLQVJMTworTkHEkCBLQVJPTEoKK05BxJAgS0FST0xKCitOQcSQIEtBVEFSSU5BCitOQcSQIExBRElTTEFWCitOQcSQIExBSk/FoAorTkHEkCBMQUpPxaAKK05BxJAgTEFTTE8gRElQTCBJTkcKK05BxJAgTEFTTE8KK05BxJAgTEFTTE8KK05BxJAgTEFTTE8KK05BxJAgTEFTTE8KK05BxJAgTEFTTE8KK05BxJAgTEVPTkEKK05BxJAgTEVPTkEKK05BxJAgTEpVQklDQQorTkHEkCBNQVJHQVJFVEEKK05BxJAgTUFSSUpBCitOQcSQIE1BUklKQQorTkHEkCBNQVJUT04KK05BxJAtTUVMSktVVEkgRURJVAorTkHEkCBNSUhBSkxPCitOQcSQIE1JSEFMSgorTkHEkCBNSVJBCitOQcSQIE1JUkEKK05BxJAgTUlSQQorTkHEkCBNSVJKQU5BCitOQcSQIE5BTkRPUgorTkHEkCBOQU5ET1IKK05BxJAgTkVWRU5LQQorTkHEkCBOSUtPTEEKK05BxJAgTk9WSUNBCitOQcSQIE9UTworTkHEkCBPVE8KK05BxJAgUEFWTEUKK05BxJAgUEFWTEUKK05BxJAgUEVUQVIKK05BxJAgUEVUQVIKK05BxJAgUEVUQVIKK05BxJAgUEVURVIKK05BxJAgUElST8WgS0EKK05BxJAgUElST8WgS0EKK05BxJAtUE9QT1YgQ0VDSUxJSkEKK05BxJAgUk9aQQorTkHEkCBTTEFWS08KK05BxJAgU1RFVkFOCitOQcSQIFNURVZBTgorTkHEkCBTVkpBVE9TTEFWCitOQcSQLVRBTkFTS09WScSGIEpVTElKQQorTkHEkCBUSUJPUgorTkHEkCBWQVNJTElKRQorTkHEkCBWRVJPTkEKK05BxJAgVklLVE9SSUpBCitOQcSQIFZMQURJTUlSCitOQcSQIFZMQURJTUlSCitOQcSQIFZMQURJTUlSCitOQcSQIFZMQURJTUlSCitOQcSQIFpMQVRJTUlSCitOQcSQIFpPTFRBTgorTkHEkEFMSU4gQlJBTktPCitOQcSQQUxJTiBJU0EKK05BxJBCQUJJIEZFUkVOQworTkHEkEJBQkkgRkVSRU5DCitOQcSQQkFCSSBJR09SCitOQcSQQkFCSSBJVktBCitOQcSQQkFCSSBKQU5JS0EKK05BxJBFUsSQIElMT05LQQorTkHEkEdFTEVSVCBKQU5PxaAKK05BxJBIRcSQRcWgSSBGUkFOSkEKK05BxJBIRcSQRcWgSSBKT1ZBTgorTkHEkEhFxJBFxaBJIExBRElTTEFWCitOQcSQSURBSSBLQVJPTEoKK05BxJBNRUxKS1VUSSBLTEFSQQorTkHEkE1JxIZPIFZFU0VMSU5BCitOQcSQT1LEkCBTQcWgQQorTkHEkFBBTCBJUkVOS0EKK05BxJBWSU5TS0kgS1NFTklKQQorTkHEkFZJTlNLSSBQRVRBUgorTkFDRVYgR1JVSk8KK05BREHFoEtJIExBWkFSCitOQURBxaBLSSBNSUxJVk9KCitOQURBxaBLSSBNSVJPU0xBVgorTkFEQcWgS0nEhiBLQVRJQ0EKK05BREHFvURJIFJVxb1JQ0EKK05BREFSRVZJxIYgQk9SSVMKK05BREJBTkRJxIYgU1ZFVElTTEFWIERJUEwgSU5HCitOQURCQU5UScSGIE5BREEKK05BRElIIEZSSURSSUgKK05BRElIIE1JUktPCitOQURMQcSMS0kgQUxFS1NBTkRBUgorTkFETEHEjEtJIE1JTE9KRQorTkFETEHEjEtJIFJBRElWT0oKK05BRExBxIxLSSBSQURPVkFOCitOQURMQcSMS0kgU1RFVktBCitOQURMVUtBxIwgTUFSSUpBCitOQURSTEpBTlNLSSDEkE9SxJBFCitOQURSTEpBTlNLSSBEQU5JTEtBCitOQURSTEpBTlNLSSBMSklMSkFOQQorTkFEUkxKQU5TS0kgTEpVQknFoEEKK05BRFJMSkFOU0tJIE1JTElWT0oKK05BRFJMSkFOU0tJIFNMT0JPREFOCitOQURSTEpBTlNLSSBTVEVWQU4KK05BRVJBQyBTTE9CT0RBTgorTkFHTEnEhiBTTEFWS08KK05BR1JBREnEhiBKRUxFTkEKK05BR1JBREnEhiBMSlVCSUNBCitOQUhMT1ZTS0kgSk/FvUVGCitOQUpCQVVFUiBJVkFOCitOQUpEQU5PViBHRU9SR0kKK05BSkRBTk9WIElWQU4KK05BSkRFSyBWSU5LTworTkFKRE9WU0tJIFRPTUlTTEFWCitOQUpET1ZTS0kgVE9NSVNMQVYKK05BSknEhiBBTktJQ0EKK05BSknEhiBNSUxFTktPCitOQUpJxIYgWk9SSUNBCitOQUpWSVJUIEdPVEZSSUQKK05BSlZJUlQgSk9WQU4KK05BS0FSQURBIERBUklOS0EKK05BS0FSQURJxIYgTEpVQk8KK05BS0nEhiBEUkFHQU4KK05BS0nEhiBJVkFOCitOQUtJxIYgSkFOSkEKK05BS0nEhiBMSlVCSU5LQQorTkFLScSGIFJBRE9WQU4KK05BS0nEhiBTVEVWQU4KK05BS09NxIxJxIYgWk9SS0EKK05BS09WIEpPUkRBTgorTkFMScSGIERSQUdJQ0EKK05BTEnEhiBFTklTQQorTkFNRVNOSUsgT0xHQQorTkFNTEnEkEkgRkVSSURBCitOQU5BxaBJIMW9T0xUCitOQU5BxaBJIEFHQVRBCitOQU5BxaBJIEpVTElKQU5BCitOQU5JxIYgxJBPS0EKK05BTk9WU0tJIFZMQURJTUlSCitOQU5PVlNLSUogQUxFS1NBTkRBUgorTkFPRE9WScSGIFBBVkxFCitOQVJBSSBGRVJFTkMKK05BUkFOxIxJxIYgSUxPTktBCitOQVJBTsSMScSGIE1JTEUKK05BUkFOxIxJxIYgTUlMRQorTkFSQU7EjEnEhiBNSUxPUkFECitOQVJBTsSMScSGIE5BREEKK05BUkFOxIxJxIYgUEVUQVIKK05BUkFOxIxJxIYgUEVUQVIKK05BUkFOxIxJxIYgUEVUQVIKK05BUkFOxIxJxIYgUEVUQVIKK05BUkFOxIxJxIYgU0FWQQorTkFSQU7EjEnEhiBTVEVWQU4KK05BUkFOxIxJxIYgU1RFVkFOCitOQVJBTsSMScSGIFNVWkFOQQorTkFSQU7EjEnEhiBWTEFESU1JUgorTkFSQU5Exb1JxIYgREFSS08KK05BUkFORMW9ScSGIEVWQQorTkFSQU5Exb1JxIYgTUlMQU4KK05BUkFORMW9ScSGIE1JUkpBTkEKK05BUkFORMW9ScSGIFZFUkEKK05BUknEhiBORURFTEpLTworTkFTIMSQRVLEkAorTkFTIEZFUkVOQworTkFTIEZSQU5KQQorTkFTIEtBUkxPCitOQVNLT1ZJxIYgQkxBxb1BCitOQVNLT1ZJxIYgWk9SS0EKK05BU09WIE1JTElWT0oKK05BU1RBU0nEhiBEUkFHQU4KK05BU1RBU0nEhiBJVkFOCitOQVNUQVNJxIYgSkVMRU5BCitOQVNUQVNJxIYgTEpJTEpBTkEKK05BU1RBU0nEhiBQQVZMRQorTkFTVEFTScSGIFJBRE9TTEFWCitOQVNUQVNJxIYgU1RFVkFOIERSIExFS0FSCitOQVNUQVNJxIYgVEFUSkFOQQorTkFTVEFTScSGIFRFT0RPUgorTkFTVEFTSUpFVknEhiBNSVJPU0xBVgorTkFTVEFTT1ZJxIYgTUxBREVOCitOQVNUQVNPVknEhiBUT07EjEEKK05BU1RFVknEhiBUT0RPUgorTkFTVEnEhiBJUkVOQQorTkFTVEnEhiBMRVBPU0FWQQorTkFTVEnEhiBNSUhBSUxPCitOQVNUScSGIE1JTEVOQQorTkFTVEnEhiBNSUxJQ0EKK05BU1RJxIYgTUlSSkFOQQorTkFTVEnEhiBOSUtPTEVUQQorTkFTVEnEhiBPTEdBCitOQVNUScSGIFJBREUKK05BU1RJxIYgUkFESVNBVgorTkFTVEnEhiBSQURPTUlSCitOQVNUScSGIFJBVE9NSVIKK05BU1RJxIYgU1ZFVE9aQVIKK05BU1RJxIYgVkxBREEKK05BU1RJxIYgWk9SQU4gRFIgTEVLQVIKK05BU1RPViBLSVJPCitOQVNUT1ZTS0kgRFJBR08KK05BVE/FoEVWScSGIERFSkFOCitOQVVNT1YgxJBPUsSQRQorTkFVTU9WIEJSQU5LQQorTkFVTU9WIERSQUdPTEpVQgorTkFVTU9WIEtBVEFSSU5BCitOQVVNT1YgS0FUQVJJTkEKK05BVU1PViBNSUxFTkEKK05BVU1PViBNSUxJVk9KCitOQVVNT1YgU1RFVkFOCitOQVVNT1ZJxIYgSkVMSUNBCitOQVVNT1ZJxIYgTUlMSVZPSiBEUgorTkFVTU9WScSGIE5JS09MQQorTkFVTU9WScSGIFNMT0JPREFOCitOQVVNT1ZTS0kgTUlSS08KK05BVU1PVlNLSSBOSUtPTEEKK05BVU1PVlNLSSBTT05KQQorTkFVTU9WU0tJIFNUT0pBTgorTkFVTU9WU0tJIFRBTkFTCitOQVVOS09WScSGIEJPR0RBTktBCitOQVVOS09WScSGIFNJTknFoEEKK05BVkFMQSBOSUtPTEEKK05BVkFMVcWgScSGIEpVTElKQU5BCitOQVZBTFXFoEnEhiBWT0pJTgorTkFWUkFUSUwgxJBVUkEKK05BVlJBVElMIEpPU0lQCitOQVZSQVRJTCBKT1NJUAorTkFWUkFUSUwgU0xPQk9EQU4KK05BVlJBVElMIFpERU5LTworTkFWUkFUSUwgWk9SQU4KK05BWkRSQVZFQ0tJIEFORFJBxaAKK05FxIxPVlNLSSBESU1JVFJJSkUKK05FxaBFVknEhiBBTsSQRUxLQQorTkXFoEVWScSGIEFOxJBFTEtPCitORcWgScSGIEFDQQorTkXFoEnEhiBBTEVLU0FOREFSCitORcWgScSGIEFMRUtTQU5EQVIKK05FxaBJxIYgQk/FvUlEQVIKK05FxaBJxIYgQlJBTklTTEFWIERSCitORcWgScSGIEJSQU5JU0xBVgorTkXFoEnEhiBESU1JVFJJSkUKK05FxaBJxIYgRFXFoEFOCitORcWgScSGIEpFRlRBCitORcWgScSGIEpPVkFOCitORcWgScSGIEpPVkFOCitORcWgScSGIEpPVkFOCitORcWgScSGIEpPVkFOCitORcWgScSGIEtPU0FOQQorTkXFoEnEhiBMRU5LQQorTkXFoEnEhiBMRU9OSUQKK05FxaBJxIYgTEpJTEpBTkEKK05FxaBJxIYgTUFSSkFOCitORcWgScSGIE1JTEFOCitORcWgScSGIE1JTEFOCitORcWgScSGIE1JTEFOCitORcWgScSGIE1JTEVOS08KK05FxaBJxIYgTUlMSUNBCitORcWgScSGIE1JTElWT0oKK05FxaBJxIYgTUlMS0EKK05FxaBJxIYgTUlMT1JBRAorTkXFoEnEhiBNSVJBCitORcWgScSGIE1JUktPCitORcWgScSGIE1JUk9TTEFWQQorTkXFoEnEhiBNTEFERU4KK05FxaBJxIYgTUxBREVOCitORcWgScSGIE5FREVMSktPCitORcWgScSGIFBFVEFSCitORcWgScSGIFJBRElTQVYKK05FxaBJxIYgU0FWRVRBCitORcWgScSGIFNJTUVPTgorTkXFoEnEhiBTTEFWS08KK05FxaBJxIYgU0xBVk9KS0EKK05FxaBJxIYgVE9ET1IKK05FxaBJxIYgVkxBRElNSVIKK05FxaBJTiDFvUFSS08KK05FxaBJTiBKT1ZBTkEKK05FxaBJTiBKT1ZBTgorTkXFoElOIE1BUktPCitORcWgSU4gU1RFVkFOCitORcWgS09WIERSQUdPU0xBViBEUgorTkXFoEtPViBTVEFOSVNMQVYKK05FxaBLT1YgVk9KSVNMQVYKK05FxaBLT1ZJxIYgxJBVUsSQQQorTkXFoEtPVknEhiBBTEVLU0FOREFSCitORcWgS09WScSGIERSQUdBTgorTkXFoEtPVknEhiBJUkVOQQorTkXFoEtPVknEhiBKRUxFTkEKK05FxaBLT1ZJxIYgTEpVQknFoEEKK05FxaBLT1ZJxIYgTUlIQUlMTworTkXFoEtPVknEhiBNSUxBTgorTkXFoEtPVknEhiBNSUxJSkFOCitORcWgS09WScSGIE1JTElTQVYKK05FxaBLT1ZJxIYgTUlMSVZPSkUKK05FxaBLT1ZJxIYgTUlMS0EKK05FxaBLT1ZJxIYgTUlMT1ZBTgorTkXFoEtPVknEhiBNSVRBCitORcWgS09WScSGIE5FxaBLTworTkXFoEtPVknEhiBQRVJJQ0EKK05FxaBLT1ZJxIYgUEVUQVIKK05FxaBLT1ZJxIYgUkFESVNBVgorTkXFoEtPVknEhiBSQURPTUlSCitORcWgS09WScSGIFJBRE9OSkEKK05FxaBLT1ZJxIYgUkVKTU9ORAorTkXFoEtPVknEhiBSVcW9SUNBCitORcWgS09WScSGIFNURVZBTgorTkXFoEtPVknEhi1aRFJBVknEhiBWRVJJQ0EKK05FxaBPVknEhiBERVNBTktBCitORcWgT1ZJxIYgRFJBR0FOIERJUEwgSU5HCitORcWgT1ZJxIYgRFJBR0FOQQorTkXFoE9WScSGIERSQUdBTgorTkXFoE9WScSGIElWQU5LQQorTkXFoE9WScSGIE1JTE9WQU4KK05FxaBPVknEhiBQUkVEUkFHCitORcWgT1ZJxIYgUkFET01JUgorTkXFoE9WScSGIFJVxb1JQ0EKK05FxaBPVknEhiBUUklWS0EKK05FxaBUSUNLSSBKT1NJUAorTkXFoFRJQ0tJIEpPU0lQCitORcWgVElDS0kgTUlMSUNBCitORcWgVElDS0kgU1RFVkFOCitORcSGQUsgxJBPUsSQRQorTkXEhkFLIEFMRUtTQU5EQVIKK05FxIZBSyBCUkFOS08KK05FxIZBSy1LT1JBxIYgQU7EkEVMS0EKK05FxIZBSyBTVEVWQU4KK05FxIZBSyBWRVJBCitORcSGQUsgWkRSQVZLTworTkXEhkFLT1YgTUFSSUpBCitORcSGQUtPViBNSUxBTgorTkXEhkFLT1YgTUlMS0EKK05FxIZBS09WIFNJTUEKK05FxIZBS09WIFNMT0JPREFOCitORcW9ScSGIERBTUlSCitORUFUTklDQSBEVcWgQU4KK05FQVROSUNBIFJBRElWT0ogRElQTCBJTkcKK05FQkVTTkkgQk9SSVMKK05FQk9KxaBBIFNPRklKQQorTkVCUklHScSGIEpPVklDQQorTkVCUklHScSGIFJBVEtPCitORUNFViBEUkFHT0xKVUIKK05FQ0nEhiBEUkFHT0xKVUIKK05FQ0nEhiBUT8WgQQorTkVDSU4gxb1JVklDQQorTkVDSU4gU1RFVkEKK05FQ0lOIFZPSkEKK05FQ0lOIFpMQVRPTUlSCitORUNLT1YgRFJBR0lOSkEKK05FQ0tPViBHT1JBTgorTkVDS09WIEtBVElDQQorTkVDS09WIExBWkFSCitORUNLT1YgTE9aSU5LQQorTkVDS09WIE1BUklKQQorTkVDS09WIE1JUkpBTkEKK05FQ0tPViBNT03EjElMTworTkVDS09WIE5JS09MQQorTkVERUxKS09WIMW9SVZLTworTkVERUxKS09WIMW9SVZLTworTkVERUxKS09WIMSQT1LEkEUKK05FREVMSktPViDEkE9SxJBFCitORURFTEpLT1YgxJBPUsSQRQorTkVERUxKS09WIEFOxJBFTEtBCitORURFTEpLT1YgQU5LQQorTkVERUxKS09WIERFU0FOS0EKK05FREVMSktPViBEUkFHQU4KK05FREVMSktPViBEUkFHSU5KQQorTkVERUxKS09WIERVxaBBTgorTkVERUxKS09WIElMSUpBCitORURFTEpLT1YgSVJFTkEKK05FREVMSktPViBJVkFOCitORURFTEpLT1YgSkVMRU5BCitORURFTEpLT1YgSk9WQU4KK05FREVMSktPViBKT1ZBTgorTkVERUxKS09WIEpVTElKQU5BCitORURFTEpLT1YgS0FUSUNBCitORURFTEpLT1YgS1JTVEEKK05FREVMSktPViBMQVpBUiBESVBMIElORworTkVERUxKS09WIExJTkEKK05FREVMSktPViBMSklMSkFOQQorTkVERUxKS09WIExKVUJJQ0EKK05FREVMSktPViBMSlVCSUNBCitORURFTEpLT1YgTUFSSUpBCitORURFTEpLT1YgTUFSSUpBCitORURFTEpLT1YgTUFSS08KK05FREVMSktPViBNSUxBTgorTkVERUxKS09WIE1JTEFOCitORURFTEpLT1YgTUlMSVZPSgorTkVERUxKS09WIE1JTE/FoAorTkVERUxKS09WIE1JUkpBTkEKK05FREVMSktPViBNSVJLTworTkVERUxKS09WIE1JUk9TTEFWQQorTkVERUxKS09WIE1JVEEKK05FREVMSktPViBPTEdBCitORURFTEpLT1YgT0xHQQorTkVERUxKS09WIFJBREUKK05FREVMSktPViBSQURJVk9KCitORURFTEpLT1YgUkFET0pLQQorTkVERUxKS09WIFJBRE9NSVIKK05FREVMSktPViBTSU5JxaBBCitORURFTEpLT1YgU1RFVkFOCitORURFTEpLT1YgVEVPRE9SQQorTkVERUxKS09WIFRPTUlTTEFWCitORURFTEpLT1YgVklOS0EKK05FREVMSktPViBWT0pJU0xBVgorTkVERUxKS09WScSGIMW9SVZLTworTkVERUxKS09WScSGIMW9SVZLTworTkVERUxKS09WScSGIMW9SVZLTworTkVERUxKS09WScSGIMW9SVZPSklOCitORURFTEpLT1ZJxIYgxJBPUsSQRQorTkVERUxKS09WScSGIMSQT1LEkEUKK05FREVMSktPVknEhiBBTEVLU0FOREFSCitORURFTEpLT1ZJxIYgQUxFS1NBTkRBUgorTkVERUxKS09WScSGIEFORFJJSkEKK05FREVMSktPVknEhiBCT0dPTUlSCitORURFTEpLT1ZJxIYgQk9SSVNMQVYgRElQTCBJTkcKK05FREVMSktPVknEhiBCT1JLQQorTkVERUxKS09WScSGIEJPU0lMSktBCitORURFTEpLT1ZJxIYgREFSSU5LQQorTkVERUxKS09WScSGIERPQlJJTEEKK05FREVMSktPVknEhiBET0JSSU5LQQorTkVERUxKS09WScSGIERSQUdBTgorTkVERUxKS09WScSGIEpBRFJBTktBCitORURFTEpLT1ZJxIYgSkVMRU5BCitORURFTEpLT1ZJxIYgSk9SREFOCitORURFTEpLT1ZJxIYgSk9WQU4KK05FREVMSktPVknEhiBKT1ZBTgorTkVERUxKS09WScSGIEpVR09TTEFWCitORURFTEpLT1ZJxIYgSlVMS0lDQQorTkVERUxKS09WScSGIEpVU1RBCitORURFTEpLT1ZJxIYgTEVQT1NBVkEKK05FREVMSktPVknEhiBMSlVCT01JUgorTkVERUxKS09WScSGIE1BUktPCitORURFTEpLT1ZJxIYgTUlMQU4KK05FREVMSktPVknEhiBNSUxBTgorTkVERUxKS09WScSGIE1JTEFOCitORURFTEpLT1ZJxIYgTUlMRU5LTworTkVERUxKS09WScSGIE1JTElKQQorTkVERUxKS09WScSGIE1JTElTQVYKK05FREVMSktPVknEhiBNSUxPSktBCitORURFTEpLT1ZJxIYgTUlMT0pLQQorTkVERUxKS09WScSGIE1JTFVUSU4KK05FREVMSktPVknEhiBNSVJKQU5BCitORURFTEpLT1ZJxIYgTUlST1NMQVYKK05FREVMSktPVknEhiBNSVJPU0xBVgorTkVERUxKS09WScSGIE5FQk9KxaBBCitORURFTEpLT1ZJxIYgTklLT0xBCitORURFTEpLT1ZJxIYgUEFWQQorTkVERUxKS09WScSGIFJBRE9KSUNBCitORURFTEpLT1ZJxIYgUkFET01JUgorTkVERUxKS09WScSGIFJBRE9WQU4KK05FREVMSktPVknEhiBTSU1BCitORURFTEpLT1ZJxIYgU0lNQQorTkVERUxKS09WScSGIFNMQVZLTworTkVERUxKS09WScSGIFNMT0JPREFOS0EKK05FREVMSktPVknEhiBTTE9CT0RBTktBCitORURFTEpLT1ZJxIYgU0xPQk9EQU4KK05FREVMSktPVknEhiBTT0ZJSkEKK05FREVMSktPVknEhiBTUkVUQQorTkVERUxKS09WScSGIFNUQU5JTUlSCitORURFTEpLT1ZJxIYgU1RFVkFOCitORURFTEpLT1ZJxIYgU1RFVkFOCitORURFTEpLT1ZJxIYgU1RFVkFOCitORURFTEpLT1ZJxIYgU1ZFVElTTEFWCitORURFTEpLT1ZJxIYgU1ZFVElTTEFWCitORURFTEpLT1ZJxIYgU1ZFVE9aQVIKK05FREVMSktPVknEhiBWRVJBCitORURFTEpLT1ZJxIYgVkVSSUNBCitORURFTEpLT1ZJxIYgVkxBRElTTEFWIERSCitORURFTEpLT1ZJxIYgVk9KSVNMQVYKK05FREVMSktPVknEhiBWVcSMS08KK05FREVMSktPVknEhiBaQUdPUktBCitORURFTEpLT1ZJxIYgWkxBVEEKK05FREnEhiDFoFBJUk8KK05FREnEhiBCSUxKQU5BCitORURJxIYgQk9SSVNMQVYKK05FREnEhiBCT1JKQU5LQQorTkVEScSGIERBUklOS0EKK05FREnEhiBERVNBTktBIFBST0ZFU09SCitORURJxIYgRFJBR09TTEFWCitORURJxIYgSkVMRU5BCitORURJxIYgSkVMSVNBVkVUQQorTkVEScSGIEpPVkFOIERJUEwgSU5HCitORURJxIYgSk9WQU4KK05FREnEhiBLQVRJQ0EKK05FREnEhiBLQVRJQ0EKK05FREnEhiBMQVpBUgorTkVEScSGIExBWkFSCitORURJxIYgTEFaQVIKK05FREnEhiBMQVpBUgorTkVEScSGIExKVUJJQ0EKK05FREnEhiBNRUxBTklKQQorTkVEScSGIE1JTEFOCitORURJxIYgTUlMQU4KK05FREnEhiBNSUxBTgorTkVEScSGIE1JTEVOS08KK05FREnEhiBNSUxPxaAKK05FREnEhiBNSUxPSkUKK05FREnEhiBNSUxPVkFOCitORURJxIYgTUlST1NMQVYKK05FREnEhiBNTEFERU4KK05FREnEhiBORU5BRAorTkVEScSGIE5JS09MQQorTkVEScSGIFBFVEFSCitORURJxIYgUkFET8WgCitORURJxIYgUkFET01JUgorTkVEScSGIFJBRE9TTEFWCitORURJxIYgUkFET1NMQVYKK05FREnEhiBTQVZBCitORURJxIYgU01JTEpBCitORURJxIYgU05Fxb1BTkEKK05FREnEhi1TUkVNQUMgTkFEQQorTkVEScSGIFNURVZBTgorTkVEScSGIFZFUkEKK05FREnEhiBWSURBCitORURJxIYgVkxBRElNSVIKK05FREnEhiBaTEFUT0pFCitORURJxIYgWk9SQU4KK05FRElNT1ZJxIYgQk/FvU8KK05FRElNT1ZJxIYgRFJBR0FOCitORURJTU9WScSGIEdPUkRBTkEKK05FRElOScSGIFNSRVRFTgorTkVESU5JxIYgWk9SQU4KK05FRE9NQcSMS0kgTUlMQU4KK05FRE9NQcSMS0kgU1RFVkFOCitORURPVknEhiBBTktJQ0EKK05FRE9WScSGIE1JUk8KK05FRE9WScSGIE1JUk8KK05FRE9WScSGIFZMQURPCitORURVxIxJxIYgU1ZFVE9aQVIKK05FRFXEjElOIEFMRUtTQU5EQVIKK05FRFXEjElOIERSQUdJQ0EKK05FRFXEjElOIExBWkFSIERJUEwgSU5HCitORURVxIxJTiBNSUxFTkEKK05FRFZJREVLIEJPUklTIERSCitORUdMScSGIMSQT1LEkEUKK05FR0xJxIYgS0FUSUNBCitORUdPVkFOT1ZJxIYgxb1JVktPCitORUdPVkFOT1ZJxIYgQlJBTktPCitORUdPVkFOT1ZJxIYgTEFaQVIKK05FR1JVIEJJU0VSS0EKK05FR1XFoEVWScSGIFBBSkEKK05FSkdFQkFVRVIgQUxFS1NBTkRBUiBEUiBQUk9GCitORU3EjEFOSU4gxJBVUsSQSUNBCitORU3EjEFOSU4gTUFSSUpBCitORU3EjEFOSU4gTUlSSkFOQQorTkVNxIxFViBCT1JJVk9KCitORU3EjEVWIERVxaBLTworTkVNxIxFViBKRUxFTkEKK05FTcSMRVYgTklLT0xBCitORU3EjEVWIFNSQklOS08KK05FTcSMRVZJxIYgTUFSS08KK05FTcSMRVZJxIYgUEVUQVIKK05FTUEgVkFMRVJJSkEKK05FTUXEjEVLIFJPxb1BCitORU1FxaAgSkVMQQorTkVNRcWgIFNMT0JPREFOS0EKK05FTUVDIEFOVFVOCitORU1FQyBBTlRVTgorTkVNRUMgRU1BTlVFTAorTkVNRUMgTEpVRE1JTEEKK05FTUVUIMWgQU5ET1IKK05FTUVUIEFORFJJSkEKK05FTUVUIEFOVEFMCitORU1FVCBBTlRBTAorTkVNRVQgQU5UQUwKK05FTUVUIEFSUEFECitORU1FVCBCT1JJU0xBVktBCitORU1FVCBERcW9RQorTkVNRVQgREVKQU4KK05FTUVUIEVSTkVTVAorTkVNRVQgR0VSR0VMSgorTkVNRVQgR0VaQSBEUgorTkVNRVQgR0VaQQorTkVNRVQgScWgVFZBTgorTkVNRVQgScWgVFZBTgorTkVNRVQgScWgVFZBTgorTkVNRVQgSUxPTkEKK05FTUVUIElMT05BCitORU1FVCBJTE9OS0EKK05FTUVUIEpVTElKQU5BCitORU1FVCBLQVJMTworTkVNRVQgS0FSTE8KK05FTUVUIEtBVElDQQorTkVNRVQgTEFKT8WgCitORU1FVCBMQVNMTworTkVNRVQgTEFTTE8KK05FTUVUIExKSUxKQU5BCitORU1FVCBNQVJJSkFOQQorTkVNRVQgTUFSSUpBCitORU1FVCBNQVJJSkEKK05FTUVUIE1JSEFMSgorTkVNRVQgTUlMS0EKK05FTUVUIE1JUkpBTkEKK05FTUVULU1VxIxJIE1BUklKQQorTkVNRVQgT0xJVkVSQQorTkVNRVQgT1RPCitORU1FVCBQRVRBUgorTkVNRVQgUk9aQUxJSkEKK05FTUVUIFJVRE9MRgorTkVNRVQgU1RFVkFOCitORU1FVCBTVE9KQU5LQQorTkVNRVQgVElCT1IKK05FTUVUIFZJT0xFVEEKK05FTUVUIFpPTFRBTgorTkVNRVQgWk9MVEFOCitORU1FVEggSVJFTkEKK05FTkFEIFNJTU8KK05FTkFEScSGIE1JTEFOCitORU5BREnEhiBNSUxFTktPCitORU5BREnEhiBNSUxPUkFECitORU5BREnEhiBSQVRLTworTkVOQURPViDFvUlWS08KK05FTkFET1YgQU1BTElKQQorTkVOQURPViBBTktBCitORU5BRE9WIEJSQU5JU0xBVgorTkVOQURPViBEUkFHT01JUgorTkVOQURPViBKRVZST1NJTUEKK05FTkFET1YgS0FNRU5LTworTkVOQURPViBLT1NUQSBESVBMIElORworTkVOQURPViBNSUxFTktPCitORU5BRE9WIE1JTEVOS08KK05FTkFET1YgT0xHQQorTkVOQURPViBQRVRBUgorTkVOQURPViBSQUpLTworTkVOQURPViBTVEVWQU4KK05FTkFET1YgVk9KSVNMQVYKK05FTkFET1ZJxIYgQk9SSVNMQVYKK05FTkFET1ZJxIYgREFOSUNBCitORU5BRE9WScSGIERSQUdJQ0EKK05FTkFET1ZJxIYgRFXFoEFOCitORU5BRE9WScSGIEpVTEtJQ0EKK05FTkFET1ZJxIYgTUlIQUpMTworTkVOQURPVknEhiBNSUxFTktPIERSCitORU5BRE9WScSGIE1JVEFSCitORU5BRE9WScSGIFBBTlRBCitORU5BRE9WScSGIFBFVEFSCitORU5BRE9WScSGIFNMQVZOQQorTkVOQURPVknEhiBTTE9CT0RBTgorTkVOQURPVknEhiBWQVNJTElKRQorTkVORVpJxIYgxJBPUsSQRQorTkVORVpJxIYgREFSS08KK05FTkVaScSGIE1JUk9TTEFWCitORU5FWknEhiBSQURFTktPCitORU5FWknEhiBSQURJU0FWCitORU5JxIYgxJBPUsSQRQorTkVOScSGIEJSQU5JTUlSCitORU5JxIYgU0FWQQorTkVOScSGIFZFUkEKK05FTknEhiBWRVJJQ0EKK05FTklOIMW9SVZLTworTkVOSU4gREVKQU4KK05FTklOIERSQUdJTkpBCitORU5JTiBEUkFHT01JUgorTkVOSU4gSkFTRU5LQQorTkVOSU4gTEVOS0EKK05FTklOIE1BUkEKK05FTklOIE1JTEFOCitORU5JTiBNSUxJQ0EKK05FTklOIE1JTElDQQorTkVOSU4gTUlMT1JBRAorTkVOSU4gTUlSS08KK05FTklOIFJBSktPCitORU5JTiBTQVZBCitORU5JTiBTTEFWS08KK05FTklOIFRPTUlTTEFWCitORU5JTiBWQVNBCitORU9GSVRPVknEhiBERUpBTgorTkVQSUwgQU5UVU4KK05FUE9LT0rEjElDS0kgQUxFS1NBTkRBUgorTkVSQSBPUkxFQU5BCitORVJBQyBNTEFESU5LTworTkVSQUMgUEVSTworTkVSQUMgU0xPQk9EQU4KK05FUkFOxIxJxIYgTklLT0xBCitORVJBTkTFvUnEhiBCT8WgS08KK05FUkFORMW9ScSGIEJSQU5JU0xBVgorTkVSQU5Exb1JxIYgSkFTTUlOQQorTkVSQU5Exb1JxIYgTUFLU0lNCitORVJBTkTFvUnEhiBORVZFTktBCitORVJBTkTFvUnEhiBTVE9KQU5LQQorTkVSRVIgxJBVUkEKK05FUkVSIEFMRUtTQU5EQVIKK05FUlRJQ0EgU1RFVkFOCitORVNLQUxJxIYgRVZHRU5JSkUKK05FU0tBTEnEhiBMRU9OQVJETworTkVTVE9ST1Ygxb1FTEpLTworTkVTVE9ST1YgQUxFS1NBTkRBUgorTkVTVE9ST1YgRFJBR09MSlVCCitORVNUT1JPViBMQVpBUgorTkVTVE9ST1YgTUlMQU4gRElQTCBJTkcKK05FU1RPUk9WIE1JUktPCitORVNUT1JPViBTTE9CT0RBTgorTkVTVE9ST1ZJxIYgxb1JVk9UQQorTkVTVE9ST1ZJxIYgQklMSkFOQQorTkVTVE9ST1ZJxIYgQkxBR09KRQorTkVTVE9ST1ZJxIYgQk9KQU5BCitORVNUT1JPVknEhiBCT1JJUworTkVTVE9ST1ZJxIYgRFJBR0FOCitORVNUT1JPVknEhiBEUkFHT0xKVUIKK05FU1RPUk9WScSGIERSQUdVVElOCitORVNUT1JPVknEhiBEVcWgQU5LQQorTkVTVE9ST1ZJxIYgR0FWUkEKK05FU1RPUk9WScSGIElTQQorTkVTVE9ST1ZJxIYgTEpJTEpBTkEKK05FU1RPUk9WScSGIE1JTEUKK05FU1RPUk9WScSGIE5BREEKK05FU1RPUk9WScSGIE5BREXFvURBCitORVNUT1JPVknEhiBSQURNSUxBCitORVNUT1JPVknEhiBSQURPVkFOCitORVNUT1JPVknEhiBTQVZBCitORVNUT1JPVknEhiBTTEFWSUNBCitORVNUT1JPVknEhiBTTE9CT0RBTgorTkVTVE9ST1ZJxIYgVkxBRElNSVIKK05FU1RPUk9WScSGIFZMQURJTUlSCitORVZBSkRJxIYgVkVMSU1JUgorTkVWSURPVsSMScSGIExKVUJJQ0EKK05FVklET1bEjEnEhiBNSUxLQQorTkVWSURPVsSMScSGIFNBVkEKK05FVk9MScSGIEFOSUNBCitORVpJUkkgQVJJRgorTkVaSVJPViBBTEpJTEoKK05FWklST1YgVkVMScSMS08KK05JxIxJxIYgTkFEQQorTknEjEnEhiBQUkVEUkFHCitOScWgQVZJxIYgS1JJU1RJTkEKK05JxaBBVknEhiBNSUxVVElOCitOScWgQVZJxIYgUEFWTEUKK05JxaBBVknEhiBSQURPU0xBVgorTknFoEVWScSGIMSQT1LEkEUKK05JxaBFVknEhiDEkFVSQQorTknFoEVWScSGIEpPVklDQQorTknFoEVWScSGIEtBVElDQQorTknFoEVWScSGIE9MR0EKK05JxaBFVknEhiBTQVZBCitOScWgScSGIERSQUdBTgorTknFoEnEhiBNTEHEkEVOCitOScWgS0FOT1ZJxIYgQk/FoEtPCitOScWgS0FOT1ZJxIYgTEpVUEtPCitOScWgS0FOT1ZJxIYgTUlSS08KK05JxIZFVEnEhiBMSlVCT01JUgorTknEhkVUScSGIE1JUkEKK05JxIZJRk9ST1ZJxIYgSk9WQU4KK05JxIZJRk9ST1ZJxIYgUEVSQQorTknEhklGT1JPVknEhiBQRVRBUgorTknEhklGT1JPVknEhiBURU9ET1IKK05JxIZJTiDEkE9SxJBFCitOScSGSU4gQUxFS1NBTkRBUgorTknEhklOIEJSQU5JU0xBVgorTknEhklOIERPTktBCitOScSGSU4gRFXFoEtPCitOScSGSU4gTUlST1NMQVYKK05JxIZJTiBORVZFTktBCitOScSGSU4gTknEhklGT1IgRElQTCBJTkcKK05JxIZJTiBTTkXFvUFOQQorTknEhklOIFNPRklKQQorTknEhklOIFNWRVRPWkFSCitOScSGSU4gVkFTSUxJSkUKK05JxIZJTiBWRVJJQ0EKK05JxIZJTiBaT1JBCitOSUNJxIYgREFSS08KK05JREVSTEVOREVSIMSQT1LEkEUKK05JREVSTEVOScSGIFpPUkFOQQorTklKRU3EjEVWScSGIE5JS09MQQorTklLxIxFVknEhiBCT8WgS08KK05JS8SMRVZJxIYgSk9WQU4KK05JS8SMRVZJxIYgTEpVQk9NSVIKK05JS8SMRVZJxIYgTU9NTworTklLxIxFVknEhiBSQVRLTworTklLxIxFVknEhiBTVEFOQQorTklLxaBJxIYgxb1JVktPCitOSUvFoEnEhiDEkFVSQQorTklLxaBJxIYgQ1ZFVE9aQVIKK05JS8WgScSGIERBUktPCitOSUvFoEnEhiBEUkFHSU5KQQorTklLxaBJxIYgRFJBR09MSlVCCitOSUvFoEnEhiBEVcWgQU5LQQorTklLxaBJxIYgRlJBTkpBCitOSUvFoEnEhiBJU0EKK05JS8WgScSGIEpVTElKQQorTklLxaBJxIYgTUlMQU4KK05JS8WgScSGIE1JUktPCitOSUvFoEnEhiBNTEFERU4KK05JS8WgScSGIFNURVZBTgorTklLxaBJxIYgVkVTTkEKK05JS0HEjEVWIFJBRE9WQU4KK05JS0HEjEVWIFJBRE9WQU4KK05JS0HEjEVWScSGIE1JSE9WSUwKK05JS0HEjEVWScSGIFJBRE9NQU4KK05JS0HFoElOT1ZJxIYgTEpJTEpBTkEKK05JS0HFoElOT1ZJxIYgTEpVQklDQQorTklLRVRJxIYgR09SREFOQQorTklLRVRJxIYgR09TUEFWQQorTklLRVRJxIYgSkVGVEEKK05JS0VUScSGIEtBVElDQQorTklLRVRJxIYgTkVCT0rFoEEgRFIKK05JS0VUScSGIFBFVEFSCitOSUtFVEnEhiBTQcWgQQorTklLRVRJxIYgU0lNQQorTklLRVRJxIYgU0xPQk9EQU4KK05JS0VUScSGIFZMQURJTUlSCitOSUtFWknEhiBNSUxBCitOSUtFWknEhiBQRVRBUgorTklLRVpJxIYgUk9LU0FOREEKK05JS0nEhiBCUkFOSVNMQVZBCitOSUtJxIYgQlJBTklTTEFWCitOSUtJxIYgQlVESU1JUgorTklLScSGIERBSkFOQQorTklLScSGIERSQUdBTgorTklLScSGIEpPVkFOS0EKK05JS0nEhiBKT1ZPCitOSUtJxIYgSk9WTworTklLScSGIEtBVElDQQorTklLScSGIExBWkFSCitOSUtJxIYgTUFSSU5LTworTklLScSGIE1JTEFOCitOSUtJxIYgTUlMRQorTklLScSGIE1JTFVUSU4KK05JS0nEhiBNSU9EUkFHCitOSUtJxIYgTUlSSkFOQQorTklLScSGIE5BREEKK05JS0nEhiBOQVRBxaBBCitOSUtJxIYgTkVWRU5LQQorTklLScSGIFJBRE1JTEEKK05JS0nEhiBSQURPTUlSCitOSUtJxIYgUkFET01JUgorTklLScSGIFJBRE9NSVIKK05JS0nEhiBTQU5KQQorTklLScSGIFNBVkEKK05JS0nEhiBWTEFESU1JUgorTklLScSGIFpEUkFWS08KK05JS0nEhiBaTEFUQQorTklLScSGIFpPUkEKK05JS0nEhiBaT1JLQQorTklLSU4gQk9SSVNMQVYKK05JS0lOIFJBRE9NSVIKK05JS0lOIFZFUkEKK05JS0lUScWgSU4gTkFEQQorTklLSVRPVknEhiDEjEVET01JUgorTklLSVRPVknEhiBBTEVLU0FOREFSCitOSUtJVE9WScSGIEFOR0VMSU5BCitOSUtJVE9WScSGIEJPxb1PCitOSUtJVE9WScSGIERVxaBBTgorTklLSVRPVknEhiBEVcWgQU4KK05JS0lUT1ZJxIYgTUlIQUpMTworTklLSVRPVknEhiBNSUxJSkFOS0EKK05JS0lUT1ZJxIYgUkFEQQorTklLSVRPVknEhiBSQURPSklDQQorTklLSVRPVknEhiBTTE9CT0RBTgorTklLT8SMRVYgWk9SSUNBCitOSUtPRElKRVZJxIYgRFXFoEFOCitOSUtPRElKRVZJxIYgRU5FU0EKK05JS09ESUpFVknEhiBSQURPSktPCitOSUtPRElKRVZJxIYgUkFUT01JUgorTklLT0RJTk9WU0tJIFNUT0pBTiBESVBMIElORworTklLT0zEjEnEhiBCTEHFvU8KK05JS09MxIxJxIYgRFJBR0FOCitOSUtPTMSMScSGIFNWRVRMQU5BCitOSUtPTMSMSU4gTUlMT8WgCitOSUtPTMSMSU4gTUlSSkFOQQorTklLT0xBxaBFViBCT1JJVk9KCitOSUtPTEHFoEVWIEpPVkEKK05JS09MQcWgRVYgTEpVQk9NSVIKK05JS09MQcWgRVYgTUFUSUxEQQorTklLT0xBxaBFViBOQURBCitOSUtPTEFKRVYgSkVMRU5BCitOSUtPTEFKRVYgTEFaQVIKK05JS09MQUpFViBNSUxJQ0EKK05JS09MQUpFVknEhiBESU1JVFJJSkUKK05JS09MQUpFVknEhiBEVcWgQU4KK05JS09MQUpFVknEhiBJUkVOQQorTklLT0xBSkVWScSGIE1JTElWT0ogQUtBREVNU0tJIFNMSUtBUgorTklLT0xBSkVWScSGIE5JS09MQQorTklLT0xBSkVWScSGIFJBRElWT0oKK05JS09MQUpFVknEhiBWT0pJU0xBVgorTklLT0xBSkVWU0tJIEFMRUtTQU5EQVIKK05JS09MRVRJxIYgQk9SQQorTklLT0xFVEnEhiBEUkFHQU4KK05JS09MRVRJxIYgRFXFoEFOS0EKK05JS09MRVRJxIYgRFXFoEFOCitOSUtPTEVUScSGIERVxaBBTgorTklLT0xFVEnEhiBKT1ZBTktBCitOSUtPTEVUScSGIEpPVkFOCitOSUtPTEVUScSGIEpPVkFOCitOSUtPTEVUScSGIEpPVkFOCitOSUtPTEVUScSGIEpPVkFOCitOSUtPTEVUScSGIE1JTEFOCitOSUtPTEVUScSGIE1JTE/FoAorTklLT0xFVEnEhiBNSUxPVkFOCitOSUtPTEVUScSGIFNJTU8KK05JS09MRVRJxIYgU1RFVkFOCitOSUtPTEVUScSGIFNWRVRPWkFSCitOSUtPTEVUScSGIFZJRAorTklLT0xFVEnEhiBaT1JBTgorTklLT0xJxIxJTiBCUkFOS08KK05JS09MScSMSU4gREFOSUxPCitOSUtPTEnEjElOIFpPUkFOCitOSUtPTEnFoCBEUkFHVVRJTgorTklLT0xJxaAgRVZJQ0EKK05JS09MScWgIE1JTEFOCitOSUtPTEnEhi3EjEFOSkkgQkFSQkFSQQorTklLT0xJxIYtxaBJS09QQVJJSkEgTkVWRU5LQQorTklLT0xJxIYgxIZJUklMTworTklLT0xJxIYgxb1BUktPCitOSUtPTEnEhiDFvUFSS08KK05JS09MScSGIMW9QVJLTworTklLT0xJxIYgxb1BUktPCitOSUtPTEnEhiDFvUlWQU4KK05JS09MScSGIMW9SVZBTgorTklLT0xJxIYgxb1JVkFOCitOSUtPTEnEhiDFvUlWQU4KK05JS09MScSGIMW9SVZBCitOSUtPTEnEhiDFvUlWS0EKK05JS09MScSGIMW9SVZLQQorTklLT0xJxIYgxb1JVktPCitOSUtPTEnEhiDFvUlWS08KK05JS09MScSGIMW9SVZPUkFECitOSUtPTEnEhiDFvUlWT1JBRAorTklLT0xJxIYgxb1JVk9SQUQKK05JS09MScSGIMW9SVZPVEEKK05JS09MScSGIMW9SVZPVEEKK05JS09MScSGIMSQT1LEkEUgUFJPRkVTT1IKK05JS09MScSGIMSQT1LEkEUKK05JS09MScSGIMSQT1LEkEUKK05JS09MScSGIMSQT1LEkEUKK05JS09MScSGIMSQT1LEkEUKK05JS09MScSGIMSQT1LEkEUKK05JS09MScSGIMSQT1LEkEUKK05JS09MScSGIMSQT1LEkEUKK05JS09MScSGIMSQVVLEkElOS0EKK05JS09MScSGIMSQVVLEkElOS0EKK05JS09MScSGIMSQVVJBCitOSUtPTEnEhiDEkFVSQQorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYgQUxFS1NBTkRBUgorTklLT0xJxIYtQUxFS1NPVlNLSSBTTEFWSUNBCitOSUtPTEnEhiBBTkEKK05JS09MScSGIEFORFJJSkEKK05JS09MScSGIEFOS0EKK05JS09MScSGIEFOS0lDQQorTklLT0xJxIYtQkFKxaBFViBTVEFOS0EKK05JS09MScSGIEJJTEpBTkEKK05JS09MScSGIEJJU0VSS0EKK05JS09MScSGIEJPxaBLTworTklLT0xJxIYgQk/FoEtPCitOSUtPTEnEhiBCT8WgS08KK05JS09MScSGIEJPxb1JREFSCitOSUtPTEnEhiBCT8W9SURBUgorTklLT0xJxIYgQk/FvUlEQVIKK05JS09MScSGIEJPxb1JREFSCitOSUtPTEnEhiBCT8W9TworTklLT0xJxIYgQk9HREFOCitOSUtPTEnEhiBCT0pLQQorTklLT0xJxIYgQk9SQQorTklLT0xJxIYgQk9SQQorTklLT0xJxIYgQk9SSVNMQVYKK05JS09MScSGIEJPUklTTEFWCitOSUtPTEnEhiBCT1JJU0xBVgorTklLT0xJxIYgQk9SSVZPSkUKK05JS09MScSGIEJPUklWT0oKK05JS09MScSGIEJSQU5JU0xBVgorTklLT0xJxIYgQlJBTklTTEFWCitOSUtPTEnEhiBCUkFOSVNMQVYKK05JS09MScSGIEJSQU5JU0xBVgorTklLT0xJxIYgQlJBTklTTEFWCitOSUtPTEnEhiBCUkFOSVNMQVYKK05JS09MScSGIEJSQU5LTworTklLT0xJxIYgQlJBTktPCitOSUtPTEnEhiBCUkFOS08KK05JS09MScSGIEJVRElNSVIKK05JS09MScSGIENWRVRBTktBCitOSUtPTEnEhiBDVklKRVRBCitOSUtPTEnEhi1Exb1BVkVSIElWQU4gRElQTCBJTkcKK05JS09MScSGIERBTUpBTgorTklLT0xJxIYgREFNSkFOCitOSUtPTEnEhiBEQU5BCitOSUtPTEnEhiBEQU5JQ0EKK05JS09MScSGIERBTklDQQorTklLT0xJxIYgREFOSUNBCitOSUtPTEnEhiBEQU5JRUwKK05JS09MScSGIERBTklKRUwKK05JS09MScSGIERBTklMTworTklLT0xJxIYgREFOSUxPCitOSUtPTEnEhiBEQU5LTworTklLT0xJxIYgREFSSU5LQQorTklLT0xJxIYgREFWT1JJTgorTklLT0xJxIYgREVKQU4KK05JS09MScSGIERFU0FOS0EKK05JS09MScSGIERJTUlUUklKRQorTklLT0xJxIYgRE9CUklWT0pFCitOSUtPTEnEhiBEUkHFoEtPCitOSUtPTEnEhiBEUkFHQU5BCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQQorTklLT0xJxIYgRFJBR0lDQQorTklLT0xJxIYgRFJBR0lDQQorTklLT0xJxIYgRFJBR0lDQQorTklLT0xJxIYgRFJBR09MSlVCCitOSUtPTEnEhiBEUkFHT0xKVUIKK05JS09MScSGIERSQUdPTEpVQgorTklLT0xJxIYgRFJBR09MSlVCCitOSUtPTEnEhiBEUkFHT01JUgorTklLT0xJxIYgRFJBR09NSVIKK05JS09MScSGIERSQUdPTUlSCitOSUtPTEnEhiBEUkFHT1NMQVYKK05JS09MScSGIERSQUdPCitOSUtPTEnEhiBEUkFHVVRJTgorTklLT0xJxIYgRFXFoEFOIERJUEwgSU5HCitOSUtPTEnEhiBEVcWgQU5LQQorTklLT0xJxIYgRFXFoEFOS0EKK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBLTworTklLT0xJxIYgRU1JTElKQQorTklLT0xJxIYgRU1JTAorTklLT0xJxIYgR09SREFOQQorTklLT0xJxIYgR09SREFOQQorTklLT0xJxIYgR09SREFOQQorTklLT0xJxIYgSElMREEKK05JS09MScSGIEhSSVNUSU5BCitOSUtPTEnEhiBJTElKQQorTklLT0xJxIYgSVNJRE9SCitOSUtPTEnEhiBJVkFOS0EKK05JS09MScSGIElWQU4KK05JS09MScSGIElWTworTklLT0xJxIYgSkFWT1JLQQorTklLT0xJxIYgSkVGVEEKK05JS09MScSGIEpFRlRJTUlSCitOSUtPTEnEhiBKRUZUSU1JUgorTklLT0xJxIYgSkVMRU5BCitOSUtPTEnEhiBKRUxFTkEKK05JS09MScSGIEpFTEtBCitOSUtPTEnEhiBKRUxLQQorTklLT0xJxIYgSk9DQQorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZJQ0EKK05JS09MScSGIEpVTElKQU5BCitOSUtPTEnEhiBKVUxLQQorTklLT0xJxIYgS0FUQVJJTkEKK05JS09MScSGIEtBVElDQQorTklLT0xJxIYgS0FUSUNBCitOSUtPTEnEhiBLQVRJQ0EKK05JS09MScSGIEtPU1RBRElOCitOSUtPTEnEhiBLT1NUQQorTklLT0xJxIYgS1JTVEEgRFIKK05JS09MScSGIEtSU1RBCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExKSUxKQU5BCitOSUtPTEnEhiBMSklMSkFOQQorTklLT0xJxIYgTEpJTEpBTkEKK05JS09MScSGIExKVUJJQ0EKK05JS09MScSGIExKVUJJQ0EKK05JS09MScSGIExKVUJJQ0EKK05JS09MScSGIExKVUJJQ0EKK05JS09MScSGIExVSlpBCitOSUtPTEnEhiBMVUtBCitOSUtPTEnEhiBNQU5PSkxPCitOSUtPTEnEhiBNQVJBCitOSUtPTEnEhiBNQVJBCitOSUtPTEnEhiBNQVJBCitOSUtPTEnEhiBNQVJHSVRBCitOSUtPTEnEhiBNQVJHSVRBCitOSUtPTEnEhiBNQVJJQ0EKK05JS09MScSGIE1BUklKQQorTklLT0xJxIYgTUFSSUpBCitOSUtPTEnEhiBNQVJJSkEKK05JS09MScSGIE1BUklKQQorTklLT0xJxIYgTUFSS08KK05JS09MScSGIE1BUktPCitOSUtPTEnEhiBNQVJLTworTklLT0xJxIYgTUVMQU5JSkEgU1RPTUFUT0xPRworTklLT0xJxIYgTUVMQU5JSkEKK05JS09MScSGIE1JSEFKTE8KK05JS09MScSGIE1JSEFKTE8KK05JS09MScSGIE1JSEFKTE8KK05JS09MScSGIE1JTEHFoElOCitOSUtPTEnEhiBNSUxBTkEKK05JS09MScSGIE1JTEFOQQorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMRU5BCitOSUtPTEnEhiBNSUxFTktPCitOSUtPTEnEhiBNSUxFVkEKK05JS09MScSGIE1JTEVWQQorTklLT0xJxIYgTUlMRQorTklLT0xJxIYgTUlMRQorTklLT0xJxIYgTUlMRQorTklLT0xJxIYgTUlMSUNBCitOSUtPTEnEhiBNSUxJQ0EKK05JS09MScSGIE1JTElDQQorTklLT0xJxIYgTUlMSVZPSkUKK05JS09MScSGIE1JTEtBCitOSUtPTEnEhiBNSUxLQQorTklLT0xJxIYgTUlMT8WgCitOSUtPTEnEhiBNSUxPxaAKK05JS09MScSGIE1JTE/FoAorTklLT0xJxIYgTUlMT8WgCitOSUtPTEnEhiBNSUxPxaAKK05JS09MScSGIE1JTE9KS08KK05JS09MScSGIE1JTE9NSVIKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9SQUQKK05JS09MScSGIE1JTE9TQVZBCitOSUtPTEnEhiBNSUxPU0FWQQorTklLT0xJxIYgTUlMT1ZBTgorTklLT0xJxIYgTUlMVVRJTgorTklLT0xJxIYgTUlMVVRJTgorTklLT0xJxIYgTUlMVVRJTgorTklLT0xJxIYgTUlPRFJBRyBESVBMIElORworTklLT0xJxIYgTUlPRFJBRyBEUgorTklLT0xJxIYgTUlPRFJBRyBEUgorTklLT0xJxIYgTUlPRFJBRworTklLT0xJxIYgTUlPRFJBRworTklLT0xJxIYgTUlPRFJBRworTklLT0xJxIYgTUlPRFJBRworTklLT0xJxIYgTUlPRFJBRworTklLT0xJxIYgTUlPRFJBRworTklLT0xJxIYgTUlPRFJBRworTklLT0xJxIYgTUlSSkFOQQorTklLT0xJxIYgTUlSSkFOQQorTklLT0xJxIYgTUlSSkFOQQorTklLT0xJxIYgTUlSSkFOQQorTklLT0xJxIYgTUlSSkFOQQorTklLT0xJxIYgTUlSS08KK05JS09MScSGIE1JUktPCitOSUtPTEnEhiBNSVJPU0xBViBESVBMIElORworTklLT0xJxIYgTUlST1NMQVYKK05JS09MScSGIE1JUk9TTEFWCitOSUtPTEnEhiBNSVJPU0xBVgorTklLT0xJxIYgTUlST1NMQVYKK05JS09MScSGIE1JUk9TTEFWCitOSUtPTEnEhiBNSVRBCitOSUtPTEnEhiBNSVRBCitOSUtPTEnEhiBNSVRBCitOSUtPTEnEhiBNTEFERU5LQQorTklLT0xJxIYgTUxBREVOCitOSUtPTEnEhiBNT03EjElMTworTklLT0xJxIYtTVXFoElDS0kgREFSQQorTklLT0xJxIYgTkFEQQorTklLT0xJxIYgTkFEQQorTklLT0xJxIYgTkFEQQorTklLT0xJxIYgTkFEQQorTklLT0xJxIYgTkFEQQorTklLT0xJxIYgTkFERcW9REEKK05JS09MScSGIE5FQk9KxaBBCitOSUtPTEnEhiBORURFTEpLQQorTklLT0xJxIYgTkVERUxKS08KK05JS09MScSGIE5FREVMSktPCitOSUtPTEnEhiBORU5BRCBEUgorTklLT0xJxIYgTkVOQUQKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOT1ZJQ0EKK05JS09MScSGIE5PVklDQQorTklLT0xJxIYgTk9WSUNBCitOSUtPTEnEhiBPTEdBCitOSUtPTEnEhiBPU01BTgorTklLT0xJxIYgUEFVTgorTklLT0xJxIYgUEFWTEUKK05JS09MScSGIFBFUkEKK05JS09MScSGIFBFUk8KK05JS09MScSGIFBFUlNJREEKK05JS09MScSGIFBFVEFSIERJUEwgT0VDCitOSUtPTEnEhiBQRVRBUgorTklLT0xJxIYgUEVUQVIKK05JS09MScSGIFBFVEFSCitOSUtPTEnEhiBQRVRSQQorTklLT0xJxIYgUEVUUkEKK05JS09MScSGIFBFVFJPTklKRQorTklLT0xJxIYgUFJFRFJBRworTklLT0xJxIYgUFJWT1NMQVYKK05JS09MScSGIFJBREVOS08KK05JS09MScSGIFJBRElTQVYKK05JS09MScSGIFJBRElWT0pFCitOSUtPTEnEhiBSQURPSklDQQorTklLT0xJxIYgUkFET0pLQQorTklLT0xJxIYgUkFET0pLQQorTklLT0xJxIYgUkFET01JUgorTklLT0xJxIYgUkFET01JUgorTklLT0xJxIYgUkFET01JUgorTklLT0xJxIYgUkFET1NMQVZBCitOSUtPTEnEhiBSQURPU0xBVgorTklLT0xJxIYgUkFET1ZBTgorTklLT0xJxIYgUkFET1ZBTgorTklLT0xJxIYgUkFET1ZBTgorTklLT0xJxIYgUkFET1ZBTgorTklLT0xJxIYgUkFET1ZBTgorTklLT0xJxIYgUkFKS08KK05JS09MScSGIFJBSktPCitOSUtPTEnEhiBSQU5LQQorTklLT0xJxIYgUkFUS08gTVIKK05JS09MScSGIFJBVE9NSVIKK05JS09MScSGIFJBVE9NSVIKK05JS09MScSGIFJVxb1BCitOSUtPTEnEhiBSVcW9SUNBCitOSUtPTEnEhiBSVcW9SUNBCitOSUtPTEnEhiBTQVZBCitOSUtPTEnEhiBTQVZBCitOSUtPTEnEhiBTQVZBCitOSUtPTEnEhiBTQVZBCitOSUtPTEnEhiBTQVZBCitOSUtPTEnEhiBTQVZFVEEKK05JS09MScSGIFNBVktBCitOSUtPTEnEhiBTQVZPCitOSUtPTEnEhiBTRcSGRVJLQQorTklLT0xJxIYgU0lNQQorTklLT0xJxIYgU0lNRU9OCitOSUtPTEnEhiBTSU1FVU4KK05JS09MScSGIFNJTknFoEEKK05JS09MScSGIFNJTknFoEEKK05JS09MScSGIFNJTknFoEEKK05JS09MScSGIFNMQcSQQU5BCitOSUtPTEnEhiBTTEFWScWgQQorTklLT0xJxIYgU0xBVklDQQorTklLT0xJxIYgU0xBVktPCitOSUtPTEnEhiBTTEFWTkEKK05JS09MScSGIFNMT0JPREFOS0EKK05JS09MScSGIFNMT0JPREFOCitOSUtPTEnEhiBTTE9CT0RBTgorTklLT0xJxIYgU0xPQk9EQU4KK05JS09MScSGIFNMT0JPREFOCitOSUtPTEnEhiBTTE9CT0RBTgorTklLT0xJxIYgU01JTEpBTkEKK05JS09MScSGIFNORcW9QU5BCitOSUtPTEnEhiBTT0ZJSkEKK05JS09MScSGIFNPRklKQQorTklLT0xJxIYgU09GSUpBCitOSUtPTEnEhiBTUEFTRU5LQQorTklLT0xJxIYgU1BBU09KRQorTklLT0xJxIYgU1BBU09KRQorTklLT0xJxIYgU1BBU09KRQorTklLT0xJxIYgU1JFVEEKK05JS09MScSGIFNSRVRFTktBCitOSUtPTEnEhiBTVEFOSU1JUgorTklLT0xJxIYgU1RBTklNSVIKK05JS09MScSGIFNUQU5JU0xBVgorTklLT0xJxIYgU1RBTktPCitOSUtPTEnEhiBTVEVGQU5JSkEKK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWSUNBCitOSUtPTEnEhiBTVE9KQURJTgorTklLT0xJxIYgU1RPSkFOCitOSUtPTEnEhiBTVVpBTkEKK05JS09MScSGIFNWRVRJU0xBVgorTklLT0xJxIYgU1ZFVElTTEFWCitOSUtPTEnEhiBTVkVUT1pBUgorTklLT0xJxIYgU1ZFVE9aQVIKK05JS09MScSGIFNWRVRPWkFSCitOSUtPTEnEhiBTVkVUT1pBUgorTklLT0xJxIYgVEFNQVJBCitOSUtPTEnEhiBUQVRKQU5BCitOSUtPTEnEhiBURU9ET1IKK05JS09MScSGIFRFT0RPUgorTklLT0xJxIYgVElIT01JUgorTklLT0xJxIYgVElIT01JUgorTklLT0xJxIYgVE9ET1IKK05JS09MScSGIFRPTUlTTEFWIE1SCitOSUtPTEnEhiBUT01JU0xBVgorTklLT0xJxIYgVE9NSVNMQVYKK05JS09MScSGIFRSRU7EjEEKK05JS09MScSGIFZBU0lMSUpFCitOSUtPTEnEhiBWRUtPU0xBVgorTklLT0xJxIYgVkVMSU1JUgorTklLT0xJxIYgVkVMSU1JUgorTklLT0xJxIYgVkVMSktPIERSIElORworTklLT0xJxIYgVkVMSktPCitOSUtPTEnEhiBWRVJBCitOSUtPTEnEhiBWRVJBCitOSUtPTEnEhiBWRVJBCitOSUtPTEnEhiBWRVJBCitOSUtPTEnEhiBWRVJJQ0EKK05JS09MScSGIFZFU05BCitOSUtPTEnEhiBWSURPU0FWQQorTklLT0xJxIYgVklUT01JUgorTklLT0xJxIYgVklUT01JUgorTklLT0xJxIYgVklUT01JUgorTklLT0xJxIYgVkxBREEKK05JS09MScSGIFZMQURJTUlSCitOSUtPTEnEhiBWTEFESU1JUgorTklLT0xJxIYgVkxBRElNSVIKK05JS09MScSGIFZMQURJTUlSCitOSUtPTEnEhiBWTEFESVNMQVYgRFIKK05JS09MScSGIFZPSklTTEFWIERSIERPQ0VOVAorTklLT0xJxIYgVk9KSVNMQVYgRFIgTEVLQVIKK05JS09MScSGIFZPSklTTEFWCitOSUtPTEnEhiBWVUtBxaBJTgorTklLT0xJxIYgVlVLQcWgSU4KK05JS09MScSGIFpBR09SS0EKK05JS09MScSGIFpEUkFWS08KK05JS09MScSGIFpEUkFWS08KK05JS09MScSGIFpPUkFOCitOSUtPTEnEhiBaT1JBTgorTklLT0xJxIYgWk9SQU4KK05JS09MScSGIFpPUkEKK05JS09MScSGIFpPUkEKK05JS09MScSGIFpPUkEKK05JS09MScSGIFpPUktBCitOSUtPTElOIEFMRUtTQU5EUkEKK05JS09MSU4gQU5BCitOSUtPTElOIEJSQU5LTworTklLT0xJTiBEUkFHT1NMQVZBIERSCitOSUtPTElOIERVxaBJQ0EKK05JS09MSU4gRVLFvUVCRVQKK05JS09MSU4gSVZJQ0EKK05JS09MSU4gTEFaQVIgRFIgTEVLQVIKK05JS09MSU4gTEpVQknFoEEKK05JS09MSU4gTUFSR0lUQQorTklLT0xJTiBNSUxBTgorTklLT0xJTiBNSUxJQ0EKK05JS09MSU4gTUlMSVZPSgorTklLT0xJTiBNSUxJVk9KCitOSUtPTElOIE1JUk9TTEFWCitOSUtPTElOIFJBRE9WQU4KK05JS09MSU4gUkFET1ZBTgorTklLT0xJTiBSVcW9SUNBCitOSUtPTElOIFNBVkEKK05JS09MSU4gU0lOScWgQQorTklLT0xJTiBTSU5JxaBBCitOSUtPTElOIFNUSVBBTgorTklLT0xJTiBWRVNOQQorTklLT0xJTiBWSVRPTUlSCitOSUtPTE9TS0kgTklLT0xBCitOSUtPTE9TS0kgU0xBVklDQQorTklLT0xPViDEkE9SxJBFCitOSUtPTE9WIEJPxaBLTworTklLT0xPViBKT0NBCitOSUtPTE9WIEpPQ0EKK05JS09MT1YgTEpVQklDQQorTklLT0xPViBOSU5BCitOSUtPTE9WIFJBxaBBCitOSUtPTE9WIFNJTknFoEEKK05JS09MT1YgU1RPSkFOCitOSUtPTE9WIFRPRE9SCitOSUtPTE9WU0tJIElMSUpBCitOSUtPTE9WU0tJIE1JTEFOCitOSUtPVEnEhiBWRUxJTUlSCitOSUxJxIYgTklLT0xBCitOSUxPVknEhiBNSVJPU0xBVgorTklNUklIVEVSIERSQUdVVElOCitOSU1SSUhURVIgTUlMQU4KK05JTVJJSFRFUiBNSVJPU0xBVgorTklNUklIVEVSIFZMQURBCitOSU7EjEnEhiBCSVNFUktBCitOSU7EjEnEhiBEQU1KQU4KK05JTsSMScSGIE1JTEVOS08KK05JTsSMScSGIFBFUk8KK05JTknEhiBBTEVLU0EKK05JTknEhiBCUkFOSVNMQVYKK05JTknEhiBNQVJLTworTklOScSGIE1JUktPCitOSU5JxIYgUkFET0pFCitOSU5JxIYgUkFET01JUgorTklOS09WIMW9SVZLTworTklOS09WIMSQT1LEkEUKK05JTktPViDEkE9SxJBFCitOSU5LT1YgxJBPUsSQRQorTklOS09WIEJPxb1JQ0EKK05JTktPViBCT1JJU0xBVgorTklOS09WIEJPUklTTEFWCitOSU5LT1YgQlJBTklTTEFWCitOSU5LT1YgRE9CUklWT0oKK05JTktPViBEUkFHT01JUgorTklOS09WIERVxaBBTgorTklOS09WIERVxaBBTgorTklOS09WIERVxaBBTgorTklOS09WIEVNSUxJSkEKK05JTktPViBFUsW9RUJFVAorTklOS09WIEpFTElDQQorTklOS09WIEpPVkFOCitOSU5LT1YgSlVMSUpBTiBNUgorTklOS09WLUtPTUxFTk9WIERBTklDQSBEUgorTklOS09WIExBWkFSCitOSU5LT1YgTEFaQVIKK05JTktPVi1MRcSQRU5BQyBKT1ZBTktBIERSCitOSU5LT1YgTEpVQk9NSVIKK05JTktPViBMSlVCT01JUgorTklOS09WIE1BUklKQQorTklOS09WIE1BUklKQQorTklOS09WIE1JTEFOQQorTklOS09WIE1JTEFOCitOSU5LT1YgTUlMSUNBCitOSU5LT1YgTUlMT8WgCitOSU5LT1YgTUlMT8WgCitOSU5LT1YgTUlMT8WgCitOSU5LT1YgTUlMT1ZBTgorTklOS09WIE1JTE9WQU4KK05JTktPViBNSUxVVElOCitOSU5LT1YgTUlSSkFOQQorTklOS09WIE1JUktPCitOSU5LT1YgTUlST1NMQVYKK05JTktPViBNSVJPU0xBVgorTklOS09WIE5BREEKK05JTktPViBORUJPSsWgQQorTklOS09WIE5FQk9KxaBBCitOSU5LT1YgTklLT0xBCitOSU5LT1YgT0xHSUNBCitOSU5LT1YgUkFESUNBCitOSU5LT1YgU0FWRVRBIERJUEwgSU5HCitOSU5LT1YgU0FWRVRBCitOSU5LT1YgU0xBVktPCitOSU5LT1YgU01JTEpBCitOSU5LT1YgU09GSUpBCitOSU5LT1YgU1BPTUVOS0EKK05JTktPViBTVEVWQU4KK05JTktPViBTVEVWQU4KK05JTktPViBTVEVWQU4KK05JTktPViBWRUxJTUlSCitOSU5LT1YgVkVMSktPCitOSU5LT1YgVkVSSUNBCitOSU5LT1YgVkxBRElNSVIKK05JTktPViBWT0pJU0xBVgorTklOS09WScSGIMWgUElSTworTklOS09WScSGIMWgUElSTworTklOS09WScSGIMSQVVJBxJAKK05JTktPVknEhiDEkFVSQQorTklOS09WScSGIEFOS0lDQQorTklOS09WScSGIEJSQU5LTworTklOS09WScSGIERBTklDQQorTklOS09WScSGIERSQUdBCitOSU5LT1ZJxIYgRFXFoEFOCitOSU5LT1ZJxIYgRVJJS0EKK05JTktPVknEhiBHQVZSQQorTklOS09WScSGIEpBTktPCitOSU5LT1ZJxIYgSk9KQQorTklOS09WScSGIEpPVkFOS0EKK05JTktPVknEhiBNQVJJQ0EKK05JTktPVknEhiBNQVJLTworTklOS09WScSGIE1JxIZPCitOSU5LT1ZJxIYgTUlIQUlMTworTklOS09WScSGIE1JTEFOCitOSU5LT1ZJxIYgTUlMT8WgCitOSU5LT1ZJxIYgTUlSSkFOQQorTklOS09WScSGIE1JUkpBTkEKK05JTktPVknEhiBOSUtPTEEKK05JTktPVknEhiBOSUtPTEEKK05JTktPVknEhiBQRVJBCitOSU5LT1ZJxIYgUEVSTworTklOS09WScSGIFBFVEFSCitOSU5LT1ZJxIYgUkFET01JUgorTklOS09WScSGIFJBRE9WQU4KK05JTktPVknEhiBSQUpLTworTklOS09WScSGIFNSxJBBTgorTklOS09WScSGIFNUT0pBTgorTklOS09WScSGIFNWRVRJU0xBVgorTklOS09WScSGIFZFUkEKK05JU0lNIERFU0EKK05JU1RFUiBFVkEKK05JU1RPUiBEUkFHQU4KK05JU1RPUkFOIMSQT1LEkEUKK05JU1RPUkFOIE1JTEFOCitOSkFHT0pFViBNSUxBRElOCitOSkFHUklOIFNMQVZJQ0EKK05KQUdVTC1ET0tJxIYgU1JCSVNMQVZBCitOSkFHVUwgRFXFoEFOCitOSkFSQURJIEVWR0VOSUpFCitOSkFSQURJIEpBTktPCitOSkFSQURJIEpPVkdFTgorTkpBUkFESSBNQVJJSkEKK05KQVJBREkgU09GSUpBCitOSkFSSSDFoEFORE9SCitOSkFSSSBERcW9RQorTkpFxb1JxIYgT0JSQUQKK05KRcW9ScSGIFpWT05LTworTkpFR09NSVIgxJBVUk8KK05KRUdPTUlSIExKVUJJTktBIERSIExFS0FSCitOSkVHT01JUiBNSUxBTgorTkpFR09NSVIgTklLT0xBCitOSkVHT01JUiBOT1ZBSworTkpFR09WQU4gxb1BUktPCitOSkVHT1ZBTiBKT1ZBTktBCitOSkVHT1ZBTiBNQVJBCitOSkVHT1ZBTiBNQVJJSkEKK05KRUdPVkFOIE1JUktPCitOSkVHT1ZBTiBNSVJLTworTkpFR09WQU4gU1RPSkFOS0EKK05KRUdPVkFOT1ZJxIYgRUxFTkEKK05KRUdSScSGIE1BUklKQQorTkpFR1JJxIYgUkFETUlMQQorTkpFTcSMT0sgSk/FvUVGCitOSkVNT0dBIEpVUkFKCitOSkVOSknEhiBWTEFETworTkpFUkdFxaAgSkFOT8WgCitOSkVSR0XFoCBNQVJJSkEKK05KSVJFIFNURVZBTgorTkpJUkpBSyDEkE9SxJBFCitOSklSSkFLIExFT05BCitOSklUUkkgS0FST0xKCitOSlVOSknEhiBNSUxFVkEKK05PxIxFVlNLQSBWRUxJS0EKK05PxIxFVlNLSSBCSUxKQU5BCitOT8SMRVZTS0kgUkFERQorTk/FvUlDQSBDVklKRVRBCitOT8W9SUNBIE1JTElWT0pFCitOT8W9SU5JxIYgREFSQQorTk/FvUlOScSGIExKVUJJQ0EKK05Pxb1JTknEhiBNSUxBTgorTk/FvUlOScSGIE5JS09MQQorTk9MQSBUSU1OSkEKK05PTElOIMSQVVLEkElOS0EKK05PTklOIEFOxJBFTEtBCitOT05JTiBEVcWgQU4KK05PTklOIE1JTE9SQUQKK05PTklOIE5JS09MQQorTk9OSU4gU09OSkEKK05PTklOIFZJVE9NSVIKK05PTktPVknEhiBNSUxBTgorTk9OS09WScSGIE1JTE9SQUQKK05PU0FLIMSQT1LEkEUKK05PU0FLIE1JS0xPxaAKK05PU0FMSiBNScWgQQorTk9TRUsgRVZJQ0EKK05PU0VLIEZSQU5KQQorTk9TRUsgS0FSTE8KK05PU0VLIEtTRU5JSkEKK05PU0VLIFpPUkFOCitOT1NPTkpJTiBMRU5LQQorTk9TT05KSU4gTUlMQU4KK05PU09OSklOIFNBVkEKK05PU09WScSGIMSQT1LEkEUKK05PU09WScSGIERBTklDQQorTk9TT1ZJxIYgSkFOS08KK05PU09WScSGIEpPVkFOCitOT1NPVknEhiBKT1ZBTgorTk9TT1ZJxIYgWk9SQU4KK05PVEEgSkFOS08KK05PVEFST8WgIERBUklOS0EKK05PVEFST8WgIERFSkFOCitOT1RBUk/FoCBNSUxBTgorTk9USE9GIEVWQQorTk9USE9GIFpPTFRBTgorTk9WxIxJxIYgQlVESU1JUgorTk9WxIxJxIYgREFNTkpBTgorTk9WxIxJxIYgRFXFoEFOCitOT1bEjEnEhiBTVEFOQQorTk9WxIxJxIYgU1RBTkEKK05PVsSMScSGIFRBVEpBTkEKK05PVsSMScSGIFZMQURJTUlSCitOT1ZBxIxJxIYgxJBVUkEKK05PVkHEjEnEhiDEkFVSTworTk9WQcSMScSGIFBFUlNJREEKK05PVkFLIMSQT1LEkEUKK05PVkFLIEFORFJJSkEKK05PVkFLIEFOVEFMCitOT1ZBSyBCT8WgS08KK05PVkFLIERSQUdJQ0EKK05PVkFLIERVxaBBTktBCitOT1ZBSyBGUkFOSkEKK05PVkFLIEnFoFRWQU4KK05PVkFLIElSRU5BCitOT1ZBSyBJVkFOCitOT1ZBSyBKQU5BCitOT1ZBSyBKQU5PxaAKK05PVkFLIEpPU0lQCitOT1ZBSyBKT1NJUAorTk9WQUsgSk9WQU4KK05PVkFLIExBRElTTEFWIE1SCitOT1ZBSyBMQVNMTworTk9WQUsgTEFaQVIKK05PVkFLIExKVUJPTUlSCitOT1ZBSyBNQVJHSVRBCitOT1ZBSyBNQVJJSkEKK05PVkFLIE1BVElMREEKK05PVkFLIE1JSEFMSgorTk9WQUsgTkFORE9SCitOT1ZBSyBOSUtPTEEKK05PVkFLIFNMQVZLQQorTk9WQUsgU1RFVkFOCitOT1ZBSyBTVEVWQU4KK05PVkFLIFNUSkVQQU4KK05PVkFLIFRJQk9SCitOT1ZBSy1WQUpEQSBMSklMSkFOQQorTk9WQUsgVkFTSUxJSkEKK05PVkFLIFZFUkEKK05PVkFLIFZFUk9OQQorTk9WQUsgVklLVE9SCitOT1ZBS09WIMSMRURPTUlSCitOT1ZBS09WIEFOxJBFTEtPCitOT1ZBS09WIEJPUklTTEFWCitOT1ZBS09WIERSQUdPTEpVQiBNUgorTk9WQUtPViBEVcWgQU4KK05PVkFLT1YgR09SREFOQQorTk9WQUtPViBHT1NQQVZBIERSCitOT1ZBS09WIEpFTElDQQorTk9WQUtPViBMQVpBUgorTk9WQUtPViBMSlVCSU5LQQorTk9WQUtPViBMSlVCT01JUgorTk9WQUtPViBNQVJJTkEKK05PVkFLT1YgTUlMQU4KK05PVkFLT1YgTUlMSUNBCitOT1ZBS09WIE1JTElWT0oKK05PVkFLT1YgTUlMT1JBRAorTk9WQUtPViBNSVJPU0xBVgorTk9WQUtPViBOQURBCitOT1ZBS09WIFBSRURSQUcKK05PVkFLT1YgUFJFRFJBRworTk9WQUtPViBSQURPVkFOIERJUEwgSU5HCitOT1ZBS09WIFNBVkEKK05PVkFLT1YgU0FWQQorTk9WQUtPViBTUkJJU0xBVgorTk9WQUtPViBTUkVURU4KK05PVkFLT1YgU1JFVEVOCitOT1ZBS09WIFNURVZBTiBEUgorTk9WQUtPViBTVEVWQU4KK05PVkFLT1YgVkFMRVJJSkEKK05PVkFLT1YgVkVTRUxJTgorTk9WQUtPViBaRFJBVktPCitOT1ZBS09WScSGIMW9SVZBTgorTk9WQUtPVknEhiDFvUlWQU4KK05PVkFLT1ZJxIYgxb1JVktPCitOT1ZBS09WScSGIMW9SVZPSklOCitOT1ZBS09WScSGIMSQT1LEkEUKK05PVkFLT1ZJxIYgxJBVSkEKK05PVkFLT1ZJxIYgxJBVUk8KK05PVkFLT1ZJxIYgQUxFS1NBTkRBUgorTk9WQUtPVknEhiBBTsSQRUxLQQorTk9WQUtPVknEhiBBTkEKK05PVkFLT1ZJxIYgQU5LQQorTk9WQUtPVknEhiBCT8WgS08gRFIgUFJPRgorTk9WQUtPVknEhiBCT0dEQU4KK05PVkFLT1ZJxIYgQlJBTklTTEFWQQorTk9WQUtPVknEhiBCUkFOSVNMQVYKK05PVkFLT1ZJxIYgQlJBTktPCitOT1ZBS09WScSGIEJSQU5LTworTk9WQUtPVknEhiBDVkVUS08gRFIKK05PVkFLT1ZJxIYgQ1ZJSkVUQQorTk9WQUtPVknEhiBEQU5BCitOT1ZBS09WScSGIERBTklDQQorTk9WQUtPVknEhiBESU1JVFJJSkUKK05PVkFLT1ZJxIYgRFJBR0FOCitOT1ZBS09WScSGIERSQUdBTgorTk9WQUtPVknEhiBEUkFHQQorTk9WQUtPVknEhiBEUkFHT0xKVUIKK05PVkFLT1ZJxIYgRFJBR09MSlVCCitOT1ZBS09WScSGIERSQUdPU0xBVgorTk9WQUtPVknEhiBEVcWgQU5LQQorTk9WQUtPVknEhiBEVcWgQU4KK05PVkFLT1ZJxIYgRFXFoEFOCitOT1ZBS09WScSGIERVxaBBTgorTk9WQUtPVknEhiBEVcWgQU4KK05PVkFLT1ZJxIYgRFXFoEFOCitOT1ZBS09WScSGIERVxaBBTgorTk9WQUtPVknEhiBEVcWgQU4KK05PVkFLT1ZJxIYgRlJBTkpPCitOT1ZBS09WScSGIEdPUkRBTkEKK05PVkFLT1ZJxIYgR09SSUNBCitOT1ZBS09WScSGIEdST1pEQQorTk9WQUtPVknEhiBJTsSQSUpBCitOT1ZBS09WScSGIEpFTEVOQQorTk9WQUtPVknEhiBKRUxFTkEKK05PVkFLT1ZJxIYgSk9WQU5LQQorTk9WQUtPVknEhiBKT1ZBTgorTk9WQUtPVknEhiBKT1ZBTgorTk9WQUtPVknEhiBLT1NBCitOT1ZBS09WScSGIExBWkFSCitOT1ZBS09WScSGIExFUE9TQVZBCitOT1ZBS09WScSGIExKSUxKQU5BCitOT1ZBS09WScSGIExKVUJPTUlSCitOT1ZBS09WScSGIExKVUJPTUlSCitOT1ZBS09WScSGIE1BUklDQQorTk9WQUtPVknEhiBNQVJJSkEKK05PVkFLT1ZJxIYgTUFSSUpBCitOT1ZBS09WScSGIE1BUklKQQorTk9WQUtPVknEhiBNRUxBTklKQQorTk9WQUtPVknEhiBNScWgTworTk9WQUtPVknEhi1NSURJIERJVk5BIERJUEwgVFVSSVpNCitOT1ZBS09WScSGIE1JSk9EUkFHCitOT1ZBS09WScSGIE1JTEFOCitOT1ZBS09WScSGIE1JTEFOCitOT1ZBS09WScSGIE1JTEFOCitOT1ZBS09WScSGIE1JTE/FoAorTk9WQUtPVknEhiBNSUxPxaAKK05PVkFLT1ZJxIYgTUlMT1JBRAorTk9WQUtPVknEhiBNSUxPUkFECitOT1ZBS09WScSGIE1JTE9SQUQKK05PVkFLT1ZJxIYgTUlMT1JBRAorTk9WQUtPVknEhiBNSUxPVkFOCitOT1ZBS09WScSGIE1JTE9WQU4KK05PVkFLT1ZJxIYgTUlPRFJBRyBEUgorTk9WQUtPVknEhiBNSU9EUkFHCitOT1ZBS09WScSGIE1MQURFTgorTk9WQUtPVknEhiBNT03EjElMTworTk9WQUtPVknEhiBOQURBCitOT1ZBS09WScSGIE5JS09MQQorTk9WQUtPVknEhiBOSUtPTEEKK05PVkFLT1ZJxIYgTklLT0xBCitOT1ZBS09WScSGIE5JS09MQQorTk9WQUtPVknEhiBOSUtPTEEKK05PVkFLT1ZJxIYgTklLT0xBCitOT1ZBS09WScSGIE5JS09MQQorTk9WQUtPVknEhiBPTElWRVIKK05PVkFLT1ZJxIYgUEVUQVIKK05PVkFLT1ZJxIYgUEVUQVIKK05PVkFLT1ZJxIYgUEVUQVIKK05PVkFLT1ZJxIYgUEVUQVIKK05PVkFLT1ZJxIYgUEVUQVIKK05PVkFLT1ZJxIYgUEVUQVIKK05PVkFLT1ZJxIYtUExBVsWgScSGIEpFTEVOQQorTk9WQUtPVknEhiBSQURNSUxPCitOT1ZBS09WScSGIFJBRE9KS0EKK05PVkFLT1ZJxIYgUkFET01JUgorTk9WQUtPVknEhiBSQURPTUlSCitOT1ZBS09WScSGIFJBRE9NSVIKK05PVkFLT1ZJxIYgUkFET1ZBTgorTk9WQUtPVknEhiBSQUpLTworTk9WQUtPVknEhiBSQU5LTworTk9WQUtPVknEhiBST1NBTktBCitOT1ZBS09WScSGIFJVxb1JQ0EKK05PVkFLT1ZJxIYgU0FWQQorTk9WQUtPVknEhiBTQVZBCitOT1ZBS09WScSGIFNMQVZLTworTk9WQUtPVknEhiBTTE9CT0RBTgorTk9WQUtPVknEhiBTTE9CT0RBTgorTk9WQUtPVknEhiBTTE9CT0RBTgorTk9WQUtPVknEhiBTT0ZJSkEKK05PVkFLT1ZJxIYgU1BBU09KQQorTk9WQUtPVknEhiBTUE9NRU5LQQorTk9WQUtPVknEhiBTVEFOSVNMQVYKK05PVkFLT1ZJxIYgU1RFVkFOIERJUEwgSU5HCitOT1ZBS09WScSGIFNURVZBTgorTk9WQUtPVknEhiBTVEVWQU4KK05PVkFLT1ZJxIYgU1RFVkFOCitOT1ZBS09WScSGIFNURVZPCitOT1ZBS09WScSGIFNUT0pBTgorTk9WQUtPVknEhiBTVkVUT01JUgorTk9WQUtPVknEhiBWRUxJTUlSCitOT1ZBS09WScSGIFZFTElOS0EKK05PVkFLT1ZJxIYgVkVSSUNBCitOT1ZBS09WScSGIFZFU05BCitOT1ZBS09WScSGIFZJRE9KRQorTk9WQUtPVknEhiBWSVRLTworTk9WQUtPVknEhiBWTEFESU1JUiBESVBMIElORworTk9WQUtPVknEhiBWTEFESU1JUgorTk9WQUtPVknEhiBWTEFESU1JUgorTk9WQUtPVknEhiBWTEFESVNMQVYKK05PVkFLT1ZJxIYgWkxBVE9NSVIKK05PVkFLT1ZJxIYgWk9SQQorTk9WQUtPVknEhiBaT1JJQ0EKK05PVkFLT1ZJxIYgWk9SSUNBCitOT1ZJxIxJxIYgTUlMT8WgCitOT1ZJxIYgxIxFRE8KK05PVknEhi3EjFVMSkFLIExKVUJJQ0EKK05PVknEhiBEQU5JQ0EKK05PVknEhiBEVcWgQU4KK05PVknEhiBKT1ZBTgorTk9WScSGIE1JTEFOCitOT1ZJxIYgTUlMQU4KK05PVknEhiBNSVJPU0xBVgorTk9WScSGIE1JUk9TTEFWCitOT1ZJxIYgTUlUQVIKK05PVknEhiBOSUtPTEEKK05PVknEhiBQQU5URUxJSkEKK05PVknEhiBQRVJTSURBCitOT1ZJxIYgVEFUSkFOQQorTk9WScSGIFRPTUEKK05PVknEhiBWTEFKS08KK05PVklDS0kgQUxFS1NBCitOT1ZJS09WIFZFUkEKK05PVklOQyBJVkFOCitOT1ZJVE9WScSGIE1BUktPCitOT1ZLT1Ygxb1JVk9KSU4KK05PVktPViBET0JSSUxBCitOT1ZLT1YgR0FWUkEKK05PVktPViBKT1ZBTgorTk9WS09WIE1JTEFOCitOT1ZLT1YgTkFEQQorTk9WS09WIFNURVZBTgorTk9WS09WIFNURVZBTgorTk9WS09WIFpBR09SS0EKK05PVktPVknEhiDEkE9SxJBFCitOT1ZLT1ZJxIYgQU5LQQorTk9WS09WScSGIEJJTEpBTkEKK05PVktPVknEhiBEUkFHSUNBCitOT1ZLT1ZJxIYgRFJBR0lOSkEKK05PVktPVknEhiBEVcWgQU4KK05PVktPVknEhiBEVcWgQU4KK05PVktPVknEhiBEVcWgQU4KK05PVktPVknEhiBEVcWgQU4KK05PVktPVknEhiBFTEZSSURBCitOT1ZLT1ZJxIYgRUxJWkFCRVRBCitOT1ZLT1ZJxIYgSk9WQU4KK05PVktPVknEhiBNSUhBSkxPCitOT1ZLT1ZJxIYgTUlMQU4KK05PVktPVknEhiBNSUxJTktPCitOT1ZLT1ZJxIYgTUlMT8WgCitOT1ZLT1ZJxIYgTUlSSkFOQQorTk9WS09WScSGIE1PTcSMSUxPCitOT1ZLT1ZJxIYgTU9NxIxJTE8KK05PVktPVknEhiBOQURBCitOT1ZLT1ZJxIYgTkVCT0rFoEEgRFIKK05PVktPVknEhiBOSUtPTEEKK05PVktPVknEhiBST1NBCitOT1ZLT1ZJxIYgU01JTEpLQQorTk9WS09WScSGIFNUQU5LTworTk9WS09WScSGIFZMQURBCitOT1ZLT1ZJxIYgVlVLQcWgSU4KK05PVk9TRUwgR09SREFOQQorTk9WT1NFTCBNQVJJSkEKK05PVk9TRUwgTkFEQQorTk9WT1NFTCBSQUpLTworTk9WT1NFTEFDIEtBVElDQQorTk9WT1NFTEFDIFNURVZBTgorTk9WT1NFTEFDIFpWT05JTUlSCitOT1ZPU0VMSkHEjEtJIE1JTElWT0oKK05PVk9TRUxPVlNLSSBBTkdFTAorTk9WT1QgTEFESVNMQVYKK05PVk9UIFBBVkxFCitOT1ZPVknEhiDFvUlWT0pJTgorTk9WT1ZJxIYgQkFUUknEhgorTk9WT1ZJxIYgQklMSkFOQQorTk9WT1ZJxIYgRFJBR0FOCitOT1ZPVknEhiBHT1JEQU5BCitOT1ZPVknEhiBNSU5BCitOT1ZPVknEhiBOQURBCitOT1ZPVknEhiBWTEFETworTk9WT1ZJxIYgWkRFTktBCitOT1ZUQSBOSUtPTEEgRFIKK05PVlRBIFZMQURJTUlSCitOT1ZUQSBWTEFESU1JUgorTlXFvURJxIYgTUlMQU4KK05Vxb1EScSGIE9CUkFECitOVUJFUiBBTkEKK05VREnEhiDEkE9SxJBFCitOVURJxIYgU1ZFVE9aQVIKK05VSEkgRkVWWkkKK05VSEkgSEFKREFOCitOVUhJIFpFS0lKQQorTlVLQSBIQVNBTgorTlVLScSGIEFMSk8KK05VS0nEhiBExb1FVkFECitOVUtJxIYgS0FOSVRBCitOVUtJxIYgT01FUgorT8SMRU5BxaAgTEpVRE1JTEEKK0/EjEtBSkkgScWgVFZBTgorT8SMS08gVklMSEVMTQorT8SMT1ZBSiBCT8W9RU5LQQorT8SMT1ZBSiBaVVpBTkEKK0/FoEFQIEpFTEVOQQorT8WgQVAgSk9WQU4KK0/FoEtFUlQgQU5LQQorT8WgVFJJxIYgTUlMRSBESVBMIElORworT8WgVFJJS0Egxb1BUktPCitPxaBUUklLQSDFvUFSS08KK0/FoFRSSUtBIERBUklOS0EKK0/FvUVHT1ZJxIYgxb1BUktPIERJUEwgSU5HCitPxb1FR09WScSGIEJPxaBLTworT8W9RUdPVknEhiBCUkFOS08gRElQTCBJTkcKK0/FvUVHT1ZJxIYgREFORQorT8W9RUdPVknEhiBEUkFHQQorT8W9RUdPVknEhiBMQVpBUgorT8W9RUdPVknEhiBNSVJLTworT8W9RUdPVknEhiBNT03EjElMTworT8W9RUdPVknEhiBORVZFTktBCitPxb1FR09WScSGIFNMQVZLTworT8W9RUdPVknEhiBTTE9CT0RBTgorT8W9RUtPVknEhiBHT0pLTworT8W9VkFUIEpBU01JTkEKK0/FvVZBVCBKQVNNSU5BCitPxb1WQVQgSlVMSUpBTkEKK0/FvVZBVCBPTkRSRUoKK0/EkEnEhiBBTEVLU0FOREFSCitPQsWgVVNUIEpBTktPCitPQkFET1YgQUxFS1NBTkRSQQorT0JBRE9WIE1JTEUKK09CQURPViBOQVRBTElKQQorT0JBRE9WIFNMQVZLTworT0JBRE9WScSGIERVxaBBTktBCitPQkFET1ZJxIYgTUlMT0pFCitPQkFET1ZJxIYgTUlMT0pFCitPQkFET1ZJxIYgTUlMT0pFCitPQkFET1ZJxIYgTUlMT1JBRAorT0JBRE9WScSGIFNMT0JPREFOS0EKK09CRVJNQUpFUiBGUkFOSkEKK09CRVJNQU4gQlJBTklTTEFWCitPQkVSVCBGUkFOQworT0JKRURPVknEhiBTVE9KQU4KK09CTEXFoMSMVUsgQU5LQQorT0JMRcWgxIxVSyBBTktBCitPQkxFxaDEjFVLIERSQUdJxaBBCitPQkxFxaDEjFVLIEdSRUdPUgorT0JMRcWgxIxVSyBNQVJJSkEKK09CT8SMS0kgVkxBRElNSVIKK09CUkFET1YgR09SREFOQQorT0JSQURPViBHT1JEQU5BCitPQlJBRE9WIExKVUJJxaBBCitPQlJBRE9WIExKVUJJxaBBCitPQlJBRE9WIE1JTEFOCitPQlJBRE9WIE1JTE9SQUQKK09CUkFET1YgTkFEQQorT0JSQURPViBOT1ZBSworT0JSQURPViBSQURJVk9KCitPQlJBRE9WIFJBRE1JTEEKK09CUkFET1YgU1RPSkFOS0EKK09CUkFET1ZJxIYgxIxFRE9NSVIKK09CUkFET1ZJxIYgxb1JVktPCitPQlJBRE9WScSGIMW9SVZLTworT0JSQURPVknEhiDEkE9SxJBFCitPQlJBRE9WScSGIMSQT1LEkEUKK09CUkFET1ZJxIYgxJBPUsSQRQorT0JSQURPVknEhiDEkFVSxJBJTkEKK09CUkFET1ZJxIYgxJBVUk8KK09CUkFET1ZJxIYgxJBVUk8KK09CUkFET1ZJxIYgQUxFS1NBTkRBUgorT0JSQURPVknEhiBBTktBCitPQlJBRE9WScSGIEJPR0RBTktBCitPQlJBRE9WScSGIEJPR0RBTgorT0JSQURPVknEhiBCT0dEQU4KK09CUkFET1ZJxIYgQk9SSVNMQVYKK09CUkFET1ZJxIYgQk9SS0EKK09CUkFET1ZJxIYgQlJBTklTTEFWCitPQlJBRE9WScSGIEJSQU5JU0xBVgorT0JSQURPVknEhiBCUkFOS08KK09CUkFET1ZJxIYgQlVESU1JUgorT0JSQURPVknEhiBCVURPCitPQlJBRE9WScSGIERBTkUKK09CUkFET1ZJxIYgREFOSUpFTEEKK09CUkFET1ZJxIYgREFOSUxPIERSCitPQlJBRE9WScSGIERNSVRBUgorT0JSQURPVknEhiBET0JSSUxBCitPQlJBRE9WScSGIERSQUdBTgorT0JSQURPVknEhiBEUkFHSUNBCitPQlJBRE9WScSGIERSQUdPTEpVQgorT0JSQURPVknEhiBEVcWgQU5LQQorT0JSQURPVknEhiBEVcWgQU4KK09CUkFET1ZJxIYgRFXFoEFOCitPQlJBRE9WScSGIERVxaBBTgorT0JSQURPVknEhiBEVcWgQU4KK09CUkFET1ZJxIYgRFXFoEFOCitPQlJBRE9WScSGIERVxaBBTgorT0JSQURPVknEhiBFTUlMSUpBCitPQlJBRE9WScSGIEdMScWgQQorT0JSQURPVknEhiBHT1JEQU5BCitPQlJBRE9WScSGIEdWT1pERU4KK09CUkFET1ZJxIYgSUxJSkEKK09CUkFET1ZJxIYgSkFTTUlOQQorT0JSQURPVknEhiBKT1ZBTgorT0JSQURPVknEhiBKT1ZBTgorT0JSQURPVknEhiBKT1ZPCitPQlJBRE9WScSGIEtPTlNUQU5USU4KK09CUkFET1ZJxIYgTEFaQVIKK09CUkFET1ZJxIYgTEFaQVIKK09CUkFET1ZJxIYgTElESUpBCitPQlJBRE9WScSGIExKSUxKQU5BCitPQlJBRE9WScSGIExKSUxKQU5BCitPQlJBRE9WScSGIExKSUxKQU5BCitPQlJBRE9WScSGIExKVUJJxaBBCitPQlJBRE9WScSGIExKVUJPRFJBRworT0JSQURPVknEhiBMVUtBCitPQlJBRE9WScSGIE1BUktPCitPQlJBRE9WScSGIE1JTEFESU4KK09CUkFET1ZJxIYgTUlMQU4KK09CUkFET1ZJxIYgTUlMQQorT0JSQURPVknEhiBNSUxFTkEKK09CUkFET1ZJxIYgTUlMRU5LTworT0JSQURPVknEhiBNSUxFCitPQlJBRE9WScSGIE1JTEUKK09CUkFET1ZJxIYgTUlMSUNBCitPQlJBRE9WScSGIE1JTElKQU5BCitPQlJBRE9WScSGIE1JTEtBCitPQlJBRE9WScSGIE1JTE/FoAorT0JSQURPVknEhiBNSUxPSktPCitPQlJBRE9WScSGIE1JTE9SQUQKK09CUkFET1ZJxIYgTUlMT1JBRAorT0JSQURPVknEhiBNSUxPVkFOIERJUEwgSU5HCitPQlJBRE9WScSGIE1JTFVOCitPQlJBRE9WScSGIE1JTFVUSU4KK09CUkFET1ZJxIYgTUlPRFJBRworT0JSQURPVknEhiBNSVJBxaAKK09CUkFET1ZJxIYgTUlSSkFOQSBESVBMIElORworT0JSQURPVknEhiBNSVJLTworT0JSQURPVknEhiBNSVJPU0xBVgorT0JSQURPVknEhiBNTEFERU4KK09CUkFET1ZJxIYgTkFEQQorT0JSQURPVknEhiBORUJPSsWgQQorT0JSQURPVknEhiBORURFTEpLQQorT0JSQURPVknEhiBORURFTEpLTworT0JSQURPVknEhiBORU1BTkpBCitPQlJBRE9WScSGIE5FTkFEIERSIExFS0FSCitPQlJBRE9WScSGIE5JS09MQQorT0JSQURPVknEhiBQRVRBUgorT0JSQURPVknEhiBQRVRBUgorT0JSQURPVknEhiBSQURFCitPQlJBRE9WScSGIFJBRElWT0pFCitPQlJBRE9WScSGIFJBRElWT0oKK09CUkFET1ZJxIYgUkFETUlMQQorT0JSQURPVknEhiBSQVRLTworT0JSQURPVknEhiBST1NBCitPQlJBRE9WScSGIFNBVkEKK09CUkFET1ZJxIYtU0lLSU1JxIYgTUlSSkFOQQorT0JSQURPVknEhiBTTEFWSUNBCitPQlJBRE9WScSGIFNMQVZLTworT0JSQURPVknEhiBTTEFWS08KK09CUkFET1ZJxIYgU0xPQk9EQU4KK09CUkFET1ZJxIYgU01JTEpLQQorT0JSQURPVknEhiBTTUlMSktBCitPQlJBRE9WScSGIFNUQU5JTUlSCitPQlJBRE9WScSGIFNUQU5LTworT0JSQURPVknEhiBTVEVWQU4gRFIKK09CUkFET1ZJxIYgU1RFVkFOCitPQlJBRE9WScSGIFNURVZBTgorT0JSQURPVknEhiBTVEVWTworT0JSQURPVknEhiBTVEVWTworT0JSQURPVknEhiBTVEpFUEFOCitPQlJBRE9WScSGIFNWRVRPWkFSCitPQlJBRE9WScSGIFNWRVRPWkFSCitPQlJBRE9WScSGIFNWRVRPWkFSCitPQlJBRE9WScSGIFRPRE9SCitPQlJBRE9WScSGIFZFUkEKK09CUkFET1ZJxIYgVkVSQQorT0JSQURPVknEhiBWT0pJU0xBVgorT0JSQURPVknEhiBaTEFUSUNBCitPQlJFSFQgUEVUQVIKK09CUkVOScSGIEJPUklWT0pFCitPQlJFTknEhiBEUkFHTworT0JSRU5JxIYgSkVMSVNBVkVUQQorT0JSRU5JxIYgTUFOT0pMRQorT0JSRU5JxIYgTUlMQURJTgorT0JSRU5JxIYgTUlMRVZBCitPQlJFTknEhiBNSUxPTUlSCitPQlJFTknEhiBQUkVEUkFHCitPQlJFTknEhiBSQURPTUFOCitPQlJFTknEhiBTTkXFvUFOQQorT0JSRU5PViDFvUlWQU4KK09CUkVOT1Ygxb1JVkFOCitPQlJFTk9WIEpFTEVOQQorT0JSRU5PViBKRVZSRU0KK09CUkVOT1YgSk9MQU5EQQorT0JSRU5PViBLUlVOQQorT0JSRU5PViBQRVRBUgorT0JSRU5PViBSQURJVk9KCitPQlJFTk9WIFNBTkpBCitPQlJFTk9WIFNBVkEKK09CUkVOT1YgU0xPQk9EQU5LQQorT0JSRU5PViBTVEFOS0EKK09CUkVOT1YgU1RFVkFOCitPQlJFTk9WIFZBU0EKK09CUkVOT1YgVkxBRElNSVIKK09CUkVOT1YgWk9SSUNBCitPQlJFTk9WIFpPUklDQQorT0JSRU5PVknEhiBCT8W9SURBUgorT0JSRU5PVknEhiBCUkFOS08KK09CUkVOT1ZJxIYgREFSSU5LQQorT0JSRU5PVknEhiBERVNJTUlSCitPQlJFTk9WScSGIEtBVEFSSU5BCitPQlJFTk9WScSGIE1JTEFOIERSCitPQlJFTk9WScSGIE1JT0RSQUcgRElQTCBJTkcKK09CUkVOT1ZJxIYgTUlST1NMQVYKK09CUkVOT1ZJxIYgTklLT0xBCitPQlJFTk9WScSGIFJBRE9TTEFWCitPQlJFTk9WScSGIFRBVEpBTkEKK09CUkVOT1ZJxIYgVkFTTworT0JSRU5PVknEhiBWTEFKS08KK09CUknEhiBHT0pLTworT0JSScSGIFJBRE9KSUNBCitPQlJLTkXFvUVWIMSQT1LEkEUKK09CUktORcW9RVYgTUlMRU5LTworT0JSS05Fxb1FViBSQURNSUxBCitPQlJLTkXFvUVWIFJBRE9KS0EKK09CUktORcW9RVYgU1RFVkFOCitPQlJPVkHEjEtJIERVxaBJQ0EKK09CUk9WQcSMS0kgR09SREFOQQorT0JST1ZBxIxLSSBNSVJPU0xBVgorT0JST1ZBxIxLSSBSQURFCitPQlJPVkHEjEtJIFNWRVRPWkFSCitPQlJPVkFDIE1JSkFUCitPQlJPVlNLSSDEkE9SxJBFCitPQlJPVlNLSSBEUkFHVVRJTgorT0JST1ZTS0kgSVZBTgorT0JST1ZTS0kgSk9WQU4KK09CUk9WU0tJIEtBVElDQQorT0JST1ZTS0kgTUlIQUpMTworT0JST1ZTS0kgVkFTQQorT0JVxIZJTkEgUkFUT01JUgorT0JVxIZJTkEgU0xBVktPCitPQlXEhklOQSBTTEFWT0xKVUIKK09DT0tPTEpJxIYgTEpVQklOS08KK09Exb1JxIYgTk9WS0EKK09Exb1JxIYgUkFUT01JUgorT0TFvUnEhiBaT1JLQQorT0TFvU9WU0tJIElMSUpBCitPREFExb1JxIYgRFXFoEFOCitPREFExb1JxIYgR09SREFOQQorT0RBRMW9ScSGIEpFTElTQVZFVEEKK09EQUTFvUnEhiBOQURBCitPREFExb1JxIYgUkFESVZPSgorT0RBRMW9ScSGIFNURVZBTgorT0RBTE9WScSGIEJSQU5LTworT0RBVknEhi1KT1NJxIYgSkVMSUNBIERJUEwgSU5HCitPREFWScSGIE1JTEtBCitPREFWScSGIFNMQVZLTworT0RPUiBKT1NJUAorT0RPVknEhiBKT1ZPCitPRFJJIEJBTElOVAorT0RSSSBLQVJMTworT0ZFTkJFSEVSIEdJWkVMQQorT0ZFTkJFSEVSIFZBTEVSSUpBCitPRkVOQkVIRVIgVkVSSUNBCitPR0FSIEpFTEVOQQorT0dBUiBWTEFERQorT0dORU5PVlNLQSBCT0pBTkEKK09HTkVOT1ZTS0EgQ1ZFVEFOS0EKK09HTkpBTkFDIERSQUdJQ0EKK09HTkpBTk9WIE1JTEVUQQorT0dOSkFOT1ZBQyBCT1JJU0xBVgorT0dOSkFOT1ZJxIYgxJBPUsSQRQorT0dOSkFOT1ZJxIYgQUNBCitPR05KQU5PVknEhiBCUkFOSVNMQVZBCitPR05KQU5PVknEhiBEQU5JTE8KK09HTkpBTk9WScSGIERFSkFOIERSIExFS0FSCitPR05KQU5PVknEhiBETUlUQVIKK09HTkpBTk9WScSGIE1BUklKQSBEUiBMRUtBUgorT0dOSkFOT1ZJxIYgTUlIQUpMTworT0dOSkFOT1ZJxIYgTUlMT1ZBTgorT0dOSkFOT1ZJxIYgT0dOSkVOQQorT0dOSkFOT1ZJxIYgUkFET0pLQSBEUiBMRUtBUgorT0dOSkFOT1ZJxIYgUkFOS08KK09HTkpBTk9WScSGIFNQQVNPSkUKK09HTkpBTk9WScSGIFNWRVRMQU5BCitPR05KRU5PVknEhiBCT8W9SURBUgorT0dOSkVOT1ZJxIYgREFSQQorT0dOSkVOT1ZJxIYgRFJBR1VUSU4KK09HTkpFTk9WScSGIE1JTEVOS08KK09HTkpFTk9WScSGIE5JS09MQQorT0dOSkVOT1ZJxIYgTklLT0xBCitPR05KRU5PVknEhiBOT1ZLQQorT0dOSkVOT1ZJxIYgUEVUQVIKK09HTkpFTk9WScSGIFJBRE9WQU5LQQorT0dOSkVOT1ZJxIYgU1RBTklTTEFWCitPR05KRU5PVknEhiBTVEVWQU4KK09HTkpFTk9WScSGIFNURVZPCitPR05KRU5PVknEhiBUT01JU0xBVgorT0dPUkVMSUNBIEJJTEpBTkEKK09HT1JFTElDQSBCT0dEQU4KK09HT1JFTElDQSBCUkFOS08KK09HT1JFTElDQSBNQVJJSkEKK09HUklaRUsgRFJBR0lDQQorT0dSSVpFSyBEUkFHVVRJTgorT0dSSVpFSyBLUklTVElOQQorT0dSSVpFSyBST0JFUlQKK09HUklaT1ZJxIYgQUxFS1NBTkRBUgorT0dSSVpPVknEhiBCT1JBCitPR1JJWk9WScSGIERFU0FOS0EKK09HUklaT1ZJxIYgREVTQU5LQQorT0dSSVpPVknEhiBEUkFHSUNBCitPR1JJWk9WScSGIERVxaBBTgorT0dSSVpPVknEhiBMSlVCSUNBCitPR1JJWk9WScSGIExKVUJJQ0EKK09HUklaT1ZJxIYgTUlMQU4KK09HUklaT1ZJxIYgTUlMRQorT0dSSVpPVknEhiBNSUxJVk9KCitPR1JJWk9WScSGIE5FREVMSktPCitPR1JJWk9WScSGIE5FREVMSktPCitPR1JJWk9WScSGIFJBRE9KS0EKK09HUklaT1ZJxIYgU1JFVEEKK09HUklaT1ZJxIYgVkVMSktPCitPR1JJWk9WScSGIFZMQURJTUlSCitPR1JJWk9WScSGIFpPUkFOCitPSkRBTknEhiBTQVZBCitPSktJxIYgU0xBVktPCitPS0HFoEFOT1ZJxIYgU1JFVEVOCitPS0FOSiBTVEVWQU4KK09LQU5KSSBMQUpPxaAKK09LQU5KSSBPU0tBUgorT0tBTkpJIFJBTktBCitPS0FOSkkgVElCT1IKK09LQU5PVknEhiBOT1ZJQ0EKK09LRVpBTiBKT1ZBTgorT0tJTEogU0xBVktPCitPS0lMSkVWScSGIFNPRklKQQorT0tMSkXFoEEgTkVOQUQKK09LTEpFxaBBIE5FTkFECitPS0xPQkTFvUlKQSBNQVJLTworT0tSQUpOT1YgU1RFVkFOCitPS1JVxb1OSUsgRFJBR0FOCitPS1NFTkZFTEQgSk9WQU4KK09LVUtBIExKSUxKQU5BCitPS1VMScSGIEJPR0RBTgorT0tVTEnEhiBaT1JBTgorT0zFoE9WSSBOSUtPTEEKK09MQUggxaBBTkRPUgorT0xBSCDFoEFORE9SCitPTEFIIMWgQU5ET1IKK09MQUggxJBPUsSQRQorT0xBSCBBTkRSSUpBCitPTEFIIEVSTkEKK09MQUggRkVSRU5DCitPTEFIIEZFUkVOQworT0xBSCBJxaBUVkFOCitPTEFIIEnFoFRWQU4KK09MQUggSkVMRU5BCitPTEFIIEpFTElTQVZFVEEKK09MQUggSk9WQU4KK09MQUggSlVMSUpBTkEKK09MQUggTEFTTE8KK09MQUggTUlSS08KK09MQUggTkFORE9SCitPTEFIIE5BTkRPUgorT0xBSCBQQVZMRQorT0xBSCBQQVZMRQorT0xBSCBST1pBTElKQQorT0xBSCBWSU5DRQorT0xBSk/FoCBCRUxBCitPTEFKT8WgIEdPUkRBTkEKK09MQUpPxaAgSkFOT8WgCitPTEFKT8WgIE1JSEFMSgorT0xBSk/FoCBNSUhBTEoKK09MQUpPxaAgT1RPCitPTEFSIFBBVQorT0xCSU5BIFNMQVZLTworT0xFQVIgTUlIQUpMTworT0xFQVIgTUlIQUpMTworT0xFQVIgU0FOSkEKK09MRUFSIFNWRVRJU0xBVgorT0xFQVIgVkxBREEKK09MRUpBUiBKT0FLSU0KK09MScSMS09WIEJSQU5JU0xBVgorT0xJxIxLT1YgTUlMT1JBRAorT0xJxIYgU1RFVkFOCitPTElWRVJJxIYgTkVCT0rFoEEKK09MSsWgRVZTS0EgTkFUQcWgQQorT0xKQcSMQSBJTElKQQorT0xKQcSMQSBNQVJJQ0EKK09MSkHEjEEgTUlMRU5LTworT0xKQcSMQSBNSUxPVkFOCitPTEpBxIxBIE5JS09MQQorT0xKQcSMQSBSQURBCitPTEpBxIxBIFNMQVZPTEpVQgorT0xKQcSMQSBTVEFOSVNMQVYKK09MSkHEjEEgU1RFVkFOCitPTE1BTiBNQVJJSkEKK09MVcWgS0kgRE9CUklMQQorT0xVxaBLSSBEVcWgQU4KK09MVcWgS0kgRFXFoEFOCitPTFXFoEtJIExBWkFSCitPTFXFoEtJIE1JTFVUSU4KK09MVcWgS0kgTUlST1NMQVYKK09MVcWgS0kgTUlST1NMQVYKK09MVcWgS0kgT0xJVkVSQQorT0xVxaBLSSBTVE9KQU4KK09MVcWgS0kgVE9ET1IKK09MVcWgS0kgVE9NSVNMQVYKK09MVcWgS0kgVkFTQQorT0xVxaBLSSBWRUxJTUlSIERSCitPTFXFoEtJIFZFUklDQQorT0xVSknEhiBJVkFOQQorT0xVSknEhiBJVkFOCitPTFVKScSGIEpFTEVOQQorT0xVSknEhiBNSUxJQ0EKK09MVUpJxIYgTUlSS08KK09NxIxJS1VTIEJPxaBLTworT03EjElLVVMgSkVMRU5BCitPTcSMSUtVUyBNQUdEQQorT03EjElLVVMgTklLT0xBCitPTcSMSUtVUyBSQUpLTworT01BTEpFViBJVkFOCitPTUFMSkVWIElWQU4KK09NQUxKRVYgSlVMS0EKK09NQUxKRVYgTEVQT1NBVkEKK09NQUxKRVYgTEVQT1NBVkEKK09NQUxKRVYgTUlMRU5BCitPTUFMSkVWIE1JTE9SQUQKK09NQUxKRVYgVk9KSVNMQVYKK09NQVpJxIYgU09GSUpBCitPTUVSQUdJxIYgS0VNQUwKK09NRVJJIEhBSlJVRElOCitPTUVSSSBIQUxJTQorT01FUkkgSEFTTworT01FUkkgTkVExb1BRAorT01FUkkgTlVSVURJTgorT01FUlpVIEFOVE9OCitPTUVSWlUgRUxJWkFCRVRBCitPTUnEhiBJRFJJWgorT01PUkFDIEtBVEFSSU5BCitPTU9SQUMgTEFUSU5LQQorT07EjEVWU0tJIEpPVkFOCitPTsSMVSBQRVRBUgorT05EUklLIERVxaBBTktBCitPTkXFoMSMVUsgTUlIQUpMTworT05FxaDEhlVLIE5FTkFECitPTkhBVVogTUFSSUpBCitPTk9ESSBJxaBUVkFOCitPUEHEjEFLIEFOVFVOCitPUEHEjEFLIElWQU4KK09QQcSMScSGIEFOxJBBCitPUEHEjEnEhiBBTkdFTElOQQorT1BBxIxJxIYgQk9TSUxKS0EKK09QQcSMScSGIEJSQU5LTworT1BBxIxJxIYgRFXFoEFOCitPUEHEjEnEhiBLT1NUQQorT1BBxIxJxIYgTUlMQU4KK09QQcSMScSGIE1JTEFOCitPUEHEjEnEhiBNSUxPUkFECitPUEHEjEnEhiBNSU9EUkFHCitPUEHEjEnEhiBNSVJLTworT1BBxIxJxIYgTUlSS08KK09QQcSMScSGIE5FTkFECitPUEHEjEnEhiBQQVZMRQorT1BBxIxJxIYgU0lNTworT1BBxIxJxIYgU0xBVktPCitPUEHEjEnEhiBTVEVWQU4KK09QQcSMScSGIFRPRE9SCitPUEFMScSGIERBUklOS0EKK09QQUxJxIYgTUFSS08KK09QQUxJxIYgTklLT0xBCitPUEFMScSGIE5JS09MQQorT1BBTEnEhiBOSUtPTEEKK09QQUxJxIYgU09GSUpBCitPUEFOxIxBUkVWIERVxaBBTgorT1BBTsSMQVJFViBJVkFOCitPUEFOxIxBUkVWIE1JTEtBCitPUEFSTklDQSBMSlVCTworT1BBUk5JQ0EgTFVLQQorT1BBUk5JQ0EgTUFLU0lNCitPUEFSTklDQSBNQUtTSU0KK09QQVJOSUNBIE1BS1NJTQorT1BBUk5JQ0EgTUFSSU5LTworT1BBUk5JQ0EgTUlMRU5LTworT1BBUk5JQ0EgTUlSQQorT1BBUk5JQ0EgU09GSUpBCitPUEFSTklDQSBWSUQKK09QRUxDIExBRElTTEFWCitPUE9KTEVWScSGIExBWkFSCitPUFJBTk9WScSGIEJPxb1JREFSCitPUFJBTk9WScSGIE1JQ0EKK09QUkXFoE5JSyBBTktJQ0EKK09QUklKQU4gQU7EkEVMS08gRElQTCBJTkcKK09QUklKQU4gRFJBR0FOCitPUFJJSkFOIE1JTEtBCitPUFJVQyBNSUxPUkFECitPUFNFTklDQSBNSUxBTgorT1BTRU5JQ0EgU09LQQorT1LEjEnEhiDFoElNRQorT1LEjEnEhiDFoElNRQorT1LEjEnEhiBCT8W9SURBUgorT1LEjEnEhiBEUkFHTworT1LEjEnEhiBJVkFOCitPUsSMScSGIFNUSkVQQU4KK09SxaBJxIYgxJBPUsSQRQorT1LFoEnEhiBKT0NBCitPUsWgScSGIE1JTElDQQorT1LFoE/FoCDEkE9SxJBFCitPUsWgT8WgIEJSQU5LTworT1LFoE/FoCBEUkFHQU4KK09SxaBPxaAgRkVSRU5DCitPUsWgT8WgIEpPU0lQCitPUsWgT8WgIE5JS09MQQorT1LFoE/FoCBST1pBTElKQQorT1LFoE/FoCBTQVZBCitPUsWgT8WgIFRFUkVaQQorT1LFoE/FoCBaT1JBTgorT1LFoE9MScSGIFNUSkVQQU4KK09SQU5JQ0EgTUFLU0lNCitPUkFWRUMgQlJBTklTTEFWCitPUkFWRUMgQlJBTktPCitPUkFWRUMgTUFSS08KK09SQVZFQyBQQVZMRQorT1JCQU4gQUxFS1NBTkRBUgorT1JCQU4gRU1JTElKQQorT1JCQU4gR0FWUkEKK09SQkFOIFZFU05BCitPUkRBTk9TS0kgSkVMRU5BCitPUkRJTkHEjEVWIMSQT1LEkEUKK09SRElOQcSMRVYgTUxBREVOCitPUkRJTkHEjEVWIFRPRE9SCitPUkRJTkHEjEVWIFRPRE9SCitPUkRJTkHEjEVWIFRPRE9SCitPUkXFoMSMQU5JTiBCT0dEQU4KK09SRcWgxIxBTklOIEJSQU5LTworT1JFxaDEjEFOSU4gTUlMQU4KK09SRcWgxIxBTklOIE1JTE9WQU4KK09SRcWgxIxBTklOIE5BVEFMSUpBIERSCitPUkXFoMSMQU5JTiBOQVRBTElKQQorT1JFxaDEjEFOSU4gTklLT0xBCitPUkXFoMSMQU5JTiBSQURPVkFOCitPUkXFoMSMQU5JTiBWTEFESU1JUgorT1JFxaDEjEFOSU4gVkxBRElNSVIKK09SRcWgxIZBTklOIERVxaBBTgorT1JFxaBLT1ZJxIYgRE9OQQorT1JFxaBLT1ZJxIYgSkVMRU5BCitPUkXFoEtPVknEhiBNSUxFCitPUkXFoEtPVknEhiBTTEFWS08KK09SRcWgS09WScSGIFpWT05JTUlSCitPUkVCIEJPUklTCitPUkVIT1ZBQyBSVcW9QQorT1JFTEogxJBVUk8KK09SRUxKIEJSQU5JU0xBVgorT1JFTEogREFSSU5LQQorT1JFTEogSk9WQU4KK09SRUxKIExKVUJPCitPUkVMSiBNQVRJTERBCitPUkVMSiBNSUxFVkEKK09SRUxKIE5BVEFMSUpBCitPUkVMSiBSQURFCitPUkVOREkgSlVMSUpBTkEKK09SRU5ESSBMQVNMTworT1JFTkRJIE9UTworT1JMQU5EScSGIEtPUk5FTElKQQorT1JMQU5EScSGIFpPTFRBTgorT1JMScSGIEJSQU5JU0xBVgorT1JMScSGIExKVUJJQ0EKK09STEnEhiBMSlVCSUNBCitPUkxJxIYgTUFSSUNBCitPUkxJxIYgTUFSSUpBCitPUkxJxIYgTUlMQU4KK09STEnEhiBNSUxPUkFECitPUkxJxIYgTkFEQQorT1JMScSGIE5BREXFvURBCitPUkxJxIYgTkVERUxKS08KK09STElLIEFOQQorT1JMSUsgTUFSSUpBCitPUkxPVkFDIEVSxb1FQkVUCitPUkxPVknEhiBBTlRFCitPUkxPVknEhiBEQVJJTktBCitPUkxPVknEhiBEVcWgQU4KK09STE9WScSGIEpPVk8KK09STE9WScSGIExKVUJJQ0EKK09STE9WScSGIE1BTkUKK09STE9WScSGIE1JSEFKTE8KK09STE9WScSGIE1JTEFOCitPUkxPVknEhiBNSUxBTgorT1JMT1ZJxIYgTUlMT1JBRCBEUgorT1JMT1ZJxIYgTUlMT1JBRAorT1JMT1ZJxIYgU0HFoEEKK09STE9WScSGIFNSQk9MSlVCCitPUkxPVknEhiBTVEVWSUNBCitPUkxPVknEhiBTVE9KQU4KK09STE9WScSGIFNWRVRMQU5BCitPUk1BSSBUSUJPUgorT1JOSkFLT1YgUFJJWlJFTktBCitPUk8gxIxFRE9NSVIKK09ST1Mgxb1BUktPCitPUk9TIMSQVVJBCitPUk9TIMSQVVJBCitPUk9TIEFMQkVSVAorT1JPUyBFVUdFTgorT1JPUyBKT0FLSU0KK09ST1MgTUFSSUpBCitPUk9TIE5JS09MQQorT1JPUyBWQVNBCitPUk9TIFpERU5LQQorT1JPVsSMQU5FQyBLSVJBIERSCitPUk9WRUMgSk9TSVAKK09ST1ZJxIYgTUlMT1ZBTgorT1JTQUcgQU5UQUwKK09SU0nEhiBSQURNSUxBCitPUlRBSyBLQcSGQQorT1JWT8WgIExBSk/FoAorT1JaQSBNSVJDQQorT1JaQSBST1NBTkEKK09TRcSGQU5TS0kgTUxBREVOCitPU0VUUk9WIE5JS09MQQorT1NMT1bEjEFOIEJPU0lMSktBCitPU01BTkFKIElNRVIKK09TTUFOSSBBU0FOCitPU01BTkkgTUVITUVECitPU01BTkkgTkXFoEFUCitPU01BTkkgUk9NQU5LQQorT1NNQU5JIFNFTElNCitPU01BTktBxIwgU0VMSU0KK09TTUFOT1ZJxIYgS0xBVURJSkEKK09TTUFOT1ZJxIYgTEpVQklOS0EKK09TTU9OT0ogU0FEUklKQQorT1NOT1ZJxIYgT1NLQVIKK09TT1NMSUpBIFJBREVOS08KK09TUkVES0FSIEpPU0lQCitPU1RFUiBJTE9OQQorT1NUT0nEhiDEkE9SxJBFCitPU1RPScSGIFpPUkFOCitPU1RPSknEhiDFvUlWS08KK09TVE9KScSGIMSQT1LEkEUKK09TVE9KScSGIEJPxaBLTworT1NUT0pJxIYgQk/FvUlEQVIKK09TVE9KScSGIEJPxb1JREFSCitPU1RPSknEhiBCT0dEQU4KK09TVE9KScSGIEJSQU5BCitPU1RPSknEhiBCUkFOSU1JUgorT1NUT0pJxIYgQlJBTklTTEFWIERSCitPU1RPSknEhiBCUkFOS08KK09TVE9KScSGIERBRklOQQorT1NUT0pJxIYgRE9CUklWT0oKK09TVE9KScSGIERSQUdBTgorT1NUT0pJxIYgRFJBR0lDQQorT1NUT0pJxIYgRFJBR0lDQQorT1NUT0pJxIYgRFJBR09MSlVCCitPU1RPSknEhiBEVcWgQU4KK09TVE9KScSGIERVxaBBTgorT1NUT0pJxIYgRFXFoEFOCitPU1RPSknEhiBHT0pLTworT1NUT0pJxIYgR09SSU5LQQorT1NUT0pJxIYgSVZBTgorT1NUT0pJxIYgSk9WQU5LQQorT1NUT0pJxIYgS0FUSUNBCitPU1RPSknEhiBMQVpBUgorT1NUT0pJxIYgTEpVQkEKK09TVE9KScSGIExKVUJJTktPCitPU1RPSknEhiBMSlVCT01JUgorT1NUT0pJxIYgTEpVQk9NSVIKK09TVE9KScSGIExKVUJPTUlSCitPU1RPSknEhiBNScSGQQorT1NUT0pJxIYgTUlMQURJTgorT1NUT0pJxIYgTUlMQU4KK09TVE9KScSGIE1JTEVOS08KK09TVE9KScSGIE1JTEVOS08KK09TVE9KScSGIE1JTEVWQQorT1NUT0pJxIYgTUlMSUNBCitPU1RPSknEhiBNSUxLQQorT1NUT0pJxIYgTUlMT8WgCitPU1RPSknEhiBNSUxPUkFECitPU1RPSknEhiBNSUxPUkFECitPU1RPSknEhiBNSVJKQU5BCitPU1RPSknEhiBOQURBCitPU1RPSknEhiBOQVRBxaBBCitPU1RPSknEhiBORU5BRAorT1NUT0pJxIYgT0JSQUQKK09TVE9KScSGIE9CUkFECitPU1RPSknEhiBPTEdBCitPU1RPSknEhiBQRVRBUgorT1NUT0pJxIYgUEVUQVIKK09TVE9KScSGIFBFVEFSCitPU1RPSknEhiBQRVRBUgorT1NUT0pJxIYgUEVUQVIKK09TVE9KScSGIFBFVEFSCitPU1RPSknEhiBQUkVEUkFHCitPU1RPSknEhiBSQURJVk9KRQorT1NUT0pJxIYgUkFET0pJQ0EKK09TVE9KScSGIFJBRE9WQU4KK09TVE9KScSGIFJBVEtPCitPU1RPSknEhiBSSVNUTworT1NUT0pJxIYgU0xBVklDQQorT1NUT0pJxIYgU0xBVktPCitPU1RPSknEhiBTTE9CT0RBTgorT1NUT0pJxIYgU01JTEpLQQorT1NUT0pJxIYgU1RBTkEKK09TVE9KScSGIFNUQU5LQQorT1NUT0pJxIYgU1ZFVE9aQVIKK09TVE9KScSGIFRPTUlTTEFWCitPU1RPSknEhiBWQVNBCitPU1RPSknEhiBWQVNJTElKRQorT1NUT0pJxIYgVkVTRUxJTgorT1NUT0pJxIYgVkVTRUxJTgorT1NUT0pJxIYgVkxBRElNSVIKK09TVE9KScSGIFZPSklTTEFWCitPU1RPSknEhiBaQUdPUktBCitPU1RPSknEhiBaT1JBTgorT1NUT0pJxIYgWk9SQQorT1NUT0pJTiDFvUFSS08KK09TVE9KSU4gSlVMS0EKK09TVE9KSU4gTEFaQVIKK09TVE9KSU4gTUFSSUpBCitPU1RPSklOIE1JTE/FoAorT1NUT0pJTiBQRVJBCitPU1RPSklOIFBFUk8KK09TVE9KSU4gUEVUQVIKK09TVE9KSU4gUEVUQVIKK09TVE9KSU4gUkFET1ZBTgorT1NUT0pJTiBTVkVUSVNMQVYKK09TVE9KSU4gVE/FoEEKK09TVFJPR09OQUMgSVZBTiBOT1ZJTkFSCitPU1RST0dPTkFDIElWQU4KK09TVFJPR09OQUMgVElCT1IKK09TVkFMRCBCQVJCQVJBCitPU1ZBTEQgSVZBTgorT1NWQUxEIFZFUkEKK09UQcWgRVZJxIYgxb1JVktPCitPVEHFoEVWScSGIEpPVkFOCitPVEHFoEVWScSGIFNMT0JPREFOS0EKK09UQcWgRVZJxIYgVkxBU1RBCitPVEnEhiDFvUlWS08KK09UScSGIEJPUklWT0oKK09UScSGIEJPUklWT0oKK09UScSGIERBUklOS0EKK09UScSGIERVQlJBVktBCitPVEnEhiBKT1ZBTktBCitPVEnEhiBLQVRJQ0EKK09UScSGIE1JTEFOCitPVEnEhiBNSUxJVk9KCitPVEnEhiBOSUtPTEEKK09UScSGIE5PVkFLCitPVEnEhiBSQURPU0xBVkEKK09UScSGIFJBRE9TTEFWQQorT1RJxIYgUkFET1NMQVYKK09UScSGIFNBVkEKK09UScSGIFNWRVRPWkFSCitPVEnEhiBWRUxJWkFSCitPVEnEhiBWTEFESVNMQVYKK09UScSGIFZVS0lDQQorT1RMT0tBTiBKT1ZBTgorT1RNQcSMScSGIERSQUdPCitPVE/FoCBBTkRSQcWgCitPVE9SQU5PViBTTEFWS08KK09UT1ZJxIYgVkxBRElNSVIKK09UUlVQxIxBSyBKT1NJUAorT1RSVVDEjEFLIE1JTE/FoAorT1RSVVDEjEFLIFNBTVVJTE8KK09WQ0lOIE1JTE9SQUQKK09WVUtBIMSQVVJPCitPVlVLQSDEkFVSTworT1ZVS0EgTUlMQU4KK09WVUtBIE5JS09MQQorT1pFUiDEkFVSQQorT1pFUiDEkFVSQQorT1pFUiDEkFVSQQorT1pNRUMgVkVSQQorUMWgRU5JxIxOSUsgWlZPTklNSVIKK1BBxIxBUknEhiDFvUlWQU4KK1BBxIxBUknEhiBNQVJJSkEKK1BBxIxBUknEhiBNSVJLTworUEHEjEFSScSGIE5JS09MQQorUEHEjEFSScSGIFJBRElWT0oKK1BBxIxBUknEhiBSQURPTUlSCitQQcSMQVJJxIYgWk9SQU4KK1BBxaDEhkFOIMWgVEVGQU5JSkEKK1BBxaDEhkFOIMSQT1LEkEUKK1BBxaDEhkFOIMSQT1LEkEUKK1BBxaDEhkFOIEFOS0EKK1BBxaDEhkFOIERBTklDQQorUEHFoMSGQU4gRFJBR0FOCitQQcWgxIZBTiBEVcWgQU5LQQorUEHFoMSGQU4gRFXFoEFOCitQQcWgxIZBTiBHQVZSQQorUEHFoMSGQU4gSk9WQU4KK1BBxaDEhkFOIEpPVkFOCitQQcWgxIZBTiBNSUxPUkFECitQQcWgxIZBTiBOQURFxb1EQQorUEHFoMSGQU4gTkVERUxKS08KK1BBxaDEhkFOIE5JS09MQQorUEHFoMSGQU4gT0xHQQorUEHFoMSGQU4gUEVSQQorUEHFoMSGQU4gUEVUQVIKK1BBxaDEhkFOIFJBRElWT0oKK1BBxaDEhkFOIFJBRE9TTEFWQQorUEHFoMSGQU4gUkFET1NMQVYKK1BBxaDEhkFOIFNBVkEKK1BBxaDEhkFOIFNJTknFoEEKK1BBxaDEhkFOIFNNSUxKQQorUEHFoMSGQU4gU1RFVkFOCitQQcWgxIZBTiBUT0RPUgorUEHFoMSGQU4gVkFTQQorUEHFoMSGQU4gWkFHT1JLQQorUEHFoMSGQU5PVknEhiBHUkFESU1JUgorUEHFoMSGQU5PVknEhiBMQVpBUgorUEHFoMSGQU5PVknEhiBMSlVCSUNBCitQQcWgxIZJSyBLTEFSQQorUEHFoMSGSUsgTEFTTE8KK1BBxaBBR0nEhiBSQUpLTworUEHFoEFKTEnEhiBBTsSQRUxLTworUEHFoEFKTEnEhiBCSUxKQU5BCitQQcWgQUpMScSGIE1JT0RSQUcKK1BBxaBBSkxJxIYgUkFET1NMQVYKK1BBxaBBSkxJxIYgUkFET1NMQVYKK1BBxaBBSkxJxIYgVkxBRE8KK1BBxaBBTEnEhiBQQVZMRQorUEHFoEFOU0tJIE1JTEFOCitQQcWgQU5TS0kgVlVLSUNBCitQQcWgScSGIEJPxb1BTkEKK1BBxaBJxIYgQk/FvU8KK1BBxaBJxIYgRFJBR0lDQQorUEHFoEnEhiBEVcWgS08KK1BBxaBJxIYgSk9WQU4KK1BBxaBJxIYgS0FUSUNBCitQQcWgScSGIE1JTEFOCitQQcWgScSGIE1JTEVOQQorUEHFoEnEhiBQRVRBUgorUEHFoEnEhiBST1NBCitQQcWgScSGIFNBxaBBCitQQcWgScSGIFNJTknFoEEKK1BBxaBJxIYgU1RPSkEKK1BBxaBJxIYgVk9KSVNMQVYKK1BBxaBJxIYgWk9SQQorUEHFoElOIEdST1pEQU5BCitQQcWgS0EgxaBBTkRPUgorUEHFoEtJTk9WIFZBU0tPCitQQcWgVEVSQUMgQUxFS1NBTkRBUgorUEHFoFRJIMWgQU5ET1IKK1BBxaBUSSBNQVRJSkEKK1BBxaBVSktPVknEhiBKT1ZBTgorUEHEhkkgQk9SSVMKK1BBxIZJIEnFoFRWQU4KK1BBxIZJIE1BUklPCitQQcSGVUsgTklLT0xBCitQQcSGVUsgU0xBVktPCitQQcW9xJBFUlNLSS1NQU5PSkxPVknEhiBKRUxFTkEKK1BBxb1JTiDFvUVMSktPCitQQcW9SU4gQU7EkEVMS08KK1BBxb1JTiBEQU5JQ0EKK1BBxb1JTiBMSlVCT01JUgorUEHEkEFOIExKVUJPTUlSCitQQcSQQU4gTUlMSUNBCitQQcSQRU4gRFXFoEFOCitQQcSQRU4gTEVQQQorUEHEkEVOIE1BUklKQQorUEHEkEVOIFNURVZBCitQQcSQRU4gWkRSQVZLTworUEFDIElWQU5LQQorUEFDRUsgTEFTTE8KK1BBQ0lLIEnFoFRWQU4KK1BBREXFvUFOSU4gTEpVQk8KK1BBREXFvUFOSU4gVkxBREVUQQorUEFERUpTS0kgTUlMRU5BCitQQURFSlNLSSBNSUxPVkFOCitQQURFSlNLSSBTQVZBCitQQURFSlNLSSBWRUxJTUlSCitQQURJIEFMRUtTQU5EQVIKK1BBREkgQUxFS1NBTkRBUgorUEFESSBMQUpPxaAKK1BBRFJPViBHT1JBTgorUEFEUk9WIE5JS09MQQorUEFEUk9WIFJBRElWT0oKK1BBRFJPViBWRVNOQQorUEFHQcSMIEJJTEpBTkEKK1BBR0HEjCBOSUtPTEEKK1BBR0HEjEVWScSGIEFOxJBFTEtPCitQQUdBxIxFVknEhiBEUkFHT01JUgorUEFHQcSMRVZJxIYgU1RFVkFOCitQQUdBxIxFVknEhiBTVEVWQU4KK1BBR0HEjEVWScSGIFZBU0EKK1BBR0FORVRPIFRJTkEKK1BBR09OSVMgSlVMS0EKK1BBR09OSVMgVkxBRElNSVJPUworUEFJxIYgxJBVUkHEkAorUEFJxIYgRFJBR0FOCitQQUnEhiBGUkFORQorUEFJxIYgSVZBTgorUEFJxIYgTUFSSUpBCitQQUrEjEnEhiBBTEVLU0EKK1BBSsSMScSGIEFOQQorUEFKxIxJTiBJTElKQQorUEFKxIxJTiBNSUxPSktPCitQQUrEjElOIE5FREVMSktBCitQQUrEjElOIFZPSklTTEFWCitQQUpBTlRJxIYgRFJBR0FOCitQQUpBWklUT1ZJxIYgTUlSSkFOQQorUEFKREFLT1ZJxIYgRFVCUkFWS0EKK1BBSkRJxIYgSlVMSUpBCitQQUpEScSGIE1BUklKQU4KK1BBSkVWScSGIMSQT1LEkEUKK1BBSkVWScSGIERSQUdPTEpVQgorUEFKRVZJxIYgR09SQU4KK1BBSkVWScSGIEtPU1RBCitQQUpFVknEhiBNSUxBTgorUEFKScSGIEJMQUdPSkUKK1BBSknEhiBCTEFHT0pFCitQQUpJxIYgQk/FvUlEQVIKK1BBSknEhiBCT8W9TworUEFKScSGIEJPR0nEhgorUEFKScSGIEJPUklTTEFWCitQQUpJxIYgQlJBTklTTEFWCitQQUpJxIYgQlJBTktPCitQQUpJxIYgQlVESVNMQVYKK1BBSknEhiBET0JSSVZPSgorUEFKScSGIERSQUdPU0xBVgorUEFKScSGIERVxaBBTiBEUgorUEFKScSGIERVxaBBTgorUEFKScSGIERVxaBBTgorUEFKScSGIEVNSU5BCitQQUpJxIYgR09SREFOQQorUEFKScSGIEdPUklDQQorUEFKScSGIEdSVUpBCitQQUpJxIYgS09WSUxKS0EKK1BBSknEhiBMSlVCSU5LQQorUEFKScSGIExKVUJPTUlSIERJUEwgSU5HCitQQUpJxIYgTUFSSUpBCitQQUpJxIYgTUlMSUNBCitQQUpJxIYgTUlMSVZPSkUKK1BBSknEhiBNSUxPxaAKK1BBSknEhiBNSUxPxaAKK1BBSknEhiBNSUxPSkUKK1BBSknEhiBNSUxPUkFECitQQUpJxIYgTUlMT1NBVgorUEFKScSGIE1JTFVOCitQQUpJxIYgTUlSS08KK1BBSknEhiBNSVJLTworUEFKScSGIE1MQURFTgorUEFKScSGIE5BREEKK1BBSknEhiBOQURBCitQQUpJxIYgTklLT0xBCitQQUpJxIYgTk9WQUsKK1BBSknEhiBQRVJPCitQQUpJxIYgUEVUQVIKK1BBSknEhiBSQURPSklDQQorUEFKScSGIFJBRE9NSVIKK1BBSknEhiBSQURPU0xBVkEKK1BBSknEhiBSQUpLTworUEFKScSGIFNJTknFoEEKK1BBSknEhiBTTUlMSkEKK1BBSknEhiBTUkVET0pFCitQQUpJxIYgU1RFVkFOCitQQUpJxIYgU1ZFVE9aQVIKK1BBSknEhiBUSUhPTUlSCitQQUpJxIYgVkFTQQorUEFKScSGIFZFTElNSVIKK1BBSknEhiBWRVNFTElOCitQQUpJxIYgVklET1NBVkEKK1BBSknEhiBWTEFESVNMQVYKK1BBSknEhiBWVUtJQ0EKK1BBSklLIERBTklDQQorUEFKSU4gSk9WQU4KK1BBSklOIE1JTElWT0oKK1BBSktFUlQgQUxFS1NBTkRBUgorUEFKS0VSVCBGUkFOSkEKK1BBSktFUlQgTUlST1NMQVZBCitQQUpLRVJUIFJBTktBCitQQUpLScSGIERSQUdBTgorUEFKS0nEhiBSQURPU0xBVgorUEFKS09WScSGIERSQUdBTkEKK1BBSktPVknEhiBWTEFTVElNSVIKK1BBSk9SIE1BVElKQQorUEFKT1ZJxIYgxaBQSVJPCitQQUpPVknEhiDEkE9SxJBFCitQQUpPVknEhiBEUkFHT01JUgorUEFKT1ZJxIYgRFXFoEFOCitQQUpPVknEhiBKRUxFTkEKK1BBSk9WScSGIFBSRURSQUcKK1BBSk9WScSGIFJBSktPCitQQUpPVknEhiBTTE9CT0RBTgorUEFKT1ZJxIYgWk9SS0EKK1BBSlRBxaBFViBET0JSSVZPSgorUEFKVEFLIFJBRE1JTEEKK1BBSlRJxIYgUEFWTEUKK1BBSlZBTsSMScSGIEZSQU5KQQorUEFKVkFOxIxJxIYgS0FUQQorUEFKVkFOxIxJxIYgTUFSSUpBTkEKK1BBSlZPRCBCT1NJTEpLQQorUEFLQcWgS0kgxJBVUkEKK1BBS0HFoEtJIE1JS0EKK1BBS0HFoEtJIE1JTE9WQU4KK1BBS0HFoEtJIFJBRE9TTEFWCitQQUtBxaBLSSBTSU1BCitQQUtBxaBLSSBWQVNBCitQQUtBxaBLSSBWSVRBTElKIERJUEwgSU5HCitQQUtBSSBKT8W9RUYKK1BBS0FJIExBU0xPCitQQUtMQVIgVklEQQorUEFLTEVESU5BQyBWSU5LTworUEFLVcWgRVZTS0kgS0FUQVJJTkEKK1BBS1XFoEVWU0tJIE1JSEFKTE8KK1BBS1XFoEVWU0tJIE1JVEFSCitQQUtVxaBFVlNLSSBSVcW9SUNBCitQQUtVxaBFVlNLSUogU1RFRkFOCitQQUwgSUxPTkEKK1BBTCBST1pBTElKQQorUEFMxIxFSyBKT1NJUAorUEFMQcSMS09WScSGIE1JTEFOCitQQUxBxIxLT1ZJxIYgVVJPxaAKK1BBTEHFoFRJIMSQT1LEkEUKK1BBTEHFoFRJIERFU0FOS0EKK1BBTEHFoFRJIEnFoFRWQU4KK1BBTEHFoFRJIEnFoFRWQU4KK1BBTEHFoFRJIEpPU0lQCitQQUxBxaBUSSBST1pBTElKQQorUEFMQURBIEpPWk8KK1BBTEFMScSGIMSQVVJBCitQQUxBTEnEhiBEUkFHQU4KK1BBTEFMScSGIERVxaBBTgorUEFMQUxJxIYgR09KS08KK1BBTEFMScSGIEdPSktPCitQQUxBTEnEhiBJTElKQQorUEFMQUxJxIYgSk9WQU4KK1BBTEFMScSGIE1JUktPCitQQUxBTEnEhiBORVZFTkEKK1BBTEFMScSGIE5JS08KK1BBTEFMScSGIFBBVkxFCitQQUxBTEnEhiBSQURFCitQQUxBTEnEhiBTTkXFvUFOQQorUEFMQUxJxIYgU1JFVE8KK1BBTEFMScSGIFNUT0pBTgorUEFMQUxJxIYgVE9ERQorUEFMQUxJxIYgVklECitQQUxBTEnEhiBWT0pJTgorUEFMQUxJxIYgWkRSQVZLTworUEFMQU1BUsSMVUsgQUxFS1NBTkRBUgorUEFMQU4gSk9TSVAKK1BBTEFOxIxBTklOIEVMRU5BCitQQUxBTsSMQU5JTiBKT1ZBTgorUEFMQU7EjEFOSU4gUlXFvUEKK1BBTEFOxIxBTklOIFZBU0EKK1BBTEFOxIxBTklOIFZBU0EKK1BBTEFOQcSMS0kgxJBPUsSQRQorUEFMQU5BxIxLSSBSVcW9SUNBCitQQUxBTkHEjEtJIFNBVkEKK1BBTEFUSU5VxaAgQU5EUkHFoAorUEFMQVRJTlXFoCBJxaBUVkFOCitQQUxBVElOVcWgIEpPxb1FRgorUEFMRcW9RVZJxIYgQk9SSVNMQVYKK1BBTEVWScSGIFNMQVZJQ0EKK1BBTEZJIEFMRUtTQU5EQVIKK1BBTEZJIEJPUktBCitQQUxGSSBJxaBUVkFOCitQQUxGSSBJxaBUVkFOCitQQUxGSSBKVUxJSkFOQQorUEFMRkkgS0FUSUNBCitQQUxJxIxLTyDEkFVSxJBJTktBCitQQUxJxIxLTyBBTkRSQcWgCitQQUxJxIxLTyBJTEXFoAorUEFMScSMS08gSVJFTkEKK1BBTEnEjEtPIEpFTEVOQQorUEFMScWgQcWgS0kgT0xHQQorUEFMScSGIEJPUklTTEFWIERJUEwgSU5HCitQQUxJxIYgRFJBR0FOCitQQUxJxIYgRFXFoEFOCitQQUxJxIYgTEpVQklDQQorUEFMScSGIE1BUlRBCitQQUxJxIYgTUlMRU5LTworUEFMScSGIE5JS09MQQorUEFMScSGIE9MR0EKK1BBTEnEhiBTVEVWQU4KK1BBTEnEhiBTVEVWQU4KK1BBTEnEhiBWTEFTVElNSVIKK1BBTElOS0HFoCDEkE9SxJBFCitQQUxJTktBxaAgxJBVUkEKK1BBTElOS0HFoCBCTEFOS0EKK1BBTElOS0HFoCBCT1JJVk9KRSBESVBMIElORworUEFMSU5LQcWgIEZSQU5KQQorUEFMSU5LQcWgIEdFWkEKK1BBTElOS0HFoCBKT8W9RUYKK1BBTElOS0HFoCBNQVJJSkEKK1BBTElOS0HFoCBNSUhBTEoKK1BBTElOS0HFoCBNSVJLTworUEFMSU5LQcWgIFNURVZBTgorUEFMSU5LQcWgIFZFUkEgRFIKK1BBTEpJxIYgTEpVQk9NSVIKK1BBTEpVUkFTIEFQT1NUT0xPUworUEFMT8WgIElWQU4KK1BBTE/FoEkgT0xHQQorUEFMT0MgxaBBTkRPUgorUEFMT0MgTEFTTE8KK1BBTE9DIFRJQk9SCitQQUxPVEHFoCBBTkRSSUpBCitQQUxPViBNSUhBSUxPIERSCitQQUxVUk9WScSGIFNURVBBTgorUEFNVcSMSU5BIEpPVkFOCitQQU7EjEnEhiBHQVZSSUxPCitQQU7EjEnEhiBHUkFESU1JUgorUEFOxIxJxIYgSlVMSUpBTkEKK1BBTsSMScSGIEpVTElKQU5BCitQQU7EjEnEhiBTTE9CT0RBTgorUEFOxIxJxIYgWk9SQU4KK1BBTsSMT1ZBTiBBVlJBTQorUEFOxIxVTElEWkVWIEFMRUtTSUpFCitQQU5BSk9USURJUyBMRU9OSURBUworUEFOQU9UT1ZJxIYgQk9HREFOCitQQU5BT1RPVknEhiBEVcWgQU5LQQorUEFOQU9UT1ZJxIYgSk9WSUNBCitQQU5BT1RPVknEhiBNSVJKQU5BCitQQU5DRVIgQlJBTktPCitQQU5DRVIgQlJBTktPCitQQU5Exb1BIEJPxb1JQ0EKK1BBTkTFvUEgWlZFWkRBTkEKK1BBTkTFvUnEhiBOQURBCitQQU5Exb1JxIYgU0xPQk9EQU5LQQorUEFORMW9ScSGIFNWRVRPWkFSCitQQU5Exb1JxIYgVE9NSVNMQVYKK1BBTkTFvUnEhiBWT0pJU0xBViBESVBMIElORworUEFOREkgT1NLQVIKK1BBTkRVUkVWScSGIE1JTEFOS08KK1BBTkRVUk9WIMW9SVZLQQorUEFORFVST1YgQUNBCitQQU5EVVJPViBEUkFHT0xKVUIKK1BBTkRVUk9WIERVxaBBTktBCitQQU5EVVJPViBNSUxJQ0EKK1BBTkRVUk9WIE1JTElWT0oKK1BBTkRVUk9WIE1JUk9TTEFWCitQQU5EVVJPViBQRVRBUgorUEFORFVST1YgU0FWQQorUEFORFVST1YgWk9SQU4KK1BBTkRVUk9WIFpPUkFOCitQQU5EVVJPVknEhiDFvUlWS0EKK1BBTkRVUk9WScSGIElWQU4KK1BBTkRVUk9WScSGIEpPVkFOCitQQU5EVVJPVknEhiBKVUxLQQorUEFORFVST1ZJxIYgUEFWTEUKK1BBTkRVUk9WScSGIFJBRE1JTEEKK1BBTkRVUk9WScSGIFNSRVRFTgorUEFORFVST1ZJxIYgU1ZFVE9aQVIKK1BBTkRVUk9WScSGIFRPTUlTTEFWCitQQU5EVVJPVknEhiBWTEFESVNMQVZBCitQQU5EVVJPVknEhiBWT0pJTgorUEFORFVSU0tJIE1JUk9TTEFWCitQQU5HRVJDIE1BUkEKK1BBTkdFUkMgVkVMSUJPUgorUEFOScSGIMW9QVJLTworUEFOScSGIMW9SVZBTgorUEFOScSGIMW9SVZPSklOCitQQU5JxIYgxJBPUsSQRQorUEFOScSGIMSQT1LEkEUKK1BBTknEhiDEkE9SxJBFCitQQU5JxIYgxJBPUsSQRQorUEFOScSGIMSQT1LEkEUKK1BBTknEhiDEkFVSQQorUEFOScSGIEFMRUtTQU5EQVIKK1BBTknEhiBBTkEKK1BBTknEhiBBTkEKK1BBTknEhiBBTlRVTgorUEFOScSGIEJSQU5JU0xBVgorUEFOScSGIEJSQU5JU0xBVgorUEFOScSGIEJSQU5JU0xBVgorUEFOScSGIEJSQU5LTworUEFOScSGIERBTUpBTgorUEFOScSGIERBTklMS0EKK1BBTknEhiBEUkFHQU4KK1BBTknEhiBEUkFHQU4KK1BBTknEhiBEUkFHQU4KK1BBTknEhiBEUkFHQU4KK1BBTknEhiBEUkFHT0xKVUIKK1BBTknEhiBEUkFHT1NMQVYKK1BBTknEhiBEUkFHT1NMQVYKK1BBTknEhiBEUkVOQQorUEFOScSGIERVxaBBTgorUEFOScSGIERVxaBBTgorUEFOScSGIEdPUkRBTkEKK1BBTknEhiBJTElKQQorUEFOScSGIElMT05BCitQQU5JxIYgSkHFoEEKK1BBTknEhiBKRUxFTkEKK1BBTknEhiBKRUxFTkEKK1BBTknEhiBKT1ZBTktBIERSCitQQU5JxIYgSk9WQU5LQQorUEFOScSGIEpPVkFOS0EKK1BBTknEhiBKVUxLQQorUEFOScSGIEtBSUNBCitQQU5JxIYgS0FUQQorUEFOScSGIEtPTlNUQU5USU4KK1BBTknEhiBMSlVCSUNBCitQQU5JxIYgTUFSS08KK1BBTknEhiBNScSGTworUEFOScSGIE1JQ0EKK1BBTknEhiBNSUtBCitQQU5JxIYgTUlMQU5BCitQQU5JxIYgTUlMQU4KK1BBTknEhiBNSUxFTkEKK1BBTknEhiBNSUxFTktPCitQQU5JxIYgTUlMRQorUEFOScSGIE1JTElDQQorUEFOScSGIE1JTElKQQorUEFOScSGIE1JTElWT0oKK1BBTknEhiBNSUxJVk9KCitQQU5JxIYgTUlMSVZPSgorUEFOScSGIE1JTE/FoAorUEFOScSGIE1JTE/FoAorUEFOScSGIE1JTE/FoAorUEFOScSGIE1JTE9SQUQKK1BBTknEhiBNSUxPUkFECitQQU5JxIYgTUlMT1ZBTgorUEFOScSGIE1JUkpBTkEKK1BBTknEhiBNSVJLTworUEFOScSGIE1JUktPCitQQU5JxIYgTUlST1NMQVYKK1BBTknEhiBOQURBCitQQU5JxIYgTkFEQQorUEFOScSGIE5BREEKK1BBTknEhiBORU1BTkpBCitQQU5JxIYgTkVOQUQKK1BBTknEhiBPQlJBRElOCitQQU5JxIYgT0dOSkVOCitQQU5JxIYgT0xHQQorUEFOScSGIFBFVEFSCitQQU5JxIYgUEVUQVIKK1BBTknEhiBQUkVEUkFHCitQQU5JxIYgUkFESVZPSkUKK1BBTknEhiBSQURPTUlSCitQQU5JxIYgUkFET1NMQVYKK1BBTknEhiBSQU5LTworUEFOScSGIFJJU1RPCitQQU5JxIYgU0HFoEEKK1BBTknEhiBTQU5KQQorUEFOScSGIFNMQcSQQU5BCitQQU5JxIYgU01JTEpBTktBCitQQU5JxIYgU05Fxb1BTkEKK1BBTknEhiBTUsSQQU4KK1BBTknEhiBTUkJPTEpVQgorUEFOScSGIFNUQU5BCitQQU5JxIYgU1RBTktBCitQQU5JxIYgU1RFVkFOCitQQU5JxIYgU1RFVkFOCitQQU5JxIYgU1RFVkFOCitQQU5JxIYgU1ZFVE9aQVIKK1BBTknEhiBUT01JU0xBVgorUEFOScSGIFVHTEpFxaBBCitQQU5JxIYgVkFTSUxKS0EKK1BBTknEhiBWTEFESU1JUgorUEFOScSGIFZPSklTTEFWCitQQU5JxIYgWkRSQVZLTworUEFOScSGIFpMQVRLTworUEFOScSGIFpPUkFOCitQQU5JxIYgWk9SQQorUEFOSUFOIEFOSUNBCitQQU5JTiBCT1JJVk9KRQorUEFOSU4gQlJBTkEKK1BBTklOIE1JTElDQQorUEFOSU4gTUlMT8WgCitQQU5JTiBNSVRBCitQQU5JTiBNTEFERU4KK1BBTklOIFpPUkFOCitQQU5JTsSMScSGIFNPRklKQQorUEFOSktPVknEhiBCSUxKQU5BCitQQU5KS09WScSGIEJSQU5LQQorUEFOSktPVknEhiBEUkFHQU4KK1BBTkpLT1ZJxIYgSUxJSkEgTVIKK1BBTkpLT1ZJxIYgSkVMRU5BCitQQU5KS09WScSGIE1FTEFOSUpBCitQQU5KS09WScSGIE1JTEFOCitQQU5KS09WScSGIE1JTEFOCitQQU5KS09WScSGIE1JTEFOCitQQU5KS09WScSGIE1JTElDQQorUEFOSktPVknEhiBOQURBCitQQU5KS09WScSGIE5JS09MQQorUEFOSktPVknEhiBQRVRBUgorUEFOSktPVknEhiBWTEFESU1JUgorUEFOS09WIEJSQU5JU0xBVgorUEFOS09WIEJSQU5JU0xBVgorUEFOS09WIEJSQU5LTworUEFOS09WIEpFTEVOQQorUEFOS09WIEpFTElDQQorUEFOS09WIEtBVElDQQorUEFOS09WIE1BUktPCitQQU5LT1YgTUlMRU5LTworUEFOS09WIE1JTE9WQU4KK1BBTktPViBQUkVEUkFHCitQQU5LT1YgUkFET1NMQVYKK1BBTktPViBTQVZBCitQQU5LT1YgU0xBVktPCitQQU5LT1YgU1ZFVE9aQVIKK1BBTktPViBWRVNOQQorUEFOS09WScSGIExBWkFSCitQQU5PViBERVNBTktBCitQQU5PViBORU5BRAorUEFOT1ZJxIYgQU7EkEVMS08KK1BBTk9WScSGIE1JT0RSQUcKK1BBTlRFTEVNT05PViBORURFTEpLTworUEFOVEVMRU1PTk9WIE5PVktBCitQQU5URUxJxIYgxIxFRE9NSVIKK1BBTlRFTEnEhiDFvUFSS08KK1BBTlRFTEnEhiDEkE9SxJBFCitQQU5URUxJxIYgxJBPUsSQRQorUEFOVEVMScSGIEFOxJBFTEtPCitQQU5URUxJxIYgQU5BCitQQU5URUxJxIYgQk9SSVZPSkUKK1BBTlRFTEnEhiBCT1JJVk9KCitQQU5URUxJxIYgQ1ZFVElOCitQQU5URUxJxIYgREFGSU5BCitQQU5URUxJxIYgREFOSUNBCitQQU5URUxJxIYgRFJBR0FOCitQQU5URUxJxIYgRFJBR09MSlVCCitQQU5URUxJxIYgRFJBR09MSlVCCitQQU5URUxJxIYgSUxJSkEgRElQTCBJTkcKK1BBTlRFTEnEhiBJTElKQQorUEFOVEVMScSGIEpVTElKQU5BCitQQU5URUxJxIYgS0FNRU5LTworUEFOVEVMScSGIExBWkFSCitQQU5URUxJxIYgTEpVQknFoEEKK1BBTlRFTEnEhiBMSlVCSUNBCitQQU5URUxJxIYgTUlIQUpMTworUEFOVEVMScSGIE1JTEFESU4KK1BBTlRFTEnEhiBNSUxBTgorUEFOVEVMScSGIE1JTE/FoAorUEFOVEVMScSGIE1JTE9SQUQKK1BBTlRFTEnEhiBNSUxPVkFOCitQQU5URUxJxIYgTUlPRFJBRworUEFOVEVMScSGIE1JUk9TTEFWCitQQU5URUxJxIYgTU9NxIxJTE8KK1BBTlRFTEnEhiBNT01JUgorUEFOVEVMScSGIE5FTkFECitQQU5URUxJxIYgTkVWRU5LQQorUEFOVEVMScSGIE5JS09MQQorUEFOVEVMScSGIFBBSk8KK1BBTlRFTEnEhiBQQVZMRQorUEFOVEVMScSGIFBFVEFSIERJUEwgSU5HCitQQU5URUxJxIYgUEVUQVIKK1BBTlRFTEnEhi1QRVRST1ZJxIYgTUFSSUpBCitQQU5URUxJxIYgU0xBVklDQQorUEFOVEVMScSGIFNPRklKQQorUEFOVEVMScSGIFZBU0EKK1BBTlRFTEnEhiBWRVJBCitQQU5URUxJxIYgVkxBRElNSVIKK1BBTlRFTEnEhiBWTEFESVNMQVYKK1BBTlRFTEnEhiBWVUpJQ0EKK1BBTlRFTEnEhi1WVUtBTk9WScSGIFZVS09TQVZBCitQQU5URUxJxIYgVlVLSUNBCitQQU5URUxJxIYgVlVLSUNBCitQQU5URUxJxIYgWk9SQU4KK1BBTlRFTElOIEdFT1JHSUpFCitQQU5URUxJTkFDIE5JS09MQQorUEFOVEVMSU5BQyBQQVZMRQorUEFOVEVMSU5BQyBTTE9CT0RBTgorUEFOVEnEhiDFvUFSS08KK1BBTlRJxIYgxb1JVkFOCitQQU5UScSGIMW9SVZLQQorUEFOVEnEhiDFvUlWT0pJTgorUEFOVEnEhiDFvUlWT1JBRAorUEFOVEnEhiDEkE9SxJBFCitQQU5UScSGIMSQVVLEkElOS0EKK1BBTlRJxIYgQUxFS1NBTkRBUgorUEFOVEnEhiBCQVRBCitQQU5UScSGIEJPR0RBTgorUEFOVEnEhiBCT1JJVk9KRQorUEFOVEnEhiBCT1NJTEpLQQorUEFOVEnEhiBET0JSSVZPSgorUEFOVEnEhiBET0JST1NBVgorUEFOVEnEhiBEVcWgQU4KK1BBTlRJxIYgR0laRUxBCitQQU5UScSGIEdWT1pERU4KK1BBTlRJxIYgSkVMSUNBCitQQU5UScSGIExKVUJJQ0EKK1BBTlRJxIYgTUFSSU5BCitQQU5UScSGIE1JSEFJTE8KK1BBTlRJxIYgTUlMQU4KK1BBTlRJxIYgTUlMRU5LTworUEFOVEnEhiBNSUxJVk9KRQorUEFOVEnEhiBNSUxJVk9KCitQQU5UScSGIE1JTE9SQUQKK1BBTlRJxIYgTUlMT1JBRAorUEFOVEnEhiBNSU9EUkFHIERSIExFS0FSCitQQU5UScSGIFJBREVOS08KK1BBTlRJxIYgUkFET01JUgorUEFOVEnEhiBSQURPTUlSCitQQU5UScSGIFJBRE9TTEFWCitQQU5UScSGIFJPWkEKK1BBTlRJxIYgU0VMSU1JUgorUEFOVEnEhiBTRUxJTUlSCitQQU5UScSGIFNWRVRPWkFSCitQQU5UScSGIFRPTUlTTEFWCitQQU5UScSGIFVST8WgCitQQU5UScSGIFZFU05BCitQQU5UScSGIFZPSklTTEFWIERSCitQQU5UScSGIFpBR09SS0EKK1BBTlRJxIYgWkRSQVZLTworUEFOVE/FoCDEkFVSTworUEFOVE/FoCBLT1ZJTEpLQQorUEFOVE/FoCBQRVRBUgorUEFOVE/FoCBQRVRBUgorUEFOVE9WScSGIMWgxIZFUEFOCitQQU5UT1ZJxIYgxb1FTEpLTworUEFOVE9WScSGIEFDQQorUEFOVE9WScSGIEJJTEpBTkEKK1BBTlRPVknEhiBCUkFOS08KK1BBTlRPVknEhiBEUkFHSU5KQQorUEFOVE9WScSGIExKVUJPCitQQU5UT1ZJxIYgTUlMSVNBVgorUEFOVE9WScSGIE1JTE9WQU4KK1BBTlRPVknEhiBNTEFERU4KK1BBTlRPVknEhiBTQVZBCitQQU5UT1ZJxIYgU1ZFVE9MSUsKK1BBTlRPVknEhiBWTEFESU1JUgorUEFOWkFMT1ZJxIYgUkFET1ZBTgorUEFPTE9OSSDEkFVaRVBJTkEKK1BBUCDFoEFORE9SCitQQVAgxaBBTkRPUgorUEFQIMWgQU5ET1IKK1BBUCDFoEFORE9SCitQQVAgxJBFUsSQCitQQVAgxJBVUk8KK1BBUCBBTkEKK1BBUCBERUpBTgorUEFQIERSQUdJQ0EKK1BBUCBFRElUCitQQVAgRURJVAorUEFQIEVORFJFIERSCitQQVAgRU5EUkUKK1BBUCBFUsW9RUJFVAorUEFQIEVURUxLQQorUEFQIEZFUkVOQworUEFQIEZSQU5KQQorUEFQIEZSQU5KQQorUEFQIEdBQk9SCitQQVAgScWgVFZBTiBEUgorUEFQIEnFoFRWQU4KK1BBUCBJTEXFoAorUEFQIElNUkUKK1BBUCBJTVJFCitQQVAgSVJFTkEKK1BBUCBJUkVOQQorUEFQIEpBTkpBCitQQVAgSkFOS08KK1BBUCBKRUxFTkEKK1BBUCBKRUxJU0FWRVRBCitQQVAgSk/FvUVGIERSCitQQVAgSk9TSVAKK1BBUCBKT1NJUAorUEFQIEpPVkFOCitQQVAgSlVMSUpBTkEKK1BBUCBKVUxJSkFOCitQQVAgSlVMSUpBCitQQVAgS0FUQVJJTkEKK1BBUCBMQVNMTworUEFQIE1BUkdJVEEKK1BBUCBNSUhBSkxPCitQQVAgTUlIQUpMTworUEFQIE1JS0xPxaAKK1BBUCBNSVJPTgorUEFQIE9MR0EKK1BBUCBQQVZMRQorUEFQIFJPWkFMSUpBCitQQVAgU0lMVkVTVEVSCitQQVAgVEVSRVpJSkEKK1BBUCBUSUJPUgorUEFQIFZBTEVSSUpBCitQQVAgVkVSQQorUEFQIFZJTkNFCitQQVAgVkxBRElTTEFWCitQQVAgWkRFTktBCitQQVAgWk9MVEFOCitQQVDFoE9ULUtPWklLIFBFUEkKK1BBUMSQVVJERVMgSk9WR0VOCitQQVBBRE9QT0xPIERSQUdPU0xBVgorUEFQQURPUE9MTyBWSkVLT1NMQVYKK1BBUEFET1BVTE9TIEpBTklTCitQQVBBRE9QVUxPUyBLT1NUQVMKK1BBUEFHRU9SR0lUIEtPU1RBCitQQVBBSyBEUkFHQU4KK1BBUEFUQU5BU0lVIE5JQ0EKK1BBUEXFoCBKT1NJUAorUEFQRcWgIEtPU0EKK1BBUEXFvSBJTElOS0EKK1BBUEhBUkhBSkkgxJBVUkEKK1BBUEhBUkhBSkkgVEVSRVpJSkEKK1BBUEhBUkhBSkkgVkxBRElNSVIKK1BBUEnFoFRBIEZSQU5KQQorUEFQScWgVEEgRlJBTkpBCitQQVBJxaBUQSBJTERJS0EKK1BBUEnFoFRBIEpPVkFOCitQQVBJxaBUQSBNQVJJSkEKK1BBUEnFoFRBIE1BUktPCitQQVBJxaBUQSBNSUhBSkxPCitQQVBJxIYgxIxFRE9NSVIKK1BBUEnEhiDFvUlWS08KK1BBUEnEhiBBTEVLU0FOREFSCitQQVBJxIYgQUxFS1NBTkRBUgorUEFQScSGIEFOQQorUEFQScSGIEFSQU5LQQorUEFQScSGIEFSQU5LQQorUEFQScSGIEFSQU5LQQorUEFQScSGIEFSQU5LQQorUEFQScSGIEJPxaBLTworUEFQScSGIEJPxb1BCitQQVBJxIYgQk/FvUlEQVIKK1BBUEnEhiBCUkFOSVNMQVYKK1BBUEnEhiBCUkFOS08KK1BBUEnEhiBCUkFOS08KK1BBUEnEhiBERVNBTktBCitQQVBJxIYgRE9CUklWT0pFCitQQVBJxIYgRFXFoEFOCitQQVBJxIYgRFXFoEFOCitQQVBJxIYgR09KS08KK1BBUEnEhiBJVkFOCitQQVBJxIYgSkVMSVNBVkVUQQorUEFQScSGIExBWkFSCitQQVBJxIYgTEVQT1NBVkEKK1BBUEnEhiBMSlVCSUNBCitQQVBJxIYgTE9aSU5LQQorUEFQScSGIExVS0EKK1BBUEnEhiBNQVJJSkEKK1BBUEnEhiBNSUhBSkxPCitQQVBJxIYgTUlMQURJTgorUEFQScSGIE1JTEFESU4KK1BBUEnEhiBNSUxJQ0EKK1BBUEnEhiBNSUxJVk9KCitQQVBJxIYgTUlMS0EKK1BBUEnEhiBNSUxPxaAKK1BBUEnEhiBNSVJPU0xBVgorUEFQScSGIE1JUk9TTEFWCitQQVBJxIYgTklLT0xBCitQQVBJxIYgUEFWTEUKK1BBUEnEhiBSQURFTktPCitQQVBJxIYgU0FWQQorUEFQScSGIFNNSUxKQQorUEFQScSGIFNSxJBBTiBEUgorUEFQScSGIFNSxJBBTktBCitQQVBJxIYgU1RFVkFOCitQQVBJxIYgU1RFVkFOCitQQVBJxIYgU1RFVkFOCitQQVBJxIYgU1ZFVElTTEFWIERJUEwgSU5HCitQQVBJxIYgVEVPRE9SCitQQVBJxIYgVE9ET1IKK1BBUEnEhiBWRVJBCitQQVBJxIYgWk9SSUNBCitQQVBJxIYgWk9SSUNBCitQQVBJSyBWSUtUT1IKK1BBUElMSU9OIEJPUknFoEtBCitQQVBMQUNLTyBWRUxJTUlSCitQQVBPVknEhiDEjEVET01JUgorUEFQT1ZJxIYgQkxBxb1PCitQQVBPVknEhiBCTEFHT0pFCitQQVBPVknEhiBLUlNUTworUEFQT1ZJxIYgTUlMRQorUEFQT1ZJxIYgTUlPRFJBRworUEFQT1ZJxIYgTUxBREVOCitQQVBPVknEhiBWRVNFTElOCitQQVBPVknEhiBWVUtPU0FWCitQQVBSScSGIMW9SVZBTgorUEFQUknEhiDEkE9SxJBFCitQQVBSScSGIE1BUktPCitQQVBSScSGIFJBSktPCitQQVBVR0EgxJBVUkEKK1BBUFVHQSBESU1JVFJJSkUKK1BBUFVHQSBFVUZFTUlKQQorUEFQVUdBIElSSU5BCitQQVBVR0EgSkFST1NMQVYKK1BBUFVHQSBLSVJJTAorUEFQVUdBIExKVUJPTUlSCitQQVBVR0EgTUlIQUpMTworUEFQVUdBIFRBVEpBTkEKK1BBUFVHQSBWRVJBCitQQVBVR0EgVkxBRElNSVIKK1BBUFVMSU4gxJBFUsSQSUtBCitQQVBVTElOIEJPUklTTEFWCitQQVBVTElOIERPQlJJTkEKK1BBUFVMSU4gUkFET0pLQQorUEFSxIxJxIYgTkHEkEEgRFIKK1BBUkFCVcSGU0tJIE1JTEVOS08KK1BBUkFCVcSGU0tJLVNJTUnEhiBSVcW9SUNBCitQQVJBQlXEhlNLSSBTVkVUSVNMQVYgTk9WSU5BUgorUEFSQUJVQ0tJIExBWkFSCitQQVJBQlVDS0kgTEpJTEpBTkEKK1BBUkFHIFNURVZBTgorUEFSQU5ESUxPVknEhiBST1NBCitQQVJBUElEIE1JUkpBTkEKK1BBUkFWSUwgTklLT0xBCitQQVJBVklOQSBKQVJNSUxBCitQQVJBVklOQSBNSUxPxaAKK1BBUkRPVklDS0kgRkVSRU5DCitQQVJET1ZJQ0tJIEZSQU5KQQorUEFSRE9WSUNLSSBNQVJJSkEKK1BBUkXFvUFOSU4gUkFESVZPSgorUEFSRcW9QU5JTiBTTE9CT0RBTgorUEFSRcW9QU5JTiBWTEFESVNMQVYKK1BBUkhBTk9WIFZJS1RPUklKQQorUEFSScSMRVZJxIYgRVZBCitQQVJJxIYgU1RJUEUKK1BBUklQT1YgSkVMQQorUEFSSVBPViBNSUxBTgorUEFSSVBPViBNSUxFTktPCitQQVJJUE9WScSGIMSMRURPTUlSCitQQVJJUE9WScSGIERSQUdBTgorUEFSSVBPVknEhiBEVcWgQU4KK1BBUklQT1ZJxIYgSk9WQU4KK1BBUklQT1ZJxIYgSk9WTworUEFSSVBPVknEhiBNSUhBSkxPCitQQVJJUE9WScSGIE1JTEVOS08KK1BBUklQT1ZJxIYgTUlMRQorUEFSSVBPVknEhiBNSUxLQQorUEFSSVBPVknEhiBQQUpBCitQQVJJUE9WScSGIFNMT0JPREFOCitQQVJJUE9WScSGIFNWRVRPWkFSCitQQVJJUE9WScSGIFZMQURJTUlSCitQQVJJUE9WScSGIFZMQURJU0xBVktBCitQQVJJUE9WScSGIFpPUkFOCitQQVJLQU5KSSBTQU1VRUwKK1BBUkxBxIYgTEpVQk9NSVIKK1BBUkxBxIYgTUFSSU5LTworUEFSTEHEhiBNSU9EUkFHCitQQVJMScSGIEFOQQorUEFSTEnEhiBKRVZUQQorUEFSTEnEhiBOSUtPTEEKK1BBUk1BxIYgTkVERUxKS08KK1BBUk5JQ0tJIElWQU4KK1BBUk5JQ0tJIEpPVkFOCitQQVJPxaBLQUogxJBVUkEKK1BBUk/FoEtBSiBEQU5JTE8KK1BBUk/FoEtJIMSQT1LEkEUKK1BBUk/FoEtJIMSQT1LEkEUKK1BBUk/FoEtJIEFMRUtTQU5EQVIKK1BBUk/FoEtJIEFMRUtTQU5EQVIKK1BBUk/FoEtJIEFOQQorUEFST8WgS0kgQU5LSUNBCitQQVJPxaBLSSBCT1JJVk9KCitQQVJPxaBLSSBCUkFOSVNMQVYKK1BBUk/FoEtJIERBTUpBTgorUEFST8WgS0kgRElNSVRSSUpFCitQQVJPxaBLSSBET0JSSUxBCitQQVJPxaBLSSBEUkFHQU4KK1BBUk/FoEtJIERVxaBBTgorUEFST8WgS0kgR0xJxaBBCitQQVJPxaBLSSBHT1JEQU4KK1BBUk/FoEtJIElWQU4KK1BBUk/FoEtJIEpFTEVOQQorUEFST8WgS0kgSkVMSUNBCitQQVJPxaBLSSBKT1ZBTgorUEFST8WgS0kgTUFSSUpBCitQQVJPxaBLSSBNSUxBTgorUEFST8WgS0kgTUlMQU4KK1BBUk/FoEtJIE1JTEFOCitQQVJPxaBLSSBNSUxJQ0EKK1BBUk/FoEtJIE1JTE/FoAorUEFST8WgS0kgTUlMT1JBRAorUEFST8WgS0kgTUlMT1ZBTgorUEFST8WgS0kgTUlSQQorUEFST8WgS0kgTUlSSkFOQQorUEFST8WgS0kgTUlSS08KK1BBUk/FoEtJIE5FU1RPUgorUEFST8WgS0kgT0JSRU4KK1BBUk/FoEtJIE9MR0EKK1BBUk/FoEtJIFBFVEFSCitQQVJPxaBLSSBQVU5JxaBBCitQQVJPxaBLSSBSQURNSUxBCitQQVJPxaBLSSBSQUpLTworUEFST8WgS0kgUk/FvUEKK1BBUk/FoEtJIFNBVkEKK1BBUk/FoEtJIFNMQVZJQ0EKK1BBUk/FoEtJIFNPRklKQQorUEFST8WgS0kgU1RFVkFOCitQQVJPxaBLSSBWRVJPTEpVQgorUEFST8WgS0kgVkxBRElNSVIKK1BBUk/FoEtJIFpBR09SS0EKK1BBUk9DSSBKT1NJUAorUEFST0NJIEpVTElKQU5BCitQQVJPQ0kgS0FSTE8KK1BBUk9DSSBMSklMSkFOQQorUEFST0NJIFRJQk9SCitQQVJPQ0kgVElCT1IKK1BBUk9DSSBUSUJPUgorUEFST0rEjEnEhiBMSlVCSUNBCitQQVJPSsSMScSGIFNMT0JPREFOCitQQVJPS0FJIE1JUktPCitQQVJPVknEhiBTTEFWS08KK1BBUlXFvUnEhiBQQU5UQQorUEFSVUNLSSBNSUhBSkxPCitQQVNBUknEhiBSVcW9QQorUEFTS0HFoCBNSUxBTgorUEFTS0HFoCBNSUxLQQorUEFTS0HFoCBOQVRBxaBBCitQQVNLQUxJIEdPUkFOCitQQVNLQUxKRVZJxIYgQUxFS1NBTkRBUgorUEFTS1UgRElNSVRSSUpFCitQQVNLVUxPViBNSVJPTEpVQgorUEFTVCBST0JFUlQKK1BBU1RFUktPIFNURVZBTgorUEFTVE9OSklDS0kgRUxFTUlSCitQQVNUT1IgR0VaQQorUEFTVE9SIEpBTk/FoAorUEFTVE9SIEpBTk/FoAorUEFTVE9SIEpPU0lQCitQQVNUT1IgSk9TSVAKK1BBU1RPUiBKT1pFRgorUEFTVE9SIExBU0xPCitQQVNUT1IgTUFSSUpBCitQQVNUT1IgTUlIQUpMTworUEFTVE9SIE1JTEFOCitQQVNUT1IgUEVUQVIKK1BBU1RPUiBTVEpFUEFOCitQQVNUT1JOQcSMS0kgxJBVUsSQSU5LQQorUEFTVE9STkHEjEtJIExBWkFSCitQQVNUT1JOQcSMS0kgTEpVQknFoEEKK1BBU1RPUk5BxIxLSSBNQVJJSkEKK1BBU1RPUk5BxIxLSSBSQURPU0xBVgorUEFTVE9STkpJQ0tJIEdPUkRBTkEKK1BBVEFGVEEgSlVMSUpBCitQQVRBRlRBIFNURVZBTgorUEFUQUogQVJBTktBIERSCitQQVRBSyBQQVZMRQorUEFUQUtJIEFOQQorUEFUQUtJIEVWQQorUEFUQUtJIEdPUkFOCitQQVRBUknEhiBTVElQQU4KK1BBVEFSSUNBIEVMRU1FUgorUEFUScSGIERSQUdPTUlSCitQQVRJxIYgUkFET1NBVgorUEFUScSGIFJBVEtPCitQQVRJxIYgVkxBRElNSVIKK1BBVExFSkggTkFERcW9REEKK1BBVFJJSyBMQUpPxaAKK1BBVFJJSyBTVEVWQU4KK1BBVFJOT0dJxIYgQlJBTklTTEFWIERJUEwgSU5HCitQQVRSTk9HScSGIERVxaBBTiBEUgorUEFUUk5PR0nEhiBEVcWgSUNBCitQQVRSTk9HScSGIExJRElKQQorUEFVxaBJxIYgSVZBTgorUEFVxaBJxIYgTUFSS08KK1BBVUtPVknEhiBNSVJKQU5BCitQQVVMIEtBVElDQQorUEFVTCBMQUpPxaAKK1BBVUwgTEFKT8WgCitQQVVMIE9TS0FSCitQQVVMScSGIE1JTEUKK1BBVUxJSyBBTEVLU0FOREFSCitQQVVMSUsgUEVSTworUEFVTElLIFBFVEFSCitQQVVMT1ZJxIYgRFJBR1VUSU4KK1BBVU5FU0tVIFZBU0EKK1BBVU5JxIYgxb1JVktPIERJUEwgSU5HCitQQVVOScSGIMSQVVJBCitQQVVOScSGIEFMSU1QSUpFCitQQVVOScSGIEJSQU5LTworUEFVTknEhiBESU1JVFJJSkUKK1BBVU5JxIYgRFJBR09NSVIKK1BBVU5JxIYgSUxJSkEKK1BBVU5JxIYgTEFaQVIKK1BBVU5JxIYgTUlMQU5BCitQQVVOScSGIE1JTEVWQQorUEFVTknEhiBNSUxFCitQQVVOScSGIFNUQU5JTUlSCitQQVVOScSGIFRPTUEKK1BBVU5JxIYgVlVLQcWgSU4KK1BBVU5LT1ZJxIYgSk9WQU5BCitQQVVOS09WScSGIExKSUxKQU5BCitQQVVOS09WScSGIFZFTElNSVIKK1BBVU5LT1ZJxIYgVkxBRElNSVIKK1BBVU5LVSBBVVJFTElKQQorUEFVTk9WScSGIMSMQVNMQVYKK1BBVU5PVknEhiBBTlRPCitQQVVOT1ZJxIYgQk9HREFOCitQQVVOT1ZJxIYgQk9HREFOCitQQVVOT1ZJxIYgQlJBTktBCitQQVVOT1ZJxIYgQlJBTktPCitQQVVOT1ZJxIYgRElNSVRSSUpFCitQQVVOT1ZJxIYgRFJBR09MSlVCCitQQVVOT1ZJxIYgRFJBR1VUSU4KK1BBVU5PVknEhiBHT1NQQVZBCitQQVVOT1ZJxIYgSkVMRU5BCitQQVVOT1ZJxIYgSk9WQU4KK1BBVU5PVknEhiBKT1ZJQ0EKK1BBVU5PVknEhiBLQVRJQ0EKK1BBVU5PVknEhiBLT1ZJTEpLQQorUEFVTk9WScSGIEtPVklMSktBCitQQVVOT1ZJxIYgTEpJTEpBTkEKK1BBVU5PVknEhiBMSlVCSVZPSkUKK1BBVU5PVknEhiBNQVJJTkEKK1BBVU5PVknEhiBNRUxJTkRBCitQQVVOT1ZJxIYgTUlMSUNBCitQQVVOT1ZJxIYgTUlMT01JUgorUEFVTk9WScSGIE1JTE9SQUQKK1BBVU5PVknEhiBNSUxPUkFECitQQVVOT1ZJxIYgTUlMT1JBRAorUEFVTk9WScSGIE5JS09MQQorUEFVTk9WScSGIFBBVU4KK1BBVU5PVknEhiBQRVRBUgorUEFVTk9WScSGIFJBRE/FoAorUEFVTk9WScSGIFJBRE9TTEFWCitQQVVOT1ZJxIYgUkFET1NMQVYKK1BBVU5PVknEhiBSQVRPTUlSCitQQVVOT1ZJxIYgU0xBVkEKK1BBVU5PVknEhiBTTE9CT0RBTktBCitQQVVOT1ZJxIYgU1JCSUNBCitQQVVOT1ZJxIYgU1RPSkFOS0EKK1BBVU5PVknEhiBUT01JU0xBVgorUEFVTk9WScSGIFZVS09TQVZBCitQQVVOT1ZJxIYgWk9SQU4KK1BBVU5PVknEhiBaVk9OS08KK1BBVVQgTUlMQU4KK1BBVVpFTkJFUkdFUiBJUkVOQQorUEFVWkVOQkVSR0VSIEpPVkFOCitQQVZBSSBGUkFOSkEKK1BBVkVMS0EgREFOSUVMQQorUEFWRUxLQSBWTEFESU1JUgorUEFWScSMIERBTklDQQorUEFWScSMRVZJxIYgTUlMQU4KK1BBVknEjEVWScSGIE5BREEKK1BBVknEjEnEhiBEUkFHSUNBCitQQVZJxIxJxIYgSVZBTgorUEFWScSMScSGIE1JUktPCitQQVZJxaBJxIYgxJBVUkEKK1BBVknEhiDEkFVSTworUEFWScSGIEFOS0EKK1BBVknEhiBBUk9OCitQQVZJxIYgQklMSkFOQQorUEFWScSGIERVxaBBTgorUEFWScSGIEdBxaBPCitQQVZJxIYgR09KS08KK1BBVknEhiBKT8W9RUYKK1BBVknEhiBMSlVCScWgQQorUEFWScSGIExKVUJJQ0EKK1BBVknEhiBMSlVCT01JUgorUEFWScSGIE1BUklKQQorUEFWScSGIE1JTEFOCitQQVZJxIYgTUlMQU4KK1BBVknEhiBNSUxJQ0EKK1BBVknEhiBTTEFWS08KK1BBVknEhiBTVEVWQU4KK1BBVknEhi1TVUxPQ0tJIEVTVEVSCitQQVZJxIYgVEVSRVpJSkEKK1BBVknEhiBWRU5LTworUEFWScSGIFZFUktBCitQQVZJxIZFVknEhiBBTEVLU0FOREFSCitQQVZJxIZFVknEhiBBTEVLU0FOREFSCitQQVZJxIZFVknEhiBBTkFOSUpFCitQQVZJxIZFVknEhiBCUkFOSVNMQVYKK1BBVknEhkVWScSGIERFU0EKK1BBVknEhkVWScSGIERSQUdBTgorUEFWScSGRVZJxIYgRFXFoEFOCitQQVZJxIZFVknEhiBEVcWgQU4KK1BBVknEhkVWScSGIEpFTEVOQQorUEFWScSGRVZJxIYgTEpJTEpBTkEKK1BBVknEhkVWScSGIE1JTEFOS08KK1BBVknEhkVWScSGIE1JTE/FoAorUEFWScSGRVZJxIYgTUlMT01JUgorUEFWScSGRVZJxIYgTUlMVVRJTgorUEFWScSGRVZJxIYgTUlPRFJBRworUEFWScSGRVZJxIYgTUlPRFJBRworUEFWScSGRVZJxIYgTUlSQQorUEFWScSGRVZJxIYgTUlSS08KK1BBVknEhkVWScSGIFNMQVZLTworUEFWScSGRVZJxIYgU0xPQk9EQU4KK1BBVklOIExKVUJJQ0EKK1BBVktPViDFvUlWS08KK1BBVktPViDFvUlWT0pJTgorUEFWS09WIMSQVVLEkEVWS0EKK1BBVktPViDEkFVSxJBJTkEKK1BBVktPViBBTEVLU0FOREFSCitQQVZLT1YgQU5LQQorUEFWS09WIEJPxb1JREFSCitQQVZLT1YgQk9TSUxKS0EKK1BBVktPViBCUkFOS08KK1BBVktPViBEUkFHQU4KK1BBVktPViBEUkFHQU4KK1BBVktPViBEVcWgQU4KK1BBVktPViBEVcWgQU4KK1BBVktPViBHT0pLTworUEFWS09WIEdPUkRBTkEKK1BBVktPViBJVkFOS0EKK1BBVktPViBKT1ZBTgorUEFWS09WIEpPVkFOCitQQVZLT1YgSk9WQU4KK1BBVktPViBLQVRJQ0EKK1BBVktPViBMQVpBUgorUEFWS09WIE1JTEFOCitQQVZLT1YgTUlMQU4KK1BBVktPViBNSUxBTgorUEFWS09WIE1JTElWT0ogRElQTCBJTkcKK1BBVktPViBNSUxPxaAKK1BBVktPViBNSUxPSkUKK1BBVktPViBNSUxPUkFECitQQVZLT1YgTUlMT1JBRAorUEFWS09WIE1JTFVUSU4KK1BBVktPViBNSVRBUgorUEFWS09WIE5BREEKK1BBVktPViBOQURBCitQQVZLT1YgUEFWTEUKK1BBVktPViBQRVRBUgorUEFWS09WIFJBRElWT0oKK1BBVktPViBSQURPVkFOCitQQVZLT1YgUkFUT01JUgorUEFWS09WIFNBVkEKK1BBVktPViBTQVZBCitQQVZLT1YgU0lOScWgQQorUEFWS09WIFNMQVZLTworUEFWS09WIFNURVZBTgorUEFWS09WIFNURVZBTgorUEFWS09WIFNURVZBTgorUEFWS09WIFVST8WgCitQQVZLT1YgVklUT01JUgorUEFWS09WIFpPUkFOCitQQVZLT1YgWk9SS0EKK1BBVktPVknEhiBCT8W9SURBUgorUEFWS09WScSGIEJPUklTTEFWCitQQVZLT1ZJxIYgRFJBR0FOQQorUEFWS09WScSGIERSQUdJQ0EKK1BBVktPVknEhiBKT1ZBTktBCitQQVZLT1ZJxIYgS0FUSUNBCitQQVZLT1ZJxIYgTklLT0xBCitQQVZLT1ZJxIYgUEVUQVIKK1BBVktPVknEhiBSQURPSkUKK1BBVkxFS0nEhiBTVEVWQU4KK1BBVkxFU0tJIE1FTktBCitQQVZMRVZTS0kgREVTQQorUEFWTEVWU0tJIFRSQUpBTgorUEFWTEnEjCBNSVJLTworUEFWTEnEjEnEhiBLUkXFoElNSVIKK1BBVkxJxIxJxIYgTEpVQknFoEEgRFIKK1BBVkxJxIYgxJBPUsSQRQorUEFWTEnEhiBCT1JJU0xBVgorUEFWTEnEhiBCUkFOS08gRElQTCBJTkcKK1BBVkxJxIYgUEVUQVIgRElQTCBJTkcKK1BBVkxJxIYgVkxBREEKK1BBVkxJxIZFViDEkE9SxJBFCitQQVZMSUNBIEJSQU5JU0xBVgorUEFWTElDQSBKT1ZBTgorUEFWTElDQSBMQVpBUgorUEFWTElDQSBNQVJJQ0EKK1BBVkxJQ0EgTUlDQQorUEFWTElDQSBNSUxBTgorUEFWTElDQSBNSUxFTkEKK1BBVkxJQ0EgTUlMRVZBCitQQVZMSUNBIE5BREEKK1BBVkxJQ0EgTklLT0xBCitQQVZMSUNBIE5JS09MQQorUEFWTElDQSBTQVZPCitQQVZMSUNBIFNPRklKQQorUEFWTElDQSBUT0RPUgorUEFWTElDQSBWTEFESU1JUgorUEFWTElLIEFOVEFMCitQQVZMSUsgSk9TSVAKK1BBVkxJSyBLQVRBUklOQQorUEFWTElLIE1JxaBBCitQQVZMSUsgVklOS08KK1BBVkxPViDFvUFSS08KK1BBVkxPViDFvUlWQU4KK1BBVkxPViDFvUlWS0EKK1BBVkxPViDEkE9LQQorUEFWTE9WIEFMRUtTQU5EQVIKK1BBVkxPViBBTEVLU0FOREFSCitQQVZMT1YgQUxFS1NBTkRBUgorUEFWTE9WIEJPR0RBTktBCitQQVZMT1YgQk9SSVNMQVYKK1BBVkxPViBEQU5JQ0EKK1BBVkxPViBEQU5JTE8KK1BBVkxPViBEUkFHSU5KQQorUEFWTE9WIERSQUdPTUlSCitQQVZMT1YgRFXFoEFOS0EKK1BBVkxPViBEVcWgQU5LQQorUEFWTE9WIERVxaBBTgorUEFWTE9WIERVxaBBTgorUEFWTE9WIEpPVkFOCitQQVZMT1YgS0FUSUNBCitQQVZMT1YtS09TVEnEhiBBTkEgRFIKK1BBVkxPViBLT1ZJTEpLQQorUEFWTE9WIEtSSVNUSU5BCitQQVZMT1YgS1VaTUFOCitQQVZMT1YgTEFaQVIKK1BBVkxPViBMQVpBUgorUEFWTE9WIExKVUJJQ0EKK1BBVkxPViBMSlVCSUNBCitQQVZMT1YgTUFSSUpBCitQQVZMT1YgTUlMQU4KK1BBVkxPViBNSUxFVEEKK1BBVkxPViBNSUxJVk9KCitQQVZMT1YgTUlMT1JBRAorUEFWTE9WIE1JTE9SQUQKK1BBVkxPViBNSUxPVkFOCitQQVZMT1YgTUlMT1ZBTgorUEFWTE9WIE1JTFVUSU4KK1BBVkxPViBNSVJBCitQQVZMT1YtTUlSS09WScSGIE1JUk9TTEFWQSBEUgorUEFWTE9WIE1JUk9TTEFWCitQQVZMT1YgTUlST1NMQVYKK1BBVkxPViBNSVRLTworUEFWTE9WIE5BREEKK1BBVkxPViBOQURBCitQQVZMT1YgTkFUQUxJSkEKK1BBVkxPViBORVZFTktBCitQQVZMT1YgT0xHQQorUEFWTE9WIFBBSkEKK1BBVkxPViBQQVZFTAorUEFWTE9WIFBBVkVMCitQQVZMT1YgUEFWTEUKK1BBVkxPViBQRVRBUgorUEFWTE9WIFBFVEFSCitQQVZMT1YgUkFEQQorUEFWTE9WIFJBRElWT0oKK1BBVkxPViBSQURNSUxBCitQQVZMT1YgUkFET1NMQVZBCitQQVZMT1YgUkFET1NMQVYKK1BBVkxPViBTQVZBCitQQVZMT1YgU0FWQQorUEFWTE9WIFNURVZBTgorUEFWTE9WIFNURVZBTgorUEFWTE9WIFNURVZBTgorUEFWTE9WIFNURVZBTgorUEFWTE9WIFNURVZBTgorUEFWTE9WIFNURVZBTgorUEFWTE9WIFNUT0pBTgorUEFWTE9WIFNWRVRPWkFSCitQQVZMT1YgVkFTSUxJSkUKK1BBVkxPViBWRVJBCitQQVZMT1YgVkVSQQorUEFWTE9WIFZFUklDQQorUEFWTE9WIFZJRE9TQVZBCitQQVZMT1YgVkxBRElNSVIKK1BBVkxPViBWTEFTVElNSVIKK1BBVkxPVknEhiDEjEVET01JUgorUEFWTE9WScSGIMW9QVJLTworUEFWTE9WScSGLcW9RU5FUiBPTEdBCitQQVZMT1ZJxIYgxJBPUsSQRQorUEFWTE9WScSGIMSQT1LEkEUKK1BBVkxPVknEhiDEkE9SxJBFCitQQVZMT1ZJxIYgxJBPUsSQTworUEFWTE9WScSGIMSQT1LEkE8KK1BBVkxPVknEhiBBTEVLU0FOREFSIERSCitQQVZMT1ZJxIYgQUxFS1NBTkRBUgorUEFWTE9WScSGIEFMRUtTSUpFCitQQVZMT1ZJxIYgQU5BCitQQVZMT1ZJxIYgQU5BCitQQVZMT1ZJxIYgQU5EUklKQQorUEFWTE9WScSGIEFOSUNBCitQQVZMT1ZJxIYgQU5LSUNBCitQQVZMT1ZJxIYgQkxBR09KRQorUEFWTE9WScSGIEJMQUdPCitQQVZMT1ZJxIYgQk/FvUlEQVIKK1BBVkxPVknEhiBCT8W9TworUEFWTE9WScSGIEJPR0RBTgorUEFWTE9WScSGIEJPR09MSlVCCitQQVZMT1ZJxIYgQk9SQQorUEFWTE9WScSGIEJPUklTQVYKK1BBVkxPVknEhiBCT1JJU0xBVgorUEFWTE9WScSGIEJPUklTTEFWCitQQVZMT1ZJxIYgQlJBTktPCitQQVZMT1ZJxIYgQlJBTktPCitQQVZMT1ZJxIYgQ1ZFVEFOCitQQVZMT1ZJxIYgREVKQU4KK1BBVkxPVknEhiBESU1JVFJJSkUKK1BBVkxPVknEhiBET0JSSVZPSgorUEFWTE9WScSGIERPQlJPU0xBVgorUEFWTE9WScSGIERSQUdBTgorUEFWTE9WScSGIERSQUdBTgorUEFWTE9WScSGIERSQUdBTgorUEFWTE9WScSGIERSQUdBTgorUEFWTE9WScSGIERSQUdPTEpVQgorUEFWTE9WScSGIERSQUdPTEpVQgorUEFWTE9WScSGIERSQUdPU0xBVkEKK1BBVkxPVknEhiBEUkFHT1NMQVYKK1BBVkxPVknEhiBEUkFHVVRJTgorUEFWTE9WScSGIERVxaBBTktBCitQQVZMT1ZJxIYgRFXFoEFOCitQQVZMT1ZJxIYgRFXFoEFOCitQQVZMT1ZJxIYgRFXFoEFOCitQQVZMT1ZJxIYgRFXFoEFOCitQQVZMT1ZJxIYgRFXFoEFOCitQQVZMT1ZJxIYgRFXFoEtPCitQQVZMT1ZJxIYgRU1JTAorUEFWTE9WScSGIEVSxb1FQkVUCitQQVZMT1ZJxIYgRVLFvUVCRVQKK1BBVkxPVknEhiBHT0pLTworUEFWTE9WScSGIEdPUklOS0EKK1BBVkxPVknEhiBJTElKQQorUEFWTE9WScSGIElMSUpBCitQQVZMT1ZJxIYgSUxPTkEKK1BBVkxPVknEhiBJTE9OQQorUEFWTE9WScSGIElSSU5BCitQQVZMT1ZJxIYgSVZBTiBESVBMIElORworUEFWTE9WScSGIElWQU4KK1BBVkxPVknEhiBKQUdPCitQQVZMT1ZJxIYgSkFOS08KK1BBVkxPVknEhiBKQU5LTworUEFWTE9WScSGIEpBTk/FoAorUEFWTE9WScSGIEpFTEEKK1BBVkxPVknEhiBKRUxFTkEKK1BBVkxPVknEhiBKRUxFTkEKK1BBVkxPVknEhiBKRUxFTkEKK1BBVkxPVknEhiBKRUxFTkEKK1BBVkxPVknEhiBKRUxJQ0EKK1BBVkxPVknEhiBKT0FLSU0KK1BBVkxPVknEhiBKT1ZBTgorUEFWTE9WScSGIEpPVkFOCitQQVZMT1ZJxIYgSk9WSUNBCitQQVZMT1ZJxIYgS0FUQVJJTkEKK1BBVkxPVknEhiBLQVRJQ0EKK1BBVkxPVknEhiBLT05TVEFOVElOCitQQVZMT1ZJxIYgS09WSU5LQQorUEFWTE9WScSGIExBWkFSCitQQVZMT1ZJxIYgTEFaQVIKK1BBVkxPVknEhiBMQVpBUgorUEFWTE9WScSGIExKVUJJxaBBCitQQVZMT1ZJxIYgTUFHREEKK1BBVkxPVknEhiBNQVJBIERJUEwgSU5HCitQQVZMT1ZJxIYgTUFSQQorUEFWTE9WScSGIE1BUklDQQorUEFWTE9WScSGIE1BUktPIERJUEwgSU5HCitQQVZMT1ZJxIYgTUFSS08KK1BBVkxPVknEhiBNSUNBCitQQVZMT1ZJxIYgTUlMQURJTgorUEFWTE9WScSGIE1JTEFOCitQQVZMT1ZJxIYgTUlMQU4KK1BBVkxPVknEhiBNSUxFTkEKK1BBVkxPVknEhiBNSUxFTktPCitQQVZMT1ZJxIYgTUlMRU5LTworUEFWTE9WScSGIE1JTEUKK1BBVkxPVknEhiBNSUxFCitQQVZMT1ZJxIYgTUlMSUNBCitQQVZMT1ZJxIYgTUlMSUNBCitQQVZMT1ZJxIYgTUlMSUNBCitQQVZMT1ZJxIYgTUlMSVNBVgorUEFWTE9WScSGIE1JTEpBTkEKK1BBVkxPVknEhiBNSUxLQQorUEFWTE9WScSGIE1JTEtBCitQQVZMT1ZJxIYgTUlMT0pFCitQQVZMT1ZJxIYgTUlMT0pFCitQQVZMT1ZJxIYgTUlMT01JUgorUEFWTE9WScSGIE1JTE9SQUQgRFIKK1BBVkxPVknEhiBNSUxPUkFECitQQVZMT1ZJxIYgTUlMT1JBRAorUEFWTE9WScSGIE1JTE9SQUQKK1BBVkxPVknEhiBNSUxPU0FWQQorUEFWTE9WScSGIE1JTE9TQVYKK1BBVkxPVknEhiBNSUxPVkFOCitQQVZMT1ZJxIYgTUlMT1ZBTgorUEFWTE9WScSGIE1JT0RSQUcKK1BBVkxPVknEhiBNSU9EUkFHCitQQVZMT1ZJxIYgTUlPRFJBRworUEFWTE9WScSGIE1JUkEKK1BBVkxPVknEhiBNSVJKQU5BIERSCitQQVZMT1ZJxIYgTUlSSkFOQQorUEFWTE9WScSGIE1JUkpBTkEKK1BBVkxPVknEhiBNSVJKQU5BCitQQVZMT1ZJxIYgTUlSS08gRElQTCBPRUMKK1BBVkxPVknEhiBNSVJLTworUEFWTE9WScSGIE1JUktPCitQQVZMT1ZJxIYgTUlST1NMQVZBCitQQVZMT1ZJxIYgTUlST1NMQVYKK1BBVkxPVknEhiBNT03EjElMTworUEFWTE9WScSGIE5BREEgRFIKK1BBVkxPVknEhiBOQURBCitQQVZMT1ZJxIYgTkFEQQorUEFWTE9WScSGIE5FREVMSktBCitQQVZMT1ZJxIYgTkVERUxKS08KK1BBVkxPVknEhiBORU1BTkpBCitQQVZMT1ZJxIYgTkVNQU5KQQorUEFWTE9WScSGIE5JS09MQQorUEFWTE9WScSGIE5JS09MQQorUEFWTE9WScSGIE5JS09MSUNBCitQQVZMT1ZJxIYgTklOQQorUEFWTE9WScSGIE5PVkFLCitQQVZMT1ZJxIYgT0xHQQorUEFWTE9WScSGIE9MR0EKK1BBVkxPVknEhiBPTEdBCitQQVZMT1ZJxIYgT0xHQQorUEFWTE9WScSGIFBBVkxFCitQQVZMT1ZJxIYgUEFWTEUKK1BBVkxPVknEhiBQRcSQQQorUEFWTE9WScSGIFBFUk8KK1BBVkxPVknEhiBQRVRBUgorUEFWTE9WScSGIFBFVEFSCitQQVZMT1ZJxIYgUEVUQVIKK1BBVkxPVknEhiBQTEVNRU5LQQorUEFWTE9WScSGLVBPUE9WScSGIFpPUkEgRFIgTEVLQVIKK1BBVkxPVknEhiBQUkVEUkFHCitQQVZMT1ZJxIYgUFJFRFJBRworUEFWTE9WScSGIFBSVk9TTEFWCitQQVZMT1ZJxIYgUkFERU5LTworUEFWTE9WScSGIFJBRElWT0oKK1BBVkxPVknEhiBSQURNSUxBCitQQVZMT1ZJxIYgUkFETUlMTyBESVBMIElORworUEFWTE9WScSGIFJBRE1JTE8KK1BBVkxPVknEhiBSQURPSkUKK1BBVkxPVknEhiBSQURPSktBCitQQVZMT1ZJxIYgUkFET01JUiBESVBMIE9FQworUEFWTE9WScSGIFJBRE9NSVIKK1BBVkxPVknEhiBSQURPU0xBVkEKK1BBVkxPVknEhiBSQURPVkFOIERSIFZFVEVSSU5FCitQQVZMT1ZJxIYgUkFET1ZBTgorUEFWTE9WScSGIFJBSktPCitQQVZMT1ZJxIYgUkFOS08KK1BBVkxPVknEhiBSQVRLTworUEFWTE9WScSGIFNBVkEKK1BBVkxPVknEhiBTQVZPCitQQVZMT1ZJxIYgU0lNQQorUEFWTE9WScSGIFNJTUVPTgorUEFWTE9WScSGIFNJTUVPTgorUEFWTE9WScSGIFNJTknFoEEKK1BBVkxPVknEhiBTTEFWSUNBCitQQVZMT1ZJxIYgU0xBVktPIERJUEwgSU5HCitQQVZMT1ZJxIYgU0xBVktPCitQQVZMT1ZJxIYgU0xBVktPCitQQVZMT1ZJxIYgU0xBVktPCitQQVZMT1ZJxIYgU0xPQk9EQU4gRFIKK1BBVkxPVknEhiBTTE9CT0RBTgorUEFWTE9WScSGIFNMT0JPREFOCitQQVZMT1ZJxIYgU0xPQk9EQU4KK1BBVkxPVknEhiBTTUlMSkEKK1BBVkxPVknEhiBTVEFOQQorUEFWTE9WScSGIFNUQU5JS0EKK1BBVkxPVknEhiBTVEFOSVNMQVYKK1BBVkxPVknEhiBTVEVWQU5LQQorUEFWTE9WScSGIFNURVZBTgorUEFWTE9WScSGIFNURVZBTgorUEFWTE9WScSGIFNURVZBTgorUEFWTE9WScSGIFNURVZBTgorUEFWTE9WScSGIFNURVZBTgorUEFWTE9WScSGIFNUSkVQQU4KK1BBVkxPVknEhiBTVE9KQU4KK1BBVkxPVknEhiBTVE9KQU4KK1BBVkxPVknEhiBTVkVUSVNMQVYKK1BBVkxPVknEhiBTVkVUT1pBUgorUEFWTE9WScSGIFRPxaBBCitQQVZMT1ZJxIYgVE9NQQorUEFWTE9WScSGIFRPTUlTTEFWIERSCitQQVZMT1ZJxIYgVkVMSVpBUgorUEFWTE9WScSGIFZFUkEKK1BBVkxPVknEhiBWRVJBCitQQVZMT1ZJxIYgVkVSQQorUEFWTE9WScSGIFZJREEKK1BBVkxPVknEhiBWSURPU0FWQQorUEFWTE9WScSGIFZJRE9TQVZBCitQQVZMT1ZJxIYgVklET1NMQVYKK1BBVkxPVknEhiBWSVRPTUlSCitQQVZMT1ZJxIYgVklUT01JUgorUEFWTE9WScSGIFZMQURJTUlSCitQQVZMT1ZJxIYgVk9KSVNMQVYKK1BBVkxPVknEhiBaQUdPUktBCitQQVZMT1ZJxIYgWkRSQVZLTworUEFWTE9WScSGIFpPUkFOCitQQVZMT1ZJxIYgWk9SQU4KK1BBVkxPVknEhiBaT1JBTgorUEFWTE9WScSGIFpPUkFOCitQQVZMT1ZJxIYgWk9SQQorUEFWTE9WScSGIFpPUklDQQorUEFWTE9WScSGIFpWT05JTUlSCitQQVZMT1ZTS0kgQUxFS1NBTkRBUgorUEFWTE9WU0tJIE1BUklKQQorUEFWTE9WU0tJIFNFUkdFSgorUEFWT8WgRVZJxIYgQU5LQQorUEFWT8WgRVZJxIYgUk9ET0xKVUIKK1BBWkFSU0tJIFNURVZBTgorUEFaTUFOSiBKVUxJSkFOQQorUEXEjEFSScSGIEtBVElDQQorUEXEjEkgR0VaQQorUEXEjEkgScWgVFZBTgorUEXEjEkgTUFSSUpBCitQRcSMS0FJLUtPVkHEjCBBTkEKK1BFxIxLQUkgTUFSR0lUQQorUEXEjFZBUkFDIFNUQU5PSkUKK1BFxaBFTkpBTlNLSSBJVkFOCitQRcWgRU5KQU5TS0kgSVZBTgorUEXFoEVOSkFOU0tJIEtBUkxPCitQRcWgRVZJxIYgQk9HREFOCitQRcWgRVZTS0kgxJBPS0EKK1BFxaBFVlNLSSBUT01FCitQRcWgRVZTS0kgVkxBRE8KK1BFxaBJxIYgxb1JVkFOCitQRcWgScSGIEFMRUtTQU5EQVIKK1BFxaBJxIYgQU7EkEVMS08KK1BFxaBJxIYgQlVESU1JUgorUEXFoEnEhiBERVNJTUlSCitQRcWgScSGIERJTUlUUklKRQorUEXFoEnEhiBESU1JVFJJSkUKK1BFxaBJxIYgRFJBR0FOCitQRcWgScSGIERSQUdJQ0EKK1BFxaBJxIYgRFJBR09MSlVCCitQRcWgScSGIERSQUdPTEpVQgorUEXFoEnEhiBHT0pLTworUEXFoEnEhiBHUkFESU1JUgorUEXFoEnEhiBJTElKQQorUEXFoEnEhiBKT1JEQU4KK1BFxaBJxIYgSk9WQU4KK1BFxaBJxIYgTEpVQklDQQorUEXFoEnEhiBNSUxBRElOCitQRcWgScSGIE1JTEFOCitQRcWgScSGIE1JTElOS08KK1BFxaBJxIYgTUlMVVRJTgorUEXFoEnEhiBNSUxVVElOCitQRcWgScSGIE1JUk9TTEFWCitQRcWgScSGIFBFVEFSCitQRcWgScSGIFJBRE1JTEEKK1BFxaBJxIYgUkFKS08KK1BFxaBJxIYgUlXFvUEKK1BFxaBJxIYgU0FWQQorUEXFoEnEhiBTVEFOT0pFCitQRcWgScSGIFNURVZBTiBEUgorUEXFoEnEhiBWTEFESU1JUgorUEXFoEnEhiBWVUtBxaBJTgorUEXFoElLQU4gVElIT01JUgorUEXFoElLQU4gVlVLCitQRcWgS0EgQU5BCitQRcWgS0FOIERSQUdBTgorUEXFoEtBTiBWRVJBCitQRcWgS0FOT1YgTUlMT1JBRAorUEXFoEtBTk9WIFBFUlNJREEKK1BFxaBLQU5PViBTVEVWQU4KK1BFxaBLQU5PViBUT0RPUgorUEXFoE9WScSGIE1JTElWT0pFCitQRcWgT1ZJxIYgU1RPSkFOCitQRcWgVEFMScSGIFNMT0JPREFOS0EKK1BFxaBURVJBQyDEjEVET01JUgorUEXFoFRFUkFDIE1JTE9NSVIKK1BFxaBURVJBQyBNSUxVVElOCitQRcWgVEkgSk/FvUVGCitQRcWgVVQgQUxFS1NBTkRSQQorUEXFoFVUIEJPxaBLTworUEXFoFVUIEJSQU5LTworUEXFoFVUIERVxaBBTgorUEXFoFVUIERVxaBBTgorUEXFoFVUIElMSUpBCitQRcWgVVQgTUFSSUpBCitQRcWgVVQgTUlMQU4KK1BFxaBVVCBNSUxJQ0EKK1BFxaBVVCBTTEFWS0EKK1BFxaBVVCBTTUlMSkEKK1BFxaBVVCBWTEFESU1JUgorUEXEhkFOQUMgQk9TSUxKS0EKK1BFxIZBTkFDIERJTUlUUklKRQorUEXEhkFOQUMgSk9WQU4KK1BFxIZBTkFDIE5JS09MQQorUEXEhkFOQUMgVkVTTkEKK1BFxIZBTklOIERVxaBBTgorUEXEhkFOSU4gTEpVQknFoEEgRElQTCBJTkcKK1BFxIZBTklOIE1JUk9TTEFWQQorUEXEhkFOSU4gT01JTEpFTgorUEXEhkFOSU4tVkVSTUVaT1ZJxIYgT0xKQQorUEXEhktPIERBTklMTworUEXEhktPIFZFUkEKK1BFxIZPIExBWkFSCitQRcSGTyBMVUtBCitQRcSGTyBTVkVUT1pBUgorUEVDIEpVTElKRQorUEVDQVJTS0kgTEVLU0EKK1BFQ0UgxJBPUsSQRQorUEVDRSDEkE9SxJBFCitQRUNFIEFMRUtTQU5EQVIKK1BFQ0UgQU5UT04KK1BFQ0UgSUxFxaAKK1BFQ0UgWk9MVEFOCitQRUNFTEogQk/FvU8KK1BFQ0VMSiBTVEVWQU4KK1BFQ0nEhiBBQ0EKK1BFQ0nEhiBLQVRBUklOQQorUEVDScSGIE1JT0RSQUcKK1BFQ0nEhiBTVEVWQU4KK1BFQ05KSUsgQU5BCitQRUNPIE1JUlNBRAorUEVDT1ZJxIYgUkFET01JUgorUEVET1ZJxIYgUkFUT01JUgorUEVJxIYtVFVLVUxKQUMgVkpFS09TTEFWCitQRUrEjEnEhiBCT8W9SURBUgorUEVKxIxJxIYgQlJBVElTTEFWCitQRUrEjEnEhiBET0JSSVZPSkUKK1BFSsSMScSGIERPQlJJVk9KCitQRUrEjEnEhiBET0JST1NBVgorUEVKxIxJxIYgRFJBR09NSVIKK1BFSsSMScSGIERVxaBBTktBCitQRUrEjEnEhiBEVUJSQVZLQQorUEVKxIxJxIYgR1JBRElNSVIKK1BFSsSMScSGIElMSUpBCitQRUrEjEnEhiBJTElKQQorUEVKxIxJxIYgSkFTTUlOQQorUEVKxIxJxIYgSk9WQU4KK1BFSsSMScSGIEpPVkFOCitQRUrEjEnEhiBMSlVCSUNBCitQRUrEjEnEhiBMSlVCT01JUgorUEVKxIxJxIYgTUlMRU5LTworUEVKxIxJxIYgTUlMRQorUEVKxIxJxIYgTUlPRFJBRworUEVKxIxJxIYgTUlST1NMQVYKK1BFSsSMScSGIE1JVEFSCitQRUrEjEnEhiBNT03EjElMTworUEVKxIxJxIYgTk9WQUsKK1BFSsSMScSGIFBFVEFSCitQRUrEjEnEhiBSQURPU0xBVkEKK1BFSsSMScSGIFJVxb1BCitQRUrEjEnEhiBTQVZBCitQRUrEjEnEhiBTQVZBCitQRUrEjEnEhiBTVkVUSVNMQVYKK1BFSsSMScSGIFZPSklTTEFWCitQRUrEjEnEhiBWT0pJU0xBVgorUEVKxIxJxIYgWk9SQU4KK1BFSkFLIMSQT1LEkEUKK1BFSkFLIMSQVVJBCitQRUpBSyBCUkFOS08KK1BFSkFLIERSQUdPU0xBVkEKK1BFSkFLIEpFTEVOQQorUEVKQUsgSk9WQU4KK1BFSkFLIEpPVklDQQorUEVKQUsgTEFaQVIKK1BFSkFLIExKVUJJQ0EKK1BFSkFLIE1JTEFOCitQRUpBSyBNSUxJTktBCitQRUpBSyBNSU9EUkFHCitQRUpBSyBNSVJKQU5BCitQRUpBSyBNT0pBCitQRUpBSyBORVZFTktBCitQRUpBSyBSQURPVkFOCitQRUpBSyBSQUpLTworUEVKQUsgU0FWQQorUEVKQUsgU0xBVktPCitQRUpBSyBUUklWQQorUEVKQUsgVkVSSUNBCitQRUpBSyBWTEFESU1JUgorUEVKQUtJxIYgTUFSS08KK1BFSkFLT1ZJxIYgxb1BUktPCitQRUpBS09WScSGIMSQT1LEkEUKK1BFSkFLT1ZJxIYgRFXFoEFOCitQRUpBS09WScSGIElMSUpBCitQRUpBS09WScSGIE1JTEVOS08KK1BFSkFLT1ZJxIYgTkFORE9SCitQRUpBS09WScSGIE5FTkFECitQRUpBS09WScSGIFBFUklDQQorUEVKQUtPVknEhiBQRVRBUgorUEVKQUtPVknEhiBQUkVEUkFHCitQRUpBTk9WScSGIMSQT1LEkEUKK1BFSkFOT1ZJxIYgQU7EkEVMS08KK1BFSkFOT1ZJxIYgQlJBTktPCitQRUpBTk9WScSGIERJTUlUUklKRQorUEVKQU5PVknEhiBNSUxLQQorUEVKQU5PVknEhiBSQURPVkFOIERSCitQRUpBTk9WScSGIFpPUkFOCitQRUpJxIxJxIYgTUlMQU4KK1BFSknEhiDFvUlWQU4KK1BFSknEhiBBTEVLU0FOREFSCitQRUpJxIYgQUxFS1NBTkRBUgorUEVKScSGIEFOSUNBCitQRUpJxIYgQU5UT04KK1BFSknEhiBCT0dEQU5LQQorUEVKScSGIEJPUklWT0oKK1BFSknEhiBCUkFOSVNMQVYKK1BFSknEhiBCUkFOSVNMQVYKK1BFSknEhiBEUkFHQU4KK1BFSknEhiBEUkFHQU4KK1BFSknEhiBEUkFHScWgQQorUEVKScSGIERSQUdJQ0EKK1BFSknEhiBEUkFHTworUEVKScSGIERSQUdPCitQRUpJxIYgRFXFoEFOCitQRUpJxIYgRFXFoEFOCitQRUpJxIYgRFXFoEFOCitQRUpJxIYgR0FWUkEKK1BFSknEhiBJVkFOCitQRUpJxIYgSVZBTgorUEVKScSGIEpBTkpBCitQRUpJxIYgSk9WQU4KK1BFSknEhiBMSlVCT01JUgorUEVKScSGIE1BUkEKK1BFSknEhiBNSUhBSkxPCitQRUpJxIYgTUlMQU4KK1BFSknEhiBNSUxBTgorUEVKScSGIE1JTEFOCitQRUpJxIYgTUlMRU5LTworUEVKScSGIE1JTElDQQorUEVKScSGIE1JTE/FoAorUEVKScSGIE1JTE9SQUQKK1BFSknEhiBNSUxPUkFECitQRUpJxIYgTUlMT1JBRAorUEVKScSGIE1JTE9SQUQKK1BFSknEhiBNSUxPUkFECitQRUpJxIYgTUlMT1JBRAorUEVKScSGIE1JTE9TQVYKK1BFSknEhiBORURFTEpLTworUEVKScSGIE5JS09MQQorUEVKScSGIE5JS08KK1BFSknEhiBOT1ZBSworUEVKScSGIE9SSkVOCitQRUpJxIYgUFJFRFJBRworUEVKScSGIFJBRE9KS0EKK1BFSknEhiBSQURPU0FWCitQRUpJxIYgUkFKS08KK1BFSknEhiBSVcW9SUNBCitQRUpJxIYgU0xPQk9EQU5LQQorUEVKScSGIFNMT0JPREFOCitQRUpJxIYgU0xPQk9EQU4KK1BFSknEhiBTT0ZJSkEKK1BFSknEhiBTVEFOS08KK1BFSknEhiBTVEVWQU4KK1BFSknEhiBTVElQQU4KK1BFSknEhiBWRVJJQ0EKK1BFSknEhiBWTEFETworUEVKSU4gxJBPUsSQRQorUEVKSU4gxJBVUsSQSU5BCitQRUpJTiBBTsSQRUxLQQorUEVKSU4gQlJBTklNSVIKK1BFSklOIEJSQU5JTUlSCitQRUpJTiBCUkFOSU1JUgorUEVKSU4gREVKQU4KK1BFSklOIERJTUlUUklKRQorUEVKSU4gRFXFoEFOIERSCitQRUpJTiBHT0pLTworUEVKSU4gSkVMRU5BCitQRUpJTiBKT1ZBTgorUEVKSU4gTEFaQVIgRElQTCBPRUMKK1BFSklOIE1BUklKQQorUEVKSU4gTUFSSVRBCitQRUpJTiBNSUxJVk9KCitQRUpJTiBNSUxPxaAKK1BFSklOIE1JTE9SQUQKK1BFSklOIE1JUk9TTEFWCitQRUpJTiBNTEFERU4KK1BFSklOIE5FTkFECitQRUpJTiBOSUtPTEEKK1BFSklOIE5JS09MQQorUEVKSU4gTklLT0xBCitQRUpJTiBOT1ZBSworUEVKSU4gUEFWTEUKK1BFSklOIFBFUlNJREEKK1BFSklOIFBMQVbFoEEKK1BFSklOIFJBREEKK1BFSklOIFJBREEKK1BFSklOIFJBRE9TTEFWCitQRUpJTiBTVEVWQU4KK1BFSklOIFNURVZBTgorUEVKSU4gVkFTQQorUEVKSU4gVkVSSUNBCitQRUpJTiBWVUtPU0FWQQorUEVKSU5PViBCUkFOSVNMQVYKK1BFSklOT1YgTEpVQklDQQorUEVKSU5PViBWRUxKS08KK1BFSklOT1ZJxIYgRFJBR0FOCitQRUpLT1ZJxIYgQUxFS1NBTkRBUgorUEVKS09WScSGIERBTklMS0EKK1BFSktPVknEhiBJQk9MSktBCitQRUpLT1ZJxIYgSVZBTgorUEVKS09WScSGIEpBU05BCitQRUpOT1ZJxIYgQk9TSUxKS0EKK1BFSk5PVknEhiBMSlVCSU5LQQorUEVKTk9WScSGIE1JTEFOCitQRUpOT1ZJxIYgTUlST1NMQVYKK1BFSk5PVknEhiBOSUtPTEEKK1BFSk5PVknEhiBTVEVWQU4KK1BFSk9WScSGIMSQT0tBCitQRUpPVknEhiDEkFVLQU4KK1BFSk9WScSGIEFMRUtTQU5EQVIKK1BFSk9WScSGIEFMRUtTQU5EQVIKK1BFSk9WScSGIEJPxb1JREFSCitQRUpPVknEhiBCT1JJU0xBVgorUEVKT1ZJxIYgQk9SSVZPSkUKK1BFSk9WScSGIEJPUktBCitQRUpPVknEhiBCT1NJTEpLQQorUEVKT1ZJxIYgQlJBTktBCitQRUpPVknEhiBEQU5JQ0EKK1BFSk9WScSGIERBTklMTworUEVKT1ZJxIYgREFWSUQKK1BFSk9WScSGIERFSkFOCitQRUpPVknEhiBET0JSSUxBCitQRUpPVknEhiBEUkFHSUNBCitQRUpPVknEhiBMSlVCTworUEVKT1ZJxIYgTUFSS08KK1BFSk9WScSGIE1JTEFOCitQRUpPVknEhiBNSUxFTkEKK1BFSk9WScSGIE1JTEVOQQorUEVKT1ZJxIYgTUlMSUpBCitQRUpPVknEhiBNSUxPSktBCitQRUpPVknEhiBNSU9EUkFHCitQRUpPVknEhiBNSVJKQU5BCitQRUpPVknEhiBNT01JUgorUEVKT1ZJxIYgTkFEQQorUEVKT1ZJxIYgT0xHQQorUEVKT1ZJxIYgUEFWTEUKK1BFSk9WScSGIFBFVEFSCitQRUpPVknEhiBTQVZBCitQRUpPVknEhiBTTEFWS0EKK1BFSk9WScSGIFNMT0JPREFOS0EKK1BFSk9WScSGIFNMT0JPREFOCitQRUpPVknEhiBUT01JU0xBVgorUEVKT1ZTS0kgRFJBR0FOCitQRUpPVlNLSSBLT0xFCitQRUpPVlNLSSBUT01JU0xBVgorUEVLQVIgREFSS08KK1BFS0FSIEpBTk/FoAorUEVLQVIgTUlMS0EKK1BFS0FSIFJPWkFMSUpBCitQRUtBUk9WScSGIERSQUdJQ0EKK1BFS0FTIEFOVEUKK1BFS0XEjCBNSVRBCitQRUtFWiBCUkFOS08KK1BFS0VaIEpPVkFOCitQRUtFWiBKT1ZBTgorUEVLRVogTUFSSUNBCitQRUtFWiBNSUxPUkFECitQRUtFWiBTVEFOQQorUEVLRVogWk9SQQorUEVLScSGIEJSQU5JU0xBViBEUgorUEVLScSGIEdPUkFOCitQRUtJxIYgS1JTVE8KK1BFS0nEhiBNSUhBSkxPCitQRUtJxIYgTUlMQU4KK1BFS0nEhiBNSUxBTgorUEVLScSGIE1JTE/FoAorUEVLScSGIE1JUktPCitQRUtJxIYgU1RFVkFOCitQRUtPVknEhiDFvUVMSktPCitQRUtPVknEhiBJTElKQQorUEVLT1ZJxIYgTUFHREFMRU5BCitQRUtPVknEhiBNSUxJVk9KRQorUEVLT1ZJxIYgTUlUUlXFoEEKK1BFS09WScSGLVBBUkxBxIYgU01JTEpBIERSCitQRUtPVknEhiBQQVZBCitQRUtPVknEhiBWRVJBCitQRUtPVknEhiBWSURBCitQRUtPVknEhiBWVUtBxaBJTgorUEVLVVJBUiBLT1JORUwKK1BFS1VSQVIgUk9NQU4KK1BFTEFHScSGIE5BREEKK1BFTEFHScSGIFNSxJBBTgorUEVMRSBGRVJFTkMKK1BFTEUgTUFSSUpBCitQRUxFIFpPTFRBTgorUEVMRUdSSU4gU1RKRVBBTgorUEVMRUdSSU4gVkxBRE8KK1BFTEVWScSGIEJSQU5LTworUEVMSEUgRlJBTkpBIERSCitQRUxKSEEgxJBVUkEKK1BFTEpIQSBTQU5KQQorUEVMSkhBIFpWT05LTworUEVMT1pBIERVxaBBTgorUEVMT1pBIE5BREEKK1BFTFZBIEpPU0lQCitQRUxWQSBKT1ZBTgorUEVMVkEgWk9MVEFOCitQRUxWQUktWk9SScSGIEVESVQKK1BFTUFDIEJSQU5JU0xBVgorUEVNQUMgTEFaQVIKK1BFTkEgTUFSSU5LTworUEVOQSBNSUxBTgorUEVOQSBNSU9EUkFHCitQRU5BIFJBRElWT0oKK1BFTkEgU0xPQk9EQU4KK1BFTkFDIFNUQUtJQ0EKK1BFTkFWSU4gVkVMSU1JUgorUEVOQyBET0JSSUxBCitQRU5DIElSRU5BCitQRU5DQSBTTEFWS08KK1BFTkTFvUnEhiBCUkFOSVNMQVYKK1BFTkTFvUnEhiBKRVJPU0lNQQorUEVORVpJxIYgRFXFoEFOCitQRU5FWknEhiBORU5BRAorUEVORVpJxIYgUkFET1NMQVYKK1BFTkVaScSGIFpPUklDQQorUEVOScSGIMSMRURPTUlSCitQRU5JxIYgxJBVUsSQSUNBCitQRU5JxIYgQk9SSVNMQVYKK1BFTknEhiBCUkFOS08KK1BFTknEhiBNSUhBSkxPCitQRU5JxIYgTUlMRVZBCitQRU5JxIYgTUlMSUNBCitQRU5JxIYgUEFWTEUKK1BFTknEhiBTTEFWS08KK1BFTknEhiBTVEVWQU4KK1BFTknEhiBWTEFESU1JUgorUEVOSkHFoEtPVknEhiBaVk9OSU1JUgorUEVOSklOIMW9SVZBCitQRU5KSU4gU0xBVktPCitQRU5PViBFTUlMCitQRU5PViBMSlVCScWgQQorUEVOT1YgTUFSS08KK1BFTlpFxaAgxJBPUsSQRQorUEVOWkXFoCBGRVJFTkMKK1BFTlpFxaAgRkVSRU5DCitQRU5aRcWgIE1JSEFMSgorUEVOWkXFoCBNSUhBTEoKK1BFTlpFxaAgVElCT1IKK1BFUEnEhiBMQVpPCitQRVBJxIYgTUlMQU4KK1BFUEnEhiBNSUxFCitQRVBJxIYgTUlSSkFOQQorUEVQScSGIE1JUktPCitQRVBMSU5BQyBUT01BCitQRVLEjEkgQUdORVpBCitQRVLEjEnEhiBEUkFHQU4KK1BFUsWgIEtTRU5JSkEKK1BFUsWgQUogTUlSSkFOQQorUEVSxaBJxIYgREFOSUNBCitQRVLFoEnEhiBWQUxFUklKQQorUEVSxJBFxJBBSiBCQcWgS0lNCitQRVLEkFVOIFpWT05LTworUEVSQcSGIEJSQU5LTworUEVSQcSGIExKVVBLTworUEVSQVpJxIYgU0FWQQorUEVSQVpJxIYgVkxBRElNSVIKK1BFUkMgQlJBTktBCitQRVJDIEVMQQorUEVSQyBWTEFESU1JUgorUEVSQ0UgTFVLQQorUEVSREFOIFNUQU5JU0xBVgorUEVSRcWgIEhFUk1JTkEKK1BFUkXFvUEgTklLT0xBCitQRVJFR0kgR0VaQQorUEVSRUdJIE9TS0FSCitQRVJFSElOQUMgSVZBTgorUEVSRU7EjEVWScSGIFZBU08KK1BFUkVQQVRJxIYgUElST8WgCitQRVJFUEFUScSGIFNURVZBTgorUEVSRVVMQSBCT0dEQU4KK1BFUkdBTCBNSVJPU0xBViBEUiBJTkcKK1BFUkdFIEVTVEVSCitQRVJHRSBNQVJBCitQRVJHRSBWSUtUT1JJSkEKK1BFUknEjEVWScSGIEJSQU5LTworUEVSScSMRVZJxIYgUkFKS08KK1BFUknEjElOIMW9SVZBTgorUEVSScSMSU4gTUlMQU5LQQorUEVSScSMSU4gTUlMRU5LTworUEVSScSMSU4gUkFUS08KK1BFUknEjElOIFZMQURBCitQRVJJxaBBIEpBS09WCitQRVJJxaBBIE1JUk9TTEFWCitQRVJJxaBJxIYgxIxFRE9NSVIKK1BFUknFoEnEhiDFvUlWT0RBUktBCitQRVJJxaBJxIYgxJBPUsSQRQorUEVSScWgScSGIMSQT1LEkEUKK1BFUknFoEnEhiBBTEVLU0FOREFSCitQRVJJxaBJxIYgQU5JQ0EKK1BFUknFoEnEhiBCTEHFvU8KK1BFUknFoEnEhiBCTEFHT0pFCitQRVJJxaBJxIYgQk9CQU4KK1BFUknFoEnEhiBCT1JJU0xBVgorUEVSScWgScSGIEJSQU5LTworUEVSScWgScSGIERBTklDQQorUEVSScWgScSGIERSQUdPTUlSCitQRVJJxaBJxIYgRFXFoEFOS0EKK1BFUknFoEnEhiBJUkVOQQorUEVSScWgScSGIEtBVElDQQorUEVSScWgScSGIEtBVElDQQorUEVSScWgScSGIExBWkFSCitQRVJJxaBJxIYgTEFaQVIKK1BFUknFoEnEhiBMQVpBUgorUEVSScWgScSGIExBWkEKK1BFUknFoEnEhiBMSlVCT01JUgorUEVSScWgScSGIE1BTkNJS0EKK1BFUknFoEnEhiBNQVJBCitQRVJJxaBJxIYgTUlIQUpMTworUEVSScWgScSGIE1JTEFOCitQRVJJxaBJxIYgTUlMRU5LTworUEVSScWgScSGIE1JTElOS08KK1BFUknFoEnEhiBNSUxKQQorUEVSScWgScSGIE1JTE9WQU4KK1BFUknFoEnEhiBNSUxPVkFOCitQRVJJxaBJxIYgTUlMVVRJTgorUEVSScWgScSGIE1JT0RSQUcKK1BFUknFoEnEhiBNSVJBCitQRVJJxaBJxIYgTklLT0xBCitQRVJJxaBJxIYgUkFERQorUEVSScWgScSGIFJBRE9TTEFWQQorUEVSScWgScSGIFJBRE9TTEFWCitQRVJJxaBJxIYgUkFOS08KK1BFUknFoEnEhiBTVEFOS08KK1BFUknFoEnEhiBTVEVWTworUEVSScWgScSGIFNUT0pBTgorUEVSScWgScSGIFNWRVRPWkFSCitQRVJJxaBJxIYgVE9ET1IKK1BFUknFoEnEhiBVR0xKRcWgQQorUEVSScWgScSGIFZBU08KK1BFUknFoEnEhiBWQVNPCitQRVJJxIYgxb1BUktPCitQRVJJxIYgxb1JVktBCitQRVJJxIYgxb1JVk9KSU4KK1BFUknEhiDEkE9SxJBFCitQRVJJxIYgxJBVUklDQQorUEVSScSGIEFMRUtTQU5EQVIKK1BFUknEhiBBTkEKK1BFUknEhiBCSVNFUktBCitQRVJJxIYgQk/FvUlEQVIKK1BFUknEhiBCT8W9SURBUgorUEVSScSGIEJPUklTCitQRVJJxIYgQlJBTklTTEFWCitQRVJJxIYgQlJBTklTTEFWCitQRVJJxIYgQlJBTktPCitQRVJJxIYgQ1ZJSkVUSU4KK1BFUknEhiBET0JSSUxBCitQRVJJxIYgRFJBR0FOQQorUEVSScSGIERVxaBBTktBCitQRVJJxIYgRFXFoEFOCitQRVJJxIYgRFXFoEFOCitQRVJJxIYgR09KS08gRElQTCBJTkcKK1BFUknEhiBHT1JBTgorUEVSScSGIElWQU4KK1BFUknEhiBKQU5LTworUEVSScSGIEpFTEtBCitQRVJJxIYgSk9WQU5LQQorUEVSScSGIEpPVkFOCitQRVJJxIYgS1NFTklKQQorUEVSScSGIExBWkEKK1BFUknEhiBMSlVCScWgQQorUEVSScSGIExKVUJJQ0EKK1BFUknEhiBMSlVCSU5LQQorUEVSScSGIExKVUJJTktPCitQRVJJxIYgTEpVQk9NSVIKK1BFUknEhiBNQVJBCitQRVJJxIYgTUFSSUpBCitQRVJJxIYgTUFSSUpBCitQRVJJxIYgTUFSSUpBCitQRVJJxIYgTUFSSU5LTworUEVSScSGIE1BUktPCitQRVJJxIYgTUlIQQorUEVSScSGIE1JTEFESU4KK1BFUknEhiBNSUxBTgorUEVSScSGIE1JTEVOS08KK1BFUknEhiBNSUxJQ0EKK1BFUknEhiBNSUxLSUNBCitQRVJJxIYgTUlMT8WgCitQRVJJxIYgTUlMT8WgCitQRVJJxIYgTUlMT1JBRAorUEVSScSGIE1JT0RSQUcKK1BFUknEhiBNSVRBUgorUEVSScSGIE5BVEHFoEEKK1BFUknEhi1ORcWgScSGIENPS0EKK1BFUknEhiBOSUtPTEEKK1BFUknEhiBOSUtPTEEKK1BFUknEhiBOSUtPTEEKK1BFUknEhiBOSUtPTEEKK1BFUknEhiBQQVZMRQorUEVSScSGIFBFVEFSCitQRVJJxIYgUkHFoEEKK1BFUknEhiBSQURFCitQRVJJxIYgUkFESVZPSgorUEVSScSGIFJBRE8KK1BFUknEhiBSQUpLTworUEVSScSGIFJPRE9MSlVCCitQRVJJxIYgUlXFvUlDQQorUEVSScSGIFNBVkEKK1BFUknEhiBTQVZBCitQRVJJxIYgU0xBVklDQQorUEVSScSGIFNMQVZLTworUEVSScSGIFNMT0JPREFOCitQRVJJxIYgU0xPQk9EQU4KK1BFUknEhiBTTUlMSkEKK1BFUknEhiBTVEFOS0EKK1BFUknEhiBTVkVUT1pBUgorUEVSScSGIFRPTUlTTEFWCitQRVJJxIYgVkFTQQorUEVSScSGIFZJTktBCitQRVJJxIYgVkxBVEtPCitQRVJJxIYgWkRFTktBCitQRVJJxIYgWk9SQU4KK1BFUknEhiBaT1JBTgorUEVSScSGIFpPUkEKK1BFUklDQSBBTlRFCitQRVJJQ0EgUkFET1NMQVYKK1BFUklOIEJSQU5JU0xBVgorUEVSSU4gRFJBR0nFoEEKK1BFUklOIE1JTElOS08KK1BFUklOIE1JTE9SQUQKK1BFUklOIFJBREnFoEEKK1BFUklOIFNFS1VMQQorUEVSSU4gWk9SQQorUEVSSU5BQyBSQURPVkFOCitQRVJJTkFDIFJBRE9WQU4KK1BFUklOT1ZJxIYgQlJBTktPCitQRVJJTk9WScSGIE5BREEKK1BFUklOT1ZJxIYgU0xBVklDQQorUEVSSU5PVknEhiBTTEFWS08KK1BFUklOT1ZJxIYgU1RBTktPCitQRVJJWiBTVEVWTworUEVSS09WIFJBRElOS0EKK1BFUktPVkFDIE1BUklKQQorUEVSS09WScSGIEJSQU5JTUlSCitQRVJLT1ZJxIYgQlJBTklTTEFWCitQRVJLT1ZJxIYgREFOSUNBCitQRVJLT1ZJxIYgRFJBR0FOCitQRVJLT1ZJxIYgR1ZPWkRFTgorUEVSS09WScSGIEpFTEtBCitQRVJLT1ZJxIYgUkFESVZPSgorUEVSS09WScSGIFJBRE9NQU4gTVIKK1BFUktPVknEhiBTTEFWS08KK1BFUktPVknEhiBUQURJSkEKK1BFUktPVknEhiBUT01PCitQRVJLT1ZTS0kgxJBPUsSQRQorUEVSS09WU0tJIEFOxJBFTEtPCitQRVJLVcSMSU4gxJBPUsSQRQorUEVSS1XEjElOIMSQVUxJTktBCitQRVJLVcSMSU4gRFXFoEFOCitQRVJLVcSMSU4gR09SREFOQQorUEVSS1XEjElOIEtBVElDQQorUEVSS1XEjElOIE5JS09MQQorUEVSS1XEjElOIFJBRElWT0ogRFIKK1BFUkxBS0kgTEFKT8WgCitQRVJMScSGIERSQUdBTgorUEVSTElOQUMgU0lNRVVOCitQRVJOSkFLIE5BVEFMSUpBCitQRVJOSkFLIE5JS09MQSBESVBMIElORworUEVSTkpBS09WScSGIERSQUdPU0xBVgorUEVST8WgRVZJxIYgTk9WSUNBCitQRVJPxaBFVknEhiBTVEFOS0EKK1BFUk9TQVZMSkVWScSGIExKVUJJxaBBCitQRVJPVkFOT1ZJxIYgQUxFS1NBTkRBUgorUEVST1ZBTk9WScSGIERVxaBBTgorUEVST1ZBTk9WScSGIEpBR09EQQorUEVST1ZJxIYgxb1BTktBCitQRVJPVknEhiBBTsSQRUxLQQorUEVST1ZJxIYgQk9KQU5BCitQRVJPVknEhiBCUkFOS08KK1BFUk9WScSGIEJSQVRJTUlSCitQRVJPVknEhiBEUkFHTworUEVST1ZJxIYgR0FCUklFTEEKK1BFUk9WScSGIElWQU5LQQorUEVST1ZJxIYgSkVMQQorUEVST1ZJxIYgSk9WQU4KK1BFUk9WScSGIEtBVEFSSU5BCitQRVJPVknEhiBNQVJLTworUEVST1ZJxIYgTUlMRU5LTyBEUgorUEVST1ZJxIYgTUlMT1JBRAorUEVST1ZJxIYgTUxBxJBFTgorUEVST1ZJxIYgTkFERcW9REEKK1BFUk9WScSGIE5JS09MQQorUEVST1ZJxIYgUkFEQcWgSU4KK1BFUk9WScSGIFJBRElTQVYKK1BFUk9WScSGIFJBRElTTEFWCitQRVJPVknEhiBSQURJVk9KRQorUEVST1ZJxIYgUkFESVZPSgorUEVST1ZJxIYgUkFET1ZBTiBESVBMIElORworUEVST1ZJxIYgU1ZFVE9NSVIKK1BFUk9WScSGIFZFU0VMSU4KK1BFUk9WScSGIFZMQUpLTworUEVSVEnEhiBaQUtBUklBxaAKK1BFUlRPVCBKRUxFTkEKK1BFUlVOScSMScSGIERPQlJJTEEKK1BFUlVOScSMScSGIE1JTE9SQUQKK1BFUlVOScSMScSGIFJBREFOCitQRVJVTk9WScSGIExKSUxKQU5BCitQRVJVTk9WScSGIFBBTlRPCitQRVJVTk9WScSGIFNUQU5PSkUKK1BFUlZBWiDFvUlWS0EKK1BFUlZBWiBEUkFHSU5KQSBEUiBQUk9GCitQRVNJUkFDIERSQUdPTEpVQgorUEVTSVJBQyBLQVRBUklOQQorUEVTSVJBQyBQRVRBUgorUEVTSVJBQyBTVEVWQU4KK1BFU0xBxIYgSk9WQU4KK1BFU1RBTEnEhiBKT1NJUAorUEVTVEVMRUsgTEpVQknFoEEKK1BFU1RFTEVLIExKVUJJxaBBCitQRVRBS09WIMW9SVZLTworUEVUQUtPViBKVUxLQQorUEVUQUtPViBNSUxFTktPCitQRVRBS09WIFJBRE9TTEFWCitQRVRBS09WIFJBTktBCitQRVRBS09WIFNBVkEKK1BFVEFLT1ZJxIYgRE9CUklMQQorUEVUQUtPVknEhiBEVcWgQU4KK1BFVEFLT1ZJxIYgSUxJSkEKK1BFVEFLT1ZJxIYgSk9WQU4KK1BFVEFLT1ZJxIYgTUlMSUNBCitQRVRBS09WScSGIE5FTUFOSkEKK1BFVEFLT1ZJxIYgUkFESVZPSgorUEVUQUtPVknEhiBSQUpLTworUEVUQUtPVknEhiBTQVZBCitQRVRFIMSQVVJBCitQRVRFIMSQVVJBCitQRVRFIERVxaBBTktBCitQRVRFIEZFUkVOQworUEVURSBGRVJFTkMKK1BFVEUgRlJBTkpBCitQRVRFIEnFoFRWQU4KK1BFVEUgScWgVFZBTgorUEVURSBJxaBUVkFOCitQRVRFIEtBUk9MSgorUEVURSBQRVRBUgorUEVURSBTVEVQQU4KK1BFVEUgU1RFVkFOCitQRVRFSiBSQVRLTworUEVURUsgREFNSVIKK1BFVEVMSU4gRUxJWkFCRVRBCitQRVRFTkpJIEpPU0lQIERSCitQRVRFTkpJIFNURVZBTgorUEVURVIgRlJBTkNJxaBLQQorUEVURVIgSk/FvUVGCitQRVRFUiBKT0xBTgorUEVURVIgSk9WQU4KK1BFVEVSIE1JSEFMSgorUEVURVIgVklMTU/FoAorUEVURVJLQSDEkE9SxJBFCitQRVRFUktBIEpFTEVOQQorUEVURVJLQSBKT1NJUAorUEVURVJLQSBNQVJJSkEKK1BFVEVSS0EgU1RFVkFOCitQRVRFUktBIFZMQURJU0xBVgorUEVURVJMScSGIE1JTEFOCitQRVRFUk5FTCBMSURJSkEKK1BFVEnEhiBNSUxBTgorUEVUScSGIFpPUktBCitQRVRJSkVWScSGIEpPVkFOIE1SCitQRVRJSkVWScSGIEpPVkFOCitQRVRJTiBOSUtPTEEgUFJPRkVTT1IKK1BFVEtBTknEhiBNSUxPUkFECitQRVRLT1Ygxb1BUkUKK1BFVEtPViDEkE9SxJBFCitQRVRLT1YgxJBVUkEKK1BFVEtPViBCT1JJU0xBVgorUEVUS09WIElWQU4KK1BFVEtPViBNSUxBTgorUEVUS09WIE5BREXFvURBCitQRVRLT1YgU0FWQQorUEVUS09WIFNURVZBTgorUEVUS09WIFNURVZBCitQRVRLT1ZJxIYgxIxFREEKK1BFVEtPVknEhiDFvUFSS08KK1BFVEtPVknEhiDFvUVMSktPCitQRVRLT1ZJxIYgxb1JVk9SQUQKK1BFVEtPVknEhiDFvUlWT1JBRAorUEVUS09WScSGIMSQT1LEkEUgRFIKK1BFVEtPVknEhiDEkE9SxJBFCitQRVRLT1ZJxIYgxJBPUsSQRQorUEVUS09WScSGIMSQT1LEkEUKK1BFVEtPVknEhiDEkE9SxJBFCitQRVRLT1ZJxIYgxJBVTEEKK1BFVEtPVknEhiDEkFVSQcSQCitQRVRLT1ZJxIYgQUxFS1NBTkRBUgorUEVUS09WScSGIEFOQQorUEVUS09WScSGIEFOVFVOCitQRVRLT1ZJxIYgQk9KQU5BCitQRVRLT1ZJxIYgQk9SSVNMQVYKK1BFVEtPVknEhiBCT1JLTworUEVUS09WScSGIEJSQU5LTworUEVUS09WScSGIEJSQU5LTworUEVUS09WScSGIEJSQU5LTworUEVUS09WScSGIEJSQU5LTworUEVUS09WScSGIENWRVRLTworUEVUS09WScSGIERBUklOS0EKK1BFVEtPVknEhiBEUkFHQU4KK1BFVEtPVknEhiBEUkFHQU4KK1BFVEtPVknEhiBEUkFHScWgQQorUEVUS09WScSGIERSQUdJQ0EKK1BFVEtPVknEhiBEUkFHT0xKVUIKK1BFVEtPVknEhiBEVcWgQU4KK1BFVEtPVknEhiBEVcWgQU4KK1BFVEtPVknEhiBEVcWgQU4KK1BFVEtPVknEhiBHT1JEQU5BCitQRVRLT1ZJxIYgR1ZPWkRFTgorUEVUS09WScSGIEnFoFRWQU4KK1BFVEtPVknEhiBJTElKQQorUEVUS09WScSGIElMSUpBCitQRVRLT1ZJxIYgSUxKQQorUEVUS09WScSGIElSRU5BCitQRVRLT1ZJxIYgSkFHT0RBCitQRVRLT1ZJxIYgSk9TSVAKK1BFVEtPVknEhiBKT1ZBTgorUEVUS09WScSGIEpPVk8KK1BFVEtPVknEhiBLQUxNQU4KK1BFVEtPVknEhiBLQVRBUklOQQorUEVUS09WScSGIEtPU1RBRElOCitQRVRLT1ZJxIYgS1JTVEEKK1BFVEtPVknEhiBMQVpBUgorUEVUS09WScSGIExBWkFSCitQRVRLT1ZJxIYgTEFaQVIKK1BFVEtPVknEhiBMQVpPCitQRVRLT1ZJxIYgTEpVQklOS08KK1BFVEtPVknEhiBMSlVCT01JUgorUEVUS09WScSGIE1BUktPCitQRVRLT1ZJxIYgTUlIQUpMTworUEVUS09WScSGIE1JTEFOQQorUEVUS09WScSGIE1JTEFOCitQRVRLT1ZJxIYgTUlMQU4KK1BFVEtPVknEhiBNSUxBTgorUEVUS09WScSGIE1JTEFOCitQRVRLT1ZJxIYgTUlMQU4KK1BFVEtPVknEhiBNSUxJQ0EKK1BFVEtPVknEhiBNSUxLQQorUEVUS09WScSGIE1JTE9SQUQKK1BFVEtPVknEhiBNSUxPUkFECitQRVRLT1ZJxIYgTUlMT1ZBTktBCitQRVRLT1ZJxIYgTUlMVVRJTgorUEVUS09WScSGIE1JTFVUSU4KK1BFVEtPVknEhiBNSUxVVElOCitQRVRLT1ZJxIYgTUlPRFJBRworUEVUS09WScSGIE1JT0RSQUcKK1BFVEtPVknEhiBNSU9EUkFHCitQRVRLT1ZJxIYgTUlPUklLQQorUEVUS09WScSGIE1JUkEKK1BFVEtPVknEhiBNSVJKQU5BIERJUEwgSU5HCitQRVRLT1ZJxIYgTUlSSkFOQQorUEVUS09WScSGIE1JUktPCitQRVRLT1ZJxIYgTUlSS08KK1BFVEtPVknEhiBNSVJLTworUEVUS09WScSGIE1MQURFTgorUEVUS09WScSGIE1MQURFTgorUEVUS09WScSGIE1MQURFTgorUEVUS09WScSGIE5BREEKK1BFVEtPVknEhiBOSUtPCitQRVRLT1ZJxIYgT0JSQUQKK1BFVEtPVknEhiBPTElWRVJBCitQRVRLT1ZJxIYgUEFWTEUKK1BFVEtPVknEhiBQQVZMRQorUEVUS09WScSGIFBBVkxFCitQRVRLT1ZJxIYgUEVUQVIKK1BFVEtPVknEhiBQRVRBUgorUEVUS09WScSGIFBFVEFSCitQRVRLT1ZJxIYgUEVUUkEKK1BFVEtPVknEhiBQVU5JxaBBCitQRVRLT1ZJxIYgUkFERQorUEVUS09WScSGIFJBRElWT0oKK1BFVEtPVknEhiBSQURPVkFOCitQRVRLT1ZJxIYgUkFET1ZBTgorUEVUS09WScSGIFJBVEtBCitQRVRLT1ZJxIYgU0xBVktPCitQRVRLT1ZJxIYgU0xPQk9EQU4KK1BFVEtPVknEhiBTTE9CT0RBTgorUEVUS09WScSGIFNSxJBBTgorUEVUS09WScSGIFNUQU5BCitQRVRLT1ZJxIYgU1RBTk9KRQorUEVUS09WScSGIFNURVZBTgorUEVUS09WScSGIFNURVZBTgorUEVUS09WScSGIFNWRVRJU0xBVgorUEVUS09WScSGIFRPTUlTTEFWCitQRVRLT1ZJxIYgVE9NSVNMQVYKK1BFVEtPVknEhiBWQVNJTElKRQorUEVUS09WScSGIFZFUkEKK1BFVEtPVknEhiBWRVJJQ0EKK1BFVEtPVknEhiBWRVNFTElOCitQRVRLT1ZJxIYgVkxBRElNSVIKK1BFVEtPVknEhiBWTEFESU1JUgorUEVUS09WScSGIFZMQURJTUlSCitQRVRLT1ZJxIYgVkxBRElTTEFWCitQRVRLT1ZJxIYgVk9KSVNMQVYKK1BFVEtPVknEhiBWVUtBxaBJTgorUEVUS09WScSGIFZVS09TQVZBCitQRVRLT1ZJxIYgWkxBVEtPCitQRVRLT1ZJxIYgWkxBVE9NSVIKK1BFVEtPVknEhiBaT1JBTgorUEVUS09WU0tBIFNMQVZJQ0EKK1BFVEtPVlNLSSBBQ0EKK1BFVEtPVlNLSSBHT1JBTgorUEVUS09WU0tJIE1JTEtBCitQRVRLT1ZTS0kgU1RBTktPCitQRVRMRUsgSk9WQU4KK1BFVExKQU5TS0kgQlJBTktPCitQRVRMSkFOU0tJIERSQUdPU0xBVgorUEVUTEpBTlNLSSBJUkVOQQorUEVUTyBKT8W9RUYKK1BFVE/FoEVWScSGIE1JTEUKK1BFVE/FoEVWScSGIFNMQVZLTworUEVUT8WgRVZJxIYgU1RFVkFOCitQRVRPxaBFVknEhiBTVkVUSVNMQVYKK1BFVE9ITEVCIFBBVklDQQorUEVUT0pFVknEhiDEkE9SxJBFCitQRVRPVknEhiDEkFVSTworUEVUT1ZJxIYgR09KS08KK1BFVE9WScSGIE1JTEVOQQorUEVUT1ZJxIYgU0xBVktPCitQRVRSQcWgSU5PVknEhiBEUkFHQU4KK1BFVFJBxaBLT1ZJxIYgRFJBR0FOCitQRVRSQcWgS09WScSGIEVNSUxJSkEKK1BFVFJBS09WScSGLUdSQU9WQUMgS09TQU5BCitQRVRSQU5PVknEhiBKT1NJUAorUEVUUkFOT1ZJxIYgTUFHREEKK1BFVFJBTk9WScSGIFpWT05LTworUEVUUkXFoCBGUkFOSk8KK1BFVFJFxaAgUkFERQorUEVUUkVOSiBTVEVWQU4KK1BFVFJFVlNLQSBaT1JBTktBCitQRVRSRVZTS0kgQk9SSVMKK1BFVFJFVlNLSSBJTE9OQQorUEVUUkVWU0tJIEtJUk8KK1BFVFJJIE1JTEVOQQorUEVUUkkgTUlST1NMQVZBCitQRVRSScSMRVZJxIYgSVZBTgorUEVUUknEjEnEhiBCUkFOS08KK1BFVFJJxIxJxIYgREFORQorUEVUUknEjEnEhiBKT1ZPCitQRVRSScSMScSGIE1JTEFOCitQRVRSScSMScSGIE1JTEFOCitQRVRSScSMScSGIFNURVZBTgorUEVUUknEjEnEhiBUQVRKQU5BCitQRVRSScSGIMSQT1LEkEUKK1BFVFJJxIYgQUxFS1NBTkRBUgorUEVUUknEhiBBTkFTVEFaSUpBCitQRVRSScSGIEJPxaBLTworUEVUUknEhiBCUkFOSVNMQVZBCitQRVRSScSGIEJSQU5LTyBEUgorUEVUUknEhiBEQU5JTE8KK1BFVFJJxIYgREVTQU5LQSBESVBMIElORworUEVUUknEhiBERVNJTUlSCitQRVRSScSGIERJTUlUUklKRSBESVBMIElORworUEVUUknEhiBESU1JVFJJSkUKK1BFVFJJxIYgRElNSVRSSUpFCitQRVRSScSGIERVxaBBTktBCitQRVRSScSGIERVxaBBTgorUEVUUknEhiBJTElKQQorUEVUUknEhiBKT1ZBTgorUEVUUknEhiBMQVpBUiBNUgorUEVUUknEhiBMSklMSkFOQQorUEVUUknEhiBMSlVCSUNBCitQRVRSScSGIE1JTEFOCitQRVRSScSGIE1JTEFOCitQRVRSScSGIE1JTEVOS08KK1BFVFJJxIYgTUlMRVRBCitQRVRSScSGIE1JTElWT0oKK1BFVFJJxIYgTUlMT1JBRAorUEVUUknEhiBOQURBCitQRVRSScSGIE9MR0EKK1BFVFJJxIYgUEVUQVIKK1BFVFJJxIYgUEVUQVIKK1BFVFJJxIYgUkFESVNBVgorUEVUUknEhiBSQURJU0FWCitQRVRSScSGIFJBRE9WQU4KK1BFVFJJxIYgU0xBVklDQQorUEVUUknEhiBTTE9CT0RBTktBCitQRVRSScSGIFNMT0JPREFOCitQRVRSScSGIFNPRklKQQorUEVUUknEhiBTT0ZJSkEKK1BFVFJJxIYgVkFTSUxJSkUKK1BFVFJJxIYgVlVMRVRBCitQRVRSSUsgxaBBTkRPUgorUEVUUklLIEFMRUtTQU5EQVIgRElQTCBJTkcKK1BFVFJJSyBFTElaQUJFVEEKK1BFVFJJSyBJxaBUVkFOCitQRVRSSUsgVklOQ0UKK1BFVFJJSyBaT0xUQU4KK1BFVFJJS0EgTEpVQknFoEEKK1BFVFJJS0EgTUlPRFJBRworUEVUUklLT05KQSBLU0VOSUpBCitQRVRSSUtPTkpBIExBWkFSCitQRVRSSU4gRFXFoEFOCitQRVRSSU4gS0FUSUNBCitQRVRSSU4gTUFKQQorUEVUUklOIE1JTEFOS0EKK1BFVFJJTiBNSUxBTktBCitQRVRSSU4gUkFETUlMQQorUEVUUklOIFZMQURJTUlSCitQRVRSSU4gVkxBRElNSVIKK1BFVFJJTknEhiBNSVJLTworUEVUUklOT1ZJxIYgTUlMSU5BCitQRVRSSU5PVknEhiBTVEVWQQorUEVUUk8gQU5URQorUEVUUk8gS0FUQUxJTgorUEVUUk8gTklLTworUEVUUk8gU0FOSkEKK1BFVFJPTknEhiDFvUlWT1RBCitQRVRST05JxIYgQUxFS1NBTkRBUgorUEVUUk9OScSGIEtBVEFSSU5BCitQRVRST05JSkVWScSGIERSQUdPTUlSCitQRVRST05JSkVWScSGIEdPUkFOCitQRVRST05JSkVWScSGIFBSRURSQUcKK1BFVFJPTklKRVZJxIYgU1JFVEEKK1BFVFJPTklKRVZJxIYgVkxBU1RJTUlSCitQRVRST05KRSBNSU9EUkFHCitQRVRST05KRSBNSU9EUkFHCitQRVRST1Ygxb1JVkFOQQorUEVUUk9WIMW9SVZBTgorUEVUUk9WIEFOQVRPTElKCitQRVRST1YgQU5BCitQRVRST1YgQk9SSVMKK1BFVFJPViBEQU5JQ0EKK1BFVFJPViBEVcWgQU5LQQorUEVUUk9WIERVxaBBTgorUEVUUk9WIEVWSUNBCitQRVRST1YgRlJBTktBCitQRVRST1YgScWgVFZBTgorUEVUUk9WIElWQU4KK1BFVFJPViBKQVNNSU5BCitQRVRST1YgSkVMRU5BCitQRVRST1YgSk/FvUVGCitQRVRST1YgTEFaQVIKK1BFVFJPViBMSlVCT01JUgorUEVUUk9WIExKVUJPTUlSCitQRVRST1YgTUFSSUpBCitQRVRST1YgTUFSSUpBCitQRVRST1YgTUFSSU5LTworUEVUUk9WIE1JTEFOCitQRVRST1YgTUlMRU5LTworUEVUUk9WIE1JTElDQQorUEVUUk9WIE1JTE9SQUQKK1BFVFJPViBNSUxPU0FWQQorUEVUUk9WIE1JTE9WQU4KK1BFVFJPViBNSU9EUkFHCitQRVRST1YgTUlPRFJBRworUEVUUk9WIE1JUk9TTEFWCitQRVRST1YgTU9NxIxJTE8KK1BFVFJPViBOQURBCitQRVRST1YgTkFUQUxJSkEKK1BFVFJPViBORUJPSsWgQSBEUgorUEVUUk9WIE9MR0EKK1BFVFJPViBSQURNSUxBCitQRVRST1YgU0HFoEEKK1BFVFJPViBTQVZBCitQRVRST1YgU0FWQQorUEVUUk9WIFNBVkEKK1BFVFJPViBTRVJHSUpFCitQRVRST1YgU0xBVktBCitQRVRST1YgU0xBVktPCitQRVRST1YgU0xPQk9EQU4KK1BFVFJPViBTUkJJVk9KCitQRVRST1YgU1RFVkFOCitQRVRST1YgU1ZFVE9aQVIKK1BFVFJPViBUT01JU0xBVgorUEVUUk9WIFZBU08KK1BFVFJPViBWRUxJWkFSCitQRVRST1YgVkxBRElNSVIKK1BFVFJPViBWT0pJU0xBVgorUEVUUk9WIFZPSklTTEFWCitQRVRST1YgWkxBVE9NSVIKK1BFVFJPVsSMQU4txaBQQU5PVknEhiBFVUZFTUlKQQorUEVUUk9WQcSMS0kgRFXFoEFOCitQRVRST1ZBxIxLSSBKT1ZBTgorUEVUUk9WQcSMS0kgTEpJTEpBTkEKK1BFVFJPVkHEjEtJIFZFUkEKK1BFVFJPVknEhiDEjEVEQQorUEVUUk9WScSGIMWgVEVGQU4KK1BFVFJPVknEhiDFvUFSS08KK1BFVFJPVknEhiDFvUFSS08KK1BFVFJPVknEhiDFvUFSS08KK1BFVFJPVknEhiDFvUFSS08KK1BFVFJPVknEhiDFvUVMSktPCitQRVRST1ZJxIYgxb1FTEpLTworUEVUUk9WScSGIMW9SUtBCitQRVRST1ZJxIYgxb1JVkFOCitQRVRST1ZJxIYgxb1JVktBCitQRVRST1ZJxIYgxb1JVktBCitQRVRST1ZJxIYgxb1JVktPCitQRVRST1ZJxIYgxb1JVktPCitQRVRST1ZJxIYgxb1JVk9KSU4KK1BFVFJPVknEhiDFvUlWT1JBRAorUEVUUk9WScSGIMW9SVZPVEEKK1BFVFJPVknEhiDEkE9LSUNBCitQRVRST1ZJxIYgxJBPUsSQRQorUEVUUk9WScSGIMSQT1LEkEUKK1BFVFJPVknEhiDEkE9SxJBFCitQRVRST1ZJxIYgxJBPUsSQRQorUEVUUk9WScSGIMSQT1LEkEUKK1BFVFJPVknEhiDEkE9SxJBFCitQRVRST1ZJxIYgxJBPUsSQRQorUEVUUk9WScSGIMSQVVJBCitQRVRST1ZJxIYgQUxFS1NBTkRBUgorUEVUUk9WScSGIEFMRUtTQU5EQVIKK1BFVFJPVknEhiBBTEVLU0FOREFSCitQRVRST1ZJxIYgQUxFS1NBTkRBUgorUEVUUk9WScSGIEFMRUtTQU5EUkEKK1BFVFJPVknEhiBBTEVLU0FORFJBCitQRVRST1ZJxIYgQUxJTktBCitQRVRST1ZJxIYgQU7EkEVMS0EKK1BFVFJPVknEhiBBTkEKK1BFVFJPVknEhiBBTkdFTElOQQorUEVUUk9WScSGIEFOSUNBCitQRVRST1ZJxIYgQU5LQQorUEVUUk9WScSGIEFOS0EKK1BFVFJPVknEhi1CQUxJxb0gTEpJTEpBTkEKK1BFVFJPVknEhiBCSUxKQU5BCitQRVRST1ZJxIYgQk/FoEtPCitQRVRST1ZJxIYgQk/FvUlEQVIKK1BFVFJPVknEhiBCT0dEQU4KK1BFVFJPVknEhiBCT0dEQU4KK1BFVFJPVknEhiBCT0pBTkEKK1BFVFJPVknEhiBCT1NJTEpLQQorUEVUUk9WScSGIEJPU0lMSktBCitQRVRST1ZJxIYgQlJBTklNSVIKK1BFVFJPVknEhiBCUkFOSVNMQVZBCitQRVRST1ZJxIYgQlJBTklTTEFWQQorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5JU0xBVgorUEVUUk9WScSGIEJSQU5LQQorUEVUUk9WScSGIEJSQU5LTworUEVUUk9WScSGIEJSQU5LTworUEVUUk9WScSGIEJSQU5LTworUEVUUk9WScSGIEJSQU5LTworUEVUUk9WScSGIENWSUtPCitQRVRST1ZJxIYgREFNSVIKK1BFVFJPVknEhiBEQU1JUgorUEVUUk9WScSGIERBTklDQQorUEVUUk9WScSGIERBTklDQQorUEVUUk9WScSGIERBTklDQQorUEVUUk9WScSGIERBUkEKK1BFVFJPVknEhiBEQVJJTktBCitQRVRST1ZJxIYgREFSSU5LQQorUEVUUk9WScSGIERFSkFOCitQRVRST1ZJxIYgREVTQU5LQQorUEVUUk9WScSGIERFU0lNSVIKK1BFVFJPVknEhiBESU1JVFJJSkUKK1BFVFJPVknEhiBET0JSSUNBCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0FOCitQRVRST1ZJxIYgRFJBR0nFoEEgRElQTCBQUkFWTklLCitQRVRST1ZJxIYgRFJBR0nFoEEKK1BFVFJPVknEhiBEUkFHScSGCitQRVRST1ZJxIYgRFJBR0lOSkEKK1BFVFJPVknEhiBEUkFHT0xKVUIgRFIKK1BFVFJPVknEhiBEUkFHT0xKVUIKK1BFVFJPVknEhiBEUkFHT0xKVUIKK1BFVFJPVknEhiBEUkFHT01JUgorUEVUUk9WScSGIERSQUdPU0xBVgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBBTgorUEVUUk9WScSGIERVxaBJQ0EKK1BFVFJPVknEhiBEVcWgS08KK1BFVFJPVknEhiBFVkEKK1BFVFJPVknEhiBFVkdFTklKRQorUEVUUk9WScSGIEVWSUNBCitQRVRST1ZJxIYgRkFCSUpBTgorUEVUUk9WScSGIEdBVlJJTE8KK1BFVFJPVknEhiBHT1JEQU5BCitQRVRST1ZJxIYgR09SREFOQQorUEVUUk9WScSGIEdSQURJTUlSCitQRVRST1ZJxIYgR1JBRElNSVIKK1BFVFJPVknEhiBIUklTVElOQQorUEVUUk9WScSGIElMSUpBCitQRVRST1ZJxIYgSUxJSkEKK1BFVFJPVknEhiBJTElKQQorUEVUUk9WScSGIElMT05BCitQRVRST1ZJxIYgSVNBSworUEVUUk9WScSGIElWQU5LQQorUEVUUk9WScSGIElWQU4KK1BFVFJPVknEhiBJVkFOCitQRVRST1ZJxIYgSVZBTgorUEVUUk9WScSGIElWQU4KK1BFVFJPVknEhiBJVkFOCitQRVRST1ZJxIYgSkFOS08KK1BFVFJPVknEhiBKQVNNSU5LQQorUEVUUk9WScSGIEpFTEVOQQorUEVUUk9WScSGIEpFTElDQQorUEVUUk9WScSGIEpFTElTQVZFVEEKK1BFVFJPVknEhiBKRVZSRU0KK1BFVFJPVknEhiBKT8W9RUYKK1BFVFJPVknEhiBKT1ZBTktBCitQRVRST1ZJxIYgSk9WQU5LQQorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgS0FUSUNBCitQRVRST1ZJxIYgS0FUSUNBCitQRVRST1ZJxIYgS0FUSUNBCitQRVRST1ZJxIYgS0FUSUNBCitQRVRST1ZJxIYgS09TVEEgRFIKK1BFVFJPVknEhiBLUlNUTworUEVUUk9WScSGIExBWkFSCitQRVRST1ZJxIYgTEFaQVIKK1BFVFJPVknEhiBMRU5LQQorUEVUUk9WScSGIExJREEKK1BFVFJPVknEhiBMSklMSkFOQQorUEVUUk9WScSGIExKSUxKQU5BCitQRVRST1ZJxIYgTEpJTEpBTkEKK1BFVFJPVknEhiBMSklMSkFOQQorUEVUUk9WScSGIExKVUJJxaBBCitQRVRST1ZJxIYgTEpVQklDQQorUEVUUk9WScSGIExKVUJJQ0EKK1BFVFJPVknEhiBMSlVCSUNBCitQRVRST1ZJxIYgTEpVQklOS0EKK1BFVFJPVknEhiBMSlVCSVNBVgorUEVUUk9WScSGIExKVUJPTUlSCitQRVRST1ZJxIYgTEpVQk9NSVIKK1BFVFJPVknEhiBNQVJBCitQRVRST1ZJxIYgTUFSSUNBCitQRVRST1ZJxIYgTUFSSUpBCitQRVRST1ZJxIYgTUFSSUpBCitQRVRST1ZJxIYgTUFSSUtBCitQRVRST1ZJxIYgTUFSS08KK1BFVFJPVknEhiBNQVJLTworUEVUUk9WScSGIE1BUktPCitQRVRST1ZJxIYgTUFSS08KK1BFVFJPVknEhiBNSUFKTE8KK1BFVFJPVknEhiBNSUNBCitQRVRST1ZJxIYgTUlIQUlMTworUEVUUk9WScSGIE1JSEFJTE8KK1BFVFJPVknEhiBNSUhBSkxPIERSIFZFVEVSSU5FCitQRVRST1ZJxIYgTUlKT01JUgorUEVUUk9WScSGIE1JTEFESU4KK1BFVFJPVknEhiBNSUxBTktBCitQRVRST1ZJxIYgTUlMQU5LTworUEVUUk9WScSGIE1JTEFOS08KK1BFVFJPVknEhiBNSUxBTgorUEVUUk9WScSGIE1JTEFOCitQRVRST1ZJxIYgTUlMQU4KK1BFVFJPVknEhiBNSUxBTgorUEVUUk9WScSGIE1JTEFOCitQRVRST1ZJxIYgTUlMQU4KK1BFVFJPVknEhiBNSUxBTgorUEVUUk9WScSGIE1JTEVOQQorUEVUUk9WScSGIE1JTEVOS08KK1BFVFJPVknEhiBNSUxFTktPCitQRVRST1ZJxIYgTUlMRU5LTworUEVUUk9WScSGIE1JTEVOCitQRVRST1ZJxIYgTUlMRVZBCitQRVRST1ZJxIYgTUlMRQorUEVUUk9WScSGIE1JTEnEhgorUEVUUk9WScSGIE1JTElDQQorUEVUUk9WScSGIE1JTElDQQorUEVUUk9WScSGIE1JTElDQQorUEVUUk9WScSGIE1JTElWT0oKK1BFVFJPVknEhiBNSUxPxaAgRFIKK1BFVFJPVknEhiBNSUxPxaAgRFIKK1BFVFJPVknEhiBNSUxPxaAKK1BFVFJPVknEhiBNSUxPSkUKK1BFVFJPVknEhiBNSUxPSktPCitQRVRST1ZJxIYgTUlMT0xKVUIKK1BFVFJPVknEhiBNSUxPUkFECitQRVRST1ZJxIYgTUlMT1JBRAorUEVUUk9WScSGIE1JTE9WQU4KK1BFVFJPVknEhiBNSUxPVkFOCitQRVRST1ZJxIYgTUlMT1ZBTgorUEVUUk9WScSGIE1JTFVOCitQRVRST1ZJxIYgTUlMVU4KK1BFVFJPVknEhiBNSUxVVElOCitQRVRST1ZJxIYgTUlMVVRJTgorUEVUUk9WScSGIE1JTFVUSU4KK1BFVFJPVknEhiBNSU9EUkFHCitQRVRST1ZJxIYgTUlPRFJBRworUEVUUk9WScSGIE1JT0RSQUcKK1BFVFJPVknEhiBNSU9MSlVCCitQRVRST1ZJxIYgTUlPTUlSCitQRVRST1ZJxIYgTUlSxIxFQQorUEVUUk9WScSGIE1JUkpBTkEKK1BFVFJPVknEhiBNSVJKQU5BCitQRVRST1ZJxIYgTUlSS08KK1BFVFJPVknEhiBNSVJPU0xBViBEUiBMRUtBUgorUEVUUk9WScSGIE1JUk9TTEFWQQorUEVUUk9WScSGIE1JUk9TTEFWS0EKK1BFVFJPVknEhiBNSVJPU0xBVgorUEVUUk9WScSGIE1JUk9TTEFWCitQRVRST1ZJxIYgTUxBxJBFTgorUEVUUk9WScSGIE1MQURFTgorUEVUUk9WScSGIE1MQURFTgorUEVUUk9WScSGIE1PTcSMSUxPCitQRVRST1ZJxIYgTU9NxIxJTE8KK1BFVFJPVknEhiBNT03EjElMTworUEVUUk9WScSGIE1PTcSMSUxPCitQRVRST1ZJxIYgTkFEQQorUEVUUk9WScSGIE5BREEKK1BFVFJPVknEhiBOQURBCitQRVRST1ZJxIYgTkFESVJBCitQRVRST1ZJxIYgTkFUQUxJSkEKK1BFVFJPVknEhiBORU5BRAorUEVUUk9WScSGIE5FVkVOQQorUEVUUk9WScSGIE5FVkVOS0EgRFIKK1BFVFJPVknEhiBOSUtPTEEKK1BFVFJPVknEhiBOSUtPTEEKK1BFVFJPVknEhiBOT1ZBSworUEVUUk9WScSGIE5PVklDQQorUEVUUk9WScSGIE9CUkFECitQRVRST1ZJxIYgT0xHQQorUEVUUk9WScSGIE9MR0lDQQorUEVUUk9WScSGIE9MSVZFUkEKK1BFVFJPVknEhiBQQUpBCitQRVRST1ZJxIYgUEFOVEVMSUpBCitQRVRST1ZJxIYgUEVSU0lEQQorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRSSUpBCitQRVRST1ZJxIYgUExBTUVOS0EKK1BFVFJPVknEhi1QT1BBREnEhiBNSUxBTgorUEVUUk9WScSGIFBSRURSQUcKK1BFVFJPVknEhiBQUlZPU0xBVgorUEVUUk9WScSGIFJBREEKK1BFVFJPVknEhiBSQURFCitQRVRST1ZJxIYgUkFEScWgQSBESVBMIElORworUEVUUk9WScSGIFJBREnFoEEKK1BFVFJPVknEhiBSQURJxaBBCitQRVRST1ZJxIYgUkFESVZPSkUKK1BFVFJPVknEhiBSQURJVk9KCitQRVRST1ZJxIYgUkFESVZPSgorUEVUUk9WScSGIFJBRE1JTEEKK1BFVFJPVknEhiBSQURNSUxBCitQRVRST1ZJxIYgUkFETUlMQQorUEVUUk9WScSGIFJBRE1JTEEKK1BFVFJPVknEhiBSQURNSUxBCitQRVRST1ZJxIYgUkFET0pLQQorUEVUUk9WScSGIFJBRE9NSVIKK1BFVFJPVknEhiBSQURPTUlSCitQRVRST1ZJxIYgUkFET01JUgorUEVUUk9WScSGIFJBRE9NSVIKK1BFVFJPVknEhiBSQURPU0FWCitQRVRST1ZJxIYgUkFET1NMQVYKK1BFVFJPVknEhiBSQURPU0xBVgorUEVUUk9WScSGIFJBSktPCitQRVRST1ZJxIYgUkFKS08KK1BFVFJPVknEhiBSQU5LTworUEVUUk9WScSGIFJBTktPCitQRVRST1ZJxIYgUkFUS08KK1BFVFJPVknEhiBSQVRLTworUEVUUk9WScSGIFJBVE9NSVIKK1BFVFJPVknEhiBSSVNUTworUEVUUk9WScSGIFJPRE9MSlVCCitQRVRST1ZJxIYgUk9TQQorUEVUUk9WScSGIFJVxb1BCitQRVRST1ZJxIYgUlXFvUlDQQorUEVUUk9WScSGIFJVWk1BUklOS0EKK1BFVFJPVknEhiBTQVZBTgorUEVUUk9WScSGIFNBVkEKK1BFVFJPVknEhiBTQVZBCitQRVRST1ZJxIYgU0FWQQorUEVUUk9WScSGIFNJTUEKK1BFVFJPVknEhiBTSU1FVU4KK1BFVFJPVknEhiBTSU1PCitQRVRST1ZJxIYgU0lOScWgQQorUEVUUk9WScSGIFNMQVZJQ0EKK1BFVFJPVknEhiBTTEFWS0EKK1BFVFJPVknEhiBTTEFWS0EKK1BFVFJPVknEhiBTTEFWS08KK1BFVFJPVknEhiBTTEFWS08KK1BFVFJPVknEhiBTTE9CT0RBTiBESVBMIElORworUEVUUk9WScSGIFNMT0JPREFOIERJUEwgSU5HCitQRVRST1ZJxIYgU0xPQk9EQU4gRFIKK1BFVFJPVknEhiBTTE9CT0RBTktBCitQRVRST1ZJxIYgU0xPQk9EQU4KK1BFVFJPVknEhiBTTE9CT0RBTgorUEVUUk9WScSGIFNMT0JPREFOCitQRVRST1ZJxIYgU0xPQk9EQU4KK1BFVFJPVknEhiBTTE9CT0RBTgorUEVUUk9WScSGIFNNSUxKQQorUEVUUk9WScSGIFNORcW9QU5BCitQRVRST1ZJxIYgU09GSUpBCitQRVRST1ZJxIYgU1BBU0UKK1BFVFJPVknEhiBTUEFTT0pFCitQRVRST1ZJxIYgU1BPTUVOS0EKK1BFVFJPVknEhiBTUsSQQU4KK1BFVFJPVknEhiBTVEFNRU5LTworUEVUUk9WScSGIFNUQU5JxaBBCitQRVRST1ZJxIYgU1RBTklTTEFWCitQRVRST1ZJxIYgU1RFVkFOIERJUEwgSU5HCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RFVkFOCitQRVRST1ZJxIYgU1RPSkFESU4KK1BFVFJPVknEhiBTVE9KQU4KK1BFVFJPVknEhiBTVE9KQU4KK1BFVFJPVknEhiBTVE9KS0EKK1BFVFJPVknEhiBTVVpBTkEgRFIKK1BFVFJPVknEhiBTVVpBTkEKK1BFVFJPVknEhiBTVkVUSVNMQVYKK1BFVFJPVknEhiBTVkVUS08KK1BFVFJPVknEhiBTVkVUT1pBUgorUEVUUk9WScSGIFNWRVRPWkFSCitQRVRST1ZJxIYgU1ZFVE9aQVIKK1BFVFJPVknEhiBTVkVUT1pBUgorUEVUUk9WScSGIFNWRVRPWkFSCitQRVRST1ZJxIYgVEFUSkFOQQorUEVUUk9WScSGIFRJQk9SCitQRVRST1ZJxIYgVElOS0EKK1BFVFJPVknEhiBUT0RPUktBCitQRVRST1ZJxIYgVE9NSVNMQVYKK1BFVFJPVknEhiBVUk/FoAorUEVUUk9WScSGIFVST8WgCitQRVRST1ZJxIYgVkFTQQorUEVUUk9WScSGIFZBU0lMSUpFCitQRVRST1ZJxIYgVkVMSUJPUgorUEVUUk9WScSGIFZFTElCT1IKK1BFVFJPVknEhiBWRUxJQk9SCitQRVRST1ZJxIYgVkVMSU1JUgorUEVUUk9WScSGIFZFUkEKK1BFVFJPVknEhiBWRVJBCitQRVRST1ZJxIYgVkVSQQorUEVUUk9WScSGIFZFUkEKK1BFVFJPVknEhiBWRVJBCitQRVRST1ZJxIYgVkVSSUNBCitQRVRST1ZJxIYgVkVTRUxBCitQRVRST1ZJxIYgVkVTRUxJTgorUEVUUk9WScSGIFZFU05BCitQRVRST1ZJxIYgVknFoE5KQQorUEVUUk9WScSGIFZJREEKK1BFVFJPVknEhiBWTEFEQQorUEVUUk9WScSGIFZMQURFCitQRVRST1ZJxIYgVkxBRElNSVIKK1BFVFJPVknEhiBWTEFESU1JUgorUEVUUk9WScSGIFZMQURJU0xBVkEKK1BFVFJPVknEhiBWTEFTVElNSVIKK1BFVFJPVknEhiBWT0pJTgorUEVUUk9WScSGIFZPSklOCitQRVRST1ZJxIYgVk9KSVNMQVYKK1BFVFJPVknEhiBWT0pJU0xBVgorUEVUUk9WScSGIFZPSklTTEFWCitQRVRST1ZJxIYgVk9KS0EKK1BFVFJPVknEhiBWVUtBxaBJTgorUEVUUk9WScSGIFZVS0lDQQorUEVUUk9WScSGIFpBR09SS0EKK1BFVFJPVknEhiBaQUdPUktBCitQRVRST1ZJxIYgWkFHT1JLQQorUEVUUk9WScSGIFpERU5LTworUEVUUk9WScSGIFpERU5LTworUEVUUk9WScSGIFpMQVRBTgorUEVUUk9WScSGIFpPUkFOCitQRVRST1ZJxIYgWk9SQU4KK1BFVFJPVknEhiBaT1JBTgorUEVUUk9WScSGIFpPUkFOCitQRVRST1ZJxIYgWk9SQU4KK1BFVFJPVknEhiBaT1JBTgorUEVUUk9WScSGIFpPUkFOCitQRVRST1ZJxIYgWk9SQQorUEVUUk9WScSGIFpPUkEKK1BFVFJPVknEhiBaT1JJQ0EKK1BFVFJPVknEhiBaT1JJQ0EKK1BFVFJPVknEhiBaT1JJQ0EKK1BFVFJPVknEhiBaT1JLQQorUEVUUk9WU0tJIEJPUklTCitQRVRST1ZTS0kgRElNSVRSSUpFCitQRVRST1ZTS0kgRVZBCitQRVRST1ZTS0kgRklEQU7EjE8KK1BFVFJPVlNLSSBIRUxFTkEKK1BFVFJPVlNLSSBNSUxBRElOCitQRVRST1ZTS0kgTUlMQU4KK1BFVFJPVlNLSSBNSUxPREFSS0EKK1BFVFJPVlNLSSBQRVRBUgorUEVUUk9WU0tJIFNMQVZLQQorUEVUUlXFoEVWScSGIE1PTcSMSUxPCitQRVRSVcWgRVZTS0kgTU9NxIxJTE8KK1BFVFJVxaBFVlNLSSBOQURBCitQRVRSVcWgScSGLVBBUklQT1ZJxIYgT0xHQQorUEVUUlXFoEnEhiBWQVNJTEoKK1BFVFJVTEpFU0tPViBEUkFHQU4KK1BFVFJVTEpFU0tPViBEUkFHQU4KK1BFVUxJxIYgTEpVQk9NSVIKK1BFVUxJxIYgTUlSSkFOQQorUEVVTEpBIFZPSklOCitQRVVSQcSMQSBEUkFHQU4KK1BFVVJBxIxBIE1JTEUKK1BFVkHEjCBTVEpFUEFOCitQRVZJxIYgRVLFvUVCRVQKK1BFWkRFVsWgRUsgSkFORVoKK1BFWkRFVsWgRUsgS0FSTAorUEVaRVJPVknEhiBWRUxJTUlSCitQRkFKRkVSIEFMRUtTQU5EQVIKK1BGQUpGRVIgQVRJTEEKK1BGQUpGRVIgUEVUQVIKK1BGQUpGRVJUIEFMRUtTQU5EQVIKK1BGQVUgSk9WQU5LQQorUEZVTsWgVEFKTiBKT1NJUAorUEnFoEtPUknEhiBJVkFOCitQScWgUEVLIE1BUlRBCitQScWgVEFMT1ZJxIYgTUlIQUpMTworUEnFoFRBTE9WScSGIE1JUktPCitQScSGVVJJxIYgxb1JVktPCitQScSGVVJJxIYgTUlLTworUEnFvVVSSUNBIE1BVE8KK1BJR0wgQU5BCitQSUdMIElNUkUKK1BJSEFKTEnEhiBCTEHFvQorUElITEVSIEpPU0lQCitQSUhMRVIgU1RBTktPIERSCitQSUhMRVIgVE9ET1IKK1BJSkFOScSGIERBTklKRUwKK1BJSkVUTE9WScSGIEJSQU5PCitQSUpFVExPVknEhiBKT1ZBTgorUElKVUtPVknEhiBFTFpBCitQSUpVS09WScSGIElMSUpBCitQSUtTSUFERVMgT05EUkVKCitQSUtTSUpBREVTIEFOQQorUElLU0lKQURFUyBQQVZFTAorUElLU0lKQURFUyBQQVZMRQorUElLVUxBIMSQT1LEkEUKK1BJS1VMQSBCUkFOS08KK1BJTCBBTkRSSUpBCitQSUwgTUlIQUpMTworUElMIFNURVZBTgorUElMIFRFUkVaQQorUElMQVIgTUFSSUNBCitQSUxDIE5BTkRPUgorUElMQyBSRcW9RQorUElMQyBaT0xUQU4KK1BJTEVSIEtBUkxPCitQSUxJxaAgQU5BCitQSUxJxaAgQU5EUkHFoAorUElMScWgIEpPU0lQCitQSUxJxaBFUiDEkE9SxJBFCitQSUxJxIYgxb1BUktPCitQSUxJxIYgQU5UT04KK1BJTEnEhiBCT1JJVk9KCitQSUxJxIYgQk9STworUElMScSGIEdBVlJBCitQSUxJxIYgSk9WQU4KK1BJTEnEhi1LQUxFTknEhiBNSUxJTktBCitQSUxJxIYgTEpJTEpBCitQSUxJxIYgTUlMT8WgCitQSUxJxIYgTUlMVVRJTgorUElMScSGIFJBTktPCitQSUxJxIYgU0xBVktPCitQSUxJxIYgU1JCT0xKVUIKK1BJTEnEhiBTVEFOS08KK1BJTEnEhiBTVEVWQU4KK1BJTEnEhiBWT0pJU0xBVgorUElMSVBPViBFVkEKK1BJTElQT1ZJxIYgxIxFREEKK1BJTElQT1ZJxIYgxb1JVktPCitQSUxJUE9WScSGIMSQT1LEkEUKK1BJTElQT1ZJxIYgxJBVUkEKK1BJTElQT1ZJxIYgQU7EkEEKK1BJTElQT1ZJxIYgQk/FoEtPCitQSUxJUE9WScSGIEJPxb1JREFSCitQSUxJUE9WScSGIEJSQU5LTworUElMSVBPVknEhiBDVklKRVRBCitQSUxJUE9WScSGIENWSUpFVEEKK1BJTElQT1ZJxIYgREFORQorUElMSVBPVknEhiBEQU5JQ0EKK1BJTElQT1ZJxIYgREFOSUNBCitQSUxJUE9WScSGIERSQUdBTgorUElMSVBPVknEhiBEUkFHTworUElMSVBPVknEhiBHT1JBTgorUElMSVBPVknEhiBKT0xBTgorUElMSVBPVknEhiBKT1ZBTgorUElMSVBPVknEhiBMQVpBUgorUElMSVBPVknEhiBMSklMSkFOQQorUElMSVBPVknEhiBMSlVCSUNBCitQSUxJUE9WScSGIExKVUJPCitQSUxJUE9WScSGIE1BUklKQQorUElMSVBPVknEhiBNSUhBSkxPCitQSUxJUE9WScSGIE1JSEFKTE8KK1BJTElQT1ZJxIYgTUlMQU4KK1BJTElQT1ZJxIYgTUlMQU4KK1BJTElQT1ZJxIYgTUlMQU4KK1BJTElQT1ZJxIYgTUlMRU5LTworUElMSVBPVknEhiBNSUxFVkEKK1BJTElQT1ZJxIYgTUlMT8WgCitQSUxJUE9WScSGIE1JUktPCitQSUxJUE9WScSGIE5JS09MQQorUElMSVBPVknEhiBQRVRBUiBESVBMIElORworUElMSVBPVknEhiBSQURFCitQSUxJUE9WScSGIFJBREUKK1BJTElQT1ZJxIYgUkFESVZPSkUKK1BJTElQT1ZJxIYgUkFET01JUgorUElMSVBPVknEhiBTTEFWS08KK1BJTElQT1ZJxIYgU1BPTUVOS08KK1BJTElQT1ZJxIYgU1RBTkEKK1BJTElQT1ZJxIYgU1RFVkFOCitQSUxJUE9WScSGIFNURVZBTgorUElMSVBPVknEhiBTVEVWTworUElMSVBPVknEhiBWT0pJTgorUElMSVBPVknEhiBaT1JJQ0EKK1BJTElQT1ZJxIYgWlZPTktPCitQSUxKScSGIE1BUklKQU4KK1BJTEtPIElSRU5BCitQSUxLTyBQQVZMRQorUElMT1ZJxIYgREVTSU1JUgorUElMT1ZJxIYgRFXFoEFOS0EKK1BJTE9WScSGIE1JTEFOCitQSU7EhklSIEpBTgorUElOxIZJUiBWTEFESU1JUgorUElOxIZJUiBaREVOS08KK1BJTsSGSkVSIE9ORFJFSgorUElOxIZKRVIgU0FNVUVMCitQSU7EhkpFUiBTQU1VSUxPCitQSU5KVcWgScSGIElMSUpBCitQSU5KVUggTUlSSkFOQQorUElOSlVIIFBFVEFSCitQSU5UQcSMIEZSQU5KTworUElOVEHEjCBMQURJU0xBVgorUElOVEHEjCBOSUtPTEEgRElQTCBPRUMKK1BJTlRBxIwgVkVTTkEKK1BJTlRBxIYgxJBPUsSQRQorUElOVEHEhiBNQVJJSkEKK1BJTlRBUknEhiBKQVNOQQorUElOVEFSScSGIEpPVkFOCitQSU5URVIgQURSSUVORQorUElOVEVSIEFMRUtTQU5EQVIKK1BJTlRFUiBBTkRSQcWgCitQSU5URVIgQkVMQQorUElOVEVSIEJFTEEKK1BJTlRFUiBGUkFOSkEKK1BJTlRFUiBJTVJFCitQSU5URVIgSkFOT8WgCitQSU5URVIgS0FST0xKCitQSU5URVIgS0FUQUxJTgorUElOVEVSIExFTktBCitQSU5URVIgTElWSUpBCitQSU5URVIgTUFSSUpBCitQSU5URVIgTUlIQUxKCitQSU5URVIgTUlIQUxKCitQSU5URVIgU1RFVkFOCitQSU5URVIgVElCT1IKK1BJTlRFUiBWRVJBCitQSU5URVIgVkpFS09TTEFWCitQSVBFUiBWRUxJQk9SCitQSVBFUkFDIE5BREEKK1BJUEVSS09WIEFOS0EKK1BJUEVSU0tJIMW9SVZBCitQSVBFUlNLSSBBTkEKK1BJUEVSU0tJIERSQUdPTUlSCitQSVBFUlNLSSBLT1NUQQorUElSQyBEQU5JQ0EKK1BJUkkgSkFOT8WgCitQSVJJIEpPxb1FRgorUElSSSBKT1NJUAorUElSSSBKT1NJUAorUElSScSGIElCUkFISU0KK1BJUknEhiBPU01BTgorUElSScSGIFpPUkEKK1BJUklWQVRSScSGIERVxaBBTktBCitQSVJNQUpFUiBKT1NJUAorUElST8WgS0kgRFJBR0lDQQorUElST8WgS0kgSlVMSUpBTkEKK1BJUk/FoEtJIE1JT0RSQUcKK1BJUk/FoEtJIFZBU0EKK1BJUlRJxIYgS1NFTklKQQorUElSVEnEhiBSQURJTktBCitQSVJUScSGIFNBVkVUQQorUElTIEVESVRBCitQSVNBxIxJxIYgVkxBRElNSVIKK1BJU0FSIMWgQU5ET1IKK1BJU0FSIERVxaBBTgorUElTQVIgSk/FvUVGCitQSVNBUiBMQVNMTworUElTQVJFViDEkE9SxJBFCitQSVNBUkVWIEVNSUxJSkEKK1BJU0FSRVYgS0FUSUNBCitQSVNBUkVWIE1JTEFOCitQSVNBUkVWScSGIMSQT1LEkEUKK1BJU0FSRVZJxIYgTUlSS08KK1BJU0FSRVZJxIYgTUlSS08KK1BJU0FSRVZJxIYgTUlUQVIKK1BJU0FSRVZJxIYgU1BBU0VOSUpBCitQSVNBUknEhiDEkFVSQQorUElTQVJJxIYgxJBVUk8KK1BJU0FSScSGIEJMQcW9TworUElTQVJJxIYgQlJBTktPCitQSVNBUknEhiBEUkFHQU4KK1BJU0FSScSGIERSQUdPCitQSVNBUknEhiBORcSQTworUElTQVJJxIYgT1NUT0pBCitQSVNBUknEhiBPU1RPSkEKK1BJU0FSScSGIFBBVkxFCitQSVNBUknEhiBWTEFETworUElTQVJPViDEkE9SxJBFCitQSVNBUk9WIEtBVElDQQorUElTQVJPViBWQVNBCitQSVRBIE1BSE1VVAorUElUQSBNQUhNVVQKK1BJVE9NQcSMScSGIFNUT0pBTktBCitQSVRPTUHEjEnEhiBWTEFEQQorUElUVUsgTkFEQQorUElVS09WScSGIElWQU4KK1BJVUtPVknEhiBNQUdEQQorUElWQcSMIEJPU0lMSktBCitQSVZBQyBEUkFHT0xKVUIKK1BJVkFDIE1JTE9SQUQKK1BJVkFDIE1JTE9WQU4KK1BJVkFDIFpWT05JTUlSCitQSVZBUlNLSSBCUkFOS0EKK1BJVkFSU0tJIERVxaBBTgorUElWQVJTS0kgTUlPRFJBRworUElWQVJTS0kgUkFUT01JUgorUElWQVJTS0kgU0xBVklDQQorUElWQVJTS0kgU1RFVkFOCitQSVZBUlNLSSBWRVNFTElOIE1SIFBICitQSVZOScSMS0kgQk9HREFOS0EKK1BJVk5JxIxLSSBCUkFOSVNMQVYKK1BJVk5JxIxLSSBCUkFOSVNMQVYKK1BJVk5JxIxLSSBCUkFOS0EKK1BJVk5JxIxLSSBEUkFHQU4KK1BJVk5JxIxLSSBHT1JEQU5BCitQSVZOScSMS0kgSVZBTktBCitQSVZOScSMS0kgS0FUQVJJTkEKK1BJVk5JxIxLSSBNQVJJSkEKK1BJVk5JxIxLSSBNSUxBTgorUElWTknEjEtJIE1JTEVUQQorUElWTknEjEtJIFJBREVOS08KK1BJVk5JxIxLSSBSQUpLTworUElWTknEjEtJIFNUT0pLQQorUElWTknEjEtJIFNWRVRPWkFSCitQSkFOScSGIE1JSEFKTE8KK1BKQU5JxIYgUklTVEEKK1BKRcWgxIxJxIYgQk9HT0xKVUIKK1BKRcWgxIxJxIYgTEVQT1NBVkEKK1BKRcWgxIxJxIYgTUFSSUpBCitQSkXFoMSMScSGIE1JTEVWQQorUEpFxaDEjEnEhiBOT1ZBSworUEpFxaBJVkFDIFpEUkFWS08KK1BKRVRMT1ZJxIYgRFJBR0lDQQorUEpFVkHEjCBOSUtPTEEKK1BKRVZBQyBCUkFOS08KK1BKRVZBQyBEVcWgQU4KK1BKRVZBQyBTVEVWQU4KK1BKRVZBQyBWTEFESU1JUgorUEpFVkFDIFpPUkEKK1BKRVZBTElDQSBVUk/FoAorUEpFVknEhiDEkFVSQcSQCitQSkVWScSGIEJPxb1PCitQSkVWScSGIE1JUktPIERSCitQSkVWScSGIE1JUk9TTEFWQSBEUgorUExBxIxLScSGIMW9QVJLTworUExBxIxLScSGIEJPxb1JREFSCitQTEHEjEtJxIYgQlJBTktPCitQTEHEjEtJxIYgTUVMQU5JSkEKK1BMQcSMS0nEhiBTTEFWS08KK1BMQcSMS0nEhiBUT01JU0xBVgorUExBxIxLTyBTVEpFUEFOCitQTEHEjEtPViDFvUlWS0EKK1BMQcSMS09WIMSQT1LEkEUKK1BMQcSMS09WIEJPUklWT0oKK1BMQcSMS09WIEJSQU5JU0xBVgorUExBxIxLT1YgQlJBTklTTEFWCitQTEHEjEtPViBCUkFOSVNMQVYKK1BMQcSMS09WIEJSQU5LQQorUExBxIxLT1YgRFXFoEFOCitQTEHEjEtPViBJTE9OS0EKK1BMQcSMS09WIE1JTEFOCitQTEHEjEtPViBNSVJPTEpVQgorUExBxIxLT1YgUEFKQQorUExBxIxLT1YgUEVSQQorUExBxIxLT1YgUEVUQVIKK1BMQcSMS09WIFJVRE9MRgorUExBxIxLT1YgU0FWQQorUExBxIxLT1YgU0FWRVRBCitQTEHEjEtPViBTSU1BCitQTEHEjEtPViBTVEFOSU1JUgorUExBxIxLT1YgU1RFVkFOCitQTEHEjEtPViBTVEVWQQorUExBxIxLT1YgU1RPSkFOCitQTEHEjEtPViBTVkVUT1pBUgorUExBxIxLT1YgVlVLT1NBVkEKK1BMQcSMS09WScSGIE1JTEFOCitQTEHEjEtPVknEhiBQQUpBCitQTEFDIEVETworUExBS0FMT1ZJxIYgTUlMQURJTgorUExBTsSMQUsgQU1BTElKQQorUExBTsSMQUsgRVVGRU1JSkEKK1BMQU7EjEFLIEVVR0VOCitQTEFOxIxBSyBKT1ZBTgorUExBTsSMQUsgTUlIQUpMTworUExBTsSMQUsgTUlST1NMQVYgRFIgUFJPRgorUExBTknEhiBSQURPVkFOCitQTEFOScSGIFpERU5LQQorUExBTklOxIxJxIYgTUlOQQorUExBTklOxIxJxIYgVkVTRUxJTgorUExBTkpBTklOIFJBRE9NSVIKK1BMQU5PSkVWScSGIE1JTFVUSU4gRFIKK1BMQU5PVknEhiBWRVNOQQorUExBVEnFoEEgTUlMQU4KK1BMQVRJxaBBIE1JT0RSQUcKK1BMQVbFoEnEhiBBTsSQQQorUExBVsWgScSGIEFOSUNBCitQTEFWxaBJxIYgQU5JQ0EKK1BMQVbFoEnEhiBBTktBCitQTEFWxaBJxIYgQk/FoEtPCitQTEFWxaBJxIYgQk/FvUEKK1BMQVbFoEnEhiBCT8W9QQorUExBVsWgScSGIEJPxb1JREFSCitQTEFWxaBJxIYgQk9HT01JUgorUExBVsWgScSGIEJPUklTTEFWCitQTEFWxaBJxIYgQlJBTklTTEFWCitQTEFWxaBJxIYgQlJBTktPCitQTEFWxaBJxIYgQlJBTktPCitQTEFWxaBJxIYgQlJBTktPCitQTEFWxaBJxIYgQ1ZJSk8KK1BMQVbFoEnEhiBEUkFHQU4KK1BMQVbFoEnEhiBEVcWgQU4KK1BMQVbFoEnEhiBEVcWgSUNBCitQTEFWxaBJxIYgR09SREFOQQorUExBVsWgScSGIEpFTElTQVZFVEEKK1BMQVbFoEnEhiBKT1ZBTktBCitQTEFWxaBJxIYgSk9WQU4KK1BMQVbFoEnEhiBKT1ZBTgorUExBVsWgScSGIEpPVklDQQorUExBVsWgScSGIEtBVEFSSU5BCitQTEFWxaBJxIYgS1JTVEEKK1BMQVbFoEnEhiBMQVpBUgorUExBVsWgScSGIExKSUxKQU5BCitQTEFWxaBJxIYgTEpVQklDQQorUExBVsWgScSGIExKVUJJQ0EKK1BMQVbFoEnEhiBMSlVCSU5LQQorUExBVsWgScSGIExKVUJPTUlSCitQTEFWxaBJxIYgTFVLQQorUExBVsWgScSGIE1BUklKQQorUExBVsWgScSGIE1BUklOS08KK1BMQVbFoEnEhiBNQVJJTktPCitQTEFWxaBJxIYgTUlMRU5LTworUExBVsWgScSGIE1JTEVOS08KK1BMQVbFoEnEhiBNSUxJQ0EKK1BMQVbFoEnEhiBNSUxJQ0EKK1BMQVbFoEnEhiBNSUxJTktBCitQTEFWxaBJxIYgTUlMT8WgCitQTEFWxaBJxIYgTUlMT01JUgorUExBVsWgScSGIE1JT0RSQUcKK1BMQVbFoEnEhiBNSVJLTworUExBVsWgScSGIE1JUktPCitQTEFWxaBJxIYgTUlST1NMQVYgRFIgTEVLQVIKK1BMQVbFoEnEhiBNSVRBUgorUExBVsWgScSGIE1JVEEKK1BMQVbFoEnEhiBNT03EjElMTworUExBVsWgScSGIE1PTUlSCitQTEFWxaBJxIYgTkVSQQorUExBVsWgScSGIE5JS09MQQorUExBVsWgScSGIE5PVktBCitQTEFWxaBJxIYgUEFWQQorUExBVsWgScSGIFBFVEFSCitQTEFWxaBJxIYgUEVUQVIKK1BMQVbFoEnEhiBSQURFCitQTEFWxaBJxIYgUkFETUlMQQorUExBVsWgScSGIFJBRE9WQU4KK1BMQVbFoEnEhiBSQURPVkFOCitQTEFWxaBJxIYgUkFOS08KK1BMQVbFoEnEhiBSQU5LTworUExBVsWgScSGIFNJTUEKK1BMQVbFoEnEhiBTTE9CT0RBTgorUExBVsWgScSGIFNMT0JPREFOCitQTEFWxaBJxIYgU1RFVkFOCitQTEFWxaBJxIYgU1RFVkFOCitQTEFWxaBJxIYgU1RFVk8KK1BMQVbFoEnEhiBUT0RFCitQTEFWxaBJxIYgVE9ET1IKK1BMQVbFoEnEhiBWSU5LTworUExBVsWgScSGIFZJVE9NSVIKK1BMQVbFoEnEhiBWTEFEQQorUExBVsWgScSGIFZPSklOCitQTEFWxaBJxIYgVk9KSU4KK1BMQVbFoEnEhiBWVUtPU0FWQQorUExBVsWgScSGIFpPUktBCitQTEFWxaBJTiBEVcWgQU4KK1BMQVbFoElOIE1JTElDQQorUExBVsWgSU4gU1RFVkFOCitQTEFWQUMgxb1FTEpLTworUExBVkFDIERVxaBBTgorUExBVkFDIEpBTktPCitQTEFWQyBBSE1FVAorUExBVkMgQkFKUlXFoAorUExBVkxKQU5JTiDFvUlWS08KK1BMQVpBxIxJxIYgVklET0pFCitQTEFaSU5BIFBVTknFoEEKK1BMRcWgQSBKT1NJUAorUExFxaBFIEdPUkFOCitQTEXFoEtPIEFOSUNBCitQTEXFoFRJxIYgRElNSVRSSUpFCitQTEXFoFRJxIYgTUlSSkFOQQorUExFxIZBxaAgREFOSUxPCitQTEXEhkHFoCBJTElKQQorUExFxIZBxaAgS0FUSUNBCitQTEXEhkHFoCBNSUxFVkEKK1BMRcSGQcWgIFJBREUKK1BMRcSGQcWgIFJPWkFMSUpBCitQTEVNScSGIMSQVVJPCitQTEVNScSGIERBTkUKK1BMRU1JxIYgTUlMQU4KK1BMRVNLT05KQSBNSUxPSklDQQorUExFU0tPTkpJxIYgQU1BTElKQQorUExFU0tPVknEhiBBTlRVTgorUExFU0tPVknEhiBOSUtPTEEKK1BMRVNLT1ZJxIYgWkRSQVZLTworUExFVEVMIEtTRU5JSkEKK1BMRVRFTCBNSUxBTgorUExFVElLQVBJxIYgRFJBR0FOCitQTEVUSUtPU0nEhiBMSkVSS0EKK1BMRVRJS09TScSGIFBFVEFSCitQTEVUTCBPVElMSUpBCitQTElTTknEhiBNSUxJQ0EKK1BMSVNOScSGIE1JTE9SQUQKK1BMSVZBUiBKT1ZBTgorUExKVUNPIEJSQU5LTworUExPSCBEUkFHTworUExPSCBGUkFOSkEKK1BMT0ogTUFSSUpBCitQTE9TIE1JT0RSQUcKK1BMVcW9QVJFViBMQVpBUgorUExVxb1BUkVWIE9MSVZFUkEgRFIKK1BMVcW9QVJPViBNSUxFTktPCitQTFVLQVZFQyBJVkFOCitQTFpBSyBEUkFHT1NMQVYKK1BPxIxBTknEhiBUUklQTworUE/EjEVLIEJSQU5JU0xBVgorUE/EjEVLIEJSQU5LTworUE/EjEVLIExKSUxKQU5BCitQT8SMRUsgTUlMT1ZBTgorUE/EjEVLIFZMQURBCitQT8SMRUsgVkxBRElTTEFWCitQT8SMRUsgVkxBRElTTEFWCitQT8SMRVRBSyBNSUxFTktPCitQT8SMRVRBSyBNSUxJQ0EKK1BPxIxVxIxBIERNSVRBUgorUE/EjFXEjEEgRFXFoEFOCitQT8SMVcSMQSBKT1ZBTktBCitQT8SMVcSMQSBQRVRBUgorUE/EjFXEjEEgUkFETUlMQQorUE/FoMSMScSGIEVSSUtBCitQT8WgQSDEkFVSQQorUE/FoEEgQU5EUkHFoAorUE/FoEEgRFJBR0lDQQorUE/FoEEgScWgVFZBTgorUE/FoEEgS0FSTE8KK1BPxaBBIFBFVEFSCitQT8WgQSBST1pBTElKQQorUE/FoEEgU05Fxb1BTkEKK1BPxaBBUkFDIERVxaBLTworUE/FoEFSQUMgWk9SQU4KK1BPxaBUQSBOSUtPTEEKK1BPxaBUScSGIMSQT1LEkEUgRFIKK1BPxaBUScSGIERSQUdBTgorUE/FoFRJxIYgTUlMQU4KK1BPxaBUScSGIFNMT0JPREFOS0EKK1BPxaBUScSGIFNPRklKQQorUE/FoFRJxIYgU1LEkEFOIERJUEwgSU5HCitQT8WgVE/FoCBWRVJBCitQT8W9QVIgTUlMSUNBCitQT8W9QVJFViDEkE9SxJBFCitQT8W9QVJFViDEkE9SxJBFCitQT8W9QVJFViBBTEVLU0FOREFSCitQT8W9QVJFViBBTsSQRUxLQQorUE/FvUFSRVYgRE9SQQorUE/FvUFSRVYgSkVMRU5BCitQT8W9QVJFViBSQURFCitQT8W9QVJFViBSQVRPTUlSS0EKK1BPxb1BUkVWIFJBVE9NSVIKK1BPxb1BUkVWIFNURVZBTgorUE/FvUFSRVYgVkVTRUxJTgorUE/FvUVHQSBNSUxFCitQT8W9RUdBIFNPRklKQQorUE/FvUVHQSBTVEVWQU4KK1BPxb1HQUogQU5UVU4KK1BPxb1HQUogVE9NSVNMQVYKK1BPQk9SIEpFTEVOQQorUE9CT1IgU1JFVE8KK1BPQlJBTiBTVEVWQU4KK1BPQlJBTiBWTEFESU1JUgorUE9CUknEhiBJU0FLCitQT0JVxIZBTk9WScSGLUtVTEpBTktJxIYgxaBVSFJFVEEKK1BPQlXEkEFOT1ZJxIYgSUxJTktBCitQT0JVxJBBTk9WScSGIE1VSEFSRU0KK1BPQlXEkEFOT1ZJxIYgU1ZFVExBTkEKK1BPQ0FKVCBWSUtUT1IKK1BPQ01BTiBBTlRVTgorUE9DTUFOIFZJTElNCitQT0NSTknEhiBNSUxFCitQT0NSTknEhiBOSUtPTEEKK1BPREdPUk5JSyBNSUxBTgorUE9ER09STklLIFJBSk5BCitQT0RMSVBFQyBNQVJJSkEKK1BPRE1BSk9SU0tJIE1BUkEKK1BPRE9CTklLIEpBU05BCitQT0RPTEEgSlVTVElOQQorUE9EUkHFoMSMQU5JTiBKT1ZBTgorUE9EUkHFoMSMQU5JTiBOQURBCitQT0RSQcWgxIxBTklOIFZPSkEKK1BPRFJBVkFDIEJSQU5LTworUE9HQU7EjEVWIEdPUkFOCitQT0dBTsSMRVYgR09SQU4KK1BPR0FOSiBKVUxJSkFOQQorUE9HVUJFUk9WScSGIEpPVkFOCitQT0pCScSGIERVxaBBTgorUE9KRSBKT1NJUAorUE9KScSGIEJSQU5LTworUE9LQSBKT1NJUAorUE9LQVMgSk9TSVAKK1BPS1JBSkFDIEFOR0VMSU5BCitQT0tSQUpBQyBKT1ZBTgorUE9LUkFKQUMgSk9WQU4KK1BPS1JBSkFDIE1JTEFOCitQT0tSQUpBQyBNSUxPUkFECitQT0tSQUpBQyBSQURFCitQT0tSQUpBQyBTTEFWS08KK1BPS1JJxIYgVk9KSVNMQVYKK1BPS1XFoEVWU0tJIERPQlJJTktBCitQT0tVUEVDIE1JTEFOCitQT0xBSyBKRUxFTkEKK1BPTEFLIEpPxb1FRgorUE9MQUsgU1RFVkFOCitQT0xBS09WScSGIEVSxb1FQkVUCitQT0xBS09WScSGIEpBTk/FoAorUE9MQU5FQyBGUkFOSk8KK1BPTEUgTklLT0xBCitQT0xFIE5JS09MQQorUE9MRURJQ0EgRFXFoEFOS0EKK1BPTEVOREVSIFNPRklKQQorUE9MRVJNQU4gQkVMQQorUE9MRVJNQU4gTUlMSUNBCitQT0xFVEFOT1ZJxIYgTUFSSU5LTworUE9MRVRPIERPTUVOSUsKK1BPTEVUTyBJVkFOCitQT0xHQVIgScWgVFZBTgorUE9MScSGIMSQVVJBCitQT0xJxIYgQk/FoEtPCitQT0xJxIYgREFOSUNBCitQT0xJxIYgRFJBR0FOCitQT0xJxIYgTEpVQklDQQorUE9MScSGIE1BUklKQU4KK1BPTEnEhiBTTE9CT0RBTgorUE9MSU1BQyBBTsSQRUxJSkEKK1BPTElOIMSQVVJBCitQT0xJTiBMQVNMTworUE9MSU5TS0kgQVJBTktBCitQT0xKQcSMS0kgQUxFS1NBTkRBUgorUE9MSkHEjEtJIE1JTElDQQorUE9MSkHEjEtJIE1JTElDQQorUE9MSkHEjEtJIFNWRVRPWkFSCitQT0xKQUsgxJBFUsSQCitQT0xKQUsgRVZBCitQT0xKQUsgRlJBTkpPCitQT0xKQUsgTEFTTE8KK1BPTEpBSyBNScWgQQorUE9MSkFLIE1JSEFMSgorUE9MSkFLIE1JTEtBCitQT0xKQUsgTUlPRFJBRworUE9MSkFLIE1JT0RSQUcKK1BPTEpBSyBOSUtPTEEKK1BPTEpBSyBOSUtPTEEKK1BPTEpBSyBQRVRBUgorUE9MSkFLIFJBTktPCitQT0xKQUtPVknEhiBTVEpFUEFOCitQT0xKQU5TS0kgSk9WSUNBCitQT0xKQU5TS0kgTEpVQklDQQorUE9MSkFOU0tJIFNUT0pBTgorUE9MSknEjEFLIEFOVEUKK1BPTEpJxIxBSyBMSlVCQU4KK1BPTEpJxIYgUkVGSUsKK1BPTEpPVktBIEpBTgorUE9MSlZBxaAgSk/FvUVGCitQT0xPSkFDIExVS0EKK1BPTE9WScSGIEtPU1RBCitQT0xPVknEhiBTVEVWTworUE9MT1ZJTkEgxJBPUsSQRQorUE9MT1ZJTkEgREFOSUpFTAorUE9MT1ZJTkEgSVNBCitQT0xPVklOQSBNSUxBTgorUE9MT1ZJTkEgTUlMSUNBCitQT0xPVklOQSBNSUxPUkFECitQT0xPVklOQSBOQURBCitQT0xPVklOQSBOSUtPTEEKK1BPTE9WSU5BIFBMRU1FTktBCitQT0xPVklOQSBSQURJVk9KRQorUE9MT1ZJTkEgU0xPQk9EQU4KK1BPTE9WSU5BIFNURVZPCitQT0xPVklOQSBUT0RPUgorUE9MT1ZJTkEgVkxBRElNSVIKK1BPTE9WSU5BIFZMQURPCitQT0xPVklOU0tJIFNBVkEKK1BPTFRVUkEgxb1Vxb1BTkEKK1BPTFRVUkEgR0FCT1IKK1BPTFRVUkEgSVJFTkEKK1BPTFRVUkEgTUlSS08KK1BPTFXFvUFOU0tJIElWQU5LQQorUE9MVU1JUkFDIE1JTElDQQorUE9MVVRBIExJTkEKK1BPTFZFUkXFvUFOLU9CxaBVU1QgxIZFxIZJTElKQQorUE9MWk9WScSGIEFMRUtTQU5EQVIKK1BPTFpPVknEhiBKT1ZBTgorUE9MWk9WScSGIE1JT01JUgorUE9MWk9WScSGIE1JUk9TTEFWCitQT0xaT1ZJxIYgUkFET1NMQVYKK1BPTU9SScWgS0kgQlJBTklTTEFWCitQT05HTyDFvVXFvUFOQQorUE9OR08gSkFOT8WgCitQT05HTyBMQVNMTworUE9OR08gU1RFVkFOCitQT05KQVJBQyBTQVZPCitQT05KQVZJxIYgR09SREFOQQorUE9OSkFWScSGIFJBRElTQVYKK1BPTkpBVknEhiBTSU5JxaBBCitQT05KRVZJxIYgTU9NxIxJTE8KK1BPTkpFVknEhiBQRVRBUgorUE9OSkVWScSGIFNQQVNBTgorUE9OSkVWScSGIFpWRVpEQU4KK1BPTkpJxIxBTiBIT1JJU0xBVgorUE9OSknEjEFOIEpBTgorUE9OSknEjEFOIEpPU0lQCitQT05KSUdFUiDEkFVSQQorUE9OSklHRVIgSVZBTgorUE9OT8SGS08gxIxFRE9NSVIKK1BPTk9SQUMgTEFaQVIKK1BPUC1KT1ZBTk9WIFZFUkEKK1BPUCBaREVOS08KK1BPUMSQVVLEkEVWIE1JTEFOCitQT1BBIFNQQVNFTklKQQorUE9QQURJxIYgxb1JVkFOCitQT1BBREnEhiDFvUlWQQorUE9QQURJxIYgxb1JVktPCitQT1BBREnEhiDEkE9LTworUE9QQURJxIYgxJBVS0EKK1BPUEFEScSGIEJSQU5LQQorUE9QQURJxIYgR09KS08KK1BPUEFEScSGIElTSURPUgorUE9QQURJxIYtSkFOVVpPVknEhiBSQURNSUxBCitQT1BBREnEhiBMSklMSkFOQQorUE9QQURJxIYgTEpVQklDQQorUE9QQURJxIYgTEpVQk8KK1BPUEFEScSGIE1JTEFOCitQT1BBREnEhiBNSUxFTktPCitQT1BBREnEhiBNSUxFTktPCitQT1BBREnEhiBNSUxFTktPCitQT1BBREnEhiBNSU9EUkFHCitQT1BBREnEhiBORURFTEpLTworUE9QQURJxIYgTkVHT1ZBTgorUE9QQURJxIYgTklLT0xBCitQT1BBREnEhiBOT1ZBSworUE9QQURJxIYgUEVUS08KK1BPUEFEScSGIFBSRURSQUcKK1BPUEFEScSGIFJBRE1JTEEKK1BPUEFEScSGIFJBRE1JTEEKK1BPUEFEScSGIFJBVE9NSVIKK1BPUEFEScSGIFNJTFZJSkEKK1BPUEFEScSGIFNMQVZLTworUE9QQURJxIYgU0xBVk9MSlVCCitQT1BBREnEhiBTVEFOQQorUE9QQURJxIYgU1RPSklDQQorUE9QQURJxIYgU1ZFVExBTkEKK1BPUEFEScSGIFRJSE9NSVIKK1BPUEFEScSGIFZFUkEKK1BPUEFEScSGIFZPSklTTEFWIEFEVk9LQVQKK1BPUEFEScSGIFZPSklTTEFWCitQT1BBUkEgQUxFS1NBTkRBUgorUE9QQVJBIElMSUpBCitQT1BBUkEgTEpVQknFoEEKK1BPUEFSQSBUQURJSkEKK1BPUEFSQSBaT1JBTgorUE9QQVJJxIYgxb1JVk9KSU4KK1BPUEFSScSGIElTSURPUgorUE9QQVJJxIYgTUFSSUNBCitQT1BBUknEhiBORU5BRAorUE9QREFOS09WIEpVRElUQQorUE9QRUpLT1YgQk9SSVNMQVYKK1BPUEVKS09WIExKSUxKQU5BCitQT1BFSktPViBNQVJBCitQT1BFTkdPViBWQVNBCitQT1BFU0tVIFJVxb1BCitQT1BHTElHT1JJTiBQQVZMRQorUE9QScSGIMW9RUxKS08KK1BPUEnEhiBBTEVLU0FOREFSCitQT1BJxIYgQU7EkEVMS08KK1BPUEnEhiBCUkFOS08KK1BPUEnEhiBCVURJTUlSCitQT1BJxIYgRFJBR0FOCitQT1BJxIYgRFXFoEFOCitQT1BJxIYgRFXFoEFOCitQT1BJxIYgRFXFoEFOCitQT1BJxIYgRURJVEEKK1BPUEnEhiBHT1JEQU5BCitQT1BJxIYgSkVMSVNBVkVUQQorUE9QScSGIEtBVElDQQorUE9QScSGIExKSUxKQU5BCitQT1BJxIYgTFVLQQorUE9QScSGIE1JTEFOCitQT1BJxIYgTUlMQU4KK1BPUEnEhiBNSUxBTgorUE9QScSGIE1JTElDQQorUE9QScSGIE1JTElWT0oKK1BPUEnEhiBNSVJBCitQT1BJxIYgTUlSQQorUE9QScSGIE1JUkpBTkEKK1BPUEnEhiBOQURBCitQT1BJxIYtUEFMSknEhiBGRU9ET1JBCitQT1BJxIYgUkFESVZPSgorUE9QScSGIFNBVkEKK1BPUEnEhiBTQVZPCitQT1BJxIYgU05Fxb1BTkEKK1BPUEnEhiBTT0ZJSkEKK1BPUEnEhiBTT0ZJSkEKK1BPUEnEhiBTVkVUT1pBUgorUE9QScSGIFRPTUEKK1BPUEnEhiBWVUtJQ0EKK1BPUEnEhiBaT1JBCitQT1BJTiBJVkFOCitQT1BJTiBSQURJVk9KCitQT1BJTiBWSVRPTUlSCitQT1BJTiBWTEFESU1JUgorUE9QSVZPREEgQk/FvUlEQVIKK1BPUElWT0RBIE1JTE9WQU4KK1BPUElWT0RBIE1JTFVUSU4KK1BPUElWT0RBIE5FREVMSktPCitQT1BJVk9EQSBQRVRBUgorUE9QSVZPREEgUkFESVNMQVYKK1BPUE1JSEFKTE9WIERJTUlUUklKRQorUE9QTUlIQUpMT1YgRFXFoEFOCitQT1BOT1ZBS09WIERSQUdPTUlSCitQT1BOT1ZBS09WIE1JTEFOCitQT1BOT1ZBS09WIE1JTElDQQorUE9QT1YgxIxFRE9NSVIKK1BPUE9WIMW9QVJLTworUE9QT1Ygxb1BUktPCitQT1BPVi3FvUlLRUxJxIYgWk9SQQorUE9QT1Ygxb1JVktBCitQT1BPViDFvUlWS08KK1BPUE9WIMW9SVZLTworUE9QT1Ygxb1JVktPCitQT1BPViDFvUlWS08KK1BPUE9WIMW9SVZLTworUE9QT1Ygxb1JVktPCitQT1BPViDEkE9LQQorUE9QT1YgxJBPS0EKK1BPUE9WIMSQT1LEkEUKK1BPUE9WIMSQT1LEkEUKK1BPUE9WIMSQT1LEkEUKK1BPUE9WIMSQT1LEkEUKK1BPUE9WIMSQT1LEkEUKK1BPUE9WIMSQT1LEkEUKK1BPUE9WIMSQVVLEkElOQQorUE9QT1YgxJBVUkEKK1BPUE9WIMSQVVJBCitQT1BPViBBTEVLU0FOREFSCitQT1BPViBBTEVLU0FOREFSCitQT1BPViBBTEVLU0FOREFSCitQT1BPViBBTEVLU0FOREFSCitQT1BPViBBTEVLU0FOREFSCitQT1BPViBBTEVLU0FOREFSCitQT1BPViBBTEVLU0FOREFSCitQT1BPViBBTsSQQQorUE9QT1YgQU5ET04KK1BPUE9WIEFOS0lDQQorUE9QT1YtQkHFoEEgVkVSQQorUE9QT1YgQk9SSVZPSiBESVBMIElORworUE9QT1YgQlJBTklTTEFWQQorUE9QT1YgQlJBTklTTEFWCitQT1BPViBCUkFOSVNMQVYKK1BPUE9WIEJSQU5JU0xBVgorUE9QT1YgQlJBTktPCitQT1BPViBCUkFOS08KK1BPUE9WIERBTklDQQorUE9QT1YgREFOSUNBCitQT1BPViBEQU5JTE8KK1BPUE9WIERBTklMTworUE9QT1YgREFSSU5LQQorUE9QT1YgRElNSVRSSUpFCitQT1BPViBESU1JVFJJSkUKK1BPUE9WIERSQUdBTkEKK1BPUE9WIERSQUdBTgorUE9QT1YgRFJBR0FOCitQT1BPViBEUkFHQU4KK1BPUE9WIERSQUdBTgorUE9QT1YgRFJBR0EKK1BPUE9WIERSQUdJxaBBCitQT1BPViBEUkFHSUNBCitQT1BPVi1EUkFHSU4gT0xHQQorUE9QT1YgRFJBR09MSlVCCitQT1BPViBEUkFHT0xKVUIKK1BPUE9WIERSQUdPTEpVQgorUE9QT1YgRFJBR09NSVIKK1BPUE9WIERSQUdPTUlSCitQT1BPViBEUkFHT01JUgorUE9QT1YgRFJBR09TTEFWQQorUE9QT1YgRFXFoEFOIERSCitQT1BPViBEVcWgQU4KK1BPUE9WIERVxaBBTgorUE9QT1YgRFXFoEFOCitQT1BPViBEVcWgS0EKK1BPUE9WIEdBVlJBCitQT1BPViBHT1JBTgorUE9QT1YgR09SREFOQSBEUgorUE9QT1YgR09SREFOQQorUE9QT1YgR09SREFOQQorUE9QT1YgSUxPTktBCitQT1BPViBJU0EKK1BPUE9WIElWQU5LQQorUE9QT1YgSVZBTgorUE9QT1YgSVZLQQorUE9QT1YgSkVMQQorUE9QT1YgSkVMQQorUE9QT1YgSkVMSVNBVkVUQQorUE9QT1YgSkVaRElNSVIKK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpVR09TTEFWCitQT1BPViBKVUcKK1BPUE9WIEpVTEtBCitQT1BPViBLQVRJQ0EKK1BPUE9WIEtBVElDQQorUE9QT1YgS09TQQorUE9QT1YgS09WSU5LQQorUE9QT1YgTEFaQVIKK1BPUE9WIExBWkFSCitQT1BPViBMQVpBUgorUE9QT1YgTEFaQVIKK1BPUE9WIExFTktBCitQT1BPViBMSklMSkFOQQorUE9QT1YgTEpJTEpBTkEKK1BPUE9WIExKVUJJxaBBCitQT1BPViBMSlVCSUNBCitQT1BPViBMSlVCSUNBCitQT1BPViBMSlVCSUNBCitQT1BPViBMSlVCSUNBCitQT1BPViBMSlVCSU5LQQorUE9QT1YgTEpVQk9NSVIKK1BPUE9WIE1BUkEKK1BPUE9WIE1BUklDQQorUE9QT1YgTUFSSUpBCitQT1BPViBNQVJJSkEKK1BPUE9WIE1BUklOS08KK1BPUE9WIE1BUktPCitQT1BPViBNQVJLTworUE9QT1YgTUFSS08KK1BPUE9WIE1JTEFESU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxFTkEKK1BPUE9WIE1JTEVOQQorUE9QT1YgTUlMRU5LTworUE9QT1YgTUlMSUNBCitQT1BPViBNSUxJQ0EKK1BPUE9WIE1JTElDQQorUE9QT1YgTUlMSUNBCitQT1BPViBNSUxJVk9KCitQT1BPViBNSUxJVk9KCitQT1BPViBNSUxJVk9KCitQT1BPViBNSUxJVk9KCitQT1BPViBNSUxLQQorUE9QT1YgTUlMT8WgCitQT1BPViBNSUxPxaAKK1BPUE9WIE1JTE9KRQorUE9QT1YgTUlMT1JBRAorUE9QT1YgTUlMT1ZBTgorUE9QT1YgTUlMT1ZBTgorUE9QT1YgTUlMVVRJTgorUE9QT1YgTUlSSkFOQQorUE9QT1YgTUlSSkFOQQorUE9QT1YgTUlSSkFOCitQT1BPViBNSVJPU0xBVgorUE9QT1YgTUlUQQorUE9QT1YgTU9NxIxJTE8KK1BPUE9WIE5FREVMSktPCitQT1BPViBORU5BVEtBCitQT1BPViBOSUtPTEEKK1BPUE9WIE5JTkEKK1BPUE9WIE5JTk9TTEFWIERJUEwgSU5HCitQT1BPViBOT1ZBSworUE9QT1YgT0JSQUQKK1BPUE9WLU9CUk9WQcSMS0kgU09GSUpBCitQT1BPViBPTEdBCitQT1BPViBQQUpBCitQT1BPViBQQVZMRQorUE9QT1YgUEFWTEUKK1BPUE9WIFBBVkxFCitQT1BPViBQRVJBCitQT1BPViBQRVRBUgorUE9QT1YgUEVUQVIKK1BPUE9WIFBMQVRPTgorUE9QT1YgUFJFRFJBRworUE9QT1YgUkFESVZPSkUKK1BPUE9WIFJBRElWT0oKK1BPUE9WIFJBRElWT0oKK1BPUE9WIFJBRElWT0oKK1BPUE9WIFJBRElWT0oKK1BPUE9WIFJBRElWT0oKK1BPUE9WIFJBRE1JTEEKK1BPUE9WIFJBRE9KS0EKK1BPUE9WIFJBRE9WQU4gRElQTCBJTkcKK1BPUE9WIFJBRE9WQU4KK1BPUE9WIFJBRE9WQU4KK1BPUE9WIFJBRE9WQU4KK1BPUE9WIFJBRE9WQU4KK1BPUE9WIFJBRE9WQU4KK1BPUE9WIFJBRE9WQU4KK1BPUE9WIFJBRE9WQU4KK1BPUE9WIFJBVE9NSVIKK1BPUE9WIFJFTEpBCitQT1BPViBST0RPTEpVQgorUE9QT1YgU0FWQQorUE9QT1YgU0FWQQorUE9QT1YgU0FWQQorUE9QT1YgU0FWQQorUE9QT1YgU0FWRVRBCitQT1BPViBTRUtVTEEKK1BPUE9WIFNJTknFoEEKK1BPUE9WIFNMQVZJQ0EKK1BPUE9WIFNMQVZLTworUE9QT1YgU0xBVktPCitQT1BPViBTTEFWS08KK1BPUE9WIFNMT0JPREFOCitQT1BPViBTTE9CT0RBTgorUE9QT1YgU05Fxb1BTkEKK1BPUE9WIFNPRklKQQorUE9QT1YgU1BBU09KRQorUE9QT1YgU1JFRE9KRQorUE9QT1YgU1RBTkEKK1BPUE9WIFNURVZBTiBESVBMIElORworUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBCitQT1BPViBTVEVWSUNBCitQT1BPViBTVE9KQU5LQQorUE9QT1YgU1ZFVExBTkEKK1BPUE9WIFNWRVRPWkFSCitQT1BPViBTVkVUT1pBUgorUE9QT1YgVEFUT01JUgorUE9QT1YgVE9ET1IKK1BPUE9WIFRSSVZBCitQT1BPViBVUk/FoAorUE9QT1YgVkFTSUxJSkUKK1BPUE9WIFZBU0lMSUpFCitQT1BPViBWQVNJTElKRQorUE9QT1YgVkVSQQorUE9QT1YgVkVSQQorUE9QT1YgVkVSQQorUE9QT1YgVkVSSUNBCitQT1BPViBWRVNFTElOCitQT1BPViBWTEFESU1JUgorUE9QT1YgVkxBRElNSVIKK1BPUE9WIFZPSklOCitQT1BPViBWT0pJU0xBVgorUE9QT1YgVlVLT1NBVkEKK1BPUE9WIFpMQVRBCitQT1BPViBaTEFUSUNBCitQT1BPViBaT1JLQQorUE9QT1ZJxIYgxIxBU0xBViBESVBMIFBSQVZOSUsKK1BPUE9WScSGIMSMRURPTUlSIERJUEwgSU5HCitQT1BPVknEhiDEjEVET01JUgorUE9QT1ZJxIYgxIxFRE9NSVIKK1BPUE9WScSGIMSMRURPTUlSCitQT1BPVknEhi3EjEVKT1ZJxIYgUEFWTEUKK1BPUE9WScSGIMWgxIZFUEFOCitQT1BPVknEhiDFvUFSS08KK1BPUE9WScSGIMW9QVJLTworUE9QT1ZJxIYgxb1BUktPCitQT1BPVknEhiDFvUVMSktPCitQT1BPVknEhiDFvUlWQU4KK1BPUE9WScSGIMW9SVZBTgorUE9QT1ZJxIYgxb1JVktPCitQT1BPVknEhiDFvUlWT1JBRAorUE9QT1ZJxIYgxb1Vxb1BTkEKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkEUKK1BPUE9WScSGIMSQT1LEkElKRQorUE9QT1ZJxIYgxJBVUsSQSU5BCitQT1BPVknEhiDEkFVSxJBJTkEKK1BPUE9WScSGIMSQVVJBCitQT1BPVknEhiDEkFVSSUNBCitQT1BPVknEhiDEkFVSTworUE9QT1ZJxIYgxJBVUk8KK1BPUE9WScSGIEFLU0VOVElKRQorUE9QT1ZJxIYgQUxFS1NBTkRBUiBEUiBQUkFWTklLCitQT1BPVknEhiBBTEVLU0FOREFSIERSCitQT1BPVknEhiBBTEVLU0FOREFSCitQT1BPVknEhiBBTEVLU0FOREFSCitQT1BPVknEhiBBTEVLU0FOREFSCitQT1BPVknEhiBBTEVLU0FOREFSCitQT1BPVknEhiBBTsSQRUxLQQorUE9QT1ZJxIYgQU7EkEVMS0EKK1BPUE9WScSGIEFOxJBFTAorUE9QT1ZJxIYgQU5BCitQT1BPVknEhiBBTkEKK1BPUE9WScSGIEFOR0VMSU5BCitQT1BPVknEhiBBTkdFTElOQQorUE9QT1ZJxIYgQU5HRUxJTkEKK1BPUE9WScSGIEFOSUNBCitQT1BPVknEhiBCTEFHT0pFCitQT1BPVknEhiBCT8W9QQorUE9QT1ZJxIYgQk/FvUlEQVIKK1BPUE9WScSGIEJPR0RBTgorUE9QT1ZJxIYgQk9HREFOCitQT1BPVknEhiBCT0dPTEpVQgorUE9QT1ZJxIYgQk9KQU4KK1BPUE9WScSGIEJPUklTTEFWQQorUE9QT1ZJxIYgQk9SSVNMQVYKK1BPUE9WScSGIEJPUkpBTgorUE9QT1ZJxIYgQk9SS0EKK1BPUE9WScSGIEJPU0lMSktBCitQT1BPVknEhiBCUkFOSVNMQVYgRFIKK1BPUE9WScSGIEJSQU5JU0xBVgorUE9QT1ZJxIYgQlJBTklTTEFWCitQT1BPVknEhiBCUkFOSVNMQVYKK1BPUE9WScSGIEJSQU5JU0xBVgorUE9QT1ZJxIYgQlJBTklTTEFWCitQT1BPVknEhiBCUkFOSVZPSgorUE9QT1ZJxIYgQlJBTklWT0oKK1BPUE9WScSGIEJSQU5LQQorUE9QT1ZJxIYgQlJBTktPCitQT1BPVknEhiBCUkFOS08KK1BPUE9WScSGIEJSQU5LTworUE9QT1ZJxIYgQ1ZFSkEKK1BPUE9WScSGIERBTsSMSUtBCitQT1BPVknEhiBEQU5FCitQT1BPVknEhiBEQU5FCitQT1BPVknEhiBEQU5JQ0EKK1BPUE9WScSGIERBTklDQQorUE9QT1ZJxIYgREFOSUxPCitQT1BPVknEhiBEQU5LSUNBCitQT1BPVknEhiBEQVJJTktBCitQT1BPVknEhiBERUpBTgorUE9QT1ZJxIYgREVTQU5LQQorUE9QT1ZJxIYgREVTQQorUE9QT1ZJxIYgRElNSVRSSUpFCitQT1BPVknEhiBESU1JVFJJSkUKK1BPUE9WScSGIERJTUlUUklKRQorUE9QT1ZJxIYgRE9CUklOS0EKK1BPUE9WScSGIERPQlJJTktBCitQT1BPVknEhiBET0JSSU5LTworUE9QT1ZJxIYgRE9CUklWT0oKK1BPUE9WScSGIERSQUdBTkEKK1BPUE9WScSGIERSQUdBTgorUE9QT1ZJxIYgRFJBR0FOCitQT1BPVknEhiBEUkFHQU4KK1BPUE9WScSGIERSQUdJxaBBIERSCitQT1BPVknEhiBEUkFHScWgQQorUE9QT1ZJxIYgRFJBR0lOSkEKK1BPUE9WScSGIERSQUdPIERJUEwgSU5HCitQT1BPVknEhiBEUkFHT0pMTworUE9QT1ZJxIYgRFJBR09MSlVCCitQT1BPVknEhiBEUkFHT0xKVUIKK1BPUE9WScSGIERSQUdPTEpVQgorUE9QT1ZJxIYgRFJBR09NSVIKK1BPUE9WScSGIERSQUdPTUlSCitQT1BPVknEhiBEUkFHTworUE9QT1ZJxIYgRFJBR08KK1BPUE9WScSGIERSQUdPCitQT1BPVknEhiBEUkFHVVRJTgorUE9QT1ZJxIYgRFXFoEFOIERSCitQT1BPVknEhiBEVcWgQU5LQQorUE9QT1ZJxIYgRFXFoEFOS0EKK1BPUE9WScSGIERVxaBBTktBCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgSUNBCitQT1BPVknEhiBEVcWgS08gRFIKK1BPUE9WScSGIEVNSUwKK1BPUE9WScSGIEZFT0RPUkEKK1BPUE9WScSGIEZFT0RPUgorUE9QT1ZJxIYgR09KS08KK1BPUE9WScSGIEdPUkFOCitQT1BPVknEhiBHT1JEQU5BCitQT1BPVknEhiBJTEUKK1BPUE9WScSGIElMSUpBCitQT1BPVknEhiBJTElKQQorUE9QT1ZJxIYgSUxJSkEKK1BPUE9WScSGIElMSUpBCitQT1BPVknEhiBJTElKQQorUE9QT1ZJxIYgSVJJTkEKK1BPUE9WScSGIElWQU4KK1BPUE9WScSGIElWQU4KK1BPUE9WScSGIElWQU4KK1BPUE9WScSGIElWQU4KK1BPUE9WScSGIElWQU4KK1BPUE9WScSGIEpBRFJBTktBCitQT1BPVknEhiBKQU5LTworUE9QT1ZJxIYgSkFTTkEKK1BPUE9WScSGIEpFRlRBCitQT1BPVknEhiBKRUxFTkEKK1BPUE9WScSGIEpFTEVOQQorUE9QT1ZJxIYgSkVMRU5BCitQT1BPVknEhiBKRUxFTkEKK1BPUE9WScSGIEpFTElTQVZFVEEKK1BPUE9WScSGIEpPVkFOS0EKK1BPUE9WScSGIEpPVkFOS0EKK1BPUE9WScSGIEpPVkFOS0EKK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZPCitQT1BPVknEhiBLQVRBUklOQQorUE9QT1ZJxIYgS0FUSUNBCitQT1BPVknEhiBLQVRJQ0EKK1BPUE9WScSGIEtBVElDQQorUE9QT1ZJxIYgS09OU1RBTlRJTgorUE9QT1ZJxIYgS09TVEEgRFIKK1BPUE9WScSGIEtPU1RBRElOCitQT1BPVknEhiBLT1NUQQorUE9QT1ZJxIYgS09TVEEKK1BPUE9WScSGIEtSSVNUSU5BCitQT1BPVknEhiBLUlNUQQorUE9QT1ZJxIYgS1JTVE8KK1BPUE9WScSGIEtTRU5JSkEKK1BPUE9WScSGIExBWkFSIERSIExFS0FSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExFTEEKK1BPUE9WScSGIExFUE9TQVZBCitQT1BPVknEhiBMSklMSkFOQSBEUgorUE9QT1ZJxIYgTEpJTEpBTkEKK1BPUE9WScSGIExKSUxKQU5BCitQT1BPVknEhiBMSklMSkFOQQorUE9QT1ZJxIYgTEpJTEpBTkEKK1BPUE9WScSGIExKSUxKQU5BCitQT1BPVknEhiBMSlVCSUNBCitQT1BPVknEhiBMSlVCSUNBCitQT1BPVknEhiBMSlVCSUNBCitQT1BPVknEhiBMSlVCSUNBCitQT1BPVknEhiBMSlVCSVNBVgorUE9QT1ZJxIYgTEpVQk9NSVIKK1BPUE9WScSGIExKVUJPTUlSCitQT1BPVknEhiBMSlVCT01JUgorUE9QT1ZJxIYgTEpVQk9NSVIKK1BPUE9WScSGIE1BS1NJTQorUE9QT1ZJxIYgTUFSQQorUE9QT1ZJxIYgTUFSQQorUE9QT1ZJxIYgTUFSSUpBIERSCitQT1BPVknEhiBNQVJJSkFOQQorUE9QT1ZJxIYgTUFSSUpBCitQT1BPVknEhiBNQVJJSkEKK1BPUE9WScSGIE1BUklKQQorUE9QT1ZJxIYgTUFSSUpBCitQT1BPVknEhiBNQVJJSkEKK1BPUE9WScSGIE1BUklOS08KK1BPUE9WScSGIE1BUktPIERSIExFS0FSCitQT1BPVknEhiBNQVJLTyBNUiBJTkcKK1BPUE9WScSGIE1BUktPCitQT1BPVknEhiBNQVJLTworUE9QT1ZJxIYgTUFSVEEKK1BPUE9WScSGIE1FTEFOSUpBCitQT1BPVknEhiBNSUhBSUxPCitQT1BPVknEhiBNSUhBSkxPIERSCitQT1BPVknEhiBNSUhBSkxPCitQT1BPVknEhiBNSUxBTkEKK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEEKK1BPUE9WScSGIE1JTEVOQQorUE9QT1ZJxIYgTUlMRU5LTworUE9QT1ZJxIYgTUlMRU5LTworUE9QT1ZJxIYgTUlMRU5LTworUE9QT1ZJxIYgTUlMRU5LTworUE9QT1ZJxIYgTUlMRU5LTworUE9QT1ZJxIYgTUlMRVRBIERJUEwgSU5HCitQT1BPVknEhiBNSUxFCitQT1BPVknEhiBNSUxJQ0EKK1BPUE9WScSGIE1JTElDQQorUE9QT1ZJxIYgTUlMSUpBTiBEUgorUE9QT1ZJxIYgTUlMSU5LTworUE9QT1ZJxIYgTUlMSVZPSkUKK1BPUE9WScSGIE1JTEtBCitQT1BPVknEhiBNSUxPxaAgRElQTCBJTkcKK1BPUE9WScSGIE1JTE/FoAorUE9QT1ZJxIYgTUlMT8WgCitQT1BPVknEhiBNSUxPxaAKK1BPUE9WScSGIE1JTE9SQUQKK1BPUE9WScSGIE1JTE9SQUQKK1BPUE9WScSGIE1JTE9SQUQKK1BPUE9WScSGIE1JTE9SQUQKK1BPUE9WScSGIE1JTE9SQUQKK1BPUE9WScSGIE1JTE9SQUQKK1BPUE9WScSGIE1JTE9TQVZBCitQT1BPVknEhiBNSUxPU0FWCitQT1BPVknEhiBNSUxPVkFOCitQT1BPVknEhiBNSUxVVElOCitQT1BPVknEhiBNSU9EUkFHCitQT1BPVknEhiBNSU9EUkFHCitQT1BPVknEhiBNSU9EUkFHCitQT1BPVknEhiBNSU9EUkFHCitQT1BPVknEhiBNSVJBCitQT1BPVknEhiBNSVJBCitQT1BPVknEhiBNSVJKQU5BCitQT1BPVknEhiBNSVJKQU5BCitQT1BPVknEhiBNSVJKQU5BCitQT1BPVknEhiBNSVJKQU5BCitQT1BPVknEhiBNSVJLTworUE9QT1ZJxIYgTUlSS08KK1BPUE9WScSGIE1JUktPCitQT1BPVknEhiBNSVJLTworUE9QT1ZJxIYgTUlSS08KK1BPUE9WScSGIE1JUk9MSlVCCitQT1BPVknEhiBNSVJPU0xBVgorUE9QT1ZJxIYgTUlST1NMQVYKK1BPUE9WScSGIE1JUk9TTEFWCitQT1BPVknEhiBNSVJPU0xBVgorUE9QT1ZJxIYgTUlUQVIKK1BPUE9WScSGIE1JVEFSCitQT1BPVknEhiBNTEFERU4KK1BPUE9WScSGIE1MQURJTktPCitQT1BPVknEhiBNT03EjElMTworUE9QT1ZJxIYgTU9NxIxJTE8KK1BPUE9WScSGIE1PTcSMSUxPCitQT1BPVknEhiBOQURBCitQT1BPVknEhiBOQURBCitQT1BPVknEhiBOQURBCitQT1BPVknEhiBOQURBCitQT1BPVknEhiBOQURBCitQT1BPVknEhiBOQURFxb1EQQorUE9QT1ZJxIYgTkFERcW9REEKK1BPUE9WScSGIE5BREXFvURBCitQT1BPVknEhiBOQVRBTElKQQorUE9QT1ZJxIYgTkXEkE8KK1BPUE9WScSGIE5FQk9KxaBBCitQT1BPVknEhiBORURFTEpLTworUE9QT1ZJxIYgTkVERUxKS08KK1BPUE9WScSGIE5FTkFECitQT1BPVknEhiBORU5BRAorUE9QT1ZJxIYgTklLT0xBCitQT1BPVknEhiBOSUtPTEEKK1BPUE9WScSGIE5JS09MQQorUE9QT1ZJxIYgTklLT0xBCitQT1BPVknEhiBOSUtPTEEKK1BPUE9WScSGIE5JS09MQQorUE9QT1ZJxIYgTk9WQUsKK1BPUE9WScSGIE5PVkFLCitQT1BPVknEhiBPQlJBRAorUE9QT1ZJxIYgT0JSQUQKK1BPUE9WScSGIE9MR0EKK1BPUE9WScSGIE9MR0EKK1BPUE9WScSGIE9MR0EKK1BPUE9WScSGIFBBSkEKK1BPUE9WScSGIFBBVkxFIERJUEwgUFJBVk5JSworUE9QT1ZJxIYgUEFWTEUKK1BPUE9WScSGIFBBVkxFCitQT1BPVknEhiBQQVZMRQorUE9QT1ZJxIYgUEVSQQorUE9QT1ZJxIYgUEVSSUNBCitQT1BPVknEhiBQRVJPCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFJBREEKK1BPUE9WScSGIFJBREVOS08KK1BPUE9WScSGIFJBREUKK1BPUE9WScSGIFJBREUKK1BPUE9WScSGIFJBREUKK1BPUE9WScSGIFJBRElOS0EKK1BPUE9WScSGIFJBRElWT0pFCitQT1BPVknEhiBSQURJVk9KCitQT1BPVknEhiBSQURJVk9KCitQT1BPVknEhiBSQURNSUxBCitQT1BPVknEhiBSQURNSUxBCitQT1BPVknEhiBSQURPSUNBCitQT1BPVknEhiBSQURPSUNBCitQT1BPVknEhiBSQURPSklDQQorUE9QT1ZJxIYgUkFET0pLQQorUE9QT1ZJxIYgUkFET0pLQQorUE9QT1ZJxIYgUkFET01JUgorUE9QT1ZJxIYgUkFET1NBVgorUE9QT1ZJxIYgUkFET1NBVgorUE9QT1ZJxIYgUkFET1NMQVYKK1BPUE9WScSGIFJBRE9WQU5LQQorUE9QT1ZJxIYgUkFET1ZBTktBCitQT1BPVknEhiBSQURPVkFOCitQT1BPVknEhiBSQURVTAorUE9QT1ZJxIYgUkFKS08KK1BPUE9WScSGIFJBTktPCitQT1BPVknEhiBSQVRLTworUE9QT1ZJxIYgUkFWSUpPSkxBCitQT1BPVknEhiBSRUxKQSBEUgorUE9QT1ZJxIYgUk9ET0xKVUIKK1BPUE9WScSGIFNBTkpBCitQT1BPVknEhiBTQVZBIERJUEwgSU5HCitQT1BPVknEhiBTQVZBIERJUEwgSU5HCitQT1BPVknEhiBTQVZBCitQT1BPVknEhiBTQVZBCitQT1BPVknEhiBTQVZBCitQT1BPVknEhiBTQVZPCitQT1BPVknEhiBTRUtVTEEKK1BPUE9WScSGIFNJTknFoEEgRFIgTEVLQVIKK1BPUE9WScSGIFNMQVZJQ0EKK1BPUE9WScSGIFNMQVZLTyBESVBMIE9FQworUE9QT1ZJxIYgU0xBVktPCitQT1BPVknEhiBTTEFWS08KK1BPUE9WScSGIFNMQVZLTworUE9QT1ZJxIYgU0xBVk9MSlVCCitQT1BPVknEhiBTTEFWT0xKVUIKK1BPUE9WScSGIFNMT0JPREFOCitQT1BPVknEhiBTTE9CT0RBTgorUE9QT1ZJxIYgU0xPQk9EQU4KK1BPUE9WScSGIFNMT0JPREFOCitQT1BPVknEhiBTTUlMSkFOQQorUE9QT1ZJxIYgU09GSUpBCitQT1BPVknEhiBTT0ZJSkEKK1BPUE9WScSGIFNPRklKQQorUE9QT1ZJxIYgU09GSUpBCitQT1BPVknEhiBTT0ZJSkEKK1BPUE9WScSGIFNPTkpBCitQT1BPVknEhiBTUEFTT0pFCitQT1BPVknEhiBTVEFOSU1JUgorUE9QT1ZJxIYgU1RBTklNSVIKK1BPUE9WScSGIFNUQU5LTworUE9QT1ZJxIYgU1RBTktPCitQT1BPVknEhiBTVEFOS08KK1BPUE9WScSGIFNURVZBTiBEUgorUE9QT1ZJxIYgU1RFVkFOCitQT1BPVknEhiBTVEVWQU4KK1BPUE9WScSGIFNURVZBTgorUE9QT1ZJxIYgU1RFVktBCitQT1BPVknEhiBTVEVWTworUE9QT1ZJxIYgU1RPSkFOCitQT1BPVknEhiBTVkVUSVNMQVYKK1BPUE9WScSGIFNWRVRMQU5BCitQT1BPVknEhiBTVkVUT1pBUgorUE9QT1ZJxIYgVEVPRE9SCitQT1BPVknEhiBURVJFWkEKK1BPUE9WScSGIFRPRE9SCitQT1BPVknEhiBUT01JU0xBVgorUE9QT1ZJxIYgVE9NTworUE9QT1ZJxIYgVUdMSkXFoEEKK1BPUE9WScSGIFZBU0lMSUpFCitQT1BPVknEhiBWQVNJTElKRQorUE9QT1ZJxIYgVkVMSU1JUgorUE9QT1ZJxIYgVkVMSVpBUgorUE9QT1ZJxIYgVkVMSktPCitQT1BPVknEhiBWRVJBCitQT1BPVknEhiBWRVJBCitQT1BPVknEhiBWRVJBCitQT1BPVknEhiBWRVJBCitQT1BPVknEhiBWRVJBCitQT1BPVknEhiBWRVJJQ0EKK1BPUE9WScSGIFZFU0VMSU4KK1BPUE9WScSGIFZJRE9KRQorUE9QT1ZJxIYgVklET1NBVkEKK1BPUE9WScSGIFZJS1RPUklKQQorUE9QT1ZJxIYgVkxBREFOCitQT1BPVknEhiBWTEFESU1JUiBEUgorUE9QT1ZJxIYgVkxBRElNSVIKK1BPUE9WScSGIFZMQURJTUlSCitQT1BPVknEhiBWTEFESU1JUgorUE9QT1ZJxIYgVkxBRElNSVIKK1BPUE9WScSGIFZMQURJU0xBVgorUE9QT1ZJxIYgVkxBRE8KK1BPUE9WScSGIFZPSklOCitQT1BPVknEhiBWT0pJTgorUE9QT1ZJxIYgVk9KSVNMQVYKK1BPUE9WScSGIFZVxIxJTkEKK1BPUE9WScSGIFZVxIxLTworUE9QT1ZJxIYgVlVKQURJTgorUE9QT1ZJxIYgVlVLQURJTgorUE9QT1ZJxIYgVlVLQURJTgorUE9QT1ZJxIYgVlVLT1NBVkEKK1BPUE9WScSGIFpERU5LTworUE9QT1ZJxIYgWkRSQVZLQQorUE9QT1ZJxIYgWkxBVE9KQQorUE9QT1ZJxIYgWk9SQU4KK1BPUE9WScSGIFpPUkFOCitQT1BPVknEhiBaT1JBTgorUE9QT1ZJxIYgWk9SQU4KK1BPUE9WScSGIFpPUkFOCitQT1BPVknEhiBaT1JBTgorUE9QT1ZJxIYgWk9SS0EKK1BPUE9WScSGIFpVWkFOQQorUE9QT1ZJxIYgWlZPTklNSVIKK1BPUE9WSUNLSSDFvUFSS08KK1BPUE9WSUNLSSBCT1JJU0xBVgorUE9QT1ZJQ0tJIEpPVkFOS0EKK1BPUE9WSUNLSSBMSlVCT01JUgorUE9QT1ZJQ0tJIE1JTEVOS08KK1BPUE9WSUNLSSBNSUxFTktPCitQT1BPVklDS0kgTUlMSUNBCitQT1BPVklDS0kgTUlMT8WgCitQT1BPVklDS0kgUEVUQVIKK1BPUE9WSUNLSSBSQURPTUlSCitQT1BPVklDS0kgUkFET01JUgorUE9QT1ZJQ0tJIFNBTE9NQQorUE9QT1ZJQ0tJIFNWRVRJU0xBVgorUE9QT1ZJQ0tJIFRBVEpBTkEKK1BPUE9WSUNLSSBURU9ET1IKK1BPUE9WSUNLSSBWTEFESVNMQVYKK1BPUE9WSUNLSSBaT1JBTgorUE9QT1ZTS0kgUkFET0pLQQorUE9QT1ZTS0kgVkVOS08KK1BPUFLFvUFOIE1JTEFOCitQT1BSxb1BTiBOSUtPTEEKK1BPUFLFvUFOIFZBTEVOVElOQQorUE9QUsW9RU4gQk9SSVZPSgorUE9QU0FWSU4gRFXFoEFOCitQT1BTQVZJTiBWRUxJTUlSCitQT1BURcWgSU4gxJBPUsSQRQorUE9QVEXFoElOIExBWkFSIERJUEwgUFJBVk5JSworUE9QVEXFoElOIE1JTEFESU5LQQorUE9QVEXFoElOIFNURVZBTgorUE9SxIxBIExKSUxKQU5BCitQT1LEjEEgUkFNSVoKK1BPUk/FoElOIERSQUdJTkpBCitQT1JPxaBJTiBHRU9SR0lKRSBEUiBMRUtBUgorUE9ST0JJxIYgTUlMQU4KK1BPUk9CScSGIE1JUk9TTEFWCitQT1JPQknEhiBNSVJPU0xBVgorUE9ST0JJxIYgTklKQVoKK1BPUk9CScSGIE5JS09MQQorUE9ST0JJxIYgU0xPQk9EQU4KK1BPUk9QQVQgQk/FoEtPCitQT1JPUEFUScSGIFpPUkEKK1BPU0FWQUMgVkpFS09TTEFWCitQT1NMQU4gSVZBTgorUE9TVE9MT1ZJxIYgU1RBTklNSVIKK1BPVCBGUkFOSkEKK1BPVCBKT1NJUAorUE9UIE1JUktPIERJUEwgSU5HCitQT1RBSSBMQURJU0xBVgorUE9USCBMSlVERVZJVAorUE9UScSGIE1BUklKRUxBCitQT1RJxIYgUkFESVZPSkUKK1BPVEnEhiBSQURPTUlSCitQT1RLT05KQUsgSk9WQU4KK1BPVEtPTkpBSyBNQVJBCitQT1RLT05KQUsgTklLT0xBCitQT1RLT05KQUsgUEVUQVIKK1BPVEtPTkpBSyBTT0ZJSkEKK1BPVEtPTkpBSyBTVEFOS08KK1BPVEtPTkpBSyBTVEVWTworUE9US09OSkFLIFZMQURPCitQT1RLT1pBUkFDIEpVTElKQU5BCitQT1RORVIgVEVSRVpJSkEKK1BPVE9LT1ZJxIYgQUJEVUxBSAorUE9UT0tPVknEhiBTTUFKTworUE9UUEFSScSGIEpFTElDQQorUE9UUkFOIE1JxaBBCitQT1RSRUJJxIYgxJBVUk8KK1BPVFJFQknEhiBET0JSSUxBCitQT1RSRUJJxIYgRFJBR0lDQQorUE9UUkVCScSGIE1JTEUKK1BPVFJFQknEhiBNSUxFCitQT1RSRUJJxIYgTUlMSUNBCitQT1RSRUJJxIYgTklLT0xBCitQT1RSRUJJxIYgUkFERQorUE9UUkVCScSGIFNMQVZLTworUE9UUkVCScSGIFNPRklKQQorUE9UVVJJxIYgU1RFVkEKK1BPVcSMS0kgUkFESVNMQVYKK1BPVkEgTUlST1NMQVZBCitQT1ZBxb1BTiBBTkRSSUpBCitQT1ZBxb1BTiBNQVJJSkEKK1BPVkFaQUkgScWgVFZBTgorUE9WQVpBSSBUSUJPUgorUE9WScSGIE1JTEFOCitQT1ZSxb1BTiBTSU1PCitQT1pEQU4gxJBVUk8KK1BPWkRFUiBWRVJPTkEKK1BPWkRFUkVDIEZSQU5DCitQT1pOQU5PVknEhiBERUpBTgorUE9aTkFOT1ZJxIYgSkVMRU5BCitQT1pOQU5PVknEhiBMSlVCT01JUgorUE9aTkFOT1ZJxIYgTUlMQU4KK1BPWk5BTk9WScSGIE1JTEFOCitQT1pOQU5PVknEhiBNSUxFTktPCitQT1pOQU5PVknEhiBPQlJBRAorUE9aTkFOT1ZJxIYgUkFESVZPSkUKK1BPWk5JxIYgxJBVUk8KK1BPWk5JxIYgSk9WTworUE9aTknEhiBNSVJBCitQT1pOScSGIE5JS09MQQorUE9aT0pFVknEhiBLTEFSQQorUE9aT0pFVknEhiBTVEVWQU4KK1BSxIxJxIYgSkVMSVNBVkVUQQorUFLEjEnEhiBTVEpFUEFOCitQUsSMScSGIFRJSE9NSVIKK1BSxIxJxIYgVkxBRElNSVIKK1BSxaBBIE1JUk9TTEFWIE1SCitQUsWgQSBWRVJBCitQUsSGScSGIElWQU4KK1BSxb1BUiBOQURBCitQUsW9RVZBTEpTS0kgTklLT0xBCitQUsW9TklDQSBNSUxBTkEKK1BSxb1OSUNBIFpMQVRLTworUFJBxaDEjEVWScSGIEFOVE9OSUpBCitQUkHFoMSMRVZJxIYgWk9SSUNBCitQUkHFoFRBTE8gTUlMVVRJTgorUFJBxaBUQUxPIFBFVEFSCitQUkHFvUnEhiBCSUxKQU5BCitQUkHFvUnEhiBCUkFOS08KK1BSQUNORVIgSk9TSVAKK1BSQUNORVIgUlXFvUlDQQorUFJBTElDQSBMSlVCT01JUgorUFJBTElDQSBORURFTEpLTworUFJBTElDQSBTVEVWQU4KK1BSQUxJQ0EgU1RFVkFOCitQUkFNRU5LTyBNSVJPU0xBVgorUFJBTUVOS08gTkVERUxKS08KK1BSQU1FTktPIFJJU1RPCitQUkFNRU5LTyBTUkVUTworUFJBTknEhiBLQVRJQ0EKK1BSQU5JxIYgTUlSS08KK1BSQU5JxIYgUEVUQVIKK1BSQU5JxIYgVE9GSUwKK1BSQU5KScSGIFpMQVRLTworUFJBTkpLScSGIE1BUktPCitQUkFOS0nEhiBNSUxFCitQUkFWREEgQk9SQkFMQQorUFJBVkRBIExBRElTTEFWCitQUkFWREEgTEFKT8WgCitQUkFWSUNBIEVWSUNBCitQUkFWSUNBIExKVUJPTUlSCitQUkRJxIYgTkVERUxKS08KK1BSRcSMQU5JQ0EgQk/FvU8KK1BSRcWgRVJOIEpVTElKQU5BCitQUkXFoE9WQSBNSVJKQU5BCitQUkVCRUcgRFJBR0FOCitQUkVCSVLEjEVWScSGIE5FVkVOQQorUFJFQklSQcSMRVZJxIYgS1JJU1RJTkEKK1BSRUJJUkHEjEVWScSGIExBWk8KK1BSRURBIEFVUkVMCitQUkVEScSGIE1JSEFKTE8KK1BSRURJxIYgUkFET01JUgorUFJFRE9KRVZJxIYgxb1FTEpLTworUFJFRE9KRVZJxIYgQU5LQQorUFJFRE9KRVZJxIYgQk/FvU8KK1BSRURPSkVWScSGIEJPxb1PCitQUkVET0pFVknEhiBCT1JJU0xBVgorUFJFRE9KRVZJxIYgREFOSUNBCitQUkVET0pFVknEhiBEUkFHSUNBCitQUkVET0pFVknEhiBMSlVCT01JUgorUFJFRE9KRVZJxIYgTFVLQQorUFJFRE9KRVZJxIYgTUlMQU4KK1BSRURPSkVWScSGIE1JTEUKK1BSRURPSkVWScSGIE1JTElDQQorUFJFRE9KRVZJxIYgTUlMT1JBRAorUFJFRE9KRVZJxIYgTUlMT1ZBTgorUFJFRE9KRVZJxIYgTUlSS08KK1BSRURPSkVWScSGIE5FTkFECitQUkVET0pFVknEhiBQQVZMRQorUFJFRE9KRVZJxIYgUFJFRFJBRworUFJFRE9KRVZJxIYgUkFET1NMQVZBCitQUkVET0pFVknEhiBTSU1BCitQUkVET0pFVknEhiBTSU1PCitQUkVET0pFVknEhiBTVE9KQU4KK1BSRURPSkVWScSGIFRSSVZPCitQUkVET0pFVknEhiBaT1JBCitQUkVET0xBQyBEUkFHT01JUgorUFJFRE9WScSGIERVxaBBTgorUFJFRFJBxaBLSSBEUkFHT0xKVUIKK1BSRURSQUdPVknEhiBCT1JBCitQUkVEUkFHT1ZJxIYgREVTSU1JUgorUFJFRFJBR09WScSGIE1BUklKQQorUFJFRFJBR09WScSGIE5PVkFLCitQUkVEUkFHT1ZJxIYgVkVTRUxLTworUFJFRFJBR09WScSGIFZFU05BCitQUkVEUkFHT1ZJxIYgWlZFWkRBTiBESVBMIElORworUFJFR1VOIMSQVVJBCitQUkVHVU4gTklLT0xBCitQUkVHVU4gUEVUQVIKK1BSRUdVTiBTVEVWQU4KK1BSRUdVTiBaT1JBCitQUkVLQUpBQyDFvUlWT0pJTgorUFJFS0FKQUMgU0xBVktPCitQUkVLQUpTS0kgQlJBTktPCitQUkVLQUpTS0kgTUlSSkFOCitQUkVLScSGIEFOxJBFTEtBCitQUkVLT0RSQVZBQyBORVZFTktBCitQUkVLT0dBxIxJxIYgxJBPUsSQRQorUFJFS09HQcSMScSGIERBTklDQQorUFJFS09HQcSMScSGIElMSUpBCitQUkVLT0dBxIxJxIYgVkVSQQorUFJFS09QIEpPxb1FRgorUFJFS09QIFJBRE9KS0EKK1BSRUtQQUxKQUogQklCQQorUFJFS1BBTEpBSiBLT0xKQQorUFJFS1BBTEpBSiBNQVJUSU4KK1BSRUtQQUxKQUogUEpFVEVSCitQUkVMIE1BUklKQQorUFJFTEVWScSGIEJPUklTTEFWCitQUkVMRVZJxIYgTUFSS08KK1BSRUxFVknEhiBNSUxBTgorUFJFTEVWScSGIE1JTE/FoAorUFJFTEVWScSGIFJBRE9NSVIKK1BSRUxFVknEhiBTRU5LQQorUFJFTEVWScSGIFZBU0lMSUpFCitQUkVMScSGIE1JTE9KS0EKK1BSRUxJxIYgVkFTQQorUFJFTEnEhiBaQUdPUktBCitQUkVNScSGIFBFVEFSCitQUkVNScSGIFZBU0EKK1BSRU1PVknEhiBEQU5JQ0EKK1BSRU1PVknEhiBSQURPTUlSCitQUkVNT1ZJxIYgVE9NSVNMQVYKK1BSRU1VxaAgRlJBTkpBCitQUkVNVcW9ScSGIERBTUlSCitQUkVNVcW9ScSGIE1BVE8KK1BSRU1Vxb1JxIYgVkxBRElNSVIKK1BSRU5ET1ZJxIYgUEFMSlXFoAorUFJFTlRPVknEhiBEUkFHQU4KK1BSRU5UT1ZJxIYgRFJBR0FOCitQUkVOVE9WScSGIE1JTEFOCitQUkVOVE9WScSGIFBBVkxFCitQUkVOVE9WScSGIFBFVEFSCitQUkVOVE9WScSGIFJJU1RPCitQUkVOVE9WScSGIFZBU08KK1BSRVJBRCBET0JSSUxBCitQUkVSQURPViBESU5LQQorUFJFUkFET1YgRFJBR0lDQQorUFJFUkFET1YgRFVCUkFWS0EKK1BSRVJBRE9WIEdBVlJBCitQUkVSQURPViBMQVpBUgorUFJFUkFET1YgTEVQT1NBVkEKK1BSRVJBRE9WIE1BUklKQQorUFJFUkFET1YgTUlSSkFOQQorUFJFUkFET1YgTUlSSkFOQQorUFJFUkFET1YgTkVERUxKS08KK1BSRVJBRE9WIFBFVEFSCitQUkVSQURPViBTQVZBCitQUkVSQURPViBWRUxJWkFSCitQUkVSQURPViBWTEFESU1JUgorUFJFUkFET1ZJxIYgQU5BCitQUkVSQURPVknEhiBCT0pBCitQUkVSQURPVknEhiBNSUxFTktPCitQUkVSQURPVknEhiBNTEFERU4KK1BSRVJBRE9WScSGIE5FREVMSktPCitQUkVSQURPVknEhiBORURFTEpLTworUFJFU0XEjEtPVknEhiBWRVNOQQorUFJFVE1FUlNLSSBKT1ZBTgorUFJFVE1FUlNLSSBTVEVWQU4KK1BSRVZFREVOIExFTworUFJHT01FTEpBIE5JS09MQQorUFJJxaBJxIYgS0FUSUNBCitQUknFoEnEhiBMQVpBUgorUFJJxaBJxIYgTElESUpBCitQUknFoEnEhiBNSUxPxaAKK1BSScWgScSGIE1JVEEKK1BSScWgScSGIE5BVEFMSUpBCitQUknFoEnEhiBTVEVWQU4KK1BSSUJBS09WScSGIEtTRU5JSkEKK1BSSUJBS09WScSGIE1JTEFOQQorUFJJQkFLT1ZJxIYgTklLT0xBCitQUklCQU5PVknEhiBUT01JU0xBVgorUFJJQknEjEVWScSGIEFSU0VOSUpFCitQUklCScSMRVZJxIYgU0FWS0EKK1BSSUJJxIxFVknEhiBTVkVUT1pBUiBEUiBJTkcKK1BSSUJJxaAgU1RFVkFOCitQUklCScWgRVYgTUlSSkFOQQorUFJJQknFoEnEhiBMSlVCTworUFJJQknFoEnEhiBNSVJPU0xBVgorUFJJQknFoEnEhiBSSVNUSU5KQQorUFJJQknFoEnEhiBTQVZPCitQUklCScSGIEFSU0VOSUpFCitQUklCScSGIERBTklMTworUFJJQknEhiBESU1JVFJJSkUKK1BSSUJJxIYgTUFSSUpBCitQUklCScSGIE1JTE9KRQorUFJJQknEhiBTQVZBCitQUklCScSGRVZJxIYgSk9WTworUFJJQknEhkVWScSGIE9MR0EKK1BSSUJJxIZFVknEhiBUQVRKQU5BCitQUklCSUxPVknEhiBCUkFOS0lDQQorUFJJQ0Egxb1JVktPCitQUklDQSBBTEVLU0FOREFSCitQUklDQSBCT1JJVk9KCitQUklDQSBCT1NJTEpLQQorUFJJQ0EgREFOSUxPCitQUklDQSBEVcWgQU4KK1BSSUNBIElTTworUFJJQ0EgSk9WQU5LQQorUFJJQ0EgTUFSS08KK1BSSUNBIE1JTEUKK1BSSUNBIE1MQURFTgorUFJJQ0EgUEVUQVIKK1BSSUNBIFNPRklKQQorUFJJSkVWScSGIMSQT1LEkEUKK1BSSUpFVknEhiBNSUxBTgorUFJJSknEhiBNSUxBTgorUFJJSknEhiBNSVJTQUQKK1BSSUpPVknEhiBCT0dEQU4KK1BSSUpPVknEhiBEUkFHQU4KK1BSSUpPVknEhiBTVEFOScWgQQorUFJJS0VMIFBFVEFSCitQUklLSURBTk9WScSMIExBU0xPCitQUklLSURBTk9WScSGIEFOQQorUFJJTEpFVkEgQk9SSVNMQVYKK1BSSU1PUkFDIE5JS09MQQorUFJJTU9WScSGIEJMQUdPSkUKK1BSSU1PVknEhiBERUpBTgorUFJJTU9WScSGIERPQlJJQ0EKK1BSSU1PVknEhiBHT1JEQU5BCitQUklNT1ZJxIYgS09WSU5LQQorUFJJTU9WScSGIE1JTEFOCitQUklNT1ZJxIYgU1RPSkFOCitQUklOQ0lQIEpPWk8KK1BSSVNFTEFDIEJPUklTCitQUklTRUxBQyBCUkFOS08KK1BSSVNFTEFDIFpEUkFWS08KK1BSSVNMQU4gWlZPTklNSVIKK1BSSVNUQUkgTEFESVNMQVYKK1BSSVZST0RTS0kgQk9SSVMgRFIKK1BSSVZST0RTS0kgS09OU1RBTlRJTgorUFJLVcWgScSGIEFOSUNBCitQUktVxaBJxIYgU0xBVktPCitQUkxFVknEhiBTVE9KQU4KK1BSTElOQUMgVkVMSktPCitQUkxKRVZJxIYgTkFEQQorUFJPxIxJS0VWScSGIEFOS0EKK1BST8WgScSGIEJPR0RBTgorUFJPxaBJxIYgSk9WQU4KK1BST8WgScSGIE5FxJBPCitQUk/FoEnEhiBORcSQTworUFJPxaBJxIYgTkVCT0rFoEEKK1BST8WgScSGIE5JS09MQQorUFJPxaBJxIYgUEVUQVIKK1BST8WgScSGIFNNSUxKQQorUFJPQk9KxIxFVknEhiBBTlRVTgorUFJPQk9KxIxFVknEhiBFUk5FU1QKK1BST0JPSsSMRVZJxIYgTUFSSUpBCitQUk9CT0rEjEnEhiBCUkFOSVNMQVZBCitQUk9EQU5BIEtSU1RBTgorUFJPREFOScSGIEJPUklTTEFWCitQUk9EQU5JxIYgTUlMQU4KK1BST0RBTk9WIEFOxJBFTEtBCitQUk9EQU5PViBCTEFHT0pBCitQUk9EQU5PViBCT1JBCitQUk9EQU5PViBEQU5JTE8KK1BST0RBTk9WIERSQUdPTEpVQgorUFJPREFOT1YgRFJBR09MSlVCCitQUk9EQU5PViBEUkFHT1NMQVYKK1BST0RBTk9WIERVxaBBTgorUFJPREFOT1YgR09SSUNBCitQUk9EQU5PViBJTElKQQorUFJPREFOT1YgSk9WQU4KK1BST0RBTk9WIEpVU1RJTkEKK1BST0RBTk9WIE1JTEFOCitQUk9EQU5PViBNSUxFTkEKK1BST0RBTk9WIE1JTEVOS08KK1BST0RBTk9WIE1JT0RSQUcKK1BST0RBTk9WIE1MQURFTgorUFJPREFOT1YgTkVERUxKS08KK1BST0RBTk9WIFJBRE9TTEFWCitQUk9EQU5PViBTQVZBCitQUk9EQU5PViBTTEFWS0EgRFIKK1BST0RBTk9WIFpVWkFOQQorUFJPREFOT1ZJxIYgxaBQSVJPCitQUk9EQU5PVknEhiDFvUFSS08KK1BST0RBTk9WScSGIMW9RUxKS08KK1BST0RBTk9WScSGIMW9SVZBTgorUFJPREFOT1ZJxIYgxb1JVktBCitQUk9EQU5PVknEhiDFvUlWS08KK1BST0RBTk9WScSGIMSQT0tBCitQUk9EQU5PVknEhiDEkE9SxJBFCitQUk9EQU5PVknEhiDEkE9SxJBFCitQUk9EQU5PVknEhiDEkE9SxJBFCitQUk9EQU5PVknEhiDEkFVSTworUFJPREFOT1ZJxIYgQUxFS1NBTkRBUgorUFJPREFOT1ZJxIYgQU7EkEVMS08KK1BST0RBTk9WScSGIEJJTEpBTkEKK1BST0RBTk9WScSGIEJPUklTTEFWCitQUk9EQU5PVknEhiBCT1NJTEpLQQorUFJPREFOT1ZJxIYgQlJBTklNSVIKK1BST0RBTk9WScSGIERBTUpBTgorUFJPREFOT1ZJxIYgREFOSUNBCitQUk9EQU5PVknEhiBEQU5JQ0EKK1BST0RBTk9WScSGIERBTklMS0EKK1BST0RBTk9WScSGIERSQUdBTgorUFJPREFOT1ZJxIYgRFJBR0FOCitQUk9EQU5PVknEhiBEUkFHQU4KK1BST0RBTk9WScSGIERVxaBBTktBCitQUk9EQU5PVknEhiBEVcWgQU4KK1BST0RBTk9WScSGIERVxaBBTgorUFJPREFOT1ZJxIYgRFXFoElDQQorUFJPREFOT1ZJxIYgR0FWUkEKK1BST0RBTk9WScSGIEpPVkFOS0EKK1BST0RBTk9WScSGIEpPVkFOCitQUk9EQU5PVknEhiBKT1ZBTgorUFJPREFOT1ZJxIYgSk9WQU4KK1BST0RBTk9WScSGIEpPVkFOCitQUk9EQU5PVknEhiBKT1ZBTgorUFJPREFOT1ZJxIYgSk9WQU4KK1BST0RBTk9WScSGIEtPU1RBCitQUk9EQU5PVknEhiBLT1NUQQorUFJPREFOT1ZJxIYgTEFaQVIgRElQTCBJTkcKK1BST0RBTk9WScSGIExKVUJJQ0EKK1BST0RBTk9WScSGIExKVUJJTktBCitQUk9EQU5PVknEhiBMSlVCT0pBCitQUk9EQU5PVknEhiBMSlVCT01JUgorUFJPREFOT1ZJxIYgTUFSVEEKK1BST0RBTk9WScSGIE1JTEFOCitQUk9EQU5PVknEhiBNSUxBTgorUFJPREFOT1ZJxIYgTUlMQU4KK1BST0RBTk9WScSGIE1JTEFOCitQUk9EQU5PVknEhiBNSUxJQ0EKK1BST0RBTk9WScSGIE1JTEpLTworUFJPREFOT1ZJxIYgTUlMT1JBRAorUFJPREFOT1ZJxIYgTUlMT1ZBTgorUFJPREFOT1ZJxIYgTUlPRFJBRworUFJPREFOT1ZJxIYgTUlPRFJBRworUFJPREFOT1ZJxIYgTUlSQQorUFJPREFOT1ZJxIYgTUlSSkFOQQorUFJPREFOT1ZJxIYgTUlST1NMQVYKK1BST0RBTk9WScSGIE1MQURFTgorUFJPREFOT1ZJxIYgTklLT0xBCitQUk9EQU5PVknEhi1QQU5KS09WScSGIMSQVVLEkElOS0EKK1BST0RBTk9WScSGIFBBVkEKK1BST0RBTk9WScSGIFBBVkxFCitQUk9EQU5PVknEhiBQRVRBUgorUFJPREFOT1ZJxIYgUEVUQVIKK1BST0RBTk9WScSGIFBFVEFSCitQUk9EQU5PVknEhiBSQURJU0FWCitQUk9EQU5PVknEhiBSQURPU0xBVgorUFJPREFOT1ZJxIYgUkFUS08KK1BST0RBTk9WScSGIFJPRE9MSlVCCitQUk9EQU5PVknEhiBTQVZBCitQUk9EQU5PVknEhiBTSU5JxaBBCitQUk9EQU5PVknEhiBTSU5JxaBBCitQUk9EQU5PVknEhiBTTEFWS08KK1BST0RBTk9WScSGIFNMT0JPREFOCitQUk9EQU5PVknEhiBTTE9CT0RBTgorUFJPREFOT1ZJxIYgU1RBTkEKK1BST0RBTk9WScSGIFRBTkFTSUpFCitQUk9EQU5PVknEhiBWQVNBCitQUk9EQU5PVknEhiBWQVNBCitQUk9EQU5PVknEhiBWRUxJTktBCitQUk9EQU5PVknEhiBWRUxKS08KK1BST0RBTk9WScSGIFZFUkEgRFIKK1BST0RBTk9WScSGIFZJRE9TQVZBCitQUk9EQU5PVknEhiBWTEFESU1JUgorUFJPREFOT1ZJxIYgWkFHT1JLQQorUFJPREFOT1ZJxIYgWkFHT1JLQQorUFJPREFOT1ZJxIYgWk9SQU4KK1BST0RJxIYgREFOSUNBCitQUk9EScSGIFZJREEKK1BST0RJxIYgVklUT01JUgorUFJPREnEhiBWSVRPTUlSCitQUk9GT05UQVJPVknEhiBST1pBTElKQQorUFJPSEFTS0EgTUlMRU5LTworUFJPSEFTS0EgTklLT0xBCitQUk9IQVNLQSBTVEVWQU4KK1BST0hBU0tBIFZFUkEKK1BST0pLT1ZTS0kgREVTUEEKK1BST0tFxaAgQkVMQQorUFJPS0XFoCBMQURJU0xBVgorUFJPS0nEhiDEkE9SxJBFCitQUk9LScSGIEdPUkFOCitQUk9LScSGIE1JTEFOCitQUk9LScSGIE1JUkEKK1BST0tJxIYgUlXFvUlDQQorUFJPS0nEhiBTVEVWQU4KK1BST0tJxIYgU1RFVkFOCitQUk9LScSGIFpPUkFOCitQUk9LScSGIFpPUkFOCitQUk9LSU4gQU7EkEVMS0EKK1BST0tJTiBCUkFOSVNMQVYKK1BST0tJTiBLU0VOSUpBCitQUk9LSU4gTEFaQVIKK1BST0tJTiBNQVJLTworUFJPS0lOIE1JUkEKK1BST0tJTiBSQURJVk9KCitQUk9LSU4gUlXFvUlDQQorUFJPS0lOIFNURVZBTgorUFJPS0lOIFNURVZBTgorUFJPS0lOIFpMQVRJTktBCitQUk9LSU4gWk9SQQorUFJPS09QRUMgRFXFoEFOCitQUk9LT1BFQyBIRUxFTkEKK1BST0tPUEVDIEpFTElTQVZFVEEKK1BST0tPUEVDIFNURVZBTgorUFJPS09QScSGIMSMRURPCitQUk9LT1BJxIYgTUlIQUpJTE8KK1BST0tPUEnEhiBTVE9KQU4KK1BST0xFIENWSUpPCitQUk9MRSBKQUdPREEKK1BST0xFIE1FTEFOSUpBCitQUk9MRSBNSUxFTktPCitQUk9MRSBNSUxJSkFOQQorUFJPTEUgTUlMT8WgCitQUk9MRSBNSVJLTworUFJPTEUgTUlST1NMQVYKK1BST0xFIE1JVEFSCitQUk9MRSBNSVRBUgorUFJPTEUgTUxBREVOCitQUk9MRSBSQURPVkFOCitQUk9MRSBSSVNUQQorUFJPTEUgU1RBTklTTEFWCitQUk9MRSBTVEFOS08KK1BST0xFIFVHTEpFxaBBCitQUk9MRSBWRUxKS08KK1BST0xFIFZFUk9OQQorUFJPTEnEhiBEUkFHSUNBCitQUk9MScSGIE1JTE9SQUQKK1BST0xJxIYgUEVSTworUFJPTEnEhiBWSUQKK1BST1NFTklDQSBNQVJLTworUFJPU0VOSUNBIFZJRE9TQVZBCitQUk9TRU5JSyBEVUJSQVZLTworUFJPU0VOSUsgWlZPTklNSVIKK1BST1NUUkFOIMSMRURPTUlSCitQUk9TVFJBTiBQRVRBUgorUFJPVEnEhiDFvUFSS08KK1BST1RJxIYgxJBPS0EKK1BST1RJxIYgxJBPUsSQRQorUFJPVEnEhiBCT1NJTEpLQQorUFJPVEnEhiBCUkFOSVNMQVYKK1BST1RJxIYgRFJBR0FOCitQUk9UScSGIERVxaBBTgorUFJPVEnEhiBJTElKQSBESVBMIElORworUFJPVEnEhiBKT1NJTQorUFJPVEnEhiBNQVJJSkEKK1BST1RJxIYgTUlMRU5BIERSIFNUT01BVE9MT0cKK1BST1RJxIYgTUlMS0EKK1BST1RJxIYtTUlMT8WgRVZJxIYgU0lNS0EgUFJPRgorUFJPVEnEhiBNSUxPxaAKK1BST1RJxIYgTUlMT1JBRAorUFJPVEnEhiBNSVJKQU5BCitQUk9UScSGIE1JVEFSCitQUk9UScSGIE5BREEKK1BST1RJxIYgT0JSQUQKK1BST1RJxIYgUFJFRFJBRworUFJPVEnEhiBQVU5JxaBBCitQUk9UScSGIFJBRE9NSVIKK1BST1RJxIYgU0FNVUlMTworUFJPVEnEhiBTTUlMSkEKK1BST1RJxIYgVklEQQorUFJPVEnEhiBWSVRPTUlSCitQUk9WxIxJIEFHQUZJSkEKK1BST1bEjEkgRVZHRU5JSkUgRElQTCBJTkcKK1BST1bEjEkgSk9WR0VOCitQUk9WxIxJIFZFUkEKK1BSUEEgQU7EkEEKK1BSUEEgR09TUEEKK1BSUEEgTEFaQVIKK1BSUEEgTUFSR0lUQQorUFJQQSBNSUxPVkFOCitQUlBBIFZFTEpLTworUFJQQSBaQUdPUktBCitQUlBJxIYgQUxFS1NBTkRBUgorUFJQScSGIEFMRUtTQU5EQVIKK1BSUEnEhiBBTEVLU0FOREFSCitQUlBJxIYgTUFSSUpBTkEKK1BSUEnEhiBOSUtPTEEKK1BSUEnEhiBSQURPVkFOCitQUlNLQUxPIEJMQUdPCitQUlNUT0pFVknEhiBHT1JBTgorUFJTVE9KRVZJxIYgVk9KSVNMQVYKK1BSVElOQSBCUkFOS08KK1BSVcW9QVJFViBUQVRKQU5BCitQUlVEQU4txJBVUknFoEnEhiBSQURPSktBIERSCitQUlVHScSGIExKVUJPTUlSCitQUlVHScSGIFZPSklTTEFWCitQUlVHSU5JxIYgTEpVQklDQQorUFJVTknEhiBKT1ZBTgorUFJVU0lOQSBEUkFHTworUFJVU0lOQSBJTElKQQorUFJVU0lOQSBNQVJHSVRBCitQUlVTSU5BIE1JTEFOCitQUlVTSU5BIFZMQVRLTworUFJWQU5PViBCUkFOSVNMQVYKK1BSVkFOT1YgREFSSU5LQQorUFJWQU5PViBESVZOQQorUFJWQU5PViBNSUxPxaAKK1BSVkFOT1YgVkxBRElNSVIKK1BSVkFOT1ZJxIYgTUlMRVZBCitQU09EQVJPViBCUkFOS08KK1BTT0RPUk9WIE1BSkEKK1BTT0RPUk9WIFNQQVNPSkUKK1BTT0RPUk9WIFRBTUFSQQorUFRJxIxBUiDEkFVSQQorUFRJxIxBUiBNSUxBTgorUFXFoEFDIEJSQU5LTworUFXFoEFDIEpFTEVOS08KK1BVxaBBQyBNSUxFTkEKK1BVxaBBQyBNSUxFTkEKK1BVxaBBUkEgxJBPUsSQRQorUFXFoEFSQSBCT8W9SURBUgorUFXFoEFSQSBEVcWgQU4KK1BVxaBBUkEgSkVMRU5BCitQVcWgQVJBIE1JTElWT0oKK1BVxaBBUkEgTUlSS08KK1BVxaBBUkEgTUlST1NMQVYKK1BVxaBBUkEgUkFETUlMQQorUFXFoEVMSknEhiBKRUxFTkEKK1BVxaBFTkpBSyBNQVJJSkEKK1BVxaBJxIYgRFJBR09MSlVCCitQVcWgScSGIERVxaBBTgorUFXFoEnEhiBFTUlMCitQVcWgScSGIEdPUkFOCitQVcWgScSGIEpPVkFOCitQVcWgScSGIExKVUJJTktPCitQVcWgScSGIE1JTEVOQQorUFXFoEnEhiBNSUxJQ0EKK1BVxaBJxIYgTUlMSVZPSgorUFXFoEnEhiBNSUxPxaAKK1BVxaBJxIYgTklLT0xBCitQVcWgScSGIE9CUkFECitQVcWgScSGIFBBVkxFCitQVcWgScSGIFNBVkEKK1BVxaBJxIYgU0FWQQorUFXFoEnEhiBTT0ZJSkEKK1BVxaBJxIYgU1RFVkFOCitQVcWgScSGIFZFUklDQQorUFXFoEnEhiBWRVJJQ0EKK1BVxaBJxIYgWkFHT1JLQQorUFXFoElCUksgQ1ZFVEtPCitQVcWgSUJSSyBWQVNBCitQVcWgSU4gTUlSSkFOQQorUFXFoElOIE1JUk9TTEFWCitQVcWgSU4gTUlST1NMQVYKK1BVxaBJTiBWTEFEQQorUFXFoEtBxaAgxJBVUkEKK1BVxaBLQcWgIMSQVVJBCitQVcWgS0HFoCBDSUxBCitQVcWgS0HFoCBKT8W9RUYKK1BVxaBLQcWgIEpPQUtJTQorUFXFoEtBxaAgSlVMSUpBTgorUFXFoEtBxaAgTUlIQUpMTworUFXFoEtBxaAgTUlMRU5BCitQVcWgS0HFoCBNSVJPU0xBVgorUFXFoEtBxaAgT0xFTkEKK1BVxaBLQcWgIE9OVUZSSUpFCitQVcWgS0HFoCBQRVRBUgorUFXFoEtBxaAgUk9aQUxJSkEKK1BVxaBLQcWgIFNURVZBTgorUFXFoEtBxaAgVkVSQQorUFXFoEtBxaAgVkxBRElNSVIKK1BVxaBLQcWgIFZMQURJTUlSCitQVcWgS0FSIEpPVklDQQorUFXFoEtBUiBTVEVWQQorUFXFoEtBUiBWT0pJU0xBVgorUFXFoEtBUkVWScSGIEpPVkFOS0EKK1BVxaBLQVJFVknEhiBTVkVUSVNMQVYKK1BVxaBLQVJJxIYgQU5BCitQVcWgS0FSScSGIElWQU4KK1BVxaBLQVJJxIYgSlVSRQorUFXFoEtBUknEhiBNQVJJSkEKK1BVxaBLQVJPViBEQU5JTEtBCitQVcWgS0FST1YgREFOSUxLQQorUFXFoEtBUk9WIE1JTEFOCitQVcWgS0FST1YgWk9SQQorUFXFoEtPVknEhiBBTsSQRUxLTworUFXFoFRSScSGIE1JTEFOCitQVcWgVFJJxIYgU1BBU09KRQorUFXFvS1FVknEhiBPTEdBCitQVcW9ScSGIFZFUkEKK1BVxJBBIExFUE9TQVZBCitQVUHEjCBTVkVUSVNMQVYKK1BVQcSMIFNWRVRPWkFSCitQVUHEjEEgVkVMSktPIERSCitQVUNBUiDEkFVSTworUFVDQVIgRFXFoEFOCitQVUNBUiBNSUxJQ0EKK1BVQ0FSIFNURVZPCitQVUNBUiBWQVNJTElKRQorUFVDQVIgVkFTTworUFVDQVIgWkRSQVZLTworUFVDQVJFVknEhiDFvUlWS08KK1BVQ0FSRVZJxIYgQk9TSUxKS0EKK1BVQ0FSRVZJxIYgR09KS08KK1BVQ0FSRVZJxIYgSElMREEKK1BVQ0FSRVZJxIYgSkVMQQorUFVDQVJFVknEhiBOT1ZBSworUFVDQVJFVknEhiBTT0ZJSkEKK1BVQ09WU0tJIMSQVVJPCitQVURBUiBEQU5JTE8KK1BVREFSIEdPSktPCitQVURBUiBSQUpLTworUFVEQVIgUkFOS08KK1BVREFSIFJBTktPCitQVURBUiBSQU5LTworUFVEQVIgUkFUS08KK1BVREFSIFNMT0JPREFOCitQVURBUiBTVEVWQU4KK1BVREFSIFpEUkFWS08KK1BVREnEhiBJTElKQQorUFVEScSGIEpPWkEKK1BVRFJMSkEgQlJBTktPCitQVUdBUiBBTsSQRUxLQQorUFVIQcSMQSBTVEVWTworUFVIQUxBSyBCRVJUQQorUFVIQUxBSyBMQVNMTyBEUiBMRUtBUgorUFVIQUxBSyBTVEVWQU4KK1BVSEFOIE9TS0FSCitQVUhBTknEhiBURVJFWkEKK1BVSEFSIERVxaBBTgorUFVIQVIgRlJBTkMKK1BVScSGIMSQT1LEkEUKK1BVScSGIFJBRE9TTEFWCitQVUpBIEZMT1JJTgorUFVKScSGIE1JTElWT0oKK1BVSknEhiBNSUxPxaAKK1BVSknEhiBOQURFxb1EQQorUFVKScSGIFBFUlNJREEgRElQTCBJTkcKK1BVSknEhiBTQVZBCitQVUpJxIYgU1RFVkFOCitQVUpJTiBMQVpBCitQVUpJTiBSQURFCitQVUpJTiBSQURJVk9KRQorUFVKSU4gU1RFVkFOCitQVUpJTiBWTEFTVEEgRFIKK1BVTEFJIExBSk/FoAorUFVMRVRJxIYgWkRSQVZLTworUFVMScSGIEFOVE9OSUpBCitQVUxJxIYgT0xHQQorUFVMScSGIFJBRE9KS0EKK1BVTElTQUsgRlJBTkpBCitQVUxJU0FLIElMT05LQQorUFVMSVNBSyBKT1ZBTgorUFVMSVNBSyBNSUhBSkxPCitQVUxJU0FLIE5BREXFvURBCitQVUxJU0FLIE5JS09MQQorUFVMSklaRVZJxIYgQU5UVU4gRElQTCBJTkcKK1BVTkRPViBBTkRSRUoKK1BVTkdVTCBKT1ZJQ0EKK1BVTkdVTCBNSVJBCitQVVBBVkFDIMSQT1LEkEUKK1BVUEFWQUMgQlJBTktPCitQVVBBVkFDIEJSQU5LTworUFVQQVZBQyBGUkFOSkEKK1BVUEFWQUMgTUlMQU4KK1BVUEFWQUMgUEVUQVIKK1BVUEFWQUMgU1RBS0EKK1BVUEFWQUMgU1RFVkFOCitQVVBBVkFDIFNUT0pBTgorUFVQQVZBQyBUT0RPUgorUFVQQVZBQyBWRVNOQQorUFVQScSGIFJBRE1JTEEKK1BVUElOIMW9SVZBTgorUFVQT1ZBQyBETUlUQVIKK1BVUE9WQUMgRFXFoEFOCitQVVBPVkFDIExVS0EKK1BVUE9WQUMgTUlMT8WgCitQVVBPVkFDIE1JTE/FoAorUFVQT1ZBQyBTVkVUTEFOQQorUFVQT1ZBQyBUT0RPUgorUFVQT1ZJxIYgTEpVQk9NSVIKK1BVUkHEhiDFvUlWS08KK1BVUkHEhiBCUkFOS08KK1BVUkHEhiBFUsW9RUJFVAorUFVSQcSGIEpPVkFOCitQVVJBxIYgTEFaQVIKK1BVUkHEhiBNQUdEQQorUFVSQcSGIE1JTEFESU4KK1BVUkHEhiBNSUxBRElOCitQVVJBxIYgTUlMRU5LTworUFVSQcSGIE1JUk9TTEFWCitQVVJBxIYgTkFEQQorUFVSQcSGIE9MR0EKK1BVUknFoEnEhiDEjEVETworUFVSScWgScSGIFNWRVRMQU5BCitQVVJJxIYgQkxBTktBCitQVVJJxIYgQk/FvU8KK1BVUknEhiBESUpBTkEKK1BVUknEhiBEUkFHQU4KK1BVUknEhiBEUkFHSUNBCitQVVJJxIYgTUlMQU4KK1BVUknEhiBTTE9CT0RBTgorUFVSScSGIFpPUkEKK1BVUktPViBWRVNFTElOCitQVVJLT1ZJxIYgTEpJTEpBTkEKK1BVUlRJxIYgTklLT0xBCitQVVNUQUkgSU1SRQorUFVTVEFJIEpFTkUKK1BVU1RBSknEhiBCUkFOS0EKK1BVU1RBSknEhiBSQURBCitQVVNUQUpJxIYgVlVLSUNBCitQVVNUSSBKT1NJUAorUFVUQVJJxIYgSk9WQU4KK1BVVEnEhiDFvUlWQU5BCitQVVRJxIYgS0FUSUNBCitQVVRJxIYgTElWSUpBCitQVVRJxIYgU0xPQk9EQU4KK1BVVEnEhiBTVkVUSVNMQVYKK1BVVEnEhiBaT1JBTgorUFVUTklLIEFMRUtTQU5EQVIKK1BVVE5JSyBBTEVLU0FOREFSCitQVVROSUsgQk9SSVNMQVYKK1BVVE5JSyBCUkFOS08KK1BVVE5JSyBEQU5JTEtBCitQVVROSUsgRElNSVRSSUpFCitQVVROSUsgR0VSVFJVREEKK1BVVE5JSyBHT1JBTgorUFVUTklLIElWQU4KK1BVVE5JSyBKRUxFTkEKK1BVVE5JSyBLQVRJQ0EKK1BVVE5JSyBLU0VOSUpBCitQVVROSUsgTEpVQklDQQorUFVUTklLIE1JTEFOCitQVVROSUsgTUlMQU4KK1BVVE5JSyBNSUxFTkEKK1BVVE5JSyBNSUxPUkFECitQVVROSUsgTkVWRU5LQQorUFVUTklLIFBBSk8KK1BVVE5JSyBQRVRBUgorUFVUTklLIFBFVEFSCitQVVROSUsgUkFERQorUFVUTklLIFJBRE9NSVIKK1BVVE5JSyBSQURPVkFOCitQVVROSUsgU0xPQk9EQU4gRElQTCBJTkcKK1BVVE5JSyBTTkXFvUFOQQorUFVUTklLIFNURUZBTklKQQorUFVUTklLIFNURVZBTgorUFVUTklLIFNURVZBTgorUFVUTklLLVVSQcSMIFJFTkFUQQorUFVUTklLIFZMQURJTUlSIERSCitQVVROSUsgVkxBRElNSVIKK1BVVE5JSyBaT1JBTgorUFVUTklLT1ZJxIYgSVZBTgorUFVUTklLT1ZJxIYgTUlMRU5BCitQVVROSUtPVknEhiBQSVJPxaBLQQorUFVWQcSMQSBMSklMSkFOQQorUFVWQUxJxIYgS0FUSUNBCitQVVpJxIYgQklMSkFOQQorUFVaScSGIEJPxaBLTworUFVaScSGIEJPU0EKK1BVWknEhiBEUkFHT01JUgorUFVaScSGIFNBVkEKK1BVWknEhiBWRUxKS08KK1BVWklHQcSGQSBLUklTVElOQQorUkHEjEnEhiBBUkFOxJBFTAorUkHEjEnEhiBMRVBPU0FWQQorUkHEjEnEhiBNSUxPxaAKK1JBxIxJxIYgTUlST1NMQVYKK1JBxIxJxIYgTkFEQQorUkHEjEnEhiBSQU5LTworUkHEjEnEhiBTQcWgQQorUkHEjEnEhi1TQVZJTiBaT1JJQ0EKK1JBxIxJxIYgU1RPSkFOCitSQcSMScSGIFRPTUlTTEFWCitSQcSMScSGIFZFUkEKK1JBxIxJxIYgWkRSQVZLTworUkHFoMSMQU5JTiBCUkFOSVNMQVYKK1JBxaDEjEFOSU4gQlJBTklTTEFWCitSQcWgxIxJxIYgTkVIUlUKK1JBxaBBIERPSk5BCitSQcWgQUpTS0kgRFXFoEFOCitSQcWgQUpTS0kgVkVST1NMQVYKK1JBxaBFVEEgREFORQorUkHFoEVUQSBNSU9EUkFHCitSQcWgRVRBIE1JUkpBTkEKK1JBxaBFVEEgTklLT0xBCitSQcWgRVRBIFBFVEFSCitSQcWgRVRBIFNURVZBCitSQcWgRVRBIFRPTUEKK1JBxaBFVEEgWkRSQVZLTworUkHFoEVWScSGIMW9QVJLTworUkHFoEVWScSGIMW9RUxKS08KK1JBxaBFVknEhiBNSU9EUkFHCitSQcWgScSGIEJPxb1JREFSIERSCitSQcWgScSGIERJTUlUUklKRQorUkHFoEnEhiBEVcWgSUNBCitSQcWgScSGIElCT0pLQQorUkHFoEnEhiBJR05KQVQKK1JBxaBJxIYgSUxJSkEKK1JBxaBJxIYtS09QxIxPSyBOQURBCitSQcWgScSGIExBWkFSCitSQcWgScSGIE1BTkRBCitSQcWgScSGIE1BUklKQQorUkHFoEnEhiBOQURFxb1EQQorUkHFoEnEhiBOSUtPTEEKK1JBxaBJxIYgUEFVTgorUkHFoEnEhiBQRVRBUiBNUiBJTkcKK1JBxaBJxIYgU01JTEpBCitSQcWgScSGIFNUT0pBTgorUkHFoEnEhiBVUk/FoAorUkHFoEnEhiBWRVNOQQorUkHFoElESSBET1JPVEVKQQorUkHFoElESSBTTE9CT0RBTktBCitSQcWgSUpPVkFOIFJBRE1JTEEKK1JBxaBJVEkgQkFKUkFNCitSQcWgSVRJIEhBVkEKK1JBxaBJVEkgSU1FUgorUkHFoEtPViBCUkFOS08KK1JBxaBLT1YgQlJBTktPCitSQcWgS09WIERBTklDQQorUkHFoEtPViBNQVJJSkEKK1JBxaBLT1YgU01JTEpLQQorUkHFoEtPVknEhiDEkE9SxJBFCitSQcWgS09WScSGIMSQT1LEkEUKK1JBxaBLT1ZJxIYgREFSSU5LQQorUkHFoEtPVknEhiBEUkFHQU4KK1JBxaBLT1ZJxIYgRFJBR09MSlVCCitSQcWgS09WScSGIERSQUdPU0xBVkEKK1JBxaBLT1ZJxIYgR09SREFOQQorUkHFoEtPVknEhiBNSUxBTgorUkHFoEtPVknEhiBNSUxJQ0EKK1JBxaBLT1ZJxIYgTUlPRFJBRworUkHFoEtPVknEhiBNSVJKQU5BCitSQcWgS09WScSGIE1JUkpBTkEKK1JBxaBLT1ZJxIYgTUxBREVOCitSQcWgS09WScSGIFJBRE9TQVYKK1JBxaBLT1ZJxIYgU0xPQk9EQU4KK1JBxaBLT1ZJxIYgU1JFxIZLTworUkHFoEtPVknEhiBTVEVWQU4KK1JBxaBLT1ZJxIYgVkVSQQorUkHFoEtPVknEhiBWTEFESU1JUgorUkHFoE9WScSGIFJBRE9WQU4KK1JBxaBPVknEhiBWT0pJU0xBVgorUkHFvU5BVE9WScSGIFJBRElWT0oKK1JBxJBFTEnEhiBHT1JEQU5BCitSQcSQRUxJxIYgTUlMQU4KK1JBxJBFTk9WScSGIMW9RUxKS08KK1JBxJBFTk9WScSGIMW9RUxKS08KK1JBxJBFTk9WScSGIEJPxb1PCitSQcSQRU5PVknEhiBCT1JJUworUkHEkEVOT1ZJxIYgQk9TQQorUkHEkEVOT1ZJxIYgQlJBTktPCitSQcSQRU5PVknEhiBEUkFHQQorUkHEkEVOT1ZJxIYgRFXFoEFOCitSQcSQRU5PVknEhiBEVcWgQU4KK1JBxJBFTk9WScSGIEtBUkxPCitSQcSQRU5PVknEhiBNQU5FCitSQcSQRU5PVknEhiBNSUxBTktPCitSQcSQRU5PVknEhiBNSUxFVkEKK1JBxJBFTk9WScSGIE1JTEtBCitSQcSQRU5PVknEhiBNSUxLQQorUkHEkEVOT1ZJxIYgTkVCT0rFoEEKK1JBxJBFTk9WScSGIE5JS09MQQorUkHEkEVOT1ZJxIYgU09GSUpBCitSQcSQRU5PVknEhiBVUk/FoAorUkHEkEVOT1ZJxIYgVkVMSktPCitSQcSQRU5PVknEhiBaT1JJQ0EKK1JBxJBFVknEhiBTQVZPCitSQUJBRMW9SUpFVlNLSSBQQVVMQQorUkFCQVRJxIYgTUlMT8WgCitSQUJJIEpPxb1FRgorUkFCSUpBQyBTUkJBCitSQUJSRU5PVknEhiBNQVJJSkEKK1JBQlJFTk9WScSGIFJBRElTQVYKK1JBQlJFTk9WScSGIFpMQVRJTktBCitSQUMgxaBBTkRPUgorUkFDIEFMQkVSVAorUkFDIEFOQQorUkFDIEJSVU5PCitSQUMgRURNVU5ECitSQUMgRkVSRU5DCitSQUMgRkVSRU5DCitSQUMgRlJBTkpBCitSQUMgR0FCUklKRUwKK1JBQyBKQU5PxaAKK1JBQyBKRUxJU0FWRVRBCitSQUMgSk9WQU4KK1JBQyBMSklMSkFOQQorUkFDIExKVUJPTUlSCitSQUMgTUFSSUpBCitSQUMgTUFSSUpBCitSQUMgTUVMQU5JSkEKK1JBQyBQQUwKK1JBQyBSVURPTEYKK1JBQy1TQUJPIExBSk/FoAorUkFDIFNURVZBTgorUkFDIFRFT0RPUgorUkFDIFZMQURJTUlSCitSQUMgWkxBVEEKK1JBQ0EgxJBVUk8KK1JBQ0EgRFJBR0FOCitSQUNBIERSQUdBTgorUkFDQSBEUkFHQU4KK1JBQ0EgRFXFoEFOCitSQUNBIEdPUkRBTkEgRFIKK1JBQ0EgTUlSS08KK1JBQ0EgUEVUQVIKK1JBQ0EgUlXFvUlDQQorUkFDScSGIMSMRURPTUlSCitSQUNJxIYgQlJBTktPCitSQUNJxIYgRFXFoEFOCitSQUNJxIYgTUlMQU4KK1JBQ0nEhiBNSUxFTktPCitSQUNJxIYgTUlMSUNBCitSQUNJxIYgTUlMSUNBCitSQUNJxIYgTUlMT1JBRAorUkFDScSGIE1JUkpBTkEKK1JBQ0nEhiBORURFTEpLTworUkFDScSGIFJBREVOS08KK1JBQ0nEhiBTTE9CT0RBTgorUkFDScSGIFNMT0JPREFOCitSQUNJxIYgVkVMSktPCitSQUNJxIYgWkRSQVZLTworUkFDScSGIFpEUkFWS08KK1JBQ0nEhiBaT1JBTgorUkFDS09WIERBUklOS0EKK1JBQ0tPViBEUkFHT1NMQVYKK1JBQ0tPViBLQVRJQ0EKK1JBQ0tPViBMQVpBUgorUkFDS09WIE1JTElDQQorUkFDS09WIE1JTElWT0oKK1JBQ0tPViBNSUxPxaAKK1JBQ0tPViBNSVJPU0xBVgorUkFDS09WIE1JUk9TTEFWCitSQUNLT1YgTkFUQcWgQQorUkFDS09WIE9MR0EKK1JBQ0tPViBSQURPSktBCitSQUNLT1YgUkFET01JUgorUkFDS09WIFJBRE9TTEFWCitSQUNLT1YgU0FWQQorUkFDS09WIFNMT0JPREFOCitSQUNLT1YgU1LEkEFOCitSQUNLT1YgU1LEkEFOCitSQUNLT1YgU1LEkEFOCitSQUNLT1YgWkxBVElDQQorUkFDS09WScSGIMSQT1LEkEUKK1JBQ0tPVknEhiBEUkFHT01JUgorUkFDS09WScSGIERVxaBBTgorUkFDS09WScSGIExBWkFSCitSQUNLT1ZJxIYgTUlMQU4KK1JBQ0tPVknEhiBNSUxPxaAKK1JBQ0tPVknEhiBNSVJKQU5BCitSQUNMRVIgxJBFUsSQCitSQUNMRVIgTUFSR0lUCitSQUNPIE1JxIZPCitSQUNPIFJBVEtPCitSQUQgUFJFRFJBRworUkFEQcWgSU4gRUxWSVJBCitSQURBxaBJTiBWTEFESU1JUgorUkFEQcWgSU4gWlZFWkRBTgorUkFEQUsgxJBPUsSQRQorUkFEQUsgxJBVUklDQQorUkFEQUsgRFXFoEFOCitSQURBSyBEVcWgQU4KK1JBREFLIEdBVlJBCitSQURBSyBKRUxJU0FWRVRBCitSQURBSyBKT1ZBTktBCitSQURBSyBKT1ZBTgorUkFEQUsgS09WSU5LQQorUkFEQUsgTEFaQVIKK1JBREFLIExBWkFSCitSQURBSyBMSlVCSUNBCitSQURBSyBMSlVCSUNBCitSQURBSyBMVUtBCitSQURBSyBNSUxBRElOS0EKK1JBREFLIE1JUk9TTEFWCitSQURBSyBPTEdBCitSQURBSyBSQURNSUxBCitSQURBSyBTTEFWS08KK1JBREFLIFpPUkEKK1JBREFLT1ZJxIYgxb1JVkFOCitSQURBS09WScSGIMSQT1LEkEUKK1JBREFLT1ZJxIYgxJBPUsSQRQorUkFEQUtPVknEhiDEkFVSQcSQCitSQURBS09WScSGIEFMRUtTQU5EQVIKK1JBREFLT1ZJxIYgQU5BIERSCitSQURBS09WScSGIEJSQU5LTworUkFEQUtPVknEhiBCUkFOS08KK1JBREFLT1ZJxIYgQlJBTktPCitSQURBS09WScSGIERBTUpBTgorUkFEQUtPVknEhiBEQVJLQQorUkFEQUtPVknEhiBESU1JVFJJSkUKK1JBREFLT1ZJxIYgRFXFoEFOCitSQURBS09WScSGIERVxaBBTgorUkFEQUtPVknEhiBJTElKQQorUkFEQUtPVknEhiBJTElKQQorUkFEQUtPVknEhiBKRUxFTkEKK1JBREFLT1ZJxIYgSk9WQU4KK1JBREFLT1ZJxIYgSk9WQU4KK1JBREFLT1ZJxIYgSk9WQU4KK1JBREFLT1ZJxIYgSk9WQU4KK1JBREFLT1ZJxIYgTEFaTworUkFEQUtPVknEhiBMSklMSkFOQQorUkFEQUtPVknEhiBNQU5EQQorUkFEQUtPVknEhiBNQU5FCitSQURBS09WScSGIE1JTEFOS08KK1JBREFLT1ZJxIYgTUlMQU4KK1JBREFLT1ZJxIYgTUlMRU5BCitSQURBS09WScSGIE1JTEUKK1JBREFLT1ZJxIYgTUlMRQorUkFEQUtPVknEhiBNSUxPSktBCitSQURBS09WScSGIE1JTE9SQUQKK1JBREFLT1ZJxIYgTUlST1NMQVYKK1JBREFLT1ZJxIYgTkVOQUQKK1JBREFLT1ZJxIYgUEVUQVIKK1JBREFLT1ZJxIYgUkFERQorUkFEQUtPVknEhiBSQURFCitSQURBS09WScSGIFJBSktPCitSQURBS09WScSGIFJVxb1JQ0EKK1JBREFLT1ZJxIYgU0FWQQorUkFEQUtPVknEhiBTTUlMSktBCitSQURBS09WScSGIFRFT0RPUkEKK1JBREFLT1ZJxIYgVkxBRElNSVIKK1JBREFLT1ZJxIYgVkxBRElTTEFWCitSQURBTiBWRUxJTUlSCitSQURBTk9WIEJJTEpBTkEKK1JBREFOT1YgRFJBR09NSVIKK1JBREFOT1YgRFXFoEFOCitSQURBTk9WIEdPU1BBVkEKK1JBREFOT1YgTEpVQk9NSVIgQURWT0tBVAorUkFEQU5PViBMSlVCT01JUgorUkFEQU5PViBNSVJPU0xBVkEKK1JBREFOT1YgTklLT0xBCitSQURBTk9WIE9MSVZFUkEKK1JBREFOT1YgUkFESU5LQQorUkFEQU5PViBSQURJVk9KCitSQURBTk9WIFJBRE9TTEFWCitSQURBTk9WIFZFUklDQQorUkFEQU5PVknEhiDFvUVMSktPCitSQURBTk9WScSGIMSQT1LEkEUKK1JBREFOT1ZJxIYgxJBPUsSQRQorUkFEQU5PVknEhiDEkFVLQQorUkFEQU5PVknEhiBBTEVLU0FOREFSCitSQURBTk9WScSGIEFOxJBFTEtPCitSQURBTk9WScSGIEJPxb1JREFSCitSQURBTk9WScSGIERJTUlUUklKRQorUkFEQU5PVknEhiBEUkFHQU4KK1JBREFOT1ZJxIYgRFJBR0lDQQorUkFEQU5PVknEhiBEUkFHT01JUgorUkFEQU5PVknEhiBEUkFHT01JUgorUkFEQU5PVknEhiBEUkFHVVRJTgorUkFEQU5PVknEhiBHT0pLTworUkFEQU5PVknEhiBJTElKQQorUkFEQU5PVknEhiBKT1ZBTktBCitSQURBTk9WScSGIEpPVkFOCitSQURBTk9WScSGIEpPVkFOCitSQURBTk9WScSGIEpPVkFOCitSQURBTk9WScSGIEtBVEEKK1JBREFOT1ZJxIYgS09WSUxKS0EKK1JBREFOT1ZJxIYgTEpVQk8KK1JBREFOT1ZJxIYgTUFSSUpBCitSQURBTk9WScSGIE1JTEFOS08KK1JBREFOT1ZJxIYgTUlMQU4KK1JBREFOT1ZJxIYgTUlMQU4KK1JBREFOT1ZJxIYgTUlMQU4KK1JBREFOT1ZJxIYgTUlMRU5LTworUkFEQU5PVknEhiBNSUxPxaAKK1JBREFOT1ZJxIYgTUlPRFJBRworUkFEQU5PVknEhiBNSU9EUkFHCitSQURBTk9WScSGIE5FVkVOS0EKK1JBREFOT1ZJxIYgTklLT0xBCitSQURBTk9WScSGIE5JS09MQQorUkFEQU5PVknEhiBPQlJBRAorUkFEQU5PVknEhiBQRVRBUgorUkFEQU5PVknEhiBQRVRBUgorUkFEQU5PVknEhiBSQURJVk9KCitSQURBTk9WScSGIFJBRE9WQU5LQQorUkFEQU5PVknEhiBSQURPVkFOCitSQURBTk9WScSGIFJBSktPCitSQURBTk9WScSGIFNBxaBBCitSQURBTk9WScSGIFNBVkEKK1JBREFOT1ZJxIYgU09GSUpBCitSQURBTk9WScSGIFNPRklKQQorUkFEQU5PVknEhiBTUkVURU4KK1JBREFOT1ZJxIYgVFJJxaBBCitSQURBTk9WScSGIFZJVE9NSVIKK1JBREFUIE1BUktPCitSQURBVE9WScSGIE1BUklKQQorUkFERUsgQU5EUkHFoAorUkFERUsgTUFSSUpBCitSQURFS0EgxaBURUZLQQorUkFERUtBIERVxaBLTworUkFERUtBIEpPVkFOCitSQURFS0EgTUlMRQorUkFERUtBIE1JTEtBCitSQURFS0EgTklLT0xBCitSQURFS0EgUkFET1ZBTgorUkFERUtJTiBMSlVCSUNBCitSQURFTEnEhiBNSUxBTgorUkFERU7EjEnEhiBKT1NJUAorUkFERU5LT1ZJxIYgxIxFRE9NSVIKK1JBREVOS09WScSGIMW9SVZPSklOCitSQURFTktPVknEhiBCTEHFvUEKK1JBREVOS09WScSGIERSQUdBTgorUkFERU5LT1ZJxIYgTEVQT1NBVkEKK1JBREVOS09WScSGIExKVUJJxaBBCitSQURFTktPVknEhiBNSUxJVk9KRQorUkFERU5LT1ZJxIYgTUlMT1ZBTgorUkFERU5LT1ZJxIYgTUlMT1ZBTgorUkFERU5LT1ZJxIYgTUlPRFJBRworUkFERU5LT1ZJxIYgTkFEQQorUkFERU5LT1ZJxIYgUkFET01JUgorUkFERU5LT1ZJxIYgUkFET1NMQVZBCitSQURFTktPVknEhiBSQVRPTUlSCitSQURFTktPVknEhiBST1pBTElKQQorUkFERU5LT1ZJxIYgU0xPQk9EQU4KK1JBREVOS09WScSGIFRPTUlTTEFWCitSQURFTktPVknEhiBWSVRPTUlSCitSQURFTktPVknEhiBWSkVSQQorUkFERU5PVknEhiBPQlJFTgorUkFERVRBIFNMQVZLTworUkFERVRBIFNWRVRPWkFSCitSQURFVEnEhiBCT8WgS08KK1JBREVUScSGIEJSQU5LTworUkFERVRJxIYgR09SQU4KK1JBREVUScSGIFJBRE9NSVIKK1JBREVUScSGIFZPSklTTEFWCitSQURFVknEhiDEkE9SxJBFCitSQURFVknEhiBHT1JBTgorUkFERVZJxIYgSVZBTgorUkFERVZJxIYgTUlMRVZBCitSQURFVknEhiBNSUxPxaAKK1JBREVWScSGIFZPSklNSVIKK1JBREnEjEVWIEpFTElDQQorUkFEScSMRVYgTUFSSUpBIERSCitSQURJxIxFVknEhiBSQURNSUxBCitSQURJxIxFVknEhiBTQVZBCitSQURJxIxFVknEhiBaT1JBTgorUkFEScSMScSGIFNNSUxKQU5BCitSQURJxaBJxIYgxb1JVktPCitSQURJxaBJxIYgxJBPUsSQRQorUkFEScWgScSGIEFOxJBFTEtBCitSQURJxaBJxIYgQklMSkFOQQorUkFEScWgScSGIEJPUklTTEFWCitSQURJxaBJxIYgQk9SSVNMQVYKK1JBREnFoEnEhiBCUkFOSVNMQVYKK1JBREnFoEnEhiBCUkFOS0EKK1JBREnFoEnEhiBCUkFOS08KK1JBREnFoEnEhiBEUkFHScWgQQorUkFEScWgScSGIERSQUdVVElOCitSQURJxaBJxIYgRFXFoEFOCitSQURJxaBJxIYgRFXFoElDQQorUkFEScWgScSGIElMSUpBCitSQURJxaBJxIYgSkVGVEEKK1JBREnFoEnEhiBKRUxFTkEKK1JBREnFoEnEhiBKT1ZBTgorUkFEScWgScSGIEpPVk8KK1JBREnFoEnEhiBLQVRJQ0EKK1JBREnFoEnEhiBMQVpBUgorUkFEScWgScSGIExBWkFSCitSQURJxaBJxIYgTEFaQVIKK1JBREnFoEnEhiBMSklMSkFOQQorUkFEScWgScSGIExKVUJJQ0EKK1JBREnFoEnEhiBNQVJLTworUkFEScWgScSGIE1JTEFOCitSQURJxaBJxIYgTUlMRU5BCitSQURJxaBJxIYgTUlMRU5LTworUkFEScWgScSGIE1JTElDQQorUkFEScWgScSGIE1JTElKQU5BCitSQURJxaBJxIYgTUlMVVRJTgorUkFEScWgScSGIE1JUk9TTEFWQQorUkFEScWgScSGIE1MQURFTgorUkFEScWgScSGIE5FTkEKK1JBREnFoEnEhiBOSUtPTEEKK1JBREnFoEnEhiBPQlJBRElOCitSQURJxaBJxIYgT0xJVkVSQQorUkFEScWgScSGIFBFUklDQQorUkFEScWgScSGIFBFUk8KK1JBREnFoEnEhiBQRVJTQQorUkFEScWgScSGIFBFVEFSCitSQURJxaBJxIYgUkFESVZPSgorUkFEScWgScSGIFJBRE1JTEEKK1JBREnFoEnEhiBSQURPSktBCitSQURJxaBJxIYgU0FWRVRBCitSQURJxaBJxIYgU0xPQk9EQU4KK1JBREnFoEnEhiBTVEFOT0pFCitSQURJxaBJxIYgU1RFVkFOCitSQURJxaBJxIYgU1RFVkFOCitSQURJxaBJxIYgU1ZFVE9aQVIKK1JBREnFoEnEhiBUT0RPUgorUkFEScWgScSGIFZMQURJTUlSCitSQURJxaBJxIYgVkxBRElNSVIKK1JBREnFoEnEhiBaT1JBTgorUkFEScSGIMSMRURBCitSQURJxIYgxb1FTEpLTworUkFEScSGIMW9SVZBTgorUkFEScSGIMSQT1LEkEUKK1JBREnEhiDEkE9SxJBFCitSQURJxIYgQU7EkEEKK1JBREnEhiBBTsSQRUxLTworUkFEScSGIEFORFJJSkEgRFIKK1JBREnEhiBBTkdFTElOQQorUkFEScSGIEFOS0lDQQorUkFEScSGIEFOVEUKK1JBREnEhiBCT8WgS08KK1JBREnEhiBCUkFOS0EKK1JBREnEhiBET0JSSVZPSkUKK1JBREnEhiBEUkFHT0xKVUIKK1JBREnEhiBEVcWgQU4KK1JBREnEhiBEVcWgQU4KK1JBREnEhiBGUkFOSkEKK1JBREnEhiBGUkFOSk8KK1JBREnEhiBHT0pLTworUkFEScSGIEhSQU5JU0xBVgorUkFEScSGIElMSUpBCitSQURJxIYgSUxJSkEKK1JBREnEhiBJVkFOS0EKK1JBREnEhiBKT1NJUAorUkFEScSGIEpPVkFOCitSQURJxIYgTEFaQVIKK1JBREnEhiBMSlVCSUNBCitSQURJxIYgTEpVQk9NSVIKK1JBREnEhiBNQVJJSkEKK1JBREnEhiBNSUpBCitSQURJxIYgTUlMQU5LTworUkFEScSGIE1JTEFOCitSQURJxIYgTUlMQU4KK1JBREnEhiBNSUxFCitSQURJxIYgTUlMSVZPSgorUkFEScSGIE1JTElWT0oKK1JBREnEhiBNSUxLQQorUkFEScSGIE1JTFVUSU4gRElQTCBJTkcKK1JBREnEhiBNSVJKQU5BCitSQURJxIYgTUlSS08KK1JBREnEhiBNTEFERU4KK1JBREnEhiBORURFTEpLTworUkFEScSGIE5FTkFECitSQURJxIYgUEFWTEUKK1JBREnEhiBQRVRBUgorUkFEScSGIFBFVEFSCitSQURJxIYgUEVUQVIKK1JBREnEhiBQRVRBUgorUkFEScSGIFBFVEFSCitSQURJxIYtUE9QT1ZJxIYgR09SREFOQQorUkFEScSGIFBSRURSQUcKK1JBREnEhiBSQURBCitSQURJxIYgUkFERQorUkFEScSGIFJPQkVSVAorUkFEScSGIFNBVkEKK1JBREnEhiBTTEFWScWgQQorUkFEScSGIFNMQVZLTworUkFEScSGIFNPRklKQQorUkFEScSGIFNUQU5LTworUkFEScSGIFNURVZBTgorUkFEScSGIFNURVZBTgorUkFEScSGIFNUT0pBTgorUkFEScSGIFRJSE9NSVIKK1JBREnEhiBUUklWQQorUkFEScSGIFZFTElOS0EKK1JBREnEhiBWTEFESU1JUgorUkFEScSGIFpEUkFWS08KK1JBREnEhiBaT1JBTgorUkFEScSGIFpPUkEKK1JBREnEhiBaT1JJQ0EKK1JBRElCUkFUT1ZJxIYgTUlMSUNBCitSQURJQlJBVE9WScSGIE1PTcSMSUxPCitSQURJSkVMSkFDIEpFTEVOQQorUkFESUpFTEpBQyBNT03EjElMTworUkFESU4gxb1JVkFOCitSQURJTiBBTEVLU0FOREFSCitSQURJTiBBTlRPTklKQQorUkFESU4gQlJBTklTTEFWCitSQURJTiBCUkFOSVNMQVYKK1JBRElOIEJSQU5LTworUkFESU4gRFJBR09KTEEKK1JBRElOIEhSSVNUSU5BCitSQURJTiBJVkFOS0EKK1JBRElOIEpPVkFOS0EKK1JBRElOIExBWkFSCitSQURJTiBMSlVCT01JUiBEUiBMRUtBUgorUkFESU4gTEpVQk9NSVIKK1JBRElOIE1BS1NJTUlMSUpBTgorUkFESU4gTUFSQQorUkFESU4gTUlMQURJTktBCitSQURJTiBNSUxBTgorUkFESU4gTUlMQU4KK1JBRElOIE1JTEFOCitSQURJTiBNSUxBTgorUkFESU4gTUlMQU4KK1JBRElOIE1JTEVOQQorUkFESU4gTUlMS0EKK1JBRElOIE1JUkEKK1JBRElOIE1JUk9TTEFWCitSQURJTiBNTEFERU4KK1JBRElOIE5BREEKK1JBRElOIE5JS09MQSBESVBMIElORworUkFESU4gUEVUQVIgRFIKK1JBRElOIFJBREEKK1JBRElOIFJBRE9TTEFWCitSQURJTiBTTEFWSU5LQQorUkFESU4gU0xBVktPCitSQURJTiBTVEVWQU4KK1JBRElOIFNURVZBTgorUkFESU4gU1ZFVElTTEFWCitSQURJTiBUT01JU0xBVgorUkFESU4gVkVTRUxJTgorUkFESU4gVkxBRElNSVIKK1JBRElOIFpMQVRPSkUKK1JBRElOIFpPUkFOS0EKK1JBRElOIFpPUkEKK1JBRElOT1ZJxIYgxJBPUsSQRQorUkFESU5PVknEhiBCVURJTUlSCitSQURJTk9WScSGIERJTUlUUklKRQorUkFESU5PVknEhiBEVcWgS08KK1JBRElOT1ZJxIYgSUxJSkEKK1JBRElOT1ZJxIYgTEFaTworUkFESU5PVknEhiBNQU5PSkxPCitSQURJTk9WScSGIE1BUklKQQorUkFESU5PVknEhiBNSUxJQ0EKK1JBRElOT1ZJxIYgTUlMSVZPSgorUkFESU5PVknEhiBNSUxPUkFECitSQURJTk9WScSGIE1JUkEKK1JBRElOT1ZJxIYgTUxBREVOCitSQURJTk9WScSGIE1PTcSMSUxPIERJUEwgUFJBVk5JSworUkFESU5PVknEhiBNT03EjElMTworUkFESU5PVknEhiBOSUtPTEEKK1JBRElOT1ZJxIYgUkFET1NMQVYKK1JBRElOT1ZJxIYgU0lMVkFOQQorUkFESU5PVknEhiBTVEVWQU4KK1JBRElOT1ZJxIYgVlVLQcWgSU4KK1JBRElTQVZMSkVWScSGIMW9SVZPUkFECitSQURJU0FWTEpFVknEhiBCT0dEQU4KK1JBRElTQVZMSkVWScSGIEJPUklWT0pFCitSQURJU0FWTEpFVknEhiBJVkFOCitSQURJU0FWTEpFVknEhiBNSUxPU0FWCitSQURJU0FWTEpFVknEhiBTTEFWSUNBCitSQURJU0FWTEpFVknEhiBTVEFOScWgQQorUkFESVNBVkxKRVZJxIYgWk9SSUNBIERSCitSQURJVk9KxaBBIE1JTE/FoAorUkFESVZPSsWgQSBTTUlMSkEKK1JBRElWT0pBQyBET0JSSUxBCitSQURJVk9KQUMgRFJBR0EKK1JBRElWT0pBQyBEUkFHT0xKVUIKK1JBRElWT0pBQyBKT1ZBTgorUkFESVZPSkFDIE5BVEFMSUpBCitSQURJVk9KRVYgUkFESU5LQQorUkFESVZPSkVWScSGIEFOxJBFTEtPCitSQURJVk9KRVZJxIYgQk9HT0xKVUIKK1JBRElWT0pFVknEhiBCUkFOSVNMQVYKK1JBRElWT0pFVknEhiBCUkFOS08KK1JBRElWT0pFVknEhiBCUkFUSU1JUgorUkFESVZPSkVWScSGIERSQUdBTiBNUgorUkFESVZPSkVWScSGIERSQUdJxaBBCitSQURJVk9KRVZJxIYgRFJBR09NSVIKK1JBRElWT0pFVknEhiBEUkFHT1NMQVYKK1JBRElWT0pFVknEhiBEVcWgQU4gRElQTCBPRUMKK1JBRElWT0pFVknEhiBEVcWgQU5LQQorUkFESVZPSkVWScSGIElEQQorUkFESVZPSkVWScSGIEpBTktPCitSQURJVk9KRVZJxIYgSkVMQQorUkFESVZPSkVWScSGIEpPVkFOS0EKK1JBRElWT0pFVknEhiBKT1ZBTgorUkFESVZPSkVWScSGIExKVUJJQ0EKK1JBRElWT0pFVknEhiBMSlVCT0RSQUcKK1JBRElWT0pFVknEhiBMSlVCT01JUgorUkFESVZPSkVWScSGIExKVUJPTUlSCitSQURJVk9KRVZJxIYgTFVLQQorUkFESVZPSkVWScSGIExVS0EKK1JBRElWT0pFVknEhiBNSUxBTgorUkFESVZPSkVWScSGIE1JTEEKK1JBRElWT0pFVknEhiBNSUxFCitSQURJVk9KRVZJxIYgTUlMSVZPSkUKK1JBRElWT0pFVknEhiBNSUxPTUlSCitSQURJVk9KRVZJxIYgTUlSSkFOQQorUkFESVZPSkVWScSGIE1MQURFTgorUkFESVZPSkVWScSGIE1PTcSMSUxPCitSQURJVk9KRVZJxIYgTkXEkE8KK1JBRElWT0pFVknEhiBORU1BTkpBCitSQURJVk9KRVZJxIYgTklLT0xBCitSQURJVk9KRVZJxIYgUEFWTEUKK1JBRElWT0pFVknEhiBSQURJxaBBCitSQURJVk9KRVZJxIYgUkFESVZPSkUKK1JBRElWT0pFVknEhiBSQURPxaAKK1JBRElWT0pFVknEhiBSQVRLTworUkFESVZPSkVWScSGIFNJTknFoEEKK1JBRElWT0pFVknEhiBTTE9CT0RBTgorUkFESVZPSkVWScSGIFNMT0JPREFOCitSQURJVk9KRVZJxIYgU0xPQk9EQU4KK1JBRElWT0pFVknEhiBTTE9CT0RBTgorUkFESVZPSkVWScSGIFNURVZBTgorUkFESVZPSkVWScSGIFNUT0pBRElOCitSQURJVk9KRVZJxIYgVE9NSVNMQVYKK1JBRElWT0pFVknEhiBUVUdPTUlSCitSQURJVk9KRVZJxIYgVkVSQQorUkFESVZPSkVWScSGIFZJREEKK1JBRElWT0pFVknEhiBWSURBCitSQURJVk9KRVZJxIYgVlVLSUNBCitSQURJVk9KRVZJxIYgWk9SQU4KK1JBRElWT0pFVknEhiBaT1JBTgorUkFESVZPSktPViDEkE9SxJBFCitSQURJVk9KS09WIEpFTElDQQorUkFESVZPSktPViBNSVJKQU5BCitSQURJVk9KS09WIFJBSktPCitSQURJVk9KS09WIFNBVkEKK1JBRElWT0pLT1YgU1RFVkFOCitSQURMT1ZBxIxLSSBET0JSSU5LQQorUkFETE9WQcSMS0kgU0lOScWgQQorUkFETE9WScSGIE1JTEtBCitSQURNQU4gxaBJTVVOCitSQURNQU4gxaBQSVJPCitSQURNQU4gSVZBTgorUkFETUFOIExFUE9TQVZBCitSQURNQU4gTUlMQU4KK1JBRE1BTiBNSUxFCitSQURNQU4gTUlMSUNBCitSQURNQU4gTUlMT1ZBTgorUkFETUFOIE1JUk9TTEFWCitSQURNQU5JxIYgRVZJQ0EKK1JBRE1BTk9WQUMgTUlMT1ZBTgorUkFETUFOT1ZJxIYgRFJBR0lDQQorUkFETUFOT1ZJxIYgRFXFoEFOS0EKK1JBRE1BTk9WScSGIE1JTFVUSU4KK1JBRE1JTE8gxJBVUk8KK1JBRE1JTE8gTUFSSUpBCitSQURNSUxPIE1JUktPCitSQURNSUxPVknEhiBEVcWgQU5LQQorUkFETUlMT1ZJxIYgTUlMQU4KK1JBRE1JTE9WScSGIE1JTE/FoAorUkFETUlMT1ZJxIYgTUlST1NMQVYKK1JBRE1JTE9WScSGIE5FREVMSktPCitSQURNSUxPVknEhiBSQURFIFBST0ZFU09SCitSQURNSUxPVknEhiBTTEFWT0xKVUIKK1JBRE1JTE9WScSGIFNURVZPCitSQUROScSGIERPQlJJTktBCitSQUROT1YgQUxFS1NBCitSQUROT1YgTEVOS0EKK1JBRE5PViBSQURJVk9KCitSQUROT1YgUkFKS08KK1JBRE5PViBaT1JLQQorUkFETk9WScSGIERSQUdBTgorUkFETk9WScSGIE9MR0lDQQorUkFETk9WScSGIFJBRE9WQU4KK1JBRE5PVknEhiBVUk/FoAorUkFETk9WScSGIFVST8WgCitSQURPxIxBSiBEVcWgQU5LQQorUkFET8SMQUogSUxJSkEKK1JBRE/EjEFKIE1BUkEKK1JBRE/EjEFKIE1JTEtBCitSQURPxIxBSiBORURFTEpLQQorUkFET8SMQUogU0FWS0EKK1JBRE/FoCBCT1JJU0xBVgorUkFET8WgIERBTklDQQorUkFET8WgIERSRU5LQQorUkFET8WgIE1BUlRBCitSQURPxaAgTUlMQU4KK1JBRE/FoCBSVcW9QQorUkFET8WgIFZPSklTTEFWCitSQURPxaAgWk9SQQorUkFET8WgRVZJxIYtxaBUSU1BQyBMSlVCSUNBCitSQURPxaBFVknEhiDEkE9SxJBFCitSQURPxaBFVknEhiBBTsSQRUxLQQorUkFET8WgRVZJxIYgQU5JQ0EKK1JBRE/FoEVWScSGIEFOSUNBCitSQURPxaBFVknEhiBCT8W9SURBUgorUkFET8WgRVZJxIYgQk/FvU8KK1JBRE/FoEVWScSGIEJSQU5JU0xBVgorUkFET8WgRVZJxIYgQlJBTktPCitSQURPxaBFVknEhiBERVNBTktBCitSQURPxaBFVknEhiBEVcWgSUNBCitSQURPxaBFVknEhiBKRUxJU0FWRVRBCitSQURPxaBFVknEhiBKT1ZBTktBCitSQURPxaBFVknEhiBKT1ZBTgorUkFET8WgRVZJxIYgSk9WQU4KK1JBRE/FoEVWScSGIExKSUxKQU5BCitSQURPxaBFVknEhiBMSlVCSUNBCitSQURPxaBFVknEhiBNSUxFTkEKK1JBRE/FoEVWScSGIE1JTEVOQQorUkFET8WgRVZJxIYgTUlMSVZPSgorUkFET8WgRVZJxIYgTUlMT8WgCitSQURPxaBFVknEhiBNSUxVVElOCitSQURPxaBFVknEhiBNSU9EUkFHCitSQURPxaBFVknEhiBNSVJKQU5BCitSQURPxaBFVknEhiBNSVJPU0xBVkEKK1JBRE/FoEVWScSGIE1JVEFSCitSQURPxaBFVknEhiBOSUtPTEEKK1JBRE/FoEVWScSGIE9MSVZFUkEKK1JBRE/FoEVWScSGIFJBREUKK1JBRE/FoEVWScSGIFJBRElWT0oKK1JBRE/FoEVWScSGIFJBRE1JTEEKK1JBRE/FoEVWScSGIFJBRE9WQU4KK1JBRE/FoEVWScSGIFJBRE9WQU4KK1JBRE/FoEVWScSGIFJPRE9MSlVCCitSQURPxaBFVknEhiBTVEFOSUNBCitSQURPxaBFVknEhiBURVJFWkEKK1JBRE/FoEVWScSGIFZMQURJTUlSCitSQURPxaBFVknEhiBaRFJBVktPCitSQURPQyBGUkFOSkEKK1JBRE9DLVNJTUnEhiBTT0ZJSkEKK1JBRE9JxIxJxIYgTUlMT8WgCitSQURPScSMS0kgQlJBTklTTEFWCitSQURPSsSMRVZJxIYgTUlMT8WgCitSQURPSsSMScSGIEJPxb1BIERJUEwgSU5HCitSQURPSsSMScSGIEJPxb1JREFSCitSQURPSsSMScSGIEJPxb1JREFSCitSQURPSsSMScSGIERBTklDQQorUkFET0rEjEnEhiBEQVJJTktBCitSQURPSsSMScSGIERSQUdBTkEKK1JBRE9KxIxJxIYgRFJBR09NSVIKK1JBRE9KxIxJxIYgRFJBR08KK1JBRE9KxIxJxIYgRFXFoEtPCitSQURPSsSMScSGIEdPSktPCitSQURPSsSMScSGIElSRU5BCitSQURPSsSMScSGIElWQU4KK1JBRE9KxIxJxIYgSVZBTgorUkFET0rEjEnEhiBJVkFOCitSQURPSsSMScSGIExKSUpBTkEKK1JBRE9KxIxJxIYgTEpJTEpBTkEKK1JBRE9KxIxJxIYgTUlMQURJTgorUkFET0rEjEnEhiBNSUxBTgorUkFET0rEjEnEhiBNSUxFTktPCitSQURPSsSMScSGIE1JTElDQQorUkFET0rEjEnEhiBNSUxPUkFECitSQURPSsSMScSGIE1JTFVUSU4KK1JBRE9KxIxJxIYgTUlPRFJBRworUkFET0rEjEnEhiBNSVRBUgorUkFET0rEjEnEhiBOQURJQ0EKK1JBRE9KxIxJxIYgTkVOQUQKK1JBRE9KxIxJxIYtT0JFUktORcW9RVYgTUlSSkFOQQorUkFET0rEjEnEhiBQQVZMRQorUkFET0rEjEnEhiBTQVZBCitSQURPSsSMScSGIFNSRVRFTgorUkFET0rEjEnEhiBTVEVWQU4KK1JBRE9KxIxJxIYgVklUT01JUgorUkFET0rEjEnEhiBWTEFEQU4KK1JBRE9KxIxJxIYgVk9KSVNMQVYKK1JBRE9KxIxJTiDEkE9SxJBFCitSQURPSsSMSU4gQU5JQ0EKK1JBRE9KxIxJTiBET0JSSUxBCitSQURPSsSMSU4gRFXFoElDQQorUkFET0rEjElOIEVWSUNBCitSQURPSsSMSU4gSlVMS0EKK1JBRE9KxIxJTiBNQVJBCitSQURPSsSMSU4gTUFSVEEKK1JBRE9KxIxJTiBNSUxBTgorUkFET0rEjElOIE1JTEtBCitSQURPSsSMSU4gTUlMT8WgCitSQURPSsSMSU4gTUlMT1ZBTgorUkFET0rEjElOIE1JUkpBTkEKK1JBRE9KxIxJTiBSQURNSUxBCitSQURPSsSMSU4gUkFET0pLQQorUkFET0rEjElOIFJBRE9WQU4KK1JBRE9KxIxJTiBTTE9CT0RBTgorUkFET0rEjElOIFNSRURPSkUKK1JBRE9KxIxJTiBUT0RPUgorUkFET0rEjElOIFZFTElNSVIKK1JBRE9KxIxJTiBWRVJBCitSQURPSsSMSU4gVkVSQQorUkFET0pBIEJPUklTTEFWCitSQURPSkEgS09WSUxKS0EKK1JBRE9KRVYgSVZBTgorUkFET0pFViBTTEFWS08KK1JBRE9KRVZJxIYgxJBPS0EKK1JBRE9KRVZJxIYgQU7EkEVMS0EKK1JBRE9KRVZJxIYgQk9TSUxKS0EKK1JBRE9KRVZJxIYgREVKQU4KK1JBRE9KRVZJxIYgRFJBR09TTEFWCitSQURPSkVWScSGIEpFTEVOQQorUkFET0pFVknEhiBKRUxJQ0EKK1JBRE9KRVZJxIYgS0FUQQorUkFET0pFVknEhiBLT1NUQQorUkFET0pFVknEhiBNSUxBTgorUkFET0pFVknEhiBNSUxFTktPCitSQURPSkVWScSGIE1JTEUKK1JBRE9KRVZJxIYgTUlMVVRJTgorUkFET0pFVknEhiBNSVJKQU5BCitSQURPSkVWScSGIE1JUk9TQU5EQQorUkFET0pFVknEhiBNT03EjElMTworUkFET0pFVknEhiBOSUtPTEEKK1JBRE9KRVZJxIYgTklLT0xBCitSQURPSkVWScSGIE5JS09MQQorUkFET0pFVknEhiBQRVRSQQorUkFET0pFVknEhiBSQURJU0FWCitSQURPSkVWScSGIFJBRE9TTEFWS0EgRFIKK1JBRE9KRVZJxIYgU0FWQQorUkFET0pFVknEhiBTTEFWS08KK1JBRE9KRVZJxIYgU1JCT0xKVUIKK1JBRE9KRVZJxIYgU1RFVkFOCitSQURPSkVWScSGIFNURVZBTgorUkFET0pFVknEhiBUQVRKQU5BCitSQURPSkVWScSGIFZFUkEKK1JBRE9KRVZJxIYgWk9SQU4KK1JBRE9KScSMScSGIMSQT0tBCitSQURPSknEjEnEhiDEkE9SxJBPCitSQURPSknEjEnEhiBEQU5JTE8KK1JBRE9KScSMScSGIERSQUdBTgorUkFET0pJxIxJxIYgSkVMRU5BCitSQURPSknEjEnEhiBKT1JEQU4KK1JBRE9KScSMScSGIExKVUJPTUlSCitSQURPSknEjEnEhiBNSUxJQ0EKK1JBRE9KScSMScSGIE1JTE9TQVYKK1JBRE9KScSMScSGIE9CUkVOCitSQURPSknEjEnEhiBSQURFCitSQURPSknEjEnEhiBSQURJxaBBCitSQURPSknEjEnEhiBWTEFEQU4KK1JBRE9KScSMScSGIFZPSklOCitSQURPSktPIEpFTEVOQQorUkFET0pLT1ZJxIYgxJBVUsSQSU5LQQorUkFET0pLT1ZJxIYgTEpVQklDQQorUkFET0pLT1ZJxIYgUFJFRFJBRworUkFET0pLT1ZJxIYgUFJWT1NMQVYKK1JBRE9KS09WScSGIFBSVk9TTEFWCitSQURPSktPVknEhiBSQUpLTworUkFET0pLT1ZJxIYgVElIT01JUgorUkFET0pLT1ZJxIYgVE9NSVNMQVYKK1JBRE9KS09WScSGIFRSQUpLTworUkFET0pLT1ZJxIYgVkxBRElNSVIKK1JBRE9NQU4gSkVMRU5BCitSQURPTUFOIExKVUJJQ0EKK1JBRE9NQU4gTUFSVEEKK1JBRE9NQU4gTUlST1NMQVYKK1JBRE9NQU4gWk9SQU4KK1JBRE9NSVIgU1RPSkFOCitSQURPTUlST1ZJxIYgTUlMT1JBRAorUkFET01JUk9WScSGIFZJTktPCitSQURPTUlST1ZJxIYgVlVLU0FOCitSQURPTUlST1ZJxIYgWkxBVEEKK1JBRE9OxIxJxIYgSlVTVUYKK1JBRE9OxIxJxIYgUkFNSVoKK1JBRE9OScSGIMW9RUxKS08KK1JBRE9OScSGIMW9SVZBTgorUkFET05JxIYgxb1JVktPCitSQURPTknEhiBBTEVLU0FOREFSCitSQURPTknEhiBBTsSQRUxLQQorUkFET05JxIYgQkxBR09KRQorUkFET05JxIYgQlJBTklTTEFWCitSQURPTknEhiBCUkFOS08gRElQTCBJTkcKK1JBRE9OScSGIEJSQU5LTworUkFET05JxIYgREFOSUNBCitSQURPTknEhiBEVcWgQU4KK1JBRE9OScSGIEVWR0VOSUpFCitSQURPTknEhiBGRVJFTkMKK1JBRE9OScSGIEhBTkEKK1JBRE9OScSGIEpPVkFOCitSQURPTknEhiBMSlVCT01JUgorUkFET05JxIYgTUFLU0lNCitSQURPTknEhiBNSUxJVk9KRQorUkFET05JxIYgTUlMT1ZBTgorUkFET05JxIYgTUxBREVOCitSQURPTknEhiBOQURBCitSQURPTknEhiBOQURBCitSQURPTknEhiBORURFTEpLTworUkFET05JxIYgTkVOQUQKK1JBRE9OScSGIE5JS09MQQorUkFET05JxIYgTklLT0xBCitSQURPTknEhiBOT1ZJQ0EKK1JBRE9OScSGIFBFVEFSCitSQURPTknEhiBSQURBCitSQURPTknEhiBSQURFCitSQURPTknEhiBSQURJVk9KCitSQURPTknEhiBSQURJVk9KCitSQURPTknEhiBSQURNSUxBCitSQURPTknEhiBSQUpLTworUkFET05JxIYgU09GSUpBCitSQURPTknEhiBWTEFEQQorUkFET05JxIYgVkxBRElNSVIKK1JBRE9OSkEgQU5URQorUkFET05KQU5JTiBNQVJUQQorUkFET05KQU5JTiBQRVRBUgorUkFET05KQU5JTiBWTEFTVElNSVIKK1JBRE9OSknEhiBCUkFOSVNMQVYKK1JBRE9OSknEhiBEUkFHQU4KK1JBRE9OSknEhiBJVkFOCitSQURPTkpJxIYgS0FUQVJJTkEKK1JBRE9OSknEhiBMVUtBCitSQURPTkpJxIYgTUFOREEKK1JBRE9OSknEhiBNSUxBRElOCitSQURPTkpJxIYgTUlMT1ZBTgorUkFET05KScSGIE1JUkpBTkEKK1JBRE9OSknEhiBNSVRBUgorUkFET05KScSGIE9MR0EKK1JBRE9OSknEhiBTRU5LQQorUkFET05KScSGIFNMQVZPTUlSCitSQURPTkpJxIYgU0xPQk9EQU4KK1JBRE9OSknEhiBTTkXFvUFOQQorUkFET05KScSGIFNUQU5BCitSQURPTkpJxIYgVkVSSUNBCitSQURPU0FWIEVSxb1FQkVUCitSQURPU0FWIEtSSVNUSU5BCitSQURPU0FWIFJBRElWT0oKK1JBRE9TQVbEjEVWIERVxaBBTgorUkFET1NBVsSMRVYgTUlMQQorUkFET1NBVkFDIERJTUlUUklKRSBEUgorUkFET1NBVkFDIERVxaBJQ0EKK1JBRE9TQVZBQyBORURFTEpLTworUkFET1NBVkFDIFZFTElaQVIKK1JBRE9TQVZBQyBWTEFETworUkFET1NBVkxKRVYgxb1JVkFOCitSQURPU0FWTEpFViBCT8W9SURBUgorUkFET1NBVkxKRVYgRFJBR09MSlVCCitSQURPU0FWTEpFViBEUkFHVVRJTgorUkFET1NBVkxKRVYgR09KS08KK1JBRE9TQVZMSkVWIElWQU4KK1JBRE9TQVZMSkVWIEpFVlJFTQorUkFET1NBVkxKRVYgS0HEhkEKK1JBRE9TQVZMSkVWIE1JTE9SQUQKK1JBRE9TQVZMSkVWIE5JS09MQQorUkFET1NBVkxKRVYgUEFWTEUKK1JBRE9TQVZMSkVWIFNMQVZLQQorUkFET1NBVkxKRVYgU1RFVkFOCitSQURPU0FWTEpFViBaT1JBCitSQURPU0FWTEpFViBaT1JJQ0EKK1JBRE9TQVZMSkVWScSGIMW9SVZBTgorUkFET1NBVkxKRVZJxIYgxJBPUsSQRQorUkFET1NBVkxKRVZJxIYgxJBPUsSQRQorUkFET1NBVkxKRVZJxIYgQUxFS1NBTkRBUgorUkFET1NBVkxKRVZJxIYgQU5BCitSQURPU0FWTEpFVknEhiBBTkEKK1JBRE9TQVZMSkVWScSGIEJPxb1JREFSCitSQURPU0FWTEpFVknEhiBCT0dEQU4KK1JBRE9TQVZMSkVWScSGIEJPR09WSUQKK1JBRE9TQVZMSkVWScSGIEJPUkEKK1JBRE9TQVZMSkVWScSGIEJPUkEKK1JBRE9TQVZMSkVWScSGIEJVRElNSVIKK1JBRE9TQVZMSkVWScSGIERBTklFTAorUkFET1NBVkxKRVZJxIYgRElBTkEKK1JBRE9TQVZMSkVWScSGIERPQlJJVk9KRQorUkFET1NBVkxKRVZJxIYgRFJBR0FOCitSQURPU0FWTEpFVknEhiBEUkFHScWgQQorUkFET1NBVkxKRVZJxIYgRFJBR09MSlVCCitSQURPU0FWTEpFVknEhiBEUkFHVVRJTgorUkFET1NBVkxKRVZJxIYgRFXFoEFOIERJUEwgSU5HCitSQURPU0FWTEpFVknEhiBEVcWgQU4KK1JBRE9TQVZMSkVWScSGIERVxaBBTgorUkFET1NBVkxKRVZJxIYgSUxJSkEKK1JBRE9TQVZMSkVWScSGIEpBU01JTkEKK1JBRE9TQVZMSkVWScSGIEpPVkFOCitSQURPU0FWTEpFVknEhiBKT1ZBTgorUkFET1NBVkxKRVZJxIYgSk9WQU4KK1JBRE9TQVZMSkVWScSGIEpVTElKQQorUkFET1NBVkxKRVZJxIYgTEVQT1NBVkEKK1JBRE9TQVZMSkVWScSGIExKSUxKQU5BCitSQURPU0FWTEpFVknEhiBMSklMSkEKK1JBRE9TQVZMSkVWScSGIExKVUJJxaBBCitSQURPU0FWTEpFVknEhiBMSlVCT01JUgorUkFET1NBVkxKRVZJxIYgTEpVQk9NSVIKK1JBRE9TQVZMSkVWScSGIE1BUktPCitSQURPU0FWTEpFVknEhiBNSUxBTgorUkFET1NBVkxKRVZJxIYgTUlMQU4KK1JBRE9TQVZMSkVWScSGIE1JTEFOCitSQURPU0FWTEpFVknEhiBNSUxFTktPCitSQURPU0FWTEpFVknEhiBNSUxFTktPCitSQURPU0FWTEpFVknEhiBNSUxFVkEKK1JBRE9TQVZMSkVWScSGIE1JTEtBCitSQURPU0FWTEpFVknEhiBNSUxPVkFOCitSQURPU0FWTEpFVknEhiBNSU9EUkFHCitSQURPU0FWTEpFVknEhiBNSVJKQU5BCitSQURPU0FWTEpFVknEhiBNSVJKQU5BCitSQURPU0FWTEpFVknEhiBNTEFERU4KK1JBRE9TQVZMSkVWScSGIE5KRUdPU0FWQQorUkFET1NBVkxKRVZJxIYgUEFWTEUKK1JBRE9TQVZMSkVWScSGIFBFVEFSCitSQURPU0FWTEpFVknEhiBSQURJxaBBCitSQURPU0FWTEpFVknEhiBSQURJxaBBCitSQURPU0FWTEpFVknEhiBSQURJVk9KCitSQURPU0FWTEpFVknEhiBSQU1JWkEKK1JBRE9TQVZMSkVWScSGIFJPRE9MSlVCIERJUEwgSU5HCitSQURPU0FWTEpFVknEhiBTQVZBCitSQURPU0FWTEpFVknEhiBTSU5JxaBBCitSQURPU0FWTEpFVknEhiBTVEVWQU4KK1JBRE9TQVZMSkVWScSGIFNURVZBTgorUkFET1NBVkxKRVZJxIYgU1RFVkFOCitSQURPU0FWTEpFVknEhiBTVE9KQU4KK1JBRE9TQVZMSkVWScSGIFNWRVRJU0xBVgorUkFET1NBVkxKRVZJxIYgU1ZFVElTTEFWCitSQURPU0FWTEpFVknEhiBTVkVUTEFOQQorUkFET1NBVkxKRVZJxIYgU1ZFVE9aQVIKK1JBRE9TQVZMSkVWScSGIFZJRE9TQVZBCitSQURPU0FWTEpFVknEhiBWTEFERVRBCitSQURPU0FWTEpFVknEhiBaQUdBCitSQURPU0FWTEpFVknEhiBaQUdPUktBCitSQURPU0FWTEpFVknEhiBaT1JJQ0EKK1JBRE9WQUMgSVZBCitSQURPVkFDIE5JS09MQQorUkFET1ZBQyBQRVRBUgorUkFET1ZBQyBTQVZBCitSQURPVkFOIEFOVEUKK1JBRE9WQU4gVklET1NBVkEKK1JBRE9WQU7EjEVWIEJSQU5JU0xBVgorUkFET1ZBTsSMRVYgTEpVQklDQQorUkFET1ZBTsSMRVYgVkxBRElNSVIKK1JBRE9WQU7EjEVWIFZMQURJTUlSCitSQURPVkFOQUMgxJBVUkEKK1JBRE9WQU5BQyBORcSQTworUkFET1ZBTk9WIMW9SVZBTgorUkFET1ZBTk9WIEFMRUtTQU5EQVIKK1JBRE9WQU5PViBBTsSQRUxLQQorUkFET1ZBTk9WIEFOS0EKK1JBRE9WQU5PViBCT8W9SURBUgorUkFET1ZBTk9WIEJPR0RBTktBCitSQURPVkFOT1YgQlJBTktPCitSQURPVkFOT1YgREFOSUNBCitSQURPVkFOT1YgRFXFoEFOCitSQURPVkFOT1YgRFXFoEFOCitSQURPVkFOT1YgRFXFoEFOCitSQURPVkFOT1YgRVZJQ0EKK1JBRE9WQU5PViBHT1JEQU5BCitSQURPVkFOT1YgSUxJSkEKK1JBRE9WQU5PViBLVVpNQU4KK1JBRE9WQU5PViBMSlVCSUNBCitSQURPVkFOT1YgTUFSSUpBCitSQURPVkFOT1YgTUVMQU5JSkEKK1JBRE9WQU5PViBNSUxBTgorUkFET1ZBTk9WIE1JTEFOCitSQURPVkFOT1YgTUlMRU5LTworUkFET1ZBTk9WIE1JTEVOS08KK1JBRE9WQU5PViBNSUxFTktPCitSQURPVkFOT1YgTUlMSUNBCitSQURPVkFOT1YgTUlMSUNBCitSQURPVkFOT1YgTUlMSUNBCitSQURPVkFOT1YgTUlMS0EKK1JBRE9WQU5PViBNSVJKQU5BCitSQURPVkFOT1YgTkFEQQorUkFET1ZBTk9WIE5FVkVOS0EKK1JBRE9WQU5PViBQRVRBUgorUkFET1ZBTk9WIFBFVEFSCitSQURPVkFOT1YgUEVUQVIKK1JBRE9WQU5PViBSQURPTUlSCitSQURPVkFOT1YgUkFET1ZBTgorUkFET1ZBTk9WIFJVxb1JQ0EKK1JBRE9WQU5PViBTTE9CT0RBTktBCitSQURPVkFOT1YgU0xPQk9EQU4KK1JBRE9WQU5PViBTTE9CT0RBTgorUkFET1ZBTk9WIFNNSUxKQU5BCitSQURPVkFOT1YgU1RFVkFOCitSQURPVkFOT1YgU1RFVkFOCitSQURPVkFOT1YgU1RFVkEKK1JBRE9WQU5PViBTVkVUT1pBUgorUkFET1ZBTk9WIFRBVEpBTkEKK1JBRE9WQU5PViBUSU5LQQorUkFET1ZBTk9WIFZPSklTTEFWCitSQURPVkFOT1ZJxIYgxb1JVkFESU4KK1JBRE9WQU5PVknEhiDEkE9SxJBJSkUKK1JBRE9WQU5PVknEhiBCT1JBCitSQURPVkFOT1ZJxIYgQk9SS0EKK1JBRE9WQU5PVknEhiBCUkFOS08KK1JBRE9WQU5PVknEhiBEQU5JTE8KK1JBRE9WQU5PVknEhiBEQVJJTktBCitSQURPVkFOT1ZJxIYgRE9CUklWT0pFCitSQURPVkFOT1ZJxIYgRFJBR0FOCitSQURPVkFOT1ZJxIYgRFJBR0nFoEEKK1JBRE9WQU5PVknEhiBEUkFHScWgQQorUkFET1ZBTk9WScSGIERSQUdPTEpVQgorUkFET1ZBTk9WScSGIERVxaBBTktBCitSQURPVkFOT1ZJxIYgRFXFoEFOCitSQURPVkFOT1ZJxIYgRFXFoEtPIERJUEwgSU5HCitSQURPVkFOT1ZJxIYgSUxPTktBCitSQURPVkFOT1ZJxIYgSkVMSUNBCitSQURPVkFOT1ZJxIYgSk9LQQorUkFET1ZBTk9WScSGIEpPVkFOS0EKK1JBRE9WQU5PVknEhiBMQVpBUgorUkFET1ZBTk9WScSGIExBWk8KK1JBRE9WQU5PVknEhiBMSlVCSUNBCitSQURPVkFOT1ZJxIYgTEpVQk9NSVIKK1JBRE9WQU5PVknEhiBNQVJBCitSQURPVkFOT1ZJxIYgTUFSSUpBIERSCitSQURPVkFOT1ZJxIYgTUFSSUpBCitSQURPVkFOT1ZJxIYgTUnEhk8KK1JBRE9WQU5PVknEhiBNSUxBRElOCitSQURPVkFOT1ZJxIYgTUlMQU4KK1JBRE9WQU5PVknEhiBNSUxBTgorUkFET1ZBTk9WScSGIE1JTEFOCitSQURPVkFOT1ZJxIYgTUlMQQorUkFET1ZBTk9WScSGIE1JTElDQQorUkFET1ZBTk9WScSGIE1JTE/FoAorUkFET1ZBTk9WScSGIE1JTE/FoAorUkFET1ZBTk9WScSGIE1JTE9SQUQKK1JBRE9WQU5PVknEhiBNSUxPUkFECitSQURPVkFOT1ZJxIYgTUlMT1JBRAorUkFET1ZBTk9WScSGIE1JTFVUSU4KK1JBRE9WQU5PVknEhiBNSVJBCitSQURPVkFOT1ZJxIYgTUlST1NMQVYgRFIgUFJPRgorUkFET1ZBTk9WScSGIE1JUk9TTEFWCitSQURPVkFOT1ZJxIYgTUxBxJBFTgorUkFET1ZBTk9WScSGIE1PTUlSCitSQURPVkFOT1ZJxIYgTkFEQQorUkFET1ZBTk9WScSGIE5FREVMSktPCitSQURPVkFOT1ZJxIYgTklLT0xBCitSQURPVkFOT1ZJxIYgTklOT1NMQVYgRFIKK1JBRE9WQU5PVknEhiBQUkVEUkFHCitSQURPVkFOT1ZJxIYgUkFERU5LTworUkFET1ZBTk9WScSGIFJBRElWT0oKK1JBRE9WQU5PVknEhiBSQURPSklDQQorUkFET1ZBTk9WScSGIFJBRE9NSVIgRFIgTEVLQVIKK1JBRE9WQU5PVknEhiBSQURPU0xBVgorUkFET1ZBTk9WScSGIFJBRE9TTEFWCitSQURPVkFOT1ZJxIYgUkFET1ZBTgorUkFET1ZBTk9WScSGIFJBSkEKK1JBRE9WQU5PVknEhiBSQUpLTworUkFET1ZBTk9WScSGIFNMQURPTEpVQgorUkFET1ZBTk9WScSGIFNMQVZLTworUkFET1ZBTk9WScSGIFNMQVZLTworUkFET1ZBTk9WScSGIFNMT0JPREFOCitSQURPVkFOT1ZJxIYgU05Fxb1BTkEKK1JBRE9WQU5PVknEhiBTUkVURU4KK1JBRE9WQU5PVknEhiBTVEFOT0pFCitSQURPVkFOT1ZJxIYgU1RFVkFOCitSQURPVkFOT1ZJxIYgU1RFVkFOCitSQURPVkFOT1ZJxIYgU1ZFVElTTEFWCitSQURPVkFOT1ZJxIYgVE9NSVNMQVYKK1JBRE9WQU5PVknEhiBWRUxJU0FWCitSQURPVkFOT1ZJxIYgVklET1NBVkEKK1JBRE9WQU5PVknEhiBWSU5LQQorUkFET1ZBTk9WScSGIFZMQURJTUlSCitSQURPVkFOT1ZJxIYgVk9KSVNMQVYKK1JBRE9WQU5PVknEhiBWT0pJU0xBVgorUkFET1ZBTk9WScSGIFpPUktBCitSQURPVkFOT1ZJxIYgWlZFWkRBTkEKK1JBRE9WScSGIMSMRURPTUlSCitSQURPVknEhiDFvUFSS08KK1JBRE9WScSGIMW9SVZBTgorUkFET1ZJxIYgxJBPUsSQRQorUkFET1ZJxIYgQUxFS1NBTkRBUgorUkFET1ZJxIYgQUxFS1NBTkRBUgorUkFET1ZJxIYgQU7EkEVMSUpBCitSQURPVknEhiBCTEFHQQorUkFET1ZJxIYgQkxBR09KRQorUkFET1ZJxIYgQk/FoEtPCitSQURPVknEhiBCT0dPTEpVQgorUkFET1ZJxIYgQk9SSVNMQVYKK1JBRE9WScSGIEJSQU5JU0xBViBESVBMIElORworUkFET1ZJxIYgQlJBTktPCitSQURPVknEhiBEQU1KQU4KK1JBRE9WScSGIERBUktPCitSQURPVknEhiBERUpBTgorUkFET1ZJxIYgRElNSVRSSUpFCitSQURPVknEhiBET0JSSUxBCitSQURPVknEhiBEUkFHQU4KK1JBRE9WScSGIERSQUdJxaBBCitSQURPVknEhiBEUkFHSUNBCitSQURPVknEhiBEUkFHT0xKVUIKK1JBRE9WScSGIERSQUdVVElOCitSQURPVknEhiBEVcWgQU4KK1JBRE9WScSGIEdPSktPIERJUEwgSU5HCitSQURPVknEhiBJUk1BCitSQURPVknEhiBJVkEKK1JBRE9WScSGIEpFVlRPCitSQURPVknEhiBKT1ZBTgorUkFET1ZJxIYgTEpVQk9NSVIKK1JBRE9WScSGIE1BR0RBTEVOQQorUkFET1ZJxIYgTUFHREEKK1JBRE9WScSGIE1JTEFOCitSQURPVknEhiBNSUxBTgorUkFET1ZJxIYgTUlMQU4KK1JBRE9WScSGIE1JTEFOCitSQURPVknEhiBNSUxFTkEKK1JBRE9WScSGIE1JTEVWQQorUkFET1ZJxIYgTUlMRQorUkFET1ZJxIYgTUlMT8WgCitSQURPVknEhiBNSUxPSkUKK1JBRE9WScSGIE1JTE9NSVIKK1JBRE9WScSGIE1JTFVUSU4KK1JBRE9WScSGIE1JT0RSQUcKK1JBRE9WScSGIE1JT0RSQUcKK1JBRE9WScSGIE1JUsSMRVRBCitSQURPVknEhiBNT03EjElMTworUkFET1ZJxIYgTU9NxIxJTE8KK1JBRE9WScSGIE5FREVMSktPCitSQURPVknEhiBOT1ZBSworUkFET1ZJxIYgT0xHQQorUkFET1ZJxIYgUEFWTEUKK1JBRE9WScSGIFBFVEFSCitSQURPVknEhiBQRVRLTworUkFET1ZJxIYgUkFET0pLQQorUkFET1ZJxIYgUkFET01JUgorUkFET1ZJxIYgUkFET1ZBTgorUkFET1ZJxIYgUkFET1ZBTgorUkFET1ZJxIYgUkFET1ZBTgorUkFET1ZJxIYgUkFKS08KK1JBRE9WScSGIFJBVE9NSVIgRElQTCBJTkcKK1JBRE9WScSGIFJPWklLQQorUkFET1ZJxIYgU0FWTworUkFET1ZJxIYgU0lNQQorUkFET1ZJxIYgU0xBVklDQQorUkFET1ZJxIYgU0xBVklDQQorUkFET1ZJxIYgU0xBVktBCitSQURPVknEhiBTTEFWS08KK1JBRE9WScSGIFNSRVRFTgorUkFET1ZJxIYgU1RBTktPCitSQURPVknEhiBTVEVWQU4KK1JBRE9WScSGIFNUUkFISU5KQQorUkFET1ZJxIYgVEVSRVpJSkEKK1JBRE9WScSGLVVWRVJJxIYgTUlMQSBEUgorUkFET1ZJxIYgVkVMSU1JUgorUkFET1ZJxIYgVkVMSkEKK1JBRE9WScSGIFZFTEpLTworUkFET1ZJxIYgVkVMSktPCitSQURPVknEhiBWRVJBCitSQURPVknEhiBWRVJBCitSQURPVknEhiBWSURBSworUkFET1ZJxIYgVklET1NBVgorUkFET1ZJxIYgVkxBRElNSVIKK1JBRE9WScSGIFZMQURJTUlSCitSQURPVknEhiBWTEFKS08KK1JBRE9WScSGIFZPSklTTEFWCitSQURPVknEhiBWVUtTQU4KK1JBRE9WScSGIFpEUkFWS08KK1JBRE9WScSGIFpPUkFOCitSQURPVk5JS09WScSGIE1BUklKQQorUkFEVSBCUkFOS08KK1JBRFVKS08gxJBVUkEKK1JBRFVKS08gQUxFS1NBTkRBUgorUkFEVUpLTyBCUkFOS08KK1JBRFVKS08gREVTQQorUkFEVUpLTyBEVcWgQU4KK1JBRFVKS08gRFXFoEFOCitSQURVSktPIEdPUkFOCitSQURVSktPIEpBU01JTkEKK1JBRFVKS08gTEpJTEpBTkEKK1JBRFVKS08gTUFSS08KK1JBRFVKS08gTUlMQU4KK1JBRFVKS08gTUlSQQorUkFEVUpLTyBNSVJLTworUkFEVUpLTyBORURFTEpLTworUkFEVUpLTyBTVEVWTworUkFEVUpLT1YgQUxFS1NBTkRBUgorUkFEVUpLT1YgREFOSUNBIERJUEwgSU5HCitSQURVSktPViBEQU5JTE8KK1JBRFVKS09WIERBTklMTworUkFEVUpLT1YgREVKQU4KK1JBRFVKS09WIERSQUdPTEpVQgorUkFEVUpLT1YgTEpVQklDQQorUkFEVUpLT1YgTEpVQklDQQorUkFEVUpLT1YgTUlMQU4KK1JBRFVKS09WIE1JTElWT0oKK1JBRFVKS09WIE1JVEFSCitSQURVSktPViBOSUtPTEEKK1JBRFVKS09WIFBFVEFSCitSQURVSktPViBSVcW9SUNBCitSQURVSktPViBTVEVWQU4KK1JBRFVKS09WIFZMQURJTUlSCitSQURVSktPVknEhiBJTElKQQorUkFEVUpLT1ZJxIYgSkVMS0EKK1JBRFVKS09WScSGIEtPU1RBCitSQURVS0EgTEFKT8WgCitSQURVS0nEhiBSQURPU0FWCitSQURVS0lOIEFMRUtTQQorUkFEVUtJTiBCUkFOS0EKK1JBRFVLSU4gREFOSUNBCitSQURVS0lOIEdBVlJBCitSQURVS0lOIExKVUJPTUlSCitSQURVS0lOIE1JTEFOCitSQURVS0lOIE1JTEVOS08KK1JBRFVLSU4gTUlSS08KK1JBRFVLSU4gUkFET1NMQVYKK1JBRFVLSU4gU1RPSktBCitSQURVTEHFoEtJIEJPxaBLTworUkFEVUxBxaBLSSBTVEVWQU4KK1JBRFVMRVYgSk9WQU4KK1JBRFVMSiBKRUxFTkEKK1JBRFVMT1YgQ1ZFVElTTEFWCitSQURVTE9WIENWRVRJU0xBVgorUkFEVUxPViBKT1ZBTgorUkFEVUxPViBKVUxLQQorUkFEVUxPVknEhiDFvUlWS08KK1JBRFVMT1ZJxIYgxJBPS08KK1JBRFVMT1ZJxIYgxJBPUsSQRQorUkFEVUxPVknEhiDEkE9SxJBFCitSQURVTE9WScSGIMSQVVJPCitSQURVTE9WScSGIEFMRUtTQU5EQVIKK1JBRFVMT1ZJxIYgQUxFS1NBTkRBUgorUkFEVUxPVknEhiBBTsSQRUxLQQorUkFEVUxPVknEhiBBTsSQRUxLTworUkFEVUxPVknEhiBBTsSQRUxLTworUkFEVUxPVknEhiBBTkEKK1JBRFVMT1ZJxIYtQkVMScSGIFpPUktBCitSQURVTE9WScSGIEJPR0RBTktBCitSQURVTE9WScSGIEJPUklWT0oKK1JBRFVMT1ZJxIYgQk9TQQorUkFEVUxPVknEhiBCT1NJTEpLQQorUkFEVUxPVknEhiBCUkFOS0EKK1JBRFVMT1ZJxIYgQlJBTktPCitSQURVTE9WScSGIEJSQU5LTworUkFEVUxPVknEhiBCUkFOS08KK1JBRFVMT1ZJxIYgQlJBTktPCitSQURVTE9WScSGIEJSQU5LTworUkFEVUxPVknEhiBCUkFOS08KK1JBRFVMT1ZJxIYgQlJBVElTTEFWCitSQURVTE9WScSGIERBTklKRUxBCitSQURVTE9WScSGIERSQUdBTgorUkFEVUxPVknEhiBEUkFHSUNBCitSQURVTE9WScSGIERSQUdJQ0EKK1JBRFVMT1ZJxIYgRFJBR09MSlVCCitSQURVTE9WScSGIERSQUdVVElOCitSQURVTE9WScSGIERVxaBBTgorUkFEVUxPVknEhiBHT1JBTgorUkFEVUxPVknEhiBJTElKQQorUkFEVUxPVknEhiBKT1JEQU4KK1JBRFVMT1ZJxIYgSk9WQU4KK1JBRFVMT1ZJxIYgSk9WQU4KK1JBRFVMT1ZJxIYgS1JVTklTTEFWCitSQURVTE9WScSGIEtTRU5JSkEKK1JBRFVMT1ZJxIYgTEFaQVIKK1JBRFVMT1ZJxIYgTEpVQknFoEEgRElQTCBJTkcKK1JBRFVMT1ZJxIYgTUFHREEKK1JBRFVMT1ZJxIYgTUFSSUpBTkEKK1JBRFVMT1ZJxIYgTUFSSUpBCitSQURVTE9WScSGIE1BUklKQQorUkFEVUxPVknEhiBNSUhBSUxPCitSQURVTE9WScSGIE1JTEFOCitSQURVTE9WScSGIE1JTEFOCitSQURVTE9WScSGIE1JTEFOCitSQURVTE9WScSGIE1JTEFOCitSQURVTE9WScSGIE1JTEVOQQorUkFEVUxPVknEhiBNSUxFCitSQURVTE9WScSGIE1JTE9KRQorUkFEVUxPVknEhiBNSUxPUkFEIERSCitSQURVTE9WScSGIE1JTE9WQU4KK1JBRFVMT1ZJxIYgTUlMVVRJTgorUkFEVUxPVknEhiBNSVJKQU5BCitSQURVTE9WScSGIE1JUktPCitSQURVTE9WScSGIE1JUk9TTEFWQQorUkFEVUxPVknEhiBOQURBCitSQURVTE9WScSGIE5FREVMSktBCitSQURVTE9WScSGIE5JS09MQSBESVBMIElORworUkFEVUxPVknEhiBOSUtPTEEKK1JBRFVMT1ZJxIYgTklLT0xBCitSQURVTE9WScSGIE5JS09MQQorUkFEVUxPVknEhiBOSU5PU0xBVkEgRFIKK1JBRFVMT1ZJxIYgUEVUQVIKK1JBRFVMT1ZJxIYgUEVUQVIKK1JBRFVMT1ZJxIYgUkFERQorUkFEVUxPVknEhiBSQURJVk9KCitSQURVTE9WScSGIFJBRE9KRSBEUgorUkFEVUxPVknEhiBSQURPSktBCitSQURVTE9WScSGIFJBRE9NSVIKK1JBRFVMT1ZJxIYgUkFKS08KK1JBRFVMT1ZJxIYgUk9aQUxJSkEKK1JBRFVMT1ZJxIYgUlXFvUEKK1JBRFVMT1ZJxIYgUlVET0xGCitSQURVTE9WScSGIFNBVkEKK1JBRFVMT1ZJxIYgU0FWQQorUkFEVUxPVknEhiBTQVZBCitSQURVTE9WScSGIFNFTElNSVIKK1JBRFVMT1ZJxIYgU0xBVklDQQorUkFEVUxPVknEhiBTTE9CT0RBTgorUkFEVUxPVknEhiBTUkXEhktPCitSQURVTE9WScSGIFNSRVRPCitSQURVTE9WScSGIFNUQU5BCitSQURVTE9WScSGIFNUQU5LTworUkFEVUxPVknEhiBTVEVWQU4gRFIKK1JBRFVMT1ZJxIYgU1RFVkFOCitSQURVTE9WScSGIFNURVZBTgorUkFEVUxPVknEhiBTVkVUS08KK1JBRFVMT1ZJxIYgU1ZFVE9aQVIKK1JBRFVMT1ZJxIYgU1ZFVE9aQVIKK1JBRFVMT1ZJxIYgVE9NQcWgCitSQURVTE9WScSGIFZFTElNSVIKK1JBRFVMT1ZJxIYgWkxBVElOS0EgRFIKK1JBRFVMT1ZJxIYgWk9SQU4KK1JBRFVMT1ZJxIYgWk9SQU4KK1JBRFVMT1ZJxIYgWlZPTklNSVIKK1JBRFVNSUxPIEFMRUtTQU5EQVIKK1JBRFVNSUxPIEdPUkRBTkEKK1JBRFVNSUxPIE1JxIZPCitSQURVTUlMTyBNSUxPUkFECitSQURVTUlMTyBNSVJLTworUkFEVU4gxb1FTEpLTworUkFEVU4gxb1FTEpLTworUkFEVU4gRFJBR0FOCitSQURVTiBHT1JBTgorUkFEVU4gSUxJSkEKK1JBRFVOIEpPVkFOCitSQURVTiBMSlVCSUNBCitSQURVTiBNQVJLTworUkFEVU4gTUlMT8WgCitSQURVTiBTTE9CT0RBTgorUkFEVU4gU01JTEpBCitSQURVTiBWTEFETworUkFEVU5KScSGIE1JTE9NSVIKK1JBRFVOS09WScSGIE1JUk9TTEFWCitSQURVTktPVknEhiBSQURPTUlSCitSQURVTktPVknEhiBSQU5LTworUkFEVU5PVknEhiDEkE9SxJBFCitSQURVTk9WScSGIEpFTElDQQorUkFEVU5PVknEhiBKRUxJQ0EKK1JBRFVOT1ZJxIYgSkVWUkVNCitSQURVTk9WScSGIFJBRFVOCitSQURVTk9WScSGIFJPU0FOREEKK1JBRFVTSU4gTUlMRQorUkFEVVNJTiBUT01BCitSQURVU0lOIFZFUklDQQorUkFEVVNJTiBWTEFESU1JUgorUkFEVVNJTk9WScSGIEJJU0VSIERJUEwgSU5HCitSQURVU0lOT1ZJxIYgQk9SQQorUkFEVVNJTk9WScSGIERBTklMTworUkFEVVNJTk9WScSGIE1JTEFOCitSQURVU0lOT1ZJxIYgTkVERUxKS08KK1JBRFVTSU5PVknEhiBWT0pJU0xBVgorUkFEVkFOSiBTQcWgQQorUkFEVkFOSkkgSk9WQU4KK1JBRFZBTlNLSSBTVEVWQU4KK1JBRkEgQU5EUkHFoAorUkFGQUkgR0FCT1IKK1JBRkFJIEnFoFRWQU4KK1JBRkFJIEpVTElKQU5BCitSQUZBSSBTVEVWQU4KK1JBRkFJIFRJQk9SCitSQUZBSkxPVknEhiBaVVpBTkEKK1JBRkFMIMSQVVLEkElOS0EKK1JBRkFMIExBSk/FoAorUkFGQUwgTUFSSUpBCitSQUdBxIwgSVZBTgorUkFHQUkgSk9WR0VOCitSQUdBSkkgxJBVUkEKK1JBR0FKSSBJUklOQQorUkFHQUpJIE5JS09MQQorUkFHQUpJIE5JS09MQQorUkFHQUpJIFZMQURBCitSQUdBSkkgVkxBREEKK1JBR0FKSSBWTEFESU1JUgorUkFHTyBBREFNCitSQUdVxb0gRFJBxb1FTgorUkFIRUxJxIYgU1ZFVE9NSVIgRFIKK1JBSE1BTiBNSUhBSkxPCitSQUnEjCBBTEVLU0FOREFSCitSQUnEjCBOSUtPTEEKK1JBScSMRVZJxIYgxb1JVktPCitSQUnEjEVWScSGIMW9SVZPSklOCitSQUnEjEVWScSGIMW9SVZPSklOCitSQUnEjEVWScSGIEJPUktBCitSQUnEjEVWScSGIERSQUdJxIYKK1JBScSMRVZJxIYgTUlMQU4KK1JBScSMRVZJxIYgTUlMSUNBCitSQUnEjEVWScSGIE5JS09MQQorUkFJxIxFVknEhiBWRVNOQQorUkFJxIxFVknEhiBaT1JBTgorUkFJxIxJxIYgxb1JVk9KSU4KK1JBScSMScSGIMW9SVZPSklOCitSQUnEhiBEUkFHQU4KK1JBScSGIE5JS09MQQorUkFJTEnEhiBSQU5LTworUkFJTEnEhiBWVUtPU0FWQQorUkFJTU9WU0tJIERFU0FOS0EKK1JBSU5BQyBNQVJJS0EKK1JBSU5BQyBNSVRBUgorUkFKxIxBTiBJxaBUVkFOCitSQUrEjEVUScSGIERSQUdPTUlSCitSQUrEjEVUScSGIEVNSUwKK1JBSsSMRVRJxIYgR09KS08KK1JBSsSMRVRJxIYgSVZBTktBCitSQUrEjEVUScSGIExBWkFSCitSQUrEjEVUScSGIExKVUJJQ0EKK1JBSsSMRVRJxIYgTUlMSVZPSgorUkFKxIxFVEnEhiBNSVJPU0xBVgorUkFKxIxFVEnEhiBSVcW9SUNBCitSQUrEjEVUScSGIFNJTknFoEEKK1JBSsSMRVRJxIYgU1RPSkFOCitSQUrEjEVUScSGIFZFUkEKK1JBSsSMRVRJxIYgVkxBRElTTEFWCitSQUrEjEVUScSGIFZMQURJU0xBVgorUkFKxIxFVknEhiBWTEFERVRBCitSQUrEjEnEhiBHUkdBCitSQUrEjEnEhiBQQVZMRQorUkFKxIxJxIYgU1RFVkFOCitSQUrFoEnEhiBBTsSQQQorUkFKxaBJxIYgREFOSUNBCitSQUrFoEnEhiBEVcWgQU4KK1JBSsWgScSGIElMSUpBCitSQUrFoEnEhiBKRUxBCitSQUrFoEnEhiBOQURBCitSQUrFoEnEhiBSQURFCitSQUrFoEnEhiBTVEFOQQorUkFKxaBJxIYgU1RBTktPCitSQUrFoExJIElMT05BCitSQUrFoExJIExBU0xPCitSQUpBxIxJxIYtxIxBUEFLT1ZJxIYgSkVMSUNBCitSQUpBxIxJxIYgxJBVUk8KK1JBSkHEjEnEhiDEkFVSTworUkFKQcSMScSGIEFMRUtTQU5EQVIKK1JBSkHEjEnEhiBCT1JJU0xBVgorUkFKQcSMScSGIEJPUklTTEFWCitSQUpBxIxJxIYgQlJBTklTTEFWQQorUkFKQcSMScSGIERNSVRBUgorUkFKQcSMScSGIERVxaBBTgorUkFKQcSMScSGIEdPUkRBTkEKK1JBSkHEjEnEhiBJTElKQQorUkFKQcSMScSGIEpPVkFOCitSQUpBxIxJxIYgTUlMQU4KK1JBSkHEjEnEhiBNSUxBTgorUkFKQcSMScSGIE1JTEFOCitSQUpBxIxJxIYgUEVUQVIKK1JBSkHEjEnEhiBUSUhPTUlSCitSQUpBxIxJxIYgVkxBRElNSVIKK1JBSkHEjEnEhiBWTEFETworUkFKQcSMScSGIFpPUklDQQorUkFKQcSMScSGIFpPUktBCitSQUpBSyBCUkFOS08KK1JBSkFLIE1JTEVOQQorUkFKQUsgTkVHT1ZBTgorUkFKQUtPVkFDIE1JT0RSQUcKK1JBSkFLT1ZBQyBaT1JBTgorUkFKQkVSIEpPxb1FRgorUkFKREEgUEVUQVIKK1JBSkRBIFBFVEVSCitSQUpEQSBTQU5ESQorUkFKRVZJxIYgS09TVEEKK1JBSkVWScSGIFZBTEVSSUpBCitSQUpIIERFxb1FCitSQUpIIE9MR0EKK1JBSkggVkxBRElNSVIKK1JBSknEjCBNSUxBTgorUkFKScSMScSGIEtBVEFMSU4KK1JBSknEjEnEhiBNSU9EUkFHCitSQUpJxIxJxIYgTUlPRFJBRworUkFKScSGIEFOS0lDQQorUkFKScSGIEJPUklTQVYKK1JBSknEhiBEQVJJTktBCitSQUpJxIYgREVTQU5LQQorUkFKScSGIERPQlJJVk9KCitSQUpJxIYgRFJBR0FOCitSQUpJxIYgRFJBR0EKK1JBSknEhiBEUkFHSUNBCitSQUpJxIYgRFJBR1VUSU4KK1JBSknEhiBHT1JEQU5BCitSQUpJxIYgSUdOSkFUCitSQUpJxIYgSVNBCitSQUpJxIYgSk9WQU4KK1JBSknEhiBKT1ZBTgorUkFKScSGIEtBVEFSSU5BCitSQUpJxIYgS09WSU5LQQorUkFKScSGIEtSSVNUSU5BCitSQUpJxIYgTEpVQklDQQorUkFKScSGIExVS0EKK1JBSknEhiBNSUxBTgorUkFKScSGIE1JTEVOQQorUkFKScSGIE1JTEtBCitSQUpJxIYgTUlMT1JBRAorUkFKScSGIE1JT01JUgorUkFKScSGIE5BREEKK1JBSknEhiBOQURBCitSQUpJxIYgTklLT0xBCitSQUpJxIYgUEVSS0EKK1JBSknEhiBQRVRBUgorUkFKScSGIFJBREUKK1JBSknEhiBSQURJU0xBVgorUkFKScSGIFJBRE1JTEEKK1JBSknEhiBSVcW9QQorUkFKScSGIFNMQVZLQQorUkFKScSGIFNORcW9QU5BCitSQUpJxIYgU1BBU09KRSBEUgorUkFKScSGIFNURVZBTgorUkFKScSGIFNURVZBTgorUkFKScSGIFNURVZBTgorUkFKScSGIFZFTElNSVIKK1JBSknEhiBWRUxJTUlSCitSQUpJxIYgVkVMSU5LQQorUkFKScSGIFZPSklTTEFWCitSQUpJxIYgVk9KSVNMQVYKK1JBSknEhiBaT1JBTgorUkFKSUxJxIYgSk9WQU5LQQorUkFKSU5BQy1CVUtVUk9WIERSQUdBTkEKK1JBSklOQUMgTkVOQUQKK1JBSklOQUMgU1ZFVE9aQVIKK1JBSklOT1ZJxIYgTUlSS08KK1JBSktJxIYgTklLT0xBCitSQUpLT1YgQk9HREFOIERSCitSQUpLT1YgQk9SSVZPSgorUkFKS09WIERFU0FOS0EKK1JBSktPViBEUkFHScSGCitSQUpLT1YgRFXFoEFOCitSQUpLT1YgSVNJRE9SCitSQUpLT1YgSVZBTgorUkFKS09WIElWQU4KK1JBSktPViBMSlVCT01JUgorUkFKS09WIE1BUktPCitSQUpLT1YgTUlMQU4KK1JBSktPViBNSUxFTktPCitSQUpLT1YgTUlMT1JBRAorUkFKS09WIE1MQURFTiBESVBMIElORworUkFKS09WIE1PTUlSCitSQUpLT1YgTU9NSVIKK1JBSktPViBOSUtPTEEKK1JBSktPViBQRVRBUgorUkFKS09WIFJBSktPCitSQUpLT1YgUkFUSU1JUgorUkFKS09WIFNBVkEKK1JBSktPViBTVEVWQU4KK1JBSktPViBWRVNOQQorUkFKS09WIFZMQURJTUlSCitSQUpLT1YgVlVLQcWgSU4KK1JBSktPVknEhiDEjEVET01JUgorUkFKS09WScSGIMW9SVZBTiBEUgorUkFKS09WScSGIEFOS0lDQQorUkFKS09WScSGIEJMQUdVVElOCitSQUpLT1ZJxIYgQk9HT0xKVUIKK1JBSktPVknEhiBCT1JJVk9KRQorUkFKS09WScSGIEJSQU5LTworUkFKS09WScSGIERBTU5KQU4KK1JBSktPVknEhiBEUkFHQU5BCitSQUpLT1ZJxIYgRFJBR0FOCitSQUpLT1ZJxIYgRFJBR0nFoEEKK1JBSktPVknEhiBEUkFHT0xKVUIKK1JBSktPVknEhiBEVcWgQU4KK1JBSktPVknEhiBJVk8KK1JBSktPVknEhiBMSlVCT01JUgorUkFKS09WScSGIE1JTEFOCitSQUpLT1ZJxIYgTUlMRVZBCitSQUpLT1ZJxIYgTUlMScSGCitSQUpLT1ZJxIYgTUlMSktPCitSQUpLT1ZJxIYgTUlSS08KK1JBSktPVknEhiBNSVJPTEpVQgorUkFKS09WScSGIE5JS09MQQorUkFKS09WScSGIFBFVEFSCitSQUpLT1ZJxIYgUkFKS08KK1JBSktPVknEhiBSQVRLTworUkFKS09WScSGIFNMQVZLTworUkFKS09WScSGIFNMT0JPREFOCitSQUpLT1ZJxIYgU1JCT0xKVUIKK1JBSktPVknEhiBTUkVURU4KK1JBSktPVknEhiBTVEVWQU4KK1JBSktPVknEhiBTVE9KQQorUkFKS09WScSGIFNWRVRJU0xBVgorUkFKS09WScSGIFRBVEpBTkEKK1JBSktPVknEhiBUT01JU0xBVgorUkFKS09WScSGIFZFTElNSVIKK1JBSktPVknEhiBWSURPU0FWCitSQUpLT1ZJxIYgVkxBU1RJTUlSCitSQUpMScSGIE1JTEtBCitSQUpMScSGIE5FVkVOS0EKK1JBSk1PVlNLQSBKRUxaQQorUkFKTknEhiBEUkFHQU4KK1JBSk5JxIYgTk9WQUsKK1JBSk5JTkdFUiBKT8W9RUYKK1JBSk5PVknEhiBBTE9KWgorUkFKTk9WScSGIEJMQcW9CitSQUpOT1ZJxIYgSkVMRU5BCitSQUpOT1ZJxIYgSk9WQU4KK1JBSk5PVknEhiBKVUxJSkFOQQorUkFKTk9WScSGIE5BREEKK1JBSk5PVknEhiBTTkXFvUFOQQorUkFKTlBSRUhUIFZFUkEKK1JBSlRBIEnFoFRWQU4KK1JBSlRBIE1BUklKQQorUkFKVEEgTklLT0xBCitSQUpURU5CQUggRUxFTUlSCitSQUpURVIgRFJBR0lDQQorUkFKVEVSIFpPTFRBTgorUkFLIEFOSUNBCitSQUsgTUFSSUpBCitSQUsgTklLT0xBCitSQUsgVkVMSUJPUgorUkFLxaBBTkpJIExBRElTTEFWCitSQUtBUyDEkE9SxJBFCitSQUtBUyBSQURPSktBCitSQUtBWk9WIE1JT0RSQUcKK1JBS0VUScSGIFRPTUlTTEFWCitSQUtJxIYgxb1BUktPCitSQUtJxIYgxb1JVktBCitSQUtJxIYgxb1JVktPCitSQUtJxIYgxJBPUsSQRQorUkFLScSGIMSQT1LEkEUKK1JBS0nEhiDEkE9SxJBFCitSQUtJxIYgxJBVUkEKK1JBS0nEhiBBTEVLU0FOREFSCitSQUtJxIYgQU7EkEVMSUpBCitSQUtJxIYgQU7EkEVMS0EKK1JBS0nEhiBBTkFTVEFTSUpBCitSQUtJxIYgQU5BCitSQUtJxIYgQkxBR09KRQorUkFLScSGIEJPxb1PCitSQUtJxIYgQk9HREFOS0EKK1JBS0nEhiBCT1JPCitSQUtJxIYgQlJBTklNSVIKK1JBS0nEhiBCUkFOSVNMQVYKK1JBS0nEhiBCUkFOS0EKK1JBS0nEhiBCUkFOS08KK1JBS0nEhiBEQVJJTktBCitSQUtJxIYgRE9NSU5LQQorUkFLScSGIERSQUdBTkEKK1JBS0nEhiBEUkFHQU4KK1JBS0nEhiBEUkFHScWgQQorUkFLScSGIERSQUdPTUlSCitSQUtJxIYgRFXFoEFOS0EKK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBEVcWgQU4KK1JBS0nEhiBHQVZSQQorUkFLScSGIEdMSUdPUklKRQorUkFLScSGIEdPUkRBTkEKK1JBS0nEhiBHUlVKQQorUkFLScSGIElWQU4KK1JBS0nEhiBKT1ZBTktBCitSQUtJxIYgSk9WQU4KK1JBS0nEhiBKT1ZBTgorUkFLScSGIEpPVkFOCitSQUtJxIYgSk9WSUNBCitSQUtJxIYgS0FUSUNBCitSQUtJxIYgS0xFTUVOVAorUkFLScSGIExBWkFSCitSQUtJxIYgTEpJTEpBTkEKK1JBS0nEhiBMSklMSkFOQQorUkFLScSGIExKSUxKQU5BCitSQUtJxIYgTEpVQknFoEEgRFIgTEVLQVIKK1JBS0nEhiBMSlVCScWgQQorUkFLScSGIExKVUJJQ0EKK1JBS0nEhiBMSlVCSUNBCitSQUtJxIYgTEpVQklDQQorUkFLScSGIExKVUJJQ0EKK1JBS0nEhiBMSlVCT01JUgorUkFLScSGIExKVUJPCitSQUtJxIYgTUFUSUpBCitSQUtJxIYgTUlMQU5LQQorUkFLScSGIE1JTEFOCitSQUtJxIYgTUlMQU4KK1JBS0nEhiBNSUxBTgorUkFLScSGIE1JTEFOCitSQUtJxIYgTUlMQU4KK1JBS0nEhiBNSUxBTgorUkFLScSGIE1JTEFOCitSQUtJxIYgTUlMRU5LTworUkFLScSGIE1JTEVOS08KK1JBS0nEhiBNSUxFTktPCitSQUtJxIYgTUlMSUNBCitSQUtJxIYgTUlMSU5BCitSQUtJxIYgTUlMSVZPSkUKK1JBS0nEhiBNSUxJVk9KCitSQUtJxIYgTUlMSVZPSgorUkFLScSGIE1JTElWT0oKK1JBS0nEhiBNSUxLQQorUkFLScSGIE1JTE/FoAorUkFLScSGIE1JTE9WQU4KK1JBS0nEhiBNSUxVVElOCitSQUtJxIYgTUlPRFJBRworUkFLScSGIE1JUkEKK1JBS0nEhiBNSVJBCitSQUtJxIYgTUlSSkFOQQorUkFLScSGIE1JUkpBTkEKK1JBS0nEhiBNSVJKQU5BCitSQUtJxIYgTUlSSkFOQQorUkFLScSGIE1JUk9TTEFWQQorUkFLScSGIE5BVEFMSUpBCitSQUtJxIYgTkVCT0rFoEEKK1JBS0nEhiBORURFTEpLTworUkFLScSGIE5FTkFECitSQUtJxIYgTkVOQUQKK1JBS0nEhiBOSUtPTEEKK1JBS0nEhiBOSUtPTEEKK1JBS0nEhiBOT1ZBSworUkFLScSGIE9CUkFECitSQUtJxIYgUEFKQQorUkFLScSGIFBBTkUKK1JBS0nEhiBQQVZMRQorUkFLScSGIFBFVEFSCitSQUtJxIYgUEVUQVIKK1JBS0nEhiBQUkVEUkFHCitSQUtJxIYgUkFETUlMQQorUkFLScSGIFJBRE1JTEEKK1JBS0nEhiBSQURPSktBCitSQUtJxIYgUkFET0pLQQorUkFLScSGIFJBRE9TTEFWIERJUEwgSU5HCitSQUtJxIYgUkFET1ZBTgorUkFLScSGIFJBRE9WQU4KK1JBS0nEhiBSQURPVkFOCitSQUtJxIYgUkFET1ZBTgorUkFLScSGIFJBRE9WQU4KK1JBS0nEhiBSQUpLTworUkFLScSGIFJBSktPCitSQUtJxIYgUlXFvUlDQQorUkFLScSGIFNBVkEKK1JBS0nEhiBTTEFWS0EKK1JBS0nEhiBTTEFWS08KK1JBS0nEhiBTTE9CT0RBTgorUkFLScSGIFNMT0JPREFOCitSQUtJxIYgU0xPQk9EQU4KK1JBS0nEhiBTTUlMSkFOQQorUkFLScSGIFNPRklKQQorUkFLScSGIFNUQU1FTktBCitSQUtJxIYgU1RFVkFOS0EKK1JBS0nEhiBTVEVWQU4KK1JBS0nEhiBTVEVWQU4KK1JBS0nEhiBTVEVWQU4KK1JBS0nEhiBTVEVWQU4KK1JBS0nEhiBTVEVWSUNBCitSQUtJxIYgU1RPSkFOS0EKK1JBS0nEhiBTVE9KQU4KK1JBS0nEhiBTVkVUT01JUgorUkFLScSGIFNWRVRPWkFSCitSQUtJxIYgVElNQQorUkFLScSGIFRPRE9SCitSQUtJxIYgVE9NSVNMQVYKK1JBS0nEhiBWQVNJTElKRQorUkFLScSGIFZFTEVNSVIKK1JBS0nEhiBWRVJBCitSQUtJxIYgVkVSQQorUkFLScSGIFZJRE9TQVZBCitSQUtJxIYgVkxBRElNSVIKK1JBS0nEhiBWTEFESU1JUgorUkFLScSGIFZMQURJTUlSCitSQUtJxIYgVkxBRElNSVIKK1JBS0nEhiBWTEFESU1JUgorUkFLScSGIFpBR0EKK1JBS0nEhiBaTEFUQQorUkFLScSGIFpPUkFOCitSQUtJxIYgWk9SS0EKK1JBS0nEhkVWScSGIFNUQU1FTkEKK1JBS0nEhkVWScSGIFRJSE9NSVIKK1JBS0nEhkVWScSGIFpPUkFOCitSQUtJTiDEkE9SxJBFCitSQUtJTiBBTlRVTgorUkFLSU4gQk9SSVNMQVYKK1JBS0lOIEdPSktPCitSQUtJTiBKRUxJQ0EKK1JBS0lOIEpVTElKQU5BCitSQUtJTi1NQVJUSU5PVknEhiBSQURNSUxBCitSQUtJTiBSQURPVkFOCitSQUtJVEEgQU5LSUNBCitSQUtJVEEgQk/FvU8KK1JBS0lUQSBDVklKQU4KK1JBS0lUQSBDVklKTworUkFLSVRBIEpPVk8KK1JBS0lUQSBMSklMSkFOQQorUkFLSVRBIE1JTEFOCitSQUtJVEEgTUxBRElOS08KK1JBS0lUQSBQRVRBUgorUkFLSVRBIFNJTUtBCitSQUtPxIxFVknEhiDEkE9SxJBFCitSQUtPxIxFVknEhiBCT1JPCitSQUtPxIxFVknEhiBHUlVKSUNBCitSQUtPxIxFVknEhiBNQVJJSkFOCitSQUtPxIxFVknEhiBNQVJLTworUkFLT8SMRVZJxIYgTUlMQU4KK1JBS0/EjEVWScSGIE1JTElKQQorUkFLT8SMRVZJxIYgTUlST1NMQVYKK1JBS0/EjEVWScSGIFJBREUKK1JBS0/EjEVWScSGIFJBRE1JTEEKK1JBS0/FoCBKQU5PxaAKK1JBS0/FoCBLQVRJQ0EKK1JBS0/FoCBaVk9OSU1JUgorUkFLT8WgSSBOQURBCitSQUtPxaBJIFZMQURJU0xBVgorUkFLT05KQUMgQk9HT0xKVUIKK1JBS09OSkFDIFBVTknFoEEKK1JBS09WScSGIEFMRUtTQU5EQVIKK1JBS09WScSGIERSQUdJQ0EKK1JBS09WScSGIERVxaBBTgorUkFLT1ZJxIYgSlVHT1NMQVYKK1JBS09WScSGIExKVUJJTktBCitSQUtPVknEhiBNSUxBTgorUkFLT1ZJxIYgTUlMT1ZBTgorUkFLT1ZJxIYgTklLT0xBCitSQUtPVknEhiBPU1RPSkEKK1JBS09WScSGIFJBRE9NSVIKK1JBS09WScSGIFJBVEtPCitSQUtPVknEhiBTTEFWS08KK1JBS09WScSGIFNUQU5JU0xBVgorUkFLT1ZJxIYgVE9NSVNMQVYKK1JBS09WScSGIFZJVE9NSVJLQQorUkFLT1ZJxIYgVkxBRE8KK1JBS1XFoEnEhiBWTEFESU1JUgorUkFMRVRJxIYgxb1JVktBCitSQUxFVEnEhiDEkE9SxJBFCitSQUxFVEnEhiDEkFVSQQorUkFMRVRJxIYgQU7EkEVMS0EKK1JBTEVUScSGIEFOQQorUkFMRVRJxIYgQk9HREFOCitSQUxFVEnEhiBET0JSSUNBCitSQUxFVEnEhiBEUkFHQU4KK1JBTEVUScSGIERVxaBBTgorUkFMRVRJxIYgSUxJSkEKK1JBTEVUScSGIEpFTElDQQorUkFMRVRJxIYgTEFaQVIKK1JBTEVUScSGIExBWkFSCitSQUxFVEnEhiBMQVpBUgorUkFMRVRJxIYgTEVQT1NBVkEKK1JBTEVUScSGIE1BSkEKK1JBTEVUScSGIE1JTEFOCitSQUxFVEnEhiBNSUxPxaAKK1JBTEVUScSGIE1JTE/FoAorUkFMRVRJxIYgTUlMT1JBRAorUkFMRVRJxIYgTUlSS08KK1JBTEVUScSGIE1JUk9TTEFWCitSQUxFVEnEhiBNTEFERU4KK1JBTEVUScSGIFBFVEFSCitSQUxFVEnEhi1TQVZJxIYgSkVMRU5BCitSQUxFVEnEhi1TQVZJxIYgSkVMRU5BCitSQUxFVEnEhiBWRUxKS08KK1JBTEVUScSGIFZFUkEKK1JBTEVUScSGIFpPUkFOCitSQUxFVEnEhiBaT1JJQ0EKK1JBTEVWScSGIE5FQk9KxaBBCitSQUxJxIYgxb1JVk9KSU4KK1JBTEnEhiBCUkFOS08KK1JBTEnEhiBEUkFHSUNBCitSQUxJxIYgRFXFoEFOCitSQUxJxIYgTUFSSUpBCitSQUxJxIYgTUFSSUpBCitSQUxJxIYgTUlMRQorUkFMScSGIE1PTUlSS0EKK1JBTEnEhiBTVEVWQU4KK1JBTEnEhiBTVEVWQQorUkFMSknEhiBBTsSQRUxLTworUkFMSknEhiBEUkFHSU5KQQorUkFMSknEhiBEVcWgQU4KK1JBTEpJxIYgTkVERUxKS08KK1JBTUHEjCBBTklDQQorUkFNQcSMIElWQU4KK1JBTUHEjCBKVUxJSkFOCitSQU1BxIwgTEVPTkEKK1JBTUHEjCBMSlVCT01JUgorUkFNQcSMIExKVUJPTUlSCitSQU1BxIwgTEpVQk9NSVIKK1JBTUHEjCBNQVJJSkEKK1JBTUHEjCBNSUhBSkxPCitSQU1BxIwgTUlIQUpMTworUkFNQcSMIE1JUk9TTEFWCitSQU1BxIwgTkFEQQorUkFNQcSMIE5BVEFMSUpBCitSQU1BxIwgUEVUQVIKK1JBTUHEjCBTSU1FT04KK1JBTUHEjCBWTEFESU1JUgorUkFNQcSMIFpERU5LQQorUkFNQcSGIE1JTEVWQQorUkFNQURBTkkgUk9aQQorUkFNQURBTk9WIE1VTVVESUpBCitSQU1BREFOT1ZJxIYgxJBFTUFMSgorUkFNQURBTk9WScSGIEpBS09WCitSQU1BREFOT1ZTS0kgTkFEQQorUkFNQURBTk9WU0tJIE5FREVMSktPCitSQU1BREFOU0tJIERSQUdJxIYKK1JBTUFEQU5TS0kgSkVMRU5BCitSQU1BREFOU0tJIE1JTElOS0EKK1JBTUFaQU5PViBWSUtUT1IKK1JBTUnEhiDEkFVLQQorUkFNScSGIEpPVkFOS0EKK1JBTUnEhiBMQVpBUgorUkFNScSGIExVS0EKK1JBTUnEhiBMVUtBCitSQU1JxIYgTUlMT8WgIERJUEwgT0VDCitSQU1JxIYgTklLT0xBCitSQU1JxIYgUkFET0pLQQorUkFNScSGIFNUT0pBTgorUkFNScSGIFZFTElEQQorUkFNTEpBSyBWTEFESU1JUgorUkFNTEpBSyBaTEFUS08KK1JBTsSMScSGIMWgSU1FCitSQU7EjEnEhiBEVcWgQU5LQQorUkFOxIxJxIYgSFJBTklTTEFWCitSQU7EjEnEhiBKT1JEQU4KK1JBTsSMScSGIE1JTE/FoAorUkFOxIxJxIYgUkFOS08KK1JBTsSQRUxPVknEhiDEkE9SxJBFCitSQU7EkEVMT1ZJxIYgSFJBTklTTEFWCitSQU7EkEVMT1ZJxIYgSUxJSkEKK1JBTsSQRUxPVknEhiBMSklMSkFOQQorUkFOxJBFTE9WScSGIExKVUJJxaBBCitSQU7EkEVMT1ZJxIYgTEpVQk9EUkFHCitSQU7EkEVMT1ZJxIYgTUlSSkFOQQorUkFOxJBFTE9WScSGIE1JUk9TTEFWCitSQU7EkEVMT1ZJxIYgTUlST1NMQVYKK1JBTsSQRUxPVknEhiBNTEFERU4KK1JBTsSQRUxPVknEhiBPQlJBRAorUkFOxJBFTE9WScSGIFJVxb1JQ0EKK1JBTsSQRUxPVknEhiBTTEFWT0xKVUIKK1JBTsSQRUxPVknEhiBTVEVWQU4KK1JBTsSQRUxPVknEhiBUT01JU0xBVgorUkFOxJBFTE9WScSGIFZMQVNUSU1JUgorUkFOxJBFTE9WScSGIFpPUkFOCitSQU5ERUxKIMSQT1LEkEUKK1JBTkRFTEogxJBVUsSQSU5LQQorUkFOREVMSiBMQVpBUgorUkFOREVMSiBPTElWRVJBCitSQU5ERUxKIFBFVEFSCitSQU5ERUxKIFNURVZBTgorUkFOREVMSiBTVkVUT1pBUgorUkFOR0VMT1YgRElNSVRBUgorUkFOR0VMT1YgU1RFVkFOCitSQU5HRUxPViBTVEVWQU4KK1JBTknEhiBWTEFESVNMQVYKK1JBTklOIEpPVkFOCitSQU5JTiBMQVpBUgorUkFOSVNBViBSQURJVk9KCitSQU5JU0FWTEpFViDFvUlWS08KK1JBTklTQVZMSkVWIMSQT1LEkEUKK1JBTklTQVZMSkVWIMSQT1LEkEUKK1JBTklTQVZMSkVWIEdPUkRBTkEKK1JBTklTQVZMSkVWIE1JTElDQQorUkFOSVNBVkxKRVYgTUlMT8WgCitSQU5JU0FWTEpFViBQQUpBCitSQU5JU0FWTEpFViBSQURBCitSQU5JU0FWTEpFViBSQURNSUxBCitSQU5JU0FWTEpFViBSQURNSUxBCitSQU5JU0FWTEpFViBSQURPU0xBVgorUkFOSVNBVkxKRVYgU0xBVk9MSlVCCitSQU5JU0FWTEpFViBTVEVWQU4KK1JBTklTQVZMSkVWIFRJSkFOQQorUkFOSVNBVkxKRVZJxIYgxb1BUktPCitSQU5JU0FWTEpFVknEhiDFvUVMSktPCitSQU5JU0FWTEpFVknEhiBCT0dVTUlMQQorUkFOSVNBVkxKRVZJxIYgRE9CUklWT0oKK1JBTklTQVZMSkVWScSGIERVxaBBTgorUkFOSVNBVkxKRVZJxIYgSkVMRU5BCitSQU5JU0FWTEpFVknEhiBORUJPSsWgQQorUkFOSVNBVkxKRVZJxIYgUkFESVZPSgorUkFOSVNBVkxKRVZJxIYgU0lOScWgQQorUkFOSVNBVkxKRVZJxIYgU0xBVktBCitSQU5JU0FWTEpFVknEhiBWSU9MRVRBCitSQU5JU0FWTEpFVknEhiBaT1JBTgorUkFOSVNMQVYtTEFSVFkgTkFEQSBEUgorUkFOSVRPVknEhiBCT8WgS08KK1JBTklUT1ZJxIYgQk9HT0xKVUIKK1JBTklUT1ZJxIYgRElWTkEKK1JBTklUT1ZJxIYgRFJBR09TTEFWCitSQU5JVE9WScSGIEpFTElDQQorUkFOSVRPVknEhiBTTEFWSUNBCitSQU5JVE9WScSGIFZFTElTTEFWCitSQU5LScSGIFNURVZPCitSQU5LScSGIFRPTUlTTEFWCitSQU5LT1YgQU5LSUNBCitSQU5LT1YgRFJBR0FOIERSCitSQU5LT1YgRFJBR09MSlVCCitSQU5LT1YgR1JPWkRBCitSQU5LT1YgSVJFTkEKK1JBTktPViBJVkFOS0EKK1JBTktPViBKT1ZBTgorUkFOS09WIEtPU1RBCitSQU5LT1YgTEpJTEpBTkEKK1JBTktPViBMSlVCSUNBCitSQU5LT1YgTUFSSUpBCitSQU5LT1YgTUlMQU4KK1JBTktPViBNSUxJVk9KCitSQU5LT1YgTUlST1NMQVYKK1JBTktPViBORURFTEpLTworUkFOS09WIE5FREVMSktPCitSQU5LT1YgT0xHSUNBCitSQU5LT1YgUEVUQVIKK1JBTktPViBSQURJU0xBVgorUkFOS09WIFJBRE1JTEEKK1JBTktPViBSQURPSktBCitSQU5LT1YgU1RFVkFOCitSQU5LT1YgU1RFVkFOCitSQU5LT1YgVEFOQVNJSkUKK1JBTktPViBaT1JBCitSQU5LT1ZJxIYgxb1JVktPCitSQU5LT1ZJxIYgQU7EkEVMS0EgRFIKK1JBTktPVknEhiBBTkRSSUpBCitSQU5LT1ZJxIYgQU5LQQorUkFOS09WScSGIEJPxaBLTworUkFOS09WScSGIEJPSkFOCitSQU5LT1ZJxIYgQk9SSVZPSgorUkFOS09WScSGIEJSQU5JU0xBVgorUkFOS09WScSGIEJSQU5LQQorUkFOS09WScSGIERBUklOS0EKK1JBTktPVknEhiBERVNBTktBCitSQU5LT1ZJxIYgRFJBR08KK1JBTktPVknEhiBEVcWgQU4KK1JBTktPVknEhiBEVcWgSUNBCitSQU5LT1ZJxIYgRFVCUkFWS0EKK1JBTktPVknEhiBJUkVOQQorUkFOS09WScSGIElWQU4KK1JBTktPVknEhiBKT1ZBTgorUkFOS09WScSGIExKVUJJQ0EKK1JBTktPVknEhiBNRUxBTklKQQorUkFOS09WScSGIE1JTElDQQorUkFOS09WScSGIE1JUk9TTEFWCitSQU5LT1ZJxIYgTklLT0xBIERJUEwgSU5HCitSQU5LT1ZJxIYgUFJFRFJBRworUkFOS09WScSGIFJBRElWT0oKK1JBTktPVknEhiBSQVRPTUlSCitSQU5LT1ZJxIYgUk9aQUxJSkEKK1JBTktPVknEhiBTTE9CT0RBTgorUkFOS09WScSGIFNURVZBTgorUkFOS09WScSGIFNWRVRPWkFSCitSQU5LT1ZJxIYgU1ZFVE9aQVIKK1JBTktPVknEhiBUT01JU0xBVgorUkFOS09WScSGIFZVS09TQVZBCitSQU5LT1ZJxIYgWk9SQU4KK1JBTk9HQUpFQyBJVkFOCitSQU9OScSGIMSQT1LEkEUKK1JBT05JxIYgSUtPTklKQQorUkFPTknEhiBKQU5LTworUkFPTknEhiBSQURFTktPCitSQU9OScSGIFNQQVNPSkUKK1JBT05JxIYgVlVLT0xBCitSQVDEjE8gS0FUQUxJTgorUkFQQUnEhiBERUpBTgorUkFQQUnEhiBNSU9EUkFHIERSCitSQVBBScSGIFJBREVOS0EKK1JBUEFJxIYgU1RFVkFOCitSQVBBSknEhiBBTkFNQVJJSkEKK1JBUEFKScSGIEJPUklWT0pFCitSQVBBSknEhiBEVcWgS08KK1JBUEFKScSGIE1JTEFOIEFEVk9LQVQKK1JBUEFKScSGIE1JTEFOCitSQVBBSknEhiBNSUxBTgorUkFQQUpJxIYgUkFET0pBCitSQVBBSknEhiBTVEVWQU4KK1JBUEFKScSGIFRBTUFSQQorUkFQScSGIEJPUkUKK1JBUEnEhiBEUkFHT01JUgorUkFQScSGIERVxaBBTktBCitSQVBJxIYgSk9WQU4KK1JBUEnEhiBKT1ZBTgorUkFQScSGIE1JTEFOCitSQVBJxIYgTkFEQQorUkFQScSGIE5FTkFECitSQVBJxIYgUkFERQorUkFQScSGIFJVxaBLTworUkFQTyBTVEpFUEFOCitSQVBPVEkgScWgVFZBTgorUkFTUE9QT1ZJxIYgQk/FoEtPCitSQVNQT1BPVknEhiBNSUxPxaAKK1JBU1BPUE9WScSGIFNMT0JPREFOCitSQVNQT1BPVknEhiBTVkVUSVNMQVYKK1JBU1BPUE9WScSGIFZMQURJU0xBVgorUkFTVEFWQUMgUEVUQVIKK1JBU1RJSyDEkE9SxJBFCitSQVNUT1ZBQyDEkFVSTworUkFTVE9WScSGIElMSUpBCitSQVNUT1ZJxIYgSkVMRU5BCitSQVNUT1ZJxIYgTUlMQU4KK1JBU1RPVknEhiBNSUxJQ0EKK1JBU1RPVknEhi1QTElWRUxJxIYgREVTQU5LQQorUkFTVE9WScSGIFJBRE9KS0EKK1JBU1RPVknEhiBTTE9CT0RBTgorUkFTVE9WScSGIFNURVZBTgorUkFTVE9WScSGIFZFUkEKK1JBVCBGRVJFTkMKK1JBVCBGUkFOSkEKK1JBVCBKQUtPQgorUkFUIEpPU0lQCitSQVRBSkFDIERSQUdPTEpVQiBEUgorUkFUR0VCRVIgSlVMSUpBCitSQVRHRUJFUiBMQVNMTworUkFUScSGIMSQVVLEkElOQQorUkFUScSGIEJPUkEKK1JBVEnEhiBEVcWgQU4KK1JBVEtFTEnEhiBNSUxBTgorUkFUS09WIMW9SVZLTworUkFUS09WIMSQT1LEkEUKK1JBVEtPViBBQ0EKK1JBVEtPViBCT1JJVk9KCitSQVRLT1YgQ0VDSUxJSkEKK1JBVEtPViBEUkFHQU4KK1JBVEtPViBEUkFHSU5KQQorUkFUS09WIERSQUdJTkpBCitSQVRLT1YgRFXFoEFOS0EKK1JBVEtPViBEVcWgQU4KK1JBVEtPViBKRUxFTkEKK1JBVEtPViBKVUxJSkFOQQorUkFUS09WIEtBVEFSSU5BCitSQVRLT1YgTEVQT1NBVkEKK1JBVEtPViBNScSGTworUkFUS09WIE1JTEVOS08KK1JBVEtPViBNSUxFTktPCitSQVRLT1YgTUlMSUNBCitSQVRLT1YgTkVOQUQKK1JBVEtPViBORU5BRAorUkFUS09WIFBBVkxFCitSQVRLT1YgUFJFRFJBRworUkFUS09WIFJBREUKK1JBVEtPViBSQURJVk9KCitSQVRLT1YgUkFET01JUgorUkFUS09WIFJVxb1JQ0EKK1JBVEtPViBTQVZLQQorUkFUS09WIFNNSUxKQU5BCitSQVRLT1YgU1RBTklTTEFWQQorUkFUS09WIFNUQU5JU0xBVgorUkFUS09WIFZFUkEKK1JBVEtPViBWSURPU0FWQQorUkFUS09WIFZMQURJTUlSCitSQVRLT1YgVkxBRElNSVIKK1JBVEtPViBWT0pJU0xBVgorUkFUS09WIFZVSklDQQorUkFVxaAgS0xBVURJSkEKK1JBVcWgIFJJSEFSRAorUkFVxaBFTkJFUkdFUiBNQVJUSU4KK1JBVcWgS0kgxJBPUsSQRQorUkFVxaBLSSBBTkdFTElOQQorUkFVxaBLSSBEQU5JTE8KK1JBVcWgS0kgTEpJTEpBTkEKK1JBVcWgS0kgTUlMQU5BCitSQVXFoEtJIE1JTE/FoAorUkFVU0FWTEpFVknEhiDEkE9SxJBFCitSQVVTQVZMSkVWScSGIERVxaBBTktBCitSQVVaQSBQQUxLTworUkFWQUpJxIYgxJBVUk8KK1JBVkFTSSBMSlVCSUNBCitSQVZJxIYgTklLT0xBCitSQVZJxIYgU0xPQk9EQU5LQQorUkFWTEnEhi1CQU5KQUMgU05Fxb1BTkEKK1JBVkxJxIYgUEVKTworUkFWTEnEhiBWSURBCitSQVZMSUpBIERSQUdBTgorUkFaREVWxaBFSyBTVE9KQU5LQQorUkFaScSGIETFvUVNQUwKK1JBWk1PVlNLSSBOSUtPTEEKK1JBWlVNRU5JxIYtS09UUk/FoEFOIE1JTEVOQQorUkXEjEVJIElMT05LQQorUkXEjEtPIElMRcWgCitSRcWgxIZBTlNLSSBCT8WgS08KK1JFxaDEhkFOU0tJIEJPR0RBTgorUkXFoMSGQU5TS0kgVkVSQQorUkXFoEVUQVIgQU5URQorUkXFoEVUQVIgU1RBTkEKK1JFxaBFVEFST1ZJxIYgSk9WQU4KK1JFxaBJVEkgxJBPUsSQRQorUkXFoE5KQUsgQU5EUklKQQorUkXFoE5KQUsgTEFTTE8KK1JFxaBOSkFLIFNURVZBTgorUkXFoE5KQUsgWk9SSUNBCitSRcW9TkpBSyBMQVNMTworUkXFvVVLIEpPU0lQCitSRcSQRVAgRFJBxaBLTworUkXEkEVQSSBExb1FTEpBTgorUkXEkEVQSSBNSUxBSU0KK1JFxJBFUE9WScSGIEFMSUpBCitSRUJBIEJMQUdPSkUKK1JFQkEgSUdPUgorUkVCQSBJR09SCitSRUJJxIYgQk9HREFOIERJUEwgSU5HCitSRUJJxIYgRFJBR0FOCitSRUJJxIYgTkVERUxKS08KK1JFQknEhiBORURFTEpLTworUkVCScSGIFNJTUVPTgorUkVCScSGIFNJTU8KK1JFQknEhiBTTE9CT0RBTiBEUgorUkVCScSGIFZMQURJTUlSCitSRUJSSU5BIEtBVEFSSU5BCitSRUTFvUEgSUJSQUhJTQorUkVExb1FSyBKT1ZBTgorUkVExb1FUCBKVVNOSUpBCitSRUTFvUVQT1YgxaBFVktJTgorUkVExb1FUE9WIEtBTUJFUgorUkVERSBSVURPTEYKK1JFRElHIFZJTElNCitSRURMSSDEkE9SxJBFCitSRURMSSBNQVJJSkEKK1JFRExJIFZFUkEKK1JFR0FKWiBTVEVWQU4KK1JFR0VDIEVURUxLQQorUkVHRUxKQUMgTEpVQklDQQorUkVHRUxKQUMgTUFSQQorUkVHRVIgSk9WQU4KK1JFR0wgVkxBRElNSVIKK1JFR09EScSGIFNWRVRPWkFSCitSRUdPSkVWScSGIE1MQcSQRU5LTworUkVIQUsgSU1SRQorUkVIQUsgTEFTTE8KK1JFSEFLIE9MR0EKK1JFSE5FUiBNQVJJSkEKK1JFSE5FUiBTVEFNRU5LQQorUkVJTkhPTEMgxJBFWkUKK1JFSU5IT0xDIMSQRVpFCitSRUlOSE9MWiDEkEVaRQorUkVLQSBBUklGCitSRUtBLUlWQU5PVknEhiBEVcWgSUNBCitSRUtFxIZFIMWgQU5ET1IKK1JFS0VDS0kgRUxFT05PUkEKK1JFS0VDS0kgSk/FvUVGCitSRUtJxIYgSFVTRUlOCitSRUxJxIYgxJBPUsSQRQorUkVMScSGIMSQT1LEkEUKK1JFTEnEhiBEQVJLTworUkVMScSGIERJTUlUUklKRQorUkVMScSGIEdPSktPCitSRUxJxIYgSk9WQU4KK1JFTEnEhiBKT1ZJQ0EKK1JFTEnEhiBLT05TVEFOVElOCitSRUxJxIYgTEpVQkFOCitSRUxJxIYgTUlMQU4KK1JFTEnEhiBNSUxFTktPCitSRUxJxIYgTUlMSVZPSgorUkVMScSGIE1JUkEKK1JFTEnEhiBQQVZMRQorUkVMScSGIFBFVEFSCitSRUxJxIYgUkFESU5LQQorUkVMScSGIFNBVkEKK1JFTEnEhiBTTEFWT0xKVUIKK1JFTEnEhiBTT0ZJSkEKK1JFTEnEhiBTT0ZJSkEKK1JFTEnEhiBTUE9NRU5LQSBESVBMIFBSQVZOSUsKK1JFTEnEhiBTUkVUQQorUkVMSkFOT1ZJxIYgTUFSSUpBCitSRUxKScSGIMSQVVJJQ0EKK1JFTEpJxIYgxJBVUk8KK1JFTEpJxIYgQk/FvUlEQVIKK1JFTEpJxIYgREFNSkFOS0EKK1JFTEpJxIYgREFOSUxPCitSRUxKScSGIEpPVkFOCitSRUxKScSGIExKVUJPTUlSCitSRUxKScSGIE1BUkEKK1JFTEpJxIYgTUlMT1JBRAorUkVMSknEhiBST01BTgorUkVMSknEhiBTTEFWS08KK1JFTEpJxIYgU01JTEpBCitSRUxKScSGIFNORcW9QU5BCitSRUxKScSGIFNURVZBTgorUkVMSknEhiBTVEVWQQorUkVMSknEhiBaTEFUS08KK1JFTEpJxIYgWk9SS0EKK1JFTEpJTiBEVcWgQU5LQQorUkVMSklOIERVxaBBTgorUkVMSklOIERVxaBBTgorUkVMSklOIElHTkpBVCBEUgorUkVMSklOIElMT05BCitSRUxKSU4gSVZBTgorUkVMSklOIExBWkFSCitSRUxKSU4gTEVQT1NBVkEKK1JFTEpJTiBNQVJJQ0EKK1JFTEpJTiBNSUxBTgorUkVMSklOIE1JTEFOCitSRUxKSU4gTUlMSUNBCitSRUxKSU4gTUlMSVZPSgorUkVMSklOIE1JTE/FoAorUkVMSklOIE1JTE/FoAorUkVMSklOIE1JTE/FoAorUkVMSklOIE1JTE/FoAorUkVMSklOIE1JTE9SQUQKK1JFTEpJTiBOQURBCitSRUxKSU4gUFJPS09QSUpFCitSRUxKSU4gUkFET1ZBTgorUkVMSklOIFNBVkEKK1JFTEpJTiBTSU1BCitSRUxKSU4gU0xPQk9EQU4KK1JFTEpJTiBTVEVWQU4KK1JFTE9UQSBSVURPTEYKK1JFTUVDS0kgRFJBR1VUSU4KK1JFTUVDS0kgUEVUQVIKK1JFTUVMSSBBTlRPTgorUkVNRUxJIExBU0xPCitSRU1FTkFSIERSQUdVVElOCitSRU1FUiBCUkFOSVNMQVYKK1JFTUxJTkdFUiBST0JFUlQKK1JFTsSMQVIgxaBBTkRPUgorUkVOxIxBUiBUSVZBREFSCitSRU7EjEVWScSGIE1JTEFOCitSRU5EVUxJxIYgTUFSS08KK1JFTkRVTEnEhiBTVE9KQU4KK1JFUMWgVE9LIEpPxb1FRgorUkVQQcWgSSBKT1NJUAorUkVQQcWgSSBTVEVWQU4KK1JFUEFDIMW9VcW9QU5BCitSRVBBQyDEkE9SxJBFCitSRVBBQyBBTkEKK1JFUEFDIElTQQorUkVQQUMgSk9WQU4KK1JFUEFDIEtPVklMSktBCitSRVBBQyBNSVJPU0xBVgorUkVQQUMgUEVSS0lDQQorUkVQQUMgUEVUQVIKK1JFUEFDIFNMQVZLTworUkVQQUMgU1RBTknFoEEKK1JFUEFDIFZBU0lMSUpBCitSRVBJxIYgxb1JVkFOCitSRVBJxIYgREFOSUNBCitSRVBJxIYgRU1JTAorUkVQScSGIEdJWkVMQQorUkVQScSGIElWQU4KK1JFUEnEhiBNQVJLTworUkVQScSGIE1JTEVOQQorUkVQScSGIE1JTEtBCitSRVBJxIYgVkVSSUNBCitSRVBJxIYgWk9SQU4KK1JFU0FOIEFOQQorUkVTQU5PVknEhiBBTktBCitSRVNBTk9WScSGIERSQUdBTgorUkVTQU5PVknEhiBMSlVCTworUkVTQU5PVknEhiBOQURBCitSRVNBTk9WScSGIFBFUk8KK1JFU01BTiBaRFJBVktPCitSRVNVTE9WU0tJIFNUT0pBTgorUkVVIExBVklORUwKK1JFVkVTIEFORFJJSkEKK1JFVklEIEtBVEFSSU5BCitSRVpBTkNPViBLQVRJQ0EKK1JFWkVDIEFOVE9OCitSRVpOScSMRUsgS0FSTE8KK1JJxb1BTkpJIElSRU5BCitSScSQScSMS0kgxJBPS0EKK1JJxJBJxIxLSSDEkE9SxJBFCitSScSQScSMS0kgTUlMQU5LQQorUknEkEnEjEtJIE1JTEFOCitSScSQScSMS0kgU1BPTUVOS0EKK1JJxJBJSy1HUlVKScSGIMSMRURPTUlSCitSScSQSUstR1JVSknEhiBKQURSQU5LQQorUknEkElLLUdSVUpJxIYgVkVMSU1JUgorUklCQVIgxaBBTkRPUgorUklCQVIgQkVMQSBEUgorUklCQVIgSU1SRQorUklCQVIgS0FUSUNBCitSSUJBUkVWScSGIFZFUkEKK1JJQkFST1YgTUlST1NMQVYKK1JJQkFST1YgU0xBVklDQQorUklCScSMIFJVxb1BCitSSUJJxIYgxIxFRE8KK1JJQknEhiBCUkFOS08KK1JJQknEhiBGUkFOQworUklCScSGIEpPVkFOCitSSUJJxIYgTUlIQUpMTworUklCScSGIE1JTEFOCitSSUJJxIYgUEFWTworUklCScSGIFBFVEFSCitSSUJJxIYgU1RBTktPCitSSUJJxIYgWk9SSUNBCitSSUJPVknEhiBBTUFMSUpBCitSSUMgTUlIQUxKIERJUEwgT0VDCitSSUMgUlVET0xGCitSSUMgVkVTRUxJTgorUklDQSBBTklDQQorUklDRSBNQVJHSVRBCitSSUdPIMSQVUxBCitSSUdPIExBU0xPCitSSUhBSyBOQU5ET1IKK1JJSFRBUkVDIEtBVEFSSU5BCitSSUpBVkVDIElWQU4KK1JJS0VSIFpWT05JTUlSCitSSUtJxIYgxb1FTEpLTworUklLScSGIERSQUdJQ0EKK1JJS0nEhiBNSUxBRElOCitSSUtJxIYgTUlMRU5LTworUklMIFBBTAorUklMQUsgTUlMT01JUgorUklMS0UgUk9CRVJUCitSSU3FoE5BSkRFUiBST0JFUlQKK1JJTUFDIEpPU0lQCitSSU1BTiBFR09OIERSCitSSU1BUiBMRU9OQQorUklNQVIgVkxBRElNSVIKK1JJTVNLSSDFvUFSS08KK1JJTVNLSSDFvUFSS08KK1JJTVNLSSDFvUFSS08KK1JJTVNLSSDFvUFSS08KK1JJTVNLSSDEkE9LQQorUklNU0tJIEJJU0VSS0EKK1JJTVNLSSBCSVNFUktBCitSSU1TS0kgQlJBTklTTEFWCitSSU1TS0kgQlJBTktBCitSSU1TS0kgQlJBTktPCitSSU1TS0kgSkFTTUlOQQorUklNU0tJIEpFTEVOQQorUklNU0tJIE1JTEFOCitSSU1TS0kgTUlMSUNBCitSSU1TS0kgTkFUQUxJSkEKK1JJTVNLSSBOT1ZBSworUklNU0tJIFNBVkEKK1JJTVNLSSBTQVZBCitSSU1TS0kgU01JTEpBCitSSU1TS0kgU01JTEpBCitSSU1TS0kgU1RFVkFOCitSSVMgxaBBTkRPUgorUklTIEFMRUtTQU5EQVIKK1JJUyBEUkFHSU5KQQorUklTIERVxaBLTworUklTIEdFWkEKK1JJUyBORURFTEpLTworUklTIFNURVZBTgorUklTIFRBTkpBCitSSVMgWkRSQVZLTworUklTT1ZJxIYgRFXFoEFOCitSSVNPVknEhiBORURFTEpLTworUklTT1ZJxIYgTkVERUxKS08KK1JJU1RBIMW9RUxKS0EKK1JJU1RBTk9WScSGIENWRVRJTgorUklTVEFOT1ZJxIYgUkFERQorUklTVEFOT1ZJxIYgUkFET1NMQVYKK1JJU1RBTk9WScSGIFZFUklDQQorUklTVEFOT1ZJxIYgVk9KSU1JUgorUklTVEFOT1ZJxIYgWkRSQVZLTworUklTVEFOT1ZJxIYgWk9SQU4KK1JJU1RBTk9WScSGIFpPUkFOCitSSVNUScSGIMSQT1LEkEUgRFIgTEVLQVIKK1JJU1RJxIYgxJBPUsSQRQorUklTVEnEhiDEkE9SxJBFCitSSVNUScSGIMSQT1LEkEUKK1JJU1RJxIYgxJBVSkEKK1JJU1RJxIYgxJBVUsSQQQorUklTVEnEhiBBTEVLU0FOREFSCitSSVNUScSGIEFMRUtTQU5EQVIKK1JJU1RJxIYgQUxFS1NBTkRBUgorUklTVEnEhiBBTEVLU0FOREFSCitSSVNUScSGIEFMRUtTQQorUklTVEnEhiBBTkRSSUpBCitSSVNUScSGIEJPxb1JREFSCitSSVNUScSGIEJPxb1JREFSCitSSVNUScSGIEJPUkEKK1JJU1RJxIYgQk9SSVNMQVYKK1JJU1RJxIYgQlJBTklTTEFWCitSSVNUScSGIEJSQU5LTworUklTVEnEhiBDVkpFVEFOS0EKK1JJU1RJxIYgREFOSUxPCitSSVNUScSGIERBUklOS0EKK1JJU1RJxIYgRElNSVRSSUpFCitSSVNUScSGIERJTUlUUklKRQorUklTVEnEhiBESU1JVFJJSkUKK1JJU1RJxIYgRE9CUklWT0pFCitSSVNUScSGIERSQUdBTgorUklTVEnEhiBEUkFHQU4KK1JJU1RJxIYgRFJBR0nFoEEKK1JJU1RJxIYgRFJBR0lDQQorUklTVEnEhiBEUkFHT0pMQQorUklTVEnEhiBEUkFHT0xKVUIKK1JJU1RJxIYgRFJBR09MSlVCCitSSVNUScSGIERVxaBBTiBEUgorUklTVEnEhiBEVcWgQU4KK1JJU1RJxIYgRFXFoEFOCitSSVNUScSGIERVxaBBTgorUklTVEnEhiBEVcWgQU4KK1JJU1RJxIYgR0FWUklMTworUklTVEnEhiBJU0lET1IKK1JJU1RJxIYgSkFTTUlOQQorUklTVEnEhiBKRUxFTkEKK1JJU1RJxIYgSkVMRU5BCitSSVNUScSGIEpFUkVNSUpBCitSSVNUScSGIEpPVkFOIERSCitSSVNUScSGIEpPVkFOIERSCitSSVNUScSGIEpPVkFOCitSSVNUScSGIEtTRU5JSkEKK1JJU1RJxIYgTEFCVUQgRFIgTEVLQVIKK1JJU1RJxIYgTEFaQVIKK1JJU1RJxIYgTEpJTEpBTkEKK1JJU1RJxIYgTEpJTEpBTkEKK1JJU1RJxIYgTEpVQklDQQorUklTVEnEhiBMSlVCSUNBCitSSVNUScSGIE1BUklKQQorUklTVEnEhiBNQVJJSkEKK1JJU1RJxIYgTUFSSUpBCitSSVNUScSGIE1BUklKQQorUklTVEnEhiBNQVJJSkVOS0EKK1JJU1RJxIYgTUFSS08KK1JJU1RJxIYgTUlIQUpMTworUklTVEnEhiBNSUxBTktBCitSSVNUScSGIE1JTEFOCitSSVNUScSGIE1JTEFOCitSSVNUScSGIE1JTEFOCitSSVNUScSGIE1JTEFOCitSSVNUScSGIE1JTEFOCitSSVNUScSGIE1JTEVUQQorUklTVEnEhiBNSUxJVk9KRQorUklTVEnEhiBNSUxLQQorUklTVEnEhiBNSUxPxaAKK1JJU1RJxIYgTUlMT8WgCitSSVNUScSGIE1JTE9SQUQKK1JJU1RJxIYgTUlMT1JBRAorUklTVEnEhiBNSUxVTgorUklTVEnEhiBNSUxVVElOCitSSVNUScSGIE1JT0RSQUcKK1JJU1RJxIYgTUlPRFJBRworUklTVEnEhiBNSVJPU0xBVgorUklTVEnEhiBNSVJPU0xBVgorUklTVEnEhiBNSVJPU0xBVgorUklTVEnEhiBNSVJPU0xBVgorUklTVEnEhiBNSVJPU0xBVgorUklTVEnEhiBNTEFERU4KK1JJU1RJxIYgTkFEQQorUklTVEnEhiBOQVRBTElKQQorUklTVEnEhiBORUdPVkFOCitSSVNUScSGIE5FU1RPUgorUklTVEnEhiBOSUtPTEEKK1JJU1RJxIYgTklLT0xBCitSSVNUScSGIE5PVklDQQorUklTVEnEhiBPTEdBCitSSVNUScSGIFBBVkxFCitSSVNUScSGIFBFUkEKK1JJU1RJxIYgUEVUQVIKK1JJU1RJxIYtUE9QT1ZJxIYgTUlMSUNBCitSSVNUScSGIFJBRElTQVYKK1JJU1RJxIYgUkFJU0EKK1JJU1RJxIYgUk9ET0xKVUIgRFIKK1JJU1RJxIYgU0FWQQorUklTVEnEhiBTQVZBCitSSVNUScSGIFNBVk8KK1JJU1RJxIYgU0xBxJBBTgorUklTVEnEhiBTTEFWSUNBCitSSVNUScSGIFNMQVZJQ0EKK1JJU1RJxIYgU0xBVktPCitSSVNUScSGIFNQT01FTktBCitSSVNUScSGIFNUQU5JxaBBCitSSVNUScSGIFNUQU5PSkUgRFIKK1JJU1RJxIYgU1RFVkFOCitSSVNUScSGIFNURVZBTgorUklTVEnEhiBTVEVWQU4KK1JJU1RJxIYgU1RFVkFOCitSSVNUScSGIFNURVZJQ0EKK1JJU1RJxIYgU1ZFVElTTEFWCitSSVNUScSGIFRFTUVMSktPCitSSVNUScSGIFRPTUlTTEFWCitSSVNUScSGIFZFUklDQQorUklTVEnEhiBWSVRPTUlSCitSSVNUScSGIFZMQURJTUlSCitSSVNUScSGIFZMQURJTUlSCitSSVNUScSGIFZMQURJTUlSCitSSVNUScSGIFZPSklOCitSSVNUScSGIFZPSklTTEFWCitSSVNUScSGIFpBR09SS0EKK1JJU1RJxIYgWkRSQVZLTworUklTVEnEhiBaT1JBTgorUklTVEnEhiBaT1JBTgorUklTVElOIEpPVkFOCitSSVNUSU4gTUlPRFJBRworUklTVElOIE1JT0RSQUcKK1JJU1RJVk9KRVZJxIYgQU7EkEVMS0EKK1JJU1RJVk9KRVZJxIYgQU5JQ0EKK1JJU1RJVk9KRVZJxIYgREVTSU1JUgorUklTVElWT0pFVknEhiBJR05KQVQKK1JJU1RJVk9KRVZJxIYgUkFET01JUgorUklTVElWT0pFVknEhiBSQVRPTUlSCitSSVNUSVZPSkVWScSGIFNUT0pBTktBCitSSVNUSVZPSkVWScSGIFpEUkFWS08KK1JJU1RPVknEhiBKT1ZBTktBCitSSVNUT1ZJxIYgTkVCT0rFoEEKK1JJU1RPVknEhiBSQURJVk9KRQorUklTVE9WScSGIFJBVEtPCitSSVNUT1ZTS0kgQUxFS1NBTkRBUgorUklTVE9WU0tJIEtPU1RBCitSSVNUT1ZTS0kgTEpJTEpBTkEKK1JJU1RPVlNLSSBMSklMSkFOQQorUklTVE9WU0tJIExKVUJPCitSSVNUT1ZTS0kgU0lNRU9OCitSSVRFUiBBTktJQ0EKK1JJVEVSIEFOVE9OCitSSVRFUiBGUkFOSkEKK1JJVEVSIEpPxb1FRgorUklURVIgTFVEVklHCitSSVRFUiBOQURBCitSSVRPQyBHRVpBCitSSVRURVIgxaBBTkRPUgorUklWScSGIElWTworUklaTknEhiBCUkFOSVNMQVZBCitSSVpOScSGIFZFTEpLTworUklaTknEhiBWRUxKS08KK1JJWk9WU0tJIERSQUdPCitSSVpWQU4gxaBVS1JJCitSSVpWQU5PVknEhiBTQURJSworUk1VxaAgWk9SSUNBCitSTknEhiBNSUhBSUxPCitSTkpBSyBEQU5JQ0EKK1JOSkFLIFNUQU5LTworUk/FoElOIEtTRU5JSkEKK1JPxaBJTiBaT1JLTworUk/FoFUgS09TVEEKK1JPxaBVTEogxb1JVkFOCitST8WgVUxKIMW9SVZBCitST8WgVUxKIEFOxJBFTEtBCitST8WgVUxKIEVNSUwKK1JPxaBVTEogTEFaQVIKK1JPxaBVTEogTUlMQU5BCitST8WgVUxKIE1JTE9SQUQKK1JPxaBVTEogUkFET1ZBTgorUk/FoFVMSiBTVkVUT1pBUgorUk/FoFVMSiBaT1JBTgorUk/FoFVMSkEgVkFTQQorUk/FoFVMT1YgU1RBRE9KRQorUk/FvUEgQkVMQQorUk/FvUEgRkVSRU5DCitST8W9QSBKQU5PxaAKK1JPxb1BIEpPVkFOCitST8W9QSBNSVJLTworUk/FvUFOS09WScSGIElWQU4KK1JPxJBBSyBGUkFOSkEKK1JPxJBFTktPViDFvUlWT0pJTgorUk/EkEVOS09WIMSQVVJBCitST8SQRU5LT1YgTUlMT8WgCitST0JPVEnEhiBBTkEKK1JPQk9UScSGIFRFUkVaQQorUk9EIERBTklDQQorUk9EScSGIMSMRURPTUlSCitST0RJxIYgxIxFRE9NSVIKK1JPREnEhiDFoFBJUk8KK1JPREnEhiDEkE9SxJBFCitST0RJxIYgQUxFS1NBTkRBUgorUk9EScSGIEFORFJJSkEKK1JPREnEhiBCT8W9TworUk9EScSGIEJPxb1PCitST0RJxIYgQk9HREFOCitST0RJxIYgQk9SSVNMQVYKK1JPREnEhiBCT1JJU0xBVgorUk9EScSGIEJSQU5JU0xBVgorUk9EScSGIERBTklDQQorUk9EScSGIERSQUdBTgorUk9EScSGIERSQUdPTUlSCitST0RJxIYgRFXFoEFOCitST0RJxIYgRFXFoEFOCitST0RJxIYgRFXFoEFOCitST0RJxIYgRFXFoEFOCitST0RJxIYgR09KS08KK1JPREnEhiBHT0pLTworUk9EScSGIEdPSktPCitST0RJxIYgSkVMSVNBVkVUQQorUk9EScSGIEpPVk8KK1JPREnEhiBMRVBBCitST0RJxIYgTEpJTEpBTkEKK1JPREnEhiBNQU5PSkxPCitST0RJxIYgTUnEhkEKK1JPREnEhiBNScSGTworUk9EScSGIE1JTEFOCitST0RJxIYgTUlMRU5BCitST0RJxIYgTUlMSUNBCitST0RJxIYgTUlMSUNBCitST0RJxIYgTUlMS0EKK1JPREnEhiBNSUxPxaAKK1JPREnEhiBNSUxPUkFECitST0RJxIYgTUlSS08KK1JPREnEhiBNSVJPU0xBVgorUk9EScSGIE5BVEFMSUpBCitST0RJxIYgTkXEkE8KK1JPREnEhiBORURFTEpLTworUk9EScSGIE5JS09MQQorUk9EScSGIE5JS09MQQorUk9EScSGIE5JS09MQQorUk9EScSGIE5JS09MQQorUk9EScSGIE9MR0EKK1JPREnEhiBQRVRBUiBESVBMIElORworUk9EScSGIFBFVEFSCitST0RJxIYgUEVUUkEKK1JPREnEhiBSQURFCitST0RJxIYgUkFOS08KK1JPREnEhiBTTEFWS08KK1JPREnEhiBTTUlMSkEKK1JPREnEhiBTUkVURU4KK1JPREnEhiBTVEFOS08KK1JPREnEhiBTVEVWQU4KK1JPREnEhiBTVVpBTkEKK1JPREnEhiBTVVpBTkEKK1JPREnEhiBTVkVUS08KK1JPREnEhi1UT01MSkFOT1ZJxIYgTUlSSkFOQQorUk9EScSGIFZFUklDQQorUk9EScSGIFpPUkFOCitST0dBxIwgU1ZFVExBTkEKK1JPR0HEjCBTVkVUT1pBUgorUk9HQcSMRVZJxIYgT0JSQUQKK1JPR0FMSlNLSSBKRUxFTkEKK1JPR0FMTyBBTlRPTgorUk9HQU4gU1ZFVE9aQVIKK1JPR0FOT1ZJxIYgS0FUQVJJTkEKK1JPR0FOT1ZJxIYgTFVLQQorUk9HQU5PVknEhiBNSUxBTktBCitST0dBTk9WScSGIE5BREEKK1JPR0FOT1ZJxIYgTk9WQUsKK1JPR0FOT1ZJxIYgU0xPQk9EQU4KK1JPR0FOT1ZJxIYgU1RFVk8KK1JPR0FOT1ZJxIYgVEFOSkEKK1JPR0FOT1ZJxIYgVkVMSVpBUgorUk9HQVZBQyBNSUxBTgorUk9HScSGIEFMRUtTQQorUk9HScSGIE1JTE9SQUQKK1JPR0nEhiBTQVZBCitST0dJxIYgVkVMSktPCitST0dJxIYgVkVTRUxJTgorUk9HScSGIFZFU05BCitST0dJxIYgWk9SQU4KK1JPR0xJxIYgSVZBTgorUk9HTEnEhiBMSlVCT01JUgorUk9HTEnEhiBNSUxBTgorUk9HTEnEhiBWRVNOQQorUk9HTEnEhiBWRVNOQQorUk9HT8W9QVJTS0kgU1RFVkFOS0EKK1JPR1VMScSGIEpFTEVOQQorUk9HVUxKQSDEkE9SxJBFCitST0dVTEpBIElMSUpBCitST0dVTEpBIEpPVkFOCitST0dVTEpBIE5JS09MQQorUk9HVUxKQSBQQVZMRSBEUgorUk9HVUxKScSGIE1JTE9SQUQKK1JPR1VMSknEhiBORURFTEpLTworUk9HVUxKScSGIFBSRURSQUcKK1JPR1VMSknEhiBaRFJBVktPCitST0pLQSBBTkRSRUoKK1JPSktBIEFORFJFSgorUk9KTklLIExKVUJPTUlSCitST0tBIMW9VcW9QU5BCitST0tBIEpBTk/FoAorUk9LQSBWQUxFUklKQQorUk9LQUkgUEVUQVIKK1JPS0nEhiBEVcWgQU4KK1JPS0nEhiBNSUxFTktPCitST0tMSUNFUiBGUkFOSkEKK1JPS0xJQ0VSIEpPU0lQCitST0tOScSGIEpVTEtJQ0EKK1JPS05JxIYgTUlMRU5LTworUk9LTknEhiBNT03EjElMTworUk9LU0FOREnEhiBBREFNCitST0tTQU5EScSGIE1JTEFOCitST0tTQU5EScSGIFNJTUEKK1JPS1NBTkRJxIYgVkxBRElNSVIKK1JPS1NBTkRJxIYgVkxBRE8KK1JPS1NJxIYgU0xPQk9EQU4KK1JPS1ZJxIYgQk9HREFOCitST0tWScSGIEJSQU5JU0xBVgorUk9LVknEhiBEVcWgQU4KK1JPS1ZJxIYgR09KS08KK1JPS1ZJxIYgTEFaQVIKK1JPS1ZJxIYgTUFSS08KK1JPS1ZJxIYgTUlMQU4KK1JPS1ZJxIYgTUlMSUNBCitST0tWScSGIE1JTE9SQUQKK1JPS1ZJxIYgTklLT0xBIERJUEwgUE9MSVRJS09MT0cKK1JPS1ZJxIYgT01JTEpLTworUk9LVknEhiBSQURJVk9KCitST0tWScSGIFJBRE9KS0EKK1JPS1ZJxIYgUkFOS08KK1JPS1ZJxIYgU0lOScWgQQorUk9LVknEhiBWRVNFTEtPCitST0tWScSGIFpEUkFWS08KK1JPTEFORCBUT01JU0xBVgorUk9MT1ZJxIYgRFXFoEFOS0EKK1JPTE9WScSGIE9MR0EKK1JPTSBCUkFOS0EKK1JPTcSMRVYgTUlST1NMQVYKK1JPTUFOIEpFTEVOQQorUk9NQU4gTEpVQklDQQorUk9NQU4gTUlORUEKK1JPTUFOIE1JUk9OCitST01BTiBST01LTworUk9NQU5EScSGIEFOS0lDQQorUk9NQU5EScSGIEpFTEVOQQorUk9NQU5EScSGIFNUQU5JTUlSCitST01BTkVMSSBHSU5PCitST01BTknEhiBEVcWgQU4KK1JPTUFOScSGIEVSxb1FQkVUCitST01BTknEhiBKT0MwCitST01BTknEhiBNQVJJSkEKK1JPTUFOS0lWIE1JSEFKTE8KK1JPTUFOT1YgSk9TSVAKK1JPTUFOT1YgU05Fxb1BTkEKK1JPTUFOT1ZJxIYgxJBPUsSQRSBESVBMIFBSQVZOSUsKK1JPTUFOT1ZJxIYgxJBPUsSQRQorUk9NQU5PVknEhiBBTEVLU0FOREFSCitST01BTk9WScSGIElMSU5LQQorUk9NQU5PVknEhiBNSUxBTgorUk9NQU5PVknEhiBOQURBCitST01BUyBKT1NJUAorUk9NScSGIEVUQQorUk9NScSGIEpBTktPCitST01JxIYgTEpVQk9NSVIKK1JPTUnEhiBMSlVCT01JUgorUk9NScSGIE1MQURFTgorUk9NScSGIE5FTkFECitST01JxIYgUEFWTEUKK1JPTUnEhiBQUkVEUkFHCitST01PREEgScWgVFZBTgorUk9NT0RBIEtBUkxPCitST01PREEgTUFSSUpBCitST07EjEVMSSBLQVRJQ0EKK1JPTsSMRVZJxIYgQk9HREFOCitST07EjEVWScSGIERSQUdBTgorUk9OxIxFVknEhiBJS09OSUpBCitST07EjEVWScSGIEtPU1RBCitST07EjEVWScSGIE1JTEUKK1JPTsSMRVZJxIYgTkFEQQorUk9OxIxFVknEhiBPQlJBRAorUk9OxIxFVknEhiBQRVRBUgorUk9OxIxFVknEhiBQRVRBUgorUk9OxIxFVknEhiBQRVRBUgorUk9OxIxFVknEhiBSQURJVk9KRQorUk9OxIxFVknEhiBTQVZFVEEKK1JPTsSMRVZJxIYgU0FWTworUk9OxIxFVknEhiBTVEFOQQorUk9OxIxFVknEhiBTVEFOSU1JUgorUk9OxIxFVknEhiBTVEFOSU1JUgorUk9OxIxFVknEhiBTVEVWQU4KK1JPTsSMRVZJxIYgU1RFVkFOCitST07EjEVWScSGIFZFUkEKK1JPTkFJIE1JUktPIERJUEwgSU5HCitST05UTyBGUkFOQ0nFoEtBCitST05UTyBJTE9OS0EKK1JPTlRPIEpBS09CCitST05UT1ZJxIYgUkFET1NMQVYKK1JPUiBERVNBCitST1JCQUhFUiBNQUdET0xOQQorUk9TScSGIMSQVVJPCitST1NJxIYgQk9HREFOCitST1NJxIYgRFJBR0FOQQorUk9TScSGIERSQUdBTgorUk9TScSGIERSQUdBTgorUk9TScSGIERSQUdBTgorUk9TScSGIERSQUdBTgorUk9TScSGIERVxaBBTgorUk9TScSGIEdST1pEQU5BCitST1NJxIYgSUxJSkEKK1JPU0nEhiBMSklMSkFOQQorUk9TScSGIE1JTEVOQQorUk9TScSGIE1JTElDQQorUk9TScSGIE1JTE9SQUQKK1JPU0nEhiBNSU9EUkFHCitST1NJxIYgTklLT0xBCitST1NJxIYgT1NUT0pBCitST1NJxIYgVkxBRElNSVIKK1JPU0nEhiBaT1JBTgorUk9TTEFWTEpFViBWT0pJU0xBVgorUk9TTyBJVkFOCitST1NPIE1BUlRBCitST1QgREVaSURFUgorUk9UIEZSQU5KQQorUk9UQVJJVSBUSUJFUklKRQorUk9UQkFSVCBWTEFESVNMQVYKK1JPVElNIElWQU4KK1JPVsSMQU5JTiBFVcSQRU5JSkEKK1JPVsSMQU5JTiBVWkVJUgorUk9WxIxBTklOIFZFU0VMSU4KK1JPVknEhiBCUkFOSVNMQVYKK1JPVknEhiBESU1JVFJJSkUKK1JPVk8gTUlIQUxKCitST1pFTlRBTCBEUkFHSUNBCitST1pFTlRBTCBLQVJMTworUk9aRU5UQUwgTUFSVE9OCitST1pJxIYgQU5URQorUk9aTUFSSU5HIEnFoFRWQU4KK1JPWk1JUk9WIERSQUdBTgorUk9aTUlST1YgTUlMRU5LTworUlXFoElUSSBBTElKQQorUlXFoEtPIEVSxb1FQkVUCitSVcWgS1VDIMSQT1LEkEUKK1JVxaBLVUMgQVRBTkFTSUpFCitSVcWgS1VDIE1BUkdBUklUQQorUlXFoEtVQyBNQVJUQQorUlXFoEtVQyBQQVZMRQorUlXFoEtVQyBTVEVWQU4KK1JVxaBLVUMgU1ZFVElTTEFWCitSVcWgS1VDIFZFU0VMSU4KK1JVxaBLVUMgVkxBRElNSVIKK1JVxb1BTk9WScSGIERSQUdPTEpVQgorUlXFvUFOT1ZJxIYgTUFSSUpBCitSVcW9ScSMScSGIMSQT1LEkEUKK1JVxb1JxIxJxIYgQk/FoEtPCitSVcW9ScSMScSGIE1JTEFOCitSVcW9ScSMSU4gREFOSUNBCitSVcW9ScSMSU4gUkFESVZPSgorUlXFvUnEjEtBIMSQVVJBCitSVcW9ScSMS0EgUlXFvUEKK1JVxb1JxIYgxb1BUktPCitSVcW9ScSGIEFMRUtTQU5EQVIKK1JVxb1JxIYgRFJBxb1BTkEKK1JVxb1JxIYgRFXFoEFOCitSVcW9ScSGIERVxaBBTgorUlXFvUnEhiBEVcWgQU4KK1JVxb1JxIYgRU1BCitSVcW9ScSGIEdPUkRBTkEKK1JVxb1JxIYgSVZJQ0EKK1JVxb1JxIYgSk9WQU4KK1JVxb1JxIYgSk9WTworUlXFvUnEhiBKVUxLQQorUlXFvUnEhiBLUlNUTworUlXFvUnEhiBNQVJJSkEKK1JVxb1JxIYgTUFSSUpBCitSVcW9ScSGIE1JTEFOCitSVcW9ScSGIE1JTEFOCitSVcW9ScSGIE1JTElWT0oKK1JVxb1JxIYgTUlSQQorUlXFvUnEhiBNSVJKQU5BCitSVcW9ScSGIE1JUkpBTkEKK1JVxb1JxIYgTUlSS08KK1JVxb1JxIYgTklLT0xBCitSVcW9ScSGIE5JS09MQQorUlXFvUnEhiBQQVZBCitSVcW9ScSGIFBFVEFSCitSVcW9ScSGIFJBRE1JTEEKK1JVxb1JxIYgUkFET01JUgorUlXFvUnEhiBTTE9CT0RBTgorUlXFvUnEhiBTTUlMSkFOQQorUlXFvUnEhiBTVEFOS08KK1JVxb1JxIYtU1RBUkkgVkVTTkEKK1JVxb1JxIYgU1RKRVBBTgorUlXFvUnEhiBTVkVUT0xJSworUlXFvUnEhiBWRUxKS08KK1JVxb1JxIYgVkxBRElNSVIgRElQTCBJTkcKK1JVxb1JxIYgWk9SQU4KK1JVxb1JxIYgWk9SQU4KK1JVxb1JTiDEjEVET01JUgorUlXFvUlOIE1JTE9SQUQKK1JVxb1OSUNLSSBJVkFOCitSVcSQQSBORU1BTkpBCitSVcSQQSBaT1JBTgorUlXEkEEgWk9SQU4KK1JVQkXFvUnEhiBNSUxPVkFOCitSVUJFxb1JxIYgU0xPQk9EQU4KK1JVQklOIE1JTEFOCitSVUJVxaAgQUdORVpBCitSVUJVxaAgSk/FvUVGCitSVURBTiBNQVJLTworUlVEQU4gUkFESVZPSkUKK1JVREXFvSBJTElKQQorUlVERcW9IE1JxIZPCitSVURFxb0gUEVSQQorUlVERUsgSkFST1NMQVYKK1JVREVLIE5JS09MQQorUlVERUsgTklLT0xBCitSVURJxIYgREFSS08KK1JVREnEhiBESU1JVFJJSkUKK1JVREnEhiBEUkFHQU4KK1JVREnEhiBEVcWgQU4KK1JVREnEhiBJTVJFCitSVURJxIYgSVZBTgorUlVEScSGIElWQU4KK1JVREnEhiBKT1NJUAorUlVEScSGIExBWkFSCitSVURJxIYgTUFSS08KK1JVREnEhiBNQVJLTworUlVEScSGIE1JTEtBCitSVURJxIYgTkVERUxKS08KK1JVREnEhiBOSUtPTEEKK1JVREnEhiBQRVJBCitSVURJxIYgU1RFVkFOCitSVURJxIYgU1RFVklDQQorUlVEScSGLVZSQU5JxIYgTkVERUxKS0EKK1JVRE9MRiBLTEFKTgorUlVET0xGIE9MR0EKK1JVRE9MRiBTUEFTT0pFCitSVURPTEYgWk9SQU4KK1JVRE9WScSGIERBTklMTworUlVET1ZJxIYgSUxJSkEKK1JVRE9WScSGIEpVR09TTEFWCitSVURPVknEhiBNSVJKQU5BCitSVURPVknEhiBaT1JBTgorUlVGxIxFU0tJIFNMT0JPREFOCitSVUpFVknEhiBKQURSQU5LQQorUlVKRVZJxIYgTUlMRVZBCitSVUtBVklOQS3FoExJQkFSIEhFUk1JTkEKK1JVS0FWSU5BIEFMRUtTQU5EQVIKK1JVS0FWSU5BIEJBUklDQQorUlVLQVZJTkEgREVTUElOQQorUlVLQVZJTkEgRE9CUklMQQorUlVLQVZJTkEgRFXFoEFOCitSVUtBVklOQSBKVVJFCitSVUtBVklOQSBLUkXFoElNSVIKK1JVS0FWSU5BIExKVUJJQ0EKK1JVS0FWSU5BIE1BUklKQQorUlVLQVZJTkEgTUlMS0EKK1JVS0FWSU5BIFJVRE9MRgorUlVLQVZJTkEgUlVET0xGCitSVUtBVklOQSBTVEVWQU4KK1JVS0FWSU5BIFpWT05JTUlSCitSVU1BTiBNSUhBSkxPCitSVU5JxIYgTUFSSUpBCitSVU5JxIYgTUlMQU4gRElQTCBJTkcKK1JVTkpBSknEhiBJTElKQQorUlVOSkFOSU4gxJBPUsSQRQorUlVOSkFOSU4gVkxBRElTTEFWCitSVU5KQU5JTiBWT0pPCitSVU5KScSGIEFNQUxJSkEKK1JVTkpJxIYgRFJBR0FOCitSVU5KScSGIERSQUdJQ0EKK1JVTkpJxIYgR0FWUklMTworUlVOSknEhiBHT1JBTgorUlVOSk8gSk9WQU4KK1JVTlRJxIYgQk/FoEtPCitSVVDEjEnEhiBWTEFESU1JUgorUlVQQSBBVElMQQorUlVQQVIgQlJBTklTTEFWCitSVVBBUiBFUsW9RUJFVAorUlVQScSGIMW9SVZLTworUlVQTkpBSyBCUkFOSVNMQVYKK1JVUyDEkFVSxJBJTktBCitSVVMgRFJBR0FOCitSVVMgSVZBTktBCitSVVMgSk9TSVAKK1JVUyBNQVJHSVRBCitSVVMgTUFSSUpBCitSVVMgTUlMT1NBVkEKK1JVUyBSQURBCitSVVMgU0xBVklDQQorUlVTIFNNSUxKQQorUlVTIFNWRVRMQU5BCitSVVMgVkVSQQorUlVTIFZVS09TQVZBCitSVVNJxIYgQU5EUklKQQorUlVTS0FKSSBTTEFWT01JUgorUlVTS0kgRElNSVRSSUpFCitSVVNLSSBMQVpBUgorUlVTS09WU0tJIMSQT1LEkEUKK1JVU0tPVlNLSSBEUkFHSUNBCitSVVNLT1ZTS0kgTUFHREFMRU5BCitSVVNNSVIgUkFETUlMQQorUlVTTUlST1ZJxIYgQklMSkFOQQorUlVTTUlST1ZJxIYgQklMSkFOQQorUlVTT1Ygxb1BUktPCitSVVNPViDFvUlWS0EKK1JVU09WIEJSQU5LQQorUlVTT1YgQlJBTktPCitSVVNPViBEUkVOS0EKK1JVU09WIEtBVElDQQorUlVTT1YgS09TVEEKK1JVU09WIEtSSVNUSU5BCitSVVNPViBNQVJJSkEKK1JVU09WIE1JTEFOCitSVVNPViBNSUxPUkFECitSVVNPViBOQURBCitSVVNPViBQQVZMRQorUlVTT1YgU0xPQk9EQU4KK1JVU09WIFZMQURJTUlSCitSVVNPVkFOIMW9SVZJQ0EKK1JVU09WQU4gRFJBR09MSlVCCitSVVNPVkFOIE1JTEFOCitSVVNPVkFOIE1JTEFOCitSVVNURU1BR0nEhiBFUlZJTgorUlVTVEVNSSDFoEFCQU4KK1JVVEXFoEnEhiBKT1ZJQ0EKK1JVVEnEhiBNSUxPUkFECitSVVRPTknEhiBKVUxLSUNBCitSVVRPTknEhi1LT0xFTkRBIFZJRE9TQVZBCitSVVRPTknEhiBMQVpBUgorUlVUT05JxIYgTEFaQVIKK1JVVE9OSlNLSSBEVcWgQU4KK1JVVE9OSlNLSSBKRUxJQ0EKK1JVVE9OSlNLSSBKT1ZBTktBCitSVVRPTkpTS0kgTkFEQQorUlVUT05KU0tJIFNMT0JPREFOCitSVVRPTkpTS0kgVkFTQQorUlVUT05TS0kgxJBPUsSQRQorUlVUT1ZJxIYgQk/FoEtPCitTQcSMRUsgTUlST1NMQVYKK1NBxIxFUiBST0tJCitTQcSMScSGIE1BUklKQQorU0FCQURJIExBU0xPCitTQUJBREkgTUlSSkFOQQorU0FCQURLQSDFoEFORE9SCitTQUJBREtBIElMT05LQQorU0FCQURLQSBWQUxFUklKQQorU0FCQURPxaAgxaBBTkRPUgorU0FCQURPxaAgxJBVUkEKK1NBQkFET8WgIElWQU4KK1NBQkFET8WgIEpBTktPCitTQUJBRE/FoCBKQU5LTworU0FCQURPxaAgSkFOS08KK1NBQkFET8WgIEpPQUtJTQorU0FCQURPxaAgTEpVQk9NSVIKK1NBQkFET8WgIE1JxaBBCitTQUJBRE/FoCBNSUhBSkxPCitTQUJBRE/FoCBNSUhBSkxPCitTQUJBRE/FoCBNSVJPU0xBVgorU0FCQURPxaAgUEFWTElOQQorU0FCQURPxaAgUlXFvUlDQQorU0FCQURPxaAgU0xBVk5BCitTQUJBRE/FoCBTTEFWT01JUgorU0FCQURPxaAgU1JCSVNMQVYKK1NBQkFET8WgIFNURVZBTgorU0FCQURPxaAgVkxBRElNSVIKK1NBQkFET8WgIFZMQURJTUlSCitTQUJBRE/FoCBaREVOS0EKK1NBQkFEVcWgIEpPVkFOIERJUEwgSU5HCitTQUJBRFXFoCBTVEVWQU4KK1NBQkFUS0EgU1RFVkFOCitTQUJBVFXFoCBCT1JJU0xBVgorU0FCQVRVxaAgRFJBR09MSlVCCitTQUJBVFXFoCBUT01JU0xBVgorU0FCTEnEhiBCUkFOS08KK1NBQkxKQUsgRFJBR0FOCitTQUJMSkFLIEZSQU5KTworU0FCTEpBSyBNQVJJSkFOCitTQUJMSkFLT1ZJxIYgRVNBRAorU0FCTEpBUiDEkE9SxJBFCitTQUJMSkFSIE1BTk9KTE8KK1NBQkxKQVIgTUlMQU4KK1NBQkxKQVIgVEVPRE9SCitTQUJMSkFSRVZJxIYgVkVSSUNBCitTQUJMSknEhiBEQU5JTE8gRElQTCBQUkFWTklLCitTQUJMSknEhiBEQVJBCitTQUJMSknEhiBHT1JEQU5BCitTQUJMSk9WIEnFoFRWQU4KK1NBQkxKT1YgTUlMSUNBCitTQUJPIMWgQU5ET1IKK1NBQk8gxaBBTkpJS0EKK1NBQk8gxJBFWkUKK1NBQk8gxJBPUsSQRQorU0FCTyDEkE9SxJBFCitTQUJPIEFMRUtTQU5EQVIKK1NBQk8gQUxFS1NBTkRBUgorU0FCTyBBTkEgRFIKK1NBQk8gQU5BCitTQUJPIEFOQQorU0FCTyBBTkRSQcWgCitTQUJPIEFORFJBxaAKK1NBQk8gQU5JQ0EKK1NBQk8gQU5JQ0EKK1NBQk8gQkVSVEFMQU4KK1NBQk8gRFJBR0FOCitTQUJPIEVMSVpBQkVUQQorU0FCTyBFTUlMCitTQUJPIEVSxb1FQkVUCitTQUJPIEVSxb1FQkVUCitTQUJPIEVSTkUKK1NBQk8gRVJORQorU0FCTyBFU1RFUgorU0FCTyBGRVJFTkMKK1NBQk8gRkVSRU5DCitTQUJPIEZSQU5KQQorU0FCTyBGUkFOSkEKK1NBQk8gRlJBTkpPCitTQUJPIEdBxaBQQVIKK1NBQk8gR0FCT1IKK1NBQk8gR0VSR0VMSgorU0FCTyBHSVpFTEEKK1NBQk8gR09SREFOQQorU0FCTyBISUxEQQorU0FCTyBJxaBUVkFOCitTQUJPIEnFoFRWQU4KK1NBQk8gScWgVFZBTgorU0FCTyBJxaBUVkFOCitTQUJPIEnFoFRWQU4KK1NBQk8gScWgVFZBTgorU0FCTyBJQk9MSktBCitTQUJPIElEQQorU0FCTyBJTE9OQQorU0FCTyBJTVJFCitTQUJPIElNUkUKK1NBQk8gSVZBTgorU0FCTyBKQU5JS0EKK1NBQk8gSkFOT8WgCitTQUJPIEpPU0lQCitTQUJPIEpPU0lQCitTQUJPIEpPU0lQCitTQUJPIEpPU0lQCitTQUJPIEpPU0lQCitTQUJPIEpPU0lQCitTQUJPIEpVTElBCitTQUJPIEpVTElKQU5BCitTQUJPIEtBUk9MSU5BCitTQUJPIEtBVElDQQorU0FCTyBLQVRJQ0EKK1NBQk8gTEFESVNMQVYKK1NBQk8gTEFESVNMQVYKK1NBQk8gTEFESVNMQVYKK1NBQk8gTEpVQk9NSVIKK1NBQk8gTUFSSUpBCitTQUJPIE1BUlRBCitTQUJPIE1JSEFKTE8KK1NBQk8gTUlMSUNBCitTQUJPIE5JS09MQQorU0FCTyBPTElWRVJBCitTQUJPIFBBVkxFCitTQUJPIFBFVEFSCitTQUJPIFBFVEFSCitTQUJPIFBFVEFSCitTQUJPIFBJxaBUQQorU0FCTyBST1pBTElKQQorU0FCTyBTTklKRcW9QU5BCitTQUJPIFNURVZBTgorU0FCTyBURVJFWklKQQorU0FCTyBUSUJPUgorU0FCTyBWQUxFUklKQQorU0FCTyBaT0xUQU4KK1NBQk8gWk9MVEFOCitTQUJPxaBPVEkgRkFCSUpBTgorU0FCT0wgSkFST1NMQVYKK1NBQk9MIEpFTEVOQQorU0FCT0zEjEtJIEFORFJJSkEKK1NBQk9MxIxLSSBBTkRSSUpBCitTQUJPTMSMS0kgQU5EUklKQQorU0FCT0zEjEtJIFpPTFRBTgorU0FCT0xPVknEhiBCT1JJUworU0FCT1YgQk9SSVZPSkUKK1NBQk9WTEpFVknEhiBSQURPVkFOCitTQUTFvUFLIExKVUJJQ0EKK1NBRMW9QUtPViBEUkFHT01JUgorU0FExb1BS09WIERVxaBBTktBCitTQUTFvUFLT1YgTUlST1NMQVYKK1NBRMW9QUtPViBPTEdBCitTQUTFvUFLT1YgUEVUQVIKK1NBRMW9QUtPViBSQURPVkFOCitTQUTFvUFLT1YgUkFET1ZBTgorU0FExb1BS09WIFZJRE9TQVZBCitTQUTFvUFLT1YgWk9SQU4KK1NBREnEhiBSQURJVk9KCitTQURJS1UgU0FESUsKK1NBSVRPViDFoEFISU0KK1NBSkZFUlQgxJBVTEEKK1NBSkZFUlQgSk9IQU4KK1NBSkZFUlQgTEpVQknFoEEKK1NBSkZFUlQgTEpVQknFoEEKK1NBSkZFUlQgTUFSR0lUCitTQUpGRVJUIE1BUklKQQorU0FKScSGIE1JTElWT0pFCitTQUpLTyBCUkFOS0EKK1NBSktPIEnFoFRWQU4KK1NBSktPIE1BUkdJVEEKK1NBSktPIFJVxb1JQ0EKK1NBSktPIFpPTFRBTgorU0FKTEVSIEZFUkVOQworU0FKVE9WScSGIERSQUdJTkpBCitTQUtBxIwgQk9SSVNMQVYgTEVLQVIKK1NBS0HEjCBGRVJFTkMKK1NBS0HEjCBJxaBUVkFOCitTQUtBxIwgSkFOS08KK1NBS0HEjCBKQU5LTworU0FLQcSMIEpPVkFOCitTQUtBxIwgSlVMSUpBTkEKK1NBS0HEjCBKVUxJSkFOCitTQUtBxIwgTEpVREVWSVQKK1NBS0HEjCBNQUdEQQorU0FLQcSMIE1BUklKQQorU0FLQcSMIE1JSEFJTE8KK1NBS0HEjCBTSU1BCitTQUtBxIwgU1ZFVExBTkEKK1NBS0HEjCBWQVNJTElKRQorU0FLQcSMIFZMQURJTUlSIEFEVk9LQVQKK1NBS0HEjCBWTEFESU1JUgorU0FLQcSMIFZMQURJTUlSCitTQUtBTCBBREVMQQorU0FLQUwgQVVHVVNUSU5BCitTQUtBTCBHQUJPUgorU0FLQUwgSk/FvUVGCitTQUtBTCBNQVJJSkEKK1NBS0FMIE1BUklKQQorU0FLQUxBxaAgT1RPCitTQUtBTiBEQUxJQk9SCitTQUtPVknEhiBBTElKQQorU0FLT1ZJxIYgU1RPSkFOCitTQUtVTFNLSSBNSUxBTgorU0FMQcSMIMSQVVJPCitTQUxBRyBFVkdFTklKRQorU0FMQUcgSkFOS08KK1NBTEFHIExKVUJBCitTQUxBSSBFUsW9RUJFVAorU0FMQUkgRVNURVIKK1NBTEFJLUdPTUJBUiBSVcW9QQorU0FMQUkgScWgVFZBTiBOT1ZJTkFSCitTQUxBSSBKRUxJU0FWRVRBCitTQUxBSSBMQURJU0xBVgorU0FMQUkgTEFTTE8KK1NBTEFKIEZSQU5KTworU0FMQUogSkFOS08KK1NBTEFKIEpPxb1FRgorU0FMQUogTUlSSkFOQQorU0FMQUogUlVET0xGCitTQUxBSyBKQU5LTworU0FMQUsgVkxBRElNSVIKK1NBTEFLIFZMQURJTUlSCitTQUxBTVVOIEFOQQorU0FMQU1VTiBCT1NJTEpLQQorU0FMQU1VTiBJTElKQQorU0FMQU1VTiBKQU5LTworU0FMQU1VTiBKT0FLSU0KK1NBTEFNVU4gSk9BS0lNCitTQUxBTVVOIE5BVEFMSUpBCitTQUxBTVVOIFNJTFZFU1RFUgorU0FMQU1VTiBWTEFESU1JUgorU0FMQVBVUkEgTUlMRQorU0FMQVBVUkEgTkVERUxKS08KK1NBTEFQVVJBIFBFVEFSCitTQUxBVEnEhiBNSUxPVkFOCitTQUxBVEnEhiBQRVRBUiBNUiBPRUMKK1NBTEFUScSGIFZFTElNSVIKK1NBTERVTSBWSURBCitTQUxFVEEgQU5UVU4KK1NBTEnEhiBNSUxBTgorU0FMSUJFR09WScSGIE1VU1RBRkEKK1NBTElIT1ZJxIYgSVNNRVQKK1NBTElKQSBTRUZFUgorU0FMSUpFVknEhiDFoEXEhkVSSUpBCitTQUxLQUkgSUxPTkEKK1NBTEtBSSBMQVNMTworU0FMTUEgxaBBTkRPUgorU0FMTUEgR0VaQQorU0FMTUEgSk/FvUVGIFBST0YgRFIKK1NBTE1BIEpPU0lQCitTQUxNQSBQRVRBUgorU0FMTUEgVElCT1IKK1NBTE1BIFRJQk9SCitTQUxPQ0tJIFNURVZBTgorU0FMT05TS0kgQk/FvUlEQVIKK1NBTE9OU0tJIEpFTEVOQQorU0FMT05TS0kgTUlMT1JBRAorU0FMT05TS0kgTUlSSkFOQQorU0FMT05TS0kgTUlST1NMQVYKK1NBTE9OU0tJIFJVxb1BCitTQUxPTlRBSSBKVUxJSkFOQQorU0FMT1BFSyBCUkFOS08KK1NBTE9WIEpPVkFOCitTQU1BQyBJVkFOS0EKK1NBTUFDIE1JUktPCitTQU1BUsSQScSGIEJSQU5JU0xBVkEKK1NBTUFSRMW9ScSGIMW9QVJLTworU0FNQVJExb1JxIYgQURBTQorU0FNQVJExb1JxIYgQk/FoEtPCitTQU1BUkTFvUnEhiBCT8WgS08KK1NBTUFSRMW9ScSGIEJPUkEKK1NBTUFSRMW9ScSGIEJPUkEKK1NBTUFSRMW9ScSGIEJSQU5JU0xBVgorU0FNQVJExb1JxIYgQlJBTktPCitTQU1BUkTFvUnEhiBEQU5JTE8KK1NBTUFSRMW9ScSGIERBTklMTworU0FNQVJExb1JxIYgREVTQQorU0FNQVJExb1JxIYgRFJBR0FOCitTQU1BUkTFvUnEhiBEVcWgQU4KK1NBTUFSRMW9ScSGIEdPSktPCitTQU1BUkTFvUnEhiBJTElKQQorU0FNQVJExb1JxIYgSVZBTgorU0FNQVJExb1JxIYgS1JTVEEKK1NBTUFSRMW9ScSGIExKVUJPCitTQU1BUkTFvUnEhiBNSUxBTgorU0FNQVJExb1JxIYgTUlMSUpBCitTQU1BUkTFvUnEhiBNSUxPxaAKK1NBTUFSRMW9ScSGIE1JTE/FoAorU0FNQVJExb1JxIYgTUlMT0pLTworU0FNQVJExb1JxIYgTUlMT1JBRAorU0FNQVJExb1JxIYgTUlMT1NBVgorU0FNQVJExb1JxIYgTUlPRFJBRworU0FNQVJExb1JxIYgTUlSQQorU0FNQVJExb1JxIYgTkXEkEEKK1NBTUFSRMW9ScSGIE5PVklDQQorU0FNQVJExb1JxIYgT0xHQQorU0FNQVJExb1JxIYgT1NUT0pBCitTQU1BUkTFvUnEhiBSQURPSktBCitTQU1BUkTFvUnEhiBSQURPU0xBVgorU0FNQVJExb1JxIYgUkFET1ZBTgorU0FNQVJExb1JxIYgUkFKS08KK1NBTUFSRMW9ScSGIFJBVEtPCitTQU1BUkTFvUnEhiBST1pJTkEKK1NBTUFSRMW9ScSGIFNBVktBCitTQU1BUkTFvUnEhiBTQVZPCitTQU1BUkTFvUnEhiBTUE9NRU5LQQorU0FNQVJExb1JxIYgU1JFVEVOCitTQU1BUkTFvUnEhiBTUkVURU4KK1NBTUFSRMW9ScSGLVNUQU5JxaBJxIYgTUlMQU5LQQorU0FNQVJExb1JxIYgU1ZFVExBTkEKK1NBTUFSRMW9ScSGIFZBU0lMSUpBCitTQU1BUkTFvUnEhiBWQVNPCitTQU1BUkTFvUnEhiBWRUxJTUlSCitTQU1BUkTFvUnEhiBWTEFETworU0FNQVJExb1JxIYgVlVLQcWgSU4KK1NBTUFSRMW9ScSGIFpEUkFWS08KK1NBTUFSRMW9ScSGIFpPUkFOCitTQU1BUkTFvUnEhiBaVVpBTkEKK1NBTUFSRMW9SUpBIMSQVVLEkElOS0EKK1NBTUFSRMW9SUpBIMSQVVJBxJAKK1NBTUFSRMW9SUpBIMSQVVJBCitTQU1BUkTFvUlKQSBCT8WgS08KK1NBTUFSRMW9SUpBIERFU0EKK1NBTUFSRMW9SUpBIERVxaBBTgorU0FNQVJExb1JSkEgR09SSUNBCitTQU1BUkTFvUlKQSBKRUxFTkEKK1NBTUFSRMW9SUpBIExKVUJJQ0EKK1NBTUFSRMW9SUpBIExKVUJJQ0EKK1NBTUFSRMW9SUpBIE1BUklKQQorU0FNQVJExb1JSkEgTUFSSUpBCitTQU1BUkTFvUlKQSBNSUxBTktBCitTQU1BUkTFvUlKQSBNSUxBTgorU0FNQVJExb1JSkEgTUlMQU4KK1NBTUFSRMW9SUpBIE1JTEUKK1NBTUFSRMW9SUpBIE1JUktPCitTQU1BUkTFvUlKQSBNSVJPU0xBVgorU0FNQVJExb1JSkEgTkVCT0rFoEEKK1NBTUFSRMW9SUpBIE5PVklDQQorU0FNQVJExb1JSkEgUEVUQVIKK1NBTUFSRMW9SUpBIFJBREUKK1NBTUFSRMW9SUpBIFJBREUKK1NBTUFSRMW9SUpBIFJBTktPCitTQU1BUkTFvUlKQSBTVE9KQU4KK1NBTUFSRMW9SUpFVknEhiBNSVJPU0xBVgorU0FNQlJBSUxPIEJSVU5PCitTQU1FQyBCT8W9RU5LQQorU0FNSUkgQUJCQVMKK1NBTU/EjEVUQSBBTEVLU0FORFJBCitTQU1PxIxFVEEgTUlMRQorU0FNT8SMRVRBIE5FVkVOS0EKK1NBTU/EjEVUQSBSQURPTUlSCitTQU1PSkxJSyBOSUtPTEEKK1NBTU9LT1ZMSUpBIE1BUktPCitTQU1PTE9WIFZFTEpLTworU0FNT0xPVsSMRVYgSVZBTktBCitTQU1TT05PViBOSUtPTEEgRElQTCBJTkcKK1NBTsSMQU5JTiBNSUxJVk9KCitTQU5BREVSIMW9SVZLTworU0FOQURFUiDFvUlWS08KK1NBTkFERVIgSkVMRU5BCitTQU5BREVSIFJBRE9WQU4KK1NBTkFERVIgU0xPQk9EQU4KK1NBTkFERVIgVkVSQQorU0FOREnEhiBCUkFOSU1JUgorU0FOREnEhiBJVkFOCitTQU5EScSGIFNWRVRMQU5BCitTQU5ESUtJIEFQT1NUT0wKK1NBTkRJS0kgS09TVEEKK1NBTkRJS0kgS09TVEEKK1NBTktPVknEhiBCT1JLTworU0FOS09WScSGIExKVUJJTktBCitTQU5LT1ZJxIYgTUlMT1JBRAorU0FOS09WScSGIE1JUkEKK1NBTktPVknEhiBQRVRBUgorU0FOS09WScSGIFNBQklOQQorU0FOS09WScSGIFNWRVRPWkFSCitTQU5UQUkgSUxPTkEKK1NBTlRPIEZSQU5KQQorU0FOVE8gS0FST0xKCitTQU5UTyBMQURJU0xBViBESVBMIElORworU0FOVE8gWk9MVEFOCitTQU5UTyBaT0xUQU4KK1NBTlRPVkFDIERSQUdBTgorU0FOVE9WQUMgTEpVQklOS0EKK1NBTlRPVkFDIE1JTE/FoAorU0FOVE9WQUMgUEVUQVIKK1NBTlRPVkFDIFNURVZBTgorU0FOVFJBxIwgxJBVUsSQSU5LQQorU0FOVFJBxIwgRFJBR09MSlVCCitTQU5UUkHEjCBHT1JEQU5BCitTQU5UUkHEjCBNSUxBTgorU0FOVFJBxIwgTUlMT1JBRAorU0FOVFJBxIwgTU9NxIxJTE8KK1NBTlRSQcSMIE5JS09MQQorU0FOVFJBxIwgUkFUS08KK1NBTlRSQcSMIFNBVk8KK1NBTlRSQcSMIFNMQVZLTworU0FQVU5Exb1JxIYtTUFUScSGIE1JUkpBTkEKK1NBUFVORMW9ScSGIE1JTEFOCitTQVBVTkTFvUnEhiBNSVJBCitTQVBVTkTFvUnEhiBUQVRKQU5BCitTQVBVTkTFvUlKQSBFUsW9RUJFVAorU0FQVU5Exb1JSkEgTUFSSUpBCitTQVLEjEVWIE5BRElDQQorU0FSxIxFViBSQURJVk9KCitTQVJBxIxFVknEhiBTUkJPTEpVQgorU0FSQUZJSkFOT1ZJxIYgTklLT0xBCitTQVJBSkxJSkEgRFJBR09NSVIKK1NBUkFNQU5EScSGIE1PTUlSCitTQVJBTUFOREnEhiBORURFTEpLTworU0FSQU5EQSBWQVNJTEpLQQorU0FSQVBLQSBLQVRJQ0EKK1NBUkFUTEnEhiBNSUxBTgorU0FSQVRMScSGIFNSQk9MSlVCCitTQVJBVk9MQUMgTEFaQVIgVkVURVJJTkFSCitTQVJBVk9MQUMgTUFHREFMRU5BCitTQVJBVk9MQUMgTUlSSkFOQQorU0FSQVZPTEFDIE1JUkpBTkEKK1NBUkFWT0xBQyBTSU5JxaBBIERSCitTQVJBVk9MQUMgU0xBVktPCitTQVJBVk9MQUMgU1ZFVExBTkEKK1NBUknEhiDEkFVSQQorU0FSScSGIERBTklMTworU0FSScSGIElWQU4KK1NBUknEhiBMRVBPU0FWQQorU0FSScSGIE1BUklOS08KK1NBUknEhiBNSUxPxaAKK1NBUknEhiBNSUxPSkUgRFIKK1NBUknEhiBSQURPxaAKK1NBUknEhiBSQVRLTworU0FSScSGIFRJQk9SCitTQVJJxIYgVk9KSU4KK1NBUklLQVMgU05Fxb1BTkEKK1NBUklLQVMgVkFTSUxJSkUKK1NBUktBIEFSUEFECitTQVJLQSBNSUhBTEoKK1NBUktPVEnEhiBGUkFOSkEKK1NBUk1FxaAgTUFSSUpBIERJUEwgUFJBVk5JSworU0FST1YgTEFaQVIKK1NBUlZBxaAgxaBBTkRPUgorU0FSVkHFoCBKQU5PxaAKK1NBUlZBSyBBTEVLU0EKK1NBUlZBTiBEUkFHT0xKVUIKK1NBUlZBTiBWSkVSQQorU0FTIEpFTkUKK1NBU0lLIEJPUklTTEFWCitTQVRBUknEhiBCUkFOSVNMQVYKK1NBVEFSScSGIE1JTEpLTyBEUgorU0FUS0FOT1ZJxIYgSEFCSUIKK1NBVUVSIEpFTElDQQorU0FVRVIgTUFSR0lUQQorU0FVRVIgUEFWTEUKK1NBVUVSIFJPU0EKK1NBVUVSIFNNSUxKQU5BCitTQVVTTUFOIExBU0xPCitTQVVaRVIgRlJBTkpPCitTQVbEjEnEhiBEUkFHQU4KK1NBVsSMScSGIE1JTEFOQQorU0FWxIxJxIYgTUlMSVZPSkUKK1NBVsSMScSGIE1JTElWT0oKK1NBVsSMScSGIE1JUk9TTEFWCitTQVbEjEnEhiBTTE9CT0RBTgorU0FWQSBGUkFOSkEKK1NBVkFOT1ZJxIYgQlJBTktPCitTQVZBTk9WScSGIERSQUdPTEpVQgorU0FWQU5PVknEhiBEVcWgQU4KK1NBVkFOT1ZJxIYgSk9WQU4KK1NBVkFOT1ZJxIYgSk9WTworU0FWQU5PVknEhiBMSlVCT01JUgorU0FWQU5PVknEhiBNQVJJQ0EKK1NBVkFOT1ZJxIYgTUFSSU5LTworU0FWQU5PVknEhiBNSUxBTgorU0FWQU5PVknEhiBNSUxPxaAKK1NBVkFOT1ZJxIYgTUlSS08KK1NBVkFOT1ZJxIYgTkVOQUQKK1NBVkFOT1ZJxIYgU05Fxb1BTkEKK1NBVkFOT1ZJxIYgU1RPSkFOCitTQVZBTk9WScSGIFpEUkFWS0EKK1NBVkFUScSGIERSQUdPTUlSCitTQVZBVEnEhiBWTEFESU1JUgorU0FWQVRPVknEhiBCT1NJTEpLQQorU0FWQVRPVknEhiBEUkFHQU4KK1NBVkFUT1ZJxIYgRFXFoEFOCitTQVZBVE9WScSGIFJBRE9WQU4KK1NBVkVMSknEhiDEjEVET01JUgorU0FWRUxKScSGIERVxaBBTgorU0FWRUxKScSGIE1BUklKQQorU0FWRUxKScSGIFNWRVRMQU5BCitTQVZFTEpJxIYgVkVMSktPCitTQVZFU0tJIE1JTMSMTworU0FWRVNLSSBaT1JBTgorU0FWScSMRVZJxIYgR09KS08KK1NBVknEjEnEhiBHT0pLTworU0FWScSMScSGIFNUT0pBTgorU0FWScSMSU4gTEpVQklDQQorU0FWScSGIMSMRURPTUlSCitTQVZJxIYgxIxFRE8KK1NBVknEhiDEhkVUS08KK1NBVknEhiDFvUlWS0EKK1NBVknEhiDFvUlWS0EKK1NBVknEhiDEkE9LQQorU0FWScSGIMSQT1LEkEUgRElQTCBJTkcKK1NBVknEhiDEkE9SxJBFCitTQVZJxIYgxJBVUsSQSUpBCitTQVZJxIYgQUxFS1NBTkRSQQorU0FWScSGIEFMRUtTQQorU0FWScSGIEFOxJBFTEtBCitTQVZJxIYgQU7EkEVMS0EKK1NBVknEhiBBTkEKK1NBVknEhiBBTkRSSUpBCitTQVZJxIYgQU5EUklKQQorU0FWScSGIEFOR0VMSU5BCitTQVZJxIYgQkxBR09KRQorU0FWScSGIEJMQUdPSkUKK1NBVknEhiBCT8W9SURBUgorU0FWScSGIEJPxb1JTUlSIERSCitTQVZJxIYgQk9HREFOCitTQVZJxIYgQk9SSVNMQVYKK1NBVknEhiBCUkFOSVNMQVYKK1NBVknEhiBCUkFOSVNMQVYKK1NBVknEhiBCUkFOSVNMQVYKK1NBVknEhiBCUkFOS08KK1NBVknEhiBDVkVUQU5LQQorU0FWScSGIENWRVRLTworU0FWScSGIERBTUpBTiBEUiBMRUtBUgorU0FWScSGIERBTklDQQorU0FWScSGIERBUkEKK1NBVknEhiBERUpBTgorU0FWScSGIERFU0FOS0EKK1NBVknEhiBERVNJTUlSCitTQVZJxIYgRE9CUklMQQorU0FWScSGIERSQUdBTgorU0FWScSGIERSQUdBTgorU0FWScSGIERSQUdBTgorU0FWScSGIERSQUdBTgorU0FWScSGIERSQUdJxaBBCitTQVZJxIYgRFJBR09TTEFWCitTQVZJxIYgRFJBR08KK1NBVknEhiBEUkFHVVRJTgorU0FWScSGIERSQUdVVElOCitTQVZJxIYgRFXFoEFOS0EKK1NBVknEhiBEVcWgQU4KK1NBVknEhiBEVcWgQU4KK1NBVknEhiBEVcWgQU4KK1NBVknEhiBEVcWgQU4KK1NBVknEhiBEVcWgQU4KK1NBVknEhiBEVcWgQU4KK1NBVknEhiBEVcWgQU4KK1NBVknEhiBHRU9SR0lKRQorU0FWScSGIEdMSUdPUklKRQorU0FWScSGIEdPSktPCitTQVZJxIYgR09SQU4KK1NBVknEhiBHT1NUSU1JUgorU0FWScSGIEdST1pEQU5BCitTQVZJxIYgSUxJSkEKK1NBVknEhiBJTElKQQorU0FWScSGIElWQU4KK1NBVknEhiBKQURSQU5LQQorU0FWScSGIEpFTEEKK1NBVknEhiBKRUxFTkEKK1NBVknEhiBKRUxFTkEKK1NBVknEhiBKRUxJQ0EKK1NBVknEhiBKRVZUTworU0FWScSGIEpPVkFOS0EKK1NBVknEhiBKT1ZBTgorU0FWScSGIEpPVkFOCitTQVZJxIYgSk9WQU4KK1NBVknEhiBKT1ZBTgorU0FWScSGIEpPVkFOCitTQVZJxIYgSk9WQU4KK1NBVknEhiBLQVRJQ0EKK1NBVknEhiBLQVRJQ0EKK1NBVknEhiBLT1NUQQorU0FWScSGIEtTRU5JSkEKK1NBVknEhiBMQVpBUgorU0FWScSGIExBWkFSCitTQVZJxIYgTEVOS0EgRFIKK1NBVknEhiBMSklMSkFOQQorU0FWScSGIExKSUxKQU5BCitTQVZJxIYgTEpVQknFoEEKK1NBVknEhiBMSlVCSUNBCitTQVZJxIYgTEpVQk9NSVIKK1NBVknEhiBMSlVCT1NMQVYKK1NBVknEhiBMVUtBCitTQVZJxIYgTUFSSUpBCitTQVZJxIYgTUFSSUpBCitTQVZJxIYgTUFSSUpBCitTQVZJxIYgTUFSSUpBCitTQVZJxIYgTUFSSU5BCitTQVZJxIYgTUFSSU5BCitTQVZJxIYgTUFSS08KK1NBVknEhiBNRUTFvU8KK1NBVknEhiBNSUhBSkxPCitTQVZJxIYgTUlMQURJTgorU0FWScSGIE1JTEFOCitTQVZJxIYgTUlMQU4KK1NBVknEhiBNSUxBTgorU0FWScSGIE1JTEFOCitTQVZJxIYgTUlMRU5BCitTQVZJxIYgTUlMRU5LTworU0FWScSGIE1JTEVOS08KK1NBVknEhiBNSUxFTktPCitTQVZJxIYgTUlMSUpBTkEKK1NBVknEhiBNSUxJU0FWCitTQVZJxIYgTUlMSVZPSkUKK1NBVknEhiBNSUxJVk9KRQorU0FWScSGIE1JTElWT0pFCitTQVZJxIYgTUlMSVZPSgorU0FWScSGIE1JTElWT0oKK1NBVknEhiBNSUxLTworU0FWScSGIE1JTE/FoCBESVBMIElORworU0FWScSGIE1JTE/FoAorU0FWScSGIE1JTE/FoAorU0FWScSGIE1JTE/FoAorU0FWScSGIE1JTE/FoAorU0FWScSGIE1JTE9SQUQKK1NBVknEhiBNSUxPUkFECitTQVZJxIYgTUlMT1JBRAorU0FWScSGIE1JTE9TQVZBCitTQVZJxIYgTUlMT1NBVgorU0FWScSGIE1JTE9WQU4KK1NBVknEhiBNSUxVVElOCitTQVZJxIYgTUlPRFJBRworU0FWScSGIE1JT0RSQUcKK1NBVknEhiBNSVJKQU5BCitTQVZJxIYgTUlSS08KK1NBVknEhiBNSVJLTworU0FWScSGIE1JUk9TTEFWCitTQVZJxIYgTUlST1NMQVYKK1NBVknEhiBNSVJPU0xBVgorU0FWScSGIE1JUk9TTEFWCitTQVZJxIYgTUxBREVOCitTQVZJxIYgTU9NxIxJTE8KK1NBVknEhiBOQURBCitTQVZJxIYgTkFERcW9REEKK1NBVknEhiBOQVRBxaBBCitTQVZJxIYgTkVERUxKS08KK1NBVknEhiBORURFTEpLTworU0FWScSGIE5FREVMSktPCitTQVZJxIYgTkVERUxKS08KK1NBVknEhiBORU5BRAorU0FWScSGIE5JS09MQQorU0FWScSGIE5JS09MQQorU0FWScSGIE5JS09MQQorU0FWScSGIE5JS09MQQorU0FWScSGIE5JTk9TTEFWCitTQVZJxIYgTk9WTworU0FWScSGIE9MR0EKK1NBVknEhiBPTElWRVJBCitTQVZJxIYgT0xJVkVSQQorU0FWScSGIFBBTlRFTElKQQorU0FWScSGIFBBVkxFCitTQVZJxIYgUEVSQQorU0FWScSGIFBFVEFSCitTQVZJxIYgUEVUQVIKK1NBVknEhiBQRVRBUgorU0FWScSGIFBFVEFSCitTQVZJxIYgUExBTklOS0EKK1NBVknEhiBQUkVEUkFHCitTQVZJxIYgUFJPS09QSUpFCitTQVZJxIYgUkFEScWgQQorU0FWScSGIFJBRElWT0pFIERJUEwgSU5HCitTQVZJxIYgUkFETUlMQQorU0FWScSGIFJBRE1JTEEKK1NBVknEhiBSQURNSUxBCitTQVZJxIYgUkFET0pJQ0EKK1NBVknEhiBSQURPTUlSCitTQVZJxIYgUkFET01JUgorU0FWScSGIFJBRE9WQU4KK1NBVknEhiBSQURPVkFOCitTQVZJxIYgUkFLScSGCitTQVZJxIYgUkFUS08KK1NBVknEhiBSQVRLTworU0FWScSGIFJFTEpBIERSCitTQVZJxIYgUkVOQVRBCitTQVZJxIYgUk9LU0FOREEKK1NBVknEhiBSVcW9SUNBCitTQVZJxIYgU0HFoEEKK1NBVknEhiBTQVZBIEFEVk9LQVQKK1NBVknEhiBTQVZBCitTQVZJxIYgU0FWQQorU0FWScSGIFNBVkEKK1NBVknEhiBTSU1FVU4gRElQTCBJTkcKK1NBVknEhiBTSU5JxaBBCitTQVZJxIYgU0xBVktPCitTQVZJxIYgU0xBVk9MSlVCCitTQVZJxIYgU0xBVk9MSlVCCitTQVZJxIYgU0xPQk9EQU4KK1NBVknEhiBTTE9CT0RBTgorU0FWScSGIFNNSUxKQQorU0FWScSGIFNQQVNPSkUKK1NBVknEhiBTUEFTT0pFCitTQVZJxIYgU1LEkEFOCitTQVZJxIYgU1JCSVNMQVYKK1NBVknEhiBTUkVUQQorU0FWScSGIFNURVZBTgorU0FWScSGIFNUT0pBTktBCitTQVZJxIYgU1RPSkFOCitTQVZJxIYgU1RPSkFOCitTQVZJxIYgU1RPSkFOCitTQVZJxIYgU1ZFTktBCitTQVZJxIYgU1ZFVE9aQVIKK1NBVknEhiBTVkVUT1pBUgorU0FWScSGIFRBVE9NSVIKK1NBVknEhiBURU9ET1IKK1NBVknEhiBUSU5LQQorU0FWScSGIFRPRE9SCitTQVZJxIYgVE9ET1IKK1NBVknEhiBUT0RPUgorU0FWScSGIFRPTUlTTEFWCitTQVZJxIYgVVJPxaAKK1NBVknEhiBWRUxKS08KK1NBVknEhiBWRVJJQ0EKK1NBVknEhiBWRVJJQ0EKK1NBVknEhiBWRVNOQQorU0FWScSGIFZJRE9TQVYKK1NBVknEhiBWSVRPTUlSCitTQVZJxIYgVkxBRElNSVIKK1NBVknEhiBWTEFESU1JUgorU0FWScSGIFZPSkEKK1NBVknEhiBWVUtBTgorU0FWScSGIFZVS09UQQorU0FWScSGIFpPUkFOCitTQVZJxIYgWk9SQU4KK1NBVknEhiBaT1JBTgorU0FWScSGIFpPUkFOCitTQVZJxIYgWk9SQU4KK1NBVknEhiBaT1JBCitTQVZJTiDFvUlWS0EKK1NBVklOIMW9SVZLTworU0FWSU4gxJBPUsSQRQorU0FWSU4gxJBVUsSQSU5LQQorU0FWSU4gQkVSSVNMQVYKK1NBVklOIEJJTEpBTkEgRFIKK1NBVklOIEJPUkEKK1NBVklOIERBTklDQQorU0FWSU4gRFJBR09MSlVCCitTQVZJTiBEUkFHT01JUgorU0FWSU4gRFJFTktBCitTQVZJTiBEVcWgQU4KK1NBVklOIERVxaBBTgorU0FWSU4gSk9WQU4KK1NBVklOIEpPVkFOCitTQVZJTiBKVUxLQQorU0FWSU4gTEFTTE8KK1NBVklOIExBWkFSCitTQVZJTiBMSlVCSU5LQQorU0FWSU4gTUFHREEKK1NBVklOIE1JTEVWQQorU0FWSU4gTUlMSUNBCitTQVZJTiBNSUxLQQorU0FWSU4gTUlMT1JBRAorU0FWSU4gTUlMT1JBRAorU0FWSU4gTUlMT1ZBTgorU0FWSU4gTUlPRFJBRyBESVBMIE9FQworU0FWSU4gTUlSSkFOQQorU0FWSU4gTUlSSkFOQQorU0FWSU4gTklLT0xBCitTQVZJTiBQQVZMRQorU0FWSU4gUFJFRFJBRworU0FWSU4gUkFESVZPSgorU0FWSU4gU0FWQQorU0FWSU4gU05Fxb1BTkEKK1NBVklOIFNQSVJJRE9OCitTQVZJTiBTVEFOQQorU0FWSU4gVE9ET1IKK1NBVklOIFRPRE9SCitTQVZJTiBWRVJJQ0EKK1NBVklOIFZVS09TQVZBCitTQVZJTiBaT1JBCitTQVZLRUxKSU4gU1RFVkFOCitTQVZLScSGIERVxaBBTgorU0FWS09WIERSQUdPTEpVQgorU0FWS09WIElMSUpBCitTQVZLT1YgTUlMQU4KK1NBVktPViBUT0RPUgorU0FWS09WIFZFUkEKK1NBVktPViBWT0pJU0xBVgorU0FWS09WIFpPUkFOCitTQVZLT1ZJxIYgxb1JVk9SQUQKK1NBVktPVknEhiBKQU5KQQorU0FWS09WScSGIE1JTFVUSU4KK1NBVktPVknEhiBNSVJLTworU0FWS09WScSGIE5FTUFOSkEKK1NBVktPVknEhiBTQVZBCitTQVZLT1ZJxIYgU0FWTworU0FWS09WScSGIFNUQcWgQQorU0FWS09WScSGIFRBVEpBTkEKK1NBVktPVknEhiBWVUtBCitTQVZLT1ZJxIYgWkRSQVZLTworU0FWT1ZJxIYgREVTQU5LQQorU0FWT1ZJxIYgRkFUSU1BCitTQVZPVknEhiBMSlVCTworU0FWT1ZJxIYgTFVLQQorU0FWT1ZJxIYgTkVOQUQKK1NBVk9WScSGIFJBREUKK1NBVlUtTUlIQUpMT1ZJxIYgU09GSUpBCitTQVZVIFRJQkkKK1NBVlVMSknEhiBSQURPTUlSCitTQVpEQU5JxIYgxJBPS0EKK1NBWkRBTknEhiBQQVZMRQorU0FaREFOScSGIFNURVZBTgorU0XEjEFOU0tJIMSQT1LEkEUKK1NFxIxFTiBNSUxJVk9KCitTRcSMRU4gU1ZFVE9aQVIgRFIKK1NFxIxFTkpJIElCT0xKQQorU0XEjEkgScWgVFZBTgorU0XEjElWQU5PVknEhiBMRVDFoEEKK1NFxIxJVkFOT1ZJxIYgTEVQxaBBCitTRcSMSVZBTk9WScSGIFBBVkxFCitTRcSMVUpTS0kgQU5EUklKQSBESVBMIElORworU0XEjFVKU0tJIERBTklMTworU0XEjFVKU0tJIE1MQURFTgorU0XEjFVKU0tJIFJBRElWT0oKK1NFQkFTVElBTiBFUk5FCitTRUJBU1RJQU4gSk9IQU5BCitTRUJBU1RJSkFOIFpMQVRLTworU0VCRUxFREkgUEFWTEUKK1NFQkVOSkkgRkVSRU5DCitTRUJFTkpJIEZSQU5KQQorU0VCScWgQU5PVknEhiDEkE9SxJBFCitTRUJJxaBBTk9WScSGIFBBVkxFCitTRURFSiBKQU5FWgorU0VERVIgQUxFS1NBTkRBUgorU0VERVIgSVZJQ0EKK1NFREVSIFNMQVZLTworU0VERVIgVkxBRElNSVIKK1NFREVSTEFORCDEkE9SxJBFCitTRURMQcSMRUsgU0FSQQorU0VETEFLIEFORFJBxaAKK1NFRExBTiBJTElKQQorU0VETEFOIE1BTk9KTE8KK1NFRExBTiBNSVJLTyBESVBMIElORworU0VETEFOIFJBRE9TTEFWCitTRURMQU4gU0FWQQorU0VETEFSIElMSUpBCitTRURMQVIgTUFORQorU0VETEFSIE1JTElDQQorU0VETEFSIE1JTElDQQorU0VETEFSIE5BREEKK1NFRE1BSyBEUkFHQU4KK1NFRE1BSyBWTEFETworU0VGxIxJSyDFvVXFvUFOQQorU0VGRVIgTUFSSUpBCitTRUZFUiBTQUtJQgorU0VGRVIgU0VOQUQKK1NFRkVST1ZJxIYgU1VBRAorU0VHIMW9VcW9QU5BCitTRUcgSU1SRQorU0VHRURJIEJSQU5LQQorU0VHRURJIERJTUlUUklKRQorU0VHRURJIEVWR0VOSUpFCitTRUdFREkgSVZJQ0EKK1NFR0VESSBKT1NJUAorU0VHRURJIEpPVkFOCitTRUdFREkgSlVMSUpBTgorU0VHRURJIEtBUk9MSgorU0VHRURJLUtPVkHEjEVWIEJSQU5LQSBEUgorU0VHRURJIEtTRU5JSkEKK1NFR0VESSBMRU9OQQorU0VHRURJIE1BUklKQQorU0VHRURJIE1FTElUQQorU0VHRURJIE1JTEVOQQorU0VHRURJIFNMQVZJQ0EKK1NFR0VESSBTVEVWQU4KK1NFR0VESSBWTEFESU1JUgorU0VHRURJTkFDIERVxaBLTworU0VHRURJTkFDIE5BVEFMSUpBCitTRUdFRElOQUMgWkRSQVZLTworU0VHRURJTlNLSSBBUktBRElKRQorU0VHRURJTlNLSSBCT0pLTworU0VHRURJTlNLSSBKVUxJSkFOQQorU0VHRURJTlNLSSBORVNUT1IKK1NFR0VESU5TS0kgU0FWQQorU0VHRURJTlNLSSBUT01BCitTRUdFRElOU0tJIFZJVE9NSVIKK1NFR0kgTEFTTE8KK1NFR0nEhiBCT1JJU0xBVgorU0VHScSGIFJBTktPCitTRUlaT1ZJxIYgRFXFoEFOS0EKK1NFS0HEjCBQRVRBUgorU0VLRSBBUlBBRAorU0VLRSBFVkEKK1NFS0UgSUxJSkEKK1NFS0UgSk9TSVAKK1NFS0UgS0FUQVJJTkEKK1NFS0UgU1RFVkFOCitTRUtFIFNURVZBTgorU0VLRUxKIEpBTkkKK1NFS0VMSiBKT1NJUAorU0VLRUxKIE1BUklKQQorU0VLRUxKIFJVxb1JQ0EKK1NFS0VSRcWgIMWgQU5ET1IKK1NFS0VSRcWgIMSQVUxBCitTRUtFUkXFoCBERU5FxaAKK1NFS0VSRcWgIEVURUwKK1NFS0VSRcWgIEZFUkVOQyBEUiBMRUtBUgorU0VLRVJFxaAgRkVSRU5DCitTRUtFUkXFoCBJxaBUVkFOCitTRUtFUkXFoCBJxaBUVkFOCitTRUtFUkXFoCBJUkVOQQorU0VLRVJFxaAgSk/FvUVGCitTRUtFUkXFoCBKVUxJSkFOQQorU0VLRVJFxaAgSlVMSUpBCitTRUtFUkXFoCBLQVJPTEoKK1NFS0VSRcWgIEtBVElDQQorU0VLRVJFxaAgTEFKT8WgIERJUEwgSU5HCitTRUtFUkXFoCBOQU5ET1IKK1NFS0VSRcWgIFNURVZBTgorU0VLRVJFxaAgVElCT1IKK1NFS0VSRcWgIFZFUkEKK1NFS0VSRVpPVknEhiBNSUxBTgorU0VLRVJJxIYgU1RFVkFOCitTRUtFUlXFoCBKRUxJU0FWRVRBCitTRUtFUlXFoCBMSlVCSUNBCitTRUtFUlXFoCBNSUxLSUNBCitTRUtFUlXFoCBNSVJKQU5BCitTRUtFUlXFoCBQQVZMRQorU0VLRVJVxaAgUEVUQVIKK1NFS0VSVcWgIFNUQU5JU0xBVgorU0VLRVJVxaAgVkxBRElNSVIKK1NFS0lDS0kgQUxFS1NBTkRBUgorU0VLSUNLSSBFTUlMSUpBCitTRUtJQ0tJIElTSURPUgorU0VLSUNLSSBMQVpBUgorU0VLSUNLSSBNQVJJQ0EKK1NFS0lDS0kgTUlMT1JBRAorU0VLSUNLSSBQRVRBUgorU0VLSUNLSSBWRUxKQQorU0VLSVogxb1JVktPCitTRUtJWiBJTElKQQorU0VLSVogSk9WQU4KK1NFS0laIE1FTEFOSUpBCitTRUtJWiBQRVRBUgorU0VLSVogUEVUQVIKK1NFS0laIFJBRElWT0oKK1NFS0laIFNPTkpBCitTRUtPxaBBTiBMSlVCSUNBCitTRUtPxaBBTiBNQVJJTkEKK1NFS09MIE1JTEtBCitTRUtPU0tJIEpPTcSMRQorU0VLT1ZTS0kgUkFERQorU0VLUkVOSiBKT8W9RUYKK1NFS1VMScSGIMSMRURJQ0EKK1NFS1VMScSGIMSMRURPTUlSCitTRUtVTEnEhiDFvUFSS08KK1NFS1VMScSGIMW9SVZLTworU0VLVUxJxIYgxb1JVktPCitTRUtVTEnEhiDFvUlWT0pJTiBESVBMIElORworU0VLVUxJxIYgxJBPUsSQRQorU0VLVUxJxIYgxJBPUsSQRQorU0VLVUxJxIYgxJBVUsSQSUNBCitTRUtVTEnEhiDEkFVSQcSQCitTRUtVTEnEhiBBTEVLU0FOREFSCitTRUtVTEnEhiBBTEVLU0FOREFSCitTRUtVTEnEhiBBTsSQRUxLQQorU0VLVUxJxIYgQVJTRU5JSkUKK1NFS1VMScSGIEJPxb1JREFSIERJUEwgSU5HCitTRUtVTEnEhiBCUkFOSVNMQVYKK1NFS1VMScSGIEJSQU5JU0xBVgorU0VLVUxJxIYgQlJBTklTTEFWCitTRUtVTEnEhiBEQU5FCitTRUtVTEnEhiBEQVJJTktBCitTRUtVTEnEhiBEQVJJTktBCitTRUtVTEnEhiBERVNBTktBCitTRUtVTEnEhiBERVNBTktBCitTRUtVTEnEhiBET1NUQQorU0VLVUxJxIYgRFJBR0FOCitTRUtVTEnEhiBEUkFHSUNBCitTRUtVTEnEhiBEUkFHT0xKVUIKK1NFS1VMScSGIERSQUdPTUlSCitTRUtVTEnEhiBEUkFHT01JUgorU0VLVUxJxIYgRFXFoEFOCitTRUtVTEnEhiBEVcWgQU4KK1NFS1VMScSGIERVxaBBTgorU0VLVUxJxIYgRFXFoEFOCitTRUtVTEnEhiBJTElKQQorU0VLVUxJxIYgSUxJSkEKK1NFS1VMScSGIElWQU4KK1NFS1VMScSGIElWQU4KK1NFS1VMScSGIEtBVElDQQorU0VLVUxJxIYgTEFaQVIKK1NFS1VMScSGIExKSUxKQU5BCitTRUtVTEnEhiBMSklMSkFOQQorU0VLVUxJxIYgTEpVQknFoEEKK1NFS1VMScSGIExKVUJJQ0EKK1NFS1VMScSGIExKVUJJQ0EKK1NFS1VMScSGIExKVUJJQ0EKK1NFS1VMScSGIExKVUJPTUlSCitTRUtVTEnEhiBNQVJJSkEKK1NFS1VMScSGIE1BUklKQQorU0VLVUxJxIYgTUFSSUpBCitTRUtVTEnEhiBNScSGTworU0VLVUxJxIYgTUlMQU4KK1NFS1VMScSGIE1JTEFOCitTRUtVTEnEhiBNSUxBTgorU0VLVUxJxIYgTUlMQU4KK1NFS1VMScSGIE1JTEFOCitTRUtVTEnEhiBNSUxBTgorU0VLVUxJxIYgTUlMRU5BCitTRUtVTEnEhiBNSUxFTkEKK1NFS1VMScSGIE1JTElWT0pFCitTRUtVTEnEhiBNSUxKQQorU0VLVUxJxIYgTUlMT1JBRAorU0VLVUxJxIYgTUlMT1JBRAorU0VLVUxJxIYgTUlMT1ZBTgorU0VLVUxJxIYgTUlMT1ZBTgorU0VLVUxJxIYgTUlMT1ZBTgorU0VLVUxJxIYgTUlPRFJBRworU0VLVUxJxIYgTUlPRFJBRworU0VLVUxJxIYgTUlSQQorU0VLVUxJxIYgTUlSSkFOQQorU0VLVUxJxIYgTUlSSkFOQQorU0VLVUxJxIYgTUlSS08KK1NFS1VMScSGIE5FR0lDQQorU0VLVUxJxIYgTkVNQU5KQQorU0VLVUxJxIYgT0xHQQorU0VLVUxJxIYgT0xJVkVSQQorU0VLVUxJxIYgUEFWTEUKK1NFS1VMScSGIFBBVkxFCitTRUtVTEnEhiBQRVRBUiBEUgorU0VLVUxJxIYgUEVUQVIKK1NFS1VMScSGIFBFVEtPCitTRUtVTEnEhiBSQURFCitTRUtVTEnEhiBSQURJVk9KIE1SCitTRUtVTEnEhiBSQURNSUxBCitTRUtVTEnEhiBSQURPU0FWCitTRUtVTEnEhiBSVcW9SUNBCitTRUtVTEnEhiBTSU1PCitTRUtVTEnEhiBTTEFWS08KK1NFS1VMScSGIFNNSUxKQQorU0VLVUxJxIYgU1BBU0EKK1NFS1VMScSGIFNQQVNPCitTRUtVTEnEhiBTVEFOSVNMQVYKK1NFS1VMScSGIFNUQU5PSkUKK1NFS1VMScSGIFNURVZBTgorU0VLVUxJxIYgU1RFVkFOCitTRUtVTEnEhiBTVE9KQU4gRElQTCBJTkcKK1NFS1VMScSGIFNUT0pBTgorU0VLVUxJxIYgU1ZFVE9aQVIKK1NFS1VMScSGIFNWRVRPWkFSCitTRUtVTEnEhiBUSUhPTUlSCitTRUtVTEnEhiBUT01JU0xBVgorU0VLVUxJxIYgVE9NSVNMQVYKK1NFS1VMScSGIFVTVElKQU5LQQorU0VLVUxJxIYgVkFMRU5USU5BCitTRUtVTEnEhiBWRU5PCitTRUtVTEnEhiBWSURPSkUKK1NFS1VMScSGIFZJTktPCitTRUtVTEnEhiBWTEFESU1JUgorU0VLVUxJxIYgVkxBRElNSVIKK1NFS1VMScSGIFZMQURPCitTRUtVTEnEhiBWT0pJU0xBVgorU0VLVUxJxIYgWk9SQU4KK1NFS1VMScSGIFpPUkFOCitTRUtVTEnEhiBaT1JBCitTRUtVTEnEhiBaT1JJQ0EKK1NFS1VMT1ZJxIYgTUlIQUlMTworU0VLVUxPVknEhiBNSUxBTktBCitTRUtVTE9WScSGIE1JTEVOS08KK1NFS1VMT1ZJxIYgUkFESVZPSkUKK1NFS1VMT1ZJxIYgU0xBVktPCitTRUwgQU5BCitTRUwgSk/FvUVGCitTRUwgTEFESVNMQVYKK1NFTEFLIEpPVkFOCitTRUxBSyBKT1ZPCitTRUxBSyBNSVJKQU5BCitTRUxBSyBTVEVWQU4KK1NFTEFLT1ZJxIYgxJBPUsSQRSBEUiBMRUtBUgorU0VMQUtPVknEhiBEUkFHSUNBIERSIExFS0FSCitTRUxBS09WScSGIExKVUJJU0FWCitTRUxBS09WScSGIE1JTEFOCitTRUxBS09WScSGIE1JT0RSQUcKK1NFTEFLT1ZJxIYgTUlST1NMQVYKK1NFTEFLT1ZJxIYgTUxBREVOCitTRUxBS09WScSGIFJBRE9TTEFWCitTRUxBS09WScSGIFNSRcSGS08KK1NFTEFLT1ZJxIYgVk9KQQorU0VMRcWgIEtBUk9MSgorU0VMRcWgIEtBUk9MSgorU0VMRcWgIE1JSEFKTE8KK1NFTEXFoEkgRUxaQQorU0VMRcWgSSBFVEVMS0EKK1NFTEXFoEkgTEFESVNMQVYKK1NFTEXFoEkgTEFTTE8KK1NFTEXFoEkgTUFHREFMRU5BCitTRUxFxaBJIE1BUklKQQorU0VMRcWgSSBQQUwKK1NFTEXFoEkgU1RFVkFOCitTRUxFxaBJIFZJTkNFCitTRUxFxaBJIFpPTFRBTgorU0VMRU5BIEpFTEVOQQorU0VMRU5BIE5JS09MQQorU0VMRU5JxIYgQU5LSUNBCitTRUxJIEVURUxLQQorU0VMSSBJxaBUVkFOIERSCitTRUxJIE1JS0xPxaAKK1NFTEnEhiBEUkFHVVRJTgorU0VMScSGIE1JxIZPCitTRUxJxIYgTUlMT8WgCitTRUxJxIYgTUlMT1JBRAorU0VMSUggREFOSUxPCitTRUxJSCBEUkFHTworU0VMSUsgSk9TSVAKK1NFTElLIExBRElTTEFWCitTRUxJTU9WScSGIE1VU1RBRkEKK1NFTElOR0VSIEdBQlJJSkVMQQorU0VMSkFLT1YgTkFEQQorU0VMTUFOIEhBS0lKQQorU0VMU0tJIEFOQQorU0VMU0tJIE1BUklKQQorU0VMVkVSIEFMSU5BxJBJCitTRU1BTiBKT0FLSU0KK1NFTUVERVIgRElNSVRSSUpFCitTRU1FREVSIFNVWkFOQQorU0VNRURFUiBTVVpBTkEKK1NFTUVLIMSMQUJBCitTRU1FSyDEjElMQQorU0VNRU5TS0kgS09STkVMSUpBCitTRU1FUkVESSBKT8W9RUYKK1NFTUVSRURJIFZFUkEKK1NFTUlaIEtBVElDQQorU0VNSVpPVknEhiBTQURJSworU0VNTklDIFJVRE9MRiBEUgorU0VOIE1BUlRJTgorU0VOxIxVSyBTTEFWSUNBCitTRU7EjFVLIFNURVZPCitTRU7EhkFOU0tJIEpVTElKQQorU0VOxIZBTlNLSSBLQVRJQ0EKK1NFTsSGQU5TS0kgTkFEQQorU0VOxIZBTlNLSSBQRVRBUgorU0VOxIZBTlNLSSBaT1JBCitTRU5BxaBJIExBRElTTEFWCitTRU5DSSBMQURJU0xBVgorU0VOREVSQUsgxJBVUkEKK1NFTkRFUkFLIEVVR0VOCitTRU5ERVJBSyBMSURJSkEKK1NFTkRFUkFLIE1FTEFOSUpBCitTRU5ERVJBSyBNSVJLTworU0VOREVSQUsgTklLT0xBCitTRU5ERVJBSyBQRVRBUgorU0VOREVSQUsgU0lMVkVTVEVSCitTRU5FxaBJIEpFTEVOQQorU0VOScSGIEFOSUNBCitTRU5JxIYgSVZBTktBCitTRU5JxIYgTEFaQVIKK1NFTknEhiBNSUxPUkFECitTRU5JxIYgUklTVE8KK1NFTknEhiBWTEFESU1JUgorU0VOSkXFoCDFoEFORE9SCitTRU5KSSBBR0/FoFRPTiBEUiBMRUtBUgorU0VOSkkgSUxPTkEKK1NFTkpJIElSRU5BCitTRU5URSBMSlVCSUNBCitTRU5URSBQRVRBUgorU0VOVElOIMSMRURPTUlSCitTRU5USVZBTkFDIMSQT1LEkEUKK1NFTlRJVkFOQUMgTUFSS08KK1NFTlRJVkFOQUMgTUlMQU4KK1NFTlRJVkFOQUMgTUlMT8WgCitTRU5USVZBTkFDIE1PTUlSCitTRU5USVZBTkFDIFNBVkEKK1NFTlRJVkFOQUMgU1ZFVExBTkEKK1NFTlRJVkFOQUMgVE9ET1IKK1NFTlRJVkFOQUMgVkVTTkEKK1NFTlRNQVJUT05JIEZFUkVOQworU0VQIEFOVEFMCitTRVAgREXFvUUgRFIgTEVLQVIKK1NFUCBGRVJFTkMKK1NFUC1WQVJHQSBFTUlMSUpBCitTRVJBRklNT1YgS0lSSUwKK1NFUkFUTEnEhiDEjEVET01JUgorU0VSQVRMScSGIERBUktBCitTRVJBVExJxIYgR09MVUIKK1NFUkFUTEnEhiBNSVJBxaAKK1NFUkFUTEnEhiBNSVJKQU5BCitTRVJBVExJxIYgVkVMSU1JUiBEUgorU0VSQVRMScSGIFpPUkFOCitTRVJEQSDFoEFORE9SCitTRVJEQVIgREFOSUNBCitTRVJEQVIgSUxJSkEKK1NFUkRBUiBNQVJBCitTRVJEQVIgTUxBREVOCitTRVJEQVIgTkVERUxKS08KK1NFUkRBUiBQRVRBUgorU0VSREFSIFBFVEFSCitTRVJEQVJFVknEhiDEhkFaSU0KK1NFUkRBUkVWScSGIEdJWkVMQQorU0VSRcWgSSBGRVJFTkMKK1NFUkXFoEkgScWgVFZBTgorU0VSRcWgSSBMQVNMTworU0VSRcWgSSBST1pBTElKQQorU0VSRcWgSSBTVEVWQU4KK1NFUkXFoEkgVElCT1IKK1NFUkVOxIxFIExBRElTTEFWCitTRVJFTsSMRcWgIEpPxb1FRiBOT1ZJTkFSCitTRVJORUMgU1RFVkFOCitTRVJUScSGIERSQUdBTgorU0VSVEnEhiBNQVJJSkEKK1NFUlRJxIYgTUFUSUpBCitTRVJUScSGIE1JTEFOCitTRVJUScSGIFZMQURBCitTRVRFTsSMScSGIE1JTE9SQUQKK1NFVkVSIMWgSU1FCitTRVZFUklOSSBKQU4KK1NFVknEhiDEkE9SxJBFCitTRVZJxIYgUkFERU5LTworU0VWS0nEhiBCUkFOS08KK1NFVktJxIYgTUFHREFMRU5BCitTScSMIEFORFJJSkEKK1NJxIwgRFJBR0FOCitTScSMIEZFUkVOQworU0nEjCBJTVJFCitTScSMIEpPxb1FRgorU0nEjCBKT1NJUAorU0nEjCBKT1NJUAorU0nEjCBKVUxJSkFOQQorU0nEjCBLQUxNQU4KK1NJxIwgS0FMTUFOCitTScSMIE1BUkdJVEEKK1NJxIwgTUFSSUpBCitTScSMIE1BUklKQQorU0nEjCBNSUhBTEoKK1NJxIwgTUlST1NMQVZBCitTScSMIFBFVEFSIERSIExFS0FSCitTScSMIFBJUk/FoEtBCitTScSMIFNURVZBTgorU0nEjCBTVEVWQU4KK1NJxIwgU1RFVkFOCitTScSMIFRFUkVaQQorU0nEjCBWTEFESVNMQVYKK1NJxIwgWkxBVEtPCitTScSGIE1JUk9TTEFWCitTScSGIFNMQcSQQU5BCitTScSGIFNUQU5JU0xBVgorU0nEhiBTVEFOS08KK1NJxJBJIE1JUktPCitTSUJFUiBJxaBUVkFOCitTSUJFUiBJxaBUVkFOCitTSUJJTkFDIFZVS0lDQQorU0lCSU5LScSGIFBFVEFSCitTSUJJTktJxIYgUkFUS08KK1NJQklOS0nEhiBSQVRLTworU0lCSU5LScSGIFZBU0EKK1NJQklOT1YgTklLT0xBCitTSUJJTk9WScSGIFJBRE9NSVIKK1NJQklOU0tJIFZJREEKK1NJRMW9SU1PU0tJIERJTUlUUklKRQorU0lET1IgxIZJUklMIERSCitTSUdFVEktQknEjEtFSSBBR09UQQorU0lHRVRJIEpBxaBBCitTSUdFVEkgSkFOT8WgCitTSUdFVEkgU1RFVkFOCitTSUtBIEZSQU5KQQorU0lLQSBJUkVOQQorU0lLSU1JxIYgQU7EkEVMS0EKK1NJS0lNScSGIE5PVkFLCitTSUtJTUnEhiBTUsSQQU4KK1NJS0lNScSGIFNSxJBBTgorU0lLSVJJQ0EgTUlSSkFOQQorU0lLT1JBIEtBUk9MSgorU0lLT1JBIExBRElTTEFWCitTSUtPUkEgUEVUQVIKK1NJTEHFoEtJIElMSUpBCitTSUxBxaBLSSBSQURPVkFOCitTSUxBxaBLSSBTTEFWS08KK1NJTEHFoEtJIFNORcW9QU5BCitTSUxBxaBLSSBWRVJBCitTSUxBxaBLSSBWTEFESVNMQVZBCitTSUxBxJBFViBSVcW9SUNBCitTSUxBxJBJIMWgQU5ET1IKK1NJTEHEkEkgQU5EUkHFoAorU0lMQcSQSSBGUkFOSkEKK1NJTEHEkEkgR0laRUxBCitTSUxBxJBJIEnFoFRWQU4KK1NJTEHEkEkgSU1SRQorU0lMQcSQSSBKRUxJU0FWRVRBCitTSUxBxJBJIEtBUk9MSgorU0lMQcSQSSBMQURJU0xBVgorU0lMQcSQSSBMQVNMTyBWQUpBUgorU0lMQcSQSSBMQVNMTworU0lMQcSQSSBMQVNMTworU0lMQcSQSSBMQVNMTworU0lMQcSQSSBMSlVERVZJVAorU0lMQcSQSSBMSlVERVZJVAorU0lMQcSQSSBNQVJJSkEKK1NJTEHEkEkgTUlLTE/FoAorU0lMQcSQSSBST1pBTElKQQorU0lMQcSQSSBURVJFWkEKK1NJTEHEkEkgVklLVE9SSUpBCitTSUxBSyBBTkRSQcWgCitTSUxBSyBHSVpFTEEKK1NJTEFLIEnFoFRWQU4KK1NJTEFLIFpPTFRBTgorU0lMQkHFoEtJIERPxaBLTworU0lMQkHFoEtJIExKVUJJQ0EKK1NJTEJBxaBLSSBNQVJKQU4KK1NJTEJBxaBLSSBaT1JBTgorU0lMQkVSSE9MQyBTVEVWQU4KK1NJTEVSIMSQVUxBCitTSUxFUiBEVcWgSUNBCitTSUxFUiBHVVNUQVYKK1NJTEVSIEtBUkwKK1NJTEpBTk9WU0tJIERBUktPCitTSUxKQU5PVlNLSSBKT8W9RQorU0lMTkkgU0xBVk5BCitTSUxWQcWgSSDFoEFORE9SCitTSUxWQcWgSSBKQU5PxaAKK1NJTFZBxaBJIEtBUk9MSgorU0lMVkVTVFJPVknEhiBNSUxJQ0EKK1NJTFZFU1RST1ZJxIYgVEFOQVNJSkUKK1NJTcSMSU4gTUlIQUpMTworU0lNQU5JxIYgSUxJSkEKK1NJTUFOScSGIEpFWkRJTUlSCitTSU1BTknEhiBQRVRLTworU0lNQU5JxIYgUkFKS0EKK1NJTUFOScSGIFNBVkEKK1NJTUVOREnEhiBCT8W9QQorU0lNRU5EScSGIEdPUkFOCitTSU1FTkRJxIYgU1ZFVE9aQVIKK1NJTUVOREnEhiBWTEFESU1JUgorU0lNRU5UScSGIEpPVkFOCitTSU1FTlRJxIYgVk9KSVNMQVYKK1NJTUVPTk9WIFBBVkxFCitTSU1FT05PViBSQURJVk9KCitTSU1FT05PViBaRFJBVsSMTworU0lNRU9OT1ZJxIYgxJBPUsSQRQorU0lNRU9OT1ZJxIYgTUlMSVZPSgorU0lNRU9OT1ZJxIYgUkFET1NMQVYKK1NJTUVPTk9WScSGIFNMT0JPREFOS0EKK1NJTUVUScSGIE1PTcSMSUxPCitTSU1FVEnEhiBPU1RPSkEKK1NJTUVVTk9WScSGIEJPUklTTEFWCitTSU1FVU5PVknEhiBEUkFHQU4KK1NJTUVVTk9WScSGIERSQUdBTgorU0lNRVVOT1ZJxIYgRFJBR09MSlVCCitTSU1FVU5PVknEhiBEVcWgQU4KK1NJTUVVTk9WScSGIEpBTktPCitTSU1FVU5PVknEhiBMRVBPU0FWQQorU0lNRVVOT1ZJxIYgTUlMQU4KK1NJTUVVTk9WScSGIE1JTE9NSVIKK1NJTUVVTk9WScSGIE5FVkVOS0EKK1NJTUVVTk9WScSGIFJBRE9TQVYKK1NJTUVVTk9WScSGIFNBVkEKK1NJTUVVTk9WScSGIFNJTU8KK1NJTUVVTk9WScSGIFNJTU8KK1NJTUVVTk9WScSGIFNSRVRFTgorU0lNRVVOT1ZJxIYgVkxBREEKK1NJTUnEjEnEhiBEUkFHQU5BCitTSU1JxaBJxIYgUkFET0pJQ0EKK1NJTUnEhiDEjEVEQQorU0lNScSGIMW9SVZPSklOCitTSU1JxIYgxb1JVk9KSU4KK1NJTUnEhiDEkFVSxJBFVktBCitTSU1JxIYgxJBVUkEKK1NJTUnEhiDEkFVSTworU0lNScSGIEFDQQorU0lNScSGIEFEQU0KK1NJTUnEhiBBTEVLU0FOREFSCitTSU1JxIYgQUxFS1NBTkRBUgorU0lNScSGIEFOxJBFTEtBCitTSU1JxIYgQk/FoEtPCitTSU1JxIYgQk9KQU5BCitTSU1JxIYgQk9SQQorU0lNScSGIEJPUklTTEFWCitTSU1JxIYgQk9SSVNMQVYKK1NJTUnEhiBCT1JLQQorU0lNScSGIEJPU0lMSktBCitTSU1JxIYgQlJBTklTTEFWCitTSU1JxIYgQlJBTklTTEFWCitTSU1JxIYgQlJBTklTTEFWCitTSU1JxIYgQlJBTktPCitTSU1JxIYgQlVESU1JUgorU0lNScSGLUNIQUxBQkkgRFJBR0FOQQorU0lNScSGIENWRVRJTgorU0lNScSGIERFSkFOCitTSU1JxIYgRE9CUklWT0pFCitTSU1JxIYgRE9CUklWT0pFCitTSU1JxIYgRE9KxIxJTgorU0lNScSGIERSQUdBTgorU0lNScSGIERSQUdJQ0EKK1NJTUnEhiBEUkFHT0xKVUIKK1NJTUnEhiBEUkFHT0xKVUIKK1NJTUnEhiBEUkFHVVRJTgorU0lNScSGIERVxaBBTktBCitTSU1JxIYgRFXFoEFOCitTSU1JxIYgRFXFoEFOCitTSU1JxIYgRFXFoElDQQorU0lNScSGIEdPSktPCitTSU1JxIYgR09SREFOQQorU0lNScSGIEdSQURJTUlSCitTSU1JxIYgSEVSTUlOQSBEUgorU0lNScSGIElMSUpBCitTSU1JxIYgSUxPTktBCitTSU1JxIYgSVZBTgorU0lNScSGIEpFTEVOQQorU0lNScSGIEpPVkFOCitTSU1JxIYgSk9WQU4KK1NJTUnEhiBKT1ZJQ0EKK1NJTUnEhiBKT1ZPCitTSU1JxIYgSk9WTworU0lNScSGIEpVRElUCitTSU1JxIYgS1JJU1RJTkEKK1NJTUnEhiBMSklMSkFOQQorU0lNScSGIE1BUklKQQorU0lNScSGIE1BUklKQQorU0lNScSGIE1BUklKQQorU0lNScSGIE1JQ0EKK1NJTUnEhiBNSUhBSUxPCitTSU1JxIYgTUlMQU4KK1NJTUnEhiBNSUxBTgorU0lNScSGIE1JTEFOCitTSU1JxIYgTUlMRU5BCitTSU1JxIYgTUlMSUNBCitTSU1JxIYgTUlMSUpBCitTSU1JxIYgTUlMSVZPSgorU0lNScSGIE1JTE/FoAorU0lNScSGIE1JTE/FoAorU0lNScSGIE1JTE/FoAorU0lNScSGIE1JTE9SQUQKK1NJTUnEhiBNSUxPUkFECitTSU1JxIYgTUlMT1ZBTgorU0lNScSGIE1JTFVUSU4KK1NJTUnEhiBNSUxVVElOCitTSU1JxIYgTUlMVVRJTgorU0lNScSGIE1JUktPCitTSU1JxIYgTU9NxIxJTE8KK1NJTUnEhiBNT03EjElMTworU0lNScSGIE1PTcSMSUxPCitTSU1JxIYgTU9NxIxJTE8KK1NJTUnEhiBOQURBCitTSU1JxIYgTkFEQQorU0lNScSGIE5BUkFOxIxBCitTSU1JxIYgTkXEkE8KK1NJTUnEhiBORURFTEpLTworU0lNScSGIE5FTUFOSkEKK1NJTUnEhiBORVZFTktBCitTSU1JxIYgTklLT0xBCitTSU1JxIYgTklLT0xBCitTSU1JxIYgTk9WQUsKK1NJTUnEhiBOT1ZBSworU0lNScSGIE5PVkFLCitTSU1JxIYgT0xHQQorU0lNScSGIE9TVE9KQQorU0lNScSGIFBBTlRFTElKQQorU0lNScSGIFBBVkxFCitTSU1JxIYgUEVUQVIKK1NJTUnEhiBSQURBCitTSU1JxIYgUkFERU5LTworU0lNScSGIFJBREVOS08KK1NJTUnEhiBSQURJU0FWCitTSU1JxIYgUkFESVZPSkUKK1NJTUnEhiBSQURJVk9KRQorU0lNScSGIFJBRElWT0oKK1NJTUnEhiBSQURPSkUKK1NJTUnEhiBSQURPVkFOCitTSU1JxIYgUkFKS08KK1NJTUnEhiBSVcW9SUNBCitTSU1JxIYgUlXFvUlDQQorU0lNScSGIFNBVkEKK1NJTUnEhiBTSU1BCitTSU1JxIYgU0lOScWgQQorU0lNScSGIFNMQURBCitTSU1JxIYgU0xBVktPCitTSU1JxIYgU0xPQk9EQU4KK1NJTUnEhiBTUsSQQU4KK1NJTUnEhiBTUkVURU4KK1NJTUnEhiBTVEVWQU4KK1NJTUnEhiBTVEVWQU4KK1NJTUnEhiBTVEVWQU4KK1NJTUnEhiBTVE9KQU5LQQorU0lNScSGIFNWRVRJU0xBVgorU0lNScSGIFNWRVRJU0xBVgorU0lNScSGIFRJSE9NSVIKK1NJTUnEhiBUSUhPTUlSCitTSU1JxIYgVE9ERQorU0lNScSGIFRPTUlTTEFWCitTSU1JxIYgVE9NSVNMQVYKK1NJTUnEhiBWQUpLQQorU0lNScSGIFZBU0EKK1NJTUnEhiBWRVJPTktBCitTSU1JxIYgVkVTRUxLTworU0lNScSGIFZJTktBCitTSU1JxIYgVkxBREUKK1NJTUnEhiBWTEFESU1JUgorU0lNScSGIFZMQURPCitTSU1JxIYgVk9KSVNMQVYKK1NJTUnEhiBaTEFUSU1JUgorU0lNScSGIFpPUkFOCitTSU1JxIYgWk9SQU4KK1NJTUnEhiBaT1JBTgorU0lNScSGIFpPUkEKK1NJTUnEhiBaT1JBCitTSU1JxIYgWk9SSUNBCitTSU1JxIYgWk9SS0EKK1NJTUnEhkVWScSGIFJBRE9NQU4KK1NJTUlKT05PVknEhiBTTE9CT0RBTgorU0lNSUtJxIYgSk9WQU4KK1NJTUlMRU5KSSBEVcWgSUNBCitTSU1JTiDFvUlWS0EKK1NJTUlOIMW9SVZPSklOCitTSU1JTiBBTsSQRUxLQQorU0lNSU4gQVJBTktBCitTSU1JTiBDVkVUS08KK1NJTUlOIERBTklDQQorU0lNSU4gREFOSUxPCitTSU1JTiBESU5BCitTSU1JTiBEUkFHQU4KK1NJTUlOIEhJTERBCitTSU1JTiBJVkFOS0EKK1NJTUlOIElWQU4KK1NJTUlOIEpBxaBBCitTSU1JTiBKRUxFTkEKK1NJTUlOIEtPU1RBCitTSU1JTiBMQVpBUgorU0lNSU4gTEVQT1NBVkEKK1NJTUlOIExKVUJJQ0EKK1NJTUlOIE1BR0RBCitTSU1JTiBNSUxFTkEKK1NJTUlOIE1JTElDQQorU0lNSU4gTUlMSUNBCitTSU1JTiBNSUxJVk9KCitTSU1JTiBNSUxJVk9KCitTSU1JTiBNSUxVVElOCitTSU1JTiBNSVJPU0xBVgorU0lNSU4gTkFEQQorU0lNSU4gTkFEQQorU0lNSU4gTkVCT0rFoEEKK1NJTUlOIFBBVkxFCitTSU1JTiBQRVRBUgorU0lNSU4gUkFESUNBCitTSU1JTiBSQURJVk9KRQorU0lNSU4gUkFET0pJQ0EKK1NJTUlOIFJBRE9WQU4KK1NJTUlOIFNJTknFoEEKK1NJTUlOIFNPRklKQQorU0lNSU4gU1RFVkFOCitTSU1PTk9WScSGIERSQUdPU0xBVkEKK1NJTU9OT1ZJxIYgSFJJU1RJTkEKK1NJTU9OT1ZJxIYgSVJFTkEgRFIKK1NJTU9OT1ZJxIYgTUlMRQorU0lNT05PVknEhiBNSUxPUkFECitTSU1PTk9WScSGIE1JTE9SQUQKK1NJTU9OT1ZJxIYgTkFEQQorU0lNT05PVknEhiBOSUtPTEEKK1NJTU9OT1ZJxIYgUEVUQVIKK1NJTU9OT1ZJxIYgU0xPQk9EQU4KK1NJTU9OT1ZJxIYgVE9NSVNMQVYKK1NJTU9OT1ZJxIYgVk9KSVNMQVYKK1NJTU9OT1ZTS0kgRklOS0EKK1NJTU9OT1ZTS0kgTUlUQQorU0lNT1RJTiBSQURPVkFOCitTSU1PVknEhiDFvUVMSktPCitTSU1PVknEhiDFvUlWT1RBCitTSU1PVknEhiBBTktBCitTSU1PVknEhiBCUkFOSVNMQVYgRFIKK1NJTU9WScSGIERSQUdPTEpVQgorU0lNT1ZJxIYgRFJBR09MSlVCCitTSU1PVknEhiBEUkFHTworU0lNT1ZJxIYgSk9WQQorU0lNT1ZJxIYgTEpVQknFoEEKK1NJTU9WScSGIE1JTEFOCitTSU1PVknEhiBNSUxBTgorU0lNT1ZJxIYgTUlMQU4KK1NJTU9WScSGIE1JTEFOCitTSU1PVknEhiBNSUxPxaAKK1NJTU9WScSGIE1JTE/FoAorU0lNT1ZJxIYgTUlSS08KK1NJTU9WScSGIE1JVEFSCitTSU1PVknEhiBQRVRBUgorU0lNT1ZJxIYgUkFESVZPSkUKK1NJTU9WScSGIFJBRE9NSVIKK1NJTU9WScSGIFNMT0JPREFOIFBST0ZFU09SCitTSU1PVknEhiBTTE9CT0RBTgorU0lNT1ZJxIYgVE9ET1IKK1NJTU9WScSGIFZJREFLCitTSU1PVknEhiBWTEFESU1JUgorU0lNT1ZMSkVWScSGIEpPQ0EKK1NJTVVOScSGIMW9RUxJTUlSCitTSU1VTknEhiBBTkRSSUpBCitTSU1VTknEhiBNQUdEQQorU0lNVU5JxIYgU1RBTklNSVIKK1NJTVVOT1ZJxIYgTUFSSUpBCitTSU1VTk9WScSGIE1JTFVOCitTSU1VUkRJxIYgTUlMQU4KK1NJTVVSREnEhiBQRVRBUgorU0lNVVJEScSGIFZJVE9NSVIKK1NJTsSMScSGIFpWT05JTUlSCitTSU7EkEVMScSGIExKVUJJU0FWCitTSU7EkEVMScSGIE1JTE/FoAorU0lOxJBJxIYgTUlMRU5LTworU0lOQURJTk9WScSGIFZPSk8KK1NJTkFOSSBBQkRVTEEKK1NJTkFOSSBNSUxJQ0EKK1NJTkFOT1ZJxIYgU0FGRVQKK1NJTkdFUiBEUkFHSUNBCitTSU5HRVIgUlXFvUlDQQorU0lSQcSMS0kgS0FST0xJTkEKK1NJUkFDS0kgSk9WQU4KK1NJUkFDS0kgVkxBRElNSVIKK1NJUkFLIExBU0xPIERSCitTSVJJxaBLSSDFvUFSS08KK1NJUknFoEtJIMSQVVLEkElOQQorU0lSScWgS0kgQlJBTklTTEFWCitTSVJJxaBLSSBJVkFOCitTSVJJxaBLSSBKQVNNSU5LQQorU0lSScWgS0kgSkVMRU5BCitTSVJJxaBLSSBKT1ZBTgorU0lSScWgS0kgTUlST1NMQVZBCitTSVJJxaBLSSBTTEFWS08gU1VESUpBCitTSVJJxaBLSSBTTEFWS08KK1NJUk/EjEnEhiBJVkFOCitTSVJPxb1FTktPIFNORcW9QU5BCitTSVJPxb1FTktPIFZFUkEKK1NJUk9USU4gU0xBVklDQQorU0lST1ZJQ0EgSkFOT8WgCitTSVJVxIxFSyBWSUxJTSBESVBMIElORworU0lUQcWgIElMT05BCitTSVRBxaAgTEFKT8WgCitTSVRBUkVWScSGIEFNSVIKK1NJVEFSScSGIFBBSkEKK1NJVsSMIEFNQUxJSkEKK1NJVsSMIEFOxJBFTEtBCitTSVbEjCBEQU5JTE8KK1NJVsSMIEhFTEVOQQorU0lWxIwgSVJJTkEKK1NJVsSMIEpBTktPCitTSVbEjCBMSlVCT01JUgorU0lWxIwgTEpVQk9NSVIKK1NJVsSMIE5FU1RPUgorU0lWxIwgVkxBRElNSVIKK1NJVsSMRVYgxJBPS0EKK1NJVsSMRVYgQk/FvUlEQVIKK1NJVsSMRVYgSk9WQU4gRFIKK1NJVsSMRVYgSlVMS0EKK1NJVsSMRVYgTEpVQklDQQorU0lWxIxFViBNSUxBTgorU0lWxIxFViBaT1JBTgorU0lWQcSMS0kgxJBVUkEKK1NJVkHEjEtJIEpPVkFOCitTSVZBxIxLSSBNSUxBTgorU0lWQcSMS0kgTUlSSkFOQQorU0lWQcSMS0kgTUlST1NMQVYKK1NJVkHEjEtJIFNBVkEKK1NJVkHEjEtJIFNMT0JPREFOS0EKK1NJVkHEjEtJIFZFUkEKK1NJVkHEjEtJIFZFUkEKK1NJVkFDIEpPVkFOS0EKK1NJVkFLIElCT0xKQQorU0lWQUsgSlVESVRBCitTSVZBSyBMSlVCSU5LQQorU0lWQUsgUk9aSU5BCitTSVZJxIYgR09KS08KK1NJVknEhiBSQURFCitTSVpPViBNQVJHSVRBCitTSkVOScSMScSGIE5FREVMSktPCitTSkVQQU5PVknEhiBTUsSQQU4KK1NLQUtBVkFDIE5JS09MQQorU0tBS0FWQUMgTk9WQQorU0tBS0FWQUMgTk9WQQorU0tBS0FWQUMgU09GSUpBCitTS0FLQVZBQyBWRUxJTUlSCitTS0FLQVZBQyBWVUpJQ0EKK1NLQUtBVkFDIFpEUkFWS08KK1NLQUtJxIYgQk/FoEtPCitTS0FLScSGIE1JTEFOCitTS0FLScSGIE5JS09MQQorU0tBS1VOIMW9SVZLTworU0tBTEEgQU5UQUwKK1NLQUxBIE1JTEVOQQorU0tBTEEgVkxBRElNSVIKK1NLQUxJQ0tJIFpBR09SS0EKK1NLQU5EQVJTS0kgQU5LQQorU0tBTkRBUlNLSSBNSUxBTgorU0tBTkRBUlNLSSBNSUxPxaAKK1NLQU5EQVJTS0kgTUlSS08KK1NLQU5EQVJTS0kgTUxBREVOCitTS0FOREFSU0tJIE1PTcSMSUxPCitTS0FOREFSU0tJIFJBRE9WQU4KK1NLQVJBTVVDQSBNSUpPCitTS0FSQU1VQ0EgWkRSQVZLTworU0tFTEVExb1JxIYgQUxFS1NBTkRBUgorU0tFTEVExb1JxIYgQUxFS1NBTkRBUgorU0tFTEVExb1JxIYgQlJBTklTTEFWCitTS0VMRUTFvUnEhiBCUkFOSVNMQVYKK1NLRUxFRMW9ScSGIERSQUdJQ0EKK1NLRUxFRMW9ScSGIEtBVElDQQorU0tFTEVExb1JxIYgTEpVQklOS08KK1NLRUxFRMW9ScSGIE1BUklKQQorU0tFTEVExb1JxIYgTUlMQU4KK1NLRUxFRMW9ScSGIE1JUk9TTEFWQQorU0tFTEVExb1JxIYgUkFET1NMQVYKK1NLRUxFRMW9ScSGIFJBRE9TTEFWCitTS0VMRUTFvUlKQSBLQVRBCitTS0VMRUTFvUlKQSBSQURPSklDQQorU0tFTEVExb1JSkEgU1BBU0lNSVIKK1NLRU5Exb1JxIYgxb1BUktPCitTS0VORMW9ScSGIEJPR0RBTgorU0tFTkTFvUnEhiBCUkFOS0EKK1NLRU5Exb1JxIYgREFORQorU0tFTkTFvUnEhiBEQU5JTE8KK1NLRU5Exb1JxIYgRFJBR09NSVIKK1NLRU5Exb1JxIYgRFXFoEFOCitTS0VORMW9ScSGIElMSUpBCitTS0VORMW9ScSGIEpBU01JTktBCitTS0VORMW9ScSGIEpPVkFOS0EKK1NLRU5Exb1JxIYgTUFSR0FSRVRBCitTS0VORMW9ScSGIE1JTEFOCitTS0VORMW9ScSGIE1JTEVOS08KK1NLRU5Exb1JxIYgTUlMSUNBCitTS0VORMW9ScSGIFJBREUKK1NLRU5Exb1JxIYgU0FSQQorU0tFTkTFvUnEhiBTT0ZJSkEKK1NLRU5Exb1JxIYgU1RFVkFOCitTS0VOREVST1ZJxIYgQU5EUklKQQorU0tFTkRFUk9WScSGIEJFUklTTEFWCitTS0VOREVST1ZJxIYgR0FCT1IKK1NLRU5ERVJPVknEhiBNQVJJSkEKK1NLRU5ERVJPVknEhiBTSU5JxaBBCitTS0VSTEVUT1ZJxIYgTUlMT8WgCitTS0VSTEVUT1ZJxIYgWk9SQU4KK1NLRVJUIEJPxb1JREFSCitTS0nEjEFLIExBU0xPCitTS0lWSkFOSSDFoEFORE9SCitTS0lWSkFOSSBNSUhBTEoKK1NLTEFCSU5BQyBWTEFESU1JUgorU0tMQUJJTlNLSSBTQU1PCitTS0xFTkEgSk9IQU4gRElQTCBJTkcKK1NLTEVOQSBPTElWRVJBCitTS0xFTkEgVklLVE9SSUpBCitTS0xFTkFSIFBFVEFSCitTS0xKQVIgxJBVUk8KK1NLT8SMQUpJxIYgVlVLQcWgSU4KK1NLT8SMT1ZTS0kgTUFSSUpBCitTS09CRSBJVkFOCitTS09LIE1JUkpBTkEKK1NLT0tBTkRJxIYgUEVUQVIKK1NLT0tJxIYgTkVOQUQKK1NLT0tJxIYgVkVTTkEKK1NLT0tOScSGIERVxaBBTgorU0tPS05JxIYgU1RFVkFOCitTS09LTyBNSUxPxaAKK1NLT01JTkEgVkVSSUNBCitTS09QQUwgQkVMQQorU0tPUEFMIEpPVkFOCitTS09SScSGIEpBU01JTktBCitTS09SScSGIExKVUJPCitTS09SScSGIFRPTktBCitTS09SScSGIFZVSk8KK1NLT1JVUEFOIMSQVVJBCitTS09SVVBBTiBEQU5JQ0EKK1NLT1JVUEFOIEtBVEEKK1NLT1JVUEFOIFJBREVOS08KK1NLT1JVUEFOIFNMQVZLTworU0tPVE9WScSGIEZFUkVOQworU0tSQU1PxIZJTiBTUkXEhktPCitTS1JPQknEhiBEUkFHQU4KK1NLUk9CScSGIFBFVEFSCitTS1JPQk9OSkEgQUxFS1NBTkRBUgorU0tST0JPTkpBIEtBVElDQQorU0tST0JPTkpBIE5JS09MQQorU0tST0JPTkpBIFZMQURJTUlSCitTS1VCQU4gSEVMRU5BCitTS1VCQU4gSkFOS08KK1NLVUJBTiBKRUZSRU0KK1NLVUJBTiBKVUxJSkFOCitTS1VCQU4gTEVPTkEKK1NLVUJBTiBMSlVCT01JUgorU0tVQkFOIE1JSEFKTE8KK1NLVUJBTiBOQVRBTElKQQorU0tVQkFOIE5JS09MQQorU0tVQkFOIFpPUktBCitTS1VMQVIgUkFET0pLQQorU0tVTEnEhiBNSVJKQU5BCitTS1VMScSGIFNJTUtBCitTS1VMScSGIFZMQURJTUlSCitTS1VNUElKQSBKT8W9RUYKK1NLVVJVUEFUSVMgTUlSSkFOQQorU0xBxIZBTklOIElWQU4KK1NMQURBS09WScSGIE5JS09MQQorU0xBREVLIEFORFJJSkEKK1NMQURJxIYgQ1ZFVEEKK1NMQURJxIYgU0xPQk9EQU4KK1NMQURJxIYgU1RFVkFOCitTTEFEScSGIFpPUklDQQorU0xBRE9KQSBNSUxPVkFOCitTTEFET0pFIElMSUpBCitTTEFET0pFIFJBRE9NSVIKK1NMQURPSkVWIE1JTEFOCitTTEFET0pFViBQUkVEUkFHCitTTEFET0pFVknEhiDFvUlWS08KK1NMQURPSkVWScSGIE1JUktPCitTTEFET0pFVknEhiBSQURJVk9KCitTTEFNQSDEkE9SxJBFCitTTEFNQSBNQVJJSkEKK1NMQU1BUiBGRVJFTkMKK1NMQU5DIEpFTEVOQQorU0xBTktBTUVOQUMgxb1JVktPCitTTEFOS0FNRU5BQyDFvUlWS08KK1NMQU5LQU1FTkFDIMSQT1LEkEUKK1NMQU5LQU1FTkFDIEFMRUtTQU5EQVIKK1NMQU5LQU1FTkFDIEFOS0lDQQorU0xBTktBTUVOQUMgQlJBTklTTEFWCitTTEFOS0FNRU5BQyBEVcWgQU5LQQorU0xBTktBTUVOQUMgSURBCitTTEFOS0FNRU5BQyBKRUxFTkEKK1NMQU5LQU1FTkFDIEpPVkFOCitTTEFOS0FNRU5BQyBNQVJJSkEKK1NMQU5LQU1FTkFDIE1BUklKQQorU0xBTktBTUVOQUMgTUlMQU4KK1NMQU5LQU1FTkFDIE1JTEFOCitTTEFOS0FNRU5BQyBNSUxBTgorU0xBTktBTUVOQUMgTUlMT8WgCitTTEFOS0FNRU5BQyBNSUxPxaAKK1NMQU5LQU1FTkFDIE1JTE9KRQorU0xBTktBTUVOQUMgTUlSSkFOQQorU0xBTktBTUVOQUMgTU9NxIxJTE8KK1NMQU5LQU1FTkFDIE5BREEKK1NMQU5LQU1FTkFDIFBFVEFSIERSCitTTEFOS0FNRU5BQyBQRVRBUgorU0xBTktBTUVOQUMgUEVUQVIKK1NMQU5LQU1FTkFDIFBST0tBCitTTEFOS0FNRU5BQyBSQURPU0xBVgorU0xBTktBTUVOQUMgU1RFVkFOCitTTEFOS0FNRU5BQyBWRVNFTElOCitTTEFOS0FNRU5BQyBaT1JBTgorU0xBVFZJTlNLSSBHRU9SR0lKRQorU0xBVknEhiDEkE9SxJBFCitTTEFWScSGIFNPRklKQQorU0xBVklDQSBTVElQRQorU0xBVktJxIYgRFXFoEFOS0EKK1NMQVZLT1ZJxIYgQUxPSloKK1NMQVZLT1ZJxIYgTUlMT8WgCitTTEFWS09WScSGIE1JUkpBTkEKK1NMQVZLT1ZJxIYgU0lCSU4KK1NMQVZLT1ZJxIYgU05Fxb1BTkEKK1NMQVZLT1ZJxIYgVFJJRlVOCitTTEFWS09WScSGIFpERU5LTworU0xBVk5JxIYgREFOSUxPCitTTEFWTknEhiBKQVNNSU5BCitTTEFWTknEhiBMSlVCSUNBCitTTEFWTknEhiBOT1ZLQQorU0xBVk5JxIYgUkFESVZPSgorU0xBVk5PVknEhiBJVkFOCitTTEFWVUogQk/FvU8KK1NMQVZVSiBEUkFHQU4KK1NMQVZVSkVWScSGIERVxaBBTgorU0xBVlVKRVZJxIYgTEpVQk9NSVIKK1NMQVZVSkVWScSGIE1JTEVOQQorU0xBVlVKRVZJxIYgUkFESVNBVgorU0xBVlVKRVZJxIYgU1RFVk8KK1NMQVZVTEogTUlMRQorU0xFUMSMRVYgxb1JVkFOCitTTEVQxIxFViBEQU5JQ0EKK1NMRVDEjEVWIEpPVkFOCitTTEVQxIxFViBOSUtPTEEKK1NMRVDEjEVWIFpERU5LQQorU0xFUMSMRVYgWk9SSUNBCitTTEVQxIxFVknEhiBLUlNUQU4KK1NMRVDEjEVWScSGIExKVUJJxaBBCitTTEVQxIxFVknEhiBNSUxBTgorU0xFUMSMRVZJxIYgT0xHQQorU0xFUMSMRVZJxIYgUlXFvUEKK1NMRVDEjEVWScSGIFpEUkFWS0EKK1NMRVBLTyBJUkVOQQorU0xFUEtPIEpPVkFOCitTTEVQS08gTUlIQUpMTworU0xFUEtPIE1JTElDQQorU0xFU0FSIERBTklMTworU0xFU0FSIEpFTEVOQQorU0xFU0FSIE1PTcSMSUxPCitTTEVTQVIgVkFTQQorU0xJxaBLTyBBTkRSSUpBCitTTEnFoEtPIE1BUktPCitTTEnFoEtPVknEhiBBTsSQRUxLQQorU0xJSkVQxIxFVknEhiBBTkEKK1NMSUpFUMSMRVZJxIYgQklTRVJLQQorU0xJSkVQxIxFVknEhiBEUkFHQU4KK1NMSUpFUMSMRVZJxIYgRFXFoEFOCitTTElKRVDEjEVWScSGIERVxaBBTgorU0xJSkVQxIxFVknEhiBHRU9SR0lKRQorU0xJSkVQxIxFVknEhiBKQU5LTworU0xJSkVQxIxFVknEhiBKQU5LTworU0xJSkVQxIxFVknEhiBKT1ZBTgorU0xJSkVQxIxFVknEhiBLT1ZJTEpLQQorU0xJSkVQxIxFVknEhiBMSlVCQU4KK1NMSUpFUMSMRVZJxIYgTUlMT1JBRAorU0xJSkVQxIxFVknEhiBNSUxPVkFOCitTTElKRVDEjEVWScSGIE1JUk9TTEFWQQorU0xJSkVQxIxFVknEhiBOT1ZJQ0EKK1NMSUpFUMSMRVZJxIYgUlXFvUlDQQorU0xJSkVQxIxFVknEhiBTQVZPCitTTElKRVDEjEVWScSGIFZFUkEKK1NMSUpFUMSMRVZJxIYgVkpFS09TTEFWQQorU0xJSkVQxIxFVknEhiBaVk9OS08KK1NMSUpFUEFDIE1JTE/FoAorU0xJSkVQQUMgU0xPQk9EQU4KK1NMSU1BSyBBREFNCitTTElWQSBFTElaQUJFVEEKK1NMSVZLQSDEkFVSQQorU0xJVktBIEFOQQorU0xJVktBIEJPxb1BTkEKK1NMSVZLQSBCT1NJTEpLQQorU0xJVktBIEpBUk9TTEFWCitTTElWS0EgSk9WQU4KK1NMSVZLQSBNScWgQQorU0xJVktBIE1JxaBBCitTTElWS0EgU1RFVkFOCitTTElWS0EgWkRFTktBCitTTElWS0EgWkxBVEEKK1NMSlVLQSBCT0hVU0xBVgorU0xKVUtBIEpVUkFKCitTTE9CT0RBIEFOVEFMCitTTE9CT0RBIEnFoFRWQU4KK1NMT0JPREEgSkFOT8WgCitTTE9CT0RBIEpPxb1FRgorU0xPQk9EQSBKVUxLQQorU0xPQk9EQSBNSUhBSkxPCitTTE9CT0RBIE1JSEFMSgorU0xPQk9EQSBQRVRBUgorU0xPQk9EQSBTTEFWS0EKK1NMT0JPREEgU1RFVkFOCitTTE9LQVIgSVZBTgorU0xPS0FSIE1BVElKQQorU0xPVknEhiBEUkFHT0xKVUIgRFIKK1NMVU5KU0tJIEZSQU5KQQorU01BR0lOIElWQU4KK1NNQUpJxIYgTUFLU0lNCitTTUFKScSGIE1JTE/FoAorU01BSknEhiBTTE9CT0RBTgorU01BSknEhiBTTE9CT0RBTgorU01FREVSRVZBQyBEVcWgQU4KK1NNRURFUkVWQUMgSk9WQU4KK1NNRURFUkVWQUMgTUlMSUNBCitTTUVERVJFVkFDIFBFVEFSCitTTUVERVJFVkFDIFNURVZJQ0EKK1NNScSGRVZJxIYgVVJPxaAKK1NNSUXFoEtPIEpFTElTQVZFVEEKK1NNSUxJxIYgTUFSSUpBCitTTUlMSkFOScSGIMSQT1LEkEUKK1NNSUxKQU5JxIYgxJBPUsSQRQorU01JTEpBTknEhiDEkE9SxJBFCitTTUlMSkFOScSGIEJPSkFOQQorU01JTEpBTknEhiBCT1JLQQorU01JTEpBTknEhiBCUkFOS08KK1NNSUxKQU5JxIYgRE9CUklWT0oKK1NNSUxKQU5JxIYgRFJBR0lDQQorU01JTEpBTknEhiBJTElKQQorU01JTEpBTknEhiBKT1ZBTkEKK1NNSUxKQU5JxIYgSk9WQU4KK1NNSUxKQU5JxIYgSk9WTworU01JTEpBTknEhiBMSklMSkFOQQorU01JTEpBTknEhiBMSklMSkFOQQorU01JTEpBTknEhiBNQVJJSkEKK1NNSUxKQU5JxIYgTUlMQU4KK1NNSUxKQU5JxIYgTUlMQU4KK1NNSUxKQU5JxIYgTUlMRU5LTworU01JTEpBTknEhiBNSUxLQQorU01JTEpBTknEhiBNSUxPUkFECitTTUlMSkFOScSGIE1JTFVUSU4KK1NNSUxKQU5JxIYgTUlPRFJBRworU01JTEpBTknEhiBNTEFERU4KK1NNSUxKQU5JxIYgTkVWRU5LQQorU01JTEpBTknEhiBORVZFTktBCitTTUlMSkFOScSGIE9MSVZFUkEKK1NNSUxKQU5JxIYgUEVUQVIKK1NNSUxKQU5JxIYgUFJFRFJBRworU01JTEpBTknEhiBSQURBCitTTUlMSkFOScSGIFJBREUKK1NNSUxKQU5JxIYgU0FWQQorU01JTEpBTknEhiBTT0ZJSkEKK1NNSUxKQU5JxIYgU09GSUpBCitTTUlMSkFOScSGIFNUQU5BCitTTUlMSkFOScSGIFNURVZPCitTTUlMSkFOScSGIFRSSVZPCitTTUlMSkFOScSGIFZFU0VMS08KK1NNSUxKQU5JxIYgVklET1NBVgorU01JTEpBTknEhiBWSU5LTworU01JTEpBTknEhiBWTEFESU1JUgorU01JTEpBTknEhiBWTEFESU1JUgorU01JTEpBTknEhiBaTEFUS08KK1NNSUxKQU5JxIYgWk9SS0EKK1NNSUxKQU5PViBNSUxBTgorU01JTEpBTk9WIFJBRE9WQU4KK1NNSUxKQU5TS0kgTUlMQU4KK1NNSUxKScSGIMW9SVZLTworU01JTEpLT1ZJxIYgUkFET01JUgorU01JTEpLT1ZJxIYgU1RBTklNSVIKK1NNSVJOT1YgSlVESVRBCitTTUlSTk9WIEpVRElUCitTTUlSTk9WIFJBU1RJU0xBVgorU01JUk5PViBWTEFESU1JUgorU01PSyBOSUtPTEEKK1NNT0zEjEnEhiBSVcW9QQorU01PTEVOSUNLSSBNRUxJVEEKK1NNT0xFTlNLSSBLQVJMTworU01PTEVOU0tJIFJPWkFMSUpBCitTTU9MSkFOSUtPViBNSUhBSkxPIERJUEwgSU5HCitTTU9MT1ZJxIYgRFJBR09MSlVCCitTTU9MT1ZJxIYgTUlIQUpMTworU01PTE9WScSGIFJBRE1JTEEKK1NNT0xPVknEhiBSQVRLTworU01PTE9WScSGIFNBVkEKK1NNUkVLQSBEUkFHSUNBCitTTVXEkEEgR1JBRElNSVIKK1NNVcSQQSBKT1ZBTgorU01VxJBBIE1JTEVOS08KK1NNVcSQQSBOSUtPTEEKK1NNVcSQQSBTQVZBCitTTVVLIMW9SVZBTkEKK1NNVUsgQk9SSVZPSgorU01VVEVLIEpPU0lQCitTTVVUTkkgSVZBTgorU05KSURBIEFOQQorU05KSURBIFNBxaBBCitTT0LEjEFLIEZSQU5KQQorU09CT8SMQU4gTUnFoEEKK1NPQk/EhkFOIElWQU4KK1NPQ0VLIElNUkUKK1NPQ0VLIEpPU0lQCitTT0NFSyBNSVJKQU5BCitTT0ZJTEogQUxFS1NBTkRSQQorU09GSUxKIERSQUdJQ0EKK1NPRklMSiBKT1ZBTktBCitTT0ZJTEogUkFOS08KK1NPRklMSiBTTEFWSUNBCitTT0ZJTktJxIYgQlJBTktBCitTT0ZSQUTFvUlKQSBNVUhBTUVECitTT0ZSQU5JTiBCT1JJVk9KCitTT0ZSQU5JTiBLVVpNQU4KK1NPRlJBTklOIE1JTElWT0oKK1NPRlJFTknEhiBWRVJJQ0EKK1NPRlJPTklKRVZJxIYgTEpVQklDQQorU09GVEnEhiBNQVJJSkEKK1NPR0nEhiBTQVZBCitTT0dJxIYgVkxBRElTTEFWCitTT0pFVknEhiBNTEFERU4KK1NPSknEhiBSQURPSktBCitTT0tFTEUgQlJBTklTTEFWCitTT0tJxIYgxb1JVktPCitTT0tJxIYgxJBVUsSQSUNBCitTT0tJxIYgSUxJSkEKK1NPS0nEhiBMSURJSkEKK1NPS0nEhiBaT1JLQQorU09LTknEhiBUT01JU0xBVgorU09LT0xBIEFOVFVOCitTT0tPTEEgRkVSRU5DCitTT0tPTEEgScWgVFZBTgorU09LT0xBIEnFoFRWQU4KK1NPS09MQSBLQVRBUklOQQorU09LT0xBIE1BUlRBCitTT0tPTEFJIEpPxb1FRgorU09LT0xBSSBMQUpPxaAKK1NPS09MScSGIMW9RUxKS08KK1NPS09MT1YgQUxFS1NBTkRBUgorU09LT0xPViBMSlVCT01JUgorU09LT0xPViBNSUxBTgorU09LT0xPViBOQURLQQorU09LT0xPViBTTEFWS0EKK1NPS09MT1YgU1RFVkFOCitTT0tPTE9WIFpJTkFJRE8KK1NPS09MT1ZJxIYgxJBPUsSQRQorU09LT0xPVknEhiBBTkEKK1NPS09MT1ZJxIYgRFXFoEtPCitTT0tPTE9WScSGIEtBVEFSSU5BCitTT0tPTE9WScSGIE1JTEUKK1NPS09MT1ZJxIYgTkFUQUxJSkEKK1NPS09MT1ZJxIYgUlXFvUlDQQorU09LT0xPVknEhiBTTE9CT0RBTgorU09LT0xPVknEhiBTTE9CT0RBTgorU09LT0xPVknEhiBUT01JU0xBVgorU09LT0xPVknEhiBaT1JJQ0EKK1NPS09WScSGIERJTUlUUklKRQorU09LT1ZJxIYgRFXFoEFOCitTT0xBUiBMSlVCSUNBCitTT0xBUiBTVEpFUEFOCitTT0xBUkVWScSGIEpPVkFOS0EKK1NPTEFSRVZJxIYgTUlMQU5LQQorU09MQVJJxIYgU09GSUpBCitTT0xBUk9WIEJPUklTTEFWCitTT0xBUk9WIEJPUk8KK1NPTEFST1YgTUlMQU4KK1NPTEFST1YgTUlMSUNBCitTT0xBUk9WIE1JTElDQQorU09MQVJPViBNSUxPxaAKK1NPTEFST1YgTUlMT1ZBTgorU09MQVJPViBOSUtPTEEKK1NPTEFST1YgUkFESVZPSgorU09MREFUIEJPxaBLTworU09MREFUIEJSQU5LQQorU09MREFUIERSQUdPCitTT0xEQVQgTUlMT8WgCitTT0xEQVQgTUlUQVIKK1NPTERBVCBQRVRBUgorU09MREFUIFZFU05BCitTT0xEQVRPVknEhiDEkE9SxJBFCitTT0xEQVRPVknEhiDEkE9SxJBFCitTT0xEQVRPVknEhiBHT1JBTgorU09MREFUT1ZJxIYgSk9WQU4KK1NPTERBVE9WScSGIE1JTEEKK1NPTERBVE9WScSGIFNBVkEgTk9WSU5BUgorU09MREFUT1ZJxIYgU1RBTk9KRQorU09MREFUT1ZJxIYgVkVTTkEKK1NPTERBVE9WScSGIFZPSk8KK1NPTERPIEFMRUtTQU5EQVIKK1NPTERPIElWQU4KK1NPTERPIE5PVklDQQorU09MRE8gVkxBRElNSVIKK1NPTEXFoEEgTUnFoE8KK1NPTE9NVU4gQlJBTktPCitTT0xPTVVOIERSQUdPCitTT0xPTVVOIElMSUpBCitTT0xPTVVOIE1JTEUKK1NPTE9NVU4gVkVTQQorU09MT05KQSBTVEVWQU4KK1NPTUJPUkFDIEFMRUtTQU5EQVIKK1NPTUJPUkFDIEpPVkFOCitTT01CT1JBQyBNQVJJSkEKK1NPTUJPUkFDIFNSRcSGS08KK1NPTUJPUkFDIFRFUkVaQQorU09NQk9SQUMgVE9ET1IKK1NPTUJPUlNLSSBMQVpBUgorU09NQk9SU0tJIE1JTElDQQorU09NRVIgSU1SRQorU09NRVIgSkVMRU5BCitTT01FUiBUSUJPUgorU09QS0EgQU5JQ0EKK1NPUEtBIEpBTktPCitTT1BLQSBMSlVCT01JUgorU09QS0EgTEpVQk9NSVIKK1NPUEtBIE1BUklKQQorU09QS0EgTUlST1NMQVYKK1NPUsWgQUsgTUlMQU4KK1NPUsWgQUsgVkFMRU5USU4KK1NPUkFESSBBTlRVTgorU09SQURJIElWQU4KK1NPUkFESSBTVEpFUEFOCitTT1JBSknEhiBNSUxBTgorU09SQUpJxIYgTUlMSVZPSgorU09SQUsgREVMSVZPSkUKK1NPUkcgQU5HRUxJTkEKK1NPUkcgSkVMRU5BCitTT1JHIE5JS09MQQorU09SR0VSIE1JUkEKK1NPUk8gTUlMQU4KK1NPUk8gTUlPRFJBRworU09STyBNSVJKQU5BCitTT1JPIE5JS09MQQorU09STyBTSU1PCitTT1RFUiBKQU5PxaAKK1NPVElST1ZJxIYgU0xBVklDQQorU09UT05JQ0EgUkFKS08KK1NPVkEgUEVUQVIKK1NPVkEgUlVESQorU09WScWgIMSQT1LEkEUKK1NPVknFoCBNScWgQQorU09WScWgIE9MR0EKK1NPVknFoCBQQVZMRQorU09WSUxKIMSQT1LEkEUKK1NPVklMSiDEkFVSTworU09WSUxKIEFOxJBFTEtPCitTT1ZJTEogQU5LQQorU09WSUxKIEJPxb1PCitTT1ZJTEogQk9HREFOCitTT1ZJTEogRFXFoEFOCitTT1ZJTEogSUxJSkEKK1NPVklMSiBJTElKQQorU09WSUxKIElMSUpBCitTT1ZJTEogSVZJQ0EKK1NPVklMSiBKT1ZBTiBEUiBMRUtBUgorU09WSUxKIExKVUJJQ0EKK1NPVklMSiBNSUxBTiBNUgorU09WSUxKIE1JTEFOCitTT1ZJTEogUEVSS0EKK1NPVklMSiBQRVRBUgorU09WSUxKIFBFVEFSCitTT1ZJTEogVkxBRE8KK1NQQUhJxIYgS0VNQUwKK1NQQUnEhiDFvUVMSktPCitTUEFJxIYgTUlMQU4KK1NQQUnEhiBNSUxBTgorU1BBSknEhiBCT8W9QQorU1BBSknEhiBESUtPCitTUEFKScSGIEpPVkFOCitTUEFKScSGIEpVTElKQU5BCitTUEFKScSGIE1JTE9KRQorU1BBSknEhiBNSVJKQU5BCitTUEFKScSGIFNPRklKQQorU1BBSknEhiBWT0pJU0xBVgorU1BBSknEhiBaT1JBTgorU1BBSknEhiBaT1JBTgorU1BBTEVWScSGIE1JT01JUgorU1BBTEVWScSGIFZFUkEKK1NQQVJJT1NJIEFOxJBFTEtBCitTUEFTRU5PU0tJIERJTUlUUklKRQorU1BBU0VOT1YgTUlMRQorU1BBU0VOT1YgU1BBU0tPCitTUEFTRU5PViBTVEFOQQorU1BBU0VOT1ZJxIYgxb1JVktPCitTUEFTRU5PVknEhiBMSlVCSUNBCitTUEFTRU5PVlNLSSBST01BTgorU1BBU0VOT1ZTS0kgVkFTQQorU1BBU0nEhiDFvUlWT01JUgorU1BBU0nEhiDEkE9SxJBFCitTUEFTScSGIEFMRUtTQU5EQVIKK1NQQVNJxIYgQk/FvUlEQVIKK1NQQVNJxIYgQlJBTklTTEFWCitTUEFTScSGIEJSQU5JU0xBVgorU1BBU0nEhiBEUkFHScWgQQorU1BBU0nEhiBHT1JEQU5BCitTUEFTScSGIEdPUkRBTkEKK1NQQVNJxIYgSkVMSVNBVkVUQQorU1BBU0nEhiBKT1ZBTgorU1BBU0nEhiBKVUdPU0xBVgorU1BBU0nEhiBMSklMSkFOQQorU1BBU0nEhiBMSlVCSUNBCitTUEFTScSGIE1JTEFOCitTUEFTScSGIE1JTEVWQQorU1BBU0nEhiBNSUxPxaAKK1NQQVNJxIYgTUlMVVRJTgorU1BBU0nEhiBNSVJKQU5BCitTUEFTScSGIE1JUktPCitTUEFTScSGIE9MSVZFUkEKK1NQQVNJxIYgUEVUQVIKK1NQQVNJxIYgUFJFRFJBRworU1BBU0nEhiBTVEFOScWgQQorU1BBU0nEhiBTVEFOS08KK1NQQVNJxIYgU1RPSkFOCitTUEFTScSGIFNWRVRJU0xBVgorU1BBU0nEhiBUT01JU0xBViBESVBMIElORworU1BBU0nEhiBUT01JU0xBVgorU1BBU0nEhiBUUkFKQU5LQQorU1BBU0nEhiBWRUxJxIxLTworU1BBU0nEhiBWVUpJQ0EKK1NQQVNPSkVWIExKVUJJQ0EKK1NQQVNPSkVWIFNUT0pBTgorU1BBU09KRVZJxIYgxb1JVk9UQQorU1BBU09KRVZJxIYgxJBPUsSQRQorU1BBU09KRVZJxIYgxJBVUkEKK1NQQVNPSkVWScSGIEJPUknFoEEgTVIKK1NQQVNPSkVWScSGIEJPUklTTEFWCitTUEFTT0pFVknEhiBDVkVUS08KK1NQQVNPSkVWScSGIERFU0lNSVIKK1NQQVNPSkVWScSGIERPQlJJTEEKK1NQQVNPSkVWScSGIERPQlJPU0FWCitTUEFTT0pFVknEhiBEUkFHQU4KK1NQQVNPSkVWScSGIERSQUdJxaBBCitTUEFTT0pFVknEhiBEUkFHT0xKVUIKK1NQQVNPSkVWScSGIERSQUdPTUlSCitTUEFTT0pFVknEhiBEVcWgQU4KK1NQQVNPSkVWScSGIEVMSVpBQkVUQQorU1BBU09KRVZJxIYgR09TUEFWQQorU1BBU09KRVZJxIYgR09TVElNSVIKK1NQQVNPSkVWScSGIEpPVkFOCitTUEFTT0pFVknEhiBKVUxLQQorU1BBU09KRVZJxIYgS0FUSUNBCitTUEFTT0pFVknEhiBLUlNUQQorU1BBU09KRVZJxIYgTEFaQVIKK1NQQVNPSkVWScSGIE1JxIZPCitTUEFTT0pFVknEhiBNScSGTworU1BBU09KRVZJxIYgTUlIQUpMTworU1BBU09KRVZJxIYgTUlMT1JBRAorU1BBU09KRVZJxIYgTUlPRFJBRworU1BBU09KRVZJxIYgTUlPRFJBRworU1BBU09KRVZJxIYgTU9NxIxJTE8KK1NQQVNPSkVWScSGIE5FQk9KxaBBCitTUEFTT0pFVknEhiBOT1ZBSworU1BBU09KRVZJxIYgUEFWTEUKK1NQQVNPSkVWScSGIFBSRURSQUcKK1NQQVNPSkVWScSGIFJBQ08KK1NQQVNPSkVWScSGIFJBRElTQVYKK1NQQVNPSkVWScSGIFJBRE9KTEUKK1NQQVNPSkVWScSGIFJBTktPIERJUEwgSU5HCitTUEFTT0pFVknEhiBST0RPTEpVQgorU1BBU09KRVZJxIYgUlXFvUlDQQorU1BBU09KRVZJxIYgU0xBVktBCitTUEFTT0pFVknEhiBTTEFWS08KK1NQQVNPSkVWScSGIFNMQVZPCitTUEFTT0pFVknEhiBTTE9CT0RBTgorU1BBU09KRVZJxIYgU09OSkEKK1NQQVNPSkVWScSGIFNUQU5JU0xBVkEKK1NQQVNPSkVWScSGIFNURVZBTgorU1BBU09KRVZJxIYgU1VaQU5BCitTUEFTT0pFVknEhiBWSVRPTUlSIERSCitTUEFTT0pFVknEhiBWTEFESU1JUgorU1BBU09KRVZJxIYgWk9SQU4KK1NQQVNPTEkgRkVSQVQKK1NQQVNPVkEgTEpVQklDQQorU1BFUkFOU0tJIExKVURNSUxBIE1SCitTUEVSTkpBSyDEkE9SxJBFCitTUEVSTkpBSyBCT0dEQU4KK1NQRVJOSkFLIExKVUJJTktBCitTUEVSTkpBSyBNSUxFTktPIERJUEwgSU5HCitTUEVWQUsgREFOSUVMQQorU1BFVkFLIEpVUkFKCitTUEVWQUsgWk9ST1NMQVYKK1NQScSMQU5PVknEhiBFVklDQQorU1BJxIxBTk9WScSGIE1BSkEKK1NQScSMQU5PVknEhiBaQUdPUktBCitTUElMS1VDScSGIEJPUklWT0pFCitTUElSScSGIEFMRUtTQU5EQVIKK1NQSVJJRE9OT1YgQU5BU1RBUworU1BJUklET05PVknEhiBHUkFESU1JUgorU1BJUklET05PVknEhiBNSUxFTktPCitTUElSSURPTk9WScSGIFNJTFZJSkEKK1NQSVJPU0tJIEFMRUtTQU5EQVIKK1NQSVJPVlNLSSBDQU5FCitTUE9KQSDFvUVMSktPCitTUFJFTUnEhiBEUkFHQU4KK1NQUkVNScSGIFBFVEFSCitTUFJFTUnEhiBTUkVURU4KK1NQUkVNTyDEkFVSTworU1BSRU1PIE1JT0RSQUcKK1NQUkVNTyBNSVJLTworU1BSRU1PIE1JUk9TTEFWCitTUFJFTU8gUkFET1ZBTgorU1BSRU1PIFNMQVZLTworU1BSRU1PIFZPSklTTEFWCitTUFVTRU5JSyBMQUpPxaAKK1NSxJBBTk9WIMW9QVJLTworU1LEkEFOT1Ygxb1JVktPCitTUsSQQU5PViBLT05TVEFOVElOCitTUsSQQU5PViBNSUhBSkxPCitTUsSQQU5PViBNSUxJVk9KCitTUsSQQU5PViBNSUxPxaAgRElQTCBJTkcKK1NSxJBBTk9WIE1JTE/FoAorU1LEkEFOT1YgTUlST1NMQVYKK1NSxJBBTk9WIE5BREEKK1NSxJBBTk9WIE5BREEKK1NSxJBBTk9WIFNMQVZLTworU1LEkEFOT1YgU0xPQk9EQU5LQQorU1LEkEFOT1YgU0xPQk9EQU5LQQorU1LEkEFOT1YgU0xPQk9EQU4KK1NSxJBBTk9WIFZFUkEKK1NSxJBFTk9WScSGIE1JTEFOCitTUsSQRU5PVknEhiBVUk/FoAorU1LEkEVWScSGIEJPSkFOCitTUkJJTiBBTktBCitTUkJJTiBCT0dEQU4KK1NSQklOIEpPVkFOIERSCitTUkJJTiBLT1NUQQorU1JCSU4gTUlST1NMQVYKK1NSQklOT1ZTS0kgQk9SSVMKK1NSQklOT1ZTS0kgRFJBR0FOQQorU1JCSU5PVlNLSSBEUkFHQU5BCitTUkJJTk9WU0tJIE1BxaBBCitTUkJJTk9WU0tJIFBBTlRBCitTUkJJTk9WU0tJIFBFVEFSCitTUkJMSkFOIExBWkFSCitTUkJMSkFOSU4gRFJBR0FOCitTUkJMSkFOSU4gUFJFRFJBRworU1JCT1ZBTiBKT04KK1NSQlVMT1ZJxIYgQk/FvUlEQVIKK1NSQlVMT1ZJxIYgRFJBR09MSlVCCitTUkJVTE9WScSGIE1JUk9TTEFWCitTUkRBTk9WIMW9SVZBTgorU1JEQU5PViDFvUlWT0pJTgorU1JEQU5PViDEkE9SxJBFCitTUkRBTk9WIEJPxb1JREFSCitTUkRBTk9WIEpFTEtBCitTUkRBTk9WIEpPVkFOCitTUkRBTk9WIExBWkFSCitTUkRBTk9WIExBWkFSCitTUkRBTk9WIExKSUxKQU5BCitTUkRBTk9WIE1JxaBBCitTUkRBTk9WIE1JTElDQQorU1JEQU5PViBNSUxPxaAKK1NSREFOT1YgTUlMT1NBVkEKK1NSREFOT1YgUEVUQVIKK1NSREFOT1YgU0lNQQorU1JEQU5PViBTTEFWS0EKK1NSREFOT1YgU0xPQk9EQU4KK1NSREFOT1YgU0xPQk9EQU4KK1NSREFOT1YgVE9ET1IKK1NSREFOT1ZJxIYgQlJBTklTTEFWCitTUkRBTk9WScSGIERFSkFOCitTUkRBTk9WScSGIERSQUdPSkUKK1NSREFOT1ZJxIYgRklMSVAKK1NSREFOT1ZJxIYgTEVQT1NBVkEKK1NSREFOT1ZJxIYgT1pSRU4gRElQTCBJTkcKK1NSREFOT1ZJxIYgUk9TQU5EQQorU1JEQU5PVknEhiBTQU5KQQorU1JEScSGIMSMRURPTUlSCitTUkRJxIYgxb1JVktPCitTUkRJxIYgxb1JVktPCitTUkRJxIYgxb1JVktPCitTUkRJxIYgxJBPUsSQRSBNUgorU1JEScSGIMSQVVJPCitTUkRJxIYgQU7EkEEKK1NSREnEhiBBTkEKK1NSREnEhiBCT8WgS08KK1NSREnEhiBCT0dEQU4KK1NSREnEhiBCT1NBCitTUkRJxIYgQlJBTklTTEFWCitTUkRJxIYgREFORQorU1JEScSGIERJSkFOQQorU1JEScSGIERVxaBBTgorU1JEScSGIEVNRVJJS0EKK1NSREnEhiBFTUVSSUtBCitTUkRJxIYgR09SQU4KK1NSREnEhiBJVkFOCitTUkRJxIYgSkVMRU5BCitTUkRJxIYgTEpVQklDQQorU1JEScSGIE1JTEFOCitTUkRJxIYgTUlMQU4KK1NSREnEhiBNSUxJQ0EKK1NSREnEhiBNSVJKQU5BCitTUkRJxIYgTUlSS08KK1NSREnEhiBNSVJLTworU1JEScSGIE5BREEKK1NSREnEhiBOQURBCitTUkRJxIYgTklLT0xBCitTUkRJxIYgTklLT0xBCitTUkRJxIYgTklLT0xBCitTUkRJxIYgUEVUQVIKK1NSREnEhiBSQURFCitTUkRJxIYgUkFERQorU1JEScSGIFNJTUEKK1NSREnEhiBTTE9CT0RBTgorU1JEScSGIFNWRVRPWkFSCitTUkRJxIYgVkFTTworU1JEScSGIFZMQURJTUlSCitTUkRJxIYgVk9KQQorU1JEScSGIFpPUkEKK1NSRcSGS09WIMW9SVZLTworU1JFxIZLT1YgQkxBR0lDQQorU1JFxIZLT1YgQlJBTktPCitTUkXEhktPViBEUkFHQU4KK1NSRcSGS09WIERSQUdJQ0EKK1NSRcSGS09WIERVxaBBTgorU1JFxIZLT1YgRFXFoEFOCitTUkXEhktPViBFUsW9RUJFVAorU1JFxIZLT1YgSk9WQU4KK1NSRcSGS09WIEtBVElDQQorU1JFxIZLT1YgTUlMRU5BCitTUkXEhktPViBNSUxFTkEKK1NSRcSGS09WIE1JTElWT0oKK1NSRcSGS09WIE1JUk9TTEFWCitTUkXEhktPViBSQURJVk9KCitTUkXEhktPViBSQURPSktBCitTUkXEhktPViBTVEFOS08KK1NSRcSGS09WIFNURVZBTgorU1JFxIZLT1YgVEVPRE9SQQorU1JFxIZLT1YgVkFTQQorU1JFxIZLT1YgWkRSQVZLTworU1JFxIZLT1ZJxIYgQUxFS1NBTkRBUiBEUgorU1JFxIZLT1ZJxIYgRFJBR0nFoEEKK1NSRcSGS09WScSGIE1BUklKQQorU1JFxIZLT1ZJxIYgTUlMVVRJTgorU1JFxIZLT1ZJxIYgUkFEScWgQQorU1JFxIZLT1ZJxIYgU1RPSkFOQQorU1JFxIZPIERBTklDQQorU1JFxIZPIE1JxIZPCitTUkVCT1ROSkFLIFNUQU5LTworU1JFQlJPIElMSUpBIERSCitTUkVEQU5PVknEhiBNSUxPUkFEIERJUEwgSU5HCitTUkVEQU5PVknEhiBORURFTEpLTworU1JFRE9KRVZJxIYgREFSSU5LQQorU1JFRE9KRVZJxIYgRE9CUk8KK1NSRURPSkVWScSGIEpVTEtJQ0EKK1NSRURPSkVWScSGIExBWkFSCitTUkVET0pFVknEhiBNSUxJU0FWCitTUkVET0pFVknEhiBNSVJLTworU1JFRE9KRVZJxIYgTkVCT0rFoEEKK1NSRURPSkVWScSGIFZFTElNSVIKK1NSRURPSkVWScSGIFZFTElNSVIKK1NSRURPVknEhiBSQUpLTworU1JFSknEhiBCT1JLQQorU1JFTcSMRVYgxJBPUsSQRQorU1JFTcSMRVYgQUxFS1NBTkRBUiBEUiBMRUtBUgorU1JFTcSMRVYgTEFaQVIKK1NSRU3EjEVWIE1BUklKQQorU1JFTcSMRVYgTkVTVE9SCitTUkVNxIxFViBTTE9CT0RBTgorU1JFTcSMRVYgU09GSUpBCitTUkVNxIxFVknEhiBCT1JJU0xBVgorU1JFTcSMRVZJxIYgSk9WQU4KK1NSRU3EjEVWScSGIEpPVkFOCitTUkVNxIxFVknEhiBLQVRBCitTUkVNxIxFVknEhiBLQVRJQ0EKK1NSRU3EjEVWScSGIExKVUJJxaBBCitTUkVNxIxFVknEhiBSQURJVk9KCitTUkVNxIxFVknEhiBSQVNUS08KK1NSRU3EjEVWScSGIFNMQVZOQQorU1JFTcSMRVZJxIYgU1RBTklTTEFWCitTUkVNxIxFVknEhiBWRUxKS08KK1NSRU1BxIxLSSDEkE9SxJBFCitTUkVNQcSMS0kgRFJBR09MSlVCCitTUkVNQcSMS0kgRFXFoEFOS0EKK1NSRU1BxIxLSS1HQVZSSUxPVknEhiBNQUpBCitTUkVNQcSMS0kgSVZBTktBCitTUkVNQcSMS0kgSk9WQU5LQQorU1JFTUHEjEtJIE1JTE/FoAorU1JFTUHEjEtJLU1JUktPVknEhiBNSVJKQU5BCitTUkVNQcSMS0kgUEVUQVIKK1NSRU1BxIxLSSBTSU1BCitTUkVNQcSMS0kgU09LQQorU1JFTUHEjEtJIFNQQVNPSkUKK1NSRU1BxIxLSSBTVEFOT0pFCitTUkVNQcSMS0kgVkxBREEKK1NSRU1BxIxLSSBaT1JJQ0EKK1NSRU1BQyDEkE9SxJBFCitTUkVNQUMgQUxFS1NBTkRBUgorU1JFTUFDIERSQUdPTEpVQgorU1JFTUFDIElTQUsKK1NSRU1BQyBKQU5LTworU1JFTUFDIEpPVkFOCitTUkVNQUMgTEpVQklDQQorU1JFTUFDIExKVUJJQ0EKK1NSRU1BQyBNSUxFTkEKK1NSRU1BQyBNSUxFTktPCitTUkVNQUMgTUlMSVZPSgorU1JFTUFDIE1JUkEKK1NSRU1BQyBOSUtPTEEKK1NSRU1BQyBQQVVMSU5BCitTUkVNQUMgUEFWTEUKK1NSRU1BQyBQRVJTSURBCitTUkVNQUMgUkFET0pLTworU1JFTUFDIFNMT0JPREFOCitTUkVNQUMgU1LEkEFOCitTUkVNQUMgU1RPSkFOS0EKK1NSRU1BQyBTVkVUSVNMQVYKK1NSRU1BQyBTVkVUSVNMQVYKK1NSRU1BQyBUQU5BU0lKRQorU1JFTUFDIFZMQURJTUlSCitTUkVNQUMgVkxBSktPCitTUkVNQUMgWk9SQU5BCitTUkVNQUMgWk9SQU4KK1NSRVRFTk9WScSGIMSQVVLEkElOS0EKK1NSRVRFTk9WScSGIEJPUklWT0oKK1NSRVRFTk9WScSGLU1BTk9KTE9WScSGIMSQVVLEkElOS0EKK1NSRVRFTk9WScSGIE5FVkVOS0EKK1NSRVRFTk9WScSGIFNUT0pBRElOCitTUkVUScSGIE1JTEVOS08KK1NSRVRJxIYgTUlSSkFOQQorU1JFVEnEhiBSQVRPTUlSCitTUkVUS09WScSGIFZFUklDQQorU1JORE9WScSGIFpPUktBCitTUk5FQyDFvUVMSktPCitTUk5JxIYgQk9HREFOCitTUk5JxIYgRVZJQ0EKK1NSTktBIEpBTktPCitTUk5LQSBKT1ZBTgorU1RBxaBVSyBNSUhBSkxPCitTVEFIQU5JxIYgQU5LQQorU1RBSU4gU1RFVkFOCitTVEFKxIxJxIYgSVZBTgorU1RBSsSMScSGIFBFVEFSCitTVEFKxaBJxIYgxJBVUkEKK1NUQUpJxIYgxJBPUsSQRQorU1RBSknEhiBBTEVLU0FORFJBCitTVEFKScSGIEJPxb1JREFSCitTVEFKScSGIEJPUklTTEFWCitTVEFKScSGIEJPUklTTEFWCitTVEFKScSGIEJPUklWT0oKK1NUQUpJxIYgQlJBTklNSVIKK1NUQUpJxIYgQlJBTklTTEFWCitTVEFKScSGIERSQUdPTEpVQgorU1RBSknEhiBEVcWgQU4KK1NUQUpJxIYgRFXFoElDQQorU1RBSknEhiBGRU1BCitTVEFKScSGIEdMSUdPUklKRQorU1RBSknEhiBHTElHT1JJSkUKK1NUQUpJxIYgR1JJR09SSUpFIERJUEwgSU5HCitTVEFKScSGIEpVU1RJTkEKK1NUQUpJxIYgTEVQT1NBVkEKK1NUQUpJxIYgTEpVQk9NSVIKK1NUQUpJxIYgTUFSQQorU1RBSknEhiBNQVJJSkEKK1NUQUpJxIYgTUlMQU4gRElQTCBJTkcKK1NUQUpJxIYgTUlMQU4KK1NUQUpJxIYgTUlMRVNBCitTVEFKScSGIE1JTEVWQQorU1RBSknEhiBNSUxLQQorU1RBSknEhiBNSVJPU0xBVgorU1RBSknEhiBORVNUT1IKK1NUQUpJxIYgUEFWTEUKK1NUQUpJxIYgUEVUQVIKK1NUQUpJxIYtUE9QT1YgQk9SSVNMQVZBIERSCitTVEFKScSGIFJBRElWT0oKK1NUQUpJxIYgUkFET1NMQVYKK1NUQUpJxIYgU0lLQQorU1RBSknEhiBTUkVUQQorU1RBSknEhiBTVEFOSVNMQVYKK1NUQUpJxIYgU1RPSkFESU4KK1NUQUpJxIYgVE9ET1IKK1NUQUpJxIYgVkVMSU1JUgorU1RBSknEhiBWVUtPU0FWCitTVEFKScSGIFpMQVRBCitTVEFKS09WScSGIEJSQVRJU0xBVgorU1RBSktPVknEhiBEUkFHT0xKVUIKK1NUQUtJxIYgxb1JVkFOCitTVEFLScSGIMW9SVZLQQorU1RBS0nEhiDEkFVSTworU1RBS0nEhiBBTEVLU0FOREFSCitTVEFLScSGIEJPxaBLTworU1RBS0nEhiBCT8W9SURBUgorU1RBS0nEhiBCT1JJVk9KRQorU1RBS0nEhiBCUkFOSVNMQVYKK1NUQUtJxIYgREVKQU4KK1NUQUtJxIYgRFXFoEFOIERJUEwgSU5HCitTVEFLScSGIEpFTEVOQQorU1RBS0nEhiBKT1ZBTiBTVURJSkEKK1NUQUtJxIYgTUVMSU5EQQorU1RBS0nEhiBNSUxBTgorU1RBS0nEhiBNSUxBTgorU1RBS0nEhiBNSVJLTworU1RBS0nEhiBNT01JUgorU1RBS0nEhiBORUJPSsWgQQorU1RBS0nEhiBORURFTEpLTworU1RBS0nEhiBOSUtPTEEKK1NUQUtJxIYgUEFWTEUKK1NUQUtJxIYgU1BPTUVOS0EKK1NUQUtJxIYgU1RPSkFOCitTVEFLScSGIFZFUkEKK1NUQUtJxIYgWkFIQVJJSkUKK1NUQUtJxIYgWk9SQU4KK1NUQUtPUknEhiBaRFJBVktPCitTVEFNQVRPVknEhiBNSUxFTktPIERSCitTVEFNQVRPVknEhiBNSUxPUkFECitTVEFNRU5JxIYgREFNTkpBTgorU1RBTUVOScSGIE1BUktPCitTVEFNRU5JxIYgUkFET1NBVgorU1RBTUVOScSGIFRPTUlTTEFWCitTVEFNRU5LT1ZJxIYgxb1JVk9KSU4KK1NUQU1FTktPVknEhiDFvUlWT0pJTgorU1RBTUVOS09WScSGIEFMRUtTQU5EQVIKK1NUQU1FTktPVknEhiBCTEFHT0pFCitTVEFNRU5LT1ZJxIYgRFJBR0FOCitTVEFNRU5LT1ZJxIYgR09SREFOQQorU1RBTUVOS09WScSGIExKVUJPTUlSIERSCitTVEFNRU5LT1ZJxIYgTEpVQk9NSVIKK1NUQU1FTktPVknEhiBNQVJKQU4KK1NUQU1FTktPVknEhiBNSUxPUkFECitTVEFNRU5LT1ZJxIYgTUlST1NMQVZBCitTVEFNRU5LT1ZJxIYgTk9WSUNBCitTVEFNRU5LT1ZJxIYgUEVUUk9OSUpFCitTVEFNRU5LT1ZJxIYgUkFET01JUiBESVBMIElORworU1RBTUVOS09WScSGIFNJTknFoEEKK1NUQU1FTktPVknEhiBTTEFWT0xKVUIKK1NUQU1FTktPVknEhiBTTE9CT0RBTgorU1RBTUVOS09WScSGIFNSRVRFTiBEUgorU1RBTUVOS09WScSGIFNSRVRFTgorU1RBTUVOS09WScSGIFNUQU5JTUlSCitTVEFNRU5LT1ZJxIYgU1RPSkFOCitTVEFNRU5LT1ZJxIYgU1RPSkFOCitTVEFNRU5LT1ZJxIYgU1RPSkFOCitTVEFNRU5LT1ZJxIYgVkFTSUxJSkUKK1NUQU1FTktPVknEhiBWRUxJQk9SCitTVEFNRU5LT1ZJxIYgVkVSQQorU1RBTUVOS09WScSGIFZMQURJTUlSIERJUEwgSU5HCitTVEFNRU5LT1ZJxIYgVkxBRElNSVIKK1NUQU1FTktPVknEhiBWTEFTVElNSVIKK1NUQU1FTktPVknEhiBWVUtBRElOCitTVEFNRU5LT1ZJxIYgWk9SQU4KK1NUQU1FTktPVknEhiBaT1JBCitTVEFNRU5PViBCUkFOS08KK1NUQU1FTk9WIE5JS09MQQorU1RBTUVOT1YgU0xBVktBCitTVEFNRU5PVknEhiBLUlNUSVZPSgorU1RBTUVOT1ZJxIYgUkFKS08KK1NUQU1FVlNLSSBUT07EjEUKK1NUQU1PUkFOIEtBVElDQQorU1RBTVBGRVIgUk9aQUxJSkEKK1NUQU7EjEVUScSGIERSQUdJQ0EKK1NUQU7EjEVUScSGIFBBVkxFCitTVEFOxIxJxIYgQU7EkEVMS0EKK1NUQU7EjEnEhiBBTkRSSUpBIERSCitTVEFOxIxJxIYgQkxBR09KRSBNUgorU1RBTsSMScSGIEJPxb1BTkEKK1NUQU7EjEnEhiBCT8W9SURBUgorU1RBTsSMScSGIERBTklDQQorU1RBTsSMScSGIERSQUdPTEpVQgorU1RBTsSMScSGIExBWkFSCitTVEFOxIxJxIYgTEpVQk9NSVIKK1NUQU7EjEnEhiBNQVJJSkEKK1NUQU7EjEnEhiBNQVJLTworU1RBTsSMScSGIE1JxIZBCitTVEFOxIxJxIYgTUlIQUpMTworU1RBTsSMScSGIE1JS0EKK1NUQU7EjEnEhiBNSU9EUkFHCitTVEFOxIxJxIYgTklLT0xBCitTVEFOxIxJxIYgUEFWTEUKK1NUQU7EjEnEhiBUQU5LT1NBVkEKK1NUQU7EjEnEhiBUSUhPTUlSCitTVEFOxIxJxIYgWk9SQU4KK1NUQU7EjElLIE1BUkdJVEEKK1NUQU7EjFUgTUFSSUpBCitTVEFOxIxVTCDFvUlWQU4KK1NUQU7EjFVMIEFOS0EKK1NUQU7EjFVMIExKSUxKQU5BCitTVEFOxIxVTCBMSlVCT01JUgorU1RBTsSMVUwgUkFESVNMQVYKK1NUQU7EjFVMIFJBRE9WQU4KK1NUQU7EjFVMIFNBVkEKK1NUQU7EjFVMT1YgRFJBR0lDQQorU1RBTsSMVUxPViBNSUxBTgorU1RBTkHEhkVWIMW9SVZBCitTVEFOQcSGRVYgTUlMRU5BCitTVEFOQcSGRVYgTUlMSVZPSgorU1RBTkHEhkVWIFNSRURPSkUgRFIKK1NUQU5BUiDEkFVSQQorU1RBTkFSIMSQVVJBCitTVEFOQVIgxJBVUkEKK1NUQU5BUiBBTktBCitTVEFOQVIgREVTQQorU1RBTkFSIERVxaBBTktBCitTVEFOQVIgRFXFoEFOCitTVEFOQVItR09HScSGIFNURVZBTgorU1RBTkFSIElMSUpBCitTVEFOQVIgTUlMRQorU1RBTkFSIFJBREUKK1NUQU5BUiBSQVRLTworU1RBTkFSRVZJxIYgxb1FTEpLTworU1RBTkFSRVZJxIYgQk/FvUEKK1NUQU5BUkVWScSGIE1BUktPCitTVEFOQVJFVknEhiBNSUhBSkxPCitTVEFOQVJFVknEhiBNSUxBTgorU1RBTkFSRVZJxIYgTkVERUxKS0EKK1NUQU5BUkVWScSGIFNBVkEKK1NUQU5CT0xJSkEgTUlSS08KK1NUQU5FS09WScSGIE1JTEFOCitTVEFORUtPVknEhiBTVEFOSVNMQVYKK1NUQU5FS09WScSGIFZPSkEKK1NUQU5JxIxLT1YgxIxFRE9NSVIKK1NUQU5JxIxLT1YgQk9SQQorU1RBTknEjEtPViBKT1ZBTgorU1RBTknEjEtPViBMSklMSkFOQQorU1RBTknEjEtPViBNQVJUQQorU1RBTknFoEnEhiBCT0dPTEpVQgorU1RBTknFoEnEhiBCT1JJU0xBVgorU1RBTknFoEnEhiBCVURJTktBCitTVEFOScWgScSGIERBTUpBTgorU1RBTknFoEnEhiBEUkFHT0xKVUIKK1NUQU5JxaBJxIYgRFJBR09MSlVCCitTVEFOScWgScSGIERSQUdPTUlSCitTVEFOScWgScSGIERVxaBBTgorU1RBTknFoEnEhiBEVcWgQU4KK1NUQU5JxaBJxIYgR09KS08KK1NUQU5JxaBJxIYgSkVMRU5BCitTVEFOScWgScSGIEpPVkFOCitTVEFOScWgScSGIEpPVkFOCitTVEFOScWgScSGIEtBVElDQQorU1RBTknFoEnEhiBMRVBPU0FWQQorU1RBTknFoEnEhiBMSklMSkFOQSBEUgorU1RBTknFoEnEhiBMSlVCSUNBCitTVEFOScWgScSGIE1BUktPCitTVEFOScWgScSGIE1BUktPCitTVEFOScWgScSGIE1JTEFOCitTVEFOScWgScSGIE1JTEFOCitTVEFOScWgScSGIE1JTEnEhiBEUiBMRUtBUgorU1RBTknFoEnEhiBNSUxJVk9KCitTVEFOScWgScSGIE1JTE/FoAorU1RBTknFoEnEhiBNSU9EUkFHCitTVEFOScWgScSGIE1JT0RSQUcKK1NUQU5JxaBJxIYgTUxBREVOCitTVEFOScWgScSGIE1PTUlSCitTVEFOScWgScSGIE5FQk9KxaBBCitTVEFOScWgScSGIE5FREVMSktBCitTVEFOScWgScSGIE5JS09MQQorU1RBTknFoEnEhiBOSUtPTEEKK1NUQU5JxaBJxIYgT0xHSUNBCitTVEFOScWgScSGIFBBVkxFCitTVEFOScWgScSGIFBBVkxFCitTVEFOScWgScSGIFBFVEFSCitTVEFOScWgScSGIFBST0tBCitTVEFOScWgScSGIFJBREEKK1NUQU5JxaBJxIYgUkFET1ZBTgorU1RBTknFoEnEhiBSQVRLTworU1RBTknFoEnEhiBSRUxKQQorU1RBTknFoEnEhiBTSU1PCitTVEFOScWgScSGIFNMQVZLTyBESVBMIElORworU1RBTknFoEnEhiBTTE9CT0RBTgorU1RBTknFoEnEhiBTVEFOScWgQQorU1RBTknFoEnEhiBTVEFOSVNMQVYKK1NUQU5JxaBJxIYgU1RFVk8KK1NUQU5JxaBJxIYgU1RPSkFOxIxBCitTVEFOScWgScSGIFNWRVRMQU5BCitTVEFOScWgScSGIFNWRVRPWkFSIERSCitTVEFOScWgScSGIFNWRVRPWkFSCitTVEFOScWgScSGIFRJSE9NSVIKK1NUQU5JxaBJxIYgVE9ET1IKK1NUQU5JxaBJxIYgVE9NQcWgCitTVEFOScWgScSGIFZBU0lMSktBCitTVEFOScWgScSGIFZFTEpLTworU1RBTknFoEnEhiBWTEFEQQorU1RBTknFoEnEhiBaT1JBTgorU1RBTknFoEnEhiBaT1JBTgorU1RBTknFoElOIEJSQU5LTworU1RBTknFoElOIElTQQorU1RBTknFoElOIFZPSklOCitTVEFOScWgTEpFVknEhiBEVcWgQU5LQQorU1RBTknEhiDFvUlWQURJTgorU1RBTknEhiDFvUlWQU4KK1NUQU5JxIYgxJBVUkEKK1NUQU5JxIYgQUxFS1NBTkRBUgorU1RBTknEhiBCT8WgS08KK1NUQU5JxIYgQk9HREFOCitTVEFOScSGIEJSQU5LQQorU1RBTknEhiBCUkFOS08KK1NUQU5JxIYgQlJBTktPCitTVEFOScSGIERBTkUKK1NUQU5JxIYgREFOSUNBCitTVEFOScSGIERBTktBCitTVEFOScSGIERSQUdBTgorU1RBTknEhiBEUkFHT1NMQVYgRFIKK1NUQU5JxIYgRFJBR08KK1NUQU5JxIYgRFXFoEFOCitTVEFOScSGIEdPSktPCitTVEFOScSGIElMSUpBCitTVEFOScSGIElMSUpBCitTVEFOScSGIElMSUpBCitTVEFOScSGIElMSUpBCitTVEFOScSGIElWQU4KK1NUQU5JxIYgSkFEUkFOS0EKK1NUQU5JxIYgSkVMRU5BCitTVEFOScSGIEpPVkFOIERJUEwgSU5HCitTVEFOScSGIEpPVkFOIERJUEwgSU5HCitTVEFOScSGIEpVTEtBCitTVEFOScSGIEtSSVNUSVZPSkUKK1NUQU5JxIYgTElOS0EKK1NUQU5JxIYgTEpVQk9EUkFHCitTVEFOScSGIE1BTkUKK1NUQU5JxIYgTUFSS08KK1NUQU5JxIYgTUlMQU4gRElQTCBQUkFWTklLCitTVEFOScSGIE1JTEFOS08KK1NUQU5JxIYgTUlMQU5LTworU1RBTknEhiBNSUxBTgorU1RBTknEhiBNSUxBTgorU1RBTknEhiBNSUxBTgorU1RBTknEhiBNSUxBTgorU1RBTknEhiBNSUxFCitTVEFOScSGIE1JTElDQQorU1RBTknEhiBNSUxJTktPCitTVEFOScSGIE1JTElTQVYKK1NUQU5JxIYgTUlMT0pFCitTVEFOScSGIE1JTE9TQVZBCitTVEFOScSGIE1MQURFTgorU1RBTknEhiBNT03EjElMTworU1RBTknEhiBPTEdBCitTVEFOScSGIE9TVE9KQQorU1RBTknEhiBQRVRBUgorU1RBTknEhiBQRVRBUgorU1RBTknEhiBQRVRBUgorU1RBTknEhiBSQURFCitTVEFOScSGIFJBREUKK1NUQU5JxIYgUkFEScWgQQorU1RBTknEhiBSQURPVkFOIERJUEwgSU5HCitTVEFOScSGIFJBSktPCitTVEFOScSGIFNBVk8KK1NUQU5JxIYgU0lNTworU1RBTknEhiBTSU5JxaBBCitTVEFOScSGIFNQQVNPSkUKK1NUQU5JxIYgU1LEkEFOCitTVEFOScSGIFNUQU1FTkEKK1NUQU5JxIYgU1RFVkFOCitTVEFOScSGIFVST8WgCitTVEFOScSGIFZFTElCT1IKK1NUQU5JxIYgVklLVE9SCitTVEFOScSGIFZJVE9NSVIKK1NUQU5JxIYgVklUT01JUgorU1RBTknEhiBWTEFESU1JUgorU1RBTknEhiBWT0pJU0xBVgorU1RBTknEhiBaT1JBTgorU1RBTknEhiBaT1JBTgorU1RBTknFvUFOIE1JTE9SQUQKK1NUQU5JSyBPTEdBCitTVEFOSUtJxIYgTUlMQU4KK1NUQU5JS0nEhiBNSUxFVkEKK1NUQU5JTUlST1YgQUxFS1NBTkRBUgorU1RBTklNSVJPViBBTkEKK1NUQU5JTUlST1YgQk9SSVZPSgorU1RBTklNSVJPViBCUkFOS0EKK1NUQU5JTUlST1YgRFXFoEFOCitTVEFOSU1JUk9WIEdBVlJBCitTVEFOSU1JUk9WIEpFTEtBCitTVEFOSU1JUk9WIEtBVElDQQorU1RBTklNSVJPViBMSklMSkFOQQorU1RBTklNSVJPViBMSklMSkFOQQorU1RBTklNSVJPViBMSlVCSUNBCitTVEFOSU1JUk9WIE5FREVMSktPCitTVEFOSU1JUk9WIFJBRElWT0oKK1NUQU5JTUlST1YgUkFOS0EKK1NUQU5JTUlST1YgU0xBVktPCitTVEFOSU1JUk9WIFpPUklDQQorU1RBTklNSVJPVknEhiDFvUlWT0pJTgorU1RBTklNSVJPVknEhiBERVNJTUlSCitTVEFOSU1JUk9WScSGIERSQUdBTgorU1RBTklNSVJPVknEhiBEUkFHQU4KK1NUQU5JTUlST1ZJxIYgRFJBR09NSVIKK1NUQU5JTUlST1ZJxIYgSkFEUkFOS0EKK1NUQU5JTUlST1ZJxIYgSkVMSUNBCitTVEFOSU1JUk9WScSGIEtSU1RPCitTVEFOSU1JUk9WScSGIE1PTUEgRFIKK1NUQU5JTUlST1ZJxIYgUEFWTEUKK1NUQU5JTUlST1ZJxIYgUkFET0pLQQorU1RBTklNSVJPVknEhiBTVEFOSU1JUgorU1RBTklNSVJPVknEhiBUQVRKQU5BCitTVEFOSU1JUk9WScSGIFRSSUZVTgorU1RBTklNSVJPVknEhiBWRVJPTklLQQorU1RBTklTQVZMSkVWIMSQT0tBCitTVEFOSVNBVkxKRVYgxJBPUsSQRQorU1RBTklTQVZMSkVWIEFMRUtTQU5EUkEKK1NUQU5JU0FWTEpFViBBTkEKK1NUQU5JU0FWTEpFViBET0JSSVZPSgorU1RBTklTQVZMSkVWIERVxaBBTgorU1RBTklTQVZMSkVWIExKVUJJQ0EKK1NUQU5JU0FWTEpFViBMSlVCT01JUgorU1RBTklTQVZMSkVWIE1JTEFOCitTVEFOSVNBVkxKRVYgTUlMSUNBCitTVEFOSVNBVkxKRVYgTUlMT0pLTworU1RBTklTQVZMSkVWIE1JUk9TTEFWCitTVEFOSVNBVkxKRVZJxIYgxJBPUsSQRSBESVBMIElORworU1RBTklTQVZMSkVWScSGIMSQT1LEkEUKK1NUQU5JU0FWTEpFVknEhiBCSUxKQU5BCitTVEFOSVNBVkxKRVZJxIYgQk/FvUEKK1NUQU5JU0FWTEpFVknEhiBDVkVUQQorU1RBTklTQVZMSkVWScSGIERBTkUKK1NUQU5JU0FWTEpFVknEhiBESU1JVFJJSkUKK1NUQU5JU0FWTEpFVknEhiBEUkFHT01JUgorU1RBTklTQVZMSkVWScSGIERVxaBBTktBCitTVEFOSVNBVkxKRVZJxIYgRUxJWkFCRVRBCitTVEFOSVNBVkxKRVZJxIYgR0laRUxBCitTVEFOSVNBVkxKRVZJxIYgR09SREFOQQorU1RBTklTQVZMSkVWScSGIElHTkpBVElKRQorU1RBTklTQVZMSkVWScSGIEtBVElDQQorU1RBTklTQVZMSkVWScSGIExFUE9TQVZBCitTVEFOSVNBVkxKRVZJxIYgTUFSSUpBCitTVEFOSVNBVkxKRVZJxIYgTUlMQU4KK1NUQU5JU0FWTEpFVknEhiBNSUxBTgorU1RBTklTQVZMSkVWScSGIE1JTElWT0pFCitTVEFOSVNBVkxKRVZJxIYgTUlMT8WgCitTVEFOSVNBVkxKRVZJxIYgTUlPRFJBRworU1RBTklTQVZMSkVWScSGIE1JT0RSQUcKK1NUQU5JU0FWTEpFVknEhiBNSVJLTworU1RBTklTQVZMSkVWScSGIE5BREEKK1NUQU5JU0FWTEpFVknEhiBSQURFCitTVEFOSVNBVkxKRVZJxIYgUlXFvUlDQQorU1RBTklTQVZMSkVWScSGIFNBVkEgRElQTCBJTkcKK1NUQU5JU0FWTEpFVknEhiBTVEFWUkEgRElQTCBJTkcKK1NUQU5JU0FWTEpFVknEhiBTVEVWQU4KK1NUQU5JU0FWTEpFVknEhiBWRUxJWkFSCitTVEFOSVNBVkxKRVZJxIYgVkVMSktPCitTVEFOSVNBVkxKRVZJxIYgWk9SSUNBCitTVEFOSVZVSyDFvUFSS08KK1NUQU5JVlVLIERFSkFOCitTVEFOSVZVSyBNSVJLTworU1RBTklWVUsgTUxBREVOCitTVEFOSVZVSyBOQURBCitTVEFOSVZVSyBORURFTEpLTworU1RBTklWVUsgTklLT0xBCitTVEFOSVZVSyBaRFJBVktPCitTVEFOSVZVS09WScSGIERSQUdVVElOIE1SCitTVEFOSVZVS09WScSGIERSQUdVVElOCitTVEFOSVZVS09WScSGIExKSUxKQU5BCitTVEFOSVZVS09WScSGIE1BUklKQQorU1RBTklWVUtPVknEhiBNSUxJVk9KIERSIFZFVEVSSU5FCitTVEFOSVZVS09WScSGIFVST8WgCitTVEFOS0nEhiBEUkFHQU4KK1NUQU5LScSGIExBWkFSCitTVEFOS0nEhiBNSUxPxaAKK1NUQU5LScSGIFNURVZBTgorU1RBTktJxIYgVklMT0dPUktBCitTVEFOS0lKRVZJxIYgRFXFoEFOCitTVEFOS0lOIMSQT1LEkEUKK1NUQU5LSU4gQlJBTktBCitTVEFOS0lOIEpBU01JTkEKK1NUQU5LSU4gTUlMRQorU1RBTktJTiBNSUxJVk9KCitTVEFOS0lOIE1JTElWT0oKK1NUQU5LSU4gVE9ET1IKK1NUQU5LTyBJTVJFCitTVEFOS08gSVZBTgorU1RBTktPIEpPU0lQIERJUEwgSU5HCitTVEFOS08gU1RFVkFOCitTVEFOS08gU1RFVkFOCitTVEFOS08gU1RFVkFOCitTVEFOS08gVkVSSUNBCitTVEFOS09WIMW9QVJLTworU1RBTktPViDFvUlWS0EKK1NUQU5LT1Ygxb1JVktPCitTVEFOS09WIMW9SVZLTworU1RBTktPViDEkE9SxJBFCitTVEFOS09WIEJPSkFOQQorU1RBTktPViBEQVJJTktBCitTVEFOS09WIERBUktPCitTVEFOS09WIERVxaBBTgorU1RBTktPViBEVcWgQU4KK1NUQU5LT1YgRcW9RUJFVAorU1RBTktPViBJVkFOS0EKK1NUQU5LT1YgSVZBTgorU1RBTktPViBKRUxFTkEKK1NUQU5LT1YgS0FUSUNBCitTVEFOS09WIEtPVklOQQorU1RBTktPViBMSlVCSUNBCitTVEFOS09WIE1BUklKQQorU1RBTktPViBNQVJJTktPCitTVEFOS09WIE1BUktPCitTVEFOS09WIE1JTEFOS08KK1NUQU5LT1YgTUlMQU5LTworU1RBTktPViBNSUxPxaAKK1NUQU5LT1YgTUlSSkFOQQorU1RBTktPViBNSVJPU0xBVgorU1RBTktPViBORVZFTktBCitTVEFOS09WIE5JS09MQQorU1RBTktPViBQQUpBIERSCitTVEFOS09WIFBBVkxFCitTVEFOS09WIFBFVEFSCitTVEFOS09WIFBFVEFSCitTVEFOS09WIFJBRE9WQU4KK1NUQU5LT1YgUkFTVEtPCitTVEFOS09WIFJVxb1JQ0EKK1NUQU5LT1YgU0xPQk9EQU5LQQorU1RBTktPViBTT0ZJSkEKK1NUQU5LT1YgU1RBTktBCitTVEFOS09WIFNURVZBTgorU1RBTktPViBTVEVWQU4KK1NUQU5LT1YgU1RPSkFOCitTVEFOS09WIFNWRVRJU0xBVgorU1RBTktPViBTVkVUT1pBUgorU1RBTktPViBWRUxKS08KK1NUQU5LT1YgVkVMSktPCitTVEFOS09WIFZMQURJTUlSCitTVEFOS09WIFZPSklTTEFWCitTVEFOS09WIFZPSklTTEFWCitTVEFOS09WIFZPSklTTEFWCitTVEFOS09WIFpPUkFOS0EKK1NUQU5LT1YgWk9SQU4KK1NUQU5LT1ZJxIYgxb1BUktPCitTVEFOS09WScSGIMW9QVJLTworU1RBTktPVknEhiDFvUlWS08KK1NUQU5LT1ZJxIYgxb1JVktPCitTVEFOS09WScSGIMW9SVZPSklOCitTVEFOS09WScSGIMW9SVZPSklOCitTVEFOS09WScSGIMW9SVZPUkFECitTVEFOS09WScSGIMSQT1LEkEUKK1NUQU5LT1ZJxIYgxJBPUsSQRQorU1RBTktPVknEhiDEkE9SRQorU1RBTktPVknEhiDEkFVSTworU1RBTktPVknEhiBBTEVLU0FOREFSCitTVEFOS09WScSGIEFMRUtTQU5EQVIKK1NUQU5LT1ZJxIYgQUxFS1NBTkRBUgorU1RBTktPVknEhiBBTsSQRUxLQQorU1RBTktPVknEhiBBTsSQRUxLQQorU1RBTktPVknEhiBBTkEKK1NUQU5LT1ZJxIYgQU5JQ0EKK1NUQU5LT1ZJxIYgQVJBTktBCitTVEFOS09WScSGIEFWUkFNCitTVEFOS09WScSGIEJJTEpBTkEKK1NUQU5LT1ZJxIYgQk/FvUlEQVIKK1NUQU5LT1ZJxIYgQk/FvUlEQVIKK1NUQU5LT1ZJxIYgQk9HT0xKVUIgRFIKK1NUQU5LT1ZJxIYgQk9HT0xKVUIKK1NUQU5LT1ZJxIYgQk9KQU5BCitTVEFOS09WScSGIEJPSkFOCitTVEFOS09WScSGIEJPUkEKK1NUQU5LT1ZJxIYgQk9SQQorU1RBTktPVknEhiBCT1JBCitTVEFOS09WScSGIEJPUklTTEFWCitTVEFOS09WScSGIEJPUklTTEFWCitTVEFOS09WScSGIEJPU0lMSktBCitTVEFOS09WScSGIEJSQU5LTworU1RBTktPVknEhiBEQU5JQ0EKK1NUQU5LT1ZJxIYgREFOSUxPCitTVEFOS09WScSGIERBUklOS0EKK1NUQU5LT1ZJxIYgRElWTkEKK1NUQU5LT1ZJxIYgRE9CUklOS0EKK1NUQU5LT1ZJxIYgRE9CUklWT0pFCitTVEFOS09WScSGIERPQlJJVk9KRQorU1RBTktPVknEhiBET0JST1NMQVYKK1NUQU5LT1ZJxIYgRFJBR0FOCitTVEFOS09WScSGIERSQUdBTgorU1RBTktPVknEhiBEUkFHScWgQQorU1RBTktPVknEhiBEUkFHScWgQQorU1RBTktPVknEhiBEUkFHSUNBCitTVEFOS09WScSGIERSQUdPTEpVQgorU1RBTktPVknEhiBEUkFHT1JBRAorU1RBTktPVknEhiBEUkFHVVRJTgorU1RBTktPVknEhiBEVcWgQU4KK1NUQU5LT1ZJxIYgRFXFoEFOCitTVEFOS09WScSGIERVxaBBTgorU1RBTktPVknEhiBEVcWgQU4KK1NUQU5LT1ZJxIYgRFXFoEtPCitTVEFOS09WScSGIEVWRUxJTiBEUgorU1RBTktPVknEhiBFVklDQQorU1RBTktPVknEhiBGUkVERVJJSworU1RBTktPVknEhiBJTElKQQorU1RBTktPVknEhiBJTElKQQorU1RBTktPVknEhiBJVkFOCitTVEFOS09WScSGIElWQU4KK1NUQU5LT1ZJxIYgSkFHT0RBCitTVEFOS09WScSGIEpFTEVOQQorU1RBTktPVknEhiBKRUxJQ0EKK1NUQU5LT1ZJxIYgSkVTRU5LQSBEUgorU1RBTktPVknEhiBKT1ZBTiBESVBMIElORworU1RBTktPVknEhiBKT1ZBTgorU1RBTktPVknEhiBKT1ZJQ0EKK1NUQU5LT1ZJxIYgSk9WSUNBCitTVEFOS09WScSGIEtBVEFMSU4KK1NUQU5LT1ZJxIYgS0FUQVJJTkEKK1NUQU5LT1ZJxIYgS0FUSUNBCitTVEFOS09WScSGIEtPU0FOQQorU1RBTktPVknEhiBLT1NUQURJTgorU1RBTktPVknEhiBMQVpBUiBESVBMIElORworU1RBTktPVknEhiBMQVpBUgorU1RBTktPVknEhiBMQVpBUgorU1RBTktPVknEhiBMSklMSkFOQQorU1RBTktPVknEhiBMSklMSkFOQQorU1RBTktPVknEhiBMSklMSkFOQQorU1RBTktPVknEhiBMSlVCSUNBCitTVEFOS09WScSGIExKVUJJQ0EKK1NUQU5LT1ZJxIYgTEpVQklTQVYKK1NUQU5LT1ZJxIYgTEpVQk9NSVIKK1NUQU5LT1ZJxIYgTEpVQk9NSVIKK1NUQU5LT1ZJxIYgTEpVQk9NSVIKK1NUQU5LT1ZJxIYgTEpVQk8KK1NUQU5LT1ZJxIYgTUFSSUpBCitTVEFOS09WScSGIE1BUklKQQorU1RBTktPVknEhiBNQVJJTktPCitTVEFOS09WScSGIE1BUklOS08KK1NUQU5LT1ZJxIYgTUFSSkFOCitTVEFOS09WScSGIE1BUktPCitTVEFOS09WScSGIE1FTEFOSUpBCitTVEFOS09WScSGIE1JSEFKTE8KK1NUQU5LT1ZJxIYgTUlIQUpMTworU1RBTktPVknEhiBNSUxBTktPCitTVEFOS09WScSGIE1JTEFOS08KK1NUQU5LT1ZJxIYgTUlMQU4KK1NUQU5LT1ZJxIYgTUlMQU4KK1NUQU5LT1ZJxIYgTUlMQU4KK1NUQU5LT1ZJxIYgTUlMQU4KK1NUQU5LT1ZJxIYgTUlMQU4KK1NUQU5LT1ZJxIYgTUlMQU4KK1NUQU5LT1ZJxIYgTUlMQU4KK1NUQU5LT1ZJxIYgTUlMRU5LTworU1RBTktPVknEhiBNSUxPxaAKK1NUQU5LT1ZJxIYgTUlMT8WgCitTVEFOS09WScSGIE1JTE9SQUQKK1NUQU5LT1ZJxIYgTUlMVVRJTgorU1RBTktPVknEhiBNSU9EUkFHCitTVEFOS09WScSGIE1JT01JUgorU1RBTktPVknEhiBNSVJKQU5BCitTVEFOS09WScSGIE1JUkpBTkEKK1NUQU5LT1ZJxIYgTUlSS08KK1NUQU5LT1ZJxIYgTUlSS08KK1NUQU5LT1ZJxIYgTUlST0xKVUIKK1NUQU5LT1ZJxIYgTUlST1NMQVYKK1NUQU5LT1ZJxIYgTUlST1NMQVYKK1NUQU5LT1ZJxIYgTUlUQVIKK1NUQU5LT1ZJxIYgTUxBREVOCitTVEFOS09WScSGIE1MQURFTgorU1RBTktPVknEhiBNT03EjElMTworU1RBTktPVknEhiBOQURBCitTVEFOS09WScSGIE5BREEKK1NUQU5LT1ZJxIYgTkFEQQorU1RBTktPVknEhiBOQURBCitTVEFOS09WScSGIE5BVEHFoEEKK1NUQU5LT1ZJxIYgTkFUQUxJSkEKK1NUQU5LT1ZJxIYgTkVOQUQKK1NUQU5LT1ZJxIYgTkVWRU5BCitTVEFOS09WScSGIE5JS09MQQorU1RBTktPVknEhiBOSUtPTEEKK1NUQU5LT1ZJxIYgTklLT0xBCitTVEFOS09WScSGIE5JS09MQQorU1RBTktPVknEhiBOSUtPTEEKK1NUQU5LT1ZJxIYgT0xHQQorU1RBTktPVknEhiBPTEdBCitTVEFOS09WScSGIE9MR0lDQQorU1RBTktPVknEhiBPU1RPSkEKK1NUQU5LT1ZJxIYgUEFWTEUKK1NUQU5LT1ZJxIYgUEVUQVIKK1NUQU5LT1ZJxIYgUEVUQVIKK1NUQU5LT1ZJxIYgUkFESVZPSgorU1RBTktPVknEhiBSQURPTUlSCitTVEFOS09WScSGIFJBRE9TTEFWCitTVEFOS09WScSGIFNBxaBBCitTVEFOS09WScSGIFNBVktBCitTVEFOS09WScSGIFNBVk8KK1NUQU5LT1ZJxIYgU0xBVktPCitTVEFOS09WScSGIFNMQVZLTworU1RBTktPVknEhiBTTE9CT0RBTktBCitTVEFOS09WScSGIFNMT0JPREFOCitTVEFOS09WScSGIFNMT0JPREFOCitTVEFOS09WScSGIFNMT0JPREFOCitTVEFOS09WScSGIFNPRklKQQorU1RBTktPVknEhiBTUsSQQU4KK1NUQU5LT1ZJxIYgU1JCT0xKVUIgRElQTCBJTkcKK1NUQU5LT1ZJxIYgU1RBTUVOCitTVEFOS09WScSGIFNUQU5LTworU1RBTktPVknEhiBTVEFOT0pFCitTVEFOS09WScSGIFNURVZBTgorU1RBTktPVknEhiBTVEVWQU4KK1NUQU5LT1ZJxIYgU1RFVk8KK1NUQU5LT1ZJxIYgU1ZFVElTTEFWCitTVEFOS09WScSGIFNWRVRJU0xBVgorU1RBTktPVknEhiBTVkVUT1pBUgorU1RBTktPVknEhiBTVkVUT1pBUgorU1RBTktPVknEhiBURVJFWkEKK1NUQU5LT1ZJxIYgVElPU0FWCitTVEFOS09WScSGIFRPxaBBCitTVEFOS09WScSGIFRPTUlTTEFWCitTVEFOS09WScSGIFRPTUlTTEFWCitTVEFOS09WScSGIFZFTkVSQQorU1RBTktPVknEhiBWRVNFTElOCitTVEFOS09WScSGIFZFU0VMSU4KK1NUQU5LT1ZJxIYgVklUT01JUgorU1RBTktPVknEhiBWTEFEQU4KK1NUQU5LT1ZJxIYgVkxBREEKK1NUQU5LT1ZJxIYgVkxBRElNSVIKK1NUQU5LT1ZJxIYgVkxBRElNSVIKK1NUQU5LT1ZJxIYgVk9KSVNMQVYKK1NUQU5LT1ZJxIYtVlJBTknEhiBNSUxJQ0EKK1NUQU5LT1ZJxIYgWkxBVElWT0pFCitTVEFOS09WScSGIFpPUkFOCitTVEFOS09WScSGIFpPUkFOCitTVEFOS09WScSGIFpPUkEKK1NUQU5LT1ZTS0kgS09TVEEKK1NUQU5LT1ZTS0kgU1RFVkFOCitTVEFOS09WU0tJIFZFTEpBTgorU1RBTk9KxIxJxIYgxJBPUsSQRQorU1RBTk9KxIxJxIYgQU7EkEVMS08KK1NUQU5PSsSMScSGIEFOS0lDQQorU1RBTk9KxIxJxIYgREVTSU1JUgorU1RBTk9KxIxJxIYgRFXFoEFOS0EKK1NUQU5PSsSMScSGIE9MR0EKK1NUQU5PSsSMScSGIFNMT0JPREFOCitTVEFOT0rEjEnEhiBTT0ZJSkEKK1NUQU5PSsSMScSGIFNURVZBTgorU1RBTk9KxIxJxIYgVkVSQQorU1RBTk9KxIxJxIYgVk9KSVNMQVYKK1NUQU5PSkVWIMW9SVZBTgorU1RBTk9KRVYgQUxFS1NBTkRSQQorU1RBTk9KRVYgQlJBTklTTEFWCitTVEFOT0pFViBERUpBTgorU1RBTk9KRVYgRFXFoEFOCitTVEFOT0pFViBEVcWgQU4KK1NUQU5PSkVWIERVxaBBTgorU1RBTk9KRVYgRFXFoEFOCitTVEFOT0pFViBHT1JBTgorU1RBTk9KRVYgSk9DQQorU1RBTk9KRVYgTEFaQVIKK1NUQU5PSkVWIExKVUJJQ0EKK1NUQU5PSkVWIE1JTEFOCitTVEFOT0pFVi1NT1NLQUxKIE9MR0EKK1NUQU5PSkVWIE5FQk9KxaBBCitTVEFOT0pFViBOSUtPTEEKK1NUQU5PSkVWLVBFVFJFTkogTUlSSkFOQQorU1RBTk9KRVYgU0FWQQorU1RBTk9KRVYgU1RBTktBCitTVEFOT0pFViBTVEVWQU4KK1NUQU5PSkVWIFRJSE9NSVIKK1NUQU5PSkVWIFZFUklDQQorU1RBTk9KRVYgVkxBRElNSVIKK1NUQU5PSkVWIFZMQURJTUlSCitTVEFOT0pFVknEhiDEjEVET01JUgorU1RBTk9KRVZJxIYgxb1BUktPCitTVEFOT0pFVknEhiDFvUlWQU5LTworU1RBTk9KRVZJxIYgxb1JVk9KSU4KK1NUQU5PSkVWScSGIMSQVVJBCitTVEFOT0pFVknEhiBCT8W9SURBUgorU1RBTk9KRVZJxIYgREFOSUNBCitTVEFOT0pFVknEhiBEUkFHQU4KK1NUQU5PSkVWScSGIERSQUdPTEpVQgorU1RBTk9KRVZJxIYgRFXFoEFOCitTVEFOT0pFVknEhiBEVcWgQU4KK1NUQU5PSkVWScSGIEhSQU5JU0xBVgorU1RBTk9KRVZJxIYgSUxJSkEKK1NUQU5PSkVWScSGIEpPVkFOCitTVEFOT0pFVknEhiBLQcSGQQorU1RBTk9KRVZJxIYgS09TVEEKK1NUQU5PSkVWScSGIExKVUJJTktBCitTVEFOT0pFVknEhi1NQU5EScSGIE1JTEEKK1NUQU5PSkVWScSGIE1BUklKQQorU1RBTk9KRVZJxIYgTUlMQU4KK1NUQU5PSkVWScSGIE1JTEFOCitTVEFOT0pFVknEhiBNSUxBTgorU1RBTk9KRVZJxIYgTUlMQU4KK1NUQU5PSkVWScSGIE1JTEEKK1NUQU5PSkVWScSGIE1JTEVUQQorU1RBTk9KRVZJxIYgTUlMSVZPSgorU1RBTk9KRVZJxIYgTUlMT1JBRAorU1RBTk9KRVZJxIYgTUlPRFJBRworU1RBTk9KRVZJxIYgTUlPRFJBRworU1RBTk9KRVZJxIYgTUlST1NMQVYKK1NUQU5PSkVWScSGIE5BREEKK1NUQU5PSkVWScSGIE5BVEHFoEEKK1NUQU5PSkVWScSGIE5FQk9KxaBBCitTVEFOT0pFVknEhiBORU1BTkpBCitTVEFOT0pFVknEhiBORVNUT1IKK1NUQU5PSkVWScSGIE5JS09MQQorU1RBTk9KRVZJxIYgTklLT0xBCitTVEFOT0pFVknEhiBQQVZMRQorU1RBTk9KRVZJxIYgUEVUQVIKK1NUQU5PSkVWScSGIFBSRURSQUcKK1NUQU5PSkVWScSGIFJBRE1JTEEKK1NUQU5PSkVWScSGIFJBRE9NSVIKK1NUQU5PSkVWScSGIFJBRE9TTEFWCitTVEFOT0pFVknEhiBSQURPCitTVEFOT0pFVknEhiBTTE9CT0RBTgorU1RBTk9KRVZJxIYgU09GSUpBCitTVEFOT0pFVknEhiBTUkJPTEpVQgorU1RBTk9KRVZJxIYgU1RFVkFOCitTVEFOT0pFVknEhiBTVkVUSVNMQVYKK1NUQU5PSkVWScSGIFRBVEpBTkEKK1NUQU5PSkVWScSGIFRPTUlTTEFWCitTVEFOT0pFVknEhi1WQVJHQSBBTkEgRFIKK1NUQU5PSkVWScSGIFZFTEpLTworU1RBTk9KRVZJxIYgVkxBRElNSVIKK1NUQU5PSkVWScSGIFZMQURJTUlSCitTVEFOT0pFVknEhiBWTEFESVNMQVYKK1NUQU5PSkVWScSGIFZVSworU1RBTk9KRVZJxIYgWkRSQVZLTworU1RBTk9KRVZJxIYgWkxBVEtPCitTVEFOT0pFVknEhiBaT1JBTgorU1RBTk9KRVZJxIYgWk9SQU4KK1NUQU5PSkVWScSGIFpPUkFOCitTVEFOT0pFVknEhiBaT1JBTgorU1RBTk9KS09WScSGIE1JTE/FoAorU1RBTk9KS09WScSGIFJBREUKK1NUQU5PSktPVknEhiBWTEFEQQorU1RBTk9KTE9WScSGIE1JVEFSCitTVEFOT0pMT1ZJxIYgU1RFVkFOCitTVEFOT0pPU0tJIERBTklDQQorU1RBTk9KT1NLSSBaTEFUQQorU1RBTk9KU0tJIEJMQUdPSkUKK1NUQU5PVknEhiBTVEVWQU4KK1NUQU5PVknEhiBWRVNFTElOCitTVEFOVEUgSk9TSVAKK1NUQU5UScSGIEJBUlRVTAorU1RBTlRJxIYgQkVSVEFMQU4KK1NUQU5UScSGIEtBVEFMSU4KK1NUQU5UScSGIExBRElTTEFWCitTVEFOVEnEhiBWRVJPTkEKK1NUQU5VxaBJxIYgTUlKQVQKK1NUQU5VTCBQRVRBUgorU1RBTlVMT1YgU1ZFVExBTkEKK1NUQU5VTE9WIFRPRE9SCitTVEFOVUxPVknEhiBESU1JVFJJSkUgRFIKK1NUQU5VTE9WScSGIE1JTEFOIERSCitTVEFQQVIgQUxFS1NBTkRBUgorU1RBUEFSU0tJIEJPUklTTEFWCitTVEFQQVJTS0kgTUlMQU4KK1NUQVBBUlNLSSBQRVRBUgorU1RBUEFSU0tJIFNURVZBTgorU1RBUsSMRVYgQU7EkEVMS0EKK1NUQVLEjEVWIEJSQU5LQQorU1RBUsSMRVYgREVTQU5LQQorU1RBUsSMRVYgSkVMQQorU1RBUsSMRVYgS0FUSUNBCitTVEFSxIxFViBNSUxBTiBESVBMIElORworU1RBUsSMRVYgTUlMRU5LTworU1RBUsSMRVYgTUlMT8WgCitTVEFSxIxFViBNSVJPU0xBVgorU1RBUsSMRVYgU1RPSkFOS0EKK1NUQVLEjEVWScSGIEFOSUNBCitTVEFSxIxFVknEhiBBTktBCitTVEFSxIxFVknEhiBCT8WgS08KK1NUQVLEjEVWScSGIEJPR0RBTgorU1RBUsSMRVZJxIYgQk9SSVNMQVYKK1NUQVLEjEVWScSGIEJSQU5JU0xBVgorU1RBUsSMRVZJxIYgQlVESU1JUgorU1RBUsSMRVZJxIYgRFJBR0lDQQorU1RBUsSMRVZJxIYgRFXFoEFOS0EKK1NUQVLEjEVWScSGIERVxaBBTgorU1RBUsSMRVZJxIYgRlJBTkpBCitTVEFSxIxFVknEhiBJVkFOCitTVEFSxIxFVknEhiBMSlVCSU5LTyBESVBMIElORworU1RBUsSMRVZJxIYgTUlMQU4KK1NUQVLEjEVWScSGIE1JTEFOCitTVEFSxIxFVknEhiBNSUxBTgorU1RBUsSMRVZJxIYgTUlMQU4KK1NUQVLEjEVWScSGIE1JTElDQQorU1RBUsSMRVZJxIYgTUlMSUNBCitTVEFSxIxFVknEhiBNSUxLQQorU1RBUsSMRVZJxIYgTUlMT1ZBTgorU1RBUsSMRVZJxIYgTUlPRFJBRworU1RBUsSMRVZJxIYgTUlSS08KK1NUQVLEjEVWScSGIE1JUktPCitTVEFSxIxFVknEhiBNSVJLTworU1RBUsSMRVZJxIYgTklLT0xBCitTVEFSxIxFVknEhiBPTEdBCitTVEFSxIxFVknEhiBQQVZMRQorU1RBUsSMRVZJxIYgUlVET0xGCitTVEFSxIxFVknEhiBTVEFNRU5LQQorU1RBUsSMRVZJxIYgU1RBTktPCitTVEFSxIxFVknEhiBTVElQTworU1RBUsSMRVZJxIYgU1RPSkFOCitTVEFSxIxFVknEhiBWTEFTVElNSVIKK1NUQVJBxIxFSyDFvUVMSktPCitTVEFSQcSMRUsgSk/FvUVGCitTVEFSQcSMRUsgSk9WQU4KK1NUQVJFVknEhiBOSUtPTEEKK1NUQVJJIERBTklFTAorU1RBUkkgTElWSUpBCitTVEFSScSGIElWQU4KK1NUQVJPVknEhiBCT1JJVk9KIERSCitTVEFST1ZJxIYgQlJBTktPCitTVEFST1ZJxIYgTUFSSUpBCitTVEFST1ZJxIYgTUlMQU4KK1NUQVJPVknEhiBQUkVEUkFHCitTVEFST1ZJxIYgUkFET01JUgorU1RBUk9WScSGIFJBU1RJU0xBVgorU1RBUk9WScSGIFpEUkFWS08KK1NUQVJPVkxBSCBNTEFERU4KK1NUQVZFTk9WIMSQT1LEkEUKK1NUQVZKRUwgTUxBREVOCitTVEFWUkVWU0tJIEJPR0RBTgorU1RBVlJJxIYgSUxPTktBCitTVEFWUknEhiBTVEFOT0pFCitTVEFWUk9WIERBTklDQQorU1RFxIYgTUlUQVIKK1NURcSGIFZBU0lMSUpFCitTVEVGQU4gSVZBTgorU1RFRkFOIExKVUJPTUlSQQorU1RFRkFOSURFUyBKVUxJSkUKK1NURUZBTklERVMgTEpVREVWSVQKK1NURUZBTklESVMgS0lSSUFLSQorU1RFRkFOSlVLIE5JS09MQQorU1RFRkFOT1YgQkxBR09KRQorU1RFRkFOT1YgTEpVQk9NSVIKK1NURUZBTk9WIE5BREEKK1NURUZBTk9WScSGIMW9QVJLTworU1RFRkFOT1ZJxIYgxb1JS0EKK1NURUZBTk9WScSGIMW9SUtBCitTVEVGQU5PVknEhiDFvUlLQQorU1RFRkFOT1ZJxIYgxb1JVktPCitTVEVGQU5PVknEhiDFvUlWT1JBRAorU1RFRkFOT1ZJxIYgxb1JVk9UQQorU1RFRkFOT1ZJxIYgxJBPUsSQRQorU1RFRkFOT1ZJxIYgxJBVUklDQSBEUiBMRUtBUgorU1RFRkFOT1ZJxIYgQUxFS1NBTkRBUgorU1RFRkFOT1ZJxIYgQUxFS1NBTkRBUgorU1RFRkFOT1ZJxIYgQU5BCitTVEVGQU5PVknEhiBBTkdFTElOQQorU1RFRkFOT1ZJxIYgQU5LQQorU1RFRkFOT1ZJxIYgQk9HREFOCitTVEVGQU5PVknEhiBCT0dPTEpVQgorU1RFRkFOT1ZJxIYgQk9SSVZPSkUKK1NURUZBTk9WScSGIEJPUklWT0oKK1NURUZBTk9WScSGIEJSQU5JU0xBVgorU1RFRkFOT1ZJxIYgQlJBTktBCitTVEVGQU5PVknEhiBCUkFOS08KK1NURUZBTk9WScSGIERBTklDQQorU1RFRkFOT1ZJxIYgREFOSUNBCitTVEVGQU5PVknEhiBEQU5JTEtBCitTVEVGQU5PVknEhiBEQVJJTktBCitTVEVGQU5PVknEhiBERcW9RQorU1RFRkFOT1ZJxIYgREVKQU4KK1NURUZBTk9WScSGIERSQUdBTkEKK1NURUZBTk9WScSGIERSQUdBTgorU1RFRkFOT1ZJxIYgRFJBR0FOCitTVEVGQU5PVknEhiBEUkFHQU4KK1NURUZBTk9WScSGIERSQUdBTgorU1RFRkFOT1ZJxIYgRFJBR0FOCitTVEVGQU5PVknEhiBEUkFHScWgQQorU1RFRkFOT1ZJxIYgRFJBR0nFoEEKK1NURUZBTk9WScSGIERSQUdJQ0EKK1NURUZBTk9WScSGIERSQUdJQ0EKK1NURUZBTk9WScSGIERSQUdJQ0EKK1NURUZBTk9WScSGIERSQUdPTEpVQgorU1RFRkFOT1ZJxIYgRFJBR09MSlVCCitTVEVGQU5PVknEhiBEUkFHVVRJTgorU1RFRkFOT1ZJxIYgRFJBR1VUSU4KK1NURUZBTk9WScSGIERVxaBBTgorU1RFRkFOT1ZJxIYgRFXFoEtPCitTVEVGQU5PVknEhiBFUsW9SUtBCitTVEVGQU5PVknEhi1HRVJJxIYgWk9SS0EKK1NURUZBTk9WScSGIEdPUkFOCitTVEVGQU5PVknEhiBHT1JEQU4KK1NURUZBTk9WScSGIElWQU4KK1NURUZBTk9WScSGIEpFTElDQQorU1RFRkFOT1ZJxIYgSkVMSUNBCitTVEVGQU5PVknEhiBKT1NJRgorU1RFRkFOT1ZJxIYgSk9WQU5LQQorU1RFRkFOT1ZJxIYgSk9WQU4KK1NURUZBTk9WScSGIEpPVkFOCitTVEVGQU5PVknEhiBKT1pFRklOQQorU1RFRkFOT1ZJxIYgSlVMSUpBTkEKK1NURUZBTk9WScSGIEtBUkFORklMQQorU1RFRkFOT1ZJxIYgS0FUSUNBCitTVEVGQU5PVknEhiBMQVpBUgorU1RFRkFOT1ZJxIYgTEVOS0EKK1NURUZBTk9WScSGIExKVUJPTUlSIERSCitTVEVGQU5PVknEhiBMSlVCT01JUgorU1RFRkFOT1ZJxIYgTFVDSUpBCitTVEVGQU5PVknEhiBNQVJJSkEKK1NURUZBTk9WScSGIE1BUklOS08KK1NURUZBTk9WScSGIE1BUktPCitTVEVGQU5PVknEhiBNQVJUQQorU1RFRkFOT1ZJxIYgTUFSVEEKK1NURUZBTk9WScSGIE1JSEFKTE8KK1NURUZBTk9WScSGIE1JTEFOCitTVEVGQU5PVknEhiBNSUxBTgorU1RFRkFOT1ZJxIYgTUlMQU4KK1NURUZBTk9WScSGIE1JTEFOCitTVEVGQU5PVknEhiBNSUxBTgorU1RFRkFOT1ZJxIYgTUlMQU4KK1NURUZBTk9WScSGIE1JTEVOQQorU1RFRkFOT1ZJxIYgTUlMRU4KK1NURUZBTk9WScSGIE1JTElDQQorU1RFRkFOT1ZJxIYgTUlMT8WgCitTVEVGQU5PVknEhiBNSUxPxaAKK1NURUZBTk9WScSGIE1JTE9KRQorU1RFRkFOT1ZJxIYgTUlMT1ZBTgorU1RFRkFOT1ZJxIYgTUlMVVRJTiBESVBMIFBSQVZOSUsKK1NURUZBTk9WScSGIE1JTFVUSU4KK1NURUZBTk9WScSGIE1JT01JUgorU1RFRkFOT1ZJxIYgTUlSQQorU1RFRkFOT1ZJxIYgTUlSSkFOQQorU1RFRkFOT1ZJxIYgTUlSS08KK1NURUZBTk9WScSGIE1JUktPCitTVEVGQU5PVknEhiBNSVJLTworU1RFRkFOT1ZJxIYgTUlST1NMQVYKK1NURUZBTk9WScSGIE1JUk9TTEFWCitTVEVGQU5PVknEhiBNSVJPU0xBVgorU1RFRkFOT1ZJxIYgTUlST1NMQVYKK1NURUZBTk9WScSGIE5BREEKK1NURUZBTk9WScSGIE5FREVMSktBCitTVEVGQU5PVknEhiBOSUtPTEEKK1NURUZBTk9WScSGIE5JS09MQQorU1RFRkFOT1ZJxIYgTklLT0xBCitTVEVGQU5PVknEhiBOSUtPTEEKK1NURUZBTk9WScSGIFBBTlRBCitTVEVGQU5PVknEhiBQQVVMQQorU1RFRkFOT1ZJxIYgUEVUQVIKK1NURUZBTk9WScSGIFJBRE1JTEEKK1NURUZBTk9WScSGIFJBRE1JTEEKK1NURUZBTk9WScSGIFJBRE9TTEFWCitTVEVGQU5PVknEhiBSVcW9SUNBCitTVEVGQU5PVknEhiBTQU5KQQorU1RFRkFOT1ZJxIYgU0xBVklDQSBEUgorU1RFRkFOT1ZJxIYgU0xBVktBCitTVEVGQU5PVknEhiBTTEFWS08KK1NURUZBTk9WScSGIFNMQVZLTworU1RFRkFOT1ZJxIYgU0xPQk9EQU4gUFJPRkVTT1IKK1NURUZBTk9WScSGIFNMT0JPREFOCitTVEVGQU5PVknEhiBTTUlMSkEKK1NURUZBTk9WScSGIFNNSUxKS0EKK1NURUZBTk9WScSGIFNORcW9QU5BCitTVEVGQU5PVknEhiBTVEFOScWgQQorU1RFRkFOT1ZJxIYgU1RBTktPCitTVEVGQU5PVknEhiBTVEVWQU4KK1NURUZBTk9WScSGIFNURVZBTgorU1RFRkFOT1ZJxIYgU1RFVkFOCitTVEVGQU5PVknEhiBTVEpFUEFOCitTVEVGQU5PVknEhiBTVE9KQU5BCitTVEVGQU5PVknEhiBTVVpBTkEKK1NURUZBTk9WScSGIFNWRVRJU0xBVgorU1RFRkFOT1ZJxIYgU1ZFVE9aQVIKK1NURUZBTk9WScSGIFNWRVRPWkFSCitTVEVGQU5PVknEhiBUQVRKQU5BCitTVEVGQU5PVknEhi1USUxJxIYgRElWTkEKK1NURUZBTk9WScSGIFRPRE9SCitTVEVGQU5PVknEhiBUT01JU0xBVgorU1RFRkFOT1ZJxIYgVkFTQQorU1RFRkFOT1ZJxIYgVkFTQQorU1RFRkFOT1ZJxIYgVkFTSUxJSkUKK1NURUZBTk9WScSGIFZFUkEKK1NURUZBTk9WScSGIFZFUkEKK1NURUZBTk9WScSGIFZFUklDQQorU1RFRkFOT1ZJxIYgVkVTTkEKK1NURUZBTk9WScSGIFZFU05BCitTVEVGQU5PVknEhiBWSVRPTUlSCitTVEVGQU5PVknEhiBWTEFESUNBCitTVEVGQU5PVknEhiBWTEFESU1JUgorU1RFRkFOT1ZJxIYgVkxBRElNSVIKK1NURUZBTk9WScSGIFZMQURJTUlSCitTVEVGQU5PVknEhiBWTEFESU1JUgorU1RFRkFOT1ZJxIYgVkxBSktPCitTVEVGQU5PVknEhiBWT0pJU0xBVkEKK1NURUZBTk9WScSGIFZPSklTTEFWCitTVEVGQU5PVknEhiBWT0pJU0xBVgorU1RFRkFOT1ZJxIYgWk9SQU4KK1NURUZBTk9WScSGIFpPUkFOCitTVEVGQU5PVlNLQSBaT1JLQQorU1RFRkFOT1ZTS0kgTEVWS08KK1NURUZBTk9WU0tJIE1FVE9ESUpFCitTVEVGQU5PVlNLSSBNSUxPUkFECitTVEVGQU5PVlNLSSBTVEFNRU4KK1NURUdJxIYgREVKQU4KK1NURUdJxIYgSVZBTgorU1RFR0nEhiBOSUtPTEEKK1NURUdOSkFJxIYgT0xHQQorU1RFR05KQUpJxIYgVkxBRElNSVIKK1NURUpJxIYgQVJBTktBCitTVEVKScSGIEpFTEVOQQorU1RFSknEhiBLT1NUQQorU1RFSknEhiBORVZFTktBCitTVEVKScSGIFJVxb1BCitTVEVKSU4gxJBPUsSQRQorU1RFSklOIEJPUklTTEFWCitTVEVKSU4gRFXFoEFOIERJUEwgSU5HCitTVEVKSU4gSkVMRU5BCitTVEVKSU4gSk9WQU5LQQorU1RFSklOIExKVUJJQ0EKK1NURUpJTiBSVcW9SUNBCitTVEVKSU4gU0HFoEEKK1NURUpJTiBTUsSQQU4KK1NURUxBIFZMQURJTUlSQQorU1RFTEpBIE5PVkFLCitTVEVMSknEhiBNSUxJVk9KRQorU1RFTEpJxIYgTUlMVU4KK1NURUxLScSGIMSQVVJJQ0EKK1NURUxLScSGIERSQUdJQ0EKK1NURUxLScSGIE1JTElWT0oKK1NURUxLScSGIFJBRElDQQorU1RFTEtJxIYgUkVMSkEgRElQTCBJTkcKK1NURUxLScSGIFNWRVRPWkFSCitTVEVMS0nEhiBaTEFUT01JUgorU1RFUEFOxIxFViBBTklDQQorU1RFUEFOxIxFViBTVEVWQU4KK1NURVBBTsSMRVYgVkxBRElTTEFWCitTVEVQQU7EjEVWIFpPUkFOCitTVEVQQU7EjEVWIFpPUkEKK1NURVBBTsSMRVYgWk9SSUNBCitTVEVQQU7EjEVWScSGIE1JTElDQQorU1RFUEFOxIxFVknEhiBNSU9EUkFHCitTVEVQQU7EjEVWScSGIFNPRklKQQorU1RFUEFOxIxFVknEhiBTUEFTT0pFCitTVEVQQU5JxIYgTUlMSVNBVgorU1RFUEFOScSGIFBSRURSQUcKK1NURVBBTk9WIMSQT1LEkEUKK1NURVBBTk9WIMSQT1LEkEUKK1NURVBBTk9WIMSQT1LEkEUKK1NURVBBTk9WIEFMRUtTQU5EQVIKK1NURVBBTk9WIEFMRUtTQU5EUkEKK1NURVBBTk9WIEFOxJBFTEtBCitTVEVQQU5PViBCUkFOSVNMQVYKK1NURVBBTk9WIEJSQU5LTworU1RFUEFOT1YgQlJBTktPCitTVEVQQU5PViBEUkFHScWgQQorU1RFUEFOT1YgRFJBR0lDQQorU1RFUEFOT1YgRFXFoEFOCitTVEVQQU5PViBEVcWgQU4KK1NURVBBTk9WIEVNSUwKK1NURVBBTk9WIEpPTEUKK1NURVBBTk9WIEtBVElDQQorU1RFUEFOT1YgTEpJTEpBTkEKK1NURVBBTk9WIExKVUJPTUlSIERSCitTVEVQQU5PViBMSlVCT01JUgorU1RFUEFOT1YgTUFLU0EKK1NURVBBTk9WIE1BUkEKK1NURVBBTk9WIE1JTEFOS0EKK1NURVBBTk9WIE1JTEFOS0EKK1NURVBBTk9WIE1JTEFOCitTVEVQQU5PViBNSUxBTgorU1RFUEFOT1YgTUlMRVZBCitTVEVQQU5PViBNSUxJVk9KCitTVEVQQU5PViBNSUxJVk9KCitTVEVQQU5PViBNSUxJVk9KCitTVEVQQU5PViBNSUxPVkFOCitTVEVQQU5PViBOSUtPTEEKK1NURVBBTk9WIFBBSkEKK1NURVBBTk9WIFBBSkEKK1NURVBBTk9WIFBFVEFSIERSCitTVEVQQU5PViBQRVRBUgorU1RFUEFOT1YgUElST8WgS0EKK1NURVBBTk9WIFJBRElWT0oKK1NURVBBTk9WIFJBRE9WQU4KK1NURVBBTk9WIFNBVkEKK1NURVBBTk9WIFNBVkEKK1NURVBBTk9WIFNFUkdJSkUKK1NURVBBTk9WIFNMT0JPREFOCitTVEVQQU5PViBTVkVUSVNMQVYKK1NURVBBTk9WIFZBU0lMSUpFCitTVEVQQU5PViBWRUxJTUlSCitTVEVQQU5PViBWRVNOQQorU1RFUEFOT1YgVklEQQorU1RFUEFOT1YgVklET1NBVkEKK1NURVBBTk9WIFZPSk5BCitTVEVQQU5PViBaRFJBVktPCitTVEVQQU5PVknEhiDEkFVSxJBJQ0EKK1NURVBBTk9WScSGIEJSQVRJU0xBVgorU1RFUEFOT1ZJxIYgRFJBR0nFoEEKK1NURVBBTk9WScSGIERSQUdJQ0EKK1NURVBBTk9WScSGIE1JTE9SQUQKK1NURVBBTk9WScSGIE5FQk9KxaBBCitTVEVQQU5PVknEhiBTTE9CT0RBTgorU1RFUEFOT1ZJxIYgU05Fxb1BTkEKK1NURVBBTk9WScSGIFNURVZBTgorU1RFUEFOT1ZJxIYgU1ZFVExBTkEKK1NURVBJxIYgSk9TSVAKK1NURVBJxIYgTUFSSUpBCitTVEVSSU8gxJBPUsSQRQorU1RFUklPIEJSQU5LTyBEUgorU1RFUlBJTiBaVk9OSU1JUgorU1RFVsSMScSGIFNBVkFUSUpFCitTVEVWQU7EjEVWIEFOS0lDQQorU1RFVkFOxIxFViBNSUxJQ0EKK1NURVZBTsSMRVYgTUlMT1JBRAorU1RFVkFOxIxFViBPTEdBCitTVEVWQU7EjEVWScSGIExKSUxKQU5BCitTVEVWQU5EScSGIMSQVVJPCitTVEVWQU5EScSGIE1JTElDQQorU1RFVkFOREnEhiBSQURFCitTVEVWQU5JxIYgQk9SSVZPSkUKK1NURVZBTknEhiBEUkFHT1NMQVYKK1NURVZBTknEhiBJVkFOCitTVEVWQU5JxIYgTUlPRFJBRworU1RFVkFOScSGIFNMT0JPREFOCitTVEVWQU5JxIYgVlVLT01BTgorU1RFVkFOT1Ygxb1JVkFOCitTVEVWQU5PViBEUkFHQU5BCitTVEVWQU5PViBFTUlMS0EKK1NURVZBTk9WIEdBVlJBCitTVEVWQU5PViBKRUxFTkEKK1NURVZBTk9WIExKSUxKQU5BCitTVEVWQU5PViBNQURMRU4KK1NURVZBTk9WIE1JTE9SQUQKK1NURVZBTk9WIE1JTE9WQU4KK1NURVZBTk9WIE1JTFVUSU4KK1NURVZBTk9WIE1MQURFTgorU1RFVkFOT1YgTUxBREVOCitTVEVWQU5PViBOQVRBTElKQQorU1RFVkFOT1YgU1RBTkEKK1NURVZBTk9WIFNWRVRPWkFSCitTVEVWQU5PViBWRVNFTElOCitTVEVWQU5PViBWTEFESU1JUgorU1RFVkFOT1YgWkxBVE9KRQorU1RFVkFOT1ZJxIYgxb1JVkFESU4KK1NURVZBTk9WScSGIMW9SVZLQQorU1RFVkFOT1ZJxIYgxb1JVk9SQUQKK1NURVZBTk9WScSGIEFEQU0KK1NURVZBTk9WScSGIEFMRUtTQU5EQVIKK1NURVZBTk9WScSGIEJPxaBLTworU1RFVkFOT1ZJxIYgQk9SQQorU1RFVkFOT1ZJxIYgQlJBTklTTEFWQQorU1RFVkFOT1ZJxIYgREFOSUNBCitTVEVWQU5PVknEhiBERVNJTUlSCitTVEVWQU5PVknEhiBEUkFHScWgQQorU1RFVkFOT1ZJxIYgRFJBR0lDQQorU1RFVkFOT1ZJxIYgRFJBR09TTEFWCitTVEVWQU5PVknEhiBEVcWgQU4gRFIKK1NURVZBTk9WScSGIEdPUkFOCitTVEVWQU5PVknEhiBHT1JBTgorU1RFVkFOT1ZJxIYgSkFST1NMQVYKK1NURVZBTk9WScSGIEpPVkFOCitTVEVWQU5PVknEhiBMSlVCScWgQQorU1RFVkFOT1ZJxIYgTUlMQURJTktBCitTVEVWQU5PVknEhiBNSUxBRElOCitTVEVWQU5PVknEhiBNSUxFTktPCitTVEVWQU5PVknEhiBNSUxFCitTVEVWQU5PVknEhiBNSUxJVk9KCitTVEVWQU5PVknEhiBNSUxLQQorU1RFVkFOT1ZJxIYgTUlMT0xKVUIKK1NURVZBTk9WScSGIE1JT01JUgorU1RFVkFOT1ZJxIYgTUlSQQorU1RFVkFOT1ZJxIYgTUxBREVOS0EKK1NURVZBTk9WScSGLU5FxIZBSyBTTE9CT0RBTktBIERJUEwgSU5HCitTVEVWQU5PVknEhiBOSUtPU0FWQQorU1RFVkFOT1ZJxIYgUkFET1NMQVYKK1NURVZBTk9WScSGIFJBSktPCitTVEVWQU5PVknEhiBSQU5LTyBEUiBMRUtBUgorU1RFVkFOT1ZJxIYgUkFUS08KK1NURVZBTk9WScSGIFJVxb1BCitTVEVWQU5PVknEhiBTQVZBCitTVEVWQU5PVknEhiBTTE9CT0RBTgorU1RFVkFOT1ZJxIYgU05Fxb1BTkEKK1NURVZBTk9WScSGIFNUT0pBRElOCitTVEVWQU5PVknEhiBTVklKRVRMQU5BCitTVEVWQU5PVknEhiBUT01JU0xBVgorU1RFVkFOT1ZJxIYgVE9NSVNMQVYKK1NURVZBTk9WScSGIFZFUkEKK1NURVZBTk9WScSGIFZMQURBCitTVEVWQU5PVknEhiBWTEFTVElNSVIKK1NURVZBTk9WScSGIFpMQVRLTyBEUgorU1RFVkFOT1ZJxIYgWk9SQU4KK1NURVZBTk9WScSGIFpPUklDQQorU1RFVkFOT1ZTS0kgR0/FoEUKK1NURVZBTk9WU0tJIFNMT0JPREFOCitTVEVWScSGIERPQlJJVk9KRQorU1RFVknEhiBEVcWgQU4KK1NURVZJxIYgR09SREFOQQorU1RFVknEhiBMSlVCScWgQQorU1RFVknEhiBOSUtPTEEKK1NURVZJxIYgUEVUQVIKK1NURVZJxIYgU0xPQk9EQU4KK1NURVZJxIYgU05Fxb1BTkEKK1NURVZJxIYgU1JCQQorU1RFVknEhiBWRUxJTUlSCitTVEVWScSGIFZPSklTTEFWCitTVEVWSU4gQk9HREFOCitTVEVWSU4gQk9SSVNMQVYKK1NURVZJTiBOQURBIERJUEwgSU5HCitTVEVWSU4gUkFET0pMQQorU1RFVk9WScSGIEFOS0EKK1NURVZPVknEhiBCT8W9SURBUgorU1RFVk9WScSGIEJSQU5JU0xBVgorU1RFVk9WScSGIElWQU4gRElQTCBQUkFWTklLCitTVEVWT1ZJxIYtTFVLScSGIFJBRE1JTEEKK1NURVZPVknEhiBNSUxPU0FWQQorU1RFVk9WScSGIFZPSklOCitTVElKQcSMScSGIEJSQU5LTworU1RJSkHEjEnEhiBQQVZMRQorU1RJSkHEjEnEhiBTVkVUT1pBUgorU1RJSkFLT1ZJxIYgRFJBR0FOCitTVElKRVBPVknEhiBBTEVLU0EKK1NUSUpFUE9WScSGIE1JTElKQU5BCitTVElKT1ZJxIYgSUxJSkEKK1NUSUpPVknEhiBKRUxJU0FWRVRBCitTVElKT1ZJxIYgTUFSQQorU1RJSk9WScSGIE1JTEFOCitTVElLScSGIEJJTEpBTkEKK1NUSUtJxIYgSk9WQU4KK1NUSUtJxIYgTU9NSVJLQQorU1RJS09WScSGIFJPU0EKK1NUSUxJTk9WScSGIEtPVklOS0EKK1NUSUxJTk9WScSGIFpWT05JTUlSIERJUEwgSU5HCitTVElQQU7EjEnEhiBTVElQQU4KK1NUSVBBTk9WScSGIEJKRUxJQ0EKK1NUSVBBTk9WScSGIEdPSktPCitTVElQRVRJxIYgRFJBR0FOCitTVElQScSGIEFORFJJSkEKK1NUSVBJxIYgQU5URQorU1RJUEnEhiBCVURFCitTVElQScSGIEdJWkVMQQorU1RJUEnEhiBKQcWgQQorU1RJUEnEhiBOQURBCitTVElQScSGIE9MSVZFUkEKK1NUSVBJxIYgU09OSkEKK1NUSVBJxIYgVkVMSktPCitTVElTS0FMTyBUSUhPTUlSCitTVEpFTEpBIERBTklDQQorU1RKRVDEjEVWScSGIEFOSUNBCitTVEpFUEFOT1ZJxIYgQk/FvU8KK1NUSkVQQU5PVknEhiBCT1JJVk9KRQorU1RKRVBBTk9WScSGIENWRUpBCitTVEpFUEFOT1ZJxIYgSkFTTkEKK1NUSkVQQU5PVknEhiBKRUxFTkEKK1NUSkVQQU5PVknEhiBKRUxJU0FWRVRBCitTVEpFUEFOT1ZJxIYgSk9WSUNBCitTVEpFUEFOT1ZJxIYgU1RBTktBCitTVEpFUEFOT1ZJxIYgVE9NSVNMQVYKK1NUSkVQScSGIEpPU0lQCitTVEpFUEnEhiBNSUpPCitTVE/FoEnEhiBEUkFHQU4KK1NUT8WgScSGIERSQUdBTgorU1RPxaBJxIYgRFJBR0FOCitTVE/FoEnEhiBEVcWgQU4KK1NUT8WgScSGIERVxaBBTgorU1RPxaBJxIYgRFXFoEFOCitTVE/FoEnEhiBKRUxFTkEKK1NUT8WgScSGIE1JTElDQQorU1RPxaBJxIYgTkVERUxKS08KK1NUT8WgScSGIFJBRElWT0oKK1NUT8WgScSGIFNMQVZJxaBBCitTVE/FoEnEhiBTVE9KQURJTgorU1RPxaBJxIYgU1RPSkFOCitTVE/FoEnEhiBUQU5KQQorU1RPxaBJxIYgVE9NSVNMQVYKK1NUT8WgScSGIFZMQURJTUlSCitTVE/FoEnEhiBWT0pJU0xBVgorU1RPxaBJxIYgWk9SQU4KK1NUT8W9SU5JxIYgRFJBR0lOSkEKK1NUT0VTS0kgSkVWVElNCitTVE9HT1YgQU5BVE9MSUogRElQTCBJTkcKK1NUT0lMSktPVknEhiDFvUlLQQorU1RPSUxKS09WScSGIERSQUdPU0xBVgorU1RPSUxKS09WScSGIEpFTElDQQorU1RPSUxKS09WScSGIEpPVkFOCitTVE9JTEpLT1ZJxIYgTUlMT1JBRAorU1RPSUxKS09WScSGIE5FTkFECitTVE9JTEpLT1ZJxIYgU1RPSkFOCitTVE9JTEtPVlNLSSBCT1JJUworU1RPSVNBVkxKRVZJxIYgxJBVSkEKK1NUT0lTQVZMSkVWScSGIE1JxIZPCitTVE9KxIxFViBNQVJJSkEKK1NUT0rEjEVWScSGIElMSUpBCitTVE9KxIxFVknEhiBTVEFOT0pLTworU1RPSsSMRVZTS0kgQkxBR09KQQorU1RPSsSMRVZTS0kgVE9NSVNMQVYKK1NUT0rEjEVWU0tJIFRPTkUKK1NUT0rEjEnEhiDEkE9SxJBFCitTVE9KxIxJxIYgxJBVUk8KK1NUT0rEjEnEhiBERVNJTUlSCitTVE9KxIxJxIYgRFXFoEFOCitTVE9KxIxJxIYgSkVMRU5BCitTVE9KxIxJxIYgTUlMQU4KK1NUT0rEjEnEhiBNSUxBTgorU1RPSsSMScSGIE1JTEVOS08KK1NUT0rEjEnEhiBNSVJPU0xBVgorU1RPSsSMScSGIE5JS09MQQorU1RPSsSMScSGIFNSRcSGS08KK1NUT0rEjEnEhiBTUkVUS08KK1NUT0rEjElOT1ZJxIYgTUFSS08KK1NUT0rEjElOT1ZJxIYgU0lNTworU1RPSsWgScSGIMW9SVZBTgorU1RPSsWgScSGIMSQT1LEkEUKK1NUT0rFoEnEhiDEkE9SxJBFCitTVE9KxaBJxIYgQk9KS0EKK1NUT0rFoEnEhiBEQU7EjElLQQorU1RPSsWgScSGIERSQUdJCitTVE9KxaBJxIYgRFXFoEFOS0EKK1NUT0rFoEnEhiBKRUxFTkEKK1NUT0rFoEnEhiBKT1ZBTgorU1RPSsWgScSGIEpPVkFOCitTVE9KxaBJxIYgTEFaQVIKK1NUT0rFoEnEhiBNQVJJSkEKK1NUT0rFoEnEhiBNQVJJSkEKK1NUT0rFoEnEhiBNQVJJSkEKK1NUT0rFoEnEhiBNSUxBTiBESVBMIElORworU1RPSsWgScSGIE1JTEFOCitTVE9KxaBJxIYgTUlMQU4KK1NUT0rFoEnEhiBNSUxJVk9KCitTVE9KxaBJxIYgTUlMS0EKK1NUT0rFoEnEhiBNSUxPxaAKK1NUT0rFoEnEhiBNSVJBCitTVE9KxaBJxIYgTkFEQQorU1RPSsWgScSGIE5BREEKK1NUT0rFoEnEhiBORUdPVkFOCitTVE9KxaBJxIYgTkVOQUQKK1NUT0rFoEnEhiBORVZFTktBCitTVE9KxaBJxIYgTkVWRU5LQQorU1RPSsWgScSGIE5JS09MQQorU1RPSsWgScSGIE9MR0EKK1NUT0rFoEnEhiBQRVRBUgorU1RPSsWgScSGIFBST0tPUElKRQorU1RPSsWgScSGIFBSVk9TTEFWCitTVE9KxaBJxIYgU0FWQQorU1RPSsWgScSGIFNBVkEKK1NUT0rFoEnEhiBTQVZBCitTVE9KxaBJxIYgU0xBVklDQQorU1RPSsWgScSGIFNNSUxKQQorU1RPSsWgScSGIFNPRklKQQorU1RPSsWgScSGIFNSQklTTEFWCitTVE9KxaBJxIYgU1RBTk9KRQorU1RPSsWgScSGIFNURVZBTgorU1RPSsWgScSGIFRBVEpBTkEKK1NUT0rFoEnEhiBWRVJBCitTVE9KxaBJxIYgVklET1NBVkEKK1NUT0rFoEnEhiBWTEFESU1JUgorU1RPSsWgScSGIFZMQURJTUlSCitTVE9KxaBJxIYgVkxBRElNSVIKK1NUT0rFoEnEhiBWT0pJU0xBVgorU1RPSsWgScSGIFZVSkFESU4gRElQTCBJTkcKK1NUT0rFoEnEhiBaRFJBVktPCitTVE9KxaBJTiDFvUFSS08KK1NUT0rFoElOIMSQT1LEkEUKK1NUT0rFoElOIMSQVVLEkEEKK1NUT0rFoElOIMSQVVLEkElOS0EKK1NUT0rFoElOIEJPR09TTE9WCitTVE9KxaBJTiBESU1JVFJJSkUKK1NUT0rFoElOIERPQlJJVk9KCitTVE9KxaBJTiBEUkFHQU4KK1NUT0rFoElOIERVxaBBTgorU1RPSsWgSU4gRU1JTAorU1RPSsWgSU4gRVNURVIKK1NUT0rFoElOIEdBVlJBCitTVE9KxaBJTiBHUk9aREFOQQorU1RPSsWgSU4gSk9WQU4KK1NUT0rFoElOIEpPVkFOCitTVE9KxaBJTiBMQVpBUgorU1RPSsWgSU4gTUlMQU5LQQorU1RPSsWgSU4gTUlMQU4KK1NUT0rFoElOIE1JTEFOCitTVE9KxaBJTiBNSUxJQ0EKK1NUT0rFoElOIE1JTE9SQUQKK1NUT0rFoElOIE1JTE9WQU4KK1NUT0rFoElOIE5JS09MQQorU1RPSsWgSU4gT0xHQQorU1RPSsWgSU4gUkFEQQorU1RPSsWgSU4gUkFET1NMQVYKK1NUT0rFoElOIFNBVkEKK1NUT0rFoElOIFNBVkEKK1NUT0rFoElOIFNJTknFoEEKK1NUT0rFoElOIFNWRVRPWkFSCitTVE9KxaBJTiBUT0RPUgorU1RPSsWgSU4gVkFTQQorU1RPSsWgSU4gVkVSQQorU1RPSsWgSU4gWkxBVEEKK1NUT0pBIExKSUxKQU5BCitTVE9KQSBNQVJJSkEKK1NUT0pBIE1JTEFOQQorU1RPSkEgU0xBxJBBTkEKK1NUT0pBIFNMT0JPREFOIERSIExFS0FSCitTVE9KQSBWT0pJU0xBVgorU1RPSkHEjEnEhiBESU1JVFJJSkUKK1NUT0pBxIxJxIYgTUlMQU4KK1NUT0pBxIxJxIYgTkVOQUQKK1NUT0pBxIxJxIYgVkxBRElTTEFWCitTVE9KQURJTk9WIFJBRElWT0oKK1NUT0pBRElOT1ZJxIYgQU5JQ0EKK1NUT0pBRElOT1ZJxIYgQk9SSVNMQVZBCitTVE9KQURJTk9WScSGIEJPUklWT0oKK1NUT0pBRElOT1ZJxIYgRElNSVRSSUpFCitTVE9KQURJTk9WScSGIERPQlJJTEEKK1NUT0pBRElOT1ZJxIYgRFJBR0FOQSBMRUtBUgorU1RPSkFESU5PVknEhiBEUkFHSU5KQQorU1RPSkFESU5PVknEhiBEUkFHT1NMQVYKK1NUT0pBRElOT1ZJxIYgTEFaQVIKK1NUT0pBRElOT1ZJxIYgTEpVQknFoEEKK1NUT0pBRElOT1ZJxIYgTUlMQU4KK1NUT0pBRElOT1ZJxIYgTUlMQU4KK1NUT0pBRElOT1ZJxIYgTUlMRVZBCitTVE9KQURJTk9WScSGIE1JTElDQQorU1RPSkFESU5PVknEhiBNSUxJTktPCitTVE9KQURJTk9WScSGIE1JTEtBCitTVE9KQURJTk9WScSGIE1JTE9KRQorU1RPSkFESU5PVknEhiBQRVRBUgorU1RPSkFESU5PVknEhiBQRVRBUgorU1RPSkFESU5PVknEhiBQVU5JxaBBCitTVE9KQURJTk9WScSGIFNMQVZLTworU1RPSkFESU5PVknEhiBTTE9CT0RBTgorU1RPSkFESU5PVknEhiBTTE9CT0RBTgorU1RPSkFESU5PVknEhiBTT0ZJSkEKK1NUT0pBRElOT1ZJxIYgU09GSUpBCitTVE9KQURJTk9WScSGIFNURVZBTgorU1RPSkFESU5PVknEhiBUQVRKQU5BCitTVE9KQURJTk9WScSGIFZMQURFVEEKK1NUT0pBSyBaT1JJQ0EKK1NUT0pBS09WIEJPxb1JREFSCitTVE9KQUtPViBNSUxPUkFECitTVE9KQUtPViBTUkJPU0xBVgorU1RPSkFLT1YgU1JCT1NMQVYKK1NUT0pBS09WScSGIMSQVUtBTgorU1RPSkFLT1ZJxIYgxJBVUk8KK1NUT0pBS09WScSGIEJSQU5JU0xBVkEKK1NUT0pBS09WScSGIERJVk5BCitTVE9KQUtPVknEhiBEUkFHQU4KK1NUT0pBS09WScSGIEpFTEtBCitTVE9KQUtPVknEhiBLT1NUQQorU1RPSkFLT1ZJxIYgTEFaQVIKK1NUT0pBS09WScSGIE1BUkdJVEEKK1NUT0pBS09WScSGIE1JSEFKTE8KK1NUT0pBS09WScSGIE1JTEFESU5LQQorU1RPSkFLT1ZJxIYgTUlMQQorU1RPSkFLT1ZJxIYgTUlMRQorU1RPSkFLT1ZJxIYgTUlMSVNBVgorU1RPSkFLT1ZJxIYgTUlMT1ZBTgorU1RPSkFLT1ZJxIYgTklLT0xBCitTVE9KQUtPVknEhiBSQURNSUxBCitTVE9KQUtPVknEhiBTQVZBTgorU1RPSkFLT1ZJxIYgU0xBVktPCitTVE9KQUtPVknEhiBTTUlMSkEKK1NUT0pBS09WScSGIFNUQU5LTworU1RPSkFLT1ZJxIYgU1RFVk8KK1NUT0pBS09WScSGIFNWRVRPWkFSCitTVE9KQUtPVknEhiBaT1JBTgorU1RPSkFLT1ZJxIYgWk9SQQorU1RPSkFOxIxFViBHT1JEQU5BCitTVE9KQU7EjEVWIElWQU4KK1NUT0pBTsSMRVYgUkFET01JUgorU1RPSkFOxIxFViBTTEFWSUNBCitTVE9KQU7EjEVWIFZBU0EKK1NUT0pBTsSMScSGIFZMQURBCitTVE9KQU5BQyBCUkFOS08KK1NUT0pBTkFDIE1JTEUKK1NUT0pBTkFDIE5JS09MQQorU1RPSkFOScSGIEFOR0VMSU5BCitTVE9KQU5PU0tJIERVxaBBTgorU1RPSkFOT1NLSSBHQVZSSUwKK1NUT0pBTk9WIEJSQU5LTworU1RPSkFOT1YgQlJBTktPCitTVE9KQU5PViBJVkFOCitTVE9KQU5PViBNSUxPVkFOCitTVE9KQU5PViBNSVJKQU5BCitTVE9KQU5PViBNTEFERU4gRFIKK1NUT0pBTk9WIE5BREEKK1NUT0pBTk9WIE5BREEKK1NUT0pBTk9WIE9MR0EKK1NUT0pBTk9WIFJBRElWT0pFCitTVE9KQU5PViBSQURPVkFOCitTVE9KQU5PViBTQVZBCitTVE9KQU5PViBTQVZBCitTVE9KQU5PViBTRU5LQQorU1RPSkFOT1YgU1RBTktPCitTVE9KQU5PViBTVEVWQU4KK1NUT0pBTk9WIFZFUkEKK1NUT0pBTk9WIFZMQURJTUlSCitTVE9KQU5PViBWVUtJQ0EKK1NUT0pBTk9WIFpPUkFOCitTVE9KQU5PVknEhiDFvUlWS08KK1NUT0pBTk9WScSGIMW9SVZLTworU1RPSkFOT1ZJxIYgxb1JVktPCitTVE9KQU5PVknEhiDFvUlWT0pJTgorU1RPSkFOT1ZJxIYgxb1JVk9SQUQKK1NUT0pBTk9WScSGIMSQT1LEkEUKK1NUT0pBTk9WScSGIMSQT1LEkEUKK1NUT0pBTk9WScSGIMSQVVLEkElDQQorU1RPSkFOT1ZJxIYgxJBVUkEKK1NUT0pBTk9WScSGIEFDQQorU1RPSkFOT1ZJxIYgQUxFS1NBTkRBUgorU1RPSkFOT1ZJxIYgQUxFS1NBTkRBUgorU1RPSkFOT1ZJxIYgQUxFS1NBTkRBUgorU1RPSkFOT1ZJxIYgQUxKT8WgQQorU1RPSkFOT1ZJxIYgQU5BCitTVE9KQU5PVknEhi1CQUxJTlQgQk/FvUFOQQorU1RPSkFOT1ZJxIYgQkxBR09KRQorU1RPSkFOT1ZJxIYgQk/FoEtPCitTVE9KQU5PVknEhiBCT8WgS08KK1NUT0pBTk9WScSGIEJPxaBLTworU1RPSkFOT1ZJxIYgQk/FvUlEQVIKK1NUT0pBTk9WScSGIEJPxb1JREFSCitTVE9KQU5PVknEhiBCT0JBTgorU1RPSkFOT1ZJxIYgQk9HT0xKVUIKK1NUT0pBTk9WScSGIEJPUklTTEFWQQorU1RPSkFOT1ZJxIYgQk9SSVNMQVYKK1NUT0pBTk9WScSGIEJPUklWT0pFCitTVE9KQU5PVknEhiBCT1JJVk9KCitTVE9KQU5PVknEhiBCUkFOSVNMQVYKK1NUT0pBTk9WScSGIEJSQU5JU0xBVgorU1RPSkFOT1ZJxIYgQlJBTklTTEFWCitTVE9KQU5PVknEhiBCUkFOS0EKK1NUT0pBTk9WScSGIEJSQU5LQQorU1RPSkFOT1ZJxIYgQlJBTktPCitTVE9KQU5PVknEhiBCUkFOS08KK1NUT0pBTk9WScSGIEJVRElNSVIKK1NUT0pBTk9WScSGIENWSUpFVEEKK1NUT0pBTk9WScSGIERBTklDQQorU1RPSkFOT1ZJxIYgREFOSUNBCitTVE9KQU5PVknEhiBEQU5JTE8KK1NUT0pBTk9WScSGIERBTktBCitTVE9KQU5PVknEhiBEQVJJTktBIERSCitTVE9KQU5PVknEhiBERVNJTUlSCitTVE9KQU5PVknEhiBET0JSSUxBCitTVE9KQU5PVknEhiBET0JSSUxBCitTVE9KQU5PVknEhiBET0JSSUxBCitTVE9KQU5PVknEhiBET0JSSU5LQQorU1RPSkFOT1ZJxIYgRFJBR0FOCitTVE9KQU5PVknEhiBEUkFHQU4KK1NUT0pBTk9WScSGIERSQUdBTgorU1RPSkFOT1ZJxIYgRFJBR0FOCitTVE9KQU5PVknEhiBEUkFHQU4KK1NUT0pBTk9WScSGIERSQUdBTgorU1RPSkFOT1ZJxIYgRFJBR0FOCitTVE9KQU5PVknEhiBEUkFHScWgQQorU1RPSkFOT1ZJxIYgRFJBR0nFoEEKK1NUT0pBTk9WScSGIERSQUdJQ0EKK1NUT0pBTk9WScSGIERSQUdPTEpVQgorU1RPSkFOT1ZJxIYgRFJBR09MSlVCCitTVE9KQU5PVknEhiBEUkFHT01JUgorU1RPSkFOT1ZJxIYgRFJBR09TTEFWCitTVE9KQU5PVknEhiBEVcWgQU4KK1NUT0pBTk9WScSGIERVxaBJQ0EKK1NUT0pBTk9WScSGIEdBVlJJTE8KK1NUT0pBTk9WScSGIEdBVlJPCitTVE9KQU5PVknEhiBHT1JBTgorU1RPSkFOT1ZJxIYgR1JBRElNSVIKK1NUT0pBTk9WScSGIElWS08KK1NUT0pBTk9WScSGIEpBS09WCitTVE9KQU5PVknEhiBKQVNNSU5BCitTVE9KQU5PVknEhi1KRUZUT1ZJxIYgQk9TSUxKS0EKK1NUT0pBTk9WScSGIEpFTEVOQQorU1RPSkFOT1ZJxIYgSkVMRU5BCitTVE9KQU5PVknEhiBKRUxJQ0EKK1NUT0pBTk9WScSGIEpPVkFOCitTVE9KQU5PVknEhiBKT1ZBTgorU1RPSkFOT1ZJxIYgSlVMS0EKK1NUT0pBTk9WScSGIEtBVElDQQorU1RPSkFOT1ZJxIYgS09OU1RBTlRJTgorU1RPSkFOT1ZJxIYgS09TVEEKK1NUT0pBTk9WScSGIEtSU1RBCitTVE9KQU5PVknEhiBMQVpBUgorU1RPSkFOT1ZJxIYgTEFaQVIKK1NUT0pBTk9WScSGIExFT05BCitTVE9KQU5PVknEhiBMSlVCScWgQQorU1RPSkFOT1ZJxIYgTEpVQklDQQorU1RPSkFOT1ZJxIYgTEpVQklOS08KK1NUT0pBTk9WScSGIExKVUJPTUlSCitTVE9KQU5PVknEhiBMSlVCT01JUgorU1RPSkFOT1ZJxIYgTUFSSUpBCitTVE9KQU5PVknEhiBNQVJLTworU1RPSkFOT1ZJxIYgTUnFoEEKK1NUT0pBTk9WScSGIE1JTEFLCitTVE9KQU5PVknEhiBNSUxBTgorU1RPSkFOT1ZJxIYgTUlMQU4KK1NUT0pBTk9WScSGIE1JTEVUQQorU1RPSkFOT1ZJxIYgTUlMRQorU1RPSkFOT1ZJxIYgTUlMSUNBCitTVE9KQU5PVknEhiBNSUxJQ0EKK1NUT0pBTk9WScSGIE1JTElWT0pFCitTVE9KQU5PVknEhiBNSUxLQQorU1RPSkFOT1ZJxIYgTUlMT8WgCitTVE9KQU5PVknEhiBNSUxPxaAKK1NUT0pBTk9WScSGIE1JTE/FoAorU1RPSkFOT1ZJxIYgTUlMT1ZBTgorU1RPSkFOT1ZJxIYgTUlMT1ZBTgorU1RPSkFOT1ZJxIYgTUlMT1ZBTgorU1RPSkFOT1ZJxIYgTUlPRFJBRworU1RPSkFOT1ZJxIYgTUlPRFJBRworU1RPSkFOT1ZJxIYgTUlPTUlSCitTVE9KQU5PVknEhiBNSVJBCitTVE9KQU5PVknEhiBNSVJKQU5BCitTVE9KQU5PVknEhiBNSVJKQU5BCitTVE9KQU5PVknEhiBNSVJPTEpVQgorU1RPSkFOT1ZJxIYgTUlST1NMQVYKK1NUT0pBTk9WScSGIE1JUk9TTEFWCitTVE9KQU5PVknEhiBNSVJPU0xBVgorU1RPSkFOT1ZJxIYgTUlST1NMQVYKK1NUT0pBTk9WScSGIE1JUk8KK1NUT0pBTk9WScSGIE1PTcSMSUxPCitTVE9KQU5PVknEhiBNT01JUgorU1RPSkFOT1ZJxIYgTkFEQQorU1RPSkFOT1ZJxIYgTkFEQQorU1RPSkFOT1ZJxIYgTkFTVEFTCitTVE9KQU5PVknEhiBORURFTEpLTworU1RPSkFOT1ZJxIYgTkVOQUQKK1NUT0pBTk9WScSGIE5FTkFECitTVE9KQU5PVknEhiBOSUtJQ0EKK1NUT0pBTk9WScSGIE5JS09MQQorU1RPSkFOT1ZJxIYgTklLT0xBCitTVE9KQU5PVknEhiBOT1ZJQ0EKK1NUT0pBTk9WScSGIE5PVklDQQorU1RPSkFOT1ZJxIYgT0JSQUQKK1NUT0pBTk9WScSGIE9MR0EKK1NUT0pBTk9WScSGIE9TVE9KQQorU1RPSkFOT1ZJxIYgUEVUQVIKK1NUT0pBTk9WScSGIFBFVEFSCitTVE9KQU5PVknEhiBQRVRBUgorU1RPSkFOT1ZJxIYgUEVUQVIKK1NUT0pBTk9WScSGIFBSVkFOCitTVE9KQU5PVknEhiBSQURFCitTVE9KQU5PVknEhiBSQURFCitTVE9KQU5PVknEhiBSQURJU0FWCitTVE9KQU5PVknEhiBSQURNSUxBCitTVE9KQU5PVknEhiBSQURNSUxBCitTVE9KQU5PVknEhiBSQURNSUxBCitTVE9KQU5PVknEhiBSQURNSUxPCitTVE9KQU5PVknEhiBSQURPSUNBCitTVE9KQU5PVknEhiBSQURPTUlSCitTVE9KQU5PVknEhiBSQURPTUlSCitTVE9KQU5PVknEhiBSQURPVkFOCitTVE9KQU5PVknEhiBSVcW9SUNBCitTVE9KQU5PVknEhiBTQcWgQQorU1RPSkFOT1ZJxIYgU0FWQQorU1RPSkFOT1ZJxIYtU0lNScSGIFZFU05BCitTVE9KQU5PVknEhiBTTEFWS08KK1NUT0pBTk9WScSGIFNMQVZLTworU1RPSkFOT1ZJxIYgU0xBVktPCitTVE9KQU5PVknEhiBTTEFWT0pLQQorU1RPSkFOT1ZJxIYgU0xBVk9MSlVCCitTVE9KQU5PVknEhiBTTE9CT0RBTgorU1RPSkFOT1ZJxIYgU0xPQk9EQU4KK1NUT0pBTk9WScSGIFNMT0JPREFOCitTVE9KQU5PVknEhiBTUsSQQU4KK1NUT0pBTk9WScSGIFNSQk9MSlVCCitTVE9KQU5PVknEhiBTUkVURU4KK1NUT0pBTk9WScSGIFNSRVRFTgorU1RPSkFOT1ZJxIYgU1RBTklTTEFWIERSIExFS0FSCitTVE9KQU5PVknEhiBTVEFOT0pFCitTVE9KQU5PVknEhiBTVEFOT0pFCitTVE9KQU5PVknEhiBTVEVWQU4gRFIKK1NUT0pBTk9WScSGIFNURVZBTgorU1RPSkFOT1ZJxIYgU1RFVkFOCitTVE9KQU5PVknEhiBTVEVWQU4KK1NUT0pBTk9WScSGIFNURVZBTgorU1RPSkFOT1ZJxIYgU1RPSkFOCitTVE9KQU5PVknEhiBTVE9KQU4KK1NUT0pBTk9WScSGIFNUT0xFCitTVE9KQU5PVknEhiBTVkVUSVNMQVYKK1NUT0pBTk9WScSGIFNWRVRMQU5BCitTVE9KQU5PVknEhiBTVkVUT1pBUgorU1RPSkFOT1ZJxIYgVElIT01JUiBEUiBJTkcKK1NUT0pBTk9WScSGIFRJSE9NSVIKK1NUT0pBTk9WScSGIFRPTUlTTEFWIE1SCitTVE9KQU5PVknEhiBUT01JU0xBVgorU1RPSkFOT1ZJxIYgVkFMRVJJSkEKK1NUT0pBTk9WScSGIFZBU0lMSUpFCitTVE9KQU5PVknEhiBWQVNPCitTVE9KQU5PVknEhiBWRUxJTUlSCitTVE9KQU5PVknEhiBWRUxJTUlSCitTVE9KQU5PVknEhiBWRUxKS08KK1NUT0pBTk9WScSGIFZFUkEKK1NUT0pBTk9WScSGIFZFUkEKK1NUT0pBTk9WScSGIFZFU05BCitTVE9KQU5PVknEhiBWRVNOQQorU1RPSkFOT1ZJxIYgVkxBRElNSVIKK1NUT0pBTk9WScSGIFZMQURJTUlSCitTVE9KQU5PVknEhiBWTEFESU1JUgorU1RPSkFOT1ZJxIYgVkxBRElNSVIKK1NUT0pBTk9WScSGIFZMQURJTUlSCitTVE9KQU5PVknEhiBWTEFESU1JUgorU1RPSkFOT1ZJxIYgVkxBU1RJTUlSCitTVE9KQU5PVknEhiBWT0pJU0xBVgorU1RPSkFOT1ZJxIYgVlVLQcWgSU4KK1NUT0pBTk9WScSGIFpEUkFWS08KK1NUT0pBTk9WScSGIFpPUkFOIERSCitTVE9KQU5PVknEhiBaT1JBTgorU1RPSkFOT1ZJxIYgWk9SQU4KK1NUT0pBTk9WScSGIFpPUkFOCitTVE9KQU5PVknEhiBaT1JLQQorU1RPSkFOT1ZTS0kgxb1JVktPCitTVE9KQU5PVlNLSSBBTkRSSUpBCitTVE9KQU5PVlNLSSBCSUxKQU5BCitTVE9KQU5PVlNLSSBCUkFOSU1JUgorU1RPSkFOT1ZTS0kgRFJBR0FOIERJUEwgT0VDCitTVE9KQU5PVlNLSSBKT1JEQU4KK1NUT0pBTk9WU0tJIExKVUJJxaBBCitTVE9KQU5PVlNLSSBMSlVCSUNBCitTVE9KQU5PVlNLSSBQQVZMRQorU1RPSkFOT1ZTS0kgUEFWTEUKK1NUT0pBTk9WU0tJIFNBTkUKK1NUT0pBTk9WU0tJIFNMQVZJQ0EKK1NUT0pBTk9WU0tJIFRPTU8KK1NUT0pFViBTVE9JxIxLTworU1RPSknEjEnEhiBERVNBTktBCitTVE9KScSMScSGIEdMSUdPUklKRQorU1RPSknEjEnEhiBKQVNNSU5BCitTVE9KScSMScSGIEpBU01JTkEKK1NUT0pJxIxJxIYgTUlMSUNBCitTVE9KScSMScSGIFJPU0EKK1NUT0pJxIxJxIYgU0xBVktPCitTVE9KScSMScSGIFRPRE9SQQorU1RPSknFoEnEhiDEkFVSSUNBIERSCitTVE9KScSGIMSQVVLEkElOS0EKK1NUT0pJxIYtQVBJxIYgU0xBVktBCitTVE9KScSGIEJPR09MSlVCCitTVE9KScSGIEJPR09MSlVCCitTVE9KScSGIEJPR09MSlVCCitTVE9KScSGIEJSQU5LQQorU1RPSknEhiBET0JSSVZPSgorU1RPSknEhiBEUkFHSU5KQQorU1RPSknEhiBEUkFHT0xKVUIKK1NUT0pJxIYgRFXFoEFOCitTVE9KScSGIEdBVlJBCitTVE9KScSGIEdPSktPCitTVE9KScSGIEdSQURJTUlSCitTVE9KScSGIEnFoFRWQU4KK1NUT0pJxIYgSlVMSUpBTkEKK1NUT0pJxIYgS0FUSUNBCitTVE9KScSGIExKVUJJTktBCitTVE9KScSGIE1BUkEKK1NUT0pJxIYgTUFSSU5LTworU1RPSknEhiBNSUxBTgorU1RPSknEhiBNSUxFTkEKK1NUT0pJxIYgTUlMRQorU1RPSknEhiBNSUxJQ0EKK1NUT0pJxIYgTUlPRFJBRyBEUgorU1RPSknEhiBNSU9NSVIKK1NUT0pJxIYgTUlSS08KK1NUT0pJxIYgTUxBREVOIERSIExFS0FSCitTVE9KScSGIE5FREVMSktPCitTVE9KScSGIE5JS09MQQorU1RPSknEhiBTSU5JxaBBIERSCitTVE9KScSGIFNMQVZLQQorU1RPSknEhiBTVEFOSVNMQVYKK1NUT0pJxIYgU1ZFVExBTkEKK1NUT0pJxIYgU1ZFVE9aQVIKK1NUT0pJxIYgVE9ET1IKK1NUT0pJxIYgVkFTQQorU1RPSknEhiBWVcSMS08KK1NUT0pJxIYgVlVLQcWgSU4KK1NUT0pJxIYgWk9SQU4KK1NUT0pJxIZFVknEhiBTTE9CT0RBTgorU1RPSklDIEpPTkVMCitTVE9KSUxKS09WScSGIEJPxb1JREFSCitTVE9KSUxKS09WScSGIEJPxb1JREFSCitTVE9KSUxKS09WScSGIEJSQU5JTUlSIERJUEwgT0VDCitTVE9KSUxKS09WScSGIERBTUlSCitTVE9KSUxKS09WScSGIERBUktBCitTVE9KSUxKS09WScSGIEdPUkFOIERSCitTVE9KSUxKS09WScSGIEdPUkRBTkEKK1NUT0pJTEpLT1ZJxIYgSkVMSUNBCitTVE9KSUxKS09WScSGIExKVUJJxaBBCitTVE9KSUxKS09WScSGIFRPTUlTTEFWCitTVE9KSUxKS09WScSGIFRPTUlTTEFWCitTVE9KSUxKS09WScSGIFZJS1RPUgorU1RPSklMS09WScSGIE1JTEVUSUpFCitTVE9KSUxLT1ZJxIYgTUlMRQorU1RPSklMS09WScSGIFNUT0pBTgorU1RPSklMS09WScSGIFZBTEVSSUpBCitTVE9KSUxPViBSQURPU0xBVgorU1RPSklMT1ZJxIYgTUlMQU4KK1NUT0pJTE9WScSGIE1JTEFOCitTVE9KSU4gxIxFRE9NSVIKK1NUT0pJTiBNSUxJVk9KIERSIFBST0YKK1NUT0pJTiBNSUxJVk9KCitTVE9KSU5PViDFvUlWS08KK1NUT0pJTk9WIEJSQU5LTworU1RPSklOT1YgRFXFoEFOCitTVE9KSU5PViBKT1ZBTgorU1RPSklOT1YgS0FUQVJJTkEKK1NUT0pJTk9WIEtBVElDQQorU1RPSklOT1YgTEpVQklDQQorU1RPSklOT1YgTUlMRU5LTworU1RPSklOT1YgWk9SSUNBCitTVE9KSU5PVknEhiBHT1JBTgorU1RPSklOT1ZJxIYgTUFSSUNBCitTVE9KSVNBVkxKRVZJxIYgRFXFoEFOCitTVE9KSVNBVkxKRVZJxIYgSk9WQU5LQQorU1RPSklTQVZMSkVWScSGIE1JTEFOCitTVE9KSVNBVkxKRVZJxIYgTUlMRQorU1RPSklTQVZMSkVWScSGIFNMT0JPREFOCitTVE9KSVNBVkxKRVZJxIYgU0xPQk9EQU4KK1NUT0pJU0FWTEpFVknEhiBWRUxKS08KK1NUT0pLT1Ygxb1BUktPCitTVE9KS09WIMW9SVZPUkFECitTVE9KS09WIEFMRUtTQU5EQVIKK1NUT0pLT1YgQk9HREFOCitTVE9KS09WIEJPUklWT0oKK1NUT0pLT1YgQlJBTklTTEFWCitTVE9KS09WIERJTUlUUklKRQorU1RPSktPViBEUkFHSU5BCitTVE9KS09WIElWQU4KK1NUT0pLT1YgSkVMSUNBCitTVE9KS09WIEpFTEtBCitTVE9KS09WIEpPVkFOCitTVE9KS09WIEpVTEtBCitTVE9KS09WIEtBVElDQQorU1RPSktPViBMSlVCSUNBCitTVE9KS09WIE1JTEFOCitTVE9KS09WIE1JTEFOCitTVE9KS09WIE1JTEFOCitTVE9KS09WIE1JTEVOQQorU1RPSktPViBNSUxFVktBCitTVE9KS09WIE1JTEUKK1NUT0pLT1YgTUlPRFJBRworU1RPSktPViBNSU9NSVIKK1NUT0pLT1YgTUlST1NMQVYKK1NUT0pLT1YgTUxBREVOCitTVE9KS09WIE5FR09WQU4KK1NUT0pLT1YgUkFESVZPSgorU1RPSktPViBSQURJVk9KCitTVE9KS09WIFNMT0JPREFOCitTVE9KS09WIFNURVZBTgorU1RPSktPViBTVE9KQU4KK1NUT0pLT1YgU1RPSkFOCitTVE9KS09WIFRPRE9SCitTVE9KS09WIFZFUklDQQorU1RPSktPViBWVUtPU0FWQQorU1RPSktPViBaRFJBVktPCitTVE9KS09WScSGLcWgQUxCT1QgQk9KQU5BCitTVE9KS09WScSGIMW9SVZLQQorU1RPSktPVknEhiDFvUlWT1RBCitTVE9KS09WScSGIMSQT1LEkEUKK1NUT0pLT1ZJxIYgxJBPUsSQRQorU1RPSktPVknEhiBBTEVLU0FOREFSCitTVE9KS09WScSGIEFMRUtTQU5EQVIKK1NUT0pLT1ZJxIYgQUxFS1NBTkRBUgorU1RPSktPVknEhiBBTsSQRUxLQQorU1RPSktPVknEhiBBTkFOSUpFCitTVE9KS09WScSGIEFOVE9OSUpFCitTVE9KS09WScSGIEJMQUdPSkUKK1NUT0pLT1ZJxIYgQk/FvUlEQVIKK1NUT0pLT1ZJxIYgQk/FvUlEQVIKK1NUT0pLT1ZJxIYgQk9SSVNMQVYKK1NUT0pLT1ZJxIYgQk9SS08KK1NUT0pLT1ZJxIYgQlJBTklTTEFWCitTVE9KS09WScSGIERSQUdBTgorU1RPSktPVknEhiBEUkFHQU4KK1NUT0pLT1ZJxIYgRFJBR0lOSkEKK1NUT0pLT1ZJxIYgRFJBR09MSlVCCitTVE9KS09WScSGIERSQUdPTEpVQgorU1RPSktPVknEhiBEVcWgQU5LQQorU1RPSktPVknEhiBEVcWgQU5LQQorU1RPSktPVknEhiBEVcWgQU4KK1NUT0pLT1ZJxIYgRFXFoEFOCitTVE9KS09WScSGIERVxaBBTgorU1RPSktPVknEhiBHT1JEQU5BCitTVE9KS09WScSGIEdPUkRBTkEKK1NUT0pLT1ZJxIYgR1JBRElNSVIKK1NUT0pLT1ZJxIYgSUxJSkEKK1NUT0pLT1ZJxIYgSVZBTgorU1RPSktPVknEhiBKRUxFTkEKK1NUT0pLT1ZJxIYgSkVMRU5BCitTVE9KS09WScSGIEpFTEVOQQorU1RPSktPVknEhi1KT1ZBTk9WScSGIFNMQVZJQ0EKK1NUT0pLT1ZJxIYgSk9WQU4KK1NUT0pLT1ZJxIYgSk9WQU4KK1NUT0pLT1ZJxIYgS0FUSUNBCitTVE9KS09WScSGIEtVWk1BTgorU1RPSktPVknEhiBMRU5LQQorU1RPSktPVknEhiBNQVJJSkEKK1NUT0pLT1ZJxIYgTUlMQU4KK1NUT0pLT1ZJxIYgTUlMQU4KK1NUT0pLT1ZJxIYgTUlMQU4KK1NUT0pLT1ZJxIYgTUlMRU5LTworU1RPSktPVknEhiBNSUxFTktPCitTVE9KS09WScSGIE1JTEVOVElKRQorU1RPSktPVknEhiBNSUxPxaAKK1NUT0pLT1ZJxIYgTUlMT1ZBTgorU1RPSktPVknEhiBNSUxURU4KK1NUT0pLT1ZJxIYgTUlMVVRJTgorU1RPSktPVknEhiBNSU9EUkFHCitTVE9KS09WScSGIE1JT0RSQUcKK1NUT0pLT1ZJxIYgTUlSSkFOQQorU1RPSktPVknEhiBNSVJKQU5BCitTVE9KS09WScSGIE1JUkpBTkEKK1NUT0pLT1ZJxIYgTUlSSkFOQQorU1RPSktPVknEhiBNSVJKQU5BCitTVE9KS09WScSGIE1JUktPCitTVE9KS09WScSGIE1JUk9TTEFWCitTVE9KS09WScSGIE1MQURFTgorU1RPSktPVknEhiBOQURBCitTVE9KS09WScSGIFBBVkxFCitTVE9KS09WScSGIFBBVkxFCitTVE9KS09WScSGIFBFVEFSCitTVE9KS09WScSGIFBFVEFSCitTVE9KS09WScSGIFBFVEFSCitTVE9KS09WScSGIFBSRURSQUcgRFIKK1NUT0pLT1ZJxIYgUkFERU5LTworU1RPSktPVknEhiBSQURJU0FWIERJUEwgSU5HCitTVE9KS09WScSGIFJBRElWT0pFCitTVE9KS09WScSGIFJBRE1JTEEKK1NUT0pLT1ZJxIYgUkFETUlMQQorU1RPSktPVknEhiBSQURPTUlSCitTVE9KS09WScSGIFJBRE9TTEFWS0EKK1NUT0pLT1ZJxIYgUkFET1NMQVYKK1NUT0pLT1ZJxIYgUkFET1ZBTiBESVBMIElORworU1RPSktPVknEhiBTQU5KQQorU1RPSktPVknEhiBTTEFWS0EKK1NUT0pLT1ZJxIYgU0xBVk9MSlVCCitTVE9KS09WScSGIFNNSUxKS0EKK1NUT0pLT1ZJxIYgU1RPSkFESU4KK1NUT0pLT1ZJxIYgVEVPRE9SCitTVE9KS09WScSGIFZFTElNSVIKK1NUT0pLT1ZJxIYgVkVMSktPCitTVE9KS09WScSGIFZFUk9TTEFWCitTVE9KS09WScSGIFZMQURJTUlSCitTVE9KS09WScSGIFZMQURJTUlSCitTVE9KS09WScSGIFpBR09SS0EKK1NUT0pLT1ZJxIYgWkxBVElCT1IKK1NUT0pLT1ZJxIYgWk9SQU4KK1NUT0pLT1ZTS0kgRFJBR0FOCitTVE9KS09WU0tJIERSQUdBTgorU1RPSkxPVknEhiDEkFVMQQorU1RPSk1FTk9WScSGIMW9SVZLTworU1RPSk1FTk9WScSGIElWQU4KK1NUT0pNRU5PVknEhiBKT1ZBTgorU1RPSk1FTk9WScSGIE1BUklKQQorU1RPSk1FTk9WScSGIFZMQURBCitTVE9KTUVOT1ZJxIYgVk9KSVNMQVYKK1NUT0pOScSGIEJPxaBLTworU1RPSk5JxIYgRFJBR0FOCitTVE9KTknEhiBEUkFHSUNBCitTVE9KTknEhiBEVcWgQU4KK1NUT0pOScSGIE1JTElDQQorU1RPSk5JxIYgTUlSS08KK1NUT0pOScSGIFBBVkxFCitTVE9KTknEhiBSQURPTUlSCitTVE9KTknEhiBTTE9CT0RBTgorU1RPSk5PViBEQU1KQU4KK1NUT0pPVknEhiBSQURPTUlSCitTVE9KT1ZJxIYgVE9NQcWgCitTVE9KU0FWTEpFVknEhiBOSUtPTEEKK1NUT0pTQVZMSkVWScSGIFBFVEFSCitTVE9KU0FWTEpFVknEhiBTVEVWQU4KK1NUT0pTQVZMSkVWScSGIFRJSE9NSVIKK1NUT0tBTk9WScSGIMSQT1LEkEUKK1NUT0tBTk9WScSGIE1JTE9SQUQKK1NUT0tJxIYgxJBPUsSQRQorU1RPS0nEhiBEUkFHT0xKVUIKK1NUT0tJxIYgRFXFoEFOCitTVE9LScSGIEpPVklDQQorU1RPS0nEhiBNSUxBTgorU1RPS0nEhiBUT0RPUgorU1RPS0lOIEFMRVNBTkRBUgorU1RPS0lOIEJSQU5LTworU1RPS0lOIE1JTElWT0oKK1NUT0tJTiBTTE9CT0RBTgorU1RPS0lOIFNUT0pBTgorU1RPS1XEhkEgREFORQorU1RPS1XEhkEgTUlIQUpMTworU1RPS1XEhkEgTUlMQU4KK1NUT0tVxIZBIE1JTEFOCitTVE9LVcSGQSBNSUxBTgorU1RPS1XEhkEgTUlSSkFOQQorU1RPS1XEhkEgTklLT0xBCitTVE9LVcSGQSBQRVRBUgorU1RPTEVTS0kgTUlUSUpBCitTVE9MScSGIMSQVVJPCitTVE9MScSGIEJJU0VSS0EKK1NUT0xJxIYgRFXFoEFOCitTVE9MScSGIERVxaBBTgorU1RPTEnEhiBEVcWgQU4KK1NUT0xJxIYgS0FUSUNBCitTVE9MScSGIExKVUJJQ0EKK1NUT0xJxIYgTUlSSkFOQQorU1RPTEnEhiBNSVJPU0xBVgorU1RPTEnEhiBNSVJPU0xBVgorU1RPTEnEhiBORU5BRAorU1RPTEnEhiBQRVRBUiBEUgorU1RPTEnEhiBTUkVUQQorU1RPTEnEhiBTVEVWQU4KK1NUT1BJTsWgRUsgU1RBTklTTEFWCitTVFJBxb1NRcWgVEVSIEJPxb1JREFSCitTVFJBxb1NRcWgVEVSIERVxaBBTgorU1RSQcW9TUXFoFRFUk9WIERJTUlUUklKRQorU1RSQcW9TUXFoFRFUk9WIE1JTElDQQorU1RSQcW9TUXFoFRFUk9WIE1JUk9TTEFWIERJUEwgSU5HCitTVFJBxb1NRcWgVEVST1YgU0FWQQorU1RSQcW9TUXFoFRFUk9WIFNPRklKQQorU1RSQcW9TUXFoFRFUk9WIFNURVZBTgorU1RSQUNFTlNLSSBNSVJPU0xBVgorU1RSQUNFTlNLSSBTVEVWQU4KK1NUUkFHQSBTVEpFUEFOCitTVFJBSElOScSGIEtSU1RPTUlSCitTVFJBSklOIEJSQU5JU0xBVkEKK1NUUkFKSU4gSkVMRU5BCitTVFJBSklOIE5BREEKK1NUUkFKSU4gUkFET1ZBTgorU1RSQUpJTiBTVE9KQU4KK1NUUkFKSU4gVkVMSVpBUgorU1RSQUpJTknEhiBCT8W9SURBUgorU1RSQUpJTknEhiBJUkVOQQorU1RSQUpJTknEhiBKT1ZBTgorU1RSQUpJTknEhiBMQVpBUgorU1RSQUpJTknEhiBNSUxVVElOCitTVFJBSk5JxIYgQlJBTktPCitTVFJBSk5JxIYgRFXFoEFOCitTVFJBSk5JxIYgR1JVSkEKK1NUUkFKTknEhiBNQVJJSkEKK1NUUkFKTknEhiBNSUxBTktPCitTVFJBSk5JxIYgTUlMQU4KK1NUUkFKTknEhiBNTEFERU4KK1NUUkFKTknEhiBQQUwKK1NUUkFKTknEhiBUT8WgQQorU1RSQU5JxIYgSk9WSUNBCitTVFJBTkpBS09WScSGIMW9SVZPSklOCitTVFJBTkpBTkFDIE1JTE9SQUQKK1NUUkFOSkFOQUMgTUlST1NMQVYKK1NUUkJBxIxLSSBGUklET0xJTkEKK1NUUkJBxIxLSSBTVEVWQU4KK1NUUkJBRCBTVEVWQU4KK1NUUkJBVCBUT01JU0xBVgorU1RSRUhPVlNLSSBaVVpBTkEKK1NUUkVMRSBSQcWgQQorU1RSRVpPU0tJIEpPVkFOCitTVFJFWk9TS0kgTUlMRVNBCitTVFJFWk9TS0kgTklLT0RJTktBCitTVFJFWk9TS0kgVkxBRElNSVIKK1NUUkdBUiBQRVRBUgorU1RSScSMRVZJxIYgREFSQQorU1RSScSMRVZJxIYgRFXFoEFOCitTVFJJxIxFVknEhiBKT1NJUAorU1RSScSMRVZJxIYgSlVMS0EKK1NUUknEjEVWScSGIEtTRU5JSkEKK1NUUknEjEVWScSGIExKVUJPTUlSCitTVFJJxIxFVknEhiBNTEFERU4KK1NUUknEjEVWScSGIFJBRElWT0oKK1NUUknEjEVWScSGIFNBVktBCitTVFJJxIxFVknEhiBWRUxJTUlSCitTVFJJxIxFVknEhiBWTEFESVNMQVZBCitTVFJJxIxLTyBWTEFESU1JUgorU1RSSUJFUiBFTUlMCitTVFJJQkVSIEZSQU5KQQorU1RSSUJFUiBGUkFOSkEKK1NUUklCRVIgTUlIQUpMTworU1RSSUJFUiBTVEVWQU4KK1NUUklCRVIgU1RFVkFOCitTVFJJQ0tJIElWQU4KK1NUUklLQSDEkE9SxJBFCitTVFJJS0EgQlJBTktPCitTVFJJS09WScSGIMSGQU1JTAorU1RSSUtPVknEhiBCRUxJCitTVFJJS09WScSGIEpBTk/FoAorU1RSSUtPVknEhiBNSUxPU0FWCitTVFJJS09WScSGIFJBRE9TTEFWCitTVFJJS09WScSGIFZFUkEKK1NUUklORUtBIEtBVElDQQorU1RSSVpPVknEhiBMSklMSkFOQQorU1RSSVpPVknEhiBNQUtTSU0KK1NUUlVHQVIgxb1BUktPCitTVFJVR0FSIMW9SVZPUkFECitTVFJVR0FSIEdPUkFOCitTVFJVR0FSIEpPU0lQCitTVFJVR0FSIE1JTFVUSU4KK1NUUlVHQVIgUEFWTEUKK1NUUlVHQVIgUkFETUlMQQorU1RSVUdBUiBTT05KQQorU1RSVUdBUiBWT0pJU0xBVgorU1RSVUdBUiBaQVJJSkEKK1NUUlVIQVIgQU5BCitTVFJVSEFSIEpBUk1JTEEKK1NUUlVIQVIgSk9TSVAKK1NUUlVIQVIgTUFHREEKK1NUUlVIQVJJSyBKT1NJUAorU1RSVUhBUklLIEpPU0lQCitTVFJVSEFSSUstSlVSIFJBU1RJU0xBVgorU1RSVUhBUklLIEpVUkFKIERSCitTVFJVSEFSSUsgTUFSSkVOQQorU1RSVUhBUklLIE1BVE8KK1NUUlVIQVJJSyBQQVZMRQorU1RSVUtBTiBET01BR09KIERSCitTVFJVTkpBxaAgR09SREFOQQorU1RVQkxJTkFDIE1JTE/FoAorU1RVREVOIMW9SVZPUkFECitTVFVMQVIgRFXFoEFOCitTVFVQQVIgxIxFREEKK1NUVVBBUiDFvUVMSktPCitTVFVQQVIgxb1JVktPCitTVFVQQVIgxJBPUsSQRQorU1RVUEFSIEJPR09MSlVCCitTVFVQQVIgQk9STworU1RVUEFSIEJPU0lMSktBCitTVFVQQVIgQlJBTktPCitTVFVQQVIgQlJBTktPCitTVFVQQVIgQlJBTktPCitTVFVQQVIgQ1ZFVEEKK1NUVVBBUiBERVNBTktBCitTVFVQQVIgRFJBR0FOCitTVFVQQVIgRFJBR08KK1NUVVBBUiBEVcWgQU5LQQorU1RVUEFSIERVxaBBTgorU1RVUEFSIERVxaBBTgorU1RVUEFSIERVxaBBTgorU1RVUEFSIElMSUpBCitTVFVQQVIgSkFOSkEKK1NUVVBBUiBKQU5LTworU1RVUEFSIEpPVk8KK1NUVVBBUiBMSlVCSU5LQQorU1RVUEFSIE1BUktPCitTVFVQQVIgTUFSS08KK1NUVVBBUiBNSUxKQQorU1RVUEFSIE1JTEtBCitTVFVQQVIgTUlMT1JBRAorU1RVUEFSIE1JTE9SQUQKK1NUVVBBUiBNSVJKQU5BCitTVFVQQVIgTUlSS08KK1NUVVBBUiBOSUtPTEEKK1NUVVBBUiBQRVJPCitTVFVQQVIgUEVUQVIKK1NUVVBBUiBQRVRBUgorU1RVUEFSIFJBREEKK1NUVVBBUiBSQURFCitTVFVQQVIgUkFKS08KK1NUVVBBUiBSQUpLTworU1RVUEFSIFJBSktPCitTVFVQQVIgU0xBxJBBTkEKK1NUVVBBUiBWTEFESU1JUgorU1RVUEFSIFpEUkFWS08KK1NUVVBBUiBaT1JBTgorU1RVUEFWU0tJIEFORFJFSgorU1RVUEFWU0tJIEpBTktPCitTVFVQScSGIFNMQVZFTktPCitTVFVQSU4gSVZBTgorU1RVUElOIFpWT05JTUlSCitTVFVSQVIgWkRSQVZLTworU1RWT1JJxIYgUEFWTEUKK1NVxIxFVknEhiBEQU5FIERJUEwgUFJBVk5JSworU1XEjEVWScSGIERSQUdBTgorU1XEjEVWScSGIERVxaBBTgorU1XEjEVWScSGIE1BUklKQQorU1XEjEVWScSGIE1BUlRBCitTVcSMRVZJxIYgTUlST1NMQVYKK1NVxIxFVknEhiBOSUtPTEEKK1NVxIxFVknEhiBOSUtPTEEKK1NVxIxFVknEhiBSVcW9SUNBCitTVcWgQSBEQU5JTE8KK1NVxaBBIE1BUktPCitTVcWgQSBNSUxJSkFOQQorU1XFoEFDIFZJTktPCitTVcWgScSGIEdPUkRBTkEKK1NVxaBJxIYgSElMREEKK1NVxaBJxIYgUkFEQQorU1XFoEnEhiBWVUpBTkEKK1NVxJBJIEpPVkFOCitTVcSQSSBNQVJJSkEKK1NVxJBJIFNUQU5LTworU1VCQcWgScSGIEJPUklTTEFWCitTVUJBxaBJxIYgSlVMS0EKK1NVQkHFoEnEhiBMQVpBUgorU1VCQcWgScSGIE1BUktPCitTVUJBxaBJxIYgTUlMQU4KK1NVQkHFoEnEhiBOSUtPTEEKK1NVQkHFoEnEhiBQRVJPCitTVUJBxaBJxIYgUEVUQVIgTVIKK1NVQkHFoEnEhiBSQUpLTworU1VCQcWgScSGIFNJTUEKK1NVQkHFoEnEhiBTVE9KQU4KK1NVQkFKS09WIFJBRE9KS0EKK1NVQkFLT1YgS09WSUxKS0EKK1NVQkFLT1YgU01JTEpLQQorU1VCQUtPViBTT0ZJSkEKK1NVQkFOT1ZJxIYgTUlMQU4KK1NVQknEhiDFvUFSS08KK1NVQknEhiDEkE9SxJBFCitTVUJJxIYgQUxFS1NBTkRBUgorU1VCScSGIEFOxJBFTEtBCitTVUJJxIYgQk/FvUVOQQorU1VCScSGIEJPxb1JREFSCitTVUJJxIYgQlJBTklTTEFWCitTVUJJxIYgREFNSVIKK1NVQknEhiBEQVJBCitTVUJJxIYgRElNSVRSSUpFCitTVUJJxIYgRFXFoEFOCitTVUJJxIYgR09SREFOQQorU1VCScSGIEpPVkFOCitTVUJJxIYgS09TVEEKK1NVQknEhiBMQVpBUgorU1VCScSGIExBWkFSCitTVUJJxIYgTEFaQVIKK1NVQknEhiBMSlVCSUNBCitTVUJJxIYgTEpVQk9NSVIKK1NVQknEhiBMSlVCT01JUgorU1VCScSGIExKVUJPTUlSCitTVUJJxIYgTUFSSUpBCitTVUJJxIYgTUFSS08KK1NVQknEhiBNQVJLTworU1VCScSGIE1JTEFOCitTVUJJxIYgTUlST1NMQVZBCitTVUJJxIYgTUxBREVOCitTVUJJxIYgTkFEQQorU1VCScSGIE5FREVMSktBCitTVUJJxIYgTkVERUxKS08KK1NVQknEhiBOT1ZBSworU1VCScSGIE9MR0EKK1NVQknEhiBQQUpBCitTVUJJxIYgUkFESVZPSgorU1VCScSGIFJBRE9TTEFWCitTVUJJxIYgU01JTEpBCitTVUJJxIYgU05Fxb1BTkEKK1NVQknEhiBTVEVWQU4KK1NVQknEhiBaT1JBTgorU1VCT1RJxIxLSSBCUkFOSVNMQVYKK1NVQk9UScSMS0kgR09SSUNBCitTVUJPVEnEjEtJIEtBVElDQQorU1VCT1RJxIxLSSBMVUtBCitTVUJPVEnEjEtJIE1JUkpBTkEKK1NVQk9UScSMS0kgTUlSS08KK1NVQk9UScSMS0kgTkFEQQorU1VCT1RJxIxLSSBORVNUT1IgRElQTCBJTkcKK1NVQk9UScSMS0kgUkFET1ZBTgorU1VCT1RJxIxLSSBTQVZBCitTVUJPVEnEjEtJIFNMT0JPREFOCitTVUJPVEnEjEtJIFNPRklKQQorU1VCT1RJxIxLSSBTVkVUSVNMQVYKK1NVQk9UScSMS0kgVkFTQQorU1VCT1RJxIxLSSBWRVJBCitTVUJPVEnEjEtJIFZMQURJTUlSCitTVUJPVEnEjEtJIFpPUkFOCitTVUJPVEnEhiDFvUFSS08KK1NVQk9UScSGIMSQT1LEkEUKK1NVQk9UScSGIMSQVVJPCitTVUJPVEnEhiBBTEVLU0FOREFSCitTVUJPVEnEhiBCUkFOSVNMQVYgRFIKK1NVQk9UScSGIERSQUdVVElOCitTVUJPVEnEhiBEVcWgQU4KK1NVQk9UScSGIERVxaBBTgorU1VCT1RJxIYgTEpJTEpBTkEKK1NVQk9UScSGIExKVUJJQ0EKK1NVQk9UScSGIE1BQ0EKK1NVQk9UScSGIE1BUktPCitTVUJPVEnEhiBNSUxJVk9KCitTVUJPVEnEhiBNSUxPxaAKK1NVQk9UScSGIE1JTE9SQUQKK1NVQk9UScSGIE1JT0RSQUcgRElQTCBJTkcKK1NVQk9UScSGIE5FTkFECitTVUJPVEnEhiBSQURJVk9KCitTVUJPVEnEhiBSQURPxaAKK1NVQk9UScSGIFJBSktPCitTVUJPVEnEhiBSQUpLTworU1VCT1RJxIYgUlXFvUEKK1NVQk9UScSGIFJVxb1BCitTVUJPVEnEhiBTQVZBCitTVUJPVEnEhiBTTE9CT0RBTgorU1VCT1RJxIYgU1RBTkEKK1NVQk9UScSGIFNWRVRPWkFSCitTVUJPVEnEhiBTVkVUT1pBUgorU1VCT1RJxIYgVE9NSVNMQVYKK1NVQk9UScSGIFZFUkEKK1NVQk9UScSGIFZMQURBTkEKK1NVQk9USU4gxb1JVktPCitTVUJPVElOIMW9SVZLTworU1VCT1RJTiDEkE9SxJBFCitTVUJPVElOIMSQT1LEkEUKK1NVQk9USU4gxJBVUkEKK1NVQk9USU4gQk9HREFOCitTVUJPVElOIEJPR0RBTgorU1VCT1RJTiBEQU5JQ0EKK1NVQk9USU4gRElNSVRSSUpFCitTVUJPVElOIERSQUdBTgorU1VCT1RJTiBEUkFHSU5KQQorU1VCT1RJTiBEVcWgQU5LQQorU1VCT1RJTiBJUklOQQorU1VCT1RJTiBJVkFOCitTVUJPVElOIEpFTEVOQQorU1VCT1RJTiBKRUxJQ0EKK1NVQk9USU4gTEpJTEpBTkEKK1NVQk9USU4gTEpVQklOS0EKK1NVQk9USU4gTUFSS08KK1NVQk9USU4gTUFSS08KK1NVQk9USU4gTUFSS08KK1NVQk9USU4gTUlMQU4KK1NVQk9USU4gTUlMQU4KK1NVQk9USU4gTUlMQU4KK1NVQk9USU4gTUlMT1JBRAorU1VCT1RJTiBORVZFTktBCitTVUJPVElOIFBBVkxFCitTVUJPVElOIFBFVEFSCitTVUJPVElOIFBSRURSQUcKK1NVQk9USU4gUkFET1NMQVYKK1NVQk9USU4gUkFET1ZBTgorU1VCT1RJTiBTQcWgQQorU1VCT1RJTiBTQVZBCitTVUJPVElOIFNBVkEKK1NVQk9USU4gU0FWQQorU1VCT1RJTiBTTE9CT0RBTgorU1VCT1RJTiBTTUlMSkEKK1NVQk9USU4gU1RBTktBCitTVUJPVElOIFNURVZBTgorU1VCT1RJTiBTVEVWQU4KK1NVQk9USU4gU1ZFVE9aQVIKK1NVQk9USU4gU1ZFVE9aQVIKK1NVQk9USU4gU1ZFVE9aQVIKK1NVQk9USU4gWk9SQQorU1VCVSDEkE9SxJBFCitTVUTFvVVLT1ZJxIYgTklLT0xBCitTVUTFvVVNIEJPxaBLTworU1VExb1VTSBCT0dEQU4KK1NVRMW9VU0gSUxJSkEKK1NVREFLIFZMQURJTUlSCitTVURBUiBEVcWgQU4KK1NVREFSIERVxaBBTgorU1VEQVIgR0FKQQorU1VEQVIgVk9KSU4KK1NVREFSRVZJxIYgQk/FoEtPCitTVURBUk9WIEJSQVRJU0xBVgorU1VEQVJTS0kgRFXFoEFOCitTVURJTUFDIERSQUdPCitTVURJTUFDIE1JTEFOCitTVUhBTkVLIEFEQU0KK1NVSEFOU0tJIFNURVZBTgorU1VIT1ZTS0kgSkFOTworU1VJxIYgQlJBTktPCitTVUnEhiBORU5BRAorU1VKRVIgTUlIQUpMTworU1VKScSGIEpFTEVOQQorU1VKScSGIE1JTEFOCitTVUpJxIYgU09GSUpBCitTVUpJxIYgVk9KSU4KK1NVSknEhiBaREVOS0EKK1NVS0HEjCBNSUhBSkxPCitTVUtOSkFKQSBEQU5JTE8KK1NVS05PVknEhiBNSVJLTworU1VLTk9WScSGIFJBRElWT0pFCitTVUtOT1ZJxIYgU0xBVktPCitTVUtPTEEgQU5UQUwKK1NVS09MQSBTVVpBTkEKK1NVS1VQIE1BUkdJVEEKK1NVTEVKTUFOT1YgTkFGSUpBCitTVUxJxIYgTUFSSUNBCitTVUxJxIYgVE9NSVNMQVYKK1NVTEpBIFJBTUFEQU4KK1NVTEpBR0nEhiBSRUZJSworU1VMT0NLSSBKT8WgS0EKK1NVTE9NQVIgQUdORVpBCitTVUxPTUFSIEVSxb1FQkVUCitTVUxPTUFSIElMT05BCitTVUxPTUFSIEpBTk/FoAorU1VMT01BUiBNQUdEQQorU1VNQU4gTUlMRQorU1VNQVJPViBKRUxJU0FWRVRBCitTVU1JTkEgREFOSUNBCitTVU1JTkpBIE1JxaBBCitTVU5BSktPIMSQVVJPCitTVU5BSktPIERVxaBBTgorU1VOREHEhiDEkFVSQQorU1VOREHEhiBUT0RPUgorU1VOScSGIE1JUkpBTkEKK1NVTktBIExKVUJJQ0EKK1NVTlRPSyBBTklDQQorU1VOWkVSIFZMQURJTUlSCitTVVBJxIYgQk9SScWgQQorU1VQScSGIERBUklOS0EKK1NVUEnEhiBNSUxBTgorU1VQScSGIE9MR0EKK1NVUsSGQSBKT1NJUAorU1VSxIZBIFRSQUpBTgorU1VSQSBNQVJHSVRBCitTVVJEVcSMQU4gRElNSVRSSUpFCitTVVJEVcSMS0kgxb1JVktPCitTVVJEVcSMS0kgRFJBR0FOCitTVVJEVcSMS0kgSUxJSkEKK1NVUkRVxIxLSSBJTElKQQorU1VSRFXEjEtJIElTSURPUgorU1VSRFXEjEtJIE1BUkEKK1NVUkRVxIxLSSBNSUxBTgorU1VSRFXEjEtJIE1JTE/FoAorU1VSRFXEjEtJIE1JTE/FoAorU1VSRFXEjEtJIE1JUkpBTkEKK1NVUkRVxIxLSSBORUJPSsWgQQorU1VSRFXEjEtJIFBBTlRFTElKQQorU1VSRFXEjEtJIFBFUlNBCitTVVJEVcSMS0kgU0lOScWgQQorU1VSRFXEjEtJIFNUQU5LQQorU1VSRFXEjEtJIFNURVZBTgorU1VSTEEgQk/FvU8KK1NVUkxBIERVxaBBTgorU1VSTEEgTFVLQQorU1VSTEEgUEVUQVIKK1NVUkxBIFBFVEFSCitTVVJMQSBTQVZBCitTVVJMQSBaT1JBTgorU1VSTEnEhiBNSUxFTktPCitTVVJPVkkgQU5UT04KK1NVUk9WSSBKT0xBTktBCitTVVJPVkkgTUlIQUwKK1NVUk9WSSBNSVJPU0xBVgorU1VST1ZJIFNURVZBTgorU1VST1ZJIFZMQURJTUlSCitTVVNFRFNLSSBPU0tBUgorU1VUQVJJxIYgVkVSQQorU1VUUklOIEJPUklTCitTVVRVUk9WScSGIEpBR0EKK1NVVFVST1ZJxIYgTUFSSUpBCitTVVRVUk9WScSGIE5FU1RPCitTVVRVUk9WScSGIFpWT05JTUlSCitTVVZBxIxBUiBJTElOS0EKK1NVVkHEjEFSIFRPRE9SCitTVVZBxIxBUiBWRVJBCitTVVZBxIxBUkVWIEJPUklTTEFWQQorU1VWQcSMQVJFViBKT1ZBTgorU1VWQcSMQVJFViBNQVJJSkEKK1NVVkHEjEFSRVYgTUlMRU5LTworU1VWQcSMQVJFViBNT01JUgorU1VWQcSMQVJFViBPQlJBRAorU1VWQcSMQVJFViBQQUpBCitTVVZBxIxBUkVWIFJBREVOS08KK1NVVkFKxIxFVknEhiBTVkVUSVNMQVYKK1NVVkFKQUMgxb1FTEpLTworU1VWQUpBQyBWQVNJTElKRQorU1VWQUpExb1JxIYgxb1JVktPCitTVVZBSkTFvUnEhiDEkE9SxJBFCitTVVZBSkTFvUnEhiDEkE9SxJBFCitTVVZBSkTFvUnEhiBESU1JVFJJSkUKK1NVVkFKRMW9ScSGIEdPSktPCitTVVZBSkTFvUnEhiBJTElKQQorU1VWQUpExb1JxIYgSVNBCitTVVZBSkTFvUnEhiBKT1ZBTgorU1VWQUpExb1JxIYgTEpJTEpBTkEKK1NVVkFKRMW9ScSGIE1BUklKQQorU1VWQUpExb1JxIYgTUFSSU5LTworU1VWQUpExb1JxIYgTUlMS0EKK1NVVkFKRMW9ScSGIE5FTkFECitTVVZBSkTFvUnEhiBORU5BRAorU1VWQUpExb1JxIYgT0JSQUQKK1NVVkFKRMW9ScSGIE9MR0lDQQorU1VWQUpExb1JxIYgUEVUQVIKK1NVVkFKRMW9ScSGIFJBRE1JTEEKK1NVVkFKRMW9ScSGIFZBU0EKK1NVVkFKRMW9ScSGIFZBU0EKK1NVVkFKRMW9SU4gSk9WQU4KK1NVVkFKRMW9SU4gSk9WQU4KK1NVVkFKRMW9SU4gTUxBREVOCitTVVZBSkTFvUlOIE5JS09MQQorU1VaScSGIE1BUkEKK1NVWknEhiBNSVJLTworU1VaScSGIE5JS09MQQorU1VaScSGIFNPRklKQQorU1ZBTElOQSBLQVRBCitTVkXEhk5KQUsgQlJBTktPCitTVkVUScSGIElWQU4gRFIKK1NWRVRJxIYgSVZBTgorU1ZFVEnEhiBMSkVSS0EKK1NWRVRMSUsgQURBTQorU1ZJTEFLT1MgTUFSSUpBCitTVklMQVIgQU7EkEVMS0EKK1NWSUxBUiBCUkFOSVNMQVYKK1NWSUxBUiBHT0pLTworU1ZJTEFSIExKVUJPTUlSCitTVklMQVIgTUlIQUpMTworU1ZJTEFSIE1JSEFKTE8KK1NWSUxBUiBOSUtPTEEKK1NWSUxBUiBQRVRBUgorU1ZJTEFSIFJBRE9NSVIKK1NWSUxBUiBSQVRLTworU1ZJTEFSIFNMQVZJQ0EKK1NWSUxBUiBTT0ZJSkEKK1NWSUxBUiBWRVJJQ0EKK1NWSUxBUiBWSU5LQQorU1ZJTEFSRVZJxIYgU1RFVk8KK1NWSUxBUktPVknEhiBTVEFOSU1JUiBESVBMIElORworU1ZJTEFST1YgTUlMQU4KK1NWSUxPS09TIEJPUklTTEFWCitTVklMT0tPUyBHQVZSQQorU1ZJTE9LT1MgS0FUSUNBCitTVklMT0tPUyBNSUxBTgorU1ZJTE9LT1MgU1RFVkFOCitTVklOSkFSRVZJxIYgU0xBVktPCitTVklSxIxFViDFvUlWS08KK1NWSVLEjEVWIEpPVkFOCitTVklSxIxFViBNSUxJVk9KCitTVklSxIxFViBNSUxPxaAKK1NWSVLEjEVWIFJBREEKK1NWSVLEjEVWScSGIEFMRUtTQU5EQVIgRFIgRE9DRU5UCitTVklSxIxFVknEhiBBTkEKK1NWSVLEjEVWScSGIEJPUklTTEFWCitTVklSxIxFVknEhiBEUkFHQU4KK1NWSVLEjEVWScSGIERSQUdBCitTVklSxIxFVknEhiBEUkVOS0EKK1NWSVLEjEVWScSGIEpPVkFOCitTVklSxIxFVknEhiBKT1ZBTgorU1ZJUsSMRVZJxIYgTEpVQk9NSVIKK1NWSVLEjEVWScSGIE1JTElWT0oKK1NWSVLEjEVWScSGIE1JTE9SQUQKK1NWSVLEjEVWScSGIE1JUkpBTkEKK1NWSVLEjEVWScSGIFBFVEFSCitTVklSxIxFVknEhiBSQURPVkFOCitTVklSxIxFVknEhiBTTEFWS08KK1NWSVLEjEVWScSGIFNURVZBTgorU1ZJUsSMRVZJxIYgVEVPRE9SQQorU1ZJUsSMRVZJxIYtVFJBSktPVknEhiBMSlVCSUNBCitTVklSxIxFVknEhiBWQVNBCitTVklSxIxFVknEhiBWVUtBTgorU1ZJUkFDIFJVxb1JQ0EKK1NWSVRJxIYgQk/FvU8KK1NWSVRMSUNBIERSQUdBTgorU1ZJVExJQ0EgRFXFoEFOCitTVklUTElDQSBHT0pLTyBESVBMIE9FQworU1ZJVExJQ0EgSkVMSUNBCitTVklUTElDQSBNSUxBTgorU1ZJVExJQ0EgUlXFvUlDQQorU1ZJVExJQ0EgU0lNTworU1ZJVExJQ0EgU1RBTktPCitTVklUTElDQSBUQU5BU0lKRSBESVBMIE9FQworU1ZJVExJQ0EgVkVSQQorU1ZPQk9EQSBTVEVWQU4KK1NWT1JDQU4gQlJBTklTTEFWCitTVk9SQ0FOIExKVUJPTUlSCitTVk9SQ0FOIE1JTE/FoAorU1ZPUkNBTiBNSUxPUkFECitTVk9SQ0FOIE1JTE9SQUQKK1NWT1JDQU4gUkFESVNMQVYKK1NWT1JDQU4gUkFET01JUgorU1ZPUkNBTiBTVEVWQU4KK1NWT1JDQU4gU1RPSkFOCitTVk9SQ0FOIFpPUklDQQorU1ZSRExBTiBNTEHEkEFOCitTVlJLT1RBIMW9SVZLTworU1ZSS09UQSBWVUtPTUFOCitTVlJaScSGIEdPUkRBTkEKK1RBxIxJIElTTUFJTEoKK1RBxIxJIFRFT0ZJTAorVEHFoCBLQVJPTEoKK1RBxaBFVlNLSSBNSUxLQQorVEHFoEVWU0tJIFNPRklKQQorVEHFoEkgTEpVQklDQQorVEHFoEkgUEVUQVIKK1RBxaBJIFJPWkFMSUpBCitUQcWgSSBTVEVWQU4KK1RBxaBJIFpPTFRBTgorVEHFoEnEhiBNSUxJVk9KCitUQcWgScSGIFZFUkEKK1RBxaBOQURJIE1JSEFMSgorVEFCxaAgTkFEQQorVEFCxaAgTk9IQURFRElOCitUQUJBxIxLSSBWTEFESU1JUgorVEFCQcSMS0kgWk9SSUNBCitUQUJBSyBEUkFHQU4KK1RBQkFLIElWQU4KK1RBQkFLIFZBU0EKK1RBQkFLIFZPSklTTEFWCitUQUJBS09WIERSQUdPTUlSCitUQUJBS09WIE1JTEVOS08KK1RBQkFLT1YgTUxBREVOCitUQUJBS09WScSGIMSQT1LEkEUgRElQTCBJTkcKK1RBQkFLT1ZJxIYgRFXFoEFOCitUQUJBS09WScSGIElTTUVUCitUQUJBS09WScSGIE1JUktPCitUQUJPUkkgxJBPUsSQRSBEUiBMRUtBUgorVEFDT1ZJxIYgVkVSQQorVEFEScSGIMW9SVZBTgorVEFEScSGIMSQT1LEkEUKK1RBREnEhiDEkE9SxJBFCitUQURJxIYgQUxFS1NBTkRBUgorVEFEScSGIEFOQQorVEFEScSGIEFSU0VOSUpFCitUQURJxIYgQk9TSUxKS0EKK1RBREnEhiBEQU5JTE8KK1RBREnEhiBEUkFHQU4KK1RBREnEhiBEUkFHQQorVEFEScSGIERVxaBBTgorVEFEScSGIERVxaBBTgorVEFEScSGIERVxaBBTgorVEFEScSGIEVESVRBCitUQURJxIYgR09SQU4KK1RBREnEhiBJTElKQQorVEFEScSGIElMSUpBCitUQURJxIYgSVZBTgorVEFEScSGIEpPVklDQQorVEFEScSGIEtSQVNJTUlSCitUQURJxIYgTEFaQVIKK1RBREnEhiBMQVpBUgorVEFEScSGIE1BUklKQQorVEFEScSGIE1BUklOS08KK1RBREnEhiBNQVJJTktPCitUQURJxIYgTUlKTworVEFEScSGIE1JTE/FoCBESVBMIElORworVEFEScSGIE1JTE/FoAorVEFEScSGIE1JTE9KRQorVEFEScSGIE1JTE9TQVYKK1RBREnEhiBNSVJLTworVEFEScSGIE1JUktPCitUQURJxIYgTUlSS08KK1RBREnEhiBOQURBCitUQURJxIYgTkVWRU5LQQorVEFEScSGIE9CUkVOCitUQURJxIYgUEVUQVIKK1RBREnEhiBSQURPSkUKK1RBREnEhiBSQVRLTworVEFEScSGIFNBxaBBCitUQURJxIYgU0FWQQorVEFEScSGIFNMT0JPREFOCitUQURJxIYgU09GSUpBCitUQURJxIYgU1BBU09KRQorVEFEScSGIFNUT0pBTgorVEFEScSGIFRBTktPU0FWQQorVEFEScSGIFVST8WgCitUQURJxIYgVkVTRUxJTgorVEFEScSGIFpPUkFOCitUQURJxIYgWk9SQQorVEFEScSGIFpPUktBCitUQURJSkFOT1ZJxIYgU0lMVkVTVEVSCitUQURJSklOIEdMScWgQQorVEFESUpJTiBNSUxJQ0EKK1RBRElKSU4gTUlMT8WgCitUQURJSklOIE1JTE9SQUQKK1RBRElOIERVxaBBTktBCitUQURJTiBEVcWgQU4KK1RBRElOIElWQU5LQQorVEFESU4gTUlMT1ZBTgorVEFESU4gWkxBVE9KRQorVEFISVJPVknEhiBFVklDQQorVEFISVJPVknEhiBNQVJJSkEKK1RBSElST1ZJxIYgTUlMQURJTktBCitUQUlST1ZJxIYgQUxFS1NBTkRBUgorVEFKSE1BTiBCRUxBCitUQUpITUFOIERFU0FOS0EKK1RBSkhNQU4gSk9TSVAKK1RBSktPViBBTsSQRUxLQQorVEFKS09WIEpPVkFOCitUQUpLT1YgTUlSSkFOQQorVEFKS09WIFJBRE9KS0EKK1RBSktPVknEhiBNSUxJQ0EKK1RBSlRJIFZFUk9OSUtBCitUQUtBxIwgxaBBTkRPUgorVEFLQcSMIMSQRVLEkEkKK1RBS0HEjCDEkE9SxJBFCitUQUtBxIwgxJBVTEEKK1RBS0HEjCDEkFVSQQorVEFLQcSMIMSQVVJBCitUQUtBxIwgQU7EkEVMS0EKK1RBS0HEjCBBTkRSSUpBCitUQUtBxIwgQU5UQUwKK1RBS0HEjCBBTlRBTAorVEFLQcSMIEFOVFVOCitUQUtBxIwgQU5UVU4KK1RBS0HEjCBBUlBBRAorVEFLQcSMIEVSTkUKK1RBS0HEjCBFVkdFTgorVEFLQcSMIEZFUkVOQworVEFLQcSMIEZSQU5KQQorVEFLQcSMIEnFoFRWQU4KK1RBS0HEjCBJxaBUVkFOCitUQUtBxIwgSkFLSU0KK1RBS0HEjCBKQU5PxaAKK1RBS0HEjCBKQU5PxaAKK1RBS0HEjCBKQU5PxaAKK1RBS0HEjCBKT8W9RUYgRElQTCBJTkcKK1RBS0HEjCBKT8W9RUYKK1RBS0HEjCBKT8W9RUYKK1RBS0HEjCBKT1NJUAorVEFLQcSMIEtBUk9MSgorVEFLQcSMIEtBVElDQQorVEFLQcSMIEtBVElDQQorVEFLQcSMIExBRElTTEFWCitUQUtBxIwgTEFKT8WgCitUQUtBxIwgTEFTTE8KK1RBS0HEjCBNQUdEQQorVEFLQcSMIE1BVEEKK1RBS0HEjCBNSUhBSkxPCitUQUtBxIwgTUlMQU4KK1RBS0HEjCBNSVJLTworVEFLQcSMIFJPxb1BCitUQUtBxIwgU0VOQQorVEFLQcSMIFNPRklKQQorVEFLQcSMIFNPRklKQQorVEFLQcSMIFNURVZBTgorVEFLQcSMIFRJQk9SCitUQUtBxIwgVElCT1IKK1RBS0HEjCBWSU5LTworVEFLQcSMIFZMQURJTUlSCitUQUtBxIwgVkxBRElNSVIKK1RBS0HEjCBaT0xUQU4KK1RBS0HEjEkgQVJQQUQgRElQTCBPRUMKK1RBS0HEjEkgQVJQQUQgRFIKK1RBS0HEjEkgR0FCT1IKK1RBS08gWlZPTklNSVIKK1RBS09WQUMgUkFESVNBVgorVEFLT1ZTS0kgQkxBR09KRQorVEFLT1ZTS0kgSk9WQU5LQQorVEFMRVNLSSBMSlVCSUNBCitUQUxFU0tJIFJJU1RBCitUQUxJxIYgRFJBR0FOCitUQUxJxIYgTUlUQVIKK1RBTElKQU4gUk/FvUEKK1RBTE8gxaBBTkRPUgorVEFMTyDFvUlWS0EKK1RBTE8gQUxFS1NBTkRBUgorVEFMTyBCUklHSVRBCitUQUxPIEZSQU5KQQorVEFMTyBKRUxFTkEKK1RBTE8gSkVMSVNBVkVUQQorVEFMTyBKT8W9RUYKK1RBTE8gSk9TSVAKK1RBTE8gSk9WQU4KK1RBTE8gVEVSRVpBCitUQUxPxaBJIMSQT1LEkEUKK1RBTE/FoEkgSVJFTkEKK1RBTE/FoEkgS0FST0xKCitUQUxPVknEhiBCRUhVRElOCitUQUxPVknEhiBIQUpSSUpBCitUQUxPVknEhiBTQURJSworVEFNQcWgIMSQRVLEkAorVEFNQcWgIMSQVVJBCitUQU1BxaAgSVJJTkVKCitUQU1BxaAtSk/FoEFOT1YgQUxFS1NBTkRSQQorVEFNQcWgIExKVUJPTUlSCitUQU1BxaAgTUFSSUpBCitUQU1BxaAgTUlIQUpMTworVEFNQcWgIFBBVkxFCitUQU1BxaAgVkxBRElNSVIKK1RBTUHFoCBWTEFESU1JUgorVEFNQcWgSSBBR0/FoFRPTgorVEFNQcWgSSBBTEFEQVIKK1RBTUHFoEkgVElCT1IKK1RBTUHFoEtPVknEhiBaT0xUQU4KK1RBTUJVUkHFoEVWIFZVS0HFoElOCitUQU1CVVJLT1ZTS0kgRFJBR0FOCitUQU1JTkTFvUnEhiDEjEVET01JUgorVEFNSU5Exb1JxIYgQU7EkEVMS08KK1RBTUlORMW9ScSGIEtPVklOS0EKK1RBTUlORMW9ScSGIFJJU1RBCitUQU1JTkTFvUlKQSBEQU5JTE8KK1RBTUlORMW9SUpBIE1JTE9SQUQKK1RBTUlORMW9SUpBIE1JUktPCitUQU1JTkTFvUlKQSBWTEFETworVEFOxIxJSyDFoEFORE9SCitUQU7EjElLIEFMQkVSVAorVEFOxIxJSyBBTEVLU0FOREFSCitUQU7EjElLIEVNSUwKK1RBTsSMSUsgSUJPTEpBCitUQU7EjElLIFJPWkEKK1RBTkFDS09WIE5PVkFLCitUQU5BQ0tPVknEhiBBQ08KK1RBTkFDS09WScSGIE1JSEFKTE8KK1RBTkFTScSGIEpPVkFOCitUQU5BU0nEhiBPTElWRVJBCitUQU5BU0nEhiBQUkVEUkFHCitUQU5BU0nEhiBSVcW9QQorVEFOQVNJxIYgU1BBU09KRQorVEFOQVNJxIYgVkFMRVJJSkEKK1RBTkFTScSGIFZBTEVSSUpBCitUQU5BU0lKRVZJxIYgxb1BUktPCitUQU5BU0lKRVZJxIYtRklMSVBPViBJVkFOS0EKK1RBTkFTSUpFVknEhiBNSUxBTgorVEFOQVNJSkVWScSGIFNJTknFoEEKK1RBTkFTSUpJTiBMVUtBCitUQU5BU0lKSU4gUEVUQVIKK1RBTkFTSUpJTiBWRVJBCitUQU5BU0lOIERBTklTTEFWQQorVEFOQVNJTiBKT1ZBTgorVEFOQVNJTiBMSlVCSUNBCitUQU5BU0lOIE5FU1RPUgorVEFOQVNJTiBTVEVWQU4KK1RBTkFTSU4gU1RFVkFOCitUQU5BU0lOIFNURVZBTgorVEFOQVNJTiBTVEVWQU4KK1RBTkFTS09WScSGIERSQUdBTgorVEFOQVNLT1ZJxIYgRFJBR09NSVIKK1RBTkFTS09WScSGIEdJTkEKK1RBTkFTS09WScSGIEdPUkRBTkEKK1RBTkFTS09WScSGIEdPU1BBVkEKK1RBTkFTS09WScSGIExBWkFSCitUQU5BU0tPVknEhiBNSUxFCitUQU5BU0tPVknEhiBOT1ZBSworVEFOQVNLT1ZJxIYgU1RBTklTTEFWCitUQU5BU0tPVknEhiBWSVRLTworVEFOQVNLT1ZJxIYgVklUT01JUgorVEFOQVNLT1ZJxIYgVlVLQU4KK1RBTkRJIEpVTElKQU5BCitUQU5FViBUUkFKS08KK1RBTkdMIElWQU4KK1RBTkdMIE9MR0EKK1RBTkpFVknEhiBEUkFHT0xKVUIKK1RBTkpFVknEhiBMSlVCT01JUgorVEFOSkdBIEdPUkFOCitUQU5KR0EgTEpVQk9NSVIKK1RBTkpHQSBNQVJJSkEKK1RBTkpHQSBSQUpLTworVEFOSkdBIFRBTkUKK1RBTktBIEnFoFRWQU4KK1RBTktPU0nEhiBCT0dEQU4KK1RBTktPU0nEhiBCT0pBTkEKK1RBTktPU0nEhiBCUkFOS08KK1RBTktPU0nEhiBKT1ZBTgorVEFOS09TScSGIEtVWk1BTgorVEFOS09TScSGIE1BUktPCitUQU5LT1NJxIYgTUlIQUpMTworVEFOS09TScSGIE1JTEFOCitUQU5LT1NJxIYgTUlMRU5BCitUQU5LT1NJxIYgTUlMSUNBCitUQU5LT1NJxIYgTUlMSUNBCitUQU5LT1NJxIYgTklLT0xBCitUQU5LT1NJxIYgUkFaSUpBCitUQU5LT1NJxIYgU1RFVkFOCitUQU5LT1ZJxIYgU0FMS08KK1RBTk9WScSGIEdBVlJJTE8gTVIKK1RBTk9WScSGIEpPVk8KK1RBTk9WScSGIFZMQURJTUlSCitUQU5UScSGIFNMQVZLTworVEFOVVJExb1JxIYgxb1JVk9KSU4KK1RBTlVSRMW9ScSGIEFMRUtTQU5EQVIKK1RBTlVSRMW9ScSGIERBUklOS0EKK1RBTlVSRMW9ScSGIEdPSktPCitUQU5VUkTFvUnEhiBKT1ZBTgorVEFOVVJExb1JxIYgTUlMSUNBCitUQU5VUkTFvUnEhiBNSVJLTworVEFOVVJExb1JxIYgU1JCT01JUgorVEFOVVJExb1JxIYgU1RBTklTTEFWQQorVEFOVVJExb1JxIYgU1ZFVE9aQVIKK1RBTlVSRMW9ScSGIFpPUkEKK1RBUEFJIFJVRE9MRgorVEFQQUogR0FCUklKRUwKK1RBUEFKIFNUQU1FTktBCitUQVBBTEFHQSBKT04KK1RBUEFMQUdBIFRPRE9SCitUQVBBVknEjEtJIMSMRURPTUlSCitUQVBBVknEjEtJIEJPUklWT0oKK1RBUEFWScSMS0kgRkVPRE9SCitUQVBBVknEjEtJIE1MQURFTgorVEFQQVZJxIxLSSBSQURPVkFOCitUQVBBVknEjEtJIFNURVZBTgorVEFQQVZJQ0EgxIxFRE9NSVIKK1RBUEFWSUNBIEFMRUtTQU5EUkEKK1RBUEFWSUNBIEFMRUtTQU5EUkEKK1RBUEFWSUNBIEJPUktBCitUQVBBVklDQSBCUkFOS0EKK1RBUEFWSUNBIERPQlJJTEEKK1RBUEFWSUNBIEpFTElDQQorVEFQQVZJQ0EgTEpVQk9NSVIKK1RBUEFWSUNBIE1JTE9SQUQKK1RBUEFWSUNBIE1JVEEKK1RBUEFWSUNBIFJBRE9TTEFWQQorVEFQQVZJQ0EgUkFKS08KK1RBUEFWSUNBIFNJTUEKK1RBUEFWSUNBIFNURVZBTgorVEFQQVZJQ0EgVElIT01JUgorVEFQQVZJQ0EgVkVSSUNBCitUQVBBVklDQSBWRVJJQ0EKK1RBUkFLxIxJSkEgxJBPUsSQRQorVEFSQUvEjElKQS1NSUxPVkFOT1ZJxIYgUkFUS0EKK1RBUkFORMW9QSBJVkFOCitUQVJBTkTFvUEgSVZBTgorVEFSQVNFTktPIEJSQVRJU0xBViBEUgorVEFSQlVLIE1JUktPCitUQVJCVUsgTklLT0xBCitUQVJFVlNLSSDEhkFNSUwKK1RBUkdVxaAgTUFUSUpBCitUQVJJIElMT05BCitUQVJKQU4gREXFvUUKK1RBUkpBTiBHQUJPUgorVEFSSkFOIElNUkUKK1RBUkpBTiBLQVJMTworVEFSSkFOIFRJQk9SCitUQVJLTyBKQU5PxaAKK1RBUkxBxIYgUEVSSUNBCitUQVJMRSBJTElKQQorVEFSTEUgSVZBTgorVEFSTk9DS0kgQU1BTElKQSBEUgorVEFSTk9DS0kgUEFMCitUQVNFViBCTEHFvU8KK1RBU0VWU0tJIElMTworVEFTRVZTS0kgSk9SREFOCitUQVNJxIYgxb1BS0xJTkEKK1RBU0nEhiDFvUlWT0pJTgorVEFTScSGIMSQT1LEkEUKK1RBU0nEhiBBTsSQRUxJSkEKK1RBU0nEhiBBTkEKK1RBU0nEhiBCTEFHT0pFIERJUEwgUFJBVk5JSworVEFTScSGIEJMQUdPSkUKK1RBU0nEhiBCT8W9SURBUiBNUiBQSAorVEFTScSGIEJPUklTTEFWCitUQVNJxIYgQk9SSVZPSkUKK1RBU0nEhiBCT1JJVk9KRQorVEFTScSGIERFU0FOS0EKK1RBU0nEhiBET0JSSVZPSgorVEFTScSGIElWQU4KK1RBU0nEhiBMSlVCT0RSQUcgRElQTCBJTkcKK1RBU0nEhiBNSUxPxaAgRFIgTEVLQVIKK1RBU0nEhiBNSUxPxaAgRFIKK1RBU0nEhiBNSUxPxaAgRFIKK1RBU0nEhiBNSUxPxaAKK1RBU0nEhiBNSVJPU0xBVgorVEFTScSGIE1JUk9TTEFWCitUQVNJxIYgTkVWRU5LQQorVEFTScSGIFJBREUKK1RBU0nEhiBTSU5JxaBBCitUQVNJxIYgU0xPQk9EQU4KK1RBU0nEhiBUUklGVU4KK1RBU0nEhiBVUk/FoAorVEFTScSGIFZFUkEKK1RBU0nEhiBWTEFEQU5LQQorVEFTScSGIFpPUkFOCitUQVNLT1ZJxIYgRFXFoEFOCitUQVNLT1ZJxIYgTUlST1NMQVYKK1RBU0tPVknEhiBQRVJBCitUQVNPVkFDIERPQlJJTEEKK1RBU09WQUMgTUlMT1JBRAorVEFUQUkgRU1JTElKQQorVEFUQUkgSVZBTgorVEFUQUkgS0FST0xKCitUQVRBSSBNQVJHSVQKK1RBVEFJIFRJQk9SCitUQVRBTE9WScSGIMW9SVZLTworVEFUQUxPVknEhiBCUkFOSU1JUgorVEFUQUxPVknEhiBEUkFHQU4KK1RBVEFMT1ZJxIYgSUxJSkEKK1RBVEFMT1ZJxIYgSUxJSkEKK1RBVEFMT1ZJxIYgTEFaTworVEFUQUxPVknEhiBNSUxBTgorVEFUQUxPVknEhiBNSUxBTgorVEFUQUxPVknEhiBQRVRBUgorVEFUQUxPVknEhiBQRVRBUgorVEFUQUxPVknEhiBQRVRBUgorVEFUQVIgRFXFoEFOCitUQVRBUiBEVcWgQU4KK1RBVEFSRVZJxIYgQkxBxb1BCitUQVRBUklOIFJVxb1JQ0EKK1RBVEFSU0tJIERVxaBBTgorVEFUQVJTS0kgTUlMT1JBRAorVEFUQVJTS0kgTkFEQQorVEFUQVJTS0kgU1ZFVElTTEFWCitUQVRBUlNLSSBWTEFERVRBCitUQVRJxIYgxb1BUktPCitUQVRJxIYgxJBVUsSQSU5LQQorVEFUScSGIEFMRUtTQU5EQVIKK1RBVEnEhiBBTEVLU0FOREFSCitUQVRJxIYgQU5LSUNBCitUQVRJxIYgQlJBTktPCitUQVRJxIYgREFOQQorVEFUScSGIERSQUdBTgorVEFUScSGIERSQUdPxaAKK1RBVEnEhiBEUkFHT0xKVUIKK1RBVEnEhiBEUkFHT01JUgorVEFUScSGIERVxaBBTgorVEFUScSGIEVNSUwgRFIKK1RBVEnEhiBFVklDQQorVEFUScSGIElMSUpBCitUQVRJxIYgSUxJSkEKK1RBVEnEhiBJTE9OS0EKK1RBVEnEhiBKRUxFTkEKK1RBVEnEhiBKT1ZBTiBESVBMIElORworVEFUScSGIEpPVkFOCitUQVRJxIYgTEFaQVIKK1RBVEnEhiBNQVJBCitUQVRJxIYgTUFSSUpBCitUQVRJxIYgTUFSSUpBCitUQVRJxIYgTUlMQU4KK1RBVEnEhiBNSUxBTgorVEFUScSGIE1JTElWT0oKK1RBVEnEhiBNSUxLQQorVEFUScSGIE1JTE/FoAorVEFUScSGIE1JTE9SQUQKK1RBVEnEhiBNSUxPU0FWCitUQVRJxIYgTUlMVVRJTiBESVBMIElORworVEFUScSGIE5FREVMSktPCitUQVRJxIYgUEFKQQorVEFUScSGIFBFUlNJREEKK1RBVEnEhiBQRVRBUgorVEFUScSGIFJBRE1JTEEKK1RBVEnEhiBSQURPU0xBVgorVEFUScSGIFNMQVZLTworVEFUScSGIFNMT0JPREFOCitUQVRJxIYgU1JCSVNMQVYKK1RBVEnEhiBTVEVWQU4KK1RBVEnEhiBUT01JU0xBVgorVEFUScSGIFpMQVRJQ0EKK1RBVE9NSVIgTUFSS08KK1RBVE9NSVJPViBKT1ZBTgorVEFUT01JUk9WIE1BUklKQQorVEFUT01JUk9WIE1BUklKQQorVEFUT01JUk9WIFJBRElWT0oKK1RBVE9NSVJPViBaT1JBTgorVEFUT01JUk9WScSGIEJSQU5LQQorVEFVxaBBTiBNQVJLTworVEFVxaBBTk9WScSGIElMSUpBCitUQVXFoEFOT1ZJxIYgUkFERQorVEFVQk5FUiBLQVRJQ0EKK1RFxaBBTk9WIE1JTEFOCitURcWgQU5PVknEhiDEjEVETworVEXFoEFOT1ZJxIYgxb1FTEpLTworVEXFoEFOT1ZJxIYgxJBPS08KK1RFxaBBTk9WScSGIENWSUpFVEEKK1RFxaBBTk9WScSGIERSQUdBTgorVEXFoEFOT1ZJxIYgRFJBR0FOCitURcWgQU5PVknEhiBEVcWgQU4KK1RFxaBBTk9WScSGIEpFTEEKK1RFxaBBTk9WScSGIExBWkFSCitURcWgQU5PVknEhiBORU5BRAorVEXFoEFOT1ZJxIYgTkVWRU5LQQorVEXFoEFOT1ZJxIYgUEVUQVIKK1RFxaBBTk9WScSGIFJBxaBLTworVEXFoEFOT1ZJxIYgUkFKS08KK1RFxaBBTk9WScSGIFRPTUEKK1RFxaBBTk9WScSGIFZPSkEKK1RFxaBBTk9WScSGIFpPUkFOCitURcWgRU5KSSBFRFVBUkQKK1RFxaBJxIYgxJBPUsSQRQorVEXFoEnEhiBBTEVLU0FOREFSCitURcWgScSGIERBUklOS0EKK1RFxaBJxIYgRFJBR0FOCitURcWgScSGIERVxaBBTgorVEXFoEnEhiBFUsW9RUJFVAorVEXFoEnEhiBHUkFESU1JUgorVEXFoEnEhiBJTElKQQorVEXFoEnEhiBKVUxJSkFOQQorVEXFoEnEhiBMSlVCT01JUgorVEXFoEnEhiBMVUtBCitURcWgScSGIE1BUklKQQorVEXFoEnEhiBNSUxFTktPCitURcWgScSGIE1JTEUKK1RFxaBJxIYgTUlMRQorVEXFoEnEhiBNSUxJQ0EKK1RFxaBJxIYgTUlMT1JBRAorVEXFoEnEhiBNSVJLTworVEXFoEnEhiBQRVJTQQorVEXFoEnEhiBSQURJU0xBVgorVEXFoEnEhiBTTEFWS0EKK1RFxaBJxIYgU0xBVk9MSlVCIERJUEwgSU5HCitURcWgScSGIFNPRklKQQorVEXFoEnEhiBTVEFOSVNMQVZBCitURcWgScSGIFNURVZBTiBEUgorVEXFoEnEhiBTVkVUTEFOQQorVEXFoEnEhiBaRFJBVktPCitURcWgSU4gSkFTTUlOS0EKK1RFxaBJTiBMSlVCSU5LQQorVEXFoElOIE1JTE/FoAorVEXFoElOIFNURVZLQQorVEXFoElOIFZFU05BCitURcWgT1ZJxIYgRFJBR0lDQQorVEXFoE9WScSGIExKVUJPCitURcWgT1ZJxIYgTUlMRU5LTworVEXFoE9WScSGIE1JTE9NSVIKK1RFxaBPVknEhiBNSUxPUkFECitURcWgT1ZJxIYgVkFTSUxJSkUKK1RFxb1MQSBBTkRSSUpBCitURURJxIYgxb1JVktPCitURURJxIYgQlJBTklTTEFWCitURURJxIYgTUlMT1ZBTgorVEVEScSGIE5FVkVOS0EKK1RFR0VMVElKQSBCT0dEQU4KK1RFR0VMVElKQSBEVcWgQU4KK1RFR0VMVElKQSBEVcWgQU4KK1RFR0VMVElKQSBJTE9OS0EKK1RFR0VMVElKQSBNQUdEQUxFTkEKK1RFR0VMVElKQSBNSUxBTgorVEVHRUxUSUpBIE1JVFJBCitURUdFTFRJSkEgU1RBTktPCitURUdFTFRJSkEgVkxBSktPCitURUdMQcWgIEFOQQorVEVHTEHFoCBMSURJSkEKK1RFR0xBxaAgTkFEQQorVEVHTEHFoEkgScWgVFZBTgorVEVHTEHFoEkgSk/FvUVGCitURUpJxIYgQlJBTktPCitURUpJxIYtS09WQcSMIE1BUklKQQorVEVKScSGIExBWkFSCitURUpJxIYgTUlMSUpBCitURUtJxIYgQk9STworVEVLScSGIE1JTEFOCitURUtJxIYgTUlMS0EKK1RFS0nEhiBNSU9EUkFHCitURUtJxIYgTUlSS08KK1RFS0nEhiBTTEFWSUNBCitURUtJxIYgU0xBVktPCitURUwgRkVSRU5DCitURUwgSkFOT8WgCitURUwgSkVMSVNBVkVUQQorVEVMIEpFTkUKK1RFTCBQRVRBUgorVEVMIFZJTE1PxaAKK1RFTEFST1YgQU5LQQorVEVMQVJPViBKT1ZBTgorVEVMQVJPViBNSUxPxaAKK1RFTEFST1YgTkFEQQorVEVMQVJPViBQRVJBCitURUxBUk9WIFNJTUEKK1RFTEFST1YgU0lOScWgQQorVEVMQVJPViBTSU5JxaBBCitURUxBUk9WIFNNSUxKQU5BCitURUxBUk9WIFZPSklOCitURUxBUk9WIFpPUkEKK1RFTEFST1ZJxIYgQk9SSVMKK1RFTEFST1ZJxIYgRElNSVRSSUpFCitURUxBUk9WScSGIElWQU5BCitURUxBUk9WScSGIElWQU4KK1RFTEFST1ZJxIYgUkFUT01JUgorVEVMQVJPVknEhiBTTE9CT0RBTgorVEVMQVJPVknEhiBTVEVWQU4KK1RFTEFST1ZJxIYgU1RKRVBBTgorVEVMRUtJIMWgQU5ET1IKK1RFTEVLSSBFUklLQQorVEVMRUtJIFNURVZBTgorVEVMRUtJIFZFUkEKK1RFTUVSSU5BQyBEQVJBCitURU1FUklOQUMgTUlMRVZBCitURU1FUklOQUMgTUlPRFJBRworVEVNRVJJTlNLSSBKRUxJQ0EKK1RFTUVSSU5TS0kgSk9WQU4KK1RFTUVSSU5TS0kgTkFEQQorVEVNVU5PVknEhiBNQVJJSkEKK1RFTkNFIEFMQklOCitURU5KSSDEkE9SxJBFCitURU5KSSBKT1NJUAorVEVOSkkgSk9TSVAKK1RFTkpJIEpPU0lQCitURU5KSSBLU0VOSUpBCitURU5KSSBNQVJJSkEKK1RFTkpPVknEhiBET0JSSVZPSkUKK1RFTkpPVknEhiBNSUxPxaAKK1RFTkpPVknEhiBSQURJVk9KRQorVEVPRE9ST1ZJxIYgQU5EUkVKQQorVEVPRE9ST1ZJxIYgRE9CUklMQQorVEVPRE9ST1ZJxIYgRFXFoEFOCitURU9ET1JPVknEhiBKT1ZBTgorVEVPRE9ST1ZJxIYgSk9WQU4KK1RFT0RPUk9WScSGIExKVUJPCitURU9ET1JPVknEhiBNQVJBCitURU9ET1JPVknEhiBNSUxBTgorVEVPRE9ST1ZJxIYgTkFEQQorVEVPRE9ST1ZJxIYgUEFKQQorVEVPRE9ST1ZJxIYgUEVSQQorVEVPRE9ST1ZJxIYgUEVSQQorVEVPRE9ST1ZJxIYgUkFUSU1JUgorVEVPRE9ST1ZJxIYgU0FWQQorVEVPRE9ST1ZJxIYgU0lNQQorVEVPRE9ST1ZJxIYgU0xPQk9EQU4KK1RFT0RPUk9WScSGIFZJVE9NSVIKK1RFT0RPUk9WScSGIFZMQURJU0xBViBESVBMIElORworVEVPRE9ST1ZJxIYgVkxBRElTTEFWQQorVEVPRE9TScSGIE1JUkpBTkEKK1RFT0RPU0lKRVZJxIYgQlJBTklTTEFWCitURU9ET1NJSkVWScSGIE1JTElDQQorVEVPRE9TSUpFVknEhiBaT1JBTgorVEVPRkFOT1YgxJBVUsSQSUNBCitURU9GQU5PViBCT8WgS08KK1RFT0ZBTk9WIERPQlJJTktBCitURU9GQU5PViBEVcWgQU4KK1RFT0ZBTk9WIERVxaBLTworVEVPRkFOT1YgTUFSSU5LTworVEVPRkFOT1YgTUlMQU4KK1RFT0ZBTk9WIE1JTElWT0oKK1RFT0ZBTk9WIE1JTE/FoAorVEVPRkFOT1YgTUlMT8WgCitURU9GQU5PViBPTElWRVJBCitURU9GQU5PViBaT1JBCitURU9GQU5PVknEhiDFoFRFRkFOSUpBCitURU9GQU5PVknEhiBBTEVLU0FOREFSCitURU9GQU5PVknEhiBBTEVLU0FOREFSCitURU9GQU5PVknEhiBBTkEKK1RFT0ZBTk9WScSGIEFSQU7EkEVMCitURU9GQU5PVknEhiBCT0dEQU4KK1RFT0ZBTk9WScSGIEJPR0RBTgorVEVPRkFOT1ZJxIYgREFOSUxPCitURU9GQU5PVknEhiBET05LQQorVEVPRkFOT1ZJxIYgRFXFoEFOCitURU9GQU5PVknEhiBNQVJLTyBEUiBWRVRFUklORQorVEVPRkFOT1ZJxIYgTUlMRVZBCitURU9GQU5PVknEhiBNSUxJQ0EKK1RFT0ZBTk9WScSGIFRBRElKQQorVEVPRklMT1ZJxIYgxJBVUsSQSUNBCitURU9GSUxPVknEhiBBTEVLU0FOREFSCitURU9GSUxPVknEhiBCUkFOS0EKK1RFT0ZJTE9WScSGIEdPUkFOCitURU9GSUxPVknEhiBNT03EjElMTworVEVPRklMT1ZJxIYgU0FWTworVEVPVkFOT1ZJxIYgTkVWRU5LQQorVEVQxaBBIE5FQk9KxaBBCitURVDFoEEgU0lOScWgQQorVEVQxaBJxIYgSk9WSUNBCitURVDFoEnEhiBNSU9EUkFHCitURVDFoEnEhiBSQURFCitURVBBxIxFVknEhiBBTkRSRUpBCitURVBBVsSMRVZJxIYgxb1BTktBCitURVBBVsSMRVZJxIYgQk/FvUlEQVIKK1RFUEFWxIxFVknEhiBHT0pLTworVEVQQVbEjEVWScSGIE1JTE9WQU4KK1RFUEFWxIxFVknEhiBQRVRBUiBEUgorVEVQQVbEjEVWScSGIFJBVEtPCitURVBBVsSMRVZJxIYgU1RSQUhJTkpBCitURVBJxIYgRlJBTkNJS0EKK1RFUEnEhiBHT1JBTgorVEVQScSGIEpPVkFOCitURVBJxIYgTUlMQU4KK1RFUEnEhiBNSUxPxaAKK1RFUEnEhiBNSUxPVkFOCitURVBJxIYgTkVERUxKS08KK1RFUEnEhiBPQlJFTktPCitURVBJxIYgUkFET1ZBTgorVEVQScSGIFJBSktPCitURVBJxIYgU05Fxb1BTkEKK1RFUEnEhiBWSURBCitURVBJxIYgWk9SQU4KK1RFUkXEjEVLIEFOxJBFTEtBCitURVJFxIxJxIYgTEFKT8WgCitURVJFxIxJSyBQQUwKK1RFUkVDS0kgScWgVFZBTgorVEVSRUsgxJBVTEEKK1RFUkVLIEFORFJJSkEKK1RFUkVLIEZFUkVOQworVEVSRUsgScWgVFZBTgorVEVSRUsgSU1SRSBESVBMIElORworVEVSRUsgSVJFTkEKK1RFUkVLIEpBTk/FoAorVEVSRUsgS0FUQUxJTgorVEVSRUsgTEFTTE8KK1RFUkVLIExKVURFVklUIERSIElORworVEVSRUsgT0xHQQorVEVSRUsgVElCT1IKK1RFUkVaSUpBIEJPU0lMSktBCitURVJIRcWgIMWgQU5ET1IKK1RFUkpFSyBBTEVLU0FOREFSCitURVJKRUstS09WQcSMIEtBUkxPCitURVJKRUsgTUlIQUpMTworVEVSSkVLIFZJS1RPUklKQQorVEVSS0VMSiBBTkEKK1RFUkxKVUsgSVZBTgorVEVSTk9WQUMgScWgVFZBTgorVEVSWknEhiDFvUlWS08KK1RFUlpJxIYgxJBPUsSQRQorVEVSWknEhiDEkFVSTworVEVSWknEhiBCRUxBCitURVJaScSGIEJJU0VSS0EKK1RFUlpJxIYgQk9HT0xKVUIKK1RFUlpJxIYgQlJBTktBCitURVJaScSGIERSQUdBTgorVEVSWknEhiBEUkFHT01JUgorVEVSWknEhiBEVcWgQU4KK1RFUlpJxIYgRFXFoEFOCitURVJaScSGIEZSQU5DQQorVEVSWknEhiBKRVZSRU0KK1RFUlpJxIYgSk9WQU4KK1RFUlpJxIYgTUlMQU4KK1RFUlpJxIYgTUlMQU4KK1RFUlpJxIYgTUlMRU5BCitURVJaScSGIE1JTEVOS08KK1RFUlpJxIYgTUlMSUNBCitURVJaScSGIE1JT0RSQUcKK1RFUlpJxIYgTUlPRFJBRworVEVSWknEhiBOSUtPTEEKK1RFUlpJxIYgTkpFR09TQVZBCitURVJaScSGIFBBVkxFCitURVJaScSGIFBFUktBCitURVJaScSGIFBFVEFSIERSCitURVJaScSGIFBFVEFSCitURVJaScSGIFBFVEFSCitURVJaScSGIFJFTEpBCitURVJaScSGIFNBVkEKK1RFUlpJxIYgU0xBVktPCitURVJaScSGIFNMQVZLTworVEVSWknEhiBTTEFWTkEKK1RFUlpJxIYgU0xPQk9EQU4KK1RFUlpJxIYgU1JCSVNMQVYKK1RFUlpJxIYgU1RBTktBCitURVJaScSGIFRFT0RPUgorVEVSWknEhiBURVJFWkEKK1RFUlpJxIYgVFJJRlVOCitURVJaScSGIFZFUkEKK1RFUlpJxIYgVkxBREFOCitURVJaScSGIFZPSklTTEFWCitURVJaSUpBIE1JVEFSCitURVJaSU4gQlJBTklTTEFWCitURVJaSU4gQlJBTktPCitURVJaSU4gRFJBR09TTEFWCitURVJaSU4gRFXFoEFOCitURVJaSU4gSk9WQU5LQQorVEVSWklOIEpPVkFOS0EKK1RFUlpJTiBMSlVCSUNBCitURVJaSU4gTUlMQU4KK1RFUlpJTiBNSUxJTkEKK1RFUlpJTiBNSVJKQU5BCitURVJaSU4gTUlST1NMQVZBCitURVJaSU4gTUlST1NMQVZBCitURVJaSU4gTUlUQQorVEVSWklOIE5FVkVOS0EKK1RFUlpJTiBSQURJVk9KCitURVJaSU4gUkFETUlMQQorVEVSWklOIFJJU1RBCitURVJaSU4gU0xPQk9EQU4KK1RFUlpJTiBTVEFOS08KK1RFUlpJTiBUT8WgQQorVEVSWklOIFZBU0EKK1RFUlpJTiBWRUxJTUlSCitURVJaSU4gVkVMSktPCitURVJaSU4gVkVSSUNBCitURVJaSU4gVkVTRUxJTgorVEVSWklOIFZPSklTTEFWCitURVNMQSDFoFBJUk8KK1RFU0xBIEJSQU5LTworVEVTTEEgRFJBR0FOCitURVNMQSBNSVJBCitURVNMScSGIMSQT1LEkEUKK1RFU0xJxIYgTUFLU0lNCitURVNMScSGIE1BUktPCitURVNMScSGIFZMQURJTUlSCitURVNUSU4gTUFSSUpBCitUScWgQU5PVknEhiBNSUxJVk9KCitUScWgScSGIE1JTEVOQQorVEnFoE1BIMSMRURPTUlSCitUScWgTUEgxb1FTEpLTworVEnFoE1BIMSQVVJJQ0EKK1RJxaBNQSBBTkRSRUoKK1RJxaBNQSBCUkFOS08KK1RJxaBNQSBEVcWgQU4KK1RJxaBNQSBEVcWgQU4KK1RJxaBNQSBJTElKQQorVEnFoE1BIEpPVkFOCitUScWgTUEgTEFaQVIKK1RJxaBNQSBMSklMSkFOQQorVEnFoE1BIE1BUklKQQorVEnFoE1BIE1BUlRBCitUScWgTUEtTUlMT8WgRVZTS0kgTkFUQcWgQQorVEnFoE1BIE1JTE/FoAorVEnFoE1BIE1JUktPCitUScWgTUEgTU9NSVIKK1RJxaBNQSBOSUtPTEEKK1RJxaBNQSBTSU5JxaBBCitUScWgTUEgU01JTEpBCitUScWgTUEgU1RFVkFOCitUScWgTUEgU1ZFVE9aQVIKK1RJxaBNQSBWT0pJTktBCitUScWgTUEgVk9KSU4KK1RJxaBNQSBaT1JBTgorVElCQUkgScWgVFZBTgorVElDIEFOQU1BUklKQQorVElDQSBCT8W9TworVElDQSBDVkVUQQorVElDQSBETUlUQVIKK1RJQ0EgRFJBR0FOCitUSUNBIEpPVkFOCitUSUNBIE1JTE/FoAorVElDQSBORURFTEpLTworVElHQU5KIEFOVEUKK1RJSEkgSk9TSVAKK1RJSE9NSVJPVknEhiBNSUxBTgorVElIT01JUk9WScSGIFZFTEpLTworVElIVklOU0tJIFZMQURBTgorVElIVklOU0tJIFZMQURJTUlSIERJUEwgSU5HCitUSUpBTknEhiBNSUxPxaAKK1RJSkFOScSGIFNNSUxKQQorVElKQU5JxIYgWk9SQU4KK1RJS1ZFxaBBIE5BSUxBCitUSUtWScSGIEJPxaBLTworVElLVknEhiBNSVJPU0xBVgorVElLVklDS0kgSFJWT0pFCitUSUtWSUNLSSBNQVJJSkFOQQorVElMIEVEVklOIERSCitUSU1BUkFDIEJSQU5LTworVElNQVJBQyBTVE9KQU4KK1RJTUFST1YgxJBPUsSQRQorVElNQVJPViBTVEVWQU4KK1RJTUFST1YgVkFTQQorVElNQVJPViBWRVJBCitUSU1JTEnEhiBESU1JVFJJSkUKK1RJTUtPIElSSU5FSgorVElNS08gTEpVQk9WCitUSU1LTyBNRUxBTklKQQorVElNS08gTkVTVE9SCitUSU1LTyBWRVJBCitUSU1LTyBWTEFESU1JUgorVElNT1RJxIYgxJBPUsSQRQorVElNT1RJxIYgU1RBTkEKK1RJTU9UScSGIFVST8WgCitUSU1PVElKRVZJxIYgQU5JQ0EKK1RJTU9USUpFVknEhiBCT8W9SURBUgorVElNT1RJSkVWScSGIERJTUlUUklKRQorVElNT1RJSkVWScSGIEpFVlJFTQorVElNT1RJSkVWScSGLUtPUFJJVklDQSBNQUpBCitUSU1PVElKRVZJxIYgTUlST1NMQVYKK1RJTU9USUpFVknEhiBPTEdBCitUSU1PVElKRVZJxIYgUExFTUVOS0EKK1RJTU9USUpFVknEhiBSQURPU0xBVgorVElOS09WScSGIFRPTUlTTEFWCitUSU5URVIgSEVEVklHQQorVElOVE9SIMSQVVJBCitUSU5UT1IgRFXFoEFOCitUSU5UT1IgTUFSS08KK1RJTlRPUiBNSUxLQQorVElOVE9SIE1JT0RSQUcKK1RJTlRPUiBNSVJBCitUSU5UT1ItUkFET01JUiBTVE9KQQorVElOVE9SIFNURVZBTgorVElOVVMgQkVSTkFERVRBCitUSU5VUyBNQVJUQQorVElPRE9ST1ZJxIYgTEpJTEpBTkEKK1RJT0RPUk9WScSGIFJBRE9WQU4KK1RJUMWgSU4gQk9SSVNMQVYKK1RJUFVSQSBKT1NJUAorVElQVVJBIEpPU0lQCitUSVBVUkEgTEFESVNMQVYKK1RJUFVSQSBMQVNMTworVElSIEnFoFRWQU4KK1RJUiBNSUxLQQorVElSIFBFVEFSCitUSVJJIEFOVEFMCitUSVJJTkRBIMSQVVJBCitUSVJJTkdFUiBFTFpBCitUSVJLQUpMQSBBTkEKK1RJUktBSkxBIFNMQVZPTUlSCitUSVJOQU5JxIYgQklTRVJLQQorVElTSU5PVknEhiBKRUxJU0FWRVRBCitUSVNUQSBFUsW9RUJFVAorVElTVEEgSkFOT8WgCitUSVRFTEFDIMSQT1LEkEUKK1RJVEVMQUMgxJBPUsSQRQorVElURUxBQyBKRUxFTkEKK1RJVEVMQUMgSk9WQU4KK1RJVEVMQUMgTUlMSU5LQQorVElURUxBQyBOQURBCitUSVRFTEFDIFNURVZBTgorVElURUxBQyBaT1JJQ0EKK1RJVE9WIEFMRUtTQU5EQVIKK1RJVE9WIEFOQQorVElUT1YgQU5JQ0EKK1RJVE9WIEVWR0VOSUpFCitUSVRPViBQQVZMRQorVElUT1YgVE9NSVNMQVYKK1RLQUzEjEVDIEpPVkFOCitUS0FMRUMgUEFWQU8KK1RPxaBJxIYgxb1BUktPCitUT8WgScSGIEJPUklTTEFWQQorVE/FoEnEhiBCT1JJU0xBVgorVE/FoEnEhiBCUkFUSVNMQVYKK1RPxaBJxIYgQlJBVElTTEFWCitUT8WgScSGIERBTklDQQorVE/FoEnEhiBEUkFHQU4KK1RPxaBJxIYgRFJBR0FOCitUT8WgScSGIERVxaBBTgorVE/FoEnEhiBEVcWgQU4KK1RPxaBJxIYgRFXFoEFOCitUT8WgScSGIEVSxb1FQkVUCitUT8WgScSGIEVWSUNBCitUT8WgScSGIEdPSktPCitUT8WgScSGIEpFTEEKK1RPxaBJxIYgSk9WQU4KK1RPxaBJxIYgSk9WSUNBCitUT8WgScSGIEtSU1RBTgorVE/FoEnEhiBLUlNUT01JUgorVE/FoEnEhiBMSlVCSUNBCitUT8WgScSGIExKVUJJTktPCitUT8WgScSGIE1JSEFKTE8KK1RPxaBJxIYgTUlMQU4KK1RPxaBJxIYgTUlMQU4KK1RPxaBJxIYgTUlMQU4KK1RPxaBJxIYgTUlMRVZBCitUT8WgScSGIE1JTEUKK1RPxaBJxIYgTUlMT8WgCitUT8WgScSGIE1JTE9SQUQKK1RPxaBJxIYgTUlMVVRJTgorVE/FoEnEhiBNSU9EUkFHCitUT8WgScSGIE1JUktPCitUT8WgScSGIE1JVEFSCitUT8WgScSGIE5FREVMSktPCitUT8WgScSGIE5FVkVOS0EKK1RPxaBJxIYgTklLT0xBCitUT8WgScSGIE5JS08KK1RPxaBJxIYgTk9WQUsKK1RPxaBJxIYgT0JSQUQKK1RPxaBJxIYgT1NUT0pBCitUT8WgScSGIFBFUk8KK1RPxaBJxIYgUEVUQVIKK1RPxaBJxIYgUkFERQorVE/FoEnEhiBSQURPTUlSCitUT8WgScSGIFJBRE9NSVIKK1RPxaBJxIYgUkFUS08KK1RPxaBJxIYgU0FWQQorVE/FoEnEhiBTTEFWS0EKK1RPxaBJxIYgU09GSUpBCitUT8WgScSGIFNUQU5JTUlSCitUT8WgScSGIFNURVZBTgorVE/FoEnEhiBTVEVWQU4KK1RPxaBJxIYgU1ZFVElTTEFWCitUT8WgScSGIFNWRVRMQU5BCitUT8WgScSGIFZFTElCT1IKK1RPxaBJxIYgVkVSQQorVE/FoEnEhiBWSUQKK1RPxaBJxIYgVkxBRE8KK1RPxaBJxIYgVkxBU1RJTUlSCitUT8WgScSGIFZPSklOCitUT8WgSU5PVknEhiBMVUtBCitUT8WgS09WIEhSQU5JU0xBVgorVE/FoEtPViBQRVJBCitUT8WgS09WScSGIFZVxIxFVEEKK1RPxaBLT1ZJxIYgVlXEjEnEhgorVE/FoEtPVknEhiBaRFJBVktPCitUT8WgT1ZJxIYgTUlMQU5LQQorVE/FoE9WScSGIE1JTE9KRQorVE/EkEVSIEtPU1RBCitUT0JExb1JxIYtQlJBxaBBTkFDIE1JUk9TTEFWQQorVE9CRMW9ScSGIEtBVEFSSU5BCitUT0JExb1JxIYgTUlMRU5LTworVE9CRMW9ScSGIFNURVZBTgorVE9CSSBNQVJJSkEKK1RPQkkgTUlST1NMQVYKK1RPQklBxaAgVklMTU/FoAorVE9CT0xLQSBBTkEKK1RPQk9MS0EgREFOSUVMCitUT0JPTEtBIEVSSUtBCitUT0JPTEtBIEnFoFRWQU4KK1RPQk9MS0EgSUxPTkEKK1RPREnEhiBCT0dEQU4KK1RPREnEhiBCT1JJU0xBVgorVE9EScSGIEJPUklTTEFWCitUT0RJxIYgQlJBTklTTEFWCitUT0RJxIYgREFOSUpFTEEKK1RPREnEhiBHT0pLTyBESVBMIElORworVE9EScSGIE1BUklKQU5BCitUT0RJxIYgTUlMQU5LTworVE9EScSGIE1JTEFOCitUT0RJxIYgTUlMRQorVE9EScSGIE1JTE/FoCBESVBMIElORworVE9EScSGIE1JTE/FoAorVE9EScSGIE1JUk9TTEFWCitUT0RJxIYgTkXEkE8KK1RPREnEhiBSQURJVk9KCitUT0RJxIYgUkFKS08KK1RPREnEhiBSQVRPTUlSCitUT0RJxIYgU1RBTklTQVZBCitUT0RJxIYgU1RBTktPCitUT0RJxIYgVE9NSVNMQVYKK1RPREnEhiBWRUxJTUlSCitUT0RJxIYgVkxBRE8KK1RPRE/FoEtPVknEhiBCT0dEQU4KK1RPRE/FoEtPVknEhiBOQURBCitUT0RPxaBLT1ZJxIYgTkVNQU5KQQorVE9ET1LEjEVWScSGIERSQUdVVElOCitUT0RPUsSMRVZJxIYgT1NUT0pBCitUT0RPUsSMRVZJxIYgUEVSTworVE9ET1LEjEVWScSGIFNWRVRMQU5BCitUT0RPUsSMRVZJxIYgVkFTSUxJSkUKK1RPRE9SxIxFVknEhiBWQVNPCitUT0RPUsSMRVZJxIYgVk9KSU4KK1RPRE9SQU4gVFJBSkFOCitUT0RPUknEhiDEjEVET01JUgorVE9ET1JJxIYgQlJBTktPCitUT0RPUknEhiBEUkFHQU4KK1RPRE9SScSGIEdPSktPCitUT0RPUknEhiBJTElKQQorVE9ET1JJxIYgSkVMRU5BCitUT0RPUknEhiBKT1ZBTktBCitUT0RPUknEhiBKT1ZBTgorVE9ET1JJxIYgTEpVQkEKK1RPRE9SScSGIExKVUJJVk9KRQorVE9ET1JJxIYgTUFSSUpBCitUT0RPUknEhiBNSUxPxaAKK1RPRE9SScSGIE1JTE/FoAorVE9ET1JJxIYgTkVERUxKS08KK1RPRE9SScSGIE5JS09MQQorVE9ET1JJxIYgTklLTworVE9ET1JJxIYgUkFETUlMQQorVE9ET1JJxIYgU0VMSU1JUgorVE9ET1JJxIYgVFJJVlVOQQorVE9ET1JPViDEkFVSQQorVE9ET1JPViBBTEVLU0FOREFSCitUT0RPUk9WIEJJU0VSS0EKK1RPRE9ST1YgREVTQU5LQQorVE9ET1JPViBHTEnFoEEKK1RPRE9ST1YgSVZBTgorVE9ET1JPVi1KQcWgQVJFVknEhiBEQU5JQ0EKK1RPRE9ST1YgTUlMSVZPSgorVE9ET1JPViBNSUxPxaAKK1RPRE9ST1YgTkVERUxKS08KK1RPRE9ST1YgT0JSRU5LQQorVE9ET1JPViBSQURPVkFOCitUT0RPUk9WIFJPQkVSVAorVE9ET1JPViBTQVZBCitUT0RPUk9WIFNMT0JPREFOCitUT0RPUk9WIFNQSVJPIERSCitUT0RPUk9WIFRPTUlTTEFWCitUT0RPUk9WScSGIMSMRURPCitUT0RPUk9WScSGIMW9QVJLTworVE9ET1JPVknEhiDFvUFSS08KK1RPRE9ST1ZJxIYgxb1JVk9KSU4KK1RPRE9ST1ZJxIYgxb1JVk9UQQorVE9ET1JPVknEhiDFvUlWT1RBCitUT0RPUk9WScSGIEFMRUtTQU5EQVIKK1RPRE9ST1ZJxIYgQUxFS1NBTkRBUgorVE9ET1JPVknEhiBBTEVLU0FOREFSCitUT0RPUk9WScSGIEFOxJBFTEtPCitUT0RPUk9WScSGIEFOQQorVE9ET1JPVknEhiBBTktBCitUT0RPUk9WScSGIEFOVFVOCitUT0RPUk9WScSGIEJPxaBLTworVE9ET1JPVknEhiBCT8WgS08KK1RPRE9ST1ZJxIYgQk9HREFOCitUT0RPUk9WScSGIEJPUklTTEFWCitUT0RPUk9WScSGIEJPUklWT0pFCitUT0RPUk9WScSGIEJPU0EKK1RPRE9ST1ZJxIYgQlJBTklTTEFWCitUT0RPUk9WScSGIEJSQU5LTworVE9ET1JPVknEhiBCUkFOS08KK1RPRE9ST1ZJxIYgQlJBTktPCitUT0RPUk9WScSGIEJSQU5LTworVE9ET1JPVknEhiBDVkVUS08KK1RPRE9ST1ZJxIYgQ1ZJSkVUSU4KK1RPRE9ST1ZJxIYgQ1ZJSk8KK1RPRE9ST1ZJxIYgREFOSUNBCitUT0RPUk9WScSGIERBTklMTworVE9ET1JPVknEhiBESU1JVFJJSkUKK1RPRE9ST1ZJxIYgRE9CUk9TQVYKK1RPRE9ST1ZJxIYgRE9CUk9TQVYKK1RPRE9ST1ZJxIYgRFJBR0FOCitUT0RPUk9WScSGIERSQUdBTgorVE9ET1JPVknEhiBEUkFHQU4KK1RPRE9ST1ZJxIYgRFJBR0FOCitUT0RPUk9WScSGIERSQUdJQ0EKK1RPRE9ST1ZJxIYgRFJBR09MSlVCCitUT0RPUk9WScSGIERSQUdPTEpVQgorVE9ET1JPVknEhiBEUkFHT1NMQVYKK1RPRE9ST1ZJxIYgRFJBR09TTEFWCitUT0RPUk9WScSGIERVxaBBTgorVE9ET1JPVknEhiBEVcWgQU4KK1RPRE9ST1ZJxIYgRFXFoEFOCitUT0RPUk9WScSGIERVxaBBTgorVE9ET1JPVknEhiBEVcWgS08KK1RPRE9ST1ZJxIYgR09KS08KK1RPRE9ST1ZJxIYgR09KS08KK1RPRE9ST1ZJxIYgR1JBRElNSVIKK1RPRE9ST1ZJxIYgSUxFCitUT0RPUk9WScSGIEpBU05BCitUT0RPUk9WScSGIEpFTEVOQQorVE9ET1JPVknEhiBKRUxJQ0EKK1RPRE9ST1ZJxIYgSkVMSUNBCitUT0RPUk9WScSGIEpPS0EKK1RPRE9ST1ZJxIYgSk9WQU5LQQorVE9ET1JPVknEhiBKT1ZJQ0EKK1RPRE9ST1ZJxIYgSlVMSUpBTkEKK1RPRE9ST1ZJxIYgS09WSU5LQQorVE9ET1JPVknEhiBMQVpBUgorVE9ET1JPVknEhiBMRU5LQQorVE9ET1JPVknEhiBMSlVCSUNBCitUT0RPUk9WScSGIExKVUJJQ0EKK1RPRE9ST1ZJxIYgTEpVQklOS0EKK1RPRE9ST1ZJxIYgTEpVQk9NSVIKK1RPRE9ST1ZJxIYgTUFSQQorVE9ET1JPVknEhiBNQVJHSVRBCitUT0RPUk9WScSGIE1BUklKQQorVE9ET1JPVknEhiBNQVJLTworVE9ET1JPVknEhiBNQVJLTworVE9ET1JPVknEhiBNQVJLTworVE9ET1JPVknEhiBNScWgTworVE9ET1JPVknEhiBNScSGQQorVE9ET1JPVknEhiBNScSGTworVE9ET1JPVknEhiBNSUhBSkxPCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEFOCitUT0RPUk9WScSGIE1JTEVOS08KK1RPRE9ST1ZJxIYgTUlMRQorVE9ET1JPVknEhiBNSUxJQ0EKK1RPRE9ST1ZJxIYgTUlMS0EKK1RPRE9ST1ZJxIYgTUlMT8WgCitUT0RPUk9WScSGIE1JTE9SQUQKK1RPRE9ST1ZJxIYgTUlMT1ZBTgorVE9ET1JPVknEhiBNSVJLTyBESVBMIElORworVE9ET1JPVknEhiBNSVJLTyBEUiBMRUtBUgorVE9ET1JPVknEhiBNSVJLTworVE9ET1JPVknEhiBNSVJLTworVE9ET1JPVknEhiBNSVJLTworVE9ET1JPVknEhiBNSVJLTworVE9ET1JPVknEhiBNSVJPU0xBVkEKK1RPRE9ST1ZJxIYgTUlST1NMQVYKK1RPRE9ST1ZJxIYgTUxBREVOIERSCitUT0RPUk9WScSGIE1MQURFTgorVE9ET1JPVknEhiBNTEFET01JUgorVE9ET1JPVknEhiBNT03EjElMTworVE9ET1JPVknEhiBNT03EjElMTworVE9ET1JPVknEhiBNT01JUktBCitUT0RPUk9WScSGIE5BREEKK1RPRE9ST1ZJxIYgTkFEQQorVE9ET1JPVknEhiBOScSGSUZPUgorVE9ET1JPVknEhiBOSUtPTEEKK1RPRE9ST1ZJxIYgTklLT0xBCitUT0RPUk9WScSGIE9MR0lDQQorVE9ET1JPVknEhiBPU1RPSkEKK1RPRE9ST1ZJxIYgUEVUQVIKK1RPRE9ST1ZJxIYgUEVUQVIKK1RPRE9ST1ZJxIYgUkHFoEtPCitUT0RPUk9WScSGIFJBREEKK1RPRE9ST1ZJxIYgUkFEScWgQQorVE9ET1JPVknEhiBSQURJVk9KIEFEVk9LQVQKK1RPRE9ST1ZJxIYgUkFESVZPSkUKK1RPRE9ST1ZJxIYgUkFESVZPSgorVE9ET1JPVknEhiBSQURNSUxBCitUT0RPUk9WScSGIFJBRE9KS0EKK1RPRE9ST1ZJxIYgUkFET1NMQVYKK1RPRE9ST1ZJxIYgUkFKS08KK1RPRE9ST1ZJxIYgUkFOS08KK1RPRE9ST1ZJxIYgUkFUS08KK1RPRE9ST1ZJxIYgUk9TQQorVE9ET1JPVknEhiBTQcWgQQorVE9ET1JPVknEhiBTQVZBCitUT0RPUk9WScSGIFNBVkEKK1RPRE9ST1ZJxIYgU0FWTworVE9ET1JPVknEhiBTQVZPCitUT0RPUk9WScSGIFNFTktBCitUT0RPUk9WScSGIFNJTUEKK1RPRE9ST1ZJxIYgU0lOScWgQQorVE9ET1JPVknEhiBTTEFWRQorVE9ET1JPVknEhiBTTE9CT0RBTgorVE9ET1JPVknEhiBTTE9CT0RBTgorVE9ET1JPVknEhiBTTUlMSktBCitUT0RPUk9WScSGIFNORcW9QU5BCitUT0RPUk9WScSGIFNPRklKQQorVE9ET1JPVknEhiBTUkVET0pFCitUT0RPUk9WScSGIFNSRVRFTgorVE9ET1JPVknEhiBTVEFOSU1JUgorVE9ET1JPVknEhiBTVEFOSVNMQVYKK1RPRE9ST1ZJxIYgU1RBTktPCitUT0RPUk9WScSGIFNURVZBTgorVE9ET1JPVknEhiBTVEVWQU4KK1RPRE9ST1ZJxIYgU1RFVkEKK1RPRE9ST1ZJxIYgVE9ERQorVE9ET1JPVknEhiBUT0RFCitUT0RPUk9WScSGIFRPTUlTTEFWCitUT0RPUk9WScSGIFRPTUlTTEFWCitUT0RPUk9WScSGIFZFUkEKK1RPRE9ST1ZJxIYgVkVSQQorVE9ET1JPVknEhiBWRVJBCitUT0RPUk9WScSGIFZMQURFVEEKK1RPRE9ST1ZJxIYgVkxBRElNSVIKK1RPRE9ST1ZJxIYgVkxBRElNSVIKK1RPRE9ST1ZJxIYgVkxBRElTTEFWCitUT0RPUk9WScSGIFZVS0HFoElOCitUT0RPUk9WScSGIFpPUkFOCitUT0RPUk9WScSGIFpPUkFOCitUT0RPUk9WScSGIFpPUkFOCitUT0RPUk9WScSGIFpPUkEKK1RPRE9ST1ZJxIYgWk9SS0EKK1RPRE9ST1ZTS0kgTUFOQVNJSkUKK1RPRE9ST1ZTS0kgTUlST1NMQVYKK1RPRE9ST1ZTS0kgTkFEQQorVE9ET1NJSkVWScSGIMSQT1LEkEUKK1RPRE9TSUpFVknEhiBEUkFHT0xKVUIKK1RPRE9TSUpFVknEhiBNSUxBTgorVE9ET1NJSkVWScSGIFpMQVRLTyBESVBMIFBSQVZOSUsKK1RPRklMIFNPRklKQQorVE9IT0xKIEpPVk8KK1RPSE9MSkVWScSGIEJPxaBLTworVE9IT0xKRVZJxIYgWkRSQVZLTworVE9KQUdBIE1JTEFOCitUT0pBR0EgTUlMT8WgCitUT0pBR0EgU1ZFVE9aQVIKK1RPSkFHScSGIMSQT1LEkEUKK1RPSkFHScSGIEJPxb1JREFSCitUT0pBR0nEhiBEQU5FCitUT0pBR0nEhiBEQU5JTE8KK1RPSkFHScSGIERVxaBBTgorVE9KQUdJxIYgSkVMQQorVE9KQUdJxIYgTFVETUlMQQorVE9KQUdJxIYgTUlSSkFOQQorVE9KQUdJxIYgTklLT0xBCitUT0pBR0nEhiBOSUtPTEEKK1RPSkFHScSGIFJBRE9WQU4KK1RPSkFHScSGIFNMT0JPREFOCitUT0paQU4gSUxPTkEKK1RPS0FSIEpVTElKQQorVE9LScSGIEtPU0FSQQorVE9LScSGIE1JSEFKTE8KK1RPS0nEhiBNSUxBTgorVE9LScSGIFNBVkEKK1RPS0nEhiBTQVZBCitUT0tJxIYgU0FWQQorVE9LSU4txJBFUknEhiBaQUdPUktBCitUT0tJTiDEkE9SxJBFCitUT0tJTiBBTElTQQorVE9LSU4gQk9SQQorVE9LSU4gREFOSUNBCitUT0tJTiBQUk9LT1AgRFIgTEVLQVIKK1RPS0lOIFNMT0JPREFOCitUT0tJTiBWRVJBCitUT0tJTiBWTEFEQQorVE9LT0RJIEpBTk/FoAorVE9LT0RJIEpPTEFOS0EKK1RPS09ESSBNQVJHSVRBCitUT0tPVknEhiBKRUxJQ0EKK1RPTCBBTkRSQcWgCitUT0wgSk/FvUVGCitUT0xESSBFVkEKK1RPTERJIFZJTE1PxaAKK1RPTEnEhiBNSUxPxaAKK1RPTEnEhiBWRVNOQQorVE9MSUNLSSBaT1JBCitUT0xJTUlSIFVST8WgCitUT0xKQUdBIFZVS09TQVZBCitUT0xKRVZJxIYgQlJBTktPCitUT0xKRVZJxIYgRE9CUklTTEFWCitUT0xKRVZJxIYgRFJBR0lDQQorVE9MSknEhiBSQUpLTworVE9MTUHEjCBaT1JBTgorVE9MTUHEjEVWIMW9SVZBCitUT0xNQcSMRVYgTUlST1NMQVYKK1RPTE5BSSBPVE8KK1RPTE5BSSBSVcW9QQorVE9MVCBKT8W9RUYKK1RPTFQgSk9TSVAKK1RPTFZBSiBBR05FxaAKK1RPTFZBSiBFTEVPTk9SQQorVE9MVkVUIE9TS0FSCitUT03EjEFOSkkgSVZBTgorVE9NxIxBTkpJIE1JUk9TTEFWQQorVE9NxIxBTkpJIFNUQU5JU0xBVkEKK1RPTcSMRVZBIE5FVkVOS0EgRFIKK1RPTcSMRVZTS0kgQ1ZFVEFOCitUT03EjEnEhiDEjEVET01JUgorVE9NxIxPViBUT03EjE8KK1RPTcSMT1ZBIEFORVRBIERSCitUT03EjE9WQSBBTklUQSBEUgorVE9NxaBJxIYgTEFESVNMQVYKK1RPTUEgxaBBTkRPUgorVE9NQSBBTkRSSUpBCitUT01BIEpBTk/FoAorVE9NQSBKQU5PxaAKK1RPTUEgSkFOT8WgCitUT01BIEpVTElKQU5BCitUT01BIExBRElTTEFWCitUT01BIE1BUklKQQorVE9NQSBNSUhBSkxPCitUT01BIE9MR0EKK1RPTUEgUEFMCitUT01BIFJPWkFMSUpBCitUT01BIFNURVZBTgorVE9NQcWgIMSQVVJBCitUT01BxaAgSkFOS08KK1RPTUHFoCBKT1ZBTgorVE9NQcWgIE1JTE9SQUQKK1RPTUHFoCBNSUxPVkFOCitUT01BxaAgU1RPSkFOS0EKK1RPTUHFoEVWIEJPxb1JREFSCitUT01BxaBFViBLT1ZJTktBCitUT01BxaBFViBNQVRJSkEKK1RPTUHFoEVWIE1BVElKQQorVE9NQcWgRVYgUEVUQVIKK1RPTUHFoEVWIFZFUkEKK1RPTUHFoEVWScSGIEJMQUdPVEEKK1RPTUHFoEVWScSGIEJPxb1JREFSCitUT01BxaBFVknEhiBCT1JJU0xBVgorVE9NQcWgRVZJxIYgRFJBR0FOQQorVE9NQcWgRVZJxIYgRVZJQ0EKK1RPTUHFoEVWScSGIElWQU4KK1RPTUHFoEVWScSGIEpFTElDQQorVE9NQcWgRVZJxIYgSk9WQU4KK1RPTUHFoEVWScSGIEtPU1RBCitUT01BxaBFVknEhiBMSlVCScWgQQorVE9NQcWgRVZJxIYgTEpVQklDQQorVE9NQcWgRVZJxIYgTFVLQQorVE9NQcWgRVZJxIYgTUFOT0pMRQorVE9NQcWgRVZJxIYgTUlMRU5LTworVE9NQcWgRVZJxIYgTUlMSVZPSgorVE9NQcWgRVZJxIYgTUlMS0EKK1RPTUHFoEVWScSGIE1JTE9SQUQKK1RPTUHFoEVWScSGIE1JT0RSQUcKK1RPTUHFoEVWScSGIE1JT0RSQUcKK1RPTUHFoEVWScSGIE5BREEKK1RPTUHFoEVWScSGIE5BREXFvURBCitUT01BxaBFVknEhiBSQURJVk9KCitUT01BxaBFVknEhiBSQURPSktBCitUT01BxaBFVknEhiBSQURPSktBCitUT01BxaBFVknEhiBTQVZPCitUT01BxaBFVknEhiBTTE9CT0RBTgorVE9NQcWgRVZJxIYgU1ZFVE9NSVIKK1RPTUHFoEVWScSGIFZMQURJTUlSCitUT01BxaBFVknEhiBWT0pJU0xBVgorVE9NQcWgScSGIMSQVVJBCitUT01BxaBJxIYgQkVSVEEKK1RPTUHFoEnEhiBNQVJUSU4KK1RPTUHFoEnEhiBNSVJKQU5BCitUT01BxaBJxIYgVElCT1IKK1RPTUFDIElWQU4KK1RPTUFDIE1JUk9TTEFWCitUT01BQyBSVcW9SUNBCitUT01BTiBESU4KK1RPTUFOIEZSQU5KQQorVE9NQU4gSk/FvUVGCitUT01BTiBMQVNMTworVE9NQU4gTUFHRE9MTkEKK1RPTUFOScSGIERVxaBBTgorVE9NQU5JxIYtTEFDS09WScSGIE1JTEVOQQorVE9NQU5JxIYgTUlMRU5BCitUT01BTknEhiBaREVOS0EKK1RPTUFOT1ZJxIYgQlJBTklTTEFWCitUT01BTk9WScSGIE1BUklKQQorVE9NQU5PVknEhiBNSU9EUkFHCitUT01BTk9WScSGIFJBSktPCitUT01BTk9WScSGIFRPTUlTTEFWCitUT01BUyBBTkRSSUpBCitUT01BUyBKT1NJUAorVE9NQVMgUlVET0xGCitUT01BUyBaRFJBVktBCitUT01FQyBWTEFESVNMQVYKK1RPTUnEjEnEhiBBTlRFCitUT01JxIxJxIYgQ1ZJSk8KK1RPTUnEjEnEhiBKT1ZPCitUT01JxIxJxIYgUEVUQVIKK1RPTUnEjEnEhiBTVE9KQQorVE9NScSMScSGIFRPTUlTTEFWCitUT01JxIxJTiBNQVJJSkEKK1RPTUnEhiDEjEVET01JUiBESVBMIElORworVE9NScSGIMSMRURPTUlSCitUT01JxIYgxb1FTEpLTworVE9NScSGIMW9SVZLTworVE9NScSGIMW9SVZPSklOCitUT01JxIYgxJBPUsSQRQorVE9NScSGIMSQVVLEkElDQQorVE9NScSGIMSQVVLEkElOS0EKK1RPTUnEhiDEkFVSSUNBCitUT01JxIYgQUxFS1NBTkRBUgorVE9NScSGIEFMRUtTQU5EQVIKK1RPTUnEhiBBTEVLU0FOREFSCitUT01JxIYgQUxFS1NBTkRBUgorVE9NScSGIEFMRUtTQU5EQVIKK1RPTUnEhiBBTEVLU0EKK1RPTUnEhiBBTkEKK1RPTUnEhiBBTkdFTElOQQorVE9NScSGIEFOS0EKK1RPTUnEhiBBTktJQ0EKK1RPTUnEhiBBTktJQ0EKK1RPTUnEhiBBUklKQUROQQorVE9NScSGIEJJTEpBTkEKK1RPTUnEhiBCT8WgS08KK1RPTUnEhiBCT8WgS08KK1RPTUnEhiBCT8W9SURBUktBCitUT01JxIYgQk9HREFOS0EKK1RPTUnEhiBCT0pLQQorVE9NScSGIEJPUklTTEFWIERSIElORworVE9NScSGIEJPUklTTEFWCitUT01JxIYgQk9TSUxKS0EKK1RPTUnEhiBCUkFOS08KK1RPTUnEhiBEQU5JQ0EKK1RPTUnEhiBEQU5JTE8gTVIKK1RPTUnEhiBEQVJJTktBCitUT01JxIYgREVKQU4KK1RPTUnEhiBERVZBCitUT01JxIYgRFJBR0FOCitUT01JxIYgRFJBR0FOCitUT01JxIYgRFJBR0FOCitUT01JxIYgRFJBR0EKK1RPTUnEhiBEUkFHQQorVE9NScSGIERSQUdPTEpVQgorVE9NScSGIERSQUdVVElOCitUT01JxIYgRFXFoEFOCitUT01JxIYgRFXFoEFOCitUT01JxIYgRFXFoElDQQorVE9NScSGIEVWQQorVE9NScSGIEVWQQorVE9NScSGIEdPUkRBTkEKK1RPTUnEhiBHUkFESU1JUgorVE9NScSGIElMRQorVE9NScSGIElMRQorVE9NScSGIElMSUpBCitUT01JxIYgSUxJSkEKK1RPTUnEhiBJTElKQQorVE9NScSGIElWQU4KK1RPTUnEhi1JVknEjEnEhiBCSUxKQU5BCitUT01JxIYgSkVMRU5BCitUT01JxIYgSkVMSUNBCitUT01JxIYgSk9TSUYKK1RPTUnEhiBKT1NJUAorVE9NScSGIEpPVkFOS0EKK1RPTUnEhiBKT1ZBTgorVE9NScSGIEpPVkFOCitUT01JxIYgSk9WQU4KK1RPTUnEhiBKVUxJQU5BCitUT01JxIYgS0FUQVJJTkEKK1RPTUnEhiBLT05TVEFOVElOCitUT01JxIYgS09STkVMSUEKK1RPTUnEhiBLT1NBCitUT01JxIYgS1JTVEEKK1RPTUnEhiBMQVpBUgorVE9NScSGIExBWkFSCitUT01JxIYgTEVQT1NBVkEKK1RPTUnEhiBMSklMSkFOQQorVE9NScSGIExKSUxKQQorVE9NScSGIExKVUJBCitUT01JxIYgTEpVQknFoEEKK1RPTUnEhiBMSlVCScWgQQorVE9NScSGIExKVUJJxaBBCitUT01JxIYgTEpVQklOS0EKK1RPTUnEhiBMSlVCT01JUgorVE9NScSGIExKVUJPTUlSCitUT01JxIYgTUFSR0lUCitUT01JxIYgTUFSSUpBCitUT01JxIYgTUFSSUpBCitUT01JxIYgTUFSSUpBCitUT01JxIYgTUFSSUpBCitUT01JxIYgTUFSS08KK1RPTUnEhiBNSUpPRFJBRworVE9NScSGIE1JTEFESU4KK1RPTUnEhiBNSUxBTgorVE9NScSGIE1JTEFOCitUT01JxIYgTUlMQU4KK1RPTUnEhiBNSUxBTgorVE9NScSGIE1JTEVOS08KK1RPTUnEhiBNSUxFTktPCitUT01JxIYgTUlMRQorVE9NScSGIE1JTElWT0oKK1RPTUnEhiBNSUxLQQorVE9NScSGIE1JTE/FoAorVE9NScSGIE1JTE/FoAorVE9NScSGIE1JTE9NSVIKK1RPTUnEhiBNSUxPUkFECitUT01JxIYgTUlMT1JBRAorVE9NScSGIE1JTE9TQVYKK1RPTUnEhiBNSVJKQU5BCitUT01JxIYgTUlSSkFOQQorVE9NScSGIE1JUkpBTgorVE9NScSGIE1JUktPCitUT01JxIYgTUlSS08KK1RPTUnEhiBNSVJPU0xBVgorVE9NScSGIE1JUk9TTEFWCitUT01JxIYgTUlST1NMQVYKK1RPTUnEhiBNSVJPU0xBVgorVE9NScSGIE1JVEFSCitUT01JxIYgTUxBREVOCitUT01JxIYgTU9NxIxJTE8KK1RPTUnEhiBNT03EjElMTworVE9NScSGIE5BVEHFoEEKK1RPTUnEhiBOQVRBTElKQQorVE9NScSGIE5FQk9KxaBBCitUT01JxIYgTkVERUxKS0EKK1RPTUnEhi1ORURFTEpLT1ZJxIYgRE9CUklMQQorVE9NScSGIE5FREVMSktPCitUT01JxIYgTkVOQUQKK1RPTUnEhiBORU5BRAorVE9NScSGIE5FTkFECitUT01JxIYgTklLT0xBCitUT01JxIYgTklLT0xBCitUT01JxIYgTk9WSUNBCitUT01JxIYgT0xHSUNBIE1SCitUT01JxIYgT0xJVkVSQQorVE9NScSGIFBBVkxFIERSCitUT01JxIYgUEVMS0EKK1RPTUnEhiBQRVRBUgorVE9NScSGIFBFVEtPCitUT01JxIYgUkFESVZPSkUKK1RPTUnEhiBSQURPVkFOCitUT01JxIYgUkFET1ZBTgorVE9NScSGIFJBVE9NSVIKK1RPTUnEhiBST1pBTElKQQorVE9NScSGIFNBxaBBCitUT01JxIYgU0FWQQorVE9NScSGIFNBVkEKK1RPTUnEhiBTRUxJTUlSCitUT01JxIYtU0lNSU4gTUlMS0EKK1RPTUnEhiBTSU5JxaBBCitUT01JxIYgU0xBVklDQQorVE9NScSGIFNMQVZJQ0EKK1RPTUnEhiBTTEFWS08KK1RPTUnEhiBTTEFWS08KK1RPTUnEhiBTTEFWS08KK1RPTUnEhiBTTEFWT0xKVUIKK1RPTUnEhiBTTE9CT0RBTktBCitUT01JxIYgU0xPQk9EQU4KK1RPTUnEhiBTTE9CT0RBTgorVE9NScSGIFNORcW9QU5BCitUT01JxIYgU09GSUpBCitUT01JxIYgU1RBTktPCitUT01JxIYgU1RFVkFOCitUT01JxIYgU1RFVkFOCitUT01JxIYgU1RFVkFOCitUT01JxIYgU1RFVkFOCitUT01JxIYgU1RJUEEKK1RPTUnEhiBTVEpFUEFOCitUT01JxIYgU1ZFVE9aQVIKK1RPTUnEhiBTVkVUT1pBUgorVE9NScSGIFRBVEpBTkEKK1RPTUnEhiBUT0RFCitUT01JxIYgVE9ET1IKK1RPTUnEhiBWQUxFUklKQQorVE9NScSGIFZFTEpLTworVE9NScSGIFZFTEpLTworVE9NScSGIFZFUkEKK1RPTUnEhiBWRVJJQ0EKK1RPTUnEhiBWRVNOQQorVE9NScSGIFZFU05BCitUT01JxIYgVkVTTkEKK1RPTUnEhiBWSUQKK1RPTUnEhiBWSU5LTworVE9NScSGIFZMQURJTUlSCitUT01JxIYgVkxBRElNSVIKK1RPTUnEhiBWTEFTVElNSVIKK1RPTUnEhiBWTEFTVElNSVIKK1RPTUnEhiBWT0pJU0xBVkEKK1RPTUnEhiBWVUtPU0FWQQorVE9NScSGIFpPUkFOCitUT01JxIYgWk9SSUNBCitUT01JxIYgWk9SS0EKK1RPTUnEhiBaT1JLQQorVE9NScSGIFpPUktBCitUT01JSyBKT1ZBTgorVE9NSUsgU09GSUpBCitUT01JSyBTVEVWQU4KK1RPTUlOIMW9SVZBTgorVE9NSU4gQUxFS1NBTkRBUgorVE9NSU4gQlJBTklTTEFWCitUT01JTiBCUkFOSVNMQVYKK1RPTUlOIERJTUlUUklKRQorVE9NSU4gRFJBR0FOCitUT01JTiBEUkFHQU4KK1RPTUlOIERSQUdJTkpBCitUT01JTiBEVcWgQU4KK1RPTUlOIEdPUkRBTkEKK1RPTUlOIExKVUJJQ0EKK1RPTUlOIExKVUJJQ0EKK1RPTUlOIE1BUklKQQorVE9NSU4gTUlMQU4KK1RPTUlOIE1JTFVUSU4KK1RPTUlOIE1JTFVUSU4KK1RPTUlOIE1JUk9TTEFWCitUT01JTiBNSVRBUgorVE9NSU4gUkFET1NMQVYKK1RPTUlOIFNURVZBTiBESVBMIFBSQVZOSUsKK1RPTUlOIFNURVZBTgorVE9NSU4gU1RFVkFOCitUT01JTiBTVEVWQU4KK1RPTUlOIFNURVZBTgorVE9NSU4gU1ZFVExBTkEKK1RPTUlOIFZBU0EKK1RPTUlOIFZJRE9TQVZBCitUT01JTsSMScSGIE1JTE9WQU4KK1RPTUlOQUMgVklOS08KK1RPTUtBIEFMUEFSCitUT01LQSBLQVJMTworVE9NTEpBTk9WScSGIEJPR09TTEFWCitUT01MSkFOT1ZJxIYgTEpVQklDQQorVE9NTEpBTk9WScSGIE1BUklKQQorVE9NTEpBTk9WScSGIE1JTEFOCitUT01PIEpPU0lQCitUT01PViBCT0dEQU4KK1RPTU9WIE1JUsSMRQorVE9NT1YgU0FWQQorVE9NT1YgU0xPQk9EQU4KK1RPTU9WIFRPxaBBCitUT01PViBUT0RPUgorVE9NT1YgVkVMSU4KK1RPTU9WIFZFTElOCitUT01PVknEhiBBTsSQQQorVE9NT1ZJxIYgQk/FvUlEQVIKK1RPTU9WScSGIEJPUklTTEFWCitUT01PVknEhiBEUkFHSU5KQQorVE9NT1ZJxIYgRFXFoEFOCitUT01PVknEhiBNSVRBUgorVE9NT1ZJxIYgUkFET01JUgorVE9NT1ZJxIYgUkFET1NMQVYKK1RPTU9WScSGIFNUT0pBTktBCitUT01PVknEhiBUT01PCitUT01PVknEhiBWQVNJTElKRQorVE9NT1ZJxIYgWk9SQU4KK1RPTU9WScSGIFpPUklDQQorVE9OxIxFViBJVkFOCitUT05ET0xPIFNNSUxKQQorVE9OScSGIMW9SUtJQ0EKK1RPTknEhiBSVcW9SUNBCitUT05JxIYgU1RPSklNRU4KK1RPTktPVknEhiBKT0NBCitUT05LT1ZJxIYgSk9TSVAKK1RPTktPVknEhiBNSUxBTgorVE9OS09WScSGIE1JTEFOCitUT05URSBGUknEkEXFoAorVE9OVEnEhiDEkE9SxJBFCitUT05UScSGIERVxaBBTgorVE9QQUxPViBEVcWgQU4KK1RPUEFMT1YgR0FWUkEgRElQTCBJTkcKK1RPUEFMT1YgSkVMSUNBCitUT1BBTE9WIE1FTEFOSUpBCitUT1BBTE9WIE1FTEFOSUpBCitUT1BBTE9WIE1JSEFKTE8KK1RPUEFMT1YgTUlMRU5BCitUT1BBTE9WIE1JTE/FoAorVE9QQUxPViBNSUxPUkFECitUT1BBTE9WIE5BREEKK1RPUEFMT1YgUEVUQVIKK1RPUEFMT1YgU09GSUpBCitUT1BBTE9WIFNQQVNPSkUKK1RPUEFMT1YgU1RBTklTTEFWQQorVE9QQUxPViBTVEVWQU4KK1RPUEFMT1YgU1RFVkFOCitUT1BBTE9WIFNURVZBTgorVE9QQUxPViBTVkVUT1pBUgorVE9QQUxPViBWQVNJTElKRQorVE9QQUxPViBWRVJBCitUT1BBTE9WScSGIEJPxb1PCitUT1BBTE9WScSGIERVxaBBTgorVE9QQUxPVknEhiBEVUtBVElOS0EKK1RPUEFMT1ZJxIYgRU1JTElKQQorVE9QQUxPVknEhiBKRUxFTkEKK1RPUEFMT1ZJxIYgSlVMSUpFCitUT1BBTE9WScSGIE1JSEFKTE8KK1RPUEFMT1ZJxIYgTUlMQU4KK1RPUEFMT1ZJxIYgTUlSS08KK1RPUEFMT1ZJxIYgTkVWRU5LQQorVE9QQUxPVknEhiBSQURPSklDQQorVE9QQUxPVknEhiBTVEFOSUpBCitUT1BBTE9WScSGIFZMQUpLTworVE9QQUxTS0kgREFOSUxPCitUT1BBTFNLSSBEVcWgQU5LQQorVE9QQUxTS0ktRknFoFRFxaAgTkFEQQorVE9QQUxTS0kgTUlMRU5BCitUT1BBTFNLSSBaT1JBTgorVE9QQVIgTUFSSUpBCitUT1BJxIYgxIxFRE8KK1RPUEnEhiDEkFVSTworVE9QScSGIEFOVE8KK1RPUEnEhiBDVklKQQorVE9QScSGIERBTklDQQorVE9QScSGIERBTklDQQorVE9QScSGIERSQUdBTgorVE9QScSGIERSQUdBTgorVE9QScSGIElMSUpBCitUT1BJxIYgSk9WQU4KK1RPUEnEhiBKT1ZBTgorVE9QScSGIExFT04KK1RPUEnEhiBMSlVCTworVE9QScSGIE1BUklKQQorVE9QScSGIE1JTEFESU5LQQorVE9QScSGIE1JTEFOCitUT1BJxIYgTUlMSVZPSkUKK1RPUEnEhiBNSUxJVk9KCitUT1BJxIYgTUlMT1JBRAorVE9QScSGIE1JTE9SQUQKK1RPUEnEhiBNSUxPUkFECitUT1BJxIYgTUlMT1JBRAorVE9QScSGIE1JTE9WQU4KK1RPUEnEhiBNSVJLTworVE9QScSGIE1JVEFSCitUT1BJxIYgTkFUQUxJSkEKK1RPUEnEhiBORcSQTworVE9QScSGIE5JS08KK1RPUEnEhiBQRVRBUgorVE9QScSGIFJBVEtPCitUT1BJxIYgU1JFVEVOCitUT1BJxIYgU1RFVkFOCitUT1BJxIYgVEFUSkFOQQorVE9QScSGIFZPSklOCitUT1BJxIYgVk9KSVNMQVYKK1RPUEtBIEFMRUtTQU5EQVIKK1RPUEtBIEFMRUtTQU5EQVIKK1RPUExBSyBJTVJFCitUT1BMSUNBIEFCRURJTgorVE9QTElDQSBHQU5JCitUT1BMSUNBIE5FxJBNRURJTgorVE9QTElDQSBSQU1BREFOCitUT1BMSUNBIFpFxIZJUgorVE9QTElDQSBaRU5JSkEKK1RPUE8gQU5UT05JSkEKK1RPUE8gTEpVQk9NSVIKK1RPUE8gTkVOQUQKK1RPUE9MxIxFVknEhiBKT1ZBTgorVE9QT0xBQyBSQURJVk9KIERSIExFS0FSCitUT1BPTEnEhiDEkFVSQQorVE9QT0xJxIYgRFXFoEFOCitUT1BPTEnEhiBQRUpBCitUT1BPTEpBTklOIFZMQURJU0xBVkEKK1RPUE9MS09WScSGIFZMQURJTUlSCitUT1BPTE9WQcSMS0kgUkFET1ZBTgorVE9QT0xPVkHEjEtJIFZVS09TQVZBCitUT1BSRUsgU0lNTworVE9SxJBBTlNLSSBBTEVLU0FOREFSCitUT1JCQVJPViBEVcWgQU4KK1RPUkJJQ0EgQUxFS1NBCitUT1JCSUNBIEJPUklTTEFWCitUT1JCSUNBIERVxaBBTgorVE9SQklDQSBEVcWgQU4KK1RPUkJJQ0EgSUxJSkEKK1RPUkJJQ0EgSkVMS0EKK1RPUkJJQ0EgSlVMS0EKK1RPUkJJQ0EgTUFSSUpBCitUT1JCSUNBIE1JTE/FoAorVE9SQklDQSBNSVJPU0xBVgorVE9SQklDQSBOQURBCitUT1JCSUNBIFJBRE9TTEFWCitUT1JCSUNBIFZFUklDQQorVE9SREEgSkFOS08KK1RPUkRBSSBJTE9OQQorVE9SREFJIE1BUklKQQorVE9SREFJIFNWRVRMQU5BCitUT1JEQUogTUnFoEtPCitUT1JEQUpJIEpBTktPCitUT1JFUiDEkFVSQQorVE9STUEgR0VaQQorVE9STUEgSk9TSVAKK1RPUk1BIEpPVkFOCitUT1JNQSBNQVJHSVRBCitUT1JNQSBTVEVWQU4KK1RPUk1BIFZJTElNCitUT1JNQcWgSSDEkEVSxJAKK1RPUk1BxaBJIEpBTk/FoAorVE9STUHFoEkgU01JTEpLQQorVE9STUHFoEkgU1RFVkFOCitUT1JNT8WgSSBKT8W9RUYKK1RPUk5KQU5TS0kgxb1BUktPCitUT1JOSkFOU0tJIEJPUklTTEFWCitUT1JOSkFOU0tJIEJSQU5JU0xBVgorVE9STkpBTlNLSSBKRUxLQQorVE9STkpBTlNLSSBTVkVUSVNMQVYKK1RPUk9LIMSMQUJBCitUT1JPTUFOIEJSQU5JU0xBVgorVE9ST01BTiBORcSQRUxKS08KK1RPUk9NQU4gUkFESVNBVgorVE9ST01BTiBSQURNSUxBCitUT1JPTUFOIFJBRE9KSUNBCitUT1JPVknEhiBUUklQTworVE9SVEnEhiBBTkRSSUpBCitUT1JUScSGIEpPU0lQCitUT1JUScSGIE1JSEFKTE8KK1RPUlRJxIYgU1RFVkFOCitUT1JUScSGIFZFUkEKK1RPU01BTiBKT1NJUAorVE9TVU5PVknEhiBKRUxJU0FWRVRBCitUT1NVTk9WScSGIE1BUklKQQorVE9TVU5PVknEhiBWTEFESU1JUgorVE9UIMWgQU5ET1IKK1RPVCDFoEFORE9SCitUT1QgxaBBTkRPUgorVE9UIEFNQUxJSkEKK1RPVCBBTkEKK1RPVCBBTkEKK1RPVCBBTkRSQcWgCitUT1QgQU5EUklKQQorVE9UIEFORFJJSkEKK1RPVCBBTklDQQorVE9UIEFOVEFMIERJUEwgSU5HCitUT1QgQU5UT05JSkEKK1RPVCBBUlBBRAorVE9ULUFSVkFJIEFOVEFMCitUT1QtQVJWQUkgSkFOT8WgCitUT1QtQVJWQUkgSkFOT8WgCitUT1QtQkFHSSBJTVJFCitUT1QtQkFHSSBKQU5PxaAKK1RPVC1CQUdJIE1BUklKQQorVE9UIEJBTElOVAorVE9UIEJFUlRBCitUT1QtQk9KTklLIERFWklERVIgRElQTCBJTkcKK1RPVCBCT1JBCitUT1QgREXFvUUKK1RPVCBEVcWgQU5LQQorVE9UIEZFUkVOQworVE9UIEZFUkVOQworVE9UIEZFUkVOQworVE9UIEZFUkVOQworVE9UIEZFUkVOQworVE9UIEZSQU5KQQorVE9UIEZSQU5KQQorVE9UIEZSQU5KQQorVE9UIEdBQk9SCitUT1QgR0VaQQorVE9ULUhPUlRJIMWgQU5ET1IKK1RPVCBJxaBUVkFOCitUT1QgScWgVFZBTgorVE9UIEnFoFRWQU4KK1RPVCBJQk9MSkEgRFIKK1RPVCBJTE9OQQorVE9UIElMT05BCitUT1QgSUxPTkEKK1RPVCBJTVJFCitUT1QgSVJFTkEKK1RPVCBJUkVOQQorVE9UIElWQU4KK1RPVCBKQU5PxaAKK1RPVCBKQU5PxaAKK1RPVCBKQU5PxaAKK1RPVCBKRUxFTkEKK1RPVCBKT8W9RUYKK1RPVCBKT8W9RUYKK1RPVCBKT8W9RUYKK1RPVCBKT8W9RUYKK1RPVCBKT8W9RUYKK1RPVCBKT1NJUAorVE9UIEpPVkFOS0EKK1RPVCBKT1ZBTgorVE9UIEpVTElKQU5BCitUT1QgSlVMSUpBTkEKK1RPVCBKVUxJSkEKK1RPVC1LQcWgQSBCTEHFvQorVE9UIEtBUk9MSgorVE9UIEtBUk9MSgorVE9UIEtBVEFSSU5BCitUT1QgS0FUSUNBCitUT1QgS09WSUxKS0EKK1RPVCBMQUpPxaAKK1RPVCBMQUpPxaAKK1RPVCBMQVNMTyBEUgorVE9UIExBU0xPCitUT1QgTEFTTE8KK1RPVCBMQVNMTworVE9UIExJVklKQQorVE9UIE1BR0RPTE5BCitUT1QgTUFSR0lUQQorVE9UIE1BUkdJVEEKK1RPVCBNQVJJSkEKK1RPVCBNQVJJSkEKK1RPVCBNQVJJSkEKK1RPVCBNQVJJSkEKK1RPVCBNSUhBTEoKK1RPVCBNSUhBTEoKK1RPVCBNSUtMT8WgCitUT1QgTUlMQU5LQQorVE9UIE1JTEtBCitUT1QgTUlST1NMQVYKK1RPVCBORUJPSsWgQQorVE9UIE9MR0EKK1RPVCBQQUxJS0EKK1RPVCBQQUwKK1RPVCBQQUwKK1RPVCBQQUwKK1RPVCBQQVZMRQorVE9UIFJPWkFMSUpBCitUT1QgUk9aQUxJSkEKK1RPVCBTSUxWRVNURVIKK1RPVCBTVEVWQU4KK1RPVCBTVEVWQU4KK1RPVCBTVEVWQU4KK1RPVCBTVEpFUEFOCitUT1QgVEVSRVpBCitUT1QgVEVSRVpBCitUT1QgVElCT1IKK1RPVCBUT01JU0xBVgorVE9UIFZBTEVSSUpBCitUT1QgVkxBRElNSVIKK1RPVCBWTEFESVNMQVYKK1RPVCBaSVRBCitUT1QgWkxBVEEKK1RPVCBaT0xUQU4KK1RPVCBaT1JBCitUT1RBUlZBSSBNQVJJSkEKK1RPVEggU0lMVkVTVEVSCitUT1RJxIYgU1ZFVE9aQVIKK1RPVE9WScSGIEpPVkFOS0EKK1RPVE9WScSGIE1JTEFOCitUT1ZBUkxPxb1BIERVxaBBTktBCitUT1ZFUk5JxIYgWk9SQQorVE9WSUxPVknEhiBTVkVUTEFOQQorVE9WSUxPVknEhiBaT1JBTgorVE9WSVRPVknEhiBOSUtPTEEKK1RPVklUT1ZJxIYgU0xPQk9EQU4KK1RPVkpBTklOIEJJTEpBTkEKK1RPVkxKQU5JxIYgRFXFoEFOCitUT1ZMSkFOScSGIFNBVkEKK1RSQcW9SSBQQUwKK1RSQUJBSyBLQVRBUklOQQorVFJBSUxPVknEhiBOQURBCitUUkFJTE9WScSGIFNFTElNSVIKK1RSQUlMT1ZJxIYgVk9KSVNMQVYKK1RSQUrEjEVWScSGIExFUE9TQVZBCitUUkFKxIxFVlNLQSBBTklUQQorVFJBSkFOT1ZTS0kgTEpVQklDQQorVFJBSkFOT1ZTS0kgTEpVQk8KK1RSQUpBTk9WU0tJIE1PSlNPCitUUkFKQU5PVlNLSSBUUkFKQU4KK1RSQUpCQVIgQURPTEYKK1RSQUpCQVIgWlZPTklNSVIKK1RSQUpFUiBMQURJU0xBViBEUgorVFJBSkVSIFJPQkVSVAorVFJBSktPVknEhiBCT8W9SURBUgorVFJBSktPVknEhiBCUkFOSU1JUgorVFJBSktPVknEhiBCUkFOSVNMQVYKK1RSQUpLT1ZJxIYgQlJBTktPCitUUkFKS09WScSGIERJTUlUUklKRQorVFJBSktPVknEhiBHTElHT1JJSkUKK1RSQUpLT1ZJxIYgTUlMQU4KK1RSQUpLT1ZJxIYgTUlMT1JBRAorVFJBSktPVknEhiBOQURBCitUUkFKS09WScSGIE5BSkRBTgorVFJBSktPVknEhiBSVcW9SUNBCitUUkFKS09WScSGIFNMT0JPREFOCitUUkFKS09WScSGIFNUT0pBRElOCitUUkFKS09WU0tJIERJTUlUUklKRQorVFJBSktPVlNLSSBNRVRPRElKRQorVFJBSktPVlNLSSBQQU5UQQorVFJBS0lMT1ZJxIYgVkxBREEKK1RSQUxKScSGIElWQU4KK1RSQU5EQUZJUiBWQVNJTElKRQorVFJBTktPTE9WScSGIENWRVRBCitUUkFOS1VMT1YgSk/FvUVGCitUUkFVTSBBUkFOS0EKK1RSQVZBTkogSk9WQU5LQQorVFJBVkFSIMSQVVJPCitUUkFWQVIgTEpVQknFoEEKK1RSQVZBUiBNSUxPU0FWCitUUkFWSUNBIE1JTEFOCitUUkFWSUNBIE1JTEUKK1RSQVZJQ0EgTklLT0xBCitUUkFWSUNBIFJBREUKK1RSQkFOT1Mgxb1JVkEKK1RSQknEhiBCUkFOSVNMQVYKK1RSQknEhiBMSlVCScWgQQorVFJCScSGIE1JTEFESU4KK1RSQknEhiBNSVJPU0xBVgorVFJCScSGIFRBTUFSQQorVFJCScSGIFZMQURJTUlSCitUUkJPSkVWScSGIMSQT1LEkEUKK1RSQk9KRVZJxIYgxJBVUkHEkAorVFJCT0pFVknEhiBCT0dPTEpVQgorVFJCT0pFVknEhiBCUkFOS08KK1RSQk9KRVZJxIYgRFJBR0lDQQorVFJCT0pFVknEhiBHQVZSQQorVFJCT0pFVknEhiBJREEKK1RSQk9KRVZJxIYgSUxJSkEKK1RSQk9KRVZJxIYgSk9WQU4KK1RSQk9KRVZJxIYgTEFaQQorVFJCT0pFVknEhiBNQVJJQ0EKK1RSQk9KRVZJxIYgTUlMRQorVFJCT0pFVknEhiBNSUxJQ0EKK1RSQk9KRVZJxIYgTklLT0xBCitUUkJPSkVWScSGIE5JS09MQQorVFJCT0pFVknEhiBTVEVWQU4KK1RSQk9MSkVWQUMgRFJBR09TTEFWCitUUkJPVknEhiBNSUhBSkxPIERJUEwgUFJBVk5JSworVFJCT1ZJxIYgTUlMQU4KK1RSQk9WScSGIE1JTEFOCitUUkJPVknEhiBWRVNOQQorVFJFxaBOSknEhiBBTEVLU0FORFJBCitUUkXFoE5KScSGIEpPVkFOCitUUkXFoE5KScSGIFNURVZBTgorVFJFxIZBS09WIFNUT0pBTgorVFJFQkFUSUNLSSBBTEVLU0FOREFSCitUUkVCQVRJQ0tJIEFMRUtTQU5EQVIKK1RSRUJBVElDS0kgSlVTVElOQQorVFJFQkFUSUNLSSBNQVJJSkEKK1RSRUJJxIxOSUstVlXEjEnEhiBPTEdBCitUUkVCT1ZBQyBNSUxFCitUUkVOxIxFVlNLSSBOQURFxb1EQQorVFJFUEFOScSGIE1BSE1VVAorVFJFU0lHTEFWScSGIEtBVElDQQorVFJFU0lHTEFWScSGIE1JTEFOCitUUkVTSUdMQVZJxIYgU0xBVktPCitUUkVTSUdMQVZJxIYgU1RFVkFOCitUUkVTSUdMQVZJxIYgVkFTQQorVFJFU0lHTEFWScSGIFZBU0EKK1RSRVNLScSGIFpEUkFWS08KK1RSR0FMQSDEkFVSQQorVFJHTyBORVZFTktBCitUUknEjEtPVknEhiBBTktBCitUUknEjEtPVknEhiBKVUxLQQorVFJJxIxLT1ZJxIYgTUlPRFJBRworVFJJxIxLT1ZJxIYgU0lOScWgQQorVFJJxIxLT1ZJxIYgVkVSSUNBCitUUknFoEnEhiBIUkFOSVNMQVYKK1RSScWgScSGLUlMScSGIFNWRVRMQU5BCitUUknFoEnEhiBNTEFERU4KK1RSSUZLT1ZJxIYgSk9WSUNBCitUUklGS09WScSGIEtVWk1BTgorVFJJRktPVknEhiBMSlVCSUNBCitUUklGS09WScSGIE1BUktPCitUUklGS09WScSGIE1JTEFESU4KK1RSSUZLT1ZJxIYgTUlMQU4KK1RSSUZLT1ZJxIYgTUlMQU4KK1RSSUZLT1ZJxIYgTUlMSVNBVgorVFJJRktPVknEhiBNSVJPU0xBVkEKK1RSSUZLT1ZJxIYgTkVERUxKS08KK1RSSUZLT1ZJxIYgU1LEkEEgRFIKK1RSSUZLT1ZJxIYgVkxBRElNSVIKK1RSSUZLT1ZJxIYgVk9KSVNMQVYKK1RSSUZVIERPUlUKK1RSSUZVTsSMRVZJxIYgTUFSSUpBCitUUklGVU7EjEVWScSGIE1JTE/FoAorVFJJRlVOSkFHScSGIFNQQVNPSkUKK1RSSUZVTkpBR0nEhiBTVkVUSVNMQVYKK1RSSUZVTk9WIERBTklMTworVFJJRlVOT1YgSk9TSUYKK1RSSUZVTk9WIE1JT0RSQUcKK1RSSUZVTk9WIFJBRE1JTEEKK1RSSUZVTk9WScSGIMW9SUtJQ0EKK1RSSUZVTk9WScSGIMW9SVZLQQorVFJJRlVOT1ZJxIYgQk/FoEtPCitUUklGVU5PVknEhiBEQU5LQQorVFJJRlVOT1ZJxIYgRFJBR0FOCitUUklGVU5PVknEhiBEUkFHT01JUgorVFJJRlVOT1ZJxIYgSUxJTktBCitUUklGVU5PVknEhiBKRUxFTkEKK1RSSUZVTk9WScSGIEpPVkFOCitUUklGVU5PVknEhiBKT1ZBTgorVFJJRlVOT1ZJxIYgTUFLU0lNCitUUklGVU5PVknEhiBNSUxJU0FWCitUUklGVU5PVknEhiBNSUxPUkFEIERJUEwgSU5HCitUUklGVU5PVknEhiBNSVJKQU5BCitUUklGVU5PVknEhiBNSVJLTworVFJJRlVOT1ZJxIYgTkFEQQorVFJJRlVOT1ZJxIYgTkFERcW9REEKK1RSSUZVTk9WScSGIE5FR09WQU5LQQorVFJJRlVOT1ZJxIYgT0xHQQorVFJJRlVOT1ZJxIYgUEFWTEUKK1RSSUZVTk9WScSGIFBFVEFSCitUUklGVU5PVknEhiBQRVRBUgorVFJJRlVOT1ZJxIYgUkFESVZPSgorVFJJRlVOT1ZJxIYgUkFETUlMQQorVFJJRlVOT1ZJxIYgUkFET01JUiBESVBMIFBSQVZOSUsKK1RSSUZVTk9WScSGIFJVxb1JQ0EKK1RSSUZVTk9WScSGIFNMQVZJQ0EKK1RSSUZVTk9WScSGIFNMT0JPREFOIERSCitUUklGVU5PVknEhiBTTE9CT0RBTgorVFJJRlVOT1ZJxIYgU09GSUpBCitUUklGVU5PVknEhiBTVEFOQQorVFJJRlVOT1ZJxIYgU1ZFVElTTEFWIERSCitUUklGVU5PVknEhiBTVkVUT01JUgorVFJJRlVOT1ZJxIYgVFJJRlVOCitUUklGVU5PVknEhiBWQVNBCitUUklGVU5PVknEhiBWRVJBCitUUklGVU5PVknEhiBWTEFEQU4KK1RSSUZVTk9WScSGIFZMQURJTUlSCitUUklGVU5PVknEhiBWTEFESU1JUgorVFJJRlVOT1ZJxIYgVk9KSVNMQVYKK1RSSUZVTk9WScSGIFZVS09TQVZBCitUUklGVU5PVknEhiBWVUtPU0FWCitUUklLScSGIERSQUdJQ0EKK1RSSUtJxIYgTUlSS08KK1RSSUtJxIYgUk9TQQorVFJJS0nEhiBTVkVUT1pBUgorVFJJS0nEhiBWTEFESU1JUgorVFJJUEtPVknEhiBNSUxBTgorVFJJUEtPVknEhiBTTE9CT0RBTgorVFJJUE9MU0tJIE1BUklKQQorVFJJUFVOT1ZJxIYgxJBPUsSQSUpBCitUUklQVU5PVknEhiBCTEHFvU8KK1RSSVBVTk9WScSGIERSQUdPTUlSCitUUklTIEpBS09CCitUUklWQU5PVknEhiBEUkFHQU4KK1RSSVZBTk9WScSGIFJBREUKK1RSSVZBTk9WScSGIFNURVZBTgorVFJJVkFOT1ZJxIYgVkVSQQorVFJJVknEhiBCT1JJUworVFJJVknEhiBCUkFOSVNMQVYKK1RSSVZJxIYgRE9CUklWT0pFCitUUklWScSGIERVxaBBTgorVFJJVknEhiBKT1ZBTgorVFJJVknEhiBTVkVUTEFOQQorVFJJVlVOxIxJxIYgTUlSQQorVFJJVlVORMW9QSBNSUxPxaAKK1RSSVZVTkTFvUEgTkVOQUQKK1RSSVZVTknEhiBCT0dPTEpVQgorVFJJVlVOScSGIE1JUk9TTEFWCitUUklWVU5JxIYgUkFOS08KK1RSSVZVTk9WScSGIE1MQURFTktPCitUUklWVU5PVknEhiBTSU1PCitUUklWVU5PVknEhiBUSUhPTUlSCitUUklaTEnEhiBTTEFWS08KK1RSS0xKQSBHT0pLTworVFJLTEpBIE1JUktPCitUUktVTEpBIMW9SVZPUkFECitUUktVTEpBIEFOQQorVFJLVUxKQSBCT8WgS08KK1RSS1VMSkEgQk9SSVNMQVYKK1RSS1VMSkEgQlJBTktPCitUUktVTEpBIERSQUdBTgorVFJLVUxKQSBEUkFHQU4KK1RSS1VMSkEgRVNURVIKK1RSS1VMSkEgR09KS08KK1RSS1VMSkEgR1JPWkRBCitUUktVTEpBIEpPVkFOCitUUktVTEpBIEpVTEtBCitUUktVTEpBIE1BUklOS08KK1RSS1VMSkEgTUlMQU4KK1RSS1VMSkEgTUlMT1JBRAorVFJLVUxKQSBNSU9EUkFHCitUUktVTEpBIE1JT0RSQUcKK1RSS1VMSkEgTkVERUxKS08KK1RSS1VMSkEgTklLT0xBCitUUktVTEpBIE5PVkFLCitUUktVTEpBIE5PVkFLCitUUktVTEpBIFBFVEFSCitUUktVTEpBIFJBTktPCitUUktVTEpBIFNMQVZLTworVFJLVUxKQSBTT0ZJSkEKK1RSS1VMSkEgU09OSkEKK1RSS1VMSkEgU1RFVkFOCitUUktVTEpBIFNUT0pBTktBCitUUktVTEpBIFZMQURJU0xBVkEKK1RSTcSMScSGIFJBRE9TTEFWCitUUk7EjEnEhiBMQVpPCitUUk5BVkFDIE1JTEFOCitUUk5JxIYgUkFETUlMQQorVFJOScSGIFZFUkEKK1RSTklOScSGIMW9SVZBTgorVFJOSU5JxIYgxb1JVk9KSU4KK1RSTklOScSGIMSQT1LEkEUKK1RSTklOScSGIMSQVVJBCitUUk5JTknEhiBCT0dEQU4KK1RSTklOScSGIEJPSkEKK1RSTklOScSGIEJPUklWT0oKK1RSTklOScSGIEJPU0lMSktBCitUUk5JTknEhiBET0JSSVZPSgorVFJOSU5JxIYgRFJBR0FOCitUUk5JTknEhiBEUkFHQU4KK1RSTklOScSGIERVxaBBTgorVFJOSU5JxIYgTUFSQQorVFJOSU5JxIYgTUFSSUpBCitUUk5JTknEhiBNSVJLTworVFJOSU5JxIYgTUlSS08KK1RSTklOScSGIE1JUk9TTEFWCitUUk5JTknEhiBNT03EjElMTworVFJOSU5JxIYgT0xJVkVSQQorVFJOSU5JxIYgUkFESVZPSgorVFJOSU5JxIYgUkFET0pLQQorVFJOSU5JxIYgUkFET1ZBTgorVFJOSU5JxIYgU1RFVkEKK1RSTklOScSGIFZMQURJTUlSCitUUk5KQUtPViBEVcWgQU4KK1RSTk9WQUMgTkFEQQorVFJPxIxBIEtPUk5FTAorVFJPxaBFTEpBQyBNQVRPCitUUk/FoEtJTiBTQVZFVEEKK1RST8WgS0lOIFRBTUFSQQorVFJPSkFOT1YgRURWQVJECitUUk9KQU5PViBNQVJJSkEKK1RST0pBTk9WIFJPTUFOCitUUk9KS09WScSGIElMT05BCitUUk9NTEVSIExBU0xPCitUUlDEjEVWScSGIE1JUk9TTEFWCitUUlDEjEVWU0tJIFRPTcSMRQorVFJQSU5BQyBKRUxFTkEKK1RSUEtBIFBBVkxFCitUUlBLQSBQQVZMRQorVFJQT1ZTS0kgVkFTSUxKCitUUlNURU5KQUsgRlJBTkpBCitUUlRJxIYgU0xBVktPCitUUlXFoE5PVkVDIElWQU4KK1RSVUJBUkFDIEdBQlJJSkVMQQorVFJVREEgQUxJSkEKK1RSVURJxIYgSVZBTgorVFJVSknEhiBEVcWgSUNBCitUUlVKScSGIE1JTE/FoCBWRVRFUklOQVIKK1RSVU1CScSGIFZFRFJBTgorVFJVTUnEhiBTT0ZJSkEKK1RSVU1JxIYgVkVSQQorVFXEjEVWIMW9SVZBTktBCitUVcWgRVYgxb1JVktPCitUVcWgSkFLIEpBTgorVFXFoEpBSyBKVVJBSgorVFXFoEpBSyBNSUxPxaAKK1RVxaBORUsgT1RJTElKQQorVFXFoE5KQUsgQU5BCitUVUJJxIYgxb1JVkFOCitUVUJJxIYgQUxFS1NBTkRBUgorVFVCScSGIEJSQU5JU0xBVgorVFVCScSGIERSQUdVVElOCitUVUJJxIYgRFXFoEFOCitUVUJJxIYgRFXFoEFOCitUVUJJxIYgSlVHT1NMQVYKK1RVQknEhiBMRVBPU0FWQQorVFVCScSGIE1JTEFOCitUVUJJxIYgTUlMRU5LTworVFVCScSGIE1JTElWT0oKK1RVQknEhiBNSUxPxaAKK1RVQknEhiBNSUxPSktPCitUVUJJxIYgTUlMT1JBRAorVFVCScSGIE5JS09MQQorVFVCScSGIE5PVkFLCitUVUJJxIYgT0xHQQorVFVCScSGIFBFVEFSCitUVUJJxIYgUkFEQQorVFVCScSGIFJBRE1JTEEKK1RVQknEhiBSQURPVkFOCitUVUJJxIYgU0FWQQorVFVCScSGIFNUQU5LTworVFVCScSGIFNWRVRPWkFSIERSCitUVUJJxIYgVkVSQQorVFVCScSGIFZMQURJTUlSCitUVUJJxIYgWk9SQU4KK1RVQklOIEtBVEFSSU5BCitUVUJJTiBTVE9KQU4gRElQTCBJTkcKK1RVQklOIFNUT0pBCitUVUJJTiBUT01JU0xBVgorVFVCSU4gWk9SS0EKK1RVQ0FLT1YgxJBPUsSQRQorVFVDQUtPViDEkE9SxJBFCitUVUNBS09WIEJPxaBLTworVFVDQUtPViBCT0dEQU5LQQorVFVDQUtPViBCT1JBCitUVUNBS09WIEJSQU5LTworVFVDQUtPViBEQVJJTktBCitUVUNBS09WIERSQUdBTgorVFVDQUtPViBLQU1FTktPCitUVUNBS09WIExBVElOS0EKK1RVQ0FLT1YgTUFSSUpBCitUVUNBS09WIE1BUktPCitUVUNBS09WIE1JTEFOCitUVUNBS09WIE1JTEFOCitUVUNBS09WIE1JTElDQQorVFVDQUtPViBOT1ZBSworVFVDQUtPViBSQURJVk9KCitUVUNBS09WIFJBRE9KS0EKK1RVQ0FLT1YgUkFET1NMQVYKK1RVQ0FLT1YgUkFKS08KK1RVQ0FLT1YgU0lOScWgQQorVFVDQUtPViBUQU5BU0lKRQorVFVDQUtPViBWRVJBCitUVUNBS09WIFZMQURJTUlSCitUVUNBS09WIFpPUkFOQQorVFVDQUtPViBaT1JBCitUVUNBS09WScSGIMSQT1LEkEUKK1RVQ0FLT1ZJxIYgREFOSUNBCitUVUNBS09WScSGIERFU0FOS0EKK1RVQ0FLT1ZJxIYgSk9WQU4KK1RVQ0FLT1ZJxIYgTUlMT8WgCitUVUNBS09WScSGIFJBRE9TTEFWCitUVUNJxIYgxJBPUsSQRQorVFVDScSGIEJSQU5JU0xBVgorVFVDScSGIExBWkFSCitUVUNJxIYgTUlMRU5LTworVFVDScSGIE1JUk9TTEFWQQorVFVDScSGIE1JUk9TTEFWCitUVUNJxIYgVlVKSUNBCitUVUNPVknEhiBaT1JBCitUVUZFR0TFvUnEhiBNSUxFTgorVFVLQcSMIE1JSEFKTE8KK1RVS0FOScSGIEVORFJFCitUVUtBTknEhiBJUkVOQQorVFVLQVIgRkFESUwKK1RVS0FSIE1JUkpBTkEKK1RVS0nEhiBQRVRBUgorVFVLScSGIFNUT0pBTktBCitUVUxBxIYgSk9WSUNBCitUVUxFTsSMScSGIEtBVElDQQorVFVMRU7EjEnEhiBSQURPU0xBVkEKK1RVTEVOxIxJxIYgUkFET1NMQVYKK1RVTEnEhiBCT1JLTworVFVMScSGIE5FVkVOS08KK1RVTFVCRUMgxJBPUsSQRQorVFVMVUJFQyBNSUxLQQorVFVMVUJFQyBWQVNJTElKRQorVFVNQVJJxIYgQlJBTklTTEFWCitUVU1BUknEhiBDVkVUSU4KK1RVTUFSScSGIE1JTE9SQUQKK1RVTUJBUyBBR05FWkEKK1RVTUJBUyBJVkFOCitUVU1CQVMgTEpVREVWSVQKK1RVTUlOIERVxaBBTktBCitUVU5HVVogSkVMSVNBVkVUQQorVFVOScSGIFJBRE9KSUNBCitUVU5JxIYgUkFKS08KK1RVTknEhiBTUEFTT0pFCitUVU5JxIYgU1RFVkFOCitUVU5URVYgTUFSSUpBCitUVVBBTsSMRVZTS0kgTklLT0xBCitUVVBFQyBaVk9OSU1JUgorVFVQScSGIE5FVkVOS0EKK1RVUiBNSUhBSkxPCitUVVIgU1VaQU5BCitUVVLEjEFOIEpBTgorVFVSxIxBTiBKQU4KK1RVUsSMQU4gSlVSQUoKK1RVUsSMQU4gVkxBRElNSVIgU1VESUpBCitUVVLEjEnEhiBNSVJPU0xBVkEKK1RVUsWgScSGIEpFTEVOQQorVFVSxaBJSkFOIFZBU0EKK1RVUkFJIEJFTEEKK1RVUkFJIE1JSEFKTE8KK1RVUkFJIFRFUkVaQQorVFVSQUpMScSGIE1JTEUKK1RVUkFKTElKQSBCT8W9SUNBCitUVVJBSkxJSkEgTUlST1NMQVYKK1RVUkFOIMSQVVJBCitUVVJBTiBMSlVCSUNBCitUVVJBTlNLSSDEkE9SxJBFCitUVVJBTlNLSSBGRVJFTkMKK1RVUkFOU0tJIEdFWkEKK1RVUkFOU0tJIEpBTk/FoAorVFVSQU5TS0kgSk9TSVAKK1RVUkFOU0tJIExBU0xPCitUVVJBTlNLSSBNQVJJQ0EKK1RVUkFOU0tJIE1BUklKQQorVFVSQU5TS0kgTUFUSUpBCitUVVJBTlNLSSBQRVRBUgorVFVSQU5TS0kgU1RFVkFOCitUVVJJIEFSUEFECitUVVJJIFRJQk9SCitUVVJJxIYgTFVLQQorVFVSScSGIE1BUklOS08KK1RVUklLQSBKT1NJTQorVFVSSU5TS0kgRFXFoEFOCitUVVJJTlNLSSBFRElUQQorVFVSSU5TS0kgTUlMRVRBCitUVVJJTlNLSSBNSU9NSVIKK1RVUksgTUlSS08KK1RVUksgTkFEQQorVFVSS0FMSiBLQVRBCitUVVJLT1ZJxIYgSEFLSUpBCitUVVJLT1ZJxIYgTUlSS08KK1RVUktPVknEhiBNSVRBUgorVFVSS09WScSGIFBFVEFSCitUVVJLT1ZJxIYgUkFGSVQKK1RVUktPVknEhiBWTEFESU1JUgorVFVSS09WScSGIFpJTktBCitUVVJLVUxPViDFvUFLTElOQQorVFVSS1VMT1YgRFXFoEFOCitUVVJLVUxPViBKT1ZBTgorVFVSTEFLT1YgQ1ZFVEFOCitUVVJOQUogU0xBVk9MSlVCIERJUEwgSU5HCitUVVJPIE1JSEFMSgorVFVST01BTiBNSUxPUkFECitUVVJPUE9MSkFDIE1JxIZPCitUVVJVREnEhiBNSUxBTgorVFVSVURJxIYgTUlPRFJBRworVFVSVURJSkEgTUlMT1JBRAorVFVSVUtBTE8gTUlPRFJBRworVFVSVUtBTE8gUkFETUlMQQorVFVSVUtBTE8gWk9SQQorVFVSWk8gSkVMSVNBVkVUQQorVFVSWk8gS0FSTE8KK1RVVEnEhiBJTElKQQorVFVUTklMT1ZJxIYgTkFEQQorVFVUTkpFVknEhiBCT8W9RU5LQQorVFVUTkpFVknEhiBCT0dEQU4KK1RVVE5KRVZJxIYgSk9WQU4KK1RVVE5KRVZJxIYgTUlST1NMQVYKK1RVVE5KRVZJxIYgUkFET0pLQQorVFVUT1JPViBERVNBTsSMScSGCitUVVRPUk9WIEpVTEtJQ0EKK1RVVE9ST1YgU1RBTkEKK1RVVE9ST1YgU1RFVkFOCitUVVRVTFVHRMW9SUpBIE1BUkEKK1RVVkVExb1JxIYgRFJBR0FOQQorVFVWScSGIFNMT0JPREFOCitUVlJUS09WScSGIE1BUklOIERSIExFS0FSCitVxaDEhkVCUktBIExBWkFSCitVxaDEhkVCUktBIE1JTEVOS08KK1XFoMSGRUJSS0EgWkxBVE8KK1XFoMSGVU1MScSGIE1JTEVOS08KK1XFoMSGVU1MScSGIE5FxaBLTworVcWgxIZVTUxJxIYgVlVLSUNBCitVxaBBTiBKQU5FWgorVcWgSkFLIEpBTktPCitVxaBKQUsgSkFSTUlMQQorVcWgSkFLIFZMQVNUQQorVcWgTEpFQlJLQSBNSUxPUkFECitVxaBUSVBBSyBKRUxBCitVxIZVS0FMTyBTSU1PCitVxb1BUiBERVNBTktBCitVxb1BUiBLQVRJQ0EKK1XFvUnEjEFOSU4gxJBPUsSQRQorVUJBVsSMScSGIFNBVkEKK1VCQVZJxIYgREFSSU5LQQorVUJBVknEhiBMSlVCSUNBCitVQkFWScSGIE1PTcSMSUxPIERSCitVQklQQVJJUCDEjEVETworVUJJUEFSSVAgxb1JVktPCitVQklQQVJJUCBHT0pLTworVUJJUEFSSVAgSUxFCitVQklQQVJJUCBKQU5KQQorVUJJUEFSSVAgSk9WTworVUJJUEFSSVAgTUFSSU5LTworVUJJUEFSSVAgTUFSS08KK1VCSVBBUklQIE1JTEFOCitVQklQQVJJUCBNSVJLTworVUJJUEFSSVAgTU9NSVIKK1VCSVBBUklQIFBBVkxFCitVQklQQVJJUCBTTEFWS08KK1VCSVBBUklQIFRPREUKK1VCSVBBUklQIFZPSktPCitVQklQQVJJUCBaRFJBVktPCitVQklQQVJJUCBaT1JBTgorVUJPUktBIMWgQU5ET1IKK1VCT1JLQSBNQVJUT04KK1VCT1JLQSBTVEVWS0EKK1VCT1JOSkkgxaBBTkRPUgorVUJPUk5KSSBBTkRSQcWgCitVQk9WScSGIEVWQQorVUJPVknEhiBKRUZUQQorVUJPVknEhiBKT1ZJQ0EKK1VCT1ZJxIYgTUFSS08KK1VCT1ZJxIYgTUlMT8WgCitVQk9WScSGIFBFVFJBCitVQk9WScSGIFJBSktPCitVQ0FKIFZMQURJTUlSCitVRElDS0kgUEFKQQorVURJQ0tJIFNMQVZJQ0EKK1VESUNLSSBTUkVET0pFCitVRE9WScSMScSGIEJPQkFOCitVRE9WScSMScSGIEJSQU5LTworVURPVknEjEnEhiBJVkFOCitVRE9WScSMScSGIE1PTUlSCitVRE9WScSMScSGIFJBRE9TTEFWCitVRE9WScSMScSGIFNURVZBTgorVURPVknEjEtJIEJSQU5LTyBMRUtBUgorVURPVknEjEtJIEpVTEtBCitVRE9WScSMS0kgT0xHSUNBIERSCitVRE9WScSMS0kgU0xPQk9EQU4KK1VET1ZJxIxLSSBTVkVUT1pBUgorVURSSUpBIFBFVEFSCitVRFZBUkRJIEtBUkxPCitVR0FSxIxJTkEgQk9SSVNMQVYKK1VHQVLEjElOQSBEUkFHQU4KK1VHQVLEjElOQSBJTElKQQorVUdBUkFLIMSQT1LEkEUKK1VHQVJBSyBCT8W9TworVUdBUkFLIERSQUdBTgorVUdBUkFLIERVxaBBTgorVUdBUkFLIFBFVEFSCitVR0FSS09WScSGIERBUklOS0EKK1VHQVJLT1ZJxIYgSkVMQQorVUdBUktPVknEhiBLQVRJQ0EKK1VHQVJLT1ZJxIYgU1RFVkFOCitVR0xKRcWgScSGIEJPxaBLTworVUdMSkXFoEnEhiBISUxEQQorVUdSxIxJxIYgVlVLSUNBCitVR1JFxaBJxIYgUEVUQVIKK1VHUkVNIE1BUklKQQorVUdSRU0gUkFET1ZBTgorVUdSRU4gTUlMT1JBRAorVUdSRU4gUEVUQVIKK1VHUkVOScSGIExBU0xPCitVR1JFTknEhiBNSUhBTEoKK1VHUkVOT1ZJxIYgVlXEjEnEhgorVUdSRU5PVknEhiBWVUpBRElOCitVR1JJQ0EgRFJBR0FOCitVR1JJQ0EgU1JFxIZLTworVUdSSU4gSUxJSkEKK1VHUklOIE1JTE9WQU4KK1VHUklOxIxJxIYgREFOSUxLQQorVUdSSU7EjEnEhiBET0JSSUxBCitVR1JJTsSMScSGIE1JTElWT0oKK1VHUklOxIxJxIYgTUlSSkFOQSBEUgorVUdSSU7EjEnEhiBTVEVWQU4KK1VHUklOxIxJxIYgVkxBREEgRElQTCBJTkcKK1VHUklOT1YgxJBVUklDQQorVUdSSU5PViBET0JSSUxBCitVR1JJTk9WIE1JTElDQQorVUdSSU5PViBOQURBCitVR1JOT1YgVkxBRElNSVIKK1VHUk5PViBaT1JJQ0EKK1VIRVIgVkVSQQorVUhMQVJJSyBFTElaQUJFVEEKK1VITEFSSUsgTEFESVNMQVYKK1VITEFSSUsgU1RFVkFOCitVSE9SIFBFVEFSCitVSiBNQVJUT04KK1VKxIxJxIYgQkxBxb0KK1VKxIxJxIYgVE9NQQorVUpESUxPVknEhiBNSUxPUkFECitVSkZBTFXFoCBWRUxJTUlSCitVSkZBTFXFoEkgxJBVUkEKK1VKRkFMVcWgSSBKQU5LTworVUpGQUxVxaBJIEpVTElKQU4KK1VKRkFMVcWgSSBMSlVCT01JUgorVUpGQUxVxaBJIE1JUk9TTEFWCitVSkZBTFXFoEkgTklLT0xBCitVSkZBTFXFoEkgU0lMVkVTVEVSCitVSkZBTFXFoEkgVkxBRElNSVIKK1VKRkVMSkFOIE1JTEFOCitVSkhBWkkgQk9SScWgS0EKK1VKSEFaSSBJVkFOCitVSkhBWkkgSkVMSVNBVkVUQQorVUpIQVpJIExBRElTTEFWCitVSkhBWkkgTUlSS08KK1VKSEVMSkkgSk9WQU5LQQorVUpIRUxKSSBNSUhBTEoKK1VKTEFLT8WgIEtBUkxPCitVSlZBUkkgR0FCT1IKK1VKVkFSSSBLQVRBTElOCitVS0HEjEVLIFZFUktBCitVS1JPUElOQSDEjEVEQQorVUtST1BJTkEgREVTQU5LQQorVUtST1BJTkEgSkVMRU5BCitVS1JPUElOQSBKT1ZBTktBCitVS1JPUElOQSBKT1ZBTgorVUtST1BJTkEgTUlMT1ZBTgorVUtST1BJTkEgTkVCT0rFoEEKK1VLUk9QSU5BIFBBTlRPCitVS1JPUElOQSBUT01JU0xBVgorVUxFTUVLIMSQVVJPCitVTEnEhiDFvUVMSktBCitVTEnEhiDEkE9SxJBFCitVTEnEhiBBTEVLU0FOREFSCitVTEnEhiBET0JST1NMQVYKK1VMScSGIE1JTEFOCitVTEpBUkVWScSGIFBFUk8KK1VNRUsgTUFSR0lUQQorVU1FSyBNSUtMT8WgCitVTUnEjEVWScSGIFBFUkEKK1VNScSGRVZJxIYgxb1FTEpLTworVU1JxIZFVknEhiBHT1JEQU5BCitVTUnEhkVWScSGIE1JUktPCitVTUnEhkVWScSGIE1MQURFTgorVU7EjEFOSU4gQk9KQU4KK1VOxIxBTklOIERVxaBBTgorVU5HQVIgVElIT01JUgorVU5HVVJPVknEhiBKRUxFTkEKK1VOS09WScSGIEFOxJBFTEtPCitVTktPVknEhiBNTEFERU4KK1VSQcSMIMWgQU5ET1IKK1VSQcSMIEFMRUtTQU5EQVIKK1VSQcSMIERBTklDQQorVVJBxIwgR0laRUxBCitVUkHEjCBJxaBUVkFOCitVUkHEjCBST1pBTElKQQorVVJCQU4gxJBFUsSQCitVUkJBTiDEkE9SxJBFCitVUkJBTiBBTkEKK1VSQkFOIEhPUlZBVAorVVJCQU4gScWgVFZBTgorVVJCQU4gSkFOT8WgCitVUkJBTiBKQVNOQQorVVJCQU4gTUlIQUxKCitVUkJBTiBNSUhBTEoKK1VSQkFOIFBBVkVMCitVUkJBTiBTVEFOSVNMQVYKK1VSQkFOIFNURVZBTgorVVJCQU4gVklLVE9SSUpBCitVUkJBTiBWTEFESVNMQVYKK1VSQkFOxIxJSyBQSVJPxaBLQQorVVJCQU7EjElLIFNJTFZJQQorVVJCQU5PVknEhiBTVEVWQU4KK1VSREFSRVZJxIYgU1RBTklNSVIKK1VSRUtFIMSQT1LEkEUKK1VSSSDEjEFCQQorVVJJIEFMRUtTQU5EQVIKK1VSSSBFVkEKK1VSSSBHQUJPUgorVVJJIEtBUkxPCitVUkkgTEFTTE8KK1VSSSBQQUpBCitVUkkgU1RFVkFOCitVUkkgU1RFVkFOCitVUktJTiBMSlVCSUNBCitVUkxJSCBNQVJJSkEKK1VST8WgRVYgxb1JVkFOCitVUk/FoEVWIEJPSktBCitVUk/FoEVWIElMSUpBCitVUk/FoEVWIEpFUklDQQorVVJPxaBFViBNSUxFTktPCitVUk/FoEVWIE1JUkpBTkEKK1VST8WgRVYgUEFKQQorVVJPxaBFViBTT0ZJSkEKK1VST8WgRVYgU1RPSkFOCitVUk/FoEVWIFZFTElOS0EKK1VST8WgRVZJxIYgxb1JVkFOCitVUk/FoEVWScSGIEFMRUtTQU5EQVIKK1VST8WgRVZJxIYgQk9HREFOIERJUEwgSU5HCitVUk/FoEVWScSGIEJPUklWT0oKK1VST8WgRVZJxIYgQlJBTktBCitVUk/FoEVWScSGIEJSQU5LTworVVJPxaBFVknEhiBEUkFHScWgQQorVVJPxaBFVknEhiBEVcWgQU4KK1VST8WgRVZJxIYgSVZBTgorVVJPxaBFVknEhiBMRU9OQQorVVJPxaBFVknEhiBMSklMSkFOQQorVVJPxaBFVknEhiBMSlVCSUNBCitVUk/FoEVWScSGIE1BUktBCitVUk/FoEVWScSGIE1JTE/FoAorVVJPxaBFVknEhiBNSVJKQU5BCitVUk/FoEVWScSGIE5BREEKK1VST8WgRVZJxIYgUlXFvUlDQQorVVJPxaBFVknEhiBTUsSQQQorVVJPxaBFVknEhiBTVEFOSVNMQVZBCitVUk/FoEVWScSGIFZJRE9KS08KK1VST8WgRVZJxIYgVkxBRElNSVIKK1VST8WgRVZJxIYgWk9SSUNBCitVUlNJxIYgVkxBRElNSVIKK1VSU1VMRVNLVSBGTE9SSU4KK1VSU1VMRVNLVSBKVUxJSkFOCitVU0tPS09WScSGIEJSQU5JU0xBVgorVVNLT0tPVknEhiBNSUxFTktPCitVU0tPS09WScSGIE1JTE/FoAorVVNUScSGIMSQVVJBCitVU1RJxIYgTklLT0xBCitVU1RJxIYgU0lNQQorVVNUScSGIFZPSktPCitVVEHFoEkgxIxBQkEKK1VUSkXFoEFOT1ZJxIYgU0lNTworVVRKRcWgSU5PVknEhiBERVNBTktBCitVVEpFxaBJTk9WScSGIExKSUxKQU5BCitVVEpFxaBJTk9WScSGIE1JTEFOCitVVEpFxaBJTk9WScSGIFZFUkEKK1VUT1JOSUsgSVZBTgorVVRPUk5JSyBKT1ZBTgorVVRPUk5JSyBLQVRJQ0EKK1VUT1JOSUsgTEpVQklDQQorVVRPUk5JSyBNSUxPxaAKK1VUT1JOSUstUkFEVUxPVknEhiBNQVJJSkEKK1VUT1JOSUsgU1RFVkFOCitVVE9STklLIFNWRVRPWkFSCitVVFLFvUFOIEJSQU5LTworVVRWScSGIEtPU1RBCitVVFZJxIYgUEFWTEUKK1VUVknEhiBWQVNBCitVVFZJxIYtVlVLQcWgSU5PVknEhiBEQVJBCitVVkFMScSGIEFOR0VMSU5BCitVVkFMScSGIERVxaBBTktBCitVVkFMScSGIERVxaBBTgorVVZBTEnEhiBEVcWgS08KK1VWQUxJxIYgTEFaQVIKK1VWQUxJxIYgTUVMQU5JSkEKK1VWQUxJxIYgUkFET1NMQVYKK1VWQUxJxIYgU1RBTklTTEFWCitVVkFMScSGIFZBU0EKK1VWRVJJxIYgxJBVUkEKK1VWRVJJxIYgQlJBTktBCitVVkVSScSGIE1JTEFOCitVVkVSScSGIE1JTE/FoAorVVZFUknEhiBNSUxPUkFECitVVkVSScSGIE1JUkpBTkEKK1VWRVJJxIYgTklLT0xBCitVWkFJUiBBTElKQQorVVpFSVJJIE1VQVJFTQorVVpFTEFDIMSQT1LEkEUKK1VaRUxBQyDEkE9SxJBFCitVWkVMQUMgxJBPUsSQRQorVVpFTEFDIMSQT1LEkEUKK1VaRUxBQyDEkFVSSUNBCitVWkVMQUMgxJBVUk8KK1VaRUxBQyBBTEVLU0FORFJBCitVWkVMQUMgQUxFS1NBCitVWkVMQUMgQklTRVJLQQorVVpFTEFDIEJPxaBLTworVVpFTEFDIEJPR0RBTgorVVpFTEFDIEJPR0RBTgorVVpFTEFDIEJSQU5JU0xBVgorVVpFTEFDIEJSQU5JU0xBVgorVVpFTEFDIEJSQU5JU0xBVgorVVpFTEFDIEJSQU5LTworVVpFTEFDIENWRVRBCitVWkVMQUMgREFSSU5LQQorVVpFTEFDIERFU0FOS0EKK1VaRUxBQyBEUkFHQU4KK1VaRUxBQyBEUkFHQU4KK1VaRUxBQyBEUkFHQU4KK1VaRUxBQyBEVcWgQU5LQQorVVpFTEFDIERVxaBBTgorVVpFTEFDIERVxaBBTgorVVpFTEFDIERVxaBBTgorVVpFTEFDIERVxaBBTgorVVpFTEFDIEVWQQorVVpFTEFDIEdBTElOQQorVVpFTEFDIEdPUkRBTkEKK1VaRUxBQyBJTElKQQorVVpFTEFDIElWQU4KK1VaRUxBQyBKRUxFTkEKK1VaRUxBQyBLT1NUQQorVVpFTEFDIExBWkFSCitVWkVMQUMgTUFSSUpBCitVWkVMQUMgTUFSSUpBCitVWkVMQUMgTUFSSUpBCitVWkVMQUMgTUFSSUpBCitVWkVMQUMgTUlIQUpMTworVVpFTEFDIE1JTEFOCitVWkVMQUMgTUlMQU4KK1VaRUxBQyBNSUxBTgorVVpFTEFDIE1JTEFOCitVWkVMQUMgTUlMQU4KK1VaRUxBQyBNSUxBTgorVVpFTEFDIE1JTEFOCitVWkVMQUMgTUlMRQorVVpFTEFDIE1JTElDQQorVVpFTEFDIE1JTE/FoAorVVpFTEFDIE1PTcSMSUxPCitVWkVMQUMgTklLT0xBCitVWkVMQUMgTklLT0xBCitVWkVMQUMgT0xJVkVSQQorVVpFTEFDIFJBRE1JTEEKK1VaRUxBQyBSQURPSktBCitVWkVMQUMgUkVOQVRBCitVWkVMQUMgU0xBVktPCitVWkVMQUMgU0xPQk9EQU4KK1VaRUxBQyBTTE9CT0RBTgorVVpFTEFDIFNPRklKQQorVVpFTEFDIFNSxJBBTgorVVpFTEFDIFNSxJBBTgorVVpFTEFDIFNURVZBTgorVVpFTEFDIFNURVZBTgorVVpFTEFDIFNURVZBTgorVVpFTEFDIFNURVZBTgorVVpFTEFDIFNUT0pBTgorVVpFTEFDIFZFUkEKK1VaRUxBQyBWVUpPCitVWkVMQUMgWkxBVEtPCitVWkVMQUMgWkxBVEtPCitVWkVMQUMgWkxBVEtPCitVWkVMQUMgWk9SQU4KK1VaRUxBQyBaT1JBTgorVVpFTEFDIFpPUkFOCitVWkVMQUMgWk9SQU4KK1VaRUxBQyBaT1JBTgorVVpFTEFDIFpPUkFOCitVWk9ST0NLSSBJxaBUVkFOCitVWlVOT1ZJxIYgQlJBTklTTEFWCitVWlVOT1ZJxIYgTEFESVNMQVYKK1VaVU5PVknEhiBNSUxPUkFECitVWlVOT1ZJxIYgTUlUTworVVpVTk9WScSGIE5BU1VGCitVWlVOT1ZJxIYgUkFKS08KK1VaVVJPViBPQlJFTklKQQorVVpVUk9WIFJBRE1JTEEKK1ZBxIxJxIYgQUxFS1NBTkRBUgorVkHEjEnEhiBaT1JBTgorVkHEjElLIEpPxb1FRgorVkHFoCBBVElMQQorVkHFoCBKT1NJUAorVkHFoCBQQVZMRQorVkHFoCBWRVJBCitWQcWgxIxJxIYgQk/FvUlEQVIKK1ZBxaBBxaAgTUlLTE/FoAorVkHFoEHFoCBPTEdBCitWQcWgQURJIEZFUkVOQworVkHFoEFESSBKVUxJSkFOQQorVkHFoEFESSBWQUxFUklKQQorVkHFoEFMScSGIEFOS0EKK1ZBxaBBTEnEhiBNSUxPxaAKK1ZBxaBBTEnEhiBPQlJBRAorVkHFoEFMScSGIFVST8WgCitWQcWgVEFHIMSQT1LEkEUKK1ZBxaBUQUcgQU5EUkHFoAorVkHFoFRBRyBJxaBUVkFOCitWQcWgVEFHIEnFoFRWQU4KK1ZBxaBUQUcgSkFTTUlOS0EKK1ZBxaBUQUcgTUFSR0lUQQorVkHFoFRBRyBNQVJJSkEKK1ZBxaBUQUcgTUlIQUxKCitWQcWgVEFHIE9MR0EKK1ZBxaBUQUcgUlXFvUEKK1ZBxaBUQUcgU1RPSkFOCitWQcW9ScSGIERBTklDQQorVkHFvUnEhiBKT1ZBTgorVkHFvUnEhiBKVUxJSkEKK1ZBxb1JxIYgTUlSQQorVkHFvUnEhiBTTEFWSUNBCitWQcW9ScSGIFZFUklDQQorVkHFvUnEhiBWRVNFTElOCitWQcW9ScSGIFZMQURJTUlSCitWQcW9T05KSSBBTlRBTAorVkHFvU9OSkkgUk9aQUxJSkEKK1ZBQ0kgxaBJTU9OCitWQUNJxIYgQkxBR09KRQorVkFDScSGIFZJREVOCitWQUNMQVZJSyBNQVJJSkEKK1ZBREFTS0kgQ0VDSUxJSkEKK1ZBREFTS0kgTEpVQk9NSVIKK1ZBRE9DIEZSQU5KQQorVkFET0MgSVZJQ0EKK1ZBRE9DIEpPU0lQCitWQUdJxIYgxJBVUk8KK1ZBR05FUiDEkFVSQQorVkFHTkVSIEFORFJJSkEKK1ZBR05FUiBKT1NJUAorVkFHTkVSIEtBUkxPCitWQUdORVIgTEFTTE8KK1ZBR05FUiBNQVJJSkEKK1ZBR05FUiBPVElMSUpBCitWQUdPIEnFoFRWQU4KK1ZBR08gU1RFVkFOCitWQUdVUknEhiBaRFJBVktPCitWQUpBR0nEhiBBTsSQRUxLQQorVkFKQUdJxIYgQk/FoEtPCitWQUpBR0nEhiBHT1JEQU5BCitWQUpBR0nEhiBNSUxBTgorVkFKQUdJxIYgTklLT0xBIERSCitWQUpBR0nEhiBOSUtPTEEKK1ZBSkFHScSGIFNBVk8KK1ZBSkFHScSGIFNJTUEKK1ZBSkFHScSGIFNUT0pBTgorVkFKQUdJxIYgWk9SSUNBCitWQUpEQSDFoEFORE9SCitWQUpEQSDFoEFORE9SCitWQUpEQSBJUk1BCitWQUpEQSBMQUpPxaAKK1ZBSkRBIExBSk/FoAorVkFKREEgVElCT1IKK1ZBSkRBIFRPTUlTTEFWCitWQUpEScSGIMW9SVZLTworVkFKREnEhiBJVkFOCitWQUpEScSGIEpPVkFOIERSCitWQUpEScSGIEpPVkFOIERSCitWQUpEScSGIE1JTElDQQorVkFKREnEhiBNSUxJQ0EKK1ZBSkRJxIYgTkFEQQorVkFKREnEhiBQRVRBUgorVkFKREnEhiBUSUhPTUlSCitWQUpETCBKT1ZBTgorVkFKREwgTUlST1NMQVYKK1ZBSkRMRSBKT0xBTgorVkFKTEVSIEFORFJJSkEKK1ZBSk7FoFRBSk4gUEVUQVIKK1ZBSk5CRVJHRVIgVkxBRElNSVIKK1ZBSk5CRVJHRVIgWkxBVEtPCitWQUpOQkVSR0VSIFpWT05JTUlSCitWQUpOR0VSVE5FUiBSQURPSktBIERJUEwgRUNDCitWQUpOSEVQTCBNQVJJQQorVkFKTkhFUEwgT1RNQVIgRElQTCBJTkcKK1ZBSk9WScSGIFZBU0lMSUpFCitWQUpTIMWgQU5ET1IKK1ZBSlMgQlJBTktPCitWQUpTIEtBUkxPCitWQUpTIEtBUkxPCitWQUpTIE1BR0RBCitWQUpTIFZFUklDQQorVkFKU0VOQkVSRyBKT1NJUAorVkFKVUtJxIYgUEFOVEVMSUpBCitWQUtBTkpBQyBNSUxJQ0EKK1ZBTCDEkE9SxJBFCitWQUwgQU5EUklKQQorVkFMIEVWQQorVkFMIFpPTFRBTgorVkFMQUggSkFOS08KK1ZBTEFOIE9TVE9KQQorVkFMQU4gWk9SQU4KK1ZBTERNQSBBUkJPCitWQUxFSyBFTUlMSUpBCitWQUxFSyBGUkFOSkEKK1ZBTEVOxIxJSyBQQVZFTAorVkFMRU7EjElLIFNURVZBTgorVkFMRU7EhklLIEFORFJJSkEKK1ZBTEVOxIZJSyBKQU4KK1ZBTEVOxIZJSyBQQVZMRQorVkFMRU7EhklLIFZMQURJTUlSCitWQUxFTlQgxb1Vxb1BTkEKK1ZBTEVOVCBKQU5LTworVkFMRU5UIEpBTktPCitWQUxFTlQgTEFTTE8KK1ZBTEVOVEEgSkFTTUlOS0EKK1ZBTEVOVEVOSkkgSk9TSVAKK1ZBTEVOVEVOSkkgSlVMSUpBTkEKK1ZBTEVOVEnEhiBJVkFOCitWQUxFTlRJxIYgVklLVE9SCitWQUxFTlRJxIYgVklLVE9SCitWQUxFTlRJSyBOSUtPTEEKK1ZBTEVOVElOIElNUkUKK1ZBTEVOVElOIEpVQ0lLQQorVkFMRU5USU4gU1RFVkFOCitWQUxFTlRJUk9WIFNURVZBTgorVkFMRU5USVJPVknEhiBMSlVCT01JUgorVkFMRU5UT1ZJxIYgSk9TSVAKK1ZBTEVOVE9WScSGIEtBUkxPCitWQUxFTlRPVknEhiBLQVJMTworVkFMRU5UT1ZJxIYgS0FSTE8KK1ZBTEVOVE9WScSGIFRJQk9SCitWQUxJxIYgR09SQU4KK1ZBTEnEhiBTTEFWS08KK1ZBTElExb1JSkEgTklLT0xBIERJUEwgSU5HCitWQUxJSE9SQSBKT1pFRgorVkFMSUhPUkEgS0FUSUNBCitWQUxLQUkgSk/FvUVGCitWQUxLTyBHQVZSQQorVkFMTyBHT1JEQU5BCitWQUxPIEpPU0lQCitWQUxPIEpPU0lQCitWQUxPIE1JUktPCitWQUxPIFNURVZBTgorVkFMT0sgxJBPUsSQRQorVkFMT0sgxJBVUkEKK1ZBTE9LIFJBVE9NSVIKK1ZBTFRFUiBEUkFHSU5KQQorVkFMVEVSIExKSUxKQU5BCitWQUxURVIgTk9SQkVSVAorVkFMVE5FUiBQRVRBUgorVkFMVcWgRUsgSk9WQU4KK1ZBTFXFoEVLIEtBVElDQQorVkFMVcWgRUsgUEFWTEUKK1ZBTFVIIEJSQU5JU0xBVgorVkFMVUggSkFOS08KK1ZBTFVIIEpBTktPCitWQUxVSCBLQVJMTworVkFMVUggTUlIQUpMTworVkFNQkFIIFZJS1RPUklKQQorVkFNT8WgRVIgTUlSSkFOQQorVkFNT8WgRVIgUEFWTEUKK1ZBTVBPVkFDIEpPU0lQCitWQU7EkEVMIE1JTEFOCitWQU5ERVJFUiBQQUwKK1ZBTkRPUkkgTUFSSUpBCitWQU5JxIYgRFJBR1VUSU4KK1ZBTknEhiBLQVRJQ0EKK1ZBTknEhiBMSlVCSUNBCitWQU5KVVIgRlJBTkpBCitWQU5KVVIgRlJBTkpBCitWQU5KVVIgScWgVFZBTiBESVBMIElORworVkFOSlVSIEpPxb1FRgorVkFOSlVSIEpPU0lQCitWQU5KVVIgS0FSTE8KK1ZBTkpVUiBLQVJMTworVkFOSlVSIE1BUklKQQorVkFOS08gSkFST1NMQVYKK1ZBTk9WScSGIFNORcW9QU5BCitWQVBBIEpPVkFOS0EKK1ZBUEEgTUlMQU4gRFIKK1ZBUEEgVkVSQQorVkFQQSBaT1JBTgorVkFQRU5TS0kgSVZBTgorVkFQRU5TS0kgTUFSSUpBCitWQVLFoEFOSkkgSVJFTkEKK1ZBUkHEkEFOSU4gTUlMQU4KK1ZBUkFESSBUSUJPUiBEUiBQUk9GCitWQVJBR0nEhiBCT0dEQU4KK1ZBUkFHScSGIExKVUJJQ0EKK1ZBUkFHScSGIE1BUklKQQorVkFSQUdJxIYgTUVMQU5JSkEKK1ZBUkFHScSGIE1JTElDQQorVkFSQUdJxIYgVknEhkVOVElKRQorVkFSQUpJxIYgR09SQU4KK1ZBUkFKScSGIEdPUkFOCitWQVJBVkEgRU1JTElKQU4KK1ZBUkJBSSBMQURJU0xBVgorVkFSQ0FSIERFU0FOS0EKK1ZBUkRJxIYgR0FWUklMTworVkFSRU5JS0EgxJBPS0EKK1ZBUkVOSUtBIEJSQU5JU0xBVgorVkFSRU5JS0EgUkFET0pLQQorVkFSRVZBQyBEUkFHQU4KK1ZBUkdBIMWgQU5ET1IKK1ZBUkdBIMWgQU5ET1IKK1ZBUkdBIMWgQU5ET1IKK1ZBUkdBIMWgQU5ET1IKK1ZBUkdBIMWgQU5ET1IKK1ZBUkdBLcWgT01PxJBJIEpBTk/FoAorVkFSR0Egxb1BUktPCitWQVJHQSDEkEVSxJAKK1ZBUkdBIMSQT1LEkEUKK1ZBUkdBIMSQT1LEkEUKK1ZBUkdBIMSQVUxBCitWQVJHQSDEkFVSQQorVkFSR0EgxJBVUkEKK1ZBUkdBIEFMRUtTQU5EQVIKK1ZBUkdBIEFOQQorVkFSR0EgQU5EUkHFoAorVkFSR0EgQU5EUklKQQorVkFSR0EgQU5EUklKQQorVkFSR0EgQU5UT04KK1ZBUkdBIEFSQU5LQQorVkFSR0EgQkVMQQorVkFSR0EgQkVMQQorVkFSR0EgQklMSkFOQQorVkFSR0EtQlVSQUkgRVLFvUVCRVQKK1ZBUkdBIERSQUdJQ0EKK1ZBUkdBIERVxaBBTktBCitWQVJHQSBFUsW9SUtBCitWQVJHQSBGRVJFTkMKK1ZBUkdBIEZFUkVOQworVkFSR0EgRkVSRU5DCitWQVJHQSBGUkFOSkEKK1ZBUkdBIEZSQU5KQQorVkFSR0EgRlJBTkpPCitWQVJHQSBGUkFOSk8KK1ZBUkdBIEdBQk9SCitWQVJHQSBHSVpFTEEKK1ZBUkdBIEhFTEVOQQorVkFSR0EgScWgVFZBTgorVkFSR0EgScWgVFZBTgorVkFSR0EgScWgVFZBTgorVkFSR0EgScWgVFZBTgorVkFSR0EgSUxFxaAKK1ZBUkdBIElNUkUKK1ZBUkdBLUlWQU4gQU5HRUxJTkEKK1ZBUkdBIEpBS0lNCitWQVJHQSBKQU4gRFIKK1ZBUkdBIEpBTk/FoAorVkFSR0EgSkFOT8WgCitWQVJHQSBKQVJPU0xBVgorVkFSR0EgSkVMRU5BCitWQVJHQSBKRUxJU0FWRVRBCitWQVJHQSBKT8W9RUYKK1ZBUkdBIEpPxb1FRgorVkFSR0EgSk/FvUVGCitWQVJHQSBKT1NJUEEKK1ZBUkdBIEpPU0lQCitWQVJHQSBKT1NJUAorVkFSR0EgSk9WQU4KK1ZBUkdBIEpVTElKQQorVkFSR0EgS0FSTE8KK1ZBUkdBIEtBVEFSSU5BCitWQVJHQSBLQVRBCitWQVJHQS1LTEnFoEFOScSGIExKVUJJQ0EKK1ZBUkdBIEtPUk5FTElKQQorVkFSR0EgS09STkVMCitWQVJHQSBLT1NBTkEKK1ZBUkdBIExBRElTTEFWCitWQVJHQSBMQUpPxaAKK1ZBUkdBIExBSk/FoAorVkFSR0EgTEFTTE8KK1ZBUkdBIExBU0xPCitWQVJHQSBMQVNMTworVkFSR0EgTEFTTE8KK1ZBUkdBIExKVVBLQQorVkFSR0EgTUFSR0lUQQorVkFSR0EgTUFSSUpBCitWQVJHQSBNQVJJSkEKK1ZBUkdBIE1BUklKQQorVkFSR0EgTUlIQUpMTworVkFSR0EgTUlIQUpMTworVkFSR0EgTUlIQUxKCitWQVJHQSBNSVJLTworVkFSR0EgTUlST04KK1ZBUkdBIE1JUk9TTEFWCitWQVJHQSBOSUtPTEEKK1ZBUkdBIE9MR0EKK1ZBUkdBIFBBTAorVkFSR0EgUEFMCitWQVJHQSBQRVRBUgorVkFSR0EgUEVUQVIKK1ZBUkdBIFBFVEVSIERJUEwgSU5HCitWQVJHQSBSQVNUSVNMQVYKK1ZBUkdBIFJPWkFMSUpBCitWQVJHQSBST1pBTElKQQorVkFSR0EgU0xBVklDQQorVkFSR0EgU1RFVkFOCitWQVJHQSBTVEVWQU4KK1ZBUkdBIFNUSkVQQU4KK1ZBUkdBIFRJQk9SCitWQVJHQSBUSUJPUgorVkFSR0EgVkVSQQorVkFSR0EgVkVSQQorVkFSR0EgVkVST05JS0EKK1ZBUkdBIFZMQURJU0xBVgorVkFSR0EgVkxBU1RBCitWQVJHQSBaT0xUQU4KK1ZBUkdBIFpPTFRBTgorVkFSR0VDIElWQU4KK1ZBUkhPTElLIEFEQU0KK1ZBUknEhkFLIEJPxb1PCitWQVJJxIZBSyBEQVJJTktBCitWQVJKVSBMQVNMTworVkFSSlUgTUFSSUpBCitWQVJKVSBURVJFWkEKK1ZBUktBxaAgSVZBTgorVkFSTUFaIElTTUVUCitWQVJNRcSQQSDEkE9SxJBFCitWQVJNVcW9QSBNQcSGQcWgCitWQVJOSUNBIElWQU4KK1ZBUk5JQ0EgUEVUQVIKK1ZBUk5KVSBBTlXFoEtBCitWQVJOSlUgR0laRUxBCitWQVJOSlUgSUxPTkEKK1ZBUk5PUyBNQVJUT04KK1ZBUk5VUyBKT8W9RUYKK1ZBUk/FoMSMScSGIFNQQVNFTklKQQorVkFST8WgSSBHQUJSSUVMQQorVkFST8WgSSBKT1ZBTgorVkFST8WgSSBTSUxBUkQKK1ZBU0VMRUsgxaBURUZBTgorVkFTRUxFSyBTVEVWQU4KK1ZBU0VMRUsgU1RFVkFOCitWQVNFTEVLIFZBU0lMSgorVkFTScSGIMW9RUxKS08KK1ZBU0nEhiDFvUlWS0EKK1ZBU0nEhiDFvUlWS08KK1ZBU0nEhiDFvUlWS08KK1ZBU0nEhiDFvUlWS08KK1ZBU0nEhiDEkE9LQQorVkFTScSGIMSQT1LEkEUKK1ZBU0nEhiDEkE9SxJBFCitWQVNJxIYgQUxFS1NBTkRBUgorVkFTScSGIEFOSUNBCitWQVNJxIYgQU5LSUNBCitWQVNJxIYgQk9KQU5BCitWQVNJxIYgQk9SSVNMQVYKK1ZBU0nEhiBCT1JJVk9KCitWQVNJxIYgQlJBTktPCitWQVNJxIYgQ1ZFVEtPCitWQVNJxIYgREFSSU5LQQorVkFTScSGIERPQlJJVk9KCitWQVNJxIYgRFJBR0FOQQorVkFTScSGIERSQUdBTgorVkFTScSGIERSQUdJQ0EKK1ZBU0nEhiBEUkFHSUNBCitWQVNJxIYgRFJBR0lDQQorVkFTScSGIERSQUdPTEpVQgorVkFTScSGIERSQUdPTUlSCitWQVNJxIYgRFJBR09NSVIKK1ZBU0nEhiBEUkFHT1NMQVYKK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgQU4KK1ZBU0nEhiBEVcWgSUNBCitWQVNJxIYgRFXFoEtPIE5PVklOQVIKK1ZBU0nEhiBEVUJSQVZLQQorVkFTScSGIEVMRU5BCitWQVNJxIYgR09SQU4KK1ZBU0nEhiBHT1JEQU5BCitWQVNJxIYgR09SREFOQQorVkFTScSGIEdPUkRJQ0EKK1ZBU0nEhiBKQUtPVgorVkFTScSGIEpBTkEKK1ZBU0nEhiBKQU5LTworVkFTScSGIEpFTElDQQorVkFTScSGIEpPVk8KK1ZBU0nEhiBLQVRJQ0EKK1ZBU0nEhiBLT1NUQQorVkFTScSGIEtSSVNUSU5BCitWQVNJxIYgTEFaQVIKK1ZBU0nEhiBMSklMSkFOQSBEUgorVkFTScSGIExKSUxKQU5BCitWQVNJxIYgTEpVQk9NSVIKK1ZBU0nEhiBMVUtBCitWQVNJxIYgTUFLU0lNCitWQVNJxIYgTUFSSUpBTkEKK1ZBU0nEhiBNQVJLTworVkFTScSGIE1JxIZPCitWQVNJxIYgTUlIQUlMTworVkFTScSGIE1JSEFKTE8KK1ZBU0nEhiBNSUtBCitWQVNJxIYgTUlMQU4KK1ZBU0nEhiBNSUxBTgorVkFTScSGIE1JTEFOCitWQVNJxIYgTUlMQU4KK1ZBU0nEhiBNSUxBTgorVkFTScSGIE1JTEVOS08gRFIgUFJJTUFSSVVTCitWQVNJxIYgTUlMRU5LTworVkFTScSGIE1JTEVOS08KK1ZBU0nEhiBNSUxJQ0EKK1ZBU0nEhiBNSUxJTktPCitWQVNJxIYgTUlMT8WgCitWQVNJxIYgTUlMT8WgCitWQVNJxIYgTUlMT1ZBTgorVkFTScSGIE1JTE9WQU4KK1ZBU0nEhiBNSUxVVElOCitWQVNJxIYgTUlPRFJBRworVkFTScSGIE1JUkpBTkEKK1ZBU0nEhiBNSVJKQU5BCitWQVNJxIYgTUlSSkFOQQorVkFTScSGIE1JUk9TTEFWQQorVkFTScSGIE5BREEKK1ZBU0nEhiBOQURBCitWQVNJxIYgTkVERUxKS08KK1ZBU0nEhiBORURFTEpLTworVkFTScSGIE5FREVMSktPCitWQVNJxIYgTklLT0xBCitWQVNJxIYgTk9WQUsKK1ZBU0nEhiBOT1ZBSworVkFTScSGIE5PVkFLCitWQVNJxIYgT0xHQQorVkFTScSGIE9MR0lDQQorVkFTScSGIE9TVE9KQQorVkFTScSGIE9TVE9KQQorVkFTScSGIFBBSkEKK1ZBU0nEhiBQRVJPCitWQVNJxIYgUEVUQVIKK1ZBU0nEhiBQRVRBUgorVkFTScSGLVBPUE9WScSGIExKSUxKQU5BCitWQVNJxIYgUFJWT1NMQVYgRElQTCBJTkcKK1ZBU0nEhiBSQURJQ0EKK1ZBU0nEhiBSQURJVk9KCitWQVNJxIYgUkFET0pFCitWQVNJxIYgUkFET1NMQVYKK1ZBU0nEhiBSQURPVkFOCitWQVNJxIYgUkFUS08KK1ZBU0nEhiBSQVZJQ0EKK1ZBU0nEhiBTQVZBCitWQVNJxIYgU0FWQQorVkFTScSGIFNBVkEKK1ZBU0nEhiBTRUtVTEEKK1ZBU0nEhiBTTEFWSUNBCitWQVNJxIYgU0xBVktPCitWQVNJxIYgU0xBVktPCitWQVNJxIYgU0xPQk9EQU4KK1ZBU0nEhiBTTE9CT0RBTgorVkFTScSGIFNMT0JPREFOCitWQVNJxIYgU05Fxb1BTkEKK1ZBU0nEhiBTT0ZJSkEKK1ZBU0nEhiBTUkVUS08KK1ZBU0nEhiBTVEFOScWgQQorVkFTScSGIFNURVZBTgorVkFTScSGIFNURVZBTgorVkFTScSGIFNURVZBTgorVkFTScSGIFNURVZBTgorVkFTScSGIFNWRVRMQU5BCitWQVNJxIYgU1ZFVE9aQVIKK1ZBU0nEhiBUSUhPTUlSCitWQVNJxIYgVElOS0EKK1ZBU0nEhiBUT8WgQQorVkFTScSGIFRPTUlTTEFWCitWQVNJxIYgVkVMSU1JUgorVkFTScSGIFZFTElNSVIKK1ZBU0nEhiBWRVNFTElOCitWQVNJxIYgVklEQQorVkFTScSGIFZMQURJTUlSIERSIExFS0FSCitWQVNJxIYgVkxBRElNSVIKK1ZBU0nEhiBWT0pJU0xBVgorVkFTScSGIFpEUkFWS08KK1ZBU0nEhiBaT1JBTgorVkFTScSGIFpPUklDQQorVkFTSUzEjElOIFNMT0JPREFOCitWQVNJTEVTS0kgQlJBTktPCitWQVNJTEnFoElOIEFOVE9OCitWQVNJTEnFoElOIE1JTEFOCitWQVNJTEnEhiBCUkFOSVNMQVYKK1ZBU0lMScSGIERBTklDQQorVkFTSUxJxIYgRFJBR0EKK1ZBU0lMScSGIE1JTEFOCitWQVNJTEnEhiBNSUxFTktPCitWQVNJTEnEhiBNSVJBCitWQVNJTEnEhiBOSUtPTEEKK1ZBU0lMScSGIFJBSktPCitWQVNJTEnEhiBTVEVWQU4KK1ZBU0lMScSGIFRPREUKK1ZBU0lMScSGIFZFU05BCitWQVNJTEnEhiBWT0pJTiBESVBMIElORworVkFTSUxKxIxJTiDFvUlWS08KK1ZBU0lMSkVWIEFOQQorVkFTSUxKRVYgREVKQU4KK1ZBU0lMSkVWIERSQUdPU0xBVgorVkFTSUxKRVYgSkVMSUNBCitWQVNJTEpFViBKT1ZBTgorVkFTSUxKRVYgSk9WQU4KK1ZBU0lMSkVWIExKVUJJQ0EKK1ZBU0lMSkVWIE1BUkEKK1ZBU0lMSkVWIE1JTE9SQUQKK1ZBU0lMSkVWIE1JUk9MSlVCCitWQVNJTEpFViBNSVRBCitWQVNJTEpFViBSQURPVkFOCitWQVNJTEpFViBTUEFTT0pFCitWQVNJTEpFViBTVEFOT0pFCitWQVNJTEpFViBUQU1BUkEKK1ZBU0lMSkVWIFpEUkFWS08KK1ZBU0lMSkVWScSGIMWgQVJMT1RBCitWQVNJTEpFVknEhiDFvUlWT1RBCitWQVNJTEpFVknEhiDEkE9SxJBFCitWQVNJTEpFVknEhiDEkFVSQQorVkFTSUxKRVZJxIYtQcSGQU5TS0kgSVZBTkEKK1ZBU0lMSkVWScSGIEFOxJBFTEtBCitWQVNJTEpFVknEhiBBTkRSRUpBCitWQVNJTEpFVknEhiBDVkVUS08KK1ZBU0lMSkVWScSGIERBTklDQQorVkFTSUxKRVZJxIYgRFJBR0nFoEEKK1ZBU0lMSkVWScSGIERVxaBJQ0EKK1ZBU0lMSkVWScSGIEdMSUdPUgorVkFTSUxKRVZJxIYgR09KQU4KK1ZBU0lMSkVWScSGIEdPSktPCitWQVNJTEpFVknEhiBHUk9aREEKK1ZBU0lMSkVWScSGIEpBVk9SS0EKK1ZBU0lMSkVWScSGIEpVTEtBCitWQVNJTEpFVknEhiBMRVBBCitWQVNJTEpFVknEhiBMSlVCSU5LTworVkFTSUxKRVZJxIYgTUFSS08KK1ZBU0lMSkVWScSGIE1BUktPCitWQVNJTEpFVknEhiBNSUxFTkEKK1ZBU0lMSkVWScSGIE1JTEVOS08KK1ZBU0lMSkVWScSGIE1JTElTQVYKK1ZBU0lMSkVWScSGIE1JTEpLTworVkFTSUxKRVZJxIYgTUlMT8WgCitWQVNJTEpFVknEhiBNSUxPUkFECitWQVNJTEpFVknEhiBNSU9EUkFHIERJUEwgSU5HCitWQVNJTEpFVknEhiBNSVJBCitWQVNJTEpFVknEhiBNSVJPU0xBVgorVkFTSUxKRVZJxIYgTU9NxIxJTE8gRFIKK1ZBU0lMSkVWScSGIE5BREEKK1ZBU0lMSkVWScSGIE5FREVMSktPCitWQVNJTEpFVknEhiBORVZFTktBCitWQVNJTEpFVknEhiBOSUtPTEEKK1ZBU0lMSkVWScSGIE5JS09MQQorVkFTSUxKRVZJxIYgT0xHQQorVkFTSUxKRVZJxIYgT1NUT0pBCitWQVNJTEpFVknEhiBQRVRBUgorVkFTSUxKRVZJxIYgUEVUQVIKK1ZBU0lMSkVWScSGIFJBREEKK1ZBU0lMSkVWScSGIFJBREVOS0EKK1ZBU0lMSkVWScSGIFJBRE9TQVYKK1ZBU0lMSkVWScSGIFJBRE9TTEFWCitWQVNJTEpFVknEhiBSQURPCitWQVNJTEpFVknEhiBSQUpBIE5PVklOQVIKK1ZBU0lMSkVWScSGIFJBSktPCitWQVNJTEpFVknEhiBTSU1PCitWQVNJTEpFVknEhiBTTEFWS08KK1ZBU0lMSkVWScSGIFNUQU5JTUlSCitWQVNJTEpFVknEhiBUSUhPTUlSCitWQVNJTEpFVknEhiBUT8WgQQorVkFTSUxKRVZJxIYgVU1LQQorVkFTSUxKRVZJxIYgVkVSSUNBCitWQVNJTEpFVknEhiBWVUtJQ0EKK1ZBU0lMSkVWScSGIFpEUkFWS08KK1ZBU0lMSkVWScSGIFpMQVRLTworVkFTSUxKRVZJxIYgWkxBVE9KRQorVkFTSUxKRVZJxIYgWk9SQU4KK1ZBU0lMSkVWU0tJIFZBU0lMSUpFCitWQVNJTiDEkE9SxJBFCitWQVNJTiDEkE9SxJBFCitWQVNJTiBBTsSQRUxLQQorVkFTSU4gQVJBTktBCitWQVNJTiBCT1JJVk9KRQorVkFTSU4gQlJBTklTTEFWCitWQVNJTiBEUkFHQU5BCitWQVNJTiBEUkFHT01JUgorVkFTSU4gSkFTTUlOQQorVkFTSU4gSkVMRU5BCitWQVNJTiBKRVZST1NJTUEKK1ZBU0lOIEpVTEtBCitWQVNJTiBMQVpBUgorVkFTSU4gTEpVQklOS0EKK1ZBU0lOIE1BUklDQQorVkFTSU4gTUlMRU5LTworVkFTSU4gTUlMRU5LTworVkFTSU4gTkVERUxKS08KK1ZBU0lOIE9MR0lDQQorVkFTSU4gUEFWTEUKK1ZBU0lOIFBFVEFSCitWQVNJTiBSQURJVk9KCitWQVNJTiBTVEVWQU4KK1ZBU0lOIFNWRVRJU0xBVgorVkFTSU4gU1ZFVE9aQVIKK1ZBU0lOIFRPRE9SCitWQVNJTiBaT1JBCitWQVNLTyBWRVJBCitWQVNLT1ZJxIYgTUlMT1JBRAorVkFTS1JTScSGIFNBVkVUQQorVkFTT1ZJxIYgQUxFS1NBTkRBUgorVkFTT1ZJxIYgTUlMRU5BCitWQVNPVknEhiBNSUxPVkFOCitWQVNPVknEhiBQUkVEUkFHCitWQVNPVknEhiBTTEFWSU1JUktBCitWQVRBSkkgxJBVTEEKK1ZBVEnEhiBNQVJKQU4KK1ZBVEnEhiBNQVJLTworVkFUScSGIE1JUkHFoAorVkFUScSGIE5JS09MQQorVkFUT1ZJxIYgSFJBTklTTEFWCitWQVRPVknEhiBKRUxFTkEKK1ZBVVJJxIxBSyBLQVRBTElOCitWQVZBTiBNSUxPUkFECitWQVZBTiBNSUxPUkFECitWQVZBTiBNTEFERU5LTworVkFWQU4gUEFWTEUKK1ZBVkFOIFNMQVZLTworVkFWScSGIEpPVkFOCitWQVZSQSBQUkVEUkFHCitWQVZSSU4gSk9TSVAKK1ZBVlJJTiBQRVRBUgorVkRPVklBSyBCRVJOQVJECitWRcSMRUkgSk/FvUVGCitWRcSMRUkgSk9TSVAKK1ZFxIxFSSBMSklMSkFOQQorVkXEjEVKSSBKT1ZBTgorVkXEjEVSQSBNSUhBSkxPCitWRcSMRVJJIEpVTElVUworVkXEjEkgScWgVFZBTgorVkXEjEnEhiBTVkVUTEFOQQorVkXFoExJR0FKIFNURVZBTgorVkXFoExJR0FKIFZFUkEKK1ZFxaBPVknEhiBJVkFOS0EKK1ZFxaBPVknEhiBMRU9QT0xECitWRcWgT1ZJxIYgT0xHQQorVkXFoE9WScSGIFNNSUxKQU5BCitWRcWgT1ZJxIYgVkxBU1RJTUlSCitWRcWgT1ZJxIYgVlVLU0FOCitWRcWgT1ZJxIYgWk9SS0EgTVIKK1ZFxIZLQUxPViDEkE9SxJBFCitWRcSGS0FMT1YgQUxFS1NBTkRBUgorVkXEhktBTE9WIFNPRklKQSBEUiBMRUtBUgorVkVCRUwgVkFMRVJJSkEKK1ZFQkVSIEJPxb1BTkEKK1ZFQkVSIEdBQlJJRUxBCitWRUJFUiBHQUJSSUVMQQorVkVCRVIgTUlMSUNBCitWRUJFUiBPTEdBCitWRUJFUiBURVJFWklKQQorVkVHIMWgQU5ET1IKK1ZFRyBFTklLRQorVkVHxaBFIFBBVkxFCitWRUdFTCBMQVNMTworVkVHVkFSSSBERcW9RQorVkVHVkFSSSBKVUxJQU5BCitWRUdWQVJJIE1JS0xPxaAKK1ZFSFRFUiBLQVJPTEoKK1ZFSFRFUiBLQVJPTEoKK1ZFSFRFUiBaT0xUQU4KK1ZFSU4gSkVLQQorVkVJTiBaT1JLQQorVkVJTk9WScSGIE5JS09MQQorVkVKSU4gxJBPUsSQRQorVkVKSU4gQlJBTklTTEFWQQorVkVKSU4gQlJBTklTTEFWCitWRUpJTiBEVcWgQU5LQQorVkVKSU4gS1JJU1RJTkEKK1ZFSk5PVknEhiBEQU5FCitWRUpOT1ZJxIYgRFJBR0FOCitWRUpOT1ZJxIYgSkVMRU5BCitWRUpOT1ZJxIYgTUlSS08KK1ZFSk5PVknEhiBNTEFERU4gRElQTCBJTkcKK1ZFSk5PVknEhiBOSUtPTEEKK1ZFSk5PVknEhiBPQlJBRAorVkVKTk9WScSGIFJBSktPCitWRUpOT1ZJxIYgU0lNRU9OCitWRUpOT1ZJxIYgVElIT01JUgorVkVKTk9WScSGIFRJSE9NSVIKK1ZFSk5PVknEhiBWQUpLTworVkVKTk9WScSGIFZPSklTTEFWCitWRUpaT1ZTS0kgVkVKWgorVkVLQcWgIMW9VcW9QU5BCitWRUtBxaAgQVRJTEEKK1ZFS0HFoCBFVkEKK1ZFS0HFoCBFVkEKK1ZFS0HFoCBKQU5PxaAKK1ZFS0HFoCBKVURJVEEKK1ZFS0HFoCBMQVNMTworVkVLScSGIEFOQQorVkVLScSGIERSQUdBTgorVkVLScSGIEVMRU5BCitWRUtJxIYgSlVMSUpBTkEKK1ZFS0nEhiBOSUtPTEEKK1ZFS0nEhiBQRVRBUgorVkVLScSGIFJBRElWT0oKK1ZFS0nEhiBSQURNSUxBCitWRUtJxIYgVEVSRVpBCitWRUtJxIYgVEVSRVpBCitWRUtJxIYgWlZPTktPCitWRUtPTkogxaBBTkRPUgorVkVLT05KIExBRElTTEFWCitWRUtPVknEhiBNSUxPUkFECitWRUzEjEVLIEnFoFRWQU4KK1ZFTMSMRUsgSk9TSVAKK1ZFTMSMRUsgVkxBRElNSVIKK1ZFTMSQSSBBTkEKK1ZFTMSQSSBKT8W9RUYKK1ZFTMSQSSBMQURJU0xBVgorVkVMxJBJIE1BUklKQQorVkVMQUdJxIYgU0FOSkEKK1ZFTEFKQSBKT1ZPCitWRUxCQUJPVknEhiBERVNBTktBCitWRUxCQUJPVknEhiBNSUxPUkFECitWRUxCQUJPVknEhiBSQURJTktBCitWRUxFxIxLT1ZJxIYgQlJBTktPCitWRUxFxIxLT1ZJxIYgRVZBCitWRUxFTUlSIEFOSUNBCitWRUxFTUlSIERSQUdPTEpVQgorVkVMRU1JUiBJTElKQQorVkVMRU1JUiBNSUxPTUlSCitWRUxFTUlSIFJJU1RPCitWRUxFTUlSIFJJU1RPCitWRUxFTUlSIFNBVktBCitWRUxFTUlSIFNMQVZLTworVkVMRU1JUiBTVkVUT01JUgorVkVMRU1JUiBUT0RPUgorVkVMRU1JUiBWT0pBCitWRUxFTUlSIFZPSktPCitWRUxFTUlST1YgU0lNQQorVkVMRU5ERcSMScSGIEJPxb1PCitWRUxFTkRFxIxJxIYgTUlMQU4KK1ZFTEVaIEnFoFRWQU4KK1ZFTEVaIEnFoFRWQU4KK1ZFTEhFUyBNSVJPU0xBVgorVkVMSE5FUiBKT1NJUCBESVBMIElORworVkVMScSMS09WIMW9SVZBTgorVkVMScSMS09WIERBTklDQQorVkVMScSMS09WIEdST1pEQQorVkVMScSMS09WIEtBVElDQQorVkVMScSMS09WIExKSUxKQQorVkVMScSMS09WIE5BVEHFoEEKK1ZFTEnEjEtPViBSQURJVk9KCitWRUxJxIxLT1ZJxIYgxb1JVk9SQUQgRElQTCBQUkFWTklLCitWRUxJxIxLT1ZJxIYgxb1JVk9UQQorVkVMScSMS09WScSGIMSQT1LEkEUKK1ZFTEnEjEtPVknEhiBCSUxKQU5BCitWRUxJxIxLT1ZJxIYgRFXFoEFOCitWRUxJxIxLT1ZJxIYgRU1JTElKQQorVkVMScSMS09WScSGIElWQU5LQQorVkVMScSMS09WScSGIEpPVkFOCitWRUxJxIxLT1ZJxIYgSk9WQU4KK1ZFTEnEjEtPVknEhiBLQVRBUklOQQorVkVMScSMS09WScSGIEtTRU5JSkEKK1ZFTEnEjEtPVknEhiBNQVJJSkEKK1ZFTEnEjEtPVknEhiBNSUxBTktBCitWRUxJxIxLT1ZJxIYgTUlMQU4KK1ZFTEnEjEtPVknEhiBNSUxJQ0EKK1ZFTEnEjEtPVknEhiBNSUxPUkFECitWRUxJxIxLT1ZJxIYgTkVOQUQKK1ZFTEnEjEtPVknEhiBOSUtPTEEKK1ZFTEnEjEtPVknEhiBQRVJTSURBCitWRUxJxIxLT1ZJxIYgUFJFRFJBRworVkVMScSMS09WScSGIFNMQVZJxaBBCitWRUxJxIxLT1ZJxIYgU0xBVk9MSlVCCitWRUxJxIxLT1ZJxIYgU09OSkEKK1ZFTEnEjEtPVknEhiBTVEVWQU4KK1ZFTEnEjEtPVknEhiBaT1JBTgorVkVMScSMS09WU0tJIEFMRUtTQU5EQVIKK1ZFTEnFoEVLIEdBQlJJRUxBCitWRUxJxaBFSyBHRVpBCitWRUxJxaBFSyBLQVJMTworVkVMScSGIElMSUpBCitWRUxJxIYgWk9SQU4KK1ZFTElDS0kgxJBPUsSQRQorVkVMSUNLSSBBTEVLU0FOREFSCitWRUxJQ0tJIEFMRUtTQU5EQVIKK1ZFTElDS0kgSkVMSUNBCitWRUxJQ0tJIEpPVklDQQorVkVMSUNLSSBMSlVCT01JUgorVkVMSUNLSSBNSUxBTgorVkVMSUNLSSBNSUxBTgorVkVMSUNLSSBNSUxJVk9KCitWRUxJQ0tJIE1JT0RSQUcKK1ZFTElDS0kgTk9WQUsKK1ZFTElDS0kgU1ZFVE9aQVIKK1ZFTElDS0kgVVJPxaAKK1ZFTElDS0kgWk9SQU4KK1ZFTElDS0kgWk9SQQorVkVMSUpBIExKSUxKQU5BCitWRUxJSkEgUkXEkEVQCitWRUxJS0nEhiBBTEVLU0FOREFSIERJUEwgSU5HCitWRUxJS0nEhiBBTkEKK1ZFTElLScSGIERBTklDQQorVkVMSUtJxIYgTEpVQk9NSVIKK1ZFTElLScSGIFNJTUEKK1ZFTElLScSGIFpPUkFOCitWRUxJTUlST1YgSkVMRU5BCitWRUxJTUlST1YgTUlMT8WgCitWRUxJTUlST1YgVkxBRElNSVIKK1ZFTElNSVJPVknEhiBBTkdFTEEKK1ZFTElNSVJPVknEhiBCT8WgS08KK1ZFTElNSVJPVknEhiBESU1JVFJJSkUKK1ZFTElNSVJPVknEhiBEUkHFoEtPCitWRUxJTUlST1ZJxIYgSkVMSVNBVkVUQQorVkVMSU1JUk9WScSGIEpPVkFOCitWRUxJTUlST1ZJxIYgTEFaQVIKK1ZFTElNSVJPVknEhiBOT1ZBSworVkVMSU1JUk9WScSGIFNJTUVPTgorVkVMSU1JUk9WScSGIFNMQVZJQ0EKK1ZFTElNSVJPVknEhiBTTEFWT0xKVUIKK1ZFTElNSVJPVknEhiBTTUlMSkFOQQorVkVMSU1JUk9WScSGIFNORcW9QU5BCitWRUxJTUlST1ZJxIYgVk9KSU4KK1ZFTElPU0tJIFNBREVNCitWRUxJT1YgRMW9RU1BSkxPCitWRUxJU0FWTEpFViBHT1JEQU5BIERSCitWRUxJU0FWTEpFViBNSUxPUkFEIERSCitWRUxJU0FWTEpFViBTUkVET0pFCitWRUxJU0FWTEpFVknEhiBNSUxJU0FWCitWRUxKQSDFvUlWQSBESVAgT0VDCitWRUxKQSBQRVRBUgorVkVMSkFOT1ZJxIYgQlJBTklTTEFWCitWRUxKQU5PVknEhiBNT03EjElMTworVkVMSkFOT1ZJxIYgVE9NSVNMQVZBCitWRUxKQU5PVlNLSSBJVkFOCitWRUxKScSGIE1JTE9WQU4KK1ZFTEpLTyBBTsSQRUxLTworVkVMSktPViBEQVJJTktBCitWRUxKS09WIEdFT1JHSUpFCitWRUxKS09WIElEQQorVkVMSktPViBNSVJPU0xBViBESVBMIFBSQVZOSUsKK1ZFTEpLT1YgUEFWTEUKK1ZFTEpLT1YtUEZBSkZFUiBTT0ZJSkEKK1ZFTEpLT1YgU1RFVkFOCitWRUxKS09WIFZMQURJTUlSCitWRUxKS09WScSGIMW9QVJLTworVkVMSktPVknEhiBBTEVLU0FOREFSIERJUEwgSU5HCitWRUxKS09WScSGIEFMRUtTQU5EQVIKK1ZFTEpLT1ZJxIYgQU7EkEVMS0EKK1ZFTEpLT1ZJxIYgQk/FvUlEQVIKK1ZFTEpLT1ZJxIYgQk9KQU4KK1ZFTEpLT1ZJxIYgRE9CUk9TQVYKK1ZFTEpLT1ZJxIYgRFJBR0FOCitWRUxKS09WScSGIE1JTE9NSVIKK1ZFTEpLT1ZJxIYgTUlPRFJBRworVkVMSktPVknEhiBNSU9EUkFHCitWRUxKS09WScSGIE1JUkpBTkEKK1ZFTEpLT1ZJxIYgTUlSS08KK1ZFTEpLT1ZJxIYgTkFEQQorVkVMSktPVknEhiBQRVRBUgorVkVMSktPVknEhiBSQURBCitWRUxKS09WScSGIFJBRElTQVYKK1ZFTEpLT1ZJxIYgUkFET1NBVgorVkVMSktPVknEhiBSQURPU0xBVgorVkVMSktPVknEhiBSVcW9SUNBCitWRUxKS09WScSGIFNSRVRFTgorVkVMSktPVknEhiBTVkVUQQorVkVMSktPVknEhiBTVkVUSVNMQVYKK1ZFTEpLT1ZJxIYgVElIT01JUgorVkVMSktPVknEhiBWSURPSkUKK1ZFTEpLT1ZJxIYgVk9KSVNMQVYKK1ZFTEpLT1ZJxIYgVlVLQcWgSU4KK1ZFTEpPVknEhiBEVcWgQU4KK1ZFTEpPVknEhiBMRVBPU0FWQQorVkVMSk9WScSGIE1JTEFOCitWRUxKT1ZJxIYgTUlUQVIKK1ZFTEpPVknEhiBNT03EjElMTworVkVMSk9WScSGIFBBVkxFCitWRUxKT1ZJxIYgUlXFvUEKK1ZFTEpPVknEhiBTSU1PCitWRUxKT1ZJxIYgU0xBVklDQQorVkVMS09WU0tJIElSRU5BCitWRUxLT1ZTS0kgVEVPRklMCitWRU1FTkFDIE9CUkFECitWRU1JxIYgQk9SQQorVkVNScSGIERSQUdJTkpBCitWRU1JxIYgSUxJSkEKK1ZFTUnEhiBMQVpBUgorVkVNScSGIE1JTEFOCitWRU1JxIYgUkFESVZPSkUgRFIKK1ZFTUnEhiBSQURJVk9KRQorVkVOxIxFTE9WU0tJIExKVUJJQ0EKK1ZFTsSMRUxPVlNLSSBWTEFEQQorVkVOxIxFTE9WU0tJIFZMQURJTUlSCitWRU7EjEVMT1ZTS0kgVkxBU1RBCitWRU5DRUwgR0VaQQorVkVOQ0VMIEdFWkEKK1ZFTkNMIEpPU0lQCitWRU5DTCBaVk9OSU1JUgorVkVORExFTkVSIEFORFJJSkFOQQorVkVORExFTkVSIEpFTEVOQQorVkVORExFTkVSIFpPUkFOCitWRU5FIEdPUkRBTkEKK1ZFTkdSSU4gQUdORcWgCitWRU5HUklORyBGRVJFTkMKK1ZFTkdSSU5HIFNURVZBTgorVkVSQUMgTUlPRFJBRworVkVSQkEgSk/FvUVGCitWRVJCQU5FQyBJxaBUVkFOCitWRVJCQU5FQyBJxaBUVkFOCitWRVJCQVNJIEZSQU5KQQorVkVSQkFTSSBKT1ZBTktBCitWRVJFxaAgxJBVTEEKK1ZFUkXFoCBBTkRSSUpBCitWRVJFxaAgRFJBR1VUSU4KK1ZFUkXFoCBIQUpOQUxLQQorVkVSRcWgIElWQU4KK1ZFUkXFoCBKRUxJU0FWRVRBCitWRVJFxaAgSk/FvUVGCitWRVJFxaAgSk9TSVAKK1ZFUkXFoCBKT1NJUAorVkVSRcWgIExBRElTTEFWCitWRVJFxaAgTUFSSUpBCitWRVJFxaBCQVJBTkpJIEnFoFRWQU4KK1ZFUkXFoEJBUkFOSkkgTUFSSUpBCitWRVJFxaBFVknEhiBUSUhPTUlSCitWRVJFxb1BTiDEkFVSSUNBCitWRVJFxb1BTiBaT1JLQQorVkVSRUIgxb1Vxb1BTkEKK1ZFUkVCRcWgIEJPUklTTEFWQQorVkVSRUJFxaAgRVJWSU4KK1ZFUkVDS0VJIERVxaBJQ0EKK1ZFUkVDS0VJIEdFWkEKK1ZFUkVDS0VJIE1BUkdJVEEKK1ZFUkdBxaAgQlJBTktPCitWRVJJxIYgUkFUS08KK1ZFUktJxIYgVE9ET1IKK1ZFUktJxIYgVklUT01JUgorVkVSS0nEhiBWT0pJU0xBVgorVkVSTEnEhiBNSUxBTgorVkVSTUXFoCBMSUxJCitWRVJNRVpPVknEhiDEkE9SxJBFCitWRVJOQcSMS0kgQU5JVEEKK1ZFUk5BxIxLSSBCUkFOSVNMQVYKK1ZFUk5BxIxLSSBHQVZSQQorVkVSTkHEjEtJIEdBVlJJTE8KK1ZFUk5BxIxLSSBNSVJPU0xBVgorVkVSTkVSIEFOQQorVkVSTkVSIE1JSEFKTE8KK1ZFUk5FUiBTVEVWQU4KK1ZFUk5PVCBBTkEKK1ZFUk5PVCBEVU5KQQorVkVSTk9UIEpPU0lQCitWRVJOT1QgVkpFS09TTEFWQQorVkVSTk9UIFpERU5LTworVkVSTk9UIFpERU5LTworVkVSWk9USSBEUkFHSUNBCitWRVJaT1RJIEpVTElKQU5BCitWRVJaT1RJIFBFVEFSCitWRVJaT1RJIFNUQU5LQQorVkVTRUxJxIYgQk9SSVZPSgorVkVTRUxJxIYgRFJBR09MSlVCCitWRVNFTEnEhiBHT1NQQVZBCitWRVNFTEnEhiBSQURPSktBCitWRVNFTEnEhiBTTEFWS08KK1ZFU0VMSUNBIE1BTkUKK1ZFU0VMSUNBIE1JTEFOCitWRVNFTElDQSBTVkVUT1pBUgorVkVTRUxJTiBQRVRBUgorVkVTRUxJTk9WIMSQT1LEkEUKK1ZFU0VMSU5PViBCT1JJU0xBVkEKK1ZFU0VMSU5PViBCUkFOSVNMQVYKK1ZFU0VMSU5PViBMSUJVxaBBCitWRVNFTElOT1YgTUlMSUNBCitWRVNFTElOT1YgUklTVEEKK1ZFU0VMSU5PViBTVEVWQU4gRFIKK1ZFU0VMSU5PViBTVEVWQU4KK1ZFU0VMSU5PViBTVkVUT1pBUgorVkVTRUxJTk9WIFZFUkEKK1ZFU0VMSU5PVknEhiDEkE9SxJBFCitWRVNFTElOT1ZJxIYgxJBPUsSQRQorVkVTRUxJTk9WScSGIMSQT1LEkEUKK1ZFU0VMSU5PVknEhiDEkFVKQQorVkVTRUxJTk9WScSGIMSQVVJBCitWRVNFTElOT1ZJxIYgxJBVUk8KK1ZFU0VMSU5PVknEhiBBTEVLU0FOREFSCitWRVNFTElOT1ZJxIYgQUxFS1NBTkRBUgorVkVTRUxJTk9WScSGIEFMRUtTQU5EQVIKK1ZFU0VMSU5PVknEhiBBTEVLU0FOREFSCitWRVNFTElOT1ZJxIYgQk9SQQorVkVTRUxJTk9WScSGIEJSQU5FCitWRVNFTElOT1ZJxIYgQlJBTklTTEFWCitWRVNFTElOT1ZJxIYgQlJBTklTTEFWCitWRVNFTElOT1ZJxIYgREFSQQorVkVTRUxJTk9WScSGIERBUktPCitWRVNFTElOT1ZJxIYgRFJBR0FOCitWRVNFTElOT1ZJxIYgRFJBR09NSVIKK1ZFU0VMSU5PVknEhiBEUkFHT1JBRAorVkVTRUxJTk9WScSGIERVxaBBTktBCitWRVNFTElOT1ZJxIYgR09SREFOQQorVkVTRUxJTk9WScSGIElMSUpBCitWRVNFTElOT1ZJxIYgSkVMSVNBVktBCitWRVNFTElOT1ZJxIYgSk9SREFOCitWRVNFTElOT1ZJxIYgSk9TSVBBCitWRVNFTElOT1ZJxIYgSk9WQU5LQQorVkVTRUxJTk9WScSGIEpVTElKQU5BCitWRVNFTElOT1ZJxIYgS0FUSUNBCitWRVNFTElOT1ZJxIYgTEFOQQorVkVTRUxJTk9WScSGIExFTktJQ0EKK1ZFU0VMSU5PVknEhiBMSlVCT01JUgorVkVTRUxJTk9WScSGIE1BUklKQQorVkVTRUxJTk9WScSGIE1JS0EKK1ZFU0VMSU5PVknEhiBNSUxBTktBCitWRVNFTElOT1ZJxIYgTUlMQU4KK1ZFU0VMSU5PVknEhiBNSUxBTgorVkVTRUxJTk9WScSGIE1JTEFOCitWRVNFTElOT1ZJxIYgTUlMQU4KK1ZFU0VMSU5PVknEhiBNSUxBTgorVkVTRUxJTk9WScSGIE1JTEVOQQorVkVTRUxJTk9WScSGIE1JTEUKK1ZFU0VMSU5PVknEhiBNSUxJU0FWCitWRVNFTElOT1ZJxIYgTUlMT1JBRAorVkVTRUxJTk9WScSGIE1JUktPCitWRVNFTElOT1ZJxIYgTUlUQQorVkVTRUxJTk9WScSGIE1MQURFTgorVkVTRUxJTk9WScSGIE5JS09MQQorVkVTRUxJTk9WScSGIE5JS09MQQorVkVTRUxJTk9WScSGIE9MR0EKK1ZFU0VMSU5PVknEhiBQQVZMRQorVkVTRUxJTk9WScSGIFBFUlNJREEKK1ZFU0VMSU5PVknEhiBQRVRBUgorVkVTRUxJTk9WScSGLVBPUE9WScSGIEJSQU5LQQorVkVTRUxJTk9WScSGIFBSRURSQUcKK1ZFU0VMSU5PVknEhiBSQURNSUwKK1ZFU0VMSU5PVknEhiBSQU5LTworVkVTRUxJTk9WScSGIFJBTktPCitWRVNFTElOT1ZJxIYgUlXFvUlDQQorVkVTRUxJTk9WScSGIFJVxb1JQ0EKK1ZFU0VMSU5PVknEhiBSVcW9SUNBCitWRVNFTElOT1ZJxIYgU0FWQQorVkVTRUxJTk9WScSGIFNFVkVSCitWRVNFTElOT1ZJxIYgU0xPQk9EQU4KK1ZFU0VMSU5PVknEhiBTUEFTT0pFCitWRVNFTElOT1ZJxIYgU1RFVkFOCitWRVNFTElOT1ZJxIYgU1RFVkFOCitWRVNFTElOT1ZJxIYgU1ZFVElTTEFWCitWRVNFTElOT1ZJxIYgVE9ET1IKK1ZFU0VMSU5PVknEhiBUT0RPUgorVkVTRUxJTk9WScSGIFVST8WgCitWRVNFTElOT1ZJxIYgVkFTSUxKS0EKK1ZFU0VMSU5PVknEhiBWRUxJTUlSCitWRVNFTElOT1ZJxIYgVkVMSVpBUgorVkVTRUxJTk9WScSGIFZFTEpLTworVkVTRUxJTk9WScSGIFZFUkEKK1ZFU0VMSU5PVknEhiBWRVJBCitWRVNFTElOT1ZJxIYgVkVTRUxJTgorVkVTRUxJTk9WScSGIFZFU0VMSU4KK1ZFU0VMSU5PVknEhiBWSU5LQQorVkVTRUxJTk9WScSGIFZMQURJU0xBVgorVkVTRUxJTk9WScSGIFZMQVNUSU1JUgorVkVTRUxJTk9WScSGIFZPSklTTEFWIERSIExFS0FSCitWRVNFTElOT1ZJxIYgVk9KSVNMQVYKK1ZFU0VMSU5PVknEhiBWVUtJQ0EKK1ZFU0VMSU5PVknEhiBaT1JBTgorVkVTRUxJTk9WScSGIFpPUkFOCitWRVNFTElOT1ZJxIYgWlZFWkRBTgorVkVTScSGIERPQlJPU0FWCitWRVNJxIYgRFJBR09TTEFWCitWRVNJxIYgS0FUSUNBCitWRVNJxIYgS1JTVEEKK1ZFU0nEhiBNSUxBTgorVkVTScSGIE1JTEFOCitWRVNJxIYgTUlMSUNBCitWRVNJxIYgTUlPRFJBRworVkVTScSGIE1JVEFSCitWRVNJxIYgTUxBREVOCitWRVNJxIYgUlXFvUlDQQorVkVTScSGLVZBUkdBIERSQUdJQ0EKK1ZFU0nEhiBWRVNFTElOS0EKK1ZFU0lOIEJSQU5LTworVkVTSU4gTUlMQU4KK1ZFU0lOIE5BREEKK1ZFU0lOIFBFVEFSCitWRVNLT1YgQUxFS1NBTkRBUgorVkVTS09WIEFMRUtTQU5EQVIKK1ZFU0tPViBJVkFOCitWRVNLT1YgSkVMRU5BCitWRVNLT1YgTUlMT8WgCitWRVNLT1ZJxIYgQU5LSUNBCitWRVNLT1ZJxIYgRFJBxaBLTworVkVTS09WScSGIEtBVEFSSU5BCitWRVNLT1ZJxIYgTUFSSUNBCitWRVNLT1ZJxIYgTUlST1NMQVYKK1ZFU0tPVknEhiBNT03EjElMTyBESVBMIElORworVkVTS09WScSGIFBFVEFSCitWRVNLT1ZJxIYgU0xBVktPCitWRVNLT1ZJxIYgU1RBTk9KRQorVkVTS09WScSGIFpPUkEKK1ZFU0xBVlNLSSBUSU5LQQorVkVTTknEhiBNSUxFTkEKK1ZFU05JxIYtVkFTSUxKRVZJxIYgQU7EkEVMSUpBCitWRVNPVknEhiBBQ08KK1ZFU09WScSGIEFORFJJSkEKK1ZFVFJBQiBGUkFOSkEKK1ZFVFJBQiBLQVRBTElOCitWRVRSQUIgTUlIQUxKCitWRVRSTyBQRVRBUgorVkVWRVJJxIxFSyBNQVJJSkEKK1ZFWkVUSSBNSUhBRUwKK1ZFWkVUSSBQRVRBUgorVkVaSUxJxIYgxJBPUsSQRQorVkVaSUxJxIYgQ1JOT0dPUktBCitWRVpJTEnEhiBEVcWgQU5LQQorVkVaSUxJxIYgRFXFoElDQQorVkVaSUxJxIYgSkVMSUNBCitWRVpJTEnEhiBSQURPU0xBVgorVkVaTUFSIEJSQU5LTworVkVaTUFSIElMSUpBCitWRVpNQVIgTUFSR0FSSVRBCitWRVpNQVIgTUlMQU4KK1ZFWk1BUiBNSUxPxaAKK1ZFWk1BUiBNSUxPUkFECitWRVpNQVIgTU9NxIxJTE8KK1ZFWk1BUiBOSUtPTEEKK1ZFWk1BUiBQRVRBUgorVkVaVUxJxIYgxJBPUsSQRQorVknEjEVLIMWgQU5ET1IKK1ZJxIxFSyBLQVJPTEoKK1ZJxIxFVknEhiBaVk9OSU1JUgorVknEjElLIElHTkpBVAorVknFoEVLUlVOQSBCT1JJVk9KCitWScWgRUtSVU5BIERBTktPCitWScWgRUtSVU5BIERVxaBBTgorVknFoEVLUlVOQSBEVcWgS08KK1ZJxaBFS1JVTkEgSk9WQU4KK1ZJxaBFS1JVTkEgTUlMQU4KK1ZJxaBFS1JVTkEgU0xBVktPCitWScWgRUtSVU5BIFZPSklOCitWScWgScSGIE1JTEUKK1ZJxaBLT1ZJxIYgTUlMSUNBCitWScWgS09WScSGIE1JTE/FoAorVknFoEtPVknEhiBQTEFOSU5LQQorVknFoEtPVknEhiBQUkVEUkFHCitWScWgS09WScSGIFZMQURJTUlSIERSCitWScWgTknEhiBEQU5JQ0EKK1ZJxaBOScSGIERVxaBBTgorVknFoE5JxIYgWk9SS0EKK1ZJxaBOSkVWxIxBTklOIEpPVkFOCitWScWgTkpFVsSMQU5JTiBMRVBBCitWScWgTkpFVkFDIEJPUk8KK1ZJxaBOSkVWQUMgT0xJVkVSQQorVknFoE5KRVZTS0kgS0FUSUNBCitWScWgTkpJxIxBTiBEVcWgQU4KK1ZJxaBOSknEjEFOIEdBVlJJTE8KK1ZJxaBOSknEjEFOIEpPVkFOS0EKK1ZJxaBOSknEjEFOIE1JTElDQQorVknFoE5KScSMQU5JTiBKT1ZBTktBCitWScWgTkpJxIxBUiDFvUFSS08KK1ZJxaBOSknEjEFSIMSQT1LEkEUKK1ZJxaBOSknEjEFSIMSQT1LEkEUKK1ZJxaBOSknEjEFSIERSQUdPU0xBVgorVknFoE5KScSMQVIgTUFSSUpBCitWScWgTkpJxIxBUiBNSUtBCitWScWgTkpJxIxBUiBORURFTEpLTworVknFoE5KScSMS0kgR09SREFOQQorVknFoE5KScSMS0kgTUlMT8WgCitWScWgTkpJxIxLSSBNSVJPU0xBVgorVknFoE5KScSMS0kgU1JFVEVOCitWScWgTkpJxIYgxIxFRE9NSUxBCitWScWgTkpJxIYgQlJBTktPCitWScWgTkpJxIYgQlJBTlNJTEFWQQorVknFoE5KScSGIERBTElCT1IKK1ZJxaBOSknEhiBEVcWgQU4KK1ZJxaBOSknEhiBJTElKQQorVknFoE5KScSGIEpPU0lQCitWScWgTkpJxIYgTUFSSUpBCitWScWgTkpJxIYgTUlMQU4KK1ZJxaBOSknEhiBNSUxJQ0EKK1ZJxaBOSknEhiBPTElWRVJBCitWScWgTkpJxIYgT0xJVkVSCitWScWgTkpJxIYgU1BBU09KRQorVknFoE5KScSGIFRJSE9NSVIKK1ZJxaBOSknEhiBWQVNJTElKRQorVknFoE5KScSGIFZFUkEKK1ZJxaBOSknEhiBWRVNOQQorVknFoE5KT1ZTS0kgxJBVUkEKK1ZJxaBOSk9WU0tJIEFSQU5LQQorVknFoE5KT1ZTS0kgTUFSSUpBCitWScWgTkpPVlNLSSBNQVJKQU4KK1ZJxaBPxaBFVknEhiBSVcW9RU5BCitWScWgT05UQUkgSk/FvUVGCitWScWgT05UQUkgSk/FvUVGCitWScSGRVZJxIYgUkFEScWgQQorVknFvUFJIMWgQU5ET1IKK1ZJQVRPUklTIEpBTk/FoAorVklBVE9SSVMgSlVMScWgS0EKK1ZJQVRPUklTIExKVUJJQ0EKK1ZJQk9LIEpPxb1FRgorVklDRUkgSk/FvUVGCitWSUNFSSBOSUtPTEEKK1ZJQ0lBTiBLTEFSQQorVklDS08gQVJQQUQKK1ZJQ0tPIEZSQU5KQQorVklDS08gSk9TSVAKK1ZJQ0tPxaAgSk/FvUVGCitWSUNLT1ZJxIYgQlJBTktPCitWSUNLT1ZJxIYgQlJBTktPCitWSUNLT1ZJxIYgRFJBR0lDQQorVklDS09WScSGIFRPTUlTTEFWCitWSUNLT1ZJxIYgVkVTTkEKK1ZJQ08gQk9HREFOCitWSUNPIFJBRElWT0pFCitWSUNPIFJBRE9NSVIKK1ZJRCBCUkFOSVNMQVZBCitWSURBIEpFTElTQVZFVEEKK1ZJREEgSk/FvUVGCitWSURBIEpVTElKQQorVklEQSBTTE9CT0RBTktBCitWSURBIFZJTEkKK1ZJREHEjCBKQU5KQSBMT0tBTAorVklEQcSMIExBU0xPCitWSURBxIwgU0xBVklDQQorVklEQUpJxIYgxb1JVktPCitWSURBSknEhiBKQVNNSU5BCitWSURBSknEhiBKT1NJUAorVklEQUpJxIYgTFXEjElKQU5PCitWSURBSknEhiBNQVJJSkEKK1ZJREFKScSGIFZFTEpBCitWSURBSknEhiBWTEFEQQorVklEQUtPViBBTktJQ0EKK1ZJREFLT1YgSk9WQU4KK1ZJREFLT1YgWk9SSUNBCitWSURBS09WScSGIEFMRUtTQU5EQVIKK1ZJREFLT1ZJxIYgQUxFS1NBTkRSQSBEUgorVklEQUtPVknEhiBBTkdFTElOQQorVklEQUtPVknEhiBCUkFOSU1JUgorVklEQUtPVknEhiBCUkFOS08KK1ZJREFLT1ZJxIYgRFXFoEFOS0EKK1ZJREFLT1ZJxIYgRFXFoEFOCitWSURBS09WScSGIEVNSUwKK1ZJREFLT1ZJxIYgSVZBTgorVklEQUtPVknEhiBJVkFOCitWSURBS09WScSGIElWQU4KK1ZJREFLT1ZJxIYgSkFHT0RBCitWSURBS09WScSGIEpPU0lQCitWSURBS09WScSGIEpPU0lQCitWSURBS09WScSGIEtPU0EKK1ZJREFLT1ZJxIYgTUlIQUpMTworVklEQUtPVknEhiBNSUxBTgorVklEQUtPVknEhiBNSUxBTgorVklEQUtPVknEhiBNSUxKQQorVklEQUtPVknEhiBNSVLEjEVUQQorVklEQUtPVknEhiBNSVJKQU5BCitWSURBS09WScSGIE1JUktPCitWSURBS09WScSGIE5FREVMSktPCitWSURBS09WScSGIE9MR0EKK1ZJREFLT1ZJxIYgT0xHQQorVklEQUtPVknEhiBSQURFTktPCitWSURBS09WScSGIFJBRE1JTEEKK1ZJREFLT1ZJxIYgU0FWQQorVklEQUtPVknEhiBTTEFWS0EKK1ZJREFLT1ZJxIYgU09GSUpBCitWSURBS09WScSGIFNSRcSGS08KK1ZJREFLT1ZJxIYgU1JFxIZLTworVklEQUtPVknEhiBTVEVWQU4KK1ZJREFLT1ZJxIYgU1RPSkFOCitWSURBS09WScSGIFNWRVRPWkFSCitWSURBS09WScSGIFRFUkVaQQorVklEQUtPVknEhiBWT0pJU0xBVgorVklEQUtPVknEhiBWT0pJU0xBVgorVklEQUtPVknEhiBWVUtBxaBJTgorVklEQU5PVknEhiBNSUhBSkxPCitWSURBTk9WScSGLVNLT0tPIEpFTEVOQQorVklEQVJJxIYgSk9WTworVklEQVJJxIYgTUlMT1JBRAorVklEQVJJxIYgUkFUS08KK1ZJREFSScSGIFNURVZBTgorVklEQVMgVEVSRVpBCitWSURFQyBKT1NJUAorVklERUMgSk9TSVAKK1ZJREVOT1ZJxIYgQlJBTktPCitWSURFTk9WScSGIEtPU09WS0EKK1ZJREVOT1ZJxIYgTEpJTEpBTkEgRFIKK1ZJREVOT1ZJxIYgTU9NSVIKK1ZJREVSIE1JUktPIERJUEwgSU5HCitWSURJxIYgxb1FTEpLTworVklEScSGIMSQT1LEkEUKK1ZJREnEhiBCUkFOSVNMQVYKK1ZJREnEhiBCUkFOS0EKK1ZJREnEhiBCUkFOS0EKK1ZJREnEhiBCUkFOS08KK1ZJREnEhiBEUkFHQU5BCitWSURJxIYgRFXFoEFOS0EKK1ZJREnEhiBFTUlMSUpBCitWSURJxIYgSkVMSUNBCitWSURJxIYgSk9DQQorVklEScSGIExKSUxKQU5BCitWSURJxIYgTEpVQk9NSVIKK1ZJREnEhiBNQVJJSkEKK1ZJREnEhiBNSUxBTgorVklEScSGIE1JTEFOCitWSURJxIYgTUlMT8WgCitWSURJxIYgTUlST1NMQVZBCitWSURJxIYgTUlST1NMQVYKK1ZJREnEhiBOQURBCitWSURJxIYgUEVSTworVklEScSGIFJBRE1JTEEKK1ZJREnEhiBSQURNSUxBCitWSURJxIYgUkFKS08KK1ZJREnEhiBTT0ZJSkEKK1ZJREnEhiBTVEFOSVNMQVZBCitWSURJxIYgU1RFVkFOCitWSURJxIYgU1ZFVElTTEFWCitWSURJxIYgVkVMSktPCitWSURJxIYgVkVSQQorVklEScSGIFpEUkFWS08KK1ZJRElDS0kgQlJBTktPCitWSURJQ0tJIElWQU4KK1ZJRElDS0kgS09TVEEKK1ZJRElDS0kgTEpVQk9NSVIKK1ZJRElDS0kgTUlST1NMQVYKK1ZJRElORVIgQk/FvUlEQVIKK1ZJRE1BTknEhiBHQUJSSUpFTEEKK1ZJRE9KRVZJxIYgxb1JVktBCitWSURPSkVWScSGIEJMQcW9TworVklET0pFVknEhiBCT8W9QQorVklET0pFVknEhiBKT1NJRgorVklET0pLT1ZJxIYgUkFET01JUgorVklET1NBVkxKRVZJxIYgRE9CUk9TQVYKK1ZJRE9TQVZMSkVWScSGIERVxaBBTgorVklET1NBVkxKRVZJxIYgSkVMSUNBCitWSURPU0FWTEpFVknEhiBaVk9OSU1JUgorVklET1ZJxIYgxb1JVktPCitWSURPVknEhiBBTUlSQQorVklET1ZJxIYgQU5JQ0EKK1ZJRE9WScSGIEJFQVRSSVMKK1ZJRE9WScSGIEJJTEpBTkEKK1ZJRE9WScSGIEJJU0VSS0EKK1ZJRE9WScSGIEJPxb1JREFSCitWSURPVknEhiBCT1JJU0xBVgorVklET1ZJxIYgQk9SSVNMQVYKK1ZJRE9WScSGIEJSQU5JU0xBVgorVklET1ZJxIYgRFJBR08KK1ZJRE9WScSGIE1BUkpBTgorVklET1ZJxIYgTUlMQU4KK1ZJRE9WScSGIE1JTEFOCitWSURPVknEhiBNSUxBTgorVklET1ZJxIYgTUlMRQorVklET1ZJxIYgTUlMSUNBCitWSURPVknEhiBNSUxPxaAKK1ZJRE9WScSGIE1JUktPCitWSURPVknEhiBOQURBCitWSURPVknEhiBQRVRBUgorVklET1ZJxIYgUkFET01JUgorVklET1ZJxIYgUkFKS08KK1ZJRE9WScSGIFJVxb1JQ0EKK1ZJRE9WScSGIFNBVkEKK1ZJRE9WScSGIFNMT0JPREFOCitWSURPVknEhiBWSUQKK1ZJR0kgSk9TSVAKK1ZJR05KRVZJxIYgxJBPUsSQRQorVklHTkpFVknEhiBBTkEKK1ZJR05KRVZJxIYgQlJBTktBCitWSUdOSkVWScSGIEJSQU5LTworVklHTkpFVknEhiBEQUtPCitWSUdOSkVWScSGIERSQUdBTgorVklHTkpFVknEhiBEUkFHQU4KK1ZJR05KRVZJxIYgRFXFoEFOS0EKK1ZJR05KRVZJxIYgTUlMRU5LTworVklHTkpFVknEhiBORVZFTktBCitWSUdOSkVWScSGIFJBREUKK1ZJR05KRVZJxIYgU1RFVkFOSUpBCitWSUdOSkVWScSGIFZFU05BCitWSUdOSkVWScSGIFZMQURJTUlSCitWSUdOSkVWScSGIFpPUkFOCitWSUpBVE9WIFNNSUxKQQorVklKRcWgVElDQSBOSkVHT01JUgorVklKVUsgTEpVQkFOCitWSUpVSyBTQVZBCitWSUtPUiBQRVRBUgorVklLT1IgUlXFvUEKK1ZJTMSMRUsgSkFOSkEKK1ZJTMSMRUsgTklLT0xBCitWSUxBIE1JTE9WQU4KK1ZJTEFHT8WgIMSQRVLEkEkKK1ZJTEVUSSBaT1JBCitWSUxJxaAgxJBVUkEKK1ZJTEnFoCBGUkFOSkEKK1ZJTEnEhiBNQVJLTworVklMScSGIFJBRE9NSVIKK1ZJTEnEhiBSQURPU0xBVkEKK1ZJTEnEhiBST1pBTElKQQorVklMScSGIFZPSklTTEFWCitWSUxJR09SU0tJIFBBVUxBCitWSUxPVEnEhiDFvUlWS08KK1ZJTE9UScSGIE1JTElTQVYKK1ZJTE9USUpFVknEhiBEUkFHVVRJTgorVklMT1RJSkVWScSGIEtJxIZVTgorVklMT1RJSkVWScSGIE1JUk9KRQorVklMT1ZBxIxLSSBLQVRJQ0EKK1ZJTE9WQcSMS0kgU0xBVktPCitWSUxPVkFDIEpPVkFOCitWSUxPVkFDIEpPVkFOCitWSUxPVkFDIE1JTEFOCitWSUxPVlNLSSDEkE9SxJBFCitWSUxPVlNLSSBCUkFOSVNMQVYKK1ZJTE9WU0tJIEJSQU5LTworVklMT1ZTS0kgU0FWQQorVklMT1ZTS0kgU0xBVk9NSVIKK1ZJTE9WU0tJIFNNSUxKQU5BCitWSUxPVlNLSSBWRUxKS08KK1ZJTE9WU0tJIFpPUkEKK1ZJTFVTIERBTklDQQorVklNRVIgVkVSQQorVklOIElWQU4KK1ZJTiBKT1NJUAorVklOIExBSk/FoAorVklOIFBBVkxFCitWSU4gU1ZFVExBTkEKK1ZJTsWgIERSQUdVVElOCitWSU5BSiDEkE9SxJBFCitWSU5BSiDEkE9SxJBFCitWSU5BSiBKQU5LTworVklOQUogTEpVQklDQQorVklOQUogTUVMQU5JSkEKK1ZJTkFKSSDEkFVSQQorVklOQUpJIE1JVEFSCitWSU5BSkkgVkVSSUNBCitWSU5BUsW9IFZMQURJTUlSCitWSU5DRSBBTkRSSUpBCitWSU5DRSBFUsW9RUJFVAorVklOQ0UgScWgVFZBTgorVklOQ0UgS0FSTE8KK1ZJTkNFIExBQ0lLQQorVklOQ0UgTUFSRUxBCitWSU5DRSBNQVJHSVRBCitWSU5DRSBQQVZMRQorVklOQ0VUSU4gQU5BCitWSU5Exb1BTk9WScSGIFBFVEFSCitWSU5Exb1BTk9WScSGIFJBRElWT0pFCitWSU5EScWgIERSQUdVVElOCitWSU5EScWgIFNURVZBTgorVklORVIgQlJBTklTTEFWCitWSU5FUiBJVkFOCitWSU5FUiBKRVJPTklNCitWSU5FUiBNQVJJSkEKK1ZJTkVSIFpWT05JTUlSCitWSU5LQSBFTUFOVUVMQQorVklOS0nEhiBJTElKQQorVklOS0xFUiBKT8W9RUYKK1ZJTktMRVJPVknEhiBWRVJJQ0EKK1ZJTktPVknEhiBBTkEKK1ZJTktPVknEhiBEUkFHQU4KK1ZJTktPVknEhiBMSlVERVZJVAorVklOT0tJxIYgQk9HREFOCitWSU5PS0nEhiBWQVNJTEpLQQorVklSQUcgQUxCRVJUCitWSVJBRyBBTkRSSUpBCitWSVJBRyBFUklLQQorVklSQUcgSlVMSUpBTkEKK1ZJUkFHIExKVURFVklUCitWSVJBRyBNQVJUT04KK1ZJUkFHIE1JSEFKTE8KK1ZJUkFHIFJPQkVSVAorVklSQUcgUk9CRVJUCitWSVJDIEZFUkVOQworVklSQyBKT8W9RUYKK1ZJUkMgSk9WQU4KK1ZJUkMgTUFSVElOCitWSVJDIE5BREEKK1ZJUkMgUlXFvUlDQQorVklSQyBTVEVWQU4KK1ZJUknEhiBJVkFOCitWSVJJxIYgSVZBTgorVklSSUpFVknEhiDEkE9SxJBFCitWSVJJSkVWScSGIEJPxb1JREFSCitWSVJJSkVWScSGIEJVRElNSVIKK1ZJUklKRVZJxIYgSk9WQU5LQQorVklSSUpFVknEhiBMSlVCSU5LTworVklSSUpFVknEhiBQRVRBUgorVklSSUpFVknEhiBWT0pJTgorVklTTEFWU0tJIMSQVVJBCitWSVNMQVZTS0kgQk9HREFOCitWSVNMQVZTS0kgSkFLSU0KK1ZJU0xBVlNLSSBKQUtJTQorVklTTEFWU0tJIEpBTk/FoAorVklTTEFWU0tJIEpBTk/FoAorVklTTEFWU0tJIExFT04KK1ZJU0xBVlNLSSBMSlVCT01JUgorVklTTEFWU0tJIE1BUklKQQorVklTTEFWU0tJIE1JSEFKTE8KK1ZJU0xBVlNLSSBNSVJPTgorVklTTEFWU0tJIE1JUk9TTEFWCitWSVNMQVZTS0kgTUlST1NMQVYKK1ZJU0xBVlNLSSBOQVRBxaBBCitWSVNMQVZTS0kgWkxBVEtPCitWSVNUIEhFTEdBQU5BCitWSVRBUyBTVEVWQU4KK1ZJVEFTIFNURVZBTgorVklUQVNPVknEhiBEVcWgQU5LQQorVklUQVNPVknEhiBEVcWgQU5LQQorVklUQVNPVknEhiBEVcWgQU4KK1ZJVEFTT1ZJxIYgTkVCT0rFoEEKK1ZJVEFaIFBFVEFSCitWSVRFWiBKQU4KK1ZJVEVaIFRVR09NSVIKK1ZJVEVaIFpWT05LTworVklUScSGIMSQT1LEkEUKK1ZJVEnEhiDEkE9SxJBFCitWSVRJxIYgQk/FoEtPIERSIExFS0FSCitWSVRKVUsgTUlSSkFOQSBESVBMIElORworVklUSlVLIFBFVEFSIERJUEwgSU5HCitWSVRLQUkgSUxPTkEKK1ZJVEtPVknEhiBCUkFOS08KK1ZJVEtPVknEhiBEUkFHTworVklUS09WScSGIEpPVkFOCitWSVRPTUlST1Ygxb1JVkFOCitWSVRPTUlST1ZJxIYgQk9SSVMKK1ZJVE9NSVJPVknEhiBEUkFHT01JUgorVklUT1JBQyDEkFVSQQorVklUT1JBQyDEkFVSTworVklUT1JBQyBCT1JJU0xBVgorVklUT1JBQyBJTElKQQorVklUT1JBQyBOQURBCitWSVRPUkFDIFJVxb1FTktBCitWSVRPUk9WScSGIE1JTEFOCitWSVRPUk9WScSGIE1JTE/FoAorVklUT1JPVknEhiBPTEdBCitWSVRPUk9WScSGIFJBTktBCitWSVRPUk9WScSGIFNPRklKQQorVklUVcWgS0EgU1RFVkFOCitWSVZPRCBKRUxJU0FWRVRBCitWSVZPRCBNQUdEQUxFTkEKK1ZJWkkgxaBBTkRPUgorVklaSSBKT1NJUAorVklaSSBKT1ZBTgorVklaSSBLQVRJQ0EKK1ZJWkkgTUFSSUpBCitWSVpJIE1BUklKQQorVklaSSBSQURPSktBCitWSVpJIFNPTkpBCitWSVpJIFNURVZBTgorVkpFxaBUSUNBIMSQVVJPCitWSkXFoFRJQ0EgRFXFoEFOS0EKK1ZKRcWgVElDQSBKT1ZPCitWSkXFoFRJQ0EgTUlMQU4KK1ZKRcWgVElDQSBNSVJLTworVkpFxaBUSUNBIE1JUk9TTEFWCitWSkXFoFRJQ0EgTkFEQQorVkpFxaBUSUNBIE5FQk9KxaBBCitWSkXFoFRJQ0EgU0xBVktPCitWSkVSRyBCUkFOSVNMQVYKK1ZKRVRST1YgTEpVQklDQQorVkxBIERVxaBBTgorVkxBIERVxaBBTgorVkxBIEpPVkFOCitWTEEgTUlMT1ZBTgorVkxBIFBFVEFSCitWTEEgUkFET1NMQVYKK1ZMQSBTTEFWS08KK1ZMQSBTUkVUQQorVkxBxIxPIERVxaBBTktBCitWTEHFoMSMScSGIEFMRUtTQU5EQVIKK1ZMQcWgScSGIE1JT0RSQUcKK1ZMQcWgScSGIFZBU08KK1ZMQcWgS0FMScSGIMSQT1LEkEUKK1ZMQcWgS0FMScSGIEFMRUtTQU5EQVIKK1ZMQcWgS0FMScSGIEFORFJJSkEKK1ZMQcWgS0FMScSGIEJPxb1BTkEKK1ZMQcWgS0FMScSGLUJPSkFOT1ZJxIYgUkFKS0EKK1ZMQcWgS0FMScSGIEJSQU5JU0xBVgorVkxBxaBLQUxJxIYgQlJBTklTTEFWCitWTEHFoEtBTEnEhiBCUkFOSVNMQVYKK1ZMQcWgS0FMScSGIERPTktBCitWTEHFoEtBTEnEhiBGQURJTEEKK1ZMQcWgS0FMScSGIElMSUpBCitWTEHFoEtBTEnEhiBMQVpBUgorVkxBxaBLQUxJxIYgTEFaQVIKK1ZMQcWgS0FMScSGIE1JTE9SQUQKK1ZMQcWgS0FMScSGIE5JS09MQQorVkxBxaBLQUxJxIYgT0xHQQorVkxBxaBLQUxJxIYgUEFWTEUKK1ZMQcWgS0FMScSGIFBBVkxFCitWTEHFoEtBTEnEhiBQQVZMRQorVkxBxaBLQUxJxIYgUEVUQVIKK1ZMQcWgS0FMScSGIFBFVEFSCitWTEHFoEtBTEnEhi1QT1BPVknEhiBEVcWgQU5LQQorVkxBxaBLQUxJxIYgUkFET1NMQVYKK1ZMQcWgS0FMScSGIFNBVkEKK1ZMQcWgS0FMScSGIFNMT0JPREFOCitWTEHFoEtBTEnEhiBTTE9CT0RBTgorVkxBxaBLQUxJxIYgU1RFVkFOCitWTEHFoEtBTEnEhiBTVE9KQU4KK1ZMQcWgS0FMScSGIFZMQURJTUlSCitWTEHFoEtBTEnEhiBaT1JBCitWTEHFoEtBTElKQSBKRUxFTkEKK1ZMQcWgS0FMSUpBIFZMQURBCitWTEHFoEtBTElOIEJSQU5LTworVkxBxaBLSSBCT0dEQU5LQQorVkxBxaBLSSBMQVpBUgorVkxBxaBLSSBQUkVEUkFHCitWTEFEQVJTS0kgT0xHQQorVkxBREFSU0tJIE9MR0EKK1ZMQURFVEnEhiBNSUxBTgorVkxBREVUScSGIE1JUktPCitWTEFEScSGIERSQUdPCitWTEFEScSGIE1JTEFOCitWTEFEScSGIFBFVEFSCitWTEFESU1JUiBTRUxFTkEKK1ZMQURJTUlSIFpEUkFWS08KK1ZMQURJTUlST1ZJxIYgQUxFS1NBTkRBUgorVkxBRElNSVJPVknEhiBNSUxBTgorVkxBRElNSVJPVknEhiBWTEFESU1JUgorVkxBRElTQVZMSkVWIMW9SVZBTgorVkxBRElTQVZMSkVWIE1JTE9SQUQKK1ZMQURJU0FWTEpFViBQRVJBCitWTEFESVNBVkxKRVYgVE9NQQorVkxBRElTQVZMSkVWScSGIMSQT1LEkEUKK1ZMQURJU0FWTEpFVknEhiDEkFVSQQorVkxBRElTQVZMSkVWScSGIERFU0lNSVIKK1ZMQURJU0FWTEpFVknEhiBEUkFHSUNBCitWTEFESVNBVkxKRVZJxIYgRVLFvUVCRVQKK1ZMQURJU0FWTEpFVknEhiBKRUxFTkEKK1ZMQURJU0FWTEpFVknEhiBNSUxPU0FWQQorVkxBRElTQVZMSkVWScSGIE1JUk9TTEFWCitWTEFESVNBVkxKRVZJxIYgT0JSQUQKK1ZMQURJU0FWTEpFVknEhi1QRcWgS0FOT1YgTUlSSkFOQQorVkxBRElTQVZMSkVWScSGIFBSRURSQUcKK1ZMQURJU0FWTEpFVknEhiBWT0pJU0xBVgorVkxBRE9WScSGIEpPVkFOCitWTEFET1ZJxIYgSk9WQU4KK1ZMQURPVknEhiBSQURPSktBCitWTEFEVcWgQSBOSUtPTEEKK1ZMQURVxaBJxIYgSVZBTgorVkxBRFXFoEnEhiBNSUxBTgorVkxBRFVMT1Ygxb1JVk9KSU4KK1ZMQURVTE9WScSGLVBPUE9WIE1BUklKQSBEUiBMRUtBUgorVkxBRFVMT1ZJxIYgVElIT01JUgorVkxBSCBEQU5JQ0EKK1ZMQUggSVZBTgorVkxBSCBQQVZMRQorVkxBSCBSQURPVkFOCitWTEFIRUsgU1RBTktPCitWTEFISU5JxIYgTUlMT8WgCitWTEFITyBLUlVOT1NMQVYKK1ZMQUhPVknEhiDEkE9SxJBFCitWTEFIT1ZJxIYgQk9KQU5BCitWTEFIT1ZJxIYgQlJBTklTTEFWCitWTEFIT1ZJxIYgQlJBTktBCitWTEFIT1ZJxIYgQlJBTktBCitWTEFIT1ZJxIYgREFOSUpFTEEKK1ZMQUhPVknEhiBEUkFHT0xKVUIKK1ZMQUhPVknEhiBEUkFHTworVkxBSE9WScSGIERVxaBBTgorVkxBSE9WScSGIEpFTElDQQorVkxBSE9WScSGIExKVUJJQ0EKK1ZMQUhPVknEhiBMSlVCSU5LQQorVkxBSE9WScSGIE1BUklKQQorVkxBSE9WScSGIE1JTEFOIERJUEwgSU5HCitWTEFIT1ZJxIYgTUlMRU5LTworVkxBSE9WScSGIE1JTElDQQorVkxBSE9WScSGIE1JUktPIERSIElORworVkxBSE9WScSGIE1JUk9TTEFWQQorVkxBSE9WScSGIE1PTcSMSUxPCitWTEFIT1ZJxIYgUEFWTEUKK1ZMQUhPVknEhiBSQURPxaAKK1ZMQUhPVknEhiBSQURPTUlSCitWTEFIT1ZJxIYgUkFET05KQQorVkxBSE9WScSGIFNBVkEgRFIKK1ZMQUhPVknEhiBTRU5LQQorVkxBSE9WScSGIFNMT0JPREFOCitWTEFIT1ZJxIYgU1RFVkFOCitWTEFIT1ZJxIYgU1RSQUhJTkpBCitWTEFIT1ZJxIYgVEVPRE9SQQorVkxBSE9WScSGIFZJVE9NSVJLQQorVkxBSE9WScSGIFZMQURBCitWTEFIT1ZJxIYgVkxBRElNSVIKK1ZMQUhVxaBJxIYgTUlSS08KK1ZMQUhVxaBJxIYgT0xHSUNBCitWTEFJU0FWTEpFVknEhiDFvUlWS08KK1ZMQUlTQVZMSkVWScSGIMSQVUpPCitWTEFJU0FWTEpFVknEhiBBTkdFTElOQQorVkxBSVNBVkxKRVZJxIYgREFOSUxPCitWTEFJU0FWTEpFVknEhiBEQVJBCitWTEFJU0FWTEpFVknEhiBETUlUQVIKK1ZMQUlTQVZMSkVWScSGIERVxaBBTgorVkxBSVNBVkxKRVZJxIYgTUFLU0lNCitWTEFJU0FWTEpFVknEhiBNSUxBTgorVkxBSVNBVkxKRVZJxIYgTUlMQU4KK1ZMQUlTQVZMSkVWScSGIE1JTElKQU5BCitWTEFJU0FWTEpFVknEhiBNSUxPxaAKK1ZMQUlTQVZMSkVWScSGIE1PTcSMSUxPCitWTEFJU0FWTEpFVknEhiBOSUtPTEEKK1ZMQUlTQVZMSkVWScSGIE5JS09MQQorVkxBSVNBVkxKRVZJxIYgTklLT0xBCitWTEFJU0FWTEpFVknEhiBSQURNSUxBCitWTEFJU0FWTEpFVknEhiBTQVZPCitWTEFJU0FWTEpFVknEhiBTTE9CT0RBTgorVkxBSVNBVkxKRVZJxIYgU09GSUpBCitWTEFJU0FWTEpFVknEhiBTVE9KQQorVkxBSVNBVkxKRVZJxIYgVFJJVlVOQQorVkxBSVNBVkxKRVZJxIYgVkFTTworVkxBSkFOS09WIExBWkFSCitWTEFKQU5LT1YgTkFUQUxJSkEKK1ZMQUpBTktPViBTTE9CT0RBTgorVkxBSkFOS09WLVZVTEnEhiBWRVJBCitWTEFKScSGIERSQUdBTgorVkxBSknEhiBEUkFHT1NMQVZBCitWTEFKScSGIERVxaBBTktBCitWTEFKScSGIERVxaBJQ0EKK1ZMQUpJxIYgSk9WQU4KK1ZMQUpJxIYgTUFSSUpBCitWTEFKScSGIE1JTE/FoAorVkxBSknEhiBWQUxFUklKQQorVkxBSktPViBCT1NJTEpLQQorVkxBSktPViBCUkFOSVNMQVYKK1ZMQUpLT1YgQlJBTktPCitWTEFKS09WLUlWQU5PVknEhiBTTkXFvUFOQQorVkxBSktPViBMQVpBUgorVkxBSktPViBMQVpBCitWTEFKS09WIE1BQ0EKK1ZMQUpLT1YgTUlPRFJBRworVkxBSktPViBNSVJLTworVkxBSktPViBNTEFERU4KK1ZMQUpLT1YgTklLT0xBCitWTEFKS09WIFBBVkxFCitWTEFKS09WIFBFVEFSCitWTEFKS09WIFpPUklDQQorVkxBSktPVknEhiBBTlRPTklKQQorVkxBSktPVknEhiBCT0dEQU4KK1ZMQUpLT1ZJxIYgTUlMVVRJTgorVkxBSktPVknEhiBNSU9EUkFHCitWTEFKS09WScSGIE5FTUFOSkEKK1ZMQUpOScSGIMSMRURPTUlSCitWTEFKTknEhiBHT1JBTgorVkxBSk5JxIYgTUlSSkFOQQorVkxBSk5JxIYgWk9SQQorVkxBSk9WQU5PViBTTE9CT0RBTgorVkxBTFVLSU4gRFJBR09TTEFWCitWTEFMVUtJTiBJTE9OQQorVkxBTFVLSU4gSUxPTktBCitWTEFMVUtJTiBNSUxPUkFEIERJUEwgSU5HCitWTEFMVUtJTiBNSVJKQU5BCitWTEFMVUtJTiBOQURBCitWTEFMVUtJTiBTQVZBCitWTEFMVUtJTiBTTEFWS08KK1ZMQUxVS0lOIFpPUkEKK1ZMQU9WLcW9QVJLT1YgT0xHQQorVkxBT1YgR09SREFOQQorVkxBT1YgSkFWT1JLQQorVkxBT1YgTUlMT8WgCitWTEFPViBNSVJPU0xBVgorVkxBT1YgVkVMSU1JUgorVkxBT1ZJxIYgxJBPUsSQRQorVkxBT1ZJxIYgxJBPUsSQRQorVkxBT1ZJxIYgxJBPUsSQRQorVkxBT1ZJxIYgxJBPUsSQRQorVkxBT1ZJxIYgQUxFS1NBTkRBUgorVkxBT1ZJxIYgQU5JQ0EKK1ZMQU9WScSGIEJPxaBLTworVkxBT1ZJxIYgQlJBTklTTEFWQQorVkxBT1ZJxIYgRElNSVRSSUpFCitWTEFPVknEhiBEUkFHQU4KK1ZMQU9WScSGIERSQUdBTgorVkxBT1ZJxIYgRFJBR09MSlVCCitWTEFPVknEhiBEVcWgQU4KK1ZMQU9WScSGIERVxaBLTworVkxBT1ZJxIYgR0FWUkEKK1ZMQU9WScSGIEhBUkkKK1ZMQU9WScSGIElHTkpBVAorVkxBT1ZJxIYgSVZBTktBCitWTEFPVknEhiBKRUxBCitWTEFPVknEhiBKT1ZBTgorVkxBT1ZJxIYgSk9WQU4KK1ZMQU9WScSGIEtBVElDQQorVkxBT1ZJxIYgTEFaQVIKK1ZMQU9WScSGIExKVUJJxaBBCitWTEFPVknEhiBMSlVCSUNBCitWTEFPVknEhiBMSlVCT01JUgorVkxBT1ZJxIYgTEpVQk9NSVIKK1ZMQU9WScSGIExVS0EKK1ZMQU9WScSGIE1BUkEKK1ZMQU9WScSGIE1BUktPCitWTEFPVknEhiBNSUxPxaAKK1ZMQU9WScSGIE1JTE/FoAorVkxBT1ZJxIYgTUlMT1NBVgorVkxBT1ZJxIYgTUlST1NMQVYKK1ZMQU9WScSGIE1MQURFTgorVkxBT1ZJxIYgTklLT0xBCitWTEFPVknEhiBOSUtPTEEKK1ZMQU9WScSGIE9MSVZFUkEKK1ZMQU9WScSGIFBMRU1FTktBCitWTEFPVknEhiBSQURJVk9KCitWTEFPVknEhiBSQUpLTworVkxBT1ZJxIYgU0FWQQorVkxBT1ZJxIYgU0xBVktPCitWTEFPVknEhiBTVEFOT0pFCitWTEFPVknEhiBTVEVWQU4KK1ZMQU9WScSGIFNURVZBTgorVkxBT1ZJxIYgU1ZFVE9aQVIKK1ZMQU9WScSGIFRPxaBBCitWTEFPVknEhiBUT0RPUgorVkxBT1ZJxIYgVE9NQQorVkxBT1ZJxIYgVE9NSVNMQVYKK1ZMQU9WScSGIFZFU05BCitWTEFPVknEhiBWTEFTVElTTEFWQQorVkxBT1ZJxIYgWk9SQU4KK1ZMQVNBxIxFVknEhiBTVE9KS08KK1ZMQVNBSyBSRU5BVEEKK1ZMQVNPViBNSUhBSkxPCitWTEFTVEVMScSGIFJPS1NBTkRBCitWTEFUS09WScSGIMW9RUxKS08KK1ZMQVRLT1ZJxIYgQU5HRUxPCitWTEFUS09WScSGIERVxaBBTgorVkxBVEtPVknEhiBLUkXFoElNSVIKK1ZMQVRLT1ZJxIYgTUFSSUpBCitWTEFUS09WScSGIE1BUklKQQorVkxBVEtPVknEhiBNSUxBTgorVkxBVEtPVknEhiBNSUxJQ0EKK1ZMQVRLT1ZJxIYgTUlST1NMQVYKK1ZMQVRLT1ZJxIYgTUxBREVOCitWTEFUS09WScSGIE5JS09MQQorVkxBVEtPVknEhiBTQVZLQQorVkxBVEtPVknEhiBTVkVUT1pBUgorVk/FoFRJxIYgQUxFS1NBTkRBUgorVk/FoFRJxIYgTUlPRFJBRworVk9EQSBaREVOS08KK1ZPREFMT1YgREVKQU4KK1ZPREFMT1YgTUxBREVOCitWT0RFTknEjEFSIE5JS09MQQorVk9ET0dBWiBEUkFHQU4KK1ZPRE9HQVogTEVQT1NBVkEKK1ZPRE9QSVZFQyDFvUVMSktPCitWT0RPUElWRUMgRFJBR0lDQQorVk9ET1BJVkVDIE1JSEFFTAorVk9HQU5KQUMgTUlMRU5LTworVk9HTEXFoCBMSURJSkEKK1ZPSU4gQUxFS1NBTkRBUiBEUiBMRUtBUgorVk9KxIxFVlNLSSBBTEVLU0FOREFSCitWT0rEjEnEhiBKT1ZBTgorVk9KQcWgxIZVSyBNQVJBCitWT0pJxIxJxIYgSkVMRU5BCitWT0pJxIxJxIYgUkFKS08KK1ZPSknEjEnEhiBTQVZBCitWT0pJxIxJxIYgVkxBRElNSVIKK1ZPSklNSVJPVknEhiBTTEFWS08KK1ZPSklOIE1JTEtBCitWT0pJTk9WIMSQT1LEkEUKK1ZPSklOT1YgTUlSQQorVk9KSU5PViBSQURPU0xBVgorVk9KSU5PVknEhiBBTEVLU0FORFJBCitWT0pJTk9WScSGIEJPR0nEhgorVk9KSU5PVknEhiBEUkFHQU4KK1ZPSklOT1ZJxIYgRFJBR09MSlVCCitWT0pJTk9WScSGIERSQUdPU0xBVgorVk9KSU5PVknEhiBKRUxFTkEKK1ZPSklOT1ZJxIYgSk9WQU4gRFIKK1ZPSklOT1ZJxIYgTEpJTEpBTkEKK1ZPSklOT1ZJxIYgTEpVQk9NSVIKK1ZPSklOT1ZJxIYgTUlMSVZPSkUKK1ZPSklOT1ZJxIYgTUlMT1JBRAorVk9KSU5PVknEhiBNSVJKQU5BIERSCitWT0pJTk9WScSGIE1JUk9TTEFWCitWT0pJTk9WScSGIE1JUk9TTEFWCitWT0pJTk9WScSGIE1JUk9TTEFWCitWT0pJTk9WScSGIE5FQk9KxaBBCitWT0pJTk9WScSGIFZFU0VMSU4KK1ZPSklOT1ZJxIYgVlVKSUNBCitWT0pJTk9WScSGIFZVS09TQVZBCitWT0pJTk9WScSGIFpPUktBCitWT0pJU0FWTEpFVknEhiBaTEFUSUpBCitWT0pLScSGIEJPxaBLTworVk9KS0nEhiBSQURJU0xBVgorVk9KTknEhiBGUkFOSkEKK1ZPSk5JxIYtSEFKRFVLIEdJWkEKK1ZPSk5JxIYtSEFKRFVLIExKSUxKQU5BCitWT0pOScSGLUhBSkRVSyBNSVJKQU5BCitWT0pOScSGIEpPVkFOCitWT0pOScSGLUtPUlRVScWgIFNUQU5BCitWT0pOScSGIFNURVZBTgorVk9KTk9WIEJSQU5JU0xBVgorVk9KTk9WLUlMScSGIFJPWkFMSUpBCitWT0pOT1YgU1RPSkFOIERSIExFS0FSCitWT0pOT1ZJxIYgxb1BUktPCitWT0pOT1ZJxIYgxb1BUktPCitWT0pOT1ZJxIYgxb1BUktPCitWT0pOT1ZJxIYgxJBPUsSQRQorVk9KTk9WScSGIMSQT1LEkEUKK1ZPSk5PVknEhiDEkFVSQQorVk9KTk9WScSGIMSQVVJPCitWT0pOT1ZJxIYgQUNBCitWT0pOT1ZJxIYgQU5BU1RBWklKQQorVk9KTk9WScSGIEJSQUNBCitWT0pOT1ZJxIYgQlJBTktPCitWT0pOT1ZJxIYgQlJBTktPCitWT0pOT1ZJxIYgQlJBTktPCitWT0pOT1ZJxIYgREFOSUNBCitWT0pOT1ZJxIYgREFWT1IKK1ZPSk5PVknEhiBERVNBTktBCitWT0pOT1ZJxIYgREVTQU5LQQorVk9KTk9WScSGIERJTUlUUklKRQorVk9KTk9WScSGIERSQUdBTgorVk9KTk9WScSGIERSQUdBTgorVk9KTk9WScSGIERSQUdJQ0EKK1ZPSk5PVknEhiBEVcWgQU4gRElQTCBJTkcKK1ZPSk5PVknEhiBEVcWgQU4KK1ZPSk5PVknEhiBEVcWgQU4KK1ZPSk5PVknEhiBEVcWgQU4KK1ZPSk5PVknEhiBEVcWgQU4KK1ZPSk5PVknEhiBHSVpFTEEKK1ZPSk5PVknEhiBJTElKQQorVk9KTk9WScSGIElMSUpBCitWT0pOT1ZJxIYgSUxJSkEKK1ZPSk5PVknEhiBJTElKQQorVk9KTk9WScSGIElWQU5LQQorVk9KTk9WScSGIElWQU4KK1ZPSk5PVknEhiBKT1ZBTgorVk9KTk9WScSGIEpPVkFOCitWT0pOT1ZJxIYgS0FUQVJJTkEKK1ZPSk5PVknEhiBLQVRJQ0EKK1ZPSk5PVknEhiBLTEFSQQorVk9KTk9WScSGIExKVUJJxaBBCitWT0pOT1ZJxIYgTEpVQklOS0EKK1ZPSk5PVknEhiBNQVJBCitWT0pOT1ZJxIYgTUFSS08KK1ZPSk5PVknEhiBNSUxBTgorVk9KTk9WScSGIE1JTEFOCitWT0pOT1ZJxIYgTUlMQU4KK1ZPSk5PVknEhiBNSUxBTgorVk9KTk9WScSGIE1JTEFOCitWT0pOT1ZJxIYgTUlMQU4KK1ZPSk5PVknEhiBNSUxFTktPCitWT0pOT1ZJxIYgTUlMRU5LTworVk9KTk9WScSGIE1JTElDQQorVk9KTk9WScSGIE1JTElOQQorVk9KTk9WScSGIE1JTEpBTgorVk9KTk9WScSGIE1JTEtBCitWT0pOT1ZJxIYgTUlMT8WgCitWT0pOT1ZJxIYgTUlMVVRJTgorVk9KTk9WScSGIE1JT0RSQUcKK1ZPSk5PVknEhiBNSVJKQU5BCitWT0pOT1ZJxIYgTUlSS08KK1ZPSk5PVknEhiBNSVJPU0xBVgorVk9KTk9WScSGIE1MQURFTiBESVBMIE9FQworVk9KTk9WScSGIE5BREEKK1ZPSk5PVknEhiBOQURBCitWT0pOT1ZJxIYgTkFERcW9REEKK1ZPSk5PVknEhiBOQVRBxaBBCitWT0pOT1ZJxIYgTkFUQcWgQQorVk9KTk9WScSGIE5JS09MQSBEUgorVk9KTk9WScSGIE5JS09MQQorVk9KTk9WScSGIE5JS09MQQorVk9KTk9WScSGIFBFVEFSCitWT0pOT1ZJxIYgUEVUQVIKK1ZPSk5PVknEhiBQRVRBUgorVk9KTk9WScSGIFJBREEKK1ZPSk5PVknEhiBSQURFCitWT0pOT1ZJxIYgUkFERQorVk9KTk9WScSGIFJBREUKK1ZPSk5PVknEhiBSQURJVk9KCitWT0pOT1ZJxIYtUkFEVUpLT1YgTkFEQQorVk9KTk9WScSGIFJBSktPCitWT0pOT1ZJxIYgUlXFvUlDQQorVk9KTk9WScSGIFNMQVZLTworVk9KTk9WScSGIFNMQVZLTworVk9KTk9WScSGIFNQQVNFTklKQQorVk9KTk9WScSGIFNUQU1FTktBCitWT0pOT1ZJxIYgU1RBTklTTEFWCitWT0pOT1ZJxIYgU1RFVkFOCitWT0pOT1ZJxIYgU1RFVkFOCitWT0pOT1ZJxIYgU1RFVkFOCitWT0pOT1ZJxIYgU1RFVkEKK1ZPSk5PVknEhiBTVEVWTworVk9KTk9WScSGIFNUT0pLQQorVk9KTk9WScSGIFNUUkFISU5KQQorVk9KTk9WScSGIFRPTUlTTEFWCitWT0pOT1ZJxIYgVkVTRUxJTgorVk9KTk9WScSGIFZFU0VMSU4KK1ZPSk5PVknEhiBWTEFESU1JUgorVk9KTk9WScSGIFZMQURJTUlSCitWT0pOT1ZJxIYgVkxBRElNSVIKK1ZPSk5PVknEhiBWTEFESU1JUgorVk9KTk9WScSGIFZPSklTTEFWCitWT0pOT1ZJxIYgVk9KSVNMQVYKK1ZPSk5PVknEhiBaRFJBVktPCitWT0pUIExKVUJJQ0EKK1ZPSlQgTUlMQU5BCitWT0pUQVMgU1RBTklTTEFWCitWT0pURUhPVlNLSSBKQVJPU0xBVgorVk9KVEVIT1ZTS0kgT1RPCitWT0pURUhPVlNLSSBPVE8KK1ZPSlRFSE9WU0tJIFpBR09SS0EKK1ZPSlZPREnEhiDEkFVSQQorVk9KVk9EScSGIEFMRUtTQU5EQVIKK1ZPSlZPREnEhiBBTkEKK1ZPSlZPREnEhiBCUkFOSVNMQVYKK1ZPSlZPREnEhiBEQU5JQ0EKK1ZPSlZPREnEhiBEUkFHT0xKVUIKK1ZPSlZPREnEhiBEVcWgQU4KK1ZPSlZPREnEhiBHUkFESU1JUgorVk9KVk9EScSGIEpPVkFOCitWT0pWT0RJxIYgTUFOScWgQQorVk9KVk9EScSGIE1JTEFOCitWT0pWT0RJxIYgTUlMRQorVk9KVk9EScSGIE1JTE/FoAorVk9KVk9EScSGIE1JTE9SQUQKK1ZPSlZPREnEhiBNSVJLTworVk9KVk9EScSGIE5BREEKK1ZPSlZPREnEhiBOSUtPTEEKK1ZPSlZPREnEhiBSQURPVkFOCitWT0pWT0RJxIYgUkFUS0EKK1ZPSlZPREnEhiBTTEFWS08KK1ZPSlZPREnEhiBTVEVWQU4KK1ZPSlZPREnEhiBTVEVWQU4KK1ZPSlZPREnEhi1UQVNJxIYgU1ZFVExBTkEKK1ZPSlZPREnEhiBWQVNPCitWT0pWT0RJxIYgVk9KSVNMQVYKK1ZPSlZPREnEhiBaT1JBCitWT0vFoEkgxJBFVkFECitWT0tBTEnEhiBISUxERUdBUkQKK1ZPS0FMScSGIFRFT0JBTEQKK1ZPS0nEhiBEUkFHQU4KK1ZPS0nEhiBEVcWgS08KK1ZPS0nEhiBKT1ZBTgorVk9LScSGIE5BREEKK1ZPTMSMRVZJxIYgQk9SSVNMQVYKK1ZPTMSMRVZJxIYgRVZBCitWT0zEjEVWScSGIFRPRE9SCitWT0zEjEVWU0tJIEVWQU5USUpFCitWT0zEjEVWU0tJIE5JS09MQQorVk9MQcWgIElTSURPUgorVk9MQcWgIE1JTEFOS08KK1ZPTEHFoCBNSUxBTgorVk9MQVIgQU5EUkHFoAorVk9MQVIgS0FSTE8KK1ZPTEFSIFBFVEFSCitWT0xBUiBTVEpFUEFOCitWT0xBUkVWIExKVUJPTUlSCitWT0xBUkVWIE5BREEKK1ZPTEFSRVYgU1RFVkFOCitWT0xBUkVWScSGIE1BUktPCitWT0xBUkVWScSGIFpPUkFOCitWT0xBUk9WIE1JTEFOCitWT0xBUk9WIFJBRE9WQU4KK1ZPTEVOQyBNQVJJSkEKK1ZPTEYgQk9SSVMKK1ZPTEYgRFJBR1VUSU4KK1ZPTEYgScWgVFZBTgorVk9MRiBMSlVCSUNBCitWT0xGIExKVURFVklUCitWT0xGIE1JUkEKK1ZPTEYgTUlSQQorVk9MRiBWRVJBCitWT0xJxIwgVkxBRElNSVIKK1ZPTEnEhiBBTEVLU0FOREFSCitWT0xJxIYgQk/FvUlEQVIKK1ZPTEnEhiBEUkFHT1NMQVYKK1ZPTEnEhiBHUlVKQQorVk9MScSGIExKSUxKQU5BCitWT0xJxIYgTUFSSU5LQQorVk9MScSGIFBFVEFSCitWT0xJxIYgUkFET1NMQVYKK1ZPTEnEhiBTTEFWS08KK1ZPTEnEhiBUSUhPTUlSCitWT0xJxIYgVklOS0EKK1ZPTEtBUiBFTUlMCitWT0xLT1YgUkFET1NMQVYKK1ZPTE/FoEtJTiBCUkFUSVNMQVYKK1ZPTE/FoEtJTiBEUkFHSUNBCitWT05JxIYgVkxBVEtPCitWT1JBxIxFSyDFvUVMSktPCitWT1JBxIxFSyBMQURJU0xBVgorVk9SQVRPVknEhiBSQURJVk9KCitWT1JHScSGIMSQT1LEkEUKK1ZPUkdJxIYgQUxFS1NBTkRBUgorVk9SR0nEhiBBTsSQRUxLQQorVk9SR0nEhiBCT1JJVk9KCitWT1JHScSGIERSQUdBTgorVk9SR0nEhiBFTUlMCitWT1JHScSGIEdBVlJBCitWT1JHScSGIEpPU0lQCitWT1JHScSGIExBWkFSCitWT1JHScSGIE1BUkEKK1ZPUkdJxIYgTUlMQURJTktBCitWT1JHScSGIE5JS09MQSBEUgorVk9SR0nEhiBTTE9CT0RBTgorVk9SR0nEhiBTVEVWQU4KK1ZPUkdJxIYgU1RFVkFOCitWT1JHScSGIFZVSklDQQorVk9SR0nEhiBaRFJBVktPCitWT1JHScSGIFpPUkEKK1ZPUkdJTkMgQ1ZFVEEKK1ZPUkdVxIxJxIYgTUlMT8WgCitWT1JHVcSMScSGIFNBxaBBCitWT1JHVcSMSU4gSVZBTgorVk9SS0FQQSBOSUtPTEEKK1ZPUktBUEnEhiBEVcWgQU4KK1ZPUktBUEnEhiBMSlVCSUNBCitWT1JLQVBJxIYgTUlMQU4KK1ZPUktBUEnEhiBOSUtPTEEKK1ZPUkxJxIxFSyBKQU5PxaAKK1ZPUkxJxIxFSyBKQU5PxaAKK1ZPUkxJxIxFSyBNQVJJQ0EKK1ZPUk9CSkVWIFBFVEFSCitWT1JPQkpFViBTQVZBCitWT1JPVE9WScSGIFNUQU5BCitWT1JUScSGIEJPU0lMSktBCitWT1pBUiBBTkEKK1ZPWkFSIERBTklDQQorVk9aQVIgRFJBR0FOCitWT1pBUiBNSUxPxaAKK1ZPWkFSIFBBVkxFIERJUEwgSU5HCitWT1pBUkVWScSGIMSQT1LEkEUKK1ZPWkFSRVZJxIYgRUxJWkFCRVRBCitWT1pBUkVWScSGIEpFTElDQQorVk9aQVJFVknEhiBNSVJLTworVk9aQVJPVknEhiBWSURBCitWUsSMSU5BQyBQRVRBUgorVlLFoEtBIMSQT1LEkEUKK1ZSxaBLQSBEQU5JSkVMCitWUsWgS0EgS0FUQVJJTkEKK1ZSQcSMQVIgQlJBTklTTEFWCitWUkHEjEFSIERBUklOS0EKK1ZSQcSMQVIgSk9WQU4KK1ZSQcSMQVIgTEpVQk9NSVIKK1ZSQcSMQVIgTEpVQk8KK1ZSQcSMQVIgTUlMQU4KK1ZSQcSMQVIgTUlPTEpLQQorVlJBxIxBUiBORURFTEpLTworVlJBxIxBUiBTTEFWS0EKK1ZSQcSMQVIgU0xPQk9EQU4KK1ZSQcSMQVIgVkVSQQorVlJBxIxBUiBWVUsKK1ZSQcSMQVIgWkRFTktBCitWUkHEjEFSScSMScSGIFJBREUKK1ZSQcSMQVJJxIYgxJBPUsSQRQorVlJBxIxBUknEhiBBTEVLU0FOREFSCitWUkHEjEFSScSGIERJTUlUUklKRQorVlJBxIxBUknEhiBKRUxJQ0EKK1ZSQcSMQVJJxIYgTEpJTEpBTkEKK1ZSQcSMQVJJxIYgTEpVQknFoEEKK1ZSQcSMQVJJxIYgTEpVQk9NSVIKK1ZSQcSMQVJJxIYgTUFSSUpBCitWUkHEjEFSScSGIE1JTEVOS08KK1ZSQcSMQVJJxIYgTUlMSVNBVgorVlJBxIxBUknEhiBNSUxPTUlSCitWUkHEjEFSScSGIFZMQURJTUlSCitWUkHEjEVWScSGIFNBVktBCitWUkHFoFRBTk9WScSGIExKVUJJTktBCitWUkFCTElLIEpVTElKQU5BCitWUkFHT1ZJxIYgSk9DQQorVlJBTkEgTkFEQQorVlJBTkFDIEtTRU5JSkEKK1ZSQU5BQyBTRUFECitWUkFOQUMgVkFISURBCitWUkFOQUMgWklKQUQKK1ZSQU5FxaAgxIxFRE9NSVIKK1ZSQU5FxaAgQk/FvUlEQVIKK1ZSQU5FxaAgREFWT1JJTgorVlJBTkXFoCBFTUlMSUpBCitWUkFORcWgIEpPVkFOS0EKK1ZSQU5FxaAgTUFSSUpBCitWUkFORcWgIE1JTEFOCitWUkFORcWgIE1JTEtBCitWUkFORcWgIE1JTFVUSU4KK1ZSQU5FxaAgTkFEQQorVlJBTkXFoCBOSUtPTEEKK1ZSQU5FxaAgUEVUQVIKK1ZSQU5FxaAgU01JTEpBCitWUkFORcWgIFZFUklDQQorVlJBTkXFoEVWScSGIEFEQU0KK1ZSQU5FxaBFVknEhiBCUkFOSVNMQVYgRFIKK1ZSQU5FxaBFVknEhiBEQU1KQU4KK1ZSQU5FxaBFVknEhiBLQVRJQ0EKK1ZSQU5FxaBFVknEhiBNSUxBTgorVlJBTkXFoEVWScSGIE1JTEFOCitWUkFORcWgRVZJxIYgTUlMT8WgCitWUkFORcWgRVZJxIYgTUlST1NMQVYKK1ZSQU5FxaBFVknEhiBNTEFERU4KK1ZSQU5FxaBFVknEhiBOQURBIERSCitWUkFORcWgRVZJxIYgUFJFRFJBRworVlJBTkXFoEVWScSGIFJBSktPCitWUkFORcWgRVZJxIYgU1RFVkFOCitWUkFORcWgRVZJxIYgU1RPSkFOCitWUkFOScSGIMSMRURPTUlSCitWUkFOScSGIEJSQU5LTworVlJBTknEhiBET0JSSU5BCitWUkFOScSGIERSQUdJTkpBCitWUkFOScSGIERSQUdPU0xBVgorVlJBTknEhiBJTElKQQorVlJBTknEhiBKQURSQU5LQQorVlJBTknEhiBNQVJLTworVlJBTknEhiBNSUxBTiBQUk9GRVNPUgorVlJBTknEhiBNSUxPUkFECitWUkFOScSGIE1JTFVUSU4KK1ZSQU5JxIYgTUlSxIxFVEEKK1ZSQU5JxIYgTUlSS08KK1ZSQU5JxIYgTUlUUkEKK1ZSQU5JxIYgTkVOQUQKK1ZSQU5JxIYgTklLT0xBCitWUkFOScSGIFJBRElWT0pFCitWUkFOScSGIFJBRE9KS0EKK1ZSQU5JxIYgU0xBVktPCitWUkFOScSGIFNMT0JPREFOCitWUkFOSkXFoCBHT0pLTworVlJBTkpFxaAgSk9WQU5LQQorVlJBTkpFxaAgTUlMRU5LTworVlJBTkpFxaAgTUlMRU5LTworVlJBTkpFxaAgTUlMRQorVlJBTkpFxaAgTUlMS0EKK1ZSQU5KRcWgIE5FTkFECitWUkFOSkXFoCBSQURPTUlSCitWUkFOSkXFoCBTT0ZJSkEKK1ZSQU5KRcWgIFNWRVRJU0xBVgorVlJBTkpFxaAgU1ZFVExBTkEKK1ZSQU5KRcWgRVZJxIYgQlJBTktPCitWUkFOSkXFoEVWScSGIERJTktBCitWUkFOSkXFoEVWScSGIERSQUdBTgorVlJBTkpFxaBFVknEhiBKT1ZJQ0EKK1ZSQU5KRcWgRVZJxIYgTU9NSVIKK1ZSQU5KRcWgRVZJxIYgUkFUT01JUgorVlJBTkpFxaBFVknEhiBWRUxKS08KK1ZSQU5KRVZBQyBEUkFHQU4KK1ZSQU5KRVZBQyBNSUxJVk9KRQorVlJBTkpLT1ZJxIYgTUlMQU4KK1ZSQU5KS09WScSGIE1JTEUKK1ZSQU5KS09WScSGIFNNSUxKS0EKK1ZSQU5KS09WScSGIFNSRVRPCitWUkFOSk8gRlJBTkpBCitWUkFOSk8gWk9MVEFOCitWUkFOS09WScSGIEpVUkFKCitWUkFOS09WScSGIExVS0EKK1ZSQU5LT1ZJxIYgTUlMQU4KK1ZSQVDEjEVWIMW9SVZLTworVlJBUMSMRVYgRFXFoEtPCitWUkFQxIxFViBNRUxBTklKQQorVlJBVE5KQU4gQlJBTklNSVIKK1ZSQVRPTkpJxIYgU0xBVk9MSlVCCitWUkJBxaBLSSDFvUFSS08KK1ZSQkHFoEtJIMW9QVJLTworVlJCQcWgS0kgxJBPUsSQRQorVlJCQcWgS0kgxJBPUsSQRQorVlJCQcWgS0kgxJBVUkEKK1ZSQkHFoEtJIEFMRUtTQU5EQVIKK1ZSQkHFoEtJIEFOSUNBCitWUkJBxaBLSSBCUkFOSVNMQVZBCitWUkJBxaBLSSBEQVJJTktBCitWUkJBxaBLSSBEUkFHT01JUgorVlJCQcWgS0kgRFJBR09TTEFWCitWUkJBxaBLSSBEVcWgQU4KK1ZSQkHFoEtJIERVxaBBTgorVlJCQcWgS0kgRFXFoEFOCitWUkJBxaBLSSBEVcWgSUNBCitWUkJBxaBLSSBHT1JEQU5BCitWUkJBxaBLSSBKRUxFTkEKK1ZSQkHFoEtJIEpFTElTQVZFVEEKK1ZSQkHFoEtJIEpPVkFOCitWUkJBxaBLSSBKVUxJSkFOQQorVlJCQcWgS0kgS09TVEEKK1ZSQkHFoEtJIExBWkFSCitWUkJBxaBLSSBMSklMSkFOQQorVlJCQcWgS0kgTEpVQklDQSBNUgorVlJCQcWgS0kgTEpVQk9NSVIKK1ZSQkHFoEtJIE1JTEFOCitWUkJBxaBLSSBNSUxBTgorVlJCQcWgS0kgTUlMRU5BCitWUkJBxaBLSSBNSUxFTktPCitWUkJBxaBLSSBNSUxJQ0EKK1ZSQkHFoEtJIE1JTE9SQUQKK1ZSQkHFoEtJIE1JT0RSQUcKK1ZSQkHFoEtJIE1JUk9TTEFWCitWUkJBxaBLSSBNSVJPU0xBVgorVlJCQcWgS0kgUEFWTEUKK1ZSQkHFoEtJIFBFVEFSIERJUEwgSU5HCitWUkJBxaBLSSBQRVRBUgorVlJCQcWgS0kgUEVUQVIKK1ZSQkHFoEtJIFJBREEKK1ZSQkHFoEtJIFJBREVOS08KK1ZSQkHFoEtJIFNBVkEKK1ZSQkHFoEtJIFNMT0JPREFOCitWUkJBxaBLSSBTVEVWQU4gRFIKK1ZSQkHFoEtJIFNWRVRMQU5BCitWUkJBxaBLSSBUQU5KQQorVlJCQcWgS0kgVElNQQorVlJCQcWgS0kgVE9ET1IKK1ZSQkHFoEtJIFZMQURJU0xBVgorVlJCQUpBQyDEkE9SxJBFCitWUkJBSkFDIENWRcSGRQorVlJCQUpBQyBKT1ZBTgorVlJCQUpBQyBWQUxFUklKQQorVlJCQU5BQyBMQUpPxaAKK1ZSQklDQSBEUkFHT0xKVUIKK1ZSQklDQSBLU0VOSUpBCitWUkJJQ0EgUEVUQVIKK1ZSQkxKQU5BQyBBTEVOCitWUkNBTiBWQUxFUklKQQorVlJDRUxKIMW9SVZLTworVlJDRUxKIEJPxb1JREFSCitWUkNFTEogTEpJTEpBTkEKK1ZSQ0VMSiBNSUhBSkxPCitWUkNFTEogWk9SQU4KK1ZSRE9MSkFLIEJSQU5JTUlSCitWUkRPTEpBSyBSQURPVkFOS0EKK1ZSRcWgxIZBSyBJxaBUVkFOCitWUkXEhkEgQlJBTktPCitWUkXEhk8gVkVMSU1JUgorVlJFQkFDIFpWT05JTUlSCitWUkVCQUxPViBBTEVLU0FORFJBCitWUkVCQUxPViBTVEVWQU4KK1ZSRUJBTE9WIFRJSE9NSVIKK1ZSRVZFWk9TS0kgUklTVE8KK1ZSRVZJxIxJxIYgxJBPUsSQRQorVlJFVknEjEnEhiBTSU1BCitWUkVWScSMScSGIFRSSVZVTgorVlJHT1YgS09TVEEKK1ZSR09WScSGIERSQUdBTgorVlJHT1ZJxIYgU1RFVkFOCitWUkdPVknEhiBWRVJBCitWUkdPVknEhiBWTEFESU1JUgorVlJIT1ZBQyBCUkFOSVNMQVYKK1ZSSE9WQUMgREFORQorVlJIT1ZBQyBKQVNNSU5BCitWUkhPVkFDIE5FREVMSktPCitWUkhPVkFDIFNMQVZLTyBESVBMIElORworVlJIT1ZBQyBUT01JU0xBVgorVlJLRcWgIEdPUkFOCitWUk1JxIYgTUxBREVOCitWUk7EjEnEhiDEkE9SxJBFCitWUlNBSktPViBJTElKQQorVlJTQUpLT1YgSVNJRE9SCitWUlNBSktPViBKVUxLQQorVlJTQUpLT1YgTEpVQklDQQorVlJTQUpLT1YgTUlMT8WgCitWUlNBSktPViBORVZFTktBCitWUlNFTEpBIFZJTktPCitWUlRJS0FQQSBKT1ZBTktBCitWUlRJUFJBxaBLSSBQRVRBUgorVlJUSVBSQcWgS0kgUkFET1ZBTiBEUgorVlJUSVBSQcWgS0kgUkFET1ZBTgorVlJUSVBSQcWgS0kgVkFTQQorVlJUT1bFoE5JSyBNSUhBSkxPCitWUlRVTEVLIFNNSUxKQQorVlJUVU5JxIYgQk9SSVNMQVYKK1ZSVFVOScSGIE1BUktPCitWUlRVTknEhiBOSUtPTEEKK1ZSVFVOU0tJIERBTklDQQorVlJUVU5TS0kgSEVEVklHQQorVlJUVU5TS0kgSlVMS0EKK1ZSVFVOU0tJIEtBVEFSSU5BCitWUlRVTlNLSSBNSUxBTgorVlJUVU5TS0kgTUlMSUNBCitWUlRVTlNLSSBNSU9EUkFHCitWUlRVTlNLSSBNTEFERU4KK1ZSVFVOU0tJIFNSxJBBTgorVlJUVU5TS0kgVkxBRElNSVIKK1ZSVcSGSU5JxIYgUkFET0pJQ0EKK1ZSVcSGSU5JxIYgUkFKS08KK1ZSWknEhiBCT1JJU0xBVgorVlJaScSGIERSQUdJQ0EKK1ZSWknEhiBEUkFHSUNBCitWUlpJxIYgTkFERcW9REEKK1ZSWknEhiBTVEVWTworVlXEjEFKIEFMRUtTQU5EQVIKK1ZVxIxBSiBGUkFOCitWVcSMQUogTUlPTUlSQQorVlXEjEFKIFJPQkVSVAorVlXEjEFOT1ZJxIYgUFJFRFJBRworVlXEjEVMScSGIFJBRE9NSVIKK1ZVxIxFTEnEhiBTTEFWS08KK1ZVxIxFTEnEhiBWRVJBCitWVcSMRUxJxIYgVkxBSktPCitWVcSMRU4gTUlMQU5BCitWVcSMRU5JxIYgUFJFRFJBRworVlXEjEVOT1YgxJBVUklDQQorVlXEjEVOT1YgS0FUQUxJTgorVlXEjEVOT1YgTUlSSkFOQQorVlXEjEVOT1YgU1RFVkFOCitWVcSMRU5PVknEhiDFvUlWQU4KK1ZVxIxFTk9WScSGIMW9SVZBTgorVlXEjEVOT1ZJxIYgQlJBTktBCitWVcSMRU5PVknEhiBERVNBTktBCitWVcSMRU5PVknEhiBEUkFHT0xKVUIKK1ZVxIxFTk9WScSGIEpPVkFOCitWVcSMRU5PVknEhiBMVUtBCitWVcSMRU5PVknEhiBNSVJLTworVlXEjEVOT1ZJxIYgUEVUQVIKK1ZVxIxFTk9WScSGIFNSRVRPCitWVcSMRU5PVknEhiBTVkVUTEFOQQorVlXEjEVSScSGIFBSVk9TTEFWCitWVcSMRVRJxIYgxb1JS0EKK1ZVxIxFVEnEhiDFvUlWS08KK1ZVxIxFVEnEhiBBTsSQRUxLQQorVlXEjEVUScSGIEJPxb1JREFSCitWVcSMRVRJxIYgQk9KQU5BCitWVcSMRVRJxIYgREFSSU5LQQorVlXEjEVUScSGIERFU0lNSVIKK1ZVxIxFVEnEhiBERVZBCitWVcSMRVRJxIYgRElNSVRSSUpFCitWVcSMRVRJxIYgRFJBR0FOCitWVcSMRVRJxIYgRFXFoEFOCitWVcSMRVRJxIYgTEFaQVIKK1ZVxIxFVEnEhiBMSklMSkFOQQorVlXEjEVUScSGIE1JxIZBCitWVcSMRVRJxIYgTUlMRU5BCitWVcSMRVRJxIYgTUlMRU5BCitWVcSMRVRJxIYgTUlMRU4KK1ZVxIxFVEnEhiBNSUxPU0FWCitWVcSMRVRJxIYgTklLT0xBCitWVcSMRVRJxIYgTklLT0xBCitWVcSMRVRJxIYgTklOS08KK1ZVxIxFVEnEhiBQRVRBUgorVlXEjEVUScSGIFBFVEFSCitWVcSMRVRJxIYgUkFERQorVlXEjEVUScSGIFJBRE9KS0EKK1ZVxIxFVEnEhiBSQURPSktPCitWVcSMRVRJxIYgUkFKS08KK1ZVxIxFVEnEhiBTQU5KQQorVlXEjEVUScSGIFNMT0JPREFOCitWVcSMRVRJxIYgU01JTEpLQQorVlXEjEVUScSGIFNPRklKQQorVlXEjEVUScSGIFNUQU5LTworVlXEjEVUScSGIFNURVZBTgorVlXEjEVUScSGIFNWRVRMQU5BCitWVcSMRVRJxIYgVkFOSkEKK1ZVxIxFVEnEhiBWRUxKS08gRFIKK1ZVxIxFVEnEhiBWRVJBCitWVcSMRVRJxIYgVkxBRElTTEFWCitWVcSMRVRJxIYgWk9SQU4KK1ZVxIxFVEnEhiBaT1JBTgorVlXEjEVUSU4gxb1JVkFOCitWVcSMRVRJTiBNSUxPUkFECitWVcSMRVRJTiBQRVRBUgorVlXEjEVUSU4gU09GSUpBCitWVcSMRVRJTiBUT0RPUgorVlXEjEVWQUMgxb1FTElNSVIKK1ZVxIxFVknEhiBBTEVLU0FOREFSCitWVcSMRVZJxIYgQk/FvUFOQQorVlXEjEVWScSGIFZBTEVSSUpBCitWVcSMScSMRVZJxIYgTUlMQU4KK1ZVxIxJxIxFVknEhiBOSUtPTEEKK1ZVxIxJxIYgxb1BUktPCitWVcSMScSGIMSQT1LEkEUKK1ZVxIxJxIYgxJBVUsSQSU5LQQorVlXEjEnEhiBCT0dEQU4KK1ZVxIxJxIYgQlJBTklTTEFWQQorVlXEjEnEhiBEUkFHQU4KK1ZVxIxJxIYgRFXFoEFOCitWVcSMScSGIERVxaBBTgorVlXEjEnEhiBKRUxFTkEKK1ZVxIxJxIYgSk9WQU5LQQorVlXEjEnEhiBKT1ZBTgorVlXEjEnEhiBLQVRJQ0EKK1ZVxIxJxIYgTUFSR0lUQQorVlXEjEnEhiBNSUxBTgorVlXEjEnEhiBNSUxBTgorVlXEjEnEhiBNSVJPU0xBVgorVlXEjEnEhiBORVZFTktBCitWVcSMScSGIE5JS09MQQorVlXEjEnEhiBSQURNSUxBCitWVcSMScSGIFNMT0JPREFOCitWVcSMScSGIFRPRE9SCitWVcSMScSGIFZFU0VMSU4KK1ZVxIxJxIZFVknEhiDEkE9SxJBFCitWVcSMScSGRVZJxIYgQk/FvUlEQVIKK1ZVxIxJxIZFVknEhiBEVcWgQU4KK1ZVxIxJxIZFVknEhiBHT1JEQU5BCitWVcSMScSGRVZJxIYgTUlMQU4KK1ZVxIxJxIZFVknEhiBNSUxBTgorVlXEjEnEhkVWScSGIE1JTEVOS08KK1ZVxIxJxIZFVknEhiBNSUxJQ0EKK1ZVxIxJxIZFVknEhiBNSU9EUkFHCitWVcSMScSGRVZJxIYgTkFERcW9REEKK1ZVxIxJxIZFVknEhiBQRVRBUgorVlXEjEnEhkVWScSGIFNFTElNSVIKK1ZVxIxJxIZFVknEhiBWVUtPU0FWCitWVcSMSU5JxIYgQU7EkEVMSUpBCitWVcSMSU5JxIYgQU5EUklKQQorVlXEjElOScSGIERVxaBBTgorVlXEjElOScSGIEdBVlJJTE8KK1ZVxIxJTknEhiBKQU5KQQorVlXEjElOScSGIEpBU01JTktBCitWVcSMSU5JxIYgTEpJTEpBTkEgRFIKK1ZVxIxJTknEhiBMSlVCT01JUgorVlXEjElOScSGIE1BUklKQQorVlXEjElOScSGIE1JTEFOCitWVcSMSU5JxIYgTUlMQU4KK1ZVxIxJTknEhiBNSUxJU0FWCitWVcSMSU5JxIYgTUlMVVRJTgorVlXEjElOScSGIE1JT0RSQUcKK1ZVxIxJTknEhiBNTEFERU4KK1ZVxIxJTknEhiBNTEFERU4KK1ZVxIxJTknEhiBQRVRBUgorVlXEjElOScSGIFJBRE1JTEEKK1ZVxIxJTknEhiBSQURNSUxBCitWVcSMSU5JxIYgUkFETUlMQQorVlXEjElOScSGIFJBSktPCitWVcSMSU5JxIYgVkVTTkEKK1ZVxIxJTknEhiBWTEFESU1JUgorVlXEjElOScSGIFZVS01BTgorVlXEjElOScSGIFpMQVRJQk9SCitWVcSMSU5PVknEhiBSQURNSUxBCitWVcSMS09WIEJPSkFOQQorVlXEjEtPViBCUkFOSVNMQVYKK1ZVxIxLT1YgTUFSRUxBCitWVcSMS09WIE1JTE9WQU4KK1ZVxIxLT1ZBQyBEUkFHQU4KK1ZVxIxLT1ZBQyBSQURFCitWVcSMS09WQUMgVE9NSVNMQVYKK1ZVxIxLT1ZJxIYgxIxBU0xBVgorVlXEjEtPVknEhiDFvUFSS08KK1ZVxIxLT1ZJxIYgxb1JVktPCitWVcSMS09WScSGIMSQT1LEkEUKK1ZVxIxLT1ZJxIYgxJBPUsSQRQorVlXEjEtPVknEhiBBTsSQRUxLTworVlXEjEtPVknEhiBBTkEKK1ZVxIxLT1ZJxIYgQk9HREFOCitWVcSMS09WScSGIEJSQU5JU0xBVgorVlXEjEtPVknEhiBCUkFOS08KK1ZVxIxLT1ZJxIYgQlJBTktPCitWVcSMS09WScSGIERPQlJJTEEKK1ZVxIxLT1ZJxIYgRFJBR0FOCitWVcSMS09WScSGIERSQUdPCitWVcSMS09WScSGIERVxaBBTktBCitWVcSMS09WScSGIERVxaBBTgorVlXEjEtPVknEhiBEVcWgQU4KK1ZVxIxLT1ZJxIYgRFXFoEFOCitWVcSMS09WScSGIERVxaBBTgorVlXEjEtPVknEhiBEVUJSQVZLQQorVlXEjEtPVknEhiBFTUlOCitWVcSMS09WScSGIEVWSUNBCitWVcSMS09WScSGIEdFT1JHSUpFCitWVcSMS09WScSGIEpBTktPCitWVcSMS09WScSGIEpBTktPCitWVcSMS09WScSGIEpPVkFOCitWVcSMS09WScSGIEpPVkFOCitWVcSMS09WScSGIEpPVkFOCitWVcSMS09WScSGIEpPVkFOCitWVcSMS09WScSGIExKVUJJQ0EKK1ZVxIxLT1ZJxIYgTFVLQSBESVBMIE9FQworVlXEjEtPVknEhiBNQVJBCitWVcSMS09WScSGIE1BUklKQQorVlXEjEtPVknEhiBNQVJLTworVlXEjEtPVknEhiBNQVJLTworVlXEjEtPVknEhiBNSUhBSkxPCitWVcSMS09WScSGIE1JSEFKTE8KK1ZVxIxLT1ZJxIYgTUlMQU4KK1ZVxIxLT1ZJxIYgTUlMQU4KK1ZVxIxLT1ZJxIYgTUlMRU5BCitWVcSMS09WScSGIE1JTE/FoAorVlXEjEtPVknEhiBNSUxPxaAKK1ZVxIxLT1ZJxIYgTUlMT8WgCitWVcSMS09WScSGIE1JTE9KS0EKK1ZVxIxLT1ZJxIYgTUlMT1JBRAorVlXEjEtPVknEhiBNSU9EUkFHCitWVcSMS09WScSGIE1JT0RSQUcKK1ZVxIxLT1ZJxIYgTUlSS08KK1ZVxIxLT1ZJxIYgTUlST1NMQVYKK1ZVxIxLT1ZJxIYgTU9NxIxJTE8KK1ZVxIxLT1ZJxIYgTkFEQSBEUgorVlXEjEtPVknEhiBOQURBCitWVcSMS09WScSGIE5FREVMSktPCitWVcSMS09WScSGIE5JS09MQSBWRVRFUklOQVIKK1ZVxIxLT1ZJxIYgTk9WSUNBCitWVcSMS09WScSGIFBBVUxJTkEKK1ZVxIxLT1ZJxIYtUEVVUkHEjEEgTEpJTEpBTkEKK1ZVxIxLT1ZJxIYgUkFESVZPSgorVlXEjEtPVknEhiBSQURPVkFOCitWVcSMS09WScSGIFNBVkVUQQorVlXEjEtPVknEhi1TSU1JxIYgVkVTTkEKK1ZVxIxLT1ZJxIYgU0lOScWgQQorVlXEjEtPVknEhiBTVEVWQU4KK1ZVxIxLT1ZJxIYgU1RPSkFOIERSIExFS0FSCitWVcSMS09WScSGIFNUT0pBTiBEUgorVlXEjEtPVknEhiBTVkVUTEFOQQorVlXEjEtPVknEhiBUQUpTSUpBCitWVcSMS09WScSGIFRPTU8KK1ZVxIxLT1ZJxIYgVkFTQQorVlXEjEtPVknEhiBWTEFESVNMQVYKK1ZVxIxLT1ZJxIYgVk9KSVNMQVYKK1ZVxIxLT1ZJxIYgVlVLSUNBCitWVcSMS09WScSGIFZVS09TQVZBCitWVcSMVVJFVknEhiDEjEVETworVlXEjFVSRVZJxIYgxJBPUsSQRQorVlXEjFVSRVZJxIYgQU7EkEVMSUpBCitWVcSMVVJFVknEhiBCSUxKQU5BCitWVcSMVVJFVknEhiBCTEHFvU8KK1ZVxIxVUkVWScSGIEJPxaBLTworVlXEjFVSRVZJxIYgQlJBTklTTEFWCitWVcSMVVJFVknEhiBEQVJJTktBCitWVcSMVVJFVknEhiBEUkFHT01JUgorVlXEjFVSRVZJxIYgRFXFoEFOCitWVcSMVVJFVknEhiBHT1JEQU5BCitWVcSMVVJFVknEhiBKRUxFTkEKK1ZVxIxVUkVWScSGIE1BxaBBCitWVcSMVVJFVknEhiBNSUxPxaAKK1ZVxIxVUkVWScSGIE1JUktPCitWVcSMVVJFVknEhiBNTEFERU4KK1ZVxIxVUkVWScSGIE5BREEKK1ZVxIxVUkVWScSGIE5JS09MQQorVlXEjFVSRVZJxIYgUEVUQVIKK1ZVxIxVUkVWScSGIFRFUkVaSUpBCitWVcSMVVJFVknEhiBVUk/FoAorVlXEjFVSRVZJxIYgVkVTTkEKK1ZVxIxVUkVWScSGIFZMQURJU0xBVkEKK1ZVxIxVUkVWScSGIFZMQURPCitWVcSMVVJFVknEhiBWT0pJU0xBVgorVlXEjFVSRVZJxIYgVk9KTworVlXEjFVST1ZJxIYgSkFTTkEKK1ZVxIxVUk9WScSGIEpPVkFOCitWVcSMVVJPVknEhiBNSVJLTworVlXEjFVST1ZJxIYgTUlST1NMQVYKK1ZVxIxVUk9WScSGIE1MQURFTgorVlXEjFVST1ZJxIYgUFJFRFJBRworVlXEjFVST1ZJxIYgU0xPQk9EQU4gRFIKK1ZVxaBUQVIgQk9HREFOCitWVUNFTEnEhiBTTE9CT0RBTiBESVBMIElORworVlVDRUxKQSBEUkFHQU4KK1ZVQ0VMSkEgTUlMT8WgCitWVUNFTEpBLVBFVFJPTklKRVZJxIYgVkVSQQorVlVDRUxKQSBUUklWVU4KK1ZVQ0VMSkEgVk9KSU4KK1ZVRFJBRyBTQVZPCitWVURSQUcgWk9SQU4KK1ZVRFJBRyBaT1JBTgorVlVEUkFLT1ZJxIYgUkFUS08KK1ZVR0RFTEnEhiBET0JSSVZPSgorVlVHREVMScSGIFZVSworVlVHTEVDIEVESVRBCitWVUdSRU5JxIxFSyDEkFVSQQorVlVHUkVOScSMRUsgTUFHREEKK1ZVR1JJTiBTVEVWQU4KK1ZVR1JJTsSMScSGIEFOS0EKK1ZVR1JJTsSMScSGIEZSQU5KTworVlVHUklOxIxJxIYgSkFST1NMQVYKK1ZVR1JJTkVDIFJVRE9MRgorVlVJxIYgSk9TSVAKK1ZVSsSMScSGIERSQUdBTgorVlVKxIxJxIYgTUlMRQorVlVKxIxJxIYgUEVUQVIKK1ZVSsSMScSGIFBFVFJJSkEKK1ZVSsSMSU4gSk9WQU4KK1ZVSsSMSU4gTUlMQU4KK1ZVSsSMSU4gTUlUQQorVlVKQcSMScSGIERSQUdVVElOCitWVUpBxIxJxIYgRFVCUkFWS0EKK1ZVSkHEjEnEhiBNSUxJU0FWCitWVUpBxIxJxIYgTUlMT1JBRAorVlVKQcSMScSGIE1JTE9SQUQKK1ZVSkHEjEnEhiBOSUtPTEEKK1ZVSkHEjEnEhiBSQURPU0FWCitWVUpBxIxJxIYgUkFKS08KK1ZVSkHFoEtPVknEhiBTTEFWS08KK1ZVSkHFoEtPVknEhiBWTEFESU1JUgorVlVKQcWgS09WScSGIFZMQURJU0xBVgorVlVKQcWgS09WScSGIFpPUkEKK1ZVSkFDS09WIMSQT1LEkEUKK1ZVSkFDS09WIEFMRUtTQU5EQVIKK1ZVSkFDS09WIEpPVkFOCitWVUpBRElOT1YgRE9CUklWT0pFIERJUEwgSU5HCitWVUpBRElOT1ZJxIYgQkxBR09KRQorVlVKQURJTk9WScSGIEJSQU5JU0xBVkEKK1ZVSkFESU5PVknEhiBMSlVCSUNBCitWVUpBRElOT1ZJxIYgTUlMQU4KK1ZVSkFESU5PVknEhiBNSUxJVk9KRQorVlVKQURJTk9WScSGIE1JTElWT0oKK1ZVSkFESU5PVknEhiBNSUxJVk9KCitWVUpBRElOT1ZJxIYgUkFET8WgCitWVUpBRElOT1ZJxIYgUkFKS08KK1ZVSkFESU5PVknEhiBTTEFWSUNBCitWVUpBRElOT1ZJxIYgU1ZFVE9aQVIKK1ZVSkFESU5PVknEhiBUT01JU0xBVgorVlVKQURJTk9WScSGIFZFUkEKK1ZVSkFESU5PVknEhiBWScWgTkpBCitWVUpBRElOT1ZJxIYgVklUTworVlVKQURJTk9WScSGIFZPSklTTEFWCitWVUpBS0xJSkEgREVTQQorVlVKQUtMSUpBIFNUQU5LTworVlVKQUtPVknEhiDEkFVSQcSQCitWVUpBS09WScSGIERSQUdVVElOCitWVUpBS09WScSGIEtSU1RBTgorVlVKQUtPVknEhiBTTE9CT0RBTgorVlVKQUtPVknEhiBWQVNPCitWVUpBS09WScSGIFZVSk8KK1ZVSkFOScSGIMW9SVZPU0FWCitWVUpBTknEhiDFvUlWT1NMQVYKK1ZVSkFOScSGIEJPUklWT0oKK1ZVSkFOScSGIEJSQU5LTworVlVKQU5JxIYgR09SREFOQQorVlVKQU5JxIYgSk9SREFOCitWVUpBTknEhiBLT1JORUxJSkEKK1ZVSkFOScSGIE1JTEFOCitWVUpBTknEhiBNSUxFCitWVUpBTknEhiBNSUxPVkFOCitWVUpBTknEhiBORURFTEpLQQorVlVKQU5JxIYgUEVUQVIKK1ZVSkFOScSGLVZBUkdBIERJTktBIERSCitWVUpBTk9WIEFMRUtTQU5EQVIKK1ZVSkFOT1YgTUlMQU5LQQorVlVKQU5PViBOSUtPTEEKK1ZVSkFOT1ZJxIYgxb1BUktPCitWVUpBTk9WScSGIEFMRUtTQU5EQVIKK1ZVSkFOT1ZJxIYgQk/FoEtPCitWVUpBTk9WScSGIEJPxb1JREFSIERSCitWVUpBTk9WScSGIEJPxb1JREFSCitWVUpBTk9WScSGIEJPUklTTEFWCitWVUpBTk9WScSGIEJSQU5LTworVlVKQU5PVknEhiBERVNJTUlSCitWVUpBTk9WScSGIERJTUlUUklKRQorVlVKQU5PVknEhiBESU1JVFJJSkUKK1ZVSkFOT1ZJxIYgRFJBR0lDQQorVlVKQU5PVknEhiBKT1ZBTktBCitWVUpBTk9WScSGIEpPVk8KK1ZVSkFOT1ZJxIYgTUlKTworVlVKQU5PVknEhiBNSUxBTgorVlVKQU5PVknEhiBNSUxFCitWVUpBTk9WScSGIE1JTElOS0EKK1ZVSkFOT1ZJxIYgTUlMT1JBRAorVlVKQU5PVknEhiBNSVJLTworVlVKQU5PVknEhiBNTEFERU4KK1ZVSkFOT1ZJxIYgU0lNTworVlVKQU5PVknEhiBTTEFWT0xKVUIKK1ZVSkFOT1ZJxIYgU1RBTkEKK1ZVSkFOT1ZJxIYgU1RPSkFOCitWVUpBTk9WScSGIFZJVE9NSVIKK1ZVSkFTSU4gU1RSQUlMTworVlVKQVNJTk9WScSGIMSMRURPTUlSCitWVUpBU0lOT1ZJxIYgSkVMSUNBCitWVUpBU0lOT1ZJxIYgTEpVQk9NSVIKK1ZVSkFTSU5PVknEhiBNQVJLTworVlVKQVNJTk9WScSGIE1JTEFOCitWVUpBU0lOT1ZJxIYgTUlST1NMQVYKK1ZVSkFTSU5PVknEhiBSQURNSUxBCitWVUpBVE9WScSGIE1JTEVOS08KK1ZVSkFUT1ZJxIYgTUlSSkFOQQorVlVKQVRPVknEhiBURU9ET1IKK1ZVSkVWScSGIFJVxb1BCitWVUpJxIxJxIYgxJBPUsSQRQorVlVKScSMScSGIEJJU0VSS0EKK1ZVSknEjEnEhiBCT8W9SURBUgorVlVKScSMScSGIENWRVRBCitWVUpJxIxJxIYgREFOSUxPIERSCitWVUpJxIxJxIYgRE9CUklMQQorVlVKScSMScSGIERSQUdBTgorVlVKScSMScSGIERVxaBBTgorVlVKScSMScSGIEdPSktPCitWVUpJxIxJxIYgSUdOSkFUCitWVUpJxIxJxIYgSUxJSkEKK1ZVSknEjEnEhiBJVklDQSBEUiBQUk9GCitWVUpJxIxJxIYgTUFSS08KK1ZVSknEjEnEhiBNSUhBSkxPCitWVUpJxIxJxIYgTUlMRU5LTworVlVKScSMScSGIE1JTE/FoAorVlVKScSMScSGIE1JTE/FoAorVlVKScSMScSGIFBFVEFSCitWVUpJxIxJxIYgUEVUUkEKK1ZVSknEjEnEhiBSQURPU0xBVgorVlVKScSMScSGIFJBTktPCitWVUpJxIxJxIYgUkFUS08KK1ZVSknEjEnEhiBSQVRLTworVlVKScSMScSGIFNJTU8KK1ZVSknEjEnEhiBTTE9CT0RBTgorVlVKScSMScSGIFNSxJBBTgorVlVKScSMScSGIFNUQU5LTworVlVKScSMScSGIFNURVZBTgorVlVKScSMScSGIFNUT0pBTiBESVBMIElORworVlVKScSMScSGIFNWRVRLTworVlVKScSMScSGIFRPTUlTTEFWCitWVUpJxIxJxIYgVkFTSUxJSkUKK1ZVSknEjEnEhiBWRVJBCitWVUpJxIxJxIYgVkVSSUNBCitWVUpJxIxJxIYgVkxBRElNSVIKK1ZVSknEjEnEhiBWT0pJTgorVlVKScSMSU4gxb1BUktPCitWVUpJxIxJTiDEkE9SxJBFCitWVUpJxIxJTiDEkFVSxJBJQ0EKK1ZVSknEjElOIExKVUJJQ0EKK1ZVSknEjElOIFBFVEFSCitWVUpJxIYgxb1BUktPCitWVUpJxIYgxb1JVktPCitWVUpJxIYgxJBPUsSQRQorVlVKScSGIMSQT1LEkEUKK1ZVSknEhiDEkFVSxJBJSkEKK1ZVSknEhiDEkFVSQQorVlVKScSGIMSQVVJBCitWVUpJxIYgQUxFS1NBTkRBUgorVlVKScSGIEFMRUtTQU5EQVIKK1ZVSknEhiBBTsSQRUxJSkEKK1ZVSknEhiBBTlRFCitWVUpJxIYgQU5URQorVlVKScSGIEJPUklTTEFWCitWVUpJxIYgQlJBTklTTEFWCitWVUpJxIYgQlJBTklTTEFWCitWVUpJxIYgQlJBTktBCitWVUpJxIYgRFJBR0EKK1ZVSknEhiBEUkFHQQorVlVKScSGIERSQUdJTkpBCitWVUpJxIYgRFJBR09TTEFWQQorVlVKScSGIERSQUdPU0xBVgorVlVKScSGIERVxaBBTgorVlVKScSGIElWQU4gRFIKK1ZVSknEhiBJVkFOIERSCitWVUpJxIYgSVZBTktBCitWVUpJxIYgSkFLT0IgRFIgTEVLQVIKK1ZVSknEhiBKT1ZBTgorVlVKScSGIEpPVkFOCitWVUpJxIYgSk9WTworVlVKScSGIEtBVEFSSU5BCitWVUpJxIYtS09TTyBWRVNOQQorVlVKScSGIExBWkFSCitWVUpJxIYgTEpVQkFOCitWVUpJxIYgTEpVQklDQQorVlVKScSGIE1BUklKQSBQUk9GRVNPUgorVlVKScSGIE1JTEFOCitWVUpJxIYgTUlMRVZBCitWVUpJxIYgTUlMRVZBCitWVUpJxIYgTUlMRVZLQQorVlVKScSGIE1JTElDQQorVlVKScSGIE1JTE/FoCBEUgorVlVKScSGIE1JTE/FoAorVlVKScSGIE1JTE/FoAorVlVKScSGIE1JTE/FoAorVlVKScSGIE1JUkEKK1ZVSknEhiBNSVJPU0xBViBESVBMIElORworVlVKScSGIE1PTUlSCitWVUpJxIYgTkFEQQorVlVKScSGIE5BREEKK1ZVSknEhiBQQVZMRSBEUgorVlVKScSGIFBSRURSQUcKK1ZVSknEhiBSQURJVk9KCitWVUpJxIYgUkFET1NMQVYKK1ZVSknEhiBSQVRLQQorVlVKScSGIFNBVk8KK1ZVSknEhiBTQVZPCitWVUpJxIYgU0xBVktBCitWVUpJxIYgU09GSUpBCitWVUpJxIYgU1RBTktPCitWVUpJxIYgU1RBTktPCitWVUpJxIYgU1RFVkFOCitWVUpJxIYgU1RFVkFOCitWVUpJxIYgU1RFVkFOCitWVUpJxIYgVkVSQQorVlVKScSGIFZFU05BCitWVUpJxIYgVkxBRElNSVIKK1ZVSknEhiBWTEFESU1JUgorVlVKScSGIFZPSklTTEFWQQorVlVKScSGIFpPUkFOCitWVUpJTiDEkE9LQQorVlVKSU4gxJBVUklDQQorVlVKSU4gQUxFS1NBTkRBUgorVlVKSU4gREFOSUNBCitWVUpJTiBEQVZJRAorVlVKSU4gSkVWUkVNCitWVUpJTiBKT1ZBTktBCitWVUpJTiBMQVpBUgorVlVKSU4gTUFSQQorVlVKSU4gTUVMQU5JSkEKK1ZVSklOIE1JUkpBTkEKK1ZVSklOIFJBRElWT0oKK1ZVSklOIFJBRE9WQU4KK1ZVSklOIFNMQVZLTworVlVKSU4gU0xPQk9EQU4KK1ZVSklOIFNWRVRPWkFSCitWVUpJTiBWVUpBRElOCitWVUpJTk9WScSGIMW9SVZLQQorVlVKSU5PVknEhiDEkFVSQQorVlVKSU5PVknEhiDEkFVSTworVlVKSU5PVknEhiBCT1JJU0xBVgorVlVKSU5PVknEhiBCUkFOSU1JUgorVlVKSU5PVknEhiBHTkpBVElKQQorVlVKSU5PVknEhiBKT1ZPCitWVUpJTk9WScSGIExKVUJPTUlSCitWVUpJTk9WScSGIE1JTE/FoAorVlVKSU5PVknEhiBNTEFESU5LTworVlVKSU5PVknEhiBOQURBCitWVUpJTk9WScSGIFNSRVRFTgorVlVKSU5PVknEhiBTVE9KQU4KK1ZVSklOT1ZJxIYgVEVPRE9TSUpFCitWVUpJTk9WScSGIFZFUkEKK1ZVSklOT1ZJxIYgVklET0pFCitWVUpLTyBTQVZBCitWVUpLT1YgxIxFRE9NSVIKK1ZVSktPViDEkE9SxJBFCitWVUpLT1YgQUxFS1NBTkRBUgorVlVKS09WIEFOVElOSUpBCitWVUpLT1YgQk/FvUlEQVIKK1ZVSktPViBCT8W9SURBUgorVlVKS09WIERSQUdJQ0EKK1ZVSktPViBEUkFHSU5KQQorVlVKS09WIERSQUdPTEpVQgorVlVKS09WIERVxaBBTgorVlVKS09WIERVxaBBTgorVlVKS09WLUlTQUtPViBKQUdJQ0EKK1ZVSktPViBKRUxFTkEKK1ZVSktPViBMQVpBUgorVlVKS09WIExBWkFSCitWVUpLT1YgTUlMQU4gRElQTCBJTkcKK1ZVSktPViBNSUxBTkEKK1ZVSktPViBNSUxBTkEKK1ZVSktPViBNSUxBTgorVlVKS09WIE1JTEFOCitWVUpLT1YgTUlMRU5BCitWVUpLT1YgTUlMSUNBCitWVUpLT1YgTUlMSUNBCitWVUpLT1YgTUlMSVZPSgorVlVKS09WIE1JUkpBTkEKK1ZVSktPViBNSVJPU0xBViBESVBMIElORworVlVKS09WIE1JUk9TTEFWCitWVUpLT1YgTkFEQQorVlVKS09WIE5FTkFECitWVUpLT1YgT0xHQQorVlVKS09WIFBBVkxFCitWVUpLT1YgUEVSQQorVlVKS09WIFBFVEFSIERJUEwgUFJBVk5JSworVlVKS09WIFJBRElWT0oKK1ZVSktPViBSQURPU0xBVgorVlVKS09WIFNBVkEKK1ZVSktPViBTQVZBCitWVUpLT1YgU0VOS0EKK1ZVSktPViBTSU1BCitWVUpLT1YgU0xBVktPCitWVUpLT1YgU0xPQk9EQU4KK1ZVSktPViBTTkXFvUFOQQorVlVKS09WIFNORcW9QU5BCitWVUpLT1YgU1RFVkFOCitWVUpLT1YgU1ZFVE9aQVIKK1ZVSktPViBUQU1BUkEKK1ZVSktPViBUT01JU0xBVgorVlVKS09WIFZBU0EgRFIKK1ZVSktPViBWRVNFTElOIERSIFBST0YKK1ZVSktPViBWTEFESU1JUgorVlVKS09WIFpEUkFWS08KK1ZVSktPViBaRFJBVktPCitWVUpLT1ZJxIYgxJBVUkEKK1ZVSktPVknEhiBEUkFHQU4KK1ZVSktPVknEhiBHT1JEQU5BCitWVUpLT1ZJxIYgR09TUEFWQQorVlVKS09WScSGIE1JUkEKK1ZVSktPVknEhiBOSUtPTEEKK1ZVSktPVknEhiBSVcW9QQorVlVKS09WScSGIFNMT0JPREFOCitWVUpLT1ZJxIYgU1RFVkFOCitWVUpOT1ZJxIYgQU5LQQorVlVKTk9WScSGIEJPU0lMSktBCitWVUpOT1ZJxIYgRFJBR0FOCitWVUpOT1ZJxIYgR09KS08KK1ZVSk5PVknEhiBHT0pLTworVlVKTk9WScSGIElMSUpBCitWVUpOT1ZJxIYtTUlIQUpMT1ZJxIYgREVTQU5LQQorVlVKTk9WScSGIE1JTEFOCitWVUpOT1ZJxIYgTUlMQU4KK1ZVSk5PVknEhiBWRUxKS08KK1ZVSk5PVknEhiBWRVJBCitWVUpOT1ZJxIYgWk9SQQorVlVKT8WgRVZJxIYgQk9SSVNMQVYKK1ZVSk/FoEVWScSGIEJSQU5LTyBESVBMIE9FQworVlVKT8WgRVZJxIYgRE9CUklTTEFWCitWVUpPxaBFVknEhiBEVcWgQU4KK1ZVSk/FoEVWScSGIEtMQVJBCitWVUpPxaBFVknEhiBMSlVCT01JUgorVlVKT8WgRVZJxIYgTUlMQU4KK1ZVSk/FoEVWScSGIE5JS09MQQorVlVKT8WgRVZJxIYgUkFUS08KK1ZVSk/FoEVWScSGIFpPUkEKK1ZVSk9WScSGIMSQT1LEkEUKK1ZVSk9WScSGIEFMRUtTQU5EQVIKK1ZVSk9WScSGIEJMQcW9TworVlVKT1ZJxIYgQkxBR09KRQorVlVKT1ZJxIYgQk/FvUlEQVIKK1ZVSk9WScSGIERBTklDQQorVlVKT1ZJxIYgREFSSU5LQQorVlVKT1ZJxIYgRFJBR09MSlVCCitWVUpPVknEhiBEVcWgQU4KK1ZVSk9WScSGIE1BUlRBCitWVUpPVknEhiBNSUhBSUxPCitWVUpPVknEhiBNSUxPTUlSCitWVUpPVknEhiBNSUxPUkFECitWVUpPVknEhiBNSUxPUkFECitWVUpPVknEhiBNSUxPUkFECitWVUpPVknEhiBNSUxPVkFOCitWVUpPVknEhiBNSU9EUkFHCitWVUpPVknEhiBNSU9NSVIKK1ZVSk9WScSGIE1JUkpBTkEKK1ZVSk9WScSGIE5FxJBFTEpLTworVlVKT1ZJxIYgTkXEkE8KK1ZVSk9WScSGIE5PVklDQQorVlVKT1ZJxIYgT0xHQQorVlVKT1ZJxIYgUEFWTEUKK1ZVSk9WScSGIFBBVkxFCitWVUpPVknEhiBQRVRLTworVlVKT1ZJxIYgUkFESVZPSkUKK1ZVSk9WScSGIFJBRElWT0oKK1ZVSk9WScSGIFJBRE9KRQorVlVKT1ZJxIYgUkFUS08KK1ZVSk9WScSGIFNMT0JPREFOCitWVUpPVknEhiBTTE9CT0RBTgorVlVKT1ZJxIYgU1RFVkFOCitWVUpPVknEhiBTVkVUSVNMQVYKK1ZVSk9WScSGIFZBU0lMSUpFCitWVUpPVknEhiBWQVNJTElKRQorVlVKT1ZJxIYgVkFTSUxJSkUKK1ZVSk9WScSGIFZFTEpLTworVlVKT1ZJxIYgVkVTRUxJTgorVlVKT1ZJxIYgVkxBRE8KK1ZVSk9WScSGIFZMQUpLTworVlVKT1ZJxIYgVkxBVEtPCitWVUpPVknEhiBWT0pJU0xBVgorVlVKT1ZJxIYgVk9KSVNMQVYKK1ZVSk9WScSGIFZPSklTTEFWCitWVUpPVknEhiBWVUtJQ0EKK1ZVSk9WScSGIFpPUkFOCitWVUvEjEVWScSGIERVxaBBTgorVlVLxIxFVknEhiBHT1JEQU5BCitWVUvEjEVWScSGIEpPVkFOCitWVUvEjEVWScSGIEtSU1RPCitWVUvEjEVWScSGIExKVUJPTUlSCitWVUvEjEVWScSGIExKVUJPTUlSCitWVUvEjEVWScSGIE1JTEVOS08KK1ZVS8SMRVZJxIYgTUlMRU5LTworVlVLxIxFVknEhiBQRVRBUgorVlVLxIxFVknEhiBTQVZPCitWVUvEjEVWScSGIFNPRklKQQorVlVLxIxFVknEhiBTVEVWQU4KK1ZVS8SMRVZJxIYgWk9SQU4KK1ZVS8WgQSDEjEVETworVlVLxaBBIMW9RUxKS08KK1ZVS8WgQSBCT1JJVk9KRQorVlVLxaBBIExBWkFSCitWVUvFoEEgTUlMRU5LTworVlVLxaBBIE1JTFVUSU4KK1ZVS8WgQSBQRVRBUgorVlVLxaBBIFZKRVJBCitWVUtBxaBFVknEhiBNSUxPCitWVUtBxaBFVknEhiBTTE9CT0RBTgorVlVLQcWgSU4gSk9WQU4KK1ZVS0HFoElOT1YgQlJBTklNSVIKK1ZVS0HFoElOT1YgQ1ZFVEtPCitWVUtBxaBJTk9WIFNURVZBTgorVlVLQcWgSU5PVknEhiDFvUFSS08KK1ZVS0HFoElOT1ZJxIYgxb1JVkFOCitWVUtBxaBJTk9WScSGIMSQT1LEkEUKK1ZVS0HFoElOT1ZJxIYgQk/FvUlEQVIKK1ZVS0HFoElOT1ZJxIYgQk9KQU4KK1ZVS0HFoElOT1ZJxIYgRFJBR0FOCitWVUtBxaBJTk9WScSGIERSQUdJTkpBCitWVUtBxaBJTk9WScSGIERSQUdPTEpVQgorVlVLQcWgSU5PVknEhiBJUkVOQQorVlVLQcWgSU5PVknEhiBJUkVOQQorVlVLQcWgSU5PVknEhiBMQVpBUgorVlVLQcWgSU5PVknEhiBMQVpBUgorVlVLQcWgSU5PVknEhiBNSUxBTgorVlVLQcWgSU5PVknEhiBNSUxFCitWVUtBxaBJTk9WScSGIE1JTElDQQorVlVLQcWgSU5PVknEhiBNSVJBCitWVUtBxaBJTk9WScSGIE1JUkpBTkEKK1ZVS0HFoElOT1ZJxIYgTUlST1NMQVYKK1ZVS0HFoElOT1ZJxIYgTU9NSVIKK1ZVS0HFoElOT1ZJxIYgTklLT0xBCitWVUtBxaBJTk9WScSGIFBBVkxFCitWVUtBxaBJTk9WScSGIFJBRE9KRQorVlVLQcWgSU5PVknEhiBTUE9NRU5LQQorVlVLQcWgSU5PVknEhiBTVE9KQU4KK1ZVS0HFoElOT1ZJxIYgVkVSQQorVlVLQcWgSU5PVknEhiBWRVJJQ0EKK1ZVS0HFoElOT1ZJxIYgVkVTRUxJTgorVlVLQcWgSU5PVknEhiBWSURBCitWVUtBxaBJTk9WScSGIFpEUkFWS08KK1ZVS0FESU4gRE9CUklWT0pFCitWVUtBRElOIFRPTUlTTEFWCitWVUtBRElOT1YgxJBPUsSQRQorVlVLQURJTk9WIMSQVVJBCitWVUtBRElOT1YgQk9KS0EKK1ZVS0FESU5PViBCUkFOSVNMQVYKK1ZVS0FESU5PViBJU0lET1IKK1ZVS0FESU5PViBJVkFOS0EKK1ZVS0FESU5PViBJVkFOS0EKK1ZVS0FESU5PViBKT1ZBTgorVlVLQURJTk9WIEtBVElDQQorVlVLQURJTk9WIE1JTEVOS08KK1ZVS0FESU5PViBNSU9EUkFHCitWVUtBRElOT1YgTkVOQUQKK1ZVS0FESU5PVknEhiBBTsSQRUxLTworVlVLQURJTk9WScSGIEJJTEpBTkEKK1ZVS0FESU5PVknEhiBCT1NJTEpLQQorVlVLQURJTk9WScSGIEJSQU5JU0xBVgorVlVLQURJTk9WScSGIEJSQU5JU0xBVgorVlVLQURJTk9WScSGIEJSQU5JU0xBVgorVlVLQURJTk9WScSGIEJSQU5LTworVlVLQURJTk9WScSGIEdBQlJJSkVMQSBQUk9GRVNPUgorVlVLQURJTk9WScSGIEpFTElDQQorVlVLQURJTk9WScSGIExFUE9TQVZBCitWVUtBRElOT1ZJxIYgTEpVQk8KK1ZVS0FESU5PVknEhiBNSUxFTktPCitWVUtBRElOT1ZJxIYgTUlMSVZPSkUKK1ZVS0FESU5PVknEhiBNSUxKT0pLTworVlVLQURJTk9WScSGIE1JTE/FoAorVlVLQURJTk9WScSGIE1JTE9KRQorVlVLQURJTk9WScSGIE1JTE9SQUQKK1ZVS0FESU5PVknEhiBOSUtPTEEKK1ZVS0FESU5PVknEhiBQQVZMRSBEUgorVlVLQURJTk9WScSGIFBFVEFSCitWVUtBRElOT1ZJxIYgUEVUQVIKK1ZVS0FESU5PVknEhiBTT0ZJSkEgTE9LQUwKK1ZVS0FESU5PVknEhiBTT0ZJSkEKK1ZVS0FESU5PVknEhiBTVEFOQQorVlVLQURJTk9WScSGIFNURVZBTiBEUgorVlVLQURJTk9WScSGIFNWRVRPWkFSCitWVUtBRElOT1ZJxIYgU1ZFVE9aQVIKK1ZVS0FESU5PVknEhiBUQVRKQU5BCitWVUtBRElOT1ZJxIYgVkVMSVpBUgorVlVLQURJTk9WScSGIFZMQURJU0FWCitWVUtBRElOT1ZJxIYgWk9MSUtBCitWVUtBRElOT1ZJxIYgWk9MSUtBCitWVUtBSkxPViBCVURJTUlSCitWVUtBSkxPViBNSVJPU0xBVgorVlVLQUpMT1ZJxIYgxb1JVkFOIFBST0ZFU09SCitWVUtBSkxPVknEhiDEkE9SxJBFCitWVUtBSkxPVknEhiBBTktJQ0EKK1ZVS0FKTE9WScSGIERBTklMTworVlVLQUpMT1ZJxIYgREFSSU5LQQorVlVLQUpMT1ZJxIYgRFXFoEFOCitWVUtBSkxPVknEhiBFTElaQUJFVEEKK1ZVS0FKTE9WScSGIExBWkFSCitWVUtBSkxPVknEhiBNSUxFTkEKK1ZVS0FKTE9WScSGIE1JUkpBTkEKK1ZVS0FKTE9WScSGIFNSRVRPCitWVUtBSkxPVknEhiBTVEVWQU4KK1ZVS0FMScSGIE1VTUlOCitWVUtBTEpFVknEhiBJTElKQQorVlVLQUxKRVZJxIYgU0xBVktPCitWVUtBTE9WScSGIFNWRVRMQU5BCitWVUtBTknEhiBBTEVLU0FOREFSCitWVUtBTknEhiBQRVRBUgorVlVLQU5JxIYgU1JFVEVOCitWVUtBTknEhiBaT1JBTgorVlVLQU5JxIYgWk9SQU4KK1ZVS0FOT1ZJxIYgxb1JVktBCitWVUtBTk9WScSGIEFOSUNBCitWVUtBTk9WScSGIE1BUklOQQorVlVLQU5PVknEhiBNSVJPU0xBVgorVlVLQU5PVknEhiBORUJPSsWgQQorVlVLQU5PVknEhiBSQURJVk9KCitWVUtBTk9WScSGIFNMQVZJTUlSCitWVUtBTk9WScSGIFNMT0JPREFOCitWVUtBTk9WScSGIFNMT0JPREFOCitWVUtBUyDEkE9SxJBFCitWVUtBUyDEkFVSTworVlVLQVMgQU5LSUNBCitWVUtBUyBCUkFOS08KK1ZVS0FTIE9NRVJLQQorVlVLQVNPVknEhiBCUkFOSVNMQVYKK1ZVS0FTT1ZJxIYgTUFSSUpBCitWVUtBU09WScSGIE1JTEFOCitWVUtBU09WScSGIFNMQVZJQ0EKK1ZVS0FWScSGIEFMRUtTQU5EUkEKK1ZVS0VMScSGIEFOxJBFTEtBCitWVUtFTEnEhiBCT1JJU0xBVgorVlVLRUxJxIYgQlJBTktPCitWVUtFTEnEhiBCUkFOS08KK1ZVS0VMScSGIERBUkEKK1ZVS0VMScSGIERSQUdBTgorVlVLRUxJxIYgSk9WQU4KK1ZVS0VMScSGIExKVUJPTUlSCitWVUtFTEnEhiBNSUxBTgorVlVLRUxJxIYgTUlMRQorVlVLRUxJxIYgTUlMSUNBCitWVUtFTEnEhiBNSU9EUkFHCitWVUtFTEnEhiBNT01JUgorVlVLRUxJxIYgUEFWTEUKK1ZVS0VMScSGIFBFVEFSCitWVUtFTEnEhiBQRVRBUgorVlVLRUxJxIYgUkFEQQorVlVLRUxJxIYgUkFERQorVlVLRUxJxIYgU0lMVklKRQorVlVLRUxJxIYgU0lNTworVlVLRUxJxIYgU0xBVktPCitWVUtFTEnEhiBTVEVWQU4KK1ZVS0VMScSGIFNURVZBTgorVlVLRUxJxIYgVE9NSVNMQVYKK1ZVS0VMScSGIFZFTEpLTworVlVLRUxJxIYgVkVSSUNBCitWVUtFTEnEhiBWRVNOQQorVlVLRUxJxIYgVlVLSUNBCitWVUtFTEnEhiBaRFJBVktPIERSCitWVUtFTEnEhiBaT1JJQ0EKK1ZVS0VMScSGIFpWT05JTUlSCitWVUtFTEpBIEJSQU5LQQorVlVLScSMRVZJxIYgRFJBR09NSVIKK1ZVS0nEjEVWScSGIExKSUxKQU5BCitWVUtJxIxFVknEhiBNSUxBTgorVlVLScSMRVZJxIYgTUlMQU4KK1ZVS0nEjEVWScSGIE1JTEFOCitWVUtJxIxFVknEhiBNSVRBUiBESVBMIFBSQVZOSUsKK1ZVS0nEjEVWScSGIFJBTktPCitWVUtJxIxFVknEhiBTUEFTT0pFCitWVUtJxIxFVknEhiBWRVNOQQorVlVLScSGLcSGVUxBRknEhiBCUkFOS0EKK1ZVS0nEhiDFvUlWS08KK1ZVS0nEhiBBTkRSRUoKK1ZVS0nEhiBCT8W9SURBUgorVlVLScSGIEJPUklTTEFWCitWVUtJxIYgQlJBTktPCitWVUtJxIYgQlJBTktPCitWVUtJxIYgQlVESU1JUgorVlVLScSGIERFSkFOCitWVUtJxIYgRElNSVRSSUpFCitWVUtJxIYgRFXFoEFOCitWVUtJxIYgSVZBTktBCitWVUtJxIYgSk9WQU4KK1ZVS0nEhiBMSlVCSUNBCitWVUtJxIYgTEpVQk9NSVIKK1ZVS0nEhiBNQVJJSkEKK1ZVS0nEhiBNSUxBTgorVlVLScSGIE1JTElDQQorVlVLScSGIE1JUkpBTkEKK1ZVS0nEhiBNSVJLTworVlVLScSGIE1PTcSMSUxPCitWVUtJxIYgTklLT0xBCitWVUtJxIYgTklLT0xBCitWVUtJxIYgTk9WQUsKK1ZVS0nEhiBQRVRBUgorVlVLScSGIFNUQU5LTworVlVLScSGIFNURVZBTgorVlVLScSGIFZFTElNSVIKK1ZVS0nEhiBWTEFETworVlVLScSGIFZVS0HFoElOCitWVUtJxIZFVknEhiDEkE9SxJBFCitWVUtJxIZFVknEhiDEkE9SxJBFCitWVUtJxIZFVknEhiBBTEVLU0FOREFSCitWVUtJxIZFVknEhiBCUkFUSVNMQVYKK1ZVS0nEhkVWScSGIERSQUdJQ0EKK1ZVS0nEhkVWScSGIERVxaBBTktBCitWVUtJxIZFVknEhiBJU0lET1IKK1ZVS0nEhkVWScSGIElTSURPUgorVlVLScSGRVZJxIYgTUlPTUlSCitWVUtJxIZFVknEhiBNSVJPU0xBVgorVlVLScSGRVZJxIYgTUlST1NMQVYKK1ZVS0nEhkVWScSGIE1PTcSMSUxPIERSCitWVUtJxIZFVknEhiBTVEFOScWgQQorVlVLScSGRVZJxIYgVE9NQQorVlVLScSGRVZJxIYgVkVMSktPCitWVUtMScWgIERSQUdBTgorVlVLTEnFoCBTTE9CT0RBTgorVlVLTUFOT1ZJxIYgREFOSUxPCitWVUtNQU5PVknEhiBMSlVCQQorVlVLTUFOT1ZJxIYgTUlMQU5BCitWVUtNQU5PVknEhiBNSUxBTgorVlVLTUFOT1ZJxIYgTkVOQUQKK1ZVS01BTk9WScSGIFBFVEFSCitWVUtNQU5PVknEhiBTSU1PCitWVUtNQU5PVknEhiBWRUxJTUlSCitWVUtNQU5PVknEhiBWRVJBCitWVUtNSVJPVknEhiDEkE9SxJBFCitWVUtNSVJPVknEhiDEkE9SxJBFCitWVUtNSVJPVknEhiBCT8W9SURBUgorVlVLTUlST1ZJxIYgQlJBTktPCitWVUtNSVJPVknEhiBCUkFOS08KK1ZVS01JUk9WScSGIERBTkUKK1ZVS01JUk9WScSGIERSQUdBTgorVlVLTUlST1ZJxIYgR09KS08KK1ZVS01JUk9WScSGIElMSUpBCitWVUtNSVJPVknEhiBJTElKQQorVlVLTUlST1ZJxIYgSUxJSkEKK1ZVS01JUk9WScSGIEpBTkpBCitWVUtNSVJPVknEhiBMSlVCT01JUgorVlVLTUlST1ZJxIYgTUlMQU4KK1ZVS01JUk9WScSGIE1JTEFOCitWVUtNSVJPVknEhiBNSUxJQ0EKK1ZVS01JUk9WScSGIE1JTE/FoAorVlVLTUlST1ZJxIYgTUlMTworVlVLTUlST1ZJxIYgTklLT0xBCitWVUtNSVJPVknEhiBQRVRBUgorVlVLTUlST1ZJxIYgUkFOS08KK1ZVS01JUk9WScSGIFJBTktPCitWVUtNSVJPVknEhiBST0RPTEpVQgorVlVLTUlST1ZJxIYgU01JTEpLQQorVlVLTUlST1ZJxIYgU1JFxIZLTworVlVLTUlST1ZJxIYgVkVMSU5LQQorVlVLTUlST1ZJxIYgVlVLSUNBCitWVUtNSVJPVknEhiBaRFJBVktBCitWVUtOScSGIE1BUklKQU4KK1ZVS09CUkFEIERSQUdPCitWVUtPQlJBRCBMSlVCT01JUgorVlVLT0JSQUQgTUFSS08KK1ZVS09CUkFEIE1JTE/FoAorVlVLT0JSQVQgREFOSUNBCitWVUtPQlJBVCBEUkFHQU4KK1ZVS09CUkFUIEpPxaBPCitWVUtPQlJBVCBMSlVCT01JUgorVlVLT0JSQVQgTUlMQU4KK1ZVS09CUkFUIE5JS09MQQorVlVLT0JSQVQgUEVUQVIKK1ZVS09CUkFUIFRBVEpBTkEKK1ZVS09CUkFUIFpEUkFWS08KK1ZVS09CUkFUT1YgUkFET1ZBTiBESVBMIElORworVlVLT0JSQVRPViBTTE9CT0RBTgorVlVLT0JSQVRPVknEhiBCT0dEQU4KK1ZVS09CUkFUT1ZJxIYgREFOSUNBCitWVUtPQlJBVE9WScSGIEpPVkFOCitWVUtPQlJBVE9WScSGIE1JUkpBTkEKK1ZVS09CUkFUT1ZJxIYgTkFEQQorVlVLT0JSQVRPVknEhiBTTEFWSUNBCitWVUtPSsSMScSGIERVxaBBTgorVlVLT0pBIEFOVFVOCitWVUtPSkUgRFXFoEFOCitWVUtPSkUgR0HFoE8KK1ZVS09KRSBJTElKQQorVlVLT0pFIEpPVkFOCitWVUtPSkUgTUlMQU5BCitWVUtPSkUgUkFESVZPSkUKK1ZVS09KRSBSQURNSUxBCitWVUtPSkUgUkFET1ZBTgorVlVLT0pFIFZBTkpBCitWVUtPSkUgVk9KTworVlVLT0pFViBCT0dEQU4KK1ZVS09KRVYgRFXFoEFOCitWVUtPSkVWIERVxaBBTgorVlVLT0pFViBTTE9CT0RBTgorVlVLT0pFVknEhiDEkFVSTworVlVLT0pFVknEhiBNQVJBCitWVUtPSkVWScSGIE1JxIZPCitWVUtPSkVWScSGIE1JT0RSQUcKK1ZVS09KRVZJxIYgTklLTworVlVLT0pFVknEhiBWRVJJQ0EKK1ZVS09KRVZJxIYgVklET1NBVgorVlVLT0pFVknEhiBaT1JBTgorVlVLT0pJxIxJxIYgQk9SSVNMQVYKK1ZVS09KScSMScSGIERSQUdBTgorVlVLT0pJxIxJxIYgTUlPRFJBRworVlVLT0pJxIxJxIYgTUlPRFJBRworVlVLT0pJxIxJxIYgU0xBVk9MSlVCCitWVUtPTUFOIEVNSUxJSkEKK1ZVS09NQU4gTUlMT1JBRAorVlVLT01BTiBSQURBCitWVUtPTUFOIFpPUkFOCitWVUtPTUFOIFpPUktBCitWVUtPTUFOT1YgSk9WQU4KK1ZVS09NQU5PVknEhiBBTkRSSUpBCitWVUtPTUFOT1ZJxIYgS0FUSUNBCitWVUtPTUFOT1ZJxIYgTklLT0xBCitWVUtPTUFOT1ZJxIYgUkFET01JUgorVlVLT01BTk9WScSGIFNMQVZLTworVlVLT1NBViBCT1JJVk9KRQorVlVLT1NBViBCT1JLTyBEUgorVlVLT1NBViBET0JSSUxBCitWVUtPU0FWIEpPVk8KK1ZVS09TQVYgTUlMT1ZBTgorVlVLT1NBViBSQURFCitWVUtPU0FWIFNFTktBCitWVUtPU0FWIFZMQUpLTworVlVLT1NBVkxKRVYgQk9HREFOS0EKK1ZVS09TQVZMSkVWIERBTklDQQorVlVLT1NBVkxKRVYgRFJBR0lDQQorVlVLT1NBVkxKRVYgSkVMRU5BCitWVUtPU0FWTEpFViBMQVpBUgorVlVLT1NBVkxKRVYgTUFLU0EKK1ZVS09TQVZMSkVWIE1JTEFOCitWVUtPU0FWTEpFViBQRVRBUgorVlVLT1NBVkxKRVYgU0FWQQorVlVLT1NBVkxKRVYgU0xBVklDQQorVlVLT1NBVkxKRVYgU1RFVkFOCitWVUtPU0FWTEpFViBWT0pJTiBESVBMIElORworVlVLT1NBVkxKRVZJxIYgQU7EkEVMS0EKK1ZVS09TQVZMSkVWScSGIEJBUkJBUkEKK1ZVS09TQVZMSkVWScSGIENWSUpFVElOCitWVUtPU0FWTEpFVknEhiBEUkFHSUNBCitWVUtPU0FWTEpFVknEhiBJVkFOCitWVUtPU0FWTEpFVknEhiBMSlVCSUNBCitWVUtPU0FWTEpFVknEhiBMVUtBCitWVUtPU0FWTEpFVknEhiBNQVJBCitWVUtPU0FWTEpFVknEhiBNSUxFTktPCitWVUtPU0FWTEpFVknEhiBNSUxPUkFECitWVUtPU0FWTEpFVknEhiBNSVJBCitWVUtPU0FWTEpFVknEhiBNSVJPU0xBVgorVlVLT1NBVkxKRVZJxIYgUEFWTEUKK1ZVS09TQVZMSkVWScSGIFNMT0JPREFOCitWVUtPU0FWTEpFVknEhiBTVE9KQU4KK1ZVS09TTEFWxIxFVknEhiBOSUtPTEEKK1ZVS09TTEFWxIxFVknEhiBaQVJJSkUKK1ZVS09TTEFWT1ZJxIYgUkFET05KQQorVlVLT1RBIE1BUktPCitWVUtPVEEgTUlMQU4KK1ZVS09UScSGIEJSQU5LTworVlVLT1RJxIYgSVZBCitWVUtPVEnEhiBLQVRBUklOQQorVlVLT1RJxIYtS09WQcSMRVZJxIYgQklMSkFOQQorVlVLT1RJxIYgTFVLQQorVlVLT1RJxIYgTUFSQQorVlVLT1RJxIYgTUFSSUpBCitWVUtPVEnEhiBNSUxBTgorVlVLT1RJxIYgTUlMSUNBCitWVUtPVEnEhiBNSU9EUkFHCitWVUtPVEnEhiBORU5BRAorVlVLT1RJxIYgTklLT0xBCitWVUtPVEnEhiBPTEdBCitWVUtPVEnEhiBQRVJJxaBBCitWVUtPVEnEhiBSQURPSkUKK1ZVS09UScSGIFJBRE9WQU4KK1ZVS09UScSGIFNPRklKQQorVlVLT1RJxIYgWk9SSUNBCitWVUtPViDFvUlWS08KK1ZVS09WIMSQT1LEkEUKK1ZVS09WIMSQT1LEkEUKK1ZVS09WIEJPxaBLTworVlVLT1YgQk/FoEtPCitWVUtPViBCT8W9QU5BCitWVUtPViBCUkFOSVNMQVYKK1ZVS09WIEJSQU5JU0xBVgorVlVLT1YgRFJBR0FOCitWVUtPViBEUkFHT0xKVUIKK1ZVS09WIEpPVkFOCitWVUtPViBKT1ZBTgorVlVLT1YgTEFaQVIKK1ZVS09WIExKVUJPTUlSCitWVUtPViBNQVJJSkEKK1ZVS09WIE1BUktPCitWVUtPViBOSUtPTElKQQorVlVLT1YgT0xHQQorVlVLT1YgU1RFVklDQQorVlVLT1YgVlVLQcWgSU4KK1ZVS09WQUMgRFJBR0FOCitWVUtPVkFDIFBBTlRBCitWVUtPVknEhiDFoFRFRklDQQorVlVLT1ZJxIYgxb1JVktPCitWVUtPVknEhiDFvUlWT0pJTgorVlVLT1ZJxIYgxJBPUsSQRQorVlVLT1ZJxIYgxJBVS0EKK1ZVS09WScSGIEFMRUtTQU5EQVIKK1ZVS09WScSGIEFMRUtTQU5EUkEKK1ZVS09WScSGIEFMRUtTSUpBCitWVUtPVknEhiBBTkRSSUpBCitWVUtPVknEhiBBTlRPCitWVUtPVknEhiBCSUxKQU5BCitWVUtPVknEhiBCTEHFvU8KK1ZVS09WScSGIEJMQUdPSkUKK1ZVS09WScSGIEJPxaBLTworVlVLT1ZJxIYgQk/FoEtPCitWVUtPVknEhiBCT0dJxIYKK1ZVS09WScSGIEJPSkFOQQorVlVLT1ZJxIYgQk9KQU5BCitWVUtPVknEhiBCT1JJxaBBCitWVUtPVknEhiBCT1JJxaBBCitWVUtPVknEhiBCT1JJVk9KCitWVUtPVknEhiBCT1NJTEpLQQorVlVLT1ZJxIYgQlJBTklTTEFWCitWVUtPVknEhiBCVURJTUlSCitWVUtPVknEhiBDVkVUS08KK1ZVS09WScSGIERBUklOS0EKK1ZVS09WScSGIERPQlJJVk9KRQorVlVLT1ZJxIYgRFJBR0FOCitWVUtPVknEhiBEUkFHQU4KK1ZVS09WScSGIERSQUdPTEpVQgorVlVLT1ZJxIYgRFJBR09TTEFWCitWVUtPVknEhiBEUkFHTworVlVLT1ZJxIYgRFXFoEFOIERSIExFS0FSCitWVUtPVknEhiBEVcWgQU5LQQorVlVLT1ZJxIYgRFXFoEFOCitWVUtPVknEhiBEVcWgQU4KK1ZVS09WScSGIEdFWkEgTk9WSU5BUgorVlVLT1ZJxIYgR09KS08KK1ZVS09WScSGIEdPUkFOCitWVUtPVknEhiBHT1JEQU5BCitWVUtPVknEhiBJTElKQQorVlVLT1ZJxIYgSUxJSkEKK1ZVS09WScSGIElWQU4KK1ZVS09WScSGIElWQU4KK1ZVS09WScSGIElWSUNBCitWVUtPVknEhiBKQVNNSU5BCitWVUtPVknEhiBKRUxJQ0EKK1ZVS09WScSGIEpPU0lQCitWVUtPVknEhiBKT1ZBCitWVUtPVknEhiBKVUxJSkFOQQorVlVLT1ZJxIYgSlVMSUpBTkEKK1ZVS09WScSGIExKVUJBTgorVlVLT1ZJxIYgTUFSR0FSRVRBCitWVUtPVknEhiBNQVJKRU5LQQorVlVLT1ZJxIYgTUFUTworVlVLT1ZJxIYgTUlMQURJTgorVlVLT1ZJxIYgTUlMQU4KK1ZVS09WScSGIE1JTEFOCitWVUtPVknEhiBNSUxFTkEKK1ZVS09WScSGIE1JTEVOQQorVlVLT1ZJxIYgTUlMRU5LTworVlVLT1ZJxIYgTUlMSVZPSkUKK1ZVS09WScSGIE1JTElWT0pFCitWVUtPVknEhiBNSUxJVk9KRQorVlVLT1ZJxIYgTUlMSVZPSgorVlVLT1ZJxIYgTUlMSkFOCitWVUtPVknEhiBNSUxLQQorVlVLT1ZJxIYgTUlMS0EKK1ZVS09WScSGIE1JTE9SQUQKK1ZVS09WScSGIE1JTFVUSU4KK1ZVS09WScSGIE1JTFVUSU4KK1ZVS09WScSGIE1JT0RSQUcKK1ZVS09WScSGIE1JT0RSQUcKK1ZVS09WScSGIE1JUkpBTkEKK1ZVS09WScSGIE1JUkpBTkEKK1ZVS09WScSGIE1JUktPCitWVUtPVknEhiBNSVJLTworVlVLT1ZJxIYgTUlST0pFCitWVUtPVknEhiBNSVJPU0xBVgorVlVLT1ZJxIYgTUlST1NMQVYKK1ZVS09WScSGIE1JVEFSCitWVUtPVknEhiBNSVRBUgorVlVLT1ZJxIYgTUlUQQorVlVLT1ZJxIYgTUxBREVOCitWVUtPVknEhiBOQURBCitWVUtPVknEhiBOQURBCitWVUtPVknEhiBORURBCitWVUtPVknEhiBPQlJBRAorVlVLT1ZJxIYgT0JSQUQKK1ZVS09WScSGIE9MR0lDQQorVlVLT1ZJxIYgT0xHSUNBCitWVUtPVknEhiBQRVRBUgorVlVLT1ZJxIYgUEVUQVIKK1ZVS09WScSGIFBFVEFSCitWVUtPVknEhiBSQURFTktPCitWVUtPVknEhiBSQURFCitWVUtPVknEhiBSQURPU0xBVgorVlVLT1ZJxIYgUkFET1ZBTgorVlVLT1ZJxIYgUkFUS08KK1ZVS09WScSGIFNBVkEKK1ZVS09WScSGIFNFTktBCitWVUtPVknEhiBTSU1BCitWVUtPVknEhiBTTE9CT0RBTgorVlVLT1ZJxIYgU0xPQk9EQU4KK1ZVS09WScSGIFNSRcSGS08KK1ZVS09WScSGIFNSRURPSkUKK1ZVS09WScSGIFNUQU5LQQorVlVLT1ZJxIYgU1RBTktBCitWVUtPVknEhiBTVElQQQorVlVLT1ZJxIYgU1ZFVElTTEFWCitWVUtPVknEhiBTVkVUTEFOQQorVlVLT1ZJxIYgU1ZFVExBTkEKK1ZVS09WScSGLVRBVsSMSU9TS0EgQUxFS1NBTkRSQQorVlVLT1ZJxIYgVE9ET1IKK1ZVS09WScSGIFRPTUlTTEFWCitWVUtPVknEhiBWRVNOQQorVlVLT1ZJxIYgVklEQUsKK1ZVS09WScSGIFZJTktBCitWVUtPVknEhiBWTEFESU1JUgorVlVLT1ZJxIYgVkxBRElNSVIKK1ZVS09WScSGIFZMQURJTUlSCitWVUtPVknEhiBWTEFESVNMQVYgRFIKK1ZVS09WScSGIFZMQVRLTyBESVBMIElORworVlVLT1ZJxIYgVk9KSVNMQVYKK1ZVS09WScSGIFZPSktPCitWVUtPVknEhiBWVcSMScSGCitWVUtPVknEhiBWVUtBxaBJTgorVlVLT1ZJxIYgWk9SQU4KK1ZVS09WScSGIFpPUkFOCitWVUtPVknEhiBaT1JBTgorVlVLT1ZJxIYgWk9SQU4KK1ZVS09WScSGIFpPUkFOCitWVUtPVkxKQUsgQk9TSUxKS0EKK1ZVS09WTEpBSyBFVklDQQorVlVLT1ZMSkFLIE1JUktPCitWVUtPVkxKQUsgVk9KSU4KK1ZVS09WT0pBQyBPTEdBCitWVUtPVk9KQUMgVk9KSVNMQVYKK1ZVS1NBTiBNSUxBTgorVlVLU0FOIE1JTElWT0oKK1ZVS1NBTiBNSU9EUkFHCitWVUtTQU4gTklLT0xBCitWVUtTQU4gUkFET1NMQVYgUFJPRkVTT1IKK1ZVS1NBTiBSVcW9SUNBCitWVUtTQU4gU1ZFVE9aQVIKK1ZVS1NBTiBWVUtPU0FWQQorVlVLU0FOT1YgTEpVQklDQQorVlVLU0FOT1YgVk9KSVNMQVYKK1ZVS1NBTk9WScSGIMW9SVZPUkFECitWVUtTQU5PVknEhiBBTEVLU0FOREFSCitWVUtTQU5PVknEhiBBTEVLU0FOREFSCitWVUtTQU5PVknEhiBEQVJLTworVlVLU0FOT1ZJxIYgREVTQU5LQQorVlVLU0FOT1ZJxIYgR09SQU4KK1ZVS1NBTk9WScSGIEdPUkRBTkEKK1ZVS1NBTk9WScSGIEpPVkFOCitWVUtTQU5PVknEhiBNSUxFCitWVUtTQU5PVknEhiBNSUxJU0FWCitWVUtTQU5PVknEhiBNSUxPUkFECitWVUtTQU5PVknEhiBNSU9EUkFHCitWVUtTQU5PVknEhiBNSVJPCitWVUtTQU5PVknEhiBTQVZPCitWVUtTQU5PVknEhiBTVEVWQU5LQQorVlVLU0nEhiBTVEVWTworVlVLU0nEhiBWRUxJTUlSCitWVUtVxaBJxIYgQU5URQorVlVMQU5PVknEhiBSRUxKQQorVlVMQU5PVknEhiBWT0pJU0xBVgorVlVMRVRBIEJPSkFOCitWVUxFVEEgUFJFRFJBRworVlVMRVRBIFJJU1RPCitWVUxFVEnEhiDFvUVMSktPCitWVUxFVEnEhiDEkE9SxJBJSkUKK1ZVTEVUScSGIEFORFJJSkEKK1ZVTEVUScSGIEJPUklTTEFWCitWVUxFVEnEhiBCUkFOSVNMQVZBCitWVUxFVEnEhiBCUkFOS08KK1ZVTEVUScSGIEJSQU5LTworVlVMRVRJxIYgREFOSUNBIERSCitWVUxFVEnEhiBESU1JVFJJSkUKK1ZVTEVUScSGIEpFTEVOQQorVlVMRVRJxIYgSkVMSUNBIFBST0ZFU09SCitWVUxFVEnEhiBNSUxBRElOCitWVUxFVEnEhiBNSUxBTiBWRVRFUklOQVIKK1ZVTEVUScSGIE1JTEUKK1ZVTEVUScSGIE1JTElWT0oKK1ZVTEVUScSGIE1MQURFTgorVlVMRVRJxIYgTkFERcW9REEKK1ZVTEVUScSGIE5FREVMSktPCitWVUxFVEnEhiBOSUtPTEEKK1ZVTEVUScSGIE9CUkFECitWVUxFVEnEhiBSQURPVkFOCitWVUxFVEnEhiBTUsSQQU4KK1ZVTEVUScSGIFZBU0lMSUpFCitWVUxFVEnEhiBWSURPU0FWQQorVlVMRVRJxIYgVklUT01JUgorVlVMRVRJxIYgVkxBRElNSVIKK1ZVTEVUScSGIFZMQVNUSU1JUgorVlVMRVRJxIYgWk9SSUNBCitWVUxFVElOIFpPUkEKK1ZVTEVWScSGIMSMRURPTUlSCitWVUxFVknEhiDEjEVET01JUgorVlVMRVZJxIYgxIxFRE9NSVIKK1ZVTEVWScSGIFNQQVNPSkUKK1ZVTEnEhiDFvUlLQQorVlVMScSGIMSQT1LEkEUKK1ZVTEnEhiDEkE9SxJBFCitWVUxJxIYgQk/FvUlEQVIKK1ZVTEnEhiBCT1JJU0xBVgorVlVMScSGIEJSQU5JU0xBVgorVlVMScSGIEJSQU5JU0xBVgorVlVMScSGIERBUklOS0EKK1ZVTEnEhiBERVNBTktBCitWVUxJxIYgRFJBR09MSlVCCitWVUxJxIYgSUxJSkEKK1ZVTEnEhiBKQVZPUktBCitWVUxJxIYgSkVMRU5BCitWVUxJxIYgSkVMRU5BCitWVUxJxIYgSk9WQU4KK1ZVTEnEhiBKT1ZBTgorVlVMScSGIEpPVkFOCitWVUxJxIYgTFVLQQorVlVMScSGIExVS0EKK1ZVTEnEhiBNSUxBTktBCitWVUxJxIYgTUlMQU4KK1ZVTEnEhiBNSUxJVk9KRQorVlVMScSGIE1JTE9SQUQKK1ZVTEnEhiBNSUxPUkFECitWVUxJxIYgTUlST1NMQVYKK1ZVTEnEhiBNTEFERU4KK1ZVTEnEhiBNT03EjElMTworVlVMScSGIE5JS09MQQorVlVMScSGIFBFVEtPCitWVUxJxIYgU0xBVklDQQorVlVMScSGIFNMQVZLTworVlVMScSGIFNURVZBTgorVlVMScSGIFpMQVRBCitWVUxJxIYgWkxBVElKQQorVlVMSUtJxIYgTFVLQQorVlVMSUtJxIYgUlXFvUlDQQorVlVMSUtJxIYgVkVTRUxJTgorVlVMSUtJxIYgVk9KSVNMQVYKK1ZVTElOIEFOR0VMSU5BCitWVUxJTiBCUkFOSVNMQVYKK1ZVTElOIEdPSktPCitWVUxJTiBKVUxLQQorVlVMSU4gTUxBREVOCitWVUxJTiBORU5BRAorVlVMSU4gTkVOQUQKK1ZVTElOIFBSRURSQUcKK1ZVTElOIFJBRE9NSVIKK1ZVTElOIFNURVZBTgorVlVMSU4gVlVLQcWgSU4KK1ZVTEpBSiBWQVNFTEoKK1ZVTEpFVknEhiDEkE9LQQorVlVMS0FOSSBHT1JEQU5BCitWVUxPVknEhiBEUkFHSUNBCitWVUxPVknEhiBEUkFHT8WgCitWVUxPVknEhiBEUkFHT0xKVUIKK1ZVTE9WScSGIERSQUdPTUlSCitWVUxPVknEhiBHT1JBTgorVlVMT1ZJxIYgUEVUQVIKK1ZVTE9WScSGIFJBSktPCitWVUxPVknEhiBTQVZPCitWVUxPVknEhiBTTEFWScWgQQorVlVMT1ZJxIYgVkxBRElNSVIKK1ZVTE9WScSGIFZVS0lDQQorVlVMU0FOT1ZJxIYgSUxLQQorVlVOREVSTElIIEpPU0lQCitWVU5EVUsgTUlST1NMQVZBCitWVU5JxIYgTUlMSkVOS08KK1ZVTknEhiBQRVRBUgorVlVOScSGIFJBRE9KS0EKK1ZVTkpBSyDEkE9SxJBFCitWVU5KQUsgQlJBTklTTEFWQQorVlVOSkFLIERVxaBBTgorVlVSREVMSkEgTkVNQU5KQSBEUiBQUk9GCitWVVJERUxKQSBTT0ZJSkEKK1ZVUkRFTEpBIFZBU0EKK1ZVUlNUIEpPVkFOS0EKK1ZVUlVOQSBCUkFOS08KK1ZVUlVOQSBNQVJJSkEKK1ZVUlVOScSGIFpEUkFWS08KK1pBQkxFxIZBTlNLSSBWTEFEQQorWkFCUkRBQyBNSUxBTgorWkFCVU5PViBWTEFESU1JUgorWkFET1IgQU5EUklKQSBEUiBJVVJFCitaQURSQVZFQyBKT1NJUAorWkFEUk8gTklLT0xBCitaQUZJUk9WScSGIEJSQU5LTworWkFHQSBNSUxBTgorWkFHQUrEjEFOIEtPU1RBCitaQUdPUsSMScSGIMW9QVJLTworWkFHT1LEjEnEhiDFvUlWS08KK1pBR09SxIxJxIYgxb1JVktPCitaQUdPUsSMScSGIMSQT1LEkEUKK1pBR09SxIxJxIYgxJBPUsSQRQorWkFHT1LEjEnEhiDEkE9SxJBFCitaQUdPUsSMScSGIEFMRUtTQU5EQVIKK1pBR09SxIxJxIYgQU5HRUxJTkEKK1pBR09SxIxJxIYgQk9SSVNMQVYKK1pBR09SxIxJxIYgQk9SSVNMQVYKK1pBR09SxIxJxIYgRFJBR09MSlVCCitaQUdPUsSMScSGIEdBVlJBCitaQUdPUsSMScSGIEdMSUdPUklKRQorWkFHT1LEjEnEhiBHT1JBTgorWkFHT1LEjEnEhiBJTElKQQorWkFHT1LEjEnEhiBJTElKQQorWkFHT1LEjEnEhiBJUkVOQQorWkFHT1LEjEnEhiBKQVNNSU5BCitaQUdPUsSMScSGIEpFTEVOQQorWkFHT1LEjEnEhiBKT1ZBTgorWkFHT1LEjEnEhiBKT1ZBTgorWkFHT1LEjEnEhiBLUklTVElOQQorWkFHT1LEjEnEhiBMQVpBUgorWkFHT1LEjEnEhiBMQVpBUgorWkFHT1LEjEnEhiBMQVpBCitaQUdPUsSMScSGIE1BUklKQQorWkFHT1LEjEnEhiBNSUxBTgorWkFHT1LEjEnEhiBNSUxBTgorWkFHT1LEjEnEhiBNSUxJQ0EKK1pBR09SxIxJxIYgTUlMSVZPSkUKK1pBR09SxIxJxIYgTUlMSVZPSgorWkFHT1LEjEnEhiBNSUxJVk9KCitaQUdPUsSMScSGIE1JTE/FoAorWkFHT1LEjEnEhiBNSUxPU0FWCitaQUdPUsSMScSGLU9SxaBPxaAgRFJBR0FOQQorWkFHT1LEjEnEhiBQQU5UQQorWkFHT1LEjEnEhiBQRVRBUgorWkFHT1LEjEnEhiBQRVRBUgorWkFHT1LEjEnEhiBQUkVEUkFHCitaQUdPUsSMScSGIFJBRElWT0oKK1pBR09SxIxJxIYgUkFET1NMQVYKK1pBR09SxIxJxIYgU0xPQk9EQU4KK1pBR09SxIxJxIYgU1RFVkFOCitaQUdPUsSMScSGIFNWRVRJU0xBVgorWkFHT1LEjEnEhiBTVkVUT1pBUgorWkFHT1LEjEnEhiBVUk/FoAorWkFHT1LEjEnEhiBWQVNBCitaQUdPUsSMScSGIFZBU0EKK1pBR09SxIxJxIYgVkFTQQorWkFHT1LEjEnEhiBWVUtPU0FWQQorWkFHT1LEjEnEhiBaSUpBSAorWkFHT1JBQyBCT8W9SUNBCitaQUdPUkFDIERJTUlUUklKRQorWkFHT1JBQyBEVcWgQU4KK1pBR09SQUMgSVZBTgorWkFHT1JBQyBNQVJJSkEKK1pBR09SQUMgTUlMRU5BCitaQUdPUkFDIE1JTElDQQorWkFHT1JBQyBNSUxJQ0EKK1pBR09SQUMgTkVERUxKS08KK1pBR09SQUMgTklLT0xBCitaQUdPUkFDIE5JS09MQQorWkFHT1JBQyBPU1RPSkEKK1pBR09SQUMgUEVUQVIKK1pBR09SQUMgUkFKS08KK1pBR09SQUMgUlXFvUlDQQorWkFHT1JBQyBTSU1PCitaQUdPUkFDIFZBTEtPCitaQUdPUkVDIEpPU0lQCitaQUdPUklDQSBPWlJFTgorWkFHUkHEkEEgQkFKSVJBTQorWkFIQVJJSkVWScSGIEJPR0RBTgorWkFIT1JBSSBKT1ZBTgorWkFIT1JFQyBaVVpBTkEKK1pBSE9ST0ROSSBBTlRPTgorWkFIT1JPRE5JIElWQU4KK1pBSU1PVknEhiBNVUhBUkVNCitaQUpaT1YgSkVMRU5BCitaQUtBTkogQVJQQUQKK1pBS0FOSiBMQUpPxaAKK1pBS0FOSiBNSVJLTworWkFLQU5KLVRPQk9MS0EgRVZBCitaQUtJxIYgxJBPUsSQRQorWkFLScSGIEJPxb1JREFSCitaQUtJxIYgRElNSVRSSUpFCitaQUtJxIYgRE9CUklWT0oKK1pBS0nEhiBET0JSSVZPSgorWkFLScSGIElWQU4KK1pBS0nEhiBNSUxBTgorWkFLScSGIFNBVkEKK1pBS0xBTiDEkFVSQQorWkFLTEFOIE1JTEFOCitaQUtMQU4gTkVHSUNBCitaQUtMQU4gUkFOS08KK1pBS0xBTiBTTE9CT0RBTgorWkFLTEFOIFNUQU5JxaBBCitaQUtMQU4gVElIT01JUgorWkFLTEFOIFRPTUlTTEFWCitaQUxJUyBHRU9SR0lKRQorWkFMSVMgSkFOSVMKK1pBTUFLTEFSIFpPUkFOCitaQU1PTE8gRURVQVJECitaQU1VUk9WScSGIEFMRUtTQU5EQVIKK1pBTVVST1ZJxIYgQk9KQU5BCitaQU1VUk9WScSGIEtPU1RBCitaQU1VUk9WScSGIE1JTEVOQQorWkFNVVJPVknEhiBPTEdBIERSCitaQU1VUk9WScSGIFNUT0pBTgorWkFOT1ZKQUsgUEVURVIKK1pBUFVOSURJUyBMRU9OSURBUworWkFSRUNLSSBST1pBTElKQQorWkFSScSMTkkgVkVSSUNBCitaQVJJxIxOSSBWRVJPTklLQQorWkFSScSGIMSQT1LEkEUKK1pBUknEhiDEkE9SxJBFCitaQVJJxIYgxJBPUsSQRQorWkFSScSGIEJPxaBLTworWkFSScSGIEJPR0RBTgorWkFSScSGIEJPUklTTEFWCitaQVJJxIYgQlJBTklTTEFWCitaQVJJxIYgQlJBVElTTEFWCitaQVJJxIYgRFJBR0EKK1pBUknEhiBEUkFHT1NMQVYKK1pBUknEhiBEVcWgQU4KK1pBUknEhiBJVkFOS0EKK1pBUknEhiBJVkFOCitaQVJJxIYgSkVMRU5BCitaQVJJxIYgSk9WQU4KK1pBUknEhiBKT1ZPCitaQVJJxIYgS0FUSUNBCitaQVJJxIYgS0FUSUNBCitaQVJJxIYgTEFaQVIKK1pBUknEhiBNQVJJSkEKK1pBUknEhiBNQVJJSkEKK1pBUknEhiBNSUtBCitaQVJJxIYgTUlMQURJTgorWkFSScSGIE1JTEFOCitaQVJJxIYgTUlMQU4KK1pBUknEhiBNSUxFTkEKK1pBUknEhiBNSUxJQ0EKK1pBUknEhiBNSUxJQ0EKK1pBUknEhiBNSU9EUkFHCitaQVJJxIYgTUxBREVOCitaQVJJxIYgTU9NxIxJTE8KK1pBUknEhiBOSUtPTEEKK1pBUknEhiBOSUtPTEEKK1pBUknEhiBOT1ZBSworWkFSScSGIFBFVEFSCitaQVJJxIYgUkFETUlMQQorWkFSScSGIFJBSk8KK1pBUknEhiBTQVZBCitaQVJJxIYgU0xPQk9EQU4KK1pBUknEhiBTTE9CT0RBTgorWkFSScSGIFNUQU5JTUlSCitaQVJJxIYgU1RBTklTTEFWCitaQVJJxIYgU1RBTktBCitaQVJJxIYgU1RFVkFOCitaQVJJxIYgVkVTTkEKK1pBUknEhiBaQVJJSkEKK1pBUknEhiBaRFJBVktPCitaQVJJxIYgWk9SS0EKK1pBUklOIFNURVZBCitaQVJJTkdFUi1QSU5URVIgTklLT0xBCitaQVJLT1YgS09DQQorWkFSTEkgS0FUQVJJTkEKK1pBUk5PQ0tJIFBBVkxFCitaQVJPTCBBTEVLU0FOREFSCitaQVJVQkFDIEFMRUtTQU5EQVIKK1pBUlVCQUMgQk9SS0EKK1pBUlVCQUMgUk9NSUNBCitaQVJVQklDQSBCT8W9QU5BCitaQVJVQklDQSBSQURVTgorWkFSVVBTS0kgxJBPUsSQRQorWkFSVVBTS0kgQlJBTktPCitaQVJVUFNLSSBNSUxPVkFOCitaQVRFSyBNQVJJSkEKK1pBVEVaQUxPIERVxaBBTiBQUk9GCitaQVRFWkFMTyBNSU9EUkFHCitaQVRFWkFMTyBQRVRBUgorWkFURVpBTE8gUFJFRFJBRworWkFWQVJHTyBaT0xUQU4KK1pBVkFSS08gxaBBTkRPUgorWkFWQVJLTyDFoEFORE9SCitaQVZBUktPIMWgQU5ET1IKK1pBVkFSS08gQU5UQUwKK1pBVkFSS08gRVNURVJBCitaQVZBUktPIEnFoFRWQU4KK1pBVkFSS08gSkFOT8WgCitaQVZBUktPIEtBUkxPCitaQVZBUktPIE1BUklKQQorWkFWQVJLTyBWRVJBCitaQVZBUk/FoCBBTkRSSUpBCitaQVZJxaBBIFBFVEFSCitaQVZJxaBBIFJBTktPCitaQVZJxaBJxIYgQ1ZJSkVUQQorWkFWScWgScSGIE1JTEFOCitaQVZJxaBJxIYgUFJFRFJBRworWkFWScWgScSGIFZJREEKK1pBVknFoElOIE1BUklDQQorWkFWScWgSU4gTU9NSVIKK1pBVknFoElOIFNBVkEKK1pBVlJUQU5JSyBJVkFOCitaQVZSVEFOSUsgSVZBTgorWkFWUlRBTklLIE1BUkpBTgorWkFaVUxKQUsgU0xBVktPCitaQkHEjE5JSyBaT0ZJSkEKK1pCSUxKScSGIERSQUdPTEpVQgorWkJVxIZOT1ZJxIYgSk9WQU5LQQorWkJVxIZOT1ZJxIYgTUlMQU4KK1pCVcSGTk9WScSGIE1JTE/FoAorWkJVxIZOT1ZJxIYgTUlUQQorWkJVxIZOT1ZJxIYgUEFWTEUKK1pCVcSGTk9WScSGIFNBVkEKK1pERUxBUiBTTE9CT0RBTgorWkRFTkpBSyBKT1NJUAorWkRJSEFOIE1BUktPCitaREpFTEFSIERSQUdBTgorWkRKRUxBUiBNSVJPU0xBVgorWkRKRUxBUiBPTEdBCitaREpFTEFSIFZJxaBOSkEKK1pESkVMQVIgWkRSQVZLTworWkRKRUxBUknEhiBCUkFOS08KK1pESkVMQVJJxIYgRFJBR0FOCitaRFJBVkVTS0kgRFXFoEFOS0EKK1pEUkFWRVZTS0kgSUxJSkEKK1pEUkFWS09WScSGIEFOxJBFTElKQQorWkRSQVZLT1ZJxIYgQk9HT0xKVUIKK1pEUkFWS09WScSGIEJPUklTTEFWCitaRFJBVktPVknEhiBERUpBTgorWkRSQVZLT1ZJxIYgRFJBR09MSlVCCitaRFJBVktPVknEhiBEVcWgQU5LQQorWkRSQVZLT1ZJxIYgSkVMRU5BCitaRFJBVktPVknEhiBKT1ZBTgorWkRSQVZLT1ZJxIYgTUlIQUpMTworWkRSQVZLT1ZJxIYgTUlMQU4KK1pEUkFWS09WScSGIE1JT0RSQUcKK1pEUkFWS09WScSGIE1JT0RSQUcKK1pEUkFWS09WScSGIE1JUk9TTEFWCitaRFJBVktPVknEhiBSQURFCitaRFJBVktPVknEhiBSQURFCitaRFJBVktPVknEhiBUSUhPTUlSCitaRFJBVktPVknEhiBUT01JU0xBVgorWkRSQVZLT1ZJxIYgVkVST0xKVUIKK1pEUkFWS09WScSGIFZJRE9KRQorWkRVUFNLSSBCT8W9SURBUgorWkXEjEFLIFZPSkEKK1pFxIxFVknEhiDEkE9SxJBPCitaRcSMRVZJxIYgQU5HRUxJTkEKK1pFxIxFVknEhiBDVklKQU4KK1pFxIxFVknEhiBET0JSSVZPSkUgRFIKK1pFxIxFVknEhiBEUkFHQU4gRFIKK1pFxIxFVknEhiBEVcWgQU4KK1pFxIxFVknEhiBHT0xVQgorWkXEjEVWScSGIEdWT1pERU4KK1pFxIxFVknEhiBISU1aTworWkXEjEVWScSGIEtSU1RPCitaRcSMRVZJxIYgTEpVQklDQQorWkXEjEVWScSGIExKVUJJTktPCitaRcSMRVZJxIYgTUFSSUpBCitaRcSMRVZJxIYgTUlMQU4KK1pFxIxFVknEhiBNSUxBTgorWkXEjEVWScSGIE1JTElTQVYKK1pFxIxFVknEhiBNSUxPCitaRcSMRVZJxIYgTUlPTUlSCitaRcSMRVZJxIYgTUlSSkFOQQorWkXEjEVWScSGIE5JS09MQQorWkXEjEVWScSGIE5JS09MQQorWkXEjEVWScSGIE5PVkFLCitaRcSMRVZJxIYgUFJFRFJBRworWkXEjEVWScSGIFJBSktPCitaRcSMRVZJxIYgUklTVElWT0pFCitaRcSMRVZJxIYgU0FWTworWkXEjEVWScSGIFNMQVZLTworWkXEjEVWScSGIFNMT0JPREFOCitaRcSMRVZJxIYgU01JTEpBCitaRcSMRVZJxIYgU01JTEpBCitaRcSMRVZJxIYgU09GSUpBCitaRcSMRVZJxIYgVkVTTkEKK1pFxIxFVknEhiBWTEFESU1JUgorWkXEjEVWScSGIFpPUkFOCitaRcSMSVJPVknEhiBJTE1JCitaRcSGSVJJIElTTUFJTAorWkXEhklSSSBaSUpBCitaRUMgxb1FTEpLTworWkVDIMSQVVJPCitaRUMgQk/FoEtPCitaRUMgQk/FvUlEQVIKK1pFQyBEQU5JSkVMCitaRUMgRFJBR0FOCitaRUMgRFJBR1VUSU4KK1pFQyBEVcWgQU4KK1pFQyBEVcWgQU4KK1pFQyBKT1ZBTgorWkVDIE1BUklKQQorWkVDIE1BUklKQQorWkVDIE1BUklOS08KK1pFQyBNQVRBCitaRUMgTUlMQU4KK1pFQyBNSUxBTgorWkVDIE1JTEUgRElQTCBJTkcKK1pFQyBNSUxPxaAKK1pFQyBNSUxPxaAKK1pFQyBNSUxPUkFECitaRUMgTUlMT1ZBTgorWkVDIE5JS09MQQorWkVDIE5JS09MQQorWkVDIFJBRE9WQU4KK1pFQyBSQUpLTworWkVDIFJBSktPCitaRUMgU1RFVkFOSUpBCitaRUMgWk9SSUNBCitaRURJIE1JSEFMSgorWkVHQSBBTEVLU0FOREFSCitaRUdOQUwgUlVET0xGCitaRUpBSyBJVkFOCitaRUpBSyBNSUxFVEEKK1pFSkFLIFJBRE/FoAorWkVLQSBHWklNCitaRUtBIEhJUlpFTgorWkVLQSBJUk1BCitaRUtBVklDQSBKRUxFTkEKK1pFS0FWSUNBIE1JUkpBTkEKK1pFS0FWSUNBIFNMQVZJQ0EKK1pFS0FWSUNBIFNSxJBBTgorWkVLScSGIE1JUkEKK1pFS09OSkEgWkRSQVZLTworWkVLT1ZJxIYgQk/FoEtPCitaRUtPVknEhiBEUkFHT01JUgorWkVLT1ZJxIYgR09SREFOQQorWkVLT1ZJxIYgSEFOS0lKQQorWkVLT1ZJxIYgSlVMSUpBTkEKK1pFS09WScSGIExJTEEKK1pFS09WScSGIE1JTEFESU4KK1pFS09WScSGIE1JTE/FoAorWkVLT1ZJxIYgUEVUQVIgRElMUCBPRUMKK1pFS09WScSGIFBFVEFSCitaRUtPVknEhiBSQURFTktPCitaRUtPVknEhiBSSVpBCitaRUtPVknEhiBWQVNPCitaRUtPVlNLSSBaT1JJQ0EKK1pFTEVOQkFCQSBSQVRLTworWkVMRU5CQUJBIFNURVZBTgorWkVMRU5IQVNJxIYgRU1JUgorWkVMRU5KQUsgQU5EUklKQQorWkVMRU5KQUsgU1RKRVBBTgorWkVMRU5LQSBGUkFOSkEKK1pFTEVOS0EgTUFSSUpBCitaRUxFTktPIEVNQQorWkVMRU5PVknEhiBCT1JJxaBBCitaRUxFTk9WScSGIERSQUdBTgorWkVMRU5PVknEhiBKRUxFTkEKK1pFTEVOT1ZJxIYgSk9WQU4KK1pFTEVOT1ZJxIYgTEpVQklDQQorWkVMRU5PVknEhiBMSlVCTworWkVMRU5PVknEhiBNQVJBCitaRUxFTk9WScSGIE1JTEFESU4KK1pFTEVOT1ZJxIYgTUlMQU4KK1pFTEVOT1ZJxIYgTUlMSVNBVgorWkVMRU5PVknEhiBNSUxJU0FWCitaRUxFTk9WScSGIFZFUkEKK1pFTEVOT1ZJxIYgVkxBRElNSVIKK1pFTEVOU0tJIEFMRUtTQU5EQVIKK1pFTEVOU0tJIEFMRUtTQU5EQVIKK1pFTEVOU0tJIEpFTEVOQQorWkVMRU5TS0kgTUlMSUNBCitaRUxJxIYgxJBPUsSQRQorWkVMScSGIElWQU4KK1pFTEnEhiBKQU5PxaAKK1pFTEnEhiBKT1ZBTgorWkVMScSGIExBWkFSCitaRUxJxIYgTEpVQkEKK1pFTEnEhiBMSlVCSUNBCitaRUxJxIYgTEpVQk9NSVIKK1pFTEnEhiBNQVJUQQorWkVMScSGIFBBVkxFCitaRUxJxIYgUEVSU0lEQQorWkVMScSGIFBFVEFSCitaRUxJxIYgUlXFvUlDQQorWkVMScSGIFZMQURJTUlSCitaRUxJxIYgWk9MVEFOCitaRUxKQUpJxIYgTklLT0xBIERSCitaRUxKScSGIFNMT0JPREFOCitaRUxKS08gTUFSSUNBCitaRUxKS09WScSGIMW9RUxKS08KK1pFTEpLT1ZJxIYgxb1FTEpLTworWkVMSktPVknEhiDEkFVSTworWkVMSktPVknEhiBCT1NBCitaRUxKS09WScSGIEJSQU5LTworWkVMSktPVknEhiBCUkFOS08KK1pFTEpLT1ZJxIYgREVTSU1JUgorWkVMSktPVknEhiBEUkFHVVRJTgorWkVMSktPVknEhiBEVcWgS08KK1pFTEpLT1ZJxIYgSVZBTktBCitaRUxKS09WScSGIEpPVkFOCitaRUxKS09WScSGIEpPVk8KK1pFTEpLT1ZJxIYgS1JJU1RJTkEKK1pFTEpLT1ZJxIYgTEpJTEpBTkEKK1pFTEpLT1ZJxIYgTUFSS08KK1pFTEpLT1ZJxIYgTUlMQU4KK1pFTEpLT1ZJxIYgTUlMQU4KK1pFTEpLT1ZJxIYgTUlMScSGCitaRUxKS09WScSGIE1JTEpBCitaRUxKS09WScSGIE1JTE/FoAorWkVMSktPVknEhiBNSVJLTworWkVMSktPVknEhiBPU1RPSkEKK1pFTEpLT1ZJxIYgUkFETUlMQQorWkVMSktPVknEhiBSQU5LTworWkVMSktPVknEhiBSQVRLTworWkVMSktPVknEhiBTSU1BCitaRUxKS09WScSGIFNURVZPCitaRUxKS09WScSGIFNUT0pBTktBCitaRUxKS09WScSGIFRPREUKK1pFTEpLT1ZJxIYgVE9NQQorWkVMSktPVknEhiBWRVJBCitaRUxKS09WScSGIFZMQUpLTworWkVMSktPVknEhiBWVUtBxaBJTgorWkVMSktPVknEhiBaT1JBTgorWkVMSktPVknEhiBaT1JBTgorWkVMSktPVknEhiBaT1JBTgorWkVNQkVSSSBGRVJFTkMKK1pFTUJFUkkgSk9TSVAKK1pFTUJFUkkgUk9CRVJUCitaRU1LTyDFoEFORE9SCitaRU1MSkFLIElWQU4KK1pFTUxKQU5BQyBNSUxBTktBCitaRU5UQUkgUk9CRVJUIERJUEwgSU5HCitaRU5VTiBBVkRPCitaRU5aRVJPVknEhiBQQVZMRQorWkVSRE8gQk/FvUlEQVIKK1pFUkRPIE1JTE9SQUQKK1pFUkRPIFJBRE9TTEFWCitaRVJETyBaTEFUQQorWkVSRU1TS0kgREFOSUxPCitaRVJFTVNLSSBEUkFHQU4KK1pFUkVNU0tJIERVxaBBTgorWkVSRU1TS0kgS0FNRU5LTworWkVSRU1TS0kgTkFEQQorWkVSRU1TS0kgTk9WQUsKK1pFUkVNU0tJIFBFVEFSCitaRVJFTVNLSSBQRVRBUgorWkVSRU1TS0kgUElST8WgS0EKK1pFUkVNU0tJIFJBRE9KS0EKK1pFUkVNU0tJIFJBTktPCitaRVJFTVNLSSBSQVRPTUlSCitaRVJFTVNLSSBSVcW9SUNBCitaRVJFTVNLSSBTTEFWSUNBCitaRVJFTVNLSSBTVEVWQU4KK1pFUkVNU0tJIFNURVZBTgorWkVSRU1TS0kgVEVPRkFOCitaRVJFTVNLSSBUT01JU0xBVgorWkVSRU1TS0kgVkVSQQorWkVSRU1TS0kgVkxBRElNSVIKK1pFUkVNU0tJIFZVSkFESU4KK1pFWkRJTiBBTEVLU0FOREFSIERSCitaR09NQkEgTEFaQVIKK1pHT01CQSBWTEFESU1JUgorWkdPTkpBTklOIE1JTEFOCitaR09OSkFOSU4gUkFERQorWkdPTkpBTklOIFJVxb1BCitaSURBUiBNQVJJSkFOCitaSUtPViBBTkRSSUpBCitaSUtPViBEUkFHT0xKVUIKK1pJTUEgxIxBQkEKK1pJTUEgUlVET0xGCitaSU1BTkpJIEpPVkFOCitaSU1PTkpBIExKVUJPTUlSCitaSU1PTkpJxIYgVkxBRElNSVIKK1pJTkFJxIYgQ1ZJSkVUQQorWklOQUnEhiBVUk/FoAorWklSQU1PViDFvUFSS08KK1pJUkFNT1YgSkVWUk9TSU1BCitaSVJBTU9WIEpFVlJPU0lNQQorWklSQU1PViBTQVZBCitaSVJBTU9WIFNURVZBTgorWklSRFVIIE1BUklKQU4KK1pJUk9KRSBEUkFHQU4KK1pJUk9KRVZJxIYgQU7EkEEKK1pJUk9KRVZJxIYgR09KS08KK1pJUk9KRVZJxIYgTUlMRU5LTworWklST0pFVknEhiBNTEFERU4KK1pJUk9KRVZJxIYgT0JSQUQKK1pJUk9KRVZJxIYgVE9NSVNMQVYKK1pJU0lKQURFUyBNSVJKQU5BCitaSVZMQUsgQlJBTktPCitaSVZMQUsgSkVMS0EKK1pJVkxBSyBKT1ZBTgorWklWTEFLIFBFUk8KK1pJVkxBSyBQRVJPCitaSVZMQUsgVkxBRElNSVIKK1pJVkxBS09WScSGIERSQUdPTEpVQgorWkpBxIxJxIYgxJBPUsSQRQorWkpBxIxJxIYgxJBPUsSQRQorWkpBxIxJxIYgQlJBTktPCitaSkFKScSGIEtSU1RBTgorWkpBTEnEhiBEUkFHT01JUiBBRFZPS0FUCitaSkFMScSGIERSQUdPTUlSCitaSkFMScSGIE1BUkdJVEEKK1pKRVZBTE8gQU5LSUNBCitaTEFUQU5PVknEhiBCTEFHT0pFCitaTEFUQU5PVknEhiBDVkVUS08KK1pMQVRBTk9WScSGIFJBRElWT0oKK1pMQVRBTk9WScSGIFRJSE9NSVIKK1pMQVRBTk9WScSGIFZMQURJTUlSCitaTEFUQU5PVlNLSSBESU1JVFJJSkUKK1pMQVRBTk9WU0tJIFJVU0UKK1pMQVRBUiBNSUxFTktPCitaTEFUQVJFViBEVcWgQU4KK1pMQVRBUkVWIERVxaBBTgorWkxBVEFSRVYgVkVSSUNBCitaTEFUQVJJxIYgTU9NxIxJTE8KK1pMQVRBUknEhiBWT0pJU0xBVgorWkxBVEFST1YgTUlMT1ZBTgorWkxBVEVLIExBWkFSCitaTEFUScSMQU5JTiBUT8WgTworWkxBVEnEhiBNSUxPUkFECitaTEFUScSGIFJBRE9TTEFWCitaTEFUScSGIFZFU0VMSU4KK1pMQVRLT1ZJxIYgQk/FoEtPCitaTEFUS09WScSGIEJPUklTTEFWCitaTEFUS09WScSGIEpFTElDQQorWkxBVEtPVknEhi1KT1ZJxIYgT0xHSUNBCitaTEFUS09WScSGIEtBVEFSSU5BCitaTEFUS09WScSGIE1FTEFOSUpBCitaTEFUS09WScSGIFJVU09NSVIKK1pMQVRLT1ZJxIYgU0xBxJBBTkEKK1pMQVRLT1ZJxIYgU0xBVktPCitaTEFUT05JxIYgU0xBVktPCitaTEFUT1ZFUkhPVk5JS09WIMSQT1LEkEUKK1pMQVRPVknEhiBKRUxJU0FWRVRBCitaTEFUT1ZJxIYgTklLT0xBCitaTEnEjEnEhiBBTEVLU0FORFJBCitaTEnEjEnEhiBEQVJJTktBCitaTEnEjEnEhiBESU1JVFJJSkUKK1pMScSMScSGIERVxaBBTktBIERJUEwgSU5HCitaTEnEjEnEhiBEVcWgQU4KK1pMScSMScSGIElWQU4KK1pMScSMScSGIEtBVElDQQorWkxJxIxJxIYgTEpVQklDQQorWkxJxIxJxIYgTUlMQU4KK1pMScSMScSGIE1JTE9SQUQKK1pMScSMScSGIFJBRE9WQU4KK1pMScSMScSGIFZBU0lMSktBCitaTE9KVVRSTyBNScSGTworWkxPSlVUUk8gTUlIQUpMTworWkxPSlVUUk8gU1RFVk8KK1pMT0pVVFJPIFZBU0EKK1pMT0tPTElDQSDFvUlWS08KK1pMT0tPTElDQSDEkE9SxJBFCitaTE9LT0xJQ0EgQk/FoEtPCitaTE9LT0xJQ0EgSk9SR09WQU5LQQorWkxPS09MSUNBIEpPVkFOCitaTE9LT0xJQ0EgSk9WQU4KK1pMT0tPTElDQSBMQVpBUgorWkxPS09MSUNBIExKVUJJQ0EKK1pMT0tPTElDQSBNQVJLTworWkxPS09MSUNBIE1JTE/FoAorWkxPS09MSUNBIE1JT0RSQUcKK1pMT0tPTElDQSBOSUtPTEEKK1pMT0tPTElDQSBOT1ZBSworWkxPS09MSUNBIFNMQVZLTworWkxPS09MSUNBIFNMQVZOQQorWkxPS09MSUNBIFNURVZBTgorWkxPS09MSUNBIFNURVZBTgorWkxPS09MSUNBIFRPRE9SCitaTE9LT0xJQ0EgVkxBREEKK1pMT0tPTElDQSBaTEFUQQorWk1JSkFOSkFDIE1JTEFOCitaTVJaTElLQVIgTUlSSkFOQQorWk/EhkVWScSGIE1BUklKQQorWk/EhkVWScSGIFZJVE9SCitaT0JFTklDQSBCSUxKQU5BCitaT0JFTklDQSBEQU5JQ0EKK1pPQkVOSUNBIE1JUkpBTkEKK1pPR09WScSGIFZVSworWk9LSSBTVEVWQU4KK1pPS0nEhiBSQURPVkFOCitaT0xOQUkgVE9NQcWgCitaT0xOSkFOIFBBVkVMCitaT0xPVEnEhiBLQVRBUklOQQorWk9MT1RJxIYgVkVMSU5LQQorWk9MT1RJxIYgVlVLT1NBVgorWk9NQk9SQUMgWlZPTktPCitaT05BIERJVk5BCitaT05BSSBQQUwKK1pPTknEhiBMSlVCQU4KK1pPTknEhiBSSVpBSAorWk9SQUQgTUlIQUxKCitaT1JBRCBTVEVWQU4KK1pPUkFKQSDEkFVSQQorWk9SQUpBIERSQUdBTgorWk9SQUpBIElHTkpBVAorWk9SQUpBIFBFVEFSCitaT1JBSkEgU1RFVkFOCitaT1JBTknEhiBTTEFWSUNBCitaT1JBTk9WScSGIERVxaBBTktBCitaT1JBTk9WScSGIElMSUpBCitaT1JBTk9WScSGIExBWkFSCitaT1JBTk9WScSGIExBWkFSCitaT1JBTk9WScSGIE1JTEFOCitaT1JBTk9WScSGIE1JT0RSQUcKK1pPUkFOT1ZJxIYgU09GSUpBCitaT1JBTk9WScSGIFNQQVNBCitaT1JBTk9WScSGIFNURVZBTgorWk9SQU5PVknEhiBTVkVUTEFOQQorWk9SScSMScSGIERSQUdPTEpVQgorWk9SScSGIMSMRURPCitaT1JJxIYgxJBPUsSQRQorWk9SScSGIMSQT1LEkEUKK1pPUknEhiDEkFVSxJBJQ0EKK1pPUknEhiDEkFVSSUNBCitaT1JJxIYgxJBVUk8KK1pPUknEhiDEkFVSTworWk9SScSGIMSQVVJPCitaT1JJxIYgQU7EkEVMS0EKK1pPUknEhiBCT8WgS08KK1pPUknEhiBCT8W9SURBUgorWk9SScSGIEJPR0RBTgorWk9SScSGIEJPR09MSlVCCitaT1JJxIYgQk9SSVZPSgorWk9SScSGIEJPUk8KK1pPUknEhiBCT1JPCitaT1JJxIYgQlJBTktBCitaT1JJxIYgQlJBTktPCitaT1JJxIYgREFSSU5LQQorWk9SScSGIERBUktPCitaT1JJxIYgRFJBR0FOCitaT1JJxIYgRFJBR0FOCitaT1JJxIYgRFJBR0FOCitaT1JJxIYgRFJBR09MSlVCCitaT1JJxIYgRFXFoEFOS0EKK1pPUknEhiBEVcWgQU4KK1pPUknEhiBEVcWgQU4KK1pPUknEhi1HQVJESU5PVkHEjEtJIE1BUklKQU5BCitaT1JJxIYgR0FWUklMTworWk9SScSGIEdPUkRBTkEKK1pPUknEhiBKRUxJU0FWRVRBCitaT1JJxIYgSkVMSVNBVkVUQQorWk9SScSGIEpPVkFOCitaT1JJxIYgS0FUQQorWk9SScSGIEtMQVJBCitaT1JJxIYgS09TVEFESU4KK1pPUknEhiBLT1ZJTEpLQQorWk9SScSGIExBWkFSCitaT1JJxIYgTFVLQQorWk9SScSGIE1BUklKQQorWk9SScSGIE1BUktPCitaT1JJxIYgTUlLQQorWk9SScSGIE1JTEFOCitaT1JJxIYgTUlMQU4KK1pPUknEhiBNSUxBTgorWk9SScSGIE1JTEFOCitaT1JJxIYgTUlMQU4KK1pPUknEhiBNSUxFVkEKK1pPUknEhiBNSUxJQ0EKK1pPUknEhiBNSUxJQ0EKK1pPUknEhiBNSUxPUkFECitaT1JJxIYgTUlMT1JBRAorWk9SScSGIE1JTE9SQUQKK1pPUknEhiBNSUxPUkFECitaT1JJxIYgTUlMT1JBRAorWk9SScSGIE1JT0RSQUcKK1pPUknEhiBNSVJLTyBJTkcKK1pPUknEhiBNSVJLTworWk9SScSGIE1JUk9TTEFWCitaT1JJxIYgTklLT0xBCitaT1JJxIYgTklLT0xBCitaT1JJxIYgTklLT0xBCitaT1JJxIYgUEFWTEUKK1pPUknEhiBQRVJBCitaT1JJxIYgUEVUQVIKK1pPUknEhiBQRVRLTworWk9SScSGIFJBREUKK1pPUknEhiBSQURFCitaT1JJxIYgU0FWQQorWk9SScSGIFNJTUEKK1pPUknEhiBTSU1FT04KK1pPUknEhiBTTEFWSUNBCitaT1JJxIYgU0xPQk9EQU4KK1pPUknEhiBTTkXFvUFOQQorWk9SScSGIFNPS0EKK1pPUknEhiBTUEFTT0pFCitaT1JJxIYgU1RBTktPCitaT1JJxIYgU1RPSkFOCitaT1JJxIYgU1ZFVEtPCitaT1JJxIYgU1ZFVEtPCitaT1JJxIYgVkFTSUxJSkUKK1pPUknEhiBWRUxJTUlSCitaT1JJxIYgVkVMSktPIERJUEwgSU5HCitaT1JJxIYgVkxBRElTTEFWCitaT1JJxIYgVkxBRE8KK1pPUknEhiBWT0pJTgorWk9SScSGIFZPSktBCitaT1JJxIYgWkRSQVZLQQorWk9SScSGIFpPUklDQQorWk9SScSGIFpWT05JTUlSCitaT1JJQ0EgQUNPCitaT1JJQ0EgRFXFoEFOCitaT1JJQ0EgTUFSS08KK1pPUklKQU4gRU1JTAorWk9SSkFOIEJSQU5LTworWk9SSkFOIEpBTktPCitaT1JLScSGIMW9SVZLTworWk9STklKQSBCUkFOS08KK1pPUk5JSkEgVkxBRElTTEFWCitaT1JOSUsgQUxEQQorWk9SWknEhiBNSUxPUkFECitaT1RJTiDEkE9SxJBFCitaT1RJTiBTQVZBCitaT1RJTiBTTEFWT0xKVUIKK1pPVE9WScSGIEFMRUtTQU5EQVIKK1pPVE9WScSGIE9CUkFECitaT1ZJxIYgQU5BCitaT1ZJxIYgRFXFoEFOCitaT1ZJxIYgTUlMT1ZBTgorWk9WScSGIE1JUk9TTEFWCitaT1ZLTyDFoElNVU4KK1pPVktPIElMSUpBCitaT1ZLTyBKT1NJUAorWk9WS08gTUFOREEKK1pPVktPIE1BUkpBTgorWk9aVUsgTEpVQk9NSVIKK1pSSUxJxIYgTkFEQQorWlJJTEnEhiBWRVJBCitaUklMScSGIFZMQURJTUlSIERSIExFS0FSCitaUk5JxIYgxaBQSVJPCitaUk5JxIYgxJBPUsSQRQorWlJOScSGIMSQVVJPCitaUk5JxIYgxJBVUk8KK1pSTknEhiBCUkFOS08KK1pSTknEhiBEVcWgQU4KK1pSTknEhiBHT0pLTworWlJOScSGIEdPSktPCitaUk5JxIYgSk9WQU4KK1pSTknEhiBMQVpBUgorWlJOScSGIE1BSkEKK1pSTknEhiBNQUxJTkEKK1pSTknEhiBNQU5FIERJUEwgSU5HCitaUk5JxIYgTUFORQorWlJOScSGIE1BUklOS08KK1pSTknEhiBNSUxBTgorWlJOScSGIE1JTEFOCitaUk5JxIYgTUlMT8WgCitaUk5JxIYgTUlSSkFOQQorWlJOScSGIE1JUk9MSlVCCitaUk5JxIYgTkVOQUQKK1pSTknEhiBOSUtPTEEKK1pSTknEhiBQRVRBUgorWlJOScSGIFNJTknFoEEKK1pSTknEhiBTTE9CT0RBTgorWlJOScSGIFNSxJBBTgorWlJOScSGIFZMQURPCitaUk5JxIYgWk9SQU4KK1pSTknEhiBaT1JBTgorWlVCQUMgxIxFRE9NSVIKK1pVQkFDIERJVk5BCitaVUJBQyBNSUxBTgorWlVCQUMgUEVSTworWlVCQUsgU1RFVkFOCitaVUJBTiBQRVRBUgorWlVCQU5PViBCUkFOSVNMQVYKK1pVQkFOT1YgVkxBRElNSVIKK1pVQkVSIERVxaBBTgorWlVCRVIgTUFSS08KK1pVQkVSRUMgSk9WQU4KK1pVQknEhiDFvUFSS08KK1pVQknEhiDEkFVSxJBBCitaVUJJxIYgQklMSkFOQQorWlVCScSGIEJPxb1PCitaVUJJxIYgQlJBTklTTEFWQQorWlVCScSGIERSQUdPCitaVUJJxIYgSk9WTworWlVCScSGIExBWk8KK1pVQknEhiBQRVRBUgorWlVCScSGIFJBRE9TTEFWCitaVUJJxIYgUkFUS08KK1pVQknEhiBWRVJBCitaVUJJxIYgVkVSS0EKK1pVQk9WIEFERUxBCitaVUJPVknEhiBBTkRSSUpBCitaVUJPVknEhiBNSVJKQU5BCitaVUJPVknEhiBTTE9CT0RBTgorWlVCT1ZJxIYgU1RFVkFOCitaVUNBSknEhiBKRUxFTkEKK1pVS0nEhiBHT0pLTworWlVLT1ZJxIYgTUlMSU5LTworWlVMScSGIEFHTkXFoAorWlVNQlVMT1ZJxIYgUFJFRFJBRworWlVQQU7EjEnEhiBGUkFOQworWlVQQU7EjEnEhiBJVkFOCitaVVBBTkMgREFSS08KK1pVUEFOQyBSQUpLTworWlVQS09WIMSQVVJBCitaVVBLT1YgTUlST1NMQVYKK1pVUktPVknEhiDEkE9SxJBFCitaVVJLT1ZJxIYgQUxFS1NBTkRBUgorWlVSS09WScSGIEJPR09MSlVCCitaVVJLT1ZJxIYgRFXFoEFOCitaVVJLT1ZJxIYgR0FWUkEKK1pVUktPVknEhiBNSVJKQU5BCitaVVJLT1ZJxIYgTklLT0xBCitaVVJLT1ZJxIYgUkFET1NMQVYKK1pVUktPVknEhiBSVcW9QQorWlVSS09WScSGIFZFUkEKK1pVUk9WQUMgSk9WTworWlVST1ZBQyBWRUxKS08KK1pVVknEhiBPQlJBRAorWlVaQUtVIFJFRMW9RVAKK1pWQVJBIEpVTElKQQorWlZFS0FOT1ZJxIYgSk9TSVAKK1pWRUtJxIYgRFXFoEFOS0EKK1pWRUtJxIYgSlVHT1NMQVYKK1pWRUtJxIYgTUFSSUpBCitaVkVLScSGIE1JTEFOCitaVkVLScSGIE5BREEKK1pWRUtJxIYgUEVUQVIKK1pWRUtJxIYgU0lOScWgQQorWlZFS0nEhiBWRUxJTUlSCitaVkVSxb1JTkEgSk9TSVAKK1pWRVpEQU5PVknEhiBCT1JBCitaVkVaREFOT1ZJxIYgVE9NQQorWlZFWkRJTiBKT1ZBTktBCitaVklKRVIgTUlMT1JBRAorWlZJWkRJxIYgTUVITUVECitaVk/FoEVDIEtMQVJBCitaVk9OQVJFVknEhiBLQVRBCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNSLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TZXJiaWFuU1IudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YTZhODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNSLnR4dApAQCAtMCwwICsxLDYxMjU0IEBACivvu78jLyoqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKi8KKwor0KfQkNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQkNCn0JjQiyDQiNCV0JvQmNCm0JAKK9Cn0JDQp9CY0Isg0JzQkNCg0JjQiNCQCivQp9CQ0KfQmNCLINCd0JjQmtCe0JvQkAor0KfQkNCn0JjQiNCQINCR0KDQkNCd0JrQngor0KfQkNCC0JXQndCe0JLQmNCLINCW0JDQoNCa0J4KK9Cn0JDQgtCV0J3QntCS0JjQiyDQodCQ0JHQmNCd0JAKK9Cn0JDQkdCQ0Jgg0JDQndCU0KDQmNCI0JAKK9Cn0JDQkdCQ0Jgg0JvQkNCI0J7QqAor0KfQkNCR0JDQmCDQnNCQ0KDQmNCI0JAKK9Cn0JDQkdCQ0Jgg0KHQotCV0JLQkNCdCivQp9CQ0JHQkNCYINCh0KLQldCS0JDQnQor0KfQkNCR0JDQoNCa0JDQn9CQINCR0KDQkNCd0JrQngor0KfQkNCR0JDQoNCa0JDQn9CQINCc0JjQm9CV0J3QmtCeCivQp9CQ0JHQkNCg0JrQkNCf0JAg0JzQmNCg0J7QodCb0JDQkgor0KfQkNCR0JDQoNCa0JDQn9CQINCh0JjQnNCeCivQp9CQ0JHQkNCg0JrQkNCf0JAg0KHQotCQ0J3QmtCeCivQp9CQ0JHQkNCg0JrQkNCf0JAg0KLQkNCc0JDQoNCQCivQp9CQ0JHQkNCg0JrQkNCf0JAg0KLQntCc0JDQqAor0KfQkNCR0JTQkNCg0JjQiyDQndCY0JrQntCb0JAKK9Cn0JDQkdCU0JDQoNCY0Isg0JfQntCg0JjQptCQCivQp9CQ0JHQmCDQndCQ0J3QlNCe0KAKK9Cn0JDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cn0JDQkdCg0JDQlNCYINCQ0JPQndCV0JfQmNCI0JAKK9Cn0JDQkdCg0JDQlNCYINCY0JLQkNCdCivQp9CQ0JHQoNCQ0JTQmCDQiNCV0JvQldCd0JAKK9Cn0JDQkdCg0JDQlNCYINCJ0KPQkdCY0KbQkAor0KfQkNCR0KDQkNCU0Jgg0KHQotCV0JLQkNCdCivQp9CQ0JHQoNCU0JAg0JzQkNCg0KLQmNCdCivQp9CQ0JHQoNCY0JvQniDQkdCe0JPQlNCQ0J0KK9Cn0JDQkdCg0JjQm9CeINCR0KDQkNCd0JjQodCb0JDQkgor0KfQkNCR0KDQmNCb0J4g0JvQkNCX0JDQoAor0KfQkNCR0KDQmNCb0J4g0InQo9CR0JjQptCQCivQp9CQ0JHQoNCY0JvQniDQodCf0JDQodCe0IjQkAor0KfQkNCU0JXQqCDQl9CU0JXQndCa0JAKK9Cn0JDQlNCV0KHQmtCYINCR0JvQkNCT0J7QiNCVCivQp9CQ0JTQntCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQk9CJ0JXQktCY0Isg0KLQntCc0JAKK9Cn0JDQk9Ce0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQp9CQ0IjQkCDQktCQ0J3QmtCQCivQp9CQ0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQp9CQ0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cn0JDQiNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQkNCa0KjQmNCg0JDQnSDQnNCY0JvQkNCU0JjQnQor0KfQkNCa0JDQnSDQldCj0JPQldCdCivQp9CQ0JrQkNCdINCV0JLQk9CV0J3QmNCI0JUKK9Cn0JDQmtCQ0J0g0JjQktCQ0J0KK9Cn0JDQmtCQ0J0g0IjQo9Cb0JjQiNCQ0J0KK9Cn0JDQmtCQ0J0g0JzQmNCl0JDQiNCb0J4KK9Cn0JDQmtCQ0J0g0KHQotCV0JLQkNCdCivQp9CQ0JrQkNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQmtCQ0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KfQkNCa0JDQnSDQktCb0JDQlNCY0JzQmNCgCivQp9CQ0JrQkNCg0JAg0JDQndCQCivQp9CQ0JrQkNCg0JXQktCY0Isg0JzQntCc0JjQoAor0KfQkNCa0JDQoNCV0JLQmNCLINCd0JXQlNCV0InQmtCeCivQp9CQ0JrQmCDQqNCQ0J3QlNCe0KAKK9Cn0JDQmtCYINCQ0JzQkNCb0JjQiNCQCivQp9CQ0JrQmCDQkNCd0JTQoNCQ0KgKK9Cn0JDQmtCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cn0JDQmtCYINCb0JDQiNCe0KgKK9Cn0JDQmtCYINCb0JDQodCb0J4KK9Cn0JDQmtCYINCc0JjQpdCQ0IkKK9Cn0JDQmtCYINCc0JjQpdCQ0IkKK9Cn0JDQmtCYINCf0JjQoNCe0KjQmtCQCivQp9CQ0JrQmNCLINCh0JDQktCQCivQp9CQ0JrQmNCLINCX0JvQkNCi0J7QiNCVINCU0KAKK9Cn0JDQmtCc0JDQmiDQlNCQ0J3QmNCm0JAKK9Cn0JDQmtCc0JDQmiDQlNCV0IjQkNCdCivQp9CQ0JrQnNCQ0Jog0JvQkNCX0JDQoAor0KfQkNCa0JzQkNCaINCJ0JjQidCQ0J3QkAor0KfQkNCa0JzQkNCaINCJ0KPQkdCY0KbQkAor0KfQkNCa0JzQkNCaINCh0J7QpNCY0IjQkAor0KfQkNCa0JzQkNCaINCh0JLQldCi0J7Ql9CQ0KAKK9Cn0JDQmtCc0JDQmyDQktCe0IjQmNCh0JvQkNCSCivQp9CQ0JrQntCS0JDQpiDQkdCe0KDQmNCh0JvQkNCSCivQp9CQ0JrQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQp9CQ0JrQntCS0JDQpiDQn9CQ0J3QotCV0JvQmNCI0JAKK9Cn0JDQmtCe0JLQkNCmINCh0JDQktCQCivQp9CQ0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0KfQkNCa0KDQkCDQnNCY0JvQldCd0JAKK9Cn0JDQm9CQINCC0KPQm9CQCivQp9CQ0JvQkCDQmNCg0JXQnQor0KfQkNCb0JAg0JjQktCQ0J3QmtCQCivQp9CQ0JvQkCDQm9CV0J3QmtCQCivQp9CQ0JvQkNCa0JjQiyDQkdCg0JDQndCa0J4KK9Cn0JDQm9CQ0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQp9CQ0JvQkNCa0JjQiyDQnNCQ0KDQmtCeCivQp9CQ0JvQkNCa0JjQiyDQnNCY0JvQkNCdCivQp9CQ0JvQlSDQmNCS0JDQnQor0KfQkNCb0JUg0IjQntCh0JjQnwor0KfQkNCb0JUg0JzQmNCb0JDQnQor0KfQkNCb0JUg0KHQntCk0JjQiNCQCivQp9CQ0JvQlSDQktCb0JDQlNCY0JzQmNCgCivQp9CQ0JvQldCd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQp9CQ0JvQldCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KfQkNCb0JXQndCY0Isg0JTQmNCd0JAKK9Cn0JDQm9CV0J3QmNCLINCU0KDQkNCT0JjQptCQCivQp9CQ0JvQldCd0JjQiyDQm9CQ0JfQkNCgCivQp9CQ0JvQldCd0JjQiyDQidCY0InQkNCd0JAKK9Cn0JDQm9CV0J3QmNCLINCJ0KPQkdCe0JzQmNCgCivQp9CQ0JvQldCd0JjQiyDQm9Cj0JrQkAor0KfQkNCb0JXQndCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0KfQkNCb0JXQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cn0JDQm9CV0J3QmNCLINCh0KLQldCS0JDQnQor0KfQkNCb0JjQiyDQkdCe0KjQmtCeCivQp9CQ0JvQmNCLINCI0J7QktCeCivQp9CQ0JvQmNCLINCc0JDQoNCY0IjQkAor0KfQkNCb0JjQiNCQINCU0JDQndCY0KbQkAor0KfQkNCb0JjQiNCQINCI0J7QktCQ0J0KK9Cn0JDQm9CY0IjQkCDQm9CQ0JfQkNCgCivQp9CQ0JvQmNCI0JAg0JzQmNCb0JDQnQor0KfQkNCc0ILQmNCLINCI0JDQpdCY0IjQkAor0KfQkNCc0JDQndCT0J7QoSDQgtCe0KDQgtCVCivQp9CQ0JzQkNCd0JPQntChINCa0JDQotCY0KbQkAor0KfQkNCc0JHQldCgINCJ0KPQkdCY0KbQkAor0KfQkNCc0JHQntCgINCC0KPQoNCeCivQp9CQ0JzQkdCe0KAg0JDQndCU0KDQmNCI0JAKK9Cn0JDQnNCR0J7QoCDQiNCe0KHQmNCfCivQp9CQ0JzQj9CY0Isg0J3QldCQ0JQKK9Cn0JDQnNCeINCR0JDQoNCR0JDQoNCQCivQp9CQ0JzQn9Cg0JDQkyDQgtCe0KDQgtCVINCb0JXQmtCQ0KAKK9Cn0JDQnNCf0KDQkNCTINCU0KDQkNCT0JAKK9Cn0JDQnNCf0KDQkNCTINCU0KPQqNCQ0J0KK9Cn0JDQnNCf0KDQkNCTINCJ0KPQkdCY0KbQkAor0KfQkNCc0J/QoNCQ0JMg0JzQmNCb0JDQnQor0KfQkNCd0KfQkNCgINCC0J7QoNCC0JUKK9Cn0JDQndCn0JDQoNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQp9CQ0J3Qp9CQ0KDQldCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0KfQkNCd0KfQkNCg0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQp9CQ0J3QkNCP0JjQiyDQgtCe0KDQgtCVCivQp9CQ0J3QkNCP0JjQiyDQiNCe0JLQkNCdCivQp9CQ0J3QkNCP0JjQiyDQodCQ0IrQkAor0KfQkNCd0JDQlNCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0KfQkNCd0JDQlNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQp9CQ0J3QkNCU0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQp9CQ0J3QkNCU0Jgg0IjQkNCd0J7QqCDQnNCgCivQp9CQ0J3QkNCU0Jgg0InQmNCJ0JDQndCQCivQp9CQ0J3QkNCT0JvQmNCLINCC0J7QmtCQCivQp9CQ0J3QkNCaINCW0JXQidCa0J4KK9Cn0JDQndCQ0Jog0ILQo9Cg0JAKK9Cn0JDQndCQ0Jog0JHQntCh0JjQidCa0JAg0JTQoAor0KfQkNCd0JDQmiDQnNCY0KXQkNCI0JvQngor0KfQkNCd0JDQmiDQnNCY0KDQmtCeCivQp9CQ0J3QkNCaINCc0J7QnNCn0JjQm9CeCivQp9CQ0J3QkNCaINCd0JXQktCV0J3QmtCQCivQp9CQ0J3QkNCaINCd0JjQmtCe0JvQkAor0KfQkNCd0JDQmiDQndCY0JrQntCb0JAKK9Cn0JDQndCQ0Jog0J3QmNCa0J7Qm9CQCivQp9CQ0J3QkNCaINCe0JvQmNCS0JXQoNCQCivQp9CQ0J3QkNCaINCS0JXQidCa0J4KK9Cn0JDQndCQ0Jog0JLQldCh0JXQm9CY0J0KK9Cn0JDQndCQ0Jog0JLQo9Ca0JDQqNCY0J0KK9Cn0JDQndCT0JDQm9CY0Isg0JTQo9Co0JDQnQor0KfQkNCd0JjQiyDQidCY0InQkNCd0JAKK9Cn0JDQndCY0Isg0JzQmNCb0J7QqAor0KfQkNCd0JjQiyDQntCh0KLQntCI0JAKK9Cn0JDQitCV0JLQkNCmINCo0JDQoNCb0J7QotCQCivQp9CQ0IrQmCDQkNCd0JTQoNCY0IjQkAor0KfQkNCK0Jgg0JPQkNCR0JgKK9Cn0JDQitCYINCT0JDQkdCe0KAKK9Cn0JDQitCYINCT0JjQl9CV0JvQkAor0KfQkNCK0Jgg0JjQoNCV0J3QkAor0KfQkNCK0Jgg0JjQoNCV0J3QkAor0KfQkNCK0Jgg0IjQkNCd0JrQngor0KfQkNCK0Jgg0JrQkNCg0JvQngor0KfQkNCK0Jgg0JvQkNCh0JvQngor0KfQkNCK0Jgg0JvQkNCh0JvQngor0KfQkNCK0Jgg0J3QkNCU0JAKK9Cn0JDQitCYINCh0JDQnNCj0JXQmwor0KfQkNCK0Jgg0KHQotCV0JLQkNCdCivQp9CQ0IrQmCDQodCi0JXQktCQ0J0KK9Cn0JDQitCYINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQitCYINCX0J7Qm9Ci0JDQnQor0KfQkNCK0Jgg0JfQo9CX0JDQndCQCivQp9CQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cn0JDQndCa0J7QktCY0Isg0JHQntCo0JrQngor0KfQkNCd0JrQntCS0JjQiyDQkdCe0IjQkAor0KfQkNCd0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JUKK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JUKK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JUKK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQp9CQ0J3QmtCe0JLQmNCLINCI0J7QktCQCivQp9CQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQp9CQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KfQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQp9CQ0J3QmtCe0JLQmNCLINCc0JjQmtCQCivQp9CQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cn0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KfQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQkNCd0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cn0JDQndCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cn0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoCDQnNCgCivQp9CQ0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cn0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cn0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cn0JDQndCa0J7QktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9Cn0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQp9CQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0JDQndCa0J7QktCY0Isg0JfQm9CQ0KLQkAor0KfQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQp9CQ0J8g0JDQndCi0JDQmwor0KfQkNCf0JDQndCU0JAg0IjQntCh0JjQnwor0KfQkNCf0JXQidCQINCU0KDQkNCT0JDQnQor0KfQkNCf0JXQidCQINCI0JDQnSDQlNCgCivQp9CQ0J/QldCJ0JAg0IjQntCS0JDQnQor0KfQkNCf0JXQidCQINCf0JDQktCb0JUKK9Cn0JDQn9Ca0J4g0IjQo9Cb0JjQiNCQ0J0KK9Cn0JDQn9Ca0J4g0JzQmNCb0J7QoNCQ0JQKK9Cn0JDQn9Ca0J4g0JzQmNCg0J7QodCb0JDQkgor0KfQkNCf0JrQniDQndCV0KHQotCe0KAKK9Cn0JDQn9CeINCQ0JTQkNCcCivQp9CQ0J/QniDQmNCb0JjQiNCQCivQp9CQ0J/QniDQiNCQ0J3QntCoCivQp9CQ0J/QniDQnNCQ0KDQmNCI0JAKK9Cn0JDQn9CeINCd0JDQlNCQCivQp9CQ0J/QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0JDQoNCQ0J/QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cn0JDQodCK0Jgg0JXQoNCW0JXQkdCV0KIKK9Cn0JDQodCK0Jgg0KTQldCg0JXQndCmCivQp9CQ0KHQotCS0JXQnSDQiNCj0JvQmNCI0JDQndCQCivQp9CQ0KIg0JDQndCU0KDQmNCI0JAKK9Cn0JDQotCQ0JvQmNCd0JDQpiDQnNCY0JvQkNCdCivQp9CQ0KLQkNCb0JjQndCQ0KYg0J3QmNCa0J7Qm9CQCivQp9CQ0KLQkNCb0J7QkiDQodCi0J7QiNCQ0J0KK9Cn0JDQotCb0JDQiNCQINCh0KLQkNCd0JAKK9Cn0JDQotCb0JDQmiDQntCb0JjQktCV0KDQkAor0KfQkNCi0KPQqCDQl9Cb0JDQotCa0J4KK9Cn0JDQo9Co0JXQktCY0Isg0JrQldCc0JDQmwor0KfQkNCj0KjQldCS0JjQiyDQnNCY0JTQpdCQ0KIKK9Cn0JDQo9Co0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cn0JDQktCY0Isg0KjQotCV0KTQmNCm0JAKK9Cn0JDQktCY0Isg0JbQmNCS0JrQkAor0KfQkNCS0JjQiyDQgtCe0KDQgtCVCivQp9CQ0JLQmNCLINCR0J7QqNCa0J4KK9Cn0JDQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQp9CQ0JLQmNCLINCU0JXQiNCQ0J0KK9Cn0JDQktCY0Isg0JTQldCI0JDQnQor0KfQkNCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KfQkNCS0JjQiyDQlNCg0JDQk9CeCivQp9CQ0JLQmNCLINCT0J7QoNCU0JDQndCQCivQp9CQ0JLQmNCLINCT0J7QoNCU0JDQndCQCivQp9CQ0JLQmNCLINCa0KDQodCi0JDQnQor0KfQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KfQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KfQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KfQkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cn0JDQktCY0Isg0JzQmNCb0JXQndCQCivQp9CQ0JLQmNCLINCc0JjQoNCa0J4KK9Cn0JDQktCY0Isg0J/QldCi0JDQoAor0KfQkNCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KfQkNCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KfQkNCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9CQ0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0JDQktCY0Isg0KHQntCa0JAKK9Cn0JDQktCY0Isg0KLQntCo0JAKK9Cn0JDQktCY0Isg0JLQldCb0JjQl9CQ0KAKK9Cn0JDQktCY0Isg0JLQm9CQ0JTQngor0KfQkNCS0JjQiyDQl9Ce0KDQmtCQCivQp9CQ0JfQmNCcINCn0JXQm9CV0JHQmNCI0JAKK9Cn0JXQp9CV0Jog0JTQoNCQ0JPQmNCm0JAKK9Cn0JXQp9CV0Jog0JLQmNCb0JjQnAor0KfQldCn0KPQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCn0KPQmiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0JXQp9Cj0Jog0JzQmNCb0J7QqAor0KfQldCn0KPQmiDQodCb0JDQktCY0KbQkAor0KfQldCn0KPQmiDQodCi0JXQktCQ0J0KK9Cn0JXQqNCJ0JDQoCDQgtCj0KDQkAor0KfQldCo0InQkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9CV0KjQidCQ0KAg0JTQkNCg0JjQndCa0JAKK9Cn0JXQqNCJ0JDQoCDQiNCe0KHQmNCfCivQp9CV0KjQidCQ0KAg0IjQntCS0JDQnQor0KfQldCo0InQkNCgINCh0KLQldCS0JDQnQor0KfQldCo0InQldCS0JjQiyDQlNCj0KjQkNCdCivQp9CV0KjQidCV0JLQmNCLINCa0J7QodCi0JAKK9Cn0JXQqNCJ0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cn0JXQqNCJ0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQp9CV0KjQidCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQp9CV0KjQidCV0JLQmNCLINCh0KLQkNCd0JrQngor0KfQldCR0JDQpiDQidCj0JHQmNCm0JAKK9Cn0JXQkdCQ0KYg0J/QkNCS0JvQlQor0KfQldCR0JXQj9CY0Isg0JzQmNCb0JDQnQor0KfQldCR0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JXQkdCX0JDQnSDQn9CQ0J3QotCQCivQp9CV0JTQmNCLINCg0JXQj9CeCivQp9CV0JPQkNCgINCR0J7QltCeCivQp9CV0JPQkNCgINCU0JXQodCQ0J3QmtCQCivQp9CV0JPQkNCgINCU0KDQkNCT0JDQnQor0KfQldCT0JDQoCDQnNCY0JvQntCoCivQp9CV0JPQkNCgINCc0JjQoNCa0J4KK9Cn0JXQk9CQ0KAg0J/QkNCd0JUKK9Cn0JXQk9CQ0KAg0KHQoNCV0KLQmtCeCivQp9CV0JPQkNCgINCh0KLQldCS0JDQndCY0IjQkAor0KfQldCT0JDQoCDQodCS0JXQotCb0JDQndCQCivQp9CV0JPQkNCgINCi0J7QlNCe0KAKK9Cn0JXQpSDQkNCd0KLQntCdCivQp9CV0KUg0IjQntCW0JXQpAor0KfQldClINCI0J7QodCY0J8KK9Cn0JXQpSDQiNCe0JLQkNCdCivQp9CV0KUg0JzQmNCa0JvQntCoCivQp9CV0KUg0KHQotCQ0J3QmtCQCivQp9CV0KUg0JfQm9CQ0KLQkAor0KfQldCl0JDQmiDQmtCQ0JvQnNCQ0J0g0JTQoAor0KfQldCl0J7QkiDQmNCS0JDQnQor0KfQldCl0J7QkiDQn9CV0KLQkNCgCivQp9CV0IjQntCS0JjQiyDQkdCY0KHQldCg0JrQkAor0KfQldCI0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQldCI0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cn0JXQiNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JXQmtCQ0J3QntCS0JjQiyDQltCY0JLQkNCd0JAKK9Cn0JXQmtCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KfQldCa0JUg0JTQldCW0JUKK9Cn0JXQmtCVINCc0JDQoNCY0IjQkAor0KfQldCa0JUg0KHQndCV0JbQkNCd0JAKK9Cn0JXQmtCVINCh0KLQldCS0JDQnQor0KfQldCa0JXQoNCV0JLQkNCmINCR0KDQkNCd0JrQngor0KfQldCa0JXQoNCY0J3QkNCmINCU0KPQqNCQ0J0KK9Cn0JXQmtCV0KDQmNCd0JDQpiDQl9Ce0KDQkNCdCivQp9CV0JrQmCDQlNCQ0KDQmNCd0JrQkAor0KfQldCa0Jgg0JTQkNCS0JjQlAor0KfQldCa0JjQiyDQkNCd0JAKK9Cn0JXQmtCY0Isg0JTQkNCg0JjQndCa0JAKK9Cn0JXQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQp9CV0JrQmNCLINCU0KDQkNCT0JDQnQor0KfQldCa0JjQiyDQmNCb0JjQiNCQCivQp9CV0JrQmNCLINCI0J7QktCQ0J0KK9Cn0JXQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0JXQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0JXQmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cn0JXQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cn0JXQmtCY0Isg0JzQntCc0KfQmNCb0J4KK9Cn0JXQmtCY0Isg0KHQkNCS0JAKK9Cn0JXQmtCY0Isg0KHQkNCS0JAKK9Cn0JXQmtCY0Isg0JLQkNCh0JAKK9Cn0JXQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9Cn0JXQmtCg0I/QmNCdINCg0JDQlNCY0KHQm9CQ0JIKK9Cn0JXQm9CQ0KAg0KHQotCV0JLQkNCdCivQp9CV0JvQldCR0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCb0JXQkdCY0Isg0JHQntCW0J4KK9Cn0JXQm9CV0JHQmNCLINCY0JvQmNCI0JAKK9Cn0JXQm9CV0JHQmNCLINCc0JjQm9Ce0KDQkNCUCivQp9CV0JvQldCR0JjQiyDQnNCe0JzQp9CY0JvQngor0KfQldCb0JXQkdCY0Isg0J7Qm9CT0JAKK9Cn0JXQm9CV0JHQmNCLLdCi0KPQkdCY0Isg0JLQldCh0J3QkAor0KfQldCb0JXQkdCY0Isg0JfQntCg0JrQkAor0KfQldCb0JXQmtCV0KLQmNCLINCI0J7QktCQ0J0KK9Cn0JXQm9CV0JrQldCi0JjQiyDQiNCe0JLQkNCdCivQp9CV0JvQldCa0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KfQldCb0JXQmtCV0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0JXQm9CV0JrQldCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0KfQldCb0JXQmtCV0KLQmNCLINCi0JDQnNCQ0KDQkAor0KfQldCb0JXQndCQ0Jog0JrQkNCi0JDQm9CY0J0KK9Cn0JXQm9CV0KHQndCY0Jog0JTQoNCQ0JPQo9Ci0JjQnQor0KfQldCb0JjQiyDQkdCQ0J3QlQor0KfQldCb0JjQiyDQlNCY0J3QmtCQCivQp9CV0JvQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KfQldCb0JjQiyDQmNCb0JjQiNCQCivQp9CV0JvQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cn0JXQm9CY0Isg0InQo9CR0JjQndCa0J4KK9Cn0JXQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cn0JXQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9Cn0JXQm9CY0Isg0J/QkNCS0JvQlQor0KfQldCb0JjQiyDQodCg0ILQkNCdCivQp9CV0JvQmNCLINCh0KLQkNCd0JrQniDQlNCgCivQp9CV0JvQmNCLINCS0JXQoNCQCivQp9CV0JvQmNCm0JAg0IjQldCb0JXQndCQCivQp9CV0JvQmNCa0J7QktCY0Isg0JXQnNCY0JsKK9Cn0JXQm9Ce0KTQmNCT0JAg0JDQndCi0J7QndCY0IjQkAor0KfQldCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cn0JXQm9Ce0JLQodCa0Jgg0JDQndCU0KDQldCICivQp9CV0JvQntCS0KHQmtCYINCU0KDQkNCT0JjQptCQCivQp9CV0JzQkNCdINCC0J7QoNCC0JUKK9Cn0JXQnNCQ0J0g0ILQo9Cg0JAKK9Cn0JXQnNCQ0J0g0JDQndCU0KDQmNCI0JAKK9Cn0JXQnNCQ0J0g0JTQkNCd0JjQm9CeCivQp9CV0JzQkNCdINCT0J7QoNCU0JDQndCQCivQp9CV0JzQkNCdINCI0JDQnQor0KfQldCc0JDQnSDQiNCe0JLQkNCdCivQp9CV0JzQkNCdINCc0JjQqNCQCivQp9CV0JzQkNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0JXQnNCQ0J0g0J7Qm9CT0JAKK9Cn0JXQnNCQ0J0g0KDQo9CW0JXQndCa0JAKK9Cn0JXQnNCQ0J0g0KHQkNCc0KPQldCbCivQp9CV0JzQkNCdINCh0KLQldCS0JDQnQor0KfQldCc0JDQnSDQotCV0KDQldCX0JAKK9Cn0JXQnNCR0JjQiyDQnNCY0JvQkNCdCivQp9CV0JzQldCg0JUg0JXQoNCW0JXQkdCV0KIKK9Cn0JXQnNCV0KDQlSDQm9CQ0IjQntCoCivQp9CV0JzQldCg0JvQmNCLINCf0JXQotCQ0KAKK9Cn0JXQndCU0JXQqCDQkdCg0JDQndCa0J4KK9Cn0JXQndCV0IjQkNCmINCW0JjQktCQ0J0KK9Cn0JXQndCV0IjQkNCmINCT0KDQo9CI0JAKK9Cn0JXQndCV0IjQkNCmINCJ0KPQkdCY0KbQkAor0KfQldCd0JXQiNCQ0KYg0InQo9CR0JjQptCQCivQp9CV0J3QldCI0JDQpiDQnNCY0JvQntCoCivQp9CV0J3QldCI0JDQpiDQnNCY0JvQo9Ci0JjQnQor0KfQldCd0JXQiNCQ0KYg0KLQntCc0JjQodCb0JDQkgor0KfQldCd0JXQiNCQ0KYg0JLQldCb0JjQodCb0JDQkgor0KfQldCd0JPQldCg0Jgg0JDQotCY0JvQkAor0KfQldCd0JPQmNCLINCc0JDQoNCY0IjQkAor0KfQldCd0KPQqNCQINCT0JXQntCg0JPQmNCd0JAKK9Cn0JXQn9Cn0JDQitCYINCc0JjQoNCI0JDQndCQCivQp9CV0J/QlSDQkNCd0JjQptCQCivQp9CV0J/QmCDQiNCQ0J3QntCoCivQp9CV0J/QmCDQm9CQ0KHQm9CeCivQp9CV0J/QmCDQnNCQ0KDQmNCI0JAKK9Cn0JXQn9CYINCd0JDQndCU0J7QoAor0KfQldCf0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQp9CV0J/QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0JXQn9CY0Isg0KHQnNCY0InQkAor0KfQldCf0JjQiyDQktCV0JvQmNCc0JjQoAor0KfQldCf0JjQnSDQktCY0JrQotCe0KAKK9Cn0JXQn9Cb0JUg0KHQotCV0JLQkNCdCivQp9CV0J/QoNCV0JPQmCDQmNCg0JXQndCQCivQp9CV0J/QoNCV0JPQmCDQiNCj0JvQmNCI0JAKK9Cn0JXQn9Ch0JrQmCDQiNCe0JLQkNCdCivQp9CV0J/QodCa0Jgg0KHQotCV0JLQkNCdCivQp9CV0KAg0KjQkNCd0JTQntCgCivQp9CV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cn0JXQoCDQpNCg0JDQitCQCivQp9CV0KAg0JvQkNCU0JjQodCb0JDQkgor0KfQldCgINCc0JDQoNCY0IjQkAor0KfQldCg0JXQmtCe0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KfQldCg0JXQmtCe0JLQmNCLINCg0JjQodCi0J4KK9Cn0JXQoNCV0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cn0JXQoNCV0JrQntCS0JjQiyDQktCQ0KHQmtCg0KHQmNCI0JUKK9Cn0JXQoNCV0JLQmNCLINCY0JLQkNCdCivQp9CV0KDQldCS0JjQiyDQktCV0KDQmNCm0JAKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCg0JXQktCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cn0JXQoNCV0JLQmNCm0JrQmCDQiNCe0JLQkNCdCivQp9CV0KDQldCS0JjQptCa0Jgg0InQo9CR0JjQptCQCivQp9CV0KDQldCS0JjQptCa0Jgg0JzQmNCi0JAKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQndCQ0JTQkAor0KfQldCg0JXQktCY0KbQmtCYINCg0JDQlNCQCivQp9CV0KDQldCS0JjQptCa0Jgg0KDQo9CW0JjQptCQCivQp9CV0KDQldCS0JjQptCa0Jgg0KHQotCV0JLQkNCdCivQp9CV0KDQldCS0JjQptCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQp9CV0KDQldCS0JjQptCa0Jgg0KLQldCe0JTQntCgCivQp9CV0KDQk9CVINCR0JXQm9CQCivQp9CV0KDQmCDQiNCe0JbQldCkCivQp9CV0KDQmtCV0Jcg0JHQntCT0JTQkNCd0JrQkAor0KfQldCg0JrQldCXINCU0KPQqNCQ0J3QmtCQCivQp9CV0KDQmtCV0Jcg0JXQktCY0KbQkAor0KfQldCg0JrQldCXINCI0J7QktCQ0J3QmtCQCivQp9CV0KDQmtCV0Jcg0KHQotCV0JLQkNCdCivQp9CV0KDQmtCV0JfQntCSINCU0KPQqNCQ0J3QmtCQCivQp9CV0KDQmtCY0Isg0J7QodCc0JDQnQor0KfQldCg0JrQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cn0JXQoNCd0KfQldCmINCS0JXQoNCQCivQp9CV0KDQndCQ0Jog0JXQktCQCivQp9CV0KDQndCV0Jot0JDQn9Cg0J4g0JbQo9CW0JDQndCQCivQp9CV0KDQndCV0JrQkCDQodCi0JXQktCQ0J0KK9Cn0JXQoNCd0Jgg0JjQqNCi0JLQkNCdCivQp9CV0KDQndCY0KfQldCaINCV0KDQltCV0JHQldCiCivQp9CV0KDQndCY0KfQldCaINCY0KjQotCS0JDQnQor0KfQldCg0J3QmNCn0JXQmiDQmNCo0KLQktCQ0J0KK9Cn0JXQoNCd0JjQiyDQlNCj0KjQkNCdCivQp9CV0KDQndCY0Jog0JDQotCY0JvQkAor0KfQldCg0J3QmNCaINCI0J7QltCV0KQKK9Cn0JXQoNCd0JjQmiDQnNCQ0KDQk9CY0KLQkAor0KfQldCg0J3QmNCS0JXQpiDQotCQ0KLQiNCQ0J3QkAor0KfQldCg0IrQkCDQnNCQ0KDQmNCI0JAKK9Cn0JXQoNCK0JAg0JzQkNCi0JjQm9CU0JAKK9Cn0JXQoNCK0JDQmiDQm9CQ0JTQmNCh0JvQkNCSCivQp9CV0KDQitCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0KfQldCg0IrQldCS0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0KfQldCg0IrQo9CoINCI0JDQmtCY0JwKK9Cn0JXQoNCd0J7Qk9Cj0JHQntCSINCR0J7QoNCY0KEKK9Cn0JXQoNCd0KPQqCDQmNCR0J7QidCQCivQp9CV0KDQndCj0Kgg0KLQmNCR0J7QoAor0KfQldCg0J7QktCY0Isg0KDQkNCi0JrQngor0KfQldCg0KPQkdCP0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQp9CV0KDQo9CR0I/QmNCLINCI0J7QktCQ0J0KK9Cn0JXQoNCj0JHQj9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cn0JXQoNCj0JHQj9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cn0JXQoNCj0J/QntCW0JjQiyDQntCb0JPQkAor0KfQldCg0JLQkNCg0Jgg0JXQoNCW0JXQkdCV0KIKK9Cn0JXQoNCS0JXQitCQ0Jog0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cn0JXQoNCS0JXQitCQ0Jog0IjQntCh0JjQnwor0KfQldCg0JLQldCK0JDQmiDQidCj0JHQmNCm0JAKK9Cn0JXQoNCS0JXQitCQ0Jog0J7Qm9CT0JAKK9Cn0JXQoNCS0JXQitCQ0Jog0J/QldCi0JDQoAor0KfQldCg0JLQldCK0JDQmiDQl9CQ0JPQntCg0JrQkAor0KfQldCg0JLQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCg0JLQldCd0JrQniDQkNCd0JAKK9Cn0JXQodCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cn0JXQotCVINCQ0KDQntCdINCU0JjQn9CbINCY0J3Qkwor0KfQldCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQldCi0JvQlSDQnNCQ0KDQmNCI0JAKK9Cn0JXQotCd0JjQmiDQkdCe0JPQlNCQ0J0KK9Cn0JXQotCd0JjQmiDQiNCe0JLQkNCdCivQp9CV0KLQndCY0Jog0JfQkNCT0J7QoNCa0JAKK9Cn0JXQotCd0JjQmtCe0JLQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0J7QldCmCivQp9CV0KLQntCI0JXQktCY0Isg0JzQmNCb0JrQkAor0KfQldCi0J7QiNCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cn0JXQktCQ0KDQmCDQgtCe0KDQgtCVCivQp9CV0JLQkNCg0Jgg0JDQndCi0JDQmwor0KfQldCS0JDQoNCYINCc0JDQoNCY0IjQkAor0KfQldCS0JDQoNCYINCc0JjQpdCQ0IjQm9CeCivQp9CV0JLQkNCg0Jgg0JfQntCb0KLQkNCdCivQp9CY0KfQkCDQiNCe0JLQkNCdCivQp9CY0KfQkCDQndCY0JrQntCb0JAKK9Cn0JjQp9CQ0Jgg0IjQntCW0JXQpAor0KfQmNCn0JDQmiDQkNCd0JrQmNCm0JAKK9Cn0JjQp9CQ0Jog0JzQmNCg0JrQngor0KfQmNCn0JDQmtCY0J0g0JDQndCC0JXQm9Ca0JAKK9Cn0JjQp9CQ0KDQldCS0JjQiyDQodCQ0JLQngor0KfQmNCn0JXQmiDQlNCQ0J3QmNCI0JXQmwor0KfQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQp9CY0KfQmNCLINCc0JjQm9CVCivQp9CY0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0JjQp9Ca0J7QktCY0Isg0KHQktCV0KLQmtCeCivQp9CY0KfQntCS0JDQp9Ca0Jgg0JHQntCg0JjQodCb0JDQkgor0KfQmNCn0J7QktCQ0KfQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0KfQmNCn0J7QktCQ0KYg0ILQntCg0ILQlQor0KfQmNCn0J7QktCQ0KYg0JrQntCh0KLQkAor0KfQmNCn0J7QktCQ0KYg0JzQmNCb0JjQptCQCivQp9CY0KfQntCS0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQp9CY0KfQntCS0JDQpiDQktCb0JDQlNCY0JzQmNCgCivQp9CY0JbQldCaINCf0JDQktCb0JUKK9Cn0JjQltCV0Jog0KHQm9CQ0JLQntCc0JjQoAor0KfQmNCW0JzQldCo0JjQiNCQINCY0JLQkNCdCivQp9CY0JHQoNCYINCI0JDQndCe0KgKK9Cn0JjQkdCg0Jgg0J/QmNCg0J7QqNCa0JAKK9Cn0JjQldCkINCI0JDQnQor0KfQmNCV0KQg0JzQkNCg0KLQmNCdCivQp9CY0JXQpCDQodCQ0JzQo9CV0JsKK9Cn0JjQpdCYINCk0JXQoNCV0J3Qpgor0KfQmNCl0Jgg0IjQkNCd0J7QqAor0KfQmNCl0Jgg0IjQkNCd0J7QqAor0KfQmNCaINCQ0J3QlNCg0JjQiNCQCivQp9CY0Jog0JjQm9CY0IjQkAor0KfQmNCaINCI0JXQndCVCivQp9CY0Jog0JfQntCb0KLQkNCdCivQp9CY0JrQmCDQiNCe0KHQmNCfCivQp9CY0JrQmCDQnNCQ0KDQmNCI0JAKK9Cn0JjQmtCY0Isg0ILQntCg0ILQlQor0KfQmNCa0JjQiyDQptCS0JXQotCe0JzQmNCgCivQp9CY0JrQmNCLINCU0KDQkNCT0JjQptCQCivQp9CY0JrQmNCLINCV0JzQmNCbCivQp9CY0JrQmNCLINCV0JLQmNCm0JAKK9Cn0JjQmtCY0Isg0JzQmNCb0JDQnQor0KfQmNCa0JjQiyDQndCY0JrQntCb0JAKK9Cn0JjQmtCY0Isg0KHQotCV0JLQkNCdCivQp9CY0JrQntCoINCW0KPQltCQ0J3QkAor0KfQmNCa0J7QqCDQgtCV0KDQggor0KfQmNCa0J7QqCDQgtCe0KDQgtCVCivQp9CY0JrQntCoINCV0KDQltCV0JHQldCiCivQp9CY0JrQntCoINCV0KDQltCV0JHQldCiCivQp9CY0JrQntCoINCk0JXQoNCV0J3Qpgor0KfQmNCa0J7QqCDQiNCe0KHQmNCfINCU0KAKK9Cn0JjQmtCe0Kgg0IjQo9Cb0JjQiNCQ0J3QkAor0KfQmNCa0J7QqCDQm9CQ0JTQmNCh0JvQkNCSCivQp9CY0JrQntCoINCb0JXQpdCV0JsKK9Cn0JjQmtCe0Kgg0JzQkNCg0JjQiNCQCivQp9CY0JrQntCI0JXQktCY0Isg0JLQmNCd0JrQngor0KfQmNCa0J7QktCY0Isg0KHQoNCV0KLQmtCeCivQp9CY0JrQktCQ0KAg0JrQkNCg0JvQngor0KfQmNCb0JDQkyDQiNCQ0J3QntCoCivQp9CY0JvQkNCTINCd0JDQndCU0J7QoAor0KfQmNCb0JDQkyDQndCQ0J3QlNCe0KAKK9Cn0JjQm9CV0JMg0JXQktCQCivQp9CY0JvQmNCLINCQ0JLQlNCeCivQp9CY0JvQmNCLINCY0KjQotCS0JDQnQor0KfQmNCb0JjQiyDQiNCe0KHQmNCfCivQp9CY0JvQmNCLINCI0KPQm9CY0JDQndCQCivQp9CY0JvQmNCLINCc0JDQm9CS0JjQndCQCivQp9CY0JvQmNCLINCc0JDQoNCa0J4KK9Cn0JjQm9CY0Jog0JDQndCa0JAKK9Cn0JjQm9CY0Jog0JjQm9Ce0J3QmtCQCivQp9CY0JvQmNCd0JPQmNCg0JjQoSDQn9CQ0JLQm9CVCivQp9CY0J3Qp9CQ0Jog0JPQkNCR0J7QoAor0KfQmNCd0KfQo9Cg0JDQmiDQnNCY0KXQkNCI0JvQngor0KfQmNCd0KfQo9Cg0JDQmiDQn9CQ0JLQm9CVCivQp9CY0J3Qp9Cj0KDQkNCaINCh0KLQldCS0JDQnQor0KfQmNCd0KfQo9Cg0JXQmiDQkdCe0KjQmtCeCivQp9CY0J3QlNCg0JDQmiDQlNCQ0KPQogor0KfQmNCd0JTQoNCQ0Jog0KHQkNCd0JjQiNCQCivQp9CY0J8g0JzQkNCi0J4KK9Cn0JjQn9CQ0Jot0KTQkNCX0JXQmtCQ0Kgg0JjQkdCe0IjQkAor0KfQmNCf0JUg0ILQntCg0ILQlQor0KfQmNCf0JUg0JXQoNCW0JXQkdCV0KIKK9Cn0JjQn9CVINCV0KDQltCY0JrQkAor0KfQmNCf0JUg0KTQoNCQ0IrQkAor0KfQmNCf0JUg0JjQoNCV0J0KK9Cn0JjQn9CVINCI0JDQndCe0KgKK9Cn0JjQn9CVINCI0J7QodCY0J8KK9Cn0JjQn9CVINCI0KPQm9CY0IjQkNCd0JAKK9Cn0JjQn9CVINCb0JDQodCb0J4KK9Cn0JjQn9CVINCb0JDQodCb0J4KK9Cn0JjQn9CVINCc0JDQoNCY0IjQkAor0KfQmNCf0JUg0JzQkNCg0KLQkAor0KfQmNCf0JUg0JzQmNCl0JDQiQor0KfQmNCf0JUg0JzQmNCl0JDQiQor0KfQmNCf0JUg0KHQotCI0JXQn9CQ0J0KK9Cn0JjQn9CY0Isg0JrQkNCi0JjQptCQCivQp9CY0J/QmtCQ0KAg0JDQndCU0KDQldCICivQp9CY0J/QmtCQ0KAg0KHQotCV0JLQkNCdCivQp9CY0J/Qm9CY0Isg0JvQkNCX0JDQoAor0KfQmNCf0JvQmNCLINCc0JjQm9CQ0J0KK9Cn0JjQn9Cb0JjQiyDQktCV0KDQkAor0KfQmNCf0JvQmNCLINCS0JjQlNCQCivQp9CY0KDQpSDQlNCV0JbQlQor0KfQmNCg0KUg0JLQkNCh0JrQkAor0KfQmNCg0JjQiyDQiNCe0JbQldCkCivQp9CY0KHQkNCgINCk0JXQoNCV0J3QpiDQlNCY0J/QmyDQmNCd0JMKK9Cn0JjQodCQ0KAg0JvQkNCh0JvQngor0KfQmNCi0JvQo9Cn0JDQndCY0J0g0JzQmNCb0JjQptCQCivQp9CY0JLQp9CY0Isg0JXQoNCW0JXQkdCV0KIKK9Cn0JjQktCn0JjQiyDQnNCY0KXQkNCI0JvQngor0KfQmNCS0KfQmNCLINCc0JjQm9CVCivQp9CY0JLQp9CY0Isg0JzQmNCJ0JAKK9Cn0JjQktCn0JjQiyDQoNCQ0JTQntCc0JjQoAor0KfQmNCS0KfQmNCLINCh0JDQktCeCivQp9CY0JLQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cn0JjQktCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQp9CY0JfQnNCQ0JTQmNCQINCT0KPQodCi0JDQkgor0KfQmNCX0JzQkNCU0JjQkCDQktCV0KDQntCd0JjQmtCQCivQp9CY0JfQnNCQ0JTQmNCI0JAg0ILQo9Cb0JAKK9Cn0JjQl9Cc0JDQlNCY0IjQkCDQmNCo0KLQktCQ0J0KK9Cn0JjQl9Cc0JDQlNCY0IjQkCDQiNCQ0J3QntCoCivQp9CY0JfQnNCQ0JTQmNCI0JAg0JrQkNCg0J7QiQor0KfQmNCX0JzQkNCU0JjQiNCQINCc0JjQmtCYCivQp9CY0JfQnNCQ0KAg0JDQndCQCivQp9CY0JfQnNCQ0KAg0JDQndCY0KbQkAor0KfQmNCX0JzQkNCgINCI0JDQndCa0J4KK9Cn0JjQl9Cc0JDQoCDQiNCe0JDQmtCY0JwKK9Cn0JjQl9Cc0JDQoCDQm9CQ0IjQntCoCivQp9CY0JfQnNCQ0KAg0JzQkNCg0JjQiNCQCivQp9CY0JfQnNCQ0KAg0JzQmNCg0JrQngor0KfQmNCX0JzQkNCgINCf0JDQktCb0JUKK9Cn0JjQl9Cc0JDQoCDQodCi0JXQktCQ0J0KK9Cn0JjQl9Cc0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQp9CY0JfQnNCV0KjQmNCI0JAg0JzQkNCT0JTQkAor0KfQmNCX0JzQmNCLINCQ0J3QmNCm0JAKK9Cn0JjQl9Cc0JjQiyDQmNCS0JDQnQor0KfQmNCX0JzQmNCLINCg0JDQlNCQCivQp9CY0JfQnNCY0Isg0JfQntCg0JAKK9Cn0JjQl9Cc0J7QktCY0Isg0JLQmNCU0JDQmgor0KfQnNCV0JvQmNCaINCc0JDQoNCi0JjQnQor0KfQnNCV0JvQmNCaINCg0JDQodCi0JjQodCb0JDQkgor0KfQntCn0JDQiCDQodCj0JvQngor0KfQntCo0JrQntCSINCd0JDQlNCQCivQp9Ce0JDQqCDQmNCg0JXQndCQCivQp9Ce0JHQkNCdINCI0J7QnQor0KfQntCR0JDQnSDQiNCe0JLQkNCdCivQp9Ce0JHQkNCdINCI0J7QktCQ0J0KK9Cn0J7QkdCQ0J0g0JvQmNCU0JjQiNCQCivQp9Ce0JHQkNCdINCc0JDQoNCY0IjQkAor0KfQntCR0JDQnSDQndCY0JrQowor0KfQntCR0JDQndCe0JIg0JbQmNCS0JrQkAor0KfQntCR0JDQndCe0JIg0JHQmNCJ0JDQndCQCivQp9Ce0JHQkNCd0J7QkiDQlNCg0JDQk9CY0KbQkAor0KfQntCR0JDQndCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0KfQntCR0JDQndCe0JIg0JTQo9Co0JDQnQor0KfQntCR0JDQndCe0JIg0IjQldCb0JXQndCQCivQp9Ce0JHQkNCd0J7QkiDQidCY0InQkNCd0JAKK9Cn0J7QkdCQ0J3QntCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cn0J7QkdCQ0J3QntCSINCc0JjQidCa0JAKK9Cn0J7QkdCQ0J3QntCSINCg0KPQltCY0KbQkAor0KfQntCR0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KfQntCR0JDQndCe0JIg0KHQktCV0KLQngor0KfQntCR0JDQndCe0JIg0JLQkNCh0JAKK9Cn0J7QkdCQ0J3QntCSINCS0JvQkNCU0JjQodCb0JDQkgor0KfQntCR0JDQndCe0JIg0JfQntCg0JDQnQor0KfQntCR0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQp9Ce0JHQkNCd0J7QktCY0Ist0JPQldCXINCc0JDQoNCY0IjQkAor0KfQntCR0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQp9Ce0JHQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQp9Ce0JHQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQp9Ce0JHQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0KfQntCR0JDQndCe0JLQmNCLINCh0JDQktCeCivQp9Ce0JHQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQntCR0JDQndCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQp9Ce0JHQkNCd0KHQmtCYINCU0KDQkNCT0JDQnQor0KfQntCR0JDQndCh0JrQmCDQnNCY0JvQldCd0JAKK9Cn0J7QkdCQ0J3QodCa0Jgg0KDQkNCU0J7QiNCa0JAKK9Cn0J7QkdCY0Isg0KDQldCJ0JAKK9Cn0J7QkdCY0Isg0KHQotCg0JDQpdCY0IrQkAor0KfQntCR0JjQiyDQotCY0JzQntCi0JXQiAor0KfQntCR0J7QoiDQmNCb0J7QndCa0JAKK9Cn0J7QkdCg0JTQkCDQiNCQ0J3QmtCeCivQp9Ce0JHQoNCU0JAg0IjQkNCd0JrQngor0KfQntCI0JjQiyDQodCi0JXQpNCQ0J3QmNCU0JAKK9Cn0J7QmtCQINCY0JLQkNCd0JrQkAor0KfQntCa0JDQqCDQm9Cj0KbQmNCI0JAKK9Cn0J7QmtCQ0J0g0J3QmNCa0J7Qm9CQCivQp9Ce0JrQkNCd0JjQptCQINCh0JDQktCQCivQp9Ce0JrQkNCd0JjQptCQINCh0J7QpNCY0IjQkAor0KfQntCa0JjQiyDQnNCY0JvQkNCdCivQp9Ce0JrQidCQ0KIg0JfQlNCV0J3QmtCQCivQp9Ce0JrQoNCb0JjQiyDQkdCQ0KDQkdCQ0KDQkAor0KfQntCa0KDQm9CY0Isg0IjQntCh0JjQnwor0KfQntCb0JDQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQntCb0JDQmiDQlNCg0JDQk9Ce0InQo9CRCivQp9Ce0JvQkNCaINCU0KDQkNCT0J7QidCj0JEKK9Cn0J7Qm9CQ0Jog0JPQntCg0JDQnQor0KfQntCb0JDQmiDQmtCg0JjQodCi0JjQndCQCivQp9Ce0JvQkNCaINCc0JjQpdCQ0IjQm9CeCivQp9Ce0JvQkNCaLdCc0JjQpdCQ0JvQmNCaINCc0JDQoNCY0IjQkAor0KfQntCb0JDQmtCe0JIg0JzQmNCb0JDQnQor0KfQntCb0JDQmtCe0JIg0JzQmNCb0JUKK9Cn0J7Qm9CQ0JrQntCSINCf0JDQktCb0JUKK9Cn0J7Qm9CQ0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KfQntCb0JDQmtCe0JLQmNCLINCc0J7QnNCQCivQp9Ce0JvQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQp9Ce0JvQkNCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KfQntCb0JDQmtCe0JLQmNCLINCi0JXQntCU0J7QoAor0KfQntCb0JDQmtCe0JLQmNCLINCS0JDQitCQCivQp9Ce0JvQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cn0J7Qm9CY0Isg0ILQo9Cg0J4KK9Cn0J7Qm9CY0Isg0JDQndCC0JXQm9Ca0JAKK9Cn0J7Qm9CY0Isg0JHQntCg0J4KK9Cn0J7Qm9CY0Isg0JTQldCh0JAKK9Cn0J7Qm9CY0Isg0JTQo9Co0JDQnQor0KfQntCb0JjQiyDQlNCj0KjQmtCeCivQp9Ce0JvQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KfQntCb0JjQiy3Qk9CQ0IvQldCo0JAg0KHQm9CQ0JLQmNCm0JAKK9Cn0J7Qm9CY0Isg0JjQktCQ0J0KK9Cn0J7Qm9CY0Isg0IjQntCS0JDQndCa0JAKK9Cn0J7Qm9CY0Isg0IjQntCS0JDQnQor0KfQntCb0JjQiyDQiNCe0JLQkNCdCivQp9Ce0JvQmNCLINCb0KPQmtCQCivQp9Ce0JvQmNCLINCc0JDQoNCQCivQp9Ce0JvQmNCLINCc0JDQoNCY0IjQkAor0KfQntCb0JjQiyDQnNCY0JvQkNCdCivQp9Ce0JvQmNCLINCc0JjQm9CQ0J0KK9Cn0J7Qm9CY0Isg0JzQmNCb0JDQnQor0KfQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KfQntCb0JjQiyDQnNCY0KDQmtCeCivQp9Ce0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JLQmtCQCivQp9Ce0JvQmNCLINCf0JXQotCQ0KAKK9Cn0J7Qm9CY0Isg0KDQkNCU0JAKK9Cn0J7Qm9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Cn0J7Qm9CY0Isg0KDQmNCh0KLQngor0KfQntCb0JjQiyDQodCQ0JLQkAor0KfQntCb0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Cn0J7Qm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KfQntCb0J7QktCY0Isg0JTQo9Co0JDQnQor0KfQntCb0J7QktCY0Isg0JzQmNCb0JUKK9Cn0J7Qm9Ce0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Cn0J7Qm9Ce0JLQmNCLINCe0JvQk9CQCivQp9Ce0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQp9Ce0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQp9Ce0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KfQntCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQp9Ce0JvQntCS0JjQiyDQktCY0JTQntCh0JDQkgor0KfQntCb0J7QktCY0Isg0JLQm9CQ0JTQngor0KfQntCc0JAg0ILQo9Cb0JAKK9Cn0J7QnNCQINCC0KPQm9CQCivQp9Ce0JzQmNCLINCC0KPQoNCC0JjQndCQCivQp9Ce0JzQmNCLINCU0JDQoNCQCivQp9Ce0JzQmNCLINCU0KDQkNCT0JDQnQor0KfQntCc0JjQiyDQlNCj0KjQkNCd0JrQkAor0KfQntCc0JjQiyDQldCg0JbQldCR0JXQogor0KfQntCc0JjQiyDQmNCb0JjQiNCQCivQp9Ce0JzQmNCLINCI0JDQqNCa0J4KK9Cn0J7QnNCY0Isg0IjQkNCo0JrQngor0KfQntCc0JjQiyDQmtCg0KHQotCQCivQp9Ce0JzQmNCLINCb0JjQlNCY0IjQkAor0KfQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KfQntCc0JjQiyDQnNCY0JvQntCoCivQp9Ce0JzQmNCLINCc0JjQoNCe0InQo9CRCivQp9Ce0JzQmNCLINCc0JvQkNCU0JXQnQor0KfQntCc0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9Ce0JzQmNCLINCh0JzQmNCJ0JDQndCQCivQp9Ce0JzQmNCLINCi0J7QlNCe0KAKK9Cn0J7QnNCY0Isg0KLQntCU0J7QoAor0KfQntCc0J7QoCDQmNCb0J7QndCa0JAKK9Cn0J7QnNCe0KAg0JzQkNCi0JjQm9CU0JAKK9Cn0J7QndCT0KDQkNCU0JDQpiDQlNCQ0J3QmNCI0JXQm9CQCivQp9Ce0J3Qk9Cg0JDQlNCQ0KYg0JjQktCQ0J3QmtCQCivQp9Ce0J3Qk9Cg0JDQlNCQ0KYg0KDQkNCU0J7QodCb0JDQkgor0KfQntCd0JjQiyDQkNCd0JrQkAor0KfQntCd0JjQiyDQnNCY0JvQldCd0JrQngor0KfQntCd0JjQiyDQnNCY0JvQntCoCivQp9Ce0J3QmNCLINCf0JXQotCQ0KAKK9Cn0J7QndCY0Isg0KLQmNCI0JDQndCQCivQp9Ce0J3QmNCLINCX0J7QoNCQ0J0KK9Cn0J7QndCa0JAg0ILQldCg0IIKK9Cn0J7QndCa0JAg0JPQntCg0JTQkNCd0JAKK9Cn0J7QndCa0JAg0JrQkNCg0J7QiQor0KfQntCd0JrQkCDQn9CV0KLQkNCgCivQp9Ce0J3QmtCQ0Kgg0JXQnNCY0JsKK9Cn0J7QndCa0JDQqCDQk9CQ0JHQoNCY0JXQm9CQCivQp9Ce0J3QmtCQ0Kgg0JvQkNCU0JjQodCb0JDQkgor0KfQntCd0JrQmNCLINCW0JjQktCa0J4KK9Cn0J7QndCa0JjQiyDQkNCb0JXQmtCh0JAKK9Cn0J7QndCa0JjQiyDQkdCY0InQkNCd0JAKK9Cn0J7QndCa0JjQiyDQkdCe0JPQntCJ0KPQkSDQm9CV0JrQkNCgCivQp9Ce0J3QmtCY0Isg0JHQntCg0JjQodCb0JDQkgor0KfQntCd0JrQmNCLINCU0KDQkNCT0JDQnQor0KfQntCd0JrQmNCLINCI0JXQm9CQCivQp9Ce0J3QmtCY0Isg0IjQo9CU0JjQogor0KfQntCd0JrQmNCLINCJ0JjQidCQ0J3QkAor0KfQntCd0JrQmNCLINCc0JDQoNCY0IjQkAor0KfQntCd0JrQmNCLINCc0JjQm9CQ0J3QmtCQCivQp9Ce0J3QmtCY0Isg0JzQmNCb0JXQndCQCivQp9Ce0J3QmtCY0Isg0JzQmNCb0J7QqAor0KfQntCd0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQp9Ce0J3QmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0J7QndCa0JjQiyDQnNCY0JvQntCS0JDQnQor0KfQntCd0JrQmNCLINCc0J7QnNCn0JjQm9CeINCU0JjQn9CbINCY0J3Qkwor0KfQntCd0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQp9Ce0J3QmtCY0Isg0J3QldCh0KLQntCgCivQp9Ce0J3QmtCY0Isg0J/QldCi0JDQoAor0KfQntCd0JrQmNCLINCg0JDQlNCV0J3QmtCeCivQp9Ce0J3QmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQntCd0JrQmNCLINCh0JDQqNCQCivQp9Ce0J3QmtCY0Isg0KHQm9CQ0JLQmtCeCivQp9Ce0J3QmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQntCd0JrQmNCLINCh0J3QldCW0JDQndCQCivQp9Ce0J3QmtCY0Isg0KHQotCQ0JzQldCd0JAKK9Cn0J7QndCa0JjQiyDQodCi0JXQktCQ0J0KK9Cn0J7QndCa0JjQiyDQotCY0KXQntCc0JjQoAor0KfQntCd0KLQntCoINCI0J7QltCV0KQKK9Cn0J7QndCi0J7QqCDQl9Ce0KDQkAor0KfQntCf0KfQmNCLINCc0JDQoNCi0JjQnQor0KfQntCf0JjQmiDQn9CV0KLQkNCgCivQp9Ce0J/QmNCaINCS0JDQodCY0JvQmNCI0JAKK9Cn0J7Qn9Ce0KDQlNCQINCS0KPQmtCe0KHQkNCS0JAKK9Cn0J7QoCDQpNCg0JDQitCQCivQp9Ce0KAg0IjQntCh0JjQnwor0KfQntCg0JDQmiDQiNCe0KHQmNCfCivQp9Ce0KDQkNCaINCh0KLQmNCf0JUKK9Cn0J7QoNCQ0JvQmNCLINCY0JLQkNCd0JrQkAor0KfQntCg0JHQkCDQgtCV0KDQggor0KfQntCg0JHQkCDQmNCo0KLQktCQ0J0KK9Cn0J7QoNCR0JAg0IjQntCS0JDQnQor0KfQntCg0JHQkCDQiNCe0JLQkNCdCivQp9Ce0KDQkdCQINCc0JjQpdCQ0IkKK9Cn0J7QoNCU0JAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cn0J7QoNCU0JAg0JDQm9CY0IjQkAor0KfQntCg0JTQkCDQndCQ0JTQldCW0JTQkAor0KfQntCg0JTQkCDQotCe0JzQmNCh0JvQkNCSCivQp9Ce0KDQlNCQINCS0JXQoNCQCivQp9Ce0KDQlNCQ0Kgg0JDQndCU0KDQmNCI0JAKK9Cn0J7QoNCU0JDQqCDQkNCg0J/QkNCUCivQp9Ce0KDQlNCQ0Kgg0JTQo9Co0JDQndCa0JAKK9Cn0J7QoNCU0JDQqCDQldCg0JbQldCR0JXQogor0KfQntCg0JTQkNCoINCl0JDQoNCT0JjQotCQCivQp9Ce0KDQlNCQ0Kgg0JjQoNCV0J3QkAor0KfQntCg0JTQkNCoINCb0JDQodCb0J4KK9Cn0J7QoNCU0JDQqCDQnNCY0KXQkNCJCivQp9Ce0KDQlNCQ0Kgg0KHQm9CQ0JLQmtCeCivQp9Ce0KDQlNCQ0KAg0JHQoNCQ0J3QmtCeCivQp9Ce0KDQlNCQ0KDQldCSINCJ0JjQidCQ0J3QkAor0KfQntCg0JTQkNCg0JXQkiDQktCV0KDQkAor0KfQntCg0JTQkNCg0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JrQkAor0KfQntCg0JTQkNCg0J7QkiDQmNCS0JDQnQor0KfQntCg0JTQkNCg0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Cn0J7QoNCU0JDQoNCe0JIg0KLQldCe0JTQntCgCivQp9Ce0KDQlNCQ0KDQntCSINCi0JXQntCU0J7QoAor0KfQntCg0JjQiyDQnNCQ0KDQmNCI0JDQnQor0KfQntCg0J3QldCd0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQp9Ce0KDQndCV0J3QmtCYINCU0KDQkNCT0J7QidCj0JEKK9Cn0J7QoNCd0JXQndCa0Jgg0IjQntCS0JDQnQor0KfQntCg0J3QldCd0JrQmCDQktCb0JDQlNCQCivQp9Ce0KDQndCYINCc0JjQm9Cj0J3QkAor0KfQntCg0J3QmNCIINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0J7QoNCi0JDQnSDQltCY0JLQmtCeCivQp9Ce0KDQotCQ0J0g0JHQntCo0JrQngor0KfQntCg0KLQkNCdINCc0JjQm9CY0KbQkAor0KfQntCg0KLQkNCdINCd0JDQlNCQCivQp9Ce0KDQotCQ0J0g0KDQkNCU0JjQktCe0IgKK9Cn0J7QoNCi0JDQndCe0JLQkNCn0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQp9Ce0JLQmNCLINCU0JDQoNCa0J4KK9Cn0J7QktCY0Isg0JTQkNCg0JrQngor0KfQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QktCY0Isg0JPQo9Ch0KLQkNCSCivQp9Ce0JLQmNCLINCY0JLQkNCdCivQp9Ce0JLQmNCLINCI0JDQndCa0J4KK9Cn0J7QktCY0Isg0IjQntCh0JjQnwor0KfQntCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0KfQntCS0JjQiyDQmtCg0KHQotCeCivQp9Ce0JLQmNCLINCb0JDQlNCQCivQp9Ce0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cn0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cn0J7QktCY0Isg0JzQntCc0JjQoAor0KfQntCS0JjQiyDQntCb0JPQkAor0KfQntCS0JjQiyDQn9CV0KLQkNCgCivQp9Ce0JLQmNCLINCg0JDQlNCe0KgKK9Cn0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQntCS0JjQiyDQoNCQ0KLQmtCeCivQp9Ce0JLQmNCLINCh0J3QldCW0JDQndCQCivQp9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0KfQntCS0JjQiyDQktCb0JDQlNCQCivQp9Ce0JLQmNCLINCS0JvQkNCi0JrQngor0KfQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cn0J7QktCY0JvQniDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0J7QktChINCI0JDQqNCQCivQp9Ce0JLQoSDQn9CQ0JLQm9CVCivQp9Ce0JLQoSDQn9CQ0JLQm9CVCivQp9Ce0JLQoSDQktCV0KDQmNCm0JAKK9Cn0KDQldCi0J3QmNCaLdCm0JLQldCI0JDQndCe0JLQmNCLINCe0JvQk9CQINCU0JjQn9CbINCY0J3Qkwor0KfQoNCK0JXQmtCQINCX0JvQkNCi0JrQngor0KfQoNCd0J7QiNCQ0KfQmtCYINCU0JDQndCY0KHQm9CQ0JIKK9Cn0KPQpyDQiNCV0JvQldCd0JAKK9Cn0KPQpyDQnNCQ0KDQmNCI0JAKK9Cn0KPQp9CY0JvQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cn0KPQp9Ca0J7QktCY0Isg0KfQldCU0J4KK9Cn0KPQp9Ca0J7QktCY0Isg0JbQldCJ0JrQngor0KfQo9Cn0JrQntCS0JjQiyDQgtCj0KDQngor0KfQo9Cn0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KfQo9Cn0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0KPQp9Ca0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cn0KPQp9Ca0J7QktCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQp9Cj0KfQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0KPQp9Ca0J7QktCY0Isg0KHQn9CQ0KHQkAor0KfQo9Cn0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQp9Cj0KfQo9Cb0JjQoSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cn0KPQkdCg0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQp9Cj0JHQoNCY0JvQniDQkNCd0JrQkAor0KfQo9CR0KDQmNCb0J4g0JTQoNCQ0JPQkNCdCivQp9Cj0JHQoNCY0JvQniDQlNCj0KjQkNCdCivQp9Cj0JHQoNCY0JvQniDQiNCe0JLQngor0KfQo9CR0KDQmNCb0J4g0JvQkNCX0J4KK9Cn0KPQkdCg0JjQm9CeINCc0JjQm9CQ0J0KK9Cn0KPQkdCg0JjQm9CeINCf0JXQotCQ0KAKK9Cn0KPQkdCg0JjQm9CeINCh0J7QpNCY0IjQkAor0KfQo9CR0KDQmNCb0J4g0JLQm9CQ0JTQmNCc0JjQoAor0KfQo9CR0KDQmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQo9CR0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cn0KPQlNCQ0J3QntCSINCn0JXQlNCQCivQp9Cj0JTQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQo9CU0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQp9Cj0JTQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cn0KPQlNCY0Isg0JjQktCQ0J0KK9Cn0KPQlNCY0Isg0IjQntCS0JDQndCa0JAKK9Cn0KPQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0KPQlNCY0Isg0J3QmNCa0J7Qm9CQCivQp9Cj0JTQmNCLINCf0KDQldCU0KDQkNCTCivQp9Cj0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0KPQlNCe0JzQmNCg0J7QktCY0Isg0JHQntCT0JTQkNCdCivQp9Cj0JTQntCc0JjQoNCe0JLQmNCLINCj0KDQntCoCivQp9Cj0JPQkNCJINCQ0J3QmtCQCivQp9Cj0JPQkNCJINCc0JjQoNCI0JDQndCQCivQp9Cj0JPQkNCJINCh0JLQldCi0J4KK9Cn0KPQk9CV0Ikg0JDQndCT0JXQm9CY0J3QkAor0KfQo9Cl0JAg0JzQkNCg0JjQiNCQCivQp9Cj0KXQkCDQn9CQ0JLQm9CVCivQp9Cj0KXQkCDQodCb0JDQktCa0J4KK9Cn0KPQpdCQINCh0KLQldCS0JDQnQor0KfQo9Cl0JAt0JLQo9CI0JrQntCSINCg0KPQltCQCivQp9Cj0KXQkCDQl9Cb0JDQotCQCivQp9Cj0IjQkNCd0J7QkiDQkdCe0KDQmNChCivQp9Cj0JrQkCDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cn0KPQmtCQ0InQmNCLINCd0JXQktCV0J3QmtCQCivQp9Cj0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cn0KPQmtCY0Isg0JzQmNCb0JrQkAor0KfQo9Ca0JjQiyDQnNCY0KDQodCQ0JTQkAor0KfQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9Cj0JrQmNCLINCX0J7QoNCQ0J0KK9Cn0KPQmtCJ0JDQqCDQmNCS0JDQnQor0KfQo9Ca0InQldCaINCk0KDQkNCK0JAKK9Cn0KPQmtCJ0JXQmiDQnNCQ0KDQk9CY0KLQkAor0KfQo9Ca0InQldCS0JjQiyDQkdCj0JTQmNCc0JrQkAor0KfQo9Ca0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQp9Cj0JrQo9Cg0JDQndCe0JLQmNCLINCW0JjQmtCQCivQp9Cj0JrQo9Cg0JDQndCe0JLQmNCLINCc0JjQiNCQCivQp9Cj0JvQkNCI0JXQktCY0Isg0IjQntCS0JDQnQor0KfQo9Cb0JDQiNCV0JLQmNCLINCh0KLQkNCd0JrQngor0KfQo9Cb0JjQiyDQiNCe0JLQkAor0KfQo9Cb0JjQmiDQpdCQ0IjQndCV0KDQmNCaCivQp9Cj0JvQmNCd0JAg0JbQldCJ0JrQngor0KfQo9CJ0JDQmiDQlNCg0JDQk9CQCivQp9Cj0InQkNCaINCY0JLQkNCdCivQp9Cj0InQkNCaINCa0JDQoNCb0J4KK9Cn0KPQidCQ0Jog0JzQmNCg0JrQngor0KfQo9CJ0JDQmiDQndCQ0JTQkAor0KfQo9CJ0JDQoiDQlNCQ0J3QlQor0KfQo9CJ0JDQoiDQiNCQ0JrQntCSCivQp9Cj0InQmNCLINCW0JjQktCe0IjQmNCdCivQp9Cj0JvQniDQkdCe0JbQkAor0KfQo9Cb0J4g0JzQkNCg0JrQngor0KfQo9Cb0J4g0JzQkNCi0J4KK9Cn0KPQndCa0J4g0JHQoNCQ0J3QmtCeCivQp9Cj0J/QkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9Cj0J/QldCJ0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQp9Cj0J/QmNCLINCC0J7QoNCC0JUKK9Cn0KPQn9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cn0KPQn9CY0Isg0JHQntCI0JDQnQor0KfQo9Cf0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0KPQn9CY0Isg0JTQoNCQ0JPQkNCdCivQp9Cj0J/QmNCLINCU0KPQqNCQ0J0KK9Cn0KPQn9CY0Isg0KXQoNCY0KHQotCY0KTQntCgCivQp9Cj0J/QmNCLINCI0JXQm9CV0J3QkAor0KfQo9Cf0JjQiyDQmtCQ0IjQmtCQCivQp9Cj0J/QmNCLINCa0JDQiNCa0JAKK9Cn0KPQn9CY0Isg0JrQkNCi0JjQptCQCivQp9Cj0J/QmNCLINCa0JDQotCY0KbQkAor0KfQo9Cf0JjQiyDQmtCe0KHQotCQ0JTQmNCd0JrQkAor0KfQo9Cf0JjQiyDQmtCg0JjQodCi0JjQndCQCivQp9Cj0J/QmNCLINCJ0KPQkdCe0JzQmNCgCivQp9Cj0J/QmNCLINCc0JjQm9CQ0J0KK9Cn0KPQn9CY0Isg0JzQmNCb0JjQptCQCivQp9Cj0J/QmNCLINCc0JjQntCU0KDQkNCTCivQp9Cj0J/QmNCLINCc0JjQntCU0KDQkNCTCivQp9Cj0J/QmNCLINCc0JjQntCU0KDQkNCTCivQp9Cj0J/QmNCLINCc0JjQoNCI0JDQndCQCivQp9Cj0J/QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0KPQn9CY0Isg0J7Qm9CT0JAKK9Cn0KPQn9CY0Isg0KDQkNCU0JjQndCa0JAKK9Cn0KPQn9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQo9Cf0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQp9Cj0J/QmNCLINCh0KLQldCS0JDQnQor0KfQo9Cf0JjQiyDQodCi0JXQktCQ0J0KK9Cn0KPQn9CY0Isg0KHQotCe0IjQkNCdCivQp9Cj0J/QmNCLINCj0KDQntCoCivQp9Cj0J/QmNCLINCX0J7QoNCQ0J0KK9Cn0KPQoNCn0JjQiyDQlNCj0KjQkNCdCivQp9Cj0KDQp9CY0Isg0JjQm9CY0IjQkAor0KfQo9Cg0KfQmNCLINCb0JDQl9CQ0KAKK9Cn0KPQoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KfQo9Cg0JPQkNCd0J7QkiDQldCc0JjQmwor0KfQo9Cg0JjQiyDQltCQ0KDQmtCeCivQp9Cj0KDQmNCLINCC0J7QoNCC0JUKK9Cn0KPQoNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cn0KPQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cn0KPQoNCY0Isg0JzQmNCb0JXQndCQCivQp9Cj0KDQmNCLINCc0JjQm9Ce0KgKK9Cn0KPQoNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KfQo9Cg0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cn0KPQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQo9Cg0JjQiyDQktCQ0KHQkAor0KfQo9Cg0JjQiyDQktCV0JvQmNCd0JrQkAor0KfQo9Cg0JjQiyDQktCY0JTQntCh0JDQktCQCivQp9Cj0KDQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cn0KPQoNCe0JLQmNCLINCU0JDQndCY0JvQngor0KfQo9Cg0J7QktCY0Isg0JLQo9Ca0KHQkNCdCivQp9Cj0KDQo9Co0JrQmCDQk9CQ0JLQoNCQCivQp9Cj0KDQo9Co0JrQmCDQnNCY0KbQkAor0KfQo9Ch0KLQntCS0JjQiyDQkNCg0JjQpAor0KfQo9Ci0KPQoNCQINCc0JDQoNCa0J4KK9Cn0KPQotCj0KDQmNCLINCI0JXQoNCe0J3QmNCcCivQp9Cj0KLQo9Cg0JjQm9CeINCn0JXQlNCe0JzQmNCgCivQp9Cj0KLQo9Cg0JjQm9CeINCR0J7QltCQCivQp9Cj0KLQo9Cg0JjQm9CeINCc0JjQm9CY0JLQntCI0JUKK9Cn0KPQotCj0KDQmNCb0J4g0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cn0KPQotCj0KDQmNCb0J7QkiDQnNCQ0KDQmNCI0JAKK9Cn0KPQotCj0KDQmNCb0J7QkiDQnNCY0JvQntCoCivQp9Cj0KLQo9Cg0JjQm9Ce0JIg0JzQmNCb0J7QqAor0KfQo9Ci0KPQoNCY0JvQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cn0KPQotCj0KDQmNCb0J7QkiDQktCV0JvQmNCd0JrQkAor0KfQo9Ci0KPQoNCY0JvQntCSINCS0KPQiNCY0KbQkAor0KfQo9CS0JDQm9CeINCJ0KPQkdCY0KbQkAor0KfQo9CS0JDQoNCU0JjQiyDQkNCd0KLQo9CdCivQp9CS0J7QmtCY0Isg0JzQkNCg0JrQngor0KfQktCe0JrQmNCLINCg0JDQotCa0J4KK9Cn0JLQntCg0JjQiyDQlNCj0KjQkNCdCivQp9CS0J7QoNCY0Isg0JzQmNCb0J7QiNCVCivQp9CS0J7QoNCa0J7QkiDQidCj0JHQntCc0JjQoAor0KfQktCe0KDQmtCe0JIg0JfQlNCg0JDQktCa0J4KK9Cn0JLQntCg0JrQntCSINCX0JvQkNCi0JDQnQor0KfQktCe0KDQni3QgtCj0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQp9CS0J7QoNCeINCU0J7QkdCg0J7QodCb0JDQkgor0KfQktCe0KDQntCS0JjQiyDQiNCV0JvQldCd0JrQkAor0KfQktCe0KDQntCS0JjQiyDQidCj0JHQngor0KfQktCe0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQp9CS0J7QoNCe0JLQmNCLINCS0KPQiNCY0KbQkAor0KjQi9CV0JrQmNCLINCR0KPQlNCY0JzQmNCgCivQqNCL0JXQmtCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KjQi9CV0JrQmNCLINCa0J7QodCQCivQqNCL0JXQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9Co0IvQldCa0JjQiyDQnNCY0JvQmNCLCivQqNCL0JXQmtCY0Isg0JzQmNCb0JjQptCQCivQqNCL0JXQmtCY0Isg0JzQmNCe0JzQmNCgCivQqNCL0JXQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KjQi9CV0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0IvQldCa0JjQiyDQktCj0JrQngor0KjQi9CV0J/QkNCd0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQqNCL0JXQn9CQ0J3Qp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Co0IvQldCf0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JTQntCR0KDQntCh0JvQkNCS0JAKK9Co0IvQldCf0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Co0IvQldCf0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Co0IvQldCf0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQoNCQ0KjQmtCeCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0KDQkNCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Co0IvQldCf0JDQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JfQntCg0JAKK9Co0IvQldCf0J7QktCY0Isg0J/QldCi0JDQoAor0KjQi9CV0KDQkdCQ0IvQldCSINCT0JvQmNCT0J7QoNCY0IjQlQor0KjQi9CV0JLQp9CY0Jog0J/QkNCS0JvQlQor0KjQi9CY0JHQkNCdINCc0JDQoNCY0J3QkAor0KjQi9Ce0J/QmNCLINCc0JjQntCU0KDQkNCTCivQqNCL0J7Qn9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KjQi9Ce0J/Qo9Cb0J7QktCY0Isg0J/QldCi0JDQoAor0KjQi9Cj0KDQmNCmINCI0J7QodCY0J8KK9Co0JDQqNCY0Isg0JbQmNCS0JrQngor0KjQkNCo0JjQiyDQgtCe0KDQgtCVCivQqNCQ0KjQmNCLINCU0KPQqNCQ0J0KK9Co0JDQqNCY0Isg0JzQmNCb0JDQnQor0KjQkNCo0JjQiyDQnNCY0JvQkNCdCivQqNCQ0KjQmNCLINCc0JjQm9Ce0KgKK9Co0JDQqNCY0Isg0JzQmNCg0JrQngor0KjQkNCo0JjQiyDQndCV0JLQldCd0JrQkAor0KjQkNCo0JjQiyDQn9CV0KLQkNCgCivQqNCQ0KjQmNCLINCh0JDQktCeCivQqNCQ0KjQmNCLINCh0KLQldCS0JDQnQor0KjQkNCo0JjQiyDQl9Ce0KDQkNCdCivQqNCQ0KjQmNCdINCU0JDQndCY0KbQkAor0KjQkNCo0JjQnSDQoNCQ0JTQntCc0JjQoAor0KjQkNCo0JjQndCQ0KfQmtCYINCc0JDQoNCY0IjQkAor0KjQkNCo0JjQndCQ0KfQmtCYINCh0J7QitCQCivQqNCQ0KjQmNCd0JDQp9Ca0Jgg0JLQkNCh0JjQm9CY0IjQlQor0KjQkNCo0InQmNCdINCb0JDQl9CQ0KAKK9Co0JDQqNCe0JLQmNCLINCi0KDQmNCk0JrQngor0KjQkNCR0JDQndCYINCd0JDQl9CY0JwKK9Co0JDQkdCQ0J3QntCS0JjQiyDQkNCR0JTQo9Cg0JDQpdCc0JDQnQor0KjQkNCR0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Co0JDQkdCV0KYg0JTQoNCQ0JPQmNCm0JAKK9Co0JDQkdCY0Isg0ILQo9Cg0J4KK9Co0JDQkdCY0Isg0KXQo9Ch0JXQmNCdCivQqNCQ0JHQmNCLINCf0JDQktCb0JUKK9Co0JDQkdCb0Jgg0JzQkNCg0KLQntCdCivQqNCQ0JHQm9CYINCc0JjQpdCQ0IjQm9CeCivQqNCQ0JHQntCS0JjQiyDQnNCV0KXQnNCV0JTQkNCb0JjQiNCQCivQqNCQ0JTQlSDQiNCV0JvQldCd0JAKK9Co0JDQpNCQ0KDQmNCaINCJ0JjQidCQ0J3QkAor0KjQkNCk0KDQkNCKINCQ0J3QlNCg0JjQiNCQCivQqNCQ0KTQoNCQ0Iog0JTQldCW0JUKK9Co0JDQpNCg0JDQiiDQpNCg0JDQitCQCivQqNCQ0KTQoNCQ0Iog0JvQkNCh0JvQngor0KjQkNCk0KDQkNCKINCb0JDQodCb0J4KK9Co0JDQpNCg0JDQiiDQn9CY0KDQntCo0JrQkAor0KjQkNCk0KDQkNCKINCh0KLQldCS0JDQnQor0KjQkNCk0KDQkNCKINCi0JXQntCU0J7QoNCQCivQqNCQ0JPQo9Cd0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQkNCT0KPQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQqNCQ0JjQnSDQkNCd0JTQoNCY0IjQkAor0KjQkNCY0J0g0JzQmNCb0JXQktCQCivQqNCQ0JjQnSDQl9CQ0JPQntCg0JrQkAor0KjQkNCY0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQqNCQ0JjQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0KjQkNCI0JDQotCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KjQkNCI0JDQotCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQqNCQ0IjQkdCV0KAg0JTQkNCd0JjQptCQCivQqNCQ0IjQkdCV0KAg0JzQmNCb0JXQndCa0J4KK9Co0JDQiNCU0JjQmiDQpNCg0JDQndCm0JjQqNCa0JAKK9Co0JDQiNCk0JDQoCDQn9CQ0JLQm9CVCivQqNCQ0IjQmNCdINCc0JjQm9Ce0KDQkNCUCivQqNCQ0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQqNCQ0IjQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQkNCI0JjQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQqNCQ0IjQmNCd0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Co0JDQiNCY0J3QntCS0JjQiyDQodCY0JTQkAor0KjQkNCI0J0g0JTQo9Co0JDQnQor0KjQkNCI0J3QkdCV0KDQk9CV0KAg0IjQntCS0JDQnQor0KjQkNCI0J3QkdCV0KDQk9CV0KAg0JvQmNCb0JgKK9Co0JDQiNCd0J7QkiDQiNCe0JLQkNCdCivQqNCQ0IjQndCe0JIg0JrQkNCi0JjQptCQCivQqNCQ0IjQndCe0JIg0J/QldCi0JDQoAor0KjQkNCI0J3QntCS0JjQiyDQoNCQ0JTQmNCd0JrQkAor0KjQkNCI0KLQmCDQldCi0JXQm9Ca0JAKK9Co0JDQiNCi0Jgg0JPQmNCX0JXQm9CQCivQqNCQ0IjQotCYINCa0JDQotCY0KbQkAor0KjQkNCI0KLQmCDQnNCQ0KDQmNCI0JAKK9Co0JDQiNCi0J7QqCDQgtCe0KDQgtCVCivQqNCQ0IjQotCe0Kgg0ILQo9Cg0JAKK9Co0JDQiNCi0J7QqCDQidCj0JHQmNCo0JAKK9Co0JDQiNCi0J7QqCDQndCY0JrQntCb0JAKK9Co0JDQiNCi0J7QqCDQodCY0JzQkAor0KjQkNCI0KLQntCoINCh0JjQnNCQCivQqNCQ0JrQmNCLINCW0JXQidCa0J4KK9Co0JDQmtCY0Isg0ILQntCg0ILQlQor0KjQkNCa0JjQiyDQmNCb0JjQiNCQCivQqNCQ0JrQmNCLINCY0JvQmNCI0JAKK9Co0JDQmtCY0Isg0JjQm9CY0IjQkAor0KjQkNCa0JjQiyDQiNCQ0IrQkAor0KjQkNCa0JjQiyDQmtCQ0KLQkAor0KjQkNCa0JjQiyDQnNCQ0J3QlQor0KjQkNCa0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KjQkNCa0JjQiyDQoNCQ0JTQlQor0KjQkNCa0JjQiyDQl9Ce0KDQmtCQCivQqNCQ0JrQntCi0JAg0JTQo9Co0JDQnQor0KjQkNCa0J7QotCQINCa0J7QiNCeCivQqNCQ0JrQntCi0JAg0JzQmNCb0JDQnQor0KjQkNCa0J7QotCQINCc0JjQm9Ce0KDQkNCUCivQqNCQ0JrQntCi0JAg0KHQmNCc0JXQntCdCivQqNCQ0JrQntCi0JjQiyDQidCj0JHQntCc0JjQoAor0KjQkNCa0J7QotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Co0JDQmtCjINCc0JXQpdCc0JXQlAor0KjQkNCb0JDQkdCQ0JvQmNCI0JAg0JTQoNCQ0JPQntCc0JjQoAor0KjQkNCb0JDQkdCQ0JvQmNCI0JAg0JLQkNCh0J4KK9Co0JDQm9CQ0IjQmNCLINCh0KLQldCS0JDQnQor0KjQkNCb0JDQnNCe0J0g0KjQkNCd0JTQntCgCivQqNCQ0JvQkNCc0J7QnSDQkNCd0JTQoNCY0IjQkAor0KjQkNCb0JDQnNCe0J0g0IjQntCh0JjQnwor0KjQkNCb0JDQnNCe0J0g0IjQntCh0JjQnwor0KjQkNCb0JDQnNCe0J0g0JzQmNCo0JAKK9Co0JDQm9CQ0JzQntCdINCc0JjQpdCQ0IjQm9CeCivQqNCQ0JvQkNCc0J7QnSDQnNCY0KXQkNCI0JvQngor0KjQkNCb0JDQndCa0Jgg0IjQkNCd0J7QqAor0KjQkNCb0JDQndCa0Jgg0IjQkNCd0J7QqAor0KjQkNCb0JHQntCiINCX0KPQl9CQCivQqNCQ0JvQldCgINCS0JXQoNCQCivQqNCQ0JvQk9CeINCI0JXQm9CY0KHQkNCS0JXQotCQCivQqNCQ0JvQmNCf0KPQoNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQqNCQ0JvQmNCf0KPQoNCe0JLQmNCLINCh0JvQkNCS0JjQqNCQCivQqNCQ0JzQkNCi0JjQiyDQndCV0JzQkNCK0JAKK9Co0JDQnNCV0KYg0JzQmNCb0JjQptCQCivQqNCQ0J3QlNCe0Jsg0JDQotCY0JvQkAor0KjQkNCd0JTQntCbINCQ0KLQmNCb0JAKK9Co0JDQndCU0J7QmyDQmNCo0KLQktCQ0J0KK9Co0JDQndCU0J7QmyDQmtCQ0KLQmNCm0JAKK9Co0JDQndCU0J7QmyDQnNCQ0KLQmNCI0JAKK9Co0JDQndCU0J7QmyDQnNCY0KXQkNCI0JvQngor0KjQkNCd0JTQntCgINCY0JvQntCd0JAKK9Co0JDQndCU0J7QoCDQiNCe0KHQmNCfCivQqNCQ0J3QlNCe0KAg0JvQkNCU0JjQodCb0JDQkgor0KjQkNCd0JTQntCgINCc0JDQoNCY0IjQkAor0KjQkNCd0JTQntCgINCi0JjQkdCe0KAKK9Co0JDQndCU0J7QoNCYINCo0JDQoNCY0JrQkAor0KjQkNCK0JjQiyDQnNCY0JvQkNCU0JjQnQor0KjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQkNCd0KLQkCDQqNCQ0J3QlNCe0KAKK9Co0JDQndCi0JAg0JDQnNCQ0JvQmNCI0JAKK9Co0JDQndCi0JAg0JHQldCb0JAKK9Co0JDQndCi0JAg0JTQo9Co0JDQndCa0JAKK9Co0JDQndCi0JAg0KTQldCg0JXQndCmCivQqNCQ0J3QotCQINCY0KjQotCS0JDQnQor0KjQkNCd0KLQkCDQmNCb0J7QndCa0JAKK9Co0JDQndCi0JAg0JjQnNCg0JUKK9Co0JDQndCi0JAg0IjQntCh0JjQnwor0KjQkNCd0KLQkCDQm9CQ0KHQm9CeCivQqNCQ0J3QotCQINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JDQndCi0JAg0J/QkNCbCivQqNCQ0J3QotCQINCh0JjQnNCQCivQqNCQ0J3QotCQINCh0JvQkNCS0JrQngor0KjQkNCd0KLQkCDQodCe0KTQmNCI0JAKK9Co0JDQndCi0JAg0KHQotCV0JLQkNCdCivQqNCQ0J3QotCQINCS0JjQndCa0J4KK9Co0JDQndCi0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KjQkNCd0KLQkNCaINCI0J7QodCY0J8KK9Co0JDQndCi0JDQmiDQmtCQ0KDQm9CeCivQqNCQ0J3QotCQ0JvQkNCRINCh0J7QpNCY0IjQkAor0KjQkNCd0KLQldCaINCW0JXQidCa0J4KK9Co0JDQndCi0JXQmiDQl9CU0JXQndCa0JAKK9Co0JDQn9CYINCf0JjQoNCe0KjQmtCQINCU0JjQn9CbINCY0J3Qkwor0KjQkNCf0JjQiyDQndCY0JrQntCb0JAKK9Co0JDQn9CY0J3QkCDQnNCY0KDQntCh0JvQkNCSCivQqNCQ0J/QntCK0JAg0IjQntCS0JDQnQor0KjQkNCf0J7QitCQINCc0JDQoNCa0J4KK9Co0JDQn9Ce0IrQkNCmINCW0JDQoNCa0J4KK9Co0JDQn9Ce0IrQkNCmINCW0JDQoNCa0J4KK9Co0JDQn9Ce0IrQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCQ0J/QntCK0JDQpiDQiNCV0JvQmtCQINCf0KDQntCk0JXQodCe0KAKK9Co0JDQn9Ce0IrQkNCmINCg0JDQlNCQCivQqNCQ0J/QntCK0JDQpiDQodCi0JXQktCQ0J0KK9Co0JDQn9Ce0IrQodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Co0JDQn9Cj0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0JDQoNCn0JDQndCh0JrQmCDQiNCj0JvQmtCQCivQqNCQ0KDQp9CQ0J3QodCa0Jgg0JzQmNCb0JjQptCQCivQqNCQ0KDQp9CQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KjQkNCg0KfQldCSINCQ0J3QotCe0J3QmNCI0JAKK9Co0JDQoNCn0JXQkiDQiNCV0JvQldCd0JAKK9Co0JDQoNCn0JXQkiDQnNCY0KDQntCh0JvQkNCS0JAKK9Co0JDQoNCn0JXQkiDQndCY0JrQntCb0JAKK9Co0JDQoNCn0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQqNCQ0KDQp9CV0JLQmNCLINCW0JDQoNCa0J4KK9Co0JDQoNCn0JXQktCY0Isg0JbQldCb0JjQnNCY0KAKK9Co0JDQoNCn0JXQktCY0Isg0JDQndCY0KbQkAor0KjQkNCg0KfQldCS0JjQiyDQkdCg0JDQotCY0JzQmNCgCivQqNCQ0KDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Co0JDQoNCn0JXQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0KjQkNCg0KfQldCS0JjQiyDQmNCb0JrQkAor0KjQkNCg0KfQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Co0JDQoNCn0JXQktCY0Isg0JzQkNCg0JPQmNCi0JAg0JTQoAor0KjQkNCg0KfQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Co0JDQoNCn0JXQktCY0Isg0J3QldCR0J7QiNCo0JAKK9Co0JDQoNCn0JXQktCY0Isg0J/QldCi0JDQoAor0KjQkNCg0KfQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KjQkNCg0KfQldCS0JjQiyDQoNCQ0IjQmtCeCivQqNCQ0KDQp9CV0JLQmNCLINCS0JjQlNCe0IjQlQor0KjQkNCg0KfQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQqNCQ0KDQqNCQ0J3QodCa0Jgg0JzQkNCg0JjQndCa0J4KK9Co0JDQoNCo0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQqNCQ0KDQkCDQmNCc0KDQlQor0KjQkNCg0JAg0JjQnNCg0JUKK9Co0JDQoNCQ0KYg0ILQntCg0ILQlQor0KjQkNCg0JDQpiDQkdCY0InQkNCd0JAKK9Co0JDQoNCQ0KYg0JHQntCo0JrQngor0KjQkNCg0JDQpiDQlNCj0KjQkNCdCivQqNCQ0KDQkNCmINCU0KPQqNCQ0J0KK9Co0JDQoNCQ0KYg0JzQmNCb0JDQnQor0KjQkNCg0JDQpiDQnNCY0JvQlQor0KjQkNCg0JDQpiDQnNCY0JvQmNCm0JAKK9Co0JDQoNCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Co0JDQoNCQ0KYg0KDQkNCU0J7QiNCVCivQqNCQ0KDQkNCmINCg0JDQlNCe0JzQmNCgCivQqNCQ0KDQkNCmINCg0JDQlNCe0JLQkNCdCivQqNCQ0KDQkNCmINCg0KPQltCY0KbQkAor0KjQkNCg0JDQpiDQodCi0JXQktCQCivQqNCQ0KDQkNCmINCh0JLQldCi0J7Ql9CQ0KAKK9Co0JDQoNCQ0J3QlNCYINCo0JDQndCU0J7QoAor0KjQkNCg0JDQndCe0JLQmNCLINCQ0J3QmNCi0JAKK9Co0JDQoNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KjQkNCg0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdINCU0KAg0JvQldCa0JDQoAor0KjQkNCg0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Co0JDQoNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KjQkNCg0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Co0JDQoNCV0J3QkNCmINCR0J7QltCY0JTQkNCgCivQqNCQ0KDQldCd0JDQpiDQnNCQ0KDQmtCeCivQqNCQ0KDQldCd0JDQpiDQoNCe0JfQmNCd0JAKK9Co0JDQoNCV0J3QkNCmINCS0JjQlNCQ0JoKK9Co0JDQoNCV0J3QkNCmINCS0J7QiNCY0KHQm9CQ0JIKK9Co0JDQoNCT0JDQpyDQkdCg0JDQndCa0J4KK9Co0JDQoNCT0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQkNCg0JPQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Co0JDQoNCT0JjQiyDQl9Cb0JDQotCY0KbQkAor0KjQkNCg0JPQmNCdINCW0JDQoNCa0J4KK9Co0JDQoNCT0JjQnSDQnNCQ0KDQmNCI0JAKK9Co0JDQoNCYINCc0JDQoNCY0IjQkAor0KjQkNCg0Jgg0KHQotCV0JLQkNCdCivQqNCQ0KDQmNCLINCI0J7QodCY0J8KK9Co0JDQoNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KjQkNCg0JjQiyDQmtCe0KHQotCQCivQqNCQ0KDQmNCLINCJ0KPQkdCY0KbQkAor0KjQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Co0JDQoNCY0Isg0JzQkNCi0J4KK9Co0JDQoNCY0Isg0J3QldCd0JDQlAor0KjQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQqNCQ0KDQmNCLINCh0J7QpNCY0IjQkAor0KjQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Co0JDQoNCY0Isg0KLQntCc0JjQodCb0JDQkiDQnNCgCivQqNCQ0KDQmNCLINCX0JLQldCX0JTQkNCd0JAKK9Co0JDQoNCY0Jog0JDQndCQCivQqNCQ0KDQmNCaINCQ0J3QlNCg0JjQiNCQCivQqNCQ0KDQmNCaINCI0J7QktCQ0J0KK9Co0JDQoNCY0Jog0JrQkNCi0JjQptCQCivQqNCQ0KDQmNCaINCJ0KPQkdCY0KbQkAor0KjQkNCg0JjQmiDQnNCY0KDQntCh0JvQkNCSCivQqNCQ0KDQmNCaINCh0KLQldCS0JDQnQor0KjQkNCg0JjQmi3QktCY0JTQmNCLINCd0JDQlNCQCivQqNCQ0KDQmNCaINCS0JvQkNCU0JjQnNCY0KAKK9Co0JDQoNCa0JDQlNCYINCS0JXQoNCe0J3QmNCa0JAKK9Co0JDQoNCa0JDQiiDQkNCd0KLQntCdCivQqNCQ0KDQmtCQ0Iog0KTQldCg0JXQndCmCivQqNCQ0KDQmtCQ0Iog0KTQoNCQ0IrQkAor0KjQkNCg0JrQkNCKINCI0JDQndCe0KgKK9Co0JDQoNCa0JDQitCQ0KYg0KTQldCg0JXQndCmCivQqNCQ0KDQmtCV0JfQmC3Qn9CV0KLQoNCY0Isg0JzQkNCg0JPQmNCi0JAKK9Co0JDQoNCa0JjQiyDQodCg0ILQkNCdCivQqNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Co0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0KjQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCQ0KDQitCQ0Jgg0JDQndCa0JjQptCQCivQqNCQ0KDQitCQ0Jgg0JzQmNCa0JvQntCoCivQqNCQ0KDQitCQ0Jgg0J/QkNCbCivQqNCQ0KDQniDQiNCe0JLQkNCdCivQqNCQ0KDQniDQndCQ0JTQkAor0KjQkNCg0J7QqNCYINCS0JDQm9CV0KDQmNCI0JAKK9Co0JDQoNCe0KjQmtCe0JLQmNCLINCS0KPQmtCY0KbQkAor0KjQkNCg0J7QmC3QodCQ0JHQniDQktCV0KDQkAor0KjQkNCg0J7QktCY0Isg0ILQo9Cg0J4KK9Co0JDQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Co0JDQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Co0JDQoNCjINCU0KPQqNCY0KbQkAor0KjQkNCg0JLQkNCg0Jgg0KjQkNCd0JTQntCgCivQqNCQ0KDQktCQ0KDQmCDQmtCQ0KDQntCJCivQqNCQ0KDQktCQ0KDQmCDQnNCQ0KDQotCQCivQqNCQ0KDQktCQ0KDQmCDQoNCe0JfQkNCb0JjQiNCQCivQqNCQ0KDQktCQ0KDQmCDQktCQ0JvQldCg0JjQiNCQCivQqNCQ0KHQmNCS0JDQoCDQkNCl0JzQldCUCivQqNCQ0KLQkNCg0JAg0JzQmNCb0JDQnQor0KjQkNCi0J7QoNCQINCh0KLQntCI0JDQnQor0KjQkNCi0KDQmNCLINCQ0J3QkAor0KjQkNCi0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KjQkNCj0JvQkCDQk9Ce0KDQkNCdCivQqNCQ0KPQm9CQINCg0JDQlNCe0JLQkNCdCivQqNCQ0KPQm9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQqNCQ0JLQldCb0JjQnSDQqNCQ0J3QlNCe0KAKK9Co0JDQktCV0JvQmNCdINCI0J7QodCY0J8KK9Co0JDQktCV0JvQmNCdINCI0J7QktCQ0J0KK9Co0JDQktCV0JvQmNCdINCI0KPQm9CY0IjQkAor0KjQkNCS0JXQoNCU0JjQiNCQINCd0JjQmtCe0JvQkAor0KjQkNCS0JjQiNCQINCU0KPQqNCQ0J0KK9Co0JDQktCY0IjQkCDQnNCY0JvQlQor0KjQkNCS0JjQiNCQINCc0JjQm9Ce0KDQkNCUCivQqNCQ0JLQmNCI0JAg0J/QldCi0JDQoAor0KjQkNCS0JjQiNCQINCg0JDQlNCVCivQqNCQ0JLQoNCJ0KPQk9CQINCc0JjQm9CQ0J0KK9Co0JXQp9CY0Isg0JDQm9CY0IjQkAor0KjQldCn0JjQiyDQiNCj0JvQmtCQCivQqNCV0KjQkCDQodCb0JDQktCa0J4KK9Co0JXQqNCV0InQkCDQkdCg0JDQndCY0JzQmNCgCivQqNCV0KjQldCJ0JAg0JzQkNCg0JjQiNCQ0J0KK9Co0JXQqNCV0KDQmNCd0JDQpiDQgtCe0KDQgtCVCivQqNCV0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQqNCV0KjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KjQldCo0JXQktCY0Isg0JvQldCe0J3QkAor0KjQldCo0JXQktCY0Isg0InQmNCJ0JDQndCQCivQqNCV0KjQldCS0JjQiyDQnNCQ0KDQkAor0KjQldCo0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Co0JXQqNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KjQldCo0JjQiyDQltCY0JLQntCi0JAg0JTQmNCf0Jsg0JjQndCTCivQqNCV0KjQmNCLINCQ0KPQoNCV0JvQmNCI0JAKK9Co0JXQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCV0KjQmNCLINCS0JXQoNCQCivQqNCV0KjQmNCLINCS0JjQlNCQCivQqNCV0KjQmtCQ0KAg0J3QkNCU0JAKK9Co0JXQqNCb0JjQiNCQINCn0JXQlNCQCivQqNCV0KjQm9CY0IjQkCDQkdCg0JDQndCa0J4KK9Co0JXQqNCb0JjQiNCQINCU0KDQkNCT0JDQnQor0KjQldCo0JvQmNCI0JAg0JTQo9Co0JDQnQor0KjQldCo0KPQnCDQkdCg0JDQndCa0J4KK9Co0JXQqNCj0Jwg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCo0KPQnCDQmNCb0JjQiNCQCivQqNCV0KjQo9CcINCc0JjQpdCQ0IjQm9CeCivQqNCV0KjQo9CcINCc0JjQm9CQ0J0KK9Co0JXQqNCj0Jwg0JzQmNCb0JDQnQor0KjQldCo0KPQnCDQnNCY0JvQldCd0JrQngor0KjQldCo0KPQnCDQodCQ0JLQkAor0KjQldCo0KPQnCDQodCb0JDQktCY0KbQkAor0KjQldCo0KPQnCDQotCe0JzQkAor0KjQldCL0JXQoNCe0JIg0JDQndCC0JXQm9CY0IjQkAor0KjQldCL0JXQoNCe0JIg0JHQmNCJ0JDQndCQCivQqNCV0IvQldCg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JXQi9CV0KDQntCSINCU0KDQldCd0JrQkAor0KjQldCL0JXQoNCe0JIg0JTQo9Co0JDQnQor0KjQldCL0JXQoNCe0JIg0JXQnNCY0JsKK9Co0JXQi9CV0KDQntCSINCY0JTQkAor0KjQldCL0JXQoNCe0JIg0JjQktCQ0J0KK9Co0JXQi9CV0KDQntCSINCI0J7QktCQ0J0KK9Co0JXQi9CV0KDQntCSINCa0JDQiNCQCivQqNCV0IvQldCg0J7QkiDQnNCQ0KLQkAor0KjQldCL0JXQoNCe0JIg0JzQmNCb0JDQnQor0KjQldCL0JXQoNCe0JIg0J/QkNCS0JvQlQor0KjQldCL0JXQoNCe0JIg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQi9CV0KDQntCSINCf0JXQotCQ0KAKK9Co0JXQi9CV0KDQntCSINCf0KDQntCU0JDQnQor0KjQldCL0JXQoNCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KjQldCL0JXQoNCe0JIg0KHQkNCS0JAKK9Co0JXQi9CV0KDQntCSINCh0JjQndCY0KjQkAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQm9CQ0J3QkAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0KjQldCL0JXQoNCe0JIg0JfQm9CQ0KLQntCI0JUKK9Co0JXQi9CV0KDQntCSINCX0JvQkNCi0J7QiNCVCivQqNCV0JHQldCo0IvQldCdINCY0JzQoNCVCivQqNCV0JHQldCo0IvQldCdINCI0J7QltCV0KQKK9Co0JXQkdCV0JTQmNCd0Jgg0J3QldCS0JfQkNCUCivQqNCV0JHQldCaINCC0KPQm9CQCivQqNCV0JHQldCaINCQ0J3Qo9Co0JrQkAor0KjQldCR0JXQmiDQmNCS0JDQnQor0KjQldCR0JXQmiDQiNCe0KHQmNCfCivQqNCV0JHQldCa0J7QktCY0Isg0J/QkNCS0JvQlQor0KjQldCR0JXQlyDQlNCg0JDQk9CQ0J0KK9Co0JXQkdCV0Jcg0JTQo9Co0JDQnQor0KjQldCR0JXQlyDQm9CQ0JfQngor0KjQldCR0JXQlyDQoNCQ0JTQntCI0JrQkAor0KjQldCR0JXQlyDQodCY0JzQngor0KjQldCR0JXQlyDQodCi0JXQktCQ0J0KK9Co0JXQkdCV0Jcg0KHQotCV0JLQngor0KjQldCR0JXQlyDQodCi0JXQktCeCivQqNCV0JHQmCDQiNCV0JvQmNCm0JAKK9Co0JXQpNCn0JjQiyDQldCc0JjQmwor0KjQldCk0KfQmNCLINCc0JjQoNCa0J4KK9Co0JXQpNCV0KAg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQpNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Co0JXQpNCV0KAg0IjQo9Cb0JjQiNCVINCU0KAKK9Co0JXQpNCV0KAg0JrQkNCi0JDQoNCY0J3QkAor0KjQldCk0JXQoCDQmtCb0JDQoNCQCivQqNCV0KTQldCgINCc0JjQntCU0KDQkNCTCivQqNCV0KTQldCgINCf0JXQotCQ0KAKK9Co0JXQpNCV0KAg0KDQkNCU0J7QiNCVCivQqNCV0KTQldCgINCh0JvQkNCS0JrQngor0KjQldCT0JXQpiDQldCU0KPQkNCg0JQKK9Co0JXQk9CY0J3QkCDQndCY0JrQntCb0JAKK9Co0JXQk9CeINCd0JjQmtCe0JvQkAor0KjQldCT0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCV0JPQntCS0JjQiyDQnNCY0JvQntCoCivQqNCV0JPQoNCiINCn0JXQlNCe0JzQmNCgCivQqNCV0JPQoNCiINCn0JXQlNCe0JzQmNCgCivQqNCV0JPQoNCiINCI0J7QktCeCivQqNCV0JPQoNCiINCI0J7QktCeCivQqNCV0JPQoNCiINCc0JDQotCeCivQqNCV0JPQoNCiINCc0JvQkNCU0JXQnQor0KjQldCT0KDQoiDQndCQ0JTQkAor0KjQldCT0KDQoiDQn9CV0KLQkNCgCivQqNCV0JPQoNCiINCS0J7QiNCY0KHQm9CQ0JIKK9Co0JXQk9Cj0InQldCSINCU0KPQqNCQ0J0KK9Co0JXQk9Cj0InQldCSINCU0KPQqNCQ0J0KK9Co0JXQk9Cj0InQldCSINCU0KPQqNCQ0J0KK9Co0JXQk9Cj0InQldCSINCT0KDQo9CI0JAKK9Co0JXQk9Cj0InQldCSINCI0J7QktCQ0J0KK9Co0JXQk9Cj0InQldCSINCc0JDQoNCa0J4KK9Co0JXQk9Cj0InQldCSINCc0JjQmtCQCivQqNCV0JPQo9CJ0JXQkiDQnNCY0JvQldCd0JrQngor0KjQldCT0KPQidCV0JIg0J/QkNCI0JAKK9Co0JXQk9Cj0InQldCSINCf0JXQotCQ0KAKK9Co0JXQk9Cj0InQldCSINCg0JDQlNCe0KHQm9CQ0JIKK9Co0JXQk9Cj0InQldCSINCg0KPQltCY0KbQkAor0KjQldCT0KPQidCV0JIg0KHQm9CQ0JLQmtCeCivQqNCV0JPQo9CJ0JXQkiDQodCd0JXQltCQ0J3QkAor0KjQldCT0KPQidCV0JIg0JfQkNCT0J7QoNCa0JAKK9Co0JXQk9Cj0InQldCSINCX0J7QoNCY0KbQkAor0KjQldCl0JjQiyDQidCj0JHQmNCm0JAKK9Co0JXQpdCY0Isg0JzQmNCg0KHQkAor0KjQldCl0JjQiyDQodCb0JDQktCY0KbQkAor0KjQldCl0J7QktCY0Isg0KDQkNCc0JjQlwor0KjQldCI0JzQldCo0Jgg0KHQotCV0JLQkNCdCivQqNCV0IjQn9CV0Kgg0KjQkNCg0JvQntCi0JAKK9Co0JXQiNCf0JXQqCDQpNCV0JTQntCgCivQqNCV0IjQn9CV0Kgg0KTQldCU0J7QoAor0KjQldCI0J/QldCoINCT0JDQm9CY0J3QkAor0KjQldCI0J/QldCoINCY0JvQntCd0JAKK9Co0JXQmiDQiNCj0JvQmNCI0JDQnQor0KjQldCa0JDQoNCY0Isg0JzQmNCb0J7QodCQ0JIKK9Co0JXQmtCQ0KDQmNCLINCd0JDQlNCQCivQqNCV0JrQldCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Co0JXQmtCj0JvQkNCg0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0J7QldCmCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0JTQo9Co0JDQnQor0KjQldCa0KPQm9CQ0KDQkNCmINCf0KDQldCU0KDQkNCTCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0KHQkNCS0JrQkAor0KjQldCa0KPQm9CQ0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Co0JXQmyDQnNCQ0KDQk9CY0KLQkAor0KjQldCb0JEg0JvQkNCh0JvQngor0KjQldCb0JXQodCiINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQqNCV0InQldCcINCI0KPQm9CY0IjQkNCd0JAKK9Co0JXQidCV0Jwg0JrQkNCg0J7QiSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQidCV0Jwg0InQmNCJ0JDQndCQCivQqNCV0InQldCcINCh0KLQldCS0JDQnQor0KjQldCJ0JXQnCDQl9Ce0JvQotCQ0J0KK9Co0JXQm9Ca0JXQnSDQmNCb0J7QndCa0JAKK9Co0JXQm9Cc0JjQiyDQktCj0JrQntCc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQndCn0JXQktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Co0JXQndCR0J7QoNCdINCQ0JTQkNCb0JHQldCg0KIg0JTQoCDQn9Cg0J7QpAor0KjQldCd0JTQo9Cb0JAg0KjQkNCd0JTQntCgCivQqNCV0J3QlNCj0JvQkCDQkNCd0KLQkNCbCivQqNCV0J3QlNCj0JvQkCDQk9CQ0JHQntCgCivQqNCV0J3QpdCQ0KPQl9CV0KAg0KLQntCc0JjQodCb0JDQkgor0KjQldCd0Jog0JDQm9CR0JjQndCQCivQqNCV0J3QmiDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQndCaINCS0J7QiNCY0J0KK9Co0JXQndCi0JDQm9CV0KAg0JXQnNCY0JsKK9Co0JXQnyDQm9CV0J3QmtCQCivQqNCV0J/QqNCV0Jgg0JrQoNCY0KHQotCY0J3QkAor0KjQldCf0JAg0KHQktCV0KLQntCX0JDQoAor0KjQldCf0JDQoNCV0JLQmNCLINCU0JDQoNCa0J4KK9Co0JXQn9CQ0KDQntCS0JjQiyDQlNCQ0KDQmtCeCivQqNCV0J/QkNCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQqNCV0J/QkNCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KjQldCf0JDQoNCe0JLQmNCLINCX0J7QoNCQCivQqNCV0J/QldCmINCS0JvQkNCU0JjQnNCY0KAKK9Co0JXQn9CV0KbQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KjQldCf0JXQiSDQm9CV0J3QmtCQCivQqNCV0J/QldCg0JDQpiDQoNCQ0J3QmtCQCivQqNCV0J/QmNCLINCX0JDQlNCQCivQqNCV0J/QmNCd0KHQmtCYINCC0KPQoNCQCivQqNCV0J/QmNCd0KHQmtCYINCC0KPQoNCQCivQqNCV0J/QmNCd0KHQmtCYINCI0J7QkNCa0JjQnAor0KjQldCf0JjQndCh0JrQmCDQodCb0JDQktCY0KbQkAor0KjQldCg0JHQkNCdINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQqNCV0KDQkdCV0I/QmNCI0JAg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCg0JHQldCP0JjQiNCQINCc0JjQoNCa0J4KK9Co0JXQoNCR0JXQj9CY0IjQkCDQnNCY0KDQmtCeCivQqNCV0KDQkdCY0Isg0IjQldCb0JrQkAor0KjQldCg0JHQmNCLINCX0JDQk9Ce0KDQmtCQCivQqNCV0KDQkdCY0Isg0JfQkNCT0J7QoNCa0JAKK9Co0JXQoNCR0KPQm9CQINCR0KDQkNCd0JrQngor0KjQldCg0JHQo9Cb0JAg0JzQmNCb0JDQnQor0KjQldCg0JXQqCDQqNCQ0J3QlNCe0KAKK9Co0JXQoNCV0Kgg0JbQo9CW0JDQndCQCivQqNCV0KDQldCoINCQ0J3QkAor0KjQldCg0JXQqCDQkNCd0KLQo9CdCivQqNCV0KDQldCoINCV0J3QlNCg0JUKK9Co0JXQoNCV0Kgg0JXQodCi0JXQoAor0KjQldCg0JXQqCDQpNCg0JDQndCm0JjQqNCa0JAKK9Co0JXQoNCV0Kgg0JPQmNCX0JXQm9CQCivQqNCV0KDQldCoINCY0JzQoNCVCivQqNCV0KDQldCoINCI0JDQndCe0KgKK9Co0JXQoNCV0Kgg0JrQkNCg0J7QiSDQnNCgCivQqNCV0KDQldCoINCb0JDQodCb0J4KK9Co0JXQoNCV0Kgg0KHQotCV0JLQkNCdCivQqNCV0KDQldCT0Jgg0JfQntCb0KLQkNCdCivQqNCV0KDQldCc0JXQotCa0J7QktCh0JrQmCDQkNCb0JXQmtCh0JAKK9Co0JXQoNCV0JzQldCi0JrQntCS0KHQmtCYINCR0J7QndCQCivQqNCV0KDQldCgINCb0JXQndCa0JAKK9Co0JXQoNCk0JXQl9CYINCC0KPQoNCQCivQqNCV0KDQmNCLINCc0JjQm9Ca0JAKK9Co0JXQoNCY0KQg0J3QldCo0JDQogor0KjQldCg0JjQpNCYINCg0JDQkdCY0IjQkAor0KjQldCg0JjQpNCYINCh0JDQpNCV0KIKK9Co0JXQoNCa0J7QkiDQidCY0InQkNCd0JAKK9Co0JXQoNCa0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQqNCV0KDQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Co0JXQodCV0Jog0KHQotCQ0J3QmNCh0JvQkNCSCivQqNCV0KHQotCQ0J0g0JHQntCg0JjQoQor0KjQldCh0KLQkNCd0J7QkiDQkdCg0JDQndCa0J4KK9Co0JXQodCi0JDQndCe0JIg0JzQmNCb0JXQndCQCivQqNCV0KHQotCY0Isg0JHQntCT0JTQkNCdCivQqNCV0KLQkNCb0J4g0KjQkNCd0JTQntCgCivQqNCV0KLQkNCb0J4g0KTQoNCQ0IrQkAor0KjQldCi0JDQm9CeINCY0JzQoNCVCivQqNCV0KLQkNCb0J4g0JjQnNCg0JUKK9Co0JXQotCQ0JvQniDQmtCQ0KDQm9CeCivQqNCV0KLQkNCb0J4g0JrQkNCg0J7QiQor0KjQldCi0JrQkCDQmtCQ0KLQkAor0KjQldCi0JrQkCDQotCe0JzQmNCh0JvQkNCSCivQqNCV0KLQoNCQ0IjQp9CY0Isg0JjQm9CU0JjQmtCeCivQqNCV0JLQp9CY0Isg0ILQntCg0ILQlQor0KjQldCS0JDQoCDQldCc0JjQm9CY0IjQkAor0KjQldCS0JDQoCDQiNCe0KHQmNCfINCS0JXQotCV0KDQmNCd0JDQoAor0KjQldCS0JDQoCDQktCb0JDQlNCY0KHQm9CQ0JIKK9Co0JXQktCQ0KDQm9CY0Isg0JrQntCh0KLQkAor0KjQldCS0JXQoNCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KjQldCS0JjQiyDQgtCe0KDQgtCVINCc0KAKK9Co0JXQktCY0Isg0ILQntCg0ILQlQor0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Co0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Co0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCS0JjQiyDQiNCe0JLQngor0KjQldCS0JjQiyDQm9CQ0JfQkNCgCivQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Co0JXQktCY0Isg0JzQmNCb0J7QqAor0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Co0JXQktCY0Isg0J3QkNCU0JAKK9Co0JXQktCY0Isg0J3QkNCU0JAKK9Co0JXQktCY0Isg0J/QldCi0JDQoAor0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQqNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQqNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQqNCV0JLQmNCLINCh0JDQktCa0JAKK9Co0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KjQldCS0JjQiyDQodCg0ILQkNCdCivQqNCV0JLQmNCLINCi0KDQmNCS0J4KK9Co0JXQktCeINCn0JXQlNCe0JzQmNCgCivQqNCV0JLQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQldCS0J4g0JHQntCo0JrQngor0KjQldCS0J4g0JHQntCo0JrQngor0KjQldCS0J4g0JHQoNCQ0J3QmtCeCivQqNCV0JLQniDQlNCj0KjQkNCdCivQqNCV0JLQniDQiNCe0JLQngor0KjQldCS0J4g0JzQmNCb0JDQnQor0KjQldCS0J4g0JzQmNCb0JDQnQor0KjQldCS0J4g0JzQmNCb0JDQnQor0KjQldCS0J4g0JzQm9CQ0JTQldCdCivQqNCV0JLQniDQodCb0JDQktCY0KbQkAor0KjQldCS0J4g0JLQm9CQ0JTQngor0KjQmNCo0JAg0IjQntCh0JjQnwor0KjQmNCo0JAg0IjQntCh0JjQnwor0KjQmNCo0JDQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KjQmNCo0JDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQqNCQ0KDQmNCm0JAg0InQo9Cf0JrQngor0KjQmNCo0JDQoNCY0KbQkCDQl9CU0KDQkNCS0JrQngor0KjQmNCo0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Co0JjQqNCY0Isg0JzQmNCb0JDQnQor0KjQmNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Co0JjQqNCY0Isg0J/QldCi0JrQkAor0KjQmNCo0JjQiyDQodCi0IjQldCf0JDQnQor0KjQmNCo0JrQkCDQnNCQ0KDQk9CY0KLQkAor0KjQmNCo0JrQntCSINCQ0J3QotCVCivQqNCY0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Co0JjQqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQmNCo0InQkNCT0JjQiyDQp9CV0JTQngor0KjQmNCo0InQkNCT0JjQiyDQlNCj0KjQkNCdCivQqNCY0KjQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCY0KjQntCS0JjQiyDQnNCY0JvQkNCo0JjQnQor0KjQmNCC0JDQndCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCY0ILQkNCd0JjQnSDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0KjQmNCC0JDQndCY0J0g0JzQmNCb0JjQptCQCivQqNCY0ILQkNCd0JjQnSDQnNCY0JvQntCI0JUg0JTQmNCf0Jsg0JjQndCTCivQqNCY0ILQkNCd0KHQmtCYINCR0KPQlNCY0JzQmNCgCivQqNCY0ILQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQkdCQ0JvQmNCLINCY0JvQmNCI0JAKK9Co0JjQkdCQ0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQqNCY0JHQo9CbINCX0J7QoNCQ0J0KK9Co0JjQkdCj0Jsg0JfQntCg0JjQptCQCivQqNCY0JHQo9Cb0J7QkiDQgtCj0KDQkAor0KjQmNCmINCc0JDQoNCY0IjQkAor0KjQmNCmINCi0JXQoNCV0JfQkAor0KjQmNCk0JvQmNCoINCI0JDQk9Ce0JTQkAor0KjQmNCk0JvQmNCoINCb0JDQiNCe0KgKK9Co0JjQpNCb0JjQqCDQodCb0JDQktCa0J4KK9Co0JjQk9Cj0JQg0ILQntCg0ILQlQor0KjQmNCl0JAg0JjQqNCi0JLQkNCdCivQqNCY0IjQkNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQmNCI0JDQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Co0JjQiNCQ0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmNCLINCR0J7QodCY0InQmtCQCivQqNCY0IjQkNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmNCLINCU0JDQndCY0KbQkAor0KjQmNCI0JDQp9CY0Isg0JTQkNCd0JjQptCQCivQqNCY0IjQkNCn0JjQiyDQlNCQ0J3QmNCb0J4KK9Co0JjQiNCQ0KfQmNCLINCU0JDQndCY0JvQngor0KjQmNCI0JDQp9CY0Isg0JTQo9Co0JDQnQor0KjQmNCI0JDQp9CY0Isg0JTQo9Co0JjQptCQCivQqNCY0IjQkNCn0JjQiyDQlNCj0KjQmNCm0JAKK9Co0JjQiNCQ0KfQmNCLINCI0JXQm9CY0KbQkAor0KjQmNCI0JDQp9CY0Isg0JvQldCh0JAKK9Co0JjQiNCQ0KfQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Co0JjQiNCQ0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCY0IjQkNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQqNCY0IjQkNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQqNCY0IjQkNCn0JjQiyDQodCi0JDQndCa0JAKK9Co0JjQiNCQ0KfQmNCLINCh0KLQldCS0JDQnQor0KjQmNCI0JDQp9CY0Isg0JfQntCg0JjQptCQCivQqNCY0IjQkNCn0JrQmCDQltCY0JLQkAor0KjQmNCI0JDQp9Ca0Jgg0JbQmNCS0JrQngor0KjQmNCI0JDQp9Ca0Jgg0ILQo9Cg0ILQmNCd0JrQkAor0KjQmNCI0JDQp9Ca0Jgg0JHQntCW0JjQlNCQ0KAKK9Co0JjQiNCQ0KfQmtCYINCU0KDQkNCT0JDQndCQCivQqNCY0IjQkNCn0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0KjQmNCI0JDQp9Ca0Jgg0JjQodCQCivQqNCY0IjQkNCn0JrQmCDQiNCe0JLQkNCdCivQqNCY0IjQkNCn0JrQmCDQmtCe0KHQotCQCivQqNCY0IjQkNCn0JrQmCDQm9CQ0JfQkNCgCivQqNCY0IjQkNCn0JrQmCDQnNCY0JvQkNCdCivQqNCY0IjQkNCn0JrQmCDQnNCY0JvQldCd0JrQngor0KjQmNCI0JDQp9Ca0Jgg0JzQmNCb0J7QqAor0KjQmNCI0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9Co0JjQiNCQ0KfQmtCYINCd0JXQodCi0J7QoCDQlNCgCivQqNCY0IjQkNCn0JrQmCDQn9CV0KLQkNCgCivQqNCY0IjQkNCn0JrQmCDQn9Cg0JXQlNCg0JDQkwor0KjQmNCI0JDQp9Ca0Jgg0KDQkNCU0J7QodCb0JDQktCQCivQqNCY0IjQkNCn0JrQmCDQodCY0JzQkAor0KjQmNCI0JDQp9Ca0Jgg0KHQm9CQ0JLQmtCeCivQqNCY0IjQkNCn0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQqNCY0IjQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Co0JjQiNCQ0KfQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmtCYINCS0JjQotCe0JzQmNCgCivQqNCY0IjQkNCn0JrQmCDQktCj0IjQmNCm0JAKK9Co0JjQiNCQ0Jog0ILQntCg0ILQlQor0KjQmNCI0JDQmiDQiNCV0JvQmNCm0JAKK9Co0JjQiNCQ0Jog0JzQmNCb0JXQndCa0J4KK9Co0JjQiNCQ0Jog0JzQmNCb0J7QqAor0KjQmNCI0JDQmiDQn9CQ0JLQm9CVCivQqNCY0IjQkNCaINCf0JXQotCQ0KAKK9Co0JjQiNCQ0Jog0KLQntCc0JAKK9Co0JjQiNCQ0JrQntCSINCh0KLQkNCd0JjQodCb0JDQktCQCivQqNCY0IjQkNCa0J7QkiDQktCV0InQmtCeCivQqNCY0IjQkNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0JjQiNCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQmNCI0JDQmtCe0JLQmNCLINCh0KLQldCS0JAKK9Co0JjQiNCQ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCY0IjQkNCdINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQqNCY0IjQkNCdINCR0J7QiNCQCivQqNCY0IjQkNCdINCR0KDQkNCd0JrQngor0KjQmNCI0JDQnSDQkdCg0JDQndCa0J4KK9Co0JjQiNCQ0J0g0JHQoNCQ0J3QmtCeCivQqNCY0IjQkNCdINCU0JDQndCVCivQqNCY0IjQkNCdINCY0JvQmNCI0JAKK9Co0JjQiNCQ0J0g0JzQmNCb0JXQktCQCivQqNCY0IjQkNCdINCc0JjQm9Ce0KgKK9Co0JjQiNCQ0J0g0JzQmNCg0JrQngor0KjQmNCI0JDQnSDQndCV0JLQldCd0JrQkAor0KjQmNCI0JDQnSDQndCY0JrQntCb0JAKK9Co0JjQiNCQ0J0g0KDQkNCU0JUKK9Co0JjQiNCQ0J0g0KHQm9Ce0JHQntCU0JDQnQor0KjQmNCI0KPQmiDQlNCg0JDQk9CQ0J0KK9Co0JjQmiDQotCY0JHQntCgCivQqNCY0JrQldCiINCY0KjQotCS0JDQnQor0KjQmNCa0JXQoiDQmNCo0KLQktCQ0J0KK9Co0JjQmtCV0KIg0JjQnNCg0JUKK9Co0JjQmtCV0KIg0IjQntCW0JXQpAor0KjQmNCa0JXQoiDQm9CQ0KHQm9CeCivQqNCY0JrQldCiINCb0JDQodCb0J4KK9Co0JjQmtCV0KIg0JvQkNCh0JvQngor0KjQmNCa0JXQoiDQnNCQ0JPQlNCQCivQqNCY0JrQldCiINCh0KLQldCS0JDQnQor0KjQmNCa0JjQiyDQkdCe0JPQlNCQ0J0KK9Co0JjQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KjQmNCa0JzQkNCdINCX0JLQntCd0JrQngor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0ILQntCg0ILQlQor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0JHQntCg0JjQodCb0JDQkgor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0JTQo9Co0JDQnQor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0IjQldCb0JXQndCQCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQnNCY0JvQkNCdCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQndCV0JLQldCd0JAKK9Co0JjQmtCe0J/QkNCg0JjQiNCQINCi0JjQpdCe0JzQmNCgCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQotCY0KXQntCc0JjQoAor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KjQmNCb0JUg0KjQkNCd0JTQntCgCivQqNCY0JvQlSDQm9CQ0JTQmNCh0JvQkNCSCivQqNCY0JvQlSDQl9Ce0JvQotCQ0J0KK9Co0JjQm9CV0KAg0JzQmNCb0J7QoNCQ0JQKK9Co0JjQm9CV0KAg0JzQmNCb0J7QoNCQ0JQKK9Co0JjQm9CYINCY0KjQotCS0JDQnQor0KjQmNCb0Jgg0JrQkNCg0JvQngor0KjQmNCb0Jgg0JzQmNCl0JDQiNCb0J4KK9Co0JjQm9CYINCS0JDQm9CV0KDQmNCI0JAKK9Co0JjQm9CY0Isg0ILQntCg0ILQlQor0KjQmNCb0JjQiyDQgtCe0KDQgtCVCivQqNCY0JvQmNCLINCC0J7QoNCC0JUKK9Co0JjQm9CY0Isg0JDQndCQCivQqNCY0JvQmNCLINCR0J7Qk9CU0JDQnQor0KjQmNCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Co0JjQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KjQmNCb0JjQiyDQlNCj0KjQmNCm0JAKK9Co0JjQm9CY0Isg0IjQntCS0JDQnQor0KjQmNCb0JjQiyDQidCj0JHQmNCm0JAKK9Co0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoAor0KjQmNCb0JjQiyDQnNCY0JvQntCh0JDQktCQCivQqNCY0JvQmNCLINCc0JjQoNCI0JDQndCQCivQqNCY0JvQmNCLINCc0JjQoNCa0J4KK9Co0JjQm9CY0Isg0JzQmNCg0JrQngor0KjQmNCb0JjQiyDQndCQ0JTQkAor0KjQmNCb0JjQiyDQndCY0JrQntCb0JAKK9Co0JjQm9CY0Isg0J7Qm9CT0JjQptCQCivQqNCY0JvQmNCLINCe0JvQk9CY0KbQkAor0KjQmNCb0JjQiyDQn9CV0KLQkNCgCivQqNCY0JvQmNCLINCf0JXQotCQ0KAKK9Co0JjQm9CY0Isg0KDQkNCm0JrQngor0KjQmNCb0JjQiyDQodCQ0JLQkAor0KjQmNCb0JjQiyDQodCf0JDQodCV0J3QmtCQCivQqNCY0JvQmNCLINCh0KLQntCI0JDQnQor0KjQmNCb0JjQiyDQotCe0KjQkAor0KjQmNCb0JjQiyDQotCe0JTQntCgCivQqNCY0JvQmNCLINCS0JDQodCQCivQqNCY0JvQmNCLINCS0JXQoNCQCivQqNCY0JvQmNCLINCS0JjQotCe0JzQmNCgCivQqNCY0InQldCTINCI0J7Ql9CeCivQqNCY0InQldCT0J7QktCY0Isg0JHQntCo0JrQngor0KjQmNCJ0JXQk9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Co0JjQidCV0JPQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCY0InQldCT0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQmNCJ0JXQk9Ce0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQqNCY0InQldCT0J7QktCY0Isg0JzQmNCb0JDQnQor0KjQmNCJ0JXQk9Ce0JLQmNCLINCd0JDQlNCQCivQqNCY0InQmNCLINCL0JDQnNCY0JsKK9Co0JjQidCa0KPQoiDQnNCY0JvQkNCdCivQqNCY0InQmtCj0KIg0JzQmNCb0JDQnQor0KjQmNCJ0JrQo9CiINCc0JjQoNCa0J4KK9Co0JjQnNCn0JjQiyDQntCb0JPQmNCm0JAKK9Co0JjQnNCo0JjQiyDQlNCj0KjQkNCdCivQqNCY0JzQqNCY0Isg0JjQm9CY0IjQkAor0KjQmNCc0KjQmNCLINCh0JDQktCeCivQqNCY0JzQkCDQiNCe0JDQmtCY0JwKK9Co0JjQnNCQINCc0JDQoNCT0JjQotCQCivQqNCY0JzQkCDQktCV0KDQntCd0JjQmtCQCivQqNCY0JzQkNCaINCI0JDQnQor0KjQmNCc0JDQm9CQINCS0JjQmtCi0J7QoAor0KjQmNCc0JDQnSDQkNCb0JXQmtCh0JXQiAor0KjQmNCc0JDQndCU0Jgg0JPQkNCR0KDQmNCI0JXQm9CQCivQqNCY0JzQkNCd0JTQmCDQodCi0JXQktCQ0J0KK9Co0JjQnNCV0Jog0JLQm9CQ0KLQmtCeCivQqNCY0JzQmNCn0JjQiyDQn9CV0KLQkNCgCivQqNCY0JzQmNCn0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Co0JjQnNCY0Isg0JDQndCi0J4KK9Co0JjQnNCY0Isg0JHQntCW0JDQndCQCivQqNCY0JzQmNCLINCk0KDQkNCK0J4KK9Co0JjQnNCY0Isg0JPQmNCX0JXQm9CQCivQqNCY0JzQmNCLINCl0KDQktCe0IjQlQor0KjQmNCc0JjQiyDQiNCj0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Co0JjQnNCY0Isg0JzQmNCb0JDQnQor0KjQmNCc0JjQiyDQnNCY0JvQkNCdCivQqNCY0JzQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQnNCY0Isg0JzQm9CQ0JTQldCdCivQqNCY0JzQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Co0JjQnNCY0Isg0KHQm9CQ0JLQmtCeCivQqNCY0JzQmNCLINCh0JvQkNCS0JrQngor0KjQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9Co0JjQnNCY0JMg0KLQmNCR0J7QoAor0KjQmNCc0J7QmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Co0JjQnNCe0J0g0KjQkNCd0JTQntCgCivQqNCY0JzQntCdINCC0JXQoNCCCivQqNCY0JzQntCdINCQ0KDQn9CQ0JQKK9Co0JjQnNCe0J0g0JXQoNCW0JXQkdCV0KIKK9Co0JjQnNCe0J0g0JzQkNCg0JjQptCQCivQqNCY0JzQntCdINCc0JjQpdCQ0IkKK9Co0JjQnNCe0J0g0JLQmNCb0JzQntCoINCU0KAKK9Co0JjQnNCe0J3QmNCaINCS0JvQkNCU0JAKK9Co0JjQnNCe0IrQmCDQqNCQ0J3QlNCe0KAKK9Co0JjQnNCe0IrQmCDQkdCQ0KDQkdCQ0KDQkAor0KjQmNCc0J7QitCYINCI0JDQndCe0KgKK9Co0JjQnNCe0IrQmCDQodCe0KTQmNCI0JAKK9Co0JjQnNCe0IrQmCDQl9Ce0JvQotCQ0J0KK9Co0JjQnNCe0IrQmCDQl9CS0J7QndCa0J4KK9Co0JjQnNCe0IrQmNCaINCc0JDQotCY0IjQkAor0KjQmNCc0J7QktCY0Isg0IjQntCW0JXQpAor0KjQmNCc0J7QktCY0Isg0JzQmNCg0J4KK9Co0JjQnNCf0KDQkNCT0JAg0JTQo9Co0JDQnQor0KjQmNCc0J/QoNCQ0JPQkCDQiNCQ0JTQoNCQ0J3QmtCQCivQqNCY0JzQo9CU0JLQkNCg0JDQpiDQn9CQ0JLQkNCeCivQqNCY0JzQo9Cb0JjQiNCQINCU0KDQkNCW0JXQnQor0KjQmNCc0KPQm9CY0IjQkCDQiNCe0JLQngor0KjQmNCc0KPQndCC0JAg0InQo9CR0J7QnNCY0KAKK9Co0JjQnNCj0J3QldCmINCc0JDQoNCY0IjQkAor0KjQmNCc0KPQndCY0Isg0JDQndCa0JAKK9Co0JjQnNCj0J3QmNCLINCY0JLQkNCdCivQqNCY0JzQo9Cd0JjQiyDQmtCQ0KDQm9CeCivQqNCY0JzQo9Cd0JjQiyDQodCi0JXQktCQ0J0KK9Co0JjQnNCj0J3QntCS0JDQp9Ca0Jgg0JrQkNCi0JjQptCQCivQqNCY0JzQo9Cd0J7QktCQ0KfQmtCYINCd0JjQmtCe0JvQkAor0KjQmNCc0KPQndCe0JLQkNCn0JrQmCDQndCY0JrQntCb0JAKK9Co0JjQnNCj0J3QntCS0JDQp9Ca0Jgg0KHQm9CQ0JLQmtCeCivQqNCY0JzQo9Cd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Co0JjQnNCj0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KjQmNCc0KPQndCe0JLQmNCLINCI0J7QodCY0J8KK9Co0JjQnNCj0J3QntCS0JjQiyDQiNCe0KHQmNCfCivQqNCY0JzQo9Cd0J7QktCY0Isg0IjQntCh0JjQnwor0KjQmNCc0KPQndCe0JLQmNCLINCd0JXQndCQ0JQKK9Co0JjQnNCj0J3QntCS0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQqNCY0JzQo9Cd0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQqNCY0JzQo9Cd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQqNCY0JzQo9Cd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KjQmNCc0KPQndCe0JLQmNCLINCi0J7QnNCQCivQqNCY0J3QkNCT0Jsg0JrQkNCg0J7QiQor0KjQmNCd0JDQk9CbINCa0JDQoNCe0IkKK9Co0JjQndCQ0JPQmyDQntCi0J4KK9Co0JjQndCQ0JPQmyDQodCi0JXQktCQ0J0KK9Co0JjQndCY0Jog0JTQoNCQ0JPQkNCdCivQqNCY0J3QmNCa0J7QkiDQgtCe0KDQgtCVCivQqNCY0J3QmNCa0J7QkiDQnNCY0JvQkNCdCivQqNCY0J3QmtCQINCc0JDQoNCT0JjQotCQCivQqNCY0J3QmtCQINCX0JvQkNCi0JrQngor0KjQmNCd0JrQniDQk9CY0JfQldCb0JAKK9Co0JjQndCa0J4g0JjQktCQ0J3QmtCQCivQqNCY0J3QmtCeINCI0JDQndCe0KgKK9Co0JjQndCa0J4g0KHQotCV0JLQkNCdCivQqNCY0J3QmtCeINCS0JvQkNCU0JjQodCb0JDQkgor0KjQmNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Co0JjQn9Cn0JjQiyDQidCj0JHQntCc0JjQoAor0KjQmNCf0KfQmNCLINCc0JDQoNCY0IjQkAor0KjQmNCf0KfQmNCLINCc0JjQlNCeCivQqNCY0J/Qp9CY0Isg0JzQmNCI0J7QlNCg0JDQkwor0KjQmNCf0KfQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Co0JjQn9CV0Jog0IjQntCh0JjQnyDQndCe0JLQmNCd0JDQoAor0KjQmNCf0JXQotCY0Isg0JDQndCC0JAKK9Co0JjQn9CV0KLQmNCLINCc0J7QnNCn0JjQm9CeCivQqNCY0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQqNCY0J/QmNCdINCI0J7QktCQ0J3QmtCQCivQqNCY0J/QmtCQINCR0J7QltCQCivQqNCY0J/QmtCQINCR0J7QltCeCivQqNCY0J/QmtCQINCR0KDQkNCd0JrQngor0KjQmNCf0JrQkCDQlNCg0JDQk9CQ0J0KK9Co0JjQn9Ca0JAg0JTQoNCQ0JPQngor0KjQmNCf0JrQkCDQk9Cg0KPQiNCeCivQqNCY0J/QmtCQINCc0JDQoNCa0J4KK9Co0JjQn9Ca0JAg0JzQmNCg0JrQngor0KjQmNCf0JrQkCDQnNCY0KDQntCh0JvQkNCSCivQqNCY0J/QmtCQINCc0JjQoNCeCivQqNCY0J/QmtCQINCd0JXQgtCeCivQqNCY0J/QmtCQINCX0J7QoNCQ0J0KK9Co0JjQn9Ca0JAg0JfQntCg0JDQnQor0KjQmNCf0J7QqCDQqNCQ0J3QlNCe0KAKK9Co0JjQn9Ce0Kgg0ILQntCg0ILQlQor0KjQmNCf0J7QqCDQgtCe0KDQgtCVCivQqNCY0J/QntCoINCC0KPQoNCQCivQqNCY0J/QntCoINCC0KPQoNCeCivQqNCY0J/QntCoINCV0JTQmNCiCivQqNCY0J/QntCoINCV0KDQltCV0JHQldCiCivQqNCY0J/QntCoINCY0JPQitCQ0KYKK9Co0JjQn9Ce0Kgg0IjQkNCd0J7QqAor0KjQmNCf0J7QqCDQiNCe0JLQkNCd0JrQkAor0KjQmNCf0J7QqCDQiNCe0JLQkNCdCivQqNCY0J/QntCoINCI0KPQm9CY0IjQkNCd0JAKK9Co0JjQn9Ce0Kgg0JzQmNCg0IjQkNCd0JAKK9Co0JjQn9Ce0Kgg0KDQntCX0JDQm9CY0IjQkAor0KjQmNCf0J7QqCDQktCb0JDQlNCY0JzQmNCgCivQqNCY0J/QntCo0JXQktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Co0JjQn9Ce0KHQmtCYINCa0KDQodCi0JUKK9Co0JjQn9Ce0JLQkNCmINCm0JLQmNCI0JXQotCQCivQqNCY0J/QntCS0JDQpiDQlNCQ0J3QmNCb0J4KK9Co0JjQn9Ce0JLQkNCmINCI0JDQitCQCivQqNCY0J/QntCS0JDQpiDQndCV0JTQldCJ0JrQngor0KjQmNCf0J7QktCQ0KYg0KDQkNCU0JjQptCQCivQqNCY0J/QntCS0JDQpiDQktCQ0KHQmNCb0JjQiNCQCivQqNCY0J/QoNCQ0JPQkCDQo9Cg0J7QqAor0KjQmNCf0KPQqNCY0Isg0KXQldCb0JXQndCQCivQqNCY0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCY0KDQmNCI0J7QktCh0JrQmCDQk9Ce0KbQlQor0KjQmNCg0JrQkCDQiNCQ0J0KK9Co0JjQoNCa0JAg0KHQkNCc0KPQldCbCivQqNCY0KDQntCn0JrQkCDQkNCd0KLQo9CdCivQqNCY0KDQntCa0Jgg0JDQlNCQ0JwKK9Co0JjQoNCe0JvQkCDQmNCS0JDQnQor0KjQmNCg0J7QndCY0Isg0InQo9CR0J4KK9Co0JjQodCi0J7QkiDQlNCg0JDQk9CeCivQqNCY0KLQlSDQmtCQ0KDQntCJCivQqNCY0KLQlSDQnNCQ0KDQmNCI0JAKK9Co0JjQotCVINCi0JjQkdCe0KAKK9Co0JjQotCV0KAg0JrQkNCg0JvQngor0KjQmNCi0JXQoCDQoNCj0JbQmNCm0JAKK9Co0JjQotCV0KAg0KHQm9Ce0JHQntCU0JDQnQor0KjQmNCS0JXQk9CYINCY0JzQoNCVCivQqNCa0JDQidCQ0KYg0KHQotCQ0J3QmtCeCivQqNCa0JDQidCQ0KYg0JfQntCg0JDQnQor0KjQmtCQ0KDQmNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQqNCa0JDQoNCY0KbQkCDQlNCe0JvQntCg0JXQoQor0KjQmtCQ0KDQmNCm0JAg0KHQotCI0JXQn9CQ0J0KK9Co0JrQkNCg0JjQnSDQotCe0JTQntCgCivQqNCa0JDQotCQ0KDQmNCLINCX0J7QoNCQ0J0KK9Co0JrQkNCS0JjQiyDQptCS0JjQiNCeCivQqNCa0JDQktCY0Isg0IjQntCS0J4KK9Co0JrQkNCS0JjQiyDQnNCY0JvQkNCdCivQqNCa0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQqNCa0JXQmtCY0Isg0JzQmNCe0JzQmNCgCivQqNCa0JjQidCQ0IjQmNCm0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KjQmtCY0InQldCS0JjQiyDQnNCY0JvQmNCU0KDQkNCTCivQqNCa0J7QkdCQ0Ikg0J3QkNCU0JAKK9Co0JrQntCR0JDQiSDQktCe0IjQmNCh0JvQkNCSCivQqNCa0J7QlNCQ0Jog0J/QkNCS0JvQlQor0KjQmtCe0JvQntCf0JjQiNCQINCb0JDQl9CQ0KAKK9Co0JrQntCd0JTQoNCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KjQmtCe0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQqNCa0J7QoNCY0Isg0KjQotCg0JDQptCY0JzQmNCgCivQqNCa0J7QoNCY0Isg0ILQo9CI0JAKK9Co0JrQntCg0JjQiyDQgtCj0KDQngor0KjQmtCe0KDQmNCLINCQ0J3QmtCQCivQqNCa0J7QoNCY0Isg0JHQntCh0JjQidCa0JAKK9Co0JrQntCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JrQntCg0JjQiyDQkdCg0JDQndCa0J4KK9Co0JrQntCg0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0KjQmtCe0KDQmNCLINCU0KDQkNCT0JDQnQor0KjQmtCe0KDQmNCLINCU0KDQkNCT0JDQnQor0KjQmtCe0KDQmNCLINCU0KPQqNCQ0J0KK9Co0JrQntCg0JjQiyDQlNCj0KjQkNCdCivQqNCa0J7QoNCY0Isg0JTQo9Co0JDQnQor0KjQmtCe0KDQmNCLINCU0KPQqNCa0J4KK9Co0JrQntCg0JjQiyDQk9Cg0KPQnNCY0JrQntCSCivQqNCa0J7QoNCY0Isg0IjQntCS0JDQnQor0KjQmtCe0KDQmNCLINCI0J7QktCQ0J0KK9Co0JrQntCg0JjQiyDQmtCh0JXQndCY0IjQkAor0KjQmtCe0KDQmNCLINCb0JDQl9CQ0KAKK9Co0JrQntCg0JjQiyDQidCY0InQkNCd0JAKK9Co0JrQntCg0JjQiyDQnNCQ0KDQkAor0KjQmtCe0KDQmNCLINCc0JDQoNCY0IjQkAor0KjQmtCe0KDQmNCLINCc0JDQoNCY0IjQkAor0KjQmtCe0KDQmNCLINCc0JjQi9CeCivQqNCa0J7QoNCY0Isg0JzQmNCb0JDQnQor0KjQmtCe0KDQmNCLINCc0JjQm9CQ0J0KK9Co0JrQntCg0JjQiyDQnNCY0JvQkNCdCivQqNCa0J7QoNCY0Isg0JzQmNCb0JDQnQor0KjQmtCe0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQqNCa0J7QoNCY0Isg0JzQmNCb0JjQktCe0IgKK9Co0JrQntCg0JjQiyDQnNCY0JvQmtCQCivQqNCa0J7QoNCY0Isg0JzQmNCb0J7QqAor0KjQmtCe0KDQmNCLINCc0JjQoNCI0JDQndCQCivQqNCa0J7QoNCY0Isg0JzQmNCg0JrQngor0KjQmtCe0KDQmNCLINCc0JjQoNCa0J4KK9Co0JrQntCg0JjQiyDQnNCY0KDQmtCeCivQqNCa0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQqNCa0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQqNCa0J7QoNCY0Isg0J/QkNCS0JvQlQor0KjQmtCe0KDQmNCLINCf0JDQktCb0JUKK9Co0JrQntCg0JjQiyDQn9CV0KDQngor0KjQmtCe0KDQmNCLINCh0JvQkNCS0JrQngor0KjQmtCe0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Co0JrQntCg0JjQiyDQodCc0JjQidCQCivQqNCa0J7QoNCY0Isg0KHQnNCY0InQkAor0KjQmtCe0KDQmNCLINCh0KDQldCL0JrQngor0KjQmtCe0KDQmNCLINCh0KLQkNCd0JAKK9Co0JrQntCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQqNCa0J7QoNCY0Isg0JfQntCg0JAKK9Co0JrQntCg0J4g0KjQmNCc0JUKK9Co0JrQntCg0J4g0JzQmNCg0IjQkNCd0JAKK9Co0JrQntCg0J4g0JLQkNCh0JjQm9CY0IjQkAor0KjQmtCg0JDQktCQ0J0g0JDQndCU0KDQmNCI0JAKK9Co0JrQoNCR0JjQiyDQltCV0InQmtCeCivQqNCa0KDQkdCY0Isg0ILQo9Cg0J4KK9Co0JrQoNCR0JjQiyDQkNCd0JjQptCQCivQqNCa0KDQkdCY0Isg0JHQm9CQ0JbQngor0KjQmtCg0JHQmNCLINCR0J7QltCeCivQqNCa0KDQkdCY0Isg0JHQntCI0JDQndCQCivQqNCa0KDQkdCY0Isg0JHQoNCQ0J3QmtCeCivQqNCa0KDQkdCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0JrQoNCR0JjQiyDQlNCj0KjQkNCdCivQqNCa0KDQkdCY0Isg0IjQntCS0JDQnQor0KjQmtCg0JHQmNCLINCI0J7QktCQ0J0KK9Co0JrQoNCR0JjQiyDQidCj0JHQmNCm0JAKK9Co0JrQoNCR0JjQiyDQnNCQ0KDQkAor0KjQmtCg0JHQmNCLINCc0JDQoNCY0KbQkAor0KjQmtCg0JHQmNCLINCc0JjQm9CVCivQqNCa0KDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Co0JrQoNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQmtCg0JHQmNCLINCd0JXQkdCe0IjQqNCQCivQqNCa0KDQkdCY0Isg0J7QodCi0J7QiNCQCivQqNCa0KDQkdCY0Isg0J/QldCi0JDQoAor0KjQmtCg0JHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Co0JrQoNCR0JjQiyDQodCS0JXQotCe0JfQkNCgCivQqNCa0KDQkdCY0Isg0JfQntCg0JrQkAor0KjQmtCg0JHQmNCd0JAg0KHQotCI0JXQn9CQ0J0KK9Co0JrQoNCT0JXQoiDQiNCe0KHQmNCfCivQqNCa0KDQmNCI0JXQmyDQlNCg0JDQk9CQ0J0KK9Co0JrQoNCY0IjQldCbINCc0JjQm9CQ0J0KK9Co0JrQoNCY0IjQldCJINCQ0IjQndCY0IjQkAor0KjQmtCg0JjQiNCV0Ikg0KHQkNCc0JjQoAor0KjQmtCg0JjQiNCV0Ikg0JLQldCl0JHQngor0KjQmtCg0JjQitCQ0KAg0JrQkNCg0J7QiQor0KjQmtCg0JjQitCQ0KAg0JzQkNCg0JjQngor0KjQmtCg0JjQitCQ0KAg0JfQktCe0J3QmNCc0JjQoAor0KjQmtCg0JjQktCQ0J0g0ILQo9Cg0JAKK9Co0JrQoNCY0JLQkNCdINCQ0J3QotCj0J0KK9Co0JrQoNCY0JLQkNCdINCk0KDQkNCK0JAKK9Co0JrQoNCY0JLQkNCdINCa0JDQoNCb0J4KK9Co0JrQoNCY0JLQkNCdINCb0JDQlNCY0KHQm9CQ0JIKK9Co0JrQoNCY0JLQkNCdINCf0JXQotCQ0KAKK9Co0JrQoNCY0JLQkNCdINCh0KLQldCS0JDQnQor0KjQmtCg0JjQktCQ0J0g0KHQotCV0JLQkNCdCivQqNCa0KDQmNCS0JDQiiDQn9CY0KjQotCQCivQqNCa0KPQm9CV0KLQmNCLINCe0JvQk9CQCivQqNCa0KPQm9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Co0JrQo9Cd0KbQkCDQmNCS0JDQnQor0KjQmtCj0J3QptCQINCI0JXQm9CY0KbQkAor0KjQmtCj0J3QlNCg0JjQiyDQlNCj0KjQkNCdCivQqNCa0KPQndCU0KDQmNCLINCc0JjQm9CY0KbQkAor0KjQmtCj0J3QlNCg0JjQiyDQn9CV0KLQkNCgCivQqNCa0KPQndCU0KDQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Co0JrQktCQ0KDQldCaINCS0JvQkNCU0JAKK9Co0JvQkNCl0KLQldCgINCS0JXQndCU0JXQmwor0KjQm9CQ0IjQldCgINCg0KPQlNCe0JvQpAor0KjQm9CQ0JLQmNCaINCY0JvQntCd0JAKK9Co0JvQldCl0KLQkCDQl9CU0JXQndCa0J4KK9Co0JvQldCc0JXQndCU0JXQoCDQgtCe0KDQgtCVCivQqNCb0JXQnNCV0J3QlNCV0KAg0JDQndCT0JXQm9CQCivQqNCb0JXQnNCV0J3QlNCV0KAg0JjQoNCV0J3QkAor0KjQidCQ0J/QmNCLINCT0J7QoNCQ0J0KK9Co0InQkNCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KjQidCQ0J/QmNCLINCe0JHQoNCV0J0KK9Co0InQkNCf0JjQiyDQoNCj0JbQmNCm0JAKK9Co0InQkNCf0JjQiyDQodCi0JXQktCQ0J0KK9Co0InQkNCf0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KjQidCQ0J/QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Co0InQkNCf0JjQiyDQktCV0JvQldCc0JjQoAor0KjQidCY0JLQkNCd0KfQkNCd0JjQnSDQiNCe0JLQkNCdCivQqNCJ0JjQktCQ0J3Qp9CQ0J3QmNCdINCI0J7QktCQ0J0KK9Co0InQmNCS0JDQndCn0JDQndCY0J0g0JzQkNCg0JjQiNCQCivQqNCJ0JjQktCQ0J3Qp9CQ0J3QmNCdINCc0JjQm9Cj0KLQmNCdCivQqNCJ0JjQktCY0Isg0ILQntCg0ILQlQor0KjQidCY0JLQmNCLINCR0J7QoNCa0JAKK9Co0InQmNCS0JjQiyDQiNCV0JvQldCd0JAKK9Co0InQmNCS0JjQiyDQidCY0InQkNCd0JAKK9Co0InQmNCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KjQidCY0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Co0InQmNCS0JjQiyDQodCf0JDQodCe0IjQlQor0KjQidCY0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KjQidCY0JLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Co0InQo9Ca0JAg0JTQoNCQ0JPQmNCo0JAKK9Co0InQo9Ca0JAg0JzQmNCI0J7QlNCg0JDQkwor0KjQidCj0JrQkCDQnNCY0JvQkNCdCivQqNCJ0KPQmtCQINCc0JjQm9Ce0KgKK9Co0InQo9Ca0JjQiyDQltCY0JLQkNCdINCU0KAKK9Co0InQo9Ca0JjQiyDQnNCY0JvQmNCS0J7QiAor0KjQidCj0JrQmNCLINCg0J7QodCQ0J3QlNCQCivQqNCc0JDQitCQINCc0JjQoNCa0J4KK9Co0JzQkNCK0JAg0KHQm9CQ0JLQmtCeCivQqNCc0JjQlNCV0KDQmtCQ0Jsg0KTQoNCQ0IrQkAor0KjQnNCY0JPQldCJ0KHQmtCYINCd0JjQmtCe0JvQkAor0KjQnNCY0JPQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Co0JzQmNCT0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQnNCY0JPQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0JzQmNCiINCk0JXQoNCU0JjQndCQ0J3QlAor0KjQnNCY0KIg0JPQmNCX0JXQm9CQCivQqNCc0JjQoiDQiNCe0KHQmNCfCivQqNCc0JjQoiDQiNCe0JLQkNCdCivQqNCc0JjQoi3QmtCe0KLQkCDQmtCQ0KLQmNCm0JAKK9Co0JzQmNCiINCc0JDQoNCY0IjQkAor0KjQnNCY0KIg0JzQmNCg0IjQkNCd0JAKK9Co0JzQmNCiLdCf0KDQntCa0JjQnSDQgtCj0KDQgtCY0J3QkAor0KjQnNCY0KIg0KDQldCW0JUKK9Co0JzQmNCiINCh0KLQkNCd0JAKK9Co0JzQmNCiINCh0KLQkNCd0J7QiNCa0JAKK9Co0JzQmNCiINCh0KLQldCS0JDQnQor0KjQnNCY0KIg0KHQotCV0JLQkNCdCivQqNCc0JjQoiDQktCY0J7Qm9CV0KLQkAor0KjQnNCY0KIg0JfQm9CQ0KLQmtCeCivQqNCc0JjQotCg0JDQnSDQgtCe0KDQgtCVCivQqNCc0KPQmiDQmNCS0JDQnQor0KjQndCQ0IjQlNCV0KAg0KjQkNCd0JTQntCgCivQqNCd0JDQiNCU0JXQoCDQkNCd0JjQptCQCivQqNCd0JDQiNCU0JXQoCDQmNCb0JjQndCa0JAKK9Co0J3QkNCI0JTQldCgINCI0JDQndCe0KgKK9Co0J3QkNCI0JTQldCgINCI0JDQoNCe0KHQm9CQ0JIKK9Co0J3QkNCI0JTQldCgINCh0KLQldCS0JDQnQor0KjQndCQ0IjQlNCV0KAg0JLQldCg0JAKK9Co0J3QkNCI0JTQldCg0J7QkiDQiNCe0KHQmNCfCivQqNCd0JDQiNCU0JXQoNCe0JIg0JLQldCh0J3QkAor0KjQndCQ0KPQotCY0Jsg0JTQoNCQ0JPQo9Ci0JjQnQor0KjQndCV0Jsg0J/QldCi0JXQoAor0KjQitCQ0KDQmNCLINCY0JLQkNCdCivQqNCe0Kgg0JDQndCi0JDQmwor0KjQntCoINCQ0J3QotCQ0JsKK9Co0J7QqCDQkdCQ0JvQmNCd0KIKK9Co0J7QqCDQlNCV0JfQmNCU0JXQoAor0KjQntCoINCT0JjQl9CV0JvQkAor0KjQntCoINCY0JvQntCd0JAKK9Co0J7QqCDQiNCV0JvQmNCm0JAKK9Co0J7QqCDQm9CQ0IjQntCoCivQqNCe0Kgg0JzQkNCg0JjQiNCQCivQqNCe0Kgg0KLQmNCR0J7QoAor0KjQntCo0JjQiyDQnNCY0KDQmtCeCivQqNCe0KjQmNCLINCd0JDQotCQ0KjQkAor0KjQntCo0JjQiyDQntCb0JPQkAor0KjQntCo0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQqNCe0KjQmNCLINCS0KPQmgor0KjQntCo0JrQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Co0J7QqNCa0JjQiyDQnNCY0KDQkAor0KjQntCLINCR0J7QiNCQ0J3QkAor0KjQntCLINCU0KPQqNCQ0J0KK9Co0J7QiyDQotCe0JzQmNCh0JvQkNCSCivQqNCe0JHQkNCI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Co0J7QkdCQ0JrQmCDQnNCQ0KDQmNCI0JAKK9Co0J7QkdCY0Isg0JzQmNCg0JAKK9Co0J7QkdCY0Isg0KDQkNCU0JUKK9Co0J7QkdCY0Isg0JLQldCg0JAKK9Co0J7QkdCY0Isg0JfQntCg0JDQnQor0KjQntCR0JjQiyDQl9Ce0KDQkNCdCivQqNCe0JHQntCiINCC0KPQoNCQCivQqNCe0JHQntCiINCR0J7QqNCa0J4KK9Co0J7QkdCe0KIg0JHQoNCQ0J3QmtCeCivQqNCe0JHQntCiINCU0KDQkNCT0JDQnQor0KjQntCR0J7QoiDQiNCe0JLQkNCdCivQqNCe0JHQntCiINCJ0KPQkdCe0JzQmNCgCivQqNCe0JHQntCiINCc0JjQm9CQ0J0KK9Co0J7QkdCe0KIg0JzQmNCb0JjQptCQCivQqNCe0JHQntCiINCf0JXQotCa0J4KK9Co0J7QkdCe0KIg0KHQldCa0KPQm9CQCivQqNCe0JHQntCiINCh0JvQkNCS0JjQptCQCivQqNCe0JTQmNCLINCU0J7QkdCg0JjQm9CQCivQqNCe0JTQmNCLINCU0KDQkNCT0JjQitCQCivQqNCe0JTQmNCLINCT0JjQl9CV0JvQkAor0KjQntCU0JjQiyDQnNCY0JvQkNCdCivQqNCe0JTQmNCLINCi0J7QlNCe0KAKK9Co0J7QlNCe0KDQntCS0JjQiyDQoNCe0KHQkAor0KjQntCk0KXQkNCj0JfQldCgINCc0JjQpdCQ0IjQm9CeCivQqNCe0KTQpdCQ0KPQl9CV0KAg0KDQntCX0JDQm9CY0IjQkAor0KjQntCk0KDQkNCdINCc0JDQoNCY0IjQkAor0KjQntCk0KDQkNCd0JDQpiDQnNCV0JvQkNCd0JjQiNCQCivQqNCe0JPQntCg0J7QkiDQodCi0JXQktCQ0J0KK9Co0J7QiNCY0Isg0JbQmNCS0JrQngor0KjQntCI0JjQiyDQkdCg0JDQndCa0J4KK9Co0J7QiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0J7QiNCY0Isg0J3QldCU0JXQidCa0JAKK9Co0J7QiNCb0JXQktCh0JrQkCDQodCQ0IrQkAor0KjQntCa0JjQiyDQgtCe0KDQgtCVCivQqNCe0JrQmNCLINCI0KPQlNCY0KLQkAor0KjQntCa0JjQiyDQnNCY0JvQkNCdCivQqNCe0JrQmNCLINCf0JXQotCQ0KAKK9Co0J7QmtCY0Isg0KDQkNCU0J7QktCQ0J0KK9Co0J7QmtCY0Isg0KHQnNCY0InQkAor0KjQntCa0JjQptCQINCW0JjQktCa0J4KK9Co0J7QmtCY0KbQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0J7QmtCY0KbQkCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Co0J7QmtCY0KbQkCDQlNCg0JDQk9CY0KjQkAor0KjQntCa0JjQptCQINCI0J7QktCQ0J0KK9Co0J7QmtCY0KbQkCDQiNCj0JTQmNCi0JAKK9Co0J7QmtCY0KbQkCDQidCj0JHQmNCm0JAKK9Co0J7QmtCY0KbQkCDQnNCY0JvQntCoCivQqNCe0JrQmNCm0JAg0JfQntCg0JAKK9Co0J7QmtCb0J7QktCQ0KfQmtCYINCW0JjQktCa0J4KK9Co0J7QmtCb0J7QktCQ0KfQmtCYINCU0KDQkNCT0J7QidCj0JEKK9Co0J7QmtCb0J7QktCQ0KfQmtCYINCd0JDQlNCQCivQqNCe0JrQm9Ce0JLQkNCn0JrQmCDQoNCQ0KLQntCc0JjQoAor0KjQntCbINCR0JXQm9CQCivQqNCe0JvQkNCI0JAg0ILQntCg0ILQlQor0KjQntCb0JDQiNCQINCU0JjQnNCY0KLQoNCY0IjQlQor0KjQntCb0JDQiNCQINCT0J7QiNCa0J4KK9Co0J7Qm9CQ0IjQkCDQnNCY0JvQkNCdCivQqNCe0JvQkNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0KjQntCb0JDQiNCQINCd0JDQlNCQCivQqNCe0JvQkNCI0JAg0J3QkNCU0JAKK9Co0J7Qm9CQ0IjQkCDQoNCQ0JTQntCh0JvQkNCSCivQqNCe0JvQkNCI0JAg0KHQm9CQ0JLQmtCeCivQqNCe0JvQkNCI0JAg0KHQm9CQ0JLQmtCeCivQqNCe0JvQkNCI0JAg0KHQm9Ce0JHQntCU0JDQnQor0KjQntCb0JDQiNCQINCS0JjQqNCK0JAKK9Co0J7Qm9CQ0Jog0IjQntCa0JAKK9Co0J7Qm9CQ0Jog0JzQkNCg0JjQndCa0J4KK9Co0J7Qm9CQ0Jog0JzQmNCb0JUKK9Co0J7Qm9CQ0Jog0KDQkNCU0JUKK9Co0J7Qm9CV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Co0J7Qm9Ci0JXQoSDQqNCQ0J3QlNCe0KAKK9Co0J7Qm9Ci0JXQoSDQmNCR0J7QidCQCivQqNCe0JvQotCV0KEg0IjQntCW0JXQpAor0KjQntCc0JrQldCg0JXQmtCYINCY0JvQntCd0JrQkAor0KjQntCc0JrQldCg0JXQmtCYINCI0J7QodCY0J8KK9Co0J7QnNCa0JXQoNCV0JrQmCDQiNCj0JvQmNCI0JDQndCQCivQqNCe0JzQmtCV0KDQldCa0Jgg0JvQkNCU0JjQodCb0JDQkgor0KjQntCc0JrQldCg0JXQmtCYINCh0KLQldCS0JDQnQor0KjQntCc0JrQldCg0JXQmtCYINCh0KLQldCS0JDQnQor0KjQntCc0J7QgtCYINCW0J7QpNCY0IjQkAor0KjQntCc0J7QgtCYINCC0J7QoNCC0JUKK9Co0J7QnNCe0ILQmCDQldCS0JAKK9Co0J7QnNCe0ILQmCDQpNCg0JDQitCQCivQqNCe0JzQntCC0Jgg0JjQqNCi0JLQkNCdCivQqNCe0JzQntCC0Jgg0IjQldCb0JXQndCQCivQqNCe0JzQntCC0Jgg0IjQntCS0JDQnQor0KjQntCc0J7QgtCYINCb0JDQodCb0J4KK9Co0J7QnNCe0ILQmCDQnNCY0KXQkNCI0JvQngor0KjQntCc0J7QgtCYINCf0JDQmwor0KjQntCc0J7QgtCYINCf0JDQmwor0KjQntCc0J7QgtCYINCf0JDQmwor0KjQntCc0J7QgtCYINCg0J7Ql9CQCivQqNCe0JzQntCC0Jgg0JfQntCb0KLQkNCdCivQqNCe0JzQntCC0Jgg0JfQntCg0JAKK9Co0J7QnyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Co0J7QnyDQnNCY0JvQkNCdCivQqNCe0J/QkNCb0J4g0ILQo9Cg0ILQmNCd0JAKK9Co0J7Qn9CQ0JvQniDQgtCj0KDQgtCY0J3QkAor0KjQntCf0JDQm9CeINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCe0JXQpgor0KjQntCf0JDQm9CeINCc0JjQntCU0KDQkNCTCivQqNCe0KDQgtCQ0J0g0KDQntCc0JDQnQor0KjQntCg0JDQmiDQnNCY0KDQiNCQ0J3QkAor0KjQntCg0JDQm9Ce0JIg0JzQmNCb0J7QqAor0KjQntCg0JDQm9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0KjQntCg0JzQkNCXINCU0KPQqNCQ0J0KK9Co0J7QoNCc0JDQlyDQnNCY0JvQkNCdCivQqNCe0KDQnNCQ0Jcg0J3QmNCa0J7Qm9CQCivQqNCe0KDQnNCQ0Jcg0JLQm9CQ0JTQmNCc0JjQoAor0KjQntCg0J7QitCQINCh0JDQktCQCivQqNCe0KDQntCK0JAg0JLQldCg0JAKK9Co0J7QodCR0JXQoNCT0JXQoCDQkdCe0KDQmNCo0JrQkAor0KjQntCh0JHQldCg0JPQldCgINCI0J7QodCY0J8g0JTQmNCf0Jsg0J7QldCmCivQqNCe0KHQkdCV0KDQk9CV0KAg0J/QkNCS0JvQlQor0KjQntCh0KLQkNCa0J7QkiDQoNCQ0KHQotCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQqNCe0KLQmC3Qp9CQ0JvQldCd0JjQiyDQnNCQ0KDQmNCI0JAKK9Co0J7QotCYINCk0JXQgtCQCivQqNCe0KLQmCDQmNCS0JDQndCQCivQqNCe0KLQmCDQiNCe0KHQmNCfCivQqNCe0KLQmCDQiNCe0KHQmNCfCivQqNCe0KLQmCDQnNCQ0KDQmNCI0JAKK9Co0J7QotCYINCc0JDQoNCY0IjQkAor0KjQntCi0KDQkCDQnNCe0JzQp9CY0JvQngor0KjQntCj0KYg0JzQmNCb0JDQnQor0KjQntCj0KYg0JzQmNCg0J7QodCb0JDQkgor0KjQntCj0KYg0JfQm9CQ0KLQkAor0KjQntCS0Kgg0IjQkNCd0JrQngor0KjQntCS0Kgg0IjQntCQ0JrQmNCcCivQqNCe0JLQkNCKINCI0J7QkNCa0JjQnAor0KjQntCS0JXQiiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQntCS0JXQiiDQmtCQ0KDQm9CeCivQqNCe0JLQldCKINCS0JXQoNCQCivQqNCe0JLQidCQ0JrQntCSINCI0J7QktCQ0J0KK9Co0J7QktCJ0JDQmtCe0JIg0JzQmNCb0J7QqAor0KjQntCS0InQkNCa0J7QkiDQnNCY0JvQntCoCivQqNCe0JLQidCQ0J3QodCa0Jgg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0J7QktCJ0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQqNCe0JLQidCQ0J3QodCa0Jgg0JDQndCa0JjQptCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JHQntCh0JjQidCa0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQkdCg0JDQndCa0J4KK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCQ0J3QmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCQ0J3QmNCb0J4KK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCQ0J3QmtCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCo0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQkNCT0JjQptCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQldCd0JrQkAor0KjQntCS0InQkNCd0KHQmtCYINCV0JzQmNCbCivQqNCe0JLQidCQ0J3QodCa0Jgg0IjQo9Cb0JrQkAor0KjQntCS0InQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9Co0J7QktCJ0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQidCj0JHQntCc0JjQoAor0KjQntCS0InQkNCd0KHQmtCYINCc0JDQoNCT0JjQotCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQmNCb0JDQnQor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQm9Ce0KgKK9Co0J7QktCJ0JDQndCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQmNCg0IjQkNCd0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIg0JTQoAor0KjQntCS0InQkNCd0KHQmtCYINCd0JDQlNCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0KjQntCS0InQkNCd0KHQmtCYINCg0JDQlNCY0JLQntCICivQqNCe0JLQidCQ0J3QodCa0Jgg0KDQkNCU0J7QodCb0JDQkgor0KjQntCS0InQkNCd0KHQmtCYINCh0JDQktCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0KHQotCe0IjQkNCdCivQqNCf0JDQlNCY0IjQldCgINCi0JDQotCY0IjQkNCd0JAKK9Co0J/QkNCT0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQqNCf0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQqNCf0JDQndCn0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KjQn9CQ0J3QkyDQm9CQ0KHQm9CeCivQqNCf0JDQndCTINCX0J7Qm9Ci0JDQnQor0KjQn9CQ0J3QmNCLINCR0J7QqNCa0J4KK9Co0J/QkNCd0JjQiyDQpNCg0JDQitCQCivQqNCf0JDQndCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KjQn9CQ0J3QmNCLINCd0JDQlNCQCivQqNCf0JDQndCY0Isg0J7QotCeCivQqNCf0JDQitCV0JLQmNCLINCh0KPQl9CQ0J3QkAor0KjQn9CQ0IrQldCS0JjQiyDQktCj0JrQntCi0JAKK9Co0J/QkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KjQn9CQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JAKK9Co0J/QkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KjQn9CQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Co0J/QkNCg0JDQktCQ0JvQniDQnNCQ0KDQmNCI0JAKK9Co0J/QkNCg0JDQktCQ0JvQniDQndCQ0KLQkNCo0JAKK9Co0J/QkNCg0JDQktCQ0JvQniDQodCQ0JLQkAor0KjQn9CQ0KDQkNCS0JDQm9CeINCX0JTQoNCQ0JLQmtCeCivQqNCf0JDQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9Co0J/QldCT0JDQoCDQm9CQ0JfQkNCgCivQqNCf0JXQpdCQ0KAg0JzQkNCg0JjQiNCQCivQqNCf0JXQoSDQldCi0JXQmwor0KjQn9CV0KEg0JLQmNCb0JjQnAor0KjQn9CV0KEg0JLQmNCb0JjQnAor0KjQn9CY0KbQkCDQnNCY0J7QlNCg0JDQkwor0KjQn9CY0JrQkCDQnNCY0JvQkNCdCivQqNCf0JjQndCU0JvQldCgINCc0JDQoNCY0IjQkAor0KjQn9CY0J3QlNCb0JXQoC3QotCg0JHQntCI0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Co0J/QmNCg0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQqNCf0JjQoNCY0Isg0JPQntCg0JTQkNCd0JAKK9Co0J/QmNCg0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0KjQn9CY0KDQmNCLINCY0JvQlQor0KjQn9CY0KDQmNCLINCI0J7QktCeCivQqNCf0JjQoNCY0Isg0JvQo9Ca0JAKK9Co0J/QmNCg0JjQiyDQm9Cj0JrQkAor0KjQn9CY0KDQmNCLINCc0JjQm9CVCivQqNCf0JjQoNCY0Isg0J3QldCC0J4KK9Co0J/QmNCg0JjQiyDQntCR0KDQkNCUCivQqNCf0JjQoNCY0Isg0KHQotCe0IjQkNCdCivQqNCf0JjQoNCY0Isg0KLQntCU0JUKK9Co0J/QmNCg0JjQiyDQo9Cg0J7QqAor0KjQn9CY0KDQmNCLINCX0J7QoNCQ0J0KK9Co0J/QmNCg0JrQkCDQnNCQ0KLQmNCb0JQKK9Co0J/QmNCg0KLQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQn9CY0KDQotCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCf0JjQoSDQlNCQ0J3QmNCb0J4KK9Co0J/QmNChINCU0JDQndCY0JvQngor0KjQn9CY0KEg0JvQkNCI0J7QqAor0KjQn9CY0KEg0JzQmNCg0IjQkNCd0JAKK9Co0J/QmNChINCd0JDQndCU0J7QoAor0KjQn9Ce0IrQkCDQmtCe0JLQmNCJ0JrQngor0KjQn9Cg0J7QpSDQlNCg0JXQndCa0JAKK9Co0J/QoNCe0KUg0IjQkNCd0JrQngor0KjQn9Cg0J7QpSDQnNCQ0JPQlNCQCivQqNCf0KDQntClINCh0JvQkNCS0JrQngor0KjQn9Cg0J7QpSDQodCi0JDQndCa0J4KK9Co0J/QoNCe0KUg0KHQotCV0JLQkNCdCivQqNCg0JDQpdCe0Jsg0KXQmNCb0JTQkAor0KjQoNCQ0KXQntCbINCa0JDQoNCb0J4KK9Co0KDQkNCl0J7QmyDQidCj0JTQldCS0JjQogor0KjQoNCQ0Igg0JLQm9CQ0JTQmNCc0JjQoAor0KjQoNCQ0Jog0IjQntCS0JjQptCQCivQqNCg0JDQmiDQm9CQ0JTQmNCh0JvQkNCSCivQqNCg0JDQmiDQm9CQ0KHQm9CeCivQqNCg0JDQmiDQntCi0J4KK9Co0KDQkNCaINCe0KLQngor0KjQoNCQ0Jwg0KXQo9CT0J4KK9Co0KDQkNCd0KYg0KDQmNCl0JDQoNCUCivQqNCg0JDQndCmINCg0JjQpdCQ0KDQlAor0KjQoNCQ0J3QmtCQINCQ0J3QkAor0KjQoNCQ0J3QmtCQINCU0JXQodCQ0J3QmtCQCivQqNCg0JXQlNCV0KAg0IjQkNCd0J7QqAor0KjQoNCV0JTQldCgINCI0JDQndCe0KgKK9Co0KDQldCaINCQ0J3QlNCg0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0KjQoNCV0Jog0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KjQotCQ0JHQmCDQqNCi0JXQpNCY0KbQkAor0KjQotCQ0IjQnSDQm9CY0JLQmNCI0JAKK9Co0KLQkNCI0J3QldCgINCa0KDQldCo0JjQnNCY0KAKK9Co0KLQkNCI0J3QldCgINCc0JjQoNCI0JDQndCQCivQqNCi0JDQiNCd0JXQoCDQnNCY0KDQntCh0JvQkNCSCivQqNCi0JDQiNCd0JXQoCDQl9CS0J7QndCY0JzQmNCgCivQqNCi0JDQiNCd0KTQldCb0JQg0JzQmNCl0JDQiNCb0J4KK9Co0KLQkNCI0J3QmNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQkNCI0J3QmNCmINCi0JjQkdCe0KAKK9Co0KLQkNCd0JTQmCDQmtCQ0KLQmNCm0JAKK9Co0KLQkNCd0JTQmCDQl9Ce0JvQotCQ0J0KK9Co0KLQkNCd0KTQldCJINCQ0JvQntCI0JcKK9Co0KLQkNCd0KTQldCJINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQkNCd0JPQmyDQgtCe0KDQgtCVCivQqNCi0JDQitCeLdCi0J7QoiDQk9CY0JfQldCb0JAKK9Co0KLQkNCg0Jog0JXQk9Ce0J0g0JTQmNCf0Jsg0JjQndCTCivQqNCi0JDQoNCaINCc0JjQoNCa0J4KK9Co0KLQkNCh0J3QmCDQiNCe0KHQmNCfCivQqNCi0JDQodCd0Jgg0JrQkNCi0JjQptCQCivQqNCi0JDQotCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQqNCi0JDQo9Cl0JXQoCDQiNCe0KHQmNCfCivQqNCi0JXQkdCbINCI0JXQm9CV0J3QkAor0KjQotCV0KTQkNCdINCC0J7QoNCC0JUKK9Co0KLQldCk0JDQnSDQldCj0ILQldCdCivQqNCi0JXQpNCQ0J0g0IjQo9Cb0JjQiNCQ0J3QkAor0KjQotCV0KTQkNCdINCc0JDQotCY0IjQkAor0KjQotCV0KTQkNCdINCe0KHQmtCQ0KAKK9Co0KLQldCk0JDQnSDQoNCj0JTQntCb0KQKK9Co0KLQldCk0JDQnSDQotCg0JDQiNCQ0J0KK9Co0KLQldCk0JDQndCQ0KYg0KHQotCV0JLQkNCdCivQqNCi0JXQpNCQ0J3QmNCm0JrQmCDQnNCY0KjQngor0KjQotCV0KTQkNCd0JjQlNCV0KEg0JrQkNCg0JvQniDQlNCgCivQqNCi0JXQpNCQ0J3QmNCU0JXQoSDQmtCQ0KDQm9CeCivQqNCi0JXQpNCQ0J3QmtCeINCS0JjQmtCi0J7QoNCY0IjQkAor0KjQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQqNCi0JXQpNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQqNCi0JXQpNCa0J4g0ILQntCg0ILQlQor0KjQotCV0KTQmtCeINCC0J7QoNCC0JUKK9Co0KLQldCk0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KjQotCV0KTQo9Cb0JjQmiDQiNCe0JbQldCkCivQqNCi0JXQk9CV0KAg0KDQntCW0JgKK9Co0KLQldCT0JXQoCDQktCQ0JvQldCd0KLQmNCd0JAKK9Co0KLQldCl0JXQoCDQoNCQ0JTQnNCY0JvQkAor0KjQotCV0JvQptCV0KAg0IjQntCh0JjQnwor0KjQotCV0JvQmCDQkNCd0KLQo9CdCivQqNCi0JXQoNCb0JUg0IjQntCh0JjQnwor0KjQotCV0KDQm9CVINCh0KLQldCS0JDQnQor0KjQotCV0KDQm9CV0JzQkNCdINCa0KDQmNCh0KLQmNCI0JDQnQor0KjQotCV0KDQm9CV0JzQkNCdINCf0JXQoNCQCivQqNCi0JXQotCY0Isg0JrQoNCY0KHQotCY0J3QkAor0KjQotCV0KLQmNCLINCi0JjQpdCe0JzQmNCgCivQqNCi0JXQotCY0Isg0JLQldCh0J3QkAor0KjQotCV0KLQmNCLINCS0JjQlNCQCivQqNCi0JXQotCY0J0g0KXQldCb0JXQndCQCivQqNCi0JXQotCY0J0g0JzQmNCb0JDQnQor0KjQotCV0KLQmNCdINCc0JjQm9CVCivQqNCi0JXQotCY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQqNCi0JXQktCQ0J3Qp9CV0JIg0InQo9CR0J7QnNCY0KAKK9Co0KLQmNCm0JAg0JLQmNCi0J7QnNCY0KAKK9Co0KLQmNCT0JvQldCgINCY0JLQkNCdCivQqNCi0JjQk9Cb0JXQoCDQnNCY0JvQkNCdCivQqNCi0JjQk9Cb0JjQiyDQlNCg0JDQk9CQ0J0KK9Co0KLQmNCT0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0KLQmNCa0JDQktCQ0KYg0JrQntCh0J7QktCa0JAKK9Co0KLQmNCa0J7QktCQ0KYg0KHQn9CQ0KHQntCI0JUKK9Co0KLQmNCc0JDQpiDQntCi0J4KK9Co0KLQmNCc0JDQpiDQoNCj0JTQntCb0KQKK9Co0KLQntCa0J7QktCQ0KYg0IjQntCS0JDQnQor0KjQotCe0JrQntCS0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQqNCi0J7Qm9CR0JAg0JfQktCe0J3QmNCc0JjQoAor0KjQotCe0KEg0JrQkNCi0JjQptCQCivQqNCi0KDQkNCI0KUg0JjQqNCi0JLQkNCdCivQqNCi0KDQkNCI0KUg0IjQntCh0JjQnwor0KjQotCg0JDQiNClINCe0KLQotCeCivQqNCi0KDQkNCd0JPQkNCgINCd0JDQlNCQCivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQkdCe0KDQmNCS0J7QiAor0KjQotCg0JDQndCT0JDQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQiNCV0JvQldCd0JAKK9Co0KLQoNCQ0J3Qk9CQ0KDQntCSINCI0JXQm9CV0J3QkAor0KjQotCg0JDQndCT0JDQoNCe0JIg0JzQmNCb0JjQptCQCivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQqNCi0KDQkNCf0JDQiNCV0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Co0KLQoNCQ0KHQldCgINCc0JjQpdCQ0IjQm9CeINCU0KAg0JvQldCa0JDQoAor0KjQotCg0JDQodCV0KAg0J3QkNCU0JAKK9Co0KLQoNCQ0KPQkSDQldCg0JbQldCR0JXQogor0KjQotCg0JDQo9CRINCY0KjQotCS0JDQnQor0KjQotCg0JDQo9CRINCh0KLQldCS0JDQnQor0KjQotCg0JHQkCDQlNCQ0J3QmNCb0J4KK9Co0KLQoNCR0JAg0JzQmNCb0JDQnQor0KjQotCg0JHQkNCn0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQqNCi0KDQkdCQ0KYg0JbQldCJ0JrQngor0KjQotCg0JHQkNCmINCC0J7QoNCC0JUKK9Co0KLQoNCR0JDQpiDQgtCj0KDQngor0KjQotCg0JHQkNCmINCQ0J3QgtCV0JvQmtCQCivQqNCi0KDQkdCQ0KYg0JHQntCo0JrQngor0KjQotCg0JHQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9Co0KLQoNCR0JDQpiDQkdCg0JDQndCa0JAKK9Co0KLQoNCR0JDQpiDQlNCQ0KDQmNCd0JrQkAor0KjQotCg0JHQkNCmINCU0JXQodCQ0J3QmtCQCivQqNCi0KDQkdCQ0KYg0JTQoNCQ0JPQkNCdCivQqNCi0KDQkdCQ0KYg0JTQo9Co0JDQnQor0KjQotCg0JHQkNCmINCU0KPQqNCQ0J0KK9Co0KLQoNCR0JDQpiDQlNCj0KjQkNCdCivQqNCi0KDQkdCQ0KYg0JTQo9Co0JDQnQor0KjQotCg0JHQkNCmINCI0J7QktCQ0J0KK9Co0KLQoNCR0JDQpiDQidCj0JHQmNCm0JAKK9Co0KLQoNCR0JDQpiDQidCj0JHQntCc0JjQoAor0KjQotCg0JHQkNCmINCc0JDQoNCY0IjQkAor0KjQotCg0JHQkNCmINCc0JjQi9CeCivQqNCi0KDQkdCQ0KYg0JzQmNCL0J4KK9Co0KLQoNCR0JDQpiDQnNCY0JvQkNCd0JrQngor0KjQotCg0JHQkNCmINCc0JjQm9CQ0J0KK9Co0KLQoNCR0JDQpiDQnNCY0JvQkNCdCivQqNCi0KDQkdCQ0KYg0JzQmNCb0JDQnQor0KjQotCg0JHQkNCmINCc0JjQm9CQ0J0KK9Co0KLQoNCR0JDQpiDQnNCY0JvQldCd0JAKK9Co0KLQoNCR0JDQpiDQnNCY0JvQmNCm0JAKK9Co0KLQoNCR0JDQpiDQnNCY0JvQmNCS0J7QiAor0KjQotCg0JHQkNCmINCc0JjQm9Ce0KgKK9Co0KLQoNCR0JDQpiDQnNCY0KDQiNCQ0J3QkAor0KjQotCg0JHQkNCmINCc0JjQoNCa0J4KK9Co0KLQoNCR0JDQpiDQnNCe0JzQp9CY0JvQngor0KjQotCg0JHQkNCmINCd0JXQnNCQ0IrQkAor0KjQotCg0JHQkNCmINCd0JjQmtCe0JvQkAor0KjQotCg0JHQkNCmINCg0JDQlNCe0IjQmtCQCivQqNCi0KDQkdCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Co0KLQoNCR0JDQpiDQodCQ0JLQmtCQCivQqNCi0KDQkdCQ0KYg0KHQm9CQ0JLQmNCm0JAKK9Co0KLQoNCR0JDQpiDQodCb0JDQktCa0J4KK9Co0KLQoNCR0JDQpiDQodCi0JDQndCQCivQqNCi0KDQkdCQ0KYg0KHQotCV0JLQkNCdCivQqNCi0KDQkdCQ0KYg0KLQntCc0JjQodCb0JDQkgor0KjQotCg0JHQkNCmINCj0KDQntCoCivQqNCi0KDQkdCQ0KYg0JLQm9CQ0JTQngor0KjQotCg0JHQkNCmINCS0KPQmtCY0KbQkAor0KjQotCg0JHQkNCmINCX0J7QoNCY0KbQkAor0KjQotCg0JHQldCd0Jog0JjQktCQ0J3QmtCQCivQqNCi0KDQkdCV0J3QmiDQndCY0JrQntCb0JAKK9Co0KLQoNCR0J7QiNCQINCW0JjQktCa0J4KK9Co0KLQoNCR0J7QiNCQINCC0J7QoNCC0JUKK9Co0KLQoNCR0J7QiNCQINCC0J7QoNCC0JUKK9Co0KLQoNCR0J7QiNCQINCg0JDQlNCQCivQqNCi0KDQkdCe0IjQkCDQoNCQ0JTQmNCS0J7QiAor0KjQotCg0JHQntCI0JAg0KHQotCV0JLQkNCdCivQqNCi0KDQkdCe0IjQlSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Co0KLQoNCY0KbQmtCYINCI0J7QodCY0J8KK9Co0KLQoNCaINCI0J7QodCY0J8KK9Co0KLQoNCaINCc0JDQoNCY0IjQkAor0KjQotCg0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQoNCa0JjQiyDQnNCe0JzQmNCgCivQqNCi0KDQntCaINCW0JXQidCa0J4KK9Co0KLQoNCi0JDQmiDQodCb0JDQktCa0J4KK9Co0KLQoNCi0JDQmiDQodCb0J7QkdCe0JTQkNCdCivQqNCi0KPQm9CQINCc0JjQm9CVCivQqNCi0KPQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Co0KLQo9Cb0JjQiyDQk9Ce0KDQkNCdCivQqNCi0KPQm9CY0Isg0IjQntCS0J4KK9Co0KLQo9Cb0JjQiyDQnNCQ0KDQmtCeCivQqNCi0KPQm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Co0KLQo9Cc0J/QpCDQpdCV0JvQnNCj0KIKK9Co0KLQo9Cc0J/QpCDQntCh0JLQkNCb0JQKK9Co0KPQqNCn0JXQktCY0Isg0IjQntCS0J4KK9Co0KPQqNCn0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Co0KPQqNCQINCn0JXQlNCe0JzQmNCgCivQqNCj0KjQkCDQlNCj0KjQkNCdCivQqNCj0KjQkCDQiNCe0JLQkNCdCivQqNCj0KjQkCDQmtCV0JzQkNCbCivQqNCj0KjQkCDQodCi0J7QiNCQ0J3QmtCQCivQqNCj0KjQkNCaINCC0J7QmtCQCivQqNCj0KjQkNCaINCC0J7QoNCC0JUKK9Co0KPQqNCQ0Jog0JPQntCh0J/QkNCS0JAKK9Co0KPQqNCQ0Jog0JzQkNCg0JjQiNCQCivQqNCj0KjQkNCaINCd0JXQktCV0J3QkAor0KjQo9Co0JDQmiDQodCi0JDQnNCV0J3QmtCeINCU0KAKK9Co0KPQqNCQ0Jog0KLQntCc0JjQodCb0JDQkgor0KjQo9Co0JDQmtCe0JIg0J/QkNCI0JAKK9Co0KPQqNCV0JLQodCa0Jgg0JzQmNCb0JDQnQor0KjQo9Co0JjQiyDQoNCY0KHQotCeCivQqNCj0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Co0KPQqNCa0JDQktCn0JXQktCY0Isg0JjQm9CY0IjQkAor0KjQo9Co0JrQkNCS0KfQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KjQo9Co0JrQntCS0JjQiyDQkdCe0KDQmNChCivQqNCj0KjQidCY0Jog0IjQntCS0JDQnQor0KjQo9Co0IrQkNCgINCW0JDQoNCa0J4KK9Co0KPQqNCK0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQqNCj0KjQitCQ0KAg0JHQntCg0JjQodCb0JDQkgor0KjQo9Co0IrQkNCgINCc0JjQpdCQ0IjQm9CeCivQqNCj0KjQitCQ0KAg0JzQmNCb0JDQnQor0KjQo9Co0IrQkNCgINCc0JjQm9CQ0J0KK9Co0KPQqNCK0JDQoCDQn9CV0KLQkNCgCivQqNCj0KjQitCQ0KAg0J/QldCi0JDQoAor0KjQo9Co0IrQkNCgINCf0JXQotCQ0KAKK9Co0KPQqNCK0JDQoCDQodCb0JDQktCa0J4KK9Co0KPQqNCK0JDQoCDQodCe0KTQmNCI0JAKK9Co0KPQqNCK0JDQoCDQodCi0JDQndCa0J4KK9Co0KPQqNCK0JXQktCY0Isg0JTQo9Co0JDQnQor0KjQo9Co0IrQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KjQo9Co0IrQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQqNCj0KjQitCY0Isg0KHQotCQ0J3QmtCQCivQqNCj0KjQotCg0JDQnSDQnNCb0JDQlNCV0J0KK9Co0KPQqNCi0KPQnCDQiNCe0JLQkNCdCivQqNCj0IvQkNCaINCc0JjQm9CQ0J0KK9Co0KPQi9Ce0JIg0IvQmNCg0JAKK9Co0KPQi9Ce0JIg0JTQkNCd0JjQptCQCivQqNCj0IvQntCSINCU0JDQndCY0JvQngor0KjQo9CL0J7QkiDQnNCY0JvQntCoCivQqNCj0IvQntCSINCS0KPQmtCe0KHQkNCS0JAKK9Co0KPQkdCQ0KDQkCDQnNCb0JDQlNCV0J0KK9Co0KPQkdCQ0KDQmNCLINCb0KPQmtCQCivQqNCj0JHQkNCg0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Co0KPQkdCQ0KDQmNCLINCX0J7QoNCQ0J0KK9Co0KPQkdCV0KDQoiDQmNCb0J7QndCa0JAKK9Co0KPQkdCY0Isg0IjQntCS0JDQndCa0JAKK9Co0KPQkdCe0Iog0KHQmNCb0JLQmNCj0KEKK9Co0KPQlNCQ0KAg0IjQntCW0JXQpAor0KjQo9CU0JDQoCDQiNCe0KHQmNCfCivQqNCj0JTQmNCm0JrQmCDQiNCe0JbQldCkCivQqNCj0JPQmNCLINCc0JjQm9CQ0J0KK9Co0KPQk9CY0Isg0J3QkNCU0JAKK9Co0KPQk9CY0Isg0J/QldCi0JDQoAor0KjQo9CT0JjQnSDQltCY0JLQmtCeCivQqNCj0JPQmNCdINCR0JXQoNCY0KHQkNCSCivQqNCj0JPQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0KjQo9CT0JjQnSDQm9CV0JrQodCQCivQqNCj0JPQmNCdINCJ0JjQidCQ0J3QkAor0KjQo9CT0JjQnSDQidCY0InQkNCd0JAKK9Co0KPQk9CY0J0g0JzQmNCb0JrQkAor0KjQo9CT0JjQnSDQnNCY0J7QlNCg0JDQkwor0KjQo9CT0JjQnSDQnNCY0J7QlNCg0JDQkwor0KjQo9CT0JjQnSDQoNCQ0JTQkAor0KjQo9CT0JjQnSDQoNCQ0J3QmtCQCivQqNCj0KXQkNCI0JTQkCDQgtCj0KDQkAor0KjQo9Cl0JDQiNCU0JAg0JjQnNCg0JUKK9Co0KPQpdCQ0IjQlNCQINCb0JDQiNCe0KgKK9Co0KPQiNCU0J7QktCY0Isg0JfQntCg0JDQnQor0KjQo9CI0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQqNCj0IjQmNCLINCg0JXQj9CeCivQqNCj0IjQmNCm0JAg0JzQmNCb0JDQnQor0KjQo9Ca0JAg0JDQm9CV0JrQodCQCivQqNCj0JrQkNCb0J7QktCY0Isg0ILQntCg0ILQlQor0KjQo9Ca0JDQoNCQINCR0J7Qk9CU0JDQnQor0KjQo9Ca0JDQoNCQINCU0JzQmNCi0JDQoAor0KjQo9Ca0JDQoNCQINCU0KPQqNCQ0J0KK9Co0KPQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0KPQmtCY0Isg0JzQmNCg0J7QidCj0JEKK9Co0KPQmtCY0Isg0JfQntCg0JjQptCQCivQqNCj0JrQm9CQINCh0JvQkNCS0JrQngor0KjQo9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0KjQo9Ca0J7QktCY0Isg0JfQntCg0JrQkAor0KjQo9Ca0KPQndCU0JAg0JzQkNCg0JjQiNCQCivQqNCj0JrQo9Cd0JTQkCDQnNCY0JvQkNCdCivQqNCj0JrQo9Cg0JzQkCDQodCi0JXQktCeCivQqNCj0JvQkNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0KjQo9Cb0KYg0JDQndCU0KDQkNCoCivQqNCj0JvQpiDQlNCV0JvQmNCc0JjQoCDQlNCgINCf0KDQntCkCivQqNCj0JvQpiDQmNCc0KDQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0KPQm9CmINCY0JzQoNCVCivQqNCj0JvQpiDQiNCe0JbQldCkCivQqNCj0JvQpiDQiNCe0JbQldCkCivQqNCj0JvQpiDQmtCe0KHQkNCd0JAKK9Co0KPQm9CmINCS0JXQoNCQCivQqNCj0JvQldCd0KLQmNCLINCc0JjQm9CVCivQqNCj0JvQpdCe0KQg0IjQntCW0JXQpCDQmtCK0JjQltCV0JLQndCY0JoKK9Co0KPQidCQ0J0g0JDQndCQCivQqNCj0InQkNCdINCI0JDQndCa0J4KK9Co0KPQidCQ0J0g0IjQkNCdCivQqNCj0InQkNCdINCI0JDQnQor0KjQo9CJ0JDQnSDQiNCQ0KDQntCh0JvQkNCSCivQqNCj0InQkNCdINCf0JDQmwor0KjQo9CJ0JzQkNCd0JDQpi3QqNCV0IvQldCg0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KjQo9CJ0JzQkNCd0JDQpiDQkdCg0JDQndCY0JzQmNCgCivQqNCj0InQnNCQ0J3QkNCmINCI0J7QktCQ0J0KK9Co0KPQidCc0JDQndCQ0KYg0KPQoNCe0KgKK9Co0KPQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Co0KPQnNCQ0KXQldCgINCY0JvQntCd0JAKK9Co0KPQnNCQ0KXQldCgINCI0JDQndCe0KgKK9Co0KPQnNCQ0IjQodCa0Jgg0JHQm9CQ0JbQldCd0JrQkAor0KjQo9Cc0JDQnSDQktCY0KLQntCc0JjQoAor0KjQo9Cc0JDQndCe0JLQkNCmINCf0JDQktCb0JUg0JTQmNCf0Jsg0JjQndCTCivQqNCj0JzQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCj0JzQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQqNCj0JzQkNCgINCR0J7QltCeCivQqNCj0JzQkNCgINCc0JjQm9CQ0J0KK9Co0KPQnNCQ0KAg0KHQmNCc0JAKK9Co0KPQnNCQ0KDQldCS0JjQiyDQlNCg0JDQk9Ce0KDQkNCUCivQqNCj0JzQkNCg0J7QkiDQndCY0JrQntCb0JAKK9Co0KPQnNCQ0KDQo9Cd0JAg0KbQktCV0KLQkAor0KjQo9Cc0JDQoNCj0J3QmNCLINCf0JDQktCb0JUKK9Co0KPQnNCV0KYg0JXQoNCd0JAKK9Co0KPQnNCV0KYg0IjQkNCd0J7QqAor0KjQo9Cc0JjQiyDQnNCb0JDQlNCV0J0KK9Co0KPQnNCe0IrQkCDQnNCY0JvQkNCdCivQqNCj0J3QlNCe0JLQkCDQpNCb0J7QoNCQCivQqNCj0J3QmNCLINCI0J7QktCeCivQqNCj0IrQmNCLINCf0JXQotCQ0KAKK9Co0KPQitCa0JAg0JzQkNCg0JrQngor0KjQo9CK0JrQkCDQnNCY0JvQmNCm0JAKK9Co0KPQitCa0JAg0KDQkNCi0JrQngor0KjQo9Cd0JrQkCDQiNCe0JLQkNCdCivQqNCj0J3QmtCY0Isg0JvQkNCX0JDQoAor0KjQo9Cd0KLQmNCLINCc0JDQotCV0IgKK9Co0KPQn9CVINCo0JjQnNCVCivQqNCj0J/QmNCm0JAg0JTQo9Co0JDQnQor0KjQo9Cf0JjQptCQINCb0JDQl9CQ0KAKK9Co0KPQn9CY0KbQkCDQm9CQ0JfQkAor0KjQo9Cf0JjQptCQINCJ0KPQkdCY0KbQkAor0KjQo9Cf0JjQptCQINCc0JDQoNCQCivQqNCj0J/QmNCm0JAg0JzQmNCb0JDQnQor0KjQo9Cf0JjQptCQINCc0JjQm9Ce0KgKK9Co0KPQn9CY0KbQkCDQn9CV0KLQkNCgCivQqNCj0J/QmNCm0JAg0KHQm9CQ0JLQmtCeCivQqNCj0J/QmNCm0JAg0JLQkNCh0JAKK9Co0KPQn9Cj0KIg0JbQkNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Co0KPQn9Cj0KIg0ILQo9Cg0J4KK9Co0KPQn9Cj0KIg0JTQo9Co0JDQnQor0KjQo9Cf0KPQoiDQodCb0J7QkdCe0JTQkNCdCivQqNCj0J/Qo9CiINCh0JLQldCi0J7Ql9CQ0KAKK9Co0KPQoNCQ0IrQmCDQotCV0KDQldCX0JjQiNCQCivQqNCj0KDQkdCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Co0KPQoNCI0JDQnSDQiNCQ0J3QntCoCivQqNCj0KDQiNCQ0J0g0IjQntCS0JDQnQor0KjQo9Cg0IjQkNCd0KfQldCSINCY0JLQkNCdCivQqNCj0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQqNCj0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Co0KPQoNCa0JDQm9Ce0JLQmNCLINCc0JjQm9CV0J3QkAor0KjQo9Cg0JrQntCS0JjQiyDQlNCe0KDQkNCdCivQqNCj0KDQmtCe0JLQmNCLINCY0KDQpNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQqNCj0KDQm9CQ0J0g0KfQldCU0J7QnNCY0KAKK9Co0KPQoNCb0JDQnSDQgtCe0KDQgtCeCivQqNCj0KDQm9CQ0J0g0JTQoNCQ0JPQntCc0JjQoAor0KjQo9Cg0JvQkNCdINCU0KDQkNCT0J7QodCb0JDQkgor0KjQo9Cg0JvQkNCdINCT0J7QiNCa0J4KK9Co0KPQoNCb0JDQnSDQiNCe0JLQkNCdCivQqNCj0KDQm9CQ0J0g0JzQkNCg0JjQndCa0J4KK9Co0KPQoNCb0JDQnSDQnNCQ0KDQmtCeCivQqNCj0KDQm9CQ0J0g0JzQmNCb0J7QqAor0KjQo9Cg0JvQkNCdINCc0JjQoNCa0J4KK9Co0KPQoNCb0JDQnSDQnNCe0JzQmNCgCivQqNCj0KDQm9CQ0J0g0J3QldCU0JXQidCa0J4KK9Co0KPQoNCb0JDQnSDQoNCj0KjQmtCeCivQqNCj0KDQm9CQ0J0g0JLQntCI0JjQodCb0JDQkgor0KjQo9Cg0JvQkNCdINCS0KPQmtCe0KHQkNCS0JAKK9Co0KPQodCi0JXQoCDQndCV0JPQntCh0JvQkNCSCivQqNCj0KHQotCg0JjQiNCQ0J0g0J7Qm9CT0JAKK9Co0KPQotCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KjQo9Ci0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCj0KLQmNCb0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Co0KPQotCj0JvQntCS0JjQiyDQlNCQ0J3QmtCQCivQqNCj0KLQo9Cb0J7QktCY0Isg0JLQldCh0J3QkAor0KjQo9Ci0JLQmNCLINCR0KDQkNCd0JrQkAor0KjQo9CS0JDQmiDQnNCY0J7QlNCg0JDQkwor0KjQo9CS0JDQmtCe0JIg0JTQkNCg0JjQndCa0JAKK9Co0KPQktCQ0JrQntCSINCU0JXQiNCQ0J0KK9Co0KPQktCQ0JrQntCSINCI0J7QktCQ0J0KK9Co0KPQktCQ0JrQntCSINCc0JjQm9CV0J3QkAor0KjQo9CS0JDQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Co0KPQktCQ0JrQntCSINCh0KLQldCS0JDQnQor0KjQo9CS0JDQmtCe0JIg0KLQmNCl0J7QnNCY0KAg0JTQoAor0KjQo9CS0JDQmtCe0JIg0JLQldCh0JXQm9CY0J3QmtCQCivQqNCj0JLQkNCa0J7QktCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Co0KPQktCQ0JrQntCS0JjQiyDQkdCe0JPQntCh0JvQkNCSCivQqNCj0JLQkNCa0J7QktCY0Isg0JTQkNCc0IjQkNCdINCU0KAg0JvQldCa0JDQoAor0KjQo9CS0JDQmtCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Co0KPQktCQ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCS0JDQkSDQldCh0KLQldCgCivQqNCS0JDQkSDQpdCV0J3QoNCY0IjQldCi0JAKK9Co0JLQkNCT0JXQoCDQnNCQ0KDQotCY0J0KK9Co0JLQkNCI0JHQldCg0JjQiyDQktCY0KDQk9CY0J3QmNCI0JAKK9Co0JLQkNCI0KbQldCgINCT0JjQl9CV0JvQkAor0KjQktCQ0IjQptCV0KAg0JjQktCY0KbQkAor0KjQktCQ0IjQptCV0KAt0KDQkNCa0JjQiyDQmNCg0JXQndCQCivQqNCS0JDQiNCm0JXQoCDQoNCe0JfQkNCb0JjQiNCQCivQqNCS0JDQndCU0JjQm9CY0Jog0IjQntCW0JXQpAor0KjQktCQ0KDQpiDQmNCb0J7QndCQCivQqNCS0JDQoNCmINCi0JjQkdCe0KAKK9Co0JLQkNCg0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KjQktCV0JTQmNCLINCQ0IvQmNCcCivQqNCS0JXQlNCY0Isg0JTQo9Co0JDQnQor0KjQktCV0JTQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KjQktCV0JTQmNCLINCV0KDQltCY0JrQkAor0KjQktCV0JTQmNCLINCT0KDQo9CI0JAKK9Co0JLQldCU0JjQiyDQiNCe0JLQkNCdCivQqNCS0JXQlNCY0Isg0JzQmNCb0JjQptCQCivQqNCS0JXQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Co0JLQldCU0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KjQktCV0JTQmNCLINCd0JjQmtCe0JvQkAor0KjQktCV0JTQmNCLINCf0JXQotCQ0KAKK9Co0JLQldCJ0JAg0JHQntCT0JTQkNCdCivQqNCS0JXQidCQINCf0JXQotCQ0KAKK9Co0JLQldCcINCC0KPQoNCQCivQqNCS0JXQndCU0JAg0JPQntCg0JDQnQor0KjQktCV0KAg0JrQkNCg0JvQngor0KjQktCV0KDQldCgINCg0KPQlNCe0JvQpAor0KjQktCV0KDQmtCeINCQ0J3QgtCV0JvQmNCI0JAKK9Co0JLQmNCd0JQg0J3QldCd0JDQlAor0KjQktCe0JEg0IjQntCh0JjQnwor0KjQktCe0JEg0JvQkNCI0J7QqAor0KjQktCe0IrQkCDQltCV0InQmtCeCivQqNCS0J7QitCQINCC0KPQoNCC0JjQndCa0JAKK9Co0JLQntCK0JAg0JHQmNCJ0JDQndCQCivQqNCS0J7QitCQINCR0J7QqNCa0J4KK9Co0JLQntCK0JAg0JHQntCo0JrQngor0KjQktCe0IrQkCDQkdCe0JbQmNCU0JDQoAor0KjQktCe0IrQkCDQkdCe0KDQmNCS0J7QiAor0KjQktCe0IrQkCDQkdCg0JDQndCa0J4KK9Co0JLQntCK0JAg0JTQoNCQ0JPQntCJ0KPQkQor0KjQktCe0IrQkCDQlNCj0KjQkNCdCivQqNCS0J7QitCQINCU0KPQqNCa0J4KK9Co0JLQntCK0JAg0JzQmNCb0JDQnQor0KjQktCe0IrQkCDQnNCY0KDQkAor0KjQktCe0IrQkCDQoNCQ0KLQmtCeCivQqNCS0J7QitCQINCg0JDQotCa0J4KK9Co0JLQntCK0JAg0KHQktCV0KLQntCX0JDQoAor0KjQktCe0IrQkCDQktCV0InQmtCeCivQqNCS0KDQkNCa0JAg0KTQoNCQ0IrQngor0KjQktCg0JDQmtCQINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Co0JLQoNCQ0JrQkCDQodCi0JXQktCQ0J0KK9CL0JDQi9CY0Isg0JTQkNCd0JjQptCQCivQi9CQ0IvQmNCLINCU0KPQqNCQ0J0KK9CL0JDQi9CY0Isg0JzQkNCg0JrQngor0IvQkNCL0JjQiyDQndCY0J3QntCh0JvQkNCSCivQi9CQ0KXQo9CdINCa0JDQoNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQi9CQ0IjQkCDQktCQ0J3QmtCQCivQi9CQ0JrQmNCLINCT0JjQl9CQCivQi9CQ0JvQkNCh0JDQnSDQiNCe0JLQkNCdCivQi9CQ0JvQkNCh0JDQnSDQodCi0J7QiNCQ0J0KK9CL0JDQm9CV0KLQkCDQmNCS0JjQptCQCivQi9CQ0JvQmNCLINCY0JvQmNCI0JAKK9CL0JDQm9CY0Isg0IjQntCS0JDQnQor0IvQkNCb0JjQiyDQiNCe0JLQkNCdCivQi9CQ0JvQmNCLINCb0KPQmtCQCivQi9CQ0JvQmNCLINCc0JjQm9Ce0KgKK9CL0JDQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CL0JDQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQkNCb0JjQiyDQl9Ce0KDQkNCdCivQi9CQ0JvQntCSINCc0JjQm9Ce0KDQkNCUCivQi9CQ0JvQntCS0JjQiyDQm9CQ0JrQmNCLCivQi9CQ0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0IvQkNCb0KPQqNCY0Isg0IjQkNCa0J7Qkgor0IvQkNCi0JjQiyDQoNCQ0JTQldCd0JrQngor0IvQkNCi0JjQiyDQodCc0JjQidCQ0J3QkAor0IvQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQi9CQ0KLQntCS0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0IvQkNCi0J7QktCY0Isg0JzQkNCl0JjQogor0IvQkNCi0J7QktCY0Isg0KHQmNCc0JDQnQor0IvQkNCS0JDQoCDQnNCQ0KDQmtCeCivQi9CQ0JfQmNCLINCC0J7QoNCC0JUKK9CL0JDQl9CY0Isg0JzQmNCb0JUKK9CL0JDQl9CY0Isg0JzQmNCb0JUKK9CL0JDQl9CY0Isg0J/QldCi0JDQoAor0IvQldCR0JjQiyDQkdCe0KDQmNCS0J7QiAor0IvQldCR0JjQiyDQnNCY0JvQkNCdCivQi9CV0JHQmNCLINCh0JvQkNCS0JjQptCQCivQi9CV0JHQntCS0JjQiyDQndCV0J3QkNCUCivQi9CV0KXQkCDQkdCg0JDQndCVCivQi9CV0IjQmNCLINCU0KPQqNCQ0J0KK9CL0JXQiNCY0Isg0JTQo9Co0JDQnQor0IvQldCb0JDQnyDQnNCb0JDQlNCV0J0KK9CL0JXQm9CQ0J8g0KHQktCV0KLQntCX0JDQoAor0IvQldCb0JjQiyDQidCj0JHQkAor0IvQldCb0JjQiyDQodCb0JDQktCa0J4KK9CL0JXQm9CY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQi9CV0J3QkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CL0JXQoNCQ0J0g0JHQntCo0JrQngor0IvQldCg0JDQnSDQlNCj0KjQkNCdCivQi9CV0KDQkNCdINCI0JXQm9Ca0JAKK9CL0JXQoNCQ0J0g0JzQmNCb0JXQndCa0J4KK9CL0JXQoNCQ0J0g0KHQotCe0IjQkNCdCivQi9CV0KDQkNCdINCS0JXQidCa0J4KK9CL0JXQoNCQ0J0g0JfQntCg0JDQndCa0JAKK9CL0JXQoNCQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IvQldCg0JDQndCY0Isg0JzQmNCb0JDQnQor0IvQldCg0JDQndCY0Isg0JzQmNCb0JjQptCQCivQi9CV0KDQkNCd0JjQiyDQoNCQ0JTQmNCd0JrQkAor0IvQldCg0JDQndCY0Isg0KHQndCV0JbQkNCd0JAKK9CL0JXQoNCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CL0JXQoNCY0JzQkNCT0JjQiyDQldCi0KXQldCcCivQi9CV0KDQnNCe0JIt0JrQkNCS0JXQp9CQ0J0g0JHQntCI0JDQndCQCivQi9CV0KHQkNCg0J7QkiDQltCQ0KDQmtCeCivQi9CV0KHQkNCg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CL0JXQodCQ0KDQntCSINCg0KPQltCY0KbQkAor0IvQldCh0JDQoNCe0JIg0KHQmNCc0JAKK9CL0JXQodCQ0KDQntCSINCh0KLQldCS0JDQnQor0IvQldCh0JDQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0IvQldCh0JDQoNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQi9CV0KHQkNCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CL0JXQotCa0J7QktCY0Isg0JbQkNCg0JrQngor0IvQldCi0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IvQldCi0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IvQldCi0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IvQldCi0JrQntCS0JjQiyDQndCV0J3QkNCUCivQi9CV0KLQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQi9CV0KLQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0IvQldCi0J7QiNCV0JLQmNCLINCR0J7QodCQCivQi9CV0KLQntCI0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0IvQldCi0J7QiNCV0JLQmNCLINCI0J7QktCeCivQi9CV0KLQntCI0JXQktCY0Isg0JzQmNCb0J7QqAor0IvQldCi0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQi9CV0KLQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IvQldCi0J7QiNCV0JLQmNCLINCd0JXQlNCV0InQmtCeCivQi9CV0KLQntCI0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CL0JXQktCQ0J8g0JHQntCW0JAKK9CL0JjQqNCY0J0g0JTQo9Co0JDQndCa0JAKK9CL0JjQndCa0KPQmyDQodCQ0JLQkAor0IvQmNCd0JrQo9CbINCS0JDQm9Ci0JAKK9CL0JjQn9CVINCV0KDQltCV0JHQldCiCivQi9CY0J/QoNCe0JLQkNCmINCh0JDQktCQCivQi9CY0J/QoNCe0JLQkNCmINCi0J7QqNCQCivQi9CY0J/QoNCe0JLQkNCmINCX0JTQoNCQ0JLQmtCeCivQi9CY0KDQkNCaINCc0JjQm9Ce0KDQkNCUCivQi9CY0KDQkNCa0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CL0JjQoNCQ0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQi9CY0KDQkNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CL0JjQoNCQ0JrQntCS0JjQiyDQodCQ0IjQkAor0IvQmNCg0JXQktCh0JrQmCDQkdCj0JTQmNCc0JjQoAor0IvQmNCg0JjQiyDQi9CY0KDQkAor0IvQmNCg0JjQiyDQltCY0JLQmtCQCivQi9CY0KDQmNCLINCW0JjQktCa0JAKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmNCLINCC0J7QoNCC0JUKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmNCLINCC0J7QoNCC0JUKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQi9CY0KDQmNCLINCQ0J3QmNCm0JAKK9CL0JjQoNCY0Isg0JDQndCY0KLQkAor0IvQmNCg0JjQiyDQkdCe0KjQmtCeCivQi9CY0KDQmNCLINCR0J7QltCY0JTQkNCgINCU0KAKK9CL0JjQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CL0JjQoNCY0Isg0JHQntCW0J4KK9CL0JjQoNCY0Isg0JHQntCg0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQi9CY0KDQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CL0JjQoNCY0Isg0JHQoNCQ0J3QmtCQCivQi9CY0KDQmNCLINCR0KDQkNCd0JrQngor0IvQmNCg0JjQiyDQlNCQ0J3QmNCm0JAKK9CL0JjQoNCY0Isg0JTQkNCd0JjQm9CeCivQi9CY0KDQmNCLINCU0JXQodCQ0J3QmtCQCivQi9CY0KDQmNCLINCU0JjQktCa0J4KK9CL0JjQoNCY0Isg0JTQntCR0KDQmNCb0JAKK9CL0JjQoNCY0Isg0JTQoNCQ0JPQkNCdCivQi9CY0KDQmNCLINCU0KDQkNCT0JjQptCQCivQi9CY0KDQmNCLINCU0KDQkNCT0JjQitCQCivQi9CY0KDQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CL0JjQoNCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CL0JjQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9CL0JjQoNCY0Isg0JTQo9Co0JDQnQor0IvQmNCg0JjQiyDQlNCj0KjQkNCdCivQi9CY0KDQmNCLINCU0KPQqNCY0KbQkAor0IvQmNCg0JjQiyDQk9CQ0JLQoNCY0JvQngor0IvQmNCg0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IvQmNCg0JjQiyDQmNCS0JDQndCa0JAKK9CL0JjQoNCY0Isg0JjQktCQ0J0KK9CL0JjQoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CL0JjQoNCY0Isg0IjQntCg0JTQkNCdCivQi9CY0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQi9CY0KDQmNCLINCI0J7QktCQ0J0KK9CL0JjQoNCY0Isg0IjQntCS0JDQnQor0IvQmNCg0JjQiyDQiNCe0JLQkNCdCivQi9CY0KDQmNCLINCa0JDQnNCV0J3QmtCeCivQi9CY0KDQmNCLINCa0JDQotCY0KbQkAor0IvQmNCg0JjQiyDQm9CQ0JfQkNCgCivQi9CY0KDQmNCLINCb0JXQndCa0JAKK9CL0JjQoNCY0Isg0InQo9CR0JjQptCQCivQi9CY0KDQmNCLINCJ0KPQkdCY0KbQkAor0IvQmNCg0JjQiyDQidCj0JHQntCc0JjQoAor0IvQmNCg0JjQiyDQnNCQ0KDQmtCeCivQi9CY0KDQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQi9CY0KDQmNCLINCc0JjQm9CQ0J0KK9CL0JjQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CL0JjQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CL0JjQoNCY0Isg0JzQmNCb0JXQotCQCivQi9CY0KDQmNCLINCc0JjQm9CY0KbQkAor0IvQmNCg0JjQiyDQnNCY0JvQmtCQCivQi9CY0KDQmNCLINCc0JjQm9Ce0KgKK9CL0JjQoNCY0Isg0JzQmNCb0J7QqAor0IvQmNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0IvQmNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0IvQmNCg0JjQiyDQnNCY0J7QlNCg0JDQkwor0IvQmNCg0JjQiyDQnNCY0KDQkAor0IvQmNCg0JjQiyDQnNCb0JDQlNCV0J0KK9CL0JjQoNCY0Isg0J3QmNCa0J7Qm9CQCivQi9CY0KDQmNCLINCf0JDQiNCQCivQi9CY0KDQmNCLINCf0JXQotCQ0KAKK9CL0JjQoNCY0Isg0J/QldCi0JDQoAor0IvQmNCg0JjQiy3Qn9CV0KLQoNCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CL0JjQoNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CL0JjQoNCY0Isg0KDQkNCU0JUKK9CL0JjQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CL0JjQoNCY0Isg0KDQkNCU0JzQmNCb0J4KK9CL0JjQoNCY0Isg0KDQkNCU0J7QnNCY0KAKK9CL0JjQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CL0JjQoNCY0Isg0KDQntCR0JXQoNCiCivQi9CY0KDQmNCLINCh0JDQktCQCivQi9CY0KDQmNCLINCh0JvQkNCS0JjQptCQCivQi9CY0KDQmNCLINCh0JvQkNCS0JrQngor0IvQmNCg0JjQiyDQodCb0JDQktCa0J4KK9CL0JjQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQmNCg0JjQiyDQodCc0JjQidCQCivQi9CY0KDQmNCLINCh0J7QpNCY0IjQkAor0IvQmNCg0JjQiyDQodCg0JXQlNCe0IjQlQor0IvQmNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CL0JjQoNCY0Isg0KHQotCV0JLQkNCdCivQi9CY0KDQmNCLINCh0KLQldCS0JDQnQor0IvQmNCg0JjQiyDQodCi0JXQktCQ0J0KK9CL0JjQoNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQi9CY0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CL0JjQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0IvQmNCg0JjQiyDQodCS0JXQotCe0JfQkNCgCivQi9CY0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CL0JjQoNCY0Isg0KLQntCc0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQi9CY0KDQmNCLLdCi0J7QnSDQiNCV0JvQmNCm0JAKK9CL0JjQoNCY0Isg0JLQkNCh0JAKK9CL0JjQoNCY0Isg0JLQldCg0JAKK9CL0JjQoNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IvQmNCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQi9CY0KDQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQktCj0KfQmtCeCivQi9CY0KDQmNCLINCX0J7QoNCQ0J0KK9CL0JjQoNCY0Isg0JfQntCg0JAKK9CL0JjQoNCY0Isg0JfQntCg0JAKK9CL0JjQoNCY0Isg0JfQntCg0JrQkAor0IvQmNCg0JjQm9Ce0JIg0JzQmNCb0JDQnQor0IvQmNCg0JjQm9Ce0JLQmNCLINCQ0J3QmNCm0JAKK9CL0JjQoNCY0JvQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CL0JjQoNCY0JvQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0IvQmNCg0JjQm9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0IvQmNCg0JjQm9Ce0JLQmNCLINCe0JvQk9CQCivQi9CY0KDQmNCb0J7QktCY0Isg0J/QldCi0JDQoAor0IvQmNCg0JjQm9Ce0JLQmNCLINCS0JXQoNCQCivQi9CY0KDQmNCdINCU0KDQkNCT0J7QodCb0JDQkgor0IvQmNCg0JjQnS3QndCe0JLQotCQINCS0JXQoNCQCivQi9CY0KDQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CL0JjQoNCY0KLQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IvQmNCg0IjQkNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CL0JjQoNCI0JDQmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CL0JjQoNCI0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CL0JjQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JrQntCS0JjQiyDQptCS0JXQotCQ0J3QmtCQCivQi9CY0KDQmtCe0JLQmNCLINCY0JLQkNCdCivQi9CY0KDQmtCe0JLQmNCLINCY0JLQkNCdCivQi9CY0KDQmtCe0JLQmNCLINCI0JDQndCa0J4KK9CL0JjQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQi9CY0KDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CL0JjQoNCa0J7QktCY0Isg0JzQkNCg0KLQkAor0IvQmNCg0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IvQmNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQi9CY0KDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CL0JjQoNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CL0JjQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9CL0JjQoNCe0JLQmNCLINCU0JXQiNCQ0J0KK9CL0JjQoNCe0JLQmNCLINCT0KDQo9CI0JjQptCQCivQi9CY0KDQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IvQmNCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQi9CY0KDQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0IvQmNCg0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CL0JjQoNCf0JDQndCe0JIg0JzQmNCe0JTQoNCQ0JMKK9CL0JjQoNCj0KjQmNCLINCg0JDQiNCa0J4KK9CL0JjQotCY0Isg0JTQo9Co0JDQnQor0IvQmNCi0JjQiyDQnNCY0JvQntCS0JDQnQor0IvQntCL0JrQkNCb0J4g0KHQmNCc0JAKK9CL0J7QiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IvQntCI0JDQndCe0JLQmNCLINCR0J7QoNCeCivQi9Ce0IjQkNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0IvQntCI0JTQldCgINCT0J7QiNCa0J4KK9CL0J7QnNCQINCa0JDQotCQ0KDQmNCd0JAKK9CL0J7Qn9CY0Isg0JDQndCU0KDQmNCI0JAKK9CL0J7Qn9CY0Isg0JXQktCY0KbQkAor0IvQntCf0JjQiyDQnNCY0IvQkAor0IvQntCf0JjQiyDQnNCY0JvQlQor0IvQntCf0JjQiyDQnNCY0JvQntCoCivQi9Ce0J/QmNCLINCS0JXQoNCQCivQi9Ce0KDQmNCLLdCC0J7QmtCY0Isg0J3QkNCU0JAKK9CL0J7QoNCY0Isg0ILQntCg0ILQlQor0IvQntCg0JjQiyDQgtCj0KDQngor0IvQntCg0JjQiyDQgtCj0KDQngor0IvQntCg0JjQiyDQkNCd0JTQoNCY0IjQkAor0IvQntCg0JjQiyDQkdCY0KHQldCg0JrQkAor0IvQntCg0JjQiyDQkdCb0JDQk9Ce0IjQlQor0IvQntCg0JjQiyDQkdCe0KDQkAor0IvQntCg0JjQiyDQiNCe0JLQkNCdCivQi9Ce0KDQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CL0J7QoNCY0Isg0InQmNCJ0JDQndCQCivQi9Ce0KDQmNCLINCc0JDQoNCY0IjQkAor0IvQntCg0JjQiyDQnNCY0IvQngor0IvQntCg0JjQiyDQnNCY0JrQkNCY0JvQngor0IvQntCg0JjQiyDQoNCQ0IjQmtCeCivQi9Ce0KDQmtCe0JLQmNCLINCY0JLQkNCdCivQi9Ce0KDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CL0J7QoNCe0JLQmNCLINCU0JDQndCY0JvQngor0IvQntCg0J7QktCY0Isg0IjQntCS0JDQnQor0IvQntCg0J7QktCY0Isg0JzQmNCg0KfQldCi0JAKK9CL0J7QoNCe0JLQmNCLINCc0JjQoNCeCivQi9Ce0KDQntCS0JjQiyDQoNCV0J3QkNCi0JAKK9CL0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CL0J7QodCY0Isg0KjQotCV0KTQmNCm0JAKK9CL0J7QodCY0Isg0JbQkNCg0JrQngor0IvQntCh0JjQiyDQltCY0JLQkNCd0JAKK9CL0J7QodCY0Isg0JbQmNCS0JrQkAor0IvQntCh0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IvQntCh0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IvQntCh0JjQiyDQkdCe0JPQlNCQ0J0g0KHQo9CU0JjQiNCQCivQi9Ce0KHQmNCLINCR0KDQkNCd0JrQngor0IvQntCh0JjQiyDQkdCg0JDQndCa0J4KK9CL0J7QodCY0Isg0JTQkNCd0JjQptCQCivQi9Ce0KHQmNCLINCU0KDQkNCT0JDQndCQCivQi9Ce0KHQmNCLINCU0KDQkNCT0JDQnQor0IvQntCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0IvQntCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0IvQntCh0JjQiyDQlNCj0KjQkNCdCivQi9Ce0KHQmNCLINCU0KPQqNCQ0J0KK9CL0J7QodCY0Isg0JTQo9Co0JrQngor0IvQntCh0JjQiyDQpNCQ0JTQmNCbCivQi9Ce0KHQmNCLINCY0JvQmNCI0JAKK9CL0J7QodCY0Isg0IjQldCb0JrQkAor0IvQntCh0JjQiyDQiNCe0JLQkNCdCivQi9Ce0KHQmNCLINCI0J7QktCQ0J0KK9CL0J7QodCY0Isg0IjQntCS0JDQnQor0IvQntCh0JjQiyDQiNCe0JfQngor0IvQntCh0JjQiyDQidCY0InQkNCd0JAKK9CL0J7QodCY0Isg0JzQkNCg0JjQiNCQCivQi9Ce0KHQmNCLINCc0JDQoNCY0IjQkAor0IvQntCh0JjQiyDQnNCY0JvQkNCdCivQi9Ce0KHQmNCLINCc0JjQm9CV0J3QkAor0IvQntCh0JjQiyDQnNCY0JvQmNCm0JAKK9CL0J7QodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CL0J7QodCY0Isg0JzQo9Cl0JDQnNCV0JQKK9CL0J7QodCY0Isg0J7Qm9CT0JAKK9CL0J7QodCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQi9Ce0KHQmNCLINCh0JDQktCa0JAKK9CL0J7QodCY0Isg0KHQnNCY0InQkAor0IvQntCh0JjQiyDQodCd0JXQltCQ0J3QkAor0IvQntCh0JjQiyDQodCi0JDQndCa0JAKK9CL0J7QodCY0Isg0KHQotCe0IjQkNCdCivQi9Ce0KHQmNCLINCi0J7QlNCe0KAg0JTQmNCf0Jsg0JjQndCTCivQi9Ce0KHQmNCLINCS0JXQoNCQCivQi9Ce0KHQmNCLINCS0JXQoNCe0KHQm9CQ0JIKK9CL0J7QodCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IvQntCh0JjQiyDQl9Ce0KDQkNCdCivQi9Ce0KHQmNCLINCX0J7QoNCa0JAKK9CL0J7QodCY0J0g0JTQo9Co0JDQnQor0IvQntCh0JjQnSDQl9Ce0KDQkNCdCivQi9Ce0KHQniDQk9CQ0JLQoNCY0JvQngor0IvQntCh0J7QktCY0Isg0IjQldCb0JXQndCQCivQi9Ce0KHQntCS0JjQiyDQnNCY0JvQldCi0JAKK9CL0J7QodCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CL0J7QktCY0Isg0JvQkNCX0JDQoAor0IvQntCS0JjQnSDQnNCY0JvQkNCdCivQi9Cj0IvQkCDQkNCU0JDQnAor0IvQo9CL0JjQm9Ce0JLQmNCLINCm0JLQmNCI0JAKK9CL0KPQi9CY0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IvQo9CL0JjQm9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0IvQo9CL0KPQlyDQnNCQ0KDQmtCeCivQi9Cj0IvQo9CXINCh0JDQqNCQCivQi9Cj0IvQo9CXINCh0KLQkNCd0JrQngor0IvQo9CR0JAg0KDQkNCi0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CL0KPQkdCY0Isg0JTQo9Co0JDQnQor0IvQo9CY0Isg0JjQm9CY0IjQkAor0IvQo9CY0Isg0JzQkNCg0JAKK9CL0KPQmNCLINCc0JjQm9Ca0JAKK9CL0KPQiNCY0Isg0InQo9CR0JjQptCQCivQi9Cj0IjQmNCLINCh0KLQldCS0JDQnQor0IvQo9CaINCC0KPQoNCeCivQi9Cj0Jog0JTQoNCQ0JPQngor0IvQo9CaINCU0KPQqNCQ0J0KK9CL0KPQmiDQlNCj0KjQkNCdCivQi9Cj0Jog0JPQntCI0JrQngor0IvQo9CaINCb0JXQm9CQCivQi9Cj0Jog0JvQo9Ca0JAKK9CL0KPQmiDQnNCQ0KDQkAor0IvQo9CaINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQi9Cj0Jog0JzQmNCb0JUKK9CL0KPQmiDQnNCY0JvQmNCm0JAKK9CL0KPQmiDQnNCY0JvQmtCQ0J0KK9CL0KPQmiDQnNCY0JvQntCg0JDQlAor0IvQo9CaINCc0JjQoNCe0KHQm9CQ0JIKK9CL0KPQmiDQndCY0JrQntCb0JAKK9CL0KPQmiDQoNCQ0JTQmNCS0J7QiAor0IvQo9CaINCg0JDQotCa0J4KK9CL0KPQmiDQodCb0J7QkdCe0JTQkNCdCivQi9Cj0Jog0KLQntCc0JjQodCb0JDQkgor0IvQo9CaINCX0J7QoNCa0JAKK9CL0KPQmtCe0JLQmNCLINCc0JjQm9Cj0J0KK9CL0KPQmtCe0JLQmNCLINCc0JjQoNCQCivQi9Cj0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CL0KPQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQi9Cj0JrQntCS0JjQiyDQotCY0KXQntCc0JjQoNCa0JAKK9CL0KPQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CL0KPQm9CY0Isg0ILQntCg0ILQlQor0IvQo9Cb0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQi9Cj0JvQmNCR0KDQmiDQkdCe0JPQlNCQ0J0KK9CL0KPQm9CY0JHQoNCaINCU0KDQkNCT0JDQnQor0IvQo9Cb0JjQkdCg0Jog0JTQoNCQ0JPQkNCdCivQi9Cj0JvQmNCR0KDQmiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CL0KPQm9CY0JHQoNCaINCU0KPQqNCQ0J3QmtCQCivQi9Cj0JvQmNCR0KDQmiDQlNCj0KjQkNCdCivQi9Cj0JvQmNCR0KDQmiDQk9Ce0KHQn9CQ0JLQkAor0IvQo9Cb0JjQkdCg0Jog0IjQldCb0JjQptCQCivQi9Cj0JvQmNCR0KDQmiDQiNCV0JvQmtCQCivQi9Cj0JvQmNCR0KDQmiDQnNCY0JvQkNCdCivQi9Cj0JvQmNCR0KDQmiDQnNCY0JvQlQor0IvQo9Cb0JjQkdCg0Jog0JzQmNCb0JUKK9CL0KPQm9CY0JHQoNCaINCc0JjQntCU0KDQkNCTCivQi9Cj0JvQmNCR0KDQmiDQnNCY0KDQmtCeCivQi9Cj0JvQmNCR0KDQmiDQnNCb0JDQlNCV0J0KK9CL0KPQm9CY0JHQoNCaINCc0J7QnNCn0JjQm9CeCivQi9Cj0JvQmNCR0KDQmiDQoNCQ0JTQmNCS0J7QiNCVCivQi9Cj0JvQmNCR0KDQmiDQoNCQ0JTQntCI0JrQkAor0IvQo9Cb0JjQkdCg0Jog0KDQkNCi0JrQngor0IvQo9Cb0JjQkdCg0Jog0KDQmNCh0KLQngor0IvQo9Cb0JjQkdCg0Jog0KHQm9Ce0JHQntCU0JDQnQor0IvQo9Cb0JjQkdCg0Jog0KHQntCa0JAKK9CL0KPQm9CY0JHQoNCaINCh0KLQldCS0JDQnQor0IvQo9Cb0JjQkdCg0Jog0KLQoNCY0JLQngor0IvQo9Cb0KPQnCDQkdCg0JDQndCa0J4KK9CL0KPQm9Cj0Jwg0JPQntCI0JrQngor0IvQo9Cb0KPQnCDQmNCb0JjQiNCQCivQi9Cj0JvQo9CcINCI0JXQm9CY0KbQkAor0IvQo9Cb0KPQnCDQiNCe0JLQkNCdCivQi9Cj0JvQo9CcINCb0JDQl9CQ0KAKK9CL0KPQm9Cj0Jwg0JzQkNCg0JAKK9CL0KPQm9Cj0Jwg0JzQkNCg0JAKK9CL0KPQm9Cj0Jwg0JzQmNCl0JDQiNCb0J4KK9CL0KPQm9Cj0Jwg0JzQmNCb0JDQnQor0IvQo9Cb0KPQnCDQnNCY0JvQldCi0JAKK9CL0KPQm9Cj0Jwg0JzQmNCb0J7QqAor0IvQo9Cb0KPQnCDQnNCY0J7QlNCg0JDQkwor0IvQo9Cb0KPQnCDQnNCY0KDQmtCeCivQi9Cj0JvQo9CcINCc0JjQoNCa0J4KK9CL0KPQm9Cj0Jwg0J3QkNCU0JAKK9CL0KPQm9Cj0Jwg0J3QkNCU0JAKK9CL0KPQm9Cj0Jwg0J3QmNCa0J7Qm9CQCivQi9Cj0JvQo9CcINCf0JXQoNCeCivQi9Cj0JvQo9CcINCg0JDQlNCVCivQi9Cj0JvQo9CcINCg0JDQlNCVCivQi9Cj0JvQo9CcINCh0JDQktCQCivQi9Cj0JvQo9CcINCh0JvQkNCS0JrQngor0IvQo9Cb0KPQnCDQodCi0JDQndCa0JAKK9CL0KPQm9Cj0Jwg0KHQotCQ0J3QmtCQCivQi9Cj0JvQo9CcINCh0KLQldCS0J4KK9CL0KPQm9Cj0Jwg0KHQotCV0JLQngor0IvQo9Cb0KPQnCDQo9Cg0J7QqAor0IvQo9Cb0KPQnCDQktCQ0KHQkAor0IvQo9Cb0KPQnNCQ0J0g0KHQotCV0JLQkNCdCivQi9Cj0JvQo9Cc0J7QktCY0Isg0KHQotCI0JXQn9CQ0J0KK9CL0KPQnNCj0KDQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IvQo9Cf0JjQiyDQlNCj0KjQkNCdCivQi9Cj0J/QmNCd0JAg0JHQoNCQ0J3QmtCeCivQi9Cj0J/QmNCd0JAg0JzQmNCb0JDQlNCY0J0KK9CL0KPQn9CY0J3QkCDQndCe0JLQmNCm0JAKK9CL0KPQn9CY0J3QkCDQotCe0JzQmNCh0JvQkNCSINCU0KAKK9CL0KPQn9Cj0KDQlNCY0IjQkCDQiNCV0JvQldCd0JAKK9CL0KPQn9Cj0KDQlNCY0IjQkCDQnNCY0JvQkNCdCivQi9Cj0J/Qo9Cg0JTQmNCI0JAg0JzQmNCb0J7QktCQ0J0KK9CL0KPQn9Cj0KDQlNCY0IjQkCDQodCQ0KjQkAor0IvQo9Cf0KPQoNCU0JjQiNCQINCh0KLQldCS0JDQnQor0IvQo9Cg0KfQmNCLINCn0JXQlNCe0JzQmNCgCivQi9Cj0KDQp9CY0Isg0JbQmNCS0JDQnQor0IvQo9Cg0KfQmNCLINCW0JjQktCQ0J0KK9CL0KPQoNCn0JjQiyDQltCY0JLQmtCeCivQi9Cj0KDQp9CY0Isg0ILQntCg0ILQlQor0IvQo9Cg0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQi9Cj0KDQp9CY0Isg0JDQndCU0KDQmNCI0JAKK9CL0KPQoNCn0JjQiyDQkdCe0KjQmtCeCivQi9Cj0KDQp9CY0Isg0JHQntCT0JTQkNCdCivQi9Cj0KDQp9CY0Isg0JHQntCg0JjQktCe0IgKK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCa0J4KK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCa0J4KK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCa0J4KK9CL0KPQoNCn0JjQiyDQlNCQ0J3QmNCb0J4KK9CL0KPQoNCn0JjQiyDQlNCV0KHQn9CY0J3QkAor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0JDQnQor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0JDQnQor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0JDQnQor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CL0KPQoNCn0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQlNCj0KjQkNCd0JrQkAor0IvQo9Cg0KfQmNCLINCU0KPQqNCQ0J0KK9CL0KPQoNCn0JjQiyDQlNCj0KjQkNCdCivQi9Cj0KDQp9CY0Isg0JTQo9Co0JDQnQor0IvQo9Cg0KfQmNCLINCT0JXQntCg0JPQmNCI0JUKK9CL0KPQoNCn0JjQiyDQk9Ce0IjQmtCeCivQi9Cj0KDQp9CY0Isg0JPQntCg0JTQkNCd0JAKK9CL0KPQoNCn0JjQiyDQmNCR0J7QiNCQCivQi9Cj0KDQp9CY0Isg0JjQm9CY0IjQkAor0IvQo9Cg0KfQmNCLINCY0JvQmNCI0JAKK9CL0KPQoNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0IvQo9Cg0KfQmNCLINCI0JXQm9CV0J3QkAor0IvQo9Cg0KfQmNCLINCI0J7QktCQ0J0g0J3QntCS0JjQndCQ0KAKK9CL0KPQoNCn0JjQiyDQiNCe0JLQkAor0IvQo9Cg0KfQmNCLINCa0JDQnNCV0J3QmtCeCivQi9Cj0KDQp9CY0Ist0JrQkNCh0JDQm9CY0KbQkCDQkdCe0KHQkAor0IvQo9Cg0KfQmNCLINCa0JDQotCY0KbQkAor0IvQo9Cg0KfQmNCLINCb0JDQl9CQ0KAKK9CL0KPQoNCn0JjQiyDQm9CQ0JfQkNCgCivQi9Cj0KDQp9CY0Isg0InQmNCJ0JDQndCQCivQi9Cj0KDQp9CY0Isg0InQmNCJ0JDQndCQCivQi9Cj0KDQp9CY0Isg0InQo9CR0JjQqNCQCivQi9Cj0KDQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9CL0KPQoNCn0JjQiyDQnNCQ0KDQkAor0IvQo9Cg0KfQmNCLINCc0JDQoNCQCivQi9Cj0KDQp9CY0Isg0JzQkNCg0JjQiNCQCivQi9Cj0KDQp9CY0Isg0JzQkNCg0JjQiNCQCivQi9Cj0KDQp9CY0Isg0JzQkNCg0JjQiNCQCivQi9Cj0KDQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CL0KPQoNCn0JjQiyDQnNCY0IjQngor0IvQo9Cg0KfQmNCLINCc0JjQm9CQ0J0KK9CL0KPQoNCn0JjQiyDQnNCY0JvQkNCdCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JDQnQor0IvQo9Cg0KfQmNCLINCc0JjQm9CQ0J0KK9CL0KPQoNCn0JjQiyDQnNCY0JvQkNCdCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JXQndCQCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JXQktCQCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JUKK9CL0KPQoNCn0JjQiyDQnNCY0JvQlQor0IvQo9Cg0KfQmNCLINCc0JjQm9CY0IsKK9CL0KPQoNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CL0KPQoNCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0IvQo9Cg0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQi9Cj0KDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0IvQo9Cg0KfQmNCLINCc0JjQntCU0KDQkNCTCivQi9Cj0KDQp9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CL0KPQoNCn0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IvQo9Cg0KfQmNCLINCc0JjQoNCa0J4KK9CL0KPQoNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQi9Cj0KDQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCLINCc0JvQkNCU0JXQnQor0IvQo9Cg0KfQmNCLINCc0J7QnNCn0JjQm9CeCivQi9Cj0KDQp9CY0Isg0J3QkNCU0JAKK9CL0KPQoNCn0JjQiyDQndCV0J3QkNCUCivQi9Cj0KDQp9CY0Isg0J3QmNCa0J7Qm9CQCivQi9Cj0KDQp9CY0Isg0J7Qm9CT0JAKK9CL0KPQoNCn0JjQiyDQntCb0JPQkAor0IvQo9Cg0KfQmNCLINCf0JDQktCb0JUKK9CL0KPQoNCn0JjQiyDQn9CV0KLQkNCgCivQi9Cj0KDQp9CY0Isg0KDQkNCU0JUKK9CL0KPQoNCn0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IvQo9Cg0KfQmNCLINCg0JDQlNCc0JjQm9CQCivQi9Cj0KDQp9CY0Isg0KDQkNCU0JzQmNCb0JAKK9CL0KPQoNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQi9Cj0KDQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQoNCQ0IjQmtCeCivQi9Cj0KDQp9CY0Isg0KDQkNCI0JrQngor0IvQo9Cg0KfQmNCLINCg0JDQotCa0JAKK9CL0KPQoNCn0JjQiyDQoNCQ0KLQntCc0JjQoAor0IvQo9Cg0KfQmNCLINCh0JDQktCQCivQi9Cj0KDQp9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CL0KPQoNCn0JjQiyDQodCb0JDQktCa0J4KK9CL0KPQoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQi9Cj0KDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQo9Cg0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CL0KPQoNCn0JjQiyDQodCi0JXQktCQ0J0KK9CL0KPQoNCn0JjQiyDQodCi0JXQktCeCivQi9Cj0KDQp9CY0Isg0KPQoNCe0KgKK9CL0KPQoNCn0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQi9Cj0KDQp9CY0Isg0JLQldCg0JAKK9CL0KPQoNCn0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9CL0KPQoNCn0JjQiyDQktCj0JrQkNCo0JjQnQor0IvQo9Cg0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQi9Cj0KDQp9CY0Isg0JfQm9CQ0KLQkAor0IvQo9Cg0KfQmNCLINCX0J7QoNCQ0J0KK9CL0KPQoNCn0JjQiyDQl9Ce0KDQkNCdCivQi9Cj0KDQp9CY0IjQkCDQodCY0JzQkAor0IvQo9Cg0KfQmNCdINCW0JjQktCa0J4KK9CL0KPQoNCn0JjQnSDQltCY0JLQmtCeCivQi9Cj0KDQp9CY0J0g0ILQntCg0ILQlQor0IvQo9Cg0KfQmNCdINCC0KPQoNCQCivQi9Cj0KDQp9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CL0KPQoNCn0JjQnSDQkdCe0JbQmNCU0JDQoAor0IvQo9Cg0KfQmNCdINCR0KDQkNCd0JrQngor0IvQo9Cg0KfQmNCdINCU0KDQkNCT0J7QnNCY0KAKK9CL0KPQoNCn0JjQnSDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CL0KPQoNCn0JjQnSDQlNCg0JXQndCa0JAKK9CL0KPQoNCn0JjQnSDQlNCj0KjQkNCdCivQi9Cj0KDQp9CY0J0g0JTQo9Co0JDQnQor0IvQo9Cg0KfQmNCdINCV0JzQmNCb0JjQiNCQCivQi9Cj0KDQp9CY0J0g0IjQldCb0JXQndCQCivQi9Cj0KDQp9CY0J0g0IjQldCb0JjQodCQ0JLQldCi0JAKK9CL0KPQoNCn0JjQnSDQidCj0JHQmNCm0JAKK9CL0KPQoNCn0JjQnSDQnNCQ0JrQodCQCivQi9Cj0KDQp9CY0J0g0JzQmNCb0JDQnQor0IvQo9Cg0KfQmNCdINCc0JjQm9CV0J3QkAor0IvQo9Cg0KfQmNCdINCc0JjQm9Ce0KDQkNCUCivQi9Cj0KDQp9CY0J0g0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCn0JjQnSDQntCR0KDQkNCUCivQi9Cj0KDQp9CY0J0g0J/QldCi0JDQoAor0IvQo9Cg0KfQmNCdINCg0JDQlNCY0JLQntCICivQi9Cj0KDQp9CY0J0g0KDQkNCU0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCdINCg0KPQltCQCivQi9Cj0KDQp9CY0J0g0KHQkNCg0JAKK9CL0KPQoNCn0JjQnSDQodCS0JXQotCe0JfQkNCgCivQi9Cj0KDQp9CY0J0g0KLQntCU0J7QoAor0IvQo9Cg0KfQmNCdINCS0JDQodCQCivQi9Cj0KDQp9CY0J0g0JLQldCb0JXQnNCY0KAKK9CL0KPQoNCn0JjQnSDQktCV0JvQmNCc0JjQoAor0IvQo9Cg0KfQmNCdINCS0JXQoNCY0KbQkAor0IvQo9Cg0KfQmNCdINCS0KPQmtCY0KbQkAor0IvQo9Cg0KfQmNCdINCX0J7QoNCQCivQi9Cj0KDQi9CY0IjQmNCLINCg0JDQotCe0JzQmNCgCivQi9Cj0KDQlNCY0Isg0IjQntCS0JDQnQor0IvQo9Cg0JTQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CL0KPQoNCU0JjQiyDQl9Ce0KDQkNCdCivQi9Cj0KDQk9Cj0Jcg0JjQm9CY0IjQkAor0IvQo9Cg0JPQo9CXINCc0JjQm9Ce0KDQkNCUCivQi9Cj0KDQk9Cj0Jcg0J3QkNCU0JAKK9CL0KPQoNCT0KPQlyDQktCV0KDQmNCm0JAKK9CL0KPQoNCY0KfQmNCLINCi0JDQotCI0JDQndCQCivQi9Cj0KDQmNCLINCC0J7QoNCC0JUKK9CL0KPQoNCY0Isg0IjQntCS0JDQnQor0IvQo9Cg0JjQiyDQnNCY0JvQkNCdCivQi9Cj0KDQmNCLINCc0JjQm9Ce0KgKK9CL0KPQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCY0Isg0JzQmNCb0KPQotCY0J0KK9CL0KPQoNCY0Isg0J/QldCb0JDQk9CY0IjQkAor0IvQo9Cg0JjQiyDQodCQ0JLQngor0IvQo9Cg0JjQiyDQodCY0JzQngor0IvQo9Cg0JjQiyDQodCY0J3QmNCo0JAKK9CL0KPQoNCY0Isg0KHQo9CX0JDQndCQCivQi9Cj0KDQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0IvQo9Cg0JrQntCS0JjQiyDQqNCf0JjQoNCeCivQi9Cj0KDQmtCe0JLQmNCLLdCC0J7QoNCC0JXQktCY0Isg0JzQmNCe0JzQmNCg0JAKK9CL0KPQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQi9Cj0KDQm9CY0JHQoNCaINCR0J7QodCY0InQmtCQCivQi9Cj0KDQo9CS0JjQiNCQINCR0KDQkNCd0JrQngor0IvQo9Cg0KPQktCY0IjQkCDQndCY0JrQntCb0JAKK9CL0KPQoNCj0JLQmNCI0JAg0J3QmNCa0J7Qm9CQCivQi9Cj0KDQo9CS0JjQiNCQINCS0JvQkNCU0J4KK9CL0KPQotCY0JvQniDQodCi0JXQktCeCivQi9Cj0JfQntCS0JjQiyDQkdCg0JDQndCVCivQi9Cj0JfQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQi9Cj0JfQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQi9Cj0JfQntCS0JjQiyDQk9Ce0KDQkNCdCivQi9Cj0JfQntCS0JjQiyDQnNCY0KDQmtCeCivQltCQ0JHQkNCJ0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQltCQ0JHQmNCLINCT0J7QoNCQ0J0KK9CW0JDQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9CW0JDQkdCj0InQkNCmINCf0JDQktCb0JUKK9CW0JDQpNCg0JDQnSDQnNCQ0KDQotCY0J0KK9CW0JDQk9CQ0KAg0JTQoNCQ0JPQkNCdCivQltCQ0JPQkNCgINCV0KDQndCV0KHQogor0JbQkNCT0JDQoCDQmNCS0JDQnQor0JbQkNCT0JDQoCDQiNCe0JLQkNCdCivQltCQ0JPQkNCgINCJ0JjQidCQCivQltCQ0JPQkNCgINCc0JDQoNCY0IjQkAor0JbQkNCT0JDQoCDQnNCQ0KLQmNCI0JAKK9CW0JDQk9CQ0KAg0J/QkNCS0JDQngor0JbQkNCT0JDQoCDQoNCQ0JTQntCh0JvQkNCS0JAKK9CW0JDQiNCQINCi0J7QnNCY0KHQm9CQ0JIKK9CW0JDQiNCQ0KfQmtCeINCW0JXQidCa0J4KK9CW0JDQmiDQlNCg0JDQk9Cj0KLQmNCdCivQltCQ0JrQmNCLINCJ0KPQkdCY0KbQkAor0JbQkNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JDQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CW0JDQmtCY0Isg0JzQm9CQ0JTQldCdCivQltCQ0JrQmNCLINCS0JXQoNCQCivQltCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CW0JDQmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0JbQkNCa0KPQm9CQINCQ0KDQkNCd0JrQkAor0JbQkNCa0KPQm9CQINCR0J7QoNCY0KHQm9CQ0JIKK9CW0JDQmtCj0JvQkCDQnNCY0JvQkNCdCivQltCQ0JrQo9Cb0JAg0JzQmNCb0JDQnQor0JbQkNCa0KPQm9CQINCc0JjQntCU0KDQkNCTCivQltCQ0JrQo9Cb0JAg0JzQmNCg0JAKK9CW0JDQmtCj0JvQkCDQoNCQ0JTQmNCS0J7QiCDQlNCgINCf0KDQntCkCivQltCQ0JrQo9Cb0JAg0JfQntCg0JAKK9CW0JDQnNCR0J7QmtCYINCc0JDQoNCY0IjQkAor0JbQkNCc0JHQntCa0Jgg0JLQldCg0J7QndCQCivQltCQ0KDQp9CQ0J3QmNCdINCR0KDQkNCd0JrQngor0JbQkNCg0KfQkNCd0JjQnSDQn9Cg0JXQlNCg0JDQkwor0JbQkNCg0JjQnSDQoNCQ0JTQntCI0JjQptCQCivQltCQ0KDQmNCdINCh0JjQndCY0KjQkAor0JbQkNCg0JjQnS3QotCQ0JHQkNCaINCd0JDQotCQ0JvQmNCI0JAKK9CW0JDQoNCY0J0g0JLQldCh0JXQm9CY0J0KK9CW0JDQoNCa0J4g0JvQkNCU0JjQodCb0JDQkgor0JbQkNCg0JrQniDQnNCY0KXQkNCI0JvQngor0JbQkNCg0JrQntCSINCU0KPQqNCQ0J0KK9CW0JDQoNCa0J7QkiDQmtCe0KHQotCQCivQltCQ0KDQmtCe0JIg0InQmNCJ0JDQndCQCivQltCQ0KDQmtCe0JIg0JLQldCh0JXQm9Ca0JAKK9CW0JDQoNCa0J7QkiDQl9Cb0JDQotCe0IjQlQor0JbQkNCg0JrQntCS0JDQp9Ca0Jgg0JjQm9CY0IjQkAor0JbQkNCg0JrQntCS0JDQp9Ca0Jgg0JzQmNCg0JrQngor0JbQkNCg0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JbQkNCg0JrQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CW0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JUg0JTQoCDQn9Cg0J7QpAor0JbQkNCg0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JbQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQltCQ0KDQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JbQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQkNCg0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQltCQ0KDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CW0JDQoNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JbQkNCg0JrQntCS0JjQiyDQndCe0JLQmNCm0JAKK9CW0JDQoNCa0J7QktCY0Isg0KDQmNCh0KLQngor0JbQkNCg0JrQntCS0JjQiyDQoNCY0KHQotCeCivQltCQ0KDQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JbQkNCg0JrQntCS0JjQiyDQktCb0JDQiNCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JfQntCg0JAKK9CW0JTQldCg0JjQiyDQiNCV0JvQmNCm0JAKK9CW0JTQldCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JTQldCg0JjQiyDQnNCY0JvQkNCdCivQltCU0JXQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CW0JTQldCg0J4g0JTQoNCQ0JPQmNCK0JAKK9CW0JTQldCg0J4g0JTQo9Co0JjQptCQCivQltCU0JXQoNCeINCT0J7QiNCa0J4KK9CW0JTQldCg0J4g0JzQkNCg0JjQndCa0J4KK9CW0JTQldCg0J4g0J/QldCi0JDQoAor0JbQlNCV0KDQniDQn9CV0KLQkNCgCivQltCU0JXQoNCeINCg0JDQlNCe0JzQmNCgCivQltCU0KDQkNCb0JUg0KDQkNCU0J7QktCQ0J0KK9CW0JTQoNCQ0JvQmNCLINCS0JDQodCeCivQltCU0KDQitCQINCc0JjQm9CQ0J0KK9CW0JTQoNCK0JAg0JzQmNCb0JDQnQor0JbQlNCg0IrQkCDQnNCY0KDQmtCeCivQltCU0KDQitCQINCd0JXQgtCeCivQltCU0KDQitCQINCd0JXQgtCeCivQltCU0KDQitCQINCh0JjQnNCeCivQltCV0JbQldCJINCR0KDQkNCd0JrQngor0JbQldCW0JXQiSDQnNCY0JvQkNCdCivQltCV0JbQldCJINCc0JjQm9CQ0J0KK9CW0JXQltCV0Ikg0KHQkNCS0JAKK9CW0JXQltCV0Ikg0KHQktCV0KLQmNCh0JvQkNCSCivQltCV0JHQldCJ0JDQnSDQnNCY0JvQldCd0JAKK9CW0JXQkdCV0InQkNCdINCc0JjQm9CV0J3QmtCeCivQltCV0JHQldCJ0JDQnSDQnNCY0JvQntCg0JDQlAor0JbQldCR0JXQidCQ0J0g0JzQmNCi0JAKK9CW0JXQkdCV0InQkNCdINCd0JXQlNCV0InQmtCeCivQltCV0JHQldCg0JDQnSDQkNCd0ILQldCb0JrQkAor0JbQldCT0JDQoNCQ0KYg0ILQntCg0ILQlQor0JbQldCT0JDQoNCQ0KYg0JTQkNCd0JjQptCQCivQltCV0JPQkNCg0JDQpiDQlNCj0KjQkNCdCivQltCV0JPQkNCg0JDQpiDQm9CQ0JfQkNCgCivQltCV0JPQkNCg0JDQpiDQnNCY0JvQkNCdCivQltCV0JPQkNCg0JDQpiDQnNCY0JvQldCd0JrQngor0JbQldCT0JDQoNCQ0KYg0JzQmNCg0IjQkNCd0JAKK9CW0JXQk9CQ0KDQkNCmINCh0KLQldCS0JDQnQor0JbQldCT0JDQoNCQ0KYg0JLQntCI0JjQodCb0JDQkgor0JbQldCa0JjQiyDQltCY0JLQmtCeCivQltCV0JrQmNCLINCR0J7QqNCa0J4KK9CW0JXQmtCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JbQldCa0JjQiyDQoNCj0JbQkAor0JbQldCa0JjQiyDQl9Ce0KDQkNCdCivQltCV0JvQldCcINCh0KLQldCS0JDQnQor0JbQldCb0JXQoCDQgtCj0KDQgtCV0JLQmtCQCivQltCV0JvQldCX0JXQnSDQiNCe0KHQmNCfCivQltCV0JvQmCDQkNCd0JTQoNCQ0KgKK9CW0JXQm9CYINCY0KjQotCS0JDQnQor0JbQldCb0Jgg0JrQkNCi0JDQoNCY0J3QkAor0JbQldCb0Jgg0KHQmNCb0JLQldCh0KLQldCgCivQltCV0JzQkdCV0KDQmCDQqNCQ0J3QlNCe0KAKK9CW0JXQnNCR0JXQoNCYINCI0J7QodCY0J8KK9CW0JXQnNCR0JXQoNCYINCg0J7QkdCV0KDQogor0JbQldCc0JHQldCg0Jgg0KDQntCR0JXQoNCiCivQltCV0J3QldCgINCa0JDQoNCb0J4KK9CW0JXQndCY0JvQniDQkdCe0JbQmNCU0JDQoAor0JbQldCg0JDQiNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CW0JXQoNCQ0JLQmNCm0JAg0JTQkNCc0IjQkNCdCivQltCV0KDQkNCS0JjQptCQINCc0JjQm9CQ0JTQmNCdCivQltCV0KDQkNCS0JjQptCQINCd0JDQlNCQCivQltCV0KDQkNCS0JjQptCQINCh0KLQkNCd0J7QiNCVCivQltCV0KDQkNCS0InQldCSINCY0JvQmNCI0JAKK9CW0JXQoNCY0Isg0JjQoNCc0JAKK9CW0JXQodCi0JjQiyDQqNCi0JXQpNCQ0J3QmNCI0JAKK9CW0JjQltCQINCd0JDQlNCQCivQltCY0JbQkNCa0JjQiyDQodCQ0JLQkAor0JbQmNCW0JDQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JbQmNCW0JDQmtCe0JIg0JrQkNCi0JjQptCQCivQltCY0JbQkNCa0J7QkiDQnNCY0JvQntCoCivQltCY0JbQkNCa0J7QkiDQn9CQ0JLQm9CVCivQltCY0JbQkNCa0J7QkiDQktCV0JvQmNCd0JrQkAor0JbQmNCW0JDQmtCe0JIg0JLQmNCi0J7QnNCY0KAKK9CW0JjQltCQ0JrQntCSINCS0JvQkNCU0JAKK9CW0JjQltCQ0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9CW0JjQltCY0Isg0KfQldCU0J7QnNCY0KAKK9CW0JjQltCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JbQmNCW0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CW0JjQltCY0Isg0JTQoNCQ0JPQkNCdCivQltCY0JbQmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JbQmNCLINCS0JXQodCV0JvQmNCdCivQltCY0JbQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JbQmNCR0KDQldCTINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQltCY0JHQoNCV0JMg0JjQktCQ0J3QkAor0JbQmNCU0JXQmiDQiNCe0KHQmNCfCivQltCY0JTQmNCo0JjQiyDQl9Ce0KDQkNCdCivQltCY0JPQkCDQiNCV0JvQldCd0JAKK9CW0JjQk9CQINCa0JDQoNCb0J4KK9CW0JjQk9CQINCc0JjQoNCa0J4KK9CW0JjQk9CQINCc0KPQodCi0JDQpNCQCivQltCY0JPQkNCb0JDQpiDQktCV0KDQntCd0JAKK9CW0JjQk9CY0Isg0JHQntCT0JTQkNCdCivQltCY0JPQmNCLINCR0KDQkNCd0JrQngor0JbQmNCT0JjQiyDQlNCQ0J3QmNCm0JAKK9CW0JjQk9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQltCY0JPQmNCLINCU0KPQqNCQ0J0KK9CW0JjQk9CY0Isg0IjQo9Cb0JjQiNCQCivQltCY0JPQmNCLINCJ0KPQkdCY0KjQkAor0JbQmNCT0JjQiyDQnNCY0JvQkNCdCivQltCY0JPQmNCLINCc0JjQm9CQ0J0KK9CW0JjQk9CY0Isg0JzQmNCb0JDQnQor0JbQmNCT0JjQiyDQnNCY0JvQldCS0JAKK9CW0JjQk9CY0Isg0JzQmNCb0JrQkAor0JbQmNCT0JjQiyDQnNCY0KDQmtCeCivQltCY0JPQmNCLINCd0JXQlNCV0InQmtCeCivQltCY0JPQmNCLINCd0JjQmtCe0JvQkAor0JbQmNCT0JjQiyDQn9CV0KLQkNCgCivQltCY0JPQmNCLINCf0JXQotCQ0KAKK9CW0JjQk9CY0Isg0J/QldCi0JDQoAor0JbQmNCT0JjQiyDQoNCQ0JTQlQor0JbQmNCT0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQltCY0JPQmNCLINCh0JDQktCa0JAKK9CW0JjQk9CY0Isg0JLQntCI0JjQnQor0JbQmNCT0JzQntCd0JQg0JHQldCb0JAKK9CW0JjQk9Cc0J7QndCUINCR0KDQkNCd0JrQkAor0JbQmNCT0KDQkNCYINCC0J7QoNCC0JUKK9CW0JjQk9Cg0JDQmCDQmNCo0KLQktCQ0J0g0JzQoAor0JbQmNCT0KDQkNCYINCI0J7QktCQ0J0KK9CW0JjQk9Cg0Jgg0IjQntCh0JjQnwor0JbQmNCT0KDQmCDQidCj0JHQmNCm0JAKK9CW0JjQk9Cg0Jgg0JzQmNCg0JrQngor0JbQmNCT0KPQoNCh0JrQmCDQn9CQ0JLQm9CVCivQltCY0KXQkCDQnNCQ0KDQmNCI0JAKK9CW0JjQpdCb0JDQktCh0JrQmCDQiNCj0JvQmtCQCivQltCY0IjQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CW0JjQmtCY0Isg0ILQntCg0ILQlQor0JbQmNCa0JjQiyDQgtCe0KDQgtCVCivQltCY0JrQmNCLINCC0J7QoNCC0JUKK9CW0JjQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQltCY0JrQmNCLINCU0J7QkdCg0JjQm9CQCivQltCY0JrQmNCLINCU0KDQkNCT0JDQnQor0JbQmNCa0JjQiyDQlNCj0KjQkNCdCivQltCY0JrQmNCLINCI0J7QktCQ0J3QmtCQCivQltCY0JrQmNCLINCI0J7QktCQ0J0KK9CW0JjQmtCY0Isg0IjQntCS0JDQnQor0JbQmNCa0JjQiyDQmtCQ0KLQmNCm0JAKK9CW0JjQmtCY0Isg0InQo9CR0JjQptCQCivQltCY0JrQmNCLINCc0JDQoNCY0KbQkAor0JbQmNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JjQmtCY0Isg0JzQmNCl0JDQiNCb0J4KK9CW0JjQmtCY0Isg0JzQmNCb0JDQnQor0JbQmNCa0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgCivQltCY0JrQmNCLINCd0JXQktCV0J3QkAor0JbQmNCa0JjQiyDQndCY0JrQntCb0JAKK9CW0JjQmtCY0Isg0J3QmNCa0J7Qm9CQCivQltCY0JrQmNCLINCe0JvQk9CQCivQltCY0JrQmNCLINCe0JvQmNCS0JXQoNCQCivQltCY0JrQmNCLINCg0JDQlNCY0JLQntCICivQltCY0JrQmNCLINCg0JDQlNCe0JzQmNCgCivQltCY0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CW0JjQmtCY0Isg0KHQntCk0JjQiNCQCivQltCY0JrQmNCLINCi0JDQnNCQ0KDQkAor0JbQmNCa0JjQiyDQotCY0KXQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CW0JjQmtCY0Isg0KLQntCU0J7QoAor0JbQmNCa0JjQiyDQktCQ0KHQkAor0JbQmNCa0JjQiy3QktCQ0KHQmNCLINCi0JDQnNCQ0KDQkAor0JbQmNCa0JjQiyDQktCV0JvQmNCc0JjQoAor0JbQmNCa0JjQiyDQktCV0KDQkAor0JbQmNCa0JjQiyDQktCV0KDQmNCm0JAKK9CW0JjQmtCY0Isg0JLQmNCi0J7QnNCY0KAKK9CW0JjQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JbQmNCb0JXQktCh0JrQmCDQmtCg0KHQotCeCivQltCY0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQltCY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CW0JjQm9CY0Isg0KHQotCe0IjQkNCdCivQltCY0JvQndCY0Jog0ILQo9Cg0JAKK9CW0JjQm9Cd0JjQmiDQgtCj0KDQkAor0JbQmNCb0J3QmNCaINCf0JDQktCb0JUg0JTQmNCf0Jsg0JjQndCTCivQltCY0JvQndCY0Jot0J/QldCi0KDQntCS0JjQiyDQltCV0JvQmNCc0JjQoAor0JbQmNCd0JjQiyDQnNCQ0KDQmNCd0JAKK9CW0JjQoNCQ0JLQkNCmINCh0KLQldCS0JDQnQor0JbQmNCg0JrQkCDQn9CQ0JLQldCbCivQltCY0KDQntCoINCc0JjQoNCe0J0KK9CW0JjQoNCe0JLQndCY0Jog0JDQndCi0J7QnQor0JbQmNCS0KfQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CW0JjQktCQ0InQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQltCY0JLQkNCJ0JXQktCY0Isg0JPQntCg0JDQnQor0JbQmNCS0JDQidCV0JLQmNCLINCe0JvQk9CQCivQltCY0JLQkNCJ0JXQktCY0Isg0KHQotCQ0J3QkAor0JbQmNCS0JDQndCn0JXQkiDQmNCb0JjQiNCQCivQltCY0JLQkNCd0KfQldCSINCI0J7QktCQ0J0KK9CW0JjQktCQ0J3Qp9CV0JIg0JrQkNCh0JAg0JTQmNCf0Jsg0JjQndCTCivQltCY0JLQkNCd0KfQldCSINCc0JjQmtCQCivQltCY0JLQkNCd0KfQldCSINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3Qp9CV0JIg0JzQmNCb0JDQnQor0JbQmNCS0JDQndCn0JXQkiDQn9CQ0IjQkAor0JbQmNCS0JDQndCn0JXQkiDQoNCQ0JTQkAor0JbQmNCS0JDQndCn0JXQkiDQoNCQ0J3QmtCeCivQltCY0JLQkNCd0KfQldCSINCh0KLQldCS0JDQnQor0JbQmNCS0JDQndCn0JXQkiDQodCi0KDQkNCl0JjQitCQCivQltCY0JLQkNCd0KfQldCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQkNCd0KfQldCS0JjQiyDQnNCY0InQmtCeCivQltCY0JLQkNCd0KfQldCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgCivQltCY0JLQkNCd0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQltCY0JLQkNCd0KfQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JbQmNCS0JDQndCQ0KYg0JTQldCI0JDQnQor0JbQmNCS0JDQndCQ0KYg0JTQldCI0JDQnQor0JbQmNCS0JDQndCQ0KYg0JvQkNCX0JDQoAor0JbQmNCS0JDQndCQ0KYg0JfQntCg0JjQptCQCivQltCY0JLQkNCd0JjQiyDQgtCe0JrQkAor0JbQmNCS0JDQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9CW0JjQktCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQkNCd0JjQiyDQnNCY0KLQkNCgCivQltCY0JLQkNCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JbQmNCS0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JDQndCa0JjQiyDQldCS0JjQptCQCivQltCY0JLQkNCd0JrQntCSINCY0JPQitCQ0KIKK9CW0JjQktCQ0J3QntCSINCW0JDQoNCa0J4KK9CW0JjQktCQ0J3QntCSINCW0JjQktCQ0J0KK9CW0JjQktCQ0J3QntCSINCW0JjQktCa0J4KK9CW0JjQktCQ0J3QntCSINCQ0J3QgtCV0JvQmNCI0JAKK9CW0JjQktCQ0J3QntCSINCR0J7Qk9Ce0InQo9CRCivQltCY0JLQkNCd0J7QkiDQkdCg0JDQndCa0J4KK9CW0JjQktCQ0J3QntCSINCU0JDQndCY0KbQkAor0JbQmNCS0JDQndCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQltCY0JLQkNCd0J7QkiDQlNCe0JHQoNCY0JvQkAor0JbQmNCS0JDQndCe0JIg0JTQntCR0KDQmNCS0J7QiAor0JbQmNCS0JDQndCe0JIg0JTQoNCQ0JPQntCI0JvQkAor0JbQmNCS0JDQndCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQltCY0JLQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCU0KPQqNCQ0J0KK9CW0JjQktCQ0J3QntCSINCT0J7QoNCe0KHQm9CQ0JLQkAor0JbQmNCS0JDQndCe0JIg0IjQo9Ch0KLQmNCd0JAKK9CW0JjQktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CW0JjQktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CW0JjQktCQ0J3QntCSINCb0JXQn9Ce0KHQkNCS0JAKK9CW0JjQktCQ0J3QntCSINCJ0KPQkdCY0KbQkAor0JbQmNCS0JDQndCe0JIg0JzQkNCT0JTQkAor0JbQmNCS0JDQndCe0JIg0JzQkNCa0KHQmNCdCivQltCY0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CW0JjQktCQ0J3QntCSINCc0JDQoNCY0IjQkAor0JbQmNCS0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQltCY0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CW0JjQktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3QntCSINCc0JjQm9CV0KLQkAor0JbQmNCS0JDQndCe0JIg0JzQmNCb0JjQktCe0IgKK9CW0JjQktCQ0J3QntCSINCc0JjQm9Ce0KgKK9CW0JjQktCQ0J3QntCSINCc0JjQm9Ce0KgKK9CW0JjQktCQ0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQkNCd0J7QkiDQnNCY0J7QlNCg0JDQkwor0JbQmNCS0JDQndCe0JIg0JzQmNCe0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQnNCY0KLQkAor0JbQmNCS0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQltCY0JLQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9CW0JjQktCQ0J3QntCSINCc0JvQkNCU0JXQnQor0JbQmNCS0JDQndCe0JIg0JzQntCc0JjQoAor0JbQmNCS0JDQndCe0JIg0J3QkNCi0JDQqNCQCivQltCY0JLQkNCd0J7QkiDQndCY0JrQntCb0JAKK9CW0JjQktCQ0J3QntCSINCf0JDQktCY0KbQkAor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0KDQkNCU0JjQqNCQCivQltCY0JLQkNCd0J7QkiDQoNCQ0IjQmtCeCivQltCY0JLQkNCd0J7QkiDQodCQ0JLQkAor0JbQmNCS0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQltCY0JLQkNCd0J7QkiDQodCg0ILQkNCdCivQltCY0JLQkNCd0J7QkiDQodCg0JHQmNCh0JvQkNCSCivQltCY0JLQkNCd0J7QkiDQodCi0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9CW0JjQktCQ0J3QntCSINCi0J7QlNCe0KAKK9CW0JjQktCQ0J3QntCSINCi0J7QnNCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCi0KPQk9Ce0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQktCV0JvQmNCc0JjQoAor0JbQmNCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCe0JIg0JLQntCI0JjQodCb0JDQkgor0JbQmNCS0JDQndCe0JIg0JfQm9CQ0KLQmNCd0JrQkAor0JbQmNCS0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CW0JjQktCQ0J3QntCS0JjQiyDQltCY0JrQkAor0JbQmNCS0JDQndCe0JLQmNCLINCW0JjQktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JbQmNCS0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQltCY0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JbQmNCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQltCY0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JjQiNCQCivQltCY0JLQkNCd0J7QktCY0Isg0JDQndCa0JjQptCQCivQltCY0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JbQmNCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CW0JjQktCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQkdCe0KDQmtCQCivQltCY0JLQkNCd0J7QktCY0Isg0JHQo9CU0JjQnNCa0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JbQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CW0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQltCY0JLQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQltCY0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQkNCd0J7QktCY0Ist0JvQldCoINCU0KPQqNCY0KbQkAor0JbQmNCS0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQltCY0JLQkNCd0J7QktCY0Isg0J3QntCS0JjQptCQCivQltCY0JLQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0JbQmNCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQltCY0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JbQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCQCivQltCY0JLQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQodCb0JDQktCa0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9CW0JjQktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQltCY0JLQkNCd0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQltCY0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JbQmNCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9CW0JjQktCY0Isg0ILQntCg0ILQlQor0JbQmNCS0JjQiyDQgtCe0KDQgtCVCivQltCY0JLQmNCLINCR0J7QltCY0JTQkNCgCivQltCY0JLQmNCLINCT0JDQktCg0JAKK9CW0JjQktCY0Isg0IjQldCk0KLQkAor0JbQmNCS0JjQiyDQiNCV0JvQmNCm0JAKK9CW0JjQktCY0Isg0IjQntCS0JDQnQor0JbQmNCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQmNCLINCJ0KPQkdCY0KbQkAor0JbQmNCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQltCY0JLQmNCLINCh0JDQktCQCivQltCY0JLQmNCLINCh0JDQktCQCivQltCY0JLQmNCLINCh0JzQmNCJ0JAKK9CW0JjQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9CW0JjQktCY0Isg0JLQldCb0JjQkdCe0KAKK9CW0JjQktCY0Isg0JLQmNCd0JrQkCDQlNCgCivQltCY0JLQmNCLINCX0J7QoNCa0JAKK9CW0JjQktCY0J0g0J3QkNCU0JAKK9CW0JjQktCa0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JjQktCa0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCa0J7QkiDQgtCe0KDQgtCVCivQltCY0JLQmtCe0JIg0JDQndCC0JXQm9Ca0JAKK9CW0JjQktCa0J7QkiDQkNCd0ILQldCb0JrQkAor0JbQmNCS0JrQntCSINCR0J7QoNCY0KHQm9CQ0JLQkAor0JbQmNCS0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JbQmNCS0JrQntCSINCU0KDQkNCT0JjQitCQCivQltCY0JLQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JbQmNCS0JrQntCSINCU0KPQqNCa0J4KK9CW0JjQktCa0J7QkiDQldCh0KLQldCgCivQltCY0JLQmtCe0JIg0JPQoNCQ0JTQmNCc0JjQoAor0JbQmNCS0JrQntCSINCY0JLQkNCdCivQltCY0JLQmtCe0JIg0JrQntCh0KLQkAor0JbQmNCS0JrQntCSINCc0JDQoNCa0J4KK9CW0JjQktCa0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQltCY0JLQmtCe0JIg0J3QldCd0JDQlAor0JbQmNCS0JrQntCSINCf0JDQktCb0JUKK9CW0JjQktCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0JbQmNCS0JrQntCSINCh0JDQktCQCivQltCY0JLQmtCe0JIg0KHQkNCS0JAKK9CW0JjQktCa0J7QkiDQodCb0JDQktCa0J4KK9CW0JjQktCa0J7QkiDQodCb0JDQktCa0J4KK9CW0JjQktCa0J7QkiDQktCQ0KHQkAor0JbQmNCS0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JbQkNCa0JvQmNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0JbQmNCS0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0JbQmNCS0JrQntCS0JjQiyDQgtCe0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQltCY0JLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CW0JjQktCa0J7QktCY0Isg0JDQiNCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9Ce0IjQl9CY0IjQkAor0JbQmNCS0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQkdCb0JDQqNCa0J4KK9CW0JjQktCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQltCY0JLQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JbQmNCS0JrQntCS0JjQiyDQkdCe0JPQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQkdCe0JPQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JHQntCg0J4KK9CW0JjQktCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQINCU0KAKK9CW0JjQktCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQltCY0JLQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JbQmNCS0JrQntCS0JjQiyDQlNCV0IjQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JbQmNCS0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CW0JjQktCa0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAg0JTQoAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CY0IsKK9CW0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JbQmNCS0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQlNCj0KjQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0JPQkNCR0KDQmNCI0JXQm9CQCivQltCY0JLQmtCe0JLQmNCLINCT0JDQkdCg0JjQiNCV0JvQkAor0JbQmNCS0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQltCY0JLQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9CW0JjQktCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JbQmNCS0JrQntCS0JjQiyDQmNCb0J7QndCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCY0JLQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQltCY0JLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCI0KPQm9Ca0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQo9Cb0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQiNCj0JvQmtCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQmtCe0KHQotCQCivQltCY0JLQmtCe0JLQmNCLINCa0KDQldCo0J4KK9CW0JjQktCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQmtCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CW0JjQktCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JbQmNCS0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQltCY0JLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JbQmNCS0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JbQmNCS0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CW0JjQktCa0J7QktCY0Isg0J7QkdCg0JDQlAor0JbQmNCS0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQltCY0JLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0J/QldCi0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQltCY0JLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JUKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQltCY0JLQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCg0J7QodCQCivQltCY0JLQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CW0JjQktCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQltCY0JLQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JbQmNCS0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CW0JjQktCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQltCY0JLQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0KHQnNCY0InQmtCQCivQltCY0JLQmtCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0JbQmNCS0JrQntCS0JjQiyDQodCi0JDQnNCV0J3QmtCeCivQltCY0JLQmtCe0JLQmNCLINCh0KLQldCf0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQltCY0JLQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CW0JjQktCa0J7QktCY0Isg0KLQkNCd0JDQodCY0IjQlQor0JbQmNCS0JrQntCS0JjQiyDQotCY0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCi0J7QqNCQCivQltCY0JLQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQktCV0JrQntCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCS0JXQoNCQCivQltCY0JLQmtCe0JLQmNCLINCS0JXQoNCQCivQltCY0JLQmtCe0JLQmNCLINCS0JjQlNCe0IjQmtCeCivQltCY0JLQmtCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQktCe0IjQmNCdCivQltCY0JLQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JfQlNCV0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCX0JTQldCd0JrQngor0JbQmNCS0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JbQmNCS0JrQntCS0JjQiyDQl9Cb0JDQotCe0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JrQntCS0InQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQltCY0JLQmtCj0KbQmNCdINCc0JjQoNCe0KHQm9CQ0JLQkAor0JbQmNCS0JrQo9Cm0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQltCY0JLQndCYINCQ0J3QkAor0JbQmNCS0J3QmCDQpNCg0JDQitCQCivQltCY0JLQntCI0JjQndCe0JIg0JHQntCg0JjQktCe0IgKK9CW0JjQktCe0IjQmNCd0J7QkiDQidCj0JHQmNCm0JAKK9CW0JjQktCe0IjQmNCd0J7QkiDQnNCY0JvQntCS0JDQnQor0JbQmNCS0J7QiNCY0J3QntCSINCg0JDQlNCY0JLQntCICivQltCY0JLQntCI0JjQndCe0JLQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9CW0JjQktCe0IjQmNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0J7QiNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCe0IjQndCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JbQmNCS0J7QiNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CW0JjQktCe0IjQndCe0JLQmNCLINCh0JDQitCQCivQltCY0JLQntCI0J3QntCS0JjQiyDQodCg0ILQkNCdINCU0KAg0JvQldCa0JDQoAor0JbQmNCS0J7QiNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JbQmNCS0J7QotCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JbQmNCS0J7QotCY0Isg0JTQo9Co0JDQnQor0JbQmNCS0J7QotCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQltCY0JLQntCi0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCe0KLQmNCLINCS0JXQm9CY0JzQmNCgCivQltCY0JLQntCi0JjQnSDQnNCQ0KDQmNCm0JAKK9CW0JjQktCe0KLQmNCdINCc0JjQotCQ0KAKK9CW0JzQo9Ca0JjQiyDQkdCg0JDQndCa0J4KK9CW0JzQo9Ca0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JbQnNCj0JrQmNCLINCd0JjQmtCe0JvQkAor0JbQndCY0JTQkNCg0KjQmNCLINCY0JPQndCQ0KYKK9CW0J3QmNCU0JDQoNCV0KYg0JjQktCQ0J0KK9CW0J3QmNCU0JDQoNCV0KYg0JjQktCQ0J0KK9CW0J7Qm9Cm0JXQoCDQpNCV0KDQldCd0KYKK9CW0J7Qm9Cm0JXQoCDQktCY0JvQnNCe0KgKK9CW0J7QidCe0Jwg0JrQm9CQ0KDQkAor0JbQntCJ0J7QnCDQnNCY0KDQiNCQ0J3QkAor0JbQntCg0JYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0J7QoNCY0Isg0KTQmNCb0JjQnwor0JbQo9CW0JAg0JzQmNCg0JrQngor0JbQo9CR0J7QoNCYINCc0JjQm9CV0J3QkAor0JbQo9CT0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQltCj0JPQmNCLINCa0KDQodCi0J4KK9CW0KPQk9CY0Isg0JzQkNCg0JjQiNCQCivQltCj0JPQmNCLINCc0JjQm9CY0IjQkAor0JbQo9CT0JjQiyDQnNCY0JvQmNCh0JDQkgor0JbQo9CT0JjQiyDQnNCY0JvQntCg0JDQlAor0JbQo9CT0JjQiyDQnNCY0KDQmtCeCivQltCj0JPQmNCLINCg0JDQlNCe0IjQmtCQCivQltCj0JPQmNCLINCg0JDQotCa0J4KK9CW0KPQk9CY0Ist0KDQmNCI0JDQktCV0KYg0KHQmNCb0JLQmNCI0JAKK9CW0KPQk9CY0Isg0KHQotCQ0J3QmNCo0JAKK9CW0KPQk9CY0Isg0KHQotCQ0J3QmtCeCivQltCj0IjQmNCLINCc0J7QnNCY0KAKK9CW0KPQiNCY0Isg0KHQm9CQ0JLQmtCeCivQltCj0IjQniDQnNCQ0KDQiNCQ0J0KK9CW0KPQnNCR0JXQoNCa0J7QktCY0Isg0ILQntCg0ILQlSDQnNCgCivQltCj0J3QkNCmINCI0KPQm9Ca0JAKK9CW0KPQndCQ0KYg0KLQntCc0JjQodCb0JDQkgor0JbQo9Cd0JPQo9CbINCh0JzQmNCJ0JAKK9CW0KPQndCY0Isg0JHQntCo0JrQngor0JbQo9Cd0JjQiyDQlNCQ0KDQmtCeCivQltCj0J3QmNCLINCI0J7QktCY0KjQkAor0JbQo9Cd0JjQiyDQnNCY0JvQkNCdCivQltCj0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQltCj0J3QmNCLINCc0JjQm9CY0IjQkNCdCivQltCj0J3QmNCLINCc0J7QnNCn0JjQm9CeCivQltCj0J3QmNCLINCd0JXQndCQ0JQKK9CW0KPQndCY0Ist0J/QntCf0J7QkiDQodCd0JXQltCQ0J3QkAor0JbQo9Cd0JjQiyDQoNCQ0JTQkAor0JbQo9Cd0JjQiyDQodCY0JzQkAor0JbQo9Cd0JjQiyDQodCe0IrQkAor0JbQo9Cd0JjQiyDQktCV0JvQmNCc0JjQoAor0JbQo9CK0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQltCj0J3QotCV0KAg0JDQndCi0KPQnSDQlNCY0J/QmyDQmNCd0JMKK9CW0KPQndCi0JXQoCDQkdCe0JbQkNCd0JAKK9CW0KPQn9CQ0J0g0JXQlNCj0JDQoNCUCivQltCj0J/QkNCdINCc0JjQoNCa0J4KK9CW0KPQn9CQ0J3Qp9CY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQltCj0J/QkNCd0JXQpiDQkNCb0JHQldCg0KIg0JTQoAor0JbQo9Cf0JDQndCV0KYg0JrQodCV0J3QmNCI0JAKK9CW0KPQn9CQ0J3QldCmINCc0JjQoNCQCivQltCj0J/QkNCd0JXQpiDQnNCY0KDQkAor0JbQo9Cf0JDQoNCY0Isg0JLQmNCa0KLQntCgCivQltCj0J/QmNCLINCQ0J3QotCVCivQltCj0J/QmNCLINCU0JDQndCVCivQltCj0J/QmNCLINCU0KDQkNCT0JjQptCQCivQltCj0J/QmNCLINCc0JjQiNCeCivQltCj0J/Qo9Cd0KHQmtCYINCW0JDQoNCa0J4KK9CW0KPQn9Cj0J3QodCa0Jgg0JbQmNCS0J7QoNCQ0JQKK9CW0KPQn9Cj0J3QodCa0Jgg0JPQntCI0JrQngor0JbQo9Cf0KPQndCh0JrQmCDQk9Cg0J7Ql9CU0JDQndCQCivQltCj0J/Qo9Cd0KHQmtCYINCT0KDQo9CI0JjQptCQCivQltCj0J/Qo9Cd0KHQmtCYINCl0JXQm9CV0J3QkAor0JbQo9Cf0KPQndCh0JrQmCDQmNCS0JDQnQor0JbQo9Cf0KPQndCh0JrQmCDQnNCQ0KDQmNCd0JrQngor0JbQo9Cf0KPQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CW0KPQn9Cj0J3QodCa0Jgg0JLQldCh0JXQm9CY0J3QmtCQCivQltCj0KDQltCV0JLQmNCLINCm0JLQldCi0JrQngor0JbQo9Cg0JbQmNCd0J7QktCY0Isg0JrQntCh0KLQkAor0JbQo9Cg0JbQntCS0JDQnSDQm9CY0JAKK9CW0KPQoNCW0J7QktCQ0J0g0J3QldCb0KMKK9CW0KPQoNCW0J7QktCQ0J0g0KLQoNCQ0J3QlNCQ0KTQmNCgCivQltCj0KDQltCj0Jsg0JHQntCo0JrQngor0JbQo9Cg0JbQo9CbINCh0KLQkNCd0J7QiNCVCivQltCj0KDQmNCLINCc0JjQpdCQ0JjQm9CeCivQltCj0KDQmNCLINCS0JDQodCeCivQltCj0KDQmtCQINCQ0KPQoNCe0KDQkAor0JbQo9Ci0JjQiyDQnNCY0JvQmtCQCivQltCj0KLQmNCLINCf0JXQotCQ0KAKK9CW0KPQotCY0Isg0KHQotCV0JLQngor0ILQkNCn0JDQndCY0J0g0KDQkNCU0J7QktCQ0J0KK9CC0JDQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQkNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0ILQkNCI0JjQiyDQltCQ0KDQmtCeCivQgtCQ0IjQmNCLINCW0JXQidCa0J4KK9CC0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CC0JDQiNCY0Isg0JHQntCT0JTQkNCdCivQgtCQ0IjQmNCLINCI0JXQm9CV0J3QmtCeCivQgtCQ0IjQmNCLLdCI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCQCivQgtCQ0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCQ0IjQmNCLINCd0JDQlNCQCivQgtCQ0IjQmNCLINCd0JXQktCV0J3QkAor0ILQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CC0JDQiNCY0Isg0JLQldCJ0JrQngor0ILQkNCI0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0ILQkNCa0J7QndCe0JIg0JzQmNCb0JrQkAor0ILQkNCa0J7QndCe0JIg0KHQotCV0JLQkNCdCivQgtCQ0JrQntCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0JDQmtCe0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0ILQkNCa0J7QndCe0JLQmNCLINCh0KLQldCS0JDQnQor0ILQkNCa0J7QkiDQidCY0InQkNCd0JAKK9CC0JDQmtCe0JIg0JzQmNCl0JDQiNCb0J4KK9CC0JDQmtCe0JIg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JbQmNCS0JrQkAor0ILQkNCa0J7QktCY0Isg0ILQntCg0ILQlSDQlNCgCivQgtCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQgtCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQgtCQ0JrQntCS0JjQiyDQgtCj0KDQkAor0ILQkNCa0J7QktCY0Isg0ILQo9Cg0J4KK9CC0JDQmtCe0JLQmNCLINCC0KPQoNCeCivQgtCQ0JrQntCS0JjQiyDQkNCd0JrQkAor0ILQkNCa0J7QktCY0Isg0JTQkNCg0JAKK9CC0JDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9CC0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CC0JDQmtCe0JLQmNCLINCY0JvQlQor0ILQkNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0ILQkNCa0J7QktCY0Isg0IjQntCa0JAKK9CC0JDQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQgtCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQgtCQ0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CC0JDQmtCe0JLQmNCLINCI0J7QktCeCivQgtCQ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgINCY0J3Qkwor0ILQkNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CC0JDQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0ILQkNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CC0JDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCQ0JrQntCS0JjQiyDQndCV0ILQngor0ILQkNCa0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CC0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0ILQkNCa0J7QktCY0Isg0J7QodCi0J7QiNCQCivQgtCQ0JrQntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0ILQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0ILQkNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CC0JDQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQgtCQ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0ILQkNCa0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9CC0JDQmtCe0JLQmNCLINCg0JDQndCa0J4KK9CC0JDQmtCe0JLQmNCLINCh0JDQktCQCivQgtCQ0JrQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0ILQkNCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0ILQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0ILQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQgtCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CC0JDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0ILQkNCa0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CC0JDQmtCe0JLQmNCLINCS0JDQodCeCivQgtCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCQ0JrQntCS0JjQiyDQktCe0IjQngor0ILQkNCa0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0ILQkNCa0J7QktCY0Isg0JfQntCg0JDQnQor0ILQkNCb0JDQmCDQm9CQ0IjQntCoCivQgtCQ0JvQmNCd0JDQpiDQk9Ce0KDQlNCQ0J3QkAor0ILQkNCb0JjQndCQ0KYg0KDQkNCU0JjQktCe0IgKK9CC0JDQm9CeINCc0JjQoNCa0J4KK9CC0JDQm9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0JDQm9Cj0Kgg0KHQotCV0JLQkNCdCivQgtCQ0J0g0IjQntCS0JDQnQor0ILQkNCd0JjQqCDQm9CQ0JfQkNCgCivQgtCQ0J3QmNCoINCe0JvQmNCS0JXQoNCQCivQgtCQ0J3QmNCLINCc0JDQotCeCivQgtCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CC0JDQndCi0JDQoCDQkNCd0ILQldCb0JjQiNCQCivQgtCQ0J3QotCQ0KAg0IjQntCW0JXQpAor0ILQkNCf0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0JDQn9CQINCU0KPQqNCQ0J0KK9CC0JDQn9CQINCc0JDQoNCa0J4KK9CC0JDQn9CQINCf0JXQotCQ0KAKK9CC0JDQn9CY0Isg0JTQkNCS0JjQlAor0ILQkNCf0JjQiyDQmtCg0KHQotCQCivQgtCQ0J/QmNCLINCc0JjQm9CV0KHQkAor0ILQkNCf0JjQiyDQnNCY0JvQldCh0JAKK9CC0JDQn9CY0Ist0JzQmNCb0JjQiyDQotCQ0KLQiNCQ0J3QkCDQm9CV0JrQkNCgCivQgtCQ0J/QmNCLINCf0JDQktCb0JUKK9CC0JDQoNCc0JDQotCYINCk0KDQkNCK0JAKK9CC0JDQoNCc0JDQotCYINCT0JjQl9CV0JvQkAor0ILQkNCg0JzQkNCi0Jgg0JjQm9Ce0J3QkAor0ILQkNCg0JzQkNCi0Jgg0IjQo9Cb0JjQngor0ILQkNCg0JzQkNCi0Jgg0JvQkNCh0JvQngor0ILQkNCg0JzQkNCi0Jgg0JzQmNCl0JDQiNCb0J4KK9CC0JDQoNCc0JDQotCYINCh0J3QldCW0JDQndCQCivQgtCQ0KLQmtCe0JIg0KDQkNCU0JAKK9CC0JXQkdCd0JDQoCDQntCR0KDQkNCUCivQgtCV0JrQldCgINCg0J7Ql9CQ0JvQmNCI0JAKK9CC0JXQmtCY0Isg0JbQmNCS0J7QiNCY0J0KK9CC0JXQmtCY0Isg0JrQkNCi0JjQptCQCivQgtCV0JrQmNCLINCc0JjQm9CQ0J0KK9CC0JXQmtCY0Isg0JzQmNCb0JXQndCQCivQgtCV0JrQmNCLINCc0JjQm9Ce0JzQmNCgCivQgtCV0JrQmNCLINCd0JDQlNCQCivQgtCV0JrQmNCLINCd0JXQlNCV0InQmtCeCivQgtCV0JrQmNCLINCf0JDQktCb0JUKK9CC0JXQmtCY0Isg0KDQkNCU0JUKK9CC0JXQmtCY0Isg0KDQkNCU0JzQmNCb0JAKK9CC0JXQmtCY0Isg0KHQotCQ0J3QkAor0ILQldCa0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQgtCV0JvQmNCLINCj0KDQntCoCivQgtCV0JzQkdCV0KAg0JjQqNCi0JLQkNCdCivQgtCV0JzQoNCe0JLQodCa0Jgg0KLQntCc0JDQqAor0ILQldCc0KDQntCS0KHQmtCYINCS0JvQkNCi0JrQngor0ILQldCc0KDQntCS0KHQmtCYINCX0JTQldCd0JrQngor0ILQldCd0JDQlNCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CC0JXQndCQ0JTQmNCI0JAg0J/QldCi0JDQoAor0ILQldCd0JTQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQgtCV0J3QlNCY0Isg0JvQkNCX0JDQoAor0ILQldCd0JXQqCDQn9CV0KLQkNCgCivQgtCV0J3Qk9CVINCQ0J3QlNCg0JDQqAor0ILQldCd0JPQlSDQkNCd0JTQoNCY0IjQkAor0ILQldCd0JPQlSDQn9CV0KLQldCgCivQgtCV0J3QmNCLINCI0JXQm9CV0J3QkAor0ILQldCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCV0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0JXQndCY0Isg0JfQntCg0JjQptCQCivQgtCV0J3QmNCh0JjQiyDQodCi0JDQndCY0JzQmNCgCivQgtCV0KDQgiDQgtCj0KDQkAor0ILQldCg0IIg0JDQndCi0KPQnQor0ILQldCg0IIg0JjQk9Ce0KAKK9CC0JXQoNCCINCI0J7QodCY0J8KK9CC0JXQoNCCINCa0JDQotCQ0KDQmNCd0JAKK9CC0JXQoNCCINCJ0KPQkdCY0KbQkAor0ILQldCg0IIg0J/QldCi0JDQoAor0ILQldCg0IIg0JLQmNCb0JzQntCoCivQgtCV0KDQlSDQmtCe0KDQndCV0JsKK9CC0JXQoNCVINCX0J7Qm9Ci0JDQnQor0ILQldCg0KTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQldCg0Jgg0KjQkNCd0JTQntCgCivQgtCV0KDQmCDQldCd0JTQoNCVCivQgtCV0KDQmCDQldCg0JbQldCR0JXQogor0ILQldCg0Jgg0JPQldCX0JAKK9CC0JXQoNCYINCa0JDQoNCe0IkKK9CC0JXQoNCYINCb0JDQlNCY0KHQm9CQ0JIKK9CC0JXQoNCYINCb0JDQodCb0J4KK9CC0JXQoNCYINCh0JDQkdCe0JvQpwor0ILQldCg0Jgg0KHQkNCb0J7QnNCVCivQgtCV0KDQmNCLINCW0JjQktCQ0J0KK9CC0JXQoNCY0Isg0ILQntCg0ILQlQor0ILQldCg0JjQiyDQgtCj0KDQkAor0ILQldCg0JjQiyDQkdCg0JDQndCa0J4KK9CC0JXQoNCY0Isg0JTQkNCd0JjQptCQCivQgtCV0KDQmNCLINCU0JXQodCQ0J3QmtCQCivQgtCV0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0ILQldCg0JjQiyDQlNCe0JHQoNCY0J3QmtCeCivQgtCV0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQldCg0JjQiyDQpNCV0JvQmNCa0KEKK9CC0JXQoNCY0Isg0IjQkNCg0J7QodCb0JDQkgor0ILQldCg0JjQiyDQiNCe0JLQkNCdCivQgtCV0KDQmNCLINCI0J7QktCQ0J0KK9CC0JXQoNCY0Isg0IjQo9Cb0JrQkAor0ILQldCg0JjQiyDQnNCY0KbQkAor0ILQldCg0JjQiyDQnNCY0KXQkNCI0JvQngor0ILQldCg0JjQiyDQnNCY0JvQkNCdCivQgtCV0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQgtCV0KDQmNCLINCc0JjQm9CVCivQgtCV0KDQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CC0JXQoNCY0Isg0JzQmNCb0J7QqAor0ILQldCg0JjQiyDQnNCY0J7QlNCg0JDQkwor0ILQldCg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQldCg0JjQiyDQndCQ0JTQkAor0ILQldCg0JjQiyDQntCb0JPQkAor0ILQldCg0JjQiyDQntCb0JjQktCV0KDQkAor0ILQldCg0JjQiyDQn9CV0KLQkNCgCivQgtCV0KDQmNCLINCg0JDQlNCVCivQgtCV0KDQmNCLINCg0JDQlNCY0JLQntCICivQgtCV0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCV0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0JXQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CC0JXQoNCY0Isg0KHQm9CQ0JLQmtCeCivQgtCV0KDQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0ILQldCg0JjQiyDQktCV0InQmtCeCivQgtCV0KDQmNCLINCS0J7QiNCY0J0KK9CC0JXQoNCa0Jgg0JLQldCg0JAKK9CC0JXQoNCa0J7QktCY0Isg0JzQmNCg0KfQldCi0JAKK9CC0JXQoNCa0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9CC0JXQoNCa0J7QktCY0Isg0JLQm9CQ0JTQldCi0JAKK9CC0JXQoNCc0JDQnSDQltCY0JLQmtCeCivQgtCV0KDQnNCQ0J0g0J3QldCU0JXQidCa0J4KK9CC0JXQoNCc0JDQndCe0JIg0JjQktCQ0J0KK9CC0JXQoNCc0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9CC0JXQoNCc0JDQndCe0JIg0JzQmNCb0JDQnQor0ILQldCg0JzQkNCd0J7QkiDQnNCY0JvQldCd0JAKK9CC0JXQoNCc0JDQndCe0JIg0J3QkNCU0JXQltCU0JAKK9CC0JXQoNCc0JDQndCe0JIg0J7Qm9CT0JAKK9CC0JXQoNCc0JDQndCe0JIg0J/QldCi0JDQoAor0ILQldCg0JzQkNCd0J7QkiDQotCe0JTQntCgCivQgtCV0KDQnNCQ0J3QntCSINCS0JvQkNCU0JAKK9CC0JXQoNCc0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0ILQldCg0JzQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQgtCV0KDQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCU0JDQndCa0JAKK9CC0JXQoNCc0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0ILQldCg0JzQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQgtCV0KDQnNCQ0KLQmCDQmNCg0JXQndCQCivQgtCV0KLQmtCQINCI0JDQndCeCivQgtCV0KLQmtCQINCc0JjQpdCQ0JsKK9CC0JXQotCa0JAg0JzQmNCl0JDQmwor0ILQldCi0JrQkCDQnNCY0KDQmtCeCivQgtCV0KLQktCQ0Jgg0JDQndCU0KDQkNCoINCU0JjQn9CbINCY0J3Qkwor0ILQldCi0JLQkNCYINCQ0J3QlNCg0JDQqAor0ILQldCi0JLQkNCYINCQ0J3QmNCm0JAKK9CC0JXQotCS0JDQmCDQpNCV0KDQldCd0KYKK9CC0JXQotCS0JDQmCDQmNCc0KDQlQor0ILQldCi0JLQkNCYINCb0JDQiNCe0KgKK9CC0JXQktCV0JrQmCDQiNCe0JLQkNCdCivQgtCY0JTQmNCLINCc0JDQoNCY0IjQkAor0ILQmNCU0JjQiyDQnNCQ0KDQmNCd0JrQngor0ILQmNCa0JjQiyDQodCi0J7QiNCQ0J0KK9CC0JjQmtCY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQgtCY0JvQkNChINCR0J7QoNCeCivQgtCY0JvQkNChINCU0KDQkNCT0JDQnQor0ILQmNCb0JDQoSDQlNCj0KjQkNCdCivQgtCY0JvQkNChINCT0KDQntCX0JTQkNCd0JAKK9CC0JjQm9CQ0KEg0JzQkNCg0JjQndCa0J4KK9CC0JjQm9CQ0KEg0JzQmNCb0J7QoNCQ0JQKK9CC0JjQm9CQ0KEg0JzQmNCb0J7QoNCQ0JQKK9CC0JjQm9CQ0KEg0JzQmNCb0J7QoNCQ0JQKK9CC0JjQm9CQ0KEg0J3QmNCa0J7Qm9CQCivQgtCY0JvQkNChINCh0KLQldCS0JDQnQor0ILQmNCb0JLQldCh0Jgg0KjQkNCd0JTQntCgCivQgtCY0JvQktCV0KHQmCDQmtCQ0KDQm9CeCivQgtCY0J0g0ILQo9Cg0JAKK9CC0JjQnSDQiNCj0JvQmNCI0JDQndCQCivQgtCY0J3QgtCY0Isg0JzQmNCb0J7QiNCa0J4KK9CC0JjQndCY0Isg0JjQktCY0KbQkAor0ILQmNCd0JjQiyDQndCY0JrQntCb0JAKK9CC0JjQndCY0Isg0KHQm9CQ0JLQmtCQCivQgtCY0J3QmNCLINCh0J7QpNCY0IjQkAor0ILQmNCd0JjQiyDQktCb0JDQlNCV0KLQkAor0ILQmNCd0JjQiyDQl9Ce0KDQkNCdCivQgtCY0IrQkCDQkNCd0JTQoNCV0IgKK9CC0JjQndCe0JLQmNCLINCm0JLQldCi0JrQngor0ILQmNCd0J7QktCY0Isg0JjQktCa0J4KK9CC0JjQndCe0JLQmNCLINCa0J7Qm9CVCivQgtCY0J/QkNCb0J4g0ILQo9Cg0J4KK9CC0JjQn9CQ0JvQniDQk9Ce0IjQmtCeCivQgtCY0J/QkNCb0J4g0JzQmNCb0JDQnQor0ILQmNCf0JDQm9CeINCc0JjQoNCa0J4KK9CC0JjQn9CQ0JvQniDQnNCY0KDQntCh0JvQkNCSCivQgtCY0J/QkNCb0J4g0KDQkNCU0JUKK9CC0JjQn9CQ0J3QntCSINCY0JTQkAor0ILQmNCf0JDQndCe0JIg0J3QmNCa0J7Qm9CQCivQgtCY0J/QkNCd0J7QkiDQoNCV0InQkAor0ILQmNCf0JDQndCe0JIg0KHQktCV0KLQntCX0JDQoAor0ILQmNCg0JjQqNCYINCY0KjQotCS0JDQnQor0ILQmNCg0JvQmNCLINCh0KLQldCS0JDQnQor0ILQmNCh0JDQm9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCY0KHQkNCb0J7QkiDQiNCV0JvQldCd0JAKK9CC0JjQodCQ0JvQntCSINCI0JXQm9CV0J3QkAor0ILQmNCh0JDQm9Ce0JIg0JvQkNCX0JDQoAor0ILQmNCh0JDQm9Ce0JIg0InQo9CR0JjQndCa0JAKK9CC0JjQodCQ0JvQntCSINCc0JjQm9CQ0J0KK9CC0JjQodCQ0JvQntCSINCc0JjQm9CQ0J0KK9CC0JjQodCQ0JvQntCSINCc0JjQm9CY0JLQntCICivQgtCY0KHQkNCb0J7QkiDQnNCY0JvQmNCS0J7QiAor0ILQmNCh0JDQm9Ce0JIg0JzQmNCe0JTQoNCQ0JMKK9CC0JjQodCQ0JvQntCSINCc0JjQntCU0KDQkNCTCivQgtCY0KHQkNCb0J7QkiDQndCQ0JTQkAor0ILQmNCh0JDQm9Ce0JIg0KHQntCK0JAKK9CC0JjQodCQ0JvQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CC0JjQotCa0J7QkiDQiNCe0JLQkNCdCivQgtCY0KLQmtCe0JIg0KHQntCk0JjQiNCQCivQgtCI0JDQmiDQltCY0JLQmtCeCivQgtCe0ILQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCe0JPQniDQnNCY0JvQntCS0JDQnQor0ILQntCT0J4g0JzQmNCg0IjQkNCd0JAKK9CC0J7Qk9CeINCg0KPQltCY0KbQkAor0ILQntCT0J4g0JfQntCg0JDQnQor0ILQntCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0J7Qk9Ce0JLQmNCLINCg0JDQlNCY0JLQntCI0JrQkAor0ILQntCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCa0JjQiyDQkdCe0KjQmtCeCivQgtCe0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CC0J7QmtCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQgtCe0JrQmNCLINCm0JLQldCi0JrQngor0ILQntCa0JjQiyDQlNCQ0KDQmNCd0JrQkAor0ILQntCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0J7QmtCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CC0J7QmtCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0ILQntCa0JjQiyDQlNCg0JDQk9CeCivQgtCe0JrQmNCLINCT0J7QoNCQ0J0KK9CC0J7QmtCY0Isg0JjQktCQ0J0KK9CC0J7QmtCY0Isg0IjQldCb0JjQodCQ0JLQkAor0ILQntCa0JjQiyDQiNCe0KDQlNCQ0J0KK9CC0J7QmtCY0Isg0InQo9CR0JjQndCa0J4KK9CC0J7QmtCY0Isg0InQo9CR0J4KK9CC0J7QmtCY0Isg0JvQo9Ca0JAKK9CC0J7QmtCY0Isg0JzQkNCg0JjQndCa0J4KK9CC0J7QmtCY0Isg0JzQkNCi0JjQm9CU0JAKK9CC0J7QmtCY0Isg0JzQmNCl0JDQiNCb0J4KK9CC0J7QmtCY0Isg0JzQmNCb0JDQnQor0ILQntCa0JjQiyDQnNCY0JvQkNCdCivQgtCe0JrQmNCLINCc0JjQm9CY0KHQkNCSCivQgtCe0JrQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CC0J7QmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0J7QmtCY0Isg0JzQmNCb0KPQotCY0J0KK9CC0J7QmtCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQgtCe0JrQmNCLINCf0JXQotCQ0KAKK9CC0J7QmtCY0Isg0KDQkNCU0JjQodCQ0JIKK9CC0J7QmtCY0Isg0KDQkNCU0J7QktCQ0J0KK9CC0J7QmtCY0Isg0KDQkNCi0JrQngor0ILQntCa0JjQiyDQoNCj0JbQkAor0ILQntCa0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0ILQntCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCe0JrQmNCLINCh0J7QpNCY0IjQkAor0ILQntCa0JjQiyDQodCi0JDQndCY0KjQkAor0ILQntCa0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CC0J7QmtCY0Isg0JLQldCg0JAKK9CC0J7QmtCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQgtCe0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CC0J7QmtCY0Isg0JLQo9CI0JDQlNCY0J0KK9CC0J7QmtCY0Isg0JLQo9Ca0JDQlNCY0J0KK9CC0J7QmtCY0Isg0JfQntCg0JDQnQor0ILQntCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0ILQntCa0J7QktCY0Isg0JzQkNCg0JrQngor0ILQntCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQntCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0J7QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CC0J7QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCe0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0ILQntCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQgtCe0JrQktCj0KfQmNCLINCd0JDQlNCQCivQgtCe0JvQkNCYINCY0JzQoNCVCivQgtCe0JvQkNCYINCc0JDQotCY0JvQlNCQCivQgtCe0InQldCS0JjQiyDQgtCe0JrQkAor0ILQntCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CC0J7QnNCf0JDQoNCY0Isg0JTQo9Co0JDQnQor0ILQntCc0J/QkNCg0JjQiyDQmNCb0JjQiNCQCivQgtCe0JzQn9CQ0KDQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CC0J7QnNCf0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQgtCe0JzQn9CQ0KDQmNCLINCd0JjQmtCe0JvQkAor0ILQntCc0J/QkNCg0JjQiyDQndCY0JrQntCb0JAKK9CC0J7QnNCf0JDQoNCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9CC0J7QndCe0JLQmNCLINCC0J7QoNCC0JjQiNCVCivQgtCe0J3QntCS0JjQiyDQmtCQ0KDQntCb0JjQndCQCivQgtCe0J3QntCS0JjQiyDQl9CQ0KDQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JbQmNCS0JrQngor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCi0JAKK9CC0J7QoNCC0JXQktCY0Isg0ILQntCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0ILQntCg0ILQlQor0ILQntCg0ILQldCS0JjQiyDQgtCe0KDQgtCVCivQgtCe0KDQgtCV0JLQmNCLINCC0KPQoNCQCivQgtCe0KDQgtCV0JLQmNCLINCQ0KbQkAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0ILQntCg0ILQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JHQntCg0JAKK9CC0J7QoNCC0JXQktCY0Isg0JHQntCg0JjQodCQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JrQngor0ILQntCg0ILQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQlNCQ0KDQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCU0JXQodCf0J7Qogor0ILQntCg0ILQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CC0J7QoNCC0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCW0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9CQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoAor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQo9Co0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCj0KjQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JXQoNCd0JXQodCiCivQgtCe0KDQgtCV0JLQmNCLINCV0JLQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0KTQkNCi0JjQnNCQCivQgtCe0KDQgtCV0JLQmNCLINCT0JjQl9CV0JvQkAor0ILQntCg0ILQldCS0JjQiyDQk9Ce0KDQkAor0ILQntCg0ILQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCY0JvQmNCd0JrQkAor0ILQntCg0ILQldCS0JjQiyDQmNCb0J7QndCQCivQgtCe0KDQgtCV0JLQmNCLINCY0JLQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JjQktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0IjQkNCT0J7QlNCQCivQgtCe0KDQgtCV0JLQmNCLINCI0JXQm9CV0J3QkAor0ILQntCg0ILQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQldCb0JXQndCQCivQgtCe0KDQgtCV0JLQmNCLINCI0J7QktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQiNCe0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCI0J7QktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQiNCe0JLQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0ILQntCg0ILQldCS0JjQiyDQmtCe0J3QodCi0JDQndCU0JjQndCQCivQgtCe0KDQgtCV0JLQmNCLINCa0J7QodCi0JAKK9CC0J7QoNCC0JXQktCY0Isg0JvQkNCX0JDQoAor0ILQntCg0ILQldCS0JjQiyDQm9CQ0JfQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQkCDQlNCY0J/QmyDQmNCd0JMKK9CC0J7QoNCC0JXQktCY0Isg0InQo9CR0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0InQo9CR0JjQptCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCd0JrQkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCh0JDQkgor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JDQnQor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JjQiNCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQntCoCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0JrQngor0ILQntCg0ILQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CC0J7QoNCC0JXQktCY0Isg0J3QkNCU0JAKK9CC0J7QoNCC0JXQktCY0Isg0J3QkNCU0JAKK9CC0J7QoNCC0JXQktCY0Isg0J3QldCU0JXQidCa0J4g0JTQoAor0ILQntCg0ILQldCS0JjQiyDQndCV0JLQldCd0JrQkAor0ILQntCg0ILQldCS0JjQiyDQndCY0JrQntCb0JAKK9CC0J7QoNCC0JXQktCY0Isg0J/QkNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0J/QkNCd0KLQkAor0ILQntCg0ILQldCS0JjQiyDQn9CQ0JLQm9CVCivQgtCe0KDQgtCV0JLQmNCLINCf0JDQktCb0JUKK9CC0J7QoNCC0JXQktCY0Isg0J/QkNCS0JvQlQor0ILQntCg0ILQldCS0JjQiyDQn9CV0KLQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQiNCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCd0ILQldCbCivQgtCe0KDQgtCV0JLQmNCLINCh0JDQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCh0JDQktCQCivQgtCe0KDQgtCV0JLQmNCLINCh0JjQndCY0KjQkAor0ILQntCg0ILQldCS0JjQiyDQodCb0JDQgtCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQodCb0JDQktCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQkNCS0JrQngor0ILQntCg0ILQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0ILQntCg0ILQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0J3QldCW0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCh0J7QpNCY0IjQkAor0ILQntCg0ILQldCS0JjQiyDQodCe0KTQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQoNCC0JDQnQor0ILQntCg0ILQldCS0JjQiyDQodCg0ILQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0KDQldCi0JXQnQor0ILQntCg0ILQldCS0JjQiyDQodCi0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQodCi0JDQndCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQotCV0JLQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQotCV0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0KLQldCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CC0J7QoNCC0JXQktCY0Isg0KLQmNCe0KHQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQktCV0JvQmNCh0JDQkgor0ILQntCg0ILQldCS0JjQiyDQktCV0JvQmNCX0JDQoAor0ILQntCg0ILQldCS0JjQiyDQktCV0KDQkAor0ILQntCg0ILQldCS0JjQiyDQktCV0KDQkAor0ILQntCg0ILQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQgtCe0KDQgtCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JLQm9CQ0IjQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQktCj0KfQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JfQntCg0JDQnQor0ILQntCg0ILQldCS0JjQiyDQl9Ce0KDQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0J7QoNCC0JjQiyDQkdCg0JDQndCa0J4KK9CC0J7QoNCC0JjQiyDQnNCQ0KDQmtCeCivQgtCe0KDQgtCY0Isg0JzQmNCb0JDQnQor0ILQntCg0ILQmNCI0JXQktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9CC0J7QoNCC0JjQiNCV0JLQodCa0Jgg0JTQo9Co0JDQnQor0ILQntCg0ILQmNCI0JXQktCh0JrQmCDQl9Ce0KDQkNCdCivQgtCe0KDQgtCY0J0g0KTQldCc0JrQkAor0ILQntCg0ILQmNCdINCg0JDQlNCVCivQgtCe0KDQgtCY0J0g0KHQkNCS0JAKK9CC0J7QoNCC0JjQntCh0JrQmCDQmtCY0KDQngor0ILQntCg0JXQktCh0JrQmCDQk9Ce0KDQkNCdCivQgtCe0KDQk9CY0JXQktCQINCI0JXQm9CY0KbQkAor0ILQntCg0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQgtCe0KDQmNCLINCT0J7QoNCU0JDQndCQCivQgtCe0KDQmNCLINCJ0KPQkdCY0KHQkNCSCivQgtCe0KDQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CC0J7QoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0J7QoNCY0Isg0JLQldCg0JjQptCQCivQgtCe0KDQntCI0JXQktCY0Isg0JLQo9Ca0J7QotCQCivQgtCe0KLQldCS0JAg0KLQoNCQ0IjQkNCd0JrQkAor0ILQntCi0KPQndCe0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CC0J7Ql9CY0Isg0KjQo9Ca0KDQmNCI0JAKK9CC0KPQgtCQ0KAg0JzQldCb0JDQndCY0IjQkAor0ILQo9CC0JDQoCDQktCb0JDQlNCQCivQgtCj0ILQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQgtCQ0KAg0JfQktCe0J3QmNCc0JjQoAor0ILQo9CC0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQlNCj0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQgtCj0JPQkCDQn9CQ0JLQldCbCivQgtCj0JrQkNCd0J7QkiDQkdCe0KDQmNCS0J7QiAor0ILQo9Ca0JDQndCe0JIg0JXQnNCY0JvQmNCI0JDQnQor0ILQo9Ca0JDQndCe0JIg0JzQmNCb0JDQnQor0ILQo9Ca0JDQndCe0JIg0J3QkNCU0JAKK9CC0KPQmtCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9CC0KPQmtCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQo9Ca0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0ILQo9Ca0JDQndCe0JLQmNCLINCY0JLQngor0ILQo9Ca0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCc0JDQoNCQCivQgtCj0JrQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JDQndCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQgtCj0JrQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9CC0KPQmtCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCf0KPQndCY0KjQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0ILQo9Ca0JDQndCe0JLQmNCLINCh0KLQkNCa0JAKK9CC0KPQmtCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0JrQkNCd0J7QktCY0Isg0JfQntCg0JAKK9CC0KPQmtCY0KfQmNCdINCI0J7QktCQ0J3QmtCQCivQgtCj0JrQmNCn0JjQnSDQnNCQ0KDQmNCI0JAKK9CC0KPQmtCY0KfQmNCdINCh0KDQldCU0J7QiNCVCivQgtCj0JrQmNCn0JjQnSDQodCg0JXQlNCe0IjQlQor0ILQo9Ca0JjQiy3QqNCQ0JHQmNCLINCT0J7QoNCU0JDQndCQCivQgtCj0JrQmNCLINCW0JDQoNCa0JAKK9CC0KPQmtCY0Isg0JbQkNCg0JrQngor0ILQo9Ca0JjQiyDQltCV0InQmtCeCivQgtCj0JrQmNCLINCW0JjQktCe0KLQkAor0ILQo9Ca0JjQiyDQgtCe0KDQgtCVCivQgtCj0JrQmNCLINCC0J7QoNCC0JUKK9CC0KPQmtCY0Isg0ILQntCg0ILQlQor0ILQo9Ca0JjQiyDQgtCe0KDQgtCVCivQgtCj0JrQmNCLINCC0KPQoDAKK9CC0KPQmtCY0Isg0ILQo9Cg0JAKK9CC0KPQmtCY0Isg0ILQo9Cg0J4KK9CC0KPQmtCY0Isg0JDQk9Cd0JjQptCQCivQgtCj0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0ILQo9Ca0JjQiyDQkNCd0JAKK9CC0KPQmtCY0Isg0JDQndCQCivQgtCj0JrQmNCLINCQ0J3QlNCg0JjQiNCQCivQgtCj0JrQmNCLINCQ0J3QmNCm0JAKK9CC0KPQmtCY0Isg0JHQmNCJ0JDQndCQCivQgtCj0JrQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CC0KPQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCj0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQo9Ca0JjQiyDQkdCg0JDQndCa0J4KK9CC0KPQmtCY0Isg0JTQkNCd0JjQptCQINCU0KAKK9CC0KPQmtCY0Isg0JTQkNCd0JjQm9CeCivQgtCj0JrQmNCLINCU0JjQiNCQ0J3QkAor0ILQo9Ca0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CC0KPQmtCY0Isg0JTQntCR0KDQmNCb0JAKK9CC0KPQmtCY0Isg0JTQntCR0KDQmNCS0J7QiAor0ILQo9Ca0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQmtCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0JrQmNCLINCU0KDQkNCT0J7QiNCb0J4KK9CC0KPQmtCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0ILQo9Ca0JjQiyDQlNCj0KjQkNCdCivQgtCj0JrQmNCLINCU0KPQqNCQ0J0KK9CC0KPQmtCY0Isg0JTQo9Co0JDQnQor0ILQo9Ca0JjQiyDQlNCj0KjQkNCdCivQgtCj0JrQmNCLINCU0KPQqNCQ0J0KK9CC0KPQmtCY0Isg0JPQldCd0JAKK9CC0KPQmtCY0Isg0JPQldCd0J4KK9CC0KPQmtCY0Isg0JPQmNCX0JXQm9CQCivQgtCj0JrQmNCLINCT0J7QoNCU0JDQndCQCivQgtCj0JrQmNCLINCY0JvQmNCI0JAKK9CC0KPQmtCY0Isg0JjQm9CY0IjQkAor0ILQo9Ca0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CC0KPQmtCY0Isg0JjQktCQ0J3QmtCQCivQgtCj0JrQmNCLINCI0JDQqNCQCivQgtCj0JrQmNCLINCI0JXQm9CV0J3QkAor0ILQo9Ca0JjQiyDQiNCe0JLQkNCdCivQgtCj0JrQmNCLINCI0J7QktCY0KbQkAor0ILQo9Ca0JjQiyDQiNCj0JvQmtCQCivQgtCj0JrQmNCLINCb0JXQngor0ILQo9Ca0JjQiyDQidCY0InQkNCd0JAKK9CC0KPQmtCY0Isg0InQo9CR0JjQptCQCivQgtCj0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQgtCj0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQgtCj0JrQmNCLINCc0JDQmtCh0JjQnAor0ILQo9Ca0JjQiyDQnNCQ0KDQkAor0ILQo9Ca0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0KPQmtCY0Isg0JzQkNCg0JjQndCQCivQgtCj0JrQmNCLINCc0JjQiNCe0JTQoNCQ0JMKK9CC0KPQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQmNCLINCc0JjQm9CQ0J0KK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQmNCLINCc0JjQm9CQ0J0KK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQldCd0JrQngor0ILQo9Ca0JjQiyDQnNCY0JvQldCS0JAKK9CC0KPQmtCY0Isg0JzQmNCb0JUKK9CC0KPQmtCY0Isg0JzQmNCb0JUKK9CC0KPQmtCY0Isg0JzQmNCb0JjQptCQCivQgtCj0JrQmNCLINCc0JjQm9CY0KbQkAor0ILQo9Ca0JjQiyDQnNCY0InQmtCeCivQgtCj0JrQmNCLINCc0JjQm9Ca0JAKK9CC0KPQmtCY0Isg0JzQmNCb0J7QqAor0ILQo9Ca0JjQiyDQnNCY0JvQntCoCivQgtCj0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCj0JrQmNCLINCc0JjQoNCa0J4KK9CC0KPQmtCY0Isg0JzQmNCg0JrQngor0ILQo9Ca0JjQiyDQnNCY0KDQmtCeCivQgtCj0JrQmNCLINCc0JjQoNCa0J4KK9CC0KPQmtCY0Isg0JzQmNCg0JrQngor0ILQo9Ca0JjQiyDQndCV0ILQngor0ILQo9Ca0JjQiyDQndCV0JTQldCJ0JrQngor0ILQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQgtCj0JrQmNCLINCd0J7QktCQ0JoKK9CC0KPQmtCY0Isg0J3QntCS0JDQmgor0ILQo9Ca0JjQiyDQndCe0JLQkNCaCivQgtCj0JrQmNCLINCe0KHQotCe0IjQkAor0ILQo9Ca0JjQiyDQn9CQ0J3QlQor0ILQo9Ca0JjQiyDQn9CQ0JLQm9CVCivQgtCj0JrQmNCLINCf0JXQoNCY0KjQkAor0ILQo9Ca0JjQiyDQn9CV0KLQkNCgCivQgtCj0JrQmNCLINCf0JXQotCQ0KAKK9CC0KPQmtCY0Isg0KDQkNCU0JUKK9CC0KPQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9CC0KPQmtCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0ILQo9Ca0JjQiyDQoNCQ0JTQntCS0JDQnQor0ILQo9Ca0JjQiyDQoNCQ0IjQmtCeCivQgtCj0JrQmNCLINCg0J7QodCQCivQgtCj0JrQmNCLINCg0KPQltCY0KbQkCDQm9Ce0JrQkNCbCivQgtCj0JrQmNCLINCh0JDQktCQCivQgtCj0JrQmNCLINCh0JDQktCa0JAKK9CC0KPQmtCY0Isg0KHQkNCS0J4g0JTQoAor0ILQo9Ca0JjQiyDQodCb0JDQktCY0KbQkAor0ILQo9Ca0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQmtCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0ILQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCj0JrQmNCLINCh0KDQgtCQ0J0KK9CC0KPQmtCY0Isg0KHQoNCR0J7QidCj0JEKK9CC0KPQmtCY0Isg0KHQotCQ0J3QkAor0ILQo9Ca0JjQiyDQodCi0JDQndCa0J4KK9CC0KPQmtCY0Isg0KHQotCQ0J3QmtCeCivQgtCj0JrQmNCLINCh0KLQldCS0JDQnQor0ILQo9Ca0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQgtCj0JrQmNCLINCh0KLQntCI0JDQnQor0ILQo9Ca0JjQiyDQodCS0JXQotCb0JDQndCQCivQgtCj0JrQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQo9Ca0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQgtCj0JrQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CC0KPQmtCY0Isg0JLQldCb0JXQnNCY0KAKK9CC0KPQmtCY0Isg0JLQldCg0JjQptCQCivQgtCj0JrQmNCLINCS0JXQoNCe0J3QmNCa0JAKK9CC0KPQmtCY0Isg0JLQmNCU0JDQmgor0ILQo9Ca0JjQiyDQktCY0JTQkAor0ILQo9Ca0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Ca0JjQiyDQktCb0JDQiNCa0J4KK9CC0KPQmtCY0Isg0JLQntCI0JjQnQor0ILQo9Ca0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQgtCj0JrQmNCLINCS0KPQmtCQ0J0KK9CC0KPQmtCY0Isg0JfQntCg0JDQnQor0ILQo9Ca0JjQnSDQlNCj0KjQkNCdCivQgtCj0JrQmNCdINCh0KLQldCS0JDQnQor0ILQo9Ca0J3QmNCLINCh0KDQldCi0JXQnQor0ILQo9Cb0JAg0JrQkNCg0JvQngor0ILQo9Cb0JjQndCQ0KYg0IjQldCb0JjQptCQCivQgtCj0JvQmNCd0JDQpiDQktCV0KHQldCb0JjQnQor0ILQo9Cb0JjQl9CY0JHQkNCg0JjQiy3QntCg0JXQqNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQgtCj0JvQktCV0JfQkNCdINCa0J7QodCQCivQgtCj0JvQktCV0JfQkNCdINCc0JjQm9Ce0KgKK9CC0KPQm9CS0JXQl9CQ0J0g0KDQntCX0JDQm9CY0IjQkAor0ILQo9Cc0JjQiyDQkdCe0JPQlNCQ0J0KK9CC0KPQnNCY0Isg0JTQo9Co0JDQnQor0ILQo9Cc0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0ILQo9Cc0JjQiyDQmNCb0JjQiNCQCivQgtCj0JzQmNCLINCc0JDQoNCY0IjQkAor0ILQo9Cc0JjQiyDQnNCY0JvQldCd0JrQngor0ILQo9Cc0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQnNCY0Isg0KHQotCQ0J3QmtCeCivQgtCj0JzQmNCLINCj0KDQntCoCivQgtCj0J3QlNCY0Isg0JzQkNCg0JjQndCa0J4KK9CC0KPQoNCn0JXQmiDQnNCY0JvQldCd0JrQngor0ILQo9Cg0KfQldCS0JjQiyDQmtCh0JXQndCY0IjQkAor0ILQo9Cg0KfQmNCQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0ILQo9Cg0KfQmNCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0ILQo9Cg0KfQmNCaINCI0J7QodCY0J8KK9CC0KPQoNCn0IjQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CC0KPQoNCn0J7QmiDQnNCY0JvQmNCd0JAKK9CC0KPQoNCC0JXQkiDQltCQ0KDQmtCeCivQgtCj0KDQgtCV0JIg0ILQntCg0ILQlQor0ILQo9Cg0ILQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCj0KDQgtCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0KPQoNCC0JXQkiDQkdCe0JbQmNCU0JDQoAor0ILQo9Cg0ILQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0ILQo9Cg0ILQldCSINCU0JjQnNCY0KLQoNCY0IjQlQor0ILQo9Cg0ILQldCSINCU0J7QkdCg0JjQm9CQCivQgtCj0KDQgtCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0ILQo9Cg0ILQldCSINCU0KPQqNCQ0J0KK9CC0KPQoNCC0JXQkiDQlNCj0KjQkNCdCivQgtCj0KDQgtCV0JIg0JrQkNCL0JAKK9CC0KPQoNCC0JXQkiDQmtCQ0KLQkAor0ILQo9Cg0ILQldCSINCJ0KPQkdCY0KjQkAor0ILQo9Cg0ILQldCSINCc0JDQoNCY0IjQkAor0ILQo9Cg0ILQldCSINCc0JDQoNCY0IjQkAor0ILQo9Cg0ILQldCSINCc0JjQm9CV0KLQkAor0ILQo9Cg0ILQldCSINCc0JvQkNCU0JXQnQor0ILQo9Cg0ILQldCSINCd0JDQlNCV0JbQlNCQCivQgtCj0KDQgtCV0JIg0J3QldCS0JXQndCa0JAKK9CC0KPQoNCC0JXQkiDQndCe0JLQkNCaCivQgtCj0KDQgtCV0JIg0J7QkdCg0JDQlAor0ILQo9Cg0ILQldCSINCf0JDQktCQCivQgtCj0KDQgtCV0JIg0J/QoNCS0J7QodCb0JDQkgor0ILQo9Cg0ILQldCSINCh0JDQktCY0KbQkAor0ILQo9Cg0ILQldCSINCh0JvQkNCS0JrQngor0ILQo9Cg0ILQldCSINCh0KLQldCS0JDQnQor0ILQo9Cg0ILQldCSINCi0J7QlNCe0KAKK9CC0KPQoNCC0JXQkiDQktCQ0KHQkAor0ILQo9Cg0ILQldCSINCS0JXQoNCQCivQgtCj0KDQgtCV0JIg0JfQntCg0JrQkAor0ILQo9Cg0ILQldCS0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQgtCj0KDQgtCV0JLQmNCLINCW0JXQidCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0JbQmNCS0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQltCY0JLQmtCeCivQgtCj0KDQgtCV0JLQmNCLINCW0JjQktCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0ILQntCg0ILQlQor0ILQo9Cg0ILQldCS0JjQiyDQgtCj0KDQgtCY0KbQkCDQlNCY0J/QmyDQmNCd0JMKK9CC0KPQoNCC0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CC0KPQoNCC0JXQktCY0Isg0JHQntCT0JTQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCR0KDQkNCd0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CC0KPQoNCC0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0ILQo9Cg0ILQldCS0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0JTQo9Co0JjQptCQCivQgtCj0KDQgtCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQgtCj0KDQgtCV0JLQmNCLINCI0JDQmtCe0JIKK9CC0KPQoNCC0JXQktCY0Isg0IjQldCb0JXQndCQCivQgtCj0KDQgtCV0JLQmNCLINCI0JXQm9CV0J3QkAor0ILQo9Cg0ILQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CC0KPQoNCC0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9CC0KPQoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQiNCj0JvQmtCQCivQgtCj0KDQgtCV0JLQmNCLINCb0JDQl9CQ0KAKK9CC0KPQoNCC0JXQktCY0Isg0JvQkNCX0J4KK9CC0KPQoNCC0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CC0KPQoNCC0JXQktCY0Isg0JzQkNCd0J7QiNCb0J4KK9CC0KPQoNCC0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CY0KbQkAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQo9Cg0ILQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0ILQo9Cg0ILQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCC0JXQktCY0Isg0KDQkNCU0JjQndCa0JAKK9CC0KPQoNCC0JXQktCY0Isg0KDQkNCd0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQodCQ0JLQkAor0ILQo9Cg0ILQldCS0JjQiyDQodCQ0JLQkAor0ILQo9Cg0ILQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCh0KDQgtCQ0J0g0JTQoAor0ILQo9Cg0ILQldCS0JjQiyDQodCi0JDQndCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0KHQotCQ0J3QntCI0JrQkAor0ILQo9Cg0ILQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0ILQo9Cg0ILQldCS0JjQiyDQotCe0JTQntCgCivQgtCj0KDQgtCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CC0KPQoNCC0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQo9Cg0ILQldCS0JjQiyDQktCV0KHQldCb0JjQnQor0ILQo9Cg0ILQldCS0JjQiyDQktCY0JQKK9CC0KPQoNCC0JXQktCY0Isg0JLQm9CQ0JTQkAor0ILQo9Cg0ILQldCS0JjQiyDQktCb0JDQlNCQCivQgtCj0KDQgtCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQoNCC0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0ILQldCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CC0KPQoNCC0JXQktCY0Isg0JfQntCg0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQl9Ce0KDQkNCdCivQgtCj0KDQgtCV0JLQodCa0Jgg0JHQntCo0JrQngor0ILQo9Cg0ILQmNCLINCR0J7QltCY0JTQkNCgCivQgtCj0KDQgtCY0Isg0JzQmNCb0J7QqAor0ILQo9Cg0ILQmNCLINCc0J7QnNCn0JjQm9CeCivQgtCj0KDQgtCY0Isg0KHQkNCS0J4KK9CC0KPQoNCC0JjQiyDQodCi0JDQndCQCivQgtCj0KDQgtCY0J0g0KHQotCV0JLQkNCdCivQgtCj0KDQgtCj0JvQntCSINCU0JXQiNCQ0J0KK9CC0KPQoNCC0KPQm9Ce0JIg0JXQktCY0KbQkAor0ILQo9Cg0JAg0KTQoNCQ0IrQkAor0ILQo9Cg0JAg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CC0KPQoNCQINCI0KPQm9CY0IjQkNCd0JAg0JzQoAor0ILQo9Cg0JDQp9CY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQkNCoINCc0JjQntCU0KDQkNCTCivQgtCj0KDQkNCo0JXQktCY0Isg0ILQntCg0ILQlQor0ILQo9Cg0JDQqNCV0JLQmNCLINCC0KPQoNCeCivQgtCj0KDQkNCo0JXQktCY0Isg0JPQntCI0JrQngor0ILQo9Cg0JDQqNCV0JLQmNCLINCY0JLQngor0ILQo9Cg0JDQqNCV0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CC0KPQoNCQ0KjQldCS0JjQiyDQnNCY0JvQlQor0ILQo9Cg0JDQqNCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCj0KDQkNCo0JXQktCY0Isg0KLQmNCR0J7QoAor0ILQo9Cg0JDQqNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0KPQoNCQ0KjQmNCd0J7QkiDQktCV0JvQmNCc0JjQoAor0ILQo9Cg0JDQqNCY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQgtCj0KDQkNCo0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0JHQntCW0J4KK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQngor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCI0J7QktCY0KbQkAor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0KDQkNCI0JrQngor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9CC0KPQoNCQ0JPQmNCLINCC0J7QoNCC0JUKK9CC0KPQoNCQ0JPQmNCLINCU0JjQm9CVCivQgtCj0KDQkNCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCQ0JPQmNCLINCT0JjQk9CQCivQgtCj0KDQkNCT0JjQiyDQiNCe0JLQkNCdCivQgtCj0KDQkNCT0JjQiyDQiNCj0JvQmtCQCivQgtCj0KDQkNCT0JjQiyDQm9CQ0JfQkNCgCivQgtCj0KDQkNCT0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQgtCj0KDQkNCT0JjQiyDQodCQ0JLQkAor0ILQo9Cg0JDQk9CY0Isg0KHQotCV0JLQkNCdCivQgtCj0KDQkNCT0JjQnSDQiNCe0JLQkNCdCivQgtCj0KDQkNCT0JjQnSDQodCi0JDQndCa0JAKK9CC0KPQoNCQ0Jog0IjQntCW0JXQpAor0ILQo9Cg0JDQmiDQiNCe0KHQmNCkCivQgtCj0KDQkNCa0J7QktCQ0KYg0KTQkNCi0JzQmNCg0JAKK9CC0KPQoNCQ0J0g0JHQntCI0JDQndCQCivQgtCj0KDQkNCdINCY0JvQmNCI0JAKK9CC0KPQoNCQ0J0g0IjQldCb0JXQndCQCivQgtCj0KDQkNCdINCI0J7QktCeCivQgtCj0KDQkNCdINCc0JjQm9CQ0J0KK9CC0KPQoNCQ0J0g0JzQmNCb0JDQnQor0ILQo9Cg0JDQnSDQoNCQ0IjQmtCeCivQgtCj0KDQkNCdINCg0JDQiNCa0J4KK9CC0KPQoNCQ0J0g0KHQm9CQ0JLQmtCeCivQgtCj0KDQkNCdINCh0J3QldCW0JDQndCQCivQgtCj0KDQkNCdINCX0JTQoNCQ0JLQmtCeCivQgtCj0KDQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0ILQo9Cg0JDQndCe0JLQmNCLINCY0JvQntCd0JAKK9CC0KPQoNCQ0J3QntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0ILQo9Cg0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0ILQo9Cg0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CC0KPQoNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0ILQo9Cg0JDQndCe0JLQmNCLINCh0JvQkNCC0JDQndCQCivQgtCj0KDQkNCh0JjQndCe0JLQmNCLINCc0JjQm9CVCivQgtCj0KDQlNCa0J7QkiDQldCS0JAKK9CC0KPQoNCV0JrQntCS0JjQiyDQmtCQ0KDQm9CeCivQgtCj0KDQldCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQgtCj0KDQldCa0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0ILQo9Cg0JXQndCU0JjQiyDQgtCe0KDQgtCVCivQgtCj0KDQldCd0JTQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCV0KLQmNCLINCd0JjQmtCe0JvQkAor0ILQo9Cg0JjQp9CY0Isg0JTQoNCQ0JPQmNCK0JAKK9CC0KPQoNCY0KfQmNCLINCU0KDQkNCT0J4KK9CC0KPQoNCY0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CC0KPQoNCY0KfQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCY0KfQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCY0KfQmNCLINCc0JjQidCe0IjQmtCeCivQgtCj0KDQmNCn0JjQiyDQnNCY0JvQntCoCivQgtCj0KDQmNCn0JjQiyDQndCV0KjQmtCeCivQgtCj0KDQmNCn0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCY0KfQmNCLINCf0JDQktCb0JUKK9CC0KPQoNCY0KfQmNCLINCg0KPQltCQCivQgtCj0KDQmNCn0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQoNCY0KfQmNCLINCh0JvQkNCS0JrQngor0ILQo9Cg0JjQp9CY0Isg0KHQotCQ0J3QmtCeCivQgtCj0KDQmNCn0JjQiyDQotCQ0J3QmtCe0KHQkNCS0JAKK9CC0KPQoNCY0KfQmNCLINCX0JvQkNCi0JjQptCQCivQgtCj0KDQmNCn0JjQiyDQl9Ce0KDQkNCdCivQgtCj0KDQmNCn0JjQnSDQgtCe0KDQgtCVCivQgtCj0KDQmNCn0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQo9Cg0JjQp9CY0J0g0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCn0JjQnSDQlNCg0JDQk9Cj0KLQmNCdCivQgtCj0KDQmNCn0JjQnSDQmtCQ0KLQkNCg0JjQndCQCivQgtCj0KDQmNCn0JjQnSDQmtCQ0KLQmNCm0JAKK9CC0KPQoNCY0KfQmNCdINCc0JDQoNCa0J4KK9CC0KPQoNCY0KfQmNCdINCc0JjQm9CQ0J0KK9CC0KPQoNCY0KfQmNCdINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQmNCn0JjQnSDQnNCY0J7QlNCg0JDQkwor0ILQo9Cg0JjQp9CY0J0g0J/QldCi0JDQoAor0ILQo9Cg0JjQp9CY0J0g0KDQkNCU0J7QodCb0JDQktCQCivQgtCj0KDQmNCn0JjQnSDQoNCj0JbQmNCm0JAKK9CC0KPQoNCY0KfQmNCdINCh0JjQndCY0KjQkAor0ILQo9Cg0JjQp9CY0J0g0KHQntCk0JjQiNCQCivQgtCj0KDQmNCn0JjQnSDQodCi0JDQndCY0IjQkAor0ILQo9Cg0JjQp9CY0J0g0KHQotCV0JLQkNCdCivQgtCj0KDQmNCn0JjQnSDQodCS0JXQotCb0JDQndCQCivQgtCj0KDQmNCn0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQgtCj0KDQmNCn0JjQnSDQktCQ0KHQmNCb0JjQiNCVCivQgtCj0KDQmNCn0JjQnSDQl9Ce0KDQmtCQCivQgtCj0KDQmNCn0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0ILQo9Cg0JjQp9Ca0J7QktCY0Isg0J/QkNCS0JvQlQor0ILQo9Cg0JjQp9Ca0J7QktCY0Isg0JfQm9CQ0KLQkNCd0JAKK9CC0KPQoNCY0Kgg0JrQm9CQ0KDQkAor0ILQo9Cg0JjQqCDQnNCY0KDQntCh0JvQkNCSCivQgtCj0KDQmNCoINCf0JDQidCeCivQgtCj0KDQmNCo0JXQktCY0Isg0JzQmNCb0JXQndCQCivQgtCj0KDQmNCo0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQmNCo0JjQiyDQiNCV0JvQldCd0JAKK9CC0KPQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9CC0KPQoNCY0KjQmNCLINCc0JDQotCeCivQgtCj0KDQmNCo0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCo0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCo0JjQiyDQnNCY0JvQmNCI0JAKK9CC0KPQoNCY0KjQmNCLINCc0JjQm9CY0KHQkNCSCivQgtCj0KDQmNCo0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCY0KjQmNCLINCg0JDQlNCc0JjQm9CQCivQgtCj0KDQmNCo0JjQiyDQoNCQ0JTQntCc0JjQoAor0ILQo9Cg0JjQqNCY0Isg0KHQm9CQ0JLQmtCeCivQgtCj0KDQmNCo0JjQiyDQodCS0JXQotCb0JDQndCQCivQgtCj0KDQmNCo0JjQiyDQktCV0KDQkAor0ILQo9Cg0JjQqNCY0Isg0JLQmNCU0JAKK9CC0KPQoNCY0KjQmNCLINCX0JvQkNCi0JDQndCQCivQgtCj0KDQmNCo0JjQiyDQl9Cb0JDQotCQCivQgtCj0KDQmNCLINCW0JDQoNCa0J4KK9CC0KPQoNCY0Isg0JbQldCJ0JrQngor0ILQo9Cg0JjQiyDQltCY0JLQntCg0JDQlAor0ILQo9Cg0JjQiyDQgtCV0KDQggor0ILQo9Cg0JjQiyDQgtCe0KDQgtCVCivQgtCj0KDQmNCLINCC0J7QoNCC0JUKK9CC0KPQoNCY0Isg0ILQntCg0ILQlQor0ILQo9Cg0JjQiyDQgtCj0KDQkAor0ILQo9Cg0JjQiyDQgtCj0KDQmNCm0JAKK9CC0KPQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0KPQoNCY0Isg0JDQndCC0JXQm9Ca0JAKK9CC0KPQoNCY0Isg0JDQndCT0JXQm9CY0J3QkAor0ILQo9Cg0JjQiyDQkNCd0JrQkAor0ILQo9Cg0JjQiyDQkNCg0KHQldCd0JjQiNCVCivQgtCj0KDQmNCLINCR0JvQkNCT0J7QnNCY0KAKK9CC0KPQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CC0KPQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CC0KPQoNCY0Isg0JHQntCT0J7QidCj0JEKK9CC0KPQoNCY0Isg0JHQntCT0J7QidCj0JEKK9CC0KPQoNCY0Isg0JHQntCI0JDQnQor0ILQo9Cg0JjQiyDQkdCe0KDQmNCS0J7QiAor0ILQo9Cg0JjQiyDQkdCe0KDQmtCQCivQgtCj0KDQmNCLINCR0J7QoNCa0JAKK9CC0KPQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0ILQo9Cg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0ILQo9Cg0JjQiyDQkdCg0JDQndCa0JAKK9CC0KPQoNCY0Isg0JHQoNCQ0J3QmtCQCivQgtCj0KDQmNCLINCR0KDQkNCd0JrQngor0ILQo9Cg0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0JHQo9CU0JjQnNCY0KAKK9CC0KPQoNCY0Isg0JTQldCI0JDQnQor0ILQo9Cg0JjQiyDQlNCV0IjQkNCdCivQgtCj0KDQmNCLINCU0JXQodCf0J7Qogor0ILQo9Cg0JjQiyDQlNCe0JHQoNCVCivQgtCj0KDQmNCLINCU0J7QkdCg0JjQm9CQCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CY0KbQkAor0ILQo9Cg0JjQiyDQlNCg0JDQk9CY0KbQkAor0ILQo9Cg0JjQiyDQlNCg0JDQk9Cj0KLQmNCdINCU0KAKK9CC0KPQoNCY0Isg0JTQo9Co0JDQnQor0ILQo9Cg0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQmNCLINCV0JLQkAor0ILQo9Cg0JjQiyDQpNCg0JDQitCQCivQgtCj0KDQmNCLINCT0J7QiNCa0J4KK9CC0KPQoNCY0Isg0JPQntCI0JrQngor0ILQo9Cg0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0ILQo9Cg0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQgtCj0KDQmNCLINCY0JvQmNCI0JAKK9CC0KPQoNCY0Isg0JjQm9CY0IjQkAor0ILQo9Cg0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQgtCj0KDQmNCLINCI0JXQm9CY0KbQkAor0ILQo9Cg0JjQiyDQiNCe0JLQkNCdCivQgtCj0KDQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0JjQiyDQiNCe0JLQngor0ILQo9Cg0JjQiyDQmtCg0JjQodCi0JjQndCQCivQgtCj0KDQmNCLINCJ0JjQidCQ0J3QkAor0ILQo9Cg0JjQiyDQidCj0JHQmNCo0JAKK9CC0KPQoNCY0Isg0InQo9CR0JjQqNCQCivQgtCj0KDQmNCLINCJ0KPQkdCY0KbQkAor0ILQo9Cg0JjQiyDQidCj0JHQmNCm0JAKK9CC0KPQoNCY0Isg0InQo9CR0J7QlNCg0JDQkwor0ILQo9Cg0JjQiyDQidCj0JHQntCc0JjQoAor0ILQo9Cg0JjQiyDQnNCQ0KDQkAor0ILQo9Cg0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0KPQoNCY0Isg0JzQmNCL0JAKK9CC0KPQoNCY0Isg0JzQmNCb0JDQndCa0J4KK9CC0KPQoNCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0JjQiyDQnNCY0JvQldCd0JrQngor0ILQo9Cg0JjQiyDQnNCY0JvQmNCm0JAKK9CC0KPQoNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0ILQo9Cg0JjQiyDQnNCY0JvQntCoCivQgtCj0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCj0KDQmNCLINCc0JjQm9Cj0J0KK9CC0KPQoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CC0KPQoNCY0Isg0JzQmNCg0JrQngor0ILQo9Cg0JjQiyDQnNCY0KDQntCJ0KPQkQor0ILQo9Cg0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CC0KPQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0ILQo9Cg0JjQiyDQnNCY0KLQkNCgCivQgtCj0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQgtCj0KDQmNCLINCd0JXQlNCV0InQmtCeCivQgtCj0KDQmNCLINCd0JXQnNCQ0IrQkAor0ILQo9Cg0JjQiyDQndCV0J3QkNCUCivQgtCj0KDQmNCLINCd0JXQktCV0J3QmtCQCivQgtCj0KDQmNCLINCf0JXQotCg0JAKK9CC0KPQoNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0ILQo9Cg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0ILQo9Cg0JjQiyDQoNCQ0JTQntCY0KbQkAor0ILQo9Cg0JjQiyDQoNCQ0JTQntCI0JrQkAor0ILQo9Cg0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQgtCj0KDQmNCLINCg0JDQotCa0J4KK9CC0KPQoNCY0Isg0KHQkNCK0JAKK9CC0KPQoNCY0Isg0KHQkNCS0JrQkAor0ILQo9Cg0JjQiyDQodCQ0JLQngor0ILQo9Cg0JjQiyDQodCV0JrQo9Cb0JAKK9CC0KPQoNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CC0KPQoNCY0Isg0KHQm9CQ0JLQmtCQCivQgtCj0KDQmNCLINCh0JvQkNCS0JrQngor0ILQo9Cg0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQoNCY0Isg0KHQoNCR0J7QidCj0JEKK9CC0KPQoNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0ILQo9Cg0JjQiyDQodCi0JDQndCY0JzQmNCgCivQgtCj0KDQmNCLINCh0KLQldCS0JDQnQor0ILQo9Cg0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQgtCj0KDQmNCLINCh0KLQntCI0JDQndCa0JAKK9CC0KPQoNCY0Isg0KLQldCe0JTQntCgCivQgtCj0KDQmNCLINCi0JXQoNCV0JfQkAor0ILQo9Cg0JjQiyDQotCe0JTQntCgCivQgtCj0KDQmNCLINCi0J7QlNCe0KAKK9CC0KPQoNCY0Isg0KLQo9CT0J7QnNCY0KAKK9CC0KPQoNCY0Isg0JLQkNCh0JAKK9CC0KPQoNCY0Isg0JLQldCJ0JrQngor0ILQo9Cg0JjQiyDQktCV0KDQkAor0ILQo9Cg0JjQiyDQktCV0KDQkAor0ILQo9Cg0JjQiyDQktCY0JTQkAor0ILQo9Cg0JjQiyDQktCY0JTQntCI0JUKK9CC0KPQoNCY0Isg0JLQm9CQ0JTQkAor0ILQo9Cg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQoNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0JjQiyDQktCe0IjQmNCdCivQgtCj0KDQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CC0KPQoNCY0Isg0JfQlNCV0J3QmtCQCivQgtCj0KDQmNCLINCX0JTQoNCQ0JLQmtCeCivQgtCj0KDQmNCLINCX0J7QoNCQ0J0KK9CC0KPQoNCY0KbQkCDQnNCY0JvQntCoCivQgtCj0KDQmNCm0JAg0J3QldCS0JXQndCa0JAKK9CC0KPQoNCY0KbQkCDQoNCQ0JTQlQor0ILQo9Cg0JjQptCQINCg0JDQndCa0J4KK9CC0KPQoNCY0KbQkCDQoNCQ0J3QmtCeCivQgtCj0KDQmNCm0JAg0KDQkNCi0JrQngor0ILQo9Cg0JjQptCQINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0J7QldCmCivQgtCj0KDQmNCaINCU0KPQqNCQ0J0KK9CC0KPQoNCY0Jog0IjQo9Cb0JrQkAor0ILQo9Cg0JjQmiDQnNCY0JvQkNCdCivQgtCj0KDQmNCaINCe0KLQmNCb0JjQiNCQCivQgtCj0KDQmNCa0JjQnSDQmNCb0JjQiNCQCivQgtCj0KDQmNCa0JjQnSDQktCV0KDQkAor0ILQo9Cg0JjQnSDQmNCb0JjQiNCQCivQgtCj0KDQmNCdINCI0J7QodCY0J8KK9CC0KPQoNCY0J0g0J3QntCS0JAKK9CC0KPQoNCY0J0g0J3QntCS0JAKK9CC0KPQoNCY0J0g0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQgtCj0KDQmNCdINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQoNCY0J0g0KLQldCe0JTQntCgCivQgtCj0KDQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CC0KPQoNCa0JjQnSDQnNCY0JvQldCd0JrQngor0ILQo9Cg0JrQmNCdINCg0JDQlNCY0KjQmtCeCivQgtCj0KDQmtCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CC0KPQoNCa0J7QktCY0Isg0ILQldCd0JAKK9CC0KPQoNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQgtCj0KDQmtCe0JLQmNCLINCQ0J3QotCe0J0KK9CC0KPQoNCa0J7QktCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQgtCj0KDQmtCe0JLQmNCLINCf0JXQoNCY0KbQkAor0ILQo9Cg0JrQntCS0JjQiyDQoNCQ0JTQlQor0ILQo9Cg0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CC0KPQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQgtCj0KDQmtCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CC0KPQoNCa0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQgtCj0KDQmtCe0JLQodCa0Jgg0J/QkNCS0JXQmwor0ILQo9Cg0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQgtCj0KDQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0ILQo9Cg0J7QktCY0Isg0JbQmNCS0JrQkAor0ILQo9Cg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0KPQoNCe0JLQmNCLINCR0J7QqNCa0J4KK9CC0KPQoNCe0JLQmNCLINCR0J7QiNCQCivQgtCj0KDQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQgtCj0KDQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0ILQo9Cg0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQgtCj0KDQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0ILQo9Cg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0KPQoNCe0JLQmNCLINCT0J7QiNCa0J4KK9CC0KPQoNCe0JLQmNCLINCI0JDQodCc0JjQndCa0JAKK9CC0KPQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0ILQo9Cg0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0KPQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0ILQo9Cg0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CC0KPQoNCe0JLQmNCLINCc0JjQm9Ca0JAKK9CC0KPQoNCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQgtCj0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCe0JLQmNCLINCe0JvQk9CY0KbQkAor0ILQo9Cg0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9CC0KPQoNCe0JLQmNCLINCg0JDQlNCVCivQgtCj0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0ILQo9Cg0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CC0KPQoNCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0KPQoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQgtCj0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CC0KPQoNCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQoNCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CC0KPQoNCe0JLQmNCLINCS0JDQodCeCivQgtCj0KDQntCS0JjQiyDQktCV0KHQndCQCivQgtCj0KDQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0ILQo9Cg0J7QktCY0Isg0JLQo9Ca0JDQlNCY0J0KK9CC0KPQoNCe0JLQmNCLINCX0J7QoNCa0JAKK9CC0KPQoNCe0JLQmtCQINCc0JDQoNCY0IjQkAor0ILQo9Cg0J7QktCa0JAg0J7QndCU0KDQldCICivQgtCj0KDQntCS0JrQkCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CC0KPQoNCe0JLQodCa0Jgg0IjQntCS0JjQptCQCivQgtCj0KHQmNCLINCc0JjQntCU0KDQkNCTCivQgtCj0JfQkCDQodCi0JXQktCeCivQkNCnINCo0JDQndCU0J7QoAor0JDQpyDQpNCV0KDQldCd0KYKK9CQ0Kcg0KTQoNCQ0IrQkCDQlNCgINCf0KDQmNCc0JDQoNCY0IjQo9ChCivQkNCnINCT0JDQkdCe0KAKK9CQ0Kcg0IjQntCW0JXQpCDQkNCa0JDQlNCV0JzQodCa0Jgg0KHQm9CY0JrQkNCgCivQkNCnINCI0J7QltCV0KQg0JHQmNCe0JvQntCTCivQkNCnINCI0J7QktCQ0J0KK9CQ0Kcg0JrQkNCi0JjQptCQCivQkNCnINCb0JDQiNCe0KgKK9CQ0Kct0J3QmNCa0J7Qm9CY0Isg0JXQoNCW0JXQkdCV0KIKK9CQ0Kcg0J7QotCeCivQkNCnINCf0JDQktCb0JUKK9CQ0Kcg0KLQmNCR0J7QoAor0JDQp9CQ0Jgg0JjQqNCi0JLQkNCdCivQkNCn0JDQmCDQl9Ce0JvQotCQ0J0KK9CQ0KfQkNCd0JDQodCa0Jgg0JLQldCh0J3QkAor0JDQp9CQ0J3QodCa0Jgg0JbQmNCS0JrQngor0JDQp9CQ0J3QodCa0Jgg0JDQm9CR0JjQndCQCivQkNCn0JDQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQp9CQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCn0JDQndCh0JrQmCDQlNCe0JHQoNCY0JLQntCICivQkNCn0JDQndCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0JDQp9CQ0J3QodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JDQp9CQ0J3QodCa0Jgg0IjQldCb0JjQodCe0JIKK9CQ0KfQkNCd0KHQmtCYINCa0J7QodCQ0J3QkAor0JDQp9CQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JDQp9CQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JDQp9CQ0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQkNCn0JDQndCh0JrQmCDQoNCQ0JTQkAor0JDQp9CQ0J3QodCa0Jgg0KHQotCQ0J3QkAor0JDQp9CQ0J3QodCa0Jgg0KHQotCQ0J3QmNCh0JvQkNCSCivQkNCn0JDQndCh0JrQmCDQotCV0J7QlNCe0KAg0JTQmNCf0Jsg0JjQndCTCivQkNCn0JDQndCh0JrQmCDQotCe0JTQntCgCivQkNCn0JDQndCh0JrQmCDQktCY0JTQntCh0JDQktCQCivQkNCn0JDQndCh0JrQmCDQl9CU0KDQkNCS0JrQngor0JDQp9CQ0J3QodCa0Jgg0JfQntCg0JjQptCQCivQkNCo0IvQldCg0JjQiyDQodCi0JXQktCQ0J0KK9CQ0KjQi9CV0KDQmNCLINCh0KLQldCS0JDQnQor0JDQqNCL0JXQoNCY0Isg0JfQntCg0JAKK9CQ0KjQkNCd0JjQnSDQoNCQ0JTQmNCS0J7QiNCVCivQkNCo0JDQndCY0J0g0JfQntCg0JDQnQor0JDQqNCY0JrQoyDQktCY0KLQkNCb0JjQoSDQlNCgINCb0JXQmtCQ0KAKK9CQ0KjQmtCe0JLQmNCLINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CQ0KjQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0KjQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQkAor0JDQqNCe0IrQkCDQndCV0JTQldCJ0JrQngor0JDQqNCe0IrQkCDQntCb0JPQkAor0JDQqNCi0JDQm9Ca0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQqNCi0JDQm9Ca0J7QktCh0JrQmCDQmtCg0JjQodCi0JjQndCQCivQkNCL0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQkNCL0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQkNCL0JjQiyDQmNCb0JjQiNCQCivQkNCL0JjQiyDQnNCY0KDQmtCeCivQkNCL0JjQiyDQodCi0JXQktCQ0J0KK9CQ0IvQmNCc0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQi9CY0JzQntCSINCR0J7QqNCa0J4KK9CQ0IvQmNCc0J7QkiDQlNCg0JDQk9CY0KbQkAor0JDQi9CY0JzQntCSINCb0JXQm9CQCivQkNCL0JjQnNCe0JIg0JzQkNCg0JrQngor0JDQi9CY0JzQntCSINCc0JjQm9CQ0J0KK9CQ0IvQmNCc0J7QkiDQnNCY0KDQiNCQ0J3QkCDQn9Cg0J7QpNCV0KHQntCgCivQkNCL0JjQnNCe0JIg0J3QldCU0JXQidCa0J4KK9CQ0IvQmNCc0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JDQi9CY0JzQntCSINCg0JDQlNCe0KHQm9CQ0JLQkAor0JDQi9CY0JzQntCS0JjQiyDQltCY0JLQmtCeCivQkNCL0JjQnNCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQkNCL0JjQnNCe0JLQmNCLINCC0J7QoNCC0JUKK9CQ0IvQmNCc0J7QktCY0Isg0ILQntCg0ILQlQor0JDQi9CY0JzQntCS0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQkNCL0JjQnNCe0JLQmNCLINCR0J7QqNCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JDQi9CY0JzQntCS0JjQiyDQkdCe0KDQmtCQCivQkNCL0JjQnNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JDQi9CY0JzQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkNCL0JjQnNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0IvQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkNCL0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQkNCL0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0IvQmNCc0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQi9CY0JzQntCS0JjQiyDQk9Ce0IjQmtCeCivQkNCL0JjQnNCe0JLQmNCLINCY0JvQmNCI0JAKK9CQ0IvQmNCc0J7QktCY0Isg0IjQntCS0JAKK9CQ0IvQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQkAor0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVINCU0KAKK9CQ0IvQmNCc0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0IvQmNCc0J7QktCY0Isg0JzQmNCb0J7QiNCY0KbQkAor0JDQi9CY0JzQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQi9CY0JzQntCS0JjQiyDQntCR0KDQkNCUCivQkNCL0JjQnNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQkNCL0JjQnNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkNCL0JjQnNCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0KHQkNCS0JAKK9CQ0IvQmNCc0J7QktCY0Isg0KHQkNCS0JAKK9CQ0IvQmNCc0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQkNCL0JjQnNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0IvQmNCc0J7QktCY0Isg0KLQkNCU0JjQiNCQCivQkNCL0JjQnNCe0JLQmNCLINCS0JDQodCQCivQkNCL0JjQnNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CQ0IvQmNCc0J/QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0ILQkNCd0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JDQgtCQ0J3QodCa0Jgg0JjQktCQ0J3QkAor0JDQgtCQ0J3QodCa0Jgg0JzQmNCb0JjQktCe0IgKK9CQ0ILQkNCd0KHQmtCYINCd0JDQlNCQCivQkNCC0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CQ0ILQmNCLINCU0KDQkNCT0J4KK9CQ0ILQmNCLINCe0KLQngor0JDQgtCY0J0g0JDQlNCQ0JwKK9CQ0JHQkNCP0JjQiyDQnNCQ0KDQmtCeCivQkNCR0JDQj9CY0Isg0KDQkNCU0JzQmNCb0JAKK9CQ0JHQkNCP0JjQiyDQodCQ0JLQngor0JDQkdCQ0I/QmNCLINCh0KLQkNCd0JrQngor0JDQkdCQ0JfQkCDQktCV0KHQndCQCivQkNCR0JDQl9CYINCY0InQkNCXCivQkNCR0JDQl9CYINCg0JDQnNCQ0JTQkNCdCivQkNCR0JDQl9Ce0JLQodCa0Jgg0KHQo9Cb0KLQkNCdCivQkNCR0JTQmNCI0JXQktCY0Isg0KjQo9Ca0KDQmNCI0JAKK9CQ0JHQlNCY0IjQldCS0JjQiyDQmNCh0JzQldCiCivQkNCR0KDQkNCl0JDQnCDQldCS0JAKK9CQ0JHQoNCQ0KXQkNCcINCY0KDQldCd0JAKK9CQ0JHQoNCQ0KXQkNCcINCf0JDQktCV0JsKK9CQ0JHQoNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JDQkdCg0JDQnNCe0JLQmNCLINCb0JjQktCY0IjQkAor0JDQkdCg0JDQnNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCR0KDQkNCc0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0JHQoNCQ0JzQntCS0JjQiyDQndCQ0JTQkAor0JDQkdCg0JDQnNCe0JLQmNCLINCh0KLQkNCd0JAKK9CQ0JHQoNCQ0JzQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQkNCR0KDQm9CY0Isg0J3QkNCU0JAKK9CQ0JHQoiDQm9CQ0KHQm9CeCivQkNCR0KMt0JDQkdCV0JQg0JzQo9Cl0JDQnNCV0JQKK9CQ0KbQmNCT0JDQnSDQiNCe0JLQkNCd0JrQkAor0JDQptCY0J0t0J/QldCi0KDQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CQ0KbQmtCV0KLQkCDQlNCg0JDQk9CQ0J0KK9CQ0KbQmtCV0KLQkCDQnNCY0KDQiNCQ0J3QkAor0JDQptCa0JXQotCQINCi0JjQpdCe0JzQmNCgCivQkNCm0JrQntCS0JjQiyDQnNCQ0KDQkAor0JDQj9CQ0JjQnyDQnNCY0JvQntCg0JDQlAor0JDQj9CQ0JjQnyDQnNCY0KDQiNCQ0J3QkAor0JDQj9CV0JzQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQj9CV0JzQntCS0JjQiyDQk9Cg0KPQiNCeCivQkNCP0JjQiyDQltCQ0KDQmtCeCivQkNCP0JjQiyDQkdCe0KjQmtCeCivQkNCP0JjQiyDQkdCg0JDQndCa0J4KK9CQ0I/QmNCLINCU0JXQodCQ0J3QmtCQCivQkNCP0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkNCP0JjQiyDQlNCj0KjQmNCm0JAKK9CQ0I/QmNCLINCT0J7QoNCQ0J0KK9CQ0I/QmNCLINCY0JvQmNCI0JAKK9CQ0I/QmNCLINCI0J7QktCQ0J3QmtCQCivQkNCP0JjQiyDQiNCe0JLQkNCdCivQkNCP0JjQiyDQidCj0JHQntCU0KDQkNCTCivQkNCP0JjQiyDQnNCY0JvQkNCdCivQkNCP0JjQiyDQnNCY0JvQldCdCivQkNCP0JjQiyDQnNCY0JvQmNCh0JDQkgor0JDQj9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JDQj9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0I/QmNCLINCd0JXQlNCV0InQmtCeCivQkNCP0JjQiyDQn9CV0KDQngor0JDQj9CY0Isg0KDQkNCU0JjQodCQ0JIKK9CQ0I/QmNCLINCg0JDQlNCe0IrQkAor0JDQj9CY0Isg0KDQkNCd0JrQngor0JDQj9CY0Isg0KDQkNCi0JrQngor0JDQj9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQj9CY0Isg0JLQm9CQ0JTQngor0JDQj9CY0Isg0JfQntCg0JDQnQor0JDQj9CY0JHQkNCR0JAg0JzQmNCb0JjQptCQCivQkNCP0JjQkdCQ0JHQkCDQndCY0JrQntCb0JAKK9CQ0JTQkNCcINCo0JDQoNCb0J7QotCQCivQkNCU0JDQnCDQgtCj0KDQkAor0JDQlNCQ0Jwg0JTQldCd0JXQqAor0JDQlNCQ0Jwg0JjQoNCc0JAKK9CQ0JTQkNCcINCI0J7QltCV0KQKK9CQ0JTQkNCcINCI0J7QodCY0J8KK9CQ0JTQkNCcINCa0KDQo9Cd0JjQptCQINCU0KAKK9CQ0JTQkNCcINCb0JDQlNCY0KHQm9CQ0JIKK9CQ0JTQkNCcINCb0JDQlNCY0KHQm9CQ0JIKK9CQ0JTQkNCcINCb0JDQodCb0J4KK9CQ0JTQkNCcINCe0JvQk9CY0KbQkAor0JDQlNCQ0Jwg0KLQmNCR0J7QoCDQndCe0JLQmNCd0JDQoAor0JDQlNCQ0JzQntCSINCC0J7QoNCC0JUKK9CQ0JTQkNCc0J7QkiDQkdCe0JbQmNCU0JDQoAor0JDQlNCQ0JzQntCSINCU0KDQkNCT0JDQnQor0JDQlNCQ0JzQntCSINCU0KPQqNCQ0J0KK9CQ0JTQkNCc0J7QkiDQmNCS0JDQnQor0JDQlNCQ0JzQntCSINCI0J7QktCQ0J0KK9CQ0JTQkNCc0J7QkiDQiNCj0JvQmNCQ0J3QkAor0JDQlNCQ0JzQntCSINCI0KPQm9Ca0JAKK9CQ0JTQkNCc0J7QkiDQiNCj0JvQmtCQCivQkNCU0JDQnNCe0JIg0JrQkNCi0JDQoNCY0J3QkAor0JDQlNCQ0JzQntCSINCJ0KPQkdCQCivQkNCU0JDQnNCe0JIg0JzQkNCg0JjQiNCQCivQkNCU0JDQnNCe0JIg0JzQmNCg0J7QodCb0JDQktCQCivQkNCU0JDQnNCe0JIg0KDQkNCU0J7QktCQ0J0KK9CQ0JTQkNCc0J7QkiDQotCY0KbQkAor0JDQlNCQ0JzQntCSINCS0JjQotCe0JzQmNCgCivQkNCU0JDQnNCe0JLQmNCLINCC0KPQoNCQCivQkNCU0JDQnNCe0JLQmNCLINCR0J7QqNCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JTQoNCQ0JPQkAor0JDQlNCQ0JzQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkNCU0JDQnNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0JTQkNCc0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JDQlNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQlNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCT0J7QiNCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JPQntCI0JrQngor0JDQlNCQ0JzQntCS0JjQiyDQk9Ce0KDQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCY0JvQntCd0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JjQktCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0IjQldCb0JAKK9CQ0JTQkNCc0J7QktCY0Isg0IjQldCb0JXQndCQCivQkNCU0JDQnNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQkNCU0JDQnNCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0JrQkNCi0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQlNCQ0JzQntCS0JjQiyDQm9CQ0JfQkNCgCivQkNCU0JDQnNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JDQlNCQ0JzQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQkAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQkAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQkAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JDQlNCQ0JzQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkNCU0JDQnNCe0JLQmNCLINCc0JjQm9Ca0JDQnQor0JDQlNCQ0JzQntCS0JjQiyDQnNCY0KDQmtCeCivQkNCU0JDQnNCe0JLQmNCLINCc0JjQoNCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JTQkNCc0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CQ0JTQkNCc0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9CQ0JTQkNCc0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQkNCU0JDQnNCe0JLQmNCLINCh0J7QitCQCivQkNCU0JDQnNCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CQ0JTQkNCc0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JDQlNCQ0JzQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCU0JDQnNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0JTQkNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JDQlNCV0JzQmCDQk9Ce0KDQlNCQ0J3QkAor0JDQlNCV0JzQmCDQmNCc0JXQoAor0JDQlNCV0JzQntCSINCa0JXQnNCQ0JsKK9CQ0JTQldCc0J7QktCY0Isg0IjQo9Ch0KPQpAor0JDQlNCV0JzQntCS0JjQiyDQntCh0JzQkNCdCivQkNCU0JvQldCo0JjQiyDQidCj0JHQmNCm0JAKK9CQ0JTQndCQ0ILQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkNCU0J7QoCDQiNCe0JLQkNCdCivQkNCT0JDQoNCh0JrQmCDQiNCQ0J0g0JTQoAor0JDQk9CQ0KLQmNCLINCc0JDQotCVCivQkNCT0JDQotCY0Isg0JzQmNCg0JrQngor0JDQk9CQ0KLQmNCLINCS0JXQm9CY0JzQmNCgCivQkNCT0JHQkNCR0JAg0JHQoNCQ0J3QmtCQCivQkNCT0JHQkNCR0JAg0JTQkNCd0JUKK9CQ0JPQkdCQ0JHQkCDQlNCQ0J3QmNCm0JAKK9CQ0JPQkdCQ0JHQkCDQlNCQ0J3QmNCb0J4KK9CQ0JPQkdCQ0JHQkCDQlNCj0KjQkNCdCivQkNCT0JHQkNCR0JAg0IjQntCS0JDQnQor0JDQk9CR0JDQkdCQINCd0JXQlNCV0InQmtCQCivQkNCT0JHQkNCR0JAg0J3QldCU0JXQidCa0J4KK9CQ0JPQkdCQ0JHQkCDQndCY0JrQntCb0JAg0JTQoAor0JDQk9CR0JDQkdCQINCd0JjQmtCe0JvQkAor0JDQk9CR0JDQkdCQINCS0JjQlNCQCivQkNCT0JjQiyDQnNCQ0KDQmtCeCivQkNCT0JjQiyDQndCQ0JTQkAor0JDQk9CY0Isg0J3QmNCa0J7Qm9CQ0IgKK9CQ0JPQmNCLINCd0JjQmtCe0JvQkAor0JDQk9CY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQntCV0KYKK9CQ0JPQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9CQ0JPQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CQ0JPQniDQnNCQ0KDQmtCeCivQkNCT0J4g0JfQntCg0JjQptCQCivQkNCT0J7QpyDQlNCj0KjQkNCdCivQkNCT0J7QqNCi0J7QnSDQkdCV0JvQkAor0JDQk9Ce0KjQotCe0J0g0KTQldCg0JXQndCmCivQkNCT0J7QqNCi0J7QnSDQmtCQ0KDQntCJCivQkNCT0J7QqNCi0J7QnSDQm9CQ0KHQm9CeCivQkNCT0J7QqNCi0J7QnSDQnNCY0KXQkNCJCivQkNCT0J7QqNCi0J7QnSDQktCV0KDQkAor0JDQk9Cg0JDQnNCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQkNCT0KDQkNCc0J7QktCY0Isg0KDQkNCU0JUKK9CQ0JPQo9Co0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CQ0JPQo9Cm0JjQiyDQntCb0JPQmNCm0JAKK9CQ0KXQnNCV0JQg0JXQm9CV0JcKK9CQ0KXQnNCV0KLQntCSINCo0KPQmtCg0JgKK9CQ0KXQnNCV0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQkNCl0JzQldCi0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkNCl0JzQldCi0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQkNCY0KDQkNCb0JTQmCDQkdCe0JbQmNCU0JDQoAor0JDQiCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0Igg0JLQldCh0J3QkAor0JDQiNCQ0J3QntCS0JjQiyDQodCQ0JvQmtCeCivQkNCI0KbQldCSINCU0KPQqNCQ0J0KK9CQ0IjQj9CQ0J3QntCS0JjQiyDQkNCd0JDQodCi0JDQodCY0IjQkCDQlNCgINCb0JXQmtCQ0KAKK9CQ0IjQlNCQ0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CQ0IjQlNCV0KAg0JbQldCJ0JrQngor0JDQiNCU0JXQoCDQkdCe0KjQmtCeCivQkNCI0JTQldCgINCU0JDQndCY0KbQkAor0JDQiNCU0JjQiyDQgtCe0KDQgtCVCivQkNCI0JTQmNCd0Jgg0KHQkNCR0KDQmNCI0JAKK9CQ0IjQlNCY0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CQ0IjQlNCj0Jog0IjQntCh0JjQnAor0JDQiNCU0KPQmiDQnNCQ0KDQmtCeCivQkNCI0JTQo9CaINCc0JjQm9CY0KbQkAor0JDQiNCU0KPQmiDQotCe0KjQkAor0JDQiNCU0KPQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CQ0IjQlNCj0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9CQ0IjQlNCj0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCI0JTQo9Ca0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkNCI0JPQldCd0JzQkNCl0KIg0JzQkNCg0JjQndCQCivQkNCI0JrQo9Cd0JjQiyDQkNCU0JjQmwor0JDQiNCa0KPQndCY0Isg0J3QldCX0JjQoAor0JDQiNCg0JDQndCe0JLQmNCLINCI0KPQodCj0KQKK9CQ0IjQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkNCI0KLQm9CR0JXQlyDQnNCY0IjQkNCiCivQkNCI0KLQm9CR0JXQlyDQnNCY0IjQkNCiCivQkNCI0JLQkNCX0J7QktCY0Isg0JDQi9CY0KQKK9CQ0IjQktCQ0JfQntCS0JjQiyDQkNCh0JvQkNCdCivQkNCI0JLQkNCX0J7QktCY0Isg0JXQodCc0JAKK9CQ0IjQktCQ0JfQntCS0JjQiyDQpNCQ0JjQlAor0JDQiNCS0JjQm9CV0KAg0KHQotCV0JLQkNCdCivQkNCI0JfQldCd0JHQldCg0JPQldCgINCR0JXQm9CQCivQkNCa0KjQkNCc0J7QktCY0Isg0J/Qm9CQ0JLQqNCQCivQkNCa0JjQmiDQlNCg0JDQk9CY0KbQkAor0JDQmtCY0Jog0JTQo9Co0JDQnQor0JDQmtCY0J0g0JTQoNCQ0JPQkAor0JDQmtCY0J0g0KHQntCk0JjQiNCQCivQkNCa0J7QndCn0JjQiyDQl9Ce0KDQkNCdCivQkNCa0KDQkNCfINCk0JjQm9CY0J8g0J/QoNCe0KQKK9CQ0JrQoNCQ0J/QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCa0KHQldCd0KLQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JDQmtCh0JXQndCi0JjQiNCV0JLQmNCLINCd0JjQmtCe0JvQkCDQodCj0JTQmNCI0JAKK9CQ0JrQodCV0J3QotCY0IjQldCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQkNCa0KHQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JDQmtCh0JjQnSDQnNCY0JvQntCS0JDQnQor0JDQmtCh0JjQnSDQktCb0JDQlNCY0JzQmNCgINCU0KAg0JjQndCTCivQkNCb0JDQgtCYINCo0JDQndCU0J7QoAor0JDQm9CQ0JHQkNCo0J7QktCh0JrQmCDQk9Cg0KPQiNCQCivQkNCb0JDQkdCQ0KjQntCS0KHQmtCYINCY0JHQoNCQ0KXQmNCcCivQkNCb0JDQkdCj0KDQmNCLINCf0JDQktCb0JUKK9CQ0JvQkNCR0KPQoNCY0Isg0KLQldCe0JTQntCgINCU0JjQn9CbINCY0J3Qkwor0JDQm9CQ0I/QmNCLINCC0J7QoNCC0J4KK9CQ0JvQkNCU0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQm9CQ0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCb0JDQlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CQ0JvQkNCU0JjQiyDQmNCU0JAKK9CQ0JvQkNCU0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JvQkNCT0JjQiyDQlNCj0KjQkNCdCivQkNCb0JDQk9CY0Isg0JzQo9CI0J4KK9CQ0JvQkNCT0JjQiyDQndCQ0JTQkAor0JDQm9CQ0JPQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CQ0JvQkNCT0JjQiyDQktCV0KDQkAor0JDQm9CQ0JjQptCQINCg0JDQlNCe0IjQmtCQCivQkNCb0JDQiNCY0KbQkCDQkdCg0JDQndCa0J4KK9CQ0JvQkNCI0JjQptCQINCI0J7QktCeCivQkNCb0JDQnSDQktCV0KDQkAor0JDQm9CQ0J3QntCSINCg0KPQltCY0KbQkAor0JDQm9CQ0KDQk9CY0Isg0IjQldCb0JXQndCQCivQkNCb0JDQoNCT0JjQiyDQnNCY0JvQmNCm0JAKK9CQ0JvQkNCg0JPQmNCLINCf0JXQotCQ0KAKK9CQ0JvQkNCg0JPQmNCLINCg0JDQlNCVCivQkNCb0JDQoNCT0JjQiyDQoNCQ0J3QmtCQCivQkNCb0JDQoNCT0JjQiyDQotCY0JzQkAor0JDQm9CQ0KHQntCSINCU0KDQkNCT0J7QodCb0JDQkgor0JDQm9CQ0KHQntCSINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0JjQndCTCivQkNCb0JDQktCQ0IrQkCDQnNCY0KDQiNCQ0J3QkAor0JDQm9CR0JjQiNCQ0J3QmNCLINCR0J7QoNCeCivQkNCb0JHQmNCI0JDQndCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JDQm9CR0J7QoiDQmNCb0JjQiNCQCivQkNCb0JHQoNCV0KXQoiDQiNCQ0J3QntCoCivQkNCb0JHQoNCV0KXQoiDQnNCQ0KDQmNCI0JAKK9CQ0JvQkdCg0JXQpdCiINCc0JDQoNCY0IjQkAor0JDQm9CR0KPQiSDQlNCY0JLQndCQCivQkNCb0JHQo9CJINCT0J7QoNCU0JDQndCQCivQkNCb0JHQo9CJINCS0JXQodCV0JvQmNCdCivQkNCb0JHQo9CJINCS0J7QiNCY0KHQm9CQ0JLQmtCQCivQkNCb0JXQmtCh0JDQndCU0JXQoCDQkNCd0JAKK9CQ0JvQldCa0KHQkNCd0JTQldCgINCg0KPQlNCe0JvQpAor0JDQm9CV0JrQodCQ0J3QlNCg0JjQiyDQnNCY0JvQldCh0JAg0JTQoAor0JDQm9CV0JrQodCQ0J3QlNCg0J7QkiDQodCb0JDQktCn0JAKK9CQ0JvQldCa0KHQkNCd0JTQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JDQm9CV0JrQodCQ0J3QlNCg0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQm9CV0JrQodCYINCh0KLQldCS0JDQnQor0JDQm9CV0JrQodCY0Isg0KfQkNCh0JvQkNCSCivQkNCb0JXQmtCh0JjQiyDQp9CV0JTQntCc0JjQoAor0JDQm9CV0JrQodCY0Isg0JbQmNCS0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCC0J7QoNCC0JUKK9CQ0JvQldCa0KHQmNCLINCC0KPQoNCQCivQkNCb0JXQmtCh0JjQiyDQkNCm0JAKK9CQ0JvQldCa0KHQmNCLINCQ0JTQkNCcCivQkNCb0JXQmtCh0JjQiyDQkNCg0KHQkAor0JDQm9CV0JrQodCY0Isg0JHQmNCh0JXQoNCa0JAKK9CQ0JvQldCa0KHQmNCLINCR0J7QltCY0JTQkNCgCivQkNCb0JXQmtCh0JjQiyDQkdCe0JbQmNCU0JDQoAor0JDQm9CV0JrQodCY0Isg0JHQntCT0JTQkNCdCivQkNCb0JXQmtCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0JvQldCa0KHQmNCLINCR0KDQkNCd0JrQngor0JDQm9CV0JrQodCY0Isg0JHQoNCQ0J3QmtCeCivQkNCb0JXQmtCh0JjQiyDQkdCg0JDQndCa0J4KK9CQ0JvQldCa0KHQmNCLINCR0KPQlNCY0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQlNCQ0J3QmNCm0JAKK9CQ0JvQldCa0KHQmNCLINCU0JDQoNCY0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0JAKK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgCivQkNCb0JXQmtCh0JjQiyDQlNCj0KjQkNCdCivQkNCb0JXQmtCh0JjQiyDQlNCj0KjQkNCdCivQkNCb0JXQmtCh0JjQiyDQldCS0JjQptCQCivQkNCb0JXQmtCh0JjQiyDQk9Ce0IjQmtCeCivQkNCb0JXQmtCh0JjQiyDQk9Ce0KDQkNCdCivQkNCb0JXQmtCh0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JDQm9CV0JrQodCY0Ist0JPQoNCY0KHQldCgINCd0JjQmtCe0JvQkAor0JDQm9CV0JrQodCY0Isg0JjQm9CY0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQmNCS0JDQnQor0JDQm9CV0JrQodCY0Isg0IjQldCb0JXQndCQCivQkNCb0JXQmtCh0JjQiyDQiNCV0JvQmNCm0JAKK9CQ0JvQldCa0KHQmNCLINCI0JXQm9CY0KbQkAor0JDQm9CV0JrQodCY0Isg0IjQntCh0JjQnwor0JDQm9CV0JrQodCY0Isg0IjQntCS0JDQnQor0JDQm9CV0JrQodCY0Isg0IjQntCS0J4KK9CQ0JvQldCa0KHQmNCLINCa0JDQotCQCivQkNCb0JXQmtCh0JjQiyDQmtCQ0KLQmNCm0JAKK9CQ0JvQldCa0KHQmNCLINCa0JDQotCY0KbQkAor0JDQm9CV0JrQodCY0Isg0JrQntCh0JAKK9CQ0JvQldCa0KHQmNCLINCa0J7QodCi0JAKK9CQ0JvQldCa0KHQmNCLINCa0J7QodCi0JAKK9CQ0JvQldCa0KHQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CQ0JvQldCa0KHQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CQ0JvQldCa0KHQmNCLINCJ0JjQidCQ0J3QkAor0JDQm9CV0JrQodCY0Isg0InQmNCJ0JDQndCQCivQkNCb0JXQmtCh0JjQiyDQidCj0JHQmNCo0JAKK9CQ0JvQldCa0KHQmNCLINCJ0KPQotCe0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQnNCQ0KDQmNCdCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQkNCd0JrQkAor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JXQndCQCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQmNCd0JrQkAor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9CY0JLQntCICivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCoCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCoCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCoCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCI0JUKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCS0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CQ0JvQldCa0KHQmNCLINCc0JjQntCU0KDQkNCTCivQkNCb0JXQmtCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQm9CV0JrQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0JvQldCa0KHQmNCLINCc0JjQoNCa0J4KK9CQ0JvQldCa0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CQ0JvQldCa0KHQmNCLINCc0J7QnNCn0JjQm9CeCivQkNCb0JXQmtCh0JjQiyDQnNCe0JzQp9CY0JvQngor0JDQm9CV0JrQodCY0Isg0JzQntCc0JjQoAor0JDQm9CV0JrQodCY0Isg0J3QkNCU0JAKK9CQ0JvQldCa0KHQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9CQ0JvQldCa0KHQmNCLINCd0JXQkdCe0IjQqNCQCivQkNCb0JXQmtCh0JjQiyDQndCY0JrQntCb0JAKK9CQ0JvQldCa0KHQmNCLINCd0JjQmtCe0JvQkAor0JDQm9CV0JrQodCY0Isg0J/QkNCj0JvQmNCd0JAKK9CQ0JvQldCa0KHQmNCLINCf0JDQktCb0JUKK9CQ0JvQldCa0KHQmNCLINCf0JXQotCQ0KAKK9CQ0JvQldCa0KHQmNCLINCf0JXQotCQ0KAKK9CQ0JvQldCa0KHQmNCLINCf0JXQotCQ0KAKK9CQ0JvQldCa0KHQmNCLINCf0KDQldCU0KDQkNCTCivQkNCb0JXQmtCh0JjQiyDQoNCQ0JTQlQor0JDQm9CV0JrQodCY0Isg0KDQkNCU0JzQmNCb0JAKK9CQ0JvQldCa0KHQmNCLINCg0JDQlNCe0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQoNCQ0IjQmtCeCivQkNCb0JXQmtCh0JjQiyDQoNCQ0KLQmtCeCivQkNCb0JXQmtCh0JjQiyDQoNCQ0KLQmtCeCivQkNCb0JXQmtCh0JjQiyDQoNCY0KHQotCeCivQkNCb0JXQmtCh0JjQiyDQodCQ0JLQngor0JDQm9CV0JrQodCY0Isg0KHQm9CQ0JLQndCQCivQkNCb0JXQmtCh0JjQiyDQodCc0JjQidCQCivQkNCb0JXQmtCh0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JvQldCa0KHQmNCLINCh0KLQldCS0JDQnQor0JDQm9CV0JrQodCY0Isg0JLQkNCh0JAKK9CQ0JvQldCa0KHQmNCLINCS0JXQoNCQCivQkNCb0JXQmtCh0JjQiyDQktCV0KDQkAor0JDQm9CV0JrQodCY0Isg0JLQldCh0J3QkAor0JDQm9CV0JrQodCY0Isg0JLQmNCi0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JDQm9CV0JrQodCY0Isg0JLQntCI0JjQodCb0JDQkgor0JDQm9CV0JrQodCY0Isg0JfQlNCg0JDQktCV0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQm9CV0JrQodCY0Isg0JfQm9CQ0KLQmNCR0J7QoAor0JDQm9CV0JrQodCY0Isg0JfQntCg0JDQnQor0JDQm9CV0JrQodCY0IjQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CQ0JvQldCa0KHQmNCI0JXQktCY0Isg0JHQntCg0JAKK9CQ0JvQldCa0KHQmNCI0JXQktCY0Isg0JjQodCY0JTQntCgCivQkNCb0JXQmtCh0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JvQldCa0KHQmNCI0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQkNCb0JXQmtCh0J7QkiDQk9CV0J7QoNCT0JgKK9CQ0JvQldCa0KHQntCSINCc0JjQm9Cj0KLQmNCdCivQkNCb0JXQmtCh0J7QkiDQodCY0JzQldCe0J0KK9CQ0JvQldCa0KHQntCSINCX0J7QoNCQ0J0KK9CQ0JvQldCa0KHQntCS0KHQmtCYINCc0JjQm9CVCivQkNCb0JXQmtCh0J7QktCh0JrQmCDQodCg0JHQntCJ0KPQkQor0JDQm9CV0JzQn9CY0Isg0KHQkNCS0J4KK9CQ0JvQldCc0J/QmNCI0JXQktCY0Isg0JfQntCg0JDQnQor0JDQm9CV0JzQn9CY0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQkNCb0JXQndCU0JXQoCDQqNCV0KTQmNCaCivQkNCb0Jgg0IjQo9Cb0JjQodCi0JDQnQor0JDQm9CY0KjQmNCLINCR0JXQodCY0JwKK9CQ0JvQmNCo0JjQiyDQndCY0IjQkNCXCivQkNCb0JjQqNCY0Isg0KDQldCP0JXQnwor0JDQm9CY0KjQmNCLINCS0JDQodCS0JjQiNCQCivQkNCb0JjQgtCj0JrQmNCLINCY0JvQmNCI0JAKK9CQ0JvQmNCR0JDQqNCY0Isg0KXQkNCc0JjQlAor0JDQm9CY0IjQkCDQkNCR0JTQmNCg0JDQpdCc0JDQnQor0JDQm9CY0IjQkCDQmNCX0JXQogor0JDQm9CY0IjQldCS0JjQiyDQndCV0JfQmNCgCivQkNCb0JjQiNCV0JLQmNCLINCh0JDQlNCg0JjQiNCQCivQkNCb0JjQm9Ce0JLQmNCLINCS0JjQndCa0J4KK9CQ0JvQmNCc0J/QmNCLINCW0JjQktCa0J4KK9CQ0JvQmNCc0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCb0JjQnNCf0JjQiyDQkdCQ0KDQkdCQ0KDQkAor0JDQm9CY0JzQn9CY0Isg0JHQntCT0J7QnNCY0KAKK9CQ0JvQmNCc0J/QmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0JvQmNCc0J/QmNCLINCU0KDQkNCT0JDQnQor0JDQm9CY0JzQn9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CQ0JvQmNCc0J/QmNCLINCI0JXQm9CQCivQkNCb0JjQnNCf0JjQiyDQiNCe0JLQkNCdCivQkNCb0JjQnNCf0JjQiyDQidCj0JHQmNCm0JAKK9CQ0JvQmNCc0J/QmNCLINCc0J7QnNCn0JjQm9CeCivQkNCb0JjQnNCf0JjQiyDQodCb0JDQktCa0JAKK9CQ0JvQmNCc0J/QmNCLINCh0JvQkNCS0JrQngor0JDQm9CY0JzQn9CY0Isg0KHQotCV0JLQkNCdCivQkNCb0JjQnNCf0JjQiyDQotCY0KXQntCc0JjQoAor0JDQm9CY0JzQn9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JDQm9CY0JzQn9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JDQm9CY0JzQn9CY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQkNCb0JjQnNCf0JjQiNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQm9CY0JzQn9CY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQkNCb0JjQnNCf0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JvQmNCc0J/QmNCI0JXQktCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQkNCb0JjQntCSINCl0KPQodCV0JjQnQor0JDQm9CY0J7QkiDQntCc0JXQoAor0JDQidCYINCQ0IjQoNCQ0JTQmNCdCivQkNCJ0Jgg0JzQkNCa0KHQo9CiCivQkNCJ0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQkNCJ0JjQiyDQoNCQ0JzQngor0JDQidCY0IjQo9Cf0Jgg0KfQldCg0JjQnAor0JDQm9Ca0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JvQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JDQm9Cc0JDQqNCYINCV0KLQldCbCivQkNCb0JzQkNCo0Jgg0JzQkNCg0JjQqNCa0JAKK9CQ0JvQnNCQ0KjQmCDQnNCQ0KLQmNCI0JAKK9CQ0JvQnNCQ0KjQmCDQodCQ0JzQo9CV0JsKK9CQ0JvQnNCQ0JbQkNCdINCh0JvQkNCS0JrQniDQndCe0JLQmNCd0JDQoAor0JDQm9Ce0KDQmNCLINCU0KDQkNCT0J7QnNCY0KDQmtCQCivQkNCb0J7QoNCY0Isg0JjQm9CY0IjQkAor0JDQm9Ci0JXQoNCe0JIg0JDQndCQCivQkNCb0KLQmtCe0KDQnSDQnNCQ0JvQktCY0J3QkAor0JDQm9CS0JDQj9CY0J0g0JTQoNCQ0JPQo9Ci0JjQnQor0JDQm9CS0JjQoNCe0JLQmNCLINCU0KDQkNCT0J7QoNCQ0JQKK9CQ0JvQktCY0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQnNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCc0JDQnNCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JDQnNCR0JDQoNCP0JjQiNCV0JIg0KXQoNCY0KHQotCeCivQkNCc0JHQniDQmNCb0JjQiNCQCivQkNCc0JHQoNCe0JfQmNCLINCg0JDQodCi0JrQngor0JDQnNCR0KDQo9CoINCQ0KLQmNCb0JAKK9CQ0JzQkdCg0KPQqNCY0Isg0JzQkNCT0JTQkAor0JDQnNCR0KDQo9Ch0J7QkiDQiNCe0JLQkNCdCivQkNCc0JXQotCe0JIg0J7QodCc0JDQnQor0JDQnNCV0KLQntCS0JjQiyDQgtCe0KDQgtCVCivQkNCc0JXQotCe0JLQmNCLINCC0J7QoNCC0J4KK9CQ0JzQldCi0J7QktCY0Isg0ILQo9Cg0J4KK9CQ0JzQldCi0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CQ0JzQldCi0J7QktCY0Isg0IjQldCb0JXQndCQCivQkNCc0JXQotCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JzQldCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQkNCc0JXQotCe0JLQmNCLINCb0JDQl9CQ0KAKK9CQ0JzQldCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQnNCV0KLQntCS0JjQiyDQnNCQ0KDQmtCeCivQkNCc0JXQotCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkNCc0JXQotCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCc0JXQotCe0JLQmNCLINCc0JjQoNCa0J4KK9CQ0JzQldCi0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JzQldCi0J7QktCY0Isg0KDQkNCI0JrQngor0JDQnNCV0KLQntCS0JjQiyDQoNCQ0KLQmtCeCivQkNCc0JXQotCe0JLQmNCLINCg0KPQodCc0JjQoNCQCivQkNCc0JXQotCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JDQnNCV0KLQntCS0JjQiyDQktCe0IjQmNCdCivQkNCc0JjQltCY0Isg0JTQkNCd0JjQptCQCivQkNCc0JjQltCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQnNCY0JbQmNCLINCi0JXQntCU0J7QoNCQCivQkNCd0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkNCd0KfQmNCLINCc0JjQm9CQ0J0KK9CQ0J3Qp9CY0Isg0J3QldCS0JXQndCa0JAg0JTQoAor0JDQndCC0JXQm9CY0Isg0JDQndCC0JXQm9Ca0J4KK9CQ0J3QgtCV0JvQmNCLINCQ0J3QlNCg0JjQiNCQCivQkNCd0ILQldCb0JjQiyDQkNCd0JjQptCQCivQkNCd0ILQldCb0JjQiyDQkdCY0InQkNCd0JAKK9CQ0J3QgtCV0JvQmNCLINCR0JvQkNCT0JjQqNCQCivQkNCd0ILQldCb0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCgCivQkNCd0ILQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkNCd0ILQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkNCd0ILQldCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0J3QgtCV0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQkNCd0ILQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JDQndCC0JXQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JDQndCC0JXQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9CQ0J3QgtCV0JvQmNCLINCT0J7QoNCQ0J0KK9CQ0J3QgtCV0JvQmNCLINCY0JvQmNCI0JAKK9CQ0J3QgtCV0JvQmNCLINCY0JvQmNCI0JAKK9CQ0J3QgtCV0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQkNCd0ILQldCb0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkNCd0ILQldCb0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQndCC0JXQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0J3QgtCV0JvQmNCLINCc0JjQoNCI0JDQndCQCivQkNCd0ILQldCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQndCC0JXQm9CY0Isg0JzQmNCi0JDQoAor0JDQndCC0JXQm9CY0Isg0J3QmNCa0J7Qm9CQCivQkNCd0ILQldCb0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JDQndCC0JXQm9CY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JDQndCC0JXQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JDQndCC0JXQm9CY0Isg0KHQkNCS0JAKK9CQ0J3QgtCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQkNCd0ILQldCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0ILQldCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0ILQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CQ0J3QgtCV0JvQmNCLINCS0JDQodCQCivQkNCd0ILQldCb0JjQiyDQktCQ0KHQngor0JDQndCC0JXQm9CY0Isg0JLQldCJ0JrQngor0JDQndCC0JXQm9CY0Isg0JLQldCh0JXQm9CY0J0KK9CQ0J3QgtCV0JvQmNCLINCS0JXQodCd0JAKK9CQ0J3QgtCV0JvQmNCLINCS0JvQkNCU0JAKK9CQ0J3QgtCV0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQkNCd0ILQldCb0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JDQndCC0JXQm9Ca0J7QktCY0Ist0JTQo9CU0JjQiyDQl9Cb0JDQotCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCb0JjQlNCY0IjQkAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0InQo9CR0JjQqNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0JvQntCoCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQndCC0JXQm9Ca0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQkNCd0ILQldCb0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCg0J7QkdCV0KDQogor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQmNCc0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkNCd0ILQldCb0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkNCd0ILQldCb0JrQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCV0KDQkAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQmNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQmNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQmNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQo9Ca0JDQlNCY0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCX0J7QoNCQCivQkNCd0ILQldCb0J7QktCY0Isg0InQo9CR0JjQqNCQCivQkNCd0ILQldCb0J7QktCY0Isg0JLQldCg0JjQptCQCivQkNCd0ILQldCb0J7QktCh0JrQmCDQgtCe0KDQgtCVCivQkNCd0ILQmNCLINCh0KLQldCS0JDQnQor0JDQndCC0KPQqNCY0Isg0JbQkNCg0JrQngor0JDQndCC0KPQqNCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQkNCd0ILQo9Co0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQndCC0KPQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCQ0KHQotCQ0KHQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JDQndCQ0KHQotCQ0KHQmNCI0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9CQ0J3QkNCh0KLQkNCh0JjQiNCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JDQndCQ0KHQotCQ0KHQmNCI0JXQktCY0Isg0JfQntCg0JjQptCQCivQkNCd0JDQodCi0JDQodCe0JIg0JzQkNCg0JrQngor0JDQndCQ0KHQotCQ0KHQntCSINCd0JjQmtCe0JvQkAor0JDQndCQ0KHQotCQ0KHQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0JDQoyDQk9CQ0JHQoNCY0JXQm9CQCivQkNCd0JDQoyDQodCi0JXQktCQ0J0KK9CQ0J3QlNCQ0JHQkNCaINCc0JDQoNCa0J4KK9CQ0J3QlNCQ0JHQkNCa0JAg0JDQndCi0JUKK9CQ0J3QlNCQ0JHQkNCa0JAg0KHQm9CQ0JLQmNCm0JAKK9CQ0J3QlNCV0KAg0JjQnNCg0JUKK9CQ0J3QlNCV0KDQm9Ce0J0g0KHQotCV0JLQmNCm0JAKK9CQ0J3QlNCV0KHQldCb0JjQiyDQqNCi0JXQpNCY0KbQkAor0JDQndCU0JXQktCh0JrQmCDQoNCQ0JTQlQor0JDQndCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkNCd0JTQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CQ0J3QlNCe0J3QmNCQ0JTQmNChINCc0JjQm9CY0KbQkAor0JDQndCU0J7QndCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCd0JTQntCd0J7QkiDQndCV0J3QkNCUCivQkNCd0JTQntCd0J7QkiDQl9Ce0KDQmNCm0JAKK9CQ0J3QlNCe0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0J3QlNCg0JDQqNCY0Jog0J/QkNCS0JXQmwor0JDQndCU0KDQldCQ0KLQkCDQodCb0JDQktCa0J4KK9CQ0J3QlNCg0JXQmNCLINCg0JDQlNCe0JLQkNCdCivQkNCd0JTQoNCV0IjQldCSINCl0JXQm9CV0J3QkAor0JDQndCU0KDQldCI0JXQkiDQnNCY0KXQkNCI0JvQngor0JDQndCU0KDQldCI0JXQktCY0Isg0JHQntCT0J7QodCQ0JIKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCY0JLQkNCdCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQnNCQ0KDQmtCeCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQotCV0J7QlNCe0KAKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCS0KPQmtCQ0KjQmNCdINCU0JjQn9CbINCY0J3Qkwor0JDQndCU0KDQldCI0JjQiyDQltCQ0KDQmtCeCivQkNCd0JTQoNCV0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CQ0J3QlNCg0JXQiNCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0JTQoNCV0IjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CQ0J3QlNCg0JXQiNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JDQndCU0KDQldCI0JjQiyDQodCg0JXQotCV0J0KK9CQ0J3QlNCg0JXQiNCY0Isg0JLQldCg0JAKK9CQ0J3QlNCg0JXQiNCY0Isg0JfQntCg0JDQnQor0JDQndCU0KDQldCI0JjQiyDQl9Ce0KDQmNCm0JAKK9CQ0J3QlNCg0JXQoSDQkNCd0ILQldCb0JrQngor0JDQndCU0KDQmNCn0JXQmiDQkNCd0JAKK9CQ0J3QlNCg0JjQp9CV0Jog0JvQkNCI0J7QqAor0JDQndCU0KDQmNCn0JXQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CQ0J3QlNCg0JjQp9CV0Jog0J/QkNCS0JDQngor0JDQndCU0KDQmNCn0JXQmiDQn9CQ0JLQm9CVCivQkNCd0JTQoNCY0Isg0JbQldCJ0JrQkAor0JDQndCU0KDQmNCLINCW0JjQmtCQCivQkNCd0JTQoNCY0Isg0JbQmNCS0JDQnQor0JDQndCU0KDQmNCLINCC0J7QoNCC0JUKK9CQ0J3QlNCg0JjQiyDQgtCj0KDQgtCY0J3QkAor0JDQndCU0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0JTQoNCY0Isg0JHQntCT0J7QidCj0JEKK9CQ0J3QlNCg0JjQiyDQkdCe0IjQkNCdCivQkNCd0JTQoNCY0Isg0JHQntCh0JjQidCa0JAKK9CQ0J3QlNCg0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQkNCd0JTQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCd0JTQoNCY0Isg0JTQkNCg0JjQndCa0JAKK9CQ0J3QlNCg0JjQiyDQlNCe0KHQotCQCivQkNCd0JTQoNCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0JTQoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JDQndCU0KDQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QlNCg0JjQiyDQlNCj0KjQkNCdCivQkNCd0JTQoNCY0Isg0JTQo9Co0JDQnQor0JDQndCU0KDQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QlNCg0JjQiyDQlNCj0KjQkNCdCivQkNCd0JTQoNCY0Isg0KTQoNCY0JTQkAor0JDQndCU0KDQmNCLINCY0JvQmNCI0JAKK9CQ0J3QlNCg0JjQiyDQiNCV0JvQldCd0JAKK9CQ0J3QlNCg0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JDQndCU0KDQmNCLINCI0J7QktCY0KbQkAor0JDQndCU0KDQmNCLLdCa0J7QktCQ0KfQldCS0JjQiyDQntCb0JjQktCV0KDQkAor0JDQndCU0KDQmNCLINCb0JDQl9CQ0KAKK9CQ0J3QlNCg0JjQiyDQm9CQ0JfQkAor0JDQndCU0KDQmNCLINCJ0JjQidCQ0J3QkAor0JDQndCU0KDQmNCLINCJ0JjQidCQ0J3QkAor0JDQndCU0KDQmNCLINCb0KPQlNCc0JjQm9CQCivQkNCd0JTQoNCY0Isg0JzQmNCb0JUKK9CQ0J3QlNCg0JjQiyDQnNCY0JvQntCoCivQkNCd0JTQoNCY0Isg0JzQmNCb0J7QqAor0JDQndCU0KDQmNCLINCd0JXQkdCe0IjQqNCQCivQkNCd0JTQoNCY0Isg0J3QldCh0KLQntCgCivQkNCd0JTQoNCY0Isg0J3QmNCa0J7Qm9CQCivQkNCd0JTQoNCY0Isg0J/QldCg0JjQptCQCivQkNCd0JTQoNCY0Isg0J/QldCi0JDQoAor0JDQndCU0KDQmNCLINCg0JDQlNCY0KHQkNCSCivQkNCd0JTQoNCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JDQndCU0KDQmNCLINCh0JDQktCQCivQkNCd0JTQoNCY0Isg0KHQmNCc0JAKK9CQ0J3QlNCg0JjQiyDQodCb0JDQktCa0JAKK9CQ0J3QlNCg0JjQiyDQodCb0JDQktCa0JAKK9CQ0J3QlNCg0JjQiyDQodCb0JDQktCe0InQo9CRCivQkNCd0JTQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCU0KDQmNCLINCh0KLQldCS0JDQnQor0JDQndCU0KDQmNCLINCh0KLQldCS0JDQnQor0JDQndCU0KDQmNCLINCi0J7QlNCe0KAKK9CQ0J3QlNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCd0JTQoNCY0Isg0JLQldCg0JjQptCQCivQkNCd0JTQoNCY0Isg0JLQm9CQ0JTQkAor0JDQndCU0KDQmNCLINCS0JvQkNCU0JjQnNCY0KDQkAor0JDQndCU0KDQmNCLINCS0KPQmtCe0JzQkNCdCivQkNCd0JTQoNCY0Isg0JfQntCg0JAKK9CQ0J3QlNCg0JjQk9CQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0JTQoNCY0IjQkNCo0JXQkiDQmtCe0KHQkNCd0JAKK9CQ0J3QlNCg0JjQiNCQ0KjQldCSINCg0KPQltCY0KbQkAor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCW0JXQidCa0J4KK9CQ0J3QlNCg0JjQiNCQ0KjQldCS0JjQiyDQkNCd0JrQkAor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkNCd0JTQoNCY0IjQldCS0JjQiyDQltCY0JLQkAor0JDQndCU0KDQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JDQndCU0KDQmNCdINCQ0J3QgtCV0JvQmtCQCivQkNCd0JTQoNCY0J0g0JjQodCY0JTQntCgCivQkNCd0JTQoNCY0J0g0JrQkNCi0JjQptCQCivQkNCd0JTQoNCY0J0g0JzQmNCb0JDQlNCY0J3QmtCQCivQkNCd0JTQoNCY0J0g0J3QkNCU0JAKK9CQ0J3QlNCg0J7QptCa0Jgg0J/QkNCbINCU0JjQn9CbINCY0J3Qkwor0JDQndCU0KPQm9CQ0IjQldCS0JjQiyDQodCi0JXQktCeCivQkNCd0JPQldCR0KDQkNCd0KIg0JjQm9Ce0J3QmtCQCivQkNCd0JPQldCb0JXQodCa0Jgg0JLQkNCd0JPQldCbCivQkNCd0JPQldCb0J7QkiDQlNCj0KjQkNCdCivQkNCd0JPQldCb0J7QkiDQodCg0JXQi9Ca0J4KK9CQ0J3Qk9CV0JvQntCS0KHQmtCYINCU0KPQqNCQ0J0KK9CQ0J3Qk9CV0JvQntCS0KHQmtCYINCY0JvQmNCI0JAKK9CQ0J3Qk9CV0JvQntCS0KHQmtCYINCI0JDQndCU0KDQlQor0JDQndCT0JXQm9Ce0JLQodCa0Jgg0JzQmNCi0KDQlQor0JDQndCT0JXQm9Ce0JLQodCa0Jgg0KLQntCc0J4KK9CQ0J3QmNCn0JjQiyDQltCY0JLQntCi0JAKK9CQ0J3QmNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0J3QmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0J3QmNCn0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCe0JXQpgor0JDQndCY0KfQmNCLINCk0JjQm9CY0J8KK9CQ0J3QmNCn0JjQiyDQmNCb0JjQiNCQCivQkNCd0JjQp9CY0Isg0JrQntCS0JjQndCa0JAKK9CQ0J3QmNCn0JjQiyDQnNCY0JvQldCd0JAg0JTQmNCf0Jsg0JXQptCmCivQkNCd0JjQp9CY0Isg0JzQmNCg0JrQngor0JDQndCY0KfQmNCLINCc0JjQoNCeCivQkNCd0JjQp9CY0Isg0JzQmNCg0J4KK9CQ0J3QmNCn0JjQiyDQndCV0J3QkNCUCivQkNCd0JjQp9CY0Isg0J7QodCi0J7QiNCQCivQkNCd0JjQp9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CQ0J3QmNCn0JjQiyDQodCi0JDQmtCQCivQkNCd0JjQp9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0JDQndCY0KfQmNCLINCi0J7QlNCe0KAKK9CQ0J3QmNCn0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQndCY0KfQmNCdINCW0JDQoNCa0J4KK9CQ0J3QmNCn0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0J3QmNCo0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQkNCd0JjQiyDQlNCj0KjQkNCdCivQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0JjQiyDQl9Ce0KDQkAor0JDQndCY0JrQkCDQk9CQ0JLQoNCY0JvQngor0JDQndCY0JrQkCDQiNCj0JvQmNCI0JUg0J/QoNCe0KTQldCh0J7QoAor0JDQndCY0KLQmNCLINCY0KjQotCS0JDQnQor0JDQndCa0JjQiyDQnNCQ0KDQiNCQ0J0KK9CQ0J3QmtCY0Isg0J/QldCg0JjQptCQCivQkNCd0J7QiNCn0JjQiyDQltCV0InQmtCeCivQkNCd0J7QiNCn0JjQiyDQm9CQ0JfQkNCgCivQkNCd0J7QiNCn0JjQiyDQnNCY0JvQkNCdCivQkNCd0J7QiNCn0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JDQndCe0IjQp9CY0Isg0KDQkNCU0JjQktCe0IgKK9CQ0J3QntCI0KfQmNCLINCh0J/QkNCh0J7QiNCVCivQkNCd0J7QiNCn0JjQiy3QodCi0J7QiNCa0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0JDQndCi0JDQmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQndCi0JDQmyDQktCV0KDQntCd0JAKK9CQ0J3QotCQ0J3QkNCh0JjQiyDQodCi0JDQndCa0J4KK9CQ0J3QotCQ0J3QkNCh0JjQiNCV0JLQmNCLINCR0J7QoNCQCivQkNCd0KLQldCJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0J3QotCY0Isg0ILQntCa0JAKK9CQ0J3QotCY0Isg0ILQntCg0ILQlQor0JDQndCi0JjQiyDQgtCe0KDQgtCVCivQkNCd0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0KLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CQ0J3QotCY0Isg0JHQntCo0JrQngor0JDQndCi0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQkNCd0KLQmNCLINCR0J7QltCY0JTQkNCgCivQkNCd0KLQmNCLINCR0KDQkNCd0JrQngor0JDQndCi0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CQ0J3QotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCd0KLQmNCLINCU0KDQkNCT0JDQnQor0JDQndCi0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0J3QotCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CQ0J3QotCY0Isg0JTQo9Co0JDQndCa0JAKK9CQ0J3QotCY0Isg0JTQo9Co0JDQndCa0JAKK9CQ0J3QotCY0Isg0IjQo9Cb0JrQkAor0JDQndCi0JjQiyDQmtCe0KHQotCQCivQkNCd0KLQmNCLINCJ0KPQkdCY0KjQkAor0JDQndCi0JjQiyDQm9Cj0JrQkAor0JDQndCi0JjQiyDQnNCQ0KDQmNCm0JAKK9CQ0J3QotCY0Isg0JzQkNCg0JjQiNCQCivQkNCd0KLQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QotCY0Isg0JzQmNCb0JDQnQor0JDQndCi0JjQiyDQnNCY0JvQkNCdCivQkNCd0KLQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QotCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0J3QotCY0Isg0JzQmNCb0KPQotCY0J0KK9CQ0J3QotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CQ0J3QotCY0Isg0JzQmNCg0JrQngor0JDQndCi0JjQiyDQnNCY0KDQmtCeCivQkNCd0KLQmNCLINCd0JXQndCQ0JQKK9CQ0J3QotCY0Isg0J3QldCS0JXQndCQCivQkNCd0KLQmNCLINCe0JvQk9CQCivQkNCd0KLQmNCLINCf0JDQktCb0JUKK9CQ0J3QotCY0Isg0J/QkNCS0JvQlQor0JDQndCi0JjQiyDQn9CQ0JLQm9CVCivQkNCd0KLQmNCLINCf0JXQotCQ0KAKK9CQ0J3QotCY0Isg0KDQkNCU0J7QiNCa0J4KK9CQ0J3QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9CQ0J3QotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CQ0J3QotCY0Isg0KHQm9CQ0ILQkNCd0JAKK9CQ0J3QotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CQ0J3QotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCi0JjQiyDQodCc0JjQidCQCivQkNCd0KLQmNCLINCh0JzQmNCJ0JAKK9CQ0J3QotCY0Isg0KHQntCk0JjQiNCQCivQkNCd0KLQmNCLINCh0KLQkNCd0KfQkAor0JDQndCi0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CQ0J3QotCY0Isg0KHQotCQ0J3QntCI0JUKK9CQ0J3QotCY0Isg0KHQotCe0IjQkNCdCivQkNCd0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JDQndCi0JjQiyDQodCS0JXQotCb0JDQndCQCivQkNCd0KLQmNCLINCh0JLQldCi0J7QktCY0JQKK9CQ0J3QotCY0Isg0JLQldCg0JjQptCQCivQkNCd0KLQmNCLINCS0KPQmtCQ0KjQmNCdCivQkNCd0KLQmNCLINCX0JDQk9Ce0KDQmtCQCivQkNCd0KLQmNCLINCX0JvQkNCi0JDQnQor0JDQndCi0JjQnSDQmNCS0JDQndCa0JAKK9CQ0J3QotCY0J0g0JLQldCb0JXQnNCY0KAKK9CQ0J3QotCe0JvQntCS0JjQiyDQmNCS0JDQnQor0JDQndCi0J7QndCY0Isg0JbQmNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CQ0J3QotCe0J3QmNCLINCW0JjQktCa0J4KK9CQ0J3QotCe0J3QmNCLINCC0J7QoNCC0JUKK9CQ0J3QotCe0J3QmNCLINCR0J7QoNCY0JLQntCICivQkNCd0KLQntCd0JjQiyDQkdCg0JDQndCa0J4KK9CQ0J3QotCe0J3QmNCLINCU0J7QkdCg0JjQktCe0IgKK9CQ0J3QotCe0J3QmNCLINCU0KDQkNCT0JDQnQor0JDQndCi0J7QndCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0KLQntCd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JDQndCi0J7QndCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JDQndCi0J7QndCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0JDQndCi0J7QndCY0Isg0IjQldCb0JXQndCQCivQkNCd0KLQntCd0JjQiyDQidCj0JHQmNCm0JAKK9CQ0J3QotCe0J3QmNCLINCc0JDQoNCY0IjQkAor0JDQndCi0J7QndCY0Isg0JzQmNCb0JDQnQor0JDQndCi0J7QndCY0Isg0JzQmNCb0JDQnQor0JDQndCi0J7QndCY0Isg0JzQmNCb0JDQnQor0JDQndCi0J7QndCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0J3QotCe0J3QmNCLINCd0JXQkdCe0IjQqNCQINCU0JjQn9CbINCY0J3Qkwor0JDQndCi0J7QndCY0Isg0KDQkNCU0JjQodCQ0JIKK9CQ0J3QotCe0J3QmNCLINCg0JDQndCa0J4KK9CQ0J3QotCe0J3QmNCLINCg0JDQotCa0J4KK9CQ0J3QotCe0J3QmNCLINCh0JjQnNCQCivQkNCd0KLQntCd0JjQiyDQodCb0JDQktCY0KbQkAor0JDQndCi0J7QndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCi0J7QndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCi0J7QndCY0Isg0KHQotCV0JLQkNCdCivQkNCd0KLQntCd0JjQiyDQl9Ce0KDQmtCQCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCR0JjQidCQ0J3QkAor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQkdCe0JbQo9CgCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQlNCQ0JzQitCQ0J0KK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0InQmNCJ0JAKK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQodCi0JXQktCQCivQkNCd0KLQntCd0JjQndCYINCc0JDQoNCY0IjQkAor0JDQndCi0J7QndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQkNCd0KLQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CQ0J3QotCj0J0g0JzQmNCb0J7QqAor0JDQndCi0KPQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQkNCd0KLQo9Cd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQkNCd0KLQo9Cd0J7QktCY0Isg0JPQmNCX0JXQm9CQCivQkNCd0KLQo9Cd0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQndCi0KPQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JDQndCi0KPQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkNCd0KLQo9Cd0J7QktCY0Isg0J3QldCU0JAKK9CQ0J3QotCj0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCd0KPQp9CY0J0g0J3QldCd0JDQlAor0JDQndCj0JrQmNCLINCa0J7QodCi0JAKK9CQ0J/QkNCg0JDQpiDQodCS0JXQotCe0JfQkNCgCivQkNCf0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0J/QkNCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQn9CQ0KLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CQ0J/QkNCi0J7QktCY0Isg0KHQkNCS0JAKK9CQ0J/QldCg0JvQmNCLINCS0J7QiNCY0J0KK9CQ0J/QmNCLINCC0J7QoNCC0JUKK9CQ0J/QmNCLINCQ0J3QmtCY0KbQkAor0JDQn9CY0Isg0JHQoNCQ0J3QmtCeINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0JDQn9CY0Isg0JHQoNCQ0J3QmtCeCivQkNCf0JjQiyDQlNCj0KjQkNCdCivQkNCf0JjQiyDQiNCj0JvQmtCQCivQkNCf0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQkNCf0JjQiyDQnNCY0JvQkNCdCivQkNCf0JjQiyDQnNCY0JvQkNCdCivQkNCf0JjQiyDQnNCY0JvQmNCm0JAKK9CQ0J/QmNCLINCc0JjQm9Ce0KgKK9CQ0J/QmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQn9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQn9CY0Isg0J7Qm9CY0JLQldCg0JAKK9CQ0J/QmNCLINCf0JDQiNCQCivQkNCf0JjQiyDQn9CQ0IjQkAor0JDQn9CY0Isg0KDQkNCU0JjQqNCa0J4KK9CQ0J/QmNCLINCg0JDQlNCY0JLQntCI0JUKK9CQ0J/QmNCLINCg0JDQotCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JDQn9CY0Isg0KHQoNCV0KLQkAor0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQkNCf0JjQiyDQodCi0J7QiNCQ0J0KK9CQ0J/QmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0J/QmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0J/QmNCLINCS0JXQoNCQCivQkNCf0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQn9CY0Isg0JfQntCg0JrQkAor0JDQn9Ce0KHQotCe0JvQntCSINCJ0KPQkdCe0JzQmNCgCivQkNCf0J7QodCi0J7Qm9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkNCf0J7QodCi0J7Qm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCf0KDQniDQpNCg0JDQitCQCivQkNCf0KDQniDQiNCQ0J3QntCoCivQkNCf0KDQniDQiNCe0JbQldCkCivQkNCf0KDQniDQm9CQ0KHQm9CeCivQkNCf0KDQniDQidCj0JHQntCc0JjQoAor0JDQn9Cg0J4g0KDQmNCl0JDQoNCUCivQkNCf0KDQni3QodCQ0JzQkNCg0I/QmNCI0JAg0JLQldCg0JAg0JTQoAor0JDQn9Cg0J4g0KHQotCV0JLQkNCdCivQkNCf0KDQniDQl9Ce0JvQotCQ0J0KK9CQ0J/QoiDQkdCe0JPQntCJ0KPQkQor0JDQn9CiINCc0JDQoNCa0J4KK9CQ0KDQqNCY0J3QntCSINCC0J7QoNCC0JUKK9CQ0KDQqNCY0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQkNCg0ILQldCb0JDQnC3QqNCg0JDQmiDQldCU0JjQogor0JDQoNCC0JXQm9CQ0J0g0JjQqNCi0JLQkNCdCivQkNCg0JDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQoNCQ0ILQkNCd0JjQnSDQotCY0JzQntCi0JjQiNCVCivQkNCg0JDQgtCQ0J3QodCa0Jgg0JrQkNCi0JjQptCQCivQkNCg0JDQgtCQ0J3QodCa0Jgg0J3QkNCU0JAKK9CQ0KDQkNCC0JDQndCh0JrQmC3QoNCQ0IjQmtCe0JIg0JzQkNCI0JAKK9CQ0KDQkNCm0JrQmCDQldCg0JbQmNCa0JAKK9CQ0KDQkNCm0JrQmNCLINCC0J7QoNCC0JUKK9CQ0KDQkNCm0JrQmNCLINCc0JjQm9CY0KbQkAor0JDQoNCQ0KbQmtCY0Isg0JfQm9CQ0KLQntCI0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CQ0KDQkNCU0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JDQoNCQ0JTQodCa0Jgg0JjQktCQ0J3QmtCQCivQkNCg0JDQlNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JDQoNCQ0JTQodCa0Jgg0JzQmNCi0JAKK9CQ0KDQkNCU0KHQmtCYINCg0JDQlNCY0JLQntCICivQkNCg0JDQlNCh0JrQmCDQodCe0KTQmNCI0JAKK9CQ0KDQkNCU0KHQmtCYINCh0KDQldCi0JXQndCa0JAKK9CQ0KDQkNCU0KHQmtCYINCh0KLQntCI0JDQndCa0JAKK9CQ0KDQkNCU0KHQmtCYINCX0JvQkNCi0JAKK9CQ0KDQkNCb0JjQptCQINCg0JDQiNCa0J4KK9CQ0KDQkNCc0JHQkNCo0JjQiyDQgtCe0KDQgtCVCivQkNCg0JDQnNCR0JDQqNCY0Isg0JTQoNCQ0JPQkNCdCivQkNCg0JDQndCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCQ0J3Qp9CY0Isg0JrQkNCg0JvQngor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0KDQkNCd0ILQldCb0J7QktCY0Isg0IrQldCT0J7QktCQ0J0KK9CQ0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQkNCS0JAKK9CQ0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQoNCV0KLQldCdCivQkNCg0JDQndCC0KPQoSDQkNCd0KLQntCdCivQkNCg0JDQndCY0KbQmtCYINCU0JjQndCa0JAKK9CQ0KDQkNCd0JjQptCa0Jgg0JPQm9CY0JPQntCg0JjQiNCVCivQkNCg0JDQndCY0KbQmtCYINCc0JjQm9CQ0J3QkAor0JDQoNCQ0J3QmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9CQ0KDQkNCd0JjQptCa0Jgg0JzQmNCb0J7QqCDQlNCgINCf0KDQntCkCivQkNCg0JDQndCY0KbQmtCYINCX0JDQk9Ce0KDQmtCQCivQkNCg0JDQndCY0KbQmtCYINCX0J7QoNCY0KbQkAor0JDQoNCQ0J3QmNCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQoNCQ0IrQntCoINCf0JDQmwor0JDQoNCQ0J/Qp9CY0Isg0J/QkNCo0JDQk9CQCivQkNCg0JDQn9CY0J3QkNCmINCc0JjQm9CY0KbQkAor0JDQoNCQ0J/QntCS0JjQiyDQlNCg0JDQk9CeCivQkNCg0JDQn9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CQ0KDQkNCgINCf0JXQotCQ0KAKK9CQ0KDQkNChINCR0KDQkNCd0JrQngor0JDQoNCQ0KEg0IjQo9CT0J7QodCb0JDQkgor0JDQoNCQ0KEg0InQo9CR0J4KK9CQ0KDQkdCV0KEg0J3QldCd0JDQlAor0JDQoNCR0KPQndCY0Isg0J/QldCg0JAKK9CQ0KDQkdCj0KLQmNCd0JAg0ILQo9Cg0ILQmNCd0JrQkAor0JDQoNCR0KPQotCY0J3QkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0KDQkdCj0KLQmNCd0JAg0JzQkNCg0JjQiNCQCivQkNCg0JHQo9Ci0JjQndCQINCd0JDQotCQ0JvQmNCI0JAKK9CQ0KDQkdCj0KLQmNCd0JAg0JLQldCb0JjQnNCY0KAKK9CQ0KDQkdCj0KLQmNCd0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JDQoNCP0J7QnSDQndCQ0KLQkNCb0JjQiNCQCivQkNCg0JTQkNCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0JDQoNCU0JDQm9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0JDQoNCU0JDQm9CY0Isg0KHQm9CQ0JLQmtCeCivQkNCg0JTQldCJ0JDQnSDQiNCe0J0KK9CQ0KDQlNCV0InQkNCdINCc0JDQoNCY0IjQkAor0JDQoNCU0JXQidCQ0J0g0J/QldCi0JDQoAor0JDQoNCU0J7QptCa0Jgg0JjQqNCi0JLQkNCdCivQkNCg0JXQltCY0J3QkCDQgtCe0KDQgtCVCivQkNCg0JXQltCY0J3QkCDQkdCe0KjQmtCeCivQkNCg0JjQpNCYINCY0JHQoNCQ0KXQmNCcCivQkNCg0JjQpNCe0JLQmNCLINCh0KDQkdCY0KbQkAor0JDQoNCY0JfQkNCi0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9CQ0KDQmtCj0JvQkCDQkdCb0JDQltCVCivQkNCg0JrQo9Cb0JAg0KHQm9CQ0JLQmNCm0JAKK9CQ0KDQmtCj0JvQkCDQodCb0JDQktCY0KbQkAor0JDQoNCb0J7QkiDQlNCg0JDQk9CQ0J0KK9CQ0KDQnNCQ0KbQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JDQoNCc0JDQptCa0Jgg0KDQkNCU0J7QktCQ0J0KK9CQ0KDQnNCQ0KbQmtCYINCh0J7QpNCY0IjQkAor0JDQoNCc0JDQptCa0Jgg0KHQotCV0JLQkNCdCivQkNCg0JzQkdCg0KPQodCi0JXQoCDQm9CQ0KHQm9CeCivQkNCg0JzQkdCg0KPQodCi0JXQoCDQnNCQ0KDQmNCI0JAKK9CQ0KDQndCQ0KPQoiDQgtCe0KDQgtCVCivQkNCg0J3QkNCj0KIg0JTQoNCQ0JPQmNCK0JAKK9CQ0KDQndCQ0KPQoiDQnNCY0JvQmNCm0JAKK9CQ0KDQndCQ0KPQoiDQktCQ0KHQkAor0JDQoNCd0J7Qo9ChINCi0JXQoNCV0JfQkAor0JDQoNCd0J7QktCJ0JXQktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JDQoNCe0Jot0JTQmNCS0IjQkNCaINCT0J7QoNCU0JDQndCQCivQkNCg0J/QkNCo0Jgg0ILQntCg0ILQlQor0JDQoNCf0JDQqNCYINCb0JDQodCb0J4KK9CQ0KDQodCV0J3QmNCLINCW0JjQktCa0J4KK9CQ0KDQodCV0J3QmNCLINCR0KDQkNCi0JjQodCb0JDQktCQCivQkNCg0KHQldCd0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0KDQodCV0J3QmNCLINCU0KDQkNCo0JrQngor0JDQoNCh0JXQndCY0Isg0IjQntCS0JDQndCa0JAKK9CQ0KDQodCV0J3QmNCLINCc0J7QnNCY0KAKK9CQ0KDQodCV0J3QmNCLINCe0JvQk9CY0KbQkAor0JDQoNCh0JXQndCY0Isg0JLQldCJ0JrQngor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCY0JvQo9Cd0JrQkAor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0J7QnNCY0KAKK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0KHQm9CQ0JLQmtCQCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCh0JzQmNCJ0JAKK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkNCg0KHQldCd0JjQnSDQgtCj0KDQgtCY0J3QmtCQCivQkNCg0KHQldCd0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCh0JXQndCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KDQodCV0J3QmNCdINCR0J7Qk9Ce0InQo9CRCivQkNCg0KHQldCd0JjQnSDQk9CQ0IjQkAor0JDQoNCh0JXQndCY0J0g0IjQntCS0JDQnQor0JDQoNCh0JXQndCY0J0g0IjQntCS0JDQnQor0JDQoNCh0JXQndCY0J0g0JrQntCh0KLQkAor0JDQoNCh0JXQndCY0J0g0JrQoNCY0KHQotCY0J3QkAor0JDQoNCh0JXQndCY0J0g0JzQkNCg0JjQiNCQCivQkNCg0KHQldCd0JjQnSDQnNCY0KLQkAor0JDQoNCh0JXQndCY0J0g0JzQm9CQ0JTQldCdCivQkNCg0KHQldCd0JjQnSDQnNCb0JDQlNCV0J0KK9CQ0KDQodCV0J3QmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0KDQodCV0J3QmNCdINCS0JjQotCe0JzQmNCgCivQkNCg0KHQldCd0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQkNCg0KHQldCK0JXQkiDQkNCb0JXQmtCh0JXQiAor0JDQoNCh0JXQndCe0JIg0JDQm9CV0JrQodCQCivQkNCg0KHQldCd0J7QkiDQkNCg0JjQqNCa0J4KK9CQ0KDQodCV0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JDQoNCh0JXQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCg0KHQldCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0KDQodCV0J3QntCSINCU0KDQkNCT0JjQptCQCivQkNCg0KHQldCd0J7QkiDQmtCQ0KLQmNCm0JAKK9CQ0KDQodCV0J3QntCSINCc0JjQm9CQ0J0KK9CQ0KDQodCV0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CQ0KDQodCV0J3QntCSINCf0JXQoNCQCivQkNCg0KHQldCd0J7QkiDQn9CV0KLQkNCgCivQkNCg0KHQldCd0J7QkiDQn9CV0KLQkNCgCivQkNCg0KHQldCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JDQoNCh0JXQndCe0JIg0KHQkNCo0JAKK9CQ0KDQodCV0J3QntCSINCS0JDQodCY0JvQmNCI0JUKK9CQ0KDQodCV0J3QntCS0JjQiyDQltCY0JLQmtCeCivQkNCg0KHQldCd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQkNCg0KHQldCd0J7QktCY0Isg0J3QkNCU0JAg0JTQoAor0JDQoNCh0JXQndCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQkNCg0KHQldCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CQ0KDQodCV0J3QntCS0JjQiyDQodCQ0JLQngor0JDQoNCh0JXQndCe0JLQmNCLINCh0KDQgtCQ0J0KK9CQ0KDQodCV0J3QntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQkNCg0KHQldCd0J7QktCY0Isg0KLQoNCY0JLQngor0JDQoNCh0JXQndCe0JLQmNCLINCS0JXQodCd0JAKK9CQ0KDQodCV0J3QntCS0JjQiyDQktCb0JDQlNCQCivQkNCg0KHQldCd0J7QktCY0Isg0JfQntCg0JDQnQor0JDQoNCh0JjQiyDQp9CV0JTQntCc0JjQoAor0JDQoNCh0JjQiyDQltCQ0KDQmtCeCivQkNCg0KHQmNCLINCW0JjQktCa0J4KK9CQ0KDQodCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KDQodCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQkNCg0KHQmNCLINCU0KPQqNCa0J4KK9CQ0KDQodCY0Isg0JXQoNCW0JXQkdCV0KIKK9CQ0KDQodCY0Isg0JvQkNCX0JDQoAor0JDQoNCh0JjQiyDQm9CY0JTQmNCI0JAKK9CQ0KDQodCY0Isg0InQo9CR0JjQqNCQCivQkNCg0KHQmNCLINCc0JDQoNCY0IjQkAor0JDQoNCh0JjQiyDQnNCY0KXQkNCY0JvQngor0JDQoNCh0JjQiyDQnNCY0KXQntCJ0JrQkAor0JDQoNCh0JjQiyDQnNCY0JvQntCoCivQkNCg0KHQmNCLINCc0JjQm9Ce0KHQm9CQ0JIg0JTQoAor0JDQoNCh0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JDQoNCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQoNCh0JjQiyDQnNCY0J7QnNCY0KAKK9CQ0KDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0KDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0KDQodCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0KDQodCY0Isg0J7QkdCg0JDQlAor0JDQoNCh0JjQiyDQn9CV0KDQmNCm0JAKK9CQ0KDQodCY0Isg0J/QldCi0JDQoAor0JDQoNCh0JjQiyDQoNCQ0JTQntCc0JjQoAor0JDQoNCh0JjQiyDQoNCQ0JTQntCh0JDQkgor0JDQoNCh0JjQiyDQodCQ0JLQldCi0JAKK9CQ0KDQodCY0Isg0KHQm9CQ0JLQmtCQCivQkNCg0KHQmNCLINCh0JvQkNCS0J7QiNCa0JAKK9CQ0KDQodCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JDQoNCh0JjQiyDQodCi0JDQndCa0J4KK9CQ0KDQodCY0Isg0KLQntCc0JjQodCb0JDQkgor0JDQoNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCg0KHQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0KDQodCY0Isg0KLQoNCQ0IjQkNCdCivQkNCg0KHQmNCLINCX0J7QoNCQ0J0KK9CQ0KDQodCY0Isg0JfQntCg0JDQnQor0JDQoNCh0JjQiyDQl9Ce0KDQkNCdCivQkNCg0KHQmNCa0JjQnSDQnNCY0JvQkNCd0JrQngor0JDQoNCh0JjQmtCY0J0g0J/QkNCS0JvQlQor0JDQoNCh0JvQkNCd0JDQk9CY0Isg0J3QkNCC0JAKK9CQ0KDQodCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCg0KHQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQkNCg0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQkNCg0KHQntCS0JjQiyDQnNCQ0KLQldCI0JAKK9CQ0KDQodCe0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0KDQodCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JDQoNCiINCC0KPQoNCQCivQkNCg0KIg0JfQktCe0J3QmNCc0JjQoAor0JDQoNCi0KPQmtCe0JIg0JTQo9Co0JDQnQor0JDQoNCi0KPQmtCe0JIg0J7Qm9CT0JAKK9CQ0KDQo9Cb0JAg0JzQmNCL0J4KK9CQ0KDQktCQ0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KDQktCQ0Jgg0JDQoNCf0JDQlAor0JDQoNCS0JDQmCDQlNCQ0J3QmNCm0JAKK9CQ0KDQktCQ0Jgg0J/QkNCS0JDQngor0JDQoNCS0JDQmCDQotCV0KDQldCX0JAKK9CQ0KDQktCQ0IjQmCDQn9CQ0JLQkNCeCivQkNCg0JLQkNCd0JjQotCY0JTQmNChINCh0KLQldCg0IjQntChCivQkNCh0JDQndCYINCQ0KHQkNCdCivQkNCh0JDQndCYINCl0KPQoNCY0KjQkAor0JDQodCQ0J3QmCDQndCQ0JjQidCQCivQkNCh0JDQndCYINCd0JDQl9CY0KTQkAor0JDQodCQ0J3QntCSINCX0J7QoNCQCivQkNCh0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JDQodCQ0J3QntCS0JjQiyDQodCi0JDQndCa0JAKK9CQ0KHQkNCd0J7QktCY0Isg0JfQo9Cl0KDQkAor0JDQodCQ0J3QntCS0KHQmtCYINCg0J7Ql9CQ0JvQmNCI0JAKK9CQ0KHQmNCLINCc0JjQm9CQ0J0KK9CQ0KHQntCU0Jgg0IjQkNCd0J7QqAor0JDQodCe0JTQmCDQiNCe0JbQldCkCivQkNCh0J7QlNCYINCc0JjQoNCa0J4KK9CQ0KHQntCi0JjQiyDQnNCj0JDQnNCV0KAKK9CQ0KHQotCQ0KXQntCSLdCI0JXQoNCV0JzQmNCLINCc0JDQoNCY0IjQkAor0JDQodCi0JDQm9Ce0Kgg0JjQqNCi0JLQkNCdCivQkNCh0KPQoNCP0JjQiyDQmtCg0JjQodCi0JjQndCQCivQkNCh0KPQoNCP0JjQiyDQm9Cj0JrQkAor0JDQodCj0KDQj9CY0Isg0JzQmNCb0J7QqAor0JDQodCj0KDQj9CY0Isg0JzQmNCb0J7QqAor0JDQodCj0KDQj9CY0Isg0JzQmNCb0J7QqAor0JDQodCj0KDQj9CY0Isg0JzQntCb0J7QqAor0JDQodCj0KDQj9CY0Isg0J3QmNCa0J7Qm9CQCivQkNCh0KPQoNCP0JjQiyDQndCY0JrQntCb0JAKK9CQ0KHQo9Cg0I/QmNCLINCh0J7QpNCY0IjQkAor0JDQodCj0KDQj9CY0Isg0KHQotCV0JLQkNCdCivQkNCh0KPQoNCP0JjQiyDQotCV0J7QlNCe0KAKK9CQ0KHQo9Cg0I/QmNCLINCi0JXQntCU0J7QoAor0JDQotCQ0J3QkNCm0JrQntCSINCC0J7QoNCC0JUKK9CQ0KLQkNCd0JDQptCa0J7QkiDQkdCe0KDQkAor0JDQotCQ0J3QkNCm0JrQntCSINCR0J7QoNCY0JLQntCICivQkNCi0JDQndCQ0KbQmtCe0JIg0JTQoNCQ0JPQkNCdCivQkNCi0JDQndCQ0KbQmtCe0JIg0JjQm9Ce0J3QkAor0JDQotCQ0J3QkNCm0JrQntCSINCc0JDQoNCY0IjQkAor0JDQotCQ0J3QkNCm0JrQntCSINCc0JjQoNCI0JDQndCQCivQkNCi0JDQndCQ0KbQmtCe0JIg0JzQmNCg0JrQngor0JDQotCQ0J3QkNCm0JrQntCSINCd0J7QktCQCivQkNCi0JDQndCQ0KbQmtCe0JIg0J7Qm9CT0JAKK9CQ0KLQkNCd0JDQptCa0J7QkiDQn9CQ0JLQm9CVCivQkNCi0JDQndCQ0KbQmtCe0JIg0KHQkNCo0JAKK9CQ0KLQkNCd0JDQptCa0J7QkiDQodCi0JXQktCQ0J0KK9CQ0KLQkNCd0JDQptCa0J7QkiDQodCi0JXQktCQ0J0KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCQ0J3QkAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQkdCe0JPQntCR0J7QiAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQINCU0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQmNCS0JDQnQor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCb0JDQl9CQCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCb0KPQmtCQCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KHQkNCS0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KLQldCe0JTQntCgINCU0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KLQntCo0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JfQntCg0JDQnQor0JDQotCQ0J3QkNCh0JjQkNCU0JjQoSDQpdCg0JjQodCi0J7QpNCe0KDQntChCivQkNCi0JDQndCQ0KHQmNCI0JDQlNCY0KEg0JDQndCV0KHQotCYCivQkNCi0JDQndCQ0KHQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkNCi0JDQndCQ0KHQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkNCi0JDQndCQ0KHQmtCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQkNCi0JDQndCQ0KHQntCh0JrQmCDQodCi0JXQktCeCivQkNCi0JDQndCQ0KHQntCSINCc0JDQoNCa0J4KK9CQ0KLQkNCd0JDQodCe0JLQodCa0Jgg0KDQmNCh0KLQngor0JDQotCQ0KDQkNCmINCU0KDQkNCT0J7QqAor0JDQotCV0InQldCS0JjQiyDQlNCj0KjQkNCdCivQkNCi0JXQidCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQkNCi0JjQiyDQlNCQ0J3QmNCm0JAKK9CQ0KLQm9CQ0JPQmNCLINCR0KDQkNCd0JrQngor0JDQotCb0JDQk9CY0Isg0IjQntCS0JDQnQor0JDQotCb0JDQk9CY0Isg0JzQmNCb0JDQnQor0JDQotCb0JDQk9CY0Isg0JzQmNCb0JjQptCQCivQkNCi0JvQkNCT0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQotCb0JDQk9CY0Isg0JfQlNCg0JDQktCa0J4KK9CQ0KLQm9CQ0KEg0ILQntCg0ILQlSDQlNCgCivQkNCi0JvQkNChINCY0JLQkNCdCivQkNCi0JvQkNChINCc0JjQoNCa0J4KK9CQ0KLQm9CY0Isg0JvQkNCX0JDQoAor0JDQotCb0JjQiyDQnNCY0JvQkNCdCivQkNCj0JbQmNCd0JAg0JzQmNCb0JjQptCQCivQkNCj0JbQmNCd0JAg0JzQmNCg0JAKK9CQ0KPQltCY0J3QkCDQnNCY0KDQntCh0JvQkNCS0JAKK9CQ0KPQldCgINCc0JDQoNCQCivQkNCj0JPQo9Ch0KLQmNCdINCY0JLQmNCm0JAKK9CQ0KPQk9Cj0KHQotCY0J3QntCSINCQ0J3QotCe0J0KK9CQ0KPQk9Cj0KHQotCY0J3QntCSINCY0JLQkNCdCivQkNCj0JvQmNCaINCY0JvQntCd0JAKK9CQ0KPQoNCV0JvQmNCI0JDQnSDQgtCQ0J0KK9CQ0JLQkNCa0KPQnNCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQkNCS0JDQmtCj0JzQntCS0JjQiyDQndCY0JrQntCb0JAKK9CQ0JLQlNCQ0JvQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JDQktCU0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkNCS0JTQkNCb0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JDQktCU0JDQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CQ0JLQlNCYINCg0JDQnNCQ0JTQkNCdCivQkNCS0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCS0JTQmNCLINCk0KPQkNCUCivQkNCS0JTQmNCLINCT0J7QoNCU0JDQndCQCivQkNCS0JTQmNCLINCl0KPQodCd0JjQiNCQCivQkNCS0JTQmNCLINCc0JDQm9CY0IsKK9CQ0JLQlNCY0Isg0JzQo9Cb0JjQiNCQCivQkNCS0JXQnNCQ0KDQmNCQINCf0JXQotCQ0KAKK9CQ0JLQoNCQ0JzQntCSINCR0J7QqNCa0J4KK9CQ0JLQoNCQ0JzQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JDQktCg0JDQnNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCS0KDQkNCc0J7QkiDQlNCe0JHQoNCY0JvQkAor0JDQktCg0JDQnNCe0JIg0JPQkNCS0KDQkAor0JDQktCg0JDQnNCe0JIg0JjQktCQ0J0KK9CQ0JLQoNCQ0JzQntCSINCI0J7QktCQ0J3QmtCQCivQkNCS0KDQkNCc0J7QkiDQiNCe0JLQkNCdCivQkNCS0KDQkNCc0J7QkiDQidCY0InQkNCd0JAKK9CQ0JLQoNCQ0JzQntCSINCc0JjQm9CQ0JTQmNCdCivQkNCS0KDQkNCc0J7QkiDQnNCY0JvQldCS0JAKK9CQ0JLQoNCQ0JzQntCSINCc0JjQm9Ca0JAKK9CQ0JLQoNCQ0JzQntCSINCc0JjQoNCI0JDQndCQCivQkNCS0KDQkNCc0J7QkiDQnNCY0KLQkAor0JDQktCg0JDQnNCe0JIg0J/QkNCI0JAKK9CQ0JLQoNCQ0JzQntCSINCf0JXQoNCQCivQkNCS0KDQkNCc0J7QkiDQn9CV0KLQkNCgCivQkNCS0KDQkNCc0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JDQktCg0JDQnNCe0JIg0KHQotCV0JLQkNCdCivQkNCS0KDQkNCc0J7QkiDQodCS0JXQotCe0JvQmNCaCivQkNCS0KDQkNCc0J7QkiDQodCS0JXQotCe0JvQmNCaCivQkNCS0KDQkNCc0J7QkiDQl9Ce0KDQkNCdCivQkNCS0KDQkNCc0J7QkiDQl9Ce0KDQkNCdCivQkNCS0KDQkNCc0J7QktCY0Isg0JbQmNCS0JrQngor0JDQktCg0JDQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JDQktCg0JDQnNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQktCg0JDQnNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQktCg0JDQnNCe0JLQmNCLINCU0KDQkNCT0J4KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQpNCg0JDQndCm0JjQqNCa0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQk9Ce0IjQmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0JjQm9CY0J3QmtCQCivQkNCS0KDQkNCc0J7QktCY0Isg0IjQntCS0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQidCj0JHQmNCd0JrQngor0JDQktCg0JDQnNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JDQktCg0JDQnNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQktCg0JDQnNCe0JLQmNCLINCc0JjQotCQCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQntCc0JjQoAor0JDQktCg0JDQnNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JDQktCg0JDQnNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQkNCS0KDQkNCc0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JDQktCg0JDQnNCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQoNCQ0KLQmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQkNCS0KDQkNCc0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQkNCS0KDQkNCc0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkNCS0KDQkNCc0J7QktCY0Isg0KLQldCe0JTQntCgCivQkNCS0KDQkNCc0J7QktCY0Isg0KLQntCc0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQktCV0InQmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0JLQldCg0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQktCV0KDQkAor0JDQktCg0JDQnNCe0JLQmNCLINCS0JXQoNCQCivQkNCS0KDQkNCc0J7QktCh0JrQmCDQkdCe0KDQmNChCivQkNCX0JvQldCdINCR0J7QoNCY0KHQm9CQ0JIKK9CR0JDQp9CQINCo0JDQndCU0J7QoAor0JHQkNCn0JAg0JvQkNCU0JjQodCb0JDQkgor0JHQkNCn0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9CR0JDQp9CY0Isg0KfQldCU0J7QnNCY0KAg0J/QoNCe0KTQldCh0J7QoAor0JHQkNCn0JjQiyDQltCY0JLQmtCeCivQkdCQ0KfQmNCLINCC0J7QoNCC0JUKK9CR0JDQp9CY0Isg0JDQndCi0JUKK9CR0JDQp9CY0Isg0JHQoNCQ0J3QmtCQCivQkdCQ0KfQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQkNCn0JjQiyDQiNCe0JLQkNCdCivQkdCQ0KfQmNCLINCa0JDQoNCQCivQkdCQ0KfQmNCLINCc0JDQoNCY0IjQkAor0JHQkNCn0JjQiyDQnNCY0JvQkNCdINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0JHQkNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CR0JDQp9CY0Isg0JzQmNCg0JrQngor0JHQkNCn0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQp9CY0Isg0KHQnNCY0InQkNCd0JAKK9CR0JDQp9Ca0JDQm9CY0Isg0ILQntCg0ILQlQor0JHQkNCn0JrQkNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCn0JrQkNCb0JjQiyDQlNCe0JHQoNCQCivQkdCQ0KfQmtCQ0JvQmNCLINCU0J7QkdCg0JjQptCQCivQkdCQ0KfQmtCQ0JvQmNCLINCI0J7QktCQ0J0KK9CR0JDQp9Ca0JDQm9CY0Isg0JvQkNCX0JDQoAor0JHQkNCn0JrQkNCb0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQp9Ca0JDQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQp9Ca0JDQm9CY0Isg0JzQmNCb0JDQnQor0JHQkNCn0JrQkNCb0JjQiyDQnNCY0JvQkAor0JHQkNCn0JrQkNCb0JjQiyDQndCe0JLQkNCaCivQkdCQ0KfQmtCeINCc0JjQm9CQ0J3QkAor0JHQkNCn0JrQniDQn9CV0KLQkNCgCivQkdCQ0KfQm9CY0Isg0ILQntCg0ILQlQor0JHQkNCn0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCn0JvQmNCLINCb0JDQl9CQ0KAKK9CR0JDQp9Cb0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQp9Cb0JjQiNCQINCI0J7QodCY0J8KK9CR0JDQp9Cb0JjQiNCQINCc0JDQoNCa0J4KK9CR0JDQp9Cb0JjQiNCQINCg0KPQltCY0KbQkAor0JHQkNCn0JvQmNCI0JAg0KHQm9CQ0JLQmNCm0JAKK9CR0JDQp9Cj0JvQntCSINCh0KLQldCS0JDQnQor0JHQkNCn0JLQkNCd0JjQnSDQltCY0JLQntCI0JjQnQor0JHQkNCn0JLQkNCd0KHQmtCYINCR0J7QqNCa0J4KK9CR0JDQp9CS0JDQndCh0JrQmCDQodCi0JXQktCQ0J0g0JTQoCDQmNCd0JMKK9CR0JDQqCDQiNCj0JvQmNCQCivQkdCQ0KjQkCDQlNCj0KjQkNCdCivQkdCQ0KjQkCDQiNCe0JLQkNCdCivQkdCQ0KjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JHQkNCo0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CR0JDQqNCY0KfQldCS0JjQiyDQktCe0IjQmNCdINCU0KAKK9CR0JDQqNCY0KfQldCS0JjQiyDQktCe0IjQmNCdCivQkdCQ0KjQmNCLINCW0JDQoNCa0J4KK9CR0JDQqNCY0Isg0ILQo9Cg0J4KK9CR0JDQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQqNCY0Isg0JHQmNCJ0JDQndCQCivQkdCQ0KjQmNCLINCR0J7QltCeCivQkdCQ0KjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0JDQqNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQkNCo0JjQiyDQlNCj0KjQkNCdCivQkdCQ0KjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQqNCY0Isg0JTQo9Co0JDQnQor0JHQkNCo0JjQiyDQlNCj0KjQkNCdCivQkdCQ0KjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQqNCY0Isg0KTQoNCQ0IrQngor0JHQkNCo0JjQiyDQk9CQ0JLQoNCQCivQkdCQ0KjQmNCLINCT0KDQo9CI0JjQptCQCivQkdCQ0KjQmNCLINCY0JTQoNCY0JcKK9CR0JDQqNCY0Isg0JjQm9CY0IjQkAor0JHQkNCo0JjQiyDQiNCQ0J3QmtCeCivQkdCQ0KjQmNCLINCI0JXQm9CQCivQkdCQ0KjQmNCLINCI0JXQm9CV0J3QkAor0JHQkNCo0JjQiyDQiNCe0JLQkNCdCivQkdCQ0KjQmNCLINCI0J7QktCQ0J0KK9CR0JDQqNCY0Isg0IjQo9Cg0JUKK9CR0JDQqNCY0Isg0JvQkNCX0JDQoAor0JHQkNCo0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQqNCY0Isg0InQo9CR0JjQptCQCivQkdCQ0KjQmNCLINCb0KPQmtCQCivQkdCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JHQkNCo0JjQiyDQnNCY0JvQkNCdCivQkdCQ0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQqNCY0Isg0JzQmNCb0JAKK9CR0JDQqNCY0Isg0JzQmNCb0JjQptCQCivQkdCQ0KjQmNCLINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0JHQkNCo0JjQiyDQnNCY0KLQkAor0JHQkNCo0JjQiyDQndCV0JTQldCJ0JrQkAor0JHQkNCo0JjQiyDQndCV0KHQotCe0KAKK9CR0JDQqNCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0KjQmNCLINCf0JDQktCb0JUKK9CR0JDQqNCY0Isg0J/QldCi0JDQoAor0JHQkNCo0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0KjQmNCLINCh0JDQktCQCivQkdCQ0KjQmNCLINCh0JDQktCQCivQkdCQ0KjQmNCLINCh0JjQnNCa0JAKK9CR0JDQqNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQqNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQkNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0KjQmNCLINCh0J7QitCQCivQkdCQ0KjQmNCLINCh0J/QkNCh0J7QiNCVCivQkdCQ0KjQmNCLINCh0KLQldCS0JDQnQor0JHQkNCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCQ0KjQmNCLINCS0JXQoNCQCivQkdCQ0KjQmNCL0JXQktCY0Isg0JTQldCh0JAKK9CR0JDQqNCY0KbQkCDQnNCY0JvQkNCdCivQkdCQ0KjQmNCm0JAg0KDQkNCd0JrQngor0JHQkNCo0JjQptCQINCg0JjQodCi0J4KK9CR0JDQqNCa0JDQm9CeINCc0JDQoNCa0J4KK9CR0JDQqNCd0JXQpiDQmNCS0JDQnQor0JHQkNCo0KLQmNCLINCR0J7QltCY0JTQkNCgCivQkdCQ0KjQotCY0Isg0JzQmNCb0JrQkAor0JHQkNCo0KLQmNCLINCf0JXQotCQ0KAKK9CR0JDQqNCi0J7QktCQ0J3QntCSINCU0JDQndCY0KbQkAor0JHQkNCo0KLQntCS0JDQndCe0JIg0KHQotCV0JLQkNCdCivQkdCQ0KjQotCe0JLQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CR0JDQqNCi0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IvQkNCdINCU0KDQkNCT0J7QnNCY0KAKK9CR0JDQi9CQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQkdCQ0IvQkNCd0J7QkiDQodCi0JDQndCa0J4KK9CR0JDQi9CQ0J3QntCSINCh0KLQldCS0JDQnQor0JHQkNCL0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JHQkNCL0JDQndCe0JLQmNCLINCI0KPQptCQCivQkdCQ0IvQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCL0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CR0JDQi9CQ0J3QntCS0JjQiyDQndCV0JzQkNCK0JAKK9CR0JDQi9CQ0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9CR0JDQi9CQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CR0JDQi9CY0Isg0InQmNCJ0JDQndCQCivQkdCQ0IvQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCQ0IvQmNCd0JAg0JzQm9CQ0JTQldCdCivQkdCQ0IvQmNCd0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0JbQkNCd0KfQmNCaINCR0JXQm9CQCivQkdCQ0JbQkNCd0KLQmNCaINCc0JDQoNCQCivQkdCQ0JbQlNCQ0KAg0JHQoNCj0J3Qngor0JHQkNCW0JTQkNCgINCc0JjQm9Ce0KDQkNCUCivQkdCQ0JbQldCd0J7QkiDQkNCd0JPQldCb0JjQndCQCivQkdCQ0ILQmCDQqNCQ0J3QlNCe0KAKK9CR0JDQgtCYLdCg0JjQkdCQ0KAg0KDQldCd0JDQotCQCivQkdCQ0ILQmNCdINCh0JzQmNCJ0JrQkAor0JHQkNCR0JAg0JjQm9Ce0J3QmtCQCivQkdCQ0JHQkCDQiNCQ0J3QntCoCivQkdCQ0JHQkCDQiNCe0J0KK9CR0JDQkdCQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0JHQkNCg0JjQmtCY0J0g0JzQkNCg0JrQngor0JHQkNCR0JXQpiDQl9Ce0KDQkNCdCivQkdCQ0JHQmCDQmNCS0JDQnQor0JHQkNCR0JjQiyDQltCQ0KDQmtCeCivQkdCQ0JHQmNCLINCW0JXQidCa0JAKK9CR0JDQkdCY0Isg0JbQmNCS0JDQnQor0JHQkNCR0JjQiyDQltCY0JLQkNCdCivQkdCQ0JHQmNCLINCC0J7QoNCC0JUKK9CR0JDQkdCY0Isg0ILQntCg0ILQlQor0JHQkNCR0JjQiyDQgtCe0KDQgtCVCivQkdCQ0JHQmNCLINCC0J7QoNCC0JUKK9CR0JDQkdCY0Isg0ILQntCg0ILQlQor0JHQkNCR0JjQiyDQgtCj0KDQgtCY0KbQkAor0JHQkNCR0JjQiyDQgtCj0KDQkAor0JHQkNCR0JjQiyDQgtCj0KDQkAor0JHQkNCR0JjQiyDQgtCj0KDQngor0JHQkNCR0JjQiyDQkNCm0JAKK9CR0JDQkdCY0Isg0JDQmNCU0JAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQCivQkdCQ0JHQmNCLINCQ0JvQmtCQCivQkdCQ0JHQmNCLINCQ0J3QkAor0JHQkNCR0JjQiyDQkNCd0JAKK9CR0JDQkdCY0Isg0JDQndCQCivQkdCQ0JHQmNCLINCR0JjQidCQ0J3QkAor0JHQkNCR0JjQiyDQkdCe0JbQmNCm0JAKK9CR0JDQkdCY0Isg0JHQntCW0JjQlNCQ0KDQmtCQCivQkdCQ0JHQmNCLINCR0J7Qk9CU0JDQnQor0JHQkNCR0JjQiyDQkdCe0IjQkAor0JHQkNCR0JjQiyDQkdCe0KDQmNCo0JAKK9CR0JDQkdCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQkdCQ0JHQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0JDQkdCY0Isg0JHQoNCQ0J3QmtCeCivQkdCQ0JHQmNCLINCm0JLQmNCI0J4KK9CR0JDQkdCY0Isg0JTQkNCd0JUKK9CR0JDQkdCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0JDQkdCY0Isg0JTQkNCS0JjQlAor0JHQkNCR0JjQiyDQlNCg0JDQqNCa0J4KK9CR0JDQkdCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CR0JDQkdCY0Isg0JTQoNCQ0JPQkNCdCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0J4KK9CR0JDQkdCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0JDQkdCY0Isg0JTQo9Co0JDQnQor0JHQkNCR0JjQiyDQlNCj0KjQkNCdCivQkdCQ0JHQmNCLINCU0KPQqNCQ0J0KK9CR0JDQkdCY0Isg0JTQo9Co0JDQnQor0JHQkNCR0JjQiyDQlNCj0KjQmNCm0JAKK9CR0JDQkdCY0Isg0JPQntCI0JrQngor0JHQkNCR0JjQiyDQk9Ce0IjQmtCeCivQkdCQ0JHQmNCLINCT0J7QoNCQ0J0KK9CR0JDQkdCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0JDQkdCY0Isg0JPQntCg0JjQptCQCivQkdCQ0JHQmNCLINCT0J7QodCf0JDQktCQCivQkdCQ0JHQmNCLINCl0JXQm9CV0J3QkAor0JHQkNCR0JjQiyDQmNCb0JjQiNCQCivQkdCQ0JHQmNCLINCY0JvQmNCI0JAKK9CR0JDQkdCY0Isg0JjQm9CY0IjQkAor0JHQkNCR0JjQiyDQmNCb0JjQndCa0JAKK9CR0JDQkdCY0Isg0JjQktCQ0J0KK9CR0JDQkdCY0Isg0JjQktCQ0J0KK9CR0JDQkdCY0Isg0JjQktCQ0J0KK9CR0JDQkdCY0Isg0IjQntCS0JDQnQor0JHQkNCR0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQmNCLINCI0J7QktCQ0J0KK9CR0JDQkdCY0Isg0IjQntCS0JDQnQor0JHQkNCR0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQmNCLINCa0JDQotCY0KbQkAor0JHQkNCR0JjQiyDQmtCQ0JfQmNCc0JjQoAor0JHQkNCR0JjQiy3QmtCe0J/QidCQ0J0g0KDQntCW0JAKK9CR0JDQkdCY0Isg0JrQntCh0JAKK9CR0JDQkdCY0Isg0JrQntCh0KLQkNCU0JjQnQor0JHQkNCR0JjQiyDQmtCe0KHQotCQCivQkdCQ0JHQmNCLINCa0KDQodCi0JAKK9CR0JDQkdCY0Isg0JvQkNCX0J4KK9CR0JDQkdCY0Isg0JvQkNCX0J4KK9CR0JDQkdCY0Isg0JvQldCe0J3QmNCUCivQkdCQ0JHQmNCLINCJ0JjQidCQ0J3QkAor0JHQkNCR0JjQiyDQidCY0InQkNCd0JAKK9CR0JDQkdCY0Isg0InQmNCJ0JDQndCQCivQkdCQ0JHQmNCLINCJ0KPQkdCY0KjQkAor0JHQkNCR0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQkdCY0Isg0JvQo9Ca0JAKK9CR0JDQkdCY0Isg0JzQkNCI0JAKK9CR0JDQkdCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JHQkNCR0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQkdCY0Isg0JzQkNCg0JjQndCa0J4KK9CR0JDQkdCY0Isg0JzQkNCg0JrQngor0JHQkNCR0JjQiyDQnNCQ0KLQngor0JHQkNCR0JjQiyDQnNCY0IjQngor0JHQkNCR0JjQiyDQnNCY0JvQkNCU0JjQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CV0KLQkAor0JHQkNCR0JjQiyDQnNCY0JvQldCS0JAKK9CR0JDQkdCY0Isg0JzQmNCb0JXQktCQCivQkdCQ0JHQmNCLINCc0JjQm9CY0IsKK9CR0JDQkdCY0Isg0JzQmNCb0JjQktCe0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQkdCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JDQkdCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QqAor0JHQkNCR0JjQiyDQnNCY0JvQntCoCivQkdCQ0JHQmNCLINCc0JjQm9Ce0KgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QqAor0JHQkNCR0JjQiyDQnNCY0JvQntCoCivQkdCQ0JHQmNCLINCc0JjQm9Ce0KgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQkdCY0Isg0JzQmNCb0J7QodCQ0JIKK9CR0JDQkdCY0Isg0JzQmNCg0JAKK9CR0JDQkdCY0Isg0JzQmNCg0JAKK9CR0JDQkdCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JDQkdCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCR0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQkdCY0Isg0JzQntCc0KfQmNCb0J4KK9CR0JDQkdCY0Isg0JzQntCc0JjQoAor0JHQkNCR0JjQiy3QnNCg0JrQqNCY0Isg0IjQo9Cb0JrQkAor0JHQkNCR0JjQiyDQnNCj0KDQmNCXCivQkdCQ0JHQmNCLINCd0JDQlNCQCivQkdCQ0JHQmNCLINCd0JDQlNCQCivQkdCQ0JHQmNCLINCd0JDQlNCQCivQkdCQ0JHQmNCLINCd0JDQotCQ0KjQkAor0JHQkNCR0JjQiyDQndCV0JTQldCJ0JrQngor0JHQkNCR0JjQiyDQndCV0J3QkNCUCivQkdCQ0JHQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCR0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQkdCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0JHQmNCLINCe0JvQk9CY0KbQkAor0JHQkNCR0JjQiyDQntCh0KLQntCI0JAKK9CR0JDQkdCY0Isg0J7QodCi0J7QiNCQCivQkdCQ0JHQmNCLINCf0JXQoNCh0JAKK9CR0JDQkdCY0Isg0J/QldCg0KHQmNCU0JAKK9CR0JDQkdCY0Isg0J/QldCi0JDQoAor0JHQkNCR0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JHQmNCLINCf0JXQotCQ0KAKK9CR0JDQkdCY0Isg0J/QldCi0JDQoAor0JHQkNCR0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JHQmNCLINCf0KDQldCU0KDQkNCTCivQkdCQ0JHQmNCLINCg0JDQlNCV0J3QmtCeCivQkdCQ0JHQmNCLINCg0JDQlNCVCivQkdCQ0JHQmNCLINCg0JDQlNCVCivQkdCQ0JHQmNCLINCg0JDQlNCY0J3QmtCQCivQkdCQ0JHQmNCLINCg0JDQlNCY0KHQkNCSCivQkdCQ0JHQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0JDQkdCY0Isg0KDQkNCU0J7QiNCVCivQkdCQ0JHQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCQ0JHQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCQ0JHQmNCLINCg0JDQlNCe0JzQmNCgCivQkdCQ0JHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0JDQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0JDQkdCY0Isg0KDQkNCI0JrQngor0JHQkNCR0JjQiyDQoNCQ0IjQmtCeCivQkdCQ0JHQmNCLINCg0JDQndCa0J4KK9CR0JDQkdCY0Isg0KHQkNCo0JAKK9CR0JDQkdCY0Isg0KHQkNCS0J4KK9CR0JDQkdCY0Isg0KHQm9CQ0JTQlQor0JHQkNCR0JjQiyDQodCb0JDQktCY0KbQkAor0JHQkNCR0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0JHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQkdCY0Isg0KHQnNCY0InQmtCQCivQkdCQ0JHQmNCLINCh0JzQmNCJ0JrQkAor0JHQkNCR0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQkNCR0JjQiyDQodCe0KTQmNCI0JAKK9CR0JDQkdCY0Isg0KHQotCQ0JrQkAor0JHQkNCR0JjQiyDQodCi0JDQndCa0J4KK9CR0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0JHQmNCLINCh0KLQldCS0JDQnQor0JHQkNCR0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0JHQmNCLINCh0KLQldCS0JDQnQor0JHQkNCR0JjQiyDQodCi0JXQktCeCivQkdCQ0JHQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CR0JDQkdCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQkNCR0JjQiyDQotCe0JzQngor0JHQkNCR0JjQiyDQktCQ0KHQkAor0JHQkNCR0JjQiyDQktCQ0KHQkAor0JHQkNCR0JjQiyDQktCV0KDQkAor0JHQkNCR0JjQiyDQktCV0KDQmNCm0JAKK9CR0JDQkdCY0Isg0JLQldCh0J3QkAor0JHQkNCR0JjQiyDQktCY0JTQntCh0JDQktCQCivQkdCQ0JHQmNCLINCS0KPQiNCeCivQkdCQ0JHQmNCLINCS0KPQmtCc0JDQnQor0JHQkNCR0JjQiyDQl9CQ0JPQntCg0JrQkAor0JHQkNCR0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQkNCR0JjQiyDQl9Ce0KDQkNCdCivQkdCQ0JHQmNCLINCX0J7QoNCQ0J0KK9CR0JDQkdCY0Isg0JfQntCg0JrQkAor0JHQkNCR0JjQiNCQ0J3QntCS0JjQiyDQiNCj0JvQmtCQCivQkdCQ0JHQmNCb0J7QnSDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0JHQmNCb0J7QnSDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0JHQmNCdINCC0J7QoNCC0JUKK9CR0JDQkdCY0J0g0JHQntCT0JTQkNCdCivQkdCQ0JHQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCR0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0JDQkdCY0J0g0JTQo9Co0JDQnQor0JHQkNCR0JjQnSDQiNCe0JLQkNCdCivQkdCQ0JHQmNCdINCa0JDQotCQ0KDQmNCd0JAKK9CR0JDQkdCY0J0g0JrQoNCY0KHQotCY0J3QkAor0JHQkNCR0JjQnSDQm9CQ0JfQkNCgCivQkdCQ0JHQmNCdINCJ0KPQkdCe0JzQmNCgCivQkdCQ0JHQmNCdINCc0JDQoNCY0IjQkAor0JHQkNCR0JjQnSDQnNCQ0KDQmNCdCivQkdCQ0JHQmNCdINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JHQmNCdINCc0JjQm9CQ0J0KK9CR0JDQkdCY0J0g0JzQmNCb0JXQndCQCivQkdCQ0JHQmNCdINCc0JjQm9CV0J3QmtCeINCU0KAg0JjQndCTCivQkdCQ0JHQmNCdINCc0JjQm9CV0J3QmtCeCivQkdCQ0JHQmNCdINCc0JjQntCU0KDQkNCTCivQkdCQ0JHQmNCdINCc0JjQoNCI0JDQndCQCivQkdCQ0JHQmNCdINCc0JjQoNCI0JDQndCQCivQkdCQ0JHQmNCdINCd0JDQlNCQCivQkdCQ0JHQmNCdINCd0JjQmtCe0JvQkAor0JHQkNCR0JjQnSDQn9CV0KLQkNCgCivQkdCQ0JHQmNCdINCg0JDQlNCe0IjQmtCQCivQkdCQ0JHQmNCdINCh0JDQktCQCivQkdCQ0JHQmNCdINCX0J7QoNCQ0J0KK9CR0JDQkdCI0JDQmiDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0JHQmtCQINCI0JDQnQor0JHQkNCR0J7QoNCQ0KYg0JTQoNCQ0JPQkNCdCivQkdCQ0JHQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JHQkNCR0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0JHQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JHQkNCR0J7QktCY0Isg0IjQldCb0JXQndCQCivQkdCQ0JHQntCS0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCR0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9CR0JDQkdCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQkdCQ0JHQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQkNCR0J7QktCY0Isg0KHQmNCd0JjQqNCQINCU0KAKK9CR0JDQkdCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JDQkdCe0JLQmNCLINCX0J7QoNCQCivQkdCQ0KbQmtCe0JLQmNCLINCU0J7QkdCg0J7QodCb0JDQkgor0JHQkNCm0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQptCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0KbQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQkNCm0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCQ0KbQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCQ0KbQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCQ0KbQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0JDQlNCQINCY0KjQotCS0JDQnQor0JHQkNCU0JDQm9CY0Isg0JzQkNCI0JTQkAor0JHQkNCU0JDQitCQ0KYg0IjQldCb0JXQndCQCivQkdCQ0JTQitCQ0KAg0JzQmNCb0JDQnQor0JHQkNCU0IrQkNCgINCc0JjQm9CY0JLQntCI0JUKK9CR0JDQlNCK0JDQoCDQktCb0JDQlNCeCivQkdCQ0JTQitCQ0KDQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JHQkNCU0IrQkNCg0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JDQlNCK0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J3QkAor0JHQkNCU0IrQkNCg0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0JDQlNCK0JDQoNCV0JLQmNCLINCg0JDQlNCe0KgKK9CR0JDQlNCK0JDQoNCV0JLQmNCLINCh0KLQkNCd0JAKK9CR0JDQlNCe0JLQmNCd0JDQpiDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0JTQntCS0JjQndCQ0KYg0J3QmNCa0J7Qm9CQCivQkdCQ0JTQoNCa0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQlNCg0InQmNCm0JAg0JTQo9Co0JjQptCQCivQkdCQ0JTQoNCJ0JjQptCQINCT0JDQktCg0JAKK9CR0JDQlNCg0InQmNCm0JAg0JvQkNCX0JDQoAor0JHQkNCU0KDQidCY0KbQkCDQnNCb0JDQlNCV0J0KK9CR0JDQlNCg0InQmNCm0JAg0J7Qm9CT0JAKK9CR0JDQlNCg0InQmNCm0JAg0J/QldCi0JDQoAor0JHQkNCU0KDQidCY0KbQkCDQoNCQ0JTQntCI0JrQkAor0JHQkNCk0KPQoSDQm9CQ0KHQm9CeCivQkdCQ0JPQmCDQgtCj0JvQkAor0JHQkNCT0Jgt0JHQldCd0JrQntCS0JjQiyDQn9CQ0JsKK9CR0JDQk9CYINCk0JXQoNCV0J3Qpgor0JHQkNCT0Jgg0JjQqNCi0JLQkNCdCivQkdCQ0JPQmCDQiNCQ0J3QntCoCivQkdCQ0JPQmNCLINCc0JjQoNCI0JDQndCQCivQkdCQ0JPQmNCKINCb0JDQl9CQ0KAKK9CR0JDQk9CY0Iog0JvQldCf0J7QodCQ0JLQkAor0JHQkNCT0JvQkNCS0JAg0JzQmNCb0JDQnQor0JHQkNCT0J7QitCQINCI0JDQnQor0JHQkNCT0J7QitCQINCc0JDQoNCY0IjQkAor0JHQkNCT0J7QitCQINCd0JDQlNCQCivQkdCQ0KUg0JXQoNCd0JAKK9CR0JDQpdCc0JDQnSDQnNCQ0KDQmtCeCivQkdCQ0KXQotCY0IjQkNCg0JXQktCY0Isg0IjQldCb0JAKK9CR0JDQpdCj0J0g0J3QmNCa0J7Qm9CQCivQkdCQ0KXQo9CdINCf0JXQotCQ0KAKK9CR0JDQmNCLINCc0JjQoNCa0J4KK9CR0JDQmNCLINCh0KLQkNCd0JAKK9CR0JDQiNCn0JXQotCQINCc0J7QnNCn0JjQm9CeCivQkdCQ0IjQp9CV0KLQkCDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0IjQp9CV0KLQmNCLINCR0J7Qk9CU0JDQnSDQlNCgCivQkdCQ0IjQp9CV0KLQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCI0KfQldCi0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQiNCn0JXQotCY0Isg0JzQkNCg0JrQngor0JHQkNCI0KfQldCi0JjQiyDQnNCY0JvQldCd0JrQngor0JHQkNCI0KfQldCi0JjQiyDQnNCY0KDQmtCeCivQkdCQ0IjQp9CV0KLQmNCLINCf0JDQktCb0JUKK9CR0JDQiNCn0JXQotCY0Isg0J/QldCi0JDQoAor0JHQkNCI0KfQldCSINCI0J7QktCQ0J0KK9CR0JDQiNCn0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JHQkNCI0KjQkNCd0KHQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0JHQkNCI0KjQkNCd0KHQmtCYINCI0J7QktCQ0J0KK9CR0JDQiNCo0JDQndCh0JrQmCDQidCY0InQkNCd0JAKK9CR0JDQiNCo0JDQndCh0JrQmCDQnNCY0JvQkNCU0JjQnQor0JHQkNCI0KjQkNCd0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9CR0JDQiNCo0JDQndCh0JrQmCDQodCQ0JLQkAor0JHQkNCI0KjQkNCd0KHQmtCYINCh0JDQktCQCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0KHQnNCY0InQkAor0JHQkNCI0KjQkNCd0KHQmtCYINCX0J7QoNCQ0J0KK9CR0JDQiNCo0JXQkiDQlNCg0JDQk9Ce0JzQmNCgCivQkdCQ0IjQqNCV0JIg0JjQm9CY0IjQkAor0JHQkNCI0KjQldCSINCc0JjQm9CY0KbQkAor0JHQkNCI0KjQldCSINCh0KLQldCS0JDQnQor0JHQkNCI0KjQldCSINCh0JLQldCi0JjQodCb0JDQkgor0JHQkNCI0KjQmNCLINCW0JDQoNCa0J4KK9CR0JDQiNCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQiNCo0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQkCDQgtCe0KDQgtCVCivQkdCQ0IjQkCDQodCi0JXQktCQ0J0KK9CR0JDQiNCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JHQkNCI0JDQpiDQldCc0JjQm9CY0IjQkCDQlNCgCivQkdCQ0IjQkNCmINCY0KHQkNCaCivQkdCQ0IjQkNCmINCJ0KPQkdCY0KbQkAor0JHQkNCI0JDQpiDQnNCY0JvQkNCdCivQkdCQ0IjQkNCmINCc0JjQm9Ce0KgKK9CR0JDQiNCQ0KYg0JzQmNCb0KPQotCY0J0KK9CR0JDQiNCQ0KYg0KHQktCV0KLQm9CQ0J3QkAor0JHQkNCI0JDQpiDQktCV0KDQkAor0JHQkNCI0JDQk9CY0Isg0JrQkNCi0JjQptCQCivQkdCQ0IjQkNCT0JjQiyDQnNCY0JvQldCd0JAKK9CR0JDQiNCQ0JPQmNCLINCc0JjQntCU0KDQkNCTCivQkdCQ0IjQkNCT0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQkNCI0JDQk9CY0Isg0JzQntCc0KfQmNCb0J4KK9CR0JDQiNCQ0JPQmNCLINCf0JXQotCQ0KAKK9CR0JDQiNCQ0JPQmNCLINCg0JDQlNCQCivQkdCQ0IjQkNCT0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JDQk9CY0Isg0KHQkNCS0J4KK9CR0JDQiNCQ0JPQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0JDQiNCQ0JPQmNCLINCi0JDQnNCQ0KDQkAor0JHQkNCI0JDQmtCY0Isg0JzQkNCg0JAKK9CR0JDQiNCQ0JvQniDQiNCe0JLQkNCd0JrQkAor0JHQkNCI0JDQm9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0JHQkNCI0JDQm9Ce0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQkNCI0JDQoiDQnNCY0JvQntCg0JDQlAor0JHQkNCI0JDQoiDQnNCY0KDQmtCeCivQkdCQ0IjQkNCiINCc0JjQoNCa0J4KK9CR0JDQiNCQ0KIg0J3QldCU0JXQidCa0J4KK9CR0JDQiNCQ0KIg0J3QmNCa0J7Qm9CQCivQkdCQ0IjQkNCiINCg0JDQlNCe0JLQkNCdCivQkdCQ0IjQkNCiINCi0KDQmNCk0KPQnQor0JHQkNCI0JDQoiDQktCV0JvQmNCc0JjQoAor0JHQkNCI0JDQl9CV0KIg0IjQldCS0JPQldCd0JjQiNCQCivQkdCQ0IjQkNCX0JXQoiDQotCe0JTQntCgCivQkdCQ0IjQkNCX0JXQoiDQktCV0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQiNCQ0JfQldCi0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0JDQiNCQ0JfQldCi0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0JDQiNCQ0JfQldCi0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JHQkNCI0JDQl9CY0KIg0JzQmNCb0JDQnQor0JHQkNCI0JHQkNCg0JDQmiDQmNCS0JDQnQor0JHQkNCI0JPQniDQl9Ce0JvQotCQ0J0KK9CR0JDQiNCYINCQ0KDQkNCd0JrQkAor0JHQkNCI0Jgt0KXQoNCY0JHQkNCgINCI0KPQm9CY0IjQkAor0JHQkNCI0Jgg0KHQotCV0JLQkNCdCivQkdCQ0IjQmNCLINCn0JXQlNCe0JzQmNCgCivQkdCQ0IjQmNCLINCW0JDQoNCa0J4KK9CR0JDQiNCY0Isg0JbQmNCa0JAKK9CR0JDQiNCY0Isg0JbQmNCS0JrQngor0JHQkNCI0JjQiyDQltCY0JLQntCI0JjQnQor0JHQkNCI0JjQiyDQgtCe0KDQgtCVINCU0KAKK9CR0JDQiNCY0Isg0ILQo9Cg0JAKK9CR0JDQiNCY0Isg0ILQo9Cg0J4KK9CR0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQiNCY0Isg0JHQntCo0JrQngor0JHQkNCI0JjQiyDQkdCe0JbQmNCm0JAKK9CR0JDQiNCY0Isg0JHQntCT0JTQkNCdCivQkdCQ0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQkdCQ0IjQmNCLINCR0J7QiNCa0JAKK9CR0JDQiNCY0Isg0JHQntCg0JAKK9CR0JDQiNCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQkNCI0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JHQkNCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0IjQmNCLINCR0KDQkNCd0JrQngor0JHQkNCI0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0JDQiNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCQ0IjQmNCLINCU0KDQkNCT0JjQptCQCivQkdCQ0IjQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQkNCI0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0IjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQiNCY0Isg0JTQo9Co0JDQnQor0JHQkNCI0JjQiyDQlNCj0KjQkNCdCivQkdCQ0IjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQiNCY0Isg0JTQo9Co0JDQnQor0JHQkNCI0JjQiyDQlNCj0KjQkNCdCivQkdCQ0IjQmNCLINCU0KPQqNCa0J4KK9CR0JDQiNCY0Isg0JPQntCI0JrQngor0JHQkNCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQkNCI0JjQiyDQmNCb0JjQiNCQCivQkdCQ0IjQmNCLINCY0JvQmNCd0JrQkAor0JHQkNCI0JjQiyDQmNCb0J7QndCQCivQkdCQ0IjQmNCLINCI0JDQk9Ce0KgKK9CR0JDQiNCY0Isg0IjQkNCd0JrQngor0JHQkNCI0JjQiyDQiNCQ0J3QmtCeCivQkdCQ0IjQmNCLINCI0JXQm9CY0KbQkAor0JHQkNCI0JjQiyDQiNCe0JLQkNCdCivQkdCQ0IjQmNCLINCI0J7QktCQ0J0KK9CR0JDQiNCY0Isg0IjQntCS0JDQnQor0JHQkNCI0JjQiyDQiNCe0JLQmNCm0JAKK9CR0JDQiNCY0Isg0JrQoNCh0KLQkAor0JHQkNCI0JjQiyDQm9CQ0JfQkNCgCivQkdCQ0IjQmNCLINCb0KPQmtCQCivQkdCQ0IjQmNCLINCc0JDQoNCQCivQkdCQ0IjQmNCLINCc0JDQoNCQCivQkdCQ0IjQmNCLINCc0JDQoNCY0KbQkAor0JHQkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0IjQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CR0JDQiNCY0Isg0JzQmNCL0J4KK9CR0JDQiNCY0Isg0JzQmNCl0JDQiNCb0J4g0JTQoAor0JHQkNCI0JjQiyDQnNCY0JvQkNCdINCU0KAg0J/QoNCe0KQKK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQldCd0JrQngor0JHQkNCI0JjQiyDQnNCY0JvQlQor0JHQkNCI0JjQiyDQnNCY0JvQmNCm0JAKK9CR0JDQiNCY0Isg0JzQmNCb0JrQkAor0JHQkNCI0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQkNCI0JjQiyDQnNCY0KDQmtCeCivQkdCQ0IjQmNCLINCc0JjQoNCa0J4KK9CR0JDQiNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCI0JjQiyDQnNCY0KLQkNCgCivQkdCQ0IjQmNCLINCc0JjQotCQ0KAKK9CR0JDQiNCY0Isg0JzQmNCi0JAKK9CR0JDQiNCY0Isg0JzQm9CQ0JTQldCdCivQkdCQ0IjQmNCLINCc0JvQkNCU0JXQnQor0JHQkNCI0JjQiyDQnNCb0JDQlNCV0J0KK9CR0JDQiNCY0Isg0JzQntCc0KfQmNCb0J4KK9CR0JDQiNCY0Isg0J3QkNCU0JAKK9CR0JDQiNCY0Isg0J3QkNCU0JAKK9CR0JDQiNCY0Isg0J3QkNCi0JDQqNCQCivQkdCQ0IjQmNCLINCd0JXQgtCeCivQkdCQ0IjQmNCLINCd0JXQktCV0J3QkAor0JHQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0IjQmNCLINCf0JXQoNCQCivQkdCQ0IjQmNCLINCf0JXQoNCeCivQkdCQ0IjQmNCLINCf0JXQoNCh0JjQlNCQCivQkdCQ0IjQmNCLINCf0JXQotCQ0KAKK9CR0JDQiNCY0Isg0J/QldCi0JDQoAor0JHQkNCI0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQkNCI0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQkNCI0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0IjQmNCLINCh0JDQktCQCivQkdCQ0IjQmNCLINCh0JDQktCeCivQkdCQ0IjQmNCLINCh0JjQnNCeCivQkdCQ0IjQmNCLINCh0JjQndCY0KjQkAor0JHQkNCI0JjQiyDQodCb0JDQktCa0J4KK9CR0JDQiNCY0Isg0KHQm9CQ0JLQmtCeCivQkdCQ0IjQmNCLINCh0J3QldCW0JDQndCQCivQkdCQ0IjQmNCLINCh0J3QldCW0JDQndCQCivQkdCQ0IjQmNCLINCh0J7QpNCY0IjQkAor0JHQkNCI0JjQiyDQodCe0KTQmNCI0JAKK9CR0JDQiNCY0Isg0KHQntCk0JjQiNCQCivQkdCQ0IjQmNCLINCh0J7QitCQCivQkdCQ0IjQmNCLINCh0J/QkNCh0J7QiNCVCivQkdCQ0IjQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JHQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0IjQmNCLINCh0KLQldCS0JDQnQor0JHQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQiNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQkNCI0JjQiyDQotCe0JTQntCgCivQkdCQ0IjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JDQiNCY0Ist0KLQo9Cg0JjQndCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JHQkNCI0JjQiyDQktCQ0KHQkAor0JHQkNCI0JjQiyDQktCQ0KHQkAor0JHQkNCI0JjQiyDQktCV0KDQntCd0JAKK9CR0JDQiNCY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JDQiNCY0Isg0JLQmNCU0JAKK9CR0JDQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQkNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQiNCY0Isg0JfQntCg0JDQndCa0JAKK9CR0JDQiNCY0Isg0JfQntCg0JDQnQor0JHQkNCI0JjQiyDQl9Ce0KDQkNCdCivQkdCQ0IjQmNCLINCX0J7QoNCQ0J0KK9CR0JDQiNCY0Isg0JfQntCg0JjQptCQCivQkdCQ0IjQmNCb0J4g0JTQoNCQ0JPQntCc0JjQoAor0JHQkNCI0JjQm9CeINCU0KDQkNCT0J7QnNCY0KAKK9CR0JDQiNCY0JvQniDQlNCj0KjQkNCdCivQkdCQ0IjQmNCb0J4g0J/QldCg0J4KK9CR0JDQiNCY0JvQniDQktCY0JTQntCh0JDQktCQCivQkdCQ0IjQmNCb0J7QkiDQidCY0InQkNCd0JAKK9CR0JDQiNCY0J0g0JHQntCg0JjQodCb0JDQkgor0JHQkNCI0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0J0g0JPQkNCS0KDQmNCb0J4KK9CR0JDQiNCY0J0g0JjQktCQ0J0KK9CR0JDQiNCY0J0g0JrQkNCL0JAKK9CR0JDQiNCY0J0g0InQo9CR0JjQptCQCivQkdCQ0IjQmNCdINCc0JjQm9CQ0J3QmtCQCivQkdCQ0IjQmNCdINCd0JDQlNCQCivQkdCQ0IjQmNCdINCg0JDQlNCe0IjQmtCQCivQkdCQ0IjQmNCdINCg0JDQiNCa0J4KK9CR0JDQiNCY0J0g0KDQo9CW0JjQptCQCivQkdCQ0IjQmNCdINCh0JDQktCQCivQkdCQ0IjQmNCdINCh0JDQktCV0KLQkAor0JHQkNCI0JjQnSDQodCi0J7QiNCQ0J3QmtCQCivQkdCQ0IjQmtCY0J0g0JDQndCC0JXQm9Ca0J4KK9CR0JDQiNCa0JjQnSDQodCi0J7QiNCQ0J0KK9CR0JDQiNCa0JjQnSDQodCS0JXQotCe0JfQkNCgCivQkdCQ0IjQmtCY0J0g0JLQldCh0JXQm9CY0J0KK9CR0JDQiNCa0JjQnSDQktCY0KLQntCc0JjQoAor0JHQkNCI0J7QoCDQnNCQ0KDQmNCI0JAKK9CR0JDQiNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQkNCI0J7QktCY0Isg0JzQkNCg0JAKK9CR0JDQiNCe0JLQmNCLINCc0JjQotCQ0KAKK9CR0JDQiNCe0JLQmNCLINCS0JXQoNCQCivQkdCQ0IjQoNCQ0JzQmCDQqNCV0KTQmtCYCivQkdCQ0IjQoNCQ0JzQmCDQqNCV0KTQmtCYCivQkdCQ0IjQoNCQ0JzQmCDQkNCT0KDQntCdCivQkdCQ0IjQoNCQ0JzQmCDQkdCQ0KLQmNCI0JAKK9CR0JDQiNCg0JDQnNCYINCT0JDQndCYCivQkdCQ0IjQoNCQ0JzQmCDQodCa0JXQndCU0JXQoAor0JHQkNCI0KDQkNCc0J7QktCY0Isg0KjQldCg0JjQpAor0JHQkNCI0KDQkNCc0J7QktCY0Isg0KXQmNCS0JfQmNCI0JAKK9CR0JDQiNCg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQkNCI0KEg0KTQoNCQ0J3Qpgor0JHQkNCI0KPQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JHQkNCI0KPQoSDQiNCe0JbQldCkCivQkdCQ0JrQqNCQINCC0J7QoNCC0JUKK9CR0JDQmtCo0JAg0JjQnNCg0JUKK9CR0JDQmtCo0JAg0IjQntCW0JXQpAor0JHQkNCa0KjQkCDQm9CQ0IjQntCoCivQkdCQ0JrQqNCQINCb0JDQiNCe0KgKK9CR0JDQmtCo0JAg0JvQkNCh0JvQngor0JHQkNCa0KjQkCDQnNCQ0JPQlNCQCivQkdCQ0JrQqNCQINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JrQqNCQINCX0J7Qm9Ci0JDQnQor0JHQkNCa0KjQkCDQl9Ce0JvQotCQ0J0KK9CR0JDQmtCQINCQ0J3QotCQ0JsKK9CR0JDQmtCQINCY0KjQotCS0JDQnQor0JHQkNCa0JAg0JjQqNCi0JLQkNCdCivQkdCQ0JrQkCDQmNCo0KLQktCQ0J0KK9CR0JDQmtCQINCY0JHQntCJ0JAKK9CR0JDQmtCQINCc0JjQm9CY0KbQkAor0JHQkNCa0JDQmCDQmNCg0JXQnQor0JHQkNCa0JDQiCDQmNCS0JDQnQor0JHQkNCa0JDQiCDQnNCY0InQmtCeCivQkdCQ0JrQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JrQkNCI0JjQnSDQlNCe0JHQoNCY0JvQkAor0JHQkNCa0JDQiNCY0J0g0InQo9CR0J7QnNCY0KAKK9CR0JDQmtCQ0IjQmNCdINCd0JXQktCV0J3QmtCQCivQkdCQ0JrQkNCI0JjQnSDQotCe0JTQntCgCivQkdCQ0JrQkNCb0JjQiyDQgtCj0JvQmNCd0JrQkCDQodCj0JTQmNCI0JAKK9CR0JDQmtCQ0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JrQkNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCQ0JrQkNCb0J7QktCY0Isg0J3QldCc0JDQitCQCivQkdCQ0JrQldCSINCC0J7QoNCC0JUKK9CR0JDQmtCYINCY0KDQldCd0JAKK9CR0JDQmtCYINCe0KLQngor0JHQkNCa0Jgg0JLQldCg0JAKK9CR0JDQmtCY0Kgg0KfQldCU0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQkdCQ0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0JDQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCQ0JrQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQkdCQ0JrQmNCLINCY0JLQkNCdCivQkdCQ0JrQmNCLINCI0J7QktCQ0J0KK9CR0JDQmtCY0Isg0JrQntCh0KLQkAor0JHQkNCa0JjQiyDQnNCY0IjQntCc0JjQoAor0JHQkNCa0JjQiyDQnNCY0JvQntCoCivQkdCQ0JrQmNCLINCc0JjQm9Ce0KgKK9CR0JDQmtCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0JDQmtCY0Isg0JzQmNCg0JAKK9CR0JDQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JrQmNCLINCd0JDQlNCQCivQkdCQ0JrQmNCLINCh0JjQndCY0KjQkAor0JHQkNCa0JjQiyDQodCe0IrQkAor0JHQkNCa0JvQkNCY0Isg0IjQntCS0JDQndCa0JAKK9CR0JDQmtCc0JDQlyDQm9CQ0JfQngor0JHQkNCa0JzQkNCXINCJ0KPQkdCQ0J0KK9CR0JDQmtCc0JDQlyDQl9Ce0KDQkNCdCivQkdCQ0JrQniDQnNCY0KjQkAor0JHQkNCa0J7Qp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCQ0JrQntCoINCC0JXQoNCC0JgKK9CR0JDQmtCe0Kgg0JPQkNCR0J7QoAor0JHQkNCa0J7QqCDQm9CQ0IjQntCoCivQkdCQ0JrQntCoINCb0JDQodCb0J4KK9CR0JDQmtCe0Kgg0JzQkNCg0JjQiNCQCivQkdCQ0JrQntCoINCf0JDQmwor0JHQkNCa0J7QqCDQn9CV0KLQkNCgCivQkdCQ0JrQntCoINCi0JXQoNCV0JfQmNCI0JAKK9CR0JDQmtCe0JLQmNCLINCg0JDQlNCVCivQkdCQ0JrQotCQ0Jgg0KHQotCV0JLQkNCdCivQkdCQ0JrQo9Cd0JjQiyDQmNCS0JDQnQor0JHQkNCa0KPQndCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JHQkNCa0JLQmNCLINCc0JjQm9CQ0J0KK9CR0JDQmyDQmtCQ0KDQm9CeCivQkdCQ0Jsg0JfQktCe0J3QmNCc0JjQoAor0JHQkNCb0KfQkNCa0J7QktCY0Isg0JLQkNCh0J4KK9CR0JDQm9Co0JjQiyDQoNCQ0J3QmtCQCivQkdCQ0JvQkCDQldCi0JXQm9Ca0JAKK9CR0JDQm9CQINCY0KjQotCS0JDQnQor0JHQkNCb0JAg0IjQkNCd0J7QqAor0JHQkNCb0JAg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQkNCb0JAg0IjQo9Cb0JjQiNCQCivQkdCQ0JvQkCDQmtCQ0KDQm9CeCivQkdCQ0JvQkCDQmtCQ0KDQm9CeCivQkdCQ0JvQkCDQmtCQ0KDQntCJCivQkdCQ0JvQkCDQm9CQ0JTQmNCh0JvQkNCSCivQkdCQ0JvQkCDQnNCY0KXQkNCJCivQkdCQ0JvQkCDQotCV0KDQldCXCivQkdCQ0JvQkNCo0JAg0IjQntCW0JXQpAor0JHQkNCb0JDQiyDQkNCd0JAKK9CR0JDQm9CQ0Isg0JTQo9Co0JDQndCa0JAKK9CR0JDQm9CQ0Isg0IjQntCS0JDQnQor0JHQkNCb0JDQiyDQidCj0JHQngor0JHQkNCb0JDQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JvQkNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQm9CQ0Isg0KHQm9CQ0JLQmtCeCivQkdCQ0JvQkNCLINCh0KDQkdCY0KHQm9CQ0JIKK9CR0JDQm9CQ0Isg0KHQotCV0JLQkNCdCivQkdCQ0JvQkNCLINCS0KPQiNCeCivQkdCQ0JvQkNCLINCX0J7QoNCQCivQkdCQ0JvQkNCWINCo0JDQndCU0J7QoAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQkNCU0JDQm9CR0JXQoNCiCivQkdCQ0JvQkNCWINCQ0J3QkAor0JHQkNCb0JDQliDQldCi0JXQm9Ca0JAKK9CR0JDQm9CQ0JYg0JPQldCX0JAKK9CR0JDQm9CQ0JYg0JPQldCX0JAKK9CR0JDQm9CQ0JYg0JjQoNCV0J3QkAor0JHQkNCb0JDQliDQmNCS0JDQndCa0JAKK9CR0JDQm9CQ0JYg0IjQkNCd0JjQmtCQCivQkdCQ0JvQkNCWINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCQ0JvQkNCWINCI0J7QodCY0J8KK9CR0JDQm9CQ0JYg0IjQntCS0JDQnQor0JHQkNCb0JDQliDQmtCQ0KLQkNCg0JjQndCQCivQkdCQ0JvQkNCWINCb0JDQodCb0J4KK9CR0JDQm9CQ0JYg0J/QkNCbCivQkdCQ0JvQkNCWINCf0JDQmwor0JHQkNCb0JDQli3Qn9CY0KDQmCDQgtCV0KDQggor0JHQkNCb0JDQliDQl9CY0KLQkAor0JHQkNCb0JDQltCV0JIg0KHQotCY0J/QkNCdCivQkdCQ0JvQkNCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQm9CQ0JHQkNCdINCR0J7QqNCa0J4KK9CR0JDQm9CQ0JHQkNCdINCR0KDQkNCd0JrQngor0JHQkNCb0JDQkdCQ0J0g0JzQmNCb0J7QktCQ0J0KK9CR0JDQm9CQ0JHQkNCdINCc0JjQm9Cj0KLQmNCdCivQkdCQ0JvQkNCR0JDQnSDQndCV0ILQngor0JHQkNCb0JDQkdCQ0J0g0J/QldCi0JDQoAor0JHQkNCb0JDQkdCQ0J0g0KHQkNCS0J4KK9CR0JDQm9CQ0JHQkNCdINCh0J/QntCc0JXQndCa0JAKK9CR0JDQm9CQ0JHQkNCdINCS0JjQlAor0JHQkNCb0JDQkdCQ0J0g0JLQo9Ca0JDQqNCY0J0KK9CR0JDQm9CQ0JHQkNCd0J7QkiDQkNCd0JAKK9CR0JDQm9CQ0JHQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQm9CQ0JHQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCQ0JvQkNCIINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JvQkNCb0JjQiyDQj9CV0JLQkNCUINCU0JjQn9CbINCY0J3Qkwor0JHQkNCb0JDQm9CY0Isg0I/QldCS0JDQlAor0JHQkNCb0JDQndCV0KHQmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0JvQkNCiINCY0KDQldCd0JAKK9CR0JDQm9CQ0KLQntCdINCC0JXQoNCCCivQkdCQ0JvQkNCi0J7QnSDQgtCV0KDQggor0JHQkNCb0JDQotCe0J0g0ILQldCg0IIKK9CR0JDQm9CQ0KLQntCdINCR0JXQm9CQCivQkdCQ0JvQkNCi0J7QnSDQmNCc0KDQlQor0JHQkNCb0JDQotCe0J0g0JzQkNCT0JTQntCb0J3QkAor0JHQkNCb0JDQotCe0J0g0J/QldCi0JDQoAor0JHQkNCb0KbQkCDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0JvQptCQINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQm9CU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0JvQldCd0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CR0JDQm9CV0KAg0IjQntCh0JjQnwor0JHQkNCb0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JDQm9CT0J4g0KTQoNCQ0J3QptCY0KjQmtCQCivQkdCQ0JvQmCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQkNCb0Jgg0JPQkNCR0J7QoAor0JHQkNCb0Jgg0JvQkNCh0JvQngor0JHQkNCb0JjQiyDQldCh0JDQlAor0JHQkNCb0JjQliDQmNCb0JTQkAor0JHQkNCb0JjQliDQnNCY0KXQkNCJCivQkdCQ0JvQmNCWINCX0J7Qm9Ci0JDQnQor0JHQkNCb0JjQndCUINCf0JDQmwor0JHQkNCb0JjQndCUINCh0JjQm9CS0JjQkAor0JHQkNCb0JjQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JHQkNCb0JjQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0JHQkNCb0JjQndCiINCo0JDQndCU0J7QoCDQnNCgCivQkdCQ0JvQmNCd0KIg0JbQmNCT0JzQo9Cd0JQKK9CR0JDQm9CY0J3QoiDQgtCe0KDQgtCVCivQkdCQ0JvQmNCd0KIg0ILQo9Cg0JAKK9CR0JDQm9CY0J3QoiDQkNCd0JTQoNCV0IgKK9CR0JDQm9CY0J3QoiDQlNCV0JbQlQor0JHQkNCb0JjQndCiINCY0KjQotCS0JDQnQor0JHQkNCb0JjQndCiINCY0JvQntCd0JAKK9CR0JDQm9CY0J3QoiDQmNCc0KDQlQor0JHQkNCb0JjQndCiINCY0JzQoNCVCivQkdCQ0JvQmNCd0KIg0IjQntCW0JXQpAor0JHQkNCb0JjQndCiINCI0J7QltCV0KQKK9CR0JDQm9CY0J3QoiDQiNCe0KHQmNCfCivQkdCQ0JvQmNCd0KIg0IjQntCh0JjQnwor0JHQkNCb0JjQndCiINCI0J7QodCY0J8KK9CR0JDQm9CY0J3QoiDQiNCj0JvQmNCI0JDQndCQCivQkdCQ0JvQmNCd0KIg0JrQkNCg0J7QiQor0JHQkNCb0JjQndCiINCc0JDQi9CQ0KgKK9CR0JDQm9CY0J3QoiDQnNCQ0KDQk9CQ0KDQldCi0JAKK9CR0JDQm9CY0J3QoiDQnNCQ0KDQmNCQCivQkdCQ0JvQmNCd0KIg0JzQkNCg0JjQiNCQCivQkdCQ0JvQmNCd0KIg0JzQkNCg0JjQiNCQCivQkdCQ0JvQmNCd0KIg0JzQmNCl0JDQmNCb0J4KK9CR0JDQm9CY0J3QoiDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JvQmNCd0KIt0JzQmNCi0KDQntCS0JjQiyDQntCb0JPQkAor0JHQkNCb0JjQndCiINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQm9CY0J3QoiDQoNCe0JHQldCg0KIKK9CR0JDQm9CY0J3QoiDQodCb0JDQktCe0JzQmNCgCivQkdCQ0Ikg0JHQoNCQ0J3QmtCeCivQkdCQ0Ikg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQiSDQodCQ0JLQngor0JHQkNCJ0JAg0JjQlNCg0JjQlwor0JHQkNCJ0JDQmiDQp9CV0JTQntCc0JjQoAor0JHQkNCJ0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0InQntCo0JXQktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JHQkNCJ0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9CR0JDQidCe0KjQldCS0JjQiyDQnNCY0KDQngor0JHQkNCJ0J7Ql9Ce0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQkdCQ0InQntCX0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkiDQlNCgCivQkdCQ0JvQmtCe0JLQntCIINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQm9Cd0J7QltCQ0J0g0J3QldCS0JXQndCa0JAKK9CR0JDQm9Cd0J7QltCQ0J0g0KHQmNCc0JAKK9CR0JDQm9CeINCT0JDQqNCf0JDQoAor0JHQkNCb0J4g0J/QldCi0JDQoAor0JHQkNCb0J7QqCDQndCj0KbQkAor0JHQkNCb0J7QqCDQotCe0JTQntCgCivQkdCQ0JvQntCoINCi0J7QlNCe0KAKK9CR0JDQm9Ce0JHQkNCdINCc0JjQm9CQ0J0KK9CR0JDQm9Ce0JHQkNCdINCc0JjQm9CQ0J0KK9CR0JDQm9Ce0JMg0KjQkNCd0JTQntCgCivQkdCQ0JvQntCTINCW0JjQktCa0JAKK9CR0JDQm9Ce0JMg0JbQo9CW0JDQndCQCivQkdCQ0JvQntCTINCC0J7QoNCC0JUKK9CR0JDQm9Ce0JMg0ILQntCg0ILQlQor0JHQkNCb0J7QkyDQgtCe0KDQgtCVCivQkdCQ0JvQntCTINCC0KPQoNCQCivQkdCQ0JvQntCTINCC0KPQoNCQCivQkdCQ0JvQntCTINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0JvQntCTINCQ0J3QkAor0JHQkNCb0J7QkyDQkNCd0JAKK9CR0JDQm9Ce0JMg0JDQndCQCivQkdCQ0JvQntCTINCQ0J3QlNCg0JDQqAor0JHQkNCb0J7QkyDQkNCd0JTQoNCY0IjQkAor0JHQkNCb0J7QkyDQkdCV0JvQkAor0JHQkNCb0J7QkyDQkdCg0JDQndCa0J4KK9CR0JDQm9Ce0JMg0JTQldCW0JUKK9CR0JDQm9Ce0JMg0JTQldCW0JUKK9CR0JDQm9Ce0JMg0JTQoNCQ0JPQkNCdCivQkdCQ0JvQntCTINCU0KPQqNCQ0J3QmtCQCivQkdCQ0JvQntCTINCk0JXQoNCV0J3Qpgor0JHQkNCb0J7QkyDQpNCg0JDQitCQCivQkdCQ0JvQntCTINCk0KDQkNCK0JAKK9CR0JDQm9Ce0JMg0KTQoNCQ0IrQkAor0JHQkNCb0J7QkyDQmNCo0KLQktCQ0J0KK9CR0JDQm9Ce0JMg0JjQkdCe0IjQmtCQCivQkdCQ0JvQntCTINCY0JzQoNCVCivQkdCQ0JvQntCTINCY0JzQoNCVCivQkdCQ0JvQntCTINCI0J7QltCV0KQKK9CR0JDQm9Ce0JMg0IjQntCm0JAKK9CR0JDQm9Ce0JMg0IjQntCS0JDQnQor0JHQkNCb0J7QkyDQiNCj0JvQmNCI0JDQndCQCivQkdCQ0JvQntCTINCI0KPQm9CY0IjQkNCd0JAKK9CR0JDQm9Ce0JMg0JrQkNCb0JzQkNCdCivQkdCQ0JvQntCTINCa0JDQoNCe0IkKK9CR0JDQm9Ce0JMg0JrQkNCg0J7QiQor0JHQkNCb0J7QkyDQmtCQ0KLQkNCg0JjQndCQCivQkdCQ0JvQntCTINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JDQm9Ce0JMg0JvQkNCU0JjQodCb0JDQkgor0JHQkNCb0J7QkyDQm9CQ0KHQm9CeCivQkdCQ0JvQntCTINCc0JDQk9CU0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JjQiNCQCivQkdCQ0JvQntCTINCc0JDQoNCY0IjQkAor0JHQkNCb0J7QkyDQnNCQ0KDQmNCI0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JjQiNCQCivQkdCQ0JvQntCTINCc0JDQoNCY0IjQkAor0JHQkNCb0J7QkyDQnNCQ0KDQotCQCivQkdCQ0JvQntCTINCc0JjQm9CV0J3QkAor0JHQkNCb0J7QkyDQnNCY0KDQmtCeCivQkdCQ0JvQntCTINCd0JjQmtCe0JvQkAor0JHQkNCb0J7QkyDQndCY0JrQntCb0JAKK9CR0JDQm9Ce0JMg0J/QmNCo0KLQkAor0JHQkNCb0J7QkyDQn9CY0KDQntCo0JrQkAor0JHQkNCb0J7QkyDQodCY0JzQkAor0JHQkNCb0J7QkyDQodCc0JjQidCQCivQkdCQ0JvQntCTINCh0J/QntCc0JXQndCa0JAKK9CR0JDQm9Ce0JMg0KHQotCV0JLQkNCdCivQkdCQ0JvQntCTINCh0KLQldCS0JDQnQor0JHQkNCb0J7QkyDQodCi0JXQktCQ0J0KK9CR0JDQm9Ce0JMg0KLQmNCR0J7QoAor0JHQkNCb0J7QkyDQktCV0JvQmNCc0JjQoAor0JHQkNCb0J7QkyDQl9Ce0KDQkNCdCivQkdCQ0JvQntCaINCY0KjQotCS0JDQnQor0JHQkNCb0J7QktCY0Isg0JzQmNCb0JjQiwor0JHQkNCb0KLQkCDQkNCd0JAKK9CR0JDQm9Ci0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0JDQm9Ci0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQkNCb0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JHQkNCb0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQm9Ci0J7QktCY0Isg0J/QldCi0JDQoAor0JHQkNCb0KPQndCe0JLQmNCLINCY0JLQkNCdCivQkdCQ0JzQkdCj0JvQntCS0JjQiyDQnNCY0JvQmtCQCivQkdCQ0J0g0KHQotCV0JLQkNCdCivQkdCQ0J3Qp9CV0JLQmNCLINCf0JXQotCQ0KAKK9CR0JDQndCn0JXQktCY0Isg0KDQkNCU0JUKK9CR0JDQndCn0Jgg0JHQkNCb0JjQndCiCivQkdCQ0J3Qp9CYINCa0JDQoNCe0IkKK9CR0JDQndCn0JjQiyDQltCY0JLQmtCeCivQkdCQ0J3Qp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQndCn0JjQiyDQiNCe0JLQkNCdCivQkdCQ0J3Qp9CY0Isg0IjQo9Cb0JrQkAor0JHQkNCd0KfQmNCLINCb0JDQl9CQCivQkdCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0J3Qp9CY0Isg0KHQntCk0JjQiNCQCivQkdCQ0J3Qp9CY0Isg0KHQotCV0JLQmNCm0JAKK9CR0JDQndCn0JjQiyDQotCe0JTQntCgCivQkdCQ0J3QgtCj0KAg0JzQmNCg0JrQngor0JHQkNCd0JDQi9CQ0J3QmNCdINCJ0JjQidCQ0J3QkAor0JHQkNCd0JDQi9CQ0J3QmNCdINCe0JvQk9CQCivQkdCQ0J3QkNCYINCi0JjQkdCe0KAKK9CR0JDQndCQ0Jgg0JLQldCg0JAKK9CR0JDQndCQ0Igg0IjQntCh0JjQnwor0JHQkNCd0JTQkCDQltCY0JLQmtCeCivQkdCQ0J3QlNCY0Isg0JHQm9CQ0JPQntCI0JUKK9CR0JDQndCU0JjQiyDQiNCV0JvQmNCm0JAKK9CR0JDQndCU0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCd0JTQmNCLINCJ0KPQkdCeCivQkdCQ0J3QlNCY0Isg0KDQkNCU0JUKK9CR0JDQndCU0JjQiyDQodCQ0JLQmtCQCivQkdCQ0J3QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQkNCd0JTQmNCLINCS0JXQoNCY0KbQkAor0JHQkNCd0JTQmNCLINCS0KPQiNCQ0JTQmNCdCivQkdCQ0J3QlNCY0J0g0JbQmNCS0J7QoNCQ0JQKK9CR0JDQndCU0JjQnSDQmNCS0JDQnQor0JHQkNCd0JTQmNCdINCa0JDQotCY0KbQkAor0JHQkNCd0JTQmNCdINCc0JjQntCU0KDQkNCTCivQkdCQ0J3QlNCY0J0g0JzQm9CQ0JTQldCdCivQkdCQ0J3QlNCe0JHQoNCQ0J3QodCa0Jgg0J7Qm9CT0JAKK9CR0JDQndCU0J7Qm9CeINCU0KDQkNCT0JjQptCQCivQkdCQ0J3QlNCj0JrQkCDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0J3QpNCYINCc0JDQoNCY0IjQkAor0JHQkNCd0JPQniDQidCj0JTQldCS0JjQogor0JHQkNCd0JjQiyDQkNCd0ILQkAor0JHQkNCd0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQkNCd0JjQiyDQkdCg0JDQndCa0J4g0JTQoAor0JHQkNCd0JjQiyDQldCc0JjQm9CY0IjQkAor0JHQkNCd0JjQiyDQldCS0JjQptCQCivQkdCQ0J3QmNCLINCa0JDQotCY0KbQkAor0JHQkNCd0JjQiyDQnNCY0JvQntCoCivQkdCQ0J3QmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCQ0J3QmNCLINCf0JDQndCVCivQkdCQ0J3QmNCLINCf0JXQotCQ0KAKK9CR0JDQndCY0Isg0KDQkNCU0JUKK9CR0JDQndCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0JDQndCY0Isg0KDQkNCh0KLQmtCeCivQkdCQ0J3QmNCLINCg0KPQltCY0KbQkAor0JHQkNCd0JjQiyDQodCb0JDQktCa0J4KK9CR0JDQndCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQkNCd0JjQiyDQl9Ce0KDQmtCQCivQkdCQ0J3QmNCL0JXQktCY0Isg0IjQldCb0JXQndCQCivQkdCQ0J3QmNCL0JXQktCY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JDQndCY0JAt0JbQmNCS0JDQlNCY0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQkNCK0JDQqCDQgtCj0KDQkAor0JHQkNCK0JDQpiDQp9CV0JTQntCc0JjQoAor0JHQkNCK0JDQpiDQp9CV0JTQngor0JHQkNCK0JDQpiDQp9CV0JTQngor0JHQkNCK0JDQpiDQqNCf0JjQoNCeINCU0JjQn9CbINCY0J3Qkwor0JHQkNCK0JDQpiDQltCY0JLQkNCdCivQkdCQ0IrQkNCmINCC0J7QoNCC0JUKK9CR0JDQitCQ0KYg0ILQntCg0ILQlQor0JHQkNCK0JDQpiDQgtCe0KDQgtCVCivQkdCQ0IrQkNCmINCR0J7QodCY0InQmtCQCivQkdCQ0IrQkNCmINCU0JDQndCY0JvQngor0JHQkNCK0JDQpiDQlNCc0JjQotCQ0KAKK9CR0JDQitCQ0KYg0JTQoNCQ0JPQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQkNCK0JDQpiDQlNCg0JDQk9CQ0J0KK9CR0JDQitCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CR0JDQitCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CR0JDQitCQ0KYg0JTQo9Co0JDQnQor0JHQkNCK0JDQpiDQlNCj0KjQmtCeCivQkdCQ0IrQkNCmINCU0KPQqNCa0J4KK9CR0JDQitCQ0KYg0JXQnNCY0JsKK9CR0JDQitCQ0KYg0JPQkNCS0KDQkAor0JHQkNCK0JDQpiDQk9Ce0IjQmtCeCivQkdCQ0IrQkNCmINCI0JXQm9CV0J3QkAor0JHQkNCK0JDQpiDQiNCe0JLQkNCdCivQkdCQ0IrQkNCmINCI0J7QktCQ0J0KK9CR0JDQitCQ0KYg0JrQkNCi0JjQptCQCivQkdCQ0IrQkNCmINCc0JjQm9CQ0J0KK9CR0JDQitCQ0KYg0JzQmNCb0JDQnQor0JHQkNCK0JDQpiDQnNCY0JvQlQor0JHQkNCK0JDQpiDQnNCY0JvQntCg0JDQlAor0JHQkNCK0JDQpiDQnNCY0KDQmtCeCivQkdCQ0IrQkNCmINCd0JXQlNCV0InQmtCeCivQkdCQ0IrQkNCmINCd0JjQmtCe0JvQkAor0JHQkNCK0JDQpiDQntCb0JPQkAor0JHQkNCK0JDQpiDQn9CV0KDQngor0JHQkNCK0JDQpiDQn9CV0KLQkNCgCivQkdCQ0IrQkNCmINCg0JDQlNCQCivQkdCQ0IrQkNCmINCg0JDQlNCe0IrQkAor0JHQkNCK0JDQpiDQodCQ0JLQkAor0JHQkNCK0JDQpiDQodCQ0JLQkAor0JHQkNCK0JDQpiDQodCQ0JLQldCi0JAKK9CR0JDQitCQ0KYg0KHQkNCS0J4KK9CR0JDQitCQ0KYg0KHQm9CQ0JLQmtCeCivQkdCQ0IrQkNCmINCh0JvQkNCS0J3QkAor0JHQkNCK0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0IrQkNCmINCh0KLQldCS0JDQnQor0JHQkNCK0JDQpiDQotCV0J7QlNCe0KAKK9CR0JDQitCQ0KYg0JLQldCh0J3QkAor0JHQkNCK0JDQpiDQktCY0J3QmtCeCivQkdCQ0IrQkNCmINCS0JjQotCe0JzQmNCgCivQkdCQ0IrQkNCmINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JDQitCQ0Jgg0IjQkNCT0JAKK9CR0JDQitCQ0Jgg0IjQkNCd0J7QqAor0JHQkNCK0JDQmCDQiNCe0JLQkNCdCivQkdCQ0IrQkNCYINCb0JDQiNCe0KgKK9CR0JDQitCQ0Jgg0JzQkNCL0JDQqAor0JHQkNCK0JDQmCDQnNCQ0KDQmNCI0JAKK9CR0JDQitCQ0Jgg0KDQntCc0JDQnQor0JHQkNCK0JDQmCDQoNCj0JbQkAor0JHQkNCK0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQkdCQ0IrQkNCd0JDQpiDQkdCg0JDQotCY0KHQm9CQ0JIKK9CR0JDQitCQ0J3QkNCmINCc0JjQm9CQ0J0KK9CR0JDQitCQ0J3QkNCmINCg0JDQlNCVCivQkdCQ0IrQkNCd0JDQpiDQodCb0JDQktCY0KbQkAor0JHQkNCK0JDQndCY0J0g0JTQkNCd0JjQptCQCivQkdCQ0IrQkNCd0JjQnSDQlNCQ0KDQkAor0JHQkNCK0JDQndCY0J0g0IjQldCb0JXQndCQCivQkdCQ0IrQkNCd0JjQnSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JHQkNCK0JDQndCY0J0g0IjQntCS0JDQnQor0JHQkNCK0JDQndCY0J0g0J3QldCU0JXQidCa0J4KK9CR0JDQitCQ0J3QmNCdINCd0JXQlNCV0InQmtCeCivQkdCQ0IrQkNCd0JjQnSDQndCY0JrQntCb0JAKK9CR0JDQitCQ0J3QmNCdINCd0JjQmtCe0JvQkAor0JHQkNCK0JDQndCY0J0g0KDQkNCU0JzQmNCb0JAKK9CR0JDQitCQ0J3QmNCdINCh0J7QpNCY0IjQkAor0JHQkNCK0JDQndCY0J0g0JLQldCb0JjQnNCY0KAKK9CR0JDQitCQ0KDQmCDQm9CQ0IjQntCoCivQkdCQ0IrQldCT0JvQkNCSINCR0J7QltCQCivQkdCQ0IrQldCT0JvQkNCSINCU0KDQkNCT0JDQnQor0JHQkNCK0JXQk9Cb0JDQkiDQlNCj0KjQkNCdCivQkdCQ0IrQldCT0JvQkNCSINCd0JjQmtCe0JvQkAor0JHQkNCK0JXQk9Cb0JDQkiDQoNCQ0JTQmNCS0J7QiAor0JHQkNCK0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQndCa0JAg0JvQkNCI0J7QqAor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0ILQo9Cg0JAKK9CR0JDQndCa0J7QktCQ0KfQmtCYINCI0J7QktCQ0J0KK9CR0JDQndCa0J7QktCQ0KfQmtCYINCc0JDQoNCY0IjQkAor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0J3QkNCU0JAKK9CR0JDQndCa0J7QktCQ0KfQmtCYINCf0JXQotCQ0KAKK9CR0JDQndCa0J7QktCQ0KfQmtCYINCh0JDQktCQCivQkdCQ0J3QmtCe0JLQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQkdCQ0J3QmtCe0JLQmNCLINCc0JjQm9Cj0J0KK9CR0JDQndCe0JLQp9CQ0J3QmNCdINCU0KDQkNCT0JjQptCQCivQkdCQ0J3QntCS0KfQkNCd0JjQnSDQnNCY0JvQkNCdCivQkdCQ0J3QntCS0KfQkNCd0JjQnSDQnNCe0JzQp9CY0JvQngor0JHQkNCd0J7QktCQ0KfQmtCYINCC0J7QoNCC0JUKK9CR0JDQndCe0JLQkNCn0JrQmCDQiNCe0JLQkNCdCivQkdCQ0J3QntCS0JDQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQkdCQ0J3QntCS0JDQp9Ca0Jgg0KDQo9CW0JjQptCQCivQkdCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQkdCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JHQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CR0JDQndCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CR0JDQndCe0JLQmNCLLdCb0J7QpiDQndCQ0JTQkAor0JHQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCd0J7QktCY0Isg0JzQmNCJ0JrQngor0JHQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0J3QntCS0JjQiyDQodCb0JDQktCQCivQkdCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0J3QodCa0Jgg0JXQoNCY0JrQkAor0JHQkNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0JHQkNCg0KfQmNCa0JjQnSDQgtCe0KDQgtCVCivQkdCQ0KDQqNCYINCV0J3QlNCg0JUKK9CR0JDQoNCo0Jgg0JvQkNCh0JvQngor0JHQkNCg0JDQp9CQ0J3QmNCdINCU0JDQndCY0KbQkAor0JHQkNCg0JDQp9CQ0J3QmNCdINCb0JDQl9CQ0KAKK9CR0JDQoNCQ0KfQkNCd0JjQnSDQn9CQ0IjQkAor0JHQkNCg0JDQp9CQ0J3QmNCdINCh0JDQktCa0JAKK9CR0JDQoNCQ0KfQmCDQodCi0JXQktCQ0J0KK9CR0JDQoNCQ0KfQmtCe0JIg0KfQldCU0J7QnNCY0KAKK9CR0JDQoNCQ0KfQmtCe0JIg0ILQntCg0ILQlQor0JHQkNCg0JDQp9Ca0J7QkiDQk9Ce0KDQmNCd0JrQkAor0JHQkNCg0JDQp9Ca0J7QkiDQnNCY0JvQkNCdCivQkdCQ0KDQkNCn0JrQntCSINCh0KDQldCU0J7QiNCVCivQkdCQ0KDQkNCn0JrQntCSINCS0JXQodCV0JvQmNCdCivQkdCQ0KDQkNCo0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQkdCQ0KDQkNCo0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQkNCg0JDQqNCY0J0g0JPQntCg0JDQnQor0JHQkNCg0JDQqNCY0J0g0InQo9CR0J7QnNCY0KAKK9CR0JDQoNCQ0KjQmNCdINCd0JXQktCV0J3QmtCQCivQkdCQ0KDQkNCo0JjQnSDQodCQ0JLQkAor0JHQkNCg0JDQiyDQltCQ0KDQmtCeCivQkdCQ0KDQkNCLINCU0KDQkNCT0JjQptCQCivQkdCQ0KDQkNCLINCU0KPQqNCQ0J3QmtCQCivQkdCQ0KDQkNCLINCT0J7QlNCY0JzQmNCgCivQkdCQ0KDQkNCLINCT0J7QiNCa0J4KK9CR0JDQoNCQ0Isg0IjQntCh0JjQnwor0JHQkNCg0JDQiyDQmtCe0JLQmNCJ0JrQkAor0JHQkNCg0JDQiyDQnNCY0JvQkNCdCivQkdCQ0KDQkNCLINCc0JjQm9Ce0KgKK9CR0JDQoNCQ0Isg0JzQmNCb0J7QqAor0JHQkNCg0JDQiyDQnNCY0JvQntCh0JDQktCQCivQkdCQ0KDQkNCLINCc0J7QnNCn0JjQm9CeCivQkdCQ0KDQkNCLINCg0JDQlNCe0IrQkAor0JHQkNCg0JDQiyDQodCQ0KDQkNCk0JjQndCQCivQkdCQ0KDQkNCLINCh0KLQkNCd0JjQnNCY0KDQmtCQCivQkdCQ0KDQkNCLINCS0JXQodCV0JvQmNCdCivQkdCQ0KDQkNCLINCS0JjQlNCQ0JoKK9CR0JDQoNCQ0Isg0JLQo9Cn0JjQndCQCivQkdCQ0KDQkNCmINCc0JDQm9CY0KjQkAor0JHQkNCg0JDQpiDQnNCQ0KDQmtCeCivQkdCQ0KDQkNCmINCd0J7QktCeCivQkdCQ0KDQkNCmINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JDQoNCQ0IjQldCS0JDQpiDQiNCe0JLQkAor0JHQkNCg0JDQmtCeINCh0JDQktCQCivQkdCQ0KDQkNCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0KDQkNCdINCI0JDQmtCY0JwKK9CR0JDQoNCQ0J0g0JzQmNCl0JDQiNCb0J4KK9CR0JDQoNCQ0J0g0JzQmNCg0J7QnSDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQoNCQ0J3QmNCdINCS0JDQodCY0JvQmNCI0JUKK9CR0JDQoNCQ0IrQkNCYINCI0JXQndCVCivQkdCQ0KDQkNCK0Jgg0KTQldCg0JXQndCmCivQkdCQ0KDQkNCK0Jgg0KTQldCg0JXQndCmCivQkdCQ0KDQkNCK0Jgg0JvQkNCh0JvQngor0JHQkNCg0JDQitCYINCf0JDQktCb0JUKK9CR0JDQoNCQ0IrQmCDQodCi0JXQktCQ0J0KK9CR0JDQoNCQ0J3QntCS0KHQmtCYINCS0JvQkNCU0JAKK9CR0JDQoNCQ0KEg0KLQntCc0JAg0JTQoAor0JHQkNCg0JDQoiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCg0JDQoiDQlNCg0JDQk9CY0KbQkAor0JHQkNCg0JDQoiDQlNCg0JDQk9CY0IrQkAor0JHQkNCg0JDQoiDQpNCV0KDQldCd0KYKK9CR0JDQoNCQ0KIg0JjQnNCg0JUKK9CR0JDQoNCQ0KIg0J7Qm9CT0JAKK9CR0JDQoNCQ0KIg0J7QodCa0JDQoAor0JHQkNCg0JDQotCe0JIg0JHQntCo0JrQngor0JHQkNCg0JHQkNCg0JjQiyDQkNCd0KLQlQor0JHQkNCg0JHQkNCg0JjQiyDQn9CQ0JLQm9CVCivQkdCQ0KDQkdCQ0KLQldCh0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CR0JDQoNCR0JXQoNCY0Isg0JTQoNCQ0JPQkNCdCivQkdCQ0KDQkdCV0KDQmNCLINCc0JjQoNCa0J4KK9CR0JDQoNCR0JjQoCDQkNCd0KLQlQor0JHQkNCg0JHQmNCgINCJ0KPQkdCQCivQkdCQ0KDQkdCjINCS0JDQodCQCivQkdCQ0KDQkdCj0Jsg0JzQkNCg0JjQiNCQCivQkdCQ0KDQkdCj0Jsg0JzQmNCb0JDQnQor0JHQkNCg0JHQo9CbINCc0JjQm9CQ0J0KK9CR0JDQoNCR0KPQmyDQodCQ0JLQkAor0JHQkNCg0JHQo9CbINCh0KLQntCI0JDQnQor0JHQkNCg0JHQo9CbINCS0JvQkNCU0JjQodCb0JDQktCQCivQkdCQ0KDQkdCj0JvQntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQkNCg0JHQo9Cb0J7QkiDQlNCe0JHQoNCY0JLQntCICivQkdCQ0KDQkdCj0JvQntCSINCc0JjQm9CY0JLQntCICivQkdCQ0KDQkdCj0JvQntCSINCd0JjQmtCe0JvQkAor0JHQkNCg0JHQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCQ0KDQkdCj0JfQkNCdINCI0JDQodCd0JAKK9CR0JDQoNCR0KPQl9CQ0J0g0KDQo9CW0JjQptCQCivQkdCQ0KDQptCQ0Jsg0ILQldCg0IIKK9CR0JDQoNCm0JDQmyDQkNCd0JAKK9CR0JDQoNCm0JDQmyDQiNCe0JbQldCkCivQkdCQ0KDQptCQ0Jsg0JvQkNCh0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQoNCm0JXQmyDQmtCQ0KLQmNCm0JAKK9CR0JDQoNCU0JDQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCg0JTQkNCaINCQ0J3QmtCY0KbQkAor0JHQkNCg0JTQkNCaINCb0KPQmtCQCivQkdCQ0KDQlNCY0Isg0JbQldCJ0JrQngor0JHQkNCg0JTQmNCLINCc0JjQoNCa0J4KK9CR0JDQoNCU0J7QqCDQiNCe0JbQldCkCivQkdCQ0KDQlNCe0Kgg0JzQldCb0JDQndCY0IjQkAor0JHQkNCg0JTQo9CdINCa0JDQoNCb0J4KK9CR0JDQoNCV0KjQmNCLINCY0JLQkNCdCivQkdCQ0KDQldCo0JjQiyDQnNCQ0KLQngor0JHQkNCg0JXQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQkNCg0JjQp9CV0JLQmNCLINCh0KLQmNCf0JUKK9CR0JDQoNCY0KfQmNCLINCR0JjQodCV0KDQmtCQCivQkdCQ0KDQmNCo0JjQiyDQkNCd0ILQldCb0JrQngor0JHQkNCg0JjQqNCY0Isg0JHQm9CQ0JPQntCI0JUKK9CR0JDQoNCY0KjQmNCLINCR0J7QqNCa0J4KK9CR0JDQoNCY0KjQmNCLINCY0JvQmNCI0JAKK9CR0JDQoNCY0KjQmNCLINCY0JvQmNCI0JAKK9CR0JDQoNCY0KjQmNCLINCI0JDQitCQCivQkdCQ0KDQmNCo0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQoNCY0KjQmNCLINCc0JDQoNCa0J4KK9CR0JDQoNCY0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQoNCY0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQoNCY0KjQmNCLINCf0JXQotCQ0KAKK9CR0JDQoNCY0KjQmNCLINCh0KLQiNCV0J/QkNCdCivQkdCQ0KDQmNCo0JjQiyDQktCV0KDQntCd0JjQmtCQCivQkdCQ0KDQmNCo0JjQiyDQl9Ce0KDQmtCQCivQkdCQ0KDQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCg0JjQiyDQn9CQ0KPQm9CY0J3QkAor0JHQkNCg0JjQiyDQodCb0JDQktCY0KbQkAor0JHQkNCg0IjQkNCa0KLQkNCgINCh0J/QkNCh0JXQndCY0IjQkAor0JHQkNCg0IjQkNCa0KLQkNCgINCh0KLQldCS0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCW0JjQktCa0J4KK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQkNCg0IjQkNCa0KLQkNCg0JXQktCY0Isg0JzQkNCg0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCc0JDQoNCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0KDQiNCQ0JrQotCQ0KDQldCS0JjQiyDQnNCY0JvQmtCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQldCS0JjQiyDQnNCY0JvQntCI0JUKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCX0JvQkNCi0JrQngor0JHQkNCg0IjQkNCa0KLQkNCg0J7QkiDQnNCY0JvQmNCm0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCe0JLQmNCLINCC0J7QmtCeCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCS0JjQiyDQkNCd0JrQkAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0JzQmNCb0J7QqAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCe0JLQmNCLINCS0KPQp9CY0J3QkAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0JLQo9Cn0JjQndCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCS0JjQiyDQl9Ce0KDQmtCQCivQkdCQ0KDQiNCQ0JzQntCS0JjQiyDQkNCb0JjQmwor0JHQkNCg0IjQkNCc0J7QktCY0Isg0JDQoNCh0JXQndCY0IjQlQor0JHQkNCg0IjQkNCc0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQkNCg0J3QkCDQk9CQ0KjQn9CQ0KAKK9CR0JDQoNCd0JAg0JjQktCQ0J0KK9CR0JDQoNCd0JAg0IjQkNCd0J7QqAor0JHQkNCg0J3QkCDQiNCe0KHQmNCfCivQkdCQ0KDQndCQINCc0JjQpdCQ0IkKK9CR0JDQoNCeINCk0KDQkNCK0J4KK9CR0JDQoNCeINCI0JXQm9CV0J3QkAor0JHQkNCg0J4g0IjQntCW0JXQpAor0JHQkNCg0J4g0IjQntCW0JXQpAor0JHQkNCg0J4g0IjQntCh0JjQnwor0JHQkNCg0J7QqCDQkdCe0JbQngor0JHQkNCg0J7QqCDQkdCe0KDQmNCh0JvQkNCSINCU0KAKK9CR0JDQoNCe0Kgg0JHQntCg0JjQodCb0JDQkgor0JHQkNCg0J7QqCDQm9CQ0JfQngor0JHQkNCg0J7QqCDQndCV0JHQntCI0KjQkAor0JHQkNCg0J7QqCDQndCY0JrQntCb0JAKK9CR0JDQoNCe0Kgg0J3QmNCa0J7Qm9CQCivQkdCQ0KDQntCo0JXQktCY0Isg0IjQntCS0J4KK9CR0JDQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQkdCQ0KDQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCQ0KDQotCQINCC0JXQoNCCCivQkdCQ0KDQotCQINCC0J7QoNCC0JUKK9CR0JDQoNCi0JAg0JDQoNCf0JDQlAor0JHQkNCg0KLQkCDQlNCV0JbQlQor0JHQkNCg0KLQkCDQldCc0JAKK9CR0JDQoNCi0JAg0JjQm9CU0JjQmtCeCivQkdCQ0KDQotCQINCY0KDQnNCQCivQkdCQ0KDQotCQINCc0JDQk9CU0JDQm9CV0J3QkAor0JHQkNCg0KLQldCaINCQ0J3QlNCg0JjQiNCQCivQkdCQ0KDQotCV0Jog0JrQkNCi0JDQoNCY0J3QkAor0JHQkNCg0KLQldCaINCg0KPQlNCe0JvQpCDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQoNCi0JXQmiDQodCi0JXQktCQ0J0KK9CR0JDQoNCi0J7QqCDQlNCQ0J3QmNCb0J4KK9CR0JDQoNCi0J7QqCDQlNCg0JDQk9CY0KbQkAor0JHQkNCg0KLQntCoINCY0JzQoNCVCivQkdCQ0KDQotCe0Kgg0JvQkNCU0JjQodCb0JDQkgor0JHQkNCg0KLQntCoINCb0JDQodCb0J4KK9CR0JDQoNCi0J7QqCDQodCS0JXQotCb0JDQndCQCivQkdCQ0KDQotCe0Kgg0JfQktCe0J3QmNCc0JjQoAor0JHQkNCg0KLQntCIINCc0JjQoNCI0JDQndCQCivQkdCQ0KDQotCe0Jog0JzQkNCg0JPQmNCiCivQkdCQ0KDQotCe0JvQntCS0JjQiyDQkNCd0KLQo9CdCivQkdCQ0KDQotCe0JvQntCS0JjQiyDQiNCe0KHQmNCfCivQkdCQ0KDQotCe0JvQntCS0JjQiyDQnNCQ0KDQmNCdCivQkdCQ0KDQotCj0JvQntCS0JjQiyDQn9CQ0JLQm9CVCivQkdCQ0KDQo9Co0JjQiyDQnNCQ0KDQotCY0J0KK9CR0JDQoNCj0I/QmNCI0JAg0JzQkNCg0JrQngor0JHQkNCg0KPQlNCQ0J3QntCSINCU0KPQqNCQ0J3QmtCQCivQkdCQ0KHQkNCg0JAg0ILQo9Cg0J4KK9CR0JDQodCQ0KDQkCDQkNCd0JrQkAor0JHQkNCh0JDQoNCQINCU0JjQktCd0JAKK9CR0JDQodCQ0KDQkCDQlNCg0JDQk9CY0KbQkAor0JHQkNCh0JDQoNCQINCI0J7QktCQ0J0KK9CR0JDQodCQ0KDQkCDQnNCQ0KDQotCQCivQkdCQ0KHQkNCg0JAg0JzQmNCb0JjQktCe0IgKK9CR0JDQodCQ0KDQkCDQnNCY0KDQkAor0JHQkNCh0JDQoNCQINCf0JDQiNCeCivQkdCQ0KHQkNCg0JDQkdCQINCU0KPQqNCY0KbQkAor0JHQkNCh0JDQoNCY0Isg0JHQntCT0JTQkNCdCivQkdCQ0KHQkNCg0JjQiyDQlNCQ0J3QlQor0JHQkNCh0JDQoNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CR0JDQodCQ0KDQmNCLINCU0KPQqNCQ0J0KK9CR0JDQodCQ0KDQmNCLINCI0JXQm9CV0J3QkAor0JHQkNCh0JDQoNCY0Isg0IjQntCS0JDQnQor0JHQkNCh0JDQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQodCQ0KDQmNCLINCc0JjQm9CQ0J0KK9CR0JDQodCQ0KDQmNCLINCc0JjQm9CQ0J0KK9CR0JDQodCQ0KDQmNCLINCc0JjQm9Ca0JAKK9CR0JDQodCQ0KDQmNCLINCc0JjQoNCI0JDQndCQCivQkdCQ0KHQkNCg0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQodCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JHQkNCh0JDQoNCY0Isg0JLQldCg0JAKK9CR0JDQodCY0Isg0JrQntCS0JjQidCa0JAKK9CR0JDQodCY0Isg0KHQoNCC0JDQnQor0JHQkNCh0JjQntCb0Jgg0KHQoNCV0IvQmtCeCivQkdCQ0KHQmtCY0IjQmNCdINCX0J7QoNCQCivQkdCQ0KHQoNCQ0Jog0JHQoNCQ0J3QmtCeCivQkdCQ0KHQoNCQ0Jog0JzQmNCb0JDQnQor0JHQkNCh0KLQkCDQlNCQ0J3QlQor0JHQkNCh0KLQkCDQlNCQ0J3QmNCV0JvQkAor0JHQkNCh0KLQkCDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0KHQotCQINCU0KPQqNCQ0J0KK9CR0JDQodCi0JAg0JjQktCQ0J3QkAor0JHQkNCh0KLQkCDQmtCQ0KLQmNCm0JAKK9CR0JDQodCi0JAg0InQo9CR0JjQptCQCivQkdCQ0KHQotCQINCc0JDQoNCY0IjQkAor0JHQkNCh0KLQkCDQnNCQ0KDQmNCI0JAKK9CR0JDQodCi0JAg0JzQkNCg0JjQiNCQCivQkdCQ0KHQotCQINCc0JjQm9CQ0J0KK9CR0JDQodCi0JAg0JzQmNCb0J7QqAor0JHQkNCh0KLQkCDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0KHQotCQINCd0JjQmtCe0JvQkAor0JHQkNCh0KLQkCDQodCi0JXQktCQCivQkdCQ0KHQotCQINCS0JvQkNCU0J4KK9CR0JDQodCi0JDQpSDQkdCg0JDQndCa0J4KK9CR0JDQodCi0JDQiNCQINCR0KDQkNCd0JrQngor0JHQkNCh0KLQkNCI0JAg0JzQmNCb0JDQnQor0JHQkNCi0JAg0JTQldCX0JjQlNCV0KAKK9CR0JDQotCQINCY0JvQntCd0JAKK9CR0JDQotCQINCa0JDQoNCe0IkKK9CR0JDQotCQINCb0JDQodCb0J4KK9CR0JDQotCQINCb0JDQodCb0J4KK9CR0JDQotCQINCc0JDQoNCT0JjQotCQCivQkdCQ0KLQkNCI0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQkNCi0JDQmiDQldCc0JjQmwor0JHQkNCi0JDQmiDQnNCY0KDQmtCeCivQkdCQ0KLQkNCa0J7QktCY0Isg0JrQntCh0JDQoNCQCivQkdCQ0KLQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCi0JDQmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQkdCQ0KLQkNCb0J7QkiDQoNCQ0JTQmNCm0JAKK9CR0JDQotCQ0J3Qp9CV0JIg0IjQntCS0JDQnQor0JHQkNCi0JDQndCn0JXQkiDQodCb0JDQktCd0JAKK9CR0JDQotCQ0IrQodCa0Jgg0JzQmNCb0JDQnQor0JHQkNCi0JDQitCh0JrQmCDQnNCY0JvQkNCdCivQkdCQ0KLQkNCd0J7QktCY0Isg0JDQndCa0JAKK9CR0JDQotCQ0KAg0KfQldCU0J7QnNCY0KAKK9CR0JDQotCQ0KAg0KfQldCU0J7QnNCY0KAKK9CR0JDQotCQ0KAg0JzQmNCb0J7QqAor0JHQkNCi0JDQoCDQnNCe0JzQmNCgCivQkdCQ0KLQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQotCQ0KAg0JLQldCb0JjQnNCY0KAKK9CR0JDQotCQ0KAg0JLQntCI0JjQnQor0JHQkNCi0JDQoNCY0JvQniDQltCV0InQmtCeCivQkdCQ0KLQkNChINCR0J7QltCQ0J3QkAor0JHQkNCi0JDQlyDQktCb0JDQlNCeCivQkdCQ0KLQldCg0J3QldCaINCY0JLQkNCdCivQkdCQ0KLQmNCLINCC0KPQoNCQ0IIKK9CR0JDQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JDQotCY0Isg0JHQoNCQ0J3QmtCQCivQkdCQ0KLQmNCLINCY0JLQkNCd0JAKK9CR0JDQotCY0Isg0JzQmNCl0JDQiNCb0J4KK9CR0JDQotCY0J3QmNCLINCC0KPQoNCeCivQkdCQ0KLQmNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQotCY0J3QmNCLINCT0J7QoNCU0JDQndCQCivQkdCQ0KLQmNCd0JjQiyDQodCQ0JLQkAor0JHQkNCi0JjQndCY0Isg0KHQn9CQ0KHQntCI0JUKK9CR0JDQotCY0KHQotCY0Isg0JjQktCQ0J0KK9CR0JDQotCa0JjQiyDQiNCj0KHQo9CkCivQkdCQ0KLQmtCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CR0JDQotCa0J7QktCY0Isg0JzQkNCg0JAKK9CR0JDQotCe0KDQmCDQiNCQ0J3QntCoCivQkdCQ0KLQntCg0Jgg0IjQntCW0JXQpAor0JHQkNCi0J7QoNCYINCc0JDQoNCY0IjQkAor0JHQkNCi0J7QoNCYINCc0JDQoNCY0IjQkAor0JHQkNCi0J7QoNCYINCc0JjQpdCQ0IkKK9CR0JDQotCe0KDQmCDQnNCY0KXQkNCJCivQkdCQ0KLQntCg0Jgg0JzQmNCl0JDQiQor0JHQkNCi0J7QoSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCi0J7QoSDQkdCe0KjQmtCeCivQkdCQ0KLQntChINCR0J7QqNCa0J4KK9CR0JDQotCe0KEg0JzQmNCb0JDQnQor0JHQkNCi0J7QoSDQndCQ0JTQkAor0JHQkNCi0J7QoSDQoNCQ0JTQmNCS0J7QiAor0JHQkNCi0J7QoSDQl9Ce0KDQmNCm0JAKK9CR0JDQotCg0J3QldCaINCX0JTQldCd0JrQkAor0JHQkNCi0KPQoNCQ0J0g0J7QkdCg0JDQlAor0JHQkNCi0KPQoNCQ0J0g0KDQkNCU0J7QktCQ0J0KK9CR0JDQo9CV0KAg0JXQktCQCivQkdCQ0KPQldCgINCI0KPQm9CY0IjQkNCd0JAKK9CR0JDQo9CV0KAg0JrQodCV0J3QmNCI0JAKK9CR0JDQo9CV0KAg0J7QotCeCivQkdCQ0KPQmiDQlNCg0JDQk9CQ0J0KK9CR0JDQo9Ca0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0KPQoNCQ0J3QntCSINCb0JDQl9CQ0KAKK9CR0JDQktCQ0KDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQktCQ0KDQp9CY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JDQl9CQ0J3Qp9CY0Jog0JLQkNCb0JXQoNCY0IjQkAor0JHQkNCX0J7QmtCY0J0g0JbQmNCS0JjQptCQCivQkdCV0Kcg0IjQkNCK0JAKK9CR0JXQp9CV0Jgg0JvQkNCI0J7QqAor0JHQldCn0JXQiNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQp9CV0IjQkNCmINCR0J7QqNCa0J4KK9CR0JXQp9CV0IjQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCn0JXQiNCQ0KYg0IjQntCS0JDQnQor0JHQldCn0JXQiNCQ0KYg0JrQkNCc0JXQndCa0J4KK9CR0JXQp9CV0IjQkNCmINCc0JjQm9CQ0J0KK9CR0JXQp9CV0IjQkNCmINCg0JDQlNCV0J3QmtCeCivQkdCV0KfQldCI0JDQpiDQoNCQ0JTQntCI0JrQkAor0JHQldCn0JXQiNCQ0KYg0KHQkNCS0JAKK9CR0JXQp9CV0JvQmNCLINCC0J7QoNCC0JUKK9CR0JXQp9CV0JvQmNCLINCR0JjQodCV0KDQmtCQCivQkdCV0KfQldCb0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JHQldCn0JXQm9CY0Isg0JTQntCR0KDQmNCd0JrQngor0JHQldCn0JXQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0JXQp9CV0JvQmNCLINCT0JjQndCQCivQkdCV0KfQldCb0JjQiyDQiNCe0JLQkNCdCivQkdCV0KfQldCb0JjQiyDQm9CQ0JfQkNCgCivQkdCV0KfQldCb0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JXQp9CV0JvQmNCLINCc0JDQoNCY0IjQkAor0JHQldCn0JXQm9CY0Isg0JzQmNCb0JDQnQor0JHQldCn0JXQm9CY0Isg0JzQmNCb0JXQndCQCivQkdCV0KfQldCb0JjQiyDQnNCY0JvQmNCm0JAKK9CR0JXQp9CV0JvQmNCLINCc0JjQm9Ce0KgKK9CR0JXQp9CV0JvQmNCLINCf0JXQotCQ0KAKK9CR0JXQp9CV0JvQmNCLINCg0JDQlNCY0JLQntCICivQkdCV0KfQldCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQldCn0JXQm9CY0Isg0KHQotCV0JLQkNCdCivQkdCV0KfQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CR0JXQp9CV0JvQmNCLINCS0JDQodCQCivQkdCV0KfQldCb0JjQiyDQktCV0KHQldCb0JjQnQor0JHQldCn0JXQm9CY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JXQp9CY0Isg0JzQo9Cl0JjQkdCQCivQkdCV0KfQmNCLINCS0JXQoNCe0InQo9CRCivQkdCV0KfQmtCV0Jgg0IjQkNCd0J7QqAor0JHQldCn0JrQldCYINCf0JXQotCQ0KAKK9CR0JXQp9Ca0JXQiNCYINCa0JDQoNCb0J4KK9CR0JXQp9CS0JDQoNCU0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQp9CS0JDQoNCU0Jgg0IjQntCh0JjQnwor0JHQldCo0JDQndCY0Isg0JHQntCW0JDQndCQCivQkdCV0KjQkNCd0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQldCo0JXQitCYINCa0JDQoNCb0J4KK9CR0JXQqNCV0IrQmCDQmtCQ0KDQm9CeCivQkdCV0KjQldCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JHQldCo0JXQktCY0Isg0JDQm9CV0JrQodCQCivQkdCV0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQkdCV0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQldCo0JXQktCY0Isg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCe0JXQpgor0JHQldCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JXQqNCY0Isg0JzQkNCg0JjQiNCQCivQkdCV0KjQmNCLINCc0JXQpdCc0JXQlAor0JHQldCo0JjQiyDQnNCY0KXQkNCI0JvQngor0JHQldCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCV0KjQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQldCo0JrQldCgINCQ0J3QlNCg0JjQiNCQCivQkdCV0KjQmtCV0KAg0JHQntCW0J4KK9CR0JXQqNCa0JXQoCDQodCg0JXQi9Ca0JAKK9CR0JXQqNCb0JjQiyDQiNCe0JLQkNCdCivQkdCV0KjQm9CY0Isg0KLQldCg0JXQl9CY0IjQkAor0JHQldCo0JvQmNCI0JAg0JPQntCh0J/QkNCS0JAKK9CR0JXQqNCb0JjQnSDQltCY0JLQmtCeINCU0JjQn9CbINCe0JXQpgor0JHQldCo0JvQmNCdINCR0KDQkNCd0JrQngor0JHQldCo0JvQmNCdINCY0JLQkNCdCivQkdCV0KjQm9CY0J0g0JjQktCY0KbQkAor0JHQldCo0JvQmNCdINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCV0KjQm9CY0J0g0JzQmNCe0JTQoNCQ0JMKK9CR0JXQqNCb0JjQnSDQodCi0J7QiNCQ0J0KK9CR0JXQqNCb0JjQnSDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0JHQldCL0JDQk9Cj0Jsg0KHQkNCS0JAKK9CR0JXQi9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQi9CY0J0g0J7Qm9CT0JAKK9CR0JXQi9CY0KDQntCS0KHQmtCYINCQ0JTQldCcCivQkdCV0JbQkNCdINCS0JjQmtCi0J7QoAor0JHQldCW0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQltCQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCW0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JHQldCW0JDQndCe0JIg0JzQmNCg0J7QidCj0JEKK9CR0JXQltCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQkdCV0JDQlNCV0KAg0IjQntCS0JDQnQor0JHQldCQ0KDQkCDQltCY0JLQmtCeCivQkdCV0JDQoNCQINCC0J7QoNCC0JUKK9CR0JXQkNCg0JAg0IjQntCS0JDQnQor0JHQldCQ0KDQkCDQnNCQ0KDQmtCeCivQkdCV0JDQoNCQINCf0JXQotCQ0KAKK9CR0JXQkNCg0JAg0J/QldCi0JDQoAor0JHQldCQ0KLQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JHQldCR0JXQmiDQnNCQ0KLQngor0JHQldCR0JXQidCQLdCc0JDQotCj0Kgg0JDQndCa0JAKK9CR0JXQkdCY0Isg0JDQndCQCivQkdCV0JHQmNCLINCJ0JjQidCQ0J3QkAor0JHQldCR0JjQiyDQndCV0JLQldCd0JrQkAor0JHQldCR0JjQiyDQndCV0JLQldCd0JrQkAor0JHQldCR0JjQiyDQn9CV0KLQkNCgCivQkdCV0JHQmNCLINCh0KLQntCI0JDQndCa0JAKK9CR0JXQptCVINCR0JXQm9CQCivQkdCV0KbQlSDQotCY0JHQntCgCivQkdCV0KbQmNCLINCh0KLQldCS0JDQnQor0JHQldCP0JXQotCYINCc0JDQoNCY0IjQkAor0JHQldCU0JDQmiDQkdCY0InQkNCd0JAKK9CR0JXQlNCVINCo0JDQndCU0J7QoAor0JHQldCU0JUg0J/QldCi0JDQoCDQlNCgCivQkdCV0JTQlSDQn9CV0KLQkNCgCivQkdCV0JTQldCa0J7QktCY0Isg0JDQndCi0J7QnQor0JHQldCU0J3QkNCg0JjQmiDQkNCd0JTQoNCY0IjQkAor0JHQldCU0J3QkNCg0JjQmiDQlNCQ0KDQmNCd0JrQkAor0JHQldCU0J3QkNCg0JjQmiDQiNCQ0J3QntCoCivQkdCV0JTQndCQ0KDQmNCaINCI0J7QodCY0J8KK9CR0JXQlNCd0JDQoNCY0Jog0JzQmNCl0JDQiQor0JHQldCU0J7QkiDQkdCY0KHQldCg0JrQkAor0JHQldCU0J7QkiDQiNCe0JLQkNCdCivQkdCV0JTQntCSINCJ0KPQkdCY0KbQkAor0JHQldCU0J7QkiDQnNCQ0KDQmNCI0JAKK9CR0JXQlNCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JHQldCU0J7QkiDQndCQ0JTQkAor0JHQldCU0J7QkiDQn9Cg0JXQlNCg0JDQkwor0JHQldCU0J7QkiDQoNCQ0JTQkAor0JHQldCU0J7QkiDQodCg0ILQkNCdCivQkdCV0JTQntCSINCh0KPQndCn0JjQptCQCivQkdCV0JTQntCSINCh0JLQldCi0JjQodCb0JDQkgor0JHQldCU0KDQmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCV0JMg0JDQndCU0KDQmNCI0JAKK9CR0JXQky3QktCQ0JvQntCS0JjQp9CY0Isg0JDQndCC0JXQm9Ca0J4KK9CR0JXQky3QktCe0JvQntCS0JjQp9CY0Isg0JjQktCQ0J0KK9CR0JXQk9CQ0J3QmCDQqNCV0KDQmNCkCivQkdCV0JPQkNCd0J7QktCY0Isg0JzQldCl0JzQldCUCivQkdCV0JPQkNCd0J7QktCY0Isg0KHQkNCd0JjQlAor0JHQldCT0JXQp9Ca0Jgg0KDQkNCI0JrQngor0JHQldCT0JXQp9Ca0Jgg0KHQkNCS0JAKK9CR0JXQk9CV0J3QmNCo0JjQiyDQlNCg0JDQk9Ce0KDQkNCUCivQkdCV0JPQldCd0JjQqNCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CR0JXQk9CY0Isg0JzQmNCb0J7QqAor0JHQldCT0JjQiyDQnNCY0KDQmtCeCivQkdCV0JPQm9CV0KDQkdCV0JPQntCS0JjQiyDQj9CV0JLQkNCUCivQkdCV0JPQntCI0JXQkiDQkNCd0JrQkAor0JHQldCT0J7QiNCV0JIg0JHQntCT0JTQkNCdCivQkdCV0JPQntCI0JXQkiDQm9CQ0JfQkNCgCivQkdCV0JPQntCI0JXQkiDQm9CQ0JfQkAor0JHQldCT0J7QiNCV0JIg0J/QldCi0JDQoAor0JHQldCT0J7QiNCV0JIg0KDQkNCU0J7QiNCa0JAKK9CR0JXQk9Ce0IjQldCSINCi0J7QqNCQCivQkdCV0JPQntCI0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9CR0JXQk9Ce0JLQmNCLINCV0JLQmNCm0JAKK9CR0JXQk9Ce0JLQmNCLINCI0JDQodCc0JjQndCQCivQkdCV0JPQntCS0JjQiyDQiNCe0JLQkNCdCivQkdCV0JPQntCS0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQkdCV0JPQntCS0JjQiy3Qm9CY0JLQkNCI0JAg0JjQm9CY0IjQkAor0JHQldCT0J7QktCY0Isg0InQo9CR0JDQnQor0JHQldCT0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQkdCV0JPQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCT0J7QktCY0Isg0JzQmNCg0JrQngor0JHQldCT0J7QktCY0Isg0KDQntCL0JrQngor0JHQldCT0J7QktCY0Isg0KHQkNCS0J4KK9CR0JXQk9Ce0JLQmNCLINCi0J7QlNCe0KAKK9CR0JXQk9Ce0JLQmNCLINCX0J7QoNCeCivQkdCV0KXQldCgINCV0JLQkAor0JHQldCl0JXQoNCQ0J3QniDQiNCe0KHQmNCfCivQkdCV0KXQotCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQiNCQ0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQkdCV0IjQkNCg0J7QktCY0Isg0J3QldCd0JDQlAor0JHQldCI0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0JXQiNCQ0KLQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCI0JDQotCe0JLQmNCLINCc0JjQoNCa0J4KK9CR0JXQiNCi0J7QktCY0Isg0JDQm9CY0IjQkAor0JHQldCaINCQ0J3QotCe0J3QmNCI0JAKK9CR0JXQmiDQlNCg0JDQk9CQ0J3QkAor0JHQldCaINCI0J7QktCQ0J0KK9CR0JXQmiDQm9CQ0JTQmNCh0JvQkNCSCivQkdCV0Jog0InQmNCJ0JDQndCQCivQkdCV0Jog0KDQo9CW0JAKK9CR0JXQmiDQodCi0JXQktCQ0J0KK9CR0JXQmtCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCa0JDQoNCV0Jog0JjQm9CY0J3QmtCQCivQkdCV0JrQlSDQm9CQ0KHQm9CeCivQkdCV0JrQlSDQnNCQ0KDQmNCI0JDQnQor0JHQldCa0JXQoCDQpNCg0JXQlNCV0KDQmNCaCivQkdCV0JrQldCgINCY0KjQotCS0JDQnQor0JHQldCa0JXQoCDQmNCU0JAKK9CR0JXQmtCV0KAg0IjQntCW0JXQpAor0JHQldCa0JXQoCDQiNCe0KHQmNCfCivQkdCV0JrQldCgINCh0KLQldCS0JDQnQor0JHQldCa0JjQiyDQkdCe0KDQmNChCivQkdCV0JrQmNCLINCR0KDQkNCd0JrQkAor0JHQldCa0JjQiyDQiNCj0KDQlQor0JHQldCa0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCa0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCV0JrQmNCLINCS0JXQoNCQCivQkdCV0JrQoNCY0Isg0JTQoNCQ0JPQkNCdCivQkdCV0JrQoNCY0Isg0JzQmNCg0JAKK9CR0JXQmtCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCV0JrQotCQ0Kgg0JTQkNCd0JjQptCQCivQkdCV0JrQotCQ0Kgg0KHQm9CQ0JLQmtCeCivQkdCV0JrQo9CiINCU0KDQkNCT0JDQnQor0JHQldCa0KPQoiDQn9CV0KLQkNCgCivQkdCV0JrQktCQ0JvQkNCmINCW0JjQktCQ0J0KK9CR0JXQmtCS0JDQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0JrQktCQ0JvQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCa0JLQkNCb0JDQpiDQkdCg0JDQndCa0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0JHQoNCQ0J3QmtCeCivQkdCV0JrQktCQ0JvQkNCmINCR0KDQkNCd0JrQngor0JHQldCa0JLQkNCb0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQkdCV0JrQktCQ0JvQkNCmINCV0JzQmNCb0JjQiNCQCivQkdCV0JrQktCQ0JvQkNCmINCY0KHQkAor0JHQldCa0JLQkNCb0JDQpiDQm9CQ0JfQkNCgCivQkdCV0JrQktCQ0JvQkNCmINCJ0KPQkdCY0KbQkAor0JHQldCa0JLQkNCb0JDQpiDQidCj0JHQmNCm0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0InQo9CR0JjQndCa0J4KK9CR0JXQmtCS0JDQm9CQ0KYg0JzQkNCg0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0JzQmNCI0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0JzQmNCb0JDQndCa0J4KK9CR0JXQmtCS0JDQm9CQ0KYg0JzQmNCb0JDQnQor0JHQldCa0JLQkNCb0JDQpiDQnNCY0JvQmNCh0JDQkgor0JHQldCa0JLQkNCb0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JHQldCa0JLQkNCb0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JHQldCa0JLQkNCb0JDQpiDQoNCQ0JTQnNCY0JvQkAor0JHQldCa0JLQkNCb0JDQpiDQodCV0KDQkNCk0JjQndCQCivQkdCV0JrQktCQ0JvQkNCmINCh0KLQldCS0JDQnQor0JHQldCb0KfQldCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQkdCV0JvQp9CV0JLQmNCLINCg0JDQotCa0J4KK9CR0JXQm9CQ0Jog0KjQkNCd0JTQntCgCivQkdCV0JvQkNCaINCQ0J3QkAor0JHQldCb0JDQmiDQnNCQ0KDQk9CY0KLQkAor0JHQldCb0JDQmiDQnNCY0IjQngor0JHQldCb0JDQmiDQktCb0JDQlNCQCivQkdCV0JvQkNCdINCI0J7QltCV0KQKK9CR0JXQm9CQ0J3Qp9CY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQkdCV0JvQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JHQldCb0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkdCV0JvQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQkdCV0JvQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JXQm9CQ0J3QntCS0JjQiyDQotCY0JHQntCgCivQkdCV0JvQldCm0JrQmCDQiNCV0JvQldCd0JAKK9CR0JXQm9CV0JPQmNCo0JDQndCY0J0g0JTQoNCQ0JPQntCc0JjQoCDQlNCgCivQkdCV0JvQldCh0JvQmNCI0JjQnSDQnNCY0JvQntCg0JDQlAor0JHQldCb0JXQodCb0JjQiNCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JHQldCb0JXQodCb0JjQnSDQlNCe0JHQoNCY0JvQkAor0JHQldCb0JXQodCb0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQkdCV0JvQldCh0JvQmNCdINCh0JLQldCi0J7Ql9CQ0KAg0JTQoAor0JHQldCb0JXQotCY0Isg0IjQldCb0JXQndCQCivQkdCV0JvQmCDQkNCd0JTQoNCY0IjQkAor0JHQldCb0Jgg0JXQnNCY0JsKK9CR0JXQm9CYINCg0J7Ql9CQ0JvQmNCI0JAKK9CR0JXQm9CYINCh0KLQldCS0JDQnQor0JHQldCb0Jgg0JLQntCI0JjQodCb0JDQkgor0JHQldCb0JjQp9Ca0JAg0JDQndCQCivQkdCV0JvQmNCn0JrQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JXQm9CY0KfQmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JbQmNCS0JrQkAor0JHQldCb0JjQiyDQgtCe0KDQgtCVCivQkdCV0JvQmNCLINCC0J7QoNCC0JUKK9CR0JXQm9CY0Isg0ILQo9Cg0JjQptCQCivQkdCV0JvQmNCLINCR0J7QqNCa0J4KK9CR0JXQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JXQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JXQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQldCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCR0J7QoNCY0KEKK9CR0JXQm9CY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkdCV0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCb0JjQiy3QkdCg0JrQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQkdCV0JvQmNCLINCU0JDQndCY0KbQkAor0JHQldCb0JjQiyDQlNCQ0J3QmNCI0JXQm9CQCivQkdCV0JvQmNCLINCU0KDQkNCT0JDQnQor0JHQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQldCb0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCV0JvQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JHQldCb0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CR0JXQm9CY0Isg0JTQo9Co0JDQnQor0JHQldCb0JjQiyDQlNCj0KjQkNCdCivQkdCV0JvQmNCLINCU0KPQqNCQ0J0KK9CR0JXQm9CY0Isg0JTQo9Co0JrQngor0JHQldCb0JjQiyDQlNCj0KjQmtCeCivQkdCV0JvQmNCLINCk0JvQntCg0JjQmtCQCivQkdCV0JvQmNCLINCY0JvQmNCI0JAKK9CR0JXQm9CY0Isg0IjQntCh0JjQnAor0JHQldCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQldCb0JjQiyDQiNCe0JLQmNCm0JAKK9CR0JXQm9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQldCb0JjQiyDQiNCj0JvQmtCQCivQkdCV0JvQmNCLINCb0JDQl9CQ0KAKK9CR0JXQm9CY0Isg0InQo9CR0JjQptCQCivQkdCV0JvQmNCLINCc0JDQoNCY0KbQkAor0JHQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCV0JvQmNCLINCc0JjQm9CQ0J0KK9CR0JXQm9CY0Isg0JzQmNCb0JDQnQor0JHQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCV0JvQmNCLINCc0JjQm9CV0J3QkAor0JHQldCb0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQldCb0JjQiyDQnNCY0JvQntCoCivQkdCV0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0JvQmNCLINCc0JjQoNCI0JDQndCQCivQkdCV0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0J3QldCd0JDQlAor0JHQldCb0JjQiyDQndCV0KHQotCe0KAKK9CR0JXQm9CY0Isg0J3QmNCa0J7Qm9CQCivQkdCV0JvQmNCLINCf0JXQotCQ0KAKK9CR0JXQm9CY0Isg0J/QldCi0JDQoAor0JHQldCb0JjQiyDQoNCQ0JTQmNCd0JrQkAor0JHQldCb0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQldCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCV0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCV0JvQmNCLINCh0JDQktCQCivQkdCV0JvQmNCLINCh0JXQndCQCivQkdCV0JvQmNCLINCh0JjQnNCQCivQkdCV0JvQmNCLINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CR0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQkdCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQkdCV0JvQmNCLINCh0J7QpNCY0IjQkAor0JHQldCb0JjQiyDQodCg0ILQkNCdCivQkdCV0JvQmNCLINCh0KLQkNCd0JrQngor0JHQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CR0JXQm9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0JHQldCb0JjQiyDQodCi0J7QiNCQ0J0KK9CR0JXQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQldCb0JjQiyDQodCS0JXQotCb0JDQndCQCivQkdCV0JvQmNCLINCi0J7QlNCe0KAKK9CR0JXQm9CY0Isg0JLQldCg0JAKK9CR0JXQm9CY0Isg0JLQldCh0J3QkAor0JHQldCb0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JLQo9Ca0JAKK9CR0JXQm9CY0Isg0JfQntCg0JAKK9CR0JXQm9CY0JzQkNCg0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQkdCV0JvQmNCd0JjQiyDQgtCj0KDQkAor0JHQldCb0JjQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCb0JjQndCh0JrQmCDQodCf0JDQodCV0J3QmNCI0JAKK9CR0JXQidCQ0JrQntCSINCc0JjQm9CY0KbQkAor0JHQldCJ0JDQndCh0JrQmCDQltCY0JLQmtCQCivQkdCV0InQkNCd0KHQmtCYINCW0JjQktCa0JAKK9CR0JXQidCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JHQldCJ0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQkdCV0InQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9CR0JXQidCQ0J3QodCa0Jgg0JDQndCC0JXQm9CY0IjQkAor0JHQldCJ0JDQndCh0JrQmCDQkNCd0JrQmNCm0JAKK9CR0JXQidCQ0J3QodCa0Jgt0JHQkNCI0JjQiyDQmtCQ0IvQo9Co0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JHQntCg0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JHQntCg0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JHQntCg0JjQktCe0IgKK9CR0JXQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQkNCd0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JXQnNCY0JvQmNCI0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JPQkNCS0KDQkAor0JHQldCJ0JDQndCh0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0JHQldCJ0JDQndCh0JrQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JHQldCJ0JDQndCh0JrQmCDQiNCe0JLQkNCdCivQkdCV0InQkNCd0KHQmtCYINCI0J7QktCQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQldCJ0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQkdCV0InQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9CR0JXQidCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JHQldCJ0JDQndCh0JrQmCDQm9CV0J/QntCI0JrQkAor0JHQldCJ0JDQndCh0JrQmCDQidCj0JHQntCc0JjQoAor0JHQldCJ0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9Cj0KLQmNCdCivQkdCV0InQkNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQkdCV0InQkNCd0KHQmtCYINCf0JDQktCb0JUKK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCU0JAKK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCU0JzQmNCb0JAKK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCd0JrQngor0JHQldCJ0JDQndCh0JrQmCDQoNCj0JbQmNCm0JAKK9CR0JXQidCQ0J3QodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQldCJ0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0KLQldCe0JTQntCgCivQkdCV0InQkNCd0KHQmtCYINCi0J7QqNCQCivQkdCV0InQkNCd0KHQmtCYINCS0JDQodCY0JvQmNCI0JUKK9CR0JXQidCQ0J3QodCa0Jgg0JLQldCg0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JHQldCJ0JDQndCh0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQidCQ0J3QodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JHQldCJ0JDQndCh0JrQmCDQl9CQ0JPQntCg0JrQkAor0JHQldCJ0JDQndCh0JrQmCDQl9CU0JXQndCa0JAKK9CR0JXQidCY0J0g0JbQmNCS0JAKK9CR0JXQidCY0J0g0ILQntCg0ILQlQor0JHQldCJ0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JHQldCJ0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0JXQidCY0J0g0JzQkNCg0JjQiNCQINCc0JDQk9CU0JDQm9CV0J3QkAor0JHQldCJ0JjQnSDQndCV0JTQldCJ0JrQngor0JHQldCJ0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JHQldCJ0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQkdCV0InQmNCdINCg0KPQltCQCivQkdCV0InQmNCdINCh0JDQktCQCivQkdCV0InQmNCdINCh0J7QpNCY0IjQkAor0JHQldCJ0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQkdCV0InQmNCd0JDQpiDQl9Ce0KDQkNCdCivQkdCV0JvQntCo0JXQkiDQndCV0JLQldCd0JrQkAor0JHQldCb0J7QkdCg0JDQlNCY0Isg0JzQmNCb0JDQnQor0JHQldCb0J7QkdCg0JDQlNCY0Isg0KHQkNCS0JAKK9CR0JXQm9Ce0JHQoNCaINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCb0J7QkdCg0Jog0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCV0JvQntCR0KDQmiDQm9CY0JLQmNCI0JUKK9CR0JXQm9Ce0KbQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCV0JvQntCm0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQldCb0J7QmNCm0JAg0KDQkNCU0J7QodCb0JDQkgor0JHQldCb0J7QmNCm0JAg0JLQmNCU0JDQnQor0JHQldCb0J7Qn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0JAg0JTQoAor0JHQldCb0J7Qn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQkdCV0JvQntCf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnSDQlNCgCivQkdCV0JvQntCf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnSDQlNCgCivQkdCV0JvQntCh0JDQktCY0Isg0IjQldCb0JjQptCQCivQkdCV0JvQntCi0Jgg0JjQktCQ0J3QmtCeCivQkdCV0JvQntCS0JDQoNCYINCY0JLQkNCdCivQkdCV0JvQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CR0JXQm9Ce0JLQmNCLINCg0JDQlNCQCivQkdCV0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0JXQm9Cj0KjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQldCb0KPQqNCV0JLQmNCLINCd0J7QktCY0KbQkAor0JHQldCb0KPQltCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0JXQm9Cj0JbQmNCLINCh0KLQiNCV0J/QkNCdCivQkdCV0Jwg0JjQktCQ0J0KK9CR0JXQnCDQiNCe0JLQkNCdCivQkdCV0Jwg0JrQkNCg0JvQngor0JHQldCcINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQnNCY0JvQldCgINCc0JDQk9CU0JDQm9CV0J3QkAor0JHQldCd0KfQmNCaINCC0KPQm9CQCivQkdCV0J3Qp9CY0Jog0JjQm9Ce0J3QmtCQCivQkdCV0J3QkCDQnNCY0JvQntCh0JDQktCQCivQkdCV0J3QkNCo0JjQiyDQktCY0J3QmtCeCivQkdCV0J3QkNCaINCf0JDQmwor0JHQldCd0JDQoNCY0Jog0JvQkNCh0JvQngor0JHQldCd0JDQoNCY0Jog0JzQkNCT0JTQkNCb0JXQndCQCivQkdCV0J3QpiDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JHQldCd0KYg0JTQoNCQ0JPQkNCdCivQkdCV0J3QptCVINCc0JDQoNCY0IjQkAor0JHQldCd0KbQlSDQnNCY0KXQkNCJCivQkdCV0J3QptCVINCc0JjQmtCV0KgKK9CR0JXQndCm0JXQotCY0Isg0JDQndCU0KDQmNCI0JAKK9CR0JXQndCm0JXQotCY0Isg0InQo9CU0JXQktCY0KIKK9CR0JXQndCm0KPQnSDQktCV0JvQmNCd0JrQkAor0JHQldCd0JTQldCaINCc0JjQm9CQ0J0KK9CR0JXQndCV0Kgg0InQo9CU0JzQmNCb0JAKK9CR0JXQndCV0JbQkNCdINCJ0KPQkdCY0KbQkAor0JHQldCd0JXQlNCV0JrQntCS0JjQiyDQmNCS0JDQnQor0JHQldCd0JPQmNCdLdCC0KPQoNCa0JjQiyDQndCV0JfQkAor0JHQldCd0JPQmNCdINCR0J7QltCY0JTQkNCgCivQkdCV0J3Qk9CY0J0g0JTQntCR0KDQmNCd0JrQkAor0JHQldCd0JPQmNCdINCU0KPQqNCQ0J0KK9CR0JXQndCT0JjQnSDQmtCe0JLQmNCm0JAKK9CR0JXQndCT0JjQnSDQnNCY0JvQkNCdCivQkdCV0J3QmNCn0JDQmiDQmtCQ0KDQm9CeCivQkdCV0J3QmNCn0JDQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CR0JXQndCY0KjQldCaINCU0KDQkNCT0KPQotCY0J0KK9CR0JXQndCY0Isg0JXQktCQCivQkdCV0J3QmNCLINCT0KDQo9CI0JjQptCQCivQkdCV0J3QmNCLINCf0JXQotCQ0KAKK9CR0JXQndCY0Isg0KHQldCa0KPQm9CQCivQkdCV0J3QmNCLINCX0JTQldCd0JrQngor0JHQldCd0JjQnSDQltCY0JLQntCI0JjQnQor0JHQldCK0JAg0JrQkNCi0JDQoNCY0J3QkAor0JHQldCK0JDQmiDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JHQldCK0JDQmiDQldCS0JjQptCQCivQkdCV0J3QmtCQINCc0JDQoNCY0IjQkAor0JHQldCd0JrQkCDQnNCY0KXQkNCY0JvQngor0JHQldCd0JrQlSDQldCb0JfQkAor0JHQldCd0JrQntCS0JjQiyDQiNCe0KbQkAor0JHQldCd0JrQntCS0JjQiyDQiNCe0KbQkAor0JHQldCd0J4g0KLQmNCR0J7QoAor0JHQldCd0J7QktCY0Isg0IjQntCh0JjQnwor0JHQldCd0J7QktCY0Isg0KHQotCQ0J3QkAor0JHQldCe0KfQkNCd0JjQnSDQiNCe0JLQkNCdCivQkdCV0J7Qp9CQ0J3QmNCdINCc0JjQntCU0KDQkNCTCivQkdCV0J7Qp9CQ0J3QmNCdINCf0JDQktCb0JUKK9CR0JXQntCU0KDQkNCd0KHQmtCYINCU0KDQkNCT0J7QnNCY0KAKK9CR0JXQntCU0KDQkNCd0KHQmtCYINCh0KLQntCI0JDQnQor0JHQldCe0JrQntCS0JjQiyDQlNCQ0JzQmNCgCivQkdCV0KAg0JDQm9CV0JrQodCY0IjQlQor0JHQldCgINCk0KDQkNCK0J4KK9CR0JXQoNCn0JXQmiDQgtCV0KDQggor0JHQldCg0KfQldCaINCR0J7QltCY0JTQkNCgCivQkdCV0KDQp9CV0Jog0KTQoNCQ0IrQkAor0JHQldCg0KfQldCaINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQoNCn0JXQmiDQnNCQ0KDQmNCI0JAKK9CR0JXQoNCn0JXQmiDQnNCY0KXQkNCY0JvQngor0JHQldCg0KfQldCaINCe0KHQmtCQ0KAKK9CR0JXQoNCn0JXQmiDQodCQ0J3QmNCh0JvQngor0JHQldCg0IvQkNCdINCc0JjQoNCI0JDQndCQCivQkdCV0KDQi9CQ0J0g0J/QldCi0JDQoAor0JHQldCg0IvQkNCdINCh0JvQkNCS0JrQngor0JHQldCg0JAg0ILQntCg0ILQngor0JHQldCg0JAg0JTQoNCQ0JPQkNCdCivQkdCV0KDQkNCaINCd0JXQkdCe0IjQqNCQCivQkdCV0KDQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQoNCQ0KAg0JbQmNCS0JDQndCQCivQkdCV0KDQkNCgINCR0J7QoNCY0JLQntCICivQkdCV0KDQkNCgINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCg0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JXQoNCQ0KAg0JTQo9Co0JDQndCa0JAKK9CR0JXQoNCQ0KAg0JzQmNCb0JDQnQor0JHQldCg0JDQoCDQnNCY0JvQkNCdCivQkdCV0KDQkNCgINCc0JjQm9CQ0J0KK9CR0JXQoNCQ0KAg0KDQkNCU0JjQktCe0IgKK9CR0JXQoNCQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JHQldCg0JDQoCDQodCb0J7QkdCe0JTQkNCdCivQkdCV0KDQkNCgINCi0JjQnNCQCivQkdCV0KDQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9CR0JXQoNCQ0KDQntCSINCC0KPQoNCY0KbQkAor0JHQldCg0JHQkNCa0J7QkiDQidCj0JHQmNCm0JAKK9CR0JXQoNCR0JDQmtCe0JIg0JzQkNCg0JAKK9CR0JXQoNCR0JDQmtCe0JIg0JzQmNCb0J7QqAor0JHQldCg0JHQkNCa0J7QkiDQn9CV0KLQkNCgCivQkdCV0KDQkdCQ0JrQntCSINCh0KLQldCS0JDQnQor0JHQldCg0JHQkNCi0J7QktCY0Isg0JbQkNCg0JrQngor0JHQldCg0JHQkNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JXQoNCR0JXQoCDQidCY0InQkNCd0JAKK9CR0JXQoNCR0JXQoCDQodCi0JXQktCQ0J0KK9CR0JXQoNCR0JXQoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0JXQoNCR0JXQoNCY0Isg0IjQntCS0JDQnQor0JHQldCg0JHQldCg0JjQiyDQm9CQ0JfQkNCgCivQkdCV0KDQkdCV0KDQmNCLINCc0JjQm9Cj0KLQmNCdCivQkdCV0KDQldCoINCC0J7QoNCC0JUKK9CR0JXQoNCV0Kgg0JTQkNCd0JjQm9CeCivQkdCV0KDQldCoINCY0JvQntCd0JAKK9CR0JXQoNCV0Kgg0IjQntCh0JjQnwor0JHQldCg0JXQqCDQiNCj0JvQmNCo0JrQkAor0JHQldCg0JXQqCDQmtCQ0KDQntCJCivQkdCV0KDQldCoINCa0J7QoNCd0JXQmwor0JHQldCg0JXQqCDQotCY0JHQntCgCivQkdCV0KDQldCoLdCi0J7QoiDQmtCe0KDQndCV0JsKK9CR0JXQoNCV0KXQkNCd0JjQiyDQiNCj0JvQmtCQCivQkdCV0KDQldCK0Jgg0JXQo9CT0JXQnQor0JHQldCg0JXQitCYINCI0JDQndCe0KgKK9CR0JXQoNCV0IrQmCDQiNCV0JvQldCd0JAKK9CR0JXQoNCV0IrQmCDQnNCY0JrQm9Ce0KgKK9CR0JXQoNCV0IrQmCDQnNCY0JrQm9Ce0KgKK9CR0JXQoNCV0IrQmCDQoNCe0JfQkNCb0JjQiNCQCivQkdCV0KDQldCK0Jgg0KHQotCV0JLQkNCdCivQkdCV0KDQldCK0Jgg0KLQmNCR0J7QoAor0JHQldCg0JXQndCi0JAg0IjQntCh0JjQnwor0JHQldCg0JXQndCi0JUg0JjQm9Ce0J3QkAor0JHQldCg0JXQotCY0Isg0JDQndCi0KPQnQor0JHQldCg0JXQotCY0Isg0JvQkNCU0JjQodCb0JDQkgor0JHQldCg0JXQotCY0Isg0JzQkNCg0JPQmNCi0JAKK9CR0JXQoNCV0KLQmtCQINCo0JDQndCU0J7QoAor0JHQldCg0JXQotCa0JAg0JPQntCg0JTQkNCd0JAKK9CR0JXQoNCV0KLQmtCQINCI0KPQm9CY0IjQkNCd0JAKK9CR0JXQoNCV0KLQmtCQINCa0JDQoNCb0J4KK9CR0JXQoNCV0KLQmtCQINCc0JjQpdCQ0IkKK9CR0JXQoNCT0JXQmyDQgtCj0KDQkAor0JHQldCg0JPQldCbINCQ0J3QotCj0J0KK9CR0JXQoNCT0JXQoCDQpNCg0JDQitCQINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9CR0JXQoNCT0JXQoCDQnNCY0KDQntCh0JvQkNCSCivQkdCV0KDQmNCo0JAg0JDQl9CY0KEKK9CR0JXQoNCY0KjQkCDQkdCe0IjQmtCQCivQkdCV0KDQmNCo0JAg0JTQldCc0J4KK9CR0JXQoNCY0KjQkCDQpNCQ0JjQmgor0JHQldCg0JjQqNCQINCc0JjQoNCS0JXQotCQCivQkdCV0KDQmNCo0JAg0KDQkNCT0JjQkQor0JHQldCg0JjQiyDQltCY0JLQmtCeCivQkdCV0KDQmNCLINCQ0J3QgtCV0JvQmtCeCivQkdCV0KDQmNCLINCQ0J3QotCQCivQkdCV0KDQmNCLINCQ0J3QotCQCivQkdCV0KDQmNCLINCR0JXQoNCY0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0JHQldCg0JjQiyDQkdCY0InQkNCd0JAKK9CR0JXQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JXQoNCY0Isg0JHQntCT0JTQkNCdCivQkdCV0KDQmNCLINCU0KDQkNCT0JjQitCQCivQkdCV0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCV0KDQmNCLINCU0KPQqNCQ0J0KK9CR0JXQoNCY0Isg0JPQntCI0JrQngor0JHQldCg0JjQiyDQk9Ce0IjQmtCeCivQkdCV0KDQmNCLINCT0J7QiNCa0J4KK9CR0JXQoNCY0Isg0JjQm9CY0IjQkAor0JHQldCg0JjQiyDQiNCe0KDQlNCQ0J3QkAor0JHQldCg0JjQiyDQiNCe0JLQngor0JHQldCg0JjQiyDQmtCe0KHQotCQCivQkdCV0KDQmNCLINCc0JDQoNCQCivQkdCV0KDQmNCLLdCc0JDQodCa0JDQoNCV0Jsg0JrQkNCg0JzQldCd0KHQmNCi0JAg0JTQoAor0JHQldCg0JjQiyDQnNCY0JvQkNCdCivQkdCV0KDQmNCLINCc0JjQm9CQ0J0KK9CR0JXQoNCY0Isg0JzQmNCb0JDQnQor0JHQldCg0JjQiyDQnNCY0JvQmNCm0JAg0JzQoAor0JHQldCg0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQldCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCg0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQldCg0JjQiyDQndCQ0JTQkAor0JHQldCg0JjQiyDQndCY0JrQntCb0JAKK9CR0JXQoNCY0Isg0J/QldCg0KHQmNCU0JAKK9CR0JXQoNCY0Isg0J/QldCi0JDQoAor0JHQldCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQldCg0JjQiyDQoNCQ0IjQmtCeCivQkdCV0KDQmNCLINCg0JDQiNCa0J4KK9CR0JXQoNCY0Isg0KHQkNCS0JAKK9CR0JXQoNCY0Isg0KLQntCU0JUKK9CR0JXQoNCY0Isg0JLQldCg0JAKK9CR0JXQoNCY0Isg0JLQldCg0JjQptCQCivQkdCV0KDQmNCLINCS0JXQodCd0JAg0JTQoAor0JHQldCg0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0JXQoNCY0KHQkNCS0InQldCS0JjQiyDQoNCQ0IjQmtCeCivQkdCV0KDQmNCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JjQptCQCivQkdCV0KDQmtCV0Kgg0JjQqNCi0JLQkNCdCivQkdCV0KDQmtCYINCI0J7QltCV0KQKK9CR0JXQoNCa0JjQiyDQoNCj0JbQmNCm0JAKK9CR0JXQoNCa0J7QktCY0Isg0JHQldCg0JjQodCb0JDQkgor0JHQldCg0JrQntCS0JjQiyDQj9CQ0KTQldCgCivQkdCV0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQoNCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JHQldCg0JvQkNCd0KfQmNCLINCU0JDQndCY0IjQldCbCivQkdCV0KDQm9Ce0JLQkNCdINCT0JXQntCg0JPQmNCd0JAKK9CR0JXQoNCd0JDQptCa0Jgg0JDQlNCe0JvQpAor0JHQldCg0J3QkNCg0JQg0ILQntCg0ILQlQor0JHQldCg0J3QpdCQ0KDQlCDQltCQ0KDQmtCeCivQkdCV0KDQndCl0JDQoNCUINCR0J7QltCY0JTQkNCgCivQkdCV0KDQndCl0JDQoNCUINCR0J7QiNCQ0J3QkAor0JHQldCg0J3QpdCQ0KDQlCDQpNCY0JvQmNCfCivQkdCV0KDQndCl0JDQoNCUINCY0JvQmNCI0JAKK9CR0JXQoNCd0KXQkNCg0JQg0InQo9CR0JDQnQor0JHQldCg0J3QpdCQ0KDQlCDQnNCQ0KDQmNCI0JAKK9CR0JXQoNCd0KXQkNCg0JQg0JzQmNCb0JDQnQor0JHQldCg0J3QpdCQ0KDQlCDQnNCY0JvQmNCm0JAg0JTQoAor0JHQldCg0J3QpdCQ0KDQlCDQnNCY0JvQntCg0JDQlAor0JHQldCg0J3QpdCQ0KDQlCDQoNCQ0JTQntCh0JvQkNCSCivQkdCV0KDQndCl0JDQoNCUINCg0JDQiNCa0J4KK9CR0JXQoNCd0KXQkNCg0JQg0KHQmNCc0J4KK9CR0JXQoNCd0KXQkNCg0JQg0KLQoNCY0JLQngor0JHQldCg0J7QqCDQidCj0JHQmNCm0JAKK9CR0JXQoNCi0JAg0IjQkNCd0J7QqAor0JHQldCg0KLQkCDQnNCY0JvQmNCm0JAKK9CR0JXQoNCi0JAg0J/QkNCbCivQkdCV0KDQotCQINCf0JXQotCQ0KAKK9CR0JXQoNCi0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JHQldCg0KLQmNCLINCX0JLQntCd0JrQngor0JHQldCg0KLQntCaINCI0JDQndCe0KgKK9CR0JXQoNCi0J7QmiDQiNCj0JvQmNCI0JDQndCQCivQkdCV0KDQotCe0Jog0JvQkNCI0J7QqAor0JHQldCg0KLQoNCe0J0g0JvQldCd0JrQlQor0JHQldCg0KPQoSDQktCI0JXQmtCe0KHQm9CQ0JIKK9CR0JXQoNCX0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQodCV0JTQldCoINCI0J7QltCV0KQKK9CR0JXQodCV0KDQnNCV0IrQmCDQgtCe0KDQgtCVCivQkdCV0KHQldCg0JzQldCK0Jgg0JHQoNCQ0J3QmtCeCivQkdCV0KHQldCg0JzQldCK0Jgg0JTQmNCe0J3QmNCX0JjQiNCVCivQkdCV0KHQldCg0JzQldCK0Jgg0JXQo9Ck0JXQnNCY0IjQkAor0JHQldCh0JXQoNCc0JXQitCYINCY0KDQldCd0JAKK9CR0JXQodCV0KDQnNCV0IrQmCDQmNCS0JDQnQor0JHQldCh0JXQoNCc0JXQitCYINCa0JjQoNCY0JsKK9CR0JXQodCV0KDQnNCV0IrQmCDQmtCh0JXQndCY0IjQkAor0JHQldCh0JXQoNCc0JXQitCYINCb0JXQntCd0JAKK9CR0JXQodCV0KDQnNCV0IrQmCDQnNCV0JvQkNCd0JjQiNCQCivQkdCV0KHQldCg0JzQldCK0Jgg0J7Qm9CT0JAKK9CR0JXQodCV0KDQnNCV0IrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCV0KHQldCg0JzQldCK0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JHQldCh0JrQntCg0J7QktCQ0IjQndCYINCS0JvQkNCU0JjQnNCY0KAKK9CR0JXQodCb0JDQiyDQlNCg0JDQk9CQ0J3QkAor0JHQldCh0JvQkNCLINCc0JjQm9Cj0KLQmNCdCivQkdCV0KHQm9CQ0Isg0KDQkNCU0JzQmNCb0JAKK9CR0JXQodCd0JjQm9Ce0JIg0JHQntCo0JrQngor0JHQldCh0J3QmNCb0J7QkiDQntCb0JjQktCV0KDQkAor0JHQldCh0KMg0KHQmNCb0JAKK9CR0JXQodCjINCi0J7QlNCe0KAKK9CR0JXQodCjINCi0KDQkNCd0JTQkNCk0JjQoAor0JHQldCi0Jgg0KHQotCQ0J3QmtCeINCQ0JTQktCe0JrQkNCiCivQkdCV0KPQpiDQltCY0JLQkNCdCivQkdCV0KPQpiDQnNCY0KDQkAor0JHQldCj0KYg0J7Qm9CT0JAKK9CR0JXQl9CU0JDQnSDQkNCd0JAKK9CR0JXQl9CU0JDQnSDQpNCg0JDQitCQCivQkdCV0JfQlNCQ0J0g0JjQm9CU0JjQmtCeCivQkdCV0JfQlNCQ0J0g0JjQoNCV0J3QkAor0JHQldCX0JTQkNCdINCI0J7QodCY0J8KK9CR0JXQl9CV0J3QqNCV0Jog0J3QkNCi0JDQm9CY0IjQkAor0JHQldCX0Jgg0JrQkNCi0JjQptCQCivQkdCV0JfQiNCQ0Jog0JzQmNCb0JDQndCa0JAKK9CR0JXQl9CI0JDQmiDQl9CU0JXQndCa0J4KK9CR0JXQl9Cj0Ikg0ILQntCg0ILQlQor0JHQldCX0KPQiSDQidCY0InQkNCd0JAg0J/QoNCe0KTQldCh0J7QoAor0JHQmNCn0JDQmiDQmNCT0J3QkNCmCivQkdCY0KfQkNCaINCI0KPQodCi0JjQndCQCivQkdCY0KfQkNCdINCQ0J3QmtCQCivQkdCY0KfQkNCdINCY0JLQmNCm0JAKK9CR0JjQp9Ca0JXQmCDQotCV0KDQldCX0JjQiNCQCivQkdCY0IvQkNCd0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0JjQi9CQ0J3QmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CR0JjQi9CQ0J3QmNCLINCc0JDQoNCY0IjQkAor0JHQmNCL0JDQndCY0Isg0J/QldCi0JDQoAor0JHQmNCL0JDQndCY0Isg0J/QldCi0KDQkAor0JHQmNCR0JXQoCDQodCi0JXQktCQ0J0KK9CR0JjQkdCV0KDQj9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0JjQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JjQkdCY0Isg0J/QkNCS0JvQlQor0JHQmNCR0JjQiyDQodCe0KTQmNCI0JAKK9CR0JjQkdCY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JjQkdCY0J0g0IjQo9CT0J7QodCb0JDQkgor0JHQmNCR0JjQnSDQnNCY0JvQmNCd0JrQngor0JHQmNCm0JjQmtCY0J0g0JzQmNCb0JDQnQor0JHQmNCm0Jog0JTQoNCQ0JPQo9Ci0JjQnQor0JHQmNCm0J4g0KDQo9CW0JjQptCQCivQkdCY0KbQntCaINCV0KLQldCb0JrQkAor0JHQmNCm0J7QmiDQnNCQ0KDQk9CY0KLQkAor0JHQmNCm0J7QmiDQnNCQ0KDQk9CY0KLQkAor0JHQmNCV0JvQp9CY0Jog0JvQmNCU0JjQiNCQCivQkdCY0JPQkCDQkdCe0KDQmNCh0JvQkNCSCivQkdCY0JPQkCDQnNCY0JvQkNCdCivQkdCY0JPQkCDQndCQ0JTQkAor0JHQmNCT0JAg0KHQnNCY0InQkAor0JHQmNCT0J7QktCY0Ist0KjQmNCg0J7QmtCYINCX0J7QoNCY0KbQkAor0JHQmNCT0J7QktCY0Isg0JDQndCQCivQkdCY0JPQntCS0JjQiyDQktCe0IjQmNCdCivQkdCY0JPQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCY0KXQntCg0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JHQmNCI0JDQndCY0Isg0JzQmNCb0JXQndCa0J4KK9CR0JjQiNCQ0J3QmtCeINCf0JXQotCQ0KAKK9CR0JjQiNCV0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCY0IjQldCb0JjQiyDQkNCb0JXQmtCh0JAKK9CR0JjQiNCV0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQmNCI0JXQm9CY0Isg0JTQkNCg0JAKK9CR0JjQiNCV0JvQmNCLINCY0JLQmNCm0JAKK9CR0JjQiNCV0JvQmNCLINCI0J7QktCQ0J0KK9CR0JjQiNCV0JvQmNCLINCI0J7QktCY0KbQkAor0JHQmNCI0JXQm9CY0Isg0JzQkNCi0J4KK9CR0JjQiNCV0JvQmNCLINCc0JjQm9CQ0J0KK9CR0JjQiNCV0JvQmNCLINCc0JjQm9CVCivQkdCY0IjQldCb0JjQiyDQnNCY0JvQlQor0JHQmNCI0JXQm9CY0Isg0JzQmNCb0JUKK9CR0JjQiNCV0JvQmNCLINCc0JjQm9CVCivQkdCY0IjQldCb0JjQiyDQndCe0JLQkNCaCivQkdCY0IjQldCb0JjQiyDQn9CV0KDQngor0JHQmNCI0JXQm9CY0Isg0KDQmNCh0KLQngor0JHQmNCI0JXQm9CY0Isg0KHQotCe0IjQkNCdCivQkdCY0IjQldCb0JjQiyDQodCi0J7QiNCQ0J0KK9CR0JjQiNCV0InQkNCmINCd0JXQlNCV0InQmtCeINCU0JjQn9CbINCY0J3Qkwor0JHQmNCI0JXQm9Ce0JLQmNCLINCd0J7QktCa0JAKK9CR0JjQiNCj0JrQm9CY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCY0IjQo9Ca0JvQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQmNCI0KPQmtCb0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQmNCa0JDQoCDQlNCg0JDQk9CQ0J3QkAor0JHQmNCa0JDQoCDQpNCV0JTQntCg0JAKK9CR0JjQmtCQ0KDQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JjQmtCY0Isg0JbQmNCS0JDQnQor0JHQmNCa0JjQiyDQgtCe0KDQgtCVCivQkdCY0JrQmNCLINCU0JDQndCY0KbQkAor0JHQmNCa0JjQiyDQlNCj0KjQkNCdCivQkdCY0JrQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCdCivQkdCY0JrQmNCLINCJ0JjQidCQ0J3QkAor0JHQmNCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQmNCa0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQmNCa0JjQiyDQndCY0JrQntCb0JAKK9CR0JjQmtCY0Isg0J/QldCg0JAKK9CR0JjQmtCY0KbQmtCYINCC0J7QoNCC0JUKK9CR0JjQmtCY0KbQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCY0JrQmNCm0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JjQmtCY0KbQmtCYINCI0JXQm9CY0KbQkAor0JHQmNCa0JjQptCa0Jgg0IjQldCb0JjQptCQCivQkdCY0JrQmNCm0JrQmCDQiNCe0JLQkNCdCivQkdCY0JrQmNCm0JrQmCDQiNCe0JLQkNCdCivQkdCY0JrQmNCm0JrQmCDQmtCQ0KLQkNCg0JjQndCQCivQkdCY0JrQmNCm0JrQmCDQnNCY0JvQntCoCivQkdCY0JrQmNCm0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQkdCY0JrQmNCm0JrQmCDQoNCQ0JTQntCI0JrQkAor0JHQmNCa0JjQptCa0Jgg0KHQmNCd0JjQqNCQCivQkdCY0JrQmNCm0JrQmCDQodCY0J3QmNCo0JAKK9CR0JjQmtCY0KbQmtCYINCS0JDQodCY0JvQmNCI0JUKK9CR0JjQmtCY0KIg0JzQkNCT0JTQntCb0J3QkAor0JHQmNCa0JjQoiDQndCe0KDQkdCV0KDQogor0JHQmNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQkdCY0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCY0JvQp9CQ0KAg0KXQmNCb0JTQkAor0JHQmNCb0KfQkNCgINCS0JXQoNCQCivQkdCY0JvQkCDQnNCY0KDQmtCeCivQkdCY0JvQkNCaINCc0JjQm9CQ0J0KK9CR0JjQm9CQ0Jog0J3QkNCU0JAKK9CR0JjQm9CQ0JvQntCS0JjQiyDQodCQ0JHQkNCl0KPQlNCY0J0KK9CR0JjQm9CQ0J3Qj9CY0IjQkCDQlNCQ0J3QmNCm0JAKK9CR0JjQm9CQ0J3QmNCLINCd0JDQlNCQCivQkdCY0JvQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQmNCb0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkdCY0JvQkNCd0J7QktCY0Isg0J/QldCg0J4KK9CR0JjQm9CQ0KEg0KHQnNCY0InQkAor0JHQmNCb0JHQmNCI0JAg0JHQntCT0JTQkNCdCivQkdCY0JvQkdCY0IjQkCDQlNCV0IjQkNCdCivQkdCY0JvQkdCY0IjQkCDQlNCg0JDQk9CQ0J0KK9CR0JjQm9CR0JjQiNCQINCI0JDQodCd0JAKK9CR0JjQm9CR0JjQiNCQINCc0JjQm9CQ0J0KK9CR0JjQm9CR0JjQiNCQINCh0JzQmNCJ0JAKK9CR0JjQm9CV0Jog0JzQmNCb0JjQptCQCivQkdCY0JvQldCgINCC0J7QoNCC0JUKK9CR0JjQm9CYINCI0KPQm9CY0IjQkAor0JHQmNCb0JjQp9CY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JjQm9CY0Isg0JDQndCi0JUKK9CR0JjQm9CY0Isg0JHQoNCQ0J3QmtCY0KbQkAor0JHQmNCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQmNCb0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CR0JjQm9CY0Isg0JjQktCQ0J0KK9CR0JjQm9CY0Isg0IjQkNCa0J7Qkgor0JHQmNCb0JjQiyDQiNCV0JvQldCd0JAKK9CR0JjQm9CY0Isg0JzQmNCb0JDQnQor0JHQmNCb0JjQiyDQnNCY0JvQkNCdCivQkdCY0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCY0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCY0JvQmNCLINCc0JjQoNCeCivQkdCY0JvQmNCLINCf0KDQldCU0KDQkNCTCivQkdCY0JvQmNCLINCh0KDQgtCQ0J0KK9CR0JjQm9CY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JjQm9CY0Isg0KHQotCg0JDQmNCdCivQkdCY0JvQmNCm0JrQmCDQm9CQ0KHQm9CeCivQkdCY0JvQmNCd0J7QktCY0Isg0JHQntCg0JjQoQor0JHQmNCb0JjQndCe0JLQmNCLINCh0JDQqNCQCivQkdCY0InQkNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQmNCJ0IrQkCDQktCb0JDQlNCY0JzQmNCgCivQkdCY0JvQntCa0JDQn9CY0Isg0JjQktCQ0J0KK9CR0JjQm9Ce0JrQkNCf0JjQiyDQiNCj0KDQlQor0JHQmNCb0J7QmtCQ0J/QmNCLINCh0KLQldCS0JDQnQor0JHQmNCb0KPQqNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CR0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQmNCdINCc0KPQpdCQ0JzQldCiCivQkdCY0J3QkNCa0JDQiCDQkdCQ0IjQoNCQ0JwKK9CR0JjQndCU0JDQoSDQgtCj0KDQkAor0JHQmNCd0JTQkNChINCU0KDQkNCT0JjQptCQCivQkdCY0J3QlNCQ0KEg0JzQmNCl0JDQiNCb0J4KK9CR0JjQndCU0JXQoCDQkNCg0JDQndCa0JAKK9CR0JjQndCT0J7Qm9CUINCU0KDQkNCT0KPQotCY0J0KK9CR0JjQndCT0J7Qm9CUINCa0JDQoNCb0J4KK9CR0JjQndCT0J7Qm9CUINCg0KPQlNCe0JvQpAor0JHQmNCd0JPQo9Cb0JDQpiDQltCY0JLQmtCeCivQkdCY0J3Qk9Cj0JvQkNCmINCR0J7QiNCQ0J3QkAor0JHQmNCd0JPQo9Cb0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JHQmNCe0J3QlNCY0Isg0IjQldCb0JXQndCQCivQkdCY0J7QoNCQ0KYg0JTQldCh0JjQnNCY0KAKK9CR0JjQntCg0JDQpiDQoNCQ0J3QmtCeCivQkdCY0KDQi9CQINCh0KDQldCi0JrQngor0JHQmNCg0KbQm9CY0J0g0KDQo9CW0JjQptCQCivQkdCY0KDQlNCY0Isg0JHQldCb0JAKK9CR0JjQoNCV0Kgg0JvQldCd0JrQkAor0JHQmNCg0JXQqCDQoNCe0JfQkNCb0JjQiNCQCivQkdCY0KDQk9CV0JzQkNCI0JXQoCDQnNCQ0KDQmNCI0JAKK9CR0JjQoNCl0JzQkNCdINCQ0J3QkAor0JHQmNCg0JjQitCYINCU0JXQndCV0KgKK9CR0JjQoNCY0IrQmCDQldCj0JPQldCdCivQkdCY0KDQnNCQ0J3QkNCmINCU0KPQqNCQ0J0KK9CR0JjQoNCeINCQ0J3QotCe0J0KK9CR0JjQoNCeINCT0JjQl9CV0JvQkAor0JHQmNCg0J4g0JPQmNCX0JXQm9CQCivQkdCY0KDQniDQmNCo0KLQktCQ0J0KK9CR0JjQoNCeINCY0JvQntCd0JAKK9CR0JjQoNCeINCY0JzQoNCVCivQkdCY0KDQniDQmNCc0KDQlQor0JHQmNCg0J4g0JrQkNCi0JDQm9CY0J0KK9CR0JjQoNCeINCb0JDQiNCe0KgKK9CR0JjQoNCeINCc0JjQmtCb0J7QqAor0JHQmNCg0J4g0JzQmNCb0J7QqAor0JHQmNCg0J7QqNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQmNCg0J7QktCJ0JXQkiDQkdCg0JDQndCY0JzQmNCgCivQkdCY0KDQntCS0InQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0JHQmNCg0J7QktCJ0JXQkiDQnNCY0JvQkNCdCivQkdCY0KDQntCS0InQldCSINCc0JjQm9Ce0KDQkNCUCivQkdCY0KDQntCS0InQldCSINCc0JjQm9Ce0KHQkNCSCivQkdCY0KDQntCS0InQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JjQoNCe0JLQidCV0JIg0KLQntCU0J7QoCDQlNCgCivQkdCY0KDQntCS0InQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JjQoNCe0JLQidCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JHQmNCg0KLQkCDQktCb0JDQlNCY0JzQmNCgCivQkdCY0KDQktCQ0JvQodCa0Jgg0JTQo9Co0JDQnQor0JHQmNCh0JXQoNCn0JjQiyDQkNCd0JTQoNCY0IjQkAor0JHQmNCh0JXQoNCn0JjQiyDQlNCg0JDQk9CeCivQkdCY0KHQldCg0KfQmNCLINCc0JjQm9Ca0JDQndCQCivQkdCY0KHQmNCLINCI0J7QktCQ0J0KK9CR0JjQodCi0KDQmNCm0JDQnSDQntCb0JPQkAor0JHQmNCh0KLQoNCe0JLQmNCLINCQ0J3QotCe0J0KK9CR0JjQotCY0Isg0I/QldCc0JDQmNCbCivQkdCY0KLQniDQodCi0JXQktCQ0J0KK9CR0JjQo9CaINCc0JDQoNCY0IjQkAor0JHQmNCS0J7Qm9CQ0KDQldCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JHQmNCX0IjQkNCaINCg0JXQndCQ0KLQngor0JHQmNCX0KPQnNCY0Isg0JPQldCe0KDQk9CY0IjQlQor0JHQmNCX0KPQnNCY0Isg0IjQldCb0JrQkAor0JHQmNCX0KPQnNCY0Isg0JvQkNCX0JDQoAor0JHQmNCX0KPQnNCY0Isg0JzQmNCb0JDQnQor0JHQiNCV0JTQmNCLINCU0JXQodCQ0J3QmtCQCivQkdCI0JXQlNCe0JIg0ILQo9Ca0JAKK9CR0IjQldCU0J7QkiDQlNCg0JDQk9CeCivQkdCI0JXQlNCe0JIg0J3QmNCa0J7Qm9CQCivQkdCI0JXQk9Ce0JLQmNCLINCU0JDQndCY0JvQmtCQCivQkdCI0JXQk9Ce0JLQmNCLINCT0J7QiNCa0J4KK9CR0IjQldCa0JjQiyDQm9Cj0JrQkAor0JHQiNCV0JrQmNCLINCe0KHQotCe0IjQkAor0JHQiNCV0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQiNCV0JrQntCS0JjQiyDQoNCQ0JTQlQor0JHQiNCV0JvQkNCmINCC0KPQoNCQCivQkdCI0JXQm9CQ0KYg0JTQoNCQ0JPQkNCdCivQkdCI0JXQm9CQ0KYg0JTQoNCQ0JPQkNCdCivQkdCI0JXQm9CQ0KYg0JXQotCV0JvQmtCQCivQkdCI0JXQm9CQ0IjQkNCmINCU0KDQkNCT0JDQnQor0JHQiNCV0JvQkNCI0JDQpiDQnNCY0InQkAor0JHQiNCV0JvQkNCI0JDQpiDQodCS0JXQotCe0JfQkNCgCivQkdCI0JXQm9CQ0JrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQkdCI0JXQm9CQ0J3QntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JHQiNCV0JvQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JHQiNCV0JvQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JHQiNCV0JvQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JHQiNCV0JvQkNCd0J7QktCY0Isg0KLQkNCK0JAKK9CR0IjQldCb0JXQotCY0Isg0JHQntCT0JTQkNCdCivQkdCI0JXQm9CV0KLQmNCLINCJ0KPQkdCY0KbQkAor0JHQiNCV0JvQldCi0JjQiyDQm9Cj0JrQkAor0JHQiNCV0JvQmC3QpdCQ0I/QmNCLINCI0JXQm9CY0KbQkAor0JHQiNCV0JvQmNCLINCC0KPQoNCQCivQkdCI0JXQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQiNCV0JvQmNCLINCR0KDQkNCd0JrQngor0JHQiNCV0JvQmNCLINCU0JDQndCY0JvQmtCQCivQkdCI0JXQm9CY0Isg0JTQnNCY0KLQkNCgCivQkdCI0JXQm9CY0Isg0JPQntCg0JTQkNCd0JAKK9CR0IjQldCb0JjQiyDQiNCe0JLQkNCdCivQkdCI0JXQm9CY0Isg0JrQkNCi0JjQptCQCivQkdCI0JXQm9CY0Isg0JrQoNCh0KLQkNCdCivQkdCI0JXQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CR0IjQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCI0JXQm9CY0Isg0JzQmNCg0JrQngor0JHQiNCV0JvQmNCLINCd0JXQlNCV0InQmtCeCivQkdCI0JXQm9CY0Isg0J7Qm9CT0JAKK9CR0IjQldCb0JjQiyDQn9CV0KLQkNCgCivQkdCI0JXQm9CY0Isg0J/QldCi0JDQoAor0JHQiNCV0JvQmNCLINCh0JvQkNCS0JrQngor0JHQiNCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0IjQldCb0JjQiyDQodCi0JXQktCeCivQkdCI0JXQm9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQiNCV0JvQmNCLINCS0JXQoNCQCivQkdCI0JXQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQiNCV0JvQmNCm0JAg0KfQldCU0J4KK9CR0IjQldCb0JjQptCQINCC0J7QoNCC0JjQiNCQCivQkdCI0JXQm9CY0KbQkCDQkNCb0JXQmtCh0JAKK9CR0IjQldCb0JjQptCQINCR0J7Qk9CU0JDQnQor0JHQiNCV0JvQmNCm0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCI0JXQm9CY0KbQkCDQlNCQ0J3QmNCb0J4KK9CR0IjQldCb0JjQptCQINCU0J7QkdCg0JjQktCe0IjQlQor0JHQiNCV0JvQmNCm0JAg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQiNCV0JvQmNCm0JAg0JPQntCI0JrQngor0JHQiNCV0JvQmNCm0JAg0JPQntCI0JrQngor0JHQiNCV0JvQmNCm0JAg0IjQkNCU0KDQkNCd0JrQkAor0JHQiNCV0JvQmNCm0JAg0IjQkNCU0KDQkNCd0JrQkAor0JHQiNCV0JvQmNCm0JAg0JvQo9Ca0JAKK9CR0IjQldCb0JjQptCQINCc0JjQm9CQ0J0KK9CR0IjQldCb0JjQptCQINCc0JjQm9CY0KbQkAor0JHQiNCV0JvQmNCm0JAg0JzQmNCe0JTQoNCQ0JMKK9CR0IjQldCb0JjQptCQINCd0JDQlNCQCivQkdCI0JXQm9CY0KbQkC3Qn9Ce0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0IjQldCb0JjQptCQINCg0JDQiNCa0J4KK9CR0IjQldCb0JjQptCQINCg0JDQmtCeCivQkdCI0JXQm9CY0KbQkCDQoNCQ0KLQmtCeCivQkdCI0JXQm9CY0KbQkCDQodCQ0JLQmtCQCivQkdCI0JXQm9CY0KbQkCDQodCb0JDQktCa0J4KK9CR0IjQldCb0JjQptCQINCh0J/QkNCh0J7QiNCVCivQkdCI0JXQm9CY0KbQkCDQotCY0JPQoNCQ0J0KK9CR0IjQldCb0JjQptCQINCS0JXQidCa0J4KK9CR0IjQldCb0JjQptCQINCS0JXQidCa0J4KK9CR0IjQldCb0JjQptCQINCS0J7QiNCeCivQkdCI0JXQm9CY0KbQkCDQktCj0JrQntCh0JDQktCQCivQkdCI0JXQm9CY0KbQkCDQl9Ce0KDQkNCdCivQkdCI0JXQm9CY0J3QmNCLINCU0JDQoNCY0J3QmtCQCivQkdCI0JXQm9CY0J3QmNCLINCI0J7QktCeCivQkdCI0JXQm9CY0JLQo9CaINCT0J7QoNCQ0J0KK9CR0IjQldCb0JjQktCj0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JHQiNCV0InQkNCmINCQ0J3QkAor0JHQiNCV0InQkNCmINCR0J7QoNCQCivQkdCI0JXQidCQ0KYg0JHQoNCQ0J3QmtCeCivQkdCI0JXQidCQ0KYg0JzQmNCb0JDQnQor0JHQiNCV0InQkNCmINCc0JjQm9Ce0KDQkNCUCivQkdCI0JXQm9Ce0Kgg0JTQkNCd0JjQptCQCivQkdCI0JXQm9Ce0Kgg0JzQmNCg0J7QodCb0JDQkgor0JHQiNCV0JvQntCoINCc0JjQoNCe0KHQm9CQ0JIKK9CR0IjQldCb0J7QqNCV0JLQmNCLINCh0JvQkNCS0JrQngor0JHQiNCV0JvQntCR0JDQkdCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCI0JXQm9Ce0JHQkNCR0JAg0JTQkNCg0JAKK9CR0IjQldCb0J7QkdCg0Jog0JHQntCo0JrQngor0JHQiNCV0JvQntCR0KDQmiDQkdCe0KjQmtCeCivQkdCI0JXQm9Ce0JHQoNCaINCT0J7QoNCQ0J0KK9CR0IjQldCb0J7QkdCg0Jog0JvQkNCX0JDQoAor0JHQiNCV0JvQntCR0KDQmiDQm9CQ0JfQkNCgCivQkdCI0JXQm9Ce0JHQoNCaINCc0JDQndCVCivQkdCI0JXQm9Ce0JHQoNCaINCc0JDQoNCa0J4KK9CR0IjQldCb0J7QkdCg0Jog0JzQmNCb0JDQnQor0JHQiNCV0JvQntCR0KDQmiDQnNCY0JvQntCoCivQkdCI0JXQm9Ce0JHQoNCaINCf0JXQotCQ0KAKK9CR0IjQldCb0J7QkdCg0Jot0JLQkNCg0JPQkCDQiNCQ0KHQndCQCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQgtCe0KDQgtCVCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JHQiNCV0JvQntCT0KDQm9CY0Isg0JTQldCI0JDQndCQCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCJ0KPQkdCY0KbQkAor0JHQiNCV0JvQntCT0KDQm9CY0Isg0InQo9CR0J4KK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCc0JjQotCQ0KAKK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCI0JXQm9Ce0KLQntCc0JjQiyDQiNCe0JLQngor0JHQiNCV0JvQntCS0JjQiyDQoNCQ0KLQmtCeCivQkdCI0JXQm9Ce0JLQo9CaINCc0JjQoNCI0JDQndCQCivQkdCI0JXQm9Ce0JLQo9CaINCh0JvQkNCS0JjQptCQCivQkdCI0JXQm9Ce0JLQo9CaINCh0JvQkNCS0JrQngor0JHQm9CQ0KjQmtCeINCi0JjQkdCe0KAKK9CR0JvQkNCo0JrQntCS0JjQiyDQpNCg0JDQitCeCivQkdCb0JDQqNCa0J7QktCY0Isg0JvQkNCh0JvQngor0JHQm9CQ0KjQmtCe0JLQmNCLINCf0JDQktCb0JUKK9CR0JvQkNCW0JDQnSDQpNCg0JDQitCeCivQkdCb0JDQltCQ0J0g0JjQktCeCivQkdCb0JDQltCQ0J0g0JzQkNCg0JrQngor0JHQm9CQ0JbQkNCdINCh0JvQkNCS0JrQngor0JHQm9CQ0JbQldCaINCT0KPQodCi0JDQkgor0JHQm9CQ0JbQldCaINCI0JXQm9CV0J3QkAor0JHQm9CQ0JbQldCaINCc0JDQoNCY0IjQkAor0JHQm9CQ0JbQldCaINCc0JjQpdCQ0IkKK9CR0JvQkNCW0JXQktCQINCe0JvQk9CQCivQkdCb0JDQltCV0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQkdCb0JDQltCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQkdCb0JDQltCV0JLQmNCLINCU0KDQkNCT0J4KK9CR0JvQkNCW0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0JvQkNCW0JXQktCY0Isg0JTQo9Co0JjQptCQCivQkdCb0JDQltCV0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9CR0JvQkNCW0JXQktCY0Isg0KTQoNCQ0IrQngor0JHQm9CQ0JbQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQm9CQ0JbQldCS0JjQiyDQoNCQ0JTQlSDQlNCgINCb0JXQmtCQ0KAKK9CR0JvQkNCW0JXQktCY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JvQkNCW0JXQktCY0Isg0KHQo9CX0JDQndCQCivQkdCb0JDQltCV0JLQmNCLINCS0JXQoNCQCivQkdCb0JDQltCV0JLQmNCLINCX0J7QoNCQ0J0KK9CR0JvQkNCW0JjQiyDQgtCe0KDQgtCVCivQkdCb0JDQltCY0Isg0JHQntCo0JrQngor0JHQm9CQ0JbQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCb0JDQltCY0Isg0JTQoNCQ0JPQkNCdCivQkdCb0JDQltCY0Isg0JTQoNCQ0JPQkNCdCivQkdCb0JDQltCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQm9CQ0JbQmNCLINCl0KDQmNCh0KLQmNCd0JAKK9CR0JvQkNCW0JjQiyDQmNCS0JDQnQor0JHQm9CQ0JbQmNCLINCI0JXQm9CV0J3QkAor0JHQm9CQ0JbQmNCLINCa0KHQldCd0JjQiNCQCivQkdCb0JDQltCY0Isg0JzQkNCg0JjQiNCQCivQkdCb0JDQltCY0Isg0JzQldCi0J7QlNCY0IjQlQor0JHQm9CQ0JbQmNCLINCc0JjQpdCQ0IjQm9CeCivQkdCb0JDQltCY0Isg0KHQkNCS0JAKK9CR0JvQkNCW0JjQiyDQodCQ0JLQmtCeCivQkdCb0JDQltCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQm9CQ0JbQmNCLINCS0JjQlNCQCivQkdCb0JDQltCY0Jog0JDQndCi0JDQmwor0JHQm9CQ0JbQmNCdINCU0KDQkNCT0JjQitCQCivQkdCb0JDQk9Ce0IjQldCSINCW0JjQktCa0J4KK9CR0JvQkNCT0J7QiNCV0JIg0JbQmNCS0JrQngor0JHQm9CQ0JPQntCI0JXQkiDQgtCe0KDQgtCVCivQkdCb0JDQk9Ce0IjQldCSINCY0JLQkNCdCivQkdCb0JDQk9Ce0IjQldCSINCc0JjQm9CY0JLQntCICivQkdCb0JDQk9Ce0IjQldCSINCc0JjQm9Ce0KDQkNCUCivQkdCb0JDQk9Ce0IjQldCSINCc0JjQotCQCivQkdCb0JDQk9Ce0IjQldCSINCg0JDQlNCQCivQkdCb0JDQk9Ce0IjQldCSINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JvQkNCT0J7QiNCV0JIg0KHQotCV0JLQkNCdCivQkdCb0JDQk9Ce0IjQldCSINCS0JXQm9CY0JzQmNCgCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQp9CV0JTQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JbQkNCg0JrQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JDQndCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkdCV0IvQmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkdCe0KDQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCR0J7QoNCa0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0IjQkNCT0JjQptCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQiNCQ0J3QmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQmtCg0KHQotCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCa0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQmtCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCb0J7QqAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQm9CQ0ILQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQntCc0JjQoAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0J3QkNCU0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQoNCQ0JTQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JXQoNCQ0KTQmNCd0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0J3QldCW0JDQndCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQodCK0JXQltCQ0J3QkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQodCi0JXQktCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQodCS0JXQotCa0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JHQm9CQ0JPQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JvQkNCl0J4g0IjQntCW0JXQpAor0JHQm9CQ0J3QkNCg0JjQmiDQqNCQ0J3QlNCe0KAKK9CR0JvQkNCd0JDQoNCY0Jog0ILQo9Cg0JAKK9CR0JvQkNCd0JDQoNCY0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JvQkNCd0JDQoNCY0Jog0JXQotCV0JvQmtCQCivQkdCb0JDQndCQ0KDQmNCaINCY0JvQntCd0JAKK9CR0JvQkNCd0JDQoNCY0Jog0IjQntCW0JXQpAor0JHQm9CQ0J3QkNCg0JjQmiDQm9CQ0JTQmNCh0JvQkNCSCivQkdCb0JDQndCQ0KDQmNCaINCe0JvQk9CQCivQkdCb0JDQndCQ0KDQmNCaINCh0KLQldCS0JDQnQor0JHQm9CQ0J3QkNCg0JjQmiDQotCY0JHQntCgCivQkdCb0JDQndCQ0KDQmNCaINCS0JDQm9CV0KDQmNCI0JAKK9CR0JvQkNCd0KPQqNCQINCR0KDQkNCd0JrQngor0JHQm9CQ0J3Qo9Co0JAg0JjQm9CY0IjQkAor0JHQm9CQ0J3Qo9Co0JAg0KDQkNCU0JUKK9CR0JvQkNCd0KPQqNCQINCS0JXQoNCQCivQkdCb0JDQndCj0KjQkCDQl9Ce0KDQkNCdCivQkdCb0JDQotCV0KjQmNCLINCc0JjQntCJ0JrQkAor0JHQm9CQ0KLQldCo0JjQiyDQoNCQ0IjQmtCeCivQkdCb0JDQotCd0JjQptCa0Jgg0JLQldCh0J3QkAor0JHQm9CV0KfQmNCLINCI0JXQm9CV0J3QkAor0JHQm9CV0KfQmNCLINCJ0KPQkdCY0KbQkAor0JHQm9CV0KfQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCb0JXQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0JvQldCn0JjQiyDQoNCQ0JTQntCh0JDQkiDQnNCgCivQkdCb0JXQp9CY0Isg0KHQkNCo0JAKK9CR0JvQldCl0Jsg0IjQntCS0JDQndCa0JAKK9CR0JvQmNCi0JLQkCDQgtCe0KDQgtCVCivQkdCb0JjQotCS0JAg0JHQoNCQ0J3QmtCeCivQkdCb0JjQl9CQ0J3QkNCmINCU0J7QkdCg0JjQktCe0IgKK9CR0JvQmNCX0JDQndCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0JHQm9CY0JfQkNCd0JDQpiDQlNCj0KjQkNCdCivQkdCb0JjQl9CQ0J3QkNCmINCI0JXQm9Ca0JjQptCQCivQkdCb0JjQl9CQ0J3QkNCmINCb0JXQn9Ce0KHQkNCS0JAKK9CR0JvQmNCX0JDQndCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CR0JvQmNCX0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JHQm9CY0JfQkNCd0JDQpiDQndCV0J3QkNCUCivQkdCb0JjQl9CQ0J3QkNCmINCh0JDQktCQCivQkdCb0JjQl9CQ0J3QkNCmINCS0KPQiNCY0KbQkAor0JHQm9Ce0JbQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQm9Cj0JzQldCd0KjQkNCI0J0g0JrQkNCg0JvQngor0JHQntCn0JDQnSDQmNCS0JDQnQor0JHQntCn0JrQntCgINCd0JjQmtCe0JvQkAor0JHQntCo0KfQkNCd0JjQnSDQkdCe0KjQmtCeCivQkdCe0KjQmtCY0Isg0JHQntCg0JrQkAor0JHQntCo0JrQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0KjQmtCY0Isg0J3QkNCi0JDQqNCQCivQkdCe0KjQmtCY0Isg0JfQntCg0JAKK9CR0J7QqNCa0J7QkiDQltCQ0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JHQntCo0JrQntCSINCW0JjQktCe0IjQmNCdCivQkdCe0KjQmtCe0JIt0IjQkNCT0J7QlNCY0Isg0JfQntCg0JjQptCQCivQkdCe0KjQmtCe0JIg0InQo9CR0JjQndCa0JAKK9CR0J7QqNCa0J7QkiDQm9Cj0JrQkAor0JHQntCo0JrQntCSINCc0JjQm9CY0JLQntCI0JUKK9CR0J7QqNCa0J7QkiDQnNCY0JvQntCoCivQkdCe0KjQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9CR0J7QqNCa0J7QkiDQodCQ0JLQmtCQCivQkdCe0KjQmtCe0JIg0KHQntCk0JjQiNCQCivQkdCe0KjQmtCe0JIg0KHQoNCV0KLQldCdCivQkdCe0KjQmtCe0JIg0KHQotCV0JLQkNCdCivQkdCe0KjQmtCe0JIg0KHQotCe0IjQkNCdCivQkdCe0KjQmtCe0JIg0JLQldCh0J3QkAor0JHQntCo0JrQntCSINCS0KPQiNCQ0JTQmNCdCivQkdCe0KjQmtCe0JLQmNCLINCW0JXQidCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0JbQmNCS0JrQngor0JHQntCo0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCo0JrQntCS0JjQiyDQkNCb0JXQmtCh0JAKK9CR0J7QqNCa0J7QktCY0Isg0JDQm9CV0JrQodCQCivQkdCe0KjQmtCe0JLQmNCLINCQ0J3QgtCQCivQkdCe0KjQmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JHQntCo0JrQntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JHQntCo0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9CR0J7QqNCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCR0J7QoNCY0KEKK9CR0J7QqNCa0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0KbQktCV0KLQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JHQntCo0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JHQntCo0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0J7QqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JvQngor0JHQntCo0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0JTQo9Co0JrQngor0JHQntCo0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0KXQldCU0JLQmNCT0JAKK9CR0J7QqNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JHQntCo0JrQntCS0JjQiyDQmtCg0KHQotCeCivQkdCe0KjQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JHQntCo0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CR0J7QqNCa0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CR0J7QqNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0JzQmNCb0JXQktCQCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CR0J7QqNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQntCo0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQntCo0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0KjQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0KjQmtCe0JLQmNCLINCd0JDQlNCQCivQkdCe0KjQmtCe0JLQmNCLINCd0JDQlNCQCivQkdCe0KjQmtCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCo0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QqNCa0J7QktCY0Isg0J3QntCS0JrQkAor0JHQntCo0JrQntCS0JjQiy3Qn9CV0KDQntCS0JjQiyDQmNCS0JDQndCQCivQkdCe0KjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CR0J7QqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCo0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0KjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CR0J7QqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCo0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQoNCe0KHQkAor0JHQntCo0JrQntCS0JjQiyDQodCQ0JLQkAor0JHQntCo0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQntCo0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0KHQotCV0JLQkNCdINCQ0JTQktCe0JrQkNCiCivQkdCe0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JHQntCo0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQntCo0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0KjQmtCe0JLQmNCLINCS0JXQidCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0JLQm9CQ0JTQkAor0JHQntCo0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0KjQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0J7QqNCa0J7QktCh0JrQmCDQlNCe0IjQp9CY0J0KK9CR0J7QqNCa0J7QktCh0JrQmCDQoNCQ0JTQkAor0JHQntCo0IrQkNCn0JjQiyDQoNCQ0IjQmtCeCivQkdCe0KjQitCQ0Jog0ILQntCg0ILQlQor0JHQntCo0IrQkNCaINCC0KPQoNCQCivQkdCe0KjQitCQ0Jog0ILQo9Cg0J4KK9CR0J7QqNCK0JDQmiDQkNCd0JAKK9CR0J7QqNCK0JDQmiDQkdCe0JbQmNCU0JDQoAor0JHQntCo0IrQkNCaINCU0JDQoNCa0J4KK9CR0J7QqNCK0JDQmiDQlNCV0IjQkNCdCivQkdCe0KjQitCQ0Jog0JTQldCh0JDQndCa0JAKK9CR0J7QqNCK0JDQmiDQpNCV0KDQldCd0KYKK9CR0J7QqNCK0JDQmiDQmNCo0KLQktCQ0J0KK9CR0J7QqNCK0JDQmiDQiNCV0JvQldCd0JAKK9CR0J7QqNCK0JDQmiDQiNCV0JvQmNCm0JAKK9CR0J7QqNCK0JDQmiDQiNCV0JvQmNCm0JAKK9CR0J7QqNCK0JDQmiDQiNCj0JvQmtCQCivQkdCe0KjQitCQ0Jog0JrQkNCi0JDQoNCY0J3QkAor0JHQntCo0IrQkNCaINCa0J7QodCi0JAKK9CR0J7QqNCK0JDQmiDQidCj0JHQntCc0JjQoAor0JHQntCo0IrQkNCaINCJ0KPQkdCe0JzQmNCgCivQkdCe0KjQitCQ0Jog0JzQkNCT0JTQkNCb0JXQndCQCivQkdCe0KjQitCQ0Jog0JzQkNCg0JjQiNCQCivQkdCe0KjQitCQ0Jog0JzQmNCb0JDQnQor0JHQntCo0IrQkNCaINCc0JjQm9CV0J3QkAor0JHQntCo0IrQkNCaINCc0JjQm9Ce0KDQkNCUCivQkdCe0KjQitCQ0Jog0JzQmNCg0JrQngor0JHQntCo0IrQkNCaINCd0JXQgtCeCivQkdCe0KjQitCQ0Jog0J3QmNCa0J7Qm9CQCivQkdCe0KjQitCQ0Jog0J/QkNCS0JvQlQor0JHQntCo0IrQkNCaINCf0JXQotCQ0KAKK9CR0J7QqNCK0JDQmiDQoNCQ0JTQnNCY0JvQkAor0JHQntCo0IrQkNCaINCg0JDQlNCe0IjQmtCQCivQkdCe0KjQitCQ0Jog0KDQkNCU0J7QktCQ0J0KK9CR0J7QqNCK0JDQmiDQodCb0JDQktCa0JAKK9CR0J7QqNCK0JDQmiDQodCb0JDQktCa0J4KK9CR0J7QqNCK0JDQmiDQotCe0JzQmNCh0JvQkNCSCivQkdCe0KjQitCQ0Jog0JLQldCb0JjQnNCY0KAKK9CR0J7QqNCK0JDQmiDQktCY0JTQntCh0JDQktCQCivQkdCe0KjQitCQ0Jog0JLQmNCd0JrQkAor0JHQntCo0IrQkNCaINCS0J7QiNCY0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmiDQl9Ce0KDQkNCdCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQkNCd0KLQntCd0JjQiNCQCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JHQntCo0IrQkNCa0J7QktCY0Isg0KbQktCY0IjQldCi0JjQnQor0JHQntCo0IrQkNCa0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JHQntCo0IrQkNCa0J7QktCY0Isg0JrQntCg0J3QldCb0JjQiNCVCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCo0IrQkNCa0J7QktCY0Isg0JzQkNCg0JjQptCQINCU0JjQn9CbINCe0JXQpgor0JHQntCo0IrQkNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCf0JDQktCQ0J4KK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0JHQntCo0IrQkNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQkdCe0IvQkNCdINCc0JDQoNCY0IjQkAor0JHQntCL0JXQoNCV0JMg0JfQo9CX0JDQndCQCivQkdCe0JbQkCDQn9CQ0JsKK9CR0J7QltCQ0J3QmNCLINCW0JjQmtCQCivQkdCe0JbQkNCd0JjQiyDQgtCe0KDQgtCVCivQkdCe0JbQkNCd0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQntCW0JDQndCY0Isg0JTQo9Co0JDQnQor0JHQntCW0JDQndCY0Isg0JPQntCI0JrQngor0JHQntCW0JDQndCY0Isg0IjQldCb0JXQndCQCivQkdCe0JbQkNCd0JjQiyDQmtCe0KHQkAor0JHQntCW0JDQndCY0Isg0JzQmNCb0JjQptCQCivQkdCe0JbQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCW0JDQndCY0Isg0J3QldCS0JXQndCa0JAKK9CR0J7QltCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCQCivQkdCe0JbQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JHQntCW0JXQoCDQm9CQ0IjQntCoCivQkdCe0JbQldCgINCJ0KPQlNCV0JLQmNCiCivQkdCe0JbQldCgINCX0J7QoNCQCivQkdCe0JbQmNCn0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JHQntCW0JjQp9CY0Isg0J/QldCi0JDQoAor0JHQntCW0JjQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JHQntCW0JjQp9Ca0J7QktCY0Isg0J3QldCU0JXQidCa0J4g0JTQoAor0JHQntCW0JjQp9Ca0J7QktCY0Isg0J3QldCg0JAKK9CR0J7QltCY0KfQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0J7QltCY0KfQmtCe0JLQmNCLINCX0J7QoNCa0JAKK9CR0J7QltCY0Isg0KfQldCU0J7QnNCY0KAKK9CR0J7QltCY0Isg0JbQkNCg0JrQngor0JHQntCW0JjQiyDQltCY0JLQkNCd0JAKK9CR0J7QltCY0Isg0JbQmNCS0JrQngor0JHQntCW0JjQiyDQgtCe0KDQgtCVCivQkdCe0JbQmNCLINCC0KPQoNCC0JjQndCQCivQkdCe0JbQmNCLINCC0KPQoNCQCivQkdCe0JbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JbQmNCLINCQ0J3QgtCV0JvQmtCQCivQkdCe0JbQmNCLINCR0J7QqNCa0J4KK9CR0J7QltCY0Isg0JHQntCW0JDQndCQCivQkdCe0JbQmNCLINCR0J7QoNCY0JLQntCICivQkdCe0JbQmNCLINCR0J7QoNCa0J4KK9CR0J7QltCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JbQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCW0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JHQntCW0JjQiyDQlNCV0IjQngor0JHQntCW0JjQiyDQlNCV0KHQkNCd0JrQkAor0JHQntCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QltCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0JbQmNCLINCU0KDQkNCT0JDQnQor0JHQntCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QltCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCW0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkdCe0JbQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0J7QltCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCW0JjQiyDQlNCj0KjQkNCdCivQkdCe0JbQmNCLINCT0JDQktCg0J4KK9CR0J7QltCY0Isg0JPQntCI0JrQngor0JHQntCW0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCW0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCW0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQkdCe0JbQmNCLINCY0JvQmNCI0JAKK9CR0J7QltCY0Isg0JjQktCQ0J0KK9CR0J7QltCY0Isg0IjQntCS0JDQndCa0JAKK9CR0J7QltCY0Isg0IjQntCS0JDQnQor0JHQntCW0JjQiyDQiNCe0JLQkNCdCivQkdCe0JbQmNCLINCI0J7QktCY0KbQkAor0JHQntCW0JjQiyDQiNCj0JvQmtCQCivQkdCe0JbQmNCLINCa0KHQldCd0JjQiNCQCivQkdCe0JbQmNCLINCb0JDQl9CQ0KAKK9CR0J7QltCY0Isg0JvQkNCX0JDQoAor0JHQntCW0JjQiyDQidCY0InQkNCd0JAKK9CR0J7QltCY0Isg0JzQkNCg0JAKK9CR0J7QltCY0Isg0JzQkNCg0JjQndCa0J4KK9CR0J7QltCY0Isg0JzQkNCg0JrQngor0JHQntCW0JjQiyDQnNCQ0KDQmtCeCivQkdCe0JbQmNCLINCc0JDQoNCa0J4KK9CR0J7QltCY0Isg0JzQkNCi0JjQiNCQCivQkdCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QltCY0Isg0JzQmNCb0JDQnQor0JHQntCW0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QltCY0Isg0JzQmNCb0JDQnQor0JHQntCW0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCLINCc0JjQm9CV0JLQkAor0JHQntCW0JjQiyDQnNCY0JvQlQor0JHQntCW0JjQiyDQnNCY0JvQmNCh0JDQkgor0JHQntCW0JjQiyDQnNCY0InQmtCeCivQkdCe0JbQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0JbQmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0JbQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0JbQmNCLINCc0JjQoNCa0J4KK9CR0J7QltCY0Isg0JzQmNCg0JrQngor0JHQntCW0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQntCW0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQntCW0JjQiyDQndCV0ILQngor0JHQntCW0JjQiyDQndCV0J3QkNCUCivQkdCe0JbQmNCLINCd0JXQndCQ0JQKK9CR0J7QltCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JbQmNCLINCe0JvQk9CQCivQkdCe0JbQmNCLINCe0JfQoNCV0J0KK9CR0J7QltCY0Isg0J/QkNCS0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QltCY0Isg0J/QldCg0JAKK9CR0J7QltCY0Isg0J/QldCi0JDQoAor0JHQntCW0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQntCW0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQntCW0JjQiy3QoNCQ0JTQntCc0JjQoNCe0JLQmNCLINCI0J7QmtCQCivQkdCe0JbQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0JbQmNCLINCg0JDQiNCa0J4KK9CR0J7QltCY0Isg0KDQkNCd0JrQngor0JHQntCW0JjQiyDQodCQ0IrQkAor0JHQntCW0JjQiyDQodCQ0JLQkAor0JHQntCW0JjQiyDQodCQ0JLQkAor0JHQntCW0JjQiyDQodCQ0JLQngor0JHQntCW0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QltCY0Isg0KHQoNCV0KLQldCdCivQkdCe0JbQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CR0J7QltCY0Isg0KHQotCV0JLQkNCdCivQkdCe0JbQmNCLINCh0KLQldCS0J4KK9CR0J7QltCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JHQntCW0JjQiyDQotCQ0JzQkNCg0JAKK9CR0J7QltCY0Isg0KLQkNCi0IjQkNCd0JAKK9CR0J7QltCY0Isg0KLQldCe0JTQntCgCivQkdCe0JbQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7QltCY0Isg0JLQldCg0JjQptCQCivQkdCe0JbQmNCLLdCS0JjQm9CY0Isg0IjQldCb0JXQndCQCivQkdCe0JbQmNCLINCS0JvQkNCU0JDQndCa0JAKK9CR0J7QltCY0Isg0JLQm9CQ0JTQkAor0JHQntCW0JjQiyDQktCb0JDQlNCQCivQkdCe0JbQmNCLINCS0JvQkNCU0JAKK9CR0J7QltCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQkdCe0JbQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CR0J7QltCY0Isg0JfQm9CQ0KLQkAor0JHQntCW0JjQiyDQl9Cb0JDQotCY0KbQkAor0JHQntCW0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JbQmNCLINCX0J7QoNCQ0J0KK9CR0J7QltCY0Isg0JfQntCg0JDQnQor0JHQntCW0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JbQmNCLINCX0J7QoNCa0JAKK9CR0J7QltCY0JTQkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JbQmNCU0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQkdCe0JbQmNCU0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQkdCe0JbQmNCU0JDQoC3QmtCg0JjQltCQ0Jog0JjQoNCV0J3QkAor0JHQntCW0JjQlNCQ0KAg0InQo9CR0J7QnNCY0KAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0ILQo9Cg0JAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0JTQldCh0JDQndCa0JAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0J/QldCg0KHQmNCU0JAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0JLQldCJ0JrQngor0JHQntCW0JjQnSDQltCQ0KDQmtCeCivQkdCe0JbQmNCdINCC0J7QoNCC0JUKK9CR0J7QltCY0J0g0JTQkNCd0JjQptCQCivQkdCe0JbQmNCdINCU0JDQoNCY0J3QmtCQCivQkdCe0JbQmNCdINCU0JXQodCQ0J3QmtCQCivQkdCe0JbQmNCdINCY0JPQitCQ0KIg0JTQmNCf0Jsg0JjQndCTCivQkdCe0JbQmNCdINCY0KHQmNCU0J7QoAor0JHQntCW0JjQnSDQiNCV0JvQmNCm0JAKK9CR0J7QltCY0J0g0IjQo9Cb0JjQiNCQ0J3QkAor0JHQntCW0JjQnSDQmtCg0JjQodCi0JjQndCQCivQkdCe0JbQmNCdINCa0KHQldCd0JjQiNCQCivQkdCe0JbQmNCdINCb0JDQl9CQ0KAKK9CR0J7QltCY0J0g0InQo9CR0JjQptCQCivQkdCe0JbQmNCdINCJ0KPQkdCY0KbQkAor0JHQntCW0JjQnSDQnNCY0JvQntCoCivQkdCe0JbQmNCdINCc0JjQm9Ce0KgKK9CR0J7QltCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JHQntCW0JjQnSDQndCY0JrQntCb0JAKK9CR0J7QltCY0J0g0J/QkNCS0JvQlQor0JHQntCW0JjQnSDQn9CV0KLQkNCgCivQkdCe0JbQmNCdINCg0JDQlNCY0JLQntCICivQkdCe0JbQmNCdINCg0JDQlNCe0JLQkNCdCivQkdCe0JbQmNCdINCh0JjQndCY0KjQkAor0JHQntCW0JjQnSDQodCb0JDQktCY0KbQkAor0JHQntCW0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JbQmNCdINCh0KLQldCS0JDQnQor0JHQntCW0JjQnSDQodCi0JXQktCQ0J0KK9CR0J7QltCY0J0g0KHQotCV0JLQkNCdCivQkdCe0JbQmNCd0JjQiyDQoNCj0JbQmNCm0JAKK9CR0J7QltCY0J3QntCS0KHQmtCYINCQ0J3Qk9CV0JsKK9CR0J7QltCY0J3QntCS0KHQmtCYINCg0JjQodCi0JUKK9CR0J7QltCY0J3QntCS0KHQmtCYINCi0KDQkNCI0JDQnQor0JHQntCW0IjQkNCaINCk0KDQkNCK0J4KK9CR0J7QltCI0JDQmiDQnNCY0JrQkAor0JHQntCW0IjQkNCa0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CR0J7QltCeINCV0JvQldCe0J3QntCg0JAKK9CR0J7QltCe0JrQmCDQldCg0J3QlQor0JHQntCW0J7QmtCYINCY0JvQntCd0JAKK9CR0J7QltCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkdCe0JbQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JHQntCW0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQkdCe0JbQntCS0JjQiyDQk9Ce0KDQp9CY0J0KK9CR0J7QltCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkdCe0JbQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0J7QltCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdINCU0JjQn9CbINCY0J3Qkwor0JHQntCW0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CR0J7QltCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0JbQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQntCW0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7QltCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQkdCe0JbQntCS0JjQiyDQoNCQ0KjQmtCeCivQkdCe0JbQntCS0JjQiyDQodCb0JDQktCa0J4KK9CR0J7QltCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQkdCe0JbQntCS0JjQiyDQodCi0JDQndCa0JAKK9CR0J7QltCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQkdCe0JbQntCS0JjQiyDQktCV0KDQkAor0JHQntCW0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCW0KPQm9CY0Isg0JDQndCC0JXQm9Ca0J4KK9CR0J7QltCj0JvQmNCLINCY0JLQkNCdCivQkdCe0JbQo9Cb0JjQiyDQmNCS0JjQptCQCivQkdCe0JbQo9Cb0JjQiyDQodCY0J3QmNCo0JAKK9CR0J7QltCj0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0ILQkCDQgtCj0KDQkAor0JHQntCC0JAg0JDQndCU0KDQmNCI0JAKK9CR0J7QgtCQINCQ0J3QlNCg0JjQiNCQCivQkdCe0ILQkCDQkNCd0JTQoNCY0IjQkAor0JHQntCC0JAg0JjQktCQ0J0KK9CR0J7QgtCQINCY0JLQkNCdCivQkdCe0ILQkCDQiNCe0JLQkNCdCivQkdCe0ILQkCDQodCQ0KjQkAor0JHQntCC0JAg0KHQotCV0JLQkNCdCivQkdCe0ILQkNCd0JDQpiDQiNCV0JvQldCd0JAKK9CR0J7QgtCQ0J3QkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7QgtCQ0J3QkNCmINCX0JTQoNCQ0JLQmtCeCivQkdCe0ILQkNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JDQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCe0JDQoNCe0JIg0IjQntCS0JDQnQor0JHQntCQ0KDQntCSINCa0JDQotCQ0KDQmNCd0JAKK9CR0J7QkNCg0J7QkiDQnNCY0JvQkNCd0JrQkAor0JHQntCRINCI0KPQodCi0JjQndCQCivQkdCe0JHQkNCaINCY0KjQotCS0JDQnQor0JHQntCR0JDQmiDQmtCQ0KLQmNCm0JAKK9CR0J7QkdCQ0J0g0ILQldCg0IIKK9CR0J7QkdCQ0J0g0JzQkNCg0JjQiNCQCivQkdCe0JHQkNCdINCc0JXQoNCY0JzQkAor0JHQntCR0JDQnSDQndCV0JTQldCJ0JrQngor0JHQntCR0JDQnSDQodCi0JjQn9CVCivQkdCe0JHQkNCdINCh0KPQl9CQ0J3QkAor0JHQntCR0JDQnS3QktCQ0KDQndCj0KEg0JXQoNCW0JXQkdCV0KIKK9CR0J7QkdCQ0Iog0JjQnNCg0JUKK9CR0J7QkdCQ0KAg0JHQntCo0JrQngor0JHQntCR0JDQoNCV0JLQmNCLINCg0KPQltCY0KbQkAor0JHQntCR0JXQoNCY0Isg0J7Qm9CT0JAKK9CR0J7QkdCV0KDQmNCLINCX0J7QoNCa0JAKK9CR0J7QkdCY0Isg0ILQntCg0ILQlQor0JHQntCR0JjQiyDQgtCe0KDQgtCVCivQkdCe0JHQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QkdCY0Isg0JjQktCQ0J0KK9CR0J7QkdCY0Isg0IjQntCh0JjQnwor0JHQntCR0JjQiyDQmtCQ0IjQkAor0JHQntCR0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCR0JjQiyDQnNCY0JvQkNCd0JrQkAor0JHQntCR0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QkdCY0Isg0JzQm9CQ0JTQldCdCivQkdCe0JHQmNCLINCd0JXQndCQ0JQKK9CR0J7QkdCY0Isg0KDQo9CW0JjQptCQCivQkdCe0JHQmNCLINCi0JDQitCQCivQkdCe0JHQmNCd0JDQpiDQiNCe0KHQmNCfCivQkdCe0JHQmNCd0JDQpiDQm9Cj0KbQmNCI0JAKK9CR0J7QkdCY0J3QldCmINCI0J7QodCY0J8KK9CR0J7QkdCJ0JDQk9Ce0JLQmNCLINCR0J7Qk9Ce0KHQm9CQ0JIKK9CR0J7QkdCe0Kgg0KHQotCQ0J3QmtCeCivQkdCe0KYg0KHQotCV0JLQkNCdCivQkdCe0KbQkCDQlNCQ0J3QlQor0JHQntCm0JAg0JTQo9Co0JDQnQor0JHQntCm0JAg0JzQmNCb0JUKK9CR0J7QptCQINCc0JjQm9Ce0KgKK9CR0J7QptCe0J3QkNCU0Jgg0JzQkNCg0KLQntCdCivQkdCe0I/QntCd0Jgg0JPQmNCX0JXQm9CQCivQkdCe0I/QntCd0Jgg0KHQotCV0JLQkNCdCivQkdCe0JTQkCDQiNCe0JLQkNCdCivQkdCe0JTQkNCa0J7QqCDQiNCe0KHQmNCfCivQkdCe0JTQkNCa0J7QqCDQodCi0IjQldCf0JDQnQor0JHQntCU0JXQk9Cg0JDQiNCQ0KYg0KHQntCk0JjQiNCQCivQkdCe0JTQmCDQldCg0JbQldCR0JXQogor0JHQntCU0Jgg0IjQkNCh0JzQmNCd0JAKK9CR0J7QlNCYINCb0JDQiNCe0KgKK9CR0J7QlNCYINCb0JDQodCb0J4KK9CR0J7QlNCYINCc0JjQpdCQ0IjQm9CeCivQkdCe0JTQmNCoINCI0J7QltCV0KQKK9CR0J7QlNCY0Kgg0JzQmNCb0JjQptCQCivQkdCe0JTQmNCg0J7QltCQINCf0JXQotCQ0KAKK9CR0J7QlNCY0KDQntCW0JAg0KDQkNCU0JjQktCe0IgKK9CR0J7QlNCY0KDQntCT0JAg0IjQntCS0JDQnQor0JHQntCU0JjQoNCe0JPQkCDQnNCQ0KDQmNCI0JAKK9CR0J7QlNCY0KDQntCT0JAg0J3QmNCa0J4KK9CR0J7QlNCY0KDQntCT0JAg0J/QoNCV0JTQoNCQ0JMKK9CR0J7QlNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JTQndCQ0KAg0KjQkNCd0JTQntCgCivQkdCe0JTQndCQ0KAg0KDQmNCh0KLQkAor0JHQntCU0J3QkNCgINCh0KLQldCS0JDQnQor0JHQntCU0J3QkNCgINCS0JXQoNCY0KbQkAor0JHQntCU0J4g0JjQqNCi0JLQkNCdCivQkdCe0JTQniDQmtCQ0KDQntCJCivQkdCe0JTQniDQnNCQ0KDQmNCI0JAKK9CR0J7QlNCeINCc0JDQoNCY0IjQkAor0JHQntCU0J4g0JzQkNCi0JjQiNCQCivQkdCe0JTQniDQodCi0JXQktCQ0J0KK9CR0J7QlNCe0KfQmCDQiNCe0JbQldCkCivQkdCe0JTQntCb0J4g0KjQkNCd0JTQntCgCivQkdCe0JTQntCb0J4g0JjQqNCi0JLQkNCdCivQkdCe0JTQntCK0Jgg0JrQkNCg0JvQngor0JHQntCU0J7QoCDQkNCd0KLQntCdCivQkdCe0JTQntCgINCQ0J3QotCj0J0KK9CR0J7QlNCe0KAg0JHQntCh0JjQidCa0JAKK9CR0J7QlNCe0KAg0KTQoNCQ0IrQkAor0JHQntCU0J7QoCDQpNCg0JDQitCQCivQkdCe0JTQntCgINCY0KjQotCS0JDQnQor0JHQntCU0J7QoCDQiNCQ0J3QntCoCivQkdCe0JTQntCgINCI0J7QodCY0J8KK9CR0J7QlNCe0KAg0J/QldCi0JDQoAor0JHQntCU0J7QoCDQodCY0J3QmNCo0JAKK9CR0J7QlNCg0JUg0JjQqNCi0JLQkNCdCivQkdCe0JTQoNCY0Kct0KXQldCg0IvQkNCdINCQ0KDQkNCd0JrQkAor0JHQntCU0KDQmNCnINCc0JjQpdCQ0IjQm9CeCivQkdCe0JTQoNCY0Kcg0KHQotCV0JLQkNCdCivQkdCe0JTQoNCY0Kcg0JLQldCh0J3QkAor0JHQntCU0KDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCe0JTQoNCe0JbQkCDQkdCg0JDQndCa0J4KK9CR0J7QlNCg0J7QltCQINCe0JvQk9CQCivQkdCe0JTQoNCe0JbQmNCLINCY0JvQmNCI0JAKK9CR0J7QlNCg0J7QltCY0Isg0JjQm9CY0IjQkAor0JHQntCU0KDQntCW0JjQiyDQiNCe0JLQkNCdCivQkdCe0JTQoNCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QlNCg0J7QltCY0Isg0KHQotCV0JLQkNCdCivQkdCe0JTQo9Cb0JjQiyDQqNCi0JXQpNCQ0J3QmNCI0JAKK9CR0J7QlNCj0JvQmNCLINCI0JXQm9CV0J3QkAor0JHQntCU0KPQm9CY0Isg0J/QldCi0JDQoAor0JHQntCU0KPQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCU0KPQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCU0JLQkNCYINCI0JDQndCa0J4KK9CR0J7Qk9CQ0KDQntCo0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JDQoNCe0KjQmtCYINCQ0J3QlNCg0JjQiNCQCivQkdCe0JPQkNCi0JjQndCe0KHQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7Qk9CQ0JLQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9CR0J7Qk9CQ0JLQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JDQktCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CR0J7Qk9CQ0JLQkNCmINCI0JDQlNCg0JDQndCa0JAKK9CR0J7Qk9CQ0JLQkNCmINCc0JjQoNCI0JDQndCQCivQkdCe0JPQlNCQ0J0g0JDQndCU0KDQkNCoCivQkdCe0JPQlNCQ0J0g0JHQmNCJ0JDQndCQCivQkdCe0JPQlNCQ0J0g0JTQo9Co0JDQnQor0JHQntCT0JTQkNCdINCY0KjQotCS0JDQnQor0JHQntCT0JTQkNCdINCY0JzQoNCVCivQkdCe0JPQlNCQ0J0g0JjQktCQ0J0KK9CR0J7Qk9CU0JDQnSDQiNCe0KHQmNCfCivQkdCe0JPQlNCQ0J0g0IjQntCh0JjQnwor0JHQntCT0JTQkNCdINCc0JDQndCVCivQkdCe0JPQlNCQ0J0t0JzQmNCI0JjQnSDQlNCj0KjQkNCd0JrQkAor0JHQntCT0JTQkNCdINCc0JjQm9Ca0JAKK9CR0J7Qk9CU0JDQnSDQndCY0JrQntCb0JAKK9CR0J7Qk9CU0JDQnSDQodCi0JXQktCQ0J0KK9CR0J7Qk9CU0JDQnSDQodCi0JXQktCQCivQkdCe0JPQlNCQ0J0g0JLQldCg0JjQptCQCivQkdCe0JPQlNCQ0J0g0JfQntCg0JDQnQor0JHQntCT0JTQkNCd0KTQmCDQqNCQ0J3QlNCe0KAg0J3QntCS0JjQndCQ0KAKK9CR0J7Qk9CU0JDQndCk0Jgg0JzQkNCg0JjQndCa0J4KK9CR0J7Qk9CU0JDQndCe0JIt0JDQndCi0J7QndCY0Isg0JHQmNCJ0JDQndCQCivQkdCe0JPQlNCQ0J3QntCSINCR0JjQodCV0KDQmtCQCivQkdCe0JPQlNCQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgINCf0KDQntCkCivQkdCe0JPQlNCQ0J3QntCSINCR0KDQkNCd0JrQkCDQlNCgINCb0JXQmtCQ0KAKK9CR0J7Qk9CU0JDQndCe0JIg0JTQkNCd0JjQm9CeCivQkdCe0JPQlNCQ0J3QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JTQkNCd0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0J7Qk9CU0JDQndCe0JIg0JTQo9Co0JDQnQor0JHQntCT0JTQkNCd0J7Qki3QpdCY0Jsg0JTQntCR0KDQmNCb0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JjQoNCc0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JjQktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JIg0JvQkNCX0JDQoAor0JHQntCT0JTQkNCd0J7QkiDQnNCQ0KDQmNCm0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JzQmNCb0JDQnQor0JHQntCT0JTQkNCd0J7QkiDQnNCY0JvQldCd0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JzQmNCb0J7QqAor0JHQntCT0JTQkNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JHQntCT0JTQkNCd0J7QkiDQndCQ0JTQkAor0JHQntCT0JTQkNCd0J7QkiDQntCb0JPQkAor0JHQntCT0JTQkNCd0J7QkiDQn9CV0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCSINCh0JvQkNCS0JrQngor0JHQntCT0JTQkNCd0J7QkiDQodCb0JDQktCd0JAKK9CR0J7Qk9CU0JDQndCe0JIg0KHQnNCY0InQkAor0JHQntCT0JTQkNCd0J7QkiDQodCi0JDQndCa0J4KK9CR0J7Qk9CU0JDQndCe0JIg0KHQotCV0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCSINCh0KLQldCS0JDQnQor0JHQntCT0JTQkNCd0J7QkiDQl9Ce0KDQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQltCY0JLQkNCdINCc0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCC0KPQoNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JDQndCa0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0KDQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQldCi0JXQm9Ca0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCT0JXQlNCV0J7QnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0JPQntCI0JrQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCY0JvQntCd0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCY0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JzQmNCL0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCd0JDQlNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQndCe0JLQkNCaCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CQ0IjQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4g0JzQoCDQn9Cg0JDQktCd0JjQmgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAg0J/QoNCe0KTQldCh0J7QoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCe0IrQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCh0KLQldCS0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQktCQ0IjQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCS0JXQoNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JHQntCT0JTQkNCd0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0J7Qk9CU0JDQndCe0JLQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JXQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCT0JXQotCY0Isg0KHQkNCK0JAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQltCY0JLQmtCeCivQkdCe0JPQmNCn0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0JPQmNCn0JXQktCY0Isg0JPQldCe0KDQk9CY0IjQlQor0JHQntCT0JjQp9CV0JLQmNCLINCa0J7QodCi0JDQlNCY0J3QmtCQCivQkdCe0JPQmNCn0JXQktCY0Isg0JrQoNCh0KLQkAor0JHQntCT0JjQp9CV0JLQmNCLINCJ0KPQkdCY0KjQkAor0JHQntCT0JjQp9CV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JHQntCT0JjQp9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0JHQntCT0JjQp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQntCT0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCT0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCT0JjQp9CV0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQkdCe0JPQmNCn0JXQktCY0Isg0JfQntCg0JrQkAor0JHQntCT0JjQqNCY0Isg0JDQndCU0KDQmNCI0JAKK9CR0J7Qk9CY0KjQmNCLINCk0KDQkNCK0JAKK9CR0J7Qk9CY0KjQmNCLINCI0J7QodCY0J8KK9CR0J7Qk9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7Qk9CY0Isg0JDQndCC0JXQm9Ca0JAKK9CR0J7Qk9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JPQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7Qk9CY0Isg0JTQo9Co0JDQndCa0JAKK9CR0J7Qk9CY0Isg0JjQm9CU0JjQmtCeCivQkdCe0JPQmNCLINCI0JXQm9CV0J3QkAor0JHQntCT0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JHQntCT0JjQiyDQiNCe0JLQkNCdCivQkdCe0JPQmNCLINCJ0KPQkdCY0KbQkAor0JHQntCT0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0J7Qk9CY0Isg0JzQmNCb0JDQnQor0JHQntCT0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQntCT0JjQiyDQodCe0KTQmNCI0JAKK9CR0J7Qk9CY0Isg0KHQoNCV0IvQmtCeCivQkdCe0JPQmNCLINCh0KLQldCS0JDQnQor0JHQntCT0JjQi9CV0JLQmNCLINCW0JXQidCa0JAKK9CR0J7Qk9CY0IvQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQntCT0JjQi9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JjQi9CV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JjQi9CV0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCe0JPQmNCL0JXQktCY0Isg0IjQldCb0JrQkAor0JHQntCT0JjQi9CV0JLQmNCLINCI0J7Qm9CV0KLQkAor0JHQntCT0JjQi9CV0JLQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCdCivQkdCe0JPQmNCL0JXQktCY0Isg0JzQmNCb0JDQnQor0JHQntCT0J3QkNCgINCo0JDQndCU0J7QoAor0JHQntCT0J3QkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JHQntCT0J3QkNCgINCQ0J3QotCQ0JsKK9CR0J7Qk9Cd0JDQoCDQldCb0JjQl9CQ0JHQldCi0JAKK9CR0J7Qk9Cd0JDQoCDQldCb0JjQl9CQ0JHQldCi0JAKK9CR0J7Qk9Cd0JDQoCDQk9CY0JfQldCb0JAKK9CR0J7Qk9Cd0JDQoCDQiNCe0JbQldCkCivQkdCe0JPQndCQ0KAg0JrQkNCb0JzQkNCdCivQkdCe0JPQndCQ0KAg0JvQkNCI0J7QqAor0JHQntCT0J3QkNCgINCc0JDQoNCY0JAKK9CR0J7Qk9Cd0JDQoCDQnNCQ0KDQmNCI0JAKK9CR0J7Qk9Cd0JDQoCDQnNCY0KDQmtCeCivQkdCe0JPQndCQ0KAg0KDQntCX0JjQmtCQCivQkdCe0JPQndCQ0KAg0KHQmNCb0JDQoNCUCivQkdCe0JPQndCQ0KAg0KHQotCV0JLQkNCdINCU0KAKK9CR0J7Qk9Ce0IjQldCSINCW0JjQktCa0J4KK9CR0J7Qk9Ce0IjQldCS0JDQpiDQldCg0JbQldCR0JXQogor0JHQntCT0J7QiNCV0JLQkNCmINCI0J7QktCQ0J0KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQkdCe0JPQntCI0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQkdCe0JPQntCI0JXQktCY0Isg0JHQntCW0J4KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQlNCg0JDQk9CeCivQkdCe0JPQntCI0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQm9CQ0JfQngor0JHQntCT0J7QiNCV0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQkdCe0JPQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JHQntCT0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0JPQntCI0JXQktCY0Isg0JzQmNCi0JDQoAor0JHQntCT0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0JPQntCI0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQntCT0J7QiNCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQkdCe0JPQntCI0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQoNCQ0IjQmtCeCivQkdCe0JPQntCI0JXQktCY0Isg0KHQotCQ0J3QmNCI0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQotCe0JTQntCgCivQkdCe0JPQntCI0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQktCb0JDQlNCQCivQkdCe0JPQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCm0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQktCb0JDQiNCa0J4KK9CR0J7Qk9Ce0KHQkNCSINCc0JjQm9CQ0J0KK9CR0J7Qk9Ce0KHQkNCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQkdCe0JPQntCh0JDQktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JHQntCT0J7QodCQ0JLQkNCmINCX0JTQoNCQ0JLQmtCeCivQkdCe0JPQntCh0JDQktCJ0JXQkiDQiNCe0JLQkNCd0JrQkAor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCW0JDQoNCa0J4KK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoCDQmNCd0JMKK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQlQor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQl9Cb0JDQotCQCivQkdCe0JPQntCS0JDQpiDQlNCe0JHQoNCe0KHQm9CQ0JLQkAor0JHQntCT0J7QktCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCT0J7QktCQ0KYg0JzQmNCb0JDQnSDQlNCgCivQkdCe0JPQntCS0JDQpiDQndCY0JrQntCb0JAKK9CR0J7Qk9Ce0JLQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7Qk9Ce0JLQmNCLINCY0JHQntCI0JAKK9CR0J7Qk9Ce0JLQmNCLINCc0JjQiNCeCivQkdCe0JPQntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7Qk9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JHQntCT0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQntCT0J7QktCY0Isg0JLQldCh0J3QkAor0JHQntCT0J7QktCY0Isg0JLQldCh0J3QkAor0JHQntCT0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQkdCe0JPQo9Cd0J7QktCY0Isg0ILQntCg0ILQlQor0JHQntCT0KPQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCT0KPQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCT0KPQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQntCT0KPQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7Qk9Cj0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0JPQo9Cd0J7QktCY0Isg0JLQm9CQ0JTQlQor0JHQntCT0KPQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CR0J7Qk9Cj0KIg0InQo9CR0J4KK9CR0J7Qk9Cj0KIg0J3QkNCU0JAKK9CR0J7QpdCQ0KfQldCaINCS0JDQm9Ci0JXQoAor0JHQntCl0JjQndCmINCR0J7QltCQ0J3QkAor0JHQntCl0J7QptCa0Jgg0IjQkNCd0J7QqAor0JHQntCl0J7QptCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQntCl0J7QptCa0Jgg0J/QldCi0JDQoAor0JHQntCl0J7QptCa0Jgg0KDQntCR0JXQoNCiCivQkdCe0KXQntCi0JAg0KHQmNCb0JLQldCh0KLQldCgCivQkdCe0KXQo9CoINCI0J7QktCQ0J0KK9CR0J7QiNCn0JXQotCQINCT0J7QoNCQ0J0KK9CR0J7QiNCn0JXQktCh0JrQmCDQndCQ0KPQnAor0JHQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9CR0J7QiNCQINCQ0J3QlNCg0JDQqAor0JHQntCI0JAg0JXQoNCY0JrQkAor0JHQntCI0JDQpiDQlNCQ0KTQmNCd0JAKK9CR0J7QiNCQ0KYg0KDQkNCU0JjQktCe0IgKK9CR0J7QiNCQ0JTQmNCLINCc0JjQoNCa0J4KK9CR0J7QiNCQ0JPQmNCLINCc0JDQoNCa0J4KK9CR0J7QiNCQ0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0IjQkNCd0JjQiyDQkNCd0JAKK9CR0J7QiNCQ0J3QmNCLINCR0J7Qk9Ce0KHQkNCSCivQkdCe0IjQkNCd0JjQiyDQkdCe0KDQmNCa0JAKK9CR0J7QiNCQ0J3QmNCLINCR0J7QodCY0InQmtCQCivQkdCe0IjQkNCd0JjQiyDQkdCg0JDQndCVCivQkdCe0IjQkNCd0JjQiyDQkdCj0JTQmNCc0JjQoAor0JHQntCI0JDQndCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0J7QiNCQ0J3QmNCLINCU0JXQodCQ0J3QmtCQCivQkdCe0IjQkNCd0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQntCI0JDQndCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCI0JDQndCY0Isg0JTQo9Co0JDQnQor0JHQntCI0JDQndCY0Isg0JTQo9Co0JDQnQor0JHQntCI0JDQndCY0Isg0JjQm9CY0IjQkAor0JHQntCI0JDQndCY0Isg0IjQldCb0JjQptCQCivQkdCe0IjQkNCd0JjQiyDQidCj0JHQngor0JHQntCI0JDQndCY0Isg0JzQmNCb0JDQnQor0JHQntCI0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0J7QiNCQ0J3QmNCLINCc0JjQm9CY0JLQntCICivQkdCe0IjQkNCd0JjQiyDQnNCY0JvQntCoCivQkdCe0IjQkNCd0JjQiyDQnNCY0JvQo9CdCivQkdCe0IjQkNCd0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQntCI0JDQndCY0Isg0KDQkNCd0JrQngor0JHQntCI0JDQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCI0JDQndCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQntCI0JDQndCY0Isg0JLQldCb0JjQnNCY0KAKK9CR0J7QiNCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CR0J7QiNCQ0J3QmNCLINCX0J7QoNCQCivQkdCe0IjQkNCd0J7QktCY0Isg0KfQldCU0J4KK9CR0J7QiNCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQkdCe0IjQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JHQntCI0JDQndCe0JLQmNCLINCc0JDQoNCI0JDQnQor0JHQntCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0IjQkNCd0J7QktCY0Isg0KDQmNCh0KLQkNCdCivQkdCe0IjQkNCd0J7QktCY0Isg0JLQo9CI0JDQlNCY0J0KK9CR0J7QiNCQ0J3QntCS0JjQiyDQktCj0IjQkNCU0JjQnQor0JHQntCI0JDQoiDQiNCQ0J3QmtCeCivQkdCe0IjQkNCiINCc0JjQm9Ce0KDQkNCUCivQkdCe0IjQkNCiINCg0JDQlNCe0JzQmNCgCivQkdCe0IjQkNCiINCS0JXQodCV0JvQmNCdINCU0KAKK9CR0J7QiNCR0JjQiyDQoNCQ0IjQmtCeCivQkdCe0IjQmNCn0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQntCI0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQkdCe0IjQmNCLINCR0JvQkNCT0J7QotCQCivQkdCe0IjQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCI0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQntCI0JjQiyDQkdCe0JPQntCc0JjQoAor0JHQntCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkdCe0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCe0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0IjQmNCLINCU0JDQndCY0KbQkAor0JHQntCI0JjQiyDQlNCV0IjQkNCdCivQkdCe0IjQmNCLINCU0KDQkNCT0JDQnQor0JHQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0J7QiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CR0J7QiNCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0J7QiNCY0Isg0JTQo9Co0JDQnQor0JHQntCI0JjQiyDQlNCj0KjQkNCdCivQkdCe0IjQmNCLINCT0J7QoNCU0JDQndCQINCU0KAKK9CR0J7QiNCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0J7QiNCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0J7QiNCY0Isg0JrQkNCi0JjQptCQCivQkdCe0IjQmNCLLdCa0J7Qm9CQ0KDQodCa0Jgg0JPQntCg0JTQkNCd0JAKK9CR0J7QiNCY0Isg0JvQkNCX0JDQoAor0JHQntCI0JjQiyDQnNCQ0KDQmtCeCivQkdCe0IjQmNCLINCc0JjQqNCa0J4KK9CR0J7QiNCY0Isg0JzQmNCb0JAKK9CR0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9CR0J7QiNCY0Isg0JzQmNCb0JjQlNCQ0KAKK9CR0J7QiNCY0Isg0JzQmNCb0J7QktCQ0J0KK9CR0J7QiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0J7QiNCY0Isg0JzQmNCg0JrQngor0JHQntCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCe0IjQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0JHQntCI0JjQiyDQoNCQ0IjQmtCeCivQkdCe0IjQmNCLINCg0JDQiNCa0J4KK9CR0J7QiNCY0Isg0KHQldCd0JrQkAor0JHQntCI0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQntCI0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQntCI0JjQiyDQodCe0IrQmNCm0JAKK9CR0J7QiNCY0Isg0KHQoNCV0KLQldCdCivQkdCe0IjQmNCLINCh0KLQldCS0JDQnQor0JHQntCI0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0IjQmNCLINCj0JPQidCV0KjQkAor0JHQntCI0JjQiyDQktCV0KDQkAor0JHQntCI0JjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JHQntCI0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0IjQmtCY0Isg0JzQmNCb0JjQptCQCivQkdCe0IjQmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0IjQmtCeINCI0J7QktCQ0J3QmtCQCivQkdCe0IjQmtCeINCc0JDQoNCY0IjQkAor0JHQntCI0JrQniDQndCV0JLQldCd0JrQkAor0JHQntCI0JrQntCSINCk0JXQntCU0J7QoAor0JHQntCI0JrQntCSINCg0J7QnNCQ0J0KK9CR0J7QiNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQkdCe0IjQmtCe0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CR0J7QiNCa0J7QktCY0Isg0JvQldCd0JAKK9CR0J7QiNCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkdCe0IjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QiNCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQkdCe0IjQntCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0IjQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0J7QiNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCI0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0IjQntCS0JjQiyDQlNCg0JDQk9Ce0IjQlQor0JHQntCI0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCe0IjQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCe0IjQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCe0IjQntCS0JjQiyDQmNCa0J7QndCY0IjQkAor0JHQntCI0J7QktCY0Isg0IjQkNCa0J7Qkgor0JHQntCI0J7QktCY0Isg0InQo9CR0JjQptCQCivQkdCe0IjQntCS0JjQiyDQidCj0JHQngor0JHQntCI0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQntCI0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQntCI0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkdCe0IjQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QiNCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0JHQntCI0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQntCI0J7QktCY0Isg0J3QkNCU0JAKK9CR0J7QiNCe0JLQmNCLINCd0J7QktCY0KbQkAor0JHQntCI0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCI0J7QktCY0Isg0KHQoNCV0KLQmtCeCivQkdCe0IjQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0IjQntCS0JjQiyDQktCV0JvQmNCo0JAKK9CR0J7QiNCe0JLQmNCLINCS0JXQidCa0J4KK9CR0J7QiNCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JHQntCI0J7QktCY0Isg0JLQntCI0JjQnQor0JHQntCI0J7QktCY0Isg0JfQntCg0JDQnQor0JHQntCa0KjQkNCdINCQ0J3QmtCQCivQkdCe0JrQqNCQ0J0g0JXQnNCY0JvQmNCI0JDQnQor0JHQntCa0KjQkNCdINCh0KLQntCI0JDQnQor0JHQntCa0KjQmNCLINCC0J7QmtCQCivQkdCe0JrQqNCY0Isg0IjQldCb0JXQndCQCivQkdCe0JrQqNCY0Isg0JvQkNCX0JDQoAor0JHQntCa0KjQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0JrQqNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7QmtCo0JjQiyDQoNCQ0JTQkAor0JHQntCa0KjQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCe0JrQqNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQntCa0KjQmNCLINCg0KPQltCV0J3QmtCQCivQkdCe0JrQqNCY0Isg0KHQntCa0JAKK9CR0J7QmtCQINCW0JjQktCa0JAKK9CR0J7QmtCQINCh0JjQm9CS0JjQngor0JHQntCa0JAg0KHQotCI0JXQn9CQ0J0KK9CR0J7QmtCQ0J0g0JDQndCC0JAKK9CR0J7QmtCQ0J0g0JDQndCY0KbQkAor0JHQntCa0JDQnSDQlNCg0JDQk9CeCivQkdCe0JrQkNCdINCc0JjQm9CQ0J0KK9CR0J7QmtCQ0J0g0JzQmNCb0JDQnQor0JHQntCa0JDQnSDQnNCY0JvQldCd0JAKK9CR0J7QmtCQ0J0g0JzQmNCg0JrQngor0JHQntCa0JDQnSDQndCY0JrQntCb0JAKK9CR0J7QmtCQ0J0g0KDQkNCU0JUKK9CR0J7QmtCQ0J0g0KDQkNCU0J7QnNCY0KAKK9CR0J7QmtCQ0J0g0KHQm9Ce0JHQntCU0JDQnQor0JHQntCa0JDQnSDQotCe0JzQmNCh0JvQkNCSCivQkdCe0JrQkNCdINCS0JXQidCa0J4KK9CR0J7QmtCQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCa0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCa0JjQiyDQlNCQ0J3QmNCb0J4KK9CR0J7QmtCY0Isg0JTQo9Co0JDQnQor0JHQntCa0JjQiyDQnNCY0JvQkNCdCivQkdCe0JrQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9CR0J7QmtCY0Isg0JLQmNCUCivQkdCe0JrQntCgINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQkdCe0JrQntCgINCC0J7QoNCC0JUKK9CR0J7QmtCe0KAg0JPQkNCS0KDQkAor0JHQntCa0J7QoCDQm9CQ0KHQm9CeINCU0JjQn9CbINCY0J3Qkwor0JHQntCa0J7QoCDQm9CQ0KHQm9CeCivQkdCe0JrQntCgINCc0JDQoNCY0IjQkAor0JHQntCa0J7QoNCe0JIg0KLQkNCd0JDQodCY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QmtCj0J0g0JTQo9CR0KDQkNCS0JrQkAor0JHQntCa0KPQnSDQndCe0JLQkNCaCivQkdCe0JrQo9CdINCf0JXQotCQ0KAKK9CR0J7QmtCj0J0g0KHQn9CQ0KHQmNCI0JAKK9CR0J7QmtCj0J0g0KHQotCV0JLQkAor0JHQntCa0KPQnSDQktCb0JDQlNCY0JzQmNCgCivQkdCe0JvQkNCd0J7QktCY0Isg0KDQkNCI0JrQkAor0JHQntCb0JTQmNCW0JDQoCDQiNCe0JbQldCkCivQkdCe0JvQlNCY0JbQkNCgINCb0JDQodCb0J4KK9CR0J7Qm9CU0JjQnSDQoNCj0JTQntCb0KQKK9CR0J7Qm9CU0J7QptCa0Jgg0IjQntCW0JXQpAor0JHQntCb0JTQntCm0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCe0JvQlNCe0JMg0JvQkNCI0J7QqAor0JHQntCb0JXQoNCQ0KYg0JDQndCQCivQkdCe0JvQldCh0J3QmNCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qm9CV0KHQndCY0JrQntCSINCU0JDQoNCY0J3QmtCQCivQkdCe0JvQldCh0J3QmNCa0J7QkiDQnNCY0JvQntCg0JDQlAor0JHQntCb0JXQodCd0JjQmtCe0JIg0JfQntCg0JDQnQor0JHQntCb0KQg0JHQoNCQ0J3QmtCeCivQkdCe0JvQpCDQndCV0JLQldCd0JrQkAor0JHQntCb0KTQmNCaINCI0J7QodCY0J8KK9CR0J7Qm9CY0Isg0JfQm9CQ0KLQmtCeCivQkdCe0JvQmNCd0J7QktCh0JrQkCDQodCe0KTQmNCI0JAKK9CR0J7Qm9CY0J3QntCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7QidCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQkdCe0InQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QidCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCe0InQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0InQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0J7QidCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0J7QidCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0J7Qm9Cc0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQkdCe0JvQnNCQ0J3QkNCmINCV0JLQk9CV0J3QmNCI0JUKK9CR0J7Qm9CeINCW0J7Qm9CiCivQkdCe0JvQntCaINCQ0J3QlNCg0JDQqAor0JHQntCb0J7QmiDQiNCe0JbQldCkCivQkdCe0JvQntCaINCa0JDQoNCb0J4KK9CR0J7Qm9Ce0Jog0JrQkNCg0J7QiQor0JHQntCb0J7QmiDQn9CQ0JsKK9CR0J7Qm9Ce0KDQmNCdINCg0JDQlNCY0JLQntCICivQkdCe0JvQotCQINCW0JXQidCa0J4KK9CR0J7Qm9Ci0JAg0ILQo9Cg0JAKK9CR0J7Qm9Ci0JAg0JHQoNCQ0J3QmtCeCivQkdCe0JvQotCQINCU0KDQkNCT0JjQptCQCivQkdCe0JzQldCo0KLQkNCgINCg0JDQlNCQCivQkdCe0J3QkCDQodCi0JXQktCQ0J0KK9CR0J7QndCP0JjQiyDQlNCV0IjQkNCdCivQkdCe0J3QlNCQ0KDQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQkdCe0J3QlNCe0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0J7QndCU0J7QmtCY0Isg0InQo9CR0JjQptCQCivQkdCe0J3QldCg0KIg0JTQo9Co0JDQnSDQlNCgCivQkdCe0J3QldCg0KIg0JTQo9Co0JDQnQor0JHQntCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QndCY0Isg0JzQkNCg0IjQkNCdCivQkdCe0J3QmNCLINCc0JjQm9CY0KbQkAor0JHQntCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0J3Qo9ChINCJ0KPQkdCY0KbQkAor0JHQntCgINCV0J3QlNCg0JUKK9CR0J7QoNCn0JDQndCY0J0g0InQo9CR0JjQptCQCivQkdCe0KDQp9CQ0J3QmNCdINCh0J7QpNCY0IjQkAor0JHQntCg0KfQkNCd0KHQmtCYINCi0JjQndCa0JAKK9CR0J7QoNCn0JjQiyDQkdCj0JTQlQor0JHQntCg0KfQmNCLINCU0KDQkNCT0JDQndCQCivQkdCe0KDQp9CY0Isg0IjQntCS0JDQnQor0JHQntCg0KjQmCDQotCY0JLQkNCU0JDQoCDQlNCY0J/QmyDQntCV0KYKK9CR0J7QoNCo0J7QqCDQkNCi0JjQm9CQCivQkdCe0KDQqNCe0Kgg0JHQkNCg0JHQkNCg0JAKK9CR0J7QoNCo0J7QqCDQmNCo0KLQktCQ0J0KK9CR0J7QoNCo0J7QqCDQmNCo0KLQktCQ0J0KK9CR0J7QoNCo0J7QqCDQmNCc0KDQlQor0JHQntCg0KjQotCd0JDQoCDQpdCV0J3QoNCY0JoKK9CR0J7QoNCo0KLQndCV0KAg0J3QkNCU0JAKK9CR0J7QoNCC0JjQnSDQm9CQ0JfQkNCgCivQkdCe0KDQgtCe0KjQmtCYINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQkdCe0KDQgtCe0KjQmtCYINCR0J7QqNCa0J4KK9CR0J7QoNCC0J7QqNCa0Jgg0JzQmNCb0JjQptCQCivQkdCe0KDQgtCe0KjQmtCYINCi0JDQnNCQ0KDQkAor0JHQntCg0ILQntCo0JrQmCDQktCe0IjQmNCdCivQkdCe0KDQkNCoINCY0KDQldCd0JAKK9CR0J7QoNCQ0KEg0JHQntCg0JjQodCb0JDQkgor0JHQntCg0JDQoSDQnNCQ0KDQmNCI0JAKK9CR0J7QoNCQ0KEg0JzQmNCb0JjQptCQCivQkdCe0KDQkdCQ0Kgg0JrQkNCg0J7QiQor0JHQntCg0JHQkNCoINCS0JjQntCb0JXQotCQCivQkdCe0KDQkdCQ0Kgg0JfQntCb0KLQkNCdCivQkdCe0KDQkdCV0Ikg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QoNCR0JXQiSDQiNCQ0J3QntCoCivQkdCe0KDQkdCV0Ikg0IjQntCh0JjQnwor0JHQntCg0JHQldCJINCJ0KPQkdCY0KbQkAor0JHQntCg0JHQldCJINCc0JDQoNCY0IjQkAor0JHQntCg0JHQldCJINCd0JXQktCV0J3QmtCQCivQkdCe0KDQlNCQ0Kgg0ILQldCX0JUKK9CR0J7QoNCU0JDQqCDQkNCa0J7QqAor0JHQntCg0JTQkNCoINCR0JXQm9CQCivQkdCe0KDQlNCQ0Kgg0KTQldCg0JXQndCmCivQkdCe0KDQlNCQ0Kgg0KTQoNCQ0IrQkAor0JHQntCg0JTQkNCoINCl0JjQm9CU0JAKK9CR0J7QoNCV0J3QntCS0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQkdCe0KDQldCd0J7QktCY0Isg0JzQmNCb0JUKK9CR0J7QoNCV0J3QntCS0JjQiyDQktCV0KDQkAor0JHQntCg0Jgg0JjQnNCg0JUg0JTQoAor0JHQntCg0Jgg0JzQkNCg0JjQiNCQCivQkdCe0KDQmNCn0JjQiyDQm9CQ0JfQkNCgCivQkdCe0KDQmNCn0JjQiyDQndCe0JLQkNCaCivQkdCe0KDQmNCn0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQkdCe0KDQmNCn0JjQiyDQoNCQ0JTQo9Cb0JUKK9CR0J7QoNCY0KjQldCSINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QoNCY0KjQldCSINCJ0JjQidCQ0J3QkAor0JHQntCg0JjQqNCV0JIg0JzQmNCb0JXQndCa0J4KK9CR0J7QoNCY0KjQldCSINCd0JjQmtCe0JvQkAor0JHQntCg0JjQqNCV0JIg0KDQo9CW0JjQptCQCivQkdCe0KDQmNCo0JXQkiDQodCQ0JLQkAor0JHQntCg0JjQqNCV0JIg0KLQldCe0JTQntCgCivQkdCe0KDQmNCo0JXQkiDQktCQ0KHQkAor0JHQntCg0JjQqNCY0Isg0JzQkNCg0JjQiNCQCivQkdCe0KDQmNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQkdCe0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KDQmNCLINCU0KPQqNCQ0J0KK9CR0J7QoNCY0Isg0JrQkNCc0JXQndCa0J4KK9CR0J7QoNCY0Isg0JrQkNCi0JjQptCQCivQkdCe0KDQmNCLINCc0JjQm9CQ0J0KK9CR0J7QoNCY0Isg0JzQmNCb0JrQkAor0JHQntCg0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QoNCY0Isg0J/QldCi0JDQoAor0JHQntCg0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7QoNCY0Isg0JfQntCg0JDQnQor0JHQntCg0JjQiyDQl9Ce0KDQkNCdCivQkdCe0KDQmNChINCI0J7QodCY0J8KK9CR0J7QoNCY0JLQntCI0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CR0J7QoNCI0JDQndCY0J0g0KHQm9CQ0JLQmtCeCivQkdCe0KDQiNCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCg0IjQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JHQntCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0KDQmtCeINCh0KLQkNCd0JjQodCb0JDQkgor0JHQntCg0JrQntCS0JDQp9Ca0Jgg0JfQntCg0JDQnQor0JHQntCg0JrQntCS0JDQpiDQmtCQ0KLQkNCg0JjQndCQCivQkdCe0KDQmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQkdCe0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7QoNCJ0JAg0KHQotCV0JLQkNCdCivQkdCe0KDQntCoINCo0JDQndCU0J7QoAor0JHQntCg0J7QqCDQqNCQ0J3QlNCe0KAKK9CR0J7QoNCe0Kgg0ILQldCg0IIKK9CR0J7QoNCe0Kgt0ILQldCS0Jgg0JbQldCJ0JrQngor0JHQntCg0J7QqCDQgtCe0KDQgtCVCivQkdCe0KDQntCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KDQntCoINCQ0J3QlNCg0JjQiNCQCivQkdCe0KDQntCoINCQ0J3QotCj0J0KK9CR0J7QoNCe0Kgg0JXQoNCd0JUKK9CR0J7QoNCe0Kgg0JXQktCQCivQkdCe0KDQntCoINCY0KjQotCS0JDQnQor0JHQntCg0J7QqCDQiNCe0JbQldCkCivQkdCe0KDQntCoINCI0J7Qm9CQ0J0KK9CR0J7QoNCe0Kgg0IjQo9Cb0JjQiNCQCivQkdCe0KDQntCoINCb0JDQlNCY0KHQm9CQ0JIKK9CR0J7QoNCe0Kgg0JvQkNCI0J7QqAor0JHQntCg0J7QqCDQnNCQ0KDQk9CY0KLQkAor0JHQntCg0J7QqCDQnNCY0KXQkNCI0JvQngor0JHQntCg0J7QqCDQnNCY0KXQkNCI0JvQngor0JHQntCg0J7QqCDQnNCY0JrQm9Ce0KgKK9CR0J7QoNCe0Kgg0JLQldCg0JAKK9CR0J7QoNCe0KjQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JHQntCg0J7QptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QoNCe0KbQmtCYINCU0JDQndCY0KbQkAor0JHQntCg0J7QptCa0Jgg0InQo9CR0JjQndCa0JAKK9CR0J7QoNCe0IjQkCDQidCj0JHQkNCdCivQkdCe0KDQntCI0JAg0KDQo9CW0JjQptCQCivQkdCe0KDQntCI0JXQkiDQkNCg0KHQldCdINCU0KAg0JvQldCa0JDQoAor0JHQntCg0J7QiNCV0JIg0JXQnNCY0JvQmNCI0JDQnSDQlNCgCivQkdCe0KDQntCI0JXQkiDQiNCQ0JPQntCU0JAKK9CR0J7QoNCe0IjQldCSINCJ0KPQkdCe0JzQmNCgCivQkdCe0KDQntCI0JXQkiDQoNCQ0JTQnNCY0JvQkAor0JHQntCg0J7QiNCV0JLQmNCLINCQ0J3QkAor0JHQntCg0J7QiNCV0JLQmNCLINCR0J7QqNCa0J4KK9CR0J7QoNCe0IjQldCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0KDQntCI0JXQktCY0Isg0JHQntCo0JrQngor0JHQntCg0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCg0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQntCg0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CR0J7QoNCe0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0KDQntCI0JXQktCY0Isg0JrQoNCh0KLQkAor0JHQntCg0J7QiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JHQntCg0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7QoNCe0IjQldCS0JjQiyDQn9CQ0JLQm9CVCivQkdCe0KDQntCI0JXQktCY0Isg0J/QldCi0KDQkAor0JHQntCg0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQniDQn9Cg0J7QpAor0JHQntCg0J7QnNCY0KHQkCDQlNCg0JDQk9CY0KbQkAor0JHQntCg0J7QnNCY0KHQkCDQiNCV0JvQldCd0JAKK9CR0J7QoNCe0IrQkNCmINCU0KDQkNCT0JDQnQor0JHQntCg0J7QitCQ0KYg0JzQmNCb0JjQptCQCivQkdCe0KDQntCK0JDQpiDQntCb0JPQkAor0JHQntCg0J7QitCQ0KYg0JLQldCg0JAKK9CR0J7QoNCe0KLQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCg0J7QotCQINCI0J7QktCQ0J3QmtCQCivQkdCe0KDQntCi0JAg0JzQmNCb0JDQnQor0JHQntCg0J7QotCQINCc0JjQm9Ce0KDQkNCUCivQkdCe0KDQntCi0JAg0JzQmNCg0JAKK9CR0J7QoNCe0KLQkCDQoNCQ0JTQntCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0JHQntCg0J7QktCn0JDQndCY0J0g0InQo9CR0J7QnNCY0KAKK9CR0J7QoNCe0JLQp9CQ0J3QmNCdINCc0JjQm9CY0KHQkNCSCivQkdCe0KDQntCS0KfQkNCd0JjQnSDQndCV0JTQldCJ0JrQngor0JHQntCg0J7QktCn0JDQndCY0J0g0KDQkNCU0J7QnNCY0KAKK9CR0J7QoNCe0JLQp9CQ0J3QmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QoNCe0JLQkNCmINCQ0KDQodCeCivQkdCe0KDQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QoNCe0JLQkNCmINCa0JDQotCY0KbQkAor0JHQntCg0J7QktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CR0J7QoNCe0JLQmNCn0JDQndCY0J0g0JzQmNCb0J7QoNCQ0JQKK9CR0J7QoNCe0JLQmNCLINCQ0KLQmNCb0JAKK9CR0J7QoNCe0JLQmNCLINCI0J7QodCY0J8KK9CR0J7QoNCe0JLQmNCLINCI0J7QktCQ0J0KK9CR0J7QoNCe0JLQmNCLINCa0J7QodCi0JAKK9CR0J7QoNCe0JLQmNCLINCc0JXQndCQCivQkdCe0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0KDQntCS0JjQiyDQoNCj0JTQntCb0KQKK9CR0J7QoNCe0JLQmNCLINCS0JvQkNCU0JUKK9CR0J7QoNCe0JLQmNCL0JDQndCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JHQntCg0J7QktCY0KbQkCDQkdCe0IjQmtCQCivQkdCe0KDQntCS0JjQptCQINCY0JLQkNCdCivQkdCe0KDQntCS0JjQptCQINCY0JLQkNCdCivQkdCe0KDQntCS0JjQptCQINCI0JXQm9CV0J3QkAor0JHQntCg0J7QktCY0KbQkCDQnNCY0J7QlNCg0JDQkwor0JHQntCg0J7QktCd0JjQptCQINCR0KDQkNCd0JrQngor0JHQntCg0J7QktCd0JjQptCQINCc0JDQoNCa0J4KK9CR0J7QoNCe0JLQndCY0KbQkCDQnNCY0JvQkNCdCivQkdCe0KDQntCS0J3QmNCm0JAg0JzQmNCb0JXQktCQCivQkdCe0KDQntCX0JDQnSDQnNCY0JvQntCg0JDQlAor0JHQntCg0KPQqCDQmNCo0KLQktCQ0J0KK9CR0J7QoNCj0Kgg0JjQoNCV0J3QkAor0JHQntCg0JfQkNCo0JrQmCDQkdCg0JDQotCY0KHQm9CQ0JLQkAor0JHQntCg0JfQkNCo0JrQmCDQoNCQ0JTQntCc0JjQoAor0JHQntCg0JfQkNCo0JrQmCDQodCi0JXQktCQ0J0KK9CR0J7QodCQ0Jog0JjQoNCV0J3QkAor0JHQntCh0JDQmtCe0JIg0JTQoNCQ0JPQkNCdCivQkdCe0KHQkNCd0KfQmNCLINCR0J7QqNCa0J4KK9CR0J7QodCQ0J3Qp9CY0Isg0JHQntCT0JTQkNCdCivQkdCe0KHQkNCd0KfQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCh0JDQndCn0JjQiyDQiNCV0JvQmNCm0JAKK9CR0J7QodCQ0J3Qp9CY0Isg0JzQkNCd0J7QiNCb0J4KK9CR0J7QodCQ0J3Qp9CY0Isg0JzQmNCb0JXQktCQCivQkdCe0KHQkNCd0KfQmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0KHQkNCd0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0KHQkNCd0KfQmNCLINCg0JDQiNCa0J4KK9CR0J7QodCQ0J3Qp9CY0Isg0KLQoNCY0JLQkAor0JHQntCh0JDQndCn0JjQiyDQktCQ0KHQngor0JHQntCh0JDQndCn0JjQiyDQktCb0JDQlNCeCivQkdCe0KHQkNCd0KfQmNCLINCS0KPQiNCeCivQkdCe0KHQkNCd0JDQpiDQiNCe0JLQkNCdCivQkdCe0KHQkNCd0JDQpiDQidCj0JHQmNCm0JAKK9CR0J7QodCQ0J3QkNCmINCc0JDQoNCY0IjQkAor0JHQntCh0JDQndCQ0KYg0J3QmNCa0J7Qm9CQCivQkdCe0KHQkNCd0JDQpiDQktCV0KDQkAor0JHQntCh0JjQiyDQkdCe0JbQkNCd0JAKK9CR0J7QodCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0KHQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JHQntCh0JjQiyDQiNCe0JLQkNCdCivQkdCe0KHQmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0KHQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0KHQmNCLINCh0JvQkNCS0JrQkAor0JHQntCh0JjQidCa0JjQiyDQm9CQ0JfQkNCgCivQkdCe0KHQmNCJ0JrQmNCLINCb0KPQmtCQCivQkdCe0KHQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QodCY0J7QmiDQlNCe0KDQowor0JHQntCh0J3QkNCYLdCR0JDQkdCQINCb0KPQptCY0IjQkAor0JHQntCh0J3QkNCYINCI0JDQndCe0KgKK9CR0J7QodCd0JjQiyDQp9CV0JTQntCc0JjQoAor0JHQntCh0J3QmNCLINCC0KPQoNCC0JjQndCa0JAKK9CR0J7QodCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCh0J3QmNCLINCR0J7QltCY0JTQkNCgCivQkdCe0KHQndCY0Isg0JHQntCh0JjQidCa0JAKK9CR0J7QodCd0JjQiyDQlNCQ0JLQmNCUCivQkdCe0KHQndCY0Isg0JTQkNCS0JjQlAor0JHQntCh0J3QmNCLINCI0J7QktCQ0J0KK9CR0J7QodCd0JjQiyDQnNCQ0KDQkAor0JHQntCh0J3QmNCLINCc0JjQoNCa0J4KK9CR0J7QodCd0JjQiyDQnNCb0JDQlNCV0J0KK9CR0J7QodCd0JjQiyDQndCQ0JTQkAor0JHQntCh0J3QmNCLINCd0KPQoNCY0IjQkAor0JHQntCh0J3QmNCLINCg0JDQlNCe0KHQkAor0JHQntCh0J3QmNCLINCg0JDQiNCa0J4KK9CR0J7QodCd0JjQiyDQktCV0KDQkAor0JHQntCh0J3QmNCLINCS0JvQkNCU0JAKK9CR0J7QodCd0JjQiyDQktCb0JDQlNCQCivQkdCe0KHQndCY0Isg0JfQntCg0JDQnQor0JHQntCi0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0KLQmNCnINCe0JvQmNCS0JXQoNCQCivQkdCe0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KLQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCi0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0J7QotCY0Isg0JTQkNCg0JrQngor0JHQntCi0JjQiyDQlNCQ0KDQmtCeCivQkdCe0KLQmNCLINCT0JDQktCg0JAKK9CR0J7QotCY0Isg0JzQmNCb0JDQnQor0JHQntCi0JjQiyDQnNCY0JvQkNCdCivQkdCe0KLQmNCLINCc0JjQm9CVCivQkdCe0KLQmNCLINCc0JjQm9Ce0KDQkNCUINCQ0JTQktCe0JrQkNCiCivQkdCe0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JHQntCi0JjQiyDQntCb0JjQktCV0KDQkAor0JHQntCi0JjQiyDQn9Cg0J7QmtCQCivQkdCe0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0JHQntCi0JjQiyDQktCV0KDQmNCm0JAKK9CR0J7QotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCi0JjQiyDQl9Ce0KDQkNCd0JrQkAor0JHQntCi0JrQkCDQkNCd0KLQkNCbCivQkdCe0KLQmtCQINCU0JDQktCY0JQKK9CR0J7QotCa0JAg0JXQoNCW0JXQkdCV0KIKK9CR0J7QotCa0JAg0JLQldCg0J7QndCQCivQkdCe0KLQmtCQINCX0J7Qm9Ci0JDQnQor0JHQntCi0JvQmNCaINCT0JXQl9CQCivQkdCe0KLQm9CY0Jog0JzQkNCg0JjQiNCQCivQkdCe0KLQntCo0JrQmCDQlNCg0JDQk9Ce0JLQkNCdCivQkdCe0KLQntCo0JrQmCDQodCQ0JLQkAor0JHQntCi0J7QoNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JHQntCi0JfQkCDQmNCo0KLQktCQ0J0KK9CR0J7Ql9CV0IjQkNCmINCQ0J3QotCQ0Jsg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CR0J7Ql9CV0IjQkNCmINCU0KPQqNCQ0J0KK9CR0J7Ql9CV0IjQkNCmINCT0J7QoNCU0JDQndCQCivQkdCe0JfQldCI0JDQpiDQnNCY0JvQldCd0JrQngor0JHQntCX0JXQiNCQ0KYg0KHQnNCY0InQmtCQCivQkdCe0JfQldCI0JDQpiDQodCS0JXQotCY0KHQm9CQ0JIKK9CR0J7Ql9CV0IjQkNCmINCS0JXQoNCQCivQkdCe0JfQntCa0JjQnSDQodCi0JXQktCY0KbQkAor0JHQoNCn0JjQiyDQmNCT0IrQkNCmCivQkdCg0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0KDQp9CY0Isg0J3QldCC0J4KK9CR0KDQp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KDQp9CY0J0g0ILQntCg0ILQlQor0JHQoNCn0JjQnSDQnNCY0JvQmNCd0JrQkAor0JHQoNCn0JjQnSDQndCY0JrQntCb0JAKK9CR0KDQp9CY0J0g0KDQkNCi0J7QnNCY0KAKK9CR0KDQp9CY0J0g0KHQm9CQ0JLQmNCm0JAKK9CR0KDQp9CY0J0g0KHQktCV0KLQntCX0JDQoAor0JHQoNCn0JjQndCe0JLQmNCLINCf0JDQktCb0JUKK9CR0KDQp9Ca0JDQm9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCg0JDQp9CV0JLQmNCLINCY0JLQkNCdCivQkdCg0JDQp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCg0JDQqNCQ0J3QkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9CR0KDQkNCo0JDQndCQ0KYg0JPQkNCS0KDQmNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCg0JDQqNCQ0J3QkNCmINCY0JvQmNCI0JAKK9CR0KDQkNCo0JDQndCQ0KYg0JzQmNCg0IjQkNCd0JAKK9CR0KDQkNCo0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JHQoNCQ0KjQmtCeINCI0J7QltCV0KQKK9CR0KDQkNCo0IrQniDQk9Cj0KHQotCQ0JIKK9CR0KDQkNCo0IrQniDQmNCo0KLQktCQ0J0KK9CR0KDQkNCo0IrQniDQmNCo0KLQktCQ0J0KK9CR0KDQkNCm0JDQndCe0JLQmNCLINCU0JDQnNCI0JDQnQor0JHQoNCQ0KbQkNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0KDQkNCm0JjQiyDQnNCY0JvQkNCdCivQkdCg0JDQlNCQ0Kcg0JXQm9CY0JfQkNCR0JXQotCQCivQkdCg0JDQlNCQ0Kcg0JjQnNCg0JUKK9CR0KDQkNCU0JDQqCDQltCY0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9CR0KDQkNCU0JDQoNCY0Isg0J3QldCU0JXQidCa0J4KK9CR0KDQkNCU0JjQiyDQgtCe0KDQgtCVCivQkdCg0JDQlNCY0Isg0ILQntCg0ILQlQor0JHQoNCQ0JTQmNCLINCR0J7QltCY0JTQkNCgCivQkdCg0JDQlNCY0Isg0JHQntCT0J7QidCj0JEKK9CR0KDQkNCU0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQoNCQ0JTQmNCLINCR0KDQkNCd0JrQngor0JHQoNCQ0JTQmNCLINCV0JLQk9CV0J3QmNCI0JAKK9CR0KDQkNCU0JjQiyDQk9CQ0JLQoNCY0JvQngor0JHQoNCQ0JTQmNCLINCI0KPQodCi0JjQndCQCivQkdCg0JDQlNCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CR0KDQkNCU0JjQiyDQnNCY0JvQkNCdCivQkdCg0JDQlNCY0Isg0JzQmNCb0JjQptCQCivQkdCg0JDQlNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQoNCQ0JTQmNCLINCc0JjQidCa0J4KK9CR0KDQkNCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCg0JDQlNCY0Isg0KHQoNCV0KLQkAor0JHQoNCQ0JTQmNCLLdCi0JXQitCYINCX0J7QoNCY0KbQkAor0JHQoNCQ0JTQmNCLINCi0JXQntCU0J7QoNCQCivQkdCg0JDQlNCY0Isg0KLQntCc0JjQodCb0JDQktCQCivQkdCg0JDQlNCY0Isg0JLQmNCU0J7QiNCVCivQkdCg0JDQlNCY0Isg0JfQntCg0JjQptCQCivQkdCg0JDQlNCe0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JHQoNCQ0KXQotCbINCc0JDQoNCY0KbQkAor0JHQoNCQ0IjQlNCY0Isg0JjQktCQ0J0KK9CR0KDQkNCI0JXQoCDQpNCg0JDQitCQCivQkdCg0JDQiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQkdCg0JDQiNCY0Isg0JzQmNCb0JjQptCQCivQkdCg0JDQiNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KDQkNCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCg0JDQiNCa0J7QkiDQnNCQ0KDQmtCeCivQkdCg0JDQiNCa0J7QktCY0Isg0JjQktCeCivQkdCg0JDQiNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KDQkNCI0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQoNCQ0IjQntCS0JjQiyDQnNCY0JvQntCoCivQkdCg0JDQiNCe0JLQmNCLINCh0JvQkNCS0JrQkAor0JHQoNCQ0IjQntCS0JjQiyDQodCf0JDQodCe0IjQlQor0JHQoNCQ0IjQntCS0JjQiyDQodCi0JDQndCa0JAKK9CR0KDQkNCI0J7QktCY0Isg0JLQldCJ0JrQngor0JHQoNCQ0JrQntCn0JXQktCY0Isg0IjQntCS0JDQnQor0JHQoNCQ0JrQo9ChINCU0KPQqNCQ0J3QmtCQCivQkdCg0JDQmtCj0KEg0InQmNCJ0JDQndCQCivQkdCg0JDQmtCj0KEg0JzQkNCg0JjQiNCQCivQkdCg0JDQmtCj0KEg0JzQmNCb0JDQnQor0JHQoNCQ0JrQo9ChINCc0J7QnNCn0JjQm9CeCivQkdCg0JDQm9Ce0JLQmNCLINCg0JDQotCa0J4KK9CR0KDQkNCd0KfQmNCLINCR0J7QoNCY0KEg0JTQmNCf0Jsg0JjQndCTCivQkdCg0JDQndCn0JjQiyDQiNCQ0KHQndCQCivQkdCg0JDQndCn0JjQiyDQnNCY0JvQldCd0JAKK9CR0KDQkNCd0KfQmNCLINCc0JjQm9Cj0KjQmtCeCivQkdCg0JDQndCQINCf0JXQotCQ0KAKK9CR0KDQkNCd0JjQm9Ce0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQkdCg0JDQndCa0J7QkiDQgtCe0KDQgtCVCivQkdCg0JDQndCa0J7QkiDQgtCe0KDQgtCVCivQkdCg0JDQndCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQoNCQ0J3QmtCe0JIt0JHQntCa0JAg0KDQntCX0JDQm9CY0IjQkAor0JHQoNCQ0J3QmtCe0JIg0JHQntCg0JjQktCe0IgKK9CR0KDQkNCd0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JHQoNCQ0J3QmtCe0JIg0JTQntCR0KDQmNCm0JAKK9CR0KDQkNCd0JrQntCSINCU0KDQkNCT0JDQndCQCivQkdCg0JDQndCa0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0KDQkNCd0JrQntCSINCU0KPQqNCQ0J0KK9CR0KDQkNCd0JrQntCSINCV0JzQmNCbCivQkdCg0JDQndCa0J7QkiDQmNCb0JjQiNCQCivQkdCg0JDQndCa0J7QkiDQiNCV0JvQmNCm0JAKK9CR0KDQkNCd0JrQntCSINCI0J7QktCQ0J3QmtCQCivQkdCg0JDQndCa0J7QkiDQmtCe0KHQotCQCivQkdCg0JDQndCa0J7QkiDQmtCe0KHQotCQCivQkdCg0JDQndCa0J7QkiDQidCj0JHQmNCm0JAKK9CR0KDQkNCd0JrQntCSINCJ0KPQkdCY0KbQkAor0JHQoNCQ0J3QmtCe0JIg0InQo9CR0JjQndCa0J4KK9CR0KDQkNCd0JrQntCSINCc0JjQm9CY0KbQkAor0JHQoNCQ0J3QmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CR0KDQkNCd0JrQntCSINCc0JjQoNCa0J4KK9CR0KDQkNCd0JrQntCSINCc0JjQotCQCivQkdCg0JDQndCa0J7QkiDQnNCY0KLQkAor0JHQoNCQ0J3QmtCe0JIg0JzQm9CQ0JTQldCdCivQkdCg0JDQndCa0J7QkiDQnNCe0JzQmNCgCivQkdCg0JDQndCa0J7QkiDQndCQ0JTQkAor0JHQoNCQ0J3QmtCe0JIg0J7Qm9CY0JLQldCg0JAKK9CR0KDQkNCd0JrQntCSINCg0JDQlNCY0JLQntCICivQkdCg0JDQndCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0JHQoNCQ0J3QmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9CR0KDQkNCd0JrQntCSINCh0JLQldCi0JjQodCb0JDQkgor0JHQoNCQ0J3QmtCe0JIg0JLQldCJ0JrQngor0JHQoNCQ0J3QmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JHQoNCQ0J3QmtCe0JIg0JfQm9CQ0KLQmNCd0JrQkAor0JHQoNCQ0J3QmtCe0JLQkNCdINCC0J7QoNCC0JUKK9CR0KDQkNCd0JrQntCS0JDQnSDQktCb0JDQodCi0JjQnNCY0KAKK9CR0KDQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQoNCQ0J3QmtCe0JLQmNCLINCR0J7QiNCQCivQkdCg0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCg0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCg0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCg0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQkdCg0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQoNCQ0J3QmtCe0JLQmNCLINCY0JvQmNCI0JAKK9CR0KDQkNCd0JrQntCS0JjQiy3QmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQkdCg0JDQndCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQkdCg0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0KDQkNCd0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQkdCg0JDQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQkdCg0JDQndCa0J7QktCY0Isg0KHQkNCS0JrQkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JHQoNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CR0KDQkNCd0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQkdCg0JDQndCa0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCi0KPQk9Ce0JzQmNCgCivQkdCg0JDQndCa0J7QktCY0Isg0JfQmNCd0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQgtCe0KDQgtCVCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQkNCd0JPQldCb0JjQndCQCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQk9CQ0JLQoNCY0JvQngor0JHQoNCQ0J3QntCS0JDQp9Ca0Jgg0JjQktCQ0J3QkAor0JHQoNCQ0J3QntCS0JDQp9Ca0Jgg0InQo9CR0JjQptCQCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQntCb0JPQkAor0JHQoNCQ0J3QntCS0JDQp9Ca0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCg0JDQndCe0JLQmNCLINCR0JjQodCV0KDQmtCQCivQkdCg0JDQndCe0JLQmNCLINCg0KPQltCQCivQkdCg0JDQntCS0JjQiyDQodCQ0J3QlNCg0JAKK9CR0KDQkNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQkNCiINCU0KPQqNCQ0J0KK9CR0KDQkNCi0JjQiyDQkNCo0JjQoAor0JHQoNCQ0KLQmNCLINCU0KDQkNCT0J4KK9CR0KDQkNCi0JjQiyDQlNCj0KjQkNCdCivQkdCg0JDQotCY0Isg0JPQntCg0JDQnQor0JHQoNCQ0KLQmNCLINCJ0KPQkdCY0KbQkAor0JHQoNCQ0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCg0JDQotCY0Isg0JzQo9Cl0J4KK9CR0KDQkNCi0JjQiyDQndCV0JTQldCJ0JrQngor0JHQoNCQ0KLQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCg0JDQotCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQoNCQ0KLQntCd0J7QltCY0Isg0JzQkNCg0JPQmNCi0JAKK9CR0KDQkdCe0KDQmNCLINCb0JDQl9CQ0KAKK9CR0KDQkdCe0KDQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9CR0KDQptCQ0J3QntCSINCC0KPQoNCC0JjQndCa0JAKK9CR0KDQptCQ0J3QntCSINCe0JvQk9CQCivQkdCg0KbQkNCd0J7QkiDQodCY0JzQkAor0JHQoNCm0JDQndCe0JIg0KLQmNCl0J7QnNCY0KAKK9CR0KDQptCQ0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQkdCg0JTQkNCgINCU0JDQndCVCivQkdCg0JTQkNCgINCU0KDQkNCT0J4KK9CR0KDQlNCQ0KAg0JjQm9CY0IjQkAor0JHQoNCU0JDQoCDQmNCS0JDQndCa0JAKK9CR0KDQlNCQ0KAg0JzQmNCb0JDQnQor0JHQoNCU0JDQoCDQn9CV0KDQngor0JHQoNCU0JDQoCDQodCb0JDQktCY0KjQkAor0JHQoNCU0JDQoNCV0JLQmNCLINCU0KPQqNCa0J4KK9CR0KDQlNCQ0KDQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0KDQlNCQ0KDQmNCLINCa0J7QodCi0JAKK9CR0KDQlNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9CR0KDQlNCQ0KDQmNCLINCf0JXQotCQ0KAKK9CR0KDQldCo0IvQkNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0JHQoNCV0KjQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQkdCg0JXQqNCa0J7QktCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0JHQoNCV0JbQkNCdINCY0JvQntCd0JAKK9CR0KDQldCW0JDQnSDQm9CV0J7QndCe0KDQkAor0JHQoNCV0JbQkNCdINCc0JDQoNCY0IjQkAor0JHQoNCV0JHQldCgINCJ0KPQkdCY0KbQkAor0JHQoNCV0JHQldCg0JjQndCQINCc0JjQm9CQ0J0KK9CR0KDQldCR0JXQoNCY0J3QkCDQodCi0JXQktCQ0J0KK9CR0KDQldCT0KPQnSDQgtCe0KDQgtCVCivQkdCg0JXQk9Cj0J0g0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CR0KDQldCT0KPQnSDQndCY0JrQntCb0JAKK9CR0KDQldCT0KPQnSDQoNCQ0JTQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JHQoNCV0JrQkNCb0J4g0IjQntCh0JjQnwor0JHQoNCV0JrQmNCLINCY0JvQmNCI0JAKK9CR0KDQldCa0JjQiyDQndCY0JrQntCb0JAKK9CR0KDQldCa0JjQiyDQodCi0JXQktCQ0J0KK9CR0KDQldCd0JXQptCa0Jgg0JfQlNCg0JDQktCa0J4KK9CR0KDQldCd0JXQodCV0Jsg0JTQoNCQ0JPQkNCdCivQkdCg0JXQndCV0KHQldCbINCT0JDQkdCg0JjQldCbCivQkdCg0JXQndCV0KHQldCbINCc0JjQoNCI0JDQndCQCivQkdCg0JXQndCV0KHQldCbINCd0JjQmtCe0JvQkAor0JHQoNCV0KHQotCe0JLQkNCn0JrQmCDQmNCS0JDQnQor0JHQoNCV0KHQotCe0JLQkNCn0JrQmCDQiNCQ0KHQnNCY0J3QkAor0JHQoNCV0KHQotCe0JLQkNCn0JrQmCDQnNCY0JvQmtCQCivQkdCg0JXQodCi0J7QktCQ0KfQmtCYINCh0KLQldCS0JAKK9CR0KDQldCiINCS0JXQoNCQCivQkdCg0JXQotCo0J3QkNCI0JTQldCgINCQ0J3QkAor0JHQoNCV0JfQndCY0Jog0JXQoNCd0JUKK9CR0KDQldCX0IrQkNCaINCI0JDQndCe0KgKK9CR0KDQldCX0IrQkNCaINCc0JDQoNCY0IjQkAor0JHQoNCV0JfQntCS0KfQldCaINCI0J7QktCQ0J3QmtCQCivQkdCg0JXQl9Ce0JLQkNCmINCU0KDQkNCT0JjQptCQCivQkdCg0JXQl9Ce0JLQkNCmINCU0KPQqNCQ0J0KK9CR0KDQldCX0J7QktCQ0KYg0JjQktCQ0J0KK9CR0KDQldCX0J7QktCQ0KYg0JjQktCQ0J0KK9CR0KDQldCX0J7QktCQ0KYg0IjQo9Cg0JDQiAor0JHQoNCV0JfQntCS0JDQpiDQmtCQ0KLQkNCg0JjQndCQCivQkdCg0JXQl9Ce0JLQkNCmINCJ0KPQkdCY0J3QmtCQCivQkdCg0JXQl9Ce0JLQkNCmINCc0JjQm9CV0J3QkAor0JHQoNCV0JfQntCS0JDQpiDQnNCY0JvQntCoCivQkdCg0JXQl9Ce0JLQkNCmINCf0JXQotCQ0KAKK9CR0KDQldCX0J7QktCQ0KYg0KHQkNCS0JAKK9CR0KDQldCX0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KDQmNCo0JXQktCQ0KYg0IjQo9Cg0JUKK9CR0KDQmNCa0JXQoCDQodCc0JjQidCQ0J3QkAor0JHQoNCY0IrQkNCaINCU0KDQkNCT0J4KK9CR0KDQmNCi0JLQldCmINCc0JDQoNCa0J4KK9CR0KDQmNCX0JAg0JbQldCb0JzQmNCg0JAKK9CR0KDQmNCX0JAg0IjQkNCdCivQkdCg0JjQl9CQINCb0KPQmtCg0JXQptCY0IjQkAor0JHQoNCaINCh0JjQnNCeCivQkdCg0JrQkNCd0JjQiyDQnNCQ0KDQmtCeCivQkdCg0JrQkNCd0JjQiyDQnNCY0JvQldCd0JrQngor0JHQoNCa0JDQndCY0Isg0KLQkNCi0IjQkNCd0JAKK9CR0KDQmtCQ0J3Qm9CY0Isg0JbQldCJ0JrQngor0JHQoNCa0JDQndCb0JjQiyDQlNCj0KjQkNCdCivQkdCg0JrQmNCLINCC0J7QoNCC0JUKK9CR0KDQmtCY0Isg0ILQntCg0ILQlQor0JHQoNCa0JjQiyDQgtCj0KDQngor0JHQoNCa0JjQiyDQkNCR0JDQlwor0JHQoNCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQoNCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQoNCa0JjQiyDQkNCd0JrQkAor0JHQoNCa0JjQiyDQkNCd0JrQmNCm0JAKK9CR0KDQmtCY0Ist0JHQldCb0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0KDQmtCY0Isg0JHQntCT0JTQkNCdCivQkdCg0JrQmNCLINCR0KDQkNCd0JrQngor0JHQoNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KDQmtCY0Isg0JTQoNCQ0JPQkAor0JHQoNCa0JjQiyDQlNCg0JDQk9CeCivQkdCg0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCg0JrQmNCLINCT0J7QiNCa0J4KK9CR0KDQmtCY0Isg0JjQm9CY0IjQkAor0JHQoNCa0JjQiyDQmNCS0JDQnQor0JHQoNCa0JjQiyDQmNCS0JjQptCQCivQkdCg0JrQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCg0JrQmNCLINCI0J7QktCQ0J0KK9CR0KDQmtCY0Isg0IjQntCS0JDQnQor0JHQoNCa0JjQiyDQiNCe0JLQkNCdCivQkdCg0JrQmNCLINCI0J7QktCQ0J0KK9CR0KDQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KDQmtCY0Isg0JvQo9Ca0JAKK9CR0KDQmtCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQkdCg0JrQmNCLINCc0JDQndCU0JAKK9CR0KDQmtCY0Isg0JzQkNCg0JjQiNCQCivQkdCg0JrQmNCLINCc0JDQoNCY0IjQkAor0JHQoNCa0JjQiyDQnNCY0JvQkNCU0JjQnQor0JHQoNCa0JjQiyDQnNCY0JvQkNCdCivQkdCg0JrQmNCLINCc0JjQm9CQ0J0KK9CR0KDQmtCY0Isg0JzQmNCb0JDQnQor0JHQoNCa0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQoNCa0JjQiyDQnNCY0KLQkNCgCivQkdCg0JrQmNCLINCd0JDQlNCQCivQkdCg0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQkdCg0JrQmNCLINCd0JjQmtCe0JvQkAor0JHQoNCa0JjQiyDQndCY0JrQntCb0JAKK9CR0KDQmtCY0Isg0J/QldCi0JDQoAor0JHQoNCa0JjQiyDQn9CV0KLQkNCgCivQkdCg0JrQmNCLINCf0JXQotCg0JAKK9CR0KDQmtCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0KDQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQoNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCg0JrQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0KDQmtCY0Isg0KDQkNCi0JrQngor0JHQoNCa0JjQiyDQoNCj0JbQkAor0JHQoNCa0JjQiyDQodCY0JvQktCY0IjQkAor0JHQoNCa0JjQiyDQodCb0JDQktCa0J4KK9CR0KDQmtCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0KDQmtCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0KDQmtCY0Isg0KLQntCc0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCg0JrQmNCLINCj0KDQntCoCivQkdCg0JrQmNCLINCS0JXQl9CY0JvQmNCI0JAKK9CR0KDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQoNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCg0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQoNCa0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQoNCa0JjQiyDQl9Ce0KDQkNCdCivQkdCg0JrQidCQ0Kcg0JHQoNCQ0J3QmNCc0JjQoAor0JHQoNCa0InQkNCnINCR0KDQkNCd0JjQodCb0JDQkgor0JHQoNCa0InQkNCnINCU0KDQkNCT0J7QidCj0JEKK9CR0KDQmtCJ0JDQpyDQmNCb0JjQiNCQCivQkdCg0JrQidCQ0Kcg0JrQkNCi0JDQoNCY0J3QkAor0JHQoNCa0InQkNCnINCc0JjQm9CQ0J3QmtCeCivQkdCg0JrQidCQ0Kcg0JzQmNCb0JDQnQor0JHQoNCa0InQkNCnINCd0JjQmtCe0JvQkAor0JHQoNCa0InQkNCnINCd0JjQmtCe0JvQkAor0JHQoNCa0InQkNCnINCg0KPQltCY0KbQkAor0JHQoNCa0InQkNCnINCh0JvQntCR0J7QlNCQ0J0KK9CR0KDQmtCJ0JDQpyDQodCi0JXQktCQ0J0KK9CR0KDQmtCJ0JDQp9CQINCR0KDQkNCi0J7QidCj0JEKK9CR0KDQmtCJ0JDQp9CY0Isg0JHQntCW0JXQndCQCivQkdCg0JrQidCQ0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQmtCeINCd0JjQmtCe0JvQkAor0JHQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JHQoNCa0J7QktCY0Isg0JDQndCi0KPQnQor0JHQoNCa0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9CR0KDQmtCe0JLQmNCLINCU0KDQkNCT0J4KK9CR0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KDQmtCe0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQkdCg0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQoNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KDQmtCe0JLQmNCLINCc0JDQk9CU0JAKK9CR0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0KDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9CR0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQoNCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KDQmtCe0JLQmNCLINCS0JjQntCU0KHQkNCS0JAKK9CR0KDQmtCe0JLQmNCLINCS0IjQldCa0J7QodCb0JDQkgor0JHQoNCa0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQkdCg0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0KDQm9CY0Isg0JjQktCQ0J0KK9CR0KDQnNCR0J7QotCQINCI0J7QktCQ0J0KK9CR0KDQnNCR0J7QotCQINCI0J7QktCQ0J0KK9CR0KDQitCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KDQntCo0KLQldCQ0J0g0JLQmNCe0KDQldCbCivQkdCg0J7Qi9CV0KLQkCDQkdCe0JPQlNCQ0J0KK9CR0KDQntCL0JXQotCQINCc0JjQi9CQCivQkdCg0J7Qi9CV0KLQkCDQnNCY0JvQntCg0JDQlAor0JHQoNCe0IvQldCi0JAg0J3QldCU0JXQidCa0J4KK9CR0KDQntCL0JXQotCQINCe0JHQoNCQ0JQKK9CR0KDQntCU0KDQkNCd0KHQmtCYINCh0JLQldCi0JvQkNCd0JAKK9CR0KDQntCI0KfQmNCdINCU0KPQqNCQ0J0KK9CR0KDQntCI0KfQmNCdINCh0JDQktCQCivQkdCg0J7QndCX0JAg0JTQoNCQ0JPQkNCdCivQkdCg0J7QndCX0JAg0KDQkNCI0JrQngor0JHQoNCe0JfQntCS0JjQiyDQmNCS0JDQnQor0JHQoNCh0JDQndCe0JLQmNCLINCa0KDQodCi0JAKK9CR0KDQodCi0JjQndCQINCS0JDQodCY0JvQmNCI0JUKK9CR0KDQotCQ0J0g0IjQntCh0JjQnwor0JHQoNCi0JrQkCDQiNCQ0J0KK9CR0KDQo9Co0IrQkNCYINCI0J7QodCY0J8KK9CR0KDQo9Co0IrQkNCaINCf0JXQoNCeCivQkdCg0KPQiNCY0Isg0JTQo9Co0JDQnQor0JHQoNCj0IjQmNCLINCI0J7QktCQ0J0KK9CR0KDQo9CI0JjQiyDQnNCQ0J3QntCI0JvQngor0JHQoNCj0IjQmNCLINCc0JjQm9CQ0J0KK9CR0KDQo9CI0JjQiyDQnNCY0JvQmNCm0JAKK9CR0KDQo9CI0JjQiyDQodCb0JDQktCa0J4KK9CR0KDQo9CI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCg0KPQmiDQkNCd0JTQoNCY0IjQkCDQlNCgCivQkdCg0KPQmtCd0JXQoCDQkdCe0JPQlNCQ0J0KK9CR0KDQo9Ca0J3QldCgINCR0J7Qk9CU0JDQnQor0JHQoNCj0J3Qp9CV0JLQmNCLINCl0JjQktCX0J4KK9CR0KDQo9Cd0KfQldCS0JjQiyDQoNCV0I/QldCfCivQkdCg0KPQndCU0JfQkCDQptCV0KbQmNCb0JjQiNCQCivQkdCg0KPQndCU0JfQkCDQktCb0JDQlNCY0JzQmNCgINCc0KAKK9CR0KDQo9Cd0JXQoCDQiNCe0KHQmNCfCivQkdCg0KPQndCV0KIg0JXQm9CV0JzQldCgCivQkdCg0KPQndCV0KIg0KTQoNCQ0IrQkAor0JHQoNCj0J3QldCiINCY0KjQotCS0JDQnQor0JHQoNCj0J3QldCiINCX0J7Qm9Ci0JDQnQor0JHQoNCj0J3QldCiINCX0J7Qm9Ci0JDQnQor0JHQoNCj0KHQmNCdINCU0KPQqNCa0J4KK9CR0KDQo9Ch0JjQnSDQmtCQ0IjQmNCm0JAKK9CR0KDQo9Ch0JjQnSDQnNCY0JvQntCI0JrQngor0JHQoNCj0KHQmNCdINCc0JjQm9Ce0JLQkNCdCivQkdCg0KPQodCY0J0g0KDQkNCU0JjQptCQCivQkdCg0KPQodCY0J0g0KHQm9CQ0JLQmtCeCivQkdCg0KPQodCK0JDQmCDQmtCQ0KDQm9CeCivQkdCg0KPQodCK0JDQmCDQm9CQ0KHQm9CeCivQkdCg0KPQodCK0JDQmCDQnNCQ0KDQk9CQ0KDQmNCi0JAKK9CR0KDQl9CQ0Jog0JbQmNCS0JrQkAor0JHQoNCX0JDQmiDQltCY0JLQntCg0JDQlAor0JHQoNCX0JDQmiDQgtCe0KDQgtCVCivQkdCg0JfQkNCaINCC0J7QoNCC0JUKK9CR0KDQl9CQ0Jog0ILQntCg0ILQlQor0JHQoNCX0JDQmiDQgtCe0KDQgtCVCivQkdCg0JfQkNCaINCC0KPQmtCQCivQkdCg0JfQkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCg0JfQkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCg0JfQkNCaINCQ0J3QgtCV0JvQmtCQCivQkdCg0JfQkNCaINCR0J7Qk9CU0JDQndCa0JAKK9CR0KDQl9CQ0Jog0JHQntCg0JjQodCb0JDQkgor0JHQoNCX0JDQmiDQkdCe0KHQkAor0JHQoNCX0JDQmiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KDQl9CQ0Jog0JTQoNCQ0JPQkNCdCivQkdCg0JfQkNCaINCU0KDQkNCT0JDQnQor0JHQoNCX0JDQmiDQlNCg0JDQk9CY0KbQkAor0JHQoNCX0JDQmiDQlNCg0JDQk9Ce0JzQmNCgCivQkdCg0JfQkNCaINCU0KPQqNCa0J4KK9CR0KDQl9CQ0Jog0JPQntCI0JrQngor0JHQoNCX0JDQmiDQmNCb0JjQiNCQCivQkdCg0JfQkNCaINCI0JDQlNCg0JDQndCa0JAKK9CR0KDQl9CQ0Jog0IjQldCb0JXQndCQCivQkdCg0JfQkNCaINCI0J7QktCQ0J0KK9CR0KDQl9CQ0Jog0IjQntCS0JDQnQor0JHQoNCX0JDQmiDQiNCe0JLQkNCdCivQkdCg0JfQkNCaINCI0J7QktCQ0J0KK9CR0KDQl9CQ0Jog0IjQntCS0JDQnQor0JHQoNCX0JDQmiDQiNCe0JLQkNCdCivQkdCg0JfQkNCaINCa0J7QodCi0JAKK9CR0KDQl9CQ0Jog0JvQkNCX0JDQoAor0JHQoNCX0JDQmiDQm9CV0J/QntCh0JDQktCQCivQkdCg0JfQkNCaINCc0JDQoNCY0IjQkAor0JHQoNCX0JDQmiDQnNCY0JvQkAor0JHQoNCX0JDQmiDQnNCY0JvQldCd0JrQngor0JHQoNCX0JDQmiDQnNCY0JvQldCd0JrQngor0JHQoNCX0JDQmiDQnNCY0JvQldCd0JrQngor0JHQoNCX0JDQmiDQnNCY0JvQntCS0JDQnQor0JHQoNCX0JDQmiDQnNCY0JvQntCS0JDQnQor0JHQoNCX0JDQmiDQnNCY0KDQkAor0JHQoNCX0JDQmiDQnNCY0KDQkAor0JHQoNCX0JDQmiDQnNCY0KDQntCh0JvQkNCSCivQkdCg0JfQkNCaINCc0JjQotCQ0KAKK9CR0KDQl9CQ0Jog0J/QldCi0JDQoAor0JHQoNCX0JDQmiDQn9Cg0JXQlNCg0JDQkwor0JHQoNCX0JDQmiDQoNCQ0JTQntCh0JvQkNCSCivQkdCg0JfQkNCaINCh0JDQktCQCivQkdCg0JfQkNCaINCh0JDQktCV0KLQkAor0JHQoNCX0JDQmiDQodCY0JzQldCe0J0KK9CR0KDQl9CQ0Jog0KHQm9CQ0JLQmtCeCivQkdCg0JfQkNCaINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQkdCg0JfQkNCaINCh0KLQldCS0JDQnQor0JHQoNCX0JDQmiDQodCi0JXQktCQ0J0KK9CR0KDQl9CQ0Jog0KHQotCV0JLQkNCdCivQkdCg0JfQkNCaINCh0KLQntCI0JDQndCa0JAKK9CR0KDQl9CQ0Jog0KHQktCV0KLQm9CQ0J3QkAor0JHQoNCX0JDQmiDQodCS0JXQotCe0JfQkNCgCivQkdCg0JfQkNCaINCi0J7QqNCQCivQkdCg0JfQkNCaINCi0J7QqNCQCivQkdCg0JfQkNCaINCi0J7QqNCY0KbQkAor0JHQoNCX0JDQmiDQotCe0JTQntCgCivQkdCg0JfQkNCaINCS0JDQodCQCivQkdCg0JfQkNCaINCS0JDQodCQCivQkdCg0JfQkNCaINCS0JDQodCQCivQkdCg0JfQkNCaINCS0JXQidCa0J4KK9CR0KDQl9CQ0Jog0JLQmNCU0JAKK9CR0KDQl9CQ0Jog0JLQmNCU0J7QodCQ0JLQkAor0JHQoNCX0JDQmiDQktCY0JTQntCh0JvQkNCSCivQkdCg0JfQkNCaINCS0JvQkNCU0JjQodCb0JDQkgor0JHQoNCX0JDQmiDQl9Ce0KDQkNCdCivQkdCg0JfQkNCa0J7QktCY0Isg0JjQk9Ce0KAKK9CR0KDQl9CQ0JrQntCS0JjQiyDQndCV0J3QkNCUINCU0KAKK9CR0KDQl9CQ0JrQntCS0JjQiyDQktCY0KLQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CR0KDQl9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KDQl9CY0Isg0JbQmNCS0JDQnQor0JHQoNCX0JjQiyDQgtCe0KDQgtCVCivQkdCg0JfQmNCLINCR0KDQkNCd0JrQngor0JHQoNCX0JjQiyDQpNCg0JDQitCQCivQkdCg0JfQmNCLINCY0JLQkNCdCivQkdCg0JfQmNCLINCI0J7QktCQ0J0KK9CR0KDQl9CY0Isg0JvQkNCX0JDQoAor0JHQoNCX0JjQiyDQm9CQ0JfQkNCgCivQkdCg0JfQmNCLINCc0JjQoNCI0JDQndCQCivQkdCg0JfQmNCLINCf0JXQotCQ0KAKK9CR0KDQl9CY0Isg0J/QldCi0JDQoAor0JHQoNCX0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCg0JfQmNCLINCh0KLQldCS0JDQnQor0JHQoNCX0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCg0JfQmNCLINCi0J7QlNCe0KAKK9CR0KDQl9CY0Isg0JfQm9CQ0KLQkAor0JHQoNCX0JjQptCQINCR0KDQkNCd0JrQkAor0JHQoNCX0JjQptCQINCk0JXQoNCU0J4KK9CR0KDQl9CY0KbQkCDQmNCS0JDQndCa0JAKK9CR0KDQl9CY0KbQkCDQnNCQ0KDQmNCd0JrQngor0JHQoNCX0J7QktCQ0J0g0JHQldCl0JjQiNCQCivQkdCjINCY0KjQotCS0JDQnQor0JHQo9Cn0JAg0JTQo9Co0JDQnQor0JHQo9Cn0JAg0JTQo9Co0JjQptCQCivQkdCj0KfQkCDQmNCg0JjQndCQCivQkdCj0KfQkCDQktCQ0KHQkAor0JHQo9Cn0JDQndCh0JrQmCDQiNCe0JbQldCkCivQkdCj0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0KPQp9Ca0J4g0JDQpdCd0JXQotCQCivQkdCj0KfQmtCeINCI0JDQndCa0J4KK9CR0KPQp9Ca0J4g0JzQkNCg0JjQiNCQCivQkdCj0KfQniDQlNCQ0J3QmNCI0JXQm9CQCivQkdCj0KfQoy3QnNCQ0KDQotCe0J3QntCo0Jgg0JPQmNCX0JXQm9CQCivQkdCj0Kgg0JDQndCQCivQkdCj0Kgg0JzQkNCT0JTQkNCb0JXQndCQCivQkdCj0Kgg0KHQmNCb0JLQldCh0KLQldCgCivQkdCj0KjQmNCLINCh0KDQldCL0JrQngor0JHQo9Co0InQldCi0JAg0JHQoNCQ0J3QmtCQCivQkdCj0KjQotCg0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KPQqNCi0KDQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQo9Co0KLQoNCe0JLQmNCLINCe0JvQk9CQCivQkdCj0IvQkNCdINCU0KPQqNCQ0J0KK9CR0KPQi9CQ0J0g0JTQo9Co0JDQnQor0JHQo9CL0JDQnSDQnNCY0JvQldCS0JAKK9CR0KPQi9CQ0J0g0KHQm9CQ0JLQmtCQCivQkdCj0IvQkNCd0KHQmtCYINCc0JDQi9CQ0KgKK9CR0KPQi9CY0J0g0KDQkNCU0JUKK9CR0KPQi9CeINCX0JDQk9Ce0KDQmtCQCivQkdCj0JbQkNCd0KfQmNCLINCc0JjQoNCQCivQkdCj0JbQkNCd0JjQnSDQnNCY0JvQlQor0JHQo9CC0Jgg0ILQo9Cb0JAKK9CR0KPQgtCY0JvQkNCdINCf0JXQotCQ0KAKK9CR0KPQkNCn0JAg0JTQoNCQ0JPQkNCdCivQkdCj0JDQp9CQINCe0JvQk9CY0KbQkAor0JHQo9CQ0KfQkCDQodCi0JXQktCQ0J0KK9CR0KPQkdCQ0JvQniDQlNCg0JDQk9CQ0J0KK9CR0KPQkdCQ0JvQniDQlNCg0JDQk9CY0IrQkAor0JHQo9CR0JDQm9CeINCT0J7QoNCQ0J0KK9CR0KPQkdCQ0JvQniDQmNCb0JjQiNCQCivQkdCj0JHQkNCb0J4g0IjQntCS0JDQnQor0JHQo9CR0JDQm9CeINCI0J7QktCeCivQkdCj0JHQkNCb0J4g0JzQmNCg0J7QodCb0JDQkgor0JHQo9CR0JDQm9CeINCf0JXQotCQ0KAKK9CR0KPQkdCQ0JvQniDQoNCQ0KLQntCc0JjQoAor0JHQo9CR0JDQm9CeINCh0JjQnNCeCivQkdCj0JHQkNCb0J4g0KLQldCe0JTQntCg0JAKK9CR0KPQkdCQ0Iog0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCj0JHQkNCKINCU0JDQndCVCivQkdCj0JHQkNCKINCY0JLQkNCd0JrQkAor0JHQo9CR0JDQiiDQnNCY0JvQmNCm0JAKK9CR0KPQkdCQ0Iog0JzQmNCb0J7QqAor0JHQo9CR0JDQiiDQoNCQ0JTQlQor0JHQo9CR0JDQiiDQoNCQ0JTQntCI0JrQkAor0JHQo9CR0JDQiiDQodCg0JHQntCJ0KPQkQor0JHQo9CR0JDQiiDQktCY0JTQntCh0JDQktCQCivQkdCj0JHQkNCK0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQkdCQ0IrQkCDQkdCQ0KLQoNCY0IsKK9CR0KPQkdCQ0IrQkCDQlNCQ0KDQmNCd0JrQkAor0JHQo9CR0JDQitCQINCa0JDQotCY0KbQkAor0JHQo9CR0JDQitCQINCc0JDQqNCQ0J0KK9CR0KPQkdCQ0IrQkCDQoNCQ0JTQmNCh0JDQkgor0JHQo9CR0JDQitCQINCi0JDQlNCY0IjQkAor0JHQo9CR0JDQitCQINCS0J7QiNCY0KHQm9CQ0JIKK9CR0KPQkdCQ0IrQkCDQl9Ce0KDQmtCQCivQkdCj0JHQmNCLINCc0JjQm9CQ0J0KK9CR0KPQkdCd0JjQiyDQktCV0KDQntCd0JAKK9CR0KPQkdCK0JXQktCY0Isg0ILQntCg0ILQlQor0JHQo9CR0IrQldCS0JjQiyDQkdCe0KDQlQor0JHQo9CR0IrQldCS0JjQiyDQlNCQ0KDQkAor0JHQo9CR0IrQldCS0JjQiyDQlNCg0JDQk9CeCivQkdCj0JHQitCV0JLQmNCLINCT0J7QiNCa0J4KK9CR0KPQkdCK0JXQktCY0Isg0IjQkNCK0JAKK9CR0KPQkdCK0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KPQkdCK0JXQktCY0Isg0JzQkNCg0JjQptCQCivQkdCj0JHQitCV0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQkdCj0JHQitCV0JLQmNCLINCc0JjQoNCa0J4KK9CR0KPQkdCK0JXQktCY0Isg0J3QldCd0JDQlAor0JHQo9CR0IrQldCS0JjQiyDQntCh0KLQntCI0JAKK9CR0KPQkdCK0JXQktCY0Isg0KDQkNCU0JAKK9CR0KPQkdCK0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0KPQkdCK0JXQktCY0Isg0KDQldCJ0JAKK9CR0KPQkdCK0JXQktCY0Isg0KHQoNCR0J7QidCj0JEKK9CR0KPQkdCK0JXQktCY0Isg0KHQoNCV0KLQldCdCivQkdCj0JHQitCV0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CR0KPQkdCK0JXQktCY0Isg0JLQkNCh0JrQoNCh0JjQiNCVCivQkdCj0JHQitCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQkdCK0JjQiyDQltCV0InQmtCeCivQkdCj0JHQntCK0JAg0JHQntCg0JjQoQor0JHQo9CR0J7QitCQINCU0J7QodCi0JDQndCQCivQkdCj0JHQntCK0JAg0JTQo9Co0JDQnQor0JHQo9CR0J7QitCQINCg0JDQlNCe0JLQkNCdCivQkdCj0JHQoNCV0KjQmtCeINCT0J7QoNCU0JDQndCQCivQkdCj0JHQo9CJINCc0JjQm9CY0IsKK9CR0KPQkdCj0Ikg0J3QkNCU0JAKK9CR0KPQkdCj0Ikg0KHQotCe0IjQkNCd0JrQkAor0JHQo9CR0KPQiSDQodCi0J7QiNCQCivQkdCj0KbQkNCb0J4g0JzQmNCb0JDQlNCY0J0KK9CR0KPQptCQ0JvQniDQnNCY0KDQkAor0JHQo9Cm0JDQm9CeINCc0JjQotCQ0KAKK9CR0KPQptCQ0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQkdCj0KbQmNCLINCQ0J3QotCVCivQkdCj0KbQmNCLINCc0JjQm9CY0JLQntCICivQkdCj0KbQo9CJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQptCj0InQldCS0JjQiyDQl9Cb0JDQotCe0JzQmNCgINCU0KAKK9CR0KPQj9CQ0JrQntCh0JrQmCDQotCe0JzQkAor0JHQo9CP0JDQoNCe0JIg0KHQkNCS0JAKK9CR0KPQlNCQINCQ0JTQkAor0JHQo9CU0JAg0JXQktCQCivQkdCj0JTQkCDQpdCQ0IjQndCQ0JvQmtCQCivQkdCj0JTQkCDQiNCe0JbQldCkCivQkdCj0JTQkCDQotCV0KDQldCX0JAKK9CR0KPQlNCQ0Isg0JfQntCg0JDQnQor0JHQo9CU0JDQmCDQk9Ce0KDQmNCm0JAKK9CR0KPQlNCQ0Jgg0JjQm9Ce0J3QmtCQCivQkdCj0JTQkNCYINCI0J7QltCV0KQKK9CR0KPQlNCQ0Jgg0IjQntCb0JDQnQor0JHQo9CU0JDQmCDQiNCe0JLQkNCdCivQkdCj0JTQkNCYINCb0JDQiNCe0KgKK9CR0KPQlNCQ0Jgg0JvQkNCI0J7QqAor0JHQo9CU0JDQmCDQl9Ce0KDQkAor0JHQo9CU0JDQmiDQlNCg0JDQk9CQ0J0KK9CR0KPQlNCQ0Jog0JjQktCY0KbQkAor0JHQo9CU0JDQmiDQnNCY0JvQkNCdCivQkdCj0JTQkNCaINCS0JXQoNCQCivQkdCj0JTQkNCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQo9CU0JDQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCj0JTQkNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0KPQlNCQ0JrQntCSINCT0J7QoNCY0KbQkAor0JHQo9CU0JDQmtCe0JIg0JjQktCQ0J0KK9CR0KPQlNCQ0JrQntCSINCJ0JjQidCQ0J3QkAor0JHQo9CU0JDQmtCe0JIg0JzQmNCb0JDQnQor0JHQo9CU0JDQmtCe0JIg0JzQmNCb0KPQotCY0J0KK9CR0KPQlNCQ0JrQntCSINCe0JvQmNCS0JXQoNCQCivQkdCj0JTQkNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQkdCj0JTQkNCd0J7QkiDQkNCd0KLQkNCbCivQkdCj0JTQkNCd0J7QkiDQlNCQ0J3QmNCm0JAKK9CR0KPQlNCQ0J3QntCS0JjQiyDQodCQ0JLQldCi0JAKK9CR0KPQlNCQ0J3QntCS0JjQiyDQodCi0JDQndCQCivQkdCj0JTQldCg0JrQkCDQnNCQ0KDQmNCI0JAKK9CR0KPQlNCY0KjQkCDQkdCe0JbQkAor0JHQo9CU0JjQqNCQINCR0J7QoNCQCivQkdCj0JTQmNCo0JAg0JzQmNCg0JrQngor0JHQo9CU0JjQqNCQINCi0JjQpdCe0JzQmNCgCivQkdCj0JTQmNCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQlNCY0KjQmNCdINCC0J7QoNCC0JUKK9CR0KPQlNCY0KjQmNCdINCY0JLQkNCdCivQkdCj0JTQmNCo0JjQnSDQnNCY0JvQntCoCivQkdCj0JTQmNCo0JjQnSDQnNCY0JvQntCoCivQkdCj0JTQmNCo0JjQnSDQndCY0JrQntCb0JAg0JTQoAor0JHQo9CU0JjQqNCY0J0t0KHQkNCa0JDQpyDQodCe0IrQkCDQlNCgCivQkdCj0JTQmNCo0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQkdCj0JTQmNCLINCW0JXQidCa0J4KK9CR0KPQlNCY0Isg0JTQkNCd0JjQm9CeCivQkdCj0JTQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQo9CU0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQo9CU0JjQiyDQnNCY0JvQkNCdCivQkdCj0JTQmNCLINCX0J7QoNCa0JAKK9CR0KPQlNCY0JzQp9CY0Isg0IjQntCS0JDQnQor0JHQo9CU0JjQnNCn0JjQiyDQidCY0InQkNCd0JAKK9CR0KPQlNCY0JzQp9CY0Isg0JzQmNCb0JjQktCe0IgKK9CR0KPQlNCY0JzQkCDQkdCQ0IjQoNCj0KgKK9CR0KPQlNCY0JzQkNCmINCR0KPQlNCY0JzQmNCgCivQkdCj0JTQmNCc0JDQpiDQl9Ce0KDQkNCdCivQkdCj0JTQmNCc0JjQoCDQnNCQ0KDQmNCI0JAKK9CR0KPQlNCY0JzQmNCgINCc0JjQm9CQ0J0KK9CR0KPQlNCY0JzQmNCgINCc0JjQm9Ce0IjQmtCeCivQkdCj0JTQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQkdCj0JTQmNCc0JjQoNCe0JLQmNCLINCd0JXQk9Ce0JLQkNCdCivQkdCj0JTQmNCc0JjQoNCe0JLQmNCLINCj0KDQntCoCivQkdCj0JTQmNCc0JrQmNCLLdCa0KDQodCi0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JHQo9CU0JjQnNCb0JjQiNCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0JTQmNCc0JvQmNCI0JAg0JTQoNCQ0JPQmNCm0JAKK9CR0KPQlNCY0JzQm9CY0IjQkCDQmNCb0JjQiNCQCivQkdCj0JTQmNCc0JvQmNCI0JAg0JzQmNCb0JDQnQor0JHQo9CU0JjQnNCb0JjQiNCQINCc0JjQm9CQ0J0KK9CR0KPQlNCY0JzQm9CY0IjQkCDQoNCQ0JTQlQor0JHQo9CU0JjQnNCh0JrQmCDQgtCj0KDQkAor0JHQo9CU0JjQnNCh0JrQmCDQodCb0JDQktCj0IgKK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCT0JDQkdCe0KAKK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCc0JjQoNCa0J4KK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQo9CU0JjQndCh0JrQmCDQmtCY0KDQmNCbCivQkdCj0JTQmNCd0KHQmtCYINCJ0KPQkdCQCivQkdCj0JTQmNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0JHQo9CU0JjQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCj0JTQmNCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCj0JTQmNCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQnQor0JHQo9CU0JjQodCQ0JLQidCV0JLQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQkdCj0JTQmNCh0JDQktCJ0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQktCV0KDQmNCm0JAKK9CR0KPQlNCI0JjQm9CQ0J0g0J/QldCi0JDQoAor0JHQo9CU0J7QqNCQ0J0g0JbQmNCS0JrQngor0JHQo9CU0J7QqNCQ0J0g0ILQntCg0ILQlQor0JHQo9CU0J7QqNCQ0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQlNCe0KjQkNCdLdCa0J7QktCQ0Kcg0IjQldCb0JXQndCQCivQkdCj0JTQntCo0JDQnSDQnNCY0JvQntCoCivQkdCj0JTQntCo0JDQnSDQndCQ0JTQkAor0JHQo9CU0J7QqNCQ0J0g0KHQkNCS0JAKK9CR0KPQlNCe0KjQkNCdINCh0JDQktCQCivQkdCj0JTQntCo0JDQnSDQodCi0JXQktCQ0J0KK9CR0KPQlNCe0KjQkNCdINCi0J7QqNCY0KbQkAor0JHQo9CU0J7QqNCQ0J0g0JLQkNCh0JAKK9CR0KPQlNCe0KjQkNCdINCS0JDQodCQCivQkdCj0JTQntCo0JDQnSDQktCj0JrQntCh0JDQktCQCivQkdCj0JTQntCS0JDQm9Cn0JXQkiDQkNCg0KHQkAor0JHQo9CU0J7QktCQ0JvQp9CV0JIg0J7Qm9CT0JAKK9CR0KPQlNCe0JLQkNCb0KfQldCSINCf0JXQotCQ0KAKK9CR0KPQlNCe0JLQkNCb0KfQldCSINCf0JXQotCQ0KAKK9CR0KPQlNCj0KDQmNCdINCg0JDQlNCe0IjQlQor0JHQo9CT0JDQj9CY0IjQkCDQm9CQ0IjQntCoCivQkdCj0JPQkNCP0JjQiNCQINCh0KLQldCS0JDQnQor0JHQo9CT0JDQoNCn0JjQiyDQn9CV0KLQkNCgCivQkdCj0JPQkNCg0KfQmNCLINCg0JDQlNCc0JjQm9CeCivQkdCj0JPQkNCg0KfQmNCLINCh0JzQmNCJ0JrQkAor0JHQo9CT0JDQoNCY0J0t0KfQntCd0JrQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQkdCe0KjQmtCeCivQkdCj0JPQkNCg0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQkdCj0JPQkNCg0JjQnSDQlNCQ0J3QmNCm0JAKK9CR0KPQk9CQ0KDQmNCdINCY0JvQmNCI0JAKK9CR0KPQk9CQ0KDQmNCdINCY0JLQkNCd0JAKK9CR0KPQk9CQ0KDQmNCdINCI0JXQktCg0J7QodCY0JzQkAor0JHQo9CT0JDQoNCY0J0g0InQmNCJ0JDQndCQCivQkdCj0JPQkNCg0JjQnSDQidCj0JHQntCc0JjQoAor0JHQo9CT0JDQoNCY0J0g0JzQkNCg0JjQiNCQCivQkdCj0JPQkNCg0JjQnSDQnNCY0JvQntCoCivQkdCj0JPQkNCg0JjQnSDQnNCY0JvQntCg0JDQlAor0JHQo9CT0JDQoNCY0J0g0KDQkNCU0JjQodCb0JDQkgor0JHQo9CT0JDQoNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0JHQo9CT0JDQoNCY0J0g0KHQmNCd0JjQqNCQCivQkdCj0JPQkNCg0JjQnSDQodCf0JDQodCe0IjQlQor0JHQo9CT0JDQoNCY0J0g0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQktCV0JvQmNCR0J7QoAor0JHQo9CT0JDQoNCY0J0g0JLQldCh0J3QkAor0JHQo9CT0JDQoNCY0J0g0JfQntCg0JDQnQor0JHQo9CT0JDQoNCY0J0g0JfQntCg0JjQptCQCivQkdCj0JPQkNCg0JjQndCe0JLQmNCLINCc0JDQoNCT0JDQoNCV0KLQkAor0JHQo9CT0JDQoNCY0KMg0IjQo9Cb0JjQiNCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JbQkNCg0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQltCY0JrQkAor0JHQo9CT0JDQoNCh0JrQmCDQltCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQo9CT0JDQoNCh0JrQmCDQgtCe0KDQgtCVCivQkdCj0JPQkNCg0KHQmtCYINCC0J7QoNCC0JUKK9CR0KPQk9CQ0KDQodCa0Jgg0ILQo9Cg0JjQptCQCivQkdCj0JPQkNCg0KHQmtCYINCR0J7QiNCQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQkdCg0JDQndCa0J4KK9CR0KPQk9CQ0KDQodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCj0JPQkNCg0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQo9CT0JDQoNCh0JrQmCDQlNCg0JDQk9CQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQkdCj0JPQkNCg0KHQmtCYINCU0KDQkNCT0J7QidCj0JEKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCj0JPQkNCg0KHQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQo9Co0JDQnSDQlNCgCivQkdCj0JPQkNCg0KHQmtCYINCU0KPQqNCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JTQo9Co0JjQptCQCivQkdCj0JPQkNCg0KHQmtCYINCU0KPQqNCY0KbQkAor0JHQo9CT0JDQoNCh0JrQmCDQlNCj0KjQmtCeCivQkdCj0JPQkNCg0KHQmtCYINCV0JLQmNCm0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0IjQntCS0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQiNCj0JvQmtCQCivQkdCj0JPQkNCg0KHQmtCYINCa0JDQotCQCivQkdCj0JPQkNCg0KHQmtCYINCa0KDQodCi0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JrQodCV0J3QmNCI0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JvQkNCX0JDQoAor0JHQo9CT0JDQoNCh0JrQmCDQm9CQ0JfQkNCgCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQm9CQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0JvQldCd0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JXQndCa0J4KK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JXQotCQCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQm9CY0KbQkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQndCQ0JTQkAor0JHQo9CT0JDQoNCh0JrQmCDQndCV0JTQldCJ0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQndCY0JrQntCb0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0J7Qm9CY0JLQldCg0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0J/QkNCI0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0J/QkNCS0JvQlQor0JHQo9CT0JDQoNCh0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQkdCj0JPQkNCg0KHQmtCYINCg0JDQodCi0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQoNCQ0KLQntCc0JjQoAor0JHQo9CT0JDQoNCh0JrQmCDQodCQ0JLQkAor0JHQo9CT0JDQoNCh0JrQmCDQodCQ0JLQkAor0JHQo9CT0JDQoNCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQodCe0KTQmNCI0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0JLQldCi0JvQkNCd0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0KLQkNCi0IjQkNCd0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JLQntCI0JjQodCb0JDQktCQCivQkdCj0JPQkNCg0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9CR0KPQk9CQ0KDQodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQl9Ce0KDQkAor0JHQo9CT0JXQiSDQmNCS0JDQnQor0JHQo9Cl0JAg0JHQoNCQ0J3QmtCQCivQkdCj0KXQkCDQoNCQ0JTQmNCS0J7QiNCVCivQkdCj0KXQkCDQktCj0JrQkNCo0JjQnQor0JHQo9Cl0JzQmNCb0JXQoCDQkNCT0J3QldCoCivQkdCj0KXQnNCY0JvQldCgINCQ0KLQmNCb0JAKK9CR0KPQpdCc0JjQm9CV0KAg0JXQktCQCivQkdCj0KXQnNCY0JvQldCgINCI0J7QodCY0J8KK9CR0KPQpdCc0JjQm9CV0KAg0IjQntCh0JjQnwor0JHQo9Cl0JzQmNCb0JXQoCDQmtCQ0KDQm9CeCivQkdCj0JjQqNCQINCc0JjQm9CY0J3QmtCeCivQkdCj0JjQm9CQINCQ0J3QkAor0JHQo9CY0JvQkCDQmNCg0JjQndCV0IgKK9CR0KPQmNCb0JAg0InQo9CR0JjQptCQCivQkdCj0JjQm9CQINCc0JDQmtCh0JjQnNCY0JvQmNCI0JDQnQor0JHQo9CY0JvQkCDQnNCY0KDQntCh0JvQkNCSCivQkdCj0JjQm9CQINCh0JvQkNCS0JjQptCQCivQkdCj0JjQm9CQINCh0JvQkNCS0J7QnNCY0KAKK9CR0KPQiNCQ0Jog0JXQnNCY0JsKK9CR0KPQiNCQ0Jog0JzQkNCi0JjQm9CU0JAKK9CR0KPQiNCQ0Jog0KHQkNCS0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQo9CI0JDQndCU0KDQmNCLINCI0J7QktCQ0J0KK9CR0KPQiNCQ0J3QlNCg0JjQiyDQidCj0JHQmNCm0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQo9CI0JDQndCU0KDQmNCLINCc0JjQotCQ0KAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQndCY0JrQntCb0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQn9CQ0JLQm9CVCivQkdCj0IjQkNCd0JTQoNCY0Isg0J/QldCi0JDQoAor0JHQo9CI0JDQndCU0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCj0IjQkNChINCc0JjQm9CV0J3QmtCeCivQkdCj0IjQkNChINCS0JXQndCn0JXQodCb0JDQkgor0JHQo9CI0JTQntCo0JAg0KHQotCV0JLQkNCdCivQkdCj0IjQlNCe0KjQmNCaINCR0J7QpdCe0JzQmNCbCivQkdCj0IjQlNCe0KjQmNCaINCa0JvQkNCg0JAKK9CR0KPQiNCU0J7QqNCY0Jog0JzQmNCg0J7QodCb0JDQkgor0JHQo9CI0JTQntCo0J4g0JjQqNCi0JLQkNCdCivQkdCj0IjQmNCo0JjQiyDQltCY0JLQmtCeCivQkdCj0IjQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0KPQiNCb0JAg0JXQotCV0JvQmtCQCivQkdCj0IjQm9CQINCI0JDQodCc0JjQndCQCivQkdCj0IjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0KPQiNCd0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9CR0KPQmtCQ0JvQntCSINCX0J7QoNCQCivQkdCj0JrQkNCg0JAg0JTQo9Co0JDQndCa0JAKK9CR0KPQmtCQ0KDQmNCm0JAg0JTQkNCd0JjQptCQCivQkdCj0JrQkNCg0JjQptCQINCI0J7QktCQ0J0KK9CR0KPQmtCQ0KLQmtCQINCQ0J3QlNCg0JXQiAor0JHQo9Ca0JDQotCa0JAg0KDQkNCU0J7QodCb0JDQkgor0JHQo9Ca0JDQotCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0JHQo9Ca0JDQotCa0J7QkiDQmNCS0JDQnQor0JHQo9Ca0JjQiyDQiNCQ0JrQntCSCivQkdCj0JrQmNCb0JjQiyDQlNCg0JDQk9CQCivQkdCj0JrQmNCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQo9Ca0JjQnSDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQkdCj0JrQmNCd0JDQpiDQgtCe0KDQgtCVCivQkdCj0JrQmNCd0JDQpiDQkdCY0InQkNCd0JAKK9CR0KPQmtCY0J3QkNCmINCR0J7Qk9Cj0JzQmNCb0JAKK9CR0KPQmtCY0J3QkNCmINCU0JjQndCQCivQkdCj0JrQmNCd0JDQpiDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9CR0KPQmtCY0J3QkNCmINCY0JLQkNCdCivQkdCj0JrQmNCd0JDQpiDQiNCj0JvQmtCQCivQkdCj0JrQmNCd0JDQpiDQm9CQ0JfQkNCgCivQkdCj0JrQmNCd0JDQpiDQnNCY0JvQkNCU0JjQnQor0JHQo9Ca0JjQndCQ0KYg0JzQmNCb0JDQnQor0JHQo9Ca0JjQndCQ0KYg0JzQmNCb0JjQptCQCivQkdCj0JrQmNCd0JDQpiDQnNCY0JvQntCh0JDQktCQCivQkdCj0JrQmNCd0JDQpiDQnNCY0KDQmtCeCivQkdCj0JrQmNCd0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQkdCj0JrQmNCd0JDQpiDQoNCj0JbQmNCm0JAKK9CR0KPQmtCY0J3QkNCmINCh0JvQkNCS0JrQngor0JHQo9Ca0JjQndCQ0KYg0KHQotCQ0J3QmtCQCivQkdCj0JrQmNCd0JDQpiDQodCi0JXQktCQ0J0KK9CR0KPQmtCY0J3QkNCmINCj0KDQntCoCivQkdCj0JrQntCS0KfQkNCd0JjQnSDQkNCm0JAKK9CR0KPQmtCe0JLQkNCn0JrQmCDQnNCY0J7QlNCg0JDQkwor0JHQo9Ca0J7QktCQ0KfQmtCYINCf0JXQoNCQCivQkdCj0JrQntCS0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JHQo9Ca0J7QktCQ0KYg0JDQndCa0JjQptCQCivQkdCj0JrQntCS0JDQpiDQkNCi0JjQm9CQCivQkdCj0JrQntCS0JDQpiDQodCi0JXQktCQ0J0KK9CR0KPQmtCe0JLQkNCmINCS0JvQkNCU0J4KK9CR0KPQmtCe0JLQkNCb0JAg0JTQldCh0JDQndCa0JAKK9CR0KPQmtCe0JLQmNCn0JDQndCY0J0g0KDQldCJ0JAKK9CR0KPQmtCe0JLQmNCLINCQ0J3QlNCg0JDQqAor0JHQo9Ca0J7QktCY0KbQkCDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0KPQmtCe0JLQmNCm0JAg0KDQkNCd0JrQngor0JHQo9Ca0KLQkCDQndCQ0JTQkAor0JHQo9Ca0KLQkCDQl9CS0J7QndCa0J4KK9CR0KPQmtCj0JzQmNCg0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9CR0KPQmtCj0JzQmNCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQkdCj0JrQo9Cg0JXQptCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCj0JrQo9Cg0JXQptCa0Jgg0KHQmNCd0JjQqNCQCivQkdCj0JrQo9Cg0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JHQo9Ca0KPQoNCe0JIg0JbQkNCg0JrQngor0JHQo9Ca0KPQoNCe0JIg0JbQmNCS0JDQnQor0JHQo9Ca0KPQoNCe0JIg0JbQmNCS0JDQnQor0JHQo9Ca0KPQoNCe0JIg0JHQntCo0JrQngor0JHQo9Ca0KPQoNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9CR0KPQmtCj0KDQntCSINCa0KHQldCd0JjQiNCQCivQkdCj0JrQktCQINCS0JXQm9CY0JzQmNCgCivQkdCj0JrQktCY0Isg0JbQldCJ0JrQkAor0JHQo9Ca0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0JrQktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCj0JrQktCY0Isg0JHQo9CU0JUKK9CR0KPQmtCS0JjQiyDQlNCQ0J3QlQor0JHQo9Ca0JLQmNCLINCU0JDQndCY0JvQngor0JHQo9Ca0JLQmNCLINCU0JDQndCY0JvQngor0JHQo9Ca0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQo9Ca0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KPQmtCS0JjQiyDQmNCb0JjQiNCQCivQkdCj0JrQktCY0Isg0JjQm9CY0J3QmtCQCivQkdCj0JrQktCY0Isg0IjQkNCd0JrQngor0JHQo9Ca0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCj0JrQktCY0Isg0IjQntCS0JDQnQor0JHQo9Ca0JLQmNCLINCa0J7QktCY0InQmtCQCivQkdCj0JrQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KPQmtCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KPQmtCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQo9Ca0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCj0JrQktCY0Isg0JzQmNCb0JrQkAor0JHQo9Ca0JLQmNCLINCc0JjQm9Ce0KgKK9CR0KPQmtCS0JjQiyDQnNCY0JvQntCoCivQkdCj0JrQktCY0Isg0JzQmNCb0J7QqAor0JHQo9Ca0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCj0JrQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQo9Ca0JLQmNCLINCc0JvQkNCU0JXQnQor0JHQo9Ca0JLQmNCLINCd0J7QktCY0KbQkAor0JHQo9Ca0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCj0JrQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CR0KPQmtCS0JjQiyDQodCe0KTQmNCI0JAKK9CR0KPQmtCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0KPQmtCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCj0JrQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQo9Ca0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQkdCj0JrQktCY0Isg0JLQm9CQ0JTQngor0JHQo9Cb0JDQmNCLINCg0JXQidCQCivQkdCj0JvQkNCI0JjQiyDQgtCj0KDQngor0JHQo9Cb0JDQiNCY0Isg0JTQkNCd0JjQptCQCivQkdCj0JvQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQo9Cb0JDQiNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JHQo9Cb0JDQiNCY0Isg0J3QldCU0JXQidCa0J4KK9CR0KPQm9CQ0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQm9CQ0JrQmNCLINCS0KPQmtCQ0KjQmNCdCivQkdCj0JvQkNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQkdCj0JvQkNCi0J7QktCY0Isg0JjQm9CY0IjQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCj0JvQkNCi0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0JHQo9Cb0JDQotCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQkdCj0JvQkNCi0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQnNCe0JzQmNCgCivQkdCj0JvQkNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCj0JvQkNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCj0JvQkNCi0J7QktCY0Isg0J3QntCS0JDQmgor0JHQo9Cb0JDQotCe0JLQmNCLINCf0JDQktCb0JUKK9CR0KPQm9CQ0KLQntCS0JjQiyDQn9CV0KDQngor0JHQo9Cb0JDQotCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQkdCj0JvQkNCi0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9CR0KPQm9CQ0KLQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQodCQ0JLQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCh0JvQkNCC0JDQndCQCivQkdCj0JvQkNCi0J7QktCY0Isg0KHQn9CQ0KHQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQktCe0IjQmNCdCivQkdCj0JvQkNCi0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQo9Cb0JDQotCe0JLQmNCLINCX0JvQkNCi0JjQiNCQCivQkdCj0JvQkNCi0J7QktCY0Isg0JfQntCg0JDQnQor0JHQo9Cb0JXQotCY0J3QkNCmINCc0JjQm9Ce0JLQkNCdCivQkdCj0JvQldCS0KHQmtCQINCS0JXQoNCQCivQkdCj0JvQmNCLINCo0KPQi9CeCivQkdCj0JvQmNCLINCQ0JTQmNCb0JAKK9CR0KPQm9CY0Isg0JDQndCi0JUKK9CR0KPQm9CY0Isg0JDQoNCY0KQKK9CR0KPQm9CY0Isg0JHQntCg0JjQoQor0JHQo9Cb0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQo9Cb0JjQiyDQlNCj0KjQkNCdCivQkdCj0JvQmNCLINCc0JDQoNCQCivQkdCj0JvQmNCLINCc0JDQoNCY0IjQkAor0JHQo9Cb0JjQiyDQnNCQ0KDQmNCd0JAKK9CR0KPQm9CY0Isg0J7Ql9Cg0JXQnQor0JHQo9Cb0JjQiyDQn9CV0KDQodCQCivQkdCj0JvQmNCLINCf0JXQotCQ0KAKK9CR0KPQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CR0KPQm9CY0Isg0KHQnNCY0InQkAor0JHQo9Cb0JjQiyDQodCi0JXQktCQ0J0KK9CR0KPQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQo9Cb0JjQmi3QmNCb0JXQkNCd0JAg0JTQntCg0JjQndCQCivQkdCj0Ikg0ILQo9Cg0JAKK9CR0KPQiSDQkdCe0KHQmNCb0IjQmtCQCivQkdCj0Ikg0JzQmNCb0JDQnQor0JHQo9CJ0KfQmNCaINCV0KPQk9CV0J0KK9CR0KPQidCn0JjQmiDQiNCe0JDQmtCY0JwKK9CR0KPQidCn0JjQmiDQnNCY0KXQkNCI0JvQngor0JHQo9CJ0KfQmNCaINCd0JjQmtCe0JvQkAor0JHQo9CJ0KfQmNCaINCf0JDQo9Cb0JjQndCQCivQkdCj0InQkNCaINCg0JDQotCa0J4KK9CR0KPQidCQ0J0g0JTQoNCQ0JPQo9Ci0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9CR0KPQidCQ0J0g0J/QldCi0JDQoAor0JHQo9CJ0JDQnSDQodCb0JDQktCY0KbQkAor0JHQo9CJ0JjQiyDQmNCb0JjQiNCQCivQkdCj0InQmNCLINCI0JXQm9CV0J3QkAor0JHQo9CJ0JjQiyDQiNCe0JLQkNCdCivQkdCj0InQmNCLINCJ0KPQkdCY0KbQkAor0JHQo9CJ0JjQiyDQnNCY0JvQkNCdCivQkdCj0InQmNCLINCc0JjQm9CVCivQkdCj0InQmNCLINCd0J7QktCQ0JoKK9CR0KPQidCY0Isg0J/QkNCS0J4KK9CR0KPQidCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KPQidCY0Isg0KHQldCa0KPQm9CQCivQkdCj0InQmNCLINCh0J3QldCW0JDQndCQCivQkdCj0InQmNCLINCh0KLQldCS0JAKK9CR0KPQidCY0Isg0JLQkNCh0J4KK9CR0KPQidCY0J0g0JHQoNCQ0J3QmtCeCivQkdCj0InQmNCdINCh0JvQkNCS0JrQngor0JHQo9CJ0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQkdCj0InQntCS0KfQmNCLINCh0KLQmNCf0JDQnQor0JHQo9CJ0KPQk9CY0Isg0KDQkNCU0J7QiNCVCivQkdCj0JvQntCS0JDQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KPQm9Ce0JLQmNCLINCY0KDQmNCd0JXQiAor0JHQo9Cb0KPQnCDQn9CV0KLQkNCgCivQkdCj0JvQo9CiINCQ0J3QgtCV0JvQmtCeCivQkdCj0JvQo9CiINCd0J7QktCY0KbQkAor0JHQo9Cc0JEg0JDQndCi0J7QnQor0JHQo9Cc0JHQkNCg0J7QodCa0Jgg0KDQkNCU0JAKK9CR0KPQnNCR0JjQiyDQnNCY0JvQkNCU0JjQnSDQlNCgCivQkdCj0JzQkdCY0Isg0KDQkNCU0JzQmNCb0JAKK9CR0KPQnNCR0JjQiyDQoNCQ0IjQmtCeCivQkdCj0JzQkdCY0Isg0JLQldCJ0JrQngor0JHQo9Cc0JHQmNCLINCS0JXQidCa0J4KK9CR0KPQndCn0JjQiyDQgtCe0KDQgtCVCivQkdCj0J3Qp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQndCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cd0KfQmNCLINCU0KDQkNCT0JDQnQor0JHQo9Cd0KfQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CR0KPQndCn0JjQiyDQnNCY0JvQkNCdCivQkdCj0J3QkNCIINCc0KPQpdCQ0JzQldCUCivQkdCj0J3QlNCQ0JvQldCh0JrQmCDQnNCY0JvQntCoCivQkdCj0J3QlNCQ0JvQniDQkdCg0JDQndCa0J4KK9CR0KPQndCU0JDQm9CeINCd0JXQkdCe0IjQqNCQCivQkdCj0J3QlNCQ0JvQniDQndCY0JrQntCb0JAKK9CR0KPQndCU0JDQm9CeINCh0JvQkNCS0JrQngor0JHQo9Cd0JTQkNCb0J4g0KHQm9Ce0JHQntCU0JDQnQor0JHQo9Cd0JTQkNCb0J4g0KHQm9Ce0JHQntCU0JDQnQor0JHQo9Cd0JTQmNCLINCQ0J3QotCj0J0KK9CR0KPQndCV0KLQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cd0JXQotCQINCc0JjQm9CQ0J0KK9CR0KPQndCV0KLQkCDQodCd0JXQltCQ0J3QkAor0JHQo9Cd0JXQotCQINCS0KPQmtCe0KHQkNCS0JAKK9CR0KPQndCY0Isg0JTQoNCQ0JPQkNCdCivQkdCj0J3QmNCLINCc0JjQm9CQ0J0KK9CR0KPQitCQ0KYg0JLQkNCh0J4KK9CR0KPQitCQ0KYg0JLQntCI0JjQodCb0JDQkgor0JHQo9CK0JXQktCn0JXQkiDQgtCe0KDQgtCVCivQkdCj0IrQldCS0KfQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0IrQldCS0KfQldCSINCh0KDQgtCQ0J0KK9CR0KPQitCV0JLQkNCn0JrQmCDQltCY0JLQntCI0JjQnQor0JHQo9CK0JXQktCQ0KfQmtCYINCR0KDQkNCd0JrQngor0JHQo9CK0JXQktCQ0KfQmtCYINCU0KDQkNCT0JjQitCQCivQkdCj0IrQldCS0JDQp9Ca0Jgg0IjQntCS0JDQndCa0JAKK9CR0KPQitCV0JLQkNCn0JrQmCDQidCj0JHQmNCm0JAKK9CR0KPQitCV0JLQkNCn0JrQmCDQnNCY0JvQldCd0JAKK9CR0KPQitCV0JLQkNCn0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQkdCj0IrQmNCaINCo0JDQndCU0J7QoAor0JHQo9CK0JjQmiDQlNCg0JDQk9CY0KbQkAor0JHQo9CK0JjQmiDQmNCS0JDQnQor0JHQo9CK0JjQmiDQiNCe0KHQmNCfCivQkdCj0IrQmNCaINCa0JDQoNCe0IkKK9CR0KPQitCY0Jog0JfQntCb0KLQkNCdCivQkdCj0IrQmNCaINCX0J7Qm9Ci0JDQnQor0JHQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQo9Cd0J7QktCY0Isg0JvQkNCX0JDQoAor0JHQo9Cd0KIg0JzQmNCI0J4KK9CR0KPQoNCn0JXQoCDQotCe0JzQmNCh0JvQkNCSCivQkdCj0KDQqNCY0Isg0KLQmNCd0JrQkAor0JHQo9Cg0JDQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cg0JDQmCDQkNCd0JTQoNCQ0KgKK9CR0KPQoNCQ0Jgg0JrQkNCg0J7QiQor0JHQo9Cg0JDQmCDQmtCQ0KLQmNCm0JAKK9CR0KPQoNCQ0Jgg0J/QldCi0JDQoAor0JHQo9Cg0JDQiNCYINCI0J7QodCY0J8KK9CR0KPQoNCQ0Iog0JHQldCb0JAg0JTQoCDQm9CV0JrQkNCgCivQkdCj0KDQkNCKINCV0J3QlNCg0JUKK9CR0KPQoNCQ0Iog0JzQkNCg0KLQkAor0JHQo9Cg0JDQiiDQndCQ0J3QlNCe0KAKK9CR0KPQoNCQ0Iog0KHQmNCU0J7QndCY0IjQkAor0JHQo9Cg0JDQitCYINCc0JDQoNCY0IjQkAor0JHQo9Cg0JDQitCYINCd0JDQndCU0J7QoAor0JHQo9Cg0JDQl9Ce0KAg0JTQoNCQ0JPQntCI0JAKK9CR0KPQoNCQ0JfQntCgINCX0JTQoNCQ0JLQmtCeCivQkdCj0KDQkdCQ0KUg0JPQldCg0KXQkNCg0JQKK9CR0KPQoNCR0JDQnSDQpNCY0JvQmNCfCivQkdCj0KDQlNCQINCc0JXQm9CY0J3QlNCQCivQkdCj0KDQlNCQINCh0KLQkNCd0JjQodCb0JDQkgor0JHQo9Cg0JXQktCY0Isg0JzQmNCb0JjQiwor0JHQo9Cg0JPQmNCLINCU0KDQkNCT0J7QiNCVCivQkdCj0KDQk9CY0Isg0IjQntCS0JDQnQor0JHQo9Cg0JPQmNCLINCf0JXQotCQ0KAKK9CR0KPQoNCT0JjQiNCQ0KjQldCSINCS0JXQodCV0JvQmNCdCivQkdCj0KDQmNCLINCC0J7QmtCeINCU0JjQn9CbINCY0J3Qkwor0JHQo9Cg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0KPQoNCY0Isg0JTQo9Co0JDQnSDQlNCgCivQkdCj0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCj0KDQmNCLINCk0KDQkNCK0JAKK9CR0KPQoNCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0KPQoNCY0Isg0JrQkNCi0JjQptCQCivQkdCj0KDQmNCLINCa0J7QodCi0JAKK9CR0KPQoNCY0Isg0JvQldCe0J3QntCg0JAKK9CR0KPQoNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQo9Cg0JjQiyDQndCQ0JTQkAor0JHQo9Cg0IjQkNCdINCC0J7QoNCC0JUKK9CR0KPQoNCI0JDQndCe0JLQodCa0Jgg0KHQotCe0IjQkNCdCivQkdCj0KDQmtCQINCV0JvQldCe0J3QntCg0JAg0JTQoAor0JHQo9Cg0JrQkCDQldCc0JjQm9CY0IjQkAor0JHQo9Cg0JrQkCDQldCg0JbQldCR0JXQogor0JHQo9Cg0JrQkCDQiNCe0JLQkNCdCivQkdCj0KDQmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9CR0KPQoNCa0JAg0J/QkNCS0JvQlQor0JHQo9Cg0JrQkCDQn9CV0KLQkNCgCivQkdCj0KDQmtCQINCh0J7QpNCY0IjQkAor0JHQo9Cg0JrQkCDQodCi0JXQktCQ0J0KK9CR0KPQoNCa0JAg0KHQotCV0JLQkNCdCivQkdCj0KDQmtCV0KDQoiDQldCU0JLQmNCdCivQkdCj0KDQmtCY0J0g0JbQmNCS0JDQnQor0JHQo9Cg0JrQmNCdINCC0J7QmtCQCivQkdCj0KDQm9CQ0Jog0J3QkNCi0JDQm9CY0IjQkAor0JHQo9Cg0JzQkNCI0JAg0J3QmNCa0J7Qm9CQCivQkdCj0KDQnNCj0I/QmNCI0JAg0JHQoNCQ0J3QmtCeCivQkdCj0KDQnNCj0I/QmNCI0JAg0JzQmNCb0JDQnQor0JHQo9Cg0JzQo9CP0JjQiNCQINCd0JjQmtCe0JvQkAor0JHQo9Cg0J3QkNCLINCk0JXQm9CY0JrQoQor0JHQo9Cg0J3QkNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCj0KDQndCQ0Isg0KHQotCV0JLQkNCdCivQkdCj0KDQndCQ0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQo9Cg0J3QntCSINCY0JLQkNCd0JAKK9CR0KPQoNCd0J7QkiDQmNCS0JDQnQor0JHQo9Cg0J3QntCSINCS0JXQodCV0JvQmNCd0JrQkAor0JHQo9Cg0J7QktCQ0KYg0J3QkNCU0JAKK9CR0KPQoNCh0JDQiyDQlNCQ0KDQmNCd0JrQkAor0JHQo9Cg0KHQkNCLINCU0KDQkNCT0J7QodCb0JDQktCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQkdCj0KDQodCQ0Isg0IjQntCS0JDQnQor0JHQo9Cg0KHQkNCLINCJ0KPQkdCe0JzQmNCgCivQkdCj0KDQodCQ0Isg0JzQmNCb0JDQndCa0JAKK9CR0KPQoNCh0JDQiyDQnNCY0JvQkNCdCivQkdCj0KDQodCQ0Isg0JzQmNCb0JjQptCQCivQkdCj0KDQodCQ0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0KPQoNCh0JDQiyDQnNCY0KDQmtCeCivQkdCj0KDQodCQ0Isg0J3QmNCa0J7Qm9CQCivQkdCj0KDQodCQ0Isg0J/QldCg0JAKK9CR0KPQoNCh0JDQiyDQn9CV0KDQodCQCivQkdCj0KDQodCQ0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQo9Cg0KHQkNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0KPQoNCh0JDQiyDQktCI0JXQmtCe0KHQm9CQ0JLQkAor0JHQo9Cg0KHQkNCLINCS0JvQkNCU0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CR0KPQoNCh0JjQiyDQodCi0JXQktCQ0J0KK9CR0KPQoNCh0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCj0KDQo9CoINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkdCj0KDQo9CoINCR0J7QqNCa0J4KK9CR0KPQoNCj0JzQj9CY0IjQkCDQoNCQ0JTQlQor0JHQo9Cg0JfQkNCdINCc0JjQoNCI0JDQndCQCivQkdCj0KDQl9CV0JvQmNCLINCc0JjQm9Ca0JAKK9CR0KPQoNCX0JXQm9CY0Isg0JfQm9CQ0KLQkAor0JHQo9Ch0JDQoNCn0JXQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CR0KPQodCQ0KDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JHQo9Ch0JjQiNCQINCJ0KPQkdCY0J3QmtCQCivQkdCj0KHQmNCI0JAg0JzQmNCb0JDQnQor0JHQo9Ch0J7QkiDQkNCb0JXQmtCh0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0JHQo9Ch0J7QkiDQmNCT0J7QoAor0JHQo9Ch0KPQm9CQ0I/QmNCLINCc0KPQodCi0JDQpNCQCivQkdCj0KLQkCDQm9CQ0JfQkNCgCivQkdCj0KLQkCDQktCe0IjQmNCh0JvQkNCSINCU0KAKK9CR0KPQotCQ0Kgg0KTQldCg0JXQndCmCivQkdCj0KLQldCgINCa0KHQldCd0JjQiNCQCivQkdCj0KLQldCg0JXQoCDQmNCo0KLQktCQ0J0KK9CR0KPQotCV0KDQldCgINCI0KPQm9CY0IjQkAor0JHQo9Ci0JXQoNCY0J0g0JTQldCo0JAKK9CR0KPQotCe0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQotCe0KAg0JXQndCU0KDQlQor0JHQo9Ci0J7QoCDQnNCY0KXQkNCI0JvQngor0JHQo9Ci0J7QoNCQ0KYg0IjQntCh0JjQnwor0JHQo9Ci0J7QoNCQ0KYg0JzQkNCg0JjQiNCQCivQkdCj0KLQntCg0JDQpiDQl9Ce0KDQkNCdCivQkdCj0KLQo9Cb0JjQiNCQINCR0KDQkNCd0JjQodCb0JDQkgor0JHQo9Ci0KPQoNCe0JLQmNCLINCg0JDQotCa0J4KK9CR0KPQotCj0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCj0JfQkCDQmNCg0JXQndCQCivQkdCj0JfQkCDQmtCe0KDQndCV0JvQmNCjCivQkdCj0JfQkCDQnNCY0KXQkNCJCivQkdCj0JfQkNCoINCo0JDQndCU0J7QoAor0JHQo9CX0JDQqCDQiNCe0KHQmNCfCivQkdCj0JfQkNCoINCI0J7QodCY0J8KK9CR0KPQl9CQ0Kgg0JvQkNCI0J7QqAor0JHQo9CX0JDQqCDQn9CQ0JLQkNCeCivQkdCj0JfQkNCoINCf0JDQktCb0JUKK9CR0KPQl9CQ0KjQmCDQiNCe0KHQmNCfCivQkdCj0JfQkNCo0Jgg0JzQmNCl0JDQiNCb0J4KK9CR0KPQl9CQ0I/QmNCLINCJ0JjQidCQ0J3QkAor0JHQo9CX0JDQj9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KPQl9CQ0I/QmNCI0JAg0J3QldCd0JDQlAor0JHQo9CX0JDQj9CY0IjQkCDQndCe0JLQkNCaCivQkdCj0JfQkNCJ0JrQniDQiNCj0KHQo9CkINCU0JjQn9CbINCY0J3Qkwor0JHQo9CX0JDQndCn0JjQiyDQiNCe0KHQmNCfCivQkdCj0JfQkNCd0KfQmNCLINCd0JDQlNCV0JbQlNCQCivQkdCj0JfQkNCd0KHQmtCYINCc0JjQqNCQCivQkdCj0JfQkNCg0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCj0JfQkNCg0JXQktCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0KPQl9CQ0KDQldCS0JjQiyDQoNCj0JbQkAor0JHQo9CX0JDQoNCe0JIg0JbQmNCS0JDQnQor0JHQo9CX0JDQoNCe0JIg0IjQntCS0JDQnQor0JHQo9CX0JDQoNCe0JIg0JfQntCg0JAKK9CR0KPQl9CQ0KDQodCa0Jgg0ILQntCg0ILQlQor0JHQo9CX0JPQniDQiNCQ0J3QntCoCivQkdCj0JfQntCT0JDQiiDQnNCQ0KDQmNCI0JAKK9Cm0JDQptCa0J4g0JzQkNCg0JjQiNCQCivQptCQ0IjQmNCLINCc0JjQm9Ce0KgKK9Cm0JDQiNCd0JXQoCDQiNCV0JvQldCd0JAKK9Cm0JDQiNCd0JXQoCDQidCj0JHQmNCm0JAKK9Cm0JDQiNCd0JXQoCDQodCi0JXQktCQ0J0KK9Cm0JDQiNCd0JXQoCDQodCi0JXQktCQCivQptCQ0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQptCQ0JrQmNCLINCT0J7QoNCU0JDQndCQCivQptCQ0JrQmNCLINCI0JXQm9CV0J3QmtCeCivQptCQ0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cm0JDQmtCY0Isg0J/QldCi0JDQoAor0KbQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cm0JDQndCU0JjQoCDQpNCg0JDQitCQCivQptCQ0J3QmNCLINCJ0JjQidCQ0J3QkAor0KbQkNCd0JjQiyDQktCV0JvQmNCc0JjQoAor0KbQkNCfINCC0KPQoNCQCivQptCQ0J8g0JHQntCo0JrQngor0KbQkNCfINCI0J7QkNCa0JjQnAor0KbQkNCfINCI0J7QktCQ0J0KK9Cm0JDQnyDQndCV0J3QkNCUCivQptCQ0J8g0J3QldCd0JDQlAor0KbQkNCfINCg0JDQlNCe0IjQmtCQCivQptCQ0J8g0KLQkNCc0JDQoNCQCivQptCQ0J/QkNCgLdCI0JDQndCa0J7QktCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KbQkNCf0JDQoCDQiNCQ0J3QntCoCivQptCQ0J/QkNCgINCI0J7QktCQ0J0KK9Cm0JDQn9CQ0KAg0JzQkNCg0JjQiNCQCivQptCQ0J/QkNCgINCc0JDQoNCY0IjQkAor0KbQkNCf0JjQmiDQiNCe0KHQmNCfCivQptCQ0J/QmNCaINCJ0KPQlNCV0JLQmNCiCivQptCQ0KAg0JzQkNCg0JjQiNCQCivQptCQ0KDQkNCdINCR0J7QqNCa0J4KK9Cm0JDQoNCQ0J0g0JPQldCe0KDQk9CVCivQptCQ0KDQkNCdINCf0JXQoNCh0JAKK9Cm0JDQoNCQ0J0g0J/QldCi0JDQoAor0KbQkNCg0JDQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQptCQ0KDQldCS0JjQiyDQltCY0JLQkNCdCivQptCQ0KDQldCS0JjQiyDQltCY0JLQmtCQCivQptCQ0KDQldCS0JjQiyDQgtCe0KDQgtCVCivQptCQ0KDQldCS0JjQiyDQlNCj0KjQkNCdCivQptCQ0KDQldCS0JjQiyDQldCh0KLQldCgCivQptCQ0KDQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cm0JDQoNCV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQptCQ0KDQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Cm0JDQoNCV0JLQmNCLINCc0JjQm9CVCivQptCQ0KDQldCS0JjQiyDQndCQ0JTQkAor0KbQkNCg0JXQktCY0Isg0J/QldCi0JDQoAor0KbQkNCg0JXQktCY0Isg0KHQkNCS0JAKK9Cm0JDQoNCV0JLQmNCLINCh0JvQkNCS0JrQngor0KbQkNCg0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQptCQ0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cm0JDQoNCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cm0JDQoNCY0KfQmNCLINCh0JvQkNCS0JrQngor0KbQkNCg0JjQiyDQkNCd0JTQoNCY0IjQkAor0KbQkNCg0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JDQoNCY0Isg0JPQntCI0JrQngor0KbQkNCg0JjQiyDQm9CQ0JfQkNCgCivQptCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0KbQkNCg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KbQkNCg0JjQiyDQodCb0JDQktCa0J4g0JTQoCDQn9Cg0J7QpAor0KbQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Cm0JDQoNCY0IvQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KbQkNCg0J4g0JPQntCg0JDQnQor0KbQkNCi0JjQiyDQm9CQ0JfQkNCgCivQptCQ0JLQndCY0Isg0JzQkNCg0KLQkAor0KbQkNCS0J3QmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cm0JDQl9CY0J0g0JTQoNCQ0JPQkNCdCivQptCVINCf0JDQktCb0JUKK9Cm0JXQptCV0Jsg0JzQkNCg0JjQiNCQCivQptCV0JPQm9CV0JTQmCDQgtCj0KDQngor0KbQldCl0J7Qm9CQINCk0JXQoNCV0J3Qpgor0KbQldCa0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQptCV0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cm0JXQmtCY0Isg0JHQntCg0JrQngor0KbQldCa0JjQiyDQiNCj0JvQmtCQCivQptCV0JrQmNCLINCf0JXQotCQ0KAKK9Cm0JXQmtCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cm0JXQmtCj0Kgg0JXQktCQCivQptCV0JvQmNCLINCR0KDQkNCd0JrQngor0KbQldCb0JjQnSDQnNCY0JvQkNCdCivQptCV0JvQmNCdINCc0JjQm9CQ0J0KK9Cm0JXQndCQ0Igg0KLQkNCl0JjQoAor0KbQldCd0JTQldCgINCQ0J3Qk9CV0JvQmNCd0JAKK9Cm0JXQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cm0JXQnyDQodCi0JXQktCQ0J0KK9Cm0JXQn9CkINCh0KLQldCS0JDQnQor0KbQldCg0JPQntCbINCS0JjQlNCe0KHQkNCS0JAKK9Cm0JXQoNCY0Isg0JTQkNCd0JjQptCQCivQptCV0KDQmNCLINCc0JXQpdCc0JXQlAor0KbQldCg0J3QkCDQoNCj0JTQntCb0KQKK9Cm0JXQoNCe0JLQkNCmINCX0J7QoNCa0JAKK9Cm0JXQoNCe0JLQmNCLINCR0JDQotCg0JjQiwor0KbQldCg0J7QktCY0Isg0JHQntCT0JTQkNCdCivQptCV0KDQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cm0JXQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQptCV0KDQntCS0JjQiyDQmNCa0J7QndCY0IjQkAor0KbQldCg0J7QktCY0Isg0InQo9CR0JjQktCe0IjQlQor0KbQldCg0J7QktCY0Isg0JzQmNCo0J4KK9Cm0JXQoNCe0JLQmNCLINCd0JXQndCQ0JQKK9Cm0JXQoNCe0JLQmNCLINCd0J7QktCQ0JoKK9Cm0JXQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cm0JXQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cm0JXQoNCe0JLQmNCLINCh0KDQldCi0JXQnQor0KbQldCg0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KbQldCg0J7QktCY0Isg0KPQoNCe0KgKK9Cm0JXQoNCe0JLQodCa0Jgg0JTQkNCd0JjQiNCV0JsKK9Cm0JXQodCd0JDQmiDQiNCQ0J3QmtCeCivQptCV0KHQndCQ0Jog0J/QkNCS0JvQlQor0KbQldCh0J3QkNCaINCX0JvQkNCi0JrQngor0KbQldCi0JXQitCYINCI0J7QktCQ0J0KK9Cm0JXQotCY0J3QkCDQiNCe0JLQkNCdCivQptCV0KLQmNCd0JAg0InQmNCJ0JDQndCQCivQptCV0JLQpiDQpNCg0JDQitCQCivQptCV0JLQpiDQodCe0IrQkAor0KbQmNCR0KDQmNCLINCi0J7QlNCe0KAKK9Cm0JjQkdCj0JvQkCDQgtCj0KDQkAor0KbQmNCR0KPQm9CQINCR0JXQm9CQCivQptCY0JHQo9Cb0JAg0IjQkNCd0JrQngor0KbQmNCR0KPQm9CQINCI0J7QktCQ0J0KK9Cm0JjQkdCj0JvQkCDQiNCe0JLQkNCdCivQptCY0JHQo9Cb0JAg0JzQkNCg0IjQldCd0JrQkAor0KbQmNCR0KPQm9CQINCc0JjQqNCQCivQptCY0JHQo9Cb0JAg0J/QldCg0JAKK9Cm0JjQptCV0KDQmCDQpNCV0KDQldCd0KYKK9Cm0JjQptCV0KDQmCDQmtCQ0KDQntCJCivQptCY0KbQldCg0Jgg0JvQkNCh0JvQngor0KbQmNCm0JXQoNCYINCc0JDQotCY0JvQlNCQCivQptCY0KbQldCg0Jgg0J/QldCg0JAKK9Cm0JjQptCV0KDQmCDQktCY0J3QmtCeCivQptCY0KbQmtCQINCo0IvQldCk0JDQnQor0KbQmNCm0JrQkCDQiNCQ0J0KK9Cm0JjQptCc0JjQmyDQkdCe0JbQmNCU0JDQoAor0KbQmNCm0JzQmNCbINCR0KDQkNCd0JrQngor0KbQmNCm0JzQmNCbINCa0KDQodCi0J4KK9Cm0JjQptCc0JjQmyDQnNCQ0KDQmNCI0JAKK9Cm0JjQptCc0JjQmyDQnNCQ0KDQmtCeCivQptCY0KbQnNCY0Jsg0JzQmNCb0JDQnQor0KbQmNCm0JzQmNCbINCh0KLQntCI0JDQnQor0KbQmNCm0JzQmNCbINCi0JDQotCI0JDQndCQCivQptCY0KbQnNCY0Jsg0JfQntCg0JDQnQor0KbQmNCm0JzQmNCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQptCY0KbQnNCY0JvQntCS0JjQiyDQl9Ce0KDQmtCQCivQptCY0KbQniDQlNCj0KjQkNCdCivQptCY0KbQktCQ0KDQmNCdINCJ0KPQkdCe0JzQmNCgCivQptCY0KTQoNCY0Isg0JPQkNCb0JjQkQor0KbQmNCT0JDQnSDQkNCd0KLQo9CdCivQptCY0JPQkNCdINCY0JLQkNCdCivQptCY0JPQkNCKINCI0J7QodCY0J8KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQlNCQ0J3QlQor0KbQmNCT0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KbQmNCT0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0KbQmNCT0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQodCi0JXQktCeCivQptCY0JPQmNCLINCY0JLQkNCdCivQptCY0JPQm9CV0KAg0KHQndCV0JbQkNCd0JAKK9Cm0JjQk9CJ0JXQptCa0Jgg0KTQoNCQ0IrQkAor0KbQmNCT0InQldCm0JrQmCDQktCV0KDQkAor0KbQmNCa0J7QoNCQINCW0KPQltCQ0J3QkAor0KbQmNCa0J7QotCQINCW0JXQidCa0J4KK9Cm0JjQmtCe0KLQkCDQntCb0JPQkAor0KbQmNCa0J7QotCQINCh0JvQkNCS0JrQngor0KbQmNCa0KPQqNCQINCI0J7QktCQ0J0KK9Cm0JjQmtCj0KjQkCDQl9Ce0KDQkNCdCivQptCY0JzQkdCQ0Jsg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JjQnNCR0JDQmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQmNCc0JHQkNCbINCi0JjQkdCe0KAKK9Cm0JjQnNCR0JDQmyDQktCV0KDQmNCm0JAKK9Cm0JjQnNCR0JDQidCV0JLQmNCLINCX0JvQkNCi0JDQndCQCivQptCY0JzQldCg0JzQkNCdINCb0JDQlNCY0KHQm9CQ0JIKK9Cm0JjQnNCV0KDQnNCQ0J0g0KHQnNCY0InQkAor0KbQmNCd0KbQntCS0JjQiyDQltCY0JLQmtCQCivQptCY0J3QlNCV0KAg0JLQmNCU0JAKK9Cm0JjQndCU0KDQmNCLINCC0J7QoNCC0JUKK9Cm0JjQndCU0KDQmNCLINCV0KDQltCV0JHQldCiCivQptCY0J3QlNCg0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Cm0JjQndCT0JDQoNCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQptCY0J3Qk9CV0JvQmCDQnNCY0JvQldCd0JAKK9Cm0JjQndCT0Jgg0JrQkNCg0JvQngor0KbQmNCd0JrQm9CV0KAg0IjQldCb0JjQodCQ0JLQldCi0JAg0JTQmNCf0Jsg0JjQndCTCivQptCY0J3QmtCb0JXQoCDQiNCj0JvQmNCI0JUKK9Cm0JjQndCa0JvQldCgINCa0JDQm9Cc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cm0JjQndCa0JvQldCgINCa0JDQm9Cc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cm0JjQndCa0JvQldCgINCa0JDQm9Cc0JDQnQor0KbQmNCd0JrQm9CV0KAg0JzQkNCT0JTQntCb0J3QkAor0KbQmNCd0JrQntCm0JrQmCDQgtCe0KDQgtCVCivQptCY0J3QmtCe0KbQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Cm0JjQn9Cg0KPQqCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KbQmNCg0JHQo9ChINCc0JDQoNCY0IjQkAor0KbQmNCg0JPQldCgINCU0KPQqNCQ0J3QmtCQCivQptCY0KDQntCaINCo0JDQndCU0J7QoAor0KbQmNCi0JrQntCS0JjQiyDQmNCS0JrQkAor0KbQmNCi0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQptCY0JLQoNCY0Isg0JzQmNCb0JrQkAor0KbQnNCY0InQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cm0J7QptCV0Jog0KjQotCV0KTQkNCd0JjQiNCQCivQptCe0KbQldCaINCY0JzQoNCVCivQptCe0KbQldCaINCI0J7QodCY0J8KK9Cm0J7QptCV0Jog0KHQotCV0JLQkNCdCivQptCe0KbQmNCdINCc0JjQoNCQCivQptCe0KbQniDQktCQ0KXQlNCV0KLQkAor0KbQntCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0KbQntCb0JjQiyDQkdCe0JPQntCh0JDQkgor0KbQntCb0JjQiyDQpNCg0JDQitCQCivQptCe0JvQmNCLINCI0J7QodCY0J8KK9Cm0J7Qm9CY0Isg0JrQkNCi0JjQptCQCivQptCe0JvQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cm0J7Qm9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KbQntCd0JjQiyDQlNCg0JDQk9CY0IrQkAor0KbQntCd0JjQiyDQiNCQ0J3QmtCeINCc0KAg0JjQndCTCivQptCe0J3QmNCLINCc0JjQntCU0KDQkNCTCivQptCe0J/QmtCe0JIg0JbQldCJ0JrQngor0KbQoNCV0J/QmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cm0KDQldCf0KPQm9CY0Isg0JLQmNCU0J7QodCQ0JLQkAor0KbQoNCV0J/Qo9CJ0JAg0KLQntCU0J7QoAor0KbQoNCV0JLQkNCgINCR0J7Qk9CU0JDQnQor0KbQoNCV0JLQkNCgINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0KbQoNCV0JLQkNCgINCh0JjQnNCQCivQptCg0JXQktCQ0KAg0KHQm9CQ0JLQmtCeCivQptCg0JrQktCV0IrQkNCa0J7QkiDQlNCQ0J3QmNCm0JAKK9Cm0KDQmtCS0JXQitCQ0JrQntCSINCU0KPQqNCQ0J3QmtCQCivQptCg0JrQktCV0IrQkNCa0J7QkiDQodCj0JvQotCQ0J3QmNCI0JAKK9Cm0KDQndCn0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cm0KDQndCn0JXQktCY0Isg0JzQmNCg0JrQngor0KbQoNCd0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQptCg0J3Qp9CV0JLQmNCLINCd0JXQlNCV0InQmtCQCivQptCg0J3Qp9CV0JLQmNCLINCh0JvQkNCS0JrQngor0KbQoNCd0KfQldCS0JjQiyDQktCV0KDQkAor0KbQoNCd0KfQldCS0JjQiyDQktCb0JDQlNCeCivQptCg0J3QkNCU0JDQmiDQktCb0JDQotCa0J4KK9Cm0KDQndCYINCS0JXQoNCY0KbQkAor0KbQoNCd0Jgg0JfQntCg0JjQptCQCivQptCg0J3QmNCLINCR0KDQkNCd0JrQkAor0KbQoNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0KDQndCY0Isg0JPQntCg0JDQnQor0KbQoNCd0JjQiyDQnNCQ0KDQmtCeCivQptCg0J3QmNCLINCc0JjQm9CQ0J0KK9Cm0KDQndCY0Isg0JzQmNCb0KPQotCY0J0KK9Cm0KDQndCY0Isg0J3QmNCa0J7Qm9CQCivQptCg0J3QmNCLINCe0KHQotCe0IjQkAor0KbQoNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0KbQoNCd0JjQiyDQodCe0KTQmNCI0JAKK9Cm0KDQndCY0Isg0KPQk9CJ0JXQqNCQCivQptCg0J3QmNCLINCS0JDQodCQCivQptCg0J3QmNCLINCS0JXQoNCQCivQptCg0IrQkNCmINCc0JjQm9CV0J3QkAor0KbQoNCK0JDQmiDQltCY0JLQkNCd0JrQkAor0KbQoNCK0JDQmtCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQptCg0IrQkNCd0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KbQoNCK0JDQndCY0J0g0JfQkNCT0J7QoNCa0JAKK9Cm0KDQitCQ0J3QodCa0Jgt0KfQldCd0JPQldCg0Jgg0JrQoNCY0KHQotCY0J3QkAor0KbQoNCK0JDQndCh0JrQmCDQltCQ0KDQmtCeCivQptCg0IrQkNCd0KHQmtCYINCC0J7QmtCQCivQptCg0IrQkNCd0KHQmtCYINCR0KPQlNCY0JzQmtCQCivQptCg0IrQkNCd0KHQmtCYINCY0JLQkNCdCivQptCg0IrQkNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0KbQoNCK0JDQndCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Cm0KDQitCQ0J3QodCa0Jgg0JrQo9CX0JzQkNCdCivQptCg0IrQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9Cm0KDQitCQ0J3QodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Cm0KDQitCQ0J3QodCa0Jgg0KHQkNCK0JAKK9Cm0KDQitCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQptCg0IrQkNCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cm0KDQitCQ0J3QodCa0Jgg0JfQntCg0JDQnQor0KbQoNCK0JDQndCh0JrQmCDQl9Ce0KDQkNCdCivQptCg0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KbQoNCd0JrQntCS0JjQiy3QodCQ0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQoNCd0JrQntCS0JjQiyDQl9Cb0JDQotCQCivQptCg0J3QntCR0JDQoNCQ0KYg0JTQo9Co0JDQnQor0KbQoNCd0J7QkdCQ0KDQkNCmINCI0J7QktCQ0J0KK9Cm0KDQndCe0JHQoNCK0JAg0JzQmNCb0JDQnQor0KbQoNCd0J7QkdCg0IrQkCDQnNCY0KDQiNCQ0J3QkAor0KbQoNCd0J7QkdCg0IrQkCDQn9CV0KLQkNCgCivQptCg0J3QntCT0JvQkNCS0JDQpiDQnNCY0KXQkNCI0JvQngor0KbQoNCd0J7Qk9Cb0JDQktCQ0KYg0KDQkNCU0J7QodCb0JDQkgor0KbQoNCd0J7Qk9Ce0KDQp9CV0JLQmNCLINCI0JXQm9CY0KbQkAor0KbQoNCd0J7Qk9Ce0KDQkNCmINCC0J7QmtCeCivQptCg0J3QntCT0J7QoNCQ0KYg0JHQntCg0JjQqNCQCivQptCg0J3QntCT0J7QoNCQ0KYg0JHQntCh0JjQidCa0JAKK9Cm0KDQndCe0JPQntCg0JDQpiDQlNCg0JDQk9CQ0J0KK9Cm0KDQndCe0JPQntCg0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQptCg0J3QntCT0J7QoNCQ0KYg0JTQo9Co0JDQnQor0KbQoNCd0J7Qk9Ce0KDQkNCmINCc0JjQm9CQ0J0KK9Cm0KDQndCe0JPQntCg0JDQpiDQnNCY0JvQmtCQCivQptCg0J3QntCT0J7QoNCQ0KYg0JzQmNCb0J7QodCQ0JIKK9Cm0KDQndCe0JPQntCg0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQptCg0J3QntCT0J7QoNCQ0KYg0J/QkNCS0JvQlQor0KbQoNCd0J7Qk9Ce0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cm0KDQndCe0JPQntCg0JDQpiDQodCS0JXQotCb0JDQndCQCivQptCg0J3QntCT0J7QoNCQ0KYg0JLQldCb0JjQnNCY0KAg0JTQoAor0KbQoNCd0J7Qk9Ce0KDQkNCmINCX0JTQoNCQ0JLQmtCeCivQptCg0J3QntCT0J7QoNCQ0KYg0JfQntCg0JjQptCQCivQptCg0J3QntCI0JAg0JDQndCi0JUKK9Cm0KDQndCe0IjQkCDQodCb0JDQktCY0KbQkAor0KbQoNCd0J7QiNCQ0KfQmtCYINCR0J7Qk9CU0JDQnQor0KbQoNCd0J7QiNCQ0KfQmtCYINCU0JDQndCY0KbQkCDQlNCgCivQptCg0J3QntCI0JDQp9Ca0Jgg0JTQkNCd0JjQm9CeCivQptCg0J3QntCI0JDQp9Ca0Jgg0JTQoNCQ0JPQkNCdCivQptCg0J3QntCI0JDQp9Ca0Jgg0JTQoNCQ0JPQntCc0JjQoAor0KbQoNCd0J7QiNCQ0KfQmtCYINCT0J7QoNCU0JDQndCQCivQptCg0J3QntCI0JDQp9Ca0Jgg0IjQntCS0JDQnQor0KbQoNCd0J7QiNCQ0KfQmtCYINCa0JDQotCY0KbQkAor0KbQoNCd0J7QiNCQ0KfQmtCYINCc0JjQm9CV0J3QkCDQlNCgCivQptCg0J3QntCI0JDQp9Ca0Jgg0JzQmNCb0J7QqAor0KbQoNCd0J7QiNCQ0KfQmtCYINCc0JvQkNCU0JXQnQor0KbQoNCd0J7QiNCQ0KfQmtCYINCe0JHQoNCQ0JQKK9Cm0KDQndCe0IjQkNCn0JrQmCDQntCR0KDQkNCUCivQptCg0J3QntCI0JDQp9Ca0Jgg0KDQkNCU0JzQmNCb0JAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQodCe0KTQmNCI0JAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQptCg0J3QntCI0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQptCg0J3QntCa0KDQkNCaINCI0J7QktCQ0J0KK9Cm0KDQndCe0JrQoNCQ0Jog0JzQmNCb0J7QqAor0KbQoNCd0J7QmtCg0JDQmiDQodCi0JXQktCQ0J0KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQm9Cj0JrQkAor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQptCg0J3QntCc0KPQoiDQnNCY0KXQkNCI0JvQngor0KbQoNCS0JXQndCYINCW0JDQoNCa0J4KK9Cm0KDQktCV0J3QmCDQkNCd0JAKK9Cm0KDQktCV0J3QmCDQkdCY0KHQldCg0JrQkAor0KbQoNCS0JXQndCYINCU0KDQkNCT0JDQnQor0KbQoNCS0JXQndCYINCc0JDQoNCa0J4KK9Cm0KDQktCV0J3QmCDQnNCY0JvQkNCdCivQptCg0JLQldCd0Jgg0JzQmNCb0JXQndCa0J4KK9Cm0KDQktCV0J3QmCDQnNCY0J7QnNCY0KAKK9Cm0KDQktCV0J3QmCDQodCY0JzQkAor0KbQoNCS0JXQndCYINCh0KLQldCS0JDQnQor0KbQoNCS0JXQndCYINCh0KLQldCS0JDQnQor0KbQoNCS0JXQndCa0J4g0IjQkNCd0JrQngor0KbQoNCS0JXQndCa0J4g0JzQmNCb0JDQnQor0KbQoNCS0JXQndCa0J4g0KDQkNCU0J7QnNCY0KAKK9Cm0KDQktCV0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0KbQoNCS0JXQndCa0J7QkiDQnNCY0JvQntCh0JDQktCQCivQptCg0JLQldCd0JrQntCSINCf0JXQotCQ0KAKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCC0KPQoNCC0JjQptCQCivQptCg0JLQldCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQptCg0JLQldCd0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0KbQoNCS0JXQndCa0J7QktCY0Isg0KHQmNCd0JjQqNCQINCU0KAKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQptCj0KbQkNCaINCc0JjQoNCI0JDQndCQCivQptCj0KbQkNCaINCg0JDQpdCY0JwKK9Cm0KPQptCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0KPQptCY0Isg0JHQntCg0JjQodCb0JDQkgor0KbQo9Cm0JjQiyDQk9CY0J3QkAor0KbQo9Cm0JjQiyDQiNCV0JvQmtCQCivQptCj0KbQmNCLINCJ0JjQidCQ0J3QkAor0KbQo9Cm0JjQiyDQodCi0JDQndCQCivQptCj0KbQmNCLINCh0KLQkNCd0J7QiNCb0J4KK9Cm0KPQptCY0Isg0JLQldCg0JAKK9Cm0KPQptCY0Isg0JLQldCh0J3QkAor0KbQo9Cm0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQptCj0KbQntCS0JjQiyDQoNCQ0KTQldCiCivQptCj0JPQm9CYINCI0J7QktCQ0J0KK9Cm0KPQmtCY0Isg0KDQkNCU0JAKK9Cm0KPQmtCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KbQo9Ca0JjQiyDQodCS0JXQotCe0JfQkNCgCivQptCj0IrQkNCaINCc0JjQm9Cj0KLQmNCdCivQptCj0J/QkNCLINCh0JLQldCi0J7QnNCY0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cm0KPQn9CQ0KDQmNCLINCi0J7QnNCQCivQptCj0KDQkNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KbQktCV0IjQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9Cm0JLQldCI0JDQndCe0JIg0J3QldCR0J7QiNCo0JAKK9Cm0JLQldCI0JDQndCe0JIg0J/QoNCV0JTQoNCQ0JMKK9Cm0JLQldCI0JDQndCe0JIg0JLQldCb0JjQkdCe0KAKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KbQktCV0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cm0JLQldCI0JjQiyDQp9CV0JTQntCc0JjQoAor0KbQktCV0IjQmNCLINCW0JDQoNCa0J4KK9Cm0JLQldCI0JjQiyDQltCY0JLQntCI0JjQnQor0KbQktCV0IjQmNCLINCC0J7QoNCC0JUg0JTQoAor0KbQktCV0IjQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cm0JLQldCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQptCS0JXQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JLQldCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQktCV0IjQmNCLINCR0J7QltCY0JTQkNCgCivQptCS0JXQiNCY0Isg0JHQntCg0JjQktCe0IgKK9Cm0JLQldCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cm0JLQldCI0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQptCS0JXQiNCY0Isg0JjQk9CK0JDQogor0KbQktCV0IjQmNCLINCY0JLQkNCdCivQptCS0JXQiNCY0Isg0IjQldCb0JXQndCQCivQptCS0JXQiNCY0Isg0JrQkNCi0JjQptCQCivQptCS0JXQiNCY0Isg0JvQkNCX0JDQoAor0KbQktCV0IjQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQldCI0JjQiyDQnNCY0JvQkNCdCivQptCS0JXQiNCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cm0JLQldCI0JjQiyDQnNCY0JvQntCoCivQptCS0JXQiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0JLQldCI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KbQktCV0IjQmNCLINCd0JDQlNCV0JbQlNCQCivQptCS0JXQiNCY0Isg0J3QldCU0JXQidCa0JAKK9Cm0JLQldCI0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQptCS0JXQiNCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQiNCY0Isg0J7Qm9CT0JAKK9Cm0JLQldCI0JjQiyDQn9CQ0JLQm9CVCivQptCS0JXQiNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KbQktCV0IjQmNCLINCg0JDQlNCe0JLQkNCdCivQptCS0JXQiNCY0Isg0KDQo9CW0JjQptCQCivQptCS0JXQiNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KbQktCV0IjQmNCLINCh0KLQldCS0JDQnQor0KbQktCV0IjQmNCLINCh0KLQldCS0JDQnQor0KbQktCV0IjQmNCLINCS0JvQkNCU0JDQnQor0KbQktCV0IjQmNCLINCX0JDQk9Ce0KDQmtCQCivQptCS0JXQiNCY0J0g0JHQntCW0JAKK9Cm0JLQldCI0JjQnSDQkdCe0IjQkNCd0JAKK9Cm0JLQldCI0JjQnSDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0KbQktCV0IjQmNCdINCc0JDQoNCY0IjQkAor0KbQktCV0IjQmNCdINCc0JjQm9CQ0J0KK9Cm0JLQldCI0JjQnSDQnNCY0JvQntCoCivQptCS0JXQiNCY0J0g0JzQmNCg0IjQkNCd0JAKK9Cm0JLQldCI0JjQnSDQndCe0JLQkNCaCivQptCS0JXQiNCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KbQktCV0IjQmNCdINCi0KDQmNCS0JAKK9Cm0JLQldCa0JjQiyDQnNCY0JvQldCi0JAKK9Cm0JLQldCa0JjQiyDQktCe0IjQmNCdCivQptCS0JXQmtCY0Isg0JfQm9CQ0KLQmNCm0JAKK9Cm0JLQldCg0JTQldCJINCI0JDQndCa0J4KK9Cm0JLQldCg0JTQldCJINCg0KPQltCQCivQptCS0JXQoNCK0JDQmiDQiNCV0J3QlQor0KbQktCV0KLQkNCd0J7QktCY0Isg0JDQndCY0KLQkAor0KbQktCV0KLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQptCS0JXQotCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cm0JLQldCi0JDQndCe0JLQmNCLINCI0JXQoNCc0JjQndCQINCU0KAg0JvQldCa0JDQoAor0KbQktCV0KLQkNCd0J7QktCY0Isg0JzQkNCT0JTQntCb0J3QkAor0KbQktCV0KLQkNCd0J7QktCY0Isg0KDQkNCU0JjQptCQCivQptCS0JXQotCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQptCS0JXQotCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQptCS0JXQotCQ0J3QntCS0JjQiyDQktCV0InQkAor0KbQktCV0KLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KbQktCV0KLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KbQktCV0KLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KbQktCV0KLQkNCd0J7QktCh0JrQmCDQnNCQ0J3QntCI0JvQngor0KbQktCV0KLQkNCd0J7QktCh0JrQmCDQnNCY0JvQlQor0KbQktCV0KLQmNCn0JDQndCY0J0g0InQo9CR0JjQptCQCivQptCS0JXQotCY0KfQkNCd0JjQnSDQnNCY0JvQmtCQCivQptCS0JXQotCY0KfQkNCd0JjQnSDQktCV0KHQndCQCivQptCS0JXQotCY0KfQkNCd0JjQnSDQl9Ce0KDQkNCdCivQptCS0JXQotCY0Isg0JHQntCo0JrQngor0KbQktCV0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cm0JLQldCi0JjQiyDQm9CQ0JfQkNCgCivQptCS0JXQotCY0Isg0JvQkNCX0J4KK9Cm0JLQldCi0JjQiyDQidCj0JHQmNCm0JAKK9Cm0JLQldCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cm0JLQldCi0JjQiyDQn9CV0KLQkNCgCivQptCS0JXQotCY0Isg0KHQm9CQ0JLQmtCeCivQptCS0JXQotCY0Isg0KHQotCQ0J3QmtCeCivQptCS0JXQotCY0IvQkNCd0JjQnSDQkdCe0KjQmtCeCivQptCS0JXQotCY0IvQkNCd0JjQnSDQkdCg0JDQndCa0J4KK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCU0JDQndCVCivQptCS0JXQotCY0IvQkNCd0JjQnSDQlNCQ0J3QmNCm0JAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCU0KDQkNCT0J7QnNCY0KAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCY0JvQmNCI0JAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCY0KDQldCd0JAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCc0JjQm9Ce0KgKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCc0JjQm9Ce0KDQkNCUCivQptCS0JXQotCY0IvQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQptCS0JXQotCY0IvQkNCd0JjQnSDQodCd0JXQltCQ0J3QkAor0KbQktCV0KLQmNCL0JDQndCY0J0g0JfQntCg0JDQnQor0KbQktCV0KLQmNCd0JjQiyDQnNCQ0KDQmtCeCivQptCS0JXQotCY0J3QmNCLINCc0JDQotCY0IjQkAor0KbQktCV0KLQmNCK0JDQndCY0J0g0KLQntCc0JjQodCb0JDQkgor0KbQktCV0KLQmNCd0J7QkiDQodCQ0JLQkAor0KbQktCV0KLQmNCd0J7QktCY0Isg0JDQndCa0JAKK9Cm0JLQldCi0JjQndCe0JLQmNCLINCR0KDQkNCd0JAKK9Cm0JLQldCi0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KbQktCV0KLQmNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQptCS0JXQotCY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQptCS0JXQotCY0J3QntCS0JjQiyDQmNCS0JDQndCa0J4KK9Cm0JLQldCi0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQldCi0JjQndCe0JLQmNCLINCh0JjQnNCeCivQptCS0JXQotCY0J3QntCS0JjQiyDQktCV0KDQkAor0KbQktCV0KLQmNCd0J7QktCY0Isg0JfQntCg0JAKK9Cm0JLQldCi0JrQntCSINCI0J7QktCQ0J0KK9Cm0JLQldCi0JrQntCSINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQptCS0JXQotCa0J7QkiDQoNCQ0JTQntCI0JUKK9Cm0JLQldCi0JrQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQptCS0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0KbQktCV0KLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cm0JLQldCi0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQktCV0KLQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQptCS0JXQotCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQkNCd0JrQkAor0KbQktCV0KLQmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCR0J7QoNCQCivQptCS0JXQotCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KbQktCV0KLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQptCS0JXQotCa0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCc0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQptCS0JXQotCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiy3Qk9Cb0JDQlNCY0Isg0KHQnNCY0InQkAor0KbQktCV0KLQmtCe0JLQmNCLINCT0KDQntCX0JTQkAor0KbQktCV0KLQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCV0JvQmtCQCivQptCS0JXQotCa0J7QktCY0Isg0IjQntCS0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0JvQmNCS0JjQkAor0KbQktCV0KLQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQoNCQCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQptCS0JXQotCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQotCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQotCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQotCa0J7QktCY0Isg0J/QldCi0JDQoAor0KbQktCV0KLQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KbQktCV0KLQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0KPQm9CQCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCY0KHQotCeCivQptCS0JXQotCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQptCS0JXQotCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KbQktCV0KLQmtCe0JLQmNCLINCh0J7QmtCQCivQptCS0JXQotCa0J7QktCY0Isg0KHQoNCR0J7QkdCg0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0KbQktCV0KLQmtCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQptCS0JXQotCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cm0JLQldCi0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQptCS0JXQotCa0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQotCe0J3QmAor0KbQktCV0KLQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQptCS0JXQotCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCX0J7QoNCQCivQptCS0JXQotCa0J7QktCh0JrQmCDQkdCe0KDQmNChCivQptCS0JXQotCa0J7QktCh0JrQmCDQlNCg0JDQk9Ce0InQo9CRCivQptCS0JXQotCa0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Cm0JLQldCi0JrQntCS0KHQmtCYINCS0J7QiNCeCivQptCS0JXQotCe0IjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cm0JLQldCi0J7QiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQktCV0KLQntCI0JXQktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cm0JLQldCi0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQngor0KbQktCY0IjQkNCdINCc0JDQoNCY0IjQkAor0KbQktCY0IjQkNCdINCc0JDQoNCa0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCQ0J3QgtCQCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQkNCd0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCQ0J3QotCeCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQkdCe0KDQngor0KbQktCY0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCm0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KbQktCY0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KbQktCY0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0KbQktCY0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KbQktCY0IjQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCg0JDQndCa0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCh0JDQktCQCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQl9Cb0JDQotCQCivQptCS0JjQiNCV0KLQkNCdINCc0JjQoNCa0J4KK9Cm0JLQmNCI0JXQotCY0KfQkNCd0JjQnSDQiNCe0JLQngor0KbQktCY0IjQldCi0JjQiyDQmNCT0J7QoAor0KbQktCY0IjQldCi0JjQiyDQiNCe0JLQngor0KbQktCY0IjQldCi0JjQiyDQnNCY0JvQlQor0KbQktCY0IjQldCi0JjQiyDQndCQ0JTQkAor0KbQktCY0IjQldCi0JjQndCe0JLQmNCLINCg0KPQltCQCivQptCS0JjQiNCV0KLQmNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQptCS0JjQiNCV0KLQmNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQptCS0JjQiNCY0Isg0JbQldCJ0JrQngor0KbQktCY0IjQmNCLINCU0KDQkNCT0JDQnQor0KbQktCY0IjQmNCLINCT0J7QoNCQ0J0KK9Cm0JLQmNCI0JjQiyDQiNCV0JvQmNCh0JDQktCQCivQptCS0JjQiNCY0Isg0IjQntCS0JDQndCa0JAKK9Cm0JLQmNCI0JjQiyDQnNCY0JvQldCd0JrQngor0KbQktCY0IjQmNCLINCc0JjQntCU0KDQkNCTCivQptCS0JjQiNCY0Isg0JzQm9CQ0ILQkAor0KbQktCY0IjQmNCLINCd0JjQmtCe0JvQkAor0KbQktCY0IjQmNCLINCf0JDQndCi0JUKK9Cm0JLQmNCI0JjQiyDQoNCj0JbQmNCm0JAKK9Cm0JLQmNCI0JjQiyDQodCi0JXQktCQ0J0KK9Cm0JLQmNCI0JjQnSDQkdCg0JDQndCa0J4KK9Cm0JLQmNCI0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cm0JLQmNCI0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KbQktCY0IjQntCS0JjQiyDQndCV0ILQldCJ0JrQkAor0KbQktCY0IjQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0KbQktCY0IjQntCS0JjQiyDQktCe0IjQmNCdCivQptCS0JjQmtCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cm0JLQmNCd0JMg0IjQntCh0JjQnwor0KbQktCY0KLQkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cm0JLQmNCi0JrQniDQn9CV0KLQkNCgCivQptCS0JjQotCa0J7QktCQ0KYg0JzQkNCg0JrQngor0KbQktCI0JXQotCQ0J0g0J7Qm9CT0JAKK9Cm0JLQiNCV0KLQmNCLINCY0JvQmNCI0JAKK9Cm0JLQiNCV0KLQmNCL0JDQndCY0J0g0JbQmNCS0JrQngor0KbQktCI0JXQotCY0IvQkNCd0JjQnSDQk9Ce0IjQmtCeCivQptCS0IjQldCi0JjQi9CQ0J3QmNCdINCh0KLQldCS0J4KK9Cm0JLQiNCV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQptCS0IjQldCi0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0KbQktCI0JXQotCe0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0KbQktCe0KDQntCS0JjQiyDQoNCQ0JTQntCoCivQptCS0KDQmtCQ0Ikg0ILQo9Cg0J4KK9CP0JDQkdCQ0KHQkNCdINCU0KDQkNCT0J7QiNCVCivQj9CQ0JHQmNCLINCc0JjQm9Ca0JAKK9CP0JDQj9CY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0I/QkNCk0JXQoNCe0JLQodCa0Jgg0KDQldCC0JXQnwor0I/QkNCk0JjQiyDQpdCQ0JzQlNCY0IjQkAor0I/QkNCk0J4g0JzQkNCi0JjQiNCQCivQj9CQ0IjQkCDQnNCQ0KDQmNCm0JAKK9CP0JDQmtCY0Isg0KfQldCU0J4KK9CP0JDQmtCY0Isg0JHQntCW0JDQndCQCivQj9CQ0JrQmNCLINCb0JDQl9CQCivQj9CQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CP0JDQmtCj0JvQkCDQldCg0JbQldCR0JXQogor0I/QkNCa0KPQm9CQINCV0KDQltCV0JHQldCiCivQj9CQ0JrQo9Cb0JAg0JjQktCQ0J0KK9CP0JDQmtCj0JvQkCDQnNCQ0KDQmNCm0JAKK9CP0JDQmtCj0JvQkCDQndCV0JTQldCJ0JrQngor0I/QkNCa0KPQm9CQINCf0JXQotCQ0KAKK9CP0JDQmtCj0JvQkCDQoNCQ0JTQlQor0I/QkNCa0KPQm9CQINCS0JjQlNCe0KHQkNCSCivQj9CQ0JrQo9Cb0JjQnSDQlNCj0KjQkNCd0JrQkAor0I/QkNCa0KPQm9CY0J0g0J/QldCi0JDQoAor0I/QkNCa0KPQm9CY0J0g0KHQotCV0JLQkNCdCivQj9CQ0JvQmNCLINCh0KLQntCI0JDQnQor0I/QkNCc0JHQkNCg0KHQmtCYINCI0J7QktCQ0J0KK9CP0JDQnNCR0JDQoSDQlNCj0KjQkNCdINCU0KAg0JvQldCa0JDQoAor0I/QkNCc0JHQkNChINCc0JjQm9CVCivQj9CQ0JzQkdCQ0KHQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0I/QkNCc0JHQmNCLINCR0KDQkNCd0JrQngor0I/QkNCc0JHQmNCLINCc0JjQm9Ce0JLQkNCdCivQj9CQ0JzQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9CP0JDQnNCR0JjQiyDQodCb0JDQktCa0J4KK9CP0JDQnNCR0JjQiyDQodCg0JXQotCQCivQj9CQ0J3QmNCLINCh0JDQktCQCivQj9CQ0J3QmNCLINCh0KLQkNCX0JAKK9CP0JDQoNCY0Isg0JTQntCR0KDQmNCd0JrQkAor0I/QkNCg0JjQiyDQoNCQ0JTQntCc0JjQoAor0I/QldCb0JXQotCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQj9CV0JvQldCi0J7QktCY0Isg0JzQmNCb0JDQnQor0I/QldCb0JXQotCe0JLQmNCLINCc0JvQkNCU0JXQnQor0I/QldCb0JXQotCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQj9CV0JvQldCi0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0I/QldCb0JXQotCe0JLQmNCLINCi0J7QnNCeCivQj9CV0JvQmNCb0J7QktCY0Isg0IjQkNCd0JAKK9CP0JXQn9CY0J3QkCDQiNCe0JLQkNCdCivQj9CV0JLQldCb0JXQmtCY0JTQmNChINCc0JDQoNCY0J3QkAor0I/QldCS0JXQm9CV0JrQmNCU0JjQoSDQn9CQ0J3QotCQCivQj9CV0JLQldCgINCd0JXQlNCV0InQmtCeCivQj9CV0JLQldCg0JTQkNCd0J7QktCY0Isg0JDQndCY0KLQkAor0I/QldCS0JXQoNCU0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CP0JXQktCV0KDQlNCQ0J3QntCS0JjQiyDQndCQ0KHQotCeCivQj9CV0JLQldCg0JTQkNCd0J7QktCY0Isg0JLQldCb0JjQl9CQ0KAKK9CU0JbQmNCU0JAg0JrQkNCi0JjQptCQCivQj9CY0JTQkCDQmtCQ0KLQmNCm0JAKK9CP0JjQlNCQINCc0JjQm9CQ0JTQmNCdCivQj9CY0JTQkCDQnNCY0JvQntCc0JjQoAor0I/QmNCT0KPQoNCQ0Kgg0JzQmNCb0JXQndCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0JHQntCg0JjQktCe0IgKK9CP0JjQk9Cj0KDQodCa0Jgg0JHQoNCQ0J3QmNCc0JjQoAor0I/QmNCT0KPQoNCh0JrQmCDQkdCg0JDQndCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0JTQkNCd0JjQm9CeCivQj9CY0JPQo9Cg0KHQmtCYINCU0KPQqNCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0InQmNCJ0JDQndCQCivQj9CY0JPQo9Cg0KHQmtCYINCJ0JjQidCQ0J3QkAor0I/QmNCT0KPQoNCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CP0JjQk9Cj0KDQodCa0Jgg0JzQkNCg0JjQiNCQCivQj9CY0JPQo9Cg0KHQmtCYINCc0JjQm9CQ0J0KK9CP0JjQk9Cj0KDQodCa0Jgg0JzQmNCb0JXQndCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0J/QldCi0JDQoAor0I/QmNCT0KPQoNCh0JrQmCDQn9Cg0JXQlNCg0JDQkwor0I/QmNCa0JjQiyDQnNCY0JvQkNCdCivQj9CY0JvQmNCi0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0I/QmNCb0JjQotCe0JIg0JrQkNCi0JjQptCQCivQj9CY0JvQmNCi0J7QkiDQodCi0JXQktCQ0J0KK9CP0JjQm9CY0KLQntCSINCh0KLQldCS0JAKK9CP0JjQm9CY0KLQntCSINCS0JXQm9CY0J3QmtCQCivQj9CY0JvQktCY0I/QmNCI0JXQkiDQnNCY0KLQmtCeCivQj9CY0J0g0JzQmNCg0JrQngor0I/QmNCd0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9CP0JjQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0I/QmNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CP0JjQoNCY0Isg0KDQo9CW0JjQptCQCivQj9Ce0I/QniDQoNCY0KHQotCeCivQj9Ce0JTQkNCdINCU0KDQkNCT0JAKK9CP0J7QlNCQ0J0g0JzQmNCg0IjQkNCd0JAKK9CP0J7QlNCQ0J0g0J3QmNCa0J7Qm9CQCivQj9Ce0JTQkNCdINCS0JXQoNCQCivQj9Ce0JPQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CP0J7Qk9Ce0JLQmNCLINCW0JjQktCQ0J0KK9CP0J7Qk9Ce0JLQmNCLINCc0JjQm9Cj0J0KK9CP0J7Qm9CV0JIg0JDQodCV0J0g0JTQoCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0I/QntCb0JXQkiDQkNCh0JXQnQor0I/QntCb0JXQkiDQkNCh0JXQnQor0I/QntCb0JXQkiDQnNCY0KLQmtCeCivQj9Ce0JvQldCSINCf0JDQndCU0JUKK9CP0J7Qm9CY0Isg0JPQntCg0JTQkNCd0JAKK9CP0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0I/QntCc0JHQkCDQltCY0JLQmtCeCivQj9Ce0JzQkdCV0KLQkCDQmtCe0KHQotCQCivQj9Ce0JzQkdCV0KLQkCDQnNCY0JvQntCoCivQj9Ce0JzQkdCV0KLQkCDQndCY0JrQntCb0JAKK9CP0J7QnNCR0JXQotCQINCh0JLQldCi0J7Ql9CQ0KAKK9CP0J7QnNCR0JXQotCQINCS0JvQkNCU0J4KK9CP0J7QnNCR0JjQiyDQlNCj0KjQkNCdCivQj9Ce0JzQkdCY0Isg0JzQmNCJ0JAKK9CP0J7QnNCR0JjQiyDQodCe0JrQkAor0I/QntCd0JvQldCXINCf0JjQoNCe0KjQmtCQCivQj9Ce0J/QkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CP0KPQj9CQ0KAg0ILQo9Cg0JAKK9CP0KPQj9CQ0KAg0IjQntCQ0JrQmNCcCivQj9Cj0I/QkNCgINCh0JvQkNCS0JrQngor0I/Qo9CU0J7QktCY0Isg0KHQnNCY0InQmtCQCivQj9Cj0JTQntCS0JjQiyDQktCQ0KHQngor0I/Qo9Ca0JvQldCS0KHQmtCYINCh0JDQqNCQCivQj9Cj0JrQidCV0JIg0JTQoNCQ0JPQkNCdCivQj9Cj0JrQidCV0JIg0KHQotCe0IjQkNCdCivQj9Cj0J3QmNCLINCW0JjQktCe0KDQkNCUCivQj9Cj0J3QmNCLINCc0JjQm9CY0JLQntCI0JUKK9CP0KPQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9CP0KPQndCY0Isg0KDQkNCU0J7QnNCY0KAKK9CP0KPQitCQINCQ0JzQkNCb0JjQiNCQCivQj9Cj0IrQkCDQldCS0JPQldCd0JjQiNCVCivQj9Cj0IrQkCDQk9Ce0KDQlNCQ0J3QkAor0I/Qo9CK0JAg0JjQoNCV0J3QkAor0I/Qo9CK0JAg0JjQktCQ0J0KK9CP0KPQitCQINCI0JDQmtCY0JwKK9CP0KPQitCQINCI0JDQndCa0J4KK9CP0KPQitCQINCI0JXQm9CV0J3QkAor0I/Qo9CK0JAg0InQo9CR0J7QnNCY0KAKK9CP0KPQitCQINCc0JjQoNCe0J0KK9CP0KPQitCQINCS0JvQkNCU0JjQnNCY0KAKK9CP0KPQitCQINCX0JLQntCd0JjQnNCY0KAKK9CP0KPQktCV0KAg0JLQldCh0JXQm9CY0J3QmtCQCivQj9Cj0JLQldCgINCS0J7QiNCY0KHQm9CQ0JIKK9CP0KPQktCV0KDQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CU0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQp9CV0JLQmNCLINCc0J7QnNCY0KAKK9CU0JDQp9CY0Isg0JTQo9Co0JDQnQor0JTQkNCn0JjQiyDQmtCg0JjQodCi0JjQndCQCivQlNCQ0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCQ0KfQmNCLINCc0JjQqNCQCivQlNCQ0KfQmNCLINCc0JjQm9CQ0J0g0J/QoNCe0KTQldCh0J7QoAor0JTQkNCn0JjQiyDQnNCY0JvQkNCdCivQlNCQ0KfQmNCLINCc0JjQm9CY0KbQkAor0JTQkNCn0JjQiyDQndCQ0JTQldCW0JTQkAor0JTQkNCn0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQkNCn0JjQiyDQktCV0JvQmNCd0JrQkAor0JTQkNCn0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CU0JDQqNCY0Ist0JPQo9Cb0JQg0InQmNCJ0JDQndCQCivQlNCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JTQkNCo0JjQiyDQnNCY0JvQldCd0JrQngor0JTQkNCo0JjQiyDQoNCQ0JTQo9Cb0JUKK9CU0JDQqNCY0Isg0JLQm9CQ0JTQngor0JTQkNCW0ILQoyDQndCY0KHQotCe0KAKK9CU0JDQkdCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CU0JDQkdCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQlNCQ0JHQldCg0JXQoCDQkNCd0KLQntCd0JjQiNCQCivQlNCQ0JHQldCi0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JTQkNCR0JXQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9CU0JDQkdCY0Isg0KfQldCU0J7QnNCY0KAg0JTQmNCf0Jsg0J7QldCmCivQlNCQ0JHQmNCLINCC0J7QoNCC0JUKK9CU0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JDQkdCY0Isg0JHQntCg0JrQngor0JTQkNCR0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0JTQkNCR0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JHQmNCLINCI0J7QktCQ0J0KK9CU0JDQkdCY0Isg0JzQkNCg0JjQiNCQCivQlNCQ0JHQmNCLINCc0JDQoNCa0J4KK9CU0JDQkdCY0Isg0JzQmNCb0JDQnQor0JTQkNCR0JjQiyDQnNCY0JvQntCoCivQlNCQ0JHQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCQ0JHQmNCLINCc0JjQm9Cj0KLQmNCdCivQlNCQ0JHQmNCLINCc0JjQntCU0KDQkNCTCivQlNCQ0JHQmNCLINCd0JXQlNCV0InQmtCeCivQlNCQ0JHQmNCLINCd0JXQndCQ0JQKK9CU0JDQkdCY0Isg0J3QldCd0JDQlAor0JTQkNCR0JjQiyDQndCV0J3QkNCUCivQlNCQ0JHQmNCLINCg0JDQlNCe0JzQmNCgCivQlNCQ0JHQmNCLINCh0JvQkNCS0JrQngor0JTQkNCR0JjQiyDQodCi0JXQktCQ0J0KK9CU0JDQkdCY0Isg0KHQktCV0KLQkAor0JTQkNCR0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCQ0JHQmNCdINCC0J7QoNCC0JUKK9CU0JDQkdCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JTQkNCR0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQlNCQ0KbQmNCdINCW0JXQidCa0J4KK9CU0JDQlNCQ0Jgg0ILQo9Cb0JAKK9CU0JDQlNCQ0Jgg0JHQkNCg0JHQkNCg0JAKK9CU0JDQlNCQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0JTQkNCU0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQlNCQ0JTQkNCYINCb0JDQodCb0J4KK9CU0JDQlNCQ0Jgg0KHQotCV0JLQkNCdCivQlNCQ0JTQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQkNCU0JjQiyDQidCj0JHQmNCm0JAKK9CU0JDQmNCLINCb0KPQmtCQCivQlNCQ0JjQiyDQnNCY0JvQkNCdCivQlNCQ0IjQpyDQnNCY0KXQkNCI0JvQngor0JTQkNCI0Kcg0J3QkNCU0JAKK9CU0JDQiNCnINCg0KPQkdCV0J0KK9CU0JDQiNCnINCX0J7QoNCY0KbQkAor0JTQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9CU0JDQiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CU0JDQiNCY0Isg0JTQo9Co0JDQnQor0JTQkNCI0JjQiyDQidCY0InQkNCd0JAKK9CU0JDQiNCY0Isg0JLQldCb0JjQnNCY0KAKK9CU0JDQiNCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0JTQkNCI0JrQniDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0IjQntCS0JjQiyDQl9Ce0KDQkAor0JTQkNCa0JjQiyDQgtCe0KDQgtCVCivQlNCQ0JrQmNCLINCQ0J3QotCVCivQlNCQ0JrQmNCLINCR0J7QiNCQ0J3QkAor0JTQkNCa0JjQiyDQkdCe0KDQmNChCivQlNCQ0JrQmNCLINCR0J7QoNCa0JAKK9CU0JDQmtCY0Isg0JHQoNCQ0J3QmtCQCivQlNCQ0JrQmNCLINCU0JDQndCVCivQlNCQ0JrQmNCLINCU0JDQndCY0JvQngor0JTQkNCa0JjQiyDQlNCg0JDQk9CeCivQlNCQ0JrQmNCLINCU0KDQkNCT0J4KK9CU0JDQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9CU0JDQmtCY0Isg0JPQntCI0JrQngor0JTQkNCa0JjQiyDQmNCb0JjQiNCQCivQlNCQ0JrQmNCLINCI0JXQm9CV0J3QkAor0JTQkNCa0JjQiyDQmtCh0JXQndCY0IjQkAor0JTQkNCa0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JrQmNCLINCc0JjQm9Ce0IjQlQor0JTQkNCa0JjQiyDQnNCY0JvQntCc0JjQoAor0JTQkNCa0JjQiyDQnNCY0KLQkNCgCivQlNCQ0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQlNCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQlNCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQlNCQ0JrQmNCLINCd0JjQmtCe0JvQkAor0JTQkNCa0JjQiyDQndCY0JrQntCb0JAKK9CU0JDQmtCY0Isg0J/QkNCS0JvQlQor0JTQkNCa0JjQiyDQn9CV0KLQkNCgCivQlNCQ0JrQmNCLINCg0JDQiNCa0J4KK9CU0JDQmtCY0Isg0KDQkNCd0JrQngor0JTQkNCa0JjQiyDQoNCQ0KLQmtCeCivQlNCQ0JrQmNCLINCg0JXQidCQCivQlNCQ0JrQmNCLINCh0JvQkNCS0JjQptCQCivQlNCQ0JrQmNCLINCh0JvQkNCS0JrQngor0JTQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCQ0JrQmNCLINCh0KDQldCi0JXQnQor0JTQkNCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQlNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JTQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CU0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0JrQmNCLINCS0JvQkNCU0J4KK9CU0JDQmtCY0Isg0JfQntCg0JDQnQor0JTQkNCa0J7QktCY0Isg0ILQntCa0J4KK9CU0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JTQkNCa0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CU0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQmtCh0JXQoCDQiNCe0JLQkNCdCivQlNCQ0JrQodCV0KAg0KHQotCV0JLQkNCdCivQlNCQ0JvQp9CV0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQlNCQ0JvQmNCf0J7QkiDQkdCj0JTQmNCc0JjQoAor0JTQkNCb0JjQn9Ce0JLQmNCLINCQ0JHQlNCj0JsKK9CU0JDQidCQ0KYg0InQo9CR0JjQptCQCivQlNCQ0InQldCSINCJ0JjQidCQ0J3QkAor0JTQkNCJ0JXQkiDQnNCY0JvQkNCdCivQlNCQ0JvQnNCQ0KbQmNCI0JAg0IjQkNCU0KDQkNCd0JrQkAor0JTQkNCb0JzQkNCm0JjQiNCQINCc0JjQoNCa0J4KK9CU0JDQm9Ce0Kgg0JzQkNCg0JjQiNCQCivQlNCQ0JzQqNCY0Isg0IjQntCh0JjQpAor0JTQkNCc0IjQkNCdINCI0JXQm9CY0KHQkNCS0JXQotCQCivQlNCQ0JzQiNCQ0J0g0IjQntCdCivQlNCQ0JzQiNCQ0J3QkNCmINCg0JDQlNCc0JjQm9CQCivQlNCQ0JzQiNCQ0J3QkNCmINCg0JDQlNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QkNCmINCh0KLQntCI0JDQndCa0JAKK9CU0JDQnNCI0JDQndCY0Isg0JfQntCg0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCh0JrQkCDQodCb0JDQktCa0JAKK9CU0JDQnNCI0JDQndCe0JIg0JbQmNCa0JAKK9CU0JDQnNCI0JDQndCe0JIg0ILQntCg0ILQlQor0JTQkNCc0IjQkNCd0J7QkiDQkdCY0InQkNCd0JAKK9CU0JDQnNCI0JDQndCe0JIg0JHQoNCQ0J3QmtCQCivQlNCQ0JzQiNCQ0J3QntCSINCm0JLQldCi0JrQngor0JTQkNCc0IjQkNCd0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JDQnNCI0JDQndCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0JTQkNCc0IjQkNCd0J7QkiDQmNCU0JAKK9CU0JDQnNCI0JDQndCe0JIg0IjQntCg0JTQkNCd0JrQkAor0JTQkNCc0IjQkNCd0J7QkiDQiNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCSINCa0JDQotCY0KbQkAor0JTQkNCc0IjQkNCd0J7QkiDQm9CQ0JfQkAor0JTQkNCc0IjQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JTQkNCc0IjQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JTQkNCc0IjQkNCd0J7QkiDQn9CQ0JLQm9CVCivQlNCQ0JzQiNCQ0J3QntCSINCh0J7QpNCY0IjQkAor0JTQkNCc0IjQkNCd0J7QkiDQodCi0JDQndCa0J4KK9CU0JDQnNCI0JDQndCe0JIg0KHQotCV0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JDQoNCh0JXQndCY0IjQlQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KPQqNCY0KbQkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQo9Co0JrQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JXQnNCY0JsKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQiNCe0JLQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiy3QnNCY0JvQldCd0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQndCe0JLQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCY0JzQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KLQldCg0JXQl9CQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQotCe0JTQntCgCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVINCU0KAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQodCa0Jgg0JbQmNCS0JrQngor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQnNCY0JvQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0KHQmtCYINCg0KPQltCY0KbQkAor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0JzQidCQ0J3QntCS0JjQiyDQltCY0JLQntCi0JAKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCQ0JzQitCQ0J3QntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQlNCQ0JzQitCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQlNCQ0JzQitCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQnNCK0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQnSDQnNCY0KDQkAor0JTQkNCd0Kcg0KLQmNCR0J7QoAor0JTQkNCd0KfQldCi0J7QktCY0Isg0JfQntCg0JjQptCQCivQlNCQ0J3Qp9CeINCn0JDQkdCQCivQlNCQ0J3Qp9CeINCI0JXQndCVCivQlNCQ0J3QkNCY0JvQntCSINCQ0KbQkAor0JTQkNCd0JDQmNCb0J7QkiDQotCV0JLQkAor0JTQkNCd0JPQo9CR0JjQiyDQltCQ0KDQmtCeCivQlNCQ0J3Qk9Cj0JHQmNCLINCg0JDQlNCY0JLQntCI0JUg0JTQmNCf0Jsg0JjQndCTCivQlNCQ0J3Qk9Cj0JHQmNCLINCg0JDQotCa0J4KK9CU0JDQndCT0KPQl9Ce0JIg0JTQo9Co0JDQnQor0JTQkNCd0Jgg0JPQkNCo0J/QkNCgCivQlNCQ0J3QmCDQm9CQ0KHQm9CeCivQlNCQ0J3QmNCn0JjQiyDQkdCe0KDQngor0JTQkNCd0JjQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCQ0J3QmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQlNCQ0J3QmNCn0JjQiyDQlNCg0JDQk9CeCivQlNCQ0J3QmNCn0JjQiyDQmNCg0JXQndCQCivQlNCQ0J3QmNCn0JjQiyDQodCQ0JLQmNCm0JAKK9CU0JDQndCY0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQlNCQ0J3QmNCoINCV0JLQkAor0JTQkNCd0JjQqCDQmNCo0KLQktCQ0J0KK9CU0JDQndCY0Kgg0JzQkNCg0JjQiNCQCivQlNCQ0J3QmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQlNCQ0J3QmNCLINCS0JXQodCd0JAKK9CU0JDQndCY0Isg0JfQntCg0JjQptCQCivQlNCQ0J3QmNCV0Jsg0JDQndCU0KDQmNCI0JAKK9CU0JDQndCY0JXQmyDQkNCg0JDQndCa0JAKK9CU0JDQndCY0JXQmyDQpdCY0JvQlNCQCivQlNCQ0J3QmNCV0Jsg0IjQntCh0JjQnwor0JTQkNCd0JjQldCbINCf0JXQotCQ0KAKK9CU0JDQndCY0JXQmyDQn9CY0KDQntCo0JrQkAor0JTQkNCd0JjQldCbINCg0KPQltCQCivQlNCQ0J3QmNCa0J7QkiDQnNCY0KDQntCJ0KPQkQor0JTQkNCd0JjQmtCe0JIg0JLQkNCb0JXQoNCY0IjQkAor0JTQkNCd0JjQm9Ce0JIg0JDQndCY0KbQkAor0JTQkNCd0JjQm9Ce0JIg0JHQntCh0JjQidCa0JAKK9CU0JDQndCY0JvQntCSINCU0KPQqNCQ0J0KK9CU0JDQndCY0JvQntCSINCc0JjQm9CQ0J0KK9CU0JDQndCY0JvQntCSINCg0JDQlNCe0JzQmNCgCivQlNCQ0J3QmNCb0J7QkiDQodCc0JjQidCQ0J3QkAor0JTQkNCd0JjQm9Ce0JIg0KHQotCe0IjQkNCdCivQlNCQ0J3QmNCb0J7QkiDQktCQ0KHQkAor0JTQkNCd0JjQm9Ce0JLQkNCmINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQkNCd0JjQm9Ce0JLQkNCmINCf0JXQotCQ0KAKK9CU0JDQndCY0JvQntCS0JDQpiDQoNCj0JbQkAor0JTQkNCd0JjQm9Ce0JLQkNCmINCS0JjQotCe0JzQmNCgCivQlNCQ0J3QmNCb0J7QktCY0Isg0JbQmNCS0JDQnQor0JTQkNCd0JjQm9Ce0JLQmNCLINCW0JjQktCe0KDQkNCUCivQlNCQ0J3QmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JDQndCY0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CU0JDQndCY0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0J3QmNCb0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCc0JDQoNCa0J4KK9CU0JDQndCY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0J3QmNCb0J7QktCY0Isg0JzQmNCg0JrQniDQlNCgCivQlNCQ0J3QmNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQlNCQ0J3QmNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQlNCQ0J3QmNCb0J7QktCY0Isg0J/QldCg0KHQkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCg0JDQlNCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CU0JDQndCY0JvQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JTQkNCd0JjQm9Ce0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQlNCQ0J3QmNCb0J7QktCY0Ist0JLQldCh0JXQm9CY0J3QntCSINCS0JXQoNCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CU0JDQitCYINCk0JXQoNCV0J3Qpgor0JTQkNCK0Jgg0JPQldCX0JAKK9CU0JDQitCYINCa0JDQoNCe0IkKK9CU0JDQitCYINCb0JDQodCb0J4KK9CU0JDQitCYINCc0JDQi9CQ0KgKK9CU0JDQndCa0JAg0JzQkNCg0JrQngor0JTQkNCd0JrQkCDQl9Cb0JDQotCQCivQlNCQ0J3QmtCeINCI0JDQndCa0J4KK9CU0JDQndCa0J4g0IjQkNCg0J7QodCb0JDQkgor0JTQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JTQkNCd0JrQntCS0JjQiyDQodCb0JDQktCY0KjQkAor0JTQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9CU0JDQndCa0KPQpiDQlNCg0JDQk9CQ0J0KK9CU0JDQndCa0KPQpiDQnNCY0JvQmNCm0JAKK9CU0JDQndCa0KPQpiDQktCe0IjQmNCh0JvQkNCSCivQlNCQ0J3QmtCj0KYg0JLQntCI0JjQodCb0JDQkgor0JTQkNCd0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JTQkNCf0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQlNCQ0J/Qp9CV0JLQmNCLINCI0J7QktCQ0J0KK9CU0JDQn9Cn0JXQktCY0Isg0InQo9CR0JjQptCQCivQlNCQ0J/Qp9CV0JLQmNCLINCf0JDQktCb0JUKK9CU0JDQn9Cn0JXQktCY0Isg0KDQkNCI0JrQngor0JTQkNCf0KfQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CU0JDQn9Cn0JXQktCY0Isg0JLQldCg0JjQptCQCivQlNCQ0KDQkNCoINCW0JXQidCa0J4KK9CU0JDQoNCQ0JYg0IjQo9Cb0JjQiNCQ0J3QkAor0JTQkNCg0JDQliDQodCi0JXQktCQ0J0KK9CU0JDQoNCQ0JHQkNCKINCI0J7QltCV0KQKK9CU0JDQoNCQ0JHQntCoINCI0KPQm9Ca0JAKK9CU0JDQoNCQ0JHQntCoINCb0JDQlNCY0KHQm9CQ0JIKK9CU0JDQoNCQ0JHQntCoINCc0JDQoNCY0IjQkAor0JTQkNCg0JDQkdCe0Kgg0J/QldCi0JDQoAor0JTQkNCg0JDQkdCj0KYg0J3QldCU0JXQidCa0J4KK9CU0JDQoNCQ0JTQmNCLINCh0KLQldCS0JDQnQor0JTQkNCg0JzQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCg0JzQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQlNCQ0KDQnNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCQ0KDQntCI0JXQktCY0Isg0JvQkNCX0JDQoAor0JTQkNCg0JLQmNCoINCX0J7QoNCY0KbQkAor0JTQkNCh0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JTQkNCh0J7QktCY0Isg0JfQm9CQ0KLQkAor0JTQkNCj0KLQntCS0JAt0KDQo9Co0JXQktCJ0JDQnSDQktCV0JvQmNCd0JrQkCDQlNCgCivQlNCQ0KPQotCe0JLQmNCLINCC0J7QoNCC0JUKK9CU0JDQo9Ci0J7QktCY0Isg0JHQntCT0JTQkNCdCivQlNCQ0KPQotCe0JLQmNCLINCP0JXQnNCQ0JsKK9CU0JDQo9Ci0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCQ0KPQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQo9Ci0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0JDQktCY0JQg0JDQndCU0KDQkNCoCivQlNCQ0JLQmNCUINCY0JvQntCd0JAKK9CU0JDQktCY0JTQntCSINCC0KPQoNCC0JjQndCQCivQlNCQ0JLQmNCU0J7QkiDQkdCe0JPQlNCQ0J0KK9CU0JDQktCY0JTQntCSINCR0KPQlNCY0JzQmtCQCivQlNCQ0JLQmNCU0J7QkiDQiNCV0JvQmNCm0JAKK9CU0JDQktCY0JTQntCSINCI0J7QktCQ0J0KK9CU0JDQktCY0JTQntCSINCJ0KPQkdCe0JzQmNCgCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQmNCLCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQmNCS0J7QiAor0JTQkNCS0JjQlNCe0JIg0JzQmNCb0JrQkAor0JTQkNCS0JjQlNCe0JIg0J3QldCT0J7QktCQ0J0KK9CU0JDQktCY0JTQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCSINCg0JDQlNCe0JLQkNCdCivQlNCQ0JLQmNCU0J7QkiDQodCb0JDQktCa0J4KK9CU0JDQktCY0JTQntCSINCh0KLQntCI0JDQnQor0JTQkNCS0JjQlNCe0JIg0KLQmNCl0J7QnNCY0KAKK9CU0JDQktCY0JTQntCS0JDQpiDQgtCe0KDQgtCVCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JHQntCo0JrQngor0JTQkNCS0JjQlNCe0JLQkNCmINCU0JDQndCY0JvQngor0JTQkNCS0JjQlNCe0JLQkNCmINCU0KPQqNCQ0J3QmtCQCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JXQm9CS0JjQoNCQCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JPQkNCS0KDQkAor0JTQkNCS0JjQlNCe0JLQkNCmINCT0J7QiNCa0J4KK9CU0JDQktCY0JTQntCS0JDQpiDQidCj0JHQmNCm0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQlNCQ0JLQmNCU0J7QktCQ0KYg0KDQkNCU0JjQktCe0IgKK9CU0JDQktCY0JTQntCS0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JTQkNCS0JjQlNCe0JLQkNCmINCg0JDQlNCY0JLQntCICivQlNCQ0JLQmNCU0J7QktCQ0KYg0KDQkNCU0JjQktCe0IgKK9CU0JDQktCY0JTQntCS0JDQpiDQoNCQ0JTQnNCY0JvQkAor0JTQkNCS0JjQlNCe0JLQkNCmINCh0KLQldCS0JDQnQor0JTQkNCS0JjQlNCe0JLQkNCmINCi0J7QlNCe0KAKK9CU0JDQktCY0JTQntCS0JDQpiDQktCV0KDQmNCm0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQktCV0KHQldCb0JjQndCa0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQl9CU0KDQkNCS0JrQngor0JTQkNCS0JjQlNCe0JLQmNCLINCn0JDQodCb0JDQkgor0JTQkNCS0JjQlNCe0JLQmNCLINCU0JDQktCe0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQlNCQ0JLQmNCU0J7QktCY0Isg0JTQo9Co0JrQngor0JTQkNCS0JjQlNCe0JLQmNCLINCT0J7QoNCQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0IjQntCS0J4KK9CU0JDQktCY0JTQntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCQ0KDQiNCQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0J7QqAor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCg0JrQngor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQndCV0J3QkNCUCivQlNCQ0JLQmNCU0J7QktCY0Isg0J7Qm9CT0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQn9CV0KDQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQn9CV0KLQkNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0J/QldCi0JDQoAor0JTQkNCS0JjQlNCe0JLQmNCLINCg0JDQlNCVINCU0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQoNCQ0JTQlQor0JTQkNCS0JjQlNCe0JLQmNCLINCg0JDQlNCe0IjQlQor0JTQkNCS0JjQlNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0KHQkNCS0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQodCb0JDQktCa0J4KK9CU0JDQktCY0JTQntCS0JjQiyDQodCg0JXQotCQCivQlNCQ0JLQmNCU0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQlNCQ0JLQmNCU0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0KPQoNCe0KgKK9CU0JDQktCY0JTQntCS0JjQiyDQktCQ0KHQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQkNCS0JjQlNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCS0JjQiyDQl9Ce0KDQkAor0JTQkNCS0JjQlNCe0JLQodCa0Jgg0JzQkNCg0JAKK9CU0JDQktCY0J3QmNCLINCh0KLQntCI0JDQnQor0JTQkNCS0J7Qk9CY0Isg0KLQldCe0JTQntCgCivQlNCQ0JLQntCh0JjQoCDQmNCS0JDQnQor0JTQkNCS0J7QodCY0KAg0JzQkNCa0KHQmNCcCivQlNCQ0JLQntCh0JjQoCDQotCV0J7QlNCe0KAKK9CU0JDQktCe0KHQmNCgINCS0JvQkNCU0JjQnNCY0KAKK9CU0JUt0JLQoNCY0JXQoSDQmNCS0JDQndCa0JAKK9CU0JXQqNCYINCX0J7Qm9Ci0JDQnQor0JTQldCo0JjQiyDQnNCQ0KDQkAor0JTQldCo0J4g0JbQmNCS0JDQndCa0JAKK9CU0JXQltCVINCI0J7QktCQ0J0KK9CU0JXQltCVINCa0JDQoNCb0J4KK9CU0JXQltCVINCX0JTQldCd0JrQkAor0JTQldCW0JXQm9CY0Isg0IjQntCS0JDQndCa0JAKK9CU0JXQgtCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JTQldCC0JDQndCh0JrQmCDQlNCj0KjQkNCdCivQlNCV0ILQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9CU0JXQkNCaINCW0JDQoNCa0J4KK9CU0JXQkNCaINCQ0J3QlNCg0JDQqAor0JTQldCQ0Jog0JDQndCU0KDQmNCI0JDQndCQCivQlNCV0JDQmiDQkNCd0JTQoNCY0IjQkAor0JTQldCQ0Jog0JDQoNCQ0J3QmtCQCivQlNCV0JDQmiDQpNCV0KDQldCd0KYKK9CU0JXQkNCaINCY0JvQldCoCivQlNCV0JDQmiDQm9CQ0KPQoNCQCivQlNCV0JDQmiDQnNCQ0KLQmNCb0JTQkAor0JTQldCQ0J0g0J3QldCS0JXQndCa0JAKK9CU0JXQkNCg0J7QodCa0Jgg0KTQldCl0JjQnAor0JTQldCQ0KDQntCS0JjQiyDQodCQ0JvQmNCcCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JbQmNCS0J7QiNCY0J0KK9CU0JXQkdCV0InQkNCn0JrQmCDQgtCe0KDQgtCVCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JXQkdCV0InQkNCn0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCR0JXQidCQ0KfQmtCYINCR0J7QodCY0InQmtCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JTQldCR0JXQidCQ0KfQmtCYINCY0JLQkNCdCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JjQktCQ0J0KK9CU0JXQkdCV0InQkNCn0JrQmCDQmtCQ0KLQmNCm0JAKK9CU0JXQkdCV0InQkNCn0JrQmCDQidCj0JHQmNCm0JAKK9CU0JXQkdCV0InQkNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JTQldCR0JXQidCQ0KfQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JXQkdCV0InQkNCn0JrQmCDQndCQ0JTQkAor0JTQldCR0JXQidCQ0KfQmtCYINCh0KDQgtCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JTQldCR0JXQidCQ0KfQmtCYINCS0JXQoNCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JLQo9Ca0J7QodCQ0JLQkAor0JTQldCR0JXQidCV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQlNCV0KYg0JDQndCY0KbQkAor0JTQldCU0JDQiCDQlNCQ0JLQmNCUCivQlNCV0JTQkNCIINCb0JXQmtCeCivQlNCV0JTQldCYINCY0JvQntCd0JAKK9CU0JXQlNCV0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CU0JXQlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCV0JTQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CU0JXQlNCY0Isg0JTQoNCQ0JPQkNCdCivQlNCV0JTQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JTQldCU0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CU0JXQlNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CU0JXQlNCY0Isg0IjQntCS0J4KK9CU0JXQlNCY0Isg0JrQntCS0JjQndCa0JAKK9CU0JXQlNCY0Isg0JzQkNCg0JAKK9CU0JXQlNCY0Isg0JzQkNCg0JjQiNCQCivQlNCV0JTQmNCLINCc0JjQm9CY0JLQntCIINCU0KAg0J/QoNCe0KQKK9CU0JXQlNCY0Isg0JzQmNCb0J4KK9CU0JXQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JXQlNCY0Isg0J3QldCc0JDQitCQCivQlNCV0JTQmNCLINCg0JDQlNCY0KbQkAor0JTQldCU0JjQiyDQodCb0JDQktCa0JAKK9CU0JXQlNCY0Isg0KHQotCV0JLQkNCdCivQlNCV0JTQmNCLLdCi0JDQodCY0Isg0JzQmNCg0JAKK9CU0JXQlNCY0J0g0JTQldCI0JDQnQor0JTQldCU0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JXQlNCY0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQlNCV0JTQmNCdINCS0JDQodCY0JvQmNCI0JUKK9CU0JXQlNCY0J3QodCa0Jgg0KLQmNCR0J7QoAor0JTQldCU0J7QktCY0Isg0JzQmNCo0J4KK9CU0JXQpNCg0JDQndCT0JXQn9CQ0J0g0KTQoNCQ0J3QodCe0JAKK9CU0JXQk9CQINCQ0JLQoNCQ0JwKK9CU0JXQiNCQ0J3QkNCmINCc0JjQm9Ce0KDQkNCUCivQlNCV0IjQkNCd0J7QodCa0Jgg0JzQmNCb0JDQnQor0JTQldCI0JDQndCe0JIg0JHQldCg0JjQodCb0JDQkgor0JTQldCI0JDQndCe0JIg0JTQkNCd0JjQm9CeCivQlNCV0IjQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9CU0JXQiNCQ0J3QntCSINCc0JjQotCQCivQlNCV0IjQkNCd0J7QkiDQodCY0JzQkAor0JTQldCI0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CU0JXQiNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQlNCV0IjQkNCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JTQldCI0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQgtCj0KDQmNCm0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JTQldCI0JDQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JTQldCI0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0JTQldCI0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0JTQldCI0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQldCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JTQldCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JTQldCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCY0JLQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQntCg0JTQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JTQldCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JXQiNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQlNCV0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JTQldCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQkAor0JTQldCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JXQiNCQ0J3QntCS0KHQmtCYINCc0JvQkNCU0JXQnQor0JTQldCI0JDQndCe0JLQodCa0Jgg0KLQntCc0JjQodCb0JDQkgor0JTQldCI0JDQndCe0JLQodCa0Jgg0JLQldCh0JXQm9CY0J0KK9CU0JXQmtCQ0J3QmNCLINCR0KDQkNCd0JrQngor0JTQldCa0JDQndCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQlNCV0JrQkNCd0JjQiyDQnNCY0JvQntCoCivQlNCV0JrQkNCd0JjQiyDQnNCY0JvQntCoCivQlNCV0JrQkNCd0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCV0JrQkNCd0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCV0JrQkNCKINCQ0J3QotCQ0JsKK9CU0JXQmtCQ0J3QodCa0Jgg0JTQmNCd0JAKK9CU0JXQmtCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0JTQldCa0JjQiyDQlNCQ0J3QlQor0JTQldCb0JDQpyDQpNCg0JDQndCm0JjQqNCa0JAKK9CU0JXQm9CV0KLQmNCLINCT0J7QoNCU0JDQndCQCivQlNCV0JvQmNCLINCC0J7QoNCC0JUKK9CU0JXQm9CY0Isg0JHQmNCJ0JDQndCQCivQlNCV0JvQmNCLINCR0J7QltCY0JTQkNCgCivQlNCV0JvQmNCLINCR0J7Qk9CU0JDQnQor0JTQldCb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JTQldCb0JjQiyDQlNCV0KHQmNCc0JjQoAor0JTQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQldCb0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQlNCV0JvQmNCLLdCY0JHQo9Ca0JjQiyDQldCh0JDQlAor0JTQldCb0JjQiyDQmNCb0JjQiNCQCivQlNCV0JvQmNCLINCI0JDQitCQCivQlNCV0JvQmNCLINCI0J7QktCQ0J0KK9CU0JXQm9CY0Isg0JzQkNCg0JAKK9CU0JXQm9CY0Isg0JzQmNCL0J4g0JTQoAor0JTQldCb0JjQiyDQnNCY0KXQkNCI0JvQngor0JTQldCb0JjQiyDQnNCY0JvQkNCd0JAKK9CU0JXQm9CY0Isg0JzQmNCb0JDQnQor0JTQldCb0JjQiyDQnNCY0JvQmNCm0JAKK9CU0JXQm9CY0Isg0JzQmNCb0JrQkAor0JTQldCb0JjQiyDQnNCY0JvQntCoCivQlNCV0JvQmNCLINCc0JjQm9Ce0JzQmNCgCivQlNCV0JvQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9CU0JXQm9CY0Isg0JzQo9Ch0KLQkNCk0JAKK9CU0JXQm9CY0Isg0J/QkNCo0JrQngor0JTQldCb0JjQiyDQn9CV0KLQkNCgCivQlNCV0JvQmNCLINCg0JDQlNCc0JjQm9CQCivQlNCV0JvQmNCLINCg0JDQlNCe0IjQmtCQINCU0KAKK9CU0JXQm9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CU0JXQm9CY0Isg0KDQkNCU0J7QodCQ0JIKK9CU0JXQm9CY0Ist0KHQm9CQ0JLQmtCe0JLQmNCLINCS0JXQoNCQCivQlNCV0JvQmNCLINCh0KDQldCi0JXQnQor0JTQldCb0JjQiyDQodCi0J7QiNCQ0J0KK9CU0JXQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQldCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCV0JvQmNCLINCS0JDQodCQCivQlNCV0JvQmNCLINCS0JXQodCV0JvQmtCeCivQlNCV0JvQmNCLINCS0JXQodCd0JAKK9CU0JXQm9CY0Isg0JLQm9CQ0JTQngor0JTQldCb0JjQiyDQktCb0JDQlNCeCivQlNCV0JvQmNCC0J7QoNCC0JXQktCY0Isg0KHQotCV0JLQkNCd0JrQkAor0JTQldCb0JjQkdCQ0KjQmNCLINCU0JXQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQlNCV0JvQmNCR0JDQqNCY0Isg0InQo9CR0JjQqNCQCivQlNCV0JvQmNCR0JDQqNCY0Isg0InQo9CR0JjQptCQCivQlNCV0JvQmNCR0JDQqNCY0Isg0JzQkNCg0JjQptCQCivQlNCV0JvQmNCR0JDQqNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JTQldCb0JjQkdCQ0KjQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CU0JXQm9CY0JHQkNCo0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQldCb0JjQkdCQ0KjQmNCLINCc0JjQntCU0KDQkNCTCivQlNCV0JvQmNCR0JDQqNCY0Isg0KHQkNCS0J4KK9CU0JXQm9CY0JHQkNCo0JjQiyDQodCe0KTQmNCI0JAKK9CU0JXQm9CY0JHQkNCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCV0JvQmNCR0JvQkNCL0JDQndCY0J0g0IjQntCS0JDQnQor0JTQldCb0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CU0JXQm9Ce0JjQmiDQlNCg0JDQk9Cj0KLQmNCdCivQlNCV0JvQntCd0JPQkCDQodCi0JDQndCa0J4KK9CU0JXQm9Ce0JIg0J7QoNCU0JDQndCn0J4KK9CU0JXQnNCn0JXQqNCV0J0g0JLQkNCh0JjQm9CY0IjQlQor0JTQldCc0KjQkNCgINCT0J7QoNCU0JDQndCQCivQlNCV0JzQqNCQ0KAt0JLQldCT0JXQoCDQnNCQ0KDQmNCI0JAKK9CU0JXQnNCQ0Jog0JzQmNCg0J7QodCb0JDQkgor0JTQldCc0JDQnSDQiNCQ0J3QmtCeCivQlNCV0JzQkNCdINCg0JDQodCi0JjQodCb0JDQkgor0JTQldCc0JHQmNCmINCh0JzQmNCJ0JDQndCQCivQlNCV0JzQlSDQldCc0JAKK9CU0JXQnNCVINCk0KDQkNCd0KbQmNCo0JrQkAor0JTQldCc0JUg0JjQoNCV0J3QkAor0JTQldCc0JUg0JrQm9CQ0KDQkAor0JTQldCc0JXQqNCYINCQ0KDQn9CQ0JQKK9CU0JXQnNCV0JvQmNChINCJ0KPQkdCY0KbQkAor0JTQldCc0JXQndCU0Jgg0JHQldCb0JAKK9CU0JXQnNCV0J3QlNCYINCU0J7QoNCe0KLQldCQCivQlNCV0JzQldCgINCR0JXQm9CQCivQlNCV0JzQldCgINCk0KDQkNCd0KYKK9CU0JXQnNCV0KLQldCgINCk0JXQoNCV0J3Qpgor0JTQldCc0JXQotCV0KAg0KTQoNCQ0IrQkAor0JTQldCc0JXQotCV0KAg0KHQotCV0JLQkNCdCivQlNCV0JzQmNCLINCW0JjQktCe0KDQkNCUCivQlNCV0JzQiNCV0J0g0JHQntCg0JjQodCb0JDQkgor0JTQldCc0JrQni3QoNCY0KXQotCV0KAg0IjQntCh0JjQnwor0JTQldCc0J7QktCh0JrQmCDQodCV0JLQlNCY0IjQkAor0JTQldCc0KPQoiDQoNCe0JfQkNCb0JjQiNCQCivQlNCV0J3Qp9CY0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQlNCV0J3QlNCQINCU0KDQkNCT0JDQnQor0JTQldCd0JTQkCDQnNCY0JvQmNCS0J7QiAor0JTQldCd0JTQmNCLINCh0KDQldCi0JjQnNCY0KAKK9CU0JXQndCV0KjQmCDQktCY0JvQmNCcCivQlNCV0J3Qk9Ce0KDQmNCm0JjQiNCQINCh0KLQiNCV0J/QkNCdCivQlNCV0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQlNCV0J3QmNCLINCW0JjQktCe0KLQkAor0JTQldCd0JjQiyDQidCj0JHQmNCo0JAKK9CU0JXQndCY0Isg0JzQntCc0KfQmNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQlNCV0J3QmNCLINCg0JDQlNCY0KbQkAor0JTQldCd0JjQiyDQodCY0J3QmNCo0JAKK9CU0JXQndCY0Isg0JfQo9CX0JDQndCQCivQlNCV0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCV0J3QmtCe0JLQodCa0Jgg0IjQkNCd0JUKK9CU0JXQn9Cn0JXQitCh0JrQmCDQodCi0JXQpNCQ0J0KK9CU0JXQoCDQpNCg0JDQitCQCivQlNCV0KAg0IjQntCW0JXQpAor0JTQldCgINCb0JDQiNCe0KgKK9CU0JXQoCDQodCi0JXQktCQ0J0KK9CU0JXQoNCQ0IjQmNCLINCh0KLQntCI0JAKK9CU0JXQoNCR0JDQmtCe0JIg0JzQkNCg0JrQngor0JTQldCg0JHQntCT0J7QodCY0IjQkNCdINCR0KDQkNCd0JrQngor0JTQldCg0JTQmNCLINCg0KPQlNCe0JvQpAor0JTQldCg0JXQpSDQodCY0JzQldCe0J0KK9CU0JXQoNCV0KLQkCDQnNCY0JvQkNCdCivQlNCV0KDQldCi0JAg0J/QldCi0JDQoAor0JTQldCg0JXQotCQINCh0JLQldCi0J7Ql9CQ0KAKK9CU0JXQoNCV0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CU0JXQoNCY0JrQoNCQ0JLQkCDQnNCY0KbQkAor0JTQldCg0JzQldCd0ILQmNCI0JXQktCh0JrQmCDQlNCY0JzQmNCi0JDQoAor0JTQldCg0J7QitCY0Isg0KLQntCU0J7QoAor0JTQldCg0KPQqNCV0Jog0JzQmNCJ0JXQndCa0J4KK9CU0JXQoNCS0JjQqNCV0JLQmNCLINCI0KPQodCj0KQKK9CU0JXQoNCS0JjQqNCV0JLQmNCLINCd0JXQj9CY0JEKK9CU0JXQoNCS0JjQqNCV0JLQmNCLINCh0JvQkNCS0JrQngor0JTQldCg0JLQmNCo0Jgg0JzQmNCh0JjQnQor0JTQldCg0JLQmNCo0Jgg0KDQkNCc0JDQlNCQ0J0KK9CU0JXQoNCS0JjQqNCYINCg0KPQqNCY0KIKK9CU0JXQoNCS0JjQiyDQqNCV0KTQmtCQCivQlNCV0KHQndCY0KbQkCDQgtCe0KDQgtCVCivQlNCV0KHQndCY0KbQkCDQgtCj0KDQniDQnNCgCivQlNCV0KHQndCY0KbQkCDQkdCe0JPQlNCQ0J0KK9CU0JXQodCd0JjQptCQINCR0KDQkNCd0JrQngor0JTQldCh0J3QmNCm0JAg0IjQkNCd0JrQngor0JTQldCh0J3QmNCm0JAg0JvQo9Ca0JAKK9CU0JXQodCd0JjQptCQINCd0JjQmtCe0JvQkAor0JTQldCh0J3QmNCm0JAg0KDQkNCU0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQlNCV0KHQndCY0KbQkCDQoNCQ0JTQntCc0JjQoAor0JTQldCh0J3QmNCm0JAg0KDQldCJ0JAKK9CU0JXQodCd0JjQptCQINCh0JzQmNCJ0JrQkAor0JTQldCh0J3QmNCm0JAg0KHQotCQ0J3QkAor0JTQldCh0J/QldCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCh0J/QmCDQiNCe0JLQkAor0JTQldCh0J/QmCDQktCV0InQmtCeCivQlNCV0KHQn9CY0Isg0JvQkNCX0JDQoAor0JTQldCh0J/QmNCLINCc0JDQoNCa0J4KK9CU0JXQodCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQldCh0J/QmNCLINCh0KDQldCi0JXQnQor0JTQldCh0J/QmNCLINCX0J7QoNCQ0J0KK9CU0JXQodCf0J7QoiDQlNCj0KjQkNCdCivQlNCV0KHQn9Ce0KIg0JzQmNCb0JDQnQor0JTQldCh0J/QntCiINCc0JjQm9CY0KbQkAor0JTQldCh0J/QntCiINCc0JjQoNCI0JDQndCQCivQlNCV0KHQn9Ce0KIg0J3QkNCU0JAKK9CU0JXQodCf0J7QoiDQndCV0J3QkNCUCivQlNCV0KHQn9Ce0KIg0KHQm9Ce0JHQntCU0JDQnQor0JTQldCh0J/QntCi0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCh0J/QntCi0J7QkiDQlNCe0JHQoNCY0JvQkAor0JTQldCh0J/QntCi0J7QkiDQldCS0JTQntCa0JjQiNCQCivQlNCV0KHQn9Ce0KLQntCSINCY0JvQmNCI0JAKK9CU0JXQodCf0J7QotCe0JIg0IjQntCm0JAKK9CU0JXQodCf0J7QotCe0JIg0InQo9CR0JjQndCa0JAKK9CU0JXQodCf0J7QotCe0JIg0JzQmNCb0JDQnQor0JTQldCh0J/QntCi0J7QkiDQnNCY0JvQntCS0JDQnQor0JTQldCh0J/QntCi0J7QkiDQoNCQ0JTQnNCY0JvQkAor0JTQldCh0J/QntCi0J7QkiDQoNCj0JbQmNCm0JAKK9CU0JXQodCf0J7QotCe0JIg0JLQmNCb0JzQkAor0JTQldCh0J/QntCi0J7QkiDQktCY0KLQntCc0JjQoNCa0JAKK9CU0JXQodCf0J7QotCe0JIg0JLQntCI0JjQodCb0JDQkgor0JTQldCh0J/QntCi0J7QkiDQl9Ce0KDQkNCdCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CU0JXQodCf0J7QotCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CU0JXQodCf0J7QotCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JTQldCh0J/QntCi0J7QktCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQldCh0J/QntCi0J7QktCY0Isg0KDQkNCi0JrQngor0JTQldCh0J/QntCi0J7QktCY0Isg0KHQmNCc0JrQkAor0JTQldCh0J/QntCi0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQktCQ0KHQngor0JTQldCh0J/QntCi0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JTQldCh0J/QntCi0J7QktCh0JrQmCDQlNCj0KjQkNCdCivQlNCV0KLQkNCg0Jgg0JzQkNCg0JjQiNCQCivQlNCV0KLQldCb0JjQnSDQgtCj0KDQkAor0JTQldCi0JXQm9CY0J0g0IjQntCh0JjQnwor0JTQldCi0JXQm9CY0J0g0J3QkNCU0JAKK9CU0JXQo9Cg0JAg0JTQo9Co0JDQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JTQldCj0KDQkCDQoNCQ0IjQmtCeCivQlNCV0KPQoNCQINCS0JXQoNCQCivQlNCV0KPQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CU0JXQktCQ0Jgg0KjQkNCd0JTQntCgCivQlNCV0JLQkNCYINCY0JzQoNCVCivQlNCV0JLQkNCYINCb0JDQiNCe0KgKK9CU0JXQktCQ0Jgg0KHQkNCK0JAKK9CU0JXQktCQ0Jgg0JfQntCg0JjQptCQCivQlNCV0JLQkNCI0JAg0J3QkNCU0JAKK9CU0JXQktCQ0IjQkCDQntCc0JXQoCDQlNCgCivQlNCV0JLQkNCb0JQg0JXQotCV0JvQmtCQCivQlNCV0JLQkNCb0JQg0JjQktCQ0J0KK9CU0JXQktCQ0JvQlCDQiNCe0KXQkNCdCivQlNCV0JLQldCn0JXQoNCYINCa0KDQmNCh0KLQmNCd0JAKK9CU0JXQktCV0KfQldCg0KHQmtCYINCQ0JLQoNCQ0JwKK9CU0JXQktCV0KfQldCg0KHQmtCYINCU0JDQndCY0KbQkAor0JTQldCS0JXQp9CV0KDQodCa0Jgg0JLQkNCh0JjQm9CY0IjQlSDQlNCgCivQlNCV0JLQldCU0JDQnSDQgtCe0KDQgtCVCivQlNCV0JLQldCU0JDQnSDQkdCe0JPQlNCQ0J0KK9CU0JXQktCV0JTQkNCdINCU0KDQkNCT0J7QiNCVCivQlNCV0JLQldCU0JDQnSDQnNCQ0KDQkAor0JTQldCS0JXQlNCQ0J0g0JzQmNCb0J7QktCQ0J0KK9CU0JXQktCV0JTQkNCdINCc0JjQoNCa0J4KK9CU0JXQktCV0KLQkNCaINCX0J7QoNCQCivQlNCV0JLQmNCLLdCn0J7QkdCQ0J3QmtCh0Jgg0JzQmNCJ0JXQndCa0JAKK9CU0JXQktCY0Isg0JbQmNCS0JDQnQor0JTQldCS0JjQiyDQgtCe0JrQkAor0JTQldCS0JjQiyDQgtCe0KDQgtCVCivQlNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCV0JLQmNCLINCQ0J3QmtCY0KbQkAor0JTQldCS0JjQiyDQkdCY0InQkNCd0JAKK9CU0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CU0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQlNCV0JLQmNCLINCm0JLQmNCI0JXQotCQCivQlNCV0JLQmNCLINCU0JDQndCY0KbQkAor0JTQldCS0JjQiyDQlNCQ0J3QmNCb0JrQkAor0JTQldCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQlNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CU0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JTQldCS0JjQiyDQlNCg0JDQk9CeCivQlNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JXQktCY0Isg0JXQktCY0KbQkAor0JTQldCS0JjQiyDQk9Ce0KDQkNCdCivQlNCV0JLQmNCLINCT0KDQntCX0JTQkAor0JTQldCS0JjQiyDQmNCT0IrQkNCiCivQlNCV0JLQmNCLINCY0JvQmNCI0JAKK9CU0JXQktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CU0JXQktCY0Isg0IjQntCS0JDQndCa0JAg0JTQoAor0JTQldCS0JjQiyDQiNCe0JLQkNCdCivQlNCV0JLQmNCLINCa0JDQotCY0KbQkAor0JTQldCS0JjQiyDQnNCY0JvQkNCdCivQlNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0JXQktCY0Isg0JzQmNCb0JXQotCQCivQlNCV0JLQmNCLINCc0JjQm9Ce0KgKK9CU0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JXQktCY0Isg0JzQmNCg0JAKK9CU0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQlNCV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQlNCV0JLQmNCLINCd0JXQndCQ0JQKK9CU0JXQktCY0Isg0J3QntCS0JrQkAor0JTQldCS0JjQiyDQn9CV0KLQkNCgCivQlNCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JXQktCY0Isg0KHQmNCc0JAKK9CU0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQlNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CU0JXQktCY0Isg0KLQntCc0JAKK9CU0JXQktCY0Isg0JLQldCb0JjQndCa0JAKK9CU0JXQktCY0Isg0JLQm9CQ0JTQkAor0JTQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JTQldCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JTQldCS0KDQitCQINCR0KDQkNCd0JjQodCb0JDQkgor0JTQldCS0KDQitCQINCU0KDQkNCT0JjQptCQCivQlNCV0JLQoNCK0JAg0InQo9CR0JjQptCQCivQlNCV0JLQoNCK0JAt0JzQmNCl0JDQiNCb0J7QktCY0Isg0InQmNCJ0JDQndCQCivQlNCV0JLQoNCK0JAg0JzQmNCe0JTQoNCQ0JMKK9CU0JXQktCg0IrQkCDQodCf0JDQodCe0IjQlQor0JTQldCS0KPQqNCY0Isg0JzQmNCb0JDQnQor0JTQmNCm0JrQntCSINCC0J7QoNCC0JUKK9CU0JjQptCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JTQmNCm0JrQntCSINCU0KDQkNCT0JDQnQor0JTQmNCm0JrQntCSINCU0KDQkNCT0JDQnQor0JTQmNCm0JrQntCSINCU0KPQqNCa0J4KK9CU0JjQptCa0J7QkiDQmNCS0JDQnQor0JTQmNCm0JrQntCSINCa0J7QodCi0JAKK9CU0JjQptCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JTQmNCm0JrQntCSINCd0JjQmtCe0JvQkAor0JTQmNCm0JrQntCSINCh0KLQldCS0JDQnQor0JTQmNCm0JrQntCSINCS0JXQodCV0JvQmNCdCivQlNCY0KbQmtCe0JIg0JLQldCh0JXQm9CY0J0KK9CU0JjQptCa0J7QkiDQl9Ce0KDQmtCQCivQlNCY0KbQnNCQ0J0g0JfQlNCV0J3QmtCQCivQlNCY0JTQkNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0JjQlNCQ0J3QntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JTQmNCI0JDQmtCe0JLQmNCLINCf0JDQktCQCivQlNCY0IjQkNCc0JDQotCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQlNCY0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCa0JjQiyDQkdCg0JDQndCa0J4KK9CU0JjQmtCY0Isg0JTQo9Co0JDQnQor0JTQmNCa0JjQiyDQk9Ce0KDQkNCdCivQlNCY0JrQmNCLINCI0J7QktCQ0J3QmtCQCivQlNCY0JrQmNCLINCI0J7QktCQ0J0KK9CU0JjQmtCY0Isg0JzQmNCb0JDQnQor0JTQmNCa0JjQiyDQoNCQ0KLQmtCeCivQlNCY0JrQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0JTQmNCa0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQmtCY0Isg0JLQldCb0JjQndCa0JAKK9CU0JjQmtCY0Isg0JfQkNCT0J7QoNCa0JAKK9CU0JjQmtCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQmNCa0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JrQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCY0JrQm9CY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JrQm9CY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JrQm9CY0Isg0JTQo9Co0JDQnQor0JTQmNCa0JvQmNCLINCU0KPQqNCQ0J0KK9CU0JjQmtCb0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JTQmNCa0JvQmNCLINCI0J7QktCQ0J0KK9CU0JjQmtCb0JjQiyDQiNCj0JTQmNCiCivQlNCY0JrQm9CY0Isg0JzQkNCg0KLQkAor0JTQmNCa0JvQmNCLINCc0JjQm9CQ0J0KK9CU0JjQmtCb0JjQiyDQnNCY0JvQldCi0JAKK9CU0JjQmtCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQlNCY0JrQm9CY0Isg0J/QldCi0JDQoAor0JTQmNCa0JvQmNCLINCh0KLQkNCd0JrQngor0JTQmNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQlNCY0JvQkdCV0KDQntCS0JjQiyDQkNCd0KLQngor0JTQmNCc0KfQntCS0KHQmtCYINCi0KDQkNCI0KfQlQor0JTQmNCc0KjQmNCLINCQ0J3QmtCQCivQlNCY0JzQkCDQkdCe0KHQkAor0JTQmNCc0JDQqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JzQkNCo0JXQktCY0Isg0J/QldCi0JDQoAor0JTQmNCc0JDQndCY0Isg0JDQndCa0JAKK9CU0JjQnNCQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JXQodCa0Jgg0JjQm9CY0IjQkAor0JTQmNCc0JXQodCa0Jgg0JzQldCi0J7QlNCY0IjQlQor0JTQmNCc0JjQiyDQltCQ0KDQmtCeCivQlNCY0JzQmNCLINCC0J7QoNCC0JUKK9CU0JjQnNCY0Isg0JDQmtCh0JXQndCi0JjQiNCVCivQlNCY0JzQmNCLINCQ0JrQodCV0J3QotCY0IjQlQor0JTQmNCc0JjQiyDQkNCd0ILQldCb0JrQkAor0JTQmNCc0JjQiyDQkdCe0JPQlNCQ0J0KK9CU0JjQnNCY0Isg0JHQoNCQ0J3QmtCeCivQlNCY0JzQmNCLINCU0JDQndCY0KbQkAor0JTQmNCc0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JjQnNCY0Isg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQlNCY0JzQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CU0JjQnNCY0Isg0JTQoNCQ0JPQngor0JTQmNCc0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CU0JjQnNCY0Isg0JTQo9Co0JDQnQor0JTQmNCc0JjQiyDQlNCj0KjQkNCdCivQlNCY0JzQmNCLINCV0JzQmNCb0JjQiNCQCivQlNCY0JzQmNCLINCV0KDQltCV0JHQldCiCivQlNCY0JzQmNCLINCY0JPQitCQ0KIKK9CU0JjQnNCY0Isg0JjQktCQ0J0KK9CU0JjQnNCY0Isg0IjQkNCd0JrQngor0JTQmNCc0JjQiyDQmtCe0KHQotCQCivQlNCY0JzQmNCLINCb0JDQl9CQ0KAKK9CU0JjQnNCY0Isg0JvQkNCX0JDQoAor0JTQmNCc0JjQiyDQidCj0JHQntCc0JjQoAor0JTQmNCc0JjQiyDQnNCY0JvQkNCdCivQlNCY0JzQmNCLINCc0JjQm9CQ0J0KK9CU0JjQnNCY0Isg0JzQmNCb0JXQktCQCivQlNCY0JzQmNCLINCc0JjQm9CY0KbQkAor0JTQmNCc0JjQiyDQnNCY0JvQntCoCivQlNCY0JzQmNCLINCc0JjQm9Ce0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CU0JjQnNCY0Isg0JzQmNCi0JAKK9CU0JjQnNCY0Isg0J3QkNCU0JAKK9CU0JjQnNCY0Isg0J3QkNCU0JAKK9CU0JjQnNCY0Isg0J3QldCR0J7QiNCo0JAKK9CU0JjQnNCY0Isg0J3QmNCa0J7Qm9CQCivQlNCY0JzQmNCLINCd0JjQmtCe0JvQkAor0JTQmNCc0JjQiyDQndCY0JrQntCb0JAKK9CU0JjQnNCY0Isg0J3QmNCa0J7Qm9CQCivQlNCY0JzQmNCLINCe0JvQk9CQCivQlNCY0JzQmNCLINCe0JfQoNCV0J0KK9CU0JjQnNCY0Isg0J/QldCi0JDQoAor0JTQmNCc0JjQiyDQodCi0JDQndCa0J4KK9CU0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQlNCY0JzQmNCLINCh0KLQldCS0JDQnQor0JTQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQnNCY0Isg0KHQotCV0JLQkAor0JTQmNCc0JjQiyDQktCQ0KHQkAor0JTQmNCc0JjQiyDQktCV0KDQmNCm0JAKK9CU0JjQnNCY0Isg0JLQmNCi0J7QnNCY0KAKK9CU0JjQnNCY0Isg0JLQmNCi0J7QnNCY0KAKK9CU0JjQnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQmNCc0JjQotCg0JDQqNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQmNCc0JjQotCg0JjQiyDQltCY0JLQntCg0JDQlAor0JTQmNCc0JjQotCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0JTQmNCc0JjQotCg0JjQiyDQkdCg0JDQndCa0J4KK9CU0JjQnNCY0KLQoNCY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JzQmNCi0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQlNCY0JzQmNCi0KDQmNCLINCc0JjQm9CV0JLQkAor0JTQmNCc0JjQotCg0JjQiyDQndCe0JLQkNCaCivQlNCY0JzQmNCi0KDQmNCLINCf0JXQoNCeCivQlNCY0JzQmNCi0KDQmNCLINCg0JDQotCa0J4KK9CU0JjQnNCY0KLQoNCY0Isg0JLQm9CQ0JTQkNCdCivQlNCY0JzQmNCi0KDQmNCLINCX0J7QoNCQ0J0KK9CU0JjQnNCY0KLQoNCY0JDQlNCY0KEg0J/QkNCS0JvQntChCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0ILQo9Cg0ILQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JDQoNCh0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQkNCg0KHQldCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Ist0JHQldCh0JXQoNCc0JXQitCYINCa0JDQotCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQkNCd0JrQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQl9Ce0JzQmNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQldCh0JDQndCa0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCe0JHQoNCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCV0KDQltCV0JHQldCiCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JXQotCV0JvQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCV0JLQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQm9CQ0JfQkNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0InQo9CR0JjQptCQINCU0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JDQoNCT0JjQotCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQkNCg0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JDQnSDQnNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9Ca0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCg0KfQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQmtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCd0JDQlNCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J3QkNCU0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQndCV0J3QkNCUCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQn9CQ0IjQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCg0JDQotCa0J4KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCQ0KjQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0JDQktCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0KDQgtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQotCQ0J3QntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQotCe0IjQkNCU0JjQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQotCY0KXQntCc0JjQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQktCV0KDQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCS0JjQotCe0JzQmNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JLQo9CI0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCX0JvQkNCi0JjQkdCe0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JfQntCg0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9CU0JjQnNCY0KLQoNCe0JIg0JbQmNCS0J7QiNCY0J0KK9CU0JjQnNCY0KLQoNCe0JIg0ILQntCa0JAKK9CU0JjQnNCY0KLQoNCe0JIg0ILQntCg0ILQlQor0JTQmNCc0JjQotCg0J7QkiDQkdCe0KjQmtCeCivQlNCY0JzQmNCi0KDQntCSINCR0J7QoNCeCivQlNCY0JzQmNCi0KDQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0J7QkiDQkdCg0JDQndCa0J4KK9CU0JjQnNCY0KLQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQlNCY0JzQmNCi0KDQntCSINCU0KPQqNCQ0J0KK9CU0JjQnNCY0KLQoNCe0JIg0JTQo9Co0JDQnQor0JTQmNCc0JjQotCg0J7QkiDQldCk0KLQmNCcCivQlNCY0JzQmNCi0KDQntCSINCI0J7QptCQCivQlNCY0JzQmNCi0KDQntCSINCf0JXQotCQ0KAKK9CU0JjQnNCY0KLQoNCe0JIg0KDQkNCU0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0J7QkiDQodCb0JDQktCa0J4KK9CU0JjQnNCY0KLQoNCe0JIg0KHQntCh0JAKK9CU0JjQnNCY0KLQoNCe0JIg0KHQotCV0JLQkNCdCivQlNCY0JzQmNCi0KDQntCSINCh0JLQldCi0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0J7QkiDQo9Cg0J7QqAor0JTQmNCc0JjQotCg0J7QkiDQktCV0JvQmNCn0JrQngor0JTQmNCc0JjQotCg0J7QkiDQl9Cb0JDQotCQCivQlNCY0JzQmNCi0KDQntCS0KHQmtCYINCY0JvQntCd0JAKK9CU0JjQnNCY0KLQoNCe0JLQodCa0Jgg0InQo9CR0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCe0JLQodCa0Jgg0InQo9CR0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCe0JLQodCa0Jgg0J/QkNCS0JvQlQor0JTQmNCc0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQlNCY0JzQmtCe0JLQodCa0Jgg0JPQntCg0JDQnQor0JTQmNCc0JrQntCS0KHQmtCYINCJ0KPQkdCY0KjQkAor0JTQmNCc0J7QodCa0Jgg0J3QmNCa0J7Qm9CQCivQlNCY0JzQntCSINCU0JjQnNCY0KLQkNCgCivQlNCY0JzQntCSINCi0J7QlNCe0KAKK9CU0JjQnNCe0JLQkCDQmtCQ0KLQmNCm0JAKK9CU0JjQnNCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JTQmNCc0J7QktCh0JrQmCDQgtCV0KDQngor0JTQmNCc0J7QktCh0JrQmCDQkNCd0JTQoNCY0IjQkAor0JTQmNCc0J7QktCh0JrQmCDQidCj0JHQmNCm0JAKK9CU0JjQnNCe0JLQodCa0Jgg0JzQkNCg0JjQndCQCivQlNCY0JzQntCS0KHQmtCYINCc0JjQm9CY0KbQkAor0JTQmNCc0J7QktCh0JrQmCDQotCg0JDQiNCn0JUKK9CU0JjQndCn0JjQiyDQmtCQ0KLQmNCm0JAKK9CU0JjQndCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQmNCd0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0JjQndCn0JjQiyDQodCg0JXQotCV0J3QmtCQCivQlNCY0J3Qp9CY0Jog0JzQkNCg0JjQiNCQCivQlNCY0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQlNCY0J3QmNCLINCR0J7QltCY0JTQkNCgCivQlNCY0J3QmNCLINCR0J7QodCQCivQlNCY0J3QmNCLINCI0J7QqNCa0JAKK9CU0JjQndCY0Ist0JrQndCV0JbQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JTQmNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQmNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0JTQmNCd0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQlNCY0J3QmNCLINCS0JvQkNCU0JXQotCQCivQlNCY0J3QmNCLINCX0JLQntCd0JjQnNCY0KAKK9CU0JjQitCQ0KjQmtCYINCW0JDQoNCa0J4KK9CU0JjQitCQ0KjQmtCYINCY0KDQmNCd0JAKK9CU0JjQitCQ0KjQmtCYINCa0KHQldCd0JjQiNCQCivQlNCY0IrQkNCo0JrQmCDQm9CV0J/QkAor0JTQmNCK0JDQqNCa0Jgg0J3QldCh0KLQntCgCivQlNCY0IrQkNCo0JrQmCDQodCi0JDQndCY0JzQmNCgCivQlNCY0IrQkNCo0JrQmCDQodCi0JDQndCa0JAKK9CU0JjQitCQ0KjQmtCYINCh0KLQldCS0JDQnQor0JTQmNCK0JDQqNCa0Jgg0KLQoNCY0JLQkAor0JTQmNCK0JDQqNCa0Jgg0JfQlNCg0JDQktCa0J4KK9CU0JjQitCV0Kgg0IjQntCh0JjQnwor0JTQmNCd0KPQm9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JjQntCo0Jgg0IjQntCh0JjQnwor0JTQmNCg0J3QldCgINCQ0KDQkNCd0JrQkAor0JTQmNCh0JjQiyDQidCj0JHQmNCo0JAKK9CU0JjQodCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQmNCi0KDQmNClINCQ0J3QkAor0JTQmNCi0KDQmNClINCg0J7QkdCV0KDQogor0JTQmNCi0KDQmNClINCS0JvQkNCU0JjQnNCY0KAKK9CU0JjQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0JjQktCY0IjQkNCn0JrQmCDQlNCg0JDQk9CQ0J0KK9CU0JjQktCY0IjQkNCn0JrQmCDQlNCg0JDQk9CQ0J0KK9CU0JjQktCY0JvQlCDQgtCe0KDQgtCVCivQlNCY0JLQmNCb0JQg0JDQndCU0KDQmNCI0JAKK9CU0JjQktCY0JvQlCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JTQmNCS0JjQm9CUINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JjQktCI0JDQmiDQlNCj0KjQkNCdCivQlNCY0JLQiNCQ0Jog0JTQo9Co0JDQnQor0JTQmNCS0IjQkNCaINCU0KPQqNCQ0J0KK9CU0JjQktCI0JDQmiDQnNCQ0KDQmNCd0JrQngor0JTQmNCS0IjQkNCaINCc0JjQm9CQ0J0KK9CU0JjQktCI0JDQmiDQnNCY0JvQkNCdCivQlNCY0JLQiNCQ0Jog0JzQmNCb0JDQnQor0JTQmNCS0IjQkNCaINCh0JDQktCQCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CU0JjQktCI0JDQmtCe0JLQmNCLINCT0JDQktCg0JAKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JTQmNCS0IjQkNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JjQktCI0JDQmtCe0JLQmNCLLdCg0JDQlNCY0KfQldCS0JAg0JTQntCg0JjQndCQCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQktCI0JDQmtCe0JLQmNCLINCi0J7QlNCe0KAKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCS0JvQkNCU0JAKK9CU0JjQktCJ0JDQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQmNCS0InQkNCaINCQ0J3Qk9CV0JvQmNCd0JAKK9CU0JjQktCJ0JDQmiDQkdCe0KjQmtCeCivQlNCY0JLQidCQ0Jog0JTQldCh0JjQnNCY0KAKK9CU0JjQktCJ0JDQmiDQlNCe0JHQoNCY0JLQntCICivQlNCY0JLQidCQ0Jog0JTQoNCQ0JPQngor0JTQmNCS0InQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JjQktCJ0JDQmiDQnNCY0KDQntCh0JvQkNCSCivQlNCY0JLQidCQ0Jog0KDQkNCi0JrQngor0JTQmNCS0InQkNCaINCX0JTQoNCQ0JLQmtCeCivQlNCY0JLQidCQ0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQlNCY0JLQidCQ0JrQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CU0JjQktCJ0JDQnSDQndCV0J3QkNCUCivQlNCY0JLQndCY0Isg0JbQmNCS0JDQnQor0JTQmNCS0J3QmNCLINCC0J7QoNCC0JUKK9CU0JjQktCd0JjQiyDQiNCV0JvQmtCQCivQlNCY0JLQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0JjQktCd0JjQiyDQn9CQ0IjQkAor0JTQmNCS0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0JjQktCd0JjQiyDQodCe0IrQkAor0JTQmNCS0J3QmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CU0JjQktCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCY0JfQlNCQ0KAg0JDQndCC0JAKK9CU0JjQl9CU0JDQoCDQkNCd0JrQmNCm0JAKK9CU0JjQl9CU0JDQoCDQmNCS0JjQptCQCivQlNCY0JfQlNCQ0KAg0IjQntCh0JjQnwor0JTQmNCX0JTQkNCgINCI0KPQoNCVCivQlNCY0JfQlNCQ0KAg0IjQo9Cg0J4KK9CU0JjQl9CU0JDQoCDQnNCQ0KDQmNCI0JAKK9CU0JjQl9CU0JDQoCDQnNCQ0KDQmtCeCivQlNCY0JfQlNCQ0KAg0J/QkNCS0J4KK9CU0JjQl9CU0JDQoCDQodCQ0KDQkNCk0JjQndCQCivQlNCY0JfQlNCQ0KAg0JLQm9CQ0JTQngor0JTQmNCX0JTQkNCg0JXQktCY0Isg0KDQkNCU0J7QidCj0JEKK9CU0JvQo9Cl0Jgg0IjQntCh0JjQnwor0JTQnNCY0KLQoNCQ0KjQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9CU0JzQmNCi0KDQmNCI0JXQkiDQm9CY0JTQmNCI0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQntCoCivQlNCc0JjQotCg0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQldCd0JrQniDQm9CV0JrQkNCgCivQlNCc0JjQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCc0JjQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCe0KjQldCc0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0J7QqNCV0J0g0JbQmNCS0JDQlNCY0J0KK9CU0J7QqNCV0J0g0JHQmNCJ0JDQndCQCivQlNCe0KjQldCdINCR0KDQkNCd0JrQngor0JTQntCo0JXQnSDQlNCV0KHQkNCd0JrQkAor0JTQntCo0JXQnSDQlNCg0JDQk9CQ0J0KK9CU0J7QqNCV0J0g0JTQo9Co0JDQnQor0JTQntCo0JXQnSDQlNCj0KjQkNCdCivQlNCe0KjQldCdINCU0KPQqNCQ0J0KK9CU0J7QqNCV0J0g0JTQo9CR0KDQkNCS0JrQkAor0JTQntCo0JXQnSDQpdCg0JjQodCi0JjQndCQINCU0KAKK9CU0J7QqNCV0J0g0JjQm9CY0IjQkAor0JTQntCo0JXQnSDQmNCS0JDQnQor0JTQntCo0JXQnSDQmNCS0JDQnQor0JTQntCo0JXQnSDQiNCV0JvQldCd0JAKK9CU0J7QqNCV0J0g0JzQmNCb0JDQnQor0JTQntCo0JXQnSDQnNCY0JvQkNCdCivQlNCe0KjQldCdINCc0JjQm9CVCivQlNCe0KjQldCdINCc0JjQm9Ce0KgKK9CU0J7QqNCV0J0g0KDQkNCU0J7QodCb0JDQkgor0JTQntCo0JXQnSDQoNCQ0JTQntCh0JvQkNCSCivQlNCe0KjQldCdINCg0JDQotCa0J4KK9CU0J7QqNCV0J0g0KHQktCV0KLQm9CQ0J3QkAor0JTQntCo0JXQnSDQktCe0IjQmNCdCivQlNCe0KjQldCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0J7QqNCV0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQlNCe0KjQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQlNCe0KjQldCd0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9CU0J7QqNCV0J3QntCS0JjQiyDQktCe0IjQmNCdCivQlNCe0KjQmNCLINCT0JjQl9CV0JvQkAor0JTQntCo0JvQmNCLINCc0JjQm9CY0KbQkAor0JTQntCo0JvQmNCLINCd0JXQndCQ0JQKK9CU0J7QqNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQlNCe0KjQm9Ce0JIg0JrQoNCh0KLQngor0JTQntCo0JvQntCSINCh0JvQkNCS0JjQptCQCivQlNCe0JbQmNCLINCJ0JjQidCQ0J3QkAor0JTQntCW0JjQiyDQnNCQ0KDQmNCm0JAKK9CU0J7QltCY0Isg0KHQotCV0JLQkNCdCivQlNCe0JbQmNCLINCh0KLQldCS0JDQnQor0JTQntCW0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CU0J7QltCY0Isg0JLQkNCh0JjQidCa0JAKK9CU0J7QkdCQ0J0g0JzQkNCg0KfQldCbCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCn0JXQlNCe0JzQmNCgCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCU0J7QkdCg0JjQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JTQo9Co0JDQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JTQo9Co0JDQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JTQo9Co0JDQnQor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQmNCg0JXQndCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCI0JXQm9Ca0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0IjQo9Cb0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQiNCj0JvQmtCY0KbQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQnNCQ0JrQodCY0JwKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JzQmNCb0JDQnQor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQnNCY0JvQkNCdCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCc0JjQoNCa0J4KK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0J/QldCi0JDQoAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQoNCQ0JTQntCc0JjQoAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQodCQ0JLQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQodCQ0JLQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmC3QodCQ0JLQmNCLINCi0JjQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCi0JjQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQlNCe0JHQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQlNCe0JHQldCoINCI0J7QktCQ0J0KK9CU0J7QkdCYINCI0KPQm9CY0IjQkNCd0JAKK9CU0J7QkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCe0JHQmNCLINCf0JXQotCQ0KAKK9CU0J7QkdCeINCY0JvQldCoCivQlNCe0JHQniDQiNCe0JbQldCkCivQlNCe0JHQniDQiNCe0JbQldCkCivQlNCe0JHQntCoINCI0J7QltCV0KQKK9CU0J7QkdCe0KjQmCDQqNCQ0J3QlNCe0KAKK9CU0J7QkdCe0KjQmCDQgtCV0KDQggor0JTQntCR0J7QqNCYINCV0KDQltCV0JHQldCiCivQlNCe0JHQntCo0Jgg0IjQkNCd0J7QqAor0JTQntCR0J7QqNCYINCb0JDQodCb0J4KK9CU0J7QkdCe0KjQmCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CU0J7QkdCe0KjQmCDQnNCQ0KDQk9CY0KLQkAor0JTQntCR0J7QqNCYINCf0JDQmwor0JTQntCR0J7QmtCQ0Jgg0JzQmNCl0JDQiNCb0J4KK9CU0J7QkdCe0JLQmNCn0JXQmiDQpNCg0JDQndCmCivQlNCe0JHQoNCQINCY0JLQkNCdCivQlNCe0JHQoNCQ0Kgg0JzQmNCb0JrQkAor0JTQntCR0KDQkNCdINCh0JvQkNCS0JrQngor0JTQntCR0KDQkNCd0JjQiyDQoNCQ0JTQntCS0JDQnQor0JTQntCR0KDQkNCd0JjQiyDQktCY0JTQntCh0JDQktCQCivQlNCe0JHQoNCVINCR0J7QltCQCivQlNCe0JHQoNCV0J3QntCSINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQlNCe0JHQoNCV0J3QntCSINCT0KDQldCi0JAKK9CU0J7QkdCg0JXQndCe0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CU0J7QkdCg0JXQndCe0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CU0J7QkdCg0JXQndCe0JIg0J3QmNCa0J7Qm9CQCivQlNCe0JHQoNCV0J3QntCSINCh0JDQndCU0KDQkAor0JTQntCR0KDQldCd0J7QkiDQktCe0IjQmNCdCivQlNCe0JHQoNCV0KLQmNCLINCc0JDQoNCY0KbQkAor0JTQntCR0KDQmNCn0JrQmCDQlNCj0KjQkNCdCivQlNCe0JHQoNCY0KfQmtCYINCc0JDQoNCY0IjQkAor0JTQntCR0KDQmNCLINCW0JjQktCa0J4KK9CU0J7QkdCg0JjQiyDQgtCe0KDQgtCVCivQlNCe0JHQoNCY0Isg0JHQntCo0JrQngor0JTQntCR0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQntCR0KDQmNCLINCV0KDQltCV0JHQldCiCivQlNCe0JHQoNCY0Isg0JPQntCI0JrQngor0JTQntCR0KDQmNCLINCI0J7QktCQ0J0KK9CU0J7QkdCg0JjQiyDQmtCe0KHQotCQCivQlNCe0JHQoNCY0Isg0InQo9CR0JjQptCQCivQlNCe0JHQoNCY0Isg0JzQmNCb0JDQlNCY0J0KK9CU0J7QkdCg0JjQiyDQnNCY0JvQkNCdCivQlNCe0JHQoNCY0Isg0JzQmNCb0JDQnQor0JTQntCR0KDQmNCLINCd0JXQk9Ce0KHQkNCS0JAKK9CU0J7QkdCg0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQlNCe0JHQoNCY0Isg0KDQkNCU0JjQktCe0IgKK9CU0J7QkdCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCe0JHQoNCY0Isg0KHQotCV0JLQkNCdCivQlNCe0JHQoNCY0Isg0KPQk9CJ0JXQqNCQCivQlNCe0JHQoNCY0Isg0JLQldCg0J7QndCY0JrQkAor0JTQntCR0KDQmNCLINCS0JXQodCd0JAKK9CU0J7QkdCg0JjQiyDQl9CU0KDQkNCS0JrQngor0JTQntCR0KDQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JTQntCR0KDQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JTQntCR0KDQmNCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CU0J7QkdCg0JjQm9Ce0JLQmNCLINCg0JDQiNCa0J4KK9CU0J7QkdCg0JjQm9Ce0JLQmNCLINCg0JDQiNCa0J4KK9CU0J7QkdCg0JjQm9Ce0JLQmNCLINCh0JjQnNCQCivQlNCe0JHQoNCY0J0g0JTQldCW0JUKK9CU0J7QkdCg0JjQnSDQndCY0JrQntCb0JAKK9CU0J7QkdCg0JjQnSDQntCb0JPQkAor0JTQntCR0KDQmNCd0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JTQntCR0KDQmNCS0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CU0J7QkdCg0JjQktCe0IjQldCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQlNCe0JHQoNCK0JDQpiDQodCi0J7QiNCQ0J3QmtCQCivQlNCe0JHQoNCe0JTQldCbINCk0KDQkNCK0J4KK9CU0J7QkdCg0J7QlNCe0JvQodCa0Jgg0IjQldCb0JXQndCQCivQlNCe0JHQoNCe0JTQntCb0KHQmtCYINCI0KPQm9Ca0JAKK9CU0J7QkdCg0J7QlNCe0JvQodCa0Jgg0JLQo9Ca0JjQptCQCivQlNCe0JHQoNCe0JrQldChINCc0JjQm9CV0J3QkAor0JTQntCR0KDQntCc0JjQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQlNCj0KjQkNCdCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQldCj0KTQmNCc0JjQiNCQCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQndCQ0JTQkAor0JTQntCR0KDQntCc0JjQoNCe0JIg0J/QldCi0JDQoAor0JTQntCR0KDQntCc0JjQoNCe0JIg0JLQmNCi0J7QnNCY0KAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCS0JvQkNCU0JjQnNCY0KAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9CU0J7QkdCg0J7QnNCY0KDQntCS0JjQiyDQn9CQ0JLQm9CVCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCb0JDQl9CQ0KAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0JvQkNCX0JDQoAor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQnNCY0JvQkNCdCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCc0JjQm9CQ0J0KK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0JzQmNCb0JDQnQor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQnNCY0JvQntCS0JDQnQor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQnNCY0KDQkAor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQn9CV0KLQkNCgCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCg0JDQlNCQCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCg0JDQndCa0J4KK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0KHQkNCS0JAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0KHQktCV0KLQntCX0JDQoAor0JTQntCR0KDQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCV0J3QmtCQCivQlNCe0JHQoNCe0KHQkNCS0InQldCS0JjQiyDQodCb0JDQktCa0J4KK9CU0J7QkdCg0J7QodCQ0JLQidCV0JLQmNCLINCS0JDQodCQINCd0J7QktCY0J3QkNCgCivQlNCe0JHQoNCe0KHQkNCS0InQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQlNCe0JHQoNCe0KHQkNCS0InQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQlNCe0JHQoNCe0KLQkCDQkdCY0KHQldCg0JrQkAor0JTQntCR0KDQntCi0JAg0JTQkNCc0JjQoAor0JTQntCR0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JTQntCR0KDQntCS0JjQiyDQlNCQ0JzQiNCQ0J3QmtCQCivQlNCe0JHQoNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCe0JTQldCg0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9CU0J7QlNCV0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQntCU0JjQiyDQmNCS0JDQnQor0JTQntCU0JjQiyDQiNCV0JvQldCd0JAKK9CU0J7QlNCY0Isg0JzQmNCb0JjQktCe0IgKK9CU0J7QlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0J7QlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0J7QlNCY0Isg0KHQkNCS0JAKK9CU0J7QlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQntCU0JjQiyDQodCi0JDQndCe0IjQlQor0JTQntCU0JjQiyDQodCi0J7QiNCQ0J0KK9CU0J7QlNCY0Isg0JLQldCg0JAKK9CU0J7QlNCY0Jog0JHQkNCg0KLQntCbCivQlNCe0JTQmNCaINCh0KLQldCS0JDQnQor0JTQntCU0JvQldCaINCS0JvQkNCU0JjQnNCY0KAKK9CU0J7QlNCe0Kgg0JvQkNCX0JDQoAor0JTQntCT0JDQndCP0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCC0KPQiNCQCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0JTQntCI0KfQmNCd0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQiNCe0KHQmNCkCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JTQntCI0KfQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCgCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQktCb0JDQlNCQCivQlNCe0IjQp9CY0J3QntCS0KHQmtCYINCS0JDQndCn0JAKK9CU0J7QiNCU0JXQoCDQmNCS0J4KK9CU0J7QiNCU0JXQoCDQiNCQ0JrQntCSCivQlNCe0IjQmNCLINCb0JDQl9CQ0KAKK9CU0J7QiNCa0JjQiyDQkdCe0JbQmNCU0JDQoAor0JTQntCI0JrQmNCLINCI0KPQm9Ca0JjQptCQCivQlNCe0IjQmtCY0Isg0JrQodCV0J3QmNCI0JAKK9CU0J7QiNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0J7QiNCa0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQntCI0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCe0IjQmtCY0Isg0JzQm9CQ0JTQldCdCivQlNCe0IjQmtCY0Isg0JzQm9CQ0JTQldCdCivQlNCe0IjQmtCY0Isg0J/QkNCI0JAKK9CU0J7QiNCa0JjQiyDQn9CV0KLQkNCgINCU0KAKK9CU0J7QiNCa0JjQiyDQn9CV0KLQkNCgCivQlNCe0IjQmtCY0Isg0KDQkNCI0JrQngor0JTQntCI0JrQmNCLINCg0JDQiNCa0J4KK9CU0J7QiNCa0JjQiyDQodCb0JDQktCa0J4KK9CU0J7QiNCa0JjQiyDQktCI0JXQmtCe0KHQm9CQ0JIKK9CU0J7QmtCb0JXQkNCdINCQ0JTQkNCcCivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JTQntCa0JzQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0JTQntCa0JzQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0J7QmtCc0JDQndCe0JLQmNCLINCd0JDQlNCQCivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQntCa0J3QmNCLINCS0JXQidCa0J4KK9CU0J7QmtCe0KjQmNCLINCc0JDQoNCY0IjQkAor0JTQntCb0JDQqCDQnNCY0JvQntCS0JDQnQor0JTQntCb0JXQndCV0KYg0KTQm9Ce0KDQmNCI0JDQnQor0JTQntCb0JPQkCDQnNCY0JvQldCd0JAKK9CU0J7Qm9CY0J3QkNCIINCC0KPQoNCeCivQlNCe0JvQmNCd0JDQiCDQiNCQ0KDQntCh0JvQkNCS0JAKK9CU0J7Qm9CY0J3QkNCgINCJ0KPQkdCY0KbQkAor0JTQntCb0JjQndCT0JAg0JzQkNCg0JjQntCg0JAKK9CU0J7Qm9CY0J3Qk9CQINCd0JjQmtCe0JvQkNCI0JUKK9CU0J7Qm9Ce0Kgg0KTQoNCQ0IrQkAor0JTQntCb0J7QktCn0JDQmiDQmtCQ0KLQmNCm0JAKK9CU0J7Qm9Ce0JLQkNCmINCQ0J3QmtCY0KbQkAor0JTQntCb0J7QktCQ0KYg0JHQmNCh0JXQoNCa0JAKK9CU0J7Qm9Ce0JLQkNCmINCU0KDQkNCT0JjQptCQCivQlNCe0JvQntCS0JDQpiDQiNCe0JLQkNCdCivQlNCe0JvQntCS0JDQpiDQm9CQ0JfQkNCgCivQlNCe0JvQntCS0JDQpiDQm9CQ0JfQkNCgCivQlNCe0JvQntCS0JDQpiDQnNCQ0KDQmNCI0JAKK9CU0J7Qm9Ce0JLQkNCmINCc0JjQm9CY0KbQkAor0JTQntCb0J7QktCQ0KYg0JzQmNCb0J7QqAor0JTQntCb0J7QktCQ0KYg0KDQkNCU0JjQktCe0IgKK9CU0J7Qm9Ce0JLQkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9CU0J7Qm9Ce0JLQkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9CU0J7Qm9Ce0JLQkNCmINCh0JvQkNCS0JrQngor0JTQntCb0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQlNCe0JvQntCS0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQlNCe0JvQntCS0JDQpiDQktCV0JvQmNCc0JjQoAor0JTQntCb0J7QktCQ0KYg0JfQntCg0JrQkAor0JTQntCc0JDQodCi0J7QktCY0Isg0JTQkNCd0JjQptCQCivQlNCe0JzQkNCX0JXQoiDQndCY0JrQntCb0JAKK9CU0J7QnNCQ0JfQldCiINCX0J7QoNCY0KbQkAor0JTQntCc0JDQl9CV0KLQntCSINCS0JXQm9CY0JzQmNCgCivQlNCe0JzQkNCX0JXQotCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQlNCe0JzQkNCX0JXQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCe0JzQkNCX0JXQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCe0JzQkdCYINCb0JDQodCb0J4KK9CU0J7QnNCR0Jgg0KDQkNCU0J7QiNCa0JAKK9CU0J7QnNCR0Jgg0KHQnNCY0InQmtCQCivQlNCe0JzQmNCd0JjQiyDQkNCd0JAKK9CU0J7QnNCY0J3QmNCLINCd0JjQmtCe0JvQkAor0JTQntCc0J7QitCYINCc0JDQoNCi0JjQnQor0JTQntCc0J7QndCa0J7QqCDQldCS0JAKK9CU0J7QnNCe0J3QmtCe0Kgg0JLQmNCb0JzQntCoCivQlNCe0JzQntCd0JrQntChINCY0KjQotCS0JDQnQor0JTQntCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQntCd0KfQldCSINCi0J7QlNCVCivQlNCe0J3Qp9CY0Isg0J3QkNCU0JAKK9CU0J7QndCQ0KIg0JTQoNCQ0JPQo9Ci0JjQnQor0JTQntCd0JDQoiDQodCQ0JLQldCi0JAKK9CU0J7QndCU0KPQoCDQltCY0JLQmtCeCivQlNCe0J3QlNCj0KAg0JTQkNCd0JjQptCQCivQlNCe0J3QlNCj0KAg0JTQkNCg0JjQndCa0JAKK9CU0J7QndCU0KPQoCDQnNCY0JvQmNCm0JAKK9CU0J7QndCU0KPQoCDQodCb0JDQktCa0J4KK9CU0J7QndCU0KPQoCDQodCi0JDQndCa0J4KK9CU0J7QndCU0KPQoCDQl9CU0KDQkNCS0JrQngor0JTQntCd0JXQkiDQotCe0JTQntCgCivQlNCe0J3QldCS0KHQmtCYINCI0JXQm9CV0J3QkAor0JTQntCd0JXQktCh0JrQmCDQmtCg0JjQodCi0JjQndCQCivQlNCe0J3QmNCLINCW0JjQktCe0IjQmNCdCivQlNCe0J3QmtCe0KAg0I/QldCc0KEKK9CU0J7QndCh0JrQntCSINCh0JXQoNCT0JjQiNCVCivQlNCe0J3QodCa0J7QktCQINCX0J7QiNCQINCU0KAg0JvQldCa0JDQoAor0JTQntCf0KPQgiDQkdCe0JbQmNCU0JDQoAor0JTQntCf0KPQgiDQkdCg0JDQndCa0J4KK9CU0J7Qn9Cj0IIg0JTQo9CR0KDQkNCS0JrQkAor0JTQntCf0KPQgiDQk9Ce0KDQkNCdCivQlNCe0J/Qo9CCINCc0JDQoNCY0IjQkAor0JTQntCf0KPQgiDQnNCY0JvQkNCdINCU0KAKK9CU0J7Qn9Cj0IIg0JzQmNCg0J7QodCb0JDQktCQCivQlNCe0J/Qo9CC0JAg0JbQmNCS0JrQngor0JTQntCf0KPQgtCQINCU0JDQoNCQCivQlNCe0J/Qo9CC0JAg0JTQoNCQ0JPQntCc0JjQoAor0JTQntCf0KPQgtCQINCh0JDQktCQCivQlNCe0J/Qo9CC0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JTQntCg0KfQmNCLINCQ0JvQntCI0JfQkAor0JTQntCg0KfQmNCLLdCR0JjQmtCY0Isg0J7Qm9CT0JjQptCQCivQlNCe0KDQp9CY0Isg0JHQntCW0J4KK9CU0J7QoNCn0JjQiyDQmtCb0JXQnNCV0J3Qogor0JTQntCg0KfQmNCLINCc0JDQoNCI0JDQnQor0JTQntCg0JjQiyDQltCQ0KDQmtCeCivQlNCe0KDQmNCLINCR0JjQidCQ0J3QkAor0JTQntCg0JjQiyDQkdCY0InQkNCd0JAKK9CU0J7QoNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQntCg0JjQiyDQpNCg0JDQitCQCivQlNCe0KDQmNCLINCY0JvQmNCI0JAKK9CU0J7QoNCY0Isg0JjQoNCc0JAKK9CU0J7QoNCY0Isg0IjQntCh0JjQnwor0JTQntCg0JjQiyDQn9CV0KLQkNCgCivQlNCe0KDQmNCLINCh0KLQldCS0JDQnQor0JTQntCg0JjQiyDQktCV0KHQldCb0JjQnQor0JTQntCg0JrQniDQodCe0KTQmNCI0JAKK9CU0J7QoNCc0JDQnSDQm9CQ0KHQm9CeCivQlNCe0KDQniDQk9CV0JfQkCDQlNCgCivQlNCe0KDQntCo0JXQkiDQgtCe0KDQgtCVCivQlNCe0KDQntCo0JrQmCDQgtCe0KDQgtCVCivQlNCe0KDQntCo0JrQmCDQkdCg0JDQndCa0J4KK9CU0J7QoNCe0KjQmtCYINCU0JXQodCQ0J3QmtCQCivQlNCe0KDQntCo0JrQmCDQiNCe0JLQkNCdINCU0KAKK9CU0J7QoNCe0KjQmtCYINCJ0JjQidCQ0J3QkAor0JTQntCg0J7QqNCa0Jgg0JzQkNCg0JjQiNCQCivQlNCe0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQlNCe0KDQntCo0JrQmCDQnNCY0JvQkAor0JTQntCg0J7QqNCa0Jgg0JzQmNCg0IjQkNCd0JAKK9CU0J7QoNCe0KjQmtCYINCd0JjQmtCe0JvQkAor0JTQntCg0J7QqNCa0Jgg0KHQmNCc0JAKK9CU0J7QoNCe0KjQmtCYINCS0JjQlNCe0KHQkNCS0JAKK9CU0J7QoNCe0KjQmtCYINCS0KPQiNCQ0JTQmNCdCivQlNCe0KDQntCm0JrQmCDQnNCQ0KXQkNCbCivQlNCe0KDQntCT0KXQkNCX0Jgg0JjQoNCY0J3QkAor0JTQntCg0J7Qk9CYINCo0JDQndCU0J7QoAor0JTQntCg0J7QitCh0JrQmCDQlNCj0KjQkNCdCivQlNCe0KDQntCK0KHQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQgtCj0KDQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JDQndCY0KbQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCU0JDQndCY0KbQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCT0KDQo9CI0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQiNCV0JvQldCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQmtCh0JXQndCY0IjQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCc0JDQoNCT0JjQotCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JzQkNCg0JjQndCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JzQkNCg0IjQkNCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0J3QmNCa0J7Qm9CQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0KDQkNCU0JUKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQodCQ0JLQldCi0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQodCi0JXQktCQ0J3QmtCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JLQo9CI0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQktCj0JrQkAor0JTQntCg0J7QodCb0J7QktCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCmINCb0JDQl9CQ0KAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCmINCc0JDQoNCY0IjQkAor0JTQntCg0J7QodCb0J7QktCQ0KYg0JzQmNCb0JDQndCQCivQlNCe0KDQntCh0JvQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQlNCe0KDQntCh0JvQntCS0JDQpiDQn9CV0KLQkNCgCivQlNCe0KDQntCh0JvQntCS0JDQpiDQl9Ce0KDQkNCdCivQlNCe0KDQntCi0JjQiyDQgtCe0KDQgtCVCivQlNCe0KDQntCi0JjQiyDQgtCe0KDQgtCVCivQlNCe0KDQntCi0JjQiyDQk9CY0JfQldCb0JAKK9CU0J7QoNCe0KLQmNCLINCT0J7QoNCU0JDQnQor0JTQntCg0J7QotCY0Ist0JPQo9Ci0JXQqNCQINCb0JXQntCd0JAKK9CU0J7QoNCe0KLQmNCLINCY0JvQkCDQnNCgINCf0KDQntCkCivQlNCe0KDQntCi0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0J7QoNCe0KLQmNCLINCh0KLQldCS0JDQnQor0JTQntCg0J7QotCa0JAg0JTQoNCQ0JPQkNCdCivQlNCe0KDQntCi0JrQkCDQnNCY0JvQntCoCivQlNCe0KHQotCQ0J0g0JDQndCQCivQlNCe0KHQotCQ0J0g0JDQoNCf0JDQlAor0JTQntCh0KLQkNCdINCU0JDQoNCY0J3QmtCQCivQlNCe0KHQotCQ0J0g0JjQqNCi0JLQkNCdCivQlNCe0KHQotCQ0J0g0IjQntCW0JXQpAor0JTQntCh0KLQkNCdINCb0JDQlNCY0KHQm9CQ0JIKK9CU0J7QodCi0JDQnSDQn9CV0KLQkNCgCivQlNCe0KHQotCQ0J0g0KHQotCV0JLQkNCdCivQlNCe0KHQotCQ0J0g0KLQmNCR0J7QoAor0JTQntCh0KLQkNCd0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQntCh0KLQkNCd0JjQiyDQoNCQ0JTQnNCY0JvQngor0JTQntCh0KLQkNCd0JjQiyDQktCe0JjQodCb0JDQkgor0JTQntCh0KLQkNCKINCI0J7QodCY0J8KK9CU0J7QodCi0JDQiiDQoNCe0JfQkNCb0JjQiNCQCivQlNCe0KHQotCY0Isg0KHQm9CQ0JLQmtCeCivQlNCe0KHQotCY0Isg0KHQntCk0JjQiNCQCivQlNCe0KLQm9CY0Isg0JbQmNCS0JrQngor0JTQntCi0JvQmNCLINCR0J7QqNCa0J4KK9CU0J7QotCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQlNCe0KLQm9CY0Isg0JTQntCR0KDQmNCb0JAKK9CU0J7QotCb0JjQiyDQlNCj0KjQkNCdCivQlNCe0KLQm9CY0Isg0JvQkNCX0JDQoAor0JTQntCi0JvQmNCLINCb0JDQl9CQ0KAKK9CU0J7QotCb0JjQiyDQm9Cj0JrQkAor0JTQntCi0JvQmNCLINCh0JDQktCQCivQlNCe0KLQm9CY0Isg0KHQntCk0JjQiNCQCivQlNCe0KLQm9CY0Isg0JLQkNCh0JAKK9CU0J7QotCe0JIg0JTQoNCQ0JPQngor0JTQntCS0JDQoiDQn9CQ0JLQm9CVINCU0KAKK9CU0J7QktCQ0KIg0JLQm9CQ0JTQmNCc0JjQoAor0JTQntCS0JDQotCe0JIg0JDQlNCQ0JwKK9CU0J7QktCV0JTQldCdINCR0J7QoNCY0KHQm9CQ0JIKK9CU0J7QktCT0JDQnSDQiNCe0KHQmNCfCivQlNCe0JLQmNCI0JDQoNCe0JIg0JzQmNCb0J7QqAor0JTQntCS0JjQiNCQ0KDQntCSINCg0JDQlNCY0JLQntCICivQlNCe0JLQmNCI0JDQoNCh0JrQmCDQkdCg0JDQndCa0JAKK9CU0J7QktCY0IjQkNCg0KHQmtCYINCc0JjQm9CV0J3QkAor0JTQntCS0JjQiNCQ0KDQodCa0Jgg0KHQotCQ0J3QmNCc0JjQoAor0JTQntCS0J3QmNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JTQntCX0JXQoiDQgtCe0KDQgtCVCivQlNCe0JfQldCiINCR0J7QltCeCivQlNCe0JfQldCiINCU0KDQkNCT0JjQptCQCivQlNCe0JfQldCiINCY0JvQmNCI0JAKK9CU0J7Ql9CV0KIg0IjQkNCh0J3QkAor0JTQntCX0JXQoiDQiNCj0JvQmtCY0KbQkAor0JTQntCX0JXQoiDQidCj0JHQmNCm0JAKK9CU0J7Ql9CV0KIg0InQo9CR0J7QnNCY0KAKK9CU0J7Ql9CV0KIg0JzQmNCl0JDQiNCb0J4KK9CU0J7Ql9CV0KIg0JzQmNCb0JDQnQor0JTQntCX0JXQoiDQnNCY0JvQntCS0JDQnQor0JTQntCX0JXQoiDQndCY0JrQntCb0JAKK9CU0J7Ql9CV0KIg0KDQkNCU0JUKK9CU0J7Ql9CV0KIg0KDQkNCU0JzQmNCb0JAKK9CU0J7Ql9CV0KIg0KDQkNCU0J7QodCb0JDQktCa0JAKK9CU0J7Ql9CV0KIg0KHQkNCS0JrQkAor0JTQntCX0JXQoiDQodCi0JDQndCa0J4KK9CU0KDQp9CQINCQ0J3QkAor0JTQoNCn0JAg0JHQoNCQ0J3QmtCeCivQlNCg0KfQkCDQlNCg0JDQk9CY0KbQkAor0JTQoNCn0JAg0IjQkNCd0JrQngor0JTQoNCn0JAg0JzQmNCb0JDQnQor0JTQoNCn0JAg0KDQkNCi0JrQngor0JTQoNCn0JAg0KHQm9CQ0JLQmtCeCivQlNCg0KfQkCDQodCi0JXQktCQ0J0KK9CU0KDQp9CQLdCj0KDQk9CV0J0g0JzQkNCg0JjQiNCQCivQlNCg0KfQkCDQktCb0JDQotCa0J4KK9CU0KDQp9CV0JvQmNCLINCU0J7QkdCg0JjQodCQ0JIKK9CU0KDQp9CV0JvQmNCLINCc0JjQoNCI0JDQndCQCivQlNCg0JbQkNCI0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0J/QoNCe0KTQldCh0J7QoAor0JTQoNCW0JjQiyDQmNCb0JjQiNCQCivQlNCg0JDQp9CQINCW0JjQktCa0J4KK9CU0KDQkNCn0JAg0ILQntCg0ILQlQor0JTQoNCQ0KfQkCDQkNCm0JAKK9CU0KDQkNCn0JAg0JTQo9CR0KDQkNCS0JrQkAor0JTQoNCQ0KfQkCDQnNCY0JvQlQor0JTQoNCQ0KfQkCDQn9CV0KLQkNCgINCU0KAKK9CU0KDQkNCn0JAg0J/QldCi0JDQoAor0JTQoNCQ0KfQkCDQodCf0JDQodCV0J3QmtCQCivQlNCg0JDQp9CQINCi0J7QnNCeINCU0KAKK9CU0KDQkNCn0JjQnSDQmtCe0KHQotCQCivQlNCg0JDQqNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JTQoNCQ0KjQmtCeINCI0JXQm9Ca0JAKK9CU0KDQkNCo0JrQniDQnNCY0JvQntCS0JDQnQor0JTQoNCQ0KjQmtCeINCh0JvQntCR0J7QlNCQ0J0KK9CU0KDQkNCo0JrQntCS0JjQiyDQkdCg0JDQndCa0J4g0JTQmNCf0Jsg0J7QldCmCivQlNCg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkAor0JTQoNCQ0KjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0KDQkNCo0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JTQoNCQ0KjQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQlNCg0JDQqNCa0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9CU0KDQkNCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0KjQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CU0KDQkNCo0JrQntCS0JjQiyDQodCQ0JLQngor0JTQoNCQ0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQlNCg0JDQqNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQoNCQ0KjQmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0JTQoNCQ0JbQldCi0JAg0JzQmNCb0JXQndCa0J4KK9CU0KDQkNCW0JXQotCQINCh0KLQldCS0JDQnQor0JTQoNCQ0JbQldCi0JjQnSDQlNCj0KjQkNCdCivQlNCg0JDQltCV0KLQmNCdINCc0JvQkNCU0JXQnQor0JTQoNCQ0JbQmNCLINCW0JDQoNCa0J4KK9CU0KDQkNCW0JjQiyDQgtCe0KDQgtCVCivQlNCg0JDQltCY0Isg0ILQntCg0ILQlQor0JTQoNCQ0JbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JDQltCY0Isg0JHQntCT0JTQkNCdCivQlNCg0JDQltCY0Isg0JHQo9CU0J4KK9CU0KDQkNCW0JjQiyDQlNCe0JHQoNCY0JLQntCICivQlNCg0JDQltCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JTQoNCQ0JbQmNCLINCU0KPQqNCQ0J0KK9CU0KDQkNCW0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQltCY0Isg0JXQnNCY0JsKK9CU0KDQkNCW0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JTQoNCQ0JbQmNCLINCY0JvQmNCI0JAKK9CU0KDQkNCW0JjQiyDQmNCb0JjQiNCQCivQlNCg0JDQltCY0Isg0JjQoNCV0J3QkAor0JTQoNCQ0JbQmNCLINCI0JDQqNCQCivQlNCg0JDQltCY0Isg0IjQldCb0JjQptCQCivQlNCg0JDQltCY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JbQmNCLINCI0J7QktCQ0J0KK9CU0KDQkNCW0JjQiyDQiNCe0JLQkNCdCivQlNCg0JDQltCY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JbQmNCLINCI0J7QktCQ0J0KK9CU0KDQkNCW0JjQiyDQmtCQ0KLQmNCm0JAKK9CU0KDQkNCW0JjQiyDQmtCe0KHQotCQCivQlNCg0JDQltCY0Isg0JvQkNCX0JDQoAor0JTQoNCQ0JbQmNCLINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JbQmNCLINCc0JDQoNCY0IjQkAor0JTQoNCQ0JbQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCW0JjQiyDQnNCY0JvQkNCdCivQlNCg0JDQltCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0KDQkNCW0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JbQmNCLINCc0JjQm9CY0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0JTQoNCQ0JbQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCg0JDQltCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCW0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0JbQmNCLINCc0JjQoNCQCivQlNCg0JDQltCY0Isg0JzQmNCi0JAKK9CU0KDQkNCW0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQlNCg0JDQltCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JTQoNCQ0JbQmNCLINCd0JXQodCi0J7QoAor0JTQoNCQ0JbQmNCLINCd0JXQktCV0J3QmtCQCivQlNCg0JDQltCY0Isg0J3QmNCa0J7Qm9CQCivQlNCg0JDQltCY0Isg0J3QmNCa0J7Qm9CQCivQlNCg0JDQltCY0Isg0J7QodCi0J7QiNCQCivQlNCg0JDQltCY0Isg0J/QldCi0JDQoAor0JTQoNCQ0JbQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCg0JDQltCY0Isg0KDQldCJ0JAKK9CU0KDQkNCW0JjQiyDQodCb0JDQktCa0J4KK9CU0KDQkNCW0JjQiyDQodCe0KTQmNCI0JAKK9CU0KDQkNCW0JjQiyDQodCi0JDQndCa0J4KK9CU0KDQkNCW0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCW0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCW0JjQiyDQodCj0JfQkNCd0JAKK9CU0KDQkNCW0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCg0JDQltCY0Isg0JLQldCb0JjQndCa0JAKK9CU0KDQkNCW0JjQiyDQktCV0KDQkAor0JTQoNCQ0JbQmNCLINCS0JXQoNCQCivQlNCg0JDQltCY0Isg0JLQldCg0JAKK9CU0KDQkNCW0JjQiyDQl9Cb0JDQotCa0J4KK9CU0KDQkNCW0JjQm9Ce0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQlNCg0JDQltCY0J0g0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0JPQkNCoINCC0J7QoNCC0JUKK9CU0KDQkNCT0JDQqCDQgtCj0KDQngor0JTQoNCQ0JPQkNCoINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JDQqCDQkdCg0JDQndCa0J4KK9CU0KDQkNCT0JDQqCDQlNCg0JDQk9Ce0JzQmNCgCivQlNCg0JDQk9CQ0Kgg0JjQktCQ0J0KK9CU0KDQkNCT0JDQqCDQmtCQ0KLQmNCm0JAKK9CU0KDQkNCT0JDQqC3QmtCe0JLQkNCnINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQkNCoINCb0JXQn9Ce0KHQkNCS0JAKK9CU0KDQkNCT0JDQqCDQidCj0JHQmNCm0JAKK9CU0KDQkNCT0JDQqCDQidCj0JHQmNCm0JAKK9CU0KDQkNCT0JDQqCDQnNCQ0J3QntCI0JvQngor0JTQoNCQ0JPQkNCoINCc0JjQm9CQ0J0KK9CU0KDQkNCT0JDQqCDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JPQkNCoINCc0JjQoNCQCivQlNCg0JDQk9CQ0Kgg0JzQmNCg0IjQkNCd0JAKK9CU0KDQkNCT0JDQqCDQnNCe0JzQp9CY0JvQngor0JTQoNCQ0JPQkNCoINCg0JDQlNCY0JLQntCICivQlNCg0JDQk9CQ0Kgg0KDQkNCU0J7QnNCY0KAKK9CU0KDQkNCT0JDQqCDQodCf0J7QnNCV0J3QmtCQCivQlNCg0JDQk9CQ0Kgg0KHQktCV0KLQm9CQ0J3QkAor0JTQoNCQ0JPQkNCoINCX0J7QoNCQ0J0KK9CU0KDQkNCT0JDQqNCV0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JTQoNCQ0JPQkNCdINCc0JjQm9CV0J3QkAor0JTQoNCQ0JPQkNCd0JjQiyDQlNCg0JDQk9CQCivQlNCg0JDQk9CQ0J3QmNCLINCI0JDQndCa0J4KK9CU0KDQkNCT0JDQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9CU0KDQkNCT0JDQndCY0Isg0JzQmNCb0JjQptCQINCU0KAKK9CU0KDQkNCT0JDQndCY0Isg0JzQmNCb0JrQkAor0JTQoNCQ0JPQkNCd0JjQiyDQnNCY0KDQmtCeCivQlNCg0JDQk9CQ0J3QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0KDQkNCT0JDQndCY0Isg0J3QkNCU0JXQltCU0JAKK9CU0KDQkNCT0JDQndCY0Isg0KDQkNCd0JrQngor0JTQoNCQ0JPQkNCd0JjQiyDQktCY0JTQkAor0JTQoNCQ0JPQkNCd0JjQiyDQl9CV0JrQngor0JTQoNCQ0JPQkNCd0J7QkiDQnNCY0JvQntCoCivQlNCg0JDQk9CQ0J3QntCSINCe0JvQk9CQCivQlNCg0JDQk9CQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9CU0KDQkNCT0JDQndCe0JIg0KHQotCe0IjQkNCd0JrQkAor0JTQoNCQ0JPQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQlNCg0JDQk9CV0InQldCS0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQk9CV0InQldCS0JjQiyDQiNCe0JLQkNCdCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQkNCU0JDQnAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCT0J7QiNCa0J4KK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCY0JvQmNCd0JrQkAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JjQktCa0JAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCa0KDQldCo0JjQnNCY0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCb0JDQl9CQ0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCc0JjQidCQCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQnNCY0JvQntCoCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0KHQn9CQ0KHQkAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0KHQoNCV0KLQldCdCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQktCe0IjQmNCdCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQl9Ce0KDQkNCdCivQlNCg0JDQk9CY0KjQkCDQltCQ0KDQmtCeCivQlNCg0JDQk9CY0KjQmNCLINCR0J7Qk9CU0JDQnQor0JTQoNCQ0JPQmNCo0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JrQkAor0JTQoNCQ0JPQmNCo0JjQiyDQiNCe0JLQkNCd0JrQkAor0JTQoNCQ0JPQmNCo0JjQiyDQndCY0JrQntCb0JAKK9CU0KDQkNCT0JjQqNCY0Isg0J/QldCi0JDQoAor0JTQoNCQ0JPQmNCo0JjQiyDQoNCQ0JTQlQor0JTQoNCQ0JPQmNCLINCn0JXQlNCe0JzQmNCgCivQlNCg0JDQk9CY0Isg0JbQldCJ0JrQngor0JTQoNCQ0JPQmNCLINCC0J7QoNCC0JUKK9CU0KDQkNCT0JjQiyDQkNCd0JAKK9CU0KDQkNCT0JjQiyDQkdCg0JDQndCa0J4KK9CU0KDQkNCT0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQk9CY0Isg0JTQo9Co0JDQnQor0JTQoNCQ0JPQmNCLINCV0JvQktCY0KDQkAor0JTQoNCQ0JPQmNCLINCY0JvQmNCI0JAKK9CU0KDQkNCT0JjQiyDQmNCb0JjQiNCQCivQlNCg0JDQk9CY0Isg0JjQm9CY0IjQkAor0JTQoNCQ0JPQmNCLINCI0JXQm9CV0J3QkAor0JTQoNCQ0JPQmNCLINCJ0KPQkdCY0KjQkAor0JTQoNCQ0JPQmNCLINCJ0KPQkdCY0KjQkAor0JTQoNCQ0JPQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CU0KDQkNCT0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JPQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CU0KDQkNCT0JjQiyDQnNCY0JvQmtCQCivQlNCg0JDQk9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCT0JjQiyDQndCQ0JTQkAor0JTQoNCQ0JPQmNCLINCd0JXQlNCV0InQmtCeCivQlNCg0JDQk9CY0Isg0J3QldCS0JXQndCa0JAKK9CU0KDQkNCT0JjQiyDQndCY0JrQntCb0JAKK9CU0KDQkNCT0JjQiyDQntCR0KDQkNCUCivQlNCg0JDQk9CY0Isg0J/QkNCj0JvQkAor0JTQoNCQ0JPQmNCLINCf0JDQktCb0JUKK9CU0KDQkNCT0JjQiyDQn9CV0KDQkAor0JTQoNCQ0JPQmNCLINCf0JXQotCQ0KAKK9CU0KDQkNCT0JjQiyDQn9CV0KLQkNCgCivQlNCg0JDQk9CY0Isg0KDQkNCd0JrQngor0JTQoNCQ0JPQmNCLINCh0JDQktCQCivQlNCg0JDQk9CY0Isg0KHQm9CQ0JLQmtCeCivQlNCg0JDQk9CY0Isg0KHQn9CQ0KHQntCI0JUKK9CU0KDQkNCT0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCg0JDQk9CY0Isg0JLQldCg0JAKK9CU0KDQkNCT0JjQiyDQktCV0KHQndCQCivQlNCg0JDQk9CY0IvQldCS0JjQiyDQkdCe0JPQmNCm0JAKK9CU0KDQkNCT0JjQi9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQi9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQoNCQ0JPQmNCL0JXQktCY0Isg0KDQkNCI0JjQptCQCivQlNCg0JDQk9CY0J0g0JbQkNCg0JrQngor0JTQoNCQ0JPQmNCdINCR0J7Qk9CU0JDQnQor0JTQoNCQ0JPQmNCdINCR0J7QoNCY0JLQntCICivQlNCg0JDQk9CY0J0g0JTQkNCd0JjQm9CeCivQlNCg0JDQk9CY0J0g0JTQldCh0JDQndCa0JAKK9CU0KDQkNCT0JjQnSDQlNCj0KjQmtCeCivQlNCg0JDQk9CY0J0g0JPQntCg0JTQkNCd0JAKK9CU0KDQkNCT0JjQnSDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JTQoNCQ0JPQmNCdINCI0J7QktCeINCU0JjQn9CbINCY0J3Qkwor0JTQoNCQ0JPQmNCdINCb0JDQl9CQ0KAKK9CU0KDQkNCT0JjQnSDQnNCQ0KDQmtCeCivQlNCg0JDQk9CY0J0g0JzQmNCe0JTQoNCQ0JMKK9CU0KDQkNCT0JjQnSDQnNCY0J7QlNCg0JDQkwor0JTQoNCQ0JPQmNCdINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQmNCdINCf0JXQotCg0JjQiNCQCivQlNCg0JDQk9CY0J0g0KDQkNCU0JjQktCe0IgKK9CU0KDQkNCT0JjQnSDQoNCY0KHQotCeCivQlNCg0JDQk9CY0J0g0KHQkNCo0JAKK9CU0KDQkNCT0JjQnSDQodCe0JrQmNCm0JAKK9CU0KDQkNCT0JjQnSDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0JjQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQnSDQktCQ0KHQkAor0JTQoNCQ0JPQmNCdINCS0J7QiNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQnSDQl9Ce0KDQkNCdCivQlNCg0JDQk9CY0J3Qp9CY0Isg0JTQo9Co0JDQnQor0JTQoNCQ0JPQmNCd0KfQmNCLINCh0JvQkNCS0JrQngor0JTQoNCQ0JPQntCo0JXQkiDQlNCg0JDQk9CQ0J0KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCW0JXQidCa0J4KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQkdCe0KjQmtCeCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQk9Ce0IjQmtCeCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQpdCg0JjQodCi0JjQndCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQntCI0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCX0JvQkNCi0JDQndCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JDQndCa0JjQptCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JHQntCo0JrQngor0JTQoNCQ0JPQntCI0JvQntCSINCU0KPQqNCQ0J0KK9CU0KDQkNCT0J7QiNCb0J7QkiDQlNCj0JHQoNCQ0JLQmtCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JPQkNCS0KDQkAor0JTQoNCQ0JPQntCI0JvQntCSINCb0JDQl9CQ0KAKK9CU0KDQkNCT0J7QiNCb0J7QkiDQnNCQ0KDQk9CY0KLQkAor0JTQoNCQ0JPQntCI0JvQntCSINCc0JjQm9Ce0KgKK9CU0KDQkNCT0J7QiNCb0J7QkiDQnNCY0JvQntCoCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0JTQoNCQ0JPQntCI0JvQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9CU0KDQkNCT0J7QiNCb0J7QktCY0Isg0JTQo9Co0JrQngor0JTQoNCQ0JPQntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQlNCg0JDQk9Ce0IjQm9Ce0JLQmNCLINCc0JDQoNCQCivQlNCg0JDQk9Ce0IjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCT0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JPQntCI0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CU0KDQkNCT0J7QidCV0JLQmNCLINCT0J7QiNCa0J4KK9CU0KDQkNCT0J7QidCV0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQlNCg0JDQk9Ce0InQldCS0JjQiyDQnNCY0KLQkNCgCivQlNCg0JDQk9Ce0InQldCS0JjQiyDQoNCQ0J3QmtCeCivQlNCg0JDQk9Ce0InQldCS0JjQiyDQodCV0JrQo9Cb0JAKK9CU0KDQkNCT0J7QidCV0JLQmNCLINCh0KLQntCI0JDQnQor0JTQoNCQ0JPQntCJ0JXQktCY0Isg0JLQm9CQ0JTQlQor0JTQoNCQ0JPQntCc0JjQoNCe0JLQmNCLINCC0J7QmtCQCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CU0KDQkNCT0J7QnNCY0KDQntCS0JjQiyDQmNCS0JDQnQor0JTQoNCQ0JPQntCc0JjQoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQntCc0JjQoNCe0JLQmNCLINCh0JDQktCQCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0KLQntCU0J7QoAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JDQndCT0JXQm9CY0J3QkAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JjQm9CY0IjQkAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JrQkNCi0JjQptCQCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQnNCV0JvQkNCd0JjQiNCQCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQnNCY0JvQkNCd0JrQngor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCT0J7QodCQ0JLQkNCmINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JfQo9CX0JDQndCQCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQgtCj0KDQkAor0JTQoNCQ0JPQntCh0JDQktCJ0JXQktCY0Isg0InQmNCJ0JDQndCQCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JAg0JTQmNCf0Jsg0JjQndCTCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0J7QiNCo0JAKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCS0J7QiNCQCivQlNCg0JDQk9Ce0KHQm9CQ0JLQmNCLINCS0JjQlNCQ0JoKK9CU0KDQkNCT0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQlNCg0JDQk9Ce0JLQmNCLINCn0JXQlNCeCivQlNCg0JDQk9Ce0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQlNCg0JDQk9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQoNCQ0JPQntCS0JjQiyDQk9Ce0IjQmtCeCivQlNCg0JDQk9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQlNCg0JDQk9Ce0JLQmNCLINCI0JDQodCc0JjQndCa0JAKK9CU0KDQkNCT0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CU0KDQkNCT0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQmNCLCivQlNCg0JDQk9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQoNCQ0JPQntCS0JjQiyDQnNCY0KDQkAor0JTQoNCQ0JPQntCS0JjQiyDQoNCQ0J3QmtCeCivQlNCg0JDQk9Ce0JLQmNCLINCh0J3QmNCI0JXQltCQ0J3QkAor0JTQoNCQ0JPQntCS0JjQiyDQodCi0JDQnNCV0J3QmtCQCivQlNCg0JDQk9Ce0JLQmNCLINCh0JLQldCi0JjQnNCY0KAKK9CU0KDQkNCT0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JTQoNCQ0JPQntCS0JjQiyDQktCV0KDQkAor0JTQoNCQ0JPQntCS0JjQiyDQktCY0JTQkNCaCivQlNCg0JDQk9Ce0JLQmNCLINCS0JvQkNCU0JAKK9CU0KDQkNCT0J7QktCY0Isg0JfQntCg0JDQnQor0JTQoNCQ0JPQo9Cc0JjQm9CeINCc0JjQm9Ce0JzQmNCgCivQlNCg0JDQk9Cj0JzQmNCb0J4g0JzQmNCb0KPQotCY0J0KK9CU0KDQkNCT0KPQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0KPQndCe0JLQmNCLINCf0JXQoNCeCivQlNCg0JDQk9Cj0KLQmNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0JTQoNCQ0JPQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCT0KPQotCY0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQoNCQ0JPQo9Ci0JjQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0KDQkNClINCI0JXQm9CY0KHQkNCS0JXQotCQCivQlNCg0JDQpSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JTQoNCQ0KXQntCi0KPQodCa0Jgg0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0KXQntCi0KPQodCa0Jgg0J/QldCi0JDQoAor0JTQoNCQ0JrQmNCLINCU0KDQkNCT0JjQqNCQCivQlNCg0JDQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQlNCg0JDQmtCj0Jsg0JLQkNCh0J4KK9CU0KDQkNCa0KPQm9CQINCU0KPQqNCQ0J0KK9CU0KDQkNCa0KPQm9CQINCg0JDQlNCc0JjQm9CQCivQlNCg0JDQmtCj0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JDQmtCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQoNCQ0JrQo9Cb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9CU0KDQkNCa0KPQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JTQoNCQ0JrQo9Cb0JjQiyDQldCg0JbQldCR0JXQogor0JTQoNCQ0JrQo9Cb0JjQiyDQiNCV0JvQldCd0JAKK9CU0KDQkNCa0KPQm9CY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JrQo9Cb0JjQiyDQmtCe0KHQotCQCivQlNCg0JDQmtCj0JvQmNCLINCb0JDQl9CQ0KAKK9CU0KDQkNCa0KPQm9CY0Isg0InQo9CR0JjQptCQCivQlNCg0JDQmtCj0JvQmNCLINCc0JDQoNCQCivQlNCg0JDQmtCj0JvQmNCLINCc0JDQoNCQCivQlNCg0JDQmtCj0JvQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQlNCg0JDQmtCj0JvQmNCLINCc0JjQm9CY0JLQntCICivQlNCg0JDQmtCj0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0KDQkNCa0KPQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0KDQkNCa0KPQm9CY0Isg0KHQnNCY0InQkAor0JTQoNCQ0JrQo9Cb0JjQiyDQodCe0KTQmNCI0JAKK9CU0KDQkNCa0KPQm9CY0Isg0KHQotCV0JLQkNCdCivQlNCg0JDQmtCj0JvQmNCLINCh0KLQntCI0JDQndCa0JAKK9CU0KDQkNCa0KPQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQlNCg0JDQmtCj0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CU0KDQkNCa0KPQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQoNCQ0JrQo9Cb0JjQiyDQotCe0JTQntCgCivQlNCg0JDQmtCj0JvQmNCLINCX0J7QoNCQ0J0KK9CU0KDQkNCf0KjQmNCdINCn0JDQktCQCivQlNCg0JDQn9Co0JjQnSDQgtCe0KDQgtCVCivQlNCg0JDQn9Co0JjQnSDQlNCQ0J3QmNCm0JAKK9CU0KDQkNCf0KjQmNCdINCb0JXQn9Ce0KHQkNCS0JAKK9CU0KDQkNCf0KjQmNCdINCc0JjQm9CQ0J0KK9CU0KDQkNCf0KjQmNCdINCc0JjQm9CV0J3QmtCeCivQlNCg0JDQn9Co0JjQnSDQn9CV0KLQkNCgCivQlNCg0JDQn9Co0JjQnSDQn9Cg0JXQlNCg0JDQkwor0JTQoNCQ0J/QqNCY0J0g0KHQkNCS0JAKK9CU0KDQkNCf0KjQmNCdINCX0JDQk9Ce0KDQmtCQCivQlNCg0JDQn9Co0JjQnSDQl9Ce0KDQkNCdCivQlNCg0JDQn9CY0Isg0JHQntCT0JTQkNCdCivQlNCg0JDQn9CY0Isg0KHQldCd0JjQotCQCivQlNCg0JDQn9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQoNCQ0J/QmNCLINCS0JXQm9CY0JzQmNCgCivQlNCg0JDQn9Ce0Kgg0KHQotCV0JLQkNCdCivQlNCg0JXQqNCa0JDQmCDQqNCQ0J3QlNCe0KAKK9CU0KDQldCm0KPQnSDQktCV0InQmtCeCivQlNCg0JXQpdCV0KAg0JvQkNCI0J7QqAor0JTQoNCV0KXQldCgINCd0JjQmtCe0JvQkAor0JTQoNCV0KXQldCgINCe0KLQngor0JTQoNCV0KXQldCgINCS0JjQm9CY0Jwg0JTQmNCf0Jsg0JjQndCTCivQlNCg0JXQmtCe0JLQmNCLINCC0KPQoNCeCivQlNCg0JXQmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0JTQoNCV0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQlNCg0JXQnNCf0JXQotCY0Isg0JTQkNCg0JrQngor0JTQoNCV0JzQn9CV0KLQmNCLINCf0JXQotCQ0KAKK9CU0KDQldCc0J/QldCi0JjQiyDQl9CU0JXQndCa0J4KK9CU0KDQldCK0JDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JTQoNCV0J3QmtCe0JLQmNCLINCb0JDQodCb0J4KK9CU0KDQldCd0J7QktCn0JDQndCY0J0g0InQo9CR0J7QnNCY0KAKK9CU0KDQldCd0J7QktCQ0KYg0KDQkNCd0JrQngor0JTQoNCV0J3QntCS0JXQpiDQptCS0JXQotCeCivQlNCg0JXQotCQ0KAg0JzQmNCg0JrQngor0JTQoNCV0JfQk9CQINCI0JDQmtCe0JIKK9CU0KDQldCX0JPQkCDQotCe0JTQntCgCivQlNCg0JXQl9CT0JjQiyDQlNCQ0KDQkAor0JTQoNCV0JfQk9CY0Isg0JjQm9CY0IjQkAor0JTQoNCV0JfQk9CY0Isg0JzQkNCg0JjQiNCQCivQlNCg0JXQl9CT0JjQiyDQnNCY0JvQkNCdCivQlNCg0JXQl9CT0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQoNCV0JfQk9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JTQoNCV0JfQk9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQoNCY0JPQo9Cb0J7QkiDQodCf0JDQodCe0IjQlQor0JTQoNCY0J3Qp9CV0JLQmNCLINCW0JjQktCe0KLQkAor0JTQoNCY0J3Qp9CV0JLQmNCLINCU0JXQodCQ0J3QmtCQINCU0KAKK9CU0KDQmNCd0KfQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CU0KDQmNCd0KfQmNCLINCc0JjQm9Ce0IjQmtCeCivQlNCg0JjQndCn0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQoNCY0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JjQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQoNCY0J3QmNCLINCI0JDQk9Ce0JTQkAor0JTQoNCY0J3QmNCLINCc0JjQm9CQ0J0KK9CU0KDQmNCd0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCY0J3QmNCLINCc0JjQm9CV0KLQkAor0JTQoNCY0J3QmNCLINCc0JjQm9Ce0JLQkNCdCivQlNCg0JjQndCY0Isg0JzQmNCg0JrQngor0JTQoNCY0J3QmNCLINCd0JXQlNCV0InQmtCeCivQlNCg0JjQndCY0Isg0J/QldCg0J4KK9CU0KDQmNCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQoNCY0J3QmNCLINCh0JDQktCeCivQlNCg0JjQndCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CU0KDQmNCd0JjQiyDQodCi0JXQktCeCivQlNCg0JjQndCY0Isg0KLQntCc0J4KK9CU0KDQmNCd0JjQiyDQl9CU0KDQkNCS0JrQngor0JTQoNCY0IrQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JjQitCe0JLQodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JTQoNCaINCR0JDQoNCR0JDQoNCQCivQlNCg0JrQo9Co0JjQiyDQmNCb0JjQiNCQCivQlNCg0InQkNCn0JAg0ILQntCg0ILQlQor0JTQoNCJ0JDQp9CQINCC0J7QoNCC0JUKK9CU0KDQidCQ0KfQkCDQkdCg0JDQndCa0JAKK9CU0KDQidCQ0KfQkCDQlNCg0JDQk9CQ0J0KK9CU0KDQidCQ0KfQkCDQlNCj0KjQkNCdCivQlNCg0InQkNCn0JAg0JzQkNCg0JrQngor0JTQoNCJ0JDQp9CQINCc0JjQi9CQCivQlNCg0InQkNCn0JAg0JzQmNCb0JDQndCa0J4KK9CU0KDQidCQ0KfQkCDQnNCY0JvQntCg0JDQlAor0JTQoNCJ0JDQp9CQINCc0JjQoNCa0J4KK9CU0KDQidCQ0KfQkCDQndCV0ILQngor0JTQoNCJ0JDQp9CQINCd0JXQndCQ0JQKK9CU0KDQidCQ0KfQkCDQoNCQ0JTQntCS0JDQnQor0JTQoNCJ0JDQp9CQINCg0JDQlNCe0JLQkNCdCivQlNCg0InQkNCn0JAg0KHQotCe0IjQkAor0JTQoNCJ0JDQp9CQINCX0JTQoNCQ0JLQmtCQCivQlNCg0InQkNCn0JjQiyDQmtCQ0KLQkAor0JTQoNCJ0JXQktCY0Isg0ILQo9Cg0J4KK9CU0KDQidCV0JLQmNCLINCQ0J3QmNCm0JAKK9CU0KDQidCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQlNCg0InQldCS0JjQiyDQnNCY0JvQldCi0JAKK9CU0KDQidCV0JLQmNCLINCc0JjQidCQCivQlNCg0InQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQoNCJ0JjQiyDQnNCY0JvQkNCU0JjQnQor0JTQoNCJ0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQoNCc0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JTQoNCc0JDQndCQ0KYg0KHQotCQ0J3QmtCeCivQlNCg0JzQkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQlNCg0J3QlNCQ0KDQldCS0JjQiyDQkdCe0KDQkAor0JTQoNCd0JTQkNCg0JXQktCY0Isg0JHQntCg0JAKK9CU0KDQndCU0JDQoNCV0JLQmNCLINCa0JDQotCY0KbQkAor0JTQoNCd0JTQkNCg0KHQmtCYINCc0JjQm9CQ0J0KK9CU0KDQndCU0JDQoNCh0JrQmCDQktCV0JvQmNCc0JjQoAor0JTQoNCe0JHQkNCmINCW0JDQoNCa0J4KK9CU0KDQntCR0JDQpiDQltCQ0KDQmtCeCivQlNCg0J7QkdCQ0KYg0ILQntCg0ILQlQor0JTQoNCe0JHQkNCmINCQ0J3QkAor0JTQoNCe0JHQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JTQoNCe0JHQkNCmINCJ0JjQidCQ0J3QkAor0JTQoNCe0JHQkNCmINCc0JjQm9CQ0J0KK9CU0KDQntCR0JDQpiDQnNCY0JvQkNCdCivQlNCg0J7QkdCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQntCR0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQlNCg0J7QkdCQ0KYg0J3QldCd0JDQlAor0JTQoNCe0JHQkNCmINCd0JjQmtCe0JvQkAor0JTQoNCe0JHQkNCmINCf0KDQldCU0KDQkNCTCivQlNCg0J7QkdCQ0KYg0KDQkNCU0J7QiNCa0JAKK9CU0KDQntCR0JDQpiDQoNCQ0JTQntCI0JrQkAor0JTQoNCe0JHQkNCmINCh0JvQkNCS0JrQngor0JTQoNCe0JHQkNCmINCS0JvQkNCU0J4KK9CU0KDQntCR0JDQpiDQktCj0JrQkNCo0JjQnSDQndCe0JLQmNCd0JDQoAor0JTQoNCe0JHQkNCmINCX0JTQoNCQ0JLQmtCeCivQlNCg0J7QkdCY0J3QkCDQiNCj0JvQmNCI0JDQndCQCivQlNCg0J7QkdCY0J3QkCDQidCj0JHQmNCm0JAKK9CU0KDQntCR0JjQndCQINCc0JjQpdCQ0IkKK9CU0KDQntCR0JjQitCQ0Jog0KDQo9CW0JAKK9CU0KDQntCR0IrQkNCaINCV0JLQmNCm0JAKK9CU0KDQntCR0IrQkNCaINCJ0JjQidCQ0J3QkAor0JTQoNCe0JHQitCQ0Jog0JzQmNCb0JjQktCe0IjQlQor0JTQoNCe0JHQitCQ0Jog0JzQmNCe0JTQoNCQ0JMKK9CU0KDQntCR0IrQkNCaINCc0J7QnNCn0JjQm9CeCivQlNCg0J7QkdCK0JDQmiDQoNCQ0JTQmNCo0JAKK9CU0KDQntCR0IrQkNCaINCg0JDQlNCe0IjQmNCm0JAKK9CU0KDQntCR0IrQkNCaINCg0JDQlNCe0IjQmNCm0JAKK9CU0KDQntCR0IrQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQoNCe0JHQitCQ0JrQntCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0JTQoNCe0JHQitCQ0JrQntCS0JjQiyDQoNCY0KHQotCY0JLQntCI0JUKK9CU0KDQntCR0IrQmNCaINCI0J7QodCY0J8KK9CU0KDQntCR0IrQmNCaINCI0KPQlNCY0KIKK9CU0KDQntCK0JDQmiDQltCY0JLQkNCd0JAKK9CU0KDQntCK0JDQmiDQltCY0JLQmtCeCivQlNCg0J7QitCQ0Jog0ILQntCg0ILQlQor0JTQoNCe0IrQkNCaINCU0JDQoNCY0J3QmtCQCivQlNCg0J7QitCQ0Jog0JzQmNCb0JDQnQor0JTQoNCe0IrQkNCaINCc0JjQoNCI0JDQndCQCivQlNCg0J7QitCQ0Jog0J7Qm9CT0JAKK9CU0KDQntCK0JDQmiDQoNCQ0KHQotCa0J4KK9CU0KDQntCK0JDQmiDQodCQ0JLQmNCd0JrQkAor0JTQoNCe0IrQkNCaINCh0KLQldCS0JDQnQor0JTQoNCe0J/QmtCQINCQ0KDQn9CQ0JQKK9CU0KDQntCf0JrQkCDQiNCV0JvQldCd0JAKK9CU0KDQntCf0JrQkCDQndCQ0KLQkNCo0JAKK9CU0KDQntCf0JrQkCDQodCi0JXQktCQ0J0KK9CU0KDQntCf0J4g0JzQmNCb0JrQkAor0JTQoNCe0J/QniDQktCQ0KHQkAor0JTQoNCe0J/QniDQl9Ce0KDQkNCdCivQlNCg0J7Ql9CU0JjQmiDQmNCb0J7QndCQCivQlNCg0J7Ql9CU0JjQmiDQnNCQ0KDQmNCI0JAKK9CU0KDQo9CW0JXQotCY0Isg0JbQmNCa0JAKK9CU0KDQo9CT0J7QktCY0Isg0KDQo9CW0JjQptCQCivQlNCg0KPQk9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0JTQoNCS0JXQndCP0JjQiNCQINCg0JDQlNCe0JLQkNCdCivQlNCg0JLQldCd0I/QmNCI0JAg0KHQm9CQ0JLQmtCeCivQlNCg0JLQldCK0JDQmiDQktCV0KDQmNCm0JAKK9CU0KPQp9CV0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0KPQp9CY0Isg0JzQmNCb0JDQnQor0JTQo9Cn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0KjQkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0KPQqNCQ0J3QmNCLINCb0JDQl9CQ0KAKK9CU0KPQqNCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JTQo9Co0JDQndCY0Isg0J3QkNCU0JAKK9CU0KPQqNCQ0J3QmNCLINCd0JXQndCQ0JQKK9CU0KPQqNCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0JTQo9Co0JDQndCe0JLQmNCLINCX0JLQldCX0JTQkNCd0JAKK9CU0KPQqNCV0Jog0JfQm9CQ0KLQmtCeINCU0JjQn9CbINCe0JXQpgor0JTQo9Co0JjQiyDQkdCg0JDQndCa0J4KK9CU0KPQqNCY0Isg0JfQntCg0JDQnQor0JTQo9CL0JDQmiDQkNCd0JTQoNCY0IjQkAor0JTQo9CL0JDQmiDQkNCg0JDQndCa0JAKK9CU0KPQi9CQ0Jog0JHQkNCg0JHQkNCg0JAKK9CU0KPQi9CQ0Jog0JzQmNCl0JDQiNCb0J4KK9CU0KPQi9CQ0Jog0KLQntCc0JAKK9CU0KPQgtCQ0Jog0JTQoNCQ0JPQo9Ci0JjQnQor0JTQo9CC0JjQmiDQpNCg0JDQitCQCivQlNCj0JHQkNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CU0KPQkdCQ0JjQiyDQnNCY0JvQkNCdCivQlNCj0JHQkNCY0Isg0JzQmNCg0JrQngor0JTQo9CR0JDQiNCY0Isg0JbQkNCg0JrQngor0JTQo9CR0JDQiNCY0Isg0ILQo9Cg0JAKK9CU0KPQkdCQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCj0JHQkNCI0JjQiyDQkdCY0InQkNCd0JAKK9CU0KPQkdCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JTQo9CR0JDQiNCY0Isg0JzQmNCb0JjQptCQCivQlNCj0JHQkNCI0JjQiyDQnNCY0JvQntCoCivQlNCj0JHQkNCI0JjQiyDQnNCY0KDQmtCeCivQlNCj0JHQkNCI0JjQiyDQktCY0JTQkAor0JTQo9CR0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0JHQidCV0JLQmNCLINCh0KLQntCI0JDQnQor0JTQo9CR0InQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCj0JHQidCV0JLQmNCLINCX0JvQkNCi0JAKK9CU0KPQkdCK0JDQmtCe0JLQmNCLINCc0JDQoNCi0JAKK9CU0KPQkdCe0JLQodCa0JAg0JzQmNCb0J7QotCQCivQlNCj0JHQntCS0KHQmtCYINCI0JDQndCa0J4KK9CU0KPQkdCe0JLQodCa0Jgg0JrQkNCi0JjQptCQCivQlNCj0JHQoNCQ0JLQkNCmINCU0KPQqNCQ0J0KK9CU0KPQkdCg0J7QiNCQINCU0JDQndCY0KbQkAor0JTQo9CR0KDQntCI0JAg0KHQm9Ce0JHQntCU0JDQnQor0JTQo9Cm0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CU0KPQptCY0Isg0JzQmNCb0JDQnQor0JTQo9CU0JAg0J/QkNCS0JvQlQor0JTQo9CU0JDQqCDQgtCj0KDQkAor0JTQo9CU0JDQqCDQgtCj0KDQkAor0JTQo9CU0JDQqCDQgtCj0KDQkAor0JTQo9CU0JDQqCDQkNCd0JAKK9CU0KPQlNCQ0Kgg0JDQndCi0JDQmwor0JTQo9CU0JDQqCDQkNCg0J/QkNCUCivQlNCj0JTQkNCoINCQ0KDQn9CQ0JQKK9CU0KPQlNCQ0Kgg0JHQntCg0JjQoQor0JTQo9CU0JDQqCDQpdCV0JvQldCd0JAKK9CU0KPQlNCQ0Kgg0IjQkNCd0J7QqAor0JTQo9CU0JDQqCDQiNCj0JvQmNCI0JDQnQor0JTQo9CU0JDQqCDQm9CQ0JfQkNCgCivQlNCj0JTQkNCoINCc0JDQoNCY0J3QmtCeCivQlNCj0JTQkNCoINCc0JjQpdCQ0IkKK9CU0KPQlNCQ0Kgg0J/QmNCg0J7QqNCa0JAKK9CU0KPQlNCQ0Kgg0KDQntCc0JDQnQor0JTQo9CU0JDQqCDQodCb0JDQktCe0JzQmNCgCivQlNCj0JTQkNCaINCI0JDQoNCe0KHQm9CQ0JIKK9CU0KPQlNCQ0Jog0JzQkNCg0JjQiNCQCivQlNCj0JTQkNCaINCh0KLQldCS0JDQnQor0JTQo9CU0JDQnSDQnNCY0JvQmNCS0J7QiAor0JTQo9CU0JDQoCDQndCY0JrQntCb0JAKK9CU0KPQlNCQ0KDQmNCdINCW0JDQoNCa0J4KK9CU0KPQlNCQ0KDQmNCdINCU0KDQkNCT0JDQnQor0JTQo9CU0JDQoNCY0J0g0KHQkNCS0JAKK9CU0KPQlNCQ0KDQmNCdINCh0KLQldCS0JDQnQor0JTQo9CU0JDQoNCY0J0g0KHQotCV0JLQkNCdCivQlNCj0JTQkNCg0JjQnSDQktCV0KHQldCb0JjQnQor0JTQo9CU0JDQoNCY0J0g0JfQntCg0JDQnQor0JTQo9CU0JDQoNCY0J0g0JfQntCg0JDQnQor0JTQo9CU0JjQiyDQkNCd0JjQptCQCivQlNCj0JTQmNCLINCa0J7QodCi0JAKK9CU0KPQlNCY0Isg0JrQntCh0KLQkAor0JTQo9CU0JjQiyDQnNCQ0KLQlQor0JTQo9CU0JjQiyDQnNCY0JvQkAor0JTQo9CU0JjQiyDQnNCY0JvQlQor0JTQo9CU0JjQiyDQnNCY0JvQntCoCivQlNCj0JTQmNCLINCc0JjQm9Ce0KgKK9CU0KPQlNCY0Isg0J3QkNCU0JAKK9CU0KPQlNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQo9CU0JjQiyDQktCQ0KHQkAor0JTQo9CU0JjQiyDQktCQ0KHQkAor0JTQo9CU0JjQiyDQktCV0KDQmNCm0JAKK9CU0KPQlNCY0Isg0JfQntCg0JDQnQor0JTQo9CU0J7QiNCV0JLQmNCLINCd0JXQj9CQ0JQKK9CU0KPQlNCe0Jog0JTQkNCd0JjQldCbINCU0KAKK9CU0KPQlNCe0Jog0IjQkNCd0JrQngor0JTQo9CU0J7QmiDQn9CQ0JLQldCbCivQlNCj0JTQo9Ca0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KPQlNCj0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0JTQo9Ca0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCj0JTQktCQ0KDQodCa0Jgg0JHQntCW0JjQlNCQ0KAKK9CU0KPQlNCS0JDQoNCh0JrQmCDQlNCg0JDQk9Ce0InQo9CRCivQlNCj0JTQktCQ0KDQodCa0Jgg0JjQktCQ0J0KK9CU0KPQlNCS0JDQoNCh0JrQmCDQn9CQ0IjQkAor0JTQo9CU0JLQkNCg0KHQmtCYINCS0JXQm9CY0J3QmtCQCivQlNCj0JPQkNCI0JvQmNCLINCQ0J3QgtCV0JvQmtCQCivQlNCj0JPQkNCI0JvQmNCLINCQ0KDQiNCQ0J3QkAor0JTQo9CT0JDQiNCb0JjQiyDQnNCY0JvQntCoCivQlNCj0JPQkNCI0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCj0JPQkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0KPQk9CQ0J3Qj9CY0IjQkCDQkdCg0JDQndCa0J4KK9CU0KPQk9CQ0J3Qj9CY0IjQkCDQlNCg0JDQk9Ce0JzQmNCgCivQlNCj0JPQkNCd0I/QmNCI0JAg0JTQo9Co0JDQnQor0JTQo9CT0JDQndCP0JjQiNCQINCd0JXQlNCV0InQmtCeCivQlNCj0JPQmNCdINCh0KLQntCI0JDQnQor0JTQo9CT0J7QqNCY0IjQkCDQltCY0JLQmtCeCivQlNCj0JPQntCo0JjQiNCQLdCc0JDQmtCh0JjQnNCe0JLQmNCLINCd0JDQlNCQCivQlNCj0JPQntCK0JjQiyDQnNCY0JvQlQor0JTQo9CT0J7QitCY0Isg0JzQmNCb0KPQotCY0J0KK9CU0KPQk9Ce0IrQmNCLINCd0JjQmtCe0JvQkAor0JTQo9CT0J7QitCY0Isg0KHQktCV0KLQntCc0JjQoAor0JTQo9ClINCa0JDQotCQ0KDQmNCd0JAKK9CU0KPQpdCQ0KfQldCaINCS0JvQkNCU0J4KK9CU0KPQmNCLINCI0J7QodCY0J8KK9CU0KPQiNCQ0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CU0KPQiNCQ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0KPQiNCQ0JrQntCS0JjQiyDQndCe0JLQkAor0JTQo9CI0JDQmtCe0JLQmNCLINCS0JXQidCa0J4KK9CU0KPQiNCV0JLQodCa0Jgg0JLQkNCd0JPQldCbINCU0KAKK9CU0KPQiNCY0Isg0ILQntCg0ILQlQor0JTQo9CI0JjQiyDQmNCS0JDQnQor0JTQo9CI0JjQiyDQmNCS0JjQptCQCivQlNCj0IjQmNCLINCJ0KPQkdCY0KbQkAor0JTQo9CI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQo9CI0JjQiyDQodCc0JjQidCQCivQlNCj0IjQmNCLINCh0KLQntCI0JDQndCa0JAKK9CU0KPQiNCY0J0g0JbQmNCS0JAKK9CU0KPQiNCY0J0g0JbQmNCS0JrQngor0JTQo9CI0JjQnSDQlNCQ0J3QmNCm0JAKK9CU0KPQiNCY0J0g0JvQo9Ca0JAKK9CU0KPQiNCY0J0g0KHQmNCc0JXQntCdCivQlNCj0IjQmNCdINCh0JLQldCi0JjQodCb0JDQkgor0JTQo9CI0JjQnSDQotCV0J7QlNCe0KAKK9CU0KPQiNCY0J0g0JLQmNCi0J7QnNCY0KAKK9CU0KPQiNCa0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CU0KPQiNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQlNCj0IjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0KPQiNCa0J7QktCY0Isg0KLQldCe0JTQntCgCivQlNCj0IjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CU0KPQiNCb0J7QktCY0Isg0JHQntCg0JAKK9CU0KPQiNCc0JjQiyDQkNCd0KLQlQor0JTQo9CI0JzQntCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CU0KPQiNCc0J7QktCY0Isg0JXQktCQCivQlNCj0IjQnNCe0JLQmNCLINCk0JXQoNCV0J3Qpgor0JTQo9CI0JzQntCS0JjQiyDQiNCe0KHQmNCfCivQlNCj0IjQntCS0JjQiyDQmNCb0JjQiNCQCivQlNCj0IjQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQo9CI0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CU0KPQmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9CU0KPQmtCQ0Jgg0JDQndCU0KDQkNCoCivQlNCj0JrQkNCdINCd0JDQotCQ0KjQkAor0JTQo9Ca0JDQoNCY0Isg0JLQmNCU0JAKK9CU0KPQmtCV0KEg0KTQntCh0JrQkAor0JTQo9Ca0JjQiyDQgtCj0KDQngor0JTQo9Ca0JjQiyDQkdCe0KDQkAor0JTQo9Ca0JjQiyDQlNCQ0J3QmNCb0J4KK9CU0KPQmtCY0Isg0JTQoNCQ0JPQkNCdCivQlNCj0JrQmNCLINCU0KDQkNCT0JjQptCQCivQlNCj0JrQmNCLINCU0KPQqNCQ0J0KK9CU0KPQmtCY0Isg0JjQktCQ0J3QmtCQCivQlNCj0JrQmNCLINCI0JXQm9CV0J3QkAor0JTQo9Ca0JjQiyDQiNCe0JLQkNCdCivQlNCj0JrQmNCLINCI0J7QktCQ0J0KK9CU0KPQmtCY0Isg0JrQntCh0JAKK9CU0KPQmtCY0Isg0InQo9CR0JjQptCQCivQlNCj0JrQmNCLINCc0JjQm9CQ0J0KK9CU0KPQmtCY0Isg0JzQmNCb0JDQnQor0JTQo9Ca0JjQiyDQnNCY0JvQkNCdCivQlNCj0JrQmNCLINCc0JjQm9CY0KbQkAor0JTQo9Ca0JjQiyDQnNCY0JvQmNCm0JAKK9CU0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0KPQmtCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0KPQmtCY0Isg0KDQkNCU0JUKK9CU0KPQmtCY0Isg0KDQkNCU0JUKK9CU0KPQmtCY0Isg0KDQkNCI0JrQngor0JTQo9Ca0JjQiyDQodCb0JDQktCY0KbQkAor0JTQo9Ca0JjQiyDQodCe0KTQmNCI0JAKK9CU0KPQmtCY0Isg0KHQotCV0JLQniDQlNCY0J/QmyDQmNCd0JMKK9CU0KPQmtCY0Isg0JLQo9Ca0JDQqNCY0J0g0JTQoAor0JTQo9Ca0JjQiyDQl9Ce0KDQkNCdCivQlNCj0JrQntCS0JAg0JvQmNCb0JgKK9CU0KPQmtCe0JLQodCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQlNCj0JvQldCI0JDQnSDQltCY0JLQkNCU0JjQndCa0JAKK9CU0KPQm9CV0IjQkNCdINCh0JvQkNCS0JrQngor0JTQo9Cb0JjQiyDQqNCQ0J3QlNCe0KAKK9CU0KPQm9CY0Isg0JDQndCa0JAKK9CU0KPQm9CY0Isg0JjQktCQ0J0KK9CU0KPQm9CY0Isg0IjQntCh0JjQnwor0JTQo9Cb0JjQiyDQiNCe0KHQmNCfCivQlNCj0JvQmNCLINCJ0KPQlNCV0JLQmNCiCivQlNCj0JvQmNCLINCc0JDQk9CU0JAKK9CU0KPQm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CU0KPQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQo9Cb0JjQiyDQndCY0JrQntCb0JAKK9CU0KPQm9Ce0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQlNCj0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CU0KPQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JTQo9Cb0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQo9Cb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CU0KPQm9Ce0JLQmNCLINCc0JjQm9Cj0J0KK9CU0KPQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCj0JvQntCS0JjQiyDQoNCQ0J3QmtCeCivQlNCj0JvQntCS0JjQiyDQoNCQ0KLQmtCQCivQlNCj0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQlNCj0JzQkCDQnNCY0JvQntCg0JDQlAor0JTQo9Cc0JDQndCn0JjQiyDQodCb0JDQktCY0KbQkAor0JTQo9Cc0JDQndCn0JjQiyDQl9CU0KDQkNCS0JrQngor0JTQo9Cc0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JTQo9Cc0JXQlNCQ0Kgg0KHQn9CQ0KHQntCI0JUKK9CU0KPQnNCV0JTQkNCoINCS0JDQodCY0JvQmNCI0JUKK9CU0KPQnNCV0J3Qp9CY0Isg0JjQktCQ0J0KK9CU0KPQnNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CU0KPQnNCY0Isg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JTQo9Cc0JjQotCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQo9Cc0JjQotCg0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0KPQnNCY0KLQoNCe0JIg0JvQo9Ca0JAKK9CU0KPQnNCY0KLQoNCe0JIg0JzQkNCg0JjQiNCQCivQlNCj0JzQmNCi0KDQntCSINCc0JjQntCU0KDQkNCTCivQlNCj0JzQmNCi0KDQntCSINCd0JXQlNCV0InQmtCeCivQlNCj0JzQmNCi0KDQntCSINCh0JvQkNCS0JrQngor0JTQo9Cc0JjQotCg0J7QkiDQktCV0KDQmNCm0JAKK9CU0KPQnNCY0KLQoNCe0JIg0JLQntCI0JjQnQor0JTQo9Cc0J3QmNCLINCo0JDQoNCY0JrQkAor0JTQo9Cc0J3QmNCLINCc0JjQm9CQ0J0KK9CU0KPQnNCe0J3QmNCLINCR0KDQkNCd0JrQngor0JTQo9Cc0J7QndCY0Isg0J/QldCi0JDQoAor0JTQo9Cd0ILQldCgINCg0JDQlNCVCivQlNCj0J3QgtCV0KAg0KDQkNCU0JUKK9CU0KPQndCC0JXQoNCY0J0g0ILQntCg0ILQlQor0JTQo9Cd0ILQldCg0J7QkiDQmtCe0KHQkNCd0JAKK9CU0KPQndCC0JXQoNCe0JIg0J3QkNCU0JAKK9CU0KPQndCC0JXQoNCe0JIg0J/QmNCg0J7QqNCa0JAKK9CU0KPQndCC0JXQoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCj0J3QgtCV0KDQodCa0Jgg0JbQmNCS0JDQnQor0JTQo9Cd0ILQldCg0KHQmtCYINCC0J7QoNCC0JUKK9CU0KPQndCC0JXQoNCh0JrQmCDQgtCe0KDQgtCVCivQlNCj0J3QgtCV0KDQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KPQndCC0JXQoNCh0JrQmCDQkNCd0JAKK9CU0KPQndCC0JXQoNCh0JrQmCDQptCS0JXQotCQ0J3QkAor0JTQo9Cd0ILQldCg0KHQmtCYINCU0KDQkNCT0JDQnQor0JTQo9Cd0ILQldCg0KHQmtCYINCY0JLQkNCd0JrQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCY0JLQkNCdCivQlNCj0J3QgtCV0KDQodCa0Jgg0IjQntCS0JDQnQor0JTQo9Cd0ILQldCg0KHQmtCYINCc0JDQoNCY0IjQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCc0JjQm9CQ0J0KK9CU0KPQndCC0JXQoNCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JTQo9Cd0ILQldCg0KHQmtCYINCd0J7QktCQ0JoKK9CU0KPQndCC0JXQoNCh0JrQmCDQodCY0JzQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCh0J7QpNCY0IjQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCh0KLQkNCd0JjQodCb0JDQkgor0JTQo9Cd0ILQldCg0KHQmtCYINCi0JjQpdCe0JzQmNCgCivQlNCj0J3QgtCV0KDQodCa0Jgg0KLQoNCY0JLQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCX0JTQoNCQ0JLQmtCeCivQlNCj0J3QlNCY0Isg0KXQkNCg0JDQm9CQ0JzQn9CY0IjQlQor0JTQo9Cd0JTQmNCLINCI0JXQm9CV0J3QkAor0JTQo9Cd0JTQmNCLINCh0JvQkNCS0JrQngor0JTQo9Cd0JTQntCS0JjQiyDQodCi0IjQldCf0JDQnQor0JTQo9Cd0JjQiyDQlNCg0JDQk9CY0IsKK9CU0KPQitCY0Isg0KHQotCe0IjQkNCdCivQlNCj0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQlNCj0J3QntCS0JjQiyDQndCQ0KLQkNCo0JAKK9CU0KPQn9CQ0Jog0JjQnNCg0JUKK9CU0KPQn9CQ0Jog0JzQkNCg0JjQiNCQCivQlNCj0J/QkNCb0J4g0KHQm9CQ0JLQmtCQCivQlNCj0J/QntCgINCT0J7QoNCU0JDQndCQCivQlNCj0J/QntCgINCc0JjQm9Ce0KgKK9CU0KPQn9Ce0KAg0JzQmNCg0JrQngor0JTQo9Cf0J7QoCDQl9Ce0KDQmNCm0JAKK9CU0KPQoNCQ0KfQmtCe0JLQmNCLINCR0JDQpdCg0JjQiNCQCivQlNCj0KDQkNCn0JrQntCS0JjQiyDQodCV0J3QmNCI0JAKK9CU0KPQoNCQ0JrQntCS0JjQiyDQgtCj0KDQngor0JTQo9Cg0JDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQo9Cg0JDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CU0KPQoNCQ0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQlNCj0KDQkNCdINCR0KDQkNCd0JrQngor0JTQo9Cg0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CU0KPQoNCT0KPQotCe0JLQmNCLINCg0JjQpNCQ0JQKK9CU0KPQoNCa0JDQm9CY0Isg0JLQmNCa0KLQntCgCivQlNCj0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCj0KDQmtCe0JLQmNCLINCS0JvQkNCI0JrQngor0JTQo9Cg0JrQo9Cb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQo9Cg0JrQo9Cb0JjQiyDQodCf0JDQodCe0IjQlQor0JTQo9Cg0JvQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0KPQoNCc0JDQnSDQlNCg0JDQk9Ce0InQo9CRCivQlNCj0KDQnNCQ0J0g0JPQntCI0JrQngor0JTQo9Cg0JzQkNCdINCd0JDQlNCQCivQlNCj0KDQnNCQ0J0g0KDQkNCh0KLQmNCh0JvQkNCSCivQlNCj0KDQntCo0JrQkCDQqNCQ0J3QlNCe0KAKK9CU0KPQoNCe0KjQmtCQINCY0JLQkNCd0JrQkAor0JTQo9Cg0J7QqNCa0JAg0IjQldCb0JXQndCQCivQlNCj0KDQntCo0JrQkCDQnNCY0KXQkNCI0JvQngor0JTQo9Cg0J7QqNCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JTQo9Cg0KPQqNCa0JAg0J/QkNCbCivQlNCj0KDQo9Ci0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCj0KDQo9Ci0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0KPQoNCj0KLQntCS0JjQiyDQodCV0J3QmtCQCivQlNCj0KHQmNCLINCT0J7QodCf0JDQktCQCivQlNCj0KHQn9CQ0KDQkCDQnNCY0JvQldCd0JAKK9CU0KPQodCf0JXQoCDQqNCY0JzQngor0JTQo9Ci0JjQndCQINCQ0J3QlNCg0JjQiNCQCivQlNCj0KLQmNCd0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCj0KLQmNCd0JAg0JHQoNCQ0KLQntCJ0KPQkQor0JTQo9Ci0JjQndCQINCU0KDQkNCT0JDQnQor0JTQo9Ci0JjQndCQINCY0KDQldCd0JAKK9CU0KPQotCY0J3QkCDQnNCY0J7QnNCY0KAKK9CU0KPQotCY0J3QkCDQodCb0J7QkdCe0JTQkNCdCivQlNCj0KLQmNCd0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JTQo9CS0IrQkNCaINCU0JjQktCd0JAKK9CU0KPQktCK0JDQmiDQlNCY0JLQndCQCivQlNCj0JLQitCQ0Jog0JjQktCY0KbQkAor0JTQo9CS0IrQkNCaINCa0J7QodCi0JAKK9CU0KPQktCK0JDQmiDQm9CQ0JfQkNCgCivQlNCj0JLQitCQ0Jog0JvQkNCX0JDQoAor0JTQo9CS0IrQkNCaINCc0JDQoNCQCivQlNCj0JLQitCQ0Jog0JzQmNCb0JXQndCa0J4KK9CU0KPQktCK0JDQmiDQnNCY0JvQntCg0JDQlAor0JTQo9CS0IrQkNCaINCd0JXQndCQ0JQKK9CU0KPQktCK0JDQmiDQoNCQ0JTQntCI0JrQkAor0JTQo9CS0IrQkNCaINCh0KLQkNCd0JAKK9CU0JLQntCg0JDQp9Ca0J4g0KjQkNCd0JTQntCgCivQlNCS0J7QoNCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JXQqNCa0Jgg0JXQoNCW0JXQkdCV0KIKK9CV0KjQmtCY0KfQldCS0JjQiyDQktCQ0KHQkAor0JXQi9CY0Jwg0KDQkNCU0J7QktCQ0J0KK9CV0IvQmNCc0J7QktCY0Isg0JPQntCI0JrQngor0JXQi9CY0JzQntCS0JjQiyDQndCY0JrQntCb0JAKK9CV0IvQmNCc0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CV0ILQldCU0Jgg0IjQntCW0JXQpAor0JXQgtCV0JTQmCDQiNCj0JvQmNCI0JDQndCQCivQldCR0JXQndCl0JUt0IjQntCS0JDQndCe0JLQmNCLINCI0JDQodCd0JAg0JTQoAor0JXQkdCV0J3QpdCVINCd0JjQmtCe0JvQkAor0JXQkdCV0KDQpdCQ0KDQlC3QnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQldCR0JXQoNCl0JDQoNCiINCf0JXQotCQ0KAKK9CV0JHQldCg0KHQoi3QodCV0JTQm9CQ0KfQldCaINCT0JDQkdCg0JjQldCb0JAKK9CV0KbQldCiINCI0J7QktCQ0J0KK9CV0KbQldCiINCI0J7QktCQ0J0KK9CV0KbQldCiINCa0JDQotCQ0JvQmNCdCivQldCm0JXQoiDQn9CQ0JsKK9CV0JTQldCb0JXQitCYINCc0JDQoNCY0IjQkAor0JXQlNCV0JvQmNCd0KHQmtCYINCV0KPQk9CV0J0KK9CV0JTQldCb0JjQndCh0JrQmCDQiNCe0JDQmtCY0JwKK9CV0JTQldCb0JjQndCh0JrQmCDQidCj0JHQmNCm0JAKK9CV0JTQldCb0JjQndCh0JrQmCDQktCV0KDQkAor0JXQlNCV0JvQmNCd0KHQmtCYINCS0JXQoNCQCivQldCk0KLQldCc0JjQiNCjINCd0JjQmtCe0JvQkAor0JXQk9CV0InQkCDQnNCY0JvQmNCm0JAKK9CV0JPQldCJ0JAg0J3QldCR0J7QiNCo0JAKK9CV0JPQldCg0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9CV0JPQmNCLINCn0JXQlNCc0JjQm9CQCivQldCT0JjQiyDQgtCe0JrQkAor0JXQk9CY0Isg0JHQoNCQ0KbQngor0JXQk9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQldCT0JjQiyDQptCS0JXQotCQ0J3QmtCQCivQldCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CV0JPQmNCLINCc0JDQndCVCivQldCT0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JXQk9CY0Isg0JzQmNCm0JAKK9CV0JPQmNCLINCc0JjQm9CQ0J0KK9CV0JPQmNCLINCc0JjQm9CQ0J0KK9CV0JPQmNCLINCe0JvQk9CQCivQldCI0JjQiyDQnNCY0JvQkNCdCivQldCa0JXQqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JXQmtCl0JDQoNCU0KIg0InQo9CR0JjQptCQCivQldCa0JvQmNCLINCc0JDQoNCI0JDQnQor0JXQmtCc0JXQqNCn0JjQiyDQnNCY0JvQmNCh0JDQkgor0JXQmtCc0JXQj9CY0Isg0JDQndCa0JAKK9CV0JrQnNCV0I/QmNCLINCd0JjQmtCe0JvQkAor0JXQmtCg0JXQoSDQgtCe0KDQgtCVCivQldCa0KDQldChINCQ0J3QlNCg0JjQiNCQCivQldCa0KDQldChINCI0JDQndCe0KgKK9CV0JrQoNCV0KEg0IjQo9Cb0JjQiNCQ0J3QkAor0JXQmtCg0JXQoSDQnNCY0JvQmtCQCivQldCa0KDQldChINCd0JDQndCU0J7QoAor0JXQmtCg0JXQoSDQntCi0J4KK9CV0JrQoNCV0KEt0KDQkNCa0JjQiyDQktCV0KDQmNCm0JAKK9CV0JrQoNCV0KEg0KDQntCX0JDQm9CY0IjQkAor0JXQmtCg0JXQoSDQktCQ0JvQldCg0JjQiNCQCivQldCb0JXQmiDQldCS0JAKK9CV0JvQldCg0J4g0JfQktCV0JfQlNCQ0J3QkAor0JXQm9CV0KHQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JXQm9CV0KHQmNCdINCR0KDQkNCd0JrQkAor0JXQm9CV0KHQmNCdINCU0KDQkNCT0JAKK9CV0JvQldCh0JjQnSDQlNCg0JDQk9Ce0InQo9CRCivQldCb0JXQodCY0J0g0JTQo9Co0JDQndCa0JAKK9CV0JvQldCh0JjQnSDQk9Cg0JDQlNCY0JzQmNCgCivQldCb0JXQodCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JXQm9CV0KHQmNCdINCh0JDQktCQCivQldCb0JXQodCY0J0g0KHQmNCd0JjQqNCQCivQldCb0JXQodCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JXQm9CV0Jcg0ILQntCa0JAKK9CV0JvQldCXINCT0J7QoNCQ0J0KK9CV0JvQldCX0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQldCb0JXQl9Ce0JLQmNCLINCf0JXQotCQ0KAKK9CV0JvQpdCQ0KDQoiDQm9CQ0JfQkNCgCivQldCb0KXQkNCg0KIg0JvQkNCX0JDQoAor0JXQm9CY0JDQoSDQmNCg0JXQndCQCivQldCb0JjQiNCQ0Kgg0IjQkNCdCivQldCb0JjQl9CV0Jog0JbQo9CW0JDQndCQCivQldCb0JjQl9CV0Jog0JjQktCQ0J0KK9CV0JvQntCgINCY0KjQotCS0JDQnQor0JXQm9Ce0KAg0IjQkNCd0J7QqAor0JXQm9Ce0KAg0InQo9CR0JjQptCQCivQldCb0J7QoCDQn9CQ0JLQm9CVCivQldCb0J7QoCDQl9Ce0KDQmNCm0JAKK9CV0JvQotCV0KAg0IjQkNCd0J7QqAor0JXQm9Ci0JXQoCDQl9Ce0JvQotCQ0J0KK9CV0JzQldCgINCI0JDQmtCe0JIKK9CV0JzQldCgINCc0JDQoNCa0J4KK9CV0JzQmNCd0Jgg0JHQkNCI0KDQkNCcCivQldCc0JjQndCYINCT0JDQndCYCivQldCc0JjQndCYINCg0J7Ql9CQ0JvQmNCI0JAKK9CV0J3QkNCl0J7Qm9CeINCd0JDQlNCQCivQldCd0JPQldCb0JzQkNCdINCa0JDQotCY0KbQkAor0JXQndCT0JXQoNCiINCc0JjQpdCQ0IjQm9CeCivQldCd0JPQm9CV0KAg0JvQkNCI0J7QqAor0JXQn9CY0KTQkNCd0JjQiyDQptCS0JXQotCQ0J3QkAor0JXQn9CY0KTQkNCd0JjQiyDQlNCj0KjQmtCeCivQldCg0KfQmC3QktCQ0KDQk9CQINCc0JDQoNCY0KjQmtCQCivQldCg0KfQmNCLINCR0J7QiNCQ0J3QkAor0JXQoNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JXQoNCn0JjQiyDQoNCQ0JTQntCS0JDQnQor0JXQoNCo0KLQlSDQltCV0InQmtCeCivQldCg0JDQmiDQkdCe0KDQngor0JXQoNCQ0Jog0JTQo9Co0JDQnQor0JXQoNCQ0Jog0JjQm9CY0IjQkAor0JXQoNCQ0Jog0JvQkNCX0JDQoAor0JXQoNCQ0Jog0JzQkNCg0JrQngor0JXQoNCQ0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CV0KDQkNCa0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQldCg0JDQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQldCg0JDQmtCe0JLQmNCLINCa0KDQmNCh0KLQmNCS0J7QiAor0JXQoNCQ0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CV0KDQkNCa0J7QktCY0Isg0InQo9CR0J7QiNCVCivQldCg0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQldCg0JDQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CV0KDQkNCa0J7QktCY0Isg0KDQkNCU0JUKK9CV0KDQkNCa0J7QktCY0Isg0KDQkNCI0JrQngor0JXQoNCQ0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9CV0KDQkdCV0Kgg0JXQoNCW0JXQkdCV0KIKK9CV0KDQkdCV0JbQndCY0Jog0KHQntCK0JAKK9CV0KDQkdCV0KEg0JHQoNCQ0J3QmtCQCivQldCg0JHQldChINCc0JDQoNCT0JjQotCQCivQldCg0JHQldCXINCR0JvQkNCW0J4KK9CV0KDQkdCV0Jcg0JXQoNCW0JXQkdCV0KIKK9CV0KDQptCV0JMg0KjQn9CY0KDQngor0JXQoNCm0JXQkyDQltCQ0KDQmtCeCivQldCg0KbQldCTINCW0JjQktCa0J4KK9CV0KDQptCV0JMg0JTQkNCg0JAKK9CV0KDQptCV0JMg0InQmNCJ0JDQndCQCivQldCg0KbQldCTINCc0JjQmtCQCivQldCg0KbQldCTINCg0JDQlNCe0JLQkNCdCivQldCg0KbQldCTINCg0JDQiNCa0J4KK9CV0KDQptCV0JMg0KDQkNCI0JrQngor0JXQoNCm0JXQkyDQodCb0J7QkdCe0JTQkNCdCivQldCg0KbQldCTINCh0KLQkNCd0JAKK9CV0KDQptCV0JMg0JfQlNCV0J3QmtCeCivQldCg0KbQldCTINCX0JTQoNCQ0JLQmtCeCivQldCg0KbQldCT0JDQnSDQk9Ce0KDQkNCdCivQldCg0KbQldCT0JDQnSDQnNCY0KLQkAor0JXQoNCm0JXQk9Ce0JLQp9CV0JLQmNCLINCW0JjQktCe0JTQkNCgCivQldCg0KbQldCT0J7QktCn0JXQktCY0Isg0JTQntCh0KLQkAor0JXQoNCm0JXQk9Ce0JLQkNCmINCQ0J3QgtCV0JvQmtCeCivQldCg0KbQldCT0J7QktCQ0KYg0JHQoNCQ0KLQmNCh0JvQkNCSCivQldCg0KbQldCT0J7QktCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9CV0KDQptCV0JPQntCS0JDQpiDQnNCY0KLQkNCgCivQldCg0KbQldCT0J7QktCQ0KYg0J3QkNCU0JAKK9CV0KDQptCV0JPQntCS0JDQpiDQodCQ0JLQkAor0JXQoNCm0JXQk9Ce0JLQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9CV0KDQptCV0JPQntCS0JDQpiDQodCi0JXQktCQ0J0KK9CV0KDQptCV0JPQntCS0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQldCg0KbQldCT0J7QktCY0Isg0JTQkNCd0JjQptCQCivQldCg0JTQldCoINCU0JDQndCY0JXQmwor0JXQoNCU0JXQqCDQldCc0JjQmwor0JXQoNCU0JXQqCDQldCh0KLQldCgCivQldCg0JTQldCoINCV0KLQldCb0JrQkAor0JXQoNCU0JXQqCDQmNCb0J7QndCQCivQldCg0JTQldCoINCY0JLQkNCdCivQldCg0JTQldCoINCI0KPQm9CY0IjQkNCd0JAKK9CV0KDQlNCV0Kgg0JrQm9CQ0KDQkAor0JXQoNCU0JXQqCDQm9CQ0KHQm9CeCivQldCg0JTQldCoINCf0JDQmwor0JXQoNCU0JXQqCDQn9CV0KLQkNCgCivQldCg0JTQldCo0Jgg0JvQkNCh0JvQngor0JXQoNCU0JXQqNCYINCS0JDQm9CV0KDQmNCI0JAKK9CV0KDQlNCV0JMg0JDQoNCQ0J3QmtCQCivQldCg0JTQldCTINCY0JvQntCd0JAKK9CV0KDQlNCV0JMg0IjQkNCd0J7QqAor0JXQoNCU0JXQkyDQiNCj0KHQotCY0J3QkAor0JXQoNCU0JXQkyDQotCe0JzQmNCh0JvQkNCSCivQldCg0JTQldCYINCo0JDQndCU0J7QoAor0JXQoNCU0JXQmCDQiNCe0KHQmNCfCivQldCg0JTQldCYINCI0J7QktCQ0J0KK9CV0KDQlNCV0Jgg0JzQmNCl0JDQiNCb0J4KK9CV0KDQlNCV0Jgg0J/QldCi0JDQoAor0JXQoNCU0JXQmCDQl9Ce0JvQotCQ0J0KK9CV0KDQlNCV0Ikg0JHQoNCQ0J3QmtCeCivQldCg0JTQldCJINCV0JzQmNCbCivQldCg0JTQldCJINCT0J7QoNCQ0J0KK9CV0KDQlNCV0Ikg0JvQo9CU0JzQmNCb0JAKK9CV0KDQlNCV0Ikg0JzQmNCb0KPQotCY0J0KK9CV0KDQlNCV0InQkNCdINCW0JjQktCa0J4KK9CV0KDQlNCV0InQkNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQldCg0JTQldCJ0JDQnSDQkNCb0JrQodCQ0J3QlNCQ0KAKK9CV0KDQlNCV0InQkNCdINCR0JjQodCV0KDQmtCQCivQldCg0JTQldCJ0JDQnSDQkdCe0KjQmtCeCivQldCg0JTQldCJ0JDQnS3QkdCe0JPQlNCQ0J3QntCSINCh0JvQkNCS0JjQptCQCivQldCg0JTQldCJ0JDQnSDQlNCQ0J3QmNCb0J4KK9CV0KDQlNCV0InQkNCdINCU0J7QkdCg0JjQktCe0IgKK9CV0KDQlNCV0InQkNCdINCU0KPQqNCQ0J3QmtCQCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQiNCV0JvQldCd0JAKK9CV0KDQlNCV0InQkNCdINCa0JDQotCY0KbQkAor0JXQoNCU0JXQidCQ0J0g0InQo9CR0JjQptCQCivQldCg0JTQldCJ0JDQnSDQidCj0JHQntCc0JjQoAor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0JDQlNCY0J0KK9CV0KDQlNCV0InQkNCdINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQkNCdCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQldCd0JrQngor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0JjQktCe0IgKK9CV0KDQlNCV0InQkNCdINCc0JjQm9Ce0KDQkNCUCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQntCg0JDQlAor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0J7QktCQ0J0KK9CV0KDQlNCV0InQkNCdINCc0JjQoNCI0JDQndCQCivQldCg0JTQldCJ0JDQnSDQndCQ0JTQldCW0JTQkAor0JXQoNCU0JXQidCQ0J0g0J3QmNCa0J7Qm9CQCivQldCg0JTQldCJ0JDQnSDQn9Cg0JXQlNCg0JDQkwor0JXQoNCU0JXQidCQ0J0g0KDQkNCU0JjQktCe0IgKK9CV0KDQlNCV0InQkNCdINCh0JvQkNCS0JrQkAor0JXQoNCU0JXQidCQ0J0g0KHQm9CQ0JLQmtCQCivQldCg0JTQldCJ0JDQnSDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JXQoNCU0JXQidCQ0J0g0KHQoNCV0JTQntCI0JUKK9CV0KDQlNCV0InQkNCdINCh0KLQldCS0JDQnQor0JXQoNCU0JXQidCQ0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQldCg0JTQldCJ0JDQnSDQotCY0KXQntCc0JjQoAor0JXQoNCU0JXQidCQ0J0g0JLQldCg0JjQptCQCivQldCg0JTQldCJ0JDQnSDQktCj0JrQmNCm0JAKK9CV0KDQlNCV0InQkNCdINCX0JvQkNCi0JrQngor0JXQoNCU0JXQidCQ0J0g0JfQntCg0JAKK9CV0KDQlNCV0InQkNCd0JjQnSDQkNCd0ILQldCb0JrQngor0JXQoNCU0JXQidCYINCC0JXQoNCCCivQldCg0JTQldCJ0Jgg0JDQndCi0JDQmwor0JXQoNCU0JXQidCYINCR0JXQm9CQCivQldCg0JTQldCJ0Jgg0JHQmNCh0JXQoNCa0JAKK9CV0KDQlNCV0InQmCDQkdCe0KDQkdCQ0JvQkAor0JXQoNCU0JXQidCYINCU0JXQltCVCivQldCg0JTQldCJ0Jgg0JTQoNCQ0JPQmNCm0JAKK9CV0KDQlNCV0InQmCDQpNCg0JDQitCQCivQldCg0JTQldCJ0Jgg0JPQkNCo0J/QkNCgCivQldCg0JTQldCJ0Jgg0JjQqNCi0JLQkNCdCivQldCg0JTQldCJ0Jgg0IjQldCd0JUKK9CV0KDQlNCV0InQmCDQiNCe0JbQldCkCivQldCg0JTQldCJ0Jgg0JrQkNCg0J7QiQor0JXQoNCU0JXQidCYINCb0JDQiNCe0KgKK9CV0KDQlNCV0InQmCDQm9CQ0KHQm9CeINCU0JjQn9CbINCY0J3Qkwor0JXQoNCU0JXQidCYINCc0JDQotCY0JvQlNCQCivQldCg0JTQldCJ0Jgg0KHQntCk0KDQntCd0JAKK9CV0KDQlNCV0InQmCDQodCi0JXQktCQ0J0KK9CV0KDQlNCV0InQmCDQotCY0JHQntCgCivQldCg0JTQldCS0JjQmiDQnNCQ0KDQkAor0JXQoNCU0JXQktCY0Jog0JzQkNCg0JjQiNCQCivQldCg0JTQldCS0JjQmiDQodCb0J7QkdCe0JTQkNCdCivQldCg0JTQldCS0JjQmiDQktCe0IjQmNCh0JvQkNCSCivQldCg0JTQldCS0JjQmiDQktCj0JrQmNCm0JAKK9CV0KDQlNCV0JLQmNCaINCX0JTQoNCQ0JLQmtCeCivQldCg0JXQqCDQqNCQ0J3QlNCe0KAKK9CV0KDQldCoINCb0JDQodCb0J4KK9CV0KDQldCC0JjQnSDQktCj0JrQkNCo0JjQnQor0JXQoNCV0JMg0JvQkNCI0J7QqAor0JXQoNCV0JzQmNCLINCI0JXQm9CY0KbQkAor0JXQoNCV0JzQmNCLINCI0J7QktCQ0J0KK9CV0KDQldCc0JjQiyDQndCY0J3QntCh0JvQkNCSCivQldCg0JXQnNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CV0KDQldCc0JjQiyDQodCQ0JLQkAor0JXQoNCV0JzQmNCLINCh0JvQkNCS0JjQptCQCivQldCg0JXQnNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CV0KDQldCc0JjQiyDQotCY0KXQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CV0KDQldCc0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9CV0KDQldCc0JjQiNCQINCc0JjQm9CQ0J0KK9CV0KDQldCc0JjQiNCQINCh0KLQkNCd0JrQngor0JXQoNCV0JzQmNCdINCd0JjQmtCe0JvQkAor0JXQoNCV0J3QotCQINCJ0KPQkdCY0KbQkAor0JXQoNCTINCe0JvQk9CQCivQldCg0JPQldCb0JDQqNCV0JIg0JTQo9CR0KDQkNCS0JrQkAor0JXQoNCT0JXQm9CQ0KjQldCSINCY0JLQkNCdCivQldCg0JPQldCb0JDQqNCV0JIg0IjQntCS0JDQnQor0JXQoNCT0JXQm9CQ0KjQldCSINCc0JjQm9CQ0J0KK9CV0KDQk9CV0JvQkNCo0JXQkiDQnNCY0JvQntCoCivQldCg0JPQldCb0JDQqNCV0JIg0JzQntCc0KfQmNCb0J4KK9CV0KDQk9CV0JvQkNCo0JXQkiDQndCV0KHQotCe0KAKK9CV0KDQk9CV0JvQkNCo0JXQkiDQodCc0JjQidCa0JAKK9CV0KDQk9CV0JvQkNCo0JXQkiDQotCY0KXQntCc0JjQoAor0JXQoNCT0JXQm9CQ0KjQldCSINCX0J7QoNCa0JAKK9CV0KDQpdCQ0KDQotCY0Kcg0JDQndCQCivQldCg0KXQkNCg0KLQmNCnINCg0KPQlNCe0JvQpAor0JXQoNCYINCY0JvQntCd0JAKK9CV0KDQmCDQiNCQ0J3QntCoCivQldCg0Jgg0IjQntCS0JDQnQor0JXQoNCY0Isg0ILQo9Cb0JjQndCa0JAKK9CV0KDQmNCLINCR0J7QltCY0J0KK9CV0KDQmNCLINCJ0JjQidCQ0J3QkAor0JXQoNCY0Isg0JzQkNCg0JrQngor0JXQoNCY0Isg0JzQmNCb0J7QnNCY0KAKK9CV0KDQmNCLINCd0JXQkdCe0IjQqNCQCivQldCg0JjQiyDQn9CV0KDQngor0JXQoNCY0Isg0KHQndCV0JbQkNCd0JAKK9CV0KDQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CV0KDQmNCLINCX0J7QoNCY0KbQkAor0JXQoNCa0JjQiyDQgtCe0KDQgtCVCivQldCg0JrQmNCLINCf0JXQotCQ0KAKK9CV0KDQm9CQ0KPQldCgINCY0JLQkNCdCivQldCg0JvQkNCj0JXQoCDQiNCe0KHQmNCfCivQldCg0JvQldCgINCS0JXQoNCe0J3QkAor0JXQoNCd0JXQodCiINCk0KDQkNCK0JAKK9CV0KDQntCgINCI0J7QktCQ0J0KK9CV0KDQntCgINCf0JXQotCQ0KAKK9CV0KDQntCgINCh0KLQldCS0JDQnQor0JXQoNCh0JrQmCDQn9CV0KLQkNCgCivQldCg0KHQmtCYLdCf0JXQotCa0J7QktCY0Isg0KHQntCK0JAKK9CV0KDQotCbINCk0JXQoNCV0J3Qpgor0JXQoNCi0Jsg0KXQldCU0JLQmNCT0JAKK9CV0KDQotCbINCb0JDQodCb0J4KK9CV0KDQotCbINCS0JvQkNCh0KLQkAor0JXQoSDQmtCb0JDQoNCQCivQldCh0JUg0KjQkNCd0JTQntCgCivQldCh0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CV0KHQotCV0KAg0IjQntCh0JjQnwor0JXQodCi0JXQoCDQnNCQ0KDQmNCI0JAg0JTQoAor0JXQodCi0JXQoCDQnNCQ0KDQotCQCivQldCi0KjQkdCV0KDQk9CV0KAg0IjQkNCa0J7QkQor0JXQotCV0KAg0J7QotCeCivQldCi0JXQoNCe0JLQmNCLINCS0JXQoNCQCivQldCi0JjQndCh0JrQmCDQltCY0JLQkNCdCivQldCi0JjQndCh0JrQmCDQltCY0JLQntCI0JjQnQor0JXQotCY0J3QodCa0Jgg0ILQntCg0ILQlQor0JXQotCY0J3QodCa0Jgg0JTQoNCQ0JPQmNCLCivQldCi0JjQndCh0JrQmCDQlNCg0JDQk9CY0IsKK9CV0KLQmNCd0KHQmtCYINCI0J7QktCQ0J0KK9CV0KLQmNCd0KHQmtCYINCJ0KPQkdCY0KjQkAor0JXQotCY0J3QodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9CV0KLQmNCd0KHQmtCYINCc0JjQm9Ce0KgKK9CV0KLQmNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQldCi0JjQndCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JXQotCY0J3QodCa0Jgg0JzQmNCb0J7QktCQ0J0KK9CV0KLQmNCd0KHQmtCYINCd0JDQlNCQCivQldCi0JjQndCh0JrQmCDQn9CV0KLQkNCgCivQldCi0JjQndCh0JrQmCDQoNCQ0JTQntCS0JDQnQor0JXQotCY0J3QodCa0Jgg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CV0KLQmNCd0KHQmtCYINCS0JXQidCa0J4KK9CV0KLQmNCd0KHQmtCYINCS0JXQoNCQCivQldCi0JjQndCh0JrQmCDQktCV0KDQmNCm0JAKK9CV0KLQntCg0JUg0ILQmNCd0JAKK9CV0JLQgtCY0Isg0KHQotCQ0J3QmtCQCivQldCS0JXQotCe0JLQmNCLINCR0JvQkNCo0JrQngor0JXQktCV0KLQntCS0JjQiyDQiNCe0KHQmNCfCivQldCS0JXQotCe0JLQmNCLINCI0J7QktCQ0J0KK9CV0JLQldCi0J7QktCY0Isg0IjQntCS0JDQnQor0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JXQktCY0Isg0IjQntCS0JDQnQor0JXQktCY0Isg0JvQkNCX0JDQoAor0JXQktCY0Isg0JvQkNCX0JDQoAor0JXQktCY0Isg0J/QldCi0JDQoAor0JXQktCY0Isg0KHQkNCS0JAKK9Ck0JAg0JzQldCb0JDQndCY0IjQkAor0KTQkCDQnNCY0JvQmtCQCivQpNCQ0KfQkNCgINCh0KLQldCS0JDQnQor0KTQkNCn0JrQniDQiNCe0JbQldCkCivQpNCQ0KfQmtCeINCh0JjQnNCQCivQpNCQ0JHQmNCQ0J0g0JHQntCg0JHQkNCb0JAKK9Ck0JDQkdCY0JDQnSDQmNCo0KLQktCQ0J0KK9Ck0JDQkdCY0JDQnSDQiNCQ0J3QntCoCivQpNCQ0JHQmNCI0JDQnSDQqNCQ0J3QlNCe0KAKK9Ck0JDQkdCY0IjQkNCdINCQ0J3QkAor0KTQkNCR0JjQiNCQ0J0g0JjQm9Ce0J3QkAor0KTQkNCR0JjQiNCQ0J0g0JjQnNCg0JUKK9Ck0JDQkdCY0IjQkNCdINCY0JLQkNCdCivQpNCQ0JHQmNCI0JDQnSDQiNCQ0J3QntCoCivQpNCQ0JHQmNCI0JDQnSDQm9CQ0KHQm9CeCivQpNCQ0JHQmNCI0JDQnSDQndCY0JrQntCb0JAKK9Ck0JDQkdCY0IjQkNCdINCh0KLQldCS0JDQnQor0KTQkNCR0JjQiNCQ0J0g0KHQotCV0JLQkNCdCivQpNCQ0JHQmNCI0JDQndCn0JjQiyDQmNCS0JDQnQor0KTQkNCR0JjQiNCQ0J3Qp9CY0Isg0KHQotCI0JXQn9CQ0J0KK9Ck0JDQkdCY0IjQkNCd0JjQiyDQnNCQ0KDQmNCI0JAKK9Ck0JDQkdCY0IjQkNCd0J7QktCY0Isg0JDQndCQCivQpNCQ0JHQoNCYINCc0JjQmtCb0J7QqAor0KTQkNCR0KDQmCDQndCQ0J3QlNCe0KAKK9Ck0JDQkdCg0Jgg0KHQotCI0JXQn9CQ0J0KK9Ck0JDQkdCg0Jgg0JfQktCe0J3QmtCeCivQpNCQ0JHQoNCY0Jog0JrQkNCi0JDQm9CY0J0KK9Ck0JDQptCY0KEg0J/QkNCd0KLQkAor0KTQkNCY0J0g0JDQndCQCivQpNCQ0JjQnSDQm9CQ0IjQntCoCivQpNCQ0JjQnSDQodCi0JXQktCQ0J0KK9Ck0JDQiCDQk9CQ0JHQntCgCivQpNCQ0IjQlNCV0KLQmNCLINCJ0KPQkdCY0KbQkAor0KTQkNCI0JTQmNCT0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JDQiNCk0JXQoCDQn9CV0KLQkNCgCivQpNCQ0IjQk9CV0Ikg0JjQktCQ0J0KK9Ck0JDQiNCl0J3QldCgINCl0JXQndCg0JjQmgor0KTQkNCI0KXQotCd0JXQoCDQiNCe0KHQmNCfCivQpNCQ0IjQpdCi0J3QldCgINCg0KPQltCQCivQpNCQ0IjQmNCdINCY0KjQotCS0JDQnQor0KTQkNCI0JrQkCDQlNCQ0J3QmNCm0JAKK9Ck0JDQiNCa0JAg0J3QkNCU0JAKK9Ck0JDQiNCa0JAg0J/QkNCS0JvQlQor0KTQkNCI0J3QmNCaINCc0JDQoNCY0IjQkAor0KTQkNCI0KIt0JPQoNCQ0J3QldCgINCg0J7QltCQCivQpNCQ0IjQoiDQiNCV0JvQmNCm0JAKK9Ck0JDQiNCi0J3QldCgINCS0JXQoNCe0J3QmNCa0JAKK9Ck0JDQmtCY0J0g0KTQoNCQ0IrQkAor0KTQkNCa0JjQnSDQmNCS0JDQnQor0KTQkNCa0JjQnSDQl9CS0J7QndCY0JzQmNCgCivQpNCQ0JvQkSDQgtCe0KDQgtCVCivQpNCQ0JvQkSDQkdCe0KHQmNCJ0JrQkAor0KTQkNCb0JEg0IjQntCh0JjQnwor0KTQkNCb0JEg0JrQkNCg0J7QiQor0KTQkNCb0JEg0JrQkNCg0J7QiQor0KTQkNCb0JEg0JzQkNCg0JjQndCQCivQpNCQ0JvQkSDQnNCQ0KLQmNCI0JAKK9Ck0JDQm9CRINCe0KLQngor0KTQkNCb0JEg0JfQntCb0KLQkNCdCivQpNCQ0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQpNCQ0JzQmNCb0JjQiyDQmNCS0JDQnQor0KTQkNCd0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQkNCd0KfQldCS0JjQiyDQiNCe0KHQmNCfCivQpNCQ0J3Qp9CV0JLQmNCLINCa0JDQotCQ0JvQmNCdCivQpNCQ0J3Qp9CV0JLQmNCLINCJ0KPQlNCV0JLQmNCiCivQpNCQ0J3Qp9CV0JLQmNCLINCi0JXQoNCV0JfQmNCI0JAKK9Ck0JDQndCa0JAg0JTQo9Co0JDQnQor0KTQkNCd0JrQkCDQnNCQ0KDQkAor0KTQkNCg0JDQk9CeINCo0JDQndCU0J7QoAor0KTQkNCg0JDQk9CeINCo0JDQndCU0J7QoAor0KTQkNCg0JDQk9CeINCQ0KDQkNCd0JrQkAor0KTQkNCg0JDQk9CeINCQ0KDQn9CQ0JQKK9Ck0JDQoNCQ0JPQniDQpNCg0JDQitCQCivQpNCQ0KDQkNCT0J4g0IjQntCW0JXQpAor0KTQkNCg0JDQk9CeINCI0J7QodCY0J8KK9Ck0JDQoNCQ0JPQniDQmtCQ0KDQm9CeCivQpNCQ0KDQkNCT0J4g0JvQkNCh0JvQngor0KTQkNCg0JDQk9CeINCc0JDQoNCY0IjQkAor0KTQkNCg0Jog0JDQnNCQ0JvQmNCI0JAKK9Ck0JDQoNCaINCR0JXQkNCi0JAKK9Ck0JDQoNCa0JDQqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQkNCg0JrQkNCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCQ0KDQmtCQ0Kgg0JHQntCW0JXQndCQCivQpNCQ0KDQmtCQ0Kgg0JTQoNCQ0JPQo9Ci0JjQnQor0KTQkNCg0JrQkNCoINCV0JvQldCc0JXQoAor0KTQkNCg0JrQkNCoINCV0JvQmNCX0JDQkdCV0KLQkAor0KTQkNCg0JrQkNCoINCV0JvQl9CQCivQpNCQ0KDQmtCQ0Kgg0JXQodCi0JXQoAor0KTQkNCg0JrQkNCoINCV0KHQotCV0KAKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCg0JDQitCQCivQpNCQ0KDQmtCQ0Kgg0JPQkNCR0J7QoAor0KTQkNCg0JrQkNCoINCY0KjQotCS0JDQnQor0KTQkNCg0JrQkNCoINCY0KjQotCS0JDQnQor0KTQkNCg0JrQkNCoINCY0JvQntCd0JAKK9Ck0JDQoNCa0JDQqCDQmNCb0J7QndCa0JAKK9Ck0JDQoNCa0JDQqCDQmNCc0KDQlQor0KTQkNCg0JrQkNCoINCI0JDQnQor0KTQkNCg0JrQkNCoINCI0JDQoNCe0KHQm9CQ0JIKK9Ck0JDQoNCa0JDQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQkNCg0JrQkNCoINCI0J7QltCV0KQKK9Ck0JDQoNCa0JDQqCDQiNCe0JbQldCkCivQpNCQ0KDQmtCQ0Kgg0IjQntCW0JXQpAor0KTQkNCg0JrQkNCoINCI0J7QltCV0KQKK9Ck0JDQoNCa0JDQqCDQiNCe0KHQmNCfCivQpNCQ0KDQmtCQ0Kgg0IjQntCh0JjQnwor0KTQkNCg0JrQkNCoINCI0J7QktCQ0J0KK9Ck0JDQoNCa0JDQqCDQiNCe0JLQk9CV0J0KK9Ck0JDQoNCa0JDQqCDQiNCj0JTQmNCi0JAKK9Ck0JDQoNCa0JDQqCDQmtCQ0KDQm9CeCivQpNCQ0KDQmtCQ0Kgg0JrQkNCi0JDQm9CY0J0KK9Ck0JDQoNCa0JDQqCDQmtCb0JDQoNCQCivQpNCQ0KDQmtCQ0Kgg0JvQkNCU0JjQodCb0JDQkgor0KTQkNCg0JrQkNCoINCb0JDQiNCe0KgKK9Ck0JDQoNCa0JDQqCDQm9CQ0KHQm9CeCivQpNCQ0KDQmtCQ0Kgg0JzQkNCg0JjQiNCQCivQpNCQ0KDQmtCQ0Kgg0JzQkNCi0JjQm9CU0JAKK9Ck0JDQoNCa0JDQqCDQnNCY0KXQkNCJCivQpNCQ0KDQmtCQ0Kgg0J3QkNCU0JAKK9Ck0JDQoNCa0JDQqCDQn9CQ0JsKK9Ck0JDQoNCa0JDQqCDQn9CQ0JLQm9CVCivQpNCQ0KDQmtCQ0Kgg0KDQntCX0JDQm9CY0IjQkAor0KTQkNCg0JrQkNCoINCh0KLQldCS0JDQnQor0KTQkNCg0JrQkNCoLdCi0J7QoiDQktCY0JrQotCe0KDQmNCI0JAKK9Ck0JDQoNCa0JDQqCDQktCV0KDQkAor0KTQkNCg0JrQkNCoINCS0JXQoNCY0KbQkAor0KTQkNCg0JrQmNCLINCc0JjQm9CQ0J0KK9Ck0JDQoNCa0J7QkiDQiNCe0JLQkNCd0JrQkAor0KTQkNCiINCI0J7QodCY0J8KK9Ck0JDQoiDQm9CQ0KHQm9CeCivQpNCQ0KIg0JzQmNCl0JDQmwor0KTQkNCi0JjQiyDQnNCQ0KDQkAor0KTQkNCi0KPQoNCe0JLQmNCLINCg0JDQiNCa0J4KK9Ck0JDQo9Ca0J7QktCY0Isg0J3QkNCU0JAKK9Ck0JDQl9CV0JrQkNCoINCQ0J3QotCQ0JsKK9Ck0JDQl9CV0JrQkNCoINCI0JDQndCe0KgKK9Ck0JDQl9CV0JrQkNCoINCa0JDQotCQ0JvQmNCdCivQpNCQ0JfQldCa0JDQqCDQotCY0JHQntCgCivQpNCQ0JfQm9CY0Isg0IjQldCb0JjQptCQCivQpNCQ0JfQm9CY0Isg0IjQntCS0JDQndCa0JAKK9Ck0JDQl9Cb0JjQndCe0JLQmNCLINCV0JvQkdCY0KHQkAor0KTQkNCX0JvQmNCd0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0KTQldCo0JjQqCDQmNCc0KDQlQor0KTQldCo0JjQqCDQiNCe0JbQldCkCivQpNCV0KjQmNCoINCI0J7QltCV0KQKK9Ck0JXQptCVINCY0JLQkNCdCivQpNCV0KbQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQlNCV0KDQldCgINCI0J7QktCQ0J0KK9Ck0JXQlNCV0KDQldCgINCc0JjQoNCa0J4KK9Ck0JXQlNCYINCI0J7QltCV0KQKK9Ck0JXQpdCV0KAg0KjQkNCd0JTQntCgCivQpNCV0KXQldCgINCo0JDQndCU0J7QoAor0KTQldCl0JXQoCDQgtCV0KDQggor0KTQldCl0JXQoCDQgtCj0JvQkAor0KTQldCl0JXQoCDQgtCj0JvQkAor0KTQldCl0JXQoCDQkNCd0JTQoNCQ0KgKK9Ck0JXQpdCV0KAg0JDQoNCY0KHQotCY0JQKK9Ck0JXQpdCV0KAg0JXQoNCd0JUKK9Ck0JXQpdCV0KAg0JXQoNCd0JUKK9Ck0JXQpdCV0KAg0KTQldCg0JXQndCmCivQpNCV0KXQldCgINCI0JDQndCe0KgKK9Ck0JXQpdCV0KAg0IjQkNCd0J7QqAor0KTQldCl0JXQoCDQiNCQ0J3QntCoCivQpNCV0KXQldCgINCI0J7QltCV0KQKK9Ck0JXQpdCV0KAg0IjQntCW0JXQpAor0KTQldCl0JXQoCDQiNCe0JLQkNCdCivQpNCV0KXQldCgINCI0J7QktCQ0J0KK9Ck0JXQpdCV0KAg0IjQo9Cb0JjQiNCQCivQpNCV0KXQldCgINCa0JDQm9Cc0JDQnQor0KTQldCl0JXQoCDQm9CQ0IjQntCoCivQpNCV0KXQldCgINCb0JDQodCb0J4KK9Ck0JXQpdCV0KAg0JvQkNCh0JvQngor0KTQldCl0JXQoCDQnNCQ0KDQk9CY0KLQkAor0KTQldCl0JXQoCDQnNCQ0KDQmNCI0JAKK9Ck0JXQpdCV0KAg0JzQmNCl0JDQiNCb0J4KK9Ck0JXQpdCV0KAg0J3QkNCd0JTQntCgCivQpNCV0KXQldCgINCh0KLQldCS0JDQnQor0KTQldCl0JXQoCDQodCi0JXQktCQ0J0KK9Ck0JXQpdCV0KAg0KLQldCg0JXQl9CQCivQpNCV0KXQldCgINCS0JXQoNCQCivQpNCV0KXQldCg0JLQkNCg0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ck0JXQpdCY0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JXQpdCY0KAg0J/QldCi0JDQoAor0KTQldCl0JjQoNCe0JIg0JDQktCg0JDQnAor0KTQldCl0JjQoNCe0JIg0JrQntCh0JDQndCQCivQpNCV0KXQmNCg0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KTQldCI0ILQmCDQktCb0JDQlNCY0JzQmNCgCivQpNCV0IjQlNCV0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ck0JXQiNCV0Kgg0KjQkNCd0JTQntCgCivQpNCV0IjQldCoINCC0J7QoNCC0JUKK9Ck0JXQiNCV0Kgg0JDQoNCQ0J3QmtCQCivQpNCV0IjQldCoINCT0JXQndCQCivQpNCV0IjQldCoINCY0KjQotCS0JDQnQor0KTQldCI0JXQqCDQmNCo0KLQktCQ0J0KK9Ck0JXQiNCV0Kgg0IjQkNCd0J7QqAor0KTQldCI0JXQqCDQiNCQ0J3QntCoCivQpNCV0IjQldCoINCJ0JjQidCQ0J3QkAor0KTQldCI0JXQqCDQl9Ce0JvQotCQ0J0KK9Ck0JXQiNCV0Kgg0JfQntCb0KLQkNCdCivQpNCV0IjQpNCQ0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0KTQldCI0KHQkCDQk9CV0J7QoNCT0JjQiNCVCivQpNCV0IjQodCQINCI0JDQndCa0J4g0JzQoCDQn9ClCivQpNCV0IjQodCQINCc0JDQoNCT0JjQotCQCivQpNCV0IjQodCQLdCf0J7Qn9Ce0JLQmNCLINCb0JXQntCd0JAKK9Ck0JXQiNCh0KLQpdCQ0JzQldCbINCf0JDQmwor0KTQldCI0JfQo9Cb0JDQpdCYINCk0JXQiNCX0KPQm9CQ0KUKK9Ck0JXQmtCV0KLQlSDQqNCQ0J3QlNCe0KAKK9Ck0JXQmtCV0KLQlSDQqNCQ0J3QlNCe0KAKK9Ck0JXQmtCV0KLQlSDQltCj0JbQkNCd0JAKK9Ck0JXQmtCV0KLQlSDQkNCU0J7Qm9CkCivQpNCV0JrQldCi0JUg0KTQldCg0JXQndCmCivQpNCV0JrQldCi0JUg0KTQldCg0JXQndCmCivQpNCV0JrQldCi0JUg0IjQkNCT0J7QlNCQCivQpNCV0JrQldCi0JUg0JrQkNCg0JvQngor0KTQldCa0JXQotCVINCa0JDQotCY0KbQkAor0KTQldCa0JXQotCVINCb0JDQodCb0J4KK9Ck0JXQmtCV0KLQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQmtCV0KLQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQmtCV0KLQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQmtCV0KLQlSDQnNCY0KXQkNCI0JvQngor0KTQldCa0JXQotCVINCc0JjQpdCQ0IkKK9Ck0JXQmtCV0KLQlSDQn9CV0KLQkNCgCivQpNCV0JrQldCi0JUg0KHQotCV0JLQkNCdCivQpNCV0JrQldCi0JUg0JLQldCh0J3QkAor0KTQldCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQpNCV0JvQkdCQ0JEg0KDQkNCU0JAKK9Ck0JXQm9CR0JDQkSDQodCQ0JLQkAor0KTQldCb0JHQkNCRINCh0KLQkNCd0JjQnNCY0KAKK9Ck0JXQm9CR0JDQkdCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQpNCV0JvQkdCQ0JHQntCSINCI0J7QktCQ0J0KK9Ck0JXQm9CR0JDQkdCe0JIg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ck0JXQm9CR0JDQnyDQiNCj0JvQmtCQCivQpNCV0JvQkdCQ0J8g0J3QmNCa0J7Qm9CQCivQpNCV0JvQkdCQ0J/QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0KTQldCb0JHQkNCf0J7QkiDQnNCY0JvQkNCd0JrQkAor0KTQldCb0JHQkNCf0J7QkiDQnNCY0JvQntCg0JDQlAor0KTQldCb0JHQkNCf0J7QkiDQndCV0JzQkNCK0JAKK9Ck0JXQm9CR0JDQn9Ce0JIg0KDQkNCU0JzQmNCb0JAKK9Ck0JXQm9CR0JDQn9Ce0JIg0KDQkNCU0J7QodCb0JDQkgor0KTQldCb0JHQkNCf0J7QkiDQodCi0JXQktCQ0J0KK9Ck0JXQm9CU0KjQldCgINCQ0J3QkAor0KTQldCb0JTQqNCV0KAg0JrQkNCg0JvQngor0KTQldCb0JTQldCo0JTQmCDQkNCd0JTQoNCY0IjQkAor0KTQldCb0JTQldCo0Jgg0KTQoNCQ0IrQkAor0KTQldCb0JTQldCo0Jgg0JjQkdCe0InQkCDQlNCgCivQpNCV0JvQlNCV0KjQmCDQnNCQ0KDQmNCI0JAKK9Ck0JXQm9CU0JXQltCU0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0KTQldCb0JTQldCW0JTQmCDQm9CQ0KHQm9CeCivQpNCV0JvQlNCV0JbQlNCYINCf0JXQotCQ0KAKK9Ck0JXQm9CU0JXQltCU0Jgg0KHQotCV0JLQkNCdCivQpNCV0JvQlNCV0JDQmiDQlNCQ0J3QmNCm0JAKK9Ck0JXQm9CU0JXQkNCaINCI0J7QltCV0KQKK9Ck0JXQm9CU0Jgg0KjQkNCd0JTQntCgCivQpNCV0JvQlNCYINCV0KDQltCV0JHQldCiCivQpNCV0JvQlNCYINCI0JDQoNCe0KHQm9CQ0JIKK9Ck0JXQm9CU0JLQkNCg0Jgg0IjQntCh0JjQnwor0KTQldCb0JTQktCQ0KDQmCDQiNCe0JLQkNCdCivQpNCV0JvQlNCS0JDQoNCYINCI0KPQodCi0JjQndCQCivQpNCV0JvQlNCS0JDQoNCYINCa0JDQm9Cc0JDQnQor0KTQldCb0JTQktCQ0KDQmCDQntCb0JPQmNCm0JAKK9Ck0JXQm9CU0JLQkNCg0Jgg0KHQotCV0JLQkNCdCivQpNCV0JvQlNCS0JXQkdCV0Jsg0KDQntCX0JDQm9CY0IjQkAor0KTQldCb0JUg0JTQoNCQ0JbQldCdINCb0JXQmtCQ0KAKK9Ck0JXQm9CV0Isg0JjQl9CV0KIKK9Ck0JXQm9CV0JPQmCDQkNCd0JAKK9Ck0JXQm9CV0JPQmCDQm9CQ0JTQmNCh0JvQkNCSCivQpNCV0InQkCDQnNCY0KDQiNCQ0J3QkAor0KTQldCb0J3QldCgINCU0KPQqNCQ0J3QmtCQCivQpNCV0JvQndCV0KAg0KLQmNCR0J7QoAor0KTQldCc0JjQiyDQkNCb0JXQmtCh0JjQiNCVCivQpNCV0JzQmNCLINCR0JvQkNCT0J7QiNCVCivQpNCV0JzQmNCLINCT0KDQo9CI0JjQptCQCivQpNCV0JzQmNCLINCc0JjQm9CY0IjQkAor0KTQldCc0JjQiyDQnNCY0JvQntCS0JDQnQor0KTQldCc0JjQiyDQn9CV0KLQmtCeCivQpNCV0JzQmNCLINCg0JDQlNCc0JjQm9CQCivQpNCV0JzQmNCLINCh0KLQkNCd0JrQkAor0KTQldCc0JjQiyDQktCV0InQmtCeCivQpNCV0JzQmNCLINCX0J7QoNCQCivQpNCV0J3QpiDQoNCj0JbQmNCm0JAKK9Ck0JXQndCU0JvQldCgINCI0J7QktCQ0J0KK9Ck0JXQndCU0KDQmNCaINCQ0J3QlNCg0JjQiNCQCivQpNCV0J3QlNCg0JjQmiDQpNCg0JDQitCeCivQpNCV0J3QlNCg0JjQmiDQmtCQ0KDQm9CeCivQpNCV0IrQkNCmINCY0JLQkNCdCivQpNCV0IrQkNCmINCI0J7QktCQ0J0KK9Ck0JXQitCQ0KYg0KHQmNCd0JjQqNCQCivQpNCV0IrQkNCmINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQpNCV0IrQldCoINCQ0J3QkAor0KTQldCK0JXQqCDQpNCg0JDQitCQCivQpNCV0IrQktCV0KjQmCDQnNCQ0KDQmNCo0JrQkAor0KTQldCg0KfQmNCaINCQ0J3QlNCg0JjQiNCQCivQpNCV0KDQkNCg0JjQndCe0JIg0J/QkNCS0JvQlQor0KTQldCg0JDQoNCY0J4g0KHQmNCb0JLQmNCeCivQpNCV0KDQkNCi0Jgg0JDQpNCY0JcKK9Ck0JXQoNCQ0KLQmCDQkdCV0KDQngor0KTQldCg0JDQotCYINCV0KXQkNCiCivQpNCV0KDQkNCi0Jgg0KDQkNCT0JjQnwor0KTQldCg0JDQotCYINCh0JXQiNCk0JjQlNCY0J0KK9Ck0JXQoNCQ0KLQmCDQodCa0JXQndCU0JXQoAor0KTQldCg0JXQndCn0JDQmiDQmNCS0JjQptCQCivQpNCV0KDQldCd0KfQldCaINCJ0KPQkdCY0KbQkAor0KTQldCg0JXQndCn0JXQmiDQntCb0JjQktCV0KAg0JTQmNCf0Jsg0JjQndCTCivQpNCV0KDQldCd0KfQldCaINCS0JjQm9Ca0J4KK9Ck0JXQoNCV0J3Qp9CV0JIg0JzQmNCb0J7QoNCQ0JQKK9Ck0JXQoNCV0J3Qp9CV0JIg0JfQntCg0JAKK9Ck0JXQoNCV0J3Qp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Ck0JXQoNCV0J3Qp9CV0JLQmNCLLdCh0JDQm9CQ0Igg0IjQldCb0JXQndCQCivQpNCV0KDQldCd0JDQpiDQkNCd0JTQoNCY0IjQkAor0KTQldCg0JXQndCQ0KYg0JDQndCU0KDQmNCI0JAKK9Ck0JXQoNCV0J3QkNCmINCY0JLQkNCdCivQpNCV0KDQldCd0JDQpiDQoNCQ0JTQnNCY0JvQkAor0KTQldCg0JXQndCmINCQ0J3QotCQ0JsKK9Ck0JXQoNCV0J3QpiDQiNCe0JbQldCkCivQpNCV0KDQldCd0KYg0IjQntCW0JXQpAor0KTQldCg0JXQndCm0Jgg0ILQldCg0IIKK9Ck0JXQoNCV0J3QptCYINCU0JXQl9CY0JTQldCgCivQpNCV0KDQldCd0KbQmCDQldCj0JPQldCdCivQpNCV0KDQldCd0KbQmCDQpNCg0JDQitCQCivQpNCV0KDQldCd0KbQmCDQiNCj0JvQmNCI0JDQndCQCivQpNCV0KDQldCd0KbQmCDQodCi0JXQktCQ0J0KK9Ck0JXQoNCV0J3QptCYINCS0JXQoNCQCivQpNCV0KDQmNCaINCI0KPQoNCQ0IgKK9Ck0JXQoNCY0Jog0IjQo9Cg0JDQiAor0KTQldCg0JjQl9Ce0JLQmNCLINCQ0KXQnNCV0KIKK9Ck0JXQoNCa0J4g0JDQndCU0KDQldCIINCU0KAg0JvQldCa0JDQoAor0KTQldCg0JrQniDQnNCY0JvQntCoCivQpNCV0KDQmtCeINCf0JDQktCV0JsKK9Ck0JXQoNCa0J4g0J/QkNCS0JvQlQor0KTQldCg0JvQkNCdINCg0JDQlNCc0JjQm9CQCivQpNCV0KLQkNCl0Jgg0JHQkNCI0KDQkNCcCivQpNCV0KLQkNCl0J7QktCY0Isg0JjQodCc0JXQogor0KTQldCi0JDQmCDQl9CY0JHQldCgCivQpNCY0KfQntCaINCQ0JvQntCI0JfQmNCI0JUKK9Ck0JjQqNCQ0JrQntCSINCa0J7QndCh0KLQkNCU0JjQnQor0KTQmNCo0JDQndCTINCJ0JjQidCQ0J3QkAor0KTQmNCo0JXQoCDQgtCe0KDQgtCVINCU0KAg0JvQldCa0JDQoAor0KTQmNCo0JXQoCDQgtCe0KDQgtCVCivQpNCY0KjQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ck0JjQqNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JjQqNCV0KAg0JDQndCi0J7QnQor0KTQmNCo0JXQoCDQkdCb0JDQndCa0JAKK9Ck0JjQqNCV0KAg0JTQoNCQ0JPQo9Ci0JjQnQor0KTQmNCo0JXQoCDQk9CQ0JLQoNCQCivQpNCY0KjQldCgINCY0KDQldCd0JAKK9Ck0JjQqNCV0KAg0JjQoNCV0J3QkAor0KTQmNCo0JXQoCDQiNCV0J3QlQor0KTQmNCo0JXQoCDQiNCe0KHQmNCfCivQpNCY0KjQldCgINCa0JDQoNCe0IkKK9Ck0JjQqNCV0KAg0JvQkNCh0JvQngor0KTQmNCo0JXQoCDQm9CV0J4g0JTQoAor0KTQmNCo0JXQoCDQndCQ0KLQkNCb0JjQiNCQCivQpNCY0KjQldCgINCf0JjQoNCe0KjQmtCQCivQpNCY0KjQldCgINCh0KLQldCS0JDQnQor0KTQmNCo0JXQoCDQl9CS0J7QndCY0JzQmNCgCivQpNCY0KjQmyDQpNCV0JTQntCgCivQpNCY0KjQmyDQiNCj0JvQmNCI0JAg0JTQmNCf0Jsg0JjQndCTCivQpNCY0KjQotCV0Kgg0JjQnNCg0JUKK9Ck0JjQqNCi0JXQqCDQnNCQ0KDQmNCI0JAKK9Ck0JjQqNCi0JXQqCDQnNCY0KXQkNCJCivQpNCY0KjQotCV0Kgg0J/QmNCg0J7QqNCa0JAKK9Ck0JjQkNCb0JAg0JjQktCQ0J3QmtCQCivQpNCY0JDQm9CQINCY0JLQkNCdCivQpNCY0JHQmNCo0JDQnSDQgtCj0KDQkNCCCivQpNCY0JHQmNCo0JDQnSDQodCb0JDQktCe0InQo9CRCivQpNCY0KbQlSDQldCg0JbQldCR0JXQogor0KTQmNCm0JjQndCT0JXQoCDQktCQ0JvQldCg0JjQiNCQCivQpNCY0JTQo9Co0JXQmiDQmtCQ0KLQmNCm0JAKK9Ck0JjQpNCQINCU0KDQkNCT0JjQptCQCivQpNCY0KTQkCDQndCV0JHQmAor0KTQmNCT0KPQoNCQINCo0JDQndCU0J7QoAor0KTQmNCI0JDQotCe0JLQmNCLINCe0JvQk9CQCivQpNCY0IjQo9Ca0J7QktCY0Isg0KHQkNCU0JXQotCQCivQpNCY0IjQo9CJ0JDQndCY0J0g0JfQo9Cb0KTQngor0KTQmNCb0JXQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ck0JjQm9CV0JrQntCS0JjQiyDQodCV0JjQlAor0KTQmNCb0JXQnyDQgtCV0KDQggor0KTQmNCb0JXQnyDQgtCe0KDQgtCVCivQpNCY0JvQldCfINCC0J7QoNCC0JUKK9Ck0JjQm9CV0J8g0JDQndCi0JDQmwor0KTQmNCb0JXQnyDQkdCV0JvQkAor0KTQmNCb0JXQnyDQmNCU0JAKK9Ck0JjQm9CV0J8g0IjQldCd0JUKK9Ck0JjQm9CV0J8g0IjQntCW0JXQpAor0KTQmNCb0JXQnyDQmtCQ0JvQnNCQ0J0KK9Ck0JjQm9CV0J8g0JrQkNCb0JzQkNCdCivQpNCY0JvQldCfINCb0JDQlNCY0KHQm9CQ0JIKK9Ck0JjQm9CV0J8g0JzQmNCg0IjQkNCd0JAKK9Ck0JjQm9CV0J8g0JfQntCb0KLQkNCdCivQpNCY0JvQldCf0Jgg0JzQmNCg0J7QodCb0JDQkgor0KTQmNCb0JjQnNCe0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KTQmNCb0JjQnNCe0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQpNCY0JvQmNCfINCI0J7QktCQ0J0g0JTQoCDQn9Cg0JDQktCd0JjQmgor0KTQmNCb0JjQnyDQoNCQ0JTQntCh0JDQkgor0KTQmNCb0JjQn9Cn0JXQkiDQl9CU0KDQkNCS0JrQngor0KTQmNCb0JjQn9CQ0Kgg0JTQoNCQ0JPQkNCdCivQpNCY0JvQmNCf0JDQqNCV0JIg0J3QkNCU0JAKK9Ck0JjQm9CY0J/QldCmINCX0JjQotCQCivQpNCY0JvQmNCf0JXQndCU0JjQnSDQnNCQ0KDQmtCeCivQpNCY0JvQmNCf0J7QkiDQmNCb0JjQiNCQCivQpNCY0JvQmNCf0J7QkiDQnNCY0JvQntCoCivQpNCY0JvQmNCf0J7QkiDQnNCY0J7QlNCg0JDQkwor0KTQmNCb0JjQn9Ce0JIg0JzQntCc0JjQoAor0KTQmNCb0JjQn9Ce0JIg0J3QmNCa0J7Qm9CQCivQpNCY0JvQmNCf0J7QkiDQn9Cg0JXQlNCg0JDQkwor0KTQmNCb0JjQn9Ce0JIg0KDQkNCU0J7QktCQ0J0KK9Ck0JjQm9CY0J/QntCSINCh0JvQkNCC0JDQndCQCivQpNCY0JvQmNCf0J7QkiDQotCY0KXQntCc0JjQoAor0KTQmNCb0JjQn9Ce0JIg0KLQmNCI0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KfQldCU0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQmNCb0JjQn9Ce0JLQmNCLINCQ0J3QotCe0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQkdCe0KjQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JHQntCT0J7QnNCY0KAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQkdCe0KDQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLLdCU0JDQnNCI0JDQndCe0JIg0J3QkNCU0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0JjQiNCQ0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0J7QkdCg0JjQptCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQmNCS0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCY0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQiNCe0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0IjQntCS0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CV0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQntCI0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCg0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCQ0KLQkNCo0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JjQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0J/QkNCj0JvQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCf0JXQoNCeCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ck0JjQm9CY0J/QntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0KPQltCQ0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0KPQlNCe0JvQpAor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0JDQktCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQmNCR0JjQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0J3QldCW0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCg0ILQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQoNCV0IvQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQpNCY0JvQmNCf0J7QktCY0Isg0JLQldCh0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQpNCY0JvQmNCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KTQmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JfQntCg0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ck0JjQm9CY0J/QntCS0KHQmtCQLdCe0JHQoNCQ0JTQntCS0JjQiyDQktCV0KDQkAor0KTQmNCb0JjQn9Ce0JLQodCa0Jgg0JHQntCW0J4KK9Ck0JjQm9CY0J/QntCS0KHQmtCYINCi0J7QlNCe0KEKK9Ck0JjQm9Ca0J4g0JTQoNCQ0JPQmNCm0JAKK9Ck0JjQm9Ca0J4g0IjQntCh0JjQnwor0KTQmNCb0JrQniDQiNCe0JLQkNCdCivQpNCY0JvQmtCeINCc0JDQoNCY0IjQkAor0KTQmNCb0JrQniDQnNCY0KXQkNCJCivQpNCY0JvQmtCeINCc0JjQpdCQ0IkKK9Ck0JjQm9Ca0J4g0J/QkNCS0JXQmwor0KTQmNCb0JrQniDQotCY0KXQntCc0JjQoAor0KTQmNCd0KfQo9CgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCY0J3Qp9Cj0KAg0IjQntCW0JXQpAor0KTQmNCd0KfQo9CgINCI0KPQm9CY0IjQkNCd0JAKK9Ck0JjQndCn0KPQoCDQm9CQ0JTQmNCh0JvQkNCSCivQpNCY0J3Qj9CQ0J3QntCS0JjQiyDQk9Ce0IjQmtCeCivQpNCY0J3Qj9CQ0J3QntCS0JjQiyDQnNCY0JrQngor0KTQmNCd0I/QkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0KTQmNCd0I/QkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0KTQmNCd0Jot0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0J7QoNCe0KLQldCQCivQpNCY0J3QmiDQktCY0JrQotCe0KAg0J3QntCS0JjQndCQ0KAKK9Ck0JjQndCa0JAg0JPQntCg0KfQkNCdCivQpNCY0KAg0JHQldCQ0KLQkAor0KTQmNCg0JDQiiDQiNCe0JbQldCkCivQpNCY0KDQkNCK0Jgg0ILQldCg0IIKK9Ck0JjQoNCQ0IrQmCDQgtCe0KDQgtCVCivQpNCY0KDQkNCK0Jgg0ILQntCg0ILQlQor0KTQmNCg0JDQitCYINCV0KDQltCV0JHQldCiCivQpNCY0KDQkNCK0Jgg0IjQntCS0JDQnQor0KTQmNCg0JDQitCYINCS0JjQmtCi0J7QoAor0KTQmNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Ck0JjQoNCj0JvQntCS0JjQiyDQmtCe0KHQotCQ0J3QotCY0J0KK9Ck0JjQodCi0KDQmNCLINCC0J7QoNCC0JUKK9Ck0JjQodCi0KDQmNCLINCc0JjQoNCI0JDQndCQCivQpNCY0JLQldCo0Jgg0JPQkNCR0J7QoAor0KTQmNCS0JXQqNCYINCi0JjQkdCe0KAKK9Ck0JvQkNCmINCY0JLQkNCd0JrQkAor0KTQm9CQ0KYg0J/QldCi0JDQoAor0KTQm9CQ0IjQoSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQm9CV0JPQldCgINCh0KLQldCS0JDQnQor0KTQm9CV0JPQniDQmNCS0JDQnQor0KTQm9CV0JPQniDQnNCQ0KDQotCQCivQpNCb0JXQmtCQ0Kcg0JLQm9CQ0JTQngor0KTQm9CY0KLQndCV0KAg0J7QodCa0JDQoAor0KTQm9Ce0JrQkCDQgtCV0J3QmNCa0JAKK9Ck0JvQntCg0JAg0JLQkNCh0JAKK9Ck0JvQntCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ck0JvQntCg0JjQiyDQidCj0JHQmNCm0JAKK9Ck0JvQntCg0JjQiyDQl9Ce0KDQkNCdCivQpNCb0J7QoNCY0Isg0JfQntCg0JDQnQor0KTQm9Ce0KDQmNCdINCS0JjQndCa0JAKK9Ck0J7QlNCe0KAg0JbQntCk0JjQiNCQCivQpNCe0JTQntCgINCQ0J3QkAor0KTQntCU0J7QoCDQkNCd0JTQoNCY0IjQkAor0KTQntCU0J7QoCDQldCg0JbQldCR0JXQogor0KTQntCU0J7QoCDQpNCV0KDQldCd0KYKK9Ck0J7QlNCe0KAg0KTQoNCQ0IrQkAor0KTQntCU0J7QoCDQpNCg0JDQitCQCivQpNCe0JTQntCgINCI0J7Qm9CQ0J0KK9Ck0J7QlNCe0KAg0IjQntCS0JDQnQor0KTQntCU0J7QoCDQiNCe0JLQkNCdCivQpNCe0JTQntCgINCa0JDQm9Cc0JDQnQor0KTQntCU0J7QoCDQmtCQ0KLQkAor0KTQntCU0J7QoCDQm9CQ0IjQntCoCivQpNCe0JTQntCgINCb0JDQodCb0J4KK9Ck0J7QlNCe0KAg0JvQkNCh0JvQngor0KTQntCU0J7QoCDQm9CQ0KHQm9CeCivQpNCe0JTQntCgINCb0JDQodCb0J4KK9Ck0J7QlNCe0KAg0JvQmNCU0JjQiNCQCivQpNCe0JTQntCgINCc0JDQoNCi0JAKK9Ck0J7QlNCe0KAg0J7QodCa0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Ck0J7QlNCe0KAg0KLQmNCR0J7QoAor0KTQntCU0J7QoCDQotCY0JHQntCgCivQpNCe0JTQntCgINCi0JjQkdCe0KAKK9Ck0J7QlNCe0KAg0JfQlNCg0JDQktCa0J4KK9Ck0J7QlNCe0KDQkCDQiNCQ0J3QmtCeCivQpNCe0JPQkNCg0JDQqNCYINCC0JXQoNCCINCU0KAKK9Ck0J7Qk9CQ0KDQkNCo0Jgg0ILQldCg0IIKK9Ck0J7Qk9CQ0KDQkNCo0Jgg0JDQndCU0KDQmNCI0JAKK9Ck0J7Qk9CQ0KDQkNCo0Jgg0JDQndCY0JrQngor0KTQntCT0JDQoNCQ0KjQmCDQmNCb0J7QndCQCivQpNCe0JPQkNCg0JDQqNCYINCh0KLQldCS0JDQnQor0KTQntCT0Jsg0JzQkNCT0JTQkNCb0JXQndCQCivQpNCe0IjQmtCQ0KAg0IjQkNCd0JrQngor0KTQntCb0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCgCivQpNCe0JvQotCY0J0g0JzQkNCg0JPQmNCi0JAKK9Ck0J7Qm9Ci0JjQnSDQnNCY0JvQmNCm0JAKK9Ck0J7QndCi0JDQiiDQm9Ce0KLQkNCgCivQpNCe0KDQkNCYINCX0J7Qm9Ci0JDQnQor0KTQntCg0JDQmCDQl9Ce0KDQmNCm0JAKK9Ck0J7QoNCT0JDQpyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQntCg0JPQmNCLINCY0JLQkNCdCivQpNCe0KDQk9CeINCY0KjQotCS0JDQnQor0KTQntCg0JPQniDQm9CQ0KHQm9CeCivQpNCe0KDQmNCo0JrQntCSINCI0J7QktCQ0J3QmtCQCivQpNCe0KDQmNCo0JrQntCSINCb0JDQl9CQ0KAKK9Ck0J7QoNCY0KjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCe0KDQmtCQ0J/QkCDQodCQ0JLQngor0KTQntCg0JrQkNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQntCg0JrQkNCf0JjQiyDQmNCS0JDQndCa0JAKK9Ck0J7QoNCa0JDQn9CY0Isg0JvQkNCX0JDQoAor0KTQntCg0JrQkNCf0JjQiyDQnNCQ0KDQmNCI0JAKK9Ck0J7QoNCa0JDQn9CY0Isg0J3QmNCa0J7Qm9CQCivQpNCe0KDQmtCQ0J/QmNCLINCh0JDQktCQCivQpNCe0KDQmtCQ0J/QmNCLINCh0JvQkNCS0JjQptCQCivQpNCe0KDQmtCQ0J/QmNCLINCS0JXQm9CY0J3QmtCQCivQpNCe0KDQniDQmNCS0JDQnQor0KTQntCg0J4g0IjQo9Cb0JjQiNCQ0J3QkAor0KTQntCi0JjQiyDQgtCe0KDQgtCVCivQpNCe0JfQldCa0J7QqCDQkNCd0JrQmNCm0JAKK9Ck0KDQp9CV0Jog0ILQo9Cg0JAKK9Ck0KDQp9CV0Jog0JzQkNCg0JjQiNCQCivQpNCg0JbQntCfINCc0JjQqNCVCivQpNCg0JbQntCS0JjQiyDQgtCe0KDQgtCVCivQpNCg0JbQntCS0JjQiyDQk9CQ0JLQoNCY0JvQngor0KTQoNCW0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ck0KDQltCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KTQoNCQ0KbQmNCb0JUg0J3QmNCm0JUKK9Ck0KDQkNCI0KHQoiDQoNCj0JTQntCb0KQKK9Ck0KDQkNCI0KLQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KTQoNCQ0IjQlyDQn9CV0KLQkNCgCivQpNCg0JDQndCn0JjQiyDQoNCe0JoKK9Ck0KDQkNCd0KYg0JzQkNCT0JTQkNCb0JXQndCQINCU0JjQn9CbINCY0J3Qkwor0KTQoNCQ0J3QptCV0Ikg0KTQoNCQ0J3Qpgor0KTQoNCQ0J3QptCV0KAg0JjQktCQ0J0KK9Ck0KDQkNCd0KbQldCgINCY0JLQkNCdCivQpNCg0JDQndCm0JjQqNCa0J7QktCY0Isg0JDQotCY0JvQkAor0KTQoNCQ0J3QptCY0KjQmtCe0JLQmNCLINCY0JLQkNCdCivQpNCg0JDQndCm0JjQqNCa0J7QktCY0Isg0JzQkNCi0JUKK9Ck0KDQkNCd0KbQmNCQINCQ0J3QlNCg0JjQiNCQCivQpNCg0JDQndCm0JjQkCDQmNCo0KLQktCQ0J0KK9Ck0KDQkNCd0KbQmNCQINCf0JXQotCQ0KAKK9Ck0KDQkNCd0KbQmNCI0JAg0IjQntCW0JXQpAor0KTQoNCQ0J3QptCY0IjQkC3QmtCj0JrQmNCn0JrQkCDQnNCQ0KDQk9CQ0KDQldCi0JAKK9Ck0KDQkNCd0KbQmNCh0KLQmCDQgtCe0KDQgtCVCivQpNCg0JDQndCm0JjQodCi0Jgg0IjQkNCg0J7QodCb0JDQkgor0KTQoNCQ0J3QptCY0KHQotCYINCf0JDQktCb0JUKK9Ck0KDQkNCd0KbQmNCh0KLQmCDQktCb0JDQlNCY0JzQmNCgCivQpNCg0JDQndCm0KPQodCa0Jgg0JDQm9CV0JrQodCQCivQpNCg0JDQndCm0KPQodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQpNCg0JDQndCm0KPQodCa0Jgg0JTQkNCg0JjQndCa0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQlNCV0KHQkNCd0JrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCU0KDQkNCT0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCU0KPQqNCQ0J0KK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQmNCS0JDQnSDQlNCgCivQpNCg0JDQndCm0KPQodCa0Jgg0IjQntCS0JDQndCa0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQnNCQ0KDQmtCeCivQpNCg0JDQndCm0KPQodCa0Jgg0JzQmNCb0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQn9CV0KLQkNCgCivQpNCg0JDQndCm0KPQodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCh0KLQoNCQ0KXQmNCK0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQl9Ce0KDQkNCdCivQpNCg0JDQndCm0KPQodCa0Jgg0JfQntCg0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCX0J7QoNCa0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQl9Ce0KDQmtCQCivQpNCg0JDQndCm0KPQlyDQlNCQ0KDQmNCd0JrQkAor0KTQoNCQ0J3QptCj0Jcg0IjQldCb0JXQndCQCivQpNCg0JDQndCm0KPQlyDQktCV0JvQmNCc0JjQoAor0KTQoNCQ0J3QptCj0Jcg0JLQo9CaCivQpNCg0JDQndCV0KLQkCDQiNCe0JLQngor0KTQoNCQ0J3QmNCLINCY0JLQkNCdCivQpNCg0JDQndCY0Isg0JzQmNCb0JrQkAor0KTQoNCQ0IrQmNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQpNCg0JDQitCY0Isg0JzQkNCg0JjQptCQCivQpNCg0JDQitCeINCW0KPQltCQ0J3QkAor0KTQoNCQ0J3QmiDQgtCV0KDQggor0KTQoNCQ0J3QmiDQpNCV0KDQldCd0KYKK9Ck0KDQkNCd0Jog0JjQm9CV0KgKK9Ck0KDQkNCd0Jog0IjQkNCd0J7QqAor0KTQoNCQ0J3QmiDQotCY0JHQntCgCivQpNCg0JDQndCa0JAg0JzQmNCl0JDQiNCb0J4KK9Ck0KDQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQpNCg0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQpNCg0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ck0KDQkNCd0JfQldCgINCY0JLQkNCdCivQpNCg0JDQotCe0Igg0IjQntCm0JAKK9Ck0KDQkNCi0KDQmNCLINCh0JjQk9Cc0KPQndCUCivQpNCg0JDQotCj0KbQkNCdINCC0J7QoNCC0JUKK9Ck0KDQkNCi0KPQptCQ0J0g0ILQntCg0ILQlQor0KTQoNCQ0KLQo9Cm0JDQnSDQpNCY0JvQmNCfCivQpNCg0JDQotCj0KbQkNCdINCY0JLQkNCdCivQpNCg0JDQotCj0KbQkNCdINCd0JXQktCV0J3QkAor0KTQoNCQ0KLQo9Cm0JDQnSDQn9CV0KLQkNCgCivQpNCg0JDQotCj0KbQkNCd0J7QkiDQmNCS0JDQndCa0JAKK9Ck0KDQldCYINCV0JvQmNCX0JDQkdCV0KLQkAor0KTQoNCV0JzQldCgINCQ0J3QotCj0J0KK9Ck0KDQldCc0Jsg0KjQkNCd0JTQntCgCivQpNCg0JXQndCa0JXQmyDQkNCd0JAKK9Ck0KDQldCd0JrQldCbINCV0JLQkAor0KTQoNCV0J3QmtCbINCU0KDQkNCT0JjQptCQCivQpNCg0JjQpyDQkdCe0JbQmNCU0JDQoAor0KTQoNCY0Kcg0JrQkNCi0JjQptCQCivQpNCg0JjQqCDQlNCg0JDQk9CQ0J0KK9Ck0KDQmNCoINCc0JjQm9CQ0J0KK9Ck0KDQmNCo0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ck0KDQmNCmINCg0KPQlNCe0JvQpAor0KTQoNCY0JTQoNCY0KUg0JDQndCQCivQpNCg0JjQlNCg0JjQpSDQiNCV0JvQldCd0JAKK9Ck0KDQmNCU0KDQmNClINCc0JDQk9CU0JAKK9Ck0KDQmNCU0KDQmNClINCX0J7QoNCY0KbQkAor0KTQoNCY0J3QlNCY0Jog0KTQoNCQ0IrQkAor0KTQoNCY0J3QlNCY0Jog0JzQmNCl0JDQiQor0KTQoNCY0J3QlNCg0JjQmiDQkdCV0JvQkAor0KTQoNCa0JAg0JDQoNCi0KPQoAor0KTQoNCa0JAg0J3QmNCa0J7Qm9CQCivQpNCg0Ikg0JzQo9Cl0JDQoNCV0JwKK9Ck0KDQntCbINCc0JDQoNCY0IjQkNCdCivQpNCg0J7QmyDQndCQ0JTQkAor0KTQoNCe0Jsg0JLQmNCb0JjQnAor0KTQoNCj0JbQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQo9Cn0JjQmiDQmtCQ0KDQm9CeCivQpNCj0JTQldCg0JXQoCDQiNCj0JvQmNCI0JUKK9Ck0KPQlNCV0KDQldCgINCc0JDQk9CU0JDQm9CV0J3QkAor0KTQo9CI0JrQkCDQgtCe0KDQgtCVCivQpNCj0IjQotCeINCS0JvQkNCU0JjQnNCY0KAKK9Ck0KPQm9CQ0IjQotCV0KAg0ILQntCg0ILQlQor0KTQo9Cd0IvQmNCaINCf0JDQktCb0JUKK9Ck0KPQndCU0KPQoNCj0InQkCDQnNCY0JvQldCd0JrQngor0KTQo9Cd0Jog0KjQotCV0KTQkNCd0JjQiNCQCivQpNCj0J3QmiDQm9CQ0IjQntCoCivQpNCj0J3QotCV0Jog0JjQktCQ0J0KK9Ck0KPQoNCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KTQo9Cg0JvQkNCdINCV0KDQltCV0JHQldCiCivQpNCj0KDQm9CQ0J0g0JzQkNCg0JrQngor0KTQo9Cg0JzQkNCdINCk0KDQkNCK0JAKK9Ck0KPQoNCc0JDQnSDQiNCe0JLQkNCdCivQpNCj0KDQnNCQ0J0g0JzQkNCg0JjQiNCQCivQpNCj0KDQnNCQ0J0g0KLQmNCc0J7QpNCV0IgKK9Ck0KPQoNCc0JDQnSDQotCY0J3QmtCQCivQpNCj0KDQniDQmNCc0KDQlQor0KTQo9Ch0JrQniDQkNCd0JPQldCb0JAKK9Ck0KPQodCa0J4g0JjQqNCi0JLQkNCdCivQpNCj0KHQmtCeINCc0JDQoNCY0IjQkAor0KTQo9Ch0JrQniDQnNCY0KXQkNCJCivQpNCj0KLQniDQkNCd0KLQkNCbCivQpNCj0KLQniDQiNCe0JbQldCkCivQpNCj0KLQniDQiNCe0JbQldCkCivQpNCj0KLQniDQnNCY0KDQmtCeCivQpNCj0KLQntCo0JrQmCDQnNCY0JvQkNCdCivQpNCj0KLQntCo0JrQmCDQnNCY0KLQkAor0JPQkNCn0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JPQkNCn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQkNCn0JXQktCY0Isg0KDQkNCU0JXQndCa0J4KK9CT0JDQp9CV0JLQmNCLINCi0JXQoNCV0JfQkAor0JPQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9CT0JDQp9CY0Isg0JTQkNCd0JjQptCQCivQk9CQ0KfQmNCLINCU0JDQndCY0JvQngor0JPQkNCn0JjQiyDQnNCY0JvQkNCdCivQk9CQ0KfQmNCLINCh0KLQldCS0JDQnQor0JPQkNCn0JjQiyDQodCi0JXQktCQ0J0KK9CT0JDQp9CY0Isg0JLQm9CQ0JTQkNCdCivQk9CQ0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQkNCo0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CT0JDQqNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQk9CQ0KjQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JPQkNCo0JXQktCY0Isg0KHQkNCS0JrQkAor0JPQkNCo0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0JDQqNCYINCC0JXQnNCQ0JjQiQor0JPQkNCo0Jgg0KXQkNCc0JTQmAor0JPQkNCo0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQkNCo0Jgg0InQo9CQ0J0KK9CT0JDQqNCYINCX0J7QoNCQ0J0KK9CT0JDQqNCY0Isg0JHQntCT0JTQkNCdCivQk9CQ0KjQmNCLINCU0KPQqNCQ0J0KK9CT0JDQqNCY0Isg0JrQntCS0JjQidCa0JAKK9CT0JDQqNCY0Isg0JrQntCS0JjQidCa0JAKK9CT0JDQqNCY0Isg0JrQoNCh0KLQkAor0JPQkNCo0JjQiyDQnNCY0KDQntCJ0KPQkQor0JPQkNCo0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQqNCY0Isg0KHQmNCb0JLQkNCd0JAKK9CT0JDQqNCY0Isg0KLQntCU0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9CT0JDQqNCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0JPQkNCo0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQkNCo0JjQiyDQl9Ce0KDQkAor0JPQkNCo0J/QkNCgINCR0J7Qk9CU0JDQnQor0JPQkNCo0J/QkNCgINCI0JDQndCe0KgKK9CT0JDQqNCf0JDQoCDQm9CQ0IjQntCoCivQk9CQ0KjQn9CQ0KAg0JvQmNCU0JjQiNCQCivQk9CQ0KjQn9CQ0KAg0JzQmNCb0JXQndCa0J4KK9CT0JDQqNCf0JDQoNCV0JLQmNCLINCV0KDQmNCa0JAKK9CT0JDQqNCf0JDQoNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JPQkNCo0J/QkNCg0JjQiyDQndCQ0JTQkAor0JPQkNCo0J/QkNCg0JjQnSDQidCY0InQkNCd0JAKK9CT0JDQqNCf0JDQoNCe0JLQmNCLINCI0J7QodCY0J8KK9CT0JDQi9CQINCR0KDQkNCd0JjQodCb0JDQkgor0JPQkNCL0JAg0JzQmNCe0JTQoNCQ0JMKK9CT0JDQi9CQINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQi9CQ0Kgg0JTQoNCQ0JPQmNCm0JAKK9CT0JDQi9CQ0Kgg0KHQmNCd0JjQqNCQCivQk9CQ0IvQkNCoINCh0KLQldCS0JDQnQor0JPQkNCL0JXQqNCQINCC0KPQoNCeCivQk9CQ0IvQldCo0JAg0JHQoNCQ0J3QmtCQCivQk9CQ0IvQldCo0JAg0JTQoNCQ0JPQkNCdCivQk9CQ0IvQldCo0JAg0JTQoNCQ0JPQkNCdCivQk9CQ0IvQldCo0JAg0JjQm9CY0IjQkAor0JPQkNCL0JXQqNCQINCc0JDQndCe0IjQm9CeCivQk9CQ0IvQldCo0JAg0JzQmNCb0J7QqAor0JPQkNCL0JXQqNCQINCc0JjQm9Ce0KDQkNCUCivQk9CQ0IvQldCo0JAg0JzQmNCb0J7QktCQ0J0g0JTQoAor0JPQkNCL0JXQqNCQINCd0JjQmtCe0JvQkAor0JPQkNCL0JXQqNCQINCh0JvQkNCS0JrQngor0JPQkNCL0JXQqNCQINCS0JXQidCa0J4KK9CT0JDQi9CV0KjQkCDQktCb0JDQlNCY0JzQmNCgCivQk9CQ0IvQmNCd0JAg0JbQkNCg0JrQngor0JPQkNCL0JjQndCQINCJ0JjQidCQ0J3QkAor0JPQkNCL0JjQndCe0JLQmNCLINCR0J7QltCeCivQk9CQ0IvQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9CQ0IvQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JPQkNCL0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9CQ0IvQmNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JPQkNCW0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CT0JDQltCY0Jog0KLQldCg0JXQl9CY0IjQkAor0JPQkNCW0J4g0JrQkNCi0JjQptCQCivQk9CQ0JbQni3QnNCQ0KLQntCo0JrQntCS0JjQiyDQntCb0JPQmNCm0JAKK9CT0JDQltCeINCc0JjQpdCQ0IjQm9CeCivQk9CQ0JbQniDQnNCY0JrQm9Ce0KgKK9CT0JDQgtCQ0J3QodCa0Jgg0JfQntCg0JDQnQor0JPQkNCR0JvQldCgINCS0JjQmtCi0J7QoNCY0IjQkAor0JPQkNCR0J7QoCDQkNCg0J/QkNCUCivQk9CQ0JHQntCgINCR0JXQm9CQCivQk9CQ0JHQntCgINCV0KDQltCV0JHQldCiCivQk9CQ0JHQntCgINCY0KDQldCd0JAKK9CT0JDQkdCe0KAg0IjQntCW0JXQpAor0JPQkNCR0J7QoCDQmtCQ0KDQntCJCivQk9CQ0JHQntCgINCd0JDQndCU0J7QoAor0JPQkNCR0J7QoNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9CQ0JHQntCg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0JDQkdCe0KDQntCSINCT0JDQktCg0JjQm9CeCivQk9CQ0JHQntCg0J7QkiDQnNCY0JvQkNCdCivQk9CQ0JHQntCg0J7QkiDQnNCY0KLQkAor0JPQkNCR0J7QoNCe0JIg0J/QkNCS0JvQlQor0JPQkNCR0J7QoNCe0JIg0J/QldCi0JDQoAor0JPQkNCR0KDQlSDQoNCe0JrQngor0JPQkNCR0KDQmNCLINCV0JLQmNCm0JAKK9CT0JDQkdCg0JjQiyDQmtCh0JXQndCY0IjQkAor0JPQkNCR0KDQmNCLINCc0JjQpdCQ0IjQm9CeCivQk9CQ0JHQoNCY0Isg0J3QldCh0KLQntCgCivQk9CQ0JHQoNCY0Isg0J/QldCi0JDQoAor0JPQkNCR0KDQmNCLINCh0JvQkNCS0JrQngor0JPQkNCR0KDQmNCV0Jsg0JzQmNCa0JvQntCoCivQk9CQ0JHQoNCY0IjQldCb0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9CQ0JHQoNCe0JLQmNCLINCQ0J3QlNCg0JDQqAor0JPQkNCR0KDQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0JPQkNCm0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0I/QkCDQmtCg0JjQltCQ0J0KK9CT0JDQj9CQINCg0KPQltCQCivQk9CQ0I/QmNCLINCc0JjQm9CQ0J0KK9CT0JDQj9CY0Isg0JLQmNCd0JrQngor0JPQkNCP0KPQoCDQmNCS0JDQnQor0JPQkNCP0KPQoNCY0Isg0JfQm9CQ0KLQmtCeCivQk9CQ0JTQkNCd0JXQpiDQmtCQ0KLQkNCg0JjQndCQCivQk9CQ0JTQitCQ0Jgg0IjQntCS0JAKK9CT0JDQlNCK0JDQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQk9CQ0JPQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0JPQmNCLINCQ0JLQoNCQ0JwKK9CT0JDQk9CY0Isg0JHQntCo0JrQngor0JPQkNCT0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQk9CQ0JPQmNCLINCU0KDQkNCT0JjQptCQCivQk9CQ0JPQmNCLINCU0KPQqNCQ0J0KK9CT0JDQk9CY0Ist0JPQoNCj0JHQldCo0JAg0JzQmNCb0JXQktCQCivQk9CQ0JPQmNCLINCI0J7QktCQ0J3QmtCQCivQk9CQ0JPQmNCLINCI0J7QktCQ0J0KK9CT0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JPQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCT0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQk9CQ0JPQmNCLINCg0JDQlNCe0JLQkNCdCivQk9CQ0JPQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0JDQk9CY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JPQkNCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQk9Ce0JLQmNCLINCd0J7QktCQ0JoKK9CT0JDQk9Ce0JLQmNCLINCe0JvQk9CQCivQk9CQ0JPQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JPQkNCT0KDQp9CY0J0g0JvQkNCX0JDQoAor0JPQkNCT0KDQp9CY0J0g0JzQm9CQ0JTQldCdCivQk9CQ0JPQoNCY0KbQkCDQiNCe0JLQkNCdCivQk9CQ0JPQo9Cb0JAg0JzQo9CI0J4KK9CT0JDQmNCLINCS0JXQidCa0J4KK9CT0JDQmNCm0JrQmCDQndCY0JrQntCb0JAKK9CT0JDQmNCm0JrQmCDQodCQ0IrQkAor0JPQkNCY0KbQmtCYINCi0JDQndCQ0KHQmNCI0JUKK9CT0JDQmNCm0JrQmCDQktCV0KDQmNCm0JAKK9CT0JDQmNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0JPQkNCI0KjQmNCdINCh0JvQkNCS0JjQptCQCivQk9CQ0IjQqNCY0J0g0KHQnNCY0InQkAor0JPQkNCI0KjQmNCdINCh0KLQkNCd0JjQodCb0JDQkgor0JPQkNCI0JDQndCY0Isg0KHQotCI0JXQn9CQ0J0KK9CT0JDQiNCU0JAg0KjQkNCd0JTQntCgCivQk9CQ0IjQlNCe0Kgg0ILQo9Cb0JAKK9CT0JDQiNCU0J7QqCDQmNCo0KLQktCQ0J0KK9CT0JDQiNCU0J7QqCDQmNCR0J7QidCQCivQk9CQ0IjQlNCe0Kgg0JvQkNCh0JvQngor0JPQkNCI0JTQntCoINCJ0KPQkdCe0JzQmNCgCivQk9CQ0IjQlNCe0Kgg0JzQmNCl0JDQiNCb0J4KK9CT0JDQiNCU0J7QqCDQndCY0JrQntCb0JAKK9CT0JDQiNCU0J7QqCDQn9CV0KLQkNCgCivQk9CQ0IjQlNCe0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQk9CQ0IjQlNCe0JHQoNCQ0J3QodCa0Jgg0ILQntCg0ILQlSDQlNCgCivQk9CQ0IjQlNCe0JHQoNCQ0J3QodCa0Jgg0JTQkNCd0JjQptCQCivQk9CQ0IjQlNCe0JHQoNCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JPQkNCI0JTQntCR0KDQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQotCe0JTQntCgCivQk9CQ0IjQldCgINCC0KPQoNCQCivQk9CQ0IjQldCgINCI0J7QptCQCivQk9CQ0IjQldCgINCb0JXQntCd0JAKK9CT0JDQiNCV0KAg0JzQkNCd0J7QiNCb0J4KK9CT0JDQiNCV0KAg0J3QkNCU0JAKK9CT0JDQiNCT0JXQoCDQiNCe0JbQldCkCivQk9CQ0IjQmNCo0JjQnSDQlNCQ0KDQkAor0JPQkNCI0JjQqNCY0J0g0JvQkNCX0JDQoAor0JPQkNCI0JjQqNCY0J0g0JzQmNCb0JjQptCQCivQk9CQ0IjQmNCo0JjQnSDQn9CV0KLQkNCgCivQk9CQ0IjQmNCo0JjQnSDQodCi0JXQktCQ0J0KK9CT0JDQiNCY0KjQmNCdINCh0KLQldCS0JDQnQor0JPQkNCI0JjQqNCY0J0g0KLQntCc0JjQodCb0JDQkgor0JPQkNCI0JjQiyDQltCQ0KDQmtCeCivQk9CQ0IjQmNCLINCW0JDQoNCa0J4KK9CT0JDQiNCY0Isg0JbQmNCS0JrQkAor0JPQkNCI0JjQiyDQltCY0JLQmtCeCivQk9CQ0IjQmNCLINCW0JjQktCe0KLQkAor0JPQkNCI0JjQiyDQgtCe0KDQgtCVCivQk9CQ0IjQmNCLINCC0KPQoNCeCivQk9CQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0IjQmNCLINCQ0J3QkAor0JPQkNCI0JjQiyDQkdCe0JbQmNCm0JAKK9CT0JDQiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CT0JDQiNCY0Isg0JHQntCT0JTQkNCdCivQk9CQ0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQk9CQ0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CT0JDQiNCY0Isg0JHQoNCQ0J3QmtCeCivQk9CQ0IjQmNCLINCR0KDQkNCd0JrQngor0JPQkNCI0JjQiyDQptCS0JjQiNCQ0J0KK9CT0JDQiNCY0Isg0KbQktCY0IjQkNCdCivQk9CQ0IjQmNCLINCU0JDQndCY0KbQkAor0JPQkNCI0JjQiyDQlNCV0IjQkNCdCivQk9CQ0IjQmNCLINCU0JXQiNCQ0J0KK9CT0JDQiNCY0Isg0JTQldCI0JDQnQor0JPQkNCI0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQk9CQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JPQkNCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0JPQkNCI0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQk9CQ0IjQmNCLINCU0KDQkNCT0J4KK9CT0JDQiNCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0JDQiNCY0Isg0JTQo9Co0JrQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JPQkNCI0JjQiyDQk9Ce0IjQmtCeCivQk9CQ0IjQmNCLINCT0J7QoNCQ0J0KK9CT0JDQiNCY0Isg0JPQntCg0JTQkNCd0JAKK9CT0JDQiNCY0Isg0JjQkdCe0InQkAor0JPQkNCI0JjQiyDQiNCV0JvQldCd0JAKK9CT0JDQiNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JPQkNCI0JjQiyDQmtCg0JjQodCi0JjQndCQCivQk9CQ0IjQmNCLINCa0KDQo9Cd0JAKK9CT0JDQiNCY0Isg0JvQkNCX0JDQoAor0JPQkNCI0JjQiyDQm9CQ0JfQngor0JPQkNCI0JjQiyDQnNCQ0JrQodCQCivQk9CQ0IjQmNCLINCc0JDQoNCY0IjQkCDQlNCgCivQk9CQ0IjQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCI0JjQiyDQnNCQ0KDQmNCd0JrQniDQlNCgCivQk9CQ0IjQmNCLINCc0JjQi9CeCivQk9CQ0IjQmNCLINCc0JjQmtCQCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J3QkAor0JPQkNCI0JjQiyDQnNCY0JvQkNCdCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9CT0JDQiNCY0Isg0JzQmNCb0JDQnQor0JPQkNCI0JjQiyDQnNCY0JvQkNCdCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9CT0JDQiNCY0Isg0JzQmNCb0JjQndCa0J4KK9CT0JDQiNCY0Isg0JzQmNCb0JjQktCe0IgKK9CT0JDQiNCY0Isg0JzQmNCb0J7QqAor0JPQkNCI0JjQiyDQnNCY0JvQntCI0JrQkAor0JPQkNCI0JjQiyDQnNCY0JvQntCh0JDQkgor0JPQkNCI0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JPQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JPQkNCI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQkNCI0JjQiyDQnNCY0KDQmtCeINCU0KAKK9CT0JDQiNCY0Isg0JzQmNCg0JrQngor0JPQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0IjQmNCLINCc0JjQotCg0JAKK9CT0JDQiNCY0Isg0JzQm9CQ0JTQldCd0JrQngor0JPQkNCI0JjQiyDQnNCb0JDQlNCV0J0KK9CT0JDQiNCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0JDQiNCY0Isg0J3QldCU0JXQidCa0J4KK9CT0JDQiNCY0Isg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCY0J3Qkwor0JPQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0IjQmNCLINCd0J7QktCQ0JoKK9CT0JDQiNCY0Isg0J7Qm9CY0JLQldCg0JAKK9CT0JDQiNCY0Isg0J/QldCb0JrQkAor0JPQkNCI0JjQiyDQn9CV0KDQodCQCivQk9CQ0IjQmNCLINCg0JDQlNCV0J3QmtCeCivQk9CQ0IjQmNCLINCg0JDQlNCc0JjQm9CQCivQk9CQ0IjQmNCLINCg0JDQlNCe0JzQmNCgCivQk9CQ0IjQmNCLINCg0JDQiNCa0JAKK9CT0JDQiNCY0Isg0KDQkNCi0JrQngor0JPQkNCI0JjQiyDQoNCQ0KLQmtCeCivQk9CQ0IjQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9CT0JDQiNCY0Isg0KDQo9CW0JjQptCQCivQk9CQ0IjQmNCLINCh0JDQktCQCivQk9CQ0IjQmNCLINCh0JvQkNCa0JAKK9CT0JDQiNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CT0JDQiNCY0Isg0KHQm9CQ0JLQmtCeCivQk9CQ0IjQmNCLINCh0JvQkNCS0JrQngor0JPQkNCI0JjQiyDQodCg0JXQi9Ca0J4KK9CT0JDQiNCY0Isg0KHQoNCV0KLQngor0JPQkNCI0JjQiyDQodCi0JDQndCY0JzQmNCgCivQk9CQ0IjQmNCLINCh0KLQkNCd0J7QiNCb0J4KK9CT0JDQiNCY0Isg0KHQotCe0IjQkNCdCivQk9CQ0IjQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9CT0JDQiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JPQkNCI0JjQiyDQotCQ0J3QkNCh0JrQngor0JPQkNCI0JjQiyDQktCV0JvQmNCc0JjQoAor0JPQkNCI0JjQiyDQktCV0KHQndCQCivQk9CQ0IjQmNCLINCS0JjQlNCQCivQk9CQ0IjQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CT0JDQiNCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQk9CQ0IjQmNCLINCX0J7QoNCQ0J0KK9CT0JDQiNCY0KbQkCDQkdCg0JDQndCa0J4KK9CT0JDQiNCY0KbQmtCYINCR0KDQkNCd0JrQngor0JPQkNCI0JjQptCa0Jgg0JTQo9Co0JDQnQor0JPQkNCI0JjQptCa0Jgg0IjQldCb0JXQndCQCivQk9CQ0IjQmNCm0JrQmCDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCm0JrQmCDQnNCQ0KDQmNCI0JAKK9CT0JDQiNCY0KbQmtCYINCc0JjQm9CQCivQk9CQ0IjQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9CT0JDQiNCY0KbQmtCYINCh0JDQktCQCivQk9CQ0IjQmNCdINCW0JjQktCa0J4KK9CT0JDQiNCY0J0g0ILQntCg0ILQlQor0JPQkNCI0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQkNCI0JjQnSDQkNCd0JrQkAor0JPQkNCI0JjQnSDQkdCg0JDQndCa0J4KK9CT0JDQiNCY0J0g0JTQoNCQ0JPQmNCm0JAKK9CT0JDQiNCY0J0g0IjQntCS0JDQnQor0JPQkNCI0JjQnSDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCdINCc0JjQpdCQ0IjQm9CeCivQk9CQ0IjQmNCdINCc0JjQm9CQ0J0KK9CT0JDQiNCY0J0g0JzQmNCb0JXQndCa0J4KK9CT0JDQiNCY0J0g0JzQmNCb0J7QktCQ0J0KK9CT0JDQiNCY0J0g0JzQmNCg0IjQkNCd0JAKK9CT0JDQiNCY0J0g0J3QkNCU0JAKK9CT0JDQiNCY0J0g0J3QldCS0JXQndCa0JAKK9CT0JDQiNCY0J0g0J/QldCi0JDQoAor0JPQkNCI0JjQnSDQodCb0JDQktCa0JAg0JTQoAor0JPQkNCI0JjQnSDQodCS0JXQotCb0JDQndCQCivQk9CQ0IjQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQiNCY0J3QkCDQlNCg0JDQk9Ce0JzQmNCgCivQk9CQ0IjQmNCd0J7QkiDQltCY0JLQkNCdCivQk9CQ0IjQmNCd0J7QkiDQltCY0JLQmtCeCivQk9CQ0IjQmNCd0J7QkiDQltCY0JLQmtCeCivQk9CQ0IjQmNCd0J7QkiDQgtCe0JrQmNCm0JAKK9CT0JDQiNCY0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0IjQmNCd0J7QkiDQkNCd0ILQldCb0JrQkAor0JPQkNCI0JjQndCe0JIg0JHQoNCQ0J3QmtCeCivQk9CQ0IjQmNCd0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0JDQiNCY0J3QntCSINCU0KDQkNCT0J7QnNCY0KAKK9CT0JDQiNCY0J3QntCSINCY0JLQkNCd0JrQkAor0JPQkNCI0JjQndCe0JIg0IjQldCb0JXQndCQCivQk9CQ0IjQmNCd0J7QkiDQiNCe0JLQkNCdCivQk9CQ0IjQmNCd0J7QkiDQiNCj0JvQmtCQCivQk9CQ0IjQmNCd0J7QkiDQmtCe0KHQotCQCivQk9CQ0IjQmNCd0J7QkiDQmtCe0KHQotCQCivQk9CQ0IjQmNCd0J7QkiDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCd0J7QkiDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCd0J7QkiDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCd0J7QkiDQidCY0InQkNCd0JAKK9CT0JDQiNCY0J3QntCSINCJ0KPQkdCY0KbQkAor0JPQkNCI0JjQndCe0JIg0InQo9CR0JjQptCQCivQk9CQ0IjQmNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CT0JDQiNCY0J3QntCSINCc0JDQoNCa0J4KK9CT0JDQiNCY0J3QntCSINCc0JDQoNCa0J4KK9CT0JDQiNCY0J3QntCSINCc0JjQm9CQ0J0KK9CT0JDQiNCY0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQk9CQ0IjQmNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JPQkNCI0JjQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQiNCY0J3QntCSINCd0JjQmtCe0JvQkAor0JPQkNCI0JjQndCe0JIg0J/QldCg0JAKK9CT0JDQiNCY0J3QntCSINCf0JXQoNCh0JjQlNCQCivQk9CQ0IjQmNCd0J7QkiDQoNCQ0JTQkAor0JPQkNCI0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9CT0JDQiNCY0J3QntCSINCg0JDQlNCY0JLQntCICivQk9CQ0IjQmNCd0J7QkiDQodCQ0JLQkAor0JPQkNCI0JjQndCe0JIg0KHQotCV0JLQkNCdCivQk9CQ0IjQmNCd0J7QkiDQodCi0JXQktCQ0J0KK9CT0JDQiNCY0J3QntCSINCi0J7QlNCe0KAKK9CT0JDQiNCY0J3QntCSINCS0JXQm9CY0JzQmNCgCivQk9CQ0IjQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JPQkNCI0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CT0JDQiNCY0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CT0JDQiNCY0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JPQkNCI0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CT0JDQiNCY0J3QntCS0JjQiyDQmNCa0J7QndCY0IjQkAor0JPQkNCI0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0JDQiNCY0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQk9CQ0IjQmNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQk9CQ0IjQmNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQk9CQ0IjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JPQkNCI0J4g0JjQqNCi0JLQkNCdCivQk9CQ0IjQntCU0Jgg0IjQntCW0JXQpAor0JPQkNCI0J7QlNCYINCc0JDQoNCY0IjQkAor0JPQkNCI0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQkNCI0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0JDQiNCe0JLQmNCLINCg0JDQlNCe0IjQlQor0JPQkNCI0KLQkCDQkNCd0JjQptCQCivQk9CQ0IjQotCQINCQ0KPQoNCV0JvQmNCI0JAKK9CT0JDQmiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JPQkNCaINCc0JjQm9CQ0J0KK9CT0JDQmiDQndCV0JLQldCd0JrQkAor0JPQkNCaINCg0JDQlNCVCivQk9CQ0Jog0KHQm9CQ0JLQmtCeCivQk9CQ0Jog0KHQndCV0JbQkNCd0JAKK9CT0JDQmiDQl9Ce0KDQmtCQCivQk9CQ0JrQmNCLINCR0J7QqNCa0J4KK9CT0JDQmtCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9CT0JDQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JPQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQk9CQ0JrQntCS0JjQiyDQl9Ce0KDQkAor0JPQkNCbINCo0JDQndCU0J7QoAor0JPQkNCbINCC0KPQm9CQCivQk9CQ0Jsg0ILQo9Cb0JAKK9CT0JDQmyDQkNCd0JrQkAor0JPQkNCbINCk0JXQoNCV0J3Qpgor0JPQkNCbINCk0JXQoNCV0J3Qpgor0JPQkNCbINCk0JXQoNCV0J3Qpgor0JPQkNCbINCT0JDQkdCe0KAKK9CT0JDQmyDQk9CY0JfQldCb0JAKK9CT0JDQmyDQiNCQ0J3QntCoCivQk9CQ0Jsg0IjQntCW0JXQpAor0JPQkNCbINCI0J7QltCV0KQKK9CT0JDQmyDQiNCe0JLQkNCdCivQk9CQ0Jsg0JrQkNCb0JzQkNCdCivQk9CQ0Jsg0JvQkNCI0J7QqAor0JPQkNCbINCb0JDQiNCe0KgKK9CT0JDQmyDQnNCQ0KDQk9CY0KIKK9CT0JDQmyDQnNCQ0KDQmNCQCivQk9CQ0Jsg0JzQmNCo0JAKK9CT0JDQmyDQnNCY0JrQm9Ce0KgKK9CT0JDQmyDQn9CQ0JLQm9CVCivQk9CQ0Jsg0J/QldCi0JDQoAor0JPQkNCbINCf0JXQotCQ0KAKK9CT0JDQmyDQodCi0JXQktCQ0J0KK9CT0JDQm9CQ0KYg0IjQntCh0JjQnwor0JPQkNCb0JDQpiDQn9CQ0JLQm9CVCivQk9CQ0JvQkNCc0JEg0JDQotCY0JvQkAor0JPQkNCb0JDQnNCR0J7QqCDQkNCd0JAKK9CT0JDQm9CQ0JzQkdCe0Kgg0JDQndCi0J7QnQor0JPQkNCb0JDQnNCR0J7QqCDQldCg0JbQldCR0JXQogor0JPQkNCb0JDQnNCR0J7QqCDQmNCc0KDQlQor0JPQkNCb0JDQnNCR0J7QqCDQiNCe0KHQmNCfCivQk9CQ0JvQkNCc0JHQntCoINCb0JDQodCb0J4KK9CT0JDQm9CQ0JzQkdCe0Kgg0JvQkNCh0JvQngor0JPQkNCb0JHQkNCnINCI0J7QltCV0KQKK9CT0JDQm9CV0KfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JPQkNCb0JXQp9CY0Isg0JTQoNCQ0JPQkNCdCivQk9CQ0JvQldCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0JvQldCn0JjQiyDQl9Ce0KDQkNCdCivQk9CQ0JvQldCn0JjQiyDQl9Ce0KDQkNCdCivQk9CQ0JvQldCo0JXQkiDQltCY0JLQntCI0JjQnQor0JPQkNCb0JXQqNCV0JIg0JTQo9CR0KDQkNCS0JrQkAor0JPQkNCb0JXQqNCV0JIg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCb0JXQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQm9CV0KLQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCb0JXQotCY0Isg0JzQmNCb0JDQnQor0JPQkNCb0JXQotCY0Isg0JLQkNCh0JAKK9CT0JDQm9CV0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQm9CV0KLQmNCLINCX0J7QoNCQCivQk9CQ0JvQldCi0JjQnSDQnNCY0JvQmNCm0JAKK9CT0JDQm9CV0KLQmNCdINCd0JjQmtCe0JvQkAor0JPQkNCb0JXQotCY0J0g0J/QkNCI0JjQptCQCivQk9CQ0JvQldCi0JjQnSDQodCY0JzQkAor0JPQkNCb0JXQotCY0J0g0KHQm9CQ0JLQmtCeCivQk9CQ0JvQldCi0JjQnS3QodCc0JjQoiDQoNCQ0JTQntCI0JrQkAor0JPQkNCb0JXQotCY0J0g0KHQotCV0JLQkNCdCivQk9CQ0JvQldCi0JjQnSDQl9Cb0JDQotCa0J4KK9CT0JDQm9Ck0Jgg0IjQntCh0JjQnwor0JPQkNCb0KTQmCDQnNCY0JvQldCd0JAKK9CT0JDQm9CT0J4g0JjQqNCi0JLQkNCdCivQk9CQ0JvQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9CT0JDQm9CY0KfQmNCLINCc0JjQm9CY0KbQkAor0JPQkNCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0JPQkNCb0JjQiyDQmNCS0JDQndCa0JAKK9CT0JDQm9CY0Isg0IjQntCS0JDQnQor0JPQkNCb0JjQiyDQiNCe0JLQkNCdCivQk9CQ0JvQmNCLINCI0J7QktCQ0J0KK9CT0JDQm9CY0Isg0JrQkNCi0JjQptCQCivQk9CQ0JvQmNCLINCa0JDQotCY0KbQkAor0JPQkNCb0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQk9CQ0JvQmNCLINCJ0KPQkdCY0KbQkAor0JPQkNCb0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JPQkNCb0JjQiyDQnNCY0JvQkNCU0JjQnQor0JPQkNCb0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCb0JjQiyDQnNCY0JvQmtCQCivQk9CQ0JvQmNCLINCc0JjQm9Ce0KgKK9CT0JDQm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9CT0JDQm9CY0Isg0JzQmNCg0JrQngor0JPQkNCb0JjQiyDQnNCY0KLQkNCgCivQk9CQ0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQk9CQ0JvQmNCLINCd0JXQlNCV0InQmtCeCivQk9CQ0JvQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCb0JjQiyDQntCb0JPQkAor0JPQkNCb0JjQiyDQn9CV0KLQkNCgCivQk9CQ0JvQmNCLINCg0J7QltCY0JrQkAor0JPQkNCb0JjQiyDQodCQ0IrQkAor0JPQkNCb0JjQiyDQodCb0JDQktCa0JAKK9CT0JDQm9CY0Isg0KHQotCV0JLQngor0JPQkNCb0JjQiyDQotCV0KDQldCX0JAKK9CT0JDQm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JPQkNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQkNCb0JjQptCa0Jgg0ILQo9Cg0JAKK9CT0JDQm9CY0Jog0JXQotCV0JvQmtCQCivQk9CQ0JvQmNCf0J7QktCY0Isg0IjQntCS0JjQptCQCivQk9CQ0JvQmtCeINCI0KPQm9CY0JAKK9CT0JDQm9CeINCC0KPQoNCQCivQk9CQ0JvQntCK0JAg0JTQldCh0JDQndCa0JAKK9CT0JDQm9Ce0IrQkCDQlNCg0JDQk9Ce0InQo9CRCivQk9CQ0JvQntCK0JAg0JzQmNCe0JTQoNCQ0JMKK9CT0JDQm9Ce0IrQkCDQnNCY0KDQmtCeCivQk9CQ0JvQntCK0JAg0KDQkNCU0JUKK9CT0JDQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9CT0JDQm9Ce0JLQmNCLINCC0KPQoNCQCivQk9CQ0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JPQkNCb0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9CT0JDQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JPQkNCb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAg0JTQoAor0JPQkNCb0J7QktCY0Isg0JjQktCY0KbQkAor0JPQkNCb0J7QktCY0Isg0IjQldCb0JjQptCQCivQk9CQ0JvQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CT0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9CT0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9CT0JDQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JPQkNCb0J7QktCY0Isg0KHQotCV0JLQngor0JPQkNCb0J7QktCY0Isg0JfQntCg0JrQkAor0JPQkNCb0KPQoSDQm9CQ0KHQm9CeCivQk9CQ0JzQkdCV0KAg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCd0I/QmCDQodCQ0JLQmtCQCivQk9CQ0J3Qk9Cb0Jgg0JDQndCQCivQk9CQ0J3QmNCLINCQ0JvQntCI0JfQmNCI0JUKK9CT0JDQndCY0Isg0JDQm9Ce0IjQl9CY0IjQlQor0JPQkNCd0JjQiyDQnNCY0KjQngor0JPQkNCd0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JPQkNCd0JjQiyDQl9CU0JXQndCa0J4KK9CT0JDQndCY0Isg0JfQntCg0JjQptCQCivQk9CQ0IrQmCDQodCQ0JzQo9CV0JsKK9CT0JDQndCi0JDQoCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JPQkNCd0KLQkNCgINCk0JjQm9CY0J8KK9CT0JDQndCi0JDQoCDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9CT0JDQoNCn0JXQkiDQlNCQ0J3QmNCm0JAKK9CT0JDQoNCn0JXQkiDQnNCY0JvQo9Ci0JjQnQor0JPQkNCg0KfQldCS0JjQiyDQn9CV0KDQngor0JPQkNCg0KfQldCS0JjQiyDQn9CV0KDQngor0JPQkNCg0JDQqNCV0JLQmNCLINCc0JjQm9Ca0JAKK9CT0JDQoNCQ0JHQkCDQkNCd0JTQoNCY0IjQkAor0JPQkNCg0JDQkdCQ0J3QlNCY0Isg0ILQntCg0ILQlQor0JPQkNCg0JDQkdCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0KDQkNCR0JDQndCU0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCg0JDQkdCQ0J3QlNCY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0KDQkNCR0JDQndCi0JjQnSDQmNCS0JDQnQor0JPQkNCg0JDQkdCQ0J3QotCY0J0g0JzQmNCb0J7QktCQ0J0KK9CT0JDQoNCQ0JHQkNCd0KLQmNCdINCh0KLQldCS0JDQnQor0JPQkNCg0JDQmCDQkdCV0JvQkAor0JPQkNCg0JDQmCDQmtCe0KDQndCV0JvQmNCI0JAKK9CT0JDQoNCQ0Igg0JHQoNCQ0J3QmNCc0JjQoAor0JPQkNCg0JDQiCDQiNCV0JvQldCd0JAKK9CT0JDQoNCQ0Igg0J7Qm9CT0JAKK9CT0JDQoNCQ0JvQldCI0JjQiyDQktCV0KDQmNCm0JAKK9CT0JDQoNCQ0J/QmNCLINCR0KDQkNCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CT0JDQoNCU0JDQqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9CT0JDQoNCU0JDQqNCV0JLQmNCLLdCh0KLQoNCY0KfQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JPQkNCg0JTQkNCo0JXQktCY0Isg0JLQldCh0JXQm9CY0J0KK9CT0JDQoNCU0JjQiyDQkNCb0JjQiNCQCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0ILQntCg0ILQlQor0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9CT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQkdCg0JDQndCY0JzQmNCgCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0KbQktCV0KLQkAor0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCc0JjQntCg0JrQkAor0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCd0JXQlNCV0InQmtCeCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JPQkNCg0JXQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQoNCV0JLQodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCQCivQk9CQ0KDQmNCLINCW0JDQoNCa0J4KK9CT0JDQoNCY0Isg0JvQkNCX0JDQoAor0JPQkNCg0JjQiyDQm9Cj0JrQkAor0JPQkNCg0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0KDQmNCLINCd0JDQlNCQCivQk9CQ0KDQmNCLINCh0KLQldCS0JDQnQor0JPQkNCg0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CT0JDQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQk9CQ0KDQntCS0J3QmNCa0J7QkiDQgtCe0KDQgtCVCivQk9CQ0KDQntCS0J3QmNCa0J7QkiDQkdCe0KDQmtCQCivQk9CQ0KDQotCd0JXQoCDQn9CV0KLQkNCgCivQk9CQ0KDQo9Cd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQk9CQ0KDQo9Cd0J7QktCY0Isg0JLQkNCh0JAKK9CT0JDQotCQ0JvQniDQk9Ce0KDQkNCdCivQk9CQ0KLQkNCb0J4g0KDQkNCi0JrQngor0JPQkNCi0JDQoNCY0Isg0JbQldCJ0JrQngor0JPQkNCi0JDQoNCY0Isg0JbQldCJ0JrQngor0JPQkNCi0JDQoNCY0Isg0JHQntCo0JrQngor0JPQkNCi0JDQoNCY0Isg0JTQoNCQ0JbQlQor0JPQkNCi0JDQoNCY0Isg0JzQkNCd0J7QiNCb0J4KK9CT0JDQotCQ0KDQmNCLINCh0JDQktCa0JAKK9CT0JDQotCQ0KDQmNCLINCh0KLQkNCd0JAKK9CT0JDQotCQ0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CT0JDQotCQ0KDQmNCLINCX0JvQkNCi0JjQkdCe0KAKK9CT0JDQotCV0KAg0IjQntCh0JjQnwor0JPQkNCj0JTQldCK0Jgg0JPQkNCR0KDQmNCI0JXQm9CQCivQk9CQ0KPQlNCV0IrQmCDQnNCQ0KLQmNCb0JQKK9CT0JDQo9CU0JXQitCYINCi0JjQktCQ0JTQkNCgCivQk9CQ0JLQkCDQkNCb0JXQmtCh0JXQiAor0JPQkNCS0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIg0JDQlNCS0J7QmtCQ0KIKK9CT0JDQktCQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JTQkNCg0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JTQoNCQ0JPQkNCdCivQk9CQ0JLQkNCd0KHQmtCYINCU0KPQqNCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0JPQkNCS0KDQmNCb0J4KK9CT0JDQktCQ0J3QodCa0Jgg0JjQktCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0IjQldCb0JXQndCQCivQk9CQ0JLQkNCd0KHQmtCYINCI0KPQlNCY0KLQkAor0JPQkNCS0JDQndCh0JrQmCDQmtCe0J3QodCi0JDQndCi0JjQnSDQlNCgCivQk9CQ0JLQkNCd0KHQmtCYINCa0J7QodCi0JAg0JTQn9CbINCY0J3Qkwor0JPQkNCS0JDQndCh0JrQmCDQmtCe0KHQotCQCivQk9CQ0JLQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9CT0JDQktCQ0J3QodCa0Jgg0JvQo9Ca0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JzQkNCg0JPQmNCi0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JzQmNCb0JjQptCQCivQk9CQ0JLQkNCd0KHQmtCYINCc0JjQm9CY0KbQkAor0JPQkNCS0JDQndCh0JrQmCDQndCQ0JTQkAor0JPQkNCS0JDQndCh0JrQmCDQndCe0JLQkNCaCivQk9CQ0JLQkNCd0KHQmtCYINCf0JDQktCb0JUKK9CT0JDQktCQ0J3QodCa0Jgg0J/QldCi0KDQkAor0JPQkNCS0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQk9CQ0JLQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JPQkNCS0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0KHQktCV0KLQntCX0JDQoAor0JPQkNCS0JDQndCh0JrQmCDQl9Ce0KDQkNCdCivQk9CQ0JLQkNCd0KHQmtCYINCX0J7QoNCQ0J0KK9CT0JDQktCQ0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0JLQkNCg0JjQiyDQk9CQ0JLQoNCY0JvQngor0JPQkNCS0JDQoNCY0Isg0IjQldCg0JXQnNCY0IjQlQor0JPQkNCS0JDQoNCY0Isg0InQo9CR0JjQptCQCivQk9CQ0JLQkNCg0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCS0JvQmNCaINCT0JXQoNCT0JXQiQor0JPQkNCS0J7QlNCYINCV0KHQotCV0KAKK9CT0JDQktCg0JDQnSDQk9Ce0IjQmtCeCivQk9CQ0JLQoNCQ0J0g0InQo9CR0J7QnNCY0KAKK9CT0JDQktCg0JDQndCn0JjQiyDQgtCj0KDQgtCY0KbQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCI0J7QktCQ0J0KK9CT0JDQktCg0JDQndCn0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0JDQktCg0JDQndCn0JjQiyDQnNCQ0KDQk9CY0KLQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JDQndCY0Isg0JPQntCI0JrQngor0JPQkNCS0KDQkNCd0JjQiyDQmNCb0JjQiNCQCivQk9CQ0JLQoNCQ0J3QmNCLINCX0JLQldCX0JTQkNCd0JAKK9CT0JDQktCg0JDQndCe0JIg0JHQntCh0JAKK9CT0JDQktCg0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCS0KDQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQkNCS0KDQkNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0JDQktCg0JjQiyDQp9CV0JTQntCc0JjQoAor0JPQkNCS0KDQmNCLINCW0JjQktCa0JAKK9CT0JDQktCg0JjQiyDQgtCe0KDQgtCVCivQk9CQ0JLQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9CQ0JLQoNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQk9CQ0JLQoNCY0Ist0JPQkNCX0JTQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCS0KDQmNCLINCY0JLQkNCdCivQk9CQ0JLQoNCY0Isg0JjQktCQ0J0KK9CT0JDQktCg0JjQiyDQiNCe0JLQkNCdCivQk9CQ0JLQoNCY0Isg0IjQntCS0J4KK9CT0JDQktCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JDQktCg0JjQiyDQnNCY0KXQkNCI0JvQngor0JPQkNCS0KDQmNCLINCc0JjQm9CQ0J0KK9CT0JDQktCg0JjQiyDQnNCY0JvQkNCdCivQk9CQ0JLQoNCY0Isg0JzQmNCb0JXQndCQCivQk9CQ0JLQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0JDQktCg0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCS0KDQmNCLINCc0JjQm9Ce0KgKK9CT0JDQktCg0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JLQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQkNCS0KDQmNCLINCf0JXQotCQ0KAKK9CT0JDQktCg0JjQiyDQoNCQ0JTQntCc0JjQoAor0JPQkNCS0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CT0JDQktCg0JjQiyDQodCV0J3QmtCQCivQk9CQ0JLQoNCY0Isg0KHQm9CQ0JLQmtCQCivQk9CQ0JLQoNCY0Isg0KHQn9CQ0KHQntCI0JUKK9CT0JDQktCg0JjQiyDQodCS0JXQotCe0JfQkNCgCivQk9CQ0JLQoNCY0Isg0JLQldCb0JjQndCa0JAKK9CT0JDQktCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQk9CQ0JLQoNCY0Isg0JfQntCg0JDQnQor0JPQkNCS0KDQmNCLINCX0J7QoNCQCivQk9CQ0JLQoNCY0JvQntCSINCW0JjQktCa0JAKK9CT0JDQktCg0JjQm9Ce0JIg0JDQndCa0JjQptCQCivQk9CQ0JLQoNCY0JvQntCSINCR0J7Qk9CU0JDQnQor0JPQkNCS0KDQmNCb0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0JPQkNCS0KDQmNCb0J7QkiDQpdCV0KDQnNCY0J3QkAor0JPQkNCS0KDQmNCb0J7QkiDQiNCj0JvQmtCQCivQk9CQ0JLQoNCY0JvQntCSINCJ0KPQkdCY0KbQkAor0JPQkNCS0KDQmNCb0J7QkiDQnNCQ0KDQotCQCivQk9CQ0JLQoNCY0JvQntCSINCc0JjQm9CY0JLQntCICivQk9CQ0JLQoNCY0JvQntCSINCc0JjQm9CY0JLQntCICivQk9CQ0JLQoNCY0JvQntCSINCc0JjQm9Ce0KDQkNCUCivQk9CQ0JLQoNCY0JvQntCSINCg0JDQlNCY0JLQntCICivQk9CQ0JLQoNCY0JvQntCSINCh0JvQkNCS0JrQngor0JPQkNCS0KDQmNCb0J7QkiDQodCc0JjQidCQCivQk9CQ0JLQoNCY0JvQntCSINCi0J7QlNCe0KAKK9CT0JDQktCg0JjQm9Ce0JIg0KPQoNCe0KgKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCW0JjQmtCY0KbQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JbQmNCS0JrQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0g0JTQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQkNCb0JXQmtCh0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCR0J7QoNCY0JLQntCICivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQkdCg0JDQndCa0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JTQo9Co0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQldCc0JjQmwor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JPQoNCe0JfQlNCQ0J0KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCI0JXQm9CY0KHQkNCS0JrQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JrQkNCi0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQmtCb0JDQo9CU0JjQiNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQkNCg0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCb0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQntCoCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQntCoCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQntCI0JUKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KLQkNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQndCY0JrQntCb0JAg0JTQoCDQn9Cg0J7QpAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQn9CQ0JLQm9CVCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQoNCQ0IjQmtCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCQ0JLQkCDQlNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCQ0JLQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0JvQkNCS0JrQniDQlNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQntCk0JjQiNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCi0JDQndCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCi0JXQktCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCi0J7QqNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQotCe0JTQntCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQktCV0KDQkCDQlNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQktCV0KDQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0KPQmtCY0KbQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JfQm9CQ0KLQkAor0JPQkNCS0KDQmNCb0J7QktCh0JrQmCDQn9CQ0JLQm9CY0J3QkAor0JPQkNCS0KDQntCS0JjQiyDQk9Ce0KDQkNCdCivQk9CQ0JLQoNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQk9CQ0JLQoNCe0JLQmNCLINCJ0KPQkdCY0JLQntCI0JUKK9CT0JDQktCg0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkCDQm9Ce0JrQkNCbCivQk9CQ0JfQkNCk0Jgg0JvQkNCh0JvQngor0JPQkNCX0JTQmNCLINCR0J7QoNCY0JLQntCICivQk9CQ0JfQldCf0J7QkiDQmNCb0JjQiNCQCivQk9CQ0JfQmNCLINCY0JLQkNCdCivQk9CQ0JfQmNCR0JDQoNCY0Isg0JjQl9CV0KLQkAor0JPQkNCX0JjQkdCQ0KDQmNCLINCI0JXQm9CV0J3QkAor0JPQkNCX0JjQkdCQ0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQk9CQ0JfQmNCR0JDQoNCY0Isg0KHQmNCc0JAKK9CT0JDQl9CY0IjQkCDQiNCe0JLQkNCdCivQk9CQ0JfQmNCS0J7QlNCQINCT0J7QiNCa0J4KK9CT0JXQp9CV0JLQodCa0Jgg0KHQoNCV0KLQmtCeCivQk9CV0JHQkNCj0JXQoCDQldCg0JLQmNCdINCU0KAKK9CT0JXQkdCV0JvQoSDQkNCd0JAKK9CT0JXQptCYINCC0KPQoNCQCivQk9CV0JTQldCb0J7QktCh0JrQmCDQlNCj0KjQkNCdCivQk9CV0JTQldCb0J7QktCh0JrQmCDQodCe0KTQmNCI0JAKK9CT0JXQk9CV0Kgg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQldCT0JXQqCDQndCQ0J3QlNCe0KAKK9CT0JXQk9CV0Kgg0KHQm9CQ0JLQmNCm0JAKK9CT0JXQk9CV0J3QkdCQ0KPQldCgINCU0KDQkNCT0KPQotCY0J0KK9CT0JXQk9CV0J3QkdCQ0KPQldCgINCY0JvQntCd0JrQkAor0JPQldCT0JXQndCR0JDQo9CV0KAg0JfQntCg0JAKK9CT0JXQk9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JXQk9CY0Isg0J3QldCc0JDQitCQCivQk9CV0JvQldCYINCI0JXQndCVCivQk9CV0JvQldCgINCo0JDQndCU0J7QoAor0JPQldCb0JXQoCDQgtCj0JvQkAor0JPQldCb0JXQoCDQkNCU0JDQnAor0JPQldCb0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCb0JXQoCDQkdCV0JvQkAor0JPQldCb0JXQoCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JPQldCb0JXQoCDQiNCe0JLQkNCdCivQk9CV0JvQldCgINCb0JDQodCb0J4KK9CT0JXQm9CV0KAg0JvQkNCh0JvQngor0JPQldCb0JXQoCDQnNCQ0KDQmNCI0JAKK9CT0JXQm9CV0KAg0JzQkNCg0KLQkAor0JPQldCb0JXQoCDQntCb0JPQkAor0JPQldCb0JXQoC3Qn9CV0KLQmtCe0JLQmNCLINCT0JjQl9CV0JvQkAor0JPQldCb0JXQoCDQotCY0JHQntCgCivQk9CV0InQmNCLINCc0JDQotCeCivQk9CV0JzQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCd0KYg0KTQldCg0JXQndCmCivQk9CV0J3QpiDQm9CQ0IjQntCoCivQk9CV0J3QptCV0Jsg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQldCd0KbQldCbINCc0JDQoNCY0IjQkNCd0JAKK9CT0JXQndCm0JXQmyDQktCQ0JvQldCg0JjQiNCQCivQk9CV0J3QptCYINCI0J7QodCY0J8KK9CT0JXQndCV0JLQkNCI0J0g0ILQo9Cg0JAKK9CT0JXQndCV0JLQkNCI0J0g0IjQntCS0JDQnQor0JPQldCd0JXQktCQ0IjQnSDQmtCQ0KDQm9CeCivQk9CV0J3QldCS0JDQiNCdINCb0JDQiNCe0KgKK9CT0JXQndCV0JLQkNCI0J0g0JvQkNCI0J7QqAor0JPQldCd0J7QktCQINCc0JDQiNCU0JAg0JTQmNCf0Jsg0JjQndCTCivQk9CV0J3QntCS0JAg0JzQmNCb0JjQptCQINCU0JjQn9CbINCY0J3Qkwor0JPQldCe0KDQk9CY0JXQkiDQm9CV0J/QntCh0JDQktCQCivQk9CV0J7QoNCT0JjQldCS0KHQmtCYINCf0JXQoNCeCivQk9CV0J7QoNCT0JjQldCS0KHQmtCYINCS0JDQodCY0JsKK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0JbQmNCS0JrQngor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQmNCS0JDQndCQCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQm9CQ0JfQkNCgCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCb0JDQl9CQCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCd0JXQodCi0J7QoAor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQk9CV0KDQkCDQmNCR0J7QidCQCivQk9CV0KDQkNCaINCV0JzQmNCb0JjQiNCQCivQk9CV0KDQkNCh0JjQnNCe0JLQodCa0Jgg0JfQm9CQ0KLQlQor0JPQldCg0JDQotCe0JLQmNCLINCX0J7QoNCQ0J0KK9CT0JXQoNCU0JjQiNCQ0J0g0KfQldCU0J7QnNCY0KAKK9CT0JXQoNCVINCb0JDQiNCe0KgKK9CT0JXQoNCVINCX0J7Qm9Ci0JDQnQor0JPQldCg0JXQptCYINCI0KPQoNCQ0IgKK9CT0JXQoNCV0JMg0JbQo9CW0JDQndCQCivQk9CV0KDQldCTINCQ0J3QlNCg0JDQqAor0JPQldCg0JXQkyDQkdCb0JDQndCa0JAKK9CT0JXQoNCV0JMg0JXQo9CT0JXQnQor0JPQldCg0JXQkyDQotCY0JHQntCgCivQk9CV0KDQk9CV0Kcg0KHQnNCY0InQkAor0JPQldCg0JPQldCJINCo0JjQnNCe0J0KK9CT0JXQoNCYINCi0JXQoNCV0JfQkAor0JPQldCg0JjQiyDQltCQ0KDQmtCeCivQk9CV0KDQmNCLINCC0J7QoNCC0JUKK9CT0JXQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JXQoNCY0Isg0JDQndCi0J7QnQor0JPQldCg0JjQiyDQptCS0JXQotCQCivQk9CV0KDQmNCLINCT0JjQndCQCivQk9CV0KDQmNCLINCT0J7QoNCU0JDQndCQCivQk9CV0KDQmNCLINCY0JLQkNCdCivQk9CV0KDQmNCLINCY0JLQkNCdCivQk9CV0KDQmNCLINCa0J7QodCi0JAKK9CT0JXQoNCY0Isg0JrQntCS0JjQptCQCivQk9CV0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQk9CV0KDQmNCLINCc0JDQoNCY0IjQkAor0JPQldCg0JjQiyDQnNCY0JvQkNCdCivQk9CV0KDQmNCLINCc0JjQm9Ce0KgKK9CT0JXQoNCY0Isg0JzQmNCb0J7QqAor0JPQldCg0JjQiyDQnNCY0KDQmtCeCivQk9CV0KDQmNCLINCd0JXQlNCV0InQmtCeCivQk9CV0KDQmNCLINCd0JXQodCi0J7QoAor0JPQldCg0JjQiyDQntCR0KDQkNCUCivQk9CV0KDQmNCLINCf0JXQotCQ0KAKK9CT0JXQoNCY0Isg0KDQkNCU0JjQndCa0JAKK9CT0JXQoNCY0Isg0KHQotCV0JLQkNCdCivQk9CV0KDQmNClINCQ0J3QlNCg0JjQiNCQCivQk9CV0KDQmyDQpNCV0KDQlNCeCivQk9CV0KDQmyDQnNCQ0KDQmNCI0JAKK9CT0JXQoNCb0JAg0JTQoNCQ0JPQkNCd0JAKK9CT0JXQoNCb0JAg0JvQkNCU0JjQodCb0JDQkgor0JPQldCg0JvQkCDQotCV0J7QlNCe0KAKK9CT0JXQoNCc0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CT0JXQoNCc0JDQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQk9CV0KDQndCQ0Kcg0ILQntCg0ILQlQor0JPQldCg0J3QkNCnINCk0KDQkNCK0JAKK9CT0JXQoNCd0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQk9CV0KDQniDQgtCV0KDQggor0JPQldCg0J4g0JTQo9Co0JDQndCa0JAKK9CT0JXQoNCeINCI0JDQndCe0KgKK9CT0JXQoNCeINCI0J7QltCV0KQKK9CT0JXQoNCeINCa0JDQoNCb0J4KK9CT0JXQoNCeINCb0JDQiNCe0KgKK9CT0JXQoNCeINCc0JDQoNCT0JjQotCQCivQk9CV0KDQntCb0JQg0IjQkNCa0J7QkQor0JPQldCg0J7Qm9CUINCb0JDQodCb0J4KK9CT0JXQoNCe0JIg0JDQndCT0JXQmyDQlNCY0J/QmyDQmNCd0JMKK9CT0JXQoNCi0J3QldCgINCQ0J3QkAor0JPQldCg0KLQndCV0KAg0KTQoNCQ0IrQkAor0JPQldCg0KLQndCV0KAg0IjQntCW0JXQpAor0JPQldCg0KLQndCV0KAg0KDQldCW0JUKK9CT0JXQotCV0Jsg0KXQldCb0JzQo9CiCivQk9CV0Jcg0IjQkNCd0J7QqAor0JPQldCXINCI0JXQm9CY0KbQkAor0JPQldCXINCa0JDQotCY0KbQkAor0JPQldCXINCi0JjQkdCe0KAKK9CT0JXQlyDQktCV0KDQntCd0JjQmtCQCivQk9Cl0JDQndCU0J7Qo9CgLdCo0JDQmyDQiNCj0JvQmNCI0JDQndCQCivQk9CY0JDQlNCg0J7QqNCY0Isg0JzQkNCg0JjQiNCQCivQk9CY0JHQkNCd0JjQptCQINCT0JXQntCg0JPQmNCd0JAKK9CT0JjQk9CQINCh0KDQldCi0JXQnQor0JPQmNCT0JjQiyDQnNCY0J7QnNCY0KAKK9CT0JjQk9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0JjQk9CY0Isg0JfQntCg0JDQnQor0JPQmNCa0JjQiyDQkdCe0JbQmNCU0JDQoAor0JPQmNCa0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0JjQmtCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JPQmNCa0J7QktCh0JrQmCDQnNCY0J3Qngor0JPQmNCb0JXQl9CQ0J0g0JrQntCg0JjQntCb0JDQnQor0JPQmNCb0JMg0JjQoNCV0J3QkAor0JPQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQk9CY0JzQkdCe0Kgg0JTQntCR0KDQmNCS0J7QiNCVCivQk9CY0J3QptCj0Ikg0KHQldCg0JPQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQk9CY0J7QnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQmNCe0J0g0JDQndCQINCU0KAKK9CT0JjQntCdINCY0KjQotCS0JDQnQor0JPQmNCe0J0g0JrQkNCb0JzQkNCdCivQk9CY0J7QnSDQndCQ0J3QlNCe0KAKK9CT0JjQoNCY0Isg0JzQkNCi0JjQiNCQCivQk9CY0KDQmNCmINCR0JXQm9CQCivQk9CY0KDQmNCmINCV0JvQldCd0JAKK9CT0JjQoNCY0KYg0JjQnNCg0JUKK9CT0JjQoNCY0KYg0IjQntCW0JXQpAor0JPQmNCg0JjQpiDQm9CQ0KHQm9CeCivQk9CY0KDQmNCmLdCc0J7QmtCj0Kgg0JrQm9CQ0KDQkAor0JPQmNCg0JjQl9CUINCb0JDQodCb0J4g0J3QntCS0JjQndCQ0KAKK9CT0JjQoNCd0KIg0KDQntCX0JDQm9CY0IjQkAor0JPQmNChINCl0JXQlNCS0JjQk9CQCivQk9CI0JDQpNCeINCc0JDQotCY0IjQkAor0JPQiNCV0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JPQm9CQ0JTQmNCoINCh0KLQldCS0JDQnQor0JPQm9CQ0JTQmNCLINCc0JjQm9CQ0J0KK9CT0JvQkNCU0JjQiyDQoNCQ0IjQmtCeCivQk9Cb0JDQlNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JPQm9CQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Cb0JDQlNCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQk9Cb0JDQiNClINCT0JXQntCg0JMKK9CT0JvQkNCc0J7Qp9CQ0J3QmNCdINCd0JXQktCV0J3QmtCQCivQk9Cb0JDQnNCe0KfQkNCd0JjQnSDQndCV0JLQldCd0JrQkAor0JPQm9CQ0JzQntCn0JDQndCY0J0g0J/QldCg0J4KK9CT0JvQkNCc0J7Qp9CQ0J3QmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CT0JvQkNCc0J7Qp9CY0Isg0JTQkNCd0JUKK9CT0JvQkNCc0J7Qp9CY0Isg0KHQndCV0JbQkNCd0JAKK9CT0JvQkNCc0J7Qp9Cb0JjQiNCQINCg0KPQltCY0KbQkAor0JPQm9CQ0J3QpiDQkNCd0KLQo9CdCivQk9Cb0JDQodCe0JLQkNCmINCc0JDQoNCi0JAKK9CT0JvQkNCS0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cb0JDQktCQ0Kgg0JbQkNCg0JrQngor0JPQm9CQ0JLQkNCoINCI0J7QktCeCivQk9Cb0JDQktCQ0Kgg0JzQmNCb0JDQnQor0JPQm9CQ0JLQkNCoLdCi0KDQkdCY0Isg0JHQntCo0JrQngor0JPQm9CQ0JLQkNCo0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CT0JvQkNCS0JDQqNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQk9Cb0JDQktCQ0KjQmtCYINCW0JjQktCe0IjQmNCdCivQk9Cb0JDQktCQ0KjQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cb0JDQktCQ0KjQmtCYINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQk9Cb0JDQktCQ0KjQmtCYINCQ0J3QgtCV0JvQmtCQCivQk9Cb0JDQktCQ0KjQmtCYINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0JvQkNCS0JDQqNCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cb0JDQktCQ0KjQmtCYINCR0KDQkNCd0JrQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JPQm9CQ0JLQkNCo0JrQmCDQlNCg0JDQk9CQ0J0KK9CT0JvQkNCS0JDQqNCa0Jgg0JTQo9Co0JDQnQor0JPQm9CQ0JLQkNCo0JrQmCDQk9Cb0JjQqNCQCivQk9Cb0JDQktCQ0KjQmtCYINCc0JjQm9Cj0KLQmNCdCivQk9Cb0JDQktCQ0KjQmtCYINCd0JXQnNCQ0IrQkAor0JPQm9CQ0JLQkNCo0JrQmCDQodCY0JzQkAor0JPQm9CQ0JLQkNCo0JrQmCDQodCY0J3QmNCo0JAKK9CT0JvQkNCS0JDQqNCa0Jgg0KHQnNCY0InQmtCQCivQk9Cb0JDQktCQ0J0g0IjQntCS0JDQnQor0JPQm9CQ0JLQkNCd0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JPQm9CQ0JLQkNCd0JjQiyDQiNCj0JvQmtCQCivQk9Cb0JDQktCQ0J3QmNCLINCc0JjQoNCa0J4KK9CT0JvQkNCS0JDQoNCU0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JvQkNCS0JDQoNCU0JDQndCe0JIg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQk9Cb0JDQktCQ0KDQlNCQ0J3QntCSINCc0JDQoNCY0IjQkAor0JPQm9CQ0JLQkNCg0JTQkNCd0J7QkiDQodCe0JrQngor0JPQm9CQ0JLQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cb0JDQktCQ0KLQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Cb0JDQktCY0KfQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CT0JvQkNCS0JjQiyDQkdCe0KjQmtCeCivQk9Cb0JDQktCY0Isg0JPQkNCS0KDQngor0JPQm9CQ0JLQmNCLINCI0JXQm9Ca0JAKK9CT0JvQkNCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQk9Cb0JDQktCY0J3QmNCLINCI0J7QktCeCivQk9Cb0JDQktCY0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cb0JDQktCe0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQk9Cb0JXQgtCQINCc0JjQm9CV0J3QmtCeCivQk9Cb0JXQlNCY0Isg0JzQmNCb0JjQptCQCivQk9Cb0JjQqNCY0Isg0ILQntCg0ILQngor0JPQm9CY0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CT0JvQmNCo0JjQiyDQkdCg0JDQndCa0J4KK9CT0JvQmNCo0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQk9Cb0JjQqNCY0Isg0JjQm9CY0IjQkAor0JPQm9CY0KjQmNCLINCY0JLQkNCdCivQk9Cb0JjQqNCY0Isg0IjQldCb0JjQptCQCivQk9Cb0JjQqNCY0Isg0IjQntCS0JDQnQor0JPQm9CY0KjQmNCLLdCa0JXQodCV0JMg0JLQkNCb0JXQoNCY0IjQkAor0JPQm9CY0KjQmNCLINCJ0KPQkdCY0KjQkAor0JPQm9CY0KjQmNCLINCc0JjQm9CV0JLQkAor0JPQm9CY0KjQmNCLINCd0JXQndCQ0JQKK9CT0JvQmNCo0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JPQm9CY0KjQmNCLINCg0JDQlNCe0JzQmNCgCivQk9Cb0JjQqNCY0Isg0KHQmNCc0J4KK9CT0JvQmNCo0JjQiyDQodCg0JXQotCQCivQk9Cb0JjQqNCY0Isg0JLQldCh0J3QkAor0JPQm9CY0KjQmNCLINCX0J7QoNCQ0J0KK9CT0JvQmNCo0JjQnSDQgtCe0KDQgtCVCivQk9Cb0JjQqNCY0J0g0JHQoNCQ0J3QmtCQCivQk9Cb0JjQqNCY0J0g0J3QldCd0JDQlAor0JPQm9CY0KjQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JvQmNCR0JjQiyDQnNCY0JvQkNCdCivQk9Cb0JjQkdCe0KLQkCDQktCb0JDQlNCeCivQk9Cb0JjQk9CY0Isg0JbQldCJ0JrQkAor0JPQm9CY0JPQmNCLINCc0JjQoNCQCivQk9Cb0JjQk9CY0Isg0J3QldCU0JXQidCa0J4KK9CT0JvQmNCT0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQk9Cb0JjQk9Ce0KDQldCS0JjQiyDQlNCj0KjQmtCeCivQk9Cb0JjQk9Ce0KDQldCS0JjQiyDQotCe0JzQngor0JPQm9CY0JPQntCg0JjQiyDQltCV0InQmtCeCivQk9Cb0JjQk9Ce0KDQmNCLINCW0JjQktCe0IjQmNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCW0JjQktCe0KDQkNCUCivQk9Cb0JjQk9Ce0KDQmNCLINCQ0J3QgtCV0JvQmtCQCivQk9Cb0JjQk9Ce0KDQmNCLINCm0JLQldCi0JDQndCa0JAKK9CT0JvQmNCT0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCU0KDQkNCT0JDQnQor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9CY0KjQkAor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9CY0KbQkAor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9CY0IrQkAor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQk9Cb0JjQk9Ce0KDQmNCLINCI0JXQm9CV0J3QkAor0JPQm9CY0JPQntCg0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0JvQmNCT0J7QoNCY0Isg0InQo9CR0J7QnNCY0KAKK9CT0JvQmNCT0J7QoNCY0Isg0JzQmNCb0JDQnQor0JPQm9CY0JPQntCg0JjQiyDQnNCY0JvQkNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cb0JjQk9Ce0KDQmNCLINCc0JvQkNCU0JXQnQor0JPQm9CY0JPQntCg0JjQiyDQndCY0JrQntCb0JAKK9CT0JvQmNCT0J7QoNCY0Isg0KDQkNCU0JjQqNCQCivQk9Cb0JjQk9Ce0KDQmNCLINCh0KLQkNCd0J7QiNCVCivQk9Cb0JjQk9Ce0KDQmNCLINCh0KLQldCS0JDQnQor0JPQm9CY0JPQntCg0JjQiyDQodCi0JXQktCQ0J0KK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQk9Cb0JjQk9Ce0KDQmNCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQmtCg0KHQotCQCivQk9Cb0JjQk9Ce0KDQmNCI0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCf0JXQotCg0JAKK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CT0JvQmNCT0J7QoNCY0J0g0ILQo9Cg0ILQmNCd0JrQkAor0JPQm9CY0JPQntCg0JjQnSDQkdCe0IjQkNCd0JAKK9CT0JvQmNCT0J7QoNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JPQm9CY0JPQntCg0JjQnSDQodCb0JDQktCY0KbQkAor0JPQm9CY0JPQntCg0JjQnSDQodCi0JXQktCQ0J0KK9CT0JvQmNCT0J7QoNCY0J0g0KLQntCc0JjQodCb0JDQkgor0JPQm9CY0JPQntCg0JjQnSDQl9Ce0KDQkNCdCivQk9Cb0JjQk9Ce0KDQmNCdINCX0J7QoNCa0JAKK9CT0JvQmNCT0J7QoNCe0JIg0JTQldCh0JjQnNCY0KAKK9CT0JvQmNCT0J7QoNCe0JIg0IjQntCS0JDQnQor0JPQm9CY0JPQntCg0J7QkiDQm9CV0JrQkAor0JPQm9CY0JPQntCg0J7QkiDQidCj0JHQntCc0JjQoAor0JPQm9CY0JPQntCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQk9Cb0JjQk9Ce0KDQntCS0KHQmtCYINCi0KDQkNCI0JrQngor0JPQm9CY0J3QotCY0Isg0JzQmNCb0JUKK9CT0JvQmNCd0KLQmNCLINCc0JjQntCU0KDQkNCTCivQk9Cb0JjQndCi0JjQiyDQndCY0JrQntCb0JAKK9CT0JvQmNCd0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CT0JvQmNCd0KLQmNCLINCh0JDQktCa0JAKK9CT0JvQmNCd0KLQmNCLINCS0JXQodCV0JvQmtCQCivQk9Cb0J7QltCQ0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQk9Cb0J7QltCQ0J3QodCa0Jgg0J/QldCi0JDQoAor0JPQm9Ce0JbQkNCd0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9CT0JvQntCT0J7QitCQ0KYg0JLQmNCi0J7QnNCY0KAKK9CT0JvQntCT0J7QktCn0JDQnSDQnNCY0JvQntCoINCU0JjQn9CbINCY0J3Qkwor0JPQm9Ce0JPQntCS0JDQpiDQiNCV0JLQoNCV0JwKK9CT0JvQntCT0J7QktCQ0KYg0JrQntCg0J3QldCb0JjQiNCQCivQk9Cb0J7Qk9Ce0JLQkNCmINCc0JjQoNCa0J4KK9CT0JvQntCT0J7QktCQ0KYg0JzQntCc0KfQmNCb0J4KK9CT0JvQo9Co0JDQpiDQkdCe0JbQmNCU0JDQoAor0JPQm9Cj0KjQkNCmINCU0KPQqNCQ0J0KK9CT0JvQo9Co0JDQpiDQnNCY0KXQkNCI0JvQngor0JPQm9Cj0KjQkNCmINCc0JjQm9CQ0J0KK9CT0JvQo9Co0JDQpiDQnNCY0JvQntCoCivQk9Cb0KPQqNCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CT0JvQo9Co0JDQpiDQn9CV0KLQkNCgCivQk9Cb0KPQqNCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cb0KPQqNCY0KbQkCDQidCj0JHQntCc0JjQoAor0JPQm9Cj0KjQmNCm0JAg0JzQmNCb0JDQnQor0JPQm9Cj0KjQmNCm0JAg0JzQmNCb0JDQnQor0JPQm9Cj0KjQmNCm0JAg0JzQmNCb0JUKK9CT0JvQo9Co0JjQptCQINCd0JXQndCQ0JQKK9CT0JvQo9Co0JjQptCQINCf0JXQotCQ0KAKK9CT0JvQo9Co0JjQptCQINCh0JvQkNCC0JDQndCQCivQk9Cb0KPQqNCY0KbQkCDQodCb0JDQktCa0JAKK9CT0JvQo9Co0JjQptCQINCX0JTQoNCQ0JLQmtCeCivQk9Cb0KPQpdCQ0JjQiyDQkNCd0ILQldCb0JrQngor0JPQm9Cj0KXQkNCI0JjQiyDQkdCe0JbQngor0JPQm9Cj0KXQkNCaINCa0JDQoNCb0J4KK9CT0JvQo9Cl0J7QktCY0Isg0JzQmNCb0J7QqAor0JPQm9Cj0KXQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JPQm9Cj0KXQntCS0JjQiyDQktCV0InQmtCeCivQk9Cb0KPQnNCQ0KYg0JTQkNCd0JUKK9CT0JvQo9Cc0JDQpiDQlNCQ0J3QmNCb0J4KK9CT0JvQo9Cc0JDQpiDQlNCQ0J3QmNCb0J4KK9CT0JvQo9Cc0JDQpiDQlNCg0JDQk9CQ0J0KK9CT0JvQo9Cc0JDQpiDQlNCj0KjQkNCdCivQk9Cb0KPQnNCQ0KYg0JPQkNCS0KDQkAor0JPQm9Cj0JzQkNCmINCI0JXQm9CV0J3QkAor0JPQm9Cj0JzQkNCmINCb0JDQl9CeCivQk9Cb0KPQnNCQ0KYg0InQo9CR0J4KK9CT0JvQo9Cc0JDQpiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CT0JvQo9Cc0JDQpiDQnNCY0JvQkNCdCivQk9Cb0KPQnNCQ0KYg0JzQmNCb0JUKK9CT0JvQo9Cc0JDQpiDQnNCY0J7QlNCg0JDQkyDQlNCgCivQk9Cb0KPQnNCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JPQm9Cj0JzQkNCmINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0JPQm9Cj0JzQmNCn0JjQiyDQnNCQ0J3QlNCQCivQk9Cb0KPQktCQ0JjQiyDQgtCe0KDQgtCVCivQk9Cb0KPQktCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JPQm9Cj0JLQkNCI0JjQiyDQiNCe0JLQkNCdCivQk9Cb0KPQktCQ0JrQntCSINCc0JjQm9CQ0JTQmNCd0JrQkAor0JPQm9Cj0JLQkNCa0J7QkiDQn9CQ0JLQm9CVCivQk9Cb0KPQktCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQk9Cb0KPQktCK0JAg0KHQotCV0JLQkNCdCivQk9Cc0JjQl9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cc0JjQl9CY0Isg0J3QldCT0J7QktCQ0J0KK9CT0JzQmNCX0JjQiyDQktCb0JDQlNCQCivQk9Cd0JjQnyDQiNCe0JDQmtCY0JwKK9CT0J3QmNCfINCS0JXQm9CY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JPQndCY0J8g0JLQldCg0JAKK9CT0J3QmNCfINCS0JvQkNCU0JjQnNCY0KAKK9CT0IrQkNCi0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQk9CK0JXQpyDQodCS0JXQnQor0JPQntCn0JDQndCY0J0g0KDQkNCU0JUKK9CT0J7Qp9CY0Isg0JDQndCC0JAKK9CT0J7QqNCY0Isg0IjQldCS0KDQldCcCivQk9Ce0KjQmNCLINCJ0JjQidCQCivQk9Ce0KjQmNCLINCf0JDQktCb0JUKK9CT0J7QqNCY0Isg0J/QkNCS0JvQlQor0JPQntCo0JjQiyDQn9CQ0JLQm9CVCivQk9Ce0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CT0J7QqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQntCo0IrQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CT0J7QgtCV0JLQkNCmINCR0J7QodCY0InQmtCQCivQk9Ce0JHQldCmINCa0JDQotCY0KbQkAor0JPQntCR0JXQpiDQnNCY0JvQkNCdCivQk9Ce0JHQldCJ0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQntCR0JXQidCY0Isg0KHQotCg0JDQpdCY0IrQkAor0JPQntCR0JXQidCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQk9Ce0JHQldCJ0JjQiyDQktCj0JrQkNCU0JjQnQor0JPQntCR0JXQidCY0Isg0JLQo9CaCivQk9Ce0JHQntCgINCQ0J3QkAor0JPQntCR0J7QoCDQm9CQ0JTQmNCh0JvQkNCSCivQk9Ce0JHQntCgINCX0J7Qm9Ci0JDQnQor0JPQntCR0J7QoCDQl9Ce0JvQotCQ0J0KK9CT0J7QptCY0Isg0JHQntCT0J7QodCQ0JIKK9CT0J7QptCY0Isg0IjQldCS0KDQntCh0JjQnNCQCivQk9Ce0KbQmNCLINCS0JjQlNCe0IjQmtCeCivQk9Ce0JTQkCDQntCb0JjQktCY0IjQkAor0JPQntCU0JDQoCDQmtCQ0KLQkNCg0JjQndCQCivQk9Ce0JTQmNCLINCc0JDQoNCY0IjQkAor0JPQntCU0JjQiyDQl9CS0J7QndCa0J4KK9CT0J7QlNCY0Isg0JfQktCe0J3QmtCeCivQk9Ce0JTQmNCd0JAg0JTQkNCg0JrQngor0JPQntCU0JjQndCQINCc0JjQm9Ca0J4KK9CT0J7QlNCY0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JPQntCU0J7QqNCV0JIg0JrQoNCh0KLQkAor0JPQntCU0J7QoCDQqNCQ0J3QlNCe0KAKK9CT0J7QlNCe0KAg0IjQkNCd0J7QqAor0JPQntCU0J7QoCDQiNCe0KHQmNCfCivQk9Ce0JTQo9Cd0KYg0JTQo9Co0JDQnQor0JPQntCT0JjQiyDQlNCe0JHQoNCY0JvQngor0JPQntCT0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQk9Ce0JPQmNCLINCc0JDQoNCQCivQk9Ce0JPQmNCLINCf0JDQktCb0JUKK9CT0J7Qk9CY0Isg0KHQm9CQ0JLQmtCeCivQk9Ce0JPQmNCLINCS0JXQm9CY0J3QmtCQCivQk9Ce0JPQntCb0JDQmiDQnNCQ0KDQk9CY0KLQkAor0JPQntCT0J7QidCV0JIg0JzQmNCl0JDQiNCb0J4KK9CT0J7Qk9Ce0InQldCSINCj0InQkNCd0JAKK9CT0J7Qk9Ce0InQldCSINCS0JDQodCY0JvQmNCI0JUKK9CT0J7Qk9Ce0JIg0JzQmNCb0JDQnQor0JPQntCI0JDQnSDQpNCV0KDQldCd0KYKK9CT0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQk9Ce0IjQmNCLINCT0J7QiNCa0J4KK9CT0J7QiNCY0Isg0JzQmNCb0JXQndCQCivQk9Ce0IjQmNCLINCc0JjQm9CVCivQk9Ce0IjQmtCe0JIg0JbQmNCS0JrQngor0JPQntCI0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9CT0J7QiNCa0J7QkiDQnNCY0JvQldCd0JAKK9CT0J7QiNCa0J7QkiDQoNCQ0JTQntCc0JjQoAor0JPQntCI0JrQntCSINCS0JDQodCY0JvQmNCI0JUKK9CT0J7QiNCa0J7QktCY0Isg0JTQntCd0JrQkAor0JPQntCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0JPQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Ce0IjQmtCe0JLQmNCLINCT0JXQntCg0JPQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQk9Ce0IjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9CT0J7QiNCa0J7QktCY0Isg0IjQldCb0JAKK9CT0J7QiNCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQk9Ce0IjQmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQk9Ce0IjQmtCe0JLQmNCLINCc0JjQotCQCivQk9Ce0IjQmtCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQk9Ce0IjQmtCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQk9Ce0IjQmtCe0JLQmNCLINCf0JDQktCb0JUKK9CT0J7QiNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9CT0J7QiNCa0J7QktCY0Isg0KDQkNCU0J7QidCj0JEKK9CT0J7QiNCa0J7QktCY0Isg0KHQkNCS0J4KK9CT0J7QiNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQntCI0J3QmNCLINCU0JDQktCe0KAKK9CT0J7QiNCe0JLQmNCLINCS0KPQmtCe0KHQkNCSCivQk9Ce0JrQm9CV0KAg0JjQm9Ce0J3QkAor0JPQntCb0JTQnNCQ0J0g0JDQndCa0JjQptCQCivQk9Ce0JvQlNCc0JDQnS3QotCe0JzQkNCo0JXQktCY0Isg0JXQktCQCivQk9Ce0JvQldCoINCg0KPQltCQCivQk9Ce0JvQldCd0JjQiyDQodCb0JDQktCa0J4KK9CT0J7Qm9CV0IrQkCDQkdCg0JDQndCa0J4KK9CT0J7Qm9CV0IrQkCDQmNCg0JXQndCQCivQk9Ce0JvQldCK0JAg0JzQmNCg0J7QodCb0JDQktCQCivQk9Ce0JvQldCK0JAg0JzQmNCg0J7QodCb0JDQktCQCivQk9Ce0JvQldCS0JAg0J3QkNCU0JAKK9CT0J7Qm9CY0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQntCb0JjQiyDQltCY0JLQkNCdCivQk9Ce0JvQmNCLINCC0J7QoNCC0JUKK9CT0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0J7Qm9CY0Isg0JDQndCY0KbQkAor0JPQntCb0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CT0J7Qm9CY0Isg0KTQkNCY0JQKK9CT0J7Qm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CT0J7Qm9CY0Isg0JzQkNCg0JrQngor0JPQntCb0JjQiyDQodCb0JDQktCa0JAKK9CT0J7Qm9CY0Isg0KHQotCQ0J3QmtCQCivQk9Ce0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CT0J7Qm9CY0Isg0JLQntCI0JjQnQor0JPQntCb0JjQiyDQktCe0IjQmtCeCivQk9Ce0JvQmNCI0JDQnSDQkNCd0JAKK9CT0J7Qm9CY0IjQkNCd0JjQnSDQlNCj0KjQkNCd0JrQkAor0JPQntCb0JjQiNCQ0J3QmNCdINCV0KDQltCV0JHQldCiCivQk9Ce0JvQmNCaINCe0JvQk9CQCivQk9Ce0JvQmNCaINCh0JvQntCR0J7QlNCQ0J0KK9CT0J7QidCV0JLQkNCn0JrQmCDQlNCg0JDQk9CY0KbQkAor0JPQntCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0J7Qm9CeINCU0KDQkNCT0J7QodCb0JDQkgor0JPQntCb0J7Qp9Ce0KDQkdCY0J0g0KHQm9CQ0JLQo9CICivQk9Ce0JvQntCn0J7QoNCU0JjQnSDQlNCg0JDQk9CeCivQk9Ce0JvQntCo0JjQnS3QlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0InQmNCJ0JDQndCQCivQk9Ce0JvQntCo0JjQnSDQodCi0JXQktCY0KbQkAor0JPQntCb0J7QkdCe0KfQkNCd0JjQnSDQnNCY0JvQntCh0JDQkgor0JPQntCb0J7QnNCV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Ce0JvQntCd0JjQiyDQl9CQ0JPQntCg0JrQkAor0JPQntCb0J7Qo9ClINCY0JLQkNCdCivQk9Ce0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQk9Ce0JvQo9Co0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0J7Qm9Cj0KjQmNCdINCU0KDQkNCT0JDQnQor0JPQntCb0KPQqNCY0J0g0InQo9CR0JjQptCQCivQk9Ce0JvQo9Co0JjQnSDQidCj0JHQntCc0JjQoAor0JPQntCb0KPQqNCY0J0t0JzQmNCL0JjQiyDQnNCY0JvQldCd0JrQngor0JPQntCb0KPQqNCY0J0g0JzQmNCe0JTQoNCQ0JMKK9CT0J7Qm9Cj0KjQmNCdINCd0JDQlNCQCivQk9Ce0JvQo9Co0JjQnSDQndCY0JrQntCb0JAKK9CT0J7Qm9Cj0JHQmNCn0JjQiyDQktCV0KDQkAor0JPQntCb0KPQkdCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JPQntCb0KPQkdCI0JDQotCd0JjQmtCe0JLQkCDQndCY0J3QkAor0JPQntCb0KPQkdCe0JIg0J3QkNCa0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JPQntCb0KPQkdCe0JLQmNCLINCC0J7QoNCC0JUKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQntCb0KPQkdCe0JLQmNCLINCQ0KDQodCV0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkdCe0KjQmtCeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JHQntCT0JTQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JPQntCb0KPQkdCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JTQoNCQ0JPQkAor0JPQntCb0KPQkdCe0JLQmNCLINCT0J7Qm9Cj0JEKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQk9Ce0JvQo9CRCivQk9Ce0JvQo9CR0J7QktCY0Isg0JjQm9CY0IjQkAor0JPQntCb0KPQkdCe0JLQmNCLINCY0JLQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0IjQldCg0JXQnNCY0IjQlQor0JPQntCb0KPQkdCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JPQntCb0KPQkdCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JPQntCb0KPQkdCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JvQo9Ca0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCQ0J3QntCI0JvQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0JvQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQm9Cj0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQm9CQ0ILQldCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQk9Ce0JvQo9CR0J7QktCY0Isg0J3QkNCU0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQndCY0JrQntCb0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQntCb0JPQmNCm0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQn9CV0KDQmNCo0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQodCV0JrQo9Cb0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQodCi0JDQndCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0KHQotCQ0J3QkAor0JPQntCb0KPQkdCe0JLQmNCLINCi0JXQntCU0J7QoNCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQotCe0JzQngor0JPQntCb0KPQkdCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0JPQntCb0KPQkdCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQl9Ce0KDQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JPQntCb0KPQkdCh0JrQmCDQnNCY0JvQmNCm0JAKK9CT0J7Qm9Cj0JHQodCa0Jgg0KDQo9CW0JAKK9CT0J7QnNCR0JDQqCDQotCQ0JzQkNCoCivQk9Ce0JzQkdCQ0KAg0KjQkNCd0JTQntCgCivQk9Ce0JzQkdCQ0KAg0JXQm9CY0JfQkNCR0JXQotCQCivQk9Ce0JzQkdCQ0KAg0KTQldCg0JXQndCmCivQk9Ce0JzQkdCQ0KAg0JjQqNCi0JLQkNCdCivQk9Ce0JzQkdCQ0KAg0IjQkNCd0J7QqAor0JPQntCc0JHQkNCgINCI0JDQndCe0KgKK9CT0J7QnNCR0JDQoCDQmtCQ0KLQkNCb0JjQnQor0JPQntCc0JHQkNCgINCc0JjQpdCQ0IkKK9CT0J7QnNCR0JDQoCDQoNCe0JfQkNCb0JjQiNCQCivQk9Ce0JzQkdCe0Kgg0JjQqNCi0JLQkNCdCivQk9Ce0JzQkdCe0Kgg0JjQktCY0KbQkAor0JPQntCc0JHQntCoINCa0JDQoNCb0J4KK9CT0J7QnNCR0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9Ce0JzQmNCg0JDQpiDQltCY0JLQmtCeCivQk9Ce0JzQmNCg0JDQpiDQkdCg0JDQndCa0J4KK9CT0J7QnNCY0KDQkNCmINCh0KLQntCI0JDQnQor0JPQntCd0KfQmNCdINCh0KDQldCi0JrQngor0JPQntCd0ILQkCDQltCY0JLQkNCdCivQk9Ce0J3QgtCQINCc0JjQm9CV0J3QkAor0JPQntCd0ILQkCDQn9CV0KLQkNCgCivQk9Ce0J3QlNCQINCb0JDQlNCY0KHQm9CQ0JIKK9CT0J7QndCU0JDQoCDQoNCj0JbQkAor0JPQntCK0JAg0JHQoNCQ0J3QmNCc0JjQoAor0JPQntCK0JAg0JzQmNCb0J7QodCb0JDQkgor0JPQntCK0JAg0J/QldCi0JDQoAor0JPQntCg0KjQlSDQkNCd0JTQoNCY0IjQkAor0JPQntCg0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9CT0J7QoNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQk9Ce0KDQkdCQ0J3QntCSINCY0JLQkNCdCivQk9Ce0KDQlNCQ0J3QmNCLINCh0KLQntCI0JDQnQor0JPQntCg0JTQmNCLINCU0JDQoNCY0J3QmtCQCivQk9Ce0KDQlNCY0Isg0JPQntCI0JrQngor0JPQntCg0JTQmNCLINCb0JDQktCY0J3QmNCI0JAKK9CT0J7QoNCU0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQntCg0JTQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9Ce0KDQlNCY0Isg0KDQmNCh0KLQngor0JPQntCg0JTQmNCLINCh0JvQkNCS0JrQngor0JPQntCg0JTQmNCLINCh0KLQldCS0JDQnQor0JPQntCg0JTQmNCLINCS0JjQotCe0JzQmNCgCivQk9Ce0KDQlNCe0Kgg0JbQo9CW0JDQndCQCivQk9Ce0KDQldCn0JDQnSDQmtCQ0KDQm9CeCivQk9Ce0KDQldCmINCU0KDQkNCT0KPQotCY0J0KK9CT0J7QoNCV0KYg0J3QkNCU0JAKK9CT0J7QoNCV0IrQkNCaINCg0KPQlNCe0JvQpAor0JPQntCg0JjQp9CQ0J3QldCmINCc0JjQiNCeCivQk9Ce0KDQiNCQ0J3QkNCmINCR0KDQkNCd0JrQngor0JPQntCg0IjQkNCd0JDQpiDQnNCQ0KDQmNCdCivQk9Ce0KDQitCQ0Jog0JrQkNCi0JjQptCQCivQk9Ce0KDQotCS0JAg0IjQntCh0JjQnwor0JPQntCh0JDQoNCY0Isg0KTQoNCQ0IrQkAor0JPQntCh0J/QmNCLINCd0JXQlNCV0InQmtCeCivQk9Ce0KHQn9Ce0ILQmNCd0JDQp9Ca0Jgg0KDQkNCU0J7QktCQ0J0KK9CT0J7QodCf0J7QlNCY0J3QntCS0JjQiyDQmNCS0JDQnQor0JPQntCh0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9Ce0KHQotCY0JzQmNCg0J7QktCY0Isg0JzQkNCg0JjQnQor0JPQntCh0KLQmNCc0JjQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9CT0J7QodCi0J7QiNCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JPQntCh0KLQntCI0JjQiyDQlNCj0KjQkNCdCivQk9Ce0KHQotCe0IjQmNCLINCI0J7QktCQ0J0KK9CT0J7QodCi0J7QiNCY0Isg0JvQkNCX0JDQoAor0JPQntCh0KLQntCI0JjQiyDQnNCY0JvQkNCd0JAKK9CT0J7QodCi0J7QiNCY0Isg0JzQmNCb0J7QqAor0JPQntCh0KLQntCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9Ce0KHQotCe0IjQmNCLINCc0JjQotCQ0KAKK9CT0J7QodCi0J7QiNCY0Isg0KHQm9CQ0JLQmtCQCivQk9Ce0KHQotCe0IjQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQk9Ce0KHQotCe0IjQmNCLINCi0JXQntCU0J7QoAor0JPQntCh0KLQntCS0JjQiyDQgtCe0KDQgtCVCivQk9Ce0KHQotCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JPQntCh0KLQntCS0JjQiyDQmNCa0JAKK9CT0J7QodCi0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CT0J7QodCi0J7QktCY0Isg0JzQntCc0JjQoAor0JPQntCi0KjQotCQ0IjQnSDQpNCV0KDQldCd0KYKK9CT0J7QktCV0JTQkNCg0JjQptCQINCn0JXQlNCeCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQltCV0JvQmNCc0JjQoAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JTQldCI0JDQnQor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JTQoNCQ0JPQmNCm0JAKK9CT0J7QktCV0JTQkNCg0JjQptCQINCc0JjQm9CV0J3QmtCeCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQnNCY0JvQntCS0JDQnQor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JzQmNCi0JDQoAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JzQmNCi0JDQoAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0J/QkNCS0JvQlQor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0KHQmNCc0J4KK9CT0J7QktCV0JTQkNCg0JjQptCQINCh0JvQkNCS0JrQngor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0KLQkNCi0JDQiNCQ0J3QkAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JLQldCb0JjQnNCY0KAKK9CT0J7QktCV0JTQkNCg0JjQptCQINCS0JvQkNCU0JjQnNCY0KAKK9CT0J7QktCV0JTQkNCg0J7QktCY0Isg0IjQo9Cb0JjQiNCQCivQk9Ce0JLQldCU0JDQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JPQntCS0JXQlNCQ0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQk9Ce0JLQntCg0KfQmNCdINCW0JjQktCa0JAKK9CT0J7QktCe0KDQp9CY0J0g0JHQntCT0JTQkNCdCivQk9Ce0JLQntCg0KfQmNCdINCU0JDQoNCY0J3QmtCQCivQk9Ce0JLQntCg0KfQmNCdINCU0JXQm9CY0J3QmtCQCivQk9Ce0JLQntCg0KfQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQntCS0J7QoNCn0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0J7QktCe0KDQp9CY0J0g0JTQo9Co0JDQnQor0JPQntCS0J7QoNCn0JjQnSDQk9CQ0JLQoNCQCivQk9Ce0JLQntCg0KfQmNCdINCb0JDQl9CQ0KAKK9CT0J7QktCe0KDQp9CY0J0g0JzQm9CQ0JTQldCdCivQk9Ce0JLQntCg0KfQmNCdINCh0JDQktCQCivQk9Ce0JLQntCg0KfQmNCdINCh0JvQkNCS0JjQptCQCivQk9Ce0JLQntCg0KfQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CT0J7QktCe0KDQp9CY0J0g0KHQotCV0JLQkNCdCivQk9Ce0JLQntCg0KfQmNCdINCh0KLQntCI0JDQnQor0JPQntCS0J7QoNCn0JjQnSDQktCV0KDQkAor0JPQntCS0J7QoNCn0JjQnSDQktCb0JDQlNCQCivQk9Ce0JLQntCg0KfQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CT0J7QktCe0KDQp9CY0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KDQp9CQ0J3QkNCmINCR0KDQkNCd0JrQngor0JPQoNCn0JUg0JzQmNCb0JDQnQor0JPQoNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0JPQoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JPQoNCn0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CT0KDQp9CY0Ist0KLQo9CR0JjQiyDQiNCe0JLQkNCd0JrQkAor0JPQoNCn0JjQiyDQktCV0KDQmNCm0JAKK9CT0KDQp9CY0Isg0JfQntCg0JrQkAor0JPQoNCn0JrQmCDQnNCY0JvQlQor0JPQoNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JPQoNCo0JjQiyDQgtCe0KDQgtCVCivQk9Cg0KjQmNCLINCC0J7QoNCC0JUKK9CT0KDQqNCY0Isg0JzQmNCb0JjQptCQCivQk9Cg0KjQmNCLINCd0JjQmtCe0JvQkAor0JPQoNCo0JjQiyDQoNCj0JbQmNCm0JAKK9CT0KDQqNCY0Isg0KHQntCk0JjQiNCQCivQk9Cg0ILQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CT0KDQkNCn0JDQndCY0J0g0JjQktCQ0J0KK9CT0KDQkNCn0JDQndCY0J0g0JLQkNCb0JXQoNCY0IjQkAor0JPQoNCQ0KfQldCaINCh0KLQldCS0JDQnQor0JPQoNCQ0KfQmNCaINCh0JvQkNCS0JrQkAor0JPQoNCQ0KfQmNCaINCh0KLQldCS0JDQnQor0JPQoNCQ0KfQmtCeINCo0JDQndCU0J7QoAor0JPQoNCQ0KfQmtCeINCe0JvQk9CQCivQk9Cg0JDQp9Ca0J4g0J7Qm9CT0JAKK9CT0KDQkNCn0JrQniDQoNCe0JfQkNCb0JjQiNCQCivQk9Cg0JDQqNCQINCI0J7QodCY0J8KK9CT0KDQkNCo0JDQoCDQkNCd0JAKK9CT0KDQkNCo0JjQiyDQktCQ0JvQldCd0KLQmNCdCivQk9Cg0JDQqNCY0Isg0JfQlNCV0J3QmtCeCivQk9Cg0JDQqNCd0JXQoCDQodCe0KTQmNCI0JAKK9CT0KDQkNCC0JjQnSDQnNCY0JvQntCoCivQk9Cg0JDQkSDQpNCV0KDQldCd0KYKK9CT0KDQkNCR0JDQoCDQiNCe0KHQmNCf0JAKK9CT0KDQkNCR0JDQoCDQiNCe0KHQmNCfCivQk9Cg0JDQkdCQ0KAg0JzQmNCg0JrQngor0JPQoNCQ0JHQldCWINCY0JvQlQor0JPQoNCQ0JHQldCWINCI0J7QiNCQCivQk9Cg0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0JDQkdCY0Isg0KPQoNCe0KgKK9CT0KDQkNCR0J7QptCYINCg0JDQnNCQ0JTQkNCdCivQk9Cg0JDQkdCe0JLQkNCmINCQ0KbQngor0JPQoNCQ0JHQntCS0JDQpiDQptCS0JXQotCQCivQk9Cg0JDQkdCe0JLQkNCmINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQoNCQ0JHQntCS0JDQpiDQiNCe0JLQkNCdCivQk9Cg0JDQkdCe0JLQkNCmINCd0JXQktCV0J3QmtCQCivQk9Cg0JDQkdCe0JLQkNCmINCg0JDQndCa0J4KK9CT0KDQkNCR0J7QktCQ0KYg0KHQmNCc0JXQo9CdCivQk9Cg0JDQkdCj0J3Qj9CY0IjQkCDQiNCj0JvQmNCI0JDQndCQCivQk9Cg0JDQlNCQ0KjQp9CV0JLQmNCLINCe0KHQnNCQ0J0KK9CT0KDQkNCU0JjQiyDQltCY0JLQmtCeCivQk9Cg0JDQlNCY0Isg0JHQntCW0JjQptCQCivQk9Cg0JDQlNCY0Isg0JTQkNCd0JrQkAor0JPQoNCQ0JTQmNCLINCh0J/QkNCh0J7QiNCVCivQk9Cg0JDQlNCY0J3Qp9CV0JLQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9CT0KDQkNCU0JjQndCQINCh0JzQmNCJ0JrQkAor0JPQoNCQ0JTQmNCd0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCQ0JTQmNCd0JDQpiDQodCg0JXQlNCe0IjQlQor0JPQoNCQ0JTQmNCd0JDQpiDQodCg0JXQlNCe0IjQlQor0JPQoNCQ0JTQmNCd0JDQpiDQodCg0JXQlNCe0IjQlQor0JPQoNCQ0JTQmNCd0JDQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQk9Cg0JDQlNCe0IjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0KDQkNCU0J7QiNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JPQoNCQ0KXQldCaINCd0JDQlNCQCivQk9Cg0JDQpdCe0JLQkNCmINCC0J7QoNCC0JUKK9CT0KDQkNCl0J7QktCQ0KYg0ILQntCg0ILQlQor0JPQoNCQ0KXQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KDQkNCl0J7QktCQ0KYg0KbQktCY0IjQngor0JPQoNCQ0KXQntCS0JDQpiDQlNCQ0J3QmNCI0JXQm9CQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KDQkNCT0JDQndCQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KDQkNCT0JjQptCQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KPQqNCQ0J3QmtCQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KPQqNCQ0J0KK9CT0KDQkNCl0J7QktCQ0KYg0JTQo9Co0JDQnQor0JPQoNCQ0KXQntCS0JDQpiDQlNCj0KjQkNCdCivQk9Cg0JDQpdCe0JLQkNCmINCT0J7QiNCa0J4KK9CT0KDQkNCl0J7QktCQ0KYg0IjQkNCd0JrQngor0JPQoNCQ0KXQntCS0JDQpiDQiNCe0JLQkNCdCivQk9Cg0JDQpdCe0JLQkNCmINCI0J7QktCQ0J0KK9CT0KDQkNCl0J7QktCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9CT0KDQkNCl0J7QktCQ0KYg0JzQmNCg0JrQngor0JPQoNCQ0KXQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQk9Cg0JDQpdCe0JLQkNCmINCd0JDQlNCQCivQk9Cg0JDQpdCe0JLQkNCmINCd0JjQmtCe0JvQkAor0JPQoNCQ0KXQntCS0JDQpiDQntCR0KDQkNCUCivQk9Cg0JDQpdCe0JLQkNCmINCg0JDQlNCVCivQk9Cg0JDQpdCe0JLQkNCmINCg0JDQndCa0JAKK9CT0KDQkNCl0J7QktCQ0KYg0KHQm9CQ0JLQmNCm0JAKK9CT0KDQkNCl0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQk9Cg0JDQpdCe0JLQkNCmINCh0JvQkNCS0JrQngor0JPQoNCQ0KXQntCS0JDQpiDQodCc0JjQidCQCivQk9Cg0JDQpdCe0JLQkNCmINCh0J/QkNCh0J4KK9CT0KDQkNCl0J7QktCQ0KYg0JLQkNCh0J4KK9CT0KDQkNCl0J7QktCQ0KYg0JLQldCb0JjQnNCY0KAKK9CT0KDQkNCl0J7QktCQ0KYg0JfQlNCV0J3QmtCeCivQk9Cg0JDQiNCb0JjQndCTINCV0JzQmNCbCivQk9Cg0JDQndCU0JjQiyDQnNCY0IjQntCU0KDQkNCTCivQk9Cg0JDQndCU0JjQiyDQnNCY0JvQmNCm0JAKK9CT0KDQkNCd0JTQmNCLINCg0JDQlNCe0JLQkNCdINCU0KAg0J/QoNCe0KQKK9CT0KDQkNCd0JTQmNCLINCh0KLQntCI0JDQnQor0JPQoNCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0JPQoNCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0JPQoNCQ0J3QmNCLINCd0JjQmtCe0JvQkAor0JPQoNCQ0J3Qo9Cb0JAg0JPQntCI0JrQngor0JPQoNCQ0J7QitCQINCC0KPQoNCeCivQk9Cg0JDQntCgINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KDQkNCe0KAg0KHQm9CQ0JLQmtCeCivQk9Cg0JDQntCg0JDQpiDQmNCh0JjQlNCe0KAKK9CT0KDQkNCe0JLQkNCmINCC0J7QoNCC0JUKK9CT0KDQkNCe0JLQkNCmINCQ0J7QoNCY0JrQkAor0JPQoNCQ0J7QktCQ0KYg0JHQm9CQ0JYKK9CT0KDQkNCe0JLQkNCmINCR0J7Qk9CU0JDQnQor0JPQoNCQ0J7QktCQ0KYg0JHQntCT0JTQkNCdCivQk9Cg0JDQntCS0JDQpiDQkdCe0KDQmNCh0JvQkNCSCivQk9Cg0JDQntCS0JDQpiDQlNCj0KjQkNCdCivQk9Cg0JDQntCS0JDQpiDQnNCY0JvQntCoCivQk9Cg0JDQntCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JPQoNCQ0J7QktCQ0KYg0J7Qm9CY0JLQldCg0JAKK9CT0KDQkNCe0JLQkNCmLdCf0JDQlNCg0J7QkiDQidCj0JHQmNCd0JrQkAor0JPQoNCQ0J7QktCQ0KYg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CT0KDQkNCf0KfQkNCaINCI0J7QodCY0J8KK9CT0KDQkNCS0JDQoNCQINCU0KDQkNCT0JjQptCQCivQk9Cg0JDQktCQ0KDQkCDQndCY0JrQntCb0JAKK9CT0KDQkNCS0JDQoNCQINCg0JDQlNCVCivQk9Cg0JHQkCDQmtCe0KHQotCQCivQk9Cg0JHQkCDQnNCY0JvQkNCdCivQk9Cg0JHQkCDQndCV0JLQldCd0JrQkAor0JPQoNCR0JAg0JLQo9Ca0J7QiNCY0KbQkAor0JPQoNCR0JDQotCY0J3QmNCLINCc0JjQm9CQ0J0KK9CT0KDQkdCQ0KLQmNCd0JjQiyDQnNCY0JvQntCoCivQk9Cg0JHQkNCSINCI0J7QnQor0JPQoNCR0JDQktCQ0KYg0J3QldCS0JXQndCa0JAKK9CT0KDQkdCQ0JLQkNCmINCd0JjQmtCe0JvQkAor0JPQoNCR0JjQiyDQltCY0JLQkNCdCivQk9Cg0JHQmNCLINCW0JjQktCa0J4KK9CT0KDQkdCY0Isg0ILQntCg0ILQlSDQnNCgCivQk9Cg0JHQmNCLINCC0KPQoNCQ0IIKK9CT0KDQkdCY0Isg0ILQo9Cg0J4KK9CT0KDQkdCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JPQoNCR0JjQiyDQkNCd0JrQkAor0JPQoNCR0JjQiyDQkNCd0JrQmNCm0JAKK9CT0KDQkdCY0Isg0JHQntCo0JrQngor0JPQoNCR0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQk9Cg0JHQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CT0KDQkdCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cg0JHQmNCLINCP0JXQktCQ0JQKK9CT0KDQkdCY0Isg0JTQkNCg0JjQndCa0JAKK9CT0KDQkdCY0Isg0JTQldCh0JAKK9CT0KDQkdCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cg0JHQmNCLINCU0KDQkNCT0JDQnQor0JPQoNCR0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0KDQkdCY0Isg0JTQoNCQ0JPQngor0JPQoNCR0JjQiyDQlNCg0JXQndCa0JAKK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JHQmNCLINCU0KPQqNCQ0J0KK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JHQmNCLINCU0KPQqNCQ0J0KK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQmNCm0JAKK9CT0KDQkdCY0Isg0JPQntCI0JrQngor0JPQoNCR0JjQiyDQk9Ce0KDQkNCdCivQk9Cg0JHQmNCLINCI0J7QktCQ0J3QmtCQCivQk9Cg0JHQmNCLINCI0J7QktCQ0J3QmtCQCivQk9Cg0JHQmNCLINCI0J7QktCQ0J0KK9CT0KDQkdCY0Isg0IjQntCS0JDQnQor0JPQoNCR0JjQiyDQiNCe0JLQmNCm0JAKK9CT0KDQkdCY0Isg0IjQntCS0J4KK9CT0KDQkdCY0Isg0JvQkNCX0JDQoAor0JPQoNCR0JjQiyDQidCj0JHQkNCdCivQk9Cg0JHQmNCLINCJ0KPQkdCY0KjQkAor0JPQoNCR0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0KDQkdCY0Isg0JzQmNCb0JDQnQor0JPQoNCR0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JHQmNCLINCc0JjQm9CQ0J0KK9CT0KDQkdCY0Isg0JzQmNCb0JXQndCQCivQk9Cg0JHQmNCLINCc0JjQm9CV0J3QkAor0JPQoNCR0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCR0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCR0JjQiyDQnNCY0JvQlQor0JPQoNCR0JjQiyDQnNCY0JvQmNCLCivQk9Cg0JHQmNCLINCc0JjQm9CY0KbQkAor0JPQoNCR0JjQiyDQnNCY0JvQmtCQCivQk9Cg0JHQmNCLINCc0JjQm9Ce0KgKK9CT0KDQkdCY0Isg0JzQmNCb0J7QqAor0JPQoNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQoNCR0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQoNCR0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQoNCR0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JPQoNCR0JjQiyDQnNCY0KDQkAor0JPQoNCR0JjQiyDQnNCY0KDQkAor0JPQoNCR0JjQiyDQnNCb0JDQlNCV0J0KK9CT0KDQkdCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0JHQmNCLINCe0KHQotCe0IjQkAor0JPQoNCR0JjQiyDQn9CV0KLQkNCgCivQk9Cg0JHQmNCLINCf0JXQotCQ0KAKK9CT0KDQkdCY0Isg0J/QldCi0JDQoAor0JPQoNCR0JjQiyDQoNCQ0JTQlQor0JPQoNCR0JjQiyDQoNCe0KHQkAor0JPQoNCR0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0JHQmNCLINCh0KLQldCS0JDQnQor0JPQoNCR0JjQiyDQodCi0JXQktCQ0J0KK9CT0KDQkdCY0Isg0KHQotCV0JLQngor0JPQoNCR0JjQiyDQodCS0JXQotCa0J4KK9CT0KDQkdCY0Isg0JLQkNCh0JAg0JTQoAor0JPQoNCR0JjQiyDQktCV0KDQkAor0JPQoNCR0JjQiyDQktCY0JQKK9CT0KDQkdCY0Isg0JLQntCI0JjQnQor0JPQoNCR0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQk9Cg0JHQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CT0KDQkdCY0J0g0JzQkNCg0JjQiNCQCivQk9Cg0JHQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9CT0KDQkdCe0JLQkNCmINCc0JjQpdCQ0IkKK9CT0KDQkdCe0JLQmNCLINCQ0JvQmNCbCivQk9Cg0JHQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0KDQkdCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQk9Cg0JHQntCS0JjQiyDQiNCe0JLQkNCdCivQk9Cg0JHQntCS0JjQiyDQiNCe0JLQkNCdCivQk9Cg0JHQntCS0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JHQntCS0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JHQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0JPQoNCR0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0KDQkdCe0JLQmNCLINCc0KPQoNCQ0KIKK9CT0KDQkdCe0JLQmNCLINCc0KPQoNCQ0KIKK9CT0KDQkdCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQk9Cg0JHQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CT0KDQkdCe0JLQmNCLINCh0JvQkNCS0JrQngor0JPQoNCR0J7QktCY0Isg0KHQnNCY0InQkAor0JPQoNCm0JUg0JDQndCY0KbQkAor0JPQoNCm0JjQiyDQiNCe0JLQkNCdCivQk9Cg0KbQmNCLINCc0JjQm9CY0KbQkAor0JPQoNCm0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQptCY0Isg0JLQldCh0JXQm9CY0J0KK9CT0KDQptCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JPQoNCU0JjQiyDQmNCS0JjQptCQCivQk9Cg0JTQmNCLINCb0KPQiNCa0JAKK9CT0KDQlNCY0Isg0JzQkNCg0JAKK9CT0KDQlNCY0J3QmNCLINCc0JjQoNCa0J4KK9CT0KDQlNCY0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQldCnINCg0J7Ql9CQ0JvQmNCI0JAKK9CT0KDQldCn0JXQmyDQmtCQ0KDQm9CeCivQk9Cg0JXQp9Cd0JjQmiDQiNCQ0J3QmtCeCivQk9Cg0JXQp9Cd0JjQmiDQnNCQ0KDQmNCI0JAKK9CT0KDQldCn0J3QmNCaINCf0JDQktCb0JUKK9CT0KDQldCR0JXQm9CU0JjQndCT0JXQoCDQidCj0JHQmNCm0JAKK9CT0KDQldCR0JXQm9CU0JjQndCT0JXQoCDQn9CV0KLQkNCgCivQk9Cg0JXQkdCK0JXQkiDQoNCe0JfQkNCb0JjQiNCQCivQk9Cg0JXQkdCeINCd0JXQlNCV0InQmtCeCivQk9Cg0JXQkdCe0JLQmNCLINCg0JDQndCa0J4KK9CT0KDQldCT0JXQpiDQnNCQ0KDQmNCI0JAKK9CT0KDQldCT0JXQpiDQktCY0JvQmAor0JPQoNCV0JPQldCmINCS0JjQm9CYCivQk9Cg0JXQk9CV0KAg0KXQldCU0JLQmNCT0JAKK9CT0KDQldCT0J7QoCDQiNCe0KHQmNCfCivQk9Cg0JXQk9Ce0KDQmNCLINCR0KDQkNCd0JrQngor0JPQoNCV0JPQntCg0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JXQk9Ce0KDQmNCLINCc0JjQm9CQ0J3QmtCQCivQk9Cg0JXQk9Ce0KDQmNCdINCf0JXQotCQ0KAKK9CT0KDQldCT0J7QoNCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JUKK9CT0KDQldCT0J7QoNCe0JLQmNCLINCY0JLQkNCdCivQk9Cg0JXQk9Ce0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JPQoNCV0JPQo9CoINCQ0J3QotCQ0JsKK9CT0KDQldCT0KPQqCDQiNCQ0J3QntCoCivQk9Cg0JXQk9Cj0Kgg0JvQkNCh0JvQngor0JPQoNCV0JPQo9CoINCf0JXQotCQ0KAKK9CT0KDQldCT0KPQoNCY0Isg0JjQktCQ0J0KK9CT0KDQldCY0KHQmNCd0JPQldCgINCU0JDQoNCY0J3QkAor0JPQoNCV0JjQl9CV0KAg0J/QldCi0JDQoAor0JPQoNCV0Jog0KHQkNCU0JjQmgor0JPQoNCV0JrQoSDQn9CQ0JLQldCbCivQk9Cg0JXQmtCjINCQ0JTQldCcCivQk9Cg0JXQmtCjINCT0JDQndCYCivQk9Cg0JXQmtCjINCl0JDQodCQ0J0KK9CT0KDQldCa0KMg0JzQo9Cl0JDQnNCV0KAKK9CT0KDQldCa0KMg0J3QldCX0JjQoAor0JPQoNCV0JrQoyDQoNCQ0JzQmNCXCivQk9Cg0JXQmtCjINCh0JDQkdCY0KIKK9CT0KDQldCa0KPQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9CT0KDQldCa0KPQm9Ce0JLQmNCLINCh0KLQkNCd0KfQlQor0JPQoNCT0JDQndCe0JLQmNCLINCC0KPQoNCQCivQk9Cg0JPQkNCgINCC0KPQoNCY0KbQkAor0JPQoNCT0JDQoCDQkdCg0JDQndCa0JAKK9CT0KDQk9CQ0KAg0JvQkNCX0JDQoAor0JPQoNCT0JDQoCDQotCe0KjQkAor0JPQoNCT0JjQp9CV0JLQmNCLINCI0KPQm9CY0KjQmtCQCivQk9Cg0JPQmNCLINCR0J7QqNCa0J4KK9CT0KDQk9CY0Isg0JHQntCI0JDQndCQCivQk9Cg0JPQmNCLINCU0KDQkNCT0J7QiNCVCivQk9Cg0JPQmNCLINCc0JjQiNCeCivQk9Cg0JPQmNCLINCc0JjQm9CQ0J0KK9CT0KDQk9CY0Isg0KHQkNCS0JXQotCQCivQk9Cg0JPQmNCLINCh0JjQnNCeCivQk9Cg0JPQmNCLINCS0JXQoNCQCivQk9Cg0JPQmNCLINCS0JXQoNCY0KbQkAor0JPQoNCT0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQk9Cg0JPQmNCd0KfQldCS0JjQiyDQnNCY0KXQkNCV0JvQkCDQn9Cg0J7QpNCV0KHQntCgCivQk9Cg0JPQmNCd0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQk9Cg0JPQo9CgINCU0KPQqNCQ0J0KK9CT0KDQk9Cj0KAg0KDQkNCU0J7QodCb0JDQkgor0JPQoNCT0KPQoCDQktCb0JDQlNCQCivQk9Cg0JPQo9Cg0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQoNCT0KPQoNCV0JLQmNCLINCg0JDQiNCa0J4KK9CT0KDQk9Cj0KDQmNCLINCQ0J3QotCj0J0KK9CT0KDQk9Cj0KDQmNCLINCI0J7QodCY0J8KK9CT0KDQk9Cj0KDQmNCLINCg0KPQltCY0KbQkAor0JPQoNCT0KPQoNCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCT0KPQoNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0JjQpNCQ0KLQntCd0JMg0JrQkNCg0JvQngor0JPQoNCY0KTQkNCi0J7QndCTINCe0KLQngor0JPQoNCY0JPQntCg0JjQiNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0KDQmNCT0J7QoNCY0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQmNCT0J7QoNCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQk9Cg0JjQiNCQ0Jog0JTQkNCd0JjQptCQCivQk9Cg0JjQiNCQ0Jog0JrQntCh0J7QktCa0JAKK9CT0KDQmNCI0JDQmiDQnNCY0JvQkNCdCivQk9Cg0JjQiNCQ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CT0KDQmNCI0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CT0KDQmNCb0JXQpiDQodCi0JDQndCa0J4KK9CT0KDQmNCb0JXQpiDQodCi0JDQndCa0J4KK9CT0KDQmNCd0KXQo9CiINCb0JDQlNCY0KHQm9CQ0JIKK9CT0KDQmNCh0JAg0J/QldCi0JDQoAor0JPQoNCY0KHQpdCQ0JHQldCgINCk0KDQkNCK0JAKK9CT0KDQmNCX0JXQiSDQmtCQ0KDQm9CeCivQk9Cg0JjQl9CV0KAg0J/QldCi0JDQoAor0JPQoNCY0JfQldCgINCh0KLQldCS0JDQnQor0JPQoNCa0JDQktCQ0KYg0JzQmNCb0JDQnQor0JPQoNCa0JDQktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JPQoNCa0JjQndCY0Isg0JrQntCh0JDQoNCQCivQk9Cg0JrQmNCd0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JrQntCS0JjQiyDQltCY0JLQkNCdCivQk9Cg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQk9Cg0JrQntCS0JjQiyDQgtCj0KDQngor0JPQoNCa0J7QktCY0Isg0JDQndCa0JAKK9CT0KDQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQk9Cg0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JPQoNCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JPQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cg0JrQntCS0JjQiyDQlNCQ0J3QlQor0JPQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JPQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JPQoNCa0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9CT0KDQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JPQoNCa0J7QktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0KDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JPQoNCa0J7QktCY0Isg0JzQmNCb0JjQptCQINCU0KAKK9CT0KDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQk9Cg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQk9Cg0JrQntCS0JjQiyDQktCV0KDQkAor0JPQoNCa0J7QktCY0Isg0JLQntCI0JjQnNCY0KAKK9CT0KDQmtCe0JLQmNCLINCS0J7QiNCY0J0KK9CT0KDQmtCe0JLQodCa0Jgg0J/QkNCd0KLQkAor0JPQoNCb0JjQiyDQgtCe0KDQgtCVCivQk9Cg0JvQmNCLINCJ0KPQkdCY0J3QmtCeCivQk9Cg0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0JvQmNCm0JAg0JbQldCJ0JrQngor0JPQoNCb0JjQptCQINCR0J7QodCY0InQmtCQCivQk9Cg0JvQmNCm0JAg0JzQmNCb0JXQktCQCivQk9Cg0JvQmNCm0JAg0JzQmNCb0J7QktCQ0J0KK9CT0KDQm9CY0KbQkCDQodCi0JDQndCa0J4KK9CT0KDQm9CY0KbQkCDQktCe0IjQmNCdCivQk9Cg0InQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQoNCc0JDQqCDQgtCj0KDQngor0JPQoNCc0JDQqCDQkdCg0JDQndCa0J4KK9CT0KDQnNCe0Kgg0J/QoNCV0JTQoNCQ0JMKK9CT0KDQnNCj0KjQkCDQltCY0JLQmtCeCivQk9Cg0JzQo9Co0JAg0ILQo9Cg0J4KK9CT0KDQnNCj0KjQkCDQnNCY0JvQkNCdCivQk9Cg0JzQo9Co0JAg0JzQmNCb0JDQnQor0JPQoNCc0KPQqNCQINCg0JDQlNCVCivQk9Cg0JzQo9Co0JAg0KHQm9CQ0JLQmtCeCivQk9Cg0JzQo9Co0JAg0KHQnNCY0InQmtCQCivQk9Cg0JzQo9Co0JAg0KHQotCe0IjQkNCdCivQk9Cg0JzQo9Co0JAg0JLQldCb0JrQngor0JPQoNCK0JAg0ILQo9Cg0JAKK9CT0KDQitCQINCQ0J3QlNCg0JjQiNCQCivQk9Cg0IrQkCDQkNCd0JrQkAor0JPQoNCK0JAt0JDQodCQ0J3QmCDQidCj0JzQndCY0IjQkAor0JPQoNCK0JAg0JTQo9Co0JDQnQor0JPQoNCK0JAg0IjQkNCd0JrQngor0JPQoNCK0JAg0IjQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCj0KDQkNCICivQk9Cg0IrQkCDQm9CQ0KHQm9CeCivQk9Cg0IrQkCDQidCj0JTQldCS0JjQogor0JPQoNCK0JAg0JzQkNCg0JjQiNCQCivQk9Cg0IrQkCDQntCh0JrQkNCgCivQk9Cg0IrQkCDQodCe0KTQmNCI0JAKK9CT0KDQitCQINCh0KLQldCS0JDQnQor0JPQoNCK0JAg0KHQotCV0JLQkNCdCivQk9Cg0IrQkCDQodCi0JXQktCQ0J0KK9CT0KDQitCQINCS0JvQkNCU0JjQnNCY0KAKK9CT0KDQntCo0JXQmiDQl9CS0J7QndCY0JzQmNCgCivQk9Cg0J7QqNCa0J4g0JzQkNCg0JjQiNCQCivQk9Cg0J7QnCDQptCY0KDQmNCbCivQk9Cg0J7QnNCY0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0J7QoSDQgtCe0KDQgtCVCivQk9Cg0J7QoSDQmNCS0JDQnQor0JPQoNCe0KEg0JvQkNCU0JjQodCb0JDQkgor0JPQoNCe0JfQlNCQ0J3QmNCLINCC0J7QoNCC0JUKK9CT0KDQntCX0JTQkNCd0JjQiyDQldCd0JjQndCa0JAKK9CT0KDQntCX0JTQkNCd0JjQiyDQiNCe0KHQmNCfCivQk9Cg0J7Ql9CU0JDQndCY0Isg0JzQmNCb0JDQnQor0JPQoNCe0JfQlNCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CT0KDQntCX0JTQkNCd0J7QkiDQodCb0JDQktCa0J4KK9CT0KDQntCX0JTQkNCd0J7QktCh0JrQmCDQlNCQ0JzQiNCQ0J0KK9CT0KDQntCX0JTQkNCd0J7QktCh0JrQmCDQnNCY0JvQlQor0JPQoNCe0JfQlNCQ0J3QntCS0KHQmtCYINCf0JXQotCQ0KAKK9CT0KDQntCX0JTQmNCLINCR0J7QqNCa0J4KK9CT0KDQntCX0JTQmNCLINCR0J7Qk9CU0JDQnQor0JPQoNCe0JfQlNCY0Isg0JTQldCh0JDQndCa0JAKK9CT0KDQntCX0JTQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CT0KDQntCX0JTQmNCLINCU0KPQqNCQ0J0KK9CT0KDQntCX0JTQmNCLINCI0JDQodCc0JjQndCQCivQk9Cg0J7Ql9CU0JjQiyDQiNCe0JLQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQiNCe0JLQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQiNCe0JLQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQmtCj0JfQnNCQ0J0KK9CT0KDQntCX0JTQmNCLINCb0JDQl9CQ0KAKK9CT0KDQntCX0JTQmNCLINCJ0KPQkdCY0KjQkAor0JPQoNCe0JfQlNCY0Isg0InQo9CR0J7QnNCY0KAKK9CT0KDQntCX0JTQmNCLINCc0JjQm9CQ0J0KK9CT0KDQntCX0JTQmNCLINCf0JXQotCQ0KAKK9CT0KDQntCX0JTQmNCLINCh0KLQldCS0JDQnQor0JPQoNCe0JfQlNCY0Isg0JLQldCh0J3QkAor0JPQoNCe0JfQlNCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0KDQntCX0JTQmNCLINCX0J7QoNCQ0J0KK9CT0KDQntCX0JTQmNCLINCX0J7QoNCY0KbQkAor0JPQoNCe0JfQk9Cj0KIg0KLQmNCR0J7QoAor0JPQoNCj0JHQkCDQlNCe0KDQowor0JPQoNCj0JHQkCDQotCY0JHQldCg0JjQiNCVCivQk9Cg0KPQkdCQ0Kcg0JPQntCg0JTQkNCd0JAKK9CT0KDQo9CR0JDQpyDQnNCQ0JrQodCQCivQk9Cg0KPQkdCQ0Kcg0JzQntCc0KfQmNCb0J4KK9CT0KDQo9CR0JDQpyDQodCi0JDQndCa0JAKK9CT0KDQo9CR0JDQpyDQotCQ0J3QkNCh0JjQiNCVCivQk9Cg0KPQkdCQ0KfQmNCLINCT0J7QiNCa0J4KK9CT0KDQo9CR0JDQndCe0JIg0JTQntCR0KDQmNCS0J7QiAor0JPQoNCj0JHQkNCd0J7QkiDQlNCj0KjQkNCd0JrQkAor0JPQoNCj0JHQkNCd0J7QkiDQndCe0JLQkNCaCivQk9Cg0KPQkdCQ0J3QntCSINCX0JDQpdCQ0KDQmNCI0JUKK9CT0KDQo9CR0JXQqNCQINCd0JjQmtCe0JvQkAor0JPQoNCj0JHQldCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0KDQo9CR0JXQqNCY0Isg0JTQo9Co0JDQnQor0JPQoNCj0JHQldCo0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQk9Cg0KPQkdCV0KAg0JXQlNCj0JDQoNCUCivQk9Cg0KPQkdCV0KAg0JXQnNCY0JsKK9CT0KDQo9CR0JXQoCDQldCS0JDQm9CUCivQk9Cg0KPQkdCV0KAg0KTQoNCQ0IrQkAor0JPQoNCj0JHQldCgINCg0KPQlNCe0JvQpAor0JPQoNCj0JHQldCi0JjQiyDQntCb0JPQkAor0JPQoNCj0JHQmNCo0JAg0JDQndCC0JXQm9CeCivQk9Cg0KPQkdCY0KjQmNCLINCc0JjQoNCI0JDQndCQCivQk9Cg0KPQkdCY0KjQmNCLINCc0JjQoNCa0J4KK9CT0KDQo9CR0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQkdCY0Isg0JbQkNCg0JrQngor0JPQoNCj0JHQmNCLINCW0JDQoNCa0J4KK9CT0KDQo9CR0JjQiyDQkNCd0JrQkAor0JPQoNCj0JHQmNCLINCc0JjQm9CQ0J0KK9CT0KDQo9CR0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CR0JjQnSDQnNCY0JvQkNCdCivQk9Cg0KPQkdCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JPQoNCj0JHQiNCV0KjQmNCLINCR0KDQkNCd0JrQngor0JPQoNCj0JHQiNCV0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0KPQkdCI0JXQqNCY0Isg0JzQmNCg0JrQngor0JPQoNCj0JHQiNCV0KjQmNCLINCh0KLQldCS0J4KK9CT0KDQo9CR0J7QoCDQkNCU0JDQnAor0JPQoNCj0JHQntCgINCR0KDQkNCd0JrQngor0JPQoNCj0JHQntCgINCV0JzQkAor0JPQoNCj0JHQntCgINCI0JXQpNCi0J4KK9CT0KDQo9CR0J7QoC3QiNCe0IjQmNCLINCh0JvQkNCS0JjQptCQCivQk9Cg0KPQkdCe0KAg0IjQntCS0J4KK9CT0KDQo9CR0J7QoCDQm9CQ0JfQkNCgCivQk9Cg0KPQkdCe0KAg0JvQkNCX0J4KK9CT0KDQo9CR0J7QoCDQidCj0JHQntCc0JjQoAor0JPQoNCj0JHQntCgINCc0JjQidCQ0J3QkAor0JPQoNCj0JHQntCgINCc0JjQm9Ce0KgKK9CT0KDQo9CR0J7QoCDQndCV0ILQngor0JPQoNCj0JHQntCgINCd0JXQlNCV0InQmtCeCivQk9Cg0KPQkdCe0KAg0J3QldCS0JXQndCQCivQk9Cg0KPQkdCe0KAg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQkdCe0KAg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQkdCe0KAg0J7Qm9CT0JAKK9CT0KDQo9CR0J7QoCDQoNCQ0JTQlQor0JPQoNCj0JHQntCgINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQo9CR0J7QoCDQodCg0JXQotCeCivQk9Cg0KPQkdCe0KAg0JLQo9CI0J4KK9CT0KDQo9CR0J7QoCDQl9CU0KDQkNCS0JrQngor0JPQoNCj0JHQntCg0J7QktCY0Isg0JzQmNCb0JUKK9CT0KDQo9CR0J7QktCY0Isg0JjQm9CY0IjQkAor0JPQoNCj0JXQodCa0KMt0IvQmNCg0JjQqNCQ0J0g0JTQldCb0JjQiNCQCivQk9Cg0KPQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQk9Cg0KPQmNCaINCS0JXQoNCe0J3QmNCa0JAKK9CT0KDQo9CI0KfQmNCLINCd0JjQmtCe0JvQkAor0JPQoNCj0IjQkNCd0JDQpiDQnNCY0JvQkNCdCivQk9Cg0KPQiNCV0JIg0J7Qk9CK0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0KDQo9CI0JjQpyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0KPQiNCY0KfQmNCLINCR0JjQidCQ0J3QkAor0JPQoNCj0IjQmNCn0JjQiyDQiNCe0JLQkAor0JPQoNCj0IjQmNCn0JjQiyDQnNCQ0KDQmNCd0JrQngor0JPQoNCj0IjQmNCn0JjQiyDQnNCY0JAKK9CT0KDQo9CI0JjQp9CY0Isg0JzQmNCb0JjQptCQCivQk9Cg0KPQiNCY0KfQmNCLINCc0JjQm9Ce0IjQlQor0JPQoNCj0IjQmNCn0JjQiyDQndCV0J3QkNCUCivQk9Cg0KPQiNCY0KfQmNCLINCf0JXQotCQ0KAKK9CT0KDQo9CI0JjQp9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CT0KDQo9CI0JjQp9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CT0KDQo9CI0JjQp9CY0J0g0KHQotCQ0J3QntCI0JUKK9CT0KDQo9CI0JjQp9Ca0J7QkiDQiNCe0JLQkNCdCivQk9Cg0KPQiNCY0KfQmtCe0JIg0JzQmNCb0JrQkAor0JPQoNCj0IjQmNCLINCW0JjQktCa0JAKK9CT0KDQo9CI0JjQiyDQltCY0JLQntCg0JDQlAor0JPQoNCj0IjQmNCLINCC0JXQndCQCivQk9Cg0KPQiNCY0Isg0ILQldCd0JjQodCY0IjQlQor0JPQoNCj0IjQmNCLINCC0J7QoNCC0JUKK9CT0KDQo9CI0JjQiyDQgtCj0KDQgtCY0KbQkAor0JPQoNCj0IjQmNCLINCC0KPQoNCQCivQk9Cg0KPQiNCY0Isg0ILQo9Cg0JAKK9CT0KDQo9CI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0KDQo9CI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JDQndCC0JXQm9Ca0J4KK9CT0KDQo9CI0JjQiyDQkNCd0JTQoNCY0IjQkAor0JPQoNCj0IjQmNCLINCQ0J3QmNCm0JAKK9CT0KDQo9CI0JjQiyDQkdCe0JbQmNCU0JDQoAor0JPQoNCj0IjQmNCLINCR0J7QltCY0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JPQoNCj0IjQmNCLINCR0J7QoNCY0JLQntCICivQk9Cg0KPQiNCY0Isg0JHQntCh0JjQidCa0JAKK9CT0KDQo9CI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KDQo9CI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KDQo9CI0JjQiyDQkdCg0JDQndCa0J4KK9CT0KDQo9CI0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQk9Cg0KPQiNCY0Isg0KbQktCY0IjQngor0JPQoNCj0IjQmNCLINCU0JDQndCY0KbQkAor0JPQoNCj0IjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQoNCj0IjQmNCLINCU0KDQkNCT0JjQptCQCivQk9Cg0KPQiNCY0Isg0JTQo9Co0JDQnQor0JPQoNCj0IjQmNCLINCU0KPQqNCQ0J0KK9CT0KDQo9CI0JjQiyDQlNCj0KjQkNCdCivQk9Cg0KPQiNCY0Isg0KTQoNCQ0J3QptCY0KjQmtCQCivQk9Cg0KPQiNCY0Isg0JPQkNCS0KDQkAor0JPQoNCj0IjQmNCLINCT0JDQktCg0JjQm9CeCivQk9Cg0KPQiNCY0Isg0JPQntCg0JDQnQor0JPQoNCj0IjQmNCLINCT0J7QoNCY0KbQkAor0JPQoNCj0IjQmNCLINCT0KDQo9CI0JAKK9CT0KDQo9CI0JjQiyDQmNCb0JjQndCa0JAKK9CT0KDQo9CI0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0KDQo9CI0JjQiyDQmNCS0JDQndCa0JAKK9CT0KDQo9CI0JjQiyDQiNCQ0IrQkAor0JPQoNCj0IjQmNCLINCI0JXQm9CY0KbQkAor0JPQoNCj0IjQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQk9Cg0KPQiNCY0Isg0IjQldCb0JrQkCDQlNCgCivQk9Cg0KPQiNCY0Isg0IjQntCS0JDQndCa0JAKK9CT0KDQo9CI0JjQiyDQiNCe0JLQkNCd0JrQkAor0JPQoNCj0IjQmNCLINCI0J7QktCQ0J0KK9CT0KDQo9CI0JjQiyDQiNCe0JLQkNCdCivQk9Cg0KPQiNCY0Isg0IjQntCS0JDQnQor0JPQoNCj0IjQmNCLINCI0J7QktCQ0J0KK9CT0KDQo9CI0JjQiyDQiNCe0JLQmNCm0JAKK9CT0KDQo9CI0JjQiyDQiNCj0JvQmtCQCivQk9Cg0KPQiNCY0Isg0JrQntCh0KLQkCDQlNCgCivQk9Cg0KPQiNCY0Isg0JrQntCh0KLQkCDQlNCgCivQk9Cg0KPQiNCY0Isg0JvQkNCX0JDQoAor0JPQoNCj0IjQmNCLINCb0JXQndCa0JAKK9CT0KDQo9CI0JjQiyDQidCY0InQkNCd0JAKK9CT0KDQo9CI0JjQiyDQidCj0JHQmNCm0JAKK9CT0KDQo9CI0JjQiyDQidCj0JHQntCc0JjQoAor0JPQoNCj0IjQmNCLINCJ0KPQkdCeCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQndCQCivQk9Cg0KPQiNCY0Isg0JzQmNCl0JDQiNCb0J4KK9CT0KDQo9CI0JjQiyDQnNCY0JvQkNCdCivQk9Cg0KPQiNCY0Isg0JzQmNCb0JDQnQor0JPQoNCj0IjQmNCLINCc0JjQm9CQ0J0KK9CT0KDQo9CI0JjQiyDQnNCY0JvQldCd0JAKK9CT0KDQo9CI0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCj0IjQmNCLINCc0JjQm9CVCivQk9Cg0KPQiNCY0Isg0JzQmNCb0JjQptCQCivQk9Cg0KPQiNCY0Isg0JzQmNCb0J7QqAor0JPQoNCj0IjQmNCLINCc0JjQm9Ce0KgKK9CT0KDQo9CI0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQoNCj0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0KPQiNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0KDQo9CI0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JPQoNCj0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KDQo9CI0JjQiyDQnNCY0KLQkNCgCivQk9Cg0KPQiNCY0Isg0J3QkNCU0JAg0JTQoCDQm9CV0JrQkNCgCivQk9Cg0KPQiNCY0Isg0J3QkNCU0JAKK9CT0KDQo9CI0JjQiyDQndCQ0JTQkAor0JPQoNCj0IjQmNCLINCd0JXQlNCV0InQmtCeCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QntCS0JDQmgor0JPQoNCj0IjQmNCLINCf0JDQktCb0JUKK9CT0KDQo9CI0JjQiyDQn9CV0KLQkNCgCivQk9Cg0KPQiNCY0Isg0KDQkNCU0JXQndCa0J4KK9CT0KDQo9CI0JjQiyDQoNCQ0JTQlQor0JPQoNCj0IjQmNCLINCg0JDQlNCY0KjQkAor0JPQoNCj0IjQmNCLINCg0JDQlNCY0J3QmtCQCivQk9Cg0KPQiNCY0Isg0KDQkNCU0JjQktCe0IgKK9CT0KDQo9CI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JPQoNCj0IjQmNCLINCg0JDQlNCc0JjQm9CQCivQk9Cg0KPQiNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JPQoNCj0IjQmNCLINCg0JDQlNCe0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KDQo9CW0JjQptCQCivQk9Cg0KPQiNCY0Isg0KHQkNCK0JAKK9CT0KDQo9CI0JjQiyDQodCQ0JLQkAor0JPQoNCj0IjQmNCLINCh0JDQktCQCivQk9Cg0KPQiNCY0Isg0KHQmNCd0JjQqNCQCivQk9Cg0KPQiNCY0Isg0KHQm9CQ0JLQmNCo0JAKK9CT0KDQo9CI0JjQiyDQodCb0JDQktCY0KbQkAor0JPQoNCj0IjQmNCLINCh0JvQkNCS0JrQkAor0JPQoNCj0IjQmNCLINCh0JvQkNCS0JrQngor0JPQoNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQk9Cg0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQo9CI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCj0IjQmNCLINCh0JzQmNCJ0JDQndCQCivQk9Cg0KPQiNCY0Isg0KHQnNCY0InQkAor0JPQoNCj0IjQmNCLINCh0JzQmNCJ0JAKK9CT0KDQo9CI0JjQiyDQodCg0ILQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCe0IjQkNCdINCU0KAKK9CT0KDQo9CI0JjQiyDQodCS0JXQotCe0JfQkNCgCivQk9Cg0KPQiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JPQoNCj0IjQmNCLINCi0JDQotCI0JDQndCQCivQk9Cg0KPQiNCY0Isg0JLQldCb0JjQnNCY0KAKK9CT0KDQo9CI0JjQiyDQktCV0KDQmNCm0JAKK9CT0KDQo9CI0JjQiyDQktCV0KHQldCb0JjQnQor0JPQoNCj0IjQmNCLINCS0JXQodCd0JAKK9CT0KDQo9CI0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQk9Cg0KPQiNCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0KDQo9CI0JjQiyDQl9Cb0JDQotCY0KbQkAor0JPQoNCj0IjQmNCLINCX0JvQkNCi0JjQptCQCivQk9Cg0KPQiNCY0J0g0JTQkNCd0JjQptCQCivQk9Cg0KPQiNCY0J0g0JTQo9Co0JDQnQor0JPQoNCj0IjQmNCdINCJ0KPQkdCY0KbQkAor0JPQoNCj0IjQmNCdINCc0JjQm9CQ0J0KK9CT0KDQo9CI0JjQnSDQnNCY0JvQntCoCivQk9Cg0KPQiNCY0J0g0J3QkNCU0JAKK9CT0KDQo9CI0JjQnSDQntCb0JPQkAor0JPQoNCj0IjQmNCdINCf0JXQotCQ0KAKK9CT0KDQo9CI0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQk9Cg0KPQiNCY0J0g0KHQkNCo0JAKK9CT0KDQo9CI0JjQnSDQodCc0JjQidCQCivQk9Cg0KPQiNCY0J0g0KHQn9CQ0KHQntCI0JUKK9CT0KDQo9CI0JjQnSDQotCV0KDQldCX0JAKK9CT0KDQo9CI0JjQnSDQl9Ce0KDQkNCdCivQk9Cg0KPQiNCY0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQk9Cg0KPQiNCY0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQk9Cg0KPQiNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JPQoNCj0IjQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JPQoNCj0IjQntCS0KHQmtCYINCb0JDQl9CQ0KAKK9CT0KDQo9Cb0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9CT0KDQo9Cb0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQk9Cg0KPQm9Ce0JLQmNCLINCX0JTQoNCQ0JLQmtCQCivQk9Cg0KPQm9Ce0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9Cg0KPQndCn0JjQiyDQiNCe0JLQkNCdCivQk9Cg0KPQndCY0Jog0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQk9Cj0KjQkCDQndCY0JrQntCb0JAKK9CT0KPQqNCQINCf0KDQldCU0KDQkNCTCivQk9Cj0KjQkNCS0JDQpiDQl9Ce0KDQkNCdCivQk9Cj0KjQmNCLINCR0J7Qk9CU0JDQnQor0JPQo9Co0JjQiyDQkdCe0KDQmNChCivQk9Cj0KjQmNCLINCc0JDQndCe0IjQm9CeCivQk9Cj0KjQmNCLINCc0JDQndCe0IjQm9CeCivQk9Cj0KjQmNCLINCc0JjQm9CV0J3QmtCQCivQk9Cj0KjQmNCLINCg0JDQlNCV0J3QmtCeCivQk9Cj0KjQmNCLINCg0JDQlNCV0J3QmtCeCivQk9Cj0KjQmNCLINCj0JPQidCV0KjQkAor0JPQo9Co0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JPQo9CW0JDQm9CY0Isg0JzQkNCg0JjQiNCQCivQk9Cj0JbQkNCb0JjQiyDQodCi0IjQldCf0JDQnQor0JPQo9CW0JDQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JPQo9CW0JDQm9CY0Isg0JfQktCe0J3QmNCc0JjQoAor0JPQo9CW0JXQm9CQINCb0JDQodCb0J4KK9CT0KPQltCS0JDQiiDQmNCS0JjQptCQCivQk9Cj0JbQktCY0KbQkCDQgtCe0KDQgtCVCivQk9Cj0JbQktCY0KbQkCDQgtCe0KDQgtCVCivQk9Cj0JbQktCY0KbQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KPQltCS0JjQptCQINCc0JjQm9CQ0J0KK9CT0KPQltCS0JjQptCQINCc0JjQm9CQ0J0KK9CT0KPQltCS0JjQptCQINCc0JjQoNCa0J4KK9CT0KPQltCS0JjQptCQINCd0JjQmtCe0JvQkAor0JPQo9CW0JLQmNCm0JAg0KHQotCV0JLQngor0JPQo9CW0JLQmNCm0JAg0JfQntCg0JDQnQor0JPQo9CR0JDQqCDQkNCd0ILQldCb0JjQiNCQCivQk9Cj0JHQkNCoINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KPQkdCQ0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JPQo9CR0JDQqCDQl9CQ0JPQntCg0JrQkAor0JPQo9CR0JDQndCU0JAg0JHQkNCg0JHQkNCg0JAKK9CT0KPQkdCQ0J3QlNCQINCb0JDQlNCY0KHQm9CQ0JIKK9CT0KPQkdCV0KDQmNCd0JAg0JTQo9Co0JDQnQor0JPQo9CR0JXQoNCY0J3QkCDQodCb0J7QkdCe0JTQkNCdCivQk9Cj0JHQldCg0JjQndCY0Isg0InQo9CR0JjQptCQCivQk9Cj0JHQldCg0J3QntCSINCI0KPQm9CY0IjQkNCd0JAKK9CT0KPQkdCY0Isg0JzQmNCg0JrQngor0JPQo9CR0JjQptCQINCI0J7QktCQ0J0KK9CT0KPQkdCY0Jog0KjQkNCd0JTQntCgCivQk9Cj0JHQmNCaINCo0JDQndCU0J7QoAor0JPQo9CR0JjQmiDQmtCQ0KDQm9CeCivQk9Cj0JHQmNCaINCa0JDQotCQ0KDQmNCd0JAKK9CT0KPQkdCY0Jog0KHQotCV0JLQkNCdCivQk9Cj0KYg0KHQotCV0JLQkNCdCivQk9Cj0KbQmNCI0JDQnSDQodCi0JXQktCQCivQk9Cj0KbQoyDQnNCY0KDQiNCQ0J3QkAor0JPQo9Cm0KPQiSDQiNCV0JvQldCd0JAKK9CT0KPQptCj0Ikg0JzQkNCg0JPQmNCi0JAKK9CT0KPQptCj0Ikg0JLQldCg0JAKK9CT0KPQptCj0IrQkCDQiNCe0JLQkNCdCivQk9Cj0KbQo9CK0JAg0JzQmNCb0JDQnQor0JPQo9Cm0KPQitCQINCc0JjQm9Ce0KDQkNCUCivQk9Cj0KbQo9CK0JAg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQptCj0J3QodCa0Jgg0JbQmNCS0JrQkAor0JPQo9Cm0KPQndCh0JrQmCDQgtCe0KDQgtCVCivQk9Cj0KbQo9Cd0KHQmtCYINCR0J7QltCY0JTQkNCgCivQk9Cj0KbQo9Cd0KHQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9CT0KPQptCj0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cj0KbQo9Cd0KHQmtCYINCY0JLQkNCd0JrQkAor0JPQo9Cm0KPQndCh0JrQmCDQmNCS0JDQndCa0JAKK9CT0KPQptCj0J3QodCa0Jgg0IjQldCb0JXQndCQCivQk9Cj0KbQo9Cd0KHQmtCYINCI0J7QktCQ0J0KK9CT0KPQptCj0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQk9Cj0KbQo9Cd0KHQmtCYINCd0JDQlNCQCivQk9Cj0KbQo9Cd0KHQmtCYINCf0JXQoNCh0JjQlNCQCivQk9Cj0KbQo9Cd0KHQmtCYINCg0JDQlNCVCivQk9Cj0KbQo9Cd0KHQmtCYINCh0JjQnNCQCivQk9Cj0JTQkNCJINCc0JDQoNCi0JAKK9CT0KPQlNCQ0JvQntCS0JjQiyDQnNCe0JzQmNCgCivQk9Cj0JTQkNCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CT0KPQlNCV0Ikg0ILQntCg0ILQlQor0JPQo9CU0JXQiSDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQk9Cj0JTQldCJINCI0J7QktCQ0J0KK9CT0KPQlNCV0Ikg0JzQkNCg0JjQiNCQCivQk9Cj0JTQldCJINCc0JjQm9CQ0J0KK9CT0KPQlNCV0Ikg0JzQmNCb0JXQndCQCivQk9Cj0JTQldCJINCc0J7QnNCn0JjQm9CeCivQk9Cj0JTQldCJINCd0JXQlNCV0InQmtCQCivQk9Cj0JTQldCJINCh0JDQktCQINCU0KAKK9CT0KPQlNCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CT0KPQlNCe0JLQmNCLINCf0JDQktCb0JUKK9CT0KPQlNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQk9Cj0JTQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CT0KPQlNCj0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cj0JTQo9Cg0JjQiyDQkNCd0ILQldCb0JrQkCDQlNCgCivQk9Cj0JTQo9Cg0JjQiyDQkdCg0JDQndCY0JzQmNCgINCU0KAKK9CT0KPQlNCj0KDQmNCLINCU0JXQiNCQ0J0KK9CT0KPQlNCj0KDQmNCLINCI0J7QktCQ0J0KK9CT0KPQlNCj0KDQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JPQo9CU0KPQoNCY0Isg0JLQkNCh0JAKK9CT0KPQlNCj0KDQmNCLINCX0J7QoNCQ0J0KK9CT0KPQldCb0JzQmNCd0J4g0KjQkNCd0JTQntCgCivQk9Cj0JXQm9Cc0JjQndCeINCk0KDQmNCC0JXQqAor0JPQo9CT0JAg0JLQldCg0JAKK9CT0KPQk9CQINCS0JXQoNCQCivQk9Cj0JPQmNCLINCh0JjQndCY0KjQkAor0JPQo9CT0JvQldCi0JAg0KHQoNCR0JjQodCb0JDQkgor0JPQo9Ca0J7QlNCYINCc0JvQkNCU0JXQnQor0JPQo9Cb0JDQp9CYINCI0J7QodCY0J8KK9CT0KPQm9CQ0IvQmCDQidCj0JHQmNCd0JrQkAor0JPQo9Cb0JDQnSDQkdCe0KjQmtCeCivQk9Cj0JvQkNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JPQo9Cb0JDQnSDQktCY0JTQntCh0JDQktCQCivQk9Cj0JvQlCDQktCQ0JvQldCg0JjQiNCQCivQk9Cj0JvQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JPQo9Cb0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CT0KPQm9CV0JLQodCa0Jgg0JTQmNCc0KfQlQor0JPQo9Cb0JXQktCh0JrQmCDQlNCY0JzQp9CVCivQk9Cj0JvQldCS0KHQmtCYINCU0JjQnNCn0JUKK9CT0KPQm9CV0JLQodCa0Jgg0JTQmNCc0KfQlQor0JPQo9Cb0JXQktCh0JrQmCDQlNCY0JzQp9CVCivQk9Cj0JvQldCS0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQk9Cj0JvQldCS0KHQmtCYINCh0JDQqNCQCivQk9Cj0JvQmNCnINCY0JzQoNCVCivQk9Cj0JvQmNCLINCh0KLQkNCd0JrQngor0JPQo9Cb0JjQiyDQktCV0KHQndCQCivQk9Cj0JvQmNCdINCc0JDQoNCY0KbQkAor0JPQo9Cb0JjQnSDQl9Cb0JDQotCa0J4KK9CT0KPQidCQ0Kgg0JzQkNCg0JjQiNCQCivQk9Cj0InQkNCoINCi0JXQoNCV0JfQmNCI0JAKK9CT0KPQidCQ0Kgg0JLQldCh0J3QkAor0JPQo9CJ0J/QkCDQnNCY0JvQkNCdCivQk9Cj0InQn9CQINCh0JDQktCQCivQk9Cj0J3QldCaINCc0JDQoNCY0IjQkAor0JPQo9Cd0JXQmiDQnNCQ0KLQlQor0JPQo9Cd0JXQmiDQotCe0JzQkAor0JPQo9Cd0JjQiyDQnNCY0JvQldCd0JAKK9CT0KPQitCV0JLQmNCLINCc0JjQm9CVCivQk9Cj0IrQldCS0JjQiyDQndCV0JLQldCd0JrQkAor0JPQo9Cg0JDQnSDQotCQ0JzQkNCoCivQk9Cj0KDQiNCQ0J3QntCSINCW0JDQoNCa0J4KK9CT0KPQoNCI0JDQndCe0JIg0JHQm9CQ0JPQntCI0JUKK9CT0KPQoNCI0JDQndCe0JIg0IjQldCb0JjQptCQCivQk9Cj0KDQiNCQ0J3QntCSINCS0JDQodCQCivQk9Cj0KDQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JPQo9Ch0JjQiyDQnNCY0JvQldCS0JAKK9CT0KPQodCc0JDQnSDQgtCe0KDQgtCVINCU0KAg0JvQldCa0JDQoAor0JPQo9Ch0JzQkNCdINCU0KDQkNCT0JjQptCQCivQk9Cj0KHQnNCQ0J0g0JPQldCg0KXQkNCg0JQKK9CT0KPQodCc0JDQnSDQpdCY0JvQlNCQCivQk9Cj0KHQnNCQ0J0g0JjQnNCg0JUKK9CT0KPQoiDQiNCQ0J3QmtCeCivQk9Cj0KIg0IjQntCS0JDQnQor0JPQo9CiINCd0JDQotCQ0JvQmNCI0JAKK9CT0KPQotCQ0Jgg0IjQntCb0JDQnQor0JPQo9Ci0JDQmCDQnNCY0KXQkNCJCivQk9Cj0KLQkNCI0Jgg0JjQm9CV0KgKK9CT0KPQotCQ0Ikg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQotCV0KjQkCDQgtCj0KDQngor0JPQo9Ci0JXQqNCQINCc0JjQoNCa0J4KK9CT0KPQotCV0KjQkCDQndCY0JrQntCb0JAKK9CT0KPQotCV0KjQkCDQktCe0IjQmNCh0JvQkNCSCivQk9Cj0KLQmCDQltCe0JvQogor0JPQo9Ci0JjQiyDQqNCf0JjQoNCeCivQk9Cj0KLQmNCLINCT0J7QoNCQ0J0KK9CT0KPQotCc0JDQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQo9Ci0JzQkNCdINCU0JDQoNCY0J3QmtCeCivQk9Cj0KLQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0JPQo9Ci0J7QktCY0Isg0JTQkNCd0JjQldCb0JAKK9CT0KPQotCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cj0KLQntCS0JjQiyDQoNCQ0JTQlQor0JPQo9Ci0J7QktCY0Isg0KDQmNCh0KLQngor0JPQo9Ci0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQk9Cj0KLQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JPQo9Ci0J7QktCY0Isg0JfQntCg0JDQnQor0JPQo9Ci0JLQkNCI0J0g0JDQlNCQ0JwKK9CT0KPQotCS0JDQiNCdINCQ0JTQkNCcCivQk9Cj0KLQktCQ0IjQnSDQldCb0JjQl9CQ0JHQldCi0JAKK9CT0KPQotCS0JDQiNCdINCV0JLQkAor0JPQo9CX0JjQiNCQ0J0g0IjQntCS0J4KK9CT0KPQl9CY0IjQkNCdINCc0JjQm9CQ0J0KK9CT0KPQl9CY0IjQkNCdINCd0JjQmtCe0JvQkAor0JPQo9CX0JjQndCQINCn0JXQlNCe0JzQmNCgCivQk9Cj0JfQmNCd0JAg0InQo9CR0JjQodCQ0JIKK9CT0KPQl9CY0J3QkCDQnNCY0KXQkNCI0JvQngor0JPQo9CX0JjQndCQINCc0JjQm9Ce0KDQkNCUCivQk9Cj0JfQmNCd0JAg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQl9CY0J3QkCDQnNCY0JvQntCh0JDQkiDQlNCgCivQk9Cj0JfQmNCd0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JPQo9CX0JjQndCQINCS0J7QiNCY0KHQm9CQ0JIKK9CT0KPQl9CY0J3QkCDQktCj0JrQkNCo0JjQnQor0JPQktCV0KDQmNCLINCR0J7QoNCY0JLQntCICivQk9CS0JXQoNCY0Isg0KHQndCV0JbQkNCd0JAKK9CT0JLQldCg0J4g0JvQkNCX0J4KK9CT0JLQldCg0J4g0JzQmNCg0JAKK9CT0JLQntCW0ILQkNCdINCR0J7QoNCY0KHQm9CQ0JLQkAor0JPQktCe0JbQgtCQ0J0g0JzQmNCl0JDQiNCb0J4KK9CT0JLQntCW0ILQkNCdINCg0JDQlNCe0JLQkNCdCivQk9CS0J7QmNCLINCR0KDQkNCd0JrQngor0JPQktCe0JjQiyDQnNCY0JvQkNCdCivQk9CS0J7QmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CT0JLQntCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQk9CS0J7QiNCY0Isg0JzQmNCb0JDQnQor0JPQktCe0IjQmNCLINCh0KLQkNCd0JrQngor0JPQktCe0IjQmNCLINCh0KLQldCS0JDQnQor0JPQktCe0JrQkCDQndCQ0JTQkAor0JPQktCe0JfQlNCV0J0g0JHQntCh0JjQidCa0JAKK9CT0JLQntCX0JTQldCdINCR0KDQkNCd0JrQngor0JPQktCe0JfQlNCV0J0g0KHQoNCV0KLQngor0JPQktCe0JfQlNCV0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JPQktCe0JfQlNCV0J3QkNCmINCW0JjQktCa0J4KK9CT0JLQntCX0JTQldCd0JDQpiDQkdCe0KDQkAor0JPQktCe0JfQlNCV0J3QkNCmINCR0J7QoNCQCivQk9CS0J7Ql9CU0JXQndCQ0KYg0JHQntCg0JrQkAor0JPQktCe0JfQlNCV0J3QkNCmINCU0KDQkNCT0J7QidCj0JEKK9CT0JLQntCX0JTQldCd0JDQpiDQlNCj0KjQkNCdCivQk9CS0J7Ql9CU0JXQndCQ0KYg0KDQkNCI0JrQngor0JPQktCe0JfQlNCV0J3QkNCmINCh0J3QldCW0JDQndCQCivQk9CS0J7Ql9CU0JXQndCe0JIg0IjQntCS0JDQnQor0JPQktCe0JfQlNCV0J3QntCSINCc0JjQm9CQ0J0KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0ILQntCg0ILQlQor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQgtCj0KDQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQkdCe0JbQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCJ0KPQkdCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCc0JjQi9CeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCg0JDQiNCa0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0KDQkNCI0JrQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQodCi0JXQktCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLLdCi0J7QlNCe0KDQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiy3QotCe0JTQntCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JLQmNCU0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQktCb0JDQlNCQCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JPQktCe0JfQlNCY0Isg0ILQntCg0ILQlQor0JPQktCe0JfQlNCY0Isg0JzQmNCb0JDQnQor0KXQkNCo0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Cl0JDQqNCe0JLQmNCLINCY0JzQoNCVCivQpdCQ0ILQmNCd0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cl0JDQkdCQ0Kgg0JfQntCg0JDQnQor0KXQkNCR0JDQiNCV0KYg0InQo9CR0JjQptCQCivQpdCQ0JHQldCaINCW0JXQidCa0J4KK9Cl0JDQkdCV0J3QqNCj0KEg0JzQmNCb0JXQndCa0J4KK9Cl0JDQkdCV0J3QqNCj0KEg0JzQmNCb0JXQndCa0J4KK9Cl0JDQkdCY0IjQkNCdINCk0KDQkNCK0JAKK9Cl0JDQkdCY0IjQkNCdINCS0JXQodCd0JAKK9Cl0JDQkdCY0IjQkNCd0JXQpiDQotCY0KXQntCc0JjQoAor0KXQkNCR0J7QoCDQiNCQ0J0KK9Cl0JDQkdCg0JDQnCDQkNCg0JDQndCa0JAKK9Cl0JDQkdCg0JDQnCDQmtCQ0KDQntCJCivQpdCQ0JHQo9CU0JAg0IjQntCh0JjQnwor0KXQkNCR0KPQlNCQINCS0JDQm9CV0J3QotCY0J0KK9Cl0JDQptCe0J/Qo9Cb0J7QoSDQgtCe0KDQgtCVCivQpdCQ0KbQntCf0KPQm9Ce0KEg0J3QkNCU0JAKK9Cl0JDQj9CYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCQ0I/QmCDQmtCe0KHQotCQINCQ0JTQktCe0JrQkNCiCivQpdCQ0I/QmC3QnNCQ0J3QntCSINCJ0KPQn9Cn0J4KK9Cl0JDQj9CYLdCf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cl0JDQj9CYINCg0JDQnNCQ0JTQkNCdCivQpdCQ0I/QmNCLINCR0J7QodCY0InQmtCQCivQpdCQ0I/QmNCLINCT0J7QoNCQ0J3QmtCQCivQpdCQ0I/QmNCLINCY0JHQoNCQ0KXQmNCcCivQpdCQ0I/QmNCLINCY0KHQnNCV0KIKK9Cl0JDQj9CY0Isg0JvQkNCX0JDQoAor0KXQkNCP0JjQiyDQm9CQ0JfQkNCgCivQpdCQ0I/QmNCLINCc0JjQm9CQ0J0g0JTQoAor0KXQkNCP0JjQiyDQnNCY0JvQldCS0JAKK9Cl0JDQj9CY0Isg0JzQntCd0JjQmtCQCivQpdCQ0I/QmNCLINCc0KPQpdCQ0KDQldCcCivQpdCQ0I/QmNCLINCd0JDQlNCQCivQpdCQ0I/QmNCLINCe0JvQk9CQINCU0KAKK9Cl0JDQj9CY0Isg0J/QkNCS0JvQlQor0KXQkNCP0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KXQkNCP0JjQiyDQodCb0JDQktCj0IgKK9Cl0JDQj9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KXQkNCP0JjQkNCl0JzQldCi0J7QktCY0Isg0KDQkNCh0JjQnAor0KXQkNCP0JjQkNCg0KHQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KXQkNCP0JjQkdCQ0JHQmNCLINCU0KDQkNCT0JDQnQor0KXQkNCP0JjQkdCQ0JHQmNCLINCg0JDQlNCe0JzQmNCgCivQpdCQ0I/QmNCR0JDQkdCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cl0JDQj9CY0JHQkNCR0JjQiyDQl9Ce0KDQmNCm0JAKK9Cl0JDQj9CY0KXQkNCh0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQpdCQ0I/QmNCS0KPQmtCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgINCf0KDQntCkCivQpdCQ0I/QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQkNCP0J7QktCY0Isg0KDQkNCi0JrQngor0KXQkNCU0JDQlNCYINCh0JzQmNCJ0JAKK9Cl0JDQlNCY0Jog0JDQlNCg0JjQldCdCivQpdCQ0JTQmNCaINCI0J7QltCV0KQKK9Cl0JDQlNCd0JDQgiDQk9CY0JfQldCb0JAKK9Cl0JDQlNCd0JDQgiDQotCV0KDQldCX0JAKK9Cl0JDQlNCd0JDQgiDQktCV0KDQkAor0KXQkNCU0J3QkNCCINCS0JXQoNCe0J3QmNCa0JAKK9Cl0JDQlNCd0JDQgtCV0JIg0JDQoNCh0JXQnQor0KXQkNCU0J3QkNCC0JXQkiDQlNCj0KjQkNCdINCU0KAKK9Cl0JDQlNCd0JDQgtCV0JIg0JTQo9Co0JDQnQor0KXQkNCU0J3QkNCC0JXQkiDQmNCh0JjQlNCe0KAKK9Cl0JDQlNCd0JDQgtCV0JIg0JzQmNCe0JTQoNCQ0JMKK9Cl0JDQlNCd0JDQgtCV0JIg0JzQmNCg0JrQngor0KXQkNCU0J3QkNCC0JXQkiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cl0JDQlNCd0JDQgtCV0JIg0KHQotCV0JLQkNCdCivQpdCQ0JTQndCQ0ILQldCSINCh0KLQntCI0JDQnQor0KXQkNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQpdCQ0JjQnSDQl9Ce0KDQmNCm0JAKK9Cl0JDQiNCn0KPQndCaINCI0J7QltCV0KQKK9Cl0JDQiNCn0KPQndCaINCc0JjQoNCa0J4KK9Cl0JDQiNCQ0Kgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cl0JDQiNCU0JDQoNCV0JLQmNCLINCe0KDQpdCQ0J0KK9Cl0JDQiNCU0JDQoNCf0JDQqNCY0Isg0JXQodCQ0JQKK9Cl0JDQiNCU0JXQoCDQgtCe0KDQgtCVCivQpdCQ0IjQlNCV0KAg0JTQoNCQ0JPQkNCdCivQpdCQ0IjQlNCV0KAg0JvQo9Ca0JAKK9Cl0JDQiNCU0JXQoCDQnNCQ0KDQmNCm0JAKK9Cl0JDQiNCU0JXQoCDQnNCQ0KDQmtCeCivQpdCQ0IjQlNCV0KAg0JzQmNCb0J7QqAor0KXQkNCI0JTQldCgINCg0JDQlNCVCivQpdCQ0IjQlNCV0KAg0KDQkNCI0JrQngor0KXQkNCI0JTQldCgINCh0KLQntCI0JDQndCa0JAKK9Cl0JDQiNCU0JXQoCDQktCV0KHQndCQCivQpdCQ0IjQlNCV0KAg0JfQntCg0JDQnQor0KXQkNCI0JTQmNCLINCQ0J3QgtCV0JvQmtCeCivQpdCQ0IjQlNCY0J0g0JHQntCT0JTQkNCdCivQpdCQ0IjQlNCY0J0g0KHQm9CQ0JLQmtCeCivQpdCQ0IjQlNCjINCQ0J3QkAor0KXQkNCI0JTQoyDQkNCd0JTQoNCY0IjQkAor0KXQkNCI0JTQoyDQkNCd0KLQkNCbCivQpdCQ0IjQlNCjINCk0JXQoNCV0J3Qpgor0KXQkNCI0JTQoy3Qk9Cg0JDQiNCb0JDQpSDQldCc0JAKK9Cl0JDQiNCU0KMg0JjQm9Ce0J3QmtCQCivQpdCQ0IjQlNCjINCY0KDQldCd0JAKK9Cl0JDQiNCU0KMg0IjQntCW0JXQpAor0KXQkNCI0JTQoyDQiNCe0JvQmNCa0JAKK9Cl0JDQiNCU0KMg0IjQntCh0JjQnwor0KXQkNCI0JTQoyDQmtCQ0KLQmNCm0JAKK9Cl0JDQiNCU0KMg0JrQm9CQ0KDQkAor0KXQkNCI0JTQoyDQm9CQ0IjQntCoCivQpdCQ0IjQlNCjINCb0JDQodCb0J4KK9Cl0JDQiNCU0KMg0InQo9CU0JXQktCY0KIKK9Cl0JDQiNCU0KMg0JzQkNCg0JjQiNCQCivQpdCQ0IjQlNCjINCe0KLQngor0KXQkNCI0JTQoyDQn9CQ0JLQm9CVCivQpdCQ0IjQlNCjINCh0KLQldCS0JDQnQor0KXQkNCI0JTQo9CaINCC0J7QoNCC0JUKK9Cl0JDQiNCU0KPQmiDQmNCg0JjQndCQCivQpdCQ0IjQlNCj0Jog0IjQkNCd0JrQngor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JDQoNCh0JXQnQor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JHQntCo0JrQngor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JHQntCT0JTQkNCdCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQntCi0J4KK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQodCc0JjQidCQCivQpdCQ0IjQndCQ0Jsg0JDQndCi0JDQmwor0KXQkNCI0J3QkNCbINCT0JDQkdCg0JjQiNCV0JvQkAor0KXQkNCI0J3QkNCbINCY0JLQkNCdCivQpdCQ0IjQndCQ0Jsg0JvQkNCh0JvQngor0KXQkNCI0J3QkNCbINCJ0KPQkdCY0KbQkAor0KXQkNCI0J3QkNCbINCc0JDQoNCY0IjQkAor0KXQkNCI0J3QkNCbINCd0JjQmtCe0JvQkAor0KXQkNCI0J3QpiDQgtCe0KDQgtCVCivQpdCQ0IjQndCmINCI0J7QodCY0J8KK9Cl0JDQiNCd0KYg0IjQntCS0JDQnQor0KXQkNCI0J3QpiDQl9Cb0JDQotCQCivQpdCQ0IjQotCk0J7Qk9CV0Jsg0JLQm9CQ0JTQkAor0KXQkNCI0KLQpNCe0JPQldCbINCS0JvQkNCU0JjQodCb0JDQkgor0KXQkNCI0KLQmyDQmNCS0JDQnQor0KXQkNCI0JLQkNCXINCg0JDQiNCa0J4KK9Cl0JDQiNCX0JvQldCgINCC0J7QoNCC0JUKK9Cl0JDQiNCX0JvQldCgINCU0KPQqNCQ0J0KK9Cl0JDQiNCX0JvQldCgINCI0J7QktCQ0J0KK9Cl0JDQmtCQ0Kcg0JzQkNCi0JjQiNCQCivQpdCQ0JrQldCgINCY0JLQkNCdCivQpdCQ0JrQldCgINCi0JXQoNCV0JfQkAor0KXQkNCb0JDQqCDQl9Cj0JfQkNCd0JAKK9Cl0JDQm9CQ0KjQmCDQgtCe0KDQgtCVCivQpdCQ0JvQkNCo0Jgg0JXQotCV0JvQmtCQCivQpdCQ0JvQkNCo0Jgt0JrQmNCoINCk0KDQkNCd0JrQkAor0KXQkNCb0JDQqNCYINCg0KPQltCQINCU0KAg0JjQndCTCivQpdCQ0JvQkNCYINCY0JzQoNCVCivQpdCQ0JvQkNCYINCc0JDQoNCY0IjQkAor0KXQkNCb0JDQmCDQn9CV0KLQkNCgCivQpdCQ0JvQkNCYINCh0JDQkdCe0JvQpwor0KXQkNCb0JDQn9CYINCU0KDQkNCT0JjQptCQCivQpdCQ0JvQkNCf0Jgg0JjQoNCV0J3QkAor0KXQkNCb0JDQn9CYINCY0JLQkNCdCivQpdCQ0JvQkNChINCo0JDQndCU0J7QoAor0KXQkNCb0JDQoSDQpNCg0JDQitCQCivQpdCQ0JvQkNChINCc0JDQoNCY0IjQkAor0KXQkNCb0JDQktCQ0IrQkCDQltCV0InQmtCeCivQpdCQ0JvQkNCS0JDQitCQINCJ0KPQkdCQ0J0KK9Cl0JDQm9CQ0JLQkNCK0JAg0JzQmNCb0JDQnQor0KXQkNCb0JDQktCQ0IrQkCDQoNCQ0JTQlQor0KXQkNCb0JDQktCQ0IrQkCDQodCi0JXQktCQCivQpdCQ0JvQldCgINCh0KLQldCS0JDQnQor0KXQkNCb0JjQm9Ce0JLQmNCLINCc0KPQpdCQ0KDQldCcCivQpdCQ0JvQmNCcINCh0JXQpNCV0KAKK9Cl0JDQm9Cj0J/QmtCQINCI0J7QltCV0KQg0JTQoAor0KXQkNCcINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCQ0JzQoyDQnNCY0KXQkNCJCivQpdCQ0JzQl9CY0Isg0JzQmNCb0JXQndCQCivQpdCQ0J0g0KHQntCk0JjQiNCQCivQpdCQ0J3QptCa0J4g0IjQntCW0JXQpCDQlNCgCivQpdCQ0J3QptCa0J4g0IjQntCW0JXQpCDQlNCgCivQpdCQ0J3QlNCQINCa0JDQotCY0KbQkAor0KXQkNCd0JMg0JzQkNCi0JXQiAor0KXQkNCd0JMg0JLQm9CQ0KLQmtCeCivQpdCQ0J3Qk9CQINCQ0J3QotCj0J0KK9Cl0JDQndCT0JAg0JDQndCi0KPQnQor0KXQkNCd0JPQkCDQnNCQ0KDQmNCI0JAKK9Cl0JDQndCT0J7QktCh0JrQmCDQkNCd0JTQoNCY0IjQkAor0KXQkNCd0KHQmtCeINCI0J7QodCY0J8KK9Cl0JDQndCh0JrQniDQodCi0JXQktCQ0J0KK9Cl0JDQndCj0KjQmNCLINCh0JXQkNCUCivQpdCQ0KDQkNCn0JjQiyDQj9CV0JzQkNCbCivQpdCQ0KDQkNCn0JjQiyDQidCj0JHQmNCm0JAKK9Cl0JDQoNCQ0Jog0J/QkNCS0JvQlQor0KXQkNCg0JDQnNCR0JDQqNCY0Isg0JHQntCW0JDQndCQCivQpdCQ0KDQkNCc0JjQiNCQINCc0JDQoNCY0IjQkAor0KXQkNCg0JDQndCT0J7Ql9CeINCo0JDQndCU0J7QoAor0KXQkNCg0JDQndCT0J7Ql9CeINCo0JDQndCU0J7QoAor0KXQkNCg0JDQndCT0J7Ql9CeINCo0JDQoNCY0JrQkAor0KXQkNCg0JDQndCT0J7Ql9CeINCR0JDQm9CY0J3Qogor0KXQkNCg0JDQndCT0J7Ql9CeINCR0J7QqNCa0J4KK9Cl0JDQoNCQ0J3Qk9Ce0JfQniDQldCg0JbQldCR0JXQogor0KXQkNCg0JDQndCT0J7Ql9CeINCV0KDQltCV0JHQldCiCivQpdCQ0KDQkNCd0JPQntCX0J4g0JjQqNCi0JLQkNCdCivQpdCQ0KDQkNCd0JPQntCX0J4g0JjQnNCg0JUKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QiNCV0JPQoNCY0KjQmtCYINCc0JDQoNCY0IjQkAor0KXQkNCg0JDQndCT0J7Ql9CeINCa0JDQoNCe0IkKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQltCj0JbQkNCd0JAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQgtCj0KDQkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCR0J7QltCY0JTQkNCgCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0JjQoNCY0J3QkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCY0JLQkNCdCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0IjQntCQ0JrQmNCcCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0IjQntCS0JDQnQor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCI0J7QktCQ0J0KK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQidCj0JHQmNCm0JAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQndCV0KHQotCe0KAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQndCY0JrQntCb0JAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQodCY0JvQktCV0KHQotCV0KAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQodCi0J7QiNCQ0J3QmtCQCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0JLQldCh0J3QkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQktCb0JDQlNCY0JzQmNCgCivQpdCQ0KDQpNCc0JDQnSDQnNCQ0KDQkAor0KXQkNCg0KXQkNCYINCW0JXQidCa0J4KK9Cl0JDQoNCl0JDQmCDQkdCe0JbQkNCd0JAKK9Cl0JDQoNCl0JDQmCDQiNCQ0J3QmtCeCivQpdCQ0KDQpdCQ0IjQmCDQpdCV0JvQldCd0JAKK9Cl0JDQoNCl0JDQiNCYINCI0JDQndCa0J4KK9Cl0JDQoNCl0JDQiNCYINCI0J7QkNCa0JjQnAor0KXQkNCg0KXQkNCI0Jgg0IjQntCQ0JrQmNCcCivQpdCQ0KDQpdCQ0IjQmCDQidCj0JHQntCc0JjQoAor0KXQkNCg0KXQkNCI0Jgg0InQo9CR0J7QnNCY0KAKK9Cl0JDQoNCl0JDQiNCYINCc0JjQoNCe0J0KK9Cl0JDQoNCl0JDQiNCYINCd0JjQmtCe0JvQkAor0KXQkNCg0KXQkNCI0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KXQkNCg0KXQkNCI0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KXQkNCg0JjQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQkNCg0JjQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQkNCg0JjQqCDQidCj0JHQmNCS0J7QiNCVCivQpdCQ0KDQmNCoINCf0JjQoNCe0KjQmtCQCivQpdCQ0KDQmNCI0JDQnSDQqNCi0JXQpNCY0KbQkAor0KXQkNCg0JrQkNCYINCh0KLQldCS0JDQnQor0KXQkNCg0JzQkNCiINCa0J7QndCg0JDQlAor0KXQkNCg0J/QkNCKINCc0JjQpdCQ0JsKK9Cl0JDQoNCiINCc0JDQoNCT0JjQotCQCivQpdCQ0KDQotCY0JMg0JjQoNCV0J3QkAor0KXQkNCg0KLQmNCTINCi0JjQkdCe0KAKK9Cl0JDQoNCi0JzQkNCdINCa0JDQotCQ0KDQmNCd0JAKK9Cl0JDQoNCi0JzQkNCdINCS0JXQodCd0JAKK9Cl0JDQoSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQkNChINCa0JDQoNCb0J4KK9Cl0JDQoSDQnNCQ0KDQotCQCivQpdCQ0KEg0JzQmNCb0JjQptCQCivQpdCQ0KHQkNCd0JDQk9CY0Isg0JXQodCd0JDQpAor0KXQkNCh0JDQndCQ0JPQmNCLINCc0JjQm9CQ0J0KK9Cl0JDQodCV0J3QkNCj0JXQoCDQiNCe0KHQmNCfCivQpdCQ0KHQmNCLINCP0JXQnNCQ0JsKK9Cl0JDQotCQ0JvQkCDQnNCQ0KLQlQor0KXQkNCi0JDQm9CQINCX0J7Qm9Ci0JDQnQor0KXQkNCj0JMg0JDQndCY0KbQkAor0KXQkNCj0Jog0KDQntCR0JXQoNCiCivQpdCQ0KPQn9Ci0JzQkNCdINCh0JvQkNCS0JrQngor0KXQkNCj0KDQlNCY0Isg0KDQkNCR0JjQiNCQCivQpdCQ0KPQodCV0KAg0KXQmNCb0JTQkAor0KXQkNCj0JfQldCgINCe0KHQmtCQ0KAKK9Cl0JDQo9CX0JvQntCl0J3QldCgINCY0KDQldCd0JAKK9Cl0JDQktCI0JDQoCDQktCV0JvQmNCX0JDQoAor0KXQkNCS0JvQldCaINCk0KDQkNCK0JAKK9Cl0JDQktCb0JXQmiDQiNCe0KHQmNCfCivQpdCQ0JLQoNCQ0J0g0JfQm9CQ0KLQmtCeCivQpdCQ0JLQl9CYINCo0JXQoNCY0KQKK9Cl0JDQktCX0Jgg0JvQmNCc0JDQnQor0KXQldCC0JXQqCDQiNCQ0J3QntCoCivQpdCV0ILQldCb0JDQmCDQodCi0JXQktCQ0J0KK9Cl0JXQgtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCV0ILQmCDQnNCY0JvQmNCm0JAKK9Cl0JXQlNCV0Kgg0IjQkNCd0J7QqAor0KXQldCT0JXQlNCY0Kgg0ILQldCg0IIKK9Cl0JXQk9CV0JTQmNCoINCR0JXQm9CQCivQpdCV0JPQldCU0JjQqCDQkdCV0KDQotCQCivQpdCV0JPQldCU0JjQqCDQk9CV0JfQkAor0KXQldCT0JXQlNCY0Kgg0JjQqNCi0JLQkNCdCivQpdCV0JPQldCU0JjQqCDQiNCe0JbQldCkCivQpdCV0JPQldCU0JjQqCDQiNCe0KXQkNCd0JAKK9Cl0JXQk9CV0JTQmNCoINCI0J7Ql9CV0KTQmNCd0JAKK9Cl0JXQk9CV0JTQmNCoINCi0JXQoNCV0JfQmNCI0JAKK9Cl0JXQk9CV0JTQmNCoINCX0J7Qm9Ci0JDQnQor0KXQldCT0JXQlNCj0Kgg0JrQkNCg0J7Qm9CY0J3QkAor0KXQldCY0Jwg0JzQkNCT0JTQkAor0KXQldCa0JjQiyDQodCb0JDQktCY0KbQkAor0KXQldCb0JXQoCDQk9CQ0JHQoNCY0IjQldCbCivQpdCV0JvQldCgINCY0J3Qk9Cg0JjQlAor0KXQldCcINCI0JDQndCe0KgKK9Cl0JXQnNCYINCQ0J3QmNCm0JAKK9Cl0JXQnNCYINCS0JvQkNCU0JjQodCb0JDQkgor0KXQldCc0J7QnSDQkdCe0KDQmNChCivQpdCV0JzQntCdINCc0JDQoNCY0IjQkAor0KXQldCc0J7QnSDQodCb0JDQktCY0KbQkAor0KXQldCc0J7QnSDQotCV0KDQldCX0JjQiNCQCivQpdCV0JzQntCdINCS0JvQkNCU0JjQnNCY0KAKK9Cl0JXQnNCe0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KXQldCc0KDQmNClINCa0JvQkNCg0JAKK9Cl0JXQnNCj0J0g0JzQmNCl0JDQiNCb0J4KK9Cl0JXQnSDQltCV0InQmtCeCivQpdCV0J0g0JjQktCY0KbQkAor0KXQldCdINCc0JDQoNCY0IjQkAor0KXQldCd0JPQmyDQlNCQ0JzQiNCQ0J0KK9Cl0JXQndCT0Jsg0IjQntCS0JDQnQor0KXQldCd0JPQmyDQoNCY0KXQkNCg0JQKK9Cl0JXQndCY0Kgg0JLQmNCb0JzQkAor0KXQldCd0JrQldCbINCk0JjQm9CY0J8KK9Cl0JXQnyDQnNCQ0JrQodCY0JwKK9Cl0JXQoNCn0JjQmiDQoNCe0JHQldCg0KIKK9Cl0JXQoNCQ0Jog0JjQktCQ0J0KK9Cl0JXQoNCQ0Jog0KHQotCQ0J3QmNCh0JvQkNCSCivQpdCV0KDQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JXQoNCQ0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cl0JXQoNCQ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQpdCV0KDQkdCV0Jcg0JzQmNCb0JXQndCa0J4KK9Cl0JXQoNCR0KHQoiDQkNCd0KLQo9CdCivQpdCV0KDQkdCj0KIg0ILQntCg0ILQlQor0KXQldCg0JHQo9CiINCT0JDQkdCe0KAKK9Cl0JXQoNCR0KPQoiDQiNCe0JbQldCkCivQpdCV0KDQkdCj0KIg0JrQkNCg0J7QiQor0KXQldCg0JHQo9CiINCa0JjQoNCY0JsKK9Cl0JXQoNCR0KPQoiDQnNCY0KXQkNCI0JvQngor0KXQldCg0JHQo9CiINCh0JjQm9CS0JXQodCi0JXQoAor0KXQldCg0KbQldCTINCC0J7QoNCC0JUKK9Cl0JXQoNCm0JXQkyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cl0JXQoNCm0JXQkyDQmtCQ0KDQm9CeCivQpdCV0KDQptCV0J3QkdCV0KDQk9CV0KAg0ILQo9Cb0JAKK9Cl0JXQoNCm0JXQndCR0JXQoNCT0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQldCg0KbQldCd0JHQldCg0JPQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCV0KDQptCV0J3QkdCV0KDQk9CV0KAg0JPQmNCX0JXQm9CQCivQpdCV0KDQptCV0J3QkdCV0KDQk9CV0KAg0JjQoNCV0J0KK9Cl0JXQoNCm0J7QkyDQgtCe0KDQgtCVCivQpdCV0KDQlNCYINCI0J7QodCY0J8KK9Cl0JXQoNCU0Jgg0InQmNCJ0JDQndCQCivQpdCV0KDQlNCYLdCh0KLQntCI0JDQndCe0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Cl0JXQoNCV0J3Qp9CY0Isg0JvQldCe0J/QntCb0JQKK9Cl0JXQoNCV0J3QlNCY0IjQkCDQgtCe0KDQgtCVCivQpdCV0KDQldCd0JTQmNCI0JAg0JzQkNCg0JrQngor0KXQldCg0JXQotCQINCh0JvQntCR0J7QlNCQ0J0KK9Cl0JXQoNCT0JXQoiDQmtCQ0KLQmNCm0JAKK9Cl0JXQoNCY0Isg0JzQmNCl0J7QktCY0JsKK9Cl0JXQoNCY0J3QkyDQkNCc0JDQm9CY0IjQkAor0KXQldCg0JjQndCTINCY0JLQkNCdCivQpdCV0KDQnNCQ0J0g0KfQmNCb0JAKK9Cl0JXQoNCc0JDQnSDQkNCd0ILQkAor0KXQldCg0JzQkNCdINCY0JLQkNCdCivQpdCV0KDQnNCQ0J0g0JrQkNCg0JvQngor0KXQldCg0JzQkNCdINCS0JjQm9CY0JwKK9Cl0JXQoNCe0KAg0JvQkNCX0JDQoAor0KXQldCg0J/QmtCQINCU0KPQkdCg0JDQktCa0JAKK9Cl0JXQoNCf0JrQkCDQmNCS0JDQnSDQlNCgINCY0J3Qkwor0KXQldCg0KLQmyDQiNCe0JbQldCkCivQpdCV0KDQotCbINCd0JDQlNCQCivQpdCV0KEg0KjQkNCd0JTQntCgCivQpdCV0KEg0JvQkNCh0JvQngor0KXQldCh0JrQniDQktCY0JrQotCe0KDQmNCI0JAKK9Cl0JXQktCV0KAg0JzQkNCg0JPQmNCi0JAKK9Cl0JXQktCV0KAg0J/QkNCS0JvQlQor0KXQldCS0JXQoNCQINCc0JjQpdCQ0IjQm9CeCivQpdCV0JLQldCg0JAg0JfQo9CX0JDQndCQCivQpdCV0JLQmNCX0Jgg0JjQm9Ce0J3QkAor0KXQldCS0JjQl9CYINCf0JXQotCQ0KAKK9Cl0JjQi9CY0Jsg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JjQi9CY0Jsg0IjQntCh0JjQnwor0KXQmNCL0JjQmyDQmtCQ0KLQkNCg0JjQndCQCivQpdCY0JbQkCDQiNCe0JLQkNCdCivQpdCY0JbQkCDQnNCY0KjQkAor0KXQmNCR0Kgg0JzQkNCg0JjQiNCQCivQpdCY0JHQqCDQoNCY0KXQkNCg0JQg0KHQo9CU0JjQiNCQCivQpdCY0JHQqCDQotCQ0J3QmtCg0JXQlAor0KXQmNCV0Jsg0JrQodCV0J3QmNCI0JAKK9Cl0JjQmyDQiNCe0KHQmNCfCivQpdCY0Jsg0JLQldCg0JAKK9Cl0JjQm9CY0JXQoC3QmtCe0JvQkNCg0J7QkiDQktCQ0JvQldCg0JjQiNCQINCU0KAKK9Cl0JjQm9CY0JXQoCDQm9CQ0IjQntCoINCU0JjQn9CbINCY0J3Qkwor0KXQmNCd0JjQiyDQgtCe0KDQgtCVCivQpdCY0J3QmNCLINCR0KDQkNCd0JrQngor0KXQmNCd0JjQiyDQnNCQ0J3QlQor0KXQmNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Cl0JjQndCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cl0JjQn9CY0Jog0KjQotCV0KTQkNCd0JAKK9Cl0JjQn9CY0Jog0IjQntCS0JDQnQor0KXQmNCf0JjQmiDQmtCQ0KDQm9CeCivQpdCY0KDQqCDQodCi0IjQldCf0JDQnQor0KXQmNCg0KjQldCd0JHQldCg0JPQldCgINCc0JDQoNCi0JAKK9Cl0JjQoNCo0JXQndCR0JXQoNCT0JXQoCDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQpdCY0KDQqNCc0JDQnSDQkNCd0KLQo9CdCivQpdCY0KDQiNCe0JLQkNCi0Jgg0InQo9CR0JjQptCQCivQpdCY0KDQiNCe0JLQkNCi0JjQiCDQnNCY0KDQntCdCivQpdCY0KDQnNCQ0J0g0KTQoNCQ0IrQkAor0KXQmNCg0JzQkNCdINCX0J7Qm9Ci0JDQnQor0KXQmNCi0JXQndCR0JXQoNCT0JXQoCDQgtCe0KDQgtCVCivQpdCY0KLQmCDQpNCg0JDQndCmCivQpdCY0KLQmyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cl0JjQotCbINCh0KLQldCS0JDQnQor0KXQm9CQ0ILQmNCaINCX0JLQntCd0JrQngor0KXQm9CQ0JTQndCYINCY0JLQkNCdCivQpdCb0JDQlNCd0Jgg0KHQm9CQ0JLQmtCeCivQpdCb0JDQn9CV0KYg0KHQotCI0JXQn9CQ0J0KK9Cl0JvQkNCS0KHQkCDQodCb0JDQktCY0KbQkAor0KXQm9CV0JHQldCmINCd0J7QoNCR0JXQoNCiCivQpdCb0J7QltCQ0J0g0IjQntCS0JDQnQor0KXQnNCY0Ikg0JjQm9CY0IjQkAor0KXQndCQ0KLQmtCeINCc0JjQqNCa0J4KK9Cl0J7Qp9Ca0J4g0JDQiNCV0KIKK9Cl0J7QqNCV0Jog0KfQkNCR0JAKK9Cl0J7QqNCV0Jog0KTQoNCQ0IrQkAor0KXQntCR0KDQkNCiINCc0JDQoNCi0JAKK9Cl0J7Qj9CQINCg0JDQnNCQ0JTQkNCdCivQpdCe0I/QmNCLINCl0JDQm9CY0JQKK9Cl0J7Qj9CY0Isg0J7QnNCV0KAKK9Cl0J7Qj9CY0Isg0KHQotCQ0JfQkAor0KXQntCU0JAg0JzQldCI0KDQldCcCivQpdCe0JTQkNCaINCc0JjQm9CVCivQpdCe0JTQkNCaINCh0JjQm9CS0JXQodCi0JDQoAor0KXQntCU0JDQmiDQodCe0KTQmNCI0JAKK9Cl0J7QlNCQ0Jog0JLQldCg0JAKK9Cl0J7QlNCQ0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQpdCe0JTQkNCgINCI0J7QodCY0J8KK9Cl0J7QlNCYINCV0KDQndCVCivQpdCe0JTQmCDQldCg0J3QlQor0KXQntCU0Jgg0KTQldCg0JXQndCmCivQpdCe0JTQmCDQktCY0JvQnNCQCivQpdCe0JTQmNCaINCR0JDQoNCR0JDQoNCQCivQpdCe0JTQmNCd0JrQkCDQnNCY0KXQkNCY0JvQngor0KXQntCU0J3QmNCaINCQ0JvQntCI0JcKK9Cl0J7QlNCe0JHQkCDQlNCQ0J3QmNCI0JXQm9CQCivQpdCe0JTQntCb0JjQpyDQiNCQ0J3QmtCeCivQpdCe0JTQntCb0JjQiyDQiNCQ0KDQntCh0JvQkNCSCivQpdCe0KTQnNCQ0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0J7QpNCc0JDQnSDQkNCg0KLQo9CgCivQpdCe0KTQnNCQ0J0g0JHQoNCj0J3Qngor0KXQntCk0JzQkNCdINCk0KDQkNCK0JAKK9Cl0J7QpNCc0JDQnSDQm9CQ0JTQmNCh0JvQkNCSCivQpdCe0KTQnNCQ0J0g0JzQkNCg0JjQiNCQCivQpdCe0KTQnNCQ0J0g0JLQldCh0J3QkAor0KXQntCl0IrQldCmINCU0JDQoNCa0J4KK9Cl0J7QpdCK0JXQpiDQn9CV0KLQkNCgCivQpdCe0KXQitCV0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KXQntCb0KbQldCgINCb0JDQlNCY0KHQm9CQ0JIKK9Cl0J7Qm9CV0KDQkdCQ0KUg0JrQkNCi0JjQptCQCivQpdCe0JvQmCDQkNCd0JTQoNCY0IjQkCDQnNCgINCf0KUKK9Cl0J7Qm9CYINCa0JDQotCQ0KDQmNCd0JAKK9Cl0J7Qm9CY0KfQldCaINCb0JDQodCb0J4KK9Cl0J7Qm9CY0KfQldCaINCc0JDQoNCT0JjQogor0KXQntCb0JjQp9CV0Jog0KHQotCV0JLQkNCdCivQpdCe0JvQmNCT0JAg0JrQkNCg0JvQngor0KXQntCb0JjQk9CQINCh0J3QldCW0JDQndCQCivQpdCe0JvQmNCT0JAg0KHQotCV0JLQkNCdCivQpdCe0JvQmNCaINCI0JDQndCa0J4KK9Cl0J7Qm9CY0Jog0IjQntCQ0JrQmNCcCivQpdCe0JvQniDQm9CV0J7QndCi0JjQndCQCivQpdCe0JvQniDQktCY0JvQnNCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQpdCe0JvQntCUINCh0KLQldCS0JDQnQor0KXQntCb0J7QlNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQpdCe0JvQntCiINCg0KPQltCQCivQpdCe0JvQntCS0JrQkCDQkNCd0JrQkAor0KXQntCb0J7QktCa0JAg0JHQoNCQ0J3QmtCQCivQpdCe0JvQntCS0JrQkCDQndCQ0KLQkNCb0JjQiNCQCivQpdCe0JvQn9CV0KDQoiDQldCg0J3QldCh0KIKK9Cl0J7Qm9Cf0JXQoNCiINCb0KPQiNCeCivQpdCe0JzQkCDQkNCd0JAKK9Cl0J7QnNCQINCR0J7QodCY0InQmtCQCivQpdCe0JzQkCDQldCj0JPQldCdCivQpdCe0JzQkCDQiNCQ0J3QmtCeCivQpdCe0JzQkCDQiNCe0JLQk9CV0J0KK9Cl0J7QnNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cl0J7QnNCQINCd0JjQmtCe0JvQkAor0KXQntCc0JAg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cl0J7QnNCQINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7QnNCQINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7QnNCQINCS0KPQmtCY0KbQkAor0KXQntCc0J7QidCQINCI0J7QltCV0KQKK9Cl0J7QoCDQkdCe0JbQmNCm0JAKK9Cl0J7QoCDQmNCb0JjQiNCQCivQpdCe0KAg0J/QkNCS0JvQlQor0KXQntCg0JDQmiDQnNCY0KXQkNCI0JvQngor0KXQntCg0JDQmiDQndCQ0J3QlNCe0KAKK9Cl0J7QoNCT0JDQoSDQmNCo0KLQktCQ0J0KK9Cl0J7QoNCT0JDQoSDQnNCQ0KLQmNCb0JTQkAor0KXQntCg0JPQntCo0Jgg0ILQo9Cb0JAKK9Cl0J7QoNCT0J7QqNCYINCa0JDQotCQ0KDQmNCd0JAKK9Cl0J7QoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cl0J7QoNCY0Isg0JrQntCh0JjQnAor0KXQntCg0J0g0JLQkNCb0JXQndCi0JjQnQor0KXQntCg0IrQkNCaINCW0JjQktCQCivQpdCe0KDQitCQ0Jog0ILQo9Cg0J4KK9Cl0J7QoNCK0JDQmiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cl0J7QoNCK0JDQmiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cl0J7QoNCK0JDQmiDQmNCS0JDQnQor0KXQntCg0IrQkNCaINCI0JDQndCe0KgKK9Cl0J7QoNCK0JDQmiDQiNCQ0J0KK9Cl0J7QoNCK0JDQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cl0J7QoNCK0JDQmiDQnNCY0KjQkAor0KXQntCg0IrQkNCaINCc0JjQoNCa0J4KK9Cl0J7QoNCK0JDQmiDQntCb0JPQkAor0KXQntCg0IrQkNCaINCf0JXQotCQ0KAKK9Cl0J7QoNCK0JDQmi3Qn9Cj0KjQmtCQ0KjQntCS0JAg0JzQkNCg0JjQiNCQCivQpdCe0KDQitCQ0Jog0KHQntCk0KDQntCd0JAKK9Cl0J7QoNCK0JDQmiDQodCi0JXQktCQ0J0KK9Cl0J7QoNCK0JDQmiDQktCb0JDQlNCQCivQpdCe0KDQitCQ0Jog0JLQm9CQ0JTQkAor0KXQntCg0IrQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7QoNCK0JjQmiDQqNCQ0J3QlNCe0KAKK9Cl0J7QoNCK0JjQmiDQgtCV0KDQggor0KXQntCg0IrQmNCaINCC0JXQoNCCCivQpdCe0KDQitCY0Jog0JfQntCb0KLQkNCdCivQpdCe0KDQndCe0Jog0JfQntCb0KLQkNCdCivQpdCe0KDQndCj0J3Qky3QqNCe0JzQkNCdINCo0KLQldCk0JDQndCY0IjQkAor0KXQntCg0J7QqNCY0JvQntCSINCh0J7QpNCY0IjQkAor0KXQntCg0J7QqNCa0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0J7QoNCe0KjQmtCeINCh0KLQldCk0JDQnSDQlNCgCivQpdCe0KDQntCS0JjQpiDQlNCg0JDQk9CY0IrQkAor0KXQntCg0J7QktCY0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KXQntCg0KLQmCDQlNCg0JDQk9CQ0J3QkAor0KXQntCg0KLQmCDQk9CV0JfQkAor0KXQntCg0KLQmCDQiNCe0KHQmNCfCivQpdCe0KDQotCYINCS0JvQkNCU0JjQodCb0JDQkgor0KXQntCg0JLQkNCm0JrQmCDQnNCQ0KDQmtCeCivQpdCe0KDQktCQ0KbQmtCYINCh0J3QldCW0JDQndCQCivQpdCe0KDQktCQ0KIg0KjQkNCd0JTQntCgCivQpdCe0KDQktCQ0KIg0KjQkNCd0JTQntCgCivQpdCe0KDQktCQ0KIg0JbQntCb0KIKK9Cl0J7QoNCS0JDQoiDQgtCj0JvQkAor0KXQntCg0JLQkNCiINCC0KPQoNCQCivQpdCe0KDQktCQ0KIg0JDQk9CYCivQpdCe0KDQktCQ0KIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0J7QoNCS0JDQoiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQntCg0JLQkNCiINCQ0J3QlNCg0JDQqAor0KXQntCg0JLQkNCiINCQ0J3QlNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JDQndCa0JAKK9Cl0J7QoNCS0JDQoiDQkNCd0KLQkNCbCivQpdCe0KDQktCQ0KIg0JDQoNCf0JDQlAor0KXQntCg0JLQkNCiINCR0JXQm9CQCivQpdCe0KDQktCQ0KIg0JHQmNCh0JXQoNCa0JAKK9Cl0J7QoNCS0JDQoiDQlNCV0JbQlQor0KXQntCg0JLQkNCiINCU0JjQnNCY0KLQoNCY0IjQlQor0KXQntCg0JLQkNCiINCV0JTQmNCiCivQpdCe0KDQktCQ0KIg0JXQm9CY0JfQkNCR0JXQotCQCivQpdCe0KDQktCQ0KIg0JXQoNCW0JXQkdCV0KIKK9Cl0J7QoNCS0JDQoiDQldCg0JjQmtCQCivQpdCe0KDQktCQ0KIg0JXQodCi0JXQoAor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0KDQkNCK0JAKK9Cl0J7QoNCS0JDQoiDQpNCg0JDQitCQCivQpdCe0KDQktCQ0KIg0KTQoNCQ0IrQngor0KXQntCg0JLQkNCiINCT0JDQkdCe0KAKK9Cl0J7QoNCS0JDQoiDQk9CY0JfQldCb0JAKK9Cl0J7QoNCS0JDQoiDQk9Cg0J7Ql9CU0JDQndCQCivQpdCe0KDQktCQ0KIg0JjQqNCi0JLQkNCdCivQpdCe0KDQktCQ0KIg0JjQk9Ce0KAKK9Cl0J7QoNCS0JDQoiDQmNCT0J7QoAor0KXQntCg0JLQkNCiINCY0JvQntCd0JrQkAor0KXQntCg0JLQkNCiINCY0JzQoNCVCivQpdCe0KDQktCQ0KIg0JjQnNCg0JUKK9Cl0J7QoNCS0JDQoiDQmNCc0KDQlQor0KXQntCg0JLQkNCiINCY0KDQldCd0JAKK9Cl0J7QoNCS0JDQoiDQmNCg0JXQndCa0JAKK9Cl0J7QoNCS0JDQoiDQmNCS0JDQndCa0JAKK9Cl0J7QoNCS0JDQoiDQmNCS0JDQnQor0KXQntCg0JLQkNCiINCI0JDQndCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQpdCe0KDQktCQ0KIg0IjQkNCd0J7QqAor0KXQntCg0JLQkNCiINCI0JXQm9CV0J3QkAor0KXQntCg0JLQkNCiINCI0J7QltCV0KQKK9Cl0J7QoNCS0JDQoiDQiNCe0JbQldCkCivQpdCe0KDQktCQ0KIg0IjQntCW0JXQpAor0KXQntCg0JLQkNCiINCI0J7QodCY0J8KK9Cl0J7QoNCS0JDQoiDQiNCe0KHQmNCfCivQpdCe0KDQktCQ0KIg0IjQntCh0JjQnwor0KXQntCg0JLQkNCiINCI0J7QodCY0J8KK9Cl0J7QoNCS0JDQoiDQiNCe0KHQmNCfCivQpdCe0KDQktCQ0KIg0IjQntCS0JDQnQor0KXQntCg0JLQkNCiINCa0JDQm9Cc0JDQnQor0KXQntCg0JLQkNCiINCa0JDQoNCb0J4KK9Cl0J7QoNCS0JDQoiDQmtCQ0KDQm9CeCivQpdCe0KDQktCQ0KIg0JrQkNCg0JvQngor0KXQntCg0JLQkNCiINCa0JDQoNCe0IkKK9Cl0J7QoNCS0JDQoiDQmtCQ0KLQkNCb0JjQnQor0KXQntCg0JLQkNCiINCa0JDQotCQ0KDQmNCd0JAKK9Cl0J7QoNCS0JDQoiDQmtCQ0KLQmNCm0JAKK9Cl0J7QoNCS0JDQoiDQmtCQ0KLQmNCm0JAKK9Cl0J7QoNCS0JDQoiDQm9CQ0IjQntCoCivQpdCe0KDQktCQ0KIg0JvQkNCh0JvQngor0KXQntCg0JLQkNCiINCb0JDQodCb0J4KK9Cl0J7QoNCS0JDQoiDQm9CQ0KHQm9CeCivQpdCe0KDQktCQ0KIg0JvQkNCh0JvQngor0KXQntCg0JLQkNCiINCb0JDQodCb0J4KK9Cl0J7QoNCS0JDQoiDQm9CQ0KHQm9CeCivQpdCe0KDQktCQ0KIg0JvQo9CU0JLQmNCTCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCi0J4KK9Cl0J7QoNCS0JDQoiDQnNCY0KXQkNCJCivQpdCe0KDQktCQ0KIt0JzQmNCb0JjQotCY0KfQmCDQmtCQ0KDQntCJINCU0KAKK9Cl0J7QoNCS0JDQoiDQnNCY0JvQmtCQCivQpdCe0KDQktCQ0KIg0JzQmNCb0JrQkAor0KXQntCg0JLQkNCiINCc0JjQm9Ce0KHQm9CQ0JIKK9Cl0J7QoNCS0JDQoiDQnNCY0KDQmtCeCivQpdCe0KDQktCQ0KIg0J/QkNCI0JAKK9Cl0J7QoNCS0JDQoiDQn9CQ0JLQm9CVCivQpdCe0KDQktCQ0KIg0J/QldCi0JDQoAor0KXQntCg0JLQkNCiINCg0JDQlNCc0JjQm9CQCivQpdCe0KDQktCQ0KIg0KDQntCW0JAKK9Cl0J7QoNCS0JDQoiDQoNCe0JfQkNCb0JjQiNCQCivQpdCe0KDQktCQ0KIg0KDQo9CW0JAKK9Cl0J7QoNCS0JDQoiDQoNCj0JTQntCb0KQKK9Cl0J7QoNCS0JDQoiDQodCQ0JzQo9CV0JsKK9Cl0J7QoNCS0JDQoiDQodCY0JvQktCV0KHQotCV0KAKK9Cl0J7QoNCS0JDQoiDQodCb0JDQktCa0J4KK9Cl0J7QoNCS0JDQoiDQodCc0JjQidCQCivQpdCe0KDQktCQ0KIg0KHQotCV0JLQkNCdCivQpdCe0KDQktCQ0KIg0KLQkNCc0JDQqAor0KXQntCg0JLQkNCiINCi0JXQoNCV0JfQkAor0KXQntCg0JLQkNCiINCi0JXQoNCV0JfQkAor0KXQntCg0JLQkNCiINCi0JjQkdCe0KAKK9Cl0J7QoNCS0JDQoiDQotCY0JHQntCgCivQpdCe0KDQktCQ0KIg0KLQmNCR0J7QoAor0KXQntCg0JLQkNCiINCi0JjQkdCe0KAKK9Cl0J7QoNCS0JDQoiDQktCQ0JvQldCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JLQldCg0JjQptCQCivQpdCe0KDQktCQ0KIg0JLQldCg0J7QndCY0JrQkAor0KXQntCg0JLQkNCiINCS0JXQoNCe0J3QmNCa0JAKK9Cl0J7QoNCS0JDQoiDQktCb0JDQlNCY0JzQmNCgCivQpdCe0KDQktCQ0KIg0JfQntCb0KLQkNCdCivQpdCe0KDQktCQ0KIg0JfQntCb0KLQkNCdCivQpdCe0KDQktCQ0KLQmNCLINCc0JDQoNCY0IjQkNCdCivQpdCe0KDQktCQ0KLQmNCLINCe0JvQk9CQCivQpdCe0KDQktCQ0KLQmNCLINCh0JvQkNCS0JrQngor0KXQntCg0JLQkNCi0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQpdCe0KDQktCQ0KLQntCSINCg0JDQodCi0JrQngor0KXQntCg0JLQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0KXQntCg0JLQkNCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQpdCe0KDQktCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KXQntCg0JLQkNCi0J7QktCY0Isg0J/QkNCS0JvQlSDQlNCgCivQpdCe0KDQktCQ0KLQodCa0Jgg0JTQo9Co0JDQnQor0KXQntCg0JLQkNCi0KHQmtCYINCJ0KPQkdCY0KbQkAor0KXQntCg0JLQkNCi0KHQmtCYINCJ0KPQkdCY0KbQkAor0KXQntCg0JLQkNCi0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQpdCe0KDQktCQ0KLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KXQntCg0JLQkNCi0KHQmtCYINCg0JDQlNCY0JLQntCICivQpdCe0KDQktCQ0KLQodCa0Jgg0KDQo9CW0JjQptCQCivQpdCe0KHQotCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cl0J7QodCi0J3QmNCaINCa0JDQotCY0KbQkAor0KXQntCh0KLQntCd0KHQmtCYINCh0KLQkNCd0JAKK9Cl0J7QoiDQkNCU0JXQnAor0KXQntCj0KQg0JXQm9CS0JjQoNCQCivQpdCe0JLQkNCdINCc0JDQoNCi0JjQnQor0KXQntCS0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQpdCe0JLQkNCd0JXQpiDQktCY0JrQotCe0KDQmNCI0JAKK9Cl0KDQi9CQ0J0g0IjQntCS0JDQnQor0KXQoNCL0JDQnSDQiNCe0JLQkNCdCivQpdCg0JDQkdCQ0KAg0JjQktCeCivQpdCg0JDQkdCe0JLQodCa0Jgg0JDQndCi0J7QnQor0KXQoNCQ0JHQntCS0KHQmtCYINCQ0J3QotCe0J0KK9Cl0KDQkNCR0J7QktCh0JrQmCDQkdCe0IjQkNCd0JAg0JTQoAor0KXQoNCQ0JHQntCS0KHQmtCYINCV0JTQk9CQ0KAg0JTQmNCf0Jsg0J7QldCmCivQpdCg0JDQkdCe0JLQodCa0Jgg0JjQnNCg0JUKK9Cl0KDQkNCR0J7QktCh0JrQmCDQm9CQ0JTQmNCh0JvQkNCSCivQpdCg0JDQkdCg0JjQiyDQldCj0JPQldCdCivQpdCg0JDQlNCV0KfQndCYINCR0JXQm9CQCivQpdCg0JDQlNCV0KfQndCYINCk0KDQkNCK0JAKK9Cl0KDQkNCU0JXQp9Cd0Jgg0IjQntCh0JjQnwor0KXQoNCQ0J3QmNCn0JDQmiDQnNCY0KDQmtCeCivQpdCg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQn9CQ0JLQm9CVCivQpdCg0JDQn9Ce0JLQmNCLINCe0KHQnNCQ0J0KK9Cl0KDQlNCb0JjQp9Ca0JAg0JTQldCh0JDQndCa0JAKK9Cl0KDQldCo0KfQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cl0KDQldCd0JDQoCDQm9CQ0KPQoNCQCivQpdCg0JPQmNCLINCJ0KPQkdCe0JzQmNCgCivQpdCg0JPQmNCLINCc0JjQm9CQ0J0KK9Cl0KDQk9CY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQpdCg0JjQp9CQ0J3QldCaINCc0JjQoNCe0KHQm9CQ0JIKK9Cl0KDQmNCn0JDQndCV0Jog0J3QldCU0JXQidCa0JAKK9Cl0KDQmNCR0InQkNCdINCQ0J3QotCe0J0KK9Cl0KDQmNCR0J7QktCo0JXQmiDQpNCg0JDQndCmCivQpdCg0JjQptCa0JDQndCY0Isg0JvQo9Ca0JAKK9Cl0KDQmNCV0KjQmNCaINCc0JDQoNCY0IjQkAor0KXQoNCY0IjQldCo0JjQmiDQiNCQ0J0KK9Cl0KDQmNCI0JXQqNCY0Jog0IjQo9Cg0JDQiAor0KXQoNCY0KHQotCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cl0KDQmNCh0KLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KXQoNCY0KHQotCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KXQoNCY0KHQotCY0Isg0InQo9CR0JjQptCQCivQpdCg0JjQodCi0JjQlNCY0KEg0JDQn9Ce0KHQotCe0JsKK9Cl0KDQmNCh0KLQmNCU0JjQoSDQndCY0JrQntCb0JAKK9Cl0KDQmNCh0KLQmNCU0JjQoSDQndCY0JrQntCb0JAKK9Cl0KDQmNCh0KLQntCSINCR0KDQkNCd0JrQngor0KXQoNCY0KHQotCe0JIg0JzQmNCb0J7QodCY0IjQkAor0KXQoNCY0KHQotCe0JIg0JLQldCh0J3QkAor0KXQoNCY0KHQotCe0JIg0JfQkNCT0J7QoNCa0JAKK9Cl0KDQmNCh0KLQntCS0JAg0JXQnNCY0JvQmNCI0JAKK9Cl0KDQmNCh0KLQntCS0KHQmtCYINCi0J7QnNCQCivQpdCg0JjQodCi0KMg0KLQmNCl0J7QnNCY0KAKK9Cl0KDQmtCQ0JvQntCS0JjQiyDQkdCe0KjQmtCeCivQpdCg0J3Qp9CQ0KAg0KHQkNCc0KPQldCbCivQpdCg0J3Qp9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cl0KDQndCn0JjQiyDQnNCY0KXQkNCUCivQpdCg0J3Qp9CY0Isg0JLQkNCl0JjQlAor0KXQoNCd0KfQmNCQ0KAg0JDQndCQCivQpdCg0J3Qp9CY0JDQoCDQiNCQ0J3QmtCeCivQpdCg0J3Qp9CY0JDQoNCe0JLQkCDQotCV0KDQldCX0JjQkAor0KXQoNCd0KfQiNCQ0KAg0JDQndCU0KDQldCICivQpdCg0J3Qp9CI0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQpdCg0IrQkNCn0JrQmCDQltCQ0KDQmtCeCivQpdCg0IrQkNCn0JrQmCDQgtCe0KDQgtCVCivQpdCg0IrQkNCn0JrQmCDQiNCV0JvQmNCm0JAKK9Cl0KDQitCQ0KfQmtCYINCI0J7QktCQ0J0KK9Cl0KDQitCQ0KfQmtCYINCb0JDQl9CY0KbQkAor0KXQoNCK0JDQp9Ca0Jgg0JzQmNCb0JrQkAor0KXQoNCK0JDQp9Ca0Jgg0JzQm9CQ0JTQldCdCivQpdCg0IrQkNCaINCU0JDQndCVCivQpdCg0IrQkNCaINCU0KDQkNCT0JDQnQor0KXQoNCK0JDQmiDQlNCj0KjQkNCdCivQpdCg0IrQkNCaINCJ0JjQidCQ0J3QkAor0KXQoNCK0JDQmiDQnNCQ0KDQmNCI0JAKK9Cl0KDQitCQ0Jog0KDQkNCI0JrQngor0KXQoNCK0JDQmiDQktCV0InQmtCeCivQpdCg0IrQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQpdCg0IrQkNCa0J7QktCY0Isg0JjQktCQ0J3QkAor0KXQoNCK0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cl0KDQitCQ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQpdCg0IrQldCXINCe0JHQoNCQ0JQKK9Cl0KDQntCc0JjQqCDQkNCc0JDQm9CY0IjQkAor0KXQoNCe0JzQmNCoINCQ0J3QkAor0KXQoNCe0JzQmNCoINCR0JDQoNCR0JDQoNCQCivQpdCg0J7QnNCY0Kgg0JHQntCg0JjQodCb0JDQkgor0KXQoNCe0JzQmNCoINCI0J7QkNCa0JjQnAor0KXQoNCe0JzQmNCoINCI0J7QkNCa0JjQnAor0KXQoNCe0JzQmNCoINCa0JDQotCY0KbQkAor0KXQoNCe0JzQmNCoINCc0JDQoNCY0IjQkAor0KXQoNCe0JzQmNCoINCc0JXQm9CQ0J3QmNCI0JAKK9Cl0KDQntCc0JjQqCDQnNCY0KXQkNCI0JvQniDQlNCY0J/QmyDQmNCd0JMKK9Cl0KDQntCc0JjQqCDQnNCY0KDQntCh0JvQkNCSCivQpdCg0J7QnNCY0Kgg0JzQmNCg0J7QodCb0JDQkgor0KXQoNCe0JzQmNCoINCd0JDQlNCQCivQpdCg0J7QnNCY0Kgg0J3QmNCa0J7Qm9CQCivQpdCg0J7QnNCY0Kgg0J/QldCi0JDQoAor0KXQoNCe0JzQmNCoINCh0JjQnNCQCivQpdCg0J7QnNCY0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0KXQoNCe0JzQmNCoINCX0JTQldCd0JrQkAor0KXQoNCe0IrQldCmINCS0JjQi9CQ0JfQntCh0JvQkNCSCivQpdCg0KHQotCeINCh0JvQkNCS0JrQngor0KXQoNCj0JHQldCK0JAg0ILQo9Cg0JAKK9Cl0KDQo9CR0JXQitCQINCk0JXQkdCg0J7QndCQCivQpdCg0KPQkdCV0IrQkCDQiNCQ0J3QmtCeCivQpdCg0KPQkdCV0IrQkCDQiNCe0JDQmtCY0JwKK9Cl0KDQo9CR0JXQitCQINCI0J7QkNCa0JjQnAor0KXQoNCj0JHQldCK0JAg0IjQntCQ0JrQmNCcCivQpdCg0KPQkdCV0IrQkCDQmtCQ0KDQm9CeCivQpdCg0KPQkdCV0IrQkCDQnNCY0KXQkNCI0JvQngor0KXQoNCj0JHQldCK0JAg0JzQmNCg0J7QodCb0JDQkgor0KXQoNCj0JHQldCK0JAg0J/QldCi0JDQoAor0KXQoNCj0JHQldCK0JAg0JfQktCe0J3QmNCc0JjQoAor0KXQoNCj0JHQmNCaINCQ0J3QlNCg0JXQiAor0KXQoNCj0JHQmNCaINCI0J7QktCQ0J0KK9Cl0KDQo9CR0JjQmiDQmtCQ0KDQm9CeCivQpdCg0KPQkdCY0Jog0JzQmNCg0JrQngor0KXQoNCj0JHQmNCaINCe0KHQmtCQ0KAg0JTQoCDQm9CV0JrQkNCgCivQpdCg0KPQkdCY0Jog0KDQntCX0JDQm9CY0IjQkAor0KXQoNCj0KHQotCQ0J3QntCS0JjQiyDQotCj0KDQodCj0J0KK9Cl0KDQo9Ch0KLQmNCLINCV0JzQmNCdCivQpdCg0KPQodCi0JjQiyDQldCd0JLQldCgCivQpdCg0KPQodCi0JjQiyDQl9CY0IjQkNClCivQpdCg0KPQodCi0JjQiyDQl9CY0JvQpdCQCivQpdCj0KfQmNCLINCh0KLQiNCV0J/QkNCdCivQpdCj0KfQmtCQINCI0J7QktCQ0J0KK9Cl0KPQltCS0JDQoCDQqNCQ0J3QlNCe0KAKK9Cl0KPQgtCV0KYg0IjQntCS0JDQndCa0JAKK9Cl0KPQgtCV0KYg0JrQkNCg0JvQngor0KXQo9CR0JDQmCDQk9CQ0JHQntCgCivQpdCj0JHQkNCd0JjQiyDQnNCY0JvQldCd0JAKK9Cl0KPQkdCV0KAg0JHQntCI0JDQndCQCivQpdCj0JHQldCgINCU0KDQkNCT0JDQnQor0KXQo9CR0JXQoCDQldCb0JfQkAor0KXQo9CR0JXQoCDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KXQo9CR0JXQoCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cl0KPQkdCV0KAg0JzQkNCg0JjQiNCQCivQpdCj0JHQldCgINCc0JDQotCY0JvQlNCQCivQpdCj0JHQldCgINCf0JXQotCQ0KAKK9Cl0KPQkdCV0KAg0KLQmNCR0J7QoAor0KXQo9CR0JXQoNCiINCV0JLQkAor0KXQo9CR0JXQoNCiINCg0JDQlNCc0JjQm9CQCivQpdCj0JHQldCg0KIg0JLQldCg0JAKK9Cl0KPQkdCY0IjQkNCgINCV0J3QldChCivQpdCj0JHQmNCI0JDQoCDQndCQ0JTQkAor0KXQo9CU0JDQmiDQmNCg0JjQndCV0IgKK9Cl0KPQlNCQ0Jog0J3QkNCi0JDQm9CY0IjQkAor0KXQo9CU0J7QnNCV0Jsg0JjQktCQ0J0KK9Cl0KPQiNCU0KPQoCDQkdCg0JDQndCa0JAKK9Cl0KPQnNCh0JrQmCDQoNCe0KHQkAor0KXQo9CK0JDQlNCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCj0IrQkNCU0Jgg0JjQm9Ce0J3QmtCQCivQpdCj0IrQkNCU0Jgg0J7Qm9CT0JAKK9Cl0KPQn9CV0KDQoiDQm9CQ0IjQntCoCivQpdCj0J/QmNCaINCc0JjQoNCI0JDQndCQCivQpdCj0KEg0JjQnNCg0JUKK9Cl0KPQodCQ0JMg0JDQoNCf0JDQlAor0KXQo9Ch0JDQk9CY0Isg0JXQodCQ0JQKK9Cl0KPQodCQ0JPQmNCLINCh0KPQm9CV0IjQnNCQ0J0KK9Cl0KPQodCQ0JPQmNCLINCX0JjQndCV0KLQkAor0KXQo9Ch0JDQmiDQoNCQ0JTQntCS0JDQnQor0KXQo9Ch0JDQoCDQldCS0JAKK9Cl0KPQodCQ0KAg0JjQqNCi0JLQkNCdCivQpdCj0KHQkNCgINCI0JDQndCa0J4KK9Cl0KPQodCQ0KAg0JvQkNCh0JvQngor0KXQo9Ch0JDQoCDQotCe0JTQntCgCivQpdCj0KHQldCY0J0g0JzQldCl0JzQldCUCivQpdCj0KHQldCY0J3QkdCV0JPQntCS0JjQiyDQndCQ0JzQmNCaCivQpdCj0KHQldCY0J3QntCS0JjQiyDQkNCd0JjQptCQCivQpdCj0KHQldCY0J3QntCS0JjQiyDQkNCi0JjQm9CQCivQpdCj0KHQldCY0J3QntCS0JjQiyDQkNCi0JjQm9CQCivQpdCj0KHQldCY0J3QntCS0JjQiyDQldCh0JzQldCg0JDQm9CU0JAKK9Cl0KPQodCV0JjQndCe0JLQmNCLINCY0KHQnNCV0KIKK9Cl0KPQodCV0J3QkdCV0JPQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQpdCj0KHQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cl0KPQodCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KXQo9Ch0JrQkCDQmNCb0J7QndCQCivQpdCj0KHQmtCQLdCg0J7QmtCQINCc0JDQk9CU0JAg0JTQoAor0KXQo9Ch0JrQniDQnNCY0IjQngor0KXQo9Ch0J7QktCY0Isg0KXQo9Ch0J4KK9Cl0KPQotCQ0JvQkNCg0J7QktCY0Isg0IjQldCb0JXQndCQCivQpdCj0KLQkNCb0JDQoNCe0JLQmNCLINCa0J7QodCi0JAKK9Cl0KPQl9CI0JDQnSDQotCY0KXQntCc0JjQoAor0KXQktCQ0JvQkCDQnNCY0KDQkAor0KXQktCV0KLQmtCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmNCn0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQmNCn0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CY0KfQmNCdINCW0JjQktCa0J4KK9CY0KfQmNCdINCc0JjQm9CV0J3QmtCeCivQmNCn0JjQnSDQoNCQ0JTQmNCh0JvQkNCSCivQmNCn0JjQnSDQodCg0JXQotCV0J0KK9CY0KjQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JjQqNCf0JDQnSDQqNCQ0J3QlNCe0KAKK9CY0KjQn9CQ0J0g0JzQkNCg0JPQmNCi0JAKK9CY0KjQn9CQ0J3QntCS0JjQiyDQiNCe0JbQldCkCivQmNCo0KLQntCaINCI0J7QodCY0J8KK9CY0KjQotCe0Jog0IjQntCh0JjQnwor0JjQqNCi0J7QmiDQnNCY0KDQiNCQ0J3QkAor0JjQqNCi0J7QmiDQodCi0JXQktCQ0J0KK9CY0KjQotCe0JrQntCS0JjQiyDQodCi0JXQktCeCivQmNCo0KLQktCQ0J3QntCSINCh0KLQkNCd0JjQodCb0JDQktCQCivQmNCL0JjQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CY0IvQo9Cg0KPQnyDQltCY0JLQntCI0JjQnQor0JjQi9Cj0KDQo9CfINCc0JjQm9Ce0KDQkNCUCivQmNCL0KPQoNCj0J8g0KDQkNCU0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CY0JbQkNCaINCk0JXQoNCV0J3Qpgor0JjQltCQ0Jog0JrQkNCg0JvQngor0JjQltCQ0Jog0KDQntCX0JDQm9CY0IjQkAor0JjQgtCY0JTQntCSINCe0JvQk9CQCivQmNCC0JjQlNCe0JIg0JLQldCb0JjQndCa0JAKK9CY0ILQntCo0JrQmCDQpdCe0KDQodCiCivQmNCC0J7QqNCa0Jgg0J3QmNCa0J7Qm9CQCivQmNCC0KPQqNCa0Jgg0KHQotCV0JLQkNCdCivQmNCR0KDQkNCl0JjQnCDQlNCV0JzQmNCgCivQmNCR0KDQkNCl0JjQnNCQ0JPQmNCLINCd0JDQlNCQCivQmNCR0KDQkNCl0JjQnNCYINCY0JHQoNCQ0KXQmNCcCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCU0JXQoNCS0JjQqNCQCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCV0JzQmNCbCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCl0JDQnNCU0JjQiNCQCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CY0JHQoNCQ0KXQmNCc0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCS0JXQoNCQCivQmNCR0KDQkNCl0JjQnNCf0JDQqNCY0Isg0JDQndCQCivQmNCR0KDQkNCI0KLQldCgINCY0JLQkNCdCivQmNCR0KDQkNCI0KLQldCgINCJ0KPQkdCe0JzQmNCgCivQmNCR0KDQkNCI0KLQldCgINCc0JvQkNCU0JXQnQor0JjQkdCg0JjQqNCV0JLQmNCLINCC0KPQm9CQ0JPQkAor0JjQkdCg0JjQqNCV0JLQmNCLINCc0JjQoNCh0JDQlAor0JjQkdCg0JjQqNCV0JLQmNCLINCh0KPQkNCUCivQmNCR0KDQntCn0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQmNCR0KDQntCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JHQoNCe0KfQmNCLINCg0JDQotCe0JzQmNCgCivQmNCR0KDQntCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCR0KDQntCn0JjQiyDQktCV0KDQkAor0JjQkdCg0J7Qm9CYINCR0JDQnQor0JjQptCe0KHQmtCYINCb0JDQl9CQ0KAKK9CY0JTQldCYINCd0JDQndCU0J7QoAor0JjQlNCV0IjQmCDQiNCe0JLQkNCdCivQmNCU0JXQiNCYINCS0JDQm9CV0KDQmNCI0JAKK9CY0JTQoNCY0JfQntCS0JjQiyDQkNCl0JzQldCiINCU0KAKK9CY0JTQktCe0KDQldCQ0J0g0KLQntCU0J7QoAor0JjQlNCS0J7QoNCV0JDQnSDQktCY0JrQldCd0KLQmNCI0JUKK9CY0KTQiNCjINCQ0J3Qk9CV0JvQmNCa0JAKK9CY0KTQiNCjINCT0JDQkdCe0KAKK9CY0KTQmtCeINCY0JvQlNCY0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CY0JPQmNCLINCW0JjQktCQ0JTQmNCdCivQmNCT0JjQiyDQgtCj0JvQktCQ0KHQmNCI0JAKK9CY0JPQmNCLINCQ0J3QmtCQCivQmNCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JPQmNCLINCI0J7QktCQ0J3QmtCQCivQmNCT0JjQiyDQnNCY0JvQmtCQCivQmNCT0JjQiyDQnNCY0JvQntCg0JDQlAor0JjQk9CY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQmNCT0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCT0JjQiyDQndCY0JrQntCb0JAKK9CY0JPQmNCLINCf0JDQktCb0JUKK9CY0JPQmNCLINCg0JDQiNCa0J4KK9CY0JPQmNCLINCh0JDQqNCQCivQmNCT0JjQiyDQodCi0JXQktCQ0J0KK9CY0JPQmNCLINCh0KLQldCS0JDQnQor0JjQk9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JjQk9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JjQk9CY0Isg0JLQo9Ca0JAKK9CY0JPQndCQ0KYg0J/QldCg0JAKK9CY0JPQitCQ0KYg0JLQmNCU0JAKK9CY0JPQitCQ0KLQmNCLINCQ0J3QmtCQCivQmNCT0IrQkNCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0JjQk9CK0JDQotCY0Isg0JTQo9Co0JDQndCa0JAKK9CY0JPQitCQ0KLQmNCLINCT0J7QiNCa0J4KK9CY0JPQitCQ0KLQmNCLINCd0JXQktCV0J3QmtCQCivQmNCT0IrQkNCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JjQk9CK0JDQotCY0Isg0JLQmNCUCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQidCY0InQkNCd0JAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JzQkNCg0JAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQnNCY0KLQkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQndCe0JLQkNCaCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCg0JDQlNCQ0KjQmNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CY0JPQitCQ0KLQntCSLdCg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCQINCf0KDQntCkCivQmNCT0IrQkNCi0J7QktCY0Isg0JbQmNCS0JrQngor0JjQk9CK0JDQotCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQmNCT0IrQkNCi0J7QktCY0Isg0JDQndCT0JXQm9CQCivQmNCT0IrQkNCi0J7QktCY0Isg0JDQndCa0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CY0JPQitCQ0KLQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JjQk9CK0JDQotCe0JLQmNCLINCa0J7QodCQ0KDQkAor0JjQk9CK0JDQotCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JjQk9CK0JDQotCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQlQor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9Ca0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQntCoINCU0KAg0J/QoNCQ0JLQndCY0JoKK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQntCoCivQmNCT0IrQkNCi0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmNCT0IrQkNCi0J7QktCY0Isg0KHQkNCS0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCT0IrQkNCi0J7QktCY0Isg0JLQldCg0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQktCV0KDQkAor0JjQk9CK0JDQotCe0JLQmNCLINCS0JjQlNCQ0JoKK9CY0JPQitCQ0KLQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCT0IrQkNCi0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JjQk9CK0JDQotCe0JLQmNCLINCS0KPQp9Ca0J4KK9CY0JPQitCQ0KLQntCS0KHQmtCYINCV0KTQoNCV0JwKK9CY0JPQitCY0Isg0JHQoNCQ0J3QmtCeCivQmNCT0IrQmNCLINCI0J7QktCQ0J0KK9CY0JPQitCY0Isg0KHQotCe0IjQkNCdCivQmNCT0IrQmNCLINCX0JjQl9CQCivQmNCT0IrQmNCLINCX0J7QoNCQ0J0KK9CY0JPQitCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JjQk9Cg0JDQp9Ca0Jgg0ILQntCg0ILQlQor0JjQk9Cg0JDQp9Ca0Jgg0JXQotCV0JvQkAor0JjQk9Cg0JDQp9Ca0Jgg0IjQo9Cb0JjQnQor0JjQk9Cg0JDQp9Ca0Jgg0JrQkNCg0JvQngor0JjQk9Cg0JDQp9Ca0Jgg0JvQkNCh0JvQngor0JjQk9Cg0JjQiyDQndCQ0JTQkAor0JjQk9Cg0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQmNCT0KDQo9Ci0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0KXQkNChINCY0JvQntCd0JAKK9CY0IjQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9CY0IjQkNCn0JjQiyDQnNCQ0JrQodCY0JwKK9CY0IjQldCS0InQldCSINCk0JXQntCU0J7QoAor0JjQmtCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmNCa0JDQndCe0JLQmNCLINCY0JLQkNCdCivQmNCa0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JjQmtCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CY0JrQldCJ0JjQiyDQmNCg0KTQkNCdCivQmNCa0JjQiyDQlNCV0IjQkNCdCivQmNCa0JjQiyDQiNCe0JLQkNCdCivQmNCa0JjQiyDQnNCb0JDQlNCV0J0KK9CY0JrQmNCLINCc0JvQkNCU0JXQnQor0JjQmtCY0Isg0KHQnNCY0InQkNCd0JAKK9CY0JrQntCU0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JrQntCd0JjQiyDQgtCj0KDQkAor0JjQmtCe0J3QntCSINCU0JXQiNCQ0J0KK9CY0JrQntCi0JjQnSDQiNCQ0J3QntCoCivQmNCa0J7QotCY0J0g0IjQntCS0JDQndCa0JAKK9CY0JrQntCi0JjQnSDQnNCQ0KLQmNCI0JAKK9CY0JrQntCi0JjQnSDQn9CQ0JsKK9CY0JrQntCi0JjQnSDQn9CV0KLQkNCgCivQmNCa0J7QktCQ0KYg0JHQntCo0JrQngor0JjQmtCe0JLQkNCmINCh0KLQldCS0JDQnQor0JjQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CY0JrQntCS0JjQiyDQnNCY0JvQntCoCivQmNCa0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9CY0JrQntCS0JjQiyDQktCV0JvQmNCd0JrQkAor0JjQmtCg0JDQqNCV0JIg0IjQldCb0JjQptCQCivQmNCa0KDQkNCo0JXQkiDQiNCe0JLQkNCdCivQmNCbINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCbINCI0JXQm9CY0KbQkAor0JjQm9Cn0JjQmiDQnNCQ0KDQmNCI0JAKK9CY0JvQldCoINCk0KDQkNCd0KbQmNCo0JrQkAor0JjQm9CV0Kgg0JjQnNCg0JUKK9CY0JvQldCoINCY0KDQldCd0JAKK9CY0JvQldCoINCc0JjQpdCQ0JjQm9CeCivQmNCb0JXQqCDQnNCY0JvQkNCdCivQmNCb0JXQqCDQnNCY0KDQntCh0JvQkNCSCivQmNCb0JjQp9CY0Isg0JDQndCi0KPQnQor0JjQm9CY0KfQmNCLINCY0JLQkNCdCivQmNCb0JjQp9CY0Isg0InQo9CR0JjQptCQCivQmNCb0JjQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CY0JvQmNCn0JjQiyDQn9CV0KLQkNCgCivQmNCb0JjQp9CY0Ist0J/QntCf0JjQiyDQntCJ0JAKK9CY0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQmNCb0JjQiyDQp9CV0JTQngor0JjQm9CY0Isg0KjQmNCc0KPQnQor0JjQm9CY0Isg0JbQldCJ0JrQngor0JjQm9CY0Isg0JbQmNCS0JrQngor0JjQm9CY0Isg0JbQmNCS0JrQngor0JjQm9CY0Isg0JbQmNCS0JrQngor0JjQm9CY0Isg0JbQmNCS0J7QnNCY0KAKK9CY0JvQmNCLINCW0JjQktCe0JzQmNCgCivQmNCb0JjQiyDQltCY0JLQntCc0JjQoAor0JjQm9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9CY0JvQmNCLINCW0JjQktCe0KDQkNCUCivQmNCb0JjQiyDQgtCe0KDQgtCVCivQmNCb0JjQiyDQgtCe0KDQgtCVCivQmNCb0JjQiyDQgtCe0KDQgtCVCivQmNCb0JjQiyDQkNCb0JXQmtCh0JAg0JTQoAor0JjQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCLINCQ0J3QmNCm0JAKK9CY0JvQmNCLINCQ0J3QmtCY0KbQkAor0JjQm9CY0Isg0JDQoNCh0JAKK9CY0JvQmNCLINCQ0KDQodCQCivQmNCb0JjQiyDQkdCY0InQkNCd0JAKK9CY0JvQmNCLINCR0JvQkNCT0J7QiNCVCivQmNCb0JjQiyDQkdCe0KjQmtCeCivQmNCb0JjQiyDQkdCe0KjQmtCeCivQmNCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0JjQm9CY0Isg0JHQntCR0JDQnQor0JjQm9CY0Isg0JHQntCT0JTQkNCdCivQmNCb0JjQiyDQkdCe0JPQntCJ0KPQkQor0JjQm9CY0Isg0JHQntCg0JjQodCb0JDQktCa0JAKK9CY0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CY0JvQmNCLINCR0J7QoNCa0JAKK9CY0JvQmNCLINCR0J7QodCY0InQmtCQCivQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCb0JjQiyDQkdCg0JDQndCa0J4KK9CY0JvQmNCLINCR0KDQkNCd0JrQngor0JjQm9CY0Isg0JHQoNCQ0J3QmtCeCivQmNCb0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JjQm9CY0Isg0KbQldCm0JjQm9CY0IjQkAor0JjQm9CY0Isg0KbQktCV0KLQkAor0JjQm9CY0Isg0KbQktCY0IjQkNCdCivQmNCb0JjQiyDQlNCQ0J3QlQor0JjQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9CY0JvQmNCLINCU0JXQiNCQ0J0KK9CY0JvQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JjQm9CY0Isg0JTQntCR0KDQntCh0JDQkgor0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JvQmNCLINCU0KDQkNCT0JDQnQor0JjQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CY0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CY0JvQmNCLINCU0KDQkNCT0J4KK9CY0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CY0JvQmNCLINCU0KPQqNCQ0J3QmtCQCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQmNCm0JAKK9CY0JvQmNCLINCU0KPQqNCY0KbQkAor0JjQm9CY0Isg0JXQlNCY0KIKK9CY0JvQmNCLINCV0KDQltCY0JrQkAor0JjQm9CY0Isg0JPQntCg0JDQnQor0JjQm9CY0Isg0JPQntCg0JDQnQor0JjQm9CY0Ist0JPQoNCV0JPQntCgINCc0JjQoNCQCivQmNCb0JjQiyDQmNCb0JjQiNCQCivQmNCb0JjQiyDQmNCb0JjQiNCQCivQmNCb0JjQiyDQmNCb0JjQiNCQCivQmNCb0JjQiyDQmNCg0JXQndCQCivQmNCb0JjQiyDQmNCS0JDQnSDQlNCgCivQmNCb0JjQiyDQmNCS0JDQnQor0JjQm9CY0Isg0JjQktCQ0J0KK9CY0JvQmNCLINCI0JXQm9CV0J3QkAor0JjQm9CY0Isg0IjQldCb0JXQndCQCivQmNCb0JjQiyDQiNCV0JvQldCd0JrQngor0JjQm9CY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CY0JvQmNCLINCI0JXQm9Ca0JAKK9CY0JvQmNCLINCI0J7QodCY0KQKK9CY0JvQmNCLINCI0J7QktCQ0J3QmtCQCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQmNCm0JAKK9CY0JvQmNCLINCa0J7QktCY0InQmtCQCivQmNCb0JjQiyDQmtCg0KHQotCQ0J0KK9CY0JvQmNCLINCb0JDQl9CQ0KAKK9CY0JvQmNCLINCb0JDQl9CQ0KAKK9CY0JvQmNCLINCb0JDQl9CQ0KAKK9CY0JvQmNCLINCJ0KPQkdCY0KjQkAor0JjQm9CY0Isg0InQo9CR0JjQqNCQCivQmNCb0JjQiyDQidCj0JHQmNCm0JAKK9CY0JvQmNCLINCJ0KPQkdCY0KbQkAor0JjQm9CY0Isg0InQo9CR0JjQptCQCivQmNCb0JjQiyDQidCj0JHQmNCd0JrQngor0JjQm9CY0Isg0InQo9CR0J4KK9CY0JvQmNCLINCc0JDQoNCQCivQmNCb0JjQiyDQnNCQ0KDQkAor0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JvQmNCLINCc0JDQoNCY0IjQkAor0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQmNCb0JjQiyDQnNCQ0KDQmNCd0JrQngor0JjQm9CY0Isg0JzQkNCg0JrQngor0JjQm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CY0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQmNCb0JjQiyDQnNCY0JvQkNCU0JjQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JAKK9CY0JvQmNCLINCc0JjQm9CV0J3QkAor0JjQm9CY0Isg0JzQmNCb0JXQndCQCivQmNCb0JjQiyDQnNCY0JvQldCdCivQmNCb0JjQiyDQnNCY0JvQldCS0JAKK9CY0JvQmNCLINCc0JjQm9CVCivQmNCb0JjQiyDQnNCY0JvQmNCLCivQmNCb0JjQiyDQnNCY0JvQmNCm0JAKK9CY0JvQmNCLINCc0JjQm9CY0KbQkAor0JjQm9CY0Isg0JzQmNCb0JjQptCQCivQmNCb0JjQiyDQnNCY0JvQmNCh0JDQkgor0JjQm9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JjQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9CY0JvQmNCLINCc0JjQm9CY0JLQntCICivQmNCb0JjQiyDQnNCY0JvQmNCS0J7QiAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CY0JvQmNCLLdCc0JjQm9Cj0KjQmNCLINCe0JvQk9CQCivQmNCb0JjQiyDQnNCY0JvQo9Co0JrQkAor0JjQm9CY0Isg0JzQmNCb0KPQotCY0J0KK9CY0JvQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9CY0JvQmNCLINCc0JjQntCU0KDQkNCTCivQmNCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JjQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CY0JvQmNCLINCc0JjQoNCI0JDQndCQCivQmNCb0JjQiyDQnNCY0KDQmtCeCivQmNCb0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JvQmNCLINCc0JjQotCQ0KAKK9CY0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQmNCb0JjQiyDQnNCe0JzQp9CY0JvQngor0JjQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CY0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQmNCb0JjQiyDQndCQ0JTQkAor0JjQm9CY0Isg0J3QldCC0J4KK9CY0JvQmNCLINCd0JXQkdCe0IjQqNCQCivQmNCb0JjQiyDQndCV0JHQntCI0KjQkAor0JjQm9CY0Isg0J3QldCd0JDQlAor0JjQm9CY0Isg0J3QldCS0JXQndCa0JAKK9CY0JvQmNCLINCd0JjQmtCe0JvQkAor0JjQm9CY0Isg0J3QmNCa0J7Qm9CQCivQmNCb0JjQiyDQntCR0KDQkNCUCivQmNCb0JjQiyDQntCR0KDQldCdCivQmNCb0JjQiyDQntCb0JPQkAor0JjQm9CY0Isg0J7Qm9CT0JAKK9CY0JvQmNCLINCe0JvQmNCS0JXQoNCQCivQmNCb0JjQiyDQntCh0KLQntCI0JAKK9CY0JvQmNCLINCf0JDQktCb0JUg0JTQmNCf0Jsg0JjQndCTCivQmNCb0JjQiyDQn9CQ0JLQm9CVCivQmNCb0JjQiyDQn9CV0KDQngor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Ist0J/QldCi0KDQntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQmNCb0JjQiyDQn9Cg0JXQktCY0KHQm9CQ0JIKK9CY0JvQmNCLINCg0JDQlNCVCivQmNCb0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JjQm9CY0Isg0KDQkNCU0J7QiNCa0JAKK9CY0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0JjQm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CY0JvQmNCLINCg0JDQlNCeCivQmNCb0JjQiyDQoNCQ0J3QmtCeCivQmNCb0JjQiyDQoNCQ0KLQmtCeCivQmNCb0JjQiyDQoNCQ0KLQmtCeCivQmNCb0JjQiyDQoNCj0JbQkAor0JjQm9CY0Isg0KDQo9CW0JjQptCQCivQmNCb0JjQiyDQodCQ0JLQkCDQlNCgCivQmNCb0JjQiyDQodCQ0JLQkAor0JjQm9CY0Ist0KHQkNCS0JjQiyDQktCe0IjQmNCh0JvQkNCS0JAKK9CY0JvQmNCLINCh0JjQnNCeCivQmNCb0JjQiyDQodCY0J3QmNCo0JAKK9CY0JvQmNCLINCh0JvQkNCS0JjQptCQCivQmNCb0JjQiyDQodCb0JDQktCa0J4KK9CY0JvQmNCLINCh0JvQkNCS0JrQngor0JjQm9CY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQoNCC0JDQnQor0JjQm9CY0Isg0KHQoNCC0JDQnQor0JjQm9CY0Isg0KHQoNCC0JDQnQor0JjQm9CY0Isg0KHQoNCV0KLQldCdCivQmNCb0JjQiyDQodCi0JDQndCQCivQmNCb0JjQiyDQodCi0JDQndCY0KjQkAor0JjQm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JjQm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JjQm9CY0Isg0KHQotCQ0J3QmtCQCivQmNCb0JjQiyDQodCi0JXQktCeCivQmNCb0JjQiyDQodCi0J7QiNCQ0J3Qp9CVCivQmNCb0JjQiyDQodCi0J7QiNCQ0J0KK9CY0JvQmNCLINCh0KLQntCI0JDQnQor0JjQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0JjQm9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JjQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JjQm9CY0Isg0KLQkNCi0IjQkNCd0JAKK9CY0JvQmNCLINCi0J7QlNCVCivQmNCb0JjQiyDQotCe0JTQlQor0JjQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JjQm9CY0Isg0JLQkNCh0JAKK9CY0JvQmNCLINCS0JXQoNCQCivQmNCb0JjQiyDQktCY0JTQntCh0JDQkgor0JjQm9CY0Isg0JLQmNCd0JrQkAor0JjQm9CY0Isg0JLQmNCd0JrQngor0JjQm9CY0Isg0JLQm9CQ0JTQkNCdCivQmNCb0JjQiyDQktCb0JDQlNCQ0J0KK9CY0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0KLQmtCQCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0JjQm9CY0Isg0JfQm9CQ0KLQmtCeCivQmNCb0JjQiyDQl9Cb0JDQotCa0J4KK9CY0JvQmNCLINCX0J7QoNCQ0J0KK9CY0JvQmNCLINCX0J7QoNCY0KbQkAor0JjQm9CY0JHQkNCo0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JjQm9CY0JHQkNCo0JjQiyDQndCY0JrQntCb0JAKK9CY0JvQmNCR0JDQqNCY0Isg0J7QodCi0J7QiNCQCivQmNCb0JjQkdCQ0KjQmNCLINCh0KLQldCS0JDQnQor0JjQm9CY0JHQkNCo0JjQiyDQodCi0JXQktCeCivQmNCb0JjQkdCQ0KjQmNCLINCX0JvQkNCi0JAKK9CY0JvQmNCV0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCI0Isg0KHQnNCY0InQkAor0JjQm9CY0IjQiyDQodCS0JXQotCe0JvQmNCaCivQmNCb0JjQiNCQ0KjQldCSINCh0J7QpNCY0IjQkAor0JjQm9CY0IjQkNCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCI0JDQqNCV0JLQmNCLINCU0JDQoNCQCivQmNCb0JjQiNCQ0KjQldCS0JjQiyDQidCj0JHQmNCo0JAKK9CY0JvQmNCI0JDQqNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JjQm9CY0IjQkNCX0Jgg0JDQkdCU0JjQodCQ0JzQmAor0JjQm9CY0IjQkNCX0Jgg0JTQkNCj0KIKK9CY0JvQmNCI0JDQl9CYINCl0JDQpNCY0JfQkAor0JjQm9CY0IjQkNCX0Jgg0IjQkNCb0KfQmNCdCivQmNCb0JjQiNCQ0JfQmCDQl9CQ0IjQndCV0JsKK9CY0JvQmNCI0JDQl9Ce0JLQmNCLINCS0JXQj9Cg0JjQiNCQCivQmNCb0JjQiNCV0JIg0JjQktCQ0J0KK9CY0JvQmNCI0JXQkiDQmNCS0JDQnQor0JjQm9CY0IjQldCSINCJ0KPQkdCV0J0KK9CY0JvQmNCI0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CY0JvQmNCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmNCb0JjQiNCV0JLQmNCLINCg0JDQlNCVCivQmNCb0JjQiNCV0JLQodCa0Jgg0IvQmNCg0J4KK9CY0JvQmNCI0JXQktCh0JrQmCDQgtCe0KDQgtCVCivQmNCb0JjQiNCV0JLQodCa0Jgg0JTQkNCd0JjQm9CeCivQmNCb0JjQiNCY0J0g0JbQkNCg0JrQngor0JjQm9CY0IjQmNCdINCW0JjQktCQ0J0KK9CY0JvQmNCI0JjQnSDQlNCj0KjQkNCdCivQmNCb0JjQiNCY0J0g0IjQldCb0JXQndCQCivQmNCb0JjQiNCY0J0g0IjQntCS0JDQnQor0JjQm9CY0IjQmNCdINCI0J7QktCQ0J0KK9CY0JvQmNCI0JjQnSDQnNCY0JvQkNCdCivQmNCb0JjQiNCY0J0g0JzQmNCb0JjQktCe0IgKK9CY0JvQmNCI0JjQnSDQnNCY0JvQmNCS0J7QiAor0JjQm9CY0IjQmNCdINCc0JjQm9Ce0KgKK9CY0JvQmNCI0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JjQm9CY0IjQmNCdINCh0KLQldCS0JDQnQor0JjQm9CY0IjQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CY0JvQmNCI0JjQnSDQotCQ0J3QkNCh0JjQiNCVCivQmNCb0JjQiNCY0J0g0KPQoNCe0KgKK9CY0JvQmNCI0JjQnSDQl9Ce0KDQmtCQCivQmNCb0JjQnSDQltCQ0KDQmtCeCivQmNCb0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0J0g0JDQndCa0JjQptCQCivQmNCb0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQmNCb0JjQnSDQkdCe0KDQmtCQCivQmNCb0JjQnSDQlNCg0JDQk9CY0IrQkAor0JjQm9CY0J0g0JTQoNCQ0JPQmNCK0JAKK9CY0JvQmNCdINCU0KPQqNCQ0J0KK9CY0JvQmNCdINCU0KPQqNCQ0J0KK9CY0JvQmNCdINCY0JLQkNCdCivQmNCb0JjQnSDQidCj0JHQmNCd0JrQngor0JjQm9CY0J0g0InQo9CR0J7QnNCY0KAKK9CY0JvQmNCdINCc0JjQm9CQ0J0KK9CY0JvQmNCdINCc0JjQm9CV0J3QmtCeCivQmNCb0JjQnSDQnNCb0JDQlNCV0J0KK9CY0JvQmNCdINCd0JXQlNCV0InQmtCeCivQmNCb0JjQnSDQndCY0JrQntCb0JAKK9CY0JvQmNCdINCg0JDQlNCVCivQmNCb0JjQnSDQodCd0JXQltCQ0J3QkAor0JjQm9CY0J0g0KHQntCk0JjQiNCQCivQmNCb0JjQnSDQotCY0JzQkAor0JjQm9CY0J0g0JfQntCg0JAKK9CY0JvQmNCd0KfQmNCLINCc0J7QnNCY0KAKK9CY0JvQmNCd0KfQmNCLINCd0JXQkdCe0IjQqNCQCivQmNCJ0JDQl9CYINCP0JDQnNCY0IkKK9CY0JvQmtCY0Isg0IjQldCb0JAKK9CY0JvQmtCY0Isg0JzQkNCg0JjQptCQCivQmNCb0JrQmNCLINCc0JjQm9CQ0J0KK9CY0JvQmtCY0Isg0JzQmNCg0JAKK9CY0JvQmtCY0Isg0J3QkNCU0JAKK9CY0JvQmtCY0Isg0J3QldCR0J7QiNCo0JAKK9CY0JvQmtCY0Isg0J3QldCd0JDQlAor0JjQm9Ca0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JjQm9Ca0JjQiyDQodCi0JXQktCY0KbQkAor0JjQm9Ca0JjQiyDQl9Cb0JDQotCe0IjQkAor0JjQm9Ca0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JjQm9Ce0JLQkNCn0JAg0JzQkNCg0JrQngor0JjQm9Ce0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQntCS0KHQmtCYINCX0JvQkNCi0JAKK9CY0JzQqNCY0KDQntCS0JjQiyDQmtCe0JvQntCc0JDQnQor0JjQnNCo0JjQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JzQqNCY0KDQntCS0JjQiyDQodCc0JDQiNCY0JsKK9CY0JzQkNCc0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9CY0JzQkdCg0JAg0JbQmNCS0J7QiNCY0J0KK9CY0JzQkdCg0JjQqNCY0Isg0JHQldCl0JjQiNCQCivQmNCc0JHQoNCY0KjQmNCLINCY0JLQkNCdCivQmNCc0JHQoNCe0IrQldCSINCg0JDQiNCa0J4KK9CY0JzQkdCg0J7QitCV0JIg0KDQkNCI0JrQngor0JjQnNCR0KDQntCK0JXQkiDQoNCQ0IjQmtCeCivQmNCc0JHQoNCe0IrQldCSINCh0J/QkNCh0J7QiNCQCivQmNCc0JHQoNCe0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQmNCc0JHQoNCe0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmNCc0JHQoNCe0J3QntCS0JjQiyDQiNCj0JvQmtCQCivQmNCc0KDQldCo0Jgg0JjQktCQ0J0KK9CY0J3QgtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CY0J3QgtCY0Isg0JTQo9Co0JDQnQor0JjQndCC0JjQiyDQiNCV0JvQldCd0JAKK9CY0J3QgtCY0Isg0IjQldCb0JjQptCQCivQmNCd0ILQmNCLINCi0JXQoNCV0JcKK9CY0J3QgtCY0Isg0JLQntCI0JjQnQor0JjQndCC0JjQnSDQltCY0JLQmtCeCivQmNCd0ILQmNCdINCC0KPQoNCQCivQmNCd0ILQmNCdINCU0KPQqNCQ0J0KK9CY0J3QgtCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQmNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0J3QmNCLINCU0KPQqNCQ0J0KK9CY0J3QmNCLINCI0JXQm9CV0J3QkAor0JjQndCY0Isg0JrQoNCh0KLQkAor0JjQndCY0Isg0InQo9CR0JjQptCQCivQmNCd0JjQiyDQnNCY0JvQkNCdINCU0KAKK9CY0J3QmNCLINCi0JjQndCU0JAKK9CY0J3QmNCLINCS0JDQodCeCivQmNCK0JDQpiDQkdCe0JPQlNCQ0J0KK9CY0IrQkNCmINCU0KDQkNCT0JjQptCQCivQmNCK0JDQpiDQiNCe0JLQkNCdCivQmNCK0JDQpiDQidCj0JHQmNCm0JAKK9CY0IrQkNCmINCc0JjQoNCa0J4KK9CY0IrQkNCmINCd0JjQmtCe0JvQkAor0JjQitCQ0KYg0KDQkNCU0JAKK9CY0IrQkNCmINCg0JDQlNCVCivQmNCK0JDQpiDQoNCQ0JTQntCc0JjQoAor0JjQitCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0JjQitCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0JjQndCe0JLQkNCdINCU0J7QkdCg0JjQktCe0IjQlQor0JjQn9CQ0Kcg0JrQkNCi0JDQm9CY0J3QkAor0JjQn9CQ0Kcg0JrQkNCi0JjQptCQCivQmNCf0JjQiyDQl9Ce0KDQkAor0JjQoNCo0JDQmCDQmNCS0JDQnQor0JjQoNCo0JDQiNCYINCI0J7QktCQ0J0KK9CY0KDQqNCQ0IjQmCDQodCi0JXQktCQCivQmNCg0JjQiyDQkdCe0JbQngor0JjQoNCY0Isg0JPQkNCo0J/QkNCgCivQmNCg0JzQldCoINCc0JDQoNCY0JAKK9CY0KDQnNCV0IrQmCDQiNCe0JbQldCkCivQmNCg0JzQldCK0Jgg0IjQntCh0JjQnwor0JjQoNCc0JXQitCYINCc0JDQoNCT0JjQogor0JjQodCQ0JjQm9Ce0JLQmNCLINCJ0KPQkdCY0KjQkAor0JjQodCQ0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQmNCh0JDQmNCb0J7QktCY0Isg0JzQmNCg0JrQngor0JjQodCQ0JjQm9Ce0JLQmNCLINCS0JXQm9CY0KHQkNCSCivQmNCh0JDQiNCV0JIg0JzQkNCg0JjQiNCQCivQmNCh0JDQiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9CY0KHQkNCI0JXQktCY0Isg0JzQmNCb0J7QqAor0JjQodCQ0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JjQodCQ0IjQm9Ce0JIg0IjQntCd0JXQmwor0JjQodCQ0IjQm9Ce0JIg0IjQntCd0JXQmwor0JjQodCQ0IjQm9Ce0JIg0IjQntCd0JXQmwor0JjQodCQ0IjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCh0JDQiNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0KHQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CY0KHQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQmNCh0JDQiNCb0J7QktCY0Isg0KTQldCU0J7QoAor0JjQodCQ0Jog0JjQm9CY0IjQkAor0JjQodCQ0Jog0KHQotCQ0J3QmtCeCivQmNCh0JDQmtCe0JIg0JbQkNCg0JrQngor0JjQodCQ0JrQntCSINCW0JjQktCe0IjQmNCdCivQmNCh0JDQmtCe0JIg0JDQptCa0J4KK9CY0KHQkNCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQmNCh0JDQmtCe0JIg0KbQktCV0KLQmtCeCivQmNCh0JDQmtCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmNCh0JDQmtCe0JIg0JTQoNCQ0JPQkNCd0JAKK9CY0KHQkNCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQmNCh0JDQmtCe0JIg0JTQo9Co0JjQptCQCivQmNCh0JDQmtCe0JIg0JXQodCi0JXQoAor0JjQodCQ0JrQntCSINCY0JLQkNCdCivQmNCh0JDQmtCe0JIg0IjQldCb0JjQptCQCivQmNCh0JDQmtCe0JIg0IjQntCS0JDQndCa0JAKK9CY0KHQkNCa0J7QkiDQmtCQ0KLQmNCm0JAKK9CY0KHQkNCa0J7QkiDQm9CV0J/QntCh0JDQktCQCivQmNCh0JDQmtCe0JIg0InQo9CR0JjQptCQCivQmNCh0JDQmtCe0JIg0InQo9CR0JjQptCQCivQmNCh0JDQmtCe0JIg0JzQmNCb0JDQnQor0JjQodCQ0JrQntCSINCc0JjQm9CQ0J0KK9CY0KHQkNCa0J7QkiDQnNCY0JvQldCd0JrQngor0JjQodCQ0JrQntCSINCc0JjQm9CY0JLQntCICivQmNCh0JDQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CY0KHQkNCa0J7QkiDQnNCY0JvQo9Ci0JjQnQor0JjQodCQ0JrQntCSINCc0JjQntCU0KDQkNCTCivQmNCh0JDQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JjQodCQ0JrQntCSINCd0JXQndCQ0JQKK9CY0KHQkNCa0J7QkiDQn9CV0KLQkNCgCivQmNCh0JDQmtCe0JIg0KDQkNCU0JUKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQmNCm0JAKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQmNCd0JrQkAor0JjQodCQ0JrQntCSINCg0JDQlNCY0JLQntCICivQmNCh0JDQmtCe0JIg0KDQkNCU0JzQmNCb0JAKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQntCc0JjQoAor0JjQodCQ0JrQntCSINCg0JDQlNCe0JLQkNCdCivQmNCh0JDQmtCe0JIg0KDQo9CW0JjQptCQCivQmNCh0JDQmtCe0JIg0KHQkNCS0JAKK9CY0KHQkNCa0J7QkiDQodCb0JDQktCa0J4KK9CY0KHQkNCa0J7QkiDQodCc0JjQidCa0JAKK9CY0KHQkNCa0J7QkiDQodCg0JXQlNCe0IjQlQor0JjQodCQ0JrQntCSINCh0KLQldCS0JDQnQor0JjQodCQ0JrQntCSINCh0KLQldCS0JDQnQor0JjQodCQ0JrQntCSINCi0J7QlNCe0KAKK9CY0KHQkNCa0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQmNCh0JDQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0JjQodCQ0JrQntCSINCX0J7QoNCY0KbQkAor0JjQodCQ0JrQntCS0JjQiyDQgtCj0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9CY0KHQkNCa0J7QktCY0Isg0JDQndCQCivQmNCh0JDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CY0KHQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmNCh0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CY0KHQkNCa0J7QktCh0JrQmCDQiNCQ0JrQntCSCivQmNCh0JDQmtCe0JLQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQmNCh0JDQndCe0JLQmNCLINCQ0J3QkAor0JjQodCY0IjQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JjQodCY0IjQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQmNCh0JrQkNCb0J7QkiDQnNCQ0KDQmNCI0JDQndCQCivQmNCh0JrQmNCLINCc0JjQm9CQ0JTQmNCdCivQmNCh0JrQoNCY0J0g0JHQoNCQ0J3QmtCeCivQmNCh0JrQoNCY0J0g0IjQldCb0JXQndCQCivQmNCh0JvQkNCc0JHQkNCo0JjQiyDQidCY0InQkNCd0JAKK9CY0KHQm9CQ0JzQmCDQkNCR0JjQkQor0JjQodCb0JDQnNCe0JLQmNCLINCc0JDQpdCc0KPQlAor0JjQodCb0JDQnNCe0JLQmNCLINCd0JDQlNCQCivQmNCh0JzQkNCY0JvQmCDQqNCQ0IvQmNCgCivQmNCi0JDQm9CeINCV0JLQmNCm0JAKK9CY0KLQkNCb0J4g0JzQkNCg0JrQngor0JjQotCV0JHQldCI0JDQpiDQl9Ce0KDQkAor0JjQktCQ0KfQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQktCQ0KfQmtCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQmNCS0JDQp9Ca0J7QktCY0Isg0J3QkNCU0JAKK9CY0JLQkNCo0KfQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQktCQ0KjQp9CV0J3QmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCS0JDQqNCn0JXQndCa0J4g0JrQkNCi0JjQptCQCivQmNCS0JDQqNCa0KMt0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQpNCV0JvQmNCn0JjQkAor0JjQktCQ0Jog0IjQkNCdCivQmNCS0JDQnSDQqNCQ0J3QlNCe0KAKK9CY0JLQkNCdINCC0KPQoNCQCivQmNCS0JDQnSDQkNCi0JjQm9CQCivQmNCS0JDQnSDQptCV0KbQmNCb0JjQiNCQCivQmNCS0JDQnSDQk9CQ0JHQntCgCivQmNCS0JDQnSDQiNCe0JbQldCkCivQmNCS0JDQnSDQiNCe0JLQkNCdCivQmNCS0JDQnSDQmtCQ0KLQkNCb0JjQnQor0JjQktCQ0J0g0JzQmNCl0JDQiNCb0J4KK9CY0JLQkNCdINCh0JjQm9CS0JXQodCi0JXQoAor0JjQktCQ0J0g0JLQldCg0J7QndCQCivQmNCS0JDQndCn0JXQkiDQmNCg0JjQndCQCivQmNCS0JDQndCn0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQmNCS0JDQndCn0JXQktCY0Isg0JbQkNCg0JrQniDQlNCgCivQmNCS0JDQndCn0JXQktCY0Isg0JHQntCo0JrQngor0JjQktCQ0J3Qp9CV0JLQmNCLINCR0KDQkNCd0JrQkAor0JjQktCQ0J3Qp9CV0JLQmNCLINCU0JDQoNCa0J4KK9CY0JLQkNCd0KfQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CY0JLQkNCd0KfQldCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JjQktCQ0J3Qp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQkNCd0KfQldCS0JjQiyDQk9CQ0JLQoNCQCivQmNCS0JDQndCn0JXQktCY0Isg0IjQntCS0JDQnQor0JjQktCQ0J3Qp9CV0JLQmNCLINCI0J7QktCQ0J0KK9CY0JLQkNCd0KfQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JjQktCQ0J3Qp9CV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQmNCS0JDQndCn0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlSDQn9Cg0J7QpNCV0KHQntCgCivQmNCS0JDQndCn0JXQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCn0JXQktCY0Isg0J/QldCi0JDQoAor0JjQktCQ0J3Qp9CV0JLQmNCLINCg0JDQlNCY0JLQntCIINCU0JjQn9CbINCY0J3Qkwor0JjQktCQ0J3Qp9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQmNCS0JDQndCn0JXQktCY0Isg0KHQmNCd0JjQqNCQCivQmNCS0JDQndCn0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQmNCS0JDQndCn0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JjQktCQ0J3Qp9CV0JLQmNCLINCS0JvQkNCU0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CY0JLQkNCd0KfQmNCLINCQ0J3QotCVCivQmNCS0JDQndCn0JjQiyDQkdCg0JDQndCa0J4KK9CY0JLQkNCd0KfQmNCLINCU0KDQkNCT0JDQnQor0JjQktCQ0J3Qp9CY0Isg0IjQntCh0JjQnwor0JjQktCQ0J3Qp9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JjQktCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQmNCS0JDQndCn0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCn0JjQiyDQntCb0JPQkAor0JjQktCQ0J3Qp9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JjQktCQ0J3Qp9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmNCS0JDQndCn0JjQiyDQodCi0JXQktCQ0J0KK9CY0JLQkNCd0KfQmNCLINCh0KLQldCS0JDQnQor0JjQktCQ0J3Qp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQktCQ0J3Qp9CY0J0g0J3QmNCa0J7Qm9CQCivQmNCS0JDQndCn0JjQnSDQntCJ0JXQkwor0JjQktCQ0J3Qp9Cj0Jog0J/QkNCS0JDQngor0JjQktCQ0J3QlNCY0Isg0JjQktCY0KbQkAor0JjQktCQ0J3QlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CY0JLQkNCd0JXQltCQINCQ0J3QlNCg0JjQiNCQCivQmNCS0JDQndCV0Jog0ILQo9Cg0JAKK9CY0JLQkNCd0JXQmiDQlNCj0KjQmtCeCivQmNCS0JDQndCV0Jog0JLQmNCa0KLQntCg0JjQiNCQCivQmNCS0JDQndCYINCl0JjQidCQCivQmNCS0JDQndCY0Kgg0JrQntCS0JjQidCa0JAKK9CY0JLQkNCd0JjQqCDQodCb0JDQktCa0J4KK9CY0JLQkNCd0JjQqCDQodCb0JDQktCa0J4KK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCC0KPQoNCeCivQmNCS0JDQndCY0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQmNCS0JDQndCY0KjQldCS0JjQiyDQldCS0JjQptCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQmNCb0JjQiNCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0KLQkNCgCivQmNCS0JDQndCY0KjQldCS0JjQiyDQndCQ0JTQkAor0JjQktCQ0J3QmNCo0JXQktCY0Isg0J3QkNCU0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCd0JXQgtCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQndCV0JzQkNCK0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCe0JvQk9CQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCY0KjQldCS0JjQiyDQoNCQ0IjQmtCeCivQmNCS0JDQndCY0KjQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmNCS0JDQndCY0KjQldCS0JjQiyDQotCY0J3QkAor0JjQktCQ0J3QmNCo0JXQktCY0Isg0JLQo9Ca0JjQptCQCivQmNCS0JDQndCY0Isg0KfQldCU0J7QnNCY0KAKK9CY0JLQkNCd0JjQiyDQgtCe0KDQgtCVCivQmNCS0JDQndCY0Isg0JDQm9CR0JXQoNCiCivQmNCS0JDQndCY0Isg0JDQndCQCivQmNCS0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQmNCS0JDQndCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CY0JLQkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0JjQiyDQlNCg0JDQk9CY0KbQkAor0JjQktCQ0J3QmNCLINCU0KPQqNCQ0J0KK9CY0JLQkNCd0JjQiyDQlNCj0KjQkNCdCivQmNCS0JDQndCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JjQktCQ0J3QmNCLINCY0JLQkNCd0JAKK9CY0JLQkNCd0JjQiyDQmNCS0JDQnQor0JjQktCQ0J3QmNCLINCY0JLQkNCdCivQmNCS0JDQndCY0Isg0JjQktCQ0J0KK9CY0JLQkNCd0JjQiyDQiNCe0JLQngor0JjQktCQ0J3QmNCLINCc0JDQoNCY0J3QkAor0JjQktCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CY0JLQkNCd0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCY0Isg0JzQmNCb0JDQnQor0JjQktCQ0J3QmNCLINCd0JXQktCV0J3QmtCQCivQmNCS0JDQndCY0Isg0J/QldCg0KHQmNCU0JAKK9CY0JLQkNCd0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCY0Isg0KHQndCV0JbQkNCd0JAKK9CY0JLQkNCd0JjQiyDQodCi0JXQktCQ0J0KK9CY0JLQkNCd0JjQiyDQl9Cb0JDQotCe0IjQlQor0JjQktCQ0IrQmCDQodCY0J3QmNCo0JAKK9CY0JLQkNCK0Jgg0JLQldCg0J7QndCY0JrQkAor0JjQktCQ0J3QmtCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQmNCS0JDQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JjQktCQ0J3QmtCe0JLQmNCLINCR0J7QltCQ0J3QkAor0JjQktCQ0J3QmtCe0JLQmNCLINCR0J7QltCeCivQmNCS0JDQndCa0J7QktCY0Isg0IjQkNCd0JrQngor0JjQktCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQmNCS0JDQndCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CY0JLQkNCd0JrQntCS0JjQiyDQnNCY0JvQlQor0JjQktCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CY0JLQkNCd0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQmNCS0JDQndCa0J7QktCY0Isg0J3QldCd0JDQlAor0JjQktCQ0J3QmtCe0JLQmNCLINCd0J7QktCeCivQmNCS0JDQndCa0J7QktCY0Isg0KDQkNCU0JUKK9CY0JLQkNCd0JrQntCS0JjQiyDQoNCQ0JTQlQor0JjQktCQ0J3QmtCe0JLQmNCLINCh0JDQktCeCivQmNCS0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmNCS0JDQndCa0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CY0JLQkNCd0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JjQktCQ0J3QntCSINCW0JjQktCQ0J0KK9CY0JLQkNCd0J7QkiDQgtCe0JrQkAor0JjQktCQ0J3QntCSINCC0J7QoNCC0JUKK9CY0JLQkNCd0J7QkiDQgtCj0KDQgtCV0JLQmtCQCivQmNCS0JDQndCe0JIg0ILQo9Cg0ILQmNCd0JrQkAor0JjQktCQ0J3QntCSINCR0J7QoNCY0KEKK9CY0JLQkNCd0J7QkiDQlNCY0JzQmNCi0JDQoAor0JjQktCQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQmNCS0JDQndCe0JIg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CY0JLQkNCd0J7QkiDQldCc0JjQm9CY0IjQkAor0JjQktCQ0J3QntCSINCV0JLQmNCm0JAKK9CY0JLQkNCd0J7QkiDQk9CQ0JLQoNCQCivQmNCS0JDQndCe0JIg0IjQo9Cb0JrQkAor0JjQktCQ0J3QntCSINCa0JDQotCY0KbQkAor0JjQktCQ0J3QntCSINCJ0KPQkdCe0JzQmNCgCivQmNCS0JDQndCe0JIg0JzQkNCg0JjQptCQCivQmNCS0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQmNCS0JDQndCe0JIg0JzQmNCo0JAKK9CY0JLQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JjQktCQ0J3QntCSINCc0JjQm9CVCivQmNCS0JDQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CY0JLQkNCd0J7QkiDQnNCY0KLQkAor0JjQktCQ0J3QntCSINCd0JjQmtCe0JvQkAor0JjQktCQ0J3QntCSINCe0JvQmNCS0JXQoNCQCivQmNCS0JDQndCe0JIg0J/QldCi0JDQoAor0JjQktCQ0J3QntCSINCh0JXQoNCT0JjQiNCVCivQmNCS0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQmNCS0JDQndCe0JIg0JLQldCg0JAKK9CY0JLQkNCd0J7QkiDQl9CU0KDQkNCS0JrQngor0JjQktCQ0J3QntCSINCX0J7QoNCQCivQmNCS0JDQndCe0JIg0JfQntCg0JjQptCQCivQmNCS0JDQndCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCW0JjQmtCQCivQmNCS0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQmNCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CY0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQCivQmNCS0JDQndCe0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CY0JLQkNCd0J7QktCY0Isg0JHQntCW0JAKK9CY0JLQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQmNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQptCS0JXQiNCQCivQmNCS0JDQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQmNCS0JDQndCe0JLQmNCLINCU0JXQodCQCivQmNCS0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JjQktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JjQktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmNCS0JDQndCe0JLQmNCLINCk0KDQkNCK0JAKK9CY0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JjQktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCY0JLQkNCdINCU0KAKK9CY0JLQkNCd0J7QktCY0Isg0IjQkNCd0J7QqAor0JjQktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CY0JLQkNCd0J7QktCY0Isg0IjQntCg0JTQkNCdCivQmNCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JrQntCS0JjQndCa0JAKK9CY0JLQkNCd0J7QktCY0Isg0JrQoNCh0KLQntCc0JjQoAor0JjQktCQ0J3QntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JjQktCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CY0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CY0JLQkNCd0J7QktCY0Isg0InQo9CU0JXQktCY0KIKK9CY0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnSDQodCj0JTQmNCI0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQotCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JrQngor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQo9CdCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmNCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JjQktCQ0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JjQktCQ0J3QntCS0JjQiyDQndCV0JPQntCS0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CY0JLQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0JjQktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCe0JLQmNCLINCf0JXQotCg0JAKK9CY0JLQkNCd0J7QktCY0Isg0KDQkNCo0JrQngor0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCS0JDQndCe0JLQmNCLINCh0JXQm9CY0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCh0JjQnNCeCivQmNCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQmNCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQotCQ0JzQldCdCivQmNCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQmNCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JjQktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmNCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQmNCS0JDQndCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQmNCS0JDQndCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JAKK9CY0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0JjQktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JjQktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdINCU0JjQn9CbINCY0J3Qkwor0JjQktCQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0JjQktCQ0J3QntCS0KHQmtCYINCC0J7QoNCC0JUKK9CY0JLQkNCd0J7QktCh0JrQmCDQkdCb0JDQk9Ce0IjQlQor0JjQktCQ0J3QntCS0KHQmtCYINCY0JvQmNCI0JAKK9CY0JLQkNCd0J7QktCh0JrQmCDQodCi0JDQndCQCivQmNCS0JDQotCe0JLQmNCLINCR0KDQkNCd0JrQngor0JjQktCV0JPQldCoINCQ0J3QkAor0JjQktCV0JPQldCoINCY0KjQotCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CY0JLQldCT0JXQqCDQm9CQ0KHQm9CeCivQmNCS0JXQmiDQktCb0JDQlNCY0JzQmNCgCivQmNCS0JXQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CY0JLQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JjQktCV0KLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JjQktCV0KLQmNCLINCU0KDQkNCT0JDQnQor0JjQktCV0KLQmNCLINCb0JDQl9CQCivQmNCS0JXQotCY0Isg0InQmNCJ0JDQndCQCivQmNCS0JXQotCY0Isg0JzQmNCb0J7QiNCa0J4KK9CY0JLQldCi0JjQiyDQoNCQ0JTQlSDQlNCgCivQmNCS0JXQotCY0Isg0KDQkNCU0JUg0JTQoAor0JjQktCV0KLQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCS0JXQotCY0Isg0JLQkNCh0JAKK9CY0JLQldCi0JjQiyDQktCV0KHQndCQCivQmNCS0JXQl9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JLQldCX0JjQiyDQlNCg0JDQk9CeCivQmNCS0JXQl9CY0Isg0JPQntCI0JrQngor0JjQktCV0JfQmNCLINCc0JDQoNCa0J4g0JTQoAor0JjQktCV0JfQmNCLINCc0JjQm9CVCivQmNCS0JXQl9CY0Isg0JfQntCg0JDQnQor0JjQktCV0JfQmNCLINCX0JLQntCd0JrQngor0JjQktCY0KfQmNCLINCc0JjQoNCQCivQmNCS0JjQp9CY0Isg0J3QkNCU0JAKK9CY0JLQmNCn0JjQiy3QotCe0JzQmNCLINCR0JjQidCQ0J3QkAor0JjQktCY0Isg0JHQm9CQ0JPQntCc0JjQoAor0JjQktCY0Isg0JTQldCh0JDQndCa0JAKK9CY0JLQmNCLINCI0KPQm9CY0IjQkAor0JjQktCY0Isg0JzQldCb0JjQotCQCivQmNCS0JjQiyDQnNCY0KDQmtCeINCc0KAg0J/QpQor0JjQktCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQntCV0KYKK9CY0JLQmNCLINCg0JDQlNCVCivQmNCS0JjQiyDQodCi0J7QiNCQ0J0KK9CY0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CY0JLQmNCLINCS0JDQodCeCivQmNCS0JjQiyDQktCe0IjQmNCc0JjQoAor0JjQktCY0Isg0JfQm9CQ0KLQmtCeCivQmNCS0JrQntCSINCn0JXQlNCe0JzQmNCgCivQmNCS0JrQntCSINCW0JjQktCa0JAKK9CY0JLQmtCe0JIg0ILQntCg0ILQlQor0JjQktCa0J7QkiDQkdCe0KjQmtCeCivQmNCS0JrQntCSINCR0J7QoNCY0JLQntCICivQmNCS0JrQntCSINCU0JDQndCY0JvQngor0JjQktCa0J7QkiDQlNCe0JHQoNCY0JLQntCICivQmNCS0JrQntCSINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JIg0JjQodCQCivQmNCS0JrQntCSINCY0JLQkNCdCivQmNCS0JrQntCSINCI0JXQm9CV0J3QkAor0JjQktCa0J7QkiDQiNCV0JvQldCd0JAKK9CY0JLQmtCe0JIg0JrQkNCi0JjQptCQCivQmNCS0JrQntCSINCa0JDQotCY0KbQkAor0JjQktCa0J7QkiDQmtCQ0KLQmNCm0JAKK9CY0JLQmtCe0JIg0JzQmNCb0JXQndCa0J4KK9CY0JLQmtCe0JIg0JzQmNCb0JjQptCQCivQmNCS0JrQntCSINCc0JjQm9Ce0JLQkNCdCivQmNCS0JrQntCSINCe0JvQk9CY0KbQkAor0JjQktCa0J7QkiDQn9CV0KLQkNCgCivQmNCS0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CY0JLQmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9CY0JLQmtCe0JIg0KHQkNCS0JAKK9CY0JLQmtCe0JIg0KHQldCa0KPQm9CQCivQmNCS0JrQntCSINCh0JvQkNCS0JrQngor0JjQktCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQmNCS0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQmtCe0JIg0KHQotCQ0J3QkAor0JjQktCa0J7QkiDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JjQktCa0J7QkiDQodCi0JXQktCQ0J0KK9CY0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQmNCS0JrQntCSINCh0KLQldCS0JDQnQor0JjQktCa0J7QkiDQo9Cg0J7QqAor0JjQktCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQmNCS0JrQntCS0JjQiyDQgtCj0KDQngor0JjQktCa0J7QktCY0Isg0JDQndCi0KPQnQor0JjQktCa0J7QktCY0Isg0JDQoNCh0JAKK9CY0JLQmtCe0JLQmNCLINCR0J7QltCQCivQmNCS0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JLQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCU0JjQktCd0JAKK9CY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCV0KHQotCV0KDQkAor0JjQktCa0J7QktCY0Isg0JPQo9Ch0KLQkNCSINCU0KAKK9CY0JLQmtCe0JLQmNCLLdCY0JLQkNCd0JTQldCa0JjQiyDQlNCQ0J3QmNCm0JAKK9CY0JLQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JjQktCa0J7QktCY0Isg0IjQntCS0JDQnQor0JjQktCa0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9CY0JLQmtCe0JLQmNCLLdCb0JDQl9CQ0KAg0KLQkNCi0IjQkNCd0JAg0JTQoAor0JjQktCa0J7QktCY0Isg0JvQo9Ca0JAKK9CY0JLQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JjQktCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JjQktCa0J7QktCY0Isg0JzQmNCb0JXQndCi0JjQiNCVCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQldCS0JAKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9CVCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9Ce0InQo9CRINCU0JjQn9CbINCY0J3Qkwor0JjQktCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmNCS0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JjQktCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmNCS0JrQntCS0JjQiyDQndCQ0KLQkNCo0JAKK9CY0JLQmtCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JjQktCa0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CY0JLQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JjQktCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmNCS0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JjQktCa0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9CY0JLQmtCe0JLQmNCLINCg0JDQndCa0J4KK9CY0JLQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JjQktCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmNCS0JrQntCS0JjQiyDQktCV0KDQkAor0JjQktCa0J7QktCY0Isg0JLQldCg0JAKK9CY0JLQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JjQktCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQktCa0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQmNCS0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JjQktCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CY0JLQmtCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JjQktCe0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JLQntCoINCg0J7QlNCe0InQo9CRCivQmNCS0J7QqCDQktCe0IjQmNCh0JvQkNCSCivQmNCS0J7QqNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JLQntCo0JXQkiDQlNCj0KjQkNCdCivQmNCS0J7QqNCV0JIg0JjQm9CY0IjQkAor0JjQktCe0KjQldCSINCa0JDQotCQ0KDQmNCd0JAKK9CY0JLQntCo0JXQkiDQmtCe0KHQotCQCivQmNCS0J7QqNCV0JIg0JzQkNCg0JrQngor0JjQktCe0KjQldCSINCh0JvQkNCS0JrQngor0JjQktCe0KjQldCSINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JLQntCo0JXQktCY0Isg0ILQo9Cg0J4KK9CY0JLQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CY0JLQntCo0JXQktCY0Isg0JTQkNCd0JjQptCQCivQmNCS0J7QqNCV0JLQmNCLINCT0J7QiNCa0J4KK9CY0JLQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JjQktCe0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JjQktCe0KjQldCS0JjQiyDQodCQ0JLQkAor0JjQktCe0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCS0J7QqNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CY0JLQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CY0JLQntCS0JjQiyDQn9CV0KLQkNCgCivQmNCX0JHQoNCQ0JTQmNCLINCh0KLQldCS0JDQnQor0JjQl9CT0JDQoNCI0JDQnSDQnNCY0JvQmNCS0J7QiAor0IjQkNCo0KfQldCd0JrQntCSINCh0KLQkNCd0JAKK9CI0JDQqNCQ0KAg0KXQkNCh0JDQnQor0IjQkNCo0JDQoNCQ0JPQmNCLINCY0JLQkNCd0JrQkAor0IjQkNCo0JDQoNCQ0JPQmNCLINCX0JjQiNCeCivQiNCQ0KjQkNCg0JXQktCY0Isg0KXQo9Ch0JXQmNCdCivQiNCQ0KjQkNCg0JXQktCY0Isg0JzQo9Cl0JDQoNCV0JwKK9CI0JDQqNCQ0KDQldCS0JjQiyDQoNCQ0JzQngor0IjQkNCo0JDQoNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0JDQqNCQ0KDQmCDQj9CQ0KTQldCgCivQiNCQ0KjQkNCg0J7QkiDQqNCQ0JjQnwor0IjQkNCo0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCo0JjQiyDQodCY0J3QmNCo0JAKK9CI0JDQqNCY0J3QodCa0Jgg0KDQo9CW0JAKK9CI0JDQqNCeINCQ0J3QkAor0IjQkNCo0J4g0IjQntCW0JXQpCDQlNCgCivQiNCQ0KjQniDQnNCY0JvQntCh0JDQkgor0IjQkNCo0J4g0JzQmNCg0J7QodCb0JDQktCQCivQiNCQ0KjQntCS0JjQiyDQk9Ce0IjQmtCeCivQiNCQ0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQkNCL0JjQnNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCb0JXQmtCQ0KAKK9CI0JDQi9CY0JzQntCS0JjQiyDQkdCe0IjQmNCdCivQiNCQ0IvQmNCc0J7QktCY0Isg0IjQntCS0JAKK9CI0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCL0JjQnNCe0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQiNCQ0IvQmNCc0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0JDQi9CY0JzQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCQ0IvQmNCc0J7QktCY0Isg0KHQotCV0JLQngor0IjQkNCL0JjQnNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0JDQi9CY0JzQntCS0KHQmtCYINCc0J7QiNCh0JUKK9CI0JDQkdCb0JDQndCe0JIg0ILQo9Ca0JAKK9CI0JDQkdCb0JDQndCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CI0JDQkdCb0JDQndCe0JIg0JjQk9CK0JDQotCY0IjQlQor0IjQkNCR0JvQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9CI0JDQkdCb0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9CI0JDQkdCb0JDQndCe0JIg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQiNCQ0JHQm9CQ0J3QntCSINCX0J7QoNCQCivQiNCQ0JHQm9CQ0J3QntCSINCX0J7QoNCQCivQiNCQ0JHQm9CQ0J3QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCR0JvQkNCd0J7QktCY0Isg0KDQkNCi0JrQngor0IjQkNCm0JDQndCe0JLQmNCLINCW0JjQktCa0JAKK9CI0JDQptCQ0J3QntCS0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAKK9CI0JDQptCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCQ0KbQmNCo0JjQnSDQkNCd0JrQkAor0IjQkNCm0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQkNCm0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQk9CV0KAg0JDQndCQCivQiNCQ0JPQldCgINCc0JDQoNCY0J0KK9CI0JDQk9CV0KAg0JzQmNCl0JDQiNCb0J4KK9CI0JDQk9CV0KAg0J/QkNCS0JDQngor0IjQkNCT0JXQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQk9CV0KLQmNCLINCc0JjQm9Ce0KgKK9CI0JDQk9CV0KLQmNCLINCh0KLQldCS0JDQnQor0IjQkNCT0JXQotCY0Isg0JLQldCb0JjQnNCY0KAKK9CI0JDQk9CV0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0JDQk9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JDQk9Cb0JjQptCQINCR0KDQkNCd0JrQngor0IjQkNCT0JvQmNCm0JAg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCT0IrQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCT0J7QlNCY0Isg0JDQndCC0JXQm9Ca0J4KK9CI0JDQk9Ce0JTQmNCLINCU0KPQqNCQ0J0KK9CI0JDQk9Ce0JTQmNCLINCc0JjQm9CY0KbQkAor0IjQkNCT0J7QlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCT0J7QlNCY0Isg0J/QldCi0JDQoAor0IjQkNCT0J7QlNCY0Isg0KDQkNCd0JrQngor0IjQkNCT0J7QlNCY0Isg0JLQldCJ0JrQngor0IjQkNCT0J7QlNCY0Isg0JLQm9CQ0JTQngor0IjQkNCT0KPQqNCiLdCQ0JrQmtCQ0JQg0JvQkNCU0JAKK9CI0JDQpdCI0JAg0KDQldCo0JDQlAor0IjQkNCl0KPQoNCQINCS0KPQmtCQ0KjQmNCdCivQiNCQ0IjQp9CQ0J3QmNCdINCR0J7QltCeCivQiNCQ0IjQp9CV0JLQmNCLINCQ0J3Qk9CV0JvQkAor0IjQkNCI0JDQk9CY0J0g0KDQkNCU0J7QktCQ0J0KK9CI0JDQiNCQ0JPQmNCdINCh0J/QkNCh0J7QiNCVCivQiNCQ0IjQkNCT0JjQnSDQl9Ce0KDQmNCm0JAKK9CI0JDQiNCY0Isg0ILQntCg0ILQlSDQlNCgCivQiNCQ0IjQmNCLINCC0J7QoNCC0JUKK9CI0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0IjQmNCLINCY0JvQmNCI0JAKK9CI0JDQiNCY0Isg0JjQktCQ0J3QmtCQCivQiNCQ0IjQmNCLINCb0JDQl9CQ0KAKK9CI0JDQiNCY0Isg0JvQldCd0JrQkAor0IjQkNCI0JjQiyDQnNCY0JvQldCd0JAKK9CI0JDQiNCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0IjQmNCLINCd0JjQmtCe0JvQkAor0IjQkNCI0JjQiyDQodCQ0JLQkAor0IjQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQiNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0IjQkNCI0JjQnSDQm9CQ0JTQmNCh0JvQkNCSCivQiNCQ0IjQmNCdINCc0JjQoNCI0JDQndCQCivQiNCQ0IjQmNCdINCX0JvQkNCi0JrQngor0IjQkNCa0KjQkCDQn9CY0KDQntCo0JrQkAor0IjQkNCa0KjQldCS0JDQpiDQlNCg0JDQk9CeCivQiNCQ0JrQqNCY0Isg0JbQkNCg0JrQngor0IjQkNCa0KjQmNCLINCC0J7QoNCC0JUKK9CI0JDQmtCo0JjQiyDQgtCe0KDQgtCVCivQiNCQ0JrQqNCY0Isg0ILQo9Cg0JAKK9CI0JDQmtCo0JjQiyDQkNCd0JAKK9CI0JDQmtCo0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0JDQmtCo0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0JDQmtCo0JjQiyDQkdCe0IjQkNCdCivQiNCQ0JrQqNCY0Isg0JHQoNCQ0J3QmtCeCivQiNCQ0JrQqNCY0Isg0JTQkNCd0JUKK9CI0JDQmtCo0JjQiyDQlNCQ0J3QlQor0IjQkNCa0KjQmNCLINCU0JDQndCVCivQiNCQ0JrQqNCY0Isg0JTQldCI0JDQnQor0IjQkNCa0KjQmNCLINCU0JzQmNCi0JDQoAor0IjQkNCa0KjQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCa0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0JDQmtCo0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQnQor0IjQkNCa0KjQmNCLINCU0KPQqNCQ0J0KK9CI0JDQmtCo0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQnQor0IjQkNCa0KjQmNCLINCU0KPQqNCa0J4KK9CI0JDQmtCo0JjQiyDQldCc0JjQmwor0IjQkNCa0KjQmNCLINCY0JvQmNCI0JAKK9CI0JDQmtCo0JjQiyDQmNCb0JjQiNCQCivQiNCQ0JrQqNCY0Isg0JjQktCY0KbQkAor0IjQkNCa0KjQmNCLINCY0JLQmNCm0JAKK9CI0JDQmtCo0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQiNCQ0JrQqNCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0IjQkNCa0KjQmNCLINCI0JXQm9CV0J3QkAor0IjQkNCa0KjQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCQ0JrQqNCY0Isg0IjQntCS0JDQnQor0IjQkNCa0KjQmNCLINCI0J7QktCQ0J0KK9CI0JDQmtCo0JjQiyDQmtCQ0KLQmNCm0JAKK9CI0JDQmtCo0JjQiyDQidCY0InQkAor0IjQkNCa0KjQmNCLINCJ0KPQkdCY0KHQkNCSCivQiNCQ0JrQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JDQmtCo0JjQiyDQidCj0JHQntCc0JjQoAor0IjQkNCa0KjQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0JrQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JDQmtCo0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0JrQqNCY0Isg0JzQkNCg0JrQngor0IjQkNCa0KjQmNCLINCc0JDQoNCa0J4KK9CI0JDQmtCo0JjQiyDQnNCY0IjQkNCiCivQiNCQ0JrQqNCY0Isg0JzQmNCb0JDQnQor0IjQkNCa0KjQmNCLINCc0JjQm9CQ0J0KK9CI0JDQmtCo0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCa0KjQmNCLINCc0JjQm9CV0JLQkAor0IjQkNCa0KjQmNCLINCc0JjQm9Ce0KgKK9CI0JDQmtCo0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCa0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0JrQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JDQmtCo0JjQiyDQnNCY0KDQmtCeCivQiNCQ0JrQqNCY0Isg0J3QldCR0J7QiNCo0JAKK9CI0JDQmtCo0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCa0KjQmNCLINCd0JXQndCQ0JQKK9CI0JDQmtCo0JjQiyDQn9CQ0JLQm9CVCivQiNCQ0JrQqNCY0Isg0J/QkNCS0JvQlQor0IjQkNCa0KjQmNCLINCf0JXQotCQ0KAKK9CI0JDQmtCo0JjQiyDQn9CV0KLQkNCgCivQiNCQ0JrQqNCY0Ist0J/QoNCe0JLQp9CYINCR0KDQkNCd0JrQkAor0IjQkNCa0KjQmNCLINCg0JDQlNCV0J3QmtCeCivQiNCQ0JrQqNCY0Isg0KDQkNCU0JUKK9CI0JDQmtCo0JjQiyDQoNCQ0JTQlQor0IjQkNCa0KjQmNCLINCg0JDQlNCY0KjQkAor0IjQkNCa0KjQmNCLINCg0JDQlNCe0IjQmtCeCivQiNCQ0JrQqNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQmtCo0JjQiyDQoNCQ0JTQo9CdCivQiNCQ0JrQqNCY0Isg0KDQmNCh0KLQngor0IjQkNCa0KjQmNCLINCg0J7QodCQCivQiNCQ0JrQqNCY0Isg0KDQo9CW0JjQptCQCivQiNCQ0JrQqNCY0Isg0KDQo9CW0JjQptCQCivQiNCQ0JrQqNCY0Isg0KHQkNCS0JAKK9CI0JDQmtCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0JrQqNCY0Isg0KHQnNCY0InQkAor0IjQkNCa0KjQmNCLINCh0KLQldCS0JDQnQor0IjQkNCa0KjQmNCLINCh0JLQldCi0JrQngor0IjQkNCa0KjQmNCLINCh0JLQldCi0JvQkNCd0JAg0JTQmNCf0Jsg0J/QpQor0IjQkNCa0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0JDQmtCo0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQiNCQ0JrQqNCY0Isg0JLQldCb0JjQnNCY0KAKK9CI0JDQmtCo0JjQiyDQktCV0KDQkAor0IjQkNCa0KjQmNCLINCS0JvQkNCU0JAKK9CI0JDQmtCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCQ0JrQqNCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQkNCa0JDQkSDQlNCV0JbQlQor0IjQkNCa0JDQkSDQiNCe0JbQldCkCivQiNCQ0JrQkNCRINCf0JDQktCV0JsKK9CI0JDQmtCV0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQmtCV0KjQldCS0JjQiyDQndCY0JrQngor0IjQkNCa0JjQqNCQINCY0KjQotCS0JDQnQor0IjQkNCa0JjQiyDQgtCe0KDQgtCVCivQiNCQ0JrQmNCLINCU0JDQndCY0KbQkAor0IjQkNCa0JjQiyDQlNCQ0KDQkAor0IjQkNCa0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCa0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQkNCa0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQkNCa0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0JrQmNCLINCS0JjQlNCQCivQiNCQ0JrQmNCm0JAg0KfQldCU0J4KK9CI0JDQmtCY0KbQkCDQmNCb0JjQiNCQCivQiNCQ0JrQmNCc0J7QkiDQodCb0JDQktCa0J4g0JTQoCDQm9CV0JrQkNCgCivQiNCQ0JrQmNCc0J7QktCQLdCT0JDQl9CV0J/QntCS0JAg0IjQo9Cb0JrQkCDQlNCgCivQiNCQ0JrQmNCc0J7QktCh0JrQmCDQkdCb0JDQk9Ce0IgKK9CI0JDQmtCY0JzQntCS0KHQmtCYINCR0J7Qk9Ce0KHQm9CQ0JIKK9CI0JDQmtCY0JzQntCS0KHQmtCYINCR0J7QoNCa0J4KK9CI0JDQmtCY0JzQntCS0KHQmtCYINCU0JDQndCVCivQiNCQ0JrQm9CY0Isg0JjQktCQ0J0KK9CI0JDQmtCe0JEg0IjQntCo0JrQkAor0IjQkNCa0J7QkSDQiNCe0JbQldCkCivQiNCQ0JrQntCRINCb0JDQiNCe0KgKK9CI0JDQmtCe0JHQkNCmINCC0KPQoNCC0JjQptCQCivQiNCQ0JrQntCR0Jgg0JHQntCg0JjQoQor0IjQkNCa0J7QkdCYINCi0JDQotCI0JDQndCQCivQiNCQ0JrQntCR0Jgg0JLQmNCb0JzQntCoCivQiNCQ0JrQntCR0J7QktCY0Isg0KTQoNCQ0IrQngor0IjQkNCa0J7QkdChINCY0KjQotCS0JDQnQor0IjQkNCa0J7QndCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9CI0JDQmtCe0J3QmNCLINCI0JDQodCc0JjQndCQCivQiNCQ0JrQntCd0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCe0JXQpgor0IjQkNCa0J7QndCY0Isg0KDQkNCU0JzQmNCb0JAKK9CI0JDQmtCe0J/Qp9CV0JLQmNCLINCR0KDQkNCd0JrQkAor0IjQkNCa0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQiNCQ0JrQntCf0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCa0J7Qn9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQmtCe0KLQmNCdINCW0JjQktCa0J4KK9CI0JDQmtCe0KLQmNCdINCa0J7QodCi0JAKK9CI0JDQmtCe0KLQmNCdINCf0JvQldCc0JXQndCa0JAKK9CI0JDQmtCe0JIg0KHQkNCb0JDQnNCj0J0KK9CI0JDQmtCe0JLQkNCmINCY0JLQkNCdCivQiNCQ0JrQntCS0JjQiyDQoNCQ0JTQlQor0IjQkNCa0J7QktCJ0JXQkiDQltCQ0KDQmtCeCivQiNCQ0JrQntCS0InQldCSINCC0KPQoNCQCivQiNCQ0JrQntCS0InQldCSINCC0KPQoNCY0KbQkAor0IjQkNCa0J7QktCJ0JXQkiDQkNCb0JXQmtCh0JXQiAor0IjQkNCa0J7QktCJ0JXQkiDQlNCQ0J3QmNCm0JAKK9CI0JDQmtCe0JLQidCV0JIg0JTQoNCQ0JPQkNCdCivQiNCQ0JrQntCS0InQldCSINCU0KPQqNCQ0J0KK9CI0JDQmtCe0JLQidCV0JIg0JjQktCQ0J0KK9CI0JDQmtCe0JLQidCV0JIg0IjQldCk0KDQldCcCivQiNCQ0JrQntCS0InQldCSINCa0JDQotCQCivQiNCQ0JrQntCS0InQldCSINCa0J7QodCi0JAKK9CI0JDQmtCe0JLQidCV0JIg0JrQoNCY0KHQotCY0KTQntCgCivQiNCQ0JrQntCS0InQldCSINCc0JDQoNCY0J3QkAor0IjQkNCa0J7QktCJ0JXQkiDQnNCY0JvQntCoCivQiNCQ0JrQntCS0InQldCSINCc0JjQm9Ce0KgKK9CI0JDQmtCe0JLQidCV0JIg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCa0J7QktCJ0JXQkiDQoNCQ0JTQntCS0JDQnQor0IjQkNCa0J7QktCJ0JXQkiDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0JrQntCS0InQldCSINCh0JLQldCi0J7Ql9CQ0KAKK9CI0JDQmtCe0JLQidCV0JIg0JLQm9CQ0JTQkAor0IjQkNCa0J7QktCJ0JXQkiDQl9Cb0JDQotCe0IjQlQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JbQmNCS0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCC0J7QoNCC0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0JrQntCS0InQldCS0JjQiyDQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCR0J7QltCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JHQntCT0JTQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQkdCe0KDQmNCo0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCR0KDQkNCd0JrQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JTQkNCc0IjQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCU0JjQktCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCQ0JrQntCS0InQldCS0JjQiyDQldCc0JjQm9CY0IjQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JPQntCI0JrQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JjQk9CK0JDQogor0IjQkNCa0J7QktCJ0JXQktCY0Isg0IjQkNCK0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCI0J7QodCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCe0JLQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0IjQntCS0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCb0JDQl9CQ0KAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0InQo9CR0JjQndCa0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCb0KPQmtCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JjQiwor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CY0JLQntCIINCc0KAg0J/QpQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCJ0JDQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQntCoCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0KDQmtCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0KLQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQntCR0KDQkNCUCivQiNCQ0JrQntCS0InQldCS0JjQiyDQn9CQ0IjQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KDQkNCU0J7QiNCa0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCh0JDQktCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQodCY0JzQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KHQntCK0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCS0JDQodCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQktCQ0KHQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JLQmNCa0KLQntCgCivQiNCQ0JrQntCS0InQldCS0JjQiyDQktCY0JrQotCe0KAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCS0JjQmtCi0J7QoAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0JDQmtCe0JLQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQo9CoINCc0JjQoNCI0JDQndCQCivQiNCQ0JrQo9CR0JXQpiDQgtCj0KDQkAor0IjQkNCa0KPQkdCV0KYg0JvQkNCU0JjQodCb0JDQkgor0IjQkNCc0JAg0J3QkNCU0JAKK9CI0JDQnNCR0J7QoCDQkNCd0JTQoNCV0JAKK9CI0JDQnNCR0J7QoCDQlNCQ0J3QmNCV0JvQkAor0IjQkNCc0JHQntCgINCY0JzQoNCVCivQiNCQ0JzQkdCe0KAg0JzQmNCl0JDQiQor0IjQkNCc0JHQoNCj0KjQmNCLINCk0KDQkNCK0J4KK9CI0JDQnNCY0J3QkCDQnNCY0JvQntCS0JDQnQor0IjQkNCc0JjQndCQINCg0JDQotCa0J4KK9CI0JDQnNCg0JjQmiDQgtCe0KDQgtCVCivQiNCQ0JzQoNCY0Jog0IjQldCb0JXQndCQCivQiNCQ0JzQoNCY0Jog0InQo9CR0JjQptCQCivQiNCQ0JzQoNCY0Jog0J7QotCeCivQiNCQ0J3Qp9CQINCU0JXQiNCQ0J0g0JTQoAor0IjQkNCd0KfQkCDQmtCe0KHQotCQINCU0KAKK9CI0JDQndCn0JAg0InQo9CR0JjQptCQCivQiNCQ0J3Qp9CY0Isg0JHQmNCJ0JDQndCQCivQiNCQ0J3Qp9CY0Isg0JHQntCW0JDQndCQCivQiNCQ0J3Qp9CY0Isg0JHQntCT0JTQkNCdCivQiNCQ0J3Qp9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCQ0J3Qp9CY0Isg0JTQoNCQ0JPQmNCK0JAKK9CI0JDQndCn0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0IjQkNCd0KfQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQkNCd0KfQmNCLINCU0KPQqNCQ0J0KK9CI0JDQndCn0JjQiyDQlNCj0KjQkNCdCivQiNCQ0J3Qp9CY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JDQndCn0JjQiyDQk9Ce0KDQmNCm0JAKK9CI0JDQndCn0JjQiyDQiNCV0KDQntCh0JjQnAor0IjQkNCd0KfQmNCLINCJ0KPQkdCY0KbQkAor0IjQkNCd0KfQmNCLINCc0JjQm9Ce0KgKK9CI0JDQndCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCQ0J3Qp9CY0Isg0JzQm9CQ0JTQldCdCivQiNCQ0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0J3Qp9CY0Isg0J/QldCg0JAKK9CI0JDQndCn0JjQiyDQn9CV0KLQkNCgCivQiNCQ0J3Qp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQndCn0JjQiyDQodCQ0JLQkAor0IjQkNCd0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQkNCd0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQkNCd0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQiNCQ0J3Qp9CY0Isg0KLQmNCd0JrQkAor0IjQkNCd0KfQmNCLINCS0JXQm9CY0JHQntCgCivQiNCQ0J3Qp9CY0Isg0JLQmNCd0JrQkAor0IjQkNCd0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQndCn0JjQiyDQktCb0JDQodCi0JAKK9CI0JDQndCn0KPQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQndCn0KPQoNCY0Isg0JTQkNCg0JjQndCa0JAKK9CI0JDQndCn0KPQoNCY0Isg0JTQo9Co0JDQnQor0IjQkNCd0KfQo9Cg0JjQiyDQiNCe0JLQkNCdCivQiNCQ0J3Qp9Cj0KDQmNCLINCb0JDQl9CQ0KAKK9CI0JDQndCn0KPQoNCY0Isg0JvQldCd0JrQkAor0IjQkNCd0KfQo9Cg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQkNCd0KfQo9Cg0JjQiyDQodCQ0JLQkAor0IjQkNCd0JbQldCa0J7QktCY0Isg0JzQmNCb0JXQktCa0JAKK9CI0JDQndCW0JXQmtCe0JLQmNCLINCe0JvQk9CQCivQiNCQ0J3QltCV0Ikg0JDQndCi0J7QnQor0IjQkNCd0JDQp9CV0Jog0ILQntCg0ILQlQor0IjQkNCd0JDQp9CV0Jog0JrQkNCi0JjQptCQCivQiNCQ0J3QkNCn0JrQntCS0JjQiyDQodCi0J7QmNCbCivQiNCQ0J3QkNCLINCI0JDQndCe0KgKK9CI0JDQndCQ0Isg0JrQkNCg0J7QiQor0IjQkNCd0KbQmNCLINCR0JvQkNCT0J7QiNCVCivQiNCQ0J3QptCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0JDQndCU0KDQmNCLINCC0KPQoNCY0KbQkAor0IjQkNCd0JTQoNCY0Isg0JHQntCT0JTQkNCdCivQiNCQ0J3QlNCg0JjQiyDQiNCQ0J3QlNCg0JjQiNCQCivQiNCQ0J3QlNCg0JjQiyDQnNCQ0KDQmNCd0JrQngor0IjQkNCd0JTQoNCY0Isg0JzQkNCg0JrQngor0IjQkNCd0JTQoNCY0Isg0JzQkNCg0JrQngor0IjQkNCd0JTQoNCY0Isg0JzQmNCL0J4KK9CI0JDQndCU0KDQmNCLINCc0JjQm9CV0J3QkAor0IjQkNCd0JTQoNCY0Isg0JzQmNCb0JjQndCQCivQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQmtCQCivQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JTQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0JDQndCU0KDQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQndCU0KDQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQndCU0KDQmNCLINCc0JjQotCQ0KAKK9CI0JDQndCU0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCQ0J3QlNCg0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCd0JTQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQndCU0KDQmNCLINCg0JDQotCa0J4KK9CI0JDQndCU0KDQmNCLINCg0JjQodCi0J4KK9CI0JDQndCU0KDQmNCLINCh0JjQnNCeCivQiNCQ0J3QlNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QlNCg0JjQiyDQodCg0JXQotCV0J0KK9CI0JDQndCU0KDQmNCLINCh0KLQkNCd0JrQngor0IjQkNCd0JTQoNCY0Isg0KHQotCQ0J3QmtCeCivQiNCQ0J3QlNCg0JjQiyDQodCi0JDQndCa0J4KK9CI0JDQndCU0KDQmNCLINCj0JPQidCV0KjQkAor0IjQkNCd0JTQoNCY0Isg0JLQmNCU0JAKK9CI0JDQndCU0KDQmNCLINCS0JjQndCa0JAKK9CI0JDQndCU0KDQmNCLINCX0J7QoNCQ0J0KK9CI0JDQndCU0KDQmNCLINCX0J7QoNCQ0J0KK9CI0JDQndCV0Kgg0J3QldCS0JXQnQor0IjQkNCd0JXQk9CQINCh0J3QldCW0JDQndCQCivQiNCQ0J3QldCSINCR0JvQkNCT0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0IjQkNCd0JXQktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0JjQp9CY0Isg0JHQm9CQ0JbQngor0IjQkNCd0JjQp9CY0Isg0JHQntCW0JAKK9CI0JDQndCY0KfQmNCLINCI0JXQm9CV0J3QkAor0IjQkNCd0JjQp9CY0Isg0JzQmNCb0JXQktCQCivQiNCQ0J3QmNCn0JjQiyDQnNCY0KDQmtCeCivQiNCQ0J3QmNCn0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQiNCQ0J3QmNCn0JjQiyDQodCi0JXQktCeCivQiNCQ0J3QmNCLINCn0JDQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CI0JDQndCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQndCY0Isg0JDQndCC0JXQm9Ca0J4KK9CI0JDQndCY0Isg0JTQo9Co0JDQnQor0IjQkNCd0JjQiyDQlNCj0KjQmtCeCivQiNCQ0J3QmNCLLdCl0JjQm9CiINCT0J7QoNCU0JDQndCQCivQiNCQ0J3QmNCLINCY0KDQldCd0JAKK9CI0JDQndCY0Isg0JjQktCQ0J0g0JTQoAor0IjQkNCd0JjQiyDQnNCY0JvQmNCh0JDQkgor0IjQkNCd0JjQiyDQndCQ0JTQkAor0IjQkNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0IjQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0JzQmNCb0J7QqAor0IjQkNCd0JjQi9CY0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCe0JfQoNCV0J3QmtCQCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCg0JDQotCa0J4KK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0KHQntCk0JjQiNCQCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0J3QmNCL0JjQnSDQkNCd0JPQldCb0JjQndCQCivQiNCQ0J3QmNCL0JjQnSDQmNCb0JjQiNCQCivQiNCQ0J3QmNCm0JrQmCDQodCi0JDQndCY0JzQmNCgCivQiNCQ0J3QmNCaINCk0JXQoNCV0J3Qpgor0IjQkNCK0JDQndCY0J0g0JHQoNCQ0J3QmtCeCivQiNCQ0IrQkNCd0JjQnSDQodCY0JzQngor0IjQkNCK0JDQotCe0JLQmNCLINCU0JXQiNCQ0J0KK9CI0JDQitCQ0KLQntCS0JjQiyDQk9Ce0KDQmNCm0JAKK9CI0JDQitCQ0KLQntCS0JjQiyDQnNCQ0J3QlQor0IjQkNCK0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JDQitCQ0KLQntCS0JjQiyDQnNCY0KDQmtCeCivQiNCQ0IrQkNCi0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CI0JDQitCQ0KLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQitCQ0KLQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IjQkNCK0JDQotCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQiNCQ0IrQkNCi0J7QktCY0Isg0JLQldCg0JAKK9CI0JDQitCV0KLQntCSINCg0JDQlNCQCivQiNCQ0IrQldCi0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCQ0IrQldCi0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CI0JDQitCV0KLQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IjQkNCK0JXQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQitCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQkNCK0JXQktCY0Isg0JrQodCV0J3QmNCI0JAKK9CI0JDQitCV0JLQmNCLINCX0J7QoNCQ0J0KK9CI0JDQitCV0JLQmNCLINCX0J7QoNCQ0J0KK9CI0JDQitCY0KfQmNCLINCh0JjQnNCeCivQiNCQ0IrQmNCoINCI0JXQm9CY0KbQkAor0IjQkNCK0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQkNCK0JjQiyDQltCV0InQmtCeCivQiNCQ0IrQmNCLINCW0JjQktCa0JAKK9CI0JDQitCY0Isg0JbQmNCS0JrQngor0IjQkNCK0JjQiyDQgtCe0KDQgtCVINCU0KAKK9CI0JDQitCY0Isg0JHQntCo0JrQngor0IjQkNCK0JjQiyDQlNCQ0J3QmNCm0JAKK9CI0JDQitCY0Isg0JTQoNCQ0JPQntCc0JjQoCDQlNCY0J/QmyDQntCV0KYKK9CI0JDQitCY0Isg0JjQm9CY0IjQkAor0IjQkNCK0JjQiyDQiNCV0JvQkAor0IjQkNCK0JjQiyDQiNCV0JLQoNCV0JwKK9CI0JDQitCY0Isg0IjQldCS0KLQngor0IjQkNCK0JjQiyDQiNCe0JLQkNCdCivQiNCQ0IrQmNCLINCI0J7QktCeCivQiNCQ0IrQmNCLINCI0J7QktCeCivQiNCQ0IrQmNCLINCI0J7QktCeCivQiNCQ0IrQmNCLINCa0KHQldCd0JjQiNCQCivQiNCQ0IrQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0IrQmNCLINCb0KPQmtCQCivQiNCQ0IrQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCK0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0IrQmNCLINCc0JjQm9CY0KbQkAor0IjQkNCK0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQkNCK0JjQiyDQnNCY0JvQmtCQCivQiNCQ0IrQmNCLINCc0JjQm9Ce0JzQmNCgCivQiNCQ0IrQmNCLINCc0JvQkNCU0JXQnQor0IjQkNCK0JjQiyDQndCQ0KLQkNCo0JAKK9CI0JDQitCY0Isg0J3QldCR0J7QiNCo0JAKK9CI0JDQitCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQitCY0Isg0KHQkNCS0J4KK9CI0JDQitCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0IrQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0IrQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JzQoAor0IjQkNCK0JjQiyDQktCe0IjQmtCeCivQiNCQ0IrQmNCLINCS0KPQmtCe0KLQkAor0IjQkNCK0JjQnSDQkdCe0JPQntCJ0KPQkQor0IjQkNCK0JjQnSDQlNCQ0JzQiNCQ0J0KK9CI0JDQitCY0J0g0JvQkNCX0JDQoAor0IjQkNCK0JjQnSDQnNCY0JvQmNCS0J7QiAor0IjQkNCK0JjQnSDQoNCQ0JTQmNCS0J7QiAor0IjQkNCK0JjQnSDQodCd0JXQltCQ0J3QkAor0IjQkNCK0J7QqCDQl9Ce0KDQkNCdCivQiNCQ0IrQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCQ0IrQntCo0JXQktCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0IrQntCo0JXQktCY0Isg0KHQotCV0JLQkNCd0JrQkAor0IjQkNCK0KPQqNCV0JLQmNCLINCR0J7QodCY0InQmtCQCivQiNCQ0IrQo9Co0JXQktCY0Isg0JPQntCI0JrQngor0IjQkNCK0KPQqNCV0JLQmNCLINCI0J7QmtCY0KbQkAor0IjQkNCK0KPQqNCV0JLQmNCLINCc0JjQoNCQCivQiNCQ0IrQo9Co0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9CI0JDQitCj0KjQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCK0KPQqNCV0JLQmNCLINCh0KLQntCI0JDQnQor0IjQkNCd0JrQkCDQqNCQ0J3QlNCe0KAKK9CI0JDQndCa0JAg0JjQktCQ0J0KK9CI0JDQndCa0JDQiiDQktCb0JDQlNCeCivQiNCQ0J3QmtCY0Isg0JrQoNCY0KHQotCY0J3QkAor0IjQkNCd0JrQniDQiNCQ0J3QntCoCivQiNCQ0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQkNCd0JrQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9CI0JDQndCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQiNCQ0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCQ0J3QmtCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CI0JDQndCa0J7QkiDQlNCj0KjQkNCdCivQiNCQ0J3QmtCe0JIg0JjQktCQ0J0KK9CI0JDQndCa0J7QkiDQiNCV0JvQmNCm0JAKK9CI0JDQndCa0J7QkiDQiNCe0JLQkNCdCivQiNCQ0J3QmtCe0JIg0IjQntCS0JjQptCQCivQiNCQ0J3QmtCe0JIg0JzQmNCb0JDQnQor0IjQkNCd0JrQntCSINCc0JjQm9CY0IjQkNCd0JAKK9CI0JDQndCa0J7QkiDQnNCY0J7QnNCY0KAKK9CI0JDQndCa0J7QkiDQnNCY0KLQkAor0IjQkNCd0JrQntCSINCc0JjQotCa0J4KK9CI0JDQndCa0J7QkiDQndCQ0JTQkAor0IjQkNCd0JrQntCSINCd0JXQlNCV0InQmtCeCivQiNCQ0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQiNCQ0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQiNCQ0J3QmtCe0JIg0J3QntCS0JrQkAor0IjQkNCd0JrQntCSINCf0KDQldCU0KDQkNCTCivQiNCQ0J3QmtCe0JIg0KDQkNCU0JjQktCe0IgKK9CI0JDQndCa0J7QkiDQoNCQ0JTQntCh0JvQkNCS0JAKK9CI0JDQndCa0J7QkiDQoNCQ0J3QgtCV0JsKK9CI0JDQndCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCd0JrQntCSINCh0JzQmNCJ0JrQkAor0IjQkNCd0JrQntCSINCh0J/QkNCh0J7QiNCQCivQiNCQ0J3QmtCe0JIg0KHQoNCV0JTQntCI0JUKK9CI0JDQndCa0J7QkiDQotCY0KXQntCc0JjQoAor0IjQkNCd0JrQntCSINCS0JXQoNCQCivQiNCQ0J3QmtCe0JIg0JfQkNCT0J7QoNCa0JAg0JTQoAor0IjQkNCd0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0KfQldCU0J4KK9CI0JDQndCa0J7QktCY0Isg0KfQldCU0J4KK9CI0JDQndCa0J7QktCY0Isg0JbQkNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CI0JDQndCa0J7QktCY0Isg0JbQkNCg0JrQngor0IjQkNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0JDQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0IjQkNCd0JrQntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQgtCj0KDQkAor0IjQkNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQkNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JDQndCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQkNCd0JrQkAor0IjQkNCd0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0JHQntCW0J4KK9CI0JDQndCa0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9CI0JDQndCa0J7QktCY0Isg0JHQntCg0JjQktCe0Igg0JTQoCDQm9CV0JrQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQkNCd0JrQntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0JTQkNCg0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCU0KPQqNCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQpdCg0JjQodCi0JjQktCe0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQmNCT0IrQkNCiCivQiNCQ0J3QmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCa0JDQm9Cc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0JDQndCa0J7QktCY0Isg0JrQkNCb0JzQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0IjQkNCd0JrQntCS0JjQiyDQmtCg0KHQotCQCivQiNCQ0J3QmtCe0JLQmNCLLdCa0KPQl9Cc0JDQndCn0JXQkiDQntCb0JjQktCV0KDQkAor0IjQkNCd0JrQntCS0JjQiyDQm9CQ0KHQm9CeCivQiNCQ0J3QmtCe0JLQmNCLINCb0JDQodCb0J4KK9CI0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0IvQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0IvQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QiNCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0KLQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0IjQkNCd0JrQntCS0JjQiy3QnNCg0JrQmNCLINCX0J7QoNCQINCU0JjQn9CbINCY0J3Qkwor0IjQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0IjQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0IjQkNCd0JrQntCS0JjQiyDQndCQ0KHQotCQCivQiNCQ0J3QmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CI0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0J3QmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9CI0JDQndCa0J7QktCY0Isg0J/QkNCS0JvQlQor0IjQkNCd0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQiNCQ0J3QmtCe0JLQmNCLINCf0JDQktCb0JUKK9CI0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CI0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQiNCa0J4KK9CI0JDQndCa0J7QktCY0Isg0KDQkNCI0JrQngor0IjQkNCd0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQotCa0J4KK9CI0JDQndCa0J7QktCY0Isg0KDQntCh0JAKK9CI0JDQndCa0J7QktCY0Isg0KDQo9CW0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQodCf0JDQodCQCivQiNCQ0J3QmtCe0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9CI0JDQndCa0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0JDQndCa0J7QktCY0Isg0KLQmNCR0J7QoAor0IjQkNCd0JrQntCS0JjQiyDQotCe0JTQntCgCivQiNCQ0J3QmtCe0JLQmNCLINCi0J7QlNCe0KAKK9CI0JDQndCa0J7QktCY0Isg0KLQntCU0J7QoAor0IjQkNCd0JrQntCS0JjQiyDQktCV0KHQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0J3QmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQndCa0J7QktCY0Isg0JLQo9Ca0JjQiwor0IjQkNCd0JrQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JLQo9Ca0J7QnNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JfQm9CQ0KLQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JfQntCb0KLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQl9Ce0KDQmtCQCivQiNCQ0J3QmtCj0JvQntCSINCU0JDQndCY0KbQkAor0IjQkNCd0JrQo9Cb0J7Qki3QlNCV0JzQiNCV0J0g0JzQkNCI0JAKK9CI0JDQndCa0KPQm9Ce0JIg0JTQoNCQ0JPQmNCo0JAg0JzQoCDQn9ClCivQiNCQ0J3QmtCj0JvQntCSINCh0KLQldCS0JDQnQor0IjQkNCd0JrQo9Cb0J7QktCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CI0JDQndCa0KPQm9Ce0JLQodCa0Jgg0J/QldCi0JDQoAor0IjQkNCd0J4g0IjQo9Cb0JjQiNCQCivQiNCQ0J3QntCo0JXQkiDQkdCY0KHQldCg0JrQkAor0IjQkNCd0J7QqNCV0JIg0JTQoNCQ0JPQmNCm0JAKK9CI0JDQndCe0KjQldCSINCJ0JjQidCQ0J3QkAor0IjQkNCd0J7QqNCV0JIg0JzQmNCb0JDQnQor0IjQkNCd0J7QqNCV0JIg0JzQmNCb0JXQndCQCivQiNCQ0J3QntCo0JXQkiDQnNCY0JvQldCd0JrQngor0IjQkNCd0J7QqNCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQiNCQ0J3QntCo0Jgg0KTQoNCQ0J3QptCY0KjQmtCQCivQiNCQ0J3QntCo0Jgg0JjQm9Ce0J3QkAor0IjQkNCd0J7QqNCYINCa0JDQoNCb0J4KK9CI0JDQndCe0KjQmCDQm9CQ0KHQm9CeCivQiNCQ0J3QntCo0Jgg0JzQkNCg0JPQmNCi0JAKK9CI0JDQndCe0KjQmCDQnNCY0KXQkNCJCivQiNCQ0J3QntCo0Jgg0JzQmNCl0JDQiQor0IjQkNCd0J7QqNCYINCi0JXQoNCV0JfQkAor0IjQkNCd0J7QqNCYINCX0J7Qm9Ci0JDQnQor0IjQkNCd0J7QktCQ0KYg0JbQmNCS0J7QiNCY0J0KK9CI0JDQndCe0JLQmNCLINCJ0JjQidCQCivQiNCQ0J3Qo9Co0JrQniDQmNCo0KLQktCQ0J0KK9CI0JDQndCj0KEg0JzQmNCb0JrQkAor0IjQkNCd0KPQoSDQktCe0JjQodCb0JDQkgor0IjQkNCd0KPQl9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCQ0J3Qo9CX0J7QktCY0Isg0IjQntCb0JDQnQor0IjQkNCd0KPQl9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCQ0J3Qo9CX0J7QktCY0Isg0JzQmNCg0JDQidCj0JEKK9CI0JDQndCj0JfQntCS0JjQiyDQndCe0JLQmNCm0JAg0JTQoAor0IjQkNCd0KPQl9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCj0JfQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQiNCQ0J/Qo9Cd0I/QkCDQm9CQ0JfQkAor0IjQkNCf0KPQndCP0JjQiyDQgtCe0KDQgtCVCivQiNCQ0J/Qo9Cd0I/QmNCLINCT0J7QoNCU0JDQndCQCivQiNCQ0J/Qo9Cd0I/QmNCLINCc0JjQoNCa0J4KK9CI0JDQn9Cj0J3Qj9CY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0J/Qo9Cd0I/QmNCLINCd0JjQmtCe0JvQkAor0IjQkNCf0KPQndCP0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQn9Cj0J3Qj9CY0Isg0KHQkNCS0JAKK9CI0JDQoNCQ0Jog0JjQktCQ0J0KK9CI0JDQoNCQ0JzQkNCXINCU0JjQiNCQ0J3QkAor0IjQkNCg0JDQnNCQ0Jcg0JzQmNCb0J7QktCQ0J0KK9CI0JDQoNCQ0JzQkNCXINCd0JjQmtCe0JvQkAor0IjQkNCg0KYg0JDQndCT0JXQmwor0IjQkNCg0Jgg0J/QoNCe0JrQkAor0IjQkNCg0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCg0JjQiyDQkNCS0JTQngor0IjQkNCg0JjQiyDQkdCe0IjQkNCdCivQiNCQ0KDQmNCLINCR0KDQkNCd0JrQngor0IjQkNCg0JjQiyDQlNCQ0J3QmNCV0JvQkAor0IjQkNCg0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCg0JjQiyDQlNCg0JDQk9CQ0J3QkAor0IjQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQoNCY0Isg0JTQo9Co0JDQnSDQlNCgCivQiNCQ0KDQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CI0JDQoNCY0Isg0JrQoNCY0KHQotCY0J3QkAor0IjQkNCg0JjQiyDQidCY0InQkNCd0JAKK9CI0JDQoNCY0Isg0InQmNCJ0JDQndCQCivQiNCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JDQoNCY0Isg0JzQmNCb0JDQnQor0IjQkNCg0JjQiyDQnNCY0JvQkNCdCivQiNCQ0KDQmNCLINCc0JjQm9Ce0IjQmtCeCivQiNCQ0KDQmNCLINCc0JjQoNCQCivQiNCQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQoNCY0Isg0JfQntCg0JDQnQor0IjQkNCg0JzQmNCd0JDQpiDQkdCg0JDQndCa0J4KK9CI0JDQoNCe0KjQldCd0JrQniDQmtCQ0KLQkNCg0JjQndCQCivQiNCQ0KDQntCo0JXQktCh0JrQmCDQkNCd0KLQntCdCivQiNCQ0KDQntCo0JXQktCh0JrQmCDQmNCS0JjQptCQCivQiNCQ0KDQntCo0JXQktCh0JrQmCDQn9CQ0JLQldCbCivQiNCQ0KHQldCd0J7QktCh0JrQmCDQkNCd0JAKK9CI0JDQodCY0Isg0JTQmNCS0J3QkAor0IjQkNCh0JjQiyDQiNCQ0J3QmtCeCivQiNCQ0KHQmNCLINCc0JDQndCU0JAKK9CI0JDQodCY0Isg0JzQmNCg0JrQngor0IjQkNCh0JjQiyDQktCV0KDQmNCm0JAKK9CI0JDQodCY0JrQkCDQoNCj0JbQkAor0IjQkNCh0JjQmtCQINCh0KLQntCI0JDQndCa0JAKK9CI0JDQodCY0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0KHQnNCY0J3QntCS0JjQiyDQiNCQ0JzQmNCdCivQiNCQ0KHQndCY0Isg0JzQmNCb0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CI0JDQodCd0JjQiyDQnNCY0JvQkNCdCivQiNCQ0KHQndCY0Isg0JzQmNCb0J7QnNCY0KDQmtCQCivQiNCQ0KHQndCY0Isg0KHQmNCd0JjQqNCQCivQiNCQ0KHQndCY0JPQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0KLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CI0JDQotCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0KLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CI0JDQotCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0KPQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQiNCQ0KPQmtCe0JLQmNCLINCf0JXQiNCa0JAKK9CI0JDQo9ChINCS0JDQm9Ci0JXQoAor0IjQkNCS0J3QmCDQn9CV0KLQkNCgCivQiNCQ0JLQntCg0JDQnSDQmNCS0JDQnQor0IjQkNCS0J7QoNCY0J3QkCDQgtCj0KDQkAor0IjQkNCS0J7QoNCY0J3QkCDQidCY0InQkNCd0JAKK9CI0JDQktCe0KDQmNCd0JAg0JzQmNCb0JUKK9CI0JDQktCe0KDQmNCd0JAg0KHQmNCc0J4KK9CI0JDQktCe0KDQndCY0Jog0JHQntCh0JjQidCa0JAKK9CI0JDQktCe0KDQndCY0Jog0J/QkNCS0JXQmwor0IjQkNCX0JjQiyDQlNCQ0J3QmNCb0J4KK9CI0JDQl9CY0Isg0JjQktCQ0J3QmtCQCivQiNCQ0JfQmNCLINCb0JDQl9CQCivQiNCQ0JfQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0JfQmNCLINCc0JDQoNCY0J3QmtCeCivQiNCQ0JfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQl9CY0Ist0KHQkNCS0JjQnSDQotCQ0KLQiNCQ0J3QkAor0IjQkNCX0JjQiyDQodCS0JXQotCb0JDQndCQCivQiNCQ0JfQktCY0Isg0JDQndCa0JAKK9CI0JXQp9CY0J3QkNCmINCc0JjQm9CQ0J0KK9CI0JXQp9CY0J3QkNCmINCc0JjQm9Ce0KDQkNCUCivQiNCV0KfQmNCd0JDQpiDQktCV0KDQkAor0IjQldCn0JzQldCd0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCV0KfQnNCV0J3QmNCm0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQp9Cc0JXQndCY0KbQkCDQiNCV0JvQldCd0JAKK9CI0JXQp9Cc0JXQndCY0KbQkCDQnNCY0JvQntCoCivQiNCV0KfQnNCV0J3QmNCm0JAg0JLQm9CQ0JTQmNCc0JjQoAor0IjQldCo0JjQiyDQltCY0JLQmtCQCivQiNCV0KjQmNCLINCQ0J3QgtCV0JvQmtCeCivQiNCV0KjQmNCLINCU0JDQndCY0IjQldCb0JAKK9CI0JXQqNCY0Isg0IjQo9Cb0JrQkAor0IjQldCo0JjQiyDQnNCY0JvQkNCdCivQiNCV0KjQmNCLINCc0JjQntCU0KDQkNCTCivQiNCV0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0IjQldCo0JjQiyDQodCi0JXQktCQ0J0KK9CI0JXQqNCY0Isg0JfQntCg0JDQnQor0IjQldCWINCU0KDQkNCT0JDQnQor0IjQldCWINCT0J7QodCf0J7QiNCY0J3QmtCQCivQiNCV0JYg0JzQmNCb0J7QoNCQ0JQKK9CI0JXQliDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JYg0KLQoNCY0JLQngor0IjQldCW0JXQmiDQnNCY0JvQmNCS0J7QiAor0IjQldCm0JrQntCSINCd0JDQlNCQCivQiNCV0JTQldCg0JDQnSDQiNCe0KHQmNCfCivQiNCV0JTQldCg0JDQnSDQiNCe0KHQmNCfCivQiNCV0KTQmNCLINCT0J7QoNCQ0J0KK9CI0JXQpNCi0JXQndCY0Isg0KjQn9CY0KDQngor0IjQldCk0KLQldCd0JjQiyDQktCb0JDQlNCeCivQiNCV0KTQotCY0Isg0JbQkNCg0JrQngor0IjQldCk0KLQmNCLINCR0JjQidCQ0J3QkAor0IjQldCk0KLQmNCLINCR0J7QltCY0JTQkNCgCivQiNCV0KTQotCY0Isg0JHQntCg0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CI0JXQpNCi0JjQiyDQkdCg0JDQndCa0J4KK9CI0JXQpNCi0JjQiyDQlNCQ0JzQiNCQ0J0KK9CI0JXQpNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JXQpNCi0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQiNCV0KTQotCY0Isg0IjQldCk0KLQkAor0IjQldCk0KLQmNCLINCI0JXQm9CV0J3QkAor0IjQldCk0KLQmNCLINCI0J7QktCQ0J0KK9CI0JXQpNCi0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQiNCV0KTQotCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JXQpNCi0JjQiyDQnNCY0JvQkNCdCivQiNCV0KTQotCY0Isg0JzQmNCb0JDQnQor0IjQldCk0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0KTQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0JXQpNCi0JjQiyDQnNCY0KLQkAor0IjQldCk0KLQmNCLINCh0KDQldCi0JXQndCa0JAKK9CI0JXQpNCi0JjQiyDQotCY0KXQntCc0JjQoAor0IjQldCk0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0JXQpNCi0JjQiyDQktCV0JvQmNCd0JrQkAor0IjQldCk0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JXQpNCi0JjQiyDQktCb0JDQodCi0JAKK9CI0JXQpNCi0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQldCk0KLQntCS0JjQiyDQpNCg0JDQitCQCivQiNCV0JPQkNCg0JDQpiDQntCb0JPQkAor0IjQldCT0JTQmNCLINCU0JDQnNCI0JDQnQor0IjQldCT0JTQmNCLINCT0J7QoNCU0JDQndCQCivQiNCV0JPQlNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCV0JPQlNCY0Isg0JLQkNCh0JAKK9CI0JXQk9CU0JjQiyDQktCQ0KHQngor0IjQldCT0JXQqCDQnNCY0JvQkAor0IjQldCa0JXQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCV0JrQldCb0JjQiyDQkdCg0JDQndCa0J4KK9CI0JXQmtCV0JvQmNCLINCV0JzQmNCb0JjQiNCQCivQiNCV0JrQldCb0JjQiyDQm9CQ0KHQm9CeCivQiNCV0JrQldCb0JjQiyDQnNCY0JvQkNCdCivQiNCV0JrQldCb0JjQiyDQnNCY0JvQmNCLCivQiNCV0JrQldCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0IjQldCa0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JrQldCb0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0JXQmtCd0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQiNCV0JvQp9CY0Isg0IjQntCX0JXQpNCY0J3QkAor0IjQldCb0KfQmNCLINCa0KDQmNCh0KLQmNCI0JDQnQor0IjQldCb0KfQmNCLINCJ0KPQkdCY0KjQkAor0IjQldCb0KfQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCV0JvQp9CY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0JXQm9Cn0JjQiyDQn9CQ0JLQm9CVCivQiNCV0JvQp9CY0Isg0JfQntCg0JAKK9CI0JXQm9CQ0KfQkCDQgtCj0KDQngor0IjQldCb0JDQp9CQINCC0KPQoNCeCivQiNCV0JvQkNCn0JAg0JHQoNCQ0J3QmtCeCivQiNCV0JvQkNCn0JAg0JTQldCh0JAKK9CI0JXQm9CQ0KfQkCDQmtCe0KHQotCQCivQiNCV0JvQkNCn0JAg0JzQmNCl0JDQiNCb0J4KK9CI0JXQm9CQ0KfQkCDQnNCY0JvQldCd0JrQngor0IjQldCb0JDQp9CQINCg0KPQltCQCivQiNCV0JvQkNCn0JAg0KHQmNCc0J4g0JTQoCDQmNCd0JMKK9CI0JXQm9CQ0KfQkCDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JvQkNCn0JAg0KHQotCQ0J3QmtCeCivQiNCV0JvQkNCn0JAg0KHQotCe0IjQkNCdCivQiNCV0JvQkNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQldCb0JDQp9CY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0JvQkNCn0JjQiyDQlNCQ0J3QmNCb0J4KK9CI0JXQm9CQ0KfQmNCLINCU0KPQqNCQ0J0KK9CI0JXQm9CQ0KfQmNCLINCI0KPQm9CY0KjQmtCQCivQiNCV0JvQkNCn0JjQiyDQidCj0JHQntCc0JjQoAor0IjQldCb0JDQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CI0JXQm9CQ0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0JvQkNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCV0JvQkNCn0JjQiyDQoNCQ0KLQntCc0JjQoAor0IjQldCb0JDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCb0JDQp9CY0Isg0JfQntCg0JrQkAor0IjQldCb0JDQktCY0Isg0JbQldCJ0JrQngor0IjQldCb0JDQktCY0Isg0JTQoNCQ0JPQngor0IjQldCb0JXQpyDQmNCb0JjQiNCQCivQiNCV0JvQldCn0JDQndCY0J0g0ILQntCg0ILQlQor0IjQldCb0JXQp9CQ0J3QmNCdINCc0JDQoNCY0IjQkAor0IjQldCb0JXQp9CY0Isg0IjQntCS0JDQnQor0IjQldCb0JXQndCn0JjQiyDQpNCg0JDQitCQCivQiNCV0JvQldCd0JjQiyDQltCY0JLQkNCdCivQiNCV0JvQldCd0JjQiyDQnNCY0JvQkNCdCivQiNCV0JvQldCd0JjQiyDQn9CQ0J3QotCQCivQiNCV0JvQldCd0JjQiyDQn9CQ0JLQm9CVCivQiNCV0JvQldCd0JjQiyDQoNCQ0JTQkAor0IjQldCb0JXQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCb0JXQndCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQldCb0JXQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQm9CV0J3QmtCe0JLQmNCLINCT0KDQntCX0JTQkAor0IjQldCb0JXQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQiNCV0JvQldCh0JjQiyDQkNCd0JPQldCb0JAg0J/QoNCe0KTQldCh0J7QoAor0IjQldCb0JjQp9CY0Isg0JbQmNCS0JrQngor0IjQldCb0JjQp9CY0Isg0ILQo9Cg0J4KK9CI0JXQm9CY0KfQmNCLINCR0JXQkNCi0JAKK9CI0JXQm9CY0KfQmNCLINCR0KDQkNCd0JrQngor0IjQldCb0JjQp9CY0Isg0JTQo9Co0JDQnQor0IjQldCb0JjQp9CY0Isg0IjQldCb0JXQndCQCivQiNCV0JvQmNCn0JjQiyDQiNCe0JLQngor0IjQldCb0JjQp9CY0Isg0InQo9CR0JjQptCQCivQiNCV0JvQmNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JXQm9CY0KfQmNCLINCc0JjQm9CQ0J0KK9CI0JXQm9CY0KfQmNCLINCc0JjQm9CVCivQiNCV0JvQmNCn0JjQiyDQnNCY0KDQmtCeCivQiNCV0JvQmNCn0JjQiyDQn9CV0KLQkNCgCivQiNCV0JvQmNCn0JjQiyDQn9CV0KLQkNCgCivQiNCV0JvQmNCn0JjQiyDQoNCe0KHQkAor0IjQldCb0JjQp9CY0Isg0JLQmNCUCivQiNCV0JvQmNCLINCW0JjQktCa0J4KK9CI0JXQm9CY0Isg0JbQmNCS0JrQngor0IjQldCb0JjQiyDQgtCe0KDQgtCVCivQiNCV0JvQmNCLINCC0J7QoNCC0JUKK9CI0JXQm9CY0Isg0JDQi9CY0JwKK9CI0JXQm9CY0Isg0JDQndCC0JAKK9CI0JXQm9CY0Isg0JDQndCi0JUKK9CI0JXQm9CY0Isg0JHQo9CU0JjQnNCY0KAKK9CI0JXQm9CY0Isg0JTQoNCQ0JPQkNCdCivQiNCV0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CI0JXQm9CY0Isg0JTQo9Co0JDQnQor0IjQldCb0JjQiyDQldCc0JjQm9CY0IjQkAor0IjQldCb0JjQiyDQldCh0KLQldCg0JAKK9CI0JXQm9CY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JXQm9CY0Isg0JjQktCQ0J3QmtCQCivQiNCV0JvQmNCLINCY0JLQmNCm0JAKK9CI0JXQm9CY0Isg0IjQkNCT0J7QlNCY0J3QmtCQCivQiNCV0JvQmNCLINCI0JDQitCQCivQiNCV0JvQmNCLINCI0JXQm9CV0J3QkAor0IjQldCb0JjQiyDQiNCe0JLQkNCdCivQiNCV0JvQmNCLINCb0JDQl9CQ0KAKK9CI0JXQm9CY0Isg0JvQkNCX0JDQoAor0IjQldCb0JjQiyDQidCj0JHQmNCm0JAKK9CI0JXQm9CY0Isg0InQo9CR0JjQndCa0JAKK9CI0JXQm9CY0Isg0JvQo9Ca0JAKK9CI0JXQm9CY0Isg0JzQkNCg0JjQptCQCivQiNCV0JvQmNCLINCc0JDQoNCY0J3QkAor0IjQldCb0JjQiy3QnNCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0IjQldCb0JjQiyDQnNCY0JvQkNCdCivQiNCV0JvQmNCLINCc0JjQm9CQ0J0KK9CI0JXQm9CY0Isg0JzQmNCb0JXQndCQCivQiNCV0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0JvQmNCLINCc0JjQm9Ca0JAKK9CI0JXQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0JXQm9CY0Isg0JzQmNCi0JAKK9CI0JXQm9CY0Isg0JzQntCc0JjQoAor0IjQldCb0JjQiyDQndCQ0JTQkAor0IjQldCb0JjQiyDQndCV0JTQldCJ0JrQngor0IjQldCb0JjQiyDQn9CQ0JLQm9CVCivQiNCV0JvQmNCLINCf0KDQldCU0KDQkNCTCivQiNCV0JvQmNCLINCf0KDQldCU0KDQkNCTCivQiNCV0JvQmNCLINCg0JDQlNCV0J3QmtCeCivQiNCV0JvQmNCLINCg0J7QodCQCivQiNCV0JvQmNCLINCh0JDQktCQCivQiNCV0JvQmNCLINCh0JjQnNCQCivQiNCV0JvQmNCLINCh0JvQkNCS0JjQptCQCivQiNCV0JvQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CI0JXQm9CY0Isg0KHQotCV0JLQkNCdCivQiNCV0JvQmNCLINCh0KLQldCS0JAKK9CI0JXQm9CY0Isg0KHQotCV0JLQkAor0IjQldCb0JjQiyDQodCi0JjQn9CVCivQiNCV0JvQmNCLINCh0JLQldCi0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CI0JXQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQldCb0JjQiyDQotCe0JzQkAor0IjQldCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCV0JvQmNCLINCS0JDQodCQCivQiNCV0JvQmNCLINCS0JDQodCeCivQiNCV0JvQmNCLINCS0JjQmtCi0J7QoNCY0IjQkAor0IjQldCb0JjQptCa0Jgg0KHQmNCc0JXQo9CdCivQiNCV0JvQmNCdINCI0J7QktCQ0J0KK9CI0JXQm9CY0J0g0KDQkNCU0JzQmNCb0JAKK9CI0JXQm9CY0J3Qp9CY0Isg0JTQo9CI0J4KK9CI0JXQm9CY0J3QldCaINCh0KLQldCS0JDQnQor0IjQldCb0JjQodCQ0JLQkNCmINCT0J7QoNCU0JDQnQor0IjQldCb0JjQodCQ0JLQkNCmINCc0JjQm9Ce0KgKK9CI0JXQm9CY0KHQkNCS0JDQpiDQnNCe0JzQmNCgCivQiNCV0JvQmtCY0Isg0IjQntCS0JDQnQor0IjQldCb0JrQmNCLINCb0JDQl9CQ0KAKK9CI0JXQm9Ca0JjQiyDQntCb0JjQktCV0KDQkAor0IjQldCb0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JXQm9Ce0JLQkNCmINCW0JDQoNCa0J4KK9CI0JXQm9Ce0JLQkNCmINCW0JDQoNCa0J4KK9CI0JXQm9Ce0JLQkNCmINCC0J7QoNCC0JUKK9CI0JXQm9Ce0JLQkNCmINCC0J7QoNCC0JUKK9CI0JXQm9Ce0JLQkNCmINCC0KPQoNCeCivQiNCV0JvQntCS0JDQpiDQkdCY0KHQldCg0JrQkAor0IjQldCb0J7QktCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCV0JvQntCS0JDQpiDQkdCg0JDQndCa0JAKK9CI0JXQm9Ce0JLQkNCmINCR0KDQkNCd0JrQkAor0IjQldCb0J7QktCQ0KYg0JHQoNCQ0J3QmtCeCivQiNCV0JvQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CI0JXQm9Ce0JLQkNCmINCU0KDQkNCT0JDQnQor0IjQldCb0J7QktCQ0KYg0JTQo9Co0JDQnQor0IjQldCb0J7QktCQ0KYg0JjQl9CQ0JHQldCb0JAKK9CI0JXQm9Ce0JLQkNCmINCI0J7QktCQ0J0KK9CI0JXQm9Ce0JLQkNCmINCc0JjQm9CQ0J0KK9CI0JXQm9Ce0JLQkNCmINCc0JjQm9CY0KbQkAor0IjQldCb0J7QktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0IjQldCb0J7QktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0IjQldCb0J7QktCQ0KYg0J3QkNCU0JAKK9CI0JXQm9Ce0JLQkNCmINCd0JjQmtCe0JvQkAor0IjQldCb0J7QktCQ0KYg0KDQkNCU0J7QiNCa0JAKK9CI0JXQm9Ce0JLQkNCmINCg0JDQlNCe0IjQmtCQCivQiNCV0JvQntCS0JDQpiDQoNCQ0JTQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CI0JXQm9Ce0JLQkNCmINCg0KPQltCY0KbQkAor0IjQldCb0J7QktCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCb0J7QktCQ0KYg0KHQotCV0JLQkNCdCivQiNCV0JvQntCS0JDQpiDQodCi0J7QiNCQ0J0KK9CI0JXQm9Ce0JLQkNCmINCi0KPQk9Ce0JzQmNCgCivQiNCV0JvQntCS0JDQpiDQktCV0JvQmNCc0JjQoAor0IjQldCb0J7QktCQ0KYg0JLQm9CQ0JTQkAor0IjQldCb0J7QktCQ0KYg0JLQo9CI0JjQptCQCivQiNCV0JvQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQldCb0KPQqNCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JXQm9Cj0KjQmNCLINCb0JXQndCa0JAKK9CI0JXQm9Cj0KjQmNCLINCc0JDQotCY0IjQlQor0IjQldCc0Kcg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCV0JzQoNCY0Isg0IjQldCb0JAKK9CI0JXQndCV0KbQmtCe0JIg0KDQkNCU0JzQmNCb0JAKK9CI0JXQndCV0KbQmtCe0JIg0KHQkNCo0JAKK9CI0JXQndCV0Jgg0JDQndCU0KDQkNCoCivQiNCV0J3QldCYINCV0KPQk9CV0J0KK9CI0JXQndCV0Jgg0JvQkNCI0J7QqAor0IjQldCd0JXQmCDQnNCY0J7QlNCg0JDQkwor0IjQldCd0JXQmCDQoNCj0JbQkAor0IjQldCd0JXQmCDQodCi0JXQktCQ0J0KK9CI0JXQndCV0Jgg0KLQmNCR0J7QoAor0IjQldCd0JXQkiDQkdCb0JDQk9Ce0IgKK9CI0JXQn9Cj0KDQodCa0Jgg0J3QldCd0JDQlAor0IjQldCg0KfQmNCLINCk0KDQkNCK0J4KK9CI0JXQoNCQ0J3Qp9CVINCU0JDQndCY0KbQkAor0IjQldCg0JDQndCiINCQ0J3QlNCg0JjQiNCQCivQiNCV0KDQkNCd0KIg0J/QkNCi0JjQiyDQktCV0KDQkCDQlNCgCivQiNCV0KDQkNCd0KIg0J/QldCi0JDQoAor0IjQldCg0JDQo9Co0JXQmiDQpNCg0JDQitCeCivQiNCV0KDQkNCj0KjQldCaINCY0JLQmNCm0JAKK9CI0JXQoNCR0JjQiyDQlNCg0JDQk9CY0KbQkAor0IjQldCg0JXQkdCY0J3QqNCV0Jog0JDQndCQCivQiNCV0KDQldCR0JjQndCo0JXQmiDQodCb0JDQktCa0J4KK9CI0JXQoNCV0JvQlSDQpNCg0JDQndCm0JjQqNCa0JAKK9CI0JXQoNCV0JzQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0KDQkAor0IjQldCg0JXQnNCY0Isg0ILQntCa0JAKK9CI0JXQoNCV0JzQmNCLINCC0J7QoNCC0JUKK9CI0JXQoNCV0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCV0KDQldCc0JjQiy3QkdCb0JDQk9Ce0IjQldCS0JjQiyDQktCV0KDQmNCm0JAKK9CI0JXQoNCV0JzQmNCLINCR0JvQkNCT0J7QiNCVCivQiNCV0KDQldCc0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQoCDQm9CV0JrQkNCgCivQiNCV0KDQldCc0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CI0JXQoNCV0JzQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCV0KDQldCc0JjQiyDQiNCQ0KHQndCQCivQiNCV0KDQldCc0JjQiyDQiNCV0JvQldCd0JAKK9CI0JXQoNCV0JzQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCV0JzQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCV0JzQmNCLINCb0JDQl9CQ0KAKK9CI0JXQoNCV0JzQmNCLINCJ0JjQidCQ0J3QkAor0IjQldCg0JXQnNCY0Isg0JzQldCb0JDQndCY0IjQkAor0IjQldCg0JXQnNCY0Isg0JzQmNCb0JXQktCQCivQiNCV0KDQldCc0JjQiyDQnNCY0KDQkAor0IjQldCg0JXQnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQldCg0JXQnNCY0Isg0J3QkNCU0JXQltCU0JAKK9CI0JXQoNCV0JzQmNCLINCd0JXQndCQ0JQKK9CI0JXQoNCV0JzQmNCLINCe0JvQmNCS0JXQoNCQCivQiNCV0KDQldCc0JjQiyDQn9CQ0JLQm9CVCivQiNCV0KDQldCc0JjQiyDQn9CQ0JLQm9CVCivQiNCV0KDQldCc0JjQiyDQoNCQ0JTQlQor0IjQldCg0JXQnNCY0Isg0KHQotCQ0J3QkAor0IjQldCg0JXQnNCY0Isg0KHQotCQ0J3QmtCeCivQiNCV0KDQldCc0JjQiyDQodCi0JDQndCe0IjQlQor0IjQldCg0JXQnNCY0Isg0KHQotCV0JLQkNCdCivQiNCV0KDQldCc0JjQiyDQodCi0JXQktCQ0J0KK9CI0JXQoNCV0JzQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0JXQoNCV0JzQmNCLINCS0JXQoNCQCivQiNCV0KDQldCc0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCV0KDQldCc0JjQiyDQl9Ce0KDQkAor0IjQldCg0JXQnNCY0IjQmNCLINCS0JjQotCe0JzQmNCgCivQiNCV0KDQldCd0JjQiyDQnNCb0JDQlNCV0J0KK9CI0JXQoNCT0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JXQoNCT0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCg0JPQmNCLINCc0JjQoNCa0J4KK9CI0JXQoNCT0JjQiyDQn9CV0KLQkNCgCivQiNCV0KDQk9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JXQoNCT0JjQiyDQodCf0JDQodCe0IjQlQor0IjQldCg0JjQiyDQlNCj0KjQkNCdCivQiNCV0KDQmNCLINCa0J7QktCY0J3QmtCQCivQiNCV0KDQmNCLINCJ0KPQkdCY0KjQkAor0IjQldCg0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JXQoNCY0Isg0J/QldCi0JDQoAor0IjQldCg0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0KDQmNCd0JjQiy3QmtCj0KDQmNCdINCV0JTQmNCiCivQiNCV0KDQmNCd0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCg0JjQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQldCg0JjQndCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JXQoNCY0J3QmtCY0Isg0JjQktCQ0J0KK9CI0JXQoNCY0J3QmtCY0Isg0J/QkNCS0JvQlQor0IjQldCg0JrQkNCdINCQ0J3QotCVCivQiNCV0KDQmtCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQldCg0JrQntCSINCW0JDQoNCa0J4KK9CI0JXQoNCa0J7QkiDQkNCd0JTQoNCY0IjQkAor0IjQldCg0JrQntCSINCR0KDQkNCd0JjQnNCY0KAKK9CI0JXQoNCa0J7QkiDQiNCe0JLQkNCdCivQiNCV0KDQmtCe0JIg0IjQntCS0JjQptCQCivQiNCV0KDQmtCe0JIg0IjQntCS0JjQptCQCivQiNCV0KDQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9CI0JXQoNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0IjQldCg0JrQntCSINCf0JDQktCb0JUKK9CI0JXQoNCa0J7QkiDQodCc0JjQidCQCivQiNCV0KDQmtCe0JIg0KHQndCV0JbQkNCd0JAKK9CI0JXQoNCa0J7QkiDQktCV0InQmtCeCivQiNCV0KDQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0IjQldCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQiNCV0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCV0KDQmtCe0JLQmNCLINCU0JzQmNCi0JDQoAor0IjQldCg0JrQntCS0JjQiyDQpNCg0JDQitCeCivQiNCV0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQldCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCV0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQiNCV0KDQmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0IjQldCg0JrQntCS0JjQiyDQm9CV0J3QmtCQCivQiNCV0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQldCg0JrQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0IjQldCg0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0JXQoNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0JXQoNCa0J7QktCY0Isg0KDQkNCI0JrQngor0IjQldCg0JrQntCS0JjQiyDQodCY0JzQngor0IjQldCg0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0JXQoNCa0J7QktCY0Isg0KHQntCk0JjQiNCQCivQiNCV0KDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQldCg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0KHQktCV0KLQmtCeCivQiNCV0KDQmtCe0JLQmNCLINCi0JDQlNCY0IjQkAor0IjQldCg0JrQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQiNCV0KDQmtCe0JLQmNCLINCS0JDQodCQCivQiNCV0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JzQoAor0IjQldCg0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCV0KDQmtCe0JLQmNCLINCS0JvQkNCU0J4KK9CI0JXQoNCa0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0IjQldCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCV0KDQntCh0JjQnNCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9CI0JXQoNCe0KLQmNCI0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9CI0JXQodCY0Isg0JzQmNCb0JXQndCQCivQiNCV0KHQotCg0J7QndCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQldCh0KLQoNCe0JLQmNCLINCY0KDQldCd0JAKK9CI0JXQktCC0JXQndCY0Isg0KDQo9CW0JjQptCQCivQiNCV0JLQgtCV0J3QmNCLINCS0JvQkNCU0JAKK9CI0JXQktCC0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkCDQlNCgCivQiNCV0JLQgtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CI0JXQktCY0Isg0KfQldCU0J4KK9CI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9CI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CI0JXQktCY0Isg0J3QkNCU0JAKK9CI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCV0JLQmNCLINCi0J7QlNCe0KAKK9CI0JXQktCg0JXQnNCe0JIg0JbQmNCS0JAKK9CI0JXQktCg0JXQnNCe0JIg0ILQntCg0ILQlQor0IjQldCS0KDQldCc0J7QkiDQnNCY0JvQkNCdCivQiNCV0JLQoNCV0JzQntCSINCc0JjQoNCI0JDQndCQCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0IjQldCS0KDQldCc0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQiNCV0JLQoNCV0JzQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQldCS0KDQldCc0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCg0JDQlNCY0KjQkAor0IjQldCS0KDQldCc0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQldCS0KDQldCc0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQiNCV0JLQoNCY0Isg0JbQmNCS0JDQnQor0IjQldCS0KDQmNCLINCC0J7QoNCC0JUKK9CI0JXQktCg0JjQiyDQgtCe0KDQgtCVCivQiNCV0JLQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0JXQktCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0IjQldCS0KDQmNCLINCR0KDQkNCd0JrQngor0IjQldCS0KDQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0IjQldCS0KDQmNCLINCU0JDQndCY0KbQkAor0IjQldCS0KDQmNCLINCU0JXQodCY0JzQmNCgCivQiNCV0JLQoNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0IjQldCS0KDQmNCLINCV0JLQmNCm0JAKK9CI0JXQktCg0JjQiyDQk9CY0JPQkAor0IjQldCS0KDQmNCLINCT0J7QoNCQ0J0KK9CI0JXQktCg0JjQiyDQiNCV0JvQkAor0IjQldCS0KDQmNCLINCI0J7QktCQ0J0KK9CI0JXQktCg0JjQiyDQmtCg0JjQodCi0JjQndCQCivQiNCV0JLQoNCY0Isg0InQo9CR0JjQptCQCivQiNCV0JLQoNCY0Isg0JzQkNCg0JjQiNCQCivQiNCV0JLQoNCY0Isg0JzQmNCb0JDQnQor0IjQldCS0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0JLQoNCY0Isg0JzQmNCb0JUKK9CI0JXQktCg0JjQiyDQnNCY0JvQntCoCivQiNCV0JLQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQldCS0KDQmNCLINCg0JDQlNCY0KjQkAor0IjQldCS0KDQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CI0JXQktCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQldCS0KDQmNCLINCg0JDQlNCY0JLQntCICivQiNCV0JLQoNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQldCS0KDQmNCLINCg0JDQndCY0KHQkNCSCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCS0KDQmNCLINCh0KDQkdCe0InQo9CRCivQiNCV0JLQoNCY0Isg0KHQotCQ0JzQldCd0JrQngor0IjQldCS0KDQmNCLINCh0KLQldCS0JDQnSDQlNCgINCY0J3Qkwor0IjQldCS0KDQmNCLINCh0KLQldCS0JDQnQor0IjQldCS0KDQmNCLINCX0JvQkNCi0J7QnNCY0KAKK9CI0JXQktCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQktCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CI0JXQktCi0J7QktCY0Isg0IjQntCg0JTQkNCdCivQiNCV0JLQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JXQktCi0J7QktCY0Isg0JzQmNCg0JrQngor0IjQldCS0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCV0JLQotCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQiNCV0JLQotCe0JLQmNCLINCS0J7QiNCa0JDQnQor0IjQldCS0KLQntCS0JjQiyDQktCj0JrQntCi0JAKK9CI0JXQktCi0J7QktCY0Isg0JLQo9Cb0JUKK9CI0JXQl9CU0JjQiyDQlNCe0JHQoNCY0JvQkAor0IjQldCX0JTQmNCLINCU0KDQkNCT0JDQnQor0IjQldCX0JTQmNCLINCI0J7QktCQ0J0KK9CI0JXQl9CU0JjQiyDQidCj0JHQntCc0JjQoAor0IjQldCX0JTQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCV0JfQlNCY0Isg0KHQkNCS0JAKK9CI0JXQl9CU0JjQiyDQodCf0JjQoNCQCivQiNCV0JfQlNCY0Isg0KHQotCV0JLQmtCQCivQiNCV0JfQlNCY0Isg0KHQotCe0IjQkNCdINCU0JjQn9CbINCY0J3Qkwor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCQ0KbQkAor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQldCX0JXQoNCa0JjQiyDQntCb0JPQmNCm0JAKK9CI0JjQoNCe0KLQkC3Qk9CQ0JfQmNCR0JDQoNCY0Isg0JTQkNCd0JjQldCb0JAKK9CI0J7Qp9CY0Isg0JzQntCc0KfQmNCb0J4KK9CI0J7Qp9CY0Isg0KHQotCQ0J3QntCI0JvQngor0IjQntCn0JjQnSDQltCY0JrQkAor0IjQntCn0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0KjQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0IjQntCo0JDQndCe0JIg0JvQkNCX0JDQoAor0IjQntCo0JDQndCe0JIg0InQo9CR0JjQptCQCivQiNCe0KjQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9CI0J7QqNCV0JLQodCa0Jgg0ILQntCg0ILQmNCI0JAKK9CI0J7QqNCY0Isg0ILQo9Cg0JAKK9CI0J7QqNCY0Isg0JHQm9CQ0JbQngor0IjQntCo0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CI0J7QqNCY0Isg0JzQmNCb0JDQnQor0IjQntCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQntCo0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQntCo0JjQiyDQn9CV0KLQkNCgCivQiNCe0JbQkCDQmtCQ0KLQkNCb0JjQnQor0IjQntCW0JjQiyDQgtCj0KDQkAor0IjQntCQ0J3QntCS0JjQiyDQptCS0JXQotCa0J4g0JTQmNCf0Jsg0JjQndCTCivQiNCe0JDQndCe0JLQmNCLINCV0KDQltCV0JHQldCiCivQiNCe0JDQndCe0JLQmNCLINCg0JDQnNCe0J3QkAor0IjQntCm0JjQiyDQltCY0JLQntCI0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QptCY0Isg0JbQmNCS0J7QoNCQ0JQg0JTQoAor0IjQntCm0JjQiyDQgtCe0KDQgtCVCivQiNCe0KbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0KbQmNCLINCQ0J3QgtCV0JvQmtCQCivQiNCe0KbQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CI0J7QptCY0Isg0JDQndCa0JjQptCQCivQiNCe0KbQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QptCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9CI0J7QptCY0Isg0JHQoNCQ0J3QmtCQCivQiNCe0KbQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0KbQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CI0J7QptCY0Isg0KTQmNCb0JjQnwor0IjQntCm0JjQiyDQpdCg0JjQodCi0JjQndCQCivQiNCe0KbQmNCLINCY0JvQmNCI0JAKK9CI0J7QptCY0Isg0JjQodCY0JTQntCgCivQiNCe0KbQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0KbQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCe0KbQmNCLINCJ0JjQidCQ0J3QkAor0IjQntCm0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QptCY0Isg0JzQkNCg0JrQngor0IjQntCm0JjQiyDQnNCQ0KDQmtCeCivQiNCe0KbQmNCLINCc0JDQoNCi0JAKK9CI0J7QptCY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQiNCe0KbQmNCLINCc0JjQm9CQ0J0KK9CI0J7QptCY0Isg0JzQmNCb0JDQnQor0IjQntCm0JjQiyDQnNCY0JvQntCoCivQiNCe0KbQmNCLINCc0JjQm9Ce0KgKK9CI0J7QptCY0Isg0JzQmNCg0JrQngor0IjQntCm0JjQiyDQnNCb0JDQlNCV0J0KK9CI0J7QptCY0Isg0J3QldCd0JDQlAor0IjQntCm0JjQiyDQn9CV0KLQkNCgCivQiNCe0KbQmNCLINCf0JXQotCQ0KAKK9CI0J7QptCY0Isg0J/QldCi0JDQoAor0IjQntCm0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQntCm0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IjQntCm0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQiNCe0KbQmNCLINCg0J7QlNCe0InQo9CRCivQiNCe0KbQmNCLINCh0JDQktCQCivQiNCe0KbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QptCY0Isg0KHQnNCY0InQkAor0IjQntCm0JjQiyDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCe0KbQmNCLINCh0KLQldCS0JDQnQor0IjQntCm0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QptCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0IjQntCm0JjQiyDQktCV0KDQkAor0IjQntCm0JjQiyDQl9Ce0KDQkNCdCivQiNCe0KbQmNCdINCR0KDQkNCd0JrQngor0IjQntCm0JjQnSDQn9CV0KDQodCY0JTQkAor0IjQntCm0JjQnSDQl9Cb0JDQotCe0IjQlQor0IjQntCm0JrQntCSINCU0JDQndCY0KbQkAor0IjQntCm0JrQntCSINCc0JDQndCe0IjQm9CeCivQiNCe0KbQmtCe0JIg0JzQmNCb0JDQndCa0JAKK9CI0J7QptCa0J7QkiDQnNCY0JvQntCh0JDQkgor0IjQntCm0JrQntCSINCc0JjQoNCe0KHQm9CQ0JLQkAor0IjQntCm0JrQntCSINCd0JjQmtCe0JvQkAor0IjQntCm0JrQntCSINCd0JjQmtCe0JvQkAor0IjQntCm0JrQntCSINCg0JDQlNCe0JLQkNCdCivQiNCe0KbQmtCe0JLQmNCLINCC0J7QoNCC0JUg0JTQoAor0IjQntCm0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0IjQntCm0JrQntCS0JjQiyDQntCR0KDQkNCUCivQiNCe0KbQntCS0JjQiyDQltCY0JLQntCc0JjQoAor0IjQntCm0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QptCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQiNCe0KbQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QptCj0JvQntCSINCR0KDQkNCd0JrQkAor0IjQntCm0KPQm9Ce0JIg0JzQmNCl0JDQiQor0IjQntCU0JDQmyDQoNCe0JbQkAor0IjQntCl0JjQnNCh0KLQkNCbINCQ0JPQkNCi0JAKK9CI0J7QiNCY0Isg0ILQntCg0ILQlQor0IjQntCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCI0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQntCI0JjQiyDQlNCe0JjQndCQCivQiNCe0IjQmNCLINCU0KDQkNCT0JgKK9CI0J7QiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9CI0J7QiNCY0Isg0JTQo9Co0JDQnQor0IjQntCI0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQiNCe0IjQmNCLINCY0JLQkNCd0JrQkAor0IjQntCI0JjQiyDQmNCS0JDQndCa0JAKK9CI0J7QiNCY0Isg0IjQldCb0JAKK9CI0J7QiNCY0Isg0IjQldCb0JXQndCQCivQiNCe0IjQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCI0JjQiyDQnNCY0IvQmtCeCivQiNCe0IjQmNCLINCc0JjQm9CV0JLQkAor0IjQntCI0JjQiyDQnNCY0JvQntCoCivQiNCe0IjQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0IjQmNCLINCc0JjQoNCa0J4KK9CI0J7QiNCY0Isg0JzQmNCg0JrQngor0IjQntCI0JjQiyDQnNCY0KDQntCJ0KPQkQor0IjQntCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0IjQmNCLINCe0JvQk9CQCivQiNCe0IjQmNCLINCh0JDQktCQCivQiNCe0IjQmNCLINCh0JjQnNCeCivQiNCe0IjQmNCLINCh0KLQkNCd0JAKK9CI0J7QiNCY0Isg0KHQotCV0JLQkNCdCivQiNCe0IjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QiNCY0Isg0KHQktCV0KLQngor0IjQntCI0JjQnSDQkdCQ0KDQkdCQ0KDQkAor0IjQntCI0JjQnSDQlNCe0JHQoNCe0KHQkNCSCivQiNCe0IjQmNCdINCh0JjQndCY0KjQkAor0IjQntCI0JrQmNCLINCC0J7QoNCC0JUKK9CI0J7QiNCa0JjQiyDQgtCe0KDQgtCVCivQiNCe0IjQmtCY0Isg0ILQntCg0ILQlQor0IjQntCI0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0IjQmtCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQiNCe0IjQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0IjQmtCY0Isg0JTQkNCd0JjQptCQCivQiNCe0IjQmtCY0Isg0JTQmNCd0JAKK9CI0J7QiNCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0IjQmtCY0Isg0JTQo9Co0JrQngor0IjQntCI0JrQmNCLINCI0J7QktCY0KbQkAor0IjQntCI0JrQmNCLINCa0JDQotCY0KbQkAor0IjQntCI0JrQmNCLINCa0JDQotCY0KbQkAor0IjQntCI0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCe0IjQmtCY0Isg0JzQkNCg0JjQptCQCivQiNCe0IjQmtCY0Isg0JzQkNCg0JjQiNCQCivQiNCe0IjQmtCY0Isg0JzQkNCg0JjQiNCQCivQiNCe0IjQmtCY0Isg0JzQmNCb0JDQlNCY0J0KK9CI0J7QiNCa0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QiNCa0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCI0JrQmNCLINCc0JjQm9CY0KbQkAor0IjQntCI0JrQmNCLINCc0JjQm9CY0KbQkAor0IjQntCI0JrQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0IjQmtCY0Isg0JzQmNCg0IjQkNCd0JAg0JTQoAor0IjQntCI0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QiNCa0JjQiyDQndCQ0JTQkAor0IjQntCI0JrQmNCLINCe0JvQk9CQCivQiNCe0IjQmtCY0Isg0J/QkNCI0JAKK9CI0J7QiNCa0JjQiy3Qn9Ce0JvQldCi0KLQniDQl9Ce0KDQkAor0IjQntCI0JrQmNCLINCg0JDQlNCY0JLQntCICivQiNCe0IjQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9CI0J7QiNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0IjQntCI0JrQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QiNCa0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QiNCa0JjQiyDQodCc0JjQidCa0JAKK9CI0J7QiNCa0JjQiyDQodCd0JXQltCQ0J3QkAor0IjQntCI0JrQmNCLINCh0J7QpNCY0IjQkAor0IjQntCI0JrQmNCLINCh0J7QmtCeCivQiNCe0IjQmtCY0Isg0KHQotCQ0J3QmtCeCivQiNCe0IjQmtCY0Isg0KPQoNCe0KgKK9CI0J7QiNCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0IjQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0J7QmtCQINCa0JDQotCQ0KDQmNCd0JAKK9CI0J7QmtCQINCS0JDQodCeCivQiNCe0JrQkNCd0JjQiyDQmNCb0JjQiNCQCivQiNCe0JrQkNCd0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CI0J7QmtCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0IjQntCa0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCa0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCa0JDQndCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQiNCe0JrQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QmtCQ0J3QntCS0JjQiyDQoNCQ0JTQkAor0IjQntCa0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQiNCe0JrQkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQiNCe0JrQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0IjQntCa0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0J7QmtCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CI0J7QmtCY0KjQmNCLINCR0KDQkNCd0JrQngor0IjQntCa0JjQqNCY0Isg0KHQn9CQ0KHQntCI0JUKK9CI0J7QmtCY0Isg0JbQkNCg0JrQngor0IjQntCa0JjQiyDQltCQ0KDQmtCeCivQiNCe0JrQmNCLINCW0JjQktCQ0J0KK9CI0J7QmtCY0Isg0ILQntCg0ILQlQor0IjQntCa0JjQiyDQgtCj0KDQkNCCCivQiNCe0JrQmNCLINCR0J7QltCY0JTQkNCgCivQiNCe0JrQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0JrQmNCLINCR0KPQlNCY0JzQmNCgCivQiNCe0JrQmNCLINCm0JLQmNCI0JXQotCY0J0KK9CI0J7QmtCY0Isg0JTQkNCd0JUKK9CI0J7QmtCY0Isg0JTQntCR0KDQmNCb0JAKK9CI0J7QmtCY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JrQmNCLINCU0KDQkNCT0JDQnQor0IjQntCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QmtCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CI0J7QmtCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0J7QmtCY0Isg0JTQo9Co0JDQnQor0IjQntCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0JrQmNCLINCU0KPQqNCQ0J0KK9CI0J7QmtCY0Isg0JTQo9Co0JDQnQor0IjQntCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0JrQmNCLINCU0KPQqNCQ0J0KK9CI0J7QmtCY0Isg0JjQk9CK0JDQogor0IjQntCa0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QmtCY0Isg0IjQntCa0JAKK9CI0J7QmtCY0Isg0JrQoNCh0KLQkNCdCivQiNCe0JrQmNCLINCa0KHQldCd0JjQiNCQCivQiNCe0JrQmNCLINCb0JDQmtCY0IsKK9CI0J7QmtCY0Isg0JvQkNCX0J4KK9CI0J7QmtCY0Isg0InQmNCJ0JDQndCQCivQiNCe0JrQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCa0JjQiyDQidCj0JHQngor0IjQntCa0JjQiyDQm9Cj0JrQkAor0IjQntCa0JjQiyDQnNCQ0KDQkAor0IjQntCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QmtCY0Isg0JzQkNCg0JrQngor0IjQntCa0JjQiyDQnNCY0KXQkNCI0JvQngor0IjQntCa0JjQiyDQnNCY0JvQkNCdCivQiNCe0JrQmNCLINCc0JjQm9CQ0J0KK9CI0J7QmtCY0Isg0JzQmNCb0JDQnQor0IjQntCa0JjQiyDQnNCY0JvQkNCdCivQiNCe0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JrQmNCLINCc0JjQm9CV0JLQkAor0IjQntCa0JjQiyDQnNCY0JvQmNCI0JAKK9CI0J7QmtCY0Isg0JzQmNCb0JjQodCQ0JIKK9CI0J7QmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0J7QmtCY0Isg0JzQmNCg0JrQngor0IjQntCa0JjQiyDQnNCY0KDQmtCeCivQiNCe0JrQmNCLINCc0JjQoNCa0J4KK9CI0J7QmtCY0Isg0JzQmNCg0JrQngor0IjQntCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JrQmNCLINCd0JDQlNCQCivQiNCe0JrQmNCLINCd0JDQlNCQCivQiNCe0JrQmNCLINCd0JDQlNCY0KbQkAor0IjQntCa0JjQiyDQndCV0J3QkNCUCivQiNCe0JrQmNCLINCd0JjQmtCe0JvQkAor0IjQntCa0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QmtCY0Isg0J/QldCi0JDQoAor0IjQntCa0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCe0JrQmNCLINCg0JDQlNCe0JjQptCQCivQiNCe0JrQmNCLINCg0JjQodCi0JAKK9CI0J7QmtCY0Isg0KHQkNCo0JAKK9CI0J7QmtCY0Isg0KHQmNCc0JAKK9CI0J7QmtCY0Isg0KHQmNCd0JjQqNCQCivQiNCe0JrQmNCLINCh0JvQkNCS0JrQngor0IjQntCa0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QmtCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JrQmNCLINCh0J3QldCW0JDQndCQCivQiNCe0JrQmNCLINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QmtCY0Isg0KHQotCV0JLQkNCdCivQiNCe0JrQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQntCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQntCa0JjQiyDQktCV0InQmtCeCivQiNCe0JrQmNCLINCS0JXQoNCQCivQiNCe0JrQmNCLINCS0JvQkNCU0J4KK9CI0J7QmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JrQmNCLINCS0KPQiNCQ0JTQmNCdCivQiNCe0JrQmNCLINCS0KPQmtCQ0JTQmNCdCivQiNCe0JrQmNCLINCS0KPQmtCeCivQiNCe0JrQmNCLINCX0JvQkNCi0JAKK9CI0J7QmtCY0Isg0JfQntCg0JrQkAor0IjQntCa0JzQkNCd0J7QktCY0Isg0KHQkNCS0JXQotCQCivQiNCe0JrQntCS0JjQiyDQltCY0JLQmtCeCivQiNCe0JrQntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0IjQntCa0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQiNCe0JrQntCS0JjQiy3QnNCY0JrQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQiNCe0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0IjQntCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCa0KHQmNCLINCU0KDQkNCT0JjQqNCQCivQiNCe0JrQodCY0Isg0JPQntCI0JrQngor0IjQntCa0KHQmNCc0J7QktCLINCd0JXQkdCe0IjQqNCQCivQiNCe0JrQodCY0JzQntCS0JjQiyDQltCQ0KDQmtCeCivQiNCe0JrQodCY0JzQntCS0JjQiyDQlNCQ0KDQmtCeCivQiNCe0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQmtCeCivQiNCe0JrQodCY0JzQntCS0JjQiyDQk9Ce0JvQo9CR0JDQndCa0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCe0JrQodCY0JzQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSINCU0KAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQiNCe0JrQodCY0JzQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IjQntCa0KHQmNCc0J7QktCY0Isg0J3QkNCU0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCf0JDQktCb0JUKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQiNCe0JrQodCY0JzQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCa0KHQmNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCa0KHQmNCc0J7QktCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0IjQntCa0KHQmNCc0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCa0KHQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0IjQntCa0KHQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0IjQntCb0JTQmNCLINCc0JDQoNCQCivQiNCe0JvQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7Qm9CY0Isg0JbQmNCS0JDQnQor0IjQntCb0JjQiyDQltCY0JLQntCI0JjQnQor0IjQntCb0JjQiyDQkNCd0JPQldCb0JjQndCQCivQiNCe0JvQmNCLINCU0JDQndCY0JvQngor0IjQntCb0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQiNCe0JvQmNCLINCI0J7QktCQ0J0KK9CI0J7Qm9CY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9CI0J7Qm9CY0Isg0JrQntCh0KLQkAor0IjQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCb0JjQiyDQndCV0JHQntCI0KjQkAor0IjQntCb0JjQiyDQn9CV0KLQkNCgCivQiNCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7Qm9CY0Isg0KPQoNCe0KgKK9CI0J7Qm9CY0Isg0JLQkNCh0JAKK9CI0J7Qm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCe0J3Qp9CY0Isg0JzQkNCg0JAKK9CI0J7QndCQ0Kgg0JTQo9Co0JDQnQor0IjQntCd0JDQqCDQm9CQ0KHQm9CeCivQiNCe0J3QkNCoINCd0JjQmtCe0JvQkAor0IjQntCd0JjQiyDQkdCe0KjQmtCeCivQiNCe0J3QmNCLINCU0KDQkNCT0JDQnQor0IjQntCK0JXQkiDQnNCY0JvQmNCS0J7QiAor0IjQntCK0JXQkiDQodCb0JDQktCe0InQo9CRCivQiNCe0IrQmNCLINCh0JDQktCeCivQiNCe0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0J3QotCe0JLQmNCLINCQ0JvQldCa0KHQkAor0IjQntCd0KLQntCS0JjQiy3QkdCY0JrQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0J3QotCe0JLQmNCLINCg0KPQlNCe0JvQpAor0IjQntCd0KPQl9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QoNCU0JDQpyDQkNCd0JAKK9CI0J7QoNCU0JDQnSDQldCg0JbQldCR0JXQogor0IjQntCg0JTQkNCd0J7QkiDQmtCY0KDQmNCbCivQiNCe0KDQlNCQ0J3QntCS0KHQmtCYINCh0KLQkNCd0J7QiNCa0J4KK9CI0J7QoNCT0JDQndCe0JLQmNCLINCh0JjQnNCeCivQiNCe0KDQk9CY0Isg0JbQmNCS0JDQndCQCivQiNCe0KDQk9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0IjQntCg0JPQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QoNCe0JLQmNCLINCg0JDQndCa0J4KK9CI0J7QodCV0JLQodCa0Jgg0KHQmNCc0JXQntCdCivQiNCe0KHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0KHQmNCLINCk0JjQm9CY0J8KK9CI0J7QodCY0Isg0JjQm9CY0IjQkAor0IjQntCh0JjQiyDQmNCS0JDQnQor0IjQntCh0JjQiyDQmtCe0KHQkNCd0JAKK9CI0J7QodCY0Isg0InQo9CR0JjQndCa0J4KK9CI0J7QodCY0Isg0InQo9CR0JjQndCa0J4KK9CI0J7QodCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0J7QodCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QodCY0Isg0J7QkdCg0JDQlAor0IjQntCh0JjQiyDQntCb0JPQkAor0IjQntCh0JjQiyDQoNCQ0JTQmNCd0JrQkAor0IjQntCh0JjQiyDQodCg0ILQkAor0IjQntCh0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QodCY0Isg0KHQotCV0JLQkNCdCivQiNCe0KHQmNCk0JjQlNCY0KEg0JrQntCh0KLQkAor0IjQntCh0JjQpNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0IjQntCh0JjQpNCe0JLQmNCLINCU0KDQkNCT0JjQiwor0IjQntCh0JjQpNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCh0JjQpNCe0JLQmNCLINCe0JvQk9CQCivQiNCe0KHQmNCc0KfQldCSINCX0JLQntCd0JjQnNCY0KAKK9CI0J7QodCY0JzQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QodCY0JzQntCSINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCh0JjQnNCe0JIg0JTQo9Co0JDQnQor0IjQntCh0JjQnNCe0JIg0JPQm9CY0JPQntCg0JjQiNCVCivQiNCe0KHQmNCc0J7QkiDQiNCV0JvQldCd0JAKK9CI0J7QodCY0JzQntCSINCh0KLQldCS0JDQnQor0IjQntCh0JjQnNCe0JIg0JLQkNCh0JjQm9CY0IjQlQor0IjQntCh0JjQnNCe0JIg0JLQntCI0J4KK9CI0J7QodCY0JzQntCS0JjQiyDQltCY0JLQkAor0IjQntCh0JjQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQiNCe0KHQmNCc0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CI0J7QodCY0JzQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQiNCe0KHQmNCc0J7QktCY0Isg0JzQkNCg0JrQngor0IjQntCh0JjQnNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0IjQntCh0JjQnNCe0JLQmNCLINCd0JXQndCQ0JQKK9CI0J7QodCY0JzQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QodCY0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QodCY0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QodCY0JzQntCS0JjQiyDQodCi0JXQktCa0JAKK9CI0J7QodCY0JzQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0IjQntCh0JjQnNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QodCY0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0KHQmNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCh0JjQnNCe0JLQmNCLINCX0JTQldCd0JrQkAor0IjQntCh0JjQnNCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QodCY0J0g0JTQoNCQ0JPQkNCdCivQiNCe0KHQmNCdINCc0JDQoNCY0IjQkAor0IjQntCh0JjQnSDQnNCY0JvQlQor0IjQntCh0JjQnSDQoNCQ0JTQmNCm0JAKK9CI0J7QodCY0J0g0KDQkNCU0J7QktCQ0J0KK9CI0J7QodCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0IjQntCh0JjQn9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QodCY0J/QntCS0JjQiyDQkdCe0KDQngor0IjQntCh0JjQn9Ce0JLQmNCLINCU0JDQndCY0KbQkAor0IjQntCh0JjQn9Ce0JLQmNCLINCY0JLQmNCm0JAKK9CI0J7QodCY0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0KHQmNCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCh0JjQn9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QotCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQntCi0JDQndCe0JLQmNCLINCa0J7QoNCd0JXQm9CY0IjQkAor0IjQntCi0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCe0KLQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CI0J7QotCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0IjQntCi0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9CI0J7QotCQ0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QotCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCe0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCn0JjQiyDQlNCj0KjQmtCeCivQiNCe0JLQp9CY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQp9CY0Isg0JLQm9CQ0JTQkNCdCivQiNCe0JLQkNCn0JXQktCY0Isg0JTQnNCY0KLQkNCgCivQiNCe0JLQkNCo0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCT0J7QiNCa0J4KK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCI0JXQm9CY0KbQkAor0IjQntCS0JDQndCn0JXQktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Isg0JrQntCS0JjQidCa0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Ist0JfQldCa0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLLdCX0JXQmtCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0KfQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0KfQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CI0J7QktCQ0J3Qp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3Qp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCm0JDQmCDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QlNCY0Isg0JzQkNCd0JTQkAor0IjQntCS0JDQndCU0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0JTQmNCdINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QmNCLINCC0KPQoNCeCivQiNCe0JLQkNCd0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0JjQiyDQlNCe0JHQoNCY0KbQkAor0IjQntCS0JDQndCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QktCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCY0Isg0JzQmNCg0JrQngor0IjQntCS0JDQndCY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0JjQiyDQnNCe0JzQmNCgCivQiNCe0JLQkNCd0JjQiyDQntCb0JjQktCV0KDQkAor0IjQntCS0JDQndCY0Isg0J7Qm9CY0JLQldCg0JAKK9CI0J7QktCQ0J3QmtCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCSINCW0JDQoNCa0J4KK9CI0J7QktCQ0J3QntCSINCW0JjQktCQCivQiNCe0JLQkNCd0J7QkiDQkdCY0InQkNCd0JAKK9CI0J7QktCQ0J3QntCSINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCSINCR0J7QiNCQ0J3QkAor0IjQntCS0JDQndCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QkiDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0J7QkiDQlNCg0JDQk9CY0IrQkAor0IjQntCS0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0IjQntCS0JDQndCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0IjQntCS0JDQndCe0JIg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JIg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JIg0JTQo9Co0JjQptCQCivQiNCe0JLQkNCd0J7QkiDQmNCT0IrQkNCiCivQiNCe0JLQkNCd0J7QkiDQmNCh0JAKK9CI0J7QktCQ0J3QntCSINCY0JLQkNCdCivQiNCe0JLQkNCd0J7QkiDQiNCQ0KjQkAor0IjQntCS0JDQndCe0JIg0IjQkNCh0J3QkAor0IjQntCS0JDQndCe0JIg0IjQldCb0JXQndCQCivQiNCe0JLQkNCd0J7QkiDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QkiDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QkiDQiNCe0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCSINCc0JXQm9CQ0J3QmNCI0JAKK9CI0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCSINCc0JjQm9CY0JLQntCICivQiNCe0JLQkNCd0J7QkiDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0J7QkiDQnNCe0JzQp9CY0JvQngor0IjQntCS0JDQndCe0JIg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JIg0KDQkNCU0JjQktCe0IgKK9CI0J7QktCQ0J3QntCSINCh0JDQktCQCivQiNCe0JLQkNCd0J7QkiDQodCf0J7QnNCV0J3QmtCQCivQiNCe0JLQkNCd0J7QkiDQodCi0JXQktCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QkiDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQkNCd0J7QkiDQotCe0JTQntCgCivQiNCe0JLQkNCd0J7QkiDQotCe0JzQkAor0IjQntCS0JDQndCe0JIg0JLQmNCU0JAKK9CI0J7QktCQ0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQp9CV0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCn0JXQlNCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0JDQlNCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCe0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCC0JXQndCC0JgKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCj0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCC0KPQoNCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCC0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0ILQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkCDQlNCY0J/QmyDQntCV0KYKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JrQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCg0JDQndCC0JXQmwor0IjQntCS0JDQndCe0JLQmNCLINCQ0KDQodCQINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCg0KHQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiy3QkNCg0KHQmNCLINCS0JjQntCb0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Ist0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0IjQntCS0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAg0J/QoNCe0KTQldCh0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCW0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQkdCe0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KbQktCV0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCm0JLQldCi0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCU0JDQm9CY0JHQntCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQkNCb0JjQkdCe0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQiwor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQiwor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCS0J7QiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkSDQntCV0KYKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgINCf0KDQntCkCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQldCc0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JXQodCc0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQldCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KTQldCb0JjQptCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCk0JjQm9CY0J8KK9CI0J7QktCQ0J3QntCS0JjQiyDQk9CV0J7QoNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Cg0J7Ql9CU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Cg0KPQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQoNCj0IjQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQpdCg0JjQodCi0JjQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQoNCY0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JLQkNCdINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCS0JDQndCa0JAg0JTQoCDQn9Cg0J7QpAor0IjQntCS0JDQndCe0JLQmNCLINCY0JLQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCQ0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQldCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQldCS0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCI0KPQm9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQntCh0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCa0J7QodCi0JAKK9CI0J7QktCQ0J3QntCS0JjQiy3QmtCe0KHQotCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmtCe0JLQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCY0JLQntCI0JUg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgINCc0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQo9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQm9Cj0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCb0KPQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQo9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0JvQmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQkNCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQkNCg0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQi9CeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCI0JDQogor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQqNCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0g0JDQlNCS0J7QmtCQ0KIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0KLQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQiwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0IsKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQidCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ca0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QitCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoCDQm9CV0JrQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCc0JvQkNCC0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IjQntCS0JDQndCe0JLQmNCLINCc0J7QnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JDQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQndCQ0JQg0JDQlNCS0J7QmtCQ0KIKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QntCS0JDQmgor0IjQntCS0JDQndCe0JLQmNCLINCd0J7QktCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQntCb0JPQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0JvQk9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7Qm9CT0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQntCb0JPQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0JvQk9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCf0JDQktCb0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCg0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KDQngor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QitCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQndCC0JXQmwor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQo9CW0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCQ0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQkNCS0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQkNCS0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCQ0JLQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JXQm9CY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQldCg0JDQpNCY0JwKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCY0JzQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JjQnNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQmNCc0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0JzQmNCJ0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCc0JjQidCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQnNCY0InQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQnNCY0InQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQn9CY0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCg0ILQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQoNCR0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiy3QodCi0J7QiNCQ0J0g0JPQldCg0KLQoNCj0JTQkCDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCj0JfQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQldCe0JTQntCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCi0J7QnNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQotCg0JDQiNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQotCj0JPQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCj0KDQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQmNCJCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCb0JjQp9Ca0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0JvQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0J7QidCj0JEKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JjQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQmNCU0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0JjQm9Cc0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0KPQp9CV0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQlNCV0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0IjQntCS0JDQndCe0JLQodCa0JAg0KbQktCV0KLQkAor0IjQntCS0JDQndCe0JLQodCa0JAg0KLQkNCh0JrQkAor0IjQntCS0JDQndCe0JLQodCa0Jgg0JTQmNCc0JjQotCQ0KAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0KHQmtCYINCc0JjQm9CVCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQnNCY0JvQlQor0IjQntCS0JDQndCe0JLQodCa0Jgg0JzQmNCb0JjQptCQCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCh0JjQnNCV0J7QndCQCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQodCi0J7QiNCQ0JTQmNCdCivQiNCe0JLQldCgINCc0JjQpdCQ0IkKK9CI0J7QktCV0KLQmNCLINCQ0J3QlNCg0JjQiNCQCivQiNCe0JLQldCi0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCV0KLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JXQotCY0Isg0JzQmNCb0JjQptCQCivQiNCe0JLQldCi0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QktCV0KLQmNCLINCS0JXQodCV0JvQmNCdCivQiNCe0JLQmNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQiNCe0JLQmNCn0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQntCS0JjQp9CY0Isg0JbQkNCg0JrQngor0IjQntCS0JjQp9CY0Isg0JbQkNCg0JrQngor0IjQntCS0JjQp9CY0Isg0JbQldCJ0JrQngor0IjQntCS0JjQp9CY0Isg0JbQmNCS0JDQnQor0IjQntCS0JjQp9CY0Isg0ILQntCg0ILQlQor0IjQntCS0JjQp9CY0Isg0ILQntCg0ILQlQor0IjQntCS0JjQp9CY0Isg0ILQo9Cg0JAKK9CI0J7QktCY0KfQmNCLINCQ0J3QmtCY0KbQkAor0IjQntCS0JjQp9CY0Isg0JHQntCo0JrQngor0IjQntCS0JjQp9CY0Isg0JHQntCT0JTQkNCdCivQiNCe0JLQmNCn0JjQiyDQkdCe0KDQkAor0IjQntCS0JjQp9CY0Isg0JHQoNCQ0J3QlQor0IjQntCS0JjQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CI0J7QktCY0KfQmNCLINCR0KDQkNCd0JrQkAor0IjQntCS0JjQp9CY0Isg0JTQldCI0JDQnQor0IjQntCS0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCY0KfQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQmNCn0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCj0KjQmtCeCivQiNCe0JLQmNCn0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQiNCe0JLQmNCn0JjQiyDQpdCV0JvQldCd0JAKK9CI0J7QktCY0KfQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCY0KfQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCY0KfQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0JLQmNCn0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQmNCn0JjQiyDQiNCe0JLQmNCm0JAKK9CI0J7QktCY0KfQmNCLINCa0JDQotCY0KbQkAor0IjQntCS0JjQp9CY0Isg0JvQkNCX0JDQoAor0IjQntCS0JjQp9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0IjQntCS0JjQp9CY0Isg0InQmNCJ0JDQndCQCivQiNCe0JLQmNCn0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QktCY0KfQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCS0JjQp9CY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQmNCn0JjQiyDQidCj0JHQmNCd0JrQkAor0IjQntCS0JjQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9CI0J7QktCY0KfQmNCLINCc0JDQmtCh0JjQnAor0IjQntCS0JjQp9CY0Isg0JzQkNCg0JAKK9CI0J7QktCY0KfQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JjQp9CY0Isg0JzQkNCg0JjQiNCQCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQkNCU0JjQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCY0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCY0KfQmNCLINCc0JjQm9CY0KbQkAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0J7QqAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0J7QqAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0J7QnNCY0KAKK9CI0J7QktCY0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JjQp9CY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQmNCn0JjQiyDQntCR0KDQkNCUCivQiNCe0JLQmNCn0JjQiyDQntCb0JPQkAor0IjQntCS0JjQp9CY0Isg0J/QkNCI0JAKK9CI0J7QktCY0KfQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCY0KfQmNCLINCg0JDQlNCQCivQiNCe0JLQmNCn0JjQiyDQoNCQ0JTQlQor0IjQntCS0JjQp9CY0Isg0KDQkNCU0JjQodCb0JDQkgor0IjQntCS0JjQp9CY0Isg0KDQkNCU0JjQktCe0IjQlQor0IjQntCS0JjQp9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CI0J7QktCY0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQmNCn0JjQiyDQoNCQ0KLQmtCeCivQiNCe0JLQmNCn0JjQiyDQodCQ0JLQldCi0JAKK9CI0J7QktCY0KfQmNCLINCh0JjQnNCeCivQiNCe0JLQmNCn0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QktCY0KfQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQiNCe0JLQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQmNCn0JjQiyDQodCg0JXQotCV0J0KK9CI0J7QktCY0KfQmNCLINCh0KLQkNCd0JrQngor0IjQntCS0JjQp9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCe0JLQmNCn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQmNCn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQmNCn0JjQiyDQotCQ0J3QkNCh0JjQiNCVCivQiNCe0JLQmNCn0JjQiyDQotCQ0KLQiNCQ0J3QkAor0IjQntCS0JjQp9CY0Isg0KLQntCU0J7QoAor0IjQntCS0JjQp9CY0Isg0KPQoNCe0KgKK9CI0J7QktCY0KfQmNCLINCS0JDQodCQCivQiNCe0JLQmNCn0JjQiyDQktCV0KDQmNCm0JAKK9CI0J7QktCY0KfQmNCLINCS0J7QiNCY0J0KK9CI0J7QktCY0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCY0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCe0JLQmNCn0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQmNCn0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JjQp9CY0J0g0JDQndCY0KbQkAor0IjQntCS0JjQp9CY0J0g0JrQkNCi0JjQptCQCivQiNCe0JLQmNCn0JjQnSDQidCj0JHQmNCm0JAKK9CI0J7QktCY0KfQmNCdINCJ0KPQkdCY0KbQkAor0IjQntCS0JjQp9CY0J0g0JzQmNCb0J7QktCQ0J0KK9CI0J7QktCY0KfQmNCdINCh0JvQkNCS0JrQngor0IjQntCS0JjQp9CY0J0g0KHQntCk0JjQiNCQCivQiNCe0JLQmNCn0JjQnSDQotCe0KjQkAor0IjQntCS0JjQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCY0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JjQqNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCe0JLQmNCo0JjQiyDQltCQ0KDQmtCeCivQiNCe0JLQmNCo0JjQiyDQgtCj0KDQngor0IjQntCS0JjQqNCY0Isg0JHQntCg0J4KK9CI0J7QktCY0KjQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCY0KjQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCY0KjQmNCLINCc0JjQotCQ0KAKK9CI0J7QktCY0KjQmNCLINCd0JjQmtCe0JvQkAor0IjQntCS0JjQqNCY0Isg0J/QkNCS0JvQlQor0IjQntCS0JjQqNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0J7QktCY0KjQmNCLINCh0JjQnNCeCivQiNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCe0JLQmNCLINCW0JDQoNCa0J4KK9CI0J7QktCY0Isg0JbQkNCg0JrQngor0IjQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0IjQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQmNCLINCQ0J3QmNCm0JAKK9CI0J7QktCY0Isg0JHQntCo0JrQngor0IjQntCS0JjQiyDQkdCe0JHQkNCdCivQiNCe0JLQmNCLINCR0J7QoNCQCivQiNCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCY0Isg0KbQktCV0KLQkAor0IjQntCS0JjQiyDQlNCQ0JLQmNCUCivQiNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0IjQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0IjQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CI0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQmNCLINCV0KDQmNCa0JAKK9CI0J7QktCY0Isg0JPQntCI0JrQngor0IjQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQntCS0JjQiyDQmNCS0JDQndCQCivQiNCe0JLQmNCLINCY0JLQkNCdCivQiNCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAg0JTQoAor0IjQntCS0JjQiyDQiNCQ0KHQndCQCivQiNCe0JLQmNCLINCI0J7QptCeCivQiNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JjQiyDQiNCe0JLQngor0IjQntCS0JjQiyDQmtCe0KHQotCQCivQiNCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQiNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0IjQntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CI0J7QktCY0Isg0JzQkNCg0JjQiNCQ0J0KK9CI0J7QktCY0Isg0JzQkNCg0JrQngor0IjQntCS0JjQiyDQnNCV0JvQmNCi0JAKK9CI0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CI0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CI0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CI0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0IjQntCS0JjQiyDQnNCY0JvQntCI0JjQptCQCivQiNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCe0JLQmNCLINCc0JjQoNCQCivQiNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0IjQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQmNCLINCc0JjQotCQ0KAKK9CI0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0IjQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQmNCLINCf0JDQiNCY0KbQkAor0IjQntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0IjQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCY0Isg0KDQkNCU0JUKK9CI0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0IjQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQmNCLINCg0JDQiNCa0J4KK9CI0J7QktCY0Isg0KHQkNCS0J4KK9CI0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCY0Isg0KHQn9CQ0KHQldCd0JjQiNCQCivQiNCe0JLQmNCLINCh0KLQkNCd0JAKK9CI0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9CI0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQiNCe0JLQmNCLINCh0KLQkNCd0JrQngor0IjQntCS0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQntCS0JjQiyDQktCQ0KHQkAor0IjQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0IjQntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0IjQntCS0JjQiyDQktCV0InQmtCeCivQiNCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQmNCLINCS0JvQkNCU0JAKK9CI0J7QktCY0Isg0JLQm9CQ0JTQkAor0IjQntCS0JjQiyDQktCb0JDQlNCQCivQiNCe0JLQmNCLINCS0JvQkNCU0JAKK9CI0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CI0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQiNCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CI0J7QktCY0IvQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQntCS0JjQi9CV0JLQmNCLINCc0JjQm9CQCivQiNCe0JLQmNCL0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9CI0J7QktCY0IvQldCS0JjQiyDQndCV0J3QkNCUCivQiNCe0JLQmNCL0JXQktCY0Isg0KHQotCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JjQi9CV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CI0J7QktCY0IvQldCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQmNCdINCW0JjQktCQCivQiNCe0JLQmNCdINCQ0J3QgtCV0JvQmtCQCivQiNCe0JLQmNCdINCR0J7QoNCY0JLQntCICivQiNCe0JLQmNCdINCR0KDQkNCd0JrQngor0IjQntCS0JjQnSDQlNCg0JDQk9CQ0J0KK9CI0J7QktCY0J0g0JTQoNCQ0JPQntCc0JjQoAor0IjQntCS0JjQnSDQlNCj0KjQkNCdCivQiNCe0JLQmNCdINCU0KPQqNCQ0J0KK9CI0J7QktCY0J0g0JjQktCQ0J0KK9CI0J7QktCY0J0g0IjQldCb0JXQndCQCivQiNCe0JLQmNCdINCJ0KPQkdCY0KbQkAor0IjQntCS0JjQnSDQnNCY0JvQkNCdCivQiNCe0JLQmNCdINCc0JjQm9CY0JLQntCIINCU0KAKK9CI0J7QktCY0J0g0JzQmNCb0J7QqAor0IjQntCS0JjQnSDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQiNCe0JLQmNCdINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQmNCdINCh0JjQnNCQCivQiNCe0JLQmNCdINCh0JvQkNCS0JrQniDQlNCgCivQiNCe0JLQmNCdINCh0JLQldCi0JvQkNCd0JAKK9CI0J7QktCY0J0g0JLQldCh0J3QkAor0IjQntCS0JjQnSDQl9Cb0JDQotCe0IjQlQor0IjQntCS0JjQnSDQl9Cj0KHQmtCQCivQiNCe0JLQmNCd0J7QkiDQkdCe0JPQlNCQ0J0KK9CI0J7QktCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9CI0J7QktCe0JLQmNCLINCW0JXQidCa0J4KK9CI0J7QktCe0JLQmNCLINCQ0J3QmtCQCivQiNCe0JLQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQntCS0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0JLQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQntCS0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QktCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCe0JLQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQntCS0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCe0JLQmNCLINCg0JDQlNCVCivQiNCe0JLQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0IjQntCS0J7QktCY0Isg0KDQkNCI0JrQngor0IjQntCS0J7QktCY0Isg0KHQotCQ0J3QkAor0IjQntCS0J7QktCY0Isg0KHQotCe0IjQkNCdCivQiNCe0JfQkNCd0J7QkiDQlNCQ0J3QmNCm0JAKK9CI0J7Ql9CQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7Ql9CQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7Ql9CQ0J3QntCSINCX0J7QoNCQ0J0KK9CI0J7Ql9CV0KTQp9CQ0Jog0JjQktCQ0J0KK9CI0J7Ql9CY0Isg0IjQntCX0JAKK9CI0J7Ql9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0IjQntCX0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCX0JjQiyDQnNCY0KDQmtCeCivQiNCe0JfQmNCLINCf0JXQiNCeCivQiNCj0KjQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9CI0KPQqNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCj0JDQndCY0J0g0JbQmNCS0J7QiNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCj0JDQndCY0J0g0IjQntCS0JDQnQor0IjQo9CT0JjQnSDQnNCY0JvQldCd0JAKK9CI0KPQk9Ce0JLQmNCLINCC0KPQoNCQ0IIKK9CI0KPQk9Ce0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CI0KPQk9Ce0JLQmNCLINCc0JjQm9CVCivQiNCj0JPQntCS0JjQiyDQnNCY0JvQntCoCivQiNCj0JPQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0IjQo9CT0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0KPQpdCQ0KEg0ILQldCg0IIKK9CI0KPQpdCQ0KEg0JDQndCU0KDQkNCoCivQiNCj0KXQkNChINCQ0J3QlNCg0JDQqAor0IjQo9Cl0JDQoSDQkNCd0KLQkNCbCivQiNCj0KXQkNChINCU0JXQl9CVCivQiNCj0KXQkNChINCV0KDQndCVCivQiNCj0KXQkNChINCV0JLQkAor0IjQo9Cl0JDQoSDQpNCV0KDQldCd0KYKK9CI0KPQpdCQ0KEg0KTQldCg0JXQndCmCivQiNCj0KXQkNChINCT0JXQl9CQINCU0KAg0J/QoNCe0KTQldCh0J7QoAor0IjQo9Cl0JDQoSDQk9CY0JfQldCb0JAKK9CI0KPQpdCQ0KEg0JjQktCQ0J3QmtCQCivQiNCj0KXQkNChINCI0JDQndCe0KgKK9CI0KPQpdCQ0KEg0IjQkNCd0J7QqAor0IjQo9Cl0JDQoSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0IjQo9Cl0JDQoSDQmtCQ0KLQkNCg0JjQndCQCivQiNCj0KXQkNChLdCa0J7QodCi0JjQiyDQgtCV0KDQgtCYCivQiNCj0KXQkNChINCb0JDQlNCY0KHQm9CQ0JIKK9CI0KPQpdCQ0KEg0JzQkNCg0JjQiNCQCivQiNCj0KXQkNChINCc0JjQpdCQ0IkKK9CI0KPQpdCQ0KEg0JzQmNCl0JDQiQor0IjQo9Cl0JDQoSDQnNCY0IjQngor0IjQo9Cl0JDQoSDQnNCY0KDQntCdCivQiNCj0KXQkNChINCh0KLQldCS0JDQnQor0IjQo9Cl0JDQoSDQodCi0JXQktCQ0J0KK9CI0KPQpdCQ0KEg0KHQotCV0JLQkNCdCivQiNCj0KXQkNChINCh0KLQldCS0JDQnQor0IjQo9Cl0JDQoSDQotCY0JHQntCgINCU0JjQn9CbINCY0J3Qkwor0IjQo9Cl0JDQoSDQotCY0JHQntCgCivQiNCj0KXQkNChINCS0JDQm9CV0KDQmNCI0JAKK9CI0KPQpdCQ0KEg0JLQmNCa0KLQntCg0JjQiNCQCivQiNCj0KXQkNChINCS0JvQkNCU0JjQodCb0JDQkgor0IjQo9Ca0JjQiyDQkdCQ0J3QlQor0IjQo9Ca0JjQiyDQpNCg0JDQitCQCivQiNCj0JrQmNCLINCk0KDQkNCK0J4KK9CI0KPQmtCY0Isg0JjQktCY0KbQkAor0IjQo9Ca0JjQiyDQiNCe0KHQmNCfCivQiNCj0JrQmNCLINCb0KPQmtCQCivQiNCj0JrQmNCLINCc0JDQoNCa0J4KK9CI0KPQmtCY0Isg0J3QkNCU0JAKK9CI0KPQmtCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQiNCj0JrQntCS0JjQiyDQoNCQ0KHQmNCcCivQiNCj0JvQmNCd0JDQpiDQlNCg0JDQk9CY0IrQkAor0IjQo9Cd0JMg0ILQldCg0IIKK9CI0KPQndCTINCk0KDQkNCd0KbQmNCo0JrQkAor0IjQo9Cd0JMg0JjQkdCe0InQmtCQCivQiNCj0J3QkyDQmNCb0JTQmNCa0J4KK9CI0KPQndCTINCY0JLQmNCm0JAKK9CI0KPQndCTINCI0J7QodCY0J8KK9CI0KPQndCTINCI0J7QktCQ0J0KK9CI0KPQndCTINCa0JDQoNCe0Ikg0JzQoAor0IjQo9Cd0JMg0JzQkNCg0JjQiNCQCivQiNCj0J3QkyDQoNCe0JHQldCg0KIKK9CI0KPQndCTINCg0J7QkdCV0KDQogor0IjQo9Cd0JMg0JLQldCg0JjQptCQCivQiNCj0J3Qo9CX0J7QktCY0Isg0JjQodCc0JXQogor0IjQo9Cf0JXQmiDQl9CU0JXQndCa0JAKK9CI0KPQoNCn0JXQktCY0Isg0JzQkNCg0JrQngor0IjQo9Cg0KfQmNCLINCW0JXQidCa0J4KK9CI0KPQoNCn0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQo9Cg0KjQmNCLINCm0JLQldCi0JAKK9CI0KPQoNCQ0JPQkCDQnNCQ0KDQmtCeCivQiNCj0KDQkNCT0JAg0JzQmNCb0J7QoNCQ0JQKK9CI0KPQoNCQ0JrQmNCLINCT0J7QoNCQ0J0KK9CI0KPQoNCQ0JrQmNCLINCY0JvQmNCI0JAKK9CI0KPQoNCQ0JrQmNCLINCY0JLQkNCdCivQiNCj0KDQkNCa0JjQiyDQiNCV0JvQkAor0IjQo9Cg0JDQmtCY0Isg0IjQntCX0J4KK9CI0KPQoNCQ0JrQmNCLINCf0JXQiNCeCivQiNCj0KDQkNCa0JjQiyDQodCi0JjQn9CeCivQiNCj0KDQkNCK0Jgg0JzQkNCg0JjQiNCQCivQiNCj0KDQkNChINCQ0J3QmNCm0JAKK9CI0KPQoNCQ0KEg0JDQndCi0JUKK9CI0KPQoNCQ0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCj0KDQptCQINCW0JXQidCa0J4KK9CI0KPQoNCm0JAg0ILQntCg0ILQlQor0IjQo9Cg0KbQkCDQmNCS0JDQnQor0IjQo9Cg0KbQkCDQm9CQ0KDQmNCh0JAKK9CI0KPQoNCV0KjQldCSINCf0JXQotCQ0KAKK9CI0KPQoNCV0KjQmNCLINCI0J7Ql9CeCivQiNCj0KDQldCo0JjQiyDQktCV0KDQkAor0IjQo9Cg0JjQqNCV0JLQmNCLINCQ0J3QmtCQCivQiNCj0KDQmNCo0JXQktCY0Isg0JzQkNCg0JAKK9CI0KPQoNCY0KjQldCS0JjQiyDQnNCY0KDQmtCeCivQiNCj0KDQmNCo0JjQiyDQgtCe0KDQgtCVCivQiNCj0KDQmNCo0JjQiyDQgtCj0KDQkAor0IjQo9Cg0JjQqNCY0Isg0JDQm9Ce0IjQlwor0IjQo9Cg0JjQqNCY0Isg0JDQndCU0KDQmNCI0JAKK9CI0KPQoNCY0KjQmNCLINCR0J7Qk9Ce0InQo9CRCivQiNCj0KDQmNCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0KPQoNCY0KjQmNCLINCk0KDQkNCK0JAKK9CI0KPQoNCY0KjQmNCLINCT0J7QodCf0JDQktCQCivQiNCj0KDQmNCo0JjQiyDQmNCT0IrQkNCiCivQiNCj0KDQmNCo0JjQiyDQmNCb0JjQndCa0JAKK9CI0KPQoNCY0KjQmNCLINCY0JLQkNCdCivQiNCj0KDQmNCo0JjQiyDQiNCV0JvQldCd0JAKK9CI0KPQoNCY0KjQmNCLINCI0J7QktCQ0J0KK9CI0KPQoNCY0KjQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CI0KPQoNCY0KjQmNCLINCJ0KPQkdCY0KbQkAor0IjQo9Cg0JjQqNCY0Isg0JzQkNCg0JjQiNCQCivQiNCj0KDQmNCo0JjQiyDQnNCY0JvQldCd0JrQngor0IjQo9Cg0JjQqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0KPQoNCY0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCj0KDQmNCo0JjQiyDQndCV0JTQldCJ0JrQkAor0IjQo9Cg0JjQqNCY0Isg0J3QldCd0JDQlAor0IjQo9Cg0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQiNCj0KDQmNCo0JjQiyDQntCb0JPQkAor0IjQo9Cg0JjQqNCY0Isg0J7QodCi0J7QiNCQCivQiNCj0KDQmNCo0JjQiyDQn9CV0KLQkNCgCivQiNCj0KDQmNCo0JjQiyDQn9CV0KLQkNCgCivQiNCj0KDQmNCo0JjQiyDQoNCQ0JTQldCd0JrQngor0IjQo9Cg0JjQqNCY0Isg0KHQotCV0JLQkNCdCivQiNCj0KDQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9CI0KPQoNCY0KjQmNCLINCS0JvQkNCi0JrQngor0IjQo9Cg0JjQqNCY0Isg0JfQntCg0JrQkAor0IjQo9Cg0JjQqNCY0J0g0JbQkNCg0JrQngor0IjQo9Cg0JjQqNCY0J0g0JbQmNCS0JAKK9CI0KPQoNCY0KjQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0IjQo9Cg0JjQqNCY0J0g0JTQoNCQ0JPQntCJ0KPQkQor0IjQo9Cg0JjQqNCY0J0g0InQmNCJ0JDQndCQCivQiNCj0KDQmNCo0JjQnSDQnNCY0JvQmNCd0JAKK9CI0KPQoNCY0KjQmNCdINCc0JjQm9Ce0KgKK9CI0KPQoNCY0KjQmNCdINCd0JDQotCQ0JvQmNCI0JAKK9CI0KPQoNCY0KjQmNCdINCg0JDQodCi0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CI0KPQoNCY0KjQmNCdINCh0JvQkNCS0JrQngor0IjQo9Cg0JjQqNCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0IjQo9Cg0JjQiyDQltCY0JLQkNCU0JjQndCa0JAKK9CI0KPQoNCY0Isg0JDQndCQCivQiNCj0KDQmNCLINCQ0JLQk9Cj0KHQogor0IjQo9Cg0JjQiyDQkdCe0KHQmNCJ0JrQngor0IjQo9Cg0JjQiyDQptCS0JjQiNCeCivQiNCj0KDQmNCLINCk0JjQm9CY0J8KK9CI0KPQoNCY0Isg0JjQm9CY0IjQkAor0IjQo9Cg0JjQiyDQmNCS0JDQnQor0IjQo9Cg0JjQiyDQiNCV0JvQmtCQCivQiNCj0KDQmNCLINCc0JDQoNCY0IjQkAor0IjQo9Cg0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCY0Isg0JzQkNCg0JrQngor0IjQo9Cg0JjQiyDQnNCQ0KDQmtCeCivQiNCj0KDQmNCLINCc0JjQm9Ce0KgKK9CI0KPQoNCY0Isg0J/QkNCj0JvQmNCd0JAKK9CI0KPQoNCY0Isg0J/QldCi0JDQoAor0IjQo9Cg0JjQiyDQodCe0KTQmNCI0JAKK9CI0KPQoNCY0JHQkNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCY0JHQkNCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCj0KDQmNCmINCY0JLQkNCdCivQiNCj0KDQmNCmINCI0J7QodCY0J8KK9CI0KPQoNCY0KYg0KHQotCI0JXQn9CQ0J0KK9CI0KPQoNCY0KbQkCDQkNCd0JAKK9CI0KPQoNCY0KbQkCDQlNCQ0JvQmNCR0J7QoAor0IjQo9Cg0JjQptCQINCI0JDQnQor0IjQo9Cg0JjQmiDQqNCQ0J3QlNCe0KAKK9CI0KPQoNCY0Jog0JTQo9Co0JDQnQor0IjQo9Cg0JjQmiDQiNCe0KHQmNCfCivQiNCj0KDQmNCaINCI0J7QodCY0J8KK9CI0KPQoNCY0Jog0IjQntCS0JDQnQor0IjQo9Cg0JjQmiDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCY0Jog0JzQmNCl0JDQmwor0IjQo9Cg0JjQmiDQnNCY0JvQmtCQCivQiNCj0KDQmNCaINCf0JDQktCb0JUKK9CI0KPQoNCY0Jog0KHQotCV0JLQkNCdCivQiNCj0KDQmNCh0KLQntCS0KHQmtCYINCT0JXQntCg0JMg0JTQmNCf0Jsg0JjQndCTCivQiNCj0KDQiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQo9Cg0IjQldCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0IjQo9Cg0JrQmNCLINCQ0J3QotCj0J0KK9CI0KPQoNCa0JjQiyDQkNCj0JPQo9Ch0KLQmNCdCivQiNCj0KDQmtCY0Isg0JzQkNCg0JrQngor0IjQo9Cg0JrQntCS0JjQiyDQkNCd0JAKK9CI0KPQoNCa0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQiNCj0KDQmtCe0JLQmNCLINCR0J7QltCY0KbQkAor0IjQo9Cg0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0KPQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQo9Cg0JrQntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQiNCj0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0KPQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0IjQo9Cg0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9CI0KPQoNCa0J7QktCY0Isg0JfQktCe0J3QmtCeCivQiNCj0KDQmtCe0JLQodCa0Jgg0KHQotCV0JLQkNCdCivQiNCj0KDQm9CY0J3QkCDQkNCd0KLQo9CdCivQiNCj0KDQm9CY0J3QkCDQnNCQ0KDQmtCeINCU0KAKK9CI0KPQoNCb0JjQndCQINCf0JDQktCb0JUKK9CI0KPQoNCj0JrQntCS0KHQmtCYINCT0J7QodCf0JDQktCQCivQiNCj0KDQo9Ca0J7QktCh0JrQmCDQm9CV0JLQmtCeCivQiNCj0KDQo9Ca0J7QktCh0JrQmCDQnNCY0JvQntCS0JDQndCa0JAKK9CI0KPQodCi0JjQnSDQptCY0KDQmNCbCivQiNCj0KHQotCY0J0g0JTQkNCd0JjQptCQCivQiNCj0KHQo9Ck0Jgg0JHQldCg0JfQkNCiCivQiNCj0KHQo9Ck0J7QktCY0Isg0JDQnNCY0KAKK9CI0KPQktCQ0J0g0KTQkNCd0JjQmtCQCivQmtCL0JjQmtCjINCC0JDQktCY0JQKK9Ca0IvQmNCa0KMg0KDQkNCl0JjQnAor0JrQkNCn0JDQmiDQmNCb0J7QndCQCivQmtCQ0KfQkNCf0J7QoCDQodCV0KTQldCU0JjQnQor0JrQkNCn0JDQoCDQp9CV0JTQntCc0JjQoAor0JrQkNCn0JDQoCDQgtCj0KDQngor0JrQkNCn0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JDQp9CQ0KAg0JTQo9Co0JDQndCa0JAKK9Ca0JDQp9CQ0KAg0KHQm9CQ0JLQmtCeCivQmtCQ0KfQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQp9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCn0JDQoCDQotCQ0JTQmNCI0JAKK9Ca0JDQp9CQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCQ0KfQkNCS0JXQndCU0JAg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0JDQp9CQ0JLQldCd0JTQkCDQm9CQ0JfQngor0JrQkNCn0JDQktCV0J3QlNCQINCc0JjQm9CQ0J0KK9Ca0JDQp9CQ0JLQldCd0JTQkCDQnNCY0JvQntCg0JDQlAor0JrQkNCn0JDQktCV0J3QlNCQINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KfQkNCS0JXQndCU0JAg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCn0JDQktCV0J3QlNCQINCi0JDQotCI0JDQndCQCivQmtCQ0KfQkNCS0JXQndCU0JAg0KLQkNCi0IjQkNCd0JAKK9Ca0JDQp9CQ0JLQldCd0JTQkCDQktCV0KDQkAor0JrQkNCn0JzQkNCg0KfQmNCaINCo0KLQldCk0JDQnQor0JrQkNCn0JzQkNCg0KfQmNCaINCI0JXQm9CV0J3QkAor0JrQkNCo0JAg0KLQmNCR0J7QoAor0JrQkNCo0JDQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQkNCo0JDQndCY0J0g0JzQmNCb0JXQotCQCivQmtCQ0KjQkNCd0JjQnSDQnNCY0KDQkAor0JrQkNCo0JDQndCY0J0g0JzQmNCg0IjQkNCd0JAKK9Ca0JDQqNCQ0J3QmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQqNCY0Isg0IjQntCS0JDQnSDQlNCgCivQmtCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JrQkNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0JrQkNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0JDQqNCY0Isg0KDQldCS0JXQmtCQCivQmtCQ0KjQmNCLINCS0JXQoNCQCivQmtCQ0KjQmNCLINCS0JjQmtCi0J7QoNCY0IjQkAor0JrQkNCo0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCQ0KjQmNCaINCY0JLQkNCdCivQmtCQ0KjQmNCa0J7QktCY0Isg0ILQntCg0ILQngor0JrQkNCo0JjQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9Ca0JDQqNCY0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQmtCQ0KjQmNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0JDQqNCY0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9Ca0JDQqNCY0JrQntCS0JjQiyDQktCb0JDQlNCeCivQmtCQ0KjQm9CY0Jog0JjQnNCg0JUKK9Ca0JDQqNCb0JjQmiDQnNCQ0KLQmNCI0JAKK9Ca0JDQqNCe0JLQodCa0Jgg0IjQkNCd0JrQngor0JrQkNCo0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JbQkNCg0JrQngor0JrQkNCL0JDQndCh0JrQmCDQltCQ0KDQmtCeCivQmtCQ0IvQkNCd0KHQmtCYINCW0JjQktCa0J4KK9Ca0JDQi9CQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JrQkNCL0JDQndCh0JrQmCDQkdCe0IjQkNCd0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCQ0IvQkNCd0KHQmtCYINCR0KDQkNCd0JrQngor0JrQkNCL0JDQndCh0JrQmCDQlNCj0KjQkNCd0JrQkAor0JrQkNCL0JDQndCh0JrQmCDQlNCj0KjQkNCdCivQmtCQ0IvQkNCd0KHQmtCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCQ0IvQkNCd0KHQmtCYINCa0J7QndCh0KLQkNCd0KLQmNCdCivQmtCQ0IvQkNCd0KHQmtCYINCJ0KPQkdCY0KbQkAor0JrQkNCL0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JrQkNCL0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JrQkNCL0JDQndCh0JrQmCDQnNCY0JvQmtCQCivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQm9Cj0KLQmNCdCivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQkNCL0JDQndCh0JrQmCDQnNCb0JDQlNCV0J0KK9Ca0JDQi9CQ0J3QodCa0Jgg0J/QkNCS0JvQlSDQlNCgINCb0JXQmtCQ0KAKK9Ca0JDQi9CQ0J3QodCa0Jgg0J/Qm9CQ0KLQntCdINCU0KAKK9Ca0JDQi9CQ0J3QodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQmNCc0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQm9CQ0JLQmtCeCivQmtCQ0IvQkNCd0KHQmtCYINCh0JzQmNCJ0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQntCk0JjQiNCQCivQmtCQ0IvQkNCd0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0JrQkNCL0JDQndCh0JrQmCDQotCe0JTQntCgCivQmtCQ0IvQkNCd0KHQmtCYINCS0JXQm9CY0J3QmtCQCivQmtCQ0IvQkNCd0KHQmtCYINCS0JXQoNCQCivQmtCQ0IvQkNCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAg0JLQldCi0JXQoNCY0J3QkNCgCivQmtCQ0IvQkNCd0KHQmtCYINCS0JvQkNCU0JjQodCb0JDQktCQCivQmtCQ0IvQmNCQ0Jog0JzQmNCl0JDQiNCb0J4KK9Ca0JDQi9Cj0KDQmNCdINCW0JjQktCQ0J0KK9Ca0JDQi9Cj0KDQmNCdINCa0KDQmNCh0KLQmNCd0JAKK9Ca0JDQi9Cj0KDQmNCdINCc0JjQm9CQ0J3QkAor0JrQkNCL0KPQoNCY0J0g0JzQmNCb0JDQnQor0JrQkNCL0KPQoNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0JrQkNCW0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0JHQkCDQodCj0JvQldCI0JzQkNCdCivQmtCQ0JHQmNCLINCQ0J3QkAor0JrQkNCR0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0JDQkdCY0Isg0JTQkNCd0JjQm9CeCivQmtCQ0JHQmNCLINCU0KDQkNCT0JjQptCQCivQmtCQ0JHQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ca0JDQkdCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCR0JjQiyDQotCY0JzQntCo0JXQndCa0J4KK9Ca0JDQkdCY0InQniDQlNCg0JDQk9CY0KbQkAor0JrQkNCR0JjQidCeINCI0J7QodCY0J8KK9Ca0JDQkdCY0InQniDQodCY0JvQktCY0J4KK9Ca0JDQkdCe0Jog0JXQoNCY0JrQkAor0JrQkNCR0J7QmiDQiNCe0JbQldCkCivQmtCQ0KbQkNCg0J7QqCDQmtCe0KHQotCQ0KEKK9Ca0JDQlNCQ0Kgg0JvQkNCI0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQlNCQ0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQkNCU0JjQiyDQmNCb0JjQiNCQCivQmtCQ0JTQmNCLINCc0JDQoNCY0IjQkNCdCivQmtCQ0JTQmNCLINCd0JjQmtCe0JvQkAor0JrQkNCU0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JrQkNCU0JjQiyDQodCQ0JLQkAor0JrQkNCU0JjQiNCQINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JDQlNCY0JLQndCY0Jog0JzQmNCe0JTQoNCQ0JMKK9Ca0JDQlNCb0JXQp9CY0Jog0JrQkNCi0JjQptCQCivQmtCQ0JTQoNCY0IjQkCDQpNCV0JLQl9CY0IjQkAor0JrQkNCU0KDQmNCI0JAg0KXQkNCR0JjQiQor0JrQkNCU0KDQmNCI0JAg0KXQkNCh0JDQpAor0JrQkNCU0KDQmNCI0JAg0KXQo9Cg0JzQldCiCivQmtCQ0JTQktCQ0Iog0IjQkNCd0J7QqAor0JrQkNCU0JLQkNCKINCI0J7QktCQ0J0KK9Ca0JDQlNCS0JDQiiDQm9CQ0JTQmNCh0JvQkNCSCivQmtCQ0JTQktCQ0Iog0JvQkNCI0J7QqAor0JrQkNCl0KDQmNCc0JDQnSDQn9CV0KLQkNCgCivQmtCQ0KXQoNCY0JzQkNCdINCh0J3QldCW0JDQndCQCivQmtCQ0KXQoNCY0JzQkNCdINCh0J3QldCW0JDQndCQCivQmtCQ0KXQoNCY0JzQkNCdINCh0J3QldCW0JDQndCQCivQmtCQ0JjQiyDQmNCS0JDQnQor0JrQkNCY0Isg0JrQkNCi0JDQm9CY0J0g0JTQoAor0JrQkNCY0Isg0J/QldCi0JDQoAor0JrQkNCY0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQkNCY0KLQntCS0JjQiyDQiNCV0JvQkAor0JrQkNCI0KfQmNCLINCJ0JjQidCQ0J3QkAor0JrQkNCI0KfQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCQ0IjQp9CY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0JDQiNCV0JLQmNCLINCW0JDQoNCa0J4KK9Ca0JDQiNCk0JXQqCDQl9CS0J7QndCa0J4KK9Ca0JDQiNCT0JDQndCY0Isg0JjQm9CY0IjQkAor0JrQkNCI0JPQkNCd0JjQiyDQidCj0JHQkNCdCivQmtCQ0IjQk9CQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCQ0IjQk9CQ0J3QmNCLINCS0JXQoNCe0J3QmNCa0JAKK9Ca0JDQiNCY0Kgg0JbQldCJ0JrQngor0JrQkNCI0JjQqCDQnNCY0JvQlQor0JrQkNCI0JjQiyDQltCV0InQmtCeCivQmtCQ0IjQmNCLINCd0JDQlNCQCivQmtCQ0IjQmtCQ0KDQkCDQkdCe0JPQlNCQ0J0KK9Ca0JDQiNCa0JDQoNCQINCc0JjQm9CV0J3QmtCeCivQmtCQ0IjQmtCQ0KDQkCDQoNCQ0JTQntCh0JvQkNCSCivQmtCQ0IjQntCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0IjQntCdINCQ0J3QkAor0JrQkNCI0J7QnSDQidCY0InQkNCd0JAKK9Ca0JDQiNCe0J0g0JzQmNCg0J7QodCb0JDQkgor0JrQkNCI0J7QnSDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0IjQotCV0KEg0ILQo9Cg0J4KK9Ca0JDQiNCi0JXQlyDQlNCg0JDQk9CQ0J0KK9Ca0JDQiNCi0JXQlyDQnNCY0KDQmtCeCivQmtCQ0IjQotCV0Jcg0J3QldCU0JXQidCa0J4KK9Ca0JDQiNCi0JXQlyDQoNCe0JfQkNCb0JjQiNCQCivQmtCQ0IjQotCV0Jcg0KLQoNCY0JLQo9CdCivQmtCQ0IjQotCV0Jcg0JLQkNCb0JXQndCi0JjQndCQCivQmtCQ0IjQl9CV0KAg0JrQkNCg0JvQngor0JrQkNCa0JDQqCDQlNCQ0JzQmNCgCivQmtCQ0JrQkNCoINCY0JvQmNCI0JAKK9Ca0JDQmtCQ0Kgg0IjQntCW0JXQpAor0JrQkNCa0JDQqCDQiNCe0KHQmNCfCivQmtCQ0JrQkNCoINCc0JDQoNCY0IjQkAor0JrQkNCa0J7QitCYINCQ0J3QkAor0JrQkNCa0KPQp9Ca0JAg0JjQqNCi0JLQkNCdCivQmtCQ0JrQo9Cn0JrQkCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQkNCa0KPQp9Ca0JAg0KHQotCV0JLQkNCdCivQmtCQ0JvQp9Ce0JIg0JzQmNCl0JDQiQor0JrQkNCb0JAg0JPQldCX0JAKK9Ca0JDQm9CQ0KfQkNCI0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCQ0JvQkNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCb0JDQkdCQINCR0J7QiNCQ0J0KK9Ca0JDQm9CQ0JHQkCDQkdCg0JDQndCa0J4KK9Ca0JDQm9CQ0JHQkCDQlNCg0JDQk9CY0KbQkAor0JrQkNCb0JDQkdCQINCJ0KPQn9Ca0J4KK9Ca0JDQm9CQ0JHQkCDQm9Cj0JrQkAor0JrQkNCb0JDQkdCQINCc0JDQoNCa0J4KK9Ca0JDQm9CQ0JHQkCDQnNCb0JDQlNCV0J0KK9Ca0JDQm9CQ0JHQkCDQndCY0JrQntCb0JAKK9Ca0JDQm9CQ0JHQkCDQodCi0JXQktCQ0J0KK9Ca0JDQm9CQ0JHQmNCLINCU0JDQndCVCivQmtCQ0JvQkNCR0JjQiyDQodCi0JXQktCeCivQmtCQ0JvQkNCR0KDQmNCLINCR0KDQkNCd0JrQngor0JrQkNCb0JDQkdCg0JjQiyDQnNCY0KXQntCS0JjQmwor0JrQkNCb0JDQpNCQ0KLQmNCLINCc0JjQm9CY0JLQntCICivQmtCQ0JvQkNCk0JDQotCY0Isg0J3QldCR0J7QiNCo0JAKK9Ca0JDQm9CQ0Jgg0JrQkNCg0J7QiQor0JrQkNCb0JDQiNCP0JjQiyDQlNCQ0KDQmtCeCivQmtCQ0JvQkNCI0I/QmNCLINCb0KPQmtCQCivQmtCQ0JvQkNCI0I/QmNCLINCc0JjQpdCQ0JjQm9CeCivQmtCQ0JvQkNCI0I/QmNCLINCc0JjQm9CQ0J0KK9Ca0JDQm9CQ0JzQkNCd0JTQkCDQlNCg0JDQk9CQ0J0KK9Ca0JDQm9CQ0JzQkNCd0JTQkCDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0JvQkNCKINCC0KPQmtCQCivQmtCQ0JvQkNCKINCU0KDQkNCT0JjQqNCQCivQmtCQ0JvQkNCKINCk0JXQnNCa0JAKK9Ca0JDQm9CQ0Iog0KHQotCV0JLQkNCdCivQmtCQ0JvQkNCK0JAg0JTQo9Co0JDQndCa0JAKK9Ca0JDQm9CQ0IrQkCDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0JvQkNCK0JXQkiDQl9Ce0KDQkAor0JrQkNCb0JDQitCe0Kgg0ILQo9Cg0JAKK9Ca0JDQm9CQ0IrQntCoINCQ0J3QkAor0JrQkNCb0JDQitCe0Kgg0JHQntCg0JjQodCb0JDQkgor0JrQkNCb0JDQitCe0Kgg0IjQkNCd0J7QqAor0JrQkNCb0JDQitCe0Kgg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQm9CQ0IrQntCoINCf0JXQotCQ0KAKK9Ca0JDQm9CQ0IrQntCoINCf0JXQotCQ0KAKK9Ca0JDQm9CQ0IrQntCoINCg0KPQltCQCivQmtCQ0JvQkNCK0J7QqCDQoNCj0JbQkAor0JrQkNCb0JDQitCj0Kgg0ILQo9Cg0JAKK9Ca0JDQm9CQ0IrQo9CoINCk0KDQkNCK0JAKK9Ca0JDQm9CQ0J/QkNCoINCV0JLQmNCm0JAKK9Ca0JDQm9CQ0J/QkNCo0JXQkiDQlNCY0J3QkAor0JrQkNCb0JDQn9CQ0KjQldCSINCh0JjQndCY0KjQkAor0JrQkNCb0JDQn9CQ0KLQmCDQqNCQ0KDQkAor0JrQkNCb0JDQn9CQ0KLQmCDQpNCV0KDQldCd0KYKK9Ca0JDQm9CQ0J/QkNCi0Jgg0JjQktCQ0J0KK9Ca0JDQm9CQ0J/QkNCi0Jgg0KDQo9CU0J7Qm9CkCivQmtCQ0JvQkNCf0JjQqCDQoNCj0JTQmAor0JrQkNCb0JDQn9CY0Kgg0JfQntCb0KLQkNCdCivQmtCQ0JvQkNCj0Jcg0JzQkNCg0JjQndCa0J4KK9Ca0JDQm9CQ0KPQl9Ce0JIg0JzQkNCo0JAKK9Ca0JDQm9CmINCc0JjQm9CV0J3QmtCQCivQmtCQ0JvQpiDQnNCY0JvQmtCeCivQmtCQ0JvQpiDQodCb0JDQktCe0IjQmtCQCivQmtCQ0JvQldCQINCI0JXQm9CV0J3QkAor0JrQkNCb0JXQiNCh0JrQmCDQl9Cb0JDQotCe0JzQmNCgCivQmtCQ0JvQldCcINCR0KDQkNCd0JrQngor0JrQkNCb0JXQnCDQmNCS0JDQndCa0JAKK9Ca0JDQm9CV0Jwg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQm9CV0Jwg0J3QldCU0JXQidCa0J4KK9Ca0JDQm9CV0Jwg0KHQoNCV0KLQldCdCivQmtCQ0JvQldCcINCh0KDQldCi0JXQnQor0JrQkNCb0JXQnNCR0JXQoCDQkdCe0KjQmtCeCivQmtCQ0JvQldCc0JHQldCgINCc0JjQqNCQCivQmtCQ0JvQldCc0JHQldCgINCc0JjQm9CV0J3QkAor0JrQkNCb0JXQnNCR0JXQoCDQnNCY0JvQmNCS0J7QiAor0JrQkNCb0JXQnNCR0JXQoCDQnNCY0KDQiNCQ0J3QkAor0JrQkNCb0JXQnNCR0JXQoCDQodCe0KTQmNCI0JAKK9Ca0JDQm9CV0JzQkdCV0KAg0KHQotCe0IjQkNCU0JjQnQor0JrQkNCb0JXQnNCYINCo0JXQoNCY0KQKK9Ca0JDQm9CV0J3QlNCV0KAg0JrQoNCY0KHQotCY0J3QkAor0JrQkNCb0JXQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCQ0JvQldCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCb0JXQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0JrQkNCb0JXQitCj0Jog0JzQmNCi0JDQoAor0JrQkNCb0JXQndCi0JjQiyDQkdCe0KHQkAor0JrQkNCb0JXQndCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQkNCb0JXQl9CY0Isg0IjQldCb0JXQndCQCivQmtCQ0JvQldCX0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQkNCb0JXQl9CY0Isg0J7Qm9CT0JAKK9Ca0JDQm9CV0JfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0JDQm9CY0KfQkNCd0JjQnSDQnNCe0JzQp9CY0JvQngor0JrQkNCb0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JrQkNCb0JjQiyDQiNCe0KHQmNCfCivQmtCQ0JvQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCQ0JvQmNCLINCc0JjQm9CV0J3QkAor0JrQkNCb0JjQiyDQnNCj0KHQotCQ0KTQkAor0JrQkNCb0JjQiyDQntCb0JPQkAor0JrQkNCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQkNCb0JjQiyDQodCe0KTQmNCI0JAKK9Ca0JDQm9CY0Jog0JPQoNCe0JfQlNCQCivQmtCQ0JvQmNCdINCV0JTQo9CQ0KDQlAor0JrQkNCb0JjQnSDQnNCQ0KDQmNCI0JDQnQor0JrQkNCb0JjQndCY0Isg0JTQkNCd0JjQptCQCivQmtCQ0JvQmNCd0JjQiyDQiNCe0JLQngor0JrQkNCb0JjQndCY0Isg0JrQoNCh0KLQngor0JrQkNCb0JjQndCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ca0JDQm9CY0J3QmNCLINCc0JjQm9CY0KbQkAor0JrQkNCb0JjQndCY0Isg0J3QkNCU0JAKK9Ca0JDQm9CY0J3QodCa0Jgg0JTQkNCg0JrQngor0JrQkNCb0JjQktCe0JTQkCDQoNCj0JTQntCb0KQKK9Ca0JDQidCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0InQldCS0JjQiyDQmtCg0KHQotCeCivQmtCQ0InQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ca0JDQm9Ca0JDQnSDQnNCY0JvQkNCdCivQmtCQ0JvQnNCQ0J0g0JrQm9CQ0KDQkAor0JrQkNCb0JzQkNCdINCc0JjQpdCQ0IjQm9CeCivQmtCQ0JvQnNCQ0J0g0JzQmNCa0JvQntCoCivQmtCQ0JvQnNCQ0J0g0KDQkNCU0JjQptCQCivQmtCQ0JvQnNCQ0KAg0ILQntCg0ILQlQor0JrQkNCb0JzQkNCgINCC0KPQoNCQCivQmtCQ0JvQnNCQ0KAg0JDQndCQCivQmtCQ0JvQnNCQ0KAg0KTQldCg0JXQndCmCivQmtCQ0JvQnNCQ0KAg0KTQoNCQ0IrQkAor0JrQkNCb0JzQkNCgINCT0KDQk9Cj0KAKK9Ca0JDQm9Cc0JDQoCDQmNCo0KLQktCQ0J0KK9Ca0JDQm9Cc0JDQoCDQm9CQ0IjQntCoCivQmtCQ0JvQnNCQ0KAg0JzQmNCg0JrQngor0JrQkNCb0JzQkNCgLdCS0JXQoNCV0Kgg0JPQmNCX0JXQm9CQCivQmtCQ0JvQnNCQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCb0JzQkNCg0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQm9Cd0J7QmiDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0JvQntCn0JDQmCDQqNCQ0J3QlNCe0KAKK9Ca0JDQm9Ce0KfQkNCYINCY0KjQotCS0JDQnQor0JrQkNCb0J7Qp9CQ0Jgg0JvQldCd0JrQlQor0JrQkNCb0J7Qp9CQ0Jgg0J/QldCi0JDQoAor0JrQkNCb0J7Qp9CQ0IjQmCDQgtCe0KDQgtCVCivQmtCQ0JvQntCn0JDQiiDQpNCV0KDQldCd0KYKK9Ca0JDQm9Ce0KbQmCDQmNCS0JDQnQor0JrQkNCb0J7QptCYINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0JDQm9Ce0KbQmCDQotCY0JHQntCgCivQmtCQ0JvQntCm0Jgg0JLQldCh0JXQm9CY0J3QmtCQCivQmtCQ0JvQntCf0JXQoCDQiNCe0JLQkNCd0JrQkAor0JrQkNCb0J7Qn9CV0KAg0J/QldCg0JjQptCQCivQmtCQ0JvQntCX0Jgg0JDQoNCQ0J3QmtCQCivQmtCQ0JvQotCd0JXQmtCV0KAg0JXQnNCY0JvQmNCI0JAKK9Ca0JDQm9Ci0J3QldCa0JXQoCDQldCc0JjQm9CY0IjQkAor0JrQkNCb0KPQqNCV0JIg0JPQm9CY0KjQkAor0JrQkNCb0KPQqNCa0JAg0KHQm9CQ0JLQmtCeCivQmtCQ0JvQo9CW0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0JDQm9Cj0JbQmNCLINCd0JDQlNCQCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JrQkNCb0KPQgtCV0KDQntCS0JjQiyDQnNCY0JvQntCoCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCc0JjQoNCY0IjQkNCd0JAKK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCj0KDQntCoCivQmtCQ0JvQo9CC0JXQoNCh0JrQmCDQgtCe0JrQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0ILQntCa0JAKK9Ca0JDQm9Cj0ILQldCg0KHQmtCYINCQ0JPQndCV0JfQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JHQntCg0JjQoQor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JPQkNCS0KDQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQm9Cj0ILQldCg0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQm9Cj0ILQldCg0KHQmtCYINCh0JjQndCY0KjQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0KHQotCe0IjQkNCdINCU0KAKK9Ca0JDQm9Cj0JPQldCgINCd0JjQmtCe0JvQkAor0JrQkNCb0KPQk9CV0KAg0JfQntCg0JDQnQor0JrQkNCc0KfQldCh0JrQkCDQlNCg0JDQk9CY0KbQkAor0JrQkNCc0KfQldCh0JrQmCDQlNCY0JzQp9CVCivQmtCQ0JzQp9CV0KHQmtCYINCh0KLQldCS0JDQnQor0JrQkNCc0KfQldCS0JjQiyDQkNCd0JAKK9Ca0JDQnNCn0JXQktCh0JrQmCDQodCQ0JLQkAor0JrQkNCc0JDQoNCY0KIg0JfQntCg0JDQnQor0JrQkNCc0JDQodCYINCk0JXQoNCV0J3Qpgor0JrQkNCc0JDQodCYINCk0JXQoNCV0J3Qpgor0JrQkNCc0JDQodCYINCY0JzQoNCVCivQmtCQ0JzQkNCh0Jgg0IjQkNCd0J7QqAor0JrQkNCc0JHQldCg0Jgg0JTQo9Co0JDQnQor0JrQkNCc0JHQldCg0Jgg0JzQo9Ch0JAKK9Ca0JDQnNCR0JXQoNCe0JLQmNCLINCR0JDQotCeCivQmtCQ0JzQkdCV0KDQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Ca0JDQnNCV0J3QkNCg0J7QktCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQmtCQ0JzQldCd0JDQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQnNCV0J3QkNCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0JzQldCK0JjQptCa0Jgg0IjQo9Cb0JjQiNCQ0J0KK9Ca0JDQnNCV0J3QmtCeINCc0JjQm9CQ0J0KK9Ca0JDQnNCV0J3QmtCeINCg0JDQlNCVCivQmtCQ0JzQldCd0JrQniDQoNCQ0JTQlQor0JrQkNCc0JXQndCa0J4g0JLQldCg0JAKK9Ca0JDQnNCV0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCQ0JzQldCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JrQkNCc0JXQndCa0J7QktCY0Isg0IjQntCh0JjQnwor0JrQkNCc0JXQndCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0JDQnNCV0J3QmtCe0JLQmNCLINCe0JvQk9CQCivQmtCQ0JzQldCd0J7QkiDQldCc0JjQmyDQlNCgCivQmtCQ0JzQn9CV0Jsg0JjQktCQ0J0KK9Ca0JDQnNCf0JjQiyDQn9CQ0JLQm9CVCivQmtCQ0JzQoNCQINCY0JLQkNCdCivQmtCQ0J3Qp9CQ0KAg0JXQoNCW0JXQkdCV0KIKK9Ca0JDQndCQ0KfQmtCYINCW0JDQoNCa0J4KK9Ca0JDQndCQ0KfQmtCYINCJ0JjQidCQ0J3QkAor0JrQkNCd0JDQp9Ca0Jgg0JzQkNCT0JTQkNCb0JXQndCQCivQmtCQ0J3QkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Ca0JDQndCQ0KfQmtCYINCX0JvQkNCi0JAKK9Ca0JDQndCQ0JfQmNCgINCW0JjQktCa0JAKK9Ca0JDQndCQ0JfQmNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0J3QkNCX0JjQoC3QkdCV0JvQmNCLINCc0JjQm9CY0KbQkAor0JrQkNCd0JDQl9CY0KAg0JHQntCg0JjQodCb0JDQkgor0JrQkNCd0JDQl9CY0KAg0JHQntCg0JjQodCb0JDQkgor0JrQkNCd0JDQl9CY0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCQ0J3QkNCX0JjQoCDQptCS0JXQotCQCivQmtCQ0J3QkNCX0JjQoCDQlNCg0JDQk9CY0KbQkAor0JrQkNCd0JDQl9CY0KAg0JTQoNCQ0JPQmNCm0JAKK9Ca0JDQndCQ0JfQmNCgINCU0KPQqNCQ0J0KK9Ca0JDQndCQ0JfQmNCgINCY0JLQkNCd0JrQkAor0JrQkNCd0JDQl9CY0KAg0IjQntCS0JDQndCa0JAKK9Ca0JDQndCQ0JfQmNCgINCI0J7QktCQ0J0KK9Ca0JDQndCQ0JfQmNCgINCa0J7QodCi0JAKK9Ca0JDQndCQ0JfQmNCgINCa0J7QodCi0JAKK9Ca0JDQndCQ0JfQmNCgINCa0J7QodCi0JAKK9Ca0JDQndCQ0JfQmNCgINCc0JDQoNCY0IjQkAor0JrQkNCd0JDQl9CY0KAg0JzQmNCb0JDQnQor0JrQkNCd0JDQl9CY0KAg0JzQmNCb0JjQptCQCivQmtCQ0J3QkNCX0JjQoCDQnNCY0JvQntCS0JDQnQor0JrQkNCd0JDQl9CY0KAg0KDQkNCU0JjQktCe0IgKK9Ca0JDQndCQ0JfQmNCgINCh0JvQkNCS0JrQngor0JrQkNCd0JDQl9CY0KAg0JLQkNCh0JAKK9Ca0JDQndCQ0JfQmNCgINCS0JXQoNCY0KbQkCDQlNCgCivQmtCQ0J3QkNCX0JjQoCDQktCj0JrQmNCm0JAKK9Ca0JDQndCQ0JfQmNCgINCX0JDQpdCQ0KDQmNCI0JUKK9Ca0JDQndCR0JDQnSDQnNCY0JvQmNCm0JAKK9Ca0JDQndCU0JjQiyDQndCQ0JTQkAor0JrQkNCd0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQmtCQ0J3QlNCY0Isg0KHQnNCY0InQkNCd0JAKK9Ca0JDQndCU0JjQiyDQktCY0JTQntCI0JUKK9Ca0JDQndCU0KDQkNCnINCC0J7QoNCC0JUKK9Ca0JDQndCU0KDQkNCnINCb0JXQntCd0JAKK9Ca0JDQndCT0KDQk9CQINCQ0J3QmtCQCivQmtCQ0J3Qk9Cg0JPQkCDQmtCe0KHQotCQCivQmtCQ0J3Qk9Cg0JPQkCDQoNCj0JbQkAor0JrQkNCd0JjQltCQ0Jgg0JXQktCQCivQmtCQ0IrQkCDQiNCQ0J0KK9Ca0JDQitCV0KDQmNCLINCc0JDQotCVCivQmtCQ0IrQniDQmNCo0KLQktCQ0J0KK9Ca0JDQitCeINCh0KLQiNCV0J/QkNCdCivQmtCQ0IrQniDQl9Ce0JvQotCQ0J0KK9Ca0JDQitCj0KUg0IjQkNCa0JjQnAor0JrQkNCK0KPQpSDQiNCe0JDQmtCY0JwKK9Ca0JDQitCj0KUg0JzQkNCg0JjQptCQCivQmtCQ0IrQo9ClINCc0JjQoNCQCivQmtCQ0IrQo9ClINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQitCj0KUg0JfQktCe0J3QmtCeCivQmtCQ0IrQo9Ca0JAg0JjQktCQ0J0KK9Ca0JDQitCj0JrQkCDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0J3QmtCQ0KDQkNCoINCg0JDQlNCe0KHQkNCSCivQmtCQ0J3QmtCQ0KDQkNCoINCS0JXQodCV0JvQmNCdCivQmtCQ0J3Qm9CY0Isg0JzQmNCb0JDQnQor0JrQkNCd0JvQmNCLINCX0JDQoNCY0IjQkAor0JrQkNCd0J7QktCY0Isg0J/QkNCS0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQndCi0JDQoCDQgtCj0KDQngor0JrQkNCd0KLQkNCgINCU0JzQmNCi0JDQoAor0JrQkNCd0KLQkNCgINCa0JDQiNCQCivQmtCQ0J3QotCQ0KAg0JzQmNCb0JDQnQor0JrQkNCd0KLQkNCgINCc0JjQm9Ce0KgKK9Ca0JDQndCi0JDQoCDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0J3QotCQ0KAg0J3QmNCa0J7Qm9CQCivQmtCQ0J3QotCQ0KAg0J7QodCi0J7QiNCQCivQmtCQ0J3QotCQ0KAg0JLQm9CQ0JTQngor0JrQkNCd0KLQkNCg0I/QmNCLINCC0J7QoNCC0JUKK9Ca0JDQndCi0JDQoNCP0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQkNCd0KLQkNCg0I/QmNCLINCI0JXQm9CV0J3QkAor0JrQkNCd0KLQkNCg0I/QmNCLINCa0JDQotCY0KbQkAor0JrQkNCd0KLQkNCg0I/QmNCLINCa0J7QodCi0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQm9CQ0JfQkNCgCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JvQkNCX0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQkNCd0KLQkNCg0I/QmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQkNCd0KLQkNCg0I/QmNCLINCc0JvQkNCU0JXQnQor0JrQkNCd0KLQkNCg0I/QmNCLINCd0JDQlNCQCivQmtCQ0J3QotCQ0KDQj9CY0Isg0J7Qm9CT0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQn9CV0KLQkNCgCivQmtCQ0J3QotCQ0KDQj9CY0Isg0KHQotCV0JLQkNCdCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JLQkNCh0JAKK9Ca0JDQndCi0JjQndCa0J7QodCa0Jgg0KXQkNCd0KMKK9Ca0JDQndCi0J7QoCDQm9CQ0IjQntCoCivQmtCQ0J3QotCe0KAg0J7QodCa0JDQoAor0JrQkNCd0KPQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQndCj0KDQmNCLINCc0JjQm9CY0KbQkAor0JrQkNCd0KPQoNCY0Isg0JfQntCg0JrQkAor0JrQkNCd0KPQoNCh0JrQmCDQiNCe0JLQkNCdCivQmtCQ0J3Qo9Cg0KHQmtCYINCS0JjQlNCe0KHQkNCS0JAKK9Ca0JDQn9CQ0JzQkNCP0JjQiNCQINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCQ0J/QkNCc0JDQj9CY0IjQkCDQkdCe0KDQmNCh0JvQkNCSINCU0KAKK9Ca0JDQn9CQ0JzQkNCP0JjQiNCQINCU0KPQqNCQ0J3QmtCQCivQmtCQ0J/QkNCc0JDQj9CY0IjQkCDQoNCQ0JTQnNCY0JvQkAor0JrQkNCf0JDQnNCQ0I/QmNCdINCI0J7QktCQ0J0KK9Ca0JDQn9CV0JvQkNCdINCd0JjQmtCe0JvQkAor0JrQkNCf0JXQoSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCf0JXQoSDQl9CU0KDQkNCS0JrQkAor0JrQkNCf0JXQotCQ0J3QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0JDQn9CV0KLQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JrQkNCf0JXQotCQ0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0JrQkNCf0JXQotCQ0J3QntCSINCS0KPQmtCY0KbQkAor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCc0JjQlNCl0JDQogor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQntCb0JPQkAor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JrQkNCf0JjQp9CY0Isg0JTQo9Co0JDQnQor0JrQkNCf0JjQp9CY0Isg0KHQkNCS0J4KK9Ca0JDQn9CY0KfQmNCLINCh0KLQldCS0JDQnQor0JrQkNCf0JjQptCbINCU0KDQkNCT0KPQotCY0J0KK9Ca0JDQn9CY0KLQkNCKINCb0JDQodCb0J4KK9Ca0JDQn9Cb0JDQoCDQltCY0JLQkNCdCivQmtCQ0J/Qm9CQ0KAg0JzQkNCg0JjQiNCQCivQmtCQ0J/Qm9CQ0KDQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQkNCf0JvQkNCg0KHQmtCYINCa0J7QndCh0KLQkNCd0KLQmNCdCivQmtCQ0J/Qm9CQ0KDQodCa0Jgg0JzQm9CQ0JTQldCdCivQmtCQ0J/Qm9CQ0KDQodCa0Jgg0KHQktCV0KLQm9CQ0J3QkAor0JrQkNCf0JvQmNCI0JXQkiDQn9CV0KLQkNCgCivQmtCQ0J/QnNCQ0IjQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0J/QntCnINCQ0J3QotCQ0JsKK9Ca0JDQn9Ce0Kcg0IjQo9CU0JjQogor0JrQkNCf0J7QoCDQkNCT0J3QldCoCivQmtCQ0J/QntCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0J/QntCgINCU0JXQodCQ0J3QmtCQCivQmtCQ0J/QntCgINCT0J7QiNCa0J4KK9Ca0JDQn9Ce0KAg0JrQkNCi0JDQoNCY0J3QkAor0JrQkNCf0J7QoCDQndCQ0JTQkAor0JrQkNCf0J7QoCDQndCe0JLQmNCm0JAKK9Ca0JDQn9Ce0KAg0KHQotCQ0J3QkAor0JrQkNCf0J7QodCi0JAg0KLQldCg0JXQl9CQCivQmtCQ0J/QoNCY0Kgg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQn9Cj0Isg0JjQm9Ce0J3QkAor0JrQkNCg0IvQkNCoINCc0JjQm9Ca0JAKK9Ca0JDQoNCQ0Kcg0JzQmNCg0JrQngor0JrQkNCg0JDQp9Ce0IrQmCDQmNCo0KLQktCQ0J0KK9Ca0JDQoNCQ0Isg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQkNCLINCU0KPQqNCQ0J0KK9Ca0JDQoNCQ0Isg0JTQo9Co0JDQnQor0JrQkNCg0JDQiyDQmNCb0JjQiNCQCivQmtCQ0KDQkNCLINCI0JXQm9CY0KbQkAor0JrQkNCg0JDQiyDQidCj0JHQntCc0JjQoAor0JrQkNCg0JDQiyDQnNCQ0KDQmNCI0JAKK9Ca0JDQoNCQ0Isg0JzQmNCb0JXQndCa0J4KK9Ca0JDQoNCQ0Isg0KDQkNCU0JXQndCa0J4KK9Ca0JDQoNCQ0Isg0KDQkNCI0JrQngor0JrQkNCg0JDQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KDQkNCC0JXQndCe0JIg0JjQktCQ0J0KK9Ca0JDQoNCQ0ILQldCd0J7QkiDQmNCS0JDQnQor0JrQkNCg0JDQgtCV0J3QntCSINCc0JjQoNCI0JDQndCQCivQmtCQ0KDQkNCC0JjQndCe0JLQmNCLINCo0J/QmNCg0J4KK9Ca0JDQoNCQ0ILQmNCd0J7QktCY0Isg0J3QldCd0JDQlAor0JrQkNCg0JDQgtCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCQ0KDQkNCC0JjQndCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQmtCQ0KDQkNCC0JjQndCe0JLQmNCLINCX0J7QoNCQCivQmtCQ0KDQkNCR0JAg0JjQoNCV0J3QkCDQlNCgINCb0JXQmtCQ0KAKK9Ca0JDQoNCQ0JHQkCDQiNCe0JLQkNCdCivQmtCQ0KDQkNCR0JAg0J7Qm9CT0JAKK9Ca0JDQoNCQ0JHQkNCoINCc0JjQm9CY0JLQntCICivQmtCQ0KDQkNCR0JDQqCDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KDQkNCR0JDQodCY0Jsg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQkNCR0JDQodCY0Jsg0JLQmNCU0J7QnNCY0KAKK9Ca0JDQoNCQ0JHQldCT0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQmtCQ0KDQkNCP0JjQiyDQqNCj0IjQngor0JrQkNCg0JDQj9CY0Isg0JbQkNCg0JrQngor0JrQkNCg0JDQj9CY0Isg0ILQntCg0ILQlQor0JrQkNCg0JDQj9CY0Isg0JDQoNCh0JXQndCY0IjQlQor0JrQkNCg0JDQj9CY0Isg0JDQktCg0JDQnAor0JrQkNCg0JDQj9CY0Isg0JHQntCW0J4KK9Ca0JDQoNCQ0I/QmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JrQkNCg0JDQj9CY0Isg0IjQntCS0JDQnQor0JrQkNCg0JDQj9CY0Isg0IjQntCS0JDQnQor0JrQkNCg0JDQj9CY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0JDQoNCQ0I/QmNCLINCc0JDQoNCY0IjQkAor0JrQkNCg0JDQj9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQoNCQ0I/QmNCLINCc0JjQntCU0KDQkNCTCivQmtCQ0KDQkNCP0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0KDQkNCP0JjQiyDQndCV0J3QkNCUCivQmtCQ0KDQkNCP0JjQiyDQoNCV0InQkAor0JrQkNCg0JDQj9CY0Isg0KDQo9CW0JAKK9Ca0JDQoNCQ0I/QmNCLINCh0JvQkNCS0JjQptCQCivQmtCQ0KDQkNCP0JjQiyDQotCS0KDQotCa0J4KK9Ca0JDQoNCQ0I/QmNCLINCS0JXQoNCQCivQmtCQ0KDQkNCP0JjQiyDQktCj0JoKK9Ca0JDQoNCQ0I/QmNCLINCX0J7QoNCQ0J0KK9Ca0JDQoNCQ0I/QmNCLINCX0J7QoNCQ0J0KK9Ca0JDQoNCQ0JTQkNCg0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQkNCg0JDQlNCQ0KDQldCS0JjQiyDQnNCY0JvQntCoCivQmtCQ0KDQkNCU0JXQk9Cb0JjQiyDQmtCe0KHQkAor0JrQkNCg0JDQk9CQINCd0JjQmtCe0JvQkAor0JrQkNCg0JDQk9CY0Ist0JvQmNCf0JjQndCh0JrQmCDQmNCb0J7QndCQCivQmtCQ0KDQkNCY0KbQkCDQl9Ce0KDQkNCdCivQmtCQ0KDQkNCI0JrQntCSINCQ0JvQntCI0JfQmNCI0JUKK9Ca0JDQoNCQ0IjQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCg0JDQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0KDQkNCI0JvQntCS0JjQiyDQgtCj0KDQngor0JrQkNCg0JDQiNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmtCQ0KDQkNCa0JDQqCDQnNCY0KDQiNCQ0J3QkAor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQldCS0JjQptCQCivQmtCQ0KDQkNCa0JDQqNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQl9Ce0KDQkAor0JrQkNCg0JDQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQCivQmtCQ0KDQkNCc0JDQotCY0Isg0JDQndCi0JUKK9Ca0JDQoNCQ0J0g0JbQldCJ0JrQngor0JrQkNCg0JDQnSDQlNCg0JDQk9CQ0J0KK9Ca0JDQoNCQ0J0t0JrQldCg0J0g0JHQkNCg0JHQkNCg0JAKK9Ca0JDQoNCQ0J0g0JzQmNCb0JDQnQor0JrQkNCg0JDQnSDQnNCY0JvQldCd0JrQngor0JrQkNCg0JDQnSDQnNCY0JvQmNCd0JrQngor0JrQkNCg0JDQnSDQodCQ0JLQngor0JrQkNCg0JDQnSDQodCg0ILQngor0JrQkNCg0JDQitCQ0KYg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCQ0KDQkNCK0JDQpiDQidCj0JHQmNCm0JAKK9Ca0JDQoNCQ0IrQkNCmINCS0JXQoNCe0InQo9CRCivQmtCQ0KDQkNCd0J7QkiDQltCY0JLQkNCdCivQmtCQ0KDQkNCd0J7QkiDQkdCj0JTQmNCc0JrQkAor0JrQkNCg0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JrQkNCg0JDQndCe0JIg0JrQo9CX0JzQkNCdCivQmtCQ0KDQkNCd0J7QkiDQnNCY0JvQkNCdCivQmtCQ0KDQkNCd0J7QkiDQnNCY0JvQntCS0JDQnQor0JrQkNCg0JDQndCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JrQkNCg0JDQndCe0JIg0KHQntCk0JjQiNCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JrQkNCg0JDQndCe0JLQmNCLINCR0J7QltCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0JrQkNCg0JDQndCe0JLQmNCLINCT0KDQldCi0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JrQkNCg0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQmNCS0JjQptCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JrQkNCg0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQkNCg0JDQndCe0JLQmNCLINCJ0KPQkdCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JrQkNCg0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0KDQkNCd0J7QktCY0Isg0J/QldCg0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCh0KLQldCS0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCQ0KDQkNCd0J7QktCY0Isg0KLQoNCY0JLQngor0JrQkNCg0JDQndCe0JLQmNCLINCS0JXQodCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCg0JDQn9CQ0J3QltCQINCc0JDQoNCY0IjQkAor0JrQkNCg0JDQn9CQ0J3Qj9CQINCJ0JjQidCQ0J3QkAor0JrQkNCg0JDQn9CQ0J3Qj9CQINCS0JjQotCe0JzQmNCgCivQmtCQ0KDQkNCf0JDQndCP0JjQiyDQgtCj0KDQkAor0JrQkNCg0JDQn9CQ0J3Qj9CY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0JDQoNCQ0J/QkNCd0I/QmNCLINCc0JjQoNCI0JDQndCQCivQmtCQ0KDQkNCf0JDQndCP0JjQnSDQkdCQ0KDQkdCQ0KDQkAor0JrQkNCg0JDQn9CQ0J3Qj9CY0J0g0JfQntCg0JrQkAor0JrQkNCg0JDQoSDQmtCQ0JfQmNCc0JjQoAor0JrQkNCg0JDQoSDQnNCQ0JPQlNCQCivQmtCQ0KDQkNChINCf0JXQotCQ0KAKK9Ca0JDQoNCQ0KEg0J/QldCi0JDQoAor0JrQkNCg0JDQodCQ0JvQmNCl0J7QktCY0Isg0KHQnNCQ0JjQmwor0JrQkNCg0JDQodCV0Jog0JrQkNCg0J7QiQor0JrQkNCg0JDQodCY0Igg0JHQntCg0JjQoQor0JrQkNCg0JDQodCY0Igg0IjQkNCh0JzQmNCd0JAKK9Ca0JDQoNCQ0KHQmNCIINCS0JXQoNCe0J3QmNCa0JAKK9Ca0JDQoNCQ0KLQmCDQldCj0JPQldCdCivQmtCQ0KDQkNCi0KPQoCDQiNCQ0JTQoNCQ0J3QmtCQCivQmtCQ0KDQkNCS0JvQkCDQmtCQ0KLQkNCg0JjQndCQCivQmtCQ0KDQkNCS0JvQkCDQl9Cb0JDQotCa0J4KK9Ca0JDQoNCQ0JLQm9CQINCX0J7QoNCY0KbQkAor0JrQkNCg0JHQkNCdINCg0KPQlNCe0JvQpAor0JrQkNCg0JTQkNCoINCe0JHQoNCQ0JQKK9Ca0JDQoNCU0JDQqCDQntCb0JPQkAor0JrQkNCg0JTQkNCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCQ0KDQlNCQ0KjQldCS0JjQiyDQpNCY0IjQkAor0JrQkNCg0JTQkNCo0JXQktCY0Isg0KXQo9Ch0J3QmNCI0JAKK9Ca0JDQoNCU0J7QqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCg0JTQntCoINCV0KDQmNCa0JAKK9Ca0JDQoNCU0J7QqCDQmNCb0J7QndCQCivQmtCQ0KDQlNCe0Kgg0JvQkNCI0J7QqAor0JrQkNCg0JTQntCoINCf0JDQmwor0JrQkNCg0JTQntCoINCS0JXQoNCe0J3QmNCa0JAKK9Ca0JDQoNCU0J7QkiDQiNCe0KHQmNCfCivQmtCQ0KDQlNCj0Jwg0ILQntCg0ILQlQor0JrQkNCg0JPQkNCn0JjQnSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQkNCg0JjQqNCY0Isg0JjQktCQ0J3QmtCQCivQmtCQ0KDQmNCo0JjQmiDQlNCQ0J3QlQor0JrQkNCg0JjQqNCY0Jog0IjQntCS0JDQndCa0JAKK9Ca0JDQoNCY0KjQmNCaINCc0JjQm9Cj0KLQmNCdCivQmtCQ0KDQmNCLINCR0J7QodCY0InQmtCQCivQmtCQ0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCQ0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0JDQoNCY0Isg0KHQkNCS0JAKK9Ca0JDQoNCY0Isg0KHQkNCS0JAKK9Ca0JDQoNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCQ0KDQmNCa0J4g0IjQntCh0JjQnwor0JrQkNCg0JjQmtCeINCc0JDQoNCY0IjQkAor0JrQkNCg0JjQmtCeINCi0JXQoNCV0JfQkAor0JrQkNCg0JjQndCQINCU0KDQkNCT0JjQptCQCivQmtCQ0KDQmNCj0KEg0JzQkNCg0JjQiNCQCivQmtCQ0KDQmNCj0KEg0JLQldCg0JAKK9Ca0JDQoNCb0JDQqCDQnNCY0JvQntCg0JDQlAor0JrQkNCg0JvQkNCS0JDQoNCY0KEg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQm9CQ0JLQkNCg0JjQoSDQmNCS0JDQnQor0JrQkNCg0JvQkNCS0JDQoNCY0KEg0J3QkNCU0JAKK9Ca0JDQoNCb0JDQktCQ0KDQmNChINCg0JDQlNCY0JLQntCICivQmtCQ0KDQm9CQ0JLQkNCg0JjQoS3Ql9CV0JrQntCS0JjQiyDQnNCY0KDQldCb0JAKK9Ca0JDQoNCb0JjQiyDQiNCV0KTQotCQCivQmtCQ0KDQm9CY0Isg0JvQkNCX0JDQoAor0JrQkNCg0JvQmNCLINCc0JjQm9CY0JLQntCICivQmtCQ0KDQm9CeINCS0JDQiNCU0JAKK9Ca0JDQoNCb0J7QktCn0JXQpiDQnNCY0KDQmtCeCivQmtCQ0KDQm9Ce0JLQmNCLINCC0JXQoNCCCivQmtCQ0KDQm9Ce0JLQmNCLINCc0JDQoNCY0KbQkAor0JrQkNCg0J7Qm9CY0Isg0InQo9CR0JjQptCQCivQmtCQ0KDQntCb0JjQiyDQnNCY0KDQmtCeCivQmtCQ0KDQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0KDQntCJ0Jgg0IjQkNCd0J7QqAor0JrQkNCg0J7QidCYINCb0JDQodCb0J4KK9Ca0JDQoNCe0JLQmNCLINCT0JvQmNCo0JAKK9Ca0JDQoNCf0JDQotCYINCb0JDQodCb0J4KK9Ca0JDQoNCf0J7QitCQINCI0KPQm9CY0IjQkNCd0JAKK9Ca0JDQoNCf0J7QitCQINCh0JjQndCY0KjQkAor0JrQkNCg0KLQkNCTINCd0JDQndCU0J7QoAor0JrQkNCg0KLQkNCYINCb0JDQiNCe0KgKK9Ca0JDQoNCi0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQoNCi0IjQlSDQiNCe0JLQkNCdCivQmtCQ0KDQktCQ0Jog0JXQnNCQCivQmtCQ0KDQktCQ0Jog0JPQldCX0JAKK9Ca0JDQodCQINCC0JXQoNCCCivQmtCQ0KHQkCDQkNCd0JTQoNCY0IjQkAor0JrQkNCh0JAg0JDQndCi0JDQmwor0JrQkNCh0JAg0KTQoNCQ0IrQkAor0JrQkNCh0JAg0JjQlNCQCivQmtCQ0KHQkCDQmNCc0KDQlQor0JrQkNCh0JAg0IjQldCb0JXQndCQCivQmtCQ0KHQkCDQnNCY0KXQkNCJCivQmtCQ0KHQkCDQoNCj0JbQkAor0JrQkNCh0JAg0KDQo9CW0JAKK9Ca0JDQodCQINCX0J7QoNCa0JAKK9Ca0JDQodCQ0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JzQoAor0JrQkNCh0JDQqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCh0JDQqCDQmNCc0KDQlQor0JrQkNCh0JDQqCDQmNCc0KDQlQor0JrQkNCh0JDQqCDQmNCc0KDQlQor0JrQkNCh0JDQqCDQiNCQ0J3QntCoCivQmtCQ0KHQkNCoINCI0J7QltCV0KQKK9Ca0JDQodCQ0Kgg0IjQntCh0JjQnwor0JrQkNCh0JDQqCDQmtCQ0KDQntCJCivQmtCQ0KHQkNCoINCa0JDQoNCe0IkKK9Ca0JDQodCQ0Kgg0JrQkNCg0J7QiQor0JrQkNCh0JDQqCDQntCb0JPQkAor0JrQkNCh0JDQk9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQkNCh0JDQm9CY0KbQkCDQltCQ0KDQmtCeCivQmtCQ0KHQkNCb0JjQptCQINCW0JjQktCa0J4KK9Ca0JDQodCQ0JvQmNCm0JAg0JzQmNCb0JDQnQor0JrQkNCh0JDQm9CY0KbQkCDQodCi0JXQktCQ0J3QmNCI0JAKK9Ca0JDQodCQ0J8g0JXQoNCS0JjQnQor0JrQkNCh0JDQn9Ce0JIg0KHQotCV0JLQkNCdCivQmtCQ0KHQkNCf0J7QktCY0Isg0JzQkNCg0JAKK9Ca0JDQodCQ0J/QntCS0JjQiyDQnNCV0KXQngor0JrQkNCh0JDQn9Ce0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQmtCQ0KHQkNCf0KHQmtCYINCW0JDQoNCa0J4KK9Ca0JDQodCQ0J/QodCa0Jgg0IjQldCb0JrQkAor0JrQkNCh0JDQoCDQodCV0JvQmNCcCivQmtCQ0KHQmNCLINCU0JDQndCY0KbQkAor0JrQkNCh0J3QldCgINCc0JjQiNCe0InQmtCQCivQmtCQ0KHQn9CV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQodCf0JXQoCDQpNCV0KDQldCd0KYKK9Ca0JDQodCf0JXQoCDQpNCg0JDQitCQCivQmtCQ0KHQn9CV0KAg0JvQkNCU0JjQodCb0JDQkgor0JrQkNCh0J/QldCgINCh0KLQldCS0JDQnQor0JrQkNCh0KLQldCb0Jgg0ILQo9Cg0ILQmNCd0JrQkAor0JrQkNCh0KLQldCb0Jgg0JzQkNCg0JrQngor0JrQkNCh0KLQntCg0Jgg0KDQo9CU0J7Qm9CkCivQmtCQ0KHQotCg0JDQotCYINCk0JDQlNCY0JsKK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JHQntCT0JTQkNCdCivQmtCQ0KHQotCg0JDQotCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQmtCQ0KHQotCg0JDQotCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JfQntCg0JDQnQor0JrQkNCh0KLQoNCQ0KLQntCS0JjQiyDQl9Ce0KDQkNCdCivQmtCQ0KLQkNCo0JjQiyDQn9CV0KLQkNCgCivQmtCQ0KLQkNCb0JXQndCY0Isg0JTQo9Co0JDQnQor0JrQkNCi0JDQm9CY0J3Qp9CV0JIg0JbQmNCS0JDQnQor0JrQkNCi0JDQndCQINCQ0J3Qk9CV0JvQmNCd0JAKK9Ca0JDQotCQ0J3QkCDQndCY0JrQntCb0JAKK9Ca0JDQotCQ0J3QmNCLINCQ0J3QgtCV0JvQmtCQCivQmtCQ0KLQkNCd0JjQiyDQiNCV0KbQkAor0JrQkNCi0JDQndCY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0JDQotCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JrQkNCi0JDQndCY0Isg0JzQkNCg0JAKK9Ca0JDQotCQ0J3QmNCLINCg0JDQlNCY0JLQntCICivQmtCQ0KLQkNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQkNCi0JDQndCY0Isg0KHQkNCS0JAg0JTQoAor0JrQkNCi0JDQndCh0JrQmCDQnNCY0JvQntCoCivQmtCQ0KLQkNCd0KHQmtCYINCf0JDQktCb0JUKK9Ca0JDQotCQ0KDQmNCd0KfQmNCLINCm0JXQm9CV0KHQotCY0J0KK9Ca0JDQotCQ0KDQmNCS0JDQoSDQldCb0JAKK9Ca0JDQotCQ0KDQmNCS0JDQoS3QndCY0JrQntCb0JjQiyDQk9CY0JfQldCb0JAKK9Ca0JDQotCQ0KLQmNCLINCY0JvQntCd0JAKK9Ca0JDQotCQ0JLQkCDQoNCj0JTQntCb0KQKK9Ca0JDQotCQ0JLQmNCLINCU0JDQndCY0JvQmtCQCivQmtCQ0KLQkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0JDQotCQ0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQmtCQ0KLQmNCLINCQ0JTQkAor0JrQkNCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQotCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0JDQotCY0Isg0JTQkNCg0JAKK9Ca0JDQotCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0JDQotCY0Isg0JPQntCI0JrQngor0JrQkNCi0JjQiyDQmNCb0JjQiNCQCivQmtCQ0KLQmNCLINCY0JvQmNCI0JAKK9Ca0JDQotCY0Isg0JjQktCQ0J0KK9Ca0JDQotCY0Isg0IjQntCS0JDQnQor0JrQkNCi0JjQiyDQiNCe0JLQngor0JrQkNCi0JjQiyDQmtCe0KHQotCQCivQmtCQ0KLQmNCLINCa0KDQodCi0JAKK9Ca0JDQotCY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0JDQotCY0Isg0InQmNCJ0JDQndCQCivQmtCQ0KLQmNCLINCJ0KPQkdCY0J3QmtCeCivQmtCQ0KLQmNCLINCb0KPQmtCQCivQmtCQ0KLQmNCLINCc0JDQoNCT0JDQoNCV0KLQkAor0JrQkNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0JDQotCY0Isg0JzQmNCb0JDQnQor0JrQkNCi0JjQiyDQnNCY0JvQkNCdCivQmtCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KLQmNCLINCc0JjQotCQCivQmtCQ0KLQmNCLINCd0JjQmtCe0JvQkAor0JrQkNCi0JjQiyDQndCe0JLQkNCaCivQmtCQ0KLQmNCLINCe0KLQmNCb0JjQiNCQCivQmtCQ0KLQmNCLINCf0JDQktCb0JUg0JTQoAor0JrQkNCi0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQkNCi0JjQiyDQoNCQ0KLQmtCeCivQmtCQ0KLQmNCLINCh0JDQktCeCivQmtCQ0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCi0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQkNCi0JjQiyDQodCg0JXQotCV0J0KK9Ca0JDQotCY0Isg0KHQotCQ0J3QmtCeCivQmtCQ0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQkNCi0JjQiyDQodCS0JXQotCb0JDQndCQCivQmtCQ0KLQmNCLINCS0JXQodCV0JvQkAor0JrQkNCi0JjQiyDQktCV0KHQndCQCivQmtCQ0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQotCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0JrQkNCi0JjQndCn0JjQiyDQltCV0JvQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQotCd0JjQiyDQodCQ0JLQldCi0JAKK9Ca0JDQotCe0J3QkCDQmNCc0KDQlQor0JrQkNCi0J7QndCQINCI0J7QltCV0KQKK9Ca0JDQotCe0J3QkCDQm9CQ0IjQntCoINCU0JjQn9CbINCY0J3Qkwor0JrQkNCi0J7QndCQINCb0JDQodCb0J4KK9Ca0JDQotCe0J3QkCDQktCY0J3QptCVCivQmtCQ0KPQoNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0KPQoNCY0J0g0IjQo9Cg0JUKK9Ca0JDQo9Cg0JjQnSDQmtCg0KHQotCeCivQmtCQ0KPQoNCY0J0g0JvQkNCX0JDQoAor0JrQkNCj0KDQmNCdINCc0J7QnNCn0JjQm9CeCivQmtCQ0KPQoNCY0J0g0J3QldCU0JXQidCa0J4KK9Ca0JDQo9Cg0JjQnSDQktCQ0KHQngor0JrQkNCj0KDQmNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0JDQo9Cg0JjQndCe0JLQmNCLINCh0JjQnNCeINCU0JjQn9CbINCY0J3Qkwor0JrQkNCj0KLQldCdINCI0J7QpdCQ0J0KK9Ca0JDQktCn0JjQiyDQodCi0JXQktCQ0J0KK9Ca0JDQktCQ0IjQkCDQm9Cj0JrQkAor0JrQkNCS0JDQiNCQINCd0JjQmtCeCivQmtCQ0JLQkNCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCQ0JLQldCn0JDQnSDQmNCS0JDQnSDQlNCgCivQmtCQ0JLQldCn0JDQnSDQndCY0JrQntCb0JAKK9Ca0JDQktCT0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQkNCS0JPQmNCLINCd0JjQmtCe0JvQkAor0JrQkNCS0JPQmNCLINCf0JXQotCQ0KAKK9Ca0JDQktCT0JjQiyDQn9CV0KLQkNCgCivQmtCQ0JLQk9CY0Isg0KHQotCV0JLQkNCdCivQmtCQ0JLQoNCQ0IjQkCDQodCi0JXQktCQ0J0KK9Ca0JDQktCg0JDQiNCQINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0JDQktCg0JDQnSDQltCV0InQmtCeCivQmtCQ0JfQkNCk0JXQoNCe0JLQmNCLINCg0JXQqNCQ0JQKK9Ca0JDQl9CQ0J3QptCV0JIg0IjQntCh0JjQn9CQCivQmtCQ0JfQmCDQldCg0J3QlQor0JrQkNCX0Jgg0IjQntCW0JXQpAor0JrQkNCX0JjQiNCQINCh0JzQmNCJ0JrQkAor0JrQkNCX0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQmtCQ0JfQmNCc0JjQoNCe0JLQmNCLINCQ0J3QkAor0JrQkNCX0JjQnNCY0KDQntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0JrQkNCX0JjQnNCY0KDQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQkNCX0JjQnNCY0KDQntCS0JjQiyDQndCV0KHQotCe0KAKK9Ca0JXQp9CQINCR0J7QiNCQ0J3QkAor0JrQldCn0JAg0JTQo9Co0JDQndCa0JAKK9Ca0JXQp9CQINCY0JvQmNCI0JAKK9Ca0JXQp9CQINCc0JjQmtCQ0J0KK9Ca0JXQp9CQINCc0JjQm9CQ0J0KK9Ca0JXQp9CQINCc0JjQm9CQ0J0KK9Ca0JXQp9CQINCc0JjQm9CQ0J0KK9Ca0JXQp9CQINCc0JjQm9CV0J3QmtCeCivQmtCV0KfQkCDQnNCY0JvQldCS0JAKK9Ca0JXQp9CQINCf0JXQoNCeCivQmtCV0KfQkCDQoNCQ0J3QmtCeCivQmtCV0KfQkCDQodCb0J7QkdCe0JTQkNCdCivQmtCV0KfQkCDQktCe0IjQmNCdCivQmtCV0KfQmNCLINCW0JjQktCQ0J0KK9Ca0JXQp9CY0Isg0JzQmNCb0JDQnSDQkNCa0JDQlNCV0JzQodCa0Jgg0KHQm9CY0JrQkNCgCivQmtCV0KfQmtCV0Kgg0ILQldCg0IIKK9Ca0JXQp9Ca0JXQqCDQpNCV0KDQldCd0KYKK9Ca0JXQp9Ca0JXQqCDQiNCe0KHQmNCfCivQmtCV0KfQmtCV0JzQldCi0Jgg0JjQqNCi0JLQkNCdCivQmtCV0KfQmtCYINCg0KPQltCY0KbQkAor0JrQldCo0JDQndCh0JrQmCDQmNCS0JrQkAor0JrQldCo0JDQndCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Ca0JXQqNCQ0J3QodCa0Jgg0KDQkNCU0JXQndCa0J4KK9Ca0JXQqNCQ0J3QodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Ca0JXQqNCQ0J3QodCa0Jgg0KDQo9CW0JjQptCQCivQmtCV0KjQkNCd0KHQmtCYINCh0JjQnNCeCivQmtCV0KjQkNCd0KHQmtCYINCh0KLQkNCd0JjQodCb0JDQkgor0JrQldCo0JXQiSDQp9CV0JTQntCc0JjQoAor0JrQldCo0JXQiSDQldCS0JAKK9Ca0JXQqNCV0Ikg0JPQntCI0JrQngor0JrQldCo0JXQiSDQiNCe0JLQkNCdCivQmtCV0KjQldCJINCg0JDQlNCc0JjQm9CQCivQmtCV0KjQldCJINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQqNCV0Ikg0KPQk9CJ0JXQqNCQCivQmtCV0KjQldCJINCS0KPQmtCQ0KjQmNCdCivQmtCV0KjQmtCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JrQldCo0JzQkNCg0JrQmC3QmtCg0JXQodCi0JAg0IjQldCb0JXQndCQCivQmtCV0JbQmNCLINCR0JjQidCQ0J3QkAor0JrQldCW0JjQiyDQlNCj0KjQkNCdCivQmtCV0JbQmNCLINCa0JDQotCY0KbQkAor0JrQldCW0JjQiyDQnNCQ0KDQiNCQ0J0KK9Ca0JXQltCY0Isg0JzQmNCb0JDQnQor0JrQldCW0JjQiyDQndCV0JLQldCd0JrQkAor0JrQldCW0JjQiyDQktCb0JDQlNCeCivQmtCV0JHQmNCdINCW0JDQoNCa0J4KK9Ca0JXQptCV0JvQmCDQnNCY0KXQkNCJCivQmtCV0KbQmNCLINCU0JDQndCY0JvQniDQlNCgCivQmtCV0KbQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JXQptCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQldCm0JzQkNCdINCn0JXQlNCQCivQmtCV0KbQnNCQ0J0g0JbQkNCg0JrQngor0JrQldCm0JzQkNCdINCC0KPQoNCeCivQmtCV0KbQnNCQ0J0g0ILQo9Cg0J4KK9Ca0JXQptCc0JDQnSDQkdCe0KDQmNCh0JvQkNCSCivQmtCV0KbQnNCQ0J0g0JHQoNCQ0J3QmtCeCivQmtCV0KbQnNCQ0J0g0JTQoNCQ0JPQmNCm0JAKK9Ca0JXQptCc0JDQnSDQlNCj0KjQkNCdCivQmtCV0KbQnNCQ0J0g0JjQm9CY0IjQkAor0JrQldCm0JzQkNCdINCI0J7QktCQ0J0KK9Ca0JXQptCc0JDQnSDQiNCe0JLQkNCdCivQmtCV0KbQnNCQ0J0g0IjQo9Cb0JrQkAor0JrQldCm0JzQkNCdINCJ0KPQkdCQCivQmtCV0KbQnNCQ0J0g0JzQkNCg0JAKK9Ca0JXQptCc0JDQnSDQnNCQ0KDQmtCeCivQmtCV0KbQnNCQ0J0g0JzQmNCb0JDQlNCY0J0KK9Ca0JXQptCc0JDQnSDQnNCY0JvQkNCdCivQmtCV0KbQnNCQ0J0g0JzQmNCb0JDQnQor0JrQldCm0JzQkNCdINCc0JjQm9Ca0JAKK9Ca0JXQptCc0JDQnSDQnNCY0JvQo9Ci0JjQnQor0JrQldCm0JzQkNCdINCc0JjQoNCI0JDQndCQCivQmtCV0KbQnNCQ0J0g0JzQmNCg0J7QodCb0JDQktCQCivQmtCV0KbQnNCQ0J0g0JzQm9CQ0JTQldCdCivQmtCV0KbQnNCQ0J0g0KHQotCV0JLQkNCdCivQmtCV0KbQnNCQ0J0g0KHQktCV0KLQmtCeCivQmtCV0KbQniDQp9CV0JTQntCc0JjQoAor0JrQldCm0J4g0JPQntCI0JrQngor0JrQldCm0J4g0IjQldCb0JXQndCQCivQmtCV0KbQniDQidCj0JHQntCc0JjQoAor0JrQldCm0J4g0JzQkNCg0JjQiNCQCivQmtCV0KbQniDQnNCQ0KDQmNCI0JAKK9Ca0JXQptCeINCc0JjQoNCI0JDQndCQCivQmtCV0KbQniDQnNCY0KLQkNCgCivQmtCV0KbQniDQnNCe0JzQmNCgCivQmtCV0KbQniDQoNCQ0JTQntCI0JUKK9Ca0JXQptCeINCg0JDQotCa0J4KK9Ca0JXQptCeINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQptCeINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQj9CQINCc0JjQm9Ce0KDQkNCUCivQmtCV0JTQmNCLINCU0KPQqNCQ0J0KK9Ca0JXQlNCY0Isg0KHQotCQ0J3QmtCeCivQmtCV0JTQktCV0Kgg0JXQktCQCivQmtCV0KTQldCgINCI0JDQndCe0KgKK9Ca0JXQpNCV0KAg0IjQntCh0JjQnwor0JrQldCT0JvQntCS0JjQiyDQktCY0J3QmtCeCivQmtCV0Jog0JXQoNCW0JXQkdCV0KIKK9Ca0JXQmiDQldCS0JAKK9Ca0JXQmtCV0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQldCa0JXQiiDQk9CY0JfQldCb0JAKK9Ca0JXQmtCV0Jcg0JTQoNCQ0JPQmNCK0JAKK9Ca0JXQmtCY0Isg0ILQntCg0ILQlQor0JrQldCa0JjQiyDQgtCj0KDQkAor0JrQldCa0JjQiyDQkNCT0JjQptCQCivQmtCV0JrQmNCLINCU0JDQndCY0KbQkAor0JrQldCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0JXQmtCY0Isg0JTQo9Co0JDQnQor0JrQldCa0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQldCa0JjQiyDQmtCe0KHQntCS0JrQkAor0JrQldCa0JjQiyDQnNCY0JvQkNCdCivQmtCV0JrQmNCLINCc0JjQm9CY0KbQkAor0JrQldCa0JjQiyDQnNCY0KDQmtCeCivQmtCV0JrQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ca0JXQmtCY0Isg0J/QldCi0JDQoAor0JrQldCa0JjQiyDQodCb0JDQktCY0KbQkAor0JrQldCa0JjQiyDQotCV0J7QlNCe0KAKK9Ca0JXQmtCY0J0g0JzQkNCg0JjQiNCQCivQmtCV0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCV0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQmtCV0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQldCb0JHQm9CYINCc0JjQpdCQ0IjQm9CeCivQmtCV0JvQlSDQiNCe0JbQldCkCivQmtCV0JvQlSDQiNCe0JbQldCkCivQmtCV0JvQldCnINCc0JjQm9Ce0KDQkNCUCivQmtCV0JvQldCnINCc0JjQoNCa0J4KK9Ca0JXQm9CV0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0JXQm9CV0KfQldCS0JjQiyDQndCY0JrQmNCm0JAKK9Ca0JXQm9CV0KfQmNCLINCY0JLQkNCdCivQmtCV0JvQldCn0JjQiyDQiNCe0KHQmNCfCivQmtCV0JvQldCc0JXQnSDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JXQm9CV0JzQldCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCV0JvQldCc0JXQnSDQkNCd0JAKK9Ca0JXQm9CV0JzQldCdINCT0JDQkdCe0KAKK9Ca0JXQm9CV0JzQldCdINCY0JzQoNCVCivQmtCV0JvQldCc0JXQnSDQiNCe0JbQldCkCivQmtCV0JvQldCc0JXQnSDQiNCe0JbQldCkCivQmtCV0JvQldCc0JXQnSDQm9CQ0IjQntCoCivQmtCV0JvQldCc0JXQnSDQnNCQ0IvQkNCoCivQmtCV0JvQldCc0JXQnSDQnNCQ0KDQmNCI0JAKK9Ca0JXQm9CV0JzQldCdINCi0JjQkdCe0KAKK9Ca0JXQm9CV0KAg0IjQkNCd0J7QqAor0JrQldCb0JXQoCDQiNCQ0J3QntCoCivQmtCV0JvQldCgINCf0JXQotCQ0KAKK9Ca0JXQm9CV0KAg0KDQkNCU0JzQmNCb0JAKK9Ca0JXQm9CV0KAg0KHQotCV0JLQkNCdCivQmtCV0JvQldCj0JLQkCDQlNCg0JDQk9CeCivQmtCV0JvQldCj0JLQkCDQnNCY0KXQkNCI0JvQngor0JrQldCb0JjQiyDQodCi0JXQktCQ0J3QmtCQCivQmtCV0JvQmNCI0JDQqNCV0JLQmNCLINCW0JjQktCa0J4KK9Ca0JXQm9Cd0JXQoCDQnNCQ0KDQmNCI0JAKK9Ca0JXQm9Ce0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQmtCV0JzQldCmINCQ0J3QlNCg0JjQiNCQCivQmtCV0JzQldCmINCc0JjQiNCeINCU0JjQn9CbINCY0J3Qkwor0JrQldCc0JXQndCm0Jgg0JHQldCb0JAKK9Ca0JXQnNCV0Iog0JzQmNCg0JAKK9Ca0JXQnNCV0Iog0KLQldCg0JXQl9CY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JXQnNCY0JLQldCoINCT0JXQntCg0JMKK9Ca0JXQndCC0JXQmyDQodCi0JXQktCY0KbQkAor0JrQldCd0KbQldCbINCh0JzQmNCJ0JAKK9Ca0JXQndCV0KjQmtCYINCU0KDQkNCT0JDQnQor0JrQldCd0JjQkyDQpdCV0J3QlNCg0JjQpQor0JrQldCd0JjQkyDQiNCV0JrQkAor0JrQldCd0JjQkyDQiNCV0JvQldCd0JAKK9Ca0JXQitCQ0JvQniDQodCi0J7QiNCQ0J0KK9Ca0JXQn9Cn0JjQiNCQINCY0JvQmNCI0JAKK9Ca0JXQn9Cn0JjQiNCQINCc0JjQm9CVCivQmtCV0J/Qp9CY0IjQkCDQotCe0JTQntCgCivQmtCV0J/QlS3QlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQm9CY0JLQmNCI0JAKK9Ca0JXQn9CVINCI0KPQm9CY0IjQkNCd0JAKK9Ca0JXQn9CY0Isg0JbQmNCS0JDQnQor0JrQldCg0KfQldCSINCa0JDQoNCb0J4KK9Ca0JXQoNCn0KMg0JzQmNCg0IjQkNCd0JAKK9Ca0JXQoNCn0KMg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCV0KDQqNCd0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQldCg0JDQpiDQltCQ0KDQmtCeCivQmtCV0KDQkNCmINCW0JDQoNCa0J4KK9Ca0JXQoNCQ0KYg0ILQo9Cg0JAKK9Ca0JXQoNCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCV0KDQkNCmINCU0JDQndCY0KbQkAor0JrQldCg0JDQpiDQlNCj0KjQkNCdCivQmtCV0KDQkNCmINCV0KDQltCV0JHQldCiCivQmtCV0KDQkNCmINCT0JDQktCg0JAKK9Ca0JXQoNCQ0KYg0IjQntCS0JDQnQor0JrQldCg0JDQpiDQiNCe0JLQkNCdCivQmtCV0KDQkNCmINCb0JDQl9CQ0KAKK9Ca0JXQoNCQ0KYg0JvQkNCX0JDQoAor0JrQldCg0JDQpiDQm9CV0J/QntCh0JDQktCQCivQmtCV0KDQkNCmINCc0JjQm9CY0JLQntCICivQmtCV0KDQkNCmINCc0JjQm9Ce0KgKK9Ca0JXQoNCQ0KYg0JzQmNCi0JAKK9Ca0JXQoNCQ0KYg0J/QkNCS0JvQlQor0JrQldCg0JDQpiDQn9CQ0JLQm9CVCivQmtCV0KDQkNCmINCf0JXQoNCQCivQmtCV0KDQkNCmINCh0JjQnNCQCivQmtCV0KDQkNCmINCh0J7QitCQCivQmtCV0KDQkNCmINCh0J/QkNCh0JAKK9Ca0JXQoNCQ0KYg0KHQotCQ0J3QkAor0JrQldCg0JDQpiDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JrQldCg0JDQpiDQodCi0JXQktCQ0J0KK9Ca0JXQoNCQ0KYg0KHQotCV0JLQkNCdCivQmtCV0KDQkNCmINCi0J7QlNCe0KAKK9Ca0JXQoNCQ0KYg0JfQm9CQ0KLQmtCeCivQmtCV0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQldCg0JDQndCe0JLQmNCLINCh0KLQkNCd0JAKK9Ca0JXQoNCQ0JLQp9CY0J0g0JzQmNCi0JAKK9Ca0JXQoNCQ0JLQp9CY0J0g0KHQktCV0KLQntCX0JDQoAor0JrQldCg0JDQktCY0KbQkCDQlNCQ0JLQmNCUCivQmtCV0KDQkNCS0JjQptCQINCI0J7QktCQ0J0KK9Ca0JXQoNCQ0JLQmNCm0JAg0InQo9CR0J7QnNCY0KAKK9Ca0JXQoNCQ0JLQmNCm0JAg0JzQmNCb0JjQktCe0IgKK9Ca0JXQoNCQ0JLQmNCm0JAg0JzQmNCb0J7QqAor0JrQldCg0JDQktCY0KbQkCDQnNCY0JvQntCoCivQmtCV0KDQkNCS0JjQptCQINCc0JjQntCU0KDQkNCTCivQmtCV0KDQkNCS0JjQptCQINCc0JjQntCU0KDQkNCTCivQmtCV0KDQkNCS0JjQptCQINCf0JXQotCQ0KAKK9Ca0JXQoNCQ0JLQmNCm0JAg0KHQotCV0JLQkNCdCivQmtCV0KDQkNCS0JjQptCQINCh0JLQldCi0JjQodCb0JDQkgor0JrQldCg0JXQp9Ca0Jgg0JHQoNCQ0J3QmtCeCivQmtCV0KDQldCn0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCV0KDQldCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0JXQoNCV0KjQldCS0JjQiyDQmNCb0J7QndCQCivQmtCV0KDQldCo0JXQktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JrQldCg0JXQqNCYINCI0KPQm9CY0IjQkNCd0JAKK9Ca0JXQoNCV0KjQmCDQktCY0J3QptCVCivQmtCV0KDQldCW0Jgg0KTQldCg0JXQndCmCivQmtCV0KDQldCmINCY0JLQkNCdCivQmtCV0KDQldCP0JjQnSDQnNCY0JvQkNCdCivQmtCV0KDQldCP0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQldCg0JXQj9CY0J0g0KHQntCk0JjQiNCQCivQmtCV0KDQldCa0JXQqCDQmNCo0KLQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCV0KDQldCa0JXQqC3QnNCQ0JvQntCd0JrQkCDQldCi0JXQm9Ca0JAKK9Ca0JXQoNCV0J3QldCmINCJ0JjQidCQ0J3QkAor0JrQldCg0JXQitCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCV0KDQldCh0KLQldCoINCI0JXQndCVCivQmtCV0KDQldCh0KLQldCoINCJ0KPQkdCY0KbQkAor0JrQldCg0JXQodCi0JXQqCDQnNCQ0KDQk9CY0KLQkAor0JrQldCg0JXQl9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCV0KDQldCX0J7QktCY0Isg0J3QldCC0J4KK9Ca0JXQoNCYINCU0JXQndCV0KgKK9Ca0JXQoNCYINCk0KDQkNCK0J4KK9Ca0JXQoNCYINCI0J7QktCQ0J0KK9Ca0JXQoNCY0Isg0KHQkNCS0JAKK9Ca0JXQoNCa0JXQlyDQlNCg0JDQk9CeCivQmtCV0KDQmtCV0Jcg0JTQo9Co0JDQndCa0JAKK9Ca0JXQoNCa0JXQlyDQlNCj0KjQkNCdCivQmtCV0KDQmtCV0Jcg0JTQo9Co0JDQnQor0JrQldCg0JrQldCXINCT0J7QiNCa0J4KK9Ca0JXQoNCa0JXQlyDQmNCb0JjQiNCQCivQmtCV0KDQmtCV0Jcg0JvQkNCX0JDQoAor0JrQldCg0JrQldCXINCc0JjQm9CQ0J0KK9Ca0JXQoNCa0JXQlyDQnNCY0JvQldCd0JrQngor0JrQldCg0JrQldCXINCc0JjQm9CY0KbQkAor0JrQldCg0JrQldCXINCc0JjQoNCI0JDQndCQCivQmtCV0KDQmtCV0Jcg0JzQmNCg0J7QodCb0JDQkgor0JrQldCg0JrQldCXINCc0JvQkNCU0JXQnQor0JrQldCg0JrQldCXINCd0JjQmtCe0JvQkAor0JrQldCg0JrQldCXINCf0JDQo9Cb0JjQndCQCivQmtCV0KDQmtCV0Jcg0J/QldCi0JDQoAor0JrQldCg0JrQldCXINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQoNCa0JXQlyDQodCg0JXQotCV0J0KK9Ca0JXQoNCa0JXQlyDQodCi0JXQktCQ0J0KK9Ca0JXQoNCa0JXQlyDQodCi0JXQktCQ0J0KK9Ca0JXQoNCa0JXQlyDQktCb0JDQlNCQCivQmtCV0KDQmtCV0Jcg0JLQntCI0JjQnQor0JrQldCg0JvQldCi0JAg0J3QldCC0J4KK9Ca0JXQoNCc0JXQpiDQmNCb0J7QndCa0JAKK9Ca0JXQoNCc0JXQptCYINCi0JjQkdCe0KAKK9Ca0JXQoNCc0JXQndCU0Jgg0J/QldCi0JDQoAor0JrQldCg0J0g0JTQkNCd0JjQldCbCivQmtCV0KDQn9CV0Jsg0KHQntCk0JjQiNCQCivQmtCV0KDQodCd0JjQmiDQiNCe0JbQlQor0JrQldCg0KHQndCY0Jog0JzQmNCo0JAKK9Ca0JXQoNCh0KLQmNCd0JMg0JrQkNCi0JDQoNCY0J3QkAor0JrQldCg0KLQldChINCV0KDQltCV0JHQldCiCivQmtCV0KDQotCV0KEg0IjQkNCd0J7QqAor0JrQldCg0KLQldChINCI0JDQndCe0KgKK9Ca0JXQoNCi0JXQoSDQktCY0JvQnNCe0KgKK9Ca0JXQoNCS0JjQndCQINCQ0J3QotCe0J0KK9Ca0JXQoNCS0JjQndCQINCQ0KDQmNCI0JDQndCQCivQmtCV0KHQldCTINCb0JDQiNCe0KgKK9Ca0JXQodCV0JMg0JvQkNCI0J7QqAor0JrQldCh0JXQk9CYINCT0JXQl9CQCivQmtCV0KHQldCT0Jgg0JrQkNCg0J7QiQor0JrQldCh0JXQk9CYINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JXQodCV0KAg0JTQoNCQ0JPQmNCo0JAKK9Ca0JXQodCV0KDQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQmtCV0KHQmNCLINCW0JjQktCa0J4KK9Ca0JXQodCY0Isg0ILQo9Cg0JAKK9Ca0JXQodCY0Isg0JHQntCo0JrQngor0JrQldCh0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCV0KHQmNCLINCT0J7QoNCQ0J0KK9Ca0JXQodCY0Isg0IjQntCS0JDQnQor0JrQldCh0JjQiyDQnNCQ0KDQmNCd0JrQngor0JrQldCh0JjQiyDQnNCY0JvQlQor0JrQldCh0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0JXQodCY0Isg0JzQmNCb0JrQkAor0JrQldCh0JjQiyDQndCV0JLQldCd0JrQkAor0JrQldCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCV0KHQmNCLINCh0KLQkNCd0J7QiNCVINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQmtCV0KHQm9CV0KAg0JDQndCU0KDQmNCI0JAg0JTQoCDQm9CV0JrQkNCgCivQmtCV0KHQm9CV0KAg0KDQntCR0JXQoNCiCivQmtCV0KLQldCb0JXQqCDQoNCe0JbQmNCa0JAKK9Ca0JXQotCY0JMg0KLQntCc0JjQodCb0JDQkgor0JrQldCi0JjQkyDQotCe0JzQmNCh0JvQkNCSCivQmtCV0JLQmNCLINCc0JjQm9CQCivQmtCV0JLQmNCLINCe0JvQk9CQCivQmtCV0JLQmNCLINCg0JDQlNCVCivQmtCV0JLQmNCJINCR0KDQkNCd0JrQngor0JrQldCS0KDQldCo0JDQnSDQldCc0JjQmwor0JrQldCX0JXQqNCYINCU0KPQqNCa0J4KK9Ca0JXQl9CY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0JXQl9CY0Isg0JzQmNCg0JrQngor0JrQldCX0JjQiNCQINCc0JjQm9Ce0KDQkNCUCivQmtCV0JfQnNCY0Isg0JHQmNCJ0JDQndCQCivQmtCV0JfQo9Cd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0JXQl9Cj0J3QntCS0JjQiyDQn9CV0KLQmtCeCivQmtCV0JfQo9Cd0J7QktCY0Isg0KDQkNCI0JrQngor0JrQmNCn0Jgg0JXQoNCd0JUKK9Ca0JjQp9CY0J0g0JXQktCQCivQmtCY0KfQmNCd0JAg0JvQkNCX0JDQoAor0JrQmNCn0JjQiiDQldCb0JjQl9CQ0JHQldCi0JAKK9Ca0JjQqC3Qp9CV0J/QldCT0Jgg0JPQkNCR0J7QoAor0JrQmNCoLdCn0JXQn9CV0JPQmCDQk9CQ0JHQntCgCivQmtCY0Kgt0KfQldCf0JXQk9CYINCg0KPQlNCe0JvQpAor0JrQmNCoLdCn0JXQn9CV0JPQmCDQotCV0KDQldCX0JAKK9Ca0JjQqCDQqNCQ0J3QlNCe0KAKK9Ca0JjQqCDQqNCQ0J3QlNCe0KAKK9Ca0JjQqCDQgtCV0KDQggor0JrQmNCoINCC0JXQoNCCCivQmtCY0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JjQqCDQkNCd0JAKK9Ca0JjQqCDQkNCd0JTQoNCY0IjQkAor0JrQmNCoINCR0JXQm9CQCivQmtCY0Kgg0JHQldCb0JAKK9Ca0JjQqCDQkdCe0JvQlNCY0JbQkNCgCivQmtCY0Kgg0JHQoNCQ0J3QmtCeCivQmtCY0Kgg0JTQo9Co0JDQndCa0JAKK9Ca0JjQqCDQlNCj0KjQmNCm0JAKK9Ca0JjQqCDQldCg0J3QldCh0KIKK9Ca0JjQqCDQldCg0J3QlQor0JrQmNCoINCV0KHQotCV0KAKK9Ca0JjQqCDQldCS0JAKK9Ca0JjQqCDQpNCV0KDQldCd0KYKK9Ca0JjQqCDQpNCV0KDQldCd0KYKK9Ca0JjQqCDQpNCV0KDQldCd0KYKK9Ca0JjQqCDQpNCg0JDQitCeCivQmtCY0Kgg0JPQldCX0JAKK9Ca0JjQqCDQk9CV0JfQkAor0JrQmNCoINCT0JjQl9CV0JvQkAor0JrQmNCoINCl0JXQm9CV0J3QkAor0JrQmNCoINCl0JXQndCg0JjQiNCV0KLQkAor0JrQmNCoINCY0KjQotCS0JDQnQor0JrQmNCoINCY0KjQotCS0JDQnQor0JrQmNCoINCY0KjQotCS0JDQnQor0JrQmNCoINCY0JvQntCd0JAKK9Ca0JjQqCDQmNCb0J7QndCa0JAKK9Ca0JjQqCDQmNCg0JXQndCQCivQmtCY0Kgg0JjQodCY0JTQntCgCivQmtCY0Kgg0JjQktCQ0J0KK9Ca0JjQqCDQmNCS0JDQnQor0JrQmNCoINCI0JDQndCa0J4KK9Ca0JjQqCDQiNCQ0J3QntCoCivQmtCY0Kgg0IjQntCW0JXQpAor0JrQmNCoINCI0J7QptCQCivQmtCY0Kgg0IjQntCh0JjQnwor0JrQmNCoINCI0J7QodCY0J8KK9Ca0JjQqC3QiNCe0JLQkNCaINCk0KDQkNCK0JAKK9Ca0JjQqCDQiNCe0JfQldCk0JjQndCQCivQmtCY0Kgg0IjQo9Cb0JjQiNCQ0J0KK9Ca0JjQqCDQmtCQ0JvQnNCQ0J0KK9Ca0JjQqCDQmtCQ0KLQkNCb0JjQnQor0JrQmNCoINCa0JDQotCY0KbQkAor0JrQmNCoINCa0JDQotCY0KbQkAor0JrQmNCoINCb0JDQptCY0JrQkAor0JrQmNCoINCb0JDQodCb0J4KK9Ca0JjQqCDQm9CQ0KHQm9CeCivQmtCY0Kgg0JzQkNCg0JPQmNCi0JAKK9Ca0JjQqCDQnNCQ0KDQmNCI0JAKK9Ca0JjQqCDQnNCQ0KDQmNCI0JAKK9Ca0JjQqCDQnNCY0KXQkNCJCivQmtCY0Kgg0JzQmNCI0JAKK9Ca0JjQqCDQnNCY0JvQkNCdCivQmtCY0Kgg0JzQmNCb0JjQptCQCivQmtCY0Kgg0JzQmNCg0JrQngor0JrQmNCoINCd0JDQndCU0J7QoAor0JrQmNCoINCd0JjQmtCe0JvQkAor0JrQmNCoINCd0JjQmtCe0JvQkAor0JrQmNCoINCe0KLQngor0JrQmNCoINCe0KLQngor0JrQmNCoINCf0JDQktCb0JUKK9Ca0JjQqCDQn9CV0KDQkAor0JrQmNCoINCf0JXQotCQ0KAKK9Ca0JjQqCDQn9CV0KLQkNCgCivQmtCY0Kgg0J/QldCi0JDQoAor0JrQmNCoINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0JjQqCDQodCb0JDQktCY0KbQkAor0JrQmNCoINCh0JvQkNCS0JjQptCQCivQmtCY0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCoINCh0KLQkNCd0JjQodCb0JDQkgor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQiNCV0J/QkNCdCivQmtCY0Kgg0KLQmNCR0J7QoCDQlNCgCivQmtCY0Kgg0KLQmNCR0J7QoAor0JrQmNCoINCi0JjQkdCe0KAKK9Ca0JjQqCDQotCe0JTQntCgCivQmtCY0Kgg0JLQldCh0J3QkAor0JrQmNCoINCS0JjQmtCi0J7QoNCY0IjQkAor0JrQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQqCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQqCDQktCj0JrQntCh0JDQktCQCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0KjQlNCe0JHQoNCQ0J3QodCa0Jgg0JzQmNCb0JjQktCe0IgKK9Ca0JjQqNCV0JPQldCm0Jgg0IjQkNCdINCU0KAKK9Ca0JjQqNCT0JXQptCYLdCU0KPQlNCQ0Kgg0JrQm9CQ0KDQkAor0JrQmNCo0JPQldCm0Jgg0JXQnNCY0JsKK9Ca0JjQqNCT0JXQptCYINCY0JLQkNCdCivQmtCY0KjQk9CV0KbQmCDQn9CQ0JLQm9CVCivQmtCY0KjQk9CV0KbQmCDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0JjQqNCT0JXQptCYINCh0KLQkNCd0JjQodCb0JDQkgor0JrQmNCo0JPQldCm0Jgg0KHQotCV0JLQkNCdCivQmtCY0KjQk9CV0KbQmCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0KjQiNCj0KXQkNChINCI0JDQmtCe0JIKK9Ca0JjQqNCc0JjQqNCa0JAg0J/QkNCbCivQmtCY0KjQn9Cg0JTQmNCb0J7QkiDQlNCV0IjQkNCdCivQmtCY0KjQn9Cg0JTQmNCb0J7QkiDQl9Ce0KDQkNCdCivQmtCY0IvQkNCd0J7QktCY0Isg0JHQntCg0J4KK9Ca0JjQi9CQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JrQmNCL0JDQndCe0JLQmNCLINCI0J7QmtCQCivQmtCY0IvQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQmNCL0JDQndCe0JLQmNCLINCc0JjQotCQ0KAKK9Ca0JjQi9CQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCY0IvQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0JjQi9CQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQmtCY0IvQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JrQmNCW0JTQntCR0KDQkNCd0KHQmtCYINCW0JDQoNCa0J4KK9Ca0JjQltCU0J7QkdCg0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9Ca0JjQltCU0J7QkdCg0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQmtCY0JbQlNCe0JHQoNCQ0J3QodCa0Jgg0JzQmNCb0JDQnQor0JrQmNCW0JTQntCR0KDQkNCd0KHQmtCYINCc0JjQm9CY0JLQntCICivQmtCY0JbQlNCe0JHQoNCQ0J3QodCa0Jgg0KHQkNCS0JAKK9Ca0JjQltCV0JLQodCa0Jgg0JTQmNCc0JrQngor0JrQmNCW0JXQktCh0JrQmCDQnNCY0KDQkAor0JrQmNCW0JXQktCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQmtCY0KbQntCo0JXQkiDQkdCg0JDQndCa0J4KK9Ca0JjQptCe0KjQldCSINCJ0JjQidCQ0J3QkAor0JrQmNCm0J7QqNCV0JIg0JzQmNCi0JAKK9Ca0JjQptCe0KjQldCSINCh0JDQqNCQCivQmtCY0KbQntCo0JXQkiDQodCi0J7QiNCQ0J0KK9Ca0JjQptCe0KjQldCS0JjQiyDQotCg0JjQktCQCivQmtCY0KbQntCo0JXQktCY0Isg0JLQm9CQ0IjQmtCeCivQmtCY0IjQkNCn0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JjQiNCQ0J3QntCS0JjQiyDQnNCQ0J3QntCI0JvQlQor0JrQmNCI0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0JrQmNCa0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQmNCa0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQmtCY0JrQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCY0IjQkAor0JrQmNCa0JjQiy3QqNCe0JLQidCQ0J3QodCa0Jgg0InQmNCJ0JDQndCQCivQmtCY0JrQmNCLINCc0JjQoNCa0J4KK9Ca0JjQmtCY0Isg0KHQnNCY0InQkCDQlNCgCivQmtCY0JrQmNCd0ILQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Ca0JjQmtCY0J3QlNCQ0Jgg0JLQldCg0JAKK9Ca0JjQmtCe0Kgg0JPQntCg0JTQkNCdCivQmtCY0JrQntCoINCI0J7QktCQ0J0KK9Ca0JjQmtCe0Kgg0JvQkNCX0JDQoAor0JrQmNCa0J7QqCDQodCg0JHQmNCh0JvQkNCSCivQmtCY0JrQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JrQmNCb0JjQiyDQndCY0JrQntCb0JAKK9Ca0JjQm9CY0JHQkNCg0JTQkCDQnNCY0JvQntCg0JDQlAor0JrQmNCb0JjQkdCQ0KDQlNCQINCc0JjQotCQ0KAKK9Ca0JjQm9CY0JHQkNCg0JTQkCDQn9CQ0JLQm9CVCivQmtCY0JvQmNCR0JDQoNCU0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCb0JjQkdCQ0KDQlNCQINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JjQnNCf0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCY0JzQn9CQ0J3QntCSINCd0JDQotCQ0JvQmNCI0JAKK9Ca0JjQnNCf0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCc0J/QkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQmtCY0JzQn9CQ0J3QntCSINCh0J7QpNCY0IjQkAor0JrQmNCd0KfQldCoINCc0JjQpdCQ0IkKK9Ca0JjQndCC0JjQnSDQodCS0JXQotCe0JfQkNCgCivQmtCY0J3QgtCY0J0g0JLQkNCh0JAKK9Ca0JjQndCU0JXQoNCd0JDQiCDQmNCb0JjQiNCQCivQmtCY0J3QlNCV0KDQndCQ0Igg0JzQmNCb0JDQnQor0JrQmNCd0JTQldCg0J3QkNCIINCe0KLQngor0JrQmNCd0JTQldCg0J3QntCIINCf0JDQktCb0JUKK9Ca0JjQndCY0Jog0IjQkNCdCivQmtCY0J3QmNCaINCf0JDQktCb0JUKK9Ca0JjQitCV0KDQkNCdINCh0JLQldCi0JjQodCb0JDQkgor0JrQmNCd0JrQkCDQoNCY0KLQkAor0JrQmNCf0JXQoNCe0JLQmNCLINCI0J7QktCeCivQmtCY0J/QmNCLINCC0KPQm9CQCivQmtCY0J/QmNCLINCQ0J3QlNCg0JjQiNCQCivQmtCY0J/QmNCLINCQ0J3QmtCQCivQmtCY0J/QmNCLINCV0JTQmNCi0JAKK9Ca0JjQn9CY0Isg0JXQoNCW0JXQkdCV0KIKK9Ca0JjQn9CY0Isg0JXQoNCd0JUKK9Ca0JjQn9CY0Isg0KTQldCg0JXQndCmCivQmtCY0J/QmNCLINCk0KDQkNCK0JAKK9Ca0JjQn9CY0Isg0JjQqNCi0JLQkNCdCivQmtCY0J/QmNCLINCI0J7QodCY0J8KK9Ca0JjQn9CY0Isg0JvQkNCh0JvQngor0JrQmNCf0JjQiyDQndCQ0J3QlNCe0KAKK9Ca0JjQoNCn0JDQnSDQldCc0JjQmwor0JrQmNCg0Kgg0IjQntCW0JXQpAor0JrQmNCg0Kgg0JzQmNCb0J7QoNCQ0JQKK9Ca0JjQoNCo0JXQmiDQiNCj0KDQkNCICivQmtCY0KDQi9CQ0J0g0KHQkNCS0JAKK9Ca0JjQoNCL0JDQndCh0JrQmCDQkdCg0JDQndCa0J4KK9Ca0JjQoNCL0JDQndCh0JrQmCDQlNCj0KjQmtCeCivQmtCY0KDQi9CQ0J3QodCa0Jgg0JjQktCQ0J0KK9Ca0JjQoNCL0JDQndCh0JrQmCDQnNCY0JvQmNCm0JAKK9Ca0JjQoNCL0JDQndCh0JrQmCDQntCR0KDQkNCUCivQmtCY0KDQi9CQ0J3QodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Ca0JjQoNCL0JDQndCh0JrQmCDQoNCQ0JTQntCh0JvQkNCS0JAKK9Ca0JjQoNCU0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCg0JjQiyDQpNCg0JDQitCeCivQmtCY0KDQmNCLINCc0JXQndCa0JAKK9Ca0JjQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0JjQoNCY0I/QmNCLINCU0KDQkNCT0JjQqNCQCivQmtCY0KDQmNCP0JjQiyDQnNCY0JvQntCoCivQmtCY0KDQmNCP0JjQiyDQntCR0KDQkNCUCivQmtCY0KDQmNCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQmNCg0JjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCY0KDQmNCb0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JrQmNCg0JjQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQmNCg0JjQm9Ce0JLQmNCLINCa0KDQmNCh0KLQkAor0JrQmNCg0JjQm9Ce0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Ca0JjQoNCY0JvQntCS0JjQiyDQntCb0JPQkAor0JrQmNCg0JjQnSDQltCV0InQmtCeCivQmtCY0KDQmNCdINCY0JLQmNCm0JAKK9Ca0JjQoNCY0J0g0KHQndCV0JbQkNCd0JAKK9Ca0JjQoNCI0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0JjQoNCI0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQmNCg0JrQntCSINCU0JjQnNCY0KLQkNCgCivQmtCY0KDQmtCe0JIg0JLQldCg0JjQptCQCivQmtCY0KDQnSDQktCb0JDQlNCY0JzQmNCgCivQmtCY0KDQntCS0JDQmtCe0JIg0JLQkNCb0JXQoNCY0IjQkAor0JrQmNCg0KLQmNCLINCU0KPQqNCQ0J0KK9Ca0JjQodCQ0KfQkNCd0JjQnSDQlNCV0KHQkNCd0JrQkAor0JrQmNCh0JDQp9CQ0J3QmNCdINCU0KPQqNCQ0J0KK9Ca0JjQodCQ0KfQkNCd0JjQnSDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Ca0JjQodCQ0KfQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQmtCY0KHQkNCn0JDQndCY0J0g0J/QkNCS0JvQlQor0JrQmNCh0JDQp9CQ0J3QmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0JjQodCV0JvQmNCn0JrQmCDQltCY0JLQmtCeINCh0KPQlNCY0IjQkAor0JrQmNCh0JXQm9CY0KfQmtCYINCU0JDQndCY0KbQkAor0JrQmNCh0JXQm9CY0KfQmtCYINCk0JXQlNCe0KAg0JTQoAor0JrQmNCh0JXQm9CY0KfQmtCYINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCY0KHQldCb0JjQptCQINCW0JDQoNCa0J4KK9Ca0JjQodCV0JvQmNCm0JAg0J3QkNCU0JAKK9Ca0JjQodCV0JvQmNCm0JAg0J/QldCi0JDQoAor0JrQmNCh0JXQm9CY0KbQkCDQn9CV0KLQkNCgCivQmtCY0KHQmNCLINCU0KPQqNCQ0J0KK9Ca0JjQodCY0Isg0IjQntCS0JDQnQor0JrQmNCh0JjQiyDQnNCY0KDQmtCeCivQmtCY0KHQmNCLINCh0KDQgtCQ0J0KK9Ca0JjQodCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQmNCh0JjQnSDQkNCd0ILQkAor0JrQmNCh0JjQnSDQnNCY0JvQmNCm0JAKK9Ca0JjQodCY0J0g0JzQmNCb0JrQkAor0JrQmNCh0JjQnSDQotCe0JzQngor0JrQmNCh0JvQmNCmINCY0KDQldCd0JAKK9Ca0JjQodCb0J7QktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0KHQniDQnNCY0JvQntCg0JDQlAor0JrQmNCh0KLQldCgINCS0JjQndCa0J4KK9Ca0JjQoiDQktCQ0KHQmNCJCivQmtCY0KLQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0JrQmNCi0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCY0KLQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCY0KLQkNCd0J7QktCY0Isg0JvQldCd0JrQkAor0JrQmNCi0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCY0KLQkNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0JjQotCQ0J3QntCS0JjQiyDQotCe0JzQkAor0JrQmNCi0JDQndCe0JLQodCa0Jgg0JTQmNCc0KfQlQor0JrQmNCi0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQmNCi0JjQiyDQodCQ0JLQngor0JrQmNCi0JjQiyDQodCi0J7QiNCa0J4KK9Ca0JjQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0JjQo9Cg0KHQmtCYINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQntCV0KYKK9Ca0JjQktCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9Ca0JjQl9CQINCR0KDQkNCd0JrQmNCm0JAKK9Ca0JjQl9CY0Isg0JTQo9Co0JDQnQor0JrQmNCX0JjQiyDQm9CY0JTQmNCI0JAKK9Ca0JjQl9CY0Isg0JzQkNCg0JrQngor0JrQmNCX0JjQiyDQnNCY0KXQkNCY0JvQngor0JrQmNCX0JjQiyDQodCQ0JLQmtCQCivQmtCY0JfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JjQl9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCX0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQmNCX0JjQiyDQotCY0KXQntCh0JvQkNCSCivQmtCY0JfQo9CgINCQ0J3QlNCg0JDQqAor0JrQmNCX0KPQoCDQmNCo0KLQktCQ0J0KK9Ca0JjQl9Cj0KAg0IjQkNCd0J7QqAor0JrQmNCX0KPQoCDQm9CQ0KHQm9CeCivQmtCY0JfQo9CgINCf0JDQktCV0JsKK9Ca0JjQl9Cj0KAg0JLQldCg0JAKK9Ca0JvQkNCn0JDQoCDQnNCY0JvQmtCeCivQmtCb0JDQp9CQ0KAg0JzQmNCb0J7QqAor0JrQm9CQ0KjQitCQINCW0JDQoNCa0J4KK9Ca0JvQkNCo0IrQkCDQkdCg0JDQndCa0J4KK9Ca0JvQkNCo0IrQkCDQiNCe0JLQkNCdCivQmtCb0JDQqNCK0JAg0JzQkNCg0JjQiNCQCivQmtCb0JDQqNCK0JAg0JzQmNCa0JAKK9Ca0JvQkNCo0IrQkCDQnNCY0JvQldCd0JAKK9Ca0JvQkNCo0IrQkCDQnNCY0JvQlQor0JrQm9CQ0KjQitCQINCc0JjQm9CY0KbQkAor0JrQm9CQ0KjQitCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JvQkNCo0IrQkCDQktCb0JDQlNCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQmtCb0JDQiyDQlNCg0JDQk9CQ0J0KK9Ca0JvQkNCL0JjQmiDQiNCe0JbQldCkCivQmtCb0JDQi9CY0Jog0JzQkNCg0JjQiNCQCivQmtCb0JDQlNCj0KjQmNCLINCc0JXQndCh0KPQoNCQCivQmtCb0JDQmNCLINCQ0J3QotCeCivQmtCb0JDQmNCLINCf0JDQktCeCivQmtCb0JDQiCDQn9CV0KLQkNCgCivQmtCb0JDQiNCY0Isg0ILQo9Cg0JAKK9Ca0JvQkNCI0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0JvQkNCI0JjQiyDQidCj0JHQmNCm0JAKK9Ca0JvQkNCI0JjQiyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ca0JvQkNCI0JjQiyDQntCb0JPQkAor0JrQm9CQ0IjQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0JvQkNCI0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQmtCb0JDQiNCY0Isg0JLQmNCU0JAKK9Ca0JvQkNCI0J0g0JDQm9CR0JXQoNCiCivQmtCb0JDQiNCdINCQ0J3QkAor0JrQm9CQ0IjQnSDQlNCg0JDQk9Cj0KLQmNCdCivQmtCb0JDQiNCdINCY0JLQkNCd0JrQkAor0JrQm9CQ0IjQnSDQmNCS0JDQnQor0JrQm9CQ0IjQnSDQm9CQ0IjQp9CeINCU0KAKK9Ca0JvQkNCI0J0g0JzQmNCg0J7QodCb0JDQkgor0JrQm9CQ0IjQnSDQktCV0KDQkAor0JrQm9CQ0IjQndCV0KAg0JXQodCi0JXQoAor0JrQm9CQ0IjQndCV0KAg0JjQqNCi0JLQkNCdCivQmtCb0JDQnNCQ0KAg0JrQkNCg0JvQngor0JrQm9CQ0JzQmNCaINCY0JzQoNCVCivQmtCb0JDQn9CQ0KDQldCS0JjQiyDQk9Ce0KDQkNCdCivQmtCb0JDQn9CQ0KDQldCS0JjQiyDQodCQ0JLQkAor0JrQm9CQ0J/QkNCg0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JrQm9CQ0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCb0JDQoNCY0Isg0JPQntCg0JDQnQor0JrQm9CQ0KDQmNCLINCJ0KPQkdCY0KbQkAor0JrQm9CQ0KDQmNCLINCc0JjQm9CY0IsKK9Ca0JvQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQm9CQ0KDQmNCLINCe0JvQk9CQCivQmtCb0JDQoNCY0Isg0KHQldCa0JAKK9Ca0JvQkNCh0JDQnSDQkNCd0JAKK9Ca0JvQkNCh0JXQoCDQkNCb0JHQldCg0KIKK9Ca0JvQkNCh0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQmtCb0JDQodCY0Isg0KHQkNCo0JAKK9Ca0JvQkNCj0KEg0JXQoNCW0JXQkdCV0KIKK9Ca0JvQkNCj0KEg0JXQoNCW0JXQkdCV0KIKK9Ca0JvQkNCj0KEg0JvQkNCh0JvQngor0JrQm9CV0JHQldCn0JrQniDQqNCQ0J3QlNCe0KAKK9Ca0JvQldCR0JXQp9Ca0J4g0KjQkNCd0JTQntCgCivQmtCb0JXQnCDQkNCU0JDQnCDQlNCgCivQmtCb0JXQnCDQiNCe0JbQldCkCivQmtCb0JXQnCDQotCV0KDQldCX0JAKK9Ca0JvQldCc0JXQndCe0JLQmNCLINCj0KDQntCoCivQmtCb0JXQndCe0KbQmtCYINCc0JDQoNCY0IjQkAor0JrQm9CV0J3QntCS0KjQldCaINCk0KDQkNCK0JAKK9Ca0JvQldCd0J7QktCo0JXQmiDQotCV0KDQldCX0JjQiNCQCivQmtCb0JXQndCe0JLQqNCV0Jog0JfQktCe0J3QmNCc0JjQoAor0JrQm9CV0J/QmNCLINCC0KPQoNCQ0IIKK9Ca0JvQldCf0JjQiyDQndCY0JrQntCb0JAKK9Ca0JvQldCiINCT0JXQl9CQCivQmtCb0JXQo9CiINCc0JjQm9CQ0J0KK9Ca0JvQldCj0KIg0KDQo9CW0JAg0JTQoCDQm9CV0JrQkNCgCivQmtCb0JXQktCV0KDQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQm9CY0KfQldCaINCY0KDQldCd0JAKK9Ca0JvQmNCn0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0JvQmNCn0JrQntCS0JjQiyDQmtCe0KHQotCQCivQmtCb0JjQp9Ca0J7QktCY0Isg0JLQldCg0JAKK9Ca0JvQmNCo0JDQndCY0Isg0IjQntCh0JjQnwor0JrQm9CY0KjQkNCd0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0JvQmNCm0J7QkiDQmNCb0JjQiNCQCivQmtCb0JjQmtCe0JLQkNCmINCc0JjQpdCQ0IjQm9CeCivQmtCb0JjQmtCe0JLQkNCmINCS0JXQm9CY0JzQmNCgCivQmtCb0JjQnNCV0Kgg0JTQoNCQ0JPQkNCd0JAKK9Ca0JvQmNCc0JXQqCDQl9Ce0KDQkAor0JrQm9CY0J3QkNCmINCj0KDQntCoCivQmtCb0JjQndCQ0KAg0JjQktCQ0J0KK9Ca0JvQmNCd0KbQntCSINCd0JDQlNCQCivQmtCb0JjQndCP0JjQiyDQodCi0IjQldCf0JDQnQor0JrQm9CY0J3Qk9CV0KAg0JrQkNCi0JjQptCQCivQmtCb0JjQndCa0J4g0IjQkNCdCivQmtCb0JjQndCe0KbQmtCYINCC0JXQoNCCCivQmtCb0JjQndCe0JLQodCa0Jgg0JHQoNCQ0J3QmtCeCivQmtCb0JjQndCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQmtCb0JjQndCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQmtCb0JjQndCe0JLQodCa0Jgg0JTQo9Co0JDQnQor0JrQm9CY0J/QkCDQltCY0JLQkNCdCivQmtCb0JjQn9CQINCC0J7QoNCC0JUKK9Ca0JvQmNCf0JAg0IjQldCb0JjQptCQCivQmtCb0JjQn9CQLdCa0KDQkNCR0JXQoSDQk9Cg0JXQotCQCivQmtCb0JjQn9CQINCb0JDQl9CQ0KAKK9Ca0JvQmNCf0JAg0JzQmNCa0JAKK9Ca0JvQmNCgINCY0JvQntCd0JAKK9Ca0JvQmNCgINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0JvQmNCh0JDQoNCQINCW0JjQktCa0J4KK9Ca0JvQmNCh0JDQoNCQINCC0J7QoNCC0JUKK9Ca0JvQmNCh0JDQoNCY0Isg0JzQmNCg0JrQngor0JrQm9CY0KHQmNCLINCd0JDQlNCQCivQmtCb0JjQodCa0JAg0JDQndCC0JXQm9CY0IjQkAor0JrQm9CY0KHQmtCQINCS0J7QiNCeCivQmtCb0JjQodCj0KDQkCDQnNCY0JvQntCoCivQmtCb0JjQodCj0KDQkCDQnNCe0JzQmNCgCivQmtCb0JjQodCj0KDQkCDQodCi0JDQmtCQCivQmtCb0JjQodCj0KDQmNCLINCC0KPQoNCeCivQmtCb0JjQktCY0IrQmCDQiNCe0JbQldCkCivQmtCJ0JDQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ca0InQkNCY0Isg0JzQkNCm0JAKK9Ca0InQkNCY0Isg0KHQmNCc0J4KK9Ca0InQkNCY0J0g0JTQoNCQ0JPQmNCK0JAKK9Ca0InQkNCY0J0g0JvQkNCX0JDQoAor0JrQidCQ0IjQmNCLINCC0J7QoNCC0JUg0J/QoNCe0KTQldCh0J7QoAor0JrQidCQ0IjQmNCLINCC0J7QoNCC0JUKK9Ca0InQkNCI0JjQiyDQgtCe0KDQgtCVCivQmtCJ0JDQiNCY0Isg0JHQntCg0JjQktCe0IjQlQor0JrQidCQ0IjQmNCLINCR0J7QoNCa0JAKK9Ca0InQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9Ca0InQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9Ca0InQkNCI0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0InQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0InQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0InQkNCI0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQidCQ0IjQmNCLINCY0JvQmNCI0JAKK9Ca0InQkNCI0JjQiyDQmNCb0JjQiNCQCivQmtCJ0JDQiNCY0Isg0JjQktCQ0J0KK9Ca0InQkNCI0JjQiyDQiNCV0JvQldCd0JAKK9Ca0InQkNCI0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JrQidCQ0IjQmNCLINCb0KPQmtCQCivQmtCJ0JDQiNCY0Isg0JzQkNCg0JAKK9Ca0InQkNCI0JjQiyDQnNCY0JvQkNCdCivQmtCJ0JDQiNCY0Isg0JzQmNCb0JXQktCQCivQmtCJ0JDQiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0InQkNCI0JjQiyDQndCQ0JTQkAor0JrQidCQ0IjQmNCLINCe0JvQmNCS0JXQoNCQCivQmtCJ0JDQiNCY0Isg0J/QldCi0JDQoAor0JrQidCQ0IjQmNCLLdCg0JDQlNCQ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0InQkNCI0JjQiyDQodCV0J3QmtCQCivQmtCJ0JDQiNCY0Isg0JLQkNCi0JAKK9Ca0InQkNCI0JjQiyDQktCb0JDQlNCeCivQmtCJ0JDQiNCY0Isg0JLQo9Ca0JjQptCQCivQmtCJ0JDQiNCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0InQkNCa0JjQiyDQktCj0JrQkNCo0JjQnQor0JrQidCV0KfQkNCd0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQidCj0KfQntCS0KHQmtCYINCc0JDQpdCQ0InQmNCd0JAKK9Ca0InQo9Cn0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Ca0InQo9Ci0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JrQidCj0KLQmNCLINCe0KHQotCe0IjQkAor0JrQm9Ce0JHQo9Co0JjQptCa0Jgg0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCb0J7Qn9Ck0JXQoCDQgtCe0KDQgtCVCivQmtCb0J7Qn9Ca0JAg0JrQm9CQ0KDQkCDQlNCgCivQmtCb0J7Qn9Ca0JAg0J/QmNCg0J7QqNCa0JAKK9Ca0JzQldCnINCc0JDQoNCi0JjQnQor0JrQnNCV0KfQmtCeINCh0KLQldCS0JDQnQor0JrQnNCV0Isg0IjQkNCdINCU0KAKK9Ca0JzQldCX0JjQiyDQmNCS0JDQndCa0JAKK9Ca0JzQldCX0JjQiyDQnNCY0JvQlQor0JrQnNCV0JfQmNCLINCS0JvQkNCU0JAKK9Ca0JzQmNCm0JjQmtCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0JzQmNCm0JjQmtCe0JLQmNCLINCc0JjQm9Ce0IjQmtCQCivQmtCd0JXQqNCQ0KPQoNCV0Jog0JzQkNCg0JjQiNCQCivQmtCd0JXQltCV0JIg0JbQkNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ca0J3QldCW0JXQkiDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JIg0ILQntCg0ILQlQor0JrQndCV0JbQldCSINCC0KPQoNCQCivQmtCd0JXQltCV0JIg0IjQldCb0JjQptCQCivQmtCd0JXQltCV0JIg0InQmNCJ0JDQndCQCivQmtCd0JXQltCV0JLQmNCLINCW0JDQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JbQldCJ0JrQngor0JrQndCV0JbQldCS0JjQiyDQltCV0InQmtCeCivQmtCd0JXQltCV0JLQmNCLINCW0JXQidCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JbQmNCS0JrQkAor0JrQndCV0JbQldCS0JjQiyDQltCY0JLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQmtCd0JXQltCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQmtCd0JXQltCV0JLQmNCLINCC0JjQndCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQntCg0ILQlQor0JrQndCV0JbQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQntCg0ILQlQor0JrQndCV0JbQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQo9Cg0JAKK9Ca0J3QldCW0JXQktCY0Isg0ILQo9Cg0JAKK9Ca0J3QldCW0JXQktCY0Isg0ILQo9Cg0J4KK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQCivQmtCd0JXQltCV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQmtCd0JXQltCV0JLQmNCLINCQ0J3QmNCm0JAKK9Ca0J3QldCW0JXQktCY0Isg0JDQndCY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQkNCg0JrQkNCU0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JHQntCW0J4KK9Ca0J3QldCW0JXQktCY0Isg0JHQntCT0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQndCV0JbQldCS0JjQiyDQkdCe0KDQmNChCivQmtCd0JXQltCV0JLQmNCLINCR0J7QoNCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCd0JXQltCV0JLQmNCLINCm0JLQmNCI0J4KK9Ca0J3QldCW0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J3QldCW0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCd0JXQltCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQndCV0JbQldCS0JjQiyDQk9Cb0JjQqNCQCivQmtCd0JXQltCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQmtCd0JXQltCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCY0JLQkNCd0JrQkAor0JrQndCV0JbQldCS0JjQiyDQmNCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQmNCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCV0JvQkAor0JrQndCV0JbQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0IjQldCb0JXQndCQCivQmtCd0JXQltCV0JLQmNCLINCI0JXQm9CY0KHQkNCS0JrQkAor0JrQndCV0JbQldCS0JjQiyDQiNCe0KHQmNCfCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCe0JLQngor0JrQndCV0JbQldCS0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCa0KDQodCi0JDQnQor0JrQndCV0JbQldCS0JjQiyDQm9CQ0KLQmNCd0JrQkAor0JrQndCV0JbQldCS0JjQiyDQm9CQ0JfQkNCgCivQmtCd0JXQltCV0JLQmNCLINCb0JDQl9CQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0InQmNCJ0JDQndCQCivQmtCd0JXQltCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCc0JDQndCVCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCL0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JrQkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQntCoCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9Ce0IrQkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQntCK0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J3QldCW0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQmtCd0JXQltCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCd0JXQltCV0JLQmNCLINCc0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0JzQntCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQnNCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCd0JDQlNCQCivQmtCd0JXQltCV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQmtCd0JXQltCV0JLQmNCLINCd0JXQndCQ0JQKK9Ca0J3QldCW0JXQktCY0Isg0J3QldCS0JXQndCQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J/QkNCd0KLQkAor0JrQndCV0JbQldCS0JjQiyDQn9CQ0JLQm9CVCivQmtCd0JXQltCV0JLQmNCLINCf0JXQoNCQCivQmtCd0JXQltCV0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0J/QldCi0JDQoAor0JrQndCV0JbQldCS0JjQiyDQn9CV0KLQkNCgCivQmtCd0JXQltCV0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0J/QldCi0JrQngor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQkAor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQlQor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQmtCd0JXQltCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQndCV0JbQldCS0JjQiyDQoNCQ0IjQmtCeCivQmtCd0JXQltCV0JLQmNCLINCg0JDQndCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0KDQmNCh0KLQngor0JrQndCV0JbQldCS0JjQiyDQoNCe0JfQkAor0JrQndCV0JbQldCS0JjQiyDQodCQ0JLQngor0JrQndCV0JbQldCS0JjQiyDQodCY0J3QmNCo0JAKK9Ca0J3QldCW0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCh0JvQkNCS0JrQngor0JrQndCV0JbQldCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0J/QkNCh0JXQndCY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQodCg0JHQmNCh0JvQkNCS0JAKK9Ca0J3QldCW0JXQktCY0Isg0KHQotCQ0J3QkAor0JrQndCV0JbQldCS0JjQiyDQodCi0JDQndCY0KjQkAor0JrQndCV0JbQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCh0KLQkNCd0JrQngor0JrQndCV0JbQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQotCV0JLQngor0JrQndCV0JbQldCS0JjQiyDQodCi0JXQktCeCivQmtCd0JXQltCV0JLQmNCLINCh0KLQmNCf0JUKK9Ca0J3QldCW0JXQktCY0Isg0KHQotCe0IjQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JLQldCi0JrQngor0JrQndCV0JbQldCS0JjQiyDQodCS0JXQotCeCivQmtCd0JXQltCV0JLQmNCLINCi0JXQntCU0J7QoAor0JrQndCV0JbQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCj0KDQntCoCivQmtCd0JXQltCV0JLQmNCLINCS0JDQodCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JLQldCg0JAKK9Ca0J3QldCW0JXQktCY0Isg0JLQldCg0JAKK9Ca0J3QldCW0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0JLQntCI0JjQnQor0JrQndCV0JbQldCS0JjQiyDQktCj0JrQntCh0JDQkgor0JrQndCV0JbQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQndCV0JbQldCS0JjQiyDQl9Cb0JDQotCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JfQntCg0JDQnQor0JrQndCV0JbQldCS0JjQiyDQl9Ce0KDQkNCdCivQmtCd0JXQltCV0JLQmNCLINCX0J7QoNCQCivQmtCd0JXQltCY0Isg0J7Qm9CT0JAKK9Ca0J3QldCW0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQndCV0JHQmyDQpNCg0JDQitCQCivQmtCd0JXQkdCbINCd0JjQmtCe0JvQkAor0JrQndCV0JPQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J3QldCgINCU0JXQl9CY0JTQldCgCivQmtCd0JXQodCV0JvQkNCmINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCd0JXQlyDQl9Cb0JDQotCa0J4KK9Ca0J3QldCX0Jgg0JjQktCQ0J0KK9Ca0J3QldCX0Jgg0IjQntCW0JXQpAor0JrQndCV0JfQmCDQodCb0J7QkdCe0JTQkNCdCivQmtCK0JXQqNCa0J4g0JbQo9CW0JDQndCQCivQmtCK0JXQqNCa0J4g0JDQm9CR0JXQoNCiCivQmtCe0KfQkNCgINCb0JDQodCb0J4KK9Ca0J7Qp9CQ0KAg0KHQotCV0KTQkNCd0JjQiNCQCivQmtCe0KfQkNCgINCi0JjQpdCe0JzQmNCgCivQmtCe0KfQldCi0J7QkiDQotCQ0KLQiNCQ0J3QkAor0JrQntCn0Jgg0JXQotCV0JvQmtCQCivQmtCe0KfQmCDQmNCo0KLQktCQ0J0KK9Ca0J7Qp9CYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qp9CY0Kgg0ILQo9Cg0JAKK9Ca0J7Qp9CY0Kgg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qp9CY0Kgg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qp9CY0Kgg0JXQoNCd0JXQodCiCivQmtCe0KfQmNCoINCT0JXQoNCT0JXQiSDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7Qp9CY0Kgg0KXQldCb0JXQndCQCivQmtCe0KfQmNCoINCY0KjQotCS0JDQnQor0JrQntCn0JjQqCDQiNCQ0JrQntCSCivQmtCe0KfQmNCoINCI0JDQndCa0J4KK9Ca0J7Qp9CY0Kgg0IjQkNCd0J7QqAor0JrQntCn0JjQqCDQmtCQ0KDQm9CeCivQmtCe0KfQmNCoINCc0JDQoNCY0IjQkAor0JrQntCn0JjQqCDQnNCY0KXQkNCI0JvQngor0JrQntCn0JjQqCDQndCY0JrQntCb0JAg0J/QoNCe0KTQldCh0J7QoAor0JrQntCn0JjQqCDQoNCQ0JTQlQor0JrQntCn0JjQqCDQktCb0JDQlNCY0JzQmNCgCivQmtCe0KfQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qp9CY0Isg0JTQoNCQ0JPQngor0JrQntCn0JjQiyDQnNCQ0J3QlQor0JrQntCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQntCn0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0J7Qp9Ce0JHQkCDQoNCQ0JTQmNCh0JvQkNCSCivQmtCe0KfQntCh0JrQmCDQn9CV0KLQkNCgCivQmtCe0KfQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCn0J7QktCY0Isg0JzQmNCb0JXQotCQCivQmtCe0KjQi9CQ0Jog0KHQkNCS0JrQkAor0JrQntCo0JAg0KLQmNCR0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QqNCQ0J3QmNCdINCc0JjQm9Ce0JzQmNCgCivQmtCe0KjQkNCK0Jgg0KTQldCg0JXQndCmCivQmtCe0KjQkNCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QqNCY0Isg0InQo9CR0JjQptCQCivQmtCe0KjQmNCLINCc0JjQotCQCivQmtCe0KjQmNCLINCh0KLQldCS0JDQnQor0JrQntCo0JjQiyDQodCi0JXQktCeCivQmtCe0KjQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0J7QqNCY0KbQmtCYINCb0JXQkAor0JrQntCo0JjQptCa0Jgg0JzQkNCg0JjQiNCQCivQmtCe0KjQndCY0KfQkNCgINCc0JjQm9CQ0J0KK9Ca0J7QqNCd0JjQp9CQ0KAg0KHQntCk0JjQiNCQCivQmtCe0KjQntCm0JrQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QqNCj0KLQmNCLINCC0KPQoNCeCivQmtCe0KjQo9Ci0JjQiyDQgtCj0KDQngor0JrQntCo0KPQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0J7QqNCj0KLQmNCLINCR0KDQkNCd0JrQngor0JrQntCo0KPQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0KjQo9Ci0JjQiyDQlNCj0KjQkNCdCivQmtCe0KjQo9Ci0JjQiyDQiNCe0JLQkNCdCivQmtCe0KjQo9Ci0JjQiyDQmtCe0KHQotCQCivQmtCe0KjQo9Ci0JjQiyDQnNCQ0J3QlQor0JrQntCo0KPQotCY0Isg0JzQmNCb0J7QqAor0JrQntCo0KPQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0IvQkNCb0J4g0KDQkNCU0J7QiNCY0KbQkAor0JrQntCW0KPQmyDQk9Ce0IjQmtCeCivQmtCe0JbQo9CbINCT0J7QiNCa0J4KK9Ca0J7QltCj0Jsg0KDQkNCI0JrQngor0JrQntCW0KPQktCQ0KDQkCDQk9CQ0JLQoNCQCivQmtCe0JHQkNCoINCI0J7QodCY0J8KK9Ca0J7QkdCQ0Kgg0JrQkNCi0JjQptCQCivQmtCe0JHQkNCoINCS0KPQmtCQ0KjQmNCdCivQmtCe0JHQkNCbINCC0KPQoNCQCivQmtCe0JHQkNCbINCR0J7QltCY0JTQkNCgCivQmtCe0JHQkNCbINCY0KDQmNChCivQmtCe0JHQkNCbINCY0JLQkNCdCivQmtCe0JHQmNCb0JDQoNCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQkNCd0JPQldCb0JjQndCQCivQmtCe0JHQmNCb0JDQoNCe0JIg0InQo9CR0J7QnNCY0KAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQnNCY0JvQkNCd0JrQkAor0JrQntCR0JjQm9CQ0KDQntCSINCc0JjQm9Ce0KgKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JHQmNCb0JDQoNCe0JIg0J3QldCT0J7QktCQ0J0KK9Ca0J7QkdCY0JvQkNCg0J7QkiDQndCV0KHQotCe0KAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQodCY0JzQkAor0JrQntCR0JjQm9CQ0KDQntCSINCi0J7QqNCQCivQmtCe0JHQmNCb0JDQoNCe0JIg0JLQkNCh0JAKK9Ca0J7QkdCY0InQodCa0Jgg0ILQntCg0ILQlQor0JrQntCR0JjQidCh0JrQmCDQlNCe0JHQoNCY0JvQkAor0JrQntCR0JjQidCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCe0JHQmNCJ0KHQmtCYINCU0KPQqNCQ0J0KK9Ca0J7QkdCY0InQodCa0Jgg0JvQkNCX0JDQoAor0JrQntCR0JjQidCh0JrQmCDQnNCY0JvQntCoCivQmtCe0JHQmNCJ0KHQmtCYINCc0JjQoNCI0JDQndCQCivQmtCe0JHQmNCJ0KHQmtCYINCc0JvQkNCU0JXQnQor0JrQntCR0JjQidCh0JrQmCDQndCY0JrQntCb0JAKK9Ca0J7QkdCY0InQodCa0Jgg0KHQotCV0JLQkNCdCivQmtCe0JHQmNCJ0KHQmtCYINCS0JjQlNCQCivQmtCe0JHQmNCb0KHQmtCYINCc0JDQoNCY0IjQkAor0JrQntCR0KDQldCl0JXQmyDQm9CQ0IjQntCoCivQmtCe0KbQkNCfINCc0JDQoNCY0IjQkAor0JrQntCm0JDQnyDQnNCY0KDQkAor0JrQntCm0JDQnyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0KbQmCDQpNCV0KDQldCd0KYKK9Ca0J7QptCYINCg0JXQltCVCivQmtCe0KbQmNCLINCW0JjQmtCY0KbQkAor0JrQntCm0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCm0JjQiyDQkNCd0JjQptCQCivQmtCe0KbQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCe0KbQmNCLINCI0JDQodCd0JAKK9Ca0J7QptCY0Isg0InQmNCJ0JDQndCQCivQmtCe0KbQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Ca0J7QptCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0J7QptCY0Isg0KHQmNCd0JjQqNCQCivQmtCe0KbQmNCLINCh0JvQkNCC0JDQndCQCivQmtCe0KbQmNCLINCh0JvQkNCS0JrQngor0JrQntCm0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0KbQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0J7QptCY0Isg0JLQldCb0JjQndCa0JAKK9Ca0J7QptCY0Isg0JfQktCV0JfQlNCQ0J0KK9Ca0J7QptCY0IjQkNCd0KfQmNCLINCc0JjQoNCQCivQmtCe0KbQmtCQ0KAg0JHQntCg0JjQodCb0JDQkgor0JrQntCm0JrQkNCgINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7QptCa0JDQoCDQidCj0JHQntCc0JjQoAor0JrQntCm0JrQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QptCa0JDQoNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCm0JrQkNCg0JXQktCY0Isg0IjQntCS0JDQnQor0JrQntCm0JrQkNCg0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0KbQniDQqNCQ0J3QlNCe0KAKK9Ca0J7QptCeINCV0KDQltCV0JHQldCiCivQmtCe0KbQntCJ0JXQktCQ0KYg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCe0I/QniDQodCQ0KjQkAor0JrQntCP0J4g0JfQntCg0JDQnQor0JrQntCU0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QlNCg0JDQndCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ca0J7QlNCg0JDQndCe0JIg0KHQoNCV0JTQntCI0JUKK9Ca0J7QlNCg0JjQnSDQidCj0JTQnNCY0JvQkAor0JrQntCT0J7QiCDQldCU0KPQkNCg0JQKK9Ca0J7Qk9Ce0Igg0JXQnNCQCivQmtCe0KUg0IjQntCW0JXQpAor0JrQntClINCh0JDQktCV0KLQkAor0JrQntCl0JDQndCV0KYg0KjQkNCd0JTQntCgCivQmtCe0KXQkNCd0JXQpiDQpNCg0JDQitCQCivQmtCe0KXQkNCd0JXQpiDQk9CQ0KjQn9CQ0KAKK9Ca0J7QpdCQ0J3QldCmINCI0J7QktCQ0J0KK9Ca0J7QpdCQ0J3QldCmINCc0JDQoNCY0IjQkAor0JrQntCl0JDQndCV0KYg0J/QkNCbCivQmtCe0KXQo9CiINCC0KPQoNCQCivQmtCe0KXQo9CiINCh0KLQntCI0JAKK9Ca0J7QiNCn0JjQiyDQkNCd0ILQldCb0JrQngor0JrQntCI0KfQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0IjQp9CY0Isg0JjQktCQ0J3QkAor0JrQntCI0KfQmNCLINCf0KDQldCU0KDQkNCTCivQmtCe0IjQp9CY0Isg0KHQoNCV0JTQntCI0JUg0JTQoAor0JrQntCI0KfQmNCdINCP0JXQnNCY0InQkAor0JrQntCI0KfQmNCdINCc0JjQm9CV0JLQkAor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQltCY0JLQmtCeCivQmtCe0IjQkNCU0JjQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JHQntCg0J4KK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JrQkNCi0JAKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCg0JAKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmtCe0IjQkNCU0JjQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QiNCU0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCI0JTQmNCLINCc0JvQkNCU0JXQnQor0JrQntCI0JTQmNCLINCf0JXQotCQ0KAKK9Ca0J7QiNCY0KfQmNCLINCd0J7QktCa0JAKK9Ca0J7QiNCY0KfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QiNCY0KfQmNCdINCc0JjQm9CQ0J0KK9Ca0J7QiNCY0Isg0KfQldCU0J7QnNCY0KAKK9Ca0J7QiNCY0Isg0JbQmNCS0JDQnQor0JrQntCI0JjQiyDQgtCj0KDQkNCCCivQmtCe0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0IjQmNCLINCQ0KDQodCV0J0KK9Ca0J7QiNCY0Isg0JHQntCo0JrQngor0JrQntCI0JjQiy3QkdCe0JbQkNCd0JjQiyDQodCe0KTQmNCI0JAKK9Ca0J7QiNCY0Isg0JHQntCg0JjQktCe0IgKK9Ca0J7QiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCe0IjQmNCLINCU0JDQndCY0KbQkAor0JrQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0IjQmNCLINCU0KDQkNCT0JDQnQor0JrQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ca0J7QiNCY0Isg0JTQo9Co0JDQnQor0JrQntCI0JjQiyDQldCg0JbQldCR0JXQogor0JrQntCI0JjQiyDQk9Ce0KDQkNCdCivQmtCe0IjQmNCLINCT0J7QoNCQ0J0KK9Ca0J7QiNCY0Isg0JPQntCg0JDQnQor0JrQntCI0JjQiyDQpdCg0JjQodCi0JjQpNCe0KAKK9Ca0J7QiNCY0Isg0JjQktCQ0J0KK9Ca0J7QiNCY0Isg0JjQktCQ0J0KK9Ca0J7QiNCY0Isg0JjQktCQ0J0KK9Ca0J7QiNCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J7QiNCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J7QiNCY0Isg0IjQntCS0J4KK9Ca0J7QiNCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JrQntCI0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QiNCY0Isg0InQo9CR0J7QlNCg0JDQkwor0JrQntCI0JjQiyDQm9Cj0JrQkAor0JrQntCI0JjQiyDQnNCY0KXQkNCY0JvQngor0JrQntCI0JjQiyDQnNCY0JvQkNCdCivQmtCe0IjQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QiNCY0Isg0JzQmNCb0JDQnQor0JrQntCI0JjQiyDQnNCY0JvQkNCdCivQmtCe0IjQmNCLINCc0JjQm9CV0J3QkAor0JrQntCI0JjQiyDQnNCY0JvQldCd0JAKK9Ca0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QiNCY0Isg0JzQmNCb0J7QktCY0J3QkAor0JrQntCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQntCI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCI0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQntCI0JjQiyDQndCV0ILQngor0JrQntCI0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCI0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCI0JjQiyDQndCV0JTQldCJ0JrQngor0JrQntCI0JjQiyDQntCb0JPQmNCm0JAKK9Ca0J7QiNCY0Isg0J/QldCi0JDQoAor0JrQntCI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQntCI0JjQiyDQoNCj0JbQmNCm0JAKK9Ca0J7QiNCY0Isg0KDQo9CW0JjQptCQCivQmtCe0IjQmNCLINCh0JDQktCeCivQmtCe0IjQmNCLINCh0JjQnNCV0J7QnQor0JrQntCI0JjQiyDQodCY0J3QmNCo0JAKK9Ca0J7QiNCY0Isg0KHQn9CQ0KHQldCd0JjQiNCQCivQmtCe0IjQmNCLINCh0KLQldCS0JDQnQor0JrQntCI0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7QiNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0IjQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQntCI0JjQiyDQo9CT0InQldCo0JAKK9Ca0J7QiNCY0Isg0JLQkNCh0JAKK9Ca0J7QiNCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QiNCY0Isg0JLQmNCd0JrQkAor0JrQntCI0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QiNCe0JLQmNCLINCW0JDQoNCa0J4KK9Ca0J7QiNCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQmtCe0JrQkNCYINCo0JDQndCU0J7QoAor0JrQntCa0JDQmCDQqNCQ0J3QlNCe0KAKK9Ca0J7QmtCQ0Jgg0KjQkNCd0JTQntCgCivQmtCe0JrQkNCYINCQ0JvQmNCh0JAKK9Ca0J7QmtCQ0Jgg0JXQm9CV0J3QkAor0JrQntCa0JDQmCDQpNCV0KDQldCd0KYKK9Ca0J7QmtCQ0Jgg0KTQldCg0JXQndCmCivQmtCe0JrQkNCYINCk0JXQoNCV0J3Qpgor0JrQntCa0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JrQkNCYINCb0JDQodCb0J4KK9Ca0J7QmtCQ0Jgg0JzQkNCT0JTQntCb0J3QkAor0JrQntCa0JDQmCDQnNCY0KXQkNCI0JvQngor0JrQntCa0JDQmCDQotCY0JHQntCgCivQmtCe0JrQkNCdINCY0JLQkNCdCivQmtCe0JrQkNCd0J7QkiDQnNCY0JvQldCi0JAKK9Ca0J7QmtCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JrQkNCd0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9Ca0J7QmtCQ0KAg0JLQldCg0JjQptCQCivQmtCe0JrQkNCgINCS0JjQm9Cc0JAKK9Ca0J7QmtCV0Ikg0KLQo9CT0J7QnNCY0KAKK9Ca0J7QmtCV0JfQkCDQltCQ0KDQmtCeCivQmtCe0JrQldCX0JAg0JTQo9Co0JDQnQor0JrQntCa0JXQl9CQINCc0JjQm9CV0J3QkAor0JrQntCa0JjQiyDQiNCe0JLQkNCdCivQmtCe0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QmtCY0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QmtCY0KAg0InQo9CR0J4KK9Ca0J7QmtCe0KDQo9CoINCe0KHQotCe0IjQkAor0JrQntCa0J7QoiDQoNCQ0JTQlQor0JrQntCa0J7QoiDQodCc0JjQidCQCivQmtCe0JrQntCiINCh0KDQldCi0JAKK9Ca0J7QmtCe0KIg0KHQktCV0KLQm9CQ0J3QkAor0JrQntCa0J7QoiDQktCY0KbQngor0JrQntCa0J7QotCe0JLQmNCLINCW0JjQktCa0J4KK9Ca0J7QmtCe0KLQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQntCa0J7QotCe0JLQmNCLINCT0J7QiNCa0J4KK9Ca0J7QmtCe0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQmtCe0JrQntCi0J7QktCY0Isg0JjQktCY0KbQkAor0JrQntCa0J7QotCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCe0JrQntCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCe0JrQntCi0J7QktCY0Isg0J/QldCi0JDQoAor0JrQntCa0J7QotCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQmtCe0JrQntCi0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Ca0J7QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQntCa0J7QktCY0Isg0JPQntCg0JDQnQor0JrQntCb0ILQldCg0JDQiCDQgtCe0J0KK9Ca0J7Qm9CQ0KfQkNCg0JjQiyDQktCV0JvQmNCR0J7QoAor0JrQntCb0JDQqNCY0J3QkNCmINCJ0KPQkdCe0JzQmNCgCivQmtCe0JvQkNCaINCU0KPQqNCQ0J0KK9Ca0J7Qm9CQ0Jog0IjQldCb0JXQndCQCivQmtCe0JvQkNCaINCc0JjQm9CQ0J0KK9Ca0J7Qm9CQ0JrQntCS0JjQiyDQkNCb0JzQkNCXCivQmtCe0JvQkNCa0J7QktCY0Isg0IjQo9Cg0JUKK9Ca0J7Qm9CQ0JrQntCS0JjQiyDQnNCY0JvQlQor0JrQntCb0JDQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCe0JvQkNCa0KPQqNCY0Isg0JjQktCY0KbQkAor0JrQntCb0JDQmtCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7Qm9CQ0J3QniDQkNCd0KLQntCdCivQmtCe0JvQkNCd0J4g0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCe0JvQkNCd0J4g0JjQktCQ0J0KK9Ca0J7Qm9CQ0J3QniDQiNCj0JvQmtCQCivQmtCe0JvQkNCgINCQ0J3QkAor0JrQntCb0JDQoCDQkNCd0JAKK9Ca0J7Qm9CQ0KAg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qm9CQ0KAg0JDQndCi0JDQmwor0JrQntCb0JDQoCDQlNCQ0KDQmtCeCivQmtCe0JvQkNCgINCY0JHQntCJ0JrQkAor0JrQntCb0JDQoCDQmNCS0JDQnQor0JrQntCb0JDQoCDQiNCe0KHQmNCfCivQmtCe0JvQkNCgINCI0J7QodCY0J8KK9Ca0J7Qm9CQ0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQntCb0JDQoCDQm9CQ0IjQntCoCivQmtCe0JvQkNCgINCb0JDQodCb0J4KK9Ca0J7Qm9CQ0KAg0JvQntCX0JjQndCa0JAKK9Ca0J7Qm9CQ0KAg0JzQkNCi0JjQiNCQCivQmtCe0JvQkNCgINCc0JjQm9CY0KbQkAor0JrQntCb0JDQoCDQnNCY0KDQmtCeCivQmtCe0JvQkNCgINCf0JDQktCb0JUKK9Ca0J7Qm9CQ0KAg0J/QldCi0JDQoAor0JrQntCb0JDQoNCoINCo0KLQldCk0JDQnQor0JrQntCb0JDQoNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCb0JDQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J7Qm9CQ0KDQmNCLINCR0KDQkNCd0JrQngor0JrQntCb0JDQoNCY0Isg0JHQoNCY0JPQmNCi0JAKK9Ca0J7Qm9CQ0KDQmNCLINCU0J7QkdCg0JjQm9CQCivQmtCe0JvQkNCg0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCb0JDQoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCb0JDQoNCY0Isg0JTQo9Co0JDQnQor0JrQntCb0JDQoNCY0Isg0KTQmNCb0JjQnwor0JrQntCb0JDQoNCY0Isg0JjQlNCQCivQmtCe0JvQkNCg0JjQiyDQmtCe0KHQotCQCivQmtCe0JvQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7Qm9CQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JrQntCb0JDQoNCY0Isg0JzQmNCb0JDQnQor0JrQntCb0JDQoNCY0Isg0JzQmNCb0JDQnQor0JrQntCb0JDQoNCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0J7Qm9CQ0KDQmNCLINCc0JvQkNCU0JXQnQor0JrQntCb0JDQoNCY0Isg0J3QkNCU0JAKK9Ca0J7Qm9CQ0KDQmNCLINCd0JXQnNCQ0IrQkAor0JrQntCb0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0JvQkNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQntCb0JDQoNCY0Isg0KHQm9CQ0JLQmtCeCivQmtCe0JvQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JvQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JvQkNCg0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQntCb0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JvQkNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0JvQkNCg0JjQiyDQktCe0IjQkAor0JrQntCb0JDQoNCY0Isg0JfQntCg0JDQnQor0JrQntCb0JDQoNCY0Isg0JfQktCe0J3QmtCeCivQmtCe0JvQkNCg0J7QkiDQltCY0JLQkAor0JrQntCb0JDQoNCe0JIg0ILQntCg0ILQlQor0JrQntCb0JDQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7Qm9CQ0KDQntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQntCb0JDQoNCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCe0JvQkNCg0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQntCSINCT0J7QiNCa0J4KK9Ca0J7Qm9CQ0KDQntCSINCI0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQntCSINCI0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQntCSINCI0KPQm9Ca0JAKK9Ca0J7Qm9CQ0KDQntCSINCa0JDQotCVCivQmtCe0JvQkNCg0J7QkiDQidCY0InQkNCd0JAKK9Ca0J7Qm9CQ0KDQntCSINCc0JDQoNCY0KbQkAor0JrQntCb0JDQoNCe0JIg0JzQmNCb0JDQndCa0JAKK9Ca0J7Qm9CQ0KDQntCSINCc0JjQm9CY0JLQntCICivQmtCe0JvQkNCg0J7QkiDQnNCY0JvQntCoCivQmtCe0JvQkNCg0J7QkiDQnNCe0JzQmNCgCivQmtCe0JvQkNCg0J7QkiDQndCQ0JTQkCDQlNCgINCb0JXQmtCQ0KAKK9Ca0J7Qm9CQ0KDQntCSINCd0JXQkdCe0IjQqNCQCivQmtCe0JvQkNCg0J7QkiDQn9CQ0JLQm9CVCivQmtCe0JvQkNCg0J7QkiDQn9CV0KLQkNCgCivQmtCe0JvQkNCg0J7QkiDQoNCQ0JTQntCI0JrQngor0JrQntCb0JDQoNCe0JIt0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JAKK9Ca0J7Qm9CQ0KDQntCSINCh0JDQktCQCivQmtCe0JvQkNCg0J7QkiDQotCe0JTQntCgCivQmtCe0JvQkNCg0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQmtCe0JvQkNCg0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQmtCe0JvQkNCg0J7QktCY0Isg0JbQmNCS0JrQngor0JrQntCb0JDQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQntCb0JDQoNCe0JLQmNCLINCa0JDQotCY0KbQkAor0JrQntCb0JDQoNCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQmtCe0JvQkNCg0J7QktCY0Isg0JvQo9Ca0JAg0JTQoAor0JrQntCb0JDQoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0JvQkNCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JvQkNCg0J7QktCY0Isg0J3QldCd0JDQlAor0JrQntCb0JDQoNCh0JrQmCDQgtCe0KDQgtCVCivQmtCe0JvQkNCg0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JvQkNCg0KHQmtCYINCQ0J3QmNCm0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JDQoNCf0JDQlAor0JrQntCb0JDQoNCh0JrQmCDQkdCe0KHQmNCJ0JrQkAor0JrQntCb0JDQoNCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JTQkNCd0JjQptCQCivQmtCe0JvQkNCg0KHQmtCYINCU0KPQqNCQ0J3QmtCQINCU0JjQn9CbINCe0JXQpgor0JrQntCb0JDQoNCh0JrQmCDQiNCe0JLQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCI0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0JrQkNCi0JjQptCQCivQmtCe0JvQkNCg0KHQmtCYINCb0JDQodCb0J4KK9Ca0J7Qm9CQ0KDQodCa0Jgg0JvQkNCX0JDQoAor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQkNCU0JjQnQor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCc0JjQm9CV0J3QmtCeINCS0JXQotCV0KDQmNCd0JDQoAor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQldCd0JrQngor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQmNCm0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JzQmNCi0JDQoAor0JrQntCb0JDQoNCh0JrQmCDQnNCb0JDQlNCV0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0JzQm9CQ0JTQldCdCivQmtCe0JvQkNCg0KHQmtCYINCd0JDQlNCQCivQmtCe0JvQkNCg0KHQmtCYINCd0JjQmtCe0JvQkAor0JrQntCb0JDQoNCh0JrQmCDQoNCQ0JTQnNCY0JvQkAor0JrQntCb0JDQoNCh0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQmtCe0JvQkNCg0KHQmtCYINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCh0JvQkNCS0JjQptCQCivQmtCe0JvQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JrQntCb0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0KLQntCU0J7QoAor0JrQntCb0JDQoNCh0JrQmCDQktCV0KDQkAor0JrQntCb0JDQoNCh0JrQmCDQl9CU0KDQkNCS0JrQngor0JrQntCb0JHQkNChINCU0JDQndCY0IjQldCbCivQmtCe0JvQkdCQ0KEg0IjQkNCd0JrQngor0JrQntCb0JHQkNChINCI0J7QkNCa0JjQnAor0JrQntCb0JHQkNChINCc0JXQm9CQ0J3QmNCI0JAKK9Ca0J7Qm9CR0JDQoSDQnNCY0JvQldCS0JAKK9Ca0J7Qm9CR0JDQoSDQktCb0JDQlNCQCivQmtCe0JvQj9CY0Isg0JHQoNCQ0J3QmtCQCivQmtCe0JvQj9CY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JvQj9CY0J0g0JzQmNCg0JrQngor0JrQntCb0I/QmNCdINCS0JXQodCV0JvQmNCdCivQmtCe0JvQlNCQ0J0g0JzQmNCb0JXQndCa0J4KK9Ca0J7Qm9CV0KjQmtCQINCV0JTQo9CQ0KDQlAor0JrQntCb0JXQlNCQ0KAg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qm9CV0JTQmNCdINCC0J7QoNCC0JUKK9Ca0J7Qm9CV0JTQmNCdINCk0J7QotCY0IjQlQor0JrQntCb0JXQlNCY0J0g0JzQmNCb0J7QqAor0JrQntCb0JXQlNCY0J0g0JzQmNCg0IjQkNCd0JAKK9Ca0J7Qm9CV0JTQmNCdINCf0JXQotCQ0KAKK9Ca0J7Qm9CV0JTQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0J7Qm9CV0JTQmNCdINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQldCU0JjQnSDQoNCQ0JTQntCS0JDQnQor0JrQntCb0JXQlNCY0J0g0KHQotCV0JLQkNCdCivQmtCe0JvQldCU0JjQnSDQktCV0JvQmNCc0JjQoAor0JrQntCb0JXQlNCY0J0g0JLQldCg0JAKK9Ca0J7Qm9CV0KAg0JDQndCi0JDQmwor0JrQntCb0JXQoCDQm9CQ0IjQntCoCivQmtCe0JvQldCh0JDQoCDQgtCj0KDQkAor0JrQntCb0JXQodCQ0KAg0JDQndCY0KbQkAor0JrQntCb0JXQodCQ0KAg0KTQldCU0J7QoAor0JrQntCb0JXQodCQ0KAg0KTQldCg0JXQndCmCivQmtCe0JvQldCh0JDQoCDQk9CQ0JLQoNCQCivQmtCe0JvQldCh0JDQoCDQiNCQ0J3QntCoCivQmtCe0JvQldCh0JDQoCDQiNCe0JLQkNCdCivQmtCe0JvQldCh0JDQoCDQiNCe0JLQkNCdCivQmtCe0JvQldCh0JDQoCDQiNCj0JvQmNCI0JDQnQor0JrQntCb0JXQodCQ0KAg0IjQo9Cb0JjQiNCQ0J0KK9Ca0J7Qm9CV0KHQkNCgINCa0JDQotCY0KbQkAor0JrQntCb0JXQodCQ0KAg0JrQodCV0J3QmNCI0JAKK9Ca0J7Qm9CV0KHQkNCgINCc0JjQpdCQ0IjQm9CeCivQmtCe0JvQldCh0JDQoCDQn9CV0KLQkNCgINCU0KAKK9Ca0J7Qm9CV0KHQkNCgINCf0JXQotCQ0KAKK9Ca0J7Qm9CV0KHQkNCgINCh0JjQnNCV0J7QnQor0JrQntCb0JXQodCQ0KAg0JLQldCg0JAKK9Ca0J7Qm9CV0KHQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qm9CV0KHQkNCgINCX0J7QoNCY0KbQkAor0JrQntCb0JXQodCQ0KDQmNCLINCS0JjQndCa0J4KK9Ca0J7Qm9CV0JIg0KLQntCU0J7QoNCa0JAKK9Ca0J7Qm9CY0Isg0JDQmNCo0JAKK9Ca0J7Qm9CY0J0g0IjQntCW0JXQpCDQndCe0JLQmNCd0JDQoAor0JrQntCJ0JDQj9CY0J3QodCa0Jgg0IjQntCS0JDQnQor0JrQntCJ0JDQj9CY0J3QodCa0Jgg0KHQotCV0KTQkNCd0JjQiNCQCivQmtCe0InQkNCI0JAg0JHQm9CQ0JPQntCI0JUKK9Ca0J7QidCQ0IjQkCDQlNCg0JDQk9CQ0J0KK9Ca0J7QidCQ0IjQkCDQk9Ce0KDQkNCdCivQmtCe0InQkNCd0JjQnSDQn9CV0KLQkNCgCivQmtCe0JvQnNCQ0J0g0IjQntCW0JXQpAor0JrQntCb0J7Qp9CQ0Jgg0IjQntCh0JjQnwor0JrQntCb0J7QqNCK0JDQmCDQnNCY0KDQntCdCivQmtCe0JvQntCo0IrQkNCI0Jgg0IjQkNCd0JrQngor0JrQntCb0J7QqNCK0JDQiNCYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qm9Ce0J/QmNCLINCf0JXQotCQ0KAKK9Ca0J7Qm9Ce0J/QmNCLINCg0KPQltCY0KbQkAor0JrQntCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JvQotCY0J0g0JHQoNCQ0J3QmtCeCivQmtCe0JvQo9Cd0I/QmNCLINCW0JjQktCa0JAKK9Ca0J7Qm9Cj0J3Qj9CY0Isg0ILQo9Cg0JAKK9Ca0J7Qm9Cj0J3Qj9CY0Isg0JDQndCa0JAKK9Ca0J7Qm9Cj0J3Qj9CY0Isg0J/QldCg0JjQptCQCivQmtCe0JvQo9Cd0I/QmNCLINCh0JvQkNCS0JrQngor0JrQntCb0KPQndCP0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQkNCd0ILQldCb0JrQkAor0JrQntCb0KPQndCP0JjQiNCQINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQlNCQ0JLQntCg0JrQkAor0JrQntCb0KPQndCP0JjQiNCQINCU0KDQkNCT0JDQnQor0JrQntCb0KPQndCP0JjQiNCQINCb0JDQl9CQ0KAKK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQidCj0JHQntCc0JjQoAor0JrQntCb0KPQndCP0JjQiNCQINCc0JjQoNCa0J4KK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQndCQ0JTQkAor0JrQntCb0KPQndCP0JjQiNCQINCd0JjQmtCe0JvQkAor0JrQntCb0KPQndCP0JjQiNCQINCX0J7QoNCa0JAKK9Ca0J7Qm9Cj0KLQkNCmINCc0JDQotCY0IjQkAor0JrQntCc0KjQmNCLINCI0J7QktCQ0J0KK9Ca0J7QnNCo0J4g0J3QmNCa0J7Qm9CQCivQmtCe0JzQkNCUINCQ0J3QkAor0JrQntCc0JDQlCDQk9Ce0IjQmtCeCivQmtCe0JzQkNCUINCg0JDQotCe0JzQmNCgCivQmtCe0JzQkNCUINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QnNCQ0JTQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0J7QnNCQ0JTQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0JrQntCc0JDQlNCQ0KDQmNCLINCc0JjQm9Ce0KgKK9Ca0J7QnNCQ0JTQmNCd0JAg0JzQkNCd0JUKK9Ca0J7QnNCQ0JTQmNCd0JAg0JLQldCb0JjQodCb0JDQkgor0JrQntCc0JDQlNCY0J3QkCDQktCj0IjQkNCU0JjQnQor0JrQntCc0JDQlNCY0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0JzQkNCU0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QnNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCg0JAKK9Ca0J7QnNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQntCc0JDQnSDQkdCe0KHQmNCJ0JrQkAor0JrQntCc0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQmtCe0JzQkNCgINCT0J7QiNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCe0JzQkNCgINCg0JDQlNCY0JLQntCI0JUKK9Ca0J7QnNCQ0KAg0KHQm9CQ0JLQmtCQCivQmtCe0JzQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QnNCQ0KAg0JfQntCg0JrQkAor0JrQntCc0JDQoNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QnNCQ0KDQp9CV0JLQmNCLINCY0KjQotCS0JDQnQor0JrQntCc0JDQoNCn0JXQktCY0Isg0JzQmNCb0JXQndCQCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQnNCY0JvQmNCd0JrQniDQlNCgCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0JzQkNCg0JjQptCQINCc0JDQoNCa0J4KK9Ca0J7QnNCQ0KDQmNCm0JAg0J3QntCS0JrQngor0JrQntCc0JDQoNCY0KbQkCDQoNCQ0JTQnNCY0JvQkAor0JrQntCc0JDQoNCe0JzQmCDQgtCe0KDQgtCVCivQmtCe0JzQkNCg0J7QnNCYINCQ0J3QgtCV0JvQmtCQCivQmtCe0JzQkNCg0J7QnNCYINCR0J7QoNCR0JDQm9CQCivQmtCe0JzQkNCg0J7QnNCYINCR0J7QoNCI0JDQndCa0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0JHQntCg0IjQkNCd0JrQkAor0JrQntCc0JDQoNCe0JzQmCDQmNCg0JzQkAor0JrQntCc0JDQoNCe0JzQmCDQmtCb0JDQoNCQCivQmtCe0JzQkNCg0J7QnNCYINCc0JDQk9CU0J7Qm9Cd0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0JzQkNCT0JTQntCb0J3QkAor0JrQntCc0JDQoNCe0JzQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0J/QldCi0JDQoAor0JrQntCc0JDQoNCe0JzQmCDQl9Ce0JvQotCQ0J0KK9Ca0J7QnNCQ0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JrQntCc0JDQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QnNCQ0KDQntCSINCR0KDQkNCd0JrQkAor0JrQntCc0JDQoNCe0JIg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QnNCQ0KDQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Ca0J7QnNCQ0KLQmNCd0JAg0JTQoNCQ0JPQkNCdCivQmtCe0JzQkNCi0JjQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0JzQkNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQntCc0JDQotCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQmtCe0JzQkNCX0JXQpiDQlNCg0JDQk9Ce0JzQmNCgCivQmtCe0JzQkNCX0JXQpiDQn9CV0KLQkNCgCivQmtCe0JzQkdCV0KDQmCDQkNCS0JTQo9CoCivQmtCe0JzQkdCY0Ikg0JLQldCg0JAKK9Ca0J7QnNCV0J3QlNCQINCQ0J3QlNCg0JjQiNCQCivQmtCe0JzQmNCd0JrQniDQidCj0JHQmNCm0JAKK9Ca0J7QnNCb0JXQndCY0Isg0ILQntCg0ILQlQor0JrQntCc0JvQldCd0J7QkiDQltCY0JLQkNCdCivQmtCe0JzQm9CV0J3QntCSINCC0J7QoNCC0JUKK9Ca0J7QnNCb0JXQndCe0JIg0IjQntCS0JDQnQor0JrQntCc0JvQldCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmtCe0JzQm9CV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JzQm9CV0J3QntCS0JjQiyDQnNCY0JvQlQor0JrQntCc0JvQldCd0J7QktCY0Isg0JLQldCJ0JrQngor0JrQntCc0JvQldCd0KHQmtCYINCW0JjQktCQ0J0KK9Ca0J7QnNCb0JXQndCh0JrQmC3QlNCV0JvQmNCLINCS0KPQmtCe0KHQkNCS0JAg0JTQoAor0JrQntCc0JvQldCd0KHQmtCYINCX0J7QoNCQ0J0KK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCe0JzQidCV0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQmtCe0JzQidCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JzQidCV0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQmtCe0JzQidCV0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCS0JvQkNCU0J4KK9Ca0J7QnNCb0KPQqNCQ0J0g0JHQntCW0JAKK9Ca0J7QnNCb0KPQqNCa0Jgg0JjQktCQ0J3QkCDQnNCgCivQmtCe0JzQndCV0J3QmNCLINCY0JLQkNCd0JrQkAor0JrQntCc0J3QldCd0J7QkiDQqNCQ0KDQm9Ce0KLQkAor0JrQntCc0J3QldCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JrQntCc0J3QldCd0J7QkiDQndCY0JrQntCb0JAKK9Ca0J7QnNCd0JXQndCe0JIg0KHQkNCd0JTQoNCQCivQmtCe0JzQndCV0J3QntCSINCh0KLQkNCd0JjQodCb0JDQkgor0JrQntCc0J3QldCd0J7QkiDQktCV0KHQldCb0JjQndCQCivQmtCe0JzQndCV0J3QntCSINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JrQntCc0J3QldCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JrQntCc0J3QldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JzQndCV0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQmtCe0JzQndCV0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0J7QnNCd0JXQndCe0JLQmNCLINCJ0KPQkdCe0IjQlQor0JrQntCc0J3QldCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQntCc0J3QldCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQntCc0J3QldCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQmtCe0JzQndCV0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0J7QnNCd0JXQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JrQntCc0J7QodCQ0KAg0JHQoNCQ0J3QmtCeCivQmtCe0JzQntCh0JDQoCDQoNCQ0IjQmtCeCivQmtCe0JzQntCX0JXQpiDQgtCe0KDQgtCVCivQmtCe0JzQntCX0JXQpiDQm9CQ0JfQkNCgCivQmtCe0J0g0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ca0J7QnSDQodCi0JXQktCQ0J0KK9Ca0J7QnSDQotCe0JzQkNCWCivQmtCe0J3Qp9CQ0KAg0JDQndCU0KDQmNCI0JAKK9Ca0J7QndCn0JDQoCDQkdCe0KHQmNCJ0JrQkAor0JrQntCd0KfQkNCgINCI0J7QktCeCivQmtCe0J3Qp9CQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JrQntCd0KfQkNCgINCc0JjQoNCQCivQmtCe0J3Qp9CQ0KAg0JzQmNCi0JDQoAor0JrQntCd0KfQkNCgINCd0JjQmtCe0JvQkAor0JrQntCd0KfQkNCgINCd0JjQmtCe0JvQkAor0JrQntCd0KfQkNCgINCg0JDQndCa0J4KK9Ca0J7QndCn0JDQoCDQodCb0JDQktCa0J4KK9Ca0J7QndCn0JDQoCDQl9Ce0KDQkAor0JrQntCd0KfQkNCgINCX0J7QoNCQCivQmtCe0J3Qp9CQ0KDQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QndCn0JDQoNCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J7QndCn0JXQmiDQoNCe0JfQkNCb0JjQiNCQCivQmtCe0J3QkNCa0J7QkiDQndCV0JTQldCJ0JrQngor0JrQntCd0KYg0KjQkNCd0JTQntCgCivQmtCe0J3QpiDQmNCo0KLQktCQ0J0KK9Ca0J7QndCmINCY0JvQntCd0JAKK9Ca0J7QndCmINCJ0JjQidCQ0J3QkAor0JrQntCd0KYg0JfQntCg0JDQndCa0JAKK9Ca0J7QndCU0JDQnSDQnNCQ0KDQk9CQ0KDQldCi0JAKK9Ca0J7QndCU0JjQiyDQkNCd0JAKK9Ca0J7QndCU0JjQiyDQkNCd0JrQkAor0JrQntCd0JTQmNCLINCR0KDQkNCd0JrQngor0JrQntCd0JTQmNCLINCU0KDQkNCT0JDQnQor0JrQntCd0JTQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0J3QlNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCd0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCe0J3QlNCY0Isg0IjQntCS0JDQnQor0JrQntCd0JTQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCd0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCe0J3QlNCY0Isg0JzQmNCg0JAKK9Ca0J7QndCU0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCd0JTQmNCLINCd0JXQnNCQ0IrQkAor0JrQntCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JrQntCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JrQntCd0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQmtCe0J3QlNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ca0J7QndCU0JjQiyDQoNCQ0IjQmtCeCivQmtCe0J3QlNCY0Isg0KHQkNCd0JTQoNCQCivQmtCe0J3QlNCY0Isg0KLQoNCY0JLQngor0JrQntCd0JTQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCe0J3QlNCY0Isg0JfQntCg0JrQkAor0JrQntCd0JTQntCI0JDQndCYINCC0J7QoNCC0JUKK9Ca0J7QndCU0KDQkNCaINCh0KLQntCI0JDQnQor0JrQntCd0JTQoNCQ0KLQiNCV0JIg0KjQotCV0KTQkNCd0JjQiNCQCivQmtCe0J3QldCn0J3QmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QndCV0KbQmtCYINCX0JvQkNCi0JrQngor0JrQntCd0JXQptCa0Jgg0JfQm9CQ0KLQmtCeCivQmtCe0J3QldCdINCg0J7QkdCV0KDQogor0JrQntCd0JXQnSDQoNCe0JHQldCg0KIKK9Ca0J7QndCV0KHQmtCQINCJ0JjQidCQ0J3QkAor0JrQntCd0JPQniDQktCV0KDQkAor0JrQntCK0JDQotCY0Isg0KjQmNCc0J4KK9Ca0J7QitCV0JLQmNCLINCW0JjQktCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQmtCe0IrQldCS0JjQiyDQkNCd0JAKK9Ca0J7QitCV0JLQmNCLINCU0JDQndCY0JvQngor0JrQntCK0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JrQntCK0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JrQntCK0JXQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JrQntCK0JXQktCY0Isg0JjQktCQ0J3QmtCQCivQmtCe0IrQldCS0JjQiyDQnNCY0JvQldCS0JAKK9Ca0J7QitCV0JLQmNCLINCc0JjQm9CY0JLQntCICivQmtCe0IrQldCS0JjQiyDQnNCb0JDQgtCV0J0KK9Ca0J7QitCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JrQntCK0JXQktCY0Isg0J3QldCd0JDQlAor0JrQntCK0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0J7QitCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQmtCe0IrQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JrQntCK0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCe0IrQldCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0J7QitCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JrQntCK0JjQmiDQndCQ0JTQkAor0JrQntCK0JjQmiDQktCY0JTQntCI0JUKK9Ca0J7QitCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCK0J7QktCY0Isg0IjQntCS0JDQnQor0JrQntCK0J7QktCY0Isg0JzQkNCa0KHQmNCcCivQmtCe0IrQntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0IrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCK0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0IrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Ca0J7QitCe0JLQmNCLINCh0JzQmNCJ0JAKK9Ca0J7QitCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JrQntCK0J7QktCY0Isg0KLQmNCd0JrQkAor0JrQntCK0J7QktCY0Isg0JLQldCg0JAKK9Ca0J7QndCa0J7QmyDQnNCY0KXQkNCI0JvQngor0JrQntCd0JrQntCJINCc0JDQoNCY0IjQkAor0JrQntCd0J7Qn9CV0Jog0KHQotCQ0J3QmNCc0JjQoAor0JrQntCd0KDQkNCUINCk0KDQkNCK0JAKK9Ca0J7QndCg0JDQlCDQnNCY0KDQp9CQCivQmtCe0J3QoNCQ0JQg0J/QkNCS0JvQlQor0JrQntCd0KHQotCQ0J3QotCY0J0g0JHQo9Cl0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0JjQlNCY0KEg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0J3QodCi0JDQndCi0JjQndCY0JTQmNChINCT0JXQntCg0JPQmNCe0KEKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0JjQlNCY0KEg0KLQldCe0JTQntCgCivQmtCe0J3QodCi0JDQndCi0JjQndCY0JTQoyDQodCe0KTQmNCI0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQpdCV0KDQnNCY0J3QkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0IjQntCg0JTQkNCdCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCb0KPQmtCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCS0JXQoNCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Ca0J7QndCi0JjQiyDQlNCe0JHQoNCY0JLQntCICivQmtCe0J3QotCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J7QndCi0JjQiyDQnNCY0JvQkNCdCivQmtCe0J3QotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0J7QndCi0KDQmNCLINCI0J7QktCQ0J0KK9Ca0J7Qn9Cn0JDQndCh0JrQmCDQltCV0InQmtCeCivQmtCe0J/Qp9CQ0J3QodCa0Jgg0JjQoNCY0J3QkAor0JrQntCf0KfQkNCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JrQntCf0KfQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9Ca0J7Qn9Cn0JDQndCh0JrQmCDQoNCQ0JTQnNCY0JvQkAor0JrQntCf0KfQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JrQntCf0KfQkNCd0KHQmtCYINCS0JvQkNCU0JAKK9Ca0J7Qn9Cn0J7QmiDQkNCd0JAKK9Ca0J7Qn9Cn0J7QmiDQmtCQ0KLQmNCm0JAKK9Ca0J7Qn9Cn0J7QmiDQnNCY0KjQkAor0JrQntCf0KfQntCaINCh0JDQndCU0KDQkAor0JrQntCf0JDQitCQINCU0JDQndCY0JvQngor0JrQntCf0JDQitCQINCU0KDQkNCT0J7QnNCY0KAKK9Ca0J7Qn9CQ0IrQkCDQlNCj0KjQkNCdCivQmtCe0J/QkNCK0JAg0JTQo9Co0JDQnQor0JrQntCf0JDQitCQINCT0J7QiNCa0J4KK9Ca0J7Qn9CQ0IrQkCDQk9Ce0IjQmtCeCivQmtCe0J/QkNCK0JAg0JjQm9CY0IjQkAor0JrQntCf0JDQitCQINCJ0KPQn9Ca0J4KK9Ca0J7Qn9CQ0IrQkCDQnNCY0IvQngor0JrQntCf0JDQitCQINCc0JjQntCU0KDQkNCTCivQmtCe0J/QkNCK0JAg0JzQmNCi0JDQoAor0JrQntCf0JDQitCQINCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7Qn9CQ0IrQkCDQoNCe0KHQkAor0JrQntCf0JDQitCQINCS0JjQlAor0JrQntCf0JDQoSDQiNCQ0J3QntCoCivQmtCe0J/QldCg0JXQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCf0JXQoNCV0KYg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qn9CV0KDQldCmINCI0JDQndCe0KgKK9Ca0J7Qn9CV0KDQldCmINCI0J7QktCQ0J0KK9Ca0J7Qn9CV0KDQldCmINCh0KLQldCS0JDQnQor0JrQntCf0JXQoNCV0KYg0KHQotCV0JLQkNCdCivQmtCe0J/QldCh0KLQldCd0KHQmtCYINCa0JDQotCY0KbQkAor0JrQntCf0JXQodCi0JjQndCh0JrQmNCIINCg0JXQk9CY0J3QkAor0JrQntCf0JjQiyDQmNCb0J7QndCQCivQmtCe0J/QmNCm0Jsg0KDQo9CU0J7Qm9CkCivQmtCe0J/QmNCb0J7QktCY0Isg0IjQntCh0JjQnwor0JrQntCf0JjQm9Ce0JLQmNCLINCc0JDQoNCT0JAKK9Ca0J7Qn9CY0JvQntCS0JjQiy3QnNCY0IjQkNCi0J7QkiDQlNCg0JDQk9CY0KbQkAor0JrQntCf0JjQm9Ce0JLQmNCLINCf0JDQktCb0JUKK9Ca0J7Qn9CY0KLQntCS0JjQiyDQqNCf0JjQoNCeCivQmtCe0J/QmNCi0J7QktCY0Isg0J/QldCi0JDQoAor0JrQntCf0JvQkNCK0Jgg0JzQkNCg0JjQiNCQCivQmtCe0J/Qm9CQ0IrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Ca0J7Qn9Cb0JjQiyDQgtCe0KDQgtCVCivQmtCe0J/Qm9CY0Isg0JTQkNCd0JjQptCQCivQmtCe0J/Qm9CY0Isg0JTQo9Co0JDQnQor0JrQntCf0JvQmNCLINCc0JjQm9CVCivQmtCe0J/QoNCV0J3QntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQntCf0KDQmNCS0KjQldCaINCX0JLQntCd0JjQnNCY0KAKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQkNCd0JPQldCb0JjQndCQCivQmtCe0J/QoNCY0JLQmNCm0JAg0JHQntCW0JjQlNCQ0KAKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQkdCe0JbQmNCU0JDQoAor0JrQntCf0KDQmNCS0JjQptCQINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQk9Ce0KDQlNCQ0J3QkAor0JrQntCf0KDQmNCS0JjQptCQINCJ0JjQidCQ0J3QkAor0JrQntCf0KDQmNCS0JjQptCQINCc0JjQm9CV0J3QmtCeCivQmtCe0J/QoNCY0JLQmNCm0JAg0JzQmNCb0KPQotCY0J0KK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQnNCY0J7QlNCg0JDQkwor0JrQntCf0KDQmNCS0JjQptCQINCd0J7QktCQ0JoKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQntCR0KDQldCdCivQmtCe0J/QoNCY0JLQmNCm0JAg0J/QldCi0JDQoAor0JrQntCf0KDQmNCS0JjQptCQINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQl9Ce0KDQkNCdCivQmtCe0J/Qo9Cd0J7QktCY0Isg0InQo9CR0JjQptCQCivQmtCe0KDQp9Ce0Jog0IjQkNCdCivQmtCe0KDQp9Ce0Jog0JzQkNCg0JjQiNCQCivQmtCe0KDQp9Ce0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCg0JDQiyDQltCV0InQmtCeCivQmtCe0KDQkNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Ca0J7QoNCQ0Isg0JTQo9Co0JDQnQor0JrQntCg0JDQiyDQk9Ce0IjQmtCeCivQmtCe0KDQkNCLINCY0JPQntCgCivQmtCe0KDQkNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ca0J7QoNCQ0Isg0JrQkNCi0JjQptCQCivQmtCe0KDQkNCLINCJ0KPQkdCY0KHQkNCSCivQmtCe0KDQkNCLINCc0JDQndCVCivQmtCe0KDQkNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0KDQkNCLINCc0JjQm9CQ0J0KK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0J7QktCQ0J0g0JTQoCDQn9Cg0J7QpAor0JrQntCg0JDQiyDQnNCY0JvQntCS0JDQnQor0JrQntCg0JDQiyDQnNCY0JvQntCS0JDQnQor0JrQntCg0JDQiyDQnNCY0J7QlNCg0JDQkwor0JrQntCg0JDQiyDQn9CV0KLQkNCgCivQmtCe0KDQkNCLINCf0JXQotCg0JAKK9Ca0J7QoNCQ0Isg0KDQkNCU0JUKK9Ca0J7QoNCQ0Isg0KDQkNCU0J7QiNCa0JAKK9Ca0J7QoNCQ0Isg0KDQkNCU0J7QiNCa0JAKK9Ca0J7QoNCQ0Isg0KDQkNCU0J7QodCQ0JIKK9Ca0J7QoNCQ0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCg0JDQiyDQodCd0JXQltCQ0J3QkAor0JrQntCg0JDQiyDQotCQ0KLQiNCQ0J3QkAor0JrQntCg0JDQiyDQktCb0JDQlNCeCivQmtCe0KDQkNCI0JjQptCQINCC0KPQoNCQCivQmtCe0KDQkNCI0JvQmNCI0JAg0JbQkNCg0JrQngor0JrQntCg0JDQiNCb0JjQiNCQINCW0JDQoNCa0J4KK9Ca0J7QoNCQ0IjQm9CY0IjQkCDQltCQ0KDQmtCeCivQmtCe0KDQkNCI0JvQmNCI0JAg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0KDQkNCI0JvQmNCI0JAg0JzQmNCb0JDQnQor0JrQntCg0JDQmtCjINCb0KPQp9CY0IjQkNCdCivQmtCe0KDQkNCa0KMg0JvQo9Cm0JjQiNCQ0J0KK9Ca0J7QoNCR0JDQotCk0JjQndCh0JrQmCDQldCb0JLQmNCg0JAKK9Ca0J7QoNCR0JDQotCk0JjQndCh0JrQmCDQktCY0JrQotCe0KAg0JTQoAor0JrQntCg0JHQkNCi0JLQmNCd0KHQmtCYINCU0KDQkNCT0JDQnQor0JrQntCg0JHQkNCi0JLQmNCd0KHQmtCYLdCb0JDQm9Ce0KjQldCS0JjQiyDQl9Cb0JDQotCQCivQmtCe0KDQkdCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0KDQlNCQINCc0JjQm9Ce0KgKK9Ca0J7QoNCU0JAg0J3QkNCd0JTQntCgCivQmtCe0KDQlNCY0Isg0ILQo9Cg0JAKK9Ca0J7QoNCU0JjQiyDQkdCe0IjQkNCdCivQmtCe0KDQlNCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J7QoNCU0JjQiyDQk9Ce0IjQmtCeCivQmtCe0KDQlNCY0Isg0JzQmNCb0JDQnQor0JrQntCg0JXQndCY0Isg0JPQkNCR0KDQmNCV0JsKK9Ca0J7QoNCV0J3QmNCLINCi0JXQntCU0J7QoAor0JrQntCg0JXQitCYINCC0J7QoNCC0JUKK9Ca0J7QoNCV0IrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCg0JXQitCYINCb0JDQodCb0J4KK9Ca0J7QoNCV0J3QoiDQm9Cj0JTQktCY0JMKK9Ca0J7QoNCl0JDQnNCV0KAg0KTQldCg0JXQndCmCivQmtCe0KDQpdCV0KYg0J/QkNCS0JvQlQor0JrQntCg0JjQqCDQiNCj0JvQmNCI0JDQndCQCivQmtCe0KDQmNCL0JDQndCQ0KYg0JjQktCQ0J0KK9Ca0J7QoNCY0IvQkNCd0JDQpiDQidCj0JHQmNCd0JrQkAor0JrQntCg0JjQliDQkNCg0J/QkNCUCivQmtCe0KDQmNCm0JAg0ILQntCg0ILQlQor0JrQntCg0JjQptCQINCC0KPQoNCeCivQmtCe0KDQmNCm0JAg0JTQo9Co0JDQnQor0JrQntCg0JjQptCQINCI0JDQndCa0J4KK9Ca0J7QoNCY0KbQkCDQnNCY0JvQntCg0JDQlAor0JrQntCg0JjQptCQINCd0JXQlNCV0InQmtCeCivQmtCe0KDQmNCm0JAg0J3QmNCa0J7Qm9CQCivQmtCe0KDQmNCm0JAg0J/QldCi0JDQoAor0JrQntCg0JjQptCQINCh0J3QldCW0JDQndCQCivQmtCe0KDQmNCm0JAg0KHQntCk0JjQiNCQCivQmtCe0KDQmNCm0JAg0KHQotCV0JLQkNCdCivQmtCe0KDQmNCh0KLQntCS0JjQiyDQnNCY0JrQodCQ0KDQlAor0JrQntCg0JvQkNCiINCf0JXQoNCY0KbQkAor0JrQntCg0JvQkNCiINCf0JXQotCQ0KAKK9Ca0J7QoNCc0JDQitCe0Kgg0KjQkNCd0JTQntCgCivQmtCe0KDQnNCQ0IrQntCoINCQ0J3QlNCg0JjQiNCQCivQmtCe0KDQnNCQ0IrQntCoINCR0J7QoNCa0JAKK9Ca0J7QoNCc0JDQitCe0Kgg0KTQldCg0JXQndCmCivQmtCe0KDQnNCQ0IrQntCoINCa0JDQoNCe0IkKK9Ca0J7QoNCc0JDQitCe0Kgg0JzQmNCl0JDQiQor0JrQntCg0JzQntCoINCI0JDQndCe0KgKK9Ca0J7QoNCc0J7QqCDQnNCQ0KDQk9CY0KLQkAor0JrQntCg0JzQntCoINCc0JDQoNCT0JjQotCQCivQmtCe0KDQnNCe0Kgg0JzQkNCg0JjQiNCQCivQmtCe0KDQnNCe0Kgg0KLQldCg0JXQl9CQCivQmtCe0KDQntCoINCg0JDQodCi0JjQodCb0JDQkgor0JrQntCg0J7QqCDQktCb0JDQlNCQCivQmtCe0KDQntCo0JDQnSDQqNCQ0J3QlNCe0KAKK9Ca0J7QoNCe0KjQldCmINCb0JXQngor0JrQntCg0J7QkdCa0J4g0KLQkNCg0JDQoQor0JrQntCg0J7QlNCYINCk0KDQkNCK0JAKK9Ca0J7QoNCe0JrQndCQ0Jgg0KTQldCg0JXQndCmCivQmtCe0KDQntCa0J3QkNCYINCI0JDQndCe0KgKK9Ca0J7QoNCe0JrQndCQ0Jgg0JfQntCb0KLQkNCdCivQmtCe0KDQntCb0JjQiNCQINCU0KPQqNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQmtCe0KDQntCb0JjQiNCQINCU0KPQqNCQ0J0KK9Ca0J7QoNCe0JvQmNCI0JAg0KHQotCV0JLQkNCdINCU0KAKK9Ca0J7QoNCe0JvQmNCI0JAg0JLQldCg0JAKK9Ca0J7QoNCe0Jwg0JXQoNCW0JXQkdCV0KIKK9Ca0J7QoNCe0Jwg0KLQmNCR0J7QoAor0JrQntCg0J7QnNCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QoNCe0JIg0ILQntCg0ILQlQor0JrQntCg0J7QktCJ0JXQkiDQmNCS0JDQnQor0JrQntCg0J7QktCJ0JXQkiDQiNCe0JLQkNCd0JrQkAor0JrQntCg0J7QktCJ0JXQkiDQnNCQ0KDQmNCI0JAKK9Ca0J7QoNCe0JLQidCV0JIg0JzQmNCb0JXQndCa0J4KK9Ca0J7QoNCe0JLQidCV0JIg0JzQmNCb0J7QqAor0JrQntCg0J7QktCJ0JXQkiDQoNCQ0JTQnNCY0JvQkAor0JrQntCg0J7QktCJ0JXQkiDQktCj0JrQmNCm0JAKK9Ca0J7QoNCf0JAg0JHQldCb0JAKK9Ca0J7QoNCf0JDQqCDQkNCc0JDQm9CY0IjQkAor0JrQntCg0J/QkNCoINCU0JDQndCY0KbQkAor0JrQntCg0J/QkNCoINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQntCg0J/QkNCoINCI0JDQndCa0J4KK9Ca0J7QoNCf0JDQqCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0KDQn9CQ0Kgg0JzQmNCg0J7QodCb0JDQkgor0JrQntCg0J/QkNCoINCf0JXQoNCQCivQmtCe0KDQn9CQ0Jog0JTQoNCQ0JPQmNCK0JAKK9Ca0J7QoNCf0JDQmiDQndCQ0JTQkAor0JrQntCg0J/QntCd0JDQmCDQmNCo0KLQktCQ0J0KK9Ca0J7QoNCf0J7QndCQ0Jgg0JzQkNCg0JjQiNCQCivQmtCe0KDQo9CT0JAg0JHQntCg0JAKK9Ca0J7QoNCj0JPQkCDQiNCj0JvQmtCQCivQmtCe0KDQo9CT0JAg0KDQkNCU0J7QnNCY0KAKK9Ca0J7QoNCj0J3QmNCLINCb0JjQl9CQCivQmtCe0KEg0JjQlNCQCivQmtCe0KEg0JzQkNCg0JjQiNCQCivQmtCe0KEg0KHQm9CQ0JLQmtCeCivQmtCe0KEg0KHQm9CQ0JLQmtCeCivQmtCe0KEg0KHQotCQ0J3QmtCeCivQmtCe0KHQkNCLINCU0JDQoNCY0J3QmtCQCivQmtCe0KHQkNCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCQ0J3QmNCLINCY0JLQkNCd0JrQkAor0JrQntCh0JDQndCY0Isg0KHQkNCS0JAKK9Ca0J7QodCQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KHQkNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Ca0J7QodCQ0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JrQntCh0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnSDQnNCgCivQmtCe0KHQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0KHQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0KHQkNCd0J7QktCY0Isg0JTQkNCd0JUKK9Ca0J7QodCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QodCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQntCh0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QodCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQkNCd0J7QktCY0Isg0JrQntCh0JDQndCQCivQmtCe0KHQkNCd0J7QktCY0Isg0JvQkNCX0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQmtCe0KHQkNCd0J7QktCY0Ist0JzQkNCd0JTQmNCLINCd0JXQndCQCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQkNCd0JUKK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQmNCL0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQntCh0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0KHQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQntCb0JPQkAor0JrQntCh0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQntCh0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JrQntCh0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JrQntCh0JDQndCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQmtCe0KHQkNCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQmtCe0KHQkNCg0JXQndCa0J4g0J/QldCi0JDQoAor0JrQntCh0JXQlNCd0JDQoCDQodCi0IjQldCf0JDQnQor0JrQntCh0JjQiyDQltCQ0KDQmtCeCivQmtCe0KHQmNCLINCW0JDQoNCa0J4KK9Ca0J7QodCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0J7QodCY0Isg0JHQmNCJ0JDQndCQCivQmtCe0KHQmNCLINCR0J7QiNCQ0J0KK9Ca0J7QodCY0Isg0JHQntCg0JrQngor0JrQntCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCY0Isg0JPQntCg0JDQnQor0JrQntCh0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQntCh0JjQiyDQmNCS0JDQnQor0JrQntCh0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QodCY0Isg0IjQntCS0JjQptCQCivQmtCe0KHQmNCLINCb0KPQmtCQCivQmtCe0KHQmNCLINCc0JDQoNCY0IjQkAor0JrQntCh0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQntCh0JjQiyDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JrQntCh0JjQiyDQndCV0JTQldCJ0JrQngor0JrQntCh0JjQiyDQoNCj0JbQkAor0JrQntCh0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCe0KHQmNCLINCi0J7QnNCQCivQmtCe0KHQmNCLINCX0J7QoNCY0KbQkAor0JrQntCh0JjQndCQINCc0JjQm9CY0KbQkAor0JrQntCh0JjQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQntCh0JjQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QodCY0KDQntCS0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Ca0J7QodCI0JXQoCDQlNCj0KjQkNCdCivQmtCe0KHQiNCV0KDQmNCd0JAg0JzQmNCb0JXQndCa0J4KK9Ca0J7QodCa0JAg0JDQotCc0JDQndCQCivQmtCe0KHQmtCQINCl0JDQotCY0I/QlQor0JrQntCh0JrQkCDQiNCQ0KHQnNCY0JTQmNCdCivQmtCe0KHQmtCQINCJ0JXQoNCa0JAKK9Ca0J7QodCa0JAg0JzQmNCb0JXQndCQCivQmtCe0KHQmtCQINCd0JDQlNCV0JbQlNCQCivQmtCe0KHQmtCQINCh0JDQpNCV0KIKK9Ca0J7QodCa0JAg0KHQkNCb0JgKK9Ca0J7QodCc0JDQiNCQ0KYg0ILQntCg0ILQlQor0JrQntCh0JzQkNCI0JDQpiDQkNCd0JjQptCQCivQmtCe0KHQniDQkdCe0KHQmNCJ0JrQkAor0JrQntCh0J4g0KTQoNCQ0IrQngor0JrQntCh0J4g0JzQmNCl0JDQiQor0JrQntCh0J4g0J7Qm9CY0JLQldCg0JAKK9Ca0J7QodCeINCf0JDQmwor0JrQntCh0J7QoNCj0Kgg0ILQo9Cg0JAKK9Ca0J7QodCe0KDQo9CoINCV0KLQldCb0JrQkAor0JrQntCh0J7QoNCj0Kgg0J/QldCi0JXQoAor0JrQntCh0J7QktCQ0KYg0KfQldCU0JAKK9Ca0J7QodCe0JLQkNCmINCW0JjQktCa0J4KK9Ca0J7QodCe0JLQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ca0J7QodCe0JLQkNCmINCR0J7QiNCQ0J0KK9Ca0J7QodCe0JLQkNCmINCR0J7QiNCQ0J0KK9Ca0J7QodCe0JLQkNCmINCU0JDQoNCa0J4KK9Ca0J7QodCe0JLQkNCmINCU0KDQkNCT0JDQnQor0JrQntCh0J7QktCQ0KYg0JTQo9Co0JDQnQor0JrQntCh0J7QktCQ0KYg0JPQldCe0KDQk9CY0IjQlQor0JrQntCh0J7QktCQ0KYg0JPQntCI0JrQngor0JrQntCh0J7QktCQ0KYg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQntCh0J7QktCQ0KYg0JzQmNCb0JDQnQor0JrQntCh0J7QktCQ0KYg0JzQmNCb0JDQnQor0JrQntCh0J7QktCQ0KYg0JzQmNCg0JrQngor0JrQntCh0J7QktCQ0KYg0J3QmNCa0J7Qm9CQCivQmtCe0KHQntCS0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JrQntCh0J7QktCQ0KYg0JfQlNCg0JDQktCa0J4KK9Ca0J7QodCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQmtCe0KHQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Ca0J7QodCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0KHQntCS0JjQiyDQntCb0JPQkCDQn9Cg0J7QpNCV0KHQntCgCivQmtCe0KHQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQmtCe0KHQntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCe0KHQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0J7QodCe0JLQoNCQ0KHQotCYINCQ0I/QmAor0JrQntCh0KLQkNCU0JjQndCe0KHQmtCYINCR0JvQkNCT0J7QiNCVCivQmtCe0KHQotCQ0JTQmNCd0J7QkiDQoNCY0KHQotCQCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCh0KLQkNCU0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQntCh0KLQkNCU0JjQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0JLQldCg0JAKK9Ca0J7QodCi0JDQlNCY0J3QntCS0JjQiyDQktCV0KDQmNCm0JAKK9Ca0J7QodCi0JDQlNCY0J3QntCS0JjQiyDQktCj0JrQkNCdCivQmtCe0KHQotCQ0JTQmNCd0J7QktCh0JrQmCDQlNCY0JzQp9CVCivQmtCe0KHQotCV0JvQndCY0Jog0J3QldCh0KLQntCgCivQmtCe0KHQotCV0JvQndCY0Jog0KHQmNCb0JLQldCh0KLQldCgCivQmtCe0KHQotCV0JLQodCa0Jgg0JjQktCQ0J0KK9Ca0J7QodCi0JjQiy3QqNCe0JHQntCiINCc0JjQm9Ca0JAKK9Ca0J7QodCi0JjQiyDQltCQ0KDQmtCeCivQmtCe0KHQotCY0Isg0JbQldCJ0JrQngor0JrQntCh0KLQmNCLINCW0JjQktCe0IjQmNCdCivQmtCe0KHQotCY0Isg0ILQntCg0ILQlQor0JrQntCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QodCi0JjQiyDQgtCe0KDQgtCVCivQmtCe0KHQotCY0Isg0ILQntCg0ILQlQor0JrQntCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QodCi0JjQiyDQgtCj0KDQgtCY0KbQkAor0JrQntCh0KLQmNCLINCQ0KbQkAor0JrQntCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCe0KHQotCY0Isg0JDQndCQCivQmtCe0KHQotCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JrQntCh0KLQmNCLINCQ0J3QmtCY0KbQkAor0JrQntCh0KLQmNCLINCR0J7QltCY0JTQkNCgCivQmtCe0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0J7QodCi0JjQiyDQkdCe0JPQntCJ0KPQkQor0JrQntCh0KLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ca0J7QodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J7QodCi0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0J7QodCi0JjQiyDQlNCV0IjQkNCdCivQmtCe0KHQotCY0Isg0JTQldCh0JDQndCa0JAKK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CQCivQmtCe0KHQotCY0Isg0JTQoNCQ0JPQkAor0JrQntCh0KLQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0KHQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCh0KLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J7QodCi0JjQiyDQlNCj0KjQkNCdCivQmtCe0KHQotCY0Isg0JTQo9Co0JDQnQor0JrQntCh0KLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QodCi0JjQiyDQldCb0JXQntCd0J7QoNCQCivQmtCe0KHQotCY0Isg0JPQldCe0KDQk9CY0J3QkAor0JrQntCh0KLQmNCLINCT0JvQmNCo0JAKK9Ca0J7QodCi0JjQiyDQk9Ce0JvQo9CRCivQmtCe0KHQotCY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0J7QodCi0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQmtCe0KHQotCY0Isg0JjQktCQ0J0KK9Ca0J7QodCi0JjQiyDQmNCS0JDQnQor0JrQntCh0KLQmNCLINCI0JXQm9CV0J3QkAor0JrQntCh0KLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCh0KLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCh0KLQmNCLINCI0J7QoNCU0JDQndCa0JAKK9Ca0J7QodCi0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQotCY0Isg0IjQntCS0JDQnQor0JrQntCh0KLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QodCi0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQotCY0Isg0IjQntCS0JDQnQor0JrQntCh0KLQmNCLINCa0KDQodCc0JDQnQor0JrQntCh0KLQmNCLINCa0KDQodCi0JAKK9Ca0J7QodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7QodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCo0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCi0JjQiyDQnNCQ0JrQodCY0JwKK9Ca0J7QodCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7QodCi0JjQiyDQnNCQ0KDQmtCeCivQmtCe0KHQotCY0Isg0JzQldCi0J7QlNCY0IjQlQor0JrQntCh0KLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0KHQotCY0Isg0JzQmNCb0JDQnQor0JrQntCh0KLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QodCi0JjQiyDQnNCY0JvQldCd0JAg0JTQoAor0JrQntCh0KLQmNCLINCc0JjQm9CV0J3QkAor0JrQntCh0KLQmNCLINCc0JjQm9CV0JLQkAor0JrQntCh0KLQmNCLINCc0JjQm9CY0KbQkAor0JrQntCh0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0KHQotCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0J7QodCi0JjQiyDQnNCY0JvQo9Co0JAKK9Ca0J7QodCi0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCh0KLQmNCLINCc0JjQoNCa0J4KK9Ca0J7QodCi0JjQiyDQnNCe0IjQodCVCivQmtCe0KHQotCY0Isg0J3QkNCU0JAKK9Ca0J7QodCi0JjQiyDQndCQ0JTQkAor0JrQntCh0KLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCh0KLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCh0KLQmNCLINCe0JvQmNCS0JXQoNCQCivQmtCe0KHQotCY0Isg0J/QkNCS0JvQlQor0JrQntCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCi0JjQiyDQn9CV0KLQkNCgCivQmtCe0KHQotCY0Isg0J/QldCi0JDQoAor0JrQntCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCi0JjQiyDQn9CV0KLQkNCgCivQmtCe0KHQotCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JrQntCh0KLQmNCLINCg0JDQlNCe0IjQmtCeCivQmtCe0KHQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ca0J7QodCi0JjQiyDQoNCQ0JTQntCh0JDQkgor0JrQntCh0KLQmNCLINCg0JDQotCa0J4KK9Ca0J7QodCi0JjQiyDQoNCj0JbQmNCm0JAKK9Ca0J7QodCi0JjQiyDQodCQ0JLQkAor0JrQntCh0KLQmNCLINCh0JDQktCQCivQmtCe0KHQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0J7QodCi0JjQiyDQodCb0JDQktCa0JAKK9Ca0J7QodCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0KHQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCh0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QodCi0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQntCh0KLQmNCLINCh0J/QkNCh0JXQndCa0J4KK9Ca0J7QodCi0JjQiyDQodCg0JXQotCV0J0KK9Ca0J7QodCi0JjQiyDQodCi0JDQndCQCivQmtCe0KHQotCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JrQntCh0KLQmNCLINCh0KLQkNCd0JrQngor0JrQntCh0KLQmNCLINCh0KLQkNCX0JAKK9Ca0J7QodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7QodCi0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQmtCe0KHQotCY0Isg0KHQotCg0JDQpdCY0IrQkCDQlNCgINCf0KDQntCkCivQmtCe0KHQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0KAKK9Ca0J7QodCi0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCe0KHQotCY0Isg0KLQmNCR0JXQoNCY0IjQlQor0JrQntCh0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0KHQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCS0JDQodCeCivQmtCe0KHQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QodCi0JjQiyDQktCV0KDQkAor0JrQntCh0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQmtCe0KHQotCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0KHQotCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQmtCe0KHQotCY0Isg0JLQntCI0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCS0KPQmtCQ0KjQmNCdCivQmtCe0KHQotCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0J7QodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCe0KHQotCY0Isg0JfQntCg0JDQnQor0JrQntCh0KLQmNCLINCX0J7QoNCQ0J0KK9Ca0J7QodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCe0KHQotCY0Isg0JfQntCg0JDQnQor0JrQntCh0KLQmNCLINCX0J7QoNCY0KbQkAor0JrQntCh0KLQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QodCi0J7QktCY0Isg0KDQkNCi0JrQngor0JrQntCh0KLQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQntCh0KLQntCS0KHQmtCYINCa0JDQotCY0KbQkAor0JrQntCh0KLQntCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QodCi0J7QktCh0JrQmCDQotCg0JDQiNCn0JUKK9Ca0J7QodCi0KDQldCoINCc0J7QnNCn0JjQm9CeCivQmtCe0KHQotCg0JXQqNCV0JLQmNCLINCT0J7QoNCQ0J0KK9Ca0J7QodCi0KDQldCo0JXQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ca0J7QodCi0KDQldCo0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0J7QodCi0KDQldCo0JXQktCY0Isg0KHQotCQ0J3QmtCQCivQmtCe0KHQotCg0JjQp9CV0J3QmtCeINCS0JDQodCY0JvQmNCI0JUKK9Ca0J7QodCi0KPQlNCY0IjQkCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0KIg0JjQm9Ce0J3QkAor0JrQntCiINCI0J7QodCY0J8KK9Ca0J7QoiDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0KIg0JvQkNCh0JvQngor0JrQntCiINCc0JDQoNCi0JAKK9Ca0J7QoiDQnNCY0KDQkAor0JrQntCiINCc0JjQoNCa0J4KK9Ca0J7QotCQINCV0KDQltCV0JHQldCiCivQmtCe0KLQkCDQm9CQ0IjQntCoCivQmtCe0KLQkCDQnNCY0KXQkNCI0JvQngor0JrQntCi0JDQoNCn0JXQktCY0Isg0JXQm9CS0JjQoNCQCivQmtCe0KLQkNCg0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QotCQ0KDQkNCmINCa0JDQotCY0KbQkAor0JrQntCi0JDQoNCQ0KYg0JrQntCh0KLQkAor0JrQntCi0JDQoNCQ0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCe0KLQkNCg0JDQndCY0J0g0InQmNCJ0JDQndCQCivQmtCe0KLQkNCg0JDQndCY0J0g0J/QldCi0JDQoAor0JrQntCi0JDQoNCb0JjQiyDQlNCQ0KDQmtCeCivQmtCe0KLQkNCg0JvQmNCLINCU0KDQkNCT0JDQndCQCivQmtCe0KLQkNCg0JvQmNCLINCh0JDQktCQCivQmtCe0KLQpdCQ0Jgg0JjQqNCi0JLQkNCdCivQmtCe0KLQpdCQ0Jgg0IjQntCW0JXQpAor0JrQntCi0KXQkNCYINCh0KLQldCS0JDQnQor0JrQntCi0KXQkNCIINCh0KLQldCS0JDQnQor0JrQntCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCe0KLQm9CQ0IjQkCDQnNCY0JvQkNCd0JrQngor0JrQntCi0JvQkNCI0JAg0JzQmNCb0JrQngor0JrQntCi0JvQkNCg0JjQiyDQnNCQ0KDQmtCeINCU0KAKK9Ca0J7QotCb0JDQoNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JrQntCi0KDQkdCQINCk0KDQkNCK0JAKK9Ca0J7QotCg0JUg0JzQkNCT0JTQntCb0J3QkAor0JrQntCi0KPQqCDQldCg0JbQldCR0JXQogor0JrQntCi0KPQqCDQnNCY0JvQmNCm0JAKK9Ca0J7QotCj0Kgg0JzQmNCg0J7QodCb0JDQkgor0JrQntCi0KPQqCDQodCi0JXQktCQ0J0KK9Ca0J7QotCj0Isg0JzQkNCg0JjQiNCV0KLQkAor0JrQntCi0KPQoCDQkNCd0ILQldCb0JrQkAor0JrQntCi0KPQoCDQlNCg0JDQk9CQ0J0KK9Ca0J7QotCj0KAg0IjQldCb0JAKK9Ca0J7QotCj0KAg0KDQkNCU0JUKK9Ca0J7QotCj0KDQntCSINCd0JDQlNCQCivQmtCe0KLQo9Cg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCe0KPQndCY0KEg0InQmNCJ0JDQndCQCivQmtCe0JLQp9CVINCQ0JzQkNCb0JjQiNCQCivQmtCe0JLQp9CV0JIg0KHQn9CQ0KHQldCd0JrQkAor0JrQntCS0KfQmNCdINCc0JjQm9CY0KbQkAor0JrQntCS0KfQmNCdINCc0JjQm9Ce0JLQkNCdCivQmtCe0JLQp9CY0J0g0JzQmNCg0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCn0JjQnSDQndCV0JPQkAor0JrQntCS0KfQmNCdINCh0KLQkNCd0JjQnNCY0KAg0JTQoAor0JrQntCS0JDQpyDQp9CV0JTQngor0JrQntCS0JDQpyDQqNCQ0J3QlNCe0KAKK9Ca0J7QktCQ0Kcg0KjQkNCd0JTQntCgCivQmtCe0JLQkNCnINCC0J7QoNCC0JUKK9Ca0J7QktCQ0Kcg0ILQntCg0ILQlQor0JrQntCS0JDQpyDQgtCj0JvQkAor0JrQntCS0JDQpyDQgtCj0KDQgtCQCivQmtCe0JLQkNCnLdCQ0Kcg0JrQkNCg0J7QiQor0JrQntCS0JDQpyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0JDQpyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0JDQpyDQkNCd0JAKK9Ca0J7QktCQ0Kcg0JDQndCQCivQmtCe0JLQkNCnINCQ0J3QlNCg0JDQqAor0JrQntCS0JDQpyDQkNCd0KLQkNCbCivQmtCe0JLQkNCnINCQ0J3QotCe0J0KK9Ca0J7QktCQ0Kcg0JDQoNCf0JDQlAor0JrQntCS0JDQpyDQkNCi0JjQm9CQCivQmtCe0JLQkNCnINCR0JXQm9CQCivQmtCe0JLQkNCnINCR0JXQm9CQCivQmtCe0JLQkNCnLdCR0JjQoNCa0JDQqCDQnNCY0KXQkNCJCivQmtCe0JLQkNCnINCR0J7QoNCY0KEKK9Ca0J7QktCQ0Kcg0JTQldCW0JUKK9Ca0J7QktCQ0Kcg0JTQldCh0JDQndCa0JAKK9Ca0J7QktCQ0Kcg0JTQoNCQ0JPQmNCm0JAg0JzQoAor0JrQntCS0JDQpyDQlNCj0KjQkNCdCivQmtCe0JLQkNCnINCV0KLQldCb0JrQkAor0JrQntCS0JDQpyDQldCi0JXQm9Ca0JAKK9Ca0J7QktCQ0Kcg0KTQldCg0JXQndCmCivQmtCe0JLQkNCnINCk0JXQoNCV0J3Qpgor0JrQntCS0JDQpyDQpNCg0JDQitCQCivQmtCe0JLQkNCnINCk0KDQkNCK0JAKK9Ca0J7QktCQ0Kcg0JPQkNCR0J7QoAor0JrQntCS0JDQpyDQk9CY0JfQldCb0JAKK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQm9Ce0J3QkAor0JrQntCS0JDQpyDQmNCc0KDQlQor0JrQntCS0JDQpyDQmNCc0KDQlQor0JrQntCS0JDQpyDQmNCc0KDQlQor0JrQntCS0JDQpyDQmNCg0JXQndCQCivQmtCe0JLQkNCnINCY0KDQldCd0JAKK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0IjQkNCa0J7QkQor0JrQntCS0JDQpyDQiNCQ0J3QmtCeCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCd0J7QqAor0JrQntCS0JDQpyDQiNCQ0J3QntCoCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCd0J7QqAor0JrQntCS0JDQpyDQiNCQ0J3QntCoCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCdCivQmtCe0JLQkNCnINCI0JDQnQor0JrQntCS0JDQpyDQiNCV0JvQmNCm0JAKK9Ca0J7QktCQ0Kcg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ca0J7QktCQ0Kcg0IjQntCW0JXQpAor0JrQntCS0JDQpyDQiNCe0JbQldCkCivQmtCe0JLQkNCnINCI0J7QodCY0J8KK9Ca0J7QktCQ0Kcg0IjQntCh0JjQnwor0JrQntCS0JDQpyDQiNCe0KHQmNCfCivQmtCe0JLQkNCnINCI0J7QodCY0J8KK9Ca0J7QktCQ0Kcg0IjQntCS0JDQnQor0JrQntCS0JDQpyDQiNCe0JLQkNCdCivQmtCe0JLQkNCnINCI0J7QktCQ0J0KK9Ca0J7QktCQ0Kcg0IjQo9Cb0JjQkNCd0JAKK9Ca0J7QktCQ0Kcg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQntCS0JDQpyDQmtCQ0KDQm9CeCivQmtCe0JLQkNCnINCa0JDQoNCb0J4KK9Ca0J7QktCQ0Kcg0JrQkNCg0J7QiQor0JrQntCS0JDQpyDQmtCQ0KDQntCJCivQmtCe0JLQkNCnINCa0JDQoNCe0IkKK9Ca0J7QktCQ0Kcg0JrQkNCg0J7Qm9CICivQmtCe0JLQkNCnINCa0JDQotCQ0JvQmNCdCivQmtCe0JLQkNCnINCa0JDQotCQ0KDQmNCd0JAKK9Ca0J7QktCQ0Kcg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCnINCa0JDQotCY0KbQkAor0JrQntCS0JDQpyDQmtCQ0KLQmNCm0JAKK9Ca0J7QktCQ0Kcg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCnINCa0JDQotCY0KbQkAor0JrQntCS0JDQpyDQmtCe0JLQmNCJ0JrQkAor0JrQntCS0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0JvQkNCU0JjQodCb0JDQkgor0JrQntCS0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0JvQkNCI0J7QqAor0JrQntCS0JDQpyDQm9CQ0IjQntCoCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQm9CQ0KHQm9CeCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQm9CQ0KHQm9CeCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQidCj0JHQkNCdCivQmtCe0JLQkNCnINCJ0KPQlNCV0JLQmNCiCivQmtCe0JLQkNCnINCc0JDQiNCQCivQmtCe0JLQkNCnINCc0JDQoNCT0JjQotCQCivQmtCe0JLQkNCnINCc0JDQoNCY0IjQkAor0JrQntCS0JDQpyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0Kcg0JzQkNCg0JjQiNCQCivQmtCe0JLQkNCnINCc0JDQoNCY0IjQkAor0JrQntCS0JDQpyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0Kcg0JzQkNCg0KLQmNCdCivQmtCe0JLQkNCnINCc0JDQotCY0IjQkAor0JrQntCS0JDQpyDQnNCY0KXQkNCI0JvQngor0JrQntCS0JDQpyDQnNCY0KXQkNCI0JvQngor0JrQntCS0JDQpyDQnNCY0KXQkNCJCivQmtCe0JLQkNCnINCc0JjQpdCQ0IkKK9Ca0J7QktCQ0Kcg0JzQmNCa0JvQntCoCivQmtCe0JLQkNCnINCc0JjQmtCb0J7QqAor0JrQntCS0JDQpyDQnNCY0JvQkNCU0JjQnQor0JrQntCS0JDQpyDQnNCY0JvQkNCdCivQmtCe0JLQkNCnINCc0JjQm9CV0J3QkAor0JrQntCS0JDQpyDQnNCY0JvQntCoCivQmtCe0JLQkNCnINCc0JjQm9Ce0KDQkNCUCivQmtCe0JLQkNCnINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCnINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCnINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCnINCc0JjQoNCa0J4KK9Ca0J7QktCQ0Kcg0JzQmNCg0J7QnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCQ0Kcg0JzQmNCg0J7QodCb0JDQkgor0JrQntCS0JDQpyDQndCQ0KLQkNCb0JjQiNCQCivQmtCe0JLQkNCnINCd0JjQmtCe0JvQkAor0JrQntCS0JDQpyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0Kcg0J7Qm9CT0JjQptCQCivQmtCe0JLQkNCnINCe0JvQk9CY0KbQkAor0JrQntCS0JDQpyDQntCi0J4KK9Ca0J7QktCQ0Kcg0J/QkNCS0JXQmwor0JrQntCS0JDQpyDQn9CV0KLQkNCgCivQmtCe0JLQkNCnINCg0JjQodCi0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCnINCg0J7QltCYCivQmtCe0JLQkNCnINCg0J7QltCYCivQmtCe0JLQkNCnINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0J7QktCQ0Kcg0KDQntCX0JDQm9CY0IjQkAor0JrQntCS0JDQpyDQoNCj0JbQmNCm0JAKK9Ca0J7QktCQ0Kcg0KHQmNCb0JLQldCh0KLQldCgCivQmtCe0JLQkNCnINCh0JzQmNCJ0JAKK9Ca0J7QktCQ0Kcg0KHQotCQ0J3QntCI0JrQkAor0JrQntCS0JDQpyDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0Kcg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCnINCh0KLQldCS0JDQnQor0JrQntCS0JDQpyDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0Kcg0KHQotCI0JXQn9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCnINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QktCQ0Kcg0KLQldCe0JTQntCgINCU0KAg0J/QoNCe0KQKK9Ca0J7QktCQ0Kcg0KLQldCe0JTQntCgINCU0KAKK9Ca0J7QktCQ0Kcg0KLQmNCR0J7QoAor0JrQntCS0JDQpyDQotCY0JHQntCgCivQmtCe0JLQkNCnLdCi0JjQpdCc0JDQiNCV0KAg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCnINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0KLQoNCf0JjQnNCY0KAKK9Ca0J7QktCQ0Kcg0JLQkNCb0JXQoNCY0IjQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQmNCm0JAKK9Ca0J7QktCQ0Kcg0JLQldCg0J7QndCQCivQmtCe0JLQkNCnINCS0JXQoNCe0J3QkAor0JrQntCS0JDQpyDQktCY0JTQkAor0JrQntCS0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0JLQkNCnINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCQ0Kcg0JfQntCg0JAKK9Ca0J7QktCQ0Kcg0JfQktCe0J3QmNCc0JjQoAor0JrQntCS0JDQp9CV0Jog0JHQntCW0JjQlNCQ0KAg0JTQoAor0JrQntCS0JDQp9CV0Jog0JTQkNCd0JjQptCQCivQmtCe0JLQkNCn0JXQmiDQiNCV0JvQldCd0JAKK9Ca0J7QktCQ0KfQldCSINCC0J7QoNCC0JUKK9Ca0J7QktCQ0KfQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JLQkNCn0JXQkiDQkdCg0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCSINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JIg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQkiDQlNCQ0J3Qp9CVCivQmtCe0JLQkNCn0JXQkiDQlNCQ0J3QmNCb0JrQkAor0JrQntCS0JDQp9CV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0JLQkNCn0JXQkiDQlNCg0JDQk9CY0KjQkAor0JrQntCS0JDQp9CV0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCe0JLQkNCn0JXQkiDQlNCg0JDQk9Cj0KLQmNCdCivQmtCe0JLQkNCn0JXQkiDQlNCg0JDQk9Cj0KLQmNCdCivQmtCe0JLQkNCn0JXQkiDQlNCj0KjQkNCd0JrQkAor0JrQntCS0JDQp9CV0JIg0JPQntCg0JDQnQor0JrQntCS0JDQp9CV0JIg0JPQntCg0JTQkNCd0JAKK9Ca0J7QktCQ0KfQldCSINCT0J7QoNCU0JDQndCQCivQmtCe0JLQkNCn0JXQkiDQmNCb0JjQiNCQCivQmtCe0JLQkNCn0JXQkiDQmNCS0JjQptCQCivQmtCe0JLQkNCn0JXQkiDQiNCV0JvQkAor0JrQntCS0JDQp9CV0JIg0IjQldCb0JXQndCQCivQmtCe0JLQkNCn0JXQkiDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JXQkiDQiNCj0JvQmNCI0JDQndCQCivQmtCe0JLQkNCn0JXQkiDQiNCj0JvQmtCQCivQmtCe0JLQkNCn0JXQkiDQm9CQ0JfQkNCgCivQmtCe0JLQkNCn0JXQkiDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0KfQldCSINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCSINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCSINCc0JjQm9CV0J3QkAor0JrQntCS0JDQp9CV0JIg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQkiDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQkiDQnNCY0JvQntCg0JDQlCDQlNCgINCb0JXQmtCQ0KAKK9Ca0J7QktCQ0KfQldCSINCc0JjQm9Cj0KLQmNCdCivQmtCe0JLQkNCn0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JrQntCS0JDQp9CV0JIg0JzQm9CQ0JTQldCdCivQmtCe0JLQkNCn0JXQkiDQndCV0JTQldCJ0JrQngor0JrQntCS0JDQp9CV0JIg0J3QldCc0JDQitCQCivQmtCe0JLQkNCn0JXQkiDQn9CV0KLQkNCgCivQmtCe0JLQkNCn0JXQkiDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0KfQldCSINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JIg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCSINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QktCQ0KfQldCSINCi0JXQntCU0J7QoCDQlNCgCivQmtCe0JLQkNCn0JXQkiDQotCV0J7QlNCe0KAg0JTQoAor0JrQntCS0JDQp9CV0JIg0JLQldCg0JAKK9Ca0J7QktCQ0KfQldCSINCS0JXQoNCQCivQmtCe0JLQkNCn0JXQkiDQktCV0KHQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KfQldCU0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQltCV0JvQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCW0JXQidCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQltCY0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JbQmNCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQntCg0ILQlQor0JrQntCS0JDQp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQntCg0ILQlQor0JrQntCS0JDQp9CV0JLQmNCLINCC0KPQoNCC0JjQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQo9Cg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkNCT0J3QldCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQndCV0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0J3QmtCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0KDQodCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCo0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0JLQntCICivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQkNCS0J7QoNCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlSDQlNCY0J/QmyDQntCV0KYKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JXQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KTQoNCQ0IrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCT0JDQktCg0JjQm9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQmtCe0JLQkNCn0JXQktCY0Isg0JPQntCI0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCY0KjQotCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCY0JPQitCQ0KIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmNCh0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmNCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCI0JDQk9Ce0KgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCI0J7QoNCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQkNCi0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCQ0KLQmNCm0JAg0JTQoAor0JrQntCS0JDQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0JvQkNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCe0KfQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0J7QiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQntCh0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0J7QodCi0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0KDQodCi0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCg0KHQotCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCb0JDQl9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0InQmNCJ0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0InQmNCJ0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQidCj0JHQngor0JrQntCS0JDQp9CV0JLQmNCLINCc0JDQoNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQkNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQkNCg0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CV0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CV0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CVCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQmNCS0J7QiCDQlNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCJ0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ca0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QqAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QqAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQotCQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLLdCc0JvQkNCU0JXQndCe0JLQmNCLINCe0JvQk9CQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0JLQkNCn0JXQktCY0Isg0J3QkNCU0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JXQlNCV0InQmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQntCb0JPQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQntCX0KDQldCdCivQmtCe0JLQkNCn0JXQktCY0Isg0J/QkNCS0JvQlQor0JrQntCS0JDQp9CV0JLQmNCLINCf0JDQktCb0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JXQndCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQlQor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCICivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCe0IjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0J7QnNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0IjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCI0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQndCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCV0InQkAor0JrQntCS0JDQp9CV0JLQmNCLINCg0KPQltCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCg0KPQltCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JDQktCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCQ0JLQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JXQmtCj0JvQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JjQnNCV0J7QnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQkNCC0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCg0JHQmNCI0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCg0JXQotCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQoNCV0KLQldCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCQ0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQkNCd0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCi0JXQktCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0J7Qm9CY0JoKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQotCV0KDQldCX0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQotCe0JTQntCgCivQmtCe0JLQkNCn0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCS0JDQodCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JXQoNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQldCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCV0KDQkAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCY0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQntCI0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCS0J7QiNCY0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JrQntCS0JDQp9CV0JLQmNCLINCS0KPQiNCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCX0JTQldCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JfQntCg0JDQnSDQlNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JfQntCg0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9CS0J7QndCY0JzQmNCg0JrQkAor0JrQntCS0JDQp9CY0Isg0JbQmNCS0JrQngor0JrQntCS0JDQp9CY0Isg0JDQndCY0KbQkAor0JrQntCS0JDQp9CY0Isg0JHQntCW0JDQndCQCivQmtCe0JLQkNCn0JjQiyDQkdCe0KDQmNCS0J7QiAor0JrQntCS0JDQp9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ca0J7QktCQ0KfQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCe0JLQkNCn0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JjQiyDQidCV0J/QntCh0JDQktCQCivQmtCe0JLQkNCn0JjQiyDQm9Cj0JrQkAor0JrQntCS0JDQp9CY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QktCQ0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCd0JXQlNCV0InQmtCeCivQmtCe0JLQkNCn0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQmNCLINCf0JXQotCQ0KAKK9Ca0J7QktCQ0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JrQntCS0JDQp9CY0Isg0KLQkNCd0JDQodCY0IjQlQor0JrQntCS0JDQp9CY0Isg0KLQntCo0JAKK9Ca0J7QktCQ0KfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCS0JXQodCd0JAKK9Ca0J7QktCQ0KfQmNCaINCc0JDQoNCT0JjQotCQCivQmtCe0JLQkNCn0JjQmiDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0JvQp9CY0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCb0J7QktCh0JrQmCDQotCV0J7QlNCe0KAKK9Ca0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0JLQkNCgINCI0JDQitCQCivQmtCe0JLQkNCg0KfQmNCaINCQ0J3QlNCg0JjQiNCQCivQmtCe0JLQkNCg0KfQmNCaINCc0JDQoNCY0IjQkAor0JrQntCS0JDQoNCY0Jog0JLQkNCb0JXQoNCY0IjQkAor0JrQntCS0JXQmNCd0JTQmyDQiNCe0KHQmNCfCivQmtCe0JLQldCJINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QktCY0Isg0J3QkNCU0JAKK9Ca0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JjQiNCQ0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCY0J3Qp9CY0Isg0JHQntCI0JDQnQor0JrQntCS0JjQndCn0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQmNCd0KfQmNCLINCd0JDQlNCQCivQmtCe0JLQmNCd0KfQmNCLINCd0JDQotCQ0KjQkAor0JrQntCS0JjQndCn0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JrQntCS0JjQndCn0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0J7QktCI0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QktCI0JDQndCY0Isg0IjQntCS0JDQnQor0JrQntCS0IjQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQntCS0IjQkNCd0JjQiyDQndCQ0JTQkAor0JrQntCS0IjQkNCd0JjQiyDQndCV0J3QkNCUCivQmtCe0JLQiNCQ0J3QmNCLINCf0JXQoNCQCivQmtCe0JLQiNCQ0J3QmNCLINCh0JDQktCQCivQmtCe0JLQidCQ0J0g0ILQntCg0ILQlQor0JrQntCS0InQkNCdINCh0JDQktCeCivQmtCe0JLQoNCb0JjQiNCQINCI0J7QktCQ0J0KK9Ca0J7Ql9CQ0Jog0JzQkNCg0JjQiNCQCivQmtCe0JfQkNCa0JjQkiDQmNCS0JDQnQor0JrQntCX0JDQoCDQoNCQ0JTQlQor0JrQntCX0JDQoNCn0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQntCX0JDQoNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JfQkNCg0KfQmNCLINCI0J7QktCQ0J0KK9Ca0J7Ql9CQ0KDQp9CY0Isg0JzQkNCg0JrQngor0JrQntCX0JDQoNCn0JjQiyDQnNCY0JvQkNCdCivQmtCe0JfQkNCg0JDQpiDQnNCY0IvQngor0JrQntCX0JDQoNCV0JIg0JbQkNCg0JrQngor0JrQntCX0JDQoNCV0JIg0JbQmNCS0JrQngor0JrQntCX0JDQoNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J7Ql9CQ0KDQldCSINCR0J7Qk9Ce0InQo9CRCivQmtCe0JfQkNCg0JXQkiDQlNCQ0KDQmNCd0JrQkAor0JrQntCX0JDQoNCV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0JfQkNCg0JXQkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7Ql9CQ0KDQldCSINCU0KDQkNCT0JjQptCQCivQmtCe0JfQkNCg0JXQkiDQk9Ce0KHQn9CQ0JLQkAor0JrQntCX0JDQoNCV0JIg0JvQkNCX0JDQoAor0JrQntCX0JDQoNCV0JIg0InQo9CR0JjQptCQCivQmtCe0JfQkNCg0JXQkiDQnNCQ0KDQmNCI0JAKK9Ca0J7Ql9CQ0KDQldCSINCc0JjQm9CQ0J0KK9Ca0J7Ql9CQ0KDQldCSINCc0JjQm9Ca0JAKK9Ca0J7Ql9CQ0KDQldCSINCc0JvQkNCU0JXQnQor0JrQntCX0JDQoNCV0JIg0J3QldCU0JXQidCa0J4KK9Ca0J7Ql9CQ0KDQldCSINCf0JDQktCb0JUKK9Ca0J7Ql9CQ0KDQldCSINCf0JXQotCQ0KAKK9Ca0J7Ql9CQ0KDQldCSINCh0JDQktCQCivQmtCe0JfQkNCg0JXQkiDQodCQ0JLQkAor0JrQntCX0JDQoNCV0JIg0KLQntCU0J7QoAor0JrQntCX0JDQoNCV0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQmtCe0JfQkNCg0JXQktCY0Isg0JfQntCg0JDQnQor0JrQntCX0JDQoNCe0JIg0ILQntCg0ILQlQor0JrQntCX0JDQoNCe0JIg0JDQndCY0KbQkAor0JrQntCX0JDQoNCe0JIg0JPQkNCS0KDQkAor0JrQntCX0JDQoNCe0JIg0JjQktCQ0J0KK9Ca0J7Ql9CQ0KDQntCSINCI0J7QktCQ0J3QmtCQCivQmtCe0JfQkNCg0J7QkiDQmtCQ0KLQmNCm0JAKK9Ca0J7Ql9CQ0KDQntCSINCc0JjQm9Ce0KgKK9Ca0J7Ql9CQ0KDQntCSINCd0JDQotCQ0JvQmNCI0JAKK9Ca0J7Ql9CQ0KDQntCSINCf0JDQktCb0JUKK9Ca0J7Ql9CQ0KDQntCSINCf0JDQktCb0JUKK9Ca0J7Ql9CQ0KDQntCSINCh0KDQkdCY0KHQm9CQ0JIKK9Ca0J7Ql9CQ0KDQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7Ql9CQ0KDQodCa0Jgg0JbQmNCS0JDQnQor0JrQntCX0JDQoNCh0JrQmCDQltCY0JLQmtCeCivQmtCe0JfQkNCg0KHQmtCYINCb0JjQlNCY0IjQkAor0JrQntCX0JDQoNCh0JrQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7Ql9CQ0KDQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JrQntCX0JDQoNCh0JrQmC3QoNCQ0IjQmNCLINCS0JXQoNCY0KbQkAor0JrQntCX0JDQoNCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JfQkNCg0KHQmtCYINCh0J7QpNCY0IjQkAor0JrQntCX0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0J7Ql9CQ0KDQodCa0Jgg0KLQldCe0JTQntCg0JAKK9Ca0J7Ql9CQ0KDQodCa0Jgg0JLQkNCh0JjQm9CY0IjQlQor0JrQntCX0JDQoNCh0JrQmCDQktCV0KDQkAor0JrQntCX0JDQoNCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQmtCe0JfQkNCg0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0J7Ql9CR0JDQqNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JfQmNCLINCR0J7Qk9CU0JDQnQor0JrQntCX0JjQiyDQn9CV0KLQkNCgCivQmtCe0JfQmNCLINCg0JDQotCa0J4KK9Ca0J7Ql9CY0Isg0KDQntCW0JAKK9Ca0J7Ql9CY0Isg0KHQkNCS0JAKK9Ca0J7Ql9CY0Isg0KHQotCQ0J3QmtCeCivQmtCe0JfQmNCLINCS0JXQidCa0J4KK9Ca0J7Ql9CY0J3QkCDQmNCS0JDQnQor0JrQntCX0JjQndCQINCc0JDQoNCY0KbQkAor0JrQntCX0JvQmNCaINCa0JDQotCQ0KDQmNCd0JAKK9Ca0J7Ql9Cb0JjQmiDQm9CQ0IjQntCoCivQmtCe0JfQm9CY0J3QkCDQlNCV0KHQkNCd0JrQkAor0JrQntCX0JvQmNCd0JAg0JTQo9Co0JrQngor0JrQntCX0JvQmNCd0JAg0IjQldCa0JAKK9Ca0J7Ql9Cb0JjQndCQINCc0JjQm9CVCivQmtCe0JfQm9CY0J3QkCDQl9Cb0JDQotCY0KbQkAor0JrQntCX0JvQntCS0JDQp9Ca0Jgg0JbQmNCS0JrQngor0JrQntCX0JvQntCS0JDQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9Ca0J7Ql9Cb0J7QktCQ0KfQmtCYINCJ0KPQkdCQCivQmtCe0JfQm9Ce0JLQkNCn0JrQmCDQodCQ0JLQkAor0JrQntCX0JvQntCS0JDQp9Ca0Jgg0KHQntCk0JjQiNCQCivQmtCe0JfQm9Ce0JLQkNCn0JrQmCDQktCV0KHQldCb0JjQnQor0JrQntCX0JvQntCS0JjQiyDQkdCe0KDQmNChCivQmtCe0JfQm9Ce0JLQmNCLINCh0JDQktCQCivQmtCe0JfQnNCQINCo0JDQndCU0J7QoAor0JrQntCX0JzQkCDQldCi0JXQmwor0JrQntCX0JzQkCDQpNCV0KDQldCd0KYKK9Ca0J7Ql9Cc0JAg0IjQntCW0JXQpAor0JrQntCX0JzQkCDQiNCe0KHQmNCfCivQmtCe0JfQnNCY0JTQmNChLdCf0JXQotCg0J7QktCY0Isg0JDQndCQCivQmtCe0JfQntCc0JDQoNCQINCC0J7QoNCC0JUKK9Ca0J7Ql9Ce0JzQkNCg0JAg0IjQntCS0J4KK9Ca0J7Ql9Ce0JzQkNCg0JAg0InQo9CR0JjQptCQCivQmtCe0JfQntCc0JDQoNCQINCc0JDQoNCY0IjQkAor0JrQntCX0J7QnNCQ0KDQkCDQl9Ce0KDQkNCdCivQmtCe0JfQntCc0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQmtCe0JfQntCc0J7QoNCQINCR0J7QltCY0JTQkNCgCivQmtCe0JfQntCc0J7QoNCQINCR0KDQkNCd0JrQngor0JrQntCX0J7QnNCe0KDQkCDQmNCb0JjQiNCQCivQmtCe0JfQntCc0J7QoNCQINCI0J7QmtCQCivQmtCe0JfQntCc0J7QoNCQINCI0J7QktCeCivQmtCe0JfQntCc0J7QoNCQINCb0JDQl9CeCivQmtCe0JfQntCc0J7QoNCQINCc0JjQm9CQ0J0KK9Ca0J7Ql9Ce0JzQntCg0JAg0JzQmNCb0JUKK9Ca0J7Ql9Ce0JzQntCg0JAg0JzQmNCb0J7QiNCa0J4KK9Ca0J7Ql9Ce0JzQntCg0JAg0JzQmNCg0J7QodCb0JDQkgor0JrQntCX0J7QnNCe0KDQkCDQn9CV0KLQkNCgCivQmtCe0JfQntCc0J7QoNCQINCg0JDQlNCe0JzQmNCgCivQmtCe0JfQntCc0J7QoNCQINCh0KDQgtCQ0J0KK9Ca0J7Ql9Ce0JzQntCg0JAg0KLQkNCi0IjQkNCd0JAKK9Ca0J7Ql9Ce0JzQntCg0JAg0JLQkNCh0JjQm9CY0IjQlQor0JrQntCX0J7QnNCe0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQINCU0KAg0JvQldCa0JDQoAor0JrQntCX0KPQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQp9CQ0JTQmNCd0JDQpiDQmtCe0KHQotCQCivQmtCg0KfQkNCU0JjQndCQ0KYg0J3QmNCa0J7Qm9CQCivQmtCg0KfQldCU0JjQndCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Ca0KDQp9CV0JTQmNCd0JDQpiDQotCY0JzQkAor0JrQoNCn0JXQm9CY0Isg0JDQndCU0KDQmNCI0JAKK9Ca0KDQp9Cc0JDQoCDQltCV0InQmtCeCivQmtCg0KfQnNCQ0KAg0KbQktCY0IjQngor0JrQoNCn0JzQkNCgINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KDQp9Cc0JDQoCDQlNCj0KjQmtCeCivQmtCg0KfQnNCQ0KAg0IjQntCS0JDQnQor0JrQoNCn0JzQkNCgINCb0JXQn9Ce0KHQkNCS0JAKK9Ca0KDQp9Cc0JDQoCDQidCj0JHQmNCm0JAKK9Ca0KDQp9Cc0JDQoCDQidCj0JHQmNCm0JAKK9Ca0KDQp9Cc0JDQoCDQnNCY0JvQkNCdCivQmtCg0KfQnNCQ0KAg0JzQmNCb0JDQnQor0JrQoNCn0JzQkNCgINCc0JjQoNCa0J4KK9Ca0KDQp9Cc0JDQoCDQn9CQ0J3QlQor0JrQoNCn0JzQkNCgINCS0JDQodCeCivQmtCg0KfQnNCQ0KAg0JLQmNCd0JrQngor0JrQoNCn0JzQkNCgINCX0J7QoNCQ0J0KK9Ca0KDQp9Cc0JDQoCDQl9Ce0KDQkNCdCivQmtCg0KfQnNCQ0KDQmNCaINCU0JDQndCY0JvQngor0JrQoNCn0JzQkNCg0JjQmiDQn9Cg0JXQlNCg0JDQkwor0JrQoNCn0J4g0JHQntCW0JjQlNCQ0KAKK9Ca0KDQp9CeINCc0JjQm9CV0J3QmtCeCivQmtCg0KfQniDQoNCQ0KHQmNCcCivQmtCg0KfQniDQoNCQ0KHQmNCcCivQmtCg0KjQldCSINCR0J7QoNCY0KEKK9Ca0KDQqNCV0JIg0JjQktCQ0J0KK9Ca0KDQqNCV0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQoNCo0JXQkiDQiNCj0JvQmtCY0KbQkAor0JrQoNCo0JjQiyDQlNCQ0KDQkAor0JrQoNCo0JjQiyDQmNCT0IrQkNCiCivQmtCg0KjQmNCLINCI0JXQm9CQCivQmtCg0KjQmNCLINCi0J7QnNCeCivQmtCg0KjQmNCdINCI0J7QktCeCivQmtCg0KjQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQqNCi0JXQndCY0Isg0JTQldCh0JDQndCa0JAKK9Ca0KDQltCQINCc0JjQm9CV0J3QmtCeCivQmtCg0JbQmNCLINCh0JjQnNCeCivQmtCg0ILQmNCLINCh0J/QntCc0JXQndCa0JAKK9Ca0KDQkNCn0JXQndCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQmtCg0JDQp9CV0JLQodCa0Jgg0JDQn9Ce0KHQotCe0JsKK9Ca0KDQkNCn0KPQnSDQmNCS0JDQnQor0JrQoNCQ0KfQo9CdINCi0KDQkNCI0JDQnQor0JrQoNCQ0KfQo9CdINCi0KDQkNCI0JDQnQor0JrQoNCQ0KfQo9Cd0J7QkiDQn9CV0KLQkNCgCivQmtCg0JDQp9Cj0J3QntCSINCh0KLQldCS0JDQnQor0JrQoNCQ0KfQo9Cd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Ca0KDQkNCn0KPQndCe0JLQmNCLINCS0JXQidCa0J4KK9Ca0KDQkNCL0JDQmiDQkdCe0KjQmtCeCivQmtCg0JDQk9CY0KfQldCaINCa0JvQkNCg0JAKK9Ca0KDQkNCT0JjQiyDQkdCY0InQkNCd0JAKK9Ca0KDQkNCT0JjQiyDQkdCe0KDQkAor0JrQoNCQ0JPQmNCLINCJ0JjQidCQ0J3QkAor0JrQoNCQ0JPQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQkNCT0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Ca0KDQkNCT0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCQ0JPQo9CI0JXQkiDQlNCj0KjQkNCdCivQmtCg0JDQk9Cj0IjQldCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgINCb0JXQmtCQ0KAKK9Ca0KDQkNCT0KPQiNCV0JLQmNCLINCg0JDQiNCa0J4KK9Ca0KDQkNCT0KPQiNCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Ca0KDQkNCT0KPQiSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCQ0JPQo9CJINCU0KPQqNCQ0J3QmtCQCivQmtCg0JDQk9Cj0Ikg0IjQldCb0JAKK9Ca0KDQkNCT0KPQiSDQm9CQ0JfQngor0JrQoNCQ0JPQo9CJINCh0JDQktCa0JAKK9Ca0KDQkNCT0KPQidCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JrQoNCQ0IjQp9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCg0JDQiNCn0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCQ0IjQp9CY0J3QntCS0JjQiyDQiNCe0JLQkNCdINCU0KAg0JvQldCa0JDQoAor0JrQoNCQ0IjQqNCY0Isg0JzQmNCg0JrQngor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0KXQmNCb0JTQkAor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0KDQkNCI0JDQp9CV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0KDQkNCI0JDQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQkNCI0KbQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQkNCI0KbQldCgINCV0KPQk9CV0J0KK9Ca0KDQkNCI0KbQldCgINCY0KDQldCd0JAKK9Ca0KDQkNCI0KbQldCgINCY0JLQkNCdCivQmtCg0JDQiNCm0JXQoCDQn9CV0KLQkNCgCivQmtCg0JDQiNCY0KjQndCY0Jog0JbQmNCS0J7QoNCQ0JQKK9Ca0KDQkNCI0JjQqNCd0JjQmiDQmtCg0JjQodCi0JjQndCQCivQmtCg0JDQiNCY0Isg0JDQk9CY0KbQkAor0JrQoNCQ0IjQmNCd0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQkNCI0JjQndCQINCk0JjQm9CY0J8KK9Ca0KDQkNCI0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQmtCg0JDQiNCd0JjQmiDQltCQ0KDQmtCeCivQmtCg0JDQiNCd0JjQmiDQm9CQ0JfQkNCgCivQmtCg0JDQiNCd0JjQmtCV0KAg0J3QkNCd0JTQntCgCivQmtCg0JDQiNCd0J7QkiDQkdCe0JPQlNCQ0J0KK9Ca0KDQkNCI0J3QntCSINCR0J7Qk9Ce0InQo9CRCivQmtCg0JDQiNCd0J7QkiDQk9Ce0KDQkNCdCivQmtCg0JDQiNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JrQoNCQ0IjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQkNCI0J3QntCS0JjQiyDQgtCj0KDQngor0JrQoNCQ0IjQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ca0KDQkNCI0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0KDQkNCI0J3QntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQmtCg0JDQiNCd0J7QktCY0Isg0JzQmNCb0JjQiwor0JrQoNCQ0IjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JrQoNCQ0IjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQoNCQ0IjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQkNCI0J3QntCS0JjQiyDQoNCQ0JTQlQor0JrQoNCQ0IjQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQmtCg0JDQiNCd0J7QktCY0Isg0JLQldCg0JAKK9Ca0KDQkNCI0J7QktCQ0J0g0JzQmNCg0IjQkNCd0JAKK9Ca0KDQkNCI0J7QktCQ0J0g0JzQmNCg0J7QodCb0JDQkgor0JrQoNCQ0Jog0JzQmNCo0JAKK9Ca0KDQkNCa0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0KDQkNCa0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0KDQkNCb0JjQmiDQnNCY0KDQntCh0JvQkNCSCivQmtCg0JDQm9CY0Jog0J7Qm9CY0J3QmtCQCivQmtCg0JDQm9CY0Jog0J/QkNCS0JvQlQor0JrQoNCQ0JvQmNCaINCh0KLQldCS0JDQnQor0JrQoNCQ0Ikg0JLQkNCb0JXQndCi0JjQnQor0JrQoNCQ0Ikg0JfQktCe0J3QmNCc0JjQoAor0JrQoNCQ0InQldCS0JDQp9Ca0Jgg0JHQkNCg0JHQkNCg0JAKK9Ca0KDQkNCJ0JXQktCQ0KfQmtCYINCY0JvQmNCI0JAKK9Ca0KDQkNCJ0JXQktCQ0KfQmtCYINCI0J7QodCY0J8KK9Ca0KDQkNCJ0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0KDQkNCJ0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQoNCQ0InQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ca0KDQkNCJ0JXQktCY0Isg0JzQmNCb0JrQkAor0JrQoNCQ0InQldCS0JjQiyDQodCQ0JLQngor0JrQoNCQ0InQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9Ca0KDQkNCJ0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQkNCJ0JjQiyDQktCb0JDQlNCQCivQmtCg0JDQitCn0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0KDQkNCK0KfQldCS0JjQiyDQiNCe0KHQmNCfCivQmtCg0JDQoSDQiNCV0JvQldCd0JAKK9Ca0KDQkNCh0JDQktCQ0KYg0JbQmNCS0J7QoNCQ0JQKK9Ca0KDQkNCh0JDQktCQ0KYg0JzQmNCb0JrQkAor0JrQoNCQ0KHQkNCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JrQoNCQ0KHQkNCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JrQoNCQ0KHQkNCS0JDQpiDQoNCj0JbQmNCm0JAKK9Ca0KDQkNCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQkNCh0JjQiyDQlNCj0KjQkNCdCivQmtCg0JDQodCY0Isg0JPQntCb0KPQkQor0JrQoNCQ0KHQmNCLINCc0JjQm9Ce0IjQlQor0JrQoNCQ0KHQmNCLINCd0JjQmtCe0JvQkAor0JrQoNCQ0KHQmNCLINCh0KLQldCS0JDQnQor0JrQoNCQ0KHQmtCeINCI0JDQndCa0J4KK9Ca0KDQkNCh0J3QmNCLINCY0KDQmNCd0JAKK9Ca0KDQkNCh0J3QmNCLINCS0JXQoNCQCivQmtCg0JDQodCd0JjQmiDQktCb0JDQotCa0J4KK9Ca0KDQkNCh0J3QmNCaINCX0JLQntCd0JrQngor0JrQoNCQ0KHQntCI0JXQktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ca0KDQkNCh0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQkNCh0KPQm9CQINCi0J7QnNCQCivQmtCg0JDQodCj0InQkCDQlNCj0KjQkNCdCivQmtCg0JDQodCj0InQkCDQodCi0JXQktCQ0J0KK9Ca0KDQkNCj0KEg0JDQndCQCivQmtCg0JDQo9ChINCe0KLQngor0JrQoNCQ0JLQp9CV0J3QmtCeINCf0JXQotCQ0KAKK9Ca0KDQkNCS0JDQoNCj0KjQmNCLINCU0KDQkNCT0JDQnQor0JrQoNCQ0JLQkNCg0KPQqNCY0Isg0JjQm9CY0IjQkAor0JrQoNCQ0JLQkNCg0KPQqNCY0Isg0KLQoNCY0JLQo9CdCivQmtCg0JDQktCQ0KDQo9Co0JjQiyDQktCY0KLQntCc0JjQoAor0JrQoNCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0KDQkNCS0JjQiyDQnNCY0JvQkNCdCivQmtCg0JDQktCY0Isg0J/QldCi0JDQoAor0JrQoNCQ0JLQidCQ0J3QkNCmINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCg0JDQktCJ0JDQndCQ0KYg0JjQktCQ0J3QmtCQCivQmtCg0JHQkNCK0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQkdCQ0IrQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCg0JHQkNCK0JXQktCY0Isg0KHQkNCo0JAKK9Ca0KDQkdCQ0JLQkNCmINCI0JXQm9CQCivQmtCg0KbQmNCLINCR0KDQkNCi0JjQnNCY0KAKK9Ca0KDQptCj0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JrQoNCP0JDQm9CY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0I/QkNCb0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQj9CY0Isg0JLQmNCU0J7QiNCVCivQmtCg0JXQqNCeINCV0JzQmNCgCivQmtCg0JXQptCj0Jsg0JvQmNCU0JjQiNCQCivQmtCg0JXQptCj0Ikg0JzQkNCg0JjQiNCQCivQmtCg0JXQkyDQldCU0KPQkNCg0JQKK9Ca0KDQldCTINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQldCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCg0JXQiNCY0Isg0IjQntCS0JDQnQor0JrQoNCV0IjQmNCLINCc0JDQoNCY0J3QmtCeCivQmtCg0JXQiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCg0JXQiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCg0JXQiNCY0Isg0KHQotCe0IjQkAor0JrQoNCV0JrQmNCLINCR0JDQoNCY0KjQkCDQlNCgCivQmtCg0JXQmtCY0Isg0JXQndCS0JXQoAor0JrQoNCV0JrQmNCLINCk0KDQkNCK0JAKK9Ca0KDQldCa0JjQiyDQnNCY0JvQldCd0JAKK9Ca0KDQldCa0J4g0InQo9CR0JjQptCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQmtCb0JDQoNCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQidCj0JHQkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0InQo9CR0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCJ0KPQkdCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JrQoNCV0JzQldCd0J7QktCY0Isg0JzQmNCg0JrQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0KDQldCc0JXQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0KHQotCV0JLQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0JLQntCI0JjQnQor0JrQoNCV0JzQldCgINCV0JvQmNCX0JDQkdCV0KLQkAor0JrQoNCV0JzQldCgINCk0KDQkNCK0JAKK9Ca0KDQldCc0JXQoCDQiNCe0JLQkNCdCivQmtCg0JXQnNCV0KAg0JrQkNCi0JjQptCQCivQmtCg0JXQnNCV0KAg0JzQkNCi0JjQiNCQCivQmtCg0JXQnNCV0KAg0J/QkNCI0JAKK9Ca0KDQldCc0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KDQldCc0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCV0JzQn9CQ0KHQmtCYLdCQ0J3QlNCg0JjQiyDQpdCY0JvQlNCQCivQmtCg0JXQnNCf0JDQodCa0Jgg0JXQm9CY0JfQkNCR0JXQotCQCivQmtCg0JXQodCQ0J3QmtCeINCb0JDQodCb0J4KK9Ca0KDQldCh0JDQndCa0J4g0JzQkNCg0JPQmNCi0JAKK9Ca0KDQldCh0JDQndCa0J4g0JzQkNCg0JjQiNCQCivQmtCg0JXQodCY0Isg0IjQkNCK0JAKK9Ca0KDQldCh0JjQiyDQnNCY0JvQldCd0JAKK9Ca0KDQldCh0JjQiyDQnNCY0KLQkNCgCivQmtCg0JXQodCY0Isg0KHQm9CQ0JLQmtCeCivQmtCg0JXQodCeINCo0JDQi9CY0KAKK9Ca0KDQldCh0J7QiNCQINCU0KPQqNCa0J4KK9Ca0KDQldCh0J7QiNCQINCc0JDQoNCY0J3QmtCeCivQmtCg0JXQodCe0IjQldCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Ca0KDQldCh0J7QiNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCg0JXQodCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCg0JXQodCe0IjQldCS0JjQiyDQodCg0JHQntCh0JvQkNCSCivQmtCg0JXQodCe0IjQldCS0JjQiyDQktCV0KHQndCQCivQmtCg0JXQodCe0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQoNCV0KHQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0KDQldCh0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCV0KHQntCS0JjQiyDQktCQ0KHQngor0JrQoNCV0KHQotCQINCQ0KDQn9CQ0JQKK9Ca0KDQldCh0KLQkCDQkNCi0JjQm9CQCivQmtCg0JXQodCi0JjQiyDQlNCQ0KTQmNCd0JAKK9Ca0KDQldCh0KLQmNCLINCd0JDQlNCQCivQmtCg0JXQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQldCh0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQldCS0JXQqNCY0Isg0JrQkNCg0JvQngor0JrQoNCV0JLQldCo0JjQiyDQmtCQ0KLQkAor0JrQoNCT0JAg0JPQkNCS0KDQkAor0JrQoNCT0JAg0JzQkNCd0JUKK9Ca0KDQk9CQINCc0JDQoNCQCivQmtCg0JPQkCDQnNCY0JvQkNCdCivQmtCg0JPQkCDQnNCY0JvQntCoCivQmtCg0JPQkCDQktCQ0KHQkAor0JrQoNCT0JjQnSDQnNCb0JDQlNCV0J0KK9Ca0KDQk9CY0J0g0J3QkNCU0JAKK9Ca0KDQk9CY0J0g0J3QldCU0JXQidCa0J4KK9Ca0KDQk9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCg0JPQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQoNCT0J7QktCY0Isg0IjQntCS0J4KK9Ca0KDQk9Ce0JLQmNCLINCc0JDQm9CY0KjQkAor0JrQoNCT0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmtCg0JPQntCS0JjQiyDQnNCY0IvQngor0JrQoNCT0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQoNCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoCDQm9CV0JrQkNCgCivQmtCg0JPQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQoNCT0J7QktCY0Isg0KDQkNCi0JrQngor0JrQoNCT0J7QktCY0Isg0KHQnNCY0InQkAor0JrQoNCT0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ca0KDQk9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0KDQk9Ce0JLQmNCLINCS0JvQkNCU0JAKK9Ca0KDQk9Ce0JLQmNCLINCS0KPQmtCe0JzQkNCdINCU0JjQn9CbINCY0J3Qkwor0JrQoNCT0J7QktCY0Isg0JfQntCg0JjQptCQCivQmtCg0JjQqCDQn9CV0KLQkNCgCivQmtCg0JjQqNCQ0J0g0JHQntCh0JjQidCa0JAKK9Ca0KDQmNCo0JDQnSDQlNCg0JDQk9Ce0IjQm9CeCivQmtCg0JjQqNCQ0J0g0JzQkNCi0JjQiNCQCivQmtCg0JjQqNCQ0J0g0JzQmNCb0J7QqAor0JrQoNCY0KjQkNCdINCS0KPQmtCY0KbQkAor0JrQoNCY0KjQkNCdINCX0JTQoNCQ0JLQmtCeCivQmtCg0JjQqNCQ0J3QntCSINCI0J7QktCQ0J0KK9Ca0KDQmNCo0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KDQmNCo0KLQniDQiNCj0JvQmNCI0JDQndCQCivQmtCg0JjQliDQiNCQ0J3QmtCeCivQmtCg0JjQliDQn9CQ0JLQldCbCivQmtCg0JjQltCQ0Jog0JDQndCQCivQmtCg0JjQltCQ0J0g0KjQkNCd0JTQntCgCivQmtCg0JjQltCQ0J0g0ILQo9Cg0JAKK9Ca0KDQmNCW0JDQnSDQkNCd0JjQptCQCivQmtCg0JjQltCQ0J0g0JXQlNCj0JDQoNCUCivQmtCg0JjQltCQ0J0g0IjQkNCd0J7QqAor0JrQoNCY0JbQkNCdINCI0KPQm9CQCivQmtCg0JjQltCQ0J0g0JvQkNCh0JvQngor0JrQoNCY0JbQkNCdINCc0JDQoNCY0IjQkAor0JrQoNCY0JbQkNCdINCc0JDQotCY0IjQkAor0JrQoNCY0JbQkNCdINCc0JjQmtCb0J7QqAor0JrQoNCY0JbQkNCdINCg0J7QltCQCivQmtCg0JjQltCQ0J3QmNCLINCI0J7QktCQ0J0KK9Ca0KDQmNCW0JDQndCY0Isg0IjQntCS0JDQnQor0JrQoNCY0JbQkNCd0JjQiyDQnNCY0JvQldCd0JrQngor0JrQoNCY0JbQkNCd0JjQiyDQodCb0JDQgtCQ0J3QkAor0JrQoNCY0JbQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCg0JjQltCQ0J3QntCS0JjQiyDQltCj0JbQkNCd0JAKK9Ca0KDQmNCW0J3QkNCgINCR0J7QiNCQ0J0KK9Ca0KDQmNCW0J3QkNCgINCc0JDQoNCQCivQmtCg0JjQltCd0JDQoCDQnNCY0KDQmtCeINCU0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCg0JjQltCd0JDQoCDQotCe0JzQkCDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQmNCc0KjQkNCc0KXQkNCb0J7QkiDQl9CQ0JjQlNCQCivQmtCg0JjQndCa0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCY0J3QmtCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQmNCd0JrQntCS0KHQmtCYINCS0JXQoNCe0J3QmNCa0JAKK9Ca0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCY0KHQotCY0Isg0J3QkNCU0JAKK9Ca0KDQmNCh0KLQmNCQ0J0g0IjQntCW0JXQpAor0JrQoNCY0KHQotCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQoNCY0KHQotCe0JLQmNCLINCg0KPQlNCe0JvQpAor0JrQoNCY0JLQkNCaINCQ0J3QkAor0JrQoNCY0JLQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQmNCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JrQoNCY0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQoNCY0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQoNCY0JLQntCo0JjQiNCQINCW0JjQktCa0J4KK9Ca0KDQmNCS0J7QqNCY0IjQkCDQpNCg0JDQitCeCivQmtCg0JjQktCe0KjQmNCI0JAg0JzQmNCb0JUKK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCQ0JzQkNCb0JjQiNCQCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCc0JDQoNCi0JjQnQor0JrQoNCY0JLQntCa0JDQn9CY0Isg0J3QldCU0JXQidCa0J4KK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCd0JXQktCV0J3QmtCQINCU0JjQn9CbINCV0KbQpgor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCg0JjQktCe0JrQo9CL0JAg0ILQntCg0ILQlQor0JrQoNCY0JLQntCa0KPQi9CQINCU0JXQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQoNCQ0JPQmNCm0JAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQoNCQ0JPQntCc0JjQoAor0JrQoNCY0JLQntCa0KPQi9CQINCU0KPQqNCQ0J0KK9Ca0KDQmNCS0J7QmtCj0IvQkCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQoNCY0JLQntCa0KPQi9CQINCI0J7QktCQ0J0KK9Ca0KDQmNCS0J7QmtCj0IvQkCDQiNCj0JvQmNCI0JDQndCQCivQmtCg0JjQktCe0JrQo9CL0JAg0JzQmNCb0JDQnQor0JrQoNCY0JLQntCa0KPQi9CQINCc0JjQm9CY0KbQkAor0JrQoNCY0JLQntCa0KPQi9CQINCc0JjQm9Ca0JAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQnNCY0J7QlNCg0JDQkwor0JrQoNCY0JLQntCa0KPQi9CQINCf0JXQotCQ0KAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQoNCQ0JTQntCh0JvQkNCSCivQmtCg0JjQktCe0JrQo9CL0JAg0KDQkNCU0J7QktCQ0J0KK9Ca0KDQmNCX0JHQkNCYINCX0J7Qm9Ci0JDQnQor0JrQoNCa0JXQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCa0JXQidCV0Kgg0JHQntCg0JjQoQor0JrQoNCa0JXQidCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0KDQmtCV0InQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQoNCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQoNCa0JvQldCmINCI0J7QodCY0J8KK9Ca0KDQmtCb0JXQpiDQktCV0KDQkAor0JrQoNCa0JvQldCmINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQmtCJ0JXQqCDQgtCj0KDQngor0JrQoNCa0InQldCoINCR0J7QoNCQCivQmtCg0JrQidCV0Kgg0JzQmNCb0JUg0JTQoAor0JrQoNCa0InQmNCLINCC0KPQoNCeCivQmtCg0JrQidCY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0JrQidCY0Isg0JzQmNCb0JDQnQor0JrQoNCa0InQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCg0JrQidCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0JrQidCY0Isg0J7QodCi0J7QiNCQCivQmtCg0JrQidCj0Kgg0JHQntCo0JrQngor0JrQoNCa0InQo9CoINCR0KDQkNCd0JrQngor0JrQoNCa0InQo9CoINCU0KDQkNCT0JDQndCQCivQmtCg0JrQidCj0Kgg0JTQo9Co0JDQndCa0JAKK9Ca0KDQmtCJ0KPQqCDQlNCj0KjQkNCdCivQmtCg0JrQidCj0Kgg0IjQldCb0JXQndCQCivQmtCg0JrQidCj0Kgg0IjQldCb0JjQptCQCivQmtCg0JrQidCj0Kgg0JrQoNCY0KHQotCY0J3QkAor0JrQoNCa0InQo9CoINCJ0KPQkdCY0J3QmtCQCivQmtCg0JrQidCj0Kgg0InQo9CR0J7QnNCY0KDQmtCQINCU0KAKK9Ca0KDQmtCJ0KPQqCDQnNCY0JvQkNCdCivQmtCg0JrQidCj0Kgg0JzQmNCb0JDQnQor0JrQoNCa0InQo9CoINCc0JjQm9CY0KbQkAor0JrQoNCa0InQo9CoINCc0JjQm9Ce0KDQkNCUCivQmtCg0JrQidCj0Kgg0JzQmNCg0J7QodCb0JDQkgor0JrQoNCa0InQo9CoINCc0J7QnNCn0JjQm9CeCivQmtCg0JrQidCj0Kgg0J/QldCi0JDQoAor0JrQoNCa0InQo9CoINCf0JXQotCQ0KAKK9Ca0KDQmtCJ0KPQqCDQoNCQ0JTQlQor0JrQoNCa0InQo9CoINCh0JvQkNCS0JrQngor0JrQoNCa0InQo9CoINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KDQmtCJ0KPQqCDQodCi0JXQktCQ0J0KK9Ca0KDQmtCJ0KPQqCDQktCV0KDQmNCm0JAKK9Ca0KDQmtCe0JHQkNCR0JjQiyDQmNCb0JjQiNCQCivQmtCg0JrQntCR0JDQkdCY0Isg0JLQldCg0JjQptCQCivQmtCg0JrQntCS0JjQiy3QiNCj0J/QldCaINCU0KPQqNCQ0J3QmtCQCivQmtCg0JzQkNCgINCU0KPQqNCQ0J0KK9Ca0KDQnNCQ0KAg0IjQkNCh0J3QkAor0JrQoNCc0JDQoCDQnNCQ0KDQmtCeCivQmtCg0JzQkNCgINCX0J7QoNCQCivQmtCg0JzQn9Ce0KIg0JPQntCI0JrQngor0JrQoNCc0J/QntCiINCb0JDQl9CQ0KAKK9Ca0KDQnNCf0J7QotCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ca0KDQnNCf0J7QotCY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JrQoNCc0J/QntCi0JjQiyDQktCj0JrQmNCm0JAKK9Ca0KDQndCn0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ca0KDQndCQ0IjQkNCmINCW0JjQktCQ0J0KK9Ca0KDQndCQ0IjQkNCmINCY0JLQkNCdCivQmtCg0J3QkNCI0JDQpiDQnNCe0JzQp9CY0JvQngor0JrQoNCd0JDQiNCQ0KYg0J3QldCS0JXQndCa0JAKK9Ca0KDQndCQ0IjQkNCmINCf0JXQotCQ0KAKK9Ca0KDQndCQ0IjQkNCmINCg0JDQlNCe0JLQkNCdCivQmtCg0J3QkNCI0JDQpiDQl9Cb0JDQotCY0KbQkAor0JrQoNCd0JDQiNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JrQoNCd0JTQmNCI0JAg0JHQntCT0J7QidCj0JEKK9Ca0KDQndCU0JjQiNCQINCR0KDQkNCd0JrQngor0JrQoNCd0JTQmNCI0JAg0JzQkNCg0JrQngor0JrQoNCd0JTQmNCI0JAg0JzQmNCb0J7QktCQ0J0KK9Ca0KDQndCU0JjQiNCQINCd0JXQndCQ0JQKK9Ca0KDQndCU0JjQiNCQINCf0JXQotCQ0KAKK9Ca0KDQndCU0JjQiNCQINCh0KLQkNCd0JAKK9Ca0KDQndCU0JjQiNCQINCh0KLQldCS0J4KK9Ca0KDQndCU0JjQiNCQINCS0J7QiNCY0J0KK9Ca0KDQndCV0KLQkCDQkdCe0JPQlNCQ0J0KK9Ca0KDQndCV0KLQkCDQiNCV0JvQmtCQCivQmtCg0J3QldCi0JAg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQndCV0KLQkCDQnNCY0JvQntCh0JDQktCQCivQmtCg0J3QldCi0JAg0J3QmNCa0J7Qm9CQCivQmtCg0J3QldCi0JAg0KDQkNCU0JUKK9Ca0KDQndCV0KLQkCDQodCb0J7QkdCe0JTQkNCdCivQmtCg0J3QldCi0JAg0KHQotCV0JLQkNCdCivQmtCg0J3QldCi0JjQiyDQk9Ce0IjQmtCeCivQmtCg0J3QldCi0JjQiyDQiNCe0JLQkNCdCivQmtCg0J3QmNCLINCQ0J3QkAor0JrQoNCd0JjQiyDQn9CV0KDQkAor0JrQoNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQoNCd0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQndCY0Isg0KHQotCY0J/Qngor0JrQoNCd0JjQiNCQINCc0JDQoNCY0J3QmtCeCivQmtCg0IrQkNCY0Isg0JTQoNCQ0JPQngor0JrQoNCK0JDQmNCLINCT0J7QoNCQ0J0KK9Ca0KDQitCQ0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQoNCK0JDQiNCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0KDQitCQ0IjQmNCLINCY0JvQmNCI0JAKK9Ca0KDQitCQ0IjQmNCLINCY0JLQmNCm0JAKK9Ca0KDQitCQ0IjQmNCLINCI0J7QktCQ0J0KK9Ca0KDQitCQ0IjQmNCLINCc0JjQm9Ce0KgKK9Ca0KDQitCQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQitCQ0IjQmNCLINCg0JDQlNCe0JzQmNCgCivQmtCg0IrQldCo0JXQktCQ0KYg0KHQkNCS0JAKK9Ca0KDQitCV0KLQkCDQm9CV0J/QntCh0JDQktCQCivQmtCg0IrQldCi0JAg0J3QntCS0JDQmgor0JrQoNCK0JXQotCY0J0g0JbQmNCS0JrQngor0JrQoNCK0JXQotCY0J0g0JHQoNCQ0J3QmtCeCivQmtCg0IrQldCi0JjQnSDQlNCg0JDQk9CQ0J0KK9Ca0KDQitCV0KLQmNCdINCI0J7QktCQ0J0KK9Ca0KDQitCV0KLQmNCdINCa0JDQotCY0KbQkAor0JrQoNCK0JXQotCY0J0g0JzQkNCI0JAKK9Ca0KDQitCV0KLQmNCdINCc0JjQmtCQCivQmtCg0IrQldCi0JjQnSDQodCQ0JLQkAor0JrQoNCK0JjQiyDQmNCS0JDQnQor0JrQoNCK0KPQm9CQ0KYg0JTQo9Co0JDQnQor0JrQoNCd0J7QiNCV0JvQkNCmINCU0JDQndCY0JvQngor0JrQoNCe0KjQm9CQ0Jog0KHQotCV0JLQkNCdCivQmtCg0J7QnNCR0KXQntCb0KYg0JXQnNCY0JsKK9Ca0KDQntCc0KXQntCb0KYg0JrQkNCg0JvQngor0JrQoNCe0JzQn9CY0Isg0InQmNCJ0JDQndCQINCf0KDQntCk0JXQodCe0KAKK9Ca0KDQntCc0J/QmNCLINCJ0KPQkdCY0KbQkAor0JrQoNCe0JzQn9CY0Isg0JzQmNCb0JDQnQor0JrQoNCe0JzQn9CY0Isg0KHQotCQ0J3QmtCeCivQmtCg0J7QndCQ0JLQldCi0JXQoCDQkNCb0KTQoNCV0JQKK9Ca0KDQntCd0JjQiyDQm9CQ0JfQkNCgCivQmtCg0J7QndCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQntCK0JAg0JjQktCQ0J0KK9Ca0KDQntCK0JAg0JjQktCQ0J0KK9Ca0KDQntCK0JAg0JzQmNCb0JDQndCa0JAKK9Ca0KDQntCf0Kgg0KXQmNCb0JTQkAor0JrQoNCe0J/QkNCn0JXQmiDQmNCS0JDQnQor0JrQoNCe0J/QpCDQkNCd0ILQldCb0JrQkAor0JrQoNCe0J/QpCDQpNCg0JDQitCQCivQmtCg0J/QkNCdINCW0JXQidCa0J4KK9Ca0KDQn9CQ0J0g0JjQktCQ0J0KK9Ca0KDQn9CQ0J0g0InQmNCJ0JDQndCQCivQmtCg0J/QkNCdINCc0JjQoNCa0J4KK9Ca0KDQn9CQ0J0g0KHQotCV0JLQkNCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoNCa0JAKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JrQoNCh0JzQkNCd0J7QktCY0Isg0KbQktCY0IjQkNCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQmtCg0KHQnNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQntCR0KDQldCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQodCQ0KjQkAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0JrQoNCh0J3QmNCaINCI0J7QnQor0JrQoNCh0J3QmNCaINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQkNCI0JjQiyDQnNCY0JvQntCI0JjQptCQCivQmtCg0KHQotCQ0IjQmNCLINCf0JXQoNCa0J4KK9Ca0KDQodCi0JDQndCe0JLQmNCLINCm0JLQmNCI0J4KK9Ca0KDQodCi0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KDQodCi0JDQndCe0JLQmNCLINCk0KDQkNCK0JAKK9Ca0KDQodCi0JDQndCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JrQoNCh0KLQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0JrQoNCh0KLQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0KDQodCi0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0JXQmtCQ0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQmtCg0KHQotCV0JrQkNCd0JjQiyDQkNCd0JAKK9Ca0KDQodCi0JXQmtCQ0J3QmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Ca0KDQodCi0JXQmtCQ0J3QmNCLINCg0JDQotCe0JzQmNCgCivQmtCg0KHQotCV0JLQodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCg0KHQotCV0JLQodCa0Jgg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCg0KHQotCY0Ist0KjQotCY0JzQkNCmINCh0J/QkNCh0JXQndCY0IjQkCDQlNCgCivQmtCg0KHQotCY0Isg0JbQkNCg0JrQngor0JrQoNCh0KLQmNCLINCW0JjQktCQ0J0KK9Ca0KDQodCi0JjQiyDQltCY0JLQmtCeCivQmtCg0KHQotCY0Isg0JbQmNCS0JrQngor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiy3QgtCj0KDQp9CI0JDQndCh0JrQmCDQoNCj0JbQldCd0JrQkAor0JrQoNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ca0KDQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCg0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQodCi0JjQiyDQkNCd0JTQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCQ0J3QmNCm0JAKK9Ca0KDQodCi0JjQiyDQkdCe0KjQmtCeCivQmtCg0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0KDQodCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQoNCh0KLQmNCLINCR0J7QltCY0JTQkNCgCivQmtCg0KHQotCY0Isg0JHQntCT0JTQkNCdCivQmtCg0KHQotCY0Isg0JHQntCg0JjQktCe0IgKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCa0JAKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCa0JAKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCa0J4KK9Ca0KDQodCi0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0KDQodCi0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQoNCh0KLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQoNCh0KLQmNCLINCU0J7QkdCg0JjQm9CQCivQmtCg0KHQotCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0KDQodCi0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQmtCg0KHQotCY0Isg0JTQntCR0KDQntCh0JvQkNCSCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ca0KDQodCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JrQoNCh0KLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCg0KHQotCY0Isg0JTQo9Co0JDQnQor0JrQoNCh0KLQmNCLINCU0KPQqNCa0J4KK9Ca0KDQodCi0JjQiyDQldCi0JXQm9Ca0JAKK9Ca0KDQodCi0JjQiyDQldCS0JjQptCQCivQmtCg0KHQotCY0Isg0JPQkNCS0KDQkAor0JrQoNCh0KLQmNCLLdCT0KPQndCV0Jog0JzQkNCg0JjQiNCQCivQmtCg0KHQotCY0Isg0JjQm9CY0IjQkAor0JrQoNCh0KLQmNCLINCY0JLQkNCdINCU0KAKK9Ca0KDQodCi0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQodCi0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQodCi0JjQiyDQiNCe0KDQlNCQ0J0KK9Ca0KDQodCi0JjQiyDQiNCe0JLQkNCdCivQmtCg0KHQotCY0Isg0IjQntCS0JDQnQor0JrQoNCh0KLQmNCLINCI0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQmtCQ0JzQldCd0JrQngor0JrQoNCh0KLQmNCLINCa0JDQnNCV0J3QmtCeCivQmtCg0KHQotCY0Isg0JrQkNCi0JjQptCQCivQmtCg0KHQotCY0Isg0JrQkNCi0JjQptCQCivQmtCg0KHQotCY0Isg0JrQkNCi0JjQptCQCivQmtCg0KHQotCY0Isg0JrQntCg0J3QldCb0JjQiNCQCivQmtCg0KHQotCY0Isg0JvQkNCX0JDQoAor0JrQoNCh0KLQmNCLINCb0JDQl9CQ0KAKK9Ca0KDQodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0KDQodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCd0JrQkAor0JrQoNCh0KLQmNCLINCJ0KPQkdCY0KHQkNCSCivQmtCg0KHQotCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KDQodCi0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCh0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCg0KHQotCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KDQodCi0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCc0JDQoNCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0JvQkNCU0JjQnQor0JrQoNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Ca0KDQodCi0JjQiyDQnNCY0JvQkNCdCivQmtCg0KHQotCY0Isg0JzQmNCb0JDQnQor0JrQoNCh0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCg0KHQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCoCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QqAor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0IjQmtCeCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQnNCY0J3Qp9CVINCU0JjQn9CbINCY0J3Qkwor0JrQoNCh0KLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCg0KHQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KDQodCi0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQoNCh0KLQmNCLINCc0JjQoNCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0KDQmtCeCivQmtCg0KHQotCY0Isg0JzQmNCg0J7QidCj0JEKK9Ca0KDQodCi0JjQiyDQnNCY0KDQntCJ0KPQkQor0JrQoNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQoNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQoNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQnNCY0KLQkNCgCivQmtCg0KHQotCY0Isg0J3QkNCU0JAKK9Ca0KDQodCi0JjQiyDQndCV0JHQntCI0KjQkAor0JrQoNCh0KLQmNCLINCd0JXQndCQ0JQKK9Ca0KDQodCi0JjQiyDQndCV0J3QkNCUCivQmtCg0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0KHQotCY0Isg0J3QntCS0JDQmgor0JrQoNCh0KLQmNCLINCd0J7QktCQ0JoKK9Ca0KDQodCi0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0JrQoNCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0JjQiyDQn9CV0KLQkNCgCivQmtCg0KHQotCY0Isg0J/QldCi0JDQoAor0JrQoNCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0JjQiyDQn9CV0KLQoNCj0J0KK9Ca0KDQodCi0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JrQoNCh0KLQmNCLINCg0JDQlNCY0JLQntCICivQmtCg0KHQotCY0Isg0KDQkNCU0JjQktCe0IgKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCI0JUKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQoNCh0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQmtCg0KHQotCY0Isg0KDQkNCU0J7QodCQ0JIKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCg0KHQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQoNCQ0KLQmtCeCivQmtCg0KHQotCY0Isg0KDQkNCi0JrQngor0JrQoNCh0KLQmNCLINCh0JDQktCQCivQmtCg0KHQotCY0Isg0KHQkNCS0JXQotCQCivQmtCg0KHQotCY0Isg0KHQmNCd0JjQqNCQCivQmtCg0KHQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0KDQodCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCg0KHQotCY0Isg0KHQoNCC0JDQnQor0JrQoNCh0KLQmNCLINCh0KDQldCi0JXQnQor0JrQoNCh0KLQmNCLINCh0KLQkNCd0JrQngor0JrQoNCh0KLQmNCLINCh0KLQkNCd0J7QiNCVCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JrQoNCh0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ca0KDQodCi0JjQiyDQodCS0JXQotCb0JDQndCQCivQmtCg0KHQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQoNCh0KLQmNCLINCi0JjQndCa0JAKK9Ca0KDQodCi0JjQiyDQo9CT0InQldCo0JAg0JTQoAor0JrQoNCh0KLQmNCLINCS0JDQodCQINCU0KAg0JvQldCa0JDQoAor0JrQoNCh0KLQmNCLINCS0JDQodCQCivQmtCg0KHQotCY0Isg0JLQkNCh0JjQm9CY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQodCi0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQmtCg0KHQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0KDQodCi0JjQiyDQktCV0InQmtCeCivQmtCg0KHQotCY0Isg0JLQldCg0JAKK9Ca0KDQodCi0JjQiyDQktCV0KDQkAor0JrQoNCh0KLQmNCLINCS0JXQodCV0JvQmNCdCivQmtCg0KHQotCY0Isg0JLQm9CQ0JTQkAor0JrQoNCh0KLQmNCLINCS0J7QiNCY0J0KK9Ca0KDQodCi0JjQiy3QktCg0JbQmNCd0JAg0JHQntCh0JDQndCa0JAKK9Ca0KDQodCi0JjQiyDQktCj0JrQmNCm0JAKK9Ca0KDQodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCg0KHQotCY0Isg0JfQntCg0JDQnQor0JrQoNCh0KLQmNCdINCW0JjQktCa0JAKK9Ca0KDQodCi0JjQnSDQkdCg0JDQndCa0J4KK9Ca0KDQodCi0JjQnSDQmNCS0JDQnQor0JrQoNCh0KLQmNCdINCI0JXQm9Ca0JAKK9Ca0KDQodCi0JjQnSDQmtCe0KHQotCQCivQmtCg0KHQotCY0J0g0JvQkNCX0JDQoAor0JrQoNCh0KLQmNCdINCc0JvQkNCU0JXQnQor0JrQoNCh0KLQmNCdINCd0JDQotCQ0KjQkAor0JrQoNCh0KLQmNCdINCf0JXQotCQ0KAKK9Ca0KDQodCi0JjQnSDQodCb0JDQktCa0J4KK9Ca0KDQodCi0JjQnSDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQmtCg0KHQotCY0J0g0JLQldCg0JAKK9Ca0KDQodCi0JjQnSDQktCb0JDQlNCQ0J0KK9Ca0KDQodCi0JjQnSDQl9Ce0KDQkNCdCivQmtCg0KHQotCY0J3QmNCLINCU0KDQkNCT0JDQnQor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JbQmNCS0JDQnQor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCI0JXQm9CV0J3QkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0IjQntCS0JDQnQor0JrQoNCh0KLQntCd0J7QqNCY0Isg0InQo9CR0JjQptCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQnNCY0JvQkNCd0JrQkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQodCi0J7QndCe0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCg0KHQotCe0J3QntCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCg0KHQotCe0J3QntCo0JjQiyDQndCQ0JTQkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0J3QldCh0KLQntCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQn9CV0KLQkNCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQn9CV0KLQkNCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0J7QndCe0KjQmNCLINCS0JXQoNCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQktCY0JTQkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JfQm9CQ0KLQkCDQlNCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQl9Ce0KDQkAor0JrQoNCh0KLQntCS0KHQmtCYINCg0JDQlNCe0IjQmtCQCivQmtCg0KLQldCd0JjQiyDQkdCg0JDQndCa0J4KK9Ca0KDQotCV0J3QmNCLINCU0J7QkdCg0JjQm9CQCivQmtCg0KLQldCd0JjQiyDQn9CQ0JLQm9CVCivQmtCg0KLQmNCd0JjQiyDQkdCe0KDQkAor0JrQoNCi0JjQndCY0Isg0JTQkNCd0JUKK9Ca0KDQotCY0J3QmNCLINCU0JDQndCVCivQmtCg0KLQmNCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQoNCi0JjQndCY0Isg0JzQmNCg0JrQngor0JrQoNCi0JjQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQoNCi0JjQndCY0Isg0J3QkNCU0JAKK9Ca0KDQotCY0J3QmNCLINCh0JDQktCQCivQmtCg0KLQmNCd0JjQiyDQodCc0JjQidCQ0J3QkAor0JrQoNCi0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCj0KfQmNCn0JDQnSDQnNCY0JvQkNCdCivQmtCg0KPQqNCa0JAg0ILQntCg0ILQlQor0JrQoNCj0KjQmtCQINCh0KLQldCS0JDQnQor0JrQoNCj0JbQldCS0JjQiyDQlNCV0IjQkNCdCivQmtCg0KPQltCV0JLQmNCLINCd0JXQndCQ0JQKK9Ca0KDQo9CW0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCj0JbQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQoNCj0JbQldCS0JjQiyDQl9Ce0KDQkNCdCivQmtCg0KPQltCY0Isg0JDQndCQCivQmtCg0KPQiSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JrQoNCj0Ikg0JzQmNCb0JDQnQor0JrQoNCj0J3QmNCLINCW0JjQktCQ0J0KK9Ca0KDQo9Cd0JjQiyDQltCY0JLQntCg0JDQlAor0JrQoNCj0J3QmNCLINCC0J7QoNCC0JUKK9Ca0KDQo9Cd0JjQiyDQgtCe0KDQgtCVCivQmtCg0KPQndCY0Isg0ILQntCg0ILQlQor0JrQoNCj0J3QmNCLLdCR0JXQm9CY0Isg0JzQmNCb0JDQndCQCivQmtCg0KPQndCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0KPQndCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0KPQndCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0KPQndCY0Isg0JTQkNCg0JAKK9Ca0KDQo9Cd0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCg0KPQndCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JrQoNCj0J3QmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ca0KDQo9Cd0JjQiyDQmNCb0JjQiNCQCivQmtCg0KPQndCY0Isg0JjQm9Ce0J3QmtCQCivQmtCg0KPQndCY0Isg0IjQldCb0JXQndCQCivQmtCg0KPQndCY0Isg0InQo9CR0JjQqNCQCivQmtCg0KPQndCY0Isg0InQo9CR0JjQptCQCivQmtCg0KPQndCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KDQo9Cd0JjQiyDQnNCY0IvQngor0JrQoNCj0J3QmNCLINCc0JjQmtCQCivQmtCg0KPQndCY0Isg0JzQmNCb0JDQndCa0JAKK9Ca0KDQo9Cd0JjQiyDQnNCY0JvQkNCdCivQmtCg0KPQndCY0Isg0JzQmNCb0J7QqAor0JrQoNCj0J3QmNCLINCd0J7QktCQ0JoKK9Ca0KDQo9Cd0JjQiyDQn9CQ0JLQm9CVCivQmtCg0KPQndCY0Isg0J/QldCg0JjQqNCQCivQmtCg0KPQndCY0Isg0J/Qm9CV0JzQldCd0JrQkAor0JrQoNCj0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQmtCg0KPQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCj0J3QmNCLINCh0J7QpNCY0IjQkAor0JrQoNCj0J3QmNCLINCi0J7QqNCY0KbQkAor0JrQoNCj0J3QmNCLINCj0KDQntCoCivQmtCg0KPQndCY0Isg0JLQldCb0JjQp9Ca0J4KK9Ca0KDQo9Cd0JjQiyDQktCV0KDQmNCm0JAKK9Ca0KDQo9Cd0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQoNCj0J/QldCW0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Ca0KDQo9Cf0JXQltCV0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Ca0KDQo9Cf0InQkNCd0JjQnSDQodCi0JDQndCQCivQmtCg0KPQn9CJ0JDQndCY0J0g0JLQldCh0JXQm9CQCivQmtCg0KPQotCQINCR0J7QltCQ0J3QkAor0JrQoNCj0KLQkCDQlNCg0JDQk9CQ0J0KK9Ca0KDQktCQ0JLQkNCmINCR0JjQodCV0KDQmtCQCivQmtCg0JLQkNCS0JjQptCQINCU0KDQkNCW0JXQnQor0JrQoNCS0JDQktCY0KbQkCDQotCe0JzQmNCh0JvQkNCSCivQmtCg0JLQntCf0JjQiyDQntCb0JPQkAor0JrQoNCX0JzQkNCd0J7QktCY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQmtCg0JfQndCQ0KDQmNCLINCc0JjQm9CVCivQmtCg0JfQndCQ0KDQmNCLINCS0JDQm9CV0J3QotCY0J3QkAor0JrQo9CnINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KPQp9CV0KDQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQo9Cn0JXQoNCQINCh0KLQldCS0JDQnQor0JrQo9Cn0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQp9Cc0JDQqCDQmNCg0JXQndCQCivQmtCj0KfQnNCQ0Kgg0J3QkNCi0JDQqNCQCivQmtCj0KfQnNCQ0Kgg0J3QmNCa0J7Qm9CQCivQmtCj0KfQndCV0KAg0JvQkNCU0JjQodCb0JDQkgor0JrQo9Co0JDQmtCe0JLQmNCLINCh0JzQmNCJ0JAKK9Ca0KPQqNCb0JjQiyDQnNCY0JvQkNCdCivQmtCj0KjQidCQ0J0g0KHQm9CQ0JLQmtCeCivQmtCj0KjQidCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQo9Co0InQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KPQqNCJ0JjQiyDQkdCe0KDQmNChCivQmtCj0Isg0KHQotCQ0J3QmtCQCivQmtCj0JbQkNCi0JrQniDQkNCd0JjQptCQCivQmtCj0JbQkNCi0JrQniDQldCc0JjQmwor0JrQo9CW0JDQotCa0J4g0JzQkNCg0KLQkAor0JrQo9CW0JDQotCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0JrQo9CW0JXQm9Ca0JAg0KHQmNCc0JAKK9Ca0KPQltCV0KLQmNCdINCR0J7QltCQCivQmtCj0JbQldCi0JjQnSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQo9CW0JXQotCY0J0g0JzQkNCg0JAKK9Ca0KPQltCV0KLQmNCdINCc0JjQm9CQ0J0KK9Ca0KPQltCV0KLQmNCdINCd0J7QktCQ0JoKK9Ca0KPQltCV0JLQodCa0Jgg0JzQmNCb0JjQktCe0IjQlQor0JrQo9CW0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JbQmNCLINCc0JvQkNCU0JXQnQor0JrQo9CW0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0KPQltCY0Isg0J/QldCi0JDQoAor0JrQo9CR0JDQitCYINCQ0J3QkAor0JrQo9CR0JDQndCe0JLQmCDQl9Cb0JDQotCa0J4KK9Ca0KPQkdCQ0KIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KPQkdCQ0KIg0KPQoNCe0KgKK9Ca0KPQkdCQ0KLQntCS0JjQiyDQkNCd0JAKK9Ca0KPQkdCQ0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQmtCj0JHQldCn0JrQkCDQnNCY0JvQkNCdCivQmtCj0JHQldCiINCc0JjQm9CQ0J0KK9Ca0KPQkdCY0KfQldCb0JAg0J/QldCi0JDQoAor0JrQo9CR0JjQp9Ca0J4g0KTQldCg0JXQndCmCivQmtCj0JHQmNCm0JAg0KHQotCI0JXQn9CQ0J0KK9Ca0KPQkdCY0KbQkCDQktCV0KDQkAor0JrQo9CR0JjQmiDQpNCg0JDQndCm0JjQqNCa0JAKK9Ca0KPQkdCY0IrQldCmINCI0J7QodCY0J8KK9Ca0KPQkdCj0KDQmNCLINCc0JjQi9CeCivQmtCj0JHQo9Cg0JjQiyDQndCe0JLQmtCQCivQmtCj0JHQo9Cg0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCj0KbQo9Cb0J7QktCY0Isg0JTQkNCd0JjQptCQCivQmtCj0KbQo9Cb0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JrQo9Cm0KPQoNCQ0KYg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCj0KbQo9Cg0JDQpiDQnNCQ0KDQkAor0JrQo9Cm0KPQoNCQ0KYg0J3QkNCU0JXQltCU0JAKK9Ca0KPQptCj0KDQkNCmINCh0KLQldCS0JDQnQor0JrQo9Cm0KPQoNCh0JrQmCDQgtCj0KDQmNCm0JAKK9Ca0KPQptCj0KDQodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JrQo9Cm0KPQoNCh0JrQmCDQoNCQ0JTQmNCh0JvQkNCSCivQmtCj0JTQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Ca0KPQlNCY0Isg0KHQotCV0JLQkAor0JrQo9CU0KDQkCDQlNCQ0J3QmNCI0JXQm9CQCivQmtCj0JTQoNCQINCe0JvQk9CQCivQmtCj0JTQoNCQLdCX0JjQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQo9CU0KDQmNCLINCU0JXQodCY0JzQmNCgCivQmtCj0JPQkCDQiNCe0JLQkNCdCivQmtCj0JPQmNCLINCY0JvQmNCI0JAKK9Ca0KPQk9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0KPQk9CY0Isg0KHQkNCS0JrQkAor0JrQo9CT0JvQmCDQmNCc0KDQlQor0JrQo9CT0JvQmCDQiNCe0KHQmNCfCivQmtCj0JPQm9CYINCc0JjQpdCQ0IjQm9CeCivQmtCj0JPQm9CYINCc0JjQpdCQ0IkKK9Ca0KPQk9Cb0Jgg0J/QkNCS0JDQngor0JrQo9CT0JvQmCDQoNCe0JbQmNCa0JAKK9Ca0KPQk9Cb0Jgg0KHQotCV0JLQkNCdCivQmtCj0KXQkNCI0JTQkCDQqNCQ0J3QlNCe0KAKK9Ca0KPQpdCQ0IjQlNCQINCa0KHQldCd0JjQiNCQINCc0KAKK9Ca0KPQpdCQ0IjQlNCQINCS0JvQkNCU0JjQnNCY0KAg0JzQoAor0JrQo9Cl0JDQiNCU0JAg0JfQm9CQ0KLQkAor0JrQo9Cl0JDQoCDQiNCV0JvQldCd0JAKK9Ca0KPQpdCQ0KAg0IjQntCS0JDQnQor0JrQo9Cl0JDQoCDQodCb0JDQktCY0KbQkAor0JrQo9CI0JDQp9CY0Isg0JTQoNCQ0JPQkNCdCivQmtCj0IjQntCS0JjQiyDQndCV0JTQkAor0JrQo9CI0J7QktCY0Isg0KHQntCk0JjQiNCQCivQmtCj0IjQo9Cd0I/QmNCLINCb0KPQiNCX0JAKK9Ca0KPQiNCj0J3Qj9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KPQiNCj0J3Qj9CY0Isg0KLQntCc0JDQndCY0IjQkAor0JrQo9CI0KPQndCP0JjQiyDQktCV0KDQkAor0JrQo9Ca0JDQktCY0KbQkCDQiNCe0KDQlNCQ0J0KK9Ca0KPQmtCQ0JLQmNCm0JAg0JzQmNCg0JrQngor0JrQo9Ca0JDQktCY0KbQkCDQoNCj0JbQmNCm0JAKK9Ca0KPQmtCQ0JLQodCa0Jgg0J/QkNCS0JvQlQor0JrQo9Ca0JjQiyDQltCQ0KDQmtCeCivQmtCj0JrQmNCLINCR0KDQkNCd0JrQkAor0JrQo9Ca0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KPQmtCY0Isg0JPQntCI0JrQngor0JrQo9Ca0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQo9Ca0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0KPQmtCY0Isg0IjQldCb0JrQkAor0JrQo9Ca0JjQiyDQnNCY0JvQkNCdCivQmtCj0JrQmNCLINCc0JjQm9Ce0IjQmtCQCivQmtCj0JrQmNCLINCc0JjQoNCI0JDQndCQCivQmtCj0JrQmNCLINCc0JjQoNCa0J4KK9Ca0KPQmtCY0Isg0J3QldCR0J7QiNCo0JAKK9Ca0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0JrQmNCLINCf0JXQotCQ0KAKK9Ca0KPQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9Ca0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KPQmtCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQo9Ca0JjQiyDQktCV0KDQkAor0JrQo9Ca0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCj0JrQmNCLINCX0J7QoNCQ0J0KK9Ca0KPQmtCY0Isg0JfQntCg0JDQnQor0JrQo9Ca0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQmtCj0JrQmNCdINCW0JjQktCQ0J0KK9Ca0KPQmtCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KPQmtCY0J0g0JTQldCI0JDQnQor0JrQo9Ca0JjQnSDQodCc0JjQidCa0JAKK9Ca0KPQmtCb0JAg0JjQktCQ0J0KK9Ca0KPQmtCe0Kcg0JLQmNCd0JrQngor0JrQo9Ca0J7QkdCQ0KIg0KDQkNCU0J7QktCQ0J0KK9Ca0KPQmtCe0Ikg0JTQkNCd0JUKK9Ca0KPQmtCe0Ikg0JTQoNCQ0JPQkNCdCivQmtCj0JrQntCJINCU0KPQqNCa0J4KK9Ca0KPQmtCe0Ikg0JzQmNCb0JrQkAor0JrQo9Ca0J7QiSDQnNCY0KDQiNCQ0J3QkAor0JrQo9Ca0J7QiSDQoNCQ0JTQnNCY0JvQkAor0JrQo9Ca0J7QiSDQoNCQ0IjQmtCeCivQmtCj0JrQntCS0KHQmtCYINCI0J7QktCQ0J0KK9Ca0KPQmtCg0JjQmtCQINCR0J7QqNCa0J4KK9Ca0KPQmtCj0KfQmtCQINCI0JDQnQor0JrQo9Ca0KPQp9Ca0JAg0JzQmNCl0JDQiNCb0J4KK9Ca0KPQmtCj0Ikg0JTQntCR0KDQmNCb0JAKK9Ca0KPQmtCj0KDQntCSINCI0J7QodCY0KQKK9Ca0KPQmtCj0KDQo9CX0J7QktCY0Isg0IjQldCb0JXQndCQCivQmtCj0JrQo9Cg0KPQl9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KPQm9Cn0JDQoCDQmNCo0KLQktCQ0J0KK9Ca0KPQm9CQ0KfQkNCd0JjQnSDQkNCd0JjQptCQCivQmtCj0JvQkNCn0JDQndCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCj0JvQkNCn0JDQndCY0J0g0JzQmNCb0JXQndCa0J4KK9Ca0KPQm9CQ0KfQkNCd0JjQnSDQndCQ0JTQkAor0JrQo9Cb0JDQp9CY0Isg0JfQktCe0J3QmNCc0JjQoAor0JrQo9Cb0JDQp9CY0J0g0ILQo9Cg0J4KK9Ca0KPQm9CQ0KfQmNCdINCR0KPQlNCY0JzQmtCQCivQmtCj0JvQkNCn0JjQnSDQlNCj0KjQkNCdCivQmtCj0JvQkNCn0JjQnSDQodCb0JDQktCa0J4KK9Ca0KPQm9CQ0KfQmtCYINCc0JjQotCQ0KAKK9Ca0KPQm9CQ0Kgg0JzQkNCg0JrQngor0JrQo9Cb0JDQqCDQodCb0J7QkdCe0JTQkNCdCivQmtCj0JvQkNCo0JXQktCY0Isg0JfQm9CQ0KLQkAor0JrQo9Cb0JDQqNCY0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JrQo9Cb0JDQqNCY0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0KPQm9CQ0KjQmNCd0J7QktCY0Isg0JTQo9Co0JjQptCQCivQmtCj0JvQkNCo0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0KPQm9CQ0KjQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0KPQm9CQ0KPQl9Ce0JIg0JDQoNCa0JDQlNCY0IjQlQor0JrQo9Cb0JDQo9CX0J7QkiDQiNCe0JLQkNCd0JrQkAor0JrQo9Cb0JDQo9CX0J7QkiDQnNCY0JvQldCd0JrQniDQlNCgCivQmtCj0JvQldCo0JXQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ca0KPQm9CV0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQmtCj0JvQldCo0JrQniDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JrQo9Cb0JXQndCe0JLQmNCLINCQ0KXQnNCV0JQKK9Ca0KPQm9CV0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQmtCj0JvQldCS0KHQmtCYINCa0JDQotCY0KbQkAor0JrQo9Cb0JXQktCh0JrQmCDQoNCe0JbQkAor0JrQo9Cb0JXQktCh0JrQmCDQoNCe0JbQkAor0JrQo9Cb0JjQqNCY0Isg0J3QldCU0JAKK9Ca0KPQm9CY0KjQmNCLINCe0JvQk9CQCivQmtCj0JvQmNCo0JjQiyDQodCb0JDQktCe0InQo9CRCivQmtCj0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQmtCj0JvQmNCLINCI0J7QktCQ0J0KK9Ca0KPQm9CY0Isg0IjQntCS0J4KK9Ca0KPQm9CY0Isg0JvQkNCX0JDQoAor0JrQo9Cb0JjQiyDQndCV0JHQntCI0KjQkAor0JrQo9Cb0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQo9Cb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCj0JvQmNCP0JDQnSDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JvQmNCP0JDQnSDQndCV0JzQkNCK0JAKK9Ca0KPQm9CY0I/QkNCdINCS0JDQodCeINCU0KAKK9Ca0KPQidCQ0KfQkCDQmNCb0JjQiNCQCivQmtCj0InQkNCn0JAg0J/QldCi0JDQoAor0JrQo9CJ0JDQmiDQnNCQ0KDQmNCI0JAKK9Ca0KPQidCQ0J3Qp9CY0Isg0JTQo9Co0JDQnQor0JrQo9CJ0JDQndCn0JjQiyDQiNCj0JvQmtCQCivQmtCj0InQkNCd0KfQmNCLINCc0JjQm9CV0J3QkAor0JrQo9CJ0JDQndCn0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQidCQ0J3Qp9CY0Isg0KHQkNCS0J4KK9Ca0KPQidCQ0J3Qp9CY0Isg0JLQldCg0JAKK9Ca0KPQidCQ0J3QmNCdINCI0JDQmtCe0JIKK9Ca0KPQidCQ0J3QmtCY0Isg0JzQo9Cg0JDQlNCY0KQKK9Ca0KPQidCQ0J3QodCa0Jgg0J7Qm9CT0JAKK9Ca0KPQidCQ0J3QodCa0Jgg0KHQm9CQ0JLQmtCeCivQmtCj0InQmNCoINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KPQidCY0Isg0JHQmNCh0JXQoNCa0JAKK9Ca0KPQidCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCj0InQmNCLINCb0JDQl9CQ0KAKK9Ca0KPQidCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KPQidCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQidCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0KPQidCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0InQmNCLINCf0JXQotCQ0KAKK9Ca0KPQidCY0Isg0KHQkNCS0J4KK9Ca0KPQidCY0Ist0KHQnNCj0ILQkCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ca0KPQidCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0KPQm9Ca0JAg0JPQoNCV0KLQkAor0JrQo9Cb0J/QmNCd0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCj0JvQn9CY0J3Qp9CV0JLQmNCLINCI0J7QktCeCivQmtCj0JvQn9CY0J3QodCa0Jgg0JTQo9Co0JDQnQor0JrQo9Cb0J/QmNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQmtCj0JvQn9CY0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQmtCj0JvQn9CY0J3QodCa0Jgg0JLQo9CI0JDQlNCY0J0KK9Ca0KPQnNCQ0J3QntCSINCW0JjQktCQ0J0KK9Ca0KPQnNCQ0J3QntCSINCR0J7QltCY0JTQkNCgCivQmtCj0JzQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KPQnNCQ0JfQldCmINCb0JDQl9CQCivQmtCj0JzQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Ca0KPQnNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JrQo9Cc0J7QktCY0Isg0KHQkNCS0J4KK9Ca0KPQnSDQgtCj0KDQkAor0JrQo9CdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCj0J0g0JHQldCb0JAKK9Ca0KPQnSDQlNCQ0J3QmNCm0JAKK9Ca0KPQnSDQldCU0JjQotCQCivQmtCj0J0g0JXQoNCd0JUKK9Ca0KPQnSDQm9CQ0KHQm9CeCivQmtCj0J0g0KHQotCV0JLQkNCdCivQmtCj0J3Qp9CQ0JrQntCS0JAg0JzQkNCg0JjQiNCQCivQmtCj0J3QkNCg0JDQpiDQkNCd0JjQldCb0JAKK9Ca0KPQndCU0JDQp9CY0J3QkCDQiNCe0JLQngor0JrQo9Cd0JTQkNCn0JjQndCQINCg0JDQlNCe0JLQkNCdCivQmtCj0J3QlNCQ0KfQmNCd0JAg0KHQkNCS0J4KK9Ca0KPQndCY0Isg0ILQntCg0ILQlQor0JrQo9Cd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQo9Cd0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9Ca0KPQndCe0KHQmNCLINCd0JXQj9CQ0JQKK9Ca0KPQndCe0KHQmNCLINCe0KHQnNCQ0J0KK9Ca0KPQndCe0JLQkNCmINCJ0KPQkdCeCivQmtCj0J3QodCiINCY0KDQldCdCivQmtCj0J3QodCi0JzQkNCdINCQ0J3QkNCh0KLQkNCh0JjQiNCQCivQmtCj0J/QldCaINCW0JXQidCa0JAKK9Ca0KPQn9CV0Jog0JfQntCg0JjQptCQCivQmtCj0J/QmNCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQmtCj0J/QoNCV0KjQkNCaINCU0JDQndCY0JvQngor0JrQo9Cf0KDQldCo0JDQmiDQktCY0JTQkAor0JrQo9Cf0KDQldCo0JDQndCY0J0g0JHQmNCJ0JDQndCQCivQmtCj0J/QoNCV0KjQkNCd0JjQnSDQmNCb0JjQiNCQCivQmtCj0J/QoNCV0KjQkNCd0JjQnSDQnNCY0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KPQn9Cg0JXQqNCa0Jgg0IjQntCm0JAKK9Ca0KPQn9Cg0JXQqNCa0Jgg0JLQldCg0JAKK9Ca0KPQn9Cj0KHQkNCg0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCj0J/Qo9Ch0JjQndCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCj0J/Qo9Ch0JjQndCQ0KYg0JLQldCJ0JrQngor0JrQo9Cg0KfQo9CR0JjQiyDQlNCg0JDQk9CY0IsKK9Ca0KPQoNCn0KPQkdCY0Isg0JzQldCb0JDQndCY0IjQkAor0JrQo9Cg0KjQo9Cc0J7QktCY0Isg0JDQktCU0KPQm9CQ0KUKK9Ca0KPQoNCQ0IjQmNCLINCI0J7QktCQ0J0KK9Ca0KPQoNCQ0J0g0JjQktCQ0J0KK9Ca0KPQoNCQ0IrQmCDQiNCQ0J0KK9Ca0KPQoNCQ0IrQmCDQiNCQ0J0KK9Ca0KPQoNCR0JDQm9CY0IjQkCDQgtCe0KDQgtCVCivQmtCj0KDQkdCQ0JvQmNCI0JAg0JTQkNCd0JjQptCQCivQmtCj0KDQkdCQ0JvQmNCI0JAg0IjQntCS0JDQnQor0JrQo9Cg0JHQkNCb0JjQiNCQINCb0JDQl9CQ0KAKK9Ca0KPQoNCR0JDQm9CY0IjQkCDQnNCY0KDQiNCQ0J3QkAor0JrQo9Cg0JHQkNCi0KTQmNCd0KHQmtCYINCk0JXQgtCQINCU0JjQn9CbINCY0J3Qkwor0JrQo9Cg0JHQkNCi0KTQmNCd0KHQmtCYINCY0JLQkNCdCivQmtCj0KDQkdCQ0KLQpNCY0J3QodCa0Jgg0KHQm9CQ0JLQmtCeCivQmtCj0KDQkdCQ0KLQpNCY0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQo9Cg0JHQkNCi0JLQmNCd0KHQmtCYINCU0JjQndCQCivQmtCj0KDQkdCQ0KLQktCY0J3QodCa0Jgg0JjQktCQ0J0KK9Ca0KPQoNCR0JDQotCS0JjQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0KPQoNCR0JDQotCS0JjQndCh0JrQmCDQl9Ce0KDQkAor0JrQo9Cg0KbQmNCd0JDQmiDQldCc0JjQmwor0JrQo9Cg0KbQmNCd0JDQmiDQmNCc0KDQlQor0JrQo9Cg0KbQmNCd0JDQmiDQiNCe0KHQmNCfCivQmtCj0KDQptCY0J3QkNCaINCb0JDQiNCe0KgKK9Ca0KPQoNCm0JjQndCQ0Jog0J/QkNCS0JvQlQor0JrQo9Cg0KbQmNCd0JDQmiDQodCi0JXQktCQ0J0KK9Ca0KPQoNCm0JjQndCQ0Jog0JLQldCh0J3QkAor0JrQo9Cg0JTQmCDQkNCc0JDQm9CY0IjQkAor0JrQo9Cg0JTQntCS0KHQmtCYINCc0JjQotCQ0KAKK9Ca0KPQoNCU0KPQm9CY0Isg0JzQmNCb0J7QqAor0JrQo9Cg0JXQqNCV0JLQmNCLINCg0JDQptCa0J4KK9Ca0KPQoNCV0KjQldCS0JjQiyDQodCQ0JLQngor0JrQo9Cg0JXQmtCQ0Kgg0JzQmNCi0JDQoAor0JrQo9Cg0JXQn9CQINCS0JDQodCQCivQmtCj0KDQmNCoINCo0KLQldCk0JDQnQor0JrQo9Cg0JjQj9CQINCR0J7Qk9CU0JDQnQor0JrQo9Cg0JjQj9CQINCU0KPQqNCQ0J0KK9Ca0KPQoNCY0Igg0KLQntCc0JjQodCb0JDQkgor0JrQo9Cg0JjQiNCQINCS0JXQidCa0J4KK9Ca0KPQoNCY0JrQqNCQINCQ0J3QotCe0J3QmNCd0JAKK9Ca0KPQoNCY0JvQkCDQiNCQ0J3QntCoCivQmtCj0KDQmNCb0JjQiyDQiNCe0JLQngor0JrQo9Cg0JjQm9CY0Isg0JzQmNCb0JDQnQor0JrQo9Cg0JjQm9CY0Isg0JzQmNCb0J7QqAor0JrQo9Cg0JjQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQo9Cg0JjQnSDQgtCe0KDQgtCVCivQmtCj0KDQmNCdINCI0J7QodCY0J8KK9Ca0KPQoNCI0JDQp9Ca0Jgg0JbQmNCS0JrQngor0JrQo9Cg0IjQkNCn0JrQmCDQgtCe0KDQgtCVCivQmtCj0KDQiNCQ0KfQmtCYINCC0KPQoNCC0JjQndCQCivQmtCj0KDQiNCQ0KfQmtCYINCQ0J3QmtCY0KbQkAor0JrQo9Cg0IjQkNCn0JrQmCDQlNCQ0J3QmNCm0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0IjQntCS0JDQnQor0JrQo9Cg0IjQkNCn0JrQmCDQnNCY0KXQkNCI0JvQngor0JrQo9Cg0IjQkNCn0JrQmCDQnNCY0JvQkNCdCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQm9CV0JLQkAor0JrQo9Cg0IjQkNCn0JrQmCDQnNCY0JvQldCS0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0JzQmNCb0JjQptCQCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQm9CY0JLQntCICivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQntCU0KDQkNCTCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQmtCj0KDQiNCQ0KfQmtCYINCh0KDQldCU0J7QiNCVCivQmtCj0KDQiNCQ0KfQmtCYINCh0KLQkNCd0JrQngor0JrQo9Cg0IjQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Ca0KPQoNCI0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JrQo9Cg0IjQkNCn0JrQmCDQl9Ce0KDQkAor0JrQo9Cg0IjQkNCa0J7QkiDQgtCe0KDQgtCVCivQmtCj0KDQiNCQ0JrQntCSINCU0JDQndCY0JvQngor0JrQo9Cg0IjQkNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Ca0KPQoNCI0JDQmtCe0JIg0JzQmNCb0JDQnQor0JrQo9Cg0IjQkNCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0JrQo9Cg0IjQkNCa0J7QkiDQoNCe0JrQodCQ0J3QlNCQCivQmtCj0KDQiNCQ0JrQntCSINCS0JjQmtCi0J7QoNCY0IjQkAor0JrQo9Cg0KEg0ILQntCg0ILQlQor0JrQo9Cg0KLQkCDQkNCX0JjQoQor0JrQo9Cg0KLQldCoINCI0JDQodCd0JAKK9Ca0KPQoNCi0JXQqCDQm9CQ0JfQkNCgCivQmtCj0KDQotCV0Kgg0JzQkNCg0JAKK9Ca0KPQoNCi0JXQqCDQodCS0JXQotCa0J4KK9Ca0KPQoNCi0JXQqNCYINCk0KPQkNCiCivQmtCj0KDQotCV0KjQmCDQndCj0KHQoNCV0KIKK9Ca0KPQoNCi0JXQqNCYINCX0JXQndCj0J0KK9Ca0KPQoNCi0Jgg0JzQo9Ch0KLQkNCk0JAKK9Ca0KPQoNCi0Jgg0J3QldCX0JjQoAor0JrQo9Cg0KLQmNCo0JXQktCY0Isg0J3QkNCh0KPQpAor0JrQo9Cg0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCj0KDQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0KPQoNCi0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQo9Cg0KLQmNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0KPQoNCi0J7QktCY0Isg0JDQndCQCivQmtCj0KDQotCe0JLQmNCLINCY0JLQkNCdCivQmtCj0KDQotCj0KjQmNCLINCY0JLQkNCd0JrQkAor0JrQo9Cg0KPQp9CV0JIg0JzQkNCg0JjQiNCQCivQmtCj0KDQo9Cn0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JrQo9Cg0KPQp9CV0JIg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9Cg0KPQp9Ca0Jgg0JrQkNCc0JXQndCa0J4KK9Ca0KPQoNCj0KfQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KPQoNCj0KfQmtCYINCX0JvQkNCi0JjQnNCY0KAKK9Ca0KPQoNCj0KjQmNCLINCR0J7QoNCeCivQmtCj0KDQo9CmINCC0KPQm9CQCivQmtCj0KDQo9CmINCC0KPQm9CQCivQmtCj0KDQo9CmINCY0JPQndCQ0KYKK9Ca0KPQoNCj0KYg0JjQoNCV0J3QkAor0JrQo9Cg0KPQpiDQiNCQ0J3QntCoCivQmtCj0KDQo9CmINCI0J7QktCeCivQmtCj0KDQo9CmINCb0JDQiNCe0KgKK9Ca0KPQoNCj0KYg0JvQkNCh0JvQngor0JrQo9Cg0KPQpiDQndCQ0J3QlNCe0KAKK9Ca0KPQoNCj0KYg0KLQmNCR0J7QoAor0JrQo9Cg0KPQpiDQktCY0J3QmtCQCivQmtCj0KDQo9Cm0JAg0JHQntCW0JAKK9Ca0KPQoNCj0KbQkCDQiNCe0JLQkNCdCivQmtCj0KDQo9Cm0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KPQoNCj0KbQmNCLINCJ0KPQkdCY0KbQkAor0JrQo9Cg0KPQptCY0Isg0KHQmNCd0JjQqNCQCivQmtCj0KDQo9Cm0JjQiyDQktCY0KLQntCc0JjQoAor0JrQo9Cg0KPQptCY0J0g0JbQmNCS0JDQndCQCivQmtCj0KDQo9Cd0KbQmCDQkNCd0JTQoNCY0IjQkAor0JrQo9Cg0KPQndCm0Jgg0IjQntCW0JXQpAor0JrQo9Cg0KPQndCm0Jgg0IjQntCW0JXQpAor0JrQo9Cg0KPQndCm0Jgg0JzQkNCg0JjQiNCQCivQmtCj0KDQo9CX0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ca0KPQodCY0Isg0KHQoNCV0KLQmtCeCivQmtCj0KHQm9CYINCk0JXQoNCV0J3Qpgor0JrQo9Ch0JvQmCDQk9CV0JfQkAor0JrQo9Ch0JzQo9CaINCU0JDQoNCY0J3QmtCQCivQmtCj0KHQotCY0Isg0KHQntCk0JjQiNCQCivQmtCj0KHQotCj0JTQmNCI0JAg0JTQkNCd0JjQptCQCivQmtCj0KHQotCj0JTQmNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0JrQo9Ch0KLQo9CU0JjQiNCQINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KPQodCi0KPQoNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0KHQotCj0KDQmNCLINCh0JXQm9CY0JzQmNCgCivQmtCj0KHQotCj0KDQmNCm0JAg0KXQkNCh0JDQnQor0JrQo9Ch0KLQo9Cg0JjQptCQINCd0JDQl9CY0KQKK9Ca0KPQodCi0KPQoNCY0J0g0JDQndCi0KPQnQor0JrQo9Ch0KLQo9Cg0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQo9Ch0KPQoNCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JrQo9Ci0JjQiNCV0JLQkNCmINCJ0KPQkdCY0KbQkAor0JrQo9Ci0JvQkNCn0JAg0JzQkNCg0JrQngor0JrQo9Ci0JvQldCo0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KPQotCb0JXQqNCY0Isg0InQo9CR0JjQqNCQCivQmtCj0KLQoNCYINCa0JDQoNCb0J4KK9Ca0KPQotCg0Jgg0JrQkNCg0J7QiQor0JrQo9Ci0KDQmCDQodCi0JXQktCQ0J0KK9Ca0KPQotCg0JjQp9Ca0Jgg0JfQntCg0JDQnQor0JrQo9Ci0KPQl9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9Ca0KPQotCj0JfQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KPQktCQ0Ikg0KHQotCV0JLQkNCdCivQmtCj0JLQkNCJ0JAg0JTQoNCQ0JPQkNCdCivQmtCj0JLQkNCJ0JAg0JTQoNCQ0JPQntCJ0KPQkQor0JrQo9CS0JDQidCQINCa0JDQotCY0KbQkAor0JrQo9CS0JDQidCQINCe0KHQotCe0IjQkAor0JrQo9CS0JXQmtCQ0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCj0JLQldCa0JDQm9Ce0JLQmNCLINCh0KLQoNCQ0JjQnQor0JrQo9CS0JXQidCY0Isg0JbQkNCg0JrQngor0JrQo9CS0JXQidCY0Isg0InQmNCJ0JDQndCQCivQmtCj0JLQldCJ0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQmtCj0JLQldCJ0JjQiyDQoNCQ0JTQntCc0JDQnQor0JrQo9CS0JjQl9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0KPQktCY0JfQmNCLINCW0JjQktCe0IjQmNCdCivQmtCj0JfQldCS0KHQmtCYINCU0KDQkNCT0JDQnQor0JrQo9CX0JzQkNCdINCQ0J3QmtCQCivQmtCj0JfQnNCQ0J0g0JHQntCT0JTQkNCdCivQmtCj0JfQnNCQ0J0g0JHQntCT0JTQkNCdCivQmtCj0JfQnNCQ0J0g0JHQntCg0JjQodCb0JDQkgor0JrQo9CX0JzQkNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQo9CX0JzQkNCdINCU0KDQkNCT0JDQnQor0JrQo9CX0JzQkNCdINCc0JjQm9CQ0J0KK9Ca0KPQl9Cc0JDQnSDQnNCY0JvQntCS0JDQnQor0JrQo9CX0JzQkNCdINCc0JjQoNCa0J4KK9Ca0KPQl9Cc0JDQnSDQndCQ0JTQkAor0JrQo9CX0JzQkNCdINCd0JDQlNCQCivQmtCj0JfQnNCQ0J0g0J3QkNCU0JAKK9Ca0KPQl9Cc0JDQnSDQndCQ0JTQldCW0JTQkAor0JrQo9CX0JzQkNCdINCf0JXQotCQ0KAKK9Ca0KPQl9Cc0JDQnSDQoNCY0KHQotCeCivQmtCj0JfQnNCQ0J0g0KHQm9CQ0JLQmNCm0JAKK9Ca0KPQl9Cc0JDQndCn0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQo9CX0JzQkNCd0KfQldCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQo9CX0JzQkNCd0KfQldCSINCU0KPQqNCQ0J0KK9Ca0KPQl9Cc0JDQndCn0JXQkiDQntCb0JjQktCV0KDQkCDQlNCgCivQmtCj0JfQnNCQ0J3Qp9CV0JIg0KLQmNCc0J7QqNCV0J3QmtCeCivQmtCj0JfQnNCQ0J3QntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQmtCj0JfQnNCQ0J3QntCSINCe0JHQoNCQ0JQKK9Ca0KPQl9Cc0JDQndCe0JIg0J7QkdCg0JDQlAor0JrQo9CX0JzQkNCd0J7QkiDQoNCQ0JTQntCoINCU0JjQn9CbINCY0J3Qkwor0JrQo9CX0JzQkNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQmtCj0JfQnNCQ0J3QntCSINCh0JDQktCQCivQmtCj0JfQnNCQ0J3QntCSINCh0JvQkNCS0JrQngor0JrQo9CX0JzQkNCd0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JIg0KLQkNCd0JDQodCY0IjQlQor0JrQo9CX0JzQkNCd0J7QkiDQl9Ce0KDQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCC0KPQoNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCa0JDQotCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JvQldCd0JrQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JzQmNCJ0J7QiNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQn9CQ0IjQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCi0J7QlNCe0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCi0J7QlNCe0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0JXQoNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JfQntCg0JAKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0JHQm9CQ0JPQntCI0JAKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0KbQktCV0KLQkAor0JrQo9CX0JzQkNCd0J7QktCh0JrQmCDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCc0JjQm9CVCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCf0JXQoNCVCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCg0JDQlNCe0IjQmtCQCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCi0JDQodCVCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCi0KDQkNCI0KfQlQor0JrQo9CX0JzQmNCLINCc0JjQm9Ca0JAKK9Ca0KPQl9Cc0JjQiyDQl9CS0J7QndCa0J4KK9Ca0KPQl9Cc0JjQndCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JrQo9CX0JzQmNCd0JDQpiDQk9Ce0KDQlNCQ0J3QkAor0JrQo9CX0JzQmNCd0JDQpiDQn9CV0KLQkNCgCivQmtCj0JfQnNCY0J3QkNCmINCf0KDQldCU0KDQkNCTCivQmtCj0JfQnNCY0J3QkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0JLQkNCo0KfQldCSINCI0J7QktCQ0J0KK9Ca0JLQkNCo0KfQldCSINCc0JjQoNCQCivQmtCS0JDQqNCn0JXQkiDQoNCQ0JTQmNCS0J7QiAor0JrQktCQ0JjQiyDQgtCe0KDQgtCVCivQmtCS0JDQmNCLINCU0KPQqNCQ0J0KK9Ca0JLQkNCY0Isg0IjQldCb0JXQndCQCivQmtCS0JDQmNCLINCc0JjQm9CV0JLQkAor0JrQktCg0JPQmNCLINCR0J7QqNCa0J4KK9Ca0JLQoNCT0JjQiyDQnNCY0JvQkNCdCivQmtCS0KDQk9CY0Isg0J/QldCi0JDQoAor0JrQktCg0JPQmNCLINCg0JDQlNCe0JLQkNCdCivQmtCS0KDQk9CY0Isg0KHQkNCS0J4KK9Ca0JLQoNCT0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0KfQkNCd0KHQmtCYINCU0JXQodCQ0J3QmtCQCivQm9CQ0KfQntCaINCa0JDQoNCb0J4KK9Cb0JDQp9Ce0Jog0JrQkNCg0J7QiQor0JvQkNCo0JrQntCSINCY0JPQntCgINCU0JjQn9CbINCY0J3Qkwor0JvQkNCL0JDQmiDQgtCj0KDQkAor0JvQkNCL0JDQmiDQnNCY0KXQkNCJCivQm9CQ0IvQkNCd0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0JDQi9CQ0KDQkNCmINCW0JDQoNCa0J4KK9Cb0JDQi9CQ0KDQkNCmINCR0JjQidCQ0J3QkAor0JvQkNCL0JDQoNCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JvQkNCL0JDQoNCQ0KYg0JTQntCR0KDQmNCS0J7QiNCVCivQm9CQ0IvQkNCg0JDQpiDQiNCe0JLQkNCdCivQm9CQ0IvQkNCg0JDQpiDQnNCQ0JrQodCY0JwKK9Cb0JDQi9CQ0KDQkNCmINCd0JjQmtCe0JvQkAor0JvQkNCL0JDQoNCQ0KYg0J3QmNCa0J7Qm9CQCivQm9CQ0IvQkNCg0JDQpiDQndCY0JrQntCb0JAKK9Cb0JDQi9CQ0KDQkNCmINCi0JXQntCU0J7QoAor0JvQkNCL0JDQoNCQ0KYg0JLQldCg0JAKK9Cb0JDQi9CQ0KDQkNCaINCW0JDQoNCa0J4KK9Cb0JDQi9CQ0KDQkNCaINCb0JDQl9CQ0KAKK9Cb0JDQi9CQ0KDQkNCaINCb0JDQl9CQCivQm9CQ0IvQkNCg0JDQmiDQnNCY0JvQntCoCivQm9CQ0IvQkNCg0JDQmiDQnNCb0JDQlNCV0J0KK9Cb0JDQi9CQ0KDQkNCaINCe0JPQitCQ0J3QmtCQCivQm9CQ0JbQldCT0JjQiyDQndCV0JLQldCd0JrQkAor0JvQkNCW0JXQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQltCV0KLQmNCLINCc0JDQoNCY0IjQkCDQlNCgCivQm9CQ0ILQldCS0JDQpiDQlNCj0KjQkNCdCivQm9CQ0ILQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQgtCV0JLQmNCLINCT0J7QiNCa0J4KK9Cb0JDQgtCV0JLQmNCLINCI0J7QktCQ0J0KK9Cb0JDQgtCY0J3QntCS0JjQiyDQltCY0JrQkAor0JvQkNCC0JjQndCe0JLQmNCLINCX0JvQkNCi0JrQngor0JvQkNCR0JDQqCDQmNCS0JDQnQor0JvQkNCR0JDQlNCYINCI0J7QltCV0KQKK9Cb0JDQkdCQ0J0g0IjQo9Cb0JrQkAor0JvQkNCR0JDQnSDQnNCY0KDQmtCeCivQm9CQ0JHQkNCiINCQ0J3QkAor0JvQkNCR0JDQoiDQkNCd0JrQkAor0JvQkNCR0JDQoiDQiNCQ0J0KK9Cb0JDQkdCQ0KIg0JrQktCV0KLQntCh0JvQkNCS0JAKK9Cb0JDQkdCQ0KIg0KDQo9CW0JXQndCQCivQm9CQ0JHQkNCiINCh0KLQldCS0JDQnQor0JvQkNCR0JDQoiDQktCV0KDQkAor0JvQkNCR0JDQoiDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JHQkNCiINCS0JvQkNCU0JjQodCb0JDQkgor0JvQkNCR0JDQktCY0Isg0JjQktCQ0J0KK9Cb0JDQkdCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQm9CQ0JHQntCS0JjQiyDQnNCQ0J3QntCI0JvQngor0JvQkNCR0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQm9CQ0JHQo9CU0J7QktCY0Isg0JHQntCg0JjQoQor0JvQkNCR0KPQlNCe0JLQmNCLINCl0JXQm9CV0J3QkAor0JvQkNCR0KPQlNCe0JLQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Cb0JDQkdCj0JTQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JHQo9ChINCC0KPQoNCeCivQm9CQ0JHQo9ChINCR0J7QltCY0JTQkNCgCivQm9CQ0JHQo9ChINCR0KDQkNCd0JrQngor0JvQkNCR0KPQoSDQmNCb0JjQiNCQCivQm9CQ0JHQo9ChINCI0J7QktCQ0J0KK9Cb0JDQkdCj0KEg0InQo9CR0J7QnNCY0KAKK9Cb0JDQkdCj0KEg0JzQkNCa0JXQlNCe0J3QmtCQCivQm9CQ0JHQo9ChINCc0JjQm9CQ0J0KK9Cb0JDQkdCj0KEg0JzQmNCb0JDQnQor0JvQkNCR0KPQoSDQnNCY0JvQkNCdCivQm9CQ0JHQo9ChINCc0JjQm9CQ0J0KK9Cb0JDQkdCj0KEg0JzQmNCb0JUKK9Cb0JDQkdCj0KEg0J3QmNCa0J7Qm9CQCivQm9CQ0JHQo9ChINCh0JvQkNCS0JrQngor0JvQkNCm0JjQmiDQiNCQ0J3QntCoCivQm9CQ0KbQmNCaINCh0JvQkNCS0JjQptCQCivQm9CQ0KbQmtCeINCc0JjQpdCQ0IjQm9CeCivQm9CQ0KbQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQm9CQ0KbQmtCe0JLQmNCLINCI0J7QodCY0J8KK9Cb0JDQptCa0J7QktCY0Isg0KDQkNCU0JUKK9Cb0JDQptCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cb0JDQptCa0J7QktCY0Isg0KHQntCk0JjQiNCQCivQm9CQ0KbQmtCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cb0JDQptCa0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQm9CQ0KbQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQptCc0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQm9CQ0KbQnNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0IjQmtCQCivQm9CQ0JTQkNCgINCc0JjQm9Ce0KgKK9Cb0JDQlNCQ0KAg0KHQotCV0JLQkNCdCivQm9CQ0JTQmCDQmNCo0KLQktCQ0J0KK9Cb0JDQlNCYINCb0JDQiNCe0KgKK9Cb0JDQlNCYINCc0JDQoNCY0IjQkAor0JvQkNCU0JjQqNCY0Isg0JDQndCi0J7QnQor0JvQkNCU0JjQqNCY0Isg0JPQo9Ch0KLQkNCSCivQm9CQ0JTQmNCo0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQkNCU0JjQqNCY0Isg0IjQntCh0JjQnwor0JvQkNCU0JjQqNCY0Isg0JzQmNCg0JrQngor0JvQkNCU0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JTQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQlNCY0Jog0KjQkNCd0JTQntCgCivQm9CQ0JTQmNCaINCk0JXQoNCV0J3Qpgor0JvQkNCU0JjQmiDQmtCQ0KLQkNCb0JjQnQor0JvQkNCU0JjQmiDQmtCQ0KLQkNCb0JjQnQor0JvQkNCU0JjQmiDQnNCQ0KDQk9CY0KLQkAor0JvQkNCU0JjQmiDQnNCY0KDQiNCQ0J3QkAor0JvQkNCU0JjQmtCQINCR0JvQkNCWCivQm9CQ0JTQntCm0JrQmCDQkNCd0JTQoNCY0IjQkAor0JvQkNCU0J7Qm9CV0JYg0JXQoNCW0JXQkdCV0KIKK9Cb0JDQlNCe0JvQldCWINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JPQo9Cc0I/QmNCI0JAg0KXQkNCc0JjQlAor0JvQkNCT0KPQnNCP0JjQiNCQINCc0JjQm9CV0J3QkAor0JvQkNCT0KPQndCP0JjQnSDQlNCg0JDQk9CQ0J0KK9Cb0JDQk9Cj0J3Qj9CY0J0g0JTQoNCQ0JPQkNCdCivQm9CQ0JPQo9Cd0I/QmNCdINCU0KDQkNCT0JDQnQor0JvQkNCT0KPQndCP0JjQnSDQodCS0JXQotCe0JfQkNCgCivQm9CQ0JPQo9Cd0I/QmNCdINCX0J7QoNCQ0J0KK9Cb0JDQpdCQ0KDQndCQ0KAg0JvQo9Cm0JjQiNCQCivQm9CQ0KXQntCoINCC0J7QoNCC0JUKK9Cb0JDQpdCe0Kgg0JDQndCU0KDQmNCI0JAKK9Cb0JDQpdCe0Kgg0JjQqNCi0JLQkNCdCivQm9CQ0JjQndCe0JLQmNCLINCQ0JvQldCa0KHQkAor0JvQkNCY0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQm9CQ0JjQndCe0JLQmNCLINCg0JDQndCa0J4KK9Cb0JDQiNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQiNCo0JjQiyDQl9Ce0KDQmtCQCivQm9CQ0IjQpSDQnNCQ0KDQmNCI0JAKK9Cb0JDQiNCl0KLQndCV0KAg0JDQndCi0JDQmwor0JvQkNCI0KXQotCd0JXQoCDQpNCg0JDQitCQCivQm9CQ0IjQpdCi0J3QldCgINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQiNCY0Isg0KjQotCV0KTQmtCQCivQm9CQ0IjQmNCLINCR0KDQkNCd0JrQngor0JvQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQiNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JvQkNCI0JjQiyDQidCY0InQkNCd0JAKK9Cb0JDQiNCY0Isg0JzQmNCg0JrQngor0JvQkNCI0JjQiyDQoNCQ0IjQmtCeCivQm9CQ0IjQmNCLINCh0KLQkNCd0JAKK9Cb0JDQiNCY0Isg0JfQlNCg0JDQktCa0J4KK9Cb0JDQiNCa0J4g0KjQkNCd0JTQntCgCivQm9CQ0IjQmtCeINCI0J7QodCY0J8KK9Cb0JDQiNCa0J4g0JvQkNCI0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQiNCa0J4g0JzQkNCg0JjQiNCQCivQm9CQ0IjQmtCeINCh0KLQldCS0JDQnQor0JvQkNCI0JrQniDQktCV0KDQkAor0JvQkNCI0J7QqCDQm9CQ0KHQm9CeCivQm9CQ0IjQotCV0KAg0JXQm9CX0JAKK9Cb0JDQiNCi0JXQoCDQk9CY0JfQldCb0JAKK9Cb0JDQiNCi0JXQoCDQmNCS0JDQnQor0JvQkNCI0KLQmNClINCh0JjQk9Ck0KDQmNCUCivQm9CQ0JrQkNCi0J7QqCDQkNCc0JDQm9CY0IjQkAor0JvQkNCa0JDQotCe0Kgg0JDQndCQCivQm9CQ0JrQkNCi0J7QqCDQkNCd0JTQoNCQ0KgKK9Cb0JDQmtCQ0KLQntCoINCU0KDQkNCT0JjQptCQCivQm9CQ0JrQkNCi0J7QqCDQk9CY0JfQkAor0JvQkNCa0JDQotCe0Kgg0JjQnNCg0JUKK9Cb0JDQmtCQ0KLQntCoINCY0JzQoNCVCivQm9CQ0JrQkNCi0J7QqCDQmNCc0KDQlQor0JvQkNCa0JDQotCe0Kgg0IjQkNCh0JzQmNCd0JrQkAor0JvQkNCa0JDQotCe0Kgg0IjQldCb0JXQndCQCivQm9CQ0JrQkNCi0J7QqCDQm9CQ0IjQntCoCivQm9CQ0JrQkNCi0J7QqCDQnNCY0KXQkNCI0JvQngor0JvQkNCa0JDQotCe0Kgg0JzQmNCb0JjQptCQCivQm9CQ0JrQkNCi0J7QqCDQndCQ0JTQkAor0JvQkNCa0JDQotCe0Kgg0J/QkNCS0JvQlQor0JvQkNCa0JDQotCe0Kgg0KHQotCV0JLQkNCdCivQm9CQ0JrQkNCi0J7QqCDQotCY0JHQntCgCivQm9CQ0JrQkNCi0J7QqCDQktCV0KDQkAor0JvQkNCa0JDQotCe0Kgg0JLQmNCb0JzQntCoCivQm9CQ0JrQkNCi0J7QqCDQl9Ce0JvQotCQ0J0KK9Cb0JDQmtCQ0KLQntCoINCX0J7Qm9Ci0JDQnQor0JvQkNCa0JDQotCj0Kgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JrQldCi0JAg0JHQntCW0J4KK9Cb0JDQmtCV0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQm9CQ0JrQldCi0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JrQldCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JvQkNCa0JjQp9CV0JLQmNCLINCd0JDQlNCQCivQm9CQ0JrQmNCn0JXQktCY0Ist0KHQotCe0IjQkNCn0JjQiyDQodCd0JXQltCQ0J3QkAor0JvQkNCa0JjQiyDQkNCd0ILQkAor0JvQkNCa0JjQiyDQkNCd0ILQldCb0JrQkAor0JvQkNCa0JjQiyDQkdCe0JPQntCh0JDQkgor0JvQkNCa0JjQiyDQkdCg0JDQndCa0J4g0JTQoCDQm9CV0JrQkNCgCivQm9CQ0JrQmNCLINCR0KDQkNCd0JrQngor0JvQkNCa0JjQiyDQkdCg0JDQndCa0J4KK9Cb0JDQmtCY0Isg0JTQkNCd0JjQm9CeCivQm9CQ0JrQmNCLINCY0JvQmNCI0JAKK9Cb0JDQmtCY0Isg0IjQntCb0JDQnQor0JvQkNCa0JjQiyDQnNCQ0KDQmtCeCivQm9CQ0JrQmNCLINCc0JjQoNCQCivQm9CQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQm9CQ0JrQmNCLINCc0JvQkNCU0JXQnQor0JvQkNCa0JjQiyDQnNCe0JzQmNCgCivQm9CQ0JrQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCa0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQm9CQ0JrQmNCLINCg0JDQlNCY0JLQntCICivQm9CQ0JrQmNCLINCg0JDQlNCY0JLQntCICivQm9CQ0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQm9CQ0JrQmNCLINCg0JDQiNCa0J4KK9Cb0JDQmtCY0Isg0KHQkNCS0JAg0JTQoAor0JvQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CQ0JrQmNCLINCh0JzQmNCJ0JAKK9Cb0JDQmtCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cb0JDQmtCY0Isg0KHQoNCC0JDQnQor0JvQkNCa0JjQiyDQodCg0ILQkNCdCivQm9CQ0JrQmNCLINCh0KDQgtCQ0J0KK9Cb0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JrQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JvQkNCa0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0JrQmNCLINCS0JXQm9CY0JzQmNCgCivQm9CQ0JrQmNCLINCS0JXQodCd0JAKK9Cb0JDQmtCY0Isg0JLQo9Cn0JXQotCQCivQm9CQ0JrQmNCLINCX0J7QoNCY0KbQkAor0JvQkNCa0JjQi9CV0JLQmNCLINCc0JjQm9CY0IjQkAor0JvQkNCa0JjQi9CV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cb0JDQmtCY0IvQldCS0JjQiyDQktCQ0KHQngor0JvQkNCa0JjQi9CV0JLQmNCLINCS0JXQodCd0JAKK9Cb0JDQmtCY0IvQldCS0JjQiyDQktCj0JrQodCQ0J0g0JTQoAor0JvQkNCa0JvQmNCI0JAg0KHQotCV0JLQkNCdCivQm9CQ0JrQniDQnNCQ0KDQmNCI0JAKK9Cb0JDQmtCe0JHQoNCY0IjQkCDQlNCg0JDQk9CQ0J0KK9Cb0JDQmtCe0JHQoNCY0IjQkCDQlNCj0KjQkNCdCivQm9CQ0JrQntCR0KDQmNCI0JAg0JjQm9CY0IjQkAor0JvQkNCa0J7QkdCg0JjQiNCQINCI0JXQm9CV0J3QkAor0JvQkNCa0J7QkdCg0JjQiNCQINCc0JjQm9CQ0J0KK9Cb0JDQmtCe0JHQoNCY0IjQkCDQnNCY0JvQkNCdCivQm9CQ0JrQntCR0KDQmNCI0JAg0JzQmNCb0J7QqAor0JvQkNCa0J7QkdCg0JjQiNCQINCc0JjQm9Ce0KgKK9Cb0JDQmtCe0JHQoNCY0IjQkCDQndCY0JrQntCb0JAKK9Cb0JDQmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQm9CQ0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQm9CQ0JrQntCS0JjQiyDQnNCY0JvQmNCLCivQm9CQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JvQkNCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JvQkNCa0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9Cb0JDQm9CQ0KLQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JvQkNCb0JDQotCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cb0JDQm9CQ0KLQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JvQkNCb0JDQotCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQm9CY0KfQmNCLINCS0JXQm9CY0JzQmNCgCivQm9CQ0JvQmNCLINCW0JjQktCQCivQm9CQ0JvQmNCLINCC0J7QoNCC0JUKK9Cb0JDQm9CY0Isg0JDQndCa0JjQptCQCivQm9CQ0JvQmNCLINCQ0KDQmtCQ0JTQmNCI0JUKK9Cb0JDQm9CY0Isg0JHQntCT0JTQkNCdCivQm9CQ0JvQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0JvQkNCb0JjQiyDQk9Ce0IjQmtCeCivQm9CQ0JvQmNCLINCT0J7QoNCU0JDQndCQCivQm9CQ0JvQmNCLINCY0JrQntCd0JjQiNCQCivQm9CQ0JvQmNCLINCI0JDQk9Ce0JTQkAor0JvQkNCb0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQm9CQ0JvQmNCLINCI0KPQm9Ca0JAKK9Cb0JDQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JDQm9CY0Isg0JzQkNCg0JjQiNCQCivQm9CQ0JvQmNCLINCc0JjQm9CQ0JTQmNCd0JrQkAor0JvQkNCb0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JvQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCb0JjQiyDQnNCY0KDQmtCeCivQm9CQ0JvQmNCLINCd0JXQndCQ0JQKK9Cb0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JvQmNCLINCg0JDQlNCe0JzQmNCgINCU0KAKK9Cb0JDQm9CY0Isg0KHQoNCV0JTQntCI0JUKK9Cb0JDQm9CY0Isg0KLQkNCc0JDQoNCQCivQm9CQ0JvQmNCLINCi0J7QlNCe0KAKK9Cb0JDQm9CY0Isg0KPQk9CJ0JXQqNCQCivQm9CQ0JvQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQm9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQm9CY0J0g0JzQmNCb0JDQnQor0JvQkNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CQ0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQm9CQ0JvQntCo0JXQktCY0Isg0JTQo9Co0JrQngor0JvQkNCb0J7QqNCV0JLQmNCLINCk0JXQnNCa0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cb0JDQm9Ce0KjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JvQntCo0JXQktCY0Isg0JzQkNCg0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQnNCY0JrQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JvQkNCb0J7QqNCV0JLQmNCLINCh0KLQldCS0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQktCQ0KHQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JvQntCS0JjQiyDQiNCQ0J3QmtCeCivQm9CQ0JvQntCS0JjQiyDQnNCQ0KDQmtCeCivQm9CQ0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JvQkNCb0J7QktCY0Isg0J3QkNCU0JAKK9Cb0JDQm9Ce0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cb0JDQm9Ce0JLQmNCLINCh0KPQl9CQ0J3QkAor0JvQkNCb0J7QktCY0Isg0JLQldCg0JAKK9Cb0JDQnNCR0JXQotCQINCf0JXQmtCeCivQm9CQ0JzQkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JzQkdCY0Isg0IjQntCS0J4KK9Cb0JDQnNCR0JjQiyDQntCb0JjQktCV0KDQkAor0JvQkNCc0J/QoNCV0KIg0JrQoNCY0KHQotCY0IjQkNCdCivQm9CQ0J3Qp9Cj0KjQmtCYINCV0JzQmNCb0JrQkAor0JvQkNCd0KYg0KTQoNCQ0IrQkAor0JvQkNCd0KYg0JzQkNCg0JjQiNCQCivQm9CQ0J3QptCe0Kgg0JDQndCQCivQm9CQ0J3QptCe0Kgg0J3QldCd0JDQlAor0JvQkNCd0KbQntCoINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0JDQndCm0J7QqCDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0J3QlNCV0JrQkCDQkNCd0KLQntCd0JjQiNCVCivQm9CQ0J3QkyDQkNCi0JjQm9CQCivQm9CQ0J3QkyDQlNCg0JDQk9CY0KbQkAor0JvQkNCd0JMg0IjQntCh0JjQnwor0JvQkNCd0JMg0JzQmNCg0IjQkNCd0JAKK9Cb0JDQndCTINCS0JDQm9CV0KDQmNCI0JAKK9Cb0JDQitCYINCQ0J3QlNCg0JDQqAor0JvQkNCK0Jgg0KHQotCV0JLQkNCdCivQm9CQ0J3QmtCe0JLQodCa0Jgg0J/QldCm0J4KK9Cb0JDQndCa0J7QktCh0JrQmCDQotCe0JzQp9CVCivQm9CQ0J/Qp9CV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQm9CQ0J/Qp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCf0KfQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JvQkNCf0KfQldCS0JjQiyDQn9CQ0IjQkAor0JvQkNCf0KfQldCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQm9CQ0J/Qp9CY0Isg0JzQmNCb0JDQnQor0JvQkNCf0JDQlNCQ0KIg0KXQntCg0KLQldCd0JfQmNCI0JAKK9Cb0JDQn9CQ0JTQkNCiINCh0J7QoNCY0J0KK9Cb0JDQn9CQ0JTQkNCiINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQn9CQ0IjQndCVINCc0JjQm9CQ0J0KK9Cb0JDQn9CeINCI0J7QktCQ0J0KK9Cb0JDQn9CjINCQ0J3QlNCg0JDQqAor0JvQkNCg0JrQmNCdINCh0KLQldCS0JDQnQor0JvQkNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0KHQmNCLINCX0JLQntCd0JrQngor0JvQkNCh0JjQiyDQl9CS0J7QndCa0J4KK9Cb0JDQodCY0KbQkCDQkdCj0JTQmNCc0JjQoAor0JvQkNCh0JjQptCQINCU0KDQkNCT0KPQotCY0J0KK9Cb0JDQodCY0KbQkCDQmNCb0JjQiNCQCivQm9CQ0KHQmNCm0JAg0JzQmNCb0JDQnQor0JvQkNCh0JjQptCQINCc0JjQm9CQ0J0KK9Cb0JDQodCY0KbQkCDQnNCY0JvQldCd0JrQngor0JvQkNCh0JjQptCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0JDQodCY0KbQkCDQo9Cg0J7QqAor0JvQkNCh0JjQptCQINCS0JXQidCa0J4KK9Cb0JDQodCY0KbQkCDQl9CU0KDQkNCS0JrQngor0JvQkNCh0JjQptCQINCX0JvQkNCi0JAKK9Cb0JDQodCY0KbQkCDQl9Ce0KDQkAor0JvQkNCh0JrQntCSINCU0J7QkdCg0JUKK9Cb0JDQodCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQm9CQ0KHQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JvQkNCh0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQodCb0J4g0JXQotCV0JvQmtCQCivQm9CQ0KHQm9CeINCk0JXQoNCV0J3Qpgor0JvQkNCh0JvQniDQpNCg0JDQitCQCivQm9CQ0KHQm9CeINCk0KDQkNCK0JAKK9Cb0JDQodCb0J4g0JjQm9Ce0J3QkAor0JvQkNCh0JvQniDQiNCe0JbQldCkCivQm9CQ0KHQm9CeINCI0J7QodCY0J8KK9Cb0JDQodCb0J4g0IjQntCS0JDQnQor0JvQkNCh0JvQniDQm9CQ0KHQm9CeCivQm9CQ0KHQm9CeINCc0JjQmtCb0J7QqAor0JvQkNCh0JvQniDQnNCY0JvQldCd0JAKK9Cb0JDQodCb0J4g0KLQmNCR0J7QoAor0JvQkNCh0JvQniDQktCV0KDQkAor0JvQkNCh0JvQntCS0KHQmtCYINCi0JXQoNCV0JfQkAor0JvQkNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CQ0KLQkNCaINCd0JDQndCU0J7QoAor0JvQkNCi0JDQmyDQnNCQ0KDQiNCQ0J0KK9Cb0JDQotCQ0Jsg0KHQm9CQ0JLQmNCm0JAKK9Cb0JDQotCQ0Jsg0KHQotCV0JLQkNCdCivQm9CQ0KLQkNCbINCS0JXQoNCQCivQm9CQ0KLQkNCbINCX0JDQk9Ce0KDQmtCQCivQm9CQ0KLQkNChINCW0JjQktCa0JAKK9Cb0JDQotCQ0KEg0JvQkNCX0JDQoAor0JvQkNCi0JDQoSDQnNCQ0KDQmtCeCivQm9CQ0KLQkNChINCc0JjQm9CQ0JTQmNCdCivQm9CQ0KLQkNChINCc0JjQm9CQ0J0KK9Cb0JDQotCQ0KEg0J/QldCi0JDQoAor0JvQkNCi0JDQoSDQodCQ0JLQkCDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQm9CQ0KLQkNChINCX0J7QoNCQCivQm9CQ0KLQmNCo0JrQniDQo9Cg0J7QqAor0JvQkNCi0JjQiyDQmNCh0JDQmgor0JvQkNCi0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JvQkNCi0JjQndCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQm9CQ0KLQmNCd0KfQmNCLINCU0JDQndCY0KbQkAor0JvQkNCi0JjQndCn0JjQiyDQk9Cg0KPQiNCQCivQm9CQ0KLQmNCd0KfQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCi0JjQndCn0JjQiyDQoNCj0JbQkAor0JvQkNCi0JjQndCa0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQotCY0J3QmtCY0Isg0JLQmNCd0JrQkAor0JvQkNCi0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cb0JDQotCY0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0ILQo9CI0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQkdCe0JbQngor0JvQkNCi0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCV0KDQmNCa0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cb0JDQotCY0J3QntCS0JjQiyDQm9CQ0JfQkAor0JvQkNCi0JjQndCe0JLQmNCLINCJ0KPQkdCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0JzQkNCm0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JvQkNCi0JjQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JDQotCY0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0J3QldCC0J4KK9Cb0JDQotCY0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JvQkNCi0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCi0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCi0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cb0JDQotCY0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JvQkNCi0JjQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cb0JDQotCY0J3QntCS0JjQiyDQodCQ0JLQngor0JvQkNCi0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQotCY0J3QntCS0JjQiyDQodCc0JjQidCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JvQkNCi0JjQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Cb0JDQotCa0J7QktCY0Isg0JbQldCJ0JrQngor0JvQkNCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQm9CQ0KLQmtCe0JLQmNCLINCI0J7QktCeCivQm9CQ0KLQmtCe0JLQmNCLINCc0JjQm9CVCivQm9CQ0KLQmtCe0JLQmNCLINCS0KPQiNCeCivQm9CQ0KLQmtCe0JLQodCa0Jgg0KDQmNCh0KLQngor0JvQkNCi0J4g0IjQkNCh0J3QkAor0JvQkNCi0J7QktCJ0JXQkiDQl9CQ0JPQntCg0JrQkAor0JvQkNCj0Kgg0JTQmNCc0JjQotCg0JjQiNCVCivQm9CQ0KPQqCDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0KPQqNCV0JIg0JTQoNCQ0JPQkNCd0JAKK9Cb0JDQo9Co0JXQkiDQiNCe0KbQkAor0JvQkNCj0KjQldCSINCJ0KPQkdCY0J3QmtCQCivQm9CQ0KPQqNCV0JIg0JzQmNCg0IjQkNCd0JAKK9Cb0JDQo9Co0JXQkiDQotCe0KjQkAor0JvQkNCj0KjQldCSINCS0JXQm9CY0JzQmNCgCivQm9CQ0KPQqNCV0JIg0JLQntCI0JjQodCb0JDQkgor0JvQkNCj0KjQldCS0JjQiyDQltCY0JLQkNCdCivQm9CQ0KPQqNCV0JLQmNCLINCW0JjQktCa0JAKK9Cb0JDQo9Co0JXQktCY0Isg0JbQmNCS0JrQkAor0JvQkNCj0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQo9Co0JXQktCY0Isg0JTQoNCQ0JPQntCI0JUKK9Cb0JDQo9Co0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JvQkNCj0KjQldCS0JjQiyDQn9CQ0JLQm9CVCivQm9CQ0KPQqNCV0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Cb0JDQo9Co0JXQktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cb0JDQo9Co0JXQktCY0Isg0JfQmNCi0JAKK9Cb0JDQo9Co0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQo9CR0JXQoNCiINCS0JvQkNCU0JjQodCb0JDQktCQCivQm9CQ0KPQoSDQkNCd0JAKK9Cb0JDQo9ChINCa0JDQotCQ0KDQmNCd0JAKK9Cb0JDQo9Ci0JDQoNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCj0KLQldCg0JXQoCDQgtCV0J3QgtCYCivQm9CQ0KPQotCV0KDQldCgINCb0JDQodCb0J4KK9Cb0JDQktCQ0Kcg0IjQntCW0JXQpAor0JvQkNCS0JDQpyDQm9CQ0KHQm9CeCivQm9CQ0JLQmNCn0JrQkCDQmtCQ0KDQm9CeCivQm9CQ0JLQoNCd0JjQiyDQmtCh0JXQndCY0IjQkAor0JvQkNCS0KDQndCY0Isg0JrQodCV0J3QmNCI0JAKK9Cb0JDQktCg0J3QmNCLINCc0JjQm9Ce0KgKK9Cb0JDQktCg0J3QmNCLINCg0JDQlNCY0JLQntCICivQm9CQ0JLQoNCK0JAg0JvQkNCX0JDQoAor0JvQkNCS0KDQitCQINCc0JjQm9Ca0JDQnQor0JvQkNCX0JAg0IjQntCdCivQm9CQ0JfQkCDQotCV0J7QlNCe0KDQkAor0JvQkNCX0JDQndCh0JrQmCDQkNCd0JAKK9Cb0JDQl9CQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JfQkNCd0KHQmtCYINCT0J7QoNCU0JDQndCQCivQm9CQ0JfQkNCd0KHQmtCYINCT0J7QoNCU0JDQndCQCivQm9CQ0JfQkNCgINCC0KPQm9CQCivQm9CQ0JfQkNCgINCV0JvQldCd0JAKK9Cb0JDQl9CQ0KAg0IjQo9Cb0JjQkAor0JvQkNCX0JDQoCDQiNCj0JvQmNCI0JAKK9Cb0JDQl9CQ0KAg0JrQkNCi0JDQm9CY0J0KK9Cb0JDQl9CQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JvQkNCX0JDQoCDQn9CQ0JLQm9CVCivQm9CQ0JfQkNCgINCh0JjQnNCQCivQm9CQ0JfQkNCgINCh0KLQiNCV0J/QkNCdCivQm9CQ0JfQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQl9CQ0KDQldCSINCC0J7QmtCQCivQm9CQ0JfQkNCg0JXQkiDQkNCd0JAKK9Cb0JDQl9CQ0KDQldCSINCQ0J3QlNCg0JjQiNCQCivQm9CQ0JfQkNCg0JXQkiDQiNCe0JLQkNCdCivQm9CQ0JfQkNCg0JXQkiDQktCV0KDQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCn0JXQlNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JbQmNCS0JrQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCW0JjQktCe0KLQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQkdCe0KjQmtCeCivQm9CQ0JfQkNCg0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JvQkNCX0JDQoNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JvQkNCX0JDQoNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JvQkNCX0JDQoNCV0JLQmNCLINCU0JDQndCY0JvQngor0JvQkNCX0JDQoNCV0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JvQkNCX0JDQoNCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCI0JDQlNCS0JjQk9CQCivQm9CQ0JfQkNCg0JXQktCY0Isg0IjQldCb0JXQndCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0IjQldCb0JXQndCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JvQkNCX0JDQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQm9CQ0JfQkNCg0JXQktCY0Isg0InQo9CR0J4KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCQ0J3QlNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0JDQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JjQm9Cj0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCh0JDQktCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0KHQnNCY0InQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCS0JXQodCd0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQktCY0JTQkNCdCivQm9CQ0JfQkNCg0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQl9Ce0KDQkNCdINCU0KAg0JvQldCa0JDQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9CQ0KDQldCS0KHQmtCYINCC0J7QoNCC0JUKK9Cb0JDQl9CQ0KDQldCS0KHQmtCYINCU0KDQkNCT0J7QidCj0JEKK9Cb0JDQl9CQ0KDQldCS0KHQmtCYINCh0JvQkNCS0JrQngor0JvQkNCX0JDQoNCe0JIg0JLQldCh0JXQm9CY0J0KK9Cb0JDQl9CQ0KDQntCSINCX0J7QoNCQ0J0KK9Cb0JDQl9CQ0KDQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0JvQkNCX0JXQndCU0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JfQldCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCX0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQm9CQ0JfQmNCn0JjQiyDQodCi0JDQndCY0IjQkAor0JvQkNCX0JjQiyDQltCQ0KDQmtCeCivQm9CQ0JfQmNCLINCW0JjQktCQ0J0KK9Cb0JDQl9CY0Isg0JbQmNCS0JDQnQor0JvQkNCX0JjQiyDQltCY0JLQkNCdCivQm9CQ0JfQmNCLINCW0JjQktCa0J4KK9Cb0JDQl9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Cb0JDQl9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cb0JDQl9CY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQl9CY0Isg0JDQndCC0JXQm9Ca0JAKK9Cb0JDQl9CY0Isg0JDQndCU0KDQmNCI0JAKK9Cb0JDQl9CY0Isg0JHQntCo0JrQngor0JvQkNCX0JjQiyDQkdCe0JbQmNCU0JDQoAor0JvQkNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JvQkNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JvQkNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQl9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JvQkNCX0JjQiyDQkdCg0JDQndCa0JAg0JTQoAor0JvQkNCX0JjQiyDQkdCj0JTQmNCc0JjQoAor0JvQkNCX0JjQiyDQlNCQ0JzQiNCQ0J3QmtCQCivQm9CQ0JfQmNCLINCU0JXQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9CQ0JfQmNCLINCU0JXQiNCQ0J0KK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQkNCdCivQm9CQ0JfQmNCLINCU0KDQkNCT0JAKK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JvQkNCX0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQm9CQ0JfQmNCLINCU0KDQkNCT0J4KK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JvQkNCX0JjQiyDQlNCj0KjQkNCdCivQm9CQ0JfQmNCLINCU0KPQqNCQ0J0KK9Cb0JDQl9CY0Isg0JTQo9Co0JDQnQor0JvQkNCX0JjQiyDQlNCj0KjQkNCdCivQm9CQ0JfQmNCLINCV0JzQmNCbINCU0KAg0JvQldCa0JDQoAor0JvQkNCX0JjQiyDQk9Ce0IjQmtCeCivQm9CQ0JfQmNCLINCT0J7QoNCe0InQo9CRCivQm9CQ0JfQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cb0JDQl9CY0Isg0JjQktCQ0J3QkAor0JvQkNCX0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQkNCX0JjQiyDQiNCe0KbQkAor0JvQkNCX0JjQiyDQiNCe0JLQkNCd0JrQkAor0JvQkNCX0JjQiyDQiNCe0JLQkNCdCivQm9CQ0JfQmNCLINCI0KPQm9Ca0JAKK9Cb0JDQl9CY0Isg0JrQkNCi0JjQptCQCivQm9CQ0JfQmNCLINCa0JDQotCY0KbQkAor0JvQkNCX0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0JDQl9CY0Isg0JrQntCh0KLQkNCU0JjQnQor0JvQkNCX0JjQiyDQmtCe0KHQotCQCivQm9CQ0JfQmNCLINCb0JDQl9CQ0KAKK9Cb0JDQl9CY0Isg0JvQkNCX0JDQoAor0JvQkNCX0JjQiyDQidCj0JHQkNCdCivQm9CQ0JfQmNCLINCJ0KPQkdCY0J3QmtCQCivQm9CQ0JfQmNCLINCJ0KPQkdCY0KHQkNCS0JAKK9Cb0JDQl9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JDQl9CY0Isg0JzQkNCg0JjQiNCQCivQm9CQ0JfQmNCLINCc0JDQoNCY0IjQkAor0JvQkNCX0JjQiyDQnNCQ0KDQmNCd0JrQngor0JvQkNCX0JjQiyDQnNCQ0KDQotCQCivQm9CQ0JfQmNCLINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JDQnQor0JvQkNCX0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JXQndCQCivQm9CQ0JfQmNCLINCc0JjQm9CV0J3QkAor0JvQkNCX0JjQiyDQnNCY0JvQldCd0JrQngor0JvQkNCX0JjQiyDQnNCY0JvQldCd0JrQngor0JvQkNCX0JjQiyDQnNCY0JvQldCS0JrQkAor0JvQkNCX0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JDQl9CY0Isg0JzQmNCb0JjQptCQCivQm9CQ0JfQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCX0JjQiyDQnNCY0JvQmNCd0JrQngor0JvQkNCX0JjQiyDQnNCY0JvQmNCh0JDQkiDQn9Cg0J7QpNCV0KHQntCgCivQm9CQ0JfQmNCLINCc0JjQm9CY0KHQkNCSCivQm9CQ0JfQmNCLINCc0JjQm9CY0JLQntCICivQm9CQ0JfQmNCLINCc0JjQm9Ce0KgKK9Cb0JDQl9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JDQl9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cb0JDQl9CY0Isg0JzQmNCg0JAKK9Cb0JDQl9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cb0JDQl9CY0Isg0JzQmNCg0JrQngor0JvQkNCX0JjQiyDQnNCY0KDQntCJ0KPQkQor0JvQkNCX0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CQ0JfQmNCLINCc0JvQkNCU0JXQnQor0JvQkNCX0JjQiyDQndCQ0JTQkAor0JvQkNCX0JjQiyDQndCQ0JTQkAor0JvQkNCX0JjQiyDQndCQ0JTQkAor0JvQkNCX0JjQiyDQndCQ0JTQldCW0JTQkAor0JvQkNCX0JjQiyDQndCQ0IjQlNCQ0J0KK9Cb0JDQl9CY0Isg0J3QldCS0JXQndCQCivQm9CQ0JfQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQl9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCX0JjQiyDQndCY0JrQntCb0JAKK9Cb0JDQl9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQmNCLINCe0JHQoNCV0J0KK9Cb0JDQl9CY0Isg0J/QkNCI0JAKK9Cb0JDQl9CY0Isg0J/QldCi0JDQoAor0JvQkNCX0JjQiyDQn9CV0KLQkNCgCivQm9CQ0JfQmNCLINCf0JXQotCQ0KAKK9Cb0JDQl9CY0Isg0J/QldCi0JDQoAor0JvQkNCX0JjQiyDQn9CY0KDQntCo0JrQkAor0JvQkNCX0JjQiyDQn9CY0KDQntCo0JrQkAor0JvQkNCX0JjQiyDQoNCQ0JTQkAor0JvQkNCX0JjQiyDQoNCQ0JTQlQor0JvQkNCX0JjQiyDQoNCQ0JTQmNCo0JAKK9Cb0JDQl9CY0Isg0KDQkNCU0JjQktCe0IgKK9Cb0JDQl9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Cb0JDQl9CY0Isg0KDQkNCU0J7QiNCa0JAKK9Cb0JDQl9CY0Isg0KDQkNCU0J7QiNCa0J4KK9Cb0JDQl9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cb0JDQl9CY0Isg0KDQkNCI0JrQngor0JvQkNCX0JjQiyDQoNCe0JTQntCJ0KPQkQor0JvQkNCX0JjQiyDQoNCj0JbQkAor0JvQkNCX0JjQiyDQodCQ0IrQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCY0JzQkCDQlNCgCivQm9CQ0JfQmNCLINCh0JvQkNCS0JrQngor0JvQkNCX0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CQ0JfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQl9CY0Isg0KHQnNCY0InQkAor0JvQkNCX0JjQiyDQodCg0JHQmNCh0JvQkNCSCivQm9CQ0JfQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cb0JDQl9CY0Isg0KHQotCQ0J3QmtCeCivQm9CQ0JfQmNCLINCh0KLQldCS0JDQndCa0JAKK9Cb0JDQl9CY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JfQmNCLINCh0KLQldCS0JDQnQor0JvQkNCX0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JfQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Cb0JDQl9CY0Isg0KHQotCe0IjQkNCdCivQm9CQ0JfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0JDQl9CY0Isg0KLQldCe0JTQntCgCivQm9CQ0JfQmNCLINCi0KDQkNCI0JrQngor0JvQkNCX0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQm9CQ0JfQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQl9CY0Isg0JLQldCb0JjQndCa0JAKK9Cb0JDQl9CY0Isg0JLQldCh0JXQm9CY0J0KK9Cb0JDQl9CY0Isg0JLQldCh0J3QkAor0JvQkNCX0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JfQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9CY0Isg0JfQntCg0JjQptCQCivQm9CQ0JfQmNCLINCX0J7QoNCY0KbQkAor0JvQkNCX0JjQptCQ0J3QmCDQkNCJ0KPQqAor0JvQkNCX0JjQnSDQkdCe0JPQlNCQ0J0KK9Cb0JDQl9CY0J0g0JHQoNCQ0J3QmtCeCivQm9CQ0JfQmNCdINCT0J7QiNCa0J4KK9Cb0JDQl9CY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQm9CQ0JfQmNCdINCd0JDQotCQ0JvQmNCI0JAKK9Cb0JDQl9CY0J0g0KHQkNCS0JAKK9Cb0JDQl9CY0J0g0KHQkNCS0JAKK9Cb0JDQl9CY0J0g0KHQmNCd0JjQqNCQCivQm9CQ0JfQmNCdINCh0JjQndCY0KjQkAor0JvQkNCX0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQm9CQ0JfQmNCdINCS0J7QiNCY0J0KK9Cb0JDQl9CY0J0g0JfQntCg0JjQptCQCivQm9CQ0JfQmNCd0JjQptCQINCg0JDQlNCe0IjQmtCQCivQm9CQ0JfQntCgINCc0JjQoNCe0J0KK9Cb0JDQl9Ce0KAg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQntCSINCi0KDQkNCI0JDQnQor0JvQkNCX0J7QktCQINCi0KDQkNCI0JrQkAor0JvQkNCX0J7QktCY0Isg0KfQldCU0J4KK9Cb0JDQl9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Cb0JDQl9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQm9CQ0JfQntCS0JjQiyDQlNCV0IjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JvQkNCX0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQm9CQ0JfQntCS0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JfQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cb0JDQl9Ce0JLQmNCLINCc0JjQm9CV0J3QotCY0IjQlQor0JvQkNCX0J7QktCY0Isg0JzQmNCb0JXQotCQCivQm9CQ0JfQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JDQl9Ce0JLQmNCLINCc0JjQm9Ce0IjQmNCm0JAKK9Cb0JDQl9Ce0JLQmNCLINCd0JXQndCQ0JQKK9Cb0JDQl9Ce0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQm9CQ0JfQntCS0JjQiyDQodCQ0JLQmNCm0JAKK9Cb0JDQl9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQl9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0JvQkNCX0J7QktCY0Isg0KHQotCV0JLQkNCdINCf0KDQntCk0JXQodCe0KAKK9Cb0JDQl9Ce0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JvQkNCX0J7QktCY0Isg0JLQo9CI0JDQlNCY0J0KK9Cb0JDQl9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9Ce0JLQodCa0Jgg0KHQm9CQ0JLQp9CeCivQm9CQ0JfQo9Ca0JjQiyDQp9CV0JTQngor0JvQkNCX0KPQmtCY0Isg0JDQndCC0JAKK9Cb0JDQl9Cj0JrQmNCLINCI0J7QktCeCivQm9CQ0JfQo9Ca0JjQiyDQmtCQ0IvQkAor0JvQkNCX0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQkNCX0KPQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQldCnINCV0J3QlNCg0JUg0JTQoAor0JvQldCnINCV0KDQmNClCivQm9CV0KfQkNCgINCI0J7QodCY0J8KK9Cb0JXQp9CQ0KAg0JrQkNCg0JvQngor0JvQldCn0JjQiyDQp9CV0JTQntCc0JjQoAor0JvQldCn0JjQiyDQlNCe0JHQoNCY0JvQkAor0JvQldCn0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQm9CV0KfQmNCLINCT0J7QiNCa0J4KK9Cb0JXQp9CY0Isg0JzQmNCb0JXQktCQCivQm9CV0KfQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9CV0KfQmNCLINCd0JDQlNCQCivQm9CV0KfQmNCLINCd0JDQlNCQCivQm9CV0KfQmNCLINCh0JjQnNCeCivQm9CV0KfQmNCLINCh0J/QkNCh0J7QiNCVCivQm9CV0KfQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cb0JXQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQldCo0KfQldCo0JXQnSDQldCU0JLQkNCg0JQKK9Cb0JXQqNCn0JXQqNCV0J0g0IjQldCb0JXQndCQCivQm9CV0KjQmNCLINCC0KPQoNCQCivQm9CV0KjQmNCLINCh0KLQntCI0JDQnQor0JvQldCo0JrQmNCLINCC0J7QoNCC0JUKK9Cb0JXQqNCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQm9CV0KjQmtCe0JIg0IjQntCS0JDQnQor0JvQldCo0JrQntCSINCc0JjQm9CQ0J0KK9Cb0JXQqNCa0J7QkiDQnNCY0J7QlNCg0JDQkwor0JvQldCo0JrQntCSINCe0JvQk9CY0KbQkAor0JvQldCo0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cb0JXQqNCd0JjQmiDQl9CQ0JPQntCg0JrQkAor0JvQldCo0KLQkNCgINCh0KLQldCS0JDQnQor0JvQldCo0KLQkNCgINCX0J7QoNCY0KbQkAor0JvQldCW0JDQiNCY0Isg0JLQo9Ca0JDQlNCY0J0KK9Cb0JXQltCQ0JrQntCSINCC0KPQoNCC0JjQptCQCivQm9CV0JbQkNCa0J7QkiDQnNCY0JvQkNCdCivQm9CV0JbQmNCc0JjQoNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JXQltCY0JzQmNCg0JDQpiDQkdCg0JDQndCa0JjQptCQCivQm9CV0JbQmNCc0JjQoNCQ0KYg0JTQntCR0KDQmNCd0JrQkAor0JvQldCW0JjQnNCY0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JXQltCY0JzQmNCg0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQm9CV0JbQmNCc0JjQoNCQ0KYg0KHQktCV0KLQm9CQ0J3QkAor0JvQldCW0JjQnNCY0KDQkNCmINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JXQgtCQ0J3QkCDQiNCV0JvQldCd0JAKK9Cb0JXQgtCQ0J3QkNCmINCC0KPQoNCC0JjQndCa0JAKK9Cb0JXQgtCQ0J3QkNCmINCR0KDQkNCd0JjQodCb0JDQktCQCivQm9CV0ILQkNCd0JDQpiDQlNCg0JDQk9Ce0JzQmNCgCivQm9CV0ILQkNCd0JDQpiDQldCc0JjQm9CY0IjQkAor0JvQldCC0JDQndCQ0KYg0JPQkNCS0KDQkAor0JvQldCC0JDQndCQ0KYg0JPQntCg0JjQptCQCivQm9CV0ILQkNCd0JDQpiDQiNCe0JLQkNCdCivQm9CV0ILQkNCd0JDQpiDQnNCY0JvQkNCdCivQm9CV0ILQkNCd0JDQpiDQodCV0JrQo9Cb0JAKK9Cb0JXQgtCQ0J3QkNCmINCh0JXQmtCj0JvQkAor0JvQldCC0JDQndCQ0KYg0KHQm9CQ0JLQmtCeCivQm9CV0ILQkNCd0JDQpiDQodCi0JXQktCQ0J0KK9Cb0JXQgtCQ0J3QkNCmINCh0KLQldCS0JDQnQor0JvQldCC0JDQndCQ0KYg0JLQmNCi0J7QnNCY0KAKK9Cb0JXQgtCQ0J3QodCa0Jgg0JHQoNCQ0J3QmtCQCivQm9CV0ILQldCd0JDQpiDQlNCg0JDQk9CQ0J0KK9Cb0JXQgtCV0J3QkNCmINCd0JDQlNCQCivQm9CV0ILQldCd0JDQpiDQodCb0JDQktCa0J4KK9Cb0JXQgtCV0J3QkNCmINCh0KLQkNCd0JjQnNCY0KAKK9Cb0JXQgtCV0J3QkNCmINCh0KLQoNCQ0KXQmNCK0JAKK9Cb0JXQkdCQ0KAg0JfQm9CQ0KLQmNCm0JAKK9Cb0JXQkdCV0KAg0JfQm9CQ0KLQmtCeCivQm9CV0JHQmyDQkNCg0J/QkNCUINCU0KAg0J/QoNCe0KTQldCh0J7QoAor0JvQldCR0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Cb0JXQkdCj0KDQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JXQptCa0Jgg0ILQo9Cb0JAKK9Cb0JXQptCa0Jgg0JrQoNCY0KjQotCe0KQKK9Cb0JXQptCa0J7QktCY0Isg0JXQnNCY0JsKK9Cb0JXQlNCV0J3QmtCeINCQ0J3QotCVINCc0KAKK9Cb0JXQlNCV0KAg0JXQnNCY0J3QkAor0JvQldCU0JXQoCDQntCb0JPQkAor0JvQldCT0JXQnSDQodCi0J7QiNCQ0J0KK9Cb0JXQk9CV0KLQmNCLINCR0KDQkNCd0JrQkAor0JvQldCl0J7QptCa0Jgg0KjQkNCd0JTQntCgCivQm9CV0KXQntCm0JrQmCDQpNCV0KDQldCd0KYKK9Cb0JXQpdCe0KLQodCa0Jgg0JrQkNCg0JvQngor0JvQldCl0KAg0JTQkNCS0J7QoAor0JvQldCY0KLQndCV0KAg0J3QmNCa0J7Qm9CQCivQm9CV0JrQmCDQgtCj0KDQkAor0JvQldCa0Jgg0JzQkNCg0JjQiNCQCivQm9CV0JrQmCDQodCi0IjQldCf0JDQnQor0JvQldCa0Jgg0KLQldCg0JXQl9CY0IjQkAor0JvQldCa0JjQiyDQltCY0JLQkNCU0JjQnQor0JvQldCa0JjQiyDQgtCe0KDQgtCY0IjQlQor0JvQldCa0JjQiyDQkdCe0JPQlNCQ0J0KK9Cb0JXQmtCY0Isg0JHQoNCQ0J3QmtCQCivQm9CV0JrQmNCLINCR0KDQkNCd0JrQngor0JvQldCa0JjQiyDQlNCV0IjQkNCdCivQm9CV0JrQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cb0JXQmtCY0Isg0JTQo9Co0JDQnQor0JvQldCa0JjQiyDQiNCe0KDQlNCQ0J0KK9Cb0JXQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JXQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JXQmtCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cb0JXQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9Cb0JXQmtCY0Isg0J3QldCC0J4KK9Cb0JXQmtCY0Isg0J3QmNCa0J7Qm9CQCivQm9CV0JrQmNCLINCh0JjQnNCV0JLQo9CdCivQm9CV0JrQmNCLINCh0KLQkNCd0JrQkAor0JvQldCa0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JXQmtCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cb0JXQmtCY0Isg0KLQldCe0JTQntCgCivQm9CV0JrQmNCLINCS0JXQodCV0JvQmtCeCivQm9CV0JrQmNCLINCX0JDQk9Ce0KDQmtCQCivQm9CV0JrQmNCLINCX0JTQoNCQ0JLQmtCeCivQm9CV0JrQmNCdINCJ0KPQkdCY0KbQkAor0JvQldCa0JjQnSDQnNCY0JvQkNCdCivQm9CV0JrQmNCdINCc0JjQm9CQ0J0KK9Cb0JXQmtCY0J0g0JzQmNCb0JDQnQor0JvQldCa0JjQnSDQl9CU0KDQkNCS0JrQngor0JvQldCa0J4g0ILQldCg0IIKK9Cb0JXQmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CV0JrQniDQkdCe0KDQmNCh0JvQkNCSCivQm9CV0JrQniDQnNCb0JDQlNCV0J0KK9Cb0JXQmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CeCivQm9CV0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JvQldCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JvQldCa0J7QktCY0Isg0JzQmNCg0JrQngor0JvQldCa0J7QktCY0Isg0J3QntCS0JDQmgor0JvQldCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cb0JXQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JXQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JvQldCb0JXQkCDQotCe0JTQntCgCivQm9CV0JvQldCe0JLQmNCLINCR0J7QoNCeCivQm9CV0JvQmNCLINCW0JXQidCa0J4KK9Cb0JXQm9CY0Isg0JzQkNCl0JzQo9CiCivQm9CV0JvQmNCLINCc0JDQoNCY0IjQkAor0JvQldCb0JjQiyDQnNCY0KDQodCQ0JwKK9Cb0JXQm9CY0Isg0JfQo9Cc0KDQldCi0JAKK9Cb0JXQm9CY0Jog0IjQkNCd0J7QqAor0JvQldCb0JjQmiDQiNCV0J3QlQor0JvQldCb0J7QktCY0Isg0KDQkNCU0JUKK9Cb0JXQnNCQ0JjQiyDQltCV0InQmtCeCivQm9CV0JzQkNCY0Isg0KHQntCk0JjQiNCQCivQm9CV0JzQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9Cb0JXQnNCQ0IjQmNCLINCm0JXQptCY0JvQmNCI0JAKK9Cb0JXQnNCQ0IjQmNCLINCa0JDQotCY0KbQkAor0JvQldCc0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQm9CV0JzQkNCI0JjQiyDQnNCY0JvQkNCdCivQm9CV0JzQkNCI0JjQiyDQnNCY0JvQkNCdCivQm9CV0JzQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CV0JzQkNCI0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQm9CV0JzQkNCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CV0JzQkNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CV0JzQpdCVINCI0JXQm9CY0KHQkNCS0JXQotCQCivQm9CV0JzQmNCLINCR0J7QodCQCivQm9CV0JzQmNCLINCU0KDQkNCT0JjQitCQCivQm9CV0JzQmNCLINCb0JDQl9CQ0KAKK9Cb0JXQnNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cb0JXQnNCY0Isg0J3QldCR0J7QiNCo0JAKK9Cb0JXQnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQldCdINCf0JjQoNCe0KjQmtCQCivQm9CV0J3Qp9CQINCQ0J3QlNCg0JjQiNCQCivQm9CV0J3Qp9CQINCa0JDQotCQCivQm9CV0J3QgtCV0Jsg0ILQo9Cg0J4KK9Cb0JXQndCC0JXQmyDQiNCe0JLQkNCdCivQm9CV0J3QgtCV0Jsg0IjQntCS0JDQnQor0JvQldCd0ILQldCbINCa0JDQoNCe0IkKK9Cb0JXQndCC0JXQmyDQnNCY0KXQkNCI0JvQngor0JvQldCd0JDQoNCUINCQ0KDQn9CQ0JQKK9Cb0JXQndCQ0KDQlCDQn9CV0KLQkNCgCivQm9CV0J3QkNCg0KIg0JrQkNCi0JjQptCQCivQm9CV0J3QkNCg0KLQmNCLINCC0J7QoNCC0JUKK9Cb0JXQndCQ0KLQntCSINCU0KPQqNCQ0J0KK9Cb0JXQndCU0JjQiyDQiNCe0KHQmNCfCivQm9CV0J3QlNCS0JDQiNCYINCQ0J3QlNCg0JjQiNCQCivQm9CV0J3QlNCS0JDQiNCYINCI0J7QltCV0KQKK9Cb0JXQndCU0JLQkNCI0Jgg0InQmNCJ0JDQndCQCivQm9CV0J3QldCgINCQ0J3QlNCg0JDQqAor0JvQldCd0JXQoCDQlNCV0JbQlQor0JvQldCd0JXQoNCiINCQ0J3QotCQ0JsKK9Cb0JXQndCV0KDQoiDQn9CV0KLQkNCgINCU0KAg0JTQntCm0JXQndCiCivQm9CV0J3QldCg0KIg0KHQotCV0JLQkNCdCivQm9CV0J3QpdCQ0KDQlCDQiNCQ0J3QntCoCivQm9CV0J3QmtCV0Kgg0IjQntCS0JDQnQor0JvQldCd0JrQldCoINCb0JDQodCb0J4KK9Cb0JXQntCS0JDQpiDQnNCY0JvQmNCS0J7QiNCVCivQm9CV0J7QktCQ0KYg0JLQo9Ca0JDQlNCY0J0KK9Cb0JXQn9Cn0JXQktCY0Isg0JzQmNCb0JXQotCQCivQm9CV0J/QqNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgINCU0KAg0JvQldCa0JDQoAor0JvQldCf0KjQmNCLINCU0KDQkNCT0JjQptCQCivQm9CV0J/QkNCgINCo0JDQndCU0J7QoAor0JvQldCf0JDQoCDQiNCV0JvQmNCm0JAKK9Cb0JXQn9CQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JvQldCf0JXQqCDQm9CQ0JTQmNCh0JvQkNCSCivQm9CV0J/QldCoINCi0JjQkdCe0KAg0JTQoCDQn9Cg0J7QpAor0JvQldCf0KXQkNCk0KIg0J/QkNCbCivQm9CV0J/QmNCgINCQ0J3QgtCV0JvQmtCQCivQm9CV0J/QmNCgINCR0J7QodCY0InQmtCQCivQm9CV0J/QmNCgINCc0JjQm9Ce0KDQkNCUCivQm9CV0J/QmNCgINCS0JXQm9CY0JzQmNCgCivQm9CV0J/QntCo0JAg0KDQo9CU0J7Qm9CkCivQm9CV0J/QntCI0JXQkiDQkdCg0JDQndCa0J4KK9Cb0JXQn9Ce0IjQldCSINCh0JDQktCQCivQm9CV0J/QntCI0JXQkiDQktCQ0KHQmNCb0JjQiNCVCivQm9CV0J/QntCI0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cb0JXQn9Ce0IjQldCS0JjQiyDQodCi0JDQndCa0J4KK9Cb0JXQn9Ce0KDQmNChINCI0JDQnQor0JvQldCf0J7QotCY0Isg0JbQmNCS0JDQnQor0JvQldCf0J7QotCY0Isg0JzQmNCb0JXQndCa0J4KK9Cb0JXQn9Ce0KLQmNCLINCd0JjQmtCe0JvQkAor0JvQldCf0J7QktCY0Isg0JzQmNCa0JAKK9Cb0JXQn9Cj0KjQkCDQl9CU0JXQndCa0J4KK9Cb0JXQoCDQmNCS0JDQnQor0JvQldCg0JjQiyDQldCg0JbQldCR0JXQogor0JvQldCg0JjQmiDQkNCd0JTQoNCQ0KgKK9Cb0JXQoNCY0Jog0JjQqNCi0JLQkNCdCivQm9CV0KDQmNCaINCc0JjQmtCb0J7QqAor0JvQldCg0JjQndCmINCQ0J3QmNCa0J4KK9Cb0JXQoNCY0J3QpiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cb0JXQoNCY0J3QpiDQiNCQ0J3QntCoCivQm9CV0KDQmNCd0KYg0JrQkNCg0JvQngor0JvQldCg0JjQndCmINCa0JDQotCQ0JvQmNCdCivQm9CV0KDQmNCd0KYg0JvQkNCh0JvQngor0JvQldCg0JjQndCmINCb0JDQodCb0J4KK9Cb0JXQoNCY0J3QpiDQm9CV0J4KK9Cb0JXQoNCY0J3QpiDQm9CV0J4KK9Cb0JXQoNCeINCR0J7QltCY0JTQkNCgCivQm9CV0KDQniDQktCb0JDQlNCY0JzQmNCgCivQm9CV0KHQmtCe0JLQkNCmINCC0J7QoNCC0JUKK9Cb0JXQodCa0J7QktCQ0KYg0JTQoNCQ0JPQkNCdCivQm9CV0KHQmtCe0JLQkNCmINCJ0KPQkdCY0KbQkAor0JvQldCh0JrQntCS0JDQpiDQnNCY0JvQkNCdCivQm9CV0KHQmtCe0JLQkNCmINCc0JjQm9CQ0J0KK9Cb0JXQodCa0J7QktCQ0KYg0JzQmNCb0JXQotCQCivQm9CV0KHQmtCe0JLQkNCmINCc0JvQkNCU0JXQnSDQn9Cg0J7QpNCV0KHQntCgCivQm9CV0KHQmtCe0JLQkNCmINCg0JDQlNCe0JzQmNCgCivQm9CV0KHQmtCe0JLQkNCmINCh0KLQkNCd0JrQkAor0JvQldCh0JrQntCS0JDQpiDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9Cb0JXQodCa0J7QktCQ0KYg0JLQntCI0JjQodCb0JDQkgor0JvQldCi0JDQiNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JXQotCQ0IjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CV0KLQkNCI0JXQkiDQnNCY0KXQkNCI0JvQngor0JvQldCi0JDQiNCV0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JvQldCi0JjQiyDQp9CV0JTQngor0JvQldCi0JjQiyDQltCQ0KDQmtCeCivQm9CV0KLQmNCLINCW0JjQktCQCivQm9CV0KLQmNCLINCW0JjQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQm9CV0KLQmNCLINCC0J7QmtCeCivQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cb0JXQotCY0Isg0ILQntCg0ILQlQor0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cb0JXQotCY0Isg0ILQntCg0ILQlQor0JvQldCi0JjQiyDQkNCd0JjQptCQCivQm9CV0KLQmNCLINCQ0J3QmNCm0JAKK9Cb0JXQotCY0Isg0JDQoNCY0KjQmtCeCivQm9CV0KLQmNCLINCR0J7Qk9CU0JDQnQor0JvQldCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0JvQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JXQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CV0KLQmNCLINCR0KDQkNCd0JrQkAor0JvQldCi0JjQiyDQkdCg0JDQndCa0J4KK9Cb0JXQotCY0Isg0JTQkNCg0JjQndCa0JAKK9Cb0JXQotCY0Isg0JTQoNCQ0JPQkNCdCivQm9CV0KLQmNCLINCU0KDQkNCT0JjQqNCQCivQm9CV0KLQmNCLINCU0KDQkNCT0JjQptCQCivQm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cb0JXQotCY0Isg0JTQo9Co0JDQnQor0JvQldCi0JjQiyDQk9CQ0JLQoNCQCivQm9CV0KLQmNCLINCT0J7QiNCa0J4KK9Cb0JXQotCY0Isg0JPQntCg0JTQkNCd0JAg0JTQoAor0JvQldCi0JjQiyDQmNCS0JDQnQor0JvQldCi0JjQiyDQiNCe0JLQkNCd0JrQkAor0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQm9CV0KLQmNCLINCa0J7QodCi0JAKK9Cb0JXQotCY0Isg0JvQkNCX0JDQoAor0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cb0JXQotCY0Isg0InQo9CR0JjQqNCQCivQm9CV0KLQmNCLINCJ0KPQkdCY0KbQkAor0JvQldCi0JjQiyDQnNCQ0KDQmNCm0JAKK9Cb0JXQotCY0Isg0JzQkNCg0JjQiNCQCivQm9CV0KLQmNCLINCc0JDQoNCY0IjQkAor0JvQldCi0JjQiyDQnNCQ0KDQmNCd0JrQngor0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQm9CV0KLQmNCLINCc0JjQm9CQ0J0KK9Cb0JXQotCY0Isg0JzQmNCb0JDQnQor0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQm9CV0KLQmNCLINCc0JjQm9CY0KbQkAor0JvQldCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JXQotCY0Isg0JzQmNCb0JjQptCQCivQm9CV0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CV0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CV0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CV0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9CV0KLQmNCLINCc0JjQntCU0KDQkNCTCivQm9CV0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JvQldCi0JjQiyDQndCV0J3QkNCUCivQm9CV0KLQmNCLINCd0JXQktCV0J3QkAor0JvQldCi0JjQiyDQntCb0JPQkAor0JvQldCi0JjQiyDQntCb0JPQkAor0JvQldCi0JjQiyDQntCb0JPQmNCm0JAKK9Cb0JXQotCY0Isg0J/QldCg0JAKK9Cb0JXQotCY0Isg0KDQkNCU0JAKK9Cb0JXQotCY0Isg0KDQkNCU0JUKK9Cb0JXQotCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cb0JXQotCY0Isg0KHQkNCS0JAKK9Cb0JXQotCY0Isg0KHQkNCS0JAKK9Cb0JXQotCY0Isg0KHQmNCc0JrQkAor0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CV0KLQmNCLINCh0KLQldCS0JDQnQor0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQm9CV0KLQmNCLINCh0KLQntCI0JDQnSDQm9CV0JrQkNCgCivQm9CV0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JvQldCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQm9CV0KLQmNCLINCi0J7QlNCe0KAKK9Cb0JXQotCY0Isg0JLQldCg0JAKK9Cb0JXQotCY0Isg0JLQldCh0J3QkAor0JvQldCi0JjQiyDQktCY0JTQkAor0JvQldCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CV0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQm9CV0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQm9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Cb0JXQotCY0Isg0JfQntCg0JDQnQor0JvQldCi0JjQiyDQl9Ce0KDQkNCdCivQm9CV0KLQmNCLINCX0J7QoNCa0JAKK9Cb0JXQotCY0KbQkCDQmNCS0JDQndCQCivQm9CV0KLQmNCm0JAg0JzQmNCb0JDQnQor0JvQldCi0JjQptCQINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JXQotCeINCg0KPQltCY0KbQkAor0JvQldCi0J7QndCQ0Jgg0IjQkNCd0J7QqAor0JvQldCi0J7QndCQ0Jgg0JvQkNCh0JvQngor0JvQldCS0JAg0JjQm9CY0J3QmtCQCivQm9CV0JLQkNCYINCT0JDQkdCe0KAKK9Cb0JXQktCQ0Jgg0JrQkNCi0JDQm9CY0J0KK9Cb0JXQktCQ0Jgg0J3QkNCd0JTQntCgCivQm9CV0JLQkNCYINCh0KLQldCS0JDQnQor0JvQldCS0JDQiNCQ0KYg0JLQldCg0JAKK9Cb0JXQktCQ0JrQntCSINCc0JDQoNCQCivQm9CV0JLQkNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQm9CV0JLQkNCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQm9CV0JLQkNCg0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQm9CV0JLQkNCi0JjQiyDQnNCQ0KLQmNCI0JAKK9Cb0JXQktCQ0KLQmNCLINCc0JjQm9Ca0JAKK9Cb0JXQktCQ0KLQmNCLINCc0JjQm9Ca0JjQptCQCivQm9CV0JLQldCd0KHQmtCYINCi0JDQlNCV0IgKK9Cb0JXQktCYINCT0J7QoNCQ0J0KK9Cb0JXQktCYINCb0JXQntCdCivQm9CV0JLQmCDQktCY0JrQotCe0KAKK9Cb0JXQktCY0Isg0InQo9CR0JjQndCa0J4KK9Cb0JXQktCd0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQm9CV0JLQndCQ0IjQmNCLINCc0JjQm9Ca0JAKK9Cb0JXQktCd0JDQiNCY0Isg0JzQntCc0KfQmNCb0J4KK9Cb0JXQl9CV0KfQldCSINCh0JjQndCY0KjQkAor0JvQmNCn0JDQndCY0J0g0JTQoNCQ0JPQkNCdCivQm9CY0KfQkNCd0JjQnSDQnNCQ0KDQmNCI0JAKK9Cb0JjQp9CQ0J3QmNCdINCh0JvQkNCS0JrQngor0JvQmNCn0JXQnSDQpdCe0KLQmNCc0JjQoAor0JvQmNCn0JXQnSDQiNCe0KHQmNCfINCU0JjQn9CbINCY0J3Qkwor0JvQmNCn0JXQnSDQidCj0JTQnNCY0JvQkAor0JvQmNCn0JjQndCQINCC0J7QoNCC0JUKK9Cb0JjQp9CY0J3QkCDQkdCg0JDQndCa0JjQptCQCivQm9CY0KfQmNCd0JAg0JTQkNCd0JjQm9CeCivQm9CY0KfQmNCd0JAg0JTQnNCY0KLQkNCgCivQm9CY0KfQmNCd0JAg0JTQoNCQ0JPQngor0JvQmNCn0JjQndCQINCU0KPQqNCQ0J0KK9Cb0JjQp9CY0J3QkCDQm9Cj0JrQkAor0JvQmNCn0JjQndCQINCc0JDQoNCY0IjQkAor0JvQmNCn0JjQndCQINCc0JjQm9CQ0J3QmtCQCivQm9CY0KfQmNCd0JAg0JzQmNCb0JDQnQor0JvQmNCn0JjQndCQINCc0JjQm9CVCivQm9CY0KfQmNCd0JAg0J/QoNCV0JTQoNCQ0JMKK9Cb0JjQp9CY0J3QkCDQoNCQ0JTQlQor0JvQmNCn0JjQndCQINCS0JXQm9CY0JHQntCgCivQm9CY0KfQmNCd0JAg0JfQntCg0JDQnQor0JvQmNCn0JjQndCQ0KAg0JTQoNCQ0JPQkNCdCivQm9CY0KfQmNCd0JDQoCDQndCV0JTQldCJ0JrQngor0JvQmNCn0JjQndCQ0KAg0KHQm9CQ0JLQmtCeCivQm9CY0KfQmNCd0JDQoCDQodCi0JDQndCa0J4KK9Cb0JjQp9CY0J3QmNCLINCU0KPQqNCQ0J0KK9Cb0JjQp9CY0J3QmNCLINCd0JDQlNCQCivQm9CY0KjQp9CY0Isg0JLQldCb0JjQndCa0JAKK9Cb0JjQqNCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JvQmNCo0JjQiyDQnNCQ0KDQmNCm0JAKK9Cb0JjQqNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JvQmNCo0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CY0JHQldCgINCh0KLQldCS0JDQnQor0JvQmNCR0KDQmNCLINCY0JLQkNCdCivQm9CY0JHQoNCY0Isg0JjQktCQ0J0KK9Cb0JjQkdCg0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JvQmNCU0JvQntCkINCf0JjQoNCe0KjQmtCQCivQm9CY0JTQm9Ce0KQg0KDQo9CU0J7Qm9CkCivQm9CY0JTQm9Ce0KQg0JfQntCb0KLQkNCdCivQm9CY0KXQotCV0J3QotCQ0Jsg0JDQndCi0JDQmwor0JvQmNCl0KLQldCd0KLQkNCbINCV0JvQmNCX0JDQkdCV0KLQkAor0JvQmNCl0JLQkNCg0KfQldCaINCQ0J3QlNCg0JjQiNCQCivQm9CY0JrQkNCS0JXQpiDQiNCQ0KDQntCc0JjQoAor0JvQmNCa0JDQktCV0KYg0JrQkNCg0JvQniDQlNCY0J/QmyDQmNCd0JMKK9Cb0JjQmtCY0Isg0JHQntCg0JjQodCb0JDQkgor0JvQmNCa0JjQiyDQkdCj0JTQmNCh0JvQkNCSCivQm9CY0JrQntCU0KDQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9CY0JvQp9CV0JIg0JTQkNCg0JjQndCa0JAKK9Cb0JjQm9CYINCS0JXQoNCQCivQm9CY0JvQmNCLINCC0J7QoNCC0JUKK9Cb0JjQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQm9CY0JvQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cb0JjQm9CY0Isg0JzQmNCb0JXQndCQCivQm9CY0JvQmNCLINCc0JjQntCU0KDQkNCTCivQm9CY0JvQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9Cb0JjQm9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Cb0JjQm9CY0Isg0JLQldCb0JjQnNCY0KAKK9Cb0JjQnNCQ0J3QmCDQqNCQ0IvQmNCgCivQm9CY0JzQkNCd0Jgg0JzQldCc0JjQqAor0JvQmNCc0JDQndCYINCd0JDQl9CY0KQKK9Cb0JjQnNCQ0J3QntCS0JjQiyDQndCQ0JfQmNCkCivQm9CY0JzQkNCd0J7QktCh0JrQmCDQmNCR0KDQkNCl0JjQnAor0JvQmNCc0JDQndCe0JLQodCa0Jgg0JzQo9Ch0JDQpNCV0KIKK9Cb0JjQnNCR0J7QptCa0Jgg0J/QldCi0JDQoAor0JvQmNCc0JHQo9Cg0JPQldCgINCI0J7QltCV0KQKK9Cb0JjQndCU0JXQnNCQ0J0g0IjQldCb0JXQndCQCivQm9CY0J3QlNCV0JzQkNCdINCg0KPQlNCe0JvQpAor0JvQmNCd0JTQndCV0KAg0JzQkNCg0JPQmNCiCivQm9CY0J3QmNCLINCU0KDQkNCT0JDQnQor0JvQmNCK0JDQmiDQlNCg0JDQk9Ce0JzQmNCgCivQm9CY0J3QmtCeINCa0J7Qm9Ce0JzQkNCdCivQm9CY0J/QkNCYINCa0J7QoNCd0JXQmwor0JvQmNCf0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Cb0JjQn9Cd0JjQp9Ca0Jgg0JfQntCg0JjQptCQCivQm9CY0J/QntCi0JjQiyDQn9CV0KLQkNCgCivQm9CY0J/QntCS0JDQpiDQlNCj0KjQkNCdCivQm9CY0J/QntCS0JDQpiDQnNCQ0KLQmNCI0JAKK9Cb0JjQodCY0KfQmNCdINCd0JDQlNCQCivQm9CY0KHQmNCn0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQm9CY0KHQmNCLINCc0JDQoNCY0KbQkAor0JvQmNCh0JjQptCQINCc0JjQpdCQ0IjQm9CeCivQm9CY0KHQmNCm0JAg0JzQmNCl0JDQiNCb0J4KK9Cb0JjQodCY0KbQkCDQnNCY0JvQntCoINCQ0JTQktCe0JrQkNCiCivQm9CY0KHQntCSINCa0JDQotCY0KbQkAor0JvQmNCh0J7QkiDQnNCY0JvQmNCc0JjQoAor0JvQmNCh0J7QkiDQnNCY0KDQmtCeCivQm9CY0KHQntCS0JDQpiDQl9Ce0KDQkNCdCivQm9CY0KHQo9CbINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CY0KHQo9CbINCc0JjQm9Ca0JAKK9Cb0JjQodCj0JvQntCSINCe0JvQk9CQCivQm9CY0KHQo9Cb0J7QkiDQoNCQ0KLQntCc0JjQoAor0JvQmNCh0KPQm9Ce0JIg0JfQntCg0JDQnQor0JvQmNCi0JDQktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQm9CY0KLQndCV0KAg0IjQntCS0JDQnQor0JvQmNCi0KDQmNCn0JjQiyDQk9CQ0JLQoNCQCivQm9CY0KLQoNCY0KfQmNCdINCR0J7Qk9CU0JDQnQor0JvQmNCi0KDQmNCn0JjQnSDQk9CV0J3QkAor0JvQmNCi0KDQmNCn0JjQnS3QktCV0JHQldCgINCR0J7Qk9CU0JDQndCa0JAKK9Cb0JjQotCg0JjQp9CY0J0g0JLQldCb0JjQnNCY0KAKK9Cb0JjQotCS0IjQkNCaINCf0JDQktCb0JUKK9Cb0JjQotCS0IjQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JjQktCQ0JTQkCDQnNCY0JvQkNCdCivQm9CY0JLQkNCU0JAg0JzQmNCb0J7QqAor0JvQmNCS0JDQiNCQINCI0J7Ql9CeCivQm9CY0JLQkNCI0JAg0IjQo9Cg0JUKK9Cb0JjQl9CQ0KLQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CJ0JDQp9CV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQidCQ0IjQmNCLINCi0JDQmNCfCivQidCQ0InQmNCLINCC0J7QoNCC0JUKK9CJ0JDQotCY0KTQmCDQmtCQ0JTQoNCYCivQidCQ0JLQoNCe0KjQmtCQINCf0JDQktCV0JsKK9CJ0JDQktCg0J7QqNCa0JAg0J/QkNCS0JXQmwor0InQldCo0JXQktCY0Isg0InQmNCJ0JDQndCQINCU0KAKK9CJ0JXQqNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0InQldCo0IrQkNCaINCc0JjQoNCe0InQo9CRCivQidCV0KjQitCQ0Jog0JzQntCc0KfQmNCb0J4KK9CJ0JXQidCQ0Jog0JzQldCl0J4KK9CJ0JXQn9Ce0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CJ0JjQmtCQ0KAg0JXQktCT0JXQndCY0IjQlQor0InQmNCa0JDQoCDQnNCY0KXQkNCI0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CJ0JjQmtCQ0KAg0JLQldCg0J7QndCQCivQidCY0JrQkNCgINCS0JvQkNCU0JjQnNCY0KAg0JvQldCa0JDQoAor0InQmNCJ0JDQmiDQidCY0InQkNCd0JAKK9CJ0JjQidCQ0Jog0JzQmNCb0JDQnQor0InQmNCJ0JDQmiDQnNCY0JvQkNCdCivQidCY0InQkNCaINCc0JjQm9CV0J3QmtCeCivQidCY0InQkNCaINCc0JjQm9Ce0KDQkNCUCivQidCY0InQkNCaINCc0JjQntCU0KDQkNCTCivQidCY0InQkNCaINCc0JjQoNCa0J4KK9CJ0JjQidCQ0Jog0JzQmNCg0J7QodCb0JDQkgor0InQmNCJ0JDQmiDQndCQ0JTQkAor0InQmNCJ0JDQmiDQndCQ0JTQldCW0JTQkAor0InQmNCJ0JDQmiDQn9CQ0IjQngor0InQmNCJ0JDQmiDQodCQ0JLQkAor0InQmNCJ0JDQmiDQodCb0JDQktCa0J4KK9CJ0JjQidCQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0InQmNCJ0JDQmiDQktCb0JDQlNCeCivQidCj0KjQotCY0J3QkCDQltCY0JLQkNCdCivQidCj0KjQotCY0J3QkCDQgtCe0KDQgtCVCivQidCj0KjQotCY0J3QkCDQiNCV0JvQldCd0JAKK9CJ0KPQqNCi0JjQndCQINCJ0KPQkdCY0KbQkAor0InQo9Co0KLQmNCd0JAg0JzQmNCb0JDQnQor0InQo9Co0KLQmNCd0JAg0JzQmNCb0JDQnQor0InQo9Co0KLQmNCd0JAg0JzQmNCb0J7QktCQ0J0KK9CJ0KPQqNCi0JjQndCQINCd0JjQmtCe0JvQkAor0InQo9Co0KLQmNCd0JAg0J7Qm9CT0JAKK9CJ0KPQqNCi0JjQndCQINCh0J7QpNCY0IjQkAor0InQo9Co0KLQmNCd0JAg0JLQntCI0JrQkAor0InQo9Co0KLQmNCd0J7QkiDQndCQ0JTQkAor0InQo9CR0JDQqNCn0JjQmiDQkNCd0KLQntCdCivQidCj0JHQkNCd0JjQiyDQnNCQ0KDQkAor0InQo9CR0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQidCj0JHQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCb0JDQkgor0InQo9CR0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CJ0KPQkdCV0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CJ0KPQkdCV0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CJ0KPQkdCY0KfQmNCLINCW0JDQoNCa0J4KK9CJ0KPQkdCY0KfQmNCLINCW0JDQoNCa0J4KK9CJ0KPQkdCY0KfQmNCLINCW0JjQktCa0JAKK9CJ0KPQkdCY0KfQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CJ0KPQkdCY0KfQmNCLINCR0JvQkNCW0J4KK9CJ0KPQkdCY0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CJ0KPQkdCY0KfQmNCLINCU0JDQndCa0J4KK9CJ0KPQkdCY0KfQmNCLINCU0JDQoNCQCivQidCj0JHQmNCn0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQidCj0JHQmNCn0JjQiyDQiNCe0JLQmNCm0JAKK9CJ0KPQkdCY0KfQmNCLINCb0JDQl9CQ0KAKK9CJ0KPQkdCY0KfQmNCLINCb0KPQmtCQCivQidCj0JHQmNCn0JjQiyDQnNCQ0KDQmNCI0JDQnQor0InQo9CR0JjQp9CY0Isg0JzQkNCg0JjQndCQCivQidCj0JHQmNCn0JjQiyDQnNCY0KXQkNCI0JvQngor0InQo9CR0JjQp9CY0Isg0JzQmNCb0J7QqCDQm9Ce0JrQkNCbCivQidCj0JHQmNCn0JjQiyDQnNCY0JvQntCoCivQidCj0JHQmNCn0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CJ0KPQkdCY0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CJ0KPQkdCY0KfQmNCLINCd0JDQlNCQCivQidCj0JHQmNCn0JjQiyDQndCQ0JTQkAor0InQo9CR0JjQp9CY0Isg0J3QldCS0JXQndCa0JAKK9CJ0KPQkdCY0KfQmNCLINCd0JjQmtCe0JvQkAor0InQo9CR0JjQp9CY0Isg0J/QldCi0JDQoAor0InQo9CR0JjQp9CY0Isg0J/QldCi0JDQoAor0InQo9CR0JjQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0InQo9CR0JjQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0InQo9CR0JjQp9CY0Isg0KDQkNCi0JrQngor0InQo9CR0JjQp9CY0Isg0KDQldCJ0JAKK9CJ0KPQkdCY0KfQmNCLINCg0KPQlNCe0JvQpAor0InQo9CR0JjQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0InQo9CR0JjQp9CY0Isg0KHQotCQ0J3QmtCeCivQidCj0JHQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9CJ0KPQkdCY0KfQmNCLINCh0KPQl9CQ0J3QkAor0InQo9CR0JjQp9CY0Isg0KLQkNCb0JjQndCa0JAKK9CJ0KPQkdCY0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CJ0KPQkdCY0KfQmNCLINCX0J7QoNCQCivQidCj0JHQmNCo0JXQktCY0Isg0JzQmNCb0J7QqAor0InQo9CR0JjQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQidCj0JHQmNCo0JjQiyDQnNCY0JvQkNCd0JrQngor0InQo9CR0JjQqNCY0Isg0J/QldCi0JDQoAor0InQo9CR0JjQqNCY0Isg0KHQo9CX0JDQndCQCivQidCj0JHQmNCLINCQ0J3QgtCV0JvQmtCQCivQidCj0JHQmNCLINCQ0J3QlNCg0JjQiNCQCivQidCj0JHQmNCLINCY0JLQkNCdCivQidCj0JHQmNCLINCI0JXQm9CV0J3QkAor0InQo9CR0JjQiyDQnNCY0KDQiNCQ0J3QkAor0InQo9CR0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQidCj0JHQmNCLINCf0JXQoNCeCivQidCj0JHQmNCLINCg0JDQiNCa0J4KK9CJ0KPQkdCY0JHQoNCQ0KLQmNCLINCV0JTQngor0InQo9CR0JjQkdCg0JDQotCY0Isg0JvQldCeCivQidCj0JHQmNCd0JDQpiDQnNCY0JvQkNCd0JrQkAor0InQo9CR0JjQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQidCj0JHQmNCd0JrQntCS0JjQiyDQm9CV0J3QmtCQCivQidCj0JHQmNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQidCj0JHQmNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQidCj0JHQmNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0InQo9CR0JjQndCa0J7QktCY0Isg0J/QkNCS0JvQlQor0InQo9CR0JjQndCa0J7QktCY0Isg0KHQkNCS0JAKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0InQo9CR0JjQndCa0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CJ0KPQkdCY0KHQkNCS0InQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CJ0KPQkdCY0KHQkNCS0InQldCS0JjQiyDQnNCY0KjQkAor0InQo9CR0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9CJ0KPQkdCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CJ0KPQkdCe0IjQkCDQlNCg0JXQndCa0JAKK9CJ0KPQkdCe0IjQkCDQnNCb0JDQlNCV0J0KK9CJ0KPQkdCe0IjQkCDQodCY0JvQktCY0IjQkAor0InQo9CR0J7QiNCV0JIg0JHQmNCJ0JDQndCQCivQidCj0JHQntCI0JXQkiDQmNCS0JDQnQor0InQo9CR0J7QiNCV0JIg0IjQldCb0JXQndCQCivQidCj0JHQntCI0JXQkiDQm9CQ0JfQkNCgCivQidCj0JHQntCI0JXQkiDQnNCQ0IjQkAor0InQo9CR0J7QiNCV0JIg0J/QldCi0JDQoCDQnNCgCivQidCj0JHQntCI0JXQkiDQoNCQ0IjQmtCeCivQidCj0JHQntCI0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQidCj0JHQntCI0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0InQo9CR0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCU0JXQodCY0JzQmNCgCivQidCj0JHQntCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQmNCb0JjQiNCQCivQidCj0JHQntCI0JXQktCY0Isg0IjQntCS0JDQnQor0InQo9CR0J7QiNCV0JLQmNCLINCI0KPQm9Ca0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQmtCe0KHQotCQCivQidCj0JHQntCI0JXQktCY0Isg0JzQkNCg0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCc0JDQoNCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0InQo9CR0J7QiNCV0JLQmNCLINCc0JjQm9CV0J3QkAor0InQo9CR0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0InQo9CR0J7QiNCV0JLQmNCLINCc0JjQoNCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQntCh0KLQntCI0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQidCj0JHQntCI0JXQktCY0Isg0KDQo9CW0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQodCb0JDQktCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQidCj0JHQntCI0JXQktCY0Isg0KHQotCV0JLQkNCdCivQidCj0JHQntCI0JXQktCY0Isg0KLQntCU0J7QoAor0InQo9CR0J7QiNCV0JLQmNCLINCS0JXQidCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQidCj0JHQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0InQo9CR0J7QiNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CJ0KPQkdCe0KLQmNCdINCI0JXQm9CV0J3QkAor0InQo9CR0J7QotCY0J0g0KDQkNCU0J7QodCb0JDQkgor0InQo9CR0J7QotCY0J3QkC3QkdCg0JrQmNCLINCg0JDQiNCd0JAKK9CJ0KPQkdCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQidCj0JHQo9Co0KfQmNCaINCf0JXQotCQ0KAKK9CJ0KPQmtCe0JLQp9CQ0J3QmNCdINCc0JjQoNCI0JDQndCQCivQidCj0JrQntCS0KfQkNCd0JjQnSDQl9Ce0KDQmNCm0JAKK9CJ0KPQnNCe0JbQldCS0KHQmtCYINCI0JXQm9CV0J3QkAor0InQo9Cc0J7QltCV0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQidCj0JzQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CJ0KPQotCY0Isg0KHQotCQ0J3QmNCa0JAKK9CJ0KPQotCS0Jgg0KDQkNCU0JjQktCe0IgKK9Cb0J7Qp9Ca0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cb0J7QqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0J7QqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0J7QqNCY0Isg0JzQmNCi0KDQkAor0JvQntCo0J7QndCmINCl0JXQndCg0JjQiNCV0KLQlQor0JvQntCR0J7QlNCQINCQ0J3QotCj0J0KK9Cb0J7QkdCe0JTQkCDQodCi0JXQktCQ0J0KK9Cb0J7QpiDQkNCd0JTQoNCQ0KgKK9Cb0J7QpiDQiNCe0JbQldCkCivQm9Ce0KbQmCDQmNCo0KLQktCQ0J0KK9Cb0J7QlNCYINCT0JDQkdCe0KAKK9Cb0J7QlNCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQm9Ce0JTQmCDQm9CQ0KHQm9CeCivQm9Ce0JPQo9Cd0J7QkiDQkNCb0JXQmtCh0JXQiCDQlNCY0J/QmyDQmNCd0JMKK9Cb0J7QiNCQ0J3QmNCn0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQm9Ce0IjQkNCd0JjQptCQINCR0J7QqNCa0J4KK9Cb0J7QiNCd0JAg0JjQktCQ0J0KK9Cb0J7QiNCe0JLQmNCLINCR0J7QltCY0KbQkAor0JvQntCI0J7QktCY0Isg0J7QodCi0J7QiNCQCivQm9Ce0IjQntCS0JjQiyDQoNCQ0J3QmtCeCivQm9Ce0IjQn9Cj0KAg0JzQmNCb0J7QktCQ0J0KK9Cb0J7QmtCQ0KEg0JTQkNCg0JrQngor0JvQntCa0JjQiyDQlNCQ0J3QmNCm0JAKK9Cb0J7QmtCY0Isg0IjQldCb0JXQndCQCivQm9Ce0JrQmNCLINCJ0KPQkdCY0KbQkAor0JvQntCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JvQntCa0JjQiyDQktCV0KDQkAor0JvQntCb0JjQiyDQkdCe0KjQmtCeCivQm9Ce0JvQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Cb0J7Qm9CY0Isg0JzQkNCg0JjQiNCQCivQm9Ce0JvQmNCLINCc0JjQm9CQ0J0KK9Cb0J7Qm9CY0Isg0J3QldCU0JXQidCa0J4KK9Cb0J7Qm9CY0Isg0KHQm9CQ0JLQmtCQCivQm9Ce0JvQmNCLINCi0J7QlNCe0KAKK9Cb0J7Qm9CY0J0g0JTQldCI0JDQnQor0JvQntCb0JjQnSDQl9Ce0KDQmNCm0JAKK9Cb0J7QnNCV0J0g0JXQm9CV0J3QkAor0JvQntCc0JjQiyDQnNCe0JzQmNCgCivQm9Ce0JzQmNCLINCg0JDQlNCe0JLQkNCdCivQm9Ce0JzQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0J7QnNCI0JDQndCh0JrQmCDQkNCU0JDQnAor0JvQntCc0IjQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JvQntCc0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSINCc0KAg0J7QldCmINCYINCY0KPQoNCVCivQm9Ce0JzQntCS0JjQiyDQnNCY0KXQkNCY0J3QkAor0JvQntCc0J7QktCY0Isg0JzQmNCl0JDQmNCd0JAKK9Cb0J7QnNCf0JDQoCDQlNCg0JDQk9CQ0J0KK9Cb0J7QnNCf0JDQoCDQnNCY0KLQkNCgCivQm9Ce0JzQn9CQ0KAg0J/QldCi0JDQoAor0JvQntCc0J/QkNCgINCh0JDQktCQCivQm9Ce0J3Qp9CQ0KAg0KfQldCU0J7QnNCY0KAKK9Cb0J7QndCn0JDQoCDQgtCj0KDQngor0JvQntCd0KfQkNCgINCR0J7QqNCa0J4KK9Cb0J7QndCn0JDQoCDQkdCe0JbQmNCU0JDQoAor0JvQntCd0KfQkNCgINCR0J7QiNCQ0J3QkAor0JvQntCd0KfQkNCgINCR0J7QoNCY0KEKK9Cb0J7QndCn0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0J7QndCn0JDQoCDQlNCg0JDQk9CQ0J0KK9Cb0J7QndCn0JDQoCDQlNCj0KjQkNCdCivQm9Ce0J3Qp9CQ0KAg0JTQo9Co0JDQnQor0JvQntCd0KfQkNCgINCU0KPQqNCQ0J0KK9Cb0J7QndCn0JDQoCDQlNCj0KjQkNCdCivQm9Ce0J3Qp9CQ0KAg0JPQntCI0JrQngor0JvQntCd0KfQkNCgINCT0J7QoNCU0JDQndCQCivQm9Ce0J3Qp9CQ0KAg0JjQm9CY0IjQkAor0JvQntCd0KfQkNCgINCI0JXQm9CY0KbQkAor0JvQntCd0KfQkNCgINCI0J7QktCQ0J0KK9Cb0J7QndCn0JDQoCDQmtCe0KHQotCQCivQm9Ce0J3Qp9CQ0KAg0JrQodCV0J3QmNCI0JAKK9Cb0J7QndCn0JDQoCDQidCj0JHQmNCm0JAKK9Cb0J7QndCn0JDQoCDQidCj0JHQmNCm0JAKK9Cb0J7QndCn0JDQoCDQidCj0JHQmNCm0JAKK9Cb0J7QndCn0JDQoCDQnNCQ0KDQmtCeCivQm9Ce0J3Qp9CQ0KAg0JzQmNCl0JDQiNCb0J4KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JXQndCa0J4KK9Cb0J7QndCn0JDQoCDQnNCY0JvQlQor0JvQntCd0KfQkNCgINCc0JjQm9CVCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0J7QoNCQ0JQKK9Cb0J7QndCn0JDQoCDQnNCY0KDQmtCeCivQm9Ce0J3Qp9CQ0KAg0JzQmNCg0JrQngor0JvQntCd0KfQkNCgINCd0JXQlNCV0InQmtCeCivQm9Ce0J3Qp9CQ0KAg0J3QldCS0JXQndCa0JAKK9Cb0J7QndCn0JDQoCDQndCY0JrQntCb0JAKK9Cb0J7QndCn0JDQoCDQndCY0JrQntCb0JAKK9Cb0J7QndCn0JDQoCDQn9CQ0J3QotCV0JvQmNCI0JAKK9Cb0J7QndCn0JDQoCDQn9Cg0JXQlNCg0JDQkwor0JvQntCd0KfQkNCgINCg0JDQlNCVCivQm9Ce0J3Qp9CQ0KAg0KDQkNCU0J7QnNCY0KAKK9Cb0J7QndCn0JDQoCDQoNCQ0JTQntCc0JjQoAor0JvQntCd0KfQkNCgINCh0JjQnNCeCivQm9Ce0J3Qp9CQ0KAg0KHQm9CQ0JLQmtCeCivQm9Ce0J3Qp9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JvQntCd0KfQkNCgLdCh0KDQldCc0KfQldCSINCS0JXQoNCY0KbQkAor0JvQntCd0KfQkNCgINCh0KLQldCS0J4KK9Cb0J7QndCn0JDQoCDQotCQ0KLQiNCQ0J3QkAor0JvQntCd0KfQkNCgINCS0JXQm9CY0JzQmNCgCivQm9Ce0J3Qp9CQ0KAg0JLQldCg0JAKK9Cb0J7QndCn0JDQoCDQktCb0JDQlNCQCivQm9Ce0J3Qp9CQ0KAg0JLQm9CQ0JTQmNCc0JjQoNCa0JAg0JTQoAor0JvQntCd0KfQkNCgINCS0KPQmtCQ0KjQmNCdCivQm9Ce0J3Qp9CQ0KAg0JfQlNCg0JDQktCa0J4KK9Cb0J7QndCn0JDQoCDQl9Ce0KDQkNCdCivQm9Ce0J3Qp9CQ0KDQldCS0JjQiyDQltCY0JLQntCi0JAKK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCY0JPQitCQ0KIKK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCf0KPQndCY0KjQkAor0JvQntCd0KfQkNCg0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCS0JjQotCe0JzQmNCgCivQm9Ce0J3Qp9CQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQm9Ce0J3Qp9CQ0KDQodCa0Jgg0JTQoNCQ0JPQkNCd0JAKK9Cb0J7QndCn0JDQoNCh0JrQmCDQlNCg0JDQk9CY0KjQkAor0JvQntCd0KfQkNCg0KHQmtCYINCf0KDQldCU0KDQkNCTCivQm9Ce0J3Qp9CQ0KDQodCa0Jgg0KHQkNCS0JAKK9Cb0J7QndCn0JDQoNCh0JrQmCDQodCg0JXQlNCe0IjQlQor0JvQntCd0KfQmNCd0JAg0JzQmNCJ0JAKK9Cb0J7QndCn0JjQndCQINCf0KDQldCU0KDQkNCTCivQm9Ce0J3QptCY0Isg0JHQldCg0JjQodCb0JDQktCQCivQm9Ce0J3QptCY0Isg0KDQkNCI0JrQngor0JvQntCf0JDQotCY0J0g0J3QmNCa0J7Qm9CQCivQm9Ce0J/QmNCn0JjQiyDQqNCf0JjQoNCeCivQm9Ce0J/QmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cb0J7Qn9CY0KfQmNCLINCR0KDQkNCd0JrQngor0JvQntCf0JjQp9CY0Isg0IjQldCb0JjQptCQCivQm9Ce0J/QmNCn0JjQiyDQiNCe0JLQkNCdCivQm9Ce0J/QmNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQntCf0JjQp9CY0Isg0J7Qm9CT0JAKK9Cb0J7Qn9CY0KfQmNCLINCS0JXQodCV0JvQmNCdCivQm9Ce0J/Qo9Co0JDQndCh0JrQmCDQlNCj0KjQmNCm0JAKK9Cb0J7Qn9Cj0KjQmNCd0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0J7Qn9Cj0KjQmNCd0JAg0IjQldCb0JjQptCQCivQm9Ce0KDQkdCV0Jog0IjQntCh0JjQnwor0JvQntCg0JXQmiDQiNCe0JLQkNCdCivQm9Ce0KDQldCd0KbQmNCdINCc0JjQm9CQ0J0KK9Cb0J7QotCY0J3QkCDQlNCg0JDQk9CQ0J0KK9Cb0J7QotCY0J3QkCDQnNCY0KDQntCh0JvQkNCSCivQm9Ce0KLQmNCd0JAg0KHQnNCY0InQkAor0JvQntCS0KfQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JvQntCS0KfQldCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cb0J7QktCn0JXQktCY0Isg0JzQmNCb0JjQiwor0JvQntCS0KfQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9Ce0JLQp9CV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0J7QktCQ0Kgg0KDQntCX0JDQm9CY0IjQkAor0JvQntCS0JDQlNCY0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0J7QktCQ0KEg0JjQktCQ0J0KK9Cb0J7QktCY0Isg0JrQo9CX0JzQkNCdCivQm9Ce0JLQoNCVINCn0JXQlNCeCivQm9Ce0JLQoNCVINCU0KDQkNCT0JDQnQor0JvQntCS0KDQlSDQidCY0InQkNCd0JAKK9Cb0J7QktCg0JUg0JzQmNCb0J7QqAor0JvQntCS0KDQlSDQodCQ0JLQngor0JvQntCS0KDQlSDQodCb0JDQktCa0J4KK9Cb0J7QktCg0JUg0KHQotCV0JLQkNCdCivQm9Ce0JLQoNCV0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9Ce0JLQoNCV0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cb0J7QktCg0JXQnSDQodCb0JDQktCa0J4KK9Cb0J7QktCg0JXQndCn0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0J7QktCg0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JvQntCS0KDQldCd0KHQmtCYINCU0KPQqNCQ0J0KK9Cb0J7QktCg0JXQndCh0JrQmCDQlNCj0KjQkNCdCivQm9Ce0JLQoNCY0Isg0JbQldCJ0JrQngor0JvQntCS0KDQmNCLINCW0JXQidCa0J4KK9Cb0J7QktCg0JjQiyDQgtCj0KDQkAor0JvQntCS0KDQmNCLINCU0JjQktCd0JAKK9Cb0J7QktCg0JjQiyDQnNCQ0KDQmtCeCivQm9Ce0JLQoNCY0Isg0J3QmNCa0J7Qm9CQCivQm9Ce0JLQoNCY0Isg0J/QldCi0JDQoAor0JvQntCS0KDQmNCLINCg0JDQiNCa0J4KK9Cb0J7QktCg0JjQiyDQoNCQ0KLQmtCeCivQm9Ce0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQm9Ce0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQm9Ce0JLQoNCY0Isg0KHQotCV0JLQkNCdCivQm9Ce0JLQoNCY0Isg0KHQotCV0JLQkNCdCivQm9Ce0JLQoNCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cb0J7QktCg0JjQiyDQotCg0JjQktCj0J0KK9Cb0J7QktCg0JjQnSDQlNCQ0KDQkAor0JvQntCS0KDQmNCdINCU0KDQkNCT0JDQnQor0JvQntCX0JDQndCn0JjQiyDQndCY0JrQngor0JvQntCX0JDQndCY0Isg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9Ce0JfQkNCd0JjQiy3Qn9CQ0JLQm9Ce0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cb0J7Ql9CQ0J3QntCSINCV0JzQmNCbCivQm9Ce0JfQkNCd0J7QkiDQodCQ0JLQkAor0JvQntCX0JjQiyDQiNCe0KHQmNCfCivQm9Ce0JfQmNCLINCa0KDQodCi0JAKK9Cb0J7Ql9CY0Isg0JrQodCV0J3QmNCI0JAKK9Cb0J7Ql9CY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQmNCf0Jsg0JjQndCTCivQm9Ce0JfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0J7Ql9CI0JDQndCY0J0g0J3QmNCa0J7Qm9CQCivQm9Ce0JfQiNCQ0J3QmNCdINCd0JjQmtCe0JvQkAor0JvQntCX0IjQkNCd0JjQnSDQndCY0JrQntCb0JAKK9Cb0J7Ql9Ce0JLQntCIINCJ0KPQkdCY0KbQkAor0JvQo9Cn0JDQmiDQl9Cb0JDQotCY0KbQkAor0JvQo9Cn0JDQoCDQnNCY0JvQkNCU0JjQnQor0JvQo9Cn0JDQoCDQnNCY0JvQkNCdCivQm9Cj0KfQkNCgINCS0JXQoNCQCivQm9Cj0KfQmCDQkNCd0JjQptCQCivQm9Cj0KfQmCDQmNCS0JDQnQor0JvQo9Cn0JjQiyDQp9CV0JTQntCc0JjQoAor0JvQo9Cn0JjQiyDQltCY0JLQmtCeCivQm9Cj0KfQmNCLINCC0J7QmtCeCivQm9Cj0KfQmNCLINCC0J7QoNCC0JUKK9Cb0KPQp9CY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cb0KPQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JvQo9Cn0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JvQo9Cn0JjQiyDQkdCg0JDQndCa0J4KK9Cb0KPQp9CY0Isg0JTQoNCQ0JPQkNCdCivQm9Cj0KfQmNCLINCU0KDQkNCT0JjQptCQCivQm9Cj0KfQmNCLINCU0KDQkNCT0JjQitCQCivQm9Cj0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cb0KPQp9CY0Isg0JPQldCe0KDQk9CY0IjQlQor0JvQo9Cn0JjQiyDQiNCV0JvQldCd0JAKK9Cb0KPQp9CY0Isg0IjQldCb0JjQptCQCivQm9Cj0KfQmNCLINCI0J7QktCQ0J0g0JzQoAor0JvQo9Cn0JjQiyDQiNCe0JLQkNCdCivQm9Cj0KfQmNCLINCI0J7QktCQ0J0KK9Cb0KPQp9CY0Isg0IjQntCS0JjQptCQCivQm9Cj0KfQmNCLINCb0JDQl9CeCivQm9Cj0KfQmNCLINCJ0KPQkdCQ0J0KK9Cb0KPQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0KPQp9CY0Isg0InQo9CR0J4KK9Cb0KPQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cb0KPQp9CY0Isg0JzQmNCb0JDQnQor0JvQo9Cn0JjQiyDQnNCY0JvQldCd0JrQngor0JvQo9Cn0JjQiyDQnNCY0JvQldCd0JrQngor0JvQo9Cn0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0KPQp9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JvQo9Cn0JjQiyDQnNCY0JvQntCoCivQm9Cj0KfQmNCLINCc0JjQm9Ce0IjQmNCm0JAKK9Cb0KPQp9CY0Isg0JzQmNCb0J7QiNCa0JAKK9Cb0KPQp9CY0Isg0JzQmNCb0J7QnNCY0KAKK9Cb0KPQp9CY0Isg0JzQmNCb0J7QodCQ0JLQkAor0JvQo9Cn0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JvQo9Cn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQo9Cn0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JvQo9Cn0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cb0KPQp9CY0Isg0JzQntCc0KfQmNCb0J4KK9Cb0KPQp9CY0Isg0JzQntCc0JjQoAor0JvQo9Cn0JjQiyDQndCQ0JTQkAor0JvQo9Cn0JjQiyDQntCR0KDQkNCUCivQm9Cj0KfQmNCLINCf0JDQndCi0JAKK9Cb0KPQp9CY0Isg0J/QkNCS0JAKK9Cb0KPQp9CY0Isg0J/QldCi0JDQoAor0JvQo9Cn0JjQiyDQn9CV0KLQmtCeCivQm9Cj0KfQmNCLINCf0JXQotCa0J4KK9Cb0KPQp9CY0Isg0KDQkNCI0JrQngor0JvQo9Cn0JjQiyDQoNCY0KHQotCeCivQm9Cj0KfQmNCLINCh0JvQkNCS0JrQngor0JvQo9Cn0JjQiyDQodCb0JDQktCd0JAKK9Cb0KPQp9CY0Isg0KHQntCk0JjQiNCQCivQm9Cj0KfQmNCLINCh0J/QkNCh0J7QiNCVCivQm9Cj0KfQmNCLINCh0KLQldCk0JDQndCY0IjQkAor0JvQo9Cn0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQp9CY0Isg0JLQkNCh0J4KK9Cb0KPQp9CY0Isg0JLQm9CQ0JTQngor0JvQo9Cn0JjQiyDQktCe0IjQmNCdCivQm9Cj0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQm9Cj0KjQmNCd0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cb0KPQltCQ0JjQiyDQgtCe0KDQgtCVCivQm9Cj0JbQkNCY0Isg0ILQntCg0ILQlQor0JvQo9CW0JDQmNCLINCQ0J3QmtCQCivQm9Cj0JbQkNCY0Isg0JHQntCW0JjQptCQCivQm9Cj0JbQkNCY0Isg0JTQo9Co0JrQngor0JvQo9CW0JDQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cb0KPQltCQ0JjQiyDQiNCj0JvQmtCQCivQm9Cj0JbQkNCY0Isg0JzQmNCg0JAKK9Cb0KPQltCQ0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9Cj0JbQkNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQo9CW0JDQiNCY0Isg0JDQndCa0JAKK9Cb0KPQltCQ0IjQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cb0KPQltCQ0IjQmNCLINCc0JjQm9CV0J3QkAor0JvQo9CW0JDQiNCY0Isg0J3QkNCU0JAKK9Cb0KPQltCQ0IjQmNCLINCh0KLQkNCd0JrQngor0JvQo9CW0JDQiNCY0Isg0KHQotCQ0J3QmtCeCivQm9Cj0JbQkNCI0JjQiyDQodCi0J7QiNCQ0J0KK9Cb0KPQltCQ0J3QmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0KPQkdCQ0KjQp9CY0Jog0JDQndCi0JDQmwor0JvQo9CR0JDQqNCn0JjQmiDQm9CQ0KHQm9CeCivQm9Cj0JHQkNCg0JTQkCDQidCj0JHQmNCm0JAKK9Cb0KPQkdCQ0KDQlNCQINCh0KLQldCS0JDQnQor0JvQo9CR0JXQnSDQoNCQ0J3QmtCeCivQm9Cj0JHQldCdINCh0JDQktCQCivQm9Cj0JHQo9Cg0JjQiyDQp9CV0JTQntCc0JjQoAor0JvQo9CR0KPQoNCY0Isg0JTQkNCd0JjQm9CeCivQm9Cj0JHQo9Cg0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9CR0KPQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQkdCj0KDQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9Cj0JHQo9Cg0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQo9CR0KPQoNCY0Isg0JzQmNCg0JrQngor0JvQo9CR0KPQoNCY0Isg0J3QkNCU0JAKK9Cb0KPQkdCj0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQm9Cj0JHQo9Cg0JjQiyDQoNCQ0IjQmtCeCivQm9Cj0JHQo9Cg0JjQiyDQodCi0JDQndCQCivQm9Cj0JHQo9Cg0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQpiDQiNCQ0J3QntCoCivQm9Cj0KYg0IjQo9Cb0JjQiNCQCivQm9Cj0KbQmNCLINCW0JjQktCe0IjQmNCdCivQm9Cj0KbQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQm9Cj0KbQmNCLINCf0JXQotCQ0KAKK9Cb0KPQptCY0Isg0KDQkNCU0JjQktCe0IgKK9Cb0KPQptCa0JDQoNCWINCS0JvQkNCU0JjQnNCY0KAKK9Cb0KPQlNCQ0IjQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9Cj0JTQkNCI0JjQiyDQktCV0KDQkAor0JvQo9CU0J7QqNCa0Jgg0JDQndCC0JXQm9Ca0J4KK9Cb0KPQlNCe0KjQmtCYINCa0JDQotCY0KbQkAor0JvQo9CU0J7QqNCa0Jgg0JvQkNCX0JDQoAor0JvQo9CU0J7QqNCa0Jgg0JvQkNCX0JDQoAor0JvQo9CU0J7QqNCa0Jgg0InQo9CR0JjQptCQCivQm9Cj0JTQntCo0JrQmCDQidCj0JHQntCc0JjQoAor0JvQo9CU0J7QqNCa0Jgg0JzQmNCb0JXQndCa0J4KK9Cb0KPQlNCe0KjQmtCYINCS0JXQm9CY0JzQmNCgCivQm9Cj0JTQoNCe0JLQkNCdINCh0KLQldCS0JAKK9Cb0KPQk9Ce0IrQkCDQm9CQ0JfQngor0JvQo9CT0J7QitCQINCf0JXQotCQ0KAKK9Cb0KPQk9Ce0IrQkCDQoNCQ0JTQmNCS0J7QiAor0JvQo9CT0J7QitCQINCh0JDQktCQCivQm9Cj0JPQntCK0JAg0KHQm9Ce0JHQntCU0JDQnQor0JvQo9CT0J7QitCQINCS0JXQidCa0J4KK9Cb0KPQk9Ce0IrQkCDQktCY0JTQntCI0JUKK9Cb0KPQk9Cj0JzQldCg0KHQmtCYINCU0JDQndCY0KbQkAor0JvQo9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQm9Cj0IjQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cb0KPQiNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQm9Cj0IjQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JvQo9Ca0JDQpyDQqNCQ0J3QlNCe0KAKK9Cb0KPQmtCQ0Kcg0JDQndCU0KDQkNCoCivQm9Cj0JrQkNCnINCQ0J3QmtCY0KbQkAor0JvQo9Ca0JDQpyDQkNCg0JDQndCa0JAKK9Cb0KPQmtCQ0Kcg0JHQntCo0JrQngor0JvQo9Ca0JDQpyDQkdCe0KjQmtCeCivQm9Cj0JrQkNCnINCR0J7QltCY0JTQkNCgCivQm9Cj0JrQkNCnINCR0KDQkNCd0JjQodCb0JDQkgor0JvQo9Ca0JDQpyDQlNCQ0J3QmNCb0J4KK9Cb0KPQmtCQ0Kcg0JTQoNCQ0JPQkNCdCivQm9Cj0JrQkNCnINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgCivQm9Cj0JrQkNCnINCk0JXQoNCV0J3Qpgor0JvQo9Ca0JDQpyDQpNCg0JDQndCm0JjQqNCa0JAKK9Cb0KPQmtCQ0Kcg0KTQoNCQ0IrQkAor0JvQo9Ca0JDQpyDQk9Cg0J7Ql9CU0JAKK9Cb0KPQmtCQ0Kcg0JjQk9CK0JDQogor0JvQo9Ca0JDQpyDQmNCS0JDQnQor0JvQo9Ca0JDQpyDQm9CQ0JfQkNCgCivQm9Cj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQm9Cj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQm9Cj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQm9Cj0JrQkNCnINCc0JjQm9CV0JLQkAor0JvQo9Ca0JDQpyDQndCQ0JTQldCW0JTQkAor0JvQo9Ca0JDQpyDQn9CV0KLQkNCgCivQm9Cj0JrQkNCnINCf0JXQotCQ0KAKK9Cb0KPQmtCQ0Kcg0KDQkNCU0JUKK9Cb0KPQmtCQ0Kcg0KHQkNCS0JAKK9Cb0KPQmtCQ0Kcg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cb0KPQmtCQ0Kcg0KHQm9Ce0JHQntCU0JDQnQor0JvQo9Ca0JDQpyDQodCi0JXQktCQ0J0KK9Cb0KPQmtCQ0Kcg0KHQktCV0KLQmtCeCivQm9Cj0JrQkNCnINCS0JXQm9CY0JzQmNCgCivQm9Cj0JrQkNCn0JXQktCY0Isg0InQo9CR0JjQqNCQCivQm9Cj0JrQkNCn0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cb0KPQmtCQ0KfQmCDQiNCj0JvQmNCI0JDQndCQCivQm9Cj0JrQkNCI0JjQiyDQm9CQ0JfQkNCgINCc0KAKK9Cb0KPQmtCQ0J0g0ILQntCg0ILQlQor0JvQo9Ca0JDQnSDQktCY0J3QptCV0J3Qpgor0JvQo9Ca0JDQndCY0Isg0KTQoNCY0ILQldCoCivQm9Cj0JrQkNCd0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQmtCQ0KLQldCb0Jgg0JjQktCQ0J3QmtCQCivQm9Cj0JrQkNCS0JDQpiDQodCc0JjQidCa0JAKK9Cb0KPQmtCQ0JLQkNCmINCX0J7QoNCQ0J0KK9Cb0KPQmtCV0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0KPQmtCV0J3QmNCLINCJ0JjQidCQ0J3QkAor0JvQo9Ca0JXQotCQINCg0JDQlNCc0JjQm9CQCivQm9Cj0JrQmNCn0JjQiyDQkdCe0JPQlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9Cj0JrQmNCn0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0KPQmtCY0KfQmNCLINCg0JDQlNCQCivQm9Cj0JrQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCLINCW0JjQktCe0KDQkNCUCivQm9Cj0JrQmNCLINCW0JjQktCe0KDQkNCUCivQm9Cj0JrQmNCLINCW0JjQktCe0KLQkAor0JvQo9Ca0JjQiyDQgtCj0KDQkAor0JvQo9Ca0JjQiyDQgtCj0KDQngor0JvQo9Ca0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQo9Ca0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQo9Ca0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQo9Ca0JjQiyDQkNCd0JPQldCb0JjQndCQCivQm9Cj0JrQmNCLINCR0JXQoNCi0JAKK9Cb0KPQmtCY0Isg0JHQntCo0JrQngor0JvQo9Ca0JjQiyDQkdCe0JbQmNCU0JDQoAor0JvQo9Ca0JjQiyDQkdCe0JPQntCJ0KPQkQor0JvQo9Ca0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQm9Cj0JrQmNCLINCR0J7QoNCeCivQm9Cj0JrQmNCLINCR0J7QodCY0InQmtCQCivQm9Cj0JrQmNCLINCm0JLQldCi0JAKK9Cb0KPQmtCY0Isg0KbQktCI0JXQotCa0J4KK9Cb0KPQmtCY0Isg0JTQkNCd0JUKK9Cb0KPQmtCY0Isg0JTQkNCd0JUKK9Cb0KPQmtCY0Isg0JTQkNCg0JjQndCa0JAKK9Cb0KPQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQm9Cj0JrQmNCLINCU0J7QkdCg0JjQm9CQCivQm9Cj0JrQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cb0KPQmtCY0Isg0JTQoNCQ0JPQkNCdCivQm9Cj0JrQmNCLINCU0KDQkNCT0JAKK9Cb0KPQmtCY0Isg0JTQoNCQ0JPQntCI0JUKK9Cb0KPQmtCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cb0KPQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9Cb0KPQmtCY0Isg0JTQo9Co0JDQnQor0JvQo9Ca0JjQiyDQlNCj0KjQkNCdCivQm9Cj0JrQmNCLLdCk0KPQlNCV0KDQldCgINCI0J7Qm9CQ0J3QmtCQCivQm9Cj0JrQmNCLINCT0KDQntCX0JTQkAor0JvQo9Ca0JjQiyDQk9Cg0KPQiNCY0KbQkCDQlNCY0J/QmyDQmNCd0JMKK9Cb0KPQmtCY0Isg0JjQm9CY0IjQkAor0JvQo9Ca0JjQiyDQmNCb0JjQiNCQCivQm9Cj0JrQmNCLINCY0JvQmNCI0JAKK9Cb0KPQmtCY0Isg0JjQktCQ0J0KK9Cb0KPQmtCY0Isg0JjQktCQ0J0KK9Cb0KPQmtCY0Isg0JjQktCQ0J0KK9Cb0KPQmtCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JvQo9Ca0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JvQo9Ca0JjQiyDQiNCV0JvQldCd0JAKK9Cb0KPQmtCY0Isg0IjQldCb0JXQndCQCivQm9Cj0JrQmNCLINCI0JXQm9CV0J3QkAor0JvQo9Ca0JjQiyDQiNCV0JvQmNCm0JAKK9Cb0KPQmtCY0Isg0IjQntCS0JDQndCa0JAKK9Cb0KPQmtCY0Isg0IjQntCS0JDQnQor0JvQo9Ca0JjQiyDQiNCe0JLQkNCdCivQm9Cj0JrQmNCLINCI0J7QktCQ0J0KK9Cb0KPQmtCY0Isg0IjQntCS0J4KK9Cb0KPQmtCY0Isg0IjQntCS0J4KK9Cb0KPQmtCY0Isg0IjQo9Cb0JrQkAor0JvQo9Ca0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQm9Cj0JrQmNCLINCa0J7QodCi0JAKK9Cb0KPQmtCY0Isg0JrQntCh0KLQkAor0JvQo9Ca0JjQiyDQm9CQ0JfQkNCgCivQm9Cj0JrQmNCLINCJ0JjQidCQ0J3QkAor0JvQo9Ca0JjQiyDQidCj0JHQkAor0JvQo9Ca0JjQiyDQidCj0JHQmNCo0JAg0JTQoCDQm9CV0JrQkNCgCivQm9Cj0JrQmNCLINCJ0KPQkdCY0KbQkAor0JvQo9Ca0JjQiyDQm9CI0KPQkdCe0JzQmNCgCivQm9Cj0JrQmNCLINCc0JDQoNCQCivQm9Cj0JrQmNCLINCc0JDQoNCY0IjQkAor0JvQo9Ca0JjQiyDQnNCQ0KDQmtCeCivQm9Cj0JrQmNCLINCc0JDQoNCa0J4KK9Cb0KPQmtCY0Isg0JzQkNCg0JrQngor0JvQo9Ca0JjQiyDQnNCY0IvQkAor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CVCivQm9Cj0JrQmNCLINCc0JjQm9CY0IjQkAor0JvQo9Ca0JjQiyDQnNCY0JvQmtCQCivQm9Cj0JrQmNCLINCc0JjQm9Ce0KgKK9Cb0KPQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cb0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cb0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cb0KPQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JvQo9Ca0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9Cj0JrQmNCLINCc0J7QnNCn0JjQm9CeCivQm9Cj0JrQmNCLINCd0JXQktCV0J3QkAor0JvQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9Cb0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQm9Cj0JrQmNCLINCd0JjQmtCe0JvQkAor0JvQo9Ca0JjQiyDQndCe0JLQmtCQCivQm9Cj0JrQmNCLINCe0JHQoNCQ0JQKK9Cb0KPQmtCY0Isg0J7Qm9CT0JAKK9Cb0KPQmtCY0Isg0J7Qm9CT0JjQptCQCivQm9Cj0JrQmNCLINCf0JXQotCQ0KAKK9Cb0KPQmtCY0Isg0J/QldCi0JDQoAor0JvQo9Ca0JjQiyDQn9CV0KLQkNCgCivQm9Cj0JrQmNCLINCf0JXQotCQ0KAKK9Cb0KPQmtCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cb0KPQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JvQo9Ca0JjQiyDQoNCQ0JTQntCS0JDQnQor0JvQo9Ca0JjQiyDQoNCQ0JTQntCS0JDQnQor0JvQo9Ca0JjQiyDQoNCQ0IjQmtCeCivQm9Cj0JrQmNCLINCg0JjQodCi0J4KK9Cb0KPQmtCY0Isg0KDQo9CW0JAKK9Cb0KPQmtCY0Isg0KDQo9CW0JAKK9Cb0KPQmtCY0Isg0KHQkNCS0JrQkAor0JvQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JvQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0KPQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCLINCh0J7QpNCY0IjQkAor0JvQo9Ca0JjQiyDQodCe0KTQmNCI0JAKK9Cb0KPQmtCY0Isg0KHQotCQ0J3QkAor0JvQo9Ca0JjQiyDQodCi0JDQndCY0KjQkAor0JvQo9Ca0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cb0KPQmtCY0Isg0KHQotCV0JLQkNCdCivQm9Cj0JrQmNCLINCh0KLQldCS0JDQnQor0JvQo9Ca0JjQiy3QodCi0JXQktCY0Isg0InQmNCJ0JDQndCQCivQm9Cj0JrQmNCLINCh0KLQldCS0J4KK9Cb0KPQmtCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JvQo9Ca0JjQiyDQodCi0J7QiNCQ0J0KK9Cb0KPQmtCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JvQo9Ca0JjQiyDQotCQ0JzQkNCg0JAKK9Cb0KPQmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0JvQo9Ca0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9Cj0JrQmNCLINCS0JXQm9CY0JHQntCgINCU0KAKK9Cb0KPQmtCY0Isg0JLQldCb0JjQkdCe0KAg0JTQoAor0JvQo9Ca0JjQiyDQktCV0JvQmNCc0JjQoAor0JvQo9Ca0JjQiyDQktCV0InQmtCeCivQm9Cj0JrQmNCLINCS0JXQoNCQCivQm9Cj0JrQmNCLINCS0JXQoNCY0KbQkAor0JvQo9Ca0JjQiyDQktCV0KDQntCd0JAKK9Cb0KPQmtCY0Isg0JLQldCg0J7QndCY0JrQkAor0JvQo9Ca0JjQiyDQktCV0KHQldCb0JjQnQor0JvQo9Ca0JjQiyDQktCY0JTQntCh0JDQktCQCivQm9Cj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQm9Cj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0KPQmtCY0Isg0JLQntCI0JjQnQor0JvQo9Ca0JjQiyDQktCj0JrQntCh0JDQkgor0JvQo9Ca0JjQiyDQktCj0JoKK9Cb0KPQmtCY0Isg0JfQntCg0JDQnQor0JvQo9Ca0JjQiyDQl9Ce0KDQkNCdCivQm9Cj0JrQmNCLINCX0J7QoNCQ0J0KK9Cb0KPQmtCY0Isg0JfQntCg0JrQkAor0JvQo9Ca0J4g0KjQkNCd0JTQntCgCivQm9Cj0JrQniDQkNCd0JTQoNCQ0KgKK9Cb0KPQmtCe0JLQkNCmINCQ0J3QmNCm0JAKK9Cb0KPQmtCe0JLQkNCmINCU0KDQkNCT0JDQnQor0JvQo9Ca0J7QktCQ0KYg0JzQmNCb0JDQnQor0JvQo9Ca0J7QktCQ0KYg0JzQmNCb0J7QktCQ0J0KK9Cb0KPQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cb0KPQmtCe0JLQmNCLINCY0JLQkNCdCivQm9Cj0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQm9Cj0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9Ca0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQm9Cj0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cb0KPQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQm9Cj0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9Cj0JvQmNCLINCQ0J3QkAor0JvQo9Cb0JjQiyDQkNCd0KLQo9CdCivQm9Cj0JvQmNCLINCk0KDQkNCK0JAKK9Cb0KPQm9CY0Isg0JjQktCQ0J0g0JzQoAor0JvQo9Cb0JjQiyDQmNCS0JDQnQor0JvQo9Cb0JjQiyDQnNCQ0IjQkAor0JvQo9Cb0JjQiyDQnNCQ0KDQmtCeCivQm9Cj0J3QkyDQlNCg0JDQk9CQ0J0KK9Cb0KPQndCTINCh0KLQldCS0JDQnQor0JvQo9Cd0JPQmNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQm9Cj0J3Qk9Cj0JvQntCSINCc0JjQm9CY0JLQntCICivQm9Cj0J/QqNCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JvQo9Cf0KjQmNCLINCa0J7QoNCd0JXQmwor0JvQo9Cf0KjQmNCLINCa0J7QoNCd0JXQmwor0JvQo9Cf0KjQntCgINCh0KLQldCb0JAKK9Cb0KPQn9CY0J3QodCa0Jgg0J3QmNCd0J7QodCb0JDQkgor0JvQo9Cf0JjQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQm9Cj0J/Qo9CmINCI0JXQm9CY0KbQkAor0JvQo9Cf0KPQoNCe0JIg0JvQkNCX0JAKK9Cb0KPQn9Cj0KDQntCS0JjQnSDQndCV0JLQldCd0JrQkAor0JvQo9Ci0JrQmNCLINCW0JjQktCa0JAKK9Cb0KPQotCa0JjQiyDQgtCe0KDQgtCVCivQm9Cj0KLQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cb0KPQotCa0JjQiyDQm9CQ0JfQkNCgCivQm9Cj0KLQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQotCa0JjQiyDQodCi0JDQndCa0J4KK9Cb0KPQotCa0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQotCa0JjQiyDQl9CQ0JPQntCg0JrQkAor0JvQo9Ci0KDQntCSINCd0JDQlNCQCivQm9Cj0JLQoNCQ0JTQntCSINCR0JvQkNCT0J7QiNCVCivQnNCQ0KfQldCaINCI0J7QktCQ0J0KK9Cc0JDQp9Ca0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQp9Ca0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCn0JrQmNCLINCI0JDQndCa0J4KK9Cc0JDQp9Ca0JjQiyDQiNCQ0J3QmtCeCivQnNCQ0KfQmtCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KfQmtCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQp9Ca0JjQiyDQnNCY0JvQldCS0JrQkAor0JzQkNCn0JrQmNCLINCc0JjQm9CY0JLQntCICivQnNCQ0KfQmtCY0Isg0JzQmNCJ0JrQkAor0JzQkNCn0JrQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQp9Ca0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCn0JrQmNCLINCd0JXQndCQ0JQKK9Cc0JDQp9Ca0JjQiyDQn9CV0KLQoNCQCivQnNCQ0KfQmtCY0Isg0KHQotCV0JLQngor0JzQkNCn0JrQmNCLINCS0JDQodCeCivQnNCQ0KfQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCn0JrQntCS0JjQiyDQnNCY0JvQkNCd0JAKK9Cc0JDQp9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCn0JrQntCS0JjQiyDQotCe0JzQkAor0JzQkNCn0KPQmtCQ0KIg0JPQoNCT0J4KK9Cc0JDQp9CS0JDQndCY0J0g0JHQntCI0JDQndCQINCU0KAg0JvQldCa0JDQoAor0JzQkNCo0JAg0JXQoNCW0JXQkdCV0KIKK9Cc0JDQqNCQINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KjQkCDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KjQkNCd0J7QktCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCY0IjQlQor0JzQkNCo0JDQndCe0JLQmNCLINCR0JvQkNCW0J4KK9Cc0JDQqNCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCo0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCo0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9Cc0JDQqNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCo0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KjQmNCLINCW0JDQoNCa0J4KK9Cc0JDQqNCY0Isg0JbQmNCS0JDQnQor0JzQkNCo0JjQiyDQkdCe0KDQmNChCivQnNCQ0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCo0JjQiyDQlNCg0JDQk9CY0IsKK9Cc0JDQqNCY0Isg0JjQqNCi0JLQkNCdCivQnNCQ0KjQmNCLINCY0JzQoNCVCivQnNCQ0KjQmNCLINCY0JLQkNCdCivQnNCQ0KjQmNCLINCI0J7QktCQ0J0KK9Cc0JDQqNCY0Isg0JrQkNCg0J7QiQor0JzQkNCo0JjQiyDQnNCQ0J3QlNCQCivQnNCQ0KjQmNCLINCc0JjQm9CQ0J0g0JTQoAor0JzQkNCo0JjQiyDQnNCY0JvQmNCd0JrQngor0JzQkNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQkNCo0JjQiyDQnNCY0InQkNCd0JAKK9Cc0JDQqNCY0Isg0JzQmNCb0J7QiNCVCivQnNCQ0KjQmNCLINCc0JjQoNCQCivQnNCQ0KjQmNCLINCc0JjQoNCa0J4KK9Cc0JDQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCo0JjQiyDQndCQ0JTQkAor0JzQkNCo0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KjQmNCLINCg0JXQqNCQ0JQKK9Cc0JDQqNCY0Isg0KHQldCd0JrQkAor0JzQkNCo0JjQiyDQodCV0J3QmtCQCivQnNCQ0KjQmNCLINCh0JjQnNCV0J7QnQor0JzQkNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCo0JjQiyDQktCV0KDQkAor0JzQkNCo0JjQiyDQktCY0JrQotCe0KAKK9Cc0JDQqNCY0Isg0JLQo9Cn0JXQotCQCivQnNCQ0KjQmNCg0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JDQqNCY0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQqNCa0J7QktCY0Isg0J3QntCS0JjQptCQCivQnNCQ0KjQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQqNCi0KDQkNCf0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCo0KPQm9Ce0JLQmNCLINCI0JDQodCc0JjQndCQCivQnNCQ0KjQo9Cb0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQi9CQ0Kgg0KHQotCV0JLQkNCdCivQnNCQ0IvQkNCoINCS0JDQodCQCivQnNCQ0IvQkNCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCL0JDQqNCV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0IvQkNCo0JXQkiDQlNCQ0J3QmNCb0J4KK9Cc0JDQi9CQ0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0IvQldCo0JjQiyDQiNCe0KHQmNCfCivQnNCQ0IvQldCo0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQkNCL0JrQniDQiNCe0JbQldCkCivQnNCQ0IvQmtCeINCS0JjQm9Cc0J7QqAor0JzQkNCW0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JbQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0JbQmNCLINCc0JjQoNCQCivQnNCQ0JbQmNCLINCf0JXQotCQ0KAKK9Cc0JDQltCY0Isg0KDQo9CW0JAKK9Cc0JDQltCY0JHQoNCQ0JTQkCDQktCQ0KHQngor0JzQkNCW0JjQkdCg0JDQlNCQLdCS0KPQk9Cg0JjQnSDQnNCQ0KDQotCQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCC0JDQoCDQkdCe0JbQmNCU0JDQoAor0JzQkNCC0JDQoCDQldCg0JbQldCR0JXQogor0JzQkNCC0JDQoCDQiNCe0JLQkNCdCivQnNCQ0ILQkNCgINCI0J7QktCQ0J0KK9Cc0JDQgtCQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JzQkNCC0JDQoCDQodCi0JXQktCQ0J0KK9Cc0JDQgtCQ0KDQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCC0JDQoNCV0JLQmNCLINCY0JLQkNCdCivQnNCQ0ILQkNCg0JXQktCY0Isg0JrQntCh0KLQkAor0JzQkNCC0JDQoNCV0JLQmNCLINCc0JjQm9CVCivQnNCQ0ILQkNCg0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQkNCC0JDQoNCV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQnNCQ0ILQkNCg0JXQktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0ILQkNCg0Jgg0JDQndCU0J7QoAor0JzQkNCC0JjQodCi0J7QoNCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCm0JDQmiDQn9CQ0JLQm9CVCivQnNCQ0KbQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQptCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KbQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCQ0KbQkNCd0J7QktCY0Isg0IjQldCS0KDQntCh0JjQnNCQCivQnNCQ0KbQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCm0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQptCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQnNCQ0KbQldCU0J7QndCY0Isg0JHQntCT0JTQkNCdINCU0KAKK9Cc0JDQptCV0JTQntCd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQkNCm0JXQlNCe0J3QmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JDQptCV0JTQntCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KbQmtCeINCC0KPQoNCQCivQnNCQ0KbQmtCeINCQ0J3QkAor0JzQkNCm0J3QldCgINCU0JDQktCe0KAKK9Cc0JDQptCj0KDQkCDQp9CV0JTQngor0JzQkNCm0KPQoNCQINCC0J7QoNCC0JUKK9Cc0JDQptCj0KDQkCDQlNCe0JHQoNCY0J3QmtCQCivQnNCQ0KbQo9Cg0JAg0JTQoNCQ0JPQngor0JzQkNCm0KPQoNCQINCb0JjQlNCY0IjQkAor0JzQkNCm0KPQoNCQINCc0JjQm9Ce0KgKK9Cc0JDQptCj0KDQkCDQnNCY0JvQntCg0JDQlAor0JzQkNCm0KPQoNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQptCj0KDQkCDQn9CV0KLQkNCgCivQnNCQ0KbQo9Cg0JAg0KLQldCe0JTQntCgCivQnNCQ0KbQo9CiINCc0JjQm9Ce0KgKK9Cc0JDQj9CQ0KAg0JHQntCg0JjQodCb0JDQkgor0JzQkNCP0JDQoCDQnNCY0JvQntCg0JDQlAor0JzQkNCP0JDQoCDQnNCY0KDQmtCeCivQnNCQ0I/QkNCg0JDQpiDQp9CV0JTQntCc0JjQoAor0JzQkNCP0JDQoNCQ0KYg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQj9CQ0KDQldCSINCU0KPQqNCQ0J0KK9Cc0JDQj9CQ0KDQldCSINCc0JjQm9CQ0J3QmtCQCivQnNCQ0I/QkNCg0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JDQj9CQ0KDQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0I/QkNCg0JXQktCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cc0JDQj9CQ0KDQldCS0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0I/QkNCg0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JDQj9CT0JDQiSDQnNCY0JvQldCd0JrQngor0JzQkNCP0JPQkNCJINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQj9Ce0JLQodCa0Jgg0KHQkNCd0JTQlQor0JzQkNCU0JDQp9CYINCc0JDQoNCY0IjQkAor0JzQkNCU0JDQptCa0Jgg0JDQndCi0JDQmwor0JzQkNCU0JDQptCa0Jgg0IjQkNCdCivQnNCQ0JTQkNCm0JrQmCDQiNCe0KHQmNCfCivQnNCQ0JTQkNCm0JrQmCDQmtCQ0KDQm9CeCivQnNCQ0JTQkNCg0JDQoSDQkNCd0JTQoNCQ0KgKK9Cc0JDQlNCQ0KDQkNChINCQ0KDQn9CQ0JQKK9Cc0JDQlNCQ0KDQkNChINCc0JDQi9CQ0KgKK9Cc0JDQlNCQ0KDQkNChINCc0JDQoNCY0IjQkAor0JzQkNCU0JDQoNCQ0KEg0KDQntCX0JDQm9CY0IjQkAor0JzQkNCU0Jgg0ILQo9Cg0JjQptCQCivQnNCQ0JTQmCDQiNCe0JbQldCkCivQnNCQ0JTQmNCLINCR0J7QltCY0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JzQkNCU0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JzQkNCU0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQkNCU0J7QndCY0Isg0KHQotCI0JXQn9CQ0J0KK9Cc0JDQlNCe0JIg0JjQm9CY0IjQkAor0JzQkNCT0JDQoNCQ0KjQldCS0JjQiyDQkNCd0JDQnNCQ0KDQmNCI0JAKK9Cc0JDQk9CQ0KDQkNCo0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JDQk9CQ0KDQkNCo0JXQktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQkNCT0JDQoNCQ0KjQldCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0JPQkNCg0JDQqNCV0JLQmNCLINCd0JDQlNCQCivQnNCQ0JPQlNCQINCa0JvQkNCg0JAKK9Cc0JDQk9CU0JDQm9CV0J3QmNCLINCS0JXQoNCI0J7Qkgor0JzQkNCT0JTQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQk9CU0KMg0IjQntCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCT0JTQoyDQm9CY0JAKK9Cc0JDQk9CU0KMg0KDQntCU0JjQmtCQINCb0JXQmtCQ0KAKK9Cc0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JPQm9CQ0IjQm9CY0Isg0KHQkNCR0KDQmNCI0JAKK9Cc0JDQk9Cb0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JPQm9CY0J3QodCa0Jgg0JHQntCg0JjQodCb0JDQkiDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQkNCT0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0JPQm9Ce0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCT0JvQntCSINCU0KPQqNCQ0J0KK9Cc0JDQk9Cb0J7QktCh0JrQmCDQlNCj0KjQmtCeCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0IjQntCh0JjQnwor0JzQkNCT0JvQntCS0KHQmtCYINCc0JDQoNCT0JjQotCQCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0JzQmNCb0JjQptCQCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCT0JvQntCS0KHQmtCYINCh0KLQldCS0JDQnQor0JzQkNCT0JvQntCS0KHQmtCYINCh0KLQldCS0JDQnQor0JzQkNCT0J7QpyDQpNCg0JDQitCQCivQnNCQ0JPQntCnINCI0KPQm9CY0IjQkNCdCivQnNCQ0JPQntCnINCc0JjQoNCe0IoKK9Cc0JDQk9Ce0Kgg0KjQkNCd0JTQntCgCivQnNCQ0JPQntCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCQ0JPQntCoINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JDQk9Ce0Kgg0JzQkNCg0JjQiNCQCivQnNCQ0JPQo9Cg0JAg0KLQntCc0JAKK9Cc0JDQpdCC0JjQmiDQldCb0JXQndCQCivQnNCQ0KXQkNCn0Jgg0IjQkNCd0J7QqAor0JzQkNCl0JzQo9Ci0Jgg0JzQkNCl0JzQo9CiCivQnNCQ0KXQnNCj0KLQmCDQl9Cj0JfQkNCd0JAKK9Cc0JDQpdCe0JLQkNCmINCc0JjQm9Ce0KDQkNCUCivQnNCQ0JjQptCl0JXQoCDQgtCe0KDQgtCVCivQnNCQ0IjQqNCQ0Jgg0KTQldCg0JXQndCmCivQnNCQ0IjQqNCQ0Jgg0JrQm9CQ0KDQkAor0JzQkNCI0JTQkNCd0KfQldCS0JjQiyDQnNCY0KLQkNCgCivQnNCQ0IjQlNCQ0J3QkNCmINCU0KDQkNCT0JjQitCQCivQnNCQ0IjQlNCQ0J3Qj9CY0Isg0IjQntCX0J4KK9Cc0JDQiNCU0JDQndCP0JjQiyDQn9CV0KDQmNCm0JAKK9Cc0JDQiNCU0JDQndCP0JjQiyDQn9CV0KLQkNCgCivQnNCQ0IjQlNCV0JLQkNCmINCW0JjQktCa0J4g0JTQoAor0JzQkNCI0JTQldCS0JDQpiDQoNCQ0JTQntCS0JDQnQor0JzQkNCI0JXQoCDQqNCQ0J3QlNCe0KAKK9Cc0JDQiNCV0KAg0JXQlNCj0JDQoNCUCivQnNCQ0IjQldCgINCI0JDQndCe0KgKK9Cc0JDQiNCV0KAg0IjQntCS0JDQnQor0JzQkNCI0JXQoCDQmtCQ0KLQmNCm0JAKK9Cc0JDQiNCV0KAg0JzQkNCg0JjQiNCQCivQnNCQ0IjQldCgINCd0JjQmtCe0JvQkAor0JzQkNCI0JXQoCDQn9CV0KLQkNCgCivQnNCQ0IjQldCgINCh0KLQldCS0JDQnQor0JzQkNCI0JXQoNCh0JrQmCDQqNCi0JXQpNCQ0J0KK9Cc0JDQiNCV0KLQmNCLINCQ0J3QotCe0J0KK9Cc0JDQiNCV0KLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCI0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0IjQmNCLINCh0KLQldCS0JDQnQor0JzQkNCI0JjQiyDQktCV0KHQndCQCivQnNCQ0IjQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQiNCY0Isg0JfQntCg0JDQnQor0JzQkNCI0JjQnSDQldCk0JjQnNCY0IjQkAor0JzQkNCI0JjQnSDQnNCY0J7QlNCg0JDQkwor0JzQkNCI0JjQndCh0JrQmCDQl9Ce0KDQkAor0JzQkNCI0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCQ0IjQmtCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0IjQmtCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0IjQmtCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0IjQmtCY0Isg0JjQm9CY0IjQkAor0JzQkNCI0JrQmNCLINCY0JLQkNCd0JrQkAor0JzQkNCI0JrQmNCLINCI0J7QptCQCivQnNCQ0IjQmtCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0JrQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQiNCa0JjQiyDQnNCY0JvQkNCdCivQnNCQ0IjQmtCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQiNCa0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQiNCa0JjQiyDQntCR0KDQkNCUCivQnNCQ0IjQmtCY0Isg0KDQkNCU0JUKK9Cc0JDQiNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQkNCI0JrQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JDQiNCa0JjQiyDQktCV0InQmtCeCivQnNCQ0IjQmtCY0Isg0JLQm9CQ0JTQngor0JzQkNCI0JrQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCQ0IjQmtCY0Isg0JfQntCg0JDQnQor0JzQkNCI0JrQodCd0JXQoCDQgtCe0KDQgtCVCivQnNCQ0IjQntCgINCC0KPQoNCQCivQnNCQ0IjQntCgINCQ0J3QkAor0JzQkNCI0J7QoCDQpNCV0KDQldCd0KYg0JTQoCDQmNCd0JMKK9Cc0JDQiNCe0KAg0IjQntCW0JXQpAor0JzQkNCI0J7QoCDQiNCe0JbQldCkCivQnNCQ0IjQntCgINCa0JDQoNCe0IkKK9Cc0JDQiNCe0KAg0JrQkNCg0J7QiQor0JzQkNCI0J7QoCDQnNCQ0KDQk9CY0KLQkAor0JzQkNCI0J7QoCDQnNCQ0KDQmNCI0JAKK9Cc0JDQiNCe0KAg0JzQkNCg0JjQiNCQCivQnNCQ0IjQntCgINCd0JDQndCU0J7QoAor0JzQkNCI0J7QoCDQodCi0JXQktCQ0J0KK9Cc0JDQiNCe0KDQp9CY0Jog0KTQoNCQ0IrQkAor0JzQkNCI0J7QoNCe0Kgg0JHQldCb0JAg0JTQoAor0JzQkNCI0J7QoNCe0Kgg0JTQldCW0JUKK9Cc0JDQiNCe0KDQntCoINCI0J7QktCQ0J0KK9Cc0JDQiNCe0KDQntCoINCb0JDQiNCe0KgKK9Cc0JDQiNCe0KDQntCoINCh0KLQldCS0JDQnQor0JzQkNCI0J7QoNCe0Kgg0KLQldCg0JXQl9CY0IjQkAor0JzQkNCI0J7QoNCe0KjQmC3QlNCV0KPQoNCQINCc0JDQoNCY0IjQkAor0JzQkNCI0J7QoNCe0KjQmCDQmNCc0KDQlQor0JzQkNCI0KHQmtCYINCI0JXQm9CY0KbQkAor0JzQkNCI0KHQmtCYINCI0J7QktCQ0J0KK9Cc0JDQiNCh0JrQmCDQnNCY0JvQkNCdCivQnNCQ0IjQodCa0Jgg0J3QmNCa0J7Qm9CQCivQnNCQ0IjQodCa0Jgg0KHQm9CQ0JLQmtCeCivQnNCQ0IjQodCa0Jgg0JLQldCh0J3QkAor0JzQkNCI0KHQotCe0KDQkNCmINCU0KDQkNCT0JDQnQor0JzQkNCI0KHQotCe0KDQkNCmINCJ0KPQkdCe0JzQmNCgCivQnNCQ0IjQodCi0J7QoNCQ0KYg0J/QldCi0JDQoAor0JzQkNCI0KHQotCe0KDQkNCmINCh0JDQktCeCivQnNCQ0IjQodCi0J7QoNCe0JIg0InQo9CR0JjQqNCQCivQnNCQ0IjQodCi0J7QoNCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQgtCj0KDQkNCCCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCQ0J3QgtCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCQ0J3QmtCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQlNCQ0KDQmtCeCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JTQo9Co0JrQngor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Ist0JrQntCh0KLQmNCLINCS0JXQodCd0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QldCC0J4KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQodCQ0JLQmtCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCh0JjQnNCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQotCV0J7QlNCe0KAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KPQoNCe0KgKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQkNCh0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JzQkNCI0KLQkNCdINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0IjQotCQ0J0g0JrQkNCg0JvQngor0JzQkNCI0KLQkNCdINCc0JjQpdCQ0IjQm9CeCivQnNCQ0IjQotCQ0J0g0J/QkNCS0JvQlQor0JzQkNCaINCQ0J3QlNCg0JjQiNCQCivQnNCQ0Jog0IjQntCh0JjQn9CQCivQnNCQ0Jog0J7QodCa0JDQoAor0JzQkNCa0KjQkCDQkNCd0JAKK9Cc0JDQmtCo0JAg0IjQntCS0JDQnQor0JzQkNCa0KjQkCDQmtCQ0KDQm9CeCivQnNCQ0JrQqNCQINCf0JXQotCQ0KAKK9Cc0JDQmtCQ0IjQmCDQiNCQ0JrQntCSCivQnNCQ0JrQkNCI0Jgg0IjQkNCd0JrQngor0JzQkNCa0JDQnSDQiNCQ0J0KK9Cc0JDQmtCQ0IrQmNCLINCR0J7QiNCQ0J0KK9Cc0JDQmtCQ0IrQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCQ0JrQkNCg0JjQiyDQndCQ0JTQkAor0JzQkNCa0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JrQkNCg0JjQiyDQktCY0JTQkAor0JzQkNCa0JDQoNCY0Isg0JfQntCg0JDQnQor0JzQkNCa0JDQoNCY0J0g0JbQkNCg0JrQngor0JzQkNCa0JDQoNCY0J0g0JfQktCe0J3QmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQmtCY0Kgg0KDQo9CW0JAKK9Cc0JDQmtCY0Kgg0JLQm9CQ0KLQmtCeCivQnNCQ0JrQmNCi0JDQnSDQiNCe0JLQkNCdCivQnNCQ0JrQmNCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQkNCa0JjQktCY0Isg0JzQmNCb0J7QqAor0JzQkNCa0JjQktCY0Isg0KHQkNCS0JAKK9Cc0JDQmtCY0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JzQkNCa0IjQmCDQl9CU0JXQndCa0JAKK9Cc0JDQmtCb0JXQndCe0JLQmNCLINCg0JDQlNCQCivQnNCQ0JrQidCV0J3QntCS0JjQiyDQodCg0JHQntCJ0KPQkQor0JzQkNCa0InQldCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCa0J4g0KjQkNCd0JTQntCgCivQnNCQ0JrQniDQpNCg0JDQitCQCivQnNCQ0JrQniDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0JrQniDQnNCY0JvQldCd0JAKK9Cc0JDQmtCe0KUg0JDQndCi0J7QnQor0JzQkNCa0KDQkCDQkNCd0JAKK9Cc0JDQmtCg0JAg0JjQktCQ0J0KK9Cc0JDQmtCg0JAg0IjQntCh0JjQnwor0JzQkNCa0KDQkCDQmtCQ0KLQkNCg0JjQndCQCivQnNCQ0JrQoNCY0J0g0JzQkNCg0JPQmNCi0JAg0JTQoAor0JzQkNCa0KDQmNCdINCg0KPQltCY0KbQkAor0JzQkNCa0KHQmNCLINCW0JjQktCQ0J3QkAor0JzQkNCa0KHQmNCLINCC0J7QoNCC0JUKK9Cc0JDQmtCh0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JDQmtCh0JjQiyDQkdCe0KjQmtCeCivQnNCQ0JrQodCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQmtCh0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQmtCh0JjQiyDQlNCV0IjQkNCdCivQnNCQ0JrQodCY0Isg0JTQnNCY0KLQkNCgCivQnNCQ0JrQodCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQnNCQ0JrQodCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JrQodCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JrQodCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQkNCa0KHQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQmtCh0JjQiyDQldCU0JjQogor0JzQkNCa0KHQmNCLINCT0JDQktCg0JAKK9Cc0JDQmtCh0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQmtCh0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQmtCh0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQkNCa0KHQmNCLINCI0J7QktCQ0J0KK9Cc0JDQmtCh0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JrQodCY0Isg0JvQo9Ca0JAKK9Cc0JDQmtCh0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0JDQndCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQmtCh0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCa0KHQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCa0KHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQmtCh0JjQiyDQoNCQ0KLQmtCeCivQnNCQ0JrQodCY0Isg0KHQkNCS0JAKK9Cc0JDQmtCh0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQmtCh0JjQiyDQktCe0IjQmNCdCivQnNCQ0JrQodCY0Isg0JfQntCg0JrQkAor0JzQkNCa0KHQmNCc0KfQldCSINCQ0J3QgtCV0JvQmtCeCivQnNCQ0JrQodCY0JzQp9CV0JIg0KHQotCV0JLQkNCdCivQnNCQ0JrQodCY0JzQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QkiDQidCj0JHQntCc0JjQoAor0JzQkNCa0KHQmNCc0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0JrQodCY0JzQntCSINCS0JXQoNCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCC0KPQoNCY0KbQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JDQndCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KbQktCY0IjQldCi0JjQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCQ0KDQmtCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KDQkNCT0JjQiwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdINCc0KAg0J7QldCmCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCY0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQiNCQ0JrQntCSCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQm9CQ0JfQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JvQldCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQm9Cj0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQkNCg0JrQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9CQ0J3QkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0JvQmNCd0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQkNCU0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCg0JDQndCC0JXQmwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQmNCh0KLQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0JDQktCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KLQmNCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JLQldCb0JjQp9Ca0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQl9Cb0JDQotCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0JrQodCY0JzQntCS0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JDQmtCh0JjQnNCe0JLQodCa0Jgg0JLQntCI0J4KK9Cc0JDQmtCh0JjQnSDQodCb0JDQktCa0JAKK9Cc0JDQmtCj0KUg0JzQmNCl0JDQmNCb0J4KK9Cc0JDQmtCj0KUg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQmtCj0KUg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCb0KfQmNCLINCQ0J3QlNCg0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCb0KfQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCQ0JvQp9CY0Isg0IjQntCW0JXQpAor0JzQkNCb0KfQmNCLINCI0KPQm9Ca0JAKK9Cc0JDQm9Cn0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQm9CQ0KjQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCb0JDQptCa0J4g0IjQo9Cb0JjQiNCQ0J0KK9Cc0JDQm9CQ0KbQmtCeINCJ0KPQkdCY0KbQkAor0JzQkNCb0JDQldCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQm9CQ0JLQoNCQ0JfQmNCLINCI0J7QktCQ0J0KK9Cc0JDQm9CR0JDQqNCQINCR0J7QoNCY0KHQm9CQ0JLQkAor0JzQkNCb0JHQkNCo0JAg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCb0JHQkNCo0JAg0JTQo9Co0JDQndCa0JAKK9Cc0JDQm9CR0JDQqNCQINCI0JXQm9Ca0JAKK9Cc0JDQm9CR0JDQqNCQINCc0JjQm9CQ0J0KK9Cc0JDQm9CR0JDQqNCQINCc0JjQm9CVCivQnNCQ0JvQkdCQ0KjQkCDQktCV0InQmtCeCivQnNCQ0JvQkdCQ0KjQkCDQl9CU0KDQkNCS0JrQngor0JzQkNCb0JHQkNCo0JjQiyDQkdCe0KjQmtCeCivQnNCQ0JvQkdCQ0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCb0JHQkNCo0JjQiyDQiNCQ0J3QmtCeCivQnNCQ0JvQkdCQ0KjQmNCLINCc0JjQi9CeCivQnNCQ0JvQkdCQ0KjQmNCLINCg0KPQltCQCivQnNCQ0JvQkdCQ0KjQmtCYINCU0KPQqNCQ0J0KK9Cc0JDQm9CR0JDQqNCa0Jgt0IjQkNCd0JrQntCSINCQ0J3QgtCQCivQnNCQ0JvQkdCQ0KjQmtCYINCc0JDQoNCY0IjQkAor0JzQkNCb0JHQkNCo0JrQmCDQnNCY0JvQmNCd0JrQkAor0JzQkNCb0JXQqCDQkNCd0ILQldCb0JrQkAor0JzQkNCb0JXQqCDQkdCe0KDQkAor0JzQkNCb0JXQqCDQlNCc0JjQotCQ0KAKK9Cc0JDQm9CV0Kgg0IjQldCb0JXQndCQCivQnNCQ0JvQldCoINCI0J7QktCQ0J3QmtCQCivQnNCQ0JvQldCoINCa0J7QodCi0JAKK9Cc0JDQm9CV0Kgg0InQmNCJ0JDQndCQCivQnNCQ0JvQldCoINCc0JDQoNCY0J3QmtCeCivQnNCQ0JvQldCoINCd0J7QktCQ0JoKK9Cc0JDQm9CV0Kgg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQm9CV0Kgg0KDQo9CW0JjQptCQCivQnNCQ0JvQldCoINCh0KLQkNCd0JAKK9Cc0JDQm9CV0Kgg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCb0JXQqCDQktCQ0KHQngor0JzQkNCb0JXQqCDQktCe0IjQmNCh0JvQkNCSCivQnNCQ0JvQldCoINCX0J7QoNCQCivQnNCQ0JvQldCo0JXQkiDQltCY0JLQmtCeCivQnNCQ0JvQldCo0JXQkiDQltCY0JLQntCI0JjQnQor0JzQkNCb0JXQqNCV0JIg0ILQntCg0ILQlQor0JzQkNCb0JXQqNCV0JIg0JHQntCo0JrQngor0JzQkNCb0JXQqNCV0JIg0JHQntCg0JjQodCb0JDQkgor0JzQkNCb0JXQqNCV0JIg0JHQoNCQ0J3QmtCeCivQnNCQ0JvQldCo0JXQkiDQlNCQ0JzQiNCQ0J0KK9Cc0JDQm9CV0KjQldCSINCU0JDQnNCI0JDQnQor0JzQkNCb0JXQqNCV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0JvQldCo0JXQkiDQlNCg0JDQk9CQ0J3QkAor0JzQkNCb0JXQqNCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCb0JXQqNCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCb0JXQqNCV0JIg0JTQo9Co0JDQnQor0JzQkNCb0JXQqNCV0JIg0IjQldCb0JjQptCQCivQnNCQ0JvQldCo0JXQkiDQiNCe0JLQkNCdCivQnNCQ0JvQldCo0JXQkiDQmtCe0KHQkNCd0JAKK9Cc0JDQm9CV0KjQldCSINCb0JDQl9CQ0KAKK9Cc0JDQm9CV0KjQldCSINCJ0KPQkdCY0KbQkAor0JzQkNCb0JXQqNCV0JIg0InQo9CR0JjQndCa0J4KK9Cc0JDQm9CV0KjQldCSINCJ0KPQkdCe0JzQmNCgCivQnNCQ0JvQldCo0JXQkiDQm9Cj0JrQkAor0JzQkNCb0JXQqNCV0JIg0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCo0JXQkiDQnNCY0JvQldCd0JrQngor0JzQkNCb0JXQqNCV0JIg0JzQmNCb0JXQktCQCivQnNCQ0JvQldCo0JXQkiDQnNCY0InQkAor0JzQkNCb0JXQqNCV0JIg0JzQmNCb0J7QqAor0JzQkNCb0JXQqNCV0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQm9CV0KjQldCSINCc0JjQntCU0KDQkNCTCivQnNCQ0JvQldCo0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0JvQldCo0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0JvQldCo0JXQkiDQn9CV0KLQkNCgCivQnNCQ0JvQldCo0JXQkiDQn9CV0KLQkNCgCivQnNCQ0JvQldCo0JXQkiDQn9Cg0JXQlNCg0JDQkwor0JzQkNCb0JXQqNCV0JIg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQm9CV0KjQldCSINCf0KDQmNCX0KDQldCd0JrQkAor0JzQkNCb0JXQqNCV0JIg0KHQm9CQ0JLQmtCeCivQnNCQ0JvQldCo0JXQkiDQotCQ0JzQkNCg0JAKK9Cc0JDQm9CV0KjQldCSINCS0JXQoNCQCivQnNCQ0JvQldCo0JXQkiDQktCY0KLQntCc0JjQoAor0JzQkNCb0JXQqNCV0JLQmNCLINCW0JjQktCQ0J0KK9Cc0JDQm9CV0KjQldCS0JjQiyDQltCY0JLQmtCQCivQnNCQ0JvQldCo0JXQktCY0Isg0ILQo9Ca0JAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQkNCb0JXQqNCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0JvQldCo0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JvQldCo0JXQktCY0Isg0JTQo9Co0JrQngor0JzQkNCb0JXQqNCV0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JDQm9CV0KjQldCS0JjQiyDQmNCS0JDQnQor0JzQkNCb0JXQqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQm9CV0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JvQldCo0JXQktCY0Isg0JvQkNCX0JDQoAor0JzQkNCb0JXQqNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQm9CV0KjQldCS0JjQiyDQnNCY0JvQlQor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQm9CV0KjQldCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0JvQldCo0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQkNCb0JXQqNCV0JLQmNCLINCd0JDQlNCQCivQnNCQ0JvQldCo0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQm9CV0KjQldCS0JjQiyDQndCY0JrQmNCm0JAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0JvQldCo0JXQktCY0Isg0J/QldCi0JDQoAor0JzQkNCb0JXQqNCV0JLQmNCLINCh0JDQktCa0J4g0JvQntCa0JDQmwor0JzQkNCb0JXQqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQINCU0KAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQktCQ0KHQmtCg0KHQmNCI0JUKK9Cc0JDQm9CV0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JvQldCo0JXQktCY0Isg0JLQntCI0JjQodCb0JDQktCQCivQnNCQ0JvQldCm0JrQmCDQkdCb0JDQlgor0JzQkNCb0JXQndCn0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JvQldCd0KfQmNCLINCT0JDQktCg0JjQm9CeCivQnNCQ0JvQldCd0KfQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQndCn0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQm9CV0J3Qp9CY0Isg0KDQntCU0J7QidCj0JEKK9Cc0JDQm9CV0J3Qp9CY0Isg0KDQo9CW0JjQptCQCivQnNCQ0JvQldCd0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JvQldCd0JjQiyDQoNCj0JbQkAor0JzQkNCb0JXQndCY0Isg0KHQmNCc0JAKK9Cc0JDQm9CV0J3QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQm9CV0J3QmNCm0JAg0ILQo9Cg0J4KK9Cc0JDQm9CV0J3QmNCm0JAg0JDQndCi0KPQnQor0JzQkNCb0JXQndCY0KbQkCDQlNCg0JDQk9CeCivQnNCQ0JvQldCd0JjQptCQINCY0JLQkNCdCivQnNCQ0JvQldCd0JjQptCQINCc0JDQoNCa0J4KK9Cc0JDQm9CV0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0JzQkNCb0JXQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCb0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KAg0JrQoNCY0KjQotCe0KQKK9Cc0JDQm9CV0KDQoiDQktCV0J3QlNCV0JsKK9Cc0JDQm9CV0KLQkNCo0JrQmCDQldCS0JjQptCQCivQnNCQ0JvQldCi0JjQiy3QqNCg0JXQmiDQnNCQ0KDQmNCI0JAKK9Cc0JDQm9CV0KLQmNCLLdCo0KDQldCaINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQotCY0Isg0JbQkNCg0JrQngor0JzQkNCb0JXQotCY0Isg0JbQmNCS0JDQndCa0JAKK9Cc0JDQm9CV0KLQmNCLINCW0JjQktCa0J4KK9Cc0JDQm9CV0KLQmNCLINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCb0JXQotCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCQ0JvQldCi0JjQiyDQlNCg0JDQk9CeCivQnNCQ0JvQldCi0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQm9CV0KLQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JvQldCi0JjQiyDQm9CQ0KPQoNCQCivQnNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JvQldCi0JjQiyDQm9Cj0JrQkAor0JzQkNCb0JXQotCY0Isg0JzQkNCg0JjQptCQCivQnNCQ0JvQldCi0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCb0JXQotCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JDQm9CV0KLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0JvQldCi0JjQiyDQnNCY0J7QnNCY0KAKK9Cc0JDQm9CV0KLQmNCLINCd0JDQlNCQCivQnNCQ0JvQldCi0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCb0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JvQldCi0JjQiyDQn9CQ0IjQkAor0JzQkNCb0JXQotCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQm9CV0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KLQmNCLINCh0JDQktCQCivQnNCQ0JvQldCi0JjQiyDQodCQ0JLQngor0JzQkNCb0JXQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JDQm9CV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCQ0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0JvQldCi0JjQiyDQodCg0JHQntCJ0KPQkQor0JzQkNCb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQm9CV0KLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCb0JXQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0Isg0KLQkNCc0JDQoNCQCivQnNCQ0JvQldCi0JjQiyDQktCV0JrQntCh0JvQkNCSCivQnNCQ0JvQldCi0JjQiyDQktCI0JXQoNCQCivQnNCQ0JvQldCi0JjQiyDQktCI0JXQoNCQCivQnNCQ0JvQldCi0JjQiyDQl9Cb0JDQotCa0J4KK9Cc0JDQm9CV0KLQmNCdINCn0JDQoNCd0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JvQldCi0JjQnSDQltCY0JLQmtCeCivQnNCQ0JvQldCi0JjQnSDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQnSDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQnSDQgtCj0KDQkAor0JzQkNCb0JXQotCY0J0g0ILQo9Cg0JjQptCQCivQnNCQ0JvQldCi0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCb0JXQotCY0J0g0JHQntCo0JrQngor0JzQkNCb0JXQotCY0J0g0JHQntCW0JDQndCQCivQnNCQ0JvQldCi0JjQnSDQlNCQ0J3QmNCm0JAKK9Cc0JDQm9CV0KLQmNCdINCU0JDQoNCY0J3QmtCQCivQnNCQ0JvQldCi0JjQnSDQlNCg0JDQk9CY0KjQkAor0JzQkNCb0JXQotCY0J0g0JTQo9Co0JDQnQor0JzQkNCb0JXQotCY0J0g0JTQo9Co0JDQnQor0JzQkNCb0JXQotCY0J0g0JPQntCg0JDQnQor0JzQkNCb0JXQotCY0J0g0IjQkNCd0JAKK9Cc0JDQm9CV0KLQmNCdINCI0JXQm9CV0J3QkAor0JzQkNCb0JXQotCY0J0g0IjQntCS0JDQnQor0JzQkNCb0JXQotCY0J0g0IjQntCS0JDQnQor0JzQkNCb0JXQotCY0J0g0IjQntCS0JDQnQor0JzQkNCb0JXQotCY0J0g0InQo9CR0J7QnNCY0KAKK9Cc0JDQm9CV0KLQmNCdINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQotCY0J0g0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCi0JjQnSDQnNCY0JvQkNCd0JrQkAor0JzQkNCb0JXQotCY0J0g0JzQmNCb0JDQnQor0JzQkNCb0JXQotCY0J0g0JzQmNCb0JDQnQor0JzQkNCb0JXQotCY0J0g0JzQmNCb0J7QqAor0JzQkNCb0JXQotCY0J0g0JzQmNCb0J7QktCQ0J0KK9Cc0JDQm9CV0KLQmNCdINCc0JjQoNCa0J4KK9Cc0JDQm9CV0KLQmNCdINCf0JDQiNCQCivQnNCQ0JvQldCi0JjQnSDQn9CQ0JLQm9CVCivQnNCQ0JvQldCi0JjQnSDQoNCQ0JTQkAor0JzQkNCb0JXQotCY0J0g0KDQkNCU0JjQktCe0IjQlQor0JzQkNCb0JXQotCY0J0g0KDQo9CW0JjQptCQCivQnNCQ0JvQldCi0JjQnSDQodCb0JDQktCY0KbQkAor0JzQkNCb0JXQotCY0J0g0KHQm9CQ0JLQmtCeCivQnNCQ0JvQldCi0JjQnSDQodCf0J7QnNCV0J3QmtCQCivQnNCQ0JvQldCi0JjQnSDQodCi0JXQktCQ0J0KK9Cc0JDQm9CV0KLQmNCdINCh0KLQldCS0JDQnQor0JzQkNCb0JXQotCY0J0g0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0J0g0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0J0g0KLQmNCc0JAKK9Cc0JDQm9CV0KLQmNCdINCi0J7QlNCe0KAKK9Cc0JDQm9CV0KLQmNCdINCi0J7QlNCe0KAKK9Cc0JDQm9CV0KLQmNCdINCS0JDQodCQCivQnNCQ0JvQldCi0JjQnSDQktCY0KLQntCc0JjQoAor0JzQkNCb0JXQotCY0J0g0JLQntCI0JjQodCb0JDQkgor0JzQkNCb0JXQotCY0J0g0JfQntCg0JAKK9Cc0JDQm9CV0KLQmNCdINCX0J7QoNCQCivQnNCQ0JvQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JvQmCDQltCY0JLQkNCdCivQnNCQ0JvQmCDQltCY0JLQmtCeCivQnNCQ0JvQmCDQlNCQ0JzQiNCQ0J0KK9Cc0JDQm9CYINCU0KDQkNCT0JAKK9Cc0JDQm9CYINCV0JvQldCe0J3QntCg0JAKK9Cc0JDQm9CYINCT0J7QoNCQ0J0KK9Cc0JDQm9CYINCI0J7QktCQ0J0KK9Cc0JDQm9CYINCa0KDQmNCh0KLQmNCk0J7QoAor0JzQkNCb0Jgg0InQo9CR0JjQptCQCivQnNCQ0JvQmCDQidCj0JHQntCc0JjQoAor0JzQkNCb0Jgg0JzQmNCb0J7QqAor0JzQkNCb0Jgg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQm9CYINCh0JDQktCQCivQnNCQ0JvQmCDQodCi0JDQndCY0JzQmNCgCivQnNCQ0JvQmCDQktCe0IjQmNCh0JvQkNCSCivQnNCQ0JvQmNCn0JXQktCY0Isg0ILQntCg0ILQlQor0JzQkNCb0JjQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JDQm9CY0KfQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQm9CY0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JDQm9CY0Isg0JbQkNCg0JrQngor0JzQkNCb0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JDQm9CY0Isg0JHQntCW0JDQndCQCivQnNCQ0JvQmNCLINCm0JLQmNCI0JXQotCY0J0KK9Cc0JDQm9CY0Isg0JzQmNCb0JDQnQor0JzQkNCb0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCb0JjQiyDQnNCY0KLQkNCgCivQnNCQ0JvQmNCLINCc0JvQkNCU0JXQnQor0JzQkNCb0JjQiyDQndCe0JLQkNCaCivQnNCQ0JvQmNCLINCf0KDQldCU0KDQkNCTCivQnNCQ0JvQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0JvQmNCLINCg0JDQotCa0J4KK9Cc0JDQm9CY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0JvQmNCLINCh0J7QpNCY0IjQkAor0JzQkNCb0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQm9CY0Isg0KHQotCe0IjQkAor0JzQkNCb0JjQiyDQo9Cg0J7QqAor0JzQkNCb0JjQiyDQktCj0JrQmNCm0JAKK9Cc0JDQm9CY0I/QkCDQltCV0InQmtCeCivQnNCQ0JvQmNCP0JDQnSDQkdCb0JDQltCeCivQnNCQ0JvQmNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCb0JjQnSDQgtCj0KDQkAor0JzQkNCb0JjQnSDQmNCb0JjQiNCQCivQnNCQ0JvQmNCdINCc0JjQm9CY0KbQkAor0JzQkNCb0JjQnSDQntCb0JPQkAor0JzQkNCb0JjQnSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQm9CY0J0g0KLQkNCi0IjQkNCd0JAKK9Cc0JDQm9CY0J3QkNCgINCI0JXQm9CV0J3QkAor0JzQkNCb0JjQndCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JDQm9CY0J3QntCS0JjQiyDQkNCd0ILQkAor0JzQkNCb0JjQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCb0JjQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCb0JjQndCe0JLQmNCLINCR0J7QltCeCivQnNCQ0JvQmNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cc0JDQm9CY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0JvQmNCd0J7QktCY0Isg0IjQntCS0J4KK9Cc0JDQm9CY0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JzQkNCb0JjQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0JvQmNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQm9CY0J3QntCS0JjQiyDQodCQ0JLQngor0JzQkNCb0JjQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0JzQkNCb0JjQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JLQldCJ0JrQngor0JzQkNCb0JjQktCj0Jog0JHQntCW0JDQndCQCivQnNCQ0JvQmNCS0KPQmiDQlNCj0KjQkNCdCivQnNCQ0JvQmNCS0KPQmiDQnNCY0JvQkNCdCivQnNCQ0JvQmNCS0KPQmiDQndCY0JrQntCb0JAKK9Cc0JDQm9CY0JLQo9CaINCf0JDQktCb0JUKK9Cc0JDQm9CY0JLQo9CaINCh0JLQldCi0JjQodCb0JDQkgor0JzQkNCJ0JAg0JzQntCg0JjQndCQCivQnNCQ0InQmNCaINCh0KLQldCS0JAKK9Cc0JDQidCa0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JDQidCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0InQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQkNCJ0JrQntCS0JjQiy3Qj9Cj0JrQm9CV0JLQodCa0Jgg0JDQndCQCivQnNCQ0InQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0InQmtCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQnNCQ0InQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCJ0JrQntCS0JjQiyDQoNCQ0J3QmtCQCivQnNCQ0InQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0JvQmtCY0Isg0JPQntCg0JTQkNCdCivQnNCQ0JvQmtCY0Isg0InQo9CR0JjQqNCQCivQnNCQ0JvQmtCY0Isg0KHQotCQ0J3QkAor0JzQkNCb0JzQldCgINCQ0J3QlNCg0JjQiNCQCivQnNCQ0JvQnNCV0KAg0JDQndCU0KDQmNCI0JAKK9Cc0JDQm9Cd0JDQoCDQlNCg0JDQk9Cj0KLQmNCdCivQnNCQ0JvQndCQ0KAg0IjQntCh0JjQnwor0JzQkNCb0J7Qp9CY0Isg0JzQmNCb0JDQnQor0JzQkNCb0J7Qp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQm9Ce0JHQkNCR0JjQiyDQidCj0JHQkNCdCivQnNCQ0JvQntCR0JDQkdCY0Isg0JzQkNCg0JrQngor0JzQkNCb0J7QkdCQ0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQm9Ce0JHQkNCR0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JDQm9Ce0JHQkNCR0JjQiyDQoNCQ0JTQlQor0JzQkNCb0J7Qk9CQ0IjQodCa0Jgg0JHQntCg0JjQodCb0JDQkgor0JzQkNCb0J7Qk9CQ0IjQodCa0Jgg0KHQotCV0JLQkNCdCivQnNCQ0JvQntCi0JjQiyDQodCQ0JLQngor0JzQkNCb0J7QktCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCb0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQkNCb0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cc0JDQm9Ce0JLQoNCQ0JfQmNCLINCT0J7QiNCa0J4KK9Cc0JDQm9Ce0JLQoNCQ0JfQmNCLINCT0J7QiNCa0J4KK9Cc0JDQm9Cj0KbQmtCe0JIg0JHQntCT0JTQkNCdCivQnNCQ0JvQo9Cm0JrQntCSINCU0JDQndCY0KbQkAor0JzQkNCb0KPQptCa0J7QkiDQiNCe0JLQkNCdCivQnNCQ0JvQo9Cm0JrQntCSINCc0JDQoNCY0IjQkAor0JzQkNCb0KPQptCa0J7QkiDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQm9Cj0KbQmtCe0JIg0KDQkNCU0J7QktCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQnNCQ0JvQo9Cm0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQm9Cj0KbQmtCe0JIg0KHQotCV0JLQkNCdCivQnNCQ0JvQo9Cm0JrQntCSINCX0J7QoNCa0JAKK9Cc0JDQnNCY0Isg0JjQktCQ0J0KK9Cc0JDQnNCY0Isg0IjQntCX0J4KK9Cc0JDQnNCj0JbQmNCLINCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCc0KPQltCY0Isg0JjQktCQ0J0KK9Cc0JDQnNCj0JbQmNCLINCY0JLQkNCdCivQnNCQ0JzQo9Cb0JAg0JTQo9Co0JDQnQor0JzQkNCc0KPQm9CQINCc0JvQkNCU0JXQndCa0JAKK9Cc0JDQnNCj0JvQkCDQn9CQ0JLQm9CVCivQnNCQ0JzQo9Cb0JAg0KDQo9CW0JAKK9Cc0JDQnNCj0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0JzQo9Ci0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCc0KPQotCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0JzQo9CX0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQnNCQ0J3Qp9CV0JIg0J3QmNCa0J7Qm9CQCivQnNCQ0J3Qp9CV0JLQodCa0Jgg0JrQkNCi0JAKK9Cc0JDQndCn0JXQktCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0JDQndCn0JjQiyDQkNCg0JDQndCa0JAKK9Cc0JDQndCn0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0JzQkNCd0KfQmNCLINCa0JDQotCQCivQnNCQ0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0J3Qp9CY0Isg0KHQkNCo0JAKK9Cc0JDQndCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0J3Qp9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCd0KfQoyDQgtCe0KDQgtCVCivQnNCQ0J3Qp9CjINCU0KDQkNCT0JjQitCQCivQnNCQ0J3Qp9CjINCU0KPQqNCQ0J0KK9Cc0JDQndCn0KMg0JzQmNCb0JDQnQor0JzQkNCd0KfQoyDQnNCY0JvQkNCdCivQnNCQ0J3Qp9CjINCc0JjQm9Ce0KgKK9Cc0JDQndCn0KMg0JzQmNCb0J7QqAor0JzQkNCd0KfQoyDQndCV0J3QkNCUCivQnNCQ0J3Qp9CjINCh0KLQldCS0JDQnQor0JzQkNCd0KfQoyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0J3Qp9CjINCS0JjQmtCi0J7QoAor0JzQkNCd0JDQodCY0IjQldCS0JjQiyDQk9CV0KDQkNCh0JjQnAor0JzQkNCd0JDQodCi0JjQoNCQ0KYg0JTQkNCc0IjQkNCdCivQnNCQ0J3QkNCh0KLQmNCg0JDQpiDQidCj0JHQmNCo0JAKK9Cc0JDQndCmINCh0KLQldCS0JDQnQor0JzQkNCd0KbQldCU0JXQoCDQgtCj0KDQkAor0JzQkNCd0I/Qo9Ca0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCd0I/Qo9Ca0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQndCU0JDQoNCY0J0g0J3QkNCi0JDQqNCQCivQnNCQ0J3QlNCV0Jog0KTQmNCb0JjQnwor0JzQkNCd0JTQldCb0KYg0InQo9CR0JjQptCQCivQnNCQ0J3QlNCY0Isg0KfQkNCS0JAKK9Cc0JDQndCU0JjQiyDQltCY0JLQmtCeCivQnNCQ0J3QlNCY0Isg0ILQntCg0ILQlQor0JzQkNCd0JTQmNCLINCC0J7QoNCC0JUKK9Cc0JDQndCU0JjQiyDQgtCj0KDQkAor0JzQkNCd0JTQmNCLINCC0KPQoNCY0KbQkAor0JzQkNCd0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JzQkNCd0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0J3QlNCY0Isg0JHQntCo0JrQngor0JzQkNCd0JTQmNCLINCR0J7Qk9CU0JDQnQor0JzQkNCd0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0JzQkNCd0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JDQndCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQndCU0JjQiyDQptCS0JjQiNCV0KLQkAor0JzQkNCd0JTQmNCLINCU0JDQndCY0KbQkAor0JzQkNCd0JTQmNCLINCU0JDQoNCQCivQnNCQ0J3QlNCY0Isg0JTQldCb0KTQmNCd0JAKK9Cc0JDQndCU0JjQiyDQlNCV0J3QldCoCivQnNCQ0J3QlNCY0Isg0JTQntCR0KDQmNCb0JAKK9Cc0JDQndCU0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQkNCd0JTQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCd0JTQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQkNCd0JTQmNCLINCU0KDQkNCT0J4KK9Cc0JDQndCU0JjQiyDQlNCg0JDQk9CeCivQnNCQ0J3QlNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQkNCd0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCQ0J3QlNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQndCU0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQkNCd0JTQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQndCU0JjQiyDQpNCg0JDQitCQCivQnNCQ0J3QlNCY0Isg0JjQk9CK0JDQogor0JzQkNCd0JTQmNCLINCY0JLQkNCd0JrQkAor0JzQkNCd0JTQmNCLINCY0JLQmtCQCivQnNCQ0J3QlNCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQndCU0JjQiy3QiNCe0JLQkNCd0J7QktCY0Isg0JLQmNCd0JrQkAor0JzQkNCd0JTQmNCLINCI0J7QktCeCivQnNCQ0J3QlNCY0Isg0IjQntCS0J4KK9Cc0JDQndCU0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQndCU0JjQiyDQmtCe0KHQotCQCivQnNCQ0J3QlNCY0Isg0JrQodCV0J3QmNCI0JAKK9Cc0JDQndCU0JjQiyDQidCY0InQkNCd0JAKK9Cc0JDQndCU0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQndCU0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCd0JTQmNCLINCc0JDQndCVCivQnNCQ0J3QlNCY0Isg0JzQkNCd0JUKK9Cc0JDQndCU0JjQiyDQnNCQ0KDQkAor0JzQkNCd0JTQmNCLINCc0JDQoNCT0JjQotCQCivQnNCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQmNCa0JAKK9Cc0JDQndCU0JjQiyDQnNCY0JvQkNCU0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQndCU0JjQiyDQnNCY0JvQkNCdCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JUKK9Cc0JDQndCU0JjQiyDQnNCY0JvQlQor0JzQkNCd0JTQmNCLINCc0JjQm9CVCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JUKK9Cc0JDQndCU0JjQiyDQnNCY0JvQntCI0JUKK9Cc0JDQndCU0JjQiyDQnNCY0JvQntCI0JrQniDQlNCgINCb0JXQmtCQ0KAKK9Cc0JDQndCU0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCd0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0J3QlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQndCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0J3QlNCY0Isg0J3QkNCU0JAKK9Cc0JDQndCU0JjQiyDQndCQ0JTQkAor0JzQkNCd0JTQmNCLINCd0JXQgtCeCivQnNCQ0J3QlNCY0Isg0J3QldCC0J4KK9Cc0JDQndCU0JjQiyDQndCV0JTQldCJ0JrQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQkNCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCd0JTQmNCLINCd0J7QktCa0JAKK9Cc0JDQndCU0JjQiyDQn9CQ0J3QlQor0JzQkNCd0JTQmNCLINCf0JXQoNCQCivQnNCQ0J3QlNCY0Isg0J/QldCi0JDQoAor0JzQkNCd0JTQmNCLINCg0JDQlNCV0J3QmtCeCivQnNCQ0J3QlNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQkNCd0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0J3QlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQndCU0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQkNCd0JTQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0J3QlNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQndCU0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCd0JTQmNCLINCg0JDQiNCQCivQnNCQ0J3QlNCY0Isg0KHQmNCd0JjQqNCQCivQnNCQ0J3QlNCY0Isg0KHQm9CQ0JLQmtCQCivQnNCQ0J3QlNCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0J3QlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCd0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQndCU0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQkNCd0JTQmNCLINCh0KDQldCi0JXQnQor0JzQkNCd0JTQmNCLINCh0KDQldCi0JXQnQor0JzQkNCd0JTQmNCLINCh0KDQldCi0J4KK9Cc0JDQndCU0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQndCU0JjQiyDQodCS0JXQotCa0J4KK9Cc0JDQndCU0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCQ0J3QlNCY0Isg0KLQldCg0JXQl9CY0IjQkAor0JzQkNCd0JTQmNCLINCi0JjQkdCe0KAKK9Cc0JDQndCU0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0J3QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCd0JTQmNCLINCj0KDQntCoINCU0JjQn9CbINCe0JXQpgor0JzQkNCd0JTQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cc0JDQndCU0JjQiyDQktCV0JvQmNCX0JDQoAor0JzQkNCd0JTQmNCLINCS0JXQoNCQCivQnNCQ0J3QlNCY0Isg0JLQmNCe0JvQldCi0JAKK9Cc0JDQndCU0JjQiyDQl9Cb0JDQotCY0KbQkAor0JzQkNCd0JTQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQndCU0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0J3QlNCY0Isg0JfQntCg0JjQptCQCivQnNCQ0J3QlNCY0Isg0JfQntCg0JrQkAor0JzQkNCd0JTQmNCLINCX0J7QoNCa0JAKK9Cc0JDQndCU0JjQiyDQl9Ce0KDQmtCQCivQnNCQ0J3QlNCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JzQkNCd0JTQoNCQ0J/QkCDQgtCj0KDQngor0JzQkNCd0JTQoNCY0J3QniDQodCQ0J3QmtCQCivQnNCQ0J3QldCh0JrQmCDQkdCb0JDQk9Ce0IjQkAor0JzQkNCd0JXQktCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQndCV0JLQodCa0Jgg0JTQo9Co0JDQnQor0JzQkNCd0JXQktCh0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQnNCQ0J3QldCS0KHQmtCYINCi0KDQkNCI0JrQniDQlNCgCivQnNCQ0J3QldCS0KHQmtCYINCS0JXQoNCQCivQnNCQ0J3QkyDQkdCg0JDQndCa0J4KK9Cc0JDQndCT0JXQoCDQiNCe0KHQmNCfCivQnNCQ0J3QpdCQ0IjQnCDQiNCe0JbQldCkCivQnNCQ0J3QmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCd0JjQiyDQkdCb0JDQndCa0JAKK9Cc0JDQndCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0J3QmNCLINCR0KDQkNCd0JrQngor0JzQkNCd0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQndCY0Isg0JTQkNCd0JjQm9CeCivQnNCQ0J3QmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0J3QmNCLINCc0JjQm9Ce0IjQlQor0JzQkNCd0JjQiyDQnNCY0JvQntCI0JUKK9Cc0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQndCY0Isg0KHQldCS0JXQoCDQlNCY0J/QmyDQn9ClCivQnNCQ0J3QmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cc0JDQndCY0J0g0ILQntCg0ILQlQor0JzQkNCK0JAg0KHQoNCV0JTQntCI0JUKK9Cc0JDQitCQINCX0JTQoNCQ0JLQmtCeCivQnNCQ0IrQkNCaINCU0KDQkNCT0J4KK9Cc0JDQitCV0J3Qp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCK0KPQm9Ce0JIg0JvQo9Ca0JAKK9Cc0JDQndCe0IjQm9Ce0JIg0JjQoNCV0J3QkAor0JzQkNCd0J7QiNCb0J7QkiDQmNCS0JDQnQor0JzQkNCd0J7QiNCb0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCn0JXQlNCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQltCY0JLQmtCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCT0KDQo9CI0JjQptCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCa0J7QktCY0InQmtCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JDQiNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCQ0J3QntCI0JvQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQkNCd0J7QiNCb0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCg0JDQotCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0JDQktCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQodCQ0JLQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0KLQkNCd0JjQqNCQINCU0KAg0J/QoNCe0KQKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCi0J7QqNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQktCQ0J3QlNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQktCV0JvQmNCh0JvQkNCSCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQktCV0KDQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQl9CS0J7QndCa0J4KK9Cc0JDQndCj0JrQntCSINCe0JvQk9CQCivQnNCQ0J3Qo9Ca0J7QkiDQotCe0JTQntCgCivQnNCQ0J7QlNCj0Kgg0JDQndCQCivQnNCQ0J7QlNCj0Kgg0JTQkNCd0JjQptCQCivQnNCQ0J7QlNCj0Kgg0IjQntCS0J4KK9Cc0JDQntCU0KPQqCDQnNCY0J7QlNCg0JDQkwor0JzQkNCe0JTQo9CoINCd0JjQmtCe0JvQkAor0JzQkNCe0JTQo9CoINCf0KDQldCU0KDQkNCTCivQnNCQ0KAg0JXQlNCS0JDQoNCUCivQnNCQ0KDQp9CQ0Jog0JzQmNCl0JDQiNCb0J4KK9Cc0JDQoNCn0JXQmiDQnNCY0JvQkNCdCivQnNCQ0KDQp9CV0KLQkCDQgtCj0KDQkAor0JzQkNCg0KfQldCi0JAg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQp9CV0KLQkCDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0KfQldCi0JAg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCn0JXQotCQINCb0JDQl9CQ0KAKK9Cc0JDQoNCn0JXQotCQINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0JXQotCQINCg0JDQiNCa0J4KK9Cc0JDQoNCn0JXQotCQINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCn0JXQotCQINCh0KLQldCS0JAKK9Cc0JDQoNCn0JXQotCQINCS0JXQm9CY0JzQmNCgCivQnNCQ0KDQp9CV0KLQkCDQl9Ce0KDQkAor0JzQkNCg0KfQldCi0JjQiyDQptCS0JXQotCQCivQnNCQ0KDQp9CV0KLQmNCLINCU0KDQkNCT0J4KK9Cc0JDQoNCn0JXQotCY0Isg0JzQkNCg0JrQngor0JzQkNCg0KfQldCi0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQp9CV0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0JXQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0KfQldCi0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCn0JXQotCY0Isg0J7QkdCg0JXQndCY0IjQkAor0JzQkNCg0KfQldCi0JjQiyDQntCb0JHQmNCd0JAKK9Cc0JDQoNCn0JXQotCY0Isg0J/QldCg0JjQptCQCivQnNCQ0KDQp9CV0KLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCn0JXQotCY0Isg0J/QldCi0JDQoAor0JzQkNCg0KfQldCi0JjQnSDQoNCQ0JTQlQor0JzQkNCg0KfQmNCLINCW0JjQktCQ0J0KK9Cc0JDQoNCn0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQoNCn0JjQiyDQkdCe0JbQkNCd0JAKK9Cc0JDQoNCn0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQoNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCg0KfQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KfQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KfQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KfQmNCL0JXQkiDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCn0JjQi9CV0JIg0JzQldCg0JjQnNCQCivQnNCQ0KDQp9CY0J3QmtCeINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0J7QmiDQkNCd0JjQptCQCivQnNCQ0KDQp9Ce0Jog0JjQqNCi0JLQkNCdCivQnNCQ0KDQp9Ce0Jog0JjQodCY0JTQntCg0JAKK9Cc0JDQoNCn0J7QmiDQm9CY0JTQmNCI0JAKK9Cc0JDQoNCn0J7QmiDQnNCY0KXQkNCI0JvQngor0JzQkNCg0KfQntCaINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQp9Ce0Jog0JLQldCg0JAKK9Cc0JDQoNCn0J7QmiDQl9Cj0JfQkNCd0JAKK9Cc0JDQoNCn0KPQmiDQodCQ0KjQkAor0JzQkNCg0KfQo9CaINCh0KLQldCS0JDQnQor0JzQkNCg0JbQmNCLINCQ0J3QmNCm0JAKK9Cc0JDQoNCC0JXQm9Ce0KjQmtCYINCh0KLQkNCd0KPQqNCQCivQnNCQ0KDQkNCoINCI0J7QktCQ0J0KK9Cc0JDQoNCQ0Kgg0JzQmNCg0J7QiNCVCivQnNCQ0KDQkNCoINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCQ0Kgg0JLQntCI0JjQnQor0JzQkNCg0JDQptCYINCc0JjQpdCQ0IkKK9Cc0JDQoNCQ0JrQntCS0JjQiyDQndCV0JLQldCd0JAKK9Cc0JDQoNCQ0JzQmNCm0JAg0IjQldCb0JXQndCQCivQnNCQ0KDQkNCc0JjQptCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCQ0J0g0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQoNCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCQ0KEg0KTQmNCb0JjQnwor0JzQkNCg0JDQoSDQiNCe0KHQmNCfCivQnNCQ0KDQkNCj0KYg0JfQktCe0J3QmNCc0JjQoAor0JzQkNCg0JDQktCY0Isg0ILQo9Cg0J4KK9Cc0JDQoNCQ0JLQmNCLINCC0KPQoNCeCivQnNCQ0KDQkNCS0JjQiyDQgtCj0KDQngor0JzQkNCg0JDQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQkNCS0JjQiyDQlNCc0JjQotCQ0KAKK9Cc0JDQoNCQ0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQkNCS0JjQiyDQm9CQ0JfQngor0JzQkNCg0JDQktCY0Isg0JzQkNCg0JrQngor0JzQkNCg0JDQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQoNCQ0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCQ0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQkNCg0JDQktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQkNCS0JjQiyDQodCQ0JLQkAor0JzQkNCg0JDQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JDQoNCQ0JLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCm0JXQmtCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JzQkNCg0KbQmNCa0JjQiyDQltCY0JLQkNCd0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0KDQptCY0JrQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQptCY0JrQmNCLINCV0JzQmNCbCivQnNCQ0KDQptCY0JrQmNCLINCT0JjQk9CQINCU0KAKK9Cc0JDQoNCm0JjQmtCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cc0JDQoNCm0JjQmtCY0Isg0InQmNCJ0JDQndCQCivQnNCQ0KDQptCY0JrQmNCLINCJ0KPQkdCY0J3QmtCQCivQnNCQ0KDQptCY0JrQmNCLINCc0JDQoNCY0KbQkAor0JzQkNCg0KbQmNCa0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0KHQntCk0JjQiNCQCivQnNCQ0KDQptCY0JrQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KbQmNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCm0JjQmtCY0Isg0JLQldCg0JAKK9Cc0JDQoNCU0JXQqNCY0Isg0KjQmNCc0JUKK9Cc0JDQoNCV0Kgg0JHQntCW0J4KK9Cc0JDQoNCV0Kgg0KLQoNCY0KTQo9CdCivQnNCQ0KDQldCo0KfQo9CaINCf0JXQotCQ0KAKK9Cc0JDQoNCV0Ikg0JbQmNCS0JDQnQor0JzQkNCg0JXQiSDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQldCJINCh0JXQm9CV0J3QkAor0JzQkNCg0JXQiSDQktCV0JvQmNCh0JvQkNCSCivQnNCQ0KDQldCJINCX0JvQkNCi0JAKK9Cc0JDQoNCV0InQldCSINCI0JXQm9CV0J3QkAor0JzQkNCg0JXQotCY0Isg0JzQkNCg0JrQniDQlNCY0J/QmyDQntCV0KYKK9Cc0JDQoNCV0KLQmNCLINCh0KLQldCS0J4KK9Cc0JDQoNCV0KLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCV0KLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCV0KLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCV0JLQmNCLINCQ0J3QotCVCivQnNCQ0KDQpNCYINCh0JzQmNCJ0JrQkAor0JzQkNCg0JPQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCT0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JzQkNCg0JPQkNCd0J7QktCY0Isg0JPQldCe0KDQk9CY0J3QkAor0JzQkNCg0JPQkNCd0Jcg0JLQmNCa0KLQntCgCivQnNCQ0KDQk9CV0KLQkCDQkNCd0JjQptCQCivQnNCQ0KDQk9CV0KLQkCDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCT0JXQotCY0Isg0JbQmNCW0JAKK9Cc0JDQoNCT0JXQotCY0Isg0JXQm9CS0JjQoNCQCivQnNCQ0KDQk9CY0KIg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQkNCg0JPQmNCiINCS0JXQoNCQCivQnNCQ0KDQk9Cj0KjQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCQ0KDQpdCe0KjQldCS0JjQiyDQnNCj0IjQngor0JzQkNCg0JjQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JzQkNCg0JjQp9CV0JLQmNCLINCg0JjQodCi0JAKK9Cc0JDQoNCY0KfQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCQ0KDQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCY0KfQmNCLINCR0KDQkNCi0J7QidCj0JEKK9Cc0JDQoNCY0KfQmNCLINCT0J7QiNCa0J4KK9Cc0JDQoNCY0KfQmNCLINCY0JvQmNCI0JAKK9Cc0JDQoNCY0KfQmNCLINCY0JLQmNCm0JAKK9Cc0JDQoNCY0KfQmNCLINCc0JDQoNCQCivQnNCQ0KDQmNCn0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JjQp9CY0Isg0JzQmNCg0JAKK9Cc0JDQoNCY0KfQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KDQmNCn0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0KfQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQp9CY0Isg0J/QkNCS0JvQlQor0JzQkNCg0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JDQoNCY0KfQmNCdINCd0JXQndCQ0JQKK9Cc0JDQoNCY0KjQkNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCY0Isg0JbQkNCg0JrQngor0JzQkNCg0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KDQmNCLINCW0JjQmtCQCivQnNCQ0KDQmNCLINCW0JjQktCQ0J3QkAor0JzQkNCg0JjQiyDQltCY0JLQmtCeCivQnNCQ0KDQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCY0Isg0ILQo9Cg0J4KK9Cc0JDQoNCY0Isg0JDQlNCQ0Jwg0JTQoAor0JzQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JjQiyDQkNCd0ILQldCb0JrQngor0JzQkNCg0JjQiyDQkNCd0ILQldCb0JrQngor0JzQkNCg0JjQiyDQkNCd0JrQkAor0JzQkNCg0JjQiyDQkNCd0JrQkAor0JzQkNCg0JjQiyDQkNCd0JrQmNCm0JAKK9Cc0JDQoNCY0Isg0JHQntCo0JrQngor0JzQkNCg0JjQiyDQkdCe0KjQmtCeCivQnNCQ0KDQmNCLINCR0J7QltCY0KbQkAor0JzQkNCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQkNCg0JjQiyDQkdCe0IjQkNCU0JjQnNCY0KAKK9Cc0JDQoNCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JDQoNCY0Isg0JHQntCh0JjQidCa0JAKK9Cc0JDQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmNCLINCR0KDQkNCd0J4KK9Cc0JDQoNCY0Isg0KbQktCY0IjQngor0JzQkNCg0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JDQoNCY0Isg0JTQkNCS0JjQlAor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCQ0KDQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JjQiyDQlNCj0KjQmNCm0JAKK9Cc0JDQoNCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cc0JDQoNCY0Isg0JPQntCI0JrQngor0JzQkNCg0JjQiyDQk9Ce0IjQmtCeCivQnNCQ0KDQmNCLINCT0KDQo9CI0JjQptCQINCU0KAKK9Cc0JDQoNCY0Isg0JjQm9CVCivQnNCQ0KDQmNCLINCY0JvQmNCI0JAKK9Cc0JDQoNCY0Isg0JjQm9CY0IjQkAor0JzQkNCg0JjQiyDQmNCb0JjQndCa0JAKK9Cc0JDQoNCY0Isg0JjQktCeCivQnNCQ0KDQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cc0JDQoNCY0Isg0IjQldCb0JjQptCQCivQnNCQ0KDQmNCLINCI0J7QptCQCivQnNCQ0KDQmNCLINCI0J7Qm9CQ0J3QmtCQCivQnNCQ0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JjQiyDQiNCe0JLQngor0JzQkNCg0JjQiyDQiNCe0JLQngor0JzQkNCg0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQmNCLINCa0JDQlNCY0JLQmtCQCivQnNCQ0KDQmNCLINCa0JDQotCY0KbQkAor0JzQkNCg0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQoNCY0Isg0JrQntCh0KLQkAor0JzQkNCg0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0KDQmNCLINCJ0JXQn9Ce0KHQkNCS0JAKK9Cc0JDQoNCY0Isg0InQo9CR0JAKK9Cc0JDQoNCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmNCLINCJ0KPQn9Ca0J4KK9Cc0JDQoNCY0Isg0JvQo9Ca0JAKK9Cc0JDQoNCY0Isg0JzQkNCg0JAKK9Cc0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0Isg0JzQkNCg0JrQngor0JzQkNCg0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQmNCLINCc0JjQi9CQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQkNCg0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQnNCY0JvQkNCdINCU0KAKK9Cc0JDQoNCY0Isg0JzQmNCb0JDQndCQCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J3QmtCQCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CVINCU0JjQn9CbINCe0JXQpgor0JzQkNCg0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCQ0KDQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQoNCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JjQiyDQnNCY0JvQntCh0JDQkgor0JzQkNCg0JjQiyDQnNCY0JvQo9CdCivQnNCQ0KDQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCQ0KDQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCg0JrQngor0JzQkNCg0JjQiyDQnNCY0KDQmtCeCivQnNCQ0KDQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCg0J7QidCj0JEKK9Cc0JDQoNCY0Isg0JzQmNCi0JDQoAor0JzQkNCg0JjQiyDQnNCY0KLQkNCgCivQnNCQ0KDQmNCLLdCc0JjQotCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0KDQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCQ0KDQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KDQmNCLINCd0JXQktCV0J3QmtCQCivQnNCQ0KDQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0Isg0J3QntCS0JDQmgor0JzQkNCg0JjQiyDQndCe0JLQkNCaCivQnNCQ0KDQmNCLINCe0KHQotCe0IjQkAor0JzQkNCg0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KDQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQnNCQ0KDQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmNCLINCg0JDQlNCe0JzQmNCgINCU0KAKK9Cc0JDQoNCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cc0JDQoNCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQnNCQ0KDQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0JzQkNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JjQiyDQoNCQ0IjQmtCeCivQnNCQ0KDQmNCLINCh0JDQktCQCivQnNCQ0KDQmNCLINCh0JjQndCY0KjQkAor0JzQkNCg0JjQiyDQodCb0JDQktCY0KbQkAor0JzQkNCg0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQoNCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0JjQiyDQodCg0JXQotCV0J0g0JTQoCDQn9Cg0J7QpAor0JzQkNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0Isg0KHQotCV0JLQmtCQCivQnNCQ0KDQmNCLINCh0KLQldCS0J4KK9Cc0JDQoNCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQkNCg0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIg0J/QoNCe0KTQldCh0J7QoAor0JzQkNCg0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0KLQkNCc0JDQoNCQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQo9Cg0J7QqAor0JzQkNCg0JjQiyDQktCQ0KHQmtCQCivQnNCQ0KDQmNCLINCS0JDQodCeCivQnNCQ0KDQmNCLINCS0JXQoNCQCivQnNCQ0KDQmNCLINCS0JjQlAor0JzQkNCg0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCgINCf0KDQntCkCivQnNCQ0KDQmNCLINCS0KPQmtCQ0JTQmNCdCivQnNCQ0KDQmNCLINCX0J7QoNCQ0J3QmtCQCivQnNCQ0KDQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JjQi9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0JDQqCDQiNCe0JbQldCkCivQnNCQ0KDQmNCQ0Kgg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCI0JDQqCDQiNCe0JLQkNCdCivQnNCQ0KDQmNCI0JDQqCDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0IjQkNCoINCc0JDQoNCY0IjQkAor0JzQkNCg0JjQiNCQ0Kgg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCI0JDQqCDQnNCY0KXQkNCJCivQnNCQ0KDQmNCI0JDQqCDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0IjQkNCoINCX0JTQldCd0JrQkAor0JzQkNCg0JjQiNCQ0J0g0JbQldCJ0JrQngor0JzQkNCg0JjQiNCQ0J0g0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cc0JDQoNCY0IjQkNCd0JDQpiDQodCi0J7QiNCQCivQnNCQ0KDQmNCI0JDQndCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCQ0KDQmNCI0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmNCI0JDQndCh0JrQmCDQnNCY0JvQntCoCivQnNCQ0KDQmNCI0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCS0JXQodCd0JAKK9Cc0JDQoNCY0J0g0JzQmNCb0JDQnQor0JzQkNCg0JjQnSDQnNCY0JvQmNCS0J7QiAor0JzQkNCg0JjQnSDQnNCb0JDQlNCV0J0KK9Cc0JDQoNCY0J0g0J3QkNCi0JDQm9CY0IjQkAor0JzQkNCg0JjQnSDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0J0g0KDQkNCU0J7QnNCY0KAKK9Cc0JDQoNCY0J0g0JLQkNCh0J4KK9Cc0JDQoNCY0J0g0JLQldCg0JjQptCQCivQnNCQ0KDQmNCdINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0J3Qp9CV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQmNCd0KfQldCSINCh0KLQldCS0JDQnQor0JzQkNCg0JjQndCn0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JjQndCn0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQmNCd0KfQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0J3Qp9CY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQndCn0JjQiyDQntCb0JPQkAor0JzQkNCg0JjQndCo0JXQmiDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cc0JDQoNCY0J3QkCDQqNCi0JXQpNCQ0J0KK9Cc0JDQoNCY0J3QkCDQm9Cj0IvQmNCI0JDQnQor0JzQkNCg0JjQndCQ0KYg0JfQntCg0JDQnQor0JzQkNCg0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmNCd0JjQiyDQmNCS0J4KK9Cc0JDQoNCY0J3QmNCLINCh0KLQmNCf0JDQnQor0JzQkNCg0JjQndCa0J7QkiDQp9CV0JTQkAor0JzQkNCg0JjQndCa0J7QkiDQltCQ0KDQmtCeCivQnNCQ0KDQmNCd0JrQntCSINCC0J7QoNCC0JUKK9Cc0JDQoNCY0J3QmtCe0JIg0ILQntCg0ILQlQor0JzQkNCg0JjQndCa0J7QkiDQgtCj0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQoNCY0J3QmtCe0JIg0JDQndCa0JjQptCQCivQnNCQ0KDQmNCd0JrQntCSINCQ0KDQodCV0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0JHQntCW0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JTQldCI0JDQnQor0JzQkNCg0JjQndCa0J7QkiDQlNCg0JDQk9CY0IrQkAor0JzQkNCg0JjQndCa0J7QkiDQlNCj0KjQkNCdCivQnNCQ0KDQmNCd0JrQntCSINCk0JXQnNCa0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JPQkNCS0KDQkAor0JzQkNCg0JjQndCa0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQkNCg0JjQndCa0J7QkiDQiNCe0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCSINCI0J7QktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQkNCg0JjQndCa0J7QkiDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQmNCd0JrQntCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCb0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmNCd0JrQntCSINCc0JjQidCQCivQnNCQ0KDQmNCd0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQmNCd0JrQntCSINCc0JjQm9Ce0KHQkNCS0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQntCc0KfQmNCb0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0JzQntCc0KfQmNCb0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmNCd0JrQntCSINCe0JzQldCgCivQnNCQ0KDQmNCd0JrQntCSINCf0JDQiNCQCivQnNCQ0KDQmNCd0JrQntCSINCf0KDQldCU0KDQkNCTCivQnNCQ0KDQmNCd0JrQntCSINCg0KPQltCY0KbQkAor0JzQkNCg0JjQndCa0J7QkiDQodCQ0JLQkAor0JzQkNCg0JjQndCa0J7QkiDQodCY0J3QmNCo0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCSINCh0JvQkNCS0JrQngor0JzQkNCg0JjQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCSINCh0KLQoNCQ0KXQmNCK0JAg0JTQoCDQn9Cg0J7QpAor0JzQkNCg0JjQndCa0J7QkiDQktCV0KHQldCb0JjQnQor0JzQkNCg0JjQndCa0J7QkiDQktCV0KHQndCQCivQnNCQ0KDQmNCd0JrQntCSINCS0JvQkNCU0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JLQm9CQ0IjQmtCeCivQnNCQ0KDQmNCd0JrQntCSINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQltCY0JLQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JHQntCI0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUg0JTQoAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQkdCg0JDQotCY0JzQmNCgCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQmtCQ0KLQkNCb0JjQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCL0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CV0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQotCQ0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQotCQ0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCY0KHQotCQ0J3QkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCQ0JLQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JrQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQkNCg0JjQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCm0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCS0JvQkNCU0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCS0J7QiNCY0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQmtCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JjQndCe0JIg0JzQkNCg0JjQndCa0J4KK9Cc0JDQoNCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JjQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JzQkNCg0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCd0J7QktCY0Isg0J/QldCI0J4KK9Cc0JDQoNCY0J3QntCS0JjQiy3QodCg0JTQkNCd0J7QkiDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0KDQmNCd0J7QktCY0Isg0JLQmNCd0JrQkAor0JzQkNCg0JjQndCe0JLQmNCLINCX0JvQkNCi0JjQptCQCivQnNCQ0KDQmNCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0KDQmNCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0KDQmNCd0J7QktCh0JrQmCDQgtCe0KDQgtCVCivQnNCQ0KDQmNCd0J7QktCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Cc0JDQoNCI0JDQqCDQkNCd0JrQkAor0JzQkNCg0IjQkNCoINCI0JDQndCa0J4KK9Cc0JDQoNCI0JDQqCDQnNCY0KjQkAor0JzQkNCg0IjQkNCoINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQiNCQ0Kgg0JzQmNCb0JrQkAor0JzQkNCg0IjQkNCoINCh0KLQkNCd0JrQngor0JzQkNCg0IjQkNCoINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCI0JDQnSDQlNCj0KjQkNCdCivQnNCQ0KDQiNCQ0J0g0JzQmNCb0JjQiNCQ0J3QkAor0JzQkNCg0IjQkNCdINCc0JjQoNCa0J4KK9Cc0JDQoNCI0JDQndCe0JIg0JTQo9Co0JDQnQor0JzQkNCg0IjQkNCd0J7QkiDQldCg0JbQldCR0JXQogor0JzQkNCg0IjQkNCd0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQkNCg0IjQkNCd0J7QkiDQidCj0JHQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QkiDQnNCQ0KDQkAor0JzQkNCg0IjQkNCd0J7QkiDQnNCY0KXQkNCI0JvQniDQlNCgCivQnNCQ0KDQiNCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQiNCQ0J3QntCSINCe0JvQk9CQCivQnNCQ0KDQiNCQ0J3QntCSINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQiNCQ0J3QntCSINCh0J7QitCQCivQnNCQ0KDQiNCQ0J3QntCSINCi0JjQnNCe0KLQmNCI0JUKK9Cc0JDQoNCI0JDQndCe0JIg0JLQo9CI0JjQptCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JbQkNCg0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JbQmNCS0J7QotCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQltCY0JLQntCi0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCC0KPQoNCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0JDQndCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCT0JDQkdCg0JjQiNCV0JsKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0InQo9CR0JjQktCe0IjQlQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCb0KPQmtCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeINCU0KAg0JjQndCTCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAg0JTQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCi0JDQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQINCc0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0InQo9CRINCU0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCh0KLQldCS0JrQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCi0KDQmNCS0KPQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQktCY0JQKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCS0JvQkNCU0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCS0J7QiNCY0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCX0J7QoNCQCivQnNCQ0KDQiNCQ0J3QodCa0Jgg0KTQldCU0J7QoAor0JzQkNCg0JrQkNCd0J7QkiDQidCj0JHQmNCm0JAKK9Cc0JDQoNCa0JDQndCe0JIg0JfQntCg0JjQptCQCivQnNCQ0KDQmtCT0KDQkNCkINCQ0J3QmNCm0JAKK9Cc0JDQoNCa0JPQoNCQ0KQg0KHQntCk0JjQiNCQCivQnNCQ0KDQmtCYINCd0JXQktCV0J3QmtCQCivQnNCQ0KDQmtCYINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQmCDQodCb0JDQktCa0JAKK9Cc0JDQoNCa0JjQqCDQodCe0KTQmNCI0JAKK9Cc0JDQoNCa0JjQi9CV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCQ0KDQmtCY0IvQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCeINCI0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQnNCQ0KDQmtCeINCd0JDQlNCQINCU0KAKK9Cc0JDQoNCa0J7QodCa0Jgg0KHQotCe0IjQkNCdCivQnNCQ0KDQmtCe0JIg0JbQkNCg0JrQngor0JzQkNCg0JrQntCSINCW0JjQktCQCivQnNCQ0KDQmtCe0JIg0ILQo9Cg0JAKK9Cc0JDQoNCa0J7QkiDQkNCd0ILQldCb0JrQkAor0JzQkNCg0JrQntCSINCm0JLQldCi0JDQndCQCivQnNCQ0KDQmtCe0JIg0JTQntCR0KDQmNCb0JAKK9Cc0JDQoNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QkiDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JIg0JXQnNCY0JsKK9Cc0JDQoNCa0J7QkiDQpNCe0KLQmNCI0JUKK9Cc0JDQoNCa0J7QkiDQmNCb0JjQiNCQCivQnNCQ0KDQmtCe0JIg0JjQktCY0KbQkAor0JzQkNCg0JrQntCSLdCI0JXQm9CV0J3QmNCLINCc0JjQoNCI0JDQndCQCivQnNCQ0KDQmtCe0JIg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCa0J7QkiDQidCj0JHQntCc0JjQoAor0JzQkNCg0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmtCe0JIg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmtCe0JIg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCSINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QkiDQnNCY0JvQldCd0JrQngor0JzQkNCg0JrQntCSINCc0JjQm9CY0KbQkAor0JzQkNCg0JrQntCSINCc0JjQm9CY0KbQkAor0JzQkNCg0JrQntCSINCc0JjQoNCQCivQnNCQ0KDQmtCe0JIg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QkiDQndCQ0JTQkAor0JzQkNCg0JrQntCSINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQntCSINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QkiDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JIg0KDQkNCU0JjQodCb0JDQkgor0JzQkNCg0JrQntCSINCg0JDQlNCe0KHQkNCSCivQnNCQ0KDQmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQoNCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCSINCh0JDQktCQCivQnNCQ0KDQmtCe0JIg0KHQmNCd0JjQqNCQCivQnNCQ0KDQmtCe0JIg0KHQn9CQ0KHQntCI0JUg0JTQoAor0JzQkNCg0JrQntCSINCh0KLQntCI0JDQnQor0JzQkNCg0JrQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QkiDQktCV0KDQkAor0JzQkNCg0JrQntCSINCS0JjQlNCe0KHQkNCS0JAKK9Cc0JDQoNCa0J7QkiDQl9Ce0KDQkNCdINCc0KAKK9Cc0JDQoNCa0J7QkiDQl9Ce0KDQkAor0JzQkNCg0JrQntCSINCX0J7QoNCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JbQkNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JbQldCb0JjQkdCe0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JbQldCJ0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQltCV0InQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnSDQlNCgCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0J7QotCQCivQnNCQ0KDQmtCe0JLQmNCLINCC0JXQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0JrQntCS0JjQiyDQkNCU0JDQnAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCR0J7QoNCY0KEKK9Cc0JDQoNCa0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JDQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQkNCg0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQptCS0JXQotCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0KbQktCV0KLQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQkNCg0JrQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cc0JDQoNCa0J7QktCY0Isg0JXQktCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCY0JPQitCQ0KIKK9Cc0JDQoNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCY0KDQldCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JjQktCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0JDQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0J4KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0J4KK9Cc0JDQoNCa0J7QktCY0Isg0IjQo9Cb0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0KPQm9Ca0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQkNCg0JvQngor0JzQkNCg0JrQntCS0JjQiyDQmtCQ0KDQntCb0JjQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQkNCi0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCa0J7QodCQ0J3QkAor0JzQkNCg0JrQntCS0JjQiyDQmtCe0KHQotCQCivQnNCQ0KDQmtCe0JLQmNCLINCa0KDQkNCh0JjQnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkCDQm9CV0JrQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQngor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQm9Cj0JrQkAor0JzQkNCg0JrQntCS0JjQiy3QnNCQ0IjQotCV0IrQmCDQkNCd0JTQoNCY0IjQkAor0JzQkNCg0JrQntCS0JjQiy3QnNCQ0IjQotCV0IrQmCDQnNCY0KXQkNCJCivQnNCQ0KDQmtCe0JLQmNCLINCc0JDQoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQkNCg0JjQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQkNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JrQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCoCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QidCj0JEKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0KDQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0KDQmtCe0JLQmNCLINCc0J7QnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0J3QldCT0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCQ0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQntCS0JjQiyDQntCR0KDQkNCUCivQnNCQ0KDQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QkNCS0JvQlQor0JzQkNCg0JrQntCS0JjQiyDQn9CV0IjQp9CQCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAg0JLQldCi0JXQoNCY0J3QkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQn9CV0KLQoNCe0J3QmNCI0JUKK9Cc0JDQoNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkiDQlNCgCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCVCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0KHQkNCSINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQotCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0KDQntCU0J7QidCj0JEKK9Cc0JDQoNCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQnNCY0InQkAor0JzQkNCg0JrQntCS0JjQiyDQodCg0ILQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQkNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCV0KTQkNCd0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0J7QiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQotCQ0J3QkNCh0JjQiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCi0J7QlNCe0KAKK9Cc0JDQoNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQo9CT0InQldCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQkNCh0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlSDQlNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQidCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JLQldCJ0JrQngor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCY0IvQkAor0JzQkNCg0JrQntCS0JjQiyDQktCY0JTQntCI0JUKK9Cc0JDQoNCa0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQktCY0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JLQmNCd0JrQngor0JzQkNCg0JrQntCS0JjQiyDQktCY0KLQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQktCb0JDQlNCe0IjQlQor0JzQkNCg0JrQntCS0JjQiyDQktCe0IjQmNCdCivQnNCQ0KDQmtCe0JLQmNCLINCS0J7QiNCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQl9Cb0JDQotCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0JvQkNCi0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0IvQkNCdINCI0J7QnQor0JzQkNCg0JrQntCS0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JLQidCV0JIg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmtCe0JLQodCa0Jgg0KbQktCV0KLQkNCd0JAKK9Cc0JDQoNCa0J7QktCh0JrQmCDQiNCe0JLQkNCdCivQnNCQ0KDQmtCh0JXQoCDQmNCS0JDQnQor0JzQkNCg0JrQodCV0KAg0IjQntCS0JDQnQor0JzQkNCg0JrQo9CoINCQ0J3QmtCY0KbQkAor0JzQkNCg0JrQo9CoINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JDQoNCa0KPQqCDQldCc0JjQmwor0JzQkNCg0JrQo9CoINCV0KLQldCb0JrQkAor0JzQkNCg0JrQo9CoINCI0J7QodCY0J8KK9Cc0JDQoNCa0KPQqCDQn9Cg0JXQlNCg0JDQkwor0JzQkNCg0JrQo9CoINCX0J7QoNCQ0J0KK9Cc0JDQoNCa0KPQqNCV0JIg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCa0KPQqNCV0JIg0IjQldCb0JXQndCQCivQnNCQ0KDQm9Ce0JMg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0J7QqCDQlNCj0KjQkNCdCivQnNCQ0KDQntCoINCc0JjQm9Ce0JLQkNCdCivQnNCQ0KDQntCoINCh0KLQldCS0JDQnQor0JzQkNCg0J7QqCDQktCV0InQmtCeCivQnNCQ0KDQntCo0JDQnSDQotCY0KXQntCc0JjQoAor0JzQkNCg0J7QqNCV0JIg0JrQoNCY0KHQotCQCivQnNCQ0KDQntCo0JXQktCY0Isg0JjQktCQ0J0KK9Cc0JDQoNCe0KjQldCS0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQntCo0JXQktCY0Isg0JzQkNCi0JAKK9Cc0JDQoNCe0KjQldCS0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQnNCQ0KDQntCo0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCg0J7QgtCYINCY0JLQkNCdCivQnNCQ0KDQntCC0Jgg0IjQntCb0JDQnQor0JzQkNCg0J7QgtCYINCI0J7Qm9CQ0J0KK9Cc0JDQoNCe0KbQmCDQnNCQ0KDQk9CY0KLQkAor0JzQkNCg0J7QiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQntCI0JXQktCY0Isg0JjQktCQ0J3QmtCQCivQnNCQ0KDQntCI0JXQktCY0Isg0IjQntCh0JjQnwor0JzQkNCg0J7QiNCV0JLQmNCLINCg0JDQlNCc0JjQm9CeCivQnNCQ0KDQntCI0JXQktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JzQkNCg0J7Qm9CUINCI0J7QodCY0J8KK9Cc0JDQoNCe0JvQmCDQmNCh0JDQmgor0JzQkNCg0J7QnSDQlNCV0J3QldCoCivQnNCQ0KDQntCdINCa0JDQoNCb0J4KK9Cc0JDQoNCe0KHQm9CQ0JLQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCe0KIg0JjQktCQ0J0KK9Cc0JDQoNCe0KLQmCDQnNCY0JrQm9Ce0KgKK9Cc0JDQoNCe0JLQmNCLINCC0KPQoNCQCivQnNCQ0KDQntCS0JjQiyDQkdCe0KDQmNChINCU0KAKK9Cc0JDQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCQ0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KDQntCS0JjQiyDQl9CU0JXQndCa0JAKK9Cc0JDQoNCe0JLQodCa0Jgg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQodCV0J3QmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0KDQodCV0J3QmNCLINCb0JXQmtCQCivQnNCQ0KDQodCV0J3QmNCLINCh0JvQkNCS0J7QiNCa0JAKK9Cc0JDQoNCi0JjQiyDQltCY0JLQntCI0JjQnQor0JzQkNCg0KLQmNCLINCC0KPQoNCQCivQnNCQ0KDQotCY0Isg0JHQoNCQ0J3QmtCQCivQnNCQ0KDQotCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQotCY0Isg0JrQntCh0KLQkAor0JzQkNCg0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQoNCi0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCg0KLQmNCLINCc0JDQoNCQCivQnNCQ0KDQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQotCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0KDQotCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCi0JjQiyDQn9CV0KDQngor0JzQkNCg0KLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQoNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQoNCi0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQotCY0Isg0JLQntCI0J3QkAor0JzQkNCg0KLQmNCm0JrQmCDQnNCb0JDQlNCV0J0KK9Cc0JDQoNCi0JjQnSDQkNCb0J7QiNCX0JjQiNCVCivQnNCQ0KDQotCY0J0g0JDQndCi0JDQmwor0JzQkNCg0KLQmNCdINCV0J3QlNCg0JUKK9Cc0JDQoNCi0JjQnSDQldCg0JbQldCR0JXQogor0JzQkNCg0KLQmNCdINCY0JzQoNCVCivQnNCQ0KDQotCY0J0g0JjQktCQ0J0KK9Cc0JDQoNCi0JjQnSDQiNCe0KHQmNCkCivQnNCQ0KDQotCY0J0g0IjQntCS0JDQnQor0JzQkNCg0KLQmNCdINCJ0KPQkdCY0J3QmtCQCivQnNCQ0KDQotCY0J0g0JzQkNCi0JjQm9CU0JAKK9Cc0JDQoNCi0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JDQoNCi0JjQnSDQl9CS0J7QndCY0JzQmNCgCivQnNCQ0KDQotCY0J3Qp9CV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQotCY0J3Qp9CY0Isg0JTQkNCS0J7QoAor0JzQkNCg0KLQmNCd0KfQmNCLINCU0JDQktCe0KAKK9Cc0JDQoNCi0JjQndCQ0KjQldCS0JjQiyDQpdCV0KDQnNCY0J3QkAor0JzQkNCg0KLQmNCd0JDQqNCV0JLQmNCLINCe0KLQngor0JzQkNCg0KLQmNCd0JDQmiDQiNCe0JLQkNCdCivQnNCQ0KDQotCY0J3QldCmINCQ0J3QotCe0J0KK9Cc0JDQoNCi0JjQndCV0Jog0JDQndCi0JDQmwor0JzQkNCg0KLQmNCd0JXQmiDQpNCV0KDQldCd0KYKK9Cc0JDQoNCi0JjQndCa0J4g0JDQndCU0KDQmNCI0JAKK9Cc0JDQoNCi0JjQndCe0JIg0ILQntCg0ILQlQor0JzQkNCg0KLQmNCd0J7QkiDQkNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QkiDQm9CQ0JfQkNCgCivQnNCQ0KDQotCY0J3QntCSINCc0JjQmtCQCivQnNCQ0KDQotCY0J3QntCSINCc0JjQm9CQ0J0g0JTQoAor0JzQkNCg0KLQmNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cc0JDQoNCi0JjQndCe0JIg0JzQmNCb0J7QqAor0JzQkNCg0KLQmNCd0J7QkiDQnNCY0JvQntCoCivQnNCQ0KDQotCY0J3QntCSINCc0JjQm9Ce0KgKK9Cc0JDQoNCi0JjQndCe0JIg0KHQkNCd0JTQoNCQCivQnNCQ0KDQotCY0J3QntCSINCh0JDQktCQCivQnNCQ0KDQotCY0J3QntCSINCh0JvQkNCS0JrQngor0JzQkNCg0KLQmNCd0J7QkiDQodCb0JDQktCa0J4KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQkNCd0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCQ0J3QmNCi0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KTQmNCb0JjQnwor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KTQmNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JjQktCeCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCI0J7QktCQ0J0g0JLQldCi0JXQoNCY0J3QkNCgCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JjQm9CVCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCd0JDQlNCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQndCV0J3QkNCUCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0J/QldCg0KHQmNCU0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCg0JjQodCi0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQo9Cg0J7QqAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCS0JXQidCa0J4KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCX0JDQoNCY0IjQlQor0JzQkNCg0KLQmNCd0J7QktCh0JrQmCDQoNCe0JzQkNCdCivQnNCQ0KDQotCe0J0g0KjQkNCd0JTQntCgCivQnNCQ0KDQotCe0J0g0JbQo9CW0JDQndCQCivQnNCQ0KDQotCe0J0g0JDQndCU0KDQkNCoCivQnNCQ0KDQotCe0J0g0KTQldCg0JXQndCmCivQnNCQ0KDQotCe0J0g0JjQqNCi0JLQkNCdCivQnNCQ0KDQotCe0J0g0JjQm9CV0KgKK9Cc0JDQoNCi0J7QnSDQiNCe0JbQldCkCivQnNCQ0KDQotCe0J0g0IjQntCW0JXQpAor0JzQkNCg0KLQntCdINCI0J7Qm9CQ0J0KK9Cc0JDQoNCi0J7QnSDQm9CQ0IjQntCoCivQnNCQ0KDQotCe0J0g0JzQkNCL0JDQqAor0JzQkNCg0KLQntCdINCc0JDQoNCY0IjQkAor0JzQkNCg0KLQntCdINCg0J7Ql9CQCivQnNCQ0KDQo9Co0KfQo9CaINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCj0KjQldCS0JjQiyDQmNCS0JDQnQor0JzQkNCg0KPQqNCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0KDQo9Co0JjQiyDQpNCg0JDQitCQCivQnNCQ0KDQo9Co0JjQiyDQk9Ce0KDQkNCdCivQnNCQ0KDQo9Co0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQo9Co0JjQiyDQidCj0JHQngor0JzQkNCg0KPQqNCY0Isg0JzQmNCe0KDQmNCm0JAKK9Cc0JDQoNCj0KjQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCQ0KDQo9Co0JjQiyDQntCb0JPQkAor0JzQkNCg0KPQqNCY0Isg0KHQotCe0IjQkNCdCivQnNCQ0KDQo9Co0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQo9Cd0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCg0KPQndCa0JjQiyDQnNCY0JvQmNCd0JAKK9Cc0JDQoNCj0J3QntCS0JjQiyDQkdCb0JDQk9Ce0KLQkAor0JzQkNCh0JvQkNCLINCQ0J3QotCVCivQnNCQ0KHQm9CQ0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQodCb0JDQiyDQoNCQ0IjQmtCeCivQnNCQ0KHQm9CQ0Isg0JLQmNCd0JrQngor0JzQkNCh0JvQntCS0JDQoNCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0JzQkNCh0J3QldCmINCQ0J3QmtCQCivQnNCQ0KHQndCY0JrQntCh0JAg0KTQldCc0JrQkAor0JzQkNCh0J3QmNCa0J7QodCQINCk0JXQnNCa0JAKK9Cc0JDQodCd0J7QkiDQoNCe0JfQkNCb0JjQiNCQCivQnNCQ0KHQotCY0JrQntCh0JAg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQodCi0JjQmtCe0KHQkCDQndCY0JrQngor0JzQkNCh0KLQmNCb0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCh0KLQmNCb0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KHQotCY0JvQntCS0JjQiyDQnNCY0KDQkAor0JzQkNCh0KLQmNCb0J7QktCY0Isg0JzQmNCg0JrQngor0JzQkNCh0KLQmNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQodCi0JjQm9Ce0JLQmNCLINCf0JvQldCc0JAKK9Cc0JDQodCi0JjQm9Ce0JLQmNCLINCg0JDQndCa0J4KK9Cc0JDQotCQ0IjQp9CY0Isg0KTQoNCQ0IrQngor0JzQkNCi0JDQiNCn0JjQiyDQmNCS0JDQnQor0JzQkNCi0JDQmiDQnNCQ0KDQmNCI0JAKK9Cc0JDQotCQ0Jog0JzQkNCg0IjQkNCdCivQnNCQ0KLQkNCaINCS0JXQodCd0JAKK9Cc0JDQotCQ0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQotCQ0J3QntCSINCI0JDQodCc0JjQndCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0JTQldCX0JjQlNCV0KAKK9Cc0JDQotCQ0J3QntCS0JjQiyDQmNCg0JXQndCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JzQkNCi0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQotCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCi0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0KLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQotCQ0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JzQkNCi0JDQndCe0JLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQotCQ0KDQo9CT0JAg0InQmNCJ0JDQndCQCivQnNCQ0KLQkNCg0KPQk9CQINCc0JjQm9Ca0JAKK9Cc0JDQotCQ0KDQo9CT0JAg0J/QkNCS0JvQlQor0JzQkNCi0JDQoNCj0JPQkCDQl9CQ0JPQntCg0JrQkAor0JzQkNCi0JDQoNCj0JPQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQkNCh0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQotCQ0JLQo9CJINCc0JjQm9CY0KbQkAor0JzQkNCi0JUg0JXQotCV0JvQmtCQCivQnNCQ0KLQlSDQk9CY0JfQldCb0JAKK9Cc0JDQotCVINCS0JXQndCU0JXQmyDQlNCgCivQnNCQ0KLQldCn0JjQmiDQnNCY0JrQm9Ce0KgKK9Cc0JDQotCV0IjQkNCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCi0JXQiNCQ0KjQldCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQotCV0IjQkNCo0JXQkiDQodCS0JXQotCe0JfQkNCgCivQnNCQ0KLQldCI0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCQ0KLQldCI0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQnNCQ0KLQldCI0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQotCV0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KLQldCI0JXQktCY0Isg0JfQmNCb0JTQkAor0JzQkNCi0JXQiNCY0Isg0ILQo9Cg0JAKK9Cc0JDQotCV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQldCI0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQkNCi0JXQiNCY0Isg0KDQkNCi0JrQngor0JzQkNCi0JXQiNCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KLQldCI0JjQiyDQodCb0JDQktCe0InQo9CRINCU0KAg0JvQldCa0JDQoAor0JzQkNCi0JXQiNCY0J0g0ILQntCg0ILQlQor0JzQkNCi0JXQiNCY0J0g0JTQoNCQ0JPQkNCdCivQnNCQ0KLQldCI0JjQnSDQlNCg0JDQk9CY0IsKK9Cc0JDQotCV0IjQmNCdINCU0KPQqNCQ0J0KK9Cc0JDQotCV0IjQmNCdINCc0JjQm9CY0JLQntCICivQnNCQ0KLQldCI0JjQnSDQktCV0KHQldCb0JjQnQor0JzQkNCi0JXQmtCQ0JvQniDQnNCY0JvQmtCQCivQnNCQ0KLQldCa0J7QktCY0Isg0KHQnNCY0InQkAor0JzQkNCi0JXQntCS0JjQiyDQn9Cj0JHQkCDQlNCgCivQnNCQ0KLQldCS0KHQmtCYINCb0KPQmNCC0JgKK9Cc0JDQotCY0KfQldCaINCJ0KPQlNCV0JLQmNCiCivQnNCQ0KLQmNCo0JAg0JjQoNCV0J3QkAor0JzQkNCi0JjQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQotCY0Isg0JbQkNCg0JrQngor0JzQkNCi0JjQiyDQltCY0JLQmtCQCivQnNCQ0KLQmNCLINCW0JjQktCa0J4KK9Cc0JDQotCY0Isg0JbQmNCS0JrQngor0JzQkNCi0JjQiyDQltCY0JLQntCI0JjQnQor0JzQkNCi0JjQiyDQltCY0JLQntCg0JDQlAor0JzQkNCi0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQotCY0Isg0ILQntCg0ILQlQor0JzQkNCi0JjQiyDQgtCj0KDQgtCY0KbQkAor0JzQkNCi0JjQiyDQgtCj0KDQkCDQlNCgCivQnNCQ0KLQmNCLINCQ0KbQmtCeCivQnNCQ0KLQmNCLINCQ0KbQmtCeCivQnNCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCLINCQ0J3QmtCQCivQnNCQ0KLQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCi0JjQiyDQkNCg0JDQndCa0JAKK9Cc0JDQotCY0Isg0JDQoNCQ0J3QmtCQCivQnNCQ0KLQmNCLLdCR0JDQo9ChINCW0JjQktCa0J4KK9Cc0JDQotCY0Ist0JHQldCa0JLQkNCb0JDQpiDQktCV0KHQndCQCivQnNCQ0KLQmNCLINCR0J7QltCY0JTQkNCgINCU0KAKK9Cc0JDQotCY0Isg0JHQntCI0JDQndCQCivQnNCQ0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCi0JjQiyDQlNCQ0JzQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KLQmNCLINCU0JXQodCQ0J3QmtCQCivQnNCQ0KLQmNCLINCU0J7QkdCg0JjQptCQCivQnNCQ0KLQmNCLINCU0J7QkdCg0JjQm9CeCivQnNCQ0KLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQotCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0KLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KLQmNCLINCU0KDQkNCT0JjQitCQCivQnNCQ0KLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JDQotCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQotCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQotCY0Isg0JTQo9Co0JDQnQor0JzQkNCi0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQotCY0Isg0JTQo9Co0JDQnQor0JzQkNCi0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cc0JDQotCY0Isg0JXQktCQCivQnNCQ0KLQmNCLINCk0JjQndCa0JAKK9Cc0JDQotCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JDQotCY0Isg0JjQm9CY0IjQkAor0JzQkNCi0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQotCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JDQotCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JDQotCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQnNCQ0KLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQotCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KLQmNCLLdCa0JXQmtCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JDQotCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JzQkNCi0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQotCY0Isg0InQmNCJ0JDQndCQCivQnNCQ0KLQmNCLINCJ0JjQidCQ0J3QkAor0JzQkNCi0JjQiyDQidCY0InQkNCd0JAKK9Cc0JDQotCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCi0JjQiyDQidCj0JHQngor0JzQkNCi0JjQiyDQm9Cj0JrQkAor0JzQkNCi0JjQiyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cc0JDQotCY0Isg0JzQkNCg0JjQptCQCivQnNCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCi0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCi0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQotCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JDQotCY0Isg0JzQmNCb0J7QqAor0JzQkNCi0JjQiyDQnNCY0JvQntCoCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQotCY0Isg0JzQmNCb0J7QqAor0JzQkNCi0JjQiyDQnNCY0JvQntCoCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCQ0KLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCQ0KLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCQ0KLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQotCY0Isg0J3QkNCU0JAKK9Cc0JDQotCY0Isg0J3QkNCU0JXQltCU0JAKK9Cc0JDQotCY0Isg0J3QkNCi0JDQqNCQCivQnNCQ0KLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQotCY0Isg0J3QldCT0J7QktCQ0J0KK9Cc0JDQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KLQmNCLINCd0J7QktCY0KbQkAor0JzQkNCi0JjQiyDQn9CQ0JLQkAor0JzQkNCi0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KLQmNCLINCf0JDQktCb0JUKK9Cc0JDQotCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQmNCLINCf0JvQkNCd0JjQndCa0JAKK9Cc0JDQotCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQotCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQotCY0Isg0KDQkNCU0JUKK9Cc0JDQotCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQotCY0Isg0KDQkNCU0J7QiNCVCivQnNCQ0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQotCY0Isg0KDQkNCI0JrQngor0JzQkNCi0JjQiyDQodCQ0JLQkAor0JzQkNCi0JjQiyDQodCY0JzQkAor0JzQkNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KLQmNCLINCh0JvQkNCS0JrQngor0JzQkNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCi0JjQiyDQodCi0JDQndCa0J4KK9Cc0JDQotCY0Isg0KHQotCQ0J3QmtCeCivQnNCQ0KLQmNCLINCh0KLQkNCX0JAKK9Cc0JDQotCY0Isg0KHQotCY0J/Qngor0JzQkNCi0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQotCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQotCY0Isg0KLQntCc0JAKK9Cc0JDQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCi0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQnNCQ0KLQmNCLINCS0JXQodCV0JvQmNCdCivQnNCQ0KLQmNCLINCS0JjQlNCQCivQnNCQ0KLQmNCLINCS0JjQotCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQkNCi0JjQiyDQktCb0JDQlNCQCivQnNCQ0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JDQotCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgINCc0KAKK9Cc0JDQotCY0Isg0JLQo9CI0JjQptCQCivQnNCQ0KLQmNCLINCS0KPQmtCY0KbQkAor0JzQkNCi0JjQiyDQl9CQ0JPQntCg0JrQkAor0JzQkNCi0JjQiyDQl9CU0KDQkNCS0JrQkAor0JzQkNCi0JjQiyDQl9Ce0KDQkAor0JzQkNCi0JjQptCa0Jgg0JzQmNCb0JDQndCQINCU0KAKK9Cc0JDQotCY0KbQmtCYINCc0JjQm9Ce0KgKK9Cc0JDQotCY0IjQkNCoINCY0JvQmNCI0JAKK9Cc0JDQotCY0IjQkNCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCi0JjQiNCQ0KjQldCSINCg0JDQlNCY0JLQntCICivQnNCQ0KLQmNCI0JDQqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCI0JDQqNCV0JLQmNCLINCI0JXQm9Ca0JAKK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KLQmNCI0JDQqNCV0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JrQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCQ0J3QotCY0KbQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCQ0J3QotCj0J0KK9Cc0JDQotCY0IjQldCS0JjQiyDQkdCe0IjQkNCdCivQnNCQ0KLQmNCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KLQmNCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQotCY0IjQldCS0JjQiyDQpNCg0JDQndCn0JjQqNCa0JAKK9Cc0JDQotCY0IjQldCS0JjQiyDQmNCb0JjQiNCQCivQnNCQ0KLQmNCI0JXQktCY0Isg0IjQntCh0JjQnwor0JzQkNCi0JjQiNCV0JLQmNCLINCa0JDQotCQ0JvQmNCdCivQnNCQ0KLQmNCI0JXQktCY0Isg0JvQkNCI0J7QqAor0JzQkNCi0JjQiNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCc0JjQm9CVCivQnNCQ0KLQmNCI0JXQktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cc0JDQotCY0IjQldCS0JjQiyDQn9CV0KDQngor0JzQkNCi0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQotCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JjQiNCV0JLQmNCLINCg0JDQlNCVCivQnNCQ0KLQmNCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KLQmNCI0JXQktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQotCY0IjQldCS0JjQiyDQl9Ce0KDQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCX0J7QoNCQCivQnNCQ0KLQmNCdINCU0J7QoNCe0KLQldCQCivQnNCQ0KLQmNCdINCI0J7QodCY0J8KK9Cc0JDQotCY0J0g0JvQkNCI0J7QqAor0JzQkNCi0JjQnSDQnNCQ0KLQmNCI0JAKK9Cc0JDQotCY0KEg0KjQkNCd0JTQntCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCQ0KLQmNChINCo0JDQndCU0J7QoAor0JzQkNCi0IjQkNCn0JjQiyDQktCY0J3QmtCeCivQnNCQ0KLQmtCeINCV0JLQkAor0JzQkNCi0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KLQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JDQotCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQotCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCi0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQotCa0J7QktCY0Isg0JvQkNCU0JjQodCb0JDQkgor0JzQkNCi0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JDQotCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KLQmtCe0JLQmNCLINCc0J7QnNCY0KAKK9Cc0JDQotCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQotCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JzQkNCi0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQotCa0J7QktCY0Isg0KHQotCQ0JzQldCd0JrQngor0JzQkNCi0JrQntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cc0JDQotCa0J7QktCY0Isg0JfQlNCV0J3QmtCQINCU0KAKK9Cc0JDQotCe0KjQldCS0JjQiyDQmNCS0JDQnQor0JzQkNCi0J7QqNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQnNCQ0KLQntCo0JrQntCS0JjQiyDQkNCT0JDQotCQCivQnNCQ0KLQntCo0JrQntCS0JjQiyDQotCV0KDQldCX0JAKK9Cc0JDQotCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQnNCQ0KLQntCS0JjQiyDQkNCd0JAKK9Cc0JDQotCe0JLQmNCLINCR0J7QltCQ0J3QkAor0JzQkNCi0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JzQkNCi0J7QktCY0Isg0JHQntCg0J4KK9Cc0JDQotCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCi0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0KLQntCS0JjQiyDQlNCQ0KDQngor0JzQkNCi0J7QktCY0Isg0JTQldCh0JAKK9Cc0JDQotCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0KLQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQkNCi0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cc0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCi0J7QktCY0Isg0JzQmNCb0JUKK9Cc0JDQotCe0JLQmNCLLdCc0JjQm9CY0Isg0JHQkNCi0KDQmNCLCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQmNCLCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQntCI0JrQngor0JzQkNCi0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQnNCQ0KLQntCS0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCQ0KLQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JzQkNCi0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCi0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JDQotCe0JLQmNCd0JAg0KTQoNCQ0IrQkAor0JzQkNCi0J7QktCY0J3QkCDQk9Ce0KDQkNCdCivQnNCQ0KLQntCS0JjQndCQINCc0JDQoNCa0J4KK9Cc0JDQotCg0JDQmiDQlNCg0JDQk9CQ0J0KK9Cc0JDQotCj0Kgg0IjQkNCdCivQnNCQ0KLQo9Co0JrQkCDQnNCQ0KDQotCe0J0KK9Cc0JDQotCj0InQmNCdINCY0JPQitCQ0KYKK9Cc0JDQotCj0KHQmtCYINCh0J7QitCQCivQnNCQ0KLQktCY0JrQntCSINCV0KPQk9CV0J3QmNCI0JUKK9Cc0JDQo9Ca0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQkNCj0Jsg0JPQntCg0JTQkNCd0JAKK9Cc0JDQo9Cg0JjQiyDQpNCV0KDQldCd0KYKK9Cc0JDQo9Cg0JjQiyDQk9CV0JfQkAor0JzQkNCj0KDQmNCLINCd0JXQndCQ0JQKK9Cc0JDQktCY0Isg0KHQoNCC0JDQnQor0JzQkNCS0KDQkNCaINCY0JzQoNCVCivQnNCQ0JLQoNCV0J3QodCa0Jgg0JHQntCT0JTQkNCdCivQnNCQ0JLQoNCV0J3QodCa0Jgg0JHQntCg0JrQngor0JzQkNCS0KDQldCd0KHQmtCYINCY0JLQmNCm0JAKK9Cc0JDQktCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0JfQkNCb0JjQptCQINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCX0JDQm9CY0KbQkCDQlNCj0KjQkNCdCivQnNCQ0JfQkNCb0JjQptCQINCT0J7QiNCa0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0InQo9CR0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0JzQkNCg0JjQiNCQCivQnNCQ0JfQkNCb0JjQptCQINCg0JDQiNCa0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0KHQndCV0JbQkNCd0JAKK9Cc0JDQl9CQ0JvQmNCm0JAg0KPQoNCe0KgKK9Cc0JDQl9CQ0JvQmNCm0JAg0JLQkNCh0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0JLQldCJ0JrQngor0JzQkNCX0JDQndCn0JjQmiDQkNCd0JTQoNCY0IjQkAor0JzQkNCX0JDQndCL0JjQmiDQn9CQ0IjQkAor0JzQkNCX0JDQitCYINCa0JDQoNCb0J4KK9Cc0JDQl9CY0Isg0JbQmNCS0JrQngor0JzQkNCX0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQl9CY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JfQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0JfQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCQ0JfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQl9CY0Isg0J/Qm9CV0KLQmNCa0J7QodCQCivQnNCQ0JfQmNCK0JDQndCY0J0g0JTQo9Co0JDQnQor0JzQkNCX0JvQkNCc0Jgg0I/QkNCR0JjQoAor0JzQkNCX0KPQoCDQktCj0JrQmNCm0JAKK9Cc0KYt0KbQntCd0J3QldCb0Jsg0JzQkNCg0KLQkAor0JzQldCn0JrQkNCg0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9Cc0JXQp9Ca0JjQiyDQlNCe0JHQoNCY0JvQkAor0JzQldCn0JrQmNCLINCh0JvQkNCS0JrQngor0JzQldCo0JDQndCe0JLQmNCLINCl0JDQl9CY0JwKK9Cc0JXQqNCi0JXQoCDQmNCg0JXQndCQCivQnNCV0KjQotCV0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JXQqNCi0KDQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQldCL0JDQktCQINCR0KDQkNCd0JrQngor0JzQldCL0JDQktCQINCU0KDQkNCT0JDQnQor0JzQldCL0JDQktCQINCc0JjQm9CQ0J0KK9Cc0JXQgtCQ0J3QmNCdINCU0KPQqNCQ0J0KK9Cc0JXQgtCV0KjQmCDQidCj0JHQntCc0JjQoAor0JzQldCC0JXQqNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JXQgtCV0JQg0JzQkNCg0JjQptCQCivQnNCV0ILQldCU0J7QktCY0Isg0ILQntCg0ILQmNCI0JUKK9Cc0JXQgtCV0JTQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JXQgtCV0JTQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JXQgtCV0JTQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCV0ILQldCU0J7QktCY0Isg0JTQoNCQ0JPQngor0JzQldCC0JXQlNCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cc0JXQgtCV0JTQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQldCC0JXQlNCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0JzQldCC0JXQlNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCV0ILQldCg0Jgg0JLQldCg0J7QndCY0JrQkAor0JzQldCC0JjQnNCe0KDQldCmINCV0JTQo9CQ0KDQlAor0JzQldCC0JjQnNCe0KDQldCmINCJ0KPQkdCe0JzQmNCgCivQnNCV0ILQmNCc0J7QoNCV0KYg0KHQotCI0JXQn9CQ0J0KK9Cc0JXQgtCY0JzQntCg0JXQpiDQktCY0JrQotCe0KAKK9Cc0JXQkNCc0I/QmNCI0JAg0JzQmNCg0JAKK9Cc0JXQkNCd0I/QmNCLINCh0JvQkNCS0JrQngor0JzQldCm0JDQndCe0JIg0KHQotCe0IjQkNCd0JrQkAor0JzQldCU0JDQmtCe0JIg0JbQmNCS0JrQngor0JzQldCU0JDQmtCe0JIg0JzQkNCg0JjQiNCQCivQnNCV0JTQkNCa0J7QkiDQnNCY0JvQkNCdCivQnNCV0JTQkNCa0J7QkiDQnNCY0JvQkNCdCivQnNCV0JTQkNCa0J7QkiDQnNCY0InQkNCd0JAKK9Cc0JXQlNCQ0JrQntCSINCg0JDQlNCY0JLQntCICivQnNCV0JTQkNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQnNCV0JTQkNCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCV0JTQkNCa0J7QktCY0Isg0JTQkNCc0JjQoAor0JzQldCU0JDQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCV0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQldCU0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JXQlNCQ0JrQntCS0JjQiyDQmNCb0JTQmNCa0J4KK9Cc0JXQlNCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCV0JTQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQldCU0JDQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQldCU0JDQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQldCU0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JXQlNCQ0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCV0JTQkNCa0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQldCU0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JzQldCU0JDQnSDQlNCg0JDQk9CY0IrQkAor0JzQldCU0JDQnSDQnNCQ0J3QntCI0JvQngor0JzQldCU0JDQnSDQnNCY0JvQldCd0JrQngor0JzQldCU0JDQnSDQnNCY0JvQldCd0JrQngor0JzQldCU0JDQnSDQnNCY0JvQldCd0JrQngor0JzQldCU0JDQnSDQnNCY0JvQntCg0JDQlAor0JzQldCU0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQnNCV0JTQkNCdINCg0JDQlNCV0J3QmtCeCivQnNCV0JTQkNCdINCh0JvQkNCS0JjQptCQCivQnNCV0JTQkNCdINCh0J/QkNCh0J7QiNCVCivQnNCV0JTQkNCdINCS0JXQm9CY0JzQmNCgCivQnNCV0JTQkNCdINCS0JvQkNCU0JjQodCb0JDQkgor0JzQldCU0JDQndCe0JLQodCa0Jgg0JHQntCg0JjQoQor0JzQldCU0JDQoCDQktCj0KfQmtCeCivQnNCV0JTQkNCg0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCV0JTQkNCg0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCV0JTQkNCg0JXQktCY0Isg0KHQotCQ0J3QkAor0JzQldCU0JXQndCY0KbQkCDQgtCj0KDQgtCY0KbQkAor0JzQldCU0JXQndCY0KbQkCDQgtCj0KDQngor0JzQldCU0JXQndCY0KbQkCDQkdCe0KHQmNCJ0JrQkAor0JzQldCU0JXQndCY0KbQkCDQnNCY0JvQmNCh0JDQkgor0JzQldCU0JXQndCY0KbQkCDQoNCQ0JTQntCc0JjQoAor0JzQldCU0JXQndCY0KbQkCDQodCd0JXQltCQ0J3QkAor0JzQldCU0JXQndCY0KbQkCDQodCd0JXQltCQ0J3QkAor0JzQldCU0JXQndCY0KbQkCDQktCe0IjQmNCh0JvQkNCSCivQnNCV0JTQldCd0JjQptCQINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JXQlNCV0KAg0ILQntCg0ILQlQor0JzQldCU0JXQoCDQiNCV0JvQldCd0JAKK9Cc0JXQlNCY0Isg0ILQo9Cg0JAKK9Cc0JXQlNCY0Isg0ILQo9Cg0JAKK9Cc0JXQlNCY0Isg0JHQntCo0JrQngor0JzQldCU0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JXQlNCY0Isg0JHQntCT0JTQkNCdCivQnNCV0JTQmNCLINCR0J7QoNCY0JLQntCICivQnNCV0JTQmNCLINCR0KDQkNCd0JrQkAor0JzQldCU0JjQiyDQlNCQ0J3QlQor0JzQldCU0JjQiyDQlNCQ0J3QlQor0JzQldCU0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JXQlNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JXQlNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQldCU0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JzQldCU0JjQiyDQlNCj0KjQkNCdCivQnNCV0JTQmNCLINCU0KPQqNCQ0J0KK9Cc0JXQlNCY0Isg0JPQntCI0JrQngor0JzQldCU0JjQiyDQmNCb0JjQiNCQCivQnNCV0JTQmNCLINCY0JvQmNCI0JAKK9Cc0JXQlNCY0Isg0JjQm9CY0IjQkAor0JzQldCU0JjQiyDQm9CQ0JfQkNCgCivQnNCV0JTQmNCLINCc0JjQi9CeCivQnNCV0JTQmNCLINCc0JjQm9CQ0J0KK9Cc0JXQlNCY0Isg0JzQmNCb0JDQnQor0JzQldCU0JjQiyDQnNCY0JvQlQor0JzQldCU0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JXQlNCY0Isg0JzQmNCb0JrQkAor0JzQldCU0JjQiyDQnNCY0JvQntCoCivQnNCV0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCV0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCV0JTQmNCLINCc0JjQntCU0KDQkNCTCivQnNCV0JTQmNCLINCc0JjQoNCQCivQnNCV0JTQmNCLINCc0JjQoNCI0JDQndCQCivQnNCV0JTQmNCLINCc0JjQoNCa0J4KK9Cc0JXQlNCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQnNCV0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQldCU0JjQiyDQndCY0JrQntCb0JAKK9Cc0JXQlNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQldCU0JjQiyDQn9CV0KLQkNCgCivQnNCV0JTQmNCLINCg0JDQlNCVCivQnNCV0JTQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCV0JTQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCV0JTQmNCLINCh0JDQktCeCivQnNCV0JTQmNCLINCh0JjQnNCeCivQnNCV0JTQmNCLINCh0JvQkNCS0JrQngor0JzQldCU0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JzQldCU0JjQiyDQodCc0JjQidCQCivQnNCV0JTQmNCLINCh0KLQldCS0JDQnQor0JzQldCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCV0JTQmNCLINCi0JDQotCI0JDQndCQCivQnNCV0JTQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCV0JTQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCV0JTQmNCLINCX0J7QoNCQ0J0KK9Cc0JXQlNCY0Isg0JfQntCg0JAKK9Cc0JXQlNCe0Kgg0KPQoNCe0KgKK9Cc0JXQlNCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JXQotCQCivQnNCV0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0JTQntCS0JDQoNCh0JrQmCDQpNCg0JDQitCQCivQnNCV0JTQntCS0JDQoNCh0JrQmCDQnNCY0KjQkAor0JzQldCU0J7QktCQ0KDQodCa0Jgg0J/QmNCg0J7QqNCa0JAKK9Cc0JXQlNCe0JLQkNCg0KHQmtCYINCf0JjQoNCe0KjQmtCQCivQnNCV0JTQntCS0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0JXQlNCe0JLQmNCLINCf0KDQldCU0KDQkNCTINCU0KAKK9Cc0JXQlNCj0IrQkNCd0JjQnSDQpNCV0JHQoNCe0J3QkAor0JzQldCU0KPQitCQ0J3QmNCdINCY0KHQmNCU0J7QoAor0JzQldCU0KPQoNCY0Isg0JTQkNCd0JjQm9CeCivQnNCV0JTQo9Cg0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCV0JTQo9Cg0JjQiyDQk9Ce0KDQkNCdCivQnNCV0JTQo9Cg0JjQiyDQmNCg0JXQndCQCivQnNCV0JTQo9Cg0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JXQlNCj0KDQmNCLINCa0J7QodCi0JAKK9Cc0JXQlNCj0KDQmNCLINCc0JjQm9CY0JLQntCICivQnNCV0JTQo9Cg0JjQiyDQn9CV0KLQkNCgCivQnNCV0JTQo9Cg0JjQiyDQodCc0JjQidCQCivQnNCV0JTQo9Cg0JjQiyDQl9Cb0JDQotCQCivQnNCV0JTQktCV0JTQntCS0JjQiyDQlNCg0JDQk9CQCivQnNCV0JPQm9CQ0Igg0JHQntCh0JjQidCa0JAKK9Cc0JXQpdCQ0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JXQpdCQ0J3Qj9CY0KHQmtCYINCS0JXQndCa0J4KK9Cc0JXQpdCc0JXQotCYINCl0JjQodCV0J0KK9Cc0JXQpdCc0JXQotCYINCg0JDQpNCV0KIKK9Cc0JXQpdCc0JXQotCe0Igg0KXQkNCh0JDQnQor0JzQldCI0JjQiyDQndCV0JLQldCd0JrQkAor0JzQldCa0JXQitCY0KjQkNCmINCS0JXQodCV0JvQmNCdCivQnNCV0JrQldCK0JjQqNCQ0KYg0JfQntCg0JDQnQor0JzQldCa0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JXQmtCY0J3QlNCQINCc0JDQoNCY0IjQkNCdINCU0KAKK9Cc0JXQmtCY0J3QlNCQINCc0JjQoNCI0JDQndCQCivQnNCV0JrQmNCd0JjQiyDQkNCd0KLQlQor0JzQldCa0JjQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JXQmtCY0J3QmNCLINCi0J7QndCa0JAKK9Cc0JXQm9CQ0KAg0JDQndCU0KDQkNCoCivQnNCV0JvQkNCgINCI0JXQm9CV0J3QkAor0JzQldCb0JDQoCDQidCj0JTQldCS0JjQogor0JzQldCb0JXQkyDQiNCQ0J3QmtCeCivQnNCV0JvQldCTINCI0J7QktCQ0J0KK9Cc0JXQm9CV0JMg0IjQntCS0JDQnQor0JzQldCb0JXQkyDQnNCY0KjQkAor0JzQldCb0JXQkyDQktCb0JDQlNCY0JzQmNCgCivQnNCV0JvQldCg0KIg0JLQldCd0JTQldCbCivQnNCV0JvQmNCd0Jog0JTQo9Co0JDQndCa0JAKK9Cc0JXQm9CY0J3QmiDQiNCe0KXQkNCdCivQnNCV0InQkCDQiNCj0JvQmNCI0JDQndCQCivQnNCV0InQmtCj0KLQmCDQpNCV0KDQldCd0KYKK9Cc0JXQidCa0KPQotCYINCI0J7QltCV0KQKK9Cc0JXQidCa0KPQotCYINCa0JDQoNCb0J4KK9Cc0JXQidCa0KPQotCYINCe0KDQkdCQ0J0KK9Cc0JXQidCd0JjQmiDQmNCb0JjQiNCQCivQnNCV0InQndCY0JrQntCSINCU0JXQodCQ0J3QmtCQCivQnNCV0JvQmtCj0KEg0JHQntCW0JAKK9Cc0JXQm9Ca0KPQoSDQkdCe0KDQmNCS0J7QiAor0JzQldCb0JrQo9ChINCa0JDQotCY0KbQkAor0JzQldCb0JrQo9ChINCc0JjQoNCI0JDQndCQCivQnNCV0JvQmtCj0KEg0JLQntCI0JjQodCb0JDQkgor0JzQldCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JXQm9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JXQm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCV0JvQktCQ0J0g0JXQoNCW0JXQkdCV0KIKK9Cc0JXQm9CS0JDQnSDQn9CV0KLQkNCgCivQnNCV0JvQktCQ0J0g0JfQntCg0JDQnQor0JzQldCb0JLQmNCd0JPQldCgINCQ0JvQntCI0JfQmNCI0JAKK9Cc0JXQnNCQ0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQldCc0JXQlNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JXQnNCV0JTQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQldCc0JXQlNCe0JLQodCa0Jgg0KPQl9CV0JjQoAor0JzQldCc0JjQqNCV0JLQmNCLINCY0JHQoNCQ0KXQmNCcCivQnNCV0JzQmNCo0JXQktCY0Isg0JjQodCc0JDQmNCbCivQnNCV0JzQmNCo0JXQktCY0Isg0JzQkNCg0IjQkNCdCivQnNCV0JzQmNCo0JXQktCY0Isg0JzQldCl0JzQldCUCivQnNCV0JzQmNCo0JXQktCY0Isg0KDQkNCo0JjQlNCQCivQnNCV0JzQmNCo0Jgg0KLQldCk0JjQmgor0JzQldCc0JjQj9CQ0J0g0KDQldCP0J4KK9Cc0JXQndCC0JDQnSDQqNCQ0J3QlNCe0KAKK9Cc0JXQndCC0JDQnSDQnNCQ0KDQmNCI0JAKK9Cc0JXQndCC0JDQnSDQn9CQ0JLQldCbCivQnNCV0J3QgtCQ0J0g0KDQkNCh0KLQmNCh0JvQkNCSCivQnNCV0J3QlNCV0JHQkNCR0JAg0JHQntCg0JjQodCb0JDQkgor0JzQldCd0JTQldCR0JDQkdCQINCf0JDQndCi0JAKK9Cc0JXQndCU0JXQmyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cc0JXQndCU0KDQkNCT0JjQiyDQgtCe0KDQgtCVCivQnNCV0J3QlNCg0JXQmCDQpdCV0JvQldCd0JAKK9Cc0JXQndCV0KjQmCDQkdCV0JvQkAor0JzQldCd0JXQqNCYINCY0KDQldCd0JAKK9Cc0JXQndCV0KjQmCDQm9CQ0KHQm9CeCivQnNCV0J3Qk9CbINCY0KDQldCdCivQnNCV0J3Qk9CbINCb0JDQiNCe0KgKK9Cc0JXQndCY0KfQkNCd0JjQnSDQiNCV0JvQkAor0JzQldCd0JjQp9CQ0J3QmNCdINCh0KLQldCS0JDQnQor0JzQldCd0JjQi9CQ0J3QmNCdINCf0JXQotCQ0KAKK9Cc0JXQitCQ0Jog0JjQktCQ0J0KK9Cc0JXQndCX0JjQm9CP0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAKK9Cc0JXQoNCnINCI0JDQndCe0KgKK9Cc0JXQoNCn0JAg0KHQotCV0JLQkNCdCivQnNCV0KDQqCDQnNCY0JvQkNCdCivQnNCV0KDQltCQINCa0JDQoNCe0IkKK9Cc0JXQoNCC0JXQm9Ce0KjQmtCYINCc0JjQm9CY0KbQkAor0JzQldCg0KYg0JXQktCQCivQnNCV0KDQlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQldCg0JTQntCS0JjQiyDQnNCY0JvQmtCQCivQnNCV0KDQldCYINCa0JDQotCQ0JvQmNCdCivQnNCV0KDQldCYINCc0JDQoNCT0JjQotCQCivQnNCV0KDQk9CQ0J3QpiDQmtCQ0KLQmNCm0JAKK9Cc0JXQoNCT0JXQqCDQiNCQ0J3QntCoCivQnNCV0KDQk9CV0Jsg0JzQkNCg0JjQiNCQCivQnNCV0KDQmNCn0JDQoCDQoNCQ0JTQntCI0JjQptCQCivQnNCV0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCV0KDQmtCe0JLQmNCLINCQ0JvQntCI0JcKK9Cc0JXQoNCa0J7QktCY0Isg0JDQndCa0JjQptCQCivQnNCV0KDQmtCe0JLQmNCLINCI0KPQlNCY0KIKK9Cc0JXQoNCa0J7QktCY0Isg0InQo9CU0JXQktCY0KIKK9Cc0JXQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JXQoNCa0J7QktCY0Isg0KHQmNCb0JLQmNCQCivQnNCV0KDQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQktCQCivQnNCV0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCV0KDQmtCj0JvQntCSINCJ0JjQidCQ0J3QkAor0JzQldCg0JrQktCQINCV0JzQkAor0JzQldCg0JrQktCQINCI0J7QltCV0KQKK9Cc0JXQoNCK0JDQmiDQpNCg0JDQitCeCivQnNCV0KHQkNCaINCd0JjQmtCe0JvQkAor0JzQldCh0JDQoNCY0Isg0JPQkNCR0KDQmNCI0JXQm9CQCivQnNCV0KHQkNCg0J7QqCDQqNCQ0J3QlNCe0KAg0JTQoAor0JzQldCh0JDQoNCe0Kgg0ILQo9Cg0JAKK9Cc0JXQodCQ0KDQntCoINCQ0J3QlNCg0JDQqAor0JzQldCh0JDQoNCe0Kgg0JDQoNCf0JDQlAor0JzQldCh0JDQoNCe0Kgg0JDQotCY0JvQkAor0JzQldCh0JDQoNCe0Kgg0JHQkNCb0JDQlgor0JzQldCh0JDQoNCe0Kgg0KTQldCg0JXQndCmCivQnNCV0KHQkNCg0J7QqCDQpNCg0JDQitCQCivQnNCV0KHQkNCg0J7QqCDQk9CV0JfQkAor0JzQldCh0JDQoNCe0Kgg0JPQldCX0JAKK9Cc0JXQodCQ0KDQntCoINCT0J7QoNCQ0J0KK9Cc0JXQodCQ0KDQntCoINCY0KjQotCS0JDQnQor0JzQldCh0JDQoNCe0Kgg0JjQqNCi0JLQkNCdCivQnNCV0KHQkNCg0J7QqCDQmNCb0J7QndCQCivQnNCV0KHQkNCg0J7QqCDQmNCb0J7QndCQCivQnNCV0KHQkNCg0J7QqCDQmNCc0KDQlQor0JzQldCh0JDQoNCe0Kgg0IjQldCb0JXQndCQCivQnNCV0KHQkNCg0J7QqCDQiNCV0JvQmNCm0JAKK9Cc0JXQodCQ0KDQntCoINCI0J7QodCY0KQKK9Cc0JXQodCQ0KDQntCoINCI0J7QodCeCivQnNCV0KHQkNCg0J7QqCDQmtCQ0KDQm9CeCivQnNCV0KHQkNCg0J7QqCDQmtCQ0KLQmNCm0JAKK9Cc0JXQodCQ0KDQntCoINCb0JDQiNCe0KgKK9Cc0JXQodCQ0KDQntCoINCb0JDQodCb0J4KK9Cc0JXQodCQ0KDQntCoINCb0JXQntCdCivQnNCV0KHQkNCg0J7QqCDQnNCY0KXQkNCJCivQnNCV0KHQkNCg0J7QqCDQnNCY0JrQm9Ce0KgKK9Cc0JXQodCQ0KDQntCoINCf0JDQktCb0JUKK9Cc0JXQodCQ0KDQntCoINCf0JjQoNCe0KjQmtCQCivQnNCV0KHQkNCg0J7QqCDQodCi0JXQktCQ0J0KK9Cc0JXQodCQ0KDQntCoINCi0JjQkdCe0KAKK9Cc0JXQodCQ0KDQntCoINCi0JjQkdCe0KAKK9Cc0JXQodCQ0KDQntCoINCX0J7Qm9Ci0JDQnQor0JzQldCh0JDQoNCe0Kgg0JfQntCg0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCV0KHQkNCg0J7QqCDQl9Ce0KDQmNCm0JAKK9Cc0JXQodCQ0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCV0KHQkNCg0J7QktCY0Isg0IjQntCS0JDQnQor0JzQldCh0JDQoNCe0JLQmNCLINCc0JDQoNCT0JjQotCQCivQnNCV0KHQkNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQldCh0JDQoNCe0JLQmNCLINCh0JLQldCi0J7Qm9CY0JoKK9Cc0JXQodCV0KjQkNCdINCT0JXQl9CQCivQnNCV0KHQldCb0I/QmNCI0JAg0JbQmNCS0JrQngor0JzQldCh0JXQm9CP0JjQiNCQINCd0JDQlNCV0JbQlNCQCivQnNCV0KHQldCb0I/QmNCI0JAg0J7QodCi0J7QiNCQCivQnNCV0KHQldCb0I/QmNCI0JAg0KDQkNCI0JrQngor0JzQldCh0JXQm9CP0JjQiNCQINCh0JvQkNCS0JjQptCQCivQnNCV0KHQldCb0I/QmNCI0JAg0KHQotCQ0J3QmNCc0JjQoAor0JzQldCi0JXQidCh0JrQmCDQodCV0KDQk9CY0IjQlQor0JzQldCi0J7QlNCY0IjQldCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JzQldCX0JUg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQldCX0JXQqCDQmNCc0KDQlQor0JzQldCX0JXQmCDQqNCQ0J3QlNCe0KAKK9Cc0JXQl9CV0Jgg0IjQntCW0JXQpAor0JzQldCX0JXQmCDQm9CQ0JTQmNCh0JvQkNCSCivQnNCV0JfQldCYINCb0JDQodCb0J4KK9Cc0JXQl9CV0Jgg0KHQndCV0JbQkNCd0JAKK9Cc0JXQl9CV0Jgg0KHQotCV0JLQkNCdINCU0KAKK9Cc0JXQl9CV0Jgg0KHQotCV0JLQkNCdCivQnNCY0KfQkCDQiNCe0KHQmNCfCivQnNCY0KfQkCDQiNCe0JLQkNCdCivQnNCY0KfQmNCLLdCC0JXQoNCc0JDQndCe0JIg0JLQmNCU0JAKK9Cc0JjQp9CY0Isg0JHQntCo0JrQngor0JzQmNCn0JjQiyDQkdCe0KjQmtCeCivQnNCY0KfQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0KfQmNCLLdCc0JjQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0KfQmNCLINCd0JXQlNCV0InQmtCeCivQnNCY0KfQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0KfQmNCLINCh0J7QpNCY0IjQkAor0JzQmNCn0JjQiyDQl9Ce0KDQkAor0JzQmNCn0KPQoNCY0J0g0IjQntCh0JjQnwor0JzQmNCo0KfQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQqNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KjQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQqNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCo0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KjQp9CV0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQmNCo0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQqNCn0JXQktCY0Isg0JzQmNCm0JAKK9Cc0JjQqNCn0JXQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cc0JjQqNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCo0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQqNCn0JXQktCY0Isg0J7Qm9CT0JAKK9Cc0JjQqNCn0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCo0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQp9CV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQqNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCo0KfQldCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cc0JjQqNCQ0J0g0JvQkNCX0JDQoAor0JzQmNCo0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQqNCQ0J3QntCS0JjQiyDQodCY0JzQngor0JzQmNCo0JXQm9CY0Isg0IjQldCk0KLQkAor0JzQmNCo0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCo0JjQiyDQgtCj0KDQkAor0JzQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCo0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQnNCY0KjQmNCLINCQ0J3QgtCV0JvQmtCQCivQnNCY0KjQmNCLINCQ0J3QkAor0JzQmNCo0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQqNCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cc0JjQqNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQqNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQqNCY0Isg0JXQotCI0JXQnQor0JzQmNCo0JjQiyDQk9Ce0KDQkNCdCivQnNCY0KjQmNCLINCY0JLQkNCdCivQnNCY0KjQmNCLINCY0JLQkNCdCivQnNCY0KjQmNCLINCI0JDQk9Ce0JTQkAor0JzQmNCo0JjQiyDQiNCQ0JrQntCSCivQnNCY0KjQmNCLINCI0JDQodCc0JjQndCQCivQnNCY0KjQmNCLINCI0J7QodCY0J8KK9Cc0JjQqNCY0Isg0IjQntCS0JDQnQor0JzQmNCo0JjQiyDQm9CQ0JfQkNCgCivQnNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQqNCY0Isg0JvQmNCd0JrQkAor0JzQmNCo0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQqNCY0Isg0InQo9CR0J4KK9Cc0JjQqNCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KjQmNCLINCc0JDQoNCa0J4KK9Cc0JjQqNCY0Isg0JzQmNCb0JDQnQor0JzQmNCo0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQqNCY0Isg0JzQmNCb0JDQnQor0JzQmNCo0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmNCLINCc0JjQm9Ce0KHQkNCS0JrQkAor0JzQmNCo0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCo0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCo0JjQiyDQnNCY0J7QnNCY0KAKK9Cc0JjQqNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KjQmNCLINCd0JDQlNCQCivQnNCY0KjQmNCLINCd0JXQndCQ0JQKK9Cc0JjQqNCY0Isg0J3QldCh0KLQntCgCivQnNCY0KjQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCo0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQmNCLINCf0KDQldCU0KDQkNCTCivQnNCY0KjQmNCLINCg0JDQlNCVCivQnNCY0KjQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQqNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCo0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQmNCo0JjQiyDQoNCQ0J3QmtCeCivQnNCY0KjQmNCLINCh0JDQktCQCivQnNCY0KjQmNCLINCh0JvQkNCS0JrQngor0JzQmNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCo0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JjQqNCY0Isg0KHQotCY0J/Qngor0JzQmNCo0JjQiyDQodCi0IjQldCf0JDQnQor0JzQmNCo0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQqNCY0Isg0KLQntCU0J7QoCDQlNCgCivQnNCY0KjQmNCLINCi0KPQk9Ce0JzQmNCgCivQnNCY0KjQmNCLINCS0JDQodCQCivQnNCY0KjQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cc0JjQqNCY0Isg0JLQm9CQ0JTQmNCm0JAKK9Cc0JjQqNCY0Isg0JLQntCI0JjQnQor0JzQmNCo0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCo0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KjQmNCLINCX0J7QoNCQCivQnNCY0KjQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCo0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQnNCY0KjQmNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0JzQmNCo0JrQkNCgINCI0J7QktCQ0J0KK9Cc0JjQqNCa0JXQidCY0J0g0JHQntCo0JrQngor0JzQmNCo0JrQmNCLINCo0JjQnNCj0J0KK9Cc0JjQqNCa0JjQiyDQlNCj0KjQkNCdCivQnNCY0KjQmtCY0Isg0JjQktCQ0J0KK9Cc0JjQqNCa0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmtCY0Isg0KDQkNCI0JrQngor0JzQmNCo0JrQmNCLINCg0JDQndCa0J4KK9Cc0JjQqNCa0JjQiyDQodCS0JXQotCY0KHQm9CQ0JLQmtCQCivQnNCY0KjQmtCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQqNCa0JjQi9CV0JLQmNCLINCR0J7QoNCY0JLQntCICivQnNCY0KjQmtCJ0JjQnSDQmtCQ0KLQmNCm0JAKK9Cc0JjQqNCa0J7QkiDQgtCj0KDQgtCY0J3QmtCQCivQnNCY0KjQmtCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQqNCa0J7QkiDQkNCd0JPQldCb0JjQndCQCivQnNCY0KjQmtCe0JIg0JDQndCa0JAKK9Cc0JjQqNCa0J7QkiDQkNCd0JrQmNCm0JAKK9Cc0JjQqNCa0J7QkiDQkNCS0KDQkNCcCivQnNCY0KjQmtCe0JIg0JHQmNCJ0JDQndCQCivQnNCY0KjQmtCe0JIg0JHQntCI0JrQkAor0JzQmNCo0JrQntCSINCR0KDQkNCd0JjQnNCY0KAKK9Cc0JjQqNCa0J7QkiDQkdCg0JDQndCa0J4KK9Cc0JjQqNCa0J7QkiDQmNCS0JjQptCQCivQnNCY0KjQmtCe0JIg0IjQntCS0JDQnQor0JzQmNCo0JrQntCSINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JjQqNCa0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQnNCY0KjQmtCe0JIg0InQo9CR0JjQptCQCivQnNCY0KjQmtCe0JIg0InQo9CR0JjQptCQCivQnNCY0KjQmtCe0JIg0JzQkNCa0KHQkAor0JzQmNCo0JrQntCSINCc0JDQoNCY0KbQkAor0JzQmNCo0JrQntCSINCc0JjQm9Ce0KgKK9Cc0JjQqNCa0J7QkiDQnNCY0JvQntCS0JDQnQor0JzQmNCo0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQqNCa0J7QkiDQndCQ0JTQkAor0JzQmNCo0JrQntCSINCd0JXQktCV0J3QmtCQCivQnNCY0KjQmtCe0JIg0J3QmNCa0J7Qm9CQCivQnNCY0KjQmtCe0JIg0J3QntCS0JAKK9Cc0JjQqNCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JzQmNCo0JrQntCSINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0JzQmNCo0JrQntCSINCh0JDQktCQCivQnNCY0KjQmtCe0JIg0KHQotCQ0J3QmtCQCivQnNCY0KjQmtCe0JIg0KHQotCV0JLQkNCdCivQnNCY0KjQmtCe0JIg0JLQldCh0J3QkAor0JzQmNCo0JrQntCSINCS0JXQodCd0JAKK9Cc0JjQqNCa0J7QkiDQl9CQ0JPQntCg0JrQkAor0JzQmNCo0JrQntCSINCX0JvQkNCi0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQmNCo0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQqNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCo0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCo0JrQntCS0JjQiyDQkNCd0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JDQndCQCivQnNCY0KjQmtCe0JLQmNCLINCQ0KDQodCQCivQnNCY0KjQmtCe0JLQmNCLINCR0JvQkNCW0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQqNCa0J7QktCY0Isg0JHQntCI0JDQndCQCivQnNCY0KjQmtCe0JLQmNCLINCR0J7QiNCQ0J0KK9Cc0JjQqNCa0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JjQqNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KjQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCo0JrQntCS0JjQiyDQptCS0JXQotCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JTQkNCd0KfQmNCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JTQldCb0JjQndCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QoNCQ0JQKK9Cc0JjQqNCa0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JjQm9Ce0J3QmtCQCivQnNCY0KjQmtCe0JLQmNCLINCI0J7QptCQCivQnNCY0KjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQqNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCo0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQqNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0KjQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0JzQmNCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCo0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JjQqNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCo0JrQntCS0JjQiyDQndCY0IvQmNCk0J7QoAor0JzQmNCo0JrQntCS0JjQiyDQntCR0KDQkNCUCivQnNCY0KjQmtCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JzQmNCo0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQmtCe0JLQmNCLINCg0JDQlNCVCivQnNCY0KjQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCIINCc0KAKK9Cc0JjQqNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCo0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQnNCY0KjQmtCe0JLQmNCLINCh0JDQqNCQCivQnNCY0KjQmtCe0JLQmNCLINCh0JDQktCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQnNCY0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCo0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQqNCa0J7QktCY0Isg0KLQkNCK0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JzQmNCo0JrQntCS0JjQiyDQktCY0IjQldCd0KbQldCh0JvQkNCSCivQnNCY0KjQmtCe0JLQmNCLINCS0KPQmtCY0KbQkAor0JzQmNCo0JrQntCS0JjQiyDQktCj0JrQmNCm0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JfQoNCd0JrQkAor0JzQmNCo0JrQntCS0JjQpiDQidCj0JTQldCS0JjQogor0JzQmNCo0JrQntCS0JjQpiDQl9Cj0JfQkNCd0JAKK9Cc0JjQqNCa0KPQm9CY0J0g0JTQoNCQ0JPQmNCo0JAKK9Cc0JjQqNCa0KPQm9CY0J0g0J3QkNCU0JAKK9Cc0JjQqNCa0KPQm9CY0J0g0J3QmNCa0J7Qm9CQCivQnNCY0KjQidCV0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCo0JvQntCSINCJ0KPQkdCY0KbQkAor0JzQmNCo0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCo0J7QktCh0JrQmCDQoNCY0KHQotCeCivQnNCY0KjQo9Cb0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQo9Cb0JjQiyDQktCY0JTQkNCaCivQnNCY0KjQo9Cb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0KjQo9Cg0JAg0JjQktCQ0J0KK9Cc0JjQi9CQ0KjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0IvQkNCo0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JjQi9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQi9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQmNCL0JDQndCe0JLQmNCLINCc0JDQoNCI0JDQnQor0JzQmNCL0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCL0JXQktCY0Isg0KHQntCk0JjQiNCQCivQnNCY0IvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQi9CY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cc0JjQi9CY0Isg0JHQntCI0JDQndCQCivQnNCY0IvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCL0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQi9CY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCL0JjQiyDQkdCg0JDQndCeCivQnNCY0IvQmNCLINCm0JLQmNCI0JXQotCY0J0KK9Cc0JjQi9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCL0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCY0IvQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQi9CY0Isg0JTQo9Co0JDQnQor0JzQmNCL0JjQiyDQmNCb0JjQiNCQCivQnNCY0IvQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCY0IvQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCd0JAKK9Cc0JjQi9CY0Isg0JrQoNCh0KLQkAor0JzQmNCL0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCL0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCL0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQi9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQi9CY0Isg0JzQmNCb0JDQndCQCivQnNCY0IvQmNCLINCc0JjQm9CV0J3QkAor0JzQmNCL0JjQiyDQnNCY0JvQldCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQi9CY0Isg0JzQmNCb0JjQptCQCivQnNCY0IvQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCL0JjQiyDQnNCY0JvQmtCQCivQnNCY0IvQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0IvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQi9CY0Isg0J7Qm9CY0JLQldCg0JAKK9Cc0JjQi9CY0Isg0J7Ql9Cg0JXQnQor0JzQmNCL0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCL0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQnNCY0IvQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0IvQmNCLINCg0J7QlNCe0InQo9CRCivQnNCY0IvQmNCLINCh0JvQkNCS0JjQptCQCivQnNCY0IvQmNCLINCh0JvQkNCS0JrQngor0JzQmNCL0JjQiyDQodCc0JjQidCQCivQnNCY0IvQmNCLINCh0KLQntCI0JDQnQor0JzQmNCL0JjQiyDQodCj0JfQkNCd0JAKK9Cc0JjQi9CY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JjQi9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCL0JjQnSDQltCQ0KDQmtCeCivQnNCY0IvQmNCdINCC0J7QoNCC0JUKK9Cc0JjQi9CY0J0g0JTQo9Co0JrQngor0JzQmNCL0JjQnSDQm9CQ0JfQkAor0JzQmNCL0JjQnSDQnNCY0JvQmNCm0JAKK9Cc0JjQi9CY0J0g0KDQkNCU0J7QktCQ0J0KK9Cc0JjQi9CY0J0g0KPQoNCe0KgKK9Cc0JjQi9Ca0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Cc0JjQi9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0IvQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0IvQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQmNCL0J7QktCY0Isg0IjQkNCd0JrQngor0JzQmNCL0J7QktCY0Isg0JrQntCh0KLQkNCU0JjQnSDQlNCgCivQnNCY0IvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0IvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCL0J7QktCY0Isg0J3QldCR0J7QiNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0IvQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQi9Ce0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQi9Ce0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCY0IvQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQmNCL0KPQndCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JzQmNCL0KPQndCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JzQmNCL0KPQndCe0JLQmNCLINCS0JvQkNCU0J4KK9Cc0JjQi9Cj0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCS0JrQkAor0JzQmNCQ0JLQldCmINCc0JDQi9CQ0KgKK9Cc0JjQptCQ0Jgg0JzQkNCg0JjQiNCQCivQnNCY0KbQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCm0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KbQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQptCY0Isg0JTQo9Co0JDQnQor0JzQmNCm0JjQiyDQmtCg0KHQotCQINCU0KAKK9Cc0JjQptCY0Isg0JzQmNCg0JrQngor0JzQmNCm0JrQntCSINCR0JvQkNCT0J7QiAor0JzQmNCm0JrQntCSINCV0JvQldCd0JAKK9Cc0JjQlNCYINCd0JXQndCQ0JQKK9Cc0JjQlNCY0Isg0ILQntCg0ILQlQor0JzQmNCU0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQmNCU0JjQiy3QlNCj0J3QgtCV0KDQodCa0Jgg0JzQmNCb0JXQndCQCivQnNCY0JTQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCU0JjQiyDQiNCe0JLQkNCdCivQnNCY0JTQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCU0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCU0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JTQmNCLINCh0KLQldCS0JDQnQor0JzQmNCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQlNCY0Isg0JfQntCg0JrQkAor0JzQmNCT0JvQmNCd0KbQmCDQkdCQ0KDQkdCQ0KDQkAor0JzQmNCT0JvQmNCd0KbQmCDQldCi0JXQm9Ca0JAKK9Cc0JjQk9Cb0JjQndCm0Jgg0IjQldCb0JXQndCQCivQnNCY0JPQm9CY0J3QptCYINCb0JDQodCb0J4KK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQgtCe0JrQngor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JPQntCg0JDQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JrQntCh0KLQkNCU0JjQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQmNCl0JDQmNCb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCS0JXQoNCQINCU0KAKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQpdCQ0IjQidCV0JLQmNCLINCg0JDQotCe0JzQmNCgCivQnNCY0KXQkNCI0JvQniDQidCQ0JLQngor0JzQmNCl0JDQiNCb0J7QkiDQltCY0JLQkAor0JzQmNCl0JDQiNCb0J7QkiDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0JHQntCT0JTQkNCdCivQnNCY0KXQkNCI0JvQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QkiDQlNCg0JDQk9CQ0J3QkAor0JzQmNCl0JDQiNCb0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JIg0JTQo9Co0JDQnQor0JzQmNCl0JDQiNCb0J7QkiDQmNCS0JDQnQor0JzQmNCl0JDQiNCb0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQmNCl0JDQiNCb0J7QkiDQm9CQ0JfQkNCgCivQnNCY0KXQkNCI0JvQntCSINCJ0JjQidCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QkiDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QkiDQnNCY0JvQntCoCivQnNCY0KXQkNCI0JvQntCSINCc0JjQm9Ce0KDQkNCUCivQnNCY0KXQkNCI0JvQntCSINCc0JjQm9Ce0JLQkNCdCivQnNCY0KXQkNCI0JvQntCSINCc0JjQm9Ce0JLQkNCdCivQnNCY0KXQkNCI0JvQntCSINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQmNCl0JDQiNCb0J7QkiDQndCY0JrQntCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0J7Qm9CT0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QkiDQodCf0JDQodCe0IjQlQor0JzQmNCl0JDQiNCb0J7QkiDQktCV0KDQkAor0JzQmNCl0JDQiNCb0J7QkiDQktCV0KHQldCb0JjQnQor0JzQmNCl0JDQiNCb0J7QkiDQktCY0JTQntCh0JDQkgor0JzQmNCl0JDQiNCb0J7QkiDQl9Ce0KDQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KfQldCU0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JXQidCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JjQktCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCj0KDQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCQ0J3QmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCe0JPQntCJ0KPQkSDQlNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCV0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCg0JXQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQldCg0J3QldCh0KIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCk0KDQkNCK0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JjQm9CVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0JDQodCc0JjQndCQINCU0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0JXQm9CQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCV0JvQldCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0J7QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmtCe0KHQotCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JvQkNCX0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCb0JXQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCb0JXQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0InQo9CR0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JDQoNCT0JjQotCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCL0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JXQotCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQlQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9Cj0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCQ0JTQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JDQlNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCQ0JTQmNCg0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0J7QktCQ0JoKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQntCh0KLQntCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JDQitCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCQ0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JDQktCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCQ0JLQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCb0JDQktCe0InQo9Cf0JrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQnNCY0InQkNCd0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQoNCC0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KDQkdCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCg0JXQotCV0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KDQldCi0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCV0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCV0JLQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCe0IjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiy3QodCj0JHQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQotCj0JPQntCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KPQoNCe0KgKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0JDQodCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQktCV0KDQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCX0J7QoNCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0KHQmtCYINCJ0KPQkdCY0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JDQm9CQ0KfQmtCYINCc0JjQpdCQ0JjQm9CeCivQnNCY0KXQkNCb0JDQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCl0JDQm9CV0KYg0JDQndCT0JXQm9CY0J3QkAor0JzQmNCl0JDQm9CV0KYg0JzQkNCg0JjQiNCQCivQnNCY0KXQkNCb0JXQmiDQmNCS0JDQnQor0JzQmNCl0JDQm9CV0Jog0JzQkNCg0JjQiNCQCivQnNCY0KXQkNCb0JXQndCa0J4g0KHQotCV0JLQkNCdCivQnNCY0KXQkNCb0JjQiyDQn9CV0KLQkNCgCivQnNCY0KXQkNCb0JjQmi3QotCY0KAg0JfQo9CX0JDQndCQCivQnNCY0KXQkNCJINCV0KHQotCV0KAKK9Cc0JjQpdCQ0Ikg0JzQkNCg0JjQiNCQINCU0KAKK9Cc0JjQpdCQ0Ikg0JzQmNCl0JDQiNCb0J4g0JTQoAor0JzQmNCl0JDQiSDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9Cc0JjQpdCQ0Ikg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JDQidCn0JXQktCY0Isg0JDQm9Ce0IjQl9CY0IjQlQor0JzQmNCl0JDQidCn0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQpdCQ0InQp9CY0Isg0JPQntCI0JrQngor0JzQmNCl0JDQidCn0JjQiyDQmNCb0JUKK9Cc0JjQpdCQ0InQp9CY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQidCn0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCJ0KfQmNCLINCb0KPQmtCQCivQnNCY0KXQkNCJ0KfQmNCLINCc0JjQotCQ0KAKK9Cc0JjQpdCQ0InQp9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JjQpdCQ0InQldCSINCW0JXQidCa0J4KK9Cc0JjQpdCQ0InQldCSINCY0JLQkNCdINCU0KAKK9Cc0JjQpdCQ0InQldCSINCh0KLQntCI0JDQnQor0JzQmNCl0JDQidCV0JLQmNCLINCQ0J3QotCe0J0KK9Cc0JjQpdCQ0InQldCS0JjQiyDQldCc0JjQmwor0JzQmNCl0JDQidCV0JLQmNCLINCY0JLQkNCdCivQnNCY0KXQkNCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQidCV0JLQmNCLINCg0KPQltCY0KbQkAor0JzQmNCl0JDQidCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCY0KXQkNCJ0KTQmCDQnNCQ0KDQmNCa0JAKK9Cc0JjQpdCQ0InQmCDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0InQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQpdCQ0InQmNCn0JjQiyDQlNCc0JjQotCQ0KAKK9Cc0JjQpdCQ0InQmNCn0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCl0JDQidCY0KfQmNCLINCh0JjQnNCeCivQnNCY0KXQkNCJ0JjQp9CY0Isg0KLQntCU0JUKK9Cc0JjQpdCQ0InQmNCm0JAg0JDQndCC0JAKK9Cc0JjQpdCQ0InQmNCm0JAg0JHQntCW0J4KK9Cc0JjQpdCQ0InQmNCm0JAg0KbQktCV0KLQmtCeCivQnNCY0KXQkNCJ0JjQptCQINCc0JjQoNCQCivQnNCY0KXQkNCJ0JrQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0InQntCS0KHQmtCYINCU0JDQndCY0JvQngor0JzQmNCl0JDQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCl0JDQm9Ce0JLQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cc0JjQpdCV0Ikg0KTQoNCQ0IrQngor0JzQmNCl0JXQktCmINCY0JLQkNCd0JrQkAor0JzQmNCl0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCl0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCl0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQpdCY0Isg0JzQmNCb0JXQndCQCivQnNCY0KXQmNCLINCg0JjQodCi0J4KK9Cc0JjQpdCY0Isg0KDQmNCh0KLQngor0JzQmNCl0JjQiyDQodCQ0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQpdCY0Isg0JLQldCg0JAKK9Cc0JjQpdCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JjQiyDQktCe0IjQmNCh0JvQkNCS0JrQkAor0JzQmNCl0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KXQm9CY0KYg0J/QldCi0JDQoAor0JzQmNCl0IrQkNCaINCI0J7QkNCa0JjQnAor0JzQmNCl0IrQkNCaINCa0JDQotCY0KbQkAor0JzQmNCl0IrQkNCaINCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JjQpdCK0JDQmiDQnNCV0JvQkNCd0JjQiNCQCivQnNCY0KXQitCQ0Jog0J3QkNCU0JAKK9Cc0JjQpdCK0JDQmiDQn9CV0KLQkNCgCivQnNCY0KXQntCm0Jgg0KTQoNCQ0IrQkAor0JzQmNCl0J7QptCYINCX0JLQntCd0JjQnNCY0KAKK9Cc0JjQpdCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQntCI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0KXQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KXQntCI0JXQktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQpdCe0JvQp9CY0Isg0KHQotCV0JLQmNCm0JAKK9Cc0JjQpdCe0InQldCS0JjQiyDQldCc0JAKK9Cc0JjQpdCe0InQldCS0JjQiyDQnNCY0JvQntCi0JrQkAor0JzQmNCI0JDQpyDQodCb0JDQktCa0J4KK9Cc0JjQiNCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0IjQkNCP0JXQktCY0Isg0IjQntCS0J4KK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCf0JDQndCi0JXQm9CY0IjQkAor0JzQmNCI0JDQmNCb0J7QktCY0Isg0KDQkNCd0JjQodCQ0JIKK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCg0JDQndCa0J4KK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQnNCY0IjQkNCI0JvQntCS0JjQiyDQkNCI0J3QkAor0JzQmNCI0JDQiNCb0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JzQmNCI0JDQm9Cn0JjQiyDQnNCY0JvQkNCdCivQnNCY0IjQkNCb0KfQmNCLINCh0JDQktCQCivQnNCY0IjQkNCb0KfQmNCLINCX0J7QoNCQCivQnNCY0IjQkNCb0JjQptCQINCh0JLQldCi0J7QodCb0JDQkgor0JzQmNCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQnNCY0IjQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JjQiNCQ0KIg0JjQktCQ0J0KK9Cc0JjQiNCQ0KIg0JzQmNCb0JDQndCa0JAKK9Cc0JjQiNCQ0KIg0KDQntCa0J4KK9Cc0JjQiNCQ0KIg0KLQntCc0JjQodCb0JDQkgor0JzQmNCI0JDQotCe0JIg0JbQmNCS0JrQkAor0JzQmNCI0JDQotCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQiNCQ0KLQntCSINCQ0J3QgtCV0JvQmtCQCivQnNCY0IjQkNCi0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQiNCQ0KLQntCSINCU0KDQkNCT0JjQiwor0JzQmNCI0JDQotCe0JIg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQiNCQ0KLQntCSINCY0JLQkNCdCivQnNCY0IjQkNCi0J7QkiDQmNCS0JDQnQor0JzQmNCI0JDQotCe0JIg0IjQntCh0JAKK9Cc0JjQiNCQ0KLQntCSINCa0JDQotCY0KbQkAor0JzQmNCI0JDQotCe0JIg0JvQkNCX0JDQoAor0JzQmNCI0JDQotCe0JIg0InQo9CR0JjQndCa0JAKK9Cc0JjQiNCQ0KLQntCSINCJ0KPQkdCe0JzQmNCgCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQkNCU0JjQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JAKK9Cc0JjQiNCQ0KLQntCSINCc0JjQm9CV0J3QmtCeCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQntCoCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQntCg0JDQlAor0JzQmNCI0JDQotCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQiNCQ0KLQntCSINCc0JjQoNCI0JDQndCQCivQnNCY0IjQkNCi0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JzQmNCI0JDQotCe0JIg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQiNCQ0KLQntCSINCh0JDQktCQCivQnNCY0IjQkNCi0J7QkiDQodCQ0JLQmtCQCivQnNCY0IjQkNCi0J7QkiDQodCb0JDQktCa0J4KK9Cc0JjQiNCQ0KLQntCSINCh0JzQmNCJ0JrQkAor0JzQmNCI0JDQotCe0JIg0KHQotCV0JLQkNCdCivQnNCY0IjQkNCi0J7QkiDQktCY0JTQntCh0JDQktCQCivQnNCY0IjQkNCi0J7QkiDQktCe0IjQmNCdCivQnNCY0IjQkNCi0J7QkiDQl9Cb0JDQotCY0J3QmtCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQgtCj0IjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCC0KPQoNCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCC0KPQoNCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQnNCY0IjQkNCi0J7QktCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkdCe0JbQngor0JzQmNCI0JDQotCe0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQnNCY0IjQkNCi0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQmAor0JzQmNCI0JDQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JjQm9CY0IjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JrQntCh0KLQkAor0JzQmNCI0JDQotCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0IjQkNCi0J7QktCY0Isg0JvQldCb0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQidCj0JHQldCd0JrQngor0JzQmNCI0JDQotCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JDQoNCi0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCQ0KLQngor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQqNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0JvQmtCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0JXQktCV0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0J7QktCeCivQnNCY0IjQkNCi0J7QktCY0Isg0J7QkdCg0JDQlAor0JzQmNCI0JDQotCe0JLQmNCLINCf0JXQoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCI0JDQotCe0JLQmNCLLdCf0KPQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAg0JTQoAor0JzQmNCI0JDQotCe0JLQmNCLINCg0JDQlNCY0KcKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0IjQkNCi0J7QktCY0Isg0KHQmNCc0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCh0KLQkNCd0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQotCe0KjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQktCV0KDQkAor0JzQmNCI0JDQotCe0JLQmNCLINCS0JXQoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JLQmNCUCivQnNCY0IjQkNCi0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JLQntCI0JjQnSDQkNCU0JLQntCa0JDQogor0JzQmNCI0JDQotCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCI0JDQotCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQl9Ce0KDQkAor0JzQmNCI0JDQotCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cc0JjQiNCQ0JLQldCmINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0JLQldCmINCI0J7QktCQ0J0KK9Cc0JjQiNCQ0JLQldCmINCb0KPQlNCS0JjQkwor0JzQmNCI0JDQktCV0KYg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQiNCQ0JLQldCmINCf0JDQiNCQCivQnNCY0IjQkNCS0JXQpiDQl9Ce0KDQkAor0JzQmNCI0JjQiyDQltCV0InQmtCeCivQnNCY0IjQmNCLINCW0JXQidCa0J4KK9Cc0JjQiNCY0Isg0ILQntCg0ILQlQor0JzQmNCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCI0JjQiyDQkNCd0KLQlQor0JzQmNCI0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQiNCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JjQiNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0IjQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQiNCY0Isg0JjQm9CY0IjQkAor0JzQmNCI0JjQiyDQiNCQ0IrQkAor0JzQmNCI0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCI0JjQiyDQnNCY0JvQkNCdCivQnNCY0IjQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQiNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0IjQmNCLINCf0JXQoNCQCivQnNCY0IjQmNCLINCf0JXQotCQ0KAKK9Cc0JjQiNCY0Isg0J/QldCi0JDQoAor0JzQmNCI0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCI0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCI0JjQiyDQodCQ0JLQkAor0JzQmNCI0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JjQiNCY0Isg0KLQmNCd0JrQkAor0JzQmNCI0JjQiyDQktCV0InQmtCeCivQnNCY0IjQmNCLINCS0JXQodCd0JAKK9Cc0JjQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCI0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0IjQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCI0JjQnSDQiNCe0JLQkAor0JzQmNCI0JjQnSDQm9CQ0JfQkNCgCivQnNCY0IjQmNCdINCb0JDQl9CQ0KAKK9Cc0JjQiNCY0J0g0JzQmNCb0JDQnQor0JzQmNCI0JjQnSDQnNCY0JvQldCS0JAKK9Cc0JjQiNCY0J0g0JzQmNCb0JjQptCQCivQnNCY0IjQmNCdINCc0JjQm9Ce0KgKK9Cc0JjQiNCY0J0g0J/QldCi0JDQoAor0JzQmNCI0JjQnSDQn9CV0KLQkNCgCivQnNCY0IjQmNCdINCg0JDQlNCQCivQnNCY0IjQmNCdINCh0JDQktCQCivQnNCY0IjQmNCdINCh0JjQnNCQCivQnNCY0IjQmNCdINCh0KLQldCS0JDQnQor0JzQmNCI0JjQnSDQodCS0JXQotCe0JfQkNCgCivQnNCY0IjQntCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JjQiNCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQiNCe0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCI0J7QktCY0Isg0JbQkNCg0JrQngor0JzQmNCI0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQiNCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQnNCY0IjQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQmNCI0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQiNCj0KfQmNCLINCh0KLQldCS0JDQnQor0JzQmNCI0KPQp9CY0Isg0JLQldCg0JAKK9Cc0JjQiNCj0KfQmNCdINCc0JjQm9Ca0JAKK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQntCR0KDQldCdCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQoNCQ0JTQlQor0JzQmNCI0KPQqNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCi0JjQndCa0JAKK9Cc0JjQmtCo0JAg0JzQmNCb0JDQnQor0JzQmNCa0KjQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0JrQqNCY0Isg0J7QotCe0J0KK9Cc0JjQmtCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JrQkNCo0JjQndCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCa0JDQqNCY0J3QntCS0JjQiyDQodCQ0JLQkAor0JzQmNCa0JDQiyDQnNCY0JvQkNCdCivQnNCY0JrQkNCmINCV0JLQmtCQCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0ILQntCg0ILQlQor0JzQmNCa0JDQm9CQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQmNCS0JDQndCa0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQmNCS0JDQndCa0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQiNCQ0KHQnNCY0J3QkAor0JzQmNCa0JDQm9CQ0KfQmtCYINCc0JjQm9Cj0KLQmNCdCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQn9CQ0JLQm9CVCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0KPQoNCe0KgKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQl9Ce0KDQkNCdCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JfQntCg0JDQnQor0JzQmNCa0JDQnSDQkdCe0KHQmNCJ0JrQkAor0JzQmNCa0JDQnSDQmNCS0JDQnQor0JzQmNCa0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCa0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCa0JDQndCe0JLQmNCLINCY0KDQldCd0JAKK9Cc0JjQmtCQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQnNCY0JrQkNCS0JjQptCQINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JjQmtCVINCV0KHQotCV0KAKK9Cc0JjQmtCV0Kgg0JDQndCU0KDQmNCI0JAKK9Cc0JjQmtCV0Kgg0JXQndCU0KDQlQor0JzQmNCa0JXQqCDQldCi0JXQmwor0JzQmNCa0JXQqCDQnNCV0JvQkNCd0JjQiNCQCivQnNCY0JrQldCoINCc0JjQpdCQ0IkKK9Cc0JjQmtCV0KLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JrQmNCLINCW0JDQoNCa0J4KK9Cc0JjQmtCY0Isg0JbQkNCg0JrQngor0JzQmNCa0JjQiyDQgtCj0KDQkCDQlNCgCivQnNCY0JrQmNCLINCU0JXQodCY0JzQmNCgCivQnNCY0JrQmNCLINCY0JLQkNCdCivQnNCY0JrQmNCLINCI0J7QodCY0J8g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JrQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQmtCY0Isg0JzQkNCa0KHQmNCcCivQnNCY0JrQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQmtCY0Isg0JzQmNCb0JXQndCQCivQnNCY0JrQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCY0JrQmNCLINCc0JjQm9Ca0JAKK9Cc0JjQmtCY0Isg0JzQmNCb0JrQkAor0JzQmNCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JrQmNCLINCe0JvQk9CQCivQnNCY0JrQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQmtCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQmtCY0Isg0KDQkNCU0J7QodCb0JDQktCa0JAKK9Cc0JjQmtCY0Isg0KDQo9CW0JAKK9Cc0JjQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCa0JjQiyDQodCg0JHQntCJ0KPQkQor0JzQmNCa0JjQiyDQodCi0J7QiNCQCivQnNCY0JrQmNCLINCi0J7QlNCe0KAKK9Cc0JjQmtCY0Isg0JLQm9CQ0JTQkNCdCivQnNCY0JrQmNCLINCX0J7QoNCa0JAKK9Cc0JjQmtCY0J0g0J3QkNCU0JAKK9Cc0JjQmtCY0KLQmNCo0JjQnSDQndCQ0JTQkAor0JzQmNCa0JvQldCSINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQmtCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JrQm9CY0Isg0JDQndCQCivQnNCY0JrQm9CY0Isg0KLQldCg0JXQl9CQCivQnNCY0JrQm9Ce0Kgg0JDQndCU0KDQkNCoCivQnNCY0JrQm9Ce0Kgg0JDQndCU0KDQmNCI0JAKK9Cc0JjQmtCb0J7QqCDQkNCd0KLQkNCbCivQnNCY0JrQm9Ce0Kgg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCY0JrQm9Ce0Kgg0IjQkNCd0JrQngor0JzQmNCa0JvQntCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCY0JrQm9Ce0Kgg0IjQo9Cb0JjQiNCQ0J0KK9Cc0JjQmtCb0J7QqCDQndCQ0J3QlNCe0KAg0JTQoCDQm9CV0JrQkNCgCivQnNCY0JrQm9Ce0Kgg0KHQotCV0JLQkNCdCivQnNCY0JrQm9Ce0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCa0JvQntCS0JjQpiDQiNCQ0J0KK9Cc0JjQmtCb0J7QktCY0KYg0JzQmNCb0J7QodCb0JDQkgor0JzQmNCa0J7Qm9CQINCC0KPQoNCQCivQnNCY0JrQntCb0JDQptCYINCb0JXQn9Ce0KHQkNCS0JAKK9Cc0JjQmtCe0JvQldCm0JrQmCDQodCb0JDQktCY0KbQkAor0JzQmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQmtCe0JIg0IjQntCS0JDQndCa0JAKK9Cc0JjQmtCe0JIg0JzQldCi0J7QlNCYINCU0KAg0JvQldCa0JDQoAor0JzQmNCa0J7QkiDQnNCe0JzQmNCgCivQnNCY0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JrQntCS0JjQiyDQgtCj0KDQkAor0JzQmNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JrQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JjQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCY0JrQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JzQmNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQmNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4g0JTQoCDQn9Cg0JDQktCd0JjQmgor0JzQmNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JjQmtCe0JLQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Cc0JjQmtCe0JLQmNCLINCf0JDQktCQCivQnNCY0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCa0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQmtCe0JLQmNCLINCh0KDQldCU0J7QiNCVCivQnNCY0JrQntCS0JjQm9Ce0JLQmNCLINCY0JLQkNCdCivQnNCY0JrQodCQ0KIg0IjQntCW0JXQpAor0JzQmNCa0KPQqCDQkNCd0ILQldCb0JrQkAor0JzQmNCa0KPQqCDQnNCY0JvQmtCQCivQnNCY0JrQo9CoINCc0JjQoNCI0JDQndCQCivQnNCY0JrQo9Cb0JXQodCa0J4g0JTQo9Co0JDQnQor0JzQmNCa0KPQm9CV0KHQmtCeINCh0JDQktCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCa0KPQm9CY0Isg0KjQmNCc0JUKK9Cc0JjQmtCj0JvQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCa0KPQm9CY0Isg0JHQm9CQ0JYKK9Cc0JjQmtCj0JvQmNCLINCV0JTQmNCiCivQnNCY0JrQo9Cb0JjQiyDQmNCS0JDQnQor0JzQmNCa0KPQm9CY0Isg0JjQktCQ0J0KK9Cc0JjQmtCj0JvQmNCLINCY0JLQkAor0JzQmNCa0KPQm9CY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JjQmtCj0JvQmNCLINCb0J7QktCg0JUKK9Cc0JjQmtCj0JvQmNCLINCc0JDQoNCQCivQnNCY0JrQo9Cb0JjQiyDQnNCY0JvQlQor0JzQmNCa0KPQm9CY0Isg0JzQmNCb0JjQiwor0JzQmNCa0KPQm9CY0J3QkNCmINCc0JDQotCY0IjQkAor0JzQmNCa0KPQm9CY0J3QkNCmINCg0JXQndCV0KLQkAor0JzQmNCa0KPQm9CY0J3QkNCmINCh0JvQkNCS0JjQptCQCivQnNCY0JvQp9CY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQp9CY0Isg0IjQntCS0JDQnQor0JzQmNCb0JDQp9CY0Isg0JbQldCJ0JrQngor0JzQmNCb0JDQp9CY0Isg0JHQntCg0JjQktCe0IjQlQor0JzQmNCb0JDQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CQ0KfQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CQ0KfQmNCLINCY0JLQkNCdCivQnNCY0JvQkNCn0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0JDQp9CY0Isg0JzQkNCo0JDQnQor0JzQmNCb0JDQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CQ0KfQmNCLINCh0KDQkdCe0KHQm9CQ0JIKK9Cc0JjQm9CQ0KfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9CQ0KfQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCb0JDQqCDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CQ0Kgg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CQ0KjQldCS0JjQiyDQl9Ce0KDQmtCQCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0JzQmNCL0KPQnQor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Ist0KHQotCQ0J3QntCI0JXQktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCS0KPQmtCe0JzQkNCdCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCX0JvQkNCi0J7QiNCQCivQnNCY0JvQkNCU0JjQiyDQp9CV0JTQkAor0JzQmNCb0JDQlNCY0Isg0JTQntCR0KDQntCc0JjQoAor0JzQmNCb0JDQlNCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JDQlNCY0J3QntCh0JrQmCDQm9CV0JLQmtCeCivQnNCY0JvQkNCU0JjQndCe0JIg0JbQkNCg0JrQngor0JzQmNCb0JDQlNCY0J3QntCSINCW0JjQktCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0JDQlNCY0J3QntCSINCU0JDQndCY0KbQkAor0JzQmNCb0JDQlNCY0J3QntCSINCU0JDQndCY0KbQkAor0JzQmNCb0JDQlNCY0J3QntCSINCU0KPQqNCQ0J3QmtCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JTQo9Co0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCI0J7QptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0IjQntCS0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQiNCe0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0IjQntCS0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0InQo9CR0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JzQkNCg0JjQiNCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JzQmNCb0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQnNCY0JvQldCd0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9Ce0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0J3QkNCU0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQndCe0JLQkNCaCivQnNCY0JvQkNCU0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCh0JvQkNCS0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0KHQoNCR0JjQndCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQkNCU0JjQndCe0JIg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0JDQlNCY0J3QntCSINCi0JjQpdCe0JzQmNCgCivQnNCY0JvQkNCU0JjQndCe0JIg0JLQldCh0J3QkAor0JzQmNCb0JDQlNCY0J3QntCSINCS0IjQldCg0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JbQmNCS0JDQlNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQkNCc0JjQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCY0JLQndCQCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JUKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KLQntCU0JUKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQm9CQ0Jog0ILQntCg0ILQlQor0JzQmNCb0JDQmiDQlNCQ0KDQmNCd0JrQkAor0JzQmNCb0JDQmiDQlNCj0KjQkNCdCivQnNCY0JvQkNCaINCI0JXQm9CV0J3QkAor0JzQmNCb0JDQmiDQiNCe0JLQkNCdCivQnNCY0JvQkNCaINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0Jog0JrQkNCi0JjQptCQCivQnNCY0JvQkNCaINCb0JDQl9CQ0KAKK9Cc0JjQm9CQ0Jog0JzQmNCb0JDQnQor0JzQmNCb0JDQmiDQnNCY0JvQkNCdCivQnNCY0JvQkNCaINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQkNCaINCc0JjQm9Ce0KgKK9Cc0JjQm9CQ0Jog0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JDQmiDQodCQ0JLQkAor0JzQmNCb0JDQmtCe0JIg0IjQldCb0JXQndCQINCU0KAg0J/QoNCe0KQKK9Cc0JjQm9CQ0JrQntCSINCJ0KPQkdCY0KbQkCDQlNCgCivQnNCY0JvQkNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQnNCY0JvQkNCa0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JjQm9CQ0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQmNCb0JDQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCb0JDQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JDQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9Cc0JjQm9CQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQkNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQmNCb0JDQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0JDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0JvQkNCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQotCV0J7QlNCe0KAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQkNCa0J7QktCY0Isg0JLQntCI0J4KK9Cc0JjQm9CQ0JrQntCS0JjQiyDQktCj0JrQmNCm0JAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQkNCd0JrQniDQodCb0JDQktCa0J4KK9Cc0JjQm9CQ0J3QmtCe0JIg0JbQmNCS0JAKK9Cc0JjQm9CQ0J3QmtCe0JIg0JbQmNCS0JAKK9Cc0JjQm9CQ0J3QmtCe0JIg0ILQntCg0ILQlQor0JzQmNCb0JDQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CQ0J3QmtCe0JIg0KbQktCV0KLQkAor0JzQmNCb0JDQndCa0J7QkiDQlNCj0KjQkNCdCivQnNCY0JvQkNCd0JrQntCSINCY0JLQkNCdCivQnNCY0JvQkNCd0JrQntCSINCI0JXQm9CV0J3QkAor0JzQmNCb0JDQndCa0J7QkiDQiNCj0JvQmNCI0JDQndCQCivQnNCY0JvQkNCd0JrQntCSINCb0JDQl9CQ0KAKK9Cc0JjQm9CQ0J3QmtCe0JIg0JzQkNCg0JrQngor0JzQmNCb0JDQndCa0J7QkiDQnNCY0JvQldCd0JrQngor0JzQmNCb0JDQndCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0JzQmNCb0JDQndCa0J7QkiDQnNCY0JvQmtCeCivQnNCY0JvQkNCd0JrQntCSINCh0JvQkNCS0JjQnNCY0KAKK9Cc0JjQm9CQ0J3QmtCe0JIg0KHQntCk0JjQiNCQCivQnNCY0JvQkNCd0JrQntCSINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JjQm9CQ0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQkNCd0JAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLLdCm0J7QmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQmNCb0JjQndCa0JAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCX0J7QoNCQCivQnNCY0JvQkNCd0J7QkiDQkNCd0JjQptCQCivQnNCY0JvQkNCd0J7QkiDQkNCd0JrQkAor0JzQmNCb0JDQndCe0JIg0JHQntCT0JTQkNCdCivQnNCY0JvQkNCd0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JAKK9Cc0JjQm9CQ0J3QntCSINCU0J7QkdCg0JjQktCe0IgKK9Cc0JjQm9CQ0J3QntCSINCI0JXQm9CY0KbQkAor0JzQmNCb0JDQndCe0JIg0InQo9CR0JjQqNCQCivQnNCY0JvQkNCd0J7QkiDQnNCY0JvQkNCdCivQnNCY0JvQkNCd0J7QkiDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JDQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9CQ0J3QntCSINCc0JvQkNCU0JXQnQor0JzQmNCb0JDQndCe0JIg0J/QldCg0KHQmNCU0JAKK9Cc0JjQm9CQ0J3QntCSINCg0JDQlNCY0JLQntCICivQnNCY0JvQkNCd0J7QkiDQodCQ0JLQmtCQCivQnNCY0JvQkNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQkNCd0J7QkiDQktCj0JrQntCh0JDQktCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCY0JvQkNCd0J7QktCY0Isg0JbQmNCS0J7QotCY0IjQlQor0JzQmNCb0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeINCU0KAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQkNCc0IjQkNCd0JrQkAor0JzQmNCb0JDQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQntCd0JrQkAor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQoNCQ0JPQngor0JzQmNCb0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQkNCd0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCQ0KDQotCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCl0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0JDQndCe0JLQmNCLINCd0JDQlNCQCivQnNCY0JvQkNCd0J7QktCY0Ist0J/QldCi0KDQkNCo0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQodCQ0KjQkAor0JzQmNCb0JDQndCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JzQmNCb0JDQndCe0JLQmNCLINCS0JjQmtCi0J7QoNCY0IjQkAor0JzQmNCb0JDQndCe0JLQmNCLINCS0JjQotCa0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCb0JDQndCe0JLQmNCLINCS0KPQiNCeCivQnNCY0JvQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0JzQmNCb0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQm9CQ0KDQmNCLINCY0JLQkNCdCivQnNCY0JvQkNCi0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQnNCY0JvQkNCi0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JjQm9CQ0KLQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQldCo0JXQkiDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CV0KjQldCS0JjQiyDQntCR0KDQkNCUCivQnNCY0JvQldCmINCU0J7QoNCe0KLQldCQCivQnNCY0JvQldCmINCY0JvQntCd0JrQkAor0JzQmNCb0JXQmCDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQldCYINCI0JDQndCe0KgKK9Cc0JjQm9CV0Jgg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0JXQmtCo0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9CV0JrQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CV0JrQmNCLINCc0JjQm9Ce0JzQmNCgCivQnNCY0JvQldCa0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9CV0JrQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JXQmtCY0Isg0KPQoNCe0KgKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQldCd0JrQntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLLdCQ0J3QotCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0JXQndCa0J7QktCY0Ist0JHQiNCV0JvQkNCI0JDQpiDQnNCY0JvQkNCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCoCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQldCg0JbQmNCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCY0JvQntCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JjQoNCV0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQiNCV0JLQotCeCivQnNCY0JvQldCd0JrQntCS0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQiNCj0KHQotCY0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCa0KDQodCi0JDQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQldCd0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCb0JXQndCa0J7QktCY0Isg0J3QmNCL0JjQpNCe0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCf0JDQo9CdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0JXQndCa0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCS0JXQodCV0JvQmNCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQl9Ce0KDQmtCQCivQnNCY0JvQldCd0JrQntCS0KHQmtCYINCR0JvQkNCT0J7QiNCVCivQnNCY0JvQldCd0JrQntCS0KHQmtCYINCc0JjQm9CY0KbQkAor0JzQmNCb0JXQndCe0JLQmNCLINCW0JjQktCQCivQnNCY0JvQldCd0J7QktCY0Ist0JHQldCa0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JXQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQldCd0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9CV0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0JXQndCi0JjQiNCV0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCY0JvQldCd0KLQmNCI0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JjQm9CV0KAg0JHQkNCg0JHQkNCg0JAKK9Cc0JjQm9CV0KAg0JXQoNCW0JXQkdCV0KIKK9Cc0JjQm9CV0KAg0KTQoNCQ0IrQkAor0JzQmNCb0JXQoCDQmNCc0KDQlSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQm9CV0KAg0JjQktCQ0J3QmtCQCivQnNCY0JvQldCgINCI0JXQm9CV0J3QkAor0JzQmNCb0JXQoCDQiNCV0JvQmNCm0JAKK9Cc0JjQm9CV0KAg0JrQkNCg0JvQngor0JzQmNCb0JXQoCDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9CV0KAg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9CV0KAg0J7QotCe0JrQkNCgCivQnNCY0JvQldCgINCX0JvQkNCi0JrQngor0JzQmNCb0JXQodCa0Jgg0JDQotCQ0J3QkNCh0JjQiNCVCivQnNCY0JvQldCi0JAg0J3QmNCa0J7Qm9CQCivQnNCY0JvQldCi0JDQqNCa0Jgg0JHQntCg0JjQktCe0IgKK9Cc0JjQm9CV0KLQkNCo0JrQmCDQnNCY0JvQlQor0JzQmNCb0JXQotCY0Isg0JbQmNCS0JrQngor0JzQmNCb0JXQotCY0Isg0JbQmNCS0J7QotCQCivQnNCY0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQldCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCb0JXQotCY0Isg0JDQndCQCivQnNCY0JvQldCi0JjQiyDQkdCe0JbQkAor0JzQmNCb0JXQotCY0Isg0JHQntCg0JjQqNCQCivQnNCY0JvQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CV0KLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cc0JjQm9CV0KLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCi0JjQiyDQk9Ce0IjQmtCeCivQnNCY0JvQldCi0JjQiyDQk9CS0J7Ql9CU0JXQnQor0JzQmNCb0JXQotCY0Isg0JjQm9CY0IjQkAor0JzQmNCb0JXQotCY0Isg0JjQktCY0KbQkAor0JzQmNCb0JXQotCY0Isg0InQo9CR0JjQptCQCivQnNCY0JvQldCi0JjQiyDQidCj0JHQmNCh0JDQkgor0JzQmNCb0JXQotCY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQldCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQmNCb0JXQotCY0Isg0JzQmNCb0J7QiNCVCivQnNCY0JvQldCi0JjQiyDQnNCY0KLQkAor0JzQmNCb0JXQotCY0Isg0J3QkNCU0JAKK9Cc0JjQm9CV0KLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0JXQotCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9CV0KLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CV0KLQmNCLINCg0JDQlNCVCivQnNCY0JvQldCi0JjQiyDQoNCQ0JTQntCoCivQnNCY0JvQldCi0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQmNCb0JXQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JXQotCY0Isg0KDQkNCd0JrQngor0JzQmNCb0JXQotCY0Isg0KHQldCS0JXQoNCY0J3QkAor0JzQmNCb0JXQotCY0Isg0KHQm9CQ0JLQmtCeINCU0KAg0JvQldCa0JDQoAor0JzQmNCb0JXQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQldCi0JjQiyDQodCb0JDQktCe0InQo9CRCivQnNCY0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQldCi0JjQiyDQodCe0IrQkAor0JzQmNCb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQldCi0JjQiyDQktCV0JvQlQor0JzQmNCb0JXQotCY0Isg0JLQldCb0JjQkdCe0KAKK9Cc0JjQm9CV0KLQmNCLINCS0JXQm9CY0JHQntCgCivQnNCY0JvQldCi0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQmNCb0JXQotCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JzQmNCb0JXQotCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JjQm9CV0KLQmNCm0JrQmCDQoNCQ0JTQkAor0JzQmNCb0JXQotCY0KbQmtCYINCX0J7QoNCa0JAKK9Cc0JjQm9CV0KLQmNCdINCU0JDQndCQCivQnNCY0JvQldCi0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JXQotCY0J0g0J3QmNCa0J7Qm9CQCivQnNCY0JvQldCi0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JzQmNCb0JXQotCY0J0g0KHQktCV0KLQntCX0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Cc0JjQm9CV0KLQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CV0KPQodCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CV0KPQodCd0JjQiyDQnNCQ0KDQmtCeCivQnNCY0JvQldCj0KHQndCY0Isg0J3QkNCU0JAKK9Cc0JjQm9CV0KPQodCd0JjQiyDQndCQ0JTQkAor0JzQmNCb0JXQo9Ch0J3QmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CV0JIg0J/QldCi0JDQoAor0JzQmNCb0JXQktCh0JrQmCDQgtCe0KDQgtCVCivQnNCY0JvQpdCQ0J3QoSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0KfQldCS0JjQiyDQgtCj0KDQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCQ0KDQkNCd0JrQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JjQp9CV0JLQmNCLINCU0KDQkNCT0JjQitCQCivQnNCY0JvQmNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0KfQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQmNCn0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CY0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CY0KfQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQmNCb0JjQp9CV0JLQmNCLINCc0JjQm9Ca0JDQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JjQm9CY0KfQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JjQm9CY0KfQldCS0JjQiyDQn9CQ0JLQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCf0JXQoNCeCivQnNCY0JvQmNCn0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0JjQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0KfQmNCLINCW0JDQoNCa0J4KK9Cc0JjQm9CY0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQmNCn0JjQiyDQkNCd0JAKK9Cc0JjQm9CY0KfQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCY0JvQmNCn0JjQiyDQkNCd0JrQkAor0JzQmNCb0JjQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCn0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0JjQp9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JjQp9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQp9CY0Isg0IjQldCb0JjQptCQCivQnNCY0JvQmNCn0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0JjQp9CY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQp9CY0Isg0JrQkNCi0JjQptCQCivQnNCY0JvQmNCn0JjQiyDQidCj0JHQmNCd0JrQkAor0JzQmNCb0JjQp9CY0Isg0JzQkNCg0JjQndCa0J4KK9Cc0JjQm9CY0KfQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0JvQmNCn0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQmNCn0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JjQp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9CY0KfQmNCLINCg0JDQiNCa0J4KK9Cc0JjQm9CY0KfQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQp9CY0Isg0KLQmNCb0JrQkAor0JzQmNCb0JjQp9CY0Isg0JLQkNCh0JAKK9Cc0JjQm9CY0KjQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0JvQmNCo0JjQiyDQndCV0JHQntCI0KjQkAor0JzQmNCb0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCb0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCb0JjQiyDQltCY0JrQkAor0JzQmNCb0JjQiyDQltCY0JLQmtCeCivQnNCY0JvQmNCLINCW0JjQktCe0JzQmNCgCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCj0KDQmNCm0JAKK9Cc0JjQm9CY0Isg0JDQlNCY0JvQkAor0JzQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCb0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQnNCY0JvQmNCLINCR0J7QltCY0JTQkNCgINCU0KAKK9Cc0JjQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CY0Isg0JHQntCW0J4KK9Cc0JjQm9CY0Isg0JHQntCT0JTQkNCdCivQnNCY0JvQmNCLINCR0J7QiNCQ0J3QkAor0JzQmNCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCY0JvQmNCLINCR0J7QoNCY0JLQntCICivQnNCY0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQmNCLINCR0KDQkNCd0JrQkAor0JzQmNCb0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JzQmNCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JjQm9CY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cc0JjQm9CY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cc0JjQm9CY0Isg0JTQkNCd0JjQm9CeCivQnNCY0JvQmNCLINCU0JDQoNCQCivQnNCY0JvQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cc0JjQm9CY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQm9CY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQm9CY0Isg0JXQktCQCivQnNCY0JvQmNCLINCV0JLQkAor0JzQmNCb0JjQiyDQldCS0JjQptCQCivQnNCY0JvQmNCLINCk0JXQoNCV0J3Qpgor0JzQmNCb0JjQiyDQk9CQ0JLQoNCQCivQnNCY0JvQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9CY0Ist0IjQkNCT0J7QlNCY0J3QodCa0Jgg0JzQmNCb0JDQnQor0JzQmNCb0JjQiyDQiNCQ0J3QmtCeCivQnNCY0JvQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCb0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQm9CY0Isg0IjQldCb0JrQkAor0JzQmNCb0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQiyDQiNCe0JLQkAor0JzQmNCb0JjQiyDQiNCe0JLQngor0JzQmNCb0JjQiyDQiNCe0JLQngor0JzQmNCb0JjQiyDQiNCj0JvQmtCQCivQnNCY0JvQmNCLINCa0JDQotCY0KbQkAor0JzQmNCb0JjQiyDQmtCg0KHQotCeCivQnNCY0JvQmNCLINCa0KHQldCd0JjQiNCQCivQnNCY0JvQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0Isg0InQmNCJ0JDQndCQCivQnNCY0JvQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCb0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQm9CY0Isg0InQo9CR0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCLINCc0JDQoNCQCivQnNCY0JvQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQmNCLINCc0JjQm9CQ0J3QmtCQCivQnNCY0JvQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCb0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CY0Isg0JzQmNCb0J7QodCQ0JIKK9Cc0JjQm9CY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JjQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9CY0Isg0JzQmNCg0IjQkNCd0JAg0JTQmNCf0Jsg0J7QldCmCivQnNCY0JvQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0JzQmNCi0JAKK9Cc0JjQm9CY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQmNCLINCd0JDQlNCQCivQnNCY0JvQmNCLINCd0JXQlNCV0InQmtCeCivQnNCY0JvQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9CY0Isg0J3QntCS0JDQmgor0JzQmNCb0JjQiyDQndCe0JLQkNCaCivQnNCY0JvQmNCLINCf0JDQndCi0JAKK9Cc0JjQm9CY0Isg0J/QkNCS0JvQlQor0JzQmNCb0JjQiyDQn9CV0KDQkAor0JzQmNCb0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CY0Isg0J/QoNCe0JrQkAor0JzQmNCb0JjQiyDQoNCQ0JTQkAor0JzQmNCb0JjQiyDQoNCQ0JTQlQor0JzQmNCb0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCY0JvQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQmNCLINCg0JDQndCa0J4KK9Cc0JjQm9CY0Isg0KDQo9CW0JAKK9Cc0JjQm9CY0Isg0KHQkNCd0JTQoNCQCivQnNCY0JvQmNCLINCh0JDQktCQCivQnNCY0JvQmNCLINCh0JvQkNCS0JjQptCQCivQnNCY0JvQmNCLINCh0JvQkNCS0JjQptCQCivQnNCY0JvQmNCLINCh0JvQkNCS0JrQkAor0JzQmNCb0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CY0Isg0KHQm9CQ0JLQo9CICivQnNCY0JvQmNCLINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9CY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCY0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0JjQiyDQotCV0J7QlNCe0KDQkAor0JzQmNCb0JjQiyDQotCe0JTQntCgCivQnNCY0JvQmNCLINCi0J7QlNCe0KAKK9Cc0JjQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0JvQmNCLINCj0KDQntCoCivQnNCY0JvQmNCLINCS0JDQodCQCivQnNCY0JvQmNCLINCS0JXQm9CY0J3QmtCQCivQnNCY0JvQmNCLINCS0JXQoNCQCivQnNCY0JvQmNCLINCS0JXQoNCQCivQnNCY0JvQmNCLINCS0JXQoNCY0KbQkAor0JzQmNCb0JjQiyDQktCb0JDQlNCY0KbQkAor0JzQmNCb0JjQiyDQktCb0JDQlNCeCivQnNCY0JvQmNCLINCS0KPQmtCY0KbQkAor0JzQmNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9CY0Isg0JfQntCg0JDQnQor0JzQmNCb0JjQiyDQl9Ce0KDQkAor0JzQmNCb0JjQi9CV0JIg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0JjQi9CV0JIg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCL0JXQkiDQodCb0JDQktCa0J4KK9Cc0JjQm9CY0IvQldCSINCS0JDQodCY0JvQmNCI0JUKK9Cc0JjQm9CY0IvQldCSINCS0JjQmtCV0J3QotCY0IjQlQor0JzQmNCb0JjQi9CV0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCY0JvQmNCL0JXQktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQi9CV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0IvQldCS0JjQiyDQgtCj0KDQkNCCCivQnNCY0JvQmNCL0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQkdCe0KDQmNCo0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0JjQi9CV0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQmtCh0JXQndCY0IjQkCDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQnNCY0JvQmNCL0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCQ0KDQmtCeCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JjQi9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JjQi9CV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQndCQ0KLQkNCo0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQn9CQ0JLQm9CVCivQnNCY0JvQmNCL0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQi9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0JvQmNCL0JXQktCY0Isg0KDQkNCI0JrQngor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQkNCC0JDQndCQCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCf0JDQodCeCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQotCQ0J3QkAor0JzQmNCb0JjQi9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0JjQi9CV0JLQmNCLINCS0JXQm9CY0KjQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCS0JXQoNCe0InQo9CRCivQnNCY0JvQmNCL0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQmNCL0JXQktCY0Isg0JLQo9Ca0J7QnNCY0KAKK9Cc0JjQm9CY0KYg0JrQkNCg0J7QiQor0JzQmNCb0JjQlNCg0JDQkyDQmtCg0KHQotCeCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0JjQlNCg0JDQk9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCI0JDQqC3Qn9CQ0JLQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCb0JjQiNCQ0KjQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0JzQmNCb0JjQiNCQ0KjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQmNCI0JDQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQmNCI0JXQktCY0Isg0ILQo9Cg0JDQggor0JzQmNCb0JjQmtCY0Isg0JTQoNCQ0JPQntCI0JUKK9Cc0JjQm9CY0JrQmNCLINCh0JjQnNCQCivQnNCY0JvQmNCdINCW0JjQktCQ0J0KK9Cc0JjQm9CY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQmNCdINCU0KPQqNCQ0J0KK9Cc0JjQm9CY0J0g0JTQo9Co0JDQnQor0JzQmNCb0JjQnSDQmNCS0JDQnQor0JzQmNCb0JjQnSDQiNCe0JLQkNCdCivQnNCY0JvQmNCdINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQmNCdINCc0JjQm9CY0KbQkAor0JzQmNCb0JjQnSDQnNCe0JzQmNCgCivQnNCY0JvQmNCdINCg0JDQlNCY0JLQntCIINCU0KAKK9Cc0JjQm9CY0J0g0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9CY0J0g0KHQndCV0JbQkNCd0JAKK9Cc0JjQm9CY0J0g0KHQotCV0JLQkNCdCivQnNCY0JvQmNCdINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0JjQnSDQktCe0IjQmNCh0JvQkNCSINCd0J7QktCY0J3QkNCgCivQnNCY0JvQmNCdINCX0JTQoNCQ0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0JjQnSDQl9Ce0KDQmNCm0JAKK9Cc0JjQm9CY0J3Qp9CY0Isg0KfQkNCh0JvQkNCSCivQnNCY0JvQmNCd0KfQmNCLINCh0KLQntCI0JDQnQor0JzQmNCb0JjQndCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9CY0J3QmNCLINCg0JDQiNCa0J4KK9Cc0JjQm9CY0J3QmtCe0JIg0JbQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQltCY0JLQntCI0JjQnQor0JzQmNCb0JjQndCa0J7QkiDQkNCd0ILQldCb0JrQkAor0JzQmNCb0JjQndCa0J7QkiDQkdCe0JbQkAor0JzQmNCb0JjQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQmNCd0JrQntCSINCR0KDQkNCd0JrQngor0JzQmNCb0JjQndCa0J7QkiDQlNCQ0J3QmNCb0J4KK9Cc0JjQm9CY0J3QmtCe0JIg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQiNCj0JvQmtCQCivQnNCY0JvQmNCd0JrQntCSINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0J3QmtCe0JIg0InQo9CR0JjQptCQCivQnNCY0JvQmNCd0JrQntCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0J3QmtCe0JIg0JzQmNCb0JjQptCQCivQnNCY0JvQmNCd0JrQntCSINCd0JXQndCQ0JQKK9Cc0JjQm9CY0J3QmtCe0JIg0J3QldCd0JDQlAor0JzQmNCb0JjQndCa0J7QkiDQndCY0JrQntCb0JAKK9Cc0JjQm9CY0J3QmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQktCV0KDQkAor0JzQmNCb0JjQndCa0J7QkiDQktCV0KHQldCb0JjQnQor0JzQmNCb0JjQndCa0J7QkiDQktCb0JDQiNCa0J4KK9Cc0JjQm9CY0J3QmtCe0JIg0JfQntCg0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0JHQntCI0J4KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JXQotCV0JvQmtCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCY0JLQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JDQoNCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JjQm9CY0IsKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0J3QntCS0JDQmgor0JzQmNCb0JjQndCa0J7QktCY0Isg0J/QkNCd0KLQkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCc0JjQidCa0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCh0KDQldCi0J4KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCS0JjQlNCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCS0J7QiNCQCivQnNCY0JvQmNCd0J7QkiDQk9CQ0JLQoNCQCivQnNCY0JvQmNCd0J7QkiDQiNCV0JvQldCd0JrQngor0JzQmNCb0JjQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CY0J3QntCSINCc0JjQoNCI0JDQndCQCivQnNCY0JvQmNCd0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQmNCd0J7QkiDQndCV0JLQldCd0JAKK9Cc0JjQm9CY0J3QntCSINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9CY0J3QntCSINCh0JvQkNCS0JrQngor0JzQmNCb0JjQndCe0JIg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCd0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQnNCY0JvQmNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQmNCb0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQnNCY0JvQmNCd0J7QktCY0Isg0JvQkNCX0J4KK9Cc0JjQm9CY0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9CY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0JvQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JzQmNCb0JjQndCe0JLQmNCLINCh0JDQktCQCivQnNCY0JvQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCh0KLQldCS0JAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQotCY0JzQkAor0JzQmNCb0JjQndCe0JLQmNCLINCS0IjQldCa0J7QodCb0JDQkgor0JzQmNCb0JjQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JjQndCh0JrQmCDQkNCg0J/QkNCUCivQnNCY0JvQmNCd0KHQmtCYINCV0KDQltCV0JHQldCiCivQnNCY0JvQmNCd0KHQmtCYINCT0JDQkdCe0KAKK9Cc0JjQm9CY0J3QodCa0Jgg0JPQntCg0JTQkNCd0JAKK9Cc0JjQm9CY0J3QodCa0Jgg0IjQldCb0JXQndCQCivQnNCY0JvQmNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0JzQmNCb0JjQndCh0JrQmCDQm9CQ0JTQmNCh0JvQkNCSCivQnNCY0JvQmNCd0KHQmtCYINCc0JjQpdCQ0JjQm9CeCivQnNCY0JvQmNCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQndCh0JrQmCDQotCV0J7QlNCe0KAKK9Cc0JjQm9CY0J3QodCa0Jgg0JLQmNCa0KLQntCgCivQnNCY0JvQmNCd0KHQmtCYINCS0JjQmtCi0J7QoAor0JzQmNCb0JjQndCh0JrQmCDQl9Ce0JvQotCQ0J0KK9Cc0JjQm9CY0KHQkNCS0JDQpiDQltCY0JLQkNCdCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgINCf0KDQntCkCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQoNCn0JXQotCQCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQmNCS0J7QiNCn0JXQkiDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0JvQmNCS0J7QiNCn0JXQkiDQodCi0JXQktCQ0J0KK9Cc0JjQm9CY0JLQntCI0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JjQktCe0IjQqNCQINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0JLQntCI0KjQmNCdINCI0J7QktCQ0J0KK9Cc0JjQm9CY0JLQntCI0KjQmNCdINCf0JDQiNCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0JDQndCY0KbQkAor0JzQmNCb0JjQktCe0IjQldCSINCR0J7QoNCY0JLQntCICivQnNCY0JvQmNCS0J7QiNCV0JIg0JPQoNCQ0JTQntCI0JUKK9Cc0JjQm9CY0JLQntCI0JXQkiDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0JjQktCe0IjQldCSINCa0J7QndCh0KLQkNCd0KLQmNCdCivQnNCY0JvQmNCS0J7QiNCV0JIg0JvQo9Ca0JAKK9Cc0JjQm9CY0JLQntCI0JXQkiDQnNCY0KXQkNCI0JvQngor0JzQmNCb0JjQktCe0IjQldCSINCc0JjQm9CQ0J3QkAor0JzQmNCb0JjQktCe0IjQldCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQkiDQnNCY0JvQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JIg0JzQmNCb0J7QqAor0JzQmNCb0JjQktCe0IjQldCSINCc0JvQkNCU0JXQnQor0JzQmNCb0JjQktCe0IjQldCSINCd0JDQlNCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0J/QkNCS0JvQlQor0JzQmNCb0JjQktCe0IjQldCSINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQktCe0IjQldCSINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQktCe0IjQldCSINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQltCY0JLQmtCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQkdCj0JTQmNCh0JvQkNCSCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0IjQkNCT0J7QlNCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQkNCg0JjQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQoNCQ0JTQntCI0JUKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQodCQ0JLQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0KHQm9CQ0JLQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JLQntCI0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQktCj0KfQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQl9Ce0KDQkAor0JzQmNCJ0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQidCQ0J3QmNCLINCW0JjQktCa0JAKK9Cc0JjQidCQ0J3QmNCLINCU0KDQkNCT0JDQnQor0JzQmNCJ0JDQndCY0Isg0JTQo9Co0JDQnQor0JzQmNCJ0JDQndCY0Isg0IjQntCS0JDQnQor0JzQmNCJ0JDQndCY0Isg0JzQkNCg0JrQngor0JzQmNCJ0JDQndCY0Isg0J3QntCS0JDQmgor0JzQmNCJ0JDQndCY0Isg0J7QkdCg0JDQlAor0JzQmNCJ0JDQndCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCJ0JDQndCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0IjQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0InQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0InQkNCd0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQidCQ0J3QmNCLINCS0KPQmtCe0KLQkAor0JzQmNCJ0JDQndCe0JLQmNCLINCW0JXQidCa0J4KK9Cc0JjQidCQ0J3QntCS0JjQiyDQkNCU0JDQnAor0JzQmNCJ0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCJ0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQidCQ0J3QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cc0JjQidCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0InQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JjQidCQ0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQidCQ0J3QntCS0JjQiyDQktCY0JvQnNCQCivQnNCY0InQkNCd0KHQmtCYINCR0J7QqNCa0J4KK9Cc0JjQidCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JzQmNCJ0JDQndCh0JrQmCDQl9Ce0KDQmNCm0JAKK9Cc0JjQidCQ0J3QodCa0Jgg0JfQntCg0JjQptCQCivQnNCY0InQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCJ0JDQotCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JzQmNCJ0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQidCQ0KLQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQmNCJ0JDQotCe0JLQmNCLINCS0JXQoNCQCivQnNCY0InQldCo0JjQiyDQndCV0J3QkNCUCivQnNCY0InQldCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCJ0JXQktCY0Isg0JbQmNCS0JrQngor0JzQmNCJ0JXQktCY0Isg0JDQlNCQ0JwKK9Cc0JjQidCV0JLQmNCLINCQ0J3QmtCQCivQnNCY0InQldCS0JjQiyDQkdCe0JPQlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0InQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0InQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0InQldCS0JjQiyDQk9CQ0JLQoNCY0JvQngor0JzQmNCJ0JXQktCY0Isg0IjQkNCK0JAKK9Cc0JjQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQidCV0JLQmNCLINCI0J7QktCeCivQnNCY0InQldCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0InQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQidCV0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQnNCY0InQldCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JzQmNCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQidCV0JLQmNCLINCd0JDQotCQ0KjQkAor0JzQmNCJ0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQidCV0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JjQidCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0InQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQidCV0JLQmNCLINCS0JXQoNCY0KbQkAor0JzQmNCJ0JXQktCY0Isg0JLQldCg0JjQptCQCivQnNCY0InQldCS0JjQiyDQktCY0J3QmtCeCivQnNCY0InQmNCLINCh0JvQkNCS0JrQngor0JzQmNCJ0JrQntCSINCC0KPQoNCY0KbQkAor0JzQmNCJ0JrQntCS0JDQpiDQkdCe0JPQntCh0JDQkgor0JzQmNCJ0JrQntCS0JDQpiDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0InQmtCe0JLQkNCmINCf0JXQotCQ0KAKK9Cc0JjQidCa0J7QktCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQidCa0J7QktCQ0KYg0KLQkNCi0IjQkNCd0JAKK9Cc0JjQidCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQidCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0InQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQidCa0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cc0JjQidCa0J7QktCY0Isg0JTQntCR0KDQmNCb0J4KK9Cc0JjQidCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0InQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCY0InQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQidCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0InQmtCe0JLQmNCLINCb0JXQndCa0JUKK9Cc0JjQidCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0InQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCJ0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQidCa0J7QktCY0Isg0InQo9Cf0KfQlQor0JzQmNCJ0JrQntCS0JjQiyDQnNCQ0KDQkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0IvQkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0InQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCg0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCi0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0InQmtCe0JLQmNCLINCc0J7QiNCh0JAKK9Cc0JjQidCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQINCU0KAg0JjQndCTCivQnNCY0InQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCJ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQidCa0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cc0JjQidCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCJ0JrQntCS0JjQiyDQoNCQ0KXQmNCJ0JAKK9Cc0JjQidCa0J7QktCY0Isg0KDQntCh0JAKK9Cc0JjQidCa0J7QktCY0Isg0KDQntCh0JAKK9Cc0JjQidCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQodCi0JDQnNCV0J3QmtCeINCU0KAg0JvQldCa0JDQoAor0JzQmNCJ0JrQntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQnNCY0InQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0InQmtCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQnNCY0InQntCI0JrQntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0JzQmNCJ0J7QiNCa0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JzQmNCJ0J7QiNCa0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQidCe0IjQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCJ0J7QiNCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCY0InQo9CoINCC0KPQoNCeCivQnNCY0InQo9CoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0InQo9CoINCR0KDQkNCd0JrQngor0JzQmNCJ0KPQqCDQkdCg0JDQndCa0J4KK9Cc0JjQidCj0Kgg0JTQoNCQ0JPQngor0JzQmNCJ0KPQqCDQlNCj0KjQkNCd0JrQkAor0JzQmNCJ0KPQqCDQlNCj0KjQkNCdCivQnNCY0InQo9CoINCV0JLQkAor0JzQmNCJ0KPQqCDQiNCe0JLQkNCdINCU0KAKK9Cc0JjQidCj0Kgg0IjQntCS0JDQnQor0JzQmNCJ0KPQqCDQiNCe0JLQkNCdCivQnNCY0InQo9CoINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JjQidCj0Kgg0InQmNCJ0JDQndCQCivQnNCY0InQo9CoINCJ0KPQkdCY0KbQkAor0JzQmNCJ0KPQqCDQnNCQ0KDQmNCI0JAKK9Cc0JjQidCj0Kgg0JzQkNCg0JjQiNCQCivQnNCY0InQo9CoINCc0JjQm9CQ0J0KK9Cc0JjQidCj0Kgg0JzQmNCb0JUKK9Cc0JjQidCj0Kgg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQidCj0Kgg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQidCj0Kgg0J3QmNCa0J7Qm9CQCivQnNCY0InQo9CoINCf0JXQotCQ0KAKK9Cc0JjQm9Ca0J7QkiDQgtCj0KDQgtCY0J3QmtCQCivQnNCY0JvQmtCe0JIg0ILQo9Cg0ILQmNCd0JrQkAor0JzQmNCb0JrQntCSINCQ0KbQkAor0JzQmNCb0JrQntCSINCU0KDQkNCT0JDQnSDQlNCgCivQnNCY0JvQmtCe0JIg0JTQoNCQ0JPQmNCK0JAKK9Cc0JjQm9Ca0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0JrQntCSINCT0J7QoNCU0JDQndCQCivQnNCY0JvQmtCe0JIg0IjQkNCh0JzQmNCd0JAKK9Cc0JjQm9Ca0J7QkiDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ca0J7QkiDQm9CQ0JfQkNCgCivQnNCY0JvQmtCe0JIg0JvQkNCX0JDQoAor0JzQmNCb0JrQntCSINCh0JvQkNCS0JjQptCQCivQnNCY0JvQmtCe0JIg0KHQotCQ0J3QntCI0JUKK9Cc0JjQm9Ca0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ca0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmtCe0JLQmNCLINCS0JXQidCa0J4KK9Cc0JjQm9Cd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9Cd0J7QktCY0Isg0JrQkNCc0JXQndCa0J4KK9Cc0JjQm9Cd0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCb0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JjQm9Cd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JzQmNCb0J3QntCS0JjQiyDQl9Ce0KDQkAor0JzQmNCb0J4g0JPQmNCX0JXQm9CQCivQnNCY0JvQntCoINCY0JLQkNCdCivQnNCY0JvQntCo0KfQmNCdINCh0KLQkNCo0JAKK9Cc0JjQm9Ce0KjQp9CY0J0g0KHQotCV0JLQkNCdCivQnNCY0JvQntCo0KfQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9Ce0KjQldCSINCW0JDQoNCa0J4g0JTQoAor0JzQmNCb0J7QqNCV0JIg0JbQmNCa0JAKK9Cc0JjQm9Ce0KjQldCSINCW0JjQktCa0JAKK9Cc0JjQm9Ce0KjQldCSINCW0JjQktCe0IjQmNCdCivQnNCY0JvQntCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QqNCV0JIg0JDQndCC0JXQm9CY0IjQkAor0JzQmNCb0J7QqNCV0JIg0JHQntCo0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0KjQldCSINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCY0JvQntCo0JXQkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JIg0JTQntCR0KDQmNCS0J7QiAor0JzQmNCb0J7QqNCV0JIg0JTQo9Co0JDQnQor0JzQmNCb0J7QqNCV0JIg0JTQo9Co0JrQngor0JzQmNCb0J7QqNCV0JIg0IjQntCS0JDQndCa0JAKK9Cc0JjQm9Ce0KjQldCSINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KjQldCSINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQntCo0JXQkiDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9Ce0KjQldCSINCc0JjQi9CeCivQnNCY0JvQntCo0JXQkiDQnNCY0KXQkNCI0JvQngor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9CY0JLQntCICivQnNCY0JvQntCo0JXQkiDQnNCY0InQkNCd0JAKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCo0JXQkiDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QqNCV0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCSINCc0JjQoNCQCivQnNCY0JvQntCo0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JIg0JzQmNCg0JrQngor0JzQmNCb0J7QqNCV0JIg0JzQmNCg0J7QodCb0JDQktCQCivQnNCY0JvQntCo0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQntCo0JXQkiDQnNCY0KLQkAor0JzQmNCb0J7QqNCV0JIg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9Ce0KjQldCSINCd0JXQkdCe0IjQqNCQCivQnNCY0JvQntCo0JXQkiDQndCe0JLQmtCQCivQnNCY0JvQntCo0JXQkiDQn9CV0KLQkNCgCivQnNCY0JvQntCo0JXQkiDQoNCQ0JTQkAor0JzQmNCb0J7QqNCV0JIg0KHQkNCS0JAKK9Cc0JjQm9Ce0KjQldCSINCh0JvQkNCS0JrQkAor0JzQmNCb0J7QqNCV0JIg0KHQntCk0JjQiNCQCivQnNCY0JvQntCo0JXQkiDQodCi0JDQndCQCivQnNCY0JvQntCo0JXQkiDQodCi0J7QiNCQ0J3QmtCQCivQnNCY0JvQntCo0JXQkiDQktCQ0KHQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0KjQldCSINCS0JDQodCQCivQnNCY0JvQntCo0JXQkiDQktCV0JvQmNCc0JjQoAor0JzQmNCb0J7QqNCV0JIg0JfQm9CQ0KLQntCc0JjQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCd0JDQodCi0JDQl9CY0IjQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JHQntCW0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KbQktCV0KLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KbQktCV0KLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQldCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQldCS0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JPQoNCe0JfQlNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JjQk9CK0JDQogor0JzQmNCb0J7QqNCV0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCI0JDQmtCe0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCg0JjQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCI0J7QktCY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCI0KPQm9Ca0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQmtCb0JDQo9CU0JjQiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCb0JDQotCY0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCb0J7Ql9CQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JDQoNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JDQoNCi0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQpdCQ0InQmNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCg0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCi0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQntCo0JXQktCY0Isg0J3QkNCU0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCV0JLQldCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQntCR0KDQkNCUCivQnNCY0JvQntCo0JXQktCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQntCb0JjQktCV0KDQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCf0JDQktCb0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQn9CQ0JLQm9CVCivQnNCY0JvQntCo0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQlSDQlNCgCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQlNCVCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQiNCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0IjQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCi0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JjQodCi0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCj0JbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCg0KPQltCY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCQ0JLQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQldCb0JXQndCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCb0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCg0JHQntCR0KDQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCh0KLQldCS0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQotCe0IjQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JLQldCi0J7QidCj0JEKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCi0JDQlNCY0IjQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQo9Cg0J7QqAor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JDQodCQCivQnNCY0JvQntCo0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JXQidCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCV0KDQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JXQodCV0JvQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JLQmNCU0J7QiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0JLQm9CQ0JTQkCDQlNCY0J/QmyDQntCV0KYKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCe0IjQmtCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCj0JrQkNCo0JjQnSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCX0JDQpdCQ0KDQmNCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCX0JvQkNCi0JjQnNCY0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQl9Ce0KDQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QqNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQntCI0JXQktCY0Isg0JDQndCQCivQnNCY0JvQntCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCI0JXQktCY0Isg0KbQktCY0IjQldCi0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0J7QiNCV0JLQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQiNCQ0J3QmtCeCivQnNCY0JvQntCI0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCI0JXQktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQmNCb0J7QiNCV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0JvQntCI0JXQktCY0Ist0JzQmNCb0JDQndCe0JIg0KHQktCV0KLQm9CQ0J3QkAor0JzQmNCb0J7QiNCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQnNCY0JvQntCI0JUg0JTQoCDQn9Cg0J7QpAor0JzQmNCb0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0J7QiNCV0JLQmNCLINCc0J7QnNCY0KAg0JTQoAor0JzQmNCb0J7QiNCV0JLQmNCLINCe0JvQk9CY0KbQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0J7QiNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0KDQkNCd0JrQngor0JzQmNCb0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQktCQ0KHQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCS0JvQkNCU0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCI0JXQktCY0Isg0JLQntCI0JjQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCX0JLQntCd0JrQngor0JzQmNCb0J7QiNCY0KbQkCDQnNCY0InQkAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JDQptCQCivQnNCY0JvQntCI0JrQntCS0JjQiyDQkdCe0JbQkNCd0JAKK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCI0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JrQoNCY0KHQotCQCivQnNCY0JvQntCI0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCI0JrQntCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0JzQmNCb0J7QiNCa0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cc0JjQm9Ce0Jwg0JjQnNCg0JUKK9Cc0JjQm9Ce0Jwg0JjQnNCg0JUKK9Cc0JjQm9Ce0KDQkNCU0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KDQkNCU0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0KDQkNCU0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JAKK9Cc0JjQm9Ce0KDQkNCU0J7QkiDQnNCY0JvQntCoCivQnNCY0JvQntCg0JDQlNCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KDQkNCU0J7QkiDQoNCQ0JTQntCh0JvQkNCS0JrQkAor0JzQmNCb0J7QoNCQ0JTQntCSINCS0JjQntCb0JXQotCQCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0J7QoNCQ0JTQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0J7QoNCQ0JTQntCS0JjQiyDQl9Cb0JDQotCe0IjQlQor0JzQmNCb0J7QodCQ0JLQkNCmINCc0JjQi9CQCivQnNCY0JvQntCh0JDQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0J7QodCQ0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0J7QodCQ0JLQmNCLINCa0KDQodCi0JDQnQor0JzQmNCb0J7QodCQ0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0J7QodCQ0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQntCh0JDQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0J7QodCQ0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCY0JvQntCh0JDQktCY0Isg0KHQotCe0IjQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JbQmNCS0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JbQmNCS0JrQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQlNCe0JHQoNCV0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCU0KDQkNCT0JjQitCQCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQnNCY0JvQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCd0J7QktCa0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCS0JvQkNCU0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCS0J7QiNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JbQkNCg0JrQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCW0JjQktCQ0JTQmNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0JrQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCW0JjQktCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkNCU0JDQnCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQntCg0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQldCI0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CVCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JrQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCd0J7QktCY0KbQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCe0JvQk9CQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KHQkNCS0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCh0KDQldCi0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0JXQktCeCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCS0JXQoNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JLQldCg0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0J7QodCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KHQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQntCh0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCb0J7QktCn0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQmNCb0J7QktCQ0KYg0JTQo9Co0JDQnQor0JzQmNCb0J7QktCQ0KYg0JPQm9CY0KjQkAor0JzQmNCb0J7QktCQ0KYg0JPQntCg0JDQnQor0JzQmNCb0J7QktCQ0KYg0JjQm9CVCivQnNCY0JvQntCS0JDQpiDQmNCb0JjQiNCQCivQnNCY0JvQntCS0JDQpiDQiNCV0JvQkAor0JzQmNCb0J7QktCQ0KYg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0KYg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0KYg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0KYg0J/QldCi0JDQoAor0JzQmNCb0J7QktCQ0KYg0KDQo9CW0JjQptCQCivQnNCY0JvQntCS0JDQpiDQodCY0JzQngor0JzQmNCb0J7QktCQ0KYg0KHQotCQ0J3QmtCeCivQnNCY0JvQntCS0JDQpiDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ce0JLQkNCmINCh0KLQntCI0JDQnQor0JzQmNCb0J7QktCQ0J0g0JrQntCd0KHQotCQ0J3QptCQCivQnNCY0JvQntCS0JDQndCn0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QktCQ0J3Qp9CV0JIg0JjQodCY0JTQntCgCivQnNCY0JvQntCS0JDQndCn0JXQkiDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0JLQkNCd0KfQldCSINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCn0JXQkiDQodCS0JXQotCe0JfQkNCgINCU0KAKK9Cc0JjQm9Ce0JLQkNCd0JrQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9Ce0JLQkNCd0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQgtCe0KDQgtCVCivQnNCY0JvQntCS0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCe0JIg0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCSINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCS0JDQndCe0JIg0JTQmNCc0JjQotCg0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QktCQ0J3QntCSINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QktCQ0J3QntCSINCT0J7QiNCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQk9Ce0IjQmtCeCivQnNCY0JvQntCS0JDQndCe0JIg0JPQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCSINCT0J7QoNCU0JDQndCQINCU0KAg0JvQldCa0JDQoAor0JzQmNCb0J7QktCQ0J3QntCSINCY0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JIg0IjQo9Cb0JrQkAor0JzQmNCb0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQnNCY0JvQlQor0JzQmNCb0J7QktCQ0J3QntCSINCc0JjQm9CY0J3QmtCQCivQnNCY0JvQntCS0JDQndCe0JIg0JzQmNCb0JjQndCa0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QktCQ0J3QntCSINCh0JjQnNCQCivQnNCY0JvQntCS0JDQndCe0JIg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCb0J7QktCQ0J3QntCSINCi0J7QlNCe0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQnNCY0JvQntCS0JDQndCe0JIg0JfQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQltCY0JrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCQ0J3QmNCm0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkdCe0JPQntCh0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0KHQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmNCS0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JrQkNCi0JDQm9CY0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCa0J7QodCQ0KDQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmtCg0KHQotCe0JzQmNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCb0KPQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCd0JDQlNCQINCc0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCe0JHQoNCV0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JDQqNCY0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCg0JjQodCi0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0J7QitCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCm0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQotCV0KDQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JXQodCV0JvQmNCd0JrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JjQlNCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQm9Ce0JLQmNCLINCn0JXQlNCeCivQnNCY0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCR0J7QoNCY0KjQkAor0JzQmNCb0J7QktCY0Isg0JHQntCg0J4KK9Cc0JjQm9Ce0JLQmNCLINCR0J7QoNCeCivQnNCY0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0JLQmNCLINCU0JXQodCY0JzQmNCgCivQnNCY0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCS0JjQiyDQk9Ce0IjQmtCeCivQnNCY0JvQntCS0JjQiyDQk9Ce0IjQmtCeCivQnNCY0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ce0JLQmNCLINCa0KDQodCi0J4KK9Cc0JjQm9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQntCS0JjQiyDQnNCQ0IjQkAor0JzQmNCb0J7QktCY0Isg0JzQkNCg0JjQiNCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0JLQmNCLINCc0JjQntCc0JjQoAor0JzQmNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9Ce0JLQmNCLINCe0KDQm9CVCivQnNCY0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQntCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCb0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cc0JjQm9Cj0KjQmNCLINCV0JLQmNCm0JAKK9Cc0JjQm9Cj0KjQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQo9Cd0J7QkiDQiNCe0JLQkNCdCivQnNCY0JvQo9Cd0J7QkiDQiNCj0JvQmtCQCivQnNCY0JvQo9Cd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0KPQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Cj0J3QntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JzQmNCb0KPQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQo9Cd0J7QktCY0Isg0JzQmNCb0KPQnQor0JzQmNCb0KPQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQo9Cd0J7QktCY0Isg0KHQn9CQ0KHQldCd0JrQngor0JzQmNCb0KPQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCb0KPQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Cj0KLQmNCdINCW0JjQktCa0J4KK9Cc0JjQm9Cj0KLQmNCdINCI0JDQodCd0JAKK9Cc0JjQm9Cj0KLQmNCdINCc0JjQoNCQCivQnNCY0JvQo9Ci0JjQnSDQndCV0JTQldCJ0JrQngor0JzQmNCb0KPQotCY0J0g0KDQkNCi0JrQngor0JzQmNCb0KPQotCY0J0g0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0KPQotCY0J3QntCSINCC0J7QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JIg0JDQptCQCivQnNCY0JvQo9Ci0JjQndCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQo9Ci0JjQndCe0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQiNCe0JLQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JIg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQm9CQ0JfQkNCgCivQnNCY0JvQo9Ci0JjQndCe0JIg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQnNCY0KLQkAor0JzQmNCb0KPQotCY0J3QntCSLdCd0JXQlNCV0InQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JIg0KDQkNCU0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQo9Ci0JjQndCe0JIg0KHQkNCS0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQodCQ0JLQldCi0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQotCe0JTQntCgCivQnNCY0JvQo9Ci0JjQndCe0JIg0JLQldCb0JjQkdCe0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KjQotCV0KTQmNCm0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JbQmNCa0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JHQntCo0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQkdCe0IjQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCQ0J3QmNCI0JXQm9CQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JjQk9CK0JDQogor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JvQmNCU0JjQiNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCb0JjQlNCY0IjQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQidCj0JHQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCQ0J3QlNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JDQoNCi0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkCDQlNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQntCc0JjQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQntCb0JPQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0JDQqNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQotCQ0J3QkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0KDQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0KDQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0KDQmNCm0JAg0JTQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiy3QktCj0JrQodCQ0J0g0J7Qm9CT0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCc0JjQptCQINCc0JvQkNCU0JXQnQor0JzQmNCc0JjQptCQINCd0JXQndCQ0JQKK9Cc0JjQnNCY0KbQkCDQndCV0J3QkNCUCivQnNCY0JzQmNCm0JAg0J3QldCd0JDQlAor0JzQmNCd0KfQmNCLINCc0JjQoNCe0InQo9CRCivQnNCY0J3Qp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCd0KfQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCY0J3QlNCQLdCg0JDQgtCV0J3QntCS0JjQiyDQldCb0JXQndCQCivQnNCY0J3QlNCQINCi0JjQkdCe0KAKK9Cc0JjQndCU0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCd0JTQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCd0JXQkCDQoNCe0JzQkNCdCivQnNCY0J3QmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0J3QmNCLINCd0JDQlNCQCivQnNCY0J3QmNCLINCh0JvQkNCS0JrQngor0JzQmNCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0J3QmNCLINCX0J7QoNCa0JAKK9Cc0JjQndCY0Jog0KjQkNCd0JTQntCgCivQnNCY0J3QmNCaINCI0J7QodCY0J8KK9Cc0JjQitCQINCc0JDQiNCQCivQnNCY0IrQkCDQnNCY0JvQo9Ci0JjQnQor0JzQmNCe0Kcg0JbQldCJ0JrQngor0JzQmNCe0Kcg0JjQktCQ0J0KK9Cc0JjQntCnINCX0JTQldCd0JrQngor0JzQmNCe0KfQmNCd0J7QktCY0Isg0JzQkNCg0JrQngor0JzQmNCe0KfQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCe0JTQkNCd0JjQiyDQlNCQ0J3QmtCeCivQnNCY0J7QlNCg0JDQkyDQkNCd0JAKK9Cc0JjQntCU0KDQkNCTINCc0JjQoNCa0J4KK9Cc0JjQntCU0KDQkNCTINCf0JXQoNCeCivQnNCY0J7QlNCg0JDQkyDQl9CU0KDQkNCS0JrQkAor0JzQmNCe0JTQoNCQ0JMg0JfQntCg0JjQptCQCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCQ0JvQkNCa0KHQkNCd0JTQkNCgCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JTQo9Co0JrQngor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0KLQntCo0JAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Ist0JLQo9Ca0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0J7QmiDQktCb0JDQodCi0JjQnNCY0KAKK9Cc0JjQntCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0J7QmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCe0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0J7Qm9Ch0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0J7Qm9Ch0JrQmCDQlNCj0KjQmtCeCivQnNCY0J7Qm9Ch0JrQmCDQodCi0JDQndCa0J4KK9Cc0JjQntCb0KHQmtCYINCh0KLQldCS0JDQnQor0JzQmNCg0KfQldCi0JjQiyDQiNCe0JLQkNCdCivQnNCY0KDQp9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQoNCn0JXQotCY0Isg0JzQmNCb0JjQptCQCivQnNCY0KDQp9CV0KLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCY0KDQp9CV0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQoNCn0JXQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KDQp9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQoNCn0JXQotCY0Isg0JfQntCg0JDQnQor0JzQmNCg0KfQldCS0KHQmtCYINCc0JjQpdCQ0JjQm9CeCivQnNCY0KDQp9CY0Isg0JrQntCS0JjQidCa0JAKK9Cc0JjQoNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCg0KfQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0KDQp9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCg0KfQmNCLINCh0KLQntCI0JDQnQor0JzQmNCg0JDQltCY0Isg0JDQndCi0KPQnQor0JzQmNCg0JDQltCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KDQkNCW0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQoNCQ0JbQmNCLINCI0JXQm9CQCivQnNCY0KDQkNCW0JjQiyDQnNCQ0KDQkAor0JzQmNCg0JDQltCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQnNCY0KDQkNCb0JXQnCDQkNCl0JzQldCUCivQnNCY0KDQkNCd0J7QktCY0Isg0JrQodCV0J3QmNCI0JAg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KDQkNCd0J7QktCY0Isg0JzQkNCI0JAKK9Cc0JjQoNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KDQldCo0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JXQqNCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0KDQmNCLINCC0KPQoNCQCivQnNCY0KDQmNCLINCQ0JPQkNCi0JAKK9Cc0JjQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQoNCY0Isg0JTQkNCd0JUKK9Cc0JjQoNCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCg0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0KDQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQoNCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JjQiyDQlNCj0KjQmtCeCivQnNCY0KDQmNCLINCI0J7QodCY0KQKK9Cc0JjQoNCY0Isg0IjQntCS0JDQnQor0JzQmNCg0JjQiyDQiNCe0JLQngor0JzQmNCg0JjQiyDQmtCQ0KLQkAor0JzQmNCg0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQoNCY0Isg0JrQntCS0JjQidCa0JAKK9Cc0JjQoNCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQoNCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JjQiyDQnNCY0JvQkNCdCivQnNCY0KDQmNCLINCc0JjQm9CV0J3QkAor0JzQmNCg0JjQiyDQnNCY0JvQmtCQCivQnNCY0KDQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0JjQiyDQn9CQ0JLQm9CVCivQnNCY0KDQmNCLINCg0JDQiNCa0J4KK9Cc0JjQoNCY0Isg0KDQo9CW0JjQptCQCivQnNCY0KDQmNCLINCh0JDQqNCQCivQnNCY0KDQmNCLINCh0JDQktCa0JAKK9Cc0JjQoNCY0Isg0KHQnNCY0InQkAor0JzQmNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQoNCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCg0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQnNCY0KDQmNCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCg0JjQm9Ce0JIg0JzQmNCb0JDQlNCY0J0g0JTQoAor0JzQmNCg0JjQm9Ce0JIg0JfQntCg0JrQkAor0JzQmNCg0JjQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCg0JjQm9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0KDQmNCb0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCg0JjQm9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCg0JjQm9Ce0JLQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0KDQmNCc0JDQndCe0JIg0JTQkNCg0JAKK9Cc0JjQoNCY0JzQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQnNCY0KDQiNCQ0KfQmNCLINCR0J7QodCQCivQnNCY0KDQiNCQ0J3QmNCLINCU0JDQndCY0KbQkAor0JzQmNCg0IjQkNCd0JjQiyDQnNCe0KDQkNCS0JrQkAor0JzQmNCg0IjQkNCd0JjQiyDQktCQ0KHQkAor0JzQmNCg0IjQkNCd0JjQiyDQktCV0KDQmNCm0JAKK9Cc0JjQoNCI0JDQndCY0J0g0J3QldCg0JAKK9Cc0JjQoNCa0JDQpiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JjQoNCa0JDQiNCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQoNCa0JDQiNCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQoNCa0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JzQmNCg0JrQntCKINCh0KDQldCU0J7QiNCVCivQnNCY0KDQmtCe0IrQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCg0JrQntCK0JXQkiDQodCd0JXQltCQ0J3QkAor0JzQmNCg0JrQntCSINCW0JXQidCa0J4KK9Cc0JjQoNCa0J7QkiDQltCY0JLQkNCdCivQnNCY0KDQmtCe0JIg0ILQntCg0ILQlQor0JzQmNCg0JrQntCSINCC0KPQoNCC0JjQiNCQCivQnNCY0KDQmtCe0JIg0ILQo9Cg0ILQmNCI0JAKK9Cc0JjQoNCa0J7QkiDQgtCj0KDQmNCm0JAKK9Cc0JjQoNCa0J7QkiDQkdCe0KHQmNCJ0JrQkAor0JzQmNCg0JrQntCSINCU0KPQqNCY0KbQkAor0JzQmNCg0JrQntCSINCV0JLQmNCm0JAKK9Cc0JjQoNCa0J7QkiDQnNCQ0KDQmNCm0JAKK9Cc0JjQoNCa0J7QkiDQn9CQ0JLQm9CVCivQnNCY0KDQmtCe0JIg0KDQo9CW0JjQptCQCivQnNCY0KDQmtCe0JIg0KHQldCa0KPQm9CQINCU0JjQn9CbINCe0JXQpgor0JzQmNCg0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQoNCa0J7QkiDQodCd0JXQltCQ0J3QkAor0JzQmNCg0JrQntCSINCh0KLQkNCd0JjQodCb0JDQkgor0JzQmNCg0JrQntCSINCh0KLQldCS0JDQnQor0JzQmNCg0JrQntCSINCh0KLQldCS0JDQnQor0JzQmNCg0JrQntCSINCS0JXQidCa0J4KK9Cc0JjQoNCa0J7QkiDQktCb0JDQlNCQCivQnNCY0KDQmtCe0JIg0JfQntCg0JDQnQor0JzQmNCg0JrQntCSINCX0J7QoNCY0KbQkAor0JzQmNCg0JrQntCSINCX0J7QoNCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQoNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQltCY0JLQmtCQCivQnNCY0KDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCg0JrQntCS0JjQiyDQkNCS0KDQkNCcCivQnNCY0KDQmtCe0JLQmNCLINCR0J7QoNCQCivQnNCY0KDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCg0JrQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCY0KDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCg0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQoNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0KDQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCY0KDQmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JXQlNCY0KLQkAor0JzQmNCg0JrQntCS0JjQiyDQldCb0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Cc0JjQoNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0KDQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQoNCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0KDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCg0JrQntCS0JjQiyDQnNCQ0KDQkAor0JzQmNCg0JrQntCS0JjQiyDQnNCQ0KDQkAor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdINCU0KAKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCg0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0KDQmtCe0JLQmNCLINCd0J7QktCQ0JoKK9Cc0JjQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCg0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCg0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCg0JrQntCS0JjQiyDQoNCQ0KLQmtCeCivQnNCY0KDQmtCe0JLQmNCLINCh0JDQitCQCivQnNCY0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCY0KDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQnNCY0KDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCg0JrQntCS0JjQiyDQotCg0JjQpNCj0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdINCU0KAKK9Cc0JjQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JfQntCg0JrQkAor0JzQmNCg0J3QmNCLINCI0J7QodCY0J8g0JTQoAor0JzQmNCg0J3QmNCLINCh0JjQm9CS0JjQiNCQCivQnNCY0KDQndCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cc0JjQoNCe0KjQldCS0JjQiyDQndCY0J3Qngor0JzQmNCg0J7QndCY0KbQmtCYINCg0KPQltCY0KbQkAor0JzQmNCg0J7QndCY0KbQmtCYINCX0JLQntCd0JjQnNCY0KAKK9Cc0JjQoNCe0KHQkNCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCg0J7QodCQ0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KDQntCh0JDQktCJ0JXQkiDQmNCb0JjQndCa0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCSINCI0J7QptCQCivQnNCY0KDQntCh0JDQktCJ0JXQkiDQnNCQ0KDQmNCI0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCSINCc0JjQm9CV0J3QmtCeCivQnNCY0KDQntCh0JDQktCJ0JXQkiDQnNCb0JDQlNCV0J0KK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0JjQptCQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0J7QlNCg0JDQkwor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCc0JDQk9CU0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCS0JXQoNCQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JLQldCg0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JDQnQor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQoNCe0KHQm9CQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCY0KDQntCS0JjQiyDQmNCT0J7QoAor0JzQmNCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KDQntCS0JjQiyDQnNCY0JvQngor0JzQmNCg0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCh0JDQmNCb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCh0JDQiNCb0J7QktCY0Isg0JzQkNCg0JPQmNCi0JAKK9Cc0JjQodCQ0InQldCS0JjQiyDQndCV0JzQkNCK0JAKK9Cc0JjQodCY0JzQmCDQmtCQ0JzQkdCV0KAKK9Cc0JjQodCY0J3QmCDQnNCY0KDQmNCc0JDQnQor0JzQmNCh0JjQoNCa0JjQiyDQnNCY0JvQntCoCivQnNCY0KHQmNCg0JrQmNCLINCS0JvQkNCU0JAKK9Cc0JjQodCY0KDQm9CY0KEg0JPQldCe0KDQk9CY0J7QoQor0JzQmNCh0JrQmNCdINCU0KDQkNCT0JDQnQor0JzQmNCh0JrQmNCdINCc0JjQm9Ce0KgKK9Cc0JjQodCa0JjQnSDQndCY0JrQngor0JzQmNCh0JrQmNCdINCX0JTQoNCQ0JLQmtCeCivQnNCY0KHQm9CY0JzQmCDQkNCb0JjQktCV0JHQmAor0JzQmNCi0JDQoCDQotCe0JzQkAor0JzQmNCi0JDQoCDQktCV0KDQkAor0JzQmNCi0JXQktCh0JrQmCDQmNCS0JDQnQor0JzQmNCi0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQmNCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQotCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cc0JjQotCY0Isg0JTQkNCd0JjQptCQCivQnNCY0KLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCi0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQotCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JjQotCY0Isg0JjQk9Ce0KAKK9Cc0JjQotCY0Isg0IjQntCh0JjQpAor0JzQmNCi0JjQiyDQiNCe0JLQkNCdCivQnNCY0KLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQotCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCY0Isg0JzQmNCb0JjQktCe0IgKK9Cc0JjQotCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQotCY0Isg0JzQmNCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KLQmNCLINCf0JDQktCb0JUKK9Cc0JjQotCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCi0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KLQmNCLINCh0KDQldCR0KDQkAor0JzQmNCi0JjQiyDQodCj0JfQkNCd0JAKK9Cc0JjQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCi0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQmNCi0JjQiyDQktCV0KDQkAor0JzQmNCi0JjQiyDQktCY0JTQntCh0JDQktCQCivQnNCY0KLQmNCLINCS0JjQotCe0JzQmNCgCivQnNCY0KLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCi0J7QqNCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JzQmNCi0J7QqNCV0JLQmNCLINCc0JjQm9CVCivQnNCY0KLQntCo0JXQktCY0Isg0J3QkNCU0JAKK9Cc0JjQotCe0KjQldCS0JjQiyDQodCQ0JLQkAor0JzQmNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCe0JLQmNCLINCU0J7QkdCg0JjQodCb0JDQkgor0JzQmNCi0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCi0KDQkNCo0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCi0KDQkNCo0JjQndCe0JLQmNCLINCX0J7QoNCQCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQo9CT0InQldCo0JAKK9Cc0JjQotCg0JXQmtCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KLQoNCV0KHQmtCYINCc0J7QnNCn0JjQm9CeCivQnNCY0KLQoNCV0JLQodCa0JAg0JXQktCU0J7QmtCY0IjQkAor0JzQmNCi0KDQldCS0KHQmtCYINCb0JDQnNCR0JUKK9Cc0JjQotCg0JXQktCh0JrQmCDQnNCe0JzQp9CY0JvQngor0JzQmNCi0KDQldCS0KHQmtCYINCg0JDQlNCQCivQnNCY0KLQoNCY0KfQldCS0JjQiyDQltCY0JrQkAor0JzQmNCi0KDQmNCn0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cc0JjQotCg0JjQp9CV0JLQmNCLINCQ0J3QkAor0JzQmNCi0KDQmNCn0JXQktCY0Isg0KHQnNCY0InQkAor0JzQmNCi0KDQmNCLINCC0KPQoNCeCivQnNCY0KLQoNCY0Isg0JHQntCT0JjQiwor0JzQmNCi0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCg0JjQiyDQnNCY0JvQkNCdCivQnNCY0KLQoNCY0Isg0JzQmNCb0J7QqAor0JzQmNCi0KDQmNCLINCd0JXQgtCeCivQnNCY0KLQoNCY0Isg0J3QldCC0J4KK9Cc0JjQotCg0JjQiyDQndCe0JLQkNCaCivQnNCY0KLQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQotCg0JjQiyDQktCQ0JvQldCd0KLQmNCd0JAKK9Cc0JjQotCg0J7QktCn0JDQnSDQiNCj0JvQmtCY0KbQkAor0JzQmNCi0KDQntCS0KfQkNCdINCa0J7QodCi0JAKK9Cc0JjQotCg0J7QktCn0JDQnSDQm9CQ0JfQkNCgCivQnNCY0KLQoNCe0JLQp9CQ0J0g0InQo9CR0JjQndCa0J4KK9Cc0JjQotCg0J7QktCn0JDQnSDQidCj0JHQmNCd0JrQngor0JzQmNCi0KDQntCS0KfQkNCdINCc0JjQotCQCivQnNCY0KLQoNCe0JLQp9CQ0J0g0KDQkNCU0JjQndCa0JAKK9Cc0JjQotCg0J7QktCn0JDQnSDQodCi0JXQktCQ0J0KK9Cc0JjQotCg0J7QktCn0JDQnSDQodCi0IjQldCf0JDQnQor0JzQmNCi0KDQntCS0KfQkNCdINCX0JDQk9Ce0KDQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KLQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JjQotCg0J7QktCY0Isg0ILQntCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQkNCd0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0JHQntCo0JrQngor0JzQmNCi0KDQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0KLQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCi0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0KLQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCY0KLQoNCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQnNCY0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQotCg0J7QktCY0Isg0JTQoNCQ0JPQmAor0JzQmNCi0KDQntCS0JjQiyDQlNCg0JDQk9Ce0IjQm9CeCivQnNCY0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQotCg0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCU0KPQqNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQk9Ce0IjQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCT0J7QodCf0JDQktCQCivQnNCY0KLQoNCe0JLQmNCLINCT0J7QodCf0JAKK9Cc0JjQotCg0J7QktCY0Isg0JjQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCY0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Cc0JjQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0JzQkNCg0JrQngor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCi0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCi0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KLQoNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCi0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JjQotCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0KLQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0KLQoNCe0JLQmNCLINCc0J7QnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cc0JjQotCg0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCi0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQotCg0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JjQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQnNCY0KLQoNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQngor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCi0KDQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQnNCY0KLQoNCe0JLQmNCLINCh0KDQldCi0JAKK9Cc0JjQotCg0J7QktCY0Isg0KHQotCQ0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQodCi0JDQndCY0KjQkAor0JzQmNCi0KDQntCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQodCj0JfQkNCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0KHQo9CX0JDQndCQCivQnNCY0KLQoNCe0JLQmNCLINCi0JjQpdCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQmNCi0KDQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JzQmNCi0KDQntCS0JjQiyDQotCe0JTQlQor0JzQmNCi0KDQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JDQodCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JzQmNCi0KDQntCS0JjQiyDQktCV0KDQntCd0JjQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQnNCY0KLQoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0JLQo9Cn0JXQotCQCivQnNCY0KLQoNCe0JLQmNCLLdCS0KPQiNCd0JjQiyDQodCc0JjQidCQ0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQktCj0IjQntCoCivQnNCY0KLQoNCe0JLQmNCLINCX0JvQkNCi0JrQngor0JzQmNCi0KDQo9Co0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0KLQoNCj0KjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCi0KDQo9Co0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQmNCj0KfQmNCdINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JjQo9Cn0JjQnSDQoNCe0JfQmNCd0JAKK9Cc0JjQo9Cn0JjQnSDQodCb0JDQktCa0J4KK9Cc0JjQo9Cn0JjQnSDQodCS0JXQotCe0JfQkNCgCivQnNCY0KPQp9CY0J0g0JLQldCg0JjQptCQCivQnNCY0Jcg0JzQkNCg0JjQiNCQCivQnNCY0Jcg0KDQntCc0JDQnQor0JzQmNCX0JTQoNCQ0Jog0JHQoNCQ0J3QmtCeCivQnNCI0JXQlNCQINCh0JjQnNCe0J0KK9Cc0JvQkNCC0JXQnSDQgtCj0KDQngor0JzQm9CQ0ILQldCdINCU0JzQmNCi0JDQoAor0JzQm9CQ0ILQldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCb0JDQgtCV0J3QntCS0JjQiyDQldCb0JXQndCQCivQnNCb0JDQgtCV0J3QntCS0JjQiyDQoNCQ0JTQlQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JHQntCo0JrQngor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQiNCj0KHQotCY0J3QkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQkNCg0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLLdCd0JjQmtCe0JvQmNCLINCT0J7QoNCU0JDQndCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQntCb0JPQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCg0JDQndCa0J4KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCh0KDQkdCY0KHQm9CQ0JLQmtCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KPQoNCe0KgKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCS0JXQmtCe0KHQm9CQ0JIKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCX0J7QoNCQ0J3QkAor0JzQm9CQ0JTQldCd0J7QktCh0JrQmCDQm9Ce0JfQkNCd0JAKK9Cc0JvQkNCU0JjQnSDQmNCc0KDQlQor0JzQm9CQ0JTQmNCdINCc0JDQoNCT0JjQotCQCivQnNCb0JDQl9CV0JIg0JLQkNCh0JjQmwor0JzQm9CY0J3QkNCgINCc0KPQpdCQ0KDQldCcCivQnNCb0JjQndCQ0KAg0JzQo9Ch0KLQkNCk0JAKK9Cc0JvQmNCd0JrQniDQkNCc0JHQoNCe0JfQmNCI0JUKK9Cc0JvQmNCd0JrQniDQlNCj0KjQkNCdCivQnNCb0JjQndCa0J4g0J/QldCi0JDQoAor0JzQm9CY0J3QmtCeINCX0JLQntCd0JjQnNCY0KAKK9Cc0J7QpyDQiNCV0JvQldCd0JAKK9Cc0J7QpyDQiNCe0JLQkNCd0JrQkAor0JzQntCo0J4g0IjQntCW0JXQpAor0JzQntCo0J7QoNCY0J3QkNCmINCW0JjQktCa0J4KK9Cc0J7QqNCe0KDQmNCd0JDQpiDQndCV0J3QkNCUCivQnNCe0KjQntCg0JjQndCh0JrQmCDQl9CQ0JPQntCg0JrQkAor0JzQntCo0J7QoNCY0J3QodCa0Jgg0JfQntCg0JAKK9Cc0J7Qi9CQ0J0g0IjQldCb0JXQndCQINCU0JjQn9CbINCY0J3Qkwor0JzQntCW0JUg0JXQnNCY0JsKK9Cc0J7QptCY0Isg0JzQntCc0JjQoAor0JzQntCm0JjQmiDQgtCj0JvQkAor0JzQntCm0JjQmiDQmNCg0JXQndCa0JAKK9Cc0J7QptCa0J4g0IjQkNCdCivQnNCe0KbQmtCeLdCc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JLQmNCV0KDQkAor0JzQntCm0JrQniDQnNCY0KDQntCh0JvQkNCSCivQnNCe0KbQmtCeINCh0KLQldCS0JDQnQor0JzQntCm0J3QkNCYINCY0KDQldCd0JAKK9Cc0J7QptCd0Jgg0IjQntCS0JDQnQor0JzQntCm0J3QmCDQnNCQ0KDQmNCI0JAKK9Cc0J7QptCd0Jgg0KHQotCV0JLQkNCdCivQnNCe0JTQldCb0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCe0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCe0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCe0JTQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0J7QlNCY0Isg0KDQkNCd0JrQngor0JzQntCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCe0JTQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0J7QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQntCU0J7QqNCQ0J3QntCSINCc0JDQoNCi0JAKK9Cc0J7QlNCe0KjQkNCd0J7QkiDQndCY0JrQntCb0JAKK9Cc0J7QlNCg0JDQpSDQktCb0JDQlNCY0JzQmNCgCivQnNCe0JTQoNCYINCo0JDQndCU0J7QoAor0JzQntCU0KDQmCDQlNCg0JDQk9CQ0J0KK9Cc0J7QlNCg0Jgg0JXQktCQCivQnNCe0JTQoNCY0Isg0JjQm9CY0IjQkAor0JzQntCU0KDQmNCLINCh0KLQkNCd0JrQngor0JzQntCU0KDQmNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0J7QlNCg0J7QitCQINCk0JXQpdCY0JwKK9Cc0J7QpNCQ0KDQlNCY0J0g0KHQn9CQ0KHQldCd0JrQkAor0JzQntCT0JAg0JHQoNCQ0J3QmtCeCivQnNCe0JPQkCDQiNCe0JLQkNCdCivQnNCe0JPQkCDQnNCY0JvQkNCdINCU0KAg0JvQldCa0JDQoAor0JzQntCT0JAg0JzQm9CQ0JTQldCdCivQnNCe0JPQkCDQn9CQ0IjQkAor0JzQntCT0JAg0KHQotCV0JLQkNCdCivQnNCe0JPQkCDQktCV0KDQkAor0JzQntCT0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCe0JPQmNCLINCT0J7QoNCQ0J3QkAor0JzQntCT0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQnNCe0JPQmNCdINCY0KDQmNCd0JAKK9Cc0J7Qk9CY0J0g0IjQldCb0JXQndCQCivQnNCe0JPQmNCdINCI0KPQm9CY0IjQkNCd0JAKK9Cc0J7Qk9CY0J0g0JrQodCV0J3QmNCI0JAKK9Cc0J7Qk9CY0J0g0JvQkNCX0JDQoAor0JzQntCT0JjQnSDQidCj0JHQmNCo0JAKK9Cc0J7Qk9CY0J0g0JzQkNCg0JAKK9Cc0J7Qk9CY0J0g0JzQmNCb0JDQndCQCivQnNCe0JPQmNCdINCc0JjQm9CQ0J0KK9Cc0J7Qk9CY0J0g0J/QkNCS0JvQlQor0JzQntCT0JjQnSDQn9CQ0JLQm9CVCivQnNCe0JPQmNCdINCf0JDQktCb0JUKK9Cc0J7Qk9CY0J0g0J/QldCi0JDQoAor0JzQntCT0JjQnSDQoNCQ0JTQntCc0JjQoAor0JzQntCT0JjQnSDQoNCQ0JTQntCc0JjQoAor0JzQntCT0JjQnSDQktCY0KLQntCc0JjQoAor0JzQntCl0JDQp9CYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0KXQkNCn0Jgg0JvQkNCh0JvQngor0JzQntCl0JDQnSDQlNCV0JDQndCQCivQnNCe0KXQkNCdINCI0J7QnQor0JzQntCl0JDQnSDQn9CV0KLQkNCgCivQnNCe0KXQkNCdINCh0JzQmNCJ0JDQndCQCivQnNCe0KXQntCg0JAg0JXQnNCY0JvQmNCI0JDQnQor0JzQntCl0J7QoNCY0Isg0JTQkNCd0JjQptCQCivQnNCe0KXQntCg0JrQniDQmNCb0JjQiNCQCivQnNCe0KXQntCg0JrQniDQmNCb0JjQiNCQCivQnNCe0KXQntCg0JrQniDQnNCQ0KDQk9CY0KLQkAor0JzQntCl0J7QoNCa0J4g0KDQkNCI0JrQngor0JzQntCI0JjQiyDQlNCj0KjQkNCdCivQnNCe0IjQmNCLINCU0KPQqNCQ0J0KK9Cc0J7QiNCY0Isg0JjQktCQ0J3QmtCQCivQnNCe0IjQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0J7QiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0J7QiNCY0Isg0JzQmNCi0JDQoAor0JzQntCI0JjQiyDQndCY0JrQntCb0JAKK9Cc0J7QiNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCe0IjQmNCLINCh0JvQkNCS0JrQngor0JzQntCI0JjQi9CV0JLQmNCLINCU0JXQodCY0JzQmNCgCivQnNCe0IjQmNCdINCh0J7QpNCY0IjQkAor0JzQntCI0KHQlSDQmtCQ0KLQmNCm0JAKK9Cc0J7QiNCh0JUg0J3QkNCd0JTQntCgCivQnNCe0IjQodCV0IjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0IjQodCV0IjQldCSINCa0J7QndCh0KLQkNCd0KLQmNCdINCU0JjQn9CbINCf0KUKK9Cc0J7QiNCh0JjQiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQntCI0KHQmNCI0JXQktCY0Isg0KHQkNCS0JAKK9Cc0J7QiNCh0JjQm9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCe0IjQodCY0JvQntCSINCU0KDQkNCT0JDQnQor0JzQntCI0KHQmNCb0J7QkiDQnNCY0JvQmNCh0JDQkgor0JzQntCI0KHQmNCb0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0J7QiNCh0JjQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cc0J7QiNCh0JjQm9Ce0JLQmNCLINCh0JvQkNCS0JjQptCQCivQnNCe0IjQodCY0JvQntCS0JjQiyDQktCV0KDQkAor0JzQntCI0KHQmNCb0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQnNCe0IjQodCY0J0g0JTQoNCQ0JPQntCc0JjQoAor0JzQntCI0KHQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCI0JfQldCoINCQ0JvQpNCg0JXQlAor0JzQntCI0JfQldCoINCc0JDQoNCY0IjQkAor0JzQntCa0KPQqCDQqNCQ0J3QlNCe0KAKK9Cc0J7QmtCj0Kgg0JjQnNCg0JUKK9Cc0J7QmtCj0Kgg0IjQntCS0JDQnQor0JzQntCa0KPQqCDQmtCQ0JvQnNCQ0J0KK9Cc0J7QmtCj0Kgg0JvQkNCh0JvQngor0JzQntCa0KPQqCDQm9CQ0KHQm9CeCivQnNCe0JrQo9CoINCb0JDQodCb0J4KK9Cc0J7QmtCj0Kgg0JzQmNCa0JvQntCoCivQnNCe0JrQo9CoINCi0JjQkdCe0KAKK9Cc0J7QmtCj0Kgg0JfQntCb0KLQkNCdCivQnNCe0JvQkNCmINCc0JjQm9Ce0KDQkNCUCivQnNCe0JvQpiDQmtCQ0KLQmNCm0JAKK9Cc0J7Qm9CU0J7QktCQ0J0g0InQo9CR0JjQndCa0JAKK9Cc0J7Qm9CU0J7QktCQ0J0g0JzQkNCg0JjQiNCQCivQnNCe0JvQlNCe0JLQkNCd0J7QkiDQkdCe0KjQmtCeCivQnNCe0JvQlNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQntCb0JTQktCQ0Jgg0JXQoNCS0JjQnQor0JzQntCb0JTQktCQ0Jgg0JjQl9CQ0JHQldCb0JAKK9Cc0J7Qm9CU0JLQkNCYINCb0JDQodCb0J4KK9Cc0J7Qm9CU0JLQkNCYINCe0KLQngor0JzQntCb0JTQktCQ0Igg0KTQoNCQ0IrQkAor0JzQntCb0JTQktCQ0Igg0KXQmNCb0JTQkAor0JzQntCb0JTQktCQ0Igt0J7Qm9CQ0KUg0JXQnNCY0JvQmNCI0JAKK9Cc0J7Qm9CU0JLQkNCIINCg0J7Ql9CQ0JvQmNCQCivQnNCe0JvQlNCS0JDQiCDQodCi0JXQktCQ0J0KK9Cc0J7Qm9CU0JLQkNCIINCS0JjQmtCi0J7QoAor0JzQntCb0JTQktCQ0IjQmCDQn9Cg0JXQlNCg0JDQkwor0JzQntCb0JXQoNCe0JIg0KDQkNCU0J7QktCQ0J0KK9Cc0J7QidCQ0KYg0ILQntCg0ILQlQor0JzQntCJ0JDQpiDQkdCg0JDQndCa0JAKK9Cc0J7QidCQ0KYg0JPQkNCS0KDQkAor0JzQntCJ0JDQpiDQk9CQ0JLQoNCQCivQnNCe0InQkNCmINCI0J7QktCQ0J0KK9Cc0J7QidCQ0KYg0IjQntCS0JDQnQor0JzQntCJ0JDQpiDQmtCQ0KLQmNCm0JAKK9Cc0J7QidCQ0KYg0JzQmNCb0JjQptCQCivQnNCe0InQkNCmINCc0JjQntCU0KDQkNCTCivQnNCe0InQkNCmINCd0JDQlNCQCivQnNCe0InQkNCmINCf0JDQiNCQCivQnNCe0InQkNCmINCh0KLQldCS0JDQnQor0JzQntCJ0JDQpiDQodCi0JXQktCQ0J0KK9Cc0J7QidCQ0KYg0JLQldCg0JAKK9Cc0J7QidCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQnNCe0JvQmtCj0KYg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0J7Qm9Ca0KPQpiDQktCY0KDQgtCY0J3QldCbCivQnNCe0JvQndCQ0KAg0KjQkNCd0JTQntCgCivQnNCe0JvQndCQ0KAt0KjQotCV0KTQo9Cb0JjQmiDQmNCb0J7QndCQCivQnNCe0JvQndCQ0KAg0ILQntCg0ILQlQor0JzQntCb0J3QkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0JvQndCQ0KAg0JDQndCU0KDQkNCoCivQnNCe0JvQndCQ0KAg0JDQndCU0KDQkNCoCivQnNCe0JvQndCQ0KAg0JDQndCi0J7QnQor0JzQntCb0J3QkNCgINCQ0KDQn9CQ0JQKK9Cc0J7Qm9Cd0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQntCb0J3QkNCgINCU0JXQltCVCivQnNCe0JvQndCQ0KAg0JXQnNCY0JvQmNCI0JAKK9Cc0J7Qm9Cd0JDQoCDQldCc0JjQm9CY0IjQkAor0JzQntCb0J3QkNCgINCV0JLQmNCm0JAKK9Cc0J7Qm9Cd0JDQoCDQpNCV0J7QlNCe0KAKK9Cc0J7Qm9Cd0JDQoCDQpNCV0KDQldCd0KYg0JTQmNCf0Jsg0JjQndCTCivQnNCe0JvQndCQ0KAg0JjQqNCi0JLQkNCdCivQnNCe0JvQndCQ0KAg0JjQqNCi0JLQkNCdCivQnNCe0JvQndCQ0KAg0JjQnNCg0JUg0JTQoAor0JzQntCb0J3QkNCgINCY0JzQoNCVCivQnNCe0JvQndCQ0KAg0JjQnNCg0JUKK9Cc0J7Qm9Cd0JDQoCDQmNCg0JXQndCQCivQnNCe0JvQndCQ0KAg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCe0JvQndCQ0KAg0JjQktCQ0J0KK9Cc0J7Qm9Cd0JDQoCDQmNCS0JDQnQor0JzQntCb0J3QkNCgINCI0JDQmtCe0JIKK9Cc0J7Qm9Cd0JDQoCDQiNCQ0J3QntCoCivQnNCe0JvQndCQ0KAg0IjQkNCdCivQnNCe0JvQndCQ0KAg0IjQldCb0JXQndCQCivQnNCe0JvQndCQ0KAg0IjQldCb0JjQptCQCivQnNCe0JvQndCQ0KAg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0J7Qm9Cd0JDQoCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQntCb0J3QkNCgINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCe0JvQndCQ0KAg0IjQntCW0JXQpAor0JzQntCb0J3QkNCgINCI0J7QltCV0KQKK9Cc0J7Qm9Cd0JDQoCDQiNCe0JbQldCkCivQnNCe0JvQndCQ0KAg0IjQntCW0JXQpAor0JzQntCb0J3QkNCgINCI0J7QltCV0KQKK9Cc0J7Qm9Cd0JDQoCDQiNCe0JvQkNCd0JrQkAor0JzQntCb0J3QkNCgINCI0J7QodCY0J8KK9Cc0J7Qm9Cd0JDQoCDQiNCe0KHQmNCfCivQnNCe0JvQndCQ0KAg0IjQntCh0JjQnwor0JzQntCb0J3QkNCgINCI0J7QodCY0J8KK9Cc0J7Qm9Cd0JDQoCDQiNCe0JLQkNCdCivQnNCe0JvQndCQ0KAg0JrQkNCg0JvQngor0JzQntCb0J3QkNCgINCa0JDQotCQ0JvQmNCdCivQnNCe0JvQndCQ0KAg0JvQkNCh0JvQngor0JzQntCb0J3QkNCgINCb0JDQl9CQ0KAKK9Cc0J7Qm9Cd0JDQoCDQnNCQ0IvQkNCoCivQnNCe0JvQndCQ0KAg0JzQkNCg0JjQiNCQINCU0KAKK9Cc0J7Qm9Cd0JDQoCDQnNCQ0KDQotCQINCU0KAKK9Cc0J7Qm9Cd0JDQoCDQnNCQ0KLQmNCb0JTQkAor0JzQntCb0J3QkNCgINCc0JjQpdCQ0IjQm9CeCivQnNCe0JvQndCQ0KAg0JzQmNCl0JDQiQor0JzQntCb0J3QkNCgINCc0JjQpdCQ0IkKK9Cc0J7Qm9Cd0JDQoCDQnNCY0KXQkNCJCivQnNCe0JvQndCQ0KAg0JzQmNCl0JDQiQor0JzQntCb0J3QkNCgINCc0JjQm9CQ0J0KK9Cc0J7Qm9Cd0JDQoCDQnNCY0KDQntCdCivQnNCe0JvQndCQ0KAg0J3QmNCa0J7Qm9CQCivQnNCe0JvQndCQ0KAg0KHQn9Ce0JzQldCd0JrQkAor0JzQntCb0J3QkNCgINCh0JLQldCi0J7QodCb0JDQkgor0JzQntCb0J3QkNCgINCi0JXQoNCV0JfQkAor0JzQntCb0J3QkNCgINCS0JXQoNCQCivQnNCe0JvQndCQ0KAg0JLQmNCb0JzQntCoINCU0JjQn9CbINCY0J3Qkwor0JzQntCb0J3QkNCgINCS0IjQldCg0JAKK9Cc0J7Qm9Cd0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQnNCe0JvQndCQ0KAg0JfQktCe0J3QmtCeCivQnNCe0JzQp9CY0JvQntCSINCU0J7QkdCg0JjQiNCQCivQnNCe0JzQp9CY0JvQntCSINCT0JDQktCg0JjQm9CeCivQnNCe0JzQp9CY0JvQntCSINCT0JDQktCg0JjQm9CeCivQnNCe0JzQp9CY0JvQntCSINCh0KLQldCS0JDQnQor0JzQntCc0KfQmNCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQkdCg0JDQndCa0J4g0JTQoAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JTQkNCd0JUKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQntCc0KfQmNCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCY0JvQlQor0JzQntCc0KfQmNCb0J7QktCY0Isg0JzQmNCg0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0JjQoNCQCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQntCc0KfQmNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQntCc0KfQmNCb0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQodCc0JjQidCQCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQktCQ0KHQkAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JLQmNCU0JDQnQor0JzQntCc0KfQmNCb0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQntCc0KfQmNCb0J7QktCY0Isg0JLQo9Ca0JjQptCQCivQnNCe0JzQkNCd0Jgg0JDQmtCg0JDQnAor0JzQntCc0JjQiyDQntCR0KDQkNCUCivQnNCe0JzQmNCg0J7QkiDQmNCb0JjQiNCQCivQnNCe0JzQmNCg0J7QkiDQidCY0InQkNCd0JAKK9Cc0J7QnNCY0KDQntCSINCc0JjQm9CV0J3QmtCeCivQnNCe0JzQmNCg0J7QkiDQnNCY0JvQldCi0JAKK9Cc0J7QnNCY0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0J7QnNCY0KDQntCSINCd0JDQlNCQCivQnNCe0JzQmNCg0J7QkiDQn9CQ0IjQkAor0JzQntCc0JjQoNCe0JIg0KHQkNCS0JAKK9Cc0J7QnNCY0KDQntCSINCh0JLQldCi0JvQkNCd0JAKK9Cc0J7QnNCY0KDQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0J7QnNCY0KDQntCSINCi0J7QqNCQCivQnNCe0JzQmNCg0J7QkiDQl9Ce0KDQmNCm0JAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0J7QnNCY0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQm9CQ0JfQkAor0JzQntCc0JjQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Cc0J7QnNCY0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0J7QnNCY0KDQntCS0KHQmtCYLdCc0JjQm9Ce0KjQldCS0JjQiyDQptCS0JXQotCQ0J3QkAor0JzQntCd0JDQoCDQiNCQ0J3QmtCeCivQnNCe0J3QkNCg0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCd0JDQoNCV0JIg0IjQntCh0JjQn9CQCivQnNCe0J3QkNCg0JXQki3QodCe0JrQntCb0JjQiyDQndCQ0JTQkAor0JzQntCd0JDQoNCe0JIg0JXQm9CY0JfQkNCR0JXQotCQCivQnNCe0J3QkNCg0J7QkiDQiNCe0JfQldCk0JjQndCQCivQnNCe0J3QlNCe0JLQmNCLINCC0KPQm9CQCivQnNCe0J3QlNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0J3QlNCe0JLQmNCLINCk0KDQkNCK0JAKK9Cc0J7QndCU0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCe0J3QlNCe0JLQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cc0J7QndCT0JXQiNCQ0KAg0KDQkNCU0J7QodCQ0JLQkAor0JzQntCd0Jgg0JjQodCb0JDQnAor0JzQntCd0J7QmtCYINCC0KPQm9CQCivQnNCe0J3QntCa0Jgg0JjQqNCi0JLQkNCdCivQnNCe0KAg0ILQldCg0IIKK9Cc0J7QoCDQpNCg0JDQitCQCivQnNCe0KAg0JPQkNCR0J7QoAor0JzQntCgINCT0JDQkdCe0KAKK9Cc0J7QoCDQm9CQ0KHQm9CeCivQnNCe0KAg0JfQlNCV0J3QmtCeCivQnNCe0KDQkCDQkNCd0JAKK9Cc0J7QoNCQINCQ0J3QlNCg0JDQqAor0JzQntCg0JAg0JrQntCg0J3QldCb0JjQiNCQCivQnNCe0KDQkNCn0JAg0ILQo9Cg0JDQggor0JzQntCg0JDQp9CQINCc0JjQntCU0KDQkNCTCivQnNCe0KDQkNCn0JAg0J3QmNCa0J7Qm9CQCivQnNCe0KDQkNCn0JAg0KDQkNCU0JzQmNCb0JAKK9Cc0J7QoNCQ0KfQkCDQktCQ0KHQngor0JzQntCg0JDQp9CQINCS0JDQodCeCivQnNCe0KDQkNCn0JDQndCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cc0J7QoNCQ0JjQiyDQgtCe0KDQgtCVCivQnNCe0KDQkNCg0JXQktCY0Isg0InQo9CR0JjQptCQCivQnNCe0KDQkNCg0JXQktCY0Isg0JLQntCI0JrQkNCdCivQnNCe0KDQkNCS0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQnNCe0KDQkNCS0JXQmiDQiNCQ0J3QmtCeCivQnNCe0KDQlSDQnNCQ0KDQmNCI0JAKK9Cc0J7QoNCVINCh0JjQm9CS0JXQodCi0JXQoAor0JzQntCg0JPQldCd0KLQkNCb0JXQoCDQiNCe0JLQkNCdCivQnNCe0KDQmNCLINCl0JDQnNCeCivQnNCe0KDQmNCmINCU0KDQkNCT0KPQotCY0J0KK9Cc0J7QoNCY0KYg0JPQkNCR0J7QoAor0JzQntCg0JjQpiDQiNCQ0J3QntCoCivQnNCe0KDQmNCmINCI0JXQm9CV0J3QkAor0JzQntCg0JjQpiDQiNCj0JvQmNCI0JAKK9Cc0J7QoNCY0KYg0JrQkNCg0JvQngor0JzQntCg0JjQpiDQm9CQ0IjQntCoCivQnNCe0KDQmNCmINCb0JDQodCb0J4KK9Cc0J7QoNCY0KYg0JvQkNCh0JvQngor0JzQntCg0JjQpiDQm9CY0JTQmNCI0JAKK9Cc0J7QoNCY0KYg0JzQmNCb0JDQndCQCivQnNCe0KDQmNCmINCf0JDQo9Cb0JAKK9Cc0J7QoNCY0KYg0KHQmNCb0JDQoNCUCivQnNCe0KDQmNCmINCh0JvQkNCS0JjQptCQCivQnNCe0KDQmNCmINCX0J7Qm9Ci0JDQnQor0JzQntCg0J7QqNCV0JIg0KDQkNCU0J7QodCb0JDQkgor0JzQntCg0J7QmtCS0JDQqNCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JzQntCg0J7QmtCS0JDQqNCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0J7QoNCe0JrQktCQ0KjQmNCLINCd0JXQndCQ0JQKK9Cc0J7QoNCe0JrQktCQ0KjQmNCLINCd0JjQmtCe0JvQkAor0JzQntCg0J7QnNCY0JvQntCSINCJ0KPQkdCY0J3QmtCQCivQnNCe0KDQntCi0JLQkNCd0KHQmtCYINCS0JjQlNCe0KHQkNCS0JAKK9Cc0J7QoNCe0JLQmNCLINCc0JDQotCY0JvQlNCQCivQnNCe0KDQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0J7QoNCe0JLQmNCLINCd0JXQodCi0J7QoAor0JzQntCg0J7QktCY0KYg0JvQkNCh0JvQngor0JzQntCg0JLQkNCYINCo0JDQndCU0J7QoAor0JzQntCg0JLQkNCYINCC0JXQoNCCCivQnNCe0KDQktCQ0Jgg0KTQldCg0JXQndCmCivQnNCe0KDQktCQ0Jgg0IjQkNCd0J7QqAor0JzQntCg0JLQkNCYINCa0JDQoNCb0J4KK9Cc0J7QoNCS0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQnNCe0KDQktCQ0Jgg0J/QldCi0JDQoAor0JzQntCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQntCh0JrQkNCJINCJ0KPQkdCe0JzQmNCgCivQnNCe0KHQmtCQ0Ikg0J3QmNCa0J7Qm9CQCivQnNCe0KHQmtCQ0Ikg0J3QmNCa0J7Qm9CQCivQnNCe0KHQmtCQ0Ikg0KDQkNCU0JzQmNCb0JAKK9Cc0J7QodCa0JLQkNCJINCh0JDQktCa0JAKK9Cc0J7QodCb0J7QktCQ0KYg0JrQkNCi0JDQoNCY0J3QkAor0JzQntCh0J3QkNCaINCQ0J3QlNCg0JjQiNCQCivQnNCe0KHQndCQ0Jog0J/QkNCS0JXQmwor0JzQntCh0KLQkNCg0JDQpiDQiNCV0JvQldCd0JAKK9Cc0J7QodCi0JDQoNCh0JrQmCDQodCb0JDQktCY0KbQkAor0JzQntCh0KLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCe0KHQo9Cg0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0JzQntCi0J7QmiDQgtCe0KDQgtCVCivQnNCe0KLQntCaINCR0KDQkNCd0JrQngor0JzQntCi0J7QoNCe0JbQldCh0JrQoyDQkNCj0KDQntCg0JAKK9Cc0J7QktCg0JjQnSDQmNCS0JDQnQor0JzQntCX0JXQotCY0Isg0JzQm9CQ0JTQldCdCivQnNCg0KfQkNCg0JjQptCQINCX0J7QoNCQ0J0KK9Cc0KDQqNCQINCc0JjQm9CV0J3QmtCQCivQnNCg0KjQmNCLINCC0J7QoNCC0JUKK9Cc0KDQqNCY0Isg0JHQntCT0JTQkNCdCivQnNCg0KjQmNCLINCU0KPQqNCQ0J0KK9Cc0KDQqNCY0Isg0JzQkNCg0JrQngor0JzQoNCo0JjQiyDQnNCY0JvQlQor0JzQoNCo0J4g0JDQndCi0J4KK9Cc0KDQqNCj0InQkCDQndCY0JrQntCb0JAKK9Cc0KDQqNCj0InQkCDQoNCQ0JTQntCc0JjQoAor0JzQoNCC0JAg0JHQntCo0JrQngor0JzQoNCC0JAg0JHQntCT0JTQkNCdCivQnNCg0ILQkCDQnNCQ0J3QlQor0JzQoNCC0JAg0JzQmNCb0JrQkNCdCivQnNCg0ILQkCDQnNCY0KDQntCh0JvQkNCSCivQnNCg0ILQkCDQodCi0JXQktCQ0J0KK9Cc0KDQgtCQINCX0J7QoNCQ0J0KK9Cc0KDQgtCQ0J0g0JTQo9Co0JDQnQor0JzQoNCC0JDQnSDQnNCY0KXQkNCI0JvQngor0JzQoNCC0JDQnSDQoNCj0JbQmNCm0JAKK9Cc0KDQgtCQ0J0g0KHQkNCS0JAKK9Cc0KDQgtCQ0J0g0KHQkNCS0JAKK9Cc0KDQgtCQ0J0g0KHQotCV0JLQkNCdCivQnNCg0ILQkNCdINCh0KLQldCS0JDQnQor0JzQoNCC0JDQndCY0J0g0JLQm9CQ0JTQmNCh0JvQkNCSCivQnNCg0ILQkNCd0J7QkiDQltCQ0KDQmtCeCivQnNCg0ILQkNCd0J7QkiDQkNCd0JjQptCQCivQnNCg0ILQkNCd0J7QkiDQmtCh0JXQndCY0IjQkAor0JzQoNCC0JDQndCe0JIg0JvQkNCX0JAKK9Cc0KDQgtCQ0J3QntCSINCc0JDQoNCY0J3QmtCeCivQnNCg0ILQkNCd0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQnNCg0ILQkNCd0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQnNCg0ILQkNCd0J7QkiDQnNCe0JzQp9CY0JvQngor0JzQoNCC0JDQndCe0JIg0J3QldCc0JDQitCQCivQnNCg0ILQkNCd0J7QkiDQndCe0JLQmNCm0JAKK9Cc0KDQgtCQ0J3QntCSINCf0KDQntCa0JAKK9Cc0KDQgtCQ0J3QntCSINCh0JzQmNCJ0JAKK9Cc0KDQgtCQ0J3QntCSINCS0KPQmtCe0KHQkNCS0JAKK9Cc0KDQgtCQ0J3QntCSINCX0JTQoNCQ0JLQmtCeCivQnNCg0ILQldCdINCY0JvQmNCI0JAKK9Cc0KDQgtCV0J0g0IjQldCb0JXQndCQCivQnNCg0ILQldCdINCb0JDQl9CQ0KAKK9Cc0KDQgtCV0J0g0JzQmNCg0JrQngor0JzQoNCC0JXQnSDQktCV0InQmtCeCivQnNCg0ILQldCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Cc0KDQgtCV0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0KDQgtCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0KDQgtCV0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQoNCC0JXQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCg0ILQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQoNCC0JXQndCe0JLQmNCLINCS0JDQodCeCivQnNCg0JDQp9CQ0IjQkNCmINCm0JLQmNCI0J4KK9Cc0KDQkNCn0JDQiNCQ0KYg0JTQldCI0JDQnQor0JzQoNCQ0IvQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQoNCQ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQoNCQ0JrQntCS0JjQiyDQidCj0JHQkNCdCivQnNCg0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCg0JDQntCS0JjQiy3QkdCQ0KXQo9CdINCc0JjQm9CY0IjQkNCd0JAKK9Cc0KDQkNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQoNCQ0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQoNCQ0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCg0JDQntCS0JjQiyDQnNCQ0KDQmtCeCivQnNCg0JDQntCS0JjQiyDQntCb0JPQkCDQlNCgINCf0KDQkNCS0J3QmNCaCivQnNCg0JDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCg0JDQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0KDQkNCi0JjQndCa0J7QktCY0Isg0JHQntCg0JjQoSDQlNCgINCb0JXQmtCQ0KAKK9Cc0KDQkNCi0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQnNCg0JDQotCY0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQoNCQ0JLQmNCaINCW0JjQktCa0JAKK9Cc0KDQkNCS0JjQmiDQgtCj0KDQkAor0JzQoNCQ0JLQmNCaINCf0JDQktCb0JUKK9Cc0KDQkNCXINCQ0J3QlNCg0JjQiNCQCivQnNCg0JDQl9CV0Jog0JHQldCg0J3QkNCg0JTQngor0JzQoNCQ0JfQntCS0JjQiyDQiNCe0KHQmNCfCivQnNCg0JDQl9Ce0JLQmNCLINCc0JjQm9CQ0J3QkAor0JzQoNCQ0JfQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCg0JDQl9Ce0JLQmNCLINCd0JXQktCV0J3QmtCQCivQnNCg0JTQkNCaINCC0J7QoNCC0JUKK9Cc0KDQlNCQ0Jog0JzQmNCg0JDQqAor0JzQoNCU0JDQmtCe0JLQmNCLINCR0J7QoNCY0KHQkNCSCivQnNCg0JTQkNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0KDQlNCQ0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cc0KDQlNCQ0JrQntCS0JjQiyDQktCj0JrQntCh0JDQkgor0JzQoNCU0JDQiSDQn9CV0KLQkNCgCivQnNCg0JTQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9Cc0KDQlNCY0Isg0JzQkNCg0JrQngor0JzQoNCU0JjQiyDQodCQ0IrQkAor0JzQoNCT0JDQndCY0Isg0IjQntCX0J4KK9Cc0KDQk9CQ0J3QmNCLINCh0KDQldCL0JrQngor0JzQoNCT0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQoNCa0KjQmNCLINCC0J7QoNCC0JUKK9Cc0KDQmtCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQoNCa0KjQmNCLINCR0J7QiNCQ0J3QkAor0JzQoNCa0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQoNCa0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQoNCa0KjQmNCLINCI0JXQm9CV0J3QkAor0JzQoNCa0KjQmNCLINCI0J7QptCQCivQnNCg0JrQqNCY0Isg0IjQntCm0JAKK9Cc0KDQmtCo0JjQiyDQmtCe0KHQotCQCivQnNCg0JrQqNCY0Isg0JzQmNCb0J7QqAor0JzQoNCa0KjQmNCLINCd0JXQndCQ0JQKK9Cc0KDQmtCo0JjQiyDQodCb0JDQktCY0KbQkAor0JzQoNCa0KjQmNCLINCX0JDQk9Ce0KDQmtCQCivQnNCg0JrQqNCY0Isg0JfQm9CQ0KLQkAor0JzQoNCa0JDQmNCLINCT0J7QoNCQ0J0KK9Cc0KDQmtCQ0JjQiyDQodCY0JzQkAor0JzQoNCa0JDQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0KDQmtCQ0Ikg0JHQntCW0JjQlNCQ0KAKK9Cc0KDQmtCV0JvQkCDQnNCY0KDQkAor0JzQoNCa0JXQm9CQINCS0J7QiNCY0J0KK9Cc0KDQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCg0JrQmNCLINCc0JjQm9Ca0JAg0JzQoCDQn9ClCivQnNCg0JrQmNCLINCd0JjQmtCe0JvQkAor0JzQoNCa0JjQiyDQodCc0JjQidCQCivQnNCg0JrQntCI0JXQktCY0Isg0JrQntCh0KLQkAor0JzQoNCa0J7QiNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQoNCa0J7QitCV0JIg0JTQoNCQ0JPQkNCdCivQnNCg0JrQntCK0JjQiyDQltCY0JLQntCI0JjQnQor0JzQoNCa0J7QktCQ0KfQmtCYINCI0JXQm9CV0J3QkAor0JzQoNCa0J7QktCQ0KfQmtCYINCc0JjQm9Ce0KgKK9Cc0KDQmtCe0JLQkNCn0JrQmCDQnNCY0JvQntCS0JDQnQor0JzQoNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCg0JrQo9Co0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0KDQmtCj0KjQmNCLINCc0JjQm9CY0KbQkAor0JzQoNCa0KPQqNCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0KDQmtCj0KjQmNCLINCh0KLQldCS0JDQnQor0JzQoNCc0J7QqCDQnNCY0JvQkNCdCivQnNCg0J3Qo9Co0KLQmNCaINCh0KLQldCS0JDQnQor0JzQoNCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQoNCS0JjQiyDQodCQ0JLQkAor0JzQoNCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0KDQktCY0Isg0JLQo9Ca0J7QnNCY0KAKK9Cc0KDQktCY0KbQkCDQoNCj0JbQmNCm0JAKK9Cc0KDQktCe0Kgg0IjQntCS0JDQnQor0JzQoNCS0J7QqCDQnNCY0KXQkNCY0JvQngor0JzQoNCS0J7QqCDQnNCY0JvQkNCd0JrQkAor0JzQo9Cn0JDQm9CY0KbQkCDQlNCg0JDQk9Ce0InQo9CRCivQnNCj0KfQkNCb0J4g0KHQm9CQ0JLQmNCm0JAKK9Cc0KPQp9CQ0JvQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cc0KPQp9CQ0JvQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCj0KfQldCd0KHQmtCYINCJ0KPQkdCe0JzQmNCgCivQnNCj0KfQldCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JzQo9Cn0JXQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQnNCj0KfQmCDQgtCV0KDQgiDQlNCY0J/QmyDQmNCd0JMKK9Cc0KPQp9CYINCQ0J3QlNCg0JDQqAor0JzQo9Cn0Jgg0KTQoNCQ0IrQkAor0JzQo9Cn0Jgg0JjQm9Ce0J3QkAor0JzQo9Cn0Jgg0JjQm9Ce0J3QmtCQCivQnNCj0KfQmCDQiNCe0JbQldCkCivQnNCj0KfQmCDQiNCe0JbQldCkCivQnNCj0KfQmNCR0JDQkdCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0KPQp9CY0JHQkNCR0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQnNCj0KfQmNCR0JDQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0KPQp9CY0JHQkNCR0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQo9Cn0JjQkdCQ0JHQmNCLINCh0JDQktCeCivQnNCj0KfQmNCR0JDQkdCY0Isg0JLQldCg0JAKK9Cc0KPQp9CjINCI0J7QktCQ0J0KK9Cc0KPQp9CjINCd0JjQmtCe0JvQkAor0JzQo9Co0JDQnSDQnNCQ0KDQmNCI0JAKK9Cc0KPQqNCY0Isg0KTQoNCQ0IrQkAor0JzQo9Co0JjQptCa0Jgg0IvQmNCg0JAKK9Cc0KPQqNCY0KbQmtCYINCW0JjQktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCW0JjQktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCW0JjQktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCC0J7QoNCC0JUKK9Cc0KPQqNCY0KbQmtCYINCC0J7QoNCC0JUKK9Cc0KPQqNCY0KbQmtCYINCR0J7Qk9CU0JDQnQor0JzQo9Co0JjQptCa0Jgg0JHQntCI0JDQndCQCivQnNCj0KjQmNCm0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0KPQqNCY0KbQmtCYINCR0KDQkNCd0JrQkAor0JzQo9Co0JjQptCa0Jgg0JTQntCg0J7QotCV0IjQkAor0JzQo9Co0JjQptCa0Jgg0JTQoNCQ0JPQkNCdCivQnNCj0KjQmNCm0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0KPQqNCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCV0JLQmNCm0JAKK9Cc0KPQqNCY0KbQmtCYINCI0J7QktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCb0JDQl9CQ0KAKK9Cc0KPQqNCY0KbQmtCYINCc0JDQoNCY0IjQkAor0JzQo9Co0JjQptCa0Jgg0JzQmNCb0JDQndCQCivQnNCj0KjQmNCm0JrQmCDQnNCY0JvQldCd0JrQngor0JzQo9Co0JjQptCa0Jgg0JzQmNCb0JjQptCQCivQnNCj0KjQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9Cc0KPQqNCY0KbQmtCYINCc0JjQm9Ce0KDQkNCUCivQnNCj0KjQmNCm0JrQmCDQndCQ0KLQkNCo0JAKK9Cc0KPQqNCY0KbQmtCYINCd0J7QktCQ0JoKK9Cc0KPQqNCY0KbQmtCYINCf0KDQntCa0JAKK9Cc0KPQqNCY0KbQmtCYINCh0JvQkNCS0JrQngor0JzQo9Co0JjQptCa0Jgg0KHQm9CQ0JLQmtCeCivQnNCj0KjQmNCm0JrQmCDQodCe0KTQmNCI0JAKK9Cc0KPQqNCY0KbQmtCYINCh0KLQldCS0JDQnQor0JzQo9Co0JjQptCa0Jgg0JLQldCJ0JrQngor0JzQo9Co0JjQmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0KPQqNCY0JrQmNCLINCJ0KPQkdCY0KbQkAor0JzQo9Co0JjQmtCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0KPQqNCY0JrQmNCLINCg0JDQotCa0J4KK9Cc0KPQqNCa0JjQitCQINCR0JDQoNCY0KbQkAor0JzQo9Co0JrQmNCK0JAg0JzQmNCg0JrQngor0JzQo9CW0JXQmiDQktCY0JTQkAor0JzQo9CW0JjQiNCV0JLQmNCLINCg0JjQodCi0J4KK9Cc0KPQltCY0Jog0JHQmNCJ0JDQndCQCivQnNCj0JbQmNCaINCc0JDQotCQCivQnNCj0JbQmNCa0JAt0KLQntCiINCX0J7Qm9Ci0JDQnQor0JzQo9CW0JvQkNCYINCo0JDQndCU0J7QoAor0JzQo9CmINCX0JvQkNCi0J7QnNCY0KAKK9Cc0KPQptCYINCI0JDQndCe0KgKK9Cc0KPQlNCg0JXQndCY0Isg0JzQkNCg0JjQiNCQCivQnNCj0JTQoNCV0J3QmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9Cc0KPQlNCg0Jgg0JXQo9CT0JXQnQor0JzQo9CU0KDQmCDQiNCe0JDQmtCY0JwKK9Cc0KPQlNCg0Jgg0InQo9CR0JjQptCQCivQnNCj0JTQoNCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0KPQlNCg0Jgg0J/QldCi0JDQoAor0JzQo9CU0KDQmCDQn9CV0KLQkNCgCivQnNCj0JTQoNCYINCS0JXQoNCQINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0JzQo9CU0KDQmCDQktCb0JDQlNCQCivQnNCj0JTQoNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cc0KPQlNCg0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQo9CU0KDQmNCLINCC0KPQoNCQCivQnNCj0JTQoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQo9CU0KDQmNCLINCJ0KPQkdCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQo9CU0KDQmNCLINCf0JXQotCQ0KAKK9Cc0KPQlNCg0JjQiyDQodCb0JDQktCa0JAKK9Cc0KPQlNCg0JjQndCY0Isg0JHQntCo0JrQngor0JzQo9CU0KDQmNCd0JjQiyDQkdCe0KjQmtCeCivQnNCj0JTQoNCY0J3QmNCLINCR0KDQkNCd0JrQngor0JzQo9CU0KDQmNCd0JjQiyDQk9Ce0IjQmtCeCivQnNCj0JTQoNCY0J3QmNCLINCc0JDQiNCQCivQnNCj0JTQoNCY0J3QmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCj0JTQoNCY0J3QmNCLINCc0JjQm9CQ0J0KK9Cc0KPQlNCg0JjQndCY0Isg0JzQmNCb0JXQktCQCivQnNCj0JTQoNCY0J3QmNCLINCc0JvQkNCU0JXQnQor0JzQo9CU0KDQmNCd0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Cc0KPQlNCg0JjQndCY0Isg0KHQm9CQ0JLQmtCeCivQnNCj0JTQoNCY0J3QmNCLINCh0J/QkNCh0JXQndCa0JAKK9Cc0KPQlNCg0JjQndCY0Isg0KHQotCV0JLQngor0JzQo9CU0KDQmNCd0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0KPQlNCg0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQo9CU0KDQmNCd0JjQiyDQktCe0IjQmNCdCivQnNCj0JTQoNCY0J3QodCa0Jgg0ILQntCg0ILQlQor0JzQo9CU0KDQmNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCj0JTQoNCY0J3QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQnNCj0JTQoNCY0J3QodCa0Jgg0JHQntCh0JjQidCa0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQmNCS0JDQndCa0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQm9CQ0JfQkNCgCivQnNCj0JTQoNCY0J3QodCa0Jgg0JzQmNCb0JDQnQor0JzQo9CU0KDQmNCd0KHQmtCYINCc0JjQm9CV0KLQkAor0JzQo9CU0KDQmNCd0KHQmtCYINCc0JjQm9Ce0KgKK9Cc0KPQlNCg0JjQndCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQnNCj0JTQoNCY0J3QodCa0Jgg0J7Qm9CT0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQn9CV0KLQkNCgCivQnNCj0JTQoNCY0J3QodCa0Jgg0KHQkNCS0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQodCe0KTQmNCI0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0KPQlNCg0JjQndCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQnNCj0JPQntCo0JAg0JzQmNCb0J4KK9Cc0KPQpdCQINCX0KPQl9CQ0J3QkAor0JzQo9Cl0JDQoNCV0JzQmCDQpNCj0JDQlAor0JzQo9Cl0JDQoNCV0JzQodCa0Jgt0JHQldCL0JjQoNCe0JLQmNCLINCg0JXQnNCX0JjQiNCQCivQnNCj0KXQkNCg0Jgg0JvQkNCI0J7QqAor0JzQo9Cl0Jgg0JHQldCb0JAKK9Cc0KPQiNCQ0J3QntCS0JjQiyDQodCQ0KTQldCiCivQnNCj0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQo9CI0JDQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cc0KPQiNCV0JfQmNCd0J7QktCY0Isg0JDQm9Cc0JDQoQor0JzQo9CI0JXQl9CY0J3QntCS0JjQiyDQmNCg0JXQndCQCivQnNCj0IjQldCX0JjQndCe0JLQmNCLINCX0JvQkNCi0JDQnQor0JzQo9CI0JjQiyDQnNCY0JvQkNCdCivQnNCj0IjQmtCQ0J3QntCS0JjQiyDQodCQ0JvQmNClCivQnNCj0IjQmtCY0Isg0KjQldCk0JjQmgor0JzQo9CI0JrQmNCLINCl0JDQiNCg0KPQlNCY0J0KK9Cc0KPQiNCa0JjQiyDQmNCb0JTQo9CX0JAKK9Cc0KPQiNCa0JjQiyDQmNCX0KPQlNCY0J0KK9Cc0KPQiNCa0JjQiyDQiNCQ0JrQo9CRCivQnNCj0IjQmtCY0Isg0JzQldCl0JzQldCUCivQnNCj0Jot0KHQkNCc0JDQoNCP0JjQiyDQldCc0JAKK9Cc0KPQm9CQ0Jgg0JzQkNCi0JjQiNCQCivQnNCj0JvQkNCIINCV0KHQotCY0JrQkAor0JzQo9Cb0JDQiCDQmtCQ0KLQmNCm0JAKK9Cc0KPQm9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQo9Cb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQo9Cb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCj0JvQmNCLINCf0JXQotCQ0KAKK9Cc0KPQm9CY0Isg0KDQkNCU0JzQmNCb0J4KK9Cc0KPQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCj0JvQmNCLINCS0JXQidCa0J4KK9Cc0KPQm9CY0Isg0JfQntCg0JDQnQor0JzQo9Cc0I/QmNCLINCl0JDQl9CY0KAKK9Cc0KPQnNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQnNCY0J0g0J3QmNCa0J7Qm9CQCivQnNCj0JzQmNCd0JDQk9CY0Isg0JDQm9CY0JTQkAor0JzQo9Cc0JjQndCe0JLQmNCLINCQ0JvQmNCcCivQnNCj0JzQmNCd0J7QktCY0Isg0KXQkNCc0JXQlAor0JzQo9Cc0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Cc0KPQnNCe0JLQmNCLINCI0J7QktCQCivQnNCj0JzQntCS0JjQiyDQodCQ0JLQkAor0JzQo9Cd0IvQkNCdINCC0J7QoNCC0JUKK9Cc0KPQndCL0JDQnSDQgtCe0KDQgtCVCivQnNCj0J3Qi9CQ0J0g0ILQntCg0ILQlQor0JzQo9Cd0IvQkNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCj0J3Qi9CQ0J0g0JDQndCT0JXQm9CY0J3QkAor0JzQo9Cd0IvQkNCdINCR0J7QqNCa0J4KK9Cc0KPQndCL0JDQnSDQkdCe0KjQmtCeCivQnNCj0J3Qi9CQ0J0g0JTQoNCQ0JPQkNCdCivQnNCj0J3Qi9CQ0J0g0JTQoNCQ0JPQntCJ0KPQkQor0JzQo9Cd0IvQkNCdINCU0KPQqNCQ0J0KK9Cc0KPQndCL0JDQnSDQiNCe0JLQkNCdINCU0KAKK9Cc0KPQndCL0JDQnSDQiNCe0JLQkNCdCivQnNCj0J3Qi9CQ0J0g0JvQkNCX0JDQoAor0JzQo9Cd0IvQkNCdINCb0JDQl9CQCivQnNCj0J3Qi9CQ0J0g0JzQmNCb0JXQndCa0J4KK9Cc0KPQndCL0JDQnSDQoNCQ0JTQntCS0JDQnQor0JzQo9Cd0IvQkNCdINCh0JvQkNCS0JrQngor0JzQo9Cd0IvQkNCdINCh0J7QpNCY0IjQkAor0JzQo9Cd0IvQkNCdINCi0J7QlNCe0KAKK9Cc0KPQndCL0JDQnSDQktCQ0KHQkAor0JzQo9Cd0IvQkNCdINCS0JXQodCV0JvQmNCdCivQnNCj0J3Qi9CQ0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JzQo9Cd0IvQkNCdINCX0J7QoNCQCivQnNCj0J3Qj9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0KPQndCP0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0KPQndCP0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQo9Cd0I/QmNCLINCf0JXQotCQ0KAKK9Cc0KPQndCU0JjQndCTINCV0KLQldCb0JrQkAor0JzQo9Cd0JjQqNCY0Isg0IjQntCS0JDQnQor0JzQo9Cd0JjQltCQ0JHQkCDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0JzQo9Cd0JjQltCQ0JHQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0KPQndCY0JbQkNCR0JAg0IjQntCS0JDQnQor0JzQo9Cd0JjQltCQ0JHQkCDQmtCQ0KLQmNCm0JAKK9Cc0KPQndCY0JbQkNCR0JAg0JvQkNCX0JDQoAor0JzQo9Cd0JjQltCQ0JHQkCDQnNCY0JvQldCd0JrQngor0JzQo9Cd0JjQltCQ0JHQkCDQktCV0JTQoNCQ0J3QkAor0JzQo9Cd0JjQotCb0JDQmiDQlNCg0JDQk9CQ0J0KK9Cc0KPQitCQ0KEg0JHQntCW0JjQlNCQ0KAKK9Cc0KPQitCQ0KEg0JTQnNCY0KLQkNCgCivQnNCj0IrQkNChINCc0JjQm9CQ0J0KK9Cc0KPQitCQ0KEg0KHQmNCc0JrQkAor0JzQo9CK0JDQoSDQodCi0JDQndCQCivQnNCj0IrQmNCdINCW0JjQktCa0J4KK9Cc0KPQitCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQitCY0J0t0JHQkNCd0JjQiyDQntCb0JPQkCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQo9CK0JjQnSDQmtCQ0IjQmNCm0JAKK9Cc0KPQitCY0J0g0JvQkNCX0JDQoAor0JzQo9CK0JjQnSDQn9CV0KLQkNCgCivQnNCj0IrQmNCdINCh0JzQmNCJ0JAKK9Cc0KPQitCY0JfQkCDQltCV0InQmtCeCivQnNCj0IrQmNCX0JAg0IjQntCS0JDQndCa0JAKK9Cc0KPQndCaINCC0J7QoNCC0JUKK9Cc0KPQndCa0JAg0JTQo9Co0JDQndCa0JAKK9Cc0KPQndCa0JDQp9CYINCc0JjQpdCQ0IjQm9CeCivQnNCj0J3QotCV0JDQnSDQmNCb0JjQiNCQCivQnNCj0J3QotCV0JDQnSDQotCe0JTQntCgCivQnNCj0J3Ql9CQ0KAg0JLQldCg0JAKK9Cc0KPQoNCQ0KLQmCDQnNCY0InQkNCX0JjQnAor0JzQo9Cg0JDQotCYINCh0KLQkNCd0JAKK9Cc0KPQoNCQ0KLQntCS0JjQiyDQmNCR0KDQkNCl0JjQnAor0JzQo9Cg0JDQotCe0JLQmNCLINCI0J7QktCeCivQnNCj0KDQkNCi0J7QktCY0Isg0JzQmNCa0JAKK9Cc0KPQoNCQ0KLQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JzQo9Cg0JDQotCe0JLQmNCLINCh0JDQkdCg0JjQiNCQCivQnNCj0KDQk9CQ0KjQmtCYINCR0KDQkNCd0JrQkAor0JzQo9Cg0JPQkNCo0JrQmCDQlNCQ0J3QmNCm0JAKK9Cc0KPQoNCT0JDQqNCa0Jgg0JTQntCR0KDQldCdCivQnNCj0KDQk9CQ0KjQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQoNCT0JDQqNCa0Jgg0IjQntCS0JDQnQor0JzQo9Cg0JPQkNCo0JrQmCDQidCj0JHQmNCd0JrQkAor0JzQo9Cg0JPQkNCo0JrQmCDQnNCQ0KLQmNCI0JAKK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCl0JDQiNCb0J4KK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCb0JjQptCQCivQnNCj0KDQk9CQ0KjQmtCYINCc0JjQm9Ce0KgKK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JzQo9Cg0JPQkNCo0JrQmCDQndCV0J3QkNCUCivQnNCj0KDQk9CQ0KjQmtCYINCd0J7QktCQ0JoKK9Cc0KPQoNCT0JDQqNCa0Jgg0J/QldCi0JDQoAor0JzQo9Cg0JPQkNCo0JrQmCDQodCQ0JLQkAor0JzQo9Cg0JPQkNCo0JrQmCDQodCV0JLQldCgCivQnNCj0KDQk9CQ0KjQmtCYINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0JzQo9Cg0JPQkNCo0JrQmCDQodCS0JXQotCe0JfQkNCgCivQnNCj0KDQk9CQ0KjQmtCYINCS0KPQmtCe0KHQkNCS0JAKK9Cc0KPQoNCT0KPQmyDQidCj0JHQntCc0JjQoAor0JzQo9Cg0JPQo9Cb0J7QktCY0Isg0JzQntCc0JjQoAor0JzQo9Cg0JjQiyDQodCb0JDQktCa0J4KK9Cc0KPQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCj0KDQmNCLINCS0JXQidCa0J4KK9Cc0KPQoNCY0IrQmCDQiNCe0KHQmNCfCivQnNCj0KDQmNCK0Jgg0JrQkNCi0JjQptCQCivQnNCj0KDQmNCK0Jgg0JzQmNCb0JXQktCQCivQnNCj0KDQmNCK0Jgg0KHQotCe0IjQkNCd0JrQkAor0JzQo9Cg0J/QpdCjINCc0JjQoNCI0JDQndCQCivQnNCj0KDQodCV0JvQmCDQnNCY0KDQp9CVCivQnNCj0KDQodCV0JvQmCDQndCV0JfQmNCgCivQnNCj0KDQodCV0JvQntCS0JjQiyDQndCQ0JfQmNCkCivQnNCj0KDQodCV0JvQntCS0JjQiyDQoNCQ0JjQpAor0JzQo9Ch0JAg0JjQktCQ0J3QmtCQCivQnNCj0KHQkCDQiNCV0JvQmNCm0JAKK9Cc0KPQodCQ0KTQmNCI0JAg0JHQm9CQ0J3QmtCQCivQnNCj0KHQmNCLINCo0JDQkdCQ0J3QmNCI0JAKK9Cc0KPQodCY0Isg0KjQldCc0KHQkAor0JzQo9Ch0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0KPQodCY0Isg0JzQmNCg0JrQngor0JzQo9Ch0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQo9Ch0JjQiyDQl9Ce0KDQkNCdCivQnNCj0KHQmNCdINCa0JDQm9Cc0JDQnQor0JzQo9Ch0J7QktCh0JrQmCDQmNCh0JAKK9Cc0KPQodCi0JDQpNCY0Isg0JHQoNCQ0J3QmtCQCivQnNCj0KHQotCQ0KTQmNCLINCl0JDQoNCY0JcKK9Cc0KPQodCi0JDQpNCY0Isg0JzQmNCb0JjQptCQCivQnNCj0KHQotCQ0KTQmNCLINCh0JXQlNCQ0KIKK9Cc0KPQodCi0JDQpNCe0KHQmtCYINCR0JXQlNCg0JjQiNCQCivQnNCj0KHQotCV0JTQkNCd0JDQk9CY0Isg0JXQodCQ0JQKK9Cc0KPQodCj0JvQmNCdINCT0J7QoNCa0JgKK9Cc0KPQodCj0JvQmNCdINCc0JjQm9Ce0KDQkNCUCivQnNCj0KHQo9Cb0JjQnSDQodCb0JDQktCa0J4KK9Cc0KPQotCQ0JHQj9CY0IjQkCDQnNCY0JvQntCS0JDQnQor0JzQo9Ci0JDQktCn0JjQldCSINCY0JLQkNCdCivQnNCj0KLQkNCS0I/QmNCLLdCT0JjQntCdINCc0JDQoNCY0IjQkAor0JzQo9Ci0JDQktCP0JjQiyDQnNCY0JvQkNCdCivQnNCj0KLQkNCS0I/QmNCLINCc0JjQm9CQ0J0KK9Cc0KPQotCQ0JLQj9CY0Isg0JzQmNCb0J7QqAor0JzQo9Ci0JDQktCP0JjQiyDQoNCQ0KLQmtCeCivQnNCj0KLQkNCS0I/QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0KPQotCQ0JLQj9CY0Isg0JLQldCJ0JrQngor0JzQo9Ci0JDQktCP0JjQiyDQl9Cb0JDQotCQCivQnNCj0KLQkNCS0I/QmNCI0JAg0JzQmNCg0IjQkNCd0JAKK9Cc0KPQotCY0Isg0JbQmNCS0JrQngor0JzQo9Ci0JjQiyDQkdCg0JDQndCa0J4KK9Cc0KPQotCY0Isg0JTQo9Co0JDQnQor0JzQo9Ci0JjQiyDQlNCj0KjQkNCdCivQnNCj0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0KPQotCY0Isg0JTQo9Co0JjQptCQCivQnNCj0KLQmNCLINCa0JDQnNCV0J3QmtCeCivQnNCj0KLQmNCLINCJ0JjQidCQ0J3QkAor0JzQo9Ci0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCj0KLQmNCLINCh0JzQmNCJ0JAKK9Cc0KPQotCY0JHQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQnNCj0KLQmNCR0JDQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQotCY0JHQkNCg0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCj0KLQmNCR0JDQoNCY0Isg0JjQoNCV0J3QkAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCb0JjQkdCj0KjQkAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0KPQotCY0JHQkNCg0JjQiyDQnNCY0JvQlQor0JzQo9Ci0JjQkdCQ0KDQmNCLINCd0JDQotCQ0KjQkAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQo9Ci0JjQkdCQ0KDQmNCLINCi0J7QlNCe0KAKK9Cc0KPQotCY0J0g0ILQntCg0ILQlQor0JzQo9Ci0JjQnSDQldCc0JjQmwor0JzQo9Ci0JjQnSDQl9CU0KDQkNCS0JrQngor0JzQo9CX0JDQm9CV0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQl9CV0JrQkCDQnNCQ0KDQmNCI0JDQndCQCivQnNCj0JfQldCgINCk0KDQkNCK0JAKK9Cc0KPQl9CV0KAg0JzQmNCg0J7QodCb0JDQkgor0JzQo9CX0JXQoCDQoNCQ0JTQntCh0JvQkNCSCivQnNCj0JfQmNCa0KDQkNCS0JjQiyDQkdCb0JDQltCeCivQnNCj0JfQmNCa0KDQkNCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQndCQ0Kcg0JDQndCU0KDQmNCI0JAKK9Cd0JDQp9CQINCI0JDQndCe0KgKK9Cd0JDQp9CQINCI0J7QodCY0J8KK9Cd0JDQp9CQINCe0KLQmNCb0JjQiNCQCivQndCQ0KjQmNCT0JDQi9CY0J0g0JzQmNCb0JXQndCa0J4KK9Cd0JDQi9Cj0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JDQi9Cj0Jog0JjQoNCY0J3QkAor0J3QkNCCINCn0J7QndCT0J7QoAor0J3QkNCCINCn0J7QndCT0J7QoAor0J3QkNCCINCo0JDQndCU0J7QoAor0J3QkNCCINCo0JDQndCU0J7QoAor0J3QkNCCINCC0JXQoNCCCivQndCQ0IIt0JDQkdCe0IrQmCDQk9CQ0JHQntCgCivQndCQ0IIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JDQgiDQkNCd0JAKK9Cd0JDQgiDQkNCd0JPQldCb0JAKK9Cd0JDQgiDQkdCQ0KDQkdCQ0KDQkAor0J3QkNCCINCR0JXQm9CQCivQndCQ0IIg0JHQoNCQ0J3QmtCQCivQndCQ0IIg0JTQldCW0JUKK9Cd0JDQgi3QlNCe0KDQntCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0JDQgiDQlNCg0JDQk9CY0KHQm9CQ0JIKK9Cd0JDQgiDQlNCj0KjQkNCd0JrQkAor0J3QkNCCINCV0KDQltCV0JHQldCiCivQndCQ0IIg0JXQotCV0JsKK9Cd0JDQgiDQldCj0KTQldCc0JjQiNCQCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIt0KTQntCg0JrQkNCoINCa0JDQotCY0KbQkAor0J3QkNCCINCk0KDQkNCK0JAKK9Cd0JDQgiDQpNCg0JDQitCQCivQndCQ0IIg0KTQoNCQ0IrQkAor0J3QkNCCINCT0JXQntCg0JPQmNCd0JAKK9Cd0JDQgiDQk9CY0JfQldCb0JAKK9Cd0JDQgi3QpdCV0JLQldCo0Jgg0JvQkNCh0JvQngor0J3QkNCCINCY0KjQotCS0JDQnQor0J3QkNCCINCY0KjQotCS0JDQnQor0J3QkNCCINCY0JvQntCd0JAKK9Cd0JDQgiDQmNCc0KDQlQor0J3QkNCCINCY0KDQmNCd0JAKK9Cd0JDQgiDQmNCS0JDQnQor0J3QkNCCINCI0JDQndCe0KgKK9Cd0JDQgiDQiNCQ0J3QntCoCivQndCQ0IIg0IjQntCW0JXQpAor0J3QkNCCINCI0J7QltCV0KQKK9Cd0JDQgiDQiNCe0JbQldCkCivQndCQ0IIg0IjQntCW0JXQpAor0J3QkNCCINCI0J7QodCY0J8KK9Cd0JDQgiDQiNCe0KHQmNCfCivQndCQ0IIg0IjQntCh0JjQnwor0J3QkNCCINCI0J7QodCY0J8KK9Cd0JDQgiDQiNCe0KHQmNCfCivQndCQ0IIg0IjQntCh0JjQnwor0J3QkNCCINCI0J7QktCQ0J3QmtCQCivQndCQ0IIg0IjQntCS0JDQnQor0J3QkNCCINCa0JDQoNCb0J4KK9Cd0JDQgiDQmtCQ0KDQntCJCivQndCQ0IIg0JrQkNCg0J7QiQor0J3QkNCCINCa0JDQotCQ0KDQmNCd0JAKK9Cd0JDQgiDQm9CQ0JTQmNCh0JvQkNCSCivQndCQ0IIg0JvQkNCI0J7QqAor0J3QkNCCINCb0JDQiNCe0KgKK9Cd0JDQgiDQm9CQ0KHQm9CeINCU0JjQn9CbINCY0J3Qkwor0J3QkNCCINCb0JDQodCb0J4KK9Cd0JDQgiDQm9CQ0KHQm9CeCivQndCQ0IIg0JvQkNCh0JvQngor0J3QkNCCINCb0JDQodCb0J4KK9Cd0JDQgiDQm9CQ0KHQm9CeCivQndCQ0IIg0JvQldCe0J3QkAor0J3QkNCCINCb0JXQntCd0JAKK9Cd0JDQgiDQidCj0JHQmNCm0JAKK9Cd0JDQgiDQnNCQ0KDQk9CQ0KDQldCi0JAKK9Cd0JDQgiDQnNCQ0KDQmNCI0JAKK9Cd0JDQgiDQnNCQ0KDQmNCI0JAKK9Cd0JDQgiDQnNCQ0KDQotCe0J0KK9Cd0JDQgi3QnNCV0InQmtCj0KLQmCDQldCU0JjQogor0J3QkNCCINCc0JjQpdCQ0IjQm9CeCivQndCQ0IIg0JzQmNCl0JDQiQor0J3QkNCCINCc0JjQoNCQCivQndCQ0IIg0JzQmNCg0JAKK9Cd0JDQgiDQnNCY0KDQkAor0J3QkNCCINCc0JjQoNCI0JDQndCQCivQndCQ0IIg0J3QkNCd0JTQntCgCivQndCQ0IIg0J3QkNCd0JTQntCgCivQndCQ0IIg0J3QldCS0JXQndCa0JAKK9Cd0JDQgiDQndCY0JrQntCb0JAKK9Cd0JDQgiDQndCe0JLQmNCm0JAKK9Cd0JDQgiDQntCi0J4KK9Cd0JDQgiDQntCi0J4KK9Cd0JDQgiDQn9CQ0JLQm9CVCivQndCQ0IIg0J/QkNCS0JvQlQor0J3QkNCCINCf0JXQotCQ0KAKK9Cd0JDQgiDQn9CV0KLQkNCgCivQndCQ0IIg0J/QldCi0JDQoAor0J3QkNCCINCf0JXQotCV0KAKK9Cd0JDQgiDQn9CY0KDQntCo0JrQkAor0J3QkNCCINCf0JjQoNCe0KjQmtCQCivQndCQ0IIt0J/QntCf0J7QkiDQptCV0KbQmNCb0JjQiNCQCivQndCQ0IIg0KDQntCX0JAKK9Cd0JDQgiDQodCb0JDQktCa0J4KK9Cd0JDQgiDQodCi0JXQktCQ0J0KK9Cd0JDQgiDQodCi0JXQktCQ0J0KK9Cd0JDQgiDQodCS0IjQkNCi0J7QodCb0JDQkgor0J3QkNCCLdCi0JDQndCQ0KHQmtCe0JLQmNCLINCI0KPQm9CY0IjQkAor0J3QkNCCINCi0JjQkdCe0KAKK9Cd0JDQgiDQktCQ0KHQmNCb0JjQiNCVCivQndCQ0IIg0JLQldCg0J7QndCQCivQndCQ0IIg0JLQmNCa0KLQntCg0JjQiNCQCivQndCQ0IIg0JLQm9CQ0JTQmNCc0JjQoAor0J3QkNCCINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JDQgiDQktCb0JDQlNCY0JzQmNCgCivQndCQ0IIg0JLQm9CQ0JTQmNCc0JjQoAor0J3QkNCCINCX0JvQkNCi0JjQnNCY0KAKK9Cd0JDQgiDQl9Ce0JvQotCQ0J0KK9Cd0JDQgtCQ0JvQmNCdINCR0KDQkNCd0JrQngor0J3QkNCC0JDQm9CY0J0g0JjQodCQCivQndCQ0ILQkdCQ0JHQmCDQpNCV0KDQldCd0KYKK9Cd0JDQgtCR0JDQkdCYINCk0JXQoNCV0J3Qpgor0J3QkNCC0JHQkNCR0Jgg0JjQk9Ce0KAKK9Cd0JDQgtCR0JDQkdCYINCY0JLQmtCQCivQndCQ0ILQkdCQ0JHQmCDQiNCQ0J3QmNCa0JAKK9Cd0JDQgtCV0KDQgiDQmNCb0J7QndCa0JAKK9Cd0JDQgtCT0JXQm9CV0KDQoiDQiNCQ0J3QntCoCivQndCQ0ILQpdCV0ILQldCo0Jgg0KTQoNCQ0IrQkAor0J3QkNCC0KXQldCC0JXQqNCYINCI0J7QktCQ0J0KK9Cd0JDQgtCl0JXQgtCV0KjQmCDQm9CQ0JTQmNCh0JvQkNCSCivQndCQ0ILQmNCU0JDQmCDQmtCQ0KDQntCJCivQndCQ0ILQnNCV0InQmtCj0KLQmCDQmtCb0JDQoNCQCivQndCQ0ILQnNCY0IvQniDQktCV0KHQldCb0JjQndCQCivQndCQ0ILQntCg0IIg0KHQkNCo0JAKK9Cd0JDQgtCf0JDQmyDQmNCg0JXQndCa0JAKK9Cd0JDQgtCS0JjQndCh0JrQmCDQmtCh0JXQndCY0IjQkAor0J3QkNCC0JLQmNCd0KHQmtCYINCf0JXQotCQ0KAKK9Cd0JDQptCV0JIg0JPQoNCj0IjQngor0J3QkNCU0JDQqNCa0Jgg0JvQkNCX0JDQoAor0J3QkNCU0JDQqNCa0Jgg0JzQmNCb0JjQktCe0IgKK9Cd0JDQlNCQ0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JDQlNCQ0KjQmtCY0Isg0JrQkNCi0JjQptCQCivQndCQ0JTQkNCW0JTQmCDQoNCj0JbQmNCm0JAKK9Cd0JDQlNCQ0KDQldCS0JjQiyDQkdCe0KDQmNChCivQndCQ0JTQkdCQ0J3QlNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0J3QkNCU0JHQkNCd0KLQmNCLINCd0JDQlNCQCivQndCQ0JTQmNClINCk0KDQmNCU0KDQmNClCivQndCQ0JTQmNClINCc0JjQoNCa0J4KK9Cd0JDQlNCb0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JDQlNCb0JDQp9Ca0Jgg0JzQmNCb0J7QiNCVCivQndCQ0JTQm9CQ0KfQmtCYINCg0JDQlNCY0JLQntCICivQndCQ0JTQm9CQ0KfQmtCYINCg0JDQlNCe0JLQkNCdCivQndCQ0JTQm9CQ0KfQmtCYINCh0KLQldCS0JrQkAor0J3QkNCU0JvQo9Ca0JDQpyDQnNCQ0KDQmNCI0JAKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCU0JDQndCY0JvQmtCQCivQndCQ0JTQoNCJ0JDQndCh0JrQmCDQidCY0InQkNCd0JAKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCJ0KPQkdCY0KjQkAor0J3QkNCU0KDQidCQ0J3QodCa0Jgg0JzQmNCb0JjQktCe0IgKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0J3QkNCV0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JDQk9Cb0JjQiyDQodCb0JDQktCa0J4KK9Cd0JDQk9Cg0JDQlNCY0Isg0IjQldCb0JXQndCQCivQndCQ0JPQoNCQ0JTQmNCLINCJ0KPQkdCY0KbQkAor0J3QkNCl0JvQntCS0KHQmtCYINCI0J7QltCV0KQKK9Cd0JDQiNCR0JDQo9CV0KAg0JjQktCQ0J0KK9Cd0JDQiNCU0JDQndCe0JIg0JPQldCe0KDQk9CYCivQndCQ0IjQlNCQ0J3QntCSINCY0JLQkNCdCivQndCQ0IjQlNCV0Jog0JLQmNCd0JrQngor0J3QkNCI0JTQntCS0KHQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9Cd0JDQiNCU0J7QktCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQndCQ0IjQmNCLINCQ0J3QmtCY0KbQkAor0J3QkNCI0JjQiyDQnNCY0JvQldCd0JrQngor0J3QkNCI0JjQiyDQl9Ce0KDQmNCm0JAKK9Cd0JDQiNCS0JjQoNCiINCT0J7QotCk0KDQmNCUCivQndCQ0IjQktCY0KDQoiDQiNCe0JLQkNCdCivQndCQ0JrQkNCg0JDQlNCQINCU0JDQoNCY0J3QmtCQCivQndCQ0JrQkNCg0JDQlNCY0Isg0InQo9CR0J4KK9Cd0JDQmtCY0Isg0JTQoNCQ0JPQkNCdCivQndCQ0JrQmNCLINCY0JLQkNCdCivQndCQ0JrQmNCLINCI0JDQitCQCivQndCQ0JrQmNCLINCJ0KPQkdCY0J3QmtCQCivQndCQ0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQndCQ0JrQmNCLINCh0KLQldCS0JDQnQor0J3QkNCa0J7QnNCn0JjQiyDQl9Ce0KDQmtCQCivQndCQ0JrQntCSINCI0J7QoNCU0JDQnQor0J3QkNCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0J3QkNCb0JjQiyDQldCd0JjQodCQCivQndCQ0JzQldCh0J3QmNCaINCe0JvQk9CQCivQndCQ0JzQm9CY0ILQmCDQpNCV0KDQmNCU0JAKK9Cd0JDQndCQ0KjQmCDQltCe0JvQogor0J3QkNCd0JDQqNCYINCQ0JPQkNCi0JAKK9Cd0JDQndCQ0KjQmCDQiNCj0JvQmNCI0JDQndCQCivQndCQ0J3QmNCLINCC0J7QmtCQCivQndCQ0J3QntCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JDQndCe0JLQodCa0JjQiCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QkNCe0JTQntCS0JjQiyDQn9CQ0JLQm9CVCivQndCQ0KDQkNCYINCk0JXQoNCV0J3Qpgor0J3QkNCg0JDQndCn0JjQiyDQmNCb0J7QndCa0JAKK9Cd0JDQoNCQ0J3Qp9CY0Isg0JzQmNCb0JUKK9Cd0JDQoNCQ0J3Qp9CY0Isg0JzQmNCb0JUKK9Cd0JDQoNCQ0J3Qp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JDQoNCQ0J3Qp9CY0Isg0J3QkNCU0JAKK9Cd0JDQoNCQ0J3Qp9CY0Isg0J/QldCi0JDQoAor0J3QkNCg0JDQndCn0JjQiyDQn9CV0KLQkNCgCivQndCQ0KDQkNCd0KfQmNCLINCf0JXQotCQ0KAKK9Cd0JDQoNCQ0J3Qp9CY0Isg0J/QldCi0JDQoAor0J3QkNCg0JDQndCn0JjQiyDQodCQ0JLQkAor0J3QkNCg0JDQndCn0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JDQoNCQ0J3Qp9CY0Isg0KHQotCV0JLQkNCdCivQndCQ0KDQkNCd0KfQmNCLINCh0KPQl9CQ0J3QkAor0J3QkNCg0JDQndCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCQ0KDQkNCd0I/QmNCLINCU0JDQoNCa0J4KK9Cd0JDQoNCQ0J3Qj9CY0Isg0JXQktCQCivQndCQ0KDQkNCd0I/QmNCLINCc0JjQm9CQ0J0KK9Cd0JDQoNCQ0J3Qj9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JDQoNCQ0J3Qj9CY0Isg0JLQldCg0JAKK9Cd0JDQoNCY0Isg0J3QldCU0JXQidCa0J4KK9Cd0JDQoSDQgtCV0KDQggor0J3QkNChINCk0JXQoNCV0J3Qpgor0J3QkNChINCk0KDQkNCK0JAKK9Cd0JDQoSDQmtCQ0KDQm9CeCivQndCQ0KHQmtCe0JLQmNCLINCR0JvQkNCW0JAKK9Cd0JDQodCa0J7QktCY0Isg0JfQntCg0JrQkAor0J3QkNCh0J7QkiDQnNCY0JvQmNCS0J7QiAor0J3QkNCh0KLQkNCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JDQodCi0JDQodCY0Isg0JjQktCQ0J0KK9Cd0JDQodCi0JDQodCY0Isg0IjQldCb0JXQndCQCivQndCQ0KHQotCQ0KHQmNCLINCJ0JjQidCQ0J3QkAor0J3QkNCh0KLQkNCh0JjQiyDQn9CQ0JLQm9CVCivQndCQ0KHQotCQ0KHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cd0JDQodCi0JDQodCY0Isg0KHQotCV0JLQkNCdINCU0KAg0JvQldCa0JDQoAor0J3QkNCh0KLQkNCh0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J3QkNCh0KLQkNCh0JjQiyDQotCV0J7QlNCe0KAKK9Cd0JDQodCi0JDQodCY0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCQ0KHQotCQ0KHQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JDQodCi0JDQodCe0JLQmNCLINCi0J7QndCn0JAKK9Cd0JDQodCi0JXQktCY0Isg0KLQntCU0J7QoAor0J3QkNCh0KLQmNCLINCY0KDQldCd0JAKK9Cd0JDQodCi0JjQiyDQm9CV0J/QntCh0JDQktCQCivQndCQ0KHQotCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cd0JDQodCi0JjQiyDQnNCY0JvQldCd0JAKK9Cd0JDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cd0JDQodCi0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QkNCh0KLQmNCLINCd0JjQmtCe0JvQldCi0JAKK9Cd0JDQodCi0JjQiyDQntCb0JPQkAor0J3QkNCh0KLQmNCLINCg0JDQlNCVCivQndCQ0KHQotCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cd0JDQodCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QkNCh0KLQmNCLINCg0JDQotCe0JzQmNCgCivQndCQ0KHQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QkNCh0KLQmNCLINCS0JvQkNCU0JAKK9Cd0JDQodCi0JjQiyDQl9Ce0KDQkNCdINCU0KAg0JvQldCa0JDQoAor0J3QkNCh0KLQntCSINCa0JjQoNCeCivQndCQ0KHQotCe0JLQodCa0Jgg0JTQoNCQ0JPQngor0J3QkNCi0J7QqNCV0JLQmNCLINCU0JXQiNCQ0J0KK9Cd0JDQo9Cc0J7QkiDQgtCe0KDQgtCVCivQndCQ0KPQnNCe0JIg0JHQoNCQ0J3QmtCQCivQndCQ0KPQnNCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J3QkNCj0JzQntCSINCa0JDQotCQ0KDQmNCd0JAKK9Cd0JDQo9Cc0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQndCQ0KPQnNCe0JIg0JzQmNCb0JXQndCQCivQndCQ0KPQnNCe0JIg0JzQmNCb0JjQktCe0IgKK9Cd0JDQo9Cc0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JDQo9Cc0J7QktCY0Isg0IjQldCb0JjQptCQCivQndCQ0KPQnNCe0JLQmNCLINCc0JjQm9CY0JLQntCIINCU0KAKK9Cd0JDQo9Cc0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCQ0KPQnNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JDQo9Cc0J7QktCh0JrQmCDQnNCY0KDQmtCeCivQndCQ0KPQnNCe0JLQodCa0Jgg0J3QmNCa0J7Qm9CQCivQndCQ0KPQnNCe0JLQodCa0Jgg0KHQntCK0JAKK9Cd0JDQo9Cc0J7QktCh0JrQmCDQodCi0J7QiNCQ0J0KK9Cd0JDQo9Cc0J7QktCh0JrQmCDQotCQ0J3QkNChCivQndCQ0KPQndCa0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0J3QkNCj0J3QmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0J3QkNCS0JDQm9CQINCd0JjQmtCe0JvQkAor0J3QkNCS0JDQm9Cj0KjQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cd0JDQktCQ0JvQo9Co0JjQiyDQktCe0IjQmNCdCivQndCQ0JLQoNCQ0KLQmNCbINCC0KPQoNCQCivQndCQ0JLQoNCQ0KLQmNCbINCI0J7QodCY0J8KK9Cd0JDQktCg0JDQotCY0Jsg0IjQntCh0JjQnwor0J3QkNCS0KDQkNCi0JjQmyDQodCb0J7QkdCe0JTQkNCdCivQndCQ0JLQoNCQ0KLQmNCbINCX0JTQldCd0JrQngor0J3QkNCS0KDQkNCi0JjQmyDQl9Ce0KDQkNCdCivQndCQ0JfQlNCg0JDQktCV0KbQmtCYINCQ0J3QlNCg0JDQqAor0J3QldCn0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cd0JXQqNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQndCV0KjQldCS0JjQiyDQkNCd0ILQldCb0JrQngor0J3QldCo0JjQiyDQkNCm0JAKK9Cd0JXQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQqNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cd0JXQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9Cd0JXQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCV0KjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J3QldCo0JjQiyDQlNCj0KjQkNCdCivQndCV0KjQmNCLINCI0JXQpNCi0JAKK9Cd0JXQqNCY0Isg0IjQntCS0JDQnQor0J3QldCo0JjQiyDQiNCe0JLQkNCdCivQndCV0KjQmNCLINCI0J7QktCQ0J0KK9Cd0JXQqNCY0Isg0IjQntCS0JDQnQor0J3QldCo0JjQiyDQmtCe0KHQkNCd0JAKK9Cd0JXQqNCY0Isg0JvQldCd0JrQkAor0J3QldCo0JjQiyDQm9CV0J7QndCY0JQKK9Cd0JXQqNCY0Isg0InQmNCJ0JDQndCQCivQndCV0KjQmNCLINCc0JDQoNCI0JDQnQor0J3QldCo0JjQiyDQnNCY0JvQkNCdCivQndCV0KjQmNCLINCc0JjQm9CQ0J0KK9Cd0JXQqNCY0Isg0JzQmNCb0JDQnQor0J3QldCo0JjQiyDQnNCY0JvQldCd0JrQngor0J3QldCo0JjQiyDQnNCY0JvQmNCm0JAKK9Cd0JXQqNCY0Isg0JzQmNCb0JjQktCe0IgKK9Cd0JXQqNCY0Isg0JzQmNCb0JrQkAor0J3QldCo0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QldCo0JjQiyDQnNCY0KDQkAor0J3QldCo0JjQiyDQnNCY0KDQmtCeCivQndCV0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0J3QldCo0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JXQqNCY0Isg0JzQm9CQ0JTQldCdCivQndCV0KjQmNCLINCd0JXQlNCV0InQmtCeCivQndCV0KjQmNCLINCf0JXQotCQ0KAKK9Cd0JXQqNCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cd0JXQqNCY0Isg0KHQkNCS0JXQotCQCivQndCV0KjQmNCLINCh0JjQnNCV0J7QnQor0J3QldCo0JjQiyDQodCb0JDQktCa0J4KK9Cd0JXQqNCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0J3QldCo0JjQiyDQotCe0JTQntCgCivQndCV0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JXQqNCY0J0g0JbQkNCg0JrQngor0J3QldCo0JjQnSDQiNCe0JLQkNCd0JAKK9Cd0JXQqNCY0J0g0IjQntCS0JDQnQor0J3QldCo0JjQnSDQnNCQ0KDQmtCeCivQndCV0KjQmNCdINCh0KLQldCS0JDQnQor0J3QldCo0JrQntCSINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgCivQndCV0KjQmtCe0JIg0KHQotCQ0J3QmNCh0JvQkNCSCivQndCV0KjQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0J3QldCo0JrQntCS0JjQiyDQgtCj0KDQgtCQCivQndCV0KjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCV0KjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J3QldCo0JrQntCS0JjQiyDQmNCg0JXQndCQCivQndCV0KjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J3QldCo0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQmNCI0JDQnQor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQndCV0KjQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCi0JAKK9Cd0JXQqNCa0J7QktCY0Isg0J3QldCo0JrQngor0J3QldCo0JrQntCS0JjQiyDQn9CV0KDQmNCm0JAKK9Cd0JXQqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QldCo0JrQntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QldCo0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QldCo0JrQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9Cd0JXQqNCa0J7QktCY0Isg0KDQldCI0JzQntCd0JQKK9Cd0JXQqNCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQndCV0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0J3QldCo0JrQntCS0JjQiy3Ql9CU0KDQkNCS0JjQiyDQktCV0KDQmNCm0JAKK9Cd0JXQqNCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQndCV0KjQntCS0JjQiyDQlNCg0JDQk9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCV0KjQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0J3QldCo0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCV0KjQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cd0JXQqNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCV0KjQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J3QldCo0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JXQqNCe0JLQmNCLINCg0KPQltCY0KbQkAor0J3QldCo0J7QktCY0Isg0KLQoNCY0JLQmtCQCivQndCV0KjQotCY0KbQmtCYINCI0J7QodCY0J8KK9Cd0JXQqNCi0JjQptCa0Jgg0IjQntCh0JjQnwor0J3QldCo0KLQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9Cd0JXQqNCi0JjQptCa0Jgg0KHQotCV0JLQkNCdCivQndCV0IvQkNCaINCC0J7QoNCC0JUKK9Cd0JXQi9CQ0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQi9CQ0Jog0JHQoNCQ0J3QmtCeCivQndCV0IvQkNCaLdCa0J7QoNCQ0Isg0JDQndCC0JXQm9Ca0JAKK9Cd0JXQi9CQ0Jog0KHQotCV0JLQkNCdCivQndCV0IvQkNCaINCS0JXQoNCQCivQndCV0IvQkNCaINCX0JTQoNCQ0JLQmtCeCivQndCV0IvQkNCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Cd0JXQi9CQ0JrQntCSINCc0JjQm9CQ0J0KK9Cd0JXQi9CQ0JrQntCSINCc0JjQm9Ca0JAKK9Cd0JXQi9CQ0JrQntCSINCh0JjQnNCQCivQndCV0IvQkNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQndCV0JbQmNCLINCU0JDQnNCY0KAKK9Cd0JXQkNCi0J3QmNCm0JAg0JTQo9Co0JDQnQor0J3QldCQ0KLQndCY0KbQkCDQoNCQ0JTQmNCS0J7QiCDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQkdCV0KHQndCYINCR0J7QoNCY0KEKK9Cd0JXQkdCe0IjQqNCQINCh0J7QpNCY0IjQkAor0J3QldCR0KDQmNCT0JjQiyDQiNCe0JLQmNCm0JAKK9Cd0JXQkdCg0JjQk9CY0Isg0KDQkNCi0JrQngor0J3QldCm0JXQkiDQlNCg0JDQk9Ce0InQo9CRCivQndCV0KbQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0JXQptCY0Isg0KLQntCo0JAKK9Cd0JXQptCY0J0g0JbQmNCS0JjQptCQCivQndCV0KbQmNCdINCh0KLQldCS0JAKK9Cd0JXQptCY0J0g0JLQntCI0JAKK9Cd0JXQptCY0J0g0JfQm9CQ0KLQntCc0JjQoAor0J3QldCm0JrQntCSINCU0KDQkNCT0JjQitCQCivQndCV0KbQmtCe0JIg0JPQntCg0JDQnQor0J3QldCm0JrQntCSINCa0JDQotCY0KbQkAor0J3QldCm0JrQntCSINCb0JDQl9CQ0KAKK9Cd0JXQptCa0J7QkiDQm9Ce0JfQmNCd0JrQkAor0J3QldCm0JrQntCSINCc0JDQoNCY0IjQkAor0J3QldCm0JrQntCSINCc0JjQoNCI0JDQndCQCivQndCV0KbQmtCe0JIg0JzQntCc0KfQmNCb0J4KK9Cd0JXQptCa0J7QkiDQndCY0JrQntCb0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JbQmNCS0JrQngor0J3QldCU0JXQidCa0J7QkiDQltCY0JLQmtCeCivQndCV0JTQldCJ0JrQntCSINCC0J7QoNCC0JUKK9Cd0JXQlNCV0InQmtCe0JIg0ILQntCg0ILQlQor0J3QldCU0JXQidCa0J7QkiDQgtCe0KDQgtCVCivQndCV0JTQldCJ0JrQntCSINCQ0J3QgtCV0JvQmtCQCivQndCV0JTQldCJ0JrQntCSINCQ0J3QmtCQCivQndCV0JTQldCJ0JrQntCSINCU0JXQodCQ0J3QmtCQCivQndCV0JTQldCJ0JrQntCSINCU0KDQkNCT0JDQnQor0J3QldCU0JXQidCa0J7QkiDQlNCg0JDQk9CY0IrQkAor0J3QldCU0JXQidCa0J7QkiDQlNCj0KjQkNCdCivQndCV0JTQldCJ0JrQntCSINCY0JvQmNCI0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JjQoNCV0J3QkAor0J3QldCU0JXQidCa0J7QkiDQmNCS0JDQnQor0J3QldCU0JXQidCa0J7QkiDQiNCV0JvQldCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0IjQntCS0JDQnQor0J3QldCU0JXQidCa0J7QkiDQiNCe0JLQkNCdCivQndCV0JTQldCJ0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JrQkNCi0JjQptCQCivQndCV0JTQldCJ0JrQntCSINCa0KDQodCi0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JvQkNCX0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQlNCV0InQmtCe0JIg0JvQmNCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0InQmNCJ0JDQndCQCivQndCV0JTQldCJ0JrQntCSINCJ0KPQkdCY0KbQkAor0J3QldCU0JXQidCa0J7QkiDQidCj0JHQmNCm0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JzQkNCg0JjQiNCQCivQndCV0JTQldCJ0JrQntCSINCc0JDQoNCY0IjQkAor0J3QldCU0JXQidCa0J7QkiDQnNCQ0KDQmtCeCivQndCV0JTQldCJ0JrQntCSINCc0JjQm9CQ0J0KK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0J3QldCU0JXQidCa0J7QkiDQnNCY0JvQntCoCivQndCV0JTQldCJ0JrQntCSINCc0JjQoNCI0JDQndCQCivQndCV0JTQldCJ0JrQntCSINCc0JjQoNCa0J4KK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCg0J7QodCb0JDQktCQCivQndCV0JTQldCJ0JrQntCSINCc0JjQotCQCivQndCV0JTQldCJ0JrQntCSINCe0JvQk9CQCivQndCV0JTQldCJ0JrQntCSINCe0JvQk9CQCivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCVCivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCY0JLQntCICivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCe0IjQmtCQCivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCe0JzQmNCgCivQndCV0JTQldCJ0JrQntCSINCh0JjQndCY0KjQkAor0J3QldCU0JXQidCa0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JIg0KLQldCe0JTQntCg0JAKK9Cd0JXQlNCV0InQmtCe0JIg0KLQntCc0JjQodCb0JDQkgor0J3QldCU0JXQidCa0J7QkiDQktCY0J3QmtCQCivQndCV0JTQldCJ0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQndCV0JTQldCJ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQndCV0JTQldCJ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQkdCe0JPQntCc0JjQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCR0J7QoNCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0KPQm9Ca0JjQptCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQiNCj0KHQotCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQkNCg0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQm9CY0IjQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQm9Ce0IjQmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQntCI0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQn9CQ0JLQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCY0JzQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQmNCc0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0KDQldCi0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQndCV0JTQldCJ0JrQntCS0JjQiyDQktCV0KDQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIg0JTQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J3QldCU0JXQidCa0J7QktCY0Isg0JLQo9Cn0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCX0JvQkNCi0JAKK9Cd0JXQlNCY0Isg0KjQn9CY0KDQngor0J3QldCU0JjQiyDQkdCY0InQkNCd0JAKK9Cd0JXQlNCY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QldCU0JjQiyDQkdCe0KDQiNCQ0J3QmtCQCivQndCV0JTQmNCLINCU0JDQoNCY0J3QmtCQCivQndCV0JTQmNCLINCU0JXQodCQ0J3QmtCQINCf0KDQntCk0JXQodCe0KAKK9Cd0JXQlNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQndCV0JTQmNCLINCI0JXQm9CV0J3QkAor0J3QldCU0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J3QldCU0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J3QldCU0JjQiyDQiNCe0JLQkNCdCivQndCV0JTQmNCLINCa0JDQotCY0KbQkAor0J3QldCU0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JXQlNCY0Isg0JvQkNCX0JDQoAor0J3QldCU0JjQiyDQm9CQ0JfQkNCgCivQndCV0JTQmNCLINCb0JDQl9CQ0KAKK9Cd0JXQlNCY0Isg0JvQkNCX0JDQoAor0J3QldCU0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JXQlNCY0Isg0JzQldCb0JDQndCY0IjQkAor0J3QldCU0JjQiyDQnNCY0JvQkNCdCivQndCV0JTQmNCLINCc0JjQm9CQ0J0KK9Cd0JXQlNCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JjQiyDQnNCY0JvQldCd0JrQngor0J3QldCU0JjQiyDQnNCY0JvQntCoCivQndCV0JTQmNCLINCc0JjQm9Ce0IjQlQor0J3QldCU0JjQiyDQnNCY0JvQntCS0JDQnQor0J3QldCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCV0JTQmNCLINCc0JvQkNCU0JXQnQor0J3QldCU0JjQiyDQndCV0J3QkNCUCivQndCV0JTQmNCLINCd0JjQmtCe0JvQkAor0J3QldCU0JjQiyDQn9CV0KLQkNCgCivQndCV0JTQmNCLINCg0JDQlNCe0KgKK9Cd0JXQlNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JXQlNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J3QldCU0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQndCV0JTQmNCLINCh0JDQktCQCivQndCV0JTQmNCLINCh0JzQmNCJ0JAKK9Cd0JXQlNCY0Isg0KHQndCV0JbQkNCd0JAKK9Cd0JXQlNCY0Ist0KHQoNCV0JzQkNCmINCd0JDQlNCQCivQndCV0JTQmNCLINCh0KLQldCS0JDQnQor0J3QldCU0JjQiyDQktCV0KDQkAor0J3QldCU0JjQiyDQktCY0JTQkAor0J3QldCU0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCV0JTQmNCLINCX0JvQkNCi0J7QiNCVCivQndCV0JTQmNCLINCX0J7QoNCQ0J0KK9Cd0JXQlNCY0JzQntCS0JjQiyDQkdCe0JbQngor0J3QldCU0JjQnNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J3QldCU0JjQnNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQndCV0JTQmNCd0JjQiyDQodCg0JXQotCV0J0KK9Cd0JXQlNCY0J3QmNCLINCX0J7QoNCQ0J0KK9Cd0JXQlNCe0JzQkNCn0JrQmCDQnNCY0JvQkNCdCivQndCV0JTQntCc0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQndCV0JTQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cd0JXQlNCe0JLQmNCLINCc0JjQoNCeCivQndCV0JTQntCS0JjQiyDQnNCY0KDQngor0J3QldCU0J7QktCY0Isg0JLQm9CQ0JTQngor0J3QldCU0KPQp9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QldCU0KPQp9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQlNCj0KfQmNCdINCU0KDQkNCT0JjQptCQCivQndCV0JTQo9Cn0JjQnSDQm9CQ0JfQkNCgINCU0JjQn9CbINCY0J3Qkwor0J3QldCU0KPQp9CY0J0g0JzQmNCb0JXQndCQCivQndCV0JTQktCY0JTQldCaINCR0J7QoNCY0KEg0JTQoAor0J3QldCT0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JXQk9Cb0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JXQk9Ce0JLQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0J3QldCT0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cd0JXQk9Ce0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0J3QldCT0KDQoyDQkdCY0KHQldCg0JrQkAor0J3QldCT0KPQqNCV0JLQmNCLINCf0JDQiNCQCivQndCV0IjQk9CV0JHQkNCj0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCf0KDQntCkCivQndCV0JzQp9CQ0J3QmNCdINCC0KPQoNCC0JjQptCQCivQndCV0JzQp9CQ0J3QmNCdINCc0JDQoNCY0IjQkAor0J3QldCc0KfQkNCd0JjQnSDQnNCY0KDQiNCQ0J3QkAor0J3QldCc0KfQldCSINCR0J7QoNCY0JLQntCICivQndCV0JzQp9CV0JIg0JTQo9Co0JrQngor0J3QldCc0KfQldCSINCI0JXQm9CV0J3QkAor0J3QldCc0KfQldCSINCd0JjQmtCe0JvQkAor0J3QldCc0KfQldCSINCh0KDQkdCY0J3QmtCeCivQndCV0JzQp9CV0JLQmNCLINCc0JDQoNCa0J4KK9Cd0JXQnNCn0JXQktCY0Isg0J/QldCi0JDQoAor0J3QldCc0JAg0JLQkNCb0JXQoNCY0IjQkAor0J3QldCc0JXQp9CV0Jog0KDQntCW0JAKK9Cd0JXQnNCV0Kgg0IjQldCb0JAKK9Cd0JXQnNCV0Kgg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cd0JXQnNCV0KYg0JDQndCi0KPQnQor0J3QldCc0JXQpiDQkNCd0KLQo9CdCivQndCV0JzQldCmINCV0JzQkNCd0KPQldCbCivQndCV0JzQldCmINCJ0KPQlNCc0JjQm9CQCivQndCV0JzQldCiINCo0JDQndCU0J7QoAor0J3QldCc0JXQoiDQkNCd0JTQoNCY0IjQkAor0J3QldCc0JXQoiDQkNCd0KLQkNCbCivQndCV0JzQldCiINCQ0J3QotCQ0JsKK9Cd0JXQnNCV0KIg0JDQndCi0JDQmwor0J3QldCc0JXQoiDQkNCg0J/QkNCUCivQndCV0JzQldCiINCR0J7QoNCY0KHQm9CQ0JLQmtCQCivQndCV0JzQldCiINCU0JXQltCVCivQndCV0JzQldCiINCU0JXQiNCQ0J0KK9Cd0JXQnNCV0KIg0JXQoNCd0JXQodCiCivQndCV0JzQldCiINCT0JXQoNCT0JXQiQor0J3QldCc0JXQoiDQk9CV0JfQkCDQlNCgCivQndCV0JzQldCiINCT0JXQl9CQCivQndCV0JzQldCiINCY0KjQotCS0JDQnQor0J3QldCc0JXQoiDQmNCo0KLQktCQ0J0KK9Cd0JXQnNCV0KIg0JjQqNCi0JLQkNCdCivQndCV0JzQldCiINCY0JvQntCd0JAKK9Cd0JXQnNCV0KIg0JjQm9Ce0J3QkAor0J3QldCc0JXQoiDQmNCb0J7QndCa0JAKK9Cd0JXQnNCV0KIg0IjQo9Cb0JjQiNCQ0J3QkAor0J3QldCc0JXQoiDQmtCQ0KDQm9CeCivQndCV0JzQldCiINCa0JDQoNCb0J4KK9Cd0JXQnNCV0KIg0JrQkNCi0JjQptCQCivQndCV0JzQldCiINCb0JDQiNCe0KgKK9Cd0JXQnNCV0KIg0JvQkNCh0JvQngor0J3QldCc0JXQoiDQm9CQ0KHQm9CeCivQndCV0JzQldCiINCJ0JjQidCQ0J3QkAor0J3QldCc0JXQoiDQnNCQ0KDQmNCI0JDQndCQCivQndCV0JzQldCiINCc0JDQoNCY0IjQkAor0J3QldCc0JXQoiDQnNCQ0KDQmNCI0JAKK9Cd0JXQnNCV0KIg0JzQmNCl0JDQiQor0J3QldCc0JXQoiDQnNCY0JvQmtCQCivQndCV0JzQldCiINCc0JjQoNCI0JDQndCQCivQndCV0JzQldCiLdCc0KPQp9CYINCc0JDQoNCY0IjQkAor0J3QldCc0JXQoiDQntCb0JjQktCV0KDQkAor0J3QldCc0JXQoiDQntCi0J4KK9Cd0JXQnNCV0KIg0J/QldCi0JDQoAor0J3QldCc0JXQoiDQoNCe0JfQkNCb0JjQiNCQCivQndCV0JzQldCiINCg0KPQlNCe0JvQpAor0J3QldCc0JXQoiDQodCi0JXQktCQ0J0KK9Cd0JXQnNCV0KIg0KHQotCe0IjQkNCd0JrQkAor0J3QldCc0JXQoiDQotCY0JHQntCgCivQndCV0JzQldCiINCS0JjQntCb0JXQotCQCivQndCV0JzQldCiINCX0J7Qm9Ci0JDQnQor0J3QldCc0JXQoiDQl9Ce0JvQotCQ0J0KK9Cd0JXQnNCV0KLQpSDQmNCg0JXQndCQCivQndCV0J3QkNCUINCh0JjQnNCeCivQndCV0J3QkNCU0JjQiyDQnNCY0JvQkNCdCivQndCV0J3QkNCU0JjQiyDQnNCY0JvQldCd0JrQngor0J3QldCd0JDQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JXQndCQ0JTQmNCLINCg0JDQotCa0J4KK9Cd0JXQndCQ0JTQntCSINCW0JjQktCa0J4KK9Cd0JXQndCQ0JTQntCSINCQ0JzQkNCb0JjQiNCQCivQndCV0J3QkNCU0J7QkiDQkNCd0JrQkAor0J3QldCd0JDQlNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCV0J3QkNCU0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQndCV0J3QkNCU0J7QkiDQiNCV0JLQoNCe0KHQmNCc0JAKK9Cd0JXQndCQ0JTQntCSINCa0JDQnNCV0J3QmtCeCivQndCV0J3QkNCU0J7QkiDQmtCe0KHQotCQINCU0JjQn9CbINCY0J3Qkwor0J3QldCd0JDQlNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cd0JXQndCQ0JTQntCSINCc0JjQm9CV0J3QmtCeCivQndCV0J3QkNCU0J7QkiDQntCb0JPQkAor0J3QldCd0JDQlNCe0JIg0J/QldCi0JDQoAor0J3QldCd0JDQlNCe0JIg0KDQkNCI0JrQngor0J3QldCd0JDQlNCe0JIg0KHQotCV0JLQkNCdCivQndCV0J3QkNCU0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQndCV0J3QkNCU0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QldCd0JDQlNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J3QldCd0JDQlNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQndCV0J3QkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QldCd0JDQlNCe0JLQmNCLINCI0KPQm9Ca0JjQptCQCivQndCV0J3QkNCU0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cd0JXQndCQ0JTQntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgCivQndCV0J3QkNCU0J7QktCY0Isg0JzQmNCi0JDQoAor0J3QldCd0JDQlNCe0JLQmNCLINCf0JDQndCi0JAKK9Cd0JXQndCQ0JTQntCS0JjQiyDQn9CV0KLQkNCgCivQndCV0J3QkNCU0J7QktCY0Isg0KHQm9CQ0JLQndCQCivQndCV0J3QkNCU0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QldCd0JDQlNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cd0JXQndCV0JfQmNCLINCC0J7QoNCC0JUKK9Cd0JXQndCV0JfQmNCLINCU0JDQoNCa0J4KK9Cd0JXQndCV0JfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JXQndCV0JfQmNCLINCg0JDQlNCV0J3QmtCeCivQndCV0J3QldCX0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QldCd0JjQiyDQgtCe0KDQgtCVCivQndCV0J3QmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cd0JXQndCY0Isg0KHQkNCS0JAKK9Cd0JXQndCY0Isg0JLQldCg0JAKK9Cd0JXQndCY0Isg0JLQldCg0JjQptCQCivQndCV0J3QmNCdINCW0JjQktCa0J4KK9Cd0JXQndCY0J0g0JTQldCI0JDQnQor0J3QldCd0JjQnSDQlNCg0JDQk9CY0IrQkAor0J3QldCd0JjQnSDQlNCg0JDQk9Ce0JzQmNCgCivQndCV0J3QmNCdINCI0JDQodCV0J3QmtCQCivQndCV0J3QmNCdINCb0JXQndCa0JAKK9Cd0JXQndCY0J0g0JzQkNCg0JAKK9Cd0JXQndCY0J0g0JzQmNCb0JDQnQor0J3QldCd0JjQnSDQnNCY0JvQmNCm0JAKK9Cd0JXQndCY0J0g0JzQmNCb0JjQptCQCivQndCV0J3QmNCdINCc0JjQm9Ce0KDQkNCUCivQndCV0J3QmNCdINCc0JjQoNCa0J4KK9Cd0JXQndCY0J0g0KDQkNCI0JrQngor0J3QldCd0JjQnSDQodCQ0JLQkAor0J3QldCd0JjQnSDQodCb0JDQktCa0J4KK9Cd0JXQndCY0J0g0KLQntCc0JjQodCb0JDQkgor0J3QldCd0JjQnSDQktCQ0KHQkAor0J3QldCe0KTQmNCi0J7QktCY0Isg0JTQldCI0JDQnQor0J3QldCf0JjQmyDQkNCd0KLQo9CdCivQndCV0J/QntCa0J7QiNCn0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQoNCQINCe0KDQm9CV0JDQndCQCivQndCV0KDQkNCmINCc0JvQkNCU0JjQndCa0J4KK9Cd0JXQoNCQ0KYg0J/QldCg0J4KK9Cd0JXQoNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0J3QldCg0JDQndCn0JjQiyDQndCY0JrQntCb0JAKK9Cd0JXQoNCQ0J3Qj9CY0Isg0JHQntCo0JrQngor0J3QldCg0JDQndCP0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JXQoNCQ0J3Qj9CY0Isg0IjQkNCh0JzQmNCd0JAKK9Cd0JXQoNCQ0J3Qj9CY0Isg0JzQkNCa0KHQmNCcCivQndCV0KDQkNCd0I/QmNCLINCd0JXQktCV0J3QmtCQCivQndCV0KDQkNCd0I/QmNCLINCh0KLQntCI0JDQndCa0JAKK9Cd0JXQoNCV0KAg0ILQo9Cg0JAKK9Cd0JXQoNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQoNCi0JjQptCQINCh0KLQldCS0JDQnQor0J3QldCh0JrQkNCb0JjQiyDQldCS0JPQldCd0JjQiNCVCivQndCV0KHQmtCQ0JvQmNCLINCb0JXQntCd0JDQoNCU0J4KK9Cd0JXQodCi0J7QoNCe0JIg0JbQldCJ0JrQngor0J3QldCh0KLQntCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCh0KLQntCg0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQndCV0KHQotCe0KDQntCSINCb0JDQl9CQ0KAKK9Cd0JXQodCi0J7QoNCe0JIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQodCi0J7QoNCe0JIg0JzQmNCg0JrQngor0J3QldCh0KLQntCg0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQltCY0JLQntCi0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JHQntCg0JjQoQor0J3QldCh0KLQntCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCV0KHQotCe0KDQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JPQkNCS0KDQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JjQodCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCc0JjQm9CVCivQndCV0KHQotCe0KDQntCS0JjQiyDQndCQ0JTQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQndCV0KHQotCe0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QldCh0KLQntCg0J7QktCY0Isg0KHQkNCS0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCV0KHQotCe0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCV0JLQkNCI0JTQmNCLINCS0JXQm9CY0JzQmNCgCivQndCV0JLQmNCU0J7QktCn0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JXQktCY0JTQntCS0KfQmNCLINCc0JjQm9Ca0JAKK9Cd0JXQktCY0JTQntCS0KfQmNCLINCh0JDQktCQCivQndCV0JLQntCb0JjQiyDQkNCd0JjQptCQCivQndCV0JfQmNCg0Jgg0JDQoNCY0KQKK9Cd0JXQl9CY0KDQntCSINCQ0InQmNCJCivQndCV0JfQmNCg0J7QkiDQktCV0JvQmNCn0JrQngor0J3QmNCn0JjQiyDQndCQ0JTQkAor0J3QmNCn0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J3QmNCo0JDQktCY0Isg0JrQoNCY0KHQotCY0J3QkAor0J3QmNCo0JDQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JjQqNCQ0JLQmNCLINCf0JDQktCb0JUKK9Cd0JjQqNCQ0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cd0JjQqNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cd0JjQqNCV0JLQmNCLINCC0KPQoNCQCivQndCY0KjQldCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cd0JjQqNCV0JLQmNCLINCa0JDQotCY0KbQkAor0J3QmNCo0JXQktCY0Isg0J7Qm9CT0JAKK9Cd0JjQqNCV0JLQmNCLINCh0JDQktCQCivQndCY0KjQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCo0JjQiyDQnNCb0JDQgtCV0J0KK9Cd0JjQqNCa0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Cd0JjQqNCa0JDQndCe0JLQmNCLINCJ0KPQn9Ca0J4KK9Cd0JjQqNCa0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cd0JjQi9CV0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQndCY0IvQldCi0JjQiyDQnNCY0KDQkAor0J3QmNCL0JjQpNCe0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQndCY0IvQmNCk0J7QoNCe0JLQmNCLINCf0JXQoNCQCivQndCY0IvQmNCk0J7QoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0JjQi9CY0KTQntCg0J7QktCY0Isg0KLQldCe0JTQntCgCivQndCY0IvQmNCdINCC0J7QoNCC0JUKK9Cd0JjQi9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQi9CY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0IvQmNCdINCU0J7QndCa0JAKK9Cd0JjQi9CY0J0g0JTQo9Co0JrQngor0J3QmNCL0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQndCY0IvQmNCdINCd0JXQktCV0J3QmtCQCivQndCY0IvQmNCdINCd0JjQi9CY0KTQntCgINCU0JjQn9CbINCY0J3Qkwor0J3QmNCL0JjQnSDQodCd0JXQltCQ0J3QkAor0J3QmNCL0JjQnSDQodCe0KTQmNCI0JAKK9Cd0JjQi9CY0J0g0KHQktCV0KLQntCX0JDQoAor0J3QmNCL0JjQnSDQktCQ0KHQmNCb0JjQiNCVCivQndCY0IvQmNCdINCS0JXQoNCY0KbQkAor0J3QmNCL0JjQnSDQl9Ce0KDQkAor0J3QmNCm0JjQiyDQlNCQ0KDQmtCeCivQndCY0JTQldCg0JvQldCd0JTQldCgINCC0J7QoNCC0JUKK9Cd0JjQlNCV0KDQm9CV0J3QmNCLINCX0J7QoNCQ0J3QkAor0J3QmNCI0JXQnNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQp9CV0JLQmNCLINCR0J7QqNCa0J4KK9Cd0JjQmtCn0JXQktCY0Isg0IjQntCS0JDQnQor0J3QmNCa0KfQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0J3QmNCa0KfQldCS0JjQiyDQnNCe0JzQngor0J3QmNCa0KfQldCS0JjQiyDQoNCQ0KLQmtCeCivQndCY0JrQp9CV0JLQmNCLINCh0KLQkNCd0JAKK9Cd0JjQmtCo0JjQiyDQltCY0JLQmtCeCivQndCY0JrQqNCY0Isg0ILQo9Cg0JAKK9Cd0JjQmtCo0JjQiyDQptCS0JXQotCe0JfQkNCgCivQndCY0JrQqNCY0Isg0JTQkNCg0JrQngor0J3QmNCa0KjQmNCLINCU0KDQkNCT0JjQitCQCivQndCY0JrQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J3QmNCa0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQndCY0JrQqNCY0Isg0KTQoNCQ0IrQkAor0J3QmNCa0KjQmNCLINCY0KHQkAor0J3QmNCa0KjQmNCLINCI0KPQm9CY0IjQkAor0J3QmNCa0KjQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCo0JjQiyDQnNCY0KDQmtCeCivQndCY0JrQqNCY0Isg0JzQm9CQ0JTQldCdCivQndCY0JrQqNCY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQqNCY0Isg0JLQldCh0J3QkAor0J3QmNCa0JDQp9CV0JIg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCQ0KfQldCSINCg0JDQlNCe0JLQkNCdCivQndCY0JrQkNCn0JXQktCY0Isg0JzQmNCl0J7QktCY0JsKK9Cd0JjQmtCQ0KfQldCS0JjQiyDQoNCQ0JTQntCc0JDQnQor0J3QmNCa0JDQqNCY0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cd0JjQmtCQ0KjQmNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQndCY0JrQldCi0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J3QmNCa0JXQotCY0Isg0JPQntCh0J/QkNCS0JAKK9Cd0JjQmtCV0KLQmNCLINCI0JXQpNCi0JAKK9Cd0JjQmtCV0KLQmNCLINCa0JDQotCY0KbQkAor0J3QmNCa0JXQotCY0Isg0J3QldCR0J7QiNCo0JAg0JTQoAor0J3QmNCa0JXQotCY0Isg0J/QldCi0JDQoAor0J3QmNCa0JXQotCY0Isg0KHQkNCo0JAKK9Cd0JjQmtCV0KLQmNCLINCh0JjQnNCQCivQndCY0JrQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCY0JrQldCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCY0JrQldCX0JjQiyDQnNCY0JvQkAor0J3QmNCa0JXQl9CY0Isg0J/QldCi0JDQoAor0J3QmNCa0JXQl9CY0Isg0KDQntCa0KHQkNCd0JTQkAor0J3QmNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J3QmNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cd0JjQmtCY0Isg0JTQkNCI0JDQndCQCivQndCY0JrQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0JjQiyDQiNCe0JLQkNCd0JrQkAor0J3QmNCa0JjQiyDQiNCe0JLQngor0J3QmNCa0JjQiyDQiNCe0JLQngor0J3QmNCa0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JjQmtCY0Isg0JvQkNCX0JDQoAor0J3QmNCa0JjQiyDQnNCQ0KDQmNCd0JrQngor0J3QmNCa0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQmNCLINCc0JjQm9CVCivQndCY0JrQmNCLINCc0JjQm9Cj0KLQmNCdCivQndCY0JrQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0JrQmNCLINCd0JDQlNCQCivQndCY0JrQmNCLINCd0JDQotCQ0KjQkAor0J3QmNCa0JjQiyDQndCV0JLQldCd0JrQkAor0J3QmNCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J3QmNCa0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0JjQiyDQodCQ0IrQkAor0J3QmNCa0JjQiyDQodCQ0JLQkAor0J3QmNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCY0JrQmNCLINCX0JTQoNCQ0JLQmtCeCivQndCY0JrQmNCLINCX0JvQkNCi0JAKK9Cd0JjQmtCY0Isg0JfQntCg0JAKK9Cd0JjQmtCY0Isg0JfQntCg0JrQkAor0J3QmNCa0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQndCY0JrQmNCdINCg0JDQlNCe0JzQmNCgCivQndCY0JrQmNCdINCS0JXQoNCQCivQndCY0JrQmNCi0JjQqNCY0J0g0J3QkNCU0JAKK9Cd0JjQmtCY0KLQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0J3QmNCa0JjQotCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQmNCi0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J3QmNCa0JjQotCe0JLQmNCLINCR0J7QltCeCivQndCY0JrQmNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QmNCa0JjQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCY0KLQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QmNCa0JjQotCe0JLQmNCLINCc0JjQm9CY0IjQkNCd0JrQkAor0J3QmNCa0JjQotCe0JLQmNCLINCg0JDQlNCQCivQndCY0JrQmNCi0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J3QmNCa0JjQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0KfQldCSINCX0J7QoNCY0KbQkAor0J3QmNCa0J7QlNCY0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQndCY0JrQntCU0JjQiNCV0JLQmNCLINCV0J3QldCh0JAKK9Cd0JjQmtCe0JTQmNCI0JXQktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Cd0JjQmtCe0JTQmNCI0JXQktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cd0JjQmtCe0JTQmNCd0J7QktCh0JrQmCDQodCi0J7QiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCY0JrQntCb0KfQmNCLINCR0JvQkNCW0J4KK9Cd0JjQmtCe0JvQp9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0KfQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cd0JjQmtCe0JvQp9CY0J0g0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9Cn0JjQnSDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CQ0KjQldCSINCR0J7QoNCY0JLQntCICivQndCY0JrQntCb0JDQqNCV0JIg0IjQntCS0JAKK9Cd0JjQmtCe0JvQkNCo0JXQkiDQidCj0JHQntCc0JjQoAor0J3QmNCa0J7Qm9CQ0KjQldCSINCc0JDQotCY0JvQlNCQCivQndCY0JrQntCb0JDQqNCV0JIg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQkNCI0JXQkiDQiNCV0JvQldCd0JAKK9Cd0JjQmtCe0JvQkNCI0JXQkiDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JDQiNCV0JIg0JzQmNCb0JjQptCQCivQndCY0JrQntCb0JDQiNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J3QmNCa0J7Qm9CQ0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQndCY0JrQntCb0JDQiNCV0JLQmNCLINCY0KDQldCd0JAKK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0JzQmNCb0JjQktCe0Igg0JDQmtCQ0JTQldCc0KHQmtCYINCh0JvQmNCa0JDQoAor0J3QmNCa0J7Qm9CQ0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CQ0IjQldCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JXQotCY0Isg0JHQntCg0JAKK9Cd0JjQmtCe0JvQldCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QmNCa0J7Qm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0IjQntCS0JDQndCa0JAKK9Cd0JjQmtCe0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0JzQmNCb0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCc0JjQm9Ce0KgKK9Cd0JjQmtCe0JvQldCi0JjQiyDQnNCY0JvQntCS0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCh0JjQnNCeCivQndCY0JrQntCb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QmNCa0J7Qm9CV0KLQmNCLINCS0JjQlAor0J3QmNCa0J7Qm9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Cd0JjQmtCe0JvQmNCn0JjQnSDQkdCg0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCn0JjQnSDQlNCQ0J3QmNCb0J4KK9Cd0JjQmtCe0JvQmNCn0JjQnSDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQqCDQlNCg0JDQk9Cj0KLQmNCdCivQndCY0JrQntCb0JjQqCDQldCS0JjQptCQCivQndCY0JrQntCb0JjQqCDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiy3Qp9CQ0IrQmCDQkdCQ0KDQkdCQ0KDQkAor0J3QmNCa0J7Qm9CY0Ist0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0J3QldCS0JXQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCL0JjQoNCY0JvQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0JAKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0JAKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCe0KDQkNCUCivQndCY0JrQntCb0JjQiyDQltCY0JLQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCe0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0J7QotCQCivQndCY0JrQntCb0JjQiyDQgtCe0KDQgtCVINCf0KDQntCk0JXQodCe0KAKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCC0KPQoNCQCivQndCY0JrQntCb0JjQiyDQgtCj0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiy3QkNCb0JXQmtCh0J7QktCh0JrQmCDQodCb0JDQktCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JDQndCQCivQndCY0JrQntCb0JjQiyDQkNCd0JTQoNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCQ0J3QmtCY0KbQkAor0J3QmNCa0J7Qm9CY0Ist0JHQkNCI0KjQldCSINCh0KLQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JHQmNCJ0JDQndCQCivQndCY0JrQntCb0JjQiyDQkdCY0KHQldCg0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JHQntCo0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQntCo0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQntCo0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QltCY0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QltCeCivQndCY0JrQntCb0JjQiyDQkdCe0JPQlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCR0J7QiNCa0JAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QoNCQCivQndCY0JrQntCb0JjQiyDQkdCe0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQktCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQktCe0IgKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmtCeCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCR0KPQlNCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQptCS0JXQotCQ0J3QmtCQCivQndCY0JrQntCb0JjQiyDQptCS0JjQiNCV0KLQkAor0J3QmNCa0J7Qm9CY0Ist0I/QkNCS0JXQoCDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCU0JDQnNCI0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQkNCc0IjQkNCdCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JjQptCQCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JjQldCbCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCI0JXQmwor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JjQm9CeCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCb0J4KK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQndCY0JrQntCb0JjQiyDQlNCQ0JLQntCg0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JTQldCI0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQldCh0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J3QmNCa0J7Qm9CY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQndCY0JrQntCb0JjQiyDQlNCg0JDQqNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQndCQCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JjQptCQCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J4KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCY0JrQntCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCV0JzQmNCb0JjQiNCQCivQndCY0JrQntCb0JjQiyDQldCc0JjQmwor0J3QmNCa0J7Qm9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCT0J7QoNCU0JDQndCQCivQndCY0JrQntCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KXQmNCb0JTQkAor0J3QmNCa0J7Qm9CY0Isg0KXQoNCY0KHQotCY0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JjQm9CY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JjQodCY0JTQntCgCivQndCY0JrQntCb0JjQiyDQmNCS0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCY0JLQkNCdCivQndCY0JrQntCb0JjQiyDQmNCS0J4KK9Cd0JjQmtCe0JvQmNCLINCI0JDQktCe0KDQmtCQCivQndCY0JrQntCb0JjQiyDQiNCV0KTQotCQCivQndCY0JrQntCb0JjQiyDQiNCV0KTQotCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQiNCV0KTQotCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQiNCV0JvQldCd0JAKK9Cd0JjQmtCe0JvQmNCLINCI0JXQm9CV0J3QkAor0J3QmNCa0J7Qm9CY0Isg0IjQldCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0IjQldCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0IjQntCm0JAKK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0IjQo9Cb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JrQkNCi0JjQptCQCivQndCY0JrQntCb0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCa0JDQotCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JrQntCh0KLQkNCU0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JrQntCh0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JrQoNCh0KLQkCDQlNCgCivQndCY0JrQntCb0JjQiyDQmtCg0KHQotCQCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQidCY0InQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCJ0JjQidCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0InQmNCJ0JDQndCQCivQndCY0JrQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCJ0KPQkdCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0InQo9CR0JjQptCQCivQndCY0JrQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCb0KPQiNCX0JAKK9Cd0JjQmtCe0JvQmNCLINCb0KPQmtCQCivQndCY0JrQntCb0JjQiyDQnNCQ0J3QntCI0JvQngor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCT0JjQotCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JjQiNCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQldCb0JDQndCY0IjQkCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0J3QmNCa0J7Qm9CY0Isg0JzQldCb0JDQndCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQndCY0JrQntCb0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JDQqNCY0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JDQndCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQldCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQndCY0JrQntCb0JjQiyDQnNCY0JvQldCS0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CV0JLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JUKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CVCivQndCY0JrQntCb0JjQiyDQnNCY0JvQlQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JjQptCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QiNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Cj0KLQmNCdCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0JrQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCi0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQotCQCivQndCY0JrQntCb0JjQiyDQnNCb0JDQlNCV0J3QmtCQCivQndCY0JrQntCb0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JjQmtCe0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQndCY0JrQntCb0JjQiy3QnNCj0KjQmNCm0JrQmCDQlNCQ0KDQkAor0J3QmNCa0J7Qm9CY0Isg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JDQlNCQCivQndCY0JrQntCb0JjQiyDQndCQ0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JDQlNCQCivQndCY0JrQntCb0JjQiyDQndCQ0JTQldCW0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J3QldCR0J7QiNCo0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JXQlNCV0InQmtCQCivQndCY0JrQntCb0JjQiyDQndCV0JTQldCJ0JrQngor0J3QmNCa0J7Qm9CY0Isg0J3QldCU0JXQidCa0J4KK9Cd0JjQmtCe0JvQmNCLINCd0JXQndCQ0JQg0JTQoAor0J3QmNCa0J7Qm9CY0Isg0J3QldCd0JDQlAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0J7QktCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0J3QntCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQndCe0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCe0JvQk9CQCivQndCY0JrQntCb0JjQiyDQntCh0JzQkNCdCivQndCY0JrQntCb0JjQiyDQn9CQ0KPQnQor0J3QmNCa0J7Qm9CY0Isg0J/QkNCS0JvQlQor0J3QmNCa0J7Qm9CY0Isg0J/QldCg0JAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQoNCeCivQndCY0JrQntCb0JjQiyDQn9CV0KDQodCY0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCg0JAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCg0JAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCg0J7QndCY0IjQlQor0J3QmNCa0J7Qm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCV0J3QmtCeCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0JjQktCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QiNCa0JAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KDQkNCI0JrQngor0J3QmNCa0J7Qm9CY0Isg0KDQkNCI0JrQngor0J3QmNCa0J7Qm9CY0Isg0KDQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCi0JrQniDQnNCgCivQndCY0JrQntCb0JjQiyDQoNCQ0KLQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCi0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCg0KPQltCQCivQndCY0JrQntCb0JjQiyDQoNCj0JbQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCg0KPQltCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCQCivQndCY0JrQntCb0JjQiyDQodCQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCQCivQndCY0JrQntCb0JjQiyDQodCQ0JLQldCi0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCa0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCeCivQndCY0JrQntCb0JjQiyDQodCV0IvQldCg0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQmNCc0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JjQnNCV0J7QnQor0J3QmNCa0J7Qm9CY0Isg0KHQmNCc0JXQo9CdCivQndCY0JrQntCb0JjQiyDQodCY0J3QmNCo0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JjQndCY0KjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQmNCd0JjQqNCQCivQndCY0JrQntCb0JjQiyDQodCb0JDQgtCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQm9CQ0JLQmNCo0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JvQkNCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQodCb0JDQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCh0JvQkNCS0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JzQmNCJ0JDQndCQCivQndCY0JrQntCb0JjQiyDQodCd0JXQltCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQntCk0JjQiNCQCivQndCY0JrQntCb0JjQiyDQodCe0KTQmNCI0JAKK9Cd0JjQmtCe0JvQmNCLINCh0J7QpNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQn9CQ0KHQldCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Cd0JjQmtCe0JvQmNCLINCh0J/QkNCh0J7QiNCVCivQndCY0JrQntCb0JjQiyDQodCf0JDQodCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0KHQoNCV0KLQkAor0J3QmNCa0J7Qm9CY0Isg0KHQoNCV0KLQldCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQodCi0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCk0JDQndCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQndCY0JrQntCb0JjQiyDQodCi0J7QiNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KPQl9CQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCi0JDQnNCQ0KDQkAor0J3QmNCa0J7Qm9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCi0JXQntCU0J7QoAor0J3QmNCa0J7Qm9CY0Isg0KLQldCe0JTQntCgCivQndCY0JrQntCb0JjQiyDQotCY0KXQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KLQmNCl0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCi0J7QlNCe0KAKK9Cd0JjQmtCe0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIg0JzQoAor0J3QmNCa0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KLQoNCV0J3Qp9CQCivQndCY0JrQntCb0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQndCY0JrQntCb0JjQiyDQktCV0JrQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQktCV0JvQmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQldCb0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQidCa0J4g0JTQoCDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCS0JXQidCa0J4KK9Cd0JjQmtCe0JvQmNCLINCS0JXQoNCQCivQndCY0JrQntCb0JjQiyDQktCV0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JLQldCg0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQoNCQCivQndCY0JrQntCb0JjQiyDQktCV0KDQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQodCd0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JjQotCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQktCY0KLQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQmNCi0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQodCb0JDQkiDQlNCgCivQndCY0JrQntCb0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAg0JTQntCm0JXQndCiCivQndCY0JrQntCb0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cd0JjQmtCe0JvQmNCLINCS0KPQmtCQ0KjQmNCdCivQndCY0JrQntCb0JjQiyDQl9CQ0JPQntCg0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JfQlNCg0JDQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCX0JTQoNCQ0JLQmtCeCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JfQntCg0JAKK9Cd0JjQmtCe0JvQmNCLINCX0J7QoNCQCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQmtCQCivQndCY0JrQntCb0JjQnSDQkNCb0JXQmtCh0JDQndCU0KDQkAor0J3QmNCa0J7Qm9CY0J0g0JDQndCQCivQndCY0JrQntCb0JjQnSDQkdCg0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCdINCU0KDQkNCT0J7QodCb0JDQktCQINCU0KAKK9Cd0JjQmtCe0JvQmNCdINCU0KPQqNCY0KbQkAor0J3QmNCa0J7Qm9CY0J0g0JXQoNCW0JXQkdCV0KIKK9Cd0JjQmtCe0JvQmNCdINCY0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCdINCb0JDQl9CQ0KAg0JTQoCDQm9CV0JrQkNCgCivQndCY0JrQntCb0JjQnSDQidCj0JHQmNCo0JAKK9Cd0JjQmtCe0JvQmNCdINCc0JDQoNCT0JjQotCQCivQndCY0JrQntCb0JjQnSDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQnSDQnNCY0JvQmNCm0JAKK9Cd0JjQmtCe0JvQmNCdINCc0JjQm9CY0JLQntCICivQndCY0JrQntCb0JjQnSDQnNCY0JvQmNCS0J7QiAor0J3QmNCa0J7Qm9CY0J0g0JzQmNCg0J7QodCb0JDQkgor0J3QmNCa0J7Qm9CY0J0g0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCdINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQnSDQoNCj0JbQmNCm0JAKK9Cd0JjQmtCe0JvQmNCdINCh0JDQktCQCivQndCY0JrQntCb0JjQnSDQodCY0J3QmNCo0JAKK9Cd0JjQmtCe0JvQmNCdINCh0JjQndCY0KjQkAor0J3QmNCa0J7Qm9CY0J0g0KHQotCY0J/QkNCdCivQndCY0JrQntCb0JjQnSDQktCV0KHQndCQCivQndCY0JrQntCb0JjQnSDQktCY0KLQntCc0JjQoAor0J3QmNCa0J7Qm9Ce0KHQmtCYINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9Ce0KHQmtCYINCh0JvQkNCS0JjQptCQCivQndCY0JrQntCb0J7QkiDQgtCe0KDQgtCVCivQndCY0JrQntCb0J7QkiDQkdCe0KjQmtCeCivQndCY0JrQntCb0J7QkiDQiNCe0KbQkAor0J3QmNCa0J7Qm9Ce0JIg0IjQntCm0JAKK9Cd0JjQmtCe0JvQntCSINCJ0KPQkdCY0KbQkAor0J3QmNCa0J7Qm9Ce0JIg0J3QmNCd0JAKK9Cd0JjQmtCe0JvQntCSINCg0JDQqNCQCivQndCY0JrQntCb0J7QkiDQodCY0J3QmNCo0JAKK9Cd0JjQmtCe0JvQntCSINCh0KLQntCI0JDQnQor0J3QmNCa0J7Qm9Ce0JIg0KLQntCU0J7QoAor0J3QmNCa0J7Qm9Ce0JLQodCa0Jgg0JjQm9CY0IjQkAor0J3QmNCa0J7Qm9Ce0JLQodCa0Jgg0JzQmNCb0JDQnQor0J3QmNCa0J7QotCY0Isg0JLQldCb0JjQnNCY0KAKK9Cd0JjQm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JzQoNCY0KXQotCV0KAg0JTQoNCQ0JPQo9Ci0JjQnQor0J3QmNCc0KDQmNCl0KLQldCgINCc0JjQm9CQ0J0KK9Cd0JjQnNCg0JjQpdCi0JXQoCDQnNCY0KDQntCh0JvQkNCSCivQndCY0JzQoNCY0KXQotCV0KAg0JLQm9CQ0JTQkAor0J3QmNCd0KfQmNCLINCR0JjQodCV0KDQmtCQCivQndCY0J3Qp9CY0Isg0JTQkNCc0IjQkNCdCivQndCY0J3Qp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cd0JjQndCn0JjQiyDQn9CV0KDQngor0J3QmNCd0JjQiyDQkNCb0JXQmtCh0JAKK9Cd0JjQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0J3QmNCLINCc0JDQoNCa0J4KK9Cd0JjQndCY0Isg0JzQmNCg0JrQngor0J3QmNCd0JjQiyDQoNCQ0JTQntCI0JUKK9Cd0JjQndCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JjQndCa0J7QkiDQltCY0JLQmtCeCivQndCY0J3QmtCe0JIg0ILQntCg0ILQlQor0J3QmNCd0JrQntCSINCC0J7QoNCC0JUKK9Cd0JjQndCa0J7QkiDQgtCe0KDQgtCVCivQndCY0J3QmtCe0JIg0JHQntCW0JjQptCQCivQndCY0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0J3QmNCd0JrQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QkiDQlNCe0JHQoNCY0JLQntCICivQndCY0J3QmtCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0J3QmNCd0JrQntCSINCU0KPQqNCQ0J0KK9Cd0JjQndCa0J7QkiDQlNCj0KjQkNCdCivQndCY0J3QmtCe0JIg0JTQo9Co0JDQnQor0J3QmNCd0JrQntCSINCV0JzQmNCb0JjQiNCQCivQndCY0J3QmtCe0JIg0JXQoNCW0JXQkdCV0KIKK9Cd0JjQndCa0J7QkiDQiNCV0JvQmNCm0JAKK9Cd0JjQndCa0J7QkiDQiNCe0JLQkNCdCivQndCY0J3QmtCe0JIg0IjQo9Cb0JjQiNCQ0J0g0JzQoAor0J3QmNCd0JrQntCSLdCa0J7QnNCb0JXQndCe0JIg0JTQkNCd0JjQptCQINCU0KAKK9Cd0JjQndCa0J7QkiDQm9CQ0JfQkNCgCivQndCY0J3QmtCe0JIg0JvQkNCX0JDQoAor0J3QmNCd0JrQntCSLdCb0JXQgtCV0J3QkNCmINCI0J7QktCQ0J3QmtCQINCU0KAKK9Cd0JjQndCa0J7QkiDQidCj0JHQntCc0JjQoAor0J3QmNCd0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQndCY0J3QmtCe0JIg0JzQkNCg0JjQiNCQCivQndCY0J3QmtCe0JIg0JzQkNCg0JjQiNCQCivQndCY0J3QmtCe0JIg0JzQmNCb0JDQndCQCivQndCY0J3QmtCe0JIg0JzQmNCb0JDQnQor0J3QmNCd0JrQntCSINCc0JjQm9CY0KbQkAor0J3QmNCd0JrQntCSINCc0JjQm9Ce0KgKK9Cd0JjQndCa0J7QkiDQnNCY0JvQntCoCivQndCY0J3QmtCe0JIg0JzQmNCb0J7QqAor0J3QmNCd0JrQntCSINCc0JjQm9Ce0JLQkNCdCivQndCY0J3QmtCe0JIg0JzQmNCb0J7QktCQ0J0KK9Cd0JjQndCa0J7QkiDQnNCY0JvQo9Ci0JjQnQor0J3QmNCd0JrQntCSINCc0JjQoNCI0JDQndCQCivQndCY0J3QmtCe0JIg0JzQmNCg0JrQngor0J3QmNCd0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQndCa0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQndCY0J3QmtCe0JIg0J3QkNCU0JAKK9Cd0JjQndCa0J7QkiDQndCV0JHQntCI0KjQkAor0J3QmNCd0JrQntCSINCd0JXQkdCe0IjQqNCQCivQndCY0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQndCY0J3QmtCe0JIg0J7Qm9CT0JjQptCQCivQndCY0J3QmtCe0JIg0KDQkNCU0JjQptCQCivQndCY0J3QmtCe0JIg0KHQkNCS0JXQotCQINCU0JjQn9CbINCY0J3Qkwor0J3QmNCd0JrQntCSINCh0JDQktCV0KLQkAor0J3QmNCd0JrQntCSINCh0JvQkNCS0JrQngor0J3QmNCd0JrQntCSINCh0JzQmNCJ0JAKK9Cd0JjQndCa0J7QkiDQodCe0KTQmNCI0JAKK9Cd0JjQndCa0J7QkiDQodCf0J7QnNCV0J3QmtCQCivQndCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQndCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQndCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQndCY0J3QmtCe0JIg0JLQldCb0JjQnNCY0KAKK9Cd0JjQndCa0J7QkiDQktCV0InQmtCeCivQndCY0J3QmtCe0JIg0JLQldCg0JjQptCQCivQndCY0J3QmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J3QmNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QktCY0Isg0KjQn9CY0KDQngor0J3QmNCd0JrQntCS0JjQiyDQqNCf0JjQoNCeCivQndCY0J3QmtCe0JLQmNCLINCC0KPQoNCQ0IIKK9Cd0JjQndCa0J7QktCY0Isg0ILQo9Cg0JAKK9Cd0JjQndCa0J7QktCY0Isg0JDQndCa0JjQptCQCivQndCY0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0J3QmNCd0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cd0JjQndCa0J7QktCY0Isg0JTQoNCQ0JPQkAor0J3QmNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCY0J3QmtCe0JLQmNCLINCV0KDQmNCa0JAKK9Cd0JjQndCa0J7QktCY0Isg0JPQkNCS0KDQkAor0J3QmNCd0JrQntCS0JjQiyDQiNCQ0J3QmtCeCivQndCY0J3QmtCe0JLQmNCLINCI0J7QiNCQCivQndCY0J3QmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQndCY0J3QmtCe0JLQmNCLINCc0JDQoNCY0KbQkAor0J3QmNCd0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQndCY0J3QmtCe0JLQmNCLINCc0JjQi9CeCivQndCY0J3QmtCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQndCY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQndCa0J7QktCY0Isg0JzQmNCb0J7QqAor0J3QmNCd0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCd0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCY0J3QmtCe0JLQmNCLINCf0JXQoNCQCivQndCY0J3QmtCe0JLQmNCLINCf0JXQoNCeCivQndCY0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQndCa0J7QktCY0Isg0KDQkNCI0JrQngor0J3QmNCd0JrQntCS0JjQiyDQodCg0ILQkNCdCivQndCY0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0J3QmNCd0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QktCY0Isg0JLQldCg0JAKK9Cd0JjQodCY0Jwg0JTQldCh0JAKK9Cd0JjQodCi0JXQoCDQldCS0JAKK9Cd0JjQodCi0J7QoCDQlNCg0JDQk9CQ0J0KK9Cd0JjQodCi0J7QoNCQ0J0g0ILQntCg0ILQlQor0J3QmNCh0KLQntCg0JDQnSDQnNCY0JvQkNCdCivQitCQ0JPQntCI0JXQkiDQnNCY0JvQkNCU0JjQnQor0IrQkNCT0KDQmNCdINCh0JvQkNCS0JjQptCQCivQitCQ0JPQo9CbLdCU0J7QmtCY0Isg0KHQoNCR0JjQodCb0JDQktCQCivQitCQ0JPQo9CbINCU0KPQqNCQ0J0KK9CK0JDQoNCQ0JTQmCDQldCS0JPQldCd0JjQiNCVCivQitCQ0KDQkNCU0Jgg0IjQkNCd0JrQngor0IrQkNCg0JDQlNCYINCI0J7QktCT0JXQnQor0IrQkNCg0JDQlNCYINCc0JDQoNCY0IjQkAor0IrQkNCg0JDQlNCYINCh0J7QpNCY0IjQkAor0IrQkNCg0Jgg0KjQkNCd0JTQntCgCivQitCQ0KDQmCDQlNCV0JbQlQor0IrQldCW0JjQiyDQntCR0KDQkNCUCivQitCV0JbQmNCLINCX0JLQntCd0JrQngor0IrQldCT0J7QnNCY0KAg0ILQo9Cg0J4KK9CK0JXQk9Ce0JzQmNCgINCJ0KPQkdCY0J3QmtCQINCU0KAg0JvQldCa0JDQoAor0IrQldCT0J7QnNCY0KAg0JzQmNCb0JDQnQor0IrQldCT0J7QnNCY0KAg0J3QmNCa0J7Qm9CQCivQitCV0JPQntCc0JjQoCDQndCe0JLQkNCaCivQitCV0JPQntCS0JDQnSDQltCQ0KDQmtCeCivQitCV0JPQntCS0JDQnSDQiNCe0JLQkNCd0JrQkAor0IrQldCT0J7QktCQ0J0g0JzQkNCg0JAKK9CK0JXQk9Ce0JLQkNCdINCc0JDQoNCY0IjQkAor0IrQldCT0J7QktCQ0J0g0JzQmNCg0JrQngor0IrQldCT0J7QktCQ0J0g0JzQmNCg0JrQngor0IrQldCT0J7QktCQ0J0g0KHQotCe0IjQkNCd0JrQkAor0IrQldCT0J7QktCQ0J3QntCS0JjQiyDQldCb0JXQndCQCivQitCV0JPQoNCY0Isg0JzQkNCg0JjQiNCQCivQitCV0JPQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CK0JXQnNCn0J7QmiDQiNCe0JbQldCkCivQitCV0JzQntCT0JAg0IjQo9Cg0JDQiAor0IrQldCK0JjQiyDQktCb0JDQlNCeCivQitCV0KDQk9CV0Kgg0IjQkNCd0J7QqAor0IrQldCg0JPQldCoINCc0JDQoNCY0IjQkAor0IrQmNCg0JUg0KHQotCV0JLQkNCdCivQitCY0KDQiNCQ0Jog0ILQntCg0ILQlQor0IrQmNCg0IjQkNCaINCb0JXQntCd0JAKK9CK0JjQotCg0Jgg0JrQkNCg0J7QiQor0IrQo9CK0JjQiyDQnNCY0JvQldCS0JAKK9Cd0J7Qp9CV0JLQodCa0JAg0JLQldCb0JjQmtCQCivQndCe0KfQldCS0KHQmtCYINCR0JjQidCQ0J3QkAor0J3QntCn0JXQktCh0JrQmCDQoNCQ0JTQlQor0J3QntCW0JjQptCQINCm0JLQmNCI0JXQotCQCivQndCe0JbQmNCm0JAg0JzQmNCb0JjQktCe0IjQlQor0J3QntCW0JjQndCY0Isg0JTQkNCg0JAKK9Cd0J7QltCY0J3QmNCLINCJ0KPQkdCY0KbQkAor0J3QntCW0JjQndCY0Isg0JzQmNCb0JDQnQor0J3QntCW0JjQndCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JvQkCDQotCY0JzQitCQCivQndCe0JvQmNCdINCC0KPQoNCC0JjQndCa0JAKK9Cd0J7QndCY0J0g0JDQndCC0JXQm9Ca0JAKK9Cd0J7QndCY0J0g0JTQo9Co0JDQnQor0J3QntCd0JjQnSDQnNCY0JvQntCg0JDQlAor0J3QntCd0JjQnSDQndCY0JrQntCb0JAKK9Cd0J7QndCY0J0g0KHQntCK0JAKK9Cd0J7QndCY0J0g0JLQmNCi0J7QnNCY0KAKK9Cd0J7QndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QntCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QntCh0JDQmiDQgtCe0KDQgtCVCivQndCe0KHQkNCaINCc0JjQmtCb0J7QqAor0J3QntCh0JDQiSDQnNCY0KjQkAor0J3QntCh0JXQmiDQldCS0JjQptCQCivQndCe0KHQldCaINCk0KDQkNCK0JAKK9Cd0J7QodCV0Jog0JrQkNCg0JvQngor0J3QntCh0JXQmiDQmtCh0JXQndCY0IjQkAor0J3QntCh0JXQmiDQl9Ce0KDQkNCdCivQndCe0KHQntCK0JjQnSDQm9CV0J3QmtCQCivQndCe0KHQntCK0JjQnSDQnNCY0JvQkNCdCivQndCe0KHQntCK0JjQnSDQodCQ0JLQkAor0J3QntCh0J7QktCY0Isg0ILQntCg0ILQlQor0J3QntCh0J7QktCY0Isg0JTQkNCd0JjQptCQCivQndCe0KHQntCS0JjQiyDQiNCQ0J3QmtCeCivQndCe0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0KHQntCS0JjQiyDQl9Ce0KDQkNCdCivQndCe0KLQkCDQiNCQ0J3QmtCeCivQndCe0KLQkNCg0J7QqCDQlNCQ0KDQmNCd0JrQkAor0J3QntCi0JDQoNCe0Kgg0JTQldCI0JDQnQor0J3QntCi0JDQoNCe0Kgg0JzQmNCb0JDQnQor0J3QntCi0KXQntCkINCV0JLQkAor0J3QntCi0KXQntCkINCX0J7Qm9Ci0JDQnQor0J3QntCS0KfQmNCLINCR0KPQlNCY0JzQmNCgCivQndCe0JLQp9CY0Isg0JTQkNCc0IrQkNCdCivQndCe0JLQp9CY0Isg0JTQo9Co0JDQnQor0J3QntCS0KfQmNCLINCh0KLQkNCd0JAKK9Cd0J7QktCn0JjQiyDQodCi0JDQndCQCivQndCe0JLQp9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Cd0J7QktCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCe0JLQkNCn0JjQiyDQgtCj0KDQkAor0J3QntCS0JDQp9CY0Isg0ILQo9Cg0J4KK9Cd0J7QktCQ0KfQmNCLINCf0JXQoNCh0JjQlNCQCivQndCe0JLQkNCaINCC0J7QoNCC0JUKK9Cd0J7QktCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cd0J7QktCQ0Jog0JDQndCi0JDQmwor0J3QntCS0JDQmiDQkdCe0KjQmtCeCivQndCe0JLQkNCaINCU0KDQkNCT0JjQptCQCivQndCe0JLQkNCaINCU0KPQqNCQ0J3QmtCQCivQndCe0JLQkNCaINCk0KDQkNCK0JAKK9Cd0J7QktCQ0Jog0JjQqNCi0JLQkNCdCivQndCe0JLQkNCaINCY0KDQldCd0JAKK9Cd0J7QktCQ0Jog0JjQktCQ0J0KK9Cd0J7QktCQ0Jog0IjQkNCd0JAKK9Cd0J7QktCQ0Jog0IjQkNCd0J7QqAor0J3QntCS0JDQmiDQiNCe0KHQmNCfCivQndCe0JLQkNCaINCI0J7QodCY0J8KK9Cd0J7QktCQ0Jog0IjQntCS0JDQnQor0J3QntCS0JDQmiDQm9CQ0JTQmNCh0JvQkNCSINCc0KAKK9Cd0J7QktCQ0Jog0JvQkNCh0JvQngor0J3QntCS0JDQmiDQm9CQ0JfQkNCgCivQndCe0JLQkNCaINCJ0KPQkdCe0JzQmNCgCivQndCe0JLQkNCaINCc0JDQoNCT0JjQotCQCivQndCe0JLQkNCaINCc0JDQoNCY0IjQkAor0J3QntCS0JDQmiDQnNCQ0KLQmNCb0JTQkAor0J3QntCS0JDQmiDQnNCY0KXQkNCJCivQndCe0JLQkNCaINCd0JDQndCU0J7QoAor0J3QntCS0JDQmiDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0Jog0KHQm9CQ0JLQmtCQCivQndCe0JLQkNCaINCh0KLQldCS0JDQnQor0J3QntCS0JDQmiDQodCi0JXQktCQ0J0KK9Cd0J7QktCQ0Jog0KHQotCI0JXQn9CQ0J0KK9Cd0J7QktCQ0Jog0KLQmNCR0J7QoAor0J3QntCS0JDQmi3QktCQ0IjQlNCQINCJ0JjQidCQ0J3QkAor0J3QntCS0JDQmiDQktCQ0KHQmNCb0JjQiNCQCivQndCe0JLQkNCaINCS0JXQoNCQCivQndCe0JLQkNCaINCS0JXQoNCe0J3QkAor0J3QntCS0JDQmiDQktCY0JrQotCe0KAKK9Cd0J7QktCQ0JrQntCSINCn0JXQlNCe0JzQmNCgCivQndCe0JLQkNCa0J7QkiDQkNCd0ILQldCb0JrQngor0J3QntCS0JDQmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0J3QntCS0JDQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkSDQnNCgCivQndCe0JLQkNCa0J7QkiDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0J3QntCS0JDQmtCe0JIg0JPQntCh0J/QkNCS0JAg0JTQoAor0J3QntCS0JDQmtCe0JIg0IjQldCb0JjQptCQCivQndCe0JLQkNCa0J7QkiDQm9CQ0JfQkNCgCivQndCe0JLQkNCa0J7QkiDQidCj0JHQmNCd0JrQkAor0J3QntCS0JDQmtCe0JIg0InQo9CR0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCSINCc0JDQoNCY0J3QkAor0J3QntCS0JDQmtCe0JIg0JzQmNCb0JDQnQor0J3QntCS0JDQmtCe0JIg0JzQmNCb0JjQptCQCivQndCe0JLQkNCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0J3QntCS0JDQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cd0J7QktCQ0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCSINCd0JDQlNCQCivQndCe0JLQkNCa0J7QkiDQn9Cg0JXQlNCg0JDQkwor0J3QntCS0JDQmtCe0JIg0J/QoNCV0JTQoNCQ0JMKK9Cd0J7QktCQ0JrQntCSINCg0JDQlNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J3QntCS0JDQmtCe0JIg0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCSINCh0JDQktCQCivQndCe0JLQkNCa0J7QkiDQodCg0JHQmNCh0JvQkNCSCivQndCe0JLQkNCa0J7QkiDQodCg0JXQotCV0J0KK9Cd0J7QktCQ0JrQntCSINCh0KDQldCi0JXQnQor0J3QntCS0JDQmtCe0JIg0KHQotCV0JLQkNCdINCU0KAKK9Cd0J7QktCQ0JrQntCSINCh0KLQldCS0JDQnQor0J3QntCS0JDQmtCe0JIg0JLQkNCb0JXQoNCY0IjQkAor0J3QntCS0JDQmtCe0JIg0JLQldCh0JXQm9CY0J0KK9Cd0J7QktCQ0JrQntCSINCX0JTQoNCQ0JLQmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCW0JjQktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQltCY0JLQmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQndCe0JLQkNCa0J7QktCY0Isg0ILQo9CI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQgtCj0KDQngor0J3QntCS0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQkNCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQkNCd0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCR0J7QqNCa0J4g0JTQoCDQn9Cg0J7QpAor0J3QntCS0JDQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQndCe0JLQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCe0JLQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0KbQktCV0KLQmtCeINCU0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQptCS0JjQiNCV0KLQkAor0J3QntCS0JDQmtCe0JLQmNCLINCU0JDQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkAor0J3QntCS0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KTQoNCQ0IrQngor0J3QntCS0JDQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0JPQntCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JPQoNCe0JfQlNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JjQndCC0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCa0J7QodCQCivQndCe0JLQkNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQqNCeCivQndCe0JLQkNCa0J7QktCY0Ist0JzQmNCU0Jgg0JTQmNCS0J3QkCDQlNCY0J/QmyDQotCj0KDQmNCX0JwKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0IjQntCU0KDQkNCTCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J3QntCS0JDQmtCe0JLQmNCLINCd0JDQlNCQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J7Qm9CY0JLQldCgCivQndCe0JLQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQndCe0JLQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQndCe0JLQkNCa0J7QktCY0Ist0J/Qm9CQ0JLQqNCY0Isg0IjQldCb0JXQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCI0JrQngor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQndCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCe0KHQkNCd0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0J3QntCS0JDQmtCe0JLQmNCLINCh0JDQktCQCivQndCe0JLQkNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCf0JDQodCe0IjQkAor0J3QntCS0JDQmtCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQngor0J3QntCS0JDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCS0JXQm9CY0J3QmtCQCivQndCe0JLQkNCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JLQldCh0J3QkAor0J3QntCS0JDQmtCe0JLQmNCLINCS0JjQlNCe0IjQlQor0J3QntCS0JDQmtCe0JLQmNCLINCS0JjQotCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0J3QntCS0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQndCe0JLQkNCa0J7QktCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCX0J7QoNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQndCe0JLQmNCn0JjQiyDQnNCY0JvQntCoCivQndCe0JLQmNCLINCn0JXQlNCeCivQndCe0JLQmNCLLdCn0KPQidCQ0Jog0InQo9CR0JjQptCQCivQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J3QntCS0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Cd0J7QktCY0Isg0J/QldCg0KHQmNCU0JAKK9Cd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cd0J7QktCY0Isg0KLQntCc0JAKK9Cd0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQndCe0JLQmNCm0JrQmCDQkNCb0JXQmtCh0JAKK9Cd0J7QktCY0JrQntCSINCS0JXQoNCQCivQndCe0JLQmNCd0KYg0JjQktCQ0J0KK9Cd0J7QktCY0KLQntCS0JjQiyDQnNCQ0KDQmtCeCivQndCe0JLQmtCe0JIg0JbQmNCS0J7QiNCY0J0KK9Cd0J7QktCa0J7QkiDQlNCe0JHQoNCY0JvQkAor0J3QntCS0JrQntCSINCT0JDQktCg0JAKK9Cd0J7QktCa0J7QkiDQiNCe0JLQkNCdCivQndCe0JLQmtCe0JIg0JzQmNCb0JDQnQor0J3QntCS0JrQntCSINCd0JDQlNCQCivQndCe0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQndCe0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQndCe0JLQmtCe0JIg0JfQkNCT0J7QoNCa0JAKK9Cd0J7QktCa0J7QktCY0Isg0ILQntCg0ILQlQor0J3QntCS0JrQntCS0JjQiyDQkNCd0JrQkAor0J3QntCS0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cd0J7QktCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cd0J7QktCa0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cd0J7QktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JrQntCS0JjQiyDQldCb0KTQoNCY0JTQkAor0J3QntCS0JrQntCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cd0J7QktCa0J7QktCY0Isg0IjQntCS0JDQnQor0J3QntCS0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QntCS0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQmtCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQndCe0JLQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cd0J7QktCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0J7QktCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cd0J7QktCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cd0J7QktCa0J7QktCY0Isg0J3QkNCU0JAKK9Cd0J7QktCa0J7QktCY0Isg0J3QldCR0J7QiNCo0JAg0JTQoAor0J3QntCS0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCa0J7QktCY0Isg0KDQntCh0JAKK9Cd0J7QktCa0J7QktCY0Isg0KHQnNCY0InQmtCQCivQndCe0JLQmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0J3QntCS0JrQntCS0JjQiyDQktCb0JDQlNCQCivQndCe0JLQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQndCe0JLQntCh0JXQmyDQk9Ce0KDQlNCQ0J3QkAor0J3QntCS0J7QodCV0Jsg0JzQkNCg0JjQiNCQCivQndCe0JLQntCh0JXQmyDQndCQ0JTQkAor0J3QntCS0J7QodCV0Jsg0KDQkNCI0JrQngor0J3QntCS0J7QodCV0JvQkNCmINCa0JDQotCY0KbQkAor0J3QntCS0J7QodCV0JvQkNCmINCh0KLQldCS0JDQnQor0J3QntCS0J7QodCV0JvQkNCmINCX0JLQntCd0JjQnNCY0KAKK9Cd0J7QktCe0KHQldCJ0JDQp9Ca0Jgg0JzQmNCb0JjQktCe0IgKK9Cd0J7QktCe0KHQldCb0J7QktCh0JrQmCDQkNCd0JPQldCbCivQndCe0JLQntCiINCb0JDQlNCY0KHQm9CQ0JIKK9Cd0J7QktCe0KIg0J/QkNCS0JvQlQor0J3QntCS0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cd0J7QktCe0JLQmNCLINCR0JDQotCg0JjQiwor0J3QntCS0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQndCe0JLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0J7QktCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQndCe0JLQntCS0JjQiyDQnNCY0J3QkAor0J3QntCS0J7QktCY0Isg0J3QkNCU0JAKK9Cd0J7QktCe0JLQmNCLINCS0JvQkNCU0J4KK9Cd0J7QktCe0JLQmNCLINCX0JTQldCd0JrQkAor0J3QntCS0KLQkCDQndCY0JrQntCb0JAg0JTQoAor0J3QntCS0KLQkCDQktCb0JDQlNCY0JzQmNCgCivQndCe0JLQotCQINCS0JvQkNCU0JjQnNCY0KAKK9Cd0KPQltCU0JjQiyDQnNCY0JvQkNCdCivQndCj0JbQlNCY0Isg0J7QkdCg0JDQlAor0J3Qo9CR0JXQoCDQkNCd0JAKK9Cd0KPQlNCY0Isg0ILQntCg0ILQlQor0J3Qo9CU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQndCj0KXQmCDQpNCV0JLQl9CYCivQndCj0KXQmCDQpdCQ0IjQlNCQ0J0KK9Cd0KPQpdCYINCX0JXQmtCY0IjQkAor0J3Qo9Ca0JAg0KXQkNCh0JDQnQor0J3Qo9Ca0JjQiyDQkNCJ0J4KK9Cd0KPQmtCY0Isg0I/QldCS0JDQlAor0J3Qo9Ca0JjQiyDQmtCQ0J3QmNCi0JAKK9Cd0KPQmtCY0Isg0J7QnNCV0KAKK9Ce0KfQldCd0JDQqCDQidCj0JTQnNCY0JvQkAor0J7Qp9Ca0JDQiNCYINCY0KjQotCS0JDQnQor0J7Qp9Ca0J4g0JLQmNCb0KXQldCb0JwKK9Ce0KfQntCS0JDQiCDQkdCe0JbQldCd0JrQkAor0J7Qp9Ce0JLQkNCIINCX0KPQl9CQ0J3QkAor0J7QqNCQ0J8g0IjQldCb0JXQndCQCivQntCo0JDQnyDQiNCe0JLQkNCdCivQntCo0JrQldCg0KIg0JDQndCa0JAKK9Ce0KjQotCg0JjQiyDQnNCY0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9Ce0KjQotCg0JjQmtCQINCW0JDQoNCa0J4KK9Ce0KjQotCg0JjQmtCQINCW0JDQoNCa0J4KK9Ce0KjQotCg0JjQmtCQINCU0JDQoNCY0J3QmtCQCivQntCW0JXQk9Ce0JLQmNCLINCW0JDQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQntCW0JXQk9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Ce0JbQldCT0J7QktCY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0J7QltCV0JPQntCS0JjQiyDQlNCQ0J3QlQor0J7QltCV0JPQntCS0JjQiyDQlNCg0JDQk9CQCivQntCW0JXQk9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Ce0JbQldCT0J7QktCY0Isg0JzQmNCg0JrQngor0J7QltCV0JPQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J7QltCV0JPQntCS0JjQiyDQndCV0JLQldCd0JrQkAor0J7QltCV0JPQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ce0JbQldCT0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J7QltCV0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQntCW0JLQkNCiINCI0JDQodCc0JjQndCQCivQntCW0JLQkNCiINCI0JDQodCc0JjQndCQCivQntCW0JLQkNCiINCI0KPQm9CY0IjQkNCd0JAKK9Ce0JbQktCQ0KIg0J7QndCU0KDQldCICivQntCC0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7QkdCo0KPQodCiINCI0JDQndCa0J4KK9Ce0JHQkNCU0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0J7QkdCQ0JTQntCSINCc0JjQm9CVCivQntCR0JDQlNCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0J7QkdCQ0JTQntCSINCh0JvQkNCS0JrQngor0J7QkdCQ0JTQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J7QkdCQ0JTQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Ce0JHQkNCU0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQntCR0JDQlNCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0J7QkdCQ0JTQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QkdCQ0JTQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J7QkdCV0KDQnNCQ0IjQldCgINCk0KDQkNCK0JAKK9Ce0JHQldCg0JzQkNCdINCR0KDQkNCd0JjQodCb0JDQkgor0J7QkdCV0KDQoiDQpNCg0JDQndCmCivQntCR0IjQldCU0J7QktCY0Isg0KHQotCe0IjQkNCdCivQntCR0JvQldCo0KfQo9CaINCQ0J3QmtCQCivQntCR0JvQldCo0KfQo9CaINCQ0J3QmtCQCivQntCR0JvQldCo0KfQo9CaINCU0KDQkNCT0JjQqNCQCivQntCR0JvQldCo0KfQo9CaINCT0KDQldCT0J7QoAor0J7QkdCb0JXQqNCn0KPQmiDQnNCQ0KDQmNCI0JAKK9Ce0JHQntCn0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQntCR0KDQkNCU0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0J7QkdCg0JDQlNCe0JIg0JPQntCg0JTQkNCd0JAKK9Ce0JHQoNCQ0JTQntCSINCJ0KPQkdCY0KjQkAor0J7QkdCg0JDQlNCe0JIg0InQo9CR0JjQqNCQCivQntCR0KDQkNCU0J7QkiDQnNCY0JvQkNCdCivQntCR0KDQkNCU0J7QkiDQnNCY0JvQntCg0JDQlAor0J7QkdCg0JDQlNCe0JIg0J3QkNCU0JAKK9Ce0JHQoNCQ0JTQntCSINCd0J7QktCQ0JoKK9Ce0JHQoNCQ0JTQntCSINCg0JDQlNCY0JLQntCICivQntCR0KDQkNCU0J7QkiDQoNCQ0JTQnNCY0JvQkAor0J7QkdCg0JDQlNCe0JIg0KHQotCe0IjQkNCd0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JbQmNCS0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCW0JjQktCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQgtCe0KDQgtCVCivQntCR0KDQkNCU0J7QktCY0Isg0ILQntCg0ILQlQor0J7QkdCg0JDQlNCe0JLQmNCLINCC0J7QoNCC0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCC0KPQoNCeCivQntCR0KDQkNCU0J7QktCY0Isg0ILQo9Cg0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCQ0J3QmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCe0KDQmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCj0JTQngor0J7QkdCg0JDQlNCe0JLQmNCLINCU0JDQndCVCivQntCR0KDQkNCU0J7QktCY0Isg0JTQkNCd0JjQiNCV0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCU0JDQndCY0JvQniDQlNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JTQnNCY0KLQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQntCR0KDQkNCU0J7QktCY0Isg0JPQm9CY0KjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQntCR0KDQkNCU0J7QktCY0Isg0JPQktCe0JfQlNCV0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQmNCb0JjQiNCQCivQntCR0KDQkNCU0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQiNCe0JLQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0IjQntCS0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCI0J7QktCeCivQntCR0KDQkNCU0J7QktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQm9CQ0JfQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JvQkNCX0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCb0JjQlNCY0IjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQm9Cj0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JDQoNCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQlQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0J7QqAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Cj0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCg0JDQqAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQoNCI0JDQndCQINCU0JjQn9CbINCY0J3Qkwor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQoNCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQntCR0KDQkNCU0J7QktCY0Isg0J3QkNCU0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCd0JXQlNCV0InQmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCV0J3QkNCUINCU0KAg0JvQldCa0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQn9CV0KLQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0KDQkNCU0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQntCR0KDQkNCU0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCg0JDQotCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCe0KHQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JDQktCQCivQntCR0KDQkNCU0J7QktCY0Ist0KHQmNCa0JjQnNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCc0JjQidCa0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCc0JjQidCa0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQntCR0KDQkNCU0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCeCivQntCR0KDQkNCU0J7QktCY0Isg0KHQotCV0JLQngor0J7QkdCg0JDQlNCe0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0KLQntCU0J7QoAor0J7QkdCg0JDQlNCe0JLQmNCLINCS0JXQoNCQCivQntCR0KDQkNCU0J7QktCY0Isg0JLQldCg0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JfQm9CQ0KLQmNCm0JAKK9Ce0JHQoNCV0KXQoiDQn9CV0KLQkNCgCivQntCR0KDQldCd0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQntCR0KDQldCd0JjQiyDQlNCg0JDQk9CeCivQntCR0KDQldCd0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J7QkdCg0JXQndCY0Isg0JzQkNCd0J7QiNCb0JUKK9Ce0JHQoNCV0J3QmNCLINCc0JjQm9CQ0JTQmNCdCivQntCR0KDQldCd0JjQiyDQnNCY0JvQldCS0JAKK9Ce0JHQoNCV0J3QmNCLINCc0JjQm9Ce0JzQmNCgCivQntCR0KDQldCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J7QkdCg0JXQndCY0Isg0KDQkNCU0J7QnNCQ0J0KK9Ce0JHQoNCV0J3QmNCLINCh0J3QldCW0JDQndCQCivQntCR0KDQldCd0J7QkiDQltCY0JLQkNCdCivQntCR0KDQldCd0J7QkiDQltCY0JLQkNCdCivQntCR0KDQldCd0J7QkiDQiNCV0JvQldCd0JAKK9Ce0JHQoNCV0J3QntCSINCI0JXQktCg0JXQnAor0J7QkdCg0JXQndCe0JIg0IjQntCb0JDQndCU0JAKK9Ce0JHQoNCV0J3QntCSINCa0KDQo9Cd0JAKK9Ce0JHQoNCV0J3QntCSINCf0JXQotCQ0KAKK9Ce0JHQoNCV0J3QntCSINCg0JDQlNCY0JLQntCICivQntCR0KDQldCd0J7QkiDQodCQ0IrQkAor0J7QkdCg0JXQndCe0JIg0KHQkNCS0JAKK9Ce0JHQoNCV0J3QntCSINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQntCR0KDQldCd0J7QkiDQodCi0JDQndCa0JAKK9Ce0JHQoNCV0J3QntCSINCh0KLQldCS0JDQnQor0J7QkdCg0JXQndCe0JIg0JLQkNCh0JAKK9Ce0JHQoNCV0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ce0JHQoNCV0J3QntCSINCX0J7QoNCY0KbQkAor0J7QkdCg0JXQndCe0JIg0JfQntCg0JjQptCQCivQntCR0KDQldCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ce0JHQoNCV0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J7QkdCg0JXQndCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQntCR0KDQldCd0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J7QkdCg0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQoAor0J7QkdCg0JXQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0J7QkdCg0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ce0JHQoNCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQntCR0KDQldCd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQktCQ0KHQngor0J7QkdCg0JXQndCe0JLQmNCLINCS0JvQkNCI0JrQngor0J7QkdCg0JjQiyDQk9Ce0IjQmtCeCivQntCR0KDQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Ce0JHQoNCa0J3QldCW0JXQkiDQgtCe0KDQgtCVCivQntCR0KDQmtCd0JXQltCV0JIg0JzQmNCb0JXQndCa0J4KK9Ce0JHQoNCa0J3QldCW0JXQkiDQoNCQ0JTQnNCY0JvQkAor0J7QkdCg0JrQndCV0JbQldCSINCg0JDQlNCe0IjQmtCQCivQntCR0KDQmtCd0JXQltCV0JIg0KHQotCV0JLQkNCdCivQntCR0KDQntCS0JDQp9Ca0Jgg0JTQo9Co0JjQptCQCivQntCR0KDQntCS0JDQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9Ce0JHQoNCe0JLQkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQntCR0KDQntCS0JDQp9Ca0Jgg0KDQkNCU0JUKK9Ce0JHQoNCe0JLQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQntCR0KDQntCS0JDQpiDQnNCY0IjQkNCiCivQntCR0KDQntCS0KHQmtCYINCC0J7QoNCC0JUKK9Ce0JHQoNCe0JLQodCa0Jgg0JTQoNCQ0JPQo9Ci0JjQnQor0J7QkdCg0J7QktCh0JrQmCDQmNCS0JDQnQor0J7QkdCg0J7QktCh0JrQmCDQiNCe0JLQkNCdCivQntCR0KDQntCS0KHQmtCYINCa0JDQotCY0KbQkAor0J7QkdCg0J7QktCh0JrQmCDQnNCY0KXQkNCI0JvQngor0J7QkdCg0J7QktCh0JrQmCDQktCQ0KHQkAor0J7QkdCj0IvQmNCd0JAg0KDQkNCi0J7QnNCY0KAKK9Ce0JHQo9CL0JjQndCQINCh0JvQkNCS0JrQngor0J7QkdCj0IvQmNCd0JAg0KHQm9CQ0JLQntCJ0KPQkQor0J7QptCe0JrQntCJ0JjQiyDQidCj0JHQmNCd0JrQngor0J7Qj9CY0Isg0J3QntCS0JrQkAor0J7Qj9CY0Isg0KDQkNCi0J7QnNCY0KAKK9Ce0I/QmNCLINCX0J7QoNCa0JAKK9Ce0I/QntCS0KHQmtCYINCY0JvQmNCI0JAKK9Ce0JTQkNCP0JjQiyDQlNCj0KjQkNCdCivQntCU0JDQj9CY0Isg0JPQntCg0JTQkNCd0JAKK9Ce0JTQkNCP0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J7QlNCQ0I/QmNCLINCd0JDQlNCQCivQntCU0JDQj9CY0Isg0KDQkNCU0JjQktCe0IgKK9Ce0JTQkNCP0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JTQkNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQntCU0JDQktCY0Ist0IjQntCh0JjQiyDQiNCV0JvQmNCm0JAg0JTQmNCf0Jsg0JjQndCTCivQntCU0JDQktCY0Isg0JzQmNCb0JrQkAor0J7QlNCQ0JLQmNCLINCh0JvQkNCS0JrQngor0J7QlNCe0KAg0IjQntCh0JjQnwor0J7QlNCe0JLQmNCLINCI0J7QktCeCivQntCU0KDQmCDQkdCQ0JvQmNCd0KIKK9Ce0JTQoNCYINCa0JDQoNCb0J4KK9Ce0KTQldCd0JHQldCl0JXQoCDQk9CY0JfQldCb0JAKK9Ce0KTQldCd0JHQldCl0JXQoCDQktCQ0JvQldCg0JjQiNCQCivQntCk0JXQndCR0JXQpdCV0KAg0JLQldCg0JjQptCQCivQntCT0JDQoCDQiNCV0JvQldCd0JAKK9Ce0JPQkNCgINCS0JvQkNCU0JUKK9Ce0JPQndCV0J3QntCS0KHQmtCQINCR0J7QiNCQ0J3QkAor0J7Qk9Cd0JXQndCe0JLQodCa0JAg0KbQktCV0KLQkNCd0JrQkAor0J7Qk9CK0JDQndCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9Ce0JPQitCQ0J3QntCSINCc0JjQm9CV0KLQkAor0J7Qk9CK0JDQndCe0JLQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9Ce0JPQitCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQntCT0IrQkNCd0J7QktCY0Isg0JDQptCQCivQntCT0IrQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ce0JPQitCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ce0JPQitCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdINCU0KAg0JvQldCa0JDQoAor0J7Qk9CK0JDQndCe0JLQmNCLINCU0JzQmNCi0JDQoAor0J7Qk9CK0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkCDQlNCgINCb0JXQmtCQ0KAKK9Ce0JPQitCQ0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J7Qk9CK0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQntCT0IrQkNCd0J7QktCY0Isg0J7Qk9CK0JXQndCQCivQntCT0IrQkNCd0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAg0JTQoCDQm9CV0JrQkNCgCivQntCT0IrQkNCd0J7QktCY0Isg0KDQkNCd0JrQngor0J7Qk9CK0JDQndCe0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQntCT0IrQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0J7Qk9CK0JXQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQntCT0IrQldCd0J7QktCY0Isg0JTQkNCg0JAKK9Ce0JPQitCV0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQntCT0IrQldCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ce0JPQitCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ce0JPQitCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ce0JPQitCV0J3QntCS0JjQiyDQndCe0JLQmtCQCivQntCT0IrQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0J7Qk9CK0JXQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0J7Qk9CK0JXQndCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0J7Qk9CK0JXQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0J7Qk9CK0JXQndCe0JLQmNCLINCh0KLQldCS0J4KK9Ce0JPQitCV0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQntCT0J7QoNCV0JvQmNCm0JAg0JHQmNCb0IjQkNCd0JAKK9Ce0JPQntCg0JXQm9CY0KbQkCDQkdCe0JPQlNCQ0J0KK9Ce0JPQntCg0JXQm9CY0KbQkCDQkdCg0JDQndCa0J4KK9Ce0JPQntCg0JXQm9CY0KbQkCDQnNCQ0KDQmNCI0JAKK9Ce0JPQoNCY0JfQldCaINCU0KDQkNCT0JjQptCQCivQntCT0KDQmNCX0JXQmiDQlNCg0JDQk9Cj0KLQmNCdCivQntCT0KDQmNCX0JXQmiDQmtCg0JjQodCi0JjQndCQCivQntCT0KDQmNCX0JXQmiDQoNCe0JHQldCg0KIKK9Ce0JPQoNCY0JfQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCR0J7QoNCQCivQntCT0KDQmNCX0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Ce0JPQoNCY0JfQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCU0KDQkNCT0JjQptCQCivQntCT0KDQmNCX0J7QktCY0Isg0JTQo9Co0JDQnQor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0JPQoNCY0JfQntCS0JjQiyDQnNCY0JvQlQor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCc0JjQm9CY0JLQntCICivQntCT0KDQmNCX0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ce0JPQoNCY0JfQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQntCT0KDQmNCX0J7QktCY0Isg0KHQoNCV0KLQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCS0JXQidCa0J4KK9Ce0JPQoNCY0JfQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQntCT0KDQmNCX0J7QktCY0Isg0JfQntCg0JDQnQor0J7QiNCU0JDQndCY0Isg0KHQkNCS0JAKK9Ce0IjQmtCY0Isg0KHQm9CQ0JLQmtCeCivQntCa0JDQqNCQ0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9Ce0JrQkNCKINCh0KLQldCS0JDQnQor0J7QmtCQ0IrQmCDQm9CQ0IjQntCoCivQntCa0JDQitCYINCe0KHQmtCQ0KAKK9Ce0JrQkNCK0Jgg0KDQkNCd0JrQkAor0J7QmtCQ0IrQmCDQotCY0JHQntCgCivQntCa0JDQndCe0JLQmNCLINCd0J7QktCY0KbQkAor0J7QmtCV0JfQkNCdINCI0J7QktCQ0J0KK9Ce0JrQmNCJINCh0JvQkNCS0JrQngor0J7QmtCY0InQldCS0JjQiyDQodCe0KTQmNCI0JAKK9Ce0JrQidCV0KjQkCDQndCV0J3QkNCUCivQntCa0InQldCo0JAg0J3QldCd0JDQlAor0J7QmtCb0J7QkdCP0JjQiNCQINCc0JDQoNCa0J4KK9Ce0JrQoNCQ0IjQndCe0JIg0KHQotCV0JLQkNCdCivQntCa0KDQo9CW0J3QmNCaINCU0KDQkNCT0JDQnQor0J7QmtCh0JXQndCk0JXQm9CUINCI0J7QktCQ0J0KK9Ce0JrQo9Ca0JAg0InQmNCJ0JDQndCQCivQntCa0KPQm9CY0Isg0JHQntCT0JTQkNCdCivQntCa0KPQm9CY0Isg0JfQntCg0JDQnQor0J7Qm9Co0J7QktCYINCd0JjQmtCe0JvQkAor0J7Qm9CQ0KUg0KjQkNCd0JTQntCgCivQntCb0JDQpSDQqNCQ0J3QlNCe0KAKK9Ce0JvQkNClINCo0JDQndCU0J7QoAor0J7Qm9CQ0KUg0ILQntCg0ILQlQor0J7Qm9CQ0KUg0JDQndCU0KDQmNCI0JAKK9Ce0JvQkNClINCV0KDQndCQCivQntCb0JDQpSDQpNCV0KDQldCd0KYKK9Ce0JvQkNClINCk0JXQoNCV0J3Qpgor0J7Qm9CQ0KUg0JjQqNCi0JLQkNCdCivQntCb0JDQpSDQmNCo0KLQktCQ0J0KK9Ce0JvQkNClINCI0JXQm9CV0J3QkAor0J7Qm9CQ0KUg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ce0JvQkNClINCI0J7QktCQ0J0KK9Ce0JvQkNClINCI0KPQm9CY0IjQkNCd0JAKK9Ce0JvQkNClINCb0JDQodCb0J4KK9Ce0JvQkNClINCc0JjQoNCa0J4KK9Ce0JvQkNClINCd0JDQndCU0J7QoAor0J7Qm9CQ0KUg0J3QkNCd0JTQntCgCivQntCb0JDQpSDQn9CQ0JLQm9CVCivQntCb0JDQpSDQn9CQ0JLQm9CVCivQntCb0JDQpSDQoNCe0JfQkNCb0JjQiNCQCivQntCb0JDQpSDQktCY0J3QptCVCivQntCb0JDQiNCe0Kgg0JHQldCb0JAKK9Ce0JvQkNCI0J7QqCDQk9Ce0KDQlNCQ0J3QkAor0J7Qm9CQ0IjQntCoINCI0JDQndCe0KgKK9Ce0JvQkNCI0J7QqCDQnNCY0KXQkNCJCivQntCb0JDQiNCe0Kgg0JzQmNCl0JDQiQor0J7Qm9CQ0IjQntCoINCe0KLQngor0J7Qm9CQ0KAg0J/QkNCjCivQntCb0JHQmNCd0JAg0KHQm9CQ0JLQmtCeCivQntCb0JXQkNCgINCc0JjQpdCQ0IjQm9CeCivQntCb0JXQkNCgINCc0JjQpdCQ0IjQm9CeCivQntCb0JXQkNCgINCh0JDQitCQCivQntCb0JXQkNCgINCh0JLQldCi0JjQodCb0JDQkgor0J7Qm9CV0JDQoCDQktCb0JDQlNCQCivQntCb0JXQiNCQ0KAg0IjQntCQ0JrQmNCcCivQntCb0JjQp9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0JvQmNCn0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JvQmNCS0JXQoNCY0Isg0J3QldCR0J7QiNCo0JAKK9Ce0InQqNCV0JLQodCa0JAg0J3QkNCi0JDQqNCQCivQntCJ0JDQp9CQINCY0JvQmNCI0JAKK9Ce0InQkNCn0JAg0JzQkNCg0JjQptCQCivQntCJ0JDQp9CQINCc0JjQm9CV0J3QmtCeCivQntCJ0JDQp9CQINCc0JjQm9Ce0JLQkNCdCivQntCJ0JDQp9CQINCd0JjQmtCe0JvQkAor0J7QidCQ0KfQkCDQoNCQ0JTQkAor0J7QidCQ0KfQkCDQodCb0JDQktCe0InQo9CRCivQntCJ0JDQp9CQINCh0KLQkNCd0JjQodCb0JDQkgor0J7QidCQ0KfQkCDQodCi0JXQktCQ0J0KK9Ce0JvQnNCQ0J0g0JzQkNCg0JjQiNCQCivQntCb0KPQqNCa0Jgg0JTQntCR0KDQmNCb0JAKK9Ce0JvQo9Co0JrQmCDQlNCj0KjQkNCdCivQntCb0KPQqNCa0Jgg0JTQo9Co0JDQnQor0J7Qm9Cj0KjQmtCYINCb0JDQl9CQ0KAKK9Ce0JvQo9Co0JrQmCDQnNCY0JvQo9Ci0JjQnQor0J7Qm9Cj0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ce0JvQo9Co0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQntCb0KPQqNCa0Jgg0J7Qm9CY0JLQldCg0JAKK9Ce0JvQo9Co0JrQmCDQodCi0J7QiNCQ0J0KK9Ce0JvQo9Co0JrQmCDQotCe0JTQntCgCivQntCb0KPQqNCa0Jgg0KLQntCc0JjQodCb0JDQkgor0J7Qm9Cj0KjQmtCYINCS0JDQodCQCivQntCb0KPQqNCa0Jgg0JLQldCb0JjQnNCY0KAg0JTQoAor0J7Qm9Cj0KjQmtCYINCS0JXQoNCY0KbQkAor0J7Qm9Cj0IjQmNCLINCY0JLQkNCd0JAKK9Ce0JvQo9CI0JjQiyDQmNCS0JDQnQor0J7Qm9Cj0IjQmNCLINCI0JXQm9CV0J3QkAor0J7Qm9Cj0IjQmNCLINCc0JjQm9CY0KbQkAor0J7Qm9Cj0IjQmNCLINCc0JjQoNCa0J4KK9Ce0JzQp9CY0JrQo9ChINCR0J7QqNCa0J4KK9Ce0JzQp9CY0JrQo9ChINCI0JXQm9CV0J3QkAor0J7QnNCn0JjQmtCj0KEg0JzQkNCT0JTQkAor0J7QnNCn0JjQmtCj0KEg0J3QmNCa0J7Qm9CQCivQntCc0KfQmNCa0KPQoSDQoNCQ0IjQmtCeCivQntCc0JDQidCV0JIg0JjQktCQ0J0KK9Ce0JzQkNCJ0JXQkiDQmNCS0JDQnQor0J7QnNCQ0InQldCSINCI0KPQm9Ca0JAKK9Ce0JzQkNCJ0JXQkiDQm9CV0J/QntCh0JDQktCQCivQntCc0JDQidCV0JIg0JvQldCf0J7QodCQ0JLQkAor0J7QnNCQ0InQldCSINCc0JjQm9CV0J3QkAor0J7QnNCQ0InQldCSINCc0JjQm9Ce0KDQkNCUCivQntCc0JDQidCV0JIg0JLQntCI0JjQodCb0JDQkgor0J7QnNCQ0JfQmNCLINCh0J7QpNCY0IjQkAor0J7QnNCV0KDQkNCT0JjQiyDQmtCV0JzQkNCbCivQntCc0JXQoNCYINCl0JDQiNCg0KPQlNCY0J0KK9Ce0JzQldCg0Jgg0KXQkNCb0JjQnAor0J7QnNCV0KDQmCDQpdCQ0KHQngor0J7QnNCV0KDQmCDQndCV0I/QkNCUCivQntCc0JXQoNCYINCd0KPQoNCj0JTQmNCdCivQntCc0JXQoNCX0KMg0JDQndCi0J7QnQor0J7QnNCV0KDQl9CjINCV0JvQmNCX0JDQkdCV0KLQkAor0J7QnNCY0Isg0JjQlNCg0JjQlwor0J7QnNCe0KDQkNCmINCa0JDQotCQ0KDQmNCd0JAKK9Ce0JzQntCg0JDQpiDQm9CQ0KLQmNCd0JrQkAor0J7QndCn0JXQktCh0JrQmCDQiNCe0JLQkNCdCivQntCd0KfQoyDQn9CV0KLQkNCgCivQntCd0JTQoNCY0Jog0JTQo9Co0JDQndCa0JAKK9Ce0J3QldCo0KfQo9CaINCc0JjQpdCQ0IjQm9CeCivQntCd0JXQqNCL0KPQmiDQndCV0J3QkNCUCivQntCd0KXQkNCj0Jcg0JzQkNCg0JjQiNCQCivQntCd0J7QlNCYINCY0KjQotCS0JDQnQor0J7Qn9CQ0KfQkNCaINCQ0J3QotCj0J0KK9Ce0J/QkNCn0JDQmiDQmNCS0JDQnQor0J7Qn9CQ0KfQmNCLINCQ0J3QgtCQCivQntCf0JDQp9CY0Isg0JDQndCT0JXQm9CY0J3QkAor0J7Qn9CQ0KfQmNCLINCR0J7QodCY0InQmtCQCivQntCf0JDQp9CY0Isg0JHQoNCQ0J3QmtCeCivQntCf0JDQp9CY0Isg0JTQo9Co0JDQnQor0J7Qn9CQ0KfQmNCLINCa0J7QodCi0JAKK9Ce0J/QkNCn0JjQiyDQnNCY0JvQkNCdCivQntCf0JDQp9CY0Isg0JzQmNCb0JDQnQor0J7Qn9CQ0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCf0JDQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ce0J/QkNCn0JjQiyDQnNCY0KDQmtCeCivQntCf0JDQp9CY0Isg0JzQmNCg0JrQngor0J7Qn9CQ0KfQmNCLINCd0JXQndCQ0JQKK9Ce0J/QkNCn0JjQiyDQn9CQ0JLQm9CVCivQntCf0JDQp9CY0Isg0KHQmNCc0J4KK9Ce0J/QkNCn0JjQiyDQodCb0JDQktCa0J4KK9Ce0J/QkNCn0JjQiyDQodCi0JXQktCQ0J0KK9Ce0J/QkNCn0JjQiyDQotCe0JTQntCgCivQntCf0JDQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9Ce0J/QkNCb0JjQiyDQnNCQ0KDQmtCeCivQntCf0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQntCf0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQntCf0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQntCf0JDQm9CY0Isg0KHQntCk0JjQiNCQCivQntCf0JDQndCn0JDQoNCV0JIg0JTQo9Co0JDQnQor0J7Qn9CQ0J3Qp9CQ0KDQldCSINCY0JLQkNCdCivQntCf0JDQndCn0JDQoNCV0JIg0JzQmNCb0JrQkAor0J7Qn9CQ0KDQndCY0KbQkCDQidCj0JHQngor0J7Qn9CQ0KDQndCY0KbQkCDQm9Cj0JrQkAor0J7Qn9CQ0KDQndCY0KbQkCDQnNCQ0JrQodCY0JwKK9Ce0J/QkNCg0J3QmNCm0JAg0JzQkNCa0KHQmNCcCivQntCf0JDQoNCd0JjQptCQINCc0JDQmtCh0JjQnAor0J7Qn9CQ0KDQndCY0KbQkCDQnNCQ0KDQmNCd0JrQngor0J7Qn9CQ0KDQndCY0KbQkCDQnNCY0JvQldCd0JrQngor0J7Qn9CQ0KDQndCY0KbQkCDQnNCY0KDQkAor0J7Qn9CQ0KDQndCY0KbQkCDQodCe0KTQmNCI0JAKK9Ce0J/QkNCg0J3QmNCm0JAg0JLQmNCUCivQntCf0JXQm9CmINCb0JDQlNCY0KHQm9CQ0JIKK9Ce0J/QntCI0JvQldCS0JjQiyDQm9CQ0JfQkNCgCivQntCf0KDQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0J/QoNCQ0J3QntCS0JjQiyDQnNCY0KbQkAor0J7Qn9Cg0JXQqNCd0JjQmiDQkNCd0JrQmNCm0JAKK9Ce0J/QoNCY0IjQkNCdINCQ0J3QgtCV0JvQmtCeINCU0JjQn9CbINCY0J3Qkwor0J7Qn9Cg0JjQiNCQ0J0g0JTQoNCQ0JPQkNCdCivQntCf0KDQmNCI0JDQnSDQnNCY0JvQmtCQCivQntCf0KDQo9CmINCc0JjQm9Ce0KDQkNCUCivQntCf0KHQldCd0JjQptCQINCc0JjQm9CQ0J0KK9Ce0J/QodCV0J3QmNCm0JAg0KHQntCa0JAKK9Ce0KDQp9CY0Isg0KjQmNCc0JUKK9Ce0KDQp9CY0Isg0KjQmNCc0JUKK9Ce0KDQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0KDQp9CY0Isg0JTQoNCQ0JPQngor0J7QoNCn0JjQiyDQmNCS0JDQnQor0J7QoNCn0JjQiyDQodCi0IjQldCf0JDQnQor0J7QoNCo0JjQiyDQgtCe0KDQgtCVCivQntCg0KjQmNCLINCI0J7QptCQCivQntCg0KjQmNCLINCc0JjQm9CY0KbQkAor0J7QoNCo0J7QqCDQgtCe0KDQgtCVCivQntCg0KjQntCoINCR0KDQkNCd0JrQngor0J7QoNCo0J7QqCDQlNCg0JDQk9CQ0J0KK9Ce0KDQqNCe0Kgg0KTQldCg0JXQndCmCivQntCg0KjQntCoINCI0J7QodCY0J8KK9Ce0KDQqNCe0Kgg0J3QmNCa0J7Qm9CQCivQntCg0KjQntCoINCg0J7Ql9CQ0JvQmNCI0JAKK9Ce0KDQqNCe0Kgg0KHQkNCS0JAKK9Ce0KDQqNCe0Kgg0KLQldCg0JXQl9CQCivQntCg0KjQntCoINCX0J7QoNCQ0J0KK9Ce0KDQqNCe0JvQmNCLINCh0KLQiNCV0J/QkNCdCivQntCg0JDQndCY0KbQkCDQnNCQ0JrQodCY0JwKK9Ce0KDQkNCS0JXQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0KDQkNCS0JXQpiDQkdCg0JDQndCa0J4KK9Ce0KDQkNCS0JXQpiDQnNCQ0KDQmtCeCivQntCg0JDQktCV0KYg0J/QkNCS0JvQlQor0J7QoNCR0JDQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7QoNCR0JDQnSDQldCc0JjQm9CY0IjQkAor0J7QoNCR0JDQnSDQk9CQ0JLQoNCQCivQntCg0JHQkNCdINCS0JXQodCd0JAKK9Ce0KDQlNCQ0J3QntCh0JrQmCDQiNCV0JvQldCd0JAKK9Ce0KDQlNCY0J3QkNCn0JXQkiDQgtCe0KDQgtCVCivQntCg0JTQmNCd0JDQp9CV0JIg0JzQm9CQ0JTQldCdCivQntCg0JTQmNCd0JDQp9CV0JIg0KLQntCU0J7QoAor0J7QoNCU0JjQndCQ0KfQldCSINCi0J7QlNCe0KAKK9Ce0KDQlNCY0J3QkNCn0JXQkiDQotCe0JTQntCgCivQntCg0JXQqNCn0JDQndCY0J0g0JHQntCT0JTQkNCdCivQntCg0JXQqNCn0JDQndCY0J0g0JHQoNCQ0J3QmtCeCivQntCg0JXQqNCn0JDQndCY0J0g0JzQmNCb0JDQnQor0J7QoNCV0KjQp9CQ0J3QmNCdINCc0JjQm9Ce0JLQkNCdCivQntCg0JXQqNCn0JDQndCY0J0g0J3QkNCi0JDQm9CY0IjQkCDQlNCgCivQntCg0JXQqNCn0JDQndCY0J0g0J3QkNCi0JDQm9CY0IjQkAor0J7QoNCV0KjQp9CQ0J3QmNCdINCd0JjQmtCe0JvQkAor0J7QoNCV0KjQp9CQ0J3QmNCdINCg0JDQlNCe0JLQkNCdCivQntCg0JXQqNCn0JDQndCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J7QoNCV0KjQp9CQ0J3QmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Ce0KDQldCo0IvQkNCd0JjQnSDQlNCj0KjQkNCdCivQntCg0JXQqNCa0J7QktCY0Isg0JTQntCd0JAKK9Ce0KDQldCo0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ce0KDQldCo0JrQntCS0JjQiyDQnNCY0JvQlQor0J7QoNCV0KjQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0J7QoNCV0KjQmtCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Ce0KDQldCRINCR0J7QoNCY0KEKK9Ce0KDQldCl0J7QktCQ0KYg0KDQo9CW0JAKK9Ce0KDQldCJINCC0KPQoNCeCivQntCg0JXQiSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0KDQldCJINCU0JDQoNCY0J3QmtCQCivQntCg0JXQiSDQiNCe0JLQkNCdCivQntCg0JXQiSDQidCj0JHQngor0J7QoNCV0Ikg0JzQkNCi0JjQm9CU0JAKK9Ce0KDQldCJINCc0JjQm9CV0JLQkAor0J7QoNCV0Ikg0J3QkNCi0JDQm9CY0IjQkAor0J7QoNCV0Ikg0KDQkNCU0JUKK9Ce0KDQldCd0JTQmCDQiNCj0JvQmNCI0JDQndCQCivQntCg0JXQndCU0Jgg0JvQkNCh0JvQngor0J7QoNCV0J3QlNCYINCe0KLQngor0J7QoNCb0JDQndCU0JjQiyDQmtCe0KDQndCV0JvQmNCI0JAKK9Ce0KDQm9CQ0J3QlNCY0Isg0JfQntCb0KLQkNCdCivQntCg0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J7QoNCb0JjQiyDQidCj0JHQmNCm0JAKK9Ce0KDQm9CY0Isg0InQo9CR0JjQptCQCivQntCg0JvQmNCLINCc0JDQoNCY0KbQkAor0J7QoNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Ce0KDQm9CY0Isg0JzQmNCb0JDQnQor0J7QoNCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QoNCb0JjQiyDQndCQ0JTQkAor0J7QoNCb0JjQiyDQndCQ0JTQldCW0JTQkAor0J7QoNCb0JjQiyDQndCV0JTQldCJ0JrQngor0J7QoNCb0JjQmiDQkNCd0JAKK9Ce0KDQm9CY0Jog0JzQkNCg0JjQiNCQCivQntCg0JvQntCS0JDQpiDQldCg0JbQldCR0JXQogor0J7QoNCb0J7QktCY0Isg0JDQndCi0JUKK9Ce0KDQm9Ce0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQntCg0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQntCg0JvQntCS0JjQiyDQiNCe0JLQngor0J7QoNCb0J7QktCY0Isg0InQo9CR0JjQptCQCivQntCg0JvQntCS0JjQiyDQnNCQ0J3QlQor0J7QoNCb0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAKK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCg0JvQntCS0JjQiyDQodCQ0KjQkAor0J7QoNCb0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9Ce0KDQm9Ce0JLQmNCLINCh0KLQldCS0JjQptCQCivQntCg0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ce0KDQm9Ce0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ce0KDQnNCQ0Jgg0KLQmNCR0J7QoAor0J7QoNCK0JDQmtCe0JIg0J/QoNCY0JfQoNCV0J3QmtCQCivQntCg0J4g0KfQldCU0J7QnNCY0KAKK9Ce0KDQntChINCW0JDQoNCa0J4KK9Ce0KDQntChINCC0KPQoNCQCivQntCg0J7QoSDQgtCj0KDQkAor0J7QoNCe0KEg0JDQm9CR0JXQoNCiCivQntCg0J7QoSDQldCj0JPQldCdCivQntCg0J7QoSDQiNCe0JDQmtCY0JwKK9Ce0KDQntChINCc0JDQoNCY0IjQkAor0J7QoNCe0KEg0J3QmNCa0J7Qm9CQCivQntCg0J7QoSDQktCQ0KHQkAor0J7QoNCe0KEg0JfQlNCV0J3QmtCQCivQntCg0J7QktCn0JDQndCV0KYg0JrQmNCg0JAg0JTQoAor0J7QoNCe0JLQldCmINCI0J7QodCY0J8KK9Ce0KDQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J7QoNCh0JDQkyDQkNCd0KLQkNCbCivQntCg0KHQmNCLINCg0JDQlNCc0JjQm9CQCivQntCg0KLQkNCaINCa0JDQi9CQCivQntCg0JLQntCoINCb0JDQiNCe0KgKK9Ce0KDQl9CQINCc0JjQoNCm0JAKK9Ce0KDQl9CQINCg0J7QodCQ0J3QkAor0J7QodCV0IvQkNCd0KHQmtCYINCc0JvQkNCU0JXQnQor0J7QodCV0KLQoNCe0JIg0J3QmNCa0J7Qm9CQCivQntCh0JvQntCS0KfQkNCdINCR0J7QodCY0InQmtCQCivQntCh0JzQkNCd0JDQiCDQmNCc0JXQoAor0J7QodCc0JDQndCYINCQ0KHQkNCdCivQntCh0JzQkNCd0Jgg0JzQldCl0JzQldCUCivQntCh0JzQkNCd0Jgg0J3QldCo0JDQogor0J7QodCc0JDQndCYINCg0J7QnNCQ0J3QmtCQCivQntCh0JzQkNCd0Jgg0KHQldCb0JjQnAor0J7QodCc0JDQndCa0JDQpyDQodCV0JvQmNCcCivQntCh0JzQkNCd0J7QktCY0Isg0JrQm9CQ0KPQlNCY0IjQkAor0J7QodCc0JDQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQntCh0JzQntCd0J7QiCDQodCQ0JTQoNCY0IjQkAor0J7QodCd0J7QktCY0Isg0J7QodCa0JDQoAor0J7QodCe0KHQm9CY0IjQkCDQoNCQ0JTQldCd0JrQngor0J7QodCg0JXQlNCa0JDQoCDQiNCe0KHQmNCfCivQntCh0KLQldCgINCY0JvQntCd0JAKK9Ce0KHQotCe0JjQiyDQgtCe0KDQgtCVCivQntCh0KLQntCY0Isg0JfQntCg0JDQnQor0J7QodCi0J7QiNCY0Isg0JbQmNCS0JrQngor0J7QodCi0J7QiNCY0Isg0ILQntCg0ILQlQor0J7QodCi0J7QiNCY0Isg0JHQntCo0JrQngor0J7QodCi0J7QiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0KHQotCe0IjQmNCLINCR0J7QltCY0JTQkNCgCivQntCh0KLQntCI0JjQiyDQkdCe0JPQlNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCR0KDQkNCd0JAKK9Ce0KHQotCe0IjQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ce0KHQotCe0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQntCh0KLQntCI0JjQiyDQkdCg0JDQndCa0J4KK9Ce0KHQotCe0IjQmNCLINCU0JDQpNCY0J3QkAor0J7QodCi0J7QiNCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J7QodCi0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQntCh0KLQntCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0J7QodCi0J7QiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ce0KHQotCe0IjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ce0KHQotCe0IjQmNCLINCU0KPQqNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCU0KPQqNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCU0KPQqNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCT0J7QiNCa0J4KK9Ce0KHQotCe0IjQmNCLINCT0J7QoNCY0J3QmtCQCivQntCh0KLQntCI0JjQiyDQmNCS0JDQnQor0J7QodCi0J7QiNCY0Isg0IjQntCS0JDQndCa0JAKK9Ce0KHQotCe0IjQmNCLINCa0JDQotCY0KbQkAor0J7QodCi0J7QiNCY0Isg0JvQkNCX0JDQoAor0J7QodCi0J7QiNCY0Isg0InQo9CR0JAKK9Ce0KHQotCe0IjQmNCLINCJ0KPQkdCY0J3QmtCeCivQntCh0KLQntCI0JjQiyDQidCj0JHQntCc0JjQoAor0J7QodCi0J7QiNCY0Isg0InQo9CR0J7QnNCY0KAKK9Ce0KHQotCe0IjQmNCLINCJ0KPQkdCe0JzQmNCgCivQntCh0KLQntCI0JjQiyDQnNCY0IvQkAor0J7QodCi0J7QiNCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ce0KHQotCe0IjQmNCLINCc0JjQm9CQ0J0KK9Ce0KHQotCe0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQntCh0KLQntCI0JjQiyDQnNCY0JvQldCd0JrQngor0J7QodCi0J7QiNCY0Isg0JzQmNCb0JXQktCQCivQntCh0KLQntCI0JjQiyDQnNCY0JvQmNCm0JAKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9Ca0JAKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9Ce0KgKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCh0KLQntCI0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QodCi0J7QiNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ce0KHQotCe0IjQmNCLINCd0JDQlNCQCivQntCh0KLQntCI0JjQiyDQndCQ0KLQkNCo0JAKK9Ce0KHQotCe0IjQmNCLINCd0JXQndCQ0JQKK9Ce0KHQotCe0IjQmNCLINCe0JHQoNCQ0JQKK9Ce0KHQotCe0IjQmNCLINCe0JHQoNCQ0JQKK9Ce0KHQotCe0IjQmNCLINCe0JvQk9CQCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J7QodCi0J7QiNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J7QodCi0J7QiNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J7QodCi0J7QiNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ce0KHQotCe0IjQmNCLINCg0JDQotCa0J4KK9Ce0KHQotCe0IjQmNCLINCg0JjQodCi0J4KK9Ce0KHQotCe0IjQmNCLINCh0JvQkNCS0JjQptCQCivQntCh0KLQntCI0JjQiyDQodCb0JDQktCa0J4KK9Ce0KHQotCe0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCh0JzQmNCJ0JrQkAor0J7QodCi0J7QiNCY0Isg0KHQotCQ0J3QkAor0J7QodCi0J7QiNCY0Isg0KHQotCQ0J3QmtCQCivQntCh0KLQntCI0JjQiyDQodCS0JXQotCe0JfQkNCgCivQntCh0KLQntCI0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQntCh0KLQntCI0JjQiyDQktCQ0KHQkAor0J7QodCi0J7QiNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J7QodCi0J7QiNCY0Isg0JLQldCh0JXQm9CY0J0KK9Ce0KHQotCe0IjQmNCLINCS0JXQodCV0JvQmNCdCivQntCh0KLQntCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQntCh0KLQntCI0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQntCh0KLQntCI0JjQiyDQl9CQ0JPQntCg0JrQkAor0J7QodCi0J7QiNCY0Isg0JfQntCg0JDQnQor0J7QodCi0J7QiNCY0Isg0JfQntCg0JAKK9Ce0KHQotCe0IjQmNCdINCW0JDQoNCa0J4KK9Ce0KHQotCe0IjQmNCdINCI0KPQm9Ca0JAKK9Ce0KHQotCe0IjQmNCdINCb0JDQl9CQ0KAKK9Ce0KHQotCe0IjQmNCdINCc0JDQoNCY0IjQkAor0J7QodCi0J7QiNCY0J0g0JzQmNCb0J7QqAor0J7QodCi0J7QiNCY0J0g0J/QldCg0JAKK9Ce0KHQotCe0IjQmNCdINCf0JXQoNCeCivQntCh0KLQntCI0JjQnSDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQnSDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQnSDQoNCQ0JTQntCS0JDQnQor0J7QodCi0J7QiNCY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQntCh0KLQntCI0JjQnSDQotCe0KjQkAor0J7QodCi0KDQntCT0J7QndCQ0KYg0JjQktCQ0J0g0J3QntCS0JjQndCQ0KAKK9Ce0KHQotCg0J7Qk9Ce0J3QkNCmINCY0JLQkNCdCivQntCh0KLQoNCe0JPQntCd0JDQpiDQotCY0JHQntCgCivQntCh0JLQkNCb0JQg0JHQkNCg0JHQkNCg0JAKK9Ce0KHQktCQ0JvQlCDQmNCS0JDQnQor0J7QodCS0JDQm9CUINCS0JXQoNCQCivQntCi0JDQqNCV0JLQmNCLINCW0JjQktCa0J4KK9Ce0KLQkNCo0JXQktCY0Isg0IjQntCS0JDQnQor0J7QotCQ0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J7QotCQ0KjQldCS0JjQiyDQktCb0JDQodCi0JAKK9Ce0KLQmNCLINCW0JjQktCa0J4KK9Ce0KLQmNCLINCR0J7QoNCY0JLQntCICivQntCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0J7QotCY0Isg0JTQkNCg0JjQndCa0JAKK9Ce0KLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Ce0KLQmNCLINCI0J7QktCQ0J3QmtCQCivQntCi0JjQiyDQmtCQ0KLQmNCm0JAKK9Ce0KLQmNCLINCc0JjQm9CQ0J0KK9Ce0KLQmNCLINCc0JjQm9CY0JLQntCICivQntCi0JjQiyDQndCY0JrQntCb0JAKK9Ce0KLQmNCLINCd0J7QktCQ0JoKK9Ce0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0J7QotCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQntCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQntCi0JjQiyDQodCQ0JLQkAor0J7QotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J7QotCY0Isg0JLQldCb0JjQl9CQ0KAKK9Ce0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0J7QotCY0Isg0JLQo9Ca0JjQptCQCivQntCi0JvQntCa0JDQnSDQiNCe0JLQkNCdCivQntCi0JzQkNCn0JjQiyDQlNCg0JDQk9CeCivQntCi0J7QqCDQkNCd0JTQoNCQ0KgKK9Ce0KLQntCg0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQntCi0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J7QotCg0KPQn9Cn0JDQmiDQiNCe0KHQmNCfCivQntCi0KDQo9Cf0KfQkNCaINCc0JjQm9Ce0KgKK9Ce0KLQoNCj0J/Qp9CQ0Jog0KHQkNCc0KPQmNCb0J4KK9Ce0JLQptCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ce0JLQo9Ca0JAg0ILQo9Cg0J4KK9Ce0JLQo9Ca0JAg0ILQo9Cg0J4KK9Ce0JLQo9Ca0JAg0JzQmNCb0JDQnQor0J7QktCj0JrQkCDQndCY0JrQntCb0JAKK9Ce0JfQldCgINCC0KPQoNCQCivQntCX0JXQoCDQgtCj0KDQkAor0J7Ql9CV0KAg0ILQo9Cg0JAKK9Ce0JfQnNCV0KYg0JLQldCg0JAKK9Cf0KjQldCd0JjQp9Cd0JjQmiDQl9CS0J7QndCY0JzQmNCgCivQn9CQ0KfQkNCg0JjQiyDQltCY0JLQkNCdCivQn9CQ0KfQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JDQp9CQ0KDQmNCLINCc0JjQoNCa0J4KK9Cf0JDQp9CQ0KDQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCn0JDQoNCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0JDQp9CQ0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CQ0KfQkNCg0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0KjQi9CQ0J0g0KjQotCV0KTQkNCd0JjQiNCQCivQn9CQ0KjQi9CQ0J0g0ILQntCg0ILQlQor0J/QkNCo0IvQkNCdINCC0J7QoNCC0JUKK9Cf0JDQqNCL0JDQnSDQkNCd0JrQkAor0J/QkNCo0IvQkNCdINCU0JDQndCY0KbQkAor0J/QkNCo0IvQkNCdINCU0KDQkNCT0JDQnQor0J/QkNCo0IvQkNCdINCU0KPQqNCQ0J3QmtCQCivQn9CQ0KjQi9CQ0J0g0JTQo9Co0JDQnQor0J/QkNCo0IvQkNCdINCT0JDQktCg0JAKK9Cf0JDQqNCL0JDQnSDQiNCe0JLQkNCdCivQn9CQ0KjQi9CQ0J0g0IjQntCS0JDQnQor0J/QkNCo0IvQkNCdINCc0JjQm9Ce0KDQkNCUCivQn9CQ0KjQi9CQ0J0g0J3QkNCU0JXQltCU0JAKK9Cf0JDQqNCL0JDQnSDQndCV0JTQldCJ0JrQngor0J/QkNCo0IvQkNCdINCd0JjQmtCe0JvQkAor0J/QkNCo0IvQkNCdINCe0JvQk9CQCivQn9CQ0KjQi9CQ0J0g0J/QldCg0JAKK9Cf0JDQqNCL0JDQnSDQn9CV0KLQkNCgCivQn9CQ0KjQi9CQ0J0g0KDQkNCU0JjQktCe0IgKK9Cf0JDQqNCL0JDQnSDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JDQqNCL0JDQnSDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0KjQi9CQ0J0g0KHQkNCS0JAKK9Cf0JDQqNCL0JDQnSDQodCY0J3QmNCo0JAKK9Cf0JDQqNCL0JDQnSDQodCc0JjQidCQCivQn9CQ0KjQi9CQ0J0g0KHQotCV0JLQkNCdCivQn9CQ0KjQi9CQ0J0g0KLQntCU0J7QoAor0J/QkNCo0IvQkNCdINCS0JDQodCQCivQn9CQ0KjQi9CQ0J0g0JfQkNCT0J7QoNCa0JAKK9Cf0JDQqNCL0JDQndCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JDQqNCL0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQqNCL0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCo0IvQmNCaINCa0JvQkNCg0JAKK9Cf0JDQqNCL0JjQmiDQm9CQ0KHQm9CeCivQn9CQ0KjQkNCT0JjQiyDQoNCQ0IjQmtCeCivQn9CQ0KjQkNCI0JvQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9CQ0KjQkNCI0JvQmNCLINCR0JjQidCQ0J3QkAor0J/QkNCo0JDQiNCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCo0JDQiNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0KjQkNCI0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQqNCQ0IjQm9CY0Isg0JLQm9CQ0JTQngor0J/QkNCo0JDQm9CY0Isg0J/QkNCS0JvQlQor0J/QkNCo0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KjQkNCd0KHQmtCYINCS0KPQmtCY0KbQkAor0J/QkNCo0JjQiyDQkdCe0JbQkNCd0JAKK9Cf0JDQqNCY0Isg0JHQntCW0J4KK9Cf0JDQqNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0JDQqNCY0Isg0JTQo9Co0JrQngor0J/QkNCo0JjQiyDQiNCe0JLQkNCdCivQn9CQ0KjQmNCLINCa0JDQotCY0KbQkAor0J/QkNCo0JjQiyDQnNCY0JvQkNCdCivQn9CQ0KjQmNCLINCc0JjQm9CV0J3QkAor0J/QkNCo0JjQiyDQn9CV0KLQkNCgCivQn9CQ0KjQmNCLINCg0J7QodCQCivQn9CQ0KjQmNCLINCh0JDQqNCQCivQn9CQ0KjQmNCLINCh0JjQndCY0KjQkAor0J/QkNCo0JjQiyDQodCi0J7QiNCQCivQn9CQ0KjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JDQqNCY0Isg0JfQntCg0JAKK9Cf0JDQqNCY0J0g0JPQoNCe0JfQlNCQ0J3QkAor0J/QkNCo0JrQkCDQqNCQ0J3QlNCe0KAKK9Cf0JDQqNCa0JjQndCe0JIg0JLQkNCh0JrQngor0J/QkNCo0KLQldCg0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCo0KLQmCDQqNCQ0J3QlNCe0KAKK9Cf0JDQqNCi0Jgg0JzQkNCi0JjQiNCQCivQn9CQ0KjQo9CI0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CQ0IvQmCDQkdCe0KDQmNChCivQn9CQ0IvQmCDQmNCo0KLQktCQ0J0KK9Cf0JDQi9CYINCc0JDQoNCY0J4KK9Cf0JDQi9Cj0Jog0J3QmNCa0J7Qm9CQCivQn9CQ0IvQo9CaINCh0JvQkNCS0JrQngor0J/QkNCW0ILQldCg0KHQmtCYLdCc0JDQndCe0IjQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCW0JjQnSDQltCV0InQmtCeCivQn9CQ0JbQmNCdINCQ0J3QgtCV0JvQmtCeCivQn9CQ0JbQmNCdINCU0JDQndCY0KbQkAor0J/QkNCW0JjQnSDQidCj0JHQntCc0JjQoAor0J/QkNCC0JDQnSDQidCj0JHQntCc0JjQoAor0J/QkNCC0JDQnSDQnNCY0JvQmNCm0JAKK9Cf0JDQgtCV0J0g0JTQo9Co0JDQnQor0J/QkNCC0JXQnSDQm9CV0J/QkAor0J/QkNCC0JXQnSDQnNCQ0KDQmNCI0JAKK9Cf0JDQgtCV0J0g0KHQotCV0JLQkAor0J/QkNCC0JXQnSDQl9CU0KDQkNCS0JrQngor0J/QkNCmINCY0JLQkNCd0JrQkAor0J/QkNCm0JXQmiDQm9CQ0KHQm9CeCivQn9CQ0KbQmNCaINCY0KjQotCS0JDQnQor0J/QkNCU0JXQltCQ0J3QmNCdINCJ0KPQkdCeCivQn9CQ0JTQldCW0JDQndCY0J0g0JLQm9CQ0JTQldCi0JAKK9Cf0JDQlNCV0IjQodCa0Jgg0JzQmNCb0JXQndCQCivQn9CQ0JTQldCI0KHQmtCYINCc0JjQm9Ce0JLQkNCdCivQn9CQ0JTQldCI0KHQmtCYINCh0JDQktCQCivQn9CQ0JTQldCI0KHQmtCYINCS0JXQm9CY0JzQmNCgCivQn9CQ0JTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCU0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQlNCYINCb0JDQiNCe0KgKK9Cf0JDQlNCg0J7QkiDQk9Ce0KDQkNCdCivQn9CQ0JTQoNCe0JIg0J3QmNCa0J7Qm9CQCivQn9CQ0JTQoNCe0JIg0KDQkNCU0JjQktCe0IgKK9Cf0JDQlNCg0J7QkiDQktCV0KHQndCQCivQn9CQ0JPQkNCnINCR0JjQidCQ0J3QkAor0J/QkNCT0JDQpyDQndCY0JrQntCb0JAKK9Cf0JDQk9CQ0KfQldCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/QkNCT0JDQp9CV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQk9CQ0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQk9CQ0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQk9CQ0KfQldCS0JjQiyDQktCQ0KHQkAor0J/QkNCT0JDQndCV0KLQniDQotCY0J3QkAor0J/QkNCT0J7QndCY0KEg0IjQo9Cb0JrQkAor0J/QkNCT0J7QndCY0KEg0JLQm9CQ0JTQmNCc0JjQoNCe0KEKK9Cf0JDQmNCLINCC0KPQoNCQ0IIKK9Cf0JDQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCY0Isg0KTQoNCQ0J3QlQor0J/QkNCY0Isg0JjQktCQ0J0KK9Cf0JDQmNCLINCc0JDQoNCY0IjQkAor0J/QkNCI0KfQmNCLINCQ0JvQldCa0KHQkAor0J/QkNCI0KfQmNCLINCQ0J3QkAor0J/QkNCI0KfQmNCdINCY0JvQmNCI0JAKK9Cf0JDQiNCn0JjQnSDQnNCY0JvQntCI0JrQngor0J/QkNCI0KfQmNCdINCd0JXQlNCV0InQmtCQCivQn9CQ0IjQp9CY0J0g0JLQntCI0JjQodCb0JDQkgor0J/QkNCI0JDQndCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQiNCQ0JfQmNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQiNCU0JDQmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cf0JDQiNCU0JjQiyDQiNCj0JvQmNCI0JAKK9Cf0JDQiNCU0JjQiyDQnNCQ0KDQmNCI0JDQnQor0J/QkNCI0JXQktCY0Isg0ILQntCg0ILQlQor0J/QkNCI0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QkNCI0JXQktCY0Isg0JPQntCg0JDQnQor0J/QkNCI0JXQktCY0Isg0JrQntCh0KLQkAor0J/QkNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0J/QkNCI0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QkNCI0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QkNCI0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QkNCI0JjQiyDQkdCe0JbQngor0J/QkNCI0JjQiyDQkdCe0JPQmNCLCivQn9CQ0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0IjQmNCLINCR0KDQkNCd0JrQngor0J/QkNCI0JjQiyDQkdCj0JTQmNCh0JvQkNCSCivQn9CQ0IjQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cf0JDQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CQ0IjQmNCLINCU0KPQqNCQ0J0g0JTQoAor0J/QkNCI0JjQiyDQlNCj0KjQkNCdCivQn9CQ0IjQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQiNCY0Isg0JXQnNCY0J3QkAor0J/QkNCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QkNCI0JjQiyDQk9Ce0KDQmNCm0JAKK9Cf0JDQiNCY0Isg0JPQoNCj0IjQkAor0J/QkNCI0JjQiyDQmtCe0JLQmNCJ0JrQkAor0J/QkNCI0JjQiyDQidCj0JHQmNCd0JrQkAor0J/QkNCI0JjQiyDQidCj0JHQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0IjQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCI0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQn9CQ0IjQmNCLINCc0JjQm9Ce0KgKK9Cf0JDQiNCY0Isg0JzQmNCb0J7QqAor0J/QkNCI0JjQiyDQnNCY0JvQntCI0JUKK9Cf0JDQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQiNCY0Isg0JzQmNCb0J7QodCQ0JIKK9Cf0JDQiNCY0Isg0JzQmNCb0KPQnQor0J/QkNCI0JjQiyDQnNCY0KDQmtCeCivQn9CQ0IjQmNCLINCc0JjQoNCa0J4KK9Cf0JDQiNCY0Isg0JzQm9CQ0JTQldCdCivQn9CQ0IjQmNCLINCd0JDQlNCQCivQn9CQ0IjQmNCLINCd0JDQlNCQCivQn9CQ0IjQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCI0JjQiyDQndCe0JLQkNCaCivQn9CQ0IjQmNCLINCf0JXQoNCeCivQn9CQ0IjQmNCLINCf0JXQotCQ0KAKK9Cf0JDQiNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J/QkNCI0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QkNCI0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JDQiNCY0Isg0KDQkNCI0JrQngor0J/QkNCI0JjQiyDQodCY0J3QmNCo0JAKK9Cf0JDQiNCY0Isg0KHQnNCY0InQkAor0J/QkNCI0JjQiyDQodCg0JXQlNCe0IjQlQor0J/QkNCI0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QkNCI0JjQiyDQotCY0KXQntCc0JjQoAor0J/QkNCI0JjQiyDQktCQ0KHQkAor0J/QkNCI0JjQiyDQktCV0JvQmNCc0JjQoAor0J/QkNCI0JjQiyDQktCV0KHQldCb0JjQnQor0J/QkNCI0JjQiyDQktCY0JTQntCh0JDQktCQCivQn9CQ0IjQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0J/QkNCI0JjQiyDQktCj0JrQmNCm0JAKK9Cf0JDQiNCY0Jog0JTQkNCd0JjQptCQCivQn9CQ0IjQmNCdINCI0J7QktCQ0J0KK9Cf0JDQiNCY0J0g0JzQmNCb0JjQktCe0IgKK9Cf0JDQiNCa0JXQoNCiINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0IjQmtCV0KDQoiDQpNCg0JDQitCQCivQn9CQ0IjQmtCV0KDQoiDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JDQiNCa0JXQoNCiINCg0JDQndCa0JAKK9Cf0JDQiNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQiNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0IjQmtCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQn9CQ0IjQmtCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0J/QkNCI0J7QoCDQnNCQ0KLQmNCI0JAKK9Cf0JDQiNCe0JLQmNCLINCo0J/QmNCg0J4KK9Cf0JDQiNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JDQiNCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQiNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQiNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCI0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JDQiNCe0JLQmNCLINCg0JDQiNCa0J4KK9Cf0JDQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQiNCe0JLQmNCLINCX0J7QoNCa0JAKK9Cf0JDQiNCi0JDQqNCV0JIg0JTQntCR0KDQmNCS0J7QiAor0J/QkNCI0KLQkNCaINCg0JDQlNCc0JjQm9CQCivQn9CQ0IjQotCY0Isg0J/QkNCS0JvQlQor0J/QkNCI0JLQkNCd0KfQmNCLINCk0KDQkNCK0JAKK9Cf0JDQiNCS0JDQndCn0JjQiyDQmtCQ0KLQkAor0J/QkNCI0JLQkNCd0KfQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cf0JDQiNCS0J7QlCDQkdCe0KHQmNCJ0JrQkAor0J/QkNCa0JDQqNCa0Jgg0ILQo9Cg0JAKK9Cf0JDQmtCQ0KjQmtCYINCc0JjQmtCQCivQn9CQ0JrQkNCo0JrQmCDQnNCY0JvQntCS0JDQnQor0J/QkNCa0JDQqNCa0Jgg0KDQkNCU0J7QodCb0JDQkgor0J/QkNCa0JDQqNCa0Jgg0KHQmNCc0JAKK9Cf0JDQmtCQ0KjQmtCYINCS0JDQodCQCivQn9CQ0JrQkNCo0JrQmCDQktCY0KLQkNCb0JjQiCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQmtCQ0Jgg0IjQntCW0JXQpAor0J/QkNCa0JDQmCDQm9CQ0KHQm9CeCivQn9CQ0JrQm9CQ0KAg0JLQmNCU0JAKK9Cf0JDQmtCb0JXQlNCY0J3QkNCmINCS0JjQndCa0J4KK9Cf0JDQmtCj0KjQldCS0KHQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JDQmtCj0KjQldCS0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQn9CQ0JrQo9Co0JXQktCh0JrQmCDQnNCY0KLQkNCgCivQn9CQ0JrQo9Co0JXQktCh0JrQmCDQoNCj0JbQmNCm0JAKK9Cf0JDQmtCj0KjQldCS0KHQmtCY0Igg0KHQotCV0KTQkNCdCivQn9CQ0Jsg0JjQm9Ce0J3QkAor0J/QkNCbINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0JDQm9Cn0JXQmiDQiNCe0KHQmNCfCivQn9CQ0JvQkNCn0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0JvQkNCn0JrQntCS0JjQiyDQo9Cg0J7QqAor0J/QkNCb0JDQqNCi0Jgg0ILQntCg0ILQlQor0J/QkNCb0JDQqNCi0Jgg0JTQldCh0JDQndCa0JAKK9Cf0JDQm9CQ0KjQotCYINCY0KjQotCS0JDQnQor0J/QkNCb0JDQqNCi0Jgg0JjQqNCi0JLQkNCdCivQn9CQ0JvQkNCo0KLQmCDQiNCe0KHQmNCfCivQn9CQ0JvQkNCo0KLQmCDQoNCe0JfQkNCb0JjQiNCQCivQn9CQ0JvQkNCU0JAg0IjQntCX0J4KK9Cf0JDQm9CQ0JvQmNCLINCC0KPQoNCQCivQn9CQ0JvQkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQm9CQ0JvQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQm9CQ0JvQmNCLINCT0J7QiNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCT0J7QiNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCY0JvQmNCI0JAKK9Cf0JDQm9CQ0JvQmNCLINCI0J7QktCQ0J0KK9Cf0JDQm9CQ0JvQmNCLINCc0JjQoNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCd0JXQktCV0J3QkAor0J/QkNCb0JDQm9CY0Isg0J3QmNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCf0JDQktCb0JUKK9Cf0JDQm9CQ0JvQmNCLINCg0JDQlNCVCivQn9CQ0JvQkNCb0JjQiyDQodCd0JXQltCQ0J3QkAor0J/QkNCb0JDQm9CY0Isg0KHQoNCV0KLQngor0J/QkNCb0JDQm9CY0Isg0KHQotCe0IjQkNCdCivQn9CQ0JvQkNCb0JjQiyDQotCe0JTQlQor0J/QkNCb0JDQm9CY0Isg0JLQmNCUCivQn9CQ0JvQkNCb0JjQiyDQktCe0IjQmNCdCivQn9CQ0JvQkNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0J/QkNCb0JDQnNCQ0KDQp9Cj0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQm9CQ0J0g0IjQntCh0JjQnwor0J/QkNCb0JDQndCn0JDQndCY0J0g0JXQm9CV0J3QkAor0J/QkNCb0JDQndCn0JDQndCY0J0g0IjQntCS0JDQnQor0J/QkNCb0JDQndCn0JDQndCY0J0g0KDQo9CW0JAKK9Cf0JDQm9CQ0J3Qp9CQ0J3QmNCdINCS0JDQodCQCivQn9CQ0JvQkNCd0KfQkNCd0JjQnSDQktCQ0KHQkAor0J/QkNCb0JDQndCQ0KfQmtCYINCC0J7QoNCC0JUKK9Cf0JDQm9CQ0J3QkNCn0JrQmCDQoNCj0JbQmNCm0JAKK9Cf0JDQm9CQ0J3QkNCn0JrQmCDQodCQ0JLQkAor0J/QkNCb0JDQotCY0J3Qo9CoINCQ0J3QlNCg0JDQqAor0J/QkNCb0JDQotCY0J3Qo9CoINCY0KjQotCS0JDQnQor0J/QkNCb0JDQotCY0J3Qo9CoINCI0J7QltCV0KQKK9Cf0JDQm9CV0JbQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JvQldCS0JjQiyDQodCb0JDQktCY0KbQkAor0J/QkNCb0KTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCb0KTQmCDQkdCe0KDQmtCQCivQn9CQ0JvQpNCYINCY0KjQotCS0JDQnQor0J/QkNCb0KTQmCDQmNCo0KLQktCQ0J0KK9Cf0JDQm9Ck0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QkNCb0KTQmCDQmtCQ0KLQmNCm0JAKK9Cf0JDQm9CY0KfQmtCeINCC0KPQoNCC0JjQndCa0JAKK9Cf0JDQm9CY0KfQmtCeINCQ0J3QlNCg0JDQqAor0J/QkNCb0JjQp9Ca0J4g0JjQm9CV0KgKK9Cf0JDQm9CY0KfQmtCeINCY0KDQldCd0JAKK9Cf0JDQm9CY0KfQmtCeINCI0JXQm9CV0J3QkAor0J/QkNCb0JjQqNCQ0KjQmtCYINCe0JvQk9CQCivQn9CQ0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JvQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCb0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JvQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCb0JjQiyDQnNCQ0KDQotCQCivQn9CQ0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CQ0JvQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCb0JjQiyDQntCb0JPQkAor0J/QkNCb0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQm9CY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JvQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0J/QkNCb0JjQndCa0JDQqCDQgtCe0KDQgtCVCivQn9CQ0JvQmNCd0JrQkNCoINCC0KPQoNCQCivQn9CQ0JvQmNCd0JrQkNCoINCR0JvQkNCd0JrQkAor0J/QkNCb0JjQndCa0JDQqCDQkdCe0KDQmNCS0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0J/QkNCb0JjQndCa0JDQqCDQpNCg0JDQitCQCivQn9CQ0JvQmNCd0JrQkNCoINCT0JXQl9CQCivQn9CQ0JvQmNCd0JrQkNCoINCI0J7QltCV0KQKK9Cf0JDQm9CY0J3QmtCQ0Kgg0JzQkNCg0JjQiNCQCivQn9CQ0JvQmNCd0JrQkNCoINCc0JjQpdCQ0IkKK9Cf0JDQm9CY0J3QmtCQ0Kgg0JzQmNCg0JrQngor0J/QkNCb0JjQndCa0JDQqCDQodCi0JXQktCQ0J0KK9Cf0JDQm9CY0J3QmtCQ0Kgg0JLQldCg0JAg0JTQoAor0J/QkNCJ0JjQiyDQidCj0JHQntCc0JjQoAor0J/QkNCJ0KPQoNCQ0KEg0JDQn9Ce0KHQotCe0JvQntChCivQn9CQ0JvQntCoINCY0JLQkNCdCivQn9CQ0JvQntCo0Jgg0J7Qm9CT0JAKK9Cf0JDQm9Ce0KYg0KjQkNCd0JTQntCgCivQn9CQ0JvQntCmINCb0JDQodCb0J4KK9Cf0JDQm9Ce0KYg0KLQmNCR0J7QoAor0J/QkNCb0J7QotCQ0Kgg0JDQndCU0KDQmNCI0JAKK9Cf0JDQm9Ce0JIg0JzQmNCl0JDQmNCb0J4g0JTQoAor0J/QkNCb0KPQoNCe0JLQmNCLINCh0KLQldCf0JDQnQor0J/QkNCc0KPQp9CY0J3QkCDQiNCe0JLQkNCdCivQn9CQ0J3Qp9CY0Isg0JPQkNCS0KDQmNCb0J4KK9Cf0JDQndCn0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQn9CQ0J3Qp9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QkNCd0KfQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JDQndCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0J3Qp9CY0Isg0JfQntCg0JDQnQor0J/QkNCd0KfQntCS0JDQnSDQkNCS0KDQkNCcCivQn9CQ0J3Qp9Cj0JvQmNCU0JfQldCSINCQ0JvQldCa0KHQmNCI0JUKK9Cf0JDQndCQ0IjQntCi0JjQlNCY0KEg0JvQldCe0J3QmNCU0JDQoQor0J/QkNCd0JDQntCi0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9CQ0J3QkNCe0KLQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QkNCd0JDQntCi0J7QktCY0Isg0IjQntCS0JjQptCQCivQn9CQ0J3QkNCe0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QkNCd0KbQldCgINCR0KDQkNCd0JrQngor0J/QkNCd0KbQldCgINCR0KDQkNCd0JrQngor0J/QkNCd0I/QkCDQkdCe0JbQmNCm0JAKK9Cf0JDQndCP0JAg0JfQktCV0JfQlNCQ0J3QkAor0J/QkNCd0I/QmNCLINCd0JDQlNCQCivQn9CQ0J3Qj9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JDQndCP0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0J3Qj9CY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QkNCd0I/QmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0J3QlNCYINCe0KHQmtCQ0KAKK9Cf0JDQndCU0KPQoNCV0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQn9CQ0J3QlNCj0KDQntCSINCW0JjQktCa0JAKK9Cf0JDQndCU0KPQoNCe0JIg0JDQptCQCivQn9CQ0J3QlNCj0KDQntCSINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQndCU0KPQoNCe0JIg0JTQo9Co0JDQndCa0JAKK9Cf0JDQndCU0KPQoNCe0JIg0JzQmNCb0JjQptCQCivQn9CQ0J3QlNCj0KDQntCSINCc0JjQm9CY0JLQntCICivQn9CQ0J3QlNCj0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQndCU0KPQoNCe0JIg0J/QldCi0JDQoAor0J/QkNCd0JTQo9Cg0J7QkiDQodCQ0JLQkAor0J/QkNCd0JTQo9Cg0J7QkiDQl9Ce0KDQkNCdCivQn9CQ0J3QlNCj0KDQntCSINCX0J7QoNCQ0J0KK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCW0JjQktCa0JAKK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQiNCj0JvQmtCQCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QkNCd0JTQo9Cg0J7QktCY0Isg0KHQoNCV0KLQldCdCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0J/QkNCd0JTQo9Cg0J7QktCY0Isg0JLQntCI0JjQnQor0J/QkNCd0JTQo9Cg0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQndCT0JXQoNCmINCc0JDQoNCQCivQn9CQ0J3Qk9CV0KDQpiDQktCV0JvQmNCR0J7QoAor0J/QkNCd0JjQiyDQltCQ0KDQmtCeCivQn9CQ0J3QmNCLINCW0JjQktCQ0J0KK9Cf0JDQndCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cf0JDQndCY0Isg0ILQntCg0ILQlQor0J/QkNCd0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QmNCLINCC0J7QoNCC0JUKK9Cf0JDQndCY0Isg0ILQntCg0ILQlQor0J/QkNCd0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QmNCLINCC0KPQoNCQCivQn9CQ0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0J3QmNCLINCQ0J3QkAor0J/QkNCd0JjQiyDQkNCd0JAKK9Cf0JDQndCY0Isg0JDQndCi0KPQnQor0J/QkNCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QkNCd0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQndCY0Isg0JTQkNCc0IjQkNCdCivQn9CQ0J3QmNCLINCU0JDQndCY0JvQmtCQCivQn9CQ0J3QmNCLINCU0KDQkNCT0JDQnQor0J/QkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQndCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0J3QmNCLINCU0KDQkNCT0JDQnQor0J/QkNCd0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CQ0J3QmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0J/QkNCd0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0JTQoNCV0J3QkAor0J/QkNCd0JjQiyDQlNCj0KjQkNCdCivQn9CQ0J3QmNCLINCU0KPQqNCQ0J0KK9Cf0JDQndCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0JDQndCY0Isg0JjQm9CY0IjQkAor0J/QkNCd0JjQiyDQmNCb0J7QndCQCivQn9CQ0J3QmNCLINCI0JDQqNCQCivQn9CQ0J3QmNCLINCI0JXQm9CV0J3QkAor0J/QkNCd0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JDQndCY0Isg0IjQntCS0JDQndCa0JAg0JTQoAor0J/QkNCd0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QkNCd0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QkNCd0JjQiyDQiNCj0JvQmtCQCivQn9CQ0J3QmNCLINCa0JDQmNCm0JAKK9Cf0JDQndCY0Isg0JrQkNCi0JAKK9Cf0JDQndCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cf0JDQndCY0Isg0InQo9CR0JjQptCQCivQn9CQ0J3QmNCLINCc0JDQoNCa0J4KK9Cf0JDQndCY0Isg0JzQmNCL0J4KK9Cf0JDQndCY0Isg0JzQmNCm0JAKK9Cf0JDQndCY0Isg0JzQmNCa0JAKK9Cf0JDQndCY0Isg0JzQmNCb0JDQndCQCivQn9CQ0J3QmNCLINCc0JjQm9CQ0J0KK9Cf0JDQndCY0Isg0JzQmNCb0JXQndCQCivQn9CQ0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQn9CQ0J3QmNCLINCc0JjQm9CVCivQn9CQ0J3QmNCLINCc0JjQm9CY0KbQkAor0J/QkNCd0JjQiyDQnNCY0JvQmNCI0JAKK9Cf0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JDQndCY0Isg0JzQmNCb0J7QqAor0J/QkNCd0JjQiyDQnNCY0JvQntCoCivQn9CQ0J3QmNCLINCc0JjQm9Ce0KgKK9Cf0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQndCY0Isg0JzQmNCg0JrQngor0J/QkNCd0JjQiyDQnNCY0KDQmtCeCivQn9CQ0J3QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0J3QkNCU0JAKK9Cf0JDQndCY0Isg0J3QkNCU0JAKK9Cf0JDQndCY0Isg0J3QkNCU0JAKK9Cf0JDQndCY0Isg0J3QldCc0JDQitCQCivQn9CQ0J3QmNCLINCd0JXQndCQ0JQKK9Cf0JDQndCY0Isg0J7QkdCg0JDQlNCY0J0KK9Cf0JDQndCY0Isg0J7Qk9CK0JXQnQor0J/QkNCd0JjQiyDQntCb0JPQkAor0J/QkNCd0JjQiyDQn9CV0KLQkNCgCivQn9CQ0J3QmNCLINCf0JXQotCQ0KAKK9Cf0JDQndCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JDQndCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J/QkNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QkNCd0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0J3QmNCLINCg0JDQndCa0J4KK9Cf0JDQndCY0Isg0KDQmNCh0KLQngor0J/QkNCd0JjQiyDQodCQ0KjQkAor0J/QkNCd0JjQiyDQodCQ0IrQkAor0J/QkNCd0JjQiyDQodCb0JDQgtCQ0J3QkAor0J/QkNCd0JjQiyDQodCc0JjQidCQ0J3QmtCQCivQn9CQ0J3QmNCLINCh0J3QldCW0JDQndCQCivQn9CQ0J3QmNCLINCh0KDQgtCQ0J0KK9Cf0JDQndCY0Isg0KHQoNCR0J7QidCj0JEKK9Cf0JDQndCY0Isg0KHQotCQ0J3QkAor0J/QkNCd0JjQiyDQodCi0JDQndCa0JAKK9Cf0JDQndCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0J3QmNCLINCh0KLQldCS0JDQnQor0J/QkNCd0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQndCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QkNCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CQ0J3QmNCLINCj0JPQidCV0KjQkAor0J/QkNCd0JjQiyDQktCQ0KHQmNCJ0JrQkAor0J/QkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0J3QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0JfQlNCg0JDQktCa0J4KK9Cf0JDQndCY0Isg0JfQm9CQ0KLQmtCeCivQn9CQ0J3QmNCLINCX0J7QoNCQ0J0KK9Cf0JDQndCY0Isg0JfQntCg0JAKK9Cf0JDQndCY0JDQnSDQkNCd0JjQptCQCivQn9CQ0J3QmNCdINCR0J7QoNCY0JLQntCI0JUKK9Cf0JDQndCY0J0g0JHQoNCQ0J3QkAor0J/QkNCd0JjQnSDQnNCY0JvQmNCm0JAKK9Cf0JDQndCY0J0g0JzQmNCb0J7QqAor0J/QkNCd0JjQnSDQnNCY0KLQkAor0J/QkNCd0JjQnSDQnNCb0JDQlNCV0J0KK9Cf0JDQndCY0J0g0JfQntCg0JDQnQor0J/QkNCd0JjQndCn0JjQiyDQodCe0KTQmNCI0JAKK9Cf0JDQitCa0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQn9CQ0IrQmtCe0JLQmNCLINCR0KDQkNCd0JrQkAor0J/QkNCK0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQitCa0J7QktCY0Isg0JjQm9CY0IjQkCDQnNCgCivQn9CQ0IrQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCK0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQn9CQ0IrQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQitCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QkNCK0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0IrQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCK0JrQntCS0JjQiyDQndCQ0JTQkAor0J/QkNCK0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQitCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCK0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J3QmtCe0JIg0JHQoNCQ0J3QmtCeCivQn9CQ0J3QmtCe0JIg0IjQldCb0JXQndCQCivQn9CQ0J3QmtCe0JIg0IjQldCb0JjQptCQCivQn9CQ0J3QmtCe0JIg0JrQkNCi0JjQptCQCivQn9CQ0J3QmtCe0JIg0JzQkNCg0JrQngor0J/QkNCd0JrQntCSINCc0JjQm9CV0J3QmtCeCivQn9CQ0J3QmtCe0JIg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQndCa0J7QkiDQn9Cg0JXQlNCg0JDQkwor0J/QkNCd0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQndCa0J7QkiDQodCQ0JLQkAor0J/QkNCd0JrQntCSINCh0JvQkNCS0JrQngor0J/QkNCd0JrQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQndCa0J7QkiDQktCV0KHQndCQCivQn9CQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQndCe0JIg0JTQldCh0JDQndCa0JAKK9Cf0JDQndCe0JIg0J3QldCd0JDQlAor0J/QkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cf0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0J3QotCV0JvQldCc0J7QndCe0JIg0J3QldCU0JXQidCa0J4KK9Cf0JDQndCi0JXQm9CV0JzQntCd0J7QkiDQndCe0JLQmtCQCivQn9CQ0J3QotCV0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0J3QotCV0JvQmNCLINCW0JDQoNCa0J4KK9Cf0JDQndCi0JXQm9CY0Isg0ILQntCg0ILQlQor0J/QkNCd0KLQldCb0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QotCV0JvQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9CQ0J3QotCV0JvQmNCLINCQ0J3QkAor0J/QkNCd0KLQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQn9CQ0J3QotCV0JvQmNCLINCR0J7QoNCY0JLQntCICivQn9CQ0J3QotCV0JvQmNCLINCm0JLQldCi0JjQnQor0J/QkNCd0KLQldCb0JjQiyDQlNCQ0KTQmNCd0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JTQkNCd0JjQptCQCivQn9CQ0J3QotCV0JvQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCd0KLQldCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CQ0J3QotCV0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQndCi0JXQm9CY0Isg0JjQm9CY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQndCi0JXQm9CY0Isg0JjQm9CY0IjQkAor0J/QkNCd0KLQldCb0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQn9CQ0J3QotCV0JvQmNCLINCa0JDQnNCV0J3QmtCeCivQn9CQ0J3QotCV0JvQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQndCi0JXQm9CY0Isg0InQo9CR0JjQqNCQCivQn9CQ0J3QotCV0JvQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCd0KLQldCb0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QkNCd0KLQldCb0JjQiyDQnNCY0JvQkNCU0JjQnQor0J/QkNCd0KLQldCb0JjQiyDQnNCY0JvQkNCdCivQn9CQ0J3QotCV0JvQmNCLINCc0JjQm9Ce0KgKK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCd0KLQldCb0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QkNCd0KLQldCb0JjQiyDQnNCe0JzQmNCgCivQn9CQ0J3QotCV0JvQmNCLINCd0JXQndCQ0JQKK9Cf0JDQndCi0JXQm9CY0Isg0J3QldCS0JXQndCa0JAKK9Cf0JDQndCi0JXQm9CY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0J3QotCV0JvQmNCLINCf0JDQiNCeCivQn9CQ0J3QotCV0JvQmNCLINCf0JDQktCb0JUKK9Cf0JDQndCi0JXQm9CY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQndCi0JXQm9CY0Isg0J/QldCi0JDQoAor0J/QkNCd0KLQldCb0JjQiy3Qn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QkNCd0KLQldCb0JjQiyDQodCb0JDQktCY0KbQkAor0J/QkNCd0KLQldCb0JjQiyDQodCe0KTQmNCI0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JLQkNCh0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JLQldCg0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCd0KLQldCb0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JDQndCi0JXQm9CY0Isg0JLQo9CI0JjQptCQCivQn9CQ0J3QotCV0JvQmNCLLdCS0KPQmtCQ0J3QntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQn9CQ0J3QotCV0JvQmNCLINCS0KPQmtCY0KbQkAor0J/QkNCd0KLQldCb0JjQiyDQktCj0JrQmNCm0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JfQntCg0JDQnQor0J/QkNCd0KLQldCb0JjQnSDQk9CV0J7QoNCT0JjQiNCVCivQn9CQ0J3QotCV0JvQmNCd0JDQpiDQndCY0JrQntCb0JAKK9Cf0JDQndCi0JXQm9CY0J3QkNCmINCf0JDQktCb0JUKK9Cf0JDQndCi0JXQm9CY0J3QkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQndCi0JjQiyDQltCQ0KDQmtCeCivQn9CQ0J3QotCY0Isg0JbQmNCS0JDQnQor0J/QkNCd0KLQmNCLINCW0JjQktCa0JAKK9Cf0JDQndCi0JjQiyDQltCY0JLQntCI0JjQnQor0J/QkNCd0KLQmNCLINCW0JjQktCe0KDQkNCUCivQn9CQ0J3QotCY0Isg0ILQntCg0ILQlQor0J/QkNCd0KLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cf0JDQndCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCd0KLQmNCLINCR0JDQotCQCivQn9CQ0J3QotCY0Isg0JHQntCT0JTQkNCdCivQn9CQ0J3QotCY0Isg0JHQntCg0JjQktCe0IjQlQor0J/QkNCd0KLQmNCLINCR0J7QodCY0InQmtCQCivQn9CQ0J3QotCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J/QkNCd0KLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cf0JDQndCi0JjQiyDQlNCj0KjQkNCdCivQn9CQ0J3QotCY0Isg0JPQmNCX0JXQm9CQCivQn9CQ0J3QotCY0Isg0JPQktCe0JfQlNCV0J0KK9Cf0JDQndCi0JjQiyDQiNCV0JvQmNCm0JAKK9Cf0JDQndCi0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JDQndCi0JjQiyDQnNCQ0KDQmNCd0JAKK9Cf0JDQndCi0JjQiyDQnNCY0KXQkNCY0JvQngor0J/QkNCd0KLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQndCi0JjQiyDQnNCY0JvQldCd0JrQngor0J/QkNCd0KLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cf0JDQndCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QkNCd0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CQ0J3QotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCi0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgINCb0JXQmtCQ0KAKK9Cf0JDQndCi0JjQiyDQoNCQ0JTQldCd0JrQngor0J/QkNCd0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CQ0J3QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JDQndCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0J3QotCY0Isg0KDQntCX0JAKK9Cf0JDQndCi0JjQiyDQodCV0JvQmNCc0JjQoAor0J/QkNCd0KLQmNCLINCh0JXQm9CY0JzQmNCgCivQn9CQ0J3QotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QkNCd0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JDQndCi0JjQiyDQo9Cg0J7QqAor0J/QkNCd0KLQmNCLINCS0JXQodCd0JAKK9Cf0JDQndCi0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAKK9Cf0JDQndCi0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QkNCd0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQn9CQ0J3QotCe0Kgg0ILQo9Cg0J4KK9Cf0JDQndCi0J7QqCDQmtCe0JLQmNCJ0JrQkAor0J/QkNCd0KLQntCoINCf0JXQotCQ0KAKK9Cf0JDQndCi0J7QqCDQn9CV0KLQkNCgCivQn9CQ0J3QotCe0JLQmNCLINCo0IvQldCf0JDQnQor0J/QkNCd0KLQntCS0JjQiyDQltCV0InQmtCeCivQn9CQ0J3QotCe0JLQmNCLINCQ0KbQkAor0J/QkNCd0KLQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cf0JDQndCi0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CQ0J3QotCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQn9CQ0J3QotCe0JLQmNCLINCJ0KPQkdCeCivQn9CQ0J3QotCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQn9CQ0J3QotCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9CQ0J3QotCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QkNCd0KLQntCS0JjQiyDQodCQ0JLQkAor0J/QkNCd0KLQntCS0JjQiyDQodCS0JXQotCe0JvQmNCaCivQn9CQ0J3QotCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQndCX0JDQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9CQ0J7Qm9Ce0J3QmCDQgtCj0JfQldCf0JjQndCQCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0ILQldCg0IIKK9Cf0JDQnyDQgtCj0KDQngor0J/QkNCfINCQ0J3QkAor0J/QkNCfINCU0JXQiNCQ0J0KK9Cf0JDQnyDQlNCg0JDQk9CY0KbQkAor0J/QkNCfINCV0JTQmNCiCivQn9CQ0J8g0JXQlNCY0KIKK9Cf0JDQnyDQldCd0JTQoNCVINCU0KAKK9Cf0JDQnyDQldCd0JTQoNCVCivQn9CQ0J8g0JXQoNCW0JXQkdCV0KIKK9Cf0JDQnyDQldCi0JXQm9Ca0JAKK9Cf0JDQnyDQpNCV0KDQldCd0KYKK9Cf0JDQnyDQpNCg0JDQitCQCivQn9CQ0J8g0KTQoNCQ0IrQkAor0J/QkNCfINCT0JDQkdCe0KAKK9Cf0JDQnyDQmNCo0KLQktCQ0J0g0JTQoAor0J/QkNCfINCY0KjQotCS0JDQnQor0J/QkNCfINCY0JvQldCoCivQn9CQ0J8g0JjQnNCg0JUKK9Cf0JDQnyDQmNCc0KDQlQor0J/QkNCfINCY0KDQldCd0JAKK9Cf0JDQnyDQmNCg0JXQndCQCivQn9CQ0J8g0IjQkNCK0JAKK9Cf0JDQnyDQiNCQ0J3QmtCeCivQn9CQ0J8g0IjQldCb0JXQndCQCivQn9CQ0J8g0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0JDQnyDQiNCe0JbQldCkINCU0KAKK9Cf0JDQnyDQiNCe0KHQmNCfCivQn9CQ0J8g0IjQntCh0JjQnwor0J/QkNCfINCI0J7QktCQ0J0KK9Cf0JDQnyDQiNCj0JvQmNCI0JDQndCQCivQn9CQ0J8g0IjQo9Cb0JjQiNCQ0J0KK9Cf0JDQnyDQiNCj0JvQmNCI0JAKK9Cf0JDQnyDQmtCQ0KLQkNCg0JjQndCQCivQn9CQ0J8g0JvQkNCh0JvQngor0J/QkNCfINCc0JDQoNCT0JjQotCQCivQn9CQ0J8g0JzQmNCl0JDQiNCb0J4KK9Cf0JDQnyDQnNCY0KXQkNCI0JvQngor0J/QkNCfINCc0JjQmtCb0J7QqAor0J/QkNCfINCc0JjQoNCe0J0KK9Cf0JDQnyDQntCb0JPQkAor0J/QkNCfINCf0JDQktCb0JUKK9Cf0JDQnyDQoNCe0JfQkNCb0JjQiNCQCivQn9CQ0J8g0KHQmNCb0JLQldCh0KLQldCgCivQn9CQ0J8g0KLQldCg0JXQl9CY0IjQkAor0J/QkNCfINCi0JjQkdCe0KAKK9Cf0JDQnyDQktCQ0JvQldCg0JjQiNCQCivQn9CQ0J8g0JLQldCg0JAKK9Cf0JDQnyDQktCY0J3QptCVCivQn9CQ0J8g0JLQm9CQ0JTQmNCh0JvQkNCSCivQn9CQ0J8g0JfQlNCV0J3QmtCQCivQn9CQ0J8g0JfQntCb0KLQkNCdCivQn9CQ0J/QqNCe0KIt0JrQntCX0JjQmiDQn9CV0J/QmAor0J/QkNCf0ILQo9Cg0JTQldChINCI0J7QktCT0JXQnQor0J/QkNCf0JDQlNCe0J/QntCb0J4g0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CQ0J/QkNCU0J7Qn9Ce0JvQniDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cf0JDQn9CQ0JTQntCf0KPQm9Ce0KEg0IjQkNCd0JjQoQor0J/QkNCf0JDQlNCe0J/Qo9Cb0J7QoSDQmtCe0KHQotCQ0KEKK9Cf0JDQn9CQ0JPQldCe0KDQk9CY0KIg0JrQntCh0KLQkAor0J/QkNCf0JDQmiDQlNCg0JDQk9CQ0J0KK9Cf0JDQn9CQ0KLQkNCd0JDQodCY0KMg0J3QmNCm0JAKK9Cf0JDQn9CV0Kgg0IjQntCh0JjQnwor0J/QkNCf0JXQqCDQmtCe0KHQkAor0J/QkNCf0JXQliDQmNCb0JjQndCa0JAKK9Cf0JDQn9Cl0JDQoNCl0JDQiNCYINCC0KPQoNCQCivQn9CQ0J/QpdCQ0KDQpdCQ0IjQmCDQotCV0KDQldCX0JjQiNCQCivQn9CQ0J/QpdCQ0KDQpdCQ0IjQmCDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0J/QmNCo0KLQkCDQpNCg0JDQitCQCivQn9CQ0J/QmNCo0KLQkCDQpNCg0JDQitCQCivQn9CQ0J/QmNCo0KLQkCDQmNCb0JTQmNCa0JAKK9Cf0JDQn9CY0KjQotCQINCI0J7QktCQ0J0KK9Cf0JDQn9CY0KjQotCQINCc0JDQoNCY0IjQkAor0J/QkNCf0JjQqNCi0JAg0JzQkNCg0JrQngor0J/QkNCf0JjQqNCi0JAg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQn9CY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JDQn9CY0Isg0JbQmNCS0JrQngor0J/QkNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCf0JjQiyDQkNCd0JAKK9Cf0JDQn9CY0Isg0JDQoNCQ0J3QmtCQCivQn9CQ0J/QmNCLINCQ0KDQkNCd0JrQkAor0J/QkNCf0JjQiyDQkNCg0JDQndCa0JAKK9Cf0JDQn9CY0Isg0JDQoNCQ0J3QmtCQCivQn9CQ0J/QmNCLINCR0J7QqNCa0J4KK9Cf0JDQn9CY0Isg0JHQntCW0JAKK9Cf0JDQn9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JDQn9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J/QmNCLINCR0KDQkNCd0JrQngor0J/QkNCf0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQn9CY0Isg0JTQldCh0JDQndCa0JAKK9Cf0JDQn9CY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQn9CQ0J/QmNCLINCU0KPQqNCQ0J0KK9Cf0JDQn9CY0Isg0JTQo9Co0JDQnQor0J/QkNCf0JjQiyDQk9Ce0IjQmtCeCivQn9CQ0J/QmNCLINCY0JLQkNCdCivQn9CQ0J/QmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9CQ0J/QmNCLINCb0JDQl9CQ0KAKK9Cf0JDQn9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0J/QkNCf0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JDQn9CY0Isg0JvQntCX0JjQndCa0JAKK9Cf0JDQn9CY0Isg0JvQo9Ca0JAKK9Cf0JDQn9CY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0J/QmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CQ0J/QmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CQ0J/QmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CQ0J/QmNCLINCc0JjQm9CY0KbQkAor0J/QkNCf0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QkNCf0JjQiyDQnNCY0JvQmtCQCivQn9CQ0J/QmNCLINCc0JjQm9Ce0KgKK9Cf0JDQn9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCf0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9CQ0J/QmNCLINCd0JjQmtCe0JvQkAor0J/QkNCf0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0J/QmNCLINCg0JDQlNCV0J3QmtCeCivQn9CQ0J/QmNCLINCh0JDQktCQCivQn9CQ0J/QmNCLINCh0JzQmNCJ0JAKK9Cf0JDQn9CY0Isg0KHQoNCC0JDQnSDQlNCgCivQn9CQ0J/QmNCLINCh0KDQgtCQ0J3QmtCQCivQn9CQ0J/QmNCLINCh0KLQldCS0JDQnQor0J/QkNCf0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQn9CQ0J/QmNCLINCh0JLQldCi0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQn9CY0Isg0KLQldCe0JTQntCgCivQn9CQ0J/QmNCLINCi0J7QlNCe0KAKK9Cf0JDQn9CY0Isg0JLQldCg0JAKK9Cf0JDQn9CY0Isg0JfQntCg0JjQptCQCivQn9CQ0J/QmNCLINCX0J7QoNCY0KbQkAor0J/QkNCf0JjQmiDQktCY0JrQotCe0KAKK9Cf0JDQn9CY0JvQmNCe0J0g0JHQntCg0JjQqNCa0JAKK9Cf0JDQn9Cb0JDQptCa0J4g0JLQldCb0JjQnNCY0KAKK9Cf0JDQn9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0J/QntCS0JjQiyDQkdCb0JDQltCeCivQn9CQ0J/QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QkNCf0J7QktCY0Isg0JrQoNCh0KLQngor0J/QkNCf0J7QktCY0Isg0JzQmNCb0JUKK9Cf0JDQn9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0J/QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0JDQn9Ce0JLQmNCLINCS0JXQodCV0JvQmNCdCivQn9CQ0J/QntCS0JjQiyDQktCj0JrQntCh0JDQkgor0J/QkNCf0KDQmNCLINCW0JjQktCQ0J0KK9Cf0JDQn9Cg0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J/QoNCY0Isg0JzQkNCg0JrQngor0J/QkNCf0KDQmNCLINCg0JDQiNCa0J4KK9Cf0JDQn9Cj0JPQkCDQgtCj0KDQkAor0J/QkNCf0KPQk9CQINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QkNCf0KPQk9CQINCV0KPQpNCV0JzQmNCI0JAKK9Cf0JDQn9Cj0JPQkCDQmNCg0JjQndCQCivQn9CQ0J/Qo9CT0JAg0IjQkNCg0J7QodCb0JDQkgor0J/QkNCf0KPQk9CQINCa0JjQoNCY0JsKK9Cf0JDQn9Cj0JPQkCDQidCj0JHQntCc0JjQoAor0J/QkNCf0KPQk9CQINCc0JjQpdCQ0IjQm9CeCivQn9CQ0J/Qo9CT0JAg0KLQkNCi0IjQkNCd0JAKK9Cf0JDQn9Cj0JPQkCDQktCV0KDQkAor0J/QkNCf0KPQk9CQINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQn9Cj0JvQmNCdINCC0JXQoNCC0JjQmtCQCivQn9CQ0J/Qo9Cb0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0J/Qo9Cb0JjQnSDQlNCe0JHQoNCY0J3QkAor0J/QkNCf0KPQm9CY0J0g0KDQkNCU0J7QiNCa0JAKK9Cf0JDQoNCn0JjQiyDQndCQ0ILQkCDQlNCgCivQn9CQ0KDQkNCR0KPQi9Ch0JrQmCDQnNCY0JvQldCd0JrQngor0J/QkNCg0JDQkdCj0IvQodCa0Jgt0KHQmNCc0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0JDQoNCQ0JHQo9CL0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkiDQndCe0JLQmNCd0JDQoAor0J/QkNCg0JDQkdCj0KbQmtCYINCb0JDQl9CQ0KAKK9Cf0JDQoNCQ0JHQo9Cm0JrQmCDQidCY0InQkNCd0JAKK9Cf0JDQoNCQ0JMg0KHQotCV0JLQkNCdCivQn9CQ0KDQkNCd0JTQmNCb0J7QktCY0Isg0KDQntCh0JAKK9Cf0JDQoNCQ0J/QmNCUINCc0JjQoNCI0JDQndCQCivQn9CQ0KDQkNCS0JjQmyDQndCY0JrQntCb0JAKK9Cf0JDQoNCQ0JLQmNCd0JAg0IjQkNCg0JzQmNCb0JAKK9Cf0JDQoNCQ0JLQmNCd0JAg0JzQmNCb0J7QqAor0J/QkNCg0JTQntCS0JjQptCa0Jgg0KTQldCg0JXQndCmCivQn9CQ0KDQlNCe0JLQmNCm0JrQmCDQpNCg0JDQitCQCivQn9CQ0KDQlNCe0JLQmNCm0JrQmCDQnNCQ0KDQmNCI0JAKK9Cf0JDQoNCV0JbQkNCd0JjQnSDQoNCQ0JTQmNCS0J7QiAor0J/QkNCg0JXQltCQ0J3QmNCdINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQoNCV0JbQkNCd0JjQnSDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JDQoNCl0JDQndCe0JIg0JLQmNCa0KLQntCg0JjQiNCQCivQn9CQ0KDQmNCn0JXQktCY0Isg0JXQktCQCivQn9CQ0KDQmNCLINCh0KLQmNCf0JUKK9Cf0JDQoNCY0J/QntCSINCI0JXQm9CQCivQn9CQ0KDQmNCf0J7QkiDQnNCY0JvQkNCdCivQn9CQ0KDQmNCf0J7QkiDQnNCY0JvQldCd0JrQngor0J/QkNCg0JjQn9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0KDQmNCf0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0KDQmNCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCg0JjQn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JDQoNCY0J/QntCS0JjQiyDQiNCe0JLQngor0J/QkNCg0JjQn9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CQ0KDQmNCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQoNCY0J/QntCS0JjQiyDQnNCY0JvQlQor0J/QkNCg0JjQn9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JDQoNCY0J/QntCS0JjQiyDQn9CQ0IjQkAor0J/QkNCg0JjQn9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQoNCY0J/QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0KDQmNCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCg0JjQn9Ce0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCa0JAKK9Cf0JDQoNCY0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0KDQmtCQ0IrQmCDQodCQ0JzQo9CV0JsKK9Cf0JDQoNCb0JDQiyDQidCj0JHQntCc0JjQoAor0J/QkNCg0JvQkNCLINCc0JDQoNCY0J3QmtCeCivQn9CQ0KDQm9CQ0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JDQoNCb0JjQiyDQkNCd0JAKK9Cf0JDQoNCb0JjQiyDQiNCV0JLQotCQCivQn9CQ0KDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0KDQnNCQ0Isg0J3QldCU0JXQidCa0J4KK9Cf0JDQoNCd0JjQptCa0Jgg0JjQktCQ0J0KK9Cf0JDQoNCd0JjQptCa0Jgg0IjQntCS0JDQnQor0J/QkNCg0J7QqNCa0JDQiCDQgtCj0KDQkAor0J/QkNCg0J7QqNCa0JDQiCDQlNCQ0J3QmNCb0J4KK9Cf0JDQoNCe0KjQmtCYINCC0J7QoNCC0JUKK9Cf0JDQoNCe0KjQmtCYINCC0J7QoNCC0JUKK9Cf0JDQoNCe0KjQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0KDQntCo0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCg0J7QqNCa0Jgg0JDQndCQCivQn9CQ0KDQntCo0JrQmCDQkNCd0JrQmNCm0JAKK9Cf0JDQoNCe0KjQmtCYINCR0J7QoNCY0JLQntCICivQn9CQ0KDQntCo0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQoNCe0KjQmtCYINCU0JDQnNCI0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0KDQntCo0JrQmCDQlNCe0JHQoNCY0JvQkAor0J/QkNCg0J7QqNCa0Jgg0JTQoNCQ0JPQkNCdCivQn9CQ0KDQntCo0JrQmCDQlNCj0KjQkNCdCivQn9CQ0KDQntCo0JrQmCDQk9Cb0JjQqNCQCivQn9CQ0KDQntCo0JrQmCDQk9Ce0KDQlNCQ0J0KK9Cf0JDQoNCe0KjQmtCYINCY0JLQkNCdCivQn9CQ0KDQntCo0JrQmCDQiNCV0JvQldCd0JAKK9Cf0JDQoNCe0KjQmtCYINCI0JXQm9CY0KbQkAor0J/QkNCg0J7QqNCa0Jgg0IjQntCS0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JzQkNCg0JjQiNCQCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQmNCm0JAKK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9Ce0KgKK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9Ce0KDQkNCUCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQntCS0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JzQmNCg0JAKK9Cf0JDQoNCe0KjQmtCYINCc0JjQoNCI0JDQndCQCivQn9CQ0KDQntCo0JrQmCDQnNCY0KDQmtCeCivQn9CQ0KDQntCo0JrQmCDQndCV0KHQotCe0KAKK9Cf0JDQoNCe0KjQmtCYINCe0JHQoNCV0J0KK9Cf0JDQoNCe0KjQmtCYINCe0JvQk9CQCivQn9CQ0KDQntCo0JrQmCDQn9CV0KLQkNCgCivQn9CQ0KDQntCo0JrQmCDQn9Cj0J3QmNCo0JAKK9Cf0JDQoNCe0KjQmtCYINCg0JDQlNCc0JjQm9CQCivQn9CQ0KDQntCo0JrQmCDQoNCQ0IjQmtCeCivQn9CQ0KDQntCo0JrQmCDQoNCe0JbQkAor0J/QkNCg0J7QqNCa0Jgg0KHQkNCS0JAKK9Cf0JDQoNCe0KjQmtCYINCh0JvQkNCS0JjQptCQCivQn9CQ0KDQntCo0JrQmCDQodCe0KTQmNCI0JAKK9Cf0JDQoNCe0KjQmtCYINCh0KLQldCS0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JLQldCg0J7QidCj0JEKK9Cf0JDQoNCe0KjQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQoNCe0KjQmtCYINCX0JDQk9Ce0KDQmtCQCivQn9CQ0KDQntCm0Jgg0IjQntCh0JjQnwor0J/QkNCg0J7QptCYINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JDQoNCe0KbQmCDQmtCQ0KDQm9CeCivQn9CQ0KDQntCm0Jgg0InQmNCJ0JDQndCQCivQn9CQ0KDQntCm0Jgg0KLQmNCR0J7QoAor0J/QkNCg0J7QptCYINCi0JjQkdCe0KAKK9Cf0JDQoNCe0KbQmCDQotCY0JHQntCgCivQn9CQ0KDQntCI0KfQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCg0J7QiNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0KDQntCa0JDQmCDQnNCY0KDQmtCeCivQn9CQ0KDQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JDQoNCj0JbQmNCLINCf0JDQndCi0JAKK9Cf0JDQoNCj0KbQmtCYINCc0JjQpdCQ0IjQm9CeCivQn9CQ0KHQkNCg0JjQiyDQoNCj0JbQkAor0J/QkNCh0JrQkNCoINCc0JjQm9CQ0J0KK9Cf0JDQodCa0JDQqCDQnNCY0JvQmtCQCivQn9CQ0KHQmtCQ0Kgg0J3QkNCi0JDQqNCQCivQn9CQ0KHQmtCQ0JvQmCDQk9Ce0KDQkNCdCivQn9CQ0KHQmtCQ0InQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCh0JrQoyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JDQodCa0KPQm9Ce0JIg0JzQmNCg0J7QidCj0JEKK9Cf0JDQodCiINCg0J7QkdCV0KDQogor0J/QkNCh0KLQldCg0JrQniDQodCi0JXQktCQ0J0KK9Cf0JDQodCi0J7QitCY0KbQmtCYINCV0JvQldCc0JjQoAor0J/QkNCh0KLQntCgINCT0JXQl9CQCivQn9CQ0KHQotCe0KAg0IjQkNCd0J7QqAor0J/QkNCh0KLQntCgINCI0JDQndCe0KgKK9Cf0JDQodCi0J7QoCDQiNCe0KHQmNCfCivQn9CQ0KHQotCe0KAg0IjQntCh0JjQnwor0J/QkNCh0KLQntCgINCI0J7Ql9CV0KQKK9Cf0JDQodCi0J7QoCDQm9CQ0KHQm9CeCivQn9CQ0KHQotCe0KAg0JzQkNCg0JjQiNCQCivQn9CQ0KHQotCe0KAg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQodCi0J7QoCDQnNCY0JvQkNCdCivQn9CQ0KHQotCe0KAg0J/QldCi0JDQoAor0J/QkNCh0KLQntCgINCh0KLQiNCV0J/QkNCdCivQn9CQ0KHQotCe0KDQndCQ0KfQmtCYINCC0KPQoNCC0JjQndCa0JAKK9Cf0JDQodCi0J7QoNCd0JDQp9Ca0Jgg0JvQkNCX0JDQoAor0J/QkNCh0KLQntCg0J3QkNCn0JrQmCDQidCj0JHQmNCo0JAKK9Cf0JDQodCi0J7QoNCd0JDQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQn9CQ0KHQotCe0KDQndCQ0KfQmtCYINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQodCi0J7QoNCK0JjQptCa0Jgg0JPQntCg0JTQkNCd0JAKK9Cf0JDQotCQ0KTQotCQINCI0KPQm9CY0IjQkAor0J/QkNCi0JDQpNCi0JAg0KHQotCV0JLQkNCdCivQn9CQ0KLQkNCIINCQ0KDQkNCd0JrQkCDQlNCgCivQn9CQ0KLQkNCaINCf0JDQktCb0JUKK9Cf0JDQotCQ0JrQmCDQkNCd0JAKK9Cf0JDQotCQ0JrQmCDQldCS0JAKK9Cf0JDQotCQ0JrQmCDQk9Ce0KDQkNCdCivQn9CQ0KLQkNCg0JjQiyDQodCi0JjQn9CQ0J0KK9Cf0JDQotCQ0KDQmNCm0JAg0JXQm9CV0JzQldCgCivQn9CQ0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQotCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cf0JDQotCY0Isg0KDQkNCi0JrQngor0J/QkNCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0KLQm9CV0IjQpSDQndCQ0JTQldCW0JTQkAor0J/QkNCi0KDQmNCaINCb0JDQiNCe0KgKK9Cf0JDQotCg0JjQmiDQodCi0JXQktCQ0J0KK9Cf0JDQotCg0J3QntCT0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0KLQoNCd0J7Qk9CY0Isg0JTQo9Co0JDQnSDQlNCgCivQn9CQ0KLQoNCd0J7Qk9CY0Isg0JTQo9Co0JjQptCQCivQn9CQ0KLQoNCd0J7Qk9CY0Isg0JvQmNCU0JjQiNCQCivQn9CQ0KPQqNCY0Isg0JjQktCQ0J0KK9Cf0JDQo9Co0JjQiyDQnNCQ0KDQmtCeCivQn9CQ0KPQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0KPQmyDQmtCQ0KLQmNCm0JAKK9Cf0JDQo9CbINCb0JDQiNCe0KgKK9Cf0JDQo9CbINCb0JDQiNCe0KgKK9Cf0JDQo9CbINCe0KHQmtCQ0KAKK9Cf0JDQo9Cb0JjQiyDQnNCY0JvQlQor0J/QkNCj0JvQmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0KPQm9CY0Jog0J/QldCg0J4KK9Cf0JDQo9Cb0JjQmiDQn9CV0KLQkNCgCivQn9CQ0KPQm9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cf0JDQo9Cd0JXQodCa0KMg0JLQkNCh0JAKK9Cf0JDQo9Cd0JjQiyDQltCY0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QkNCj0J3QmNCLINCC0KPQoNCQCivQn9CQ0KPQndCY0Isg0JDQm9CY0JzQn9CY0IjQlQor0J/QkNCj0J3QmNCLINCR0KDQkNCd0JrQngor0J/QkNCj0J3QmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QkNCj0J3QmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQo9Cd0JjQiyDQmNCb0JjQiNCQCivQn9CQ0KPQndCY0Isg0JvQkNCX0JDQoAor0J/QkNCj0J3QmNCLINCc0JjQm9CQ0J3QkAor0J/QkNCj0J3QmNCLINCc0JjQm9CV0JLQkAor0J/QkNCj0J3QmNCLINCc0JjQm9CVCivQn9CQ0KPQndCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J/QkNCj0J3QmNCLINCi0J7QnNCQCivQn9CQ0KPQndCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cf0JDQo9Cd0JrQntCS0JjQiyDQiNCe0JLQkNCd0JAKK9Cf0JDQo9Cd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JDQo9Cd0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0J/QkNCj0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQo9Cd0JrQoyDQkNCj0KDQldCb0JjQiNCQCivQn9CQ0KPQndCe0JLQmNCLINCn0JDQodCb0JDQkgor0J/QkNCj0J3QntCS0JjQiyDQkNCd0KLQngor0J/QkNCj0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JDQo9Cd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9CQ0KPQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0J/QkNCj0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQo9Cd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0KPQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0J/QkNCj0J3QntCS0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0J/QkNCj0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QkNCj0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CQ0KPQndCe0JLQmNCLINCa0J7QktCY0InQmtCQCivQn9CQ0KPQndCe0JLQmNCLINCa0J7QktCY0InQmtCQCivQn9CQ0KPQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QkNCj0J3QntCS0JjQiyDQidCj0JHQmNCS0J7QiNCVCivQn9CQ0KPQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0J/QkNCj0J3QntCS0JjQiyDQnNCV0JvQmNCd0JTQkAor0J/QkNCj0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQo9Cd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0KPQndCe0JLQmNCLINCf0JDQo9CdCivQn9CQ0KPQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JDQo9Cd0J7QktCY0Isg0KDQkNCU0J7QqAor0J/QkNCj0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0KPQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQo9Cd0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cf0JDQo9Cd0J7QktCY0Isg0KHQm9CQ0JLQkAor0J/QkNCj0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J/QkNCj0J3QntCS0JjQiyDQodCg0JHQmNCm0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0J/QkNCj0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CQ0KPQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JfQntCg0JDQnQor0J/QkNCj0J3QntCS0JjQiyDQl9CS0J7QndCa0J4KK9Cf0JDQo9CiINCc0JjQm9CQ0J0KK9Cf0JDQo9CX0JXQndCR0JXQoNCT0JXQoCDQmNCg0JXQndCQCivQn9CQ0KPQl9CV0J3QkdCV0KDQk9CV0KAg0IjQntCS0JDQnQor0J/QkNCS0JDQmCDQpNCg0JDQitCQCivQn9CQ0JLQldCb0JrQkCDQlNCQ0J3QmNCV0JvQkAor0J/QkNCS0JXQm9Ca0JAg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCS0JjQpyDQlNCQ0J3QmNCm0JAKK9Cf0JDQktCY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0JLQmNCn0JXQktCY0Isg0J3QkNCU0JAKK9Cf0JDQktCY0KfQmNCLINCU0KDQkNCT0JjQptCQCivQn9CQ0JLQmNCn0JjQiyDQmNCS0JDQnQor0J/QkNCS0JjQp9CY0Isg0JzQmNCg0JrQngor0J/QkNCS0JjQqNCY0Isg0ILQo9Cg0JAKK9Cf0JDQktCY0Isg0ILQo9Cg0J4KK9Cf0JDQktCY0Isg0JDQndCa0JAKK9Cf0JDQktCY0Isg0JDQoNCe0J0KK9Cf0JDQktCY0Isg0JHQmNCJ0JDQndCQCivQn9CQ0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQktCY0Isg0JPQkNCo0J4KK9Cf0JDQktCY0Isg0JPQntCI0JrQngor0J/QkNCS0JjQiyDQiNCe0JbQldCkCivQn9CQ0JLQmNCLINCJ0KPQkdCY0KjQkAor0J/QkNCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JDQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JDQktCY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQktCY0Isg0JzQmNCb0JDQnQor0J/QkNCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JDQktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCS0JjQiy3QodCj0JvQntCm0JrQmCDQldCh0KLQldCgCivQn9CQ0JLQmNCLINCi0JXQoNCV0JfQmNCI0JAKK9Cf0JDQktCY0Isg0JLQldCd0JrQngor0J/QkNCS0JjQiyDQktCV0KDQmtCQCivQn9CQ0JLQmNCL0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQktCY0IvQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JjQi9CV0JLQmNCLINCQ0J3QkNCd0JjQiNCVCivQn9CQ0JLQmNCL0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0JLQmNCL0JXQktCY0Isg0JTQldCh0JAKK9Cf0JDQktCY0IvQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQktCY0IvQldCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQmNCL0JXQktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JjQi9CV0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCS0JjQi9CV0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCb0J7QqAor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JDQktCY0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCg0JAKK9Cf0JDQktCY0IvQldCS0JjQiyDQnNCY0KDQmtCeCivQn9CQ0JLQmNCL0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCS0JjQnSDQidCj0JHQmNCm0JAKK9Cf0JDQktCa0J7QkiDQltCY0JLQmtCeCivQn9CQ0JLQmtCe0JIg0JbQmNCS0J7QiNCY0J0KK9Cf0JDQktCa0J7QkiDQgtCj0KDQgtCV0JLQmtCQCivQn9CQ0JLQmtCe0JIg0ILQo9Cg0ILQmNCd0JAKK9Cf0JDQktCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JrQntCSINCQ0J3QmtCQCivQn9CQ0JLQmtCe0JIg0JHQntCW0JjQlNCQ0KAKK9Cf0JDQktCa0J7QkiDQkdCe0KHQmNCJ0JrQkAor0J/QkNCS0JrQntCSINCR0KDQkNCd0JrQngor0J/QkNCS0JrQntCSINCU0KDQkNCT0JDQnQor0J/QkNCS0JrQntCSINCU0KDQkNCT0JDQnQor0J/QkNCS0JrQntCSINCU0KPQqNCQ0J0KK9Cf0JDQktCa0J7QkiDQlNCj0KjQkNCdCivQn9CQ0JLQmtCe0JIg0JPQntCI0JrQngor0J/QkNCS0JrQntCSINCT0J7QoNCU0JDQndCQCivQn9CQ0JLQmtCe0JIg0JjQktCQ0J3QmtCQCivQn9CQ0JLQmtCe0JIg0IjQntCS0JDQnQor0J/QkNCS0JrQntCSINCI0J7QktCQ0J0KK9Cf0JDQktCa0J7QkiDQiNCe0JLQkNCdCivQn9CQ0JLQmtCe0JIg0JrQkNCi0JjQptCQCivQn9CQ0JLQmtCe0JIg0JvQkNCX0JDQoAor0J/QkNCS0JrQntCSINCc0JjQm9CQ0J0KK9Cf0JDQktCa0J7QkiDQnNCY0JvQkNCdCivQn9CQ0JLQmtCe0JIg0JzQmNCb0JDQnQor0J/QkNCS0JrQntCSINCc0JjQm9CY0JLQntCIINCU0JjQn9CbINCY0J3Qkwor0J/QkNCS0JrQntCSINCc0JjQm9Ce0KgKK9Cf0JDQktCa0J7QkiDQnNCY0JvQntCI0JUKK9Cf0JDQktCa0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQn9CQ0JLQmtCe0JIg0JzQmNCb0KPQotCY0J0KK9Cf0JDQktCa0J7QkiDQnNCY0KLQkNCgCivQn9CQ0JLQmtCe0JIg0J3QkNCU0JAKK9Cf0JDQktCa0J7QkiDQndCQ0JTQkAor0J/QkNCS0JrQntCSINCf0JDQktCb0JUKK9Cf0JDQktCa0J7QkiDQn9CV0KLQkNCgCivQn9CQ0JLQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Cf0JDQktCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QkNCS0JrQntCSINCg0JDQotCe0JzQmNCgCivQn9CQ0JLQmtCe0JIg0KHQkNCS0JAKK9Cf0JDQktCa0J7QkiDQodCQ0JLQkAor0J/QkNCS0JrQntCSINCh0JjQndCY0KjQkAor0J/QkNCS0JrQntCSINCh0JvQkNCS0JrQngor0J/QkNCS0JrQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JrQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JrQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JrQntCSINCj0KDQntCoCivQn9CQ0JLQmtCe0JIg0JLQmNCi0J7QnNCY0KAKK9Cf0JDQktCa0J7QkiDQl9Ce0KDQkNCdCivQn9CQ0JLQmtCe0JIg0JfQntCg0JrQkAor0J/QkNCS0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QkNCS0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQn9CQ0JLQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQn9CQ0JLQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9CQ0JLQmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0J/QkNCS0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQktCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCS0JrQntCS0JjQiyDQoNCQ0JTQntCI0JUKK9Cf0JDQktCb0JXQmtCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9CV0KHQmtCYINCc0JXQndCa0JAKK9Cf0JDQktCb0JXQktCh0JrQmCDQlNCV0KHQkAor0J/QkNCS0JvQldCS0KHQmtCYINCi0KDQkNCI0JDQnQor0J/QkNCS0JvQmNCnINCc0JjQoNCa0J4KK9Cf0JDQktCb0JjQp9CY0Isg0JrQoNCV0KjQmNCc0JjQoAor0J/QkNCS0JvQmNCn0JjQiyDQidCj0JHQmNCo0JAg0JTQoAor0J/QkNCS0JvQmNCLINCC0J7QoNCC0JUKK9Cf0JDQktCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQm9CY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QkNCS0JvQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9CY0Isg0JLQm9CQ0JTQkAor0J/QkNCS0JvQmNCL0JXQkiDQgtCe0KDQgtCVCivQn9CQ0JLQm9CY0KbQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQktCb0JjQptCQINCI0J7QktCQ0J0KK9Cf0JDQktCb0JjQptCQINCb0JDQl9CQ0KAKK9Cf0JDQktCb0JjQptCQINCc0JDQoNCY0KbQkAor0J/QkNCS0JvQmNCm0JAg0JzQmNCm0JAKK9Cf0JDQktCb0JjQptCQINCc0JjQm9CQ0J0KK9Cf0JDQktCb0JjQptCQINCc0JjQm9CV0J3QkAor0J/QkNCS0JvQmNCm0JAg0JzQmNCb0JXQktCQCivQn9CQ0JLQm9CY0KbQkCDQndCQ0JTQkAor0J/QkNCS0JvQmNCm0JAg0J3QmNCa0J7Qm9CQCivQn9CQ0JLQm9CY0KbQkCDQndCY0JrQntCb0JAKK9Cf0JDQktCb0JjQptCQINCh0JDQktCeCivQn9CQ0JLQm9CY0KbQkCDQodCe0KTQmNCI0JAKK9Cf0JDQktCb0JjQptCQINCi0J7QlNCe0KAKK9Cf0JDQktCb0JjQptCQINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQktCb0JjQmiDQkNCd0KLQkNCbCivQn9CQ0JLQm9CY0Jog0IjQntCh0JjQnwor0J/QkNCS0JvQmNCaINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JDQktCb0JjQmiDQnNCY0KjQkAor0J/QkNCS0JvQmNCaINCS0JjQndCa0J4KK9Cf0JDQktCb0J7QkiDQltCQ0KDQmtCeCivQn9CQ0JLQm9Ce0JIg0JbQmNCS0JDQnQor0J/QkNCS0JvQntCSINCW0JjQktCa0JAKK9Cf0JDQktCb0J7QkiDQgtCe0JrQkAor0J/QkNCS0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQktCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JvQntCSINCR0J7Qk9CU0JDQndCa0JAKK9Cf0JDQktCb0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JIg0JTQkNCd0JjQptCQCivQn9CQ0JLQm9Ce0JIg0JTQkNCd0JjQm9CeCivQn9CQ0JLQm9Ce0JIg0JTQoNCQ0JPQmNCK0JAKK9Cf0JDQktCb0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQn9CQ0JLQm9Ce0JIg0JTQo9Co0JDQndCa0JAKK9Cf0JDQktCb0J7QkiDQlNCj0KjQkNCd0JrQkAor0J/QkNCS0JvQntCSINCU0KPQqNCQ0J0KK9Cf0JDQktCb0J7QkiDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JIg0IjQntCS0JDQnQor0J/QkNCS0JvQntCSINCa0JDQotCY0KbQkAor0J/QkNCS0JvQntCSLdCa0J7QodCi0JjQiyDQkNCd0JAg0JTQoAor0J/QkNCS0JvQntCSINCa0J7QktCY0InQmtCQCivQn9CQ0JLQm9Ce0JIg0JrQoNCY0KHQotCY0J3QkAor0J/QkNCS0JvQntCSINCa0KPQl9Cc0JDQnQor0J/QkNCS0JvQntCSINCb0JDQl9CQ0KAKK9Cf0JDQktCb0J7QkiDQm9CQ0JfQkNCgCivQn9CQ0JLQm9Ce0JIg0InQo9CR0JjQptCQCivQn9CQ0JLQm9Ce0JIg0InQo9CR0JjQptCQCivQn9CQ0JLQm9Ce0JIg0JzQkNCg0JjQiNCQCivQn9CQ0JLQm9Ce0JIg0JzQmNCb0JDQnQor0J/QkNCS0JvQntCSINCc0JjQm9CV0KLQkAor0J/QkNCS0JvQntCSINCc0JjQm9CY0JLQntCICivQn9CQ0JLQm9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JvQntCSINCc0JjQm9Ce0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQktCb0J7QkiDQnNCY0JvQo9Ci0JjQnQor0J/QkNCS0JvQntCSINCc0JjQoNCQCivQn9CQ0JLQm9Ce0JIt0JzQmNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAg0JTQoAor0J/QkNCS0JvQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQktCb0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JIg0JzQmNCi0JrQngor0J/QkNCS0JvQntCSINCd0JDQlNCQCivQn9CQ0JLQm9Ce0JIg0J3QkNCU0JAKK9Cf0JDQktCb0J7QkiDQndCQ0KLQkNCb0JjQiNCQCivQn9CQ0JLQm9Ce0JIg0J3QldCS0JXQndCa0JAKK9Cf0JDQktCb0J7QkiDQntCb0JPQkAor0J/QkNCS0JvQntCSINCf0JDQiNCQCivQn9CQ0JLQm9Ce0JIg0J/QkNCS0JXQmwor0J/QkNCS0JvQntCSINCf0JDQktCV0JsKK9Cf0JDQktCb0J7QkiDQn9CQ0JLQm9CVCivQn9CQ0JLQm9Ce0JIg0J/QldCi0JDQoAor0J/QkNCS0JvQntCSINCf0JXQotCQ0KAKK9Cf0JDQktCb0J7QkiDQoNCQ0JTQkAor0J/QkNCS0JvQntCSINCg0JDQlNCY0JLQntCICivQn9CQ0JLQm9Ce0JIg0KDQkNCU0JzQmNCb0JAKK9Cf0JDQktCb0J7QkiDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JDQktCb0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JIg0KHQkNCS0JAKK9Cf0JDQktCb0J7QkiDQodCQ0JLQkAor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQntCI0JDQnQor0J/QkNCS0JvQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQktCb0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQn9CQ0JLQm9Ce0JIg0JLQldCg0JAKK9Cf0JDQktCb0J7QkiDQktCV0KDQkAor0J/QkNCS0JvQntCSINCS0JXQoNCY0KbQkAor0J/QkNCS0JvQntCSINCS0JjQlNCe0KHQkNCS0JAKK9Cf0JDQktCb0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0JLQm9Ce0JIg0JLQm9CQ0KHQotCY0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JDQktCb0J7QktCY0Ist0JbQldCd0JXQoCDQntCb0JPQkAor0J/QkNCS0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CQ0JLQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JDQktCb0J7QktCY0Isg0ILQntCg0ILQlQor0J/QkNCS0JvQntCS0JjQiyDQgtCe0KDQgtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCC0J7QoNCC0J4KK9Cf0JDQktCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0J/QkNCS0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQkNCb0JXQmtCh0JjQiNCVCivQn9CQ0JLQm9Ce0JLQmNCLINCQ0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Cf0JDQktCb0J7QktCY0Isg0JDQndCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0JDQktCb0J7QktCY0Isg0JHQm9CQ0JPQngor0J/QkNCS0JvQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQkdCe0JbQngor0J/QkNCS0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Cf0JDQktCb0J7QktCY0Isg0JHQntCg0JAKK9Cf0JDQktCb0J7QktCY0Isg0JHQntCg0JjQodCQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KbQktCV0KLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0JLQm9Ce0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cf0JDQktCb0J7QktCY0Isg0JTQntCR0KDQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KPQqNCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JXQnNCY0JsKK9Cf0JDQktCb0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cf0JDQktCb0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cf0JDQktCb0J7QktCY0Isg0JPQntCI0JrQngor0J/QkNCS0JvQntCS0JjQiyDQk9Ce0KDQmNCd0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JDQktCb0J7QktCY0Isg0JjQm9Ce0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQmNCb0J7QndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCY0KDQmNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCY0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JDQk9CeCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JDQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0IjQkNCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQiNCQ0J3QntCoCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CQCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0IjQntCQ0JrQmNCcCivQn9CQ0JLQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0IjQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cf0JDQktCb0J7QktCY0Isg0JrQntCS0JjQndCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0InQo9CR0JjQqNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQk9CU0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQkNCg0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQoNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQoNCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCQ0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QkNCS0JvQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JUKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JUKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCJ0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkCDQlNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCa0J4g0JTQmNCf0Jsg0J7QldCmCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0JrQngor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QkNCS0JvQntCS0JjQiyDQndCQ0JTQkCDQlNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JDQlNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JDQlNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JXQlNCV0InQmtCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JXQnNCQ0IrQkAor0J/QkNCS0JvQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCS0JvQntCS0JjQiyDQndCY0JrQntCb0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JjQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0J7QktCQ0JoKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QkNCS0JvQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JXQgtCQCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JXQoNCeCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JvQldCc0JXQndCa0JAKK9Cf0JDQktCb0J7QktCY0Ist0J/QntCf0J7QktCY0Isg0JfQntCg0JAg0JTQoCDQm9CV0JrQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCf0KDQldCU0KDQkNCTCivQn9CQ0JLQm9Ce0JLQmNCLINCf0KDQldCU0KDQkNCTCivQn9CQ0JLQm9Ce0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CeCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCe0IjQlQor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCY0J/QmyDQntCV0KYKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0IjQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCi0JrQngor0J/QkNCS0JvQntCS0JjQiyDQodCQ0JLQkAor0J/QkNCS0JvQntCS0JjQiyDQodCQ0JLQngor0J/QkNCS0JvQntCS0JjQiyDQodCY0JzQkAor0J/QkNCS0JvQntCS0JjQiyDQodCY0JzQldCe0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQmNCc0JXQntCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JjQndCY0KjQkAor0J/QkNCS0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQodCb0JDQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0J/QkNCS0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0J/QkNCS0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCc0JjQidCQCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCQ0J3QmNCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQldCS0JDQndCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0IjQldCf0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCi0J7QqNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCi0J7QnNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIg0JTQoAor0J/QkNCS0JvQntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQktCV0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQktCV0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQktCV0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQktCY0JTQkAor0J/QkNCS0JvQntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0JLQmNCU0J7QodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0J/QkNCS0JvQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0J/QkNCS0JvQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0J/QkNCS0JvQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQm9Ce0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQn9CQ0JLQm9Ce0JLQodCa0Jgg0KHQldCg0JPQldCICivQn9CQ0JLQntCo0JXQktCY0Isg0JDQndCa0JAKK9Cf0JDQktCe0KjQldCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QkNCX0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cf0JDQl9Cc0JDQiiDQiNCj0JvQmNCI0JDQndCQCivQn9CV0KfQkNCg0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQp9CYINCT0JXQl9CQCivQn9CV0KfQmCDQmNCo0KLQktCQ0J0KK9Cf0JXQp9CYINCc0JDQoNCY0IjQkAor0J/QldCn0JrQkNCYLdCa0J7QktCQ0Kcg0JDQndCQCivQn9CV0KfQmtCQ0Jgg0JzQkNCg0JPQmNCi0JAKK9Cf0JXQp9CS0JDQoNCQ0KYg0KHQotCQ0J3QntCI0JUKK9Cf0JXQqNCV0IrQkNCd0KHQmtCYINCY0JLQkNCdCivQn9CV0KjQldCK0JDQndCh0JrQmCDQmNCS0JDQnQor0J/QldCo0JXQitCQ0J3QodCa0Jgg0JrQkNCg0JvQngor0J/QldCo0JXQktCY0Isg0JHQntCT0JTQkNCdCivQn9CV0KjQldCS0KHQmtCYINCC0J7QmtCQCivQn9CV0KjQldCS0KHQmtCYINCi0J7QnNCVCivQn9CV0KjQldCS0KHQmtCYINCS0JvQkNCU0J4KK9Cf0JXQqNCY0Isg0JbQmNCS0JDQnQor0J/QldCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCo0JjQiyDQkNCd0ILQldCb0JrQngor0J/QldCo0JjQiyDQkdCj0JTQmNCc0JjQoAor0J/QldCo0JjQiyDQlNCV0KHQmNCc0JjQoAor0J/QldCo0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JXQqNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0KjQmNCLINCU0KDQkNCT0JDQnQor0J/QldCo0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QldCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CV0KjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQqNCY0Isg0JPQntCI0JrQngor0J/QldCo0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQn9CV0KjQmNCLINCY0JvQmNCI0JAKK9Cf0JXQqNCY0Isg0IjQntCg0JTQkNCdCivQn9CV0KjQmNCLINCI0J7QktCQ0J0KK9Cf0JXQqNCY0Isg0InQo9CR0JjQptCQCivQn9CV0KjQmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CV0KjQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQqNCY0Isg0JzQmNCb0JjQndCa0J4KK9Cf0JXQqNCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQqNCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QldCo0JjQiyDQn9CV0KLQkNCgCivQn9CV0KjQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CV0KjQmNCLINCg0JDQiNCa0J4KK9Cf0JXQqNCY0Isg0KDQo9CW0JAKK9Cf0JXQqNCY0Isg0KHQkNCS0JAKK9Cf0JXQqNCY0Isg0KHQotCQ0J3QntCI0JUKK9Cf0JXQqNCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Cf0JXQqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCo0JjQiyDQktCj0JrQkNCo0JjQnQor0J/QldCo0JjQmtCQ0J0g0KLQmNCl0J7QnNCY0KAKK9Cf0JXQqNCY0JrQkNCdINCS0KPQmgor0J/QldCo0JrQkCDQkNCd0JAKK9Cf0JXQqNCa0JDQnSDQlNCg0JDQk9CQ0J0KK9Cf0JXQqNCa0JDQnSDQktCV0KDQkAor0J/QldCo0JrQkNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QldCo0JrQkNCd0J7QkiDQn9CV0KDQodCY0JTQkAor0J/QldCo0JrQkNCd0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JXQqNCa0JDQndCe0JIg0KLQntCU0J7QoAor0J/QldCo0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0J/QldCo0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9CV0KjQotCQ0JvQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQn9CV0KjQotCV0KDQkNCmINCn0JXQlNCe0JzQmNCgCivQn9CV0KjQotCV0KDQkNCmINCc0JjQm9Ce0JzQmNCgCivQn9CV0KjQotCV0KDQkNCmINCc0JjQm9Cj0KLQmNCdCivQn9CV0KjQotCYINCI0J7QltCV0KQKK9Cf0JXQqNCj0KIg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cf0JXQqNCj0KIg0JHQntCo0JrQngor0J/QldCo0KPQoiDQkdCg0JDQndCa0J4KK9Cf0JXQqNCj0KIg0JTQo9Co0JDQnQor0J/QldCo0KPQoiDQlNCj0KjQkNCdCivQn9CV0KjQo9CiINCY0JvQmNCI0JAKK9Cf0JXQqNCj0KIg0JzQkNCg0JjQiNCQCivQn9CV0KjQo9CiINCc0JjQm9CQ0J0KK9Cf0JXQqNCj0KIg0JzQmNCb0JjQptCQCivQn9CV0KjQo9CiINCh0JvQkNCS0JrQkAor0J/QldCo0KPQoiDQodCc0JjQidCQCivQn9CV0KjQo9CiINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQi9CQ0J3QkNCmINCR0J7QodCY0InQmtCQCivQn9CV0IvQkNCd0JDQpiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JXQi9CQ0J3QkNCmINCI0J7QktCQ0J0KK9Cf0JXQi9CQ0J3QkNCmINCd0JjQmtCe0JvQkAor0J/QldCL0JDQndCQ0KYg0JLQldCh0J3QkAor0J/QldCL0JDQndCY0J0g0JTQo9Co0JDQnQor0J/QldCL0JDQndCY0J0g0InQo9CR0JjQqNCQINCU0JjQn9CbINCY0J3Qkwor0J/QldCL0JDQndCY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQn9CV0IvQkNCd0JjQnSDQntCc0JjQidCV0J0KK9Cf0JXQi9CQ0J3QmNCdLdCS0JXQoNCc0JXQl9Ce0JLQmNCLINCe0InQkAor0J/QldCL0JrQniDQlNCQ0J3QmNCb0J4KK9Cf0JXQi9Ca0J4g0JLQldCg0JAKK9Cf0JXQi9CeINCb0JDQl9CQ0KAKK9Cf0JXQi9CeINCb0KPQmtCQCivQn9CV0IvQniDQodCS0JXQotCe0JfQkNCgCivQn9CV0KYg0IjQo9Cb0JjQiNCVCivQn9CV0KbQkNCg0KHQmtCYINCb0JXQmtCh0JAKK9Cf0JXQptCVINCC0J7QoNCC0JUKK9Cf0JXQptCVINCC0J7QoNCC0JUKK9Cf0JXQptCVINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KbQlSDQkNCd0KLQntCdCivQn9CV0KbQlSDQmNCb0JXQqAor0J/QldCm0JUg0JfQntCb0KLQkNCdCivQn9CV0KbQldCJINCR0J7QltCeCivQn9CV0KbQldCJINCh0KLQldCS0JDQnQor0J/QldCm0JjQiyDQkNCm0JAKK9Cf0JXQptCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/QldCm0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QldCm0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQptCK0JjQmiDQkNCd0JAKK9Cf0JXQptCeINCc0JjQoNCh0JDQlAor0J/QldCm0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JXQlNCe0JLQmNCLINCg0JDQotCe0JzQmNCgCivQn9CV0JjQiy3QotCj0JrQo9CJ0JDQpiDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cf0JXQiNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QldCI0KfQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0J/QldCI0KfQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0J/QldCI0KfQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cf0JXQiNCn0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQn9CV0IjQp9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QldCI0KfQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CV0IjQp9CY0Isg0JTQo9CR0KDQkNCS0JrQkAor0J/QldCI0KfQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JXQiNCn0JjQiyDQmNCb0JjQiNCQCivQn9CV0IjQp9CY0Isg0JjQm9CY0IjQkAor0J/QldCI0KfQmNCLINCI0JDQodCc0JjQndCQCivQn9CV0IjQp9CY0Isg0IjQntCS0JDQnQor0J/QldCI0KfQmNCLINCI0J7QktCQ0J0KK9Cf0JXQiNCn0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQiNCn0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCI0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0IjQp9CY0Isg0JzQmNCb0JUKK9Cf0JXQiNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QldCI0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQiNCn0JjQiyDQnNCY0KLQkNCgCivQn9CV0IjQp9CY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0JXQiNCn0JjQiyDQndCe0JLQkNCaCivQn9CV0IjQp9CY0Isg0J/QldCi0JDQoAor0J/QldCI0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0J/QldCI0KfQmNCLINCg0KPQltCQCivQn9CV0IjQp9CY0Isg0KHQkNCS0JAKK9Cf0JXQiNCn0JjQiyDQodCQ0JLQkAor0J/QldCI0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J/QldCI0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQiNCn0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9CV0IjQp9CY0Isg0JfQntCg0JDQnQor0J/QldCI0JDQmiDQgtCe0KDQgtCVCivQn9CV0IjQkNCaINCC0KPQoNCQCivQn9CV0IjQkNCaINCR0KDQkNCd0JrQngor0J/QldCI0JDQmiDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0J/QldCI0JDQmiDQiNCV0JvQldCd0JAKK9Cf0JXQiNCQ0Jog0IjQntCS0JDQnQor0J/QldCI0JDQmiDQiNCe0JLQmNCm0JAKK9Cf0JXQiNCQ0Jog0JvQkNCX0JDQoAor0J/QldCI0JDQmiDQidCj0JHQmNCm0JAKK9Cf0JXQiNCQ0Jog0JzQmNCb0JDQnQor0J/QldCI0JDQmiDQnNCY0JvQmNCd0JrQkAor0J/QldCI0JDQmiDQnNCY0J7QlNCg0JDQkwor0J/QldCI0JDQmiDQnNCY0KDQiNCQ0J3QkAor0J/QldCI0JDQmiDQnNCe0IjQkAor0J/QldCI0JDQmiDQndCV0JLQldCd0JrQkAor0J/QldCI0JDQmiDQoNCQ0JTQntCS0JDQnQor0J/QldCI0JDQmiDQoNCQ0IjQmtCeCivQn9CV0IjQkNCaINCh0JDQktCQCivQn9CV0IjQkNCaINCh0JvQkNCS0JrQngor0J/QldCI0JDQmiDQotCg0JjQktCQCivQn9CV0IjQkNCaINCS0JXQoNCY0KbQkAor0J/QldCI0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQn9CV0IjQkNCa0JjQiyDQnNCQ0KDQmtCeCivQn9CV0IjQkNCa0J7QktCY0Isg0JbQkNCg0JrQngor0J/QldCI0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQiNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0IjQkNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCI0JDQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0IjQkNCa0J7QktCY0Isg0J3QkNCd0JTQntCgCivQn9CV0IjQkNCa0J7QktCY0Isg0J3QldCd0JDQlAor0J/QldCI0JDQmtCe0JLQmNCLINCf0JXQoNCY0KbQkAor0J/QldCI0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQiNCQ0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QldCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQiNCQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/QldCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCI0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCI0JDQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JXQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnSDQlNCgCivQn9CV0IjQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCI0JjQp9CY0Isg0JzQmNCb0JDQnQor0J/QldCI0JjQiyDQltCY0JLQkNCdCivQn9CV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQmNCLINCQ0J3QmNCm0JAKK9Cf0JXQiNCY0Isg0JDQndCi0J7QnQor0J/QldCI0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQn9CV0IjQmNCLINCR0J7QoNCY0JLQntCICivQn9CV0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQiNCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0IjQmNCLINCU0KDQkNCT0JDQnQor0J/QldCI0JjQiyDQlNCg0JDQk9CY0KjQkAor0J/QldCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QldCI0JjQiyDQlNCg0JDQk9CeCivQn9CV0IjQmNCLINCU0KDQkNCT0J4KK9Cf0JXQiNCY0Isg0JTQo9Co0JDQnQor0J/QldCI0JjQiyDQlNCj0KjQkNCdCivQn9CV0IjQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQiNCY0Isg0JPQkNCS0KDQkAor0J/QldCI0JjQiyDQmNCS0JDQnQor0J/QldCI0JjQiyDQmNCS0JDQnQor0J/QldCI0JjQiyDQiNCQ0IrQkAor0J/QldCI0JjQiyDQiNCe0JLQkNCdCivQn9CV0IjQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0IjQmNCLINCc0JDQoNCQCivQn9CV0IjQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CV0IjQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQiNCY0Isg0JzQmNCb0JDQnQor0J/QldCI0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0IjQmNCLINCc0JjQm9CY0KbQkAor0J/QldCI0JjQiyDQnNCY0JvQntCoCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KHQkNCSCivQn9CV0IjQmNCLINCd0JXQlNCV0InQmtCeCivQn9CV0IjQmNCLINCd0JjQmtCe0JvQkAor0J/QldCI0JjQiyDQndCY0JrQngor0J/QldCI0JjQiyDQndCe0JLQkNCaCivQn9CV0IjQmNCLINCe0KDQiNCV0J0KK9Cf0JXQiNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JXQiNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cf0JXQiNCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cf0JXQiNCY0Isg0KDQkNCI0JrQngor0J/QldCI0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0JXQiNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JXQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0IjQmNCLINCh0J7QpNCY0IjQkAor0J/QldCI0JjQiyDQodCi0JDQndCa0J4KK9Cf0JXQiNCY0Isg0KHQotCV0JLQkNCdCivQn9CV0IjQmNCLINCh0KLQmNCf0JDQnQor0J/QldCI0JjQiyDQktCV0KDQmNCm0JAKK9Cf0JXQiNCY0Isg0JLQm9CQ0JTQngor0J/QldCI0JjQnSDQgtCe0KDQgtCVCivQn9CV0IjQmNCdINCC0KPQoNCC0JjQndCQCivQn9CV0IjQmNCdINCQ0J3QgtCV0JvQmtCQCivQn9CV0IjQmNCdINCR0KDQkNCd0JjQnNCY0KAKK9Cf0JXQiNCY0J0g0JHQoNCQ0J3QmNCc0JjQoAor0J/QldCI0JjQnSDQkdCg0JDQndCY0JzQmNCgCivQn9CV0IjQmNCdINCU0JXQiNCQ0J0KK9Cf0JXQiNCY0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0IjQmNCdINCU0KPQqNCQ0J0g0JTQoAor0J/QldCI0JjQnSDQk9Ce0IjQmtCeCivQn9CV0IjQmNCdINCI0JXQm9CV0J3QkAor0J/QldCI0JjQnSDQiNCe0JLQkNCdCivQn9CV0IjQmNCdINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0J7QldCmCivQn9CV0IjQmNCdINCc0JDQoNCY0IjQkAor0J/QldCI0JjQnSDQnNCQ0KDQmNCi0JAKK9Cf0JXQiNCY0J0g0JzQmNCb0JjQktCe0IgKK9Cf0JXQiNCY0J0g0JzQmNCb0J7QqAor0J/QldCI0JjQnSDQnNCY0JvQntCg0JDQlAor0J/QldCI0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQn9CV0IjQmNCdINCc0JvQkNCU0JXQnQor0J/QldCI0JjQnSDQndCV0J3QkNCUCivQn9CV0IjQmNCdINCd0JjQmtCe0JvQkAor0J/QldCI0JjQnSDQndCY0JrQntCb0JAKK9Cf0JXQiNCY0J0g0J3QmNCa0J7Qm9CQCivQn9CV0IjQmNCdINCd0J7QktCQ0JoKK9Cf0JXQiNCY0J0g0J/QkNCS0JvQlQor0J/QldCI0JjQnSDQn9CV0KDQodCY0JTQkAor0J/QldCI0JjQnSDQn9Cb0JDQktCo0JAKK9Cf0JXQiNCY0J0g0KDQkNCU0JAKK9Cf0JXQiNCY0J0g0KDQkNCU0JAKK9Cf0JXQiNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0J/QldCI0JjQnSDQodCi0JXQktCQ0J0KK9Cf0JXQiNCY0J0g0KHQotCV0JLQkNCdCivQn9CV0IjQmNCdINCS0JDQodCQCivQn9CV0IjQmNCdINCS0JXQoNCY0KbQkAor0J/QldCI0JjQnSDQktCj0JrQntCh0JDQktCQCivQn9CV0IjQmNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQiNCY0J3QntCSINCJ0KPQkdCY0KbQkAor0J/QldCI0JjQndCe0JIg0JLQldCJ0JrQngor0J/QldCI0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCI0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCI0JrQntCS0JjQiyDQlNCQ0J3QmNCb0JrQkAor0J/QldCI0JrQntCS0JjQiyDQmNCR0J7QidCa0JAKK9Cf0JXQiNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JXQiNCa0J7QktCY0Isg0IjQkNCh0J3QkAor0J/QldCI0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0J/QldCI0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0J/QldCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQiNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0IjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCI0J7QktCY0Isg0ILQntCa0JAKK9Cf0JXQiNCe0JLQmNCLINCC0KPQmtCQ0J0KK9Cf0JXQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCI0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JXQiNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JXQiNCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cf0JXQiNCe0JLQmNCLINCR0J7QoNCa0JAKK9Cf0JXQiNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQn9CV0IjQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cf0JXQiNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QldCI0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQn9CV0IjQntCS0JjQiyDQlNCQ0JLQmNCUCivQn9CV0IjQntCS0JjQiyDQlNCV0IjQkNCdCivQn9CV0IjQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0J/QldCI0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0JXQiNCe0JLQmNCLINCJ0KPQkdCeCivQn9CV0IjQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0IjQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cf0JXQiNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/QldCI0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQn9CV0IjQntCS0JjQiyDQnNCY0JvQntCI0JrQkAor0J/QldCI0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQiNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CV0IjQntCS0JjQiyDQnNCe0JzQmNCgCivQn9CV0IjQntCS0JjQiyDQndCQ0JTQkAor0J/QldCI0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JXQiNCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0JXQiNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQiNCe0JLQmNCLINCh0JDQktCQCivQn9CV0IjQntCS0JjQiyDQodCb0JDQktCa0JAKK9Cf0JXQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQn9CV0IjQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0IjQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CV0IjQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0J/QldCI0J7QktCh0JrQmCDQmtCe0JvQlQor0J/QldCI0J7QktCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQn9CV0JrQkNCgINCU0JDQoNCa0J4KK9Cf0JXQmtCQ0KAg0IjQkNCd0J7QqAor0J/QldCa0JDQoCDQnNCY0JvQmtCQCivQn9CV0JrQkNCgINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0JXQmtCQ0KDQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QldCa0JDQoSDQkNCd0KLQlQor0J/QldCa0JXQpyDQnNCY0KLQkAor0J/QldCa0JXQlyDQkdCg0JDQndCa0J4KK9Cf0JXQmtCV0Jcg0IjQntCS0JDQnQor0J/QldCa0JXQlyDQiNCe0JLQkNCdCivQn9CV0JrQldCXINCc0JDQoNCY0KbQkAor0J/QldCa0JXQlyDQnNCY0JvQntCg0JDQlAor0J/QldCa0JXQlyDQodCi0JDQndCQCivQn9CV0JrQldCXINCX0J7QoNCQCivQn9CV0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQn9CV0JrQmNCLINCT0J7QoNCQ0J0KK9Cf0JXQmtCY0Isg0JrQoNCh0KLQngor0J/QldCa0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QldCa0JjQiyDQnNCY0JvQkNCdCivQn9CV0JrQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQmtCY0Isg0JzQmNCb0J7QqAor0J/QldCa0JjQiyDQnNCY0KDQmtCeCivQn9CV0JrQmNCLINCh0KLQldCS0JDQnQor0J/QldCa0J7QktCY0Isg0JbQldCJ0JrQngor0J/QldCa0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCa0J7QktCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQn9CV0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQn9CV0JrQntCS0JjQiyDQnNCY0KLQoNCj0KjQkAor0J/QldCa0J7QktCY0Ist0J/QkNCg0JvQkNCLINCh0JzQmNCJ0JAg0JTQoAor0J/QldCa0J7QktCY0Isg0J/QkNCS0JAKK9Cf0JXQmtCe0JLQmNCLINCS0JXQoNCQCivQn9CV0JrQntCS0JjQiyDQktCY0JTQkAor0J/QldCa0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cf0JXQmtCj0KDQkNCgINCa0J7QoNCd0JXQmwor0J/QldCa0KPQoNCQ0KAg0KDQntCc0JDQnQor0J/QldCb0JDQk9CY0Isg0J3QkNCU0JAKK9Cf0JXQm9CQ0JPQmNCLINCh0KDQgtCQ0J0KK9Cf0JXQm9CVINCk0JXQoNCV0J3Qpgor0J/QldCb0JUg0JzQkNCg0JjQiNCQCivQn9CV0JvQlSDQl9Ce0JvQotCQ0J0KK9Cf0JXQm9CV0JPQoNCY0J0g0KHQotCI0JXQn9CQ0J0KK9Cf0JXQm9CV0JPQoNCY0J0g0JLQm9CQ0JTQngor0J/QldCb0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0JvQpdCVINCk0KDQkNCK0JAg0JTQoAor0J/QldCJ0KXQkCDQgtCj0KDQkAor0J/QldCJ0KXQkCDQodCQ0IrQkAor0J/QldCJ0KXQkCDQl9CS0J7QndCa0J4KK9Cf0JXQm9Ce0JfQkCDQlNCj0KjQkNCdCivQn9CV0JvQntCX0JAg0J3QkNCU0JAKK9Cf0JXQm9CS0JAg0IjQntCh0JjQnwor0J/QldCb0JLQkCDQiNCe0JLQkNCdCivQn9CV0JvQktCQINCX0J7Qm9Ci0JDQnQor0J/QldCb0JLQkNCYLdCX0J7QoNCY0Isg0JXQlNCY0KIKK9Cf0JXQnNCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0JzQkNCmINCb0JDQl9CQ0KAKK9Cf0JXQndCQINCc0JDQoNCY0J3QmtCeCivQn9CV0J3QkCDQnNCY0JvQkNCdCivQn9CV0J3QkCDQnNCY0J7QlNCg0JDQkwor0J/QldCd0JAg0KDQkNCU0JjQktCe0IgKK9Cf0JXQndCQINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQndCQ0KYg0KHQotCQ0JrQmNCm0JAKK9Cf0JXQndCQ0JLQmNCdINCS0JXQm9CY0JzQmNCgCivQn9CV0J3QpiDQlNCe0JHQoNCY0JvQkAor0J/QldCd0KYg0JjQoNCV0J3QkAor0J/QldCd0KbQkCDQodCb0JDQktCa0J4KK9Cf0JXQndCP0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQndCP0JjQiyDQiNCV0KDQntCh0JjQnNCQCivQn9CV0J3QldCX0JjQiyDQlNCj0KjQkNCdCivQn9CV0J3QldCX0JjQiyDQndCV0J3QkNCUCivQn9CV0J3QldCX0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0J3QldCX0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JXQndCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JXQndCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Cf0JXQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QldCd0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JXQndCY0Isg0JzQmNCb0JXQktCQCivQn9CV0J3QmNCLINCc0JjQm9CY0KbQkAor0J/QldCd0JjQiyDQn9CQ0JLQm9CVCivQn9CV0J3QmNCLINCh0JvQkNCS0JrQngor0J/QldCd0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCK0JDQqNCa0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0J/QldCK0JjQnSDQltCY0JLQkAor0J/QldCK0JjQnSDQodCb0JDQktCa0J4KK9Cf0JXQndCe0JIg0JXQnNCY0JsKK9Cf0JXQndCe0JIg0InQo9CR0JjQqNCQCivQn9CV0J3QntCSINCc0JDQoNCa0J4KK9Cf0JXQndCX0JXQqCDQgtCe0KDQgtCVCivQn9CV0J3Ql9CV0Kgg0KTQldCg0JXQndCmCivQn9CV0J3Ql9CV0Kgg0KTQldCg0JXQndCmCivQn9CV0J3Ql9CV0Kgg0JzQmNCl0JDQiQor0J/QldCd0JfQldCoINCc0JjQpdCQ0IkKK9Cf0JXQndCX0JXQqCDQotCY0JHQntCgCivQn9CV0J/QmNCLINCb0JDQl9CeCivQn9CV0J/QmNCLINCc0JjQm9CQ0J0KK9Cf0JXQn9CY0Isg0JzQmNCb0JUKK9Cf0JXQn9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQn9CY0Isg0JzQmNCg0JrQngor0J/QldCf0JvQmNCd0JDQpiDQotCe0JzQkAor0J/QldCg0KfQmCDQkNCT0J3QldCX0JAKK9Cf0JXQoNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQoNCoINCa0KHQldCd0JjQiNCQCivQn9CV0KDQqNCQ0Igg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQoNCo0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JXQoNCo0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQn9CV0KDQgtCV0ILQkNCIINCR0JDQqNCa0JjQnAor0J/QldCg0ILQo9CdINCX0JLQntCd0JrQngor0J/QldCg0JDQiyDQkdCg0JDQndCa0J4KK9Cf0JXQoNCQ0Isg0InQo9Cf0JrQngor0J/QldCg0JDQl9CY0Isg0KHQkNCS0JAKK9Cf0JXQoNCQ0JfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQoNCmINCR0KDQkNCd0JrQkAor0J/QldCg0KYg0JXQm9CQCivQn9CV0KDQpiDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KDQptCVINCb0KPQmtCQCivQn9CV0KDQlNCQ0J0g0KHQotCQ0J3QmNCh0JvQkNCSCivQn9CV0KDQldCoINCl0JXQoNCc0JjQndCQCivQn9CV0KDQldCW0JAg0J3QmNCa0J7Qm9CQCivQn9CV0KDQldCT0Jgg0JPQldCX0JAKK9Cf0JXQoNCV0JPQmCDQntCh0JrQkNCgCivQn9CV0KDQldCl0JjQndCQ0KYg0JjQktCQ0J0KK9Cf0JXQoNCV0J3Qp9CV0JLQmNCLINCS0JDQodCeCivQn9CV0KDQldCf0JDQotCY0Isg0J/QmNCg0J7QqAor0J/QldCg0JXQn9CQ0KLQmNCLINCh0KLQldCS0JDQnQor0J/QldCg0JXQo9Cb0JAg0JHQntCT0JTQkNCdCivQn9CV0KDQk9CQ0Jsg0JzQmNCg0J7QodCb0JDQkiDQlNCgINCY0J3Qkwor0J/QldCg0JPQlSDQldCh0KLQldCgCivQn9CV0KDQk9CVINCc0JDQoNCQCivQn9CV0KDQk9CVINCS0JjQmtCi0J7QoNCY0IjQkAor0J/QldCg0JjQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0JjQp9CV0JLQmNCLINCg0JDQiNCa0J4KK9Cf0JXQoNCY0KfQmNCdINCW0JjQktCQ0J0KK9Cf0JXQoNCY0KfQmNCdINCc0JjQm9CQ0J3QmtCQCivQn9CV0KDQmNCn0JjQnSDQnNCY0JvQldCd0JrQngor0J/QldCg0JjQp9CY0J0g0KDQkNCi0JrQngor0J/QldCg0JjQp9CY0J0g0JLQm9CQ0JTQkAor0J/QldCg0JjQqNCQINCI0JDQmtCe0JIKK9Cf0JXQoNCY0KjQkCDQnNCY0KDQntCh0JvQkNCSCivQn9CV0KDQmNCo0JjQiyDQp9CV0JTQntCc0JjQoAor0J/QldCg0JjQqNCY0Isg0JbQmNCS0J7QlNCQ0KDQmtCQCivQn9CV0KDQmNCo0JjQiyDQgtCe0KDQgtCVCivQn9CV0KDQmNCo0JjQiyDQgtCe0KDQgtCVCivQn9CV0KDQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCg0JjQqNCY0Isg0JDQndCY0KbQkAor0J/QldCg0JjQqNCY0Isg0JHQm9CQ0JbQngor0J/QldCg0JjQqNCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0JXQoNCY0KjQmNCLINCR0J7QkdCQ0J0KK9Cf0JXQoNCY0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JXQoNCY0KjQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0JjQqNCY0Isg0JTQkNCd0JjQptCQCivQn9CV0KDQmNCo0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQn9CV0KDQmNCo0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QldCg0JjQqNCY0Isg0JjQoNCV0J3QkAor0J/QldCg0JjQqNCY0Isg0JrQkNCi0JjQptCQCivQn9CV0KDQmNCo0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQCivQn9CV0KDQmNCo0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCg0JjQqNCY0Isg0JzQkNCd0KbQmNCa0JAKK9Cf0JXQoNCY0KjQmNCLINCc0JDQoNCQCivQn9CV0KDQmNCo0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QldCg0JjQqNCY0Isg0JzQmNCb0JDQnQor0J/QldCg0JjQqNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JXQoNCY0KjQmNCLINCc0JjQm9CY0J3QmtCeCivQn9CV0KDQmNCo0JjQiyDQnNCY0InQkAor0J/QldCg0JjQqNCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQoNCY0KjQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9CV0KDQmNCo0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J/QldCg0JjQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQoNCY0KjQmNCLINCc0JjQoNCQCivQn9CV0KDQmNCo0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQoNCY0KjQmNCLINCg0JDQlNCVCivQn9CV0KDQmNCo0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JXQoNCY0KjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JXQoNCY0KjQmNCLINCg0JDQndCa0J4KK9Cf0JXQoNCY0KjQmNCLINCh0KLQkNCd0JrQngor0J/QldCg0JjQqNCY0Isg0KHQotCV0JLQngor0J/QldCg0JjQqNCY0Isg0KHQotCe0IjQkNCdCivQn9CV0KDQmNCo0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CV0KDQmNCo0JjQiyDQotCe0JTQntCgCivQn9CV0KDQmNCo0JjQiyDQo9CT0InQldCo0JAKK9Cf0JXQoNCY0KjQmNCLINCS0JDQodCeCivQn9CV0KDQmNCo0JjQiyDQktCQ0KHQngor0J/QldCg0JjQiyDQltCQ0KDQmtCeCivQn9CV0KDQmNCLINCW0JjQktCa0JAKK9Cf0JXQoNCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cf0JXQoNCY0Isg0ILQntCg0ILQlQor0J/QldCg0JjQiyDQgtCj0KDQmNCm0JAKK9Cf0JXQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQoNCY0Isg0JDQndCQCivQn9CV0KDQmNCLINCR0JjQodCV0KDQmtCQCivQn9CV0KDQmNCLINCR0J7QltCY0JTQkNCgCivQn9CV0KDQmNCLINCR0J7QltCY0JTQkNCgCivQn9CV0KDQmNCLINCR0J7QoNCY0KEKK9Cf0JXQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCg0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQoNCY0Isg0KbQktCY0IjQldCi0JjQnQor0J/QldCg0JjQiyDQlNCe0JHQoNCY0JvQkAor0J/QldCg0JjQiyDQlNCg0JDQk9CQ0J3QkAor0J/QldCg0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QldCg0JjQiyDQlNCj0KjQkNCdCivQn9CV0KDQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQoNCY0Isg0JPQntCI0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQoNCY0Isg0JPQntCg0JDQnQor0J/QldCg0JjQiyDQmNCS0JDQnQor0J/QldCg0JjQiyDQiNCQ0J3QmtCeCivQn9CV0KDQmNCLINCI0JXQm9Ca0JAKK9Cf0JXQoNCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0JXQoNCY0Isg0IjQntCS0JDQnQor0J/QldCg0JjQiyDQmtCh0JXQndCY0IjQkAor0J/QldCg0JjQiyDQm9CQ0JfQkAor0J/QldCg0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JXQoNCY0Isg0InQo9CR0JjQptCQCivQn9CV0KDQmNCLINCJ0KPQkdCY0J3QmtCQCivQn9CV0KDQmNCLINCJ0KPQkdCY0J3QmtCeCivQn9CV0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0KDQmNCLINCc0JDQoNCQCivQn9CV0KDQmNCLINCc0JDQoNCY0IjQkAor0J/QldCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JXQoNCY0Isg0JzQkNCg0JjQiNCQCivQn9CV0KDQmNCLINCc0JDQoNCY0J3QmtCeCivQn9CV0KDQmNCLINCc0JDQoNCa0J4KK9Cf0JXQoNCY0Isg0JzQmNCl0JAKK9Cf0JXQoNCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0JXQoNCY0Isg0JzQmNCb0JDQnQor0J/QldCg0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCg0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JXQoNCY0Isg0JzQmNCb0JrQmNCm0JAKK9Cf0JXQoNCY0Isg0JzQmNCb0J7QqAor0J/QldCg0JjQiyDQnNCY0JvQntCoCivQn9CV0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0KDQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KDQmNCLINCc0JjQotCQ0KAKK9Cf0JXQoNCY0Isg0J3QkNCi0JDQqNCQCivQn9CV0KDQmNCLLdCd0JXQqNCY0Isg0KbQntCa0JAKK9Cf0JXQoNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0KDQmNCLINCd0JjQmtCe0JvQkAor0J/QldCg0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQoNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0KDQmNCLINCf0JDQktCb0JUKK9Cf0JXQoNCY0Isg0J/QldCi0JDQoAor0J/QldCg0JjQiyDQoNCQ0KjQkAor0J/QldCg0JjQiyDQoNCQ0JTQlQor0J/QldCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCg0JjQiyDQoNCQ0JTQngor0J/QldCg0JjQiyDQoNCQ0IjQmtCeCivQn9CV0KDQmNCLINCg0J7QlNCe0InQo9CRCivQn9CV0KDQmNCLINCg0KPQltCY0KbQkAor0J/QldCg0JjQiyDQodCQ0JLQkAor0J/QldCg0JjQiyDQodCQ0JLQkAor0J/QldCg0JjQiyDQodCb0JDQktCY0KbQkAor0J/QldCg0JjQiyDQodCb0JDQktCa0J4KK9Cf0JXQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KDQmNCLINCh0JzQmNCJ0JAKK9Cf0JXQoNCY0Isg0KHQotCQ0J3QmtCQCivQn9CV0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQoNCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QldCg0JjQiyDQktCQ0KHQkAor0J/QldCg0JjQiyDQktCY0J3QmtCQCivQn9CV0KDQmNCLINCS0JvQkNCi0JrQngor0J/QldCg0JjQiyDQl9CU0JXQndCa0JAKK9Cf0JXQoNCY0Isg0JfQntCg0JDQnQor0J/QldCg0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KDQmNCLINCX0J7QoNCQCivQn9CV0KDQmNCm0JAg0JDQndCi0JUKK9Cf0JXQoNCY0KbQkCDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0KDQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCg0JjQnSDQlNCg0JDQk9CY0KjQkAor0J/QldCg0JjQnSDQnNCY0JvQmNCd0JrQngor0J/QldCg0JjQnSDQnNCY0JvQntCg0JDQlAor0J/QldCg0JjQnSDQoNCQ0JTQmNCo0JAKK9Cf0JXQoNCY0J0g0KHQldCa0KPQm9CQCivQn9CV0KDQmNCdINCX0J7QoNCQCivQn9CV0KDQmNCd0JDQpiDQoNCQ0JTQntCS0JDQnQor0J/QldCg0JjQndCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Cf0JXQoNCY0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQoNCY0J3QntCS0JjQiyDQndCQ0JTQkAor0J/QldCg0JjQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQn9CV0KDQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KDQmNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQn9CV0KDQmNCXINCh0KLQldCS0J4KK9Cf0JXQoNCa0J7QkiDQoNCQ0JTQmNCd0JrQkAor0J/QldCg0JrQntCS0JDQpiDQnNCQ0KDQmNCI0JAKK9Cf0JXQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0J/QldCg0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQoNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CV0KDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCg0JrQntCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0J/QldCg0JrQntCS0JjQiyDQiNCV0JvQmtCQCivQn9CV0KDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KDQmtCe0JLQmNCLINCg0JDQlNCe0JzQkNCdINCc0KAKK9Cf0JXQoNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KDQmtCe0JLQmNCLINCi0JDQlNCY0IjQkAor0J/QldCg0JrQntCS0JjQiyDQotCe0JzQngor0J/QldCg0JrQntCS0KHQmtCYINCC0J7QoNCC0JUKK9Cf0JXQoNCa0J7QktCh0JrQmCDQkNCd0ILQldCb0JrQngor0J/QldCg0JrQo9Cn0JjQnSDQgtCe0KDQgtCVCivQn9CV0KDQmtCj0KfQmNCdINCC0KPQm9CY0J3QmtCQCivQn9CV0KDQmtCj0KfQmNCdINCU0KPQqNCQ0J0KK9Cf0JXQoNCa0KPQp9CY0J0g0JPQntCg0JTQkNCd0JAKK9Cf0JXQoNCa0KPQp9CY0J0g0JrQkNCi0JjQptCQCivQn9CV0KDQmtCj0KfQmNCdINCd0JjQmtCe0JvQkAor0J/QldCg0JrQo9Cn0JjQnSDQoNCQ0JTQmNCS0J7QiCDQlNCgCivQn9CV0KDQm9CQ0JrQmCDQm9CQ0IjQntCoCivQn9CV0KDQm9CY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KDQm9CY0J3QkNCmINCh0JjQnNCV0KPQnQor0J/QldCg0IrQkNCaINCd0JDQotCQ0JvQmNCI0JAKK9Cf0JXQoNCK0JDQmiDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CV0KDQitCQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JXQoNCe0KjQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Cf0JXQoNCe0KjQldCS0JjQiyDQodCi0JDQndCa0JAKK9Cf0JXQoNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JXQoNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQoNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCg0J7QktCQ0J3QntCS0JjQiyDQiNCQ0JPQntCU0JAKK9Cf0JXQoNCe0JLQmNCLINCW0JDQndCa0JAKK9Cf0JXQoNCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQn9CV0KDQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cf0JXQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0J7QktCY0Isg0JHQoNCQ0KLQmNCc0JjQoAor0J/QldCg0J7QktCY0Isg0JTQoNCQ0JPQngor0J/QldCg0J7QktCY0Isg0JPQkNCR0KDQmNCV0JvQkAor0J/QldCg0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQn9CV0KDQntCS0JjQiyDQiNCV0JvQkAor0J/QldCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCg0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/QldCg0J7QktCY0Isg0JzQkNCg0JrQngor0J/QldCg0J7QktCY0Isg0JzQmNCb0JXQndCa0J4g0JTQoAor0J/QldCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQoNCe0JLQmNCLINCc0JvQkNCC0JXQnQor0J/QldCg0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cf0JXQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QldCg0J7QktCY0Isg0KDQkNCU0JDQqNCY0J0KK9Cf0JXQoNCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCg0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9CV0KDQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQn9CV0KDQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0J/QldCg0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQn9CV0KDQotCY0Isg0JfQkNCa0JDQoNCY0JDQqAor0J/QldCg0KLQntCiINCI0JXQm9CV0J3QkAor0J/QldCg0KPQndCY0KfQmNCLINCU0J7QkdCg0JjQm9CQCivQn9CV0KDQo9Cd0JjQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQoNCj0J3QmNCn0JjQiyDQoNCQ0JTQkNCdCivQn9CV0KDQo9Cd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KDQo9Cd0J7QktCY0Isg0J/QkNCd0KLQngor0J/QldCg0KPQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQn9CV0KDQktCQ0Jcg0JbQmNCS0JrQkAor0J/QldCg0JLQkNCXINCU0KDQkNCT0JjQitCQINCU0KAg0J/QoNCe0KQKK9Cf0JXQodCY0KDQkNCmINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQodCY0KDQkNCmINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JXQodCY0KDQkNCmINCf0JXQotCQ0KAKK9Cf0JXQodCY0KDQkNCmINCh0KLQldCS0JDQnQor0J/QldCh0JvQkNCLINCI0J7QktCQ0J0KK9Cf0JXQodCi0JDQm9CY0Isg0IjQntCh0JjQnwor0J/QldCh0KLQldCb0JXQmiDQidCj0JHQmNCo0JAKK9Cf0JXQodCi0JXQm9CV0Jog0InQo9CR0JjQqNCQCivQn9CV0KLQkNCa0J7QkiDQltCY0JLQmtCeCivQn9CV0KLQkNCa0J7QkiDQiNCj0JvQmtCQCivQn9CV0KLQkNCa0J7QkiDQnNCY0JvQldCd0JrQngor0J/QldCi0JDQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0J/QldCi0JDQmtCe0JIg0KDQkNCd0JrQkAor0J/QldCi0JDQmtCe0JIg0KHQkNCS0JAKK9Cf0JXQotCQ0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0J/QldCi0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0KLQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0JDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QldCi0JDQmtCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0J/QldCi0JDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KLQkNCa0J7QktCY0Isg0KDQkNCI0JrQngor0J/QldCi0JDQmtCe0JLQmNCLINCh0JDQktCQCivQn9CV0KLQlSDQgtCj0KDQkAor0J/QldCi0JUg0ILQo9Cg0JAKK9Cf0JXQotCVINCU0KPQqNCQ0J3QmtCQCivQn9CV0KLQlSDQpNCV0KDQldCd0KYKK9Cf0JXQotCVINCk0JXQoNCV0J3Qpgor0J/QldCi0JUg0KTQoNCQ0IrQkAor0J/QldCi0JUg0JjQqNCi0JLQkNCdCivQn9CV0KLQlSDQmNCo0KLQktCQ0J0KK9Cf0JXQotCVINCY0KjQotCS0JDQnQor0J/QldCi0JUg0JrQkNCg0J7QiQor0J/QldCi0JUg0J/QldCi0JDQoAor0J/QldCi0JUg0KHQotCV0J/QkNCdCivQn9CV0KLQlSDQodCi0JXQktCQ0J0KK9Cf0JXQotCV0Igg0KDQkNCi0JrQngor0J/QldCi0JXQmiDQlNCQ0JzQmNCgCivQn9CV0KLQldCb0JjQnSDQldCb0JjQl9CQ0JHQldCi0JAKK9Cf0JXQotCV0IrQmCDQiNCe0KHQmNCfINCU0KAKK9Cf0JXQotCV0IrQmCDQodCi0JXQktCQ0J0KK9Cf0JXQotCV0KAg0KTQoNCQ0J3QptCY0KjQmtCQCivQn9CV0KLQldCgINCI0J7QltCV0KQKK9Cf0JXQotCV0KAg0IjQntCb0JDQnQor0J/QldCi0JXQoCDQiNCe0JLQkNCdCivQn9CV0KLQldCgINCc0JjQpdCQ0IkKK9Cf0JXQotCV0KAg0JLQmNCb0JzQntCoCivQn9CV0KLQldCg0JrQkCDQgtCe0KDQgtCVCivQn9CV0KLQldCg0JrQkCDQiNCV0JvQldCd0JAKK9Cf0JXQotCV0KDQmtCQINCI0J7QodCY0J8KK9Cf0JXQotCV0KDQmtCQINCc0JDQoNCY0IjQkAor0J/QldCi0JXQoNCa0JAg0KHQotCV0JLQkNCdCivQn9CV0KLQldCg0JrQkCDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JXQotCV0KDQm9CY0Isg0JzQmNCb0JDQnQor0J/QldCi0JXQoNCd0JXQmyDQm9CY0JTQmNCI0JAKK9Cf0JXQotCY0Isg0JzQmNCb0JDQnQor0J/QldCi0JjQiyDQl9Ce0KDQmtCQCivQn9CV0KLQmNCI0JXQktCY0Isg0IjQntCS0JDQnSDQnNCgCivQn9CV0KLQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0J/QldCi0JjQnSDQndCY0JrQntCb0JAg0J/QoNCe0KTQldCh0J7QoAor0J/QldCi0JrQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCi0JrQntCSINCW0JDQoNCVCivQn9CV0KLQmtCe0JIg0ILQntCg0ILQlQor0J/QldCi0JrQntCSINCC0KPQoNCQCivQn9CV0KLQmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0J/QldCi0JrQntCSINCY0JLQkNCdCivQn9CV0KLQmtCe0JIg0JzQmNCb0JDQnQor0J/QldCi0JrQntCSINCd0JDQlNCV0JbQlNCQCivQn9CV0KLQmtCe0JIg0KHQkNCS0JAKK9Cf0JXQotCa0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JXQotCa0J7QkiDQodCi0JXQktCQCivQn9CV0KLQmtCe0JLQmNCLINCn0JXQlNCQCivQn9CV0KLQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JbQldCJ0JrQngor0J/QldCi0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0J/QldCi0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0J/QldCi0JrQntCS0JjQiyDQgtCe0KDQgtCVINCU0KAKK9Cf0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0JrQntCS0JjQiyDQgtCj0JvQkAor0J/QldCi0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQn9CV0KLQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQkNCd0KLQo9CdCivQn9CV0KLQmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCR0J7QoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQmtCe0JLQmNCLINCm0JLQldCi0JrQngor0J/QldCi0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J/QldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQn9CV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQn9CV0KLQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQotCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0JXQotCa0J7QktCY0Isg0JPQktCe0JfQlNCV0J0KK9Cf0JXQotCa0J7QktCY0Isg0JjQqNCi0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCa0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCi0JrQntCS0JjQiyDQmNCJ0JAKK9Cf0JXQotCa0J7QktCY0Isg0JjQoNCV0J3QkAor0J/QldCi0JrQntCS0JjQiyDQiNCQ0JPQntCU0JAKK9Cf0JXQotCa0J7QktCY0Isg0IjQntCh0JjQnwor0J/QldCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCI0J7QktCeCivQn9CV0KLQmtCe0JLQmNCLINCa0JDQm9Cc0JDQnQor0J/QldCi0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9CV0KLQmtCe0JLQmNCLINCa0J7QodCi0JDQlNCY0J0KK9Cf0JXQotCa0J7QktCY0Isg0JrQoNCh0KLQkAor0J/QldCi0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQotCa0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QldCi0JrQntCS0JjQiyDQm9CQ0JfQngor0J/QldCi0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQngor0J/QldCi0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCi0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J3QmtCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCg0JjQmtCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCg0JrQngor0J/QldCi0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QldCi0JrQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0JrQntCS0JjQiyDQndCY0JrQngor0J/QldCi0JrQntCS0JjQiyDQntCR0KDQkNCUCivQn9CV0KLQmtCe0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQn9CV0KLQmtCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0JXQotCa0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QldCi0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CV0KLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCf0JXQotCg0JAKK9Cf0JXQotCa0J7QktCY0Isg0J/Qo9Cd0JjQqNCQCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCVCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQotCa0JAKK9Cf0JXQotCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0JrQntCS0JjQiyDQodCg0ILQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCh0KLQkNCd0JAKK9Cf0JXQotCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cf0JXQotCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0JXQotCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QldCi0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cf0JXQotCa0J7QktCY0Isg0JLQldCg0JAKK9Cf0JXQotCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQn9CV0KLQmtCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQotCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0J/QldCi0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JXQotCa0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCX0JvQkNCi0J7QnNCY0KAKK9Cf0JXQotCa0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0JrQntCS0KHQmtCQINCh0JvQkNCS0JjQptCQCivQn9CV0KLQmtCe0JLQodCa0Jgg0JDQptCQCivQn9CV0KLQmtCe0JLQodCa0Jgg0JPQntCg0JDQnQor0J/QldCi0JrQntCS0KHQmtCYINCc0JjQm9Ca0JAKK9Cf0JXQotCa0J7QktCh0JrQmCDQodCi0JDQndCa0J4KK9Cf0JXQotCb0JXQmiDQiNCe0JLQkNCdCivQn9CV0KLQidCQ0J3QodCa0Jgg0JHQoNCQ0J3QmtCeCivQn9CV0KLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CV0KLQidCQ0J3QodCa0Jgg0JjQoNCV0J3QkAor0J/QldCi0J4g0IjQntCW0JXQpAor0J/QldCi0J7QqNCV0JLQmNCLINCc0JjQm9CVCivQn9CV0KLQntCo0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQntCo0JXQktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQntCo0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9CV0KLQntCl0JvQldCRINCf0JDQktCY0KbQkAor0J/QldCi0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCe0JLQmNCLINCC0KPQoNCeCivQn9CV0KLQntCS0JjQiyDQk9Ce0IjQmtCeCivQn9CV0KLQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cf0JXQotCe0JLQmNCLINCh0JvQkNCS0JrQngor0J/QldCi0KDQkNCo0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQkNCo0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0JDQqNCa0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9Cf0JXQotCg0JDQmtCe0JLQmNCLLdCT0KDQkNCe0JLQkNCmINCa0J7QodCQ0J3QkAor0J/QldCi0KDQkNCd0J7QktCY0Isg0IjQntCh0JjQnwor0J/QldCi0KDQkNCd0J7QktCY0Isg0JzQkNCT0JTQkAor0J/QldCi0KDQkNCd0J7QktCY0Isg0JfQktCe0J3QmtCeCivQn9CV0KLQoNCV0Kgg0KTQoNCQ0IrQngor0J/QldCi0KDQldCoINCg0JDQlNCVCivQn9CV0KLQoNCV0Iog0KHQotCV0JLQkNCdCivQn9CV0KLQoNCV0JLQodCa0JAg0JfQntCg0JDQndCa0JAKK9Cf0JXQotCg0JXQktCh0JrQmCDQkdCe0KDQmNChCivQn9CV0KLQoNCV0JLQodCa0Jgg0JjQm9Ce0J3QkAor0J/QldCi0KDQldCS0KHQmtCYINCa0JjQoNCeCivQn9CV0KLQoNCYINCc0JjQm9CV0J3QkAor0J/QldCi0KDQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JXQotCg0JjQp9CV0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCY0KfQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0KDQmNCn0JjQiyDQlNCQ0J3QlQor0J/QldCi0KDQmNCn0JjQiyDQiNCe0JLQngor0J/QldCi0KDQmNCn0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCY0KfQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCY0KfQmNCLINCi0JDQotCI0JDQndCQCivQn9CV0KLQoNCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCY0Isg0JDQndCQ0KHQotCQ0JfQmNCI0JAKK9Cf0JXQotCg0JjQiyDQkdCe0KjQmtCeCivQn9CV0KLQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0JXQotCg0JjQiyDQkdCg0JDQndCa0J4g0JTQoAor0J/QldCi0KDQmNCLINCU0JDQndCY0JvQngor0J/QldCi0KDQmNCLINCU0JXQodCQ0J3QmtCQINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQmNCLINCU0JXQodCY0JzQmNCgCivQn9CV0KLQoNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCi0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCi0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CV0KLQoNCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCg0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCY0Isg0JvQkNCX0JDQoCDQnNCgCivQn9CV0KLQoNCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCY0Isg0InQo9CR0JjQptCQCivQn9CV0KLQoNCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQmNCLINCc0JjQm9CV0KLQkAor0J/QldCi0KDQmNCLINCc0JjQm9CY0JLQntCICivQn9CV0KLQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCg0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQmNCLINCe0JvQk9CQCivQn9CV0KLQoNCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J/QldCi0KDQmNCLINCg0JDQlNCY0KHQkNCSCivQn9CV0KLQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cf0JXQotCg0JjQiyDQodCb0JDQktCY0KbQkAor0J/QldCi0KDQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQn9CV0KLQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0KDQmNCLINCh0J7QpNCY0IjQkAor0J/QldCi0KDQmNCLINCh0J7QpNCY0IjQkAor0J/QldCi0KDQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cf0JXQotCg0JjQiyDQktCj0JvQldCi0JAKK9Cf0JXQotCg0JjQmiDQqNCQ0J3QlNCe0KAKK9Cf0JXQotCg0JjQmiDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQotCg0JjQmiDQldCb0JjQl9CQ0JHQldCi0JAKK9Cf0JXQotCg0JjQmiDQmNCo0KLQktCQ0J0KK9Cf0JXQotCg0JjQmiDQktCY0J3QptCVCivQn9CV0KLQoNCY0Jog0JfQntCb0KLQkNCdCivQn9CV0KLQoNCY0JrQkCDQidCj0JHQmNCo0JAKK9Cf0JXQotCg0JjQmtCQINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCY0JrQntCK0JAg0JrQodCV0J3QmNCI0JAKK9Cf0JXQotCg0JjQmtCe0IrQkCDQm9CQ0JfQkNCgCivQn9CV0KLQoNCY0J0g0JTQo9Co0JDQnQor0J/QldCi0KDQmNCdINCa0JDQotCY0KbQkAor0J/QldCi0KDQmNCdINCc0JDQiNCQCivQn9CV0KLQoNCY0J0g0JzQmNCb0JDQndCa0JAKK9Cf0JXQotCg0JjQnSDQnNCY0JvQkNCd0JrQkAor0J/QldCi0KDQmNCdINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0KDQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQotCg0JjQndCY0Isg0JzQmNCg0JrQngor0J/QldCi0KDQmNCd0J7QktCY0Isg0JzQmNCb0JjQndCQCivQn9CV0KLQoNCY0J3QntCS0JjQiyDQodCi0JXQktCQCivQn9CV0KLQoNCeINCQ0J3QotCVCivQn9CV0KLQoNCeINCa0JDQotCQ0JvQmNCdCivQn9CV0KLQoNCeINCd0JjQmtCeCivQn9CV0KLQoNCeINCh0JDQitCQCivQn9CV0KLQoNCe0J3QmNCLINCW0JjQktCe0KLQkAor0J/QldCi0KDQntCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCi0KDQntCd0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9CV0KLQoNCe0J3QmNCI0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCT0J7QoNCQ0J0KK9Cf0JXQotCg0J7QndCY0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCh0KDQldCi0JAKK9Cf0JXQotCg0J7QndCY0IjQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cf0JXQotCg0J7QitCVINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0IrQlSDQnNCY0J7QlNCg0JDQkwor0J/QldCi0KDQntCSINCW0JjQktCQ0J3QkAor0J/QldCi0KDQntCSINCW0JjQktCQ0J0KK9Cf0JXQotCg0J7QkiDQkNCd0JDQotCe0JvQmNCICivQn9CV0KLQoNCe0JIg0JDQndCQCivQn9CV0KLQoNCe0JIg0JHQntCg0JjQoQor0J/QldCi0KDQntCSINCU0JDQndCY0KbQkAor0J/QldCi0KDQntCSINCU0KPQqNCQ0J3QmtCQCivQn9CV0KLQoNCe0JIg0JTQo9Co0JDQnQor0J/QldCi0KDQntCSINCV0JLQmNCm0JAKK9Cf0JXQotCg0J7QkiDQpNCg0JDQndCa0JAKK9Cf0JXQotCg0J7QkiDQmNCo0KLQktCQ0J0KK9Cf0JXQotCg0J7QkiDQmNCS0JDQnQor0J/QldCi0KDQntCSINCI0JDQodCc0JjQndCQCivQn9CV0KLQoNCe0JIg0IjQldCb0JXQndCQCivQn9CV0KLQoNCe0JIg0IjQntCW0JXQpAor0J/QldCi0KDQntCSINCb0JDQl9CQ0KAKK9Cf0JXQotCg0J7QkiDQidCj0JHQntCc0JjQoAor0J/QldCi0KDQntCSINCJ0KPQkdCe0JzQmNCgCivQn9CV0KLQoNCe0JIg0JzQkNCg0JjQiNCQCivQn9CV0KLQoNCe0JIg0JzQkNCg0JjQiNCQCivQn9CV0KLQoNCe0JIg0JzQkNCg0JjQndCa0J4KK9Cf0JXQotCg0J7QkiDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cf0JXQotCg0J7QkiDQnNCY0JvQmNCm0JAKK9Cf0JXQotCg0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QldCi0KDQntCSINCc0JjQm9Ce0KHQkNCS0JAKK9Cf0JXQotCg0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QldCi0KDQntCSINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQn9CV0KLQoNCe0JIg0JzQntCc0KfQmNCb0J4KK9Cf0JXQotCg0J7QkiDQndCQ0JTQkAor0J/QldCi0KDQntCSINCd0JDQotCQ0JvQmNCI0JAKK9Cf0JXQotCg0J7QkiDQndCV0JHQntCI0KjQkCDQlNCgCivQn9CV0KLQoNCe0JIg0J7Qm9CT0JAKK9Cf0JXQotCg0J7QkiDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCSINCh0JDQqNCQCivQn9CV0KLQoNCe0JIg0KHQkNCS0JAKK9Cf0JXQotCg0J7QkiDQodCQ0JLQkAor0J/QldCi0KDQntCSINCh0JDQktCQCivQn9CV0KLQoNCe0JIg0KHQldCg0JPQmNCI0JUKK9Cf0JXQotCg0J7QkiDQodCb0JDQktCa0JAKK9Cf0JXQotCg0J7QkiDQodCb0JDQktCa0J4KK9Cf0JXQotCg0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JIg0KHQoNCR0JjQktCe0IgKK9Cf0JXQotCg0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QkiDQodCS0JXQotCe0JfQkNCgCivQn9CV0KLQoNCe0JIg0KLQntCc0JjQodCb0JDQkgor0J/QldCi0KDQntCSINCS0JDQodCeCivQn9CV0KLQoNCe0JIg0JLQldCb0JjQl9CQ0KAKK9Cf0JXQotCg0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQoNCe0JIg0JLQntCI0JjQodCb0JDQkgor0J/QldCi0KDQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QkiDQl9Cb0JDQotCe0JzQmNCgCivQn9CV0KLQoNCe0JLQp9CQ0J0t0KjQn9CQ0J3QntCS0JjQiyDQldCj0KTQldCc0JjQiNCQCivQn9CV0KLQoNCe0JLQkNCn0JrQmCDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQkNCn0JrQmCDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQkNCn0JrQmCDQidCY0InQkNCd0JAKK9Cf0JXQotCg0J7QktCQ0KfQmtCYINCS0JXQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCn0JXQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCo0KLQldCk0JDQnQor0J/QldCi0KDQntCS0JjQiyDQltCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQkNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQltCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JXQidCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQldCJ0JrQngor0J/QldCi0KDQntCS0JjQiyDQltCY0JrQkAor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCW0JjQktCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0JrQkAor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JjQktCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0J7QotCQCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QmtCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCg0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCg0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0KPQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQmNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0J/QldCi0KDQntCS0JjQiyDQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QldCi0KDQntCS0JjQiyDQkNCd0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLLdCR0JDQm9CY0JYg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQkdCe0KjQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JHQntCI0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCm0JLQmNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQlNCQ0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0KLQoNCe0JLQmNCLINCU0J7QkdCg0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JrQngor0J/QldCi0KDQntCS0JjQiyDQldCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JXQktCT0JXQndCY0IjQlQor0J/QldCi0KDQntCS0JjQiyDQldCS0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCk0JDQkdCY0IjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQpdCg0JjQodCi0JjQndCQCivQn9CV0KLQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCY0JvQntCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JjQodCQ0JoKK9Cf0JXQotCg0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0IjQldCb0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9CV0KLQoNCe0JLQmNCLINCI0JXQktCg0JXQnAor0J/QldCi0KDQntCS0JjQiyDQiNCe0JbQldCkCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCa0JDQotCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCa0J7QodCi0JAg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQmtCg0KHQotCeCivQn9CV0KLQoNCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QldCi0KDQntCS0JjQiyDQm9CV0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCb0JjQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JjQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCQ0IjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0J/QldCi0KDQntCS0JjQiyDQnNCY0IjQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0JLQkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQlQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQmNCLCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCoINCU0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QqAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QidCj0JEKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0KPQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQo9CdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCJ0KPQkQor0J/QldCi0KDQntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0KfQldCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQnNCb0JDQgtCV0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQmNCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQndCV0J3QkNCUCivQn9CV0KLQoNCe0JLQmNCLINCd0JXQktCV0J3QkAor0J/QldCi0KDQntCS0JjQiyDQndCV0JLQldCd0JrQkCDQlNCgCivQn9CV0KLQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QldCi0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQotCg0J7QktCY0Isg0J3QntCS0JDQmgor0J/QldCi0KDQntCS0JjQiyDQndCe0JLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0J7QkdCg0JDQlAor0J/QldCi0KDQntCS0JjQiyDQntCb0JPQkAor0J/QldCi0KDQntCS0JjQiyDQntCb0JPQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0J/QkNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQoNCh0JjQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQoNCY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQn9Cb0JDQnNCV0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLLdCf0J7Qn9CQ0JTQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JXQotCg0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQlQor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCY0KjQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCI0JrQngor0J/QldCi0KDQntCS0JjQiyDQoNCQ0IjQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQotCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0KDQmNCh0KLQngor0J/QldCi0KDQntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QldCi0KDQntCS0JjQiyDQoNCe0KHQkAor0J/QldCi0KDQntCS0JjQiyDQoNCj0JbQkAor0J/QldCi0KDQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0KDQo9CX0JzQkNCg0JjQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQkNCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQodCQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQodCQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQodCY0JzQkAor0J/QldCi0KDQntCS0JjQiyDQodCY0JzQldCj0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQmNCc0J4KK9Cf0JXQotCg0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCb0JDQktCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQngor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0JzQmNCJ0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCh0J/QkNCh0JUKK9Cf0JXQotCg0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cf0JXQotCg0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCg0ILQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQkNCc0JXQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCe0IjQkNCU0JjQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQntCI0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCj0JfQkNCd0JAg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQodCj0JfQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0JrQngor0J/QldCi0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QldCi0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0KLQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQotCY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCi0J7QlNCe0KDQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0KPQoNCe0KgKK9Cf0JXQotCg0J7QktCY0Isg0KPQoNCe0KgKK9Cf0JXQotCg0J7QktCY0Isg0JLQkNCh0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQldCh0JXQm9CQCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQodCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQmNCo0IrQkAor0J/QldCi0KDQntCS0JjQiyDQktCY0JTQkAor0J/QldCi0KDQntCS0JjQiyDQktCb0JDQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCU0JUKK9Cf0JXQotCg0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQktCe0IjQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCS0J7QiNCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JLQntCI0JrQkAor0J/QldCi0KDQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0J/QldCi0KDQntCS0JjQiyDQktCj0JrQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCX0JTQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQl9Cb0JDQotCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkAor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkAor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQmtCQCivQn9CV0KLQoNCe0JLQodCa0Jgg0JHQntCg0JjQoQor0J/QldCi0KDQntCS0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCi0KDQntCS0KHQmtCYINCV0JLQkAor0J/QldCi0KDQntCS0KHQmtCYINCk0JjQlNCQ0J3Qp9CeCivQn9CV0KLQoNCe0JLQodCa0Jgg0KXQldCb0JXQndCQCivQn9CV0KLQoNCe0JLQodCa0Jgg0JzQmNCb0JDQlNCY0J0KK9Cf0JXQotCg0J7QktCh0JrQmCDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQodCa0Jgg0JzQmNCb0J7QlNCQ0KDQmtCQCivQn9CV0KLQoNCe0JLQodCa0Jgg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0KHQmtCYINCh0JvQkNCS0JrQkAor0J/QldCi0KDQo9Co0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0JXQotCg0KPQqNCV0JLQodCa0Jgg0JzQntCc0KfQmNCb0J4KK9Cf0JXQotCg0KPQqNCV0JLQodCa0Jgg0J3QkNCU0JAKK9Cf0JXQotCg0KPQqNCY0Ist0J/QkNCg0JjQn9Ce0JLQmNCLINCe0JvQk9CQCivQn9CV0KLQoNCj0KjQmNCLINCS0JDQodCY0IkKK9Cf0JXQotCg0KPQidCV0KHQmtCe0JIg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCj0InQldCh0JrQntCSINCU0KDQkNCT0JDQnQor0J/QldCj0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0KPQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQo9CJ0JAg0JLQntCI0JjQnQor0J/QldCj0KDQkNCn0JAg0JTQoNCQ0JPQkNCdCivQn9CV0KPQoNCQ0KfQkCDQnNCY0JvQlQor0J/QldCS0JDQpyDQodCi0IjQldCf0JDQnQor0J/QldCS0JjQiyDQldCg0JbQldCR0JXQogor0J/QldCX0JTQldCS0KjQldCaINCI0JDQndCV0JcKK9Cf0JXQl9CU0JXQktCo0JXQmiDQmtCQ0KDQmwor0J/QldCX0JXQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQn9Ck0JDQiNCk0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QpNCQ0IjQpNCV0KAg0JDQotCY0JvQkAor0J/QpNCQ0IjQpNCV0KAg0J/QldCi0JDQoAor0J/QpNCQ0IjQpNCV0KDQoiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QpNCQ0KMg0IjQntCS0JDQndCa0JAKK9Cf0KTQo9Cd0KjQotCQ0IjQnSDQiNCe0KHQmNCfCivQn9CY0KjQmtCe0KDQmNCLINCY0JLQkNCdCivQn9CY0KjQn9CV0Jog0JzQkNCg0KLQkAor0J/QmNCo0KLQkNCb0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JjQqNCi0JDQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JjQi9Cj0KDQmNCLINCW0JjQktCa0J4KK9Cf0JjQi9Cj0KDQmNCLINCc0JjQmtCeCivQn9CY0JbQo9Cg0JjQptCQINCc0JDQotCeCivQn9CY0JPQmyDQkNCd0JAKK9Cf0JjQk9CbINCY0JzQoNCVCivQn9CY0KXQkNCI0JvQmNCLINCR0JvQkNCWCivQn9CY0KXQm9CV0KAg0IjQntCh0JjQnwor0J/QmNCl0JvQldCgINCh0KLQkNCd0JrQniDQlNCgCivQn9CY0KXQm9CV0KAg0KLQntCU0J7QoAor0J/QmNCI0JDQndCY0Isg0JTQkNCd0JjQiNCV0JsKK9Cf0JjQiNCV0KLQm9Ce0JLQmNCLINCR0KDQkNCd0J4KK9Cf0JjQiNCV0KLQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JjQiNCj0JrQntCS0JjQiyDQldCb0JfQkAor0J/QmNCI0KPQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JjQmtCh0JjQkNCU0JXQoSDQntCd0JTQoNCV0IgKK9Cf0JjQmtCh0JjQiNCQ0JTQldChINCQ0J3QkAor0J/QmNCa0KHQmNCI0JDQlNCV0KEg0J/QkNCS0JXQmwor0J/QmNCa0KHQmNCI0JDQlNCV0KEg0J/QkNCS0JvQlQor0J/QmNCa0KPQm9CQINCC0J7QoNCC0JUKK9Cf0JjQmtCj0JvQkCDQkdCg0JDQndCa0J4KK9Cf0JjQmyDQkNCd0JTQoNCY0IjQkAor0J/QmNCbINCc0JjQpdCQ0IjQm9CeCivQn9CY0Jsg0KHQotCV0JLQkNCdCivQn9CY0Jsg0KLQldCg0JXQl9CQCivQn9CY0JvQkNCgINCc0JDQoNCY0KbQkAor0J/QmNCb0KYg0J3QkNCd0JTQntCgCivQn9CY0JvQpiDQoNCV0JbQlQor0J/QmNCb0KYg0JfQntCb0KLQkNCdCivQn9CY0JvQldCgINCa0JDQoNCb0J4KK9Cf0JjQm9CY0Kgg0JDQndCQCivQn9CY0JvQmNCoINCQ0J3QlNCg0JDQqAor0J/QmNCb0JjQqCDQiNCe0KHQmNCfCivQn9CY0JvQmNCo0JXQoCDQgtCe0KDQgtCVCivQn9CY0JvQmNCLINCW0JDQoNCa0J4KK9Cf0JjQm9CY0Isg0JDQndCi0J7QnQor0J/QmNCb0JjQiyDQkdCe0KDQmNCS0J7QiAor0J/QmNCb0JjQiyDQkdCe0KDQngor0J/QmNCb0JjQiyDQk9CQ0JLQoNCQCivQn9CY0JvQmNCLINCI0J7QktCQ0J0KK9Cf0JjQm9CY0Ist0JrQkNCb0JXQndCY0Isg0JzQmNCb0JjQndCa0JAKK9Cf0JjQm9CY0Isg0InQmNCJ0JAKK9Cf0JjQm9CY0Isg0JzQmNCb0J7QqAor0J/QmNCb0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J/QmNCb0JjQiyDQoNCQ0J3QmtCeCivQn9CY0JvQmNCLINCh0JvQkNCS0JrQngor0J/QmNCb0JjQiyDQodCg0JHQntCJ0KPQkQor0J/QmNCb0JjQiyDQodCi0JDQndCa0J4KK9Cf0JjQm9CY0Isg0KHQotCV0JLQkNCdCivQn9CY0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JjQm9CY0J/QntCSINCV0JLQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCn0JXQlNCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JbQmNCS0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JjQm9CY0J/QntCS0JjQiyDQgtCj0KDQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCQ0J3QgtCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JHQntCo0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQn9CY0JvQmNCf0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0KbQktCY0IjQldCi0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQptCS0JjQiNCV0KLQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCU0JDQndCVCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQoNCQ0JPQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCT0J7QoNCQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQiNCe0JvQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CV0JLQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CY0JvQmNCf0J7QktCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JjQm9CY0J/QntCS0JjQiyDQoNCQ0JTQlQor0J/QmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCVCivQn9CY0JvQmNCf0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J/QmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CY0JvQmNCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCh0KLQkNCd0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCi0JXQktCeCivQn9CY0JvQmNCf0J7QktCY0Isg0JLQntCI0JjQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCY0KbQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCX0JLQntCd0JrQngor0J/QmNCJ0JjQiyDQnNCQ0KDQmNCI0JDQnQor0J/QmNCb0JrQniDQmNCg0JXQndCQCivQn9CY0JvQmtCeINCf0JDQktCb0JUKK9Cf0JjQm9Ce0JLQmNCLINCU0JXQodCY0JzQmNCgCivQn9CY0JvQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QmNCd0IvQmNCgINCI0JDQnQor0J/QmNCd0IvQmNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JjQndCL0JjQoCDQl9CU0JXQndCa0J4KK9Cf0JjQndCL0IjQldCgINCe0J3QlNCg0JXQiAor0J/QmNCd0IvQiNCV0KAg0KHQkNCc0KPQldCbCivQn9CY0J3Qi9CI0JXQoCDQodCQ0JzQo9CY0JvQngor0J/QmNCK0KPQqNCY0Isg0JjQm9CY0IjQkAor0J/QmNCK0KPQpSDQnNCY0KDQiNCQ0J3QkAor0J/QmNCK0KPQpSDQn9CV0KLQkNCgCivQn9CY0J3QotCQ0Kcg0KTQoNCQ0IrQngor0J/QmNCd0KLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JjQndCi0JDQpyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0J7QldCmCivQn9CY0J3QotCQ0Kcg0JLQldCh0J3QkAor0J/QmNCd0KLQkNCLINCC0J7QoNCC0JUKK9Cf0JjQndCi0JDQiyDQnNCQ0KDQmNCI0JAKK9Cf0JjQndCi0JDQoNCY0Isg0IjQkNCh0J3QkAor0J/QmNCd0KLQkNCg0JjQiyDQiNCe0JLQkNCdCivQn9CY0J3QotCV0KAg0JDQlNCg0JjQldCd0JUKK9Cf0JjQndCi0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QmNCd0KLQldCgINCQ0J3QlNCg0JDQqAor0J/QmNCd0KLQldCgINCR0JXQm9CQCivQn9CY0J3QotCV0KAg0JHQldCb0JAKK9Cf0JjQndCi0JXQoCDQpNCg0JDQitCQCivQn9CY0J3QotCV0KAg0JjQnNCg0JUKK9Cf0JjQndCi0JXQoCDQiNCQ0J3QntCoCivQn9CY0J3QotCV0KAg0JrQkNCg0J7QiQor0J/QmNCd0KLQldCgINCa0JDQotCQ0JvQmNCdCivQn9CY0J3QotCV0KAg0JvQldCd0JrQkAor0J/QmNCd0KLQldCgINCb0JjQktCY0IjQkAor0J/QmNCd0KLQldCgINCc0JDQoNCY0IjQkAor0J/QmNCd0KLQldCgINCc0JjQpdCQ0IkKK9Cf0JjQndCi0JXQoCDQnNCY0KXQkNCJCivQn9CY0J3QotCV0KAg0KHQotCV0JLQkNCdCivQn9CY0J3QotCV0KAg0KLQmNCR0J7QoAor0J/QmNCd0KLQldCgINCS0JXQoNCQCivQn9CY0J3QotCV0KAg0JLQiNCV0JrQntCh0JvQkNCSCivQn9CY0J/QldCgINCS0JXQm9CY0JHQntCgCivQn9CY0J/QldCg0JDQpiDQndCQ0JTQkAor0J/QmNCf0JXQoNCa0J7QkiDQkNCd0JrQkAor0J/QmNCf0JXQoNCh0JrQmCDQltCY0JLQkAor0J/QmNCf0JXQoNCh0JrQmCDQkNCd0JAKK9Cf0JjQn9CV0KDQodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0J/QmNCf0JXQoNCh0JrQmCDQmtCe0KHQotCQCivQn9CY0KDQpiDQlNCQ0J3QmNCm0JAKK9Cf0JjQoNCYINCI0JDQndCe0KgKK9Cf0JjQoNCYINCI0J7QltCV0KQKK9Cf0JjQoNCYINCI0J7QodCY0J8KK9Cf0JjQoNCYINCI0J7QodCY0J8KK9Cf0JjQoNCY0Isg0JjQkdCg0JDQpdCY0JwKK9Cf0JjQoNCY0Isg0J7QodCc0JDQnQor0J/QmNCg0JjQiyDQl9Ce0KDQkAor0J/QmNCg0JjQktCQ0KLQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0JjQoNCc0JDQiNCV0KAg0IjQntCh0JjQnwor0J/QmNCg0J7QqNCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9Cf0JjQoNCe0KjQmtCYINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JjQoNCe0KjQmtCYINCc0JjQntCU0KDQkNCTCivQn9CY0KDQntCo0JrQmCDQktCQ0KHQkAor0J/QmNCg0KLQmNCLINCa0KHQldCd0JjQiNCQCivQn9CY0KDQotCY0Isg0KDQkNCU0JjQndCa0JAKK9Cf0JjQoNCi0JjQiyDQodCQ0JLQldCi0JAKK9Cf0JjQoSDQldCU0JjQotCQCivQn9CY0KHQkNCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CY0KHQkNCgINCo0JDQndCU0J7QoAor0J/QmNCh0JDQoCDQlNCj0KjQkNCdCivQn9CY0KHQkNCgINCI0J7QltCV0KQKK9Cf0JjQodCQ0KAg0JvQkNCh0JvQngor0J/QmNCh0JDQoNCV0JIg0ILQntCg0ILQlQor0J/QmNCh0JDQoNCV0JIg0JXQnNCY0JvQmNCI0JAKK9Cf0JjQodCQ0KDQldCSINCa0JDQotCY0KbQkAor0J/QmNCh0JDQoNCV0JIg0JzQmNCb0JDQnQor0J/QmNCh0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JjQodCQ0KDQldCS0JjQiyDQnNCY0KDQmtCeCivQn9CY0KHQkNCg0JXQktCY0Isg0JzQmNCg0JrQngor0J/QmNCh0JDQoNCV0JLQmNCLINCc0JjQotCQ0KAKK9Cf0JjQodCQ0KDQldCS0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9Cf0JjQodCQ0KDQmNCLINCC0KPQoNCQCivQn9CY0KHQkNCg0JjQiyDQgtCj0KDQngor0J/QmNCh0JDQoNCY0Isg0JHQm9CQ0JbQngor0J/QmNCh0JDQoNCY0Isg0JHQoNCQ0J3QmtCeCivQn9CY0KHQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JjQodCQ0KDQmNCLINCU0KDQkNCT0J4KK9Cf0JjQodCQ0KDQmNCLINCd0JXQgtCeCivQn9CY0KHQkNCg0JjQiyDQntCh0KLQntCI0JAKK9Cf0JjQodCQ0KDQmNCLINCe0KHQotCe0IjQkAor0J/QmNCh0JDQoNCY0Isg0J/QkNCS0JvQlQor0J/QmNCh0JDQoNCY0Isg0JLQm9CQ0JTQngor0J/QmNCh0JDQoNCe0JIg0ILQntCg0ILQlQor0J/QmNCh0JDQoNCe0JIg0JrQkNCi0JjQptCQCivQn9CY0KHQkNCg0J7QkiDQktCQ0KHQkAor0J/QmNCi0JAg0JzQkNCl0JzQo9CiCivQn9CY0KLQkCDQnNCQ0KXQnNCj0KIKK9Cf0JjQotCe0JzQkNCn0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQn9CY0KLQntCc0JDQp9CY0Isg0JLQm9CQ0JTQkAor0J/QmNCi0KPQmiDQndCQ0JTQkAor0J/QmNCj0JrQntCS0JjQiyDQmNCS0JDQnQor0J/QmNCj0JrQntCS0JjQiyDQnNCQ0JPQlNCQCivQn9CY0JLQkNCnINCR0J7QodCY0InQmtCQCivQn9CY0JLQkNCmINCU0KDQkNCT0J7QidCj0JEKK9Cf0JjQktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9Cf0JjQktCQ0KYg0JzQmNCb0J7QktCQ0J0KK9Cf0JjQktCQ0KYg0JfQktCe0J3QmNCc0JjQoAor0J/QmNCS0JDQoNCh0JrQmCDQkdCg0JDQndCa0JAKK9Cf0JjQktCQ0KDQodCa0Jgg0JTQo9Co0JDQnQor0J/QmNCS0JDQoNCh0JrQmCDQnNCY0J7QlNCg0JDQkwor0J/QmNCS0JDQoNCh0JrQmCDQoNCQ0KLQntCc0JjQoAor0J/QmNCS0JDQoNCh0JrQmCDQodCb0JDQktCY0KbQkAor0J/QmNCS0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cf0JjQktCQ0KDQodCa0Jgg0JLQldCh0JXQm9CY0J0g0JzQoCDQn9ClCivQn9CY0JLQndCY0KfQmtCYINCR0J7Qk9CU0JDQndCa0JAKK9Cf0JjQktCd0JjQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CY0JLQndCY0KfQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0J/QmNCS0J3QmNCn0JrQmCDQkdCg0JDQndCa0JAKK9Cf0JjQktCd0JjQp9Ca0Jgg0JTQoNCQ0JPQkNCdCivQn9CY0JLQndCY0KfQmtCYINCT0J7QoNCU0JDQndCQCivQn9CY0JLQndCY0KfQmtCYINCY0JLQkNCd0JrQkAor0J/QmNCS0J3QmNCn0JrQmCDQmtCQ0KLQkNCg0JjQndCQCivQn9CY0JLQndCY0KfQmtCYINCc0JDQoNCY0IjQkAor0J/QmNCS0J3QmNCn0JrQmCDQnNCY0JvQkNCdCivQn9CY0JLQndCY0KfQmtCYINCc0JjQm9CV0KLQkAor0J/QmNCS0J3QmNCn0JrQmCDQoNCQ0JTQldCd0JrQngor0J/QmNCS0J3QmNCn0JrQmCDQoNCQ0IjQmtCeCivQn9CY0JLQndCY0KfQmtCYINCh0KLQntCI0JrQkAor0J/QmNCS0J3QmNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQn9CI0JDQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0IjQkNCd0JjQiyDQoNCY0KHQotCQCivQn9CI0JXQqNCn0JjQiyDQkdCe0JPQntCJ0KPQkQor0J/QiNCV0KjQp9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0J/QiNCV0KjQp9CY0Isg0JzQkNCg0JjQiNCQCivQn9CI0JXQqNCn0JjQiyDQnNCY0JvQldCS0JAKK9Cf0IjQldCo0KfQmNCLINCd0J7QktCQ0JoKK9Cf0IjQldCo0JjQktCQ0KYg0JfQlNCg0JDQktCa0J4KK9Cf0IjQldCi0JvQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QiNCV0JLQkNCnINCd0JjQmtCe0JvQkAor0J/QiNCV0JLQkNCmINCR0KDQkNCd0JrQngor0J/QiNCV0JLQkNCmINCU0KPQqNCQ0J0KK9Cf0IjQldCS0JDQpiDQodCi0JXQktCQ0J0KK9Cf0IjQldCS0JDQpiDQktCb0JDQlNCY0JzQmNCgCivQn9CI0JXQktCQ0KYg0JfQntCg0JAKK9Cf0IjQldCS0JDQm9CY0KbQkCDQo9Cg0J7QqAor0J/QiNCV0JLQmNCLINCC0KPQoNCQ0IIKK9Cf0IjQldCS0JjQiyDQkdCe0JbQngor0J/QiNCV0JLQmNCLINCc0JjQoNCa0J4g0JTQoAor0J/QiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkCDQlNCgCivQn9Cb0JDQp9Ca0JjQiyDQltCQ0KDQmtCeCivQn9Cb0JDQp9Ca0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/Qm9CQ0KfQmtCY0Isg0JHQoNCQ0J3QmtCeCivQn9Cb0JDQp9Ca0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQn9Cb0JDQp9Ca0JjQiyDQodCb0JDQktCa0J4KK9Cf0JvQkNCn0JrQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JvQkNCn0JrQniDQodCi0IjQldCf0JDQnQor0J/Qm9CQ0KfQmtCe0JIg0JbQmNCS0JrQkAor0J/Qm9CQ0KfQmtCe0JIg0ILQntCg0ILQlQor0J/Qm9CQ0KfQmtCe0JIg0JHQntCg0JjQktCe0IgKK9Cf0JvQkNCn0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J/Qm9CQ0KfQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cb0JDQp9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JvQkNCn0JrQntCSINCR0KDQkNCd0JrQkAor0J/Qm9CQ0KfQmtCe0JIg0JTQo9Co0JDQnQor0J/Qm9CQ0KfQmtCe0JIg0JjQm9Ce0J3QmtCQCivQn9Cb0JDQp9Ca0J7QkiDQnNCY0JvQkNCdCivQn9Cb0JDQp9Ca0J7QkiDQnNCY0KDQntCJ0KPQkQor0J/Qm9CQ0KfQmtCe0JIg0J/QkNCI0JAKK9Cf0JvQkNCn0JrQntCSINCf0JXQoNCQCivQn9Cb0JDQp9Ca0J7QkiDQn9CV0KLQkNCgCivQn9Cb0JDQp9Ca0J7QkiDQoNCj0JTQntCb0KQKK9Cf0JvQkNCn0JrQntCSINCh0JDQktCQCivQn9Cb0JDQp9Ca0J7QkiDQodCQ0JLQldCi0JAKK9Cf0JvQkNCn0JrQntCSINCh0JjQnNCQCivQn9Cb0JDQp9Ca0J7QkiDQodCi0JDQndCY0JzQmNCgCivQn9Cb0JDQp9Ca0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JvQkNCn0JrQntCSINCh0KLQldCS0JAKK9Cf0JvQkNCn0JrQntCSINCh0KLQntCI0JDQnQor0J/Qm9CQ0KfQmtCe0JIg0KHQktCV0KLQntCX0JDQoAor0J/Qm9CQ0KfQmtCe0JIg0JLQo9Ca0J7QodCQ0JLQkAor0J/Qm9CQ0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JvQkNCn0JrQntCS0JjQiyDQn9CQ0IjQkAor0J/Qm9CQ0KYg0JXQlNCeCivQn9Cb0JDQmtCQ0JvQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0J/Qm9CQ0J3Qp9CQ0Jog0JDQnNCQ0JvQmNCI0JAKK9Cf0JvQkNCd0KfQkNCaINCV0KPQpNCV0JzQmNCI0JAKK9Cf0JvQkNCd0KfQkNCaINCV0KPQk9CV0J0KK9Cf0JvQkNCd0KfQkNCaINCI0J7QktCQ0J0KK9Cf0JvQkNCd0KfQkNCaINCc0JjQpdCQ0IjQm9CeCivQn9Cb0JDQndCn0JDQmiDQnNCY0KDQntCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cf0JvQkNCd0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/Qm9CQ0J3QmNCLINCX0JTQldCd0JrQkAor0J/Qm9CQ0J3QmNCd0KfQmNCLINCc0JjQndCQCivQn9Cb0JDQndCY0J3Qp9CY0Isg0JLQldCh0JXQm9CY0J0KK9Cf0JvQkNCK0JDQndCY0J0g0KDQkNCU0J7QnNCY0KAKK9Cf0JvQkNCd0J7QiNCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdINCU0KAKK9Cf0JvQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0J/Qm9CQ0KLQmNCo0JAg0JzQmNCb0JDQnQor0J/Qm9CQ0KLQmNCo0JAg0JzQmNCe0JTQoNCQ0JMKK9Cf0JvQkNCS0KjQmNCLINCQ0J3QgtCQCivQn9Cb0JDQktCo0JjQiyDQkNCd0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQkNCd0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQkNCd0JrQkAor0J/Qm9CQ0JLQqNCY0Isg0JHQntCo0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JHQntCW0JAKK9Cf0JvQkNCS0KjQmNCLINCR0J7QltCQCivQn9Cb0JDQktCo0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/Qm9CQ0JLQqNCY0Isg0JHQntCT0J7QnNCY0KAKK9Cf0JvQkNCS0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JvQkNCS0KjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/Qm9CQ0JLQqNCY0Isg0JHQoNCQ0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JvQkNCS0KjQmNCLINCR0KDQkNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0KbQktCY0IjQngor0J/Qm9CQ0JLQqNCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cb0JDQktCo0JjQiyDQlNCj0KjQkNCdCivQn9Cb0JDQktCo0JjQiyDQlNCj0KjQmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCT0J7QoNCU0JDQndCQCivQn9Cb0JDQktCo0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/Qm9CQ0JLQqNCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0JvQkNCS0KjQmNCLINCI0J7QktCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCI0J7QktCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCI0J7QktCY0KbQkAor0J/Qm9CQ0JLQqNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/Qm9CQ0JLQqNCY0Isg0JrQoNCh0KLQkAor0J/Qm9CQ0JLQqNCY0Isg0JvQkNCX0JDQoAor0J/Qm9CQ0JLQqNCY0Isg0InQmNCJ0JDQndCQCivQn9Cb0JDQktCo0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCJ0KPQkdCY0KbQkAor0J/Qm9CQ0JLQqNCY0Isg0InQo9CR0JjQndCa0JAKK9Cf0JvQkNCS0KjQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Cb0JDQktCo0JjQiyDQm9Cj0JrQkAor0J/Qm9CQ0JLQqNCY0Isg0JzQkNCg0JjQiNCQCivQn9Cb0JDQktCo0JjQiyDQnNCQ0KDQmNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JzQkNCg0JjQndCa0J4KK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQldCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCb0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9CY0J3QmtCQCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQntCoCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQntCc0JjQoAor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JvQkNCS0KjQmNCLINCc0JjQoNCa0J4KK9Cf0JvQkNCS0KjQmNCLINCc0JjQoNCa0J4KK9Cf0JvQkNCS0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQn9Cb0JDQktCo0JjQiyDQnNCY0KLQkNCgCivQn9Cb0JDQktCo0JjQiyDQnNCY0KLQkAor0J/Qm9CQ0JLQqNCY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0JvQkNCS0KjQmNCLINCc0J7QnNCY0KAKK9Cf0JvQkNCS0KjQmNCLINCd0JXQoNCQCivQn9Cb0JDQktCo0JjQiyDQndCY0JrQntCb0JAKK9Cf0JvQkNCS0KjQmNCLINCd0J7QktCa0JAKK9Cf0JvQkNCS0KjQmNCLINCf0JDQktCQCivQn9Cb0JDQktCo0JjQiyDQn9CV0KLQkNCgCivQn9Cb0JDQktCo0JjQiyDQn9CV0KLQkNCgCivQn9Cb0JDQktCo0JjQiyDQoNCQ0JTQlQor0J/Qm9CQ0JLQqNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0JvQkNCS0KjQmNCLINCg0JDQlNCe0JLQkNCdCivQn9Cb0JDQktCo0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0KDQkNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0KDQkNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0KHQmNCc0JAKK9Cf0JvQkNCS0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCh0KLQldCS0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0KHQotCV0JLQkNCdCivQn9Cb0JDQktCo0JjQiyDQodCi0JXQktCeCivQn9Cb0JDQktCo0JjQiyDQotCe0JTQlQor0J/Qm9CQ0JLQqNCY0Isg0KLQntCU0J7QoAor0J/Qm9CQ0JLQqNCY0Isg0JLQmNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cf0JvQkNCS0KjQmNCLINCS0JvQkNCU0JAKK9Cf0JvQkNCS0KjQmNCLINCS0J7QiNCY0J0KK9Cf0JvQkNCS0KjQmNCLINCS0J7QiNCY0J0KK9Cf0JvQkNCS0KjQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JvQkNCS0KjQmNCLINCX0J7QoNCa0JAKK9Cf0JvQkNCS0KjQmNCdINCU0KPQqNCQ0J0KK9Cf0JvQkNCS0KjQmNCdINCc0JjQm9CY0KbQkAor0J/Qm9CQ0JLQqNCY0J0g0KHQotCV0JLQkNCdCivQn9Cb0JDQktCQ0KYg0JbQldCJ0JrQngor0J/Qm9CQ0JLQkNCmINCU0KPQqNCQ0J0KK9Cf0JvQkNCS0JDQpiDQiNCQ0J3QmtCeCivQn9Cb0JDQktCmINCQ0KXQnNCV0KIKK9Cf0JvQkNCS0KYg0JHQkNCI0KDQo9CoCivQn9Cb0JDQktCJ0JDQndCY0J0g0JbQmNCS0JrQngor0J/Qm9CQ0JfQkNCn0JjQiyDQktCY0JTQntCI0JUKK9Cf0JvQkNCX0JjQndCQINCf0KPQndCY0KjQkAor0J/Qm9CV0KjQkCDQiNCe0KHQmNCfCivQn9Cb0JXQqNCVINCT0J7QoNCQ0J0KK9Cf0JvQldCo0JrQniDQkNCd0JjQptCQCivQn9Cb0JXQqNCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JvQldCo0KLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Cb0JXQi9CQ0Kgg0JTQkNCd0JjQm9CeCivQn9Cb0JXQi9CQ0Kgg0JjQm9CY0IjQkAor0J/Qm9CV0IvQkNCoINCa0JDQotCY0KbQkAor0J/Qm9CV0IvQkNCoINCc0JjQm9CV0JLQkAor0J/Qm9CV0IvQkNCoINCg0JDQlNCVCivQn9Cb0JXQi9CQ0Kgg0KDQntCX0JDQm9CY0IjQkAor0J/Qm9CV0JzQmNCLINCC0KPQoNCeCivQn9Cb0JXQnNCY0Isg0JTQkNCd0JUKK9Cf0JvQldCc0JjQiyDQnNCY0JvQkNCdCivQn9Cb0JXQodCa0J7QitCQINCc0JjQm9Ce0IjQmNCm0JAKK9Cf0JvQldCh0JrQntCK0JjQiyDQkNCc0JDQm9CY0IjQkAor0J/Qm9CV0KHQmtCe0JLQmNCLINCQ0J3QotCj0J0KK9Cf0JvQldCh0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JvQldCh0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0J/Qm9CV0KLQldCbINCa0KHQldCd0JjQiNCQCivQn9Cb0JXQotCV0Jsg0JzQmNCb0JDQnQor0J/Qm9CV0KLQmNCa0JDQn9CY0Isg0JTQoNCQ0JPQkNCdCivQn9Cb0JXQotCY0JrQntCh0JjQiyDQidCV0KDQmtCQCivQn9Cb0JXQotCY0JrQntCh0JjQiyDQn9CV0KLQkNCgCivQn9Cb0JXQotCbINCe0KLQmNCb0JjQiNCQCivQn9Cb0JjQodCd0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JvQmNCh0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Cb0JjQktCQ0KAg0IjQntCS0JDQnQor0J/QidCj0KbQniDQkdCg0JDQndCa0J4KK9Cf0JvQntClINCU0KDQkNCT0J4KK9Cf0JvQntClINCk0KDQkNCK0JAKK9Cf0JvQntCIINCc0JDQoNCY0IjQkAor0J/Qm9Ce0KEg0JzQmNCe0JTQoNCQ0JMKK9Cf0JvQo9CW0JDQoNCV0JIg0JvQkNCX0JDQoAor0J/Qm9Cj0JbQkNCg0JXQkiDQntCb0JjQktCV0KDQkCDQlNCgCivQn9Cb0KPQltCQ0KDQntCSINCc0JjQm9CV0J3QmtCeCivQn9Cb0KPQmtCQ0JLQldCmINCY0JLQkNCdCivQn9Cb0JfQkNCaINCU0KDQkNCT0J7QodCb0JDQkgor0J/QntCn0JDQndCY0Isg0KLQoNCY0J/Qngor0J/QntCn0JXQmiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qp9CV0Jog0JHQoNCQ0J3QmtCeCivQn9Ce0KfQldCaINCJ0JjQidCQ0J3QkAor0J/QntCn0JXQmiDQnNCY0JvQntCS0JDQnQor0J/QntCn0JXQmiDQktCb0JDQlNCQCivQn9Ce0KfQldCaINCS0JvQkNCU0JjQodCb0JDQkgor0J/QntCn0JXQmiDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0J7Qp9CV0KLQkNCaINCc0JjQm9CV0J3QmtCeCivQn9Ce0KfQldCi0JDQmiDQnNCY0JvQmNCm0JAKK9Cf0J7Qp9Cj0KfQkCDQlNCc0JjQotCQ0KAKK9Cf0J7Qp9Cj0KfQkCDQlNCj0KjQkNCdCivQn9Ce0KfQo9Cn0JAg0IjQntCS0JDQndCa0JAKK9Cf0J7Qp9Cj0KfQkCDQn9CV0KLQkNCgCivQn9Ce0KfQo9Cn0JAg0KDQkNCU0JzQmNCb0JAKK9Cf0J7QqNCn0JjQiyDQldCg0JjQmtCQCivQn9Ce0KjQkCDQgtCj0KDQkAor0J/QntCo0JAg0JDQndCU0KDQkNCoCivQn9Ce0KjQkCDQlNCg0JDQk9CY0KbQkAor0J/QntCo0JAg0JjQqNCi0JLQkNCdCivQn9Ce0KjQkCDQmtCQ0KDQm9CeCivQn9Ce0KjQkCDQn9CV0KLQkNCgCivQn9Ce0KjQkCDQoNCe0JfQkNCb0JjQiNCQCivQn9Ce0KjQkCDQodCd0JXQltCQ0J3QkAor0J/QntCo0JDQoNCQ0KYg0JTQo9Co0JrQngor0J/QntCo0JDQoNCQ0KYg0JfQntCg0JDQnQor0J/QntCo0KLQkCDQndCY0JrQntCb0JAKK9Cf0J7QqNCi0JjQiyDQgtCe0KDQgtCVINCU0KAKK9Cf0J7QqNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7QqNCi0JjQiyDQnNCY0JvQkNCdCivQn9Ce0KjQotCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0J7QqNCi0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7QqNCi0JjQiyDQodCg0ILQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QntCo0KLQntCoINCS0JXQoNCQCivQn9Ce0JbQkNCgINCc0JjQm9CY0KbQkAor0J/QntCW0JDQoNCV0JIg0ILQntCg0ILQlQor0J/QntCW0JDQoNCV0JIg0ILQntCg0ILQlQor0J/QntCW0JDQoNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7QltCQ0KDQldCSINCQ0J3QgtCV0JvQmtCQCivQn9Ce0JbQkNCg0JXQkiDQlNCe0KDQkAor0J/QntCW0JDQoNCV0JIg0IjQldCb0JXQndCQCivQn9Ce0JbQkNCg0JXQkiDQoNCQ0JTQlQor0J/QntCW0JDQoNCV0JIg0KDQkNCi0J7QnNCY0KDQmtCQCivQn9Ce0JbQkNCg0JXQkiDQoNCQ0KLQntCc0JjQoAor0J/QntCW0JDQoNCV0JIg0KHQotCV0JLQkNCdCivQn9Ce0JbQkNCg0JXQkiDQktCV0KHQldCb0JjQnQor0J/QntCW0JXQk9CQINCc0JjQm9CVCivQn9Ce0JbQldCT0JAg0KHQntCk0JjQiNCQCivQn9Ce0JbQldCT0JAg0KHQotCV0JLQkNCdCivQn9Ce0JbQk9CQ0Igg0JDQndCi0KPQnQor0J/QntCW0JPQkNCIINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0J7QkdCe0KAg0IjQldCb0JXQndCQCivQn9Ce0JHQntCgINCh0KDQldCi0J4KK9Cf0J7QkdCg0JDQnSDQodCi0JXQktCQ0J0KK9Cf0J7QkdCg0JDQnSDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0JHQoNCY0Isg0JjQodCQ0JoKK9Cf0J7QkdCj0IvQkNCd0J7QktCY0Ist0JrQo9CJ0JDQndCa0JjQiyDQqNCj0KXQoNCV0KLQkAor0J/QntCR0KPQgtCQ0J3QntCS0JjQiyDQmNCb0JjQndCa0JAKK9Cf0J7QkdCj0ILQkNCd0J7QktCY0Isg0JzQo9Cl0JDQoNCV0JwKK9Cf0J7QkdCj0ILQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0J/QntCm0JDQiNCiINCS0JjQmtCi0J7QoAor0J/QntCm0JzQkNCdINCQ0J3QotCj0J0KK9Cf0J7QptCc0JDQnSDQktCY0JvQmNCcCivQn9Ce0KbQoNCd0JjQiyDQnNCY0JvQlQor0J/QntCm0KDQndCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0JTQk9Ce0KDQndCY0Jog0JzQmNCb0JDQnQor0J/QntCU0JPQntCg0J3QmNCaINCg0JDQiNCd0JAKK9Cf0J7QlNCb0JjQn9CV0KYg0JzQkNCg0JjQiNCQCivQn9Ce0JTQnNCQ0IjQntCg0KHQmtCYINCc0JDQoNCQCivQn9Ce0JTQntCR0J3QmNCaINCI0JDQodCd0JAKK9Cf0J7QlNCe0JvQkCDQiNCj0KHQotCY0J3QkAor0J/QntCU0KDQkNCo0KfQkNCd0JjQnSDQiNCe0JLQkNCdCivQn9Ce0JTQoNCQ0KjQp9CQ0J3QmNCdINCd0JDQlNCQCivQn9Ce0JTQoNCQ0KjQp9CQ0J3QmNCdINCS0J7QiNCQCivQn9Ce0JTQoNCQ0JLQkNCmINCR0KDQkNCd0JrQngor0J/QntCT0JDQndCn0JXQkiDQk9Ce0KDQkNCdCivQn9Ce0JPQkNCd0KfQldCSINCT0J7QoNCQ0J0KK9Cf0J7Qk9CQ0Iog0IjQo9Cb0JjQiNCQ0J3QkAor0J/QntCT0KPQkdCV0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9Ce0IjQkdCY0Isg0JTQo9Co0JDQnQor0J/QntCI0JUg0IjQntCh0JjQnwor0J/QntCI0JjQiyDQkdCg0JDQndCa0J4KK9Cf0J7QmtCQINCI0J7QodCY0J8KK9Cf0J7QmtCQ0KEg0IjQntCh0JjQnwor0J/QntCa0KDQkNCI0JDQpiDQkNCd0JPQldCb0JjQndCQCivQn9Ce0JrQoNCQ0IjQkNCmINCI0J7QktCQ0J0KK9Cf0J7QmtCg0JDQiNCQ0KYg0IjQntCS0JDQnQor0J/QntCa0KDQkNCI0JDQpiDQnNCY0JvQkNCdCivQn9Ce0JrQoNCQ0IjQkNCmINCc0JjQm9Ce0KDQkNCUCivQn9Ce0JrQoNCQ0IjQkNCmINCg0JDQlNCVCivQn9Ce0JrQoNCQ0IjQkNCmINCh0JvQkNCS0JrQngor0J/QntCa0KDQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0J7QmtCj0KjQldCS0KHQmtCYINCU0J7QkdCg0JjQndCa0JAKK9Cf0J7QmtCj0J/QldCmINCc0JjQm9CQ0J0KK9Cf0J7Qm9CQ0Jog0IjQldCb0JXQndCQCivQn9Ce0JvQkNCaINCI0J7QltCV0KQKK9Cf0J7Qm9CQ0Jog0KHQotCV0JLQkNCdCivQn9Ce0JvQkNCa0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cf0J7Qm9CQ0JrQntCS0JjQiyDQiNCQ0J3QntCoCivQn9Ce0JvQkNCd0JXQpiDQpNCg0JDQitCeCivQn9Ce0JvQlSDQndCY0JrQntCb0JAKK9Cf0J7Qm9CVINCd0JjQmtCe0JvQkAor0J/QntCb0JXQlNCY0KbQkCDQlNCj0KjQkNCd0JrQkAor0J/QntCb0JXQndCU0JXQoCDQodCe0KTQmNCI0JAKK9Cf0J7Qm9CV0KDQnNCQ0J0g0JHQldCb0JAKK9Cf0J7Qm9CV0KDQnNCQ0J0g0JzQmNCb0JjQptCQCivQn9Ce0JvQldCi0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQn9Ce0JvQldCi0J4g0JTQntCc0JXQndCY0JoKK9Cf0J7Qm9CV0KLQniDQmNCS0JDQnQor0J/QntCb0JPQkNCgINCY0KjQotCS0JDQnQor0J/QntCb0JjQiyDQgtCj0KDQkAor0J/QntCb0JjQiyDQkdCe0KjQmtCeCivQn9Ce0JvQmNCLINCU0JDQndCY0KbQkAor0J/QntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7Qm9CY0Isg0InQo9CR0JjQptCQCivQn9Ce0JvQmNCLINCc0JDQoNCY0IjQkNCdCivQn9Ce0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0J7Qm9CY0JzQkNCmINCQ0J3QgtCV0JvQmNCI0JAKK9Cf0J7Qm9CY0J0g0ILQo9Cg0JAKK9Cf0J7Qm9CY0J0g0JvQkNCh0JvQngor0J/QntCb0JjQndCh0JrQmCDQkNCg0JDQndCa0JAKK9Cf0J7QidCQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0InQkNCn0JrQmCDQnNCY0JvQmNCm0JAKK9Cf0J7QidCQ0KfQmtCYINCc0JjQm9CY0KbQkAor0J/QntCJ0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0J/QntCJ0JDQmiDQgtCV0KDQggor0J/QntCJ0JDQmiDQldCS0JAKK9Cf0J7QidCQ0Jog0KTQoNCQ0IrQngor0J/QntCJ0JDQmiDQm9CQ0KHQm9CeCivQn9Ce0InQkNCaINCc0JjQqNCQCivQn9Ce0InQkNCaINCc0JjQpdCQ0IkKK9Cf0J7QidCQ0Jog0JzQmNCb0JrQkAor0J/QntCJ0JDQmiDQnNCY0J7QlNCg0JDQkwor0J/QntCJ0JDQmiDQnNCY0J7QlNCg0JDQkwor0J/QntCJ0JDQmiDQndCY0JrQntCb0JAKK9Cf0J7QidCQ0Jog0J3QmNCa0J7Qm9CQCivQn9Ce0InQkNCaINCf0JXQotCQ0KAKK9Cf0J7QidCQ0Jog0KDQkNCd0JrQngor0J/QntCJ0JDQmtCe0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQn9Ce0InQkNCd0KHQmtCYINCI0J7QktCY0KbQkAor0J/QntCJ0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9Cf0J7QidCQ0J3QodCa0Jgg0KHQotCe0IjQkNCdCivQn9Ce0InQmNCn0JDQmiDQkNCd0KLQlQor0J/QntCJ0JjQp9CQ0Jog0InQo9CR0JDQnQor0J/QntCJ0JjQiyDQoNCV0KTQmNCaCivQn9Ce0InQntCS0JrQkCDQiNCQ0J0KK9Cf0J7QidCS0JDQqCDQiNCe0JbQldCkCivQn9Ce0JvQntCI0JDQpiDQm9Cj0JrQkAor0J/QntCb0J7QktCY0Isg0JrQntCh0KLQkAor0J/QntCb0J7QktCY0Isg0KHQotCV0JLQngor0J/QntCb0J7QktCY0J3QkCDQgtCe0KDQgtCVCivQn9Ce0JvQntCS0JjQndCQINCU0JDQndCY0IjQldCbCivQn9Ce0JvQntCS0JjQndCQINCY0KHQkAor0J/QntCb0J7QktCY0J3QkCDQnNCY0JvQkNCdCivQn9Ce0JvQntCS0JjQndCQINCc0JjQm9CY0KbQkAor0J/QntCb0J7QktCY0J3QkCDQnNCY0JvQntCg0JDQlAor0J/QntCb0J7QktCY0J3QkCDQndCQ0JTQkAor0J/QntCb0J7QktCY0J3QkCDQndCY0JrQntCb0JAKK9Cf0J7Qm9Ce0JLQmNCd0JAg0J/Qm9CV0JzQldCd0JrQkAor0J/QntCb0J7QktCY0J3QkCDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0JvQntCS0JjQndCQINCh0JvQntCR0J7QlNCQ0J0KK9Cf0J7Qm9Ce0JLQmNCd0JAg0KHQotCV0JLQngor0J/QntCb0J7QktCY0J3QkCDQotCe0JTQntCgCivQn9Ce0JvQntCS0JjQndCQINCS0JvQkNCU0JjQnNCY0KAKK9Cf0J7Qm9Ce0JLQmNCd0JAg0JLQm9CQ0JTQngor0J/QntCb0J7QktCY0J3QodCa0Jgg0KHQkNCS0JAKK9Cf0J7Qm9Ci0KPQoNCQINCW0KPQltCQ0J3QkAor0J/QntCb0KLQo9Cg0JAg0JPQkNCR0J7QoAor0J/QntCb0KLQo9Cg0JAg0JjQoNCV0J3QkAor0J/QntCb0KLQo9Cg0JAg0JzQmNCg0JrQngor0J/QntCb0KPQltCQ0J3QodCa0Jgg0JjQktCQ0J3QmtCQCivQn9Ce0JvQo9Cc0JjQoNCQ0KYg0JzQmNCb0JjQptCQCivQn9Ce0JvQo9Ci0JAg0JvQmNCd0JAKK9Cf0J7Qm9CS0JXQoNCV0JbQkNCdLdCe0JHQqNCj0KHQoiDQi9CV0IvQmNCb0JjQiNCQCivQn9Ce0JvQl9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0JvQl9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qm9CX0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQn9Ce0JvQl9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qm9CX0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/QntCc0J7QoNCY0KjQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCd0JPQniDQltCj0JbQkNCd0JAKK9Cf0J7QndCT0J4g0IjQkNCd0J7QqAor0J/QntCd0JPQniDQm9CQ0KHQm9CeCivQn9Ce0J3Qk9CeINCh0KLQldCS0JDQnQor0J/QntCK0JDQoNCQ0KYg0KHQkNCS0J4KK9Cf0J7QitCQ0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9Ce0IrQkNCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J/QntCK0JDQktCY0Isg0KHQmNCd0JjQqNCQCivQn9Ce0IrQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QntCK0JXQktCY0Isg0J/QldCi0JDQoAor0J/QntCK0JXQktCY0Isg0KHQn9CQ0KHQkNCdCivQn9Ce0IrQldCS0JjQiyDQl9CS0JXQl9CU0JDQnQor0J/QntCK0JjQp9CQ0J0g0KXQntCg0JjQodCb0JDQkgor0J/QntCK0JjQp9CQ0J0g0IjQkNCdCivQn9Ce0IrQmNCn0JDQnSDQiNCe0KHQmNCfCivQn9Ce0IrQmNCT0JXQoCDQgtCj0KDQkAor0J/QntCK0JjQk9CV0KAg0JjQktCQ0J0KK9Cf0J7QndCe0IvQmtCeINCn0JXQlNCe0JzQmNCgCivQn9Ce0J3QntCg0JDQpiDQm9CQ0JfQkNCgCivQn9Ce0J8t0IjQntCS0JDQndCe0JIg0JLQldCg0JAKK9Cf0J7QnyDQl9CU0JXQndCa0J4KK9Cf0J7Qn9CC0KPQoNCC0JXQkiDQnNCY0JvQkNCdCivQn9Ce0J/QkCDQodCf0JDQodCV0J3QmNCI0JAKK9Cf0J7Qn9CQ0JTQmNCLINCW0JjQktCQ0J0KK9Cf0J7Qn9CQ0JTQmNCLINCW0JjQktCQCivQn9Ce0J/QkNCU0JjQiyDQltCY0JLQmtCeCivQn9Ce0J/QkNCU0JjQiyDQgtCe0JrQngor0J/QntCf0JDQlNCY0Isg0ILQo9Ca0JAKK9Cf0J7Qn9CQ0JTQmNCLINCR0KDQkNCd0JrQkAor0J/QntCf0JDQlNCY0Isg0JPQntCI0JrQngor0J/QntCf0JDQlNCY0Isg0JjQodCY0JTQntCgCivQn9Ce0J/QkNCU0JjQiy3QiNCQ0J3Qo9CX0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0J7Qn9CQ0JTQmNCLINCJ0JjQidCQ0J3QkAor0J/QntCf0JDQlNCY0Isg0InQo9CR0JjQptCQCivQn9Ce0J/QkNCU0JjQiyDQidCj0JHQngor0J/QntCf0JDQlNCY0Isg0JzQmNCb0JDQnQor0J/QntCf0JDQlNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9CQ0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QkNCU0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0JDQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0J7Qn9CQ0JTQmNCLINCd0JXQlNCV0InQmtCeCivQn9Ce0J/QkNCU0JjQiyDQndCV0JPQntCS0JDQnQor0J/QntCf0JDQlNCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QkNCU0JjQiyDQndCe0JLQkNCaCivQn9Ce0J/QkNCU0JjQiyDQn9CV0KLQmtCeCivQn9Ce0J/QkNCU0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QntCf0JDQlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0J7Qn9CQ0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQn9Ce0J/QkNCU0JjQiyDQoNCQ0KLQntCc0JjQoAor0J/QntCf0JDQlNCY0Isg0KHQmNCb0JLQmNCI0JAKK9Cf0J7Qn9CQ0JTQmNCLINCh0JvQkNCS0JrQngor0J/QntCf0JDQlNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0J/QntCf0JDQlNCY0Isg0KHQotCQ0J3QkAor0J/QntCf0JDQlNCY0Isg0KHQotCe0IjQmNCm0JAKK9Cf0J7Qn9CQ0JTQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cf0J7Qn9CQ0JTQmNCLINCi0JjQpdCe0JzQmNCgCivQn9Ce0J/QkNCU0JjQiyDQktCV0KDQkAor0J/QntCf0JDQlNCY0Isg0JLQntCI0JjQodCb0JDQkiDQkNCU0JLQntCa0JDQogor0J/QntCf0JDQlNCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QntCf0JDQoNCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QkNCg0JAg0JjQm9CY0IjQkAor0J/QntCf0JDQoNCQINCJ0KPQkdCY0KjQkAor0J/QntCf0JDQoNCQINCi0JDQlNCY0IjQkAor0J/QntCf0JDQoNCQINCX0J7QoNCQ0J0KK9Cf0J7Qn9CQ0KDQmNCLINCW0JjQktCe0IjQmNCdCivQn9Ce0J/QkNCg0JjQiyDQmNCh0JjQlNCe0KAKK9Cf0J7Qn9CQ0KDQmNCLINCc0JDQoNCY0KbQkAor0J/QntCf0JDQoNCY0Isg0J3QldCd0JDQlAor0J/QntCf0JTQkNCd0JrQntCSINCI0KPQlNCY0KLQkAor0J/QntCf0JXQiNCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQn9Ce0J/QldCI0JrQntCSINCJ0JjQidCQ0J3QkAor0J/QntCf0JXQiNCa0J7QkiDQnNCQ0KDQkAor0J/QntCf0JXQndCT0J7QkiDQktCQ0KHQkAor0J/QntCf0JXQodCa0KMg0KDQo9CW0JAKK9Cf0J7Qn9CT0JvQmNCT0J7QoNCY0J0g0J/QkNCS0JvQlQor0J/QntCf0JjQiyDQltCV0InQmtCeCivQn9Ce0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QmNCLINCQ0J3QgtCV0JvQmtCeCivQn9Ce0J/QmNCLINCR0KDQkNCd0JrQngor0J/QntCf0JjQiyDQkdCj0JTQmNCc0JjQoAor0J/QntCf0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9CY0Isg0JTQo9Co0JDQnQor0J/QntCf0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QmNCLINCU0KPQqNCQ0J0KK9Cf0J7Qn9CY0Isg0JXQlNCY0KLQkAor0J/QntCf0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QntCf0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/QntCf0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0J7Qn9CY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QmNCLINCb0KPQmtCQCivQn9Ce0J/QmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9CY0Isg0JzQmNCb0JDQnQor0J/QntCf0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QmNCLINCc0JjQm9CY0KbQkAor0J/QntCf0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QntCf0JjQiyDQnNCY0KDQkAor0J/QntCf0JjQiyDQnNCY0KDQkAor0J/QntCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0JjQiyDQndCQ0JTQkAor0J/QntCf0JjQiy3Qn9CQ0InQmNCLINCk0JXQntCU0J7QoNCQCivQn9Ce0J/QmNCLINCg0JDQlNCY0JLQntCICivQn9Ce0J/QmNCLINCh0JDQktCQCivQn9Ce0J/QmNCLINCh0JDQktCeCivQn9Ce0J/QmNCLINCh0J3QldCW0JDQndCQCivQn9Ce0J/QmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7Qn9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QntCf0JjQiyDQotCe0JzQkAor0J/QntCf0JjQiyDQktCj0JrQmNCm0JAKK9Cf0J7Qn9CY0Isg0JfQntCg0JAKK9Cf0J7Qn9CY0J0g0JjQktCQ0J0KK9Cf0J7Qn9CY0J0g0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9CY0J0g0JLQmNCi0J7QnNCY0KAKK9Cf0J7Qn9CY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0JjQktCe0JTQkCDQkdCe0JbQmNCU0JDQoAor0J/QntCf0JjQktCe0JTQkCDQnNCY0JvQntCS0JDQnQor0J/QntCf0JjQktCe0JTQkCDQnNCY0JvQo9Ci0JjQnQor0J/QntCf0JjQktCe0JTQkCDQndCV0JTQldCJ0JrQngor0J/QntCf0JjQktCe0JTQkCDQn9CV0KLQkNCgCivQn9Ce0J/QmNCS0J7QlNCQINCg0JDQlNCY0KHQm9CQ0JIKK9Cf0J7Qn9Cc0JjQpdCQ0IjQm9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QnNCY0KXQkNCI0JvQntCSINCU0KPQqNCQ0J0KK9Cf0J7Qn9Cd0J7QktCQ0JrQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Cd0J7QktCQ0JrQntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Cd0J7QktCQ0JrQntCSINCc0JjQm9CY0KbQkAor0J/QntCf0J7QkiDQp9CV0JTQntCc0JjQoAor0J/QntCf0J7QkiDQltCQ0KDQmtCeCivQn9Ce0J/QntCSINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JIt0JbQmNCa0JXQm9CY0Isg0JfQntCg0JAKK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQkAor0J/QntCf0J7QkiDQltCY0JLQmtCeCivQn9Ce0J/QntCSINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQngor0J/QntCf0J7QkiDQltCY0JLQmtCeCivQn9Ce0J/QntCSINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQngor0J/QntCf0J7QkiDQgtCe0JrQkAor0J/QntCf0J7QkiDQgtCe0JrQkAor0J/QntCf0J7QkiDQgtCe0KDQgtCVCivQn9Ce0J/QntCSINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JIg0ILQntCg0ILQlQor0J/QntCf0J7QkiDQgtCe0KDQgtCVCivQn9Ce0J/QntCSINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JIg0ILQntCg0ILQlQor0J/QntCf0J7QkiDQgtCj0KDQgtCY0J3QkAor0J/QntCf0J7QkiDQgtCj0KDQkAor0J/QntCf0J7QkiDQgtCj0KDQkAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCd0ILQkAor0J/QntCf0J7QkiDQkNCd0JTQntCdCivQn9Ce0J/QntCSINCQ0J3QmtCY0KbQkAor0J/QntCf0J7Qki3QkdCQ0KjQkCDQktCV0KDQkAor0J/QntCf0J7QkiDQkdCe0KDQmNCS0J7QiCDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J/QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmtCeCivQn9Ce0J/QntCSINCR0KDQkNCd0JrQngor0J/QntCf0J7QkiDQlNCQ0J3QmNCm0JAKK9Cf0J7Qn9Ce0JIg0JTQkNCd0JjQptCQCivQn9Ce0J/QntCSINCU0JDQndCY0JvQngor0J/QntCf0J7QkiDQlNCQ0J3QmNCb0J4KK9Cf0J7Qn9Ce0JIg0JTQkNCg0JjQndCa0JAKK9Cf0J7Qn9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QntCf0J7QkiDQlNCg0JDQk9CQ0J3QkAor0J/QntCf0J7QkiDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQkNCdCivQn9Ce0J/QntCSINCU0KDQkNCT0JDQnQor0J/QntCf0J7QkiDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQkAor0J/QntCf0J7QkiDQlNCg0JDQk9CY0KjQkAor0J/QntCf0J7QkiDQlNCg0JDQk9CY0KbQkAor0J/QntCf0J7Qki3QlNCg0JDQk9CY0J0g0J7Qm9CT0JAKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J/QntCf0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQn9Ce0J/QntCSINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCc0JjQoAor0J/QntCf0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQn9Ce0J/QntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cf0J7Qn9Ce0JIg0JTQo9Co0JDQnSDQlNCgCivQn9Ce0J/QntCSINCU0KPQqNCQ0J0KK9Cf0J7Qn9Ce0JIg0JTQo9Co0JDQnQor0J/QntCf0J7QkiDQlNCj0KjQkNCdCivQn9Ce0J/QntCSINCU0KPQqNCa0JAKK9Cf0J7Qn9Ce0JIg0JPQkNCS0KDQkAor0J/QntCf0J7QkiDQk9Ce0KDQkNCdCivQn9Ce0J/QntCSINCT0J7QoNCU0JDQndCQINCU0KAKK9Cf0J7Qn9Ce0JIg0JPQntCg0JTQkNCd0JAKK9Cf0J7Qn9Ce0JIg0JPQntCg0JTQkNCd0JAKK9Cf0J7Qn9Ce0JIg0JjQm9Ce0J3QmtCQCivQn9Ce0J/QntCSINCY0KHQkAor0J/QntCf0J7QkiDQmNCS0JDQndCa0JAKK9Cf0J7Qn9Ce0JIg0JjQktCQ0J0KK9Cf0J7Qn9Ce0JIg0JjQktCa0JAKK9Cf0J7Qn9Ce0JIg0IjQldCb0JAKK9Cf0J7Qn9Ce0JIg0IjQldCb0JAKK9Cf0J7Qn9Ce0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0J7Qn9Ce0JIg0IjQldCX0JTQmNCc0JjQoAor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCj0JPQntCh0JvQkNCSCivQn9Ce0J/QntCSINCI0KPQkwor0J/QntCf0J7QkiDQiNCj0JvQmtCQCivQn9Ce0J/QntCSINCa0JDQotCY0KbQkAor0J/QntCf0J7QkiDQmtCQ0KLQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JrQntCh0JAKK9Cf0J7Qn9Ce0JIg0JrQntCS0JjQndCa0JAKK9Cf0J7Qn9Ce0JIg0JvQkNCX0JDQoAor0J/QntCf0J7QkiDQm9CQ0JfQkNCgCivQn9Ce0J/QntCSINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JIg0JvQkNCX0JDQoAor0J/QntCf0J7QkiDQm9CV0J3QmtCQCivQn9Ce0J/QntCSINCJ0JjQidCQ0J3QkAor0J/QntCf0J7QkiDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JIg0InQo9CR0JjQqNCQCivQn9Ce0J/QntCSINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QkiDQidCj0JHQmNCm0JAKK9Cf0J7Qn9Ce0JIg0InQo9CR0JjQptCQCivQn9Ce0J/QntCSINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QkiDQidCj0JHQmNCd0JrQkAor0J/QntCf0J7QkiDQidCj0JHQntCc0JjQoAor0J/QntCf0J7QkiDQnNCQ0KDQkAor0J/QntCf0J7QkiDQnNCQ0KDQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCSINCc0JDQoNCY0IjQkAor0J/QntCf0J7QkiDQnNCQ0KDQmNCd0JrQngor0J/QntCf0J7QkiDQnNCQ0KDQmtCeCivQn9Ce0J/QntCSINCc0JDQoNCa0J4KK9Cf0J7Qn9Ce0JIg0JzQkNCg0JrQngor0J/QntCf0J7QkiDQnNCY0JvQkNCU0JjQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CV0J3QkAor0J/QntCf0J7QkiDQnNCY0JvQldCd0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCSINCc0JjQm9CY0KbQkAor0J/QntCf0J7QkiDQnNCY0JvQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9Ca0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0J7QqAor0J/QntCf0J7QkiDQnNCY0JvQntCoCivQn9Ce0J/QntCSINCc0JjQm9Ce0IjQlQor0J/QntCf0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQo9Ci0JjQnQor0J/QntCf0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QkiDQnNCY0KDQiNCQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0J/QntCf0J7QkiDQnNCY0KLQkAor0J/QntCf0J7QkiDQnNCe0JzQp9CY0JvQngor0J/QntCf0J7QkiDQndCV0JTQldCJ0JrQngor0J/QntCf0J7QkiDQndCV0J3QkNCi0JrQkAor0J/QntCf0J7QkiDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JIg0J3QmNCd0JAKK9Cf0J7Qn9Ce0JIg0J3QmNCd0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JIg0J3QntCS0JDQmgor0J/QntCf0J7QkiDQntCR0KDQkNCUCivQn9Ce0J/QntCSLdCe0JHQoNCe0JLQkNCn0JrQmCDQodCe0KTQmNCI0JAKK9Cf0J7Qn9Ce0JIg0J7Qm9CT0JAKK9Cf0J7Qn9Ce0JIg0J/QkNCI0JAKK9Cf0J7Qn9Ce0JIg0J/QkNCS0JvQlQor0J/QntCf0J7QkiDQn9CQ0JLQm9CVCivQn9Ce0J/QntCSINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JIg0J/QldCg0JAKK9Cf0J7Qn9Ce0JIg0J/QldCi0JDQoAor0J/QntCf0J7QkiDQn9CV0KLQkNCgCivQn9Ce0J/QntCSINCf0JvQkNCi0J7QnQor0J/QntCf0J7QkiDQn9Cg0JXQlNCg0JDQkwor0J/QntCf0J7QkiDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCc0JjQm9CQCivQn9Ce0J/QntCSINCg0JDQlNCe0IjQmtCQCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0KLQntCc0JjQoAor0J/QntCf0J7QkiDQoNCV0InQkAor0J/QntCf0J7QkiDQoNCe0JTQntCJ0KPQkQor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQldCi0JAKK9Cf0J7Qn9Ce0JIg0KHQldCa0KPQm9CQCivQn9Ce0J/QntCSINCh0JjQndCY0KjQkAor0J/QntCf0J7QkiDQodCb0JDQktCY0KbQkAor0J/QntCf0J7QkiDQodCb0JDQktCa0J4KK9Cf0J7Qn9Ce0JIg0KHQm9CQ0JLQmtCeCivQn9Ce0J/QntCSINCh0JvQkNCS0JrQngor0J/QntCf0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQn9Ce0J/QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQndCV0JbQkNCd0JAKK9Cf0J7Qn9Ce0JIg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCSINCh0J/QkNCh0J7QiNCVCivQn9Ce0J/QntCSINCh0KDQldCU0J7QiNCVCivQn9Ce0J/QntCSINCh0KLQkNCd0JAKK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JDQnQor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JDQnQor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JAKK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQmNCm0JAKK9Cf0J7Qn9Ce0JIg0KHQotCe0IjQkNCd0JrQkAor0J/QntCf0J7QkiDQodCS0JXQotCb0JDQndCQCivQn9Ce0J/QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0J7Qn9Ce0JIg0KHQktCV0KLQntCX0JDQoAor0J/QntCf0J7QkiDQotCQ0KLQntCc0JjQoAor0J/QntCf0J7QkiDQotCe0JTQntCgCivQn9Ce0J/QntCSINCi0KDQmNCS0JAKK9Cf0J7Qn9Ce0JIg0KPQoNCe0KgKK9Cf0J7Qn9Ce0JIg0JLQkNCh0JjQm9CY0IjQlQor0J/QntCf0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQn9Ce0J/QntCSINCS0JDQodCY0JvQmNCI0JUKK9Cf0J7Qn9Ce0JIg0JLQldCg0JAKK9Cf0J7Qn9Ce0JIg0JLQldCg0JAKK9Cf0J7Qn9Ce0JIg0JLQldCg0JAKK9Cf0J7Qn9Ce0JIg0JLQldCg0JjQptCQCivQn9Ce0J/QntCSINCS0JXQodCV0JvQmNCdCivQn9Ce0J/QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cf0J7Qn9Ce0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QkiDQktCe0IjQmNCdCivQn9Ce0J/QntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JIg0JLQo9Ca0J7QodCQ0JLQkAor0J/QntCf0J7QkiDQl9Cb0JDQotCQCivQn9Ce0J/QntCSINCX0JvQkNCi0JjQptCQCivQn9Ce0J/QntCSINCX0J7QoNCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCn0JDQodCb0JDQkiDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0J/QntCf0J7QktCY0Isg0KfQldCU0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiy3Qp9CV0IjQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9Ce0J/QntCS0JjQiyDQqNCL0JXQn9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JXQidCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCe0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQltCj0JbQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0J/QntCf0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCC0KPQoNCQCivQn9Ce0J/QntCS0JjQiyDQgtCj0KDQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCC0KPQoNCeCivQn9Ce0J/QntCS0JjQiyDQgtCj0KDQngor0J/QntCf0J7QktCY0Isg0JDQmtCh0JXQndCi0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCf0KDQkNCS0J3QmNCaCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQn9Ce0J/QntCS0JjQiyDQkNCd0ILQldCbCivQn9Ce0J/QntCS0JjQiyDQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCY0KbQkAor0J/QntCf0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QltCQCivQn9Ce0J/QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QntCf0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9Ce0J/QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQn9Ce0J/QntCS0JjQiyDQkdCe0IjQkNCdCivQn9Ce0J/QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QoNCI0JDQnQor0J/QntCf0J7QktCY0Isg0JHQntCg0JrQkAor0J/QntCf0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQptCS0JXQiNCQCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3Qp9CY0JrQkAor0J/QntCf0J7QktCY0Isg0JTQkNCd0JUKK9Cf0J7Qn9Ce0JLQmNCLINCU0JDQndCVCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0JDQndCY0KbQkAor0J/QntCf0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3QmtCY0KbQkAor0J/QntCf0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCV0KHQkAor0J/QntCf0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQngor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JjQqNCQINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQn9Ce0J/QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QiNCb0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQmtCeINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCV0JzQmNCbCivQn9Ce0J/QntCS0JjQiyDQpNCV0J7QlNCe0KDQkAor0J/QntCf0J7QktCY0Isg0KTQldCe0JTQntCgCivQn9Ce0J/QntCS0JjQiyDQk9Ce0IjQmtCeCivQn9Ce0J/QntCS0JjQiyDQk9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JjQm9CVCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCg0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCY0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCI0JDQodCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JXQpNCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QntCf0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9Ce0J/QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QntCf0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCeCivQn9Ce0J/QntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0JDQotCY0KbQkAor0J/QntCf0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0J/QntCf0J7QktCY0Isg0JrQntCh0KLQkCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQn9Ce0J/QntCS0JjQiyDQmtCe0KHQotCQCivQn9Ce0J/QntCS0JjQiyDQmtCe0KHQotCQCivQn9Ce0J/QntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQmtCg0KHQotCQCivQn9Ce0J/QntCS0JjQiyDQmtCg0KHQotCeCivQn9Ce0J/QntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JXQm9CQCivQn9Ce0J/QntCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAg0JTQoAor0J/QntCf0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QntCf0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQnNCQ0JrQodCY0JwKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQkNCg0JrQniDQlNCgINCb0JXQmtCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCa0J4g0JzQoCDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQn9Ce0J/QntCS0JjQiyDQnNCY0KXQkNCI0JvQniDQlNCgCivQn9Ce0J/QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkAor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CV0KLQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CVCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J0g0JTQoAor0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCoCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCoCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCoCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QntCf0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9Ce0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QntCf0J7QktCY0Isg0JzQmNCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QntCf0J7QktCY0Isg0JzQm9CQ0JTQmNCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9Ce0J/QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QntCf0J7QktCY0Isg0J3QkNCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0JTQkAor0J/QntCf0J7QktCY0Isg0J3QkNCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0J/QntCf0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQndCV0ILQngor0J/QntCf0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9Ce0J/QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J/QntCf0J7QktCY0Isg0J3QldCd0JDQlAor0J/QntCf0J7QktCY0Isg0J3QldCd0JDQlAor0J/QntCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QntCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QntCf0J7QktCY0Isg0J3QntCS0JDQmgor0J/QntCf0J7QktCY0Isg0J3QntCS0JDQmgor0J/QntCf0J7QktCY0Isg0J7QkdCg0JDQlAor0J/QntCf0J7QktCY0Isg0J7QkdCg0JDQlAor0J/QntCf0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0J7Qn9Ce0JLQmNCLINCe0JvQk9CQCivQn9Ce0J/QntCS0JjQiyDQntCb0JPQkAor0J/QntCf0J7QktCY0Isg0J/QkNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQoNCQCivQn9Ce0J/QntCS0JjQiyDQn9CV0KDQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQoNCeCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCVCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQlQor0J/QntCf0J7QktCY0Isg0KDQkNCU0JUKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0KDQkNCU0KPQmwor0J/QntCf0J7QktCY0Isg0KDQkNCI0JrQngor0J/QntCf0J7QktCY0Isg0KDQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0KDQkNCi0JrQngor0J/QntCf0J7QktCY0Isg0KDQkNCS0JjQiNCe0IjQm9CQCivQn9Ce0J/QntCS0JjQiyDQoNCV0InQkCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0KHQkNCK0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QktCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCS0JjQiyDQodCQ0JLQkAor0J/QntCf0J7QktCY0Isg0KHQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQodCQ0JLQngor0J/QntCf0J7QktCY0Isg0KHQldCa0KPQm9CQCivQn9Ce0J/QntCS0JjQiyDQodCY0J3QmNCo0JAg0JTQoCDQm9CV0JrQkNCgCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeINCU0JjQn9CbINCe0JXQpgor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQnNCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQodCe0IrQkAor0J/QntCf0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQodCi0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQn9Ce0J/QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QntCf0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCi0JXQktCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0J/QntCf0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9Ce0J/QntCS0JjQiyDQotCV0J7QlNCe0KAKK9Cf0J7Qn9Ce0JLQmNCLINCi0JXQoNCV0JfQkAor0J/QntCf0J7QktCY0Isg0KLQntCU0J7QoAor0J/QntCf0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0KLQntCc0J4KK9Cf0J7Qn9Ce0JLQmNCLINCj0JPQidCV0KjQkAor0J/QntCf0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QntCf0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QntCf0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQn9Ce0J/QntCS0JjQiyDQktCV0InQmtCeCivQn9Ce0J/QntCS0JjQiyDQktCV0KDQkAor0J/QntCf0J7QktCY0Isg0JLQldCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQoNCQCivQn9Ce0J/QntCS0JjQiyDQktCV0KDQkAor0J/QntCf0J7QktCY0Isg0JLQldCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQoNCY0KbQkAor0J/QntCf0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0JjQlNCe0IjQlQor0J/QntCf0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0J/QntCf0J7QktCY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCeCivQn9Ce0J/QntCS0JjQiyDQktCe0IjQmNCdCivQn9Ce0J/QntCS0JjQiyDQktCe0IjQmNCdCivQn9Ce0J/QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQktCj0KfQmNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQp9Ca0J4KK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQiNCQ0JTQmNCdCivQn9Ce0J/QntCS0JjQiyDQktCj0JrQkNCU0JjQnQor0J/QntCf0J7QktCY0Isg0JLQo9Ca0JDQlNCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0JTQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JfQlNCg0JDQktCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0JvQkNCi0J7QiNCQCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQmtCQCivQn9Ce0J/QntCS0JjQiyDQl9Cj0JfQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQltCQ0KDQmtCeCivQn9Ce0J/QntCS0JjQptCa0Jgg0JHQntCg0JjQodCb0JDQkgor0J/QntCf0J7QktCY0KbQmtCYINCI0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQptCa0Jgg0InQo9CR0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0KbQmtCYINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QntCS0JjQptCa0Jgg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCS0JjQptCa0Jgg0JzQmNCb0J7QqAor0J/QntCf0J7QktCY0KbQmtCYINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQoNCQ0JTQntCc0JjQoAor0J/QntCf0J7QktCY0KbQmtCYINCg0JDQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQptCa0Jgg0KHQkNCb0J7QnNCQCivQn9Ce0J/QntCS0JjQptCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQptCa0Jgg0KLQkNCi0IjQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQotCV0J7QlNCe0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0KHQmtCYINCg0JDQlNCe0IjQmtCQCivQn9Ce0J/QntCS0KHQmtCYINCS0JXQndCa0J4KK9Cf0J7Qn9Cg0JbQkNCdINCc0JjQm9CQ0J0KK9Cf0J7Qn9Cg0JbQkNCdINCd0JjQmtCe0JvQkAor0J/QntCf0KDQltCQ0J0g0JLQkNCb0JXQndCi0JjQndCQCivQn9Ce0J/QoNCW0JXQnSDQkdCe0KDQmNCS0J7QiAor0J/QntCf0KHQkNCS0JjQnSDQlNCj0KjQkNCdCivQn9Ce0J/QodCQ0JLQmNCdINCS0JXQm9CY0JzQmNCgCivQn9Ce0J/QotCV0KjQmNCdINCC0J7QoNCC0JUKK9Cf0J7Qn9Ci0JXQqNCY0J0g0JvQkNCX0JDQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0J/QntCf0KLQldCo0JjQnSDQnNCY0JvQkNCU0JjQndCa0JAKK9Cf0J7Qn9Ci0JXQqNCY0J0g0KHQotCV0JLQkNCdCivQn9Ce0KDQp9CQINCJ0JjQidCQ0J3QkAor0J/QntCg0KfQkCDQoNCQ0JzQmNCXCivQn9Ce0KDQntCo0JjQnSDQlNCg0JDQk9CY0IrQkAor0J/QntCg0J7QqNCY0J0g0JPQldCe0KDQk9CY0IjQlSDQlNCgINCb0JXQmtCQ0KAKK9Cf0J7QoNCe0JHQmNCLINCc0JjQm9CQ0J0KK9Cf0J7QoNCe0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7QoNCe0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7QoNCe0JHQmNCLINCd0JjQiNCQ0JcKK9Cf0J7QoNCe0JHQmNCLINCd0JjQmtCe0JvQkAor0J/QntCg0J7QkdCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCg0J7Qn9CQ0KIg0JHQntCo0JrQngor0J/QntCg0J7Qn9CQ0KLQmNCLINCX0J7QoNCQCivQn9Ce0KHQkNCS0JDQpiDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cf0J7QodCb0JDQnSDQmNCS0JDQnQor0J/QntCh0KLQntCb0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J/QntCiINCk0KDQkNCK0JAKK9Cf0J7QoiDQiNCe0KHQmNCfCivQn9Ce0KIg0JzQmNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7QotCQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0J/QntCi0KUg0InQo9CU0JXQktCY0KIKK9Cf0J7QotCY0Isg0JzQkNCg0JjQiNCV0JvQkAor0J/QntCi0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9Ce0KLQmtCe0IrQkNCaINCI0J7QktCQ0J0KK9Cf0J7QotCa0J7QitCQ0Jog0JzQkNCg0JAKK9Cf0J7QotCa0J7QitCQ0Jog0J3QmNCa0J7Qm9CQCivQn9Ce0KLQmtCe0IrQkNCaINCf0JXQotCQ0KAKK9Cf0J7QotCa0J7QitCQ0Jog0KHQntCk0JjQiNCQCivQn9Ce0KLQmtCe0IrQkNCaINCh0KLQkNCd0JrQngor0J/QntCi0JrQntCK0JDQmiDQodCi0JXQktCeCivQn9Ce0KLQmtCe0IrQkNCaINCS0JvQkNCU0J4KK9Cf0J7QotCa0J7Ql9CQ0KDQkNCmINCI0KPQm9CY0IjQkNCd0JAKK9Cf0J7QotCd0JXQoCDQotCV0KDQldCX0JjQiNCQCivQn9Ce0KLQntCa0J7QktCY0Isg0JDQkdCU0KPQm9CQ0KUKK9Cf0J7QotCe0JrQntCS0JjQiyDQodCc0JDQiNCeCivQn9Ce0KLQn9CQ0KDQmNCLINCI0JXQm9CY0KbQkAor0J/QntCi0KDQkNCdINCc0JjQqNCQCivQn9Ce0KLQoNCV0JHQmNCLINCC0KPQoNCeCivQn9Ce0KLQoNCV0JHQmNCLINCU0J7QkdCg0JjQm9CQCivQn9Ce0KLQoNCV0JHQmNCLINCU0KDQkNCT0JjQptCQCivQn9Ce0KLQoNCV0JHQmNCLINCc0JjQm9CVCivQn9Ce0KLQoNCV0JHQmNCLINCc0JjQm9CVCivQn9Ce0KLQoNCV0JHQmNCLINCc0JjQm9CY0KbQkAor0J/QntCi0KDQldCR0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7QotCg0JXQkdCY0Isg0KDQkNCU0JUKK9Cf0J7QotCg0JXQkdCY0Isg0KHQm9CQ0JLQmtCeCivQn9Ce0KLQoNCV0JHQmNCLINCh0J7QpNCY0IjQkAor0J/QntCi0KPQoNCY0Isg0KHQotCV0JLQkAor0J/QntCj0KfQmtCYINCg0JDQlNCY0KHQm9CQ0JIKK9Cf0J7QktCQINCc0JjQoNCe0KHQm9CQ0JLQkAor0J/QntCS0JDQltCQ0J0g0JDQndCU0KDQmNCI0JAKK9Cf0J7QktCQ0JbQkNCdINCc0JDQoNCY0IjQkAor0J/QntCS0JDQl9CQ0Jgg0JjQqNCi0JLQkNCdCivQn9Ce0JLQkNCX0JDQmCDQotCY0JHQntCgCivQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7QktCg0JbQkNCdINCh0JjQnNCeCivQn9Ce0JfQlNCQ0J0g0ILQo9Cg0J4KK9Cf0J7Ql9CU0JXQoCDQktCV0KDQntCd0JAKK9Cf0J7Ql9CU0JXQoNCV0KYg0KTQoNCQ0J3Qpgor0J/QntCX0J3QkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0J/QntCX0J3QkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9Ce0JfQndCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QntCX0J3QkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QntCX0J3QkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QntCX0J3QkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Ql9Cd0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cf0J7Ql9Cd0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cf0J7Ql9Cd0JjQiyDQgtCj0KDQngor0J/QntCX0J3QmNCLINCI0J7QktCeCivQn9Ce0JfQndCY0Isg0JzQmNCg0JAKK9Cf0J7Ql9Cd0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Ql9Ce0IjQldCS0JjQiyDQmtCb0JDQoNCQCivQn9Ce0JfQntCI0JXQktCY0Isg0KHQotCV0JLQkNCdCivQn9Cg0KfQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9Cg0KfQmNCLINCh0KLQiNCV0J/QkNCdCivQn9Cg0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQn9Cg0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQqNCQINCc0JjQoNCe0KHQm9CQ0JIg0JzQoAor0J/QoNCo0JAg0JLQldCg0JAKK9Cf0KDQi9CY0Isg0JjQktCQ0J0KK9Cf0KDQltCQ0KAg0J3QkNCU0JAKK9Cf0KDQltCV0JLQkNCJ0KHQmtCYINCd0JjQmtCe0JvQkAor0J/QoNCW0J3QmNCm0JAg0JzQmNCb0JDQndCQCivQn9Cg0JbQndCY0KbQkCDQl9Cb0JDQotCa0J4KK9Cf0KDQkNCo0KfQldCS0JjQiyDQkNCd0KLQntCd0JjQiNCQCivQn9Cg0JDQqNCn0JXQktCY0Isg0JfQntCg0JjQptCQCivQn9Cg0JDQqNCi0JDQm9CeINCc0JjQm9Cj0KLQmNCdCivQn9Cg0JDQqNCi0JDQm9CeINCf0JXQotCQ0KAKK9Cf0KDQkNCW0JjQiyDQkdCY0InQkNCd0JAKK9Cf0KDQkNCW0JjQiyDQkdCg0JDQndCa0J4KK9Cf0KDQkNCm0J3QldCgINCI0J7QodCY0J8KK9Cf0KDQkNCm0J3QldCgINCg0KPQltCY0KbQkAor0J/QoNCQ0JvQmNCm0JAg0InQo9CR0J7QnNCY0KAKK9Cf0KDQkNCb0JjQptCQINCd0JXQlNCV0InQmtCeCivQn9Cg0JDQm9CY0KbQkCDQodCi0JXQktCQ0J0KK9Cf0KDQkNCb0JjQptCQINCh0KLQldCS0JDQnQor0J/QoNCQ0JzQldCd0JrQniDQnNCY0KDQntCh0JvQkNCSCivQn9Cg0JDQnNCV0J3QmtCeINCd0JXQlNCV0InQmtCeCivQn9Cg0JDQnNCV0J3QmtCeINCg0JjQodCi0J4KK9Cf0KDQkNCc0JXQndCa0J4g0KHQoNCV0KLQngor0J/QoNCQ0J3QmNCLINCa0JDQotCY0KbQkAor0J/QoNCQ0J3QmNCLINCc0JjQoNCa0J4KK9Cf0KDQkNCd0JjQiyDQn9CV0KLQkNCgCivQn9Cg0JDQndCY0Isg0KLQntCk0JjQmwor0J/QoNCQ0IrQmNCLINCX0JvQkNCi0JrQngor0J/QoNCQ0IrQmtCY0Isg0JzQkNCg0JrQngor0J/QoNCQ0J3QmtCY0Isg0JzQmNCb0JUKK9Cf0KDQkNCS0JTQkCDQkdCe0KDQkdCQ0JvQkAor0J/QoNCQ0JLQlNCQINCb0JDQlNCY0KHQm9CQ0JIKK9Cf0KDQkNCS0JTQkCDQm9CQ0IjQntCoCivQn9Cg0JDQktCY0KbQkCDQldCS0JjQptCQCivQn9Cg0JDQktCY0KbQkCDQidCj0JHQntCc0JjQoAor0J/QoNCU0JjQiyDQndCV0JTQldCJ0JrQngor0J/QoNCV0KfQkNCd0JjQptCQINCR0J7QltCeCivQn9Cg0JXQqNCV0KDQnSDQiNCj0JvQmNCI0JDQndCQCivQn9Cg0JXQqNCe0JLQkCDQnNCY0KDQiNCQ0J3QkAor0J/QoNCV0JHQldCTINCU0KDQkNCT0JDQnQor0J/QoNCV0JHQmNCg0KfQldCS0JjQiyDQndCV0JLQldCd0JAKK9Cf0KDQldCR0JjQoNCQ0KfQldCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQn9Cg0JXQkdCY0KDQkNCn0JXQktCY0Isg0JvQkNCX0J4KK9Cf0KDQldCU0JAg0JDQo9Cg0JXQmwor0J/QoNCV0JTQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9Cg0JXQlNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCW0JXQidCa0J4KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCQ0J3QmtCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQkdCe0JbQngor0J/QoNCV0JTQntCI0JXQktCY0Isg0JHQntCW0J4KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCU0JDQndCY0KbQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQm9Cj0JrQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JUKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQndCV0J3QkNCUCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQn9CQ0JLQm9CVCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QoNCV0JTQntCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQodCY0JzQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0KHQmNCc0J4KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCh0KLQntCI0JDQnQor0J/QoNCV0JTQntCI0JXQktCY0Isg0KLQoNCY0JLQngor0J/QoNCV0JTQntCI0JXQktCY0Isg0JfQntCg0JAKK9Cf0KDQldCU0J7Qm9CQ0KYg0JTQoNCQ0JPQntCc0JjQoAor0J/QoNCV0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQn9Cg0JXQlNCg0JDQqNCa0Jgg0JTQoNCQ0JPQntCJ0KPQkQor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQkdCe0KDQkAor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KDQldCU0KDQkNCT0J7QktCY0Isg0J3QntCS0JDQmgor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQktCV0KHQldCb0JrQngor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQktCV0KHQndCQCivQn9Cg0JXQlNCg0JDQk9Ce0JLQmNCLINCX0JLQldCX0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QoNCV0JPQo9CdINCC0KPQoNCQCivQn9Cg0JXQk9Cj0J0g0J3QmNCa0J7Qm9CQCivQn9Cg0JXQk9Cj0J0g0J/QldCi0JDQoAor0J/QoNCV0JPQo9CdINCh0KLQldCS0JDQnQor0J/QoNCV0JPQo9CdINCX0J7QoNCQCivQn9Cg0JXQmtCQ0IjQkNCmINCW0JjQktCe0IjQmNCdCivQn9Cg0JXQmtCQ0IjQkNCmINCh0JvQkNCS0JrQngor0J/QoNCV0JrQkNCI0KHQmtCYINCR0KDQkNCd0JrQngor0J/QoNCV0JrQkNCI0KHQmtCYINCc0JjQoNCI0JDQnQor0J/QoNCV0JrQmNCLINCQ0J3QgtCV0JvQmtCQCivQn9Cg0JXQmtCe0JTQoNCQ0JLQkNCmINCd0JXQktCV0J3QmtCQCivQn9Cg0JXQmtCe0JPQkNCn0JjQiyDQgtCe0KDQgtCVCivQn9Cg0JXQmtCe0JPQkNCn0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0KDQldCa0J7Qk9CQ0KfQmNCLINCY0JvQmNCI0JAKK9Cf0KDQldCa0J7Qk9CQ0KfQmNCLINCS0JXQoNCQCivQn9Cg0JXQmtCe0J8g0IjQntCW0JXQpAor0J/QoNCV0JrQntCfINCg0JDQlNCe0IjQmtCQCivQn9Cg0JXQmtCf0JDQidCQ0Igg0JHQmNCR0JAKK9Cf0KDQldCa0J/QkNCJ0JDQiCDQmtCe0InQkAor0J/QoNCV0JrQn9CQ0InQkNCIINCc0JDQoNCi0JjQnQor0J/QoNCV0JrQn9CQ0InQkNCIINCf0IjQldCi0JXQoAor0J/QoNCV0Jsg0JzQkNCg0JjQiNCQCivQn9Cg0JXQm9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0KDQldCb0JXQktCY0Isg0JzQkNCg0JrQngor0J/QoNCV0JvQldCS0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JXQm9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Cf0KDQldCb0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0KDQldCb0JXQktCY0Isg0KHQldCd0JrQkAor0J/QoNCV0JvQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQn9Cg0JXQm9CY0Isg0JzQmNCb0J7QiNCa0JAKK9Cf0KDQldCb0JjQiyDQktCQ0KHQkAor0J/QoNCV0JvQmNCLINCX0JDQk9Ce0KDQmtCQCivQn9Cg0JXQnNCY0Isg0J/QldCi0JDQoAor0J/QoNCV0JzQmNCLINCS0JDQodCQCivQn9Cg0JXQnNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QoNCV0JzQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QoNCV0JzQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9Cg0JXQnNCj0Kgg0KTQoNCQ0IrQkAor0J/QoNCV0JzQo9CW0JjQiyDQlNCQ0JzQmNCgCivQn9Cg0JXQnNCj0JbQmNCLINCc0JDQotCeCivQn9Cg0JXQnNCj0JbQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQldCd0JTQntCS0JjQiyDQn9CQ0InQo9CoCivQn9Cg0JXQndCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0JXQndCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0JXQndCi0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QoNCV0J3QotCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0KDQldCd0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQn9Cg0JXQndCi0J7QktCY0Isg0KDQmNCh0KLQngor0J/QoNCV0J3QotCe0JLQmNCLINCS0JDQodCeCivQn9Cg0JXQoNCQ0JQg0JTQntCR0KDQmNCb0JAKK9Cf0KDQldCg0JDQlNCe0JIg0JTQmNCd0JrQkAor0J/QoNCV0KDQkNCU0J7QkiDQlNCg0JDQk9CY0KbQkAor0J/QoNCV0KDQkNCU0J7QkiDQlNCj0JHQoNCQ0JLQmtCQCivQn9Cg0JXQoNCQ0JTQntCSINCT0JDQktCg0JAKK9Cf0KDQldCg0JDQlNCe0JIg0JvQkNCX0JDQoAor0J/QoNCV0KDQkNCU0J7QkiDQm9CV0J/QntCh0JDQktCQCivQn9Cg0JXQoNCQ0JTQntCSINCc0JDQoNCY0IjQkAor0J/QoNCV0KDQkNCU0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QoNCV0KDQkNCU0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QoNCV0KDQkNCU0J7QkiDQndCV0JTQldCJ0JrQngor0J/QoNCV0KDQkNCU0J7QkiDQn9CV0KLQkNCgCivQn9Cg0JXQoNCQ0JTQntCSINCh0JDQktCQCivQn9Cg0JXQoNCQ0JTQntCSINCS0JXQm9CY0JfQkNCgCivQn9Cg0JXQoNCQ0JTQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCQ0J3QkAor0J/QoNCV0KDQkNCU0J7QktCY0Isg0JHQntCI0JAKK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Cg0JXQoNCQ0JTQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9Cg0JXQoNCQ0JTQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J/QoNCV0KHQldCn0JrQntCS0JjQiyDQktCV0KHQndCQCivQn9Cg0JXQotCc0JXQoNCh0JrQmCDQiNCe0JLQkNCdCivQn9Cg0JXQotCc0JXQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cf0KDQldCS0JXQlNCV0J0g0JvQldCeCivQn9Cg0JPQntCc0JXQidCQINCd0JjQmtCe0JvQkAor0J/QoNCY0KjQmNCLINCa0JDQotCY0KbQkAor0J/QoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0KDQmNCo0JjQiyDQm9CY0JTQmNCI0JAKK9Cf0KDQmNCo0JjQiyDQnNCY0JvQntCoCivQn9Cg0JjQqNCY0Isg0JzQmNCi0JAKK9Cf0KDQmNCo0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQn9Cg0JjQqNCY0Isg0KHQotCV0JLQkNCdCivQn9Cg0JjQkdCQ0JrQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0J/QoNCY0JHQkNCa0J7QktCY0Isg0JzQmNCb0JDQndCQCivQn9Cg0JjQkdCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0KDQmNCR0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0KDQmNCR0JjQp9CV0JLQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9Cf0KDQmNCR0JjQp9CV0JLQmNCLINCh0JDQktCa0JAKK9Cf0KDQmNCR0JjQp9CV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAg0JTQoCDQmNCd0JMKK9Cf0KDQmNCR0JjQqCDQodCi0JXQktCQ0J0KK9Cf0KDQmNCR0JjQqNCV0JIg0JzQmNCg0IjQkNCd0JAKK9Cf0KDQmNCR0JjQqNCY0Isg0InQo9CR0J4KK9Cf0KDQmNCR0JjQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QoNCY0JHQmNCo0JjQiyDQoNCY0KHQotCY0IrQkAor0J/QoNCY0JHQmNCo0JjQiyDQodCQ0JLQngor0J/QoNCY0JHQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9Cf0KDQmNCR0JjQiyDQlNCQ0J3QmNCb0J4KK9Cf0KDQmNCR0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0KDQmNCR0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KDQmNCR0JjQiyDQnNCY0JvQntCI0JUKK9Cf0KDQmNCR0JjQiyDQodCQ0JLQkAor0J/QoNCY0JHQmNCL0JXQktCY0Isg0IjQntCS0J4KK9Cf0KDQmNCR0JjQi9CV0JLQmNCLINCe0JvQk9CQCivQn9Cg0JjQkdCY0IvQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J/QoNCY0JHQmNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCY0KbQkAor0J/QoNCY0KbQkCDQltCY0JLQmtCeCivQn9Cg0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cg0JjQptCQINCR0J7QoNCY0JLQntCICivQn9Cg0JjQptCQINCR0J7QodCY0InQmtCQCivQn9Cg0JjQptCQINCU0JDQndCY0JvQngor0J/QoNCY0KbQkCDQlNCj0KjQkNCdCivQn9Cg0JjQptCQINCY0KHQngor0J/QoNCY0KbQkCDQiNCe0JLQkNCd0JrQkAor0J/QoNCY0KbQkCDQnNCQ0KDQmtCeCivQn9Cg0JjQptCQINCc0JjQm9CVCivQn9Cg0JjQptCQINCc0JvQkNCU0JXQnQor0J/QoNCY0KbQkCDQn9CV0KLQkNCgCivQn9Cg0JjQptCQINCh0J7QpNCY0IjQkAor0J/QoNCY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQn9Cg0JjQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQmNCI0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JjQiNCY0Isg0JzQmNCg0KHQkNCUCivQn9Cg0JjQiNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QoNCY0IjQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KDQmNCI0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cf0KDQmNCa0JXQmyDQn9CV0KLQkNCgCivQn9Cg0JjQmtCY0JTQkNCd0J7QktCY0Kcg0JvQkNCh0JvQngor0J/QoNCY0JrQmNCU0JDQndCe0JLQmNCLINCQ0J3QkAor0J/QoNCY0InQldCS0JAg0JHQntCg0JjQodCb0JDQkgor0J/QoNCY0JzQntCg0JDQpiDQndCY0JrQntCb0JAKK9Cf0KDQmNCc0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0KDQmNCc0J7QktCY0Isg0JTQldCI0JDQnQor0J/QoNCY0JzQntCS0JjQiyDQlNCe0JHQoNCY0KbQkAor0J/QoNCY0JzQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QoNCY0JzQntCS0JjQiyDQmtCe0JLQmNCd0JrQkAor0J/QoNCY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JjQnNCe0JLQmNCLINCh0KLQntCI0JDQnQor0J/QoNCY0J3QptCY0J8g0IjQntCX0J4KK9Cf0KDQmNCh0JXQm9CQ0KYg0JHQntCg0JjQoQor0J/QoNCY0KHQldCb0JDQpiDQkdCg0JDQndCa0J4KK9Cf0KDQmNCh0JXQm9CQ0KYg0JfQlNCg0JDQktCa0J4KK9Cf0KDQmNCh0JvQkNCdINCX0JLQntCd0JjQnNCY0KAKK9Cf0KDQmNCh0KLQkNCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cf0KDQmNCS0KDQntCU0KHQmtCYINCR0J7QoNCY0KEg0JTQoAor0J/QoNCY0JLQoNCe0JTQodCa0Jgg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cf0KDQmtCj0KjQmNCLINCQ0J3QmNCm0JAKK9Cf0KDQmtCj0KjQmNCLINCh0JvQkNCS0JrQngor0J/QoNCb0JXQktCY0Isg0KHQotCe0IjQkNCdCivQn9Cg0JvQmNCd0JDQpiDQktCV0InQmtCeCivQn9Cg0InQldCS0JjQiyDQndCQ0JTQkAor0J/QoNCe0KfQmNCa0JXQktCY0Isg0JDQndCa0JAKK9Cf0KDQntCo0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0KDQntCo0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QqNCY0Isg0J3QldCC0J4KK9Cf0KDQntCo0JjQiyDQndCV0ILQngor0J/QoNCe0KjQmNCLINCd0JXQkdCe0IjQqNCQCivQn9Cg0J7QqNCY0Isg0J3QmNCa0J7Qm9CQCivQn9Cg0J7QqNCY0Isg0J/QldCi0JDQoAor0J/QoNCe0KjQmNCLINCh0JzQmNCJ0JAKK9Cf0KDQntCR0J7QiNCn0JXQktCY0Isg0JDQndCi0KPQnQor0J/QoNCe0JHQntCI0KfQldCS0JjQiyDQldCg0J3QldCh0KIKK9Cf0KDQntCR0J7QiNCn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQn9Cg0J7QkdCe0IjQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0KDQntCU0JDQndCQINCa0KDQodCi0JDQnQor0J/QoNCe0JTQkNCd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JIg0JDQndCC0JXQm9Ca0JAKK9Cf0KDQntCU0JDQndCe0JIg0JHQm9CQ0JPQntCI0JAKK9Cf0KDQntCU0JDQndCe0JIg0JHQntCg0JAKK9Cf0KDQntCU0JDQndCe0JIg0JTQkNCd0JjQm9CeCivQn9Cg0J7QlNCQ0J3QntCSINCU0KDQkNCT0J7QidCj0JEKK9Cf0KDQntCU0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J/QoNCe0JTQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0KDQntCU0JDQndCe0JIg0JTQo9Co0JDQnQor0J/QoNCe0JTQkNCd0J7QkiDQk9Ce0KDQmNCm0JAKK9Cf0KDQntCU0JDQndCe0JIg0JjQm9CY0IjQkAor0J/QoNCe0JTQkNCd0J7QkiDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCSINCI0KPQodCi0JjQndCQCivQn9Cg0J7QlNCQ0J3QntCSINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JIg0JzQmNCb0JXQndCQCivQn9Cg0J7QlNCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQn9Cg0J7QlNCQ0J3QntCSINCc0JjQntCU0KDQkNCTCivQn9Cg0J7QlNCQ0J3QntCSINCc0JvQkNCU0JXQnQor0J/QoNCe0JTQkNCd0J7QkiDQndCV0JTQldCJ0JrQngor0J/QoNCe0JTQkNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QntCSINCh0JDQktCQCivQn9Cg0J7QlNCQ0J3QntCSINCh0JvQkNCS0JrQkCDQlNCgCivQn9Cg0J7QlNCQ0J3QntCSINCX0KPQl9CQ0J3QkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KjQn9CY0KDQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQkNCg0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQmNCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0ILQntCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0KPQoNCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0JDQnNCI0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0JDQndCY0JvQmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQo9Co0JjQptCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQk9CQ0JLQoNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JvQkNCX0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCJ0KPQkdCe0IjQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JDQoNCi0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCJ0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQoNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLLdCf0JDQitCa0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0J/QkNCS0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0KLQkNCd0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCi0JDQndCQ0KHQmNCI0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JDQodCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JLQldCb0JjQndCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JXQidCa0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JXQoNCQINCU0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0J/QoNCe0JTQmNCLINCU0JDQndCY0KbQkAor0J/QoNCe0JTQmNCLINCS0JjQlNCQCivQn9Cg0J7QlNCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cf0KDQntCU0JjQiyDQktCY0KLQntCc0JjQoAor0J/QoNCe0KTQntCd0KLQkNCg0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0J/QoNCe0KXQkNCh0JrQkCDQnNCY0JvQldCd0JrQngor0J/QoNCe0KXQkNCh0JrQkCDQndCY0JrQntCb0JAKK9Cf0KDQntCl0JDQodCa0JAg0KHQotCV0JLQkNCdCivQn9Cg0J7QpdCQ0KHQmtCQINCS0JXQoNCQCivQn9Cg0J7QiNCa0J7QktCh0JrQmCDQlNCV0KHQn9CQCivQn9Cg0J7QmtCV0Kgg0JHQldCb0JAKK9Cf0KDQntCa0JXQqCDQm9CQ0JTQmNCh0JvQkNCSCivQn9Cg0J7QmtCY0Isg0ILQntCg0ILQlQor0J/QoNCe0JrQmNCLINCT0J7QoNCQ0J0KK9Cf0KDQntCa0JjQiyDQnNCY0JvQkNCdCivQn9Cg0J7QmtCY0Isg0JzQmNCg0JAKK9Cf0KDQntCa0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0KDQntCa0JjQiyDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQiyDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQiyDQl9Ce0KDQkNCdCivQn9Cg0J7QmtCY0Isg0JfQntCg0JDQnQor0J/QoNCe0JrQmNCdINCQ0J3QgtCV0JvQmtCQCivQn9Cg0J7QmtCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cg0J7QmtCY0J0g0JrQodCV0J3QmNCI0JAKK9Cf0KDQntCa0JjQnSDQm9CQ0JfQkNCgCivQn9Cg0J7QmtCY0J0g0JzQkNCg0JrQngor0J/QoNCe0JrQmNCdINCc0JjQoNCQCivQn9Cg0J7QmtCY0J0g0KDQkNCU0JjQktCe0IgKK9Cf0KDQntCa0JjQnSDQoNCj0JbQmNCm0JAKK9Cf0KDQntCa0JjQnSDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQnSDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQnSDQl9Cb0JDQotCY0J3QmtCQCivQn9Cg0J7QmtCY0J0g0JfQntCg0JAKK9Cf0KDQntCa0J7Qn9CV0KYg0JTQo9Co0JDQnQor0J/QoNCe0JrQntCf0JXQpiDQpdCV0JvQldCd0JAKK9Cf0KDQntCa0J7Qn9CV0KYg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0KDQntCa0J7Qn9CV0KYg0KHQotCV0JLQkNCdCivQn9Cg0J7QmtCe0J/QmNCLINCn0JXQlNCeCivQn9Cg0J7QmtCe0J/QmNCLINCc0JjQpdCQ0IjQmNCb0J4KK9Cf0KDQntCa0J7Qn9CY0Isg0KHQotCe0IjQkNCdCivQn9Cg0J7Qm9CVINCm0JLQmNCI0J4KK9Cf0KDQntCb0JUg0IjQkNCT0J7QlNCQCivQn9Cg0J7Qm9CVINCc0JXQm9CQ0J3QmNCI0JAKK9Cf0KDQntCb0JUg0JzQmNCb0JXQndCa0J4KK9Cf0KDQntCb0JUg0JzQmNCb0JjQiNCQ0J3QkAor0J/QoNCe0JvQlSDQnNCY0JvQntCoCivQn9Cg0J7Qm9CVINCc0JjQoNCa0J4KK9Cf0KDQntCb0JUg0JzQmNCg0J7QodCb0JDQkgor0J/QoNCe0JvQlSDQnNCY0KLQkNCgCivQn9Cg0J7Qm9CVINCc0JjQotCQ0KAKK9Cf0KDQntCb0JUg0JzQm9CQ0JTQldCdCivQn9Cg0J7Qm9CVINCg0JDQlNCe0JLQkNCdCivQn9Cg0J7Qm9CVINCg0JjQodCi0JAKK9Cf0KDQntCb0JUg0KHQotCQ0J3QmNCh0JvQkNCSCivQn9Cg0J7Qm9CVINCh0KLQkNCd0JrQngor0J/QoNCe0JvQlSDQo9CT0InQldCo0JAKK9Cf0KDQntCb0JUg0JLQldCJ0JrQngor0J/QoNCe0JvQlSDQktCV0KDQntCd0JAKK9Cf0KDQntCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QoNCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Cg0J7Qm9CY0Isg0J/QldCg0J4KK9Cf0KDQntCb0JjQiyDQktCY0JQKK9Cf0KDQntCh0JXQndCY0KbQkCDQnNCQ0KDQmtCeCivQn9Cg0J7QodCV0J3QmNCm0JAg0JLQmNCU0J7QodCQ0JLQkAor0J/QoNCe0KHQldCd0JjQmiDQlNCj0JHQoNCQ0JLQmtCeCivQn9Cg0J7QodCV0J3QmNCaINCX0JLQntCd0JjQnNCY0KAKK9Cf0KDQntCh0KLQoNCQ0J0g0KfQldCU0J7QnNCY0KAKK9Cf0KDQntCh0KLQoNCQ0J0g0J/QldCi0JDQoAor0J/QoNCe0KLQmNCLINCW0JDQoNCa0J4KK9Cf0KDQntCi0JjQiyDQgtCe0JrQkAor0J/QoNCe0KLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCi0JjQiyDQkdCe0KHQmNCJ0JrQkAor0J/QoNCe0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QoNCe0KLQmNCLINCU0KDQkNCT0JDQnQor0J/QoNCe0KLQmNCLINCU0KPQqNCQ0J0KK9Cf0KDQntCi0JjQiyDQmNCb0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0J/QoNCe0KLQmNCLINCI0J7QodCY0JwKK9Cf0KDQntCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KDQntCi0JjQiyDQnNCY0JvQldCd0JAg0JTQoCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0J/QoNCe0KLQmNCLINCc0JjQm9Ca0JAKK9Cf0KDQntCi0JjQiy3QnNCY0JvQntCo0JXQktCY0Isg0KHQmNCc0JrQkCDQn9Cg0J7QpAor0J/QoNCe0KLQmNCLINCc0JjQm9Ce0KgKK9Cf0KDQntCi0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QoNCe0KLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Cg0J7QotCY0Isg0JzQmNCi0JDQoAor0J/QoNCe0KLQmNCLINCd0JDQlNCQCivQn9Cg0J7QotCY0Isg0J7QkdCg0JDQlAor0J/QoNCe0KLQmNCLINCf0KDQldCU0KDQkNCTCivQn9Cg0J7QotCY0Isg0J/Qo9Cd0JjQqNCQCivQn9Cg0J7QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0KDQntCi0JjQiyDQodCQ0JzQo9CY0JvQngor0J/QoNCe0KLQmNCLINCh0JzQmNCJ0JAKK9Cf0KDQntCi0JjQiyDQktCY0JTQkAor0J/QoNCe0KLQmNCLINCS0JjQotCe0JzQmNCgCivQn9Cg0J7QktCn0Jgg0JDQk9CQ0KTQmNCI0JAKK9Cf0KDQntCS0KfQmCDQldCS0JPQldCd0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0J/QoNCe0JLQp9CYINCI0J7QktCT0JXQnQor0J/QoNCe0JLQp9CYINCS0JXQoNCQCivQn9Cg0J/QkCDQkNCd0ILQkAor0J/QoNCf0JAg0JPQntCh0J/QkAor0J/QoNCf0JAg0JvQkNCX0JDQoAor0J/QoNCf0JAg0JzQkNCg0JPQmNCi0JAKK9Cf0KDQn9CQINCc0JjQm9Ce0JLQkNCdCivQn9Cg0J/QkCDQktCV0InQmtCeCivQn9Cg0J/QkCDQl9CQ0JPQntCg0JrQkAor0J/QoNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCf0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQn9Cg0J/QmNCLINCd0JjQmtCe0JvQkAor0J/QoNCf0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/QoNCh0JrQkNCb0J4g0JHQm9CQ0JPQngor0J/QoNCh0KLQntCI0JXQktCY0Isg0JPQntCg0JDQnQor0J/QoNCh0KLQntCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QoNCi0JjQndCQINCR0KDQkNCd0JrQngor0J/QoNCj0JbQkNCg0JXQkiDQotCQ0KLQiNCQ0J3QkAor0J/QoNCj0JTQkNCdLdCC0KPQoNCY0KjQmNCLINCg0JDQlNCe0IjQmtCQINCU0KAKK9Cf0KDQo9CT0JjQiyDQidCj0JHQntCc0JjQoAor0J/QoNCj0JPQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0KDQo9CT0JjQndCY0Isg0InQo9CR0JjQptCQCivQn9Cg0KPQndCY0Isg0IjQntCS0JDQnQor0J/QoNCj0KHQmNCd0JAg0JTQoNCQ0JPQngor0J/QoNCj0KHQmNCd0JAg0JjQm9CY0IjQkAor0J/QoNCj0KHQmNCd0JAg0JzQkNCg0JPQmNCi0JAKK9Cf0KDQo9Ch0JjQndCQINCc0JjQm9CQ0J0KK9Cf0KDQo9Ch0JjQndCQINCS0JvQkNCi0JrQngor0J/QoNCS0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cg0JLQkNCd0J7QkiDQlNCQ0KDQmNCd0JrQkAor0J/QoNCS0JDQndCe0JIg0JTQmNCS0J3QkAor0J/QoNCS0JDQndCe0JIg0JzQmNCb0J7QqAor0J/QoNCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J/QoNCS0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0J/QodCe0JTQkNCg0J7QkiDQkdCg0JDQndCa0J4KK9Cf0KHQntCU0J7QoNCe0JIg0JzQkNCI0JAKK9Cf0KHQntCU0J7QoNCe0JIg0KHQn9CQ0KHQntCI0JUKK9Cf0KHQntCU0J7QoNCe0JIg0KLQkNCc0JDQoNCQCivQn9Ci0JjQp9CQ0KAg0ILQo9Cg0JAKK9Cf0KLQmNCn0JDQoCDQnNCY0JvQkNCdCivQn9Cj0KjQkNCmINCR0KDQkNCd0JrQngor0J/Qo9Co0JDQpiDQiNCV0JvQldCd0JrQngor0J/Qo9Co0JDQpiDQnNCY0JvQldCd0JAKK9Cf0KPQqNCQ0KYg0JzQmNCb0JXQndCQCivQn9Cj0KjQkNCg0JAg0ILQntCg0ILQlQor0J/Qo9Co0JDQoNCQINCR0J7QltCY0JTQkNCgCivQn9Cj0KjQkNCg0JAg0JTQo9Co0JDQnQor0J/Qo9Co0JDQoNCQINCI0JXQm9CV0J3QkAor0J/Qo9Co0JDQoNCQINCc0JjQm9CY0JLQntCICivQn9Cj0KjQkNCg0JAg0JzQmNCg0JrQngor0J/Qo9Co0JDQoNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KPQqNCQ0KDQkCDQoNCQ0JTQnNCY0JvQkAor0J/Qo9Co0JXQidCY0Isg0IjQldCb0JXQndCQCivQn9Cj0KjQldCK0JDQmiDQnNCQ0KDQmNCI0JAKK9Cf0KPQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/Qo9Co0JjQiyDQlNCj0KjQkNCdCivQn9Cj0KjQmNCLINCV0JzQmNCbCivQn9Cj0KjQmNCLINCT0J7QoNCQ0J0KK9Cf0KPQqNCY0Isg0IjQntCS0JDQnQor0J/Qo9Co0JjQiyDQidCj0JHQmNCd0JrQngor0J/Qo9Co0JjQiyDQnNCY0JvQldCd0JAKK9Cf0KPQqNCY0Isg0JzQmNCb0JjQptCQCivQn9Cj0KjQmNCLINCc0JjQm9CY0JLQntCICivQn9Cj0KjQmNCLINCc0JjQm9Ce0KgKK9Cf0KPQqNCY0Isg0J3QmNCa0J7Qm9CQCivQn9Cj0KjQmNCLINCe0JHQoNCQ0JQKK9Cf0KPQqNCY0Isg0J/QkNCS0JvQlQor0J/Qo9Co0JjQiyDQodCQ0JLQkAor0J/Qo9Co0JjQiyDQodCQ0JLQkAor0J/Qo9Co0JjQiyDQodCe0KTQmNCI0JAKK9Cf0KPQqNCY0Isg0KHQotCV0JLQkNCdCivQn9Cj0KjQmNCLINCS0JXQoNCY0KbQkAor0J/Qo9Co0JjQiyDQktCV0KDQmNCm0JAKK9Cf0KPQqNCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0KPQqNCY0JHQoNCaINCm0JLQldCi0JrQngor0J/Qo9Co0JjQkdCg0Jog0JLQkNCh0JAKK9Cf0KPQqNCY0J0g0JzQmNCg0IjQkNCd0JAKK9Cf0KPQqNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0J/Qo9Co0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQn9Cj0KjQmNCdINCS0JvQkNCU0JAKK9Cf0KPQqNCa0JDQqCDQgtCj0KDQkAor0J/Qo9Co0JrQkNCoINCC0KPQoNCQCivQn9Cj0KjQmtCQ0Kgg0KbQmNCb0JAKK9Cf0KPQqNCa0JDQqCDQiNCe0JbQldCkCivQn9Cj0KjQmtCQ0Kgg0IjQntCQ0JrQmNCcCivQn9Cj0KjQmtCQ0Kgg0IjQo9Cb0JjQiNCQ0J0KK9Cf0KPQqNCa0JDQqCDQnNCY0KXQkNCI0JvQngor0J/Qo9Co0JrQkNCoINCc0JjQm9CV0J3QkAor0J/Qo9Co0JrQkNCoINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KPQqNCa0JDQqCDQntCb0JXQndCQCivQn9Cj0KjQmtCQ0Kgg0J7QndCj0KTQoNCY0IjQlQor0J/Qo9Co0JrQkNCoINCf0JXQotCQ0KAKK9Cf0KPQqNCa0JDQqCDQoNCe0JfQkNCb0JjQiNCQCivQn9Cj0KjQmtCQ0Kgg0KHQotCV0JLQkNCdCivQn9Cj0KjQmtCQ0Kgg0JLQldCg0JAKK9Cf0KPQqNCa0JDQqCDQktCb0JDQlNCY0JzQmNCgCivQn9Cj0KjQmtCQ0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0J/Qo9Co0JrQkNCgINCI0J7QktCY0KbQkAor0J/Qo9Co0JrQkNCgINCh0KLQldCS0JAKK9Cf0KPQqNCa0JDQoCDQktCe0IjQmNCh0JvQkNCSCivQn9Cj0KjQmtCQ0KDQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/Qo9Co0JrQkNCg0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Cj0KjQmtCQ0KDQmNCLINCQ0J3QkAor0J/Qo9Co0JrQkNCg0JjQiyDQmNCS0JDQnQor0J/Qo9Co0JrQkNCg0JjQiyDQiNCj0KDQlQor0J/Qo9Co0JrQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KPQqNCa0JDQoNCe0JIg0JTQkNCd0JjQm9Ca0JAKK9Cf0KPQqNCa0JDQoNCe0JIg0JTQkNCd0JjQm9Ca0JAKK9Cf0KPQqNCa0JDQoNCe0JIg0JzQmNCb0JDQnQor0J/Qo9Co0JrQkNCg0J7QkiDQl9Ce0KDQkAor0J/Qo9Co0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/Qo9Co0KLQoNCY0Isg0JzQmNCb0JDQnQor0J/Qo9Co0KLQoNCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cf0KPQli3QldCS0JjQiyDQntCb0JPQkAor0J/Qo9CW0JjQiyDQktCV0KDQkAor0J/Qo9CC0JAg0JvQldCf0J7QodCQ0JLQkAor0J/Qo9CQ0Kcg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Cj0JDQpyDQodCS0JXQotCe0JfQkNCgCivQn9Cj0JDQp9CQINCS0JXQidCa0J4g0JTQoAor0J/Qo9Cm0JDQoCDQgtCj0KDQngor0J/Qo9Cm0JDQoCDQlNCj0KjQkNCdCivQn9Cj0KbQkNCgINCc0JjQm9CY0KbQkAor0J/Qo9Cm0JDQoCDQodCi0JXQktCeCivQn9Cj0KbQkNCgINCS0JDQodCY0JvQmNCI0JUKK9Cf0KPQptCQ0KAg0JLQkNCh0J4KK9Cf0KPQptCQ0KAg0JfQlNCg0JDQktCa0J4KK9Cf0KPQptCQ0KDQldCS0JjQiyDQltCY0JLQmtCeCivQn9Cj0KbQkNCg0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0KPQptCQ0KDQldCS0JjQiyDQk9Ce0IjQmtCeCivQn9Cj0KbQkNCg0JXQktCY0Isg0KXQmNCb0JTQkAor0J/Qo9Cm0JDQoNCV0JLQmNCLINCI0JXQm9CQCivQn9Cj0KbQkNCg0JXQktCY0Isg0J3QntCS0JDQmgor0J/Qo9Cm0JDQoNCV0JLQmNCLINCh0J7QpNCY0IjQkAor0J/Qo9Cm0J7QktCh0JrQmCDQgtCj0KDQngor0J/Qo9CU0JDQoCDQlNCQ0J3QmNCb0J4KK9Cf0KPQlNCQ0KAg0JPQntCI0JrQngor0J/Qo9CU0JDQoCDQoNCQ0IjQmtCeCivQn9Cj0JTQkNCgINCg0JDQndCa0J4KK9Cf0KPQlNCQ0KAg0KDQkNCd0JrQngor0J/Qo9CU0JDQoCDQoNCQ0J3QmtCeCivQn9Cj0JTQkNCgINCg0JDQotCa0J4KK9Cf0KPQlNCQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0J/Qo9CU0JDQoCDQodCi0JXQktCQ0J0KK9Cf0KPQlNCQ0KAg0JfQlNCg0JDQktCa0J4KK9Cf0KPQlNCY0Isg0JjQm9CY0IjQkAor0J/Qo9CU0JjQiyDQiNCe0JfQkAor0J/Qo9CU0KDQidCQINCR0KDQkNCd0JrQngor0J/Qo9CT0JDQoCDQkNCd0ILQldCb0JrQkAor0J/Qo9Cl0JDQp9CQINCh0KLQldCS0J4KK9Cf0KPQpdCQ0JvQkNCaINCR0JXQoNCi0JAKK9Cf0KPQpdCQ0JvQkNCaINCb0JDQodCb0J4g0JTQoCDQm9CV0JrQkNCgCivQn9Cj0KXQkNCb0JDQmiDQodCi0JXQktCQ0J0KK9Cf0KPQpdCQ0J0g0J7QodCa0JDQoAor0J/Qo9Cl0JDQndCY0Isg0KLQldCg0JXQl9CQCivQn9Cj0KXQkNCgINCU0KPQqNCQ0J0KK9Cf0KPQpdCQ0KAg0KTQoNCQ0J3Qpgor0J/Qo9CY0Isg0ILQntCg0ILQlQor0J/Qo9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/Qo9CI0JAg0KTQm9Ce0KDQmNCdCivQn9Cj0IjQmNCLINCc0JjQm9CY0JLQntCICivQn9Cj0IjQmNCLINCc0JjQm9Ce0KgKK9Cf0KPQiNCY0Isg0J3QkNCU0JXQltCU0JAKK9Cf0KPQiNCY0Isg0J/QldCg0KHQmNCU0JAg0JTQmNCf0Jsg0JjQndCTCivQn9Cj0IjQmNCLINCh0JDQktCQCivQn9Cj0IjQmNCLINCh0KLQldCS0JDQnQor0J/Qo9CI0JjQnSDQm9CQ0JfQkAor0J/Qo9CI0JjQnSDQoNCQ0JTQlQor0J/Qo9CI0JjQnSDQoNCQ0JTQmNCS0J7QiNCVCivQn9Cj0IjQmNCdINCh0KLQldCS0JDQnQor0J/Qo9CI0JjQnSDQktCb0JDQodCi0JAg0JTQoAor0J/Qo9Cb0JDQmCDQm9CQ0IjQntCoCivQn9Cj0JvQldCi0JjQiyDQl9CU0KDQkNCS0JrQngor0J/Qo9Cb0JjQiyDQkNCd0KLQntCd0JjQiNCQCivQn9Cj0JvQmNCLINCe0JvQk9CQCivQn9Cj0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQn9Cj0JvQmNCh0JDQmiDQpNCg0JDQitCQCivQn9Cj0JvQmNCh0JDQmiDQmNCb0J7QndCa0JAKK9Cf0KPQm9CY0KHQkNCaINCI0J7QktCQ0J0KK9Cf0KPQm9CY0KHQkNCaINCc0JjQpdCQ0IjQm9CeCivQn9Cj0JvQmNCh0JDQmiDQndCQ0JTQldCW0JTQkAor0J/Qo9Cb0JjQodCQ0Jog0J3QmNCa0J7Qm9CQCivQn9Cj0InQmNCX0JXQktCY0Isg0JDQndCi0KPQnSDQlNCY0J/QmyDQmNCd0JMKK9Cf0KPQndCU0J7QkiDQkNCd0JTQoNCV0IgKK9Cf0KPQndCT0KPQmyDQiNCe0JLQmNCm0JAKK9Cf0KPQndCT0KPQmyDQnNCY0KDQkAor0J/Qo9Cf0JDQktCQ0KYg0ILQntCg0ILQlQor0J/Qo9Cf0JDQktCQ0KYg0JHQoNCQ0J3QmtCeCivQn9Cj0J/QkNCS0JDQpiDQkdCg0JDQndCa0J4KK9Cf0KPQn9CQ0JLQkNCmINCk0KDQkNCK0JAKK9Cf0KPQn9CQ0JLQkNCmINCc0JjQm9CQ0J0KK9Cf0KPQn9CQ0JLQkNCmINCf0JXQotCQ0KAKK9Cf0KPQn9CQ0JLQkNCmINCh0KLQkNCa0JAKK9Cf0KPQn9CQ0JLQkNCmINCh0KLQldCS0JDQnQor0J/Qo9Cf0JDQktCQ0KYg0KHQotCe0IjQkNCdCivQn9Cj0J/QkNCS0JDQpiDQotCe0JTQntCgCivQn9Cj0J/QkNCS0JDQpiDQktCV0KHQndCQCivQn9Cj0J/QmNCLINCg0JDQlNCc0JjQm9CQCivQn9Cj0J/QmNCdINCW0JjQktCQ0J0KK9Cf0KPQn9Ce0JLQkNCmINCU0JzQmNCi0JDQoAor0J/Qo9Cf0J7QktCQ0KYg0JTQo9Co0JDQnQor0J/Qo9Cf0J7QktCQ0KYg0JvQo9Ca0JAKK9Cf0KPQn9Ce0JLQkNCmINCc0JjQm9Ce0KgKK9Cf0KPQn9Ce0JLQkNCmINCc0JjQm9Ce0KgKK9Cf0KPQn9Ce0JLQkNCmINCh0JLQldCi0JvQkNCd0JAKK9Cf0KPQn9Ce0JLQkNCmINCi0J7QlNCe0KAKK9Cf0KPQn9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Cj0KDQkNCLINCW0JjQktCa0J4KK9Cf0KPQoNCQ0Isg0JHQoNCQ0J3QmtCeCivQn9Cj0KDQkNCLINCV0KDQltCV0JHQldCiCivQn9Cj0KDQkNCLINCI0J7QktCQ0J0KK9Cf0KPQoNCQ0Isg0JvQkNCX0JDQoAor0J/Qo9Cg0JDQiyDQnNCQ0JPQlNCQCivQn9Cj0KDQkNCLINCc0JjQm9CQ0JTQmNCdCivQn9Cj0KDQkNCLINCc0JjQm9CQ0JTQmNCdCivQn9Cj0KDQkNCLINCc0JjQm9CV0J3QmtCeCivQn9Cj0KDQkNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KPQoNCQ0Isg0J3QkNCU0JAKK9Cf0KPQoNCQ0Isg0J7Qm9CT0JAKK9Cf0KPQoNCY0KjQmNCLINCn0JXQlNCeCivQn9Cj0KDQmNCo0JjQiyDQodCS0JXQotCb0JDQndCQCivQn9Cj0KDQmNCLINCR0JvQkNCd0JrQkAor0J/Qo9Cg0JjQiyDQkdCe0JbQngor0J/Qo9Cg0JjQiyDQlNCY0IjQkNCd0JAKK9Cf0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cj0KDQmNCLINCU0KDQkNCT0JjQptCQCivQn9Cj0KDQmNCLINCc0JjQm9CQ0J0KK9Cf0KPQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/Qo9Cg0JjQiyDQl9Ce0KDQkAor0J/Qo9Cg0JrQntCSINCS0JXQodCV0JvQmNCdCivQn9Cj0KDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/Qo9Cg0KLQmNCLINCd0JjQmtCe0JvQkAor0J/Qo9Ch0KLQkNCYINCY0JzQoNCVCivQn9Cj0KHQotCQ0Jgg0IjQldCd0JUKK9Cf0KPQodCi0JDQiNCY0Isg0JHQoNCQ0J3QmtCQCivQn9Cj0KHQotCQ0IjQmNCLINCg0JDQlNCQCivQn9Cj0KHQotCQ0IjQmNCLINCS0KPQmtCY0KbQkAor0J/Qo9Ch0KLQmCDQiNCe0KHQmNCfCivQn9Cj0KLQkNCg0JjQiyDQiNCe0JLQkNCdCivQn9Cj0KLQmNCLINCW0JjQktCQ0J3QkAor0J/Qo9Ci0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0KPQotCY0Isg0JvQmNCS0JjQiNCQCivQn9Cj0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0KPQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Cj0KLQmNCLINCX0J7QoNCQ0J0KK9Cf0KPQotCd0JjQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/Qo9Ci0J3QmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cj0KLQndCY0Jog0JHQntCg0JjQodCb0JDQkgor0J/Qo9Ci0J3QmNCaINCR0KDQkNCd0JrQngor0J/Qo9Ci0J3QmNCaINCU0JDQndCY0JvQmtCQCivQn9Cj0KLQndCY0Jog0JTQmNCc0JjQotCg0JjQiNCVCivQn9Cj0KLQndCY0Jog0JPQldCg0KLQoNCj0JTQkAor0J/Qo9Ci0J3QmNCaINCT0J7QoNCQ0J0KK9Cf0KPQotCd0JjQmiDQmNCS0JDQnQor0J/Qo9Ci0J3QmNCaINCI0JXQm9CV0J3QkAor0J/Qo9Ci0J3QmNCaINCa0JDQotCY0KbQkAor0J/Qo9Ci0J3QmNCaINCa0KHQldCd0JjQiNCQCivQn9Cj0KLQndCY0Jog0InQo9CR0JjQptCQCivQn9Cj0KLQndCY0Jog0JzQmNCb0JDQnQor0J/Qo9Ci0J3QmNCaINCc0JjQm9CQ0J0KK9Cf0KPQotCd0JjQmiDQnNCY0JvQldCd0JAKK9Cf0KPQotCd0JjQmiDQnNCY0JvQntCg0JDQlAor0J/Qo9Ci0J3QmNCaINCd0JXQktCV0J3QmtCQCivQn9Cj0KLQndCY0Jog0J/QkNCI0J4KK9Cf0KPQotCd0JjQmiDQn9CV0KLQkNCgCivQn9Cj0KLQndCY0Jog0J/QldCi0JDQoAor0J/Qo9Ci0J3QmNCaINCg0JDQlNCVCivQn9Cj0KLQndCY0Jog0KDQkNCU0J7QnNCY0KAKK9Cf0KPQotCd0JjQmiDQoNCQ0JTQntCS0JDQnQor0J/Qo9Ci0J3QmNCaINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9Cj0KLQndCY0Jog0KHQndCV0JbQkNCd0JAKK9Cf0KPQotCd0JjQmiDQodCi0JXQpNCQ0J3QmNCI0JAKK9Cf0KPQotCd0JjQmiDQodCi0JXQktCQ0J0KK9Cf0KPQotCd0JjQmiDQodCi0JXQktCQ0J0KK9Cf0KPQotCd0JjQmi3Qo9Cg0JDQpyDQoNCV0J3QkNCi0JAKK9Cf0KPQotCd0JjQmiDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9Cf0KPQotCd0JjQmiDQktCb0JDQlNCY0JzQmNCgCivQn9Cj0KLQndCY0Jog0JfQntCg0JDQnQor0J/Qo9Ci0J3QmNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cf0KPQotCd0JjQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/Qo9Ci0J3QmNCa0J7QktCY0Isg0J/QmNCg0J7QqNCa0JAKK9Cf0KPQktCQ0KfQkCDQidCY0InQkNCd0JAKK9Cf0KPQktCQ0JvQmNCLINCa0JDQotCY0KbQkAor0J/Qo9CX0JjQiyDQkdCY0InQkNCd0JAKK9Cf0KPQl9CY0Isg0JHQntCo0JrQngor0J/Qo9CX0JjQiyDQkdCe0KHQkAor0J/Qo9CX0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQn9Cj0JfQmNCLINCh0JDQktCQCivQn9Cj0JfQmNCLINCS0JXQidCa0J4KK9Cf0KPQl9CY0JPQkNCL0JAg0JrQoNCY0KHQotCY0J3QkAor0KDQkNCn0JjQiyDQkNCg0JDQndCC0JXQmwor0KDQkNCn0JjQiyDQm9CV0J/QntCh0JDQktCQCivQoNCQ0KfQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCn0JjQiyDQndCQ0JTQkAor0KDQkNCn0JjQiyDQoNCQ0J3QmtCeCivQoNCQ0KfQmNCLINCh0JDQqNCQCivQoNCQ0KfQmNCLLdCh0JDQktCY0J0g0JfQntCg0JjQptCQCivQoNCQ0KfQmNCLINCh0KLQntCI0JDQnQor0KDQkNCn0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0KfQmNCLINCS0JXQoNCQCivQoNCQ0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0KjQp9CQ0J3QmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCo0KfQkNCd0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQqNCn0JjQiyDQndCV0KXQoNCjCivQoNCQ0KjQkCDQlNCe0IjQndCQCivQoNCQ0KjQkNCI0KHQmtCYINCU0KPQqNCQ0J0KK9Cg0JDQqNCQ0IjQodCa0Jgg0JLQldCg0J7QodCb0JDQkgor0KDQkNCo0JXQotCQINCU0JDQndCVCivQoNCQ0KjQldCi0JAg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQqNCV0KLQkCDQnNCY0KDQiNCQ0J3QkAor0KDQkNCo0JXQotCQINCd0JjQmtCe0JvQkAor0KDQkNCo0JXQotCQINCf0JXQotCQ0KAKK9Cg0JDQqNCV0KLQkCDQodCi0JXQktCQCivQoNCQ0KjQldCi0JAg0KLQntCc0JAKK9Cg0JDQqNCV0KLQkCDQl9CU0KDQkNCS0JrQngor0KDQkNCo0JXQktCY0Isg0JbQkNCg0JrQngor0KDQkNCo0JXQktCY0Isg0JbQldCJ0JrQngor0KDQkNCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQqNCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0KDQkNCo0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JDQqNCY0Isg0JTQo9Co0JjQptCQCivQoNCQ0KjQmNCLINCY0JHQntCI0JrQkAor0KDQkNCo0JjQiyDQmNCT0IrQkNCiCivQoNCQ0KjQmNCLINCY0JvQmNCI0JAKK9Cg0JDQqNCY0Ist0JrQntCf0KfQntCaINCd0JDQlNCQCivQoNCQ0KjQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQqNCY0Isg0JzQkNCd0JTQkAor0KDQkNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQqNCY0Isg0J3QkNCU0JXQltCU0JAKK9Cg0JDQqNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0KjQmNCLINCf0JDQo9CdCivQoNCQ0KjQmNCLINCf0JXQotCQ0KAg0JzQoCDQmNCd0JMKK9Cg0JDQqNCY0Isg0KHQnNCY0InQkAor0KDQkNCo0JjQiyDQodCi0J7QiNCQ0J0KK9Cg0JDQqNCY0Isg0KPQoNCe0KgKK9Cg0JDQqNCY0Isg0JLQldCh0J3QkAor0KDQkNCo0JjQlNCYINCU0J7QoNCe0KLQldCI0JAKK9Cg0JDQqNCY0JTQmCDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KDQkNCo0JjQiNCe0JLQkNCdINCg0JDQlNCc0JjQm9CQCivQoNCQ0KjQmNCi0Jgg0JHQkNCI0KDQkNCcCivQoNCQ0KjQmNCi0Jgg0KXQkNCS0JAKK9Cg0JDQqNCY0KLQmCDQmNCc0JXQoAor0KDQkNCo0JrQntCSINCR0KDQkNCd0JrQngor0KDQkNCo0JrQntCSINCR0KDQkNCd0JrQngor0KDQkNCo0JrQntCSINCU0JDQndCY0KbQkAor0KDQkNCo0JrQntCSINCc0JDQoNCY0IjQkAor0KDQkNCo0JrQntCSINCh0JzQmNCJ0JrQkAor0KDQkNCo0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0KjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQqNCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCo0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0KjQmtCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQoNCQ0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQqNCa0J7QktCY0Isg0KHQoNCV0IvQmtCeCivQoNCQ0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCo0JrQntCS0JjQiyDQktCV0KDQkAor0KDQkNCo0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0KjQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCo0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCW0J3QkNCi0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQgtCV0JvQmNCLINCT0J7QoNCU0JDQndCQCivQoNCQ0ILQldCb0JjQiyDQnNCY0JvQkNCdCivQoNCQ0ILQldCd0J7QktCY0Isg0JbQldCJ0JrQngor0KDQkNCC0JXQndCe0JLQmNCLINCW0JXQidCa0J4KK9Cg0JDQgtCV0J3QntCS0JjQiyDQkdCe0JbQngor0KDQkNCC0JXQndCe0JLQmNCLINCR0J7QoNCY0KEKK9Cg0JDQgtCV0J3QntCS0JjQiyDQkdCe0KHQkAor0KDQkNCC0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCC0JXQndCe0JLQmNCLINCU0KDQkNCT0JAKK9Cg0JDQgtCV0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0ILQldCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCC0JXQndCe0JLQmNCLINCa0JDQoNCb0J4KK9Cg0JDQgtCV0J3QntCS0JjQiyDQnNCQ0J3QlQor0KDQkNCC0JXQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQoNCQ0ILQldCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQoNCQ0ILQldCd0J7QktCY0Isg0JzQmNCb0JrQkAor0KDQkNCC0JXQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cg0JDQgtCV0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0KDQkNCC0JXQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCC0JXQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCC0JXQndCe0JLQmNCLINCj0KDQntCoCivQoNCQ0ILQldCd0J7QktCY0Isg0JLQldCJ0JrQngor0KDQkNCC0JXQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0KDQkNCC0JXQktCY0Isg0KHQkNCS0J4KK9Cg0JDQkdCQ0I/QmNCI0JXQktCh0JrQmCDQn9CQ0KPQm9CQCivQoNCQ0JHQkNCi0JjQiyDQnNCY0JvQntCoCivQoNCQ0JHQmCDQiNCe0JbQldCkCivQoNCQ0JHQmNCI0JDQpiDQodCg0JHQkAor0KDQkNCR0KDQldCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JHQoNCV0J3QntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0KDQkNCR0KDQldCd0J7QktCY0Isg0JfQm9CQ0KLQmNCd0JrQkAor0KDQkNCmINCo0JDQndCU0J7QoAor0KDQkNCmINCQ0JvQkdCV0KDQogor0KDQkNCmINCQ0J3QkAor0KDQkNCmINCR0KDQo9Cd0J4KK9Cg0JDQpiDQldCU0JzQo9Cd0JQKK9Cg0JDQpiDQpNCV0KDQldCd0KYKK9Cg0JDQpiDQpNCV0KDQldCd0KYKK9Cg0JDQpiDQpNCg0JDQitCQCivQoNCQ0KYg0JPQkNCR0KDQmNCI0JXQmwor0KDQkNCmINCI0JDQndCe0KgKK9Cg0JDQpiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KDQkNCmINCI0J7QktCQ0J0KK9Cg0JDQpiDQidCY0InQkNCd0JAKK9Cg0JDQpiDQidCj0JHQntCc0JjQoAor0KDQkNCmINCc0JDQoNCY0IjQkAor0KDQkNCmINCc0JDQoNCY0IjQkAor0KDQkNCmINCc0JXQm9CQ0J3QmNCI0JAKK9Cg0JDQpiDQn9CQ0JsKK9Cg0JDQpiDQoNCj0JTQntCb0KQKK9Cg0JDQpi3QodCQ0JHQniDQm9CQ0IjQntCoCivQoNCQ0KYg0KHQotCV0JLQkNCdCivQoNCQ0KYg0KLQldCe0JTQntCgCivQoNCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCmINCX0JvQkNCi0JAKK9Cg0JDQptCQINCC0KPQoNCeCivQoNCQ0KbQkCDQlNCg0JDQk9CQ0J0KK9Cg0JDQptCQINCU0KDQkNCT0JDQnQor0KDQkNCm0JAg0JTQoNCQ0JPQkNCdCivQoNCQ0KbQkCDQlNCj0KjQkNCdCivQoNCQ0KbQkCDQk9Ce0KDQlNCQ0J3QkCDQlNCgCivQoNCQ0KbQkCDQnNCY0KDQmtCeCivQoNCQ0KbQkCDQn9CV0KLQkNCgCivQoNCQ0KbQkCDQoNCj0JbQmNCm0JAKK9Cg0JDQptCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JDQptCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0KbQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQptCY0Isg0JzQmNCb0JDQnQor0KDQkNCm0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCm0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQptCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0KbQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0KbQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0KbQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0KbQmNCLINCg0JDQlNCV0J3QmtCeCivQoNCQ0KbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQptCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCm0JjQiyDQktCV0InQmtCeCivQoNCQ0KbQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0KbQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0KbQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQptCa0J7QkiDQlNCQ0KDQmNCd0JrQkAor0KDQkNCm0JrQntCSINCU0KDQkNCT0J7QodCb0JDQkgor0KDQkNCm0JrQntCSINCa0JDQotCY0KbQkAor0KDQkNCm0JrQntCSINCb0JDQl9CQ0KAKK9Cg0JDQptCa0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQptCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0KDQkNCm0JrQntCSINCc0JjQm9Ce0KgKK9Cg0JDQptCa0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0KbQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCm0JrQntCSINCd0JDQotCQ0KjQkAor0KDQkNCm0JrQntCSINCe0JvQk9CQCivQoNCQ0KbQmtCe0JIg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQptCa0J7QkiDQoNCQ0JTQntCc0JjQoAor0KDQkNCm0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQptCa0J7QkiDQodCQ0JLQkAor0KDQkNCm0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQptCa0J7QkiDQodCg0ILQkNCdCivQoNCQ0KbQmtCe0JIg0KHQoNCC0JDQnQor0KDQkNCm0JrQntCSINCh0KDQgtCQ0J0KK9Cg0JDQptCa0J7QkiDQl9Cb0JDQotCY0KbQkAor0KDQkNCm0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0KbQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQptCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCm0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0KbQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQptCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCm0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCm0JvQldCgINCC0JXQoNCCCivQoNCQ0KbQm9CV0KAg0JzQkNCg0JPQmNCiCivQoNCQ0KbQniDQnNCY0IvQngor0KDQkNCm0J4g0KDQkNCi0JrQngor0KDQkNCUINCf0KDQldCU0KDQkNCTCivQoNCQ0JTQkNCo0JjQnSDQldCb0JLQmNCg0JAKK9Cg0JDQlNCQ0KjQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCQ0KjQmNCdINCX0JLQldCX0JTQkNCdCivQoNCQ0JTQkNCaINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0Jog0ILQo9Cg0JjQptCQCivQoNCQ0JTQkNCaINCU0KPQqNCQ0J0KK9Cg0JDQlNCQ0Jog0JTQo9Co0JDQnQor0KDQkNCU0JDQmiDQk9CQ0JLQoNCQCivQoNCQ0JTQkNCaINCI0JXQm9CY0KHQkNCS0JXQotCQCivQoNCQ0JTQkNCaINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQkNCaINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0Jog0JrQntCS0JjQndCa0JAKK9Cg0JDQlNCQ0Jog0JvQkNCX0JDQoAor0KDQkNCU0JDQmiDQm9CQ0JfQkNCgCivQoNCQ0JTQkNCaINCJ0KPQkdCY0KbQkAor0KDQkNCU0JDQmiDQidCj0JHQmNCm0JAKK9Cg0JDQlNCQ0Jog0JvQo9Ca0JAKK9Cg0JDQlNCQ0Jog0JzQmNCb0JDQlNCY0J3QmtCQCivQoNCQ0JTQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCQ0Jog0J7Qm9CT0JAKK9Cg0JDQlNCQ0Jog0KDQkNCU0JzQmNCb0JAKK9Cg0JDQlNCQ0Jog0KHQm9CQ0JLQmtCeCivQoNCQ0JTQkNCaINCX0J7QoNCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQkNCa0J7QktCY0Isg0ILQo9Cg0JDQggor0KDQkNCU0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQkNCa0J7QktCY0Isg0JDQndCQINCU0KAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQlNCQ0KDQmtCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCQ0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCU0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQm9CQ0JfQngor0KDQkNCU0JDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JDQndCU0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQnNCQ0J3QlQor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9CVCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQnNCY0JvQntCI0JrQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0JDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQkNCa0J7QktCY0Isg0KDQkNCU0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQoNCQ0JTQlQor0KDQkNCU0JDQmtCe0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCi0JXQntCU0J7QoNCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KDQkNCU0JDQnSDQktCV0JvQmNCc0JjQoAor0KDQkNCU0JDQndCe0JIg0JHQmNCJ0JDQndCQCivQoNCQ0JTQkNCd0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQoNCQ0JTQkNCd0J7QkiDQlNCj0KjQkNCdCivQoNCQ0JTQkNCd0J7QkiDQk9Ce0KHQn9CQ0JLQkAor0KDQkNCU0JDQndCe0JIg0InQo9CR0J7QnNCY0KAg0JDQlNCS0J7QmtCQ0KIKK9Cg0JDQlNCQ0J3QntCSINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQkNCd0J7QkiDQnNCY0KDQntCh0JvQkNCS0JAKK9Cg0JDQlNCQ0J3QntCSINCd0JjQmtCe0JvQkAor0KDQkNCU0JDQndCe0JIg0J7Qm9CY0JLQldCg0JAKK9Cg0JDQlNCQ0J3QntCSINCg0JDQlNCY0J3QmtCQCivQoNCQ0JTQkNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0JDQndCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0JDQndCe0JIg0JLQldCg0JjQptCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0KDQkNCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQkNCd0J7QktCY0Isg0ILQo9Ca0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQkNCU0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQoNCQ0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQmtCQ0KLQkAor0KDQkNCU0JDQndCe0JLQmNCLINCa0J7QktCY0InQmtCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0InQo9CR0J4KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQngor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KDQkNCU0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0JTQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0KHQkNCo0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0JDQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCU0JDQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCU0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0KDQkNCU0JDQndCe0JLQmNCLINCi0KDQmNCo0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KDQkNCU0JDQoiDQnNCQ0KDQmtCeCivQoNCQ0JTQkNCi0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQldCaINCQ0J3QlNCg0JDQqAor0KDQkNCU0JXQmiDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCV0JrQkCDQqNCi0JXQpNCa0JAKK9Cg0JDQlNCV0JrQkCDQlNCj0KjQmtCeCivQoNCQ0JTQldCa0JAg0IjQntCS0JDQnQor0KDQkNCU0JXQmtCQINCc0JjQm9CVCivQoNCQ0JTQldCa0JAg0JzQmNCb0JrQkAor0KDQkNCU0JXQmtCQINCd0JjQmtCe0JvQkAor0KDQkNCU0JXQmtCQINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQldCa0JjQnSDQidCj0JHQmNCm0JAKK9Cg0JDQlNCV0JvQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCV0J3Qp9CY0Isg0IjQntCh0JjQnwor0KDQkNCU0JXQndCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQkdCb0JDQltCQCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KDQkNCU0JXQndCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KDQkNCU0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCU0JXQndCa0J7QktCY0Isg0J3QkNCU0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCg0JDQotCe0JzQmNCgCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KDQkNCU0JXQndCa0J7QktCY0Isg0JLQiNCV0KDQkAor0KDQkNCU0JXQndCe0JLQmNCLINCe0JHQoNCV0J0KK9Cg0JDQlNCV0KLQkCDQodCb0JDQktCa0J4KK9Cg0JDQlNCV0KLQkCDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JTQldCi0JjQiyDQkdCe0KjQmtCeCivQoNCQ0JTQldCi0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCV0KLQmNCLINCT0J7QoNCQ0J0KK9Cg0JDQlNCV0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCQ0JTQldCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQldCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQldCS0JjQiyDQk9Ce0KDQkNCdCivQoNCQ0JTQldCS0JjQiyDQmNCS0JDQnQor0KDQkNCU0JXQktCY0Isg0JzQmNCb0JXQktCQCivQoNCQ0JTQldCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQldCS0JjQiyDQktCe0IjQmNCc0JjQoAor0KDQkNCU0JjQp9CV0JIg0IjQldCb0JjQptCQCivQoNCQ0JTQmNCn0JXQkiDQnNCQ0KDQmNCI0JAg0JTQoAor0KDQkNCU0JjQp9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JTQmNCn0JXQktCY0Isg0KHQkNCS0JAKK9Cg0JDQlNCY0KfQldCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQmNCn0JjQiyDQodCc0JjQidCQ0J3QkAor0KDQkNCU0JjQqNCY0Isg0JbQmNCS0JrQngor0KDQkNCU0JjQqNCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JjQqNCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cg0JDQlNCY0KjQmNCLINCR0JjQidCQ0J3QkAor0KDQkNCU0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0JjQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQmNCo0JjQiyDQkdCg0JDQndCa0JAKK9Cg0JDQlNCY0KjQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JjQqNCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQlNCY0KjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cg0JDQlNCY0KjQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCY0KjQmNCLINCU0KPQqNCY0KbQkAor0KDQkNCU0JjQqNCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0JjQqNCY0Isg0IjQldCk0KLQkAor0KDQkNCU0JjQqNCY0Isg0IjQldCb0JXQndCQCivQoNCQ0JTQmNCo0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQmNCo0JjQiyDQiNCe0JLQngor0KDQkNCU0JjQqNCY0Isg0JrQkNCi0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQmNCo0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQmNCo0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQmNCo0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQlNCY0KjQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCU0JjQqNCY0Isg0JzQkNCg0JrQngor0KDQkNCU0JjQqNCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JjQqNCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCU0JjQqNCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0JjQqNCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQoNCQ0JTQmNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQlNCY0KjQmNCLINCd0JXQndCQCivQoNCQ0JTQmNCo0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCY0KjQmNCLINCe0JHQoNCQ0JTQmNCdCivQoNCQ0JTQmNCo0JjQiyDQntCb0JjQktCV0KDQkAor0KDQkNCU0JjQqNCY0Isg0J/QldCg0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQn9CV0KDQngor0KDQkNCU0JjQqNCY0Isg0J/QldCg0KHQkAor0KDQkNCU0JjQqNCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JjQqNCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCY0KjQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JTQmNCo0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCU0JjQqNCY0Isg0KHQkNCS0JXQotCQCivQoNCQ0JTQmNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQmNCo0JjQiyDQodCi0JDQndCe0IjQlQor0KDQkNCU0JjQqNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQlNCY0KjQmNCLINCi0J7QlNCe0KAKK9Cg0JDQlNCY0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCY0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCY0KjQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQlNCY0Isg0KfQldCU0JAKK9Cg0JDQlNCY0Isg0JbQldCJ0JrQngor0KDQkNCU0JjQiyDQltCY0JLQkNCdCivQoNCQ0JTQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JjQiyDQkNCd0ILQkAor0KDQkNCU0JjQiyDQkNCd0ILQldCb0JrQngor0KDQkNCU0JjQiyDQkNCd0JTQoNCY0IjQkCDQlNCgCivQoNCQ0JTQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Cg0JDQlNCY0Isg0JDQndCa0JjQptCQCivQoNCQ0JTQmNCLINCQ0J3QotCVCivQoNCQ0JTQmNCLINCR0J7QqNCa0J4KK9Cg0JDQlNCY0Isg0JHQoNCQ0J3QmtCQCivQoNCQ0JTQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KDQkNCU0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0JjQiyDQpNCg0JDQitCQCivQoNCQ0JTQmNCLINCk0KDQkNCK0J4KK9Cg0JDQlNCY0Isg0JPQntCI0JrQngor0KDQkNCU0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQmNCLINCY0JLQkNCd0JrQkAor0KDQkNCU0JjQiyDQiNCe0KHQmNCfCivQoNCQ0JTQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCY0Isg0JvQkNCX0JDQoAor0KDQkNCU0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQlNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQmNCLINCc0JjQiNCQCivQoNCQ0JTQmNCLINCc0JjQm9CQ0J3QmtCeCivQoNCQ0JTQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JjQiyDQnNCY0JvQlQor0KDQkNCU0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCU0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCU0JjQiyDQnNCY0JvQmtCQCivQoNCQ0JTQmNCLINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0JjQiyDQnNCY0KDQmtCeCivQoNCQ0JTQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCU0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCU0JjQiyDQndCV0J3QkNCUCivQoNCQ0JTQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQmNCLLdCf0J7Qn9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQoNCQ0JTQmNCLINCf0KDQldCU0KDQkNCTCivQoNCQ0JTQmNCLINCg0JDQlNCQCivQoNCQ0JTQmNCLINCg0JDQlNCVCivQoNCQ0JTQmNCLINCg0J7QkdCV0KDQogor0KDQkNCU0JjQiyDQodCQ0JLQkAor0KDQkNCU0JjQiyDQodCb0JDQktCY0KjQkAor0KDQkNCU0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQlNCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JTQmNCLINCh0KLQkNCd0JrQngor0KDQkNCU0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCLINCh0KLQntCI0JDQnQor0KDQkNCU0JjQiyDQotCY0KXQntCc0JjQoAor0KDQkNCU0JjQiyDQotCg0JjQktCQCivQoNCQ0JTQmNCLINCS0JXQm9CY0J3QmtCQCivQoNCQ0JTQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQlNCY0Isg0JfQntCg0JDQnQor0KDQkNCU0JjQiyDQl9Ce0KDQkAor0KDQkNCU0JjQiyDQl9Ce0KDQmNCm0JAKK9Cg0JDQlNCY0JHQoNCQ0KLQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCY0JHQoNCQ0KLQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQkNCU0JjQiNCV0InQkNCmINCI0JXQm9CV0J3QkAor0KDQkNCU0JjQiNCV0InQkNCmINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQmNCdINCW0JjQktCQ0J0KK9Cg0JDQlNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCY0J0g0JDQndCi0J7QndCY0IjQkAor0KDQkNCU0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQmNCdINCR0KDQkNCd0JrQngor0KDQkNCU0JjQnSDQlNCg0JDQk9Ce0IjQm9CQCivQoNCQ0JTQmNCdINCl0KDQmNCh0KLQmNCd0JAKK9Cg0JDQlNCY0J0g0JjQktCQ0J3QmtCQCivQoNCQ0JTQmNCdINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQmNCdINCb0JDQl9CQ0KAKK9Cg0JDQlNCY0J0g0InQo9CR0J7QnNCY0KAg0JTQoCDQm9CV0JrQkNCgCivQoNCQ0JTQmNCdINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQmNCdINCc0JDQmtCh0JjQnNCY0JvQmNCI0JDQnQor0KDQkNCU0JjQnSDQnNCQ0KDQkAor0KDQkNCU0JjQnSDQnNCY0JvQkNCU0JjQndCa0JAKK9Cg0JDQlNCY0J0g0JzQmNCb0JDQnQor0KDQkNCU0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQmNCdINCc0JjQm9CQ0J0KK9Cg0JDQlNCY0J0g0JzQmNCb0JDQnQor0KDQkNCU0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQmNCdINCc0JjQm9CV0J3QkAor0KDQkNCU0JjQnSDQnNCY0JvQmtCQCivQoNCQ0JTQmNCdINCc0JjQoNCQCivQoNCQ0JTQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0JzQm9CQ0JTQldCdCivQoNCQ0JTQmNCdINCd0JDQlNCQCivQoNCQ0JTQmNCdINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCY0J0g0J/QldCi0JDQoCDQlNCgCivQoNCQ0JTQmNCdINCg0JDQlNCQCivQoNCQ0JTQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0KHQm9CQ0JLQmNCd0JrQkAor0KDQkNCU0JjQnSDQodCb0JDQktCa0J4KK9Cg0JDQlNCY0J0g0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCdINCh0KLQldCS0JDQnQor0KDQkNCU0JjQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0KLQntCc0JjQodCb0JDQkgor0KDQkNCU0JjQnSDQktCV0KHQldCb0JjQnQor0KDQkNCU0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQmNCdINCX0JvQkNCi0J7QiNCVCivQoNCQ0JTQmNCdINCX0J7QoNCQ0J3QmtCQCivQoNCQ0JTQmNCdINCX0J7QoNCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JjQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQoNCQ0JTQmNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCQ0JTQmNCd0J7QktCY0Isg0JTQo9Co0JrQngor0KDQkNCU0JjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cg0JDQlNCY0J3QntCS0JjQiyDQm9CQ0JfQngor0KDQkNCU0JjQndCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0JjQndCe0JLQmNCLINCc0JjQoNCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQkNCU0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0JjQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQlNCY0J3QntCS0JjQiyDQodCY0JvQktCQ0J3QkAor0KDQkNCU0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0JjQndCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQoNCQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQoNCQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JjQktCQ0J0KK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCh0JDQkgor0KDQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQl9Ce0KDQmNCm0JAg0JTQoAor0KDQkNCU0JjQktCe0IjQqNCQINCc0JjQm9Ce0KgKK9Cg0JDQlNCY0JLQntCI0KjQkCDQodCc0JjQidCQCivQoNCQ0JTQmNCS0J7QiNCQ0KYg0JTQntCR0KDQmNCb0JAKK9Cg0JDQlNCY0JLQntCI0JDQpiDQlNCg0JDQk9CQCivQoNCQ0JTQmNCS0J7QiNCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCU0JjQktCe0IjQkNCmINCI0J7QktCQ0J0KK9Cg0JDQlNCY0JLQntCI0JDQpiDQndCQ0KLQkNCb0JjQiNCQCivQoNCQ0JTQmNCS0J7QiNCV0JIg0KDQkNCU0JjQndCa0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JHQntCT0J7QidCj0JEKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQkdCg0JDQotCY0JzQmNCgCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnSDQnNCgCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0J7QldCmCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCY0JTQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQiNCQ0J3QmtCeCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCI0JXQm9CQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JvQo9Ca0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JvQo9Ca0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQlQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQndCV0ILQngor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQndCV0JzQkNCK0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KDQkNCU0J7QqAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQoNCQ0KLQmtCeCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0JjQndCY0KjQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KLQo9CT0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQldCg0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQmNCU0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQmNCU0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQo9Ca0JjQptCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCU0JjQktCe0IjQmtCe0JIg0ILQntCg0ILQlQor0KDQkNCU0JjQktCe0IjQmtCe0JIg0IjQldCb0JjQptCQCivQoNCQ0JTQmNCS0J7QiNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0JjQktCe0IjQmtCe0JIg0KDQkNCI0JrQngor0KDQkNCU0JjQktCe0IjQmtCe0JIg0KHQkNCS0JAKK9Cg0JDQlNCY0JLQntCI0JrQntCSINCh0KLQldCS0JDQnQor0KDQkNCU0JvQntCS0JDQp9Ca0Jgg0JTQntCR0KDQmNCd0JrQkAor0KDQkNCU0JvQntCS0JDQp9Ca0Jgg0KHQmNCd0JjQqNCQCivQoNCQ0JTQm9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cg0JDQlNCc0JDQnSDQqNCY0JzQo9CdCivQoNCQ0JTQnNCQ0J0g0KjQn9CY0KDQngor0KDQkNCU0JzQkNCdINCY0JLQkNCdCivQoNCQ0JTQnNCQ0J0g0JvQldCf0J7QodCQ0JLQkAor0KDQkNCU0JzQkNCdINCc0JjQm9CQ0J0KK9Cg0JDQlNCc0JDQnSDQnNCY0JvQlQor0KDQkNCU0JzQkNCdINCc0JjQm9CY0KbQkAor0KDQkNCU0JzQkNCdINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQnNCQ0J0g0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0JzQkNCd0JjQiyDQldCS0JjQptCQCivQoNCQ0JTQnNCQ0J3QntCS0JDQpiDQnNCY0JvQntCS0JDQnQor0KDQkNCU0JzQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQlNCc0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQnNCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0JzQmNCb0J4g0ILQo9Cg0J4KK9Cg0JDQlNCc0JjQm9CeINCc0JDQoNCY0IjQkAor0KDQkNCU0JzQmNCb0J4g0JzQmNCg0JrQngor0KDQkNCU0JzQmNCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQnNCY0JvQntCS0JjQiyDQoNCQ0JTQlSDQn9Cg0J7QpNCV0KHQntCgCivQoNCQ0JTQnNCY0JvQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQoNCQ0JTQnNCY0JvQntCS0JjQiyDQodCi0JXQktCeCivQoNCQ0JTQndCY0Isg0JTQntCR0KDQmNCd0JrQkAor0KDQkNCU0J3QntCSINCQ0JvQldCa0KHQkAor0KDQkNCU0J3QntCSINCb0JXQndCa0JAKK9Cg0JDQlNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J3QntCSINCg0JDQiNCa0J4KK9Cg0JDQlNCd0J7QkiDQl9Ce0KDQmtCQCivQoNCQ0JTQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J3QntCS0JjQiyDQntCb0JPQmNCm0JAKK9Cg0JDQlNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCd0J7QktCY0Isg0KPQoNCe0KgKK9Cg0JDQlNCd0J7QktCY0Isg0KPQoNCe0KgKK9Cg0JDQlNCe0KfQkNCIINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQntCn0JDQiCDQmNCb0JjQiNCQCivQoNCQ0JTQntCn0JDQiCDQnNCQ0KDQkAor0KDQkNCU0J7Qp9CQ0Igg0JzQmNCb0JrQkAor0KDQkNCU0J7Qp9CQ0Igg0J3QldCU0JXQidCa0JAKK9Cg0JDQlNCe0KfQkNCIINCh0JDQktCa0JAKK9Cg0JDQlNCe0Kgg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0J7QqCDQlNCQ0J3QmNCm0JAKK9Cg0JDQlNCe0Kgg0JTQoNCV0J3QmtCQCivQoNCQ0JTQntCoINCc0JDQoNCi0JAKK9Cg0JDQlNCe0Kgg0JzQmNCb0JDQnQor0KDQkNCU0J7QqCDQoNCj0JbQkAor0KDQkNCU0J7QqCDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCoINCX0J7QoNCQCivQoNCQ0JTQntCo0JXQktCY0Ist0KjQotCY0JzQkNCmINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCe0KjQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCQ0J3QmNCm0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQkNCd0JjQptCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQkdCe0JbQngor0KDQkNCU0J7QqNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0J7QqNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0J7QqNCV0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JTQo9Co0JjQptCQCivQoNCQ0JTQntCo0JXQktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQntCo0JXQktCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCU0J7QqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCi0JDQoAor0KDQkNCU0J7QqNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQoNCQ0JTQntCo0JXQktCY0Isg0KDQkNCU0JUKK9Cg0JDQlNCe0KjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J7QqNCV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JTQntCo0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCe0KjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QqNCV0JLQmNCLINCg0J7QlNCe0InQo9CRCivQoNCQ0JTQntCo0JXQktCY0Isg0KHQotCQ0J3QmNCm0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQotCV0KDQldCX0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCo0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQlNCe0KYg0KTQoNCQ0IrQkAor0KDQkNCU0J7Qpi3QodCY0JzQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCU0J7QmNCn0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCY0KfQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0J7QiNCn0JXQktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0J7QiNCn0JjQiyDQkdCe0JbQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCe0IjQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0JTQkNCd0JjQptCQCivQoNCQ0JTQntCI0KfQmNCLINCU0JDQoNCY0J3QmtCQCivQoNCQ0JTQntCI0KfQmNCLINCU0KDQkNCT0JDQndCQCivQoNCQ0JTQntCI0KfQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0JTQoNCQ0JPQngor0KDQkNCU0J7QiNCn0JjQiyDQlNCj0KjQmtCeCivQoNCQ0JTQntCI0KfQmNCLINCT0J7QiNCa0J4KK9Cg0JDQlNCe0IjQp9CY0Isg0JjQoNCV0J3QkAor0KDQkNCU0J7QiNCn0JjQiyDQmNCS0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQmNCS0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQmNCS0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQidCY0IjQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9CQ0JTQmNCdCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQotCQ0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0J3QkNCU0JjQptCQCivQoNCQ0JTQntCI0KfQmNCLINCd0JXQndCQ0JQKK9Cg0JDQlNCe0IjQp9CY0Ist0J7QkdCV0KDQmtCd0JXQltCV0JIg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0J/QkNCS0JvQlQor0KDQkNCU0J7QiNCn0JjQiyDQodCQ0JLQkAor0KDQkNCU0J7QiNCn0JjQiyDQodCg0JXQotCV0J0KK9Cg0JDQlNCe0IjQp9CY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCI0KfQmNCLINCS0JjQotCe0JzQmNCgCivQoNCQ0JTQntCI0KfQmNCLINCS0JvQkNCU0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCI0KfQmNCdINCC0J7QoNCC0JUKK9Cg0JDQlNCe0IjQp9CY0J0g0JDQndCY0KbQkAor0KDQkNCU0J7QiNCn0JjQnSDQlNCe0JHQoNCY0JvQkAor0KDQkNCU0J7QiNCn0JjQnSDQlNCj0KjQmNCm0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JXQktCY0KbQkAor0KDQkNCU0J7QiNCn0JjQnSDQiNCj0JvQmtCQCivQoNCQ0JTQntCI0KfQmNCdINCc0JDQoNCQCivQoNCQ0JTQntCI0KfQmNCdINCc0JDQoNCi0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JzQmNCb0JDQnQor0KDQkNCU0J7QiNCn0JjQnSDQnNCY0JvQmtCQCivQoNCQ0JTQntCI0KfQmNCdINCc0JjQm9Ce0KgKK9Cg0JDQlNCe0IjQp9CY0J0g0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCe0IjQp9CY0J0g0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0KDQkNCU0JzQmNCb0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0KDQkNCU0J7QiNCa0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCe0IjQp9CY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0J7QiNCn0JjQnSDQodCg0JXQlNCe0IjQlQor0KDQkNCU0J7QiNCn0JjQnSDQotCe0JTQntCgCivQoNCQ0JTQntCI0KfQmNCdINCS0JXQm9CY0JzQmNCgCivQoNCQ0JTQntCI0KfQmNCdINCS0JXQoNCQCivQoNCQ0JTQntCI0KfQmNCdINCS0JXQoNCQCivQoNCQ0JTQntCI0JAg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0J7QiNCQINCa0J7QktCY0InQmtCQCivQoNCQ0JTQntCI0JXQkiDQmNCS0JDQnQor0KDQkNCU0J7QiNCV0JIg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCI0JXQktCY0Isg0ILQntCa0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCR0J7QodCY0InQmtCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JTQldCI0JDQnQor0KDQkNCU0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KDQkNCU0J7QiNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCU0J7QiNCV0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCa0JDQotCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JrQntCh0KLQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQm9CVCivQoNCQ0JTQntCI0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQoNCe0KHQkNCd0JTQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCI0JXQktCY0Isg0J/QldCi0KDQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQoNCQ0JTQntCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQktCa0JAg0JTQoAor0KDQkNCU0J7QiNCV0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQntCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCI0JXQktCY0Isg0KHQoNCR0J7QidCj0JEKK9Cg0JDQlNCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KDQkNCU0J7QiNCV0JLQmNCLINCS0JXQoNCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCU0J7QiNCY0KfQmNCLINCC0J7QmtCQCivQoNCQ0JTQntCI0JjQp9CY0Isg0ILQntCg0ILQngor0KDQkNCU0J7QiNCY0KfQmNCLINCU0JDQndCY0JvQngor0KDQkNCU0J7QiNCY0KfQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QiNCY0KfQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCU0J7QiNCY0KfQmNCLINCI0J7QoNCU0JDQnQor0KDQkNCU0J7QiNCY0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQntCI0JjQp9CY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQntCI0JjQp9CY0Isg0JzQmNCb0J7QodCQ0JIKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQntCR0KDQldCdCivQoNCQ0JTQntCI0JjQp9CY0Isg0KDQkNCU0JUKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQoNCQ0JTQmNCo0JAKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQktCb0JDQlNCQ0J0KK9Cg0JDQlNCe0IjQmNCn0JjQiyDQktCe0IjQmNCdCivQoNCQ0JTQntCI0JrQniDQiNCV0JvQldCd0JAKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QiNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQoNCQ0JTQntCI0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JTQntCI0JrQntCS0JjQiyDQotCg0JDQiNCa0J4KK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0JzQkNCdINCI0JXQm9CV0J3QkAor0KDQkNCU0J7QnNCQ0J0g0InQo9CR0JjQptCQCivQoNCQ0JTQntCc0JDQnSDQnNCQ0KDQotCQCivQoNCQ0JTQntCc0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JTQntCc0JDQnSDQl9Ce0KDQkNCdCivQoNCQ0JTQntCc0JjQoCDQodCi0J7QiNCQ0J0KK9Cg0JDQlNCe0JzQmNCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQlNCe0JzQmNCg0J7QktCY0Isg0JLQmNCd0JrQngor0KDQkNCU0J7QnNCY0KDQntCS0JjQiyDQktCj0JrQodCQ0J0KK9Cg0JDQlNCe0JzQmNCg0J7QktCY0Isg0JfQm9CQ0KLQkAor0KDQkNCU0J7QndCn0JjQiyDQiNCj0KHQo9CkCivQoNCQ0JTQntCd0KfQmNCLINCg0JDQnNCY0JcKK9Cg0JDQlNCe0J3QmNCLINCW0JXQidCa0J4KK9Cg0JDQlNCe0J3QmNCLINCW0JjQktCQ0J0KK9Cg0JDQlNCe0J3QmNCLINCW0JjQktCa0J4KK9Cg0JDQlNCe0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQntCd0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0J7QndCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cg0JDQlNCe0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0J7QndCY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QndCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQntCd0JjQiyDQlNCQ0J3QmNCm0JAKK9Cg0JDQlNCe0J3QmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0J3QmNCLINCV0JLQk9CV0J3QmNCI0JUKK9Cg0JDQlNCe0J3QmNCLINCk0JXQoNCV0J3Qpgor0KDQkNCU0J7QndCY0Isg0KXQkNCd0JAKK9Cg0JDQlNCe0J3QmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0J3QmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQntCd0JjQiyDQnNCQ0JrQodCY0JwKK9Cg0JDQlNCe0J3QmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cg0JDQlNCe0J3QmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQntCd0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQlNCe0J3QmNCLINCd0JDQlNCQCivQoNCQ0JTQntCd0JjQiyDQndCQ0JTQkAor0KDQkNCU0J7QndCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQlNCe0J3QmNCLINCd0JXQndCQ0JQKK9Cg0JDQlNCe0J3QmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0J7QndCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCd0JjQiyDQndCe0JLQmNCm0JAKK9Cg0JDQlNCe0J3QmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCe0J3QmNCLINCg0JDQlNCQCivQoNCQ0JTQntCd0JjQiyDQoNCQ0JTQlQor0KDQkNCU0J7QndCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCe0J3QmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0JTQntCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCU0J7QndCY0Isg0KDQkNCI0JrQngor0KDQkNCU0J7QndCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JTQntCd0JjQiyDQktCb0JDQlNCQCivQoNCQ0JTQntCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCK0JAg0JDQndCi0JUKK9Cg0JDQlNCe0IrQkNCd0JjQnSDQnNCQ0KDQotCQCivQoNCQ0JTQntCK0JDQndCY0J0g0J/QldCi0JDQoAor0KDQkNCU0J7QitCQ0J3QmNCdINCS0JvQkNCh0KLQmNCc0JjQoAor0KDQkNCU0J7QitCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQntCK0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQlNCe0IrQmNCLINCY0JLQkNCdCivQoNCQ0JTQntCK0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQoNCQ0JTQntCK0JjQiyDQm9Cj0JrQkAor0KDQkNCU0J7QitCY0Isg0JzQkNCd0JTQkAor0KDQkNCU0J7QitCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cg0JDQlNCe0IrQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQntCK0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QitCY0Isg0JzQmNCi0JDQoAor0KDQkNCU0J7QitCY0Isg0J7Qm9CT0JAKK9Cg0JDQlNCe0IrQmNCLINCh0JXQndCa0JAKK9Cg0JDQlNCe0IrQmNCLINCh0JvQkNCS0J7QnNCY0KAKK9Cg0JDQlNCe0IrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCe0IrQmNCLINCh0J3QldCW0JDQndCQCivQoNCQ0JTQntCK0JjQiyDQodCi0JDQndCQCivQoNCQ0JTQntCK0JjQiyDQktCV0KDQmNCm0JAKK9Cg0JDQlNCe0KHQkNCSINCV0KDQltCV0JHQldCiCivQoNCQ0JTQntCh0JDQkiDQmtCg0JjQodCi0JjQndCQCivQoNCQ0JTQntCh0JDQkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J7QodCQ0JLQp9CV0JIg0JTQo9Co0JDQnQor0KDQkNCU0J7QodCQ0JLQp9CV0JIg0JzQmNCb0JAKK9Cg0JDQlNCe0KHQkNCS0JDQpiDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQoAor0KDQkNCU0J7QodCQ0JLQkNCmINCU0KPQqNCY0KbQkAor0KDQkNCU0J7QodCQ0JLQkNCmINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQntCh0JDQktCQ0KYg0JLQldCb0JjQl9CQ0KAKK9Cg0JDQlNCe0KHQkNCS0JDQpiDQktCb0JDQlNCeCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQltCY0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JPQntCI0JrQngor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JjQktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCSINCI0JXQktCg0JXQnAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JrQkNCL0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCSINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCSINCf0JDQktCb0JUKK9Cg0JDQlNCe0KHQkNCS0InQldCSINCh0JvQkNCS0JrQkAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQl9Ce0KDQkAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JfQntCg0JjQptCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0J7Qk9Ce0JLQmNCUCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JHQntCg0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQkNCd0JjQldCbCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQmNCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCI0JDQodCc0JjQndCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQo9Cb0JjQiNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCJ0JjQidCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JDQoNCa0J4KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JXQktCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JrQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IrQldCT0J7QodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQoNCQ0JzQmNCX0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQoNCe0JTQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JjQndCY0KjQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQntCI0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCS0JvQkNCU0JXQotCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JfQkNCT0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCX0J7QoNCY0KbQkAor0KDQkNCU0J7QktCQ0KYg0JjQktCQCivQoNCQ0JTQntCS0JDQpiDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0JLQkNCmINCf0JXQotCQ0KAKK9Cg0JDQlNCe0JLQkNCmINCh0JDQktCQCivQoNCQ0JTQntCS0JDQnSDQkNCd0KLQlQor0KDQkNCU0J7QktCQ0J0g0JLQmNCU0J7QodCQ0JLQkAor0KDQkNCU0J7QktCQ0J3Qp9CV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCn0JXQkiDQidCj0JHQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0KfQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0JLQkNCd0KfQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0JLQkNCd0JDQpiDQgtCj0KDQkAor0KDQkNCU0J7QktCQ0J3QkNCmINCd0JXQgtCeCivQoNCQ0JTQntCS0JDQndCe0JIg0JbQmNCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0JDQndCC0JXQm9Ca0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQkNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCSINCR0J7QltCY0JTQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0JHQntCT0JTQkNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCSINCR0KDQkNCd0JrQngor0KDQkNCU0J7QktCQ0J3QntCSINCU0JDQndCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQlNCj0KjQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0JTQo9Co0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCV0JLQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0KDQkNCU0J7QktCQ0J3QntCSINCY0JvQmNCI0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQmtCj0JfQnNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQidCj0JHQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQndCQ0JTQkAor0KDQkNCU0J7QktCQ0J3QntCSINCd0JXQktCV0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0J/QldCi0JDQoAor0KDQkNCU0J7QktCQ0J3QntCSINCf0JXQotCQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQn9CV0KLQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0KDQkNCU0J7QnNCY0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCg0KPQltCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQodCc0JjQidCQ0J3QkAor0KDQkNCU0J7QktCQ0J3QntCSINCh0KLQldCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCh0KLQldCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCh0KLQldCS0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0KLQkNCi0IjQkNCd0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQotCY0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JLQntCI0JjQodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQkNCU0JjQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCY0IjQlQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JjQm9Ce0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQiNCe0JrQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCb0JDQl9CeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAg0JTQoAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCL0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCb0JDQgtCV0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0J3QmNCd0J7QodCb0JDQkiDQlNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAg0JTQoCDQm9CV0JrQkNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0IjQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0JvQkNCU0J7QidCj0JEKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCS0JXQm9CY0KHQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JLQmNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCX0JLQldCX0JTQkNCd0JAKK9Cg0JDQlNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQltCQ0KDQmtCeCivQoNCQ0JTQntCS0JjQiyDQltCY0JLQkNCdCivQoNCQ0JTQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCe0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Cg0JDQlNCe0JLQmNCLINCR0JvQkNCT0JAKK9Cg0JDQlNCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQoNCQ0JTQntCS0JjQiyDQkdCe0KjQmtCeCivQoNCQ0JTQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KDQkNCU0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQntCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCU0JDQoNCa0J4KK9Cg0JDQlNCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQkNCU0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Cg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JTQntCS0JjQiyDQk9Ce0IjQmtCeINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QktCY0Isg0JjQoNCc0JAKK9Cg0JDQlNCe0JLQmNCLINCY0JLQkAor0KDQkNCU0J7QktCY0Isg0IjQldCS0KLQngor0KDQkNCU0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCe0JLQmNCLINCc0JDQk9CU0JDQm9CV0J3QkAor0KDQkNCU0J7QktCY0Isg0JzQkNCT0JTQkAor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9CVCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0KDQkNCU0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cg0JDQlNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCU0J7QktCY0Isg0J3QntCS0JDQmgor0KDQkNCU0J7QktCY0Isg0J7Qm9CT0JAKK9Cg0JDQlNCe0JLQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCe0JLQmNCLINCf0JXQotCa0J4KK9Cg0JDQlNCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQkNCU0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QktCY0Isg0KDQkNCI0JrQngor0KDQkNCU0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQntCS0JjQiyDQoNCe0JfQmNCa0JAKK9Cg0JDQlNCe0JLQmNCLINCh0JDQktCeCivQoNCQ0JTQntCS0JjQiyDQodCY0JzQkAor0KDQkNCU0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCQ0JTQntCS0JjQiyDQodCb0JDQktCa0JAKK9Cg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JrQngor0KDQkNCU0J7QktCY0Isg0KHQoNCV0KLQldCdCivQoNCQ0JTQntCS0JjQiyDQodCi0JDQndCa0J4KK9Cg0JDQlNCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QktCY0Isg0KHQotCg0JDQpdCY0IrQkAor0KDQkNCU0J7QktCY0Isg0KLQldCg0JXQl9CY0IjQkAor0KDQkNCU0J7QktCY0Ist0KPQktCV0KDQmNCLINCc0JjQm9CQINCU0KAKK9Cg0JDQlNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQktCV0InQkAor0KDQkNCU0J7QktCY0Isg0JLQldCJ0JrQngor0KDQkNCU0J7QktCY0Isg0JLQldCJ0JrQngor0KDQkNCU0J7QktCY0Isg0JLQldCg0JAKK9Cg0JDQlNCe0JLQmNCLINCS0JXQoNCQCivQoNCQ0JTQntCS0JjQiyDQktCY0JTQkNCaCivQoNCQ0JTQntCS0JjQiyDQktCY0JTQntCh0JDQkgor0KDQkNCU0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQoNCQ0JTQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JjQiyDQktCj0JrQodCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0JTQntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQntCS0J3QmNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQoyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0IjQmtCeINCC0KPQoNCQCivQoNCQ0JTQo9CI0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0KPQiNCa0J4g0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9CI0JrQniDQlNCV0KHQkAor0KDQkNCU0KPQiNCa0J4g0JTQo9Co0JDQnQor0KDQkNCU0KPQiNCa0J4g0JTQo9Co0JDQnQor0KDQkNCU0KPQiNCa0J4g0JPQntCg0JDQnQor0KDQkNCU0KPQiNCa0J4g0IjQkNCh0JzQmNCd0JAKK9Cg0JDQlNCj0IjQmtCeINCJ0JjQidCQ0J3QkAor0KDQkNCU0KPQiNCa0J4g0JzQkNCg0JrQngor0KDQkNCU0KPQiNCa0J4g0JzQmNCb0JDQnQor0KDQkNCU0KPQiNCa0J4g0JzQmNCg0JAKK9Cg0JDQlNCj0IjQmtCeINCc0JjQoNCa0J4KK9Cg0JDQlNCj0IjQmtCeINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQo9CI0JrQniDQodCi0JXQktCeCivQoNCQ0JTQo9CI0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQo9CI0JrQntCSINCU0JDQndCY0KbQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCj0IjQmtCe0JIg0JTQkNCd0JjQm9CeCivQoNCQ0JTQo9CI0JrQntCSINCU0JDQndCY0JvQngor0KDQkNCU0KPQiNCa0J7QkiDQlNCV0IjQkNCdCivQoNCQ0JTQo9CI0JrQntCSINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQlNCj0IjQmtCe0JIg0InQo9CR0JjQptCQCivQoNCQ0JTQo9CI0JrQntCSINCJ0KPQkdCY0KbQkAor0KDQkNCU0KPQiNCa0J7QkiDQnNCY0JvQkNCdCivQoNCQ0JTQo9CI0JrQntCSINCc0JjQm9CY0JLQntCICivQoNCQ0JTQo9CI0JrQntCSINCc0JjQotCQ0KAKK9Cg0JDQlNCj0IjQmtCe0JIg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9CI0JrQntCSINCf0JXQotCQ0KAKK9Cg0JDQlNCj0IjQmtCe0JIg0KDQo9CW0JjQptCQCivQoNCQ0JTQo9CI0JrQntCSINCh0KLQldCS0JDQnQor0KDQkNCU0KPQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQo9CI0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQo9CI0JrQntCS0JjQiyDQiNCV0JvQmtCQCivQoNCQ0JTQo9CI0JrQntCS0JjQiyDQmtCe0KHQotCQCivQoNCQ0JTQo9Ca0JAg0JvQkNCI0J7QqAor0KDQkNCU0KPQmtCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cg0JDQlNCj0JrQmNCdINCQ0JvQldCa0KHQkAor0KDQkNCU0KPQmtCY0J0g0JHQoNCQ0J3QmtCQCivQoNCQ0JTQo9Ca0JjQnSDQlNCQ0J3QmNCm0JAKK9Cg0JDQlNCj0JrQmNCdINCT0JDQktCg0JAKK9Cg0JDQlNCj0JrQmNCdINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQo9Ca0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQo9Ca0JjQnSDQnNCY0JvQldCd0JrQngor0KDQkNCU0KPQmtCY0J0g0JzQmNCg0JrQngor0KDQkNCU0KPQmtCY0J0g0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0KPQmtCY0J0g0KHQotCe0IjQmtCQCivQoNCQ0JTQo9Cb0JDQqNCa0Jgg0JHQntCo0JrQngor0KDQkNCU0KPQm9CQ0KjQmtCYINCh0KLQldCS0JDQnQor0KDQkNCU0KPQm9CV0JIg0IjQntCS0JDQnQor0KDQkNCU0KPQiSDQiNCV0JvQldCd0JAKK9Cg0JDQlNCj0JvQntCSINCm0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0KPQm9Ce0JIg0KbQktCV0KLQmNCh0JvQkNCSCivQoNCQ0JTQo9Cb0J7QkiDQiNCe0JLQkNCdCivQoNCQ0JTQo9Cb0J7QkiDQiNCj0JvQmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JbQmNCS0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCC0J7QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0KPQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCj0JvQntCS0JjQiyDQgtCj0KDQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkNCd0JAKK9Cg0JDQlNCj0JvQntCS0JjQiy3QkdCV0JvQmNCLINCX0J7QoNCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCe0KHQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCR0J7QodCY0InQmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQkNCd0JjQiNCV0JvQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQk9Ce0KDQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCI0J7QoNCU0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JrQoNCj0J3QmNCh0JvQkNCSCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0InQo9CR0JjQqNCQINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JDQk9CU0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0JUKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCg0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCd0JDQlNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QldCU0JXQidCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCd0J7QodCb0JDQktCQINCU0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J/QldCi0JDQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0JDQlNCVCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCQ0JTQntCI0JUg0JTQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0KPQltCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQo9CU0J7Qm9CkCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQkNCS0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQldCb0JjQnNCY0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCg0JXQotCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCQ0J3QkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQktCV0KLQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQotCe0JzQkNCoCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQl9Cb0JDQotCY0J3QmtCQINCU0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JfQntCg0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cg0JDQlNCj0JzQmNCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCj0JzQmNCb0J4g0JPQntCg0JTQkNCd0JAKK9Cg0JDQlNCj0JzQmNCb0J4g0JzQmNCL0J4KK9Cg0JDQlNCj0JzQmNCb0J4g0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQlNCj0JzQmNCb0J4g0JzQmNCg0JrQngor0KDQkNCU0KPQnSDQltCV0InQmtCeCivQoNCQ0JTQo9CdINCW0JXQidCa0J4KK9Cg0JDQlNCj0J0g0JTQoNCQ0JPQkNCdCivQoNCQ0JTQo9CdINCT0J7QoNCQ0J0KK9Cg0JDQlNCj0J0g0JjQm9CY0IjQkAor0KDQkNCU0KPQnSDQiNCe0JLQkNCdCivQoNCQ0JTQo9CdINCJ0KPQkdCY0KbQkAor0KDQkNCU0KPQnSDQnNCQ0KDQmtCeCivQoNCQ0JTQo9CdINCc0JjQm9Ce0KgKK9Cg0JDQlNCj0J0g0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0KPQnSDQodCc0JjQidCQCivQoNCQ0JTQo9CdINCS0JvQkNCU0J4KK9Cg0JDQlNCj0IrQmNCLINCc0JjQm9Ce0JzQmNCgCivQoNCQ0JTQo9Cd0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JTQo9Cd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQkNCU0KPQndCa0J7QktCY0Isg0KDQkNCd0JrQngor0KDQkNCU0KPQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCj0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cg0JDQlNCj0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cg0JDQlNCj0J3QntCS0JjQiyDQiNCV0JLQoNCV0JwKK9Cg0JDQlNCj0J3QntCS0JjQiyDQoNCQ0JTQo9CdCivQoNCQ0JTQo9Cd0J7QktCY0Isg0KDQntCh0JDQndCU0JAKK9Cg0JDQlNCj0KHQmNCdINCc0JjQm9CVCivQoNCQ0JTQo9Ch0JjQnSDQotCe0JzQkAor0KDQkNCU0KPQodCY0J0g0JLQldCg0JjQptCQCivQoNCQ0JTQo9Ch0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCR0JjQodCV0KAg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCR0J7QoNCQCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCU0JDQndCY0JvQngor0KDQkNCU0KPQodCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCS0JDQiiDQodCQ0KjQkAor0KDQkNCU0JLQkNCK0Jgg0IjQntCS0JDQnQor0KDQkNCU0JLQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0KDQkNCk0JAg0JDQndCU0KDQkNCoCivQoNCQ0KTQkNCYINCT0JDQkdCe0KAKK9Cg0JDQpNCQ0Jgg0JjQqNCi0JLQkNCdCivQoNCQ0KTQkNCYINCI0KPQm9CY0IjQkNCd0JAKK9Cg0JDQpNCQ0Jgg0KHQotCV0JLQkNCdCivQoNCQ0KTQkNCYINCi0JjQkdCe0KAKK9Cg0JDQpNCQ0IjQm9Ce0JLQmNCLINCX0KPQl9CQ0J3QkAor0KDQkNCk0JDQmyDQgtCj0KDQgtCY0J3QmtCQCivQoNCQ0KTQkNCbINCb0JDQiNCe0KgKK9Cg0JDQpNCQ0Jsg0JzQkNCg0JjQiNCQCivQoNCQ0JPQkNCnINCY0JLQkNCdCivQoNCQ0JPQkNCYINCI0J7QktCT0JXQnQor0KDQkNCT0JDQiNCYINCC0KPQoNCQCivQoNCQ0JPQkNCI0Jgg0JjQoNCY0J3QkAor0KDQkNCT0JDQiNCYINCd0JjQmtCe0JvQkAor0KDQkNCT0JDQiNCYINCd0JjQmtCe0JvQkAor0KDQkNCT0JDQiNCYINCS0JvQkNCU0JAKK9Cg0JDQk9CQ0IjQmCDQktCb0JDQlNCQCivQoNCQ0JPQkNCI0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCT0J4g0JDQlNCQ0JwKK9Cg0JDQk9Cj0JYg0JTQoNCQ0JbQldCdCivQoNCQ0KXQldCb0JjQiyDQodCS0JXQotCe0JzQmNCgINCU0KAKK9Cg0JDQpdCc0JDQnSDQnNCY0KXQkNCI0JvQngor0KDQkNCY0Kcg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQmNCnINCd0JjQmtCe0JvQkAor0KDQkNCY0KfQldCS0JjQiyDQltCY0JLQmtCeCivQoNCQ0JjQp9CV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JjQp9CV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JjQp9CV0JLQmNCLINCR0J7QoNCa0JAKK9Cg0JDQmNCn0JXQktCY0Isg0JTQoNCQ0JPQmNCLCivQoNCQ0JjQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCY0KfQldCS0JjQiyDQktCV0KHQndCQCivQoNCQ0JjQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQmNCn0JjQiyDQltCY0JLQntCI0JjQnQor0KDQkNCY0KfQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCY0JvQmNCLINCg0JDQndCa0J4KK9Cg0JDQmNCb0JjQiyDQktCj0JrQntCh0JDQktCQCivQoNCQ0JjQnNCe0JLQodCa0Jgg0JTQldCh0JDQndCa0JAKK9Cg0JDQmNCd0JDQpiDQnNCQ0KDQmNCa0JAKK9Cg0JDQmNCd0JDQpiDQnNCY0KLQkNCgCivQoNCQ0IjQp9CQ0J0g0JjQqNCi0JLQkNCdCivQoNCQ0IjQp9CV0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQiNCn0JXQotCY0Isg0JXQnNCY0JsKK9Cg0JDQiNCn0JXQotCY0Isg0JPQntCI0JrQngor0KDQkNCI0KfQldCi0JjQiyDQmNCS0JDQndCa0JAKK9Cg0JDQiNCn0JXQotCY0Isg0JvQkNCX0JDQoAor0KDQkNCI0KfQldCi0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQiNCn0JXQotCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQiNCn0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCI0KfQldCi0JjQiyDQoNCj0JbQmNCm0JAKK9Cg0JDQiNCn0JXQotCY0Isg0KHQmNCd0JjQqNCQCivQoNCQ0IjQp9CV0KLQmNCLINCh0KLQntCI0JDQnQor0KDQkNCI0KfQldCi0JjQiyDQktCV0KDQkAor0KDQkNCI0KfQldCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQiNCn0JXQotCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0IjQp9CV0JLQmNCLINCS0JvQkNCU0JXQotCQCivQoNCQ0IjQp9CY0Isg0JPQoNCT0JAKK9Cg0JDQiNCn0JjQiyDQn9CQ0JLQm9CVCivQoNCQ0IjQp9CY0Isg0KHQotCV0JLQkNCdCivQoNCQ0IjQqNCY0Isg0JDQndCC0JAKK9Cg0JDQiNCo0JjQiyDQlNCQ0J3QmNCm0JAKK9Cg0JDQiNCo0JjQiyDQlNCj0KjQkNCdCivQoNCQ0IjQqNCY0Isg0JjQm9CY0IjQkAor0KDQkNCI0KjQmNCLINCI0JXQm9CQCivQoNCQ0IjQqNCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCo0JjQiyDQoNCQ0JTQlQor0KDQkNCI0KjQmNCLINCh0KLQkNCd0JAKK9Cg0JDQiNCo0JjQiyDQodCi0JDQndCa0J4KK9Cg0JDQiNCo0JvQmCDQmNCb0J7QndCQCivQoNCQ0IjQqNCb0Jgg0JvQkNCh0JvQngor0KDQkNCI0JDQp9CY0Ist0KfQkNCf0JDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCI0JDQp9CY0Isg0ILQo9Cg0J4KK9Cg0JDQiNCQ0KfQmNCLINCC0KPQoNCeCivQoNCQ0IjQkNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCI0JDQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCI0JDQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCI0JDQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cg0JDQiNCQ0KfQmNCLINCU0JzQmNCi0JDQoAor0KDQkNCI0JDQp9CY0Isg0JTQo9Co0JDQnQor0KDQkNCI0JDQp9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQiNCQ0KfQmNCLINCY0JvQmNCI0JAKK9Cg0JDQiNCQ0KfQmNCLINCI0J7QktCQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCf0JXQotCQ0KAKK9Cg0JDQiNCQ0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQoNCQ0IjQkNCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0IjQkNCn0JjQiyDQktCb0JDQlNCeCivQoNCQ0IjQkNCn0JjQiyDQl9Ce0KDQmNCm0JAKK9Cg0JDQiNCQ0KfQmNCLINCX0J7QoNCa0JAKK9Cg0JDQiNCQ0Jog0JHQoNCQ0J3QmtCeCivQoNCQ0IjQkNCaINCc0JjQm9CV0J3QkAor0KDQkNCI0JDQmiDQndCV0JPQntCS0JDQnQor0KDQkNCI0JDQmtCe0JLQkNCmINCc0JjQntCU0KDQkNCTCivQoNCQ0IjQkNCa0J7QktCQ0KYg0JfQntCg0JDQnQor0KDQkNCI0JHQldCgINCI0J7QltCV0KQKK9Cg0JDQiNCU0JAg0J/QldCi0JDQoAor0KDQkNCI0JTQkCDQn9CV0KLQldCgCivQoNCQ0IjQlNCQINCh0JDQndCU0JgKK9Cg0JDQiNCV0JLQmNCLINCa0J7QodCi0JAKK9Cg0JDQiNCV0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cg0JDQiNClINCU0JXQltCVCivQoNCQ0IjQpSDQntCb0JPQkAor0KDQkNCI0KUg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCI0JjQpyDQnNCY0JvQkNCdCivQoNCQ0IjQmNCn0JjQiyDQmtCQ0KLQkNCb0JjQnQor0KDQkNCI0JjQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQiNCY0KfQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0IjQmNCLINCQ0J3QmtCY0KbQkAor0KDQkNCI0JjQiyDQkdCe0KDQmNCh0JDQkgor0KDQkNCI0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCI0JjQiyDQlNCV0KHQkNCd0JrQkAor0KDQkNCI0JjQiyDQlNCe0JHQoNCY0JLQntCICivQoNCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCI0JjQiyDQlNCg0JDQk9CQCivQoNCQ0IjQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0IjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cg0JDQiNCY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQiNCY0Isg0JjQk9CK0JDQogor0KDQkNCI0JjQiyDQmNCh0JAKK9Cg0JDQiNCY0Isg0IjQntCS0JDQnQor0KDQkNCI0JjQiyDQiNCe0JLQkNCdCivQoNCQ0IjQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cg0JDQiNCY0Isg0JrQntCS0JjQndCa0JAKK9Cg0JDQiNCY0Isg0JrQoNCY0KHQotCY0J3QkAor0KDQkNCI0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQiNCY0Isg0JvQo9Ca0JAKK9Cg0JDQiNCY0Isg0JzQmNCb0JDQnQor0KDQkNCI0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JDQiNCY0Isg0JzQmNCb0JrQkAor0KDQkNCI0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCI0JjQiyDQnNCY0J7QnNCY0KAKK9Cg0JDQiNCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0IjQmNCLINCf0JXQoNCa0JAKK9Cg0JDQiNCY0Isg0J/QldCi0JDQoAor0KDQkNCI0JjQiyDQoNCQ0JTQlQor0KDQkNCI0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQoNCQ0IjQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0IjQmNCLINCg0KPQltCQCivQoNCQ0IjQmNCLINCh0JvQkNCS0JrQkAor0KDQkNCI0JjQiyDQodCd0JXQltCQ0J3QkAor0KDQkNCI0JjQiyDQodCf0JDQodCe0IjQlSDQlNCgCivQoNCQ0IjQmNCLINCh0KLQldCS0JDQnQor0KDQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0IjQmNCLINCS0JXQm9CY0J3QmtCQCivQoNCQ0IjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQiNCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCI0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0IjQmNCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCI0JjQndCQ0KYt0JHQo9Ca0KPQoNCe0JIg0JTQoNCQ0JPQkNCd0JAKK9Cg0JDQiNCY0J3QkNCmINCd0JXQndCQ0JQKK9Cg0JDQiNCY0J3QkNCmINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQiNCY0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQoNCQ0IjQmtCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0IjQmtCe0JIg0JHQntCT0JTQkNCdINCU0KAKK9Cg0JDQiNCa0J7QkiDQkdCe0KDQmNCS0J7QiAor0KDQkNCI0JrQntCSINCU0JXQodCQ0J3QmtCQCivQoNCQ0IjQmtCe0JIg0JTQoNCQ0JPQmNCLCivQoNCQ0IjQmtCe0JIg0JTQo9Co0JDQnQor0KDQkNCI0JrQntCSINCY0KHQmNCU0J7QoAor0KDQkNCI0JrQntCSINCY0JLQkNCdCivQoNCQ0IjQmtCe0JIg0JjQktCQ0J0KK9Cg0JDQiNCa0J7QkiDQidCj0JHQntCc0JjQoAor0KDQkNCI0JrQntCSINCc0JDQoNCa0J4KK9Cg0JDQiNCa0J7QkiDQnNCY0JvQkNCdCivQoNCQ0IjQmtCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0JDQiNCa0J7QkiDQnNCY0JvQntCg0JDQlAor0KDQkNCI0JrQntCSINCc0JvQkNCU0JXQnSDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQiNCa0J7QkiDQnNCe0JzQmNCgCivQoNCQ0IjQmtCe0JIg0JzQntCc0JjQoAor0KDQkNCI0JrQntCSINCd0JjQmtCe0JvQkAor0KDQkNCI0JrQntCSINCf0JXQotCQ0KAKK9Cg0JDQiNCa0J7QkiDQoNCQ0IjQmtCeCivQoNCQ0IjQmtCe0JIg0KDQkNCi0JjQnNCY0KAKK9Cg0JDQiNCa0J7QkiDQodCQ0JLQkAor0KDQkNCI0JrQntCSINCh0KLQldCS0JDQnQor0KDQkNCI0JrQntCSINCS0JXQodCd0JAKK9Cg0JDQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0IjQmtCe0JIg0JLQo9Ca0JDQqNCY0J0KK9Cg0JDQiNCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JDQiNCa0J7QktCY0Isg0JbQmNCS0JDQnSDQlNCgCivQoNCQ0IjQmtCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0KDQkNCI0JrQntCS0JjQiyDQkdCb0JDQk9Cj0KLQmNCdCivQoNCQ0IjQmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQoNCQ0IjQmtCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cg0JDQiNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0IjQmtCe0JLQmNCLINCU0JDQnNCK0JDQnQor0KDQkNCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KDQkNCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQiNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQiNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0IjQmtCe0JLQmNCLINCY0JLQngor0KDQkNCI0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCI0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0IjQmtCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KDQkNCI0JrQntCS0JjQiyDQnNCY0JvQmNCLCivQoNCQ0IjQmtCe0JLQmNCLINCc0JjQidCa0J4KK9Cg0JDQiNCa0J7QktCY0Isg0JzQmNCg0JrQngor0KDQkNCI0JrQntCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0KDQkNCI0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQiNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KDQkNCI0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0IjQmtCe0JLQmNCLINCg0JDQotCa0J4KK9Cg0JDQiNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0IjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQiNCa0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9Cg0JDQiNCa0J7QktCY0Isg0KHQoNCV0KLQldCdCivQoNCQ0IjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCI0JrQntCS0JjQiyDQodCi0J7QiNCQCivQoNCQ0IjQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCI0JrQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KDQkNCI0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0IjQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0IjQmtCe0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQoNCQ0IjQmtCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KDQkNCI0JvQmNCLINCc0JjQm9Ca0JAKK9Cg0JDQiNCb0JjQiyDQndCV0JLQldCd0JrQkAor0KDQkNCI0JzQntCS0KHQmtCQINCI0JXQm9CX0JAKK9Cg0JDQiNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQiNCd0JjQiyDQndCe0JLQkNCaCivQoNCQ0IjQndCY0J3Qk9CV0KAg0IjQntCW0JXQpAor0KDQkNCI0J3QntCS0JjQiyDQkNCb0J7QiNCXCivQoNCQ0IjQndCe0JLQmNCLINCR0JvQkNCWCivQoNCQ0IjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCI0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0IjQndCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cg0JDQiNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cg0JDQiNCd0J/QoNCV0KXQoiDQktCV0KDQkAor0KDQkNCI0KLQkCDQmNCo0KLQktCQ0J0KK9Cg0JDQiNCi0JAg0JzQkNCg0JjQiNCQCivQoNCQ0IjQotCQINCd0JjQmtCe0JvQkAor0KDQkNCI0KLQldCd0JHQkNClINCV0JvQldCc0JjQoAor0KDQkNCI0KLQldCgINCU0KDQkNCT0JjQptCQCivQoNCQ0IjQotCV0KAg0JfQntCb0KLQkNCdCivQoNCQ0Jog0JDQndCY0KbQkAor0KDQkNCaINCc0JDQoNCY0IjQkAor0KDQkNCaINCd0JjQmtCe0JvQkAor0KDQkNCaINCS0JXQm9CY0JHQntCgCivQoNCQ0JrQqNCQ0IrQmCDQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0JrQkNChINCC0J7QoNCC0JUKK9Cg0JDQmtCQ0KEg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQmtCQ0JfQntCSINCc0JjQntCU0KDQkNCTCivQoNCQ0JrQldCi0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JrQmNCLINCW0JDQoNCa0J4KK9Cg0JDQmtCY0Isg0JbQmNCS0JrQkAor0KDQkNCa0JjQiyDQltCY0JLQmtCeCivQoNCQ0JrQmNCLINCC0J7QoNCC0JUKK9Cg0JDQmtCY0Isg0ILQntCg0ILQlQor0KDQkNCa0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JrQmNCLINCC0KPQoNCQCivQoNCQ0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JrQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Cg0JDQmtCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cg0JDQmtCY0Isg0JDQndCQ0KHQotCQ0KHQmNCI0JAKK9Cg0JDQmtCY0Isg0JDQndCQCivQoNCQ0JrQmNCLINCR0JvQkNCT0J7QiNCVCivQoNCQ0JrQmNCLINCR0J7QltCeCivQoNCQ0JrQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Cg0JDQmtCY0Isg0JHQntCg0J4KK9Cg0JDQmtCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KDQkNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQmtCY0Isg0JHQoNCQ0J3QmtCQCivQoNCQ0JrQmNCLINCR0KDQkNCd0JrQngor0KDQkNCa0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCa0JjQiyDQlNCe0JzQmNCd0JrQkAor0KDQkNCa0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KDQkNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQmtCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQmtCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCa0JjQiyDQlNCj0KjQkNCd0JrQkAor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCT0JDQktCg0JAKK9Cg0JDQmtCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQoNCQ0JrQmNCLINCT0J7QoNCU0JDQndCQCivQoNCQ0JrQmNCLINCT0KDQo9CI0JAKK9Cg0JDQmtCY0Isg0JjQktCQ0J0KK9Cg0JDQmtCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JDQmtCY0Isg0IjQntCS0JDQnQor0KDQkNCa0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JrQmNCLINCI0J7QktCQ0J0KK9Cg0JDQmtCY0Isg0IjQntCS0JjQptCQCivQoNCQ0JrQmNCLINCa0JDQotCY0KbQkAor0KDQkNCa0JjQiyDQmtCb0JXQnNCV0J3Qogor0KDQkNCa0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JrQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCa0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQmtCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JrQmNCLINCJ0KPQkdCY0KjQkCDQlNCgINCb0JXQmtCQ0KAKK9Cg0JDQmtCY0Isg0InQo9CR0JjQqNCQCivQoNCQ0JrQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCa0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQmtCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JrQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCa0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCa0JjQiyDQidCj0JHQngor0KDQkNCa0JjQiyDQnNCQ0KLQmNCI0JAKK9Cg0JDQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCa0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQndCQCivQoNCQ0JrQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQmtCY0Isg0JzQmNCb0JrQkAor0KDQkNCa0JjQiyDQnNCY0JvQntCoCivQoNCQ0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JrQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JrQmNCLINCc0JjQoNCQCivQoNCQ0JrQmNCLINCc0JjQoNCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KDQkNCa0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQoNCQ0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQoNCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JrQmNCLINCd0JXQndCQ0JQKK9Cg0JDQmtCY0Isg0J3QldCd0JDQlAor0KDQkNCa0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JrQmNCLINCd0J7QktCQ0JoKK9Cg0JDQmtCY0Isg0J7QkdCg0JDQlAor0KDQkNCa0JjQiyDQn9CQ0IjQkAor0KDQkNCa0JjQiyDQn9CQ0J3QlQor0KDQkNCa0JjQiyDQn9CQ0JLQm9CVCivQoNCQ0JrQmNCLINCf0JXQotCQ0KAKK9Cg0JDQmtCY0Isg0J/QldCi0JDQoAor0KDQkNCa0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQkNCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JrQmNCLINCg0JDQiNCa0J4KK9Cg0JDQmtCY0Isg0KDQo9CW0JjQptCQCivQoNCQ0JrQmNCLINCh0JDQktCQCivQoNCQ0JrQmNCLINCh0JvQkNCS0JrQkAor0KDQkNCa0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQmtCY0Isg0KHQnNCY0InQkNCd0JAKK9Cg0JDQmtCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JrQmNCLINCh0KLQkNCc0JXQndCa0JAKK9Cg0JDQmtCY0Isg0KHQotCV0JLQkNCd0JrQkAor0KDQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JrQmNCLINCh0KLQldCS0JDQnQor0KDQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQmtCY0Isg0KHQotCV0JLQmNCm0JAKK9Cg0JDQmtCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KDQkNCa0JjQiyDQodCi0J7QiNCQ0J0KK9Cg0JDQmtCY0Isg0KHQktCV0KLQntCc0JjQoAor0KDQkNCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JrQmNCLINCi0JjQnNCQCivQoNCQ0JrQmNCLINCi0J7QlNCe0KAKK9Cg0JDQmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCa0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQoNCQ0JrQmNCLINCS0JXQm9CV0JzQmNCgCivQoNCQ0JrQmNCLINCS0JXQoNCQCivQoNCQ0JrQmNCLINCS0JXQoNCQCivQoNCQ0JrQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cg0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JrQmNCLINCX0JDQk9CQCivQoNCQ0JrQmNCLINCX0JvQkNCi0JAKK9Cg0JDQmtCY0Isg0JfQntCg0JDQnQor0KDQkNCa0JjQiyDQl9Ce0KDQmtCQCivQoNCQ0JrQmNCL0JXQktCY0Isg0KHQotCQ0JzQldCd0JAKK9Cg0JDQmtCY0IvQldCS0JjQiyDQotCY0KXQntCc0JjQoAor0KDQkNCa0JjQi9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQmtCY0J0g0ILQntCg0ILQlQor0KDQkNCa0JjQnSDQkNCd0KLQo9CdCivQoNCQ0JrQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9Cg0JDQmtCY0J0g0JPQntCI0JrQngor0KDQkNCa0JjQnSDQiNCV0JvQmNCm0JAKK9Cg0JDQmtCY0J0g0IjQo9Cb0JjQiNCQ0J3QkAor0KDQkNCa0JjQnS3QnNCQ0KDQotCY0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCa0JjQnSDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQotCQINCQ0J3QmtCY0KbQkAor0KDQkNCa0JjQotCQINCR0J7QltCeCivQoNCQ0JrQmNCi0JAg0KbQktCY0IjQkNCdCivQoNCQ0JrQmNCi0JAg0KbQktCY0IjQngor0KDQkNCa0JjQotCQINCI0J7QktCeCivQoNCQ0JrQmNCi0JAg0InQmNCJ0JDQndCQCivQoNCQ0JrQmNCi0JAg0JzQmNCb0JDQnQor0KDQkNCa0JjQotCQINCc0JvQkNCU0JjQndCa0J4KK9Cg0JDQmtCY0KLQkCDQn9CV0KLQkNCgCivQoNCQ0JrQmNCi0JAg0KHQmNCc0JrQkAor0KDQkNCa0J7Qp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQmtCe0KfQldCS0JjQiyDQkdCe0KDQngor0KDQkNCa0J7Qp9CV0JLQmNCLINCT0KDQo9CI0JjQptCQCivQoNCQ0JrQntCn0JXQktCY0Isg0JzQkNCg0JjQiNCQ0J0KK9Cg0JDQmtCe0KfQldCS0JjQiyDQnNCQ0KDQmtCeCivQoNCQ0JrQntCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0J7Qp9CV0JLQmNCLINCc0JjQm9CY0IjQkAor0KDQkNCa0J7Qp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQmtCe0KfQldCS0JjQiyDQoNCQ0JTQlQor0KDQkNCa0J7Qp9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JrQntCoINCI0JDQndCe0KgKK9Cg0JDQmtCe0Kgg0JrQkNCi0JjQptCQCivQoNCQ0JrQntCoINCX0JLQntCd0JjQnNCY0KAKK9Cg0JDQmtCe0KjQmCDQndCQ0JTQkAor0KDQkNCa0J7QqNCYINCS0JvQkNCU0JjQodCb0JDQkgor0KDQkNCa0J7QitCQ0KYg0JHQntCT0J7QidCj0JEKK9Cg0JDQmtCe0IrQkNCmINCf0KPQndCY0KjQkAor0KDQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQntCS0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQoNCQ0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0KDQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCa0J7QktCY0Isg0J7QodCi0J7QiNCQCivQoNCQ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQkNCa0J7QktCY0Isg0KDQkNCi0JrQngor0KDQkNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JrQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cg0JDQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQmtCe0JLQmNCLINCS0JjQotCe0JzQmNCg0JrQkAor0KDQkNCa0J7QktCY0Isg0JLQm9CQ0JTQngor0KDQkNCa0KPQqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCb0JXQotCY0Isg0JbQmNCS0JrQkAor0KDQkNCb0JXQotCY0Isg0ILQntCg0ILQlQor0KDQkNCb0JXQotCY0Isg0ILQo9Cg0JAKK9Cg0JDQm9CV0KLQmNCLINCQ0J3QgtCV0JvQmtCQCivQoNCQ0JvQldCi0JjQiyDQkNCd0JAKK9Cg0JDQm9CV0KLQmNCLINCR0J7Qk9CU0JDQnQor0KDQkNCb0JXQotCY0Isg0JTQntCR0KDQmNCm0JAKK9Cg0JDQm9CV0KLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCb0JXQotCY0Isg0JTQo9Co0JDQnQor0KDQkNCb0JXQotCY0Isg0JjQm9CY0IjQkAor0KDQkNCb0JXQotCY0Isg0IjQldCb0JjQptCQCivQoNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JvQldCi0JjQiyDQm9CV0J/QntCh0JDQktCQCivQoNCQ0JvQldCi0JjQiyDQnNCQ0IjQkAor0KDQkNCb0JXQotCY0Isg0JzQmNCb0JDQnQor0KDQkNCb0JXQotCY0Isg0JzQmNCb0J7QqAor0KDQkNCb0JXQotCY0Isg0JzQmNCb0J7QqAor0KDQkNCb0JXQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQm9CV0KLQmNCLINCc0JjQoNCa0J4KK9Cg0JDQm9CV0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQm9CV0KLQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCb0JXQotCY0Isg0J/QldCi0JDQoAor0KDQkNCb0JXQotCY0Ist0KHQkNCS0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JDQm9CV0KLQmNCLLdCh0JDQktCY0Isg0IjQldCb0JXQndCQCivQoNCQ0JvQldCi0JjQiyDQktCV0InQmtCeCivQoNCQ0JvQldCi0JjQiyDQktCV0KDQkAor0KDQkNCb0JXQotCY0Isg0JfQntCg0JDQnQor0KDQkNCb0JXQotCY0Isg0JfQntCg0JjQptCQCivQoNCQ0JvQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KDQkNCb0JjQiyDQltCY0JLQntCI0JjQnQor0KDQkNCb0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQm9CY0Isg0JTQo9Co0JDQnQor0KDQkNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQm9CY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JvQmNCLINCc0JjQm9CVCivQoNCQ0JvQmNCLINCc0J7QnNCY0KDQmtCQCivQoNCQ0JvQmNCLINCh0KLQldCS0JDQnQor0KDQkNCb0JjQiyDQodCi0JXQktCQCivQoNCQ0InQmNCLINCQ0J3QgtCV0JvQmtCeCivQoNCQ0InQmNCLINCU0KDQkNCT0JjQitCQCivQoNCQ0InQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQidCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQnNCQ0Kcg0JDQndCY0KbQkAor0KDQkNCc0JDQpyDQmNCS0JDQnQor0KDQkNCc0JDQpyDQiNCj0JvQmNCI0JDQnQor0KDQkNCc0JDQpyDQm9CV0J7QndCQCivQoNCQ0JzQkNCnINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JzQkNCnINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JzQkNCnINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JzQkNCnINCc0JDQoNCY0IjQkAor0KDQkNCc0JDQpyDQnNCY0KXQkNCI0JvQngor0KDQkNCc0JDQpyDQnNCY0KXQkNCI0JvQngor0KDQkNCc0JDQpyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JzQkNCnINCd0JDQlNCQCivQoNCQ0JzQkNCnINCd0JDQotCQ0JvQmNCI0JAKK9Cg0JDQnNCQ0Kcg0J/QldCi0JDQoAor0KDQkNCc0JDQpyDQodCY0JzQldCe0J0KK9Cg0JDQnNCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCc0JDQpyDQl9CU0JXQndCa0JAKK9Cg0JDQnNCQ0Isg0JzQmNCb0JXQktCQCivQoNCQ0JzQkNCU0JDQndCYINCg0J7Ql9CQCivQoNCQ0JzQkNCU0JDQndCe0JIg0JzQo9Cc0KPQlNCY0IjQkAor0KDQkNCc0JDQlNCQ0J3QntCS0JjQiyDQgtCV0JzQkNCJCivQoNCQ0JzQkNCU0JDQndCe0JLQmNCLINCI0JDQmtCe0JIKK9Cg0JDQnNCQ0JTQkNCd0J7QktCh0JrQmCDQndCQ0JTQkAor0KDQkNCc0JDQlNCQ0J3QntCS0KHQmtCYINCd0JXQlNCV0InQmtCeCivQoNCQ0JzQkNCU0JDQndCh0JrQmCDQlNCg0JDQk9CY0IsKK9Cg0JDQnNCQ0JTQkNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0KDQkNCc0JDQlNCQ0J3QodCa0Jgg0JzQmNCb0JjQndCa0JAKK9Cg0JDQnNCQ0JfQkNCd0J7QkiDQktCY0JrQotCe0KAKK9Cg0JDQnNCY0Isg0ILQo9Ca0JAKK9Cg0JDQnNCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JDQnNCY0Isg0JvQkNCX0JDQoAor0KDQkNCc0JjQiyDQm9Cj0JrQkAor0KDQkNCc0JjQiyDQm9Cj0JrQkAor0KDQkNCc0JjQiyDQnNCY0JvQntCoINCU0JjQn9CbINCe0JXQpgor0KDQkNCc0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQnNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQnNCY0Isg0KHQotCe0IjQkNCdCivQoNCQ0JzQmNCLINCS0JXQm9CY0JTQkAor0KDQkNCc0InQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQnNCJ0JDQmiDQl9Cb0JDQotCa0J4KK9Cg0JDQndCn0JjQiyDQqNCY0JzQlQor0KDQkNCd0KfQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0J3Qp9CY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0J3Qp9CY0Isg0IjQntCg0JTQkNCdCivQoNCQ0J3Qp9CY0Isg0JzQmNCb0J7QqAor0KDQkNCd0KfQmNCLINCg0JDQndCa0J4KK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0KDQkNCd0ILQldCb0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCd0ILQldCb0J7QktCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCe0JHQoNCQ0JQKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQndCU0JXQiSDQgtCe0KDQgtCVCivQoNCQ0J3QlNCV0Ikg0ILQo9Cg0ILQmNCd0JrQkAor0KDQkNCd0JTQldCJINCb0JDQl9CQ0KAKK9Cg0JDQndCU0JXQiSDQntCb0JjQktCV0KDQkAor0KDQkNCd0JTQldCJINCf0JXQotCQ0KAKK9Cg0JDQndCU0JXQiSDQodCi0JXQktCQ0J0KK9Cg0JDQndCU0JXQiSDQodCS0JXQotCe0JfQkNCgCivQoNCQ0J3Qk9CV0JvQntCSINCU0JjQnNCY0KLQkNCgCivQoNCQ0J3Qk9CV0JvQntCSINCh0KLQldCS0JDQnQor0KDQkNCd0JPQldCb0J7QkiDQodCi0JXQktCQ0J0KK9Cg0JDQndCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0J3QmNCdINCI0J7QktCQ0J0KK9Cg0JDQndCY0J0g0JvQkNCX0JDQoAor0KDQkNCd0JjQodCQ0JIg0KDQkNCU0JjQktCe0IgKK9Cg0JDQndCY0KHQkNCS0InQldCSINCW0JjQktCa0J4KK9Cg0JDQndCY0KHQkNCS0InQldCSINCC0J7QoNCC0JUKK9Cg0JDQndCY0KHQkNCS0InQldCSINCC0J7QoNCC0JUKK9Cg0JDQndCY0KHQkNCS0InQldCSINCT0J7QoNCU0JDQndCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0JvQmNCm0JAKK9Cg0JDQndCY0KHQkNCS0InQldCSINCc0JjQm9Ce0KgKK9Cg0JDQndCY0KHQkNCS0InQldCSINCf0JDQiNCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQoNCQ0JTQkAor0KDQkNCd0JjQodCQ0JLQidCV0JIg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQndCY0KHQkNCS0InQldCSINCg0JDQlNCc0JjQm9CQCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQoNCQ0JTQntCh0JvQkNCSCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQodCb0JDQktCe0InQo9CRCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQodCi0JXQktCQ0J0KK9Cg0JDQndCY0KHQkNCS0InQldCSINCi0JjQiNCQ0J3QkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCW0JDQoNCa0J4KK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQltCV0InQmtCeCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JHQntCT0KPQnNCY0JvQkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0IjQldCb0JXQndCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCh0JjQndCY0KjQkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQkNCS0JrQkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCS0JjQntCb0JXQotCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCd0JjQodCb0JDQki3Qm9CQ0KDQolkg0J3QkNCU0JAg0JTQoAor0KDQkNCd0JjQotCe0JLQmNCLINCR0J7QqNCa0J4KK9Cg0JDQndCY0KLQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KDQkNCd0JjQotCe0JLQmNCLINCU0JjQktCd0JAKK9Cg0JDQndCY0KLQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cg0JDQndCY0KLQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cg0JDQndCY0KLQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KDQkNCd0JjQotCe0JLQmNCLINCS0JXQm9CY0KHQm9CQ0JIKK9Cg0JDQndCa0JjQiyDQodCi0JXQktCeCivQoNCQ0J3QmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCd0JrQntCSINCQ0J3QmtCY0KbQkAor0KDQkNCd0JrQntCSINCU0KDQkNCT0JDQnSDQlNCgCivQoNCQ0J3QmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCd0JrQntCSINCT0KDQntCX0JTQkAor0KDQkNCd0JrQntCSINCY0KDQldCd0JAKK9Cg0JDQndCa0J7QkiDQmNCS0JDQndCa0JAKK9Cg0JDQndCa0J7QkiDQiNCe0JLQkNCdCivQoNCQ0J3QmtCe0JIg0JrQntCh0KLQkAor0KDQkNCd0JrQntCSINCJ0JjQidCQ0J3QkAor0KDQkNCd0JrQntCSINCJ0KPQkdCY0KbQkAor0KDQkNCd0JrQntCSINCc0JDQoNCY0IjQkAor0KDQkNCd0JrQntCSINCc0JjQm9CQ0J0KK9Cg0JDQndCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0KDQkNCd0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQndCa0J7QkiDQndCV0JTQldCJ0JrQngor0KDQkNCd0JrQntCSINCd0JXQlNCV0InQmtCeCivQoNCQ0J3QmtCe0JIg0J7Qm9CT0JjQptCQCivQoNCQ0J3QmtCe0JIg0J/QldCi0JDQoAor0KDQkNCd0JrQntCSINCg0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQndCa0J7QkiDQoNCQ0JTQnNCY0JvQkAor0KDQkNCd0JrQntCSINCg0JDQlNCe0IjQmtCQCivQoNCQ0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0J3QmtCe0JIg0KLQkNCd0JDQodCY0IjQlQor0KDQkNCd0JrQntCSINCX0J7QoNCQCivQoNCQ0J3QmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cg0JDQndCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAg0JTQoAor0KDQkNCd0JrQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0KDQkNCd0JrQntCS0JjQiyDQkNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQoNCQ0J3QmtCe0JLQmNCLINCR0J7QiNCQ0J0KK9Cg0JDQndCa0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cg0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CeCivQoNCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQndCa0J7QktCY0Isg0JTQo9Co0JjQptCQCivQoNCQ0J3QmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cg0JDQndCa0J7QktCY0Isg0JjQoNCV0J3QkAor0KDQkNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0KDQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCd0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQoNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KDQkNCd0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQndCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQndCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQndCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cg0JDQndCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0KDQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCd0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQndCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCd0JrQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQoNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQndCe0JPQkNCI0JXQpiDQmNCS0JDQnQor0KDQkNCe0J3QmNCLINCC0J7QoNCC0JUKK9Cg0JDQntCd0JjQiyDQmNCa0J7QndCY0IjQkAor0KDQkNCe0J3QmNCLINCI0JDQndCa0J4KK9Cg0JDQntCd0JjQiyDQoNCQ0JTQldCd0JrQngor0KDQkNCe0J3QmNCLINCh0J/QkNCh0J7QiNCVCivQoNCQ0J7QndCY0Isg0JLQo9Ca0J7Qm9CQCivQoNCQ0J/Qp9CeINCa0JDQotCQ0JvQmNCdCivQoNCQ0J/QkNCY0Isg0JTQldCI0JDQnQor0KDQkNCf0JDQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Cg0JDQn9CQ0JjQiyDQoNCQ0JTQldCd0JrQkAor0KDQkNCf0JDQmNCLINCh0KLQldCS0JDQnQor0KDQkNCf0JDQiNCY0Isg0JDQndCQ0JzQkNCg0JjQiNCQCivQoNCQ0J/QkNCI0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQoNCQ0J/QkNCI0JjQiyDQlNCj0KjQmtCeCivQoNCQ0J/QkNCI0JjQiyDQnNCY0JvQkNCdINCQ0JTQktCe0JrQkNCiCivQoNCQ0J/QkNCI0JjQiyDQnNCY0JvQkNCdCivQoNCQ0J/QkNCI0JjQiyDQnNCY0JvQkNCdCivQoNCQ0J/QkNCI0JjQiyDQoNCQ0JTQntCI0JAKK9Cg0JDQn9CQ0IjQmNCLINCh0KLQldCS0JDQnQor0KDQkNCf0JDQiNCY0Isg0KLQkNCc0JDQoNCQCivQoNCQ0J/QmNCLINCR0J7QoNCVCivQoNCQ0J/QmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQn9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQn9CY0Isg0IjQntCS0JDQnQor0KDQkNCf0JjQiyDQiNCe0JLQkNCdCivQoNCQ0J/QmNCLINCc0JjQm9CQ0J0KK9Cg0JDQn9CY0Isg0J3QkNCU0JAKK9Cg0JDQn9CY0Isg0J3QldCd0JDQlAor0KDQkNCf0JjQiyDQoNCQ0JTQlQor0KDQkNCf0JjQiyDQoNCj0KjQmtCeCivQoNCQ0J/QniDQodCi0IjQldCf0JDQnQor0KDQkNCf0J7QotCYINCY0KjQotCS0JDQnQor0KDQkNCh0J/QntCf0J7QktCY0Isg0JHQntCo0JrQngor0KDQkNCh0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCh0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCh0J/QntCf0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCQ0KHQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQodCi0JDQktCQ0KYg0J/QldCi0JDQoAor0KDQkNCh0KLQmNCaINCC0J7QoNCC0JUKK9Cg0JDQodCi0J7QktCQ0KYg0ILQo9Cg0J4KK9Cg0JDQodCi0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCh0KLQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JDQodCi0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCh0KLQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQodCi0J7QktCY0Ist0J/Qm9CY0JLQldCb0JjQiyDQlNCV0KHQkNCd0JrQkAor0KDQkNCh0KLQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCh0KLQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0KHQotCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCh0KLQntCS0JjQiyDQktCV0KDQkAor0KDQkNCiINCk0JXQoNCV0J3Qpgor0KDQkNCiINCk0KDQkNCK0JAKK9Cg0JDQoiDQiNCQ0JrQntCRCivQoNCQ0KIg0IjQntCh0JjQnwor0KDQkNCi0JDQiNCQ0KYg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQoNCQ0KLQk9CV0JHQldCgINCI0KPQm9CY0IjQkAor0KDQkNCi0JPQldCR0JXQoCDQm9CQ0KHQm9CeCivQoNCQ0KLQmNCLINCC0KPQoNCC0JjQndCQCivQoNCQ0KLQmNCLINCR0J7QoNCQCivQoNCQ0KLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQotCa0JXQm9CY0Isg0JzQmNCb0JDQnQor0KDQkNCi0JrQntCSINCW0JjQktCa0J4KK9Cg0JDQotCa0J7QkiDQgtCe0KDQgtCVCivQoNCQ0KLQmtCe0JIg0JDQptCQCivQoNCQ0KLQmtCe0JIg0JHQntCg0JjQktCe0IgKK9Cg0JDQotCa0J7QkiDQptCV0KbQmNCb0JjQiNCQCivQoNCQ0KLQmtCe0JIg0JTQoNCQ0JPQkNCdCivQoNCQ0KLQmtCe0JIg0JTQoNCQ0JPQmNCK0JAKK9Cg0JDQotCa0J7QkiDQlNCg0JDQk9CY0IrQkAor0KDQkNCi0JrQntCSINCU0KPQqNCQ0J3QmtCQCivQoNCQ0KLQmtCe0JIg0JTQo9Co0JDQnQor0KDQkNCi0JrQntCSINCI0JXQm9CV0J3QkAor0KDQkNCi0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9Cg0JDQotCa0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQoNCQ0KLQmtCe0JIg0JvQldCf0J7QodCQ0JLQkAor0KDQkNCi0JrQntCSINCc0JjQi9CeCivQoNCQ0KLQmtCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0JDQotCa0J7QkiDQnNCY0JvQldCd0JrQngor0KDQkNCi0JrQntCSINCc0JjQm9CY0KbQkAor0KDQkNCi0JrQntCSINCd0JXQndCQ0JQKK9Cg0JDQotCa0J7QkiDQndCV0J3QkNCUCivQoNCQ0KLQmtCe0JIg0J/QkNCS0JvQlQor0KDQkNCi0JrQntCSINCf0KDQldCU0KDQkNCTCivQoNCQ0KLQmtCe0JIg0KDQkNCU0JUKK9Cg0JDQotCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCi0JrQntCSINCg0JDQlNCe0JzQmNCgCivQoNCQ0KLQmtCe0JIg0KDQo9CW0JjQptCQCivQoNCQ0KLQmtCe0JIg0KHQkNCS0JrQkAor0KDQkNCi0JrQntCSINCh0JzQmNCJ0JDQndCQCivQoNCQ0KLQmtCe0JIg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Cg0JDQotCa0J7QkiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cg0JDQotCa0J7QkiDQktCV0KDQkAor0KDQkNCi0JrQntCSINCS0JjQlNCe0KHQkNCS0JAKK9Cg0JDQotCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0KLQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCi0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQotCa0J7QkiDQktCj0IjQmNCm0JAKK9Cg0JDQo9CoINCa0JvQkNCj0JTQmNCI0JAKK9Cg0JDQo9CoINCg0JjQpdCQ0KDQlAor0KDQkNCj0KjQldCd0JHQldCg0JPQldCgINCc0JDQoNCi0JjQnQor0KDQkNCj0KjQmtCYINCC0J7QoNCC0JUKK9Cg0JDQo9Co0JrQmCDQkNCd0JPQldCb0JjQndCQCivQoNCQ0KPQqNCa0Jgg0JTQkNCd0JjQm9CeCivQoNCQ0KPQqNCa0Jgg0InQmNCJ0JDQndCQCivQoNCQ0KPQqNCa0Jgg0JzQmNCb0JDQndCQCivQoNCQ0KPQqNCa0Jgg0JzQmNCb0J7QqAor0KDQkNCj0KHQkNCS0InQldCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0KPQodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0KPQl9CQINCf0JDQm9Ca0J4KK9Cg0JDQktCQ0IjQmNCLINCC0KPQoNCeCivQoNCQ0JLQkNCh0Jgg0InQo9CR0JjQptCQCivQoNCQ0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KDQkNCS0JvQmNCLLdCR0JDQitCQ0KYg0KHQndCV0JbQkNCd0JAKK9Cg0JDQktCb0JjQiyDQn9CV0IjQngor0KDQkNCS0JvQmNCLINCS0JjQlNCQCivQoNCQ0JLQm9CY0IjQkCDQlNCg0JDQk9CQ0J0KK9Cg0JDQl9CU0JXQktCo0JXQmiDQodCi0J7QiNCQ0J3QmtCQCivQoNCQ0JfQmNCLINCP0JXQnNCQ0JsKK9Cg0JDQl9Cc0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Cg0JDQl9Cj0JzQldCd0JjQiy3QmtCe0KLQoNCe0KjQkNCdINCc0JjQm9CV0J3QkAor0KDQldCn0JXQmCDQmNCb0J7QndCa0JAKK9Cg0JXQp9Ca0J4g0JjQm9CV0KgKK9Cg0JXQqNCL0JDQndCh0JrQmCDQkdCe0KjQmtCeCivQoNCV0KjQi9CQ0J3QodCa0Jgg0JHQntCT0JTQkNCdCivQoNCV0KjQi9CQ0J3QodCa0Jgg0JLQldCg0JAKK9Cg0JXQqNCV0KLQkNCgINCQ0J3QotCVCivQoNCV0KjQldCi0JDQoCDQodCi0JDQndCQCivQoNCV0KjQldCi0JDQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JXQqNCY0KLQmCDQgtCe0KDQgtCVCivQoNCV0KjQitCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cg0JXQqNCK0JDQmiDQm9CQ0KHQm9CeCivQoNCV0KjQitCQ0Jog0KHQotCV0JLQkNCdCivQoNCV0KjQitCQ0Jog0JfQntCg0JjQptCQCivQoNCV0JbQitCQ0Jog0JvQkNCh0JvQngor0KDQldCW0KPQmiDQiNCe0KHQmNCfCivQoNCV0ILQldCfINCU0KDQkNCo0JrQngor0KDQldCC0JXQn9CYINCP0JXQidCQ0J0KK9Cg0JXQgtCV0J/QmCDQnNCY0JvQkNCY0JwKK9Cg0JXQgtCV0J/QntCS0JjQiyDQkNCb0JjQiNCQCivQoNCV0JHQkCDQkdCb0JDQk9Ce0IjQlQor0KDQldCR0JAg0JjQk9Ce0KAKK9Cg0JXQkdCQINCY0JPQntCgCivQoNCV0JHQmNCLINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cg0JXQkdCY0Isg0JTQoNCQ0JPQkNCdCivQoNCV0JHQmNCLINCd0JXQlNCV0InQmtCeCivQoNCV0JHQmNCLINCd0JXQlNCV0InQmtCeCivQoNCV0JHQmNCLINCh0JjQnNCV0J7QnQor0KDQldCR0JjQiyDQodCY0JzQngor0KDQldCR0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Cg0JXQkdCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQldCR0KDQmNCd0JAg0JrQkNCi0JDQoNCY0J3QkAor0KDQldCP0JAg0JjQkdCg0JDQpdCY0JwKK9Cg0JXQj9CV0Jog0IjQntCS0JDQnQor0KDQldCP0JXQnyDQiNCj0KHQndCY0IjQkAor0KDQldCP0JXQn9Ce0JIg0KjQldCS0JrQmNCdCivQoNCV0I/QldCf0J7QkiDQmtCQ0JzQkdCV0KAKK9Cg0JXQlNCVINCg0KPQlNCe0JvQpAor0KDQldCU0JjQkyDQktCY0JvQmNCcCivQoNCV0JTQm9CYINCC0J7QoNCC0JUKK9Cg0JXQlNCb0Jgg0JzQkNCg0JjQiNCQCivQoNCV0JTQm9CYINCS0JXQoNCQCivQoNCV0JPQkNCI0Jcg0KHQotCV0JLQkNCdCivQoNCV0JPQldCmINCV0KLQldCb0JrQkAor0KDQldCT0JXQidCQ0KYg0InQo9CR0JjQptCQCivQoNCV0JPQldCJ0JDQpiDQnNCQ0KDQkAor0KDQldCT0JXQoCDQiNCe0JLQkNCdCivQoNCV0JPQmyDQktCb0JDQlNCY0JzQmNCgCivQoNCV0JPQntCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCV0JPQntCI0JXQktCY0Isg0JzQm9CQ0ILQldCd0JrQngor0KDQldCl0JDQmiDQmNCc0KDQlQor0KDQldCl0JDQmiDQm9CQ0KHQm9CeCivQoNCV0KXQkNCaINCe0JvQk9CQCivQoNCV0KXQndCV0KAg0JzQkNCg0JjQiNCQCivQoNCV0KXQndCV0KAg0KHQotCQ0JzQldCd0JrQkAor0KDQldCY0J3QpdCe0JvQpiDQgtCV0JfQlQor0KDQldCY0J3QpdCe0JvQpiDQgtCV0JfQlQor0KDQldCY0J3QpdCe0JvQlyDQgtCV0JfQlQor0KDQldCa0JAg0JDQoNCY0KQKK9Cg0JXQmtCQLdCY0JLQkNCd0J7QktCY0Isg0JTQo9Co0JjQptCQCivQoNCV0JrQldCL0JUg0KjQkNCd0JTQntCgCivQoNCV0JrQldCm0JrQmCDQldCb0JXQntCd0J7QoNCQCivQoNCV0JrQldCm0JrQmCDQiNCe0JbQldCkCivQoNCV0JrQmNCLINCl0KPQodCV0JjQnQor0KDQldCb0JjQiyDQgtCe0KDQgtCVCivQoNCV0JvQmNCLINCC0J7QoNCC0JUKK9Cg0JXQm9CY0Isg0JTQkNCg0JrQngor0KDQldCb0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JXQm9CY0Isg0JPQntCI0JrQngor0KDQldCb0JjQiyDQiNCe0JLQkNCdCivQoNCV0JvQmNCLINCI0J7QktCY0KbQkAor0KDQldCb0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0KDQldCb0JjQiyDQidCj0JHQkNCdCivQoNCV0JvQmNCLINCc0JjQm9CQ0J0KK9Cg0JXQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0JXQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JXQm9CY0Isg0JzQmNCg0JAKK9Cg0JXQm9CY0Isg0J/QkNCS0JvQlQor0KDQldCb0JjQiyDQn9CV0KLQkNCgCivQoNCV0JvQmNCLINCg0JDQlNCY0J3QmtCQCivQoNCV0JvQmNCLINCh0JDQktCQCivQoNCV0JvQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cg0JXQm9CY0Isg0KHQntCk0JjQiNCQCivQoNCV0JvQmNCLINCh0J7QpNCY0IjQkAor0KDQldCb0JjQiyDQodCf0J7QnNCV0J3QmtCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQoNCV0JvQmNCLINCh0KDQldCi0JAKK9Cg0JXQidCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JXQidCY0Isg0ILQo9Cg0JjQptCQCivQoNCV0InQmNCLINCC0KPQoNCeCivQoNCV0InQmNCLINCR0J7QltCY0JTQkNCgCivQoNCV0InQmNCLINCU0JDQnNCI0JDQndCa0JAKK9Cg0JXQidCY0Isg0JTQkNCd0JjQm9CeCivQoNCV0InQmNCLINCI0J7QktCQ0J0KK9Cg0JXQidCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JXQidCY0Isg0JzQkNCg0JAKK9Cg0JXQidCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JXQidCY0Isg0KDQntCc0JDQnQor0KDQldCJ0JjQiyDQodCb0JDQktCa0J4KK9Cg0JXQidCY0Isg0KHQnNCY0InQkAor0KDQldCJ0JjQiyDQodCd0JXQltCQ0J3QkAor0KDQldCJ0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JXQidCY0Isg0KHQotCV0JLQkAor0KDQldCJ0JjQiyDQl9Cb0JDQotCa0J4KK9Cg0JXQidCY0Isg0JfQntCg0JrQkAor0KDQldCJ0JjQnSDQlNCj0KjQkNCd0JrQkAor0KDQldCJ0JjQnSDQlNCj0KjQkNCdCivQoNCV0InQmNCdINCU0KPQqNCQ0J0KK9Cg0JXQidCY0J0g0JjQk9CK0JDQoiDQlNCgCivQoNCV0InQmNCdINCY0JvQntCd0JAKK9Cg0JXQidCY0J0g0JjQktCQ0J0KK9Cg0JXQidCY0J0g0JvQkNCX0JDQoAor0KDQldCJ0JjQnSDQm9CV0J/QntCh0JDQktCQCivQoNCV0InQmNCdINCc0JDQoNCY0KbQkAor0KDQldCJ0JjQnSDQnNCY0JvQkNCdCivQoNCV0InQmNCdINCc0JjQm9CQ0J0KK9Cg0JXQidCY0J0g0JzQmNCb0JjQptCQCivQoNCV0InQmNCdINCc0JjQm9CY0JLQntCICivQoNCV0InQmNCdINCc0JjQm9Ce0KgKK9Cg0JXQidCY0J0g0JzQmNCb0J7QqAor0KDQldCJ0JjQnSDQnNCY0JvQntCoCivQoNCV0InQmNCdINCc0JjQm9Ce0KgKK9Cg0JXQidCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cg0JXQidCY0J0g0J3QkNCU0JAKK9Cg0JXQidCY0J0g0J/QoNCe0JrQntCf0JjQiNCVCivQoNCV0InQmNCdINCg0JDQlNCe0JLQkNCdCivQoNCV0InQmNCdINCh0JDQktCQCivQoNCV0InQmNCdINCh0JjQnNCQCivQoNCV0InQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JXQidCY0J0g0KHQotCV0JLQkNCdCivQoNCV0JvQntCi0JAg0KDQo9CU0J7Qm9CkCivQoNCV0JzQldCm0JrQmCDQlNCg0JDQk9Cj0KLQmNCdCivQoNCV0JzQldCm0JrQmCDQn9CV0KLQkNCgCivQoNCV0JzQldCb0Jgg0JDQndCi0J7QnQor0KDQldCc0JXQm9CYINCb0JDQodCb0J4KK9Cg0JXQnNCV0J3QkNCgINCU0KDQkNCT0KPQotCY0J0KK9Cg0JXQnNCV0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCV0JzQm9CY0J3Qk9CV0KAg0KDQntCR0JXQoNCiCivQoNCV0J3Qp9CQ0KAg0KjQkNCd0JTQntCgCivQoNCV0J3Qp9CQ0KAg0KLQmNCS0JDQlNCQ0KAKK9Cg0JXQndCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQldCd0JTQo9Cb0JjQiyDQnNCQ0KDQmtCeCivQoNCV0J3QlNCj0JvQmNCLINCh0KLQntCI0JDQnQor0KDQldCf0KjQotCe0Jog0IjQntCW0JXQpAor0KDQldCf0JDQqNCYINCI0J7QodCY0J8KK9Cg0JXQn9CQ0KjQmCDQodCi0JXQktCQ0J0KK9Cg0JXQn9CQ0KYg0JbQo9CW0JDQndCQCivQoNCV0J/QkNCmINCC0J7QoNCC0JUKK9Cg0JXQn9CQ0KYg0JDQndCQCivQoNCV0J/QkNCmINCY0KHQkAor0KDQldCf0JDQpiDQiNCe0JLQkNCdCivQoNCV0J/QkNCmINCa0J7QktCY0InQmtCQCivQoNCV0J/QkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JXQn9CQ0KYg0J/QldCg0JrQmNCm0JAKK9Cg0JXQn9CQ0KYg0J/QldCi0JDQoAor0KDQldCf0JDQpiDQodCb0JDQktCa0J4KK9Cg0JXQn9CQ0KYg0KHQotCQ0J3QmNCo0JAKK9Cg0JXQn9CQ0KYg0JLQkNCh0JjQm9CY0IjQkAor0KDQldCf0JjQiyDQltCY0JLQkNCdCivQoNCV0J/QmNCLINCU0JDQndCY0KbQkAor0KDQldCf0JjQiyDQldCc0JjQmwor0KDQldCf0JjQiyDQk9CY0JfQldCb0JAKK9Cg0JXQn9CY0Isg0JjQktCQ0J0KK9Cg0JXQn9CY0Isg0JzQkNCg0JrQngor0KDQldCf0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JXQn9CY0Isg0JzQmNCb0JrQkAor0KDQldCf0JjQiyDQktCV0KDQmNCm0JAKK9Cg0JXQn9CY0Isg0JfQntCg0JDQnQor0KDQldCh0JDQnSDQkNCd0JAKK9Cg0JXQodCQ0J3QntCS0JjQiyDQkNCd0JrQkAor0KDQldCh0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQldCh0JDQndCe0JLQmNCLINCJ0KPQkdCeCivQoNCV0KHQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cg0JXQodCQ0J3QntCS0JjQiyDQn9CV0KDQngor0KDQldCh0JzQkNCdINCX0JTQoNCQ0JLQmtCeCivQoNCV0KHQo9Cb0J7QktCh0JrQmCDQodCi0J7QiNCQ0J0KK9Cg0JXQoyDQm9CQ0JLQmNCd0JXQmwor0KDQldCS0JXQoSDQkNCd0JTQoNCY0IjQkAor0KDQldCS0JjQlCDQmtCQ0KLQkNCg0JjQndCQCivQoNCV0JfQkNCd0KbQntCSINCa0JDQotCY0KbQkAor0KDQldCX0JXQpiDQkNCd0KLQntCdCivQoNCV0JfQndCY0KfQldCaINCa0JDQoNCb0J4KK9Cg0JjQltCQ0IrQmCDQmNCg0JXQndCQCivQoNCY0ILQmNCn0JrQmCDQgtCe0JrQkAor0KDQmNCC0JjQp9Ca0Jgg0ILQntCg0ILQlQor0KDQmNCC0JjQp9Ca0Jgg0JzQmNCb0JDQndCa0JAKK9Cg0JjQgtCY0KfQmtCYINCc0JjQm9CQ0J0KK9Cg0JjQgtCY0KfQmtCYINCh0J/QntCc0JXQndCa0JAKK9Cg0JjQgtCY0Jot0JPQoNCj0IjQmNCLINCn0JXQlNCe0JzQmNCgCivQoNCY0ILQmNCaLdCT0KDQo9CI0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQoNCY0ILQmNCaLdCT0KDQo9CI0JjQiyDQktCV0JvQmNCc0JjQoAor0KDQmNCR0JDQoCDQqNCQ0J3QlNCe0KAKK9Cg0JjQkdCQ0KAg0JHQldCb0JAg0JTQoAor0KDQmNCR0JDQoCDQmNCc0KDQlQor0KDQmNCR0JDQoCDQmtCQ0KLQmNCm0JAKK9Cg0JjQkdCQ0KDQldCS0JjQiyDQktCV0KDQkAor0KDQmNCR0JDQoNCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KDQmNCR0JDQoNCe0JIg0KHQm9CQ0JLQmNCm0JAKK9Cg0JjQkdCY0Kcg0KDQo9CW0JAKK9Cg0JjQkdCY0Isg0KfQldCU0J4KK9Cg0JjQkdCY0Isg0JHQoNCQ0J3QmtCeCivQoNCY0JHQmNCLINCk0KDQkNCd0KYKK9Cg0JjQkdCY0Isg0IjQntCS0JDQnQor0KDQmNCR0JjQiyDQnNCY0KXQkNCI0JvQngor0KDQmNCR0JjQiyDQnNCY0JvQkNCdCivQoNCY0JHQmNCLINCf0JDQktCeCivQoNCY0JHQmNCLINCf0JXQotCQ0KAKK9Cg0JjQkdCY0Isg0KHQotCQ0J3QmtCeCivQoNCY0JHQmNCLINCX0J7QoNCY0KbQkAor0KDQmNCR0J7QktCY0Isg0JDQnNCQ0JvQmNCI0JAKK9Cg0JjQpiDQnNCY0KXQkNCJINCU0JjQn9CbINCe0JXQpgor0KDQmNCmINCg0KPQlNCe0JvQpAor0KDQmNCmINCS0JXQodCV0JvQmNCdCivQoNCY0KbQkCDQkNCd0JjQptCQCivQoNCY0KbQlSDQnNCQ0KDQk9CY0KLQkAor0KDQmNCT0J4g0ILQo9Cb0JAKK9Cg0JjQk9CeINCb0JDQodCb0J4KK9Cg0JjQpdCQ0Jog0J3QkNCd0JTQntCgCivQoNCY0KXQotCQ0KDQldCmINCa0JDQotCQ0KDQmNCd0JAKK9Cg0JjQiNCQ0JLQldCmINCY0JLQkNCdCivQoNCY0JrQldCgINCX0JLQntCd0JjQnNCY0KAKK9Cg0JjQmtCY0Isg0JbQldCJ0JrQngor0KDQmNCa0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQmNCa0JjQiyDQnNCY0JvQkNCU0JjQnQor0KDQmNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQmNCbINCf0JDQmwor0KDQmNCb0JDQmiDQnNCY0JvQntCc0JjQoAor0KDQmNCb0JrQlSDQoNCe0JHQldCg0KIKK9Cg0JjQnNCo0J3QkNCI0JTQldCgINCg0J7QkdCV0KDQogor0KDQmNCc0JDQpiDQiNCe0KHQmNCfCivQoNCY0JzQkNCdINCV0JPQntCdINCU0KAKK9Cg0JjQnNCQ0KAg0JvQldCe0J3QkAor0KDQmNCc0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQoNCY0JzQodCa0Jgg0JbQkNCg0JrQngor0KDQmNCc0KHQmtCYINCW0JDQoNCa0J4KK9Cg0JjQnNCh0JrQmCDQltCQ0KDQmtCeCivQoNCY0JzQodCa0Jgg0JbQkNCg0JrQngor0KDQmNCc0KHQmtCYINCC0J7QmtCQCivQoNCY0JzQodCa0Jgg0JHQmNCh0JXQoNCa0JAKK9Cg0JjQnNCh0JrQmCDQkdCY0KHQldCg0JrQkAor0KDQmNCc0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0KDQmNCc0KHQmtCYINCR0KDQkNCd0JrQkAor0KDQmNCc0KHQmtCYINCR0KDQkNCd0JrQngor0KDQmNCc0KHQmtCYINCI0JDQodCc0JjQndCQCivQoNCY0JzQodCa0Jgg0IjQldCb0JXQndCQCivQoNCY0JzQodCa0Jgg0JzQmNCb0JDQnQor0KDQmNCc0KHQmtCYINCc0JjQm9CY0KbQkAor0KDQmNCc0KHQmtCYINCd0JDQotCQ0JvQmNCI0JAKK9Cg0JjQnNCh0JrQmCDQndCe0JLQkNCaCivQoNCY0JzQodCa0Jgg0KHQkNCS0JAKK9Cg0JjQnNCh0JrQmCDQodCQ0JLQkAor0KDQmNCc0KHQmtCYINCh0JzQmNCJ0JAKK9Cg0JjQnNCh0JrQmCDQodCc0JjQidCQCivQoNCY0JzQodCa0Jgg0KHQotCV0JLQkNCdCivQoNCY0KEg0KjQkNCd0JTQntCgCivQoNCY0KEg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JjQoSDQlNCg0JDQk9CY0IrQkAor0KDQmNChINCU0KPQqNCa0J4KK9Cg0JjQoSDQk9CV0JfQkAor0KDQmNChINCd0JXQlNCV0InQmtCeCivQoNCY0KEg0KHQotCV0JLQkNCdCivQoNCY0KEg0KLQkNCK0JAKK9Cg0JjQoSDQl9CU0KDQkNCS0JrQngor0KDQmNCh0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQmNCh0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JjQodCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCY0KHQotCQINCW0JXQidCa0JAKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCm0JLQldCi0JjQnQor0KDQmNCh0KLQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0KDQmNCh0KLQkNCd0J7QktCY0Isg0JLQntCI0JjQnNCY0KAKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCY0KHQotCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCY0KHQotCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCY0KHQotCY0Isg0ILQntCg0ILQlSDQlNCgINCb0JXQmtCQ0KAKK9Cg0JjQodCi0JjQiyDQgtCe0KDQgtCVCivQoNCY0KHQotCY0Isg0ILQntCg0ILQlQor0KDQmNCh0KLQmNCLINCC0J7QoNCC0JUKK9Cg0JjQodCi0JjQiyDQgtCj0IjQkAor0KDQmNCh0KLQmNCLINCC0KPQoNCC0JAKK9Cg0JjQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQmNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCY0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JjQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQmNCh0KLQmNCLINCQ0JvQldCa0KHQkAor0KDQmNCh0KLQmNCLINCQ0J3QlNCg0JjQiNCQCivQoNCY0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JjQodCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQmNCh0KLQmNCLINCR0J7QoNCQCivQoNCY0KHQotCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQmNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQmNCh0KLQmNCLINCR0KDQkNCd0JrQngor0KDQmNCh0KLQmNCLINCm0JLQiNCV0KLQkNCd0JrQkAor0KDQmNCh0KLQmNCLINCU0JDQndCY0JvQngor0KDQmNCh0KLQmNCLINCU0JDQoNCY0J3QmtCQCivQoNCY0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCY0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCY0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCY0KHQotCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQkNCdCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQkNCdCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQmNCh0KLQmNCLINCU0KDQkNCT0J7QiNCb0JAKK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQmNCh0KLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0KDQmNCh0KLQmNCLINCU0KPQqNCQ0J0KK9Cg0JjQodCi0JjQiyDQlNCj0KjQkNCdCivQoNCY0KHQotCY0Isg0JTQo9Co0JDQnQor0KDQmNCh0KLQmNCLINCU0KPQqNCQ0J0KK9Cg0JjQodCi0JjQiyDQk9CQ0JLQoNCY0JvQngor0KDQmNCh0KLQmNCLINCY0KHQmNCU0J7QoAor0KDQmNCh0KLQmNCLINCI0JDQodCc0JjQndCQCivQoNCY0KHQotCY0Isg0IjQldCb0JXQndCQCivQoNCY0KHQotCY0Isg0IjQldCb0JXQndCQCivQoNCY0KHQotCY0Isg0IjQldCg0JXQnNCY0IjQkAor0KDQmNCh0KLQmNCLINCI0J7QktCQ0J0g0JTQoAor0KDQmNCh0KLQmNCLINCI0J7QktCQ0J0g0JTQoAor0KDQmNCh0KLQmNCLINCI0J7QktCQ0J0KK9Cg0JjQodCi0JjQiyDQmtCh0JXQndCY0IjQkAor0KDQmNCh0KLQmNCLINCb0JDQkdCj0JQg0JTQoCDQm9CV0JrQkNCgCivQoNCY0KHQotCY0Isg0JvQkNCX0JDQoAor0KDQmNCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0KDQmNCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQldCd0JrQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCa0J4KK9Cg0JjQodCi0JjQiyDQnNCY0KXQkNCI0JvQngor0KDQmNCh0KLQmNCLINCc0JjQm9CQ0J3QmtCQCivQoNCY0KHQotCY0Isg0JzQmNCb0JDQnQor0KDQmNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Cg0JjQodCi0JjQiyDQnNCY0JvQkNCdCivQoNCY0KHQotCY0Isg0JzQmNCb0JDQnQor0KDQmNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Cg0JjQodCi0JjQiyDQnNCY0JvQldCi0JAKK9Cg0JjQodCi0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQoNCY0KHQotCY0Isg0JzQmNCb0JrQkAor0KDQmNCh0KLQmNCLINCc0JjQm9Ce0KgKK9Cg0JjQodCi0JjQiyDQnNCY0JvQntCoCivQoNCY0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JjQodCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQmNCh0KLQmNCLINCc0JjQm9Cj0J0KK9Cg0JjQodCi0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQmNCh0KLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCY0KHQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JjQodCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQmNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQmNCh0KLQmNCLINCc0JvQkNCU0JXQnQor0KDQmNCh0KLQmNCLINCd0JDQlNCQCivQoNCY0KHQotCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KDQmNCh0KLQmNCLINCd0JXQk9Ce0JLQkNCdCivQoNCY0KHQotCY0Isg0J3QldCh0KLQntCgCivQoNCY0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQoNCY0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQoNCY0KHQotCY0Isg0J3QntCS0JjQptCQCivQoNCY0KHQotCY0Isg0J7Qm9CT0JAKK9Cg0JjQodCi0JjQiyDQn9CQ0JLQm9CVCivQoNCY0KHQotCY0Isg0J/QldCg0JAKK9Cg0JjQodCi0JjQiyDQn9CV0KLQkNCgCivQoNCY0KHQotCY0Ist0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQptCQCivQoNCY0KHQotCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cg0JjQodCi0JjQiyDQoNCQ0JjQodCQCivQoNCY0KHQotCY0Isg0KDQntCU0J7QidCj0JEg0JTQoAor0KDQmNCh0KLQmNCLINCh0JDQktCQCivQoNCY0KHQotCY0Isg0KHQkNCS0JAKK9Cg0JjQodCi0JjQiyDQodCQ0JLQngor0KDQmNCh0KLQmNCLINCh0JvQkNCC0JDQnQor0KDQmNCh0KLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCY0KHQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cg0JjQodCi0JjQiyDQodCb0JDQktCa0J4KK9Cg0JjQodCi0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQoNCY0KHQotCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cg0JjQodCi0JjQiyDQodCi0JDQndCe0IjQlSDQlNCgCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQmNCm0JAKK9Cg0JjQodCi0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQotCV0JzQldCJ0JrQngor0KDQmNCh0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQktCV0KDQmNCm0JAKK9Cg0JjQodCi0JjQiyDQktCY0KLQntCc0JjQoAor0KDQmNCh0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JjQodCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCY0KHQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQmNCh0KLQmNCLINCS0J7QiNCY0J0KK9Cg0JjQodCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cg0JjQodCi0JjQiyDQl9CU0KDQkNCS0JrQngor0KDQmNCh0KLQmNCLINCX0J7QoNCQ0J0KK9Cg0JjQodCi0JjQiyDQl9Ce0KDQkNCdCivQoNCY0KHQotCY0J0g0IjQntCS0JDQnQor0KDQmNCh0KLQmNCdINCc0JjQntCU0KDQkNCTCivQoNCY0KHQotCY0J0g0JzQmNCe0JTQoNCQ0JMKK9Cg0JjQodCi0JjQktCe0IjQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCQ0J3QmNCm0JAKK9Cg0JjQodCi0JjQktCe0IjQldCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCY0JPQitCQ0KIKK9Cg0JjQodCi0JjQktCe0IjQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCg0JDQotCe0JzQmNCgCivQoNCY0KHQotCY0JLQntCI0JXQktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCY0KHQotCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQoNCY0KHQotCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQoNCY0KHQotCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cg0JjQodCi0J7QktCY0Isg0KDQkNCi0JrQngor0KDQmNCh0KLQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCY0KHQotCe0JLQodCa0Jgg0JrQntCh0KLQkAor0KDQmNCh0KLQntCS0KHQmtCYINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQntCS0KHQmtCYINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQntCS0KHQmtCYINCJ0KPQkdCeCivQoNCY0KHQotCe0JLQodCa0Jgg0KHQmNCc0JXQntCdCivQoNCY0KLQldCgINCQ0J3QmtCY0KbQkAor0KDQmNCi0JXQoCDQkNCd0KLQntCdCivQoNCY0KLQldCgINCk0KDQkNCK0JAKK9Cg0JjQotCV0KAg0IjQntCW0JXQpAor0KDQmNCi0JXQoCDQm9Cj0JTQktCY0JMKK9Cg0JjQotCV0KAg0J3QkNCU0JAKK9Cg0JjQotCe0KYg0JPQldCX0JAKK9Cg0JjQotCi0JXQoCDQqNCQ0J3QlNCe0KAKK9Cg0JjQktCY0Isg0JjQktCeCivQoNCY0JfQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cg0JjQl9Cd0JjQiyDQktCV0InQmtCeCivQoNCY0JfQndCY0Isg0JLQldCJ0JrQngor0KDQmNCX0J7QktCh0JrQmCDQlNCg0JDQk9CeCivQoNCY0JfQktCQ0J0g0KjQo9Ca0KDQmAor0KDQmNCX0JLQkNCd0J7QktCY0Isg0KHQkNCU0JjQmgor0KDQnNCj0Kgg0JfQntCg0JjQptCQCivQoNCd0JjQiyDQnNCY0KXQkNCY0JvQngor0KDQitCQ0Jog0JTQkNCd0JjQptCQCivQoNCK0JDQmiDQodCi0JDQndCa0J4KK9Cg0J7QqNCY0J0g0JrQodCV0J3QmNCI0JAKK9Cg0J7QqNCY0J0g0JfQntCg0JrQngor0KDQntCo0KMg0JrQntCh0KLQkAor0KDQntCo0KPQiSDQltCY0JLQkNCdCivQoNCe0KjQo9CJINCW0JjQktCQCivQoNCe0KjQo9CJINCQ0J3QgtCV0JvQmtCQCivQoNCe0KjQo9CJINCV0JzQmNCbCivQoNCe0KjQo9CJINCb0JDQl9CQ0KAKK9Cg0J7QqNCj0Ikg0JzQmNCb0JDQndCQCivQoNCe0KjQo9CJINCc0JjQm9Ce0KDQkNCUCivQoNCe0KjQo9CJINCg0JDQlNCe0JLQkNCdCivQoNCe0KjQo9CJINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0J7QqNCj0Ikg0JfQntCg0JDQnQor0KDQntCo0KPQidCQINCS0JDQodCQCivQoNCe0KjQo9Cb0J7QkiDQodCi0JDQlNCe0IjQlQor0KDQntCW0JAg0JHQldCb0JAKK9Cg0J7QltCQINCk0JXQoNCV0J3Qpgor0KDQntCW0JAg0IjQkNCd0J7QqAor0KDQntCW0JAg0IjQntCS0JDQnQor0KDQntCW0JAg0JzQmNCg0JrQngor0KDQntCW0JDQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Cg0J7QgtCQ0Jog0KTQoNCQ0IrQkAor0KDQntCC0JXQndCa0J7QkiDQltCY0JLQntCI0JjQnQor0KDQntCC0JXQndCa0J7QkiDQgtCj0KDQkAor0KDQntCC0JXQndCa0J7QkiDQnNCY0JvQntCoCivQoNCe0JHQntCi0JjQiyDQkNCd0JAKK9Cg0J7QkdCe0KLQmNCLINCi0JXQoNCV0JfQkAor0KDQntCUINCU0JDQndCY0KbQkAor0KDQntCU0JjQiyDQp9CV0JTQntCc0JjQoAor0KDQntCU0JjQiyDQp9CV0JTQntCc0JjQoAor0KDQntCU0JjQiyDQqNCf0JjQoNCeCivQoNCe0JTQmNCLINCC0J7QoNCC0JUKK9Cg0J7QlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0J7QlNCY0Isg0JDQndCU0KDQmNCI0JAKK9Cg0J7QlNCY0Isg0JHQntCW0J4KK9Cg0J7QlNCY0Isg0JHQntCW0J4KK9Cg0J7QlNCY0Isg0JHQntCT0JTQkNCdCivQoNCe0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cg0J7QlNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQntCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0J7QlNCY0Isg0JTQkNCd0JjQptCQCivQoNCe0JTQmNCLINCU0KDQkNCT0JDQnQor0KDQntCU0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQoNCe0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QlNCY0Isg0JTQo9Co0JDQnQor0KDQntCU0JjQiyDQlNCj0KjQkNCdCivQoNCe0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QlNCY0Isg0JPQntCI0JrQngor0KDQntCU0JjQiyDQk9Ce0IjQmtCeCivQoNCe0JTQmNCLINCT0J7QiNCa0J4KK9Cg0J7QlNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cg0J7QlNCY0Isg0IjQntCS0J4KK9Cg0J7QlNCY0Isg0JvQldCf0JAKK9Cg0J7QlNCY0Isg0InQmNCJ0JDQndCQCivQoNCe0JTQmNCLINCc0JDQndCe0IjQm9CeCivQoNCe0JTQmNCLINCc0JjQi9CQCivQoNCe0JTQmNCLINCc0JjQi9CeCivQoNCe0JTQmNCLINCc0JjQm9CQ0J0KK9Cg0J7QlNCY0Isg0JzQmNCb0JXQndCQCivQoNCe0JTQmNCLINCc0JjQm9CY0KbQkAor0KDQntCU0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0J7QlNCY0Isg0JzQmNCb0JrQkAor0KDQntCU0JjQiyDQnNCY0JvQntCoCivQoNCe0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCe0JTQmNCLINCc0JjQoNCa0J4KK9Cg0J7QlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQntCU0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQoNCe0JTQmNCLINCd0JXQgtCeCivQoNCe0JTQmNCLINCd0JXQlNCV0InQmtCeCivQoNCe0JTQmNCLINCd0JjQmtCe0JvQkAor0KDQntCU0JjQiyDQndCY0JrQntCb0JAKK9Cg0J7QlNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCe0JTQmNCLINCd0JjQmtCe0JvQkAor0KDQntCU0JjQiyDQntCb0JPQkAor0KDQntCU0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0KDQntCU0JjQiyDQn9CV0KLQkNCgCivQoNCe0JTQmNCLINCf0JXQotCg0JAKK9Cg0J7QlNCY0Isg0KDQkNCU0JUKK9Cg0J7QlNCY0Isg0KDQkNCd0JrQngor0KDQntCU0JjQiyDQodCb0JDQktCa0J4KK9Cg0J7QlNCY0Isg0KHQnNCY0InQkAor0KDQntCU0JjQiyDQodCg0JXQotCV0J0KK9Cg0J7QlNCY0Isg0KHQotCQ0J3QmtCeCivQoNCe0JTQmNCLINCh0KLQldCS0JDQnQor0KDQntCU0JjQiyDQodCj0JfQkNCd0JAKK9Cg0J7QlNCY0Isg0KHQo9CX0JDQndCQCivQoNCe0JTQmNCLINCh0JLQldCi0JrQngor0KDQntCU0JjQiy3QotCe0JzQidCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQntCU0JjQiyDQktCV0KDQmNCm0JAKK9Cg0J7QlNCY0Isg0JfQntCg0JDQnQor0KDQntCT0JDQpyDQodCS0JXQotCb0JDQndCQCivQoNCe0JPQkNCnINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0J7Qk9CQ0KfQldCS0JjQiyDQntCR0KDQkNCUCivQoNCe0JPQkNCJ0KHQmtCYINCI0JXQm9CV0J3QkAor0KDQntCT0JDQm9CeINCQ0J3QotCe0J0KK9Cg0J7Qk9CQ0J0g0KHQktCV0KLQntCX0JDQoAor0KDQntCT0JDQndCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQm9Cj0JrQkAor0KDQntCT0JDQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQoNCe0JPQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQndCe0JLQkNCaCivQoNCe0JPQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQntCT0JDQndCe0JLQmNCLINCh0KLQldCS0J4KK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQotCQ0IrQkAor0KDQntCT0JDQndCe0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQoNCe0JPQkNCS0JDQpiDQnNCY0JvQkNCdCivQoNCe0JPQmNCLINCQ0JvQldCa0KHQkAor0KDQntCT0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQntCT0JjQiyDQodCQ0JLQkAor0KDQntCT0JjQiyDQktCV0InQmtCeCivQoNCe0JPQmNCLINCS0JXQodCV0JvQmNCdCivQoNCe0JPQmNCLINCS0JXQodCd0JAKK9Cg0J7Qk9CY0Isg0JfQntCg0JDQnQor0KDQntCT0JvQmNCLINCY0JLQkNCdCivQoNCe0JPQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0J7Qk9Cb0JjQiyDQnNCY0JvQkNCdCivQoNCe0JPQm9CY0Isg0JLQldCh0J3QkAor0KDQntCT0JvQmNCLINCS0JXQodCd0JAKK9Cg0J7Qk9Ce0JbQkNCg0KHQmtCYINCh0KLQldCS0JDQndCa0JAKK9Cg0J7Qk9Cj0JvQmNCLINCI0JXQm9CV0J3QkAor0KDQntCT0KPQidCQINCC0J7QoNCC0JUKK9Cg0J7Qk9Cj0InQkCDQmNCb0JjQiNCQCivQoNCe0JPQo9CJ0JAg0IjQntCS0JDQnQor0KDQntCT0KPQidCQINCd0JjQmtCe0JvQkAor0KDQntCT0KPQidCQINCf0JDQktCb0JUg0JTQoAor0KDQntCT0KPQidCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0J7Qk9Cj0InQmNCLINCd0JXQlNCV0InQmtCeCivQoNCe0JPQo9CJ0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQntCT0KPQidCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0J7QiNCa0JAg0JDQndCU0KDQldCICivQoNCe0IjQmtCQINCQ0J3QlNCg0JXQiAor0KDQntCI0J3QmNCaINCJ0KPQkdCe0JzQmNCgCivQoNCe0JrQkCDQltCj0JbQkNCd0JAKK9Cg0J7QmtCQINCI0JDQndCe0KgKK9Cg0J7QmtCQINCS0JDQm9CV0KDQmNCI0JAKK9Cg0J7QmtCQ0Jgg0J/QldCi0JDQoAor0KDQntCa0JjQiyDQlNCj0KjQkNCdCivQoNCe0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCe0JrQm9CY0KbQldCgINCk0KDQkNCK0JAKK9Cg0J7QmtCb0JjQptCV0KAg0IjQntCh0JjQnwor0KDQntCa0J3QmNCLINCI0KPQm9Ca0JjQptCQCivQoNCe0JrQndCY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0J7QmtCd0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQntCa0KHQkNCd0JTQmNCLINCQ0JTQkNCcCivQoNCe0JrQodCQ0J3QlNCY0Isg0JzQmNCb0JDQnQor0KDQntCa0KHQkNCd0JTQmNCLINCh0JjQnNCQCivQoNCe0JrQodCQ0J3QlNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQntCa0KHQkNCd0JTQmNCLINCS0JvQkNCU0J4KK9Cg0J7QmtCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCe0JrQktCY0Isg0JHQntCT0JTQkNCdCivQoNCe0JrQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCe0JrQktCY0Isg0JTQo9Co0JDQnQor0KDQntCa0JLQmNCLINCT0J7QiNCa0J4KK9Cg0J7QmtCS0JjQiyDQm9CQ0JfQkNCgCivQoNCe0JrQktCY0Isg0JzQkNCg0JrQngor0KDQntCa0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0J7QmtCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0J7QmtCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQntCa0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQn9Ce0JvQmNCi0JjQmtCe0JvQntCTCivQoNCe0JrQktCY0Isg0J7QnNCY0InQmtCeCivQoNCe0JrQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0J7QmtCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQntCa0JLQmNCLINCg0JDQndCa0J4KK9Cg0J7QmtCS0JjQiyDQodCY0J3QmNCo0JAKK9Cg0J7QmtCS0JjQiyDQktCV0KHQldCb0JrQngor0KDQntCa0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCe0JvQkNCd0JQg0KLQntCc0JjQodCb0JDQkgor0KDQntCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0J7Qm9Ce0JLQmNCLINCe0JvQk9CQCivQoNCe0Jwg0JHQoNCQ0J3QmtCQCivQoNCe0JzQp9CV0JIg0JzQmNCg0J7QodCb0JDQkgor0KDQntCc0JDQnSDQiNCV0JvQldCd0JAKK9Cg0J7QnNCQ0J0g0InQo9CR0JjQptCQCivQoNCe0JzQkNCdINCc0JjQndCV0JAKK9Cg0J7QnNCQ0J0g0JzQmNCg0J7QnQor0KDQntCc0JDQnSDQoNCe0JzQmtCeCivQoNCe0JzQkNCd0JTQmNCLINCQ0J3QmtCY0KbQkAor0KDQntCc0JDQndCU0JjQiyDQiNCV0JvQldCd0JAKK9Cg0J7QnNCQ0J3QlNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KDQntCc0JDQndCV0JvQmCDQk9CY0J3Qngor0KDQntCc0JDQndCY0Isg0JTQo9Co0JDQnQor0KDQntCc0JDQndCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cg0J7QnNCQ0J3QmNCLINCI0J7QpjAKK9Cg0J7QnNCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0KDQntCc0JDQndCa0JjQkiDQnNCY0KXQkNCI0JvQngor0KDQntCc0JDQndCe0JIg0IjQntCh0JjQnwor0KDQntCc0JDQndCe0JIg0KHQndCV0JbQkNCd0JAKK9Cg0J7QnNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQoNCe0JzQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KDQntCc0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCe0JzQkNCd0J7QktCY0Isg0JjQm9CY0J3QmtCQCivQoNCe0JzQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQntCc0JDQndCe0JLQmNCLINCd0JDQlNCQCivQoNCe0JzQkNChINCI0J7QodCY0J8KK9Cg0J7QnNCY0Isg0JXQotCQCivQoNCe0JzQmNCLINCI0JDQndCa0J4KK9Cg0J7QnNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0J7QnNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0J7QnNCY0Isg0JzQm9CQ0JTQldCdCivQoNCe0JzQmNCLINCd0JXQndCQ0JQKK9Cg0J7QnNCY0Isg0J/QkNCS0JvQlQor0KDQntCc0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQntCc0J7QlNCQINCY0KjQotCS0JDQnQor0KDQntCc0J7QlNCQINCa0JDQoNCb0J4KK9Cg0J7QnNCe0JTQkCDQnNCQ0KDQmNCI0JAKK9Cg0J7QndCn0JXQm9CYINCa0JDQotCY0KbQkAor0KDQntCd0KfQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0J7QndCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0J3Qp9CV0JLQmNCLINCY0JrQntCd0JjQiNCQCivQoNCe0J3Qp9CV0JLQmNCLINCa0J7QodCi0JAKK9Cg0J7QndCn0JXQktCY0Isg0JzQmNCb0JUKK9Cg0J7QndCn0JXQktCY0Isg0J3QkNCU0JAKK9Cg0J7QndCn0JXQktCY0Isg0J7QkdCg0JDQlAor0KDQntCd0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQoNCe0J3Qp9CV0JLQmNCLINCf0JXQotCQ0KAKK9Cg0J7QndCn0JXQktCY0Isg0J/QldCi0JDQoAor0KDQntCd0KfQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQoNCe0J3Qp9CV0JLQmNCLINCh0JDQktCV0KLQkAor0KDQntCd0KfQldCS0JjQiyDQodCQ0JLQngor0KDQntCd0KfQldCS0JjQiyDQodCi0JDQndCQCivQoNCe0J3Qp9CV0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cg0J7QndCn0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KDQntCd0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0J7QndCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQoNCe0J3Qp9CV0JLQmNCLINCS0JXQoNCQCivQoNCe0J3QkNCYINCc0JjQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQoNCe0J3QotCeINCk0KDQkNCd0KbQmNCo0JrQkAor0KDQntCd0KLQniDQmNCb0J7QndCa0JAKK9Cg0J7QndCi0J4g0IjQkNCa0J7QkQor0KDQntCd0KLQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQoNCe0KAg0JTQldCh0JAKK9Cg0J7QoNCR0JDQpdCV0KAg0JzQkNCT0JTQntCb0J3QkAor0KDQntCh0JjQiyDQgtCj0KDQngor0KDQntCh0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0J7QodCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cg0J7QodCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0KHQmNCLINCU0KDQkNCT0JDQnQor0KDQntCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0J7QodCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0KHQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QodCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0KDQntCh0JjQiyDQmNCb0JjQiNCQCivQoNCe0KHQmNCLINCJ0JjQidCQ0J3QkAor0KDQntCh0JjQiyDQnNCY0JvQldCd0JAKK9Cg0J7QodCY0Isg0JzQmNCb0JjQptCQCivQoNCe0KHQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCe0KHQmNCLINCc0JjQntCU0KDQkNCTCivQoNCe0KHQmNCLINCd0JjQmtCe0JvQkAor0KDQntCh0JjQiyDQntCh0KLQntCI0JAKK9Cg0J7QodCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQntCh0JjQiyDQl9Ce0KDQkNCdCivQoNCe0KHQm9CQ0JLQidCV0JIg0JLQntCI0JjQodCb0JDQkgor0KDQntCh0J4g0JjQktCQ0J0KK9Cg0J7QodCeINCc0JDQoNCi0JAKK9Cg0J7QoiDQlNCV0JfQmNCU0JXQoAor0KDQntCiINCk0KDQkNCK0JAKK9Cg0J7QotCQ0KDQmNCjINCi0JjQkdCV0KDQmNCI0JUKK9Cg0J7QotCR0JDQoNCiINCS0JvQkNCU0JjQodCb0JDQkgor0KDQntCi0JjQnCDQmNCS0JDQnQor0KDQntCS0KfQkNCd0JjQnSDQldCj0ILQldCd0JjQiNCQCivQoNCe0JLQp9CQ0J3QmNCdINCj0JfQldCY0KAKK9Cg0J7QktCn0JDQndCY0J0g0JLQldCh0JXQm9CY0J0KK9Cg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQntCS0J4g0JzQmNCl0JDQiQor0KDQntCX0JXQndCi0JDQmyDQlNCg0JDQk9CY0KbQkAor0KDQntCX0JXQndCi0JDQmyDQmtCQ0KDQm9CeCivQoNCe0JfQldCd0KLQkNCbINCc0JDQoNCi0J7QnQor0KDQntCX0JjQiyDQkNCd0KLQlQor0KDQntCX0JzQkNCg0JjQndCTINCY0KjQotCS0JDQnQor0KDQntCX0JzQmNCg0J7QkiDQlNCg0JDQk9CQ0J0KK9Cg0J7Ql9Cc0JjQoNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0KPQqNCY0KLQmCDQkNCb0JjQiNCQCivQoNCj0KjQmtCeINCV0KDQltCV0JHQldCiCivQoNCj0KjQmtCj0KYg0ILQntCg0ILQlQor0KDQo9Co0JrQo9CmINCQ0KLQkNCd0JDQodCY0IjQlQor0KDQo9Co0JrQo9CmINCc0JDQoNCT0JDQoNCY0KLQkAor0KDQo9Co0JrQo9CmINCc0JDQoNCi0JAKK9Cg0KPQqNCa0KPQpiDQn9CQ0JLQm9CVCivQoNCj0KjQmtCj0KYg0KHQotCV0JLQkNCdCivQoNCj0KjQmtCj0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCj0KjQmtCj0KYg0JLQldCh0JXQm9CY0J0KK9Cg0KPQqNCa0KPQpiDQktCb0JDQlNCY0JzQmNCgCivQoNCj0JbQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQo9CW0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KDQo9CW0JjQp9CY0Isg0ILQntCg0ILQlQor0KDQo9CW0JjQp9CY0Isg0JHQntCo0JrQngor0KDQo9CW0JjQp9CY0Isg0JzQmNCb0JDQnQor0KDQo9CW0JjQp9CY0J0g0JTQkNCd0JjQptCQCivQoNCj0JbQmNCn0JjQnSDQoNCQ0JTQmNCS0J7QiAor0KDQo9CW0JjQp9Ca0JAg0ILQo9Cg0JAKK9Cg0KPQltCY0KfQmtCQINCg0KPQltCQCivQoNCj0JbQmNCLINCW0JDQoNCa0J4KK9Cg0KPQltCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0KPQltCY0Isg0JTQoNCQ0JbQkNCd0JAKK9Cg0KPQltCY0Isg0JTQo9Co0JDQnQor0KDQo9CW0JjQiyDQlNCj0KjQkNCdCivQoNCj0JbQmNCLINCU0KPQqNCQ0J0KK9Cg0KPQltCY0Isg0JXQnNCQCivQoNCj0JbQmNCLINCT0J7QoNCU0JDQndCQCivQoNCj0JbQmNCLINCY0JLQmNCm0JAKK9Cg0KPQltCY0Isg0IjQntCS0JDQnQor0KDQo9CW0JjQiyDQiNCe0JLQngor0KDQo9CW0JjQiyDQiNCj0JvQmtCQCivQoNCj0JbQmNCLINCa0KDQodCi0J4KK9Cg0KPQltCY0Isg0JzQkNCg0JjQiNCQCivQoNCj0JbQmNCLINCc0JDQoNCY0IjQkAor0KDQo9CW0JjQiyDQnNCY0JvQkNCdCivQoNCj0JbQmNCLINCc0JjQm9CQ0J0KK9Cg0KPQltCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0KPQltCY0Isg0JzQmNCg0JAKK9Cg0KPQltCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0KPQltCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0KPQltCY0Isg0JzQmNCg0JrQngor0KDQo9CW0JjQiyDQndCY0JrQntCb0JAKK9Cg0KPQltCY0Isg0J3QmNCa0J7Qm9CQCivQoNCj0JbQmNCLINCf0JDQktCQCivQoNCj0JbQmNCLINCf0JXQotCQ0KAKK9Cg0KPQltCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cg0KPQltCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cg0KPQltCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9CW0JjQiyDQodCc0JjQidCQ0J3QkAor0KDQo9CW0JjQiyDQodCi0JDQndCa0J4KK9Cg0KPQltCY0Ist0KHQotCQ0KDQmCDQktCV0KHQndCQCivQoNCj0JbQmNCLINCh0KLQiNCV0J/QkNCdCivQoNCj0JbQmNCLINCh0JLQldCi0J7Qm9CY0JoKK9Cg0KPQltCY0Isg0JLQldCJ0JrQngor0KDQo9CW0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KDQo9CW0JjQiyDQl9Ce0KDQkNCdCivQoNCj0JbQmNCLINCX0J7QoNCQ0J0KK9Cg0KPQltCY0J0g0KfQldCU0J7QnNCY0KAKK9Cg0KPQltCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cg0KPQltCd0JjQptCa0Jgg0JjQktCQ0J0KK9Cg0KPQgtCQINCd0JXQnNCQ0IrQkAor0KDQo9CC0JAg0JfQntCg0JDQnQor0KDQo9CC0JAg0JfQntCg0JDQnQor0KDQo9CR0JXQltCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0KPQkdCV0JbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0KPQkdCY0J0g0JzQmNCb0JDQnQor0KDQo9CR0KPQqCDQkNCT0J3QldCX0JAKK9Cg0KPQkdCj0Kgg0IjQntCW0JXQpAor0KDQo9CU0JDQnSDQnNCQ0KDQmtCeCivQoNCj0JTQkNCdINCg0JDQlNCY0JLQntCI0JUKK9Cg0KPQlNCV0JYg0JjQm9CY0IjQkAor0KDQo9CU0JXQliDQnNCY0IvQngor0KDQo9CU0JXQliDQn9CV0KDQkAor0KDQo9CU0JXQmiDQiNCQ0KDQntCh0JvQkNCSCivQoNCj0JTQldCaINCd0JjQmtCe0JvQkAor0KDQo9CU0JXQmiDQndCY0JrQntCb0JAKK9Cg0KPQlNCY0Isg0JTQkNCg0JrQngor0KDQo9CU0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0KPQlNCY0Isg0JTQoNCQ0JPQkNCdCivQoNCj0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0KPQlNCY0Isg0JjQnNCg0JUKK9Cg0KPQlNCY0Isg0JjQktCQ0J0KK9Cg0KPQlNCY0Isg0JjQktCQ0J0KK9Cg0KPQlNCY0Isg0IjQntCh0JjQnwor0KDQo9CU0JjQiyDQm9CQ0JfQkNCgCivQoNCj0JTQmNCLINCc0JDQoNCa0J4KK9Cg0KPQlNCY0Isg0JzQkNCg0JrQngor0KDQo9CU0JjQiyDQnNCY0JvQmtCQCivQoNCj0JTQmNCLINCd0JXQlNCV0InQmtCeCivQoNCj0JTQmNCLINCd0JjQmtCe0JvQkAor0KDQo9CU0JjQiyDQn9CV0KDQkAor0KDQo9CU0JjQiyDQodCi0JXQktCQ0J0KK9Cg0KPQlNCY0Isg0KHQotCV0JLQmNCm0JAKK9Cg0KPQlNCY0Ist0JLQoNCQ0J3QmNCLINCd0JXQlNCV0InQmtCQCivQoNCj0JTQntCb0KQg0JrQm9CQ0IjQnQor0KDQo9CU0J7Qm9CkINCe0JvQk9CQCivQoNCj0JTQntCb0KQg0KHQn9CQ0KHQntCI0JUKK9Cg0KPQlNCe0JvQpCDQl9Ce0KDQkNCdCivQoNCj0JTQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cg0KPQlNCe0JLQmNCLINCY0JvQmNCI0JAKK9Cg0KPQlNCe0JLQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Cg0KPQlNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCj0JTQntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCj0KTQp9CV0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Cg0KPQiNCV0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cg0KPQiNCV0JLQmNCLINCc0JjQm9CV0JLQkAor0KDQo9Ca0JDQktCY0J3QkC3QqNCb0JjQkdCQ0KAg0KXQldCg0JzQmNCd0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JHQkNCg0JjQptCQCivQoNCj0JrQkNCS0JjQndCQINCU0JXQodCf0JjQndCQCivQoNCj0JrQkNCS0JjQndCQINCU0J7QkdCg0JjQm9CQCivQoNCj0JrQkNCS0JjQndCQINCU0KPQqNCQ0J0KK9Cg0KPQmtCQ0JLQmNCd0JAg0IjQo9Cg0JUKK9Cg0KPQmtCQ0JLQmNCd0JAg0JrQoNCV0KjQmNCc0JjQoAor0KDQo9Ca0JDQktCY0J3QkCDQidCj0JHQmNCm0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JzQkNCg0JjQiNCQCivQoNCj0JrQkNCS0JjQndCQINCc0JjQm9Ca0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0KDQo9CU0J7Qm9CkCivQoNCj0JrQkNCS0JjQndCQINCg0KPQlNCe0JvQpAor0KDQo9Ca0JDQktCY0J3QkCDQodCi0JXQktCQ0J0KK9Cg0KPQmtCQ0JLQmNCd0JAg0JfQktCe0J3QmNCc0JjQoAor0KDQo9Cc0JDQnSDQnNCY0KXQkNCI0JvQngor0KDQo9Cd0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0KPQndCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cg0KPQitCQ0IjQmNCLINCY0JvQmNCI0JAKK9Cg0KPQitCQ0J3QmNCdINCC0J7QoNCC0JUKK9Cg0KPQitCQ0J3QmNCdINCS0JvQkNCU0JjQodCb0JDQkgor0KDQo9CK0JDQndCY0J0g0JLQntCI0J4KK9Cg0KPQitCY0Isg0JDQnNCQ0JvQmNCI0JAKK9Cg0KPQitCY0Isg0JTQoNCQ0JPQkNCdCivQoNCj0IrQmNCLINCU0KDQkNCT0JjQptCQCivQoNCj0IrQmNCLINCT0JDQktCg0JjQm9CeCivQoNCj0IrQmNCLINCT0J7QoNCQ0J0KK9Cg0KPQitCeINCI0J7QktCQ0J0KK9Cg0KPQndCi0JjQiyDQkdCe0KjQmtCeCivQoNCj0J/Qp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQo9Cf0JAg0JDQotCY0JvQkAor0KDQo9Cf0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0KPQn9CQ0KAg0JXQoNCW0JXQkdCV0KIKK9Cg0KPQn9CY0Isg0JbQmNCS0JrQngor0KDQo9Cf0IrQkNCaINCR0KDQkNCd0JjQodCb0JDQkgor0KDQo9ChINCC0KPQoNCC0JjQndCa0JAKK9Cg0KPQoSDQlNCg0JDQk9CQ0J0KK9Cg0KPQoSDQmNCS0JDQndCa0JAKK9Cg0KPQoSDQiNCe0KHQmNCfCivQoNCj0KEg0JzQkNCg0JPQmNCi0JAKK9Cg0KPQoSDQnNCQ0KDQmNCI0JAKK9Cg0KPQoSDQnNCY0JvQntCh0JDQktCQCivQoNCj0KEg0KDQkNCU0JAKK9Cg0KPQoSDQodCb0JDQktCY0KbQkAor0KDQo9ChINCh0JzQmNCJ0JAKK9Cg0KPQoSDQodCS0JXQotCb0JDQndCQCivQoNCj0KEg0JLQldCg0JAKK9Cg0KPQoSDQktCj0JrQntCh0JDQktCQCivQoNCj0KHQmNCLINCQ0J3QlNCg0JjQiNCQCivQoNCj0KHQmtCQ0IjQmCDQodCb0JDQktCe0JzQmNCgCivQoNCj0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQo9Ch0JrQmCDQm9CQ0JfQkNCgCivQoNCj0KHQmtCe0JLQodCa0Jgg0ILQntCg0ILQlQor0KDQo9Ch0JrQntCS0KHQmtCYINCU0KDQkNCT0JjQptCQCivQoNCj0KHQmtCe0JLQodCa0Jgg0JzQkNCT0JTQkNCb0JXQndCQCivQoNCj0KHQnNCY0KAg0KDQkNCU0JzQmNCb0JAKK9Cg0KPQodCc0JjQoNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0KDQo9Ch0JzQmNCg0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQoNCj0KHQntCSINCW0JDQoNCa0J4KK9Cg0KPQodCe0JIg0JbQmNCS0JrQkAor0KDQo9Ch0J7QkiDQkdCg0JDQndCa0JAKK9Cg0KPQodCe0JIg0JHQoNCQ0J3QmtCeCivQoNCj0KHQntCSINCU0KDQldCd0JrQkAor0KDQo9Ch0J7QkiDQmtCQ0KLQmNCm0JAKK9Cg0KPQodCe0JIg0JrQntCh0KLQkAor0KDQo9Ch0J7QkiDQmtCg0JjQodCi0JjQndCQCivQoNCj0KHQntCSINCc0JDQoNCY0IjQkAor0KDQo9Ch0J7QkiDQnNCY0JvQkNCdCivQoNCj0KHQntCSINCc0JjQm9Ce0KDQkNCUCivQoNCj0KHQntCSINCd0JDQlNCQCivQoNCj0KHQntCSINCf0JDQktCb0JUKK9Cg0KPQodCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9Ch0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCj0KHQntCS0JDQnSDQltCY0JLQmNCm0JAKK9Cg0KPQodCe0JLQkNCdINCU0KDQkNCT0J7QidCj0JEKK9Cg0KPQodCe0JLQkNCdINCc0JjQm9CQ0J0KK9Cg0KPQodCe0JLQkNCdINCc0JjQm9CQ0J0KK9Cg0KPQodCi0JXQnNCQ0JPQmNCLINCV0KDQktCY0J0KK9Cg0KPQodCi0JXQnNCYINCo0JDQkdCQ0J0KK9Cg0KPQotCV0KjQmNCLINCI0J7QktCY0KbQkAor0KDQo9Ci0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQo9Ci0J7QndCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Cg0KPQotCe0J3QmNCLLdCa0J7Qm9CV0J3QlNCQINCS0JjQlNCe0KHQkNCS0JAKK9Cg0KPQotCe0J3QmNCLINCb0JDQl9CQ0KAKK9Cg0KPQotCe0J3QmNCLINCb0JDQl9CQ0KAKK9Cg0KPQotCe0IrQodCa0Jgg0JTQo9Co0JDQnQor0KDQo9Ci0J7QitCh0JrQmCDQiNCV0JvQmNCm0JAKK9Cg0KPQotCe0IrQodCa0Jgg0IjQntCS0JDQndCa0JAKK9Cg0KPQotCe0IrQodCa0Jgg0J3QkNCU0JAKK9Cg0KPQotCe0IrQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9Ci0J7QitCh0JrQmCDQktCQ0KHQkAor0KDQo9Ci0J7QndCh0JrQmCDQgtCe0KDQgtCVCivQoNCj0KLQntCS0JjQiyDQkdCe0KjQmtCeCivQodCQ0KfQldCaINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQp9CV0KAg0KDQntCa0JgKK9Ch0JDQp9CY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JHQkNCU0Jgg0JvQkNCh0JvQngor0KHQkNCR0JDQlNCYINCc0JjQoNCI0JDQndCQCivQodCQ0JHQkNCU0JrQkCDQqNCQ0J3QlNCe0KAKK9Ch0JDQkdCQ0JTQmtCQINCY0JvQntCd0JrQkAor0KHQkNCR0JDQlNCa0JAg0JLQkNCb0JXQoNCY0IjQkAor0KHQkNCR0JDQlNCe0Kgg0KjQkNCd0JTQntCgCivQodCQ0JHQkNCU0J7QqCDQgtCj0KDQkAor0KHQkNCR0JDQlNCe0Kgg0JjQktCQ0J0KK9Ch0JDQkdCQ0JTQntCoINCI0JDQndCa0J4KK9Ch0JDQkdCQ0JTQntCoINCI0JDQndCa0J4KK9Ch0JDQkdCQ0JTQntCoINCI0JDQndCa0J4KK9Ch0JDQkdCQ0JTQntCoINCI0J7QkNCa0JjQnAor0KHQkNCR0JDQlNCe0Kgg0InQo9CR0J7QnNCY0KAKK9Ch0JDQkdCQ0JTQntCoINCc0JjQqNCQCivQodCQ0JHQkNCU0J7QqCDQnNCY0KXQkNCI0JvQngor0KHQkNCR0JDQlNCe0Kgg0JzQmNCl0JDQiNCb0J4KK9Ch0JDQkdCQ0JTQntCoINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQkdCQ0JTQntCoINCf0JDQktCb0JjQndCQCivQodCQ0JHQkNCU0J7QqCDQoNCj0JbQmNCm0JAKK9Ch0JDQkdCQ0JTQntCoINCh0JvQkNCS0J3QkAor0KHQkNCR0JDQlNCe0Kgg0KHQm9CQ0JLQntCc0JjQoAor0KHQkNCR0JDQlNCe0Kgg0KHQoNCR0JjQodCb0JDQkgor0KHQkNCR0JDQlNCe0Kgg0KHQotCV0JLQkNCdCivQodCQ0JHQkNCU0J7QqCDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JHQkNCU0J7QqCDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JHQkNCU0J7QqCDQl9CU0JXQndCa0JAKK9Ch0JDQkdCQ0JTQo9CoINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCQ0JHQkNCU0KPQqCDQodCi0JXQktCQ0J0KK9Ch0JDQkdCQ0KLQmtCQINCh0KLQldCS0JDQnQor0KHQkNCR0JDQotCj0Kgg0JHQntCg0JjQodCb0JDQkgor0KHQkNCR0JDQotCj0Kgg0JTQoNCQ0JPQntCJ0KPQkQor0KHQkNCR0JDQotCj0Kgg0KLQntCc0JjQodCb0JDQkgor0KHQkNCR0JvQmNCLINCR0KDQkNCd0JrQngor0KHQkNCR0InQkNCaINCU0KDQkNCT0JDQnQor0KHQkNCR0InQkNCaINCk0KDQkNCK0J4KK9Ch0JDQkdCJ0JDQmiDQnNCQ0KDQmNCI0JDQnQor0KHQkNCR0InQkNCa0J7QktCY0Isg0JXQodCQ0JQKK9Ch0JDQkdCJ0JDQoCDQgtCe0KDQgtCVCivQodCQ0JHQidCQ0KAg0JzQkNCd0J7QiNCb0J4KK9Ch0JDQkdCJ0JDQoCDQnNCY0JvQkNCdCivQodCQ0JHQidCQ0KAg0KLQldCe0JTQntCgCivQodCQ0JHQidCQ0KDQldCS0JjQiyDQktCV0KDQmNCm0JAKK9Ch0JDQkdCJ0JjQiyDQlNCQ0J3QmNCb0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ch0JDQkdCJ0JjQiyDQlNCQ0KDQkAor0KHQkNCR0InQmNCLINCT0J7QoNCU0JDQndCQCivQodCQ0JHQidCe0JIg0JjQqNCi0JLQkNCdCivQodCQ0JHQidCe0JIg0JzQmNCb0JjQptCQCivQodCQ0JHQniDQqNCQ0J3QlNCe0KAKK9Ch0JDQkdCeINCo0JDQitCY0JrQkAor0KHQkNCR0J4g0ILQldCX0JUKK9Ch0JDQkdCeINCC0J7QoNCC0JUKK9Ch0JDQkdCeINCC0J7QoNCC0JUKK9Ch0JDQkdCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCQ0JHQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQkNCR0J4g0JDQndCQINCU0KAKK9Ch0JDQkdCeINCQ0J3QkAor0KHQkNCR0J4g0JDQndCQCivQodCQ0JHQniDQkNCd0JTQoNCQ0KgKK9Ch0JDQkdCeINCQ0J3QlNCg0JDQqAor0KHQkNCR0J4g0JDQndCY0KbQkAor0KHQkNCR0J4g0JDQndCY0KbQkAor0KHQkNCR0J4g0JHQldCg0KLQkNCb0JDQnQor0KHQkNCR0J4g0JTQoNCQ0JPQkNCdCivQodCQ0JHQniDQldCb0JjQl9CQ0JHQldCi0JAKK9Ch0JDQkdCeINCV0JzQmNCbCivQodCQ0JHQniDQldCg0JbQldCR0JXQogor0KHQkNCR0J4g0JXQoNCW0JXQkdCV0KIKK9Ch0JDQkdCeINCV0KDQndCVCivQodCQ0JHQniDQldCg0J3QlQor0KHQkNCR0J4g0JXQodCi0JXQoAor0KHQkNCR0J4g0KTQldCg0JXQndCmCivQodCQ0JHQniDQpNCV0KDQldCd0KYKK9Ch0JDQkdCeINCk0KDQkNCK0JAKK9Ch0JDQkdCeINCk0KDQkNCK0JAKK9Ch0JDQkdCeINCk0KDQkNCK0J4KK9Ch0JDQkdCeINCT0JDQqNCf0JDQoAor0KHQkNCR0J4g0JPQkNCR0J7QoAor0KHQkNCR0J4g0JPQldCg0JPQldCJCivQodCQ0JHQniDQk9CY0JfQldCb0JAKK9Ch0JDQkdCeINCT0J7QoNCU0JDQndCQCivQodCQ0JHQniDQpdCY0JvQlNCQCivQodCQ0JHQniDQmNCo0KLQktCQ0J0KK9Ch0JDQkdCeINCY0KjQotCS0JDQnQor0KHQkNCR0J4g0JjQqNCi0JLQkNCdCivQodCQ0JHQniDQmNCo0KLQktCQ0J0KK9Ch0JDQkdCeINCY0KjQotCS0JDQnQor0KHQkNCR0J4g0JjQqNCi0JLQkNCdCivQodCQ0JHQniDQmNCR0J7QidCa0JAKK9Ch0JDQkdCeINCY0JTQkAor0KHQkNCR0J4g0JjQm9Ce0J3QkAor0KHQkNCR0J4g0JjQnNCg0JUKK9Ch0JDQkdCeINCY0JzQoNCVCivQodCQ0JHQniDQmNCS0JDQnQor0KHQkNCR0J4g0IjQkNCd0JjQmtCQCivQodCQ0JHQniDQiNCQ0J3QntCoCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCj0JvQmNCQCivQodCQ0JHQniDQiNCj0JvQmNCI0JDQndCQCivQodCQ0JHQniDQmtCQ0KDQntCb0JjQndCQCivQodCQ0JHQniDQmtCQ0KLQmNCm0JAKK9Ch0JDQkdCeINCa0JDQotCY0KbQkAor0KHQkNCR0J4g0JvQkNCU0JjQodCb0JDQkgor0KHQkNCR0J4g0JvQkNCU0JjQodCb0JDQkgor0KHQkNCR0J4g0JvQkNCU0JjQodCb0JDQkgor0KHQkNCR0J4g0InQo9CR0J7QnNCY0KAKK9Ch0JDQkdCeINCc0JDQoNCY0IjQkAor0KHQkNCR0J4g0JzQkNCg0KLQkAor0KHQkNCR0J4g0JzQmNCl0JDQiNCb0J4KK9Ch0JDQkdCeINCc0JjQm9CY0KbQkAor0KHQkNCR0J4g0J3QmNCa0J7Qm9CQCivQodCQ0JHQniDQntCb0JjQktCV0KDQkAor0KHQkNCR0J4g0J/QkNCS0JvQlQor0KHQkNCR0J4g0J/QldCi0JDQoAor0KHQkNCR0J4g0J/QldCi0JDQoAor0KHQkNCR0J4g0J/QldCi0JDQoAor0KHQkNCR0J4g0J/QmNCo0KLQkAor0KHQkNCR0J4g0KDQntCX0JDQm9CY0IjQkAor0KHQkNCR0J4g0KHQndCY0IjQldCW0JDQndCQCivQodCQ0JHQniDQodCi0JXQktCQ0J0KK9Ch0JDQkdCeINCi0JXQoNCV0JfQmNCI0JAKK9Ch0JDQkdCeINCi0JjQkdCe0KAKK9Ch0JDQkdCeINCS0JDQm9CV0KDQmNCI0JAKK9Ch0JDQkdCeINCX0J7Qm9Ci0JDQnQor0KHQkNCR0J4g0JfQntCb0KLQkNCdCivQodCQ0JHQntCo0J7QotCYINCk0JDQkdCY0IjQkNCdCivQodCQ0JHQntCbINCI0JDQoNCe0KHQm9CQ0JIKK9Ch0JDQkdCe0Jsg0IjQldCb0JXQndCQCivQodCQ0JHQntCb0KfQmtCYINCQ0J3QlNCg0JjQiNCQCivQodCQ0JHQntCb0KfQmtCYINCQ0J3QlNCg0JjQiNCQCivQodCQ0JHQntCb0KfQmtCYINCQ0J3QlNCg0JjQiNCQCivQodCQ0JHQntCb0KfQmtCYINCX0J7Qm9Ci0JDQnQor0KHQkNCR0J7Qm9Ce0JLQmNCLINCR0J7QoNCY0KEKK9Ch0JDQkdCe0JIg0JHQntCg0JjQktCe0IjQlQor0KHQkNCR0J7QktCJ0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0JDQj9CQ0Jog0InQo9CR0JjQptCQCivQodCQ0I/QkNCa0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQodCQ0I/QkNCa0J7QkiDQlNCj0KjQkNCd0JrQkAor0KHQkNCP0JDQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCP0JDQmtCe0JIg0J7Qm9CT0JAKK9Ch0JDQj9CQ0JrQntCSINCf0JXQotCQ0KAKK9Ch0JDQj9CQ0JrQntCSINCg0JDQlNCe0JLQkNCdCivQodCQ0I/QkNCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0KHQkNCP0JDQmtCe0JIg0JLQmNCU0J7QodCQ0JLQkAor0KHQkNCP0JDQmtCe0JIg0JfQntCg0JDQnQor0KHQkNCU0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQkNCU0JjQmtCjINCh0JDQlNCY0JoKK9Ch0JDQmNCi0J7QkiDQqNCQ0KXQmNCcCivQodCQ0IjQpNCV0KDQoiDQgtCj0JvQkAor0KHQkNCI0KTQldCg0KIg0IjQntCl0JDQnQor0KHQkNCI0KTQldCg0KIg0InQo9CR0JjQqNCQCivQodCQ0IjQpNCV0KDQoiDQidCj0JHQmNCo0JAKK9Ch0JDQiNCk0JXQoNCiINCc0JDQoNCT0JjQogor0KHQkNCI0KTQldCg0KIg0JzQkNCg0JjQiNCQCivQodCQ0IjQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0JDQiNCa0J4g0JHQoNCQ0J3QmtCQCivQodCQ0IjQmtCeINCY0KjQotCS0JDQnQor0KHQkNCI0JrQniDQnNCQ0KDQk9CY0KLQkAor0KHQkNCI0JrQniDQoNCj0JbQmNCm0JAKK9Ch0JDQiNCa0J4g0JfQntCb0KLQkNCdCivQodCQ0IjQm9CV0KAg0KTQldCg0JXQndCmCivQodCQ0IjQotCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQodCQ0JrQkNCnINCR0J7QoNCY0KHQm9CQ0JIg0JvQldCa0JDQoAor0KHQkNCa0JDQpyDQpNCV0KDQldCd0KYKK9Ch0JDQmtCQ0Kcg0JjQqNCi0JLQkNCdCivQodCQ0JrQkNCnINCI0JDQndCa0J4KK9Ch0JDQmtCQ0Kcg0IjQkNCd0JrQngor0KHQkNCa0JDQpyDQiNCe0JLQkNCdCivQodCQ0JrQkNCnINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JDQmtCQ0Kcg0IjQo9Cb0JjQiNCQ0J0KK9Ch0JDQmtCQ0Kcg0InQo9CU0JXQktCY0KIKK9Ch0JDQmtCQ0Kcg0JzQkNCT0JTQkAor0KHQkNCa0JDQpyDQnNCQ0KDQmNCI0JAKK9Ch0JDQmtCQ0Kcg0JzQmNCl0JDQmNCb0J4KK9Ch0JDQmtCQ0Kcg0KHQmNCc0JAKK9Ch0JDQmtCQ0Kcg0KHQktCV0KLQm9CQ0J3QkAor0KHQkNCa0JDQpyDQktCQ0KHQmNCb0JjQiNCVCivQodCQ0JrQkNCnINCS0JvQkNCU0JjQnNCY0KAg0JDQlNCS0J7QmtCQ0KIKK9Ch0JDQmtCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCa0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JrQkNCbINCQ0JTQldCb0JAKK9Ch0JDQmtCQ0Jsg0JDQo9CT0KPQodCi0JjQndCQCivQodCQ0JrQkNCbINCT0JDQkdCe0KAKK9Ch0JDQmtCQ0Jsg0IjQntCW0JXQpAor0KHQkNCa0JDQmyDQnNCQ0KDQmNCI0JAKK9Ch0JDQmtCQ0Jsg0JzQkNCg0JjQiNCQCivQodCQ0JrQkNCb0JDQqCDQntCi0J4KK9Ch0JDQmtCQ0J0g0JTQkNCb0JjQkdCe0KAKK9Ch0JDQmtCe0JLQmNCLINCQ0JvQmNCI0JAKK9Ch0JDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQkNCa0KPQm9Ch0JrQmCDQnNCY0JvQkNCdCivQodCQ0JvQkNCnINCC0KPQoNCeCivQodCQ0JvQkNCTINCV0JLQk9CV0J3QmNCI0JUKK9Ch0JDQm9CQ0JMg0IjQkNCd0JrQngor0KHQkNCb0JDQkyDQidCj0JHQkAor0KHQkNCb0JDQmCDQldCg0JbQldCR0JXQogor0KHQkNCb0JDQmCDQldCh0KLQldCgCivQodCQ0JvQkNCYLdCT0J7QnNCR0JDQoCDQoNCj0JbQkAor0KHQkNCb0JDQmCDQmNCo0KLQktCQ0J0g0J3QntCS0JjQndCQ0KAKK9Ch0JDQm9CQ0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0JDQm9CQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQkNCb0JDQmCDQm9CQ0KHQm9CeCivQodCQ0JvQkNCIINCk0KDQkNCK0J4KK9Ch0JDQm9CQ0Igg0IjQkNCd0JrQngor0KHQkNCb0JDQiCDQiNCe0JbQldCkCivQodCQ0JvQkNCIINCc0JjQoNCI0JDQndCQCivQodCQ0JvQkNCIINCg0KPQlNCe0JvQpAor0KHQkNCb0JDQmiDQiNCQ0J3QmtCeCivQodCQ0JvQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQm9CQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCb0JDQnNCj0J0g0JDQndCQCivQodCQ0JvQkNCc0KPQnSDQkdCe0KHQmNCJ0JrQkAor0KHQkNCb0JDQnNCj0J0g0JjQm9CY0IjQkAor0KHQkNCb0JDQnNCj0J0g0IjQkNCd0JrQngor0KHQkNCb0JDQnNCj0J0g0IjQntCQ0JrQmNCcCivQodCQ0JvQkNCc0KPQnSDQiNCe0JDQmtCY0JwKK9Ch0JDQm9CQ0JzQo9CdINCd0JDQotCQ0JvQmNCI0JAKK9Ch0JDQm9CQ0JzQo9CdINCh0JjQm9CS0JXQodCi0JXQoAor0KHQkNCb0JDQnNCj0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCb0JDQn9Cj0KDQkCDQnNCY0JvQlQor0KHQkNCb0JDQn9Cj0KDQkCDQndCV0JTQldCJ0JrQngor0KHQkNCb0JDQn9Cj0KDQkCDQn9CV0KLQkNCgCivQodCQ0JvQkNCi0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQkNCb0JDQotCY0Isg0J/QldCi0JDQoCDQnNCgINCe0JXQpgor0KHQkNCb0JDQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0JDQm9CU0KPQnCDQktCY0JTQkAor0KHQkNCb0JXQotCQINCQ0J3QotCj0J0KK9Ch0JDQm9CY0Isg0JzQmNCb0JDQnQor0KHQkNCb0JjQkdCV0JPQntCS0JjQiyDQnNCj0KHQotCQ0KTQkAor0KHQkNCb0JjQpdCe0JLQmNCLINCY0KHQnNCV0KIKK9Ch0JDQm9CY0IjQkCDQodCV0KTQldCgCivQodCQ0JvQmNCI0JXQktCY0Isg0KjQldCL0JXQoNCY0IjQkAor0KHQkNCb0JrQkNCYINCY0JvQntCd0JAKK9Ch0JDQm9Ca0JDQmCDQm9CQ0KHQm9CeCivQodCQ0JvQnNCQINCo0JDQndCU0J7QoAor0KHQkNCb0JzQkCDQk9CV0JfQkAor0KHQkNCb0JzQkCDQiNCe0JbQldCkINCf0KDQntCkINCU0KAKK9Ch0JDQm9Cc0JAg0IjQntCh0JjQnwor0KHQkNCb0JzQkCDQn9CV0KLQkNCgCivQodCQ0JvQnNCQINCi0JjQkdCe0KAKK9Ch0JDQm9Cc0JAg0KLQmNCR0J7QoAor0KHQkNCb0J7QptCa0Jgg0KHQotCV0JLQkNCdCivQodCQ0JvQntCd0KHQmtCYINCR0J7QltCY0JTQkNCgCivQodCQ0JvQntCd0KHQmtCYINCI0JXQm9CV0J3QkAor0KHQkNCb0J7QndCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KHQkNCb0J7QndCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KHQkNCb0J7QndCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQodCQ0JvQntCd0KHQmtCYINCg0KPQltCQCivQodCQ0JvQntCd0KLQkNCYINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JDQm9Ce0J/QldCaINCR0KDQkNCd0JrQngor0KHQkNCb0J7QkiDQiNCe0JLQkNCdCivQodCQ0JzQkNCmINCY0JLQkNCd0JrQkAor0KHQkNCc0JDQpiDQnNCY0KDQmtCeCivQodCQ0JzQkNCg0ILQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQodCQ0JzQkNCg0I/QmNCLINCW0JDQoNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JDQlNCQ0JwKK9Ch0JDQnNCQ0KDQj9CY0Isg0JHQntCo0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQkdCe0KjQmtCeCivQodCQ0JzQkNCg0I/QmNCLINCR0J7QoNCQCivQodCQ0JzQkNCg0I/QmNCLINCR0J7QoNCQCivQodCQ0JzQkNCg0I/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQkNCc0JDQoNCP0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JTQkNCd0JjQm9CeCivQodCQ0JzQkNCg0I/QmNCLINCU0JDQndCY0JvQngor0KHQkNCc0JDQoNCP0JjQiyDQlNCV0KHQkAor0KHQkNCc0JDQoNCP0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQnNCQ0KDQj9CY0Isg0JTQo9Co0JDQnQor0KHQkNCc0JDQoNCP0JjQiyDQk9Ce0IjQmtCeCivQodCQ0JzQkNCg0I/QmNCLINCY0JvQmNCI0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JjQktCQ0J0KK9Ch0JDQnNCQ0KDQj9CY0Isg0JrQoNCh0KLQkAor0KHQkNCc0JDQoNCP0JjQiyDQidCj0JHQngor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0JvQkNCdCivQodCQ0JzQkNCg0I/QmNCLINCc0JjQm9CY0IjQkAor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0JvQntCoCivQodCQ0JzQkNCg0I/QmNCLINCc0JjQm9Ce0KgKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0J7QiNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0J7QodCQ0JIKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCg0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0J3QldCC0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0J3QntCS0JjQptCQCivQodCQ0JzQkNCg0I/QmNCLINCe0JvQk9CQCivQodCQ0JzQkNCg0I/QmNCLINCe0KHQotCe0IjQkAor0KHQkNCc0JDQoNCP0JjQiyDQoNCQ0JTQntCI0JrQkAor0KHQkNCc0JDQoNCP0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCQ0JzQkNCg0I/QmNCLINCg0JDQlNCe0JLQkNCdCivQodCQ0JzQkNCg0I/QmNCLINCg0JDQiNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0KDQkNCi0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQoNCe0JfQmNCd0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0KHQkNCS0JrQkAor0KHQkNCc0JDQoNCP0JjQiyDQodCQ0JLQngor0KHQkNCc0JDQoNCP0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQodCQ0JzQkNCg0I/QmNCLINCh0KDQldCi0JXQnQor0KHQkNCc0JDQoNCP0JjQiyDQodCg0JXQotCV0J0KK9Ch0JDQnNCQ0KDQj9CY0Ist0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQkNCd0JrQkAor0KHQkNCc0JDQoNCP0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCQ0JzQkNCg0I/QmNCLINCS0JDQodCY0JvQmNCI0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JLQkNCh0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JLQm9CQ0JTQngor0KHQkNCc0JDQoNCP0JjQiyDQktCj0JrQkNCo0JjQnQor0KHQkNCc0JDQoNCP0JjQiyDQl9CU0KDQkNCS0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JzQkNCg0I/QmNCLINCX0KPQl9CQ0J3QkAor0KHQkNCc0JDQoNCP0JjQiNCQINCC0KPQoNCC0JjQndCa0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQgtCj0KDQkNCCCivQodCQ0JzQkNCg0I/QmNCI0JAg0ILQo9Cg0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQkdCe0KjQmtCeCivQodCQ0JzQkNCg0I/QmNCI0JAg0JTQldCh0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQlNCj0KjQkNCdCivQodCQ0JzQkNCg0I/QmNCI0JAg0JPQntCg0JjQptCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0IjQldCb0JXQndCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0InQo9CR0JjQptCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0InQo9CR0JjQptCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQkNCg0JjQiNCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQkNCg0JjQiNCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCb0JDQndCa0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQnNCY0JvQkNCdCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCb0JDQnQor0KHQkNCc0JDQoNCP0JjQiNCQINCc0JjQm9CVCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCg0JrQngor0KHQkNCc0JDQoNCP0JjQiNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQndCV0JHQntCI0KjQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCd0J7QktCY0KbQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCf0JXQotCQ0KAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQoNCQ0JTQlQor0KHQkNCc0JDQoNCP0JjQiNCQINCg0JDQlNCVCivQodCQ0JzQkNCg0I/QmNCI0JAg0KDQkNCd0JrQngor0KHQkNCc0JDQoNCP0JjQiNCQINCh0KLQntCI0JDQnQor0KHQkNCc0JDQoNCP0JjQiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQnNCR0KDQkNCY0JvQniDQkdCg0KPQndCeCivQodCQ0JzQldCmINCR0J7QltCV0J3QmtCQCivQodCQ0JzQmNCYINCQ0JHQkdCQ0KEKK9Ch0JDQnNCe0KfQldCi0JAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ch0JDQnNCe0KfQldCi0JAg0JzQmNCb0JUKK9Ch0JDQnNCe0KfQldCi0JAg0J3QldCS0JXQndCa0JAKK9Ch0JDQnNCe0KfQldCi0JAg0KDQkNCU0J7QnNCY0KAKK9Ch0JDQnNCe0IjQm9CY0Jog0J3QmNCa0J7Qm9CQCivQodCQ0JzQntCa0J7QktCb0JjQiNCQINCc0JDQoNCa0J4KK9Ch0JDQnNCe0JvQntCSINCS0JXQidCa0J4KK9Ch0JDQnNCe0JvQntCS0KfQldCSINCY0JLQkNCd0JrQkAor0KHQkNCc0KHQntCd0J7QkiDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQodCQ0J3Qp9CQ0J3QmNCdINCc0JjQm9CY0JLQntCICivQodCQ0J3QkNCU0JXQoCDQltCY0JLQmtCeCivQodCQ0J3QkNCU0JXQoCDQltCY0JLQmtCeCivQodCQ0J3QkNCU0JXQoCDQiNCV0JvQldCd0JAKK9Ch0JDQndCQ0JTQldCgINCg0JDQlNCe0JLQkNCdCivQodCQ0J3QkNCU0JXQoCDQodCb0J7QkdCe0JTQkNCdCivQodCQ0J3QkNCU0JXQoCDQktCV0KDQkAor0KHQkNCd0JTQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ch0JDQndCU0JjQiyDQmNCS0JDQnQor0KHQkNCd0JTQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ch0JDQndCU0JjQmtCYINCQ0J/QntCh0KLQntCbCivQodCQ0J3QlNCY0JrQmCDQmtCe0KHQotCQCivQodCQ0J3QlNCY0JrQmCDQmtCe0KHQotCQCivQodCQ0J3QmtCe0JLQmNCLINCR0J7QoNCa0J4KK9Ch0JDQndCa0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Ch0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQndCa0J7QktCY0Isg0JzQmNCg0JAKK9Ch0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0KHQkNCd0JrQntCS0JjQiyDQodCQ0JHQmNCd0JAKK9Ch0JDQndCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQkNCd0KLQkNCYINCY0JvQntCd0JAKK9Ch0JDQndCi0J4g0KTQoNCQ0IrQkAor0KHQkNCd0KLQniDQmtCQ0KDQntCJCivQodCQ0J3QotCeINCb0JDQlNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQodCQ0J3QotCeINCX0J7Qm9Ci0JDQnQor0KHQkNCd0KLQniDQl9Ce0JvQotCQ0J0KK9Ch0JDQndCi0J7QktCQ0KYg0JTQoNCQ0JPQkNCdCivQodCQ0J3QotCe0JLQkNCmINCJ0KPQkdCY0J3QmtCQCivQodCQ0J3QotCe0JLQkNCmINCc0JjQm9Ce0KgKK9Ch0JDQndCi0J7QktCQ0KYg0J/QldCi0JDQoAor0KHQkNCd0KLQntCS0JDQpiDQodCi0JXQktCQ0J0KK9Ch0JDQndCi0KDQkNCnINCC0KPQoNCC0JjQndCa0JAKK9Ch0JDQndCi0KDQkNCnINCU0KDQkNCT0J7QidCj0JEKK9Ch0JDQndCi0KDQkNCnINCT0J7QoNCU0JDQndCQCivQodCQ0J3QotCg0JDQpyDQnNCY0JvQkNCdCivQodCQ0J3QotCg0JDQpyDQnNCY0JvQntCg0JDQlAor0KHQkNCd0KLQoNCQ0Kcg0JzQntCc0KfQmNCb0J4KK9Ch0JDQndCi0KDQkNCnINCd0JjQmtCe0JvQkAor0KHQkNCd0KLQoNCQ0Kcg0KDQkNCi0JrQngor0KHQkNCd0KLQoNCQ0Kcg0KHQkNCS0J4KK9Ch0JDQndCi0KDQkNCnINCh0JvQkNCS0JrQngor0KHQkNCf0KPQndCP0JjQiy3QnNCQ0KLQmNCLINCc0JjQoNCI0JDQndCQCivQodCQ0J/Qo9Cd0I/QmNCLINCc0JjQm9CQ0J0KK9Ch0JDQn9Cj0J3Qj9CY0Isg0JzQmNCg0JAKK9Ch0JDQn9Cj0J3Qj9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0JDQn9Cj0J3Qj9CY0IjQkCDQldCg0JbQldCR0JXQogor0KHQkNCf0KPQndCP0JjQiNCQINCc0JDQoNCY0IjQkAor0KHQkNCg0KfQldCSINCd0JDQlNCY0KbQkAor0KHQkNCg0KfQldCSINCg0JDQlNCY0JLQntCICivQodCQ0KDQkNCn0JXQktCY0Isg0KHQoNCR0J7QidCj0JEKK9Ch0JDQoNCQ0KTQmNCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQkNCg0JDQiNCb0JjQiNCQINCU0KDQkNCT0J7QnNCY0KAKK9Ch0JDQoNCQ0JzQkNCd0JTQmNCLINCc0J7QnNCY0KAKK9Ch0JDQoNCQ0JzQkNCd0JTQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0KDQkNCd0JTQkCDQktCQ0KHQmNCJ0JrQkAor0KHQkNCg0JDQn9Ca0JAg0JrQkNCi0JjQptCQCivQodCQ0KDQkNCi0JvQmNCLINCc0JjQm9CQ0J0KK9Ch0JDQoNCQ0KLQm9CY0Isg0KHQoNCR0J7QidCj0JEKK9Ch0JDQoNCQ0JLQntCb0JDQpiDQm9CQ0JfQkNCgINCS0JXQotCV0KDQmNCd0JDQoAor0KHQkNCg0JDQktCe0JvQkNCmINCc0JDQk9CU0JDQm9CV0J3QkAor0KHQkNCg0JDQktCe0JvQkNCmINCc0JjQoNCI0JDQndCQCivQodCQ0KDQkNCS0J7Qm9CQ0KYg0JzQmNCg0IjQkNCd0JAKK9Ch0JDQoNCQ0JLQntCb0JDQpiDQodCY0J3QmNCo0JAg0JTQoAor0KHQkNCg0JDQktCe0JvQkNCmINCh0JvQkNCS0JrQngor0KHQkNCg0JDQktCe0JvQkNCmINCh0JLQldCi0JvQkNCd0JAKK9Ch0JDQoNCY0Isg0ILQo9Cg0JAKK9Ch0JDQoNCY0Isg0JTQkNCd0JjQm9CeCivQodCQ0KDQmNCLINCY0JLQkNCdCivQodCQ0KDQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0JDQoNCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0JDQoNCY0Isg0JzQmNCb0J7QqAor0KHQkNCg0JjQiyDQnNCY0JvQntCI0JUg0JTQoAor0KHQkNCg0JjQiyDQoNCQ0JTQntCoCivQodCQ0KDQmNCLINCg0JDQotCa0J4KK9Ch0JDQoNCY0Isg0KLQmNCR0J7QoAor0KHQkNCg0JjQiyDQktCe0IjQmNCdCivQodCQ0KDQmNCa0JDQoSDQodCd0JXQltCQ0J3QkAor0KHQkNCg0JjQmtCQ0KEg0JLQkNCh0JjQm9CY0IjQlQor0KHQkNCg0JrQkCDQkNCg0J/QkNCUCivQodCQ0KDQmtCQINCc0JjQpdCQ0IkKK9Ch0JDQoNCa0J7QotCY0Isg0KTQoNCQ0IrQkAor0KHQkNCg0JzQldCoINCc0JDQoNCY0IjQkCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KHQkNCg0J7QkiDQm9CQ0JfQkNCgCivQodCQ0KDQktCQ0Kgg0KjQkNCd0JTQntCgCivQodCQ0KDQktCQ0Kgg0IjQkNCd0J7QqAor0KHQkNCg0JLQkNCaINCQ0JvQldCa0KHQkAor0KHQkNCg0JLQkNCdINCU0KDQkNCT0J7QidCj0JEKK9Ch0JDQoNCS0JDQnSDQktCI0JXQoNCQCivQodCQ0KEg0IjQldCd0JUKK9Ch0JDQodCY0Jog0JHQntCg0JjQodCb0JDQkgor0KHQkNCi0JDQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCQ0KLQkNCg0JjQiyDQnNCY0InQmtCeINCU0KAKK9Ch0JDQotCa0JDQndCe0JLQmNCLINCl0JDQkdCY0JEKK9Ch0JDQo9CV0KAg0IjQldCb0JjQptCQCivQodCQ0KPQldCgINCc0JDQoNCT0JjQotCQCivQodCQ0KPQldCgINCf0JDQktCb0JUKK9Ch0JDQo9CV0KAg0KDQntCh0JAKK9Ch0JDQo9CV0KAg0KHQnNCY0InQkNCd0JAKK9Ch0JDQo9Ch0JzQkNCdINCb0JDQodCb0J4KK9Ch0JDQo9CX0JXQoCDQpNCg0JDQitCeCivQodCQ0JLQp9CY0Isg0JTQoNCQ0JPQkNCdCivQodCQ0JLQp9CY0Isg0JzQmNCb0JDQndCQCivQodCQ0JLQp9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQkNCS0KfQmNCLINCc0JjQm9CY0JLQntCICivQodCQ0JLQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCS0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JDQktCQINCk0KDQkNCK0JAKK9Ch0JDQktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JDQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCQ0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCQ0J3QntCS0JjQiyDQiNCe0JLQngor0KHQkNCS0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCQ0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQodCQ0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0JDQktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCQ0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQkNCS0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0JDQktCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQodCQ0JLQkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ch0JDQktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JDQktCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQkAor0KHQkNCS0JDQotCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQkNCS0JDQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCS0JDQotCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQodCQ0JLQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCQ0JLQkNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JDQotCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQodCQ0JLQldCJ0JjQiyDQp9CV0JTQntCc0JjQoAor0KHQkNCS0JXQidCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JXQidCY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JLQldCJ0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCQ0JLQldCJ0JjQiyDQktCV0InQmtCeCivQodCQ0JLQldCh0JrQmCDQnNCY0JvQp9CeCivQodCQ0JLQldCh0JrQmCDQl9Ce0KDQkNCdCivQodCQ0JLQmNCn0JXQktCY0Isg0JPQntCI0JrQngor0KHQkNCS0JjQp9CY0Isg0JPQntCI0JrQngor0KHQkNCS0JjQp9CY0Isg0KHQotCe0IjQkNCdCivQodCQ0JLQmNCn0JjQnSDQidCj0JHQmNCm0JAKK9Ch0JDQktCY0Isg0KfQldCU0J7QnNCY0KAKK9Ch0JDQktCY0Isg0KfQldCU0J4KK9Ch0JDQktCY0Isg0IvQldCi0JrQngor0KHQkNCS0JjQiyDQltCY0JLQmtCQCivQodCQ0JLQmNCLINCW0JjQktCa0JAKK9Ch0JDQktCY0Isg0ILQntCa0JAKK9Ch0JDQktCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQktCY0Isg0ILQntCg0ILQlQor0KHQkNCS0JjQiyDQgtCj0KDQgtCY0IjQkAor0KHQkNCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQkNCS0JjQiyDQkNCb0JXQmtCh0JAKK9Ch0JDQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0JDQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0JDQktCY0Isg0JDQndCQCivQodCQ0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQodCQ0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQodCQ0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Ch0JDQktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ch0JDQktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ch0JDQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0JDQktCY0Isg0JHQntCW0JjQnNCY0KAg0JTQoAor0KHQkNCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ch0JDQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCQ0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JDQktCY0Isg0KbQktCV0KLQkNCd0JrQkAor0KHQkNCS0JjQiyDQptCS0JXQotCa0J4KK9Ch0JDQktCY0Isg0JTQkNCc0IjQkNCdINCU0KAg0JvQldCa0JDQoAor0KHQkNCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0JDQktCY0Isg0JTQkNCg0JAKK9Ch0JDQktCY0Isg0JTQldCI0JDQnQor0KHQkNCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KHQkNCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KHQkNCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KHQkNCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQktCY0Isg0JTQoNCQ0JPQkNCdCivQodCQ0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQkNCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0JDQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQodCQ0JLQmNCLINCU0KDQkNCT0J4KK9Ch0JDQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KHQkNCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JPQldCe0KDQk9CY0IjQlQor0KHQkNCS0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ch0JDQktCY0Isg0JPQntCI0JrQngor0KHQkNCS0JjQiyDQk9Ce0KDQkNCdCivQodCQ0JLQmNCLINCT0J7QodCi0JjQnNCY0KAKK9Ch0JDQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0KHQkNCS0JjQiyDQmNCb0JjQiNCQCivQodCQ0JLQmNCLINCY0JvQmNCI0JAKK9Ch0JDQktCY0Isg0JjQktCQ0J0KK9Ch0JDQktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0KHQkNCS0JjQiyDQiNCV0JvQkAor0KHQkNCS0JjQiyDQiNCV0JvQldCd0JAKK9Ch0JDQktCY0Isg0IjQldCb0JXQndCQCivQodCQ0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQkNCS0JjQiyDQiNCV0JLQotCeCivQodCQ0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQodCQ0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCY0Isg0IjQntCS0JDQnQor0KHQkNCS0JjQiyDQiNCe0JLQkNCdCivQodCQ0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCY0Isg0IjQntCS0JDQnQor0KHQkNCS0JjQiyDQiNCe0JLQkNCdCivQodCQ0JLQmNCLINCa0JDQotCY0KbQkAor0KHQkNCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0JDQktCY0Isg0JrQntCh0KLQkAor0KHQkNCS0JjQiyDQmtCh0JXQndCY0IjQkAor0KHQkNCS0JjQiyDQm9CQ0JfQkNCgCivQodCQ0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0JDQktCY0Isg0JvQldCd0JrQkCDQlNCgCivQodCQ0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQkNCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0JDQktCY0Isg0InQo9CR0JjQqNCQCivQodCQ0JLQmNCLINCJ0KPQkdCY0KbQkAor0KHQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQkNCS0JjQiyDQidCj0JHQntCh0JvQkNCSCivQodCQ0JLQmNCLINCb0KPQmtCQCivQodCQ0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JDQktCY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQkNCS0JjQiyDQnNCQ0KDQmNCd0JAKK9Ch0JDQktCY0Isg0JzQkNCg0JjQndCQCivQodCQ0JLQmNCLINCc0JDQoNCa0J4KK9Ch0JDQktCY0Isg0JzQldCP0J4KK9Ch0JDQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ch0JDQktCY0Isg0JzQmNCb0JDQnQor0KHQkNCS0JjQiyDQnNCY0JvQkNCdCivQodCQ0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0JDQktCY0Isg0JzQmNCb0JDQnQor0KHQkNCS0JjQiyDQnNCY0JvQldCd0JAKK9Ch0JDQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0KHQkNCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0KHQkNCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQodCQ0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0JDQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQkNCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQkNCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQkNCS0JjQiyDQnNCY0JvQmtCeCivQodCQ0JLQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQodCQ0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0JDQktCY0Isg0JzQmNCb0J7QqAor0KHQkNCS0JjQiyDQnNCY0JvQntCoCivQodCQ0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0JDQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0KHQkNCS0JjQiyDQnNCY0JvQntCh0JDQkgor0KHQkNCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQkNCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQkNCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQkNCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQkNCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQkNCS0JjQiyDQnNCY0KDQmtCeCivQodCQ0JLQmNCLINCc0JjQoNCa0J4KK9Ch0JDQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCQ0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0JDQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0JDQktCY0Isg0J3QkNCU0JAKK9Ch0JDQktCY0Isg0J3QkNCU0JXQltCU0JAKK9Ch0JDQktCY0Isg0J3QkNCi0JDQqNCQCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQndCQ0JQKK9Ch0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCQ0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQkNCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCQ0JLQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0J3QntCS0J4KK9Ch0JDQktCY0Isg0J7Qm9CT0JAKK9Ch0JDQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0JDQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0JDQktCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQodCQ0JLQmNCLINCf0JDQktCb0JUKK9Ch0JDQktCY0Isg0J/QldCg0JAKK9Ch0JDQktCY0Isg0J/QldCi0JDQoAor0KHQkNCS0JjQiyDQn9CV0KLQkNCgCivQodCQ0JLQmNCLINCf0JXQotCQ0KAKK9Ch0JDQktCY0Isg0J/QldCi0JDQoAor0KHQkNCS0JjQiyDQn9Cb0JDQndCY0J3QmtCQCivQodCQ0JLQmNCLINCf0KDQldCU0KDQkNCTCivQodCQ0JLQmNCLINCf0KDQntCa0J7Qn9CY0IjQlQor0KHQkNCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Ch0JDQktCY0Isg0KDQkNCU0JjQktCe0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JDQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JDQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JDQktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KHQkNCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQkNCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQkNCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQkNCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQkNCS0JjQiyDQoNCQ0JrQmNCLCivQodCQ0JLQmNCLINCg0JDQotCa0J4KK9Ch0JDQktCY0Isg0KDQkNCi0JrQngor0KHQkNCS0JjQiyDQoNCV0InQkCDQlNCgCivQodCQ0JLQmNCLINCg0JXQndCQ0KLQkAor0KHQkNCS0JjQiyDQoNCe0JrQodCQ0J3QlNCQCivQodCQ0JLQmNCLINCg0KPQltCY0KbQkAor0KHQkNCS0JjQiyDQodCQ0KjQkAor0KHQkNCS0JjQiyDQodCQ0JLQkCDQkNCU0JLQntCa0JDQogor0KHQkNCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JjQiyDQodCY0JzQldCj0J0g0JTQmNCf0Jsg0JjQndCTCivQodCQ0JLQmNCLINCh0JjQndCY0KjQkAor0KHQkNCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0JDQktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KHQkNCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQodCQ0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JDQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQkNCS0JjQiyDQodCc0JjQidCQCivQodCQ0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQodCQ0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQodCQ0JLQmNCLINCh0KDQgtCQ0J0KK9Ch0JDQktCY0Isg0KHQoNCR0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQodCg0JXQotCQCivQodCQ0JLQmNCLINCh0KLQldCS0JDQnQor0KHQkNCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQodCQ0JLQmNCLINCh0KLQntCI0JDQnQor0KHQkNCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JDQktCY0Isg0KHQotCe0IjQkNCdCivQodCQ0JLQmNCLINCh0JLQldCd0JrQkAor0KHQkNCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCQ0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JDQktCY0Isg0KLQkNCi0J7QnNCY0KAKK9Ch0JDQktCY0Isg0KLQldCe0JTQntCgCivQodCQ0JLQmNCLINCi0JjQndCa0JAKK9Ch0JDQktCY0Isg0KLQntCU0J7QoAor0KHQkNCS0JjQiyDQotCe0JTQntCgCivQodCQ0JLQmNCLINCi0J7QlNCe0KAKK9Ch0JDQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQo9Cg0J7QqAor0KHQkNCS0JjQiyDQktCV0InQmtCeCivQodCQ0JLQmNCLINCS0JXQoNCY0KbQkAor0KHQkNCS0JjQiyDQktCV0KDQmNCm0JAKK9Ch0JDQktCY0Isg0JLQldCh0J3QkAor0KHQkNCS0JjQiyDQktCY0JTQntCh0JDQkgor0KHQkNCS0JjQiyDQktCY0KLQntCc0JjQoAor0KHQkNCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQktCY0Isg0JLQntCI0JAKK9Ch0JDQktCY0Isg0JLQo9Ca0JDQnQor0KHQkNCS0JjQiyDQktCj0JrQntCi0JAKK9Ch0JDQktCY0Isg0JfQntCg0JDQnQor0KHQkNCS0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0JDQktCY0Isg0JfQntCg0JDQnQor0KHQkNCS0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JLQmNCLINCX0J7QoNCQCivQodCQ0JLQmNCdINCW0JjQktCa0JAKK9Ch0JDQktCY0J0g0JbQmNCS0JrQngor0KHQkNCS0JjQnSDQgtCe0KDQgtCVCivQodCQ0JLQmNCdINCC0KPQoNCC0JjQndCa0JAKK9Ch0JDQktCY0J0g0JHQldCg0JjQodCb0JDQkgor0KHQkNCS0JjQnSDQkdCY0InQkNCd0JAg0JTQoAor0KHQkNCS0JjQnSDQkdCe0KDQkAor0KHQkNCS0JjQnSDQlNCQ0J3QmNCm0JAKK9Ch0JDQktCY0J0g0JTQoNCQ0JPQntCJ0KPQkQor0KHQkNCS0JjQnSDQlNCg0JDQk9Ce0JzQmNCgCivQodCQ0JLQmNCdINCU0KDQldCd0JrQkAor0KHQkNCS0JjQnSDQlNCj0KjQkNCdCivQodCQ0JLQmNCdINCU0KPQqNCQ0J0KK9Ch0JDQktCY0J0g0IjQntCS0JDQnQor0KHQkNCS0JjQnSDQiNCe0JLQkNCdCivQodCQ0JLQmNCdINCI0KPQm9Ca0JAKK9Ch0JDQktCY0J0g0JvQkNCh0JvQngor0KHQkNCS0JjQnSDQm9CQ0JfQkNCgCivQodCQ0JLQmNCdINCJ0KPQkdCY0J3QmtCQCivQodCQ0JLQmNCdINCc0JDQk9CU0JAKK9Ch0JDQktCY0J0g0JzQmNCb0JXQktCQCivQodCQ0JLQmNCdINCc0JjQm9CY0KbQkAor0KHQkNCS0JjQnSDQnNCY0JvQmtCQCivQodCQ0JLQmNCdINCc0JjQm9Ce0KDQkNCUCivQodCQ0JLQmNCdINCc0JjQm9Ce0KDQkNCUCivQodCQ0JLQmNCdINCc0JjQm9Ce0JLQkNCdCivQodCQ0JLQmNCdINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCe0JXQpgor0KHQkNCS0JjQnSDQnNCY0KDQiNCQ0J3QkAor0KHQkNCS0JjQnSDQnNCY0KDQiNCQ0J3QkAor0KHQkNCS0JjQnSDQndCY0JrQntCb0JAKK9Ch0JDQktCY0J0g0J/QkNCS0JvQlQor0KHQkNCS0JjQnSDQn9Cg0JXQlNCg0JDQkwor0KHQkNCS0JjQnSDQoNCQ0JTQmNCS0J7QiAor0KHQkNCS0JjQnSDQodCQ0JLQkAor0KHQkNCS0JjQnSDQodCd0JXQltCQ0J3QkAor0KHQkNCS0JjQnSDQodCf0JjQoNCY0JTQntCdCivQodCQ0JLQmNCdINCh0KLQkNCd0JAKK9Ch0JDQktCY0J0g0KLQntCU0J7QoAor0KHQkNCS0JjQnSDQotCe0JTQntCgCivQodCQ0JLQmNCdINCS0JXQoNCY0KbQkAor0KHQkNCS0JjQnSDQktCj0JrQntCh0JDQktCQCivQodCQ0JLQmNCdINCX0J7QoNCQCivQodCQ0JLQmtCV0InQmNCdINCh0KLQldCS0JDQnQor0KHQkNCS0JrQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQodCQ0JLQmtCe0JIg0JjQm9CY0IjQkAor0KHQkNCS0JrQntCSINCc0JjQm9CQ0J0KK9Ch0JDQktCa0J7QkiDQotCe0JTQntCgCivQodCQ0JLQmtCe0JIg0JLQldCg0JAKK9Ch0JDQktCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQodCQ0JLQmtCe0JIg0JfQntCg0JDQnQor0KHQkNCS0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KHQkNCS0JrQntCS0JjQiyDQiNCQ0IrQkAor0KHQkNCS0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQkNCS0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQodCQ0JLQmtCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0KHQkNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JrQntCS0JjQiyDQodCQ0JLQngor0KHQkNCS0JrQntCS0JjQiyDQodCi0JDQqNCQCivQodCQ0JLQmtCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQodCQ0JLQmtCe0JLQmNCLINCS0KPQmtCQCivQodCQ0JLQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCQ0JLQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KHQkNCS0J7QktCY0Isg0KTQkNCi0JjQnNCQCivQodCQ0JLQntCS0JjQiyDQidCj0JHQngor0KHQkNCS0J7QktCY0Isg0JvQo9Ca0JAKK9Ch0JDQktCe0JLQmNCLINCd0JXQndCQ0JQKK9Ch0JDQktCe0JLQmNCLINCg0JDQlNCVCivQodCQ0JLQoy3QnNCY0KXQkNCI0JvQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0JDQktCjINCi0JjQkdCYCivQodCQ0JLQo9CJ0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQkNCX0JTQkNCd0JjQiyDQgtCe0JrQkAor0KHQkNCX0JTQkNCd0JjQiyDQn9CQ0JLQm9CVCivQodCQ0JfQlNCQ0J3QmNCLINCh0KLQldCS0JDQnQor0KHQldCn0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQodCV0KfQldCdINCc0JjQm9CY0JLQntCICivQodCV0KfQldCdINCh0JLQldCi0J7Ql9CQ0KAg0JTQoAor0KHQldCn0JXQitCYINCY0JHQntCJ0JAKK9Ch0JXQp9CYINCY0KjQotCS0JDQnQor0KHQldCn0JjQktCQ0J3QntCS0JjQiyDQm9CV0J/QqNCQCivQodCV0KfQmNCS0JDQndCe0JLQmNCLINCb0JXQn9Co0JAKK9Ch0JXQp9CY0JLQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0KHQldCn0KPQiNCh0JrQmCDQkNCd0JTQoNCY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQp9Cj0IjQodCa0Jgg0JTQkNCd0JjQm9CeCivQodCV0KfQo9CI0KHQmtCYINCc0JvQkNCU0JXQnQor0KHQldCn0KPQiNCh0JrQmCDQoNCQ0JTQmNCS0J7QiAor0KHQldCR0JDQodCi0JjQkNCdINCV0KDQndCVCivQodCV0JHQkNCh0KLQmNCQ0J0g0IjQntCl0JDQndCQCivQodCV0JHQkNCh0KLQmNCI0JDQnSDQl9Cb0JDQotCa0J4KK9Ch0JXQkdCV0JvQldCU0Jgg0J/QkNCS0JvQlQor0KHQldCR0JXQitCYINCk0JXQoNCV0J3Qpgor0KHQldCR0JXQitCYINCk0KDQkNCK0JAKK9Ch0JXQkdCY0KjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQldCR0JjQqNCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQodCV0JTQldCIINCI0JDQndCV0JcKK9Ch0JXQlNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JXQlNCV0KAg0JjQktCY0KbQkAor0KHQldCU0JXQoCDQodCb0JDQktCa0J4KK9Ch0JXQlNCV0KAg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCU0JXQoNCb0JDQndCUINCC0J7QoNCC0JUKK9Ch0JXQlNCb0JDQp9CV0Jog0KHQkNCg0JAKK9Ch0JXQlNCb0JDQmiDQkNCd0JTQoNCQ0KgKK9Ch0JXQlNCb0JDQnSDQmNCb0JjQiNCQCivQodCV0JTQm9CQ0J0g0JzQkNCd0J7QiNCb0J4KK9Ch0JXQlNCb0JDQnSDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0KHQldCU0JvQkNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JXQlNCb0JDQnSDQodCQ0JLQkAor0KHQldCU0JvQkNCgINCY0JvQmNCI0JAKK9Ch0JXQlNCb0JDQoCDQnNCQ0J3QlQor0KHQldCU0JvQkNCgINCc0JjQm9CY0KbQkAor0KHQldCU0JvQkNCgINCc0JjQm9CY0KbQkAor0KHQldCU0JvQkNCgINCd0JDQlNCQCivQodCV0JTQnNCQ0Jog0JTQoNCQ0JPQkNCdCivQodCV0JTQnNCQ0Jog0JLQm9CQ0JTQngor0KHQldCk0KfQmNCaINCW0KPQltCQ0J3QkAor0KHQldCk0JXQoCDQnNCQ0KDQmNCI0JAKK9Ch0JXQpNCV0KAg0KHQkNCa0JjQkQor0KHQldCk0JXQoCDQodCV0J3QkNCUCivQodCV0KTQldCg0J7QktCY0Isg0KHQo9CQ0JQKK9Ch0JXQkyDQltCj0JbQkNCd0JAKK9Ch0JXQkyDQmNCc0KDQlQor0KHQldCT0JXQlNCYINCR0KDQkNCd0JrQkAor0KHQldCT0JXQlNCYINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQldCT0JXQlNCYINCV0JLQk9CV0J3QmNCI0JUKK9Ch0JXQk9CV0JTQmCDQmNCS0JjQptCQCivQodCV0JPQldCU0Jgg0IjQntCh0JjQnwor0KHQldCT0JXQlNCYINCI0J7QktCQ0J0KK9Ch0JXQk9CV0JTQmCDQiNCj0JvQmNCI0JDQnQor0KHQldCT0JXQlNCYINCa0JDQoNCe0IkKK9Ch0JXQk9CV0JTQmC3QmtCe0JLQkNCn0JXQkiDQkdCg0JDQndCa0JAg0JTQoAor0KHQldCT0JXQlNCYINCa0KHQldCd0JjQiNCQCivQodCV0JPQldCU0Jgg0JvQldCe0J3QkAor0KHQldCT0JXQlNCYINCc0JDQoNCY0IjQkAor0KHQldCT0JXQlNCYINCc0JXQm9CY0KLQkAor0KHQldCT0JXQlNCYINCc0JjQm9CV0J3QkAor0KHQldCT0JXQlNCYINCh0JvQkNCS0JjQptCQCivQodCV0JPQldCU0Jgg0KHQotCV0JLQkNCdCivQodCV0JPQldCU0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCT0JXQlNCY0J3QkNCmINCU0KPQqNCa0J4KK9Ch0JXQk9CV0JTQmNCd0JDQpiDQndCQ0KLQkNCb0JjQiNCQCivQodCV0JPQldCU0JjQndCQ0KYg0JfQlNCg0JDQktCa0J4KK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCQ0KDQmtCQ0JTQmNCI0JUKK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCR0J7QiNCa0J4KK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCd0JXQodCi0J7QoAor0KHQldCT0JXQlNCY0J3QodCa0Jgg0KHQkNCS0JAKK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCi0J7QnNCQCivQodCV0JPQldCU0JjQndCh0JrQmCDQktCY0KLQntCc0JjQoAor0KHQldCT0Jgg0JvQkNCh0JvQngor0KHQldCT0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCV0JPQmNCLINCg0JDQndCa0J4KK9Ch0JXQmNCX0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0JXQmtCQ0Kcg0J/QldCi0JDQoAor0KHQldCa0JUg0JDQoNCf0JDQlAor0KHQldCa0JUg0JXQktCQCivQodCV0JrQlSDQmNCb0JjQiNCQCivQodCV0JrQlSDQiNCe0KHQmNCfCivQodCV0JrQlSDQmtCQ0KLQkNCg0JjQndCQCivQodCV0JrQlSDQodCi0JXQktCQ0J0KK9Ch0JXQmtCVINCh0KLQldCS0JDQnQor0KHQldCa0JXQiSDQiNCQ0J3QmAor0KHQldCa0JXQiSDQiNCe0KHQmNCfCivQodCV0JrQldCJINCc0JDQoNCY0IjQkAor0KHQldCa0JXQiSDQoNCj0JbQmNCm0JAKK9Ch0JXQmtCV0KDQldCoINCo0JDQndCU0J7QoAor0KHQldCa0JXQoNCV0Kgg0ILQo9Cb0JAKK9Ch0JXQmtCV0KDQldCoINCU0JXQndCV0KgKK9Ch0JXQmtCV0KDQldCoINCV0KLQldCbCivQodCV0JrQldCg0JXQqCDQpNCV0KDQldCd0KYg0JTQoCDQm9CV0JrQkNCgCivQodCV0JrQldCg0JXQqCDQpNCV0KDQldCd0KYKK9Ch0JXQmtCV0KDQldCoINCY0KjQotCS0JDQnQor0KHQldCa0JXQoNCV0Kgg0JjQqNCi0JLQkNCdCivQodCV0JrQldCg0JXQqCDQmNCg0JXQndCQCivQodCV0JrQldCg0JXQqCDQiNCe0JbQldCkCivQodCV0JrQldCg0JXQqCDQiNCj0JvQmNCI0JDQndCQCivQodCV0JrQldCg0JXQqCDQiNCj0JvQmNCI0JAKK9Ch0JXQmtCV0KDQldCoINCa0JDQoNCe0IkKK9Ch0JXQmtCV0KDQldCoINCa0JDQotCY0KbQkAor0KHQldCa0JXQoNCV0Kgg0JvQkNCI0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQmtCV0KDQldCoINCd0JDQndCU0J7QoAor0KHQldCa0JXQoNCV0Kgg0KHQotCV0JLQkNCdCivQodCV0JrQldCg0JXQqCDQotCY0JHQntCgCivQodCV0JrQldCg0JXQqCDQktCV0KDQkAor0KHQldCa0JXQoNCV0JfQntCS0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQldCg0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JXQmtCV0KDQo9CoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCV0JrQldCg0KPQqCDQidCj0JHQmNCm0JAKK9Ch0JXQmtCV0KDQo9CoINCc0JjQm9Ca0JjQptCQCivQodCV0JrQldCg0KPQqCDQnNCY0KDQiNCQ0J3QkAor0KHQldCa0JXQoNCj0Kgg0J/QkNCS0JvQlQor0KHQldCa0JXQoNCj0Kgg0J/QldCi0JDQoAor0KHQldCa0JXQoNCj0Kgg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCV0JrQldCg0KPQqCDQktCb0JDQlNCY0JzQmNCgCivQodCV0JrQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQldCa0JjQptCa0Jgg0JXQnNCY0JvQmNCI0JAKK9Ch0JXQmtCY0KbQmtCYINCY0KHQmNCU0J7QoAor0KHQldCa0JjQptCa0Jgg0JvQkNCX0JDQoAor0KHQldCa0JjQptCa0Jgg0JzQkNCg0JjQptCQCivQodCV0JrQmNCm0JrQmCDQnNCY0JvQntCg0JDQlAor0KHQldCa0JjQptCa0Jgg0J/QldCi0JDQoAor0KHQldCa0JjQptCa0Jgg0JLQldCJ0JAKK9Ch0JXQmtCY0Jcg0JbQmNCS0JrQngor0KHQldCa0JjQlyDQmNCb0JjQiNCQCivQodCV0JrQmNCXINCI0J7QktCQ0J0KK9Ch0JXQmtCY0Jcg0JzQldCb0JDQndCY0IjQkAor0KHQldCa0JjQlyDQn9CV0KLQkNCgCivQodCV0JrQmNCXINCf0JXQotCQ0KAKK9Ch0JXQmtCY0Jcg0KDQkNCU0JjQktCe0IgKK9Ch0JXQmtCY0Jcg0KHQntCK0JAKK9Ch0JXQmtCe0KjQkNCdINCJ0KPQkdCY0KbQkAor0KHQldCa0J7QqNCQ0J0g0JzQkNCg0JjQndCQCivQodCV0JrQntCbINCc0JjQm9Ca0JAKK9Ch0JXQmtCe0KHQmtCYINCI0J7QnNCn0JUKK9Ch0JXQmtCe0JLQodCa0Jgg0KDQkNCU0JUKK9Ch0JXQmtCg0JXQiiDQiNCe0JbQldCkCivQodCV0JrQo9Cb0JjQiyDQp9CV0JTQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQltCQ0KDQmtCeCivQodCV0JrQo9Cb0JjQiyDQltCY0JLQmtCeCivQodCV0JrQo9Cb0JjQiyDQltCY0JLQmtCeCivQodCV0JrQo9Cb0JjQiyDQltCY0JLQntCI0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQmtCj0JvQmNCLINCC0J7QoNCC0JUKK9Ch0JXQmtCj0JvQmNCLINCC0J7QoNCC0JUKK9Ch0JXQmtCj0JvQmNCLINCC0KPQoNCC0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQgtCj0KDQkNCCCivQodCV0JrQo9Cb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQldCa0KPQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JXQmtCj0JvQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCV0JrQo9Cb0JjQiyDQkNCg0KHQldCd0JjQiNCVCivQodCV0JrQo9Cb0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQmtCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQldCa0KPQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JXQmtCj0JvQmNCLINCU0JDQndCVCivQodCV0JrQo9Cb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KHQldCa0KPQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9Ch0JXQmtCj0JvQmNCLINCU0JXQodCQ0J3QmtCQCivQodCV0JrQo9Cb0JjQiyDQlNCV0KHQkNCd0JrQkAor0KHQldCa0KPQm9CY0Isg0JTQntCh0KLQkAor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQkNCdCivQodCV0JrQo9Cb0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JjQm9CY0IjQkAor0KHQldCa0KPQm9CY0Isg0JjQm9CY0IjQkAor0KHQldCa0KPQm9CY0Isg0JjQktCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCY0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCb0JDQl9CQ0KAKK9Ch0JXQmtCj0JvQmNCLINCJ0JjQidCQ0J3QkAor0KHQldCa0KPQm9CY0Isg0InQmNCJ0JDQndCQCivQodCV0JrQo9Cb0JjQiyDQidCj0JHQmNCo0JAKK9Ch0JXQmtCj0JvQmNCLINCJ0KPQkdCY0KbQkAor0KHQldCa0KPQm9CY0Isg0InQo9CR0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQidCj0JHQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JDQoNCY0IjQkAor0KHQldCa0KPQm9CY0Isg0JzQkNCg0JjQiNCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0IvQngor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JXQndCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQldCd0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0JXQmtCj0JvQmNCLINCc0JjQidCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQldCa0KPQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JXQmtCj0JvQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCc0JjQntCU0KDQkNCTCivQodCV0JrQo9Cb0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQldCa0KPQm9CY0Isg0JzQmNCg0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQoNCI0JDQndCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQldCa0KPQm9CY0Isg0JzQmNCg0JrQngor0KHQldCa0KPQm9CY0Isg0J3QldCT0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQndCV0JzQkNCK0JAKK9Ch0JXQmtCj0JvQmNCLINCe0JvQk9CQCivQodCV0JrQo9Cb0JjQiyDQntCb0JjQktCV0KDQkAor0KHQldCa0KPQm9CY0Isg0J/QkNCS0JvQlQor0KHQldCa0KPQm9CY0Isg0J/QkNCS0JvQlQor0KHQldCa0KPQm9CY0Isg0J/QldCi0JDQoCDQlNCgCivQodCV0JrQo9Cb0JjQiyDQn9CV0KLQkNCgCivQodCV0JrQo9Cb0JjQiyDQn9CV0KLQmtCeCivQodCV0JrQo9Cb0JjQiyDQoNCQ0JTQlQor0KHQldCa0KPQm9CY0Isg0KDQkNCU0JjQktCe0Igg0JzQoAor0KHQldCa0KPQm9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JXQmtCj0JvQmNCLINCg0JDQlNCe0KHQkNCSCivQodCV0JrQo9Cb0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCh0JjQnNCeCivQodCV0JrQo9Cb0JjQiyDQodCb0JDQktCa0J4KK9Ch0JXQmtCj0JvQmNCLINCh0JzQmNCJ0JAKK9Ch0JXQmtCj0JvQmNCLINCh0J/QkNCh0JAKK9Ch0JXQmtCj0JvQmNCLINCh0J/QkNCh0J4KK9Ch0JXQmtCj0JvQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KHQldCa0KPQm9CY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0JXQmtCj0JvQmNCLINCh0KLQldCS0JDQnQor0KHQldCa0KPQm9CY0Isg0KHQotCV0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQodCi0J7QiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCV0JrQo9Cb0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JXQmtCj0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JXQmtCj0JvQmNCLINCi0JjQpdCe0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQo9Ch0KLQmNCI0JDQndCa0JAKK9Ch0JXQmtCj0JvQmNCLINCS0JDQm9CV0J3QotCY0J3QkAor0KHQldCa0KPQm9CY0Isg0JLQldCd0J4KK9Ch0JXQmtCj0JvQmNCLINCS0JjQlNCe0IjQlQor0KHQldCa0KPQm9CY0Isg0JLQmNCd0JrQngor0KHQldCa0KPQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JLQm9CQ0JTQngor0KHQldCa0KPQm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQldCa0KPQm9CY0Isg0JfQntCg0JDQnQor0KHQldCa0KPQm9CY0Isg0JfQntCg0JDQnQor0KHQldCa0KPQm9CY0Isg0JfQntCg0JAKK9Ch0JXQmtCj0JvQmNCLINCX0J7QoNCY0KbQkAor0KHQldCa0KPQm9Ce0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQodCV0JrQo9Cb0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9Ch0JXQmtCj0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQldCa0KPQm9Ce0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ch0JXQmtCj0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0JXQmyDQkNCd0JAKK9Ch0JXQmyDQiNCe0JbQldCkCivQodCV0Jsg0JvQkNCU0JjQodCb0JDQkgor0KHQldCb0JDQmiDQiNCe0JLQkNCdCivQodCV0JvQkNCaINCI0J7QktCeCivQodCV0JvQkNCaINCc0JjQoNCI0JDQndCQCivQodCV0JvQkNCaINCh0KLQldCS0JDQnQor0KHQldCb0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUg0JTQoCDQm9CV0JrQkNCgCivQodCV0JvQkNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAg0JTQoCDQm9CV0JrQkNCgCivQodCV0JvQkNCa0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Ch0JXQm9CQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCV0JvQkNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0JXQm9CQ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCV0JvQkNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQodCV0JvQkNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQldCb0JDQmtCe0JLQmNCLINCh0KDQldCL0JrQngor0KHQldCb0JDQmtCe0JLQmNCLINCS0J7QiNCQCivQodCV0JvQldCoINCa0JDQoNCe0IkKK9Ch0JXQm9CV0Kgg0JrQkNCg0J7QiQor0KHQldCb0JXQqCDQnNCY0KXQkNCI0JvQngor0KHQldCb0JXQqNCYINCV0JvQl9CQCivQodCV0JvQldCo0Jgg0JXQotCV0JvQmtCQCivQodCV0JvQldCo0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQldCb0JXQqNCYINCb0JDQodCb0J4KK9Ch0JXQm9CV0KjQmCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ch0JXQm9CV0KjQmCDQnNCQ0KDQmNCI0JAKK9Ch0JXQm9CV0KjQmCDQn9CQ0JsKK9Ch0JXQm9CV0KjQmCDQodCi0JXQktCQ0J0KK9Ch0JXQm9CV0KjQmCDQktCY0J3QptCVCivQodCV0JvQldCo0Jgg0JfQntCb0KLQkNCdCivQodCV0JvQldCd0JAg0IjQldCb0JXQndCQCivQodCV0JvQldCd0JAg0J3QmNCa0J7Qm9CQCivQodCV0JvQldCd0JjQiyDQkNCd0JrQmNCm0JAKK9Ch0JXQm9CYINCV0KLQldCb0JrQkAor0KHQldCb0Jgg0JjQqNCi0JLQkNCdINCU0KAKK9Ch0JXQm9CYINCc0JjQmtCb0J7QqAor0KHQldCb0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCV0JvQmNCLINCc0JjQi9CeCivQodCV0JvQmNCLINCc0JjQm9Ce0KgKK9Ch0JXQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JXQm9CY0KUg0JTQkNCd0JjQm9CeCivQodCV0JvQmNClINCU0KDQkNCT0J4KK9Ch0JXQm9CY0Jog0IjQntCh0JjQnwor0KHQldCb0JjQmiDQm9CQ0JTQmNCh0JvQkNCSCivQodCV0JvQmNCc0J7QktCY0Isg0JzQo9Ch0KLQkNCk0JAKK9Ch0JXQm9CY0J3Qk9CV0KAg0JPQkNCR0KDQmNCI0JXQm9CQCivQodCV0InQkNCa0J7QkiDQndCQ0JTQkAor0KHQldCb0JzQkNCdINCl0JDQmtCY0IjQkAor0KHQldCb0KHQmtCYINCQ0J3QkAor0KHQldCb0KHQmtCYINCc0JDQoNCY0IjQkAor0KHQldCb0JLQldCgINCQ0JvQmNCd0JDQgtCYCivQodCV0JzQkNCdINCI0J7QkNCa0JjQnAor0KHQldCc0JXQlNCV0KAg0JTQmNCc0JjQotCg0JjQiNCVCivQodCV0JzQldCU0JXQoCDQodCj0JfQkNCd0JAKK9Ch0JXQnNCV0JTQldCgINCh0KPQl9CQ0J3QkAor0KHQldCc0JXQmiDQp9CQ0JHQkAor0KHQldCc0JXQmiDQp9CY0JvQkAor0KHQldCc0JXQndCh0JrQmCDQmtCe0KDQndCV0JvQmNCI0JAKK9Ch0JXQnNCV0KDQldCU0Jgg0IjQntCW0JXQpAor0KHQldCc0JXQoNCV0JTQmCDQktCV0KDQkAor0KHQldCc0JjQlyDQmtCQ0KLQmNCm0JAKK9Ch0JXQnNCY0JfQntCS0JjQiyDQodCQ0JTQmNCaCivQodCV0JzQndCY0KYg0KDQo9CU0J7Qm9CkINCU0KAKK9Ch0JXQnSDQnNCQ0KDQotCY0J0KK9Ch0JXQndCn0KPQmiDQodCb0JDQktCY0KbQkAor0KHQldCd0KfQo9CaINCh0KLQldCS0J4KK9Ch0JXQndCL0JDQndCh0JrQmCDQiNCj0JvQmNCI0JAKK9Ch0JXQndCL0JDQndCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Ch0JXQndCL0JDQndCh0JrQmCDQndCQ0JTQkAor0KHQldCd0IvQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9Ch0JXQndCL0JDQndCh0JrQmCDQl9Ce0KDQkAor0KHQldCd0JDQqNCYINCb0JDQlNCY0KHQm9CQ0JIKK9Ch0JXQndCm0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQldCd0JTQldCg0JDQmiDQgtCj0KDQkAor0KHQldCd0JTQldCg0JDQmiDQldCj0JPQldCdCivQodCV0J3QlNCV0KDQkNCaINCb0JjQlNCY0IjQkAor0KHQldCd0JTQldCg0JDQmiDQnNCV0JvQkNCd0JjQiNCQCivQodCV0J3QlNCV0KDQkNCaINCc0JjQoNCa0J4KK9Ch0JXQndCU0JXQoNCQ0Jog0J3QmNCa0J7Qm9CQCivQodCV0J3QlNCV0KDQkNCaINCf0JXQotCQ0KAKK9Ch0JXQndCU0JXQoNCQ0Jog0KHQmNCb0JLQldCh0KLQldCgCivQodCV0J3QldCo0Jgg0IjQldCb0JXQndCQCivQodCV0J3QmNCLINCQ0J3QmNCm0JAKK9Ch0JXQndCY0Isg0JjQktCQ0J3QmtCQCivQodCV0J3QmNCLINCb0JDQl9CQ0KAKK9Ch0JXQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JXQndCY0Isg0KDQmNCh0KLQngor0KHQldCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCV0IrQldCoINCo0JDQndCU0J7QoAor0KHQldCK0Jgg0JDQk9Ce0KjQotCe0J0g0JTQoCDQm9CV0JrQkNCgCivQodCV0IrQmCDQmNCb0J7QndCQCivQodCV0IrQmCDQmNCg0JXQndCQCivQodCV0J3QotCVINCJ0KPQkdCY0KbQkAor0KHQldCd0KLQlSDQn9CV0KLQkNCgCivQodCV0J3QotCY0J0g0KfQldCU0J7QnNCY0KAKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCC0J7QoNCC0JUKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0JDQoNCa0J4KK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0JjQm9CQ0J0KK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0JjQm9Ce0KgKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0J7QnNCY0KAKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCh0JDQktCQCivQodCV0J3QotCY0JLQkNCd0JDQpiDQodCS0JXQotCb0JDQndCQCivQodCV0J3QotCY0JLQkNCd0JDQpiDQotCe0JTQntCgCivQodCV0J3QotCY0JLQkNCd0JDQpiDQktCV0KHQndCQCivQodCV0J3QotCc0JDQoNCi0J7QndCYINCk0JXQoNCV0J3Qpgor0KHQldCfINCQ0J3QotCQ0JsKK9Ch0JXQnyDQlNCV0JbQlSDQlNCgINCb0JXQmtCQ0KAKK9Ch0JXQnyDQpNCV0KDQldCd0KYKK9Ch0JXQny3QktCQ0KDQk9CQINCV0JzQmNCb0JjQiNCQCivQodCV0KDQkNCk0JjQnNCe0JIg0JrQmNCg0JjQmwor0KHQldCg0JDQotCb0JjQiyDQp9CV0JTQntCc0JjQoAor0KHQldCg0JDQotCb0JjQiyDQlNCQ0KDQmtCQCivQodCV0KDQkNCi0JvQmNCLINCT0J7Qm9Cj0JEKK9Ch0JXQoNCQ0KLQm9CY0Isg0JzQmNCg0JDQqAor0KHQldCg0JDQotCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQldCg0JDQotCb0JjQiyDQktCV0JvQmNCc0JjQoCDQlNCgCivQodCV0KDQkNCi0JvQmNCLINCX0J7QoNCQ0J0KK9Ch0JXQoNCU0JAg0KjQkNCd0JTQntCgCivQodCV0KDQlNCQ0KAg0JTQkNCd0JjQptCQCivQodCV0KDQlNCQ0KAg0JjQm9CY0IjQkAor0KHQldCg0JTQkNCgINCc0JDQoNCQCivQodCV0KDQlNCQ0KAg0JzQm9CQ0JTQldCdCivQodCV0KDQlNCQ0KAg0J3QldCU0JXQidCa0J4KK9Ch0JXQoNCU0JDQoCDQn9CV0KLQkNCgCivQodCV0KDQlNCQ0KAg0J/QldCi0JDQoAor0KHQldCg0JTQkNCg0JXQktCY0Isg0IvQkNCX0JjQnAor0KHQldCg0JTQkNCg0JXQktCY0Isg0JPQmNCX0JXQm9CQCivQodCV0KDQldCo0Jgg0KTQldCg0JXQndCmCivQodCV0KDQldCo0Jgg0JjQqNCi0JLQkNCdCivQodCV0KDQldCo0Jgg0JvQkNCh0JvQngor0KHQldCg0JXQqNCYINCg0J7Ql9CQ0JvQmNCI0JAKK9Ch0JXQoNCV0KjQmCDQodCi0JXQktCQ0J0KK9Ch0JXQoNCV0KjQmCDQotCY0JHQntCgCivQodCV0KDQldCd0KfQlSDQm9CQ0JTQmNCh0JvQkNCSCivQodCV0KDQldCd0KfQldCoINCI0J7QltCV0KQg0J3QntCS0JjQndCQ0KAKK9Ch0JXQoNCd0JXQpiDQodCi0JXQktCQ0J0KK9Ch0JXQoNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JXQoNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JXQoNCi0JjQiyDQnNCQ0KLQmNCI0JAKK9Ch0JXQoNCi0JjQiyDQnNCY0JvQkNCdCivQodCV0KDQotCY0Isg0JLQm9CQ0JTQkAor0KHQldCi0JXQndCn0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQldCS0JXQoCDQqNCY0JzQlQor0KHQldCS0JXQoNCY0J3QmCDQiNCQ0J0KK9Ch0JXQktCY0Isg0ILQntCg0ILQlQor0KHQldCS0JjQiyDQoNCQ0JTQldCd0JrQngor0KHQldCS0JrQmNCLINCR0KDQkNCd0JrQngor0KHQldCS0JrQmNCLINCc0JDQk9CU0JDQm9CV0J3QkAor0KHQmNCnINCQ0J3QlNCg0JjQiNCQCivQodCY0Kcg0JTQoNCQ0JPQkNCdCivQodCY0Kcg0KTQldCg0JXQndCmCivQodCY0Kcg0JjQnNCg0JUKK9Ch0JjQpyDQiNCe0JbQldCkCivQodCY0Kcg0IjQntCh0JjQnwor0KHQmNCnINCI0J7QodCY0J8KK9Ch0JjQpyDQiNCj0JvQmNCI0JDQndCQCivQodCY0Kcg0JrQkNCb0JzQkNCdCivQodCY0Kcg0JrQkNCb0JzQkNCdCivQodCY0Kcg0JzQkNCg0JPQmNCi0JAKK9Ch0JjQpyDQnNCQ0KDQmNCI0JAKK9Ch0JjQpyDQnNCQ0KDQmNCI0JAKK9Ch0JjQpyDQnNCY0KXQkNCJCivQodCY0Kcg0JzQmNCg0J7QodCb0JDQktCQCivQodCY0Kcg0J/QldCi0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Ch0JjQpyDQn9CY0KDQntCo0JrQkAor0KHQmNCnINCh0KLQldCS0JDQnQor0KHQmNCnINCh0KLQldCS0JDQnQor0KHQmNCnINCh0KLQldCS0JDQnQor0KHQmNCnINCi0JXQoNCV0JfQkAor0KHQmNCnINCS0JvQkNCU0JjQodCb0JDQkgor0KHQmNCnINCX0JvQkNCi0JrQngor0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JjQiyDQodCb0JDQgtCQ0J3QkAor0KHQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KHQmNCLINCh0KLQkNCd0JrQngor0KHQmNCC0Jgg0JzQmNCg0JrQngor0KHQmNCR0JXQoCDQmNCo0KLQktCQ0J0KK9Ch0JjQkdCV0KAg0JjQqNCi0JLQkNCdCivQodCY0JHQmNCd0JDQpiDQktCj0JrQmNCm0JAKK9Ch0JjQkdCY0J3QmtCY0Isg0J/QldCi0JDQoAor0KHQmNCR0JjQndCa0JjQiyDQoNCQ0KLQmtCeCivQodCY0JHQmNCd0JrQmNCLINCg0JDQotCa0J4KK9Ch0JjQkdCY0J3QmtCY0Isg0JLQkNCh0JAKK9Ch0JjQkdCY0J3QntCSINCd0JjQmtCe0JvQkAor0KHQmNCR0JjQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCY0JHQmNCd0KHQmtCYINCS0JjQlNCQCivQodCY0I/QmNCc0J7QodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQodCY0JTQntCgINCL0JjQoNCY0Jsg0JTQoAor0KHQmNCT0JXQotCYLdCR0JjQp9Ca0JXQmCDQkNCT0J7QotCQCivQodCY0JPQldCi0Jgg0IjQkNCo0JAKK9Ch0JjQk9CV0KLQmCDQiNCQ0J3QntCoCivQodCY0JPQldCi0Jgg0KHQotCV0JLQkNCdCivQodCY0JrQkCDQpNCg0JDQitCQCivQodCY0JrQkCDQmNCg0JXQndCQCivQodCY0JrQmNCc0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQmNCa0JjQnNCY0Isg0J3QntCS0JDQmgor0KHQmNCa0JjQnNCY0Isg0KHQoNCC0JDQnQor0KHQmNCa0JjQnNCY0Isg0KHQoNCC0JDQnQor0KHQmNCa0JjQoNCY0KbQkCDQnNCY0KDQiNCQ0J3QkAor0KHQmNCa0J7QoNCQINCa0JDQoNCe0IkKK9Ch0JjQmtCe0KDQkCDQm9CQ0JTQmNCh0JvQkNCSCivQodCY0JrQntCg0JAg0J/QldCi0JDQoAor0KHQmNCb0JDQqNCa0Jgg0JjQm9CY0IjQkAor0KHQmNCb0JDQqNCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ch0JjQm9CQ0KjQmtCYINCh0JvQkNCS0JrQngor0KHQmNCb0JDQqNCa0Jgg0KHQndCV0JbQkNCd0JAKK9Ch0JjQm9CQ0KjQmtCYINCS0JXQoNCQCivQodCY0JvQkNCo0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0KHQmNCb0JDQgtCV0JIg0KDQo9CW0JjQptCQCivQodCY0JvQkNCC0Jgg0KjQkNCd0JTQntCgCivQodCY0JvQkNCC0Jgg0JDQndCU0KDQkNCoCivQodCY0JvQkNCC0Jgg0KTQoNCQ0IrQkAor0KHQmNCb0JDQgtCYINCT0JjQl9CV0JvQkAor0KHQmNCb0JDQgtCYINCY0KjQotCS0JDQnQor0KHQmNCb0JDQgtCYINCY0JzQoNCVCivQodCY0JvQkNCC0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0JjQm9CQ0ILQmCDQmtCQ0KDQntCJCivQodCY0JvQkNCC0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQmNCb0JDQgtCYINCb0JDQodCb0J4g0JLQkNCI0JDQoAor0KHQmNCb0JDQgtCYINCb0JDQodCb0J4KK9Ch0JjQm9CQ0ILQmCDQm9CQ0KHQm9CeCivQodCY0JvQkNCC0Jgg0JvQkNCh0JvQngor0KHQmNCb0JDQgtCYINCJ0KPQlNCV0JLQmNCiCivQodCY0JvQkNCC0Jgg0InQo9CU0JXQktCY0KIKK9Ch0JjQm9CQ0ILQmCDQnNCQ0KDQmNCI0JAKK9Ch0JjQm9CQ0ILQmCDQnNCY0JrQm9Ce0KgKK9Ch0JjQm9CQ0ILQmCDQoNCe0JfQkNCb0JjQiNCQCivQodCY0JvQkNCC0Jgg0KLQldCg0JXQl9CQCivQodCY0JvQkNCC0Jgg0JLQmNCa0KLQntCg0JjQiNCQCivQodCY0JvQkNCaINCQ0J3QlNCg0JDQqAor0KHQmNCb0JDQmiDQk9CY0JfQldCb0JAKK9Ch0JjQm9CQ0Jog0JjQqNCi0JLQkNCdCivQodCY0JvQkNCaINCX0J7Qm9Ci0JDQnQor0KHQmNCb0JHQkNCo0JrQmCDQlNCe0KjQmtCeCivQodCY0JvQkdCQ0KjQmtCYINCJ0KPQkdCY0KbQkAor0KHQmNCb0JHQkNCo0JrQmCDQnNCQ0KDQiNCQ0J0KK9Ch0JjQm9CR0JDQqNCa0Jgg0JfQntCg0JDQnQor0KHQmNCb0JHQldCg0KXQntCb0KYg0KHQotCV0JLQkNCdCivQodCY0JvQldCgINCC0KPQm9CQCivQodCY0JvQldCgINCU0KPQqNCY0KbQkAor0KHQmNCb0JXQoCDQk9Cj0KHQotCQ0JIKK9Ch0JjQm9CV0KAg0JrQkNCg0JsKK9Ch0JjQidCQ0J3QntCS0KHQmtCYINCU0JDQoNCa0J4KK9Ch0JjQidCQ0J3QntCS0KHQmtCYINCI0J7QltCVCivQodCY0JvQndCYINCh0JvQkNCS0J3QkAor0KHQmNCb0JLQkNCo0Jgg0KjQkNCd0JTQntCgCivQodCY0JvQktCQ0KjQmCDQiNCQ0J3QntCoCivQodCY0JvQktCQ0KjQmCDQmtCQ0KDQntCJCivQodCY0JvQktCV0KHQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQodCY0JvQktCV0KHQotCg0J7QktCY0Isg0KLQkNCd0JDQodCY0IjQlQor0KHQmNCc0KfQmNCdINCc0JjQpdCQ0IjQm9CeCivQodCY0JzQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCY0JzQkNCd0JjQiyDQiNCV0JfQlNCY0JzQmNCgCivQodCY0JzQkNCd0JjQiyDQn9CV0KLQmtCeCivQodCY0JzQkNCd0JjQiyDQoNCQ0IjQmtCQCivQodCY0JzQkNCd0JjQiyDQodCQ0JLQkAor0KHQmNCc0JXQndCU0JjQiyDQkdCe0JbQkAor0KHQmNCc0JXQndCU0JjQiyDQk9Ce0KDQkNCdCivQodCY0JzQldCd0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JjQnNCV0J3QlNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmNCc0JXQndCi0JjQiyDQiNCe0JLQkNCdCivQodCY0JzQldCd0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0JjQnNCV0J7QndCe0JIg0J/QkNCS0JvQlQor0KHQmNCc0JXQntCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQmNCc0JXQntCd0J7QkiDQl9CU0KDQkNCS0KfQngor0KHQmNCc0JXQntCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQmNCc0JXQntCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0JjQnNCV0J7QndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JjQnNCV0J7QndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQodCY0JzQldCi0JjQiyDQnNCe0JzQp9CY0JvQngor0KHQmNCc0JXQotCY0Isg0J7QodCi0J7QiNCQCivQodCY0JzQldCj0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCY0JzQldCj0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0IjQkNCd0JrQngor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQodCY0JzQldCj0J3QntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0KHQkNCS0JAKK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCh0JjQnNCeCivQodCY0JzQldCj0J3QntCS0JjQiyDQodCY0JzQngor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQodCY0JzQldCj0J3QntCS0JjQiyDQktCb0JDQlNCQCivQodCY0JzQmNCn0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KHQmNCc0JjQqNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KHQmNCc0JjQiyDQp9CV0JTQkAor0KHQmNCc0JjQiyDQltCY0JLQntCI0JjQnQor0KHQmNCc0JjQiyDQltCY0JLQntCI0JjQnQor0KHQmNCc0JjQiyDQgtCj0KDQgtCV0JLQmtCQCivQodCY0JzQmNCLINCC0KPQoNCQCivQodCY0JzQmNCLINCC0KPQoNCeCivQodCY0JzQmNCLINCQ0KbQkAor0KHQmNCc0JjQiyDQkNCU0JDQnAor0KHQmNCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQmNCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQmNCc0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQmNCc0JjQiyDQkdCe0KjQmtCeCivQodCY0JzQmNCLINCR0J7QiNCQ0J3QkAor0KHQmNCc0JjQiyDQkdCe0KDQkAor0KHQmNCc0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCY0JzQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JHQntCg0JrQkAor0KHQmNCc0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KHQmNCc0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCY0JzQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JjQnNCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ch0JjQnNCY0Ist0KbQpdCQ0JvQkNCR0Jgg0JTQoNCQ0JPQkNCd0JAKK9Ch0JjQnNCY0Isg0KbQktCV0KLQmNCdCivQodCY0JzQmNCLINCU0JXQiNCQ0J0KK9Ch0JjQnNCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQodCY0JzQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KHQmNCc0JjQiyDQlNCe0IjQp9CY0J0KK9Ch0JjQnNCY0Isg0JTQoNCQ0JPQkNCdCivQodCY0JzQmNCLINCU0KDQkNCT0JjQptCQCivQodCY0JzQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0JjQnNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCY0JzQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCY0JzQmNCLINCU0KPQqNCQ0J0KK9Ch0JjQnNCY0Isg0JTQo9Co0JDQnQor0KHQmNCc0JjQiyDQlNCj0KjQmNCm0JAKK9Ch0JjQnNCY0Isg0JPQntCI0JrQngor0KHQmNCc0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQmNCc0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQodCY0JzQmNCLINCl0JXQoNCc0JjQndCQINCU0KAKK9Ch0JjQnNCY0Isg0JjQm9CY0IjQkAor0KHQmNCc0JjQiyDQmNCb0J7QndCa0JAKK9Ch0JjQnNCY0Isg0JjQktCQ0J0KK9Ch0JjQnNCY0Isg0IjQldCb0JXQndCQCivQodCY0JzQmNCLINCI0J7QktCQ0J0KK9Ch0JjQnNCY0Isg0IjQntCS0JDQnQor0KHQmNCc0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0JjQnNCY0Isg0IjQntCS0J4KK9Ch0JjQnNCY0Isg0IjQntCS0J4KK9Ch0JjQnNCY0Isg0IjQo9CU0JjQogor0KHQmNCc0JjQiyDQmtCg0JjQodCi0JjQndCQCivQodCY0JzQmNCLINCJ0JjQidCQ0J3QkAor0KHQmNCc0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JjQnNCY0Isg0JzQkNCg0JjQiNCQCivQodCY0JzQmNCLINCc0JDQoNCY0IjQkAor0KHQmNCc0JjQiyDQnNCY0KbQkAor0KHQmNCc0JjQiyDQnNCY0KXQkNCY0JvQngor0KHQmNCc0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQmNCLINCc0JjQm9CQ0J0KK9Ch0JjQnNCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0JjQiyDQnNCY0JvQldCd0JAKK9Ch0JjQnNCY0Isg0JzQmNCb0JjQptCQCivQodCY0JzQmNCLINCc0JjQm9CY0IjQkAor0KHQmNCc0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQmNCc0JjQiyDQnNCY0JvQntCoCivQodCY0JzQmNCLINCc0JjQm9Ce0KgKK9Ch0JjQnNCY0Isg0JzQmNCb0J7QqAor0KHQmNCc0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQmNCc0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQmNCc0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQmNCc0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQmNCc0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQmNCc0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQmNCc0JjQiyDQnNCY0KDQmtCeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCd0JDQlNCQCivQodCY0JzQmNCLINCd0JDQlNCQCivQodCY0JzQmNCLINCd0JDQoNCQ0J3Qp9CQCivQodCY0JzQmNCLINCd0JXQgtCeCivQodCY0JzQmNCLINCd0JXQlNCV0InQmtCeCivQodCY0JzQmNCLINCd0JXQnNCQ0IrQkAor0KHQmNCc0JjQiyDQndCV0JLQldCd0JrQkAor0KHQmNCc0JjQiyDQndCY0JrQntCb0JAKK9Ch0JjQnNCY0Isg0J3QmNCa0J7Qm9CQCivQodCY0JzQmNCLINCd0J7QktCQ0JoKK9Ch0JjQnNCY0Isg0J3QntCS0JDQmgor0KHQmNCc0JjQiyDQndCe0JLQkNCaCivQodCY0JzQmNCLINCe0JvQk9CQCivQodCY0JzQmNCLINCe0KHQotCe0IjQkAor0KHQmNCc0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Ch0JjQnNCY0Isg0J/QkNCS0JvQlQor0KHQmNCc0JjQiyDQn9CV0KLQkNCgCivQodCY0JzQmNCLINCg0JDQlNCQCivQodCY0JzQmNCLINCg0JDQlNCV0J3QmtCeCivQodCY0JzQmNCLINCg0JDQlNCV0J3QmtCeCivQodCY0JzQmNCLINCg0JDQlNCY0KHQkNCSCivQodCY0JzQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ch0JjQnNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQmNCc0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQmNCc0JjQiyDQoNCQ0JTQntCI0JUKK9Ch0JjQnNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0JjQnNCY0Isg0KDQkNCI0JrQngor0KHQmNCc0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0JjQnNCY0Isg0KDQo9CW0JjQptCQCivQodCY0JzQmNCLINCh0JDQktCQCivQodCY0JzQmNCLINCh0JjQnNCQCivQodCY0JzQmNCLINCh0JjQndCY0KjQkAor0KHQmNCc0JjQiyDQodCb0JDQlNCQCivQodCY0JzQmNCLINCh0JvQkNCS0JrQngor0KHQmNCc0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCY0JzQmNCLINCh0KDQgtCQ0J0KK9Ch0JjQnNCY0Isg0KHQoNCV0KLQldCdCivQodCY0JzQmNCLINCh0KLQldCS0JDQnQor0KHQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQodCY0JzQmNCLINCh0KLQntCI0JDQndCa0JAKK9Ch0JjQnNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQodCY0JzQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQotCY0KXQntCc0JjQoAor0KHQmNCc0JjQiyDQotCY0KXQntCc0JjQoAor0KHQmNCc0JjQiyDQotCe0JTQlQor0KHQmNCc0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCY0JzQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JLQkNCI0JrQkAor0KHQmNCc0JjQiyDQktCQ0KHQkAor0KHQmNCc0JjQiyDQktCV0KDQntCd0JrQkAor0KHQmNCc0JjQiyDQktCV0KHQldCb0JrQngor0KHQmNCc0JjQiyDQktCY0J3QmtCQCivQodCY0JzQmNCLINCS0JvQkNCU0JUKK9Ch0JjQnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmNCc0JjQiyDQktCb0JDQlNCeCivQodCY0JzQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JfQm9CQ0KLQmNCc0JjQoAor0KHQmNCc0JjQiyDQl9Ce0KDQkNCdCivQodCY0JzQmNCLINCX0J7QoNCQ0J0KK9Ch0JjQnNCY0Isg0JfQntCg0JDQnQor0KHQmNCc0JjQiyDQl9Ce0KDQkAor0KHQmNCc0JjQiyDQl9Ce0KDQkAor0KHQmNCc0JjQiyDQl9Ce0KDQmNCm0JAKK9Ch0JjQnNCY0Isg0JfQntCg0JrQkAor0KHQmNCc0JjQi9CV0JLQmNCLINCg0JDQlNCe0JzQkNCdCivQodCY0JzQmNCI0J7QndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JjQnNCY0JrQmNCLINCI0J7QktCQ0J0KK9Ch0JjQnNCY0JvQldCK0Jgg0JTQo9Co0JjQptCQCivQodCY0JzQmNCdINCW0JjQktCa0JAKK9Ch0JjQnNCY0J0g0JbQmNCS0J7QiNCY0J0KK9Ch0JjQnNCY0J0g0JDQndCC0JXQm9Ca0JAKK9Ch0JjQnNCY0J0g0JDQoNCQ0J3QmtCQCivQodCY0JzQmNCdINCm0JLQldCi0JrQngor0KHQmNCc0JjQnSDQlNCQ0J3QmNCm0JAKK9Ch0JjQnNCY0J0g0JTQkNCd0JjQm9CeCivQodCY0JzQmNCdINCU0JjQndCQCivQodCY0JzQmNCdINCU0KDQkNCT0JDQnQor0KHQmNCc0JjQnSDQpdCY0JvQlNCQCivQodCY0JzQmNCdINCY0JLQkNCd0JrQkAor0KHQmNCc0JjQnSDQmNCS0JDQnQor0KHQmNCc0JjQnSDQiNCQ0KjQkAor0KHQmNCc0JjQnSDQiNCV0JvQldCd0JAKK9Ch0JjQnNCY0J0g0JrQntCh0KLQkAor0KHQmNCc0JjQnSDQm9CQ0JfQkNCgCivQodCY0JzQmNCdINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0JjQnNCY0J0g0InQo9CR0JjQptCQCivQodCY0JzQmNCdINCc0JDQk9CU0JAKK9Ch0JjQnNCY0J0g0JzQmNCb0JXQndCQCivQodCY0JzQmNCdINCc0JjQm9CY0KbQkAor0KHQmNCc0JjQnSDQnNCY0JvQmNCm0JAKK9Ch0JjQnNCY0J0g0JzQmNCb0JjQktCe0IgKK9Ch0JjQnNCY0J0g0JzQmNCb0JjQktCe0IgKK9Ch0JjQnNCY0J0g0JzQmNCb0KPQotCY0J0KK9Ch0JjQnNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0KHQmNCc0JjQnSDQndCQ0JTQkAor0KHQmNCc0JjQnSDQndCQ0JTQkAor0KHQmNCc0JjQnSDQndCV0JHQntCI0KjQkAor0KHQmNCc0JjQnSDQn9CQ0JLQm9CVCivQodCY0JzQmNCdINCf0JXQotCQ0KAKK9Ch0JjQnNCY0J0g0KDQkNCU0JjQptCQCivQodCY0JzQmNCdINCg0JDQlNCY0JLQntCI0JUKK9Ch0JjQnNCY0J0g0KDQkNCU0J7QiNCY0KbQkAor0KHQmNCc0JjQnSDQoNCQ0JTQntCS0JDQnQor0KHQmNCc0JjQnSDQodCY0J3QmNCo0JAKK9Ch0JjQnNCY0J0g0KHQntCk0JjQiNCQCivQodCY0JzQmNCdINCh0KLQldCS0JDQnQor0KHQmNCc0J7QndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQodCY0JzQntCd0J7QktCY0Isg0KXQoNCY0KHQotCY0J3QkAor0KHQmNCc0J7QndCe0JLQmNCLINCY0KDQldCd0JAg0JTQoAor0KHQmNCc0J7QndCe0JLQmNCLINCc0JjQm9CVCivQodCY0JzQntCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JjQnNCe0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQmNCc0J7QndCe0JLQmNCLINCd0JDQlNCQCivQodCY0JzQntCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCY0JzQntCd0J7QktCY0Isg0J/QldCi0JDQoAor0KHQmNCc0J7QndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JjQnNCe0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCY0JzQntCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQmNCc0J7QndCe0JLQodCa0Jgg0KTQmNCd0JrQkAor0KHQmNCc0J7QndCe0JLQodCa0Jgg0JzQmNCi0JAKK9Ch0JjQnNCe0KLQmNCdINCg0JDQlNCe0JLQkNCdCivQodCY0JzQntCS0JjQiyDQltCV0InQmtCeCivQodCY0JzQntCS0JjQiyDQltCY0JLQntCi0JAKK9Ch0JjQnNCe0JLQmNCLINCQ0J3QmtCQCivQodCY0JzQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoAor0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQngor0KHQmNCc0J7QktCY0Isg0IjQntCS0JAKK9Ch0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQmNCc0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQmNCc0J7QktCY0Isg0JzQmNCg0JrQngor0KHQmNCc0J7QktCY0Isg0JzQmNCi0JDQoAor0KHQmNCc0J7QktCY0Isg0J/QldCi0JDQoAor0KHQmNCc0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQmNCc0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0JjQnNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0J/QoNCe0KTQldCh0J7QoAor0KHQmNCc0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQmNCc0J7QktCY0Isg0KLQntCU0J7QoAor0KHQmNCc0J7QktCY0Isg0JLQmNCU0JDQmgor0KHQmNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmNCc0J7QktCJ0JXQktCY0Isg0IjQntCm0JAKK9Ch0JjQnNCj0J3QmNCLINCW0JXQm9CY0JzQmNCgCivQodCY0JzQo9Cd0JjQiyDQkNCd0JTQoNCY0IjQkAor0KHQmNCc0KPQndCY0Isg0JzQkNCT0JTQkAor0KHQmNCc0KPQndCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KHQmNCc0KPQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQmNCc0KPQndCe0JLQmNCLINCc0JjQm9Cj0J0KK9Ch0JjQnNCj0KDQlNCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0KPQoNCU0JjQiyDQn9CV0KLQkNCgCivQodCY0JzQo9Cg0JTQmNCLINCS0JjQotCe0JzQmNCgCivQodCY0J3Qp9CY0Isg0JfQktCe0J3QmNCc0JjQoAor0KHQmNCd0ILQldCb0JjQiyDQidCj0JHQmNCh0JDQkgor0KHQmNCd0ILQldCb0JjQiyDQnNCY0JvQntCoCivQodCY0J3QgtCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JjQndCQ0JTQmNCd0J7QktCY0Isg0JLQntCI0J4KK9Ch0JjQndCQ0J3QmCDQkNCR0JTQo9Cb0JAKK9Ch0JjQndCQ0J3QmCDQnNCY0JvQmNCm0JAKK9Ch0JjQndCQ0J3QntCS0JjQiyDQodCQ0KTQldCiCivQodCY0J3Qk9CV0KAg0JTQoNCQ0JPQmNCm0JAKK9Ch0JjQndCT0JXQoCDQoNCj0JbQmNCm0JAKK9Ch0JjQoNCQ0KfQmtCYINCa0JDQoNCe0JvQmNCd0JAKK9Ch0JjQoNCQ0KbQmtCYINCI0J7QktCQ0J0KK9Ch0JjQoNCQ0KbQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JjQoNCQ0Jog0JvQkNCh0JvQniDQlNCgCivQodCY0KDQmNCo0JrQmCDQltCQ0KDQmtCeCivQodCY0KDQmNCo0JrQmCDQgtCj0KDQgtCY0J3QkAor0KHQmNCg0JjQqNCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCY0KDQmNCo0JrQmCDQmNCS0JDQnQor0KHQmNCg0JjQqNCa0Jgg0IjQkNCh0JzQmNCd0JrQkAor0KHQmNCg0JjQqNCa0Jgg0IjQldCb0JXQndCQCivQodCY0KDQmNCo0JrQmCDQiNCe0JLQkNCdCivQodCY0KDQmNCo0JrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Ch0JjQoNCY0KjQmtCYINCh0JvQkNCS0JrQniDQodCj0JTQmNCI0JAKK9Ch0JjQoNCY0KjQmtCYINCh0JvQkNCS0JrQngor0KHQmNCg0J7Qp9CY0Isg0JjQktCQ0J0KK9Ch0JjQoNCe0JbQldCd0JrQniDQodCd0JXQltCQ0J3QkAor0KHQmNCg0J7QltCV0J3QmtCeINCS0JXQoNCQCivQodCY0KDQntCi0JjQnSDQodCb0JDQktCY0KbQkAor0KHQmNCg0J7QktCY0KbQkCDQiNCQ0J3QntCoCivQodCY0KDQo9Cn0JXQmiDQktCY0JvQmNCcINCU0JjQn9CbINCY0J3Qkwor0KHQmNCi0JDQqCDQmNCb0J7QndCQCivQodCY0KLQkNCoINCb0JDQiNCe0KgKK9Ch0JjQotCQ0KDQldCS0JjQiyDQkNCc0JjQoAor0KHQmNCi0JDQoNCY0Isg0J/QkNCI0JAKK9Ch0JjQktCnINCQ0JzQkNCb0JjQiNCQCivQodCY0JLQpyDQkNCd0ILQldCb0JrQkAor0KHQmNCS0Kcg0JTQkNCd0JjQm9CeCivQodCY0JLQpyDQpdCV0JvQldCd0JAKK9Ch0JjQktCnINCY0KDQmNCd0JAKK9Ch0JjQktCnINCI0JDQndCa0J4KK9Ch0JjQktCnINCJ0KPQkdCe0JzQmNCgCivQodCY0JLQpyDQidCj0JHQntCc0JjQoAor0KHQmNCS0Kcg0J3QldCh0KLQntCgCivQodCY0JLQpyDQktCb0JDQlNCY0JzQmNCgCivQodCY0JLQp9CV0JIg0ILQntCa0JAKK9Ch0JjQktCn0JXQkiDQkdCe0JbQmNCU0JDQoAor0KHQmNCS0KfQldCSINCI0J7QktCQ0J0g0JTQoAor0KHQmNCS0KfQldCSINCI0KPQm9Ca0JAKK9Ch0JjQktCn0JXQkiDQidCj0JHQmNCm0JAKK9Ch0JjQktCn0JXQkiDQnNCY0JvQkNCdCivQodCY0JLQp9CV0JIg0JfQntCg0JDQnQor0KHQmNCS0JDQp9Ca0Jgg0ILQo9Cg0JAKK9Ch0JjQktCQ0KfQmtCYINCI0J7QktCQ0J0KK9Ch0JjQktCQ0KfQmtCYINCc0JjQm9CQ0J0KK9Ch0JjQktCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQodCY0JLQkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQodCY0JLQkNCn0JrQmCDQodCQ0JLQkAor0KHQmNCS0JDQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ch0JjQktCQ0KfQmtCYINCS0JXQoNCQCivQodCY0JLQkNCn0JrQmCDQktCV0KDQkAor0KHQmNCS0JDQpiDQiNCe0JLQkNCd0JrQkAor0KHQmNCS0JDQmiDQmNCR0J7QidCQCivQodCY0JLQkNCaINCI0KPQlNCY0KLQkAor0KHQmNCS0JDQmiDQidCj0JHQmNCd0JrQkAor0KHQmNCS0JDQmiDQoNCe0JfQmNCd0JAKK9Ch0JjQktCY0Isg0JPQntCI0JrQngor0KHQmNCS0JjQiyDQoNCQ0JTQlQor0KHQmNCX0J7QkiDQnNCQ0KDQk9CY0KLQkAor0KHQiNCV0J3QmNCn0JjQiyDQndCV0JTQldCJ0JrQngor0KHQiNCV0J/QkNCd0J7QktCY0Isg0KHQoNCC0JDQnQor0KHQmtCQ0JrQkNCS0JDQpiDQndCY0JrQntCb0JAKK9Ch0JrQkNCa0JDQktCQ0KYg0J3QntCS0JAKK9Ch0JrQkNCa0JDQktCQ0KYg0J3QntCS0JAKK9Ch0JrQkNCa0JDQktCQ0KYg0KHQntCk0JjQiNCQCivQodCa0JDQmtCQ0JLQkNCmINCS0JXQm9CY0JzQmNCgCivQodCa0JDQmtCQ0JLQkNCmINCS0KPQiNCY0KbQkAor0KHQmtCQ0JrQkNCS0JDQpiDQl9CU0KDQkNCS0JrQngor0KHQmtCQ0JrQmNCLINCR0J7QqNCa0J4KK9Ch0JrQkNCa0JjQiyDQnNCY0JvQkNCdCivQodCa0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQodCa0JDQmtCj0J0g0JbQmNCS0JrQngor0KHQmtCQ0JvQkCDQkNCd0KLQkNCbCivQodCa0JDQm9CQINCc0JjQm9CV0J3QkAor0KHQmtCQ0JvQkCDQktCb0JDQlNCY0JzQmNCgCivQodCa0JDQm9CY0KbQmtCYINCX0JDQk9Ce0KDQmtCQCivQodCa0JDQndCU0JDQoNCh0JrQmCDQkNCd0JrQkAor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQmNCb0JDQnQor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQmNCb0J7QqAor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQmNCg0JrQngor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQm9CQ0JTQldCdCivQodCa0JDQndCU0JDQoNCh0JrQmCDQnNCe0JzQp9CY0JvQngor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ch0JrQkNCg0JDQnNCj0KbQkCDQnNCY0IjQngor0KHQmtCQ0KDQkNCc0KPQptCQINCX0JTQoNCQ0JLQmtCeCivQodCa0JXQm9CV0I/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCa0JXQm9CV0I/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCa0JXQm9CV0I/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQmtCV0JvQldCP0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JrQldCb0JXQj9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0JrQldCb0JXQj9CY0Isg0JrQkNCi0JjQptCQCivQodCa0JXQm9CV0I/QmNCLINCJ0KPQkdCY0J3QmtCeCivQodCa0JXQm9CV0I/QmNCLINCc0JDQoNCY0IjQkAor0KHQmtCV0JvQldCP0JjQiyDQnNCY0JvQkNCdCivQodCa0JXQm9CV0I/QmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KHQmtCV0JvQldCP0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCa0JXQm9CV0I/QmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JrQldCb0JXQj9CY0IjQkCDQmtCQ0KLQkAor0KHQmtCV0JvQldCP0JjQiNCQINCg0JDQlNCe0IjQmNCm0JAKK9Ch0JrQldCb0JXQj9CY0IjQkCDQodCf0JDQodCY0JzQmNCgCivQodCa0JXQndCP0JjQiyDQltCQ0KDQmtCeCivQodCa0JXQndCP0JjQiyDQkdCe0JPQlNCQ0J0KK9Ch0JrQldCd0I/QmNCLINCR0KDQkNCd0JrQkAor0KHQmtCV0J3Qj9CY0Isg0JTQkNCd0JUKK9Ch0JrQldCd0I/QmNCLINCU0JDQndCY0JvQngor0KHQmtCV0J3Qj9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQmtCV0J3Qj9CY0Isg0JTQo9Co0JDQnQor0KHQmtCV0J3Qj9CY0Isg0JjQm9CY0IjQkAor0KHQmtCV0J3Qj9CY0Isg0IjQkNCh0JzQmNCd0JrQkAor0KHQmtCV0J3Qj9CY0Isg0IjQntCS0JDQndCa0JAKK9Ch0JrQldCd0I/QmNCLINCc0JDQoNCT0JDQoNCV0KLQkAor0KHQmtCV0J3Qj9CY0Isg0JzQmNCb0JDQnQor0KHQmtCV0J3Qj9CY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JrQldCd0I/QmNCLINCc0JjQm9CY0KbQkAor0KHQmtCV0J3Qj9CY0Isg0KDQkNCU0JUKK9Ch0JrQldCd0I/QmNCLINCh0JDQoNCQCivQodCa0JXQndCP0JjQiyDQodCe0KTQmNCI0JAKK9Ch0JrQldCd0I/QmNCLINCh0KLQldCS0JDQnQor0KHQmtCV0J3QlNCV0KDQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0KHQmtCV0J3QlNCV0KDQntCS0JjQiyDQkdCV0KDQmNCh0JvQkNCSCivQodCa0JXQndCU0JXQoNCe0JLQmNCLINCT0JDQkdCe0KAKK9Ch0JrQldCd0JTQldCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCa0JXQndCU0JXQoNCe0JLQmNCLINCh0JjQndCY0KjQkAor0KHQmtCV0KDQm9CV0KLQntCS0JjQiyDQnNCY0JvQntCoCivQodCa0JXQoNCb0JXQotCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0JrQldCg0KIg0JHQntCW0JjQlNCQ0KAKK9Ch0JrQmNCn0JDQmiDQm9CQ0KHQm9CeCivQodCa0JjQktCI0JDQndCYINCo0JDQndCU0J7QoAor0KHQmtCY0JLQiNCQ0J3QmCDQnNCY0KXQkNCJCivQodCa0JvQkNCR0JjQndCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmtCb0JDQkdCY0J3QodCa0Jgg0KHQkNCc0J4KK9Ch0JrQm9CV0J3QkCDQiNCe0KXQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQmtCb0JXQndCQINCe0JvQmNCS0JXQoNCQCivQodCa0JvQldCd0JAg0JLQmNCa0KLQntCg0JjQiNCQCivQodCa0JvQldCd0JDQoCDQn9CV0KLQkNCgCivQodCa0InQkNCgINCC0KPQoNCeCivQodCa0J7Qp9CQ0IjQmNCLINCS0KPQmtCQ0KjQmNCdCivQodCa0J7Qp9Ce0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQodCa0J7QkdCVINCY0JLQkNCdCivQodCa0J7QmiDQnNCY0KDQiNCQ0J3QkAor0KHQmtCe0JrQkNCd0JTQmNCLINCf0JXQotCQ0KAKK9Ch0JrQntCa0JjQiyDQndCV0J3QkNCUCivQodCa0J7QmtCY0Isg0JLQldCh0J3QkAor0KHQmtCe0JrQndCY0Isg0JTQo9Co0JDQnQor0KHQmtCe0JrQndCY0Isg0KHQotCV0JLQkNCdCivQodCa0J7QmtCeINCc0JjQm9Ce0KgKK9Ch0JrQntCc0JjQndCQINCS0JXQoNCY0KbQkAor0KHQmtCe0J/QkNCbINCR0JXQm9CQCivQodCa0J7Qn9CQ0Jsg0IjQntCS0JDQnQor0KHQmtCe0KDQmNCLINCI0JDQodCc0JjQndCa0JAKK9Ch0JrQntCg0JjQiyDQidCj0JHQngor0KHQmtCe0KDQmNCLINCi0J7QndCa0JAKK9Ch0JrQntCg0JjQiyDQktCj0IjQngor0KHQmtCe0KDQo9Cf0JDQnSDQgtCj0KDQkAor0KHQmtCe0KDQo9Cf0JDQnSDQlNCQ0J3QmNCm0JAKK9Ch0JrQntCg0KPQn9CQ0J0g0JrQkNCi0JAKK9Ch0JrQntCg0KPQn9CQ0J0g0KDQkNCU0JXQndCa0J4KK9Ch0JrQntCg0KPQn9CQ0J0g0KHQm9CQ0JLQmtCeCivQodCa0J7QotCe0JLQmNCLINCk0JXQoNCV0J3Qpgor0KHQmtCg0JDQnNCe0IvQmNCdINCh0KDQldCL0JrQngor0KHQmtCg0J7QkdCY0Isg0JTQoNCQ0JPQkNCdCivQodCa0KDQntCR0JjQiyDQn9CV0KLQkNCgCivQodCa0KDQntCR0J7QitCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCa0KDQntCR0J7QitCQINCa0JDQotCY0KbQkAor0KHQmtCg0J7QkdCe0IrQkCDQndCY0JrQntCb0JAKK9Ch0JrQoNCe0JHQntCK0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmtCj0JHQkNCdINCl0JXQm9CV0J3QkAor0KHQmtCj0JHQkNCdINCI0JDQndCa0J4KK9Ch0JrQo9CR0JDQnSDQiNCV0KTQoNCV0JwKK9Ch0JrQo9CR0JDQnSDQiNCj0JvQmNCI0JDQnQor0KHQmtCj0JHQkNCdINCb0JXQntCd0JAKK9Ch0JrQo9CR0JDQnSDQidCj0JHQntCc0JjQoAor0KHQmtCj0JHQkNCdINCc0JjQpdCQ0IjQm9CeCivQodCa0KPQkdCQ0J0g0J3QkNCi0JDQm9CY0IjQkAor0KHQmtCj0JHQkNCdINCd0JjQmtCe0JvQkAor0KHQmtCj0JHQkNCdINCX0J7QoNCa0JAKK9Ch0JrQo9Cb0JDQoCDQoNCQ0JTQntCI0JrQkAor0KHQmtCj0JvQmNCLINCc0JjQoNCI0JDQndCQCivQodCa0KPQm9CY0Isg0KHQmNCc0JrQkAor0KHQmtCj0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JrQo9Cc0J/QmNCI0JAg0IjQntCW0JXQpAor0KHQmtCj0KDQo9Cf0JDQotCY0KEg0JzQmNCg0IjQkNCd0JAKK9Ch0JvQkNCL0JDQndCY0J0g0JjQktCQ0J0KK9Ch0JvQkNCU0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQm9CQ0JTQldCaINCQ0J3QlNCg0JjQiNCQCivQodCb0JDQlNCY0Isg0KbQktCV0KLQkAor0KHQm9CQ0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JvQkNCU0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JvQkNCU0JjQiyDQl9Ce0KDQmNCm0JAKK9Ch0JvQkNCU0J7QiNCQINCc0JjQm9Ce0JLQkNCdCivQodCb0JDQlNCe0IjQlSDQmNCb0JjQiNCQCivQodCb0JDQlNCe0IjQlSDQoNCQ0JTQntCc0JjQoAor0KHQm9CQ0JTQntCI0JXQkiDQnNCY0JvQkNCdCivQodCb0JDQlNCe0IjQldCSINCf0KDQldCU0KDQkNCTCivQodCb0JDQlNCe0IjQldCS0JjQiyDQltCY0JLQmtCeCivQodCb0JDQlNCe0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQodCb0JDQlNCe0IjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQm9CQ0JzQkCDQgtCe0KDQgtCVCivQodCb0JDQnNCQINCc0JDQoNCY0IjQkAor0KHQm9CQ0JzQkNCgINCk0JXQoNCV0J3Qpgor0KHQm9CQ0J3QpiDQiNCV0JvQldCd0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JbQmNCS0JrQngor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQltCY0JLQmtCeCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCC0J7QoNCC0JUKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JDQndCa0JjQptCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQlNCj0KjQkNCd0JrQkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQmNCU0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0IjQldCb0JXQndCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCI0J7QktCQ0J0KK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQkNCg0JjQiNCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JDQoNCY0IjQkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQnNCY0JvQkNCdCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQm9CQ0J0KK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQmNCb0JDQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQnNCY0JvQntCoCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQm9Ce0KgKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQmNCb0J7QiNCVCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQoNCI0JDQndCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0J7QnNCn0JjQm9CeCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCd0JDQlNCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCf0JXQotCQ0KAg0JTQoAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQn9CV0KLQkNCgCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCf0JXQotCQ0KAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0J/QoNCe0JrQkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCh0KLQldCS0JDQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQktCV0KHQldCb0JjQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQl9Ce0KDQkNCdCivQodCb0JDQotCS0JjQndCh0JrQmCDQk9CV0J7QoNCT0JjQiNCVCivQodCb0JDQktCY0Isg0ILQntCg0ILQlQor0KHQm9CQ0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQm9CQ0JLQmNCm0JAg0KHQotCY0J/QlQor0KHQm9CQ0JLQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0JvQkNCS0JrQntCS0JjQiyDQkNCb0J7QiNCXCivQodCb0JDQktCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQm9CQ0JLQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCb0JDQktCa0J7QktCY0Isg0KHQmNCR0JjQnQor0KHQm9CQ0JLQmtCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQodCb0JDQktCa0J7QktCY0Isg0KLQoNCY0KTQo9CdCivQodCb0JDQktCa0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQodCb0JDQktCd0JjQiyDQlNCQ0J3QmNCb0J4KK9Ch0JvQkNCS0J3QmNCLINCI0JDQodCc0JjQndCQCivQodCb0JDQktCd0JjQiyDQidCj0JHQmNCm0JAKK9Ch0JvQkNCS0J3QmNCLINCd0J7QktCa0JAKK9Ch0JvQkNCS0J3QmNCLINCg0JDQlNCY0JLQntCICivQodCb0JDQktCd0J7QktCY0Isg0JjQktCQ0J0KK9Ch0JvQkNCS0KPQiCDQkdCe0JbQngor0KHQm9CQ0JLQo9CIINCU0KDQkNCT0JDQnQor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0JvQkNCS0KPQiNCV0JLQmNCLINCc0JjQm9CV0J3QkAor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Ch0JvQkNCS0KPQiNCV0JLQmNCLINCh0KLQldCS0J4KK9Ch0JvQkNCS0KPQiSDQnNCY0JvQlQor0KHQm9CV0J/Qp9CV0JIg0JbQmNCS0JDQnQor0KHQm9CV0J/Qp9CV0JIg0JTQkNCd0JjQptCQCivQodCb0JXQn9Cn0JXQkiDQiNCe0JLQkNCdCivQodCb0JXQn9Cn0JXQkiDQndCY0JrQntCb0JAKK9Ch0JvQldCf0KfQldCSINCX0JTQldCd0JrQkAor0KHQm9CV0J/Qp9CV0JIg0JfQntCg0JjQptCQCivQodCb0JXQn9Cn0JXQktCY0Isg0JrQoNCh0KLQkNCdCivQodCb0JXQn9Cn0JXQktCY0Isg0InQo9CR0JjQqNCQCivQodCb0JXQn9Cn0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQm9CV0J/Qp9CV0JLQmNCLINCe0JvQk9CQCivQodCb0JXQn9Cn0JXQktCY0Isg0KDQo9CW0JAKK9Ch0JvQldCf0KfQldCS0JjQiyDQl9CU0KDQkNCS0JrQkAor0KHQm9CV0J/QmtCeINCY0KDQldCd0JAKK9Ch0JvQldCf0JrQniDQiNCe0JLQkNCdCivQodCb0JXQn9Ca0J4g0JzQmNCl0JDQiNCb0J4KK9Ch0JvQldCf0JrQniDQnNCY0JvQmNCm0JAKK9Ch0JvQldCh0JDQoCDQlNCQ0J3QmNCb0J4KK9Ch0JvQldCh0JDQoCDQiNCV0JvQldCd0JAKK9Ch0JvQldCh0JDQoCDQnNCe0JzQp9CY0JvQngor0KHQm9CV0KHQkNCgINCS0JDQodCQCivQodCb0JjQqNCa0J4g0JDQndCU0KDQmNCI0JAKK9Ch0JvQmNCo0JrQniDQnNCQ0KDQmtCeCivQodCb0JjQqNCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JDQndCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCR0JjQodCV0KDQmtCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JPQldCe0KDQk9CY0IjQlQor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQiNCQ0J3QmtCeCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCI0JDQndCa0J4KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0IjQntCS0JDQnQor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQidCj0JHQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0KDQo9CW0JjQptCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCh0JDQktCeCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCS0JXQoNCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCS0IjQldCa0J7QodCb0JDQktCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCX0JLQntCd0JrQngor0KHQm9CY0IjQldCf0JDQpiDQnNCY0JvQntCoCivQodCb0JjQiNCV0J/QkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JvQmNCc0JDQmiDQkNCU0JDQnAor0KHQm9CY0JLQkCDQldCb0JjQl9CQ0JHQldCi0JAKK9Ch0JvQmNCS0JrQkCDQgtCj0KDQkAor0KHQm9CY0JLQmtCQINCQ0J3QkAor0KHQm9CY0JLQmtCQINCR0J7QltCQ0J3QkAor0KHQm9CY0JLQmtCQINCR0J7QodCY0InQmtCQCivQodCb0JjQktCa0JAg0IjQkNCg0J7QodCb0JDQkgor0KHQm9CY0JLQmtCQINCI0J7QktCQ0J0KK9Ch0JvQmNCS0JrQkCDQnNCY0KjQkAor0KHQm9CY0JLQmtCQINCc0JjQqNCQCivQodCb0JjQktCa0JAg0KHQotCV0JLQkNCdCivQodCb0JjQktCa0JAg0JfQlNCV0J3QmtCQCivQodCb0JjQktCa0JAg0JfQm9CQ0KLQkAor0KHQidCj0JrQkCDQkdCe0KXQo9Ch0JvQkNCSCivQodCJ0KPQmtCQINCI0KPQoNCQ0IgKK9Ch0JvQntCR0J7QlNCQINCQ0J3QotCQ0JsKK9Ch0JvQntCR0J7QlNCQINCY0KjQotCS0JDQnQor0KHQm9Ce0JHQntCU0JAg0IjQkNCd0J7QqAor0KHQm9Ce0JHQntCU0JAg0IjQntCW0JXQpAor0KHQm9Ce0JHQntCU0JAg0IjQo9Cb0JrQkAor0KHQm9Ce0JHQntCU0JAg0JzQmNCl0JDQiNCb0J4KK9Ch0JvQntCR0J7QlNCQINCc0JjQpdCQ0IkKK9Ch0JvQntCR0J7QlNCQINCf0JXQotCQ0KAKK9Ch0JvQntCR0J7QlNCQINCh0JvQkNCS0JrQkAor0KHQm9Ce0JHQntCU0JAg0KHQotCV0JLQkNCdCivQodCb0J7QmtCQ0KAg0JjQktCQ0J0KK9Ch0JvQntCa0JDQoCDQnNCQ0KLQmNCI0JAKK9Ch0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9Ch0JvQo9CK0KHQmtCYINCk0KDQkNCK0JAKK9Ch0JzQkNCT0JjQnSDQmNCS0JDQnQor0KHQnNCQ0IjQmNCLINCc0JDQmtCh0JjQnAor0KHQnNCQ0IjQmNCLINCc0JjQm9Ce0KgKK9Ch0JzQkNCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCc0JDQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQnNCV0JTQldCg0JXQktCQ0KYg0JTQo9Co0JDQnQor0KHQnNCV0JTQldCg0JXQktCQ0KYg0IjQntCS0JDQnQor0KHQnNCV0JTQldCg0JXQktCQ0KYg0JzQmNCb0JjQptCQCivQodCc0JXQlNCV0KDQldCS0JDQpiDQn9CV0KLQkNCgCivQodCc0JXQlNCV0KDQldCS0JDQpiDQodCi0JXQktCY0KbQkAor0KHQnNCY0IvQldCS0JjQiyDQo9Cg0J7QqAor0KHQnNCY0JXQqNCa0J4g0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0JzQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0ILQntCg0ILQlQor0KHQnNCY0InQkNCd0JjQiyDQgtCe0KDQgtCVCivQodCc0JjQidCQ0J3QmNCLINCC0J7QoNCC0JUKK9Ch0JzQmNCJ0JDQndCY0Isg0JHQntCI0JDQndCQCivQodCc0JjQidCQ0J3QmNCLINCR0J7QoNCa0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQodCc0JjQidCQ0J3QmNCLINCU0J7QkdCg0JjQktCe0IgKK9Ch0JzQmNCJ0JDQndCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0JjQm9CY0IjQkAor0KHQnNCY0InQkNCd0JjQiyDQiNCe0JLQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0IjQntCS0JDQnQor0KHQnNCY0InQkNCd0JjQiyDQiNCe0JLQngor0KHQnNCY0InQkNCd0JjQiyDQidCY0InQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0InQmNCJ0JDQndCQCivQodCc0JjQidCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQkNCdCivQodCc0JjQidCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0JzQmNCJ0JDQndCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JzQmNCJ0JDQndCY0Isg0JzQmNCb0JrQkAor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQnNCY0InQkNCd0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQnNCY0InQkNCd0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0JzQmNCJ0JDQndCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0J/QldCi0JDQoAor0KHQnNCY0InQkNCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KHQnNCY0InQkNCd0JjQiyDQoNCQ0JTQkAor0KHQnNCY0InQkNCd0JjQiyDQoNCQ0JTQlQor0KHQnNCY0InQkNCd0JjQiyDQodCQ0JLQkAor0KHQnNCY0InQkNCd0JjQiyDQodCe0KTQmNCI0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0KHQntCk0JjQiNCQCivQodCc0JjQidCQ0J3QmNCLINCh0KLQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0KHQotCV0JLQngor0KHQnNCY0InQkNCd0JjQiyDQotCg0JjQktCeCivQodCc0JjQidCQ0J3QmNCLINCS0JXQodCV0JvQmtCeCivQodCc0JjQidCQ0J3QmNCLINCS0JjQlNCe0KHQkNCSCivQodCc0JjQidCQ0J3QmNCLINCS0JjQndCa0J4KK9Ch0JzQmNCJ0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQnNCY0InQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCc0JjQidCQ0J3QmNCLINCX0JvQkNCi0JrQngor0KHQnNCY0InQkNCd0JjQiyDQl9Ce0KDQmtCQCivQodCc0JjQidCQ0J3QntCSINCc0JjQm9CQ0J0KK9Ch0JzQmNCJ0JDQndCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ch0JzQmNCJ0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQodCc0JjQidCY0Isg0JbQmNCS0JrQngor0KHQnNCY0InQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCc0JjQidCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KHQnNCY0KDQndCe0JIg0IjQo9CU0JjQotCQCivQodCc0JjQoNCd0J7QkiDQiNCj0JTQmNCiCivQodCc0JjQoNCd0J7QkiDQoNCQ0KHQotCY0KHQm9CQ0JIKK9Ch0JzQmNCg0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JzQntCaINCd0JjQmtCe0JvQkAor0KHQnNCe0JvQp9CY0Isg0KDQo9CW0JAKK9Ch0JzQntCb0JXQndCY0KbQmtCYINCc0JXQm9CY0KLQkAor0KHQnNCe0JvQldCd0KHQmtCYINCa0JDQoNCb0J4KK9Ch0JzQntCb0JXQndCh0JrQmCDQoNCe0JfQkNCb0JjQiNCQCivQodCc0J7QidCQ0J3QmNCa0J7QkiDQnNCY0KXQkNCI0JvQniDQlNCY0J/QmyDQmNCd0JMKK9Ch0JzQntCb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQnNCe0JvQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQnNCe0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQnNCe0JvQntCS0JjQiyDQoNCQ0KLQmtCeCivQodCc0J7Qm9Ce0JLQmNCLINCh0JDQktCQCivQodCc0KDQldCa0JAg0JTQoNCQ0JPQmNCm0JAKK9Ch0JzQo9CC0JAg0JPQoNCQ0JTQmNCc0JjQoAor0KHQnNCj0ILQkCDQiNCe0JLQkNCdCivQodCc0KPQgtCQINCc0JjQm9CV0J3QmtCeCivQodCc0KPQgtCQINCd0JjQmtCe0JvQkAor0KHQnNCj0ILQkCDQodCQ0JLQkAor0KHQnNCj0Jog0JbQmNCS0JDQndCQCivQodCc0KPQmiDQkdCe0KDQmNCS0J7QiAor0KHQnNCj0KLQldCaINCI0J7QodCY0J8KK9Ch0JzQo9Ci0J3QmCDQmNCS0JDQnQor0KHQitCY0JTQkCDQkNCd0JAKK9Ch0IrQmNCU0JAg0KHQkNCo0JAKK9Ch0J7QkdCn0JDQmiDQpNCg0JDQitCQCivQodCe0JHQntCn0JDQnSDQnNCY0KjQkAor0KHQntCR0J7Qi9CQ0J0g0JjQktCQ0J0KK9Ch0J7QptCV0Jog0JjQnNCg0JUKK9Ch0J7QptCV0Jog0IjQntCh0JjQnwor0KHQntCm0JXQmiDQnNCY0KDQiNCQ0J3QkAor0KHQntCk0JjQiSDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQntCk0JjQiSDQlNCg0JDQk9CY0KbQkAor0KHQntCk0JjQiSDQiNCe0JLQkNCd0JrQkAor0KHQntCk0JjQiSDQoNCQ0J3QmtCeCivQodCe0KTQmNCJINCh0JvQkNCS0JjQptCQCivQodCe0KTQmNCd0JrQmNCLINCR0KDQkNCd0JrQkAor0KHQntCk0KDQkNCP0JjQiNCQINCc0KPQpdCQ0JzQldCUCivQodCe0KTQoNCQ0J3QmNCdINCR0J7QoNCY0JLQntCICivQodCe0KTQoNCQ0J3QmNCdINCa0KPQl9Cc0JDQnQor0KHQntCk0KDQkNCd0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQntCk0KDQldCd0JjQiyDQktCV0KDQmNCm0JAKK9Ch0J7QpNCg0J7QndCY0IjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0J7QpNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0J7Qk9CY0Isg0KHQkNCS0JAKK9Ch0J7Qk9CY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQodCe0IjQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0J7QiNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ch0J7QmtCV0JvQlSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0J7QmtCY0Isg0JbQmNCS0JrQngor0KHQntCa0JjQiyDQgtCj0KDQgtCY0KbQkAor0KHQntCa0JjQiyDQmNCb0JjQiNCQCivQodCe0JrQmNCLINCb0JjQlNCY0IjQkAor0KHQntCa0JjQiyDQl9Ce0KDQmtCQCivQodCe0JrQndCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQntCa0J7Qm9CQINCQ0J3QotCj0J0KK9Ch0J7QmtCe0JvQkCDQpNCV0KDQldCd0KYKK9Ch0J7QmtCe0JvQkCDQmNCo0KLQktCQ0J0KK9Ch0J7QmtCe0JvQkCDQmNCo0KLQktCQ0J0KK9Ch0J7QmtCe0JvQkCDQmtCQ0KLQkNCg0JjQndCQCivQodCe0JrQntCb0JAg0JzQkNCg0KLQkAor0KHQntCa0J7Qm9CQ0Jgg0IjQntCW0JXQpAor0KHQntCa0J7Qm9CQ0Jgg0JvQkNCI0J7QqAor0KHQntCa0J7Qm9CY0Isg0JbQldCJ0JrQngor0KHQntCa0J7Qm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0J7QmtCe0JvQntCSINCJ0KPQkdCe0JzQmNCgCivQodCe0JrQntCb0J7QkiDQnNCY0JvQkNCdCivQodCe0JrQntCb0J7QkiDQndCQ0JTQmtCQCivQodCe0JrQntCb0J7QkiDQodCb0JDQktCa0JAKK9Ch0J7QmtCe0JvQntCSINCh0KLQldCS0JDQnQor0KHQntCa0J7Qm9Ce0JIg0JfQmNCd0JDQmNCU0J4KK9Ch0J7QmtCe0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQodCe0JrQntCb0J7QktCY0Isg0JDQndCQCivQodCe0JrQntCb0J7QktCY0Isg0JTQo9Co0JrQngor0KHQntCa0J7Qm9Ce0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ch0J7QmtCe0JvQntCS0JjQiyDQnNCY0JvQlQor0KHQntCa0J7Qm9Ce0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ch0J7QmtCe0JvQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0J7QmtCe0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCe0JrQntCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQntCa0J7Qm9Ce0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0J7QmtCe0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ch0J7QmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQntCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQntCb0JDQoCDQidCj0JHQmNCm0JAKK9Ch0J7Qm9CQ0KAg0KHQotCI0JXQn9CQ0J0KK9Ch0J7Qm9CQ0KDQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KHQntCb0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQodCe0JvQkNCg0JjQiyDQodCe0KTQmNCI0JAKK9Ch0J7Qm9CQ0KDQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0J7Qm9CQ0KDQntCSINCR0J7QoNCeCivQodCe0JvQkNCg0J7QkiDQnNCY0JvQkNCdCivQodCe0JvQkNCg0J7QkiDQnNCY0JvQmNCm0JAKK9Ch0J7Qm9CQ0KDQntCSINCc0JjQm9CY0KbQkAor0KHQntCb0JDQoNCe0JIg0JzQmNCb0J7QqAor0KHQntCb0JDQoNCe0JIg0JzQmNCb0J7QktCQ0J0KK9Ch0J7Qm9CQ0KDQntCSINCd0JjQmtCe0JvQkAor0KHQntCb0JDQoNCe0JIg0KDQkNCU0JjQktCe0IgKK9Ch0J7Qm9CU0JDQoiDQkdCe0KjQmtCeCivQodCe0JvQlNCQ0KIg0JHQoNCQ0J3QmtCQCivQodCe0JvQlNCQ0KIg0JTQoNCQ0JPQngor0KHQntCb0JTQkNCiINCc0JjQm9Ce0KgKK9Ch0J7Qm9CU0JDQoiDQnNCY0KLQkNCgCivQodCe0JvQlNCQ0KIg0J/QldCi0JDQoAor0KHQntCb0JTQkNCiINCS0JXQodCd0JAKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCT0J7QoNCQ0J0KK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCc0JjQm9CQCivQodCe0JvQlNCQ0KLQntCS0JjQiyDQodCQ0JLQkCDQndCe0JLQmNCd0JDQoAor0KHQntCb0JTQkNCi0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCS0JXQodCd0JAKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCS0J7QiNCeCivQodCe0JvQlNCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCe0JvQlNCeINCY0JLQkNCdCivQodCe0JvQlNCeINCd0J7QktCY0KbQkAor0KHQntCb0JTQniDQktCb0JDQlNCY0JzQmNCgCivQodCe0JvQldCo0JAg0JzQmNCo0J4KK9Ch0J7Qm9Ce0JzQo9CdINCR0KDQkNCd0JrQngor0KHQntCb0J7QnNCj0J0g0JTQoNCQ0JPQngor0KHQntCb0J7QnNCj0J0g0JjQm9CY0IjQkAor0KHQntCb0J7QnNCj0J0g0JzQmNCb0JUKK9Ch0J7Qm9Ce0JzQo9CdINCS0JXQodCQCivQodCe0JvQntCK0JAg0KHQotCV0JLQkNCdCivQodCe0JzQkdCe0KDQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCe0JzQkdCe0KDQkNCmINCI0J7QktCQ0J0KK9Ch0J7QnNCR0J7QoNCQ0KYg0JzQkNCg0JjQiNCQCivQodCe0JzQkdCe0KDQkNCmINCh0KDQldCL0JrQngor0KHQntCc0JHQntCg0JDQpiDQotCV0KDQldCX0JAKK9Ch0J7QnNCR0J7QoNCQ0KYg0KLQntCU0J7QoAor0KHQntCc0JHQntCg0KHQmtCYINCb0JDQl9CQ0KAKK9Ch0J7QnNCR0J7QoNCh0JrQmCDQnNCY0JvQmNCm0JAKK9Ch0J7QnNCV0KAg0JjQnNCg0JUKK9Ch0J7QnNCV0KAg0IjQldCb0JXQndCQCivQodCe0JzQldCgINCi0JjQkdCe0KAKK9Ch0J7Qn9Ca0JAg0JDQndCY0KbQkAor0KHQntCf0JrQkCDQiNCQ0J3QmtCeCivQodCe0J/QmtCQINCJ0KPQkdCe0JzQmNCgCivQodCe0J/QmtCQINCJ0KPQkdCe0JzQmNCgCivQodCe0J/QmtCQINCc0JDQoNCY0IjQkAor0KHQntCf0JrQkCDQnNCY0KDQntCh0JvQkNCSCivQodCe0KDQqNCQ0Jog0JzQmNCb0JDQnQor0KHQntCg0KjQkNCaINCS0JDQm9CV0J3QotCY0J0KK9Ch0J7QoNCQ0JTQmCDQkNCd0KLQo9CdCivQodCe0KDQkNCU0Jgg0JjQktCQ0J0KK9Ch0J7QoNCQ0JTQmCDQodCi0IjQldCf0JDQnQor0KHQntCg0JDQiNCY0Isg0JzQmNCb0JDQnQor0KHQntCg0JDQiNCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0J7QoNCQ0Jog0JTQldCb0JjQktCe0IjQlQor0KHQntCg0JMg0JDQndCT0JXQm9CY0J3QkAor0KHQntCg0JMg0IjQldCb0JXQndCQCivQodCe0KDQkyDQndCY0JrQntCb0JAKK9Ch0J7QoNCT0JXQoCDQnNCY0KDQkAor0KHQntCg0J4g0JzQmNCb0JDQnQor0KHQntCg0J4g0JzQmNCe0JTQoNCQ0JMKK9Ch0J7QoNCeINCc0JjQoNCI0JDQndCQCivQodCe0KDQniDQndCY0JrQntCb0JAKK9Ch0J7QoNCeINCh0JjQnNCeCivQodCe0KLQldCgINCI0JDQndCe0KgKK9Ch0J7QotCY0KDQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KHQntCi0J7QndCY0KbQkCDQoNCQ0IjQmtCeCivQodCe0JLQkCDQn9CV0KLQkNCgCivQodCe0JLQkCDQoNCj0JTQmAor0KHQntCS0JjQqCDQgtCe0KDQgtCVCivQodCe0JLQmNCoINCc0JjQqNCQCivQodCe0JLQmNCoINCe0JvQk9CQCivQodCe0JLQmNCoINCf0JDQktCb0JUKK9Ch0J7QktCY0Ikg0ILQntCg0ILQlQor0KHQntCS0JjQiSDQgtCj0KDQngor0KHQntCS0JjQiSDQkNCd0ILQldCb0JrQngor0KHQntCS0JjQiSDQkNCd0JrQkAor0KHQntCS0JjQiSDQkdCe0JbQngor0KHQntCS0JjQiSDQkdCe0JPQlNCQ0J0KK9Ch0J7QktCY0Ikg0JTQo9Co0JDQnQor0KHQntCS0JjQiSDQmNCb0JjQiNCQCivQodCe0JLQmNCJINCY0JvQmNCI0JAKK9Ch0J7QktCY0Ikg0JjQm9CY0IjQkAor0KHQntCS0JjQiSDQmNCS0JjQptCQCivQodCe0JLQmNCJINCI0J7QktCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQodCe0JLQmNCJINCJ0KPQkdCY0KbQkAor0KHQntCS0JjQiSDQnNCY0JvQkNCdINCc0KAKK9Ch0J7QktCY0Ikg0JzQmNCb0JDQnQor0KHQntCS0JjQiSDQn9CV0KDQmtCQCivQodCe0JLQmNCJINCf0JXQotCQ0KAKK9Ch0J7QktCY0Ikg0J/QldCi0JDQoAor0KHQntCS0JjQiSDQktCb0JDQlNCeCivQodCf0JDQpdCY0Isg0JrQldCc0JDQmwor0KHQn9CQ0JjQiyDQltCV0InQmtCeCivQodCf0JDQmNCLINCc0JjQm9CQ0J0KK9Ch0J/QkNCY0Isg0JzQmNCb0JDQnQor0KHQn9CQ0IjQmNCLINCR0J7QltCQCivQodCf0JDQiNCY0Isg0JTQmNCa0J4KK9Ch0J/QkNCI0JjQiyDQiNCe0JLQkNCdCivQodCf0JDQiNCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KHQn9CQ0IjQmNCLINCc0JjQm9Ce0IjQlQor0KHQn9CQ0IjQmNCLINCc0JjQoNCI0JDQndCQCivQodCf0JDQiNCY0Isg0KHQntCk0JjQiNCQCivQodCf0JDQiNCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQn9CQ0IjQmNCLINCX0J7QoNCQ0J0KK9Ch0J/QkNCI0JjQiyDQl9Ce0KDQkNCdCivQodCf0JDQm9CV0JLQmNCLINCc0JjQntCc0JjQoAor0KHQn9CQ0JvQldCS0JjQiyDQktCV0KDQkAor0KHQn9CQ0KDQmNCe0KHQmCDQkNCd0ILQldCb0JrQkAor0KHQn9CQ0KHQldCd0J7QodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQodCf0JDQodCV0J3QntCSINCc0JjQm9CVCivQodCf0JDQodCV0J3QntCSINCh0J/QkNCh0JrQngor0KHQn9CQ0KHQldCd0J7QkiDQodCi0JDQndCQCivQodCf0JDQodCV0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCf0JDQodCV0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0J/QkNCh0JXQndCe0JLQodCa0Jgg0KDQntCc0JDQnQor0KHQn9CQ0KHQldCd0J7QktCh0JrQmCDQktCQ0KHQkAor0KHQn9CQ0KHQmNCLINCW0JjQktCe0JzQmNCgCivQodCf0JDQodCY0Isg0ILQntCg0ILQlQor0KHQn9CQ0KHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCf0JDQodCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0J/QkNCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQn9CQ0KHQmNCLINCT0J7QoNCU0JDQndCQCivQodCf0JDQodCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0J/QkNCh0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KHQn9CQ0KHQmNCLINCI0J7QktCQ0J0KK9Ch0J/QkNCh0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQodCf0JDQodCY0Isg0InQmNCJ0JDQndCQCivQodCf0JDQodCY0Isg0InQo9CR0JjQptCQCivQodCf0JDQodCY0Isg0JzQmNCb0JDQnQor0KHQn9CQ0KHQmNCLINCc0JjQm9CV0JLQkAor0KHQn9CQ0KHQmNCLINCc0JjQm9Ce0KgKK9Ch0J/QkNCh0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQn9CQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQodCf0JDQodCY0Isg0JzQmNCg0JrQngor0KHQn9CQ0KHQmNCLINCe0JvQmNCS0JXQoNCQCivQodCf0JDQodCY0Isg0J/QldCi0JDQoAor0KHQn9CQ0KHQmNCLINCf0KDQldCU0KDQkNCTCivQodCf0JDQodCY0Isg0KHQotCQ0J3QmNCo0JAKK9Ch0J/QkNCh0JjQiyDQodCi0JDQndCa0J4KK9Ch0J/QkNCh0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0J/QkNCh0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0KHQn9CQ0KHQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQotCg0JDQiNCQ0J3QmtCQCivQodCf0JDQodCY0Isg0JLQldCb0JjQp9Ca0J4KK9Ch0J/QkNCh0JjQiyDQktCj0IjQmNCm0JAKK9Ch0J/QkNCh0J7QiNCV0JIg0InQo9CR0JjQptCQCivQodCf0JDQodCe0IjQldCSINCh0KLQntCI0JDQnQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JbQmNCS0J7QotCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQodCf0JDQodCe0IjQldCS0JjQiyDQgtCj0KDQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JHQntCg0JjQqNCQINCc0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCm0JLQldCi0JrQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JTQldCh0JjQnNCY0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQodCf0JDQodCe0IjQldCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCT0J7QodCf0JDQktCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQk9Ce0KHQotCY0JzQmNCgCivQodCf0JDQodCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQodCf0JDQodCe0IjQldCS0JjQiyDQiNCj0JvQmtCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCa0KDQodCi0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0JjQi9CeCivQodCf0JDQodCe0IjQldCS0JjQiyDQnNCY0IvQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCf0JDQodCe0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQodCf0JDQodCe0IjQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0J3QntCS0JDQmgor0KHQn9CQ0KHQntCI0JXQktCY0Isg0J/QkNCS0JvQlQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCg0JDQptCeCivQodCf0JDQodCe0IjQldCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KDQkNCU0J7QiNCb0JUKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCg0JDQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCf0JDQodCe0IjQldCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KDQo9CW0JjQptCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQodCb0JDQktCa0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQm9CQ0JLQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQntCK0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0KPQl9CQ0J3QkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAg0JTQoAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0KHQn9CQ0KHQntCb0Jgg0KTQldCg0JDQogor0KHQn9CQ0KHQntCS0JAg0InQo9CR0JjQptCQCivQodCf0JXQoNCQ0J3QodCa0Jgg0InQo9CU0JzQmNCb0JAg0JzQoAor0KHQn9CV0KDQitCQ0Jog0ILQntCg0ILQlQor0KHQn9CV0KDQitCQ0Jog0JHQntCT0JTQkNCdCivQodCf0JXQoNCK0JDQmiDQidCj0JHQmNCd0JrQkAor0KHQn9CV0KDQitCQ0Jog0JzQmNCb0JXQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCf0JXQktCQ0Jog0JTQkNCd0JjQldCb0JAKK9Ch0J/QldCS0JDQmiDQiNCj0KDQkNCICivQodCf0JXQktCQ0Jog0JfQntCg0J7QodCb0JDQkgor0KHQn9CY0KfQkNCd0J7QktCY0Isg0JXQktCY0KbQkAor0KHQn9CY0KfQkNCd0J7QktCY0Isg0JzQkNCI0JAKK9Ch0J/QmNCn0JDQndCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQodCf0JjQm9Ca0KPQptCY0Isg0JHQntCg0JjQktCe0IjQlQor0KHQn9CY0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCf0JjQoNCY0JTQntCd0J7QkiDQkNCd0JDQodCi0JDQoQor0KHQn9CY0KDQmNCU0J7QndCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ch0J/QmNCg0JjQlNCe0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQn9CY0KDQmNCU0J7QndCe0JLQmNCLINCh0JjQm9CS0JjQiNCQCivQodCf0JjQoNCe0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCf0JjQoNCe0JLQodCa0Jgg0KbQkNCd0JUKK9Ch0J/QntCI0JAg0JbQldCJ0JrQngor0KHQn9Cg0JXQnNCY0Isg0JTQoNCQ0JPQkNCdCivQodCf0KDQldCc0JjQiyDQn9CV0KLQkNCgCivQodCf0KDQldCc0JjQiyDQodCg0JXQotCV0J0KK9Ch0J/QoNCV0JzQniDQgtCj0KDQngor0KHQn9Cg0JXQnNCeINCc0JjQntCU0KDQkNCTCivQodCf0KDQldCc0J4g0JzQmNCg0JrQngor0KHQn9Cg0JXQnNCeINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0J/QoNCV0JzQniDQoNCQ0JTQntCS0JDQnQor0KHQn9Cg0JXQnNCeINCh0JvQkNCS0JrQngor0KHQn9Cg0JXQnNCeINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0J/Qo9Ch0JXQndCY0Jog0JvQkNCI0J7QqAor0KHQoNCC0JDQndCe0JIg0JbQkNCg0JrQngor0KHQoNCC0JDQndCe0JIg0JbQmNCS0JrQngor0KHQoNCC0JDQndCe0JIg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ch0KDQgtCQ0J3QntCSINCc0JjQpdCQ0IjQm9CeCivQodCg0ILQkNCd0J7QkiDQnNCY0JvQmNCS0J7QiAor0KHQoNCC0JDQndCe0JIg0JzQmNCb0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KDQgtCQ0J3QntCSINCc0JjQm9Ce0KgKK9Ch0KDQgtCQ0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KDQgtCQ0J3QntCSINCd0JDQlNCQCivQodCg0ILQkNCd0J7QkiDQndCQ0JTQkAor0KHQoNCC0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQodCg0ILQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KHQoNCC0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ch0KDQgtCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KDQgtCQ0J3QntCSINCS0JXQoNCQCivQodCg0ILQldCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQoNCC0JXQndCe0JLQmNCLINCj0KDQntCoCivQodCg0ILQldCS0JjQiyDQkdCe0IjQkNCdCivQodCg0JHQmNCdINCQ0J3QmtCQCivQodCg0JHQmNCdINCR0J7Qk9CU0JDQnQor0KHQoNCR0JjQnSDQiNCe0JLQkNCdINCU0KAKK9Ch0KDQkdCY0J0g0JrQntCh0KLQkAor0KHQoNCR0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQodCg0JHQmNCd0J7QktCh0JrQmCDQkdCe0KDQmNChCivQodCg0JHQmNCd0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J3QkAor0KHQoNCR0JjQndCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCd0JAKK9Ch0KDQkdCY0J3QntCS0KHQmtCYINCc0JDQqNCQCivQodCg0JHQmNCd0J7QktCh0JrQmCDQn9CQ0J3QotCQCivQodCg0JHQmNCd0J7QktCh0JrQmCDQn9CV0KLQkNCgCivQodCg0JHQidCQ0J0g0JvQkNCX0JDQoAor0KHQoNCR0InQkNCd0JjQnSDQlNCg0JDQk9CQ0J0KK9Ch0KDQkdCJ0JDQndCY0J0g0J/QoNCV0JTQoNCQ0JMKK9Ch0KDQkdCe0JLQkNCdINCI0J7QnQor0KHQoNCR0KPQm9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCg0JHQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQoNCR0KPQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KDQlNCQ0J3QntCSINCW0JjQktCQ0J0KK9Ch0KDQlNCQ0J3QntCSINCW0JjQktCe0IjQmNCdCivQodCg0JTQkNCd0J7QkiDQgtCe0KDQgtCVCivQodCg0JTQkNCd0J7QkiDQkdCe0JbQmNCU0JDQoAor0KHQoNCU0JDQndCe0JIg0IjQldCb0JrQkAor0KHQoNCU0JDQndCe0JIg0IjQntCS0JDQnQor0KHQoNCU0JDQndCe0JIg0JvQkNCX0JDQoAor0KHQoNCU0JDQndCe0JIg0JvQkNCX0JDQoAor0KHQoNCU0JDQndCe0JIg0InQmNCJ0JDQndCQCivQodCg0JTQkNCd0J7QkiDQnNCY0KjQkAor0KHQoNCU0JDQndCe0JIg0JzQmNCb0JjQptCQCivQodCg0JTQkNCd0J7QkiDQnNCY0JvQntCoCivQodCg0JTQkNCd0J7QkiDQnNCY0JvQntCh0JDQktCQCivQodCg0JTQkNCd0J7QkiDQn9CV0KLQkNCgCivQodCg0JTQkNCd0J7QkiDQodCY0JzQkAor0KHQoNCU0JDQndCe0JIg0KHQm9CQ0JLQmtCQCivQodCg0JTQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQodCg0JTQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQodCg0JTQkNCd0J7QkiDQotCe0JTQntCgCivQodCg0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCg0JTQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0KHQoNCU0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QiNCVCivQodCg0JTQkNCd0J7QktCY0Isg0KTQmNCb0JjQnwor0KHQoNCU0JDQndCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0KDQlNCQ0J3QntCS0JjQiyDQntCX0KDQldCdINCU0JjQn9CbINCY0J3Qkwor0KHQoNCU0JDQndCe0JLQmNCLINCg0J7QodCQ0J3QlNCQCivQodCg0JTQkNCd0J7QktCY0Isg0KHQkNCK0JAKK9Ch0KDQlNCY0Isg0KfQldCU0J7QnNCY0KAKK9Ch0KDQlNCY0Isg0JbQmNCS0JrQngor0KHQoNCU0JjQiyDQltCY0JLQmtCeCivQodCg0JTQmNCLINCW0JjQktCa0J4KK9Ch0KDQlNCY0Isg0ILQntCg0ILQlSDQnNCgCivQodCg0JTQmNCLINCC0KPQoNCeCivQodCg0JTQmNCLINCQ0J3QgtCQCivQodCg0JTQmNCLINCQ0J3QkAor0KHQoNCU0JjQiyDQkdCe0KjQmtCeCivQodCg0JTQmNCLINCR0J7Qk9CU0JDQnQor0KHQoNCU0JjQiyDQkdCe0KHQkAor0KHQoNCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KDQlNCY0Isg0JTQkNCd0JUKK9Ch0KDQlNCY0Isg0JTQmNCI0JDQndCQCivQodCg0JTQmNCLINCU0KPQqNCQ0J0KK9Ch0KDQlNCY0Isg0JXQnNCV0KDQmNCa0JAKK9Ch0KDQlNCY0Isg0JXQnNCV0KDQmNCa0JAKK9Ch0KDQlNCY0Isg0JPQntCg0JDQnQor0KHQoNCU0JjQiyDQmNCS0JDQnQor0KHQoNCU0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KDQlNCY0Isg0InQo9CR0JjQptCQCivQodCg0JTQmNCLINCc0JjQm9CQ0J0KK9Ch0KDQlNCY0Isg0JzQmNCb0JDQnQor0KHQoNCU0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KDQlNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KDQlNCY0Isg0JzQmNCg0JrQngor0KHQoNCU0JjQiyDQnNCY0KDQmtCeCivQodCg0JTQmNCLINCd0JDQlNCQCivQodCg0JTQmNCLINCd0JDQlNCQCivQodCg0JTQmNCLINCd0JjQmtCe0JvQkAor0KHQoNCU0JjQiyDQndCY0JrQntCb0JAKK9Ch0KDQlNCY0Isg0J3QmNCa0J7Qm9CQCivQodCg0JTQmNCLINCf0JXQotCQ0KAKK9Ch0KDQlNCY0Isg0KDQkNCU0JUKK9Ch0KDQlNCY0Isg0KDQkNCU0JUKK9Ch0KDQlNCY0Isg0KHQmNCc0JAKK9Ch0KDQlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQoNCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCg0JTQmNCLINCS0JDQodCeCivQodCg0JTQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KDQlNCY0Isg0JLQntCI0JAKK9Ch0KDQlNCY0Isg0JfQntCg0JAKK9Ch0KDQldCL0JrQntCSINCW0JjQktCa0J4KK9Ch0KDQldCL0JrQntCSINCR0JvQkNCT0JjQptCQCivQodCg0JXQi9Ca0J7QkiDQkdCg0JDQndCa0J4KK9Ch0KDQldCL0JrQntCSINCU0KDQkNCT0JDQnQor0KHQoNCV0IvQmtCe0JIg0JTQoNCQ0JPQmNCm0JAKK9Ch0KDQldCL0JrQntCSINCU0KPQqNCQ0J0KK9Ch0KDQldCL0JrQntCSINCU0KPQqNCQ0J0KK9Ch0KDQldCL0JrQntCSINCV0KDQltCV0JHQldCiCivQodCg0JXQi9Ca0J7QkiDQiNCe0JLQkNCdCivQodCg0JXQi9Ca0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KDQldCL0JrQntCSINCc0JjQm9CV0J3QkAor0KHQoNCV0IvQmtCe0JIg0JzQmNCb0JXQndCQCivQodCg0JXQi9Ca0J7QkiDQnNCY0JvQmNCS0J7QiAor0KHQoNCV0IvQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KHQoNCV0IvQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Ch0KDQldCL0JrQntCSINCg0JDQlNCe0IjQmtCQCivQodCg0JXQi9Ca0J7QkiDQodCi0JDQndCa0J4KK9Ch0KDQldCL0JrQntCSINCh0KLQldCS0JDQnQor0KHQoNCV0IvQmtCe0JIg0KLQldCe0JTQntCg0JAKK9Ch0KDQldCL0JrQntCSINCS0JDQodCQCivQodCg0JXQi9Ca0J7QkiDQl9CU0KDQkNCS0JrQngor0KHQoNCV0IvQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ch0KDQldCL0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQoNCV0IvQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQoNCV0IvQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCg0JXQi9Ca0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQodCg0JXQi9Ca0J7QktCY0Isg0KHQotCe0IjQkNCd0JAKK9Ch0KDQldCL0J4g0JTQkNCd0JjQptCQCivQodCg0JXQi9CeINCc0JjQi9CeCivQodCg0JXQkdCe0KLQitCQ0Jog0KHQotCQ0J3QmtCeCivQodCg0JXQkdCg0J4g0JjQm9CY0IjQkCDQlNCgCivQodCg0JXQlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KDQldCU0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCg0JXQlNCe0IjQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KHQoNCV0JTQntCI0JXQktCY0Isg0JTQntCR0KDQngor0KHQoNCV0JTQntCI0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQodCg0JXQlNCe0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQodCg0JXQlNCe0IjQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KHQoNCV0JTQntCI0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQodCg0JXQlNCe0JLQmNCLINCg0JDQiNCa0J4KK9Ch0KDQldCI0JjQiyDQkdCe0KDQmtCQCivQodCg0JXQnNCn0JXQkiDQgtCe0KDQgtCVCivQodCg0JXQnNCn0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Ch0KDQldCc0KfQldCSINCb0JDQl9CQ0KAKK9Ch0KDQldCc0KfQldCSINCc0JDQoNCY0IjQkAor0KHQoNCV0JzQp9CV0JIg0J3QldCh0KLQntCgCivQodCg0JXQnNCn0JXQkiDQodCb0J7QkdCe0JTQkNCdCivQodCg0JXQnNCn0JXQkiDQodCe0KTQmNCI0JAKK9Ch0KDQldCc0KfQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCg0JXQnNCn0JXQktCY0Isg0IjQntCS0JDQnQor0KHQoNCV0JzQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KDQldCc0KfQldCS0JjQiyDQmtCQ0KLQkAor0KHQoNCV0JzQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0KHQoNCV0JzQp9CV0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQoNCV0JzQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCICivQodCg0JXQnNCn0JXQktCY0Isg0KDQkNCh0KLQmtCeCivQodCg0JXQnNCn0JXQktCY0Isg0KHQm9CQ0JLQndCQCivQodCg0JXQnNCn0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCg0JXQnNCn0JXQktCY0Isg0JLQldCJ0JrQngor0KHQoNCV0JzQkNCn0JrQmCDQgtCe0KDQgtCVCivQodCg0JXQnNCQ0KfQmtCYINCU0KDQkNCT0J7QidCj0JEKK9Ch0KDQldCc0JDQp9Ca0Jgg0JTQo9Co0JDQndCa0JAKK9Ch0KDQldCc0JDQp9Ca0Jgt0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQkNCI0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0JjQktCQ0J3QmtCQCivQodCg0JXQnNCQ0KfQmtCYINCI0J7QktCQ0J3QmtCQCivQodCg0JXQnNCQ0KfQmtCYINCc0JjQm9Ce0KgKK9Ch0KDQldCc0JDQp9Ca0Jgt0JzQmNCg0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQoNCV0JzQkNCn0JrQmCDQn9CV0KLQkNCgCivQodCg0JXQnNCQ0KfQmtCYINCh0JjQnNCQCivQodCg0JXQnNCQ0KfQmtCYINCh0J7QmtCQCivQodCg0JXQnNCQ0KfQmtCYINCh0J/QkNCh0J7QiNCVCivQodCg0JXQnNCQ0KfQmtCYINCh0KLQkNCd0J7QiNCVCivQodCg0JXQnNCQ0KfQmtCYINCS0JvQkNCU0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQodCg0JXQnNCQ0KYg0ILQntCg0ILQlQor0KHQoNCV0JzQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCg0JXQnNCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0KHQoNCV0JzQkNCmINCY0KHQkNCaCivQodCg0JXQnNCQ0KYg0IjQkNCd0JrQngor0KHQoNCV0JzQkNCmINCI0J7QktCQ0J0KK9Ch0KDQldCc0JDQpiDQidCj0JHQmNCm0JAKK9Ch0KDQldCc0JDQpiDQidCj0JHQmNCm0JAKK9Ch0KDQldCc0JDQpiDQnNCY0JvQldCd0JAKK9Ch0KDQldCc0JDQpiDQnNCY0JvQldCd0JrQngor0KHQoNCV0JzQkNCmINCc0JjQm9CY0JLQntCICivQodCg0JXQnNCQ0KYg0JzQmNCg0JAKK9Ch0KDQldCc0JDQpiDQndCY0JrQntCb0JAKK9Ch0KDQldCc0JDQpiDQn9CQ0KPQm9CY0J3QkAor0KHQoNCV0JzQkNCmINCf0JDQktCb0JUKK9Ch0KDQldCc0JDQpiDQn9CV0KDQodCY0JTQkAor0KHQoNCV0JzQkNCmINCg0JDQlNCe0IjQmtCeCivQodCg0JXQnNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0KHQoNCV0JzQkNCmINCh0KDQgtCQ0J0KK9Ch0KDQldCc0JDQpiDQodCi0J7QiNCQ0J3QmtCQCivQodCg0JXQnNCQ0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQodCg0JXQnNCQ0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQodCg0JXQnNCQ0KYg0KLQkNCd0JDQodCY0IjQlQor0KHQoNCV0JzQkNCmINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KDQldCc0JDQpiDQktCb0JDQiNCa0J4KK9Ch0KDQldCc0JDQpiDQl9Ce0KDQkNCd0JAKK9Ch0KDQldCc0JDQpiDQl9Ce0KDQkNCdCivQodCg0JXQotCV0J3QntCS0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQodCg0JXQotCV0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0KHQoNCV0KLQldCd0J7QktCY0Ist0JzQkNCd0J7QiNCb0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0KHQoNCV0KLQldCd0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0KDQldCi0JXQndCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Ch0KDQldCi0JjQiyDQnNCY0JvQldCd0JrQngor0KHQoNCV0KLQmNCLINCc0JjQoNCI0JDQndCQCivQodCg0JXQotCY0Isg0KDQkNCi0J7QnNCY0KAKK9Ch0KDQldCi0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Ch0KDQndCU0J7QktCY0Isg0JfQntCg0JrQkAor0KHQoNCd0JXQpiDQltCV0InQmtCeCivQodCg0J3QmNCLINCR0J7Qk9CU0JDQnQor0KHQoNCd0JjQiyDQldCS0JjQptCQCivQodCg0J3QmtCQINCI0JDQndCa0J4KK9Ch0KDQndCa0JAg0IjQntCS0JDQnQor0KHQotCQ0KjQo9CaINCc0JjQpdCQ0IjQm9CeCivQodCi0JDQpdCQ0J3QmNCLINCQ0J3QmtCQCivQodCi0JDQmNCdINCh0KLQldCS0JDQnQor0KHQotCQ0IjQp9CY0Isg0JjQktCQ0J0KK9Ch0KLQkNCI0KfQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCI0KjQmNCLINCC0KPQoNCQCivQodCi0JDQiNCY0Isg0ILQntCg0ILQlQor0KHQotCQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCi0JDQiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQkNCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JDQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0IjQmNCLINCR0J7QoNCY0JLQntCICivQodCi0JDQiNCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KHQotCQ0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCQ0IjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCI0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQiNCY0Isg0JTQo9Co0JjQptCQCivQodCi0JDQiNCY0Isg0KTQldCc0JAKK9Ch0KLQkNCI0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ch0KLQkNCI0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ch0KLQkNCI0JjQiyDQk9Cg0JjQk9Ce0KDQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQiNCY0Isg0IjQo9Ch0KLQmNCd0JAKK9Ch0KLQkNCI0JjQiyDQm9CV0J/QntCh0JDQktCQCivQodCi0JDQiNCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCI0JjQiyDQnNCQ0KDQkAor0KHQotCQ0IjQmNCLINCc0JDQoNCY0IjQkAor0KHQotCQ0IjQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQiNCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0IjQmNCLINCc0JjQm9CV0KHQkAor0KHQotCQ0IjQmNCLINCc0JjQm9CV0JLQkAor0KHQotCQ0IjQmNCLINCc0JjQm9Ca0JAKK9Ch0KLQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0JDQiNCY0Isg0J3QldCh0KLQntCgCivQodCi0JDQiNCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0IjQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCI0JjQiy3Qn9Ce0J/QntCSINCR0J7QoNCY0KHQm9CQ0JLQkCDQlNCgCivQodCi0JDQiNCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KLQkNCI0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCi0JDQiNCY0Isg0KHQmNCa0JAKK9Ch0KLQkNCI0JjQiyDQodCg0JXQotCQCivQodCi0JDQiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCi0JDQiNCY0Isg0KHQotCe0IjQkNCU0JjQnQor0KHQotCQ0IjQmNCLINCi0J7QlNCe0KAKK9Ch0KLQkNCI0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCQ0IjQmNCLINCS0KPQmtCe0KHQkNCSCivQodCi0JDQiNCY0Isg0JfQm9CQ0KLQkAor0KHQotCQ0IjQmtCe0JLQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0KHQotCQ0IjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCa0JjQiyDQltCY0JLQkNCdCivQodCi0JDQmtCY0Isg0JbQmNCS0JrQkAor0KHQotCQ0JrQmNCLINCC0KPQoNCeCivQodCi0JDQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCa0JjQiyDQkdCe0KjQmtCeCivQodCi0JDQmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQkNCa0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQodCi0JDQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0JDQmtCY0Isg0JTQldCI0JDQnQor0KHQotCQ0JrQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQmtCY0Isg0IjQldCb0JXQndCQCivQodCi0JDQmtCY0Isg0IjQntCS0JDQnSDQodCj0JTQmNCI0JAKK9Ch0KLQkNCa0JjQiyDQnNCV0JvQmNCd0JTQkAor0KHQotCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCa0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQmtCY0Isg0JzQmNCg0JrQngor0KHQotCQ0JrQmNCLINCc0J7QnNCY0KAKK9Ch0KLQkNCa0JjQiyDQndCV0JHQntCI0KjQkAor0KHQotCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQodCi0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQmtCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0JrQmNCLINCh0J/QntCc0JXQndCa0JAKK9Ch0KLQkNCa0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCa0JjQiyDQktCV0KDQkAor0KHQotCQ0JrQmNCLINCX0JDQpdCQ0KDQmNCI0JUKK9Ch0KLQkNCa0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQmtCe0KDQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCi0JDQnNCQ0KLQntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgCivQodCi0JDQnNCQ0KLQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQotCQ0JzQldCd0JjQiyDQlNCQ0JzQitCQ0J0KK9Ch0KLQkNCc0JXQndCY0Isg0JzQkNCg0JrQngor0KHQotCQ0JzQldCd0JjQiyDQoNCQ0JTQntCh0JDQkgor0KHQotCQ0JzQldCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCc0JDQoNCI0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0J3QntCS0JjQptCQCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCf0JXQotCg0J7QndCY0IjQlQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCg0JXQotCV0J0g0JTQoAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JXQoNCQCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0KPQmtCQ0JTQmNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JfQntCg0JAKK9Ch0KLQkNCc0JXQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0JDQnNCV0J3QntCSINCd0JjQmtCe0JvQkAor0KHQotCQ0JzQldCd0J7QkiDQodCb0JDQktCa0JAKK9Ch0KLQkNCc0JXQndCe0JLQmNCLINCa0KDQodCi0JjQktCe0IgKK9Ch0KLQkNCc0JXQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Ch0KLQkNCc0JXQktCh0JrQmCDQotCe0J3Qp9CVCivQodCi0JDQnNCe0KDQkNCdINCa0JDQotCY0KbQkAor0KHQotCQ0JzQn9Ck0JXQoCDQoNCe0JfQkNCb0JjQiNCQCivQodCi0JDQndCn0JXQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQkNCd0KfQldCi0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQndCn0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQotCQ0J3Qp9CY0Isg0JDQndCU0KDQmNCI0JAg0JTQoAor0KHQotCQ0J3Qp9CY0Isg0JHQm9CQ0JPQntCI0JUg0JzQoAor0KHQotCQ0J3Qp9CY0Isg0JHQntCW0JDQndCQCivQodCi0JDQndCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCQ0J3Qp9CY0Isg0JTQkNCd0JjQptCQCivQodCi0JDQndCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0JDQndCn0JjQiyDQm9CQ0JfQkNCgCivQodCi0JDQndCn0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCn0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQndCn0JjQiyDQnNCY0IvQkAor0KHQotCQ0J3Qp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQkNCd0KfQmNCLINCc0JjQmtCQCivQodCi0JDQndCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCn0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQndCn0JjQiyDQotCQ0J3QmtCe0KHQkNCS0JAKK9Ch0KLQkNCd0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQodCi0JDQndCn0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCn0JjQmiDQnNCQ0KDQk9CY0KLQkAor0KHQotCQ0J3Qp9CjINCc0JDQoNCY0IjQkAor0KHQotCQ0J3Qp9Cj0Jsg0JbQmNCS0JDQnQor0KHQotCQ0J3Qp9Cj0Jsg0JDQndCa0JAKK9Ch0KLQkNCd0KfQo9CbINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3Qp9Cj0Jsg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCd0KfQo9CbINCg0JDQlNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0KfQo9CbINCg0JDQlNCe0JLQkNCdCivQodCi0JDQndCn0KPQmyDQodCQ0JLQkAor0KHQotCQ0J3Qp9Cj0JvQntCSINCU0KDQkNCT0JjQptCQCivQodCi0JDQndCn0KPQm9Ce0JIg0JzQmNCb0JDQnQor0KHQotCQ0J3QkNCL0JXQkiDQltCY0JLQkAor0KHQotCQ0J3QkNCL0JXQkiDQnNCY0JvQldCd0JAKK9Ch0KLQkNCd0JDQi9CV0JIg0JzQmNCb0JjQktCe0IgKK9Ch0KLQkNCd0JDQi9CV0JIg0KHQoNCV0JTQntCI0JUg0JTQoAor0KHQotCQ0J3QkNCgINCC0KPQoNCQCivQodCi0JDQndCQ0KAg0ILQo9Cg0JAKK9Ch0KLQkNCd0JDQoCDQgtCj0KDQkAor0KHQotCQ0J3QkNCgINCQ0J3QmtCQCivQodCi0JDQndCQ0KAg0JTQldCh0JAKK9Ch0KLQkNCd0JDQoCDQlNCj0KjQkNCd0JrQkAor0KHQotCQ0J3QkNCgINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JDQoC3Qk9Ce0JPQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QkNCgINCY0JvQmNCI0JAKK9Ch0KLQkNCd0JDQoCDQnNCY0JvQlQor0KHQotCQ0J3QkNCgINCg0JDQlNCVCivQodCi0JDQndCQ0KAg0KDQkNCi0JrQngor0KHQotCQ0J3QkNCg0JXQktCY0Isg0JbQldCJ0JrQngor0KHQotCQ0J3QkNCg0JXQktCY0Isg0JHQntCW0JAKK9Ch0KLQkNCd0JDQoNCV0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JDQoNCV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQodCi0JDQndCQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCQ0KDQldCS0JjQiyDQndCV0JTQldCJ0JrQkAor0KHQotCQ0J3QkNCg0JXQktCY0Isg0KHQkNCS0JAKK9Ch0KLQkNCd0JHQntCb0JjQiNCQINCc0JjQoNCa0J4KK9Ch0KLQkNCd0JXQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JXQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KHQotCQ0J3QldCa0J7QktCY0Isg0JLQntCI0JAKK9Ch0KLQkNCd0JjQp9Ca0J7QkiDQp9CV0JTQntCc0JjQoAor0KHQotCQ0J3QmNCn0JrQntCSINCR0J7QoNCQCivQodCi0JDQndCY0KfQmtCe0JIg0IjQntCS0JDQnQor0KHQotCQ0J3QmNCn0JrQntCSINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3QmNCn0JrQntCSINCc0JDQoNCi0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQkNCd0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0J3QmNCo0JjQiyDQkdCj0JTQmNCd0JrQkAor0KHQotCQ0J3QmNCo0JjQiyDQlNCQ0JzQiNCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCQ0J3QmNCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0JDQndCY0KjQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCY0KjQmNCLINCT0J7QiNCa0J4KK9Ch0KLQkNCd0JjQqNCY0Isg0IjQldCb0JXQndCQCivQodCi0JDQndCY0KjQmNCLINCI0J7QktCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0IjQntCS0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KHQotCQ0J3QmNCo0JjQiyDQidCY0InQkNCd0JAg0JTQoAor0KHQotCQ0J3QmNCo0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JzQkNCg0JrQngor0KHQotCQ0J3QmNCo0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQndCY0KjQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQmNCLINCU0KAg0JvQldCa0JDQoAor0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQntCoCivQodCi0JDQndCY0KjQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCY0KjQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCY0KjQmNCLINCc0JvQkNCU0JXQnQor0KHQotCQ0J3QmNCo0JjQiyDQnNCe0JzQmNCgCivQodCi0JDQndCY0KjQmNCLINCd0JXQkdCe0IjQqNCQCivQodCi0JDQndCY0KjQmNCLINCd0JXQlNCV0InQmtCQCivQodCi0JDQndCY0KjQmNCLINCd0JjQmtCe0JvQkAor0KHQotCQ0J3QmNCo0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0J7Qm9CT0JjQptCQCivQodCi0JDQndCY0KjQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0JjQqNCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0J3QmNCo0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCY0KjQmNCLINCf0KDQntCa0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0KDQkNCU0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0KDQkNCi0JrQngor0KHQotCQ0J3QmNCo0JjQiyDQoNCV0InQkAor0KHQotCQ0J3QmNCo0JjQiyDQodCY0JzQngor0KHQotCQ0J3QmNCo0JjQiyDQodCb0JDQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0KHQotCQ0J3QmNCo0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCi0JDQndCY0KjQmNCLINCh0KLQldCS0J4KK9Ch0KLQkNCd0JjQqNCY0Isg0KHQotCe0IjQkNCd0KfQkAor0KHQotCQ0J3QmNCo0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCi0JDQndCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAg0JTQoAor0KHQotCQ0J3QmNCo0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JDQndCY0KjQmNCLINCi0JjQpdCe0JzQmNCgCivQodCi0JDQndCY0KjQmNCLINCi0J7QlNCe0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0KLQntCc0JDQqAor0KHQotCQ0J3QmNCo0JjQiyDQktCQ0KHQmNCJ0JrQkAor0KHQotCQ0J3QmNCo0JjQiyDQktCV0InQmtCeCivQodCi0JDQndCY0KjQmNCLINCS0JvQkNCU0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JfQntCg0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCY0KjQmNCdINCR0KDQkNCd0JrQngor0KHQotCQ0J3QmNCo0JjQnSDQmNCh0JAKK9Ch0KLQkNCd0JjQqNCY0J0g0JLQntCI0JjQnQor0KHQotCQ0J3QmNCo0InQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCQ0J3QmNCLINCW0JjQktCQ0JTQmNCdCivQodCi0JDQndCY0Isg0JbQmNCS0JDQnQor0KHQotCQ0J3QmNCLINCC0KPQoNCQCivQodCi0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCd0JjQiyDQkdCe0KjQmtCeCivQodCi0JDQndCY0Isg0JHQntCT0JTQkNCdCivQodCi0JDQndCY0Isg0JHQoNCQ0J3QmtCQCivQodCi0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JDQndCY0Isg0JTQkNCd0JUKK9Ch0KLQkNCd0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQkNCd0JjQiyDQlNCQ0J3QmtCQCivQodCi0JDQndCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQndCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9Ch0KLQkNCd0JjQiyDQlNCg0JDQk9CeCivQodCi0JDQndCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmNCLINCT0J7QiNCa0J4KK9Ch0KLQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCY0Isg0JjQm9CY0IjQkAor0KHQotCQ0J3QmNCLINCY0JvQmNCI0JAKK9Ch0KLQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCY0Isg0JjQktCQ0J0KK9Ch0KLQkNCd0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQodCi0JDQndCY0Isg0IjQldCb0JXQndCQCivQodCi0JDQndCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCLINCI0KPQm9Ca0JAKK9Ch0KLQkNCd0JjQiyDQmtCg0JjQodCi0JjQktCe0IjQlQor0KHQotCQ0J3QmNCLINCb0JjQndCa0JAKK9Ch0KLQkNCd0JjQiyDQidCj0JHQntCU0KDQkNCTCivQodCi0JDQndCY0Isg0JzQkNCd0JUKK9Ch0KLQkNCd0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQndCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KHQotCQ0J3QmNCLINCc0JjQm9CQ0J3QmtCeCivQodCi0JDQndCY0Isg0JzQmNCb0JDQndCa0J4KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCY0Isg0JzQmNCb0JUKK9Ch0KLQkNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQkNCd0JjQiyDQnNCY0JvQmNCd0JrQngor0KHQotCQ0J3QmNCLINCc0JjQm9CY0KHQkNCSCivQodCi0JDQndCY0Isg0JzQmNCb0J7QiNCVCivQodCi0JDQndCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0KHQotCQ0J3QmNCLINCc0JvQkNCU0JXQnQor0KHQotCQ0J3QmNCLINCc0J7QnNCn0JjQm9CeCivQodCi0JDQndCY0Isg0J7Qm9CT0JAKK9Ch0KLQkNCd0JjQiyDQntCh0KLQntCI0JAKK9Ch0KLQkNCd0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCY0Isg0J/QldCi0JDQoAor0KHQotCQ0J3QmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JjQiyDQoNCQ0JTQlQor0KHQotCQ0J3QmNCLINCg0JDQlNCVCivQodCi0JDQndCY0Isg0KDQkNCU0JjQqNCQCivQodCi0JDQndCY0Isg0KDQkNCU0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0Isg0KDQkNCI0JrQngor0KHQotCQ0J3QmNCLINCh0JDQktCeCivQodCi0JDQndCY0Isg0KHQmNCc0J4KK9Ch0KLQkNCd0JjQiyDQodCY0J3QmNCo0JAKK9Ch0KLQkNCd0JjQiyDQodCf0JDQodCe0IjQlQor0KHQotCQ0J3QmNCLINCh0KDQgtCQ0J0KK9Ch0KLQkNCd0JjQiyDQodCi0JDQnNCV0J3QkAor0KHQotCQ0J3QmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmNCLINCj0KDQntCoCivQodCi0JDQndCY0Isg0JLQldCb0JjQkdCe0KAKK9Ch0KLQkNCd0JjQiyDQktCY0JrQotCe0KAKK9Ch0KLQkNCd0JjQiyDQktCY0KLQntCc0JjQoAor0KHQotCQ0J3QmNCLINCS0JjQotCe0JzQmNCgCivQodCi0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCY0Isg0JfQntCg0JDQnQor0KHQotCQ0J3QmNCW0JDQnSDQnNCY0JvQntCg0JDQlAor0KHQotCQ0J3QmNCaINCe0JvQk9CQCivQodCi0JDQndCY0JrQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQmtCY0Isg0JzQmNCb0JXQktCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0JDQndCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQkdCe0KDQmNCS0J7QiAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0JHQoNCQ0J3QmtCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQlNCj0KjQkNCdCivQodCi0JDQndCY0JzQmNCg0J7QkiDQk9CQ0JLQoNCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQiNCV0JvQmtCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0InQmNCJ0JDQndCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCd0JXQlNCV0InQmtCeCivQodCi0JDQndCY0JzQmNCg0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0KDQkNCd0JrQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0KHQm9CQ0JLQmtCeCivQodCi0JDQndCY0JzQmNCg0J7QkiDQl9Ce0KDQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQmtCg0KHQotCeCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JzQntCc0JAg0JTQoAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCi0KDQmNCk0KPQnQor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCS0JXQoNCe0J3QmNCa0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0ILQntCa0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0ILQntCg0ILQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQkNCd0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0JTQntCR0KDQmNCS0J7QiAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQlNCj0KjQkNCdCivQodCi0JDQndCY0KHQkNCS0InQldCSINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0JvQkNCdCivQodCi0JDQndCY0KHQkNCS0InQldCSINCc0JjQm9CY0KbQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0JvQntCI0JrQngor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0ILQntCg0ILQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQkdCe0JbQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KbQktCV0KLQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQkNCd0JUKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JPQmNCX0JXQm9CQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JjQk9CK0JDQotCY0IjQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JrQkNCi0JjQptCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0JrQngor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0J3QkNCU0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCg0JDQlNCVCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0JLQoNCQINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQktCV0JvQmNCX0JDQoAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JLQldCJ0JrQngor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JjQptCQCivQodCi0JDQndCY0JLQo9CaINCW0JDQoNCa0J4KK9Ch0KLQkNCd0JjQktCj0Jog0JTQldCI0JDQnQor0KHQotCQ0J3QmNCS0KPQmiDQnNCY0KDQmtCeCivQodCi0JDQndCY0JLQo9CaINCc0JvQkNCU0JXQnQor0KHQotCQ0J3QmNCS0KPQmiDQndCQ0JTQkAor0KHQotCQ0J3QmNCS0KPQmiDQndCV0JTQldCJ0JrQngor0KHQotCQ0J3QmNCS0KPQmiDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JjQktCj0Jog0JfQlNCg0JDQktCa0J4KK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdINCc0KAKK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0InQmNCJ0JDQndCQCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0Igg0JTQoCDQktCV0KLQldCg0JjQndCVCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0KPQoNCe0KgKK9Ch0KLQkNCd0JrQmNCLINCU0KDQkNCT0JDQnQor0KHQotCQ0J3QmtCY0Isg0JvQkNCX0JDQoAor0KHQotCQ0J3QmtCY0Isg0JzQmNCb0J7QqAor0KHQotCQ0J3QmtCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCa0JjQiyDQktCY0JvQntCT0J7QoNCa0JAKK9Ch0KLQkNCd0JrQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCY0J0g0ILQntCg0ILQlQor0KHQotCQ0J3QmtCY0J0g0JHQoNCQ0J3QmtCQCivQodCi0JDQndCa0JjQnSDQiNCQ0KHQnNCY0J3QkAor0KHQotCQ0J3QmtCY0J0g0JzQmNCb0JUKK9Ch0KLQkNCd0JrQmNCdINCc0JjQm9CY0JLQntCICivQodCi0JDQndCa0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQotCQ0J3QmtCY0J0g0KLQntCU0J7QoAor0KHQotCQ0J3QmtCeINCY0JzQoNCVCivQodCi0JDQndCa0J4g0JjQktCQ0J0KK9Ch0KLQkNCd0JrQniDQiNCe0KHQmNCfINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmtCeINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCeINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCeINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCeINCS0JXQoNCY0KbQkAor0KHQotCQ0J3QmtCe0JIg0JbQkNCg0JrQngor0KHQotCQ0J3QmtCe0JIg0JbQmNCS0JrQkAor0KHQotCQ0J3QmtCe0JIg0JbQmNCS0JrQngor0KHQotCQ0J3QmtCe0JIg0JbQmNCS0JrQngor0KHQotCQ0J3QmtCe0JIg0ILQntCg0ILQlQor0KHQotCQ0J3QmtCe0JIg0JHQntCI0JDQndCQCivQodCi0JDQndCa0J7QkiDQlNCQ0KDQmNCd0JrQkAor0KHQotCQ0J3QmtCe0JIg0JTQkNCg0JrQngor0KHQotCQ0J3QmtCe0JIg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCe0JIg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCe0JIg0JXQltCV0JHQldCiCivQodCi0JDQndCa0J7QkiDQmNCS0JDQndCa0JAKK9Ch0KLQkNCd0JrQntCSINCY0JLQkNCdCivQodCi0JDQndCa0J7QkiDQiNCV0JvQldCd0JAKK9Ch0KLQkNCd0JrQntCSINCa0JDQotCY0KbQkAor0KHQotCQ0J3QmtCe0JIg0JrQntCS0JjQndCQCivQodCi0JDQndCa0J7QkiDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JrQntCSINCc0JDQoNCY0IjQkAor0KHQotCQ0J3QmtCe0JIg0JzQkNCg0JjQndCa0J4KK9Ch0KLQkNCd0JrQntCSINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JrQntCSINCc0JjQm9CQ0J3QmtCeCivQodCi0JDQndCa0J7QkiDQnNCY0JvQkNCd0JrQngor0KHQotCQ0J3QmtCe0JIg0JzQmNCb0J7QqAor0KHQotCQ0J3QmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCd0JXQktCV0J3QmtCQCivQodCi0JDQndCa0J7QkiDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JrQntCSINCf0JDQiNCQINCU0KAKK9Ch0KLQkNCd0JrQntCSINCf0JDQktCb0JUKK9Ch0KLQkNCd0JrQntCSINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JrQntCSINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JrQntCSINCg0JDQlNCe0JLQkNCdCivQodCi0JDQndCa0J7QkiDQoNCQ0KHQotCa0J4KK9Ch0KLQkNCd0JrQntCSINCg0KPQltCY0KbQkAor0KHQotCQ0J3QmtCe0JIg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ch0KLQkNCd0JrQntCSINCh0J7QpNCY0IjQkAor0KHQotCQ0J3QmtCe0JIg0KHQotCQ0J3QmtCQCivQodCi0JDQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0JrQntCSINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JIg0KHQotCe0IjQkNCdCivQodCi0JDQndCa0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQkNCd0JrQntCSINCS0JXQidCa0J4KK9Ch0KLQkNCd0JrQntCSINCS0JXQidCa0J4KK9Ch0KLQkNCd0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCX0J7QoNCQ0J3QmtCQCivQodCi0JDQndCa0J7QkiDQl9Ce0KDQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JbQkNCg0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0JDQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KHQotCQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQodCi0JDQndCa0J7QktCY0Isg0ILQntCg0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQgtCj0KDQngor0KHQotCQ0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCi0JDQndCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCd0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JDQoNCQ0J3QmtCQCivQodCi0JDQndCa0J7QktCY0Isg0JDQktCg0JDQnAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkSDQlNCgCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0IjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCg0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0KDQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QoNCQCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0JDQndCY0JvQngor0KHQotCQ0J3QmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQodCi0JDQndCa0J7QktCY0Isg0JTQmNCS0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCe0JHQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCi0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JTQo9Co0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCV0JLQldCb0JjQnSDQlNCgCivQodCi0JDQndCa0J7QktCY0Isg0JXQktCY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCk0KDQldCU0JXQoNCY0JoKK9Ch0KLQkNCd0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JjQm9CY0IjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCY0JLQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCQ0JPQntCU0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCV0KHQldCd0JrQkCDQlNCgCivQodCi0JDQndCa0J7QktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQkNCi0JDQm9CY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQntCh0JDQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQntCh0KLQkNCU0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0JDQndCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JDQoNCI0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCoCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQntCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KLQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQlNCQCivQodCi0JDQndCa0J7QktCY0Isg0J3QkNCU0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQotCQ0KjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCV0J3QkNCUCivQodCi0JDQndCa0J7QktCY0Isg0J3QldCS0JXQndCQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J7Qm9CT0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQntCb0JPQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCe0JvQk9CY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCe0KHQotCe0IjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQodCi0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCi0JDQndCa0J7QktCY0Isg0KHQkNCo0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCQ0JLQmtCQCivQodCi0JDQndCa0J7QktCY0Isg0KHQkNCS0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KDQgtCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCg0JHQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCi0JDQnNCV0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCi0JDQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCi0JXQoNCV0JfQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCi0JjQntCh0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCi0J7QqNCQCivQodCi0JDQndCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCV0J3QldCg0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQodCi0JDQndCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCb0JDQlNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCb0JDQlNCQCivQodCi0JDQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0JDQndCa0J7QktCY0Ist0JLQoNCQ0J3QmNCLINCc0JjQm9CY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCX0JvQkNCi0JjQktCe0IjQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JfQntCg0JAKK9Ch0KLQkNCd0JrQntCS0KHQmtCYINCa0J7QodCi0JAKK9Ch0KLQkNCd0JrQntCS0KHQmtCYINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JLQodCa0Jgg0JLQldCJ0JDQnQor0KHQotCQ0J3QntCI0KfQmNCLINCC0J7QoNCC0JUKK9Ch0KLQkNCd0J7QiNCn0JjQiyDQkNCd0ILQldCb0JrQngor0KHQotCQ0J3QntCI0KfQmNCLINCQ0J3QmtCY0KbQkAor0KHQotCQ0J3QntCI0KfQmNCLINCU0JXQodCY0JzQmNCgCivQodCi0JDQndCe0IjQp9CY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQkNCd0J7QiNCn0JjQiyDQntCb0JPQkAor0KHQotCQ0J3QntCI0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0J7QiNCn0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQkNCd0J7QiNCn0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0J7QiNCn0JjQiyDQktCV0KDQkAor0KHQotCQ0J3QntCI0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JIg0JbQmNCS0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQotCQ0J3QntCI0JXQkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JIg0JTQldCI0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQlNCj0KjQkNCdCivQodCi0JDQndCe0IjQldCSINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JIg0JTQo9Co0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQlNCj0KjQkNCdCivQodCi0JDQndCe0IjQldCSINCT0J7QoNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JIg0IjQntCm0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0JvQkNCX0JDQoAor0KHQotCQ0J3QntCI0JXQkiDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQki3QnNCe0KHQmtCQ0Ikg0J7Qm9CT0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0J3QldCR0J7QiNCo0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCe0IjQldCSLdCf0JXQotCg0JXQiiDQnNCY0KDQiNCQ0J3QkAor0KHQotCQ0J3QntCI0JXQkiDQodCQ0JLQkAor0KHQotCQ0J3QntCI0JXQkiDQodCi0JDQndCa0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0KHQotCV0JLQkNCdCivQodCi0JDQndCe0IjQldCSINCi0JjQpdCe0JzQmNCgCivQodCi0JDQndCe0IjQldCSINCS0JXQoNCY0KbQkAor0KHQotCQ0J3QntCI0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQodCi0JDQndCe0IjQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQodCi0JDQndCe0IjQldCS0JjQiyDQltCQ0KDQmtCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQltCY0JLQkNCd0JrQngor0KHQotCQ0J3QntCI0JXQktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCC0KPQoNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0JjQm9CY0IjQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0IjQntCS0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JrQkNCL0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCa0J7QodCi0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQodCi0JDQndCe0IjQldCS0JjQiy3QnNCQ0J3QlNCY0Isg0JzQmNCb0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JjQm9CV0KLQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JDQlNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQndCQ0KLQkNCo0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQndCV0JzQkNCK0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JXQodCi0J7QoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQodCi0JDQndCe0IjQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCg0JDQlNCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCh0KDQkdCe0InQo9CRCivQodCi0JDQndCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLLdCS0JDQoNCT0JAg0JDQndCQINCU0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JXQidCa0J4KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0JLQo9CaCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0KHQotCQ0J3QntCI0JXQktCY0Isg0JfQm9CQ0KLQmtCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQkNCd0J7QiNCa0J7QktCY0Isg0KDQkNCU0JUKK9Ch0KLQkNCd0J7QiNCa0J7QktCY0Isg0JLQm9CQ0JTQkAor0KHQotCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0KLQkNCgCivQodCi0JDQndCe0IjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QntCI0J7QodCa0Jgg0JTQkNCd0JjQptCQCivQodCi0JDQndCe0IjQntCh0JrQmCDQl9Cb0JDQotCQCivQodCi0JDQndCe0IjQodCa0Jgg0JHQm9CQ0JPQntCI0JUKK9Ch0KLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQodCi0JDQndCi0JUg0IjQntCh0JjQnwor0KHQotCQ0J3QotCY0Isg0JHQkNCg0KLQo9CbCivQodCi0JDQndCi0JjQiyDQkdCV0KDQotCQ0JvQkNCdCivQodCi0JDQndCi0JjQiyDQmtCQ0KLQkNCb0JjQnQor0KHQotCQ0J3QotCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KHQotCQ0J3QotCY0Isg0JLQldCg0J7QndCQCivQodCi0JDQndCj0KjQmNCLINCc0JjQiNCQ0KIKK9Ch0KLQkNCd0KPQmyDQn9CV0KLQkNCgCivQodCi0JDQndCj0JvQntCSINCh0JLQldCi0JvQkNCd0JAKK9Ch0KLQkNCd0KPQm9Ce0JIg0KLQntCU0J7QoAor0KHQotCQ0J3Qo9Cb0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVINCU0KAKK9Ch0KLQkNCd0KPQm9Ce0JLQmNCLINCc0JjQm9CQ0J0g0JTQoAor0KHQotCQ0J/QkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQn9CQ0KDQodCa0Jgg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0J/QkNCg0KHQmtCYINCc0JjQm9CQ0J0KK9Ch0KLQkNCf0JDQoNCh0JrQmCDQn9CV0KLQkNCgCivQodCi0JDQn9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQodCi0JDQoNCn0JXQkiDQkNCd0ILQldCb0JrQkAor0KHQotCQ0KDQp9CV0JIg0JHQoNCQ0J3QmtCQCivQodCi0JDQoNCn0JXQkiDQlNCV0KHQkNCd0JrQkAor0KHQotCQ0KDQp9CV0JIg0IjQldCb0JAKK9Ch0KLQkNCg0KfQldCSINCa0JDQotCY0KbQkAor0KHQotCQ0KDQp9CV0JIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCg0KfQldCSINCc0JjQm9CV0J3QmtCeCivQodCi0JDQoNCn0JXQkiDQnNCY0JvQntCoCivQodCi0JDQoNCn0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQodCi0JDQoNCn0JXQkiDQodCi0J7QiNCQ0J3QmtCQCivQodCi0JDQoNCn0JXQktCY0Isg0JDQndCY0KbQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCQ0J3QmtCQCivQodCi0JDQoNCn0JXQktCY0Isg0JHQntCo0JrQngor0KHQotCQ0KDQp9CV0JLQmNCLINCR0J7Qk9CU0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQkNCg0KfQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQkNCg0KfQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0KHQotCQ0KDQp9CV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JDQoNCn0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0KTQoNCQ0IrQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCY0JLQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0InQo9CR0JjQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9Ca0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCg0JrQngor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQoNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQoNCn0JXQktCY0Isg0J7Qm9CT0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQoNCn0JXQktCY0Isg0KDQo9CU0J7Qm9CkCivQodCi0JDQoNCn0JXQktCY0Isg0KHQotCQ0JzQldCd0JrQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCh0KLQkNCd0JrQngor0KHQotCQ0KDQp9CV0JLQmNCLINCh0KLQmNCf0J4KK9Ch0KLQkNCg0KfQldCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCg0KfQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ch0KLQkNCg0JDQp9CV0Jog0JbQldCJ0JrQngor0KHQotCQ0KDQkNCn0JXQmiDQiNCe0JbQldCkCivQodCi0JDQoNCQ0KfQldCaINCI0J7QktCQ0J0KK9Ch0KLQkNCg0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQoNCYINCU0JDQndCY0JXQmwor0KHQotCQ0KDQmCDQm9CY0JLQmNCI0JAKK9Ch0KLQkNCg0JjQiyDQmNCS0JDQnQor0KHQotCQ0KDQntCS0JjQiyDQkdCe0KDQmNCS0J7QiCDQlNCgCivQodCi0JDQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0KHQotCQ0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0KDQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KHQotCQ0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCQ0KDQntCS0JjQiyDQoNCQ0KHQotCY0KHQm9CQ0JIKK9Ch0KLQkNCg0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ch0KLQkNCg0J7QktCb0JDQpSDQnNCb0JDQlNCV0J0KK9Ch0KLQkNCS0JXQndCe0JIg0ILQntCg0ILQlQor0KHQotCQ0JLQiNCV0Jsg0JzQm9CQ0JTQldCdCivQodCi0JDQktCg0JXQktCh0JrQmCDQkdCe0JPQlNCQ0J0KK9Ch0KLQkNCS0KDQmNCLINCY0JvQntCd0JrQkAor0KHQotCQ0JLQoNCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0KLQkNCS0KDQntCSINCU0JDQndCY0KbQkAor0KHQotCV0Isg0JzQmNCi0JDQoAor0KHQotCV0Isg0JLQkNCh0JjQm9CY0IjQlQor0KHQotCV0KTQkNCdINCY0JLQkNCdCivQodCi0JXQpNCQ0J0g0InQo9CR0J7QnNCY0KDQkAor0KHQotCV0KTQkNCd0JjQlNCV0KEg0IjQo9Cb0JjQiNCVCivQodCi0JXQpNCQ0J3QmNCU0JXQoSDQidCj0JTQldCS0JjQogor0KHQotCV0KTQkNCd0JjQlNCY0KEg0JrQmNCg0JjQkNCa0JgKK9Ch0KLQldCk0JDQitCj0Jog0J3QmNCa0J7Qm9CQCivQodCi0JXQpNCQ0J3QntCSINCR0JvQkNCT0J7QiNCVCivQodCi0JXQpNCQ0J3QntCSINCJ0KPQkdCe0JzQmNCgCivQodCi0JXQpNCQ0J3QntCSINCd0JDQlNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JbQmNCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCW0JjQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JbQmNCS0J7QotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQgtCj0KDQmNCm0JAg0JTQoCDQm9CV0JrQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JDQndCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQkNCd0JjQm9Ca0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCV0JbQlQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCV0KDQltCY0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Ist0JPQldCg0JjQiyDQl9Ce0KDQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCY0JLQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQntCh0JjQpAor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0J7Ql9CV0KTQmNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCa0JDQoNCQ0J3QpNCY0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQm9CV0J3QmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JvQo9Cm0JjQiNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQldCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCd0JDQlNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQn9CQ0J3QotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQn9CQ0KPQm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQkNCK0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQINCU0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0J/QoNCe0KTQldCh0J7QoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQnNCY0InQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQnNCY0InQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCI0JXQn9CQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KLQntCI0JDQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCj0JfQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLLdCi0JjQm9CY0Isg0JTQmNCS0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JDQodCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQiNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCV0KTQkNCd0J7QktCh0JrQkCDQl9Ce0KDQmtCQCivQodCi0JXQpNCQ0J3QntCS0KHQmtCYINCb0JXQktCa0J4KK9Ch0KLQldCk0JDQndCe0JLQodCa0Jgg0JzQldCi0J7QlNCY0IjQlQor0KHQotCV0KTQkNCd0J7QktCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KHQotCV0KTQkNCd0J7QktCh0JrQmCDQodCi0JDQnNCV0J0KK9Ch0KLQldCT0JjQiyDQlNCV0IjQkNCdCivQodCi0JXQk9CY0Isg0JjQktCQ0J0KK9Ch0KLQldCT0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQldCT0IrQkNCY0Isg0J7Qm9CT0JAKK9Ch0KLQldCT0IrQkNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQiNCY0Isg0JDQoNCQ0J3QmtCQCivQodCi0JXQiNCY0Isg0IjQldCb0JXQndCQCivQodCi0JXQiNCY0Isg0JrQntCh0KLQkAor0KHQotCV0IjQmNCLINCd0JXQktCV0J3QmtCQCivQodCi0JXQiNCY0Isg0KDQo9CW0JAKK9Ch0KLQldCI0JjQnSDQgtCe0KDQgtCVCivQodCi0JXQiNCY0J0g0JHQntCg0JjQodCb0JDQkgor0KHQotCV0IjQmNCdINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JXQiNCY0J0g0IjQldCb0JXQndCQCivQodCi0JXQiNCY0J0g0IjQntCS0JDQndCa0JAKK9Ch0KLQldCI0JjQnSDQidCj0JHQmNCm0JAKK9Ch0KLQldCI0JjQnSDQoNCj0JbQmNCm0JAKK9Ch0KLQldCI0JjQnSDQodCQ0KjQkAor0KHQotCV0IjQmNCdINCh0KDQgtCQ0J0KK9Ch0KLQldCb0JAg0JLQm9CQ0JTQmNCc0JjQoNCQCivQodCi0JXQidCQINCd0J7QktCQ0JoKK9Ch0KLQldCJ0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQodCi0JXQidCY0Isg0JzQmNCb0KPQnQor0KHQotCV0JvQmtCY0Isg0ILQo9Cg0JjQptCQCivQodCi0JXQm9Ca0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCV0JvQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0KLQldCb0JrQmNCLINCg0JDQlNCY0KbQkAor0KHQotCV0JvQmtCY0Isg0KDQldCJ0JAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JXQm9Ca0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JXQm9Ca0JjQiyDQl9Cb0JDQotCe0JzQmNCgCivQodCi0JXQn9CQ0J3Qp9CV0JIg0JDQndCY0KbQkAor0KHQotCV0J/QkNCd0KfQldCSINCh0KLQldCS0JDQnQor0KHQotCV0J/QkNCd0KfQldCSINCS0JvQkNCU0JjQodCb0JDQkgor0KHQotCV0J/QkNCd0KfQldCSINCX0J7QoNCQ0J0KK9Ch0KLQldCf0JDQndCn0JXQkiDQl9Ce0KDQkAor0KHQotCV0J/QkNCd0KfQldCSINCX0J7QoNCY0KbQkAor0KHQotCV0J/QkNCd0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQldCf0JDQndCn0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQldCf0JDQndCn0JXQktCY0Isg0KHQntCk0JjQiNCQCivQodCi0JXQn9CQ0J3Qp9CV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQodCi0JXQn9CQ0J3QmNCLINCc0JjQm9CY0KHQkNCSCivQodCi0JXQn9CQ0J3QmNCLINCf0KDQldCU0KDQkNCTCivQodCi0JXQn9CQ0J3QntCSINCC0J7QoNCC0JUKK9Ch0KLQldCf0JDQndCe0JIg0ILQntCg0ILQlQor0KHQotCV0J/QkNCd0J7QkiDQgtCe0KDQgtCVCivQodCi0JXQn9CQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JXQn9CQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCi0JXQn9CQ0J3QntCSINCQ0J3QgtCV0JvQmtCQCivQodCi0JXQn9CQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCV0J/QkNCd0J7QkiDQkdCg0JDQndCa0J4KK9Ch0KLQldCf0JDQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0JXQn9CQ0J3QntCSINCU0KDQkNCT0JjQqNCQCivQodCi0JXQn9CQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQodCi0JXQn9CQ0J3QntCSINCU0KPQqNCQ0J0KK9Ch0KLQldCf0JDQndCe0JIg0JTQo9Co0JDQnQor0KHQotCV0J/QkNCd0J7QkiDQldCc0JjQmwor0KHQotCV0J/QkNCd0J7QkiDQiNCe0JvQlQor0KHQotCV0J/QkNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQldCf0JDQndCe0JIg0InQmNCJ0JDQndCQCivQodCi0JXQn9CQ0J3QntCSINCJ0KPQkdCe0JzQmNCgINCU0KAKK9Ch0KLQldCf0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9Ch0KLQldCf0JDQndCe0JIg0JzQkNCa0KHQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCQ0KDQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCY0JvQkNCd0JrQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCY0JvQkNCd0JrQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCY0JvQkNCdCivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CQ0J0KK9Ch0KLQldCf0JDQndCe0JIg0JzQmNCb0JXQktCQCivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CY0JLQntCICivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CY0JLQntCICivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CY0JLQntCICivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQodCi0JXQn9CQ0J3QntCSINCd0JjQmtCe0JvQkAor0KHQotCV0J/QkNCd0J7QkiDQn9CQ0IjQkAor0KHQotCV0J/QkNCd0J7QkiDQn9CQ0IjQkAor0KHQotCV0J/QkNCd0J7QkiDQn9CV0KLQkNCgINCU0KAKK9Ch0KLQldCf0JDQndCe0JIg0J/QldCi0JDQoAor0KHQotCV0J/QkNCd0J7QkiDQn9CY0KDQntCo0JrQkAor0KHQotCV0J/QkNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQotCV0J/QkNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0KHQotCV0J/QkNCd0J7QkiDQodCQ0JLQkAor0KHQotCV0J/QkNCd0J7QkiDQodCQ0JLQkAor0KHQotCV0J/QkNCd0J7QkiDQodCV0KDQk9CY0IjQlQor0KHQotCV0J/QkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQodCi0JXQn9CQ0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCV0J/QkNCd0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQodCi0JXQn9CQ0J3QntCSINCS0JXQm9CY0JzQmNCgCivQodCi0JXQn9CQ0J3QntCSINCS0JXQodCd0JAKK9Ch0KLQldCf0JDQndCe0JIg0JLQmNCU0JAKK9Ch0KLQldCf0JDQndCe0JIg0JLQmNCU0J7QodCQ0JLQkAor0KHQotCV0J/QkNCd0J7QkiDQktCe0IjQndCQCivQodCi0JXQn9CQ0J3QntCSINCX0JTQoNCQ0JLQmtCeCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQldCf0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0J/QkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ch0KLQldCf0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCV0J/QkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KHQotCV0J/QmNCLINCI0J7QodCY0J8KK9Ch0KLQldCf0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQldCg0JjQniDQgtCe0KDQgtCVCivQodCi0JXQoNCY0J4g0JHQoNCQ0J3QmtCeINCU0KAKK9Ch0KLQldCg0J/QmNCdINCX0JLQntCd0JjQnNCY0KAKK9Ch0KLQldCS0KfQmNCLINCh0JDQktCQ0KLQmNCI0JUKK9Ch0KLQldCS0JDQndCn0JXQkiDQkNCd0JrQmNCm0JAKK9Ch0KLQldCS0JDQndCn0JXQkiDQnNCY0JvQmNCm0JAKK9Ch0KLQldCS0JDQndCn0JXQkiDQnNCY0JvQntCg0JDQlAor0KHQotCV0JLQkNCd0KfQldCSINCe0JvQk9CQCivQodCi0JXQktCQ0J3Qp9CV0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQotCV0JLQkNCd0JTQmNCLINCC0KPQoNCeCivQodCi0JXQktCQ0J3QlNCY0Isg0JzQmNCb0JjQptCQCivQodCi0JXQktCQ0J3QlNCY0Isg0KDQkNCU0JUKK9Ch0KLQldCS0JDQndCY0Isg0JHQntCg0JjQktCe0IjQlQor0KHQotCV0JLQkNCd0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0KLQldCS0JDQndCY0Isg0JjQktCQ0J0KK9Ch0KLQldCS0JDQndCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQldCS0JDQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0JLQkNCd0JjQiyDQktCj0JrQntCc0JDQnQor0KHQotCV0JLQkNCd0J7QkiDQltCY0JLQkNCdCivQodCi0JXQktCQ0J3QntCSINCU0KDQkNCT0JDQndCQCivQodCi0JXQktCQ0J3QntCSINCV0JzQmNCb0JrQkAor0KHQotCV0JLQkNCd0J7QkiDQk9CQ0JLQoNCQCivQodCi0JXQktCQ0J3QntCSINCI0JXQm9CV0J3QkAor0KHQotCV0JLQkNCd0J7QkiDQidCY0InQkNCd0JAKK9Ch0KLQldCS0JDQndCe0JIg0JzQkNCU0JvQldCdCivQodCi0JXQktCQ0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQodCi0JXQktCQ0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQodCi0JXQktCQ0J3QntCSINCc0JjQm9Cj0KLQmNCdCivQodCi0JXQktCQ0J3QntCSINCc0JvQkNCU0JXQnQor0KHQotCV0JLQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9Ch0KLQldCS0JDQndCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0KHQotCV0JLQkNCd0J7QkiDQodCi0JDQndCQCivQodCi0JXQktCQ0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQldCS0JDQndCe0JIg0JLQldCh0JXQm9CY0J0KK9Ch0KLQldCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCV0JLQkNCd0J7QkiDQl9Cb0JDQotCe0IjQlQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JbQmNCS0JDQlNCY0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCW0JjQktCa0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQodCi0JXQktCQ0J3QntCS0JjQiyDQkNCU0JDQnAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCR0J7QoNCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0IjQkNCg0J7QodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQntCJ0KPQkQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCd0JrQkAor0KHQotCV0JLQkNCd0J7QktCY0Ist0J3QldCL0JDQmiDQodCb0J7QkdCe0JTQkNCd0JrQkCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCd0JjQmtCe0KHQkNCS0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0JDQndCa0J4g0JTQoCDQm9CV0JrQkNCgCivQodCi0JXQktCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQodCi0JXQktCQ0J3QntCS0JjQiyDQoNCj0JbQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQodCi0JXQktCQ0J3QntCS0JjQiyDQodCS0JjQiNCV0KLQm9CQ0J3QkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JfQm9CQ0KLQmtCeINCU0KAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0KHQotCV0JLQkNCd0J7QktCh0JrQmCDQk9Ce0KjQlQor0KHQotCV0JLQkNCd0J7QktCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQodCi0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQodCi0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQotCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0JXQktCY0Isg0InQo9CR0JjQqNCQCivQodCi0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JXQktCY0Isg0J/QldCi0JDQoAor0KHQotCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQldCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KHQotCV0JLQmNCLINCh0KDQkdCQCivQodCi0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KLQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0JXQktCY0J0g0JHQntCT0JTQkNCdCivQodCi0JXQktCY0J0g0JHQntCg0JjQodCb0JDQkgor0KHQotCV0JLQmNCdINCd0JDQlNCQINCU0JjQn9CbINCY0J3Qkwor0KHQotCV0JLQmNCdINCg0JDQlNCe0IjQm9CQCivQodCi0JXQktCe0JLQmNCLINCQ0J3QmtCQCivQodCi0JXQktCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0JXQktCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCV0JLQntCS0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KHQotCV0JLQntCS0JjQiy3Qm9Cj0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0JXQktCe0JLQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Ch0KLQldCS0J7QktCY0Isg0JLQntCI0JjQnQor0KHQotCY0IjQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQmNCI0JDQp9CY0Isg0J/QkNCS0JvQlQor0KHQotCY0IjQkNCn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JjQiNCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQmNCI0JXQn9Ce0JLQmNCLINCQ0JvQldCa0KHQkAor0KHQotCY0IjQldCf0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0KHQotCY0IjQntCS0JjQiyDQmNCb0JjQiNCQCivQodCi0JjQiNCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCi0JjQiNCe0JLQmNCLINCc0JDQoNCQCivQodCi0JjQiNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQmNCa0JjQiyDQkdCY0InQkNCd0JAKK9Ch0KLQmNCa0JjQiyDQiNCe0JLQkNCdCivQodCi0JjQmtCY0Isg0JzQntCc0JjQoNCa0JAKK9Ch0KLQmNCa0J7QktCY0Isg0KDQntCh0JAKK9Ch0KLQmNCb0JjQndCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQodCi0JjQm9CY0J3QntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KHQotCY0J/QkNCd0KfQmNCLINCh0KLQmNCf0JDQnQor0KHQotCY0J/QkNCd0J7QktCY0Isg0JHQiNCV0JvQmNCm0JAKK9Ch0KLQmNCf0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Ch0KLQmNCf0JXQotCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JjQn9CY0Isg0JDQndCU0KDQmNCI0JAKK9Ch0KLQmNCf0JjQiyDQkNCd0KLQlQor0KHQotCY0J/QmNCLINCR0KPQlNCVCivQodCi0JjQn9CY0Isg0JPQmNCX0JXQm9CQCivQodCi0JjQn9CY0Isg0IjQkNCo0JAKK9Ch0KLQmNCf0JjQiyDQndCQ0JTQkAor0KHQotCY0J/QmNCLINCe0JvQmNCS0JXQoNCQCivQodCi0JjQn9CY0Isg0KHQntCK0JAKK9Ch0KLQmNCf0JjQiyDQktCV0InQmtCeCivQodCi0JjQodCa0JDQm9CeINCi0JjQpdCe0JzQmNCgCivQodCi0IjQldCJ0JAg0JTQkNCd0JjQptCQCivQodCi0IjQldCf0KfQldCS0JjQiyDQkNCd0JjQptCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCR0J7QltCeCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0KbQktCV0IjQkAor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQiNCQ0KHQndCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQiNCV0J/QmNCLINCI0J7QodCY0J8KK9Ch0KLQiNCV0J/QmNCLINCc0JjQiNCeCivQodCi0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QqNCY0Isg0JTQo9Co0JDQnQor0KHQotCe0KjQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCo0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QqNCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QqNCY0Isg0JzQmNCb0JjQptCQCivQodCi0J7QqNCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0KLQntCo0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQotCe0KjQmNCLINCh0JvQkNCS0JjQqNCQCivQodCi0J7QqNCY0Isg0KHQotCe0IjQkNCU0JjQnQor0KHQotCe0KjQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0KjQmNCLINCi0JDQitCQCivQodCi0J7QqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCe0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCo0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QqNCY0Isg0JfQntCg0JDQnQor0KHQotCe0JbQmNCd0JjQiyDQlNCg0JDQk9CY0IrQkAor0KHQotCe0JXQodCa0Jgg0IjQldCS0KLQmNCcCivQodCi0J7Qk9Ce0JIg0JDQndCQ0KLQntCb0JjQiCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCW0JjQmtCQCivQodCi0J7QmNCJ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCe0JjQidCa0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCe0JjQidCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0JjQm9Ca0J7QktCh0JrQmCDQkdCe0KDQmNChCivQodCi0J7QmNCh0JDQktCJ0JXQktCY0Isg0ILQo9CI0JAKK9Ch0KLQntCY0KHQkNCS0InQldCS0JjQiyDQnNCY0IvQngor0KHQotCe0IjQp9CV0JIg0JzQkNCg0JjQiNCQCivQodCi0J7QiNCn0JXQktCY0Isg0JjQm9CY0IjQkAor0KHQotCe0IjQp9CV0JLQmNCLINCh0KLQkNCd0J7QiNCa0J4KK9Ch0KLQntCI0KfQldCS0KHQmtCYINCR0JvQkNCT0J7QiNCQCivQodCi0J7QiNCn0JXQktCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QiNCn0JXQktCh0JrQmCDQotCe0J3QlQor0KHQotCe0IjQp9CY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQp9CY0Isg0ILQo9Cg0J4KK9Ch0KLQntCI0KfQmNCLINCU0JXQodCY0JzQmNCgCivQodCi0J7QiNCn0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCn0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQodCi0J7QiNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCn0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQntCI0KfQmNCLINCh0KDQldCL0JrQngor0KHQotCe0IjQp9CY0Isg0KHQoNCV0KLQmtCeCivQodCi0J7QiNCn0JjQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQntCI0KfQmNCd0J7QktCY0Isg0KHQmNCc0J4KK9Ch0KLQntCI0KjQmNCLINCW0JjQktCQ0J0KK9Ch0KLQntCI0KjQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0KjQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0KjQmNCLINCR0J7QiNCa0JAKK9Ch0KLQntCI0KjQmNCLINCU0JDQndCn0JjQmtCQCivQodCi0J7QiNCo0JjQiyDQlNCg0JDQk9CYCivQodCi0J7QiNCo0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCe0IjQqNCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCo0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QiNCo0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QiNCo0JjQiyDQm9CQ0JfQkNCgCivQodCi0J7QiNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0KjQmNCLINCc0JDQoNCY0IjQkAor0KHQotCe0IjQqNCY0Isg0JzQkNCg0JjQiNCQCivQodCi0J7QiNCo0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCe0IjQqNCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQqNCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQqNCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0KLQntCI0KjQmNCLINCc0JjQm9Ca0JAKK9Ch0KLQntCI0KjQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQntCI0KjQmNCLINCc0JjQoNCQCivQodCi0J7QiNCo0JjQiyDQndCQ0JTQkAor0KHQotCe0IjQqNCY0Isg0J3QkNCU0JAKK9Ch0KLQntCI0KjQmNCLINCd0JXQk9Ce0JLQkNCdCivQodCi0J7QiNCo0JjQiyDQndCV0J3QkNCUCivQodCi0J7QiNCo0JjQiyDQndCV0JLQldCd0JrQkAor0KHQotCe0IjQqNCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0KLQntCI0KjQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQqNCY0Isg0J7Qm9CT0JAKK9Ch0KLQntCI0KjQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0KjQmNCLINCf0KDQntCa0J7Qn9CY0IjQlQor0KHQotCe0IjQqNCY0Isg0J/QoNCS0J7QodCb0JDQkgor0KHQotCe0IjQqNCY0Isg0KHQkNCS0JAKK9Ch0KLQntCI0KjQmNCLINCh0JDQktCQCivQodCi0J7QiNCo0JjQiyDQodCQ0JLQkAor0KHQotCe0IjQqNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ch0KLQntCI0KjQmNCLINCh0JzQmNCJ0JAKK9Ch0KLQntCI0KjQmNCLINCh0J7QpNCY0IjQkAor0KHQotCe0IjQqNCY0Isg0KHQoNCR0JjQodCb0JDQkgor0KHQotCe0IjQqNCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0KLQntCI0KjQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQqNCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0KLQntCI0KjQmNCLINCS0JXQoNCQCivQodCi0J7QiNCo0JjQiyDQktCY0JTQntCh0JDQktCQCivQodCi0J7QiNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCo0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QiNCo0JjQiyDQktCj0IjQkNCU0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQntCI0KjQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCi0J7QiNCo0JjQnSDQltCQ0KDQmtCeCivQodCi0J7QiNCo0JjQnSDQgtCe0KDQgtCVCivQodCi0J7QiNCo0JjQnSDQgtCj0KDQgtCQCivQodCi0J7QiNCo0JjQnSDQgtCj0KDQgtCY0J3QmtCQCivQodCi0J7QiNCo0JjQnSDQkdCe0JPQntCh0JvQntCSCivQodCi0J7QiNCo0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0KjQmNCdINCU0J7QkdCg0JjQktCe0IgKK9Ch0KLQntCI0KjQmNCdINCU0KDQkNCT0JDQnQor0KHQotCe0IjQqNCY0J0g0JTQo9Co0JDQnQor0KHQotCe0IjQqNCY0J0g0JXQnNCY0JsKK9Ch0KLQntCI0KjQmNCdINCV0KHQotCV0KAKK9Ch0KLQntCI0KjQmNCdINCT0JDQktCg0JAKK9Ch0KLQntCI0KjQmNCdINCT0KDQntCX0JTQkNCd0JAKK9Ch0KLQntCI0KjQmNCdINCI0J7QktCQ0J0KK9Ch0KLQntCI0KjQmNCdINCI0J7QktCQ0J0KK9Ch0KLQntCI0KjQmNCdINCb0JDQl9CQ0KAKK9Ch0KLQntCI0KjQmNCdINCc0JjQm9CQ0J3QmtCQCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQkNCdCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQkNCdCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0KjQmNCdINCc0JjQm9Ce0KDQkNCUCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQqNCY0J0g0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCo0JjQnSDQntCb0JPQkAor0KHQotCe0IjQqNCY0J0g0KDQkNCU0JAKK9Ch0KLQntCI0KjQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQntCI0KjQmNCdINCh0JDQktCQCivQodCi0J7QiNCo0JjQnSDQodCQ0JLQkAor0KHQotCe0IjQqNCY0J0g0KHQmNCd0JjQqNCQCivQodCi0J7QiNCo0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCi0J7QiNCo0JjQnSDQotCe0JTQntCgCivQodCi0J7QiNCo0JjQnSDQktCQ0KHQkAor0KHQotCe0IjQqNCY0J0g0JLQldCg0JAKK9Ch0KLQntCI0KjQmNCdINCX0JvQkNCi0JAKK9Ch0KLQntCI0JAg0InQmNCJ0JDQndCQCivQodCi0J7QiNCQINCc0JDQoNCY0IjQkAor0KHQotCe0IjQkCDQnNCY0JvQkNCd0JAKK9Ch0KLQntCI0JAg0KHQm9CQ0ILQkNCd0JAKK9Ch0KLQntCI0JAg0KHQm9Ce0JHQntCU0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9Ch0KLQntCI0JAg0JLQntCI0JjQodCb0JDQkgor0KHQotCe0IjQkNCn0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0JDQp9CY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQkNCn0JjQiyDQndCV0J3QkNCUCivQodCi0J7QiNCQ0KfQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KHQotCe0IjQkNCU0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQkNCd0JjQptCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQndCQINCb0JXQmtCQ0KAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0J/Qo9Cd0JjQqNCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCS0JvQkNCU0JXQotCQCivQodCi0J7QiNCQ0Jog0JfQntCg0JjQptCQCivQodCi0J7QiNCQ0JrQntCSINCR0J7QltCY0JTQkNCgCivQodCi0J7QiNCQ0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQodCi0J7QiNCQ0JrQntCSINCh0KDQkdCe0KHQm9CQ0JIKK9Ch0KLQntCI0JDQmtCe0JIg0KHQoNCR0J7QodCb0JDQkgor0KHQotCe0IjQkNCa0J7QktCY0Isg0ILQo9Ca0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0ILQo9Cg0J4KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQlNCY0JLQndCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCI0JXQm9Ca0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCa0J7QodCi0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCc0JDQoNCT0JjQotCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCe0IjQkNCa0J7QktCY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0JvQkAor0KHQotCe0IjQkNCa0J7QktCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCe0IjQkNCa0J7QktCY0Isg0KHQkNCS0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQodCc0JjQidCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQodCi0JDQndCa0J4KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCh0KLQldCS0J4KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCX0J7QoNCQCivQodCi0J7QiNCQ0J3Qp9CV0JIg0JPQntCg0JTQkNCd0JAKK9Ch0KLQntCI0JDQndCn0JXQkiDQmNCS0JDQnQor0KHQotCe0IjQkNCd0KfQldCSINCg0JDQlNCe0JzQmNCgCivQodCi0J7QiNCQ0J3Qp9CV0JIg0KHQm9CQ0JLQmNCm0JAKK9Ch0KLQntCI0JDQndCn0JXQkiDQktCQ0KHQkAor0KHQotCe0IjQkNCd0KfQmNCLINCS0JvQkNCU0JAKK9Ch0KLQntCI0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QkNCmINCc0JjQm9CVCivQodCi0J7QiNCQ0J3QkNCmINCd0JjQmtCe0JvQkAor0KHQotCe0IjQkNCd0JjQiyDQkNCd0JPQldCb0JjQndCQCivQodCi0J7QiNCQ0J3QntCh0JrQmCDQlNCj0KjQkNCdCivQodCi0J7QiNCQ0J3QntCh0JrQmCDQk9CQ0JLQoNCY0JsKK9Ch0KLQntCI0JDQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QntCSINCR0KDQkNCd0JrQngor0KHQotCe0IjQkNCd0J7QkiDQmNCS0JDQnQor0KHQotCe0IjQkNCd0J7QkiDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQkNCd0J7QkiDQnNCb0JDQlNCV0J0g0JTQoAor0KHQotCe0IjQkNCd0J7QkiDQndCQ0JTQkAor0KHQotCe0IjQkNCd0J7QkiDQndCQ0JTQkAor0KHQotCe0IjQkNCd0J7QkiDQntCb0JPQkAor0KHQotCe0IjQkNCd0J7QkiDQoNCQ0JTQmNCS0J7QiNCVCivQodCi0J7QiNCQ0J3QntCSINCg0JDQlNCe0JLQkNCdCivQodCi0J7QiNCQ0J3QntCSINCh0JDQktCQCivQodCi0J7QiNCQ0J3QntCSINCh0JDQktCQCivQodCi0J7QiNCQ0J3QntCSINCh0JXQndCa0JAKK9Ch0KLQntCI0JDQndCe0JIg0KHQotCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QntCSINCh0KLQldCS0JDQnQor0KHQotCe0IjQkNCd0J7QkiDQktCV0KDQkAor0KHQotCe0IjQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCSINCS0KPQmtCY0KbQkAor0KHQotCe0IjQkNCd0J7QkiDQl9Ce0KDQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQgtCj0KDQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JDQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCJ0J7QqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLLdCR0JDQm9CY0J3QoiDQkdCe0JbQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QkdCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQptCS0JjQiNCV0KLQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQkNCd0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAg0JTQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQk9CQ0JLQoNCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQmNCS0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQkNCa0J7Qkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLLdCI0JXQpNCi0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0KPQm9Ca0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCa0J7QodCi0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCa0KDQodCi0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCb0JXQntCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCaCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQldCi0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0JDQlNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QkNCh0KLQkNChCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QmNCa0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QntCS0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCe0JLQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCe0JvQk9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQntCh0KLQntCI0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0KDQktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCQ0KjQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLLdCh0JjQnNCY0Isg0JLQldCh0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQoNCC0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0J7Qm9CVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgINCU0KAg0JjQndCTCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkiDQnNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCQ0KHQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCV0InQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdINCU0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0JbQmNCS0JrQngor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQkNCd0JTQoNCY0IjQkAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQkdCY0InQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0JHQoNCQ0J3QmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0g0JTQmNCf0Jsg0J7QldCmCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCI0J7QoNCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQidCj0JHQmNCo0JAKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0InQo9CR0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCf0JDQktCb0JUKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0J/QkNCS0JvQlQor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQodCQ0J3QlQor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQodCb0JDQktCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQotCe0JzQngor0KHQotCe0IjQldCSINCh0KLQntCY0KfQmtCeCivQodCi0J7QiNCY0KfQmNCLINCU0JXQodCQ0J3QmtCQCivQodCi0J7QiNCY0KfQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KHQotCe0IjQmNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0KHQotCe0IjQmNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0KHQotCe0IjQmNCn0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0JjQp9CY0Isg0KDQntCh0JAKK9Ch0KLQntCI0JjQp9CY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCY0KfQmNCLINCi0J7QlNCe0KDQkAor0KHQotCe0IjQmNCo0JjQiyDQgtCj0KDQmNCm0JAg0JTQoAor0KHQotCe0IjQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Ch0KLQntCI0JjQiy3QkNCf0JjQiyDQodCb0JDQktCa0JAKK9Ch0KLQntCI0JjQiyDQkdCe0JPQntCJ0KPQkQor0KHQotCe0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQodCi0J7QiNCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQntCI0JjQiyDQkdCg0JDQndCa0JAKK9Ch0KLQntCI0JjQiyDQlNCe0JHQoNCY0JLQntCICivQodCi0J7QiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ch0KLQntCI0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QiNCY0Isg0JTQo9Co0JDQnQor0KHQotCe0IjQmNCLINCT0JDQktCg0JAKK9Ch0KLQntCI0JjQiyDQk9Ce0IjQmtCeCivQodCi0J7QiNCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KHQotCe0IjQmNCLINCY0KjQotCS0JDQnQor0KHQotCe0IjQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ch0KLQntCI0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCI0JjQiyDQidCj0JHQmNCd0JrQkAor0KHQotCe0IjQmNCLINCc0JDQoNCQCivQodCi0J7QiNCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0KLQntCI0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCY0Isg0JzQmNCb0JXQndCQCivQodCi0J7QiNCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQodCi0J7QiNCY0Isg0JzQmNCe0JzQmNCgCivQodCi0J7QiNCY0Isg0JzQmNCg0JrQngor0KHQotCe0IjQmNCLINCc0JvQkNCU0JXQnSDQlNCgINCb0JXQmtCQ0KAKK9Ch0KLQntCI0JjQiyDQndCV0JTQldCJ0JrQngor0KHQotCe0IjQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQmNCLINCh0JjQndCY0KjQkCDQlNCgCivQodCi0J7QiNCY0Isg0KHQm9CQ0JLQmtCQCivQodCi0J7QiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KHQotCe0IjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQntCI0JjQiyDQotCe0JTQntCgCivQodCi0J7QiNCY0Isg0JLQkNCh0JAKK9Ch0KLQntCI0JjQiyDQktCj0KfQmtCeCivQodCi0J7QiNCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ch0KLQntCI0JjQiyDQl9Ce0KDQkNCdCivQodCi0J7QiNCY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCY0KYg0IjQntCd0JXQmwor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgINCU0JjQn9CbINCe0JXQpgor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQlNCQ0JzQmNCgCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCU0JDQoNCa0JAKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0JPQntCg0JDQnSDQlNCgCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCS0JjQmtCi0J7QoAor0KHQotCe0IjQmNCb0JrQntCS0JjQiyDQnNCY0JvQldCi0JjQiNCVCivQodCi0J7QiNCY0JvQmtCe0JLQmNCLINCc0JjQm9CVCivQodCi0J7QiNCY0JvQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0IjQmNCb0JrQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQodCi0J7QiNCY0JvQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JjQnSDQp9CV0JTQntCc0JjQoAor0KHQotCe0IjQmNCdINCc0JjQm9CY0JLQntCIINCU0KAg0J/QoNCe0KQKK9Ch0KLQntCI0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQotCe0IjQmNCd0J7QkiDQltCY0JLQmtCeCivQodCi0J7QiNCY0J3QntCSINCR0KDQkNCd0JrQngor0KHQotCe0IjQmNCd0J7QkiDQlNCj0KjQkNCdCivQodCi0J7QiNCY0J3QntCSINCI0J7QktCQ0J0KK9Ch0KLQntCI0JjQndCe0JIg0JrQkNCi0JDQoNCY0J3QkAor0KHQotCe0IjQmNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCI0JjQndCe0JIg0InQo9CR0JjQptCQCivQodCi0J7QiNCY0J3QntCSINCc0JjQm9CV0J3QmtCeCivQodCi0J7QiNCY0J3QntCSINCX0J7QoNCY0KbQkAor0KHQotCe0IjQmNCd0J7QktCY0Isg0JPQntCg0JDQnQor0KHQotCe0IjQmNCd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQodCi0J7QiNCY0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCY0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KHQotCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCS0JXQidCa0J4KK9Ch0KLQntCI0JrQntCSINCW0JDQoNCa0J4KK9Ch0KLQntCI0JrQntCSINCW0JjQktCe0KDQkNCUCivQodCi0J7QiNCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQmtCe0JIg0JHQntCT0JTQkNCdCivQodCi0J7QiNCa0J7QkiDQkdCe0KDQmNCS0J7QiAor0KHQotCe0IjQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCa0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0JrQntCSINCU0KDQkNCT0JjQndCQCivQodCi0J7QiNCa0J7QkiDQmNCS0JDQnQor0KHQotCe0IjQmtCe0JIg0IjQldCb0JjQptCQCivQodCi0J7QiNCa0J7QkiDQiNCV0JvQmtCQCivQodCi0J7QiNCa0J7QkiDQiNCe0JLQkNCdCivQodCi0J7QiNCa0J7QkiDQiNCj0JvQmtCQCivQodCi0J7QiNCa0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCI0JrQntCSINCJ0KPQkdCY0KbQkAor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JXQndCQCivQodCi0J7QiNCa0J7QkiDQnNCY0JvQldCS0JrQkAor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JUKK9Ch0KLQntCI0JrQntCSINCc0JjQntCU0KDQkNCTCivQodCi0J7QiNCa0J7QkiDQnNCY0J7QnNCY0KAKK9Ch0KLQntCI0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCSINCc0JvQkNCU0JXQnQor0KHQotCe0IjQmtCe0JIg0J3QldCT0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCSINCg0JDQlNCY0JLQntCICivQodCi0J7QiNCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQotCe0IjQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQmtCe0JIg0KHQotCV0JLQkNCdCivQodCi0J7QiNCa0J7QkiDQodCi0J7QiNCQ0J0KK9Ch0KLQntCI0JrQntCSINCh0KLQntCI0JDQnQor0KHQotCe0IjQmtCe0JIg0KLQntCU0J7QoAor0KHQotCe0IjQmtCe0JIg0JLQldCg0JjQptCQCivQodCi0J7QiNCa0J7QkiDQktCj0JrQntCh0JDQktCQCivQodCi0J7QiNCa0J7QkiDQl9CU0KDQkNCS0JrQngor0KHQotCe0IjQmtCe0JLQmNCLLdCo0JDQm9CR0J7QoiDQkdCe0IjQkNCd0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQltCY0JLQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0JbQmNCS0J7QotCQCivQodCi0J7QiNCa0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0J7QiNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCQ0J3QkNCd0JjQiNCVCivQodCi0J7QiNCa0J7QktCY0Isg0JDQndCi0J7QndCY0IjQlQor0KHQotCe0IjQmtCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQodCi0J7QiNCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCS0JjQiyDQkdCe0KDQmtCeCivQodCi0J7QiNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQmNCS0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLLdCI0J7QktCQ0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KHQotCe0IjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQodCi0J7QiNCa0J7QktCY0Isg0JrQo9CX0JzQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JvQldCd0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQldCd0KLQmNCI0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQntCoCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQotCV0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCg0JrQngor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQndCQ0JTQkAor0KHQotCe0IjQmtCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQodCi0J7QiNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0J7QiNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMg0JTQoAor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIg0JTQmNCf0Jsg0JjQndCTCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCe0IjQmtCe0JLQmNCLINCh0JDQitCQCivQodCi0J7QiNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KHQotCe0IjQmtCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQotCV0J7QlNCe0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCS0JXQidCa0J4KK9Ch0KLQntCI0JrQntCS0JjQiyDQktCV0KDQntCh0JvQkNCSCivQodCi0J7QiNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCX0JvQkNCi0JjQkdCe0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0J7QiNCa0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JrQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0KHQotCe0IjQm9Ce0JLQmNCLINCC0KPQm9CQCivQodCi0J7QiNCc0JXQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0KLQntCI0JzQldCd0J7QktCY0Isg0JjQktCQ0J0KK9Ch0KLQntCI0JzQldCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCe0IjQnNCV0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0JzQldCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0KHQotCe0IjQnNCV0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QiNCd0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0J3QmNCLINCU0KDQkNCT0JjQptCQCivQodCi0J7QiNCd0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0J3QmNCLINCc0JjQoNCa0J4KK9Ch0KLQntCI0J3QmNCLINCf0JDQktCb0JUKK9Ch0KLQntCI0J3QmNCLINCg0JDQlNCe0JzQmNCgCivQodCi0J7QiNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCd0J7QkiDQlNCQ0JzQiNCQ0J0KK9Ch0KLQntCI0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQntCI0J7QktCY0Isg0KLQntCc0JDQqAor0KHQotCe0IjQodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQodCQ0JLQidCV0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0KHQkNCS0InQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0KHQkNCS0InQldCS0JjQiyDQotCY0KXQntCc0JjQoAor0KHQotCe0JrQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCe0JrQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQntCa0JjQiyDQgtCe0KDQgtCVCivQodCi0J7QmtCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0JrQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCa0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0KLQntCa0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QmtCY0Isg0KLQntCU0J7QoAor0KHQotCe0JrQmNCdINCQ0JvQldCh0JDQndCU0JDQoAor0KHQotCe0JrQmNCdINCR0KDQkNCd0JrQngor0KHQotCe0JrQmNCdINCc0JjQm9CY0JLQntCICivQodCi0J7QmtCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0JrQmNCdINCh0KLQntCI0JDQnQor0KHQotCe0JrQo9CL0JAg0JTQkNCd0JUKK9Ch0KLQntCa0KPQi9CQINCc0JjQpdCQ0IjQm9CeCivQodCi0J7QmtCj0IvQkCDQnNCY0JvQkNCdCivQodCi0J7QmtCj0IvQkCDQnNCY0JvQkNCdCivQodCi0J7QmtCj0IvQkCDQnNCY0JvQkNCdCivQodCi0J7QmtCj0IvQkCDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0JrQo9CL0JAg0J3QmNCa0J7Qm9CQCivQodCi0J7QmtCj0IvQkCDQn9CV0KLQkNCgCivQodCi0J7Qm9CV0KHQmtCYINCc0JjQotCY0IjQkAor0KHQotCe0JvQmNCLINCC0KPQoNCeCivQodCi0J7Qm9CY0Isg0JHQmNCh0JXQoNCa0JAKK9Ch0KLQntCb0JjQiyDQlNCj0KjQkNCdCivQodCi0J7Qm9CY0Isg0JTQo9Co0JDQnQor0KHQotCe0JvQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCb0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7Qm9CY0Isg0J3QldCd0JDQlAor0KHQotCe0JvQmNCLINCf0JXQotCQ0KAg0JTQoAor0KHQotCe0JvQmNCLINCh0KDQldCi0JAKK9Ch0KLQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCf0JjQndCo0JXQmiDQodCi0JDQndCY0KHQm9CQ0JIKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KAg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KAg0JTQo9Co0JDQnQor0KHQotCg0JDQltCc0JXQqNCi0JXQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQnNCY0JvQmNCm0JAKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQodCQ0JLQkAor0KHQotCg0JDQltCc0JXQqNCi0JXQoNCe0JIg0KHQntCk0JjQiNCQCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQodCi0JXQktCQ0J0KK9Ch0KLQoNCQ0KbQldCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQoNCQ0KbQldCd0KHQmtCYINCh0KLQldCS0JDQnQor0KHQotCg0JDQk9CQINCh0KLQiNCV0J/QkNCdCivQodCi0KDQkNCl0JjQndCY0Isg0JrQoNCh0KLQntCc0JjQoAor0KHQotCg0JDQiNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ch0KLQoNCQ0IjQmNCdINCI0JXQm9CV0J3QkAor0KHQotCg0JDQiNCY0J0g0J3QkNCU0JAKK9Ch0KLQoNCQ0IjQmNCdINCg0JDQlNCe0JLQkNCdCivQodCi0KDQkNCI0JjQnSDQodCi0J7QiNCQ0J0KK9Ch0KLQoNCQ0IjQmNCdINCS0JXQm9CY0JfQkNCgCivQodCi0KDQkNCI0JjQndCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQoNCQ0IjQmNCd0JjQiyDQmNCg0JXQndCQCivQodCi0KDQkNCI0JjQndCY0Isg0IjQntCS0JDQnQor0KHQotCg0JDQiNCY0J3QmNCLINCb0JDQl9CQ0KAKK9Ch0KLQoNCQ0IjQmNCd0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQotCg0JDQiNCd0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQoNCQ0IjQndCY0Isg0JTQo9Co0JDQnQor0KHQotCg0JDQiNCd0JjQiyDQk9Cg0KPQiNCQCivQodCi0KDQkNCI0J3QmNCLINCc0JDQoNCY0IjQkAor0KHQotCg0JDQiNCd0JjQiyDQnNCY0JvQkNCd0JrQngor0KHQotCg0JDQiNCd0JjQiyDQnNCY0JvQkNCdCivQodCi0KDQkNCI0J3QmNCLINCc0JvQkNCU0JXQnQor0KHQotCg0JDQiNCd0JjQiyDQn9CQ0JsKK9Ch0KLQoNCQ0IjQndCY0Isg0KLQntCo0JAKK9Ch0KLQoNCQ0J3QmNCLINCI0J7QktCY0KbQkAor0KHQotCg0JDQitCQ0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCg0JDQitCQ0J3QkNCmINCc0JjQm9Ce0KDQkNCUCivQodCi0KDQkNCK0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0KHQotCg0JHQkNCn0JrQmCDQpNCg0JjQlNCe0JvQmNCd0JAKK9Ch0KLQoNCR0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQodCi0KDQkdCQ0JQg0KHQotCV0JLQkNCdCivQodCi0KDQkdCQ0KIg0KLQntCc0JjQodCb0JDQkgor0KHQotCg0JXQpdCe0JLQodCa0Jgg0JfQo9CX0JDQndCQCivQodCi0KDQldCb0JUg0KDQkNCo0JAKK9Ch0KLQoNCV0JfQntCh0JrQmCDQiNCe0JLQkNCdCivQodCi0KDQldCX0J7QodCa0Jgg0JzQmNCb0JXQodCQCivQodCi0KDQldCX0J7QodCa0Jgg0J3QmNCa0J7QlNCY0J3QmtCQCivQodCi0KDQldCX0J7QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCg0JPQkNCgINCf0JXQotCQ0KAKK9Ch0KLQoNCY0KfQldCS0JjQiyDQlNCQ0KDQkAor0KHQotCg0JjQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQoNCY0KfQldCS0JjQiyDQiNCe0KHQmNCfCivQodCi0KDQmNCn0JXQktCY0Isg0IjQo9Cb0JrQkAor0KHQotCg0JjQp9CV0JLQmNCLINCa0KHQldCd0JjQiNCQCivQodCi0KDQmNCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQoNCY0KfQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0KLQoNCY0KfQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQotCg0JjQp9CV0JLQmNCLINCh0JDQktCa0JAKK9Ch0KLQoNCY0KfQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCg0JjQp9CV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQodCi0KDQmNCn0JrQniDQktCb0JDQlNCY0JzQmNCgCivQodCi0KDQmNCR0JXQoCDQldCc0JjQmwor0KHQotCg0JjQkdCV0KAg0KTQoNCQ0IrQkAor0KHQotCg0JjQkdCV0KAg0KTQoNCQ0IrQkAor0KHQotCg0JjQkdCV0KAg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQoNCY0JHQldCgINCh0KLQldCS0JDQnQor0KHQotCg0JjQkdCV0KAg0KHQotCV0JLQkNCdCivQodCi0KDQmNCm0JrQmCDQmNCS0JDQnQor0KHQotCg0JjQmtCQINCC0J7QoNCC0JUKK9Ch0KLQoNCY0JrQkCDQkdCg0JDQndCa0J4KK9Ch0KLQoNCY0JrQntCS0JjQiyDQi9CQ0JzQmNCbCivQodCi0KDQmNCa0J7QktCY0Isg0JHQldCb0JgKK9Ch0KLQoNCY0JrQntCS0JjQiyDQiNCQ0J3QntCoCivQodCi0KDQmNCa0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9Ch0KLQoNCY0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCi0KDQmNCa0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQoNCY0J3QldCa0JAg0JrQkNCi0JjQptCQCivQodCi0KDQmNCX0J7QktCY0Isg0InQmNCJ0JDQndCQCivQodCi0KDQmNCX0J7QktCY0Isg0JzQkNCa0KHQmNCcCivQodCi0KDQo9CT0JDQoCDQltCQ0KDQmtCeCivQodCi0KDQo9CT0JDQoCDQltCY0JLQntCg0JDQlAor0KHQotCg0KPQk9CQ0KAg0JPQntCg0JDQnQor0KHQotCg0KPQk9CQ0KAg0IjQntCh0JjQnwor0KHQotCg0KPQk9CQ0KAg0JzQmNCb0KPQotCY0J0KK9Ch0KLQoNCj0JPQkNCgINCf0JDQktCb0JUKK9Ch0KLQoNCj0JPQkNCgINCg0JDQlNCc0JjQm9CQCivQodCi0KDQo9CT0JDQoCDQodCe0IrQkAor0KHQotCg0KPQk9CQ0KAg0JLQntCI0JjQodCb0JDQkgor0KHQotCg0KPQk9CQ0KAg0JfQkNCg0JjQiNCQCivQodCi0KDQo9Cl0JDQoCDQkNCd0JAKK9Ch0KLQoNCj0KXQkNCgINCI0JDQoNCc0JjQm9CQCivQodCi0KDQo9Cl0JDQoCDQiNCe0KHQmNCfCivQodCi0KDQo9Cl0JDQoCDQnNCQ0JPQlNCQCivQodCi0KDQo9Cl0JDQoNCY0Jog0IjQntCh0JjQnwor0KHQotCg0KPQpdCQ0KDQmNCaINCI0J7QodCY0J8KK9Ch0KLQoNCj0KXQkNCg0JjQmi3QiNCj0KAg0KDQkNCh0KLQmNCh0JvQkNCSCivQodCi0KDQo9Cl0JDQoNCY0Jog0IjQo9Cg0JDQiCDQlNCgCivQodCi0KDQo9Cl0JDQoNCY0Jog0JzQkNCg0IjQldCd0JAKK9Ch0KLQoNCj0KXQkNCg0JjQmiDQnNCQ0KLQngor0KHQotCg0KPQpdCQ0KDQmNCaINCf0JDQktCb0JUKK9Ch0KLQoNCj0JrQkNCdINCU0J7QnNCQ0JPQntCIINCU0KAKK9Ch0KLQoNCj0IrQkNCoINCT0J7QoNCU0JDQndCQCivQodCi0KPQkdCb0JjQndCQ0KYg0JzQmNCb0J7QqAor0KHQotCj0JTQldCdINCW0JjQktCe0KDQkNCUCivQodCi0KPQm9CQ0KAg0JTQo9Co0JDQnQor0KHQotCj0J/QkNCgINCn0JXQlNCQCivQodCi0KPQn9CQ0KAg0JbQldCJ0JrQngor0KHQotCj0J/QkNCgINCW0JjQktCa0J4KK9Ch0KLQo9Cf0JDQoCDQgtCe0KDQgtCVCivQodCi0KPQn9CQ0KAg0JHQntCT0J7QidCj0JEKK9Ch0KLQo9Cf0JDQoCDQkdCe0KDQngor0KHQotCj0J/QkNCgINCR0J7QodCY0InQmtCQCivQodCi0KPQn9CQ0KAg0JHQoNCQ0J3QmtCeCivQodCi0KPQn9CQ0KAg0JHQoNCQ0J3QmtCeCivQodCi0KPQn9CQ0KAg0JHQoNCQ0J3QmtCeCivQodCi0KPQn9CQ0KAg0KbQktCV0KLQkAor0KHQotCj0J/QkNCgINCU0JXQodCQ0J3QmtCQCivQodCi0KPQn9CQ0KAg0JTQoNCQ0JPQkNCdCivQodCi0KPQn9CQ0KAg0JTQoNCQ0JPQngor0KHQotCj0J/QkNCgINCU0KPQqNCQ0J3QmtCQCivQodCi0KPQn9CQ0KAg0JTQo9Co0JDQnQor0KHQotCj0J/QkNCgINCU0KPQqNCQ0J0KK9Ch0KLQo9Cf0JDQoCDQlNCj0KjQkNCdCivQodCi0KPQn9CQ0KAg0JjQm9CY0IjQkAor0KHQotCj0J/QkNCgINCI0JDQitCQCivQodCi0KPQn9CQ0KAg0IjQkNCd0JrQngor0KHQotCj0J/QkNCgINCI0J7QktCeCivQodCi0KPQn9CQ0KAg0InQo9CR0JjQndCa0JAKK9Ch0KLQo9Cf0JDQoCDQnNCQ0KDQmtCeCivQodCi0KPQn9CQ0KAg0JzQkNCg0JrQngor0KHQotCj0J/QkNCgINCc0JjQidCQCivQodCi0KPQn9CQ0KAg0JzQmNCb0JrQkAor0KHQotCj0J/QkNCgINCc0JjQm9Ce0KDQkNCUCivQodCi0KPQn9CQ0KAg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQo9Cf0JDQoCDQnNCY0KDQiNCQ0J3QkAor0KHQotCj0J/QkNCgINCc0JjQoNCa0J4KK9Ch0KLQo9Cf0JDQoCDQndCY0JrQntCb0JAKK9Ch0KLQo9Cf0JDQoCDQn9CV0KDQngor0KHQotCj0J/QkNCgINCf0JXQotCQ0KAKK9Ch0KLQo9Cf0JDQoCDQn9CV0KLQkNCgCivQodCi0KPQn9CQ0KAg0KDQkNCU0JAKK9Ch0KLQo9Cf0JDQoCDQoNCQ0JTQlQor0KHQotCj0J/QkNCgINCg0JDQiNCa0J4KK9Ch0KLQo9Cf0JDQoCDQoNCQ0IjQmtCeCivQodCi0KPQn9CQ0KAg0KDQkNCI0JrQngor0KHQotCj0J/QkNCgINCh0JvQkNCC0JDQndCQCivQodCi0KPQn9CQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCj0J/QkNCgINCX0JTQoNCQ0JLQmtCeCivQodCi0KPQn9CQ0KAg0JfQntCg0JDQnQor0KHQotCj0J/QkNCS0KHQmtCYINCQ0J3QlNCg0JXQiAor0KHQotCj0J/QkNCS0KHQmtCYINCI0JDQndCa0J4KK9Ch0KLQo9Cf0JjQiyDQodCb0JDQktCV0J3QmtCeCivQodCi0KPQn9CY0J0g0JjQktCQ0J0KK9Ch0KLQo9Cf0JjQnSDQl9CS0J7QndCY0JzQmNCgCivQodCi0KPQoNCQ0KAg0JfQlNCg0JDQktCa0J4KK9Ch0KLQktCe0KDQmNCLINCf0JDQktCb0JUKK9Ch0KPQp9CV0JLQmNCLINCU0JDQndCVINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQodCj0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KPQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KPQp9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQo9Cn0JXQktCY0Isg0JzQkNCg0KLQkAor0KHQo9Cn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQo9Cn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCj0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KPQp9CV0JLQmNCLINCg0KPQltCY0KbQkAor0KHQo9Co0JAg0JTQkNCd0JjQm9CeCivQodCj0KjQkCDQnNCQ0KDQmtCeCivQodCj0KjQkCDQnNCY0JvQmNCI0JDQndCQCivQodCj0KjQkNCmINCS0JjQndCa0J4KK9Ch0KPQqNCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0KPQqNCY0Isg0KXQmNCb0JTQkAor0KHQo9Co0JjQiyDQoNCQ0JTQkAor0KHQo9Co0JjQiyDQktCj0IjQkNCd0JAKK9Ch0KPQgtCYINCI0J7QktCQ0J0KK9Ch0KPQgtCYINCc0JDQoNCY0IjQkAor0KHQo9CC0Jgg0KHQotCQ0J3QmtCeCivQodCj0JHQkNCo0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCj0JHQkNCo0JjQiyDQiNCj0JvQmtCQCivQodCj0JHQkNCo0JjQiyDQm9CQ0JfQkNCgCivQodCj0JHQkNCo0JjQiyDQnNCQ0KDQmtCeCivQodCj0JHQkNCo0JjQiyDQnNCY0JvQkNCdCivQodCj0JHQkNCo0JjQiyDQndCY0JrQntCb0JAKK9Ch0KPQkdCQ0KjQmNCLINCf0JXQoNCeCivQodCj0JHQkNCo0JjQiyDQn9CV0KLQkNCgINCc0KAKK9Ch0KPQkdCQ0KjQmNCLINCg0JDQiNCa0J4KK9Ch0KPQkdCQ0KjQmNCLINCh0JjQnNCQCivQodCj0JHQkNCo0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KPQkdCQ0IjQmtCe0JIg0KDQkNCU0J7QiNCa0JAKK9Ch0KPQkdCQ0JrQntCSINCa0J7QktCY0InQmtCQCivQodCj0JHQkNCa0J7QkiDQodCc0JjQidCa0JAKK9Ch0KPQkdCQ0JrQntCSINCh0J7QpNCY0IjQkAor0KHQo9CR0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KPQkdCY0Isg0JbQkNCg0JrQngor0KHQo9CR0JjQiyDQgtCe0KDQgtCVCivQodCj0JHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCj0JHQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCj0JHQmNCLINCR0J7QltCV0J3QkAor0KHQo9CR0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQo9CR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KPQkdCY0Isg0JTQkNCc0JjQoAor0KHQo9CR0JjQiyDQlNCQ0KDQkAor0KHQo9CR0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KPQkdCY0Isg0JTQo9Co0JDQnQor0KHQo9CR0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQo9CR0JjQiyDQiNCe0JLQkNCdCivQodCj0JHQmNCLINCa0J7QodCi0JAKK9Ch0KPQkdCY0Isg0JvQkNCX0JDQoAor0KHQo9CR0JjQiyDQm9CQ0JfQkNCgCivQodCj0JHQmNCLINCb0JDQl9CQ0KAKK9Ch0KPQkdCY0Isg0InQo9CR0JjQptCQCivQodCj0JHQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCj0JHQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCj0JHQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCj0JHQmNCLINCc0JDQoNCY0IjQkAor0KHQo9CR0JjQiyDQnNCQ0KDQmtCeCivQodCj0JHQmNCLINCc0JDQoNCa0J4KK9Ch0KPQkdCY0Isg0JzQmNCb0JDQnQor0KHQo9CR0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ch0KPQkdCY0Isg0JzQm9CQ0JTQldCdCivQodCj0JHQmNCLINCd0JDQlNCQCivQodCj0JHQmNCLINCd0JXQlNCV0InQmtCQCivQodCj0JHQmNCLINCd0JXQlNCV0InQmtCeCivQodCj0JHQmNCLINCd0J7QktCQ0JoKK9Ch0KPQkdCY0Isg0J7Qm9CT0JAKK9Ch0KPQkdCY0Isg0J/QkNCI0JAKK9Ch0KPQkdCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KPQkdCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQo9CR0JjQiyDQodCc0JjQidCQCivQodCj0JHQmNCLINCh0J3QldCW0JDQndCQCivQodCj0JHQmNCLINCh0KLQldCS0JDQnQor0KHQo9CR0JjQiyDQl9Ce0KDQkNCdCivQodCj0JHQntCi0JjQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCj0JHQntCi0JjQp9Ca0Jgg0JPQntCg0JjQptCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0JrQkNCi0JjQptCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0JvQo9Ca0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KHQo9CR0J7QotCY0KfQmtCYINCc0JjQoNCa0J4KK9Ch0KPQkdCe0KLQmNCn0JrQmCDQndCQ0JTQkAor0KHQo9CR0J7QotCY0KfQmtCYINCd0JXQodCi0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQoNCQ0JTQntCS0JDQnQor0KHQo9CR0J7QotCY0KfQmtCYINCh0JDQktCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQnQor0KHQo9CR0J7QotCY0KfQmtCYINCh0J7QpNCY0IjQkAor0KHQo9CR0J7QotCY0KfQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0KHQo9CR0J7QotCY0KfQmtCYINCS0JDQodCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0JLQldCg0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQodCj0JHQntCi0JjQp9Ca0Jgg0JfQntCg0JDQnQor0KHQo9CR0J7QotCY0Isg0JbQkNCg0JrQngor0KHQo9CR0J7QotCY0Isg0ILQntCg0ILQlQor0KHQo9CR0J7QotCY0Isg0ILQo9Cg0J4KK9Ch0KPQkdCe0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCj0JHQntCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoAor0KHQo9CR0J7QotCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KHQo9CR0J7QotCY0Isg0JTQo9Co0JDQnQor0KHQo9CR0J7QotCY0Isg0JTQo9Co0JDQnQor0KHQo9CR0J7QotCY0Isg0InQmNCJ0JDQndCQCivQodCj0JHQntCi0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KPQkdCe0KLQmNCLINCc0JDQptCQCivQodCj0JHQntCi0JjQiyDQnNCQ0KDQmtCeCivQodCj0JHQntCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQo9CR0J7QotCY0Isg0JzQmNCb0J7QqAor0KHQo9CR0J7QotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KPQkdCe0KLQmNCLINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0KHQo9CR0J7QotCY0Isg0J3QldCd0JDQlAor0KHQo9CR0J7QotCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KPQkdCe0KLQmNCLINCg0JDQlNCe0KgKK9Ch0KPQkdCe0KLQmNCLINCg0JDQiNCa0J4KK9Ch0KPQkdCe0KLQmNCLINCg0JDQiNCa0J4KK9Ch0KPQkdCe0KLQmNCLINCg0KPQltCQCivQodCj0JHQntCi0JjQiyDQoNCj0JbQkAor0KHQo9CR0J7QotCY0Isg0KHQkNCS0JAKK9Ch0KPQkdCe0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KPQkdCe0KLQmNCLINCh0KLQkNCd0JAKK9Ch0KPQkdCe0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KPQkdCe0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KPQkdCe0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KPQkdCe0KLQmNCLINCS0JXQoNCQCivQodCj0JHQntCi0JjQiyDQktCb0JDQlNCQ0J3QkAor0KHQo9CR0J7QotCY0J0g0JbQmNCS0JrQngor0KHQo9CR0J7QotCY0J0g0JbQmNCS0JrQngor0KHQo9CR0J7QotCY0J0g0ILQntCg0ILQlQor0KHQo9CR0J7QotCY0J0g0ILQntCg0ILQlQor0KHQo9CR0J7QotCY0J0g0ILQo9Cg0JAKK9Ch0KPQkdCe0KLQmNCdINCR0J7Qk9CU0JDQnQor0KHQo9CR0J7QotCY0J0g0JHQntCT0JTQkNCdCivQodCj0JHQntCi0JjQnSDQlNCQ0J3QmNCm0JAKK9Ch0KPQkdCe0KLQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQo9CR0J7QotCY0J0g0JTQoNCQ0JPQkNCdCivQodCj0JHQntCi0JjQnSDQlNCg0JDQk9CY0IrQkAor0KHQo9CR0J7QotCY0J0g0JTQo9Co0JDQndCa0JAKK9Ch0KPQkdCe0KLQmNCdINCY0KDQmNCd0JAKK9Ch0KPQkdCe0KLQmNCdINCY0JLQkNCdCivQodCj0JHQntCi0JjQnSDQiNCV0JvQldCd0JAKK9Ch0KPQkdCe0KLQmNCdINCI0JXQm9CY0KbQkAor0KHQo9CR0J7QotCY0J0g0InQmNCJ0JDQndCQCivQodCj0JHQntCi0JjQnSDQidCj0JHQmNCd0JrQkAor0KHQo9CR0J7QotCY0J0g0JzQkNCg0JrQngor0KHQo9CR0J7QotCY0J0g0JzQkNCg0JrQngor0KHQo9CR0J7QotCY0J0g0JzQkNCg0JrQngor0KHQo9CR0J7QotCY0J0g0JzQmNCb0JDQnQor0KHQo9CR0J7QotCY0J0g0JzQmNCb0JDQnQor0KHQo9CR0J7QotCY0J0g0JzQmNCb0JDQnQor0KHQo9CR0J7QotCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ch0KPQkdCe0KLQmNCdINCd0JXQktCV0J3QmtCQCivQodCj0JHQntCi0JjQnSDQn9CQ0JLQm9CVCivQodCj0JHQntCi0JjQnSDQn9CV0KLQkNCgCivQodCj0JHQntCi0JjQnSDQn9Cg0JXQlNCg0JDQkwor0KHQo9CR0J7QotCY0J0g0KDQkNCU0J7QodCb0JDQkgor0KHQo9CR0J7QotCY0J0g0KDQkNCU0J7QktCQ0J0KK9Ch0KPQkdCe0KLQmNCdINCh0JDQqNCQCivQodCj0JHQntCi0JjQnSDQodCQ0JLQkAor0KHQo9CR0J7QotCY0J0g0KHQkNCS0JAKK9Ch0KPQkdCe0KLQmNCdINCh0JDQktCQCivQodCj0JHQntCi0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQodCj0JHQntCi0JjQnSDQodCc0JjQidCQCivQodCj0JHQntCi0JjQnSDQodCi0JDQndCa0JAKK9Ch0KPQkdCe0KLQmNCdINCh0KLQldCS0JDQnQor0KHQo9CR0J7QotCY0J0g0KHQotCV0JLQkNCdCivQodCj0JHQntCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCj0JHQntCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCj0JHQntCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCj0JHQntCi0JjQnSDQl9Ce0KDQkAor0KHQo9CR0KMg0ILQntCg0ILQlQor0KHQo9CP0KPQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQo9CP0KPQnCDQkdCe0KjQmtCeCivQodCj0I/Qo9CcINCR0J7Qk9CU0JDQnQor0KHQo9CP0KPQnCDQmNCb0JjQiNCQCivQodCj0JTQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KPQlNCQ0KAg0JTQo9Co0JDQnQor0KHQo9CU0JDQoCDQlNCj0KjQkNCdCivQodCj0JTQkNCgINCT0JDQiNCQCivQodCj0JTQkNCgINCS0J7QiNCY0J0KK9Ch0KPQlNCQ0KDQldCS0JjQiyDQkdCe0KjQmtCeCivQodCj0JTQkNCg0J7QkiDQkdCg0JDQotCY0KHQm9CQ0JIKK9Ch0KPQlNCQ0KDQodCa0Jgg0JTQo9Co0JDQnQor0KHQo9CU0JjQnNCQ0KYg0JTQoNCQ0JPQngor0KHQo9CU0JjQnNCQ0KYg0JzQmNCb0JDQnQor0KHQo9Cl0JDQndCV0Jog0JDQlNCQ0JwKK9Ch0KPQpdCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQodCj0KXQntCS0KHQmtCYINCI0JDQndCeCivQodCj0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KPQmNCLINCd0JXQndCQ0JQKK9Ch0KPQiNCV0KAg0JzQmNCl0JDQiNCb0J4KK9Ch0KPQiNCY0Isg0IjQldCb0JXQndCQCivQodCj0IjQmNCLINCc0JjQm9CQ0J0KK9Ch0KPQiNCY0Isg0KHQntCk0JjQiNCQCivQodCj0IjQmNCLINCS0J7QiNCY0J0KK9Ch0KPQiNCY0Isg0JfQlNCV0J3QmtCQCivQodCj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQodCj0JrQitCQ0IjQkCDQlNCQ0J3QmNCb0J4KK9Ch0KPQmtCd0J7QktCY0Isg0JzQmNCg0JrQngor0KHQo9Ca0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQodCj0JrQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQo9Ca0J7Qm9CQINCQ0J3QotCQ0JsKK9Ch0KPQmtCe0JvQkCDQodCj0JfQkNCd0JAKK9Ch0KPQmtCj0J8g0JzQkNCg0JPQmNCi0JAKK9Ch0KPQm9CV0IjQnNCQ0J3QntCSINCd0JDQpNCY0IjQkAor0KHQo9Cb0JjQiyDQnNCQ0KDQmNCm0JAKK9Ch0KPQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQo9CJ0JAg0KDQkNCc0JDQlNCQ0J0KK9Ch0KPQidCQ0JPQmNCLINCg0JXQpNCY0JoKK9Ch0KPQm9Ce0KbQmtCYINCI0J7QqNCa0JAKK9Ch0KPQm9Ce0JzQkNCgINCQ0JPQndCV0JfQkAor0KHQo9Cb0J7QnNCQ0KAg0JXQoNCW0JXQkdCV0KIKK9Ch0KPQm9Ce0JzQkNCgINCY0JvQntCd0JAKK9Ch0KPQm9Ce0JzQkNCgINCI0JDQndCe0KgKK9Ch0KPQm9Ce0JzQkNCgINCc0JDQk9CU0JAKK9Ch0KPQnNCQ0J0g0JzQmNCb0JUKK9Ch0KPQnNCQ0KDQntCSINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCj0JzQmNCd0JAg0JTQkNCd0JjQptCQCivQodCj0JzQmNCK0JAg0JzQmNCo0JAKK9Ch0KPQndCQ0IjQmtCeINCC0KPQoNCeCivQodCj0J3QkNCI0JrQniDQlNCj0KjQkNCdCivQodCj0J3QlNCQ0Isg0ILQo9Cg0JAKK9Ch0KPQndCU0JDQiyDQotCe0JTQntCgCivQodCj0J3QmNCLINCc0JjQoNCI0JDQndCQCivQodCj0J3QmtCQINCJ0KPQkdCY0KbQkAor0KHQo9Cd0KLQntCaINCQ0J3QmNCm0JAKK9Ch0KPQndCX0JXQoCDQktCb0JDQlNCY0JzQmNCgCivQodCj0J/QmNCLINCR0J7QoNCY0KjQkAor0KHQo9Cf0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KHQo9Cf0JjQiyDQnNCY0JvQkNCdCivQodCj0J/QmNCLINCe0JvQk9CQCivQodCj0KDQi9CQINCI0J7QodCY0J8KK9Ch0KPQoNCL0JAg0KLQoNCQ0IjQkNCdCivQodCj0KDQkCDQnNCQ0KDQk9CY0KLQkAor0KHQo9Cg0JTQo9Cn0JDQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KPQoNCU0KPQp9Ca0Jgg0JbQmNCS0JrQngor0KHQo9Cg0JTQo9Cn0JrQmCDQlNCg0JDQk9CQ0J0KK9Ch0KPQoNCU0KPQp9Ca0Jgg0JjQm9CY0IjQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQmNCb0JjQiNCQCivQodCj0KDQlNCj0KfQmtCYINCY0KHQmNCU0J7QoAor0KHQo9Cg0JTQo9Cn0JrQmCDQnNCQ0KDQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQnNCY0JvQkNCdCivQodCj0KDQlNCj0KfQmtCYINCc0JjQm9Ce0KgKK9Ch0KPQoNCU0KPQp9Ca0Jgg0JzQmNCb0J7QqAor0KHQo9Cg0JTQo9Cn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KHQo9Cg0JTQo9Cn0JrQmCDQndCV0JHQntCI0KjQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQn9CQ0J3QotCV0JvQmNCI0JAKK9Ch0KPQoNCU0KPQp9Ca0Jgg0J/QldCg0KHQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQodCY0J3QmNCo0JAKK9Ch0KPQoNCU0KPQp9Ca0Jgg0KHQotCQ0J3QmtCQCivQodCj0KDQlNCj0KfQmtCYINCh0KLQldCS0JDQnQor0KHQo9Cg0JvQkCDQkdCe0JbQngor0KHQo9Cg0JvQkCDQlNCj0KjQkNCdCivQodCj0KDQm9CQINCb0KPQmtCQCivQodCj0KDQm9CQINCf0JXQotCQ0KAKK9Ch0KPQoNCb0JAg0J/QldCi0JDQoAor0KHQo9Cg0JvQkCDQodCQ0JLQkAor0KHQo9Cg0JvQkCDQl9Ce0KDQkNCdCivQodCj0KDQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KPQoNCe0JLQmCDQkNCd0KLQntCdCivQodCj0KDQntCS0Jgg0IjQntCb0JDQndCa0JAKK9Ch0KPQoNCe0JLQmCDQnNCY0KXQkNCbCivQodCj0KDQntCS0Jgg0JzQmNCg0J7QodCb0JDQkgor0KHQo9Cg0J7QktCYINCh0KLQldCS0JDQnQor0KHQo9Cg0J7QktCYINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KPQodCV0JTQodCa0Jgg0J7QodCa0JDQoAor0KHQo9Ci0JDQoNCY0Isg0JLQldCg0JAKK9Ch0KPQotCg0JjQnSDQkdCe0KDQmNChCivQodCj0KLQo9Cg0J7QktCY0Isg0IjQkNCT0JAKK9Ch0KPQotCj0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KPQotCj0KDQntCS0JjQiyDQndCV0KHQotCeCivQodCj0KLQo9Cg0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0KHQo9CS0JDQp9CQ0KAg0JjQm9CY0J3QmtCQCivQodCj0JLQkNCn0JDQoCDQotCe0JTQntCgCivQodCj0JLQkNCn0JDQoCDQktCV0KDQkAor0KHQo9CS0JDQp9CQ0KDQldCSINCR0J7QoNCY0KHQm9CQ0JLQkAor0KHQo9CS0JDQp9CQ0KDQldCSINCI0J7QktCQ0J0KK9Ch0KPQktCQ0KfQkNCg0JXQkiDQnNCQ0KDQmNCI0JAKK9Ch0KPQktCQ0KfQkNCg0JXQkiDQnNCY0JvQldCd0JrQngor0KHQo9CS0JDQp9CQ0KDQldCSINCc0J7QnNCY0KAKK9Ch0KPQktCQ0KfQkNCg0JXQkiDQntCR0KDQkNCUCivQodCj0JLQkNCn0JDQoNCV0JIg0J/QkNCI0JAKK9Ch0KPQktCQ0KfQkNCg0JXQkiDQoNCQ0JTQldCd0JrQngor0KHQo9CS0JDQiNCn0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQodCj0JLQkNCI0JDQpiDQltCV0InQmtCeCivQodCj0JLQkNCI0JDQpiDQktCQ0KHQmNCb0JjQiNCVCivQodCj0JLQkNCI0I/QmNCLINCW0JjQktCa0J4KK9Ch0KPQktCQ0IjQj9CY0Isg0ILQntCg0ILQlQor0KHQo9CS0JDQiNCP0JjQiyDQgtCe0KDQgtCVCivQodCj0JLQkNCI0I/QmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQo9CS0JDQiNCP0JjQiyDQk9Ce0IjQmtCeCivQodCj0JLQkNCI0I/QmNCLINCY0JvQmNCI0JAKK9Ch0KPQktCQ0IjQj9CY0Isg0JjQodCQCivQodCj0JLQkNCI0I/QmNCLINCI0J7QktCQ0J0KK9Ch0KPQktCQ0IjQj9CY0Isg0InQmNCJ0JDQndCQCivQodCj0JLQkNCI0I/QmNCLINCc0JDQoNCY0IjQkAor0KHQo9CS0JDQiNCP0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQo9CS0JDQiNCP0JjQiyDQnNCY0JvQmtCQCivQodCj0JLQkNCI0I/QmNCLINCd0JXQndCQ0JQKK9Ch0KPQktCQ0IjQj9CY0Isg0J3QldCd0JDQlAor0KHQo9CS0JDQiNCP0JjQiyDQntCR0KDQkNCUCivQodCj0JLQkNCI0I/QmNCLINCe0JvQk9CY0KbQkAor0KHQo9CS0JDQiNCP0JjQiyDQn9CV0KLQkNCgCivQodCj0JLQkNCI0I/QmNCLINCg0JDQlNCc0JjQm9CQCivQodCj0JLQkNCI0I/QmNCLINCS0JDQodCQCivQodCj0JLQkNCI0I/QmNCLINCS0JDQodCQCivQodCj0JLQkNCI0I/QmNCdINCI0J7QktCQ0J0KK9Ch0KPQktCQ0IjQj9CY0J0g0IjQntCS0JDQnQor0KHQo9CS0JDQiNCP0JjQnSDQnNCb0JDQlNCV0J0KK9Ch0KPQktCQ0IjQj9CY0J0g0J3QmNCa0J7Qm9CQCivQodCj0JfQmNCLINCc0JDQoNCQCivQodCj0JfQmNCLINCc0JjQoNCa0J4KK9Ch0KPQl9CY0Isg0J3QmNCa0J7Qm9CQCivQodCj0JfQmNCLINCh0J7QpNCY0IjQkAor0KHQktCQ0JvQmNCd0JAg0JrQkNCi0JAKK9Ch0JLQldCL0IrQkNCaINCR0KDQkNCd0JrQngor0KHQktCV0KLQmNCLINCY0JLQkNCdINCU0KAKK9Ch0JLQldCi0JjQiyDQmNCS0JDQnQor0KHQktCV0KLQmNCLINCJ0JXQoNCa0JAKK9Ch0JLQldCi0JvQmNCaINCQ0JTQkNCcCivQodCS0JjQm9CQ0JrQntChINCc0JDQoNCY0IjQkAor0KHQktCY0JvQkNCgINCQ0J3QgtCV0JvQmtCQCivQodCS0JjQm9CQ0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCS0JjQm9CQ0KAg0JPQntCI0JrQngor0KHQktCY0JvQkNCgINCJ0KPQkdCe0JzQmNCgCivQodCS0JjQm9CQ0KAg0JzQmNCl0JDQiNCb0J4KK9Ch0JLQmNCb0JDQoCDQnNCY0KXQkNCI0JvQngor0KHQktCY0JvQkNCgINCd0JjQmtCe0JvQkAor0KHQktCY0JvQkNCgINCf0JXQotCQ0KAKK9Ch0JLQmNCb0JDQoCDQoNCQ0JTQntCc0JjQoAor0KHQktCY0JvQkNCgINCg0JDQotCa0J4KK9Ch0JLQmNCb0JDQoCDQodCb0JDQktCY0KbQkAor0KHQktCY0JvQkNCgINCh0J7QpNCY0IjQkAor0KHQktCY0JvQkNCgINCS0JXQoNCY0KbQkAor0KHQktCY0JvQkNCgINCS0JjQndCa0JAKK9Ch0JLQmNCb0JDQoNCV0JLQmNCLINCh0KLQldCS0J4KK9Ch0JLQmNCb0JDQoNCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JLQmNCb0JDQoNCe0JIg0JzQmNCb0JDQnQor0KHQktCY0JvQntCa0J7QoSDQkdCe0KDQmNCh0JvQkNCSCivQodCS0JjQm9Ce0JrQntChINCT0JDQktCg0JAKK9Ch0JLQmNCb0J7QmtCe0KEg0JrQkNCi0JjQptCQCivQodCS0JjQm9Ce0JrQntChINCc0JjQm9CQ0J0KK9Ch0JLQmNCb0J7QmtCe0KEg0KHQotCV0JLQkNCdCivQodCS0JjQitCQ0KDQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0JLQmNCg0KfQldCSINCW0JjQktCa0J4KK9Ch0JLQmNCg0KfQldCSINCI0J7QktCQ0J0KK9Ch0JLQmNCg0KfQldCSINCc0JjQm9CY0JLQntCICivQodCS0JjQoNCn0JXQkiDQnNCY0JvQntCoCivQodCS0JjQoNCn0JXQkiDQoNCQ0JTQkAor0KHQktCY0KDQp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAg0JTQntCm0JXQndCiCivQodCS0JjQoNCn0JXQktCY0Isg0JDQndCQCivQodCS0JjQoNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQktCY0KDQp9CV0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQktCY0KDQp9CV0JLQmNCLINCU0KDQkNCT0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQlNCg0JXQndCa0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0IjQntCS0JDQnQor0KHQktCY0KDQp9CV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCS0JjQoNCn0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0JLQmNCg0KfQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQktCY0KDQp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCS0JjQoNCn0JXQktCY0Isg0J/QldCi0JDQoAor0KHQktCY0KDQp9CV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQodCS0JjQoNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0KLQldCe0JTQntCg0JAKK9Ch0JLQmNCg0KfQldCS0JjQiy3QotCg0JDQiNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQodCS0JjQoNCn0JXQktCY0Isg0JLQkNCh0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQktCj0JrQkNCdCivQodCS0JjQoNCQ0KYg0KDQo9CW0JjQptCQCivQodCS0JjQotCY0Isg0JHQntCW0J4KK9Ch0JLQmNCi0JvQmNCm0JAg0JTQoNCQ0JPQkNCdCivQodCS0JjQotCb0JjQptCQINCU0KPQqNCQ0J0KK9Ch0JLQmNCi0JvQmNCm0JAg0JPQntCI0JrQniDQlNCY0J/QmyDQntCV0KYKK9Ch0JLQmNCi0JvQmNCm0JAg0IjQldCb0JjQptCQCivQodCS0JjQotCb0JjQptCQINCc0JjQm9CQ0J0KK9Ch0JLQmNCi0JvQmNCm0JAg0KDQo9CW0JjQptCQCivQodCS0JjQotCb0JjQptCQINCh0JjQnNCeCivQodCS0JjQotCb0JjQptCQINCh0KLQkNCd0JrQngor0KHQktCY0KLQm9CY0KbQkCDQotCQ0J3QkNCh0JjQiNCVINCU0JjQn9CbINCe0JXQpgor0KHQktCY0KLQm9CY0KbQkCDQktCV0KDQkAor0KHQktCe0JHQntCU0JAg0KHQotCV0JLQkNCdCivQodCS0J7QoNCm0JDQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JLQntCg0KbQkNCdINCJ0KPQkdCe0JzQmNCgCivQodCS0J7QoNCm0JDQnSDQnNCY0JvQntCoCivQodCS0J7QoNCm0JDQnSDQnNCY0JvQntCg0JDQlAor0KHQktCe0KDQptCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Ch0JLQntCg0KbQkNCdINCg0JDQlNCY0KHQm9CQ0JIKK9Ch0JLQntCg0KbQkNCdINCg0JDQlNCe0JzQmNCgCivQodCS0J7QoNCm0JDQnSDQodCi0JXQktCQ0J0KK9Ch0JLQntCg0KbQkNCdINCh0KLQntCI0JDQnQor0KHQktCe0KDQptCQ0J0g0JfQntCg0JjQptCQCivQodCS0KDQlNCb0JDQnSDQnNCb0JDQgtCQ0J0KK9Ch0JLQoNCa0J7QotCQINCW0JjQktCa0J4KK9Ch0JLQoNCa0J7QotCQINCS0KPQmtCe0JzQkNCdCivQodCS0KDQl9CY0Isg0JPQntCg0JTQkNCd0JAKK9Ci0JDQp9CYINCY0KHQnNCQ0JjQiQor0KLQkNCn0Jgg0KLQldCe0KTQmNCbCivQotCQ0Kgg0JrQkNCg0J7QiQor0KLQkNCo0JXQktCh0JrQmCDQnNCY0JvQmtCQCivQotCQ0KjQldCS0KHQmtCYINCh0J7QpNCY0IjQkAor0KLQkNCo0Jgg0InQo9CR0JjQptCQCivQotCQ0KjQmCDQn9CV0KLQkNCgCivQotCQ0KjQmCDQoNCe0JfQkNCb0JjQiNCQCivQotCQ0KjQmCDQodCi0JXQktCQ0J0KK9Ci0JDQqNCYINCX0J7Qm9Ci0JDQnQor0KLQkNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0KLQkNCo0JjQiyDQktCV0KDQkAor0KLQkNCo0J3QkNCU0Jgg0JzQmNCl0JDQiQor0KLQkNCR0Kgg0J3QkNCU0JAKK9Ci0JDQkdCoINCd0J7QpdCQ0JTQldCU0JjQnQor0KLQkNCR0JDQp9Ca0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCR0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQotCQ0JHQkNCaINCU0KDQkNCT0JDQnQor0KLQkNCR0JDQmiDQmNCS0JDQnQor0KLQkNCR0JDQmiDQktCQ0KHQkAor0KLQkNCR0JDQmiDQktCe0IjQmNCh0JvQkNCSCivQotCQ0JHQkNCa0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQotCQ0JHQkNCa0J7QkiDQnNCY0JvQldCd0JrQngor0KLQkNCR0JDQmtCe0JIg0JzQm9CQ0JTQldCdCivQotCQ0JHQkNCa0J7QktCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQkdCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQotCQ0JHQkNCa0J7QktCY0Isg0JjQodCc0JXQogor0KLQkNCR0JDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0JDQkdCe0KDQmCDQgtCe0KDQgtCVINCU0KAg0JvQldCa0JDQoAor0KLQkNCm0J7QktCY0Isg0JLQldCg0JAKK9Ci0JDQlNCY0Isg0JbQmNCS0JDQnQor0KLQkNCU0JjQiyDQgtCe0KDQgtCVCivQotCQ0JTQmNCLINCC0J7QoNCC0JUKK9Ci0JDQlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQlNCY0Isg0JDQndCQCivQotCQ0JTQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9Ci0JDQlNCY0Isg0JHQntCh0JjQidCa0JAKK9Ci0JDQlNCY0Isg0JTQkNCd0JjQm9CeCivQotCQ0JTQmNCLINCU0KDQkNCT0JDQnQor0KLQkNCU0JjQiyDQlNCg0JDQk9CQCivQotCQ0JTQmNCLINCU0KPQqNCQ0J0KK9Ci0JDQlNCY0Isg0JTQo9Co0JDQnQor0KLQkNCU0JjQiyDQlNCj0KjQkNCdCivQotCQ0JTQmNCLINCV0JTQmNCi0JAKK9Ci0JDQlNCY0Isg0JPQntCg0JDQnQor0KLQkNCU0JjQiyDQmNCb0JjQiNCQCivQotCQ0JTQmNCLINCY0JvQmNCI0JAKK9Ci0JDQlNCY0Isg0JjQktCQ0J0KK9Ci0JDQlNCY0Isg0IjQntCS0JjQptCQCivQotCQ0JTQmNCLINCa0KDQkNCh0JjQnNCY0KAKK9Ci0JDQlNCY0Isg0JvQkNCX0JDQoAor0KLQkNCU0JjQiyDQm9CQ0JfQkNCgCivQotCQ0JTQmNCLINCc0JDQoNCY0IjQkAor0KLQkNCU0JjQiyDQnNCQ0KDQmNCd0JrQngor0KLQkNCU0JjQiyDQnNCQ0KDQmNCd0JrQngor0KLQkNCU0JjQiyDQnNCY0IjQngor0KLQkNCU0JjQiyDQnNCY0JvQntCoINCU0JjQn9CbINCY0J3Qkwor0KLQkNCU0JjQiyDQnNCY0JvQntCoCivQotCQ0JTQmNCLINCc0JjQm9Ce0IjQlQor0KLQkNCU0JjQiyDQnNCY0JvQntCh0JDQkgor0KLQkNCU0JjQiyDQnNCY0KDQmtCeCivQotCQ0JTQmNCLINCc0JjQoNCa0J4KK9Ci0JDQlNCY0Isg0JzQmNCg0JrQngor0KLQkNCU0JjQiyDQndCQ0JTQkAor0KLQkNCU0JjQiyDQndCV0JLQldCd0JrQkAor0KLQkNCU0JjQiyDQntCR0KDQldCdCivQotCQ0JTQmNCLINCf0JXQotCQ0KAKK9Ci0JDQlNCY0Isg0KDQkNCU0J7QiNCVCivQotCQ0JTQmNCLINCg0JDQotCa0J4KK9Ci0JDQlNCY0Isg0KHQkNCo0JAKK9Ci0JDQlNCY0Isg0KHQkNCS0JAKK9Ci0JDQlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQkNCU0JjQiyDQodCe0KTQmNCI0JAKK9Ci0JDQlNCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ci0JDQlNCY0Isg0KHQotCe0IjQkNCdCivQotCQ0JTQmNCLINCi0JDQndCa0J7QodCQ0JLQkAor0KLQkNCU0JjQiyDQo9Cg0J7QqAor0KLQkNCU0JjQiyDQktCV0KHQldCb0JjQnQor0KLQkNCU0JjQiyDQl9Ce0KDQkNCdCivQotCQ0JTQmNCLINCX0J7QoNCQCivQotCQ0JTQmNCLINCX0J7QoNCa0JAKK9Ci0JDQlNCY0IjQkNCd0J7QktCY0Isg0KHQmNCb0JLQldCh0KLQldCgCivQotCQ0JTQmNCI0JjQnSDQk9Cb0JjQqNCQCivQotCQ0JTQmNCI0JjQnSDQnNCY0JvQmNCm0JAKK9Ci0JDQlNCY0IjQmNCdINCc0JjQm9Ce0KgKK9Ci0JDQlNCY0IjQmNCdINCc0JjQm9Ce0KDQkNCUCivQotCQ0JTQmNCdINCU0KPQqNCQ0J3QmtCQCivQotCQ0JTQmNCdINCU0KPQqNCQ0J0KK9Ci0JDQlNCY0J0g0JjQktCQ0J3QmtCQCivQotCQ0JTQmNCdINCc0JjQm9Ce0JLQkNCdCivQotCQ0JTQmNCdINCX0JvQkNCi0J7QiNCVCivQotCQ0KXQmNCg0J7QktCY0Isg0JXQktCY0KbQkAor0KLQkNCl0JjQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQkNCl0JjQoNCe0JLQmNCLINCc0JjQm9CQ0JTQmNCd0JrQkAor0KLQkNCY0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQkNCI0KXQnNCQ0J0g0JHQldCb0JAKK9Ci0JDQiNCl0JzQkNCdINCU0JXQodCQ0J3QmtCQCivQotCQ0IjQpdCc0JDQnSDQiNCe0KHQmNCfCivQotCQ0IjQmtCe0JIg0JDQndCC0JXQm9Ca0JAKK9Ci0JDQiNCa0J7QkiDQiNCe0JLQkNCdCivQotCQ0IjQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Ci0JDQiNCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0KLQkNCI0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ci0JDQiNCi0Jgg0JLQldCg0J7QndCY0JrQkAor0KLQkNCa0JDQpyDQqNCQ0J3QlNCe0KAKK9Ci0JDQmtCQ0Kcg0ILQldCg0ILQmAor0KLQkNCa0JDQpyDQgtCe0KDQgtCVCivQotCQ0JrQkNCnINCC0KPQm9CQCivQotCQ0JrQkNCnINCC0KPQoNCQCivQotCQ0JrQkNCnINCC0KPQoNCQCivQotCQ0JrQkNCnINCQ0J3QgtCV0JvQmtCQCivQotCQ0JrQkNCnINCQ0J3QlNCg0JjQiNCQCivQotCQ0JrQkNCnINCQ0J3QotCQ0JsKK9Ci0JDQmtCQ0Kcg0JDQndCi0JDQmwor0KLQkNCa0JDQpyDQkNCd0KLQo9CdCivQotCQ0JrQkNCnINCQ0J3QotCj0J0KK9Ci0JDQmtCQ0Kcg0JDQoNCf0JDQlAor0KLQkNCa0JDQpyDQldCg0J3QlQor0KLQkNCa0JDQpyDQldCS0JPQldCdCivQotCQ0JrQkNCnINCk0JXQoNCV0J3Qpgor0KLQkNCa0JDQpyDQpNCg0JDQitCQCivQotCQ0JrQkNCnINCY0KjQotCS0JDQnQor0KLQkNCa0JDQpyDQmNCo0KLQktCQ0J0KK9Ci0JDQmtCQ0Kcg0IjQkNCa0JjQnAor0KLQkNCa0JDQpyDQiNCQ0J3QntCoCivQotCQ0JrQkNCnINCI0JDQndCe0KgKK9Ci0JDQmtCQ0Kcg0IjQkNCd0J7QqAor0KLQkNCa0JDQpyDQiNCe0JbQldCkINCU0JjQn9CbINCY0J3Qkwor0KLQkNCa0JDQpyDQiNCe0JbQldCkCivQotCQ0JrQkNCnINCI0J7QltCV0KQKK9Ci0JDQmtCQ0Kcg0IjQntCh0JjQnwor0KLQkNCa0JDQpyDQmtCQ0KDQntCJCivQotCQ0JrQkNCnINCa0JDQotCY0KbQkAor0KLQkNCa0JDQpyDQmtCQ0KLQmNCm0JAKK9Ci0JDQmtCQ0Kcg0JvQkNCU0JjQodCb0JDQkgor0KLQkNCa0JDQpyDQm9CQ0IjQntCoCivQotCQ0JrQkNCnINCb0JDQodCb0J4KK9Ci0JDQmtCQ0Kcg0JzQkNCT0JTQkAor0KLQkNCa0JDQpyDQnNCQ0KLQkAor0KLQkNCa0JDQpyDQnNCY0KXQkNCI0JvQngor0KLQkNCa0JDQpyDQnNCY0JvQkNCdCivQotCQ0JrQkNCnINCc0JjQoNCa0J4KK9Ci0JDQmtCQ0Kcg0KDQntCW0JAKK9Ci0JDQmtCQ0Kcg0KHQldCd0JAKK9Ci0JDQmtCQ0Kcg0KHQntCk0JjQiNCQCivQotCQ0JrQkNCnINCh0J7QpNCY0IjQkAor0KLQkNCa0JDQpyDQodCi0JXQktCQ0J0KK9Ci0JDQmtCQ0Kcg0KLQmNCR0J7QoAor0KLQkNCa0JDQpyDQotCY0JHQntCgCivQotCQ0JrQkNCnINCS0JjQndCa0J4KK9Ci0JDQmtCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCa0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQotCQ0JrQkNCnINCX0J7Qm9Ci0JDQnQor0KLQkNCa0JDQp9CYINCQ0KDQn9CQ0JQg0JTQmNCf0Jsg0J7QldCmCivQotCQ0JrQkNCn0Jgg0JDQoNCf0JDQlCDQlNCgCivQotCQ0JrQkNCn0Jgg0JPQkNCR0J7QoAor0KLQkNCa0J4g0JfQktCe0J3QmNCc0JjQoAor0KLQkNCa0J7QktCQ0KYg0KDQkNCU0JjQodCQ0JIKK9Ci0JDQmtCe0JLQodCa0Jgg0JHQm9CQ0JPQntCI0JUKK9Ci0JDQmtCe0JLQodCa0Jgg0IjQntCS0JDQndCa0JAKK9Ci0JDQm9CV0KHQmtCYINCJ0KPQkdCY0KbQkAor0KLQkNCb0JXQodCa0Jgg0KDQmNCh0KLQkAor0KLQkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JDQm9CY0Isg0JzQmNCi0JDQoAor0KLQkNCb0JjQiNCQ0J0g0KDQntCW0JAKK9Ci0JDQm9CeINCo0JDQndCU0J7QoAor0KLQkNCb0J4g0JbQmNCS0JrQkAor0KLQkNCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQm9CeINCR0KDQmNCT0JjQotCQCivQotCQ0JvQniDQpNCg0JDQitCQCivQotCQ0JvQniDQiNCV0JvQldCd0JAKK9Ci0JDQm9CeINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCQ0JvQniDQiNCe0JbQldCkCivQotCQ0JvQniDQiNCe0KHQmNCfCivQotCQ0JvQniDQiNCe0JLQkNCdCivQotCQ0JvQniDQotCV0KDQldCX0JAKK9Ci0JDQm9Ce0KjQmCDQgtCe0KDQgtCVCivQotCQ0JvQntCo0Jgg0JjQoNCV0J3QkAor0KLQkNCb0J7QqNCYINCa0JDQoNCe0IkKK9Ci0JDQm9Ce0JLQmNCLINCR0JXQpdCj0JTQmNCdCivQotCQ0JvQntCS0JjQiyDQpdCQ0IjQoNCY0IjQkAor0KLQkNCb0J7QktCY0Isg0KHQkNCU0JjQmgor0KLQkNCc0JDQqCDQgtCV0KDQggor0KLQkNCc0JDQqCDQgtCj0KDQkAor0KLQkNCc0JDQqCDQmNCg0JjQndCV0IgKK9Ci0JDQnNCQ0Kgt0IjQntCo0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ci0JDQnNCQ0Kgg0InQo9CR0J7QnNCY0KAKK9Ci0JDQnNCQ0Kgg0JzQkNCg0JjQiNCQCivQotCQ0JzQkNCoINCc0JjQpdCQ0IjQm9CeCivQotCQ0JzQkNCoINCf0JDQktCb0JUKK9Ci0JDQnNCQ0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCc0JDQqCDQktCb0JDQlNCY0JzQmNCgCivQotCQ0JzQkNCo0Jgg0JDQk9Ce0KjQotCe0J0KK9Ci0JDQnNCQ0KjQmCDQkNCb0JDQlNCQ0KAKK9Ci0JDQnNCQ0KjQmCDQotCY0JHQntCgCivQotCQ0JzQkNCo0JrQntCS0JjQiyDQl9Ce0JvQotCQ0J0KK9Ci0JDQnNCR0KPQoNCQ0KjQldCSINCS0KPQmtCQ0KjQmNCdCivQotCQ0JzQkdCj0KDQmtCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQotCQ0JzQmNCd0I/QmNCLINCn0JXQlNCe0JzQmNCgCivQotCQ0JzQmNCd0I/QmNCLINCQ0J3QgtCV0JvQmtCeCivQotCQ0JzQmNCd0I/QmNCLINCa0J7QktCY0J3QmtCQCivQotCQ0JzQmNCd0I/QmNCLINCg0JjQodCi0JAKK9Ci0JDQnNCY0J3Qj9CY0IjQkCDQlNCQ0J3QmNCb0J4KK9Ci0JDQnNCY0J3Qj9CY0IjQkCDQnNCY0JvQntCg0JDQlAor0KLQkNCc0JjQndCP0JjQiNCQINCc0JjQoNCa0J4KK9Ci0JDQnNCY0J3Qj9CY0IjQkCDQktCb0JDQlNCeCivQotCQ0J3Qp9CY0Jog0KjQkNCd0JTQntCgCivQotCQ0J3Qp9CY0Jog0JDQm9CR0JXQoNCiCivQotCQ0J3Qp9CY0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQndCn0JjQmiDQldCc0JjQmwor0KLQkNCd0KfQmNCaINCY0JHQntCJ0JAKK9Ci0JDQndCn0JjQmiDQoNCe0JfQkAor0KLQkNCd0JDQptCa0J7QkiDQndCe0JLQkNCaCivQotCQ0J3QkNCm0JrQntCS0JjQiyDQkNCm0J4KK9Ci0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCQ0J3QkNCh0JjQiyDQiNCe0JLQkNCdCivQotCQ0J3QkNCh0JjQiyDQntCb0JjQktCV0KDQkAor0KLQkNCd0JDQodCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ci0JDQndCQ0KHQmNCLINCg0KPQltCQCivQotCQ0J3QkNCh0JjQiyDQodCf0JDQodCe0IjQlQor0KLQkNCd0JDQodCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KLQkNCd0JDQodCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KLQkNCd0JDQodCY0IjQldCS0JjQiyDQltCQ0KDQmtCeCivQotCQ0J3QkNCh0JjQiNCV0JLQmNCLLdCk0JjQm9CY0J/QntCSINCY0JLQkNCd0JrQkAor0KLQkNCd0JDQodCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQotCQ0J3QkNCh0JjQiNCV0JLQmNCLINCh0JjQndCY0KjQkAor0KLQkNCd0JDQodCY0IjQmNCdINCb0KPQmtCQCivQotCQ0J3QkNCh0JjQiNCY0J0g0J/QldCi0JDQoAor0KLQkNCd0JDQodCY0IjQmNCdINCS0JXQoNCQCivQotCQ0J3QkNCh0JjQnSDQlNCQ0J3QmNCh0JvQkNCS0JAKK9Ci0JDQndCQ0KHQmNCdINCI0J7QktCQ0J0KK9Ci0JDQndCQ0KHQmNCdINCJ0KPQkdCY0KbQkAor0KLQkNCd0JDQodCY0J0g0J3QldCh0KLQntCgCivQotCQ0J3QkNCh0JjQnSDQodCi0JXQktCQ0J0KK9Ci0JDQndCQ0KHQmNCdINCh0KLQldCS0JDQnQor0KLQkNCd0JDQodCY0J0g0KHQotCV0JLQkNCdCivQotCQ0J3QkNCh0JjQnSDQodCi0JXQktCQ0J0KK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQkNCd0JDQodCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JPQmNCd0JAKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JvQkNCX0JDQoAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JzQmNCb0JUKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCd0J7QktCQ0JoKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KLQkNCd0JDQodCa0J7QktCY0Isg0JLQmNCi0JrQngor0KLQkNCd0JDQodCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCS0KPQmtCQ0J0KK9Ci0JDQndCU0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQkNCd0JXQkiDQotCg0JDQiNCa0J4KK9Ci0JDQndCT0Jsg0JjQktCQ0J0KK9Ci0JDQndCT0Jsg0J7Qm9CT0JAKK9Ci0JDQitCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0JDQitCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQotCQ0IrQk9CQINCT0J7QoNCQ0J0KK9Ci0JDQitCT0JAg0InQo9CR0J7QnNCY0KAKK9Ci0JDQitCT0JAg0JzQkNCg0JjQiNCQCivQotCQ0IrQk9CQINCg0JDQiNCa0J4KK9Ci0JDQitCT0JAg0KLQkNCd0JUKK9Ci0JDQndCa0JAg0JjQqNCi0JLQkNCdCivQotCQ0J3QmtCe0KHQmNCLINCR0J7Qk9CU0JDQnQor0KLQkNCd0JrQntCh0JjQiyDQkdCe0IjQkNCd0JAKK9Ci0JDQndCa0J7QodCY0Isg0JHQoNCQ0J3QmtCeCivQotCQ0J3QmtCe0KHQmNCLINCI0J7QktCQ0J0KK9Ci0JDQndCa0J7QodCY0Isg0JrQo9CX0JzQkNCdCivQotCQ0J3QmtCe0KHQmNCLINCc0JDQoNCa0J4KK9Ci0JDQndCa0J7QodCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0JDQndCa0J7QodCY0Isg0JzQmNCb0JDQnQor0KLQkNCd0JrQntCh0JjQiyDQnNCY0JvQldCd0JAKK9Ci0JDQndCa0J7QodCY0Isg0JzQmNCb0JjQptCQCivQotCQ0J3QmtCe0KHQmNCLINCc0JjQm9CY0KbQkAor0KLQkNCd0JrQntCh0JjQiyDQndCY0JrQntCb0JAKK9Ci0JDQndCa0J7QodCY0Isg0KDQkNCX0JjQiNCQCivQotCQ0J3QmtCe0KHQmNCLINCh0KLQldCS0JDQnQor0KLQkNCd0JrQntCS0JjQiyDQodCQ0JvQmtCeCivQotCQ0J3QntCS0JjQiyDQk9CQ0JLQoNCY0JvQniDQnNCgCivQotCQ0J3QntCS0JjQiyDQiNCe0JLQngor0KLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCd0KLQmNCLINCh0JvQkNCS0JrQngor0KLQkNCd0KPQoNCP0JjQiyDQltCY0JLQntCI0JjQnQor0KLQkNCd0KPQoNCP0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQkNCd0KPQoNCP0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KLQkNCd0KPQoNCP0JjQiyDQk9Ce0IjQmtCeCivQotCQ0J3Qo9Cg0I/QmNCLINCI0J7QktCQ0J0KK9Ci0JDQndCj0KDQj9CY0Isg0JzQmNCb0JjQptCQCivQotCQ0J3Qo9Cg0I/QmNCLINCc0JjQoNCa0J4KK9Ci0JDQndCj0KDQj9CY0Isg0KHQoNCR0J7QnNCY0KAKK9Ci0JDQndCj0KDQj9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Ci0JDQndCj0KDQj9CY0Isg0KHQktCV0KLQntCX0JDQoAor0KLQkNCd0KPQoNCP0JjQiyDQl9Ce0KDQkAor0KLQkNCf0JDQmCDQoNCj0JTQntCb0KQKK9Ci0JDQn9CQ0Igg0JPQkNCR0KDQmNCI0JXQmwor0KLQkNCf0JDQiCDQodCi0JDQnNCV0J3QmtCQCivQotCQ0J/QkNCb0JDQk9CQINCI0J7QnQor0KLQkNCf0JDQm9CQ0JPQkCDQotCe0JTQntCgCivQotCQ0J/QkNCS0JjQp9Ca0Jgg0KfQldCU0J7QnNCY0KAKK9Ci0JDQn9CQ0JLQmNCn0JrQmCDQkdCe0KDQmNCS0J7QiAor0KLQkNCf0JDQktCY0KfQmtCYINCk0JXQntCU0J7QoAor0KLQkNCf0JDQktCY0KfQmtCYINCc0JvQkNCU0JXQnQor0KLQkNCf0JDQktCY0KfQmtCYINCg0JDQlNCe0JLQkNCdCivQotCQ0J/QkNCS0JjQp9Ca0Jgg0KHQotCV0JLQkNCdCivQotCQ0J/QkNCS0JjQptCQINCn0JXQlNCe0JzQmNCgCivQotCQ0J/QkNCS0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQotCQ0J/QkNCS0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQotCQ0J/QkNCS0JjQptCQINCR0J7QoNCa0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JHQoNCQ0J3QmtCQCivQotCQ0J/QkNCS0JjQptCQINCU0J7QkdCg0JjQm9CQCivQotCQ0J/QkNCS0JjQptCQINCI0JXQm9CY0KbQkAor0KLQkNCf0JDQktCY0KbQkCDQidCj0JHQntCc0JjQoAor0KLQkNCf0JDQktCY0KbQkCDQnNCY0JvQntCg0JDQlAor0KLQkNCf0JDQktCY0KbQkCDQnNCY0KLQkAor0KLQkNCf0JDQktCY0KbQkCDQoNCQ0JTQntCh0JvQkNCS0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0KDQkNCI0JrQngor0KLQkNCf0JDQktCY0KbQkCDQodCY0JzQkAor0KLQkNCf0JDQktCY0KbQkCDQodCi0JXQktCQ0J0KK9Ci0JDQn9CQ0JLQmNCm0JAg0KLQmNCl0J7QnNCY0KAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JLQldCg0JjQptCQCivQotCQ0J/QkNCS0JjQptCQINCS0JXQoNCY0KbQkAor0KLQkNCg0JDQmtCn0JjQiNCQINCC0J7QoNCC0JUKK9Ci0JDQoNCQ0JrQp9CY0IjQkC3QnNCY0JvQntCS0JDQndCe0JLQmNCLINCg0JDQotCa0JAKK9Ci0JDQoNCQ0J3Qj9CQINCY0JLQkNCdCivQotCQ0KDQkNCd0I/QkCDQmNCS0JDQnQor0KLQkNCg0JDQodCV0J3QmtCeINCR0KDQkNCi0JjQodCb0JDQkiDQlNCgCivQotCQ0KDQkdCj0Jog0JzQmNCg0JrQngor0KLQkNCg0JHQo9CaINCd0JjQmtCe0JvQkAor0KLQkNCg0JXQktCh0JrQmCDQi9CQ0JzQmNCbCivQotCQ0KDQk9Cj0Kgg0JzQkNCi0JjQiNCQCivQotCQ0KDQmCDQmNCb0J7QndCQCivQotCQ0KDQiNCQ0J0g0JTQldCW0JUKK9Ci0JDQoNCI0JDQnSDQk9CQ0JHQntCgCivQotCQ0KDQiNCQ0J0g0JjQnNCg0JUKK9Ci0JDQoNCI0JDQnSDQmtCQ0KDQm9CeCivQotCQ0KDQiNCQ0J0g0KLQmNCR0J7QoAor0KLQkNCg0JrQniDQiNCQ0J3QntCoCivQotCQ0KDQm9CQ0Isg0J/QldCg0JjQptCQCivQotCQ0KDQm9CVINCY0JvQmNCI0JAKK9Ci0JDQoNCb0JUg0JjQktCQ0J0KK9Ci0JDQoNCd0J7QptCa0Jgg0JDQnNCQ0JvQmNCI0JAg0JTQoAor0KLQkNCg0J3QntCm0JrQmCDQn9CQ0JsKK9Ci0JDQodCV0JIg0JHQm9CQ0JbQngor0KLQkNCh0JXQktCh0JrQmCDQmNCb0J4KK9Ci0JDQodCV0JLQodCa0Jgg0IjQntCg0JTQkNCdCivQotCQ0KHQmNCLINCW0JDQmtCb0JjQndCQCivQotCQ0KHQmNCLINCW0JjQktCe0IjQmNCdCivQotCQ0KHQmNCLINCC0J7QoNCC0JUKK9Ci0JDQodCY0Isg0JDQndCC0JXQm9CY0IjQkAor0KLQkNCh0JjQiyDQkNCd0JAKK9Ci0JDQodCY0Isg0JHQm9CQ0JPQntCI0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0JDQodCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ci0JDQodCY0Isg0JHQntCW0JjQlNCQ0KAg0JzQoCDQn9ClCivQotCQ0KHQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0JDQodCY0Isg0JHQntCg0JjQktCe0IjQlQor0KLQkNCh0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQotCQ0KHQmNCLINCU0JXQodCQ0J3QmtCQCivQotCQ0KHQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Ci0JDQodCY0Isg0JjQktCQ0J0KK9Ci0JDQodCY0Isg0InQo9CR0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQodCY0Isg0JzQmNCb0J7QqCDQlNCgINCb0JXQmtCQ0KAKK9Ci0JDQodCY0Isg0JzQmNCb0J7QqCDQlNCgCivQotCQ0KHQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0KLQkNCh0JjQiyDQnNCY0JvQntCoCivQotCQ0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0JDQodCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQkNCh0JjQiyDQndCV0JLQldCd0JrQkAor0KLQkNCh0JjQiyDQoNCQ0JTQlQor0KLQkNCh0JjQiyDQodCY0J3QmNCo0JAKK9Ci0JDQodCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQkNCh0JjQiyDQotCg0JjQpNCj0J0KK9Ci0JDQodCY0Isg0KPQoNCe0KgKK9Ci0JDQodCY0Isg0JLQldCg0JAKK9Ci0JDQodCY0Isg0JLQm9CQ0JTQkNCd0JrQkAor0KLQkNCh0JjQiyDQl9Ce0KDQkNCdCivQotCQ0KHQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0JDQodCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQkNCh0JrQntCS0JjQiyDQn9CV0KDQkAor0KLQkNCh0J7QktCQ0KYg0JTQntCR0KDQmNCb0JAKK9Ci0JDQodCe0JLQkNCmINCc0JjQm9Ce0KDQkNCUCivQotCQ0KLQkNCYINCV0JzQmNCb0JjQiNCQCivQotCQ0KLQkNCYINCY0JLQkNCdCivQotCQ0KLQkNCYINCa0JDQoNCe0IkKK9Ci0JDQotCQ0Jgg0JzQkNCg0JPQmNCiCivQotCQ0KLQkNCYINCi0JjQkdCe0KAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQltCY0JLQmtCeCivQotCQ0KLQkNCb0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KLQkNCi0JDQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQkNCi0JDQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQotCQ0KLQkNCb0J7QktCY0Isg0JvQkNCX0J4KK9Ci0JDQotCQ0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQotCQ0KLQkNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQkNCi0JDQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQotCQ0KLQkNCb0J7QktCY0Isg0J/QldCi0JDQoAor0KLQkNCi0JDQoCDQlNCj0KjQkNCdCivQotCQ0KLQkNCgINCU0KPQqNCQ0J0KK9Ci0JDQotCQ0KDQldCS0JjQiyDQkdCb0JDQltCQCivQotCQ0KLQkNCg0JjQnSDQoNCj0JbQmNCm0JAKK9Ci0JDQotCQ0KDQodCa0Jgg0JTQo9Co0JDQnQor0KLQkNCi0JDQoNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KLQkNCi0JDQoNCh0JrQmCDQndCQ0JTQkAor0KLQkNCi0JDQoNCh0JrQmCDQodCS0JXQotCY0KHQm9CQ0JIKK9Ci0JDQotCQ0KDQodCa0Jgg0JLQm9CQ0JTQldCi0JAKK9Ci0JDQotCY0Isg0JbQkNCg0JrQngor0KLQkNCi0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQotCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCQ0KLQmNCLINCQ0J3QmtCY0KbQkAor0KLQkNCi0JjQiyDQkdCg0JDQndCa0J4KK9Ci0JDQotCY0Isg0JTQkNCd0JAKK9Ci0JDQotCY0Isg0JTQoNCQ0JPQkNCdCivQotCQ0KLQmNCLINCU0KDQkNCT0J7QqAor0KLQkNCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQotCQ0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ci0JDQotCY0Isg0JTQo9Co0JDQnQor0KLQkNCi0JjQiyDQldCc0JjQmyDQlNCgCivQotCQ0KLQmNCLINCV0JLQmNCm0JAKK9Ci0JDQotCY0Isg0JjQm9CY0IjQkAor0KLQkNCi0JjQiyDQmNCb0JjQiNCQCivQotCQ0KLQmNCLINCY0JvQntCd0JrQkAor0KLQkNCi0JjQiyDQiNCV0JvQldCd0JAKK9Ci0JDQotCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQotCY0Isg0IjQntCS0JDQnQor0KLQkNCi0JjQiyDQm9CQ0JfQkNCgCivQotCQ0KLQmNCLINCc0JDQoNCQCivQotCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0KLQkNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0JDQotCY0Isg0JzQmNCb0JDQnQor0KLQkNCi0JjQiyDQnNCY0JvQkNCdCivQotCQ0KLQmNCLINCc0JjQm9CY0JLQntCICivQotCQ0KLQmNCLINCc0JjQm9Ca0JAKK9Ci0JDQotCY0Isg0JzQmNCb0J7QqAor0KLQkNCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQkNCi0JjQiyDQnNCY0JvQntCh0JDQkgor0KLQkNCi0JjQiyDQnNCY0JvQo9Ci0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQotCY0Isg0J3QldCU0JXQidCa0J4KK9Ci0JDQotCY0Isg0J/QkNCI0JAKK9Ci0JDQotCY0Isg0J/QldCg0KHQmNCU0JAKK9Ci0JDQotCY0Isg0J/QldCi0JDQoAor0KLQkNCi0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KLQkNCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCQ0KLQmNCLINCh0JvQkNCS0JrQngor0KLQkNCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCQ0KLQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9Ci0JDQotCY0Isg0KHQotCV0JLQkNCdCivQotCQ0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0JDQotCY0Isg0JfQm9CQ0KLQmNCm0JAKK9Ci0JDQotCe0JzQmNCgINCc0JDQoNCa0J4KK9Ci0JDQotCe0JzQmNCg0J7QkiDQiNCe0JLQkNCdCivQotCQ0KLQntCc0JjQoNCe0JIg0JzQkNCg0JjQiNCQCivQotCQ0KLQntCc0JjQoNCe0JIg0JzQkNCg0JjQiNCQCivQotCQ0KLQntCc0JjQoNCe0JIg0KDQkNCU0JjQktCe0IgKK9Ci0JDQotCe0JzQmNCg0J7QkiDQl9Ce0KDQkNCdCivQotCQ0KLQntCc0JjQoNCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KLQkNCj0KjQkNCdINCc0JDQoNCa0J4KK9Ci0JDQo9Co0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Ci0JDQo9Co0JDQndCe0JLQmNCLINCg0JDQlNCVCivQotCQ0KPQkdCd0JXQoCDQmtCQ0KLQmNCm0JAKK9Ci0JXQqNCQ0J3QntCSINCc0JjQm9CQ0J0KK9Ci0JXQqNCQ0J3QntCS0JjQiyDQp9CV0JTQngor0KLQldCo0JDQndCe0JLQmNCLINCW0JXQidCa0J4KK9Ci0JXQqNCQ0J3QntCS0JjQiyDQgtCe0JrQngor0KLQldCo0JDQndCe0JLQmNCLINCm0JLQmNCI0JXQotCQCivQotCV0KjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCV0KjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCV0KjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQldCo0JDQndCe0JLQmNCLINCI0JXQm9CQCivQotCV0KjQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0KLQldCo0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KLQldCo0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQoNCQ0KjQmtCeCivQotCV0KjQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0KLQldCo0JDQndCe0JLQmNCLINCi0J7QnNCQCivQotCV0KjQkNCd0J7QktCY0Isg0JLQntCI0JAKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQotCV0KjQldCK0Jgg0JXQlNCj0JDQoNCUCivQotCV0KjQmNCLINCC0J7QoNCC0JUKK9Ci0JXQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQqNCY0Isg0JTQkNCg0JjQndCa0JAKK9Ci0JXQqNCY0Isg0JTQoNCQ0JPQkNCdCivQotCV0KjQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQqNCY0Isg0JXQoNCW0JXQkdCV0KIKK9Ci0JXQqNCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KLQldCo0JjQiyDQmNCb0JjQiNCQCivQotCV0KjQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ci0JXQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9Ci0JXQqNCY0Isg0JvQo9Ca0JAKK9Ci0JXQqNCY0Isg0JzQkNCg0JjQiNCQCivQotCV0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQotCV0KjQmNCLINCc0JjQm9CVCivQotCV0KjQmNCLINCc0JjQm9CVCivQotCV0KjQmNCLINCc0JjQm9CY0KbQkAor0KLQldCo0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQldCo0JjQiyDQnNCY0KDQmtCeCivQotCV0KjQmNCLINCf0JXQoNCh0JAKK9Ci0JXQqNCY0Isg0KDQkNCU0JjQodCb0JDQkgor0KLQldCo0JjQiyDQodCb0JDQktCa0JAKK9Ci0JXQqNCY0Isg0KHQm9CQ0JLQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JXQqNCY0Isg0KHQntCk0JjQiNCQCivQotCV0KjQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQotCV0KjQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQotCV0KjQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0JXQqNCY0Isg0JfQlNCg0JDQktCa0J4KK9Ci0JXQqNCY0J0g0IjQkNCh0JzQmNCd0JrQkAor0KLQldCo0JjQnSDQidCj0JHQmNCd0JrQkAor0KLQldCo0JjQnSDQnNCY0JvQntCoCivQotCV0KjQmNCdINCh0KLQldCS0JrQkAor0KLQldCo0JjQnSDQktCV0KHQndCQCivQotCV0KjQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KLQldCo0J7QktCY0Isg0InQo9CR0J4KK9Ci0JXQqNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQotCV0KjQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0KLQldCo0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0JXQqNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ci0JXQltCb0JAg0JDQndCU0KDQmNCI0JAKK9Ci0JXQlNCY0Isg0JbQmNCS0JrQngor0KLQldCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0JXQlNCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ci0JXQlNCY0Isg0J3QldCS0JXQndCa0JAKK9Ci0JXQk9CV0JvQotCY0IjQkCDQkdCe0JPQlNCQ0J0KK9Ci0JXQk9CV0JvQotCY0IjQkCDQlNCj0KjQkNCdCivQotCV0JPQldCb0KLQmNCI0JAg0JTQo9Co0JDQnQor0KLQldCT0JXQm9Ci0JjQiNCQINCY0JvQntCd0JrQkAor0KLQldCT0JXQm9Ci0JjQiNCQINCc0JDQk9CU0JDQm9CV0J3QkAor0KLQldCT0JXQm9Ci0JjQiNCQINCc0JjQm9CQ0J0KK9Ci0JXQk9CV0JvQotCY0IjQkCDQnNCY0KLQoNCQCivQotCV0JPQldCb0KLQmNCI0JAg0KHQotCQ0J3QmtCeCivQotCV0JPQldCb0KLQmNCI0JAg0JLQm9CQ0IjQmtCeCivQotCV0JPQm9CQ0Kgg0JDQndCQCivQotCV0JPQm9CQ0Kgg0JvQmNCU0JjQiNCQCivQotCV0JPQm9CQ0Kgg0J3QkNCU0JAKK9Ci0JXQk9Cb0JDQqNCYINCY0KjQotCS0JDQnQor0KLQldCT0JvQkNCo0Jgg0IjQntCW0JXQpAor0KLQldCI0JjQiyDQkdCg0JDQndCa0J4KK9Ci0JXQiNCY0Ist0JrQntCS0JDQpyDQnNCQ0KDQmNCI0JAKK9Ci0JXQiNCY0Isg0JvQkNCX0JDQoAor0KLQldCI0JjQiyDQnNCY0JvQmNCI0JAKK9Ci0JXQmtCY0Isg0JHQntCg0J4KK9Ci0JXQmtCY0Isg0JzQmNCb0JDQnQor0KLQldCa0JjQiyDQnNCY0JvQmtCQCivQotCV0JrQmNCLINCc0JjQntCU0KDQkNCTCivQotCV0JrQmNCLINCc0JjQoNCa0J4KK9Ci0JXQmtCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ci0JXQmtCY0Isg0KHQm9CQ0JLQmtCeCivQotCV0Jsg0KTQldCg0JXQndCmCivQotCV0Jsg0IjQkNCd0J7QqAor0KLQldCbINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCV0Jsg0IjQldCd0JUKK9Ci0JXQmyDQn9CV0KLQkNCgCivQotCV0Jsg0JLQmNCb0JzQntCoCivQotCV0JvQkNCg0J7QkiDQkNCd0JrQkAor0KLQldCb0JDQoNCe0JIg0IjQntCS0JDQnQor0KLQldCb0JDQoNCe0JIg0JzQmNCb0J7QqAor0KLQldCb0JDQoNCe0JIg0J3QkNCU0JAKK9Ci0JXQm9CQ0KDQntCSINCf0JXQoNCQCivQotCV0JvQkNCg0J7QkiDQodCY0JzQkAor0KLQldCb0JDQoNCe0JIg0KHQmNCd0JjQqNCQCivQotCV0JvQkNCg0J7QkiDQodCY0J3QmNCo0JAKK9Ci0JXQm9CQ0KDQntCSINCh0JzQmNCJ0JDQndCQCivQotCV0JvQkNCg0J7QkiDQktCe0IjQmNCdCivQotCV0JvQkNCg0J7QkiDQl9Ce0KDQkAor0KLQldCb0JDQoNCe0JLQmNCLINCR0J7QoNCY0KEKK9Ci0JXQm9CQ0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0JXQm9CQ0KDQntCS0JjQiyDQmNCS0JDQndCQCivQotCV0JvQkNCg0J7QktCY0Isg0JjQktCQ0J0KK9Ci0JXQm9CQ0KDQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0KLQldCb0JDQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0JXQm9CQ0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ci0JXQm9CQ0KDQntCS0JjQiyDQodCi0IjQldCf0JDQnQor0KLQldCb0JXQmtCYINCo0JDQndCU0J7QoAor0KLQldCb0JXQmtCYINCV0KDQmNCa0JAKK9Ci0JXQm9CV0JrQmCDQodCi0JXQktCQ0J0KK9Ci0JXQm9CV0JrQmCDQktCV0KDQkAor0KLQldCc0JXQoNCY0J3QkNCmINCU0JDQoNCQCivQotCV0JzQldCg0JjQndCQ0KYg0JzQmNCb0JXQktCQCivQotCV0JzQldCg0JjQndCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Ci0JXQnNCV0KDQmNCd0KHQmtCYINCI0JXQm9CY0KbQkAor0KLQldCc0JXQoNCY0J3QodCa0Jgg0IjQntCS0JDQnQor0KLQldCc0JXQoNCY0J3QodCa0Jgg0J3QkNCU0JAKK9Ci0JXQnNCj0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0JXQndCm0JUg0JDQm9CR0JjQnQor0KLQldCK0Jgg0ILQntCg0ILQlQor0KLQldCK0Jgg0IjQntCh0JjQnwor0KLQldCK0Jgg0IjQntCh0JjQnwor0KLQldCK0Jgg0IjQntCh0JjQnwor0KLQldCK0Jgg0JrQodCV0J3QmNCI0JAKK9Ci0JXQitCYINCc0JDQoNCY0IjQkAor0KLQldCK0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQotCV0IrQntCS0JjQiyDQnNCY0JvQntCoCivQotCV0IrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQotCV0J7QlNCe0KDQntCS0JjQiyDQkNCd0JTQoNCV0IjQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCJ0KPQkdCeCivQotCV0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQldCe0JTQntCg0J7QktCY0Isg0J3QkNCU0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCf0JDQiNCQCivQotCV0J7QlNCe0KDQntCS0JjQiyDQn9CV0KDQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0J/QldCg0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCg0JDQotCY0JzQmNCgCivQotCV0J7QlNCe0KDQntCS0JjQiyDQodCQ0JLQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0KHQmNCc0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQotCV0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQotCV0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0KLQldCe0JTQntCh0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQldCe0JTQntCh0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQldCe0JTQntCh0JjQiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0KLQldCe0JTQntCh0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0JXQntCk0JDQndCe0JIg0ILQo9Cg0ILQmNCm0JAKK9Ci0JXQntCk0JDQndCe0JIg0JHQntCo0JrQngor0KLQldCe0KTQkNCd0J7QkiDQlNCe0JHQoNCY0J3QmtCQCivQotCV0J7QpNCQ0J3QntCSINCU0KPQqNCQ0J0KK9Ci0JXQntCk0JDQndCe0JIg0JTQo9Co0JrQngor0KLQldCe0KTQkNCd0J7QkiDQnNCQ0KDQmNCd0JrQngor0KLQldCe0KTQkNCd0J7QkiDQnNCY0JvQkNCdCivQotCV0J7QpNCQ0J3QntCSINCc0JjQm9CY0JLQntCICivQotCV0J7QpNCQ0J3QntCSINCc0JjQm9Ce0KgKK9Ci0JXQntCk0JDQndCe0JIg0JzQmNCb0J7QqAor0KLQldCe0KTQkNCd0J7QkiDQntCb0JjQktCV0KDQkAor0KLQldCe0KTQkNCd0J7QkiDQl9Ce0KDQkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0KjQotCV0KTQkNCd0JjQiNCQCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQldCe0KTQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCQ0J3QkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0JDQoNCQ0J3QgtCV0JsKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0KLQldCe0KTQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ci0JXQntCk0JDQndCe0JLQmNCLINCU0J7QndCa0JAKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQntCk0JDQndCe0JLQmNCLINCc0JDQoNCa0J4g0JTQoCDQktCV0KLQldCg0JjQndCVCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQnNCY0JvQldCS0JAKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0KLQkNCU0JjQiNCQCivQotCV0J7QpNCY0JvQntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0KLQldCe0KTQmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQntCk0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQkAor0KLQldCe0KTQmNCb0J7QktCY0Isg0JPQntCg0JDQnQor0KLQldCe0KTQmNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ci0JXQntCk0JjQm9Ce0JLQmNCLINCh0JDQktCeCivQotCV0J7QktCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KLQldCf0KjQkCDQndCV0JHQntCI0KjQkAor0KLQldCf0KjQkCDQodCY0J3QmNCo0JAKK9Ci0JXQn9Co0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0JXQn9Co0JjQiyDQnNCY0J7QlNCg0JDQkwor0KLQldCf0KjQmNCLINCg0JDQlNCVCivQotCV0J/QkNCn0JXQktCY0Isg0JDQndCU0KDQldCI0JAKK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCW0JDQndCa0JAKK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQotCV0J/QkNCS0KfQldCS0JjQiyDQk9Ce0IjQmtCeCivQotCV0J/QkNCS0KfQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQldCf0JDQktCn0JXQktCY0Isg0J/QldCi0JDQoCDQlNCgCivQotCV0J/QkNCS0KfQldCS0JjQiyDQoNCQ0KLQmtCeCivQotCV0J/QkNCS0KfQldCS0JjQiyDQodCi0KDQkNCl0JjQitCQCivQotCV0J/QmNCLINCk0KDQkNCd0KbQmNCa0JAKK9Ci0JXQn9CY0Isg0JPQntCg0JDQnQor0KLQldCf0JjQiyDQiNCe0JLQkNCdCivQotCV0J/QmNCLINCc0JjQm9CQ0J0KK9Ci0JXQn9CY0Isg0JzQmNCb0J7QqAor0KLQldCf0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQldCf0JjQiyDQndCV0JTQldCJ0JrQngor0KLQldCf0JjQiyDQntCR0KDQldCd0JrQngor0KLQldCf0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQldCf0JjQiyDQoNCQ0IjQmtCeCivQotCV0J/QmNCLINCh0J3QldCW0JDQndCQCivQotCV0J/QmNCLINCS0JjQlNCQCivQotCV0J/QmNCLINCX0J7QoNCQ0J0KK9Ci0JXQoNCV0KfQldCaINCQ0J3QgtCV0JvQmtCQCivQotCV0KDQldCn0JjQiyDQm9CQ0IjQntCoCivQotCV0KDQldCn0JjQmiDQn9CQ0JsKK9Ci0JXQoNCV0KbQmtCYINCY0KjQotCS0JDQnQor0KLQldCg0JXQmiDQgtCj0JvQkAor0KLQldCg0JXQmiDQkNCd0JTQoNCY0IjQkAor0KLQldCg0JXQmiDQpNCV0KDQldCd0KYKK9Ci0JXQoNCV0Jog0JjQqNCi0JLQkNCdCivQotCV0KDQldCaINCY0JzQoNCVINCU0JjQn9CbINCY0J3Qkwor0KLQldCg0JXQmiDQmNCg0JXQndCQCivQotCV0KDQldCaINCI0JDQndCe0KgKK9Ci0JXQoNCV0Jog0JrQkNCi0JDQm9CY0J0KK9Ci0JXQoNCV0Jog0JvQkNCh0JvQngor0KLQldCg0JXQmiDQidCj0JTQldCS0JjQoiDQlNCgINCY0J3Qkwor0KLQldCg0JXQmiDQntCb0JPQkAor0KLQldCg0JXQmiDQotCY0JHQntCgCivQotCV0KDQldCX0JjQiNCQINCR0J7QodCY0InQmtCQCivQotCV0KDQpdCV0Kgg0KjQkNCd0JTQntCgCivQotCV0KDQiNCV0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQoNCI0JXQmi3QmtCe0JLQkNCnINCa0JDQoNCb0J4KK9Ci0JXQoNCI0JXQmiDQnNCY0KXQkNCI0JvQngor0KLQldCg0IjQldCaINCS0JjQmtCi0J7QoNCY0IjQkAor0KLQldCg0JrQldCJINCQ0J3QkAor0KLQldCg0InQo9CaINCY0JLQkNCdCivQotCV0KDQndCe0JLQkNCmINCY0KjQotCS0JDQnQor0KLQldCg0JfQmNCLINCW0JjQktCa0J4KK9Ci0JXQoNCX0JjQiyDQgtCe0KDQgtCVCivQotCV0KDQl9CY0Isg0ILQo9Cg0J4KK9Ci0JXQoNCX0JjQiyDQkdCV0JvQkAor0KLQldCg0JfQmNCLINCR0JjQodCV0KDQmtCQCivQotCV0KDQl9CY0Isg0JHQntCT0J7QidCj0JEKK9Ci0JXQoNCX0JjQiyDQkdCg0JDQndCa0JAKK9Ci0JXQoNCX0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JXQoNCX0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQotCV0KDQl9CY0Isg0JTQo9Co0JDQnQor0KLQldCg0JfQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQoNCX0JjQiyDQpNCg0JDQndCm0JAKK9Ci0JXQoNCX0JjQiyDQiNCV0JLQoNCV0JwKK9Ci0JXQoNCX0JjQiyDQiNCe0JLQkNCdCivQotCV0KDQl9CY0Isg0JzQmNCb0JDQnQor0KLQldCg0JfQmNCLINCc0JjQm9CQ0J0KK9Ci0JXQoNCX0JjQiyDQnNCY0JvQldCd0JAKK9Ci0JXQoNCX0JjQiyDQnNCY0JvQldCd0JrQngor0KLQldCg0JfQmNCLINCc0JjQm9CY0KbQkAor0KLQldCg0JfQmNCLINCc0JjQntCU0KDQkNCTCivQotCV0KDQl9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0JXQoNCX0JjQiyDQndCY0JrQntCb0JAKK9Ci0JXQoNCX0JjQiyDQitCV0JPQntCh0JDQktCQCivQotCV0KDQl9CY0Isg0J/QkNCS0JvQlQor0KLQldCg0JfQmNCLINCf0JXQoNCa0JAKK9Ci0JXQoNCX0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Ci0JXQoNCX0JjQiyDQn9CV0KLQkNCgCivQotCV0KDQl9CY0Isg0J/QldCi0JDQoAor0KLQldCg0JfQmNCLINCg0JXQidCQCivQotCV0KDQl9CY0Isg0KHQkNCS0JAKK9Ci0JXQoNCX0JjQiyDQodCb0JDQktCa0J4KK9Ci0JXQoNCX0JjQiyDQodCb0JDQktCa0J4KK9Ci0JXQoNCX0JjQiyDQodCb0JDQktCd0JAKK9Ci0JXQoNCX0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCV0KDQl9CY0Isg0KHQoNCR0JjQodCb0JDQkgor0KLQldCg0JfQmNCLINCh0KLQkNCd0JrQkAor0KLQldCg0JfQmNCLINCi0JXQntCU0J7QoAor0KLQldCg0JfQmNCLINCi0JXQoNCV0JfQkAor0KLQldCg0JfQmNCLINCi0KDQmNCk0KPQnQor0KLQldCg0JfQmNCLINCS0JXQoNCQCivQotCV0KDQl9CY0Isg0JLQm9CQ0JTQkNCdCivQotCV0KDQl9CY0Isg0JLQntCI0JjQodCb0JDQkgor0KLQldCg0JfQmNCI0JAg0JzQmNCi0JDQoAor0KLQldCg0JfQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KLQldCg0JfQmNCdINCR0KDQkNCd0JrQngor0KLQldCg0JfQmNCdINCU0KDQkNCT0J7QodCb0JDQkgor0KLQldCg0JfQmNCdINCU0KPQqNCQ0J0KK9Ci0JXQoNCX0JjQnSDQiNCe0JLQkNCd0JrQkAor0KLQldCg0JfQmNCdINCI0J7QktCQ0J3QmtCQCivQotCV0KDQl9CY0J0g0InQo9CR0JjQptCQCivQotCV0KDQl9CY0J0g0JzQmNCb0JDQnQor0KLQldCg0JfQmNCdINCc0JjQm9CY0J3QkAor0KLQldCg0JfQmNCdINCc0JjQoNCI0JDQndCQCivQotCV0KDQl9CY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQotCV0KDQl9CY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQotCV0KDQl9CY0J0g0JzQmNCi0JAKK9Ci0JXQoNCX0JjQnSDQndCV0JLQldCd0JrQkAor0KLQldCg0JfQmNCdINCg0JDQlNCY0JLQntCICivQotCV0KDQl9CY0J0g0KDQkNCU0JzQmNCb0JAKK9Ci0JXQoNCX0JjQnSDQoNCY0KHQotCQCivQotCV0KDQl9CY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KLQldCg0JfQmNCdINCh0KLQkNCd0JrQngor0KLQldCg0JfQmNCdINCi0J7QqNCQCivQotCV0KDQl9CY0J0g0JLQkNCh0JAKK9Ci0JXQoNCX0JjQnSDQktCV0JvQmNCc0JjQoAor0KLQldCg0JfQmNCdINCS0JXQidCa0J4KK9Ci0JXQoNCX0JjQnSDQktCV0KDQmNCm0JAKK9Ci0JXQoNCX0JjQnSDQktCV0KHQldCb0JjQnQor0KLQldCg0JfQmNCdINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0JXQodCb0JAg0KjQn9CY0KDQngor0KLQldCh0JvQkCDQkdCg0JDQndCa0J4KK9Ci0JXQodCb0JAg0JTQoNCQ0JPQkNCdCivQotCV0KHQm9CQINCc0JjQoNCQCivQotCV0KHQm9CY0Isg0ILQntCg0ILQlQor0KLQldCh0JvQmNCLINCc0JDQmtCh0JjQnAor0KLQldCh0JvQmNCLINCc0JDQoNCa0J4KK9Ci0JXQodCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCV0KHQotCY0J0g0JzQkNCg0JjQiNCQCivQotCY0KjQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ci0JjQqNCY0Isg0JzQmNCb0JXQndCQCivQotCY0KjQnNCQINCn0JXQlNCe0JzQmNCgCivQotCY0KjQnNCQINCW0JXQidCa0J4KK9Ci0JjQqNCc0JAg0ILQo9Cg0JjQptCQCivQotCY0KjQnNCQINCQ0J3QlNCg0JXQiAor0KLQmNCo0JzQkCDQkdCg0JDQndCa0J4KK9Ci0JjQqNCc0JAg0JTQo9Co0JDQnQor0KLQmNCo0JzQkCDQlNCj0KjQkNCdCivQotCY0KjQnNCQINCY0JvQmNCI0JAKK9Ci0JjQqNCc0JAg0IjQntCS0JDQnQor0KLQmNCo0JzQkCDQm9CQ0JfQkNCgCivQotCY0KjQnNCQINCJ0JjQidCQ0J3QkAor0KLQmNCo0JzQkCDQnNCQ0KDQmNCI0JAKK9Ci0JjQqNCc0JAg0JzQkNCg0KLQkAor0KLQmNCo0JzQkC3QnNCY0JvQntCo0JXQktCh0JrQmCDQndCQ0KLQkNCo0JAKK9Ci0JjQqNCc0JAg0JzQmNCb0J7QqAor0KLQmNCo0JzQkCDQnNCY0KDQmtCeCivQotCY0KjQnNCQINCc0J7QnNCY0KAKK9Ci0JjQqNCc0JAg0J3QmNCa0J7Qm9CQCivQotCY0KjQnNCQINCh0JjQndCY0KjQkAor0KLQmNCo0JzQkCDQodCc0JjQidCQCivQotCY0KjQnNCQINCh0KLQldCS0JDQnQor0KLQmNCo0JzQkCDQodCS0JXQotCe0JfQkNCgCivQotCY0KjQnNCQINCS0J7QiNCY0J3QmtCQCivQotCY0KjQnNCQINCS0J7QiNCY0J0KK9Ci0JjQqNCc0JAg0JfQntCg0JDQnQor0KLQmNCR0JDQmCDQmNCo0KLQktCQ0J0KK9Ci0JjQpiDQkNCd0JDQnNCQ0KDQmNCI0JAKK9Ci0JjQptCQINCR0J7QltCeCivQotCY0KbQkCDQptCS0JXQotCQCivQotCY0KbQkCDQlNCc0JjQotCQ0KAKK9Ci0JjQptCQINCU0KDQkNCT0JDQnQor0KLQmNCm0JAg0IjQntCS0JDQnQor0KLQmNCm0JAg0JzQmNCb0J7QqAor0KLQmNCm0JAg0J3QldCU0JXQidCa0J4KK9Ci0JjQk9CQ0Iog0JDQndCi0JUKK9Ci0JjQpdCYINCI0J7QodCY0J8KK9Ci0JjQpdCe0JzQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQmNCl0J7QnNCY0KDQntCS0JjQiyDQktCV0InQmtCeCivQotCY0KXQktCY0J3QodCa0Jgg0JLQm9CQ0JTQkNCdCivQotCY0KXQktCY0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ci0JjQiNCQ0J3QmNCLINCc0JjQm9Ce0KgKK9Ci0JjQiNCQ0J3QmNCLINCh0JzQmNCJ0JAKK9Ci0JjQiNCQ0J3QmNCLINCX0J7QoNCQ0J0KK9Ci0JjQmtCS0JXQqNCQINCd0JDQmNCb0JAKK9Ci0JjQmtCS0JjQiyDQkdCe0KjQmtCeCivQotCY0JrQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQmNCa0JLQmNCm0JrQmCDQpdCg0JLQntCI0JUKK9Ci0JjQmtCS0JjQptCa0Jgg0JzQkNCg0JjQiNCQ0J3QkAor0KLQmNCbINCV0JTQktCY0J0g0JTQoAor0KLQmNCc0JDQoNCQ0KYg0JHQoNCQ0J3QmtCeCivQotCY0JzQkNCg0JDQpiDQodCi0J7QiNCQ0J0KK9Ci0JjQnNCQ0KDQntCSINCC0J7QoNCC0JUKK9Ci0JjQnNCQ0KDQntCSINCh0KLQldCS0JDQnQor0KLQmNCc0JDQoNCe0JIg0JLQkNCh0JAKK9Ci0JjQnNCQ0KDQntCSINCS0JXQoNCQCivQotCY0JzQmNCb0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0JjQnNCa0J4g0JjQoNCY0J3QldCICivQotCY0JzQmtCeINCJ0KPQkdCe0JIKK9Ci0JjQnNCa0J4g0JzQldCb0JDQndCY0IjQkAor0KLQmNCc0JrQniDQndCV0KHQotCe0KAKK9Ci0JjQnNCa0J4g0JLQldCg0JAKK9Ci0JjQnNCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0KLQmNCc0J7QotCY0Isg0ILQntCg0ILQlQor0KLQmNCc0J7QotCY0Isg0KHQotCQ0J3QkAor0KLQmNCc0J7QotCY0Isg0KPQoNCe0KgKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0JDQndCY0KbQkAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0IjQldCS0KDQldCcCivQotCY0JzQntCi0JjQiNCV0JLQmNCLLdCa0J7Qn9Cg0JjQktCY0KbQkCDQnNCQ0IjQkAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCY0JzQntCi0JjQiNCV0JLQmNCLINCe0JvQk9CQCivQotCY0JzQntCi0JjQiNCV0JLQmNCLINCf0JvQldCc0JXQndCa0JAKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQmNCd0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQotCY0J3QotCV0KAg0KXQldCU0JLQmNCT0JAKK9Ci0JjQndCi0J7QoCDQgtCj0KDQkAor0KLQmNCd0KLQntCgINCU0KPQqNCQ0J0KK9Ci0JjQndCi0J7QoCDQnNCQ0KDQmtCeCivQotCY0J3QotCe0KAg0JzQmNCb0JrQkAor0KLQmNCd0KLQntCgINCc0JjQntCU0KDQkNCTCivQotCY0J3QotCe0KAg0JzQmNCg0JAKK9Ci0JjQndCi0J7QoC3QoNCQ0JTQntCc0JjQoCDQodCi0J7QiNCQCivQotCY0J3QotCe0KAg0KHQotCV0JLQkNCdCivQotCY0J3Qo9ChINCR0JXQoNCd0JDQlNCV0KLQkAor0KLQmNCd0KPQoSDQnNCQ0KDQotCQCivQotCY0J7QlNCe0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ci0JjQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQotCY0J/QqNCY0J0g0JHQntCg0JjQodCb0JDQkgor0KLQmNCf0KPQoNCQINCI0J7QodCY0J8KK9Ci0JjQn9Cj0KDQkCDQiNCe0KHQmNCfCivQotCY0J/Qo9Cg0JAg0JvQkNCU0JjQodCb0JDQkgor0KLQmNCf0KPQoNCQINCb0JDQodCb0J4KK9Ci0JjQoCDQmNCo0KLQktCQ0J0KK9Ci0JjQoCDQnNCY0JvQmtCQCivQotCY0KAg0J/QldCi0JDQoAor0KLQmNCg0Jgg0JDQndCi0JDQmwor0KLQmNCg0JjQndCU0JAg0ILQo9Cg0JAKK9Ci0JjQoNCY0J3Qk9CV0KAg0JXQm9CX0JAKK9Ci0JjQoNCa0JDQiNCb0JAg0JDQndCQCivQotCY0KDQmtCQ0IjQm9CQINCh0JvQkNCS0J7QnNCY0KAKK9Ci0JjQoNCd0JDQndCY0Isg0JHQmNCh0JXQoNCa0JAKK9Ci0JjQodCY0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KLQmNCh0KLQkCDQldCg0JbQldCR0JXQogor0KLQmNCh0KLQkCDQiNCQ0J3QntCoCivQotCY0KLQldCb0JDQpiDQgtCe0KDQgtCVCivQotCY0KLQldCb0JDQpiDQgtCe0KDQgtCVCivQotCY0KLQldCb0JDQpiDQiNCV0JvQldCd0JAKK9Ci0JjQotCV0JvQkNCmINCI0J7QktCQ0J0KK9Ci0JjQotCV0JvQkNCmINCc0JjQm9CY0J3QmtCQCivQotCY0KLQldCb0JDQpiDQndCQ0JTQkAor0KLQmNCi0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQotCY0KLQldCb0JDQpiDQl9Ce0KDQmNCm0JAKK9Ci0JjQotCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JjQotCe0JIg0JDQndCQCivQotCY0KLQntCSINCQ0J3QmNCm0JAKK9Ci0JjQotCe0JIg0JXQktCT0JXQndCY0IjQlQor0KLQmNCi0J7QkiDQn9CQ0JLQm9CVCivQotCY0KLQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0JrQkNCb0KfQldCmINCI0J7QktCQ0J0KK9Ci0JrQkNCb0JXQpiDQn9CQ0JLQkNCeCivQotCe0KjQmNCLINCW0JDQoNCa0J4KK9Ci0J7QqNCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQotCe0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QqNCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQotCe0KjQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0KLQntCo0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0KjQmNCLINCU0KDQkNCT0JDQnQor0KLQntCo0JjQiyDQlNCj0KjQkNCdCivQotCe0KjQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QqNCY0Isg0JTQo9Co0JDQnQor0KLQntCo0JjQiyDQldCg0JbQldCR0JXQogor0KLQntCo0JjQiyDQldCS0JjQptCQCivQotCe0KjQmNCLINCT0J7QiNCa0J4KK9Ci0J7QqNCY0Isg0IjQldCb0JAKK9Ci0J7QqNCY0Isg0IjQntCS0JDQnQor0KLQntCo0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0J7QqNCY0Isg0JrQoNCh0KLQkNCdCivQotCe0KjQmNCLINCa0KDQodCi0J7QnNCY0KAKK9Ci0J7QqNCY0Isg0InQo9CR0JjQptCQCivQotCe0KjQmNCLINCJ0KPQkdCY0J3QmtCeCivQotCe0KjQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0KjQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QqNCY0Isg0JzQmNCb0JDQnQor0KLQntCo0JjQiyDQnNCY0JvQkNCdCivQotCe0KjQmNCLINCc0JjQm9CV0JLQkAor0KLQntCo0JjQiyDQnNCY0JvQlQor0KLQntCo0JjQiyDQnNCY0JvQntCoCivQotCe0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0KjQmNCLINCc0JjQm9Cj0KLQmNCdCivQotCe0KjQmNCLINCc0JjQntCU0KDQkNCTCivQotCe0KjQmNCLINCc0JjQoNCa0J4KK9Ci0J7QqNCY0Isg0JzQmNCi0JDQoAor0KLQntCo0JjQiyDQndCV0JTQldCJ0JrQngor0KLQntCo0JjQiyDQndCV0JLQldCd0JrQkAor0KLQntCo0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QqNCY0Isg0J3QmNCa0J4KK9Ci0J7QqNCY0Isg0J3QntCS0JDQmgor0KLQntCo0JjQiyDQntCR0KDQkNCUCivQotCe0KjQmNCLINCe0KHQotCe0IjQkAor0KLQntCo0JjQiyDQn9CV0KDQngor0KLQntCo0JjQiyDQn9CV0KLQkNCgCivQotCe0KjQmNCLINCg0JDQlNCVCivQotCe0KjQmNCLINCg0JDQlNCe0JzQmNCgCivQotCe0KjQmNCLINCg0JDQlNCe0JzQmNCgCivQotCe0KjQmNCLINCg0JDQotCa0J4KK9Ci0J7QqNCY0Isg0KHQkNCS0JAKK9Ci0J7QqNCY0Isg0KHQm9CQ0JLQmtCQCivQotCe0KjQmNCLINCh0J7QpNCY0IjQkAor0KLQntCo0JjQiyDQodCi0JDQndCY0JzQmNCgCivQotCe0KjQmNCLINCh0KLQldCS0JDQnQor0KLQntCo0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QqNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQotCe0KjQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0J7QqNCY0Isg0JLQldCb0JjQkdCe0KAKK9Ci0J7QqNCY0Isg0JLQldCg0JAKK9Ci0J7QqNCY0Isg0JLQmNCUCivQotCe0KjQmNCLINCS0JvQkNCU0J4KK9Ci0J7QqNCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQotCe0KjQmNCLINCS0J7QiNCY0J0KK9Ci0J7QqNCY0J3QntCS0JjQiyDQm9Cj0JrQkAor0KLQntCo0JrQntCSINCl0KDQkNCd0JjQodCb0JDQkgor0KLQntCo0JrQntCSINCf0JXQoNCQCivQotCe0KjQmtCe0JLQmNCLINCS0KPQp9CV0KLQkAor0KLQntCo0JrQntCS0JjQiyDQktCj0KfQmNCLCivQotCe0KjQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQotCe0KjQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0KLQntCo0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQotCe0ILQldCgINCa0J7QodCi0JAKK9Ci0J7QkdCP0JjQiy3QkdCg0JDQqNCQ0J3QkNCmINCc0JjQoNCe0KHQm9CQ0JLQkAor0KLQntCR0I/QmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ci0J7QkdCP0JjQiyDQnNCY0JvQldCd0JrQngor0KLQntCR0I/QmNCLINCh0KLQldCS0JDQnQor0KLQntCR0Jgg0JzQkNCg0JjQiNCQCivQotCe0JHQmCDQnNCY0KDQntCh0JvQkNCSCivQotCe0JHQmNCQ0Kgg0JLQmNCb0JzQntCoCivQotCe0JHQntCb0JrQkCDQkNCd0JAKK9Ci0J7QkdCe0JvQmtCQINCU0JDQndCY0JXQmwor0KLQntCR0J7Qm9Ca0JAg0JXQoNCY0JrQkAor0KLQntCR0J7Qm9Ca0JAg0JjQqNCi0JLQkNCdCivQotCe0JHQntCb0JrQkCDQmNCb0J7QndCQCivQotCe0JTQmNCLINCR0J7Qk9CU0JDQnQor0KLQntCU0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQotCe0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JTQmNCLINCU0JDQndCY0IjQldCb0JAKK9Ci0J7QlNCY0Isg0JPQntCI0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QlNCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0KLQntCU0JjQiyDQnNCY0JvQkNCd0JrQngor0KLQntCU0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQmNCLINCc0JjQm9CVCivQotCe0JTQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQotCe0JTQmNCLINCc0JjQm9Ce0KgKK9Ci0J7QlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQntCU0JjQiyDQndCV0ILQngor0KLQntCU0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQntCU0JjQiyDQoNCQ0IjQmtCeCivQotCe0JTQmNCLINCg0JDQotCe0JzQmNCgCivQotCe0JTQmNCLINCh0KLQkNCd0JjQodCQ0JLQkAor0KLQntCU0JjQiyDQodCi0JDQndCa0J4KK9Ci0J7QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQntCU0JjQiyDQktCV0JvQmNCc0JjQoAor0KLQntCU0JjQiyDQktCb0JDQlNCeCivQotCe0JTQntCo0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ci0J7QlNCe0KjQmtCe0JLQmNCLINCd0JDQlNCQCivQotCe0JTQntCo0JrQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCe0KHQotCe0IjQkAor0KLQntCU0J7QoNCn0JXQktCY0Isg0J/QldCg0J4KK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCS0JDQodCeCivQotCe0JTQntCg0KfQldCS0JjQiyDQktCe0IjQmNCdCivQotCe0JTQntCg0JDQnSDQotCg0JDQiNCQ0J0KK9Ci0J7QlNCe0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQotCe0JTQntCg0JjQiyDQkdCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCY0Isg0JPQntCI0JrQngor0KLQntCU0J7QoNCY0Isg0JjQm9CY0IjQkAor0KLQntCU0J7QoNCY0Isg0IjQldCb0JXQndCQCivQotCe0JTQntCg0JjQiyDQiNCe0JLQkNCd0JrQkAor0KLQntCU0J7QoNCY0Isg0IjQntCS0JDQnQor0KLQntCU0J7QoNCY0Isg0InQo9CR0JAKK9Ci0J7QlNCe0KDQmNCLINCJ0KPQkdCY0JLQntCI0JUKK9Ci0J7QlNCe0KDQmNCLINCc0JDQoNCY0IjQkAor0KLQntCU0J7QoNCY0Isg0JzQmNCb0J7QqAor0KLQntCU0J7QoNCY0Isg0JzQmNCb0J7QqAor0KLQntCU0J7QoNCY0Isg0J3QldCU0JXQidCa0J4KK9Ci0J7QlNCe0KDQmNCLINCd0JjQmtCe0JvQkAor0KLQntCU0J7QoNCY0Isg0J3QmNCa0J4KK9Ci0J7QlNCe0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQotCe0JTQntCg0JjQiyDQodCV0JvQmNCc0JjQoAor0KLQntCU0J7QoNCY0Isg0KLQoNCY0JLQo9Cd0JAKK9Ci0J7QlNCe0KDQntCSINCC0KPQoNCQCivQotCe0JTQntCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCU0J7QoNCe0JIg0JHQmNCh0JXQoNCa0JAKK9Ci0J7QlNCe0KDQntCSINCU0JXQodCQ0J3QmtCQCivQotCe0JTQntCg0J7QkiDQk9Cb0JjQqNCQCivQotCe0JTQntCg0J7QkiDQmNCS0JDQnQor0KLQntCU0J7QoNCe0JIt0IjQkNCo0JDQoNCV0JLQmNCLINCU0JDQndCY0KbQkAor0KLQntCU0J7QoNCe0JIg0JzQmNCb0JjQktCe0IgKK9Ci0J7QlNCe0KDQntCSINCc0JjQm9Ce0KgKK9Ci0J7QlNCe0KDQntCSINCd0JXQlNCV0InQmtCeCivQotCe0JTQntCg0J7QkiDQntCR0KDQldCd0JrQkAor0KLQntCU0J7QoNCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ci0J7QlNCe0KDQntCSINCg0J7QkdCV0KDQogor0KLQntCU0J7QoNCe0JIg0KHQkNCS0JAKK9Ci0J7QlNCe0KDQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QlNCe0KDQntCSINCh0J/QmNCg0J4g0JTQoAor0KLQntCU0J7QoNCe0JIg0KLQntCc0JjQodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCn0JXQlNCeCivQotCe0JTQntCg0J7QktCY0Isg0JbQkNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KLQntCU0J7QoNCe0JLQmNCLINCW0JjQktCe0KLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCW0JjQktCe0KLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JTQntCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JDQndCQCivQotCe0JTQntCg0J7QktCY0Isg0JDQndCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkNCd0KLQo9CdCivQotCe0JTQntCg0J7QktCY0Isg0JHQntCo0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCR0J7QqNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0KLQntCU0J7QoNCe0JLQmNCLINCR0J7QodCQCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KbQktCV0KLQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KbQktCY0IjQldCi0JjQnQor0KLQntCU0J7QoNCe0JLQmNCLINCm0JLQmNCI0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQo9Co0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCT0J7QiNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQk9Ce0IjQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KLQntCU0J7QoNCe0JLQmNCLINCY0JvQlQor0KLQntCU0J7QoNCe0JLQmNCLINCI0JDQodCd0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCe0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQotCe0JTQntCg0J7QktCY0Isg0IjQntCS0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQntCU0J7QoNCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQotCe0JTQntCg0J7QktCY0Isg0JvQkNCX0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCb0JXQndCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JzQkNCg0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQk9CY0KLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQkNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQqNCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCL0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0IvQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CVCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQmtCeINCU0KAg0JvQldCa0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JzQm9CQ0JTQldCdINCU0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCb0JDQlNCe0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0J7QnNCY0KDQmtCQCivQotCe0JTQntCg0J7QktCY0Isg0J3QkNCU0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQndCQ0JTQkAor0KLQntCU0J7QoNCe0JLQmNCLINCd0JjQi9CY0KTQntCgCivQotCe0JTQntCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JTQntCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JTQntCg0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0J7QodCi0J7QiNCQCivQotCe0JTQntCg0J7QktCY0Isg0J/QldCi0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0KjQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCU0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiCDQkNCU0JLQntCa0JDQogor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCI0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KDQntCh0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCQ0KjQkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0JDQktCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQkNCS0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCQ0JLQngor0KLQntCU0J7QoNCe0JLQmNCLINCh0JDQktCeCivQotCe0JTQntCg0J7QktCY0Isg0KHQldCd0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0JjQnNCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQm9CQ0JLQlQor0KLQntCU0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0KHQnNCY0InQmtCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCg0JXQlNCe0IjQlQor0KLQntCU0J7QoNCe0JLQmNCLINCh0KDQldCi0JXQnQor0KLQntCU0J7QoNCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JXQktCQCivQotCe0JTQntCg0J7QktCY0Isg0KLQntCU0JUKK9Ci0J7QlNCe0KDQntCS0JjQiyDQotCe0JTQlQor0KLQntCU0J7QoNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JLQldCg0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQktCV0KDQkAor0KLQntCU0J7QoNCe0JLQmNCLINCS0JXQoNCQCivQotCe0JTQntCg0J7QktCY0Isg0JLQm9CQ0JTQldCi0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCU0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQotCe0JTQntCg0J7QktCY0Isg0JfQntCg0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JfQntCg0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQl9Ce0KDQmtCQCivQotCe0JTQntCg0J7QktCh0JrQmCDQnNCQ0J3QkNCh0JjQiNCVCivQotCe0JTQntCg0J7QktCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQotCe0JTQntCg0J7QktCh0JrQmCDQndCQ0JTQkAor0KLQntCU0J7QodCY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQotCe0JTQntCh0JjQiNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0J7QlNCe0KHQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QodCY0IjQldCS0JjQiyDQl9Cb0JDQotCa0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0J7QpNCY0Jsg0KHQntCk0JjQiNCQCivQotCe0KXQntCJINCI0J7QktCeCivQotCe0KXQntCJ0JXQktCY0Isg0JHQntCo0JrQngor0KLQntCl0J7QidCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQotCe0IjQkNCT0JAg0JzQmNCb0JDQnQor0KLQntCI0JDQk9CQINCc0JjQm9Ce0KgKK9Ci0J7QiNCQ0JPQkCDQodCS0JXQotCe0JfQkNCgCivQotCe0IjQkNCT0JjQiyDQgtCe0KDQgtCVCivQotCe0IjQkNCT0JjQiyDQkdCe0JbQmNCU0JDQoAor0KLQntCI0JDQk9CY0Isg0JTQkNCd0JUKK9Ci0J7QiNCQ0JPQmNCLINCU0JDQndCY0JvQngor0KLQntCI0JDQk9CY0Isg0JTQo9Co0JDQnQor0KLQntCI0JDQk9CY0Isg0IjQldCb0JAKK9Ci0J7QiNCQ0JPQmNCLINCb0KPQlNCc0JjQm9CQCivQotCe0IjQkNCT0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQntCI0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQotCe0IjQkNCT0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QiNCQ0JPQmNCLINCg0JDQlNCe0JLQkNCdCivQotCe0IjQkNCT0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0IjQl9CQ0J0g0JjQm9Ce0J3QkAor0KLQntCa0JDQoCDQiNCj0JvQmNCI0JAKK9Ci0J7QmtCY0Isg0JrQntCh0JDQoNCQCivQotCe0JrQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0JrQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QmtCY0Isg0KHQkNCS0JAKK9Ci0J7QmtCY0Isg0KHQkNCS0JAKK9Ci0J7QmtCY0Isg0KHQkNCS0JAKK9Ci0J7QmtCY0J0t0ILQldCg0JjQiyDQl9CQ0JPQntCg0JrQkAor0KLQntCa0JjQnSDQgtCe0KDQgtCVCivQotCe0JrQmNCdINCQ0JvQmNCh0JAKK9Ci0J7QmtCY0J0g0JHQntCg0JAKK9Ci0J7QmtCY0J0g0JTQkNCd0JjQptCQCivQotCe0JrQmNCdINCf0KDQntCa0J7QnyDQlNCgINCb0JXQmtCQ0KAKK9Ci0J7QmtCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KLQntCa0JjQnSDQktCV0KDQkAor0KLQntCa0JjQnSDQktCb0JDQlNCQCivQotCe0JrQntCU0Jgg0IjQkNCd0J7QqAor0KLQntCa0J7QlNCYINCI0J7Qm9CQ0J3QmtCQCivQotCe0JrQntCU0Jgg0JzQkNCg0JPQmNCi0JAKK9Ci0J7QmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KLQntCbINCQ0J3QlNCg0JDQqAor0KLQntCbINCI0J7QltCV0KQKK9Ci0J7Qm9CU0Jgg0JXQktCQCivQotCe0JvQlNCYINCS0JjQm9Cc0J7QqAor0KLQntCb0JjQiyDQnNCY0JvQntCoCivQotCe0JvQmNCLINCS0JXQodCd0JAKK9Ci0J7Qm9CY0KbQmtCYINCX0J7QoNCQCivQotCe0JvQmNCc0JjQoCDQo9Cg0J7QqAor0KLQntCJ0JDQk9CQINCS0KPQmtCe0KHQkNCS0JAKK9Ci0J7QidCV0JLQmNCLINCR0KDQkNCd0JrQngor0KLQntCJ0JXQktCY0Isg0JTQntCR0KDQmNCh0JvQkNCSCivQotCe0InQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KLQntCJ0JjQiyDQoNCQ0IjQmtCeCivQotCe0JvQnNCQ0Kcg0JfQntCg0JDQnQor0KLQntCb0JzQkNCn0JXQkiDQltCY0JLQkAor0KLQntCb0JzQkNCn0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQotCe0JvQndCQ0Jgg0J7QotCeCivQotCe0JvQndCQ0Jgg0KDQo9CW0JAKK9Ci0J7Qm9CiINCI0J7QltCV0KQKK9Ci0J7Qm9CiINCI0J7QodCY0J8KK9Ci0J7Qm9CS0JDQiCDQkNCT0J3QldCoCivQotCe0JvQktCQ0Igg0JXQm9CV0J7QndCe0KDQkAor0KLQntCb0JLQldCiINCe0KHQmtCQ0KAKK9Ci0J7QnNCn0JDQitCYINCY0JLQkNCdCivQotCe0JzQp9CQ0IrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0J7QnNCn0JDQitCYINCh0KLQkNCd0JjQodCb0JDQktCQCivQotCe0JzQp9CV0JLQkCDQndCV0JLQldCd0JrQkCDQlNCgCivQotCe0JzQp9CV0JLQodCa0Jgg0KbQktCV0KLQkNCdCivQotCe0JzQp9CY0Isg0KfQldCU0J7QnNCY0KAKK9Ci0J7QnNCn0J7QkiDQotCe0JzQp9CeCivQotCe0JzQp9Ce0JLQkCDQkNCd0JXQotCQINCU0KAKK9Ci0J7QnNCn0J7QktCQINCQ0J3QmNCi0JAg0JTQoAor0KLQntCc0KjQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Ci0J7QnNCQINCo0JDQndCU0J7QoAor0KLQntCc0JAg0JDQndCU0KDQmNCI0JAKK9Ci0J7QnNCQINCI0JDQndCe0KgKK9Ci0J7QnNCQINCI0JDQndCe0KgKK9Ci0J7QnNCQINCI0JDQndCe0KgKK9Ci0J7QnNCQINCI0KPQm9CY0IjQkNCd0JAKK9Ci0J7QnNCQINCb0JDQlNCY0KHQm9CQ0JIKK9Ci0J7QnNCQINCc0JDQoNCY0IjQkAor0KLQntCc0JAg0JzQmNCl0JDQiNCb0J4KK9Ci0J7QnNCQINCe0JvQk9CQCivQotCe0JzQkCDQn9CQ0JsKK9Ci0J7QnNCQINCg0J7Ql9CQ0JvQmNCI0JAKK9Ci0J7QnNCQINCh0KLQldCS0JDQnQor0KLQntCc0JDQqCDQgtCj0KDQkAor0KLQntCc0JDQqCDQiNCQ0J3QmtCeCivQotCe0JzQkNCoINCI0J7QktCQ0J0KK9Ci0J7QnNCQ0Kgg0JzQmNCb0J7QoNCQ0JQKK9Ci0J7QnNCQ0Kgg0JzQmNCb0J7QktCQ0J0KK9Ci0J7QnNCQ0Kgg0KHQotCe0IjQkNCd0JrQkAor0KLQntCc0JDQqNCV0JIg0JHQntCW0JjQlNCQ0KAKK9Ci0J7QnNCQ0KjQldCSINCa0J7QktCY0J3QmtCQCivQotCe0JzQkNCo0JXQkiDQnNCQ0KLQmNCI0JAKK9Ci0J7QnNCQ0KjQldCSINCc0JDQotCY0IjQkAor0KLQntCc0JDQqNCV0JIg0J/QldCi0JDQoAor0KLQntCc0JDQqNCV0JIg0JLQldCg0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQkdCb0JDQk9Ce0KLQkAor0KLQntCc0JDQqNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQotCe0JzQkNCo0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KLQntCc0JDQqNCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQotCe0JzQkNCo0JXQktCY0Isg0JXQktCY0KbQkAor0KLQntCc0JDQqNCV0JLQmNCLINCY0JLQkNCdCivQotCe0JzQkNCo0JXQktCY0Isg0IjQldCb0JjQptCQCivQotCe0JzQkNCo0JXQktCY0Isg0IjQntCS0JDQnQor0KLQntCc0JDQqNCV0JLQmNCLINCa0J7QodCi0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQm9Cj0JrQkAor0KLQntCc0JDQqNCV0JLQmNCLINCc0JDQndCe0IjQm9CVCivQotCe0JzQkNCo0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0J7QnNCQ0KjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KLQntCc0JDQqNCV0JLQmNCLINCc0JjQm9Ca0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCc0JDQqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQotCe0JzQkNCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQndCQ0JTQkAor0KLQntCc0JDQqNCV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQotCe0JzQkNCo0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KLQntCc0JDQqNCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQotCe0JzQkNCo0JXQktCY0Isg0KHQkNCS0J4KK9Ci0J7QnNCQ0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0JzQkNCo0JXQktCY0Isg0KHQktCV0KLQntCc0JjQoAor0KLQntCc0JDQqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQotCe0JzQkNCo0JjQiyDQgtCj0KDQkAor0KLQntCc0JDQqNCY0Isg0JHQldCg0KLQkAor0KLQntCc0JDQqNCY0Isg0JzQkNCg0KLQmNCdCivQotCe0JzQkNCo0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQntCc0JDQqNCY0Isg0KLQmNCR0J7QoAor0KLQntCc0JDQpiDQmNCS0JDQnQor0KLQntCc0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQotCe0JzQkNCmINCg0KPQltCY0KbQkAor0KLQntCc0JDQnSDQlNCY0J0KK9Ci0J7QnNCQ0J0g0KTQoNCQ0IrQkAor0KLQntCc0JDQnSDQiNCe0JbQldCkCivQotCe0JzQkNCdINCb0JDQodCb0J4KK9Ci0J7QnNCQ0J0g0JzQkNCT0JTQntCb0J3QkAor0KLQntCc0JDQndCY0Isg0JTQo9Co0JDQnQor0KLQntCc0JDQndCY0Ist0JvQkNCm0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Ci0J7QnNCQ0J3QmNCLINCc0JjQm9CV0J3QkAor0KLQntCc0JDQndCY0Isg0JfQlNCV0J3QmtCQCivQotCe0JzQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JzQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0J7QnNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQotCe0JzQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQntCc0JDQoSDQkNCd0JTQoNCY0IjQkAor0KLQntCc0JDQoSDQiNCe0KHQmNCfCivQotCe0JzQkNChINCg0KPQlNCe0JvQpAor0KLQntCc0JDQoSDQl9CU0KDQkNCS0JrQkAor0KLQntCc0JXQpiDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ci0J7QnNCY0KfQmNCLINCQ0J3QotCVCivQotCe0JzQmNCn0JjQiyDQptCS0JjQiNCeCivQotCe0JzQmNCn0JjQiyDQiNCe0JLQngor0KLQntCc0JjQp9CY0Isg0J/QldCi0JDQoAor0KLQntCc0JjQp9CY0Isg0KHQotCe0IjQkAor0KLQntCc0JjQp9CY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQntCc0JjQp9CY0J0g0JzQkNCg0JjQiNCQCivQotCe0JzQmNCLINCn0JXQlNCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KLQntCc0JjQiyDQp9CV0JTQntCc0JjQoAor0KLQntCc0JjQiyDQltCV0InQmtCeCivQotCe0JzQmNCLINCW0JjQktCa0J4KK9Ci0J7QnNCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ci0J7QnNCY0Isg0ILQntCg0ILQlQor0KLQntCc0JjQiyDQgtCj0KDQgtCY0KbQkAor0KLQntCc0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQotCe0JzQmNCLINCC0KPQoNCY0KbQkAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JAKK9Ci0J7QnNCY0Isg0JDQndCQCivQotCe0JzQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Ci0J7QnNCY0Isg0JDQndCa0JAKK9Ci0J7QnNCY0Isg0JDQndCa0JjQptCQCivQotCe0JzQmNCLINCQ0J3QmtCY0KbQkAor0KLQntCc0JjQiyDQkNCg0JjQiNCQ0JTQndCQCivQotCe0JzQmNCLINCR0JjQidCQ0J3QkAor0KLQntCc0JjQiyDQkdCe0KjQmtCeCivQotCe0JzQmNCLINCR0J7QqNCa0J4KK9Ci0J7QnNCY0Isg0JHQntCW0JjQlNCQ0KDQmtCQCivQotCe0JzQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Ci0J7QnNCY0Isg0JHQntCI0JrQkAor0KLQntCc0JjQiyDQkdCe0KDQmNCh0JvQkNCSINCU0KAg0JjQndCTCivQotCe0JzQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QnNCY0Isg0JHQntCh0JjQidCa0JAKK9Ci0J7QnNCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JzQmNCLINCU0JDQndCY0KbQkAor0KLQntCc0JjQiyDQlNCQ0J3QmNCb0J4g0JzQoAor0KLQntCc0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KLQntCc0JjQiyDQlNCV0IjQkNCdCivQotCe0JzQmNCLINCU0JXQktCQCivQotCe0JzQmNCLINCU0KDQkNCT0JDQnQor0KLQntCc0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0J7QnNCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JzQmNCLINCU0KDQkNCT0JAKK9Ci0J7QnNCY0Isg0JTQoNCQ0JPQkAor0KLQntCc0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQotCe0JzQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ci0J7QnNCY0Isg0JTQo9Co0JDQnQor0KLQntCc0JjQiyDQlNCj0KjQkNCdCivQotCe0JzQmNCLINCU0KPQqNCY0KbQkAor0KLQntCc0JjQiyDQldCS0JAKK9Ci0J7QnNCY0Isg0JXQktCQCivQotCe0JzQmNCLINCT0J7QoNCU0JDQndCQCivQotCe0JzQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ci0J7QnNCY0Isg0JjQm9CVCivQotCe0JzQmNCLINCY0JvQlQor0KLQntCc0JjQiyDQmNCb0JjQiNCQCivQotCe0JzQmNCLINCY0JvQmNCI0JAKK9Ci0J7QnNCY0Isg0JjQm9CY0IjQkAor0KLQntCc0JjQiyDQmNCS0JDQnQor0KLQntCc0JjQiy3QmNCS0JjQp9CY0Isg0JHQmNCJ0JDQndCQCivQotCe0JzQmNCLINCI0JXQm9CV0J3QkAor0KLQntCc0JjQiyDQiNCV0JvQmNCm0JAKK9Ci0J7QnNCY0Isg0IjQntCh0JjQpAor0KLQntCc0JjQiyDQiNCe0KHQmNCfCivQotCe0JzQmNCLINCI0J7QktCQ0J3QmtCQCivQotCe0JzQmNCLINCI0J7QktCQ0J0KK9Ci0J7QnNCY0Isg0IjQntCS0JDQnQor0KLQntCc0JjQiyDQiNCe0JLQkNCdCivQotCe0JzQmNCLINCI0KPQm9CY0JDQndCQCivQotCe0JzQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ci0J7QnNCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ci0J7QnNCY0Isg0JrQntCg0J3QldCb0JjQkAor0KLQntCc0JjQiyDQmtCe0KHQkAor0KLQntCc0JjQiyDQmtCg0KHQotCQCivQotCe0JzQmNCLINCb0JDQl9CQ0KAKK9Ci0J7QnNCY0Isg0JvQkNCX0JDQoAor0KLQntCc0JjQiyDQm9CV0J/QntCh0JDQktCQCivQotCe0JzQmNCLINCJ0JjQidCQ0J3QkAor0KLQntCc0JjQiyDQidCY0InQkAor0KLQntCc0JjQiyDQidCj0JHQkAor0KLQntCc0JjQiyDQidCj0JHQmNCo0JAKK9Ci0J7QnNCY0Isg0InQo9CR0JjQqNCQCivQotCe0JzQmNCLINCJ0KPQkdCY0KjQkAor0KLQntCc0JjQiyDQidCj0JHQmNCd0JrQkAor0KLQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KLQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KLQntCc0JjQiyDQnNCQ0KDQk9CY0KIKK9Ci0J7QnNCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQmNCLINCc0JDQoNCY0IjQkAor0KLQntCc0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0J7QnNCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQmNCLINCc0JDQoNCa0J4KK9Ci0J7QnNCY0Isg0JzQmNCI0J7QlNCg0JDQkwor0KLQntCc0JjQiyDQnNCY0JvQkNCU0JjQnQor0KLQntCc0JjQiyDQnNCY0JvQkNCdCivQotCe0JzQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QnNCY0Isg0JzQmNCb0JDQnQor0KLQntCc0JjQiyDQnNCY0JvQkNCdCivQotCe0JzQmNCLINCc0JjQm9CV0J3QmtCeCivQotCe0JzQmNCLINCc0JjQm9CV0J3QmtCeCivQotCe0JzQmNCLINCc0JjQm9CVCivQotCe0JzQmNCLINCc0JjQm9CY0JLQntCICivQotCe0JzQmNCLINCc0JjQm9Ca0JAKK9Ci0J7QnNCY0Isg0JzQmNCb0J7QqAor0KLQntCc0JjQiyDQnNCY0JvQntCoCivQotCe0JzQmNCLINCc0JjQm9Ce0JzQmNCgCivQotCe0JzQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0JzQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0JzQmNCLINCc0JjQm9Ce0KHQkNCSCivQotCe0JzQmNCLINCc0JjQoNCI0JDQndCQCivQotCe0JzQmNCLINCc0JjQoNCI0JDQndCQCivQotCe0JzQmNCLINCc0JjQoNCI0JDQnQor0KLQntCc0JjQiyDQnNCY0KDQmtCeCivQotCe0JzQmNCLINCc0JjQoNCa0J4KK9Ci0J7QnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQntCc0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCe0JzQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQntCc0JjQiyDQnNCY0KLQkNCgCivQotCe0JzQmNCLINCc0JvQkNCU0JXQnQor0KLQntCc0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQntCc0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQntCc0JjQiyDQndCQ0KLQkNCo0JAKK9Ci0J7QnNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KLQntCc0JjQiyDQndCV0JHQntCI0KjQkAor0KLQntCc0JjQiyDQndCV0JTQldCJ0JrQkAor0KLQntCc0JjQiy3QndCV0JTQldCJ0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KLQntCc0JjQiyDQndCV0JTQldCJ0JrQngor0KLQntCc0JjQiyDQndCV0J3QkNCUCivQotCe0JzQmNCLINCd0JXQndCQ0JQKK9Ci0J7QnNCY0Isg0J3QldCd0JDQlAor0KLQntCc0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QnNCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JzQmNCLINCd0J7QktCY0KbQkAor0KLQntCc0JjQiyDQntCb0JPQmNCm0JAg0JzQoAor0KLQntCc0JjQiyDQntCb0JjQktCV0KDQkAor0KLQntCc0JjQiyDQn9CQ0JLQm9CVINCU0KAKK9Ci0J7QnNCY0Isg0J/QldCb0JrQkAor0KLQntCc0JjQiyDQn9CV0KLQkNCgCivQotCe0JzQmNCLINCf0JXQotCa0J4KK9Ci0J7QnNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KLQntCc0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQntCc0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQntCc0JjQiyDQoNCQ0KLQntCc0JjQoAor0KLQntCc0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQotCe0JzQmNCLINCh0JDQqNCQCivQotCe0JzQmNCLINCh0JDQktCQCivQotCe0JzQmNCLINCh0JDQktCQCivQotCe0JzQmNCLINCh0JXQm9CY0JzQmNCgCivQotCe0JzQmNCLLdCh0JjQnNCY0J0g0JzQmNCb0JrQkAor0KLQntCc0JjQiyDQodCY0J3QmNCo0JAKK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQmtCeCivQotCe0JzQmNCLINCh0JvQkNCS0JrQngor0KLQntCc0JjQiyDQodCb0JDQktCa0J4KK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KLQntCc0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KLQntCc0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0JzQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QnNCY0Isg0KHQndCV0JbQkNCd0JAKK9Ci0J7QnNCY0Isg0KHQntCk0JjQiNCQCivQotCe0JzQmNCLINCh0KLQkNCd0JrQngor0KLQntCc0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0Isg0KHQotCV0JLQkNCdCivQotCe0JzQmNCLINCh0KLQldCS0JDQnQor0KLQntCc0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0Isg0KHQotCY0J/QkAor0KLQntCc0JjQiyDQodCi0IjQldCf0JDQnQor0KLQntCc0JjQiyDQodCS0JXQotCe0JfQkNCgCivQotCe0JzQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0J7QnNCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ci0J7QnNCY0Isg0KLQntCU0JUKK9Ci0J7QnNCY0Isg0KLQntCU0J7QoAor0KLQntCc0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQotCe0JzQmNCLINCS0JXQidCa0J4KK9Ci0J7QnNCY0Isg0JLQldCJ0JrQngor0KLQntCc0JjQiyDQktCV0KDQkAor0KLQntCc0JjQiyDQktCV0KDQmNCm0JAKK9Ci0J7QnNCY0Isg0JLQldCh0J3QkAor0KLQntCc0JjQiyDQktCV0KHQndCQCivQotCe0JzQmNCLINCS0JXQodCd0JAKK9Ci0J7QnNCY0Isg0JLQmNCUCivQotCe0JzQmNCLINCS0JjQndCa0J4KK9Ci0J7QnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCc0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCe0JzQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KLQntCc0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ci0J7QnNCY0Isg0JLQntCI0JjQodCb0JDQktCQCivQotCe0JzQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Ci0J7QnNCY0Isg0JfQntCg0JDQnQor0KLQntCc0JjQiyDQl9Ce0KDQmNCm0JAKK9Ci0J7QnNCY0Isg0JfQntCg0JrQkAor0KLQntCc0JjQiyDQl9Ce0KDQmtCQCivQotCe0JzQmNCLINCX0J7QoNCa0JAKK9Ci0J7QnNCY0Jog0IjQntCS0JDQnQor0KLQntCc0JjQmiDQodCe0KTQmNCI0JAKK9Ci0J7QnNCY0Jog0KHQotCV0JLQkNCdCivQotCe0JzQmNCdINCW0JjQktCQ0J0KK9Ci0J7QnNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7QnNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JzQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KLQntCc0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0J7QnNCY0J0g0JTQoNCQ0JPQkNCdCivQotCe0JzQmNCdINCU0KDQkNCT0JDQnQor0KLQntCc0JjQnSDQlNCg0JDQk9CY0IrQkAor0KLQntCc0JjQnSDQlNCj0KjQkNCdCivQotCe0JzQmNCdINCT0J7QoNCU0JDQndCQCivQotCe0JzQmNCdINCJ0KPQkdCY0KbQkAor0KLQntCc0JjQnSDQidCj0JHQmNCm0JAKK9Ci0J7QnNCY0J0g0JzQkNCg0JjQiNCQCivQotCe0JzQmNCdINCc0JjQm9CQ0J0KK9Ci0J7QnNCY0J0g0JzQmNCb0KPQotCY0J0KK9Ci0J7QnNCY0J0g0JzQmNCb0KPQotCY0J0KK9Ci0J7QnNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0KLQntCc0JjQnSDQnNCY0KLQkNCgCivQotCe0JzQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ci0J7QnNCY0J0g0KHQotCV0JLQkNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQotCe0JzQmNCdINCh0KLQldCS0JDQnQor0KLQntCc0JjQnSDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0J0g0KHQotCV0JLQkNCdCivQotCe0JzQmNCdINCh0KLQldCS0JDQnQor0KLQntCc0JjQnSDQodCS0JXQotCb0JDQndCQCivQotCe0JzQmNCdINCS0JDQodCQCivQotCe0JzQmNCdINCS0JjQlNCe0KHQkNCS0JAKK9Ci0J7QnNCY0J3Qp9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Ci0J7QnNCY0J3QkNCmINCS0JjQndCa0J4KK9Ci0J7QnNCa0JAg0JDQm9Cf0JDQoAor0KLQntCc0JrQkCDQmtCQ0KDQm9CeCivQotCe0JzQidCQ0J3QntCS0JjQiyDQkdCe0JPQntCh0JvQkNCSCivQotCe0JzQidCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QnNCJ0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQntCc0InQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCc0J4g0IjQntCh0JjQnwor0KLQntCc0J7QkiDQkdCe0JPQlNCQ0J0KK9Ci0J7QnNCe0JIg0JzQmNCg0KfQlQor0KLQntCc0J7QkiDQodCQ0JLQkAor0KLQntCc0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQotCe0JzQntCSINCi0J7QqNCQCivQotCe0JzQntCSINCi0J7QlNCe0KAKK9Ci0J7QnNCe0JIg0JLQldCb0JjQnQor0KLQntCc0J7QkiDQktCV0JvQmNCdCivQotCe0JzQntCS0JjQiyDQkNCd0ILQkAor0KLQntCc0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ci0J7QnNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QnNCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQotCe0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQotCe0JzQntCS0JjQiyDQnNCY0KLQkNCgCivQotCe0JzQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KLQntCc0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQntCc0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KLQntCc0J7QktCY0Isg0KLQntCc0J4KK9Ci0J7QnNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ci0J7QnNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0J7QnNCe0JLQmNCLINCX0J7QoNCY0KbQkAor0KLQntCd0KfQldCSINCY0JLQkNCdCivQotCe0J3QlNCe0JvQniDQodCc0JjQidCQCivQotCe0J3QmNCLINCW0JjQmtCY0KbQkAor0KLQntCd0JjQiyDQoNCj0JbQmNCm0JAKK9Ci0J7QndCY0Isg0KHQotCe0IjQmNCc0JXQnQor0KLQntCd0JrQntCS0JjQiyDQiNCe0KbQkAor0KLQntCd0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQotCe0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCd0KLQlSDQpNCg0JjQgtCV0KgKK9Ci0J7QndCi0JjQiyDQgtCe0KDQgtCVCivQotCe0J3QotCY0Isg0JTQo9Co0JDQnQor0KLQntCf0JDQm9Ce0JIg0JTQo9Co0JDQnQor0KLQntCf0JDQm9Ce0JIg0JPQkNCS0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7Qn9CQ0JvQntCSINCI0JXQm9CY0KbQkAor0KLQntCf0JDQm9Ce0JIg0JzQldCb0JDQndCY0IjQkAor0KLQntCf0JDQm9Ce0JIg0JzQldCb0JDQndCY0IjQkAor0KLQntCf0JDQm9Ce0JIg0JzQmNCl0JDQiNCb0J4KK9Ci0J7Qn9CQ0JvQntCSINCc0JjQm9CV0J3QkAor0KLQntCf0JDQm9Ce0JIg0JzQmNCb0J7QqAor0KLQntCf0JDQm9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9Ci0J7Qn9CQ0JvQntCSINCd0JDQlNCQCivQotCe0J/QkNCb0J7QkiDQn9CV0KLQkNCgCivQotCe0J/QkNCb0J7QkiDQodCe0KTQmNCI0JAKK9Ci0J7Qn9CQ0JvQntCSINCh0J/QkNCh0J7QiNCVCivQotCe0J/QkNCb0J7QkiDQodCi0JDQndCY0KHQm9CQ0JLQkAor0KLQntCf0JDQm9Ce0JIg0KHQotCV0JLQkNCdCivQotCe0J/QkNCb0J7QkiDQodCi0JXQktCQ0J0KK9Ci0J7Qn9CQ0JvQntCSINCh0KLQldCS0JDQnQor0KLQntCf0JDQm9Ce0JIg0KHQktCV0KLQntCX0JDQoAor0KLQntCf0JDQm9Ce0JIg0JLQkNCh0JjQm9CY0IjQlQor0KLQntCf0JDQm9Ce0JIg0JLQldCg0JAKK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQkdCe0JbQngor0KLQntCf0JDQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQlNCj0JrQkNCi0JjQndCa0JAKK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0KLQntCf0JDQm9Ce0JLQmNCLINCI0KPQm9CY0IjQlQor0KLQntCf0JDQm9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0J/QkNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCf0JDQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQodCi0JDQndCY0IjQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCS0JvQkNCI0JrQngor0KLQntCf0JDQm9Ch0JrQmCDQlNCQ0J3QmNCb0J4KK9Ci0J7Qn9CQ0JvQodCa0Jgg0JTQo9Co0JDQndCa0JAKK9Ci0J7Qn9CQ0JvQodCa0Jgt0KTQmNCo0KLQldCoINCd0JDQlNCQCivQotCe0J/QkNCb0KHQmtCYINCc0JjQm9CV0J3QkAor0KLQntCf0JDQm9Ch0JrQmCDQl9Ce0KDQkNCdCivQotCe0J/QkNCgINCc0JDQoNCY0IjQkAor0KLQntCf0JjQiyDQp9CV0JTQngor0KLQntCf0JjQiyDQgtCj0KDQngor0KLQntCf0JjQiyDQkNCd0KLQngor0KLQntCf0JjQiyDQptCS0JjQiNCQCivQotCe0J/QmNCLINCU0JDQndCY0KbQkAor0KLQntCf0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0J7Qn9CY0Isg0JTQoNCQ0JPQkNCdCivQotCe0J/QmNCLINCU0KDQkNCT0JDQnQor0KLQntCf0JjQiyDQmNCb0JjQiNCQCivQotCe0J/QmNCLINCI0J7QktCQ0J0KK9Ci0J7Qn9CY0Isg0IjQntCS0JDQnQor0KLQntCf0JjQiyDQm9CV0J7QnQor0KLQntCf0JjQiyDQidCj0JHQngor0KLQntCf0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0J7Qn9CY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQotCe0J/QmNCLINCc0JjQm9CQ0J0KK9Ci0J7Qn9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0KLQntCf0JjQiyDQnNCY0JvQmNCS0J7QiAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQntCf0JjQiyDQnNCY0KDQmtCeCivQotCe0J/QmNCLINCc0JjQotCQ0KAKK9Ci0J7Qn9CY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KLQntCf0JjQiyDQndCV0ILQngor0KLQntCf0JjQiyDQndCY0JrQngor0KLQntCf0JjQiyDQn9CV0KLQkNCgCivQotCe0J/QmNCLINCg0JDQotCa0J4KK9Ci0J7Qn9CY0Isg0KHQoNCV0KLQldCdCivQotCe0J/QmNCLINCh0KLQldCS0JDQnQor0KLQntCf0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KLQntCf0JjQiyDQktCe0IjQmNCdCivQotCe0J/QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0J7Qn9Ca0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7Qn9Ca0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7Qn9Cb0JDQmiDQmNCc0KDQlQor0KLQntCf0JvQmNCm0JAg0JDQkdCV0JTQmNCdCivQotCe0J/Qm9CY0KbQkCDQk9CQ0J3QmAor0KLQntCf0JvQmNCm0JAg0J3QldCC0JzQldCU0JjQnQor0KLQntCf0JvQmNCm0JAg0KDQkNCc0JDQlNCQ0J0KK9Ci0J7Qn9Cb0JjQptCQINCX0JXQi9CY0KAKK9Ci0J7Qn9Cb0JjQptCQINCX0JXQndCY0IjQkAor0KLQntCf0J4g0JDQndCi0J7QndCY0IjQkAor0KLQntCf0J4g0InQo9CR0J7QnNCY0KAKK9Ci0J7Qn9CeINCd0JXQndCQ0JQKK9Ci0J7Qn9Ce0JvQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ci0J7Qn9Ce0JvQkNCmINCg0JDQlNCY0JLQntCIINCU0KAg0JvQldCa0JDQoAor0KLQntCf0J7Qm9CY0Isg0ILQo9Cg0JAKK9Ci0J7Qn9Ce0JvQmNCLINCU0KPQqNCQ0J0KK9Ci0J7Qn9Ce0JvQmNCLINCf0JXQiNCQCivQotCe0J/QntCJ0JDQndCY0J0g0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ci0J7Qn9Ce0JvQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7Qn9Ce0JvQntCS0JDQp9Ca0Jgg0KDQkNCU0J7QktCQ0J0KK9Ci0J7Qn9Ce0JvQntCS0JDQp9Ca0Jgg0JLQo9Ca0J7QodCQ0JLQkAor0KLQntCf0KDQldCaINCh0JjQnNCeCivQotCe0KDQgtCQ0J3QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7QoNCR0JDQoNCe0JIg0JTQo9Co0JDQnQor0KLQntCg0JHQmNCm0JAg0JDQm9CV0JrQodCQCivQotCe0KDQkdCY0KbQkCDQkdCe0KDQmNCh0JvQkNCSCivQotCe0KDQkdCY0KbQkCDQlNCj0KjQkNCdCivQotCe0KDQkdCY0KbQkCDQlNCj0KjQkNCdCivQotCe0KDQkdCY0KbQkCDQmNCb0JjQiNCQCivQotCe0KDQkdCY0KbQkCDQiNCV0JvQmtCQCivQotCe0KDQkdCY0KbQkCDQiNCj0JvQmtCQCivQotCe0KDQkdCY0KbQkCDQnNCQ0KDQmNCI0JAKK9Ci0J7QoNCR0JjQptCQINCc0JjQm9Ce0KgKK9Ci0J7QoNCR0JjQptCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QoNCR0JjQptCQINCd0JDQlNCQCivQotCe0KDQkdCY0KbQkCDQoNCQ0JTQntCh0JvQkNCSCivQotCe0KDQkdCY0KbQkCDQktCV0KDQmNCm0JAKK9Ci0J7QoNCU0JAg0IjQkNCd0JrQngor0KLQntCg0JTQkNCYINCY0JvQntCd0JAKK9Ci0J7QoNCU0JDQmCDQnNCQ0KDQmNCI0JAKK9Ci0J7QoNCU0JDQmCDQodCS0JXQotCb0JDQndCQCivQotCe0KDQlNCQ0Igg0JzQmNCo0JrQngor0KLQntCg0JTQkNCI0Jgg0IjQkNCd0JrQngor0KLQntCg0JXQoCDQgtCj0KDQkAor0KLQntCg0JzQkCDQk9CV0JfQkAor0KLQntCg0JzQkCDQiNCe0KHQmNCfCivQotCe0KDQnNCQINCI0J7QktCQ0J0KK9Ci0J7QoNCc0JAg0JzQkNCg0JPQmNCi0JAKK9Ci0J7QoNCc0JAg0KHQotCV0JLQkNCdCivQotCe0KDQnNCQINCS0JjQm9CY0JwKK9Ci0J7QoNCc0JDQqNCYINCC0JXQoNCCCivQotCe0KDQnNCQ0KjQmCDQiNCQ0J3QntCoCivQotCe0KDQnNCQ0KjQmCDQodCc0JjQidCa0JAKK9Ci0J7QoNCc0JDQqNCYINCh0KLQldCS0JDQnQor0KLQntCg0JzQntCo0Jgg0IjQntCW0JXQpAor0KLQntCg0IrQkNCd0KHQmtCYINCW0JDQoNCa0J4KK9Ci0J7QoNCK0JDQndCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQotCe0KDQitCQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0KDQitCQ0J3QodCa0Jgg0IjQldCb0JrQkAor0KLQntCg0IrQkNCd0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0KLQntCg0J7QmiDQp9CQ0JHQkAor0KLQntCg0J7QnNCQ0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0KDQntCc0JDQnSDQndCV0ILQldCJ0JrQngor0KLQntCg0J7QnNCQ0J0g0KDQkNCU0JjQodCQ0JIKK9Ci0J7QoNCe0JzQkNCdINCg0JDQlNCc0JjQm9CQCivQotCe0KDQntCc0JDQnSDQoNCQ0JTQntCI0JjQptCQCivQotCe0KDQntCS0JjQiyDQotCg0JjQn9CeCivQotCe0KDQotCY0Isg0JDQndCU0KDQmNCI0JAKK9Ci0J7QoNCi0JjQiyDQiNCe0KHQmNCfCivQotCe0KDQotCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0J7QoNCi0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QoNCi0JjQiyDQktCV0KDQkAor0KLQntCh0JzQkNCdINCI0J7QodCY0J8KK9Ci0J7QodCj0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KLQntCh0KPQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQntCh0KPQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7QoiDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQkNCc0JDQm9CY0IjQkAor0KLQntCiINCQ0J3QkAor0KLQntCiINCQ0J3QkAor0KLQntCiINCQ0J3QlNCg0JDQqAor0KLQntCiINCQ0J3QlNCg0JjQiNCQCivQotCe0KIg0JDQndCU0KDQmNCI0JAKK9Ci0J7QoiDQkNCd0JjQptCQCivQotCe0KIg0JDQndCi0JDQmyDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QoiDQkNCd0KLQntCd0JjQiNCQCivQotCe0KIg0JDQoNCf0JDQlAor0KLQntCiLdCQ0KDQktCQ0Jgg0JDQndCi0JDQmwor0KLQntCiLdCQ0KDQktCQ0Jgg0IjQkNCd0J7QqAor0KLQntCiLdCQ0KDQktCQ0Jgg0IjQkNCd0J7QqAor0KLQntCiLdCR0JDQk9CYINCY0JzQoNCVCivQotCe0KIt0JHQkNCT0Jgg0IjQkNCd0J7QqAor0KLQntCiLdCR0JDQk9CYINCc0JDQoNCY0IjQkAor0KLQntCiINCR0JDQm9CY0J3Qogor0KLQntCiINCR0JXQoNCi0JAKK9Ci0J7Qoi3QkdCe0IjQndCY0Jog0JTQldCX0JjQlNCV0KAg0JTQmNCf0Jsg0JjQndCTCivQotCe0KIg0JHQntCg0JAKK9Ci0J7QoiDQlNCV0JbQlQor0KLQntCiINCU0KPQqNCQ0J3QmtCQCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQoNCQ0IrQkAor0KLQntCiINCk0KDQkNCK0JAKK9Ci0J7QoiDQpNCg0JDQitCQCivQotCe0KIg0JPQkNCR0J7QoAor0KLQntCiINCT0JXQl9CQCivQotCe0KIt0KXQntCg0KLQmCDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQmNCo0KLQktCQ0J0KK9Ci0J7QoiDQmNCo0KLQktCQ0J0KK9Ci0J7QoiDQmNCo0KLQktCQ0J0KK9Ci0J7QoiDQmNCR0J7QidCQINCU0KAKK9Ci0J7QoiDQmNCb0J7QndCQCivQotCe0KIg0JjQm9Ce0J3QkAor0KLQntCiINCY0JvQntCd0JAKK9Ci0J7QoiDQmNCc0KDQlQor0KLQntCiINCY0KDQldCd0JAKK9Ci0J7QoiDQmNCg0JXQndCQCivQotCe0KIg0JjQktCQ0J0KK9Ci0J7QoiDQiNCQ0J3QntCoCivQotCe0KIg0IjQkNCd0J7QqAor0KLQntCiINCI0JDQndCe0KgKK9Ci0J7QoiDQiNCV0JvQldCd0JAKK9Ci0J7QoiDQiNCe0JbQldCkCivQotCe0KIg0IjQntCW0JXQpAor0KLQntCiINCI0J7QltCV0KQKK9Ci0J7QoiDQiNCe0JbQldCkCivQotCe0KIg0IjQntCW0JXQpAor0KLQntCiINCI0J7QodCY0J8KK9Ci0J7QoiDQiNCe0JLQkNCd0JrQkAor0KLQntCiINCI0J7QktCQ0J0KK9Ci0J7QoiDQiNCj0JvQmNCI0JDQndCQCivQotCe0KIg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQntCiINCI0KPQm9CY0IjQkAor0KLQntCiLdCa0JDQqNCQINCR0JvQkNCWCivQotCe0KIg0JrQkNCg0J7QiQor0KLQntCiINCa0JDQoNCe0IkKK9Ci0J7QoiDQmtCQ0KLQkNCg0JjQndCQCivQotCe0KIg0JrQkNCi0JjQptCQCivQotCe0KIg0JrQntCS0JjQidCa0JAKK9Ci0J7QoiDQm9CQ0IjQntCoCivQotCe0KIg0JvQkNCI0J7QqAor0KLQntCiINCb0JDQodCb0J4g0JTQoAor0KLQntCiINCb0JDQodCb0J4KK9Ci0J7QoiDQm9CQ0KHQm9CeCivQotCe0KIg0JvQkNCh0JvQngor0KLQntCiINCb0JjQktCY0IjQkAor0KLQntCiINCc0JDQk9CU0J7Qm9Cd0JAKK9Ci0J7QoiDQnNCQ0KDQk9CY0KLQkAor0KLQntCiINCc0JDQoNCT0JjQotCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQmNCl0JDQiQor0KLQntCiINCc0JjQpdCQ0IkKK9Ci0J7QoiDQnNCY0JrQm9Ce0KgKK9Ci0J7QoiDQnNCY0JvQkNCd0JrQkAor0KLQntCiINCc0JjQm9Ca0JAKK9Ci0J7QoiDQnNCY0KDQntCh0JvQkNCSCivQotCe0KIg0J3QldCR0J7QiNCo0JAKK9Ci0J7QoiDQntCb0JPQkAor0KLQntCiINCf0JDQm9CY0JrQkAor0KLQntCiINCf0JDQmwor0KLQntCiINCf0JDQmwor0KLQntCiINCf0JDQmwor0KLQntCiINCf0JDQktCb0JUKK9Ci0J7QoiDQoNCe0JfQkNCb0JjQiNCQCivQotCe0KIg0KDQntCX0JDQm9CY0IjQkAor0KLQntCiINCh0JjQm9CS0JXQodCi0JXQoAor0KLQntCiINCh0KLQldCS0JDQnQor0KLQntCiINCh0KLQldCS0JDQnQor0KLQntCiINCh0KLQldCS0JDQnQor0KLQntCiINCh0KLQiNCV0J/QkNCdCivQotCe0KIg0KLQldCg0JXQl9CQCivQotCe0KIg0KLQldCg0JXQl9CQCivQotCe0KIg0KLQmNCR0J7QoAor0KLQntCiINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0J7QoiDQktCQ0JvQldCg0JjQiNCQCivQotCe0KIg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCiINCS0JvQkNCU0JjQodCb0JDQkgor0KLQntCiINCX0JjQotCQCivQotCe0KIg0JfQm9CQ0KLQkAor0KLQntCiINCX0J7Qm9Ci0JDQnQor0KLQntCiINCX0J7QoNCQCivQotCe0KLQkNCg0JLQkNCYINCc0JDQoNCY0IjQkAor0KLQntCi0KUg0KHQmNCb0JLQldCh0KLQldCgCivQotCe0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0J7QotCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQotCe0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JLQkNCg0JvQntCW0JAg0JTQo9Co0JDQndCa0JAKK9Ci0J7QktCV0KDQndCY0Isg0JfQntCg0JAKK9Ci0J7QktCY0JvQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQotCe0JLQmNCb0J7QktCY0Isg0JfQntCg0JDQnQor0KLQntCS0JjQotCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KLQntCS0JjQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QktCI0JDQndCY0J0g0JHQmNCJ0JDQndCQCivQotCe0JLQidCQ0J3QmNCLINCU0KPQqNCQ0J0KK9Ci0J7QktCJ0JDQndCY0Isg0KHQkNCS0JAKK9Ci0KDQkNCW0Jgg0J/QkNCbCivQotCg0JDQkdCQ0Jog0JrQkNCi0JDQoNCY0J3QkAor0KLQoNCQ0JjQm9Ce0JLQmNCLINCd0JDQlNCQCivQotCg0JDQmNCb0J7QktCY0Isg0KHQldCb0JjQnNCY0KAKK9Ci0KDQkNCY0JvQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQotCg0JDQiNCn0JXQktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KLQoNCQ0IjQp9CV0JLQodCa0JAg0JDQndCY0KLQkAor0KLQoNCQ0IjQkNCd0J7QktCh0JrQmCDQidCj0JHQmNCm0JAKK9Ci0KDQkNCI0JDQndCe0JLQodCa0Jgg0InQo9CR0J4KK9Ci0KDQkNCI0JDQndCe0JLQodCa0Jgg0JzQntCI0KHQngor0KLQoNCQ0IjQkNCd0J7QktCh0JrQmCDQotCg0JDQiNCQ0J0KK9Ci0KDQkNCI0JHQkNCgINCQ0JTQntCb0KQKK9Ci0KDQkNCI0JHQkNCgINCX0JLQntCd0JjQnNCY0KAKK9Ci0KDQkNCI0JXQoCDQm9CQ0JTQmNCh0JvQkNCSINCU0KAKK9Ci0KDQkNCI0JXQoCDQoNCe0JHQldCg0KIKK9Ci0KDQkNCI0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KLQoNCQ0IjQmtCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ci0KDQkNCI0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0KDQkNCI0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ci0KDQkNCI0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQotCg0JDQiNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0KDQkNCI0JrQntCS0JjQiyDQndCQ0JTQkAor0KLQoNCQ0IjQmtCe0JLQmNCLINCd0JDQiNCU0JDQnQor0KLQoNCQ0IjQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0KLQoNCQ0IjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0KDQkNCI0JrQntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQotCg0JDQiNCa0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0KHQmtCYINCc0JXQotCe0JTQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0KHQmtCYINCf0JDQndCi0JAKK9Ci0KDQkNCa0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JAKK9Ci0KDQkNCJ0JjQiyDQmNCS0JDQnQor0KLQoNCQ0J3QlNCQ0KTQmNCgINCS0JDQodCY0JvQmNCI0JUKK9Ci0KDQkNCd0JrQntCb0J7QktCY0Isg0KbQktCV0KLQkAor0KLQoNCQ0J3QmtCj0JvQntCSINCI0J7QltCV0KQKK9Ci0KDQkNCj0Jwg0JDQoNCQ0J3QmtCQCivQotCg0JDQktCQ0Iog0IjQntCS0JDQndCa0JAKK9Ci0KDQkNCS0JDQoCDQgtCj0KDQngor0KLQoNCQ0JLQkNCgINCJ0KPQkdCY0KjQkAor0KLQoNCQ0JLQkNCgINCc0JjQm9Ce0KHQkNCSCivQotCg0JDQktCY0KbQkCDQnNCY0JvQkNCdCivQotCg0JDQktCY0KbQkCDQnNCY0JvQlQor0KLQoNCQ0JLQmNCm0JAg0J3QmNCa0J7Qm9CQCivQotCg0JDQktCY0KbQkCDQoNCQ0JTQlQor0KLQoNCR0JDQndCe0KEg0JbQmNCS0JAKK9Ci0KDQkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCg0JHQmNCLINCJ0KPQkdCY0KjQkAor0KLQoNCR0JjQiyDQnNCY0JvQkNCU0JjQnQor0KLQoNCR0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCg0JHQmNCLINCi0JDQnNCQ0KDQkAor0KLQoNCR0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCg0JHQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0KLQoNCR0J7QiNCV0JLQmNCLINCC0KPQoNCQ0IIKK9Ci0KDQkdCe0IjQldCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KLQoNCR0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KLQoNCR0J7QiNCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQotCg0JHQntCI0JXQktCY0Isg0JPQkNCS0KDQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCY0JTQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCY0JvQmNCI0JAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQotCg0JHQntCI0JXQktCY0Isg0JvQkNCX0JAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQnNCY0JvQlQor0KLQoNCR0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KLQoNCR0J7QidCV0JLQkNCmINCU0KDQkNCT0J7QodCb0JDQkgor0KLQoNCR0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0KDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQkdCe0JLQmNCLINCS0JXQodCd0JAKK9Ci0KDQldCo0IrQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQotCg0JXQqNCK0JjQiyDQiNCe0JLQkNCdCivQotCg0JXQqNCK0JjQiyDQodCi0JXQktCQ0J0KK9Ci0KDQldCL0JDQmtCe0JIg0KHQotCe0IjQkNCdCivQotCg0JXQkdCQ0KLQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQoNCV0JHQkNCi0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0KDQldCR0JDQotCY0KbQmtCYINCI0KPQodCi0JjQndCQCivQotCg0JXQkdCQ0KLQmNCm0JrQmCDQnNCQ0KDQmNCI0JAKK9Ci0KDQldCR0JjQp9Cd0JjQmi3QktCj0KfQmNCLINCe0JvQk9CQCivQotCg0JXQkdCe0JLQkNCmINCc0JjQm9CVCivQotCg0JXQndCn0JXQktCh0JrQmCDQndCQ0JTQldCW0JTQkAor0KLQoNCV0J/QkNCd0JjQiyDQnNCQ0KXQnNCj0KIKK9Ci0KDQldCh0JjQk9Cb0JDQktCY0Isg0JrQkNCi0JjQptCQCivQotCg0JXQodCY0JPQm9CQ0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQldCh0JjQk9Cb0JDQktCY0Isg0KHQm9CQ0JLQmtCeCivQotCg0JXQodCY0JPQm9CQ0JLQmNCLINCh0KLQldCS0JDQnQor0KLQoNCV0KHQmNCT0JvQkNCS0JjQiyDQktCQ0KHQkAor0KLQoNCV0KHQmNCT0JvQkNCS0JjQiyDQktCQ0KHQkAor0KLQoNCV0KHQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9Ci0KDQk9CQ0JvQkCDQgtCj0KDQkAor0KLQoNCT0J4g0J3QldCS0JXQndCa0JAKK9Ci0KDQmNCn0JrQntCS0JjQiyDQkNCd0JrQkAor0KLQoNCY0KfQmtCe0JLQmNCLINCI0KPQm9Ca0JAKK9Ci0KDQmNCn0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KLQoNCY0KfQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0KLQoNCY0KfQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0KLQoNCY0KjQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0KLQoNCY0KjQmNCLLdCY0JvQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0KDQmNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Ci0KDQmNCk0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0KDQmNCk0JrQntCS0JjQiyDQmtCj0JfQnNCQ0J0KK9Ci0KDQmNCk0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0KDQmNCk0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQotCg0JjQpNCa0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ci0KDQmNCk0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQotCg0JjQpNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQoNCY0KTQmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQotCg0JjQpNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQotCg0JjQpNCa0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ci0KDQmNCk0JrQntCS0JjQiyDQodCg0ILQkCDQlNCgCivQotCg0JjQpNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCY0KTQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0KDQmNCk0KMg0JTQntCg0KMKK9Ci0KDQmNCk0KPQndCn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQotCg0JjQpNCj0J3Qp9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Ci0KDQmNCk0KPQitCQ0JPQmNCLINCh0J/QkNCh0J7QiNCVCivQotCg0JjQpNCj0IrQkNCT0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ci0KDQmNCk0KPQndCe0JIg0JTQkNCd0JjQm9CeCivQotCg0JjQpNCj0J3QntCSINCI0J7QodCY0KQKK9Ci0KDQmNCk0KPQndCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Ci0KDQmNCk0KPQndCe0JIg0KDQkNCU0JzQmNCb0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCW0JjQmtCY0KbQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JbQmNCS0JrQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JHQntCo0JrQngor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JTQkNCd0JrQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCg0JjQpNCj0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQotCg0JjQpNCj0J3QntCS0JjQiyDQmNCb0JjQndCa0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0IjQntCS0JDQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0IjQntCS0JDQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JzQkNCa0KHQmNCcCivQotCg0JjQpNCj0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQotCg0JjQpNCj0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JzQmNCg0JrQngor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0J3QkNCU0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQndCV0JPQntCS0JDQndCa0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCe0JvQk9CQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQotCg0JjQpNCj0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQotCg0JjQpNCj0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQotCg0JjQpNCj0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQotCg0JjQpNCj0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQotCQ0J3QkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCi0KDQmNCk0KPQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQkNCh0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0JXQoNCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQktCb0JDQlNCQ0J0KK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCSCivQotCg0JjQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ci0KDQmNCa0JjQiyDQnNCY0KDQmtCeCivQotCg0JjQmtCY0Isg0KDQntCh0JAKK9Ci0KDQmNCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQotCg0JjQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCY0J/QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQmNCf0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCg0JjQn9Ce0JvQodCa0Jgg0JzQkNCg0JjQiNCQCivQotCg0JjQn9Cj0J3QntCS0JjQiyDQgtCe0KDQgtCY0IjQkAor0KLQoNCY0J/Qo9Cd0J7QktCY0Isg0JHQm9CQ0JbQngor0KLQoNCY0J/Qo9Cd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KLQoNCY0KEg0IjQkNCa0J7QkQor0KLQoNCY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCg0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0KLQoNCY0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQotCg0JjQktCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KLQoNCY0JLQmNCLINCR0J7QoNCY0KEKK9Ci0KDQmNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0KDQmNCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ci0KDQmNCS0JjQiyDQlNCj0KjQkNCdCivQotCg0JjQktCY0Isg0IjQntCS0JDQnQor0KLQoNCY0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0KDQmNCS0KPQndCn0JjQiyDQnNCY0KDQkAor0KLQoNCY0JLQo9Cd0I/QkCDQnNCY0JvQntCoCivQotCg0JjQktCj0J3Qj9CQINCd0JXQndCQ0JQKK9Ci0KDQmNCS0KPQndCY0Isg0JHQntCT0J7QidCj0JEKK9Ci0KDQmNCS0KPQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQoNCY0JLQo9Cd0JjQiyDQoNCQ0J3QmtCeCivQotCg0JjQktCj0J3QntCS0JjQiyDQnNCb0JDQlNCV0J3QmtCeCivQotCg0JjQktCj0J3QntCS0JjQiyDQodCY0JzQngor0KLQoNCY0JLQo9Cd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9Ci0KDQmNCX0JvQmNCLINCh0JvQkNCS0JrQngor0KLQoNCa0InQkCDQk9Ce0IjQmtCeCivQotCg0JrQidCQINCc0JjQoNCa0J4KK9Ci0KDQmtCj0InQkCDQltCY0JLQntCg0JDQlAor0KLQoNCa0KPQidCQINCQ0J3QkAor0KLQoNCa0KPQidCQINCR0J7QqNCa0J4KK9Ci0KDQmtCj0InQkCDQkdCe0KDQmNCh0JvQkNCSCivQotCg0JrQo9CJ0JAg0JHQoNCQ0J3QmtCeCivQotCg0JrQo9CJ0JAg0JTQoNCQ0JPQkNCdCivQotCg0JrQo9CJ0JAg0JTQoNCQ0JPQkNCdCivQotCg0JrQo9CJ0JAg0JXQodCi0JXQoAor0KLQoNCa0KPQidCQINCT0J7QiNCa0J4KK9Ci0KDQmtCj0InQkCDQk9Cg0J7Ql9CU0JAKK9Ci0KDQmtCj0InQkCDQiNCe0JLQkNCdCivQotCg0JrQo9CJ0JAg0IjQo9Cb0JrQkAor0KLQoNCa0KPQidCQINCc0JDQoNCY0J3QmtCeCivQotCg0JrQo9CJ0JAg0JzQmNCb0JDQnQor0KLQoNCa0KPQidCQINCc0JjQm9Ce0KDQkNCUCivQotCg0JrQo9CJ0JAg0JzQmNCe0JTQoNCQ0JMKK9Ci0KDQmtCj0InQkCDQnNCY0J7QlNCg0JDQkwor0KLQoNCa0KPQidCQINCd0JXQlNCV0InQmtCeCivQotCg0JrQo9CJ0JAg0J3QmNCa0J7Qm9CQCivQotCg0JrQo9CJ0JAg0J3QntCS0JDQmgor0KLQoNCa0KPQidCQINCd0J7QktCQ0JoKK9Ci0KDQmtCj0InQkCDQn9CV0KLQkNCgCivQotCg0JrQo9CJ0JAg0KDQkNCd0JrQngor0KLQoNCa0KPQidCQINCh0JvQkNCS0JrQngor0KLQoNCa0KPQidCQINCh0J7QpNCY0IjQkAor0KLQoNCa0KPQidCQINCh0J7QitCQCivQotCg0JrQo9CJ0JAg0KHQotCV0JLQkNCdCivQotCg0JrQo9CJ0JAg0KHQotCe0IjQkNCd0JrQkAor0KLQoNCa0KPQidCQINCS0JvQkNCU0JjQodCb0JDQktCQCivQotCg0JzQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQoNCd0KfQmNCLINCb0JDQl9CeCivQotCg0J3QkNCS0JDQpiDQnNCY0JvQkNCdCivQotCg0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQotCg0J3QmNCLINCS0JXQoNCQCivQotCg0J3QmNCd0JjQiyDQltCY0JLQkNCdCivQotCg0J3QmNCd0JjQiyDQltCY0JLQntCI0JjQnQor0KLQoNCd0JjQndCY0Isg0ILQntCg0ILQlQor0KLQoNCd0JjQndCY0Isg0ILQo9Cg0JAKK9Ci0KDQndCY0J3QmNCLINCR0J7Qk9CU0JDQnQor0KLQoNCd0JjQndCY0Isg0JHQntCI0JAKK9Ci0KDQndCY0J3QmNCLINCR0J7QoNCY0JLQntCICivQotCg0J3QmNCd0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KLQoNCd0JjQndCY0Isg0JTQntCR0KDQmNCS0J7QiAor0KLQoNCd0JjQndCY0Isg0JTQoNCQ0JPQkNCdCivQotCg0J3QmNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0KDQndCY0J3QmNCLINCU0KPQqNCQ0J0KK9Ci0KDQndCY0J3QmNCLINCc0JDQoNCQCivQotCg0J3QmNCd0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0KDQndCY0J3QmNCLINCc0JjQoNCa0J4KK9Ci0KDQndCY0J3QmNCLINCc0JjQoNCa0J4KK9Ci0KDQndCY0J3QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0KDQndCY0J3QmNCLINCc0J7QnNCn0JjQm9CeCivQotCg0J3QmNCd0JjQiyDQntCb0JjQktCV0KDQkAor0KLQoNCd0JjQndCY0Isg0KDQkNCU0JjQktCe0IgKK9Ci0KDQndCY0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQotCg0J3QmNCd0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQoNCd0JjQndCY0Isg0KHQotCV0JLQkAor0KLQoNCd0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCK0JDQmtCe0JIg0JTQo9Co0JDQnQor0KLQoNCd0J7QktCQ0KYg0J3QkNCU0JAKK9Ci0KDQntCn0JAg0JrQntCg0J3QldCbCivQotCg0J7QqNCV0InQkNCmINCc0JDQotCeCivQotCg0J7QqNCa0JjQnSDQodCQ0JLQldCi0JAKK9Ci0KDQntCo0JrQmNCdINCi0JDQnNCQ0KDQkAor0KLQoNCe0IjQkNCd0J7QkiDQldCU0JLQkNCg0JQKK9Ci0KDQntCI0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQotCg0J7QiNCQ0J3QntCSINCg0J7QnNCQ0J0KK9Ci0KDQntCI0JrQntCS0JjQiyDQmNCb0J7QndCQCivQotCg0J7QnNCb0JXQoCDQm9CQ0KHQm9CeCivQotCg0J/Qp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0KDQn9Cn0JXQktCh0JrQmCDQotCe0JzQp9CVCivQotCg0J/QmNCd0JDQpiDQiNCV0JvQldCd0JAKK9Ci0KDQn9Ca0JAg0J/QkNCS0JvQlQor0KLQoNCf0JrQkCDQn9CQ0JLQm9CVCivQotCg0J/QntCS0KHQmtCYINCS0JDQodCY0IkKK9Ci0KDQodCi0JXQitCQ0Jog0KTQoNCQ0IrQkAor0KLQoNCi0JjQiyDQodCb0JDQktCa0J4KK9Ci0KDQo9Co0J3QntCS0JXQpiDQmNCS0JDQnQor0KLQoNCj0JHQkNCg0JDQpiDQk9CQ0JHQoNCY0IjQldCb0JAKK9Ci0KDQo9CU0JAg0JDQm9CY0IjQkAor0KLQoNCj0JTQmNCLINCY0JLQkNCdCivQotCg0KPQiNCY0Isg0JTQo9Co0JjQptCQCivQotCg0KPQiNCY0Isg0JzQmNCb0J7QqCDQktCV0KLQldCg0JjQndCQ0KAKK9Ci0KDQo9Cc0JHQmNCLINCS0JXQlNCg0JDQnQor0KLQoNCj0JzQmNCLINCh0J7QpNCY0IjQkAor0KLQoNCj0JzQmNCLINCS0JXQoNCQCivQotCj0KfQldCSINCW0JjQktCQ0J3QmtCQCivQotCj0KjQldCSINCW0JjQktCa0J4KK9Ci0KPQqNCI0JDQmiDQiNCQ0J0KK9Ci0KPQqNCI0JDQmiDQiNCj0KDQkNCICivQotCj0KjQiNCQ0Jog0JzQmNCb0J7QqAor0KLQo9Co0J3QldCaINCe0KLQmNCb0JjQiNCQCivQotCj0KjQitCQ0Jog0JDQndCQCivQotCj0JHQmNCLINCW0JjQktCQ0J0KK9Ci0KPQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0KPQkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCj0JHQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ci0KPQkdCY0Isg0JTQo9Co0JDQnQor0KLQo9CR0JjQiyDQlNCj0KjQkNCdCivQotCj0JHQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Ci0KPQkdCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KLQo9CR0JjQiyDQnNCY0JvQkNCdCivQotCj0JHQmNCLINCc0JjQm9CV0J3QmtCeCivQotCj0JHQmNCLINCc0JjQm9CY0JLQntCICivQotCj0JHQmNCLINCc0JjQm9Ce0KgKK9Ci0KPQkdCY0Isg0JzQmNCb0J7QiNCa0J4KK9Ci0KPQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0KPQkdCY0Isg0J3QmNCa0J7Qm9CQCivQotCj0JHQmNCLINCd0J7QktCQ0JoKK9Ci0KPQkdCY0Isg0J7Qm9CT0JAKK9Ci0KPQkdCY0Isg0J/QldCi0JDQoAor0KLQo9CR0JjQiyDQoNCQ0JTQkAor0KLQo9CR0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KLQo9CR0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQo9CR0JjQiyDQodCQ0JLQkAor0KLQo9CR0JjQiyDQodCi0JDQndCa0J4KK9Ci0KPQkdCY0Isg0KHQktCV0KLQntCX0JDQoCDQlNCgCivQotCj0JHQmNCLINCS0JXQoNCQCivQotCj0JHQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KPQkdCY0Isg0JfQntCg0JDQnQor0KLQo9CR0JjQnSDQmtCQ0KLQkNCg0JjQndCQCivQotCj0JHQmNCdINCh0KLQntCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ci0KPQkdCY0J0g0KHQotCe0IjQkAor0KLQo9CR0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQotCj0JHQmNCdINCX0J7QoNCa0JAKK9Ci0KPQptCQ0JrQntCSINCC0J7QoNCC0JUKK9Ci0KPQptCQ0JrQntCSINCC0J7QoNCC0JUKK9Ci0KPQptCQ0JrQntCSINCR0J7QqNCa0J4KK9Ci0KPQptCQ0JrQntCSINCR0J7Qk9CU0JDQndCa0JAKK9Ci0KPQptCQ0JrQntCSINCR0J7QoNCQCivQotCj0KbQkNCa0J7QkiDQkdCg0JDQndCa0J4KK9Ci0KPQptCQ0JrQntCSINCU0JDQoNCY0J3QmtCQCivQotCj0KbQkNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Ci0KPQptCQ0JrQntCSINCa0JDQnNCV0J3QmtCeCivQotCj0KbQkNCa0J7QkiDQm9CQ0KLQmNCd0JrQkAor0KLQo9Cm0JDQmtCe0JIg0JzQkNCg0JjQiNCQCivQotCj0KbQkNCa0J7QkiDQnNCQ0KDQmtCeCivQotCj0KbQkNCa0J7QkiDQnNCY0JvQkNCdCivQotCj0KbQkNCa0J7QkiDQnNCY0JvQkNCdCivQotCj0KbQkNCa0J7QkiDQnNCY0JvQmNCm0JAKK9Ci0KPQptCQ0JrQntCSINCd0J7QktCQ0JoKK9Ci0KPQptCQ0JrQntCSINCg0JDQlNCY0JLQntCICivQotCj0KbQkNCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0KLQo9Cm0JDQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KLQo9Cm0JDQmtCe0JIg0KDQkNCI0JrQngor0KLQo9Cm0JDQmtCe0JIg0KHQmNCd0JjQqNCQCivQotCj0KbQkNCa0J7QkiDQotCQ0J3QkNCh0JjQiNCVCivQotCj0KbQkNCa0J7QkiDQktCV0KDQkAor0KLQo9Cm0JDQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KLQo9Cm0JDQmtCe0JIg0JfQntCg0JDQndCQCivQotCj0KbQkNCa0J7QkiDQl9Ce0KDQkAor0KLQo9Cm0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Ci0KPQptCQ0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0KPQptCQ0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KLQo9Cm0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ci0KPQptCQ0JrQntCS0JjQiyDQnNCY0JvQntCoCivQotCj0KbQkNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQo9Cm0JjQiyDQgtCe0KDQgtCVCivQotCj0KbQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQo9Cm0JjQiyDQm9CQ0JfQkNCgCivQotCj0KbQmNCLINCc0JjQm9CV0J3QmtCeCivQotCj0KbQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KLQo9Cm0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCj0KbQmNCLINCS0KPQiNCY0KbQkAor0KLQo9Cm0J7QktCY0Isg0JfQntCg0JAKK9Ci0KPQpNCV0JPQj9CY0Isg0JzQmNCb0JXQnQor0KLQo9Ca0JDQpyDQnNCY0KXQkNCI0JvQngor0KLQo9Ca0JDQndCY0Isg0JXQndCU0KDQlQor0KLQo9Ca0JDQndCY0Isg0JjQoNCV0J3QkAor0KLQo9Ca0JDQoCDQpNCQ0JTQmNCbCivQotCj0JrQkNCgINCc0JjQoNCI0JDQndCQCivQotCj0JrQmNCLINCf0JXQotCQ0KAKK9Ci0KPQmtCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KLQo9Cb0JDQiyDQiNCe0JLQmNCm0JAKK9Ci0KPQm9CV0J3Qp9CY0Isg0JrQkNCi0JjQptCQCivQotCj0JvQldCd0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0KLQo9Cb0JXQndCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCj0JvQmNCLINCR0J7QoNCa0J4KK9Ci0KPQm9CY0Isg0J3QldCS0JXQndCa0J4KK9Ci0KPQm9Cj0JHQldCmINCC0J7QoNCC0JUKK9Ci0KPQm9Cj0JHQldCmINCc0JjQm9Ca0JAKK9Ci0KPQm9Cj0JHQldCmINCS0JDQodCY0JvQmNCI0JUKK9Ci0KPQnNCQ0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQo9Cc0JDQoNCY0Isg0KbQktCV0KLQmNCdCivQotCj0JzQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQo9Cc0JHQkNChINCQ0JPQndCV0JfQkAor0KLQo9Cc0JHQkNChINCY0JLQkNCdCivQotCj0JzQkdCQ0KEg0InQo9CU0JXQktCY0KIKK9Ci0KPQnNCY0J0g0JTQo9Co0JDQndCa0JAKK9Ci0KPQndCT0KPQlyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KLQo9Cd0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQotCj0J3QmNCLINCg0JDQiNCa0J4KK9Ci0KPQndCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ci0KPQndCY0Isg0KHQotCV0JLQkNCdCivQotCj0J3QotCV0JIg0JzQkNCg0JjQiNCQCivQotCj0J/QkNCd0KfQldCS0KHQmtCYINCd0JjQmtCe0JvQkAor0KLQo9Cf0JXQpiDQl9CS0J7QndCY0JzQmNCgCivQotCj0J/QmNCLINCd0JXQktCV0J3QmtCQCivQotCj0KAg0JzQmNCl0JDQiNCb0J4KK9Ci0KPQoCDQodCj0JfQkNCd0JAKK9Ci0KPQoNCn0JDQnSDQiNCQ0J0KK9Ci0KPQoNCn0JDQnSDQiNCQ0J0KK9Ci0KPQoNCn0JDQnSDQiNCj0KDQkNCICivQotCj0KDQp9CQ0J0g0JLQm9CQ0JTQmNCc0JjQoCDQodCj0JTQmNCI0JAKK9Ci0KPQoNCn0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0KPQoNCo0JjQiyDQiNCV0JvQldCd0JAKK9Ci0KPQoNCo0JjQiNCQ0J0g0JLQkNCh0JAKK9Ci0KPQoNCQ0Jgg0JHQldCb0JAKK9Ci0KPQoNCQ0Jgg0JzQmNCl0JDQiNCb0J4KK9Ci0KPQoNCQ0Jgg0KLQldCg0JXQl9CQCivQotCj0KDQkNCI0JvQmNCLINCc0JjQm9CVCivQotCj0KDQkNCI0JvQmNCI0JAg0JHQntCW0JjQptCQCivQotCj0KDQkNCI0JvQmNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0KLQo9Cg0JDQnSDQgtCj0KDQkAor0KLQo9Cg0JDQnSDQidCj0JHQmNCm0JAKK9Ci0KPQoNCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0KLQo9Cg0JDQndCh0JrQmCDQpNCV0KDQldCd0KYKK9Ci0KPQoNCQ0J3QodCa0Jgg0JPQldCX0JAKK9Ci0KPQoNCQ0J3QodCa0Jgg0IjQkNCd0J7QqAor0KLQo9Cg0JDQndCh0JrQmCDQiNCe0KHQmNCfCivQotCj0KDQkNCd0KHQmtCYINCb0JDQodCb0J4KK9Ci0KPQoNCQ0J3QodCa0Jgg0JzQkNCg0JjQptCQCivQotCj0KDQkNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0KLQo9Cg0JDQndCh0JrQmCDQnNCQ0KLQmNCI0JAKK9Ci0KPQoNCQ0J3QodCa0Jgg0J/QldCi0JDQoAor0KLQo9Cg0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Ci0KPQoNCYINCQ0KDQn9CQ0JQKK9Ci0KPQoNCYINCi0JjQkdCe0KAKK9Ci0KPQoNCY0Isg0JvQo9Ca0JAKK9Ci0KPQoNCY0Isg0JzQkNCg0JjQndCa0J4KK9Ci0KPQoNCY0JrQkCDQiNCe0KHQmNCcCivQotCj0KDQmNCd0KHQmtCYINCU0KPQqNCQ0J0KK9Ci0KPQoNCY0J3QodCa0Jgg0JXQlNCY0KLQkAor0KLQo9Cg0JjQndCh0JrQmCDQnNCY0JvQldCi0JAKK9Ci0KPQoNCY0J3QodCa0Jgg0JzQmNCe0JzQmNCgCivQotCj0KDQmiDQnNCY0KDQmtCeCivQotCj0KDQmiDQndCQ0JTQkAor0KLQo9Cg0JrQkNCJINCa0JDQotCQCivQotCj0KDQmtCe0JLQmNCLINCl0JDQmtCY0IjQkAor0KLQo9Cg0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQotCj0KDQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9Ci0KPQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KLQo9Cg0JrQntCS0JjQiyDQoNCQ0KTQmNCiCivQotCj0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KPQoNCa0J7QktCY0Isg0JfQmNCd0JrQkAor0KLQo9Cg0JrQo9Cb0J7QkiDQltCQ0JrQm9CY0J3QkAor0KLQo9Cg0JrQo9Cb0J7QkiDQlNCj0KjQkNCdCivQotCj0KDQmtCj0JvQntCSINCI0J7QktCQ0J0KK9Ci0KPQoNCb0JDQmtCe0JIg0KbQktCV0KLQkNCdCivQotCj0KDQndCQ0Igg0KHQm9CQ0JLQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Ci0KPQoNCeINCc0JjQpdCQ0IkKK9Ci0KPQoNCe0JzQkNCdINCc0JjQm9Ce0KDQkNCUCivQotCj0KDQntCf0J7QidCQ0KYg0JzQmNCL0J4KK9Ci0KPQoNCj0JTQmNCLINCc0JjQm9CQ0J0KK9Ci0KPQoNCj0JTQmNCLINCc0JjQntCU0KDQkNCTCivQotCj0KDQo9CU0JjQiNCQINCc0JjQm9Ce0KDQkNCUCivQotCj0KDQo9Ca0JDQm9CeINCc0JjQntCU0KDQkNCTCivQotCj0KDQo9Ca0JDQm9CeINCg0JDQlNCc0JjQm9CQCivQotCj0KDQo9Ca0JDQm9CeINCX0J7QoNCQCivQotCj0KDQl9CeINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCj0KDQl9CeINCa0JDQoNCb0J4KK9Ci0KPQotCY0Isg0JjQm9CY0IjQkAor0KLQo9Ci0J3QmNCb0J7QktCY0Isg0J3QkNCU0JAKK9Ci0KPQotCK0JXQktCY0Isg0JHQntCW0JXQndCa0JAKK9Ci0KPQotCK0JXQktCY0Isg0JHQntCT0JTQkNCdCivQotCj0KLQitCV0JLQmNCLINCI0J7QktCQ0J0KK9Ci0KPQotCK0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQo9Ci0IrQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KLQo9Ci0J7QoNCe0JIg0JTQldCh0JDQndCn0JjQiwor0KLQo9Ci0J7QoNCe0JIg0IjQo9Cb0JrQmNCm0JAKK9Ci0KPQotCe0KDQntCSINCh0KLQkNCd0JAKK9Ci0KPQotCe0KDQntCSINCh0KLQldCS0JDQnQor0KLQo9Ci0KPQm9Cj0JPQj9CY0IjQkCDQnNCQ0KDQkAor0KLQo9CS0JXQj9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ci0KPQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQktCg0KLQmtCe0JLQmNCLINCc0JDQoNCY0J0g0JTQoCDQm9CV0JrQkNCgCivQo9Co0IvQldCR0KDQmtCQINCb0JDQl9CQ0KAKK9Cj0KjQi9CV0JHQoNCa0JAg0JzQmNCb0JXQndCa0J4KK9Cj0KjQi9CV0JHQoNCa0JAg0JfQm9CQ0KLQngor0KPQqNCL0KPQnNCb0JjQiyDQnNCY0JvQldCd0JrQngor0KPQqNCL0KPQnNCb0JjQiyDQndCV0KjQmtCeCivQo9Co0IvQo9Cc0JvQmNCLINCS0KPQmtCY0KbQkAor0KPQqNCQ0J0g0IjQkNCd0JXQlwor0KPQqNCI0JDQmiDQiNCQ0J3QmtCeCivQo9Co0IjQkNCaINCI0JDQoNCc0JjQm9CQCivQo9Co0IjQkNCaINCS0JvQkNCh0KLQkAor0KPQqNCJ0JXQkdCg0JrQkCDQnNCY0JvQntCg0JDQlAor0KPQqNCi0JjQn9CQ0Jog0IjQldCb0JAKK9Cj0IvQo9Ca0JDQm9CeINCh0JjQnNCeCivQo9CW0JDQoCDQlNCV0KHQkNCd0JrQkAor0KPQltCQ0KAg0JrQkNCi0JjQptCQCivQo9CW0JjQp9CQ0J3QmNCdINCC0J7QoNCC0JUKK9Cj0JHQkNCS0KfQmNCLINCh0JDQktCQCivQo9CR0JDQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cj0JHQkNCS0JjQiyDQidCj0JHQmNCm0JAKK9Cj0JHQkNCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgCivQo9CR0JjQn9CQ0KDQmNCfINCn0JXQlNCeCivQo9CR0JjQn9CQ0KDQmNCfINCW0JjQktCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JPQntCI0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQmNCb0JUKK9Cj0JHQmNCf0JDQoNCY0J8g0IjQkNCK0JAKK9Cj0JHQmNCf0JDQoNCY0J8g0IjQntCS0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JzQkNCg0JjQndCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JzQkNCg0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQnNCY0JvQkNCdCivQo9CR0JjQn9CQ0KDQmNCfINCc0JjQoNCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JzQntCc0JjQoAor0KPQkdCY0J/QkNCg0JjQnyDQn9CQ0JLQm9CVCivQo9CR0JjQn9CQ0KDQmNCfINCh0JvQkNCS0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQotCe0JTQlQor0KPQkdCY0J/QkNCg0JjQnyDQktCe0IjQmtCeCivQo9CR0JjQn9CQ0KDQmNCfINCX0JTQoNCQ0JLQmtCeCivQo9CR0JjQn9CQ0KDQmNCfINCX0J7QoNCQ0J0KK9Cj0JHQntCg0JrQkCDQqNCQ0J3QlNCe0KAKK9Cj0JHQntCg0JrQkCDQnNCQ0KDQotCe0J0KK9Cj0JHQntCg0JrQkCDQodCi0JXQktCa0JAKK9Cj0JHQntCg0IrQmCDQqNCQ0J3QlNCe0KAKK9Cj0JHQntCg0IrQmCDQkNCd0JTQoNCQ0KgKK9Cj0JHQntCS0JjQiyDQldCS0JAKK9Cj0JHQntCS0JjQiyDQiNCV0KTQotCQCivQo9CR0J7QktCY0Isg0IjQntCS0JjQptCQCivQo9CR0J7QktCY0Isg0JzQkNCg0JrQngor0KPQkdCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cj0JHQntCS0JjQiyDQn9CV0KLQoNCQCivQo9CR0J7QktCY0Isg0KDQkNCI0JrQngor0KPQptCQ0Igg0JLQm9CQ0JTQmNCc0JjQoAor0KPQlNCY0KbQmtCYINCf0JDQiNCQCivQo9CU0JjQptCa0Jgg0KHQm9CQ0JLQmNCm0JAKK9Cj0JTQmNCm0JrQmCDQodCg0JXQlNCe0IjQlQor0KPQlNCe0JLQmNCn0JjQiyDQkdCe0JHQkNCdCivQo9CU0J7QktCY0KfQmNCLINCR0KDQkNCd0JrQngor0KPQlNCe0JLQmNCn0JjQiyDQmNCS0JDQnQor0KPQlNCe0JLQmNCn0JjQiyDQnNCe0JzQmNCgCivQo9CU0J7QktCY0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cj0JTQntCS0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQo9CU0J7QktCY0KfQmtCYINCR0KDQkNCd0JrQniDQm9CV0JrQkNCgCivQo9CU0J7QktCY0KfQmtCYINCI0KPQm9Ca0JAKK9Cj0JTQntCS0JjQp9Ca0Jgg0J7Qm9CT0JjQptCQINCU0KAKK9Cj0JTQntCS0JjQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQnQor0KPQlNCe0JLQmNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQo9CU0KDQmNCI0JAg0J/QldCi0JDQoAor0KPQlNCS0JDQoNCU0Jgg0JrQkNCg0JvQngor0KPQk9CQ0KDQp9CY0J3QkCDQkdCe0KDQmNCh0JvQkNCSCivQo9CT0JDQoNCn0JjQndCQINCU0KDQkNCT0JDQnQor0KPQk9CQ0KDQp9CY0J3QkCDQmNCb0JjQiNCQCivQo9CT0JDQoNCQ0Jog0ILQntCg0ILQlQor0KPQk9CQ0KDQkNCaINCR0J7QltCeCivQo9CT0JDQoNCQ0Jog0JTQoNCQ0JPQkNCdCivQo9CT0JDQoNCQ0Jog0JTQo9Co0JDQnQor0KPQk9CQ0KDQkNCaINCf0JXQotCQ0KAKK9Cj0JPQkNCg0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KPQk9CQ0KDQmtCe0JLQmNCLINCI0JXQm9CQCivQo9CT0JDQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQo9CT0JDQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQo9CT0InQldCo0JjQiyDQkdCe0KjQmtCeCivQo9CT0InQldCo0JjQiyDQpdCY0JvQlNCQCivQo9CT0KDQp9CY0Isg0JLQo9Ca0JjQptCQCivQo9CT0KDQldCo0JjQiyDQn9CV0KLQkNCgCivQo9CT0KDQldCcINCc0JDQoNCY0IjQkAor0KPQk9Cg0JXQnCDQoNCQ0JTQntCS0JDQnQor0KPQk9Cg0JXQnSDQnNCY0JvQntCg0JDQlAor0KPQk9Cg0JXQnSDQn9CV0KLQkNCgCivQo9CT0KDQldCd0JjQiyDQm9CQ0KHQm9CeCivQo9CT0KDQldCd0JjQiyDQnNCY0KXQkNCJCivQo9CT0KDQldCd0J7QktCY0Isg0JLQo9Cn0JjQiwor0KPQk9Cg0JXQndCe0JLQmNCLINCS0KPQiNCQ0JTQmNCdCivQo9CT0KDQmNCm0JAg0JTQoNCQ0JPQkNCdCivQo9CT0KDQmNCm0JAg0KHQoNCV0IvQmtCeCivQo9CT0KDQmNCdINCY0JvQmNCI0JAKK9Cj0JPQoNCY0J0g0JzQmNCb0J7QktCQ0J0KK9Cj0JPQoNCY0J3Qp9CY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cj0JPQoNCY0J3Qp9CY0Isg0JTQntCR0KDQmNCb0JAKK9Cj0JPQoNCY0J3Qp9CY0Isg0JzQmNCb0JjQktCe0IgKK9Cj0JPQoNCY0J3Qp9CY0Isg0JzQmNCg0IjQkNCd0JAg0JTQoAor0KPQk9Cg0JjQndCn0JjQiyDQodCi0JXQktCQ0J0KK9Cj0JPQoNCY0J3Qp9CY0Isg0JLQm9CQ0JTQkCDQlNCY0J/QmyDQmNCd0JMKK9Cj0JPQoNCY0J3QntCSINCC0KPQoNCY0KbQkAor0KPQk9Cg0JjQndCe0JIg0JTQntCR0KDQmNCb0JAKK9Cj0JPQoNCY0J3QntCSINCc0JjQm9CY0KbQkAor0KPQk9Cg0JjQndCe0JIg0J3QkNCU0JAKK9Cj0JPQoNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQo9CT0KDQndCe0JIg0JfQntCg0JjQptCQCivQo9Cl0JXQoCDQktCV0KDQkAor0KPQpdCb0JDQoNCY0Jog0JXQm9CY0JfQkNCR0JXQotCQCivQo9Cl0JvQkNCg0JjQmiDQm9CQ0JTQmNCh0JvQkNCSCivQo9Cl0JvQkNCg0JjQmiDQodCi0JXQktCQ0J0KK9Cj0KXQntCgINCf0JXQotCQ0KAKK9Cj0Igg0JzQkNCg0KLQntCdCivQo9CI0KfQmNCLINCR0JvQkNCWCivQo9CI0KfQmNCLINCi0J7QnNCQCivQo9CI0JTQmNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cj0IjQpNCQ0JvQo9CoINCS0JXQm9CY0JzQmNCgCivQo9CI0KTQkNCb0KPQqNCYINCC0KPQoNCQCivQo9CI0KTQkNCb0KPQqNCYINCI0JDQndCa0J4KK9Cj0IjQpNCQ0JvQo9Co0Jgg0IjQo9Cb0JjQiNCQ0J0KK9Cj0IjQpNCQ0JvQo9Co0Jgg0InQo9CR0J7QnNCY0KAKK9Cj0IjQpNCQ0JvQo9Co0Jgg0JzQmNCg0J7QodCb0JDQkgor0KPQiNCk0JDQm9Cj0KjQmCDQndCY0JrQntCb0JAKK9Cj0IjQpNCQ0JvQo9Co0Jgg0KHQmNCb0JLQldCh0KLQldCgCivQo9CI0KTQkNCb0KPQqNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cj0IjQpNCV0InQkNCdINCc0JjQm9CQ0J0KK9Cj0IjQpdCQ0JfQmCDQkdCe0KDQmNCo0JrQkAor0KPQiNCl0JDQl9CYINCY0JLQkNCdCivQo9CI0KXQkNCX0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cj0IjQpdCQ0JfQmCDQm9CQ0JTQmNCh0JvQkNCSCivQo9CI0KXQkNCX0Jgg0JzQmNCg0JrQngor0KPQiNCl0JXQidCYINCI0J7QktCQ0J3QmtCQCivQo9CI0KXQldCJ0Jgg0JzQmNCl0JDQiQor0KPQiNCb0JDQmtCe0Kgg0JrQkNCg0JvQngor0KPQiNCS0JDQoNCYINCT0JDQkdCe0KAKK9Cj0IjQktCQ0KDQmCDQmtCQ0KLQkNCb0JjQnQor0KPQmtCQ0KfQldCaINCS0JXQoNCa0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0KfQldCU0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0JTQldCh0JDQndCa0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0IjQldCb0JXQndCQCivQo9Ca0KDQntCf0JjQndCQINCI0J7QktCQ0J3QmtCQCivQo9Ca0KDQntCf0JjQndCQINCI0J7QktCQ0J0KK9Cj0JrQoNCe0J/QmNCd0JAg0JzQmNCb0J7QktCQ0J0KK9Cj0JrQoNCe0J/QmNCd0JAg0J3QldCR0J7QiNCo0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0J/QkNCd0KLQngor0KPQmtCg0J7Qn9CY0J3QkCDQotCe0JzQmNCh0JvQkNCSCivQo9Cb0JXQnNCV0Jog0ILQo9Cg0J4KK9Cj0JvQmNCLINCW0JXQidCa0JAKK9Cj0JvQmNCLINCC0J7QoNCC0JUKK9Cj0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQo9Cb0JjQiyDQlNCe0JHQoNCe0KHQm9CQ0JIKK9Cj0JvQmNCLINCc0JjQm9CQ0J0KK9Cj0InQkNCg0JXQktCY0Isg0J/QldCg0J4KK9Cj0JzQldCaINCc0JDQoNCT0JjQotCQCivQo9Cc0JXQmiDQnNCY0JrQm9Ce0KgKK9Cj0JzQmNCn0JXQktCY0Isg0J/QldCg0JAKK9Cj0JzQmNCL0JXQktCY0Isg0JbQldCJ0JrQngor0KPQnNCY0IvQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KPQnNCY0IvQldCS0JjQiyDQnNCY0KDQmtCeCivQo9Cc0JjQi9CV0JLQmNCLINCc0JvQkNCU0JXQnQor0KPQndCn0JDQndCY0J0g0JHQntCI0JDQnQor0KPQndCn0JDQndCY0J0g0JTQo9Co0JDQnQor0KPQndCT0JDQoCDQotCY0KXQntCc0JjQoAor0KPQndCT0KPQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KPQndCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cj0J3QmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0KPQoNCQ0Kcg0KjQkNCd0JTQntCgCivQo9Cg0JDQpyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KPQoNCQ0Kcg0JTQkNCd0JjQptCQCivQo9Cg0JDQpyDQk9CY0JfQldCb0JAKK9Cj0KDQkNCnINCY0KjQotCS0JDQnQor0KPQoNCQ0Kcg0KDQntCX0JDQm9CY0IjQkAor0KPQoNCR0JDQnSDQgtCV0KDQggor0KPQoNCR0JDQnSDQgtCe0KDQgtCVCivQo9Cg0JHQkNCdINCQ0J3QkAor0KPQoNCR0JDQnSDQpdCe0KDQktCQ0KIKK9Cj0KDQkdCQ0J0g0JjQqNCi0JLQkNCdCivQo9Cg0JHQkNCdINCI0JDQndCe0KgKK9Cj0KDQkdCQ0J0g0IjQkNCh0J3QkAor0KPQoNCR0JDQnSDQnNCY0KXQkNCJCivQo9Cg0JHQkNCdINCc0JjQpdCQ0IkKK9Cj0KDQkdCQ0J0g0J/QkNCS0JXQmwor0KPQoNCR0JDQnSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cj0KDQkdCQ0J0g0KHQotCV0JLQkNCdCivQo9Cg0JHQkNCdINCS0JjQmtCi0J7QoNCY0IjQkAor0KPQoNCR0JDQnSDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cj0KDQkdCQ0J3Qp9CY0Jog0J/QmNCg0J7QqNCa0JAKK9Cj0KDQkdCQ0J3Qp9CY0Jog0KHQmNCb0JLQmNCQCivQo9Cg0JHQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQo9Cg0JTQkNCg0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KPQoNCV0JrQlSDQgtCe0KDQgtCVCivQo9Cg0Jgg0KfQkNCR0JAKK9Cj0KDQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KPQoNCYINCV0JLQkAor0KPQoNCYINCT0JDQkdCe0KAKK9Cj0KDQmCDQmtCQ0KDQm9CeCivQo9Cg0Jgg0JvQkNCh0JvQngor0KPQoNCYINCf0JDQiNCQCivQo9Cg0Jgg0KHQotCV0JLQkNCdCivQo9Cg0Jgg0KHQotCV0JLQkNCdCivQo9Cg0JrQmNCdINCJ0KPQkdCY0KbQkAor0KPQoNCb0JjQpSDQnNCQ0KDQmNCI0JAKK9Cj0KDQntCo0JXQkiDQltCY0JLQkNCdCivQo9Cg0J7QqNCV0JIg0JHQntCI0JrQkAor0KPQoNCe0KjQldCSINCY0JvQmNCI0JAKK9Cj0KDQntCo0JXQkiDQiNCV0KDQmNCm0JAKK9Cj0KDQntCo0JXQkiDQnNCY0JvQldCd0JrQngor0KPQoNCe0KjQldCSINCc0JjQoNCI0JDQndCQCivQo9Cg0J7QqNCV0JIg0J/QkNCI0JAKK9Cj0KDQntCo0JXQkiDQodCe0KTQmNCI0JAKK9Cj0KDQntCo0JXQkiDQodCi0J7QiNCQ0J0KK9Cj0KDQntCo0JXQkiDQktCV0JvQmNCd0JrQkAor0KPQoNCe0KjQldCS0JjQiyDQltCY0JLQkNCdCivQo9Cg0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQo9Cg0J7QqNCV0JLQmNCLINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cj0KDQntCo0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Cj0KDQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQo9Cg0J7QqNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KPQoNCe0KjQldCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KPQoNCe0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQo9Cg0J7QqNCV0JLQmNCLINCY0JLQkNCdCivQo9Cg0J7QqNCV0JLQmNCLINCb0JXQntCd0JAKK9Cj0KDQntCo0JXQktCY0Isg0InQmNCJ0JDQndCQCivQo9Cg0J7QqNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0KPQoNCe0KjQldCS0JjQiyDQnNCQ0KDQmtCQCivQo9Cg0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cj0KDQntCo0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cj0KDQntCo0JXQktCY0Isg0J3QkNCU0JAKK9Cj0KDQntCo0JXQktCY0Isg0KDQo9CW0JjQptCQCivQo9Cg0J7QqNCV0JLQmNCLINCh0KDQgtCQCivQo9Cg0J7QqNCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQo9Cg0J7QqNCV0JLQmNCLINCS0JjQlNCe0IjQmtCeCivQo9Cg0J7QqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cj0KDQntCo0JXQktCY0Isg0JfQntCg0JjQptCQCivQo9Cg0KHQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cj0KDQodCj0JvQldCh0JrQoyDQpNCb0J7QoNCY0J0KK9Cj0KDQodCj0JvQldCh0JrQoyDQiNCj0JvQmNCI0JDQnQor0KPQodCa0J7QmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KPQodCa0J7QmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQo9Ch0JrQntCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KPQodCi0JjQiyDQgtCj0KDQkAor0KPQodCi0JjQiyDQndCY0JrQntCb0JAKK9Cj0KHQotCY0Isg0KHQmNCc0JAKK9Cj0KHQotCY0Isg0JLQntCI0JrQngor0KPQotCQ0KjQmCDQp9CQ0JHQkAor0KPQotCI0JXQqNCQ0J3QntCS0JjQiyDQodCY0JzQngor0KPQotCI0JXQqNCY0J3QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KPQotCI0JXQqNCY0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cj0KLQiNCV0KjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KPQotCI0JXQqNCY0J3QntCS0JjQiyDQktCV0KDQkAor0KPQotCe0KDQndCY0Jog0JjQktCQ0J0KK9Cj0KLQntCg0J3QmNCaINCI0J7QktCQ0J0KK9Cj0KLQntCg0J3QmNCaINCa0JDQotCY0KbQkAor0KPQotCe0KDQndCY0Jog0InQo9CR0JjQptCQCivQo9Ci0J7QoNCd0JjQmiDQnNCY0JvQntCoCivQo9Ci0J7QoNCd0JjQmi3QoNCQ0JTQo9Cb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQo9Ci0J7QoNCd0JjQmiDQodCi0JXQktCQ0J0KK9Cj0KLQntCg0J3QmNCaINCh0JLQldCi0J7Ql9CQ0KAKK9Cj0KLQoNCW0JDQnSDQkdCg0JDQndCa0J4KK9Cj0KLQktCY0Isg0JrQntCh0KLQkAor0KPQotCS0JjQiyDQn9CQ0JLQm9CVCivQo9Ci0JLQmNCLINCS0JDQodCQCivQo9Ci0JLQmNCLLdCS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JTQkNCg0JAKK9Cj0JLQkNCb0JjQiyDQkNCd0JPQldCb0JjQndCQCivQo9CS0JDQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cj0JLQkNCb0JjQiyDQlNCj0KjQkNCdCivQo9CS0JDQm9CY0Isg0JTQo9Co0JrQngor0KPQktCQ0JvQmNCLINCb0JDQl9CQ0KAKK9Cj0JLQkNCb0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQo9CS0JDQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KPQktCQ0JvQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KPQktCQ0JvQmNCLINCS0JDQodCQCivQo9CS0JXQoNCY0Isg0ILQo9Cg0JAKK9Cj0JLQldCg0JjQiyDQkdCg0JDQndCa0JAKK9Cj0JLQldCg0JjQiyDQnNCY0JvQkNCdCivQo9CS0JXQoNCY0Isg0JzQmNCb0J7QqAor0KPQktCV0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQo9CS0JXQoNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cj0JLQldCg0JjQiyDQndCY0JrQntCb0JAKK9Cj0JfQkNCY0KAg0JDQm9CY0IjQkAor0KPQl9CV0JjQoNCYINCc0KPQkNCg0JXQnAor0KPQl9CV0JvQkNCmINCC0J7QoNCC0JUKK9Cj0JfQldCb0JDQpiDQgtCe0KDQgtCVCivQo9CX0JXQm9CQ0KYg0ILQntCg0ILQlQor0KPQl9CV0JvQkNCmINCC0J7QoNCC0JUKK9Cj0JfQldCb0JDQpiDQgtCj0KDQmNCm0JAKK9Cj0JfQldCb0JDQpiDQgtCj0KDQngor0KPQl9CV0JvQkNCmINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQo9CX0JXQm9CQ0KYg0JDQm9CV0JrQodCQCivQo9CX0JXQm9CQ0KYg0JHQmNCh0JXQoNCa0JAKK9Cj0JfQldCb0JDQpiDQkdCe0KjQmtCeCivQo9CX0JXQm9CQ0KYg0JHQntCT0JTQkNCdCivQo9CX0JXQm9CQ0KYg0JHQntCT0JTQkNCdCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmtCeCivQo9CX0JXQm9CQ0KYg0KbQktCV0KLQkAor0KPQl9CV0JvQkNCmINCU0JDQoNCY0J3QmtCQCivQo9CX0JXQm9CQ0KYg0JTQldCh0JDQndCa0JAKK9Cj0JfQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9Cj0JfQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9Cj0JfQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9Cj0JfQldCb0JDQpiDQlNCj0KjQkNCd0JrQkAor0KPQl9CV0JvQkNCmINCU0KPQqNCQ0J0KK9Cj0JfQldCb0JDQpiDQlNCj0KjQkNCdCivQo9CX0JXQm9CQ0KYg0JTQo9Co0JDQnQor0KPQl9CV0JvQkNCmINCU0KPQqNCQ0J0KK9Cj0JfQldCb0JDQpiDQldCS0JAKK9Cj0JfQldCb0JDQpiDQk9CQ0JvQmNCd0JAKK9Cj0JfQldCb0JDQpiDQk9Ce0KDQlNCQ0J3QkAor0KPQl9CV0JvQkNCmINCY0JvQmNCI0JAKK9Cj0JfQldCb0JDQpiDQmNCS0JDQnQor0KPQl9CV0JvQkNCmINCI0JXQm9CV0J3QkAor0KPQl9CV0JvQkNCmINCa0J7QodCi0JAKK9Cj0JfQldCb0JDQpiDQm9CQ0JfQkNCgCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQmNCl0JDQiNCb0J4KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JDQnQor0KPQl9CV0JvQkNCmINCc0JjQm9CQ0J0KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JDQnQor0KPQl9CV0JvQkNCmINCc0JjQm9CQ0J0KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JUKK9Cj0JfQldCb0JDQpiDQnNCY0JvQmNCm0JAKK9Cj0JfQldCb0JDQpiDQnNCY0JvQntCoCivQo9CX0JXQm9CQ0KYg0JzQntCc0KfQmNCb0J4KK9Cj0JfQldCb0JDQpiDQndCY0JrQntCb0JAKK9Cj0JfQldCb0JDQpiDQndCY0JrQntCb0JAKK9Cj0JfQldCb0JDQpiDQntCb0JjQktCV0KDQkAor0KPQl9CV0JvQkNCmINCg0JDQlNCc0JjQm9CQCivQo9CX0JXQm9CQ0KYg0KDQkNCU0J7QiNCa0JAKK9Cj0JfQldCb0JDQpiDQoNCV0J3QkNCi0JAKK9Cj0JfQldCb0JDQpiDQodCb0JDQktCa0J4KK9Cj0JfQldCb0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQo9CX0JXQm9CQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0KPQl9CV0JvQkNCmINCh0J7QpNCY0IjQkAor0KPQl9CV0JvQkNCmINCh0KDQgtCQ0J0KK9Cj0JfQldCb0JDQpiDQodCg0ILQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCe0IjQkNCdCivQo9CX0JXQm9CQ0KYg0JLQldCg0JAKK9Cj0JfQldCb0JDQpiDQktCj0IjQngor0KPQl9CV0JvQkNCmINCX0JvQkNCi0JrQngor0KPQl9CV0JvQkNCmINCX0JvQkNCi0JrQngor0KPQl9CV0JvQkNCmINCX0JvQkNCi0JrQngor0KPQl9CV0JvQkNCmINCX0J7QoNCQ0J0KK9Cj0JfQldCb0JDQpiDQl9Ce0KDQkNCdCivQo9CX0JXQm9CQ0KYg0JfQntCg0JDQnQor0KPQl9CV0JvQkNCmINCX0J7QoNCQ0J0KK9Cj0JfQldCb0JDQpiDQl9Ce0KDQkNCdCivQo9CX0JXQm9CQ0KYg0JfQntCg0JDQnQor0KPQl9Ce0KDQntCm0JrQmCDQmNCo0KLQktCQ0J0KK9Cj0JfQo9Cd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0KPQndCe0JLQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cj0JfQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cj0JfQo9Cd0J7QktCY0Isg0JzQmNCi0J4KK9Cj0JfQo9Cd0J7QktCY0Isg0J3QkNCh0KPQpAor0KPQl9Cj0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQo9CX0KPQoNCe0JIg0J7QkdCg0JXQndCY0IjQkAor0KPQl9Cj0KDQntCSINCg0JDQlNCc0JjQm9CQCivQktCQ0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCQ0KfQmNCLINCX0J7QoNCQ0J0KK9CS0JDQp9CY0Jog0IjQntCW0JXQpAor0JLQkNCoINCQ0KLQmNCb0JAKK9CS0JDQqCDQiNCe0KHQmNCfCivQktCQ0Kgg0J/QkNCS0JvQlQor0JLQkNCoINCS0JXQoNCQCivQktCQ0KjQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0JDQqNCQ0Kgg0JzQmNCa0JvQntCoCivQktCQ0KjQkNCoINCe0JvQk9CQCivQktCQ0KjQkNCU0Jgg0KTQldCg0JXQndCmCivQktCQ0KjQkNCU0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQkNCo0JDQlNCYINCS0JDQm9CV0KDQmNCI0JAKK9CS0JDQqNCQ0JvQmNCLINCQ0J3QmtCQCivQktCQ0KjQkNCb0JjQiyDQnNCY0JvQntCoCivQktCQ0KjQkNCb0JjQiyDQntCR0KDQkNCUCivQktCQ0KjQkNCb0JjQiyDQo9Cg0J7QqAor0JLQkNCo0KLQkNCTINCC0J7QoNCC0JUKK9CS0JDQqNCi0JDQkyDQkNCd0JTQoNCQ0KgKK9CS0JDQqNCi0JDQkyDQmNCo0KLQktCQ0J0KK9CS0JDQqNCi0JDQkyDQmNCo0KLQktCQ0J0KK9CS0JDQqNCi0JDQkyDQiNCQ0KHQnNCY0J3QmtCQCivQktCQ0KjQotCQ0JMg0JzQkNCg0JPQmNCi0JAKK9CS0JDQqNCi0JDQkyDQnNCQ0KDQmNCI0JAKK9CS0JDQqNCi0JDQkyDQnNCY0KXQkNCJCivQktCQ0KjQotCQ0JMg0J7Qm9CT0JAKK9CS0JDQqNCi0JDQkyDQoNCj0JbQkAor0JLQkNCo0KLQkNCTINCh0KLQntCI0JDQnQor0JLQkNCW0JjQiyDQlNCQ0J3QmNCm0JAKK9CS0JDQltCY0Isg0IjQntCS0JDQnQor0JLQkNCW0JjQiyDQiNCj0JvQmNCI0JAKK9CS0JDQltCY0Isg0JzQmNCg0JAKK9CS0JDQltCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0JDQltCY0Isg0JLQldCg0JjQptCQCivQktCQ0JbQmNCLINCS0JXQodCV0JvQmNCdCivQktCQ0JbQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0JDQltCe0IrQmCDQkNCd0KLQkNCbCivQktCQ0JbQntCK0Jgg0KDQntCX0JDQm9CY0IjQkAor0JLQkNCm0Jgg0KjQmNCc0J7QnQor0JLQkNCm0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JLQkNCm0JjQiyDQktCY0JTQldCdCivQktCQ0KbQm9CQ0JLQmNCaINCc0JDQoNCY0IjQkAor0JLQkNCU0JDQodCa0Jgg0KbQldCm0JjQm9CY0IjQkAor0JLQkNCU0JDQodCa0Jgg0InQo9CR0J7QnNCY0KAKK9CS0JDQlNCe0KYg0KTQoNCQ0IrQkAor0JLQkNCU0J7QpiDQmNCS0JjQptCQCivQktCQ0JTQntCmINCI0J7QodCY0J8KK9CS0JDQk9CY0Isg0ILQo9Cg0J4KK9CS0JDQk9Cd0JXQoCDQgtCj0KDQkAor0JLQkNCT0J3QldCgINCQ0J3QlNCg0JjQiNCQCivQktCQ0JPQndCV0KAg0IjQntCh0JjQnwor0JLQkNCT0J3QldCgINCa0JDQoNCb0J4KK9CS0JDQk9Cd0JXQoCDQm9CQ0KHQm9CeCivQktCQ0JPQndCV0KAg0JzQkNCg0JjQiNCQCivQktCQ0JPQndCV0KAg0J7QotCY0JvQmNCI0JAKK9CS0JDQk9CeINCY0KjQotCS0JDQnQor0JLQkNCT0J4g0KHQotCV0JLQkNCdCivQktCQ0JPQo9Cg0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQkNCI0JDQk9CY0Isg0JDQndCC0JXQm9Ca0JAKK9CS0JDQiNCQ0JPQmNCLINCR0J7QqNCa0J4KK9CS0JDQiNCQ0JPQmNCLINCT0J7QoNCU0JDQndCQCivQktCQ0IjQkNCT0JjQiyDQnNCY0JvQkNCdCivQktCQ0IjQkNCT0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JLQkNCI0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQktCQ0IjQkNCT0JjQiyDQodCQ0JLQngor0JLQkNCI0JDQk9CY0Isg0KHQmNCc0JAKK9CS0JDQiNCQ0JPQmNCLINCh0KLQntCI0JDQnQor0JLQkNCI0JDQk9CY0Isg0JfQntCg0JjQptCQCivQktCQ0IjQlNCQINCo0JDQndCU0J7QoAor0JLQkNCI0JTQkCDQqNCQ0J3QlNCe0KAKK9CS0JDQiNCU0JAg0JjQoNCc0JAKK9CS0JDQiNCU0JAg0JvQkNCI0J7QqAor0JLQkNCI0JTQkCDQm9CQ0IjQntCoCivQktCQ0IjQlNCQINCi0JjQkdCe0KAKK9CS0JDQiNCU0JAg0KLQntCc0JjQodCb0JDQkgor0JLQkNCI0JTQmNCLINCW0JjQktCa0J4KK9CS0JDQiNCU0JjQiyDQmNCS0JDQnQor0JLQkNCI0JTQmNCLINCI0J7QktCQ0J0g0JTQoAor0JLQkNCI0JTQmNCLINCI0J7QktCQ0J0g0JTQoAor0JLQkNCI0JTQmNCLINCc0JjQm9CY0KbQkAor0JLQkNCI0JTQmNCLINCc0JjQm9CY0KbQkAor0JLQkNCI0JTQmNCLINCd0JDQlNCQCivQktCQ0IjQlNCY0Isg0J/QldCi0JDQoAor0JLQkNCI0JTQmNCLINCi0JjQpdCe0JzQmNCgCivQktCQ0IjQlNCbINCI0J7QktCQ0J0KK9CS0JDQiNCU0Jsg0JzQmNCg0J7QodCb0JDQkgor0JLQkNCI0JTQm9CVINCI0J7Qm9CQ0J0KK9CS0JDQiNCb0JXQoCDQkNCd0JTQoNCY0IjQkAor0JLQkNCI0J3QqNCi0JDQiNCdINCf0JXQotCQ0KAKK9CS0JDQiNCd0JHQldCg0JPQldCgINCS0JvQkNCU0JjQnNCY0KAKK9CS0JDQiNCd0JHQldCg0JPQldCgINCX0JvQkNCi0JrQngor0JLQkNCI0J3QkdCV0KDQk9CV0KAg0JfQktCe0J3QmNCc0JjQoAor0JLQkNCI0J3Qk9CV0KDQotCd0JXQoCDQoNCQ0JTQntCI0JrQkCDQlNCY0J/QmyDQldCm0KYKK9CS0JDQiNCd0KXQldCf0Jsg0JzQkNCg0JjQkAor0JLQkNCI0J3QpdCV0J/QmyDQntCi0JzQkNCgINCU0JjQn9CbINCY0J3Qkwor0JLQkNCI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQkNCI0KEg0KjQkNCd0JTQntCgCivQktCQ0IjQoSDQkdCg0JDQndCa0J4KK9CS0JDQiNChINCa0JDQoNCb0J4KK9CS0JDQiNChINCa0JDQoNCb0J4KK9CS0JDQiNChINCc0JDQk9CU0JAKK9CS0JDQiNChINCS0JXQoNCY0KbQkAor0JLQkNCI0KHQldCd0JHQldCg0JMg0IjQntCh0JjQnwor0JLQkNCI0KPQmtCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQktCQ0JrQkNCK0JDQpiDQnNCY0JvQmNCm0JAKK9CS0JDQmyDQgtCe0KDQgtCVCivQktCQ0Jsg0JDQndCU0KDQmNCI0JAKK9CS0JDQmyDQldCS0JAKK9CS0JDQmyDQl9Ce0JvQotCQ0J0KK9CS0JDQm9CQ0KUg0IjQkNCd0JrQngor0JLQkNCb0JDQnSDQntCh0KLQntCI0JAKK9CS0JDQm9CQ0J0g0JfQntCg0JDQnQor0JLQkNCb0JTQnNCQINCQ0KDQkdCeCivQktCQ0JvQldCaINCV0JzQmNCb0JjQiNCQCivQktCQ0JvQldCaINCk0KDQkNCK0JAKK9CS0JDQm9CV0J3Qp9CY0Jog0J/QkNCS0JXQmwor0JLQkNCb0JXQndCn0JjQmiDQodCi0JXQktCQ0J0KK9CS0JDQm9CV0J3Qi9CY0Jog0JDQndCU0KDQmNCI0JAKK9CS0JDQm9CV0J3Qi9CY0Jog0IjQkNCdCivQktCQ0JvQldCd0IvQmNCaINCf0JDQktCb0JUKK9CS0JDQm9CV0J3Qi9CY0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JLQkNCb0JXQndCiINCW0KPQltCQ0J3QkAor0JLQkNCb0JXQndCiINCI0JDQndCa0J4KK9CS0JDQm9CV0J3QoiDQiNCQ0J3QmtCeCivQktCQ0JvQldCd0KIg0JvQkNCh0JvQngor0JLQkNCb0JXQndCi0JAg0IjQkNCh0JzQmNCd0JrQkAor0JLQkNCb0JXQndCi0JXQitCYINCI0J7QodCY0J8KK9CS0JDQm9CV0J3QotCV0IrQmCDQiNCj0JvQmNCI0JDQndCQCivQktCQ0JvQldCd0KLQmNCLINCY0JLQkNCdCivQktCQ0JvQldCd0KLQmNCLINCS0JjQmtCi0J7QoAor0JLQkNCb0JXQndCi0JjQiyDQktCY0JrQotCe0KAKK9CS0JDQm9CV0J3QotCY0Jog0J3QmNCa0J7Qm9CQCivQktCQ0JvQldCd0KLQmNCdINCY0JzQoNCVCivQktCQ0JvQldCd0KLQmNCdINCI0KPQptCY0JrQkAor0JLQkNCb0JXQndCi0JjQnSDQodCi0JXQktCQ0J0KK9CS0JDQm9CV0J3QotCY0KDQntCSINCh0KLQldCS0JDQnQor0JLQkNCb0JXQndCi0JjQoNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCQ0JvQldCd0KLQntCS0JjQiyDQiNCe0KHQmNCfCivQktCQ0JvQldCd0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQktCQ0JvQldCd0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQktCQ0JvQldCd0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQktCQ0JvQldCd0KLQntCS0JjQiyDQotCY0JHQntCgCivQktCQ0JvQmNCLINCT0J7QoNCQ0J0KK9CS0JDQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCQ0JvQmNCP0JjQiNCQINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9CS0JDQm9CY0KXQntCg0JAg0IjQntCX0JXQpAor0JLQkNCb0JjQpdCe0KDQkCDQmtCQ0KLQmNCm0JAKK9CS0JDQm9Ca0JDQmCDQiNCe0JbQldCkCivQktCQ0JvQmtCeINCT0JDQktCg0JAKK9CS0JDQm9CeINCT0J7QoNCU0JDQndCQCivQktCQ0JvQniDQiNCe0KHQmNCfCivQktCQ0JvQniDQiNCe0KHQmNCfCivQktCQ0JvQniDQnNCY0KDQmtCeCivQktCQ0JvQniDQodCi0JXQktCQ0J0KK9CS0JDQm9Ce0Jog0ILQntCg0ILQlQor0JLQkNCb0J7QmiDQgtCj0KDQkAor0JLQkNCb0J7QmiDQoNCQ0KLQntCc0JjQoAor0JLQkNCb0KLQldCgINCU0KDQkNCT0JjQitCQCivQktCQ0JvQotCV0KAg0InQmNCJ0JDQndCQCivQktCQ0JvQotCV0KAg0J3QntCg0JHQldCg0KIKK9CS0JDQm9Ci0J3QldCgINCf0JXQotCQ0KAKK9CS0JDQm9Cj0KjQldCaINCI0J7QktCQ0J0KK9CS0JDQm9Cj0KjQldCaINCa0JDQotCY0KbQkAor0JLQkNCb0KPQqNCV0Jog0J/QkNCS0JvQlQor0JLQkNCb0KPQpSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQm9Cj0KUg0IjQkNCd0JrQngor0JLQkNCb0KPQpSDQiNCQ0J3QmtCeCivQktCQ0JvQo9ClINCa0JDQoNCb0J4KK9CS0JDQm9Cj0KUg0JzQmNCl0JDQiNCb0J4KK9CS0JDQnNCR0JDQpSDQktCY0JrQotCe0KDQmNCI0JAKK9CS0JDQnNCe0KjQldCgINCc0JjQoNCI0JDQndCQCivQktCQ0JzQntCo0JXQoCDQn9CQ0JLQm9CVCivQktCQ0JzQn9Ce0JLQkNCmINCI0J7QodCY0J8KK9CS0JDQndCC0JXQmyDQnNCY0JvQkNCdCivQktCQ0J3QlNCV0KDQldCgINCf0JDQmwor0JLQkNCd0JTQntCg0Jgg0JzQkNCg0JjQiNCQCivQktCQ0J3QmNCLINCU0KDQkNCT0KPQotCY0J0KK9CS0JDQndCY0Isg0JrQkNCi0JjQptCQCivQktCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JLQkNCK0KPQoCDQpNCg0JDQitCQCivQktCQ0IrQo9CgINCk0KDQkNCK0JAKK9CS0JDQitCj0KAg0JjQqNCi0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JLQkNCK0KPQoCDQiNCe0JbQldCkCivQktCQ0IrQo9CgINCI0J7QodCY0J8KK9CS0JDQitCj0KAg0JrQkNCg0JvQngor0JLQkNCK0KPQoCDQmtCQ0KDQm9CeCivQktCQ0IrQo9CgINCc0JDQoNCY0IjQkAor0JLQkNCd0JrQniDQiNCQ0KDQntCh0JvQkNCSCivQktCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JLQkNCf0JAg0IjQntCS0JDQndCa0JAKK9CS0JDQn9CQINCc0JjQm9CQ0J0g0JTQoAor0JLQkNCf0JAg0JLQldCg0JAKK9CS0JDQn9CQINCX0J7QoNCQ0J0KK9CS0JDQn9CV0J3QodCa0Jgg0JjQktCQ0J0KK9CS0JDQn9CV0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQktCQ0KDQqNCQ0IrQmCDQmNCg0JXQndCQCivQktCQ0KDQkNCC0JDQndCY0J0g0JzQmNCb0JDQnQor0JLQkNCg0JDQlNCYINCi0JjQkdCe0KAg0JTQoCDQn9Cg0J7QpAor0JLQkNCg0JDQk9CY0Isg0JHQntCT0JTQkNCdCivQktCQ0KDQkNCT0JjQiyDQidCj0JHQmNCm0JAKK9CS0JDQoNCQ0JPQmNCLINCc0JDQoNCY0IjQkAor0JLQkNCg0JDQk9CY0Isg0JzQldCb0JDQndCY0IjQkAor0JLQkNCg0JDQk9CY0Isg0JzQmNCb0JjQptCQCivQktCQ0KDQkNCT0JjQiyDQktCY0IvQldCd0KLQmNCI0JUKK9CS0JDQoNCQ0IjQmNCLINCT0J7QoNCQ0J0KK9CS0JDQoNCQ0IjQmNCLINCT0J7QoNCQ0J0KK9CS0JDQoNCQ0JLQkCDQldCc0JjQm9CY0IjQkNCdCivQktCQ0KDQkdCQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0JLQkNCg0KbQkNCgINCU0JXQodCQ0J3QmtCQCivQktCQ0KDQlNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CS0JDQoNCV0J3QmNCa0JAg0ILQntCa0JAKK9CS0JDQoNCV0J3QmNCa0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCQ0KDQldCd0JjQmtCQINCg0JDQlNCe0IjQmtCQCivQktCQ0KDQldCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CS0JDQoNCT0JAg0KjQkNCd0JTQntCgCivQktCQ0KDQk9CQINCo0JDQndCU0J7QoAor0JLQkNCg0JPQkCDQqNCQ0J3QlNCe0KAKK9CS0JDQoNCT0JAg0KjQkNCd0JTQntCgCivQktCQ0KDQk9CQINCo0JDQndCU0J7QoAor0JLQkNCg0JPQkC3QqNCe0JzQntCC0Jgg0IjQkNCd0J7QqAor0JLQkNCg0JPQkCDQltCQ0KDQmtCeCivQktCQ0KDQk9CQINCC0JXQoNCCCivQktCQ0KDQk9CQINCC0J7QoNCC0JUKK9CS0JDQoNCT0JAg0ILQntCg0ILQlQor0JLQkNCg0JPQkCDQgtCj0JvQkAor0JLQkNCg0JPQkCDQgtCj0KDQkAor0JLQkNCg0JPQkCDQgtCj0KDQkAor0JLQkNCg0JPQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQkNCg0JPQkCDQkNCd0JAKK9CS0JDQoNCT0JAg0JDQndCU0KDQkNCoCivQktCQ0KDQk9CQINCQ0J3QlNCg0JjQiNCQCivQktCQ0KDQk9CQINCQ0J3QlNCg0JjQiNCQCivQktCQ0KDQk9CQINCQ0J3QotCe0J0KK9CS0JDQoNCT0JAg0JDQoNCQ0J3QmtCQCivQktCQ0KDQk9CQINCR0JXQm9CQCivQktCQ0KDQk9CQINCR0JXQm9CQCivQktCQ0KDQk9CQINCR0JjQidCQ0J3QkAor0JLQkNCg0JPQkC3QkdCj0KDQkNCYINCV0KDQltCV0JHQldCiCivQktCQ0KDQk9CQINCU0KDQkNCT0JjQptCQCivQktCQ0KDQk9CQINCU0KPQqNCQ0J3QmtCQCivQktCQ0KDQk9CQINCV0KDQltCY0JrQkAor0JLQkNCg0JPQkCDQpNCV0KDQldCd0KYKK9CS0JDQoNCT0JAg0KTQldCg0JXQndCmCivQktCQ0KDQk9CQINCk0JXQoNCV0J3Qpgor0JLQkNCg0JPQkCDQpNCg0JDQitCQCivQktCQ0KDQk9CQINCk0KDQkNCK0JAKK9CS0JDQoNCT0JAg0KTQoNCQ0IrQngor0JLQkNCg0JPQkCDQpNCg0JDQitCeCivQktCQ0KDQk9CQINCT0JDQkdCe0KAKK9CS0JDQoNCT0JAg0JPQmNCX0JXQm9CQCivQktCQ0KDQk9CQINCl0JXQm9CV0J3QkAor0JLQkNCg0JPQkCDQmNCo0KLQktCQ0J0KK9CS0JDQoNCT0JAg0JjQqNCi0JLQkNCdCivQktCQ0KDQk9CQINCY0KjQotCS0JDQnQor0JLQkNCg0JPQkCDQmNCo0KLQktCQ0J0KK9CS0JDQoNCT0JAg0JjQm9CV0KgKK9CS0JDQoNCT0JAg0JjQnNCg0JUKK9CS0JDQoNCT0JAt0JjQktCQ0J0g0JDQndCT0JXQm9CY0J3QkAor0JLQkNCg0JPQkCDQiNCQ0JrQmNCcCivQktCQ0KDQk9CQINCI0JDQnSDQlNCgCivQktCQ0KDQk9CQINCI0JDQndCe0KgKK9CS0JDQoNCT0JAg0IjQkNCd0J7QqAor0JLQkNCg0JPQkCDQiNCQ0KDQntCh0JvQkNCSCivQktCQ0KDQk9CQINCI0JXQm9CV0J3QkAor0JLQkNCg0JPQkCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JLQkNCg0JPQkCDQiNCe0JbQldCkCivQktCQ0KDQk9CQINCI0J7QltCV0KQKK9CS0JDQoNCT0JAg0IjQntCW0JXQpAor0JLQkNCg0JPQkCDQiNCe0KHQmNCf0JAKK9CS0JDQoNCT0JAg0IjQntCh0JjQnwor0JLQkNCg0JPQkCDQiNCe0KHQmNCfCivQktCQ0KDQk9CQINCI0J7QktCQ0J0KK9CS0JDQoNCT0JAg0IjQo9Cb0JjQiNCQCivQktCQ0KDQk9CQINCa0JDQoNCb0J4KK9CS0JDQoNCT0JAg0JrQkNCi0JDQoNCY0J3QkAor0JLQkNCg0JPQkCDQmtCQ0KLQkAor0JLQkNCg0JPQkC3QmtCb0JjQqNCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JLQkNCg0JPQkCDQmtCe0KDQndCV0JvQmNCI0JAKK9CS0JDQoNCT0JAg0JrQntCg0J3QldCbCivQktCQ0KDQk9CQINCa0J7QodCQ0J3QkAor0JLQkNCg0JPQkCDQm9CQ0JTQmNCh0JvQkNCSCivQktCQ0KDQk9CQINCb0JDQiNCe0KgKK9CS0JDQoNCT0JAg0JvQkNCI0J7QqAor0JLQkNCg0JPQkCDQm9CQ0KHQm9CeCivQktCQ0KDQk9CQINCb0JDQodCb0J4KK9CS0JDQoNCT0JAg0JvQkNCh0JvQngor0JLQkNCg0JPQkCDQm9CQ0KHQm9CeCivQktCQ0KDQk9CQINCJ0KPQn9Ca0JAKK9CS0JDQoNCT0JAg0JzQkNCg0JPQmNCi0JAKK9CS0JDQoNCT0JAg0JzQkNCg0JjQiNCQCivQktCQ0KDQk9CQINCc0JDQoNCY0IjQkAor0JLQkNCg0JPQkCDQnNCQ0KDQmNCI0JAKK9CS0JDQoNCT0JAg0JzQmNCl0JDQiNCb0J4KK9CS0JDQoNCT0JAg0JzQmNCl0JDQiNCb0J4KK9CS0JDQoNCT0JAg0JzQmNCl0JDQiQor0JLQkNCg0JPQkCDQnNCY0KDQmtCeCivQktCQ0KDQk9CQINCc0JjQoNCe0J0KK9CS0JDQoNCT0JAg0JzQmNCg0J7QodCb0JDQkgor0JLQkNCg0JPQkCDQndCY0JrQntCb0JAKK9CS0JDQoNCT0JAg0J7Qm9CT0JAKK9CS0JDQoNCT0JAg0J/QkNCbCivQktCQ0KDQk9CQINCf0JDQmwor0JLQkNCg0JPQkCDQn9CV0KLQkNCgCivQktCQ0KDQk9CQINCf0JXQotCQ0KAKK9CS0JDQoNCT0JAg0J/QldCi0JXQoCDQlNCY0J/QmyDQmNCd0JMKK9CS0JDQoNCT0JAg0KDQkNCh0KLQmNCh0JvQkNCSCivQktCQ0KDQk9CQINCg0J7Ql9CQ0JvQmNCI0JAKK9CS0JDQoNCT0JAg0KDQntCX0JDQm9CY0IjQkAor0JLQkNCg0JPQkCDQodCb0JDQktCY0KbQkAor0JLQkNCg0JPQkCDQodCi0JXQktCQ0J0KK9CS0JDQoNCT0JAg0KHQotCV0JLQkNCdCivQktCQ0KDQk9CQINCh0KLQiNCV0J/QkNCdCivQktCQ0KDQk9CQINCi0JjQkdCe0KAKK9CS0JDQoNCT0JAg0KLQmNCR0J7QoAor0JLQkNCg0JPQkCDQktCV0KDQkAor0JLQkNCg0JPQkCDQktCV0KDQkAor0JLQkNCg0JPQkCDQktCV0KDQntCd0JjQmtCQCivQktCQ0KDQk9CQINCS0JvQkNCU0JjQodCb0JDQkgor0JLQkNCg0JPQkCDQktCb0JDQodCi0JAKK9CS0JDQoNCT0JAg0JfQntCb0KLQkNCdCivQktCQ0KDQk9CQINCX0J7Qm9Ci0JDQnQor0JLQkNCg0JPQldCmINCY0JLQkNCdCivQktCQ0KDQpdCe0JvQmNCaINCQ0JTQkNCcCivQktCQ0KDQmNCL0JDQmiDQkdCe0JbQngor0JLQkNCg0JjQi9CQ0Jog0JTQkNCg0JjQndCa0JAKK9CS0JDQoNCI0KMg0JvQkNCh0JvQngor0JLQkNCg0IjQoyDQnNCQ0KDQmNCI0JAKK9CS0JDQoNCI0KMg0KLQldCg0JXQl9CQCivQktCQ0KDQmtCQ0Kgg0JjQktCQ0J0KK9CS0JDQoNCc0JDQlyDQmNCh0JzQldCiCivQktCQ0KDQnNCV0ILQkCDQgtCe0KDQgtCVCivQktCQ0KDQnNCj0JbQkCDQnNCQ0IvQkNCoCivQktCQ0KDQndCY0KbQkCDQmNCS0JDQnQor0JLQkNCg0J3QmNCm0JAg0J/QldCi0JDQoAor0JLQkNCg0IrQoyDQkNCd0KPQqNCa0JAKK9CS0JDQoNCK0KMg0JPQmNCX0JXQm9CQCivQktCQ0KDQitCjINCY0JvQntCd0JAKK9CS0JDQoNCd0J7QoSDQnNCQ0KDQotCe0J0KK9CS0JDQoNCd0KPQoSDQiNCe0JbQldCkCivQktCQ0KDQntCo0KfQmNCLINCh0J/QkNCh0JXQndCY0IjQkAor0JLQkNCg0J7QqNCYINCT0JDQkdCg0JjQldCb0JAKK9CS0JDQoNCe0KjQmCDQiNCe0JLQkNCdCivQktCQ0KDQntCo0Jgg0KHQmNCb0JDQoNCUCivQktCQ0KHQldCb0JXQmiDQqNCi0JXQpNCQ0J0KK9CS0JDQodCV0JvQldCaINCh0KLQldCS0JDQnQor0JLQkNCh0JXQm9CV0Jog0KHQotCV0JLQkNCdCivQktCQ0KHQldCb0JXQmiDQktCQ0KHQmNCJCivQktCQ0KHQmNCLINCW0JXQidCa0J4KK9CS0JDQodCY0Isg0JbQmNCS0JrQkAor0JLQkNCh0JjQiyDQltCY0JLQmtCeCivQktCQ0KHQmNCLINCW0JjQktCa0J4KK9CS0JDQodCY0Isg0JbQmNCS0JrQngor0JLQkNCh0JjQiyDQgtCe0JrQkAor0JLQkNCh0JjQiyDQgtCe0KDQgtCVCivQktCQ0KHQmNCLINCC0J7QoNCC0JUKK9CS0JDQodCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JDQodCY0Isg0JDQndCY0KbQkAor0JLQkNCh0JjQiyDQkNCd0JrQmNCm0JAKK9CS0JDQodCY0Isg0JHQntCI0JDQndCQCivQktCQ0KHQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0JDQodCY0Isg0JHQntCg0JjQktCe0IgKK9CS0JDQodCY0Isg0JHQoNCQ0J3QmtCeCivQktCQ0KHQmNCLINCm0JLQldCi0JrQngor0JLQkNCh0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQkNCh0JjQiyDQlNCe0JHQoNCY0JLQntCICivQktCQ0KHQmNCLINCU0KDQkNCT0JDQndCQCivQktCQ0KHQmNCLINCU0KDQkNCT0JDQnQor0JLQkNCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQkNCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQkNCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQkNCh0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCQ0KHQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0JDQodCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JLQkNCh0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCQ0J0KK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCQ0J0KK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCY0KbQkAor0JLQkNCh0JjQiyDQlNCj0KjQmtCeINCd0J7QktCY0J3QkNCgCivQktCQ0KHQmNCLINCU0KPQkdCg0JDQktCa0JAKK9CS0JDQodCY0Isg0JXQm9CV0J3QkAor0JLQkNCh0JjQiyDQk9Ce0KDQkNCdCivQktCQ0KHQmNCLINCT0J7QoNCU0JDQndCQCivQktCQ0KHQmNCLINCT0J7QoNCU0JDQndCQCivQktCQ0KHQmNCLINCT0J7QoNCU0JjQptCQCivQktCQ0KHQmNCLINCI0JDQmtCe0JIKK9CS0JDQodCY0Isg0IjQkNCd0JAKK9CS0JDQodCY0Isg0IjQkNCd0JrQngor0JLQkNCh0JjQiyDQiNCV0JvQmNCm0JAKK9CS0JDQodCY0Isg0IjQntCS0J4KK9CS0JDQodCY0Isg0JrQkNCi0JjQptCQCivQktCQ0KHQmNCLINCa0J7QodCi0JAKK9CS0JDQodCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JLQkNCh0JjQiyDQm9CQ0JfQkNCgCivQktCQ0KHQmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQktCQ0KHQmNCLINCJ0JjQidCQ0J3QkAor0JLQkNCh0JjQiyDQidCj0JHQntCc0JjQoAor0JLQkNCh0JjQiyDQm9Cj0JrQkAor0JLQkNCh0JjQiyDQnNCQ0JrQodCY0JwKK9CS0JDQodCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JLQkNCh0JjQiyDQnNCQ0KDQmtCeCivQktCQ0KHQmNCLINCc0JjQi9CeCivQktCQ0KHQmNCLINCc0JjQpdCQ0JjQm9CeCivQktCQ0KHQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCQ0KHQmNCLINCc0JjQmtCQCivQktCQ0KHQmNCLINCc0JjQm9CQ0J0KK9CS0JDQodCY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQiyDQnNCY0JvQkNCdCivQktCQ0KHQmNCLINCc0JjQm9CQ0J0KK9CS0JDQodCY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgINCf0KDQmNCc0JDQoNCY0KPQoQor0JLQkNCh0JjQiyDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQiyDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JDQodCY0Isg0JzQmNCb0JjQndCa0J4KK9CS0JDQodCY0Isg0JzQmNCb0J7QqAor0JLQkNCh0JjQiyDQnNCY0JvQntCoCivQktCQ0KHQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCQ0KHQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCQ0KHQmNCLINCc0JjQm9Cj0KLQmNCdCivQktCQ0KHQmNCLINCc0JjQntCU0KDQkNCTCivQktCQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQktCQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQktCQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQktCQ0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JLQkNCh0JjQiyDQndCQ0JTQkAor0JLQkNCh0JjQiyDQndCQ0JTQkAor0JLQkNCh0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQiyDQndCY0JrQntCb0JAKK9CS0JDQodCY0Isg0J3QntCS0JDQmgor0JLQkNCh0JjQiyDQndCe0JLQkNCaCivQktCQ0KHQmNCLINCd0J7QktCQ0JoKK9CS0JDQodCY0Isg0J7Qm9CT0JAKK9CS0JDQodCY0Isg0J7Qm9CT0JjQptCQCivQktCQ0KHQmNCLINCe0KHQotCe0IjQkAor0JLQkNCh0JjQiyDQntCh0KLQntCI0JAKK9CS0JDQodCY0Isg0J/QkNCI0JAKK9CS0JDQodCY0Isg0J/QldCg0J4KK9CS0JDQodCY0Isg0J/QldCi0JDQoAor0JLQkNCh0JjQiyDQn9CV0KLQkNCgCivQktCQ0KHQmNCLLdCf0J7Qn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0JLQkNCh0JjQiyDQn9Cg0JLQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JLQkNCh0JjQiyDQoNCQ0JTQmNCm0JAKK9CS0JDQodCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0JDQodCY0Isg0KDQkNCU0J7QiNCVCivQktCQ0KHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0JDQodCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0JDQodCY0Isg0KDQkNCi0JrQngor0JLQkNCh0JjQiyDQoNCQ0JLQmNCm0JAKK9CS0JDQodCY0Isg0KHQkNCS0JAKK9CS0JDQodCY0Isg0KHQkNCS0JAKK9CS0JDQodCY0Isg0KHQkNCS0JAKK9CS0JDQodCY0Isg0KHQldCa0KPQm9CQCivQktCQ0KHQmNCLINCh0JvQkNCS0JjQptCQCivQktCQ0KHQmNCLINCh0JvQkNCS0JrQngor0JLQkNCh0JjQiyDQodCb0JDQktCa0J4KK9CS0JDQodCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQkNCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCQ0KHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JDQodCY0Isg0KHQndCV0JbQkNCd0JAKK9CS0JDQodCY0Isg0KHQntCk0JjQiNCQCivQktCQ0KHQmNCLINCh0KDQldCi0JrQngor0JLQkNCh0JjQiyDQodCi0JDQndCY0KjQkAor0JLQkNCh0JjQiyDQodCi0JXQktCQ0J0KK9CS0JDQodCY0Isg0KHQotCV0JLQkNCdCivQktCQ0KHQmNCLINCh0KLQldCS0JDQnQor0JLQkNCh0JjQiyDQodCi0JXQktCQ0J0KK9CS0JDQodCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQkNCh0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCQ0KHQmNCLINCi0JjQpdCe0JzQmNCgCivQktCQ0KHQmNCLINCi0JjQndCa0JAKK9CS0JDQodCY0Isg0KLQntCo0JAKK9CS0JDQodCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQkNCh0JjQiyDQktCV0JvQmNCc0JjQoAor0JLQkNCh0JjQiyDQktCV0JvQmNCc0JjQoAor0JLQkNCh0JjQiyDQktCV0KHQldCb0JjQnQor0JLQkNCh0JjQiyDQktCY0JTQkAor0JLQkNCh0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0JLQkNCh0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCQ0KHQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JDQodCY0Isg0JfQlNCg0JDQktCa0J4KK9CS0JDQodCY0Isg0JfQntCg0JDQnQor0JLQkNCh0JjQiyDQl9Ce0KDQmNCm0JAKK9CS0JDQodCY0JvQp9CY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JLQkNCh0JjQm9CV0KHQmtCYINCR0KDQkNCd0JrQngor0JLQkNCh0JjQm9CY0KjQmNCdINCQ0J3QotCe0J0KK9CS0JDQodCY0JvQmNCo0JjQnSDQnNCY0JvQkNCdCivQktCQ0KHQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQodCY0JvQmNCLINCU0JDQndCY0KbQkAor0JLQkNCh0JjQm9CY0Isg0JTQoNCQ0JPQkAor0JLQkNCh0JjQm9CY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0JvQmNCLINCc0JjQoNCQCivQktCQ0KHQmNCb0JjQiyDQndCY0JrQntCb0JAKK9CS0JDQodCY0JvQmNCLINCg0JDQiNCa0J4KK9CS0JDQodCY0JvQmNCLINCh0KLQldCS0JDQnQor0JLQkNCh0JjQm9CY0Isg0KLQntCU0JUKK9CS0JDQodCY0JvQmNCLINCS0JXQodCd0JAKK9CS0JDQodCY0JvQmNCLINCS0J7QiNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQktCQ0KHQmNCJ0KfQmNCdINCW0JjQktCa0J4KK9CS0JDQodCY0InQldCSINCQ0J3QkAor0JLQkNCh0JjQidCV0JIg0JTQldCI0JDQnQor0JLQkNCh0JjQidCV0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCQ0KHQmNCJ0JXQkiDQiNCV0JvQmNCm0JAKK9CS0JDQodCY0InQldCSINCI0J7QktCQ0J0KK9CS0JDQodCY0InQldCSINCI0J7QktCQ0J0KK9CS0JDQodCY0InQldCSINCJ0KPQkdCY0KbQkAor0JLQkNCh0JjQidCV0JIg0JzQkNCg0JAKK9CS0JDQodCY0InQldCSINCc0JjQm9Ce0KDQkNCUCivQktCQ0KHQmNCJ0JXQkiDQnNCY0KDQntCJ0KPQkQor0JLQkNCh0JjQidCV0JIg0JzQmNCi0JAKK9CS0JDQodCY0InQldCSINCg0JDQlNCe0JLQkNCdCivQktCQ0KHQmNCJ0JXQkiDQodCf0JDQodCe0IjQlQor0JLQkNCh0JjQidCV0JIg0KHQotCQ0J3QntCI0JUKK9CS0JDQodCY0InQldCSINCi0JDQnNCQ0KDQkAor0JLQkNCh0JjQidCV0JIg0JfQlNCg0JDQktCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQqNCQ0KDQm9Ce0KLQkAor0JLQkNCh0JjQidCV0JLQmNCLINCW0JjQktCe0KLQkAor0JLQkNCh0JjQidCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0JDQodCY0InQldCS0JjQiyDQgtCj0KDQkAor0JLQkNCh0JjQidCV0JLQmNCLLdCQ0IvQkNCd0KHQmtCYINCY0JLQkNCd0JAKK9CS0JDQodCY0InQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQkNCh0JjQidCV0JLQmNCLINCQ0J3QlNCg0JXQiNCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0KbQktCV0KLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JTQkNCd0JjQptCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CS0JDQodCY0JvQiNCV0JLQmNCLINCU0KPQqNCY0KbQkAor0JLQkNCh0JjQidCV0JLQmNCLINCT0JvQmNCT0J7QoAor0JLQkNCh0JjQidCV0JLQmNCLINCT0J7QiNCQ0J0KK9CS0JDQodCY0InQldCS0JjQiyDQk9Ce0IjQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JPQoNCe0JfQlNCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0IjQkNCS0J7QoNCa0JAKK9CS0JDQodCY0InQldCS0JjQiyDQiNCj0JvQmtCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JvQldCf0JAKK9CS0JDQodCY0InQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCc0JDQoNCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQnNCQ0KDQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCb0JXQndCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQidCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0JvQntCoCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0KDQkAor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JDQodCY0InQldCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0J3QkNCU0JAKK9CS0JDQodCY0InQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCd0JXQktCV0J3QmtCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCQ0KHQmNCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCQ0KHQmNCJ0JXQktCY0Isg0J7Qm9CT0JAKK9CS0JDQodCY0InQldCS0JjQiyDQntCh0KLQntCI0JAKK9CS0JDQodCY0InQldCS0JjQiyDQn9CV0KLQkNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0J/QldCi0JDQoAor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQlNCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0KDQkNCU0JXQndCa0JAKK9CS0JDQodCY0InQldCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0JDQodCY0InQldCS0JjQiyDQoNCQ0JTQngor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQiNCQINCd0J7QktCY0J3QkNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0KDQkNCI0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCh0JjQnNCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JLQkNCh0JjQidCV0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0KLQntCo0JAKK9CS0JDQodCY0InQldCS0JjQiyDQo9Cc0JrQkAor0JLQkNCh0JjQidCV0JLQmNCLINCS0JXQoNCY0KbQkAor0JLQkNCh0JjQidCV0JLQmNCLINCS0KPQmtCY0KbQkAor0JLQkNCh0JjQidCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JfQm9CQ0KLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JfQm9CQ0KLQntCI0JUKK9CS0JDQodCY0InQldCS0JjQiyDQl9Ce0KDQkNCdCivQktCQ0KHQmNCJ0JXQktCh0JrQmCDQktCQ0KHQmNCb0JjQiNCVCivQktCQ0KHQmNCdINCC0J7QoNCC0JUKK9CS0JDQodCY0J0g0ILQntCg0ILQlQor0JLQkNCh0JjQnSDQkNCd0ILQldCb0JrQkAor0JLQkNCh0JjQnSDQkNCg0JDQndCa0JAKK9CS0JDQodCY0J0g0JHQntCg0JjQktCe0IjQlQor0JLQkNCh0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQodCY0J0g0JTQoNCQ0JPQkNCd0JAKK9CS0JDQodCY0J0g0JTQoNCQ0JPQntCc0JjQoAor0JLQkNCh0JjQnSDQiNCQ0KHQnNCY0J3QkAor0JLQkNCh0JjQnSDQiNCV0JvQldCd0JAKK9CS0JDQodCY0J0g0IjQldCS0KDQntCh0JjQnNCQCivQktCQ0KHQmNCdINCI0KPQm9Ca0JAKK9CS0JDQodCY0J0g0JvQkNCX0JDQoAor0JLQkNCh0JjQnSDQidCj0JHQmNCd0JrQkAor0JLQkNCh0JjQnSDQnNCQ0KDQmNCm0JAKK9CS0JDQodCY0J0g0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0J0g0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0J0g0J3QldCU0JXQidCa0J4KK9CS0JDQodCY0J0g0J7Qm9CT0JjQptCQCivQktCQ0KHQmNCdINCf0JDQktCb0JUKK9CS0JDQodCY0J0g0J/QldCi0JDQoAor0JLQkNCh0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JLQkNCh0JjQnSDQodCi0JXQktCQ0J0KK9CS0JDQodCY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQktCQ0KHQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CS0JDQodCY0J0g0KLQntCU0J7QoAor0JLQkNCh0JjQnSDQl9Ce0KDQkAor0JLQkNCh0JrQniDQktCV0KDQkAor0JLQkNCh0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQkNCh0JrQoNCh0JjQiyDQodCQ0JLQldCi0JAKK9CS0JDQodCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCQ0KHQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0JDQodCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCQ0KHQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQkNCh0J7QktCY0Isg0KHQm9CQ0JLQmNCc0JjQoNCa0JAKK9CS0JDQotCQ0IjQmCDQgtCj0JvQkAor0JLQkNCi0JjQiyDQnNCQ0KDQiNCQ0J0KK9CS0JDQotCY0Isg0JzQkNCg0JrQngor0JLQkNCi0JjQiyDQnNCY0KDQkNCoCivQktCQ0KLQmNCLINCd0JjQmtCe0JvQkAor0JLQkNCi0J7QktCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQktCQ0KLQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CS0JDQo9Cg0JjQp9CQ0Jog0JrQkNCi0JDQm9CY0J0KK9CS0JDQktCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9CS0JDQktCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9CS0JDQktCQ0J0g0JzQm9CQ0JTQldCd0JrQngor0JLQkNCS0JDQnSDQn9CQ0JLQm9CVCivQktCQ0JLQkNCdINCh0JvQkNCS0JrQngor0JLQkNCS0JjQiyDQiNCe0JLQkNCdCivQktCQ0JLQoNCQINCf0KDQldCU0KDQkNCTCivQktCQ0JLQoNCY0J0g0IjQntCh0JjQnwor0JLQkNCS0KDQmNCdINCf0JXQotCQ0KAKK9CS0JTQntCS0JjQkNCaINCR0JXQoNCd0JDQoNCUCivQktCV0KfQldCYINCI0J7QltCV0KQKK9CS0JXQp9CV0Jgg0IjQntCh0JjQnwor0JLQldCn0JXQmCDQidCY0InQkNCd0JAKK9CS0JXQp9CV0IjQmCDQiNCe0JLQkNCdCivQktCV0KfQldCg0JAg0JzQmNCl0JDQiNCb0J4KK9CS0JXQp9CV0KDQmCDQiNCj0JvQmNCj0KEKK9CS0JXQp9CYINCY0KjQotCS0JDQnQor0JLQldCn0JjQiyDQodCS0JXQotCb0JDQndCQCivQktCV0KjQm9CY0JPQkNCIINCh0KLQldCS0JDQnQor0JLQldCo0JvQmNCT0JDQiCDQktCV0KDQkAor0JLQldCo0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQktCV0KjQntCS0JjQiyDQm9CV0J7Qn9Ce0JvQlAor0JLQldCo0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JXQqNCe0JLQmNCLINCh0JzQmNCJ0JDQndCQCivQktCV0KjQntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CS0JXQqNCe0JLQmNCLINCS0KPQmtCh0JDQnQor0JLQldCo0J7QktCY0Isg0JfQntCg0JrQkCDQnNCgCivQktCV0IvQmtCQ0JvQntCSINCC0J7QoNCC0JUKK9CS0JXQi9Ca0JDQm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQi9Ca0JDQm9Ce0JIg0KHQntCk0JjQiNCQINCU0KAg0JvQldCa0JDQoAor0JLQldCR0JXQmyDQktCQ0JvQldCg0JjQiNCQCivQktCV0JHQldCgINCR0J7QltCQ0J3QkAor0JLQldCR0JXQoCDQk9CQ0JHQoNCY0JXQm9CQCivQktCV0JHQldCgINCT0JDQkdCg0JjQldCb0JAKK9CS0JXQkdCV0KAg0JzQmNCb0JjQptCQCivQktCV0JHQldCgINCe0JvQk9CQCivQktCV0JHQldCgINCi0JXQoNCV0JfQmNCI0JAKK9CS0JXQkyDQqNCQ0J3QlNCe0KAKK9CS0JXQkyDQldCd0JjQmtCVCivQktCV0JPQqNCVINCf0JDQktCb0JUKK9CS0JXQk9CV0Jsg0JvQkNCh0JvQngor0JLQldCT0JLQkNCg0Jgg0JTQldCW0JUKK9CS0JXQk9CS0JDQoNCYINCI0KPQm9CY0JDQndCQCivQktCV0JPQktCQ0KDQmCDQnNCY0JrQm9Ce0KgKK9CS0JXQpdCi0JXQoCDQmtCQ0KDQntCJCivQktCV0KXQotCV0KAg0JrQkNCg0J7QiQor0JLQldCl0KLQldCgINCX0J7Qm9Ci0JDQnQor0JLQldCY0J0g0IjQldCa0JAKK9CS0JXQmNCdINCX0J7QoNCa0JAKK9CS0JXQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCV0IjQmNCdINCC0J7QoNCC0JUKK9CS0JXQiNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0JXQiNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCV0IjQmNCdINCU0KPQqNCQ0J3QmtCQCivQktCV0IjQmNCdINCa0KDQmNCh0KLQmNCd0JAKK9CS0JXQiNCd0J7QktCY0Isg0JTQkNCd0JUKK9CS0JXQiNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCV0IjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JLQldCI0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQktCV0IjQndCe0JLQmNCLINCc0JvQkNCU0JXQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0JXQiNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCV0IjQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9CS0JXQiNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JLQldCI0J3QntCS0JjQiyDQodCY0JzQldCe0J0KK9CS0JXQiNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQiNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQiNCd0J7QktCY0Isg0JLQkNCI0JrQngor0JLQldCI0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCV0IjQl9Ce0JLQodCa0Jgg0JLQldCI0JcKK9CS0JXQmtCQ0Kgg0JbQo9CW0JDQndCQCivQktCV0JrQkNCoINCQ0KLQmNCb0JAKK9CS0JXQmtCQ0Kgg0JXQktCQCivQktCV0JrQkNCoINCV0JLQkAor0JLQldCa0JDQqCDQiNCQ0J3QntCoCivQktCV0JrQkNCoINCI0KPQlNCY0KLQkAor0JLQldCa0JDQqCDQm9CQ0KHQm9CeCivQktCV0JrQmNCLINCQ0J3QkAor0JLQldCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JXQmtCY0Isg0JXQm9CV0J3QkAor0JLQldCa0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQktCV0JrQmNCLINCd0JjQmtCe0JvQkAor0JLQldCa0JjQiyDQn9CV0KLQkNCgCivQktCV0JrQmNCLINCg0JDQlNCY0JLQntCICivQktCV0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQktCV0JrQmNCLINCi0JXQoNCV0JfQkAor0JLQldCa0JjQiyDQotCV0KDQldCX0JAKK9CS0JXQmtCY0Isg0JfQktCe0J3QmtCeCivQktCV0JrQntCKINCo0JDQndCU0J7QoAor0JLQldCa0J7QiiDQm9CQ0JTQmNCh0JvQkNCSCivQktCV0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQldCb0KfQldCaINCY0KjQotCS0JDQnQor0JLQldCb0KfQldCaINCI0J7QodCY0J8KK9CS0JXQm9Cn0JXQmiDQktCb0JDQlNCY0JzQmNCgCivQktCV0JvQgtCYINCQ0J3QkAor0JLQldCb0ILQmCDQiNCe0JbQldCkCivQktCV0JvQgtCYINCb0JDQlNCY0KHQm9CQ0JIKK9CS0JXQm9CC0Jgg0JzQkNCg0JjQiNCQCivQktCV0JvQkNCT0JjQiyDQodCQ0IrQkAor0JLQldCb0JDQiNCQINCI0J7QktCeCivQktCV0JvQkdCQ0JHQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JLQldCb0JHQkNCR0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0JXQm9CR0JDQkdCe0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQktCV0JvQldCn0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JXQm9CV0KfQmtCe0JLQmNCLINCV0JLQkAor0JLQldCb0JXQnNCY0KAg0JDQndCY0KbQkAor0JLQldCb0JXQnNCY0KAg0JTQoNCQ0JPQntCJ0KPQkQor0JLQldCb0JXQnNCY0KAg0JjQm9CY0IjQkAor0JLQldCb0JXQnNCY0KAg0JzQmNCb0J7QnNCY0KAKK9CS0JXQm9CV0JzQmNCgINCg0JjQodCi0J4KK9CS0JXQm9CV0JzQmNCgINCg0JjQodCi0J4KK9CS0JXQm9CV0JzQmNCgINCh0JDQktCa0JAKK9CS0JXQm9CV0JzQmNCgINCh0JvQkNCS0JrQngor0JLQldCb0JXQnNCY0KAg0KHQktCV0KLQntCc0JjQoAor0JLQldCb0JXQnNCY0KAg0KLQntCU0J7QoAor0JLQldCb0JXQnNCY0KAg0JLQntCI0JAKK9CS0JXQm9CV0JzQmNCgINCS0J7QiNCa0J4KK9CS0JXQm9CV0JzQmNCg0J7QkiDQodCY0JzQkAor0JLQldCb0JXQndCU0JXQp9CY0Isg0JHQntCW0J4KK9CS0JXQm9CV0J3QlNCV0KfQmNCLINCc0JjQm9CQ0J0KK9CS0JXQm9CV0Jcg0JjQqNCi0JLQkNCdCivQktCV0JvQldCXINCY0KjQotCS0JDQnQor0JLQldCb0KXQldChINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JXQm9Cl0J3QldCgINCI0J7QodCY0J8g0JTQmNCf0Jsg0JjQndCTCivQktCV0JvQmNCn0JrQntCSINCW0JjQktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JIg0JTQkNCd0JjQptCQCivQktCV0JvQmNCn0JrQntCSINCT0KDQntCX0JTQkAor0JLQldCb0JjQp9Ca0J7QkiDQmtCQ0KLQmNCm0JAKK9CS0JXQm9CY0KfQmtCe0JIg0InQmNCJ0JAKK9CS0JXQm9CY0KfQmtCe0JIg0J3QkNCi0JDQqNCQCivQktCV0JvQmNCn0JrQntCSINCg0JDQlNCY0JLQntCICivQktCV0JvQmNCn0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JbQmNCS0J7QotCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQktCV0JvQmNCn0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCV0JvQmNCn0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCV0JvQmNCn0JrQntCS0JjQiyDQndCV0J3QkNCUCivQktCV0JvQmNCn0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCf0JXQoNCh0JjQlNCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQldCb0JjQp9Ca0J7QktCY0Isg0KHQm9CQ0JLQmNCo0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCh0J7QitCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQm9CY0KjQldCaINCT0JDQkdCg0JjQldCb0JAKK9CS0JXQm9CY0KjQldCaINCT0JXQl9CQCivQktCV0JvQmNCo0JXQmiDQmtCQ0KDQm9CeCivQktCV0JvQmNCLINCY0JvQmNCI0JAKK9CS0JXQm9CY0Isg0JfQntCg0JDQnQor0JLQldCb0JjQptCa0Jgg0ILQntCg0ILQlQor0JLQldCb0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQm9CY0KbQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCV0JvQmNCm0JrQmCDQiNCV0JvQmNCm0JAKK9CS0JXQm9CY0KbQmtCYINCI0J7QktCY0KbQkAor0JLQldCb0JjQptCa0Jgg0InQo9CR0J7QnNCY0KAKK9CS0JXQm9CY0KbQmtCYINCc0JjQm9CQ0J0KK9CS0JXQm9CY0KbQmtCYINCc0JjQm9CQ0J0KK9CS0JXQm9CY0KbQmtCYINCc0JjQm9CY0JLQntCICivQktCV0JvQmNCm0JrQmCDQnNCY0J7QlNCg0JDQkwor0JLQldCb0JjQptCa0Jgg0J3QntCS0JDQmgor0JLQldCb0JjQptCa0Jgg0KHQktCV0KLQntCX0JDQoAor0JLQldCb0JjQptCa0Jgg0KPQoNCe0KgKK9CS0JXQm9CY0KbQmtCYINCX0J7QoNCQ0J0KK9CS0JXQm9CY0KbQmtCYINCX0J7QoNCQCivQktCV0JvQmNCI0JAg0InQmNCJ0JDQndCQCivQktCV0JvQmNCI0JAg0KDQldCC0JXQnwor0JLQldCb0JjQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQktCV0JvQmNCa0JjQiyDQkNCd0JAKK9CS0JXQm9CY0JrQmNCLINCU0JDQndCY0KbQkAor0JLQldCb0JjQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0JXQm9CY0JrQmNCLINCh0JjQnNCQCivQktCV0JvQmNCa0JjQiyDQl9Ce0KDQkNCdCivQktCV0JvQmNCc0JjQoNCe0JIg0IjQldCb0JXQndCQCivQktCV0JvQmNCc0JjQoNCe0JIg0JzQmNCb0J7QqAor0JLQldCb0JjQnNCY0KDQntCSINCS0JvQkNCU0JjQnNCY0KAKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0JDQndCT0JXQm9CQCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCR0J7QqNCa0J4KK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCo0JrQngor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCb0JDQl9CQ0KAKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0J3QntCS0JDQmgor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCY0JzQldCe0J0KK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCc0JjQidCQ0J3QkAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQktCe0IjQmNCdCivQktCV0JvQmNCe0KHQmtCYINCh0JDQlNCV0JwKK9CS0JXQm9CY0J7QkiDQj9CV0JzQkNCI0JvQngor0JLQldCb0JjQodCQ0JLQidCV0JIg0JPQntCg0JTQkNCd0JAg0JTQoAor0JLQldCb0JjQodCQ0JLQidCV0JIg0JzQmNCb0J7QoNCQ0JQg0JTQoAor0JLQldCb0JjQodCQ0JLQidCV0JIg0KHQoNCV0JTQntCI0JUKK9CS0JXQm9CY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQldCJ0JAg0JbQmNCS0JAg0JTQmNCfINCe0JXQpgor0JLQldCJ0JAg0J/QldCi0JDQoAor0JLQldCJ0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQldCJ0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCV0InQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQktCQCivQktCV0InQkNCd0J7QktCh0JrQmCDQmNCS0JDQnQor0JLQldCJ0JjQiyDQnNCY0JvQntCS0JDQnQor0JLQldCJ0JrQniDQkNCd0ILQldCb0JrQngor0JLQldCJ0JrQntCSINCU0JDQoNCY0J3QmtCQCivQktCV0InQmtCe0JIg0JPQldCe0KDQk9CY0IjQlQor0JLQldCJ0JrQntCSINCY0JTQkAor0JLQldCJ0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CS0JXQidCa0J7QkiDQn9CQ0JLQm9CVCivQktCV0InQmtCe0JIt0J/QpNCQ0IjQpNCV0KAg0KHQntCk0JjQiNCQCivQktCV0InQmtCe0JIg0KHQotCV0JLQkNCdCivQktCV0InQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JLQldCJ0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQktCV0InQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JLQldCJ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCJ0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQldCJ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQldCJ0JrQntCS0JjQiyDQkdCe0IjQkNCdCivQktCV0InQmtCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CS0JXQidCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCV0InQmtCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQktCV0InQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCV0InQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCV0InQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCV0InQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0JXQidCa0J7QktCY0Isg0J3QkNCU0JAKK9CS0JXQidCa0J7QktCY0Isg0J/QldCi0JDQoAor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQkAor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQktCV0InQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0JLQldCJ0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9CS0JXQidCa0J7QktCY0Isg0KHQktCV0KLQkAor0JLQldCJ0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0JXQidCa0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQidCa0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQktCV0InQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JXQidCa0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CS0JXQidCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JXQidCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CS0JXQidCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQidCe0JLQmNCLINCc0JjQotCQ0KAKK9CS0JXQidCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCV0InQntCS0JjQiyDQn9CQ0JLQm9CVCivQktCV0InQntCS0JjQiyDQoNCj0JbQkAor0JLQldCJ0J7QktCY0Isg0KHQmNCc0J4KK9CS0JXQidCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQktCV0JvQmtCe0JLQodCa0Jgg0JjQoNCV0J3QkAor0JLQldCb0JrQntCS0KHQmtCYINCi0JXQntCk0JjQmwor0JLQldCc0JXQndCQ0KYg0J7QkdCg0JDQlAor0JLQldCc0JjQiyDQkdCe0KDQkAor0JLQldCc0JjQiyDQlNCg0JDQk9CY0IrQkAor0JLQldCc0JjQiyDQmNCb0JjQiNCQCivQktCV0JzQmNCLINCb0JDQl9CQ0KAKK9CS0JXQnNCY0Isg0JzQmNCb0JDQnQor0JLQldCc0JjQiyDQoNCQ0JTQmNCS0J7QiNCVINCU0KAKK9CS0JXQnNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JLQldCd0KfQldCb0J7QktCh0JrQmCDQidCj0JHQmNCm0JAKK9CS0JXQndCn0JXQm9Ce0JLQodCa0Jgg0JLQm9CQ0JTQkAor0JLQldCd0KfQldCb0J7QktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQktCV0J3Qp9CV0JvQntCS0KHQmtCYINCS0JvQkNCh0KLQkAor0JLQldCd0KbQldCbINCT0JXQl9CQCivQktCV0J3QptCV0Jsg0JPQldCX0JAKK9CS0JXQndCm0Jsg0IjQntCh0JjQnwor0JLQldCd0KbQmyDQl9CS0J7QndCY0JzQmNCgCivQktCV0J3QlNCb0JXQndCV0KAg0JDQndCU0KDQmNCI0JDQndCQCivQktCV0J3QlNCb0JXQndCV0KAg0IjQldCb0JXQndCQCivQktCV0J3QlNCb0JXQndCV0KAg0JfQntCg0JDQnQor0JLQldCd0JUg0JPQntCg0JTQkNCd0JAKK9CS0JXQndCT0KDQmNCdINCQ0JPQndCV0KgKK9CS0JXQndCT0KDQmNCd0JMg0KTQldCg0JXQndCmCivQktCV0J3Qk9Cg0JjQndCTINCh0KLQldCS0JDQnQor0JLQldCg0JDQpiDQnNCY0J7QlNCg0JDQkwor0JLQldCg0JHQkCDQiNCe0JbQldCkCivQktCV0KDQkdCQ0J3QldCmINCY0KjQotCS0JDQnQor0JLQldCg0JHQkNCd0JXQpiDQmNCo0KLQktCQ0J0KK9CS0JXQoNCR0JDQodCYINCk0KDQkNCK0JAKK9CS0JXQoNCR0JDQodCYINCI0J7QktCQ0J3QmtCQCivQktCV0KDQldCoINCC0KPQm9CQCivQktCV0KDQldCoINCQ0J3QlNCg0JjQiNCQCivQktCV0KDQldCoINCU0KDQkNCT0KPQotCY0J0KK9CS0JXQoNCV0Kgg0KXQkNCI0J3QkNCb0JrQkAor0JLQldCg0JXQqCDQmNCS0JDQnQor0JLQldCg0JXQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JLQldCg0JXQqCDQiNCe0JbQldCkCivQktCV0KDQldCoINCI0J7QodCY0J8KK9CS0JXQoNCV0Kgg0IjQntCh0JjQnwor0JLQldCg0JXQqCDQm9CQ0JTQmNCh0JvQkNCSCivQktCV0KDQldCoINCc0JDQoNCY0IjQkAor0JLQldCg0JXQqNCR0JDQoNCQ0IrQmCDQmNCo0KLQktCQ0J0KK9CS0JXQoNCV0KjQkdCQ0KDQkNCK0Jgg0JzQkNCg0JjQiNCQCivQktCV0KDQldCo0JXQktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQoNCV0JbQkNCdINCC0KPQoNCY0KbQkAor0JLQldCg0JXQltCQ0J0g0JfQntCg0JrQkAor0JLQldCg0JXQkSDQltCj0JbQkNCd0JAKK9CS0JXQoNCV0JHQldCoINCR0J7QoNCY0KHQm9CQ0JLQkAor0JLQldCg0JXQkdCV0Kgg0JXQoNCS0JjQnQor0JLQldCg0JXQptCa0JXQmCDQlNCj0KjQmNCm0JAKK9CS0JXQoNCV0KbQmtCV0Jgg0JPQldCX0JAKK9CS0JXQoNCV0KbQmtCV0Jgg0JzQkNCg0JPQmNCi0JAKK9CS0JXQoNCT0JDQqCDQkdCg0JDQndCa0J4KK9CS0JXQoNCY0Isg0KDQkNCi0JrQngor0JLQldCg0JrQmNCLINCi0J7QlNCe0KAKK9CS0JXQoNCa0JjQiyDQktCY0KLQntCc0JjQoAor0JLQldCg0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JXQoNCb0JjQiyDQnNCY0JvQkNCdCivQktCV0KDQnNCV0Kgg0JvQmNCb0JgKK9CS0JXQoNCc0JXQl9Ce0JLQmNCLINCC0J7QoNCC0JUKK9CS0JXQoNCd0JDQp9Ca0Jgg0JDQndCY0KLQkAor0JLQldCg0J3QkNCn0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQoNCd0JDQp9Ca0Jgg0JPQkNCS0KDQkAor0JLQldCg0J3QkNCn0JrQmCDQk9CQ0JLQoNCY0JvQngor0JLQldCg0J3QkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQktCV0KDQndCV0KAg0JDQndCQCivQktCV0KDQndCV0KAg0JzQmNCl0JDQiNCb0J4KK9CS0JXQoNCd0JXQoCDQodCi0JXQktCQ0J0KK9CS0JXQoNCd0J7QoiDQkNCd0JAKK9CS0JXQoNCd0J7QoiDQlNCj0IrQkAor0JLQldCg0J3QntCiINCI0J7QodCY0J8KK9CS0JXQoNCd0J7QoiDQktCI0JXQmtCe0KHQm9CQ0JLQkAor0JLQldCg0J3QntCiINCX0JTQldCd0JrQngor0JLQldCg0J3QntCiINCX0JTQldCd0JrQngor0JLQldCg0JfQntCi0Jgg0JTQoNCQ0JPQmNCm0JAKK9CS0JXQoNCX0J7QotCYINCI0KPQm9CY0IjQkNCd0JAKK9CS0JXQoNCX0J7QotCYINCf0JXQotCQ0KAKK9CS0JXQoNCX0J7QotCYINCh0KLQkNCd0JrQkAor0JLQldCh0JXQm9CY0Isg0JHQntCg0JjQktCe0IgKK9CS0JXQodCV0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CS0JXQodCV0JvQmNCLINCT0J7QodCf0JDQktCQCivQktCV0KHQldCb0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQldCh0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCV0KHQldCb0JjQptCQINCc0JDQndCVCivQktCV0KHQldCb0JjQptCQINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCm0JAg0KHQktCV0KLQntCX0JDQoAor0JLQldCh0JXQm9CY0J0g0J/QldCi0JDQoAor0JLQldCh0JXQm9CY0J3QntCSINCC0J7QoNCC0JUKK9CS0JXQodCV0JvQmNCd0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JAKK9CS0JXQodCV0JvQmNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQodCV0JvQmNCd0J7QkiDQm9CY0JHQo9Co0JAKK9CS0JXQodCV0JvQmNCd0J7QkiDQnNCY0JvQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QkiDQoNCY0KHQotCQCivQktCV0KHQldCb0JjQndCe0JIg0KHQotCV0JLQkNCdINCU0KAKK9CS0JXQodCV0JvQmNCd0J7QkiDQodCi0JXQktCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQktCV0KHQldCb0JjQndCe0JIg0JLQldCg0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQo9CI0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQo9Cg0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQo9Cg0J4KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JHQntCg0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JHQoNCQ0J3QlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCU0JDQoNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCU0JDQoNCa0J4KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0IjQntCh0JjQn9CQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCb0JDQndCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCb0JXQndCa0JjQptCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCi0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCV0KHQldCb0JjQndCe0JLQmNCLLdCf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JsKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KDQkNCd0JrQngor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0JDQktCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0JXQktCV0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQodCf0JDQodCe0IjQlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQotCe0JTQntCgCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCi0J7QlNCe0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KPQoNCe0KgKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQldCb0JjQl9CQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQldCJ0JrQngor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCY0J3QmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCX0JLQldCX0JTQkNCdCivQktCV0KHQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CS0JXQodCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCV0KHQmNCLINCa0JDQotCY0KbQkAor0JLQldCh0JjQiyDQmtCg0KHQotCQCivQktCV0KHQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCY0Isg0JzQmNCb0JDQnQor0JLQldCh0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JXQodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0JXQodCY0Isg0JzQmNCi0JDQoAor0JLQldCh0JjQiyDQnNCb0JDQlNCV0J0KK9CS0JXQodCY0Isg0KDQo9CW0JjQptCQCivQktCV0KHQmNCLLdCS0JDQoNCT0JAg0JTQoNCQ0JPQmNCm0JAKK9CS0JXQodCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQktCV0KHQmNCdINCR0KDQkNCd0JrQngor0JLQldCh0JjQnSDQnNCY0JvQkNCdCivQktCV0KHQmNCdINCd0JDQlNCQCivQktCV0KHQmNCdINCf0JXQotCQ0KAKK9CS0JXQodCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCh0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCV0KHQmtCe0JIg0JjQktCQ0J0KK9CS0JXQodCa0J7QkiDQiNCV0JvQldCd0JAKK9CS0JXQodCa0J7QkiDQnNCY0JvQntCoCivQktCV0KHQmtCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JLQldCh0JrQntCS0JjQiyDQlNCg0JDQqNCa0J4KK9CS0JXQodCa0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JLQldCh0JrQntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CS0JXQodCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQldCh0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CS0JXQodCa0J7QktCY0Isg0J/QldCi0JDQoAor0JLQldCh0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0JXQodCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9CS0JXQodCa0J7QktCY0Isg0JfQntCg0JAKK9CS0JXQodCb0JDQktCh0JrQmCDQotCY0J3QmtCQCivQktCV0KHQndCY0Isg0JzQmNCb0JXQndCQCivQktCV0KHQndCY0Ist0JLQkNCh0JjQidCV0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CS0JXQodCe0JLQmNCLINCQ0KbQngor0JLQldCh0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CS0JXQotCg0JDQkSDQpNCg0JDQitCQCivQktCV0KLQoNCQ0JEg0JrQkNCi0JDQm9CY0J0KK9CS0JXQotCg0JDQkSDQnNCY0KXQkNCJCivQktCV0KLQoNCeINCf0JXQotCQ0KAKK9CS0JXQktCV0KDQmNCn0JXQmiDQnNCQ0KDQmNCI0JAKK9CS0JXQl9CV0KLQmCDQnNCY0KXQkNCV0JsKK9CS0JXQl9CV0KLQmCDQn9CV0KLQkNCgCivQktCV0JfQmNCb0JjQiyDQgtCe0KDQgtCVCivQktCV0JfQmNCb0JjQiyDQptCg0J3QntCT0J7QoNCa0JAKK9CS0JXQl9CY0JvQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCV0JfQmNCb0JjQiyDQlNCj0KjQmNCm0JAKK9CS0JXQl9CY0JvQmNCLINCI0JXQm9CY0KbQkAor0JLQldCX0JjQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQldCX0JzQkNCgINCR0KDQkNCd0JrQngor0JLQldCX0JzQkNCgINCY0JvQmNCI0JAKK9CS0JXQl9Cc0JDQoCDQnNCQ0KDQk9CQ0KDQmNCi0JAKK9CS0JXQl9Cc0JDQoCDQnNCY0JvQkNCdCivQktCV0JfQnNCQ0KAg0JzQmNCb0J7QqAor0JLQldCX0JzQkNCgINCc0JjQm9Ce0KDQkNCUCivQktCV0JfQnNCQ0KAg0JzQntCc0KfQmNCb0J4KK9CS0JXQl9Cc0JDQoCDQndCY0JrQntCb0JAKK9CS0JXQl9Cc0JDQoCDQn9CV0KLQkNCgCivQktCV0JfQo9Cb0JjQiyDQgtCe0KDQgtCVCivQktCY0KfQldCaINCo0JDQndCU0J7QoAor0JLQmNCn0JXQmiDQmtCQ0KDQntCJCivQktCY0KfQldCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQktCY0KfQmNCaINCY0JPQitCQ0KIKK9CS0JjQqNCV0JrQoNCj0J3QkCDQkdCe0KDQmNCS0J7QiAor0JLQmNCo0JXQmtCg0KPQndCQINCU0JDQndCa0J4KK9CS0JjQqNCV0JrQoNCj0J3QkCDQlNCj0KjQkNCdCivQktCY0KjQldCa0KDQo9Cd0JAg0JTQo9Co0JrQngor0JLQmNCo0JXQmtCg0KPQndCQINCI0J7QktCQ0J0KK9CS0JjQqNCV0JrQoNCj0J3QkCDQnNCY0JvQkNCdCivQktCY0KjQldCa0KDQo9Cd0JAg0KHQm9CQ0JLQmtCeCivQktCY0KjQldCa0KDQo9Cd0JAg0JLQntCI0JjQnQor0JLQmNCo0JjQiyDQnNCY0JvQlQor0JLQmNCo0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JjQqNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQmNCo0JrQntCS0JjQiyDQn9Cb0JDQndCY0J3QmtCQCivQktCY0KjQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCY0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JLQmNCo0J3QmNCLINCU0JDQndCY0KbQkAor0JLQmNCo0J3QmNCLINCU0KPQqNCQ0J0KK9CS0JjQqNCd0JjQiyDQl9Ce0KDQmtCQCivQktCY0KjQitCV0JLQp9CQ0J3QmNCdINCI0J7QktCQ0J0KK9CS0JjQqNCK0JXQktCn0JDQndCY0J0g0JvQldCf0JAKK9CS0JjQqNCK0JXQktCQ0KYg0JHQntCg0J4KK9CS0JjQqNCK0JXQktCQ0KYg0J7Qm9CY0JLQldCg0JAKK9CS0JjQqNCK0JXQktCh0JrQmCDQmtCQ0KLQmNCm0JAKK9CS0JjQqNCK0JjQp9CQ0J0g0JTQo9Co0JDQnQor0JLQmNCo0IrQmNCn0JDQnSDQk9CQ0JLQoNCY0JvQngor0JLQmNCo0IrQmNCn0JDQnSDQiNCe0JLQkNCd0JrQkAor0JLQmNCo0IrQmNCn0JDQnSDQnNCY0JvQmNCm0JAKK9CS0JjQqNCK0JjQp9CQ0J3QmNCdINCI0J7QktCQ0J3QmtCQCivQktCY0KjQitCY0KfQkNCgINCW0JDQoNCa0J4KK9CS0JjQqNCK0JjQp9CQ0KAg0ILQntCg0ILQlQor0JLQmNCo0IrQmNCn0JDQoCDQgtCe0KDQgtCVCivQktCY0KjQitCY0KfQkNCgINCU0KDQkNCT0J7QodCb0JDQkgor0JLQmNCo0IrQmNCn0JDQoCDQnNCQ0KDQmNCI0JAKK9CS0JjQqNCK0JjQp9CQ0KAg0JzQmNCa0JAKK9CS0JjQqNCK0JjQp9CQ0KAg0J3QldCU0JXQidCa0J4KK9CS0JjQqNCK0JjQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9CS0JjQqNCK0JjQp9Ca0Jgg0JzQmNCb0J7QqAor0JLQmNCo0IrQmNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQktCY0KjQitCY0KfQmtCYINCh0KDQldCi0JXQnQor0JLQmNCo0IrQmNCLINCn0JXQlNCe0JzQmNCb0JAKK9CS0JjQqNCK0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQqNCK0JjQiyDQkdCg0JDQndCh0JjQm9CQ0JLQkAor0JLQmNCo0IrQmNCLINCU0JDQm9CY0JHQntCgCivQktCY0KjQitCY0Isg0JTQo9Co0JDQnQor0JLQmNCo0IrQmNCLINCY0JvQmNCI0JAKK9CS0JjQqNCK0JjQiyDQiNCe0KHQmNCfCivQktCY0KjQitCY0Isg0JzQkNCg0JjQiNCQCivQktCY0KjQitCY0Isg0JzQmNCb0JDQnQor0JLQmNCo0IrQmNCLINCc0JjQm9CY0KbQkAor0JLQmNCo0IrQmNCLINCe0JvQmNCS0JXQoNCQCivQktCY0KjQitCY0Isg0J7Qm9CY0JLQldCgCivQktCY0KjQitCY0Isg0KHQn9CQ0KHQntCI0JUKK9CS0JjQqNCK0JjQiyDQotCY0KXQntCc0JjQoAor0JLQmNCo0IrQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CS0JjQqNCK0JjQiyDQktCV0KDQkAor0JLQmNCo0IrQmNCLINCS0JXQodCd0JAKK9CS0JjQqNCK0J7QktCh0JrQmCDQgtCj0KDQkAor0JLQmNCo0IrQntCS0KHQmtCYINCQ0KDQkNCd0JrQkAor0JLQmNCo0IrQntCS0KHQmtCYINCc0JDQoNCY0IjQkAor0JLQmNCo0IrQntCS0KHQmtCYINCc0JDQoNCI0JDQnQor0JLQmNCo0J7QqNCV0JLQmNCLINCg0KPQltCV0J3QkAor0JLQmNCo0J7QndCi0JDQmCDQiNCe0JbQldCkCivQktCY0KjQntCd0KLQkNCYINCI0J7QltCV0KQKK9CS0JjQi9CV0JLQmNCLINCg0JDQlNCY0KjQkAor0JLQmNCW0JDQmCDQqNCQ0J3QlNCe0KAKK9CS0JjQkNCi0J7QoNCY0KEg0IjQkNCd0J7QqAor0JLQmNCQ0KLQntCg0JjQoSDQiNCj0JvQmNCo0JrQkAor0JLQmNCQ0KLQntCg0JjQoSDQidCj0JHQmNCm0JAKK9CS0JjQkdCe0Jog0IjQntCW0JXQpAor0JLQmNCm0JXQmCDQiNCe0JbQldCkCivQktCY0KbQldCYINCd0JjQmtCe0JvQkAor0JLQmNCm0JjQkNCdINCa0JvQkNCg0JAKK9CS0JjQptCa0J4g0JDQoNCf0JDQlAor0JLQmNCm0JrQniDQpNCg0JDQitCQCivQktCY0KbQmtCeINCI0J7QodCY0J8KK9CS0JjQptCa0J7QqCDQiNCe0JbQldCkCivQktCY0KbQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQmNCm0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQptCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0JjQptCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQmNCm0JrQntCS0JjQiyDQktCV0KHQndCQCivQktCY0KbQniDQkdCe0JPQlNCQ0J0KK9CS0JjQptCeINCg0JDQlNCY0JLQntCI0JUKK9CS0JjQptCeINCg0JDQlNCe0JzQmNCgCivQktCY0JQg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0JjQlNCQINCI0JXQm9CY0KHQkNCS0JXQotCQCivQktCY0JTQkCDQiNCe0JbQldCkCivQktCY0JTQkCDQiNCj0JvQmNCI0JAKK9CS0JjQlNCQINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQktCY0JTQkCDQktCY0JvQmAor0JLQmNCU0JDQpyDQiNCQ0IrQkCDQm9Ce0JrQkNCbCivQktCY0JTQkNCnINCb0JDQodCb0J4KK9CS0JjQlNCQ0Kcg0KHQm9CQ0JLQmNCm0JAKK9CS0JjQlNCQ0IjQmNCLINCW0JjQktCa0J4KK9CS0JjQlNCQ0IjQmNCLINCI0JDQodCc0JjQndCQCivQktCY0JTQkNCI0JjQiyDQiNCe0KHQmNCfCivQktCY0JTQkNCI0JjQiyDQm9Cj0KfQmNCI0JDQndCeCivQktCY0JTQkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JjQlNCQ0IjQmNCLINCS0JXQidCQCivQktCY0JTQkNCI0JjQiyDQktCb0JDQlNCQCivQktCY0JTQkNCa0J7QkiDQkNCd0JrQmNCm0JAKK9CS0JjQlNCQ0JrQntCSINCI0J7QktCQ0J0KK9CS0JjQlNCQ0JrQntCSINCX0J7QoNCY0KbQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCY0JTQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAg0JTQoAor0JLQmNCU0JDQmtCe0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQktCY0JTQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JXQnNCY0JsKK9CS0JjQlNCQ0JrQntCS0JjQiyDQmNCS0JDQnQor0JLQmNCU0JDQmtCe0JLQmNCLINCY0JLQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JjQktCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQiNCQ0JPQntCU0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQktCY0JTQkNCa0J7QktCY0Isg0IjQntCh0JjQnwor0JLQmNCU0JDQmtCe0JLQmNCLINCa0J7QodCQCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0JDQmtCe0JLQmNCLINCc0JjQidCQCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCg0KfQldCi0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQmNCU0JDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JLQmNCU0JDQmtCe0JLQmNCLINCe0JvQk9CQCivQktCY0JTQkNCa0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JLQmNCU0JDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQktCY0JTQkNCa0J7QktCY0Isg0KHQkNCS0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCY0JTQkNCa0J7QktCY0Isg0KLQldCg0JXQl9CQCivQktCY0JTQkNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQmNCU0JDQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JjQlNCQ0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JLQmNCU0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCY0JTQkNCd0J7QktCY0Ist0KHQmtCe0JrQniDQiNCV0JvQldCd0JAKK9CS0JjQlNCQ0KDQmNCLINCI0J7QktCeCivQktCY0JTQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQmNCU0JDQoNCY0Isg0KDQkNCi0JrQngor0JLQmNCU0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQktCY0JTQkNChINCi0JXQoNCV0JfQkAor0JLQmNCU0JXQpiDQiNCe0KHQmNCfCivQktCY0JTQldCmINCI0J7QodCY0J8KK9CS0JjQlNCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQlNCV0J3QntCS0JjQiyDQmtCe0KHQntCS0JrQkAor0JLQmNCU0JXQndCe0JLQmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQktCY0JTQldCd0J7QktCY0Isg0JzQntCc0JjQoAor0JLQmNCU0JXQoCDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JLQmNCU0JjQiyDQltCV0InQmtCeCivQktCY0JTQmNCLINCC0J7QoNCC0JUKK9CS0JjQlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCY0JTQmNCLINCR0KDQkNCd0JrQkAor0JLQmNCU0JjQiyDQkdCg0JDQndCa0JAKK9CS0JjQlNCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0JTQmNCLINCU0KDQkNCT0JDQndCQCivQktCY0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCY0JTQmNCLINCV0JzQmNCb0JjQiNCQCivQktCY0JTQmNCLINCI0JXQm9CY0KbQkAor0JLQmNCU0JjQiyDQiNCe0KbQkAor0JLQmNCU0JjQiyDQidCY0InQkNCd0JAKK9CS0JjQlNCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0JjQlNCY0Isg0JzQkNCg0JjQiNCQCivQktCY0JTQmNCLINCc0JjQm9CQ0J0KK9CS0JjQlNCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0JjQiyDQnNCY0JvQntCoCivQktCY0JTQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JLQmNCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCY0JTQmNCLINCd0JDQlNCQCivQktCY0JTQmNCLINCf0JXQoNCeCivQktCY0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQktCY0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQktCY0JTQmNCLINCg0JDQiNCa0J4KK9CS0JjQlNCY0Isg0KHQntCk0JjQiNCQCivQktCY0JTQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQktCY0JTQmNCLINCh0KLQldCS0JDQnQor0JLQmNCU0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0JjQlNCY0Isg0JLQldCJ0JrQngor0JLQmNCU0JjQiyDQktCV0KDQkAor0JLQmNCU0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQmNCU0JjQptCa0Jgg0JHQoNCQ0J3QmtCeCivQktCY0JTQmNCm0JrQmCDQmNCS0JDQnQor0JLQmNCU0JjQptCa0Jgg0JrQntCh0KLQkAor0JLQmNCU0JjQptCa0Jgg0InQo9CR0J7QnNCY0KAKK9CS0JjQlNCY0KbQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JjQlNCY0J3QldCgINCR0J7QltCY0JTQkNCgCivQktCY0JTQnNCQ0J3QmNCLINCT0JDQkdCg0JjQiNCV0JvQkAor0JLQmNCU0J7QiNCV0JLQmNCLINCW0JjQktCa0JAKK9CS0JjQlNCe0IjQldCS0JjQiyDQkdCb0JDQltCeCivQktCY0JTQntCI0JXQktCY0Isg0JHQntCW0JAKK9CS0JjQlNCe0IjQldCS0JjQiyDQiNCe0KHQmNCkCivQktCY0JTQntCI0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQmNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CS0JjQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQktCY0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQldCb0JjQptCQCivQktCY0JTQntCh0JDQktCJ0JXQktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JLQmNCU0J7QktCY0Isg0JbQmNCS0JrQngor0JLQmNCU0J7QktCY0Isg0JDQnNCY0KDQkAor0JLQmNCU0J7QktCY0Isg0JDQndCY0KbQkAor0JLQmNCU0J7QktCY0Isg0JHQldCQ0KLQoNCY0KEKK9CS0JjQlNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JLQmNCU0J7QktCY0Isg0JHQmNCh0JXQoNCa0JAKK9CS0JjQlNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCY0JTQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCY0JTQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCY0JTQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JjQlNCe0JLQmNCLINCU0KDQkNCT0J4KK9CS0JjQlNCe0JLQmNCLINCc0JDQoNCI0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JUKK9CS0JjQlNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQmNCU0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQmNCU0J7QktCY0Isg0JzQmNCg0JrQngor0JLQmNCU0J7QktCY0Isg0J3QkNCU0JAKK9CS0JjQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0JjQlNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQktCY0JTQntCS0JjQiyDQoNCQ0IjQmtCeCivQktCY0JTQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CS0JjQlNCe0JLQmNCLINCh0JDQktCQCivQktCY0JTQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCY0JTQntCS0JjQiyDQktCY0JQKK9CS0JjQk9CYINCI0J7QodCY0J8KK9CS0JjQk9CK0JXQktCY0Isg0ILQntCg0ILQlQor0JLQmNCT0IrQldCS0JjQiyDQkNCd0JAKK9CS0JjQk9CK0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQktCY0JPQitCV0JLQmNCLINCR0KDQkNCd0JrQngor0JLQmNCT0IrQldCS0JjQiyDQlNCQ0JrQngor0JLQmNCT0IrQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JjQk9CK0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQktCY0JPQitCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCY0JPQitCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCY0JPQitCV0JLQmNCLINCd0JXQktCV0J3QmtCQCivQktCY0JPQitCV0JLQmNCLINCg0JDQlNCVCivQktCY0JPQitCV0JLQmNCLINCh0KLQldCS0JDQndCY0IjQkAor0JLQmNCT0IrQldCS0JjQiyDQktCV0KHQndCQCivQktCY0JPQitCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0JjQk9CK0JXQktCY0Isg0JfQntCg0JDQnQor0JLQmNCI0JDQotCe0JIg0KHQnNCY0InQkAor0JLQmNCI0JXQqNCi0JjQptCQINCK0JXQk9Ce0JzQmNCgCivQktCY0IjQo9CaINCJ0KPQkdCQ0J0KK9CS0JjQiNCj0Jog0KHQkNCS0JAKK9CS0JjQmtCe0KAg0J/QldCi0JDQoAor0JLQmNCa0J7QoCDQoNCj0JbQkAor0JLQmNCb0KfQldCaINCI0JDQitCQCivQktCY0JvQp9CV0Jog0J3QmNCa0J7Qm9CQCivQktCY0JvQkCDQnNCY0JvQntCS0JDQnQor0JLQmNCb0JDQk9Ce0Kgg0ILQldCg0ILQmAor0JLQmNCb0JXQotCYINCX0J7QoNCQCivQktCY0JvQmNCoINCC0KPQoNCQCivQktCY0JvQmNCoINCk0KDQkNCK0JAKK9CS0JjQm9CY0Isg0JzQkNCg0JrQngor0JLQmNCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9CS0JjQm9CY0Isg0KDQntCX0JDQm9CY0IjQkAor0JLQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCY0JvQmNCT0J7QoNCh0JrQmCDQn9CQ0KPQm9CQCivQktCY0JvQntCi0JjQiyDQltCY0JLQmtCeCivQktCY0JvQntCi0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQmNCb0J7QotCY0IjQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQktCY0JvQntCi0JjQiNCV0JLQmNCLINCa0JjQi9Cj0J0KK9CS0JjQm9Ce0KLQmNCI0JXQktCY0Isg0JzQmNCg0J7QiNCVCivQktCY0JvQntCS0JDQp9Ca0Jgg0JrQkNCi0JjQptCQCivQktCY0JvQntCS0JDQp9Ca0Jgg0KHQm9CQ0JLQmtCeCivQktCY0JvQntCS0JDQpiDQiNCe0JLQkNCdCivQktCY0JvQntCS0JDQpiDQiNCe0JLQkNCdCivQktCY0JvQntCS0JDQpiDQnNCY0JvQkNCdCivQktCY0JvQntCS0KHQmtCYINCC0J7QoNCC0JUKK9CS0JjQm9Ce0JLQodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCY0JvQntCS0KHQmtCYINCR0KDQkNCd0JrQngor0JLQmNCb0J7QktCh0JrQmCDQodCQ0JLQkAor0JLQmNCb0J7QktCh0JrQmCDQodCb0JDQktCe0JzQmNCgCivQktCY0JvQntCS0KHQmtCYINCh0JzQmNCJ0JDQndCQCivQktCY0JvQntCS0KHQmtCYINCS0JXQidCa0J4KK9CS0JjQm9Ce0JLQodCa0Jgg0JfQntCg0JAKK9CS0JjQm9Cj0KEg0JTQkNCd0JjQptCQCivQktCY0JzQldCgINCS0JXQoNCQCivQktCY0J0g0JjQktCQ0J0KK9CS0JjQnSDQiNCe0KHQmNCfCivQktCY0J0g0JvQkNCI0J7QqAor0JLQmNCdINCf0JDQktCb0JUKK9CS0JjQnSDQodCS0JXQotCb0JDQndCQCivQktCY0J3QqCDQlNCg0JDQk9Cj0KLQmNCdCivQktCY0J3QkNCIINCC0J7QoNCC0JUKK9CS0JjQndCQ0Igg0ILQntCg0ILQlQor0JLQmNCd0JDQiCDQiNCQ0J3QmtCeCivQktCY0J3QkNCIINCJ0KPQkdCY0KbQkAor0JLQmNCd0JDQiCDQnNCV0JvQkNCd0JjQiNCQCivQktCY0J3QkNCI0Jgg0ILQo9Cg0JAKK9CS0JjQndCQ0IjQmCDQnNCY0KLQkNCgCivQktCY0J3QkNCI0Jgg0JLQldCg0JjQptCQCivQktCY0J3QkNCg0JYg0JLQm9CQ0JTQmNCc0JjQoAor0JLQmNCd0KbQlSDQkNCd0JTQoNCY0IjQkAor0JLQmNCd0KbQlSDQldCg0JbQldCR0JXQogor0JLQmNCd0KbQlSDQmNCo0KLQktCQ0J0KK9CS0JjQndCm0JUg0JrQkNCg0JvQngor0JLQmNCd0KbQlSDQm9CQ0KbQmNCa0JAKK9CS0JjQndCm0JUg0JzQkNCg0JXQm9CQCivQktCY0J3QptCVINCc0JDQoNCT0JjQotCQCivQktCY0J3QptCVINCf0JDQktCb0JUKK9CS0JjQndCm0JXQotCY0J0g0JDQndCQCivQktCY0J3Qj9CQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCY0J3Qj9CQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQktCY0J3QlNCY0Kgg0JTQoNCQ0JPQo9Ci0JjQnQor0JLQmNCd0JTQmNCoINCh0KLQldCS0JDQnQor0JLQmNCd0JXQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JjQndCV0KAg0JjQktCQ0J0KK9CS0JjQndCV0KAg0IjQldCg0J7QndCY0JwKK9CS0JjQndCV0KAg0JzQkNCg0JjQiNCQCivQktCY0J3QldCgINCX0JLQntCd0JjQnNCY0KAKK9CS0JjQndCa0JAg0JXQnNCQ0J3Qo9CV0JvQkAor0JLQmNCd0JrQmNCLINCY0JvQmNCI0JAKK9CS0JjQndCa0JvQldCgINCI0J7QltCV0KQKK9CS0JjQndCa0JvQldCg0J7QktCY0Isg0JLQldCg0JjQptCQCivQktCY0J3QmtCe0JLQmNCLINCQ0J3QkAor0JLQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JjQndCa0J7QktCY0Isg0InQo9CU0JXQktCY0KIKK9CS0JjQndCe0JrQmNCLINCR0J7Qk9CU0JDQnQor0JLQmNCd0J7QmtCY0Isg0JLQkNCh0JjQidCa0JAKK9CS0JjQoNCQ0JMg0JDQm9CR0JXQoNCiCivQktCY0KDQkNCTINCQ0J3QlNCg0JjQiNCQCivQktCY0KDQkNCTINCV0KDQmNCa0JAKK9CS0JjQoNCQ0JMg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQmNCg0JDQkyDQidCj0JTQldCS0JjQogor0JLQmNCg0JDQkyDQnNCQ0KDQotCe0J0KK9CS0JjQoNCQ0JMg0JzQmNCl0JDQiNCb0J4KK9CS0JjQoNCQ0JMg0KDQntCR0JXQoNCiCivQktCY0KDQkNCTINCg0J7QkdCV0KDQogor0JLQmNCg0KYg0KTQldCg0JXQndCmCivQktCY0KDQpiDQiNCe0JbQldCkCivQktCY0KDQpiDQiNCe0JLQkNCdCivQktCY0KDQpiDQnNCQ0KDQotCY0J0KK9CS0JjQoNCmINCd0JDQlNCQCivQktCY0KDQpiDQoNCj0JbQmNCm0JAKK9CS0JjQoNCmINCh0KLQldCS0JDQnQor0JLQmNCg0JjQiyDQmNCS0JDQnQor0JLQmNCg0JjQiyDQmNCS0JDQnQor0JLQmNCg0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0JjQoNCY0IjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQmNCg0JjQiNCV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQktCY0KDQmNCI0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9CS0JjQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JLQmNCg0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9CS0JjQoNCY0IjQldCS0JjQiyDQktCe0IjQmNCdCivQktCY0KHQm9CQ0JLQodCa0Jgg0ILQo9Cg0JAKK9CS0JjQodCb0JDQktCh0JrQmCDQkdCe0JPQlNCQ0J0KK9CS0JjQodCb0JDQktCh0JrQmCDQiNCQ0JrQmNCcCivQktCY0KHQm9CQ0JLQodCa0Jgg0IjQkNCa0JjQnAor0JLQmNCh0JvQkNCS0KHQmtCYINCI0JDQndCe0KgKK9CS0JjQodCb0JDQktCh0JrQmCDQiNCQ0J3QntCoCivQktCY0KHQm9CQ0JLQodCa0Jgg0JvQldCe0J0KK9CS0JjQodCb0JDQktCh0JrQmCDQidCj0JHQntCc0JjQoAor0JLQmNCh0JvQkNCS0KHQmtCYINCc0JDQoNCY0IjQkAor0JLQmNCh0JvQkNCS0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQktCY0KHQm9CQ0JLQodCa0Jgg0JzQmNCg0J7QnQor0JLQmNCh0JvQkNCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JjQodCb0JDQktCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQktCY0KHQm9CQ0JLQodCa0Jgg0J3QkNCi0JDQqNCQCivQktCY0KHQm9CQ0JLQodCa0Jgg0JfQm9CQ0KLQmtCeCivQktCY0KHQoiDQpdCV0JvQk9CQ0JDQndCQCivQktCY0KLQkNChINCh0KLQldCS0JDQnQor0JLQmNCi0JDQoSDQodCi0JXQktCQ0J0KK9CS0JjQotCQ0KHQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQmNCi0JDQodCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCY0KLQkNCh0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQmNCi0JDQodCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQktCY0KLQkNCXINCf0JXQotCQ0KAKK9CS0JjQotCV0Jcg0IjQkNCdCivQktCY0KLQldCXINCi0KPQk9Ce0JzQmNCgCivQktCY0KLQldCXINCX0JLQntCd0JrQngor0JLQmNCi0JjQiyDQgtCe0KDQgtCVCivQktCY0KLQmNCLINCC0J7QoNCC0JUKK9CS0JjQotCY0Isg0JHQntCo0JrQniDQlNCgINCb0JXQmtCQ0KAKK9CS0JjQotCI0KPQmiDQnNCY0KDQiNCQ0J3QkCDQlNCY0J/QmyDQmNCd0JMKK9CS0JjQotCI0KPQmiDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0JLQmNCi0JrQkNCYINCY0JvQntCd0JAKK9CS0JjQotCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0KLQmtCe0JLQmNCLINCU0KDQkNCT0J4KK9CS0JjQotCa0J7QktCY0Isg0IjQntCS0JDQnQor0JLQmNCi0J7QnNCY0KDQntCSINCW0JjQktCQ0J0KK9CS0JjQotCe0JzQmNCg0J7QktCY0Isg0JHQntCg0JjQoQor0JLQmNCi0J7QnNCY0KDQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQktCY0KLQntCg0JDQpiDQgtCj0KDQkAor0JLQmNCi0J7QoNCQ0KYg0ILQo9Cg0J4KK9CS0JjQotCe0KDQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9CS0JjQotCe0KDQkNCmINCY0JvQmNCI0JAKK9CS0JjQotCe0KDQkNCmINCd0JDQlNCQCivQktCY0KLQntCg0JDQpiDQoNCj0JbQldCd0JrQkAor0JLQmNCi0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JjQotCe0KDQntCS0JjQiyDQnNCY0JvQntCoCivQktCY0KLQntCg0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JjQotCe0KDQntCS0JjQiyDQoNCQ0J3QmtCQCivQktCY0KLQntCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQktCY0KLQo9Co0JrQkCDQodCi0JXQktCQ0J0KK9CS0JjQktCe0JQg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CS0JjQktCe0JQg0JzQkNCT0JTQkNCb0JXQndCQCivQktCY0JfQmCDQqNCQ0J3QlNCe0KAKK9CS0JjQl9CYINCI0J7QodCY0J8KK9CS0JjQl9CYINCI0J7QktCQ0J0KK9CS0JjQl9CYINCa0JDQotCY0KbQkAor0JLQmNCX0Jgg0JzQkNCg0JjQiNCQCivQktCY0JfQmCDQnNCQ0KDQmNCI0JAKK9CS0JjQl9CYINCg0JDQlNCe0IjQmtCQCivQktCY0JfQmCDQodCe0IrQkAor0JLQmNCX0Jgg0KHQotCV0JLQkNCdCivQktCI0JXQqNCi0JjQptCQINCC0KPQoNCeCivQktCI0JXQqNCi0JjQptCQINCU0KPQqNCQ0J3QmtCQCivQktCI0JXQqNCi0JjQptCQINCI0J7QktCeCivQktCI0JXQqNCi0JjQptCQINCc0JjQm9CQ0J0KK9CS0IjQldCo0KLQmNCm0JAg0JzQmNCg0JrQngor0JLQiNCV0KjQotCY0KbQkCDQnNCY0KDQntCh0JvQkNCSCivQktCI0JXQqNCi0JjQptCQINCd0JDQlNCQCivQktCI0JXQqNCi0JjQptCQINCd0JXQkdCe0IjQqNCQCivQktCI0JXQqNCi0JjQptCQINCh0JvQkNCS0JrQngor0JLQiNCV0KDQkyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0IjQldCi0KDQntCSINCJ0KPQkdCY0KbQkAor0JLQm9CQINCU0KPQqNCQ0J0KK9CS0JvQkCDQlNCj0KjQkNCdCivQktCb0JAg0IjQntCS0JDQnQor0JLQm9CQINCc0JjQm9Ce0JLQkNCdCivQktCb0JAg0J/QldCi0JDQoAor0JLQm9CQINCg0JDQlNCe0KHQm9CQ0JIKK9CS0JvQkCDQodCb0JDQktCa0J4KK9CS0JvQkCDQodCg0JXQotCQCivQktCb0JDQp9CeINCU0KPQqNCQ0J3QmtCQCivQktCb0JDQqNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQm9CQ0KjQmNCLINCc0JjQntCU0KDQkNCTCivQktCb0JDQqNCY0Isg0JLQkNCh0J4KK9CS0JvQkNCo0JrQkNCb0JjQiyDQgtCe0KDQgtCVCivQktCb0JDQqNCa0JDQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQkNCd0JTQoNCY0IjQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCR0J7QltCQ0J3QkAor0JLQm9CQ0KjQmtCQ0JvQmNCLLdCR0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCQCivQktCb0JDQqNCa0JDQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCb0JDQqNCa0JDQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCb0JDQqNCa0JDQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCb0JDQqNCa0JDQm9CY0Isg0JTQntCd0JrQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCk0JDQlNCY0JvQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCY0JvQmNCI0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQm9CQ0JfQkNCgCivQktCb0JDQqNCa0JDQm9CY0Isg0JvQkNCX0JDQoAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCb0JDQqNCa0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQktCb0JDQqNCa0JDQm9CY0Isg0J7Qm9CT0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQn9CQ0JLQm9CVCivQktCb0JDQqNCa0JDQm9CY0Isg0J/QkNCS0JvQlQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCf0JDQktCb0JUKK9CS0JvQkNCo0JrQkNCb0JjQiyDQn9CV0KLQkNCgCivQktCb0JDQqNCa0JDQm9CY0Isg0J/QldCi0JDQoAor0JLQm9CQ0KjQmtCQ0JvQmNCLLdCf0J7Qn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCb0JDQqNCa0JDQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQm9CQ0KjQmtCQ0JvQmNCLINCh0JDQktCQCivQktCb0JDQqNCa0JDQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JvQkNCo0JrQkNCb0JjQiyDQodCi0JXQktCQ0J0KK9CS0JvQkNCo0JrQkNCb0JjQiyDQodCi0J7QiNCQ0J0KK9CS0JvQkNCo0JrQkNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCb0JDQqNCa0JDQm9CY0Isg0JfQntCg0JAKK9CS0JvQkNCo0JrQkNCb0JjQiNCQINCI0JXQm9CV0J3QkAor0JLQm9CQ0KjQmtCQ0JvQmNCI0JAg0JLQm9CQ0JTQkAor0JLQm9CQ0KjQmtCQ0JvQmNCdINCR0KDQkNCd0JrQngor0JLQm9CQ0KjQmtCYINCR0J7Qk9CU0JDQndCa0JAKK9CS0JvQkNCo0JrQmCDQm9CQ0JfQkNCgCivQktCb0JDQqNCa0Jgg0J/QoNCV0JTQoNCQ0JMKK9CS0JvQkNCU0JDQoNCh0JrQmCDQntCb0JPQkAor0JLQm9CQ0JTQkNCg0KHQmtCYINCe0JvQk9CQCivQktCb0JDQlNCV0KLQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCU0JXQotCY0Isg0JzQmNCg0JrQngor0JLQm9CQ0JTQmNCLINCU0KDQkNCT0J4KK9CS0JvQkNCU0JjQiyDQnNCY0JvQkNCdCivQktCb0JDQlNCY0Isg0J/QldCi0JDQoAor0JLQm9CQ0JTQmNCc0JjQoCDQodCV0JvQldCd0JAKK9CS0JvQkNCU0JjQnNCY0KAg0JfQlNCg0JDQktCa0J4KK9CS0JvQkNCU0JjQnNCY0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQm9CQ0JTQmNCc0JjQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCU0JjQnNCY0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCb0JDQlNCY0KHQkNCS0InQldCSINCW0JjQktCQ0J0KK9CS0JvQkNCU0JjQodCQ0JLQidCV0JIg0JzQmNCb0J7QoNCQ0JQKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JIg0J/QldCg0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JIg0KLQntCc0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCC0KPQoNCQCivQktCb0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCV0KDQltCV0JHQldCiCivQktCb0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCe0JHQoNCQ0JQKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLLdCf0JXQqNCa0JDQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCb0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCb0JDQlNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JvQkNCU0J7QktCY0Isg0IjQntCS0JDQnQor0JLQm9CQ0JTQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQm9CQ0JTQo9Co0JAg0J3QmNCa0J7Qm9CQCivQktCb0JDQlNCj0KjQmNCLINCY0JLQkNCdCivQktCb0JDQlNCj0KjQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCU0KPQm9Ce0JIg0JbQmNCS0J7QiNCY0J0KK9CS0JvQkNCU0KPQm9Ce0JLQmNCLLdCf0J7Qn9Ce0JIg0JzQkNCg0JjQiNCQINCU0KAg0JvQldCa0JDQoAor0JLQm9CQ0JTQo9Cb0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JvQkNClINCU0JDQndCY0KbQkAor0JLQm9CQ0KUg0JjQktCQ0J0KK9CS0JvQkNClINCf0JDQktCb0JUKK9CS0JvQkNClINCg0JDQlNCe0JLQkNCdCivQktCb0JDQpdCV0Jog0KHQotCQ0J3QmtCeCivQktCb0JDQpdCY0J3QmNCLINCc0JjQm9Ce0KgKK9CS0JvQkNCl0J4g0JrQoNCj0J3QntCh0JvQkNCSCivQktCb0JDQpdCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCl0J7QktCY0Isg0JHQntCI0JDQndCQCivQktCb0JDQpdCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQm9CQ0KXQntCS0JjQiyDQkdCg0JDQndCa0JAKK9CS0JvQkNCl0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQktCb0JDQpdCe0JLQmNCLINCU0JDQndCY0IjQldCb0JAKK9CS0JvQkNCl0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQm9CQ0KXQntCS0JjQiyDQlNCg0JDQk9CeCivQktCb0JDQpdCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JvQkNCl0J7QktCY0Isg0IjQldCb0JjQptCQCivQktCb0JDQpdCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JLQm9CQ0KXQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JLQm9CQ0KXQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCb0JjQptCQCivQktCb0JDQpdCe0JLQmNCLINCc0JjQoNCa0J4g0JTQoCDQmNCd0JMKK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQktCb0JDQpdCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCb0JDQpdCe0JLQmNCLINCf0JDQktCb0JUKK9CS0JvQkNCl0J7QktCY0Isg0KDQkNCU0J7QqAor0JLQm9CQ0KXQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQm9CQ0KXQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9CS0JvQkNCl0J7QktCY0Isg0KHQkNCS0JAg0JTQoAor0JLQm9CQ0KXQntCS0JjQiyDQodCV0J3QmtCQCivQktCb0JDQpdCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JvQkNCl0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCb0JDQpdCe0JLQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9CS0JvQkNCl0J7QktCY0Isg0KLQldCe0JTQntCg0JAKK9CS0JvQkNCl0J7QktCY0Isg0JLQmNCi0J7QnNCY0KDQmtCQCivQktCb0JDQpdCe0JLQmNCLINCS0JvQkNCU0JAKK9CS0JvQkNCl0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQm9CQ0KXQo9Co0JjQiyDQnNCY0KDQmtCeCivQktCb0JDQpdCj0KjQmNCLINCe0JvQk9CY0KbQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCW0JjQktCa0J4KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQgtCj0IjQngor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQlNCQ0KDQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCU0JzQmNCi0JDQoAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCQ0JrQodCY0JwKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCoCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCh0JDQktCeCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCh0J7QpNCY0IjQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCh0KLQntCI0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQotCg0JjQktCj0J3QkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCS0JDQodCeCivQktCb0JDQiNCQ0J3QmtCe0JIg0JvQkNCX0JDQoAor0JLQm9CQ0IjQkNCd0JrQntCSINCd0JDQotCQ0JvQmNCI0JAKK9CS0JvQkNCI0JDQndCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQktCb0JDQiNCQ0J3QmtCe0JIt0JLQo9Cb0JjQiyDQktCV0KDQkAor0JLQm9CQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JLQm9CQ0IjQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQktCb0JDQiNCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JvQkNCI0JjQiyDQlNCj0KjQmNCm0JAKK9CS0JvQkNCI0JjQiyDQiNCe0JLQkNCdCivQktCb0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQktCb0JDQiNCY0Isg0JzQmNCb0J7QqAor0JLQm9CQ0IjQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CS0JvQkNCI0JrQntCSINCR0J7QodCY0InQmtCQCivQktCb0JDQiNCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JvQkNCI0JrQntCSINCR0KDQkNCd0JrQngor0JLQm9CQ0IjQmtCe0JIt0JjQktCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JLQm9CQ0IjQmtCe0JIg0JvQkNCX0JDQoAor0JLQm9CQ0IjQmtCe0JIg0JvQkNCX0JAKK9CS0JvQkNCI0JrQntCSINCc0JDQptCQCivQktCb0JDQiNCa0J7QkiDQnNCY0J7QlNCg0JDQkwor0JLQm9CQ0IjQmtCe0JIg0JzQmNCg0JrQngor0JLQm9CQ0IjQmtCe0JIg0JzQm9CQ0JTQldCdCivQktCb0JDQiNCa0J7QkiDQndCY0JrQntCb0JAKK9CS0JvQkNCI0JrQntCSINCf0JDQktCb0JUKK9CS0JvQkNCI0JrQntCSINCf0JXQotCQ0KAKK9CS0JvQkNCI0JrQntCSINCX0J7QoNCY0KbQkAor0JLQm9CQ0IjQmtCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9CS0JvQkNCI0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0JvQkNCI0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQm9CQ0IjQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCb0JDQiNCa0J7QktCY0Isg0J3QldCc0JDQitCQCivQktCb0JDQiNCd0JjQiyDQp9CV0JTQntCc0JjQoAor0JLQm9CQ0IjQndCY0Isg0JPQntCg0JDQnQor0JLQm9CQ0IjQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0JvQkNCI0J3QmNCLINCX0J7QoNCQCivQktCb0JDQiNCe0JLQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQktCb0JDQm9Cj0JrQmNCdINCU0KDQkNCT0J7QodCb0JDQkgor0JLQm9CQ0JvQo9Ca0JjQnSDQmNCb0J7QndCQCivQktCb0JDQm9Cj0JrQmNCdINCY0JvQntCd0JrQkAor0JLQm9CQ0JvQo9Ca0JjQnSDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9CS0JvQkNCb0KPQmtCY0J0g0JzQmNCg0IjQkNCd0JAKK9CS0JvQkNCb0KPQmtCY0J0g0J3QkNCU0JAKK9CS0JvQkNCb0KPQmtCY0J0g0KHQkNCS0JAKK9CS0JvQkNCb0KPQmtCY0J0g0KHQm9CQ0JLQmtCeCivQktCb0JDQm9Cj0JrQmNCdINCX0J7QoNCQCivQktCb0JDQntCSLdCW0JDQoNCa0J7QkiDQntCb0JPQkAor0JLQm9CQ0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0JLQm9CQ0J7QkiDQiNCQ0JLQntCg0JrQkAor0JLQm9CQ0J7QkiDQnNCY0JvQntCoCivQktCb0JDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JvQkNCe0JIg0JLQldCb0JjQnNCY0KAKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCb0JDQntCS0JjQiyDQkNCd0JjQptCQCivQktCb0JDQntCS0JjQiyDQkdCe0KjQmtCeCivQktCb0JDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQm9CQ0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCb0JDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JvQkNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQm9CQ0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQm9CQ0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQm9CQ0J7QktCY0Isg0JTQo9Co0JrQngor0JLQm9CQ0J7QktCY0Isg0JPQkNCS0KDQkAor0JLQm9CQ0J7QktCY0Isg0KXQkNCg0JgKK9CS0JvQkNCe0JLQmNCLINCY0JPQitCQ0KIKK9CS0JvQkNCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JLQm9CQ0J7QktCY0Isg0IjQldCb0JAKK9CS0JvQkNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JvQkNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JvQkNCe0JLQmNCLINCa0JDQotCY0KbQkAor0JLQm9CQ0J7QktCY0Isg0JvQkNCX0JDQoAor0JLQm9CQ0J7QktCY0Isg0InQo9CR0JjQqNCQCivQktCb0JDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CS0JvQkNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCb0JDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQm9CQ0J7QktCY0Isg0JvQo9Ca0JAKK9CS0JvQkNCe0JLQmNCLINCc0JDQoNCQCivQktCb0JDQntCS0JjQiyDQnNCQ0KDQmtCeCivQktCb0JDQntCS0JjQiyDQnNCY0JvQntCoCivQktCb0JDQntCS0JjQiyDQnNCY0JvQntCoCivQktCb0JDQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JLQm9CQ0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQm9CQ0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQktCb0JDQntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQm9CQ0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9CS0JvQkNCe0JLQmNCLINCf0JvQldCc0JXQndCa0JAKK9CS0JvQkNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCb0JDQntCS0JjQiyDQoNCQ0IjQmtCeCivQktCb0JDQntCS0JjQiyDQodCQ0JLQkAor0JLQm9CQ0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCb0JDQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0JLQm9CQ0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCb0JDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JvQkNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CS0JvQkNCe0JLQmNCLINCi0J7QqNCQCivQktCb0JDQntCS0JjQiyDQotCe0JTQntCgCivQktCb0JDQntCS0JjQiyDQotCe0JzQkAor0JLQm9CQ0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQm9CQ0J7QktCY0Isg0JLQldCh0J3QkAor0JLQm9CQ0J7QktCY0Isg0JLQm9CQ0KHQotCY0KHQm9CQ0JLQkAor0JLQm9CQ0J7QktCY0Isg0JfQntCg0JDQnQor0JLQm9CQ0KHQkNCn0JXQktCY0Isg0KHQotCe0IjQmtCeCivQktCb0JDQodCQ0Jog0KDQldCd0JDQotCQCivQktCb0JDQodCe0JIg0JzQmNCl0JDQiNCb0J4KK9CS0JvQkNCh0KLQldCb0JjQiyDQoNCe0JrQodCQ0J3QlNCQCivQktCb0JDQotCa0J7QktCY0Isg0JbQldCJ0JrQngor0JLQm9CQ0KLQmtCe0JLQmNCLINCQ0J3Qk9CV0JvQngor0JLQm9CQ0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JvQkNCi0JrQntCS0JjQiyDQmtCg0JXQqNCY0JzQmNCgCivQktCb0JDQotCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQktCb0JDQotCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQktCb0JDQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQm9CQ0KLQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQm9CQ0KLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JvQkNCi0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0JvQkNCi0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCi0JrQntCS0JjQiyDQodCQ0JLQmtCQCivQktCb0JDQotCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JLQntCo0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0KjQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0J7QlNCQINCX0JTQldCd0JrQngor0JLQntCU0JDQm9Ce0JIg0JTQldCI0JDQnQor0JLQntCU0JDQm9Ce0JIg0JzQm9CQ0JTQldCdCivQktCe0JTQldCd0JjQp9CQ0KAg0J3QmNCa0J7Qm9CQCivQktCe0JTQntCT0JDQlyDQlNCg0JDQk9CQ0J0KK9CS0J7QlNCe0JPQkNCXINCb0JXQn9Ce0KHQkNCS0JAKK9CS0J7QlNCe0J/QmNCS0JXQpiDQltCV0InQmtCeCivQktCe0JTQntCf0JjQktCV0KYg0JTQoNCQ0JPQmNCm0JAKK9CS0J7QlNCe0J/QmNCS0JXQpiDQnNCY0KXQkNCV0JsKK9CS0J7Qk9CQ0IrQkNCmINCc0JjQm9CV0J3QmtCeCivQktCe0JPQm9CV0Kgg0JvQmNCU0JjQiNCQCivQktCe0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9CS0J7QiNCn0JXQktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQntCI0KfQmNCLINCI0J7QktCQ0J0KK9CS0J7QiNCQ0KjQi9Cj0Jog0JzQkNCg0JAKK9CS0J7QiNCY0KfQmNCLINCI0JXQm9CV0J3QkAor0JLQntCI0JjQp9CY0Isg0KDQkNCI0JrQngor0JLQntCI0JjQp9CY0Isg0KHQkNCS0JAKK9CS0J7QiNCY0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0J7QiNCY0JzQmNCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCe0IjQmNCdINCc0JjQm9Ca0JAKK9CS0J7QiNCY0J3QntCSINCC0J7QoNCC0JUKK9CS0J7QiNCY0J3QntCSINCc0JjQoNCQCivQktCe0IjQmNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQktCe0IjQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CS0J7QiNCY0J3QntCS0JjQiyDQkdCe0JPQmNCLCivQktCe0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCe0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQntCI0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JLQntCI0JjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JLQntCI0JjQndCe0JLQmNCLINCI0J7QktCQ0J0g0JTQoAor0JLQntCI0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JLQntCI0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQntCI0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAg0JTQoAor0JLQntCI0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0J7QiNCY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQntCI0JjQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQktCe0IjQmNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0J7QiNCY0J3QntCS0JjQiyDQktCj0IjQmNCm0JAKK9CS0J7QiNCY0J3QntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQktCe0IjQmNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCX0JvQkNCi0JjQiNCQCivQktCe0IjQmtCY0Isg0JHQntCo0JrQngor0JLQntCI0JrQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9CS0J7QiNCd0JjQiyDQpNCg0JDQitCQCivQktCe0IjQndCY0Ist0KXQkNCI0JTQo9CaINCT0JjQl9CQCivQktCe0IjQndCY0Ist0KXQkNCI0JTQo9CaINCJ0JjQidCQ0J3QkAor0JLQntCI0J3QmNCLLdCl0JDQiNCU0KPQmiDQnNCY0KDQiNCQ0J3QkAor0JLQntCI0J3QmNCLINCI0J7QktCQ0J0KK9CS0J7QiNCd0JjQiy3QmtCe0KDQotCj0JjQqCDQodCi0JDQndCQCivQktCe0IjQndCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCe0IjQndCe0JIt0JjQm9CY0Isg0KDQntCX0JDQm9CY0IjQkAor0JLQntCI0J3QntCSINCh0KLQntCI0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CS0J7QiNCd0J7QktCY0Isg0JbQkNCg0JrQngor0JLQntCI0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQktCe0IjQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JLQntCI0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQktCe0IjQndCe0JLQmNCLINCC0KPQoNCQCivQktCe0IjQndCe0JLQmNCLINCC0KPQoNCeCivQktCe0IjQndCe0JLQmNCLINCQ0KbQkAor0JLQntCI0J3QntCS0JjQiyDQkNCd0JDQodCi0JDQl9CY0IjQkAor0JLQntCI0J3QntCS0JjQiyDQkdCg0JDQptCQCivQktCe0IjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQntCI0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCe0IjQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JLQntCI0J3QntCS0JjQiyDQlNCQ0JLQntCgCivQktCe0IjQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JLQntCI0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCe0IjQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQktCe0IjQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQktCe0IjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQntCI0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQktCe0IjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JPQmNCX0JXQm9CQCivQktCe0IjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0J7QiNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQntCI0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQktCe0IjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0J7QiNCd0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCY0JLQkNCdCivQktCe0IjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JLQntCI0J3QntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQktCe0IjQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JLQntCI0J3QntCS0JjQiyDQmtCb0JDQoNCQCivQktCe0IjQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JLQntCI0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JLQntCI0J3QntCS0JjQiyDQnNCQ0KDQkAor0JLQntCI0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQmNCd0JAKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCJ0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JLQntCI0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCe0IjQndCe0JLQmNCLINCc0JvQkNCU0JXQnSDQlNCY0J/QmyDQntCV0KYKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQktCe0IjQndCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JLQntCI0J3QntCS0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JLQntCI0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCe0IjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0J7QiNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JLQntCI0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCQCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCVCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCVCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCVCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCe0IjQndCe0JLQmNCLLdCg0JDQlNCj0IjQmtCe0JIg0J3QkNCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JLQntCI0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CS0J7QiNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCe0IjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JLQntCI0J3QntCS0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9CS0J7QiNCd0J7QktCY0Isg0KHQotCQ0JzQldCd0JrQkAor0JLQntCI0J3QntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQntCI0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0KHQotCV0JLQkAor0JLQntCI0J3QntCS0JjQiyDQodCi0JXQktCeCivQktCe0IjQndCe0JLQmNCLINCh0KLQntCI0JrQkAor0JLQntCI0J3QntCS0JjQiyDQodCi0KDQkNCl0JjQitCQCivQktCe0IjQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0J7QiNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0J7QiNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQntCI0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCe0IjQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0J7QiNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQntCI0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCe0IjQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CS0J7QiNCiINCJ0KPQkdCY0KbQkAor0JLQntCI0KIg0JzQmNCb0JDQndCQCivQktCe0IjQotCQ0KEg0KHQotCQ0J3QmNCh0JvQkNCSCivQktCe0IjQotCV0KXQntCS0KHQmtCYINCI0JDQoNCe0KHQm9CQ0JIKK9CS0J7QiNCi0JXQpdCe0JLQodCa0Jgg0J7QotCeCivQktCe0IjQotCV0KXQntCS0KHQmtCYINCe0KLQngor0JLQntCI0KLQldCl0J7QktCh0JrQmCDQl9CQ0JPQntCg0JrQkAor0JLQntCI0JLQntCU0JjQiyDQgtCj0KDQkAor0JLQntCI0JLQntCU0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQntCI0JLQntCU0JjQiyDQkNCd0JAKK9CS0J7QiNCS0J7QlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCe0IjQktCe0JTQmNCLINCU0JDQndCY0KbQkAor0JLQntCI0JLQntCU0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCe0IjQktCe0JTQmNCLINCU0KPQqNCQ0J0KK9CS0J7QiNCS0J7QlNCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JLQntCI0JLQntCU0JjQiyDQiNCe0JLQkNCdCivQktCe0IjQktCe0JTQmNCLINCc0JDQndCY0KjQkAor0JLQntCI0JLQntCU0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQktCe0JTQmNCLINCc0JjQm9CVCivQktCe0IjQktCe0JTQmNCLINCc0JjQm9Ce0KgKK9CS0J7QiNCS0J7QlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0J7QiNCS0J7QlNCY0Isg0JzQmNCg0JrQngor0JLQntCI0JLQntCU0JjQiyDQndCQ0JTQkAor0JLQntCI0JLQntCU0JjQiyDQndCY0JrQntCb0JAKK9CS0J7QiNCS0J7QlNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0J7QiNCS0J7QlNCY0Isg0KDQkNCi0JrQkAor0JLQntCI0JLQntCU0JjQiyDQodCb0JDQktCa0J4KK9CS0J7QiNCS0J7QlNCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQktCe0JTQmNCLINCh0KLQldCS0JDQnQor0JLQntCI0JLQntCU0JjQiy3QotCQ0KHQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0J7QiNCS0J7QlNCY0Isg0JLQkNCh0J4KK9CS0J7QiNCS0J7QlNCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQntCI0JLQntCU0JjQiyDQl9Ce0KDQkAor0JLQntCa0KjQmCDQgtCV0JLQkNCUCivQktCe0JrQkNCb0JjQiyDQpdCY0JvQlNCV0JPQkNCg0JQKK9CS0J7QmtCQ0JvQmNCLINCi0JXQntCR0JDQm9CUCivQktCe0JrQmNCLINCU0KDQkNCT0JDQnQor0JLQntCa0JjQiyDQlNCj0KjQmtCeCivQktCe0JrQmNCLINCI0J7QktCQ0J0KK9CS0J7QmtCY0Isg0J3QkNCU0JAKK9CS0J7Qm9Cn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQntCb0KfQldCS0JjQiyDQldCS0JAKK9CS0J7Qm9Cn0JXQktCY0Isg0KLQntCU0J7QoAor0JLQntCb0KfQldCS0KHQmtCYINCV0JLQkNCd0KLQmNCI0JUKK9CS0J7Qm9Cn0JXQktCh0JrQmCDQndCY0JrQntCb0JAKK9CS0J7Qm9CQ0Kgg0JjQodCY0JTQntCgCivQktCe0JvQkNCoINCc0JjQm9CQ0J3QmtCeCivQktCe0JvQkNCoINCc0JjQm9CQ0J0KK9CS0J7Qm9CQ0KAg0JDQndCU0KDQkNCoCivQktCe0JvQkNCgINCa0JDQoNCb0J4KK9CS0J7Qm9CQ0KAg0J/QldCi0JDQoAor0JLQntCb0JDQoCDQodCi0IjQldCf0JDQnQor0JLQntCb0JDQoNCV0JIg0InQo9CR0J7QnNCY0KAKK9CS0J7Qm9CQ0KDQldCSINCd0JDQlNCQCivQktCe0JvQkNCg0JXQkiDQodCi0JXQktCQ0J0KK9CS0J7Qm9CQ0KDQldCS0JjQiyDQnNCQ0KDQmtCeCivQktCe0JvQkNCg0JXQktCY0Isg0JfQntCg0JDQnQor0JLQntCb0JDQoNCe0JIg0JzQmNCb0JDQnQor0JLQntCb0JDQoNCe0JIg0KDQkNCU0J7QktCQ0J0KK9CS0J7Qm9CV0J3QpiDQnNCQ0KDQmNCI0JAKK9CS0J7Qm9CkINCR0J7QoNCY0KEKK9CS0J7Qm9CkINCU0KDQkNCT0KPQotCY0J0KK9CS0J7Qm9CkINCY0KjQotCS0JDQnQor0JLQntCb0KQg0InQo9CR0JjQptCQCivQktCe0JvQpCDQidCj0JTQldCS0JjQogor0JLQntCb0KQg0JzQmNCg0JAKK9CS0J7Qm9CkINCc0JjQoNCQCivQktCe0JvQpCDQktCV0KDQkAor0JLQntCb0JjQpyDQktCb0JDQlNCY0JzQmNCgCivQktCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0JvQmNCLINCR0J7QltCY0JTQkNCgCivQktCe0JvQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JLQntCb0JjQiyDQk9Cg0KPQiNCQCivQktCe0JvQmNCLINCJ0JjQidCQ0J3QkAor0JLQntCb0JjQiyDQnNCQ0KDQmNCd0JrQkAor0JLQntCb0JjQiyDQn9CV0KLQkNCgCivQktCe0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0J7Qm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCe0JvQmNCLINCi0JjQpdCe0JzQmNCgCivQktCe0JvQmNCLINCS0JjQndCa0JAKK9CS0J7Qm9Ca0JDQoCDQldCc0JjQmwor0JLQntCb0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CS0J7Qm9Ce0KjQmtCY0J0g0JHQoNCQ0KLQmNCh0JvQkNCSCivQktCe0JvQntCo0JrQmNCdINCU0KDQkNCT0JjQptCQCivQktCe0J3QmNCLINCS0JvQkNCi0JrQngor0JLQntCg0JDQp9CV0Jog0JbQldCJ0JrQngor0JLQntCg0JDQp9CV0Jog0JvQkNCU0JjQodCb0JDQkgor0JLQntCg0JDQotCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCe0KDQk9CY0Isg0ILQntCg0ILQlQor0JLQntCg0JPQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0KDQk9CY0Isg0JDQndCC0JXQm9Ca0JAKK9CS0J7QoNCT0JjQiyDQkdCe0KDQmNCS0J7QiAor0JLQntCg0JPQmNCLINCU0KDQkNCT0JDQnQor0JLQntCg0JPQmNCLINCV0JzQmNCbCivQktCe0KDQk9CY0Isg0JPQkNCS0KDQkAor0JLQntCg0JPQmNCLINCI0J7QodCY0J8KK9CS0J7QoNCT0JjQiyDQm9CQ0JfQkNCgCivQktCe0KDQk9CY0Isg0JzQkNCg0JAKK9CS0J7QoNCT0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9CS0J7QoNCT0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JLQntCg0JPQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0J7QoNCT0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QoNCT0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QoNCT0JjQiyDQktCj0IjQmNCm0JAKK9CS0J7QoNCT0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQntCg0JPQmNCLINCX0J7QoNCQCivQktCe0KDQk9CY0J3QpiDQptCS0JXQotCQCivQktCe0KDQk9Cj0KfQmNCLINCc0JjQm9Ce0KgKK9CS0J7QoNCT0KPQp9CY0Isg0KHQkNCo0JAKK9CS0J7QoNCT0KPQp9CY0J0g0JjQktCQ0J0KK9CS0J7QoNCa0JDQn9CQINCd0JjQmtCe0JvQkAor0JLQntCg0JrQkNCf0JjQiyDQlNCj0KjQkNCdCivQktCe0KDQmtCQ0J/QmNCLINCJ0KPQkdCY0KbQkAor0JLQntCg0JrQkNCf0JjQiyDQnNCY0JvQkNCdCivQktCe0KDQmtCQ0J/QmNCLINCd0JjQmtCe0JvQkAor0JLQntCg0JvQmNCn0JXQmiDQiNCQ0J3QntCoCivQktCe0KDQm9CY0KfQldCaINCI0JDQndCe0KgKK9CS0J7QoNCb0JjQp9CV0Jog0JzQkNCg0JjQptCQCivQktCe0KDQntCR0IjQldCSINCf0JXQotCQ0KAKK9CS0J7QoNCe0JHQiNCV0JIg0KHQkNCS0JAKK9CS0J7QoNCe0KLQntCS0JjQiyDQodCi0JDQndCQCivQktCe0KDQotCY0Isg0JHQntCh0JjQidCa0JAKK9CS0J7Ql9CQ0KAg0JDQndCQCivQktCe0JfQkNCgINCU0JDQndCY0KbQkAor0JLQntCX0JDQoCDQlNCg0JDQk9CQ0J0KK9CS0J7Ql9CQ0KAg0JzQmNCb0J7QqAor0JLQntCX0JDQoCDQn9CQ0JLQm9CVINCU0JjQn9CbINCY0J3Qkwor0JLQntCX0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0J7Ql9CQ0KDQldCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CS0J7Ql9CQ0KDQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0J7Ql9CQ0KDQldCS0JjQiyDQnNCY0KDQmtCeCivQktCe0JfQkNCg0J7QktCY0Isg0JLQmNCU0JAKK9CS0KDQp9CY0J3QkNCmINCf0JXQotCQ0KAKK9CS0KDQqNCa0JAg0ILQntCg0ILQlQor0JLQoNCo0JrQkCDQlNCQ0J3QmNCI0JXQmwor0JLQoNCo0JrQkCDQmtCQ0KLQkNCg0JjQndCQCivQktCg0JDQp9CQ0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCg0JDQp9CQ0KAg0JTQkNCg0JjQndCa0JAKK9CS0KDQkNCn0JDQoCDQiNCe0JLQkNCdCivQktCg0JDQp9CQ0KAg0InQo9CR0J7QnNCY0KAKK9CS0KDQkNCn0JDQoCDQidCj0JHQngor0JLQoNCQ0KfQkNCgINCc0JjQm9CQ0J0KK9CS0KDQkNCn0JDQoCDQnNCY0J7QidCa0JAKK9CS0KDQkNCn0JDQoCDQndCV0JTQldCJ0JrQngor0JLQoNCQ0KfQkNCgINCh0JvQkNCS0JrQkAor0JLQoNCQ0KfQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9CS0KDQkNCn0JDQoCDQktCV0KDQkAor0JLQoNCQ0KfQkNCgINCS0KPQmgor0JLQoNCQ0KfQkNCgINCX0JTQldCd0JrQkAor0JLQoNCQ0KfQkNCg0JjQp9CY0Isg0KDQkNCU0JUKK9CS0KDQkNCn0JDQoNCY0Isg0ILQntCg0ILQlQor0JLQoNCQ0KfQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQoNCQ0KfQkNCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0KDQkNCn0JDQoNCY0Isg0IjQldCb0JjQptCQCivQktCg0JDQp9CQ0KDQmNCLINCJ0JjQidCQ0J3QkAor0JLQoNCQ0KfQkNCg0JjQiyDQidCj0JHQmNCo0JAKK9CS0KDQkNCn0JDQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KDQkNCn0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQktCg0JDQp9CQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQktCg0JDQp9CQ0KDQmNCLINCc0JjQm9CY0KHQkNCSCivQktCg0JDQp9CQ0KDQmNCLINCc0JjQm9Ce0JzQmNCgCivQktCg0JDQp9CQ0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KDQkNCn0JXQktCY0Isg0KHQkNCS0JrQkAor0JLQoNCQ0KjQotCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JLQoNCQ0JHQm9CY0Jog0IjQo9Cb0JjQiNCQ0J3QkAor0JLQoNCQ0JPQntCS0JjQiyDQiNCe0KbQkAor0JLQoNCQ0J3QkCDQndCQ0JTQkAor0JLQoNCQ0J3QkNCmINCa0KHQldCd0JjQiNCQCivQktCg0JDQndCQ0KYg0KHQldCQ0JQKK9CS0KDQkNCd0JDQpiDQktCQ0KXQmNCU0JAKK9CS0KDQkNCd0JDQpiDQl9CY0IjQkNCUCivQktCg0JDQndCV0Kgg0KfQldCU0J7QnNCY0KAKK9CS0KDQkNCd0JXQqCDQkdCe0JbQmNCU0JDQoAor0JLQoNCQ0J3QldCoINCU0JDQktCe0KDQmNCdCivQktCg0JDQndCV0Kgg0JXQnNCY0JvQmNCI0JAKK9CS0KDQkNCd0JXQqCDQiNCe0JLQkNCd0JrQkAor0JLQoNCQ0J3QldCoINCc0JDQoNCY0IjQkAor0JLQoNCQ0J3QldCoINCc0JjQm9CQ0J0KK9CS0KDQkNCd0JXQqCDQnNCY0JvQmtCQCivQktCg0JDQndCV0Kgg0JzQmNCb0KPQotCY0J0KK9CS0KDQkNCd0JXQqCDQndCQ0JTQkAor0JLQoNCQ0J3QldCoINCd0JjQmtCe0JvQkAor0JLQoNCQ0J3QldCoINCf0JXQotCQ0KAKK9CS0KDQkNCd0JXQqCDQodCc0JjQidCQCivQktCg0JDQndCV0Kgg0JLQldCg0JjQptCQCivQktCg0JDQndCV0KjQldCS0JjQiyDQkNCU0JDQnAor0JLQoNCQ0J3QldCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCU0JDQnNCI0JDQnQor0JLQoNCQ0J3QldCo0JXQktCY0Isg0JrQkNCi0JjQptCQCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0JvQntCoCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCd0JDQlNCQINCU0KAKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCg0JDQndCV0KjQldCS0JjQiyDQoNCQ0IjQmtCeCivQktCg0JDQndCV0KjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCh0KLQntCI0JDQnQor0JLQoNCQ0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQktCg0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQktCg0JDQndCY0Isg0JTQntCR0KDQmNCd0JAKK9CS0KDQkNCd0JjQiyDQlNCg0JDQk9CY0IrQkAor0JLQoNCQ0J3QmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JLQoNCQ0J3QmNCLINCY0JvQmNCI0JAKK9CS0KDQkNCd0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQktCg0JDQndCY0Isg0JzQkNCg0JrQngor0JLQoNCQ0J3QmNCLINCc0JjQm9CQ0J0g0J/QoNCe0KTQldCh0J7QoAor0JLQoNCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQktCg0JDQndCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0KDQkNCd0JjQiyDQnNCY0KDQp9CV0KLQkAor0JLQoNCQ0J3QmNCLINCc0JjQoNCa0J4KK9CS0KDQkNCd0JjQiyDQnNCY0KLQoNCQCivQktCg0JDQndCY0Isg0J3QldCd0JDQlAor0JLQoNCQ0J3QmNCLINCd0JjQmtCe0JvQkAor0JLQoNCQ0J3QmNCLINCg0JDQlNCY0JLQntCI0JUKK9CS0KDQkNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQoNCQ0J3QmNCLINCh0JvQkNCS0JrQngor0JLQoNCQ0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KDQkNCK0JXQqCDQk9Ce0IjQmtCeCivQktCg0JDQitCV0Kgg0IjQntCS0JDQndCa0JAKK9CS0KDQkNCK0JXQqCDQnNCY0JvQldCd0JrQngor0JLQoNCQ0IrQldCoINCc0JjQm9CV0J3QmtCeCivQktCg0JDQitCV0Kgg0JzQmNCb0JUKK9CS0KDQkNCK0JXQqCDQnNCY0JvQmtCQCivQktCg0JDQitCV0Kgg0J3QldCd0JDQlAor0JLQoNCQ0IrQldCoINCg0JDQlNCe0JzQmNCgCivQktCg0JDQitCV0Kgg0KHQntCk0JjQiNCQCivQktCg0JDQitCV0Kgg0KHQktCV0KLQmNCh0JvQkNCSCivQktCg0JDQitCV0Kgg0KHQktCV0KLQm9CQ0J3QkAor0JLQoNCQ0IrQldCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQktCg0JDQitCV0KjQldCS0JjQiyDQlNCY0J3QmtCQCivQktCg0JDQitCV0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KDQkNCK0JXQqNCV0JLQmNCLINCI0J7QktCY0KbQkAor0JLQoNCQ0IrQldCo0JXQktCY0Isg0JzQntCc0JjQoAor0JLQoNCQ0IrQldCo0JXQktCY0Isg0KDQkNCi0J7QnNCY0KAKK9CS0KDQkNCK0JXQqNCV0JLQmNCLINCS0JXQidCa0J4KK9CS0KDQkNCK0JXQktCQ0KYg0JTQoNCQ0JPQkNCdCivQktCg0JDQitCV0JLQkNCmINCc0JjQm9CY0JLQntCI0JUKK9CS0KDQkNCK0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCg0JDQitCa0J7QktCY0Isg0JzQmNCb0JUKK9CS0KDQkNCK0JrQntCS0JjQiyDQodCc0JjQidCa0JAKK9CS0KDQkNCK0JrQntCS0JjQiyDQodCg0JXQotCeCivQktCg0JDQitCeINCk0KDQkNCK0JAKK9CS0KDQkNCK0J4g0JfQntCb0KLQkNCdCivQktCg0JDQndCa0J7QktCY0Isg0IjQo9Cg0JDQiAor0JLQoNCQ0J3QmtCe0JLQmNCLINCb0KPQmtCQCivQktCg0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQoNCQ0J/Qp9CV0JIg0JbQmNCS0JrQngor0JLQoNCQ0J/Qp9CV0JIg0JTQo9Co0JrQngor0JLQoNCQ0J/Qp9CV0JIg0JzQldCb0JDQndCY0IjQkAor0JLQoNCQ0KLQitCQ0J0g0JHQoNCQ0J3QmNCc0JjQoAor0JLQoNCQ0KLQntCK0JjQiyDQodCb0JDQktCe0InQo9CRCivQktCg0JHQkNCo0JrQmCDQltCQ0KDQmtCeCivQktCg0JHQkNCo0JrQmCDQltCQ0KDQmtCeCivQktCg0JHQkNCo0JrQmCDQgtCe0KDQgtCVCivQktCg0JHQkNCo0JrQmCDQgtCe0KDQgtCVCivQktCg0JHQkNCo0JrQmCDQgtCj0KDQkAor0JLQoNCR0JDQqNCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KDQkdCQ0KjQmtCYINCQ0J3QmNCm0JAKK9CS0KDQkdCQ0KjQmtCYINCR0KDQkNCd0JjQodCb0JDQktCQCivQktCg0JHQkNCo0JrQmCDQlNCQ0KDQmNCd0JrQkAor0JLQoNCR0JDQqNCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JLQoNCR0JDQqNCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQkNCdCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQkNCdCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQkNCdCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQmNCm0JAKK9CS0KDQkdCQ0KjQmtCYINCT0J7QoNCU0JDQndCQCivQktCg0JHQkNCo0JrQmCDQiNCV0JvQldCd0JAKK9CS0KDQkdCQ0KjQmtCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQktCg0JHQkNCo0JrQmCDQiNCe0JLQkNCdCivQktCg0JHQkNCo0JrQmCDQiNCj0JvQmNCI0JDQndCQCivQktCg0JHQkNCo0JrQmCDQmtCe0KHQotCQCivQktCg0JHQkNCo0JrQmCDQm9CQ0JfQkNCgCivQktCg0JHQkNCo0JrQmCDQidCY0InQkNCd0JAKK9CS0KDQkdCQ0KjQmtCYINCJ0KPQkdCY0KbQkCDQnNCgCivQktCg0JHQkNCo0JrQmCDQidCj0JHQntCc0JjQoAor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JDQnQor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JDQnQor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JXQndCQCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQldCd0JrQngor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JjQptCQCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQntCg0JDQlAor0JLQoNCR0JDQqNCa0Jgg0JzQmNCe0JTQoNCQ0JMKK9CS0KDQkdCQ0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KDQkdCQ0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KDQkdCQ0KjQmtCYINCf0JDQktCb0JUKK9CS0KDQkdCQ0KjQmtCYINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQktCg0JHQkNCo0JrQmCDQn9CV0KLQkNCgCivQktCg0JHQkNCo0JrQmCDQn9CV0KLQkNCgCivQktCg0JHQkNCo0JrQmCDQoNCQ0JTQkAor0JLQoNCR0JDQqNCa0Jgg0KDQkNCU0JXQndCa0J4KK9CS0KDQkdCQ0KjQmtCYINCh0JDQktCQCivQktCg0JHQkNCo0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQktCg0JHQkNCo0JrQmCDQodCi0JXQktCQ0J0g0JTQoAor0JLQoNCR0JDQqNCa0Jgg0KHQktCV0KLQm9CQ0J3QkAor0JLQoNCR0JDQqNCa0Jgg0KLQkNCK0JAKK9CS0KDQkdCQ0KjQmtCYINCi0JjQnNCQCivQktCg0JHQkNCo0JrQmCDQotCe0JTQntCgCivQktCg0JHQkNCo0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CS0KDQkdCQ0IjQkNCmINCC0J7QoNCC0JUKK9CS0KDQkdCQ0IjQkNCmINCm0JLQldCL0JUKK9CS0KDQkdCQ0IjQkNCmINCI0J7QktCQ0J0KK9CS0KDQkdCQ0IjQkNCmINCS0JDQm9CV0KDQmNCI0JAKK9CS0KDQkdCQ0J3QkNCmINCb0JDQiNCe0KgKK9CS0KDQkdCY0KbQkCDQlNCg0JDQk9Ce0InQo9CRCivQktCg0JHQmNCm0JAg0JrQodCV0J3QmNCI0JAKK9CS0KDQkdCY0KbQkCDQn9CV0KLQkNCgCivQktCg0JHQidCQ0J3QkNCmINCQ0JvQldCdCivQktCg0KbQkNCdINCS0JDQm9CV0KDQmNCI0JAKK9CS0KDQptCV0Ikg0JbQmNCS0JrQngor0JLQoNCm0JXQiSDQkdCe0JbQmNCU0JDQoAor0JLQoNCm0JXQiSDQidCY0InQkNCd0JAKK9CS0KDQptCV0Ikg0JzQmNCl0JDQiNCb0J4KK9CS0KDQptCV0Ikg0JfQntCg0JDQnQor0JLQoNCU0J7QidCQ0Jog0JHQoNCQ0J3QmNCc0JjQoAor0JLQoNCU0J7QidCQ0Jog0KDQkNCU0J7QktCQ0J3QmtCQCivQktCg0JXQqNCL0JDQmiDQmNCo0KLQktCQ0J0KK9CS0KDQldCL0JAg0JHQoNCQ0J3QmtCeCivQktCg0JXQi9CeINCS0JXQm9CY0JzQmNCgCivQktCg0JXQkdCQ0KYg0JfQktCe0J3QmNCc0JjQoAor0JLQoNCV0JHQkNCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JLQoNCV0JHQkNCb0J7QkiDQodCi0JXQktCQ0J0KK9CS0KDQldCR0JDQm9Ce0JIg0KLQmNCl0J7QnNCY0KAKK9CS0KDQldCS0JXQl9Ce0KHQmtCYINCg0JjQodCi0J4KK9CS0KDQldCS0JjQp9CY0Isg0ILQntCg0ILQlQor0JLQoNCV0JLQmNCn0JjQiyDQodCY0JzQkAor0JLQoNCV0JLQmNCn0JjQiyDQotCg0JjQktCj0J0KK9CS0KDQk9Ce0JIg0JrQntCh0KLQkAor0JLQoNCT0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCg0JPQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KDQk9Ce0JLQmNCLINCS0JXQoNCQCivQktCg0JPQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCg0KXQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KDQpdCe0JLQkNCmINCU0JDQndCVCivQktCg0KXQntCS0JDQpiDQiNCQ0KHQnNCY0J3QkAor0JLQoNCl0J7QktCQ0KYg0J3QldCU0JXQidCa0J4KK9CS0KDQpdCe0JLQkNCmINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CS0KDQpdCe0JLQkNCmINCi0J7QnNCY0KHQm9CQ0JIKK9CS0KDQmtCV0Kgg0JPQntCg0JDQnQor0JLQoNCc0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KDQndCn0JjQiyDQgtCe0KDQgtCVCivQktCg0KHQkNCI0JrQntCSINCY0JvQmNCI0JAKK9CS0KDQodCQ0IjQmtCe0JIg0JjQodCY0JTQntCgCivQktCg0KHQkNCI0JrQntCSINCI0KPQm9Ca0JAKK9CS0KDQodCQ0IjQmtCe0JIg0InQo9CR0JjQptCQCivQktCg0KHQkNCI0JrQntCSINCc0JjQm9Ce0KgKK9CS0KDQodCQ0IjQmtCe0JIg0J3QldCS0JXQndCa0JAKK9CS0KDQodCV0InQkCDQktCY0J3QmtCeCivQktCg0KLQmNCa0JDQn9CQINCI0J7QktCQ0J3QmtCQCivQktCg0KLQmNCf0KDQkNCo0JrQmCDQn9CV0KLQkNCgCivQktCg0KLQmNCf0KDQkNCo0JrQmCDQoNCQ0JTQntCS0JDQnSDQlNCgCivQktCg0KLQmNCf0KDQkNCo0JrQmCDQoNCQ0JTQntCS0JDQnQor0JLQoNCi0JjQn9Cg0JDQqNCa0Jgg0JLQkNCh0JAKK9CS0KDQotCe0JLQqNCd0JjQmiDQnNCY0KXQkNCI0JvQngor0JLQoNCi0KPQm9CV0Jog0KHQnNCY0InQkAor0JLQoNCi0KPQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQoNCi0KPQndCY0Isg0JzQkNCg0JrQngor0JLQoNCi0KPQndCY0Isg0J3QmNCa0J7Qm9CQCivQktCg0KLQo9Cd0KHQmtCYINCU0JDQndCY0KbQkAor0JLQoNCi0KPQndCh0JrQmCDQpdCV0JTQktCY0JPQkAor0JLQoNCi0KPQndCh0JrQmCDQiNCj0JvQmtCQCivQktCg0KLQo9Cd0KHQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9CS0KDQotCj0J3QodCa0Jgg0JzQmNCb0JDQnQor0JLQoNCi0KPQndCh0JrQmCDQnNCY0JvQmNCm0JAKK9CS0KDQotCj0J3QodCa0Jgg0JzQmNCe0JTQoNCQ0JMKK9CS0KDQotCj0J3QodCa0Jgg0JzQm9CQ0JTQldCdCivQktCg0KLQo9Cd0KHQmtCYINCh0KDQgtCQ0J0KK9CS0KDQotCj0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JLQoNCj0IvQmNCd0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQktCg0KPQi9CY0J3QmNCLINCg0JDQiNCa0J4KK9CS0KDQl9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQoNCX0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQoNCX0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQoNCX0JjQiyDQndCQ0JTQldCW0JTQkAor0JLQoNCX0JjQiyDQodCi0JXQktCeCivQktCj0KfQkNCIINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0KfQkNCIINCk0KDQkNCdCivQktCj0KfQkNCIINCc0JjQntCc0JjQoNCQCivQktCj0KfQkNCIINCg0J7QkdCV0KDQogor0JLQo9Cn0JDQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCj0KfQldCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQo9Cn0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCj0KfQldCb0JjQiyDQktCV0KDQkAor0JLQo9Cn0JXQm9CY0Isg0JLQm9CQ0IjQmtCeCivQktCj0KfQldCdINCc0JjQm9CQ0J3QkAor0JLQo9Cn0JXQndCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0KPQp9CV0J3QntCSINCC0KPQoNCY0KbQkAor0JLQo9Cn0JXQndCe0JIg0JrQkNCi0JDQm9CY0J0KK9CS0KPQp9CV0J3QntCSINCc0JjQoNCI0JDQndCQCivQktCj0KfQldCd0J7QkiDQodCi0JXQktCQ0J0KK9CS0KPQp9CV0J3QntCS0JjQiyDQltCY0JLQkNCdCivQktCj0KfQldCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JLQo9Cn0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JLQo9Cn0JXQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQktCj0KfQldCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Cn0JXQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9CV0J3QntCS0JjQiyDQm9Cj0JrQkAor0JLQo9Cn0JXQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0KPQp9CV0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0KfQldCd0J7QktCY0Isg0KHQoNCV0KLQngor0JLQo9Cn0JXQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQp9CV0KDQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9CS0KPQp9CV0KLQmNCLINCW0JjQmtCQCivQktCj0KfQldCi0JjQiyDQltCY0JLQmtCeCivQktCj0KfQldCi0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQo9Cn0JXQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0KPQp9CV0KLQmNCLINCR0J7QiNCQ0J3QkAor0JLQo9Cn0JXQotCY0Isg0JTQkNCg0JjQndCa0JAKK9CS0KPQp9CV0KLQmNCLINCU0JXQodCY0JzQmNCgCivQktCj0KfQldCi0JjQiyDQlNCV0JLQkAor0JLQo9Cn0JXQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0KfQldCi0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQp9CV0KLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9CV0KLQmNCLINCb0JDQl9CQ0KAKK9CS0KPQp9CV0KLQmNCLINCJ0JjQidCQ0J3QkAor0JLQo9Cn0JXQotCY0Isg0JzQmNCL0JAKK9CS0KPQp9CV0KLQmNCLINCc0JjQm9CV0J3QkAor0JLQo9Cn0JXQotCY0Isg0JzQmNCb0JXQndCQCivQktCj0KfQldCi0JjQiyDQnNCY0JvQldCdCivQktCj0KfQldCi0JjQiyDQnNCY0JvQntCh0JDQkgor0JLQo9Cn0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0KfQldCi0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQp9CV0KLQmNCLINCd0JjQndCa0J4KK9CS0KPQp9CV0KLQmNCLINCf0JXQotCQ0KAKK9CS0KPQp9CV0KLQmNCLINCf0JXQotCQ0KAKK9CS0KPQp9CV0KLQmNCLINCg0JDQlNCVCivQktCj0KfQldCi0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQo9Cn0JXQotCY0Isg0KDQkNCU0J7QiNCa0J4KK9CS0KPQp9CV0KLQmNCLINCg0JDQiNCa0J4KK9CS0KPQp9CV0KLQmNCLINCh0JDQitCQCivQktCj0KfQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0KfQldCi0JjQiyDQodCc0JjQidCa0JAKK9CS0KPQp9CV0KLQmNCLINCh0J7QpNCY0IjQkAor0JLQo9Cn0JXQotCY0Isg0KHQotCQ0J3QmtCeCivQktCj0KfQldCi0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQp9CV0KLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQp9CV0KLQmNCLINCS0JDQitCQCivQktCj0KfQldCi0JjQiyDQktCV0InQmtCeINCU0KAKK9CS0KPQp9CV0KLQmNCLINCS0JXQoNCQCivQktCj0KfQldCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CS0KPQp9CV0KLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQp9CV0KLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQp9CV0KLQmNCdINCW0JjQktCQ0J0KK9CS0KPQp9CV0KLQmNCdINCc0JjQm9Ce0KDQkNCUCivQktCj0KfQldCi0JjQnSDQn9CV0KLQkNCgCivQktCj0KfQldCi0JjQnSDQodCe0KTQmNCI0JAKK9CS0KPQp9CV0KLQmNCdINCi0J7QlNCe0KAKK9CS0KPQp9CV0JLQkNCmINCW0JXQm9CY0JzQmNCgCivQktCj0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9Cn0JXQktCY0Isg0JHQntCW0JDQndCQCivQktCj0KfQldCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQktCj0KfQmNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cn0JjQiyDQltCQ0KDQmtCeCivQktCj0KfQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9CY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JLQo9Cn0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0KPQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0KPQp9CY0Isg0JTQoNCQ0JPQkNCdCivQktCj0KfQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9CY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQp9CY0Isg0IjQntCS0JDQndCa0JAKK9CS0KPQp9CY0Isg0IjQntCS0JDQnQor0JLQo9Cn0JjQiyDQmtCQ0KLQmNCm0JAKK9CS0KPQp9CY0Isg0JzQkNCg0JPQmNCi0JAKK9CS0KPQp9CY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQp9CY0Isg0J3QldCS0JXQndCa0JAKK9CS0KPQp9CY0Isg0J3QmNCa0J7Qm9CQCivQktCj0KfQmNCLINCg0JDQlNCc0JjQm9CQCivQktCj0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQp9CY0Isg0KLQntCU0J7QoAor0JLQo9Cn0JjQiyDQktCV0KHQldCb0JjQnQor0JLQo9Cn0JjQi9CV0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9CY0IvQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Cn0JjQi9CV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9CY0IvQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Cn0JjQi9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9CY0IvQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCL0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQp9CY0IvQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQp9CY0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Cn0JjQi9CV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQktCj0KfQmNCL0JXQktCY0Isg0J/QldCi0JDQoAor0JLQo9Cn0JjQi9CV0JLQmNCLINCh0JXQm9CY0JzQmNCgCivQktCj0KfQmNCL0JXQktCY0Isg0JLQo9Ca0J7QodCQ0JIKK9CS0KPQp9CY0J3QmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CS0KPQp9CY0J3QmNCLINCQ0J3QlNCg0JjQiNCQCivQktCj0KfQmNCd0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQmNCd0JjQiyDQk9CQ0JLQoNCY0JvQngor0JLQo9Cn0JjQndCY0Isg0IjQkNCK0JAKK9CS0KPQp9CY0J3QmNCLINCI0JDQodCc0JjQndCa0JAKK9CS0KPQp9CY0J3QmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQktCj0KfQmNCd0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Cn0JjQndCY0Isg0JzQkNCg0JjQiNCQCivQktCj0KfQmNCd0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCd0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCd0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQo9Cn0JjQndCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0KPQp9CY0J3QmNCLINCc0JjQntCU0KDQkNCTCivQktCj0KfQmNCd0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQp9CY0J3QmNCLINCc0JvQkNCU0JXQnQor0JLQo9Cn0JjQndCY0Isg0J/QldCi0JDQoAor0JLQo9Cn0JjQndCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0KPQp9CY0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQktCj0KfQmNCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JLQo9Cn0JjQndCY0Isg0KDQkNCI0JrQngor0JLQo9Cn0JjQndCY0Isg0JLQldCh0J3QkAor0JLQo9Cn0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Cn0JjQndCY0Isg0JLQo9Ca0JzQkNCdCivQktCj0KfQmNCd0JjQiyDQl9Cb0JDQotCY0JHQntCgCivQktCj0KfQmNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0KPQp9Ca0J7QkiDQkdCe0IjQkNCd0JAKK9CS0KPQp9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QkiDQnNCQ0KDQldCb0JAKK9CS0KPQp9Ca0J7QkiDQnNCY0JvQntCS0JDQnQor0JLQo9Cn0JrQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CS0KPQp9Ca0J7QktCQ0KYg0KDQkNCU0JUKK9CS0KPQp9Ca0J7QktCQ0KYg0KLQntCc0JjQodCb0JDQkgor0JLQo9Cn0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QktCY0Isg0JbQkNCg0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQltCY0JLQmtCeCivQktCj0KfQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9Ca0J7QktCY0Isg0ILQntCg0ILQlQor0JLQo9Cn0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQkNCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JHQntCT0JTQkNCdCivQktCj0KfQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cn0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0KfQmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQktCj0KfQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQlNCg0JDQk9CeCivQktCj0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCj0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JLQo9Cn0JrQntCS0JjQiyDQldCc0JjQnQor0JLQo9Cn0JrQntCS0JjQiyDQldCS0JjQptCQCivQktCj0KfQmtCe0JLQmNCLINCT0JXQntCg0JPQmNCI0JUKK9CS0KPQp9Ca0J7QktCY0Isg0IjQkNCd0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQiNCQ0J3QmtCeCivQktCj0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0InQo9CR0JjQptCQCivQktCj0KfQmtCe0JLQmNCLINCb0KPQmtCQINCU0JjQn9CbINCe0JXQpgor0JLQo9Cn0JrQntCS0JjQiyDQnNCQ0KDQkAor0JLQo9Cn0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JzQkNCg0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQktCj0KfQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCj0KfQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCj0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQntCoCivQktCj0KfQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0J7QiNCa0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCg0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCj0KfQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCj0KfQmtCe0JLQmNCLINCd0JDQlNCQINCU0KAKK9CS0KPQp9Ca0J7QktCY0Isg0J3QkNCU0JAKK9CS0KPQp9Ca0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0J3QmNCa0J7Qm9CQINCS0JXQotCV0KDQmNCd0JDQoAor0JLQo9Cn0JrQntCS0JjQiyDQndCe0JLQmNCm0JAKK9CS0KPQp9Ca0J7QktCY0Isg0J/QkNCj0JvQmNCd0JAKK9CS0KPQp9Ca0J7QktCY0Ist0J/QldCj0KDQkNCn0JAg0InQmNCJ0JDQndCQCivQktCj0KfQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCj0KfQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQktCj0KfQmtCe0JLQmNCLINCh0JDQktCV0KLQkAor0JLQo9Cn0JrQntCS0JjQiy3QodCY0JzQmNCLINCS0JXQodCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQktCj0KfQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQktCj0KfQmtCe0JLQmNCLINCh0KLQntCI0JDQnSDQlNCgCivQktCj0KfQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KLQkNCI0KHQmNCI0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KLQntCc0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JLQkNCh0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQktCj0KfQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QktCY0Isg0JLQo9Ca0JjQptCQCivQktCj0KfQmtCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQp9CV0JTQngor0JLQo9Cn0KPQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9Cj0KDQldCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JHQm9CQ0JbQngor0JLQo9Cn0KPQoNCV0JLQmNCLINCR0J7QqNCa0J4KK9CS0KPQp9Cj0KDQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQp9Cj0KDQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQo9Cg0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQnNCQ0KjQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQp9Cj0KDQldCS0JjQiyDQnNCY0KDQmtCeCivQktCj0KfQo9Cg0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQktCj0KfQo9Cg0JXQktCY0Isg0J3QkNCU0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQn9CV0KLQkNCgCivQktCj0KfQo9Cg0JXQktCY0Isg0KLQldCg0JXQl9CY0IjQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCj0KDQntCoCivQktCj0KfQo9Cg0JXQktCY0Isg0JLQldCh0J3QkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JLQm9CQ0JTQngor0JLQo9Cn0KPQoNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQp9Cj0KDQldCS0JjQiyDQktCe0IjQngor0JLQo9Cn0KPQoNCe0JLQmNCLINCI0JDQodCd0JAKK9CS0KPQp9Cj0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0KfQo9Cg0J7QktCY0Isg0JzQmNCg0JrQngor0JLQo9Cn0KPQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQp9Cj0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQp9Cj0KDQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQo9Cn0KPQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0JLQo9Co0KLQkNCgINCR0J7Qk9CU0JDQnQor0JLQo9Cm0JXQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQptCV0InQkCDQlNCg0JDQk9CQ0J0KK9CS0KPQptCV0InQkCDQnNCY0JvQntCoCivQktCj0KbQldCJ0JAt0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCS0JXQoNCQCivQktCj0KbQldCJ0JAg0KLQoNCY0JLQo9CdCivQktCj0KbQldCJ0JAg0JLQntCI0JjQnQor0JLQo9CU0KDQkNCTINCh0JDQktCeCivQktCj0JTQoNCQ0JMg0JfQntCg0JDQnQor0JLQo9CU0KDQkNCTINCX0J7QoNCQ0J0KK9CS0KPQlNCg0JDQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CS0KPQk9CU0JXQm9CY0Isg0JTQntCR0KDQmNCS0J7QiAor0JLQo9CT0JTQldCb0JjQiyDQktCj0JoKK9CS0KPQk9Cb0JXQpiDQldCU0JjQotCQCivQktCj0JPQoNCV0J3QmNCn0JXQmiDQgtCj0KDQkAor0JLQo9CT0KDQldCd0JjQp9CV0Jog0JzQkNCT0JTQkAor0JLQo9CT0KDQmNCdINCh0KLQldCS0JDQnQor0JLQo9CT0KDQmNCd0KfQmNCLINCQ0J3QmtCQCivQktCj0JPQoNCY0J3Qp9CY0Isg0KTQoNCQ0IrQngor0JLQo9CT0KDQmNCd0KfQmNCLINCI0JDQoNCe0KHQm9CQ0JIKK9CS0KPQk9Cg0JjQndCV0KYg0KDQo9CU0J7Qm9CkCivQktCj0JjQiyDQiNCe0KHQmNCfCivQktCj0IjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQktCj0IjQp9CY0Isg0JzQmNCb0JUKK9CS0KPQiNCn0JjQiyDQn9CV0KLQkNCgCivQktCj0IjQp9CY0Isg0J/QldCi0KDQmNCI0JAKK9CS0KPQiNCn0JjQnSDQiNCe0JLQkNCdCivQktCj0IjQp9CY0J0g0JzQmNCb0JDQnQor0JLQo9CI0KfQmNCdINCc0JjQotCQCivQktCj0IjQkNCn0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQktCj0IjQkNCn0JjQiyDQlNCj0JHQoNCQ0JLQmtCQCivQktCj0IjQkNCn0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQo9CI0JDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQiNCQ0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0IjQkNCn0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQiNCQ0KfQmNCLINCg0JDQlNCe0KHQkNCSCivQktCj0IjQkNCn0JjQiyDQoNCQ0IjQmtCeCivQktCj0IjQkNCo0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0KPQiNCQ0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KPQiNCQ0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JLQo9CI0JDQqNCa0J7QktCY0Isg0JfQntCg0JAKK9CS0KPQiNCQ0KbQmtCe0JIg0ILQntCg0ILQlQor0JLQo9CI0JDQptCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9CI0JDQptCa0J7QkiDQiNCe0JLQkNCdCivQktCj0IjQkNCU0JjQndCe0JIg0JTQntCR0KDQmNCS0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCg0JDQlNCe0KgKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JLQldCg0JAKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JLQmNCo0IrQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQktCY0KLQngor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQkNCa0JvQmNCI0JAg0JTQldCh0JAKK9CS0KPQiNCQ0JrQm9CY0IjQkCDQodCi0JDQndCa0J4KK9CS0KPQiNCQ0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQktCj0IjQkNCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JLQo9CI0JDQmtCe0JLQmNCLINCa0KDQodCi0JDQnQor0JLQo9CI0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQiNCQ0JrQntCS0JjQiyDQktCQ0KHQngor0JLQo9CI0JDQmtCe0JLQmNCLINCS0KPQiNCeCivQktCj0IjQkNCd0JjQiyDQltCY0JLQntCh0JDQkgor0JLQo9CI0JDQndCY0Isg0JbQmNCS0J7QodCb0JDQkgor0JLQo9CI0JDQndCY0Isg0JHQntCg0JjQktCe0IgKK9CS0KPQiNCQ0J3QmNCLINCR0KDQkNCd0JrQngor0JLQo9CI0JDQndCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0KPQiNCQ0J3QmNCLINCI0J7QoNCU0JDQnQor0JLQo9CI0JDQndCY0Isg0JrQntCg0J3QldCb0JjQiNCQCivQktCj0IjQkNCd0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQkNCd0JjQiyDQnNCY0JvQlQor0JLQo9CI0JDQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9CS0KPQiNCQ0J3QmNCLINCd0JXQlNCV0InQmtCQCivQktCj0IjQkNCd0JjQiyDQn9CV0KLQkNCgCivQktCj0IjQkNCd0JjQiy3QktCQ0KDQk9CQINCU0JjQndCa0JAg0JTQoAor0JLQo9CI0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCQ0J3QntCSINCc0JjQm9CQ0J3QmtCQCivQktCj0IjQkNCd0J7QkiDQndCY0JrQntCb0JAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQktCj0IjQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQktCj0IjQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0JLQo9CI0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9CI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQo9CI0JDQndCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQktCj0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JLQo9CI0JDQndCe0JLQmNCLINCI0J7QktCeCivQktCj0IjQkNCd0J7QktCY0Isg0JzQmNCI0J4KK9CS0KPQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9CS0KPQiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCd0JrQkAor0JLQo9CI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0IjQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JLQo9CI0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JLQo9CI0JDQndCe0JLQmNCLINCh0JjQnNCeCivQktCj0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JLQo9CI0JDQndCe0JLQmNCLINCh0KLQkNCd0JAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CS0KPQiNCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JLQo9CI0JDQodCY0J0g0KHQotCg0JDQmNCb0J4KK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQktCj0IjQkNCh0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0IjQkNCh0JjQndCe0JLQmNCLINCc0JDQoNCa0J4KK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0JDQodCY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCj0IjQkNCh0JjQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQktCj0IjQkNCi0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQiNCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9CI0JDQotCe0JLQmNCLINCi0JXQntCU0J7QoAor0JLQo9CI0JXQktCY0Isg0KDQo9CW0JAKK9CS0KPQiNCY0KfQmNCLINCC0J7QoNCC0JUKK9CS0KPQiNCY0KfQmNCLINCR0JjQodCV0KDQmtCQCivQktCj0IjQmNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9CI0JjQp9CY0Isg0KbQktCV0KLQkAor0JLQo9CI0JjQp9CY0Isg0JTQkNCd0JjQm9CeINCU0KAKK9CS0KPQiNCY0KfQmNCLINCU0J7QkdCg0JjQm9CQCivQktCj0IjQmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQiNCY0KfQmNCLINCU0KPQqNCQ0J0KK9CS0KPQiNCY0KfQmNCLINCT0J7QiNCa0J4KK9CS0KPQiNCY0KfQmNCLINCY0JPQitCQ0KIKK9CS0KPQiNCY0KfQmNCLINCY0JvQmNCI0JAKK9CS0KPQiNCY0KfQmNCLINCY0JLQmNCm0JAg0JTQoCDQn9Cg0J7QpAor0JLQo9CI0JjQp9CY0Isg0JzQkNCg0JrQngor0JLQo9CI0JjQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0KPQiNCY0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQktCj0IjQmNCn0JjQiyDQnNCY0JvQntCoCivQktCj0IjQmNCn0JjQiyDQnNCY0JvQntCoCivQktCj0IjQmNCn0JjQiyDQn9CV0KLQkNCgCivQktCj0IjQmNCn0JjQiyDQn9CV0KLQoNCQCivQktCj0IjQmNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQktCj0IjQmNCn0JjQiyDQoNCQ0J3QmtCeCivQktCj0IjQmNCn0JjQiyDQoNCQ0KLQmtCeCivQktCj0IjQmNCn0JjQiyDQoNCQ0KLQmtCeCivQktCj0IjQmNCn0JjQiyDQodCY0JzQngor0JLQo9CI0JjQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9CI0JjQp9CY0Isg0KHQoNCC0JDQnQor0JLQo9CI0JjQp9CY0Isg0KHQotCQ0J3QmtCeCivQktCj0IjQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQiNCY0KfQmNCLINCh0KLQntCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQiNCY0KfQmNCLINCh0JLQldCi0JrQngor0JLQo9CI0JjQp9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQo9CI0JjQp9CY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0JjQp9CY0Isg0JLQldCg0JAKK9CS0KPQiNCY0KfQmNCLINCS0JXQoNCY0KbQkAor0JLQo9CI0JjQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JjQp9CY0Isg0JLQntCI0JjQnQor0JLQo9CI0JjQp9CY0J0g0JbQkNCg0JrQngor0JLQo9CI0JjQp9CY0J0g0ILQntCg0ILQlQor0JLQo9CI0JjQp9CY0J0g0ILQo9Cg0ILQmNCm0JAKK9CS0KPQiNCY0KfQmNCdINCJ0KPQkdCY0KbQkAor0JLQo9CI0JjQp9CY0J0g0J/QldCi0JDQoAor0JLQo9CI0JjQiyDQltCQ0KDQmtCeCivQktCj0IjQmNCLINCW0JjQktCa0J4KK9CS0KPQiNCY0Isg0ILQntCg0ILQlQor0JLQo9CI0JjQiyDQgtCe0KDQgtCVCivQktCj0IjQmNCLINCC0KPQoNCC0JjQiNCQCivQktCj0IjQmNCLINCC0KPQoNCQCivQktCj0IjQmNCLINCC0KPQoNCQCivQktCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CS0KPQiNCY0Isg0JDQndCi0JUKK9CS0KPQiNCY0Isg0JDQndCi0JUKK9CS0KPQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9CI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0IjQmNCLINCR0KDQkNCd0JrQkAor0JLQo9CI0JjQiyDQlNCg0JDQk9CQCivQktCj0IjQmNCLINCU0KDQkNCT0JAKK9CS0KPQiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CS0KPQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CS0KPQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCj0IjQmNCLINCU0KPQqNCQ0J0KK9CS0KPQiNCY0Isg0JjQktCQ0J0g0JTQoAor0JLQo9CI0JjQiyDQmNCS0JDQnSDQlNCgCivQktCj0IjQmNCLINCY0JLQkNCd0JrQkAor0JLQo9CI0JjQiyDQiNCQ0JrQntCRINCU0KAg0JvQldCa0JDQoAor0JLQo9CI0JjQiyDQiNCe0JLQkNCdCivQktCj0IjQmNCLINCI0J7QktCQ0J0KK9CS0KPQiNCY0Isg0IjQntCS0J4KK9CS0KPQiNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JLQo9CI0JjQiy3QmtCe0KHQniDQktCV0KHQndCQCivQktCj0IjQmNCLINCb0JDQl9CQ0KAKK9CS0KPQiNCY0Isg0InQo9CR0JDQnQor0JLQo9CI0JjQiyDQidCj0JHQmNCm0JAKK9CS0KPQiNCY0Isg0JzQkNCg0JjQiNCQINCf0KDQntCk0JXQodCe0KAKK9CS0KPQiNCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0JjQiyDQnNCY0JvQldCS0JAKK9CS0KPQiNCY0Isg0JzQmNCb0JXQktCQCivQktCj0IjQmNCLINCc0JjQm9CV0JLQmtCQCivQktCj0IjQmNCLINCc0JjQm9CY0KbQkAor0JLQo9CI0JjQiyDQnNCY0JvQntCoINCU0KAKK9CS0KPQiNCY0Isg0JzQmNCb0J7QqAor0JLQo9CI0JjQiyDQnNCY0JvQntCoCivQktCj0IjQmNCLINCc0JjQm9Ce0KgKK9CS0KPQiNCY0Isg0JzQmNCg0JAKK9CS0KPQiNCY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQiNCY0Isg0JzQntCc0JjQoAor0JLQo9CI0JjQiyDQndCQ0JTQkAor0JLQo9CI0JjQiyDQndCQ0JTQkAor0JLQo9CI0JjQiyDQn9CQ0JLQm9CVINCU0KAKK9CS0KPQiNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0KPQiNCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0KPQiNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQo9CI0JjQiyDQoNCQ0KLQmtCQCivQktCj0IjQmNCLINCh0JDQktCeCivQktCj0IjQmNCLINCh0JDQktCeCivQktCj0IjQmNCLINCh0JvQkNCS0JrQkAor0JLQo9CI0JjQiyDQodCe0KTQmNCI0JAKK9CS0KPQiNCY0Isg0KHQotCQ0J3QmtCeCivQktCj0IjQmNCLINCh0KLQkNCd0JrQngor0JLQo9CI0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQktCj0IjQmNCLINCh0KLQldCS0JDQnQor0JLQo9CI0JjQiyDQktCV0KDQkAor0JLQo9CI0JjQiyDQktCV0KHQndCQCivQktCj0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KPQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JjQiyDQktCe0IjQmNCh0JvQkNCS0JAKK9CS0KPQiNCY0Isg0JfQntCg0JDQnQor0JLQo9CI0JjQnSDQgtCe0JrQkAor0JLQo9CI0JjQnSDQgtCj0KDQmNCm0JAKK9CS0KPQiNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCY0J0g0JTQkNCd0JjQptCQCivQktCj0IjQmNCdINCU0JDQktCY0JQKK9CS0KPQiNCY0J0g0IjQldCS0KDQldCcCivQktCj0IjQmNCdINCI0J7QktCQ0J3QmtCQCivQktCj0IjQmNCdINCb0JDQl9CQ0KAKK9CS0KPQiNCY0J0g0JzQkNCg0JAKK9CS0KPQiNCY0J0g0JzQldCb0JDQndCY0IjQkAor0JLQo9CI0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JLQo9CI0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JLQo9CI0JjQnSDQoNCQ0JTQntCS0JDQnQor0JLQo9CI0JjQnSDQodCb0JDQktCa0J4KK9CS0KPQiNCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JLQo9CI0JjQnSDQodCS0JXQotCe0JfQkNCgCivQktCj0IjQmNCdINCS0KPQiNCQ0JTQmNCdCivQktCj0IjQmNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0JLQo9CI0JjQndCe0JLQmNCLINCC0KPQoNCQCivQktCj0IjQmNCd0J7QktCY0Isg0ILQo9Cg0J4KK9CS0KPQiNCY0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0IjQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JLQo9CI0JjQndCe0JLQmNCLINCT0IrQkNCi0JjQiNCQCivQktCj0IjQmNCd0J7QktCY0Isg0IjQntCS0J4KK9CS0KPQiNCY0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9CI0JjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQiNCY0J3QntCS0JjQiyDQnNCb0JDQlNCY0J3QmtCeCivQktCj0IjQmNCd0J7QktCY0Isg0J3QkNCU0JAKK9CS0KPQiNCY0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9CS0KPQiNCY0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CS0KPQiNCY0J3QntCS0JjQiyDQotCV0J7QlNCe0KHQmNCI0JUKK9CS0KPQiNCY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQo9CI0JjQndCe0JLQmNCLINCS0JjQlNCe0IjQlQor0JLQo9CI0JrQniDQodCQ0JLQkAor0JLQo9CI0JrQntCSINCn0JXQlNCe0JzQmNCgCivQktCj0IjQmtCe0JIg0ILQntCg0ILQlQor0JLQo9CI0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQmtCe0JIg0JDQndCi0JjQndCY0IjQkAor0JLQo9CI0JrQntCSINCR0J7QltCY0JTQkNCgCivQktCj0IjQmtCe0JIg0JHQntCW0JjQlNCQ0KAKK9CS0KPQiNCa0J7QkiDQlNCg0JDQk9CY0KbQkAor0JLQo9CI0JrQntCSINCU0KDQkNCT0JjQitCQCivQktCj0IjQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9CI0JrQntCSINCU0KPQqNCQ0J0KK9CS0KPQiNCa0J7QkiDQlNCj0KjQkNCdCivQktCj0IjQmtCe0JIt0JjQodCQ0JrQntCSINCI0JDQk9CY0KbQkAor0JLQo9CI0JrQntCSINCI0JXQm9CV0J3QkAor0JLQo9CI0JrQntCSINCb0JDQl9CQ0KAKK9CS0KPQiNCa0J7QkiDQm9CQ0JfQkNCgCivQktCj0IjQmtCe0JIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCd0JAKK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCd0JAKK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCdCivQktCj0IjQmtCe0JIg0JzQmNCb0JDQnQor0JLQo9CI0JrQntCSINCc0JjQm9CV0J3QkAor0JLQo9CI0JrQntCSINCc0JjQm9CY0KbQkAor0JLQo9CI0JrQntCSINCc0JjQm9CY0KbQkAor0JLQo9CI0JrQntCSINCc0JjQm9CY0JLQntCICivQktCj0IjQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9CS0KPQiNCa0J7QkiDQnNCY0KDQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JLQo9CI0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQiNCa0J7QkiDQndCQ0JTQkAor0JLQo9CI0JrQntCSINCd0JXQndCQ0JQKK9CS0KPQiNCa0J7QkiDQntCb0JPQkAor0JLQo9CI0JrQntCSINCf0JDQktCb0JUKK9CS0KPQiNCa0J7QkiDQn9CV0KDQkAor0JLQo9CI0JrQntCSINCf0JXQotCQ0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CS0KPQiNCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JLQo9CI0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CS0KPQiNCa0J7QkiDQodCQ0JLQkAor0JLQo9CI0JrQntCSINCh0JDQktCQCivQktCj0IjQmtCe0JIg0KHQldCd0JrQkAor0JLQo9CI0JrQntCSINCh0JjQnNCQCivQktCj0IjQmtCe0JIg0KHQm9CQ0JLQmtCeCivQktCj0IjQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9CI0JrQntCSINCh0J3QldCW0JDQndCQCivQktCj0IjQmtCe0JIg0KHQndCV0JbQkNCd0JAKK9CS0KPQiNCa0J7QkiDQodCi0JXQktCQ0J0KK9CS0KPQiNCa0J7QkiDQodCS0JXQotCe0JfQkNCgCivQktCj0IjQmtCe0JIg0KLQkNCc0JDQoNCQCivQktCj0IjQmtCe0JIg0KLQntCc0JjQodCb0JDQkgor0JLQo9CI0JrQntCSINCS0JDQodCQINCU0KAKK9CS0KPQiNCa0J7QkiDQktCV0KHQldCb0JjQnSDQlNCgINCf0KDQntCkCivQktCj0IjQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JrQntCSINCX0JTQoNCQ0JLQmtCeCivQktCj0IjQmtCe0JIg0JfQlNCg0JDQktCa0J4KK9CS0KPQiNCa0J7QktCY0Isg0ILQo9Cg0JAKK9CS0KPQiNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCj0IjQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCj0IjQmtCe0JLQmNCLINCT0J7QodCf0JDQktCQCivQktCj0IjQmtCe0JLQmNCLINCc0JjQoNCQCivQktCj0IjQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9CI0JrQntCS0JjQiyDQoNCj0JbQkAor0JLQo9CI0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQo9CI0J3QntCS0JjQiyDQkNCd0JrQkAor0JLQo9CI0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JLQo9CI0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQiNCd0J7QktCY0Isg0JPQntCI0JrQngor0JLQo9CI0J3QntCS0JjQiyDQk9Ce0IjQmtCeCivQktCj0IjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQiNCd0J7QktCY0Ist0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CS0KPQiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQndCe0JLQmNCLINCS0JXQidCa0J4KK9CS0KPQiNCd0J7QktCY0Isg0JLQldCg0JAKK9CS0KPQiNCd0J7QktCY0Isg0JfQntCg0JAKK9CS0KPQiNCe0KjQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0IjQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCe0JXQpgor0JLQo9CI0J7QqNCV0JLQmNCLINCU0J7QkdCg0JjQodCb0JDQkgor0JLQo9CI0J7QqNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQiNCe0KjQldCS0JjQiyDQmtCb0JDQoNCQCivQktCj0IjQntCo0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQiNCe0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQntCo0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0IjQntCo0JXQktCY0Isg0KDQkNCi0JrQngor0JLQo9CI0J7QqNCV0JLQmNCLINCX0J7QoNCQCivQktCj0IjQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0IjQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9CI0J7QktCY0Isg0JHQm9CQ0JbQngor0JLQo9CI0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CS0KPQiNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0IjQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CS0KPQiNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQktCj0IjQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0IjQntCS0JjQiyDQlNCj0KjQkNCdCivQktCj0IjQntCS0JjQiyDQnNCQ0KDQotCQCivQktCj0IjQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JLQo9CI0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9CS0KPQiNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0IjQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQo9CI0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQiNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCj0IjQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9CI0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQktCj0IjQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9CI0J7QktCY0Isg0J3QldCC0JXQidCa0J4KK9CS0KPQiNCe0JLQmNCLINCd0JXQgtCeCivQktCj0IjQntCS0JjQiyDQndCe0JLQmNCm0JAKK9CS0KPQiNCe0JLQmNCLINCe0JvQk9CQCivQktCj0IjQntCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0IjQntCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0IjQntCS0JjQiyDQn9CV0KLQmtCeCivQktCj0IjQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQktCj0IjQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JLQo9CI0J7QktCY0Isg0KDQkNCU0J7QiNCVCivQktCj0IjQntCS0JjQiyDQoNCQ0KLQmtCeCivQktCj0IjQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQiNCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JLQo9CI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0J7QktCY0Isg0JLQldCJ0JrQngor0JLQo9CI0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0KPQiNCe0JLQmNCLINCS0JvQkNCU0J4KK9CS0KPQiNCe0JLQmNCLINCS0JvQkNCI0JrQngor0JLQo9CI0J7QktCY0Isg0JLQm9CQ0KLQmtCeCivQktCj0IjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQiNCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JLQo9Ca0KfQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Ca0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQp9CV0JLQmNCLINCa0KDQodCi0J4KK9CS0KPQmtCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQmtCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQmtCn0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCn0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCn0JXQktCY0Isg0J/QldCi0JDQoAor0JLQo9Ca0KfQldCS0JjQiyDQodCQ0JLQngor0JLQo9Ca0KfQldCS0JjQiyDQodCe0KTQmNCI0JAKK9CS0KPQmtCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCo0JAg0KfQldCU0J4KK9CS0KPQmtCo0JAg0JbQldCJ0JrQngor0JLQo9Ca0KjQkCDQkdCe0KDQmNCS0J7QiNCVCivQktCj0JrQqNCQINCb0JDQl9CQ0KAKK9CS0KPQmtCo0JAg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCo0JAg0JzQmNCb0KPQotCY0J0KK9CS0KPQmtCo0JAg0J/QldCi0JDQoAor0JLQo9Ca0KjQkCDQktCI0JXQoNCQCivQktCj0JrQkNCo0JXQktCY0Isg0JzQmNCb0J4KK9CS0KPQmtCQ0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0JrQkNCo0JjQnSDQiNCe0JLQkNCdCivQktCj0JrQkNCo0JjQndCe0JIg0JHQoNCQ0J3QmNCc0JjQoAor0JLQo9Ca0JDQqNCY0J3QntCSINCm0JLQldCi0JrQngor0JLQo9Ca0JDQqNCY0J3QntCSINCh0KLQldCS0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCW0JjQktCQ0J0KK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQkdCe0IjQkNCdCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCY0KDQldCd0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JjQoNCV0J3QkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQlQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCg0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCg0JDQlNCe0IjQlQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQktCV0KDQmNCm0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JLQmNCU0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CS0KPQmtCQ0JTQmNCdINCU0J7QkdCg0JjQktCe0IjQlQor0JLQo9Ca0JDQlNCY0J0g0KLQntCc0JjQodCb0JDQkgor0JLQo9Ca0JDQlNCY0J3QntCSINCC0J7QoNCC0JUKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQgtCj0KDQkAor0JLQo9Ca0JDQlNCY0J3QntCSINCR0J7QiNCa0JAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQmNCh0JjQlNCe0KAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQmNCS0JDQndCa0JAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQmNCS0JDQndCa0JAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQiNCe0JLQkNCdCivQktCj0JrQkNCU0JjQndCe0JIg0JrQkNCi0JjQptCQCivQktCj0JrQkNCU0JjQndCe0JIg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCQ0JTQmNCd0J7QkiDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0JDQlNCY0J3QntCSINCd0JXQndCQ0JQKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAg0J/QoNCe0KTQldCh0J7QoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQidCj0JHQngor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQidCe0IjQmtCeCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQn9CQ0JLQm9CVINCU0KAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0J7QpNCY0IjQkCDQm9Ce0JrQkNCbCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQodCi0JDQndCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQktCb0JDQlNCY0KHQkNCSCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCX0J7Qm9CY0JrQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQl9Ce0JvQmNCa0JAKK9CS0KPQmtCQ0IjQm9Ce0JIg0JHQo9CU0JjQnNCY0KAKK9CS0KPQmtCQ0IjQm9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JbQmNCS0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQktCj0JrQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQkNCI0JvQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCU0JDQndCY0JvQngor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JvQkNCX0JDQoAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JzQmNCb0JXQndCQCivQktCj0JrQkNCI0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0KHQoNCV0KLQngor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQkNCb0JjQiyDQnNCj0JzQmNCdCivQktCj0JrQkNCJ0JXQktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0JDQidCV0JLQmNCLINCh0JvQkNCS0JrQngor0JLQo9Ca0JDQm9Ce0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQmtCQ0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQkNCd0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQkNCd0JjQiyDQodCg0JXQotCV0J0KK9CS0KPQmtCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCQ0J3QntCS0JjQiyDQltCY0JLQmtCQCivQktCj0JrQkNCd0J7QktCY0Isg0JDQndCY0KbQkAor0JLQo9Ca0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0JLQo9Ca0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCQ0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JLQo9Ca0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCj0JrQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmNCc0JjQoAor0JLQo9Ca0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0JrQkNChINCC0J7QoNCC0JUKK9CS0KPQmtCQ0KEg0ILQo9Cg0J4KK9CS0KPQmtCQ0KEg0JDQndCa0JjQptCQCivQktCj0JrQkNChINCR0KDQkNCd0JrQngor0JLQo9Ca0JDQoSDQntCc0JXQoNCa0JAKK9CS0KPQmtCQ0KHQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCQ0KHQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQmtCQ0KHQntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQkNCh0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0KPQmtCQ0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQktCj0JrQldCb0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQo9Ca0JXQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9Ca0JXQm9CY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQldCb0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCV0JvQmNCLINCU0JDQoNCQCivQktCj0JrQldCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCV0JvQmNCLINCI0J7QktCQ0J0KK9CS0KPQmtCV0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0JrQldCb0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQldCb0JjQiyDQnNCY0JvQlQor0JLQo9Ca0JXQm9CY0Isg0JzQmNCb0JjQptCQCivQktCj0JrQldCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0JXQm9CY0Isg0JzQntCc0JjQoAor0JLQo9Ca0JXQm9CY0Isg0J/QkNCS0JvQlQor0JLQo9Ca0JXQm9CY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JXQm9CY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JXQm9CY0Isg0KDQkNCU0JAKK9CS0KPQmtCV0JvQmNCLINCg0JDQlNCVCivQktCj0JrQldCb0JjQiyDQodCY0JvQktCY0IjQlQor0JLQo9Ca0JXQm9CY0Isg0KHQmNCc0J4KK9CS0KPQmtCV0JvQmNCLINCh0JvQkNCS0JrQngor0JLQo9Ca0JXQm9CY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQmtCV0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CS0KPQmtCV0JvQmNCLINCS0JXQidCa0J4KK9CS0KPQmtCV0JvQmNCLINCS0JXQoNCY0KbQkAor0JLQo9Ca0JXQm9CY0Isg0JLQldCh0J3QkAor0JLQo9Ca0JXQm9CY0Isg0JLQo9Ca0JjQptCQCivQktCj0JrQldCb0JjQiyDQl9CU0KDQkNCS0JrQniDQlNCgCivQktCj0JrQldCb0JjQiyDQl9Ce0KDQmNCm0JAKK9CS0KPQmtCV0JvQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CS0KPQmtCV0InQkCDQkdCg0JDQndCa0JAKK9CS0KPQmtCY0KfQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQktCj0JrQmNCn0JXQktCY0Isg0InQmNCJ0JDQndCQCivQktCj0JrQmNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JjQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQmNCn0JXQktCY0Isg0JzQmNCi0JDQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JLQo9Ca0JjQp9CV0JLQmNCLINCg0JDQndCa0J4KK9CS0KPQmtCY0KfQldCS0JjQiyDQodCf0JDQodCe0IjQlQor0JLQo9Ca0JjQp9CV0JLQmNCLINCS0JXQodCd0JAKK9CS0KPQmtCY0Ist0IvQo9Cb0JDQpNCY0Isg0JHQoNCQ0J3QmtCQCivQktCj0JrQmNCLINCW0JjQktCa0J4KK9CS0KPQmtCY0Isg0JDQndCU0KDQldCICivQktCj0JrQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0JrQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0KPQmtCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQmNCLINCR0KDQkNCd0JrQngor0JLQo9Ca0JjQiyDQkdCj0JTQmNCc0JjQoAor0JLQo9Ca0JjQiyDQlNCV0IjQkNCdCivQktCj0JrQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JLQo9Ca0JjQiyDQlNCj0KjQkNCdCivQktCj0JrQmNCLINCY0JLQkNCd0JrQkAor0JLQo9Ca0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQmNCLINCJ0KPQkdCY0KbQkAor0JLQo9Ca0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Ca0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQmtCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCY0Isg0JzQmNCg0JrQngor0JLQo9Ca0JjQiyDQnNCe0JzQp9CY0JvQngor0JLQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQmNCLINCd0J7QktCQ0JoKK9CS0KPQmtCY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JjQiyDQodCi0JDQndCa0J4KK9CS0KPQmtCY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQmNCLINCS0JXQm9CY0JzQmNCgCivQktCj0JrQmNCLINCS0JvQkNCU0J4KK9CS0KPQmtCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CS0KPQmtCY0IvQldCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQmNCL0JXQktCY0Isg0ILQntCg0ILQlQor0JLQo9Ca0JjQi9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQmNCL0JXQktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQktCj0JrQmNCL0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQmtCY0IvQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQo9Ca0JjQi9CV0JLQmNCLINCY0KHQmNCU0J7QoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCY0KHQmNCU0J7QoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCc0JjQntCc0JjQoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCY0IvQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCj0JrQmNCL0JXQktCY0Isg0JzQntCc0KfQmNCb0J4g0JTQoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQktCj0JrQmNCL0JXQktCY0Isg0KLQntCc0JAKK9CS0KPQmtCY0IvQldCS0JjQiyDQktCV0InQmtCeCivQktCj0JrQm9CY0Kgg0JTQoNCQ0JPQkNCdCivQktCj0JrQm9CY0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0JzQkNCd0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQidCj0JHQkAor0JLQo9Ca0JzQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCQCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQodCY0JzQngor0JLQo9Ca0JzQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CS0KPQmtCc0JDQndCe0JLQmNCLINCS0JXQoNCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQnNCY0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQnNCY0KDQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQnNCY0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCU0JDQndCVCivQktCj0JrQnNCY0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCT0J7QiNCa0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCI0JDQitCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQnNCY0JvQntCoCivQktCj0JrQnNCY0KDQntCS0JjQiyDQnNCY0JvQngor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQnNCY0KDQntCS0JjQiyDQoNCQ0J3QmtCeCivQktCj0JrQnNCY0KDQntCS0JjQiyDQoNCQ0J3QmtCeCivQktCj0JrQnNCY0KDQntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0KHQnNCY0InQmtCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCS0JXQm9CY0J3QmtCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCX0JTQoNCQ0JLQmtCQCivQktCj0JrQndCY0Isg0JzQkNCg0JjQiNCQ0J0KK9CS0KPQmtCe0JHQoNCQ0JQg0JTQoNCQ0JPQngor0JLQo9Ca0J7QkdCg0JDQlCDQidCj0JHQntCc0JjQoAor0JLQo9Ca0J7QkdCg0JDQlCDQnNCQ0KDQmtCeCivQktCj0JrQntCR0KDQkNCUINCc0JjQm9Ce0KgKK9CS0KPQmtCe0JHQoNCQ0KIg0JTQkNCd0JjQptCQCivQktCj0JrQntCR0KDQkNCiINCU0KDQkNCT0JDQnQor0JLQo9Ca0J7QkdCg0JDQoiDQiNCe0KjQngor0JLQo9Ca0J7QkdCg0JDQoiDQidCj0JHQntCc0JjQoAor0JLQo9Ca0J7QkdCg0JDQoiDQnNCY0JvQkNCdCivQktCj0JrQntCR0KDQkNCiINCd0JjQmtCe0JvQkAor0JLQo9Ca0J7QkdCg0JDQoiDQn9CV0KLQkNCgCivQktCj0JrQntCR0KDQkNCiINCi0JDQotCI0JDQndCQCivQktCj0JrQntCR0KDQkNCiINCX0JTQoNCQ0JLQmtCeCivQktCj0JrQntCR0KDQkNCi0J7QkiDQoNCQ0JTQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQmtCe0JHQoNCQ0KLQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQntCR0KDQkNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQndCQ0JTQkAor0JLQo9Ca0J7QkdCg0JDQotCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQktCj0JrQntCI0KfQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCe0IjQkCDQkNCd0KLQo9CdCivQktCj0JrQntCI0JUg0JTQo9Co0JDQnQor0JLQo9Ca0J7QiNCVINCT0JDQqNCeCivQktCj0JrQntCI0JUg0JjQm9CY0IjQkAor0JLQo9Ca0J7QiNCVINCI0J7QktCQ0J0KK9CS0KPQmtCe0IjQlSDQnNCY0JvQkNCd0JAKK9CS0KPQmtCe0IjQlSDQoNCQ0JTQmNCS0J7QiNCVCivQktCj0JrQntCI0JUg0KDQkNCU0JzQmNCb0JAKK9CS0KPQmtCe0IjQlSDQoNCQ0JTQntCS0JDQnQor0JLQo9Ca0J7QiNCVINCS0JDQitCQCivQktCj0JrQntCI0JUg0JLQntCI0J4KK9CS0KPQmtCe0IjQldCSINCR0J7Qk9CU0JDQnQor0JLQo9Ca0J7QiNCV0JIg0JTQo9Co0JDQnQor0JLQo9Ca0J7QiNCV0JIg0JTQo9Co0JDQnQor0JLQo9Ca0J7QiNCV0JIg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0J7QiNCV0JLQmNCLINCC0KPQoNCeCivQktCj0JrQntCI0JXQktCY0Isg0JzQkNCg0JAKK9CS0KPQmtCe0IjQldCS0JjQiyDQnNCY0IvQngor0JLQo9Ca0J7QiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCI0JXQktCY0Isg0J3QmNCa0J4KK9CS0KPQmtCe0IjQldCS0JjQiyDQktCV0KDQmNCm0JAKK9CS0KPQmtCe0IjQldCS0JjQiyDQktCY0JTQntCh0JDQkgor0JLQo9Ca0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCe0IjQmNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0JrQntCI0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQktCj0JrQntCI0JjQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQmtCe0IjQmNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0J7QiNCY0KfQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CS0KPQmtCe0JzQkNCdINCV0JzQmNCb0JjQiNCQCivQktCj0JrQntCc0JDQnSDQnNCY0JvQntCg0JDQlAor0JLQo9Ca0J7QnNCQ0J0g0KDQkNCU0JAKK9CS0KPQmtCe0JzQkNCdINCX0J7QoNCQ0J0KK9CS0KPQmtCe0JzQkNCdINCX0J7QoNCa0JAKK9CS0KPQmtCe0JzQkNCd0J7QkiDQiNCe0JLQkNCdCivQktCj0JrQntCc0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQktCj0JrQntCc0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JLQo9Ca0J7QnNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCe0JzQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CS0KPQmtCe0JzQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCj0JrQntCh0JDQkiDQkdCe0KDQmNCS0J7QiNCVCivQktCj0JrQntCh0JDQkiDQkdCe0KDQmtCeINCU0KAKK9CS0KPQmtCe0KHQkNCSINCU0J7QkdCg0JjQm9CQCivQktCj0JrQntCh0JDQkiDQiNCe0JLQngor0JLQo9Ca0J7QodCQ0JIg0JzQmNCb0J7QktCQ0J0KK9CS0KPQmtCe0KHQkNCSINCg0JDQlNCVCivQktCj0JrQntCh0JDQkiDQodCV0J3QmtCQCivQktCj0JrQntCh0JDQkiDQktCb0JDQiNCa0J4KK9CS0KPQmtCe0KHQkNCS0InQldCSINCR0J7Qk9CU0JDQndCa0JAKK9CS0KPQmtCe0KHQkNCS0InQldCSINCU0JDQndCY0KbQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQmtCe0KHQkNCS0InQldCSINCI0JXQm9CV0J3QkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JvQkNCX0JDQoAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JzQkNCa0KHQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JzQmNCb0JDQnQor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0J/QldCi0JDQoAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0KHQkNCS0JAKK9CS0KPQmtCe0KHQkNCS0InQldCSINCh0JvQkNCS0JjQptCQCivQktCj0JrQntCh0JDQktCJ0JXQkiDQodCi0JXQktCQ0J0KK9CS0KPQmtCe0KHQkNCS0InQldCSINCS0J7QiNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQkdCQ0KDQkdCQ0KDQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCm0JLQmNCI0JXQotCY0J0KK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCY0JLQkNCdCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0JjQptCQCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JvQo9Ca0JAKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQnNCY0KDQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQntCI0JDQnQor0JLQo9Ca0J7QodCb0JDQktCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQntCh0JvQkNCS0KfQldCS0JjQiyDQl9CQ0KDQmNCI0JUKK9CS0KPQmtCe0KHQm9CQ0JLQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9CS0KPQmtCe0KLQkCDQnNCQ0KDQmtCeCivQktCj0JrQntCi0JAg0JzQmNCb0JDQnQor0JLQo9Ca0J7QotCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQntCi0JjQiyDQmNCS0JAKK9CS0KPQmtCe0KLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CS0KPQmtCe0KLQmNCLLdCa0J7QktCQ0KfQldCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0KPQmtCe0KLQmNCLINCb0KPQmtCQCivQktCj0JrQntCi0JjQiyDQnNCQ0KDQkAor0JLQo9Ca0J7QotCY0Isg0JzQkNCg0JjQiNCQCivQktCj0JrQntCi0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQntCi0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCe0KLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCi0JjQiyDQndCV0J3QkNCUCivQktCj0JrQntCi0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCe0KLQmNCLINCe0JvQk9CQCivQktCj0JrQntCi0JjQiyDQn9CV0KDQmNCo0JAKK9CS0KPQmtCe0KLQmNCLINCg0JDQlNCe0IjQlQor0JLQo9Ca0J7QotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0KPQmtCe0KLQmNCLINCh0J7QpNCY0IjQkAor0JLQo9Ca0J7QotCY0Isg0JfQntCg0JjQptCQCivQktCj0JrQntCSINCW0JjQktCa0J4KK9CS0KPQmtCe0JIg0ILQntCg0ILQlQor0JLQo9Ca0J7QkiDQgtCe0KDQgtCVCivQktCj0JrQntCSINCR0J7QqNCa0J4KK9CS0KPQmtCe0JIg0JHQntCo0JrQngor0JLQo9Ca0J7QkiDQkdCe0JbQkNCd0JAKK9CS0KPQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Ca0J7QkiDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Ca0J7QkiDQiNCe0JLQkNCdCivQktCj0JrQntCSINCI0J7QktCQ0J0KK9CS0KPQmtCe0JIg0JvQkNCX0JDQoAor0JLQo9Ca0J7QkiDQidCj0JHQntCc0JjQoAor0JLQo9Ca0J7QkiDQnNCQ0KDQmNCI0JAKK9CS0KPQmtCe0JIg0JzQkNCg0JrQngor0JLQo9Ca0J7QkiDQndCY0JrQntCb0JjQiNCQCivQktCj0JrQntCSINCe0JvQk9CQCivQktCj0JrQntCSINCh0KLQldCS0JjQptCQCivQktCj0JrQntCSINCS0KPQmtCQ0KjQmNCdCivQktCj0JrQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCe0JLQkNCmINCf0JDQndCi0JAKK9CS0KPQmtCe0JLQmNCLINCo0KLQldCk0JjQptCQCivQktCj0JrQntCS0JjQiyDQltCY0JLQmtCeCivQktCj0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0JLQo9Ca0J7QktCY0Isg0ILQntCg0ILQlQor0JLQo9Ca0J7QktCY0Isg0ILQo9Ca0JAKK9CS0KPQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JLQo9Ca0J7QktCY0Isg0JDQm9CV0JrQodCY0IjQkAor0JLQo9Ca0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CS0KPQmtCe0JLQmNCLINCQ0J3QotCeCivQktCj0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCR0JvQkNCW0J4KK9CS0KPQmtCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQktCj0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQktCj0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQktCj0JrQntCS0JjQiyDQkdCe0JPQmNCLCivQktCj0JrQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0JHQntCg0JjQqNCQCivQktCj0JrQntCS0JjQiyDQkdCe0KDQmNCo0JAKK9CS0KPQmtCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQktCj0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JLQo9Ca0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0KbQktCV0KLQmtCeCivQktCj0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQktCj0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Ca0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Ca0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCj0JrQntCS0JjQiyDQlNCg0JDQk9CeCivQktCj0JrQntCS0JjQiyDQlNCj0KjQkNCdINCU0KAg0JvQldCa0JDQoAor0JLQo9Ca0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0KPQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCT0JXQl9CQINCd0J7QktCY0J3QkNCgCivQktCj0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQktCj0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0J7QktCY0Isg0JjQktCQ0J0KK9CS0KPQmtCe0JLQmNCLINCY0JLQkNCdCivQktCj0JrQntCS0JjQiyDQmNCS0JjQptCQCivQktCj0JrQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JLQo9Ca0J7QktCY0Isg0IjQldCb0JjQptCQCivQktCj0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQktCj0JrQntCS0JjQiyDQiNCe0JLQkAor0JLQo9Ca0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0InQo9CR0JDQnQor0JLQo9Ca0J7QktCY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQktCj0JrQntCS0JjQiyDQnNCQ0KDQiNCV0J3QmtCQCivQktCj0JrQntCS0JjQiyDQnNCQ0KLQngor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JXQndCQCivQktCj0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CS0KPQmtCe0JLQmNCLINCc0JjQidCQ0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCj0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQktCj0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQktCj0JrQntCS0JjQiyDQnNCY0KDQntCI0JUKK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CS0KPQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CS0KPQmtCe0JLQmNCLINCc0JjQotCQCivQktCj0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQmtCe0JLQmNCLINCd0JDQlNCQCivQktCj0JrQntCS0JjQiyDQndCQ0JTQkAor0JLQo9Ca0J7QktCY0Isg0J3QldCU0JAKK9CS0KPQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9CS0KPQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9CS0KPQmtCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JLQo9Ca0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQktCj0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JLQo9Ca0J7QktCY0Isg0KDQkNCU0JUKK9CS0KPQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQktCj0JrQntCS0JjQiyDQoNCQ0KLQmtCeCivQktCj0JrQntCS0JjQiyDQodCQ0JLQkAor0JLQo9Ca0J7QktCY0Isg0KHQldCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0KHQmNCc0JAKK9CS0KPQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCh0KDQldCL0JrQngor0JLQo9Ca0J7QktCY0Isg0KHQoNCV0JTQntCI0JUKK9CS0KPQmtCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQktCj0JrQntCS0JjQiyDQodCi0JjQn9CQCivQktCj0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQmtCe0JLQmNCLLdCi0JDQktCn0JjQntCh0JrQkCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JLQo9Ca0J7QktCY0Isg0KLQntCU0J7QoAor0JLQo9Ca0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQo9Ca0J7QktCY0Isg0JLQldCh0J3QkAor0JLQo9Ca0J7QktCY0Isg0JLQmNCU0JDQmgor0JLQo9Ca0J7QktCY0Isg0JLQmNCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSINCU0KAKK9CS0KPQmtCe0JLQmNCLINCS0JvQkNCi0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCS0J7QiNCa0J4KK9CS0KPQmtCe0JLQmNCLINCS0KPQp9CY0IsKK9CS0KPQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0InQkNCaINCR0J7QodCY0InQmtCQCivQktCj0JrQntCS0InQkNCaINCV0JLQmNCm0JAKK9CS0KPQmtCe0JLQidCQ0Jog0JzQmNCg0JrQngor0JLQo9Ca0J7QktCJ0JDQmiDQktCe0IjQmNCdCivQktCj0JrQntCS0J7QiNCQ0KYg0J7Qm9CT0JAKK9CS0KPQmtCe0JLQntCI0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQktCj0JrQodCQ0J0g0JzQmNCb0JDQnQor0JLQo9Ca0KHQkNCdINCc0JjQm9CY0JLQntCICivQktCj0JrQodCQ0J0g0JzQmNCe0JTQoNCQ0JMKK9CS0KPQmtCh0JDQnSDQndCY0JrQntCb0JAKK9CS0KPQmtCh0JDQnSDQoNCQ0JTQntCh0JvQkNCSINCf0KDQntCk0JXQodCe0KAKK9CS0KPQmtCh0JDQnSDQoNCj0JbQmNCm0JAKK9CS0KPQmtCh0JDQnSDQodCS0JXQotCe0JfQkNCgCivQktCj0JrQodCQ0J0g0JLQo9Ca0J7QodCQ0JLQkAor0JLQo9Ca0KHQkNCd0J7QkiDQidCj0JHQmNCm0JAKK9CS0KPQmtCh0JDQndCe0JIg0JLQntCI0JjQodCb0JDQkgor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQodCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JTQkNCg0JrQngor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9CS0KPQmtCh0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCj0JrQodCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQodCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JrQodCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JzQmNCg0J4KK9CS0KPQmtCh0JDQndCe0JLQmNCLINCh0JDQktCeCivQktCj0JrQodCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J3QmtCQCivQktCj0JrQodCY0Isg0KHQotCV0JLQngor0JLQo9Ca0KHQmNCLINCS0JXQm9CY0JzQmNCgCivQktCj0JrQo9Co0JjQiyDQkNCd0KLQlQor0JLQo9Cb0JDQndCe0JLQmNCLINCg0JXQidCQCivQktCj0JvQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQo9Cb0JXQotCQINCR0J7QiNCQ0J0KK9CS0KPQm9CV0KLQkCDQn9Cg0JXQlNCg0JDQkwor0JLQo9Cb0JXQotCQINCg0JjQodCi0J4KK9CS0KPQm9CV0KLQmNCLINCW0JXQidCa0J4KK9CS0KPQm9CV0KLQmNCLINCC0J7QoNCC0JjQiNCVCivQktCj0JvQldCi0JjQiyDQkNCd0JTQoNCY0IjQkAor0JLQo9Cb0JXQotCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9Cb0JXQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0KPQm9CV0KLQmNCLINCR0KDQkNCd0JrQngor0JLQo9Cb0JXQotCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JvQldCi0JjQiyDQlNCQ0J3QmNCm0JAg0JTQoAor0JLQo9Cb0JXQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0JvQldCi0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQm9CV0KLQmNCLINCI0JXQm9CY0KbQkCDQn9Cg0J7QpNCV0KHQntCgCivQktCj0JvQldCi0JjQiyDQnNCY0JvQkNCU0JjQnQor0JLQo9Cb0JXQotCY0Isg0JzQmNCb0JDQnSDQktCV0KLQldCg0JjQndCQ0KAKK9CS0KPQm9CV0KLQmNCLINCc0JjQm9CVCivQktCj0JvQldCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JLQo9Cb0JXQotCY0Isg0JzQm9CQ0JTQldCdCivQktCj0JvQldCi0JjQiyDQndCQ0JTQldCW0JTQkAor0JLQo9Cb0JXQotCY0Isg0J3QldCU0JXQidCa0J4KK9CS0KPQm9CV0KLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cb0JXQotCY0Isg0J7QkdCg0JDQlAor0JLQo9Cb0JXQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0KPQm9CV0KLQmNCLINCh0KDQgtCQ0J0KK9CS0KPQm9CV0KLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CS0KPQm9CV0KLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CS0KPQm9CV0KLQmNCLINCS0JjQotCe0JzQmNCgCivQktCj0JvQldCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0JvQldCi0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CS0KPQm9CV0KLQmNCLINCX0J7QoNCY0KbQkAor0JLQo9Cb0JXQotCY0J0g0JfQntCg0JAKK9CS0KPQm9CV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQktCj0JvQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JLQo9Cb0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CS0KPQm9CV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQktCj0JvQmNCLINCW0JjQmtCQCivQktCj0JvQmNCLINCC0J7QoNCC0JUKK9CS0KPQm9CY0Isg0ILQntCg0ILQlQor0JLQo9Cb0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Cb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9CS0KPQm9CY0Isg0JTQldCh0JDQndCa0JAKK9CS0KPQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Cb0JjQiyDQmNCb0JjQiNCQCivQktCj0JvQmNCLINCI0JDQktCe0KDQmtCQCivQktCj0JvQmNCLINCI0JXQm9CV0J3QkAor0JLQo9Cb0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQm9CY0Isg0IjQntCS0JDQnQor0JLQo9Cb0JjQiyDQiNCe0JLQkNCdCivQktCj0JvQmNCLINCI0J7QktCQ0J0KK9CS0KPQm9CY0Isg0JvQo9Ca0JAKK9CS0KPQm9CY0Isg0JvQo9Ca0JAKK9CS0KPQm9CY0Isg0JzQmNCb0JDQndCa0JAKK9CS0KPQm9CY0Isg0JzQmNCb0JDQnQor0JLQo9Cb0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQm9CY0Isg0JzQm9CQ0JTQldCdCivQktCj0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQktCj0JvQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cb0JjQiyDQn9CV0KLQmtCeCivQktCj0JvQmNCLINCh0JvQkNCS0JjQptCQCivQktCj0JvQmNCLINCh0JvQkNCS0JrQngor0JLQo9Cb0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQm9CY0Isg0JfQm9CQ0KLQkAor0JLQo9Cb0JjQiyDQl9Cb0JDQotCY0IjQkAor0JLQo9Cb0JjQmtCY0Isg0JvQo9Ca0JAKK9CS0KPQm9CY0JrQmNCLINCg0KPQltCY0KbQkAor0JLQo9Cb0JjQmtCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0KPQm9CY0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQm9CY0J0g0JDQndCT0JXQm9CY0J3QkAor0JLQo9Cb0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQm9CY0J0g0JPQntCI0JrQngor0JLQo9Cb0JjQnSDQiNCj0JvQmtCQCivQktCj0JvQmNCdINCc0JvQkNCU0JXQnQor0JLQo9Cb0JjQnSDQndCV0J3QkNCUCivQktCj0JvQmNCdINCd0JXQndCQ0JQKK9CS0KPQm9CY0J0g0J/QoNCV0JTQoNCQ0JMKK9CS0KPQm9CY0J0g0KDQkNCU0J7QnNCY0KAKK9CS0KPQm9CY0J0g0KHQotCV0JLQkNCdCivQktCj0JvQmNCdINCS0KPQmtCQ0KjQmNCdCivQktCj0InQkNCIINCS0JDQodCV0IkKK9CS0KPQidCV0JLQmNCLINCC0J7QmtCQCivQktCj0JvQmtCQ0J3QmCDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQm9Ce0JLQmNCLINCU0KDQkNCT0J7QqAor0JLQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JLQo9Cb0J7QktCY0Isg0JPQntCg0JDQnQor0JLQo9Cb0J7QktCY0Isg0J/QldCi0JDQoAor0JLQo9Cb0J7QktCY0Isg0KDQkNCI0JrQngor0JLQo9Cb0J7QktCY0Isg0KHQkNCS0J4KK9CS0KPQm9Ce0JLQmNCLINCh0JvQkNCS0JjQqNCQCivQktCj0JvQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0JvQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQm9Ch0JDQndCe0JLQmNCLINCY0JvQmtCQCivQktCj0J3QlNCV0KDQm9CY0KUg0IjQntCh0JjQnwor0JLQo9Cd0JTQo9CaINCc0JjQoNCe0KHQm9CQ0JLQkAor0JLQo9Cd0JjQiyDQnNCY0InQldCd0JrQngor0JLQo9Cd0JjQiyDQn9CV0KLQkNCgCivQktCj0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQktCj0IrQkNCaINCC0J7QoNCC0JUKK9CS0KPQitCQ0Jog0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0KPQitCQ0Jog0JTQo9Co0JDQnQor0JLQo9Cg0JTQldCJ0JAg0J3QldCc0JDQitCQINCU0KAg0J/QoNCe0KQKK9CS0KPQoNCU0JXQidCQINCh0J7QpNCY0IjQkAor0JLQo9Cg0JTQldCJ0JAg0JLQkNCh0JAKK9CS0KPQoNCh0KIg0IjQntCS0JDQndCa0JAKK9CS0KPQoNCj0J3QkCDQkdCg0JDQndCa0J4KK9CS0KPQoNCj0J3QkCDQnNCQ0KDQmNCI0JAKK9CS0KPQoNCj0J3QmNCLINCX0JTQoNCQ0JLQmtCeCivQl9CQ0JHQm9CV0IvQkNCd0KHQmtCYINCS0JvQkNCU0JAKK9CX0JDQkdCg0JTQkNCmINCc0JjQm9CQ0J0KK9CX0JDQkdCj0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9CX0JDQlNCe0KAg0JDQndCU0KDQmNCI0JAg0JTQoCDQmNCj0KDQlQor0JfQkNCU0KDQkNCS0JXQpiDQiNCe0KHQmNCfCivQl9CQ0JTQoNCeINCd0JjQmtCe0JvQkAor0JfQkNCk0JjQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JfQkNCT0JAg0JzQmNCb0JDQnQor0JfQkNCT0JDQiNCn0JDQnSDQmtCe0KHQotCQCivQl9CQ0JPQntCg0KfQmNCLINCW0JDQoNCa0J4KK9CX0JDQk9Ce0KDQp9CY0Isg0JbQmNCS0JrQngor0JfQkNCT0J7QoNCn0JjQiyDQltCY0JLQmtCeCivQl9CQ0JPQntCg0KfQmNCLINCC0J7QoNCC0JUKK9CX0JDQk9Ce0KDQp9CY0Isg0ILQntCg0ILQlQor0JfQkNCT0J7QoNCn0JjQiyDQgtCe0KDQgtCVCivQl9CQ0JPQntCg0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JfQkNCT0J7QoNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQl9CQ0JPQntCg0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CX0JDQk9Ce0KDQp9CY0Isg0JPQkNCS0KDQkAor0JfQkNCT0J7QoNCn0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9CX0JDQk9Ce0KDQp9CY0Isg0JPQntCg0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQmNCb0JjQiNCQCivQl9CQ0JPQntCg0KfQmNCLINCY0JvQmNCI0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JjQoNCV0J3QkAor0JfQkNCT0J7QoNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JfQkNCT0J7QoNCn0JjQiyDQiNCV0JvQldCd0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0IjQntCS0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQiNCe0JLQkNCdCivQl9CQ0JPQntCg0KfQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JvQkNCX0JDQoAor0JfQkNCT0J7QoNCn0JjQiyDQm9CQ0JfQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCb0JDQl9CQCivQl9CQ0JPQntCg0KfQmNCLINCc0JDQoNCY0IjQkAor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQkNCdCivQl9CQ0JPQntCg0KfQmNCLINCc0JjQm9CQ0J0KK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JjQptCQCivQl9CQ0JPQntCg0KfQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JjQktCe0IgKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JjQktCe0IgKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0J7QqAor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQntCh0JDQkgor0JfQkNCT0J7QoNCn0JjQiy3QntCg0KjQntCoINCU0KDQkNCT0JDQndCQCivQl9CQ0JPQntCg0KfQmNCLINCf0JDQndCi0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0J/QldCi0JDQoAor0JfQkNCT0J7QoNCn0JjQiyDQn9CV0KLQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCf0KDQldCU0KDQkNCTCivQl9CQ0JPQntCg0KfQmNCLINCg0JDQlNCY0JLQntCICivQl9CQ0JPQntCg0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CX0JDQk9Ce0KDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQodCi0JXQktCQ0J0KK9CX0JDQk9Ce0KDQp9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQl9CQ0JPQntCg0KfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CX0JDQk9Ce0KDQp9CY0Isg0KPQoNCe0KgKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQkNCh0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQkNCh0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQkNCh0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JfQkNCT0J7QoNCn0JjQiyDQl9CY0IjQkNClCivQl9CQ0JPQntCg0JDQpiDQkdCe0JbQmNCm0JAKK9CX0JDQk9Ce0KDQkNCmINCU0JjQnNCY0KLQoNCY0IjQlQor0JfQkNCT0J7QoNCQ0KYg0JTQo9Co0JDQnQor0JfQkNCT0J7QoNCQ0KYg0JjQktCQ0J0KK9CX0JDQk9Ce0KDQkNCmINCc0JDQoNCY0IjQkAor0JfQkNCT0J7QoNCQ0KYg0JzQmNCb0JXQndCQCivQl9CQ0JPQntCg0JDQpiDQnNCY0JvQmNCm0JAKK9CX0JDQk9Ce0KDQkNCmINCc0JjQm9CY0KbQkAor0JfQkNCT0J7QoNCQ0KYg0J3QldCU0JXQidCa0J4KK9CX0JDQk9Ce0KDQkNCmINCd0JjQmtCe0JvQkAor0JfQkNCT0J7QoNCQ0KYg0J3QmNCa0J7Qm9CQCivQl9CQ0JPQntCg0JDQpiDQntCh0KLQntCI0JAKK9CX0JDQk9Ce0KDQkNCmINCf0JXQotCQ0KAKK9CX0JDQk9Ce0KDQkNCmINCg0JDQiNCa0J4KK9CX0JDQk9Ce0KDQkNCmINCg0KPQltCY0KbQkAor0JfQkNCT0J7QoNCQ0KYg0KHQmNCc0J4KK9CX0JDQk9Ce0KDQkNCmINCS0JDQm9Ca0J4KK9CX0JDQk9Ce0KDQldCmINCI0J7QodCY0J8KK9CX0JDQk9Ce0KDQmNCm0JAg0J7Ql9Cg0JXQnQor0JfQkNCT0KDQkNCC0JAg0JHQkNCI0JjQoNCQ0JwKK9CX0JDQpdCQ0KDQmNCI0JXQktCY0Isg0JHQntCT0JTQkNCdCivQl9CQ0KXQntCg0JDQmCDQiNCe0JLQkNCdCivQl9CQ0KXQntCg0JXQpiDQl9Cj0JfQkNCd0JAKK9CX0JDQpdCe0KDQntCU0J3QmCDQkNCd0KLQntCdCivQl9CQ0KXQntCg0J7QlNCd0Jgg0JjQktCQ0J0KK9CX0JDQmNCc0J7QktCY0Isg0JzQo9Cl0JDQoNCV0JwKK9CX0JDQiNCX0J7QkiDQiNCV0JvQldCd0JAKK9CX0JDQmtCQ0Iog0JDQoNCf0JDQlAor0JfQkNCa0JDQiiDQm9CQ0IjQntCoCivQl9CQ0JrQkNCKINCc0JjQoNCa0J4KK9CX0JDQmtCQ0Iot0KLQntCR0J7Qm9Ca0JAg0JXQktCQCivQl9CQ0JrQmNCLINCC0J7QoNCC0JUKK9CX0JDQmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9CX0JDQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQl9CQ0JrQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CX0JDQmtCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JfQkNCa0JjQiyDQmNCS0JDQnQor0JfQkNCa0JjQiyDQnNCY0JvQkNCdCivQl9CQ0JrQmNCLINCh0JDQktCQCivQl9CQ0JrQm9CQ0J0g0ILQo9Cg0JAKK9CX0JDQmtCb0JDQnSDQnNCY0JvQkNCdCivQl9CQ0JrQm9CQ0J0g0J3QldCT0JjQptCQCivQl9CQ0JrQm9CQ0J0g0KDQkNCd0JrQngor0JfQkNCa0JvQkNCdINCh0JvQntCR0J7QlNCQ0J0KK9CX0JDQmtCb0JDQnSDQodCi0JDQndCY0KjQkAor0JfQkNCa0JvQkNCdINCi0JjQpdCe0JzQmNCgCivQl9CQ0JrQm9CQ0J0g0KLQntCc0JjQodCb0JDQkgor0JfQkNCb0JjQoSDQk9CV0J7QoNCT0JjQiNCVCivQl9CQ0JvQmNChINCI0JDQndCY0KEKK9CX0JDQnNCQ0JrQm9CQ0KAg0JfQntCg0JDQnQor0JfQkNCc0J7Qm9CeINCV0JTQo9CQ0KDQlAor0JfQkNCc0KPQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9CQ0JzQo9Cg0J7QktCY0Isg0JHQntCI0JDQndCQCivQl9CQ0JzQo9Cg0J7QktCY0Isg0JrQntCh0KLQkAor0JfQkNCc0KPQoNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JfQkNCc0KPQoNCe0JLQmNCLINCe0JvQk9CQINCU0KAKK9CX0JDQnNCj0KDQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CX0JDQndCe0JLQiNCQ0Jog0J/QldCi0JXQoAor0JfQkNCf0KPQndCY0JTQmNChINCb0JXQntCd0JjQlNCQ0KEKK9CX0JDQoNCV0KbQmtCYINCg0J7Ql9CQ0JvQmNCI0JAKK9CX0JDQoNCY0KfQndCYINCS0JXQoNCY0KbQkAor0JfQkNCg0JjQp9Cd0Jgg0JLQldCg0J7QndCY0JrQkAor0JfQkNCg0JjQiyDQgtCe0KDQgtCVCivQl9CQ0KDQmNCLINCC0J7QoNCC0JUKK9CX0JDQoNCY0Isg0ILQntCg0ILQlQor0JfQkNCg0JjQiyDQkdCe0KjQmtCeCivQl9CQ0KDQmNCLINCR0J7Qk9CU0JDQnQor0JfQkNCg0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQl9CQ0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JfQkNCg0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CX0JDQoNCY0Isg0JTQoNCQ0JPQkAor0JfQkNCg0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CX0JDQoNCY0Isg0JTQo9Co0JDQnQor0JfQkNCg0JjQiyDQmNCS0JDQndCa0JAKK9CX0JDQoNCY0Isg0JjQktCQ0J0KK9CX0JDQoNCY0Isg0IjQldCb0JXQndCQCivQl9CQ0KDQmNCLINCI0J7QktCQ0J0KK9CX0JDQoNCY0Isg0IjQntCS0J4KK9CX0JDQoNCY0Isg0JrQkNCi0JjQptCQCivQl9CQ0KDQmNCLINCa0JDQotCY0KbQkAor0JfQkNCg0JjQiyDQm9CQ0JfQkNCgCivQl9CQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JfQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CX0JDQoNCY0Isg0JzQmNCa0JAKK9CX0JDQoNCY0Isg0JzQmNCb0JDQlNCY0J0KK9CX0JDQoNCY0Isg0JzQmNCb0JDQnQor0JfQkNCg0JjQiyDQnNCY0JvQkNCdCivQl9CQ0KDQmNCLINCc0JjQm9CV0J3QkAor0JfQkNCg0JjQiyDQnNCY0JvQmNCm0JAKK9CX0JDQoNCY0Isg0JzQmNCb0JjQptCQCivQl9CQ0KDQmNCLINCc0JjQntCU0KDQkNCTCivQl9CQ0KDQmNCLINCc0JvQkNCU0JXQnQor0JfQkNCg0JjQiyDQnNCe0JzQp9CY0JvQngor0JfQkNCg0JjQiyDQndCY0JrQntCb0JAKK9CX0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQl9CQ0KDQmNCLINCd0J7QktCQ0JoKK9CX0JDQoNCY0Isg0J/QldCi0JDQoAor0JfQkNCg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JfQkNCg0JjQiyDQoNCQ0IjQngor0JfQkNCg0JjQiyDQodCQ0JLQkAor0JfQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9CQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CX0JDQoNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JfQkNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CX0JDQoNCY0Isg0KHQotCQ0J3QmtCQCivQl9CQ0KDQmNCLINCh0KLQldCS0JDQnQor0JfQkNCg0JjQiyDQktCV0KHQndCQCivQl9CQ0KDQmNCLINCX0JDQoNCY0IjQkAor0JfQkNCg0JjQiyDQl9CU0KDQkNCS0JrQngor0JfQkNCg0JjQiyDQl9Ce0KDQmtCQCivQl9CQ0KDQmNCdINCh0KLQldCS0JAKK9CX0JDQoNCY0J3Qk9CV0KAt0J/QmNCd0KLQldCgINCd0JjQmtCe0JvQkAor0JfQkNCg0JrQntCSINCa0J7QptCQCivQl9CQ0KDQm9CYINCa0JDQotCQ0KDQmNCd0JAKK9CX0JDQoNCd0J7QptCa0Jgg0J/QkNCS0JvQlQor0JfQkNCg0J7QmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQkNCg0KPQkdCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0JDQoNCj0JHQkNCmINCR0J7QoNCa0JAKK9CX0JDQoNCj0JHQkNCmINCg0J7QnNCY0KbQkAor0JfQkNCg0KPQkdCY0KbQkCDQkdCe0JbQkNCd0JAKK9CX0JDQoNCj0JHQmNCm0JAg0KDQkNCU0KPQnQor0JfQkNCg0KPQn9Ch0JrQmCDQgtCe0KDQgtCVCivQl9CQ0KDQo9Cf0KHQmtCYINCR0KDQkNCd0JrQngor0JfQkNCg0KPQn9Ch0JrQmCDQnNCY0JvQntCS0JDQnQor0JfQkNCi0JXQmiDQnNCQ0KDQmNCI0JAKK9CX0JDQotCV0JfQkNCb0J4g0JTQo9Co0JDQnSDQn9Cg0J7QpAor0JfQkNCi0JXQl9CQ0JvQniDQnNCY0J7QlNCg0JDQkwor0JfQkNCi0JXQl9CQ0JvQniDQn9CV0KLQkNCgCivQl9CQ0KLQldCX0JDQm9CeINCf0KDQldCU0KDQkNCTCivQl9CQ0JLQkNCg0JPQniDQl9Ce0JvQotCQ0J0KK9CX0JDQktCQ0KDQmtCeINCo0JDQndCU0J7QoAor0JfQkNCS0JDQoNCa0J4g0KjQkNCd0JTQntCgCivQl9CQ0JLQkNCg0JrQniDQqNCQ0J3QlNCe0KAKK9CX0JDQktCQ0KDQmtCeINCQ0J3QotCQ0JsKK9CX0JDQktCQ0KDQmtCeINCV0KHQotCV0KDQkAor0JfQkNCS0JDQoNCa0J4g0JjQqNCi0JLQkNCdCivQl9CQ0JLQkNCg0JrQniDQiNCQ0J3QntCoCivQl9CQ0JLQkNCg0JrQniDQmtCQ0KDQm9CeCivQl9CQ0JLQkNCg0JrQniDQnNCQ0KDQmNCI0JAKK9CX0JDQktCQ0KDQmtCeINCS0JXQoNCQCivQl9CQ0JLQkNCg0J7QqCDQkNCd0JTQoNCY0IjQkAor0JfQkNCS0JjQqNCQINCf0JXQotCQ0KAKK9CX0JDQktCY0KjQkCDQoNCQ0J3QmtCeCivQl9CQ0JLQmNCo0JjQiyDQptCS0JjQiNCV0KLQkAor0JfQkNCS0JjQqNCY0Isg0JzQmNCb0JDQnQor0JfQkNCS0JjQqNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CX0JDQktCY0KjQmNCLINCS0JjQlNCQCivQl9CQ0JLQmNCo0JjQnSDQnNCQ0KDQmNCm0JAKK9CX0JDQktCY0KjQmNCdINCc0J7QnNCY0KAKK9CX0JDQktCY0KjQmNCdINCh0JDQktCQCivQl9CQ0JLQoNCi0JDQndCY0Jog0JjQktCQ0J0KK9CX0JDQktCg0KLQkNCd0JjQmiDQmNCS0JDQnQor0JfQkNCS0KDQotCQ0J3QmNCaINCc0JDQoNCI0JDQnQor0JfQkNCX0KPQidCQ0Jog0KHQm9CQ0JLQmtCeCivQl9CR0JDQp9Cd0JjQmiDQl9Ce0KTQmNCI0JAKK9CX0JHQmNCJ0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQl9CR0KPQi9Cd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CX0JHQo9CL0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQl9CR0KPQi9Cd0J7QktCY0Isg0JzQmNCb0J7QqAor0JfQkdCj0IvQndCe0JLQmNCLINCc0JjQotCQCivQl9CR0KPQi9Cd0J7QktCY0Isg0J/QkNCS0JvQlQor0JfQkdCj0IvQndCe0JLQmNCLINCh0JDQktCQCivQl9CU0JXQm9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JfQlNCV0IrQkNCaINCI0J7QodCY0J8KK9CX0JTQmNCl0JDQnSDQnNCQ0KDQmtCeCivQl9CU0IjQldCb0JDQoCDQlNCg0JDQk9CQ0J0KK9CX0JTQiNCV0JvQkNCgINCc0JjQoNCe0KHQm9CQ0JIKK9CX0JTQiNCV0JvQkNCgINCe0JvQk9CQCivQl9CU0IjQldCb0JDQoCDQktCY0KjQitCQCivQl9CU0IjQldCb0JDQoCDQl9CU0KDQkNCS0JrQngor0JfQlNCI0JXQm9CQ0KDQmNCLINCR0KDQkNCd0JrQngor0JfQlNCI0JXQm9CQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JfQlNCg0JDQktCV0KHQmtCYINCU0KPQqNCQ0J3QmtCQCivQl9CU0KDQkNCS0JXQktCh0JrQmCDQmNCb0JjQiNCQCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JfQlNCg0JDQktCa0J7QktCY0Isg0JTQldCI0JDQnQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JfQlNCg0JDQktCa0J7QktCY0Isg0IjQntCS0JDQnQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JfQlNCg0JDQktCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JfQlNCg0JDQktCa0J7QktCY0Isg0KDQkNCU0JUKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCg0JDQlNCVCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JfQlNCg0JDQktCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JfQlNCg0JDQktCa0J7QktCY0Isg0JLQldCg0J7QidCj0JEKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCS0JjQlNCe0IjQlQor0JfQlNCj0J/QodCa0Jgg0JHQntCW0JjQlNCQ0KAKK9CX0JXQp9CQ0Jog0JLQntCI0JAKK9CX0JXQp9CV0JLQmNCLINCC0J7QoNCC0J4KK9CX0JXQp9CV0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CX0JXQp9CV0JLQmNCLINCm0JLQmNCI0JDQnQor0JfQldCn0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVINCU0KAKK9CX0JXQp9CV0JLQmNCLINCU0KDQkNCT0JDQnSDQlNCgCivQl9CV0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQl9CV0KfQldCS0JjQiyDQk9Ce0JvQo9CRCivQl9CV0KfQldCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0JfQldCn0JXQktCY0Isg0KXQmNCc0JfQngor0JfQldCn0JXQktCY0Isg0JrQoNCh0KLQngor0JfQldCn0JXQktCY0Isg0InQo9CR0JjQptCQCivQl9CV0KfQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JfQldCn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQl9CV0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0KfQldCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JfQldCn0JXQktCY0Isg0JzQmNCb0J4KK9CX0JXQp9CV0JLQmNCLINCc0JjQntCc0JjQoAor0JfQldCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CX0JXQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JfQldCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQl9CV0KfQldCS0JjQiyDQndCe0JLQkNCaCivQl9CV0KfQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JfQldCn0JXQktCY0Isg0KDQkNCI0JrQngor0JfQldCn0JXQktCY0Isg0KDQmNCh0KLQmNCS0J7QiNCVCivQl9CV0KfQldCS0JjQiyDQodCQ0JLQngor0JfQldCn0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQl9CV0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9CV0KfQldCS0JjQiyDQodCc0JjQidCQCivQl9CV0KfQldCS0JjQiyDQodCc0JjQidCQCivQl9CV0KfQldCS0JjQiyDQodCe0KTQmNCI0JAKK9CX0JXQp9CV0JLQmNCLINCS0JXQodCd0JAKK9CX0JXQp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CX0JXQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9CX0JXQp9CY0KDQntCS0JjQiyDQmNCb0JzQmAor0JfQldCL0JjQoNCYINCY0KHQnNCQ0JjQmwor0JfQldCL0JjQoNCYINCX0JjQiNCQCivQl9CV0KYg0JbQldCJ0JrQngor0JfQldCmINCC0KPQoNCeCivQl9CV0KYg0JHQntCo0JrQngor0JfQldCmINCR0J7QltCY0JTQkNCgCivQl9CV0KYg0JTQkNCd0JjQiNCV0JsKK9CX0JXQpiDQlNCg0JDQk9CQ0J0KK9CX0JXQpiDQlNCg0JDQk9Cj0KLQmNCdCivQl9CV0KYg0JTQo9Co0JDQnQor0JfQldCmINCU0KPQqNCQ0J0KK9CX0JXQpiDQiNCe0JLQkNCdCivQl9CV0KYg0JzQkNCg0JjQiNCQCivQl9CV0KYg0JzQkNCg0JjQiNCQCivQl9CV0KYg0JzQkNCg0JjQndCa0J4KK9CX0JXQpiDQnNCQ0KLQkAor0JfQldCmINCc0JjQm9CQ0J0KK9CX0JXQpiDQnNCY0JvQkNCdCivQl9CV0KYg0JzQmNCb0JUg0JTQmNCf0Jsg0JjQndCTCivQl9CV0KYg0JzQmNCb0J7QqAor0JfQldCmINCc0JjQm9Ce0KgKK9CX0JXQpiDQnNCY0JvQntCg0JDQlAor0JfQldCmINCc0JjQm9Ce0JLQkNCdCivQl9CV0KYg0J3QmNCa0J7Qm9CQCivQl9CV0KYg0J3QmNCa0J7Qm9CQCivQl9CV0KYg0KDQkNCU0J7QktCQ0J0KK9CX0JXQpiDQoNCQ0IjQmtCeCivQl9CV0KYg0KDQkNCI0JrQngor0JfQldCmINCh0KLQldCS0JDQndCY0IjQkAor0JfQldCmINCX0J7QoNCY0KbQkAor0JfQldCU0Jgg0JzQmNCl0JDQiQor0JfQldCT0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0JXQk9Cd0JDQmyDQoNCj0JTQntCb0KQKK9CX0JXQiNCQ0Jog0JjQktCQ0J0KK9CX0JXQiNCQ0Jog0JzQmNCb0JXQotCQCivQl9CV0IjQkNCaINCg0JDQlNCe0KgKK9CX0JXQmtCQINCT0JfQmNCcCivQl9CV0JrQkCDQpdCY0KDQl9CV0J0KK9CX0JXQmtCQINCY0KDQnNCQCivQl9CV0JrQkNCS0JjQptCQINCI0JXQm9CV0J3QkAor0JfQldCa0JDQktCY0KbQkCDQnNCY0KDQiNCQ0J3QkAor0JfQldCa0JDQktCY0KbQkCDQodCb0JDQktCY0KbQkAor0JfQldCa0JDQktCY0KbQkCDQodCg0ILQkNCdCivQl9CV0JrQmNCLINCc0JjQoNCQCivQl9CV0JrQntCK0JAg0JfQlNCg0JDQktCa0J4KK9CX0JXQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CX0JXQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CX0JXQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQl9CV0JrQntCS0JjQiyDQpdCQ0J3QmtCY0IjQkAor0JfQldCa0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JfQldCa0J7QktCY0Isg0JvQmNCb0JAKK9CX0JXQmtCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQl9CV0JrQntCS0JjQiyDQnNCY0JvQntCoCivQl9CV0JrQntCS0JjQiyDQn9CV0KLQkNCgINCU0JjQm9CfINCe0JXQpgor0JfQldCa0J7QktCY0Isg0J/QldCi0JDQoAor0JfQldCa0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9CX0JXQmtCe0JLQmNCLINCg0JjQl9CQCivQl9CV0JrQntCS0JjQiyDQktCQ0KHQngor0JfQldCa0J7QktCh0JrQmCDQl9Ce0KDQmNCm0JAKK9CX0JXQm9CV0J3QkdCQ0JHQkCDQoNCQ0KLQmtCeCivQl9CV0JvQldCd0JHQkNCR0JAg0KHQotCV0JLQkNCdCivQl9CV0JvQldCd0KXQkNCh0JjQiyDQldCc0JjQoAor0JfQldCb0JXQitCQ0Jog0JDQndCU0KDQmNCI0JAKK9CX0JXQm9CV0IrQkNCaINCh0KLQiNCV0J/QkNCdCivQl9CV0JvQldCd0JrQkCDQpNCg0JDQitCQCivQl9CV0JvQldCd0JrQkCDQnNCQ0KDQmNCI0JAKK9CX0JXQm9CV0J3QmtCeINCV0JzQkAor0JfQldCb0JXQndCe0JLQmNCLINCR0J7QoNCY0KjQkAor0JfQldCb0JXQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JfQldCb0JXQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JfQldCb0JXQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CX0JXQm9CV0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CX0JXQm9CV0J3QntCS0JjQiyDQidCj0JHQngor0JfQldCb0JXQndCe0JLQmNCLINCc0JDQoNCQCivQl9CV0JvQldCd0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CX0JXQm9CV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0JvQldCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CX0JXQm9CV0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JfQldCb0JXQndCe0JLQmNCLINCS0JXQoNCQCivQl9CV0JvQldCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JfQldCb0JXQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQldCb0JXQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQldCb0JXQndCh0JrQmCDQiNCV0JvQldCd0JAKK9CX0JXQm9CV0J3QodCa0Jgg0JzQmNCb0JjQptCQCivQl9CV0JvQmNCLINCC0J7QoNCC0JUKK9CX0JXQm9CY0Isg0JjQktCQ0J0KK9CX0JXQm9CY0Isg0IjQkNCd0J7QqAor0JfQldCb0JjQiyDQiNCe0JLQkNCdCivQl9CV0JvQmNCLINCb0JDQl9CQ0KAKK9CX0JXQm9CY0Isg0InQo9CR0JAKK9CX0JXQm9CY0Isg0InQo9CR0JjQptCQCivQl9CV0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQl9CV0JvQmNCLINCc0JDQoNCi0JAKK9CX0JXQm9CY0Isg0J/QkNCS0JvQlQor0JfQldCb0JjQiyDQn9CV0KDQodCY0JTQkAor0JfQldCb0JjQiyDQn9CV0KLQkNCgCivQl9CV0JvQmNCLINCg0KPQltCY0KbQkAor0JfQldCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQl9CV0JvQmNCLINCX0J7Qm9Ci0JDQnQor0JfQldCJ0JDQiNCY0Isg0J3QmNCa0J7Qm9CQINCU0KAKK9CX0JXQidCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQldCJ0JrQniDQnNCQ0KDQmNCm0JAKK9CX0JXQidCa0J7QktCY0Isg0JbQldCJ0JrQngor0JfQldCJ0JrQntCS0JjQiyDQltCV0InQmtCeCivQl9CV0InQmtCe0JLQmNCLINCC0KPQoNCeCivQl9CV0InQmtCe0JLQmNCLINCR0J7QodCQCivQl9CV0InQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JfQldCJ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CX0JXQidCa0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9CX0JXQidCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JfQldCJ0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQl9CV0InQmtCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JfQldCJ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQl9CV0InQmtCe0JLQmNCLINCI0J7QktCeCivQl9CV0InQmtCe0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CX0JXQidCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQl9CV0InQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CX0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JfQldCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0InQmtCe0JLQmNCLINCc0JjQm9CY0IsKK9CX0JXQidCa0J7QktCY0Isg0JzQmNCJ0JAKK9CX0JXQidCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JfQldCJ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQl9CV0InQmtCe0JLQmNCLINCe0KHQotCe0IjQkAor0JfQldCJ0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JfQldCJ0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQl9CV0InQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CX0JXQidCa0J7QktCY0Isg0KHQmNCc0JAKK9CX0JXQidCa0J7QktCY0Isg0KHQotCV0JLQngor0JfQldCJ0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQl9CV0InQmtCe0JLQmNCLINCi0J7QlNCVCivQl9CV0InQmtCe0JLQmNCLINCi0J7QnNCQCivQl9CV0InQmtCe0JLQmNCLINCS0JXQoNCQCivQl9CV0InQmtCe0JLQmNCLINCS0JvQkNCI0JrQngor0JfQldCJ0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JfQldCJ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQl9CV0InQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CX0JXQidCa0J7QktCY0Isg0JfQntCg0JDQnQor0JfQldCc0JHQldCg0Jgg0KTQldCg0JXQndCmCivQl9CV0JzQkdCV0KDQmCDQiNCe0KHQmNCfCivQl9CV0JzQkdCV0KDQmCDQoNCe0JHQldCg0KIKK9CX0JXQnNCa0J4g0KjQkNCd0JTQntCgCivQl9CV0JzQidCQ0Jog0JjQktCQ0J0KK9CX0JXQnNCJ0JDQndCQ0KYg0JzQmNCb0JDQndCa0JAKK9CX0JXQndCi0JDQmCDQoNCe0JHQldCg0KIg0JTQmNCf0Jsg0JjQndCTCivQl9CV0J3Qo9CdINCQ0JLQlNCeCivQl9CV0J3Ql9CV0KDQntCS0JjQiyDQn9CQ0JLQm9CVCivQl9CV0KDQlNCeINCR0J7QltCY0JTQkNCgCivQl9CV0KDQlNCeINCc0JjQm9Ce0KDQkNCUCivQl9CV0KDQlNCeINCg0JDQlNCe0KHQm9CQ0JIKK9CX0JXQoNCU0J4g0JfQm9CQ0KLQkAor0JfQldCg0JXQnNCh0JrQmCDQlNCQ0J3QmNCb0J4KK9CX0JXQoNCV0JzQodCa0Jgg0JTQoNCQ0JPQkNCdCivQl9CV0KDQldCc0KHQmtCYINCU0KPQqNCQ0J0KK9CX0JXQoNCV0JzQodCa0Jgg0JrQkNCc0JXQndCa0J4KK9CX0JXQoNCV0JzQodCa0Jgg0J3QkNCU0JAKK9CX0JXQoNCV0JzQodCa0Jgg0J3QntCS0JDQmgor0JfQldCg0JXQnNCh0JrQmCDQn9CV0KLQkNCgCivQl9CV0KDQldCc0KHQmtCYINCf0JXQotCQ0KAKK9CX0JXQoNCV0JzQodCa0Jgg0J/QmNCg0J7QqNCa0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KDQkNCU0J7QiNCa0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KDQkNCd0JrQngor0JfQldCg0JXQnNCh0JrQmCDQoNCQ0KLQntCc0JjQoAor0JfQldCg0JXQnNCh0JrQmCDQoNCj0JbQmNCm0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KHQm9CQ0JLQmNCm0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KHQotCV0JLQkNCdCivQl9CV0KDQldCc0KHQmtCYINCh0KLQldCS0JDQnQor0JfQldCg0JXQnNCh0JrQmCDQotCV0J7QpNCQ0J0KK9CX0JXQoNCV0JzQodCa0Jgg0KLQntCc0JjQodCb0JDQkgor0JfQldCg0JXQnNCh0JrQmCDQktCV0KDQkAor0JfQldCg0JXQnNCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQl9CV0KDQldCc0KHQmtCYINCS0KPQiNCQ0JTQmNCdCivQl9CV0JfQlNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JfQk9Ce0JzQkdCQINCb0JDQl9CQ0KAKK9CX0JPQntCc0JHQkCDQktCb0JDQlNCY0JzQmNCgCivQl9CT0J7QitCQ0J3QmNCdINCc0JjQm9CQ0J0KK9CX0JPQntCK0JDQndCY0J0g0KDQkNCU0JUKK9CX0JPQntCK0JDQndCY0J0g0KDQo9CW0JAKK9CX0JjQlNCQ0KAg0JzQkNCg0JjQiNCQ0J0KK9CX0JjQmtCe0JIg0JDQndCU0KDQmNCI0JAKK9CX0JjQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JfQmNCc0JAg0KfQkNCR0JAKK9CX0JjQnNCQINCg0KPQlNCe0JvQpAor0JfQmNCc0JDQitCYINCI0J7QktCQ0J0KK9CX0JjQnNCe0IrQkCDQidCj0JHQntCc0JjQoAor0JfQmNCc0J7QitCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JfQmNCd0JDQmNCLINCm0JLQmNCI0JXQotCQCivQl9CY0J3QkNCY0Isg0KPQoNCe0KgKK9CX0JjQoNCQ0JzQntCSINCW0JDQoNCa0J4KK9CX0JjQoNCQ0JzQntCSINCI0JXQktCg0J7QodCY0JzQkAor0JfQmNCg0JDQnNCe0JIg0IjQldCS0KDQntCh0JjQnNCQCivQl9CY0KDQkNCc0J7QkiDQodCQ0JLQkAor0JfQmNCg0JDQnNCe0JIg0KHQotCV0JLQkNCdCivQl9CY0KDQlNCj0KUg0JzQkNCg0JjQiNCQ0J0KK9CX0JjQoNCe0IjQlSDQlNCg0JDQk9CQ0J0KK9CX0JjQoNCe0IjQldCS0JjQiyDQkNCd0ILQkAor0JfQmNCg0J7QiNCV0JLQmNCLINCT0J7QiNCa0J4KK9CX0JjQoNCe0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JfQmNCg0J7QiNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JfQmNCg0J7QiNCV0JLQmNCLINCe0JHQoNCQ0JQKK9CX0JjQoNCe0IjQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQl9CY0KHQmNCI0JDQlNCV0KEg0JzQmNCg0IjQkNCd0JAKK9CX0JjQktCb0JDQmiDQkdCg0JDQndCa0J4KK9CX0JjQktCb0JDQmiDQiNCV0JvQmtCQCivQl9CY0JLQm9CQ0Jog0IjQntCS0JDQnQor0JfQmNCS0JvQkNCaINCf0JXQoNCeCivQl9CY0JLQm9CQ0Jog0J/QldCg0J4KK9CX0JjQktCb0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQl9CY0JLQm9CQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQl9CI0JDQp9CY0Isg0ILQntCg0ILQlQor0JfQiNCQ0KfQmNCLINCC0J7QoNCC0JUKK9CX0IjQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9CX0IjQkNCI0JjQiyDQmtCg0KHQotCQ0J0KK9CX0IjQkNCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCQ0JTQktCe0JrQkNCiCivQl9CI0JDQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JfQiNCQ0JvQmNCLINCc0JDQoNCT0JjQotCQCivQl9CI0JXQktCQ0JvQniDQkNCd0JrQmNCm0JAKK9CX0JvQkNCi0JDQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQl9Cb0JDQotCQ0J3QntCS0JjQiyDQptCS0JXQotCa0J4KK9CX0JvQkNCi0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQl9Cb0JDQotCQ0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JfQm9CQ0KLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JfQm9CQ0KLQkNCd0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9CX0JvQkNCi0JDQndCe0JLQodCa0Jgg0KDQo9Ch0JUKK9CX0JvQkNCi0JDQoCDQnNCY0JvQldCd0JrQngor0JfQm9CQ0KLQkNCg0JXQkiDQlNCj0KjQkNCdCivQl9Cb0JDQotCQ0KDQldCSINCU0KPQqNCQ0J0KK9CX0JvQkNCi0JDQoNCV0JIg0JLQldCg0JjQptCQCivQl9Cb0JDQotCQ0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQl9Cb0JDQotCQ0KDQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CX0JvQkNCi0JDQoNCe0JIg0JzQmNCb0J7QktCQ0J0KK9CX0JvQkNCi0JXQmiDQm9CQ0JfQkNCgCivQl9Cb0JDQotCY0KfQkNCd0JjQnSDQotCe0KjQngor0JfQm9CQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Cb0JDQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JfQm9CQ0KLQmNCLINCS0JXQodCV0JvQmNCdCivQl9Cb0JDQotCa0J7QktCY0Isg0JHQntCo0JrQngor0JfQm9CQ0KLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CX0JvQkNCi0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CX0JvQkNCi0JrQntCS0JjQiy3QiNCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JfQm9CQ0KLQmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CX0JvQkNCi0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQl9Cb0JDQotCa0J7QktCY0Isg0KDQo9Ch0J7QnNCY0KAKK9CX0JvQkNCi0JrQntCS0JjQiyDQodCb0JDQgtCQ0J3QkAor0JfQm9CQ0KLQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JfQm9CQ0KLQntCd0JjQiyDQodCb0JDQktCa0J4KK9CX0JvQkNCi0J7QktCV0KDQpdCe0JLQndCY0JrQntCSINCC0J7QoNCC0JUKK9CX0JvQkNCi0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CX0JvQkNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQl9Cb0JjQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CX0JvQmNCn0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JfQm9CY0KfQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JfQm9CY0KfQmNCLINCU0KPQqNCQ0J3QmtCQINCU0JjQn9CbINCY0J3Qkwor0JfQm9CY0KfQmNCLINCU0KPQqNCQ0J0KK9CX0JvQmNCn0JjQiyDQmNCS0JDQnQor0JfQm9CY0KfQmNCLINCa0JDQotCY0KbQkAor0JfQm9CY0KfQmNCLINCJ0KPQkdCY0KbQkAor0JfQm9CY0KfQmNCLINCc0JjQm9CQ0J0KK9CX0JvQmNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JfQm9CY0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQl9Cb0JjQp9CY0Isg0JLQkNCh0JjQidCa0JAKK9CX0JvQntCI0KPQotCg0J4g0JzQmNCL0J4KK9CX0JvQntCI0KPQotCg0J4g0JzQmNCl0JDQiNCb0J4KK9CX0JvQntCI0KPQotCg0J4g0KHQotCV0JLQngor0JfQm9Ce0IjQo9Ci0KDQniDQktCQ0KHQkAor0JfQm9Ce0JrQntCb0JjQptCQINCW0JjQktCa0J4KK9CX0JvQntCa0J7Qm9CY0KbQkCDQgtCe0KDQgtCVCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JHQntCo0JrQngor0JfQm9Ce0JrQntCb0JjQptCQINCI0J7QoNCT0J7QktCQ0J3QmtCQCivQl9Cb0J7QmtCe0JvQmNCm0JAg0IjQntCS0JDQnQor0JfQm9Ce0JrQntCb0JjQptCQINCI0J7QktCQ0J0KK9CX0JvQntCa0J7Qm9CY0KbQkCDQm9CQ0JfQkNCgCivQl9Cb0J7QmtCe0JvQmNCm0JAg0InQo9CR0JjQptCQCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JzQkNCg0JrQngor0JfQm9Ce0JrQntCb0JjQptCQINCc0JjQm9Ce0KgKK9CX0JvQntCa0J7Qm9CY0KbQkCDQnNCY0J7QlNCg0JDQkwor0JfQm9Ce0JrQntCb0JjQptCQINCd0JjQmtCe0JvQkAor0JfQm9Ce0JrQntCb0JjQptCQINCd0J7QktCQ0JoKK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCb0JDQktCa0J4KK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCb0JDQktCd0JAKK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCi0JXQktCQ0J0KK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCi0JXQktCQ0J0KK9CX0JvQntCa0J7Qm9CY0KbQkCDQotCe0JTQntCgCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JLQm9CQ0JTQkAor0JfQm9Ce0JrQntCb0JjQptCQINCX0JvQkNCi0JAKK9CX0JzQmNCI0JDQitCQ0KYg0JzQmNCb0JDQnQor0JfQnNCg0JfQm9CY0JrQkNCgINCc0JjQoNCI0JDQndCQCivQl9Ce0IvQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CX0J7Qi9CV0JLQmNCLINCS0JjQotCe0KAKK9CX0J7QkdCV0J3QmNCm0JAg0JHQmNCJ0JDQndCQCivQl9Ce0JHQldCd0JjQptCQINCU0JDQndCY0KbQkAor0JfQntCR0JXQndCY0KbQkCDQnNCY0KDQiNCQ0J3QkAor0JfQntCT0J7QktCY0Isg0JLQo9CaCivQl9Ce0JrQmCDQodCi0JXQktCQ0J0KK9CX0J7QmtCY0Isg0KDQkNCU0J7QktCQ0J0KK9CX0J7Qm9Cd0JDQmCDQotCe0JzQkNCoCivQl9Ce0JvQitCQ0J0g0J/QkNCS0JXQmwor0JfQntCb0J7QotCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JfQntCb0J7QotCY0Isg0JLQldCb0JjQndCa0JAKK9CX0J7Qm9Ce0KLQmNCLINCS0KPQmtCe0KHQkNCSCivQl9Ce0JzQkdCe0KDQkNCmINCX0JLQntCd0JrQngor0JfQntCd0JAg0JTQmNCS0J3QkAor0JfQntCd0JDQmCDQn9CQ0JsKK9CX0J7QndCY0Isg0InQo9CR0JDQnQor0JfQntCd0JjQiyDQoNCY0JfQkNClCivQl9Ce0KDQkNCUINCc0JjQpdCQ0IkKK9CX0J7QoNCQ0JQg0KHQotCV0JLQkNCdCivQl9Ce0KDQkNCI0JAg0ILQo9Cg0JAKK9CX0J7QoNCQ0IjQkCDQlNCg0JDQk9CQ0J0KK9CX0J7QoNCQ0IjQkCDQmNCT0IrQkNCiCivQl9Ce0KDQkNCI0JAg0J/QldCi0JDQoAor0JfQntCg0JDQiNCQINCh0KLQldCS0JDQnQor0JfQntCg0JDQndCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CX0J7QoNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JfQntCg0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CX0J7QoNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQl9Ce0KDQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JfQntCg0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CX0J7QoNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JfQntCg0JDQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JfQntCg0JDQndCe0JLQmNCLINCh0J/QkNCh0JAKK9CX0J7QoNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CX0J7QoNCQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQl9Ce0KDQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQl9Ce0KDQmNCLINCn0JXQlNCeCivQl9Ce0KDQmNCLINCC0J7QoNCC0JUKK9CX0J7QoNCY0Isg0ILQntCg0ILQlQor0JfQntCg0JjQiyDQgtCj0KDQgtCY0KbQkAor0JfQntCg0JjQiyDQgtCj0KDQmNCm0JAKK9CX0J7QoNCY0Isg0ILQo9Cg0J4KK9CX0J7QoNCY0Isg0ILQo9Cg0J4KK9CX0J7QoNCY0Isg0ILQo9Cg0J4KK9CX0J7QoNCY0Isg0JDQndCC0JXQm9Ca0JAKK9CX0J7QoNCY0Isg0JHQntCo0JrQngor0JfQntCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0JfQntCg0JjQiyDQkdCe0JPQlNCQ0J0KK9CX0J7QoNCY0Isg0JHQntCT0J7QidCj0JEKK9CX0J7QoNCY0Isg0JHQntCg0JjQktCe0IgKK9CX0J7QoNCY0Isg0JHQntCg0J4KK9CX0J7QoNCY0Isg0JHQntCg0J4KK9CX0J7QoNCY0Isg0JHQoNCQ0J3QmtCQCivQl9Ce0KDQmNCLINCR0KDQkNCd0JrQngor0JfQntCg0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JfQntCg0JjQiyDQlNCQ0KDQmtCeCivQl9Ce0KDQmNCLINCU0KDQkNCT0JDQnQor0JfQntCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CX0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQl9Ce0KDQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CX0J7QoNCY0Isg0JTQo9Co0JDQndCa0JAKK9CX0J7QoNCY0Isg0JTQo9Co0JDQnQor0JfQntCg0JjQiyDQlNCj0KjQkNCdCivQl9Ce0KDQmNCLLdCT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQnNCQ0KDQmNCI0JDQndCQCivQl9Ce0KDQmNCLINCT0JDQktCg0JjQm9CeCivQl9Ce0KDQmNCLINCT0J7QoNCU0JDQndCQCivQl9Ce0KDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQl9Ce0KDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQl9Ce0KDQmNCLINCI0J7QktCQ0J0KK9CX0J7QoNCY0Isg0JrQkNCi0JAKK9CX0J7QoNCY0Isg0JrQm9CQ0KDQkAor0JfQntCg0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQl9Ce0KDQmNCLINCa0J7QktCY0InQmtCQCivQl9Ce0KDQmNCLINCb0JDQl9CQ0KAKK9CX0J7QoNCY0Isg0JvQo9Ca0JAKK9CX0J7QoNCY0Isg0JzQkNCg0JjQiNCQCivQl9Ce0KDQmNCLINCc0JDQoNCa0J4KK9CX0J7QoNCY0Isg0JzQmNCa0JAKK9CX0J7QoNCY0Isg0JzQmNCb0JDQnQor0JfQntCg0JjQiyDQnNCY0JvQkNCdCivQl9Ce0KDQmNCLINCc0JjQm9CQ0J0KK9CX0J7QoNCY0Isg0JzQmNCb0JDQnQor0JfQntCg0JjQiyDQnNCY0JvQkNCdCivQl9Ce0KDQmNCLINCc0JjQm9CV0JLQkAor0JfQntCg0JjQiyDQnNCY0JvQmNCm0JAKK9CX0J7QoNCY0Isg0JzQmNCb0JjQptCQCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQntCU0KDQkNCTCivQl9Ce0KDQmNCLINCc0JjQoNCa0J4g0JjQndCTCivQl9Ce0KDQmNCLINCc0JjQoNCa0J4KK9CX0J7QoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JfQntCg0JjQiyDQndCY0JrQntCb0JAKK9CX0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQl9Ce0KDQmNCLINCd0JjQmtCe0JvQkAor0JfQntCg0JjQiyDQn9CQ0JLQm9CVCivQl9Ce0KDQmNCLINCf0JXQoNCQCivQl9Ce0KDQmNCLINCf0JXQotCQ0KAKK9CX0J7QoNCY0Isg0J/QldCi0JrQngor0JfQntCg0JjQiyDQoNCQ0JTQlQor0JfQntCg0JjQiyDQoNCQ0JTQlQor0JfQntCg0JjQiyDQodCQ0JLQkAor0JfQntCg0JjQiyDQodCY0JzQkAor0JfQntCg0JjQiyDQodCY0JzQldCe0J0KK9CX0J7QoNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CX0J7QoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQntCg0JjQiyDQodCd0JXQltCQ0J3QkAor0JfQntCg0JjQiyDQodCe0JrQkAor0JfQntCg0JjQiyDQodCf0JDQodCe0IjQlQor0JfQntCg0JjQiyDQodCi0JDQndCa0J4KK9CX0J7QoNCY0Isg0KHQotCe0IjQkNCdCivQl9Ce0KDQmNCLINCh0JLQldCi0JrQngor0JfQntCg0JjQiyDQodCS0JXQotCa0J4KK9CX0J7QoNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JfQntCg0JjQiyDQktCV0JvQmNCc0JjQoAor0JfQntCg0JjQiyDQktCV0InQmtCeINCU0JjQn9CbINCY0J3Qkwor0JfQntCg0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CX0J7QoNCY0Isg0JLQm9CQ0JTQngor0JfQntCg0JjQiyDQktCe0IjQmNCdCivQl9Ce0KDQmNCLINCS0J7QiNCa0JAKK9CX0J7QoNCY0Isg0JfQlNCg0JDQktCa0JAKK9CX0J7QoNCY0Isg0JfQntCg0JjQptCQCivQl9Ce0KDQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CX0J7QoNCY0KbQkCDQkNCm0J4KK9CX0J7QoNCY0KbQkCDQlNCj0KjQkNCdCivQl9Ce0KDQmNCm0JAg0JzQkNCg0JrQngor0JfQntCg0JjQiNCQ0J0g0JXQnNCY0JsKK9CX0J7QoNCI0JDQnSDQkdCg0JDQndCa0J4KK9CX0J7QoNCI0JDQnSDQiNCQ0J3QmtCeCivQl9Ce0KDQmtCY0Isg0JbQmNCS0JrQngor0JfQntCg0J3QmNCI0JAg0JHQoNCQ0J3QmtCeCivQl9Ce0KDQndCY0IjQkCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CX0J7QoNCd0JjQmiDQkNCb0JTQkAor0JfQntCg0JfQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KLQmNCdINCC0J7QoNCC0JUKK9CX0J7QotCY0J0g0KHQkNCS0JAKK9CX0J7QotCY0J0g0KHQm9CQ0JLQntCJ0KPQkQor0JfQntCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0J7QotCe0JLQmNCLINCe0JHQoNCQ0JQKK9CX0J7QktCY0Isg0JDQndCQCivQl9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9CX0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CX0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JfQntCS0JrQniDQqNCY0JzQo9CdCivQl9Ce0JLQmtCeINCY0JvQmNCI0JAKK9CX0J7QktCa0J4g0IjQntCh0JjQnwor0JfQntCS0JrQniDQnNCQ0J3QlNCQCivQl9Ce0JLQmtCeINCc0JDQoNCI0JDQnQor0JfQntCX0KPQmiDQidCj0JHQntCc0JjQoAor0JfQoNCY0JvQmNCLINCd0JDQlNCQCivQl9Cg0JjQm9CY0Isg0JLQldCg0JAKK9CX0KDQmNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0JfQoNCd0JjQiyDQqNCf0JjQoNCeCivQl9Cg0J3QmNCLINCC0J7QoNCC0JUKK9CX0KDQndCY0Isg0ILQo9Cg0J4KK9CX0KDQndCY0Isg0ILQo9Cg0J4KK9CX0KDQndCY0Isg0JHQoNCQ0J3QmtCeCivQl9Cg0J3QmNCLINCU0KPQqNCQ0J0KK9CX0KDQndCY0Isg0JPQntCI0JrQngor0JfQoNCd0JjQiyDQk9Ce0IjQmtCeCivQl9Cg0J3QmNCLINCI0J7QktCQ0J0KK9CX0KDQndCY0Isg0JvQkNCX0JDQoAor0JfQoNCd0JjQiyDQnNCQ0IjQkAor0JfQoNCd0JjQiyDQnNCQ0JvQmNCd0JAKK9CX0KDQndCY0Isg0JzQkNCd0JUg0JTQmNCf0Jsg0JjQndCTCivQl9Cg0J3QmNCLINCc0JDQndCVCivQl9Cg0J3QmNCLINCc0JDQoNCY0J3QmtCeCivQl9Cg0J3QmNCLINCc0JjQm9CQ0J0KK9CX0KDQndCY0Isg0JzQmNCb0JDQnQor0JfQoNCd0JjQiyDQnNCY0JvQntCoCivQl9Cg0J3QmNCLINCc0JjQoNCI0JDQndCQCivQl9Cg0J3QmNCLINCc0JjQoNCe0InQo9CRCivQl9Cg0J3QmNCLINCd0JXQndCQ0JQKK9CX0KDQndCY0Isg0J3QmNCa0J7Qm9CQCivQl9Cg0J3QmNCLINCf0JXQotCQ0KAKK9CX0KDQndCY0Isg0KHQmNCd0JjQqNCQCivQl9Cg0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CX0KDQndCY0Isg0KHQoNCC0JDQnQor0JfQoNCd0JjQiyDQktCb0JDQlNCeCivQl9Cg0J3QmNCLINCX0J7QoNCQ0J0KK9CX0KDQndCY0Isg0JfQntCg0JDQnQor0JfQo9CR0JDQpiDQp9CV0JTQntCc0JjQoAor0JfQo9CR0JDQpiDQlNCY0JLQndCQCivQl9Cj0JHQkNCmINCc0JjQm9CQ0J0KK9CX0KPQkdCQ0KYg0J/QldCg0J4KK9CX0KPQkdCQ0Jog0KHQotCV0JLQkNCdCivQl9Cj0JHQkNCdINCf0JXQotCQ0KAKK9CX0KPQkdCQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JfQo9CR0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JfQo9CR0JXQoCDQlNCj0KjQkNCdCivQl9Cj0JHQldCgINCc0JDQoNCa0J4KK9CX0KPQkdCV0KDQldCmINCI0J7QktCQ0J0KK9CX0KPQkdCY0Isg0JbQkNCg0JrQngor0JfQo9CR0JjQiyDQgtCj0KDQgtCQCivQl9Cj0JHQmNCLINCR0JjQidCQ0J3QkAor0JfQo9CR0JjQiyDQkdCe0JbQngor0JfQo9CR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JfQo9CR0JjQiyDQlNCg0JDQk9CeCivQl9Cj0JHQmNCLINCI0J7QktCeCivQl9Cj0JHQmNCLINCb0JDQl9CeCivQl9Cj0JHQmNCLINCf0JXQotCQ0KAKK9CX0KPQkdCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JfQo9CR0JjQiyDQoNCQ0KLQmtCeCivQl9Cj0JHQmNCLINCS0JXQoNCQCivQl9Cj0JHQmNCLINCS0JXQoNCa0JAKK9CX0KPQkdCe0JIg0JDQlNCV0JvQkAor0JfQo9CR0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CX0KPQkdCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQl9Cj0JHQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9Cj0JHQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CX0KPQptCQ0IjQmNCLINCI0JXQm9CV0J3QkAor0JfQo9Ca0JjQiyDQk9Ce0IjQmtCeCivQl9Cj0JrQntCS0JjQiyDQnNCY0JvQmNCd0JrQngor0JfQo9Cb0JjQiyDQkNCT0J3QldCoCivQl9Cj0JzQkdCj0JvQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JfQo9Cf0JDQndCn0JjQiyDQpNCg0JDQndCmCivQl9Cj0J/QkNCd0KfQmNCLINCY0JLQkNCdCivQl9Cj0J/QkNCd0KYg0JTQkNCg0JrQngor0JfQo9Cf0JDQndCmINCg0JDQiNCa0J4KK9CX0KPQn9Ca0J7QkiDQgtCj0KDQkAor0JfQo9Cf0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CX0KPQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JfQo9Cg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQo9Cg0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JfQo9Cg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQl9Cj0KDQmtCe0JLQmNCLINCT0JDQktCg0JAKK9CX0KPQoNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CX0KPQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQl9Cj0KDQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CX0KPQoNCa0J7QktCY0Isg0KDQo9CW0JAKK9CX0KPQoNCa0J7QktCY0Isg0JLQldCg0JAKK9CX0KPQoNCe0JLQkNCmINCI0J7QktCeCivQl9Cj0KDQntCS0JDQpiDQktCV0InQmtCeCivQl9Cj0JLQmNCLINCe0JHQoNCQ0JQKK9CX0KPQl9CQ0JrQoyDQoNCV0I/QldCfCivQl9CS0JDQoNCQINCI0KPQm9CY0IjQkAor0JfQktCV0JrQkNCd0J7QktCY0Isg0IjQntCh0JjQnwor0JfQktCV0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQl9CS0JXQmtCY0Isg0IjQo9CT0J7QodCb0JDQkgor0JfQktCV0JrQmNCLINCc0JDQoNCY0IjQkAor0JfQktCV0JrQmNCLINCc0JjQm9CQ0J0KK9CX0JLQldCa0JjQiyDQndCQ0JTQkAor0JfQktCV0JrQmNCLINCf0JXQotCQ0KAKK9CX0JLQldCa0JjQiyDQodCY0J3QmNCo0JAKK9CX0JLQldCa0JjQiyDQktCV0JvQmNCc0JjQoAor0JfQktCV0KDQltCY0J3QkCDQiNCe0KHQmNCfCivQl9CS0JXQl9CU0JDQndCe0JLQmNCLINCR0J7QoNCQCivQl9CS0JXQl9CU0JDQndCe0JLQmNCLINCi0J7QnNCQCivQl9CS0JXQl9CU0JjQnSDQiNCe0JLQkNCd0JrQkAor0JfQktCY0IjQldCgINCc0JjQm9Ce0KDQkNCUCivQl9CS0JjQl9CU0JjQiyDQnNCV0KXQnNCV0JQKK9CX0JLQntCo0JXQpiDQmtCb0JDQoNCQCivQl9CS0J7QndCQ0KDQldCS0JjQiyDQmtCQ0KLQkApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NpbXBsaWZpZWRfQ2hpbmVzZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2ltcGxpZmllZF9DaGluZXNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDNkZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NpbXBsaWZpZWRfQ2hpbmVzZS50eHQKQEAgLTAsMCArMSwxMDkwMiBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivombnlpoINCivkuIHkuIDotKQNCivkuIHlt53kvJ8NCivkuIHlv4PlspoNCivkuIHlvJjlhYkNCivkuIHku7vms5UNCivkuIHlv5flro8NCivkuIHlubjlp6wNCivkuIHkv4rlpKsNCivkuIHlu7rmlocNCivkuIHmmKDnuq8NCivkuIHnvr/mlocNCivkuIHlk7INCivkuIHkvJ/msJENCivkuIHlm73mooUNCivkuIHmt5HnjrINCivkuIHoi4/ljZcNCivkuIHmr5PlvaYNCivkuIHpm43lk7INCivkuIHnu67mhacNCivkuIHmhaflspoNCivkuIHnkp/mnqsNCivkuIHoqonnkLMNCivkuIHpi5DplZINCivljZzmraPkvKYNCivkuo7lvIvnv5QNCivkuo7np4Dnvo4NCivkuo7np4nlvJgNCivkuo7muIXljY4NCivkuo7mrr/lnKMNCivlsbHmnbANCivlsLnlr7jmrKMNCivlsLnlsYXmiY0NCivlsLnmjK/lqIENCivlsLnnkZ7kuLANCivlsLnmmZPmgakNCivku4flrrbnkKoNCivlrZTlrojkuK0NCivlrZTmmbrmnbANCivlrZTnuYHpnJYNCivlsKTlv4PnkZwNCivlsKTlkJ/mlocNCivlsKToia8NCivlsKTmmI7ku7INCivlsKTkv4rlk40NCivlsKTmmJ/nrZYNCivlsKTkvJ/ku5UNCivlsKTlh4DnvKgNCivlsKTpkqbkuZANCivlsKTnm5/otLUNCivlsKTlrr3lro8NCivlsKTpn7XnkIcNCivlsKTojrPokLENCivmloflv5flv6ANCivmlofnnJ/oirENCivmlofku6rlko8NCivmlrnlo6vpk60NCivmlrnlpKnkuK0NCivmlrnmlofplIsNCivmlrnmsLjmuIUNCivmlrnmsZ3ogrINCivmlrnlrZ3lkJsNCivmlrnlv5fmmI4NCivmlrnnp4DmlY8NCivmlrnkvbPkv4oNCivmlrnlubjlrpwNCivmlrnmgKHmtIENCivmlrnplb/miawNCivmlrnkv4rpm4QNCivmlrnlpZXmlowNCivmlrnlu7rmmboNCivmlrnlvabnqIsNCivmlrnmmKDoiqwNCivmlrnmn4/pkqYNCivmlrnnp4vplKYNCivmlrnoi6Xnj4oNCivmlrnph43lh68NCivmlrnmmYvlvrcNCivmlrnlgaXliJoNCivmlrnlvanlrpwNCivmlrnmt5HoiqwNCivmlrnmt5HlhJINCivmlrnlh6/njrINCivmlrnmma/lvJgNCivmlrnnrZbmsJENCivmlrnpm4XnkKoNCivmlrnniLHnj40NCivmlrnnkZ7ov5wNCivmlrnoo5XpkqYNCivmlrnlmInlhbQNCivmlrnnv6DpuL8NCivmlrnmhafnkLQNCivmlrnpnZnlrpwNCivmlrnnkLzku6oNCivmlrnkuL3pm4UNCivmlrnpkp/plIsNCivmlrnoj4DokI0NCivmr5vmlofli4cNCivmr5vkvanlqJ8NCivmr5vlvabkuZQNCivmr5vmt5HoiqwNCivmr5vmsYnmooUNCivmsLTnpaXoi5MNCivniZvotLXotKQNCivnjovkuIDnj40NCivnjovkuYPkv5ANCivnjovlipvlubMNCivnjovkuIrnu7QNCivnjovlo6vlv6ANCivnjovlo6vojaMNCivnjovlo6vosaoNCivnjovlpKfmmIwNCivnjovlrZDmiJANCivnjovlrZDoi7ENCivnjovlrZDnhpkNCivnjovlsI/oiqwNCivnjovkuK3lubMNCivnjovkuK3mhpMNCivnjovlsLnlnKMNCivnjovku4HlkJsNCivnjovku4HlrpcNCivnjovku4HoiJwNCivnjovlhYPliqkNCivnjovlhYPlhbQNCivnjovlj4vlv5cNCivnjovlpKnmlocNCivnjovlsJHmlocNCivnjovlv4Plv6ANCivnjovlv4PmgKENCivnjovlv4PmmboNCivnjovmloflubMNCivnjovmloflkJsNCivnjovmloflv5cNCivnjovmlofmnbANCivnjovmlofpg4ENCivnjovmlofnkKoNCivnjovmlofnkbYNCivnjovmlofpuL8NCivnjovmlrnmgKENCivnjovmnIjlqbcNCivnjovkuJblrocNCivnjovkuJbmmI4NCivnjovkuJbmnbANCivnjovkuJblub8NCivnjovkuJXpk6gNCivnjovlj6/mrKMNCivnjovlt6fojrkNCivnjovlvJjmr4UNCivnjovmraPlqIENCivnjovmraPovr4NCivnjovmsLjku4ENCivnjovmsLjljYcNCivnjovmsLjor5oNCivnjovnjonmlocNCivnjovnjonnj6ANCivnjovnjonkupENCivnjovnlJ/li4sNCivnjovnq4vmooUNCivnjovnq4vnjq4NCivnjovku7LnkKYNCivnjovlhYnpuoMNCivnjovlkInkvbMNCivnjovlpoLnjokNCivnjovlrofmuIUNCivnjovlronlh68NCivnjovml63lhagNCivnjovmnInmnYMNCivnjovoh6rlvLoNCivnjovkvZDovoUNCivnjovkvK/pgLgNCivnjovliKnnlJ8NCivnjovlkJvnkZ4NCivnjovlppnnuqINCivnjovlrZ3lkJsNCivnjovlro/ku4ENCivnjovlro/lk7INCivnjovlro/lmIkNCivnjovluo/nurYNCivnjovlv5fku4ENCivnjovlv5fmlocNCivnjovlv5flvJgNCivnjovlv5flkYgNCivnjovlv5flv6ANCivnjovlv5fls7ANCivnjovlv5fkvJ8NCivnjovlv5fmuIUNCivnjovlv5fpkqYNCivnjovlv5for5oNCivnjovlv5fosaoNCivnjovlv5fpk60NCivnjovmnY/lpoINCivnjovnp4DkupENCivnjovnp4DoiqwNCivnjovnp4Dnj6ANCivnjovnp4Dpm68NCivnjovnp4DmpL8NCivnjovogrLlvrcNCivnjovosLfnpZ4NCivnjovkuprlv5cNCivnjovkvp3pn7UNCivnjovkvbPnj40NCivnjovkvbPnkKoNCivnjovkvakNCivnjovkvanpn7MNCivnjovkvanor5cNCivnjovlnaTotKQNCivnjovlrZ/osKYNCivnjovlrpfmo4sNCivnjovlrpzlvaYNCivnjovlhojpmbUNCivnjovlv7XmhYgNCivnjovmgKHku4ENCivnjovmgKHmlocNCivnjovmgKHmlrkNCivnjovmgKHnj40NCivnjovmgKHmuIUNCivnjovmgKHlqbcNCivnjovmgKHmmbQNCivnjovmgKHpm4UNCivnjovmgKHoi7kNCivnjovmib/oiJwNCivnjovmmI7ku4ENCivnjovmmI7nj4oNCivnjovmmI7lr4wNCivnjovmmIDnj6kNCivnjovmrKPkuYsNCivnjovmrKPmhacNCivnjovms5Pnv5QNCivnjovmsrvpgqYNCivnjovnjqvmoaYNCivnjovoirPmhacNCivnjovpgrXpg4ENCivnjovph5HljY4NCivnjovpm6jmuZgNCivnjovkuq3pkqcNCivnjovkv6Hku4ENCivnjovkv6Hms7ANCivnjovkv6Hlr4wNCivnjovkv6Hoo5UNCivnjovkv4rku4ENCivnjovkv4rnq4sNCivnjovkv4rlvaYNCivnjovkv4rmuIUNCivnjovkv4rmnbANCivnjovkv4rlh68NCivnjovkv4rlh68NCivnjovkv4rlr4wNCivnjovkv4rpkqYNCivnjovkv4rotoUNCivnjovkv4rpgZMNCivnjovkv4rpvpkNCivnjovkv57mlocNCivnjovlhqDkvKYNCivnjovlhqDnhLYNCivnjovliJnog5wNCivnjovlirLlh4wNCivnjovlk4Hmt4cNCivnjovlpZXlkJsNCivnjovlpZXpkqcNCivnjovlp7/ku4oNCivnjovlp7/okI0NCivnjovlqIHog70NCivnjovlrqPljb8NCivnjovlu7rlsbENCivnjovlu7rmlocNCivnjovlu7rmlL8NCivnjovlu7rlh68NCivnjovlu7rpkqYNCivnjovlu7rpm4QNCivnjovlu7rmlowNCivnjovlvabog70NCivnjovlvabmmboNCivnjovlvovkuYsNCivnjovmgJ3mjbcNCivnjovmgJ3mtIENCivnjovmlL/msrsNCivnjovmlL/mnYMNCivnjovmmK3kuroNCivnjovmmK3mt5ENCivnjovmmK3mh78NCivnjovmmJ/nmpMNCivnjovmmLHlh68NCivnjovmmLHoi7kNCivnjovmn4/mrKMNCivnjovmn4/lsKcNCivnjovmn4/pkqcNCivnjovmtL7ovakNCivnjovkuLrokqgNCivnjovnjrLoi7ENCivnjovnm4jlv4MNCivnjovnm4jmnbANCivnjovnm4jpm4UNCivnjovnpYjpkqcNCivnjovnp4vmg6ANCivnjovnuqoNCivnjovnvo7njokNCivnjovnvo7njrINCivnjovnvo7mt5ENCivnjovnvo7mg6ANCivnjovnvo7pm68NCivnjovnvo7mh78NCivnjovoh7Tmo6ANCivnjovoi6XnrZENCivnjovoi7HmlocNCivnjovoi7Hok4kNCivnjovooY3mmJMNCivnjovotJ7mh78NCivnjovpg4HmrKMNCivnjovpg4HlqbcNCivnjovpg4Hoj4ENCivnjovpg4Hnj7oNCivnjovpn6bnv5QNCivnjovkv67lhbANCivnjovlk7LogaoNCivnjovlrrbkvJ8NCivnjovlrrbnkZwNCivnjovlsZXnjq4NCivnjovmgqblpoINCivnjovmjK/lrocNCivnjovmjK/mtakNCivnjovml7bolJoNCivnjovmoYLlspENCivnjovmtbflpKkNCivnjovmtankvKYNCivnjovkvankvKYNCivnjovkvannkocNCivnjovntKDljb8NCivnjovnuq/nvo4NCivnjovojLnppqgNCivnjovkvJ/msJENCivnjovkvJ/lt54NCivnjovkvJ/lhpsNCivnjovkvJ/lvrcNCivnjovlgaXmsJENCivnjovlgaXli4sNCivnjovlm70NCivnjovlm73lvaYNCivnjovlm73pmoYNCivnjovlm73pvpkNCivnjovmiafkv6ENCivnjovln7nmoaYNCivnjovlqYnnkZwNCivnjovltIfmmI4NCivnjovmmIbpvpkNCivnjovlvanpnJ4NCivnjovmg4fmhacNCivnjovlkK/lrpcNCivnjovlkK/mqLUNCivnjovmlY/otJ4NCivnjovmlY/pk6gNCivnjovmmajmmZQNCivnjovmooXlhbANCivnjovmt7PmhacNCivnjovmuIXpuL8NCivnjovmt5HmgKENCivnjovmt5HlhqANCivnjovmt5HnnIkNCivnjovmt5HlqJ8NCivnjovmt5HlqpsNCivnjovmt5Hpm68NCivnjovmt5HmhacNCivnjovmt5Hpn7UNCivnjovlh4DojrkNCivnjovnpaXlrocNCivnjovnpaXpnJYNCivnjovnu43nnJ8NCivnjovojonmsbYNCivnjovojonpm68NCivnjovpm6rlpoINCivnjovmnbDnq4sNCivnjovlh6/lvJgNCivnjovlh6/mgKENCivnjovlh6/okoINCivnjovog5zlvJgNCivnjovog5zpm4QNCivnjovljZrmlocNCivnjovljZrkv64NCivnjovlsKflvJgNCivnjovlqbfku6oNCivnjovlr4zmmIwNCivnjovlpI3ovokNCivnjovmg6DlkJsNCivnjovmg6DnjrINCivnjovmg6DmlY8NCivnjovmg6DmhacNCivnjovmlabmraMNCivnjovmmbTlp78NCivnjovmma/lhYMNCivnjovmma/ms4kNCivnjovmmbrlvJgNCivnjovmmbrnq4sNCivnjovmmbrnm4oNCivnjovmmbrpuKMNCivnjovmmbrpvpkNCivnjovmnJ3msLgNCivnjovmnJ3plK4NCivnjovpkqbluJ0NCivnjovmuZjkupENCivnjovnkKoNCivnjovnkKbmnpoNCivnjovnmpPmraMNCivnjovntKvpm68NCivnjovnv5TlroENCivnjovoiJLnkZwNCivnjovoiJznlJ8NCivnjovoj4HlhbANCivnjovlko/mhacNCivnjovotLXpvpkNCivnjovpgLjkv64NCivnjovov5vpuL8NCivnjovpl7Xpn6YNCivnjovpm4XkvLYNCivnjovpm4Xlp78NCivnjovpm4XotJ4NCivnjovpm4Xmg6ANCivnjovpm4Xpm68NCivnjovpm4Xku6oNCivnjovpm4XmhacNCivnjovpm68NCivnjovkupHnlJ8NCivnjovpobrpuL8NCivnjovli6TlloQNCivnjovmhI/mg6ANCivnjovmhYjluoYNCivnjovniLHlmIkNCivnjovmlaznv5QNCivnjovmlrDmhacNCivnjovmpoblr4wNCivnjovmr5Poj4ENCivnjovmr5PnhYcNCivnjovnhaflhbQNCivnjovnkZ7lkJ8NCivnjovnkZ7ng70NCivnjovnkZ7kupENCivnjovnkZ7popANCivnjovnkZ7oipcNCivnjovnm5/ku4ENCivnjovmo7HpkqcNCivnjovlnKMNCivnjovlnKPlsKQNCivnjovlnKPmt7MNCivnjovlnKPmo4sNCivnjovlnKPnu7QNCivnjovlnKPnjq4NCivnjovoo5XmraMNCivnjovoo5XmmboNCivnjovor5fpg4ENCivnjovor5flqbcNCivnjovor5fpm4UNCivnjovor5fppqgNCivnjovpgZPku4ENCivnjovpkpznv5QNCivnjovpnZbpm68NCivnjovpvI7lhYENCivnjovlmInlkJsNCivnjovlmInpg4ENCivnjovlmInnkKoNCivnjovlmInlhpwNCivnjovlmInmhacNCivnjovlmInlhbQNCivnjovlmInpvoQNCivnjovlvbDmh4sNCivnjovojaPlj5ENCivnjovmsYnnpaUNCivnjovnnb/lkJsNCivnjovnoZXluoYNCivnjovnpo/npaUNCivnjovnu7TlpoINCivnjovnu7Tpm68NCivnjovnu7Tngb8NCivnjovnv6DljY4NCivnjovoi43pvpkNCivnjovosarmnbANCivnjovpk63mooUNCivnjovpk63puL8NCivnjovlh6TlrpwNCivnjovku6rpopYNCivnjovlvrfnmpMNCivnjovluobloIINCivnjovmhaflkJsNCivnjovmhafoi7ENCivnjovmhaflh68NCivnjovmhafpm68NCivnjovmhafpnZkNCivnjovmoIfpkqYNCivnjovnkb7nkZwNCivnjovovonpk60NCivnjovlhJLpmoYNCivnjovlrqrnm58NCivnjovmmZPpn7MNCivnjovmmZPpm68NCivnjovmmZPnjq4NCivnjovnh5XlvLoNCivnjovlhbTpgqYNCivnjovolZnlrrkNCivnjovplKHnpoQNCivnjovplKbmhacNCivnjovpnZnmgKENCivnjovpnZnnkKoNCivnjovpnZnmhacNCivnjovniLXmmpANCivnjovoh4bpk4MNCivnjovoloflqpsNCivnjovosKbnu7QNCivnjovpuL/lv5cNCivnjovpuL/pkqcNCivnjovnpLzosKYNCivnjovlrqDmg6ANCivnjovngJrln7oNCivnjovnkLzkvakNCivnjovnkLznkbYNCivnjovnu5jlspoNCivnjovor4Hpm4QNCivnjovpn7Xmt5ENCivnjovpuY8NCivnjovpupLpkqcNCivnjovkuL3oiqwNCivnjovkuL3mt5ENCivnjovkuL3nkKYNCivnjovkuL3pm68NCivnjovpupPmlq8NCivnjovlrp3pvpkNCivnjovnu6flsKcNCivnjovogIDmmZYNCivnjovogIDluoYNCivnjovogIDpk44NCivnjovpkp/pk60NCivnjovppqjmlY8NCivnjovppqjoi7kNCivnjovpvoTmopMNCivnjovkv6rpopYNCivnjovmqLHlqJ8NCivnjovot4PpnJYNCivnjovmmL7ljYkNCivnjovoiorpm68NCivnjovlp7Xpm68NCivnjovmtZ/nvo4NCivnjovnkIflp78NCivnjovnv4rokKQNCivnjovmo6jlvrcNCivnjovnkK7njq4NCivnjovnkKHpm68NCivnjovlq4bmo7sNCivnjovnjq7pk4MNCivnjovnrbHlqbcNCivnjovnrbHokLENCivnjovpkrDmrKMNCivnjovpkrDmpI0NCivnjovok4Hku6oNCivnjovolo/pm68NCivnjovlrL/mt5ENCivkuJbmvZPpnZkNCivkuJjnnJ/nu64NCivlhonlhYbnj40NCivljIXlv5fmlocNCivljIXlrqvnu7QNCivlj6TkuIDnnJ8NCivlj6TmnIjlqKUNCivlj6Tnjonlh6QNCivlj6Tnp4Dpk4MNCivlj6TkvannjokNCivlj6Tmib/lvJgNCivlj6TmmI7mmZ8NCivlj6Tkv4rnurINCivlj6Toi7HlsbENCivlj6TmoYLoj4oNCivlj6Tmg5/pk60NCivlj6TojonpnJwNCivlj6TmmbrkvJ8NCivlj6TkupHku4ENCivlj6Tor5fku6oNCivlj6TlrabmtrUNCivlj6Tkv7bnu64NCivlj7jpobrlrokNCivlj7LlhYjpuL8NCivlj7LmmI7ljp8NCivlj7Llm73npo8NCivlj7LlnKPpuL8NCivlj7Lmm5zlvbANCivlt6blrpflhYMNCivlt6bok4wNCivnlJjmsLjoo5UNCivnlJjlrZ/pvpkNCivnlJjmlL/lvJgNCivnlJjmg6DljY4NCivnlJjpnIjpnJYNCivnlLDkuJbotKQNCivnlLDlhYbnkKoNCivnlLDmspDmgakNCivnlLDkvanngY8NCivnlLDmgKENCivnlLDoirPojLkNCivnlLDoi7Hlv5cNCivnlLDkvankv4MNCivnlLDmt5HlkJsNCivnlLDpkqbmlocNCivnlLDlmInnjrINCivnlLDmmZPpkqcNCivnlLDnkqfoj4ANCivnlLPlv5fmlowNCivnlLPlr4zpkasNCivnmb3lpKflsLkNCivnmb3lhajmiJANCivnmb3lspHmgKENCivnmb3kvbPmuJ0NCivnmb3lrpzpk64NCivnmb3mrKPmnb4NCivnmb3njrLmhYgNCivnmb3mjK/mupANCivnmb3ogL/ooYwNCivnmb3mt5HnkZwNCivnmb3llpzmlocNCivnmb3oiJzlhYMNCivnmb3nhYzpupINCivnmb3ojaPkv64NCivnmb3pnZnlpoINCivnmb3kuL3lqJwNCivnn7PkuYPlpoINCivnn7PkuJblkI0NCivnn7Pnjonlh6QNCivnn7Pml63nlJ8NCivnn7PogrLnjp8NCivnn7PkvbPok4kNCivnn7Plrpfku4ENCivnn7PmmI7lkagNCivnn7PoirPnj4oNCivnn7Pnvo7njrINCivnn7Pls7vlubMNCivnn7Pnuq/nu64NCivnn7PlvanmhacNCivnn7PmnbDlrocNCivnn7PmnJ3lrokNCivnn7Ppm4Xmg6ANCivnn7PluoblkowNCivnn7PplKboiKoNCivnn7PppqXnkYQNCivnn7Pnjq7pnZkNCivkvI3kuJbmiawNCivkvI3np4Dok4kNCivkvI3lu7rmlocNCivkvI3lrrbosIoNCivkvI3lgaXpuY8NCivkvI3noqfnjrINCivku7vmiY3kv4oNCivku7vlkJvmlY8NCivku7vkv4rlhJINCivku7vnuq/mhacNCivku7vmlrDlhbANCivku7vnrbHmuIUNCivljbHmmI7lurcNCivlkJHopb/pmLMNCivlkJHlvrflrrkNCivlronlv5fkvJ8NCivmiJDkuLnnjrINCivmm7LmmIzpmoYNCivmnLHkuZnnnJ8NCivmnLHlv4PmgKENCivmnLHmlofnoqcNCivmnLHkuJbpkqcNCivmnLHmraPmlocNCivmnLHnjonmsbYNCivmnLHkuqbkuLkNCivmnLHnmb7mmZ8NCivmnLHlpo3lpoINCivmnLHluIzmjK8NCivmnLHlv5fmtIsNCivmnLHmspvmgKENCivmnLHogrLkvZENCivmnLHogrLojrkNCivmnLHkvbPnkKoNCivmnLHlrpfolJoNCivmnLHlv7Xoi7ENCivmnLHmgKHoh7sNCivmnLHkuJzlupQNCivmnLHnp4nmhacNCivmnLHpgrHmmI4NCivmnLHkv4rnpaUNCivmnLHkv4rpvpkNCivmnLHlpY7lt54NCivmnLHlu7rms7ANCivmnLHlvablhJINCivmnLHmlL/lk7INCivmnLHmn4/oi40NCivmnLHnj43mhacNCivmnLHnp4vmhacNCivmnLHoi6XmooUNCivmnLHpg4Hluq0NCivmnLHljp/lro8NCivmnLHlrrbmraMNCivmnLHlrrbmrKMNCivmnLHlrrbmhacNCivmnLHlrrnnu4MNCivmnLHls7DosIoNCivmnLHml7blvaYNCivmnLHkuabotKQNCivmnLHmrrflu7cNCivmnLHkvanku6oNCivmnLHnpZDlkYgNCivmnLHnuq/ojrkNCivmnLHkvJ/mnbANCivmnLHlgaXor5oNCivmnLHln7nokLENCivmnLHlurfpk60NCivmnLHmlY/pgZMNCivmnLHmt5Hmg6ANCivmnLHpmYjlkK/mupANCivmnLHlr5PnkIYNCivmnLHmnJ3pup8NCivmnLHlko/ogZQNCivmnLHpm4Xpk4MNCivmnLHll6PoiqwNCivmnLHnkZ7li4cNCivmnLHovr7mmI4NCivmnLHojaPlro8NCivmnLHnpo/lsbENCivmnLHlh6TolocNCivmnLHmhafnnJ8NCivmnLHovonogIANCivmnLHmmZPmmbQNCivmnLHpnZnmlocNCivmnLHnkoflsLkNCivmnLHkuL3lqbcNCivmnLHoiq7lrpwNCivmnLHnkKzok4ENCivmrKHlhbDoi7ENCivmsZ/kuK3lgaUNCivmsZ/lpKnmjogNCivmsZ/mlofmnb4NCivmsZ/mlofnkLwNCivmsZ/kuJbljY4NCivmsZ/mraPmnbANCivmsZ/njonljYkNCivmsZ/nq4vls7ANCivmsZ/lkInnpaUNCivmsZ/miJDmlowNCivmsZ/lkYjpmLMNCivmsZ/lv5flro8NCivmsZ/lv5fpmoYNCivmsZ/np4DnjrINCivmsZ/ogrLpnIYNCivmsZ/kvbPoirMNCivmsZ/kvbPnuq8NCivmsZ/kvbPpnJYNCivmsZ/kvannjrINCivmsZ/kvanokKYNCivmsZ/ljY/li4cNCivmsZ/lrZ/oip0NCivmsZ/lrZ/ms70NCivmsZ/lrpflk7INCivmsZ/lrpzoirMNCivmsZ/lrpzmoaYNCivmsZ/lsqnovr4NCivmsZ/lv6Dov5wNCivmsZ/mgKHokLENCivmsZ/mgKHnppsNCivmsZ/mmIzpuL8NCivmsZ/mmI7mnb4NCivmsZ/mmI7kuaYNCivmsZ/mmI7nkosNCivmsZ/mmI7oiboNCivmsZ/kuJzmh4sNCivmsZ/mrKPlrrkNCivmsZ/njqnokKkNCivmsZ/oip3mlY8NCivmsZ/plb/lr78NCivmsZ/kv6HkuJwNCivmsZ/kv4rmmI4NCivmsZ/kv4rkur8NCivmsZ/kv4rlhbQNCivmsZ/lk4Hku6oNCivmsZ/lqIHlvrcNCivmsZ/lu7rpk60NCivmsZ/lvabovokNCivmsZ/mgawNCivmsZ/mlL/lhJINCivmsZ/mmK3otKQNCivmsZ/mn4/oi4cNCivmsZ/njrLmhacNCivmsZ/nuqrmmI4NCivmsZ/nvo7mhacNCivmsZ/oi7Hkv6ENCivmsZ/ooY3pvpkNCivmsZ/po47ov5wNCivmsZ/lrrbpk60NCivmsZ/mjK/lrocNCivmsZ/kuabojrkNCivmsZ/kvanlrpkNCivmsZ/nuq/njqsNCivmsZ/lgaXmiJANCivmsZ/lm73luoYNCivmsZ/lr4XnlKsNCivmsZ/lkK/ku7INCivmsZ/mnaHlnYcNCivmsZ/mt5HotJ4NCivmsZ/nm5vpvpkNCivmsZ/lh6/mtIENCivmsZ/mg6DljY4NCivmsZ/mmbrnu7QNCivmsZ/pgLjlrokNCivmsZ/pm4XmlocNCivmsZ/pm4Xmg6ANCivmsZ/kvKDmsZ8NCivmsZ/nkZ7npaUNCivmsZ/oo5Xlm70NCivmsZ/lmInkvKYNCivmsZ/mppXmqLENCivmsZ/nv6DoirMNCivmsZ/lrr3mhYgNCivmsZ/mhafoirMNCivmsZ/mhZXlsY8NCivmsZ/lv4bpm68NCivmsZ/popbmmI4NCivmsZ/plKbovokNCivmsZ/olb4NCivmsZ/kuLDoia8NCivmsZ/kuL3lqJ8NCivmsZ/liq3kvKYNCivmsZ/lqp4NCivmsZ/mn73nmocNCivmsaDms7Dlro8NCivniZ/mmJUNCivoib7pnZLok4kNCivkvZXlpKfmlrANCivkvZXku4HnlLANCivkvZXlpKnmgakNCivkvZXmlofmlocNCivkvZXmlofokLENCivkvZXkuJbpm4QNCivkvZXmsLjnkLMNCivkvZXnjonmtIENCivkvZXkupjlvawNCivkvZXlhYnmo4INCivkvZXml63lubMNCivkvZXlkJvokI0NCivkvZXlv5fmtakNCivkvZXmspvnhpkNCivkvZXogrLmnbANCivkvZXkuqvok4kNCivkvZXkvbPljZcNCivkvZXkvbPnnJ8NCivkvZXkvbPono0NCivkvZXkvanoip0NCivkvZXkvannuq8NCivkvZXlhbbms70NCivkvZXlp5fok4kNCivkvZXlrZ/otKQNCivkvZXlraPnp6YNCivkvZXlrpflvawNCivkvZXlrpfnhrkNCivkvZXlrpfnpqcNCivkvZXlrpzlgKkNCivkvZXlrpznkocNCivkvZXlsrPnj4gNCivkvZXmgKHlkJsNCivkvZXmib/ku7INCivkvZXmmJPlsZUNCivkvZXmmI7lrpcNCivkvZXmmI7kuaYNCivkvZXmmI7popYNCivkvZXljYflhJINCivkvZXmnb7nkbYNCivkvZXmrKPovakNCivkvZXnp4nmrKMNCivkvZXoirfnkYQNCivkvZXpm6jpm68NCivkvZXkv6HlrpcNCivkvZXkv4rlu7cNCivkvZXkv4rovr4NCivkvZXkv4rotKQNCivkvZXlhqDpnJYNCivkvZXlqIHlvrcNCivkvZXlu7rkuZANCivkvZXlvabpqbkNCivkvZXmgJ3popYNCivkvZXmlL/nv7ANCivkvZXmmK3otKQNCivkvZXngrPotKQNCivkvZXnp4vokLENCivkvZXnvo7njrINCivkvZXoi6XnkZwNCivkvZXpppnlj7YNCivkvZXlrrboj4ENCivkvZXls7vmnbANCivkvZXmjK/nu7QNCivkvZXmtZrpk60NCivkvZXntKDlkJsNCivkvZXlgaXnu7QNCivkvZXlm73mmZ8NCivkvZXltIfnu7QNCivkvZXmlY/oj4ENCivkvZXmuIXpvpkNCivkvZXmt5HlqbcNCivkvZXmtrUNCivkvZXog5zlkIgNCivkvZXmg6DlkJsNCivkvZXmg6DpkrANCivkvZXoiJLlspoNCivkvZXpgLjnhLYNCivkvZXpm4XnkKoNCivkvZXmhI/ojrkNCivkvZXnkZ7nvo4NCivkvZXokLHnkocNCivkvZXlmInlsZUNCivkvZXojaPmlocNCivkvZXnu7TogJUNCivkvZXpk63lro8NCivkvZXluoblhbQNCivkvZXmhafku6oNCivkvZXlrabljpoNCivkvZXmmZPnm4gNCivkvZXnh5XlsY8NCivkvZXplKbpopgNCivkvZXpnZnku6oNCivkvZXnu4cNCivkvZXkuL3lkJsNCivkvZXml7vpnJwNCivkvZXnv4rnu64NCivkvZnlrZDpk60NCivkvZnlv4PlhpwNCivkvZnmlofoo5UNCivkvZnlvJjkvJ8NCivkvZnlkInnpaUNCivkvZnkvLYNCivkvZnlv5fpvpkNCivkvZnov4UNCivkvZnkvbPpn7MNCivkvZnkvbPlhbQNCivkvZnkvanlqJ8NCivkvZnlnaroirMNCivkvZnlrZ/pnI8NCivkvZnlrpflhJINCivkvZnlrpvlhJINCivkvZnlv6Dnga8NCivkvZnmmIznv7ANCivkvZnmmI7lqJ8NCivkvZnmmI7ms70NCivkvZnkuJzmmZMNCivkvZnms5XmmIwNCivkvZnph5HlhbgNCivkvZnkv6HkvJ8NCivkvZnkv4rmuIoNCivkvZnkv4rlhJINCivkvZnlirLmr4UNCivkvZnluJ3luoYNCivkvZnlvabpnJYNCivkvZnmlL/pmoYNCivkvZnmmJ/mn5QNCivkvZnnm4jplIsNCivkvZnoi6XluIYNCivkvZnlh4zmmIwNCivkvZnlrrbojrkNCivkvZnms7DnlLcNCivkvZnntKDlhbANCivkvZnlm73lrokNCivkvZnlqYnokI0NCivkvZnmmajljY4NCivkvZnnm5vpkqYNCivkvZnmg6DmlocNCivkvZnmmbrmnbANCivkvZnpm4Xmt5ENCivkvZnmhYjlrrQNCivkvZnnkZ7okI0NCivkvZnlmInls7ANCivkvZnnpo/mtakNCivkvZnpvZDlqIENCivkvZnlrqrlrpcNCivkvZnosJANCivkvZnosKLovokNCivkvZnkuL3nkLQNCivkvZnnkKznkZwNCivliKnnp4DlhbANCivliKnlvrflvKYNCivlkLTkuYPlhYMNCivlkLTljYPmhacNCivlkLTlpKfnu7QNCivlkLTlrZDosaoNCivlkLTkuK3lro8NCivlkLTku4HkvZENCivlkLTku4HotLUNCivlkLTlhYPlubMNCivlkLTlhYPlq4gNCivlkLTlsJHpkqcNCivlkLTlv4Pmg6ANCivlkLTmlofnjokNCivlkLTmlofmgKENCivlkLTmlofnm4oNCivlkLTmlofmnbANCivlkLTmloflj5ENCivlkLTmlofpk4MNCivlkLTmlofmr4UNCivlkLTmlofmlowNCivlkLTngavlsbENCivlkLTkuJbkvJ8NCivlkLTkuJbovr4NCivlkLTku5XlvLoNCivlkLTku57kuIANCivlkLTlubPlkowNCivlkLTlv4Xog5wNCivlkLTmraPlpYcNCivlkLTmraPljY4NCivlkLTmsLjmmIwNCivlkLTmsLjoo5UNCivlkLTnjonlkJ8NCivlkLTnjonojLkNCivlkLTnjonmma8NCivlkLTnjonok4kNCivlkLTnq4vmsJENCivlkLTnq4vli6QNCivlkLTkvIroi7kNCivlkLTku7Lms4INCivlkLTlhYbmlocNCivlkLTlkInpvpkNCivlkLTlpoLmpaYNCivlkLTlronpgqYNCivlkLTml63ms7ANCivlkLToh7Pku4ENCivlkLTooYzkuK0NCivlkLTkvLbkuL0NCivlkLTlkJvogrINCivlkLTlppnkvKYNCivlkLTlro/ku4ENCivlkLTlro/ln7oNCivlkLTluIznpZYNCivlkLTlv5flro8NCivlkLTlv5fmgZINCivlkLTlv5fkvJ8NCivlkLTlv5fmsYkNCivlkLTlv5fpvpkNCivlkLTmnY/ml4sNCivlkLTmspvmmYMNCivlkLTmsbbmsbYNCivlkLTnp4DnjrINCivlkLTnp4DnurkNCivlkLTnp4DpuYMNCivlkLTogrLlrpcNCivlkLTogrLnoZUNCivlkLTogrLpnJYNCivlkLTkuprmrKMNCivlkLTkvp3lpq4NCivlkLTkvp3ok5MNCivlkLTkvbPlkowNCivlkLTkvbPoirMNCivlkLTkvbPljZcNCivlkLTkvbPnjrINCivlkLTkvbPnjrINCivlkLTkvbPlgKkNCivlkLTkvbPlrrkNCivlkLTkvbPnnJ8NCivlkLTkvbPmg6ANCivlkLTkvbPok4kNCivlkLTkvbPmhqwNCivlkLTkvbPmoaYNCivlkLTkvbPpopYNCivlkLTkvbPolZkNCivlkLTkvbPpnZkNCivlkLTkvbPpuL8NCivlkLTkvanlkJsNCivlkLTkvanoirMNCivlkLTkvanln44NCivlkLTkvannj4oNCivlkLTkvannjrINCivlkLTkvanlqKUNCivlkLTkvannuq8NCivlkLTkvanok4kNCivlkLTkvanlhJINCivlkLTkvanosJUNCivlkLTkvanok4ENCivlkLTkvpHluq0NCivlkLTlhbbpnJYNCivlkLTlh73ok4ENCivlkLTlj5TplYcNCivlkLTlnaTnpZANCivlkLTlnaTpuL8NCivlkLTlpYflk7INCivlkLTlpYfpvpkNCivlkLTlrZ/lrpcNCivlkLTlrZ/oiqwNCivlkLTlrZ/otJ4NCivlkLTlrZ/lqJ8NCivlkLTlrZ/ojLkNCivlkLTlrZ/ok4kNCivlkLTlrZ/lrqoNCivlkLTlrZ/plKENCivlkLTlrZ/ojZ4NCivlkLTlraPnkb4NCivlkLTlrpflsrENCivlkLTlrpfnpYgNCivlkLTlrpfmoZMNCivlkLTlrpfpmoYNCivlkLTlrpflhJINCivlkLTlrpflrqoNCivlkLTlrpfnv7ANCivlkLTlrpflhbQNCivlkLTlrpfpvpkNCivlkLTlrprnloYNCivlkLTlrpzoirMNCivlkLTlrpzotJ4NCivlkLTlrpznpZANCivlkLTlrpznqYYNCivlkLTlrpzlq5QNCivlkLTlrpvmgKENCivlkLTlrpvokKYNCivlkLTlsJrlgI0NCivlkLTlsJrlhJINCivlkLTlhojlhJINCivlkLTlsrHpnJYNCivlkLTlsrPmoZANCivlkLTlubjmnp0NCivlkLTlubjnnJ8NCivlkLTlu7bmmYMNCivlkLTlv6DmlL8NCivlkLTlv6DpnJYNCivlkLTmgKHlkJsNCivlkLTmgKHnj4oNCivlkLTmgKHokI0NCivlkLTmgKHluoYNCivlkLTmgKHojrkNCivlkLTmgKHlrqoNCivlkLTmgKHpnZkNCivlkLTmgKENCivlkLTmib/lk7INCivlkLTmib/nkosNCivlkLTmi5sNCivlkLTmmJPpgIoNCivlkLTmmIzluq0NCivlkLTmmIYNCivlkLTmmIbnkosNCivlkLTmmI4NCivlkLTmmI7lv6ANCivlkLTmmI7oirMNCivlkLTmmI7nj40NCivlkLTmmI7lk7INCivlkLTmmI7mga0NCivlkLTmmI7ovakNCivlkLTmmI7ovr4NCivlkLTmmI7nkosNCivlkLTmmI7li4sNCivlkLTmmI7mmZQNCivlkLTmmI7pvpkNCivlkLTmmI7popwNCivlkLTmmJXlp78NCivlkLTljYfmoaUNCivlkLTkuJzlkowNCivlkLTkuJzogL8NCivlkLTkuJzpnJYNCivlkLTmnb7mspsNCivlkLTmrKPkvakNCivlkLTmrKPmgKENCivlkLTmrKPkvKYNCivlkLTmrKPnoZUNCivlkLTmrKPlhJINCivlkLTmrKPpuL8NCivlkLTms5PnjrMNCivlkLTmsrvoi7ENCivlkLTnjqvlp5cNCivlkLTnm7TogJUNCivlkLTnp4nkvKYNCivlkLTnp4nli4sNCivlkLTnp4npqo8NCivlkLToirPpnZINCivlkLToirPnkZwNCivlkLToip3nuqwNCivlkLTph4foirMNCivlkLTph5HnjokNCivlkLTph5HljoYNCivlkLTplb/mn48NCivlkLTpm6jlk7INCivlkLTpnZLogrINCivlkLTpnZLls7ANCivlkLTpnZLnjq8NCivlkLTkuq3osIoNCivlkLTkv6HlubgNCivlkLTkv6Hlrr0NCivlkLTkv6HovokNCivlkLTkvq/nkosNCivlkLTkv4rlro8NCivlkLTkv4rlpYcNCivlkLTkv4rmnbANCivlkLTkv4rmnbANCivlkLTkv4rovr4NCivlkLTkv4rku6oNCivlkLTkv4rlvrcNCivlkLTkv4rmr4UNCivlkLTkv4rnuqwNCivlkLTkv4rotKQNCivlkLTkv4rplIsNCivlkLTkv4rosJoNCivlkLTkv4rnnb8NCivlkLTkv57ojrkNCivlkLTlhqDnvqQNCivlkLTlhqDotKQNCivlkLTlhqDnv5oNCivlkLTlirLpvpkNCivlkLTlk4Hok4kNCivlkLTlpZXmiJANCivlkLTlpZXnvrINCivlkLTlp7/ku6oNCivlkLTlp7/moaYNCivlkLTlqIHoirMNCivlkLTlrqPplIsNCivlkLTlu7rnlJ8NCivlkLTlu7rnlLcNCivlkLTlu7roip0NCivlkLTlu7rovr4NCivlkLTlu7rlvrcNCivlkLTlu7rotKQNCivlkLTlu7rli4sNCivlkLTlu7rml7sNCivlkLTlvabluoYNCivlkLTlvovpk60NCivlkLTmgJ3okLENCivlkLTmgJ3ojrkNCivlkLTmgJ3popYNCivlkLTmlL8NCivlkLTmlL/ml7oNCivlkLTmlL/ljp8NCivlkLTmlL/lvawNCivlkLTmlL/lvrcNCivlkLTmlL/li4sNCivlkLTmlL/popYNCivlkLTmlL/pnJYNCivlkLTmmKXnlJ8NCivlkLTmmKXnvJMNCivlkLTmmK3ok4kNCivlkLTmmK3mr4UNCivlkLTmmK3pvpkNCivlkLTmmLHlro8NCivlkLTmn4TlvrcNCivlkLTmn4/pnZINCivlkLTmn4/ku6oNCivlkLTmn4/mr4UNCivlkLTmn4/popYNCivlkLTngqvlrpcNCivlkLTngrPls6MNCivlkLTnjrLlqpsNCivlkLTnmofmrKMNCivlkLTnm4jmtIENCivlkLTnpYnpvpkNCivlkLTnp4vnvo4NCivlkLTnp4vmhacNCivlkLTnuqrlkJsNCivlkLTnvo7lpq4NCivlkLTnvo7njrINCivlkLTnvo7mg6ANCivlkLTnvo7npa8NCivlkLTnvo7mhacNCivlkLTnvo7okKQNCivlkLTnvr/llqcNCivlkLToh7Tpk60NCivlkLToi6XljY4NCivlkLToi7Hlro8NCivlkLToi7HpuL8NCivlkLTotJ7lrpwNCivlkLTotJ7ojrkNCivlkLTpg4HoirMNCivlkLTph43mr4UNCivlkLTpo57pvpkNCivlkLTlgKkNCivlkLTljp/lrocNCivlkLTlk7Lpm68NCivlkLTlk7LmnYMNCivlkLTlrrbmmI4NCivlkLTlrrbnkKoNCivlkLTlrrbojaMNCivlkLTlrrbosaoNCivlkLTlrrbmhacNCivlkLTlrrnojrkNCivlkLTluq3ni7ENCivlkLTmjK/miJANCivlkLTmjK/osaoNCivlkLTmjLrplIsNCivlkLTmmY/lubMNCivlkLTkuabojaMNCivlkLTmoYLnrpANCivlkLTms7DmmIwNCivlkLTmtbfoiqwNCivlkLTkvanlkJsNCivlkLTkvanmhYgNCivlkLTkvannpa8NCivlkLTnm4roirMNCivlkLTntKDoiqwNCivlkLTnuq/mrKMNCivlkLTovanovakNCivlkLTkvJ/kvKYNCivlkLTkvJ/or5oNCivlkLTlgaXmsJENCivlkLTlgaXpkasNCivlkLTlm73kvJ8NCivlkLTlm73ni64NCivlkLTlm73nhpkNCivlkLTlm73pk60NCivlkLTlnZrnjq4NCivlkLTln7notKQNCivlkLTlqYnlqbcNCivlkLTlqYnmrYYNCivlkLTltIfpk60NCivlkLTlvanpgpENCivlkLTmgqANCivlkLTlkK/miawNCivlkLTlkK/mlowNCivlkLTmlY/nnJ8NCivlkLTmlY/pkpwNCivlkLTmopPpgKINCivlkLTmt7vplIsNCivlkLTmt5HlpoINCivlkLTmt5HoiqwNCivlkLTmt5Hljb8NCivlkLTmt5HmlY8NCivlkLTmt5HljY4NCivlkLTmt5Hlh6QNCivlkLTmtrXlrpwNCivlkLTnpaXnu7QNCivlkLTnu43ljY4NCivlkLTojonlqbcNCivlkLTpm6rlpq4NCivlkLTnq5/oirMNCivlkLTlh6/pm68NCivlkLTog5znpboNCivlkLTkuZTmo64NCivlkLTlpI3lhbQNCivlkLTmg6DlkJsNCivlkLTmg6DlvakNCivlkLTmg6Dpm68NCivlkLTmlq/nho8NCivlkLTmmbrkuJwNCivlkLTmmbrosaoNCivlkLTmoIvpmoYNCivlkLTnioDngbUNCivlkLTlloTpk60NCivlkLToj4Hoj4ENCivlkLTlko/lrrgNCivlkLTpgLjmsJENCivlkLTpgLjnvqQNCivlkLTpkqflqbcNCivlkLTpm4XlnaQNCivlkLTpm4Xpg4ENCivlkLTpm4XlspoNCivlkLTpm4XokI0NCivlkLTpm4Xpm68NCivlkLTpm4Xnu64NCivlkLTkupHpqqUNCivlkLTlnIbmnJcNCivlkLTmlaznkKoNCivlkLTmr5PnnJ8NCivlkLTmupDnq6ANCivlkLTnkZ4NCivlkLTnkZ7lk7INCivlkLTnkZ7pkqYNCivlkLTnkZ7luoYNCivlkLTnqJrpnIYNCivlkLTlnKPlqIENCivlkLTor5flqbcNCivlkLTor5rmmIwNCivlkLTpvI7kvJ8NCivlkLTlmInkv6ENCivlkLTlmInlqJ8NCivlkLTlmInog5wNCivlkLTlmInojaMNCivlkLTlmInolZkNCivlkLTlroHnkYQNCivlkLTojaPms7ANCivlkLTmsYnpk60NCivlkLTnoqfkv5ANCivlkLTnpo/ph48NCivlkLTnu7TlgKkNCivlkLTnu7Too5UNCivlkLTogofohb4NCivlkLTov5zor5oNCivlkLTpk63mjK8NCivlkLTpk6jlj4sNCivlkLTlh6TlhbANCivlkLTlvrflhYMNCivlkLTluobmlocNCivlkLTmhaflkJsNCivlkLTmhafnjrINCivlkLTmhafotJ4NCivlkLTmhafmlY8NCivlkLTmhafpm68NCivlkLTmtIHnj4oNCivlkLTotZDlv6ANCivlkLTlrqrkuK0NCivlkLTlv4blsY8NCivlkLTmmZPpnZINCivlkLTmmZPnuq8NCivlkLTmmZPoj4ENCivlkLTmmZPolocNCivlkLTnh5XoiqwNCivlkLTpopbovakNCivlkLTolZnlpoINCivlkLTolZnnurkNCivlkLTpgbXlhYgNCivlkLTplKbkvbMNCivlkLTplKbplZINCivlkLTpnZnlrpwNCivlkLTpnZnmgKENCivlkLTpnZnoirMNCivlkLTpnZnojLkNCivlkLTpnZnpm68NCivlkLTpvpnlrp0NCivlkLTmgLvmiJANCivlkLTlo7DmupANCivlkLTov4gNCivlkLTpuL/mmIwNCivlkLTpuL/mo64NCivlkLTmm5zoh6MNCivlkLTkuLDlkIkNCivlkLTplYfliKkNCivlkLTnkLznjokNCivlkLTpn7XljYkNCivlkLTkuL3mmKUNCivlkLTkuL3lqbcNCivlkLTnjK7oia8NCivlkLTppqjmgKENCivlkLTmh7/lqbcNCivlkLTmmL7lrpcNCivlkLTkvbzkvbwNCivlkLTml7vlhJINCivlkLTnjqDok4kNCivlkLTmmLbokbMNCivlkLTmt6nlrokNCivlkLTnkK7mnbANCivlkLTnjq7nkLMNCivlkLTnrbHnj4gNCivlkLTnkoENCivlkLTpn6vlvrcNCivlkJXlrZDosaoNCivlkJXku4Hlm6INCivlkJXlj4vlqbcNCivlkJXmlofkuJMNCivlkJXmlofpk4MNCivlkJXkuJbosaoNCivlkJXmraPlrokNCivlkJXnjonnp4sNCivlkJXnq4vkvJ8NCivlkJXlpoLoi7ENCivlkJXoh6rovr4NCivlkJXlv5flro8NCivlkJXlv5fplIsNCivlkJXogrLoirMNCivlkJXogrLnjq4NCivlkJXkvbPlrpwNCivlkJXkvbPlrrkNCivlkJXkvbPmoaYNCivlkJXkvanlp5cNCivlkJXkvannuq8NCivlkJXlhbbpnJYNCivlkJXlp5flp5cNCivlkJXlraPoirMNCivlkJXlrpfpk60NCivlkJXlrpzoirMNCivlkJXlrpzmmY8NCivlkJXlrpzpnJYNCivlkJXlsYXli4sNCivlkJXlv6DogrINCivlkJXmgKHmhacNCivlkJXml7rpqpANCivlkJXmmI4NCivlkJXmmI7ms7ANCivlkJXmmI7pvpkNCivlkJXmnbDnuqwNCivlkJXmrKPpopYNCivlkJXoirPkv4oNCivlkJXph5HlvaYNCivlkJXplb/ppqgNCivlkJXkv53lsrgNCivlkJXkv4rku6oNCivlkJXkv5ANCivlkJXljZfnlb8NCivlkJXlqIHlvrcNCivlkJXlu7rlvaYNCivlkJXlu7rplIsNCivlkJXlvabono0NCivlkJXmlL/lvaYNCivlkJXmlL/osJUNCivlkJXmmK3ku6oNCivlkJXmn4/lro8NCivlkJXnmoflhbYNCivlkJXnp4vkupENCivlkJXnvo7mg6ANCivlkJXnvo7pvoQNCivlkJXoi7Hnjq4NCivlkJXpn6bnrrQNCivlkJXlk7LmmI4NCivlkJXluq3nu7QNCivlkJXmoLzosaoNCivlkJXnpZDlkIkNCivlkJXkvJ/pkqYNCivlkJXlm73ln7kNCivlkJXlqYnojLkNCivlkJXmooXpn7MNCivlkJXmt5Hljb8NCivlkJXmt5Hnpa8NCivlkJXnkIbpnJYNCivlkJXnu43ojaMNCivlkJXpm6rnkZwNCivlkJXmg6Doj4ENCivlkJXmmbrmnbANCivlkJXlko/nnJ8NCivlkJXpm4XnjrINCivlkJXpm4XnkKoNCivlkJXpm6/mrYYNCivlkJXmsqflsKcNCivlkJXlnKPnq6ANCivlkJXlmInlhYMNCivlkJXlmInkuLANCivlkJXnu7TnjrINCivlkJXpk63mmboNCivlkJXmhafmg6ANCivlkJXlrablkJsNCivlkJXlrabmmboNCivlkJXlrabnnb8NCivlkJXnh5XmnpcNCivlkJXplKbpoboNCivlkJXpnZnok4kNCivlkJXpuL/pup8NCivlkJXkuL3lqJ8NCivlkJXljoXkuKUNCivlkJXnv4rmsJENCivlrovlpKfovrANCivlrovkuYvmj4YNCivlrovlv4PmhacNCivlrovkuJbmlocNCivlrovnjonlqbcNCivlrovkvK/nkZwNCivlrovmspvli4cNCivlrovogrLnjq4NCivlrovkvannj4oNCivlrovlrZ/nkZsNCivlrovlubjnnJ8NCivlrovmmIzpnJYNCivlrovkuJzlqIENCivlrovnp4nokLENCivlrovkv4rmtIsNCivlrovlpZXlhJINCivlrovlu7rmrKMNCivlrovmlL/pmoYNCivlrovnprnojrkNCivlrovoh7Tov5wNCivlrovlrrbpnJYNCivlrovoiKvoh6MNCivlrovln7nlhYMNCivlrovmlY/ljY4NCivlrovkuZTnjokNCivlrovmnJ3mlowNCivlrovkupHmmI4NCivlrovlmInku4ENCivlrovnoqfnkLMNCivlrovmhafmtIENCivlrovnh5Xkv6oNCivlrovnqpwNCivlrovml7vnnJ8NCivlt6vlrZDmh78NCivlt6vmiI7mgKENCivlt6vkvannkocNCivlt6vlrpzlraYNCivlt6vmmI7nv7ANCivlt6voirfnjq4NCivlt6vlhqDosIoNCivlt6vmn4/mr4UNCivlt6vmjK/lmIkNCivlt6vmuIXmlocNCivlt6vlloTnpo8NCivlt6vlmInlhbQNCivlt6vmmZPoiqwNCivlt6vmmZ/pgLgNCivmnY7kuYPmlocNCivmnY7lo6vkuqsNCivmnY7lrZDlhYENCivmnY7lsI/oiqwNCivmnY7kuK3ku7sNCivmnY7kuK3mhacNCivmnY7ku4Hkv64NCivmnY7ku4Hlh68NCivmnY7ku4rpu5sNCivmnY7lhYPlnIMNCivmnY7lhYPoo5UNCivmnY7lj4vmt7MNCivmnY7lpKnmoaYNCivmnY7lv4Pku4ENCivmnY7lv4PlspoNCivmnY7mlocNCivmnY7mloflkIkNCivmnY7mloflv5cNCivmnY7mlofmlL8NCivmnY7mlofojokNCivmnY7mlofmg6ANCivmnY7mlofnkKYNCivmnY7mlofmhI8NCivmnY7mlofovr4NCivmnY7mlofotKQNCivmnY7mlofmlowNCivmnY7mnIjmmJ8NCivmnY7kuJblrokNCivmnY7kuJbkvJ8NCivmnY7kuJbliYANCivmnY7kuJblrr0NCivmnY7ku6XmlrANCivmnY7lj6/nq4sNCivmnY7lt6fnkLMNCivmnY7lvJjmmIoNCivmnY7mraPlhYMNCivmnY7mraPlvaYNCivmnY7mraPog5wNCivmnY7mraPosaoNCivmnY7msLjmmIwNCivmnY7msLjpkqYNCivmnY7msLjpuL8NCivmnY7njonkvakNCivmnY7njonljb8NCivmnY7njonnkLMNCivmnY7njonpk4MNCivmnY7nq4vku4ENCivmnY7nq4vlvLoNCivmnY7kuqbmmbQNCivmnY7ku7LnjoQNCivmnY7lhYkNCivmnY7lhYnnpaUNCivmnY7lhYnlgKINCivmnY7lhYbmlowNCivmnY7lkInmlY8NCivmnY7lkI3kvKYNCivmnY7lpoLnj40NCivmnY7lroflvJgNCivmnY7lrojnu7QNCivmnY7lronnkLMNCivmnY7miJDmsYkNCivmnY7mnInpkqYNCivmnY7nvr0NCivmnY7oh7Pnq6ANCivmnY7kvZDlroENCivmnY7kvK/mr4UNCivmnY7lkJvlvaYNCivmnY7lkKvku4ENCivmnY7lpo3ojrkNCivmnY7lro/mlocNCivmnY7lro/mtLINCivmnY7lu7fkvJ8NCivmnY7lv5fmiJANCivmnY7lv5fmmI4NCivmnY7lv5fls7ANCivmnY7lv5fkvJ8NCivmnY7lv5fnq6ANCivmnY7lv5fpk60NCivmnY7lv5fpuY8NCivmnY7mspvmnbANCivmnY7msarnm5sNCivmnY7np4DlubQNCivmnY7np4DnjrINCivmnY7np4Dljb8NCivmnY7np4DljY4NCivmnY7np4DomIUNCivmnY7ogrLmnp0NCivmnY7ogrLluq0NCivmnY7ogrLnvqQNCivmnY7ogrLojrkNCivmnY7ogrLono0NCivmnY7op4HmsbYNCivmnY7kuprkvKYNCivmnY7kuqzmoaYNCivmnY7kvp3nuq8NCivmnY7kvp3mgYINCivmnY7kvbPmsbYNCivmnY7kvbPmmI4NCivmnY7kvbPoirMNCivmnY7kvbPoiqwNCivmnY7kvbPnjrINCivmnY7kvbPnjrINCivmnY7kvbPnj40NCivmnY7kvbPlgKkNCivmnY7kvbPlrrYNCivmnY7kvbPmmYMNCivmnY7kvbPnnJ8NCivmnY7kvbPorq0NCivmnY7kvbPpm68NCivmnY7kvbPok4kNCivmnY7kvbPluoYNCivmnY7kvbPlhJINCivmnY7kvbPmoaYNCivmnY7kvbPpopYNCivmnY7kvbPoh7sNCivmnY7kvbPpnJYNCivmnY7kvbPpnI8NCivmnY7kvbPplK4NCivmnY7kvbPok4ENCivmnY7kvoPmtIsNCivmnY7kvankvakNCivmnY7kvanoip0NCivmnY7kvanlp78NCivmnY7kvannj4oNCivmnY7kvannjrINCivmnY7kvanlgKkNCivmnY7kvannnJ8NCivmnY7kvanpmbUNCivmnY7kvanku6oNCivmnY7kvanmmZQNCivmnY7kvanosJUNCivmnY7kvanlrKwNCivmnY7kvpHlrqwNCivmnY7lhbbmvqcNCivmnY7lh73oiqwNCivmnY7ljZPpgZMNCivmnY7lkozmmIwNCivmnY7lnaTmmI4NCivmnY7lnaTmupANCivmnY7lnaTpnJYNCivmnY7lpYflsZUNCivmnY7lpYfnv7ANCivmnY7lrZ/lnaQNCivmnY7lrZ/nj4oNCivmnY7lrZ/lk7INCivmnY7lrZ/ovakNCivmnY7lrZ/lhJINCivmnY7lrZ/popYNCivmnY7lrZ/ngb8NCivmnY7lrZ/nkoENCivmnY7lraPljY4NCivmnY7lrpflnaQNCivmnY7lrpfkvKYNCivmnY7lrpfmgakNCivmnY7lrpfkuYkNCivmnY7lrpfotKQNCivmnY7lrpflrqoNCivmnY7lrpfpopYNCivmnY7lrpfnv7ANCivmnY7lrpfpnJYNCivmnY7lrpfpuL8NCivmnY7lrprov5wNCivmnY7lrpzmmI4NCivmnY7lrpzoirMNCivmnY7lrpzmtLINCivmnY7lrpznjrINCivmnY7lrpzlk7INCivmnY7lrpzls7sNCivmnY7lrpznuq8NCivmnY7lrpzmtIENCivmnY7lrpzmoaYNCivmnY7lrpzpnJYNCivmnY7lrpzpn6kNCivmnY7lrpzlnJwNCivmnY7lrpvnjrINCivmnY7lrpvokI0NCivmnY7lrpvpnZkNCivmnY7lsJrotKQNCivmnY7lsqnmmZYNCivmnY7lsrHok4ENCivmnY7lsrPls7ANCivmnY7lsrPmoaYNCivmnY7lsrPpuL8NCivmnY7lubjlqJ8NCivmnY7lubjplK0NCivmnY7lv6DlkowNCivmnY7lv6DkuYkNCivmnY7lv6DpopYNCivmnY7lv7XokqgNCivmnY7mgKHmmIwNCivmnY7mgKHnjrINCivmnY7mgKHokLENCivmnY7mgKHlrr0NCivmnY7mgKHmhacNCivmnY7mgKHnkb4NCivmnY7mgKHpopYNCivmnY7mgKHml7sNCivmnY7mib/lrpcNCivmnY7mib/nkosNCivmnY7mib/pvpkNCivmnY7mmJPkv64NCivmnY7mmJPosJoNCivmnY7mmIzovr4NCivmnY7mmIblro8NCivmnY7mmIbovr4NCivmnY7mmIbpvpkNCivmnY7mmI7liKkNCivmnY7mmI7mgKENCivmnY7mmI7mnbANCivmnY7mmI7lvaYNCivmnY7mmI7kv64NCivmnY7mmI7lk7INCivmnY7mmI7kuaYNCivmnY7mmI7pkooNCivmnY7mmI7ovr4NCivmnY7mmI7mtIENCivmnY7mmI7li4sNCivmnY7mmI7moaYNCivmnY7mmI7osJUNCivmnY7mmI7pnJ4NCivmnY7mmI7lookNCivmnY7mmIDoh7sNCivmnY7mmIoNCivmnY7ljYfnv7ANCivmnY7kuJzlvaYNCivmnY7kuJzpmoYNCivmnY7kuJzpvpkNCivmnY7mnbDlpoINCivmnY7mnb7lrrYNCivmnY7mrKPmgKENCivmnY7mrKPmgKENCivmnY7mrKPlk7INCivmnY7mrKPovr4NCivmnY7mrKPlhJINCivmnY7mrKPpopYNCivmnY7mrKPpnJ4NCivmnY7ms5XmsYkNCivmnY7msrvlrokNCivmnY7njp/njp8NCivmnY7njqXojrkNCivmnY7np4nmnJQNCivmnY7np4nnv7ANCivmnY7oirPlnLsNCivmnY7oirPlqbcNCivmnY7oirPku6oNCivmnY7oip3nu6sNCivmnY7oirjlvaYNCivmnY7omY7ls7ANCivmnY7ph5Hms5MNCivmnY7ph5Hpk4MNCivmnY7ph5HmoaYNCivmnY7plb/mlocNCivmnY7plb/ojaMNCivmnY7plb/nuq4NCivmnY7pnZLmnb4NCivmnY7pnZLpmLMNCivmnY7pnZ7pnI8NCivmnY7kv6HmiJANCivmnY7kv6HmnbANCivmnY7kv6HlvrcNCivmnY7kv6HpopYNCivmnY7kv53ok4ENCivmnY7kv4rlro8NCivmnY7kv4rlpYcNCivmnY7kv4rmmIANCivmnY7kv4rlvaYNCivmnY7kv4rnpboNCivmnY7kv4rkur8NCivmnY7kv4rlvrcNCivmnY7kv4rmr4UNCivmnY7kv4rotKQNCivmnY7kv4rotKQNCivmnY7kv4rotKQNCivmnY7kv4rli4sNCivmnY7kv4rplJwNCivmnY7kv57mhacNCivmnY7lhqDmnIsNCivmnY7lhqDku6oNCivmnY7lhqDojrkNCivmnY7lhqDoh7sNCivmnY7li4flroENCivmnY7ljZflqIcNCivmnY7lk4HmhacNCivmnY7lpZXmnpoNCivmnY7lpY/plJANCivmnY7lp7/ku6oNCivmnY7lp7/ojrkNCivmnY7lqIHlro8NCivmnY7lqIHlvrcNCivmnY7lqIHpnJYNCivmnY7lrqPojrkNCivmnY7lu7rmsJENCivmnY7lu7rlro8NCivmnY7lu7rpgqYNCivmnY7lu7rmmI4NCivmnY7lu7rlqIENCivmnY7lu7roi4cNCivmnY7lu7rlrr0NCivmnY7lu7rotKQNCivmnY7lu7rplIsNCivmnY7lu7rmoaYNCivmnY7lu7rlhbQNCivmnY7lu7rnprINCivmnY7lvablro8NCivmnY7lvablrpwNCivmnY7lvabku6oNCivmnY7lvabojrkNCivmnY7lvablhJINCivmnY7lvabpnJYNCivmnY7lvovnjq4NCivmnY7mgJ3mgKENCivmnY7mgJ3okLENCivmnY7mgJ3ku6oNCivmnY7mgJ3ojrkNCivmnY7mgJ3osJUNCivmnY7mlL8NCivmnY7mlL/lv6ANCivmnY7mlL/lk7INCivmnY7mlL/ovr4NCivmnY7mlL/ovokNCivmnY7mlL/mmZQNCivmnY7mlL/pvpkNCivmnY7mmKXmnp0NCivmnY7mmKXnh5UNCivmnY7mmK3nvo4NCivmnY7mmK3nuqwNCivmnY7mmKDokLENCivmnY7mmLHmmKUNCivmnY7mmLHno7cNCivmnY7mn4/mnYkNCivmnY7mn4/ok4kNCivmnY7mn4/otKQNCivmnY7mn4/nkoENCivmnY7ngrPlnaQNCivmnY7nj4rnj4oNCivmnY7nlYzplIsNCivmnY7nm4jnm4gNCivmnY7nm4jmtIENCivmnY7nm4jpopYNCivmnY7np5Hms68NCivmnY7np4vmooUNCivmnY7np4vku6oNCivmnY7np4vpup8NCivmnY7nvo7njokNCivmnY7nvo7oirMNCivmnY7nvo7kvKYNCivmnY7nvo7nkZwNCivmnY7nvo7ku6oNCivmnY7nvo7ojrkNCivmnY7nvo7plJwNCivmnY7og6TnkbYNCivmnY7oh7TmhacNCivmnY7ojILlhagNCivmnY7oi7Hlv5cNCivmnY7oi7HnkZ4NCivmnY7oi7Hnjq4NCivmnY7ombnku6oNCivmnY7otJ7lrpwNCivmnY7otJ7mhacNCivmnY7ov7DnlLMNCivmnY7pg4HkvJ8NCivmnY7ph43otKQNCivmnY7pn7PmhacNCivmnY7lgKkNCivmnY7kv67pvZANCivmnY7lk7LlrokNCivmnY7lk7LnuqwNCivmnY7lrrblro8NCivmnY7lrrbnj40NCivmnY7lrrbokLENCivmnY7lrrbosaoNCivmnY7lrrbkvqwNCivmnY7lrrblhbQNCivmnY7lrrnlqbcNCivmnY7luIjlqroNCivmnY7mgqblmIkNCivmnY7mjK/mmIwNCivmnY7mjK/or5oNCivmnY7mjK/ku6oNCivmnY7mmYvosaoNCivmnY7kuabmtrUNCivmnY7moLnlmIkNCivmnY7moYPmo64NCivmnY7ms7DpnJYNCivmnY7mtanluq0NCivmnY7kvanlpoINCivmnY7kvannkLMNCivmnY7kvanlmIkNCivmnY7nm4rojaMNCivmnY7npZbnj40NCivmnY7ntKDmooUNCivmnY7nuq/mhacNCivmnY7og73ov5wNCivmnY7orq3kur8NCivmnY7lubLmmZYNCivmnY7kvJ/lkIkNCivmnY7kvJ/mgboNCivmnY7kvJ/lmIkNCivmnY7kvJ/popkNCivmnY7lgaXmupANCivmnY7lgaXpk60NCivmnY7lm73lhagNCivmnY7lm73lvLoNCivmnY7lm73ljY4NCivmnY7lm73nkZ4NCivmnY7lm73ojaMNCivmnY7lm73nu7QNCivmnY7lm73pk7YNCivmnY7lm73lhbQNCivmnY7ln7rlvJgNCivmnY7ln7nljY4NCivmnY7lqYnnnJ8NCivmnY7lqYnnkZ4NCivmnY7ltIfku4ENCivmnY7ltIfosaoNCivmnY7lurfmraMNCivmnY7lvanojrkNCivmnY7lkK/lvJgNCivmnY7lkK/msqcNCivmnY7mlY/lkIkNCivmnY7mlY/lmIkNCivmnY7mlY/pvpkNCivmnY7muIXlkJ8NCivmnY7mt5HlkJsNCivmnY7mt5HoiqwNCivmnY7mt5HotJ4NCivmnY7mt5HojLkNCivmnY7mt5Hmg6ANCivmnY7mt5HljY4NCivmnY7mt5Hok4kNCivmnY7mt5HpnZkNCivmnY7mtrXlr4wNCivmnY7npaXnkZ4NCivmnY7nu43nu64NCivmnY7nv47mr5MNCivmnY7ov57ls7ANCivmnY7pm6rokI0NCivmnY7mnbDlpoINCivmnY7lh6/moaINCivmnY7og5zpm4QNCivmnY7kuZTpk64NCivmnY7lsprnkKYNCivmnY7mg6DoiqwNCivmnY7mg6Dnj6ANCivmnY7mg6DnkLMNCivmnY7mg6Dpm68NCivmnY7mmbTpm68NCivmnY7mmbrmgKENCivmnY7mmbrlvLoNCivmnY7mmbrnu7QNCivmnY7mo64NCivmnY7muZjmoaYNCivmnY7nmpbnjrINCivmnY7lloTlkIwNCivmnY7oiJzljY4NCivmnY7lko/np4sNCivmnY7pgLjmiY0NCivmnY7pgLjnvqQNCivmnY7ov5vnpo8NCivmnY7pmobljY4NCivmnY7pm4XnjqsNCivmnY7pm4XnjrINCivmnY7pm4XmooUNCivmnY7pm4XlqbcNCivmnY7pm4Xmg6ANCivmnY7pm4Xmg6ANCivmnY7pm4XokI0NCivmnY7pm4Xpm68NCivmnY7pm4Xnh5UNCivmnY7pm6/nh5UNCivmnY7kvKDlkJsNCivmnY7mhI/pm68NCivmnY7mg7MNCivmnY7mlrDms70NCivmnY7mr5PnnJ8NCivmnY7mupANCivmnY7nkZ7mlocNCivmnY7nkZ7otJ4NCivmnY7nkZ7ljY4NCivmnY7nkZ7pqpANCivmnY7kuYnpm4QNCivmnY7lnKPnkLANCivmnY7or5fkvJ8NCivmnY7or5fmpbcNCivmnY7pgZPmnpcNCivmnY7lmIkNCivmnY7lmInmnpcNCivmnY7lmInlh4wNCivmnY7lmInovakNCivmnY7lmInljY4NCivmnY7lmInpk60NCivmnY7lmInpuL8NCivmnY7lroHoirMNCivmnY7ojaPojIINCivmnY7ojaPpqbANCivmnY7msYnnpboNCivmnY7noqflqbcNCivmnY7npo/ok4kNCivmnY7nu7Tku4ENCivmnY7nu7TkvKYNCivmnY7nu7TmoaINCivmnY7ogofmrKMNCivmnY7lv5fmmI4NCivmnY7pk63lkagNCivmnY7pk63mr5MNCivmnY7puKPlrocNCivmnY7pvZDoirMNCivmnY7lub/npYENCivmnY7lvrfmtbcNCivmnY7luoblro8NCivmnY7luobljY4NCivmnY7mhafoiqwNCivmnY7mhafnvo4NCivmnY7mhafnj6ANCivmnY7mhafku6oNCivmnY7mr4Xkv6ENCivmnY7ojrnmtIENCivmnY7otKTmt6YNCivmnY7lrabmmI4NCivmnY7lrqrmlowNCivmnY7mmZPlpq4NCivmnY7mmZPnjrINCivmnY7mmZPlspoNCivmnY7mmZPoj4ENCivmnY7mmZPmppUNCivmnY7ms73ogrINCivmnY7nh5XnjrINCivmnY7nkp/pg4ENCivmnY7nv7DpnZINCivmnY7lhbToiJwNCivmnY7olZnlpoINCivmnY7olZnoirgNCivmnY7osavlh6ENCivmnY7plKbljYcNCivmnY7plKbojrINCivmnY7pnZnlrpwNCivmnY7pnZnmgKENCivmnY7pnZnmgKENCivmnY7pnZnnvo4NCivmnY7pnZnok4kNCivmnY7pvpnnlJ8NCivmnY7pvpnpup8NCivmnY7niLXoh6MNCivmnY7ogarlsrMNCivmnY7oiIbpkasNCivmnY7puL/lv5cNCivmnY7puL/ovr4NCivmnY7mm5zlrZgNCivmnY7osKjluIYNCivmnY7nhpTpmKENCivmnY7ppqXlpoINCivmnY7nkLzoi7ENCivmnY7kuL3mnp0NCivmnY7kuL3nj6ANCivmnY7lrp3njokNCivmnY7ogIDmsJENCivmnY7ppqjmgKENCivmnY7mh7/lpoINCivmnY7mnYPlrrYNCivmnY7liq3lhpsNCivmnY7ml7vljYcNCivmnY7ml7vnjq4NCivmnY7mmLbmrKMNCivmnY7oi7nmhYgNCivmnY7mtrTmsZ0NCivmnY7loKgNCivmnY7ntZwNCivmnY7njq7nkKoNCivmnY7nrbHkupENCivmnY7pkrDpm68NCivmnY7pnZPlrrgNCivmnY7pk6Dku7sNCivmnY7lkJsNCivmnZzmlofmnbANCivmnZzmsJHmnbANCivmnZzlhajmnpcNCivmnZzlv5fotKQNCivmnZzkvbPosaoNCivmnZzlrZ/mlL8NCivmnZzlrpvosJUNCivmnZzmib/pkasNCivmnZzljYfnv7ANCivmnZzoirPmlL8NCivmnZzkv4rmr4UNCivmnZzlqIHlu7cNCivmnZzlvabpnJYNCivmnZzngrPpvpkNCivmnZznvo7mhacNCivmnZzlrrbmmIwNCivmnZzkvanor5cNCivmnZzlqYnpm68NCivmnZzmt5Hpk64NCivmnZzpmLPlnIYNCivmnZzlmInnjrINCivmnZznu7Tkv64NCivmnZznh5XljY4NCivmnZzogIDku4ENCivmspnmraPmgqYNCivmsojlo6vmnbANCivmsojku4HmnbANCivmsojmlofnpaUNCivmsojkuJbpl7UNCivmsojmraPlvrcNCivmsojnq4vku4ENCivmsojlpoLls7ANCivmsojkvZHnv7ANCivmsojlkJvnkpANCivmsojlv5flt50NCivmsojlv5fpvpkNCivmsojmsbbokI0NCivmsojogrLmmJ8NCivmsojkvp3popYNCivmsojkvbPmhacNCivmsojkvanpm68NCivmsojlnaTljYcNCivmsojlrpfluoYNCivmsojlrpzok4ENCivmsojmgKHkvLYNCivmsojmmIzmmI4NCivmsojmmI7okLENCivmsojmrKPlraYNCivmsojnp4nosIoNCivmsojoirjokKkNCivmsojkv6Hlop4NCivmsojkv4rnv5QNCivmsojlhqDlro8NCivmsojlp7/mhacNCivmsojlu7rmiJANCivmsojlu7rlvrcNCivmsojmgZLlhYkNCivmsojmmK3otKQNCivmsojmn4/lrr0NCivmsojnm4joj4ENCivmsojnvo7lqJ8NCivmsojpg4HlurcNCivmsojlk7LmoIcNCivmsojlrrbojaMNCivmsojmjK/lhbQNCivmsojnm4rmib8NCivmsojnuq/lpoINCivmsojlm73pk6gNCivmsojmmajpkp8NCivmsojmt5HljY4NCivmsojmg6Doj4ENCivmsojoiJLnkLMNCivmsojpm4Xmg6ANCivmsojmmZbluq0NCivmsojnkZ7pkqYNCivmsojlnKPmmIYNCivmsojpgZPorroNCivmsojlmInolZkNCivmsojnu7Tmr5MNCivmsojlvrfljpoNCivmsojlrabmiJANCivmsojolZnlkJsNCivmsojpuL/mtLINCivmsojlpo/nnJ8NCivmsojnrbHkupENCivmsarlpKfkvKYNCivmsarlt6fnjrINCivmsarnmb7ovakNCivmsarnp4Dnh5UNCivmsarlrZ/mtrUNCivmsarmgKHljY4NCivmsarpnZLok4kNCivmsarlhqDlro8NCivmsarnvo7njokNCivmsarlrrbojrkNCivmsarlkK/mlocNCivmsarpm4XokI0NCivmsarpnZblm70NCivmsarluobnj40NCivmsarkuL3lqJ8NCivni4TlrrbmuqcNCivosLfms5PpgZMNCivovabnm4rljY4NCivovpvlrpfmva0NCivovpvlpZXmiJANCivovpvoj4HlqKUNCivovpvml7vkv64NCivpgqLog73mlocNCivpmK7mlofnpaUNCivpmK7lkJXnnJ8NCivpmK7kv6HlrqoNCivpmK7mmLHlro8NCivpmK7po57pk60NCivpmK7mt5HojLkNCivpmK7mlpDnkZwNCivpmK7pm4XkvKYNCivpmK7nnb/npaUNCivpmK7puY/noZUNCivljZPlo6vli4sNCivljZPmsLjloIINCivljZPlv5flv6ANCivljZPkvbPluoYNCivljZPlrpvlkJsNCivljZPmmI7ku6oNCivljZPoirPlpoINCivljZPkv4rlro8NCivljZPlu7rpmoYNCivljZPoi7Hlk7INCivljZPlrrbmpaANCivljZPorq3oia8NCivljZPmt5HlqpsNCivljZPmnJ3pl7UNCivljZPnkZ7ltIcNCivljZPlv5fpmoYNCivljZPpnZnlpoINCivljZPnlJ8NCivlkajkuIrpkqYNCivlkajlo6vmnbANCivlkajlpKfpkqcNCivlkajlrZDmlawNCivlkajkuK3lhbQNCivlkajlv4PmgKENCivlkajmlofmlL8NCivlkajmlofpm4UNCivlkajmnIjpnJwNCivlkajkuJbkuLANCivlkajku6PlsIkNCivlkajlvJjmlY8NCivlkajmraPlm70NCivlkajmsLjpm4QNCivlkajnjonojrINCivlkajnq4vkvJ8NCivlkajku7Llh68NCivlkajlkInpvpkNCivlkajlubTnm5sNCivlkajoh7PoiqwNCivlkajkvZHnpa8NCivlkajkvK/pkasNCivlkajlkJvpuL8NCivlkajlrZ3oirMNCivlkajlro/nkZwNCivlkajlu7fpmoYNCivlkajlv5flv6ANCivlkajlv5fmuIUNCivlkajlv5fli4sNCivlkajmsbbnj4oNCivlkajnp4DmmY8NCivlkajogrLkvLYNCivlkajogrLmtqYNCivlkajkuprmrKMNCivlkajkvbPmgKENCivlkajkvbPok4kNCivlkajkvbPpnIcNCivlkajkvanlrpwNCivlkajkvanku6oNCivlkajljY/liKkNCivlkajlpYfok4kNCivlkajlrZ/osIoNCivlkajlrpflu7oNCivlkajlrpzoirMNCivlkajlrpvokLENCivlkajlubjok4kNCivlkajmgKHkvLYNCivlkajmgKHlkJsNCivlkajmgKHpgqYNCivlkajmgKHkv6oNCivlkajmmI7lvJgNCivlkajmmI7lvbsNCivlkajmmI7ovokNCivlkajmnbANCivlkajmrKPoirgNCivlkajmrKPojrkNCivlkajnjp/okLENCivlkajoirPlpoINCivlkajoip3mtrUNCivlkajph5Hnh5UNCivlkajpnZLok4kNCivlkajkv6HovokNCivlkajkv4rlro8NCivlkajkv4rosaoNCivlkajlhqDkvLYNCivlkajlk4Hlpo0NCivlkajlqIHlkYgNCivlkajlu7rlkYgNCivlkajlu7rpk60NCivlkajlvablspENCivlkajmgJ3lvq4NCivlkajmlL/nv7ANCivlkajmmJ/lkIwNCivlkajmn4/nlKsNCivlkajnjrINCivlkajnm4jmnYkNCivlkajnp4vokI0NCivlkajnvo7mmKUNCivlkajoh7TkuJ4NCivlkajpg4HmlocNCivlkajpn6bnv7ANCivlkajlh4zmgowNCivlkajlqJ/lpoINCivlkajlrrbmtakNCivlkajlrrbluoYNCivlkajls7DmraMNCivlkajmjK/lh68NCivlkajkuablqbcNCivlkajms7DlrokNCivlkajkvanlpoINCivlkajnpZDmhacNCivlkajogL/ooYwNCivlkajkvJ/ojLkNCivlkajlm73pnZYNCivlkajlqYnnkLMNCivlkajmlY/pkrANCivlkajmt5HlqJ8NCivlkajmt5Hnh5UNCivlkajlh6/mhacNCivlkajmg6DojrINCivlkajmmbrmlY8NCivlkajmuJ3nj4oNCivlkajlko/orq0NCivlkajpgLjlhbANCivlkajpm4XlqbcNCivlkajkupHmo6ANCivlkajmlazmmY8NCivlkajkuJrpkqYNCivlkajnhYzogL8NCivlkajnkZ7mpaANCivlkajkuYnls7ANCivlkajlnKPmhacNCivlkajoo5XkuLANCivlkajpgZPms5MNCivlkajlmInmnb4NCivlkajlmInluoYNCivlkajmsYnmupANCivlkajnpo/lh6QNCivlkajnv6DoiqwNCivlkajkur/kv6ENCivlkajmhaflp78NCivlkajkuZDlpKkNCivlkajotKTlvrcNCivlkajlrqrpgqYNCivlkajmmZPokI0NCivlkajnh5Xnm4gNCivlkajono3pqo8NCivlkajpnZnpm68NCivlkajogarlrocNCivlkajplYfpgqYNCivlkajkuL3njrINCivlkajlhbDoirMNCivlkajml7vpnZkNCivlkajml4bnkZwNCivlkajnjq4NCivlkajpkrDnv5QNCivlrZ/lpKnnpaUNCivlrZ/luoblrokNCivlraPogrLms70NCivlrpjlpKflvJgNCivlrpjogrLokLENCivlrpjoirPlpoINCivlrpjoi5HmnbANCivlrpjlhpzlk7INCivlsJrkuaYNCivlsYjpgZPliJoNCivlsrPnu7Tpk6QNCivmiL/lhYbpmoYNCivkuo7lrrbnj40NCivmmJPotrPnnJ8NCivmmJPmmbrlgaUNCivmmIzlrZ/nv7ANCivkuJzmhY7nkLMNCivmnpfkuIDngpwNCivmnpfkuIrlv5cNCivmnpfkuYXljIANCivmnpfkuo7mraMNCivmnpfkuo7lqbcNCivmnpfkuo7npa8NCivmnpfljYPlqpoNCivmnpfljYPmr5MNCivmnpflo6vlipsNCivmnpflo6vpg4ENCivmnpflo6vmuIoNCivmnpflo6vmnbANCivmnpflo6vmiawNCivmnpflo6votooNCivmnpflo6vlhpwNCivmnpflpKflhYMNCivmnpflpKfnpaUNCivmnpflpKfpkqcNCivmnpflpbPmu6ENCivmnpflrZDnjoQNCivmnpflrZDkvJ8NCivmnpflrZDmnbANCivmnpflrZDmg6ANCivmnpflrZDlko8NCivmnpflrZDli6QNCivmnpflrZDnu64NCivmnpflrZDnkYQNCivmnpflsI/nkKoNCivmnpflsbHkupENCivmnpfmiY3lhYMNCivmnpfkuK3lvLoNCivmnpfkuYvoj4ENCivmnpfku4HlvaYNCivmnpfku4HmnbANCivmnpfku4vkuIANCivmnpflhYPmgboNCivmnpfljYfmnYMNCivmnpflpKnmsJENCivmnpflv4PlpoINCivmnpflv4PlspoNCivmnpfmlofkuK0NCivmnpfmloflhagNCivmnpfmlofms7MNCivmnpfmlofnp5ENCivmnpfmloflsIYNCivmnpfmlofnpaUNCivmnpfmlofog5wNCivmnpfmlofmlq8NCivmnpfmlofnkKYNCivmnpfmlofpm68NCivmnpfmloflvrcNCivmnpfmlofogaoNCivmnpfmloflqoQNCivmnpfmnIjoi7ENCivmnpfmnKjlhbQNCivmnpfkuJblubMNCivmnpfkuJbmmIwNCivmnpfkuJboirMNCivmnpfkuJbls7ANCivmnpfkuJbkvJ8NCivmnpfkuJbmt4cNCivmnpfkuJbnv5QNCivmnpfkuJblr7ANCivmnpfkuLvmgakNCivmnpfku6XmmagNCivmnpfku5XkvJ8NCivmnpfliqDlhqANCivmnpflj6/pkqcNCivmnpflt6jmt5kNCivmnpflt6fmooUNCivmnpflubPoi5ENCivmnpflvJjljYcNCivmnpflvJjnpaUNCivmnpfmraPkuIANCivmnpfmraPlrpcNCivmnpfmraPlhpsNCivmnpfmraPkvJ8NCivmnpfmraPlh68NCivmnpfmraPnpo8NCivmnpfmsJHln7oNCivmnpfmsLjmmIwNCivmnpfmsLjkv6ENCivmnpfmsLjmuIUNCivmnpfmsLjnpaUNCivmnpfmsLjmo64NCivmnpfmsLjluoYNCivmnpfmsLjmmZ8NCivmnpfnjonlpoINCivmnpfnjonoirMNCivmnpfnjonnjrINCivmnpfnjonkvakNCivmnpfnjonmlY8NCivmnpfnjonlqbcNCivmnpfnjonoj4ENCivmnpfnjonkupENCivmnpfnjonpvpkNCivmnpfnn7PpmoYNCivmnpfnq4vku7sNCivmnpfnq4vkvKYNCivmnpfnq4vkvJ8NCivmnpfnq4vnvqQNCivmnpfnq4vpkasNCivmnpfku7LlqIENCivmnpfku7DmnJsNCivmnpflhYbnm4gNCivmnpflkInkvK8NCivmnpflkI7llK8NCivmnpflpoLmlY8NCivmnpflrofmmJ8NCivmnpflrojlvrcNCivmnpflronnvIcNCivmnpfmnInkv4oNCivmnpfnmb7miawNCivmnpfoh7Pmib8NCivmnpfooYzosKYNCivmnpfkvZHlrokNCivmnpfkvZHnj4oNCivmnpfkvZHlhJINCivmnpfkvZHplLoNCivmnpfkvK/lsrMNCivmnpfkvK/ls7sNCivmnpfkvK/li4sNCivmnpfkvLbotJ4NCivmnpflhYvlqIENCivmnpflhYvlr7ANCivmnpflkYjku7sNCivmnpflkJvlrpwNCivmnpflkJvnjrINCivmnpflkJvnkZwNCivmnpflkJvnv7ANCivmnpflkJ/lp78NCivmnpflnYfpg4ENCivmnpflppnlkJsNCivmnpflppnlqKUNCivmnpflpo3lpqQNCivmnpflrZ3lhagNCivmnpflrZ3lrqoNCivmnpflro/lnaQNCivmnpflro/kuq4NCivmnpflro/pn6YNCivmnpflro/lubINCivmnpflro/ovr4NCivmnpflro/lhJINCivmnpflro/plJwNCivmnpflspDnm4oNCivmnpflu7flkIkNCivmnpflu7fovokNCivmnpflv5fmsJENCivmnpflv5fmiJANCivmnpflv5foia8NCivmnpflv5flv6ANCivmnpflv5fmmI4NCivmnpflv5fmnbANCivmnpflv5foiqwNCivmnpflv5fli4cNCivmnpflv5fnmocNCivmnpflv5fls7ANCivmnpflv5fkvJ8NCivmnpflv5flnZoNCivmnpflv5fmiawNCivmnpflv5fmhY4NCivmnpflv5fosaoNCivmnpflv5fosaoNCivmnpflv5fpk60NCivmnpflv5flhJINCivmnpflv5fpopYNCivmnpflv5fosIsNCivmnpflv5fpvpkNCivmnpflv5fpuL8NCivmnpflv5fpuL8NCivmnpfmnY7pk60NCivmnpfmnZDkv4oNCivmnpfmspvlkJsNCivmnpfmspvok4ENCivmnpfngbzpvpkNCivmnpfnp4DlnaoNCivmnpfnp4DoirENCivmnpfnp4Dkv5ANCivmnpfnp4DnjrINCivmnpfnp4Dnvo4NCivmnpfnp4Dljb8NCivmnpfnp4DnnJ8NCivmnpfnp4Dpm68NCivmnpfnp4Dlh6QNCivmnpfnp4DpopYNCivmnpfnp4DppqgNCivmnpfogrLku5UNCivmnpfogrLmraMNCivmnpfogrLmsJENCivmnpfogrLnlJ8NCivmnpfogrLnq4sNCivmnpfogrLlkI0NCivmnpfogrLlpoINCivmnpfogrLmiJANCivmnpfogrLlro8NCivmnpfogrLmmIANCivmnpfogrLnj4oNCivmnpfogrLov5sNCivmnpfogrLnvqQNCivmnpfogrLokLENCivmnpfogrLok5MNCivmnpfogrLmhacNCivmnpfogrLotKQNCivmnpfogrLplIsNCivmnpfogrLpup8NCivmnpfoia/kv4oNCivmnpfop4HmmI4NCivmnpfosLfls7ANCivmnpfotJ3nj4oNCivmnpfph4znh5UNCivmnpfkuqvng6gNCivmnpfkvp3nm4gNCivmnpfkvp3mtIENCivmnpfkvp3nkocNCivmnpfkvbPnlJ8NCivmnpfkvbPlro8NCivmnpfkvbPoia8NCivmnpfkvbPmgKENCivmnpfkvbPmrKMNCivmnpfkvbPkuq0NCivmnpfkvbPnm4gNCivmnpfkvbPotJ4NCivmnpfkvbPpmbUNCivmnpfkvbPpmLMNCivmnpfkvbPnu64NCivmnpfkvbPok4kNCivmnpfkvbPkur8NCivmnpfkvbPluoYNCivmnpfkvbPmhacNCivmnpfkvbPmhacNCivmnpfkvbPmtIENCivmnpfkvbPojrkNCivmnpfkvbPotKQNCivmnpfkvbPmoaYNCivmnpfkvbPnh5UNCivmnpfkvbPoh7sNCivmnpfkvbPpnZkNCivmnpfkvbPpuL8NCivmnpfkvbPmvZMNCivmnpfkvanlkJsNCivmnpfkvanmgKENCivmnpfkvanoiqwNCivmnpfkvanotJ4NCivmnpfkvanpm68NCivmnpfkvanok4kNCivmnpfkvanok4kNCivmnpfkvanmhacNCivmnpfkvanmoaYNCivmnpfkvanplKYNCivmnpfkvannkocNCivmnpfkvpHpnZINCivmnpflhbbkvq8NCivmnpflhbbplIsNCivmnpfljY/mnZENCivmnpflkoznp4ANCivmnpflnaTnlJ8NCivmnpflnaTpn6YNCivmnpflnaTmooENCivmnpflnaTpnIINCivmnpflpYfmqKENCivmnpflrZ/ku5UNCivmnpflrZ/lkJsNCivmnpflrZ/kuq0NCivmnpflrZ/okLENCivmnpflrZ/lvrcNCivmnpflrZ/otKQNCivmnpflrZ/popYNCivmnpflrZ/okbMNCivmnpflraPoi5cNCivmnpflraPng6gNCivmnpflrpflu7cNCivmnpflrpfpoboNCivmnpflrpfkur8NCivmnpflrpfluoYNCivmnpflrpfotKQNCivmnpflrpfovokNCivmnpflrpfms70NCivmnpflrpfosJ8NCivmnpflrpjpgLgNCivmnpflrpzlkJsNCivmnpflrpznjqsNCivmnpflrpznj40NCivmnpflrpzlnKMNCivmnpflrpzok4kNCivmnpflrpzmhacNCivmnpflrpzotKQNCivmnpflrpzmoaYNCivmnpflrpzpk64NCivmnpflrpzpnZkNCivmnpflrpzok4ENCivmnpflrpwNCivmnpflrpvnkZwNCivmnpflrpvmoaYNCivmnpflsJroia8NCivmnpflsJrpopYNCivmnpflsrHok4kNCivmnpflsrHono0NCivmnpflsrPku6oNCivmnpflsrPltpkNCivmnpflubjok4kNCivmnpfluprnq4sNCivmnpflvoHljasNCivmnpflv6DlsrMNCivmnpflv6DluoYNCivmnpfmgKENCivmnpfmgKHmsZ0NCivmnpfmgKHkvLYNCivmnpfmgKHliKkNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlnYcNCivmnpfmgKHnp4ANCivmnpfmgKHovrANCivmnpfmgKHoirMNCivmnpfmgKHpnZINCivmnpfmgKHojokNCivmnpfmgKHoj4ENCivmnpfmgKHokLENCivmnpfmgKHlrr0NCivmnpfmgKHlhJINCivmnpfmgKHnpL0NCivmnpfmib/lsrMNCivmnpfmib/mr4UNCivmnpfkuo7lpq4NCivmnpfmmJPnj4oNCivmnpfmmIzlvJgNCivmnpfmmIzotKQNCivmnpfmmIbnlLANCivmnpfmmIbmqKENCivmnpfmmIbnhYcNCivmnpfmmI7nlJ8NCivmnpfmmI7lv5cNCivmnpfmmI7lrpcNCivmnpfmmI7mnbANCivmnpfmmI7lvaYNCivmnpfmmI7ojokNCivmnpfmmI7mnqsNCivmnpfmmI7lv5cNCivmnpfmmI7lvrcNCivmnpfmmI7mr4UNCivmnpfmmI7nuqwNCivmnpfmmI7ovokNCivmnpfmmI7li4sNCivmnpfmmI7njq8NCivmnpfmmIDpvpkNCivmnpfljYfmsLgNCivmnpfljYfpvpkNCivmnpfkuJzojIINCivmnpfkuJzmr4UNCivmnpfmnbDmrKMNCivmnpfmnb7lsKcNCivmnpfmrKPnq4sNCivmnpfmrKPmgKENCivmnpfmrKPmgKENCivmnpfmrKPmgKENCivmnpfmrKPmlL8NCivmnpfmrKPmhYgNCivmnpfmrKPku6oNCivmnpfmrKPku6oNCivmnpfmrKPmr4UNCivmnpfmrKPosIoNCivmnpfmrKPpopYNCivmnpfmrKPkuL0NCivmnpfmrabosJoNCivmnpfms5PlkJsNCivmnpfms7Hnp4ANCivmnpfniaflj7ANCivmnpfnjp/lkJsNCivmnpfnjp/lpo8NCivmnpfnjqvlkJsNCivmnpfnjqvok4kNCivmnpfnp4nms5MNCivmnpfnp4nojrkNCivmnpfoirPkuIANCivmnpfoirPlpoINCivmnpfoirPlpoINCivmnpfoirPlt54NCivmnpfoirPoirMNCivmnpfoirPmlrANCivmnpfoirPku6oNCivmnpfoip3ljYkNCivmnpfoip3lroENCivmnpfoiqzoirMNCivmnpfoirjmmZYNCivmnpfoirfnraANCivmnpfph5Hku5UNCivmnpfph5HmmI4NCivmnpfph5HojrINCivmnpfph5HpvpkNCivmnpfplb/lv5cNCivmnpfplb/luoYNCivmnpfpm6jlhpwNCivmnpfpnZLlv5cNCivmnpfpnZLmhacNCivmnpfpnZLpnJ4NCivmnpfkuq7ku4ENCivmnpfkv6HlhagNCivmnpfkv6HkvZENCivmnpfkv6Hlro8NCivmnpfkv6Hlu7cNCivmnpfkv6Hlu7YNCivmnpfkv6HkuYkNCivmnpfkv53miJANCivmnpfkv4rku7INCivmnpfkv4rlrocNCivmnpfkv4rkvZENCivmnpfkv4rkvK8NCivmnpfkv4rlro8NCivmnpfkv4rlro8NCivmnpfkv4rlu7cNCivmnpfkv4rnlKsNCivmnpfkv4rnlLcNCivmnpfkv4roqIANCivmnpfkv4rmnbANCivmnpfkv4rmnbANCivmnpfkv4rpgLgNCivmnpfkv4rovr4NCivmnpfkv4rosaoNCivmnpfkv4rprYENCivmnpfkv4rotKQNCivmnpfkv4rpup8NCivmnpfkv5Dkuq0NCivmnpfkv57lop4NCivmnpflhqDlrocNCivmnpflhqDlkJ8NCivmnpflhqDlro8NCivmnpflhqDnp4ANCivmnpflhqDnkZsNCivmnpflhqDlhJINCivmnpfli4fmiJANCivmnpfljZflro8NCivmnpflk4HlrpwNCivmnpflpZXmiJANCivmnpflpZXkvLYNCivmnpflpZXnp4ANCivmnpflpZXlspoNCivmnpflpY7lkJsNCivmnpflp7/kvLYNCivmnpflp7/lkL4NCivmnpflp7/lppkNCivmnpflp7/lqbcNCivmnpflqIHlkI0NCivmnpflqIHliKkNCivmnpflqIHlu7cNCivmnpflqIHoia8NCivmnpflrqPku7sNCivmnpflrqPps4wNCivmnpflu7rkuIANCivmnpflu7rku7INCivmnpflu7rlrocNCivmnpflu7rmiJANCivmnpflu7rlkL4NCivmnpflu7rlro8NCivmnpflu7rlro8NCivmnpflu7rlu7cNCivmnpflu7rlv5cNCivmnpflu7rnlLcNCivmnpflu7roia8NCivmnpflu7rpgqYNCivmnpflu7rljYcNCivmnpflu7rljY4NCivmnpflu7rlvbANCivmnpflu7rojrkNCivmnpflu7rli4sNCivmnpflvabmlocNCivmnpflvablkI0NCivmnpflvabkuqgNCivmnpflvabkvLYNCivmnpflvablrZ0NCivmnpflvablro8NCivmnpflvabnlKsNCivmnpflvabkuqsNCivmnpflvablmIkNCivmnpflvablhbQNCivmnpfmgJ3lkJ8NCivmnpfmgJ3ljY4NCivmnpfmgJ3kurINCivmnpfmgZLnoZUNCivmnpfmgarnvqQNCivmnpfmlL/kvY0NCivmnpfmlL/oia8NCivmnpfmlL/mtakNCivmnpfmlL/oo5UNCivmnpfmlL/ku6oNCivmnpfmlL/nuqwNCivmnpfmlL/plIsNCivmnpfmlL/nv7ANCivmnpfmmKXlubQNCivmnpfmmKXnvo4NCivmnpfmmK3lrocNCivmnpfmmK3lv5cNCivmnpfmmK3pk60NCivmnpfmmKDmsZ0NCivmnpfmmJ/mmagNCivmnpfmmLHlkJsNCivmnpfmmLHkvJ8NCivmnpfmn5HmnY8NCivmnpfmn4/lt54NCivmnpfmn4/kvLgNCivmnpfmn4/lro8NCivmnpfmn4/mnZENCivmnpfmn4/ln44NCivmnpfmn4/ojaMNCivmnpfmn4/nv7ANCivmnpfms4nmtIsNCivmnpfmtKrpnIQNCivmnpfkuLrmlocNCivmnpfngrPnhYwNCivmnpfnj4rlpoINCivmnpfnjrLoh7MNCivmnpfnj43lpoINCivmnpfnmofliKkNCivmnpfnm4jmiJANCivmnpfnm4jlkJsNCivmnpfnm4jlv5cNCivmnpfnm4jokLENCivmnpfnpYjlnYcNCivmnpfnp5Hlro8NCivmnpfnp4voia8NCivmnpfnp4vmg6ANCivmnpfnp4voj4oNCivmnpfnp4vojrINCivmnpfnuqrlhYMNCivmnpfnvo7lpoINCivmnpfnvo7kvLYNCivmnpfnvo7lkJsNCivmnpfnvo7lkJ8NCivmnpfnvo7np4ANCivmnpfnvo7mgKENCivmnpfnvo7njrINCivmnpfnvo7nj6ANCivmnpfnvo7mmboNCivmnpfnvo7ljY4NCivmnpfnvo7mhacNCivmnpfnvo7pvoQNCivmnpfnvr/lpo8NCivmnpfoh7TlkJsNCivmnpfoh7TpopYNCivmnpfojILnm5sNCivmnpfoi7HnlLcNCivmnpfoi7HmnbANCivmnpfoi7Hpk60NCivmnpfombnlpoINCivmnpfombnlro8NCivmnpfotJ4NCivmnpfotJ7lu7YNCivmnpfpg4HmlocNCivmnpfpg4HmrKMNCivmnpfpg4HoiqwNCivmnpfpg4HmlY8NCivmnpfpg4Hmo64NCivmnpfpg4Hpm4QNCivmnpfpg4HlhbANCivmnpfpn6bkuJ4NCivmnpfpn6blu7cNCivmnpfpn6blmIkNCivmnpfpppnlkJsNCivmnpflgI3kvIoNCivmnpflgKnlpoINCivmnpflgKnmhacNCivmnpfkv67msJENCivmnpfkvKbml60NCivmnpfljp/lkIgNCivmnpflk7LmsJENCivmnpflk7Lku7sNCivmnpflk7Llro8NCivmnpflk7Loo5UNCivmnpflk7LovokNCivmnpflqJ/lpoINCivmnpflqInlrZwNCivmnpflrrblvJgNCivmnpflrrblvJgNCivmnpflrrbnlJ8NCivmnpflrrblpoINCivmnpflrrbkuqgNCivmnpflrrbli4cNCivmnpflrrbmg6ANCivmnpflrrbmmZYNCivmnpflrrblnKMNCivmnpflrrbnpa8NCivmnpflrrbpk60NCivmnpflrrbluoYNCivmnpflrrbotKQNCivmnpflrrbolZkNCivmnpflrrbmlowNCivmnpflrrnku54NCivmnpflrrnlnKMNCivmnpflsZXlnKMNCivmnpfls7vmmZYNCivmnpfls7DlubQNCivmnpfluIjnvqQNCivmnpfluq3njq4NCivmnpfmganlhYkNCivmnpfmganpnIgNCivmnpfmjK/mtakNCivmnpfmjK/ml7gNCivmnpfmjK/mu6gNCivmnpfml7bmlrANCivmnpfmmYvlhagNCivmnpfmmYvnlb8NCivmnpfmmY/lpoINCivmnpfmmY/nqJoNCivmnpfkuablvJgNCivmnpfkuabogb8NCivmnpfkuabmpbcNCivmnpfkuabmr4UNCivmnpfkuabms70NCivmnpfmoZPotYsNCivmnpfmoYLnj6ANCivmnpfmoLzlpoMNCivmnpfms7DlrokNCivmnpfms7Dnu7QNCivmnpfmtZrmnbANCivmnpfmtannvqQNCivmnpfkvanlpoINCivmnpfkvanoj4ENCivmnpfkvanlhJINCivmnpfnm4rlvJgNCivmnpfnm4rlpoINCivmnpfnm4rov5ANCivmnpfnnJ/nu64NCivmnpfnpZDnpr4NCivmnpfnpZDmpoYNCivmnpfnpZDnkYQNCivmnpfnqojmhI8NCivmnpfntKDlpoINCivmnpfntKDotJ4NCivmnpfntKDljY4NCivmnpfnuq/lpoINCivmnpfnuq/muZgNCivmnpfogJjlvrcNCivmnpfogL/lvJgNCivmnpfogL/nnJ8NCivmnpfojLUNCivmnpfotbfnv44NCivmnpfovanpookNCivmnpfpq5jmupANCivmnpfkvJ/msJENCivmnpfkvJ/lvawNCivmnpfkvJ/moaINCivmnpfkvJ/lvrcNCivmnpflgaXpnZINCivmnpfllK/lh68NCivmnpflm73mrKMNCivmnpflm73npaUNCivmnpflm73pmoYNCivmnpflm73li4sNCivmnpfln7nlsKcNCivmnpflqYnlkJsNCivmnpflqYnlqbcNCivmnpflqYnnkZwNCivmnpfltIflrocNCivmnpfltIfmr4UNCivmnpflurflroENCivmnpflkK/kuroNCivmnpflkK/oiKoNCivmnpflkK/kuLANCivmnpfmlY/oo5UNCivmnpfmooXpmYcNCivmnpfmuIXlkIkNCivmnpfmuIXkupENCivmnpfmt5HlkJsNCivmnpfmt5HoiqwNCivmnpfmt5HnjrINCivmnpfmt5HotJ4NCivmnpfmt5HlqJ8NCivmnpfmt5HlqKUNCivmnpfmt5HmooUNCivmnpfmt5HlqpsNCivmnpfmt5Hmg6ANCivmnpfmt5HokI0NCivmnpfmt5HljY4NCivmnpfmt5Hpm68NCivmnpfmt5Hku6oNCivmnpfmt5Hpk64NCivmnpfmtrXnkZwNCivmnpfnm5vmnbANCivmnpfojpjmgKENCivmnpfojbfoirMNCivmnpfpm6rokI0NCivmnpfmnbDlnKMNCivmnpfliJsNCivmnpfog5zmnbANCivmnpfljZrpmoYNCivmnpflqbcNCivmnpflr4znvo4NCivmnpfmg6DmlocNCivmnpfmg6DmgKENCivmnpfmg6Dnvo4NCivmnpfmg6DmlY8NCivmnpfmg6DokI0NCivmnpfmg6Dpm68NCivmnpfmg6DnkIcNCivmnpfmlabnhYwNCivmnpfmma/msJENCivmnpfmma/msJsNCivmnpfmmbrog70NCivmnpfmmbrmuIUNCivmnpfmmbrkuJoNCivmnpfmnJ8NCivmnpfmo67nlLANCivmnpfmuK/otLUNCivmnpfmuZjmg6ANCivmnpfmubLoiJINCivmnpfnkKblm70NCivmnpfnmbvlsbENCivmnpfntKvoj4ENCivmnpfoiJLmhacNCivmnpfljY7kuIANCivmnpfop4blsIoNCivmnpflko/nv5QNCivmnpfotoUNCivmnpfpgLjmmIANCivmnpfpgLjls7ANCivmnpfpgLjoj4ENCivmnpfpgLjlhJINCivmnpfov5vnm4oNCivmnpfpkqfpmbYNCivmnpfpm4HmlY8NCivmnpfpm4XlkJsNCivmnpfpm4XoiqwNCivmnpfpm4XnjrINCivmnpfpm4XkvKYNCivmnpfpm4Xmt7MNCivmnpfpm4XljZoNCivmnpfpm4Xmg6ANCivmnpfpm4XnkKoNCivmnpfpm4XokI0NCivmnpfpm4XljY4NCivmnpfpm4Xpm68NCivmnpfpm4XmhacNCivmnpfpm4XmhacNCivmnpfpm4XosKYNCivmnpfpm6/lrqMNCivmnpfkupHmraMNCivmnpfpobrlrokNCivmnpfpobrlhbQNCivmnpfli6Tmt5kNCivmnpfltanlsbENCivmnpfmhI/kvKYNCivmnpfmhI/ohb4NCivmnpfniLHmg6ANCivmnpfmlazmlocNCivmnpfmlazmuIoNCivmnpfmlaznv5QNCivmnpfmlrDlh6ENCivmnpfmlrDlj5ENCivmnpfmmZbnmpMNCivmnpfmpaDmo4sNCivmnpfmrr/kuIANCivmnpfmr5Pnj4oNCivmnpfmr5PotoUNCivmnpfmupDmsrMNCivmnpfnhafnlLcNCivmnpfnhZzluq0NCivmnpfnhYzovakNCivmnpfnhJXpkqYNCivmnpfnkZ7mmI4NCivmnpfnkZ7lrrYNCivmnpfnkZ7pm6oNCivmnpfnkZ7lvrcNCivmnpfnkZ7lhbANCivmnpfnkZzojokNCivmnpfnm5/mnbANCivmnpfnpbrli4sNCivmnpfnqJrmiawNCivmnpfnu4/nu7QNCivmnpfkuYnls7ANCivmnpfkuYnmnbANCivmnpfkuYnmmboNCivmnpfkuYnpm4QNCivmnpfnvqTls7ANCivmnpfnvqTogIANCivmnpflnKPmgKENCivmnpflnKPmgakNCivmnpflnKPmnbANCivmnpflnKPmmboNCivmnpflnKPpkqcNCivmnpflnKPogIANCivmnpfoi4fokI0NCivmnpfoo5XmmJUNCivmnpfoo5XlnZoNCivmnpfoo5Xog5wNCivmnpfoo5XoiJwNCivmnpfor5flh6ENCivmnpfor5flgKkNCivmnpfor5fmuIoNCivmnpfor5fpm68NCivmnpfor5foi7kNCivmnpfov5DmtakNCivmnpfpk4nmmboNCivmnpfpm43nv5QNCivmnpfpnZbkv64NCivmnpfpooLljZoNCivmnpfpvI7mpI0NCivmnpflmInnpr4NCivmnpflmInkv6ENCivmnpflmInnj40NCivmnpflmInkvJ8NCivmnpflmInnkKoNCivmnpflmInnvqQNCivmnpflmInmhacNCivmnpflmInpuL8NCivmnpfmjrTlvaYNCivmnpfojaPpkqYNCivmnpfmsYkNCivmnpfmsYnmlowNCivmnpfnnb/ml7gNCivmnpfnoqfmg6ANCivmnpfnoZXlhJINCivmnpfnsr7muZsNCivmnpfnu7Tnj4oNCivmnpfnu7TojokNCivmnpfnv6DokI0NCivmnpfok5PnvpoNCivmnpfosarlvaYNCivmnpfpk63mtLINCivmnpfpk63nhYwNCivmnpfpk63nhpsNCivmnpflh6Tnj40NCivmnpfpvZDolJoNCivmnpfku6rombkNCivmnpflop7lqIENCivmnpflub/kuYkNCivmnpflvrfmmYsNCivmnpfluobljYcNCivmnpfluobok4kNCivmnpfmhaflkJsNCivmnpfmhafmgKENCivmnpfmhafnj4oNCivmnpfmhafnvo4NCivmnpfmhafnj6ANCivmnpfmhafmt7MNCivmnpfmhafokI0NCivmnpfmhafljY4NCivmnpfmhafpm68NCivmnpfmhafkuL0NCivmnpfmhqzoia8NCivmnpfmvoTms70NCivmnpfojrnoirMNCivmnpfnkb7lhbANCivmnpfolJrnjrINCivmnpfljavlnKMNCivmnpfotKTlvpcNCivmnpfpgILkuYsNCivmnpflhJLmsJENCivmnpflrabpmoYNCivmnpflrqrmlL8NCivmnpflv4bmt7MNCivmnpfmmZPlkJsNCivmnpfmmZPoirMNCivmnpfmmZPnjrINCivmnpfmmZPlqbcNCivmnpfmmZPljY4NCivmnpfmmZPlmIkNCivmnpfmmZPlqLgNCivmnpfms73kuYkNCivmnpfnh5XmooUNCivmnpfnkp8NCivmnpfpopYNCivmnpfpopbojokNCivmnpfpopbogaoNCivmnpflhbTpkooNCivmnpfolZnmt4cNCivmnpfosavkuq0NCivmnpfplKbkvLYNCivmnpfplKbpmoYNCivmnpfplKbpuL8NCivmnpfpnZnlkJ8NCivmnpfpnZnlrpwNCivmnpfpnZnmgKENCivmnpfpnZnmgKENCivmnpfpnZnoiqwNCivmnpfpnZnpm68NCivmnpfpnZnku6oNCivmnpfpvpnnlJ8NCivmnpfmh4vlt54NCivmnpfogarku4ENCivmnpfosKblppkNCivmnpfpqo/pgLgNCivmnpfpuL/lkJsNCivmnpfpuL/lvawNCivmnpfpuL/ovr4NCivmnpfpuL/plJwNCivmnpfnpLzlvLoNCivmnpfkuLDoiJwNCivmnpfngJvmlocNCivmnpfnkLzoirMNCivmnpfpn7XlqJ8NCivmnpfkuL3lkJsNCivmnpfkuL3nvo4NCivmnpfkuL3nj6ANCivmnpfkuL3ljY4NCivmnpfkuL3ok4kNCivmnpflrp3np4ANCivmnpfnu6flubMNCivmnpfogIDljZcNCivmnpfolLzmlocNCivmnpflt43pvpkNCivmnpfmh7/lkJsNCivmnpfpup8NCivmnpflpIblrr4NCivmnpfoiorkuqgNCivmnpfml7vpgLgNCivmnpfngoXltZoNCivmnpflp53lnYcNCivmnpfmmLblrokNCivmnpfnj4jlpqQNCivmnpflgKzkuJYNCivmnpfnur7njq4NCivmnpfnkIfpm68NCivmnpfmo6jku7sNCivmnpfnkK7pl7UNCivmnpfnkKznkZwNCivmnpfmmpDluq0NCivmnpfngpzpuL8NCivmnpfnjq7nq6MNCivmnpfnrbHnjrINCivmnpfnrbHoj4ENCivmnpfokKnnh5UNCivmnpfpkrDluq0NCivmnpfpkrDlh68NCivmnpfpkrDmhacNCivmnpfnkofmgKENCivmnpfpnJnnnJ8NCivmnpfpqacNCivmraboia/mlocNCivmrabmlazlkowNCivnpYHkuYnlm70NCivoirHnvr3olocNCivoirHpm4XmlpANCivliJ3oi6Xlh6ENCivpgrXmlofms7ANCivpgrXlv5fkuLANCivpgrXlpZXpkqcNCivpgrXpg4Hmg6ANCivpgrXog5zmt7sNCivpgrXniLHnjp8NCivpgrXmgIDlvrcNCivpgrHkuIDnnJ8NCivpgrHkuo7lgKkNCivpgrHljYPnu64NCivpgrHlo6vmga0NCivpgrHlpKfliJoNCivpgrHlrZDmnqsNCivpgrHlsI/lq5oNCivpgrHku4HmnbANCivpgrHlpKnlro8NCivpgrHmlofnjokNCivpgrHmlofmn48NCivpgrHmlofpkqYNCivpgrHmlofpuL8NCivpgrHkuJbmsJENCivpgrHku5XmnbANCivpgrHlubzlqpoNCivpgrHmraPnpaUNCivpgrHmsLjlmIkNCivpgrHnjonnjrINCivpgrHnq4vlm70NCivpgrHku7Lpn7UNCivpgrHlkI3ku5UNCivpgrHlronlj7ANCivpgrHmnInosIUNCivpgrHlkJvmuIUNCivpgrHlv5flhYkNCivpgrHlv5flvLoNCivpgrHlv5fmlowNCivpgrHnp4Doi7ENCivpgrHnp4DpnZkNCivpgrHoia/mr4UNCivpgrHkvbPmnb4NCivpgrHkvbPpoo0NCivpgrHlrZ/mnIgNCivpgrHlrprpgqYNCivpgrHlu7bpvoQNCivpgrHmgKHkuZQNCivpgrHmgKHnpa8NCivpgrHmmIzoo5UNCivpgrHmmI7nkKoNCivpgrHmrKPmgKENCivpgrHms5PlvbANCivpgrHoirPlrpwNCivpgrHph5HnlJ8NCivpgrHkv6Hnm4oNCivpgrHkv6HovokNCivpgrHkv4rmmIwNCivpgrHkv4rmmboNCivpgrHkv4rojaMNCivpgrHkv4rpnJYNCivpgrHlhqDnkZwNCivpgrHlk4HljY4NCivpgrHlnoLnq6ANCivpgrHlpZXmmI4NCivpgrHlpZXnnb8NCivpgrHlp7/mg6ANCivpgrHlu7rkuK0NCivpgrHlu7ror5oNCivpgrHlu7rpi5ANCivpgrHlvabnkZsNCivpgrHmgJ3lmIkNCivpgrHmlL/mtowNCivpgrHmmK3pkqYNCivpgrHmmLHoh7sNCivpgrHmn4/nkZwNCivpgrHmn4/pnJYNCivpgrHnj4DnpaUNCivpgrHnm4jmo6ANCivpgrHnuqrljY4NCivpgrHnvo7mg6ANCivpgrHnvo7mhacNCivpgrHoh7TpopYNCivpgrHlhpvmtakNCivpgrHpg4Hmt5ENCivpgrHph43lrqoNCivpgrHlk7LnkLMNCivpgrHlrrbotKQNCivpgrHmjK/ls7ANCivpgrHmoYLpk4MNCivpgrHmtanlvbANCivpgrHkvannu64NCivpgrHnuq/njq4NCivpgrHkvJ/kvKYNCivpgrHlgaXpm4QNCivpgrHlm73mga0NCivpgrHlm73mtIENCivpgrHln7nnkZwNCivpgrHlqYnlrIUNCivpgrHlkK/nv5QNCivpgrHmlY/olZkNCivpgrHmuIXpvpkNCivpgrHmt5HlqJ8NCivpgrHmt5HnkLQNCivpgrHmt5HmhacNCivpgrHnu43muqINCivpgrHojonlqbcNCivpgrHlh68NCivpgrHliJvkv60NCivpgrHlr4zmupANCivpgrHmg6DlqKUNCivpgrHmg6Dor5cNCivpgrHmma/okI0NCivpgrHmmbrmnbANCivpgrHmuZjkupENCivpgrHnu5MNCivpgrHlko/mt7MNCivpgrHpgLjnvqQNCivpgrHpm4XoiqwNCivpgrHpm4XojokNCivpgrHpm4Xpm68NCivpgrHpm4XojJwNCivpgrHlnIbmg6ANCivpgrHmlazpm68NCivpgrHmr5PnjrINCivpgrHnhJXmlocNCivpgrHnkZ7mooUNCivpgrHnm5/nkIcNCivpgrHlnKPmlocNCivpgrHlnKPmlowNCivpgrHor5fmuIoNCivpgrHor5fnkIENCivpgrHpnZbpm68NCivpgrHlmInmnbANCivpgrHlmInmhacNCivpgrHnoqfmlr0NCivpgrHnu7TlqYkNCivpgrHpn7bojrkNCivpgrHlvrflh68NCivpgrHmhaflpoINCivpgrHmhaflqbcNCivpgrHnuqzlubMNCivpgrHmmZPnjrINCivpgrHmoJHlm70NCivpgrHpnZnlrpwNCivpgrHpnZnpm68NCivpgrHplLrku4ENCivpgrHkuLDnpaUNCivpgrHnkLzmg6ANCivpgrHnkLzmhacNCivpgrHpn7XlroENCivpgrHkuL3oi7ENCivpgrHlrp3okLENCivpgrHnu6fojrkNCivpgrHolbTpnZkNCivpgrHppqjku6oNCivpgrHpvoTpopANCivpgrHmmL7moZMNCivpgrHmmL7pnJYNCivpgrHlp7Xnu6sNCivpgrHnkKzmt5ENCivpgrHmpL/lh68NCivpgrHnrbHpm68NCivpgrHpkrDmlpANCivpgrHnno0NCivph5Hlo6vkuLoNCivph5HkuqzojaMNCivph5HmmI7ovokNCivph5HmlL/osJoNCivph5Hnj57nkLMNCivph5Hli6QNCivph5Hno4oNCivkvq/lipvnu7QNCivkvq/mloflk7INCivkvq/mraPpuL8NCivkvq/lpoLoiqwNCivkvq/lro/mmIwNCivkvq/np4DlpoINCivkvq/kvbPlhbgNCivkvq/lh73np4ANCivkvq/lsrPlro8NCivkvq/mmIbliqkNCivkvq/mrKPnv7ANCivkvq/kv6HlrocNCivkvq/lkrjku7ANCivkvq/lvabkvLgNCivkvq/mn4/pnZINCivkvq/oh7TkuK0NCivkvq/ntKDkupENCivkvq/muIrpk60NCivkvq/ljZrlhYMNCivkvq/mma/li4sNCivkvq/otLXpvoQNCivkvq/pm4Xpm68NCivkvq/lmInnj40NCivkvq/luobovrANCivkvq/pnZnmsZ0NCivkvq/kuL3mhacNCivkvq/pnIjpnZINCivkv57kvbPlh6ENCivkv57ms4rpnJYNCivkv57og73mlrkNCivkv57pm4XlqbcNCivkv57oiorojZ8NCivlp5zlhYPpkqcNCivlp5zlkI7mgKENCivlp5zlro/ojaMNCivlp5zkvankvLYNCivlp5zmmI7lro8NCivlp5zoip3mgKENCivlp5zlu7rpk60NCivlp5zloInpoo0NCivlp5zlh6/mnbANCivlp5zmmbrpkqcNCivlp5zpm4XlqbcNCivlp5zkuYnmgboNCivlp5zlop7ngqsNCivlp5zmoJHplKYNCivlp5znpLzosaoNCivlp5zml7vlp5cNCivlp5rlj4jmlocNCivlp5rmlrnmtIENCivlp5rnq4vkuIkNCivlp5rlhYvpkqcNCivlp5rlv5flrqoNCivlp5rkvbPmhacNCivlp5rlrpfmnLQNCivlp5rmgKHlhbANCivlp5rph5HmupANCivlp5rlqIHlrocNCivlp5rnm4jku7sNCivlp5rntKDlhbANCivlp5rlh6/mlocNCivlp5rnkJvlr4wNCivlp5rnkZ7otKQNCivlp5rlvrfpup8NCivlp5rkuL3kuroNCivlrqPlv5flh4wNCivlvovmjK/miawNCivmlr3lpKfnu7QNCivmlr3mlocNCivmlr3mlofosaoNCivmlr3lj6/pmoYNCivmlr3njonlk4ENCivmlr3lkI3njqUNCivmlr3lrofpqo8NCivmlr3nmb7moaYNCivmlr3kvK/lrpwNCivmlr3lrZ3lvrcNCivmlr3lro/ms70NCivmlr3lv5fosaoNCivmlr3np4DlrpsNCivmlr3ogrLnkZwNCivmlr3kvbPlkJsNCivmlr3kvanlkJsNCivmlr3kvanljY4NCivmlr3lrZ/lro8NCivmlr3lrpzlkYgNCivmlr3lrpvnm7QNCivmlr3mgKHlpoINCivmlr3mgKHpk4MNCivmlr3mmI7lpo0NCivmlr3mnbDmnb4NCivmlr3njqvlkJsNCivmlr3pm6jkvZANCivmlr3kv4rlkI0NCivmlr3kv4rotKQNCivmlr3lpZXmtrUNCivmlr3lu7rlrocNCivmlr3lvabnlKsNCivmlr3mlL/osaoNCivmlr3mn4/lpoINCivmlr3nmofml60NCivmlr3nvo7nkZsNCivmlr3pg4HolZkNCivmlr3mjK/lnaQNCivmlr3ntKDljb8NCivmlr3lgaXpuL8NCivmlr3mlY/nlLcNCivmlr3mt5Hmg6ANCivmlr3pm6rlp78NCivmlr3ljZrlhYMNCivmlr3lr4zmtakNCivmlr3mg6DnkKoNCivmlr3mmbrli4cNCivmlr3nqIvlh68NCivmlr3lko/nhLYNCivmlr3pkqfkvKYNCivmlr3pm4XlqJ8NCivmlr3pm6/nkKoNCivmlr3kuYnmsqcNCivmlr3lmInnkKoNCivmlr3msYnltZgNCivmlr3lv5fosaoNCivmlr3mhaflkJsNCivmlr3nkb7kvKYNCivmlr3mmZPpm68NCivmlr3pnZnmgKENCivmlr3nkLzlpoINCivmlr3ppqjotLUNCivmlr3ml7vlrpwNCivmlr3njq7nkZwNCivmn6/lipvosaoNCivmn6/lhYPlh68NCivmn6/mlofnpaUNCivmn6/kuJbotKQNCivmn6/msLjlv6ANCivmn6/lhajnm4oNCivmn6/kvK/lvaYNCivmn6/lro/lqIENCivmn6/lv5fmmI4NCivmn6/mspvlv5cNCivmn6/oia/olZkNCivmn6/kvbPnp4ANCivmn6/kvanlkJsNCivmn6/lnaTmmI4NCivmn6/lrpfkvK8NCivmn6/lrpvlkJsNCivmn6/mgKHnjp8NCivmn6/mmI7nv7ANCivmn6/mrKPku6oNCivmn6/ph5HmnY8NCivmn6/kv4rlkIkNCivmn6/kv4rpmoYNCivmn6/lrqPlrocNCivmn6/lvabml60NCivmn6/mmK3nlJ8NCivmn6/nm4jlpoINCivmn6/ombnlpoINCivmn6/ms7DlkI0NCivmn6/mlY/nm5sNCivmn6/mt5Hmg6ANCivmn6/ov57nlLANCivmn6/ljZrlhYMNCivmn6/lr4zorq4NCivmn6/mg6Doj7ENCivmn6/mmbrku4ENCivmn6/mo4vmo6MNCivmn6/pl7XmlocNCivmn6/pm4XljY4NCivmn6/mr5PokI0NCivmn6/lmInmsbYNCivmn6/noqfmmK0NCivmn6/lh6Tku6oNCivmn6/lrqroi40NCivmn6/plKbnlLcNCivmn6/nkLzok6UNCivmn6/ml7voia8NCivmn6XmhafnkLMNCivmn7PlpoLluq0NCivmn7PkvanlkJsNCivmn7Plu7roia8NCivmn7PojLnokI0NCivmn7Pmo4vlhYMNCivmn7PlmInovakNCivmn7PpuaTmnb4NCivmrrXmmI7lro8NCivmrrXpgLjovakNCivmtKrkuIDkuK0NCivmtKrlipvlo7kNCivmtKrkuo7pl7UNCivmtKrljYPmg6ANCivmtKrljYPnkKYNCivmtKrlo6vogrINCivmtKrlo6vmnbANCivmtKrlpKfkuLoNCivmtKrlrZDlqbcNCivmtKrlsI/mg6ANCivmtKrlhYPmlowNCivmtKrmlofmmI4NCivmtKrmloflh68NCivmtKrmlofotKQNCivmtKrkuJbljYcNCivmtKrkuJblmIkNCivmtKrliqDovr4NCivmtKrmraPlhYkNCivmtKrmsLjmmIwNCivmtKrnjonoirMNCivmtKrnjonlqbcNCivmtKrnjonokqgNCivmtKrkuqbmtIENCivmtKrlhYnkur8NCivmtKrlkI3ooaENCivmtKrlronkv5ANCivmtKrnmb7otKQNCivmtKrkvZHljYcNCivmtKrlkJvnpaUNCivmtKrlro/mlL8NCivmtKrlv5fnlJ8NCivmtKrlv5fmmI4NCivmtKrlv5fpm4QNCivmtKrlv5fpk60NCivmtKrmnZHpk60NCivmtKrnp4DoirMNCivmtKrnp4DojrkNCivmtKroia/mrKMNCivmtKrkvp3nkKoNCivmtKrkvbPnkLMNCivmtKrkvankvLYNCivmtKrlnaTplJwNCivmtKrlrZ/nkbYNCivmtKrlrpfmsYkNCivmtKrlrpzoia8NCivmtKrlsJrpk60NCivmtKrlv6DlnKMNCivmtKrmgKHnnJ8NCivmtKrmmI7ljJYNCivmtKrmmI7kvJ8NCivmtKrmmI7pvpkNCivmtKrmrKPljYcNCivmtKroirfmvKoNCivmtKrkv6HlmIkNCivmtKrkv4rpm4QNCivmtKrlrqPnq7kNCivmtKrmgJ3nkKoNCivmtKrmlL/pnIgNCivmtKrmn4/lroENCivmtKrnp4vljY4NCivmtKrnvo7okI0NCivmtKrojILpm4QNCivmtKroi7HmnbANCivmtKrpg4Hluq0NCivmtKrph43ljb8NCivmtKrlrrbnkKoNCivmtKrmgqbnjrINCivmtKrmjK/nm4oNCivmtKrmjK/pk60NCivmtKrmoLnljY4NCivmtKrkvanoirMNCivmtKrkvannu64NCivmtKrogL/mmboNCivmtKrkvJ/lk7INCivmtKrkvJ/mnbANCivmtKrkvJ/osJUNCivmtKrlgaXls7ANCivmtKrmm7znj4oNCivmtKrlm73lk7INCivmtKrlm73mg58NCivmtKrlm73nv5QNCivmtKrlm73ogIANCivmtKrln7nkvKYNCivmtKrlqYnnurkNCivmtKrltIfmgakNCivmtKrmmIblgaUNCivmtKrlvqHlvZcNCivmtKrlkK/kvJ8NCivmtKrmlY/oirMNCivmtKrmlY/pm4QNCivmtKrmuIXlgaUNCivmtKrmt5HotJ4NCivmtKrmt5Hmg6ANCivmtKrmt5Hmt6kNCivmtKrnu43mlocNCivmtKrnv47lrr4NCivmtKrpm6roirMNCivmtKrog5zlh68NCivmtKrmg6DmlocNCivmtKrmg6Dmo4sNCivmtKrmmbTmmbQNCivmtKrmmbrotKQNCivmtKrnkKbmg6ANCivmtKroj4HpmoYNCivmtKroj7HntKsNCivmtKrpmobmmboNCivmtKrpm4Xoi5MNCivmtKrpm4Xpm68NCivmtKrpobrnlLcNCivmtKrmhYjkvLYNCivmtKrmgbrlu7cNCivmtKrmoaLpgqYNCivmtKrmr5Plq5QNCivmtKrnhYzlh68NCivmtKrnkZ7loIINCivmtKrnkZ7ok4kNCivmtKrnkZ7puL8NCivmtKrkuIflvpcNCivmtKrlnKPmgakNCivmtKrokLHplIsNCivmtKroo5XnhJwNCivmtKror5fpm4UNCivmtKrpnZblh68NCivmtKrlmInlnLsNCivmtKrlmInnj4oNCivmtKrlmInnkLMNCivmtKrlmInojrINCivmtKrlmInpqo8NCivmtKrlroENCivmtKrojaPovokNCivmtKrnlIToi6ENCivmtKrnoZXkvJ8NCivmtKrnu64NCivmtKrnu7Toia8NCivmtKrnu7Tms70NCivmtKrogoflvaYNCivmtKrlv5flvLoNCivmtKrpk63kvZANCivmtKrpk63pmLMNCivmtKrpk63plLoNCivmtKrprYHnpqcNCivmtKrlrr3ms7ANCivmtKrluobpk60NCivmtKrmhafnjrINCivmtKrmhafokI0NCivmtKrojrnnj40NCivmtKrlhJLmmI4NCivmtKrmmZPlspoNCivmtKrolZnlv4MNCivmtKrpnZnmgKENCivmtKrlo7Dpk6gNCivmtKrnpLzlkJsNCivmtKroibroj4ENCivmtKrkuL3lp78NCivmtKrkuL3pkqcNCivmtKrnu6fotKQNCivmtKrkv6rlh6QNCivmtKrliq3lhYMNCivmtKrmmaLmg4cNCivmtKrmlozlh68NCivmtKrmrYbmgKENCivmtKrnrbHkvakNCivmtKrpkrDmqLENCivnm7jlrZ/osaoNCivnuqrkurrnjq4NCivnuqrmlofpkqYNCivnuqrlkInlpoINCivnuqrkvK/nkoENCivnuqrlv5fpnJYNCivnuqrkvbPlrpwNCivnuqrlrpfpnJYNCivnuqrmgKHlqbcNCivnuqrms5PlsKcNCivnuqrplb/lhbQNCivnuqrlqIHnvr0NCivnuqrnm4jlt54NCivnuqrnpZbosaoNCivnuqrmt5HoirMNCivnuqrljZrmlY8NCivnuqrmmbrku4ENCivnuqrpkqfpl7MNCivnuqrpobrlhbQNCivnuqrpk63lnaQNCivnuqrmmZPmgakNCivnuqrlhbDmtIENCivog6HkuIHlhYMNCivog6HlsI/okI0NCivog6Hlv4PmhacNCivog6HmlofnkZwNCivog6HkuJbono0NCivog6HmraPnv7ANCivog6HnjonmhacNCivog6HlkIzkuq4NCivog6HmiJDnq6ANCivog6Hlu7flqIENCivog6Hlv5fpk60NCivog6HogrLnu7QNCivog6HkvbPnpa8NCivog6HlrprlrocNCivog6HmgKHoirMNCivog6HkuJzljYcNCivog6HoirPmhYgNCivog6Hph5HngY8NCivog6HluJ0NCivog6HnjrLlqYkNCivog6Hoi6XnlLcNCivog6Hkv67nkYANCivog6HlrrbojaMNCivog6HlsZXpk60NCivog6HmjK/kuK0NCivog6Hkuabnu7UNCivog6Hnuq/oj4ENCivog6HlubLplIsNCivog6Hmjojmt7MNCivog6Hmt5HlkJsNCivog6Hmt5Hpm4UNCivog6Hlh6/mmboNCivog6HljZrnoJoNCivog6Hmg6DlqbcNCivog6Hmma/pm68NCivog6Hmmbrpk60NCivog6Hnq6PnoJoNCivog6HotLXmnIgNCivog6Hpm4Xlpo0NCivog6Hpm4XmmboNCivog6HpobrpmoYNCivog6Hmr5Plj5ENCivog6HnkZ7mtJkNCivog6Hor5foj4ENCivog6HlmInnnJ8NCivog6HnoqflqpwNCivog6Hotavlu7cNCivog6HmhaflpoINCivog6HlrqrpnJYNCivog6HpnZnoi5ENCivog6HnkLzmlocNCivog6HogIDku4ENCivog6Hmh7/lv4MNCivog6Hngpznj40NCivojIPkuK3lqIENCivojIPmlofmlL8NCivojIPkuJbnkosNCivojIPnjonokLENCivojIPlkInluoYNCivojIPlnYfmspsNCivojIPnlKvlrpcNCivojIPkvbPpm68NCivojIPmmI7kuK0NCivojIPlhqDkvJ8NCivojIPlp5zlvablpoINCivojIPlp5zmhafmgKENCivojIPnp4vpnJ4NCivojIPpg4HlpoINCivojIPlrrbor5oNCivojIPmjK/mlocNCivojIPmjK/pup8NCivojIPogJXprYENCivojIPlm73ln7oNCivojIPmt5HnjrINCivojIPojonoi5MNCivojIPljZrlvbANCivojIPmiazlrpwNCivojIPmiazohb4NCivojIPmmbrpkqYNCivojIPpkqfmnbANCivojIPmr5PotJ4NCivojIPnkZ7npaUNCivojIPor5fmvKoNCivojIPmsYnlkJsNCivojIPnurLotKQNCivojIPmhaflpoINCivojIPmmZPmgKENCivojIPngJrmlocNCivojIPogIDogaoNCivojIPnkIfnkocNCivoi5flkI7mnbANCivorqHnq7nlrocNCivpn6bkurrnkZwNCivpn6blv5fpuL8NCivpn6bmoYLku4ENCivlgJnmmLrovrANCivlgKrnjonpvpkNCivlgKrlv5fpuL8NCivlgKrlqIHov5wNCivlgKrkvJ/mmboNCivlgKrmt5HlqbcNCivlgKrnkZ7mnJ8NCivlgKrmhafnj4oNCivlh4zkuJboirMNCivlh4zmmI7lvrcNCivlh4zpm6rmg6ANCivlh4zmhafokI0NCivllJDljYPmg6ANCivllJDmlofotKQNCivllJDmsLjlhbQNCivllJDkvZzosaoNCivllJDpgqbms7ANCivllJDmmI7lv5cNCivllJDmgJ3nu7QNCivllJDoi7HlqJwNCivllJDkvannj4oNCivllJDlm73lv6ANCivllJDmt5HoiqwNCivllJDmnJ3nuqwNCivllJDpm4Xnh5UNCivllJDkuYnlsKcNCivllJDlmInnvpoNCivllJDpn7bpnJkNCivllJDmmZPlvq4NCivllJDoqonnjqsNCivlpI/mraPpgqYNCivlpI/oia/njokNCivlpI/mmKXpppkNCivlpI/mt5Hok4kNCivlpI/ovr7kvJ8NCivlpI/mhafpvoQNCivlpI/nv4rkvKYNCivlrZnkuIrpm68NCivlrZnlo6vng5gNCivlrZnlhYPkv4oNCivlrZnmlrnku6oNCivlrZnlj6/kuLoNCivlrZnmsLjkv6ENCivlrZnnq4vmsJENCivlrZnlpoLlvawNCivlrZnkvK/kuK0NCivlrZnlv5fli4cNCivlrZnogrLoip0NCivlrZnljY/oo5UNCivlrZnlv6Dlh68NCivlrZnmmI7pqo8NCivlrZnph4folocNCivlrZnlu7rltLQNCivlrZnnvo7oi7ENCivlrZnpg4HlqbcNCivlrZnmjK/lh4kNCivlrZnkvanoirMNCivlrZnkvJ/kvKYNCivlrZnlm73kuaYNCivlrZnltIflk7INCivlrZnmg5/mraMNCivlrZnmt5HoiqwNCivlrZnmnbANCivlrZnnkKYNCivlrZnpgLjnh5UNCivlrZnkvKDlh68NCivlrZnmuqLloIINCivlrZnnnabmnbANCivlrZnpgZPpmoYNCivlrZnlmInojasNCivlrZnnurINCivlrZnosarlv5cNCivlrZnpk63puL8NCivlrZnmhafmtKUNCivlrZnlrabku6oNCivlrZnpvpnnv5QNCivlrZnkuL3lqJ8NCivlrZnngpjlrpwNCivlrZnnkYANCivlrqvlp5flp5cNCivluIjlrpzpnZINCivlvpDkuZnlj68NCivlvpDljYPnpZANCivlvpDljYPpm4UNCivlvpDlo6vli4sNCivlvpDlrZDlubMNCivlvpDlrZDlvLoNCivlvpDlsI/okI0NCivlvpDku4HlubINCivlvpDlv4PlrpwNCivlvpDmloflkJsNCivlvpDmlofnm4oNCivlvpDmnIjlqKUNCivlvpDkuJbln7oNCivlvpDku5Xms5MNCivlvpDlt6flh4wNCivlvpDmraPmgKENCivlvpDmsLjlhYkNCivlvpDmsLjpuKMNCivlvpDnjonoiqwNCivlvpDnjonmhYgNCivlvpDnq4vovr4NCivlvpDlhYnlubMNCivlvpDljKHlubMNCivlvpDlpoLljYcNCivlvpDmnInluoYNCivlvpDoib7kvLYNCivlvpDlhYvpkqcNCivlvpDlro/lrocNCivlvpDlv5flrocNCivlvpDlv5fkvJ8NCivlvpDlv5fosaoNCivlvpDmnY7lhagNCivlvpDnp4DnjrINCivlvpDogrLmhYgNCivlvpDkvbPlpoINCivlvpDkvanlpoINCivlvpDkvanplKYNCivlvpDlrpfmupANCivlvpDlv6DkuYkNCivlvpDmmIbnvr8NCivlvpDmmI7ljY4NCivlvpDmmI7puL8NCivlvpDmnb7puL8NCivlvpDmrKPlpo8NCivlvpDnn6XmnKwNCivlvpDph4folocNCivlvpDkv6HkuK0NCivlvpDkv4rmnbANCivlvpDlpZXmmZYNCivlvpDmgJ3nu7QNCivlvpDmn4/pn6wNCivlvpDnvo7njokNCivlvpDnvo7ljY4NCivlvpDoi6XppqgNCivlvpDoi7HnoZUNCivlvpDpg4HmoaYNCivlvpDlrrbmpbcNCivlvpDmjK/mtLINCivlvpDkuabmlL8NCivlvpDmtZrmnbANCivlvpDkvannpa8NCivlvpDkvJ/lh6ENCivlvpDkvJ/ls7sNCivlvpDkvJ/poboNCivlvpDlgaXpoboNCivlvpDlm73kvKYNCivlvpDlm73mmboNCivlvpDlm73ogIANCivlvpDln7nmurYNCivlvpDlqYnku6oNCivlvpDmmIbku5ENCivlvpDku47or7ANCivlvpDmlY/oirMNCivlvpDmlY/ljY4NCivlvpDmooXlh4wNCivlvpDmt5HlqJ8NCivlvpDmt5Hlq5QNCivlvpDnpaXnhLYNCivlvpDojonnnJ8NCivlvpDpm6rnkLwNCivlvpDlr4zlurcNCivlvpDmg6Dnj40NCivlvpDmjoznkZsNCivlvpDmnJ3lurcNCivlvpDoiJLkupoNCivlvpDlko/lqpsNCivlvpDov5vlrp0NCivlvpDpm4Xmo4sNCivlvpDpobrlro8NCivlvpDniLHlqbcNCivlvpDmr5Poia8NCivlvpDnkZrplYENCivlvpDnkZ7mga0NCivlvpDnkZ7ogaoNCivlvpDnkZzmlY8NCivlvpDoo5XlvawNCivlvpDotYTor4ENCivlvpDpnZbmg6ANCivlvpDlmInlro8NCivlvpDlmInnkLMNCivlvpDlmInpqbkNCivlvpDmoqbpup8NCivlvpDojaPovrANCivlvpDnlITpuL8NCivlvpDnpo/npaUNCivlvpDnu7TmiawNCivlvpDnv6DpgaUNCivlvpDpk63kvZsNCivlvpDpk63osKYNCivlvpDlh6Tlv4YNCivlvpDlvrfotKQNCivlvpDmhaflv4MNCivlvpDmhaflqbcNCivlvpDmr4Xlro8NCivlvpDpnIfkuJwNCivlvpDmmZPnraANCivlvpDlhbTmt6YNCivlvpDpnZnku6oNCivlvpDpuL/ku4ENCivlvpDotZ7nmbsNCivlvpDkuL3nj40NCivlvpDnu6fmlL8NCivlvpDmqLHoirMNCivlvpDmt68NCivlvpDoj6HnpqcNCivlvpDnjq7oiqwNCivlvpDnrbHoirgNCivlvpDpkrDnu6sNCivlvpDpkavosaoNCivkuabnmb7lt50NCivmoZHmgKHnp4sNCivmn7TlraboiJwNCivmrrfoirfoi6UNCivmrrfnu43pl7UNCivmrrfogofpmLMNCivmtabmmZPlh6QNCivnlZnlubLnhJwNCivnpZbmmZPlh6QNCivnp6bkuIDlubMNCivnp6blronnq4sNCivnp6blu7rnjq4NCivnp6bmopPpk60NCivnp6blnKPmnbANCivnp6bkuL3pm4UNCivnv4Hkuo7nkKoNCivnv4Hlo6vovakNCivnv4HlrZDlqbcNCivnv4HmlofojLkNCivnv4Hku6Xlk7INCivnv4HnjonlqJ8NCivnv4Hku7LotKQNCivnv4Hlrofpqo8NCivnv4Hlro/pnJYNCivnv4Hlv5fosaoNCivnv4HogrLnqJQNCivnv4HkvbPpn7UNCivnv4Hlrpfoo5UNCivnv4HmmI7lrokNCivnv4Hmnpfpk6QNCivnv4Hkv6Hlj7ANCivnv4Hmn4/lnKMNCivnv4Hoi7HmlowNCivnv4HmjK/oirMNCivnv4HkvanmgKENCivnv4HkvJ/kvKYNCivnv4HlgaXnuqwNCivnv4Hln7rmuIUNCivnv4HltIfluq0NCivnv4HlkK/kv6ENCivnv4HmmajogIANCivnv4Hmt5HljY4NCivnv4Hlo7nlp78NCivnv4Hmu4vkvakNCivnv4HpgLjovakNCivnv4Hpm4Xmg6ANCivnv4Hmr5Pnv44NCivnv4HnkZ7nvpoNCivnv4HkuYnlrpcNCivnv4HpvI7mmIwNCivnv4HlmInnv44NCivnv4HmoqblkJsNCivnv4Hnoqflo5UNCivnv4Hnu7Toia8NCivnv4Hpk63pgIoNCivnv4Hlvrfljb8NCivnv4HmmZPoiqwNCivnv4HpnZnnkZwNCivnv4HpupLmmIwNCivnv4Hkv6rlgKkNCivnv4Hnjq7lqJ8NCivnv4HpnZPmmY8NCivojYbkvJ/mlL8NCivoooHlpKnoi7ENCivoooHlpoLlhogNCivoooHmgKHojLkNCivoooHmn4/kvJ8NCivoooHkvJ/kvKYNCivoooHlkK/pkasNCivoooHpm4Xmg6ANCivoooHojaPngb8NCivoooHpnZnljY4NCivorrDkvbPpm68NCivpg53mlL/puL8NCivpqazkuIDmlocNCivpqazkuK3pqoUNCivpqazljaDls7ANCivpqaznjonlqJ8NCivpqazlronlpq4NCivpqazlv5fmmI4NCivpqazkvbPkvLYNCivpqazlsrPlro8NCivpqazljZfmrKMNCivpqazoi7HmnbANCivpqazkvanlqbcNCivpqazlm73olb4NCivpqazmt5Hljb8NCivpqazmmbrlkJsNCivpqaznhYzlnaQNCivpqazlmInpmoYNCivpqaznu6rlt50NCivpqazlv4blqbcNCivpqazmqLHoj4ENCivpq5jkuIDpk60NCivpq5jljYPmg6ANCivpq5jlo6vmmI4NCivpq5jlrZDmt4cNCivpq5jlsI/mlocNCivpq5jlj4vmhacNCivpq5jmloflvawNCivpq5jkuJbmmIwNCivpq5jkuLvlvLoNCivpq5jlvJjlt54NCivpq5jmraPlm70NCivpq5jnjonlpoINCivpq5jnjonppqgNCivpq5jkvIrkv4oNCivpq5jlkIjliqkNCivpq5jml63luoYNCivpq5joh7Plrr0NCivpq5jlro/pk60NCivpq5jlv5fkvJ8NCivpq5jlv5fprYENCivpq5jnp4Dpk4MNCivpq5jkuprlhbANCivpq5jkvanlkJ8NCivpq5jlpq7njq4NCivpq5jlrpfngpwNCivpq5jlubjnkZwNCivpq5jmmI4NCivpq5jmmI7njq4NCivpq5jmrKPmtIENCivpq5jph5Hlv5cNCivpq5jlkrjlrp4NCivpq5jlvabli4sNCivpq5jmn4/osaoNCivpq5jnvo7oirMNCivpq5joi7Hlh68NCivpq5jpg4Hlh68NCivpq5jls7ANCivpq5jmoKkNCivpq5jkvannu64NCivpq5jkvJ/kvKYNCivpq5jlgaUNCivpq5jlm73lk7INCivpq5jlm73lroENCivpq5jln7nnnJ8NCivpq5jlvazljp8NCivpq5jlkK/npZANCivpq5jmlY/lqIkNCivpq5jmt5HoirMNCivpq5jmt5Hmg6ANCivpq5jnrJnovoUNCivpq5jpm6rljb8NCivpq5jlqbcNCivpq5jmma/mgKENCivpq5jnkKroiJINCivpq5jlko/lvaYNCivpq5jpm4XoirMNCivpq5jpm4XohbkNCivpq5jmhI/npa8NCivpq5jmr5PovrANCivpq5jnhafpl7UNCivpq5jnkZ7nkbYNCivpq5jkuYnlv6ANCivpq5jor5flqIkNCivpq5jpooLmuIUNCivpq5jlmInoia8NCivpq5jlmInlsb8NCivpq5jlvbDpmoYNCivpq5jnnb/lhbANCivpq5jnq6/njqsNCivpq5jnv6Dnv44NCivpq5jpk7bnqZcNCivpq5jpk63mnbANCivpq5jpk63nkIcNCivpq5jku6rpk60NCivpq5jluobmlowNCivpq5jmhafokI0NCivpq5jlv4blpoINCivpq5jpnZnmsJENCivpq5jolofolocNCivpq5josLHkvKYNCivpq5jkuL3olZkNCivpq5jpoqLlk7INCivpq5jmlozpkasNCivpq5jnrbHmhacNCivpq5jolo/mtrUNCivllYblvJjmmJMNCivllYblh6Toi7ENCivlr4fkuL3pm68NCivltJTkvZHnu7QNCivltJTlgKnoi5MNCivltJTnkKbmsJENCivluLjmrKPnjokNCivlurfkuYPmnIgNCivlurfku5XlrpcNCivlurflroflroENCivlurfmlLjljY4NCivlurflrZ/mhI8NCivlurfph5HplIsNCivlurfnvo7njrINCivlurflrrblvbANCivlurfluq3nkZ4NCivlurfphY3lrrkNCivlurfmnbDmsJENCivlurfmmbrljYcNCivlurfnmbvmnbANCivlurfpm4XlqbcNCivlurfnqJrml7gNCivlurflmInlhbANCivlurfmmZPolZkNCivlurfkuL3otJ4NCivlvKANCivlvKDkuIDpuL8NCivlvKDkuYPmlocNCivlvKDkuYPkvJ8NCivlvKDlipvku4ENCivlvKDlipvlpKsNCivlvKDlj4jljYMNCivlvKDlj4jniZkNCivlvKDljYPph4wNCivlvKDlo6votKQNCivlvKDlrZDmmIwNCivlvKDlsI/okI0NCivlvKDkuK3olocNCivlvKDlsLnppqgNCivlvKDku4HmnbANCivlvKDku4HmnbANCivlvKDku4HogaoNCivlvKDlhYMNCivlvKDlhYPpmoYNCivlvKDlhYPpuL8NCivlvKDlj4sNCivlvKDlpKnlh6QNCivlvKDlsKTlrZANCivlvKDlv4PmgKENCivlvKDlv4PnkZwNCivlvKDlv4PppqgNCivlvKDmlofogrINCivlvKDmlofmmI4NCivlvKDmloflvaYNCivlvKDmlofnjrINCivlvKDmlofovakNCivlvKDmlofpkqYNCivlvKDmlofpm68NCivlvKDmlofojaMNCivlvKDmlofosaoNCivlvKDmlofmqLUNCivlvKDmlofngokNCivlvKDmlofohb4NCivlvKDmnIjlrrkNCivlvKDkuJbkuK0NCivlvKDkuJblsrMNCivlvKDkuJbmmI4NCivlvKDkuJboiqwNCivlvKDkuJbpm68NCivlvKDkuJblhJINCivlvKDkuJblo44NCivlvKDku6XlhagNCivlvKDku5XogrINCivlvKDku5Xml7sNCivlvKDliqDljYcNCivlvKDlj6/mrKMNCivlvKDlpK7mmIwNCivlvKDlt6fnjrINCivlvKDlubznjq4NCivlvKDlvJjms7ANCivlvKDlv4XmmI4NCivlvKDmraPkvZkNCivlvKDmraPlv6ANCivlvKDmraPmnbANCivlvKDmraPpmoYNCivlvKDmraPljasNCivlvKDmraPnjpcNCivlvKDmsLjmnZANCivlvKDmsLjmmIYNCivlvKDmsLjkv4oNCivlvKDmsLjmo4sNCivlvKDmsLjli4sNCivlvKDnjoTpuL8NCivlvKDnjonmrKMNCivlvKDnjonnjrINCivlvKDnjonnkKoNCivlvKDnjonok4kNCivlvKDnjonml7sNCivlvKDnq4vmlocNCivlvKDnq4vmrKMNCivlvKDnq4vpkqcNCivlvKDnq4vnuqwNCivlvKDkuqblroENCivlvKDku7LlubMNCivlvKDku7Lpk6gNCivlvKDlhYnku4ENCivlvKDlhYnkvJ8NCivlvKDlhYbln58NCivlvKDljKHmnbANCivlvKDlkInkuLANCivlvKDlpb3npLwNCivlvKDlpoLojrkNCivlvKDlrofnq6MNCivlvKDlronlpq4NCivlvKDlvI/oia8NCivlvKDml63lrpcNCivlvKDms5vpqpANCivlvKDnvr3mtIENCivlvKDoh7Pnnb8NCivlvKDoib7pk4MNCivlvKDkvZHmsJENCivlvKDkvZHnvqQNCivlvKDkvZzmiJANCivlvKDkvK/pqo8NCivlvKDlhYvkvJ8NCivlvKDlkJvlpoINCivlvKDlkJvnkZwNCivlvKDlkJ/mhYgNCivlvKDlppnmhacNCivlvKDlrovokI0NCivlvKDlro/mmKUNCivlvKDlro/nkZ4NCivlvKDlro/pk60NCivlvKDluIzlnKMNCivlvKDlv5cNCivlvKDlv5fku7ANCivlvKDlv5flrocNCivlvKDlv5foiJ8NCivlvKDlv5fmmI4NCivlvKDlv5fkvJ8NCivlvKDlv5flnZoNCivlvKDlv5fnpaUNCivlvKDlv5fnkLMNCivlvKDlv5fmupANCivlvKDlv5fovr4NCivlvKDlv5fosaoNCivlvKDlv5fosaoNCivlvKDlv5fosaoNCivlvKDlv5fpk60NCivlvKDlv5fpuL8NCivlvKDlv5fnkYQNCivlvKDmsoXnjroNCivlvKDnp4DnjokNCivlvKDnp4Dnj40NCivlvKDnp4DnkKoNCivlvKDnp4Dok4kNCivlvKDogrLlubMNCivlvKDogrLltKcNCivlvKDogrLoj4ENCivlvKDogrLmhY4NCivlvKDogrLor5oNCivlvKDogrLlvbANCivlvKDogrLnurYNCivlvKDogrLpk6gNCivlvKDogrLnjq4NCivlvKDoia/mupANCivlvKDpgpHlpoINCivlvKDkuprooZQNCivlvKDkvbPmlocNCivlvKDkvbPpn7MNCivlvKDkvbPmg6ANCivlvKDkvbPpm68NCivlvKDkvbPok4kNCivlvKDkvanluIYNCivlvKDkvannkZsNCivlvKDlj5Tnvo4NCivlvKDlrZ/njokNCivlvKDlrZ/lqbcNCivlvKDlrpfku4ENCivlvKDlrpfotKQNCivlvKDlrpzmlrANCivlvKDlsJrpkqcNCivlvKDlu7bku7sNCivlvKDlv7XmhYgNCivlvKDmgKHmrKMNCivlvKDmgKHojokNCivlvKDmgKHmhacNCivlvKDmmIbnhYwNCivlvKDmmI7liKkNCivlvKDmmI7npaUNCivlvKDmmI7nhacNCivlvKDmmI7nkosNCivlvKDljYfpkqYNCivlvKDmnpfoiqwNCivlvKDmrKPmgKENCivlvKDmrKPolZkNCivlvKDmsrvlm70NCivlvKDnp4nnpboNCivlvKDoirPoj4ENCivlvKDoirPnu6sNCivlvKDoip3lj4sNCivlvKDoirjmhacNCivlvKDph5HlsbENCivlvKDph5Hlh6QNCivlvKDpm6jnrZENCivlvKDkv6Hlj5ENCivlvKDkv4rkvJ8NCivlvKDkv4rlsKcNCivlvKDkv4rotKQNCivlvKDlhqDljY4NCivlvKDlp7/lqpoNCivlvKDlu7rpgqYNCivlvKDlu7rnpaUNCivlvKDlu7rosaoNCivlvKDlvaboj4ENCivlvKDmgJ3ku6oNCivlvKDmgZLnjq4NCivlvKDmlL/mnbANCivlvKDmmK3lhYMNCivlvKDmn5TmmI4NCivlvKDmtLLmnJ8NCivlvKDkuLrmoIsNCivlvKDnjrLlqYkNCivlvKDnlYzogaoNCivlvKDnm4jpuL8NCivlvKDnp4vlqbcNCivlvKDnuqrlkJsNCivlvKDnvo7njrINCivlvKDnvo7nvpoNCivlvKDnvo7pm68NCivlvKDnvo7pnJ4NCivlvKDoh7TokqgNCivlvKDojILphpINCivlvKDoi7HnkKYNCivlvKDpg4HoiqwNCivlvKDpg4HlqbcNCivlvKDpppnnjroNCivlvKDlubjnoqcNCivlvKDkv67osaoNCivlvKDkvKbnjq4NCivlvKDliJrnu7QNCivlvKDljp/osIsNCivlvKDlk7LlgaUNCivlvKDlk7LnkZ4NCivlvKDlk7LmppUNCivlvKDlk7Lnu7QNCivlvKDlk7Lpk60NCivlvKDlqJ/ljY4NCivlvKDlrrbmmI4NCivlvKDlrrbmjK8NCivlvKDlrrbmt6YNCivlvKDlrrbmoIsNCivlvKDlrrboj7ENCivlvKDlrrbmupANCivlvKDlrrbnkZwNCivlvKDlrrbnvqQNCivlvKDlrrbmppUNCivlvKDlrrbojaMNCivlvKDlrrbnoZUNCivlvKDlrrbnu64NCivlvKDlrrbosaoNCivlvKDlrrbosaoNCivlvKDlrrbosaoNCivlvKDlrrbotasNCivlvKDlrrbpk60NCivlvKDlrrbpk60NCivlvKDlrrbmtqYNCivlvKDlrrbmgIANCivlvKDlrrbnjq4NCivlvKDlrrnoj7ENCivlvKDlrrjlrpcNCivlvKDls7vmnbANCivlvKDls7vlmIkNCivlvKDls7vkuKUNCivlvKDls7DojaMNCivlvKDluq3mupANCivlvKDluq3njq4NCivlvKDmgannkLwNCivlvKDmjK/mupANCivlvKDmjK/plZINCivlvKDmmYvpgJoNCivlvKDmmYvosaoNCivlvKDmmY/or5oNCivlvKDmmY/pvoQNCivlvKDkuaboiKoNCivlvKDkuabnu7QNCivlvKDkuabosaoNCivlvKDkuabpk60NCivlvKDkuabppqgNCivlvKDmoLnmupANCivlvKDmoYLljY4NCivlvKDmoYLlh6QNCivlvKDms7DpnZINCivlvKDmtanloIINCivlvKDkvanmgKENCivlvKDkvannkKoNCivlvKDnm4rlt54NCivlvKDnm4rljY4NCivlvKDnm4rnu7QNCivlvKDnpZDmhYgNCivlvKDnpZDnu7QNCivlvKDnp6boirgNCivlvKDntKDnp4sNCivlvKDntKDljY4NCivlvKDnuq/nm4oNCivlvKDnuq/njq4NCivlvKDogL8NCivlvKDogL/nu7QNCivlvKDogL/ltJoNCivlvKDorq3kuYkNCivlvKDovanosaoNCivlvKDpq5jnkZ4NCivlvKDkvJ/kvKYNCivlvKDkvJ/pkqcNCivlvKDlgaXoia8NCivlvKDlm73lv5cNCivlvKDlm73mtakNCivlvKDlm73lqpsNCivlvKDlm73njroNCivlvKDloILlh6ENCivlvKDlqYnlkJsNCivlvKDlqYnmmoQNCivlvKDltIfkvJ8NCivlvKDlurfomZQNCivlvKDmg5/mjbcNCivlvKDlkK/mmI4NCivlvKDmlY/oip0NCivlvKDmooXlkJsNCivlvKDmt7Pmg6ANCivlvKDmuIXmlocNCivlvKDmuIXlh68NCivlvKDmt5HlkJsNCivlvKDmt5HoirMNCivlvKDmt5HoiqwNCivlvKDmt5Hnj40NCivlvKDmt5HotJ4NCivlvKDmt5HlqJ8NCivlvKDmt5HojLkNCivlvKDmt5HlqbcNCivlvKDmt5HnkKYNCivlvKDmt5Hpm4UNCivlvKDmt5HlqLQNCivlvKDmt5HosKgNCivlvKDmuIrlr4wNCivlvKDmtrXovakNCivlvKDnm5vnurINCivlvKDnu43mmZYNCivlvKDojonojLkNCivlvKDpgKLml7YNCivlvKDpm6rkupENCivlvKDlh6/lrocNCivlvKDlh6/mt7MNCivlvKDlh6/lspoNCivlvKDlh6/nkLMNCivlvKDlh6/otoUNCivlvKDlh6/nu7QNCivlvKDog5zku4ENCivlvKDog5zmnbANCivlvKDog5zpm4QNCivlvKDljZrlkowNCivlvKDljZrli4sNCivlvKDljZrpkqcNCivlvKDllrsNCivlvKDkuZTnv5QNCivlvKDlo7nog70NCivlvKDlqbfpn7UNCivlvKDlr4zmt7MNCivlvKDlr4znpa8NCivlvKDmg6DlpoINCivlvKDmg6Dnj4oNCivlvKDmg6DlqJ8NCivlvKDmg6DlqbcNCivlvKDmg6DnkKoNCivlvKDmg6Doj4ENCivlvKDmg6Dpm68NCivlvKDmg6DlhbANCivlvKDmlabkuYkNCivlvKDmmbTmmbQNCivlvKDmma/kvKYNCivlvKDmma/mtZENCivlvKDmma/pl7MNCivlvKDmmbrlrokNCivlvKDmmbrliJoNCivlvKDmmbrmuIUNCivlvKDmmbrmnbANCivlvKDmmbrltLQNCivlvKDmmbrnv5QNCivlvKDmmbrpkqcNCivlvKDmmbrosaoNCivlvKDmmbrosKYNCivlvKDmnJ3lh68NCivlvKDmnJ3pvpkNCivlvKDmo4vpm68NCivlvKDmuZjmgKENCivlvKDnkKrljY4NCivlvKDnkKbnu40NCivlvKDnmbvnv5QNCivlvKDnmpPltLQNCivlvKDnqIvpoboNCivlvKDntKvpk4MNCivlvKDnv5TmmboNCivlvKDoiJLnkKYNCivlvKDoiJzljY4NCivlvKDoj4HojLkNCivlvKDljY7lgKkNCivlvKDlko/ojLUNCivlvKDor4HojYMNCivlvKDotLXnkLMNCivlvKDpgLjlh6ENCivlvKDpgLjnvqQNCivlvKDph4/nhLYNCivlvKDpkqflr4wNCivlvKDpkqfotLsNCivlvKDpl7Xlr4wNCivlvKDpm4HlqbcNCivlvKDpm4Xlp5cNCivlvKDpm4XoiqwNCivlvKDpm4XnjrINCivlvKDpm4Xljb8NCivlvKDpm4XmlY8NCivlvKDpm4XlqbcNCivlvKDpm4XlqbcNCivlvKDpm4XlqbcNCivlvKDpm4XlqbcNCivlvKDpm4XlspoNCivlvKDpm4Xmg6ANCivlvKDpm4Xmg6ANCivlvKDpm4XnkKoNCivlvKDpm4XnkLQNCivlvKDpm4XokI0NCivlvKDpm4Xpm68NCivlvKDpm4Xpm68NCivlvKDpm4Xpk4MNCivlvKDpm4XojrkNCivlvKDpm6/ojLUNCivlvKDpm6/ku6oNCivlvKDpobrlkIkNCivlvKDpobrnpo8NCivlvKDll6PmlocNCivlvKDmhI/or5oNCivlvKDmhYjmtJINCivlvKDmgbrmmY8NCivlvKDmlrDlro8NCivlvKDmr5MNCivlvKDmr5PoiqwNCivlvKDmr5PkvKYNCivlvKDmr5PmtIENCivlvKDmupDpkasNCivlvKDnkZrnj4oNCivlvKDnkZ7lkJsNCivlvKDnkZ7mnbANCivlvKDnkZ7oirgNCivlvKDnkZ7lqJ8NCivlvKDnkZ7mma8NCivlvKDnkZ7moaYNCivlvKDnkZ7msLYNCivlvKDnkZzlkJsNCivlvKDnkZzlqJ8NCivlvKDnpbrljYcNCivlvKDkuYnlv6ANCivlvKDnvqTmnIsNCivlvKDlnKPojokNCivlvKDoo5XmmIwNCivlvKDoo5Xpm68NCivlvKDor5fmgKENCivlvKDor5fpm68NCivlvKDotYTmmIoNCivlvKDpgZPmmboNCivlvKDpnZbmgKENCivlvKDpvI7pk4kNCivlvKDlmInlhYMNCivlvKDlmInmraMNCivlvKDlmInlro8NCivlvKDlmInmrKMNCivlvKDlmInoiqwNCivlvKDlmInnjrINCivlvKDlmInnjrINCivlvKDlmInlk7INCivlvKDlmInmmYsNCivlvKDlmInnnJ8NCivlvKDlmInorq0NCivlvKDlmInmg6ANCivlvKDlmInpm4QNCivlvKDlmInnu7QNCivlvKDlmInlo7ANCivlvKDlmInnj6MNCivlvKDlroHppqgNCivlvKDmppXlrrkNCivlvKDojaPnm4gNCivlvKDojaPlrqoNCivlvKDojafnj4oNCivlvKDnnb/popYNCivlvKDnoqflqJ8NCivlvKDnoZXlhYMNCivlvKDnoZXmoZMNCivlvKDnpo/mlL8NCivlvKDnurLpgpENCivlvKDlvanoirMNCivlvKDnu7TlhagNCivlvKDnu7Tnj4oNCivlvKDnu7Tlk7INCivlvKDnu7TnnJ8NCivlvKDnu7Tmt7MNCivlvKDnu7TmtIENCivlvKDnv6DmlocNCivlvKDnv6DnkKoNCivlvKDogofmooENCivlvKDok5PokLENCivlvKDosarmlocNCivlvKDpk7boirMNCivlvKDpk63lrpcNCivlvKDpk63ls7ANCivlvKDpk63nv7ANCivlvKDlh6TlubMNCivlvKDlh6Tku6oNCivlvKDlub/mtakNCivlvKDlvrfmpoYNCivlvKDluobmgKENCivlvKDluobkuLANCivlvKDmhafmgKENCivlvKDmhaflqJ8NCivlvKDmhafokI0NCivlvKDmhafnrrQNCivlvKDojrnnj4oNCivlvKDljavluIYNCivlvKDpgILmgZINCivlvKDlrabkvKYNCivlvKDlv4blkJsNCivlvKDmmZPmmIANCivlvKDmmZPlqbcNCivlvKDmmZPoj4ENCivlvKDmmZPlh6QNCivlvKDnh5Xlpq4NCivlvKDnv7DmlocNCivlvKDphpLkuJYNCivlvKDplKblqbcNCivlvKDpnZnlpoINCivlvKDpnZnmgKENCivlvKDpnZnojLkNCivlvKDpvpnku4ENCivlvKDnjq/kvIoNCivlvKDosKbovr4NCivlvKDpuL/lpoINCivlvKDpuL/mmboNCivlvKDmm5zpk6gNCivlvKDnroDmraPkvJ8NCivlvKDnroDmrKPljY4NCivlvKDnroDlmInkuroNCivlvKDok53lsLkNCivlvKDkuLDnkrgNCivlvKDmgIDmgakNCivlvKDnkLzkuYsNCivlvKDnkLzmlocNCivlvKDnkLzmlocNCivlvKDnkLzmlrkNCivlvKDnkLzmg6ANCivlvKDoibrppqgNCivlvKDkuL3lkJsNCivlvKDkuL3mt5ENCivlvKDlrp3kupENCivlvKDnjK7lo6wNCivlvKDnvKTmlocNCivlvKDnu6fmmIwNCivlvKDogIDkupENCivlvKDogIDlhYENCivlvKDogIDmraMNCivlvKDogIDlo7ANCivlvKDph4rmlocNCivlvKDppqjmlocNCivlvKDppqjmlocNCivlvKDohb7lhYMNCivlvKDkv6rolrANCivlvKDlt43ogIANCivlvKDoqonppqgNCivlvKDpuaTogIANCivlvKDpnIHmnIgNCivlvKDoioMNCivlvKDlgJsNCivlvKDojJzojLkNCivlvKDnkIfpl7UNCivlvKDlqpzlqpwNCivlvKDnkKzlrpwNCivlvKDnkKzoj4ENCivlvKDoj4DlgKkNCivlvKDngpzlroENCivlvKDnjq7oirgNCivlvKDnjq7kvKYNCivlvKDnjq7lqbcNCivlvKDnrbHlkJsNCivlvKDnrbHpm68NCivlvKDphJDmhpsNCivlvKDpkrDlvakNCivlvKDnppXkvKYNCivlvKDnkoHmlocNCivlvKDplavlsLkNCivlvKDmgZLkuK0NCivmiJrkuYXmmboNCivmlZbmsLjpvpkNCivmm7nlo6vmlY8NCivmm7nmloflvaYNCivmm7nkuJbmtakNCivmm7nnq4vooYwNCivmm7nogb/nlLcNCivmm7nlv5flvLoNCivmm7nkvbPlrokNCivmm7nmmIznlLcNCivmm7nmrKPoia8NCivmm7nmmKXmlocNCivmm7nlk7LlmIkNCivmm7nls7vmmIwNCivmm7nkvanmgKENCivmm7nkvJ/ojLkNCivmm7nmt5HlqpsNCivmm7nog5zkuLANCivmm7nmmbrmrKMNCivmm7nnmpPkupENCivmm7npm4Xmg6ANCivmm7nmlrDlvaYNCivmm7nlmInmlocNCivmm7nnu7TkvKYNCivmm7nmr4Xli4cNCivmm7nnjrrnqaANCivmm7nojqjotKQNCivmooHkuYPlgaUNCivmooHku4HljY4NCivmooHmloflrokNCivmooHmloflrr4NCivmooHkuJbosaoNCivmooHmraPlv6ANCivmooHnjonnjrINCivmooHku7vkuK0NCivmooHmsZ3oiJwNCivmooHlkJvpnJkNCivmooHlv5flvawNCivmooHlv5fpk60NCivmooHogrLljY4NCivmooHkvbPov5sNCivmooHmgKHoiqwNCivmooHkuJzmnpcNCivmooHkv6HlhYMNCivmooHkv5DnkKYNCivmooHlvabosaoNCivmooHngrPpk7gNCivmooHpg4Hok4ENCivmooHlrrbmmI4NCivmooHlrrbosaoNCivmooHls7vpk60NCivmooHmmYvprYENCivmooHkvankvakNCivmooHnp6blrpwNCivmooHlgaXlv6ANCivmooHlkK/njoQNCivmooHmt5HlqJ8NCivmooHojonlqJ8NCivmooHog5zpk60NCivmooHmg6DlqbcNCivmooHmma/lsKcNCivmooHmnJ3lh68NCivmooHoiJLmgKENCivmooHpgLjoiqwNCivmooHpm4XoiJINCivmooHmgbroirgNCivmooHnkZ7ovakNCivmooHlnKPmmIwNCivmooHlmInnj40NCivmooHnoqfmhacNCivmooHnv6Dnj4oNCivmooHmhafljY4NCivmooHmmZPnu7QNCivmooHpnZnlrpwNCivmooHnkLzkuLkNCivmooHnu6fku4ENCivmooHmh7/lvrcNCivmooHnjq7nnJ8NCivmooXlhYnlrocNCivmooXpm4XlqbcNCivmr5Xlv5fljY4NCivnm5vlv4MNCivnm5vnpaUNCivnrKbogofkuK0NCivojqvmmJ/lrocNCivluoTkuIDlh6ENCivluoTkuo7ojrkNCivluoTlo6vlm70NCivluoTlrZDlh68NCivluoTku4Hlro8NCivluoTlv4PokI0NCivluoTmlofmmK0NCivluoTmlofosaoNCivluoTkuJbmnbANCivluoTlvJjku7sNCivluoTmraPmiawNCivluoTmsLjnpo8NCivluoTnjonpup8NCivluoTlpoLovakNCivluoTlhYvkvJ8NCivluoTlv5fmmI4NCivluoTlv5fojaMNCivluoTnp4Dpk4MNCivluoTogrLmppUNCivluoTkvp3lqbcNCivluoTkvbPojaMNCivluoTkvanpm68NCivluoTlnaTlk7INCivluoTlrZ/njrINCivluoTlrZ/nur4NCivluoTlrpfli4sNCivluoTlrpjnkocNCivluoTlrpznkocNCivluoTlv6Dnm4oNCivluoTmgKHovakNCivluoTmmIzmmZQNCivluoTmmI7ovr4NCivluoTkuJzmmI4NCivluoTmrKPlk7INCivluoTnjqXlrJsNCivluoTph5HpnZkNCivluoTkv4rmnbANCivluoTlu7oNCivluoTmlL/lrqoNCivluoTnp4vlrZANCivluoTnvo7ppqgNCivluoToi7HnkLQNCivluoTku5PmnbANCivluoTlrrbljYcNCivluoTlrrbpk60NCivluoTls7vmppUNCivluoTmoZPlmIkNCivluoTkvanpk4MNCivluoTnuq/nuq8NCivluoTkvJ/ku4ENCivluoTlm73ovrANCivluoTln7npkasNCivluoTlkK/mlocNCivluoTmoqjpnZINCivluoTmuIXlr4wNCivluoTmt5HoiqwNCivluoTmt5HlqbcNCivluoTmt5Hpl7UNCivluoTmt5Hnj7oNCivluoTojonojokNCivluoTlh6/ojLUNCivluoTog5zliKkNCivluoTljZrmuIUNCivluoTlsKfku7sNCivluoTlr4zmnbANCivluoTlpI3otLUNCivluoTmg6DojLkNCivluoTmg6DokI0NCivluoTmg6Dok4kNCivluoTmmbTkupENCivluoTmma/nkIcNCivluoTmmbrmtrUNCivluoTmmbrpkqcNCivluoTmnJ3pkqcNCivluoTnmbvlj5ENCivluoTlloToirMNCivluoTotLrkuZQNCivluoTpl7Xml60NCivluoTpm4Xlv4MNCivluoTpm4XnjrINCivluoTpm4XlqbcNCivluoTpm4Xmg6ANCivluoTpm4XokI0NCivluoTpm4XkupENCivluoTpm6/pm68NCivluoTltannuqwNCivluoTnkZ7ljZcNCivluoToo5XmlocNCivluoTlmInnjrINCivluoTmsYnmuIUNCivluoTnu7Tpk60NCivluoTpk63mma8NCivluoTmhaflv4MNCivluoTojrnlp78NCivluoTmoJHlro8NCivluoTolZnokI0NCivluoTplKblubMNCivluoTpnZnmgKENCivluoTmu6jnu64NCivluoTmm5zml60NCivluoTonYnlpoMNCivluoTnhpTnkp4NCivluoTppqXnurINCivluoTkuL3otrMNCivluoTmh7/lvLoNCivluoTmjYPlqIkNCivluoTmlozmmboNCivluoTnrbHlqbcNCivorrjkuIDkuYsNCivorrjkuYPnp68NCivorrjlj4jku4ENCivorrjlpKflrrkNCivorrjku4HlhagNCivorrjlhYPpk60NCivorrjlo6zogIANCivorrjlv4Pnm4gNCivorrjmloflv6ANCivorrjmlofljpoNCivorrjmlofmoZANCivorrjmlofljY4NCivorrjmlofosaoNCivorrjmlofok50NCivorrjml6XmmKUNCivorrjkuJbmsJENCivorrjkuJbmmIwNCivorrjkuJbmgawNCivorrjkuJbotKQNCivorrjliqDlro8NCivorrjlubMNCivorrjlvJjmr4UNCivorrjmraPlv6ANCivorrjmraPosIoNCivorrjmsLjmmI4NCivorrjmsLjmr4UNCivorrjnjonoirMNCivorrjnjonlqJ8NCivorrjnjonlqbUNCivorrjnlLINCivorrjnq4vnvqQNCivorrjku7LotKQNCivorrjlkI3kuJYNCivorrjlrofmnbANCivorrjmiI7lspENCivorrjms5vpopYNCivorrjoh7PlhagNCivorrjkvZHpk6gNCivorrjlhYvku7INCivorrjlkJvosaoNCivorrjlpo3luIwNCivorrjlro/kvJ8NCivorrjlro/lvrcNCivorrjlv5flkIwNCivorrjlv5flro8NCivorrjlv5fltIcNCivorrjlv5fpm4QNCivorrjlv5fnu7QNCivorrjlv5fov5wNCivorrjlv5fpuY8NCivorrjmsbblt54NCivorrjnp4Dnj4oNCivorrjnp4Dok4kNCivorrjogrLoj4ENCivorrjogrLor5oNCivorrjoia8NCivorrjotJ3lpoINCivorrjkvbPmlL8NCivorrjkvbPpm68NCivorrjkvanojLkNCivorrjljZPlsJgNCivorrjlrZ/nv5QNCivorrjlrpfojaMNCivorrjlubjpm68NCivorrjmgKHkvakNCivorrjmib/orq0NCivorrjmmI7mnbANCivorrjmmI7lvrcNCivorrjmnb7nrYkNCivorrjms5PnkK4NCivorrjoirPmhYgNCivorrjoirPpk60NCivorrjoipnnjrENCivorrjph5Hlj5ENCivorrjkv6HojaMNCivorrjkv4rpm4QNCivorrjlp7/mgKENCivorrjlvabnhLYNCivorrjmgaznu6sNCivorrjmmK3lhYMNCivorrjmn4/moaYNCivorrjnj4rnkZwNCivorrjnp4vnjrINCivorrjnvo7oirMNCivorrjnvo7ljY4NCivorrjoh7Tnu7QNCivorrjoi7HmnbANCivorrjpg4HmlY8NCivorrjkv7jmmIwNCivorrjkv67pk60NCivorrjljp/pk60NCivorrjlk7LnkZ4NCivorrjlk7LlvbANCivorrjlk7LosaoNCivorrjlk7Lnjq4NCivorrjlrrblrqMNCivorrjlrrbmnbANCivorrjlrrbml7gNCivorrjlrrblvbANCivorrjlrrbojaMNCivorrjlrrbosaoNCivorrjlrrbosaoNCivorrjlrrbluoYNCivorrjlrrjosaoNCivorrjls7vlk7INCivorrjls7vnjq4NCivorrjls7Dpk60NCivorrjluq3njq4NCivorrjmjK/muZYNCivorrjml7blmIkNCivorrjmmYvojacNCivorrjkuaYNCivorrjkuabojaMNCivorrjkuabpk6gNCivorrjmoLnlrpwNCivorrjmoJPosaoNCivorrjmtannjq4NCivorrjkvanlmIkNCivorrjnm4rovakNCivorrjnpZDojrENCivorrjntKDoj4ENCivorrjnuq/nkZwNCivorrjogL/osaoNCivorrjotKLlvpcNCivorrjkvJ/lv6ANCivorrjlm73lrokNCivorrjlm73otKQNCivorrjlqYnojLkNCivorrjlvannnJ8NCivorrjlkK/miawNCivorrjmooXoj4ENCivorrjmt7PnkIcNCivorrjmuIXmnqsNCivorrjmt5HoiqwNCivorrjmt5HotJ4NCivorrjmt5HojLkNCivorrjmt5Hmg6ANCivorrjmt5HljY4NCivorrjmt5HojrINCivorrjnm5vmmIwNCivorrjojonojokNCivorrjlh6/mg4cNCivorrjlh6/lmIkNCivorrjog5zli4sNCivorrjljZrkuLoNCivorrjljZrmo64NCivorrjloKHlpoINCivorrjlr4zlv6ANCivorrjlr4zpm4QNCivorrjmg6DlpoINCivorrjmg6Dnj40NCivorrjmg6DojLkNCivorrjmg6DnkLMNCivorrjmg6Dpm68NCivorrjmg6Dmu6INCivorrjmmbTmlpANCivorrjmma/pkqcNCivorrjmmbrnjrINCivorrjmmbrmg58NCivorrjmmbrlh68NCivorrjmmbrnv5QNCivorrjmmbrpm4QNCivorrjmmbrlvrcNCivorrjmnJ3lr4wNCivorrjpkqbosaoNCivorrjnmbvmuIoNCivorrjnq6Pog70NCivorrjlloTlh68NCivorrjoiJLojJwNCivorrjljY7lgJoNCivorrjlko/og5wNCivorrjotLXlvbANCivorrjpgLjnq6ANCivorrjov5vlhbQNCivorrjpl7Xpm4QNCivorrjpm4XmrKMNCivorrjpm4XnjrINCivorrjpm4Xmt5ENCivorrjpm4XlqbcNCivorrjpm4Xmg6ANCivorrjpm4Xmg6ANCivorrjpm4XokI0NCivorrjpm4Xpm4ENCivorrjpm4Xpm68NCivorrjpm4XmhacNCivorrjpm6/nkLMNCivorrjpobrmuIUNCivorrjmhI/oi7kNCivorrjmgbrnv5QNCivorrjmoaLnpaUNCivorrjmr5PlqJ8NCivorrjmupDms4kNCivorrjnkZ4NCivorrjnkZ7oirgNCivorrjnkZ7mgakNCivorrjnkZ7ku6oNCivorrjnkZzoirMNCivorrjnpoDmm7wNCivorrjlnKPmnbANCivorrjoo5Xkur8NCivorrjor5fnraANCivorrjpk4Poi7ENCivorrjlmInlhYMNCivorrjlmInoirMNCivorrjlmInlgKkNCivorrjlmInkvakNCivorrjlmInmg6ANCivorrjlmInpopYNCivorrjmppUNCivorrjojaPpmoYNCivorrjnkbbppqgNCivorrjnoqfnj6ANCivorrjnoZXkv64NCivorrjnrpTmtrUNCivorrjnu7TogrINCivorrjnu7TnnJ8NCivorrjnv6Dnq68NCivorrjor7ENCivorrjpk63ku4ENCivorrjpk63lk7INCivorrjpk63otKINCivorrjpmIHmlocNCivorrjlh6Tpm4UNCivorrjluobmlocNCivorrjmhaflkJsNCivorrjmhafotJ4NCivorrjmhZXotJ4NCivorrjpgILmnqsNCivorrjlv4boirMNCivorrjmmZPoj4ENCivorrjnh5XokI0NCivorrjplKbmlocNCivorrjpnZnlrpwNCivorrjpnZnpm6oNCivorrjltZjku4ENCivorrjpuL/mlocNCivorrjolrDmlocNCivorrjmgIDmlocNCivorrjnkLzmlocNCivorrjnkLzmnIgNCivorrjpmYfnpboNCivorrjkuL3ljY4NCivorrjnvKTlpoINCivorrjogIDmlocNCivorrjppqjku4ENCivorrjohb7lhYMNCivorrjot4Porq4NCivorrjmmLbljY4NCivorrjnkIflqbcNCivorrjnkK7pgqYNCivorrjlq4jnjokNCivorrjnrbHokI0NCivorrjpkrDojLkNCivorrjpi5HpuL8NCivorrjmgZLovr4NCivov57ku4HlnKMNCivov57kuJblkowNCivov57kvZHku4ENCivov57np4Dku4ENCivov57kvanms6ANCivov57oirjlh7ANCivov57lu7rmmboNCivov57np4vml7oNCivov57lrrnnkKoNCivov57moYLlro8NCivov57kvJ/mnbANCivov57lqYnku6oNCivov57lkK/mmboNCivov57og5znpaUNCivov57pm4XotJ4NCivov57lmInnuq8NCivov57luobkuLANCivov57pnZnojLkNCivpg63kuIDmoaYNCivpg63kuYPojaMNCivpg63kurrosaoNCivpg63lipvnjq4NCivpg63kuo7npa8NCivpg63lo6vljY4NCivpg63lo6vlh6QNCivpg63lrZDnq4sNCivpg63lrZDojacNCivpg63lrZDnppUNCivpg63ku4Hlk7INCivpg63lpKnnq4sNCivpg63mloflkIwNCivpg63mloflvaYNCivpg63mlofmg6ANCivpg63mlofpk6gNCivpg63msLTlsbENCivpg63kuJblhbANCivpg63ljYnpm68NCivpg63mraPlrpcNCivpg63msLjmmI4NCivpg63njonnj40NCivpg63nq4sNCivpg63nq4vovr4NCivpg63ku7LmuIoNCivpg63lhYbpm68NCivpg63lpJnlkJ8NCivpg63lubTnnJ8NCivpg63mnInplYcNCivpg63oh7Plk7INCivpg63lkJvmgKENCivpg63lro/mlocNCivpg63lro/pqo8NCivpg63lv5flro8NCivpg63lv5fnpaUNCivpg63mnY8NCivpg63msoLmnZENCivpg63ogrLlhYgNCivpg63ogrLmmIwNCivpg63ogrLnu7QNCivpg63pgqblvaYNCivpg63kvbPmrKMNCivpg63kvbPpm68NCivpg63kvbPpkasNCivpg63kvannkKYNCivpg63lpYfmlocNCivpg63lrZ/ok4kNCivpg63lrpfluoYNCivpg63lsJrli4sNCivpg63lv6DlkowNCivpg63mgKHkvLYNCivpg63mgKHlkJsNCivpg63mgKHlkJsNCivpg63mgKHnp4ANCivpg63mgKHpk4MNCivpg63mib/ku6oNCivpg63mmI7lrpcNCivpg63mmI7ls7ANCivpg63mmI7pgZMNCivpg63mmI7njq4NCivpg63mnb7popYNCivpg63mrablrokNCivpg63njp/njp8NCivpg63njqXlpqYNCivpg63oirPlkJsNCivpg63oirPpm68NCivpg63oip3nnb8NCivpg63plb/moJENCivpg63kv6Hlro8NCivpg63kv53lkJsNCivpg63kv4rlro8NCivpg63kv4rnlLcNCivpg63kv4rkv6ENCivpg63kv4rkur8NCivpg63kv5DkuqgNCivpg63lhqDlu7cNCivpg63lk4Hnp4ANCivpg63lp7/kvLYNCivpg63lp7/mrKMNCivpg63lqIHlv5cNCivpg63lu7rlro8NCivpg63lu7rlu7cNCivpg63lu7roia8NCivpg63lu7rmupANCivpg63lvablkJsNCivpg63lvabnlKsNCivpg63mgJ3lrpwNCivpg63mlL/lv6ANCivpg63mlL/nkosNCivpg63mmK3lrokNCivpg63mmK3mmL4NCivpg63mmLHml7sNCivpg63mn4/np4ANCivpg63ngrPmiJANCivpg63njrLmhYgNCivpg63nm4jlkJsNCivpg63nnIHokLENCivpg63nvo7lkJsNCivpg63nvo7lp5cNCivpg63nvo7lloQNCivpg63nvo7lhbANCivpg63ojILomZQNCivpg63otJ7lrY0NCivpg63lgI3lrokNCivpg63lubjpk6gNCivpg63lh4zlv5cNCivpg63lk7LmiJANCivpg63lk7Lnjq4NCivpg63lrrblro8NCivpg63lrrbnpaUNCivpg63lrrbosaoNCivpg63lrrbmhacNCivpg63lrrjmmIANCivpg63ls7DljYcNCivpg63luq3ok4kNCivpg63mjK/msYkNCivpg63mmY/kvZENCivpg63kuabosaoNCivpg63moYLlh6QNCivpg63mtanlv5cNCivpg63nm4rlhYMNCivpg63npZbkvZENCivpg63ntKDnu6sNCivpg63ogL/ku7sNCivpg63ovakNCivpg63lm73mraMNCivpg63lqYnnjrINCivpg63lkK/mspANCivpg63mt7vmlrANCivpg63mt5Hoiq8NCivpg63mt5HmlY8NCivpg63mt5HmhacNCivpg63pgKLnpaUNCivpg63og5wNCivpg63kuZTlubQNCivpg63mg6DpnZINCivpg63mg6Dml7sNCivpg63mmbrmmI4NCivpg63mmbrnjq4NCivpg63nkKrlqLINCivpg63lko/kvakNCivpg63ov5vmmIwNCivpg63pm4XmsZ0NCivpg63pm4XlqbcNCivpg63pm4Xoj7ENCivpg63pm4XolocNCivpg63mhYjnm4gNCivpg63nhZzltIcNCivpg63nkZ7pkqYNCivpg63kuYnmo6ANCivpg63or5flsY8NCivpg63lmInkvJ8NCivpg63moqbnq7kNCivpg63ojaPluoYNCivpg63noqflqJ8NCivpg63nurbnm4oNCivpg63ogoflvLoNCivpg63pk63mnbANCivpg63luobnlJ8NCivpg63mhafnj40NCivpg63mhafoloQNCivpg63lhJLosKYNCivpg63mmZPljYkNCivpg63mmZPpm68NCivpg63nh5XnjrINCivpg63olZnokI0NCivpg63plJ/pnJYNCivpg63pnZnnvo4NCivpg63mtY7nu7QNCivpg63pqo8NCivpg63mm5zlvbANCivpg63plYflhYMNCivpg63nkLzlqpsNCivpg63kuL3np4sNCivpg63njK7mlocNCivpg63olbTlv7ENCivpg63ppqjplYENCivpg63nrLzluoYNCivpg63ml7vnkZwNCivpg63mmZ/lrocNCivpg63mmpANCivpg63pkrDoirMNCivpg63mgZLlppkNCivpmYjkuIDmiJANCivpmYjkuIDljY4NCivpmYjkuIDnjq4NCivpmYjkuYPpko8NCivpmYjkuYPojaMNCivpmYjkurrnlIQNCivpmYjlipvlh6ENCivpmYjlj4jmmJUNCivpmYjlj4jlnKMNCivpmYjkuIrkvKYNCivpmYjljYPplKYNCivpmYjlo6vmnbANCivpmYjlpKflkIwNCivpmYjlrZDku4ENCivpmYjlrZDlvaYNCivpmYjlrZDpkqcNCivpmYjlsI/okI0NCivpmYjlt7HljYcNCivpmYjkuK3pk60NCivpmYjkuYvosJUNCivpmYjku4HlrpcNCivpmYjku4HmnbANCivpmYjku4rlh6ENCivpmYjlhYPlrZ0NCivpmYjlhYPpnZYNCivpmYjlha4NCivpmYjlpKnku4ENCivpmYjlpKnotY8NCivpmYjlv4PmgKENCivpmYjlv4PmgKENCivpmYjlv4PmtIENCivpmYjmloflt50NCivpmYjmlofmiJANCivpmYjmloflv6ANCivpmYjmlofkuq4NCivpmYjmlofmmK0NCivpmYjmlofpg44NCivpmYjmlofmtpMNCivpmYjmloflvawNCivpmYjmlofnq6ANCivpmYjmlofpkqYNCivpmYjmlofljY4NCivpmYjmlofok4kNCivpmYjmloflvrcNCivpmYjmloflraYNCivpmYjmlofpuL8NCivpmYjmlofpkrANCivpmYjmnIjlpq4NCivpmYjmsLTms4kNCivpmYjkuJblrocNCivpmYjkuJblrpcNCivpmYjkuJbmmI4NCivpmYjkuJbmnbANCivpmYjkuJbmlL8NCivpmYjkuJbluq0NCivpmYjkuJbkvJ8NCivpmYjkuJbnq6ANCivpmYjkuJbmo7sNCivpmYjkuJbnm58NCivpmYjkuJbosaoNCivpmYjkuJbms70NCivpmYjkuJbpuL8NCivpmYjkuLvmrKMNCivpmYjku6XpnZkNCivpmYjku5XoirMNCivpmYjku5XmupANCivpmYjku5Xnnb8NCivpmYjliqDmmI4NCivpmYjlip/pnJYNCivpmYjlj6/mrKMNCivpmYjlj7PmsJENCivpmYjlj7PosJUNCivpmYjlt6jptqANCivpmYjlt6fnj4oNCivpmYjlt6fmg6ANCivpmYjlt6fpopANCivpmYjlubzmrKMNCivpmYjlvJjmlocNCivpmYjlvJjmrKMNCivpmYjlvJjorq0NCivpmYjlvJjmr4UNCivpmYjlvJjpk6ANCivpmYjmnK3ln7kNCivpmYjmraPlro8NCivpmYjmraPmmIwNCivpmYjmraPoirMNCivpmYjmraPls7ANCivpmYjmraPmnbANCivpmYjmraPpm4QNCivpmYjmraPosaoNCivpmYjmraPlhbQNCivpmYjmsJENCivpmYjmsLgNCivpmYjmsLjlrpcNCivpmYjmsLjmmIwNCivpmYjmsLjpnZINCivpmYjmsLjlh4wNCivpmYjmsLjlurcNCivpmYjmsLjlr4wNCivpmYjmsLjlv5cNCivpmYjmsLjnqYYNCivpmYjmsLjnj6kNCivpmYjnjonmlocNCivpmYjnjonlpYcNCivpmYjnjonoirMNCivpmYjnjonoiqwNCivpmYjnjonnj4oNCivpmYjnjonnj40NCivpmYjnjonlqJ8NCivpmYjnjonnj6ANCivpmYjnjonmooUNCivpmYjnjonnkLMNCivpmYjnjonoj4ENCivpmYjnjonkupENCivpmYjnjonlqIcNCivpmYjnjonnkpgNCivpmYjnjonppqgNCivpmYjnlJ/mnb4NCivpmYjnn7PogrINCivpmYjnq4vlh6ENCivpmYjnq4voqIANCivpmYjnq4vmrKMNCivpmYjnq4vkvKYNCivpmYjnq4vkvJ8NCivpmYjnq4vnv44NCivpmYjnq4vnu7QNCivpmYjnq4vnv7ANCivpmYjkuqblh6ENCivpmYjkvIrkvKYNCivpmYjku7Llv5cNCivpmYjku7LotKQNCivpmYjlhYnnlKsNCivpmYjlhYnljY4NCivpmYjlhYblpZUNCivpmYjlkInliKkNCivpmYjlkJHojaMNCivpmYjlnKjmmI4NCivpmYjlpoLoiqwNCivpmYjlpoLoi7kNCivpmYjlrofmnbANCivpmYjlrofotoUNCivpmYjlronkvZENCivpmYjlronmnLQNCivpmYjml6wNCivpmYjmnInlv5cNCivpmYjmsZ/nq4sNCivpmYjnmb7mnbANCivpmYjnvr3nj4oNCivpmYjoh7Plh68NCivpmYjkuqjmiJANCivpmYjkvZHku7sNCivpmYjkvZHluq0NCivpmYjkvLjnlLANCivpmYjkvK/mnbANCivpmYjkvK/oi40NCivpmYjlhYvlrocNCivpmYjlhYvpk60NCivpmYjlkJvlpoMNCivpmYjlkJvoiKoNCivpmYjlkJvojaMNCivpmYjlkJvlhJINCivpmYjlnYfnoZUNCivpmYjlppnmoaINCivpmYjlpo3kvLYNCivpmYjlpo3np4ANCivpmYjlpqTolZkNCivpmYjlrZ3pk6gNCivpmYjlro/ku4ENCivpmYjlro/lrokNCivpmYjlro/mmIwNCivpmYjlro/ms6INCivpmYjlro/nvo4NCivpmYjlro/lvawNCivpmYjlro/pmoYNCivpmYjlro/ovr4NCivpmYjlro/pk60NCivpmYjlro/otKQNCivpmYjlro/ngpwNCivpmYjlu7fkv4oNCivpmYjlv5flsbENCivpmYjlv5flubMNCivpmYjlv5fku7INCivpmYjlv5flrokNCivpmYjlv5flro8NCivpmYjlv5fmspsNCivpmYjlv5flsrMNCivpmYjlv5fmgKENCivpmYjlv5fmmI4NCivpmYjlv5fljYcNCivpmYjlv5fmrKMNCivpmYjlv5flvaYNCivpmYjlv5fmtakNCivpmYjlv5fkvJ8NCivpmYjlv5flvLoNCivpmYjlv5fnpaUNCivpmYjlv5fnv5QNCivpmYjlv5fpm4QNCivpmYjlv5fmupANCivpmYjlv5fovr4NCivpmYjlv5fojaMNCivpmYjlv5fnu7QNCivpmYjlv5fosaoNCivpmYjlv5fosaoNCivpmYjlv5fosaoNCivpmYjlv5fov5wNCivpmYjlv5fpk60NCivpmYjlv5flrr0NCivpmYjlv5fpopYNCivpmYjlv5fpuL8NCivpmYjlv5fmlowNCivpmYjmlLjlqbcNCivpmYjmnZHpvpkNCivpmYjmspvlkJ8NCivpmYjmsbbmtKUNCivpmYjnlLgNCivpmYjnp4DlkJsNCivpmYjnp4Doip0NCivpmYjnp4DnjrINCivpmYjnp4DlqJ8NCivpmYjnp4DmlY8NCivpmYjnp4Dmg6ANCivpmYjnp4Dpm4UNCivpmYjnp4Dpk4MNCivpmYjnp4DmhacNCivpmYjnp4DlhbANCivpmYjogrLmraMNCivpmYjogrLkvZANCivpmYjogrLlpYcNCivpmYjogrLnq6ANCivpmYjogrLlu4kNCivpmYjogrLor5cNCivpmYjogrLojrkNCivpmYjogrLmlowNCivpmYjoia/mlL8NCivpmYjop4Hnp4sNCivpmYjovrDmiawNCivpmYjphYnojLkNCivpmYjkuprpk4MNCivpmYjkvp3ovrANCivpmYjkvp3nv5QNCivpmYjkvbMNCivpmYjkvbPmsZ0NCivpmYjkvbPkvLYNCivpmYjkvbPlkJ8NCivpmYjkvbPlro8NCivpmYjkvbPlpq4NCivpmYjkvbPnjqUNCivpmYjkvbPnm4gNCivpmYjkvbPnnJ8NCivpmYjkvbPmg6ANCivpmYjkvbPnkKoNCivpmYjkvbPnkKYNCivpmYjkvbPpm68NCivpmYjkvbPnvqQNCivpmYjkvbPlh6QNCivpmYjkvbPmhacNCivpmYjkvbPnkpgNCivpmYjkvbPpqo8NCivpmYjkvbPmgJwNCivpmYjkvoPlqbcNCivpmYjkvanlkJsNCivpmYjkvanlkJsNCivpmYjkvankvakNCivpmYjkvanoirgNCivpmYjkvannnJ8NCivpmYjkvannkLMNCivpmYjkvannkZwNCivpmYjkvanojrkNCivpmYjkvpHlqKUNCivpmYjlhbbpkqcNCivpmYjljY/mmIwNCivpmYjlkozmiJANCivpmYjlnaTkvZANCivpmYjlnaTmnbANCivpmYjlnaTplLoNCivpmYjlp5Tmib8NCivpmYjlrZ/kvLYNCivpmYjlrZ/oia8NCivpmYjlrZ/lqIENCivpmYjlrZ/kvJ8NCivpmYjlrZ/nkKoNCivpmYjlrZ/pk4MNCivpmYjlrZ/ovokNCivpmYjlraPkvZENCivpmYjlrpfku4ENCivpmYjlrpflv5cNCivpmYjlrpfnm4gNCivpmYjlrpfpm4QNCivpmYjlrpfml5cNCivpmYjlrpfnuqwNCivpmYjlrpfpvpkNCivpmYjlrproh7MNCivpmYjlrpzlubMNCivpmYjlrpzlkJsNCivpmYjlrpznp4ANCivpmYjlrpzlp78NCivpmYjlrpzln7kNCivpmYjlrpznvqQNCivpmYjlrpznkosNCivpmYjlrpzml7sNCivpmYjlrpvlp5cNCivpmYjlsJrmlocNCivpmYjlsJrnkZwNCivpmYjlsYXku4ENCivpmYjlsrPlkJsNCivpmYjlubjotrMNCivpmYjlubjmu6ENCivpmYjlu7bpgZMNCivpmYjlv6Doia8NCivpmYjlv6DkuYkNCivpmYjmgKENCivpmYjmgKHmlocNCivpmYjmgKHljYkNCivpmYjmgKHlhrANCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlrokNCivpmYjmgKHnq7kNCivpmYjmgKHkvLYNCivpmYjmgKHkvLYNCivpmYjmgKHkvLYNCivpmYjmgKHliKkNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlu7cNCivpmYjmgKHnp4ANCivpmYjmgKHmmIwNCivpmYjmgKHoirMNCivpmYjmgKHnj4oNCivpmYjmgKHpppkNCivpmYjmgKHnnJ8NCivpmYjmgKHlqbcNCivpmYjmgKHlqbcNCivpmYjmgKHnkLQNCivpmYjmgKHoj4ENCivpmYjmgKHpm68NCivpmYjmgKHor5oNCivpmYjmgKHnoZUNCivpmYjmgKHok4kNCivpmYjmgKHmtIENCivpmYjmgKHlhJINCivpmYjmgKHpopYNCivpmYjmgKHpnZkNCivpmYjmgKHpnZkNCivpmYjmgKHoi7kNCivpmYjmgKHok4ENCivpmYjmgKHnnb8NCivpmYjmi5vor5oNCivpmYjmmJPmnZENCivpmYjmmIzmlocNCivpmYjmmIzmuK8NCivpmYjmmIbmnbANCivpmYjmmILkvZENCivpmYjmmI7mraMNCivpmYjmmI7kvLgNCivpmYjmmI7lro8NCivpmYjmmI7mnZANCivpmYjmmI7mmIwNCivpmYjmmI7mlL8NCivpmYjmmI7nj6ANCivpmYjmmI7ojokNCivpmYjmmI7lqbcNCivpmYjmmI7mpbcNCivpmYjmmI7oo5UNCivpmYjmmI7lvrcNCivpmYjmmI7otKQNCivpmYjmmI7kuLANCivpmYjmmJXmlrkNCivpmYjljYfmr4UNCivpmYjkuJzljY4NCivpmYjmnbDnm5sNCivpmYjmnb7okI0NCivpmYjmrKPlpoINCivpmYjmrKPlro8NCivpmYjmrKPlrpwNCivpmYjmrKPmgKENCivpmYjmrKPmgKENCivpmYjmrKPms7ANCivpmYjmrKPnkZwNCivpmYjmrKPlhbANCivpmYjms7Pku7sNCivpmYjms5XlhYkNCivpmYjms5Pnv5QNCivpmYjms5PpnJYNCivpmYjmsrvlrocNCivpmYjms4rovrANCivpmYjnjp/lhYkNCivpmYjnjp/kvLYNCivpmYjnjp/nkZsNCivpmYjnjqvlpoINCivpmYjnjqvlkJsNCivpmYjnjqvoirMNCivpmYjnjqvoh7sNCivpmYjnjqXnh5UNCivpmYjnp4nmt7MNCivpmYjnp4nmlowNCivpmYjoirPnj40NCivpmYjoirPokLENCivpmYjoip3lgKkNCivpmYjoip3ojIMNCivpmYjoiq/mgKENCivpmYjpgrXpkasNCivpmYjph5Hoia8NCivpmYjph5HloKQNCivpmYjph5Hlo7ANCivpmYjplb/luoYNCivpmYjpm6jmlrANCivpmYjpnZLnkZwNCivpmYjkuq3lkJsNCivpmYjkuq7kuJ4NCivpmYjkuq7lkJsNCivpmYjkuq7popYNCivpmYjkv6HkvIoNCivpmYjkv6HlrocNCivpmYjkv6Hml60NCivpmYjkv6HlkJ8NCivpmYjkv6Hlro8NCivpmYjkv6Hlro8NCivpmYjkv6HnlKsNCivpmYjkv6Hlv6ANCivpmYjkv6HmmboNCivpmYjkv6Hoo5UNCivpmYjkv6HosaoNCivpmYjkv6HlraYNCivpmYjkv53lhYMNCivpmYjkv53lvbANCivpmYjkv4rku4ENCivpmYjkv4rmlocNCivpmYjkv4rku7ANCivpmYjkv4rlkIkNCivpmYjkv4rlpoINCivpmYjkv4rlrocNCivpmYjkv4rlrokNCivpmYjkv4rmiJANCivpmYjkv4rml60NCivpmYjkv4rkvZENCivpmYjkv4rlkYgNCivpmYjkv4rlro8NCivpmYjkv4rlro8NCivpmYjkv4rlro8NCivpmYjkv4rlro8NCivpmYjkv4rlu7cNCivpmYjkv4rnlLcNCivpmYjkv4rnlLcNCivpmYjkv4roia8NCivpmYjkv4rlkowNCivpmYjkv4rmnbANCivpmYjkv4rpg44NCivpmYjkv4rlvawNCivpmYjkv4rmnbANCivpmYjkv4rlh68NCivpmYjkv4rljY4NCivpmYjkv4rmupANCivpmYjkv4rovr4NCivpmYjkv4rmppUNCivpmYjkv4rnu7QNCivpmYjkv4rosaoNCivpmYjkv4rpk60NCivpmYjkv4rpk60NCivpmYjkv4rnkosNCivpmYjkv4rmoaYNCivpmYjkv4rosJoNCivpmYjkv4rpvpkNCivpmYjkv4rnjq4NCivpmYjkv5DlrokNCivpmYjkv5Dnp4ANCivpmYjkv5DmtIENCivpmYjkv57ku7INCivpmYjkv57lppkNCivpmYjkv57pnZkNCivpmYjlhqDlpKsNCivpmYjlhqDku7ANCivpmYjlhqDlpoINCivpmYjlhqDlrocNCivpmYjlhqDlt54NCivpmYjlhqDoiJ8NCivpmYjlhqDlkKsNCivpmYjlhqDlro8NCivpmYjlhqDlu7cNCivpmYjlhqDnlLcNCivpmYjlhqDmnbANCivpmYjlhqDlkZwNCivpmYjlhqDnu7QNCivpmYjlhqDpk60NCivpmYjlhqDmoaYNCivpmYjlhqDlpo8NCivpmYjliJnpkqYNCivpmYjli4flnKgNCivpmYjli4flv5cNCivpmYjli4fovr4NCivpmYjlirLlkL4NCivpmYjljZflsYUNCivpmYjljprpk60NCivpmYjlk4HlhYgNCivpmYjlk4Hnp4ANCivpmYjlk4HovokNCivpmYjlpZXkuK0NCivpmYjlpZXku7sNCivpmYjlpZXluIYNCivpmYjlpZXliKkNCivpmYjlpZXlu7cNCivpmYjlpZXnm4gNCivpmYjlpZXovr4NCivpmYjlpZXpopYNCivpmYjlpZXok4ENCivpmYjlpY7mr48NCivpmYjlp7/mlocNCivpmYjlp7/nmb4NCivpmYjlp7/liKkNCivpmYjlp7/lkJ8NCivpmYjlp7/lspANCivpmYjlp7/nj4oNCivpmYjlp7/ok4kNCivpmYjlp7/popYNCivpmYjlp7/nkocNCivpmYjlqIHkuJ4NCivpmYjlqIHlhagNCivpmYjlqIHlrocNCivpmYjlqIHmiJANCivpmYjlqIHliqkNCivpmYjlqIHlu7cNCivpmYjlqIHlv5cNCivpmYjlqIHlv5cNCivpmYjlqIHpgpENCivpmYjlqIHnv5QNCivpmYjlqIHosaoNCivpmYjlqIHlhJINCivpmYjlqIHpnJYNCivpmYjlrqPku7sNCivpmYjlrqPmr48NCivpmYjlrqXku7sNCivpmYjlrqXosJUNCivpmYjluIXlkI0NCivpmYjlu7rkuK0NCivpmYjlu7rlhYMNCivpmYjlu7rmlocNCivpmYjlu7rku7sNCivpmYjlu7rlkIwNCivpmYjlu7rlrocNCivpmYjlu7rlrokNCivpmYjlu7rlt54NCivpmYjlu7rmiJANCivpmYjlu7rml60NCivpmYjlu7rooYwNCivpmYjlu7rlkYgNCivpmYjlu7rlro8NCivpmYjlu7rlro8NCivpmYjlu7rlro8NCivpmYjlu7rlro8NCivpmYjlu7rlu7cNCivpmYjlu7rlv5cNCivpmYjlu7rlv5cNCivpmYjlu7rnlKsNCivpmYjlu7rnlLcNCivpmYjlu7roia8NCivpmYjlu7rpgqYNCivpmYjlu7rmmI4NCivpmYjlu7rlm70NCivpmYjlu7rmiawNCivpmYjlu7rljY4NCivpmYjlu7ror4QNCivpmYjlu7rmupANCivpmYjlu7rovr4NCivpmYjlu7rojaMNCivpmYjlu7rok4kNCivpmYjlu7rovoUNCivpmYjlu7rpk60NCivpmYjlu7rpk60NCivpmYjlu7rnkosNCivpmYjlu7rli4sNCivpmYjlu7rmoaYNCivpmYjlu7rpvpkNCivpmYjlu7rng5wNCivpmYjlvablpKsNCivpmYjlvabmlocNCivpmYjlvabku7sNCivpmYjlvablkIgNCivpmYjlvablrocNCivpmYjlvabluIYNCivpmYjlvabnq7kNCivpmYjlvabkvLgNCivpmYjlvablkJsNCivpmYjlvablo64NCivpmYjlvablro8NCivpmYjlvablro8NCivpmYjlvablu7cNCivpmYjlvabnlKsNCivpmYjlvaboia8NCivpmYjlvabmmIwNCivpmYjlvablh68NCivpmYjlvabmgboNCivpmYjlvabnurYNCivpmYjlvabosaoNCivpmYjlvabmhbANCivpmYjlvabli4sNCivpmYjlvabpnJYNCivpmYjlvovlhYMNCivpmYjmgJ3lhYgNCivpmYjmgJ3lubQNCivpmYjmgJ3lpqQNCivpmYjmgJ3kuq4NCivpmYjmgJ3mupANCivpmYjmgJ3ok4kNCivpmYjmgJ3mnLQNCivpmYjmgJ3popYNCivpmYjmgJ3nv7ANCivpmYjmgJ3nkocNCivpmYjmlL/mlocNCivpmYjmlL/lro8NCivpmYjmlL/mmJUNCivpmYjmlL/lsKcNCivpmYjmlL/oo5UNCivpmYjmlL/mr4UNCivpmYjmlL/osKYNCivpmYjmmKXlpoMNCivpmYjmmKXmmI4NCivpmYjmmKXnh5UNCivpmYjmmK3mlocNCivpmYjmmK3lrocNCivpmYjmmK3kvLYNCivpmYjmmK3lv5cNCivpmYjmmK3kvJ8NCivpmYjmmK3ojaMNCivpmYjmmK3pk60NCivpmYjmmK3njq4NCivpmYjmmKDml60NCivpmYjmmKDlv5cNCivpmYjmmKDlhJINCivpmYjmmJ/lrocNCivpmYjmmJ/nhrkNCivpmYjmmLHkuJ4NCivpmYjmmLHlhagNCivpmYjmmLHmsZ0NCivpmYjmmLHlro8NCivpmYjmmLHnlKsNCivpmYjmmLHovr4NCivpmYjmmLHmoaYNCivpmYjmn5TlrokNCivpmYjmn4TmlrkNCivpmYjmn4/lhYMNCivpmYjmn4/ku70NCivpmYjmn4/lrocNCivpmYjmn4/lt54NCivpmYjmn4/lubQNCivpmYjmn4/oiJ8NCivpmYjmn4/lkKsNCivpmYjmn4/lro8NCivpmYjmn4/lv5cNCivpmYjmn4/msoUNCivpmYjmn4/lsrMNCivpmYjmn4/ls7ANCivpmYjmn4/lh68NCivpmYjmn4/nkZ4NCivpmYjmn4/lroENCivpmYjmn4/ok4kNCivpmYjmn4/nkosNCivpmYjmn4/nv7ANCivpmYjmn4/ovpENCivpmYjmn4/njq4NCivpmYjmtLLmmJ8NCivpmYjngqvlkJsNCivpmYjngrPku7INCivpmYjngrPovrANCivpmYjngrPplJ8NCivpmYjngq/plKYNCivpmYjnj4rnj4oNCivpmYjnj43ojrkNCivpmYjnmoblhbQNCivpmYjnmofml60NCivpmYjnmofpvpkNCivpmYjnm4jlhagNCivpmYjnm4jlpoINCivpmYjnm4jlpoINCivpmYjnm4jlrokNCivpmYjnm4jnq7kNCivpmYjnm4jlkJsNCivpmYjnm4jlrZwNCivpmYjnm4jmnYkNCivpmYjnm4jotJ0NCivpmYjnm4jlqbcNCivpmYjnm4jnu64NCivpmYjnm4jnkosNCivpmYjnm4josJUNCivpmYjnm4jnkocNCivpmYjnm7jovr4NCivpmYjnpYjlrr4NCivpmYjnprnpvZANCivpmYjnp5HpoboNCivpmYjnp4vmlrkNCivpmYjnp4vluIYNCivpmYjnp4vnp4ANCivpmYjnp4vnuq8NCivpmYjnp4vokI0NCivpmYjnp4vpm68NCivpmYjnp4vnh5UNCivpmYjnuqLnjokNCivpmYjnuqrotrMNCivpmYjnvo7kupENCivpmYjnvo7njokNCivpmYjnvo7lpoINCivpmYjnvo7lubQNCivpmYjnvo7kvLYNCivpmYjnvo7lkJsNCivpmYjnvo7lkJ8NCivpmYjnvo7lu7cNCivpmYjnvo7np4ANCivpmYjnvo7oip0NCivpmYjnvo7njrINCivpmYjnvo7lqJ8NCivpmYjnvo7nuq8NCivpmYjnvo7kuZQNCivpmYjnvo7mg6ANCivpmYjnvo7nkLQNCivpmYjnvo7oj7ENCivpmYjnvo7pk4MNCivpmYjnvo7mhacNCivpmYjnvo7lhJINCivpmYjnvo7pnZkNCivpmYjnvo7pkrANCivpmYjnvr/osLcNCivpmYjoh7Tku7ANCivpmYjoh7Tlro8NCivpmYjoh7Tnpo8NCivpmYjoh7Tnnb8NCivpmYjoi6Xmm6YNCivpmYjojILpm4QNCivpmYjoi7HmnbANCivpmYjoi7HmjK8NCivpmYjoi7HmnbANCivpmYjoi7Hok5MNCivpmYjoi7HpuL8NCivpmYjoi5PlqJ8NCivpmYjombnmm7INCivpmYjombnlkJ8NCivpmYjombnmtIENCivpmYjooY3oh7MNCivpmYjooY3pnJYNCivpmYjotJ7ml60NCivpmYjotJ7lpqQNCivpmYjotJ7ok4kNCivpmYjotJ7njq4NCivpmYjpg4Hku4ENCivpmYjpg4HmlocNCivpmYjpg4HoiqwNCivpmYjpg4HmnbANCivpmYjpg4Hoj4ENCivpmYjpg4HmnqsNCivpmYjph43lhYkNCivpmYjph43lu7cNCivpmYjph43lhJINCivpmYjpn6blnKgNCivpmYjpn6bkvLYNCivpmYjpn6blu7cNCivpmYjpn6bmib8NCivpmYjpn6bosaoNCivpmYjpn7MNCivpmYjpo57oia8NCivpmYjpppnlpoINCivpmYjpppnlkJ8NCivpmYjpppnlqbcNCivpmYjlgI3nlIQNCivpmYjlubjnv6ANCivpmYjlh4znoJoNCivpmYjlk7LmsJENCivpmYjlk7LlvLoNCivpmYjlk7LotKQNCivpmYjlrrbmraMNCivpmYjlrrblpYcNCivpmYjlrrbnj40NCivpmYjlrrbnpaUNCivpmYjlrrbmuZYNCivpmYjlrrbpm68NCivpmYjlrrbmsYkNCivpmYjlrrbku6oNCivpmYjlrrbmhacNCivpmYjlrrblhbQNCivpmYjlrrbnkK4NCivpmYjlrrnokLENCivpmYjls7Dlt54NCivpmYjmgZUNCivpmYjmganojaMNCivpmYjmjK/kuJwNCivpmYjmjK/mtowNCivpmYjmjK/pk60NCivpmYjml7bnm58NCivpmYjkuablhYkNCivpmYjkuabmr5MNCivpmYjmoYLnjokNCivpmYjmoYLmhacNCivpmYjms7DlhagNCivpmYjms7DkvLYNCivpmYjms7Dls7ANCivpmYjms7Dpk60NCivpmYjmtZrpkqYNCivpmYjmtanojLkNCivpmYjkvankupENCivpmYjkvanmgKENCivpmYjkvankvakNCivpmYjkvannkZwNCivpmYjkvannjq4NCivpmYjnm4roo5UNCivpmYjnpZDmgowNCivpmYjnuroNCivpmYjntKDnj40NCivpmYjntKDlqKUNCivpmYjntKDnkZwNCivpmYjnuq/mgKENCivpmYjogJjlrr0NCivpmYjojYPosaoNCivpmYjpg6HmgKENCivpmYjlubLmt6YNCivpmYjkvJ/msJENCivpmYjkvJ/kv6ENCivpmYjkvJ/ojokNCivpmYjkvJ/oo5UNCivpmYjlgaXkuIoNCivpmYjlgaXlsIENCivpmYjlgaXpnJYNCivpmYjlm73lhYMNCivpmYjlm73mmI4NCivpmYjlm73ls7ANCivpmYjlm73mooENCivpmYjlm73mo4sNCivpmYjlm73ojaMNCivpmYjlm73plIsNCivpmYjlnZrmsJENCivpmYjln7nogrINCivpmYjln7nnq68NCivpmYjlqYnogrINCivpmYjlqYnljb8NCivpmYjlqYnoj4ENCivpmYjlqYnmtIENCivpmYjltIfljp8NCivpmYjmmIbpk60NCivpmYjlvannuq8NCivpmYjmjbcNCivpmYjlkK/lrZgNCivpmYjlkK/muIUNCivpmYjlkK/pk60NCivpmYjmlY/mmJ8NCivpmYjmlY/mlrANCivpmYjmopPnjq4NCivpmYjmooXppqgNCivpmYjmuIXlpYcNCivpmYjmuIXmupANCivpmYjmt5ENCivpmYjmt5HlkJsNCivpmYjmt5HmgKENCivpmYjmt5HoiqwNCivpmYjmt5HoiqwNCivpmYjmt5HnjrINCivpmYjmt5Hnp4sNCivpmYjmt5HotJ4NCivpmYjmt5HlqJ8NCivpmYjmt5HlqJ8NCivpmYjmt5HnnJ8NCivpmYjmt5HnvpoNCivpmYjmt5Hmg6ANCivpmYjmt5HokI0NCivpmYjmt5Hpm4UNCivpmYjmt5Hpk4MNCivpmYjmt5HmhacNCivpmYjmt5HpnZkNCivpmYjmuIrnp4sNCivpmYjnjJvlrpcNCivpmYjnpaXpkqcNCivpmYjnu43luq0NCivpmYjluoTkvJ8NCivpmYjojonlqbcNCivpmYjorrjmsJENCivpmYjpm6roiqwNCivpmYjpm6rljY4NCivpmYjmnbDoo5UNCivpmYjlh6/njrINCivpmYjlh6/pkr8NCivpmYjog5zlpoINCivpmYjog5zlmIkNCivpmYjljZrlurcNCivpmYjkuZTlrocNCivpmYjlqbfnjp8NCivpmYjlr4zmsJENCivpmYjlr4zojaMNCivpmYjmg6DmlocNCivpmYjmg6DlkJsNCivpmYjmg6DoiqwNCivpmYjmg6DnjrINCivpmYjmg6Dnvo4NCivpmYjmg6DlqJ8NCivpmYjmg6DlqbcNCivpmYjmg6DokI0NCivpmYjmg6Dpm68NCivpmYjmg6Dpm68NCivpmYjmg6DpvoQNCivpmYjmiazlk7INCivpmYjmmbbmmbYNCivpmYjmma/ms7ANCivpmYjmma/pkasNCivpmYjmmbrkuq4NCivpmYjmmbrkvJ8NCivpmYjmmbrpmLMNCivpmYjmmbrlrr0NCivpmYjmnJ3mlocNCivpmYjmnJ3nhpkNCivpmYjmo4vnj40NCivpmYjmuZjkuo4NCivpmYjmuZjnkLQNCivpmYjmuJ3mlocNCivpmYjnkKrpm68NCivpmYjnkKbnkLMNCivpmYjnmbvpmoYNCivpmYjnrZHnraANCivpmYjogoPmnYMNCivpmYjoiJLmhpsNCivpmYjoj4ENCivpmYjljY7kvJ8NCivpmYjlko/kuq4NCivpmYjotLrpkrANCivpmYjovpzkuq4NCivpmYjpgLjlubMNCivpmYjpgLjmmI4NCivpmYjpgLjnm4gNCivpmYjpgLjoj4ENCivpmYjpgLjnu7QNCivpmYjpgLjpuL8NCivpmYjov5vlv5cNCivpmYjov5vpmoYNCivpmYjpkqflsY8NCivpmYjpl7XpmoYNCivpmYjpmobmlowNCivpmYjpm4XlkJsNCivpmYjpm4XnjqsNCivpmYjpm4XoiqwNCivpmYjpm4XnjrINCivpmYjpm4XnjrINCivpmYjpm4Xoi5MNCivpmYjpm4XkvakNCivpmYjpm4Xpm6oNCivpmYjpm4XlqbcNCivpmYjpm4Xmg6ANCivpmYjpm4Xmg6ANCivpmYjpm4XnkKoNCivpmYjpm4XnkLQNCivpmYjpm4Xoj4ENCivpmYjpm4Xpm68NCivpmYjpm4Xpm68NCivpmYjpm4Xpk4MNCivpmYjpm4XmhacNCivpmYjpm4Xpn7UNCivpmYjpm68NCivpmYjpm6/mg6ANCivpmYjkupHmnLQNCivpmYjpobrlj5ENCivpmYjkvKDlhbQNCivpmYjmhI/mlocNCivpmYjmhI/pm68NCivpmYjmhYjpm4UNCivpmYjniLHnlIQNCivpmYjmlazmlocNCivpmYjmlazmnbANCivpmYjmlrDng4gNCivpmYjkuJrnu58NCivpmYjmpobmtrUNCivpmYjmr5Poia8NCivpmYjmr5PojLkNCivpmYjmr5PpkqcNCivpmYjmupDmraMNCivpmYjmuKnokI0NCivpmYjnhafmhYgNCivpmYjnhabmt5ENCivpmYjnhJXmo64NCivpmYjnkZ7liKkNCivpmYjnkZ7mmIwNCivpmYjnkZ7oiqwNCivpmYjnkZ7pko8NCivpmYjnkZ7nkZwNCivpmYjnkZ7pnJYNCivpmYjnkZ7pup8NCivpmYjnkZzor5cNCivpmYjnpbrlr4wNCivpmYjnu4/lm70NCivpmYjkuYnlv6ANCivpmYjkuYnnuqwNCivpmYjlnKPlsLkNCivpmYjlnKPlrpwNCivpmYjlnKPmnbANCivpmYjlnKPlrqoNCivpmYjokLHolJMNCivpmYjonILngY8NCivpmYjoo5XljYcNCivpmYjoo5Xlu7cNCivpmYjoo5XmmboNCivpmYjor5flubMNCivpmYjor5fms4kNCivpmYjor5flqbcNCivpmYjor5for5cNCivpmYjor5foi7kNCivpmYjov5DlvoENCivpmYjovr7oo5UNCivpmYjpm40NCivpmYjpnZbmgKENCivpmYjpvI7ku4ENCivpmYjlmInku4ENCivpmYjlmInkuqgNCivpmYjlmInlro8NCivpmYjlmInmgKENCivpmYjlmInnjrINCivpmYjlmInls7ANCivpmYjlmInojLUNCivpmYjlmInmt6YNCivpmYjlmInmg6ANCivpmYjlmInpm4ENCivpmYjlmInli6QNCivpmYjlmInlvrcNCivpmYjlmInojrkNCivpmYjlmInokKUNCivpmYjlmInnkK4NCivpmYjml5fmmIwNCivpmYjojaPmnbANCivpmYjojaPov5sNCivpmYjojaPogIANCivpmYjmsYnnj40NCivpmYjmsYnolJoNCivpmYjnkbbnnJ8NCivpmYjnoqfnuqINCivpmYjnoqfkupENCivpmYjnoZXkvJ8NCivpmYjnpo/mnpcNCivpmYjnu67ljY4NCivpmYjnu7TpgqYNCivpmYjnu7Tlk7INCivpmYjnu7Tku6oNCivpmYjnv6DlqbcNCivpmYjogofpuL8NCivpmYjok5PnjrINCivpmYjlv5fnnb8NCivpmYjpk60NCivpmYjpk63ms4kNCivpmYjpk63lvLoNCivpmYjpk63pm4QNCivpmYjpk63ogIANCivpmYjlh6TnjrINCivpmYjlh6TpuKMNCivpmYjku6oNCivpmYjku6rnj4oNCivpmYjku6rmtIENCivpmYjlrr3lpoINCivpmYjlub/pup8NCivpmYjlvrflkowNCivpmYjlvrfloIINCivpmYjlvrfov5wNCivpmYjlvoHlrpcNCivpmYjluobmmJ8NCivpmYjluobljY4NCivpmYjluobnu7QNCivpmYjluobnv7ANCivpmYjluobpuL8NCivpmYjmhafnjokNCivpmYjmhaflpoINCivpmYjmhaflkJsNCivpmYjmhafoip0NCivpmYjmhafnj4oNCivpmYjmhafnjrINCivpmYjmhafnvo4NCivpmYjmhafljb8NCivpmYjmhafnnJ8NCivpmYjmhafnuq8NCivpmYjmhafmlY8NCivpmYjmhafokI0NCivpmYjmhafpm68NCivpmYjmhafok4kNCivpmYjmhafmqLUNCivpmYjmhaflhbANCivpmYjmhZXlhJINCivpmYjmr4XmraMNCivpmYjmr4XpuL8NCivpmYjmtIHpn7MNCivpmYjojrnoirMNCivpmYjojrnok4kNCivpmYjojrnnkYQNCivpmYjnuqzmgakNCivpmYjolJrpnZINCivpmYjosIroirMNCivpmYjotKTlhbgNCivpmYjovonlkIkNCivpmYjpnIflrocNCivpmYjpu47moYINCivpmYjlrabmmI4NCivpmYjlrqrku4ENCivpmYjlrqrku6oNCivpmYjlv4bpm68NCivpmYjmmZPlp5cNCivpmYjmmZPpnZINCivpmYjmmZPpo44NCivpmYjmmZPlspoNCivpmYjmmZPoj4ENCivpmYjmmZPnraANCivpmYjmmZPmhacNCivpmYjmmZPkuL0NCivpmYjmoJHlubQNCivpmYjms73nj4oNCivpmYjnh5XkvLYNCivpmYjnh5Xoj4ENCivpmYjnh5XmgJwNCivpmYjpopblkJsNCivpmYjpopbnpaUNCivpmYjpopbmhacNCivpmYjnqYbok4kNCivpmYjnv7DnkosNCivpmYjolZnoirMNCivpmYjolZnoi7kNCivpmYjplKHljY4NCivpmYjplKbnp4ANCivpmYjplKbloIINCivpmYjplKbmhacNCivpmYjplKbpuL8NCivpmYjpnZnlpoINCivpmYjpnZnlrpwNCivpmYjpnZnmgKENCivpmYjpnZnmgKENCivpmYjpnZnmgKENCivpmYjpnZnoirMNCivpmYjpnZnmt5ENCivpmYjpnZnlroENCivpmYjpnZnku6oNCivpmYjpnZnmhacNCivpmYjpnZnotKQNCivpmYjpvpnnlJ8NCivpmYjpvpnlrr0NCivpmYjmm5nkuJwNCivpmYjogarku4ENCivpmYjoh4bku4ENCivpmYjolocNCivpmYjoloflpoINCivpmYjosKbmr4UNCivpmYjpqo/miawNCivpmYjpuL/mlocNCivpmYjpuL/lv5cNCivpmYjpuL/muIUNCivpmYjpuL/oo5UNCivpmYjpuL/pnJYNCivpmYjnkoflpoINCivpmYjkuLDmjK8NCivpmYjmgIDlk7INCivpmYjnjrrkuokNCivpmYjnkLzmt4cNCivpmYjnkLzmoaYNCivpmYjoibrlv4MNCivpmYjotZ7kuK0NCivpmYjpk7/ku7sNCivpmYjpn7XlpJkNCivpmYjpn7XlpoINCivpmYjpn7XlpoINCivpmYjpn7XlpoINCivpmYjpn7Xnq7kNCivpmYjpn7XlqbcNCivpmYjpn7XpnZkNCivpmYjpuY/npr4NCivpmYjpupLlhYMNCivpmYjpupLlhagNCivpmYjkuL3mlocNCivpmYjkuL3lpoINCivpmYjkuL3lrocNCivpmYjkuL3ogIwNCivpmYjkuL3oiqwNCivpmYjkuL3ljb8NCivpmYjkuL3nj6ANCivpmYjkuL3lqbcNCivpmYjkuL3okI0NCivpmYjkuL3pm68NCivpmYjkuL3ojrINCivpmYjlrp3njokNCivpmYjlrp3ojrINCivpmYjogIDku4ENCivpmYjogIDnrJkNCivpmYjppqjmgKENCivpmYjkv6rmlocNCivpmYjmqLHlrrkNCivpmYjoqonpvoQNCivpmYjpuaTkuK0NCivpmYjmh7/mmKANCivpmYjoibPpk4MNCivpmYjoiornp4ANCivpmYjmgJzlkJsNCivpmYjml7vmlL8NCivpmYjnjqDmupANCivpmYjlp67pnI8NCivpmYjlp7XlpoINCivpmYjlp7XlkJ8NCivpmYjlp7XnkbENCivpmYjmmLbmmLENCivpmYjnj4jnkKYNCivpmYjlvafppqgNCivpmYjnkIflpoINCivpmYjloJwNCivpmYjnkK7pl7UNCivpmYjnkKzlqbcNCivpmYjnkKzoj4ENCivpmYjmpLjmtpMNCivpmYjnjq4NCivpmYjnjq7lhbgNCivpmYjnjq7ogJgNCivpmYjnjq7mmLYNCivpmYjnrbHoirMNCivpmYjnrbHlqbcNCivpmYjnrbHnraANCivpmYjokKnoirgNCivpmYjpkrDnjqsNCivpmYjpkrDlqbcNCivpmYjpkrDnjroNCivpmYjpk6vojLkNCivpmYjpnIjlrocNCivpmYjolo/pm68NCivpmYjmu6LlpoINCivpmYjmu6Lmt5ENCivpmYjlrL/lm6ANCivpmYjlrL/kvLYNCivpmYjpoZfmlocNCivpmYjpkavpup8NCivpmYblsI/nh5UNCivpmYbmraPkuYkNCivpmYblraPlro8NCivpmYbkv6HpvpkNCivpmYbmtKXljY4NCivpmYbmooXlqbcNCivpmYbkupHms7ANCivpmYblh6TnjrINCivpmYbmt6/pk4MNCivpmbbogrLlnYcNCivpmbbmg5/okLENCivnq6Dmlofoip0NCivnq6DkvbPkupENCivnq6DmoLnmupANCivnq6Dnv5QNCivnq6DnkLzmlrkNCivpuqbkvanpm68NCivpuqbljaLlrp3lhagNCivlgoXkuIDpm4QNCivlgoXlrZANCivlgoXmlofov5sNCivlgoXmraPluIwNCivlgoXlhYnmmboNCivlgoXlro/mlowNCivlgoXkuprlh6ENCivlgoXmgKHoirMNCivlgoXph5Hlro8NCivlgoXlu7rlm70NCivlgoXmmKDlhYgNCivlgoXnvo7ok4kNCivlgoXkvanmt4cNCivlgoXlm73moIsNCivlgoXlkK/nmocNCivlgoXmt5Hpm68NCivlgoXmlq/lubMNCivlgoXpm4Xljb8NCivlgoXnhYzplKYNCivlgoXpk4XmlocNCivlgoXlvrfmlL8NCivlgoXplLnmt7wNCivlgoXnkK4NCivljZXkuqbkvqANCivllrvoh7PlloQNCivkuZTlrpflsKcNCivlr4zlurfnv5QNCivlva3kuIrlkIkNCivlva3lo6sNCivlva3ku4Hlv5cNCivlva3lj4rovrANCivlva3mloflro8NCivlva3mlofmhacNCivlva3ku6Xkv6ENCivlva3mraPoia8NCivlva3njonljY4NCivlva3kvIroiqwNCivlva3lpoLmlY8NCivlva3miJDmnbANCivlva3ml63liJ0NCivlva3lro/lkJsNCivlva3lv5fosaoNCivlva3kvbPkvJ8NCivlva3lrpfmhI8NCivlva3mgKHolZkNCivlva3mnIvpm40NCivlva3np4nmraMNCivlva3kv53mrKMNCivlva3kv4rnpo8NCivlva3lhqDnkZsNCivlva3lqIHnv5QNCivlva3lu7rojaMNCivlva3lvovlh6ENCivlva3mn4/lqIENCivlva3np4vokI0NCivlva3oi6XmhYgNCivlva3pg4Hku4ENCivlva3lk7Lku4ENCivlva3mtankvKYNCivlva3kvJ/lkJsNCivlva3lm73ls7ANCivlva3ltIfkv6ENCivlva3lkK/pkqcNCivlva3mt5Hnj40NCivlva3nm5sNCivlva3pm6rnkKYNCivlva3llpzmtakNCivlva3mmbblo7ANCivlva3mu4vokI0NCivlva3oiJLlvaYNCivlva3lvIDmmI4NCivlva3pm4Xnu6INCivlva3niLHoi7kNCivlva3nkZ7oi5MNCivlva3lnKPokI0NCivlva3lmInlkJsNCivlva3ojaPmoYINCivlva3pk63mt4cNCivlva3mhaflpoINCivlva3otKTkuIANCivlva3mmZPnkKoNCivlva3plKbngqsNCivlva3pqo/mtIENCivlva3kuL3mhacNCivlva3ppqjmhacNCivlva3njq7lvaYNCivlva3pooDoi7kNCivmma/pm6jnp4sNCivmm77lh6Hlk7INCivmm77kuo7mhYgNCivmm77ljYPosaoNCivmm77lo6vovakNCivmm77lo6sNCivmm77lrZDluq0NCivmm77lsI/njrINCivmm77ku4HkvZENCivmm77lhYPlv5cNCivmm77lrZTpkrANCivmm77mlocNCivmm77mloflv6ANCivmm77mloflvawNCivmm77mlofmhacNCivmm77mlofpoZcNCivmm77kuJbnhYwNCivmm77ku6TnkZwNCivmm77lubPor7ANCivmm77mraPogIANCivmm77njonlpoINCivmm77njonoj4ENCivmm77nq4vlvrcNCivmm77ku7Lnm58NCivmm77lkInlro8NCivmm77lpoLlkJsNCivmm77lronnkKoNCivmm77nvr3lsq0NCivmm77lkJvosaoNCivmm77lv5fnjoQNCivmm77lv5fmnbANCivmm77lv5fpup8NCivmm77np4DmooUNCivmm77ogrLoj4ENCivmm77kvbPnjrINCivmm77kvbPnkbENCivmm77lraPmrYYNCivmm77lsJrlv5cNCivmm77mgKHlqJ8NCivmm77mgKHlmIkNCivmm77mib/lv5cNCivmm77mmI7lvrcNCivmm77ms5PpnJYNCivmm77oip3lhbANCivmm77kv6HmnbANCivmm77kv4rlvaYNCivmm77kv4rmmboNCivmm77kv4rosaoNCivmm77kv4rnjq4NCivmm77lhqDmoaYNCivmm77lk4HlvbANCivmm77lp7/nu64NCivmm77lqIHosJUNCivmm77lu7rlkowNCivmm77lu7rljZoNCivmm77lu7rojaMNCivmm77lu7rpnJYNCivmm77lvabpl7UNCivmm77lvabnv7ANCivmm77mgJ3nu7QNCivmm77mlL/osaoNCivmm77mmK3nv5QNCivmm77mmKDpvoQNCivmm77mn4/mtrUNCivmm77mn4/lhbQNCivmm77nmofpvpkNCivmm77np4vmlY8NCivmm77nvo7mgKENCivmm77nvo7ljY4NCivmm77nvo7pvoQNCivmm77oi7Hls7ANCivmm77pg4HmlocNCivmm77pg4HpopYNCivmm77lrrbmjK8NCivmm77lsZXlhbYNCivmm77kuabmhacNCivmm77kvannkLMNCivmm77ntKDpk4MNCivmm77ovanlvawNCivmm77kvJ/nv5QNCivmm77lgaXpgKINCivmm77lm73lv5cNCivmm77lm73kuaYNCivmm77lm73oo5UNCivmm77lm73pi4YNCivmm77lqYnmg6ANCivmm77lurjlk7INCivmm77lkK/lvLoNCivmm77mooXnjokNCivmm77mt5HoirMNCivmm77mt5HmlY8NCivmm77mt5HokI0NCivmm77mtrXlia8NCivmm77npaXovr4NCivmm77otK/mmboNCivmm77lh6/mgowNCivmm77ljZrlvaYNCivmm77lr4zpkrANCivmm77mg6DnjrINCivmm77mg6Dpm68NCivmm77mlpDnuqINCivmm77mmbrlvJgNCivmm77mmbrnpboNCivmm77muZjkupENCivmm77oiJLlubMNCivmm77ljY7pvoQNCivmm77otLXnpa8NCivmm77pkqfpvI4NCivmm77pm4XpnZINCivmm77pm4Xmg6ANCivmm77pm4Xpk4kNCivmm77kupHmspANCivmm77mhI/mlocNCivmm77mhYjmg6ANCivmm77mmZbmtLgNCivmm77muqXlhYMNCivmm77nhJXmnbANCivmm77nkZ7mmYMNCivmm77nkZvnkLMNCivmm77nraDlh4oNCivmm77lnKPnhLYNCivmm77oo5Xlh68NCivmm77or5fnv7ANCivmm77pnZblqJ8NCivmm77pvI7lhYMNCivmm77lmInoi7ENCivmm77ojaMNCivmm77noqfojrINCivmm77nu7TnvqQNCivmm77pk63ooZQNCivmm77lvrfpvpkNCivmm77luobnkYQNCivmm77mhafnnJ8NCivmm77mvoTloIkNCivmm77lrqrlv6ANCivmm77mmZPnkKoNCivmm77olZnoj4ENCivmm77pnZnmgKENCivmm77nuYHpnZINCivmm77puL/lrrYNCivmm77mgIDotKQNCivmm77nkLzmhacNCivmm77pn7XnnJ8NCivmm77kuL3lqJ8NCivmm77lrp3no4ENCivmm77nu6flop4NCivmm77ogIDotKQNCivmm77ppqjku6oNCivmm77pvoTmhacNCivmm77pg4XntZwNCivmm77nkK7lvaYNCivmm77mmpDmuIUNCivmm77nrbHlqbcNCivmm77pkrDoiqwNCivmm77nno0NCivmuLjlipvooYwNCivmuLjlo6vmsYkNCivmuLjlpKfnuqwNCivmuLjkuYvlqLQNCivmuLjmloflv5cNCivmuLjmlofogaoNCivmuLjkuJbmlowNCivmuLjmnKzlqIENCivmuLjnjonlp78NCivmuLjlhYblkJsNCivmuLjlkJvoi7kNCivmuLjlv5fkvJ8NCivmuLjmnY7pm4QNCivmuLjkuprkv5ANCivmuLjkvbPmlY8NCivmuLjkvanli4sNCivmuLjlrpflrqoNCivmuLjlrpznvqQNCivmuLjmgKHnpaUNCivmuLjmmIznv7ANCivmuLjmmI7ku6oNCivmuLjmrKMNCivmuLjpnZLpnI8NCivmuLjlpZXpnJYNCivmuLjmlL/nkosNCivmuLjnp4vmgKENCivmuLjoi7HlpoINCivmuLjlqJ/lqJ8NCivmuLjlrrbosaoNCivmuLjmganmlL8NCivmuLjkvannraANCivmuLjpq5jmnbANCivmuLjlqYnpnZINCivmuLjlkK/ovokNCivmuLjmt5HlpoINCivmuLjmt5Hmg6ANCivmuLjnpaXmnbANCivmuLjlh6/lqpwNCivmuLjkuZTmmboNCivmuLjmg6DnjrINCivmuLjmma/nv5QNCivmuLjmmbrotoUNCivmuLjmnJ3oiJwNCivmuLjnq6Pnm5sNCivmuLjoiJzmnbANCivmuLjov5vlr4wNCivmuLjpm4XoirMNCivmuLjpm4XlqbcNCivmuLjpm4XnraANCivmuLjnkZ7ojrINCivmuLjoo5XlvrcNCivmuLjojaPljY4NCivmuLjluoboirMNCivmuLjovonnpaUNCivmuLjmmZPoirgNCivmuLjplKHlrpcNCivmuLjpqo/kvJ8NCivmuLjplYfpgqYNCivmuLjnjK7nvqQNCivmuLjml7vlrqoNCivmuLjnn57nmocNCivmsaTkuIDnj4oNCivmsaTku4rlhbANCivmsaTnjonnkLQNCivmsaTlv5flv6ANCivmsaTkvbPnv7ANCivmsaTlsrPosYoNCivmsaTmsrvpgqYNCivmsaTlrrbosaoNCivmsaTlgaXmlocNCivmsaTmuIrlr4wNCivmsaTlr4zmo4sNCivmsaTlko/nkZwNCivmsaTpm4XmnqsNCivmsaTluobpk64NCivmsaTpuL/otKQNCivnhKbkv6HnpaUNCivnqIvkuYvlroENCivnqIvmlofplLoNCivnqIvnq4vovokNCivnqIvlv5fmlocNCivnqIvlsJrliJkNCivnqIvnp4npkasNCivnqIvlpZXmrKMNCivnqIvlu7rnv7ANCivnqIvmn4/nq6ANCivnqIvnp4vlhbANCivnqIvkvJ/mlL8NCivnqIvlqYnmrKMNCivnqIvmt5HnjrINCivnqIvmlpDmlocNCivnqIvpm4Xmg6ANCivnqIvor5flqbcNCivnqIvmtIHoj6ENCivnqIvnkLzokLENCivnqIvolbTpnJ4NCivnq6Xlo6voiqwNCivnq6XlvJgNCivnq6XlronkuqgNCivnq6Xkv6HlkowNCivnq6Xnvo7mu6ENCivnq6Xmg5/mlrANCivnq6XmuZjoirgNCivnq6XlnKPmnbANCivnq6Xpn7XlpoINCivnq6Xmu6Lok4kNCivoiJLlqbflqbcNCivljY7lm73plIsNCivopoPmgJ3pvZANCivotLnpqpDokbMNCivotLrljprlubMNCivotLrnkZ7kuL0NCivkubDoj4HljY4NCivovpzkv6Hnpo8NCivovpzpg4Hku4ENCivovpzmg6DnvqQNCivovpzpnZnmgKENCivpl7Xku7vov5wNCivpmLPmraPlhYkNCivkupHmmbrli4cNCivpobvkuIroi5ENCivlhq/lhYHkuK0NCivlhq/mlofmlL8NCivlhq/msLjmu6INCivlhq/kvZHpm4QNCivlhq/kvbPnkKYNCivlhq/plb/pvpkNCivlhq/lu7rnrYwNCivlhq/nvo7nj4oNCivlhq/mmYvlmIkNCivlhq/lvanlqJ8NCivlhq/ljZrkvJ8NCivlhq/nv5TnkZwNCivlhq/nkZ7pmLMNCivlhq/lv5fpgbUNCivlhq/ngr3ngpwNCivlhq/ogIDmlocNCivpu4TkuIANCivpu4TkuIDkvKYNCivpu4TkuZnkuIoNCivpu4TlipvoqIANCivpu4TkuIroirMNCivpu4Tlh6Hnu7QNCivpu4Tkuo7oiqwNCivpu4Tkuo7nj4oNCivpu4Tkuo7lk7INCivpu4Tkuo7nnJ8NCivpu4Tkuo7npa8NCivpu4TljYPoirMNCivpu4TljYPlh4wNCivpu4TljYPljY4NCivpu4Tlo6sNCivpu4Tlo6vmrKMNCivpu4Tlo6vljp8NCivpu4Tlo6vls7ANCivpu4Tlo6vpkooNCivpu4Tlo6vlmIkNCivpu4Tlo6vosaoNCivpu4Tlo6votKQNCivpu4TlpKfkvKYNCivpu4TlrZDmiY0NCivpu4TlrZDlu7oNCivpu4TlrZDljb8NCivpu4TlrZDovakNCivpu4TlrZDnqYYNCivpu4TlsI/kvakNCivpu4TlsI/lqJ8NCivpu4TlsbHls7ANCivpu4TmiY3ml7oNCivpu4TkuK3kvJ8NCivpu4TkuYvkuq0NCivpu4Tku4HlvJgNCivpu4Tku4Hoia8NCivpu4Tku4Hmn48NCivpu4Tku4HnkosNCivpu4TlhYPlsbENCivpu4TlhYPpmoYNCivpu4TlhYPpqo8NCivpu4Tlj4vosKYNCivpu4TlpKnlgaUNCivpu4TlsJHpm6gNCivpu4Tlv4PmgKENCivpu4Tlv4PmgKENCivpu4Tlv4PmgKENCivpu4Tlv4Pku6oNCivpu4Tlv4Plp64NCivpu4TmlofmraMNCivpu4TmloflrZ0NCivpu4TmlofmnZENCivpu4TmlofmgKENCivpu4Tmlofkv6ENCivpu4TmloflvaYNCivpu4TmlofnjrINCivpu4Tmlofnm4oNCivpu4Tmlofog5wNCivpu4TmlofpmoYNCivpu4TmlofnpboNCivpu4TmlofojaMNCivpu4TmlofnkosNCivpu4TmlofpvpkNCivpu4TmlofpupINCivpu4Tml6XpnZINCivpu4TmnIjnkb4NCivpu4TkuJblrokNCivpu4TkuJblrpwNCivpu4TkuJbmnIsNCivpu4TkuJblnZoNCivpu4TkuJbmtowNCivpu4TkuJblmIkNCivpu4TkuJblop4NCivpu4TkuJbpopYNCivpu4Tku6XkuZQNCivpu4Tku5Xovr4NCivpu4TliqDmrKMNCivpu4Tlj6/nlIQNCivpu4Tlt6flqbcNCivpu4TlubPlrocNCivpu4TlvJjlkIkNCivpu4TlvJjmr4UNCivpu4TmraPkuIANCivpu4TmraPlrokNCivpu4TmraPkvakNCivpu4TmraPkvJ8NCivpu4TmraPpoboNCivpu4TmraPplJ8NCivpu4TmsLjku4ENCivpu4TmsLjljYcNCivpu4TmsLjmmboNCivpu4TmsLjmsYkNCivpu4TmsYDmu6ENCivpu4TnjonlkJsNCivpu4Tnjonpm6gNCivpu4TnjonlqJ8NCivpu4TnjonlqbcNCivpu4Tnjonoj4ENCivpu4TnjonojrkNCivpu4TnjonlhbANCivpu4Tnq4vmlocNCivpu4Tnq4voiqwNCivpu4Tnq4vovr4NCivpu4Tnq4vnuqwNCivpu4TkuqbokLENCivpu4Tku7LmraMNCivpu4Tku7LnhaYNCivpu4Tku7vlu7YNCivpu4TlhYnnjokNCivpu4TlhYnmu6ENCivpu4TlhYbmlY8NCivpu4Tlhajlr4wNCivpu4TlkInlu7cNCivpu4TlkI3msaANCivpu4TlpJnmhacNCivpu4TlpoLnnJ8NCivpu4TlpoLnv7ANCivpu4Tlroflu7cNCivpu4TlrojnlLANCivpu4TlronlvrcNCivpu4Tml63lvJgNCivpu4Tml63ovokNCivpu4TmsZ/nkZwNCivpu4Tnmb7ngb8NCivpu4Togb/lkJsNCivpu4Toh7PmnrANCivpu4Toh7PpuY8NCivpu4TkvK/lubQNCivpu4TlhYvku7sNCivpu4TlkJvmgKENCivpu4TlppnoiqwNCivpu4TlrZ3lvbANCivpu4Tlro/kuq4NCivpu4Tlro/ov5sNCivpu4Tlro/pqo8NCivpu4Tlv5fku4ENCivpu4Tlv5flubMNCivpu4Tlv5fmiJANCivpu4Tlv5fmmI4NCivpu4Tlv5fkvJ8NCivpu4Tlv5flvLoNCivpu4Tlv5fmiawNCivpu4Tlv5fpm4QNCivpu4Tlv5flmIkNCivpu4Tlv5fosaoNCivpu4Tlv5fpk60NCivpu4Tlv5fpvpkNCivpu4TmnY/lpoINCivpu4Tmspvlo7ANCivpu4Tnp4DnjrINCivpu4Tnp4DlrrkNCivpu4Tnp4DljY4NCivpu4Tnp4Dok4kNCivpu4TogrLkv6ENCivpu4Toia8NCivpu4TpgqblvaYNCivpu4Tkvp3mlocNCivpu4TkvbPlhYMNCivpu4TkvbPmmKUNCivpu4TkvbPlqpsNCivpu4TkvbPljY4NCivpu4TkvbPlqLQNCivpu4TkvbPolZkNCivpu4Tkvankv5ANCivpu4TkvanokLENCivpu4TljZPlkJsNCivpu4TlnaTlvrcNCivpu4TlrZ/kuJMNCivpu4TlrZ/mqLUNCivpu4Tlrpfln7oNCivpu4TlrpfotKQNCivpu4TlrpznjrINCivpu4TlrpvotJ4NCivpu4Tlubjku6oNCivpu4Tlv7XoirkNCivpu4TmgKHlkJsNCivpu4TmgKHnj4oNCivpu4TmgKHojLkNCivpu4TmgKHokI0NCivpu4TmgKHoj4ENCivpu4TmgKHpm68NCivpu4TmgKHlmIkNCivpu4TmgKHnu7QNCivpu4TmgKHpvoQNCivpu4Tmib/lvrcNCivpu4TmmIzpvI4NCivpu4TmmI7lv5cNCivpu4TmmI7lvaYNCivpu4TmmI7nkIYNCivpu4TmmI7nkZ4NCivpu4TmmI7mhacNCivpu4TmmJXlspoNCivpu4TkuJzmtbcNCivpu4Tmnb7nraANCivpu4TmrKPmgKENCivpu4TmrKPmhIkNCivpu4TmrKPolZkNCivpu4TmsrPpoboNCivpu4TmsrvlubMNCivpu4Tnjp/nkb4NCivpu4Tnp4npkqcNCivpu4Toip3ljY4NCivpu4ToirfkupENCivpu4Tph5HmsaQNCivpu4Tph5HmoJENCivpu4Tplb/ms70NCivpu4Tkuq3okI0NCivpu4Tkuq7lh68NCivpu4Tkv6HmlocNCivpu4Tkv6HmjbcNCivpu4Tkv6Hmo6ANCivpu4Tkv6HmgboNCivpu4Tkv6HlvbANCivpu4Tkv6Hpk60NCivpu4Tkv6HpopYNCivpu4Tkv6HmlowNCivpu4Tkv53nkoENCivpu4Tkv4rnlJ8NCivpu4Tkv4rlk7INCivpu4Tkv4rmt4cNCivpu4Tkv4rmnbANCivpu4Tkv4rmnbANCivpu4Tkv4rmnbANCivpu4Tkv4rlh68NCivpu4Tkv4rmo4sNCivpu4Tkv4roiJwNCivpu4Tkv4rpmoYNCivpu4Tkv4rnpboNCivpu4Tkv4rlmIkNCivpu4Tkv4rnu7QNCivpu4Tkv4rosaoNCivpu4Tkv4rotKQNCivpu4Tkv4rpopYNCivpu4Tkv4rpvpkNCivpu4Tkv4rng6gNCivpu4Tkv57mlpANCivpu4TlhqDmgKENCivpu4TlhqDnqIsNCivpu4TlhqDpm4UNCivpu4TlhqDlrr4NCivpu4TlhqDpvpkNCivpu4Tli4fmhacNCivpu4Tljprnm5sNCivpu4Tlk4HmnbANCivpu4Tlk4Hmr4UNCivpu4TlpZXmj4YNCivpu4TlpZXpnJYNCivpu4Tlp7/lqbcNCivpu4Tlp7/nu6sNCivpu4TlqIHlh68NCivpu4TlqIHpk60NCivpu4TlrqPlh68NCivpu4TlrqPnqYYNCivpu4Tlu7rkuK0NCivpu4Tlu7rmlocNCivpu4Tlu7rpnZINCivpu4Tlu7rlh68NCivpu4Tlu7rmmboNCivpu4Tlu7rnqIsNCivpu4Tlu7rpkqcNCivpu4Tlu7rmupANCivpu4Tlu7rlvbANCivpu4Tlu7rosaoNCivpu4Tlu7rpk60NCivpu4Tlu7rli4sNCivpu4Tlu7rpopYNCivpu4Tlu7rpvpkNCivpu4TlvablpKoNCivpu4TlvablvLoNCivpu4TlvabljZoNCivpu4TlvabnmpMNCivpu4TlvabnkZwNCivpu4Tlvablrr4NCivpu4TlvabmqLUNCivpu4TlvabmlowNCivpu4TmgJ3lh68NCivpu4TmgJ3lmIkNCivpu4TmgJ3otKQNCivpu4TmgJ3njq4NCivpu4TmlL/ljp8NCivpu4TmlL/miawNCivpu4TmlL/pvpkNCivpu4TmmKXloKQNCivpu4TmmK3ku4ENCivpu4TmmK3mmboNCivpu4TmmK3nu7QNCivpu4TmmKDnkYQNCivpu4TmmLHkuK0NCivpu4TmmLHmgboNCivpu4TmmLHpvpkNCivpu4Tmn4/lhYMNCivpu4Tmn4/lvLoNCivpu4Tmn4/kuZQNCivpu4Tmn4/nv5QNCivpu4Tmn4/nkZ4NCivpu4Tmn4/nu64NCivpu4Tmn4/nkosNCivpu4Tmn4/nv7ANCivpu4Tmn4/nprINCivpu4TkuLrmoIsNCivpu4TngrPlrqoNCivpu4Tnj4rokI0NCivpu4Tnj4Dpkp8NCivpu4Tnm4jmg6ANCivpu4Tnm4jlvbANCivpu4Tnm7jlv5cNCivpu4Tnp4voirMNCivpu4Tnp4vokI0NCivpu4Tnp4vnkZsNCivpu4Tnp4vpnJ4NCivpu4Tnvo7njokNCivpu4Tnvo7njrINCivpu4Tnvo7lqJ8NCivpu4Tnvo7nvpoNCivpu4Tnvo7nrZENCivpu4Tnvo7pm68NCivpu4Tnvo7ok4kNCivpu4Tnvo7nh5UNCivpu4Toh7TmgZINCivpu4Toh7Tov5wNCivpu4Toi6XolocNCivpu4TojILmupANCivpu4Toi7HlvaYNCivpu4Toi7HmnbANCivpu4Toi7Hpk60NCivpu4TooY3pkqYNCivpu4TotJ7popYNCivpu4Tpg4Hku4ENCivpu4Tpg4HnjqsNCivpu4Tpg4Hnj4oNCivpu4Tpg4HojJcNCivpu4Tpg4HlqbcNCivpu4Tpg4Hmo6ANCivpu4Tpg4Hpm68NCivpu4Tpg4HpnZkNCivpu4Tph43lh68NCivpu4Tpn6bnkKoNCivpu4Tpn6bli4sNCivpu4TpppnmppUNCivpu4Tku5PlvaYNCivpu4Tlk7LmnqsNCivpu4TlrZnlrocNCivpu4Tlrrbnj40NCivpu4TlrrbpmoYNCivpu4TlrrbnuqwNCivpu4Tls7vls6UNCivpu4Tluq3pkrANCivpu4TmjK/nlKsNCivpu4TmjK/luq0NCivpu4TmjK/or5oNCivpu4TmjK/njrENCivpu4Tkuablr4UNCivpu4TkuabpkrANCivpu4Tms7DmmIYNCivpu4Tms7DpnJYNCivpu4TmtanlpKkNCivpu4TmtanpkqcNCivpu4TkvanoirgNCivpu4TkvanlqJ8NCivpu4TkvanoiJINCivpu4TkvannkZwNCivpu4Tnm4rlu7oNCivpu4TnpZbotKQNCivpu4TntKDnnJ8NCivpu4Tnuq/nvo4NCivpu4Tog73kuLANCivpu4Tpkorkv4oNCivpu4TkvJ/lrpkNCivpu4TkvJ/kv64NCivpu4TkvJ/ls7ANCivpu4TkvJ/mnbANCivpu4TkvJ/or5oNCivpu4TkvJ/pk60NCivpu4TlgaXlpYcNCivpu4TlgaXmmY8NCivpu4TlgaXmuqINCivpu4Tlh7DmhYgNCivpu4Tlm73lhagNCivpu4Tlm73oirMNCivpu4Tlm73kvKYNCivpu4Tlm73lsZUNCivpu4Tlm73mmYsNCivpu4Tlm73ovakNCivpu4Tlm73moIsNCivpu4Tlm73pkqcNCivpu4Tlm73oo5UNCivpu4Tlm73ojaMNCivpu4Tlm73osaoNCivpu4Tlm73pkp8NCivpu4TloILovakNCivpu4Tln7nls7sNCivpu4Tln7npk60NCivpu4TlqYnotJ4NCivpu4TlqYnoj4ENCivpu4TlsInnv5QNCivpu4TltIforq0NCivpu4TltIfpk60NCivpu4TluLjmoJENCivpu4Tlvanpk60NCivpu4Tmg5/lnKMNCivpu4TlkK/lro8NCivpu4TlkK/kv64NCivpu4TlkK/kuaYNCivpu4TlkK/lvbANCivpu4TmlY8NCivpu4TmlY/kv64NCivpu4TmlY/ljY4NCivpu4TmlY/mhacNCivpu4TmooXnjrINCivpu4Tmt7vomY4NCivpu4TmuIXms7ANCivpu4TmuIXpup8NCivpu4Tmt5HlspENCivpu4Tmt5HoiqwNCivpu4Tmt5HnjrINCivpu4Tmt5HotJ4NCivpu4Tmt5Hljb8NCivpu4Tmt5HmoYMNCivpu4Tmt5HmooUNCivpu4Tmt5HlqpsNCivpu4Tmt5HnkKoNCivpu4Tmt5HljY4NCivpu4Tmt5Hpm68NCivpu4Tmt5HnlIQNCivpu4Tmt5HpnZkNCivpu4TmuIrotKQNCivpu4Tnmo4NCivpu4TnpaXmgakNCivpu4TnpaXmlowNCivpu4Tnu43okLENCivpu4TojokNCivpu4TojonlqJ8NCivpu4TojonnkKoNCivpu4TojonlmIkNCivpu4TpgJTlsqkNCivpu4Tpm6rlh6QNCivpu4TmnbDmlocNCivpu4Tlh6/lqIENCivpu4Tlh6/nkKoNCivpu4Tlh6/pup8NCivpu4Tog5zlv5cNCivpu4Tog5zoo5UNCivpu4TljZrms7ANCivpu4Tllpzpup8NCivpu4TlsKfkvJ8NCivpu4TlqbflqbcNCivpu4Tlr4wNCivpu4Tlr4zor6YNCivpu4TlpI3ogaoNCivpu4Tmg6DlkJsNCivpu4Tmg6DoiqwNCivpu4Tmg6Dnj40NCivpu4Tmg6DlqKUNCivpu4Tmg6DmlY8NCivpu4Tmg6DnkLQNCivpu4Tmg6Dli6QNCivpu4Tmg6Dor5cNCivpu4Tmg6DpnJ4NCivpu4TmiazlkI0NCivpu4Tmlq/pqo8NCivpu4Tmma/oo5UNCivpu4Tmmbrli4cNCivpu4TmmbrkvJ8NCivpu4TmmbrlurcNCivpu4TmmbrpmoYNCivpu4Tmmbrpk60NCivpu4Tmmbrnjq4NCivpu4TmnJ3nkLQNCivpu4TmnJ3mooENCivpu4TmpI3mh4sNCivpu4TmuZjlt6cNCivpu4TmuZjlqbcNCivpu4TmuJ3oirMNCivpu4TnkKrlqbcNCivpu4TnkLPpkqcNCivpu4TnkKbmo7sNCivpu4TnmbvplK4NCivpu4Tnq6PljZcNCivpu4TnrZHpkrANCivpu4TlloTmmZYNCivpu4ToiJLlvaYNCivpu4ToiJzlv6ANCivpu4Toj4HolocNCivpu4Toj4roi7ENCivpu4Tlko/nkZ4NCivpu4TotLXloIINCivpu4TpgLgNCivpu4TpgLjnuq8NCivpu4TpgLjnjq4NCivpu4TpkqfmsoENCivpu4Tpl7XlhpwNCivpu4Tpm4XlkJsNCivpu4Tpm4XoirMNCivpu4Tpm4XmtKUNCivpu4Tpm4XnjrINCivpu4Tpm4Xljb8NCivpu4Tpm4Xmt5ENCivpu4Tpm4Xpm6oNCivpu4Tpm4Xmg6ANCivpu4Tpm4XnkKoNCivpu4Tpm4XnkLQNCivpu4Tpm4XokI0NCivpu4Tpm4Xpm68NCivpu4Tpm4XokLENCivpu4Tpm4Xpk4MNCivpu4Tpm4XmhacNCivpu4Tpm4XpvoQNCivpu4Tpm6/njokNCivpu4Tpm6/nraANCivpu4TpobrlkIkNCivpu4TkvKDlm7QNCivpu4Tlu4nmmboNCivpu4TmhI/ojLkNCivpu4TmhI/otoUNCivpu4TmhYgNCivpu4TmlazlhYMNCivpu4TmlazmlowNCivpu4TmmZbmlocNCivpu4TmpbfnpboNCivpu4TmpoblqbcNCivpu4Tmr5Pnv44NCivpu4Tmr5PljY4NCivpu4TmupDnkosNCivpu4Tnhaflh68NCivpu4TnhabmsJsNCivpu4TnkZ/oirgNCivpu4TnkZ7kvLYNCivpu4TnkZ7lsY8NCivpu4TnkZ7npaUNCivpu4TnkZ7pmLMNCivpu4TnkZ7lhbQNCivpu4TnkZzmt5ENCivpu4Tnm5/lh68NCivpu4TnpbroiqwNCivpu4TnraDnnJ8NCivpu4TkuYnlkJsNCivpu4TkuYnpk60NCivpu4TnvqTpm4QNCivpu4TlnKPlnLMNCivpu4TlnKPlk7INCivpu4TlnKPmnbANCivpu4TlnKPmo7sNCivpu4TlnKPpuL8NCivpu4Too5XkuK0NCivpu4Too5XlrpwNCivpu4Too5Xnm5sNCivpu4Too5Xnv5QNCivpu4Too5XmmLYNCivpu4Tor5foirgNCivpu4Tor5fojLkNCivpu4Tor5fmtrUNCivpu4Tor5fmg6ANCivpu4Tor5fpm68NCivpu4Tor5foi7kNCivpu4TpgZPlhagNCivpu4Tpk4PnkKoNCivpu4Tpmr3nkKYNCivpu4TpnZboirgNCivpu4TpnZbmg6ANCivpu4TpnZbpm68NCivpu4TpvI7og70NCivpu4TlmInmsJENCivpu4TlmInli4cNCivpu4TlmInkvKYNCivpu4TlmInpm6oNCivpu4TlmInokLENCivpu4TlmInotKQNCivpu4TojaPlsbENCivpu4TojaPpoboNCivpu4TmsYnlhYkNCivpu4TmsYnovokNCivpu4Tnnb/kvLgNCivpu4TnoqfkupENCivpu4Tnpa/luoYNCivpu4Tnu7QNCivpu4Tnu7TmmboNCivpu4Togoflro8NCivpu4Tov5zlro8NCivpu4Tpk63kvJ8NCivpu4Tpk63ovokNCivpu4TprYHlvawNCivpu4Tku6rlkJsNCivpu4Tlvrfnp4ANCivpu4TlvrfngpwNCivpu4TluobljY4NCivpu4TmhafnjokNCivpu4TmhafoiqwNCivpu4TmhaflqJ8NCivpu4TmhafojLkNCivpu4Tmhafoj4ENCivpu4Tmhafnpa8NCivpu4TmvoTkvJ8NCivpu4TolJrku4ENCivpu4TotKTnq6ANCivpu4TpnIflrocNCivpu4TlrqrlvpcNCivpu4Tlv4boj4ENCivpu4TmmZPkvakNCivpu4TmmZPpn7MNCivpu4TmmZPoj7ENCivpu4TmmZPolocNCivpu4Tnh5XlqKUNCivpu4TlhbTlhYMNCivpu4TolZnokI0NCivpu4Tpk67mmZYNCivpu4TplKbnq6ANCivpu4TpnZnlrZANCivpu4TpnZnlrpwNCivpu4TpnZnmgKENCivpu4TpnZnojokNCivpu4TpvpnkuIANCivpu4TlupTnkocNCivpu4TogarnkKoNCivpu4TolofnkLwNCivpu4Tpqo/ovr4NCivpu4TpuL/mmboNCivpu4TnpLzkvLgNCivpu4TolrDojrkNCivpu4Tlj4znjokNCivpu4TmgIDluoYNCivpu4TngJrlvrcNCivpu4TnkLzlpoMNCivpu4TnkLzljY4NCivpu4TnkLzku6oNCivpu4TnkLzku6oNCivpu4TnkLzmhacNCivpu4TnkLzmhacNCivpu4TnkLzosIoNCivpu4TnkLwNCivpu4TplZznlJ8NCivpu4Tpn7XlpoINCivpu4Tpn7Xpn7UNCivpu4TpuY/lm74NCivpu4TkuL3lpoMNCivpu4TkuL3oiqwNCivpu4TkuL3pppkNCivpu4TkuL3lrrkNCivpu4TkuL3ok4kNCivpu4TkuL3pk64NCivpu4Tlrp3njokNCivpu4Tlrp3ku6oNCivpu4Tlrp3nqLkNCivpu4TnjK7osIYNCivpu4Tnu6flop4NCivpu4TogIDmlocNCivpu4TogIDkv4oNCivpu4TogIDlvrcNCivpu4TogIDojrkNCivpu4TogIDovokNCivpu4Torq7lvrcNCivpu4Tpkp/oi4cNCivpu4TppqjmgKENCivpu4Tppqjku6oNCivpu4TppqjmhacNCivpu4Tppqjmr4UNCivpu4TppqjpnIgNCivpu4TpvoTokLENCivpu4TlhbDnjokNCivpu4Tpk4HosaoNCivpu4TmmL7lqbcNCivpu4ToibPnjokNCivpu4TnjqDmmZ8NCivpu4Tlp7XnkYQNCivpu4TmmLbmlowNCivpu4Tli5bovakNCivpu4TnkIfoi5MNCivpu4Tnv4rlrrgNCivpu4TmnqjlkIkNCivpu4TnkK7lr4wNCivpu4TnkKzlkJsNCivpu4TnkKzlqbcNCivpu4TnkKzpm68NCivpu4TnkKznkYINCivpu4Toj4Dpk4MNCivpu4TmmpDnnb8NCivpu4Tnjq7mrKMNCivpu4Tnjq7lroENCivpu4TnrbHoirgNCivpu4TnrbHkuZQNCivpu4TnrbHpm4ENCivpu4TnrbHoi7kNCivpu4TpkrDlqJ8NCivpu4TpkrDlqbcNCivpu4TpkrDlqbcNCivpu4TpkrDmlpANCivpu4TpkrDpm68NCivpu4TpkrLpl7UNCivpu4Tnno0NCivpu4Tolo/mvoQNCivpu4TorLXor7QNCivpu4TpvoYNCivmtoLlt6flv4YNCivmtoLml7bpm6gNCivmtoLlqoTkupENCivmnagNCivmnajkurrpopYNCivmnajkuInotKQNCivmnajljYPph4wNCivmnajljYPmhacNCivmnajlo6vlvJgNCivmnajlo6vmnIsNCivmnajlo6vmr4UNCivmnajlo6votKQNCivmnajlpKfmr4UNCivmnajlrZDmgZINCivmnajlrZDmr4UNCivmnajlrZDnkaINCivmnajlsI/mhacNCivmnajkuK3lrZoNCivmnajkuYvmhacNCivmnajku4HljY4NCivmnajku4vmlocNCivmnajlhYHkuK0NCivmnajlv4PmgKENCivmnajlv4PlvrcNCivmnajmloflro8NCivmnajmlofmnbANCivmnajmloflqpsNCivmnajmlofnkZ4NCivmnajmlofku6oNCivmnajmlofnjq4NCivmnajkuJblubMNCivmnajkuJblh68NCivmnajkuJbpuY8NCivmnajku5XppqgNCivmnajlj6/mrYYNCivmnajlvJjlhYgNCivmnajmnKzlnKMNCivmnajmraPlvawNCivmnajmsLjmraMNCivmnajmsLjnkKYNCivmnajnjonlkJsNCivmnajnjonpvI4NCivmnajnmb3psrgNCivmnajnq4vnvqQNCivmnajku7LmsJENCivmnajlhYbpkqYNCivmnajlpoPlqbcNCivmnajlrojln44NCivmnajml6jnpaUNCivmnajoh6rpm4QNCivmnajkvLbmhacNCivmnajlppnmgakNCivmnajlro/npaUNCivmnajlv5flubMNCivmnajlv5fog70NCivmnajlv5fkvJ8NCivmnajlv5fnpaUNCivmnajlv5fpm40NCivmnajlv5flraYNCivmnajmspvojrMNCivmnajnp4Dnj6ANCivmnajnp4DmhacNCivmnajogrLnnJ8NCivmnajogrLlhJINCivmnajkuprnkKYNCivmnajkvbPmrKMNCivmnajkvbPlsZUNCivmnajkvbPoj4ENCivmnajkvbPmkrANCivmnajkvbPokKQNCivmnajkvannj4oNCivmnajkvanlhJINCivmnajlhbbngJoNCivmnajlnaToi7ENCivmnajlpYfmg6ANCivmnajlrZ/kv64NCivmnajlrZ/ok4kNCivmnajlrZ/nv7ANCivmnajlrpcNCivmnajlrpflgI0NCivmnajlrpflsKcNCivmnajlrpflhJINCivmnajlrpfpopYNCivmnajlrpfnv7ANCivmnajlrpfng5wNCivmnajlrpzmlocNCivmnajlrpznkosNCivmnajlrpzok4ENCivmnajlsJrorq0NCivmnajlsJrono0NCivmnajlsrHlhJINCivmnajlv6Dku4ENCivmnajlv6DlrqoNCivmnajmgKHoirMNCivmnajmgKHokI0NCivmnajmib8NCivmnajmib/nhrkNCivmnajmmJPkvKYNCivmnajmmIzlrr4NCivmnajmmIbpnJYNCivmnajmmI7mnbANCivmnajmmI7nuq8NCivmnajmmI7or5oNCivmnajmmI7lr7ANCivmnajmmI7npqcNCivmnajljYfmoaYNCivmnajkuJzmlY8NCivmnajmnb7pk60NCivmnajmrKPmgKENCivmnajmrKPkvakNCivmnajmrKPnh5UNCivmnajms5PopJgNCivmnajnp4npoboNCivmnajoirPpm4QNCivmnajoirgNCivmnajph5HnkosNCivmnajplb/mtIENCivmnajpnZLls7ANCivmnajkv4rlro8NCivmnajkv4rovokNCivmnajlpZXmmLYNCivmnajlu7rlvaYNCivmnajmgJ3pmr0NCivmnajmlL/lvawNCivmnajmlL/li4sNCivmnajmlL/pnJYNCivmnajmmK3ovokNCivmnajkuLroiJwNCivmnajnp4vnlLcNCivmnajnuqroirgNCivmnajnvo7njrINCivmnajnvo7mg6ANCivmnajnvo7oiboNCivmnajoi5HliKkNCivmnajlgKkNCivmnajlk7LlrokNCivmnajlk7Lpk60NCivmnajlrrbmmI4NCivmnajlrrbnpboNCivmnajlrrbpk60NCivmnajlrrbnjq4NCivmnajmga3mspsNCivmnajmjK/lrpcNCivmnajmjK/msYkNCivmnajmmY/oj4ENCivmnajkuabosaoNCivmnajmtpPmqLENCivmnajkvanlkJsNCivmnajkvannkKYNCivmnajnnJ/nj6ANCivmnajntKDljb8NCivmnajojZDnv5QNCivmnajomZTpm4UNCivmnajkvJ/mlocNCivmnajkvJ/nkKoNCivmnajlgaXlm70NCivmnajlm73mnb4NCivmnajlm73pvI4NCivmnajln7nmgakNCivmnajlqYnojokNCivmnajltIfpkasNCivmnajmg5/nmb0NCivmnajlkK/lro8NCivmnajmlY/oirMNCivmnajmorXlrZsNCivmnajmt7PnoJoNCivmnajmuIXmoYMNCivmnajmt5HlhYMNCivmnajmt5HkvbMNCivmnajmt5HoiqwNCivmnajmt5Hnvo4NCivmnajmt5HmlY8NCivmnajmt5Hmg6ANCivmnajmt5HokI0NCivmnajmt5Hpm4UNCivmnajmt5HmhacNCivmnajmuIrog5wNCivmnajlh4Doip0NCivmnajnm5vmlowNCivmnajojonoirMNCivmnajpm6rpm4UNCivmnajlh6/ku7INCivmnajlh6/mnbANCivmnajlh6/pkqcNCivmnajog5zlrocNCivmnajog5zmlpANCivmnajli4vlh68NCivmnajljZrlrocNCivmnajljZrpkqYNCivmnajllrvpl7UNCivmnajlo7noiJINCivmnajlqbfpkqcNCivmnajlr4zlrokNCivmnajlr4znkJsNCivmnajlvqrlqbcNCivmnajmg6DlrocNCivmnajmg6DnnJ8NCivmnajmg6DlqbcNCivmnajmg6DnkLMNCivmnajmg6Dpm68NCivmnajmlabmnbANCivmnajmlq/lh68NCivmnajmma/lhYMNCivmnajmma/lsKcNCivmnajmma/pm68NCivmnajmmbrlhYMNCivmnajmmbrlro8NCivmnajmmbrmnbANCivmnajmmbrlsKcNCivmnajmmbrlloQNCivmnajmmbrpkqcNCivmnajmmbrpvpkNCivmnajmnJ3mlY8NCivmnajmnJ3oiJwNCivmnajmo67lj5ENCivmnajmtozor4QNCivmnajnmbvlrokNCivmnajnmpPnjq4NCivmnajnrZboiKoNCivmnajlloTmg6ANCivmnajoiJLluIYNCivmnajoiJLlqpsNCivmnajoiJLpm68NCivmnajoiJzpkqYNCivmnajoj4HoiqwNCivmnajoj7Hpm4UNCivmnajlko/oj5gNCivmnajotLXlqpsNCivmnajpgLjojokNCivmnajpkqfnmb4NCivmnajpl7Xnv5QNCivmnajpm4XnjokNCivmnajpm4XoirMNCivmnajpm4XkvKYNCivmnajpm4Xmt5ENCivmnajpm4XlqbcNCivmnajpm4XlqbcNCivmnajpm4XlspoNCivmnajpm4Xmg6ANCivmnajpm4XmmbYNCivmnajpm4Xnv5QNCivmnajpm4XotoUNCivmnajpm4Xpm68NCivmnajpm4XkupENCivmnajpm4XojJwNCivmnajpm6/mg6ANCivmnajkupHnv5QNCivmnajpobrmo4sNCivmnajmhYjku6oNCivmnajmr5PnjrINCivmnajnhJXnq6ANCivmnajnkZ7mnbANCivmnajkuIfluIYNCivmnajoo5UNCivmnajor5fovakNCivmnajpgZPlv6ANCivmnajlmInnjrINCivmnajlmInnkZwNCivmnajlmInkuLANCivmnajojaPlkIkNCivmnajmp5DpqbkNCivmnajnoqfpm68NCivmnajnu7TljY4NCivmnajotbXpk60NCivmnajpk63pob4NCivmnajlvrflv5cNCivmnajluobpmoYNCivmnajmhafnjrINCivmnajmhafnkLwNCivmnajnkosNCivmnajpnIfkvJ8NCivmnajlrqrljYcNCivmnajmmZPpnZINCivmnajmmZPoj4ENCivmnajmoaXpnJYNCivmnajnh5XkupENCivmnajolZnoirMNCivmnajolZnlmIkNCivmnajplKHlrqoNCivmnajpnZnlpoINCivmnajpnZnmgKENCivmnajpnZnpm68NCivmnajmiLTlt54NCivmnajniLXpqo8NCivmnajpqo/msJENCivmnajmm5zlh4YNCivmnajnoYDov5wNCivmnajnu6Pnu6sNCivmnajkuLDlhagNCivmnajkuLDpk60NCivmnajplYfov5wNCivmnajppqXor5oNCivmnajnkLzljY4NCivmnajkuL3lhqANCivmnajkuL3nkLQNCivmnajmm6bnkLMNCivmnajpkp/pk4kNCivmnajngbXoi5MNCivmnajojJzljYkNCivmnajnkIflpoINCivmnajnkIflqpsNCivmnajnv4rkvakNCivmnajnkKzlqbcNCivmnajnjq7nkKYNCivmnajok4Hok4ENCivmnajpk6DkvIoNCivmuKnkuIjnuqwNCivmuKnlv4PlspoNCivmuKnmraPpvpkNCivmuKnoh7Pku7sNCivmuKnnp4DmgKENCivmuKnlrpcNCivmuKnmib/nv7ANCivmuKnph5HnkZ4NCivmuKnlu7rlo7ANCivmuKnoi6XlqbcNCivmuKnlsZXljY4NCivmuKnntKDmooUNCivmuKnln7npnZINCivmuKnmt5HmgKENCivmuKnlh68NCivmuKnmmbrov54NCivmuKnpm4XmuIUNCivmuKnlnKPlu7YNCivmuKnpk63lk7INCivmuKnmmZPljY4NCivmuKnppqXov5wNCivmuKnoj5jmuJ0NCivkuIfkvbPmmJUNCivkuIflu7rmmI4NCivkuIfmlY/lqYkNCivkuIfmmZPmmI4NCivlj7bkuIHmupANCivlj7bkuYPnpa8NCivlj7bkurrlrr4NCivlj7blj4jlmIkNCivlj7bljYPoj4oNCivlj7blo6vmlrANCivlj7blpKfoi4cNCivlj7blrZDosaoNCivlj7blsbHljY4NCivlj7blpKnlsIYNCivlj7bmlofkvJ8NCivlj7bmlofpvpkNCivlj7bkuJbmsJENCivlj7bku6PmnYMNCivlj7bmraPlnKMNCivlj7bnjonnjrINCivlj7bkuqbnm5sNCivlj7blhYnmhIkNCivlj7blkJHpmLMNCivlj7blpoLpm68NCivlj7bnq7nogrINCivlj7bkvZDpqo8NCivlj7blro/mnbANCivlj7blv5flvaYNCivlj7blv5fljZoNCivlj7bmraXml7sNCivlj7bnp4DmooUNCivlj7bogrLls7ANCivlj7bkvp3pnZINCivlj7bkvbPmrKMNCivlj7bkvbPoj4ENCivlj7bkvbPli4sNCivlj7bkvannnJ8NCivlj7blpYnmnbANCivlj7blrZ/lsKcNCivlj7blrpfmmboNCivlj7blrpfpkasNCivlj7blrpvovakNCivlj7blv6DmrKMNCivlj7bmgKHlkJsNCivlj7bmgKHoirMNCivlj7bmib/ms5MNCivlj7bmmIzkvKYNCivlj7bmmI7ljYcNCivlj7bmmI7ml4sNCivlj7bmmI7pkasNCivlj7bmnb7ngqsNCivlj7bmrKPmr5MNCivlj7bnjp/lkJsNCivlj7boirPkvLYNCivlj7boirPokI0NCivlj7boirflppgNCivlj7bplb/pnZINCivlj7bkuq3lv5cNCivlj7bkv6Hlu7cNCivlj7bkv4rlro8NCivlj7bkv4rnlKsNCivlj7bkv4rluoYNCivlj7bkv57mnYkNCivlj7blhqDmhacNCivlj7blpZXnu7QNCivlj7blp7/lpo8NCivlj7blu7rlkJsNCivlj7blu7rljYcNCivlj7blvablv5cNCivlj7bmgJ3ku6oNCivlj7bmlL/ovokNCivlj7bmmK3kvLYNCivlj7bmmLHlv5cNCivlj7bmn4/nurINCivlj7bnjrLlspENCivlj7bnp4vmnIgNCivlj7bnvo7lqJ8NCivlj7boh7Tlv6ANCivlj7booY3lrZwNCivlj7bpg4Hoj4ENCivlj7blgKkNCivlj7blk7LlhagNCivlj7blrrblrocNCivlj7blrrbpk4MNCivlj7blrrblhJINCivlj7bls7vlrr4NCivlj7bmjK/npo8NCivlj7bmmYvlmIkNCivlj7bkuabnjq4NCivlj7bmtpPmtpMNCivlj7bnm4rljYcNCivlj7bntKDnu6sNCivlj7bogL/pvZANCivlj7blgaXkvJ8NCivlj7blm73otKQNCivlj7blvKDlu7oNCivlj7bmrLINCivlj7bmt5Hnj40NCivlj7bmt5Hpk4MNCivlj7bnu43ku7sNCivlj7bog5znjoQNCivlj7bmg6DmlocNCivlj7bmg6Dnpa8NCivlj7bmmbrku4ENCivlj7bmo67muJ0NCivlj7blko/mmbQNCivlj7bpm4HnlIQNCivlj7bpm4XlqbcNCivlj7bpm4Xpm68NCivlj7bkupHpuY8NCivlj7bmr5Pls7ANCivlj7bkuYnmnb4NCivlj7bpk4Pnj4oNCivlj7blmInljY4NCivlj7bnnb/lk7INCivlj7bpk63mmIwNCivlj7bku6roirMNCivlj7bmhafmrKMNCivlj7bmtIHmgakNCivlj7bmmZPoiqwNCivlj7bmoJHlvIANCivlj7bolZnoirMNCivlj7bplKblh6QNCivlj7bmm5nluoYNCivlj7bpqo/pgLgNCivlj7bnpLznu7QNCivlj7bnkLzmlocNCivlj7blrp3lo6wNCivlj7bohb7ov5wNCivlj7bpqqUNCivlj7bnjrTosaoNCivlj7bnkKTmgKENCivlj7bmgL/ppqgNCivokZvkuJbokLENCivokZvlgKnlpoINCivokaPkurrlro8NCivokaPlrZDpnZINCivokaPlt6fnjrINCivokaPlkIjmgakNCivokaPlv5fku4ENCivokaPkvbPosaoNCivokaPmgKHlkJsNCivokaPoirPpk60NCivokaPlp7/liKkNCivokaPlvablro8NCivokaPnp4vnkb4NCivokaPkv67pk60NCivokaPmjK/pm4QNCivokaPog73nkZ4NCivokaPmg6DoirMNCivokaPlnKPnvJgNCivokaPmhafnvo4NCivokaPpuL/mpaANCivokaPls6Pms5MNCivoo5jlhYPmgboNCivop6Pnvo7pk4MNCivoqbnkuo7oirMNCivoqbnlrZDmsJENCivoqbnku4HlmIkNCivoqbnmlofnpaUNCivoqbnkuJbmnbANCivoqbnmsLjnpaUNCivoqbnnq4vmiJANCivoqbnlpoLpkqQNCivoqbnlro/lvawNCivoqbnlv5fpuL8NCivoqbnogrLpm68NCivoqbnkvbPmjK8NCivoqbnkvbPlhbQNCivoqbnkvanpopYNCivoqbnlrZ/mmYMNCivoqbnlrpflrqoNCivoqbnlrpznurkNCivoqbnlv6DojaMNCivoqbnmmIzlkIkNCivoqbnmmI7mtIENCivoqbnmrKPlrpwNCivoqbnpnZLoibMNCivoqbnliY3ms7ANCivoqbnmlL/ls7ANCivoqbnnvo7nj40NCivoqbnljb/oi7kNCivoqbnlrrbpk6gNCivoqbnmtZrljYcNCivoqbnnm4rkvJ8NCivoqbnnm4rpk60NCivoqbnojJfoirgNCivoqbnlqYnlkJsNCivoqbnlkK/nuqwNCivoqbnmt5HlpoMNCivoqbnmt5HokI0NCivoqbnmt5HoiqkNCivoqbnlh6/mjbcNCivoqbnog5zpkqYNCivoqbnlr4zmmboNCivoqbnmg6DlqpsNCivoqbnmma/lsKcNCivoqbnmmbrmnbANCivoqbnmo64NCivoqbnnv5Tku7sNCivoqbnor4Hlr4wNCivoqbnpkqfnu7QNCivoqbnpm4XlqbcNCivoqbnpm4Xpl7UNCivoqbnpm6/ojrkNCivoqbnnvqTmr4UNCivoqbnlmInnkocNCivoqbnlvrfppqgNCivoqbnli4vmmI4NCivoqbnpopbokI0NCivoqbnnkqjltZgNCivoqbnkuLDlrocNCivoqbnpuYPlubQNCivoqbnnjpPnjq4NCivoqbnnkKzmuJ0NCivotYTlkJvku6oNCivotL7msrvlm70NCivotL7niLHnjqsNCivotL7pq5DmhpsNCivpgrnkuIDku7INCivpgrnmlofpmoYNCivpgrnnq4vlvaYNCivpgrnmnY7mmIwNCivpgrnkvbPljY4NCivpgrnlrpfljY4NCivpgrnmmI7ljp8NCivpgrnph5HlvrcNCivpgrnlm73pvpkNCivpgrnmmbrku4ENCivpgrnmlrDlhagNCivpgrnnu7TliJoNCivpgrnpnZnkvakNCivpm43mlablhYMNCivpm7flrpzluq0NCivpm7fooY3lhbQNCivpm7fmg6DnkKYNCivpm7fpm4Xoj4ENCivpm7fpuY/nqIsNCivlu5bkuIHpgLgNCivlu5bkuo7mlocNCivlu5bljYPmhacNCivlu5blo6vlsKcNCivlu5blpKfmqJ8NCivlu5blsI/ljY4NCivlu5bku4Hnpr4NCivlu5blhYPliKkNCivlu5blhYHpnZYNCivlu5bmloflubMNCivlu5bmlofojLkNCivlu5bmlofor4QNCivlu5bmlofnlIQNCivlu5bmlofmtIENCivlu5bmnIjop4INCivlu5bku5Xnu64NCivlu5bmnKzlhYMNCivlu5bmraPkvJ8NCivlu5bnjokNCivlu5bnjonokI0NCivlu5bkuJ7mmZ4NCivlu5blhYnovokNCivlu5blrojmraMNCivlu5bkvK/nkosNCivlu5blkKvmtIENCivlu5blro/mhYgNCivlu5blv5fmsJENCivlu5blv5fkvJ8NCivlu5blv5fov5wNCivlu5bnp4Dljb8NCivlu5bogrLoia8NCivlu5boia/mt64NCivlu5bkvbPnjqUNCivlu5bkvanlpoINCivlu5bkvanlh6QNCivlu5blrpflsbENCivlu5blrpznvqQNCivlu5bmgKHnjrINCivlu5bmgKHmma8NCivlu5bmib/luoYNCivlu5bmmI7ku6oNCivlu5bmrKPku6oNCivlu5boirPnjrINCivlu5boip3lnZoNCivlu5bpnZLmnb4NCivlu5bkv6Hlrr0NCivlu5bkv4rmnbANCivlu5bkv4rpkqYNCivlu5blhqDnvo4NCivlu5blpZXku7sNCivlu5blp7/mr5MNCivlu5blu7rln44NCivlu5blu7rpkqcNCivlu5blvablh68NCivlu5bmgZLmr4UNCivlu5bmmKXoj4oNCivlu5bmmLHmoJENCivlu5bngrPnhJwNCivlu5bnm4jlpYcNCivlu5bnp4vmgKENCivlu5bnvo7njrINCivlu5bnvo7nkLMNCivlu5bojILoia8NCivlu5boi7HnlLcNCivlu5boi7HmnbANCivlu5boi5HlkJsNCivlu5bov7DojIINCivlu5bpg4HlqbcNCivlu5blgKnlrpwNCivlu5bljb/mg6ANCivlu5blk7LorroNCivlu5blrrbnjrINCivlu5blrrblroENCivlu5blrrbojrkNCivlu5blrrblqacNCivlu5bls7vmr4UNCivlu5bmganmhYgNCivlu5bmjK/oia8NCivlu5bmjLrltLQNCivlu5bkuabkvakNCivlu5bmoYLlkJsNCivlu5bmtZrlro8NCivlu5bkvanlkJsNCivlu5bkvannjqsNCivlu5bkvanniLENCivlu5bnm4rnvqQNCivlu5bntKDljb8NCivlu5bogJXovokNCivlu5blubLmiJANCivlu5bkvJ/miJANCivlu5bkvJ/ovrANCivlu5bkvJ/mlq8NCivlu5bkvJ/puL8NCivlu5blgaXmmI4NCivlu5blgaXpk60NCivlu5blm73lro8NCivlu5blm73li4sNCivlu5blm73ljY4NCivlu5bln7rlro8NCivlu5bln7nnkZwNCivlu5blqYnliKkNCivlu5blqYnmrKMNCivlu5blr4TokI0NCivlu5bltIfnoZUNCivlu5blurfpnJYNCivlu5bmg4fmsrsNCivlu5blkK/oia8NCivlu5bmlY/msZ0NCivlu5bmlY/njrINCivlu5bmopPojJwNCivlu5bmt5HlkJsNCivlu5bmt5HotJ4NCivlu5bmt5Hmg6ANCivlu5bmt5HkuL0NCivlu5bnpaXovr4NCivlu5botK/kvakNCivlu5bnq6Dmo4sNCivlu5blr4znlLANCivlu5bmg6DlqJ8NCivlu5bmmbrovokNCivlu5bnkKrnvo4NCivlu5boiJLku6oNCivlu5bov5vlubMNCivlu5bpm4XlgKkNCivlu5bpobrluIYNCivlu5bmpbfmlocNCivlu5bnraDmgKENCivlu5bokLHoirkNCivlu5bll74NCivlu5blmInpmLMNCivlu5bmsYnpvI4NCivlu5bnu7Tnj40NCivlu5bpk63ku4ENCivlu5bluobotLoNCivlu5bmhafpm68NCivlu5bojrnnkocNCivlu5blrqrloIINCivlu5bmmZPmhacNCivlu5bplKbnkZwNCivlu5bmk47luIYNCivlu5bmm5zojrkNCivlu5bpupLpl7UNCivlu5bogIDkuJwNCivlu5bmmL7luoYNCivlu5blgbLlpqQNCivlu5bmlozmnbANCivlu5bpkrDpk60NCivmsYnov7Dku4ENCivnhornq4vmlrANCivnhorkuJzlop4NCivnhorlh4zpnIYNCivnhorltIfnuqwNCivnhorli6TkupENCivnlITmhafmmI4NCivnrqHlubzku7INCivnrqHph5HnjrINCivnrqHnkKroirgNCivnv5/mlabmlY8NCivlj7DmlofnhacNCivokrLkv6HlhagNCivokrLpqo/mr4UNCivoo7TkvJ/nqIsNCivopJrlv4PmgKENCivopJrkv4rkvJ8NCivopJrlrrblvrcNCivlrr7mlazmlocNCivotbXlo6vpvZANCivotbXlrZDnu7QNCivotbXku4HkvZENCivotbXlhYPlro8NCivotbXlj4vltKcNCivotbXmloflv6ANCivotbXmlrnmgboNCivotbXkuJboo5UNCivotbXlv4XmmIwNCivotbXnjonojrINCivotbXlronnkKoNCivotbXlkJvmnbANCivotbXlro/pkqcNCivotbXlv5fosaoNCivotbXogrLnkLMNCivotbXkvanoiqwNCivotbXlrpzlkJsNCivotbXmgKHlqbcNCivotbXmmI7ovokNCivotbXoirfoj4ENCivotbXkv4rlh68NCivotbXlk4HlvaYNCivotbXlu7rog5wNCivotbXmgazku6oNCivotbXngqvli4sNCivotbXnp4vlh6QNCivotbXoi7HpvpkNCivotbXkv67pnJYNCivotbXlrrboia8NCivotbXlrrbotKQNCivotbXmjK/lro8NCivotbXmoYLpnZINCivotbXkvanmsZsNCivotbXnpZDnlIQNCivotbXkvJ/lu7cNCivotbXkvJ/nv5QNCivotbXlm73lv5cNCivotbXln7npnJYNCivotbXltIfpl7UNCivotbXmlY/lpoINCivotbXmt5HoirMNCivotbXnmo7lkJsNCivotbXlqbflrowNCivotbXmuZjlkJsNCivotbXpkqflv5cNCivotbXnkZ7mmIwNCivotbXlmInmlawNCivotbXlub/lhYMNCivotbXmhZXnvqQNCivotbXmoJHku6oNCivotbXpvpnln7oNCivotbXlj4zpqo8NCivotbXnjrnnvrINCivov5zol6TmsLjlurcNCivphJ7osarovokNCivpvZDpm6rmsZ0NCivliJjkuZnokLENCivliJjkuYPokLENCivliJjkurrosaoNCivliJjlh6DokI0NCivliJjlipvosaoNCivliJjlj4jmhYgNCivliJjkuIrml5cNCivliJjkuo7oj4ENCivliJjljYPnkZwNCivliJjlo6vljY4NCivliJjlo6vosaoNCivliJjlpKfojaMNCivliJjlrZDnlLENCivliJjlrZDlmIkNCivliJjlrZDpooANCivliJjlsbHosaoNCivliJjkuK3nkKoNCivliJjku4HmraMNCivliJjku4Hoo5UNCivliJjlhYPlh6QNCivliJjlsJHnu7QNCivliJjlv4Pku6oNCivliJjmlofnjokNCivliJjmlofnjrINCivliJjmlofog5wNCivliJjmlofotoUNCivliJjmlofnpo8NCivliJjml6XpoboNCivliJjkuJbmlocNCivliJjkuJbmuIUNCivliJjkuJbluoYNCivliJjku6XnraANCivliJjlj7ANCivliJjlvJjkvJ8NCivliJjmraPmsrMNCivliJjmraPpm4QNCivliJjmsLjlgaUNCivliJjnjonmlocNCivliJjnjonlrrYNCivliJjnjonokI0NCivliJjnjonnkIcNCivliJjnq4vkvJ8NCivliJjkuqbljYcNCivliJjkvIrkv64NCivliJjku7LmtrUNCivliJjlhYnmnbANCivliJjlhYblrrkNCivliJjlhajlvawNCivliJjlkI3lqJ8NCivliJjlpoLoirMNCivliJjlpoLolrANCivliJjlrofolocNCivliJjlronnpaUNCivliJjml63oiqwNCivliJjmsZ3lqJ8NCivliJjoh7PlrokNCivliJjkvK/lvaYNCivliJjlkJvnpboNCivliJjlrZ3kvKYNCivliJjlro/kvJ8NCivliJjlu7fmpbcNCivliJjlv5fli4cNCivliJjlv5fmtakNCivliJjlv5fmupANCivliJjlv5fnjq4NCivliJjmsoLmmIANCivliJjnp4Dpg4ENCivliJjnp4Dpm68NCivliJjogrLmiJANCivliJjogrLlv5cNCivliJjogrLlrpcNCivliJjogrLmtLgNCivliJjogrLor5oNCivliJjogrLpopYNCivliJjpgqblubMNCivliJjpgqbnm7gNCivliJjkuproirgNCivliJjkvp3mlocNCivliJjkvbPmspANCivliJjkvbPmgKENCivliJjkvbPoirMNCivliJjkvbPmtKcNCivliJjkvbPnkKoNCivliJjkvbPovr4NCivliJjkvbPpopYNCivliJjkvoPlpoINCivliJjkvanpnZINCivliJjkvannu6sNCivliJjlkozlvrcNCivliJjlnaTpopYNCivliJjlrZ/kvbMNCivliJjlrZ/lhqANCivliJjlrZ/nv7ANCivliJjlrpfmgKENCivliJjlrpfokYYNCivliJjlrprlrocNCivliJjlrpzmmIYNCivliJjlrpzlqbcNCivliJjlrpvlpoINCivliJjlhojpmbUNCivliJjlubjpm6oNCivliJjlv6Dli4sNCivliJjmgKHkvLYNCivliJjmgKHlkJsNCivliJjmgKHlkJsNCivliJjmgKHlkJsNCivliJjmgKHlkowNCivliJjmgKHoiqwNCivliJjmgKHmg6ANCivliJjmgKHpnZkNCivliJjmib/moaYNCivliJjmmIwNCivliJjmmIzor5oNCivliJjmmI7lkIgNCivliJjmmI7mnbANCivliJjmmI7lk7INCivliJjmmI7ovr4NCivliJjmmI7kuL0NCivliJjljYfpkasNCivliJjmnpznj40NCivliJjmrKPlnaQNCivliJjmrKPmgKENCivliJjmrKPojLkNCivliJjmrabmtZoNCivliJjnjp/miJANCivliJjnjqvlroENCivliJjnqbnmnpcNCivliJjoirPlkJ8NCivliJjoirPnjrINCivliJjoirPlhbANCivliJjoiqzoirMNCivliJjph4fnnJ8NCivliJjph5Hlh6QNCivliJjpnZLoi7kNCivliJjkv6Hlro8NCivliJjkv6Hoia8NCivliJjkv6HpuL8NCivliJjkv4rlro8NCivliJjkv4rlu7cNCivliJjkv4roia8NCivliJjkv4rmnbANCivliJjkv4rmr4UNCivliJjkv4rlsqkNCivliJjkv5DmooUNCivliJjlhqDlpo0NCivliJjlhqDoia8NCivliJjlhqDmmL4NCivliJjli4PlvaYNCivliJjlk4HlrpwNCivliJjlpZXlv5cNCivliJjlp78NCivliJjlp7/lkJ8NCivliJjlqIHmsZcNCivliJjlqIHmmIwNCivliJjlu7rmsJENCivliJjlu7rlro8NCivliJjlu7rlro8NCivliJjlu7rmnZENCivliJjlu7roia8NCivliJjlu7rmmI4NCivliJjlu7rlvrcNCivliJjlu7rnlLoNCivliJjlvablkJsNCivliJjlvablu7cNCivliJjlvaboia8NCivliJjlvabljZoNCivliJjlvovmmI4NCivliJjmgJ3mtIENCivliJjmgarkuroNCivliJjmlL/li4sNCivliJjmmK3lpoINCivliJjmmKDnp4ANCivliJjmmLHovrANCivliJjmn4/lro8NCivliJjmn4/pup8NCivliJjkuLrmmI4NCivliJjnj4rlpq4NCivliJjnj43kvZENCivliJjnm4jlpoINCivliJjnm4jnp4ANCivliJjnm4jlhbANCivliJjnp4vmiJANCivliJjnp4vnh5UNCivliJjnvo7lkJsNCivliJjnvo7ku5ENCivliJjnvo7njrINCivliJjnvo7ljY4NCivliJjnvr/msZ0NCivliJjoi6XosKgNCivliJjoi7HpvpkNCivliJjotJ7kvLYNCivliJjlhpvmr4UNCivliJjpn6bmiJANCivliJjlgI3lpoINCivliJjkv67mmI4NCivliJjlk7LlrocNCivliJjlk7Lpg44NCivliJjlk7Lnjq4NCivliJjlrrbmiJANCivliJjlrrblro8NCivliJjlrrbljYcNCivliJjlrrbnkLMNCivliJjlrrblg5YNCivliJjlrrbosaoNCivliJjlrrblh6QNCivliJjlrrbppqgNCivliJjlrrnmh78NCivliJjls7vkvLYNCivliJjls7Dpg6ENCivliJjmganlkIkNCivliJjmjK/kuK0NCivliJjmjK/osaoNCivliJjmmYvogrINCivliJjmmY/or5oNCivliJjkuablro8NCivliJjmoLnosaoNCivliJjmoZDnm5sNCivliJjmtZrpk60NCivliJjkvanmgKENCivliJjnm4rkvLgNCivliJjnm4rnpa8NCivliJjnpZblroENCivliJjntKDnjrINCivliJjnuq/mnY8NCivliJjogJXnu7QNCivliJjovanlrocNCivliJjkvJ/nq4sNCivliJjkvJ/or5oNCivliJjlm73lubMNCivliJjlm73moIsNCivliJjlm73pvpkNCivliJjlqYnnjrINCivliJjltIfnkIYNCivliJjlurfmpZ0NCivliJjlvpflhYkNCivliJjlkK/lubMNCivliJjmlY/nkKoNCivliJjmt7Ppm4UNCivliJjmt5HoiqwNCivliJjmt5HotJ4NCivliJjmt5HojokNCivliJjmt5HljY4NCivliJjmt5HmhacNCivliJjnpaXmsJENCivliJjojonnh5UNCivliJjlh6/ojLkNCivliJjljZrmlocNCivliJjlr4zmmI4NCivliJjmg6DmgKENCivliJjmg6DnurkNCivliJjmiazpk60NCivliJjmmbrku4ENCivliJjmmbrpkqcNCivliJjmnJ3ojrINCivliJjmuZjnkKoNCivliJjnmpPlroENCivliJjoiJLmhYgNCivliJjlko/olocNCivliJjpgLjnq7kNCivliJjpl7Xnu5MNCivliJjpm4XlkJsNCivliJjpm4XnjrINCivliJjpm4Xmg6ANCivliJjpm4XokI0NCivliJjpm4XmhacNCivliJjkupHpnJ4NCivliJjli6Tnu48NCivliJjmlazmsJENCivliJjmr5Pms6INCivliJjmupDkvKYNCivliJjnkZ7oirMNCivliJjnkZ7osaoNCivliJjnu4/nurYNCivliJjoo5Xlro8NCivliJjor5fpn7UNCivliJjpnZYNCivliJjlmInogrINCivliJjlmInmt7MNCivliJjlmInpm68NCivliJjlmInmoaYNCivliJjlvbANCivliJjojaPlvrcNCivliJjnhpnmhacNCivliJjnoZXnqLMNCivliJjnu7Tms7ANCivliJjogofpuY8NCivliJjpk63mnZENCivliJjpk63ovokNCivliJjlh6TlhbQNCivliJjlvrfmraMNCivliJjlvrfor5oNCivliJjluobplYcNCivliJjmhafnjrINCivliJjmhaflqbcNCivliJjmhafnj5ENCivliJjojrnlqJ8NCivliJjotKTojacNCivliJjpnIfpuL8NCivliJjlv4YNCivliJjmmZPoiqwNCivliJjmmZPnkKoNCivliJjmmZPmoaYNCivliJjmoJHolZkNCivliJjnh5XokI0NCivliJjnkp/plIsNCivliJjpopbokqgNCivliJjlhbTlrrYNCivliJjolZnnkYQNCivliJjplKbloIINCivliJjplKbpuL8NCivliJjpnZnoirMNCivliJjpnZnljY4NCivliJjpvpnlsbENCivliJjniLXnu7QNCivliJjplLrpnJYNCivliJjpuL/pnJYNCivliJjnkqfojrkNCivliJjplYflmIkNCivliJjngJrpmLMNCivliJjpn7XnkKYNCivliJjkuL3mg6ANCivliJjlrp3lqbcNCivliJjogIDljYcNCivliJjor5HogaoNCivliJjngYzovokNCivliJjmh7/mhacNCivliJjotZ7lmLsNCivliJjml7vnj4oNCivliJjlp7XlmIkNCivliJjmjJANCivliJjnv4rpgqENCivliJjnjq7njrINCivliJjnrbHmhacNCivliJjmu6LpqL8NCivljonmlozkuK0NCivmqIrkuYPlmIkNCivmqIrkv67pvpkNCivkuZDlrZDpqo8NCivmrKflo6vmupANCivmrKfkuJbmtIsNCivmrKflpoLnqIsNCivmrKflv5fnm4gNCivmrKfpgqbljY4NCivmrKflrpfljp8NCivmrKfmgKHnp4ANCivmrKfmmIDkv64NCivmrKfplb/mmY8NCivmrKfkv4rlvaYNCivmrKflu7rmsJENCivmrKfmlL/oibMNCivmrKfnvo7ojrkNCivmrKflqInlpqYNCivmrKfkuabosaoNCivmrKfmt5Hlp78NCivmrKfpgLjpnZINCivmrKfpmLPmnInmhacNCivmrKfpmLPnjqsNCivmrKfpmLPmg6DlpoINCivmrKfpmLPpk63mlocNCivmrKfpmLPlv7vlv4YNCivmrKfojaPmnbANCivmrKfpopblkJsNCivmrKfnvK7lmIkNCivmvZgNCivmvZjlhYHku4ENCivmvZjmlofljY4NCivmvZjmraPlhYMNCivmvZjnjonmg6ANCivmvZjkuqbolb4NCivmvZjmiJDlr4wNCivmvZjlro/lrpcNCivmvZjlv5fkvJ8NCivmvZjnp4Dnm4gNCivmvZjkvbPlpqQNCivmvZjkvanlkJsNCivmvZjlrpfoo5UNCivmvZjlu7bovokNCivmvZjmgKHlkJsNCivmvZjmgKHnkb4NCivmvZjmmI7mpbcNCivmvZjnjp/moaYNCivmvZjkuq7lpoINCivmvZjkv6Hnv7ANCivmvZjkv4roia8NCivmvZjlhqDlro8NCivmvZjlk4HmtIENCivmvZjlqIHljoYNCivmvZjlu7rmiJANCivmvZjlu7rlvbANCivmvZjlvabok4kNCivmvZjmlL/nuqwNCivmvZjmn5TogIMNCivmvZjnj43nkKoNCivmvZjnvo7njrINCivmvZjov7DkuJwNCivmvZjlrrbpk60NCivmvZjms7DlhagNCivmvZjog73lk7INCivmvZjlqYnokI0NCivmvZjmt5Hpm68NCivmvZjmg6DlqJ8NCivmvZjov5vnm4oNCivmvZjpm4XppqgNCivmvZjnkZ7pppkNCivmvZjoo5XmmboNCivmvZjnnb/lk7INCivmvZjku6rmgawNCivmvZjmhafmlY8NCivmvZjlhJLojrkNCivmvZjplKbmmIwNCivmvZjpuL/pk60NCivmvZjkuL3okI0NCivmvZjlp7XlpoINCivmvZjpkrDmn5QNCivmu5Xlv4bpm68NCivnu4Plu7rkvLgNCivokovkuK3ooY0NCivokovmraPnpo8NCivokovmsZ3lrokNCivokovmsobnpaUNCivokovkvbPnj4oNCivokovkvankvZkNCivokovlrZ/lhJINCivokovlrpzpnZkNCivokovmgKHmhacNCivokovmmI7lhJINCivokovplb/ml7sNCivokovmlL/popYNCivokovkvanms6ANCivokovmt5HmhacNCivokovokI0NCivokovoi4fnq4sNCivokovlvrfmiY0NCivokovmu6jlt54NCivokovogIDmr4UNCivolKHkuIHnu4/lk7INCivolKHlo6vml7oNCivolKHlrZDmgKENCivolKHkuK3pkqcNCivolKHku4HkvJ8NCivolKHlhYPmraMNCivolKHlhYPpm4QNCivolKHlpKnnpboNCivolKHmlofku4ENCivolKHmloflvaYNCivolKHmlofkvJ8NCivolKHmlofljZoNCivolKHmlofpkqYNCivolKHmloflmIkNCivolKHmlofpuL8NCivolKHmnIjnj6ANCivolKHkuJbmnbANCivolKHkuJbpuL8NCivolKHlt6flpoINCivolKHlvJjljp8NCivolKHmraPlrpcNCivolKHmraPmmZYNCivolKHmsLjlvawNCivolKHmsLjojrkNCivolKHnjonnp4sNCivolKHnjonoj4ENCivolKHnq4voiqwNCivolKHkuqbpm68NCivolKHku7LlroENCivolKHlhYbpqoUNCivolKHlkI3kuaYNCivolKHlpoLlqbcNCivolKHlrofkvKYNCivolKHlronkuZQNCivolKHml63mm5wNCivolKHnvr3lrrkNCivolKHooYznnJ8NCivolKHkvK/puL8NCivolKHlkJvmr4UNCivolKHlro/mlocNCivolKHlro/ln7kNCivolKHlu7fpopYNCivolKHlv5flro8NCivolKHlv5fmmI4NCivolKHlv5fmmYMNCivolKHlv5fmiawNCivolKHlv5fnu7QNCivolKHlv5fpuL8NCivolKHmsoHnjrINCivolKHmspvlqbcNCivolKHmsbbpuL8NCivolKHnp4DnjrINCivolKHnp4Dmg6ANCivolKHogrLmraMNCivolKHogrLlvaYNCivolKHogrLnnJ8NCivolKHogrLli4sNCivolKHotJ3nj4oNCivolKHkuqvnv7ANCivolKHkvp3nj4oNCivolKHkvp3lrrkNCivolKHkvp3pvoQNCivolKHkvbPkvLYNCivolKHkvbPlro8NCivolKHkvbPoia8NCivolKHkvbPmrKMNCivolKHkvbPoiqwNCivolKHkvbPnjrINCivolKHkvbPnj40NCivolKHkvbPlrrkNCivolKHkvbPnnJ8NCivolKHkvbPoiKoNCivolKHkvbPnkLMNCivolKHkvbPok4kNCivolKHkvbPmoaYNCivolKHkvbPpopYNCivolKHkvbPpnJYNCivolKHkvbPnpL0NCivolKHkvanlpoINCivolKHkvanlkJsNCivolKHkvanlpqQNCivolKHkvanoirMNCivolKHkvanoiqwNCivolKHkvannj4oNCivolKHkvannj4oNCivolKHkvannjrINCivolKHkvanlqKUNCivolKHkvannurkNCivolKHkvanok4kNCivolKHkvanpopYNCivolKHkvanpnZkNCivolKHkvpHlu7cNCivolKHlhbbkvakNCivolKHljY/nlKsNCivolKHlj5fli4sNCivolKHlnaTkvZENCivolKHlnaTpm4QNCivolKHlnaTplKYNCivolKHlpYflnYcNCivolKHlpYfpnJYNCivolKHlrZ/lkJsNCivolKHlrZ/ogrINCivolKHlrZ/oirMNCivolKHlrZ/np4sNCivolKHlrZ/lk7INCivolKHlrZ/nnJ8NCivolKHlrZ/pm4QNCivolKHlrZ/lhJINCivolKHlrZ/moaYNCivolKHlrZ/osJUNCivolKHlraPnjrINCivolKHlrpfkvZENCivolKHlrpflv5cNCivolKHlrpfnjqsNCivolKHlrpfnm4oNCivolKHlrpfovr4NCivolKHlrpflhJINCivolKHlrpflrqoNCivolKHlrpfpopYNCivolKHlrpfnv7ANCivolKHlrpfpnJYNCivolKHlrpzlkJsNCivolKHlrpzlu7cNCivolKHlrpzoirMNCivolKHlrpznj4oNCivolKHlrpzlgKkNCivolKHlrpznnJ8NCivolKHlrpzok4kNCivolKHlrpzpnJYNCivolKHlrpzok4ENCivolKHlrpvnjrINCivolKHlrpvosJUNCivolKHlsJrlsrMNCivolKHlsJrpopYNCivolKHlsrHli4sNCivolKHlsrPkuaYNCivolKHlubjlpoINCivolKHlubjmgZINCivolKHlubjmt7MNCivolKHlvKbosaoNCivolKHlv6Dkv6ENCivolKHlv6DpopYNCivolKHmgKHlkJsNCivolKHmgKHokI0NCivolKHmib/mmIoNCivolKHmib/nkosNCivolKHmib/nv7ANCivolKHmmJPkuqgNCivolKHmmJPljYcNCivolKHmmJPlrqoNCivolKHmmIzlrocNCivolKHmmIzlhJINCivolKHmmIbkvZENCivolKHmmI4NCivolKHmmI7ms5sNCivolKHmmI7lro8NCivolKHmmI7mnYkNCivolKHmmI7lrpcNCivolKHmmI7oirMNCivolKHmmI7kvKYNCivolKHmmI7lk7INCivolKHmmI7ls7ANCivolKHmmI7ojLUNCivolKHmmI7pkqYNCivolKHmmI7okrINCivolKHmmI7otZANCivolKHmmI7lrqoNCivolKHmmI7popYNCivolKHmmI7pvpkNCivolKHmmIDnlKsNCivolKHljYfkvK8NCivolKHljYfpopYNCivolKHkuJzmmI4NCivolKHkuJzpopYNCivolKHmnbDlv5cNCivolKHmnb7mn48NCivolKHmnb7pnJYNCivolKHmrKPmgKENCivolKHmrKPkvKYNCivolKHmrKPovr4NCivolKHmrKPpopYNCivolKHmrabosJoNCivolKHniafli4sNCivolKHnm7Tli4sNCivolKHnp4nmmIYNCivolKHnp4nnkosNCivolKHnp4nosJUNCivolKHoirPmtLUNCivolKHph4foirMNCivolKHph5Hls7ANCivolKHph5HpvpkNCivolKHplb/ojaMNCivolKHpm6jmtIENCivolKHpnZLls7ANCivolKHkv6Hoia8NCivolKHkv4rmmY8NCivolKHkv4rotKQNCivolKHlk4Hku6oNCivolKHlrqXlrpoNCivolKHlu7roo5UNCivolKHmgJ3mjbcNCivolKHmlL/lro8NCivolKHmlL/oqIANCivolKHmlL/lk7INCivolKHmlL/nvqQNCivolKHmlL/li4sNCivolKHmlL/nv7ANCivolKHmlL/pvpkNCivolKHmmK3pvpkNCivolKHmn4/mr4UNCivolKHnjrLmtKUNCivolKHnprnmrYYNCivolKHnuqrmupANCivolKHnvo7oip0NCivolKHnvo7ojokNCivolKHnvo7mhacNCivolKHoi7HlrpcNCivolKHpg4HlkJsNCivolKHpn6blv5cNCivolKHlh4zlh6QNCivolKHlqJ/lqJ8NCivolKHlrrbljY4NCivolKHlrrnnkZsNCivolKHmgqbnjp8NCivolKHmjK/orq4NCivolKHmoKnnu7QNCivolKHkvanmgKENCivolKHnnJ/nppUNCivolKHntKDnoqcNCivolKHojLnojLUNCivolKHkvJ/mnbANCivolKHlm73miYsNCivolKHlm73lnKMNCivolKHln7nor5ENCivolKHltIfmsJENCivolKHlkK/loIINCivolKHmt7vmlocNCivolKHmt5HlpoMNCivolKHmt5HmgKENCivolKHmt5HnjrINCivolKHmt5HnnJ8NCivolKHmt5Hmg6ANCivolKHmt5HnkZwNCivolKHmt5HolocNCivolKHnm5vli4sNCivolKHpm6rljb8NCivolKHog5zpm4QNCivolKHljZrlhagNCivolKHkuZTlrokNCivolKHlr4zotLUNCivolKHmg6DlpoINCivolKHmg6Dnvo4NCivolKHmg6DnkKoNCivolKHmg6Dnh5UNCivolKHmma/mt5ENCivolKHmmbrlro8NCivolKHmmbrmmpANCivolKHmuZjmgKENCivolKHnmpPmmI4NCivolKHoiJLlrocNCivolKHoj4Hoj4ENCivolKHlko/nv5QNCivolKHpgLjnj4oNCivolKHov5vmmIwNCivolKHpmobms7ANCivolKHpm4XlkJsNCivolKHpm4XoiqwNCivolKHpm4XojLkNCivolKHpm4Xmg6ANCivolKHpm4Xoj4ENCivolKHpm4XmhacNCivolKHpm6/mt4cNCivolKHkvKDlvrcNCivolKHmoaLnkZwNCivolKHmr5PpnJYNCivolKHnkZ7mlocNCivolKHnkZ7ls7ANCivolKHnkZ7pupINCivolKHkuYnnm4oNCivolKHoo5XlgaUNCivolKHor5folo8NCivolKHlmInku4ENCivolKHlmInmgZINCivolKHlmInnq6ANCivolKHlmInluoYNCivolKHojaPmmIwNCivolKHojaPotKQNCivolKHmsYnkuYkNCivolKHnoqflrrkNCivolKHnpo/mmY8NCivolKHnu7TnjrINCivolKHnu7Tok4ENCivolKHoo7TkvLYNCivolKHpk60NCivolKHpk63ls7ANCivolKHpk63otKQNCivolKHlh6Tku6oNCivolKHlvoHpnJYNCivolKHmhafmsJENCivolKHmhafotJ4NCivolKHmhafokLENCivolKHmr4XovakNCivolKHotKTnmocNCivolKHlrabmlocNCivolKHlv4bpk4MNCivolKHmmZPnhLYNCivolKHms73pk60NCivolKHpopbnrrQNCivolKHnv7DnhooNCivolKHolZnlqbcNCivolKHplKblnaENCivolKHpnZnlrpwNCivolKHpnZnmg6ANCivolKHpvpnku6oNCivolKHnv7zlpoINCivolKHpuL/msJENCivolKHpuL/mlowNCivolKHnkqflhYkNCivolKHkuLDmlocNCivolKHkuLDmnbANCivolKHplYflsrMNCivolKHpuYPlvKUNCivolKHnkLzku6oNCivolKHkuL3oirMNCivolKHkuL3mg6ANCivolKHnjK7mr4UNCivolKHogIDnvqQNCivolKHogIDpqbkNCivolKHppqjku6oNCivolKHkvbblhbQNCivolKHml7voirMNCivolKHml7vlrqoNCivolKHnkITnq7kNCivolKHmrYbmgKENCivolKHnjq7nq5ENCivolKHnvI8NCivolKHpkavlu7cNCivosIjmmK3lhbANCivpg5HkuIDlh6ENCivpg5HkuYPkvbMNCivpg5HkurrlhYMNCivpg5Hlipvku4ENCivpg5Hlj4jku4ENCivpg5Hlo6vpn6YNCivpg5HlrZDop4ENCivpg5HlsI/lspoNCivpg5HlsLnmlq8NCivpg5Hku4Hlr4wNCivpg5HlhYPlrZ0NCivpg5HlhYPnkZwNCivpg5Hlj4vor5oNCivpg5Hlv4PlpoINCivpg5HmlofmraMNCivpg5HmloflvawNCivpg5Hmloflr4wNCivpg5HmloflmIkNCivpg5HmnIjmnp0NCivpg5HkuJbmmIwNCivpg5HkuJbmuZgNCivpg5Hku5XpkasNCivpg5Hlt6fpnZINCivpg5HlvJjkvJ8NCivpg5HmraPor5oNCivpg5HmsLjmtKUNCivpg5HnjonkvLYNCivpg5Hnjonoi7ENCivpg5Hnjonoj4ENCivpg5Hnq4vkuqsNCivpg5HkupjlkJ8NCivpg5HkvIrnnJ8NCivpg5Hku7Llro8NCivpg5Hku7LotKQNCivpg5HlhYnkvZENCivpg5HlhYnmt7MNCivpg5HlhYblnYcNCivpg5HlhYjokIwNCivpg5HlkInkvZENCivpg5HlkI/lrZwNCivpg5HlkIjkv64NCivpg5HlpJnmtrUNCivpg5HlpoLmrKMNCivpg5HlpoLnuq8NCivpg5Hlroflro8NCivpg5Hlroflh4ANCivpg5HlrojkuJwNCivpg5HlronoirgNCivpg5Hlronnv5QNCivpg5HmiJDmo6ANCivpg5Hml63nm5sNCivpg5HmnInotKINCivpg5Hnmb7lqbcNCivpg5Hnvr3mmbQNCivpg5Hoh7PliJoNCivpg5HkvK/ljZcNCivpg5HlkJvovr4NCivpg5Hlro/mmI4NCivpg5Hlv5flip8NCivpg5Hlv5fkvJ8NCivpg5Hlv5fpvpkNCivpg5Hnp4DmgKENCivpg5Hnp4DlqJ8NCivpg5Hnp4DmhacNCivpg5HogrLljYcNCivpg5HotJ3lpoINCivpg5HkvbPlrpwNCivpg5HkvbPnpaUNCivpg5HkvbPku6oNCivpg5Hkvannj4oNCivpg5Hlhbbpm68NCivpg5HlrZ/njrINCivpg5HlrpfmnbANCivpg5HlrpzoirMNCivpg5HlubjlrpwNCivpg5HmgKHlkJsNCivpg5HmgKHlqbcNCivpg5HmmIzlsrMNCivpg5HmmI7lv6ANCivpg5HmmI7pk6gNCivpg5HmrKPlpoINCivpg5HmrKPojaMNCivpg5Hnp4nms5MNCivpg5HoirjoirgNCivpg5Hplb/lv5cNCivpg5Hkv4rlro8NCivpg5Hli4fnjJsNCivpg5Hlu7rkvbMNCivpg5Hlvabovr4NCivpg5HmmKXoj4oNCivpg5HnnIHmnZENCivpg5Hnvo7njokNCivpg5Hnvo7nkLQNCivpg5Hoi6XnkKQNCivpg5Hov6rlhYENCivpg5HlgKnlpoINCivpg5HlrrblhbgNCivpg5Hlrrbpk60NCivpg5HmjK/lrpwNCivpg5HkuabpkrANCivpg5HkvanlkJsNCivpg5HnpZDpmKENCivpg5HntKDlvawNCivpg5HojJfogaoNCivpg5HkvJ/nj4oNCivpg5Hlm73mraMNCivpg5Hlm73npaUNCivpg5Hln7nogaoNCivpg5HltIfkvZENCivpg5Hmg5/lv4MNCivpg5HlkK/ojaMNCivpg5HmooXlkJsNCivpg5HmuIXkv4oNCivpg5Hmt5HkupENCivpg5Hmt5HnsbMNCivpg5Hmt5HnjrINCivpg5Hmt5HlqbcNCivpg5Hmt5Hnh5UNCivpg5HmuIrol6QNCivpg5HnpaXlpoINCivpg5Hojonpm68NCivpg5HmnbDlhYMNCivpg5Hlh6/ku4ENCivpg5Hlh6/lhYMNCivpg5Hlh6/mlocNCivpg5Hlh6/ogrINCivpg5Hlh6/puL8NCivpg5Hog5zml60NCivpg5HljZrku4ENCivpg5HljZrmlocNCivpg5HkuZTpk60NCivpg5HlqbfmlocNCivpg5Hlr4zku4ENCivpg5HlsIrlrZ0NCivpg5Hmg6DmlocNCivpg5Hmg6DlkJsNCivpg5Hmg6DnurkNCivpg5Hmg6DpnJwNCivpg5Hmlq/lsLkNCivpg5Hmma/ku4ENCivpg5Hmma/mlocNCivpg5Hmma/pmoYNCivpg5Hmmbrku4ENCivpg5HmmbrlhYMNCivpg5HmmbrmmIwNCivpg5HmmbrosaoNCivpg5HmnJ3lhYMNCivpg5HmnJ3okKUNCivpg5HmpI3lr7ANCivpg5HmuZjmmIANCivpg5HnmpPkupENCivpg5HnqIvorq4NCivpg5HkuJ3pm68NCivpg5Hnv5TpvpkNCivpg5HoiJLolYoNCivpg5Hlko/ku4ENCivpg5Hor4/osKYNCivpg5HpgLjlqLQNCivpg5Hpl7XpuL8NCivpg5Hpm4XkupENCivpg5Hpm4Xlj4sNCivpg5Hpm4XmlocNCivpg5Hpm4XlpoMNCivpg5Hpm4XoiqwNCivpg5Hpm4XlqJ8NCivpg5Hpm4XnkKoNCivpg5Hpm4XnlIQNCivpg5Hpm4Xpu5sNCivpg5HkupHpuY8NCivpg5HmhI/kuK0NCivpg5HmlazmoaYNCivpg5Hmr5PpvoQNCivpg5HnkZ7nvo4NCivpg5HnkZznkLMNCivpg5HkuYnlrqoNCivpg5HlnKPotKQNCivpg5Hoo5XlubQNCivpg5Hor5fmhacNCivpg5HlmInku4ENCivpg5HlmInmiawNCivpg5HlmInml7sNCivpg5HojaPlqJ8NCivpg5Hnpo/lkowNCivpg5Hogoflv4MNCivpg5Hpk63ms7ANCivpg5Hlh6TpvoQNCivpg5Hluoblk7INCivpg5HmhafoirMNCivpg5HmhafplYENCivpg5HolJronYkNCivpg5HlrqrlrZgNCivpg5HmmZPmgKENCivpg5HmmZPolocNCivpg5Hpopbpk6gNCivpg5HolZnnkKYNCivpg5HpnJbpqo8NCivpg5HpnZnoirMNCivpg5Hmh4vmnbANCivpg5HosKLlhqANCivpg5HpuL/mupANCivpg5HkuLDlmIkNCivpg5HkuL3lkJsNCivpg5HnjK7mlocNCivpg5Hml7vovakNCivpg5HnkIfku4ENCivpg5Hln7UNCivpg5HntZzlv4MNCivpg5Hnjq7pmoYNCivpg5HpkrDpkp8NCivpg5HpnYsNCivpgpPljYfmlaYNCivpgpPmlofku6oNCivpgpPmsLjlv6ANCivpgpPkvIrlrrkNCivpgpPlkI7nkJsNCivpgpPml63mlaYNCivpgpPlv5fnhYwNCivpgpPkvbPnjrINCivpgpPlrpzmrKMNCivpgpPmmI7oirMNCivpgpPph5HpuL8NCivpgpPnp4vmg6ANCivpgpPmjK/oi7ENCivpgpPkvJ/otKQNCivpgpPmt5HnjrINCivpgpPljZrku4ENCivpgpPmg6DmlocNCivpgpPmma/pvpkNCivpgpPnv5Tku4ENCivpgpPpm4Xlv4MNCivpgpPpobrlsZUNCivpgpPoo5XppqgNCivpgpPnpo/pmoYNCivpgpPpnIflrocNCivpgpPpopbpqo8NCivpgpPliqblkYgNCivpsoHlv6DosaoNCivpsoHlrqrkupENCivpu47kuJblu4kNCivpu47lroflrrkNCivpu47mmI7kvKYNCivpu47kv5DlnYcNCivpu47lrrbkvLYNCivpu47lqYnku6oNCivpu47nhJXlhYMNCivpu47pk63ku4ENCivpu47npLzmmboNCivljaLkuInku4ENCivljaLku4HmnbANCivljaLmloflv6ANCivljaLmlofmmZ8NCivljaLlvJjmtbcNCivljaLmsLjljYcNCivljaLnlLPms7ANCivljaLlkInli4cNCivljaLlkYjoirMNCivljaLlv5flv6ANCivljaLlv5fono0NCivljaLogrLlnKMNCivljaLkvbPmg6ANCivljaLlj5TmrKMNCivljaLlrprlnYcNCivljaLlu7bljY4NCivljaLmgKHkvLYNCivljaLmgKHmtrUNCivljaLmib/kuJoNCivljaLmrKPlrpwNCivljaLnjqvlpo8NCivljaLpm6jmtrUNCivljaLkv53lhagNCivljaLkv4roqIANCivljaLkv4rlhJINCivljaLlhqDmmZQNCivljaLlpY7kvK8NCivljaLlqIHpnJYNCivljaLlu7rlro8NCivljaLlu7rpk60NCivljaLmgJ3mupANCivljaLmmJ/lhagNCivljaLmn4/oia8NCivljaLnm4jlro8NCivljaLnvo7lpoINCivljaLoi7Hku4ENCivljaLpn6bku4ENCivljaLlrrbpkrANCivljaLnpZbnv5QNCivljaLlqYnnkZwNCivljaLmt5HkuL0NCivljaLmg6DmnbANCivljaLotoXnvqQNCivljaLmgbrojokNCivljaLnvqTogrINCivljaLlmInmjK8NCivljaLlvrfoirMNCivljaLmhaflrpwNCivljaLovonlsZUNCivljaLpopblv5cNCivljaLpvpnnlJ8NCivljaLpn7XlspENCivljaLoqonlhYENCivljaLnrbHojrkNCivnqYbnvo7olZkNCivokKfkurrosaoNCivokKflo6vms7ANCivokKflsLnotJ4NCivokKflhYHms7ANCivokKfmlofmrKMNCivokKfmlofnrJQNCivokKfmlofprYENCivokKfkuJbmsJENCivokKfku6Xkuq4NCivokKfmraPlubMNCivokKfmsLjms5MNCivokKfnjonotJ4NCivokKfnq4vpn6YNCivokKfkuqbnu7QNCivokKfku7Llv5cNCivokKflhYbnkLMNCivokKflkI3msoINCivokKflnK3lppkNCivokKflpoLnj4oNCivokKflrofkvK8NCivokKflronlu7cNCivokKfmnInlro8NCivokKfogb/lro8NCivokKflkJvmgKENCivokKflro/oo5UNCivokKflv5fnvr0NCivokKflv5fosaoNCivokKfnp4Dmg6ANCivokKfogrLpmoYNCivokKfkvbPmgowNCivokKfkvannj4oNCivokKflraPolocNCivokKflsJrmlocNCivokKfmgKHoirMNCivokKfmmIblu7cNCivokKfmrKPmgKENCivokKfoirPnm4gNCivokKfpnZLokI0NCivokKfkv4rotKQNCivokKflvablvbANCivokKfmn4/ovakNCivokKfnvo7lqJ8NCivokKfov7Dku4ENCivokKflpI/mlY8NCivokKfmjK/lrokNCivokKfkvanlpoINCivokKforq3lm70NCivokKflm73mraMNCivokKflm73lrp0NCivokKfltIforroNCivokKfmlY/lvaYNCivokKfmuIXnh5UNCivokKfmt5Hnj40NCivokKfmt5HpopYNCivokKfpm6rlkJ8NCivokKflh6/mh4sNCivokKfljZrku4ENCivokKfljZrku7ANCivokKflr4zlhYMNCivokKfmg6DlhYMNCivokKfmg6DoirMNCivokKfmg6DkuaENCivokKfmlpDlpoINCivokKfmma/ogaoNCivokKfmmbrmooUNCivokKfmo4vlhYMNCivokKfnq6PpuL8NCivokKflko/mlrkNCivokKfpgLjlubMNCivokKfpm4XkuLkNCivokKfpm4XmlocNCivokKfpm4XojokNCivokKfpm6/lv4MNCivokKfniLHnjrINCivokKfnhJXnuqwNCivokKfnkZvml5cNCivokKflnKPmoaYNCivokKfor5fnkocNCivokKflmInnkKoNCivokKflroHlkJsNCivokKfnu7TlgKkNCivokKfovoXlvaYNCivokKfpk63mnYMNCivokKfmhafmgKENCivokKfojrnnnJ8NCivokKflv4blhbANCivokKfnv7Doi7ENCivokKfpnZnlrpwNCivokKfkuLDmmboNCivokKfkuL3lqJ8NCivokKfpuaTovakNCivokKfnkK7nv7ANCivokKfmn73lk5cNCivotZbkuYPpooINCivotZblo6votoUNCivotZbku4HnpZANCivotZblpKnpuL8NCivotZbmlofoi7ENCivotZbmlofljY4NCivotZbkuJbmmIwNCivotZbkuJbnu7QNCivotZblj6/mgakNCivotZblvJjnkpgNCivotZbmraPph44NCivotZbmsLjpk4MNCivotZbnjonllJANCivotZbnjonpnJwNCivotZbkuqbotJ4NCivotZblpoPlkJsNCivotZbml63lvaYNCivotZbkvK/lqIENCivotZblppnlrqMNCivotZblro/mmIwNCivotZblu7fnprkNCivotZblv5fmmIwNCivotZblv5fkvJ8NCivotZblv5fnurINCivotZbmnY/lhJINCivotZbnp4DmmKUNCivotZbogrLlu7cNCivotZbogrLpup8NCivotZbkvbPkvLYNCivotZbkvbPmrKMNCivotZbkvbPmhacNCivotZbkvanlkJsNCivotZblhbbkuq4NCivotZblrZ/ljY4NCivotZblrpfor5oNCivotZblrpzkvbMNCivotZblsYXmraMNCivotZbmgKHmlocNCivotZbmgKHkvLYNCivotZbmgKHlkJsNCivotZbmgKHmrKMNCivotZbmgKHmoaYNCivotZbmmIzlvaYNCivotZbmmI7lro8NCivotZbmmI7lvrcNCivotZbkuJzlu7YNCivotZbmrKPlrpwNCivotZbmrabmuqoNCivotZbnjqvlpoINCivotZboirPlu7YNCivotZbplb/kvZENCivotZbkv6HlhYkNCivotZbkv6Hor5oNCivotZbkv4rlhYYNCivotZbkv4rlro8NCivotZbkv4rmnbANCivotZbkv4rovr4NCivotZbkv5DljYkNCivotZblhqDlro8NCivotZbli4flv5cNCivotZblpZXluIYNCivotZblp7/lnYcNCivotZblqIHlnYcNCivotZblrqPlpqQNCivotZblu7rlkIgNCivotZblu7rkvZENCivotZblu7rlv5cNCivotZblu7rpm4QNCivotZblu7rono0NCivotZblvabkvZANCivotZblvaboia8NCivotZblvabmoaYNCivotZbmgJ3pnJYNCivotZbmlL/lrr0NCivotZbmmK3lhYkNCivotZbmmK3pvpkNCivotZbmmLHli4sNCivotZbmn4/kvLgNCivotZbmn4/pvpkNCivotZbnj4DotKQNCivotZbnm4jpnZINCivotZbnp5HljbANCivotZbnuqLpnJ4NCivotZbnvo7lhqANCivotZbnvo7pjLUNCivotZbojILlu7cNCivotZbombnkvLYNCivotZblhpvkuL4NCivotZbpg4Hpm68NCivotZbpn6bovr4NCivotZblrrblvJgNCivotZbmjK/nlJ8NCivotZbmtankuLANCivotZbnp6nlhYkNCivotZbpq5jlv5cNCivotZblm73mgakNCivotZbln7rmuIwNCivotZblkK/mupANCivotZbmt5HmgKENCivotZbmt5HotJ4NCivotZbmt5HokI0NCivotZbojonpm68NCivotZbmg6DlkJsNCivotZbmhInoirMNCivotZbpkqbor6ANCivotZbotLXkuYkNCivotZbpmoblubMNCivotZbpm4XnkLQNCivotZbpobrmjK8NCivotZbmupDmt7MNCivotZbkuYnkuK0NCivotZboi4fluIYNCivotZbpnZblrpwNCivotZblmInmhacNCivotZbojaPnkI8NCivotZbnu7Tlu7cNCivotZbpk63nm7gNCivotZblop7ogaoNCivotZbluobpk60NCivotZbmhaflqJ8NCivotZbmtIHoirMNCivotZbplIsNCivotZbmmZPmnqsNCivotZbpopbovokNCivotZbplKbkur8NCivotZbpnZnnkocNCivotZbpuL/pk60NCivotZbpn7XlpoINCivotZbkuL0NCivotZbkuL3pm68NCivotZboioPlkJsNCivotZbmn4rmo4sNCivotZbnjq7mmIANCivotZbpnIjlhJINCivov5/lsJrmnYMNCivpkrHku6XmgawNCivpkrHoia/olZkNCivpkrHmrKPlrpwNCivpkrHlqIHono0NCivpkrHpg4Hoi7kNCivpkrHpgLjpnJYNCivpkrHlvrfkv4oNCivplJzmg6Dpm68NCivpmI7mg6DnjrINCivpnI3ojpjnkZwNCivpqobmsLjlu7oNCivpqoblraPlubMNCivpqoboirPmoqcNCivpqoblu7rlkYgNCivpqobooY3pvpkNCivpqoblmInluoYNCivpso3ooYzku4ENCivpso3lm73ls7ANCivpvpnnp4DotJ4NCivpvpnmmJ/lhYYNCivlgqjkuo7otoUNCivlupTlv5flro8NCivmiLTkuZnoj4ENCivmiLTlpKfpkqcNCivmiLTlhYPliKkNCivmiLTmlofpm4QNCivmiLTmraPlubMNCivmiLTnq4vkuroNCivmiLTlhajliKkNCivmiLTlrojmraMNCivmiLTkvZHmtLINCivmiLTlkYjlrokNCivmiLTlro/kuJ4NCivmiLTlv5fljYcNCivmiLTmnY/oirMNCivmiLTkvbPlubMNCivmiLTlraPlhagNCivmiLTmgKHotJ4NCivmiLTmmI7nj6ANCivmiLTkv4rnuqwNCivmiLTnp4vpppkNCivmiLTpg4HoirMNCivmiLTmjK/ov5wNCivmiLTlm73oia8NCivmiLTmg5/mnIkNCivmiLTojokNCivmiLTmo67lnLANCivmiLTpm4XlpoINCivmiLTkvKDlrrYNCivmiLTnkZ7lkJsNCivmiLTnvqTls7ANCivmiLTlmInlro8NCivmiLTlmInlrqoNCivmiLTnu7TkvLgNCivmiLTlop7nkZwNCivmiLTotKTnpaUNCivmiLTpnZnku6oNCivmiLTlv57oh7sNCivmiLTolo/nj4oNCivnvKrkv6HlrocNCivolpvkuYPlhYENCivolpvkuLnmoYINCivolpvkuJbnhYwNCivolpvnjonplIsNCivolpvlhYnnqIsNCivolpvlpoLlkJsNCivolpvnmb7mg6ANCivolpvlv5flro8NCivolpvkvp3okqgNCivolpvlubjlmIkNCivolpvljYfml60NCivolpvlpZXpvpkNCivolpvnvo7oirMNCivolpvlsZXnq4sNCivolpvkvJ/kvK8NCivolpvmt5HpnZYNCivolpvlh6/mlocNCivolpvlm7TkuK0NCivolpvmma/mlocNCivolpvnq6PnurYNCivolpvpm4XokI0NCivolpvnkZ7nj40NCivolpvlmInpm4QNCivolpvok5PoirMNCivolpvlhJLpnJkNCivolpvpn7XlqbcNCivolpvpkrDnnJ8NCivosKLkuo7mqLENCivosKLlsI/mooUNCivosKLku4Hlk7INCivosKLlhYPotLUNCivosKLlv4Ppm4UNCivosKLmloflqJ8NCivosKLmloflsKcNCivosKLmlofnkZwNCivosKLmlofmlowNCivosKLku6XmrKMNCivosKLlvJjkuq4NCivosKLmraPnm4oNCivosKLmsLjkv6ENCivosKLnjonnj6ANCivosKLnq4vnvqQNCivosKLlhYnkuK0NCivosKLlkInkuLANCivosKLlpoLpuL8NCivosKLmiIzlmIkNCivosKLogb8NCivosKLkvZDlrpwNCivosKLlhYvlvLoNCivosKLlnYfmr4UNCivosKLlro/lv6ANCivosKLlro/nuqwNCivosKLlv5flro8NCivosKLlv5fmmI4NCivosKLlv5fkvJ8NCivosKLlv5fpgLgNCivosKLlv5flvrcNCivosKLmibbplKYNCivosKLnp4DpnZINCivosKLnp4DojrINCivosKLogrLlqJ8NCivosKLogrLpnJYNCivosKLkuprlspoNCivosKLkvp3kvKYNCivosKLkvbPmlocNCivosKLkvbPlro8NCivosKLkvbPoirMNCivosKLkvbPlgKkNCivosKLkvbPnuq8NCivosKLkvbPpm68NCivosKLkvbPpopYNCivosKLkvbPmqLENCivosKLkvanlkJsNCivosKLkvanoirMNCivosKLkvannj4oNCivosKLkvannj40NCivosKLkvannnJ8NCivosKLkvanok4kNCivosKLkvpHkuaYNCivosKLlhbbmlowNCivosKLlkajngr0NCivosKLlnaTlrqoNCivosKLlrZ/lkJsNCivosKLlrZ/oirgNCivosKLlrZ/nnJ8NCivosKLlrZ/moaYNCivosKLlrZ/oiqkNCivosKLlrpfkvZENCivosKLlrpflrrkNCivosKLlrpfotKQNCivosKLlrpflrqoNCivosKLlrpfnv7ANCivosKLlrpwNCivosKLlrpzoirMNCivosKLlrpzkvKYNCivosKLlrpzlqbcNCivosKLlrpzoh7sNCivosKLlrpvnjrINCivosKLlrpvosJgNCivosKLlsJrlhJINCivosKLlubjlrpwNCivosKLluprnv7ANCivosKLlv6Dli6QNCivosKLmgKHlqbcNCivosKLmib/ovr4NCivosKLkuo7nnb8NCivosKLmmJPpnJYNCivosKLmmIznkb4NCivosKLmmI4NCivosKLmmI7lro8NCivosKLmmI7mnZENCivosKLmmI7oirMNCivosKLmmI7kvKYNCivosKLmmI7kuaYNCivosKLmmI7mg6ANCivosKLmmI7mhqwNCivosKLmmI7lrqoNCivosKLmmI7nv7ANCivosKLmmI7oq7QNCivosKLljYflk7INCivosKLkuJzljYcNCivosKLkuJzmmZMNCivosKLmnb7lrqoNCivosKLmrKPlro8NCivosKLmrKPmgKENCivosKLmrKPpkooNCivosKLmrKPpnJYNCivosKLniafpmK4NCivosKLnp4nlrrkNCivosKLnp4nosJoNCivosKLoip3pnZINCivosKLph5HotJ4NCivosKLplb/ljp8NCivosKLpm6jpnZINCivosKLpnZLmoaYNCivosKLkv4rlro8NCivosKLkv57mnrANCivosKLlpZXlp50NCivosKLlvablkI8NCivosKLmlL/nlLcNCivosKLmlL/ovr4NCivosKLmlL/nv7ANCivosKLmn4/oiJ8NCivosKLnmofnv5QNCivosKLnp4vnh5UNCivosKLnvo7njrINCivosKLoh7TnvqQNCivosKLpg4HnkYQNCivosKLlrrboj7ENCivosKLluq3mgakNCivosKLmmYvotKQNCivosKLmtannhLYNCivosKLntKDoj7ENCivosKLlubLpqo8NCivosKLmm7znm4gNCivosKLlm73lvawNCivosKLlqYnnjrINCivosKLlkK/mlocNCivosKLmopPpup8NCivosKLmuIXmtLINCivosKLmt5HoiqwNCivosKLmt5HlqJ8NCivosKLmt5HpkqcNCivosKLnmo7nm4gNCivosKLnrKDlhYMNCivosKLlh6/kvJ8NCivosKLljZrnmpMNCivosKLlqpvnkKoNCivosKLlsprlsY8NCivosKLmg6DoiqwNCivosKLmg6DokI0NCivosKLmma/ku4ENCivosKLmmbrmtakNCivosKLmpI3lhogNCivosKLnmpPmmboNCivosKLoj4rolZkNCivosKLov5vlv6ANCivosKLpm4XlpoINCivosKLpm4Xpm6oNCivosKLpm4XokI0NCivosKLpm6/lh68NCivosKLpobrpmoYNCivosKLmr5PnjrINCivosKLnkZ7mooUNCivosKLkuIfpvpkNCivosKLor5fmhacNCivosKLlmInnj4oNCivosKLlmInpk60NCivosKLojaPlk7INCivosKLnoqfoj4ENCivosKLnu7Tku4ENCivosKLnv6Dnjq8NCivosKLpk63lv6ANCivosKLpk63mmboNCivosKLlh6TnjrINCivosKLlvrfpkqcNCivosKLmhafnj40NCivosKLmhafnkLwNCivosKLolJrlhJINCivosKLlrabnurINCivosKLmmZPlspoNCivosKLnh5XnjrINCivosKLolZkNCivosKLono3pvZANCivosKLpnZnlrpwNCivosKLpnZnku6oNCivosKLnkbflpoINCivosKLpuL/pqo8NCivosKLnpLzmiJANCivosKLplYflrocNCivosKLnkLzmlocNCivosKLpn7XlhJINCivosKLlrp3nkaINCivosKLogIDlhbsNCivosKLmmL7pk60NCivosKLml7vojokNCivosKLmmZ/pk60NCivosKLngpzpopENCivosKLogIDogaoNCivplLrkuZnmsJENCivplLrlhYPmjK8NCivplLrmloflrocNCivplLrmlofpkqYNCivplLrmnIjlnIYNCivplLrlubzlh4wNCivplLrmsLjpm4QNCivplLrnjonmg6ANCivplLrlhYbmsJENCivplLrmiJDlpYcNCivplLrkvK/lkJsNCivplLrlrZ3lhbYNCivplLrlv5flro8NCivplLrlv5fosaoNCivplLrnp4DoirMNCivplLrogrLosJoNCivplLrkvp3pnZkNCivplLrkvbPnnJ8NCivplLrkvbPpopYNCivplLrkvanoirgNCivplLrkvanlqbcNCivplLrljZPlhJINCivplLrlrZ/mhqwNCivplLrlrpzlhagNCivplLrlrpzlhbQNCivplLrlsJrlhJINCivplLrlu7bljY4NCivplLrmib/nkosNCivplLrmmJPovr4NCivplLrmmI7np4ANCivplLrmmI7mmY8NCivplLrmmI7lrqoNCivplLrljYfpopYNCivplLrmrKPnv7ANCivplLrnp4nosJoNCivplLrph5HnkosNCivplLrkv4rnlKsNCivplLrmlL/msJENCivplLrmlL/plKYNCivplLrnm4jmhacNCivplLrnvo7nkLMNCivplLrpg4Hnv44NCivplLrmjK/ms5MNCivplLrnurnmmJMNCivplLrllYbpqo8NCivplLrltIfmooUNCivplLrmt5HoiqwNCivplLrmt5HokI0NCivplLrlh6/kvp0NCivplLrmg6DlpoINCivplLrmmbrmnbANCivplLrnu5rlpoINCivplLrpgLjnn7MNCivplLrkupHlhYkNCivplLrmupDlvrcNCivplLroo5XmlocNCivplLrlmInlh6QNCivplLrnpa/lhYMNCivplLrpk63mmboNCivplLrlvrfpnJYNCivplLrkuZDlkJ8NCivplLrmmZPlspoNCivplLrplKbnkLMNCivplLrolrANCivplLrpuY/po54NCivplLrmh7/ljY4NCivplLrml7vlnJwNCivpnqDlsrHnkKYNCivpn6nmlofkuLANCivpn6nlhYvkv60NCivpn6nkvanliq0NCivpn6nlrpzmtIENCivpn6nmmI7kvKYNCivpn6nnm7jlrpwNCivpn6nmooUNCivpn6npm4XogIwNCivpn6nlmInpqo8NCivpn6nlrp3ojrkNCivkuJvmt5HljY4NCivnroDkuIrlk7INCivnroDlo6vnm4oNCivnroDlo6vmv6ANCivnroDlsI/olZkNCivnroDmlofkuqgNCivnroDmlofotLUNCivnroDkuJboo5UNCivnroDlt6flqbcNCivnroDmsJHpvpkNCivnroDnjonnj40NCivnroDnq4vkuroNCivnroDkvIrlqZUNCivnroDku7Dlo64NCivnroDlkInogaoNCivnroDlroflsY8NCivnroDnmb7lupQNCivnroDoh7PpnIYNCivnroDkvLblqJ8NCivnroDlkJvnjrINCivnroDlpqTnjrINCivnroDlro/kvKYNCivnroDlu7flrokNCivnroDlv5flrokNCivnroDlv5fls7ANCivnroDlv5fpm4QNCivnroDlv5fpopYNCivnroDnp4DmnY8NCivnroDnp4Dnuq8NCivnroDotJ3nj4oNCivnroDkvbPnkKoNCivnroDkvannkKoNCivnroDlrpflvrcNCivnroDmgKHlqbcNCivnroDmmI7pm4ENCivnroDnjqvnjokNCivnroDpm6jojasNCivnroDlu7rkuIANCivnroDmmK3okLgNCivnroDnvo7lqJ8NCivnroDombnnkKoNCivnroDlrrbmlrANCivnroDkvanpm4UNCivnroDlgaXkv4oNCivnroDlm73mlowNCivnroDlkK/mgZINCivnroDmt5HoiqwNCivnroDmt5HlqbcNCivnroDojonpnZkNCivnroDljZrlvawNCivnroDmg6DmuZgNCivnroDmo67kuZkNCivnroDljY7nnJ8NCivnroDpm4XlpoINCivnroDpobrnq4sNCivnroDmlazluq0NCivnroDmuqLlnYcNCivnroDnkZ7mo7sNCivnroDlnKPosaoNCivnroDor5fls7ANCivnroDlmInlro8NCivnroDlmInlvawNCivnroDlmInpvoQNCivnroDmsYnnkosNCivnroDnpa/kvZENCivnroDnu7TokLENCivnroDov5znnJ8NCivnroDpk63ovrANCivnroDlh6Tku6oNCivnroDmhaflqJ8NCivnroDlv4blpoINCivnroDplKHmuIoNCivnroDpqo/otLgNCivnroDoibrls7ANCivnroDpqormtIENCivnroDnjq7kvKYNCivnroDlnKMNCivogYLkuJzljZcNCivogYLmmpDls7sNCivok53lrZDmoZMNCivok53lhYPnmpMNCivok53mloflrZ0NCivok53lvJjkvJ8NCivok53ku7LkvJ8NCivok53lv5flj5ENCivok53mgKHlubMNCivok53mmJXnuqwNCivok53mmKXlj5ENCivok53ls7vlvawNCivok53kvJ/ku4ENCivok53lm73ljY4NCivok53mopPku5ENCivok53mg6DokI0NCivok53pm4XpvoQNCivok53lmInlk7INCivok53mhafnj4oNCivok53pu5vojrkNCivpmJnlsJHoirMNCivpmJnlkJ/lpJkNCivpmJnmmI7mhacNCivpmJnpgKLmr4UNCivpmJnmu6LoiqwNCivpopzlo6vlvawNCivpopzlpKfnpo8NCivpopzlsI/lh6ENCivpopzmnIgNCivpopzlvJjnpaUNCivpopzmsLjoirMNCivpopznjonnjq4NCivpopzlhYnnjpcNCivpopzlpoLnjokNCivpopzmnInnlLcNCivpopzkvK/lpYcNCivpopzlkYjml60NCivpopzlppnoirMNCivpopzlro/lk7INCivpopzlro/nnb8NCivpopzlv5fmiJANCivpopzlv5fmiawNCivpopzlv5fpup8NCivpopznp4DnnJ8NCivpopzoia/ms70NCivpopzkvbPmhacNCivpopzlrpflubMNCivpopzmib/kvJ8NCivpopznp4nlvrcNCivpopzlpZXku4ENCivpopznp4vnkLQNCivpopzoi6Xluq0NCivpopzlrrbnpboNCivpopzkvanlspoNCivpopzlm73kuaYNCivpopzlsInlh68NCivpopzmmajmmpANCivpopzmt5HkupENCivpopzlqbfnjrINCivpopzljY7miJANCivpopzpm4XljYkNCivpopzpm6/pn7UNCivpopznkZ7mlocNCivpopznkZzmhacNCivpopzlnKPpuL8NCivpopzlmInmiJANCivpopzlmInnkLMNCivpopzlroHkvZENCivpopznpo/poboNCivpopzpk7bmoZANCivpopzpuKPluoYNCivpopzojrnpuY8NCivpopzms73lrocNCivpopzpuL/pkqYNCivpopznjK7kvZENCivpopzpkrDoirgNCivprY/lo6vmnbANCivprY/lrZDmmbQNCivprY/ku4HlqIENCivprY/mlofnu64NCivprY/lt6fmmbQNCivprY/njonpm68NCivprY/ku7vlu7cNCivprY/lkI3ms5sNCivprY/lrofovr4NCivprY/nmb7nm5sNCivprY/kvLblqJ8NCivprY/lkJvmtIENCivprY/lrZ3lrr0NCivprY/lspHoiqwNCivprY/lv5fkvKYNCivprY/np4DmgawNCivprY/oia/kvZENCivprY/kvbPljb8NCivprY/lrpzlrr0NCivprY/mmI7nq6ANCivprY/kv4rml7oNCivprY/mmKXnlJ8NCivprY/oi7HplYcNCivprY/mmYvkuIANCivprY/kvJ8NCivprY/ltIfmoZMNCivprY/mt5HnjqsNCivprY/pgKLmr4UNCivprY/mnJ3kv6ENCivprY/pgLjnjrINCivprY/niLHmtKUNCivprY/mu4fkvZENCivprY/nraDmlocNCivprY/pk4Poip0NCivprY/lmInoia8NCivprY/lq6blpoYNCivprY/noZXpopYNCivprY/pk63msYkNCivprY/mhZXluIYNCivprY/otovlkIkNCivprY/pupLlrrkNCivprY/nkYTosIoNCivlup7msLjln7kNCivml7flqYnlkJsNCivnvZfljYPpm68NCivnvZflrZDovakNCivnvZflsLnkvLYNCivnvZfku4Hli4cNCivnvZflhYPnlKsNCivnvZflhYHkuK0NCivnvZflj4vlo7ANCivnvZflv4PlsY8NCivnvZfmloflrpwNCivnvZfmloflvawNCivnvZfmlofpvZANCivnvZfmnIjlh7ANCivnvZfkuJbpk60NCivnvZfku5Xmo4sNCivnvZflt6fojokNCivnvZfmraPpgqYNCivnvZfmsLjmmboNCivnvZfnjonokI0NCivnvZfkuqbml4sNCivnvZfku7DnnJ8NCivnvZflhYbnu7QNCivnvZflrofku7sNCivnvZfml63lkJsNCivnvZfoh7PlloQNCivnvZflro/kuIANCivnvZflv5fpm4QNCivnvZfnp4DnjrINCivnvZfkuprlroENCivnvZfkvbPnkKYNCivnvZflrpzlkJsNCivnvZfmgKHmg6ANCivnvZfmmI7nq6ANCivnvZfmrKPmhYgNCivnvZfoirfpnZINCivnvZfkv4rlvaYNCivnvZflvaYNCivnvZfnjrLnjrINCivnvZfnvo7ojrINCivnvZfoi5HmppUNCivnvZflrrbmrKMNCivnvZfmjK/lu7cNCivnvZfms7DkvKYNCivnvZfkvanlqJ8NCivnvZfntKDoirENCivnvZfkvJ/lk7INCivnvZflgaXlv5cNCivnvZfllK/nkYQNCivnvZflm73ljY4NCivnvZflm73mmpANCivnvZflqYnlqKUNCivnvZflvLoNCivnvZfmlY/mlocNCivnvZfmlY/ku6oNCivnvZfmt4fmlocNCivnvZfmt5Hok4kNCivnvZfnu43mlocNCivnvZfmnbANCivnvZflh6/popANCivnvZfljZrkv4oNCivnvZfmg6DmlrkNCivnvZfmg6DlhbANCivnvZfmmbrog70NCivnvZfntKvoj4ENCivnvZfljY7mtZMNCivnvZfpkqfogIANCivnvZfpm4XmlY8NCivnvZfpm6/nkLQNCivnvZfmr5PmnbANCivnvZfnkZ7ojaMNCivnvZflnKPnkLMNCivnvZfovr4NCivnvZflmInnjrINCivnvZfojaPovokNCivnvZfpmYXlt50NCivnvZfluobmnbANCivnvZfojrnmo7sNCivnvZfmmZPlqIENCivnvZflhbTlrokNCivnvZfpuL/ln7oNCivnvZfppqjlrpwNCivnvZfngpznqIsNCivosK3lj4jmsJENCivosK3lhYnljY4NCivosK3kvanlspoNCivosK3mgqbppqgNCivosK3mmbrku4ENCivosK3osJsNCivlhbPkuIDlv4MNCivlhbPlv5flrocNCivlhbPmt5HkupENCivkuKXlrZDnrZENCivkuKXlv4PlhYMNCivkuKXlj6/lkJsNCivkuKXlv5flk7INCivkuKXmmKXlh6QNCivkuKXmjK/lhbQNCivkuKXlqYnnjrINCivkuKXmt5Hoj4ENCivkuKXlko/lnKMNCivkuKXnu7TlvrcNCivkuKXppqUNCivnqqbnkZ7pnJ4NCivolLrlv4PmgKENCivoi4/ljYPku6MNCivoi4/lo6vosaoNCivoi4/lrZDnv5QNCivoi4/kuK3mgKENCivoi4/lhYPkuZkNCivoi4/mlocNCivoi4/mloflqJ8NCivoi4/mlofovokNCivoi4/kuJbluq0NCivoi4/lt6flroENCivoi4/mraPlrrYNCivoi4/msLjmnbANCivoi4/njonkv64NCivoi4/nq4vlh68NCivoi4/lpoLolZkNCivoi4/nq7nlrokNCivoi4/lkJvpnI8NCivoi4/lro/ms7ANCivoi4/lv5flrZ8NCivoi4/lv5flnZoNCivoi4/lv5fpuL8NCivoi4/np4DnjrINCivoi4/ogrLlvJgNCivoi4/ogrLkv54NCivoi4/ogrLnkbENCivoi4/kvbPotrMNCivoi4/kvannkZwNCivoi4/lrpfkuIANCivoi4/lsJrnkb4NCivoi4/mgKHlpoINCivoi4/mgKHlkJsNCivoi4/mgKHoj4ENCivoi4/mgKHppqgNCivoi4/mmI7kv4oNCivoi4/mmI7puL8NCivoi4/mrabpvpkNCivoi4/oirPmraMNCivoi4/oirPojrkNCivoi4/pnZLlppkNCivoi4/kv6HmupANCivoi4/kv4rlpKsNCivoi4/kv4rnpaUNCivoi4/kv4rpk60NCivoi4/kv57lpoINCivoi4/li4for5oNCivoi4/lpZXmnbANCivoi4/lqIHovr4NCivoi4/lu7rkuK0NCivoi4/lu7rlv5cNCivoi4/lu7rosaoNCivoi4/lvabojacNCivoi4/mgZLoh7MNCivoi4/mlL/osKYNCivoi4/mmK3lkJsNCivoi4/mmLHku7sNCivoi4/mn4/lt54NCivoi4/mn4/moaYNCivoi4/nj4rojrkNCivoi4/nmofljp8NCivoi4/nm4jnqZcNCivoi4/nuqrmlY8NCivoi4/nvo7njrINCivoi4/oh7Tku4ENCivoi4/oi7HnmpMNCivoi4/otJ7nh5UNCivoi4/pg4HkvKYNCivoi4/pg4Hpm4UNCivoi4/pppnnkKoNCivoi4/ku5PmsLgNCivoi4/lk7Lkur8NCivoi4/lrrYNCivoi4/lrrbkv6ENCivoi4/lrrbojrkNCivoi4/ls7vmsJENCivoi4/luq3nkbYNCivoi4/mjK/pk60NCivoi4/moZPluoYNCivoi4/mtankuLoNCivoi4/nm4rnpoQNCivoi4/nqojnkbENCivoi4/nuq/mhacNCivoi4/ovanmsJENCivoi4/kvJ/or5oNCivoi4/lm73lhbgNCivoi4/loILosaoNCivoi4/lqYnmg6ANCivoi4/mlY8NCivoi4/muIXlrokNCivoi4/mt5HlqbcNCivoi4/nmo7mhacNCivoi4/ojonmg6ANCivoi4/ljZrnjoQNCivoi4/mg6DotJ4NCivoi4/mmbbmlrANCivoi4/muZjmgKENCivoi4/oiJzljb8NCivoi4/pgLjnnJ8NCivoi4/pm4XlkJsNCivoi4/pm4Xmg6ANCivoi4/pm4XmhacNCivoi4/pobror5oNCivoi4/mhI/lspoNCivoi4/mlazoj7ENCivoi4/mr5PlvawNCivoi4/njLfnv5QNCivoi4/nnabku4ENCivoi4/nvqTmnbANCivoi4/lnKPmtrUNCivoi4/oo5XmlocNCivoi4/or5flqbcNCivoi4/pnZblspoNCivoi4/lmInlro8NCivoi4/lmInpuL8NCivoi4/noqfmmK0NCivoi4/pl7vosKgNCivoi4/kur/nj40NCivoi4/mhafmlocNCivoi4/mhaflqJ8NCivoi4/mr4UNCivoi4/mmZPlpoINCivoi4/mmZPoioMNCivoi4/plKbljYcNCivoi4/pnZnoirMNCivoi4/lo7DmjK8NCivoi4/puL/ku6oNCivoi4/puY/nv7ANCivoi4/kuL3ljY4NCivoi4/ml7vlkJsNCivoi4/ng5zmr4UNCivoi4/nkKHor4QNCivoi4/njq7nkLMNCivoi4/osYrmo4sNCivoi4/pkrDoj4ENCivpkp/lo6vpkqYNCivpkp/mlofnp4ANCivpkp/njonlpoINCivpkp/kvbPnu6INCivpkp/nm4jlh68NCivpkp/mjLrosaoNCivpkp/lm73pk60NCivpkp/mlY/mhKsNCivpkp/mg6DlrocNCivpkp/pobrnprkNCivpkp/noqflhbANCivpkp/ppqjosIoNCivppbblv5fosaoNCivppbbkuq4NCivppbbkvanpvoQNCivppbbmlazlm70NCivlhZrkuIDkuLoNCivpob7mlofnu5oNCivpob7nq4voi7kNCivpob7lrpfmspsNCivpob7lgKnlpoINCivpob7ltIflvrcNCivpob7nv6DljY4NCivpvprkuo7nj4oNCivpvprmlofpopYNCivpvprlhYbnpboNCivpvprkvanlkJsNCivpvprpnZLkupENCivpvprlvablkI0NCivpvprotJ7lpoINCivpvprkuablnKMNCivpvprmt5Hoi5cNCivpvprpm4XmrKMNCivpvprpnZbor5INCivpvprosavmhacNCivkupPpmobnpaUNCivkvZjlsJrpuL8NCivkvZjogZTmlowNCivpgr7kuqbljZcNCivmtoLkuJblkowNCivmtoLlkJvok4kNCivmtoLogrLojaMNCivmtoLmrKPlro8NCivmtoLmlL/nlLcNCivmtoLmjK/msJENCivmtoLlkK/ljp8NCivmtoLlr4zmmJ8NCivmtoLpm4Xnh5UNCivmtoLlmInljp8NCivmtoLmhafnj40NCivmtoLogIDljYcNCivnspjlvJjlkIkNCivnspjogrLnjq4NCivnspjnuq/lpoINCivnspjlnKPpkasNCivnspjogIDku4ENCivpgqzlv4PmgKENCivpnbPnq4vkvJ8NCivpgp3lhYnlroENCivmoL7lraPlvLoNCivugIDoirPnkKYNCivugIDlqYnlqbcNCivugIDpk63mupANCivuib7mlofli4sNCivuib7lh6TnkKoNCivui6fkv6HkuYkNCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfVGhhaS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfVGhhaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIyNDNmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19UaGFpLnR4dApAQCAtMCwwICsxLDEwODQzIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+C4geC5iuC4geC5gOC4ruC4hyDguYHguIvguYjguYHguJXguYkNCivguIHguIrguIHguKMg4Lio4Lij4Liy4LiX4LiY4LiX4Lix4LiVDQor4LiB4LiV4Li04LiB4LiyIOC4reC4seC4h+C4hOC4quC4uOC4oOC4kw0KK+C4geC4meC4gSDguJjguKPguKPguKHguJvguKPguLDguJfguLXguJsNCivguIHguJnguIEg4Lin4LiH4Lio4LmM4LiX4Lit4LiH4Lio4Lij4Li1DQor4LiB4LiZ4LiB4LiB4LijIOC4iuC5ieC4suC4h+C5gOC4ouC5h+C4meC4ieC5iOC4sw0KK+C4geC4meC4geC4ieC4seC4leC4o+C5jCDguJbguLLguKfguKPguJnguLHguJnguJfguYwNCivguIHguJnguIHguJnguKfguKUg4LmC4Lib4Lip4Lii4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4LiB4LiZ4LiB4Lie4LijIOC4hOC4oeC4hOC4suC4og0KK+C4geC4meC4geC4nuC4oyDguJXguLXguKPguYDguKXguLTguKjguJ7guLLguJnguLTguIoNCivguIHguJnguIHguJ7guKMg4Lie4Lix4LiZ4LiX4LijDQor4LiB4LiZ4LiB4Lie4LijIOC4qOC4o+C4teC4muC4seC4k+C4keC4tOC4lQ0KK+C4geC4meC4geC4nuC4oyDguK3guJXguLTguKfguKPguKPguJPguLLguJ7guLHguJLguJnguYwNCivguIHguJnguIHguJ7guKPguKPguJMg4Lio4Lij4Li14Lin4LiZ4Liy4Lig4Li04Lij4Lih4Lii4LmMDQor4LiB4LiZ4LiB4Lij4Lix4LiV4LiZ4LmMIOC5gOC4geC4teC4ouC4o+C4leC4tOC4ouC4tOC5iOC4h+C4reC4seC4h+C4qOC4uOC4peC4tQ0KK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguKrguLjguJjguKPguKPguKHguJ7guLTguJfguLHguIHguKnguYwNCivguIHguJnguIHguKfguKPguKPguJMg4LiE4LiH4LiE4Liy4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4geC4meC4geC4p+C4o+C4o+C4kyDguJrguLjguI3guJvguKPguLDguYDguKrguKPguLTguJANCivguIHguJnguIHguKfguKPguKPguJMg4Lij4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4quC4seC4iOC4iOC4nuC4h+C4qeC5jA0KK+C4geC4meC4geC4p+C4o+C4o+C4kyDguK3guLjguYnguKLguKfguIfguKjguYzguYTguJ7guKjguLLguKUNCivguIHguJnguIHguKjguLHguIHguJTguLTguYwg4Lii4Li04LmI4LiH4Lii4LiHDQor4LiB4LiZ4LiB4LmB4LiB4LmJ4LinIOC4geC4o+C4quC4oeC4tOC4lQ0KK+C4geC4meC4tOC4qeC4kOC4siDguJfguJnguLjguJbguJnguK3guKHguKPguLLguKnguI7guKPguYwNCivguIHguJnguLTguKnguJDguLIg4Lir4Lin4Lix4LiH4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiIDQor4LiB4Lih4LilIOC4geC4suC4jeC4iOC4meC5guC4o+C4iOC4meC5jA0KK+C4geC4oeC4pSDguITguLHguKHguKDguLXguKPguYwNCivguIHguKHguKUg4LmA4LiI4LiV4LiZ4LmM4Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4LiB4Lih4LilIOC4iuC4ueC4leC4o+C4sOC4geC4ueC4peC4mOC4o+C4o+C4oQ0KK+C4geC4oeC4pSDguJXguKPguLDguIHguLLguKPguJ7guLTguJnguLTguIgNCivguIHguKHguKUg4LiX4Lix4Lie4Lie4Liw4Lij4Lix4LiH4Liq4Li1DQor4LiB4Lih4LilIOC4muC4seC4lOC4leC4tOC4ouC4sg0KK+C4geC4oeC4pSDguJ7guIfguKnguYzguK3guJnguLHguJnguJXguYLguKLguJjguLTguJkNCivguIHguKHguKUg4LmC4Lie4LmC4Liq4Lig4LiyDQor4LiB4Lih4LilIOC4o+C4oeC5gOC4ouC4qA0KK+C4geC4oeC4pSDguYLguKXguKvguLDguYTguJ7guKjguLLguKUNCivguIHguKHguKUg4Lin4Li04Liq4Li44LiX4LiY4Li04LmM4LmA4Liq4Lij4Li14Lin4LiH4Lio4LmMDQor4LiB4Lih4LilIOC4quC4oeC4nuC4h+C4qeC5jA0KK+C4geC4oeC4pSDguKrguLjguKPguJ7guIfguKnguYzguJvguKPguLDguIrguLINCivguIHguKHguKUg4LmB4Lir4Lin4LiZ4LiX4Lix4Lia4LiX4Li04LihDQor4LiB4Lih4LilIOC5gOC4reC4teC5iOC4ouC4oeC4qOC4tOC4o+C4tA0KK+C4geC4oeC4peC4iuC4seC4oiDguKjguKPguLXguKrguLTguKPguLTguKPguLHguJXguJnguLLguIHguKMNCivguIHguKHguKXguJfguLTguJ7guKLguYwg4Lia4Lix4Lin4Lir4Li04Lij4Lix4LiNDQor4LiB4Lih4Lil4LiX4Li04Lie4Lii4LmMIOC4reC4oOC4tOC4meC4seC4meC4l+C5jOC4quC4tOC4o+C4tA0KK+C4geC4oeC4peC4nuC4oyDguKrguLLguYLguKPguKfguLLguJcNCivguIHguKHguKXguKHguLLguKgg4LiI4Li04Lin4Liw4LiY4LiZ4Liw4Lie4LijDQor4LiB4Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC5gOC4lOC4iuC4sOC4m+C4tOC4ouC4p+C4h+C4qOC5jA0KK+C4geC4oeC4peC4o+C4seC4leC4meC5jCDguYDguKXguLTguKjguYDguKXguLLguKvguYzguIHguLjguKUNCivguIHguKHguKXguKfguKPguKPguJMg4LiH4Liy4Lih4Lil4Liw4Lih4LmJ4Liy4LiiDQor4LiB4Lih4Lil4Lin4Lij4Lij4LiTIOC4muC4uOC4jeC5gOC4quC4o+C4tOC4oQ0KK+C4geC4oeC4peC4p+C4o+C4o+C4kyDguKrguKPguLLguJnguLjguIHguLnguKUNCivguIHguKHguKXguKjguLHguIHguJTguLTguYwg4LiH4Liy4Lih4Lia4Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4LiB4Lih4Lil4LiyIOC4oeC5guC4meC4nuC4seC4kuC4meC4sA0KK+C4geC4oyDguIHguKPguLTguJnguKPguLHguIHguKnguYwNCivguIHguKPguIHguI4g4LiI4LiH4LmA4LiI4Lij4Li04LiNDQor4LiB4Lij4LiB4LiZ4LiBIOC4p+C4h+C4qOC5jOC4nuC4seC4meC4mOC4uOC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4geC4o+C4geC4o+C4tOC4iiDguIHguLjguKrguLjguKHguLLguKHguLLguKXguKLguYwNCivguIHguKPguIrguLjguKXguLUg4LiB4Li04LiV4LiV4Li04LmA4Liq4Lij4Li14LiK4Lix4LiiDQor4LiB4Lij4LiX4Lit4LiHIOC4qOC4o+C4teC4quC4uOC5guC4gg0KK+C4geC4o+C4oeC5g+C4miDguKrguLjguKPguLTguYLguKINCivguIHguKPguKPguJPguLTguIHguLIg4LiB4LiZ4LiB4Lin4Lix4LiS4LiZ4Liy4Lin4Lij4Lij4LiTDQor4LiB4Lij4Lij4LiT4Li04LiB4LiyIOC4iOC4uOC4peC4reC4ouC4ueC5iA0KK+C4geC4o+C4o+C4k+C4tOC4geC4siDguYHguJXguYnguYDguIjguKPguLTguI0NCivguIHguKPguKPguJPguLTguIHguLIg4Lic4Liy4LiT4Li04LiV4Lie4LiH4Lio4LmMDQor4LiB4Lij4Lij4LiT4Li04LiB4LiyIOC4peC4tOC5ieC4oeC4quC4geC4uOC4pQ0KK+C4geC4o+C4o+C4k+C4tOC4geC4siDguKrguLLguKPguJ7guLLguJnguLTguIoNCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4LiB4LiZ4LiB4Lin4Lij4Lij4LiT4LiI4Liz4Lij4Lix4LiqDQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC4iOC4suC4o+C4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguYHguIvguYjguYDguJXguLXguKLguKcNCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4LiZ4LiE4Lij4Lio4Lij4Li1DQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC5hOC4nOC4l+C4ieC4seC4meC4l+C5jA0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguKHguLXguKrguLjguIINCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4Lin4Lix4LiK4Lij4Liw4LiE4Li44LmJ4Lih4LiE4Lij4Lit4LiHDQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC4quC4suC4l+C4o+C4geC4tOC4iA0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguK3guLHguIfguKrguJbguLTguJXguKLguYzguK3guJnguLHguJnguJXguYwNCivguIHguKPguKPguKHguKrguLTguJfguJjguLTguYwg4LmA4LiX4Lie4Liq4Li44LiX4LiY4Li04LmMDQor4LiB4Lij4Lin4Li04LiB4LiyIOC4quC4t+C4muC4p+C4h+C4qOC5jOC4hOC4peC5ieC4suC4og0KK+C4geC4o+C4q+C4l+C4seC4oiDguIjguLTguJXguKTguJfguLHguKINCivguIHguKPguK3guIfguIHguLLguI3guIjguJnguYwg4Lit4Lix4LiI4LiJ4Lij4Li04Lii4Lin4LiH4Lio4LmMDQor4LiB4Lij4Lit4LiH4LiX4Lit4LiHIOC4meC4suC4luC4nuC4tOC4o+C4tOC4ouC4o+C4seC4leC4meC5jA0KK+C4geC4o+C4reC4h+C4l+C4tOC4nuC4ouC5jCDguJvguKPguLDguIjguLHguJnguJXguLDguYDguKrguJkNCivguIHguKPguK3guIfguYHguIHguYnguKcg4LmB4LiL4LmI4LmB4LiV4LmJDQor4LiB4Lij4Lit4LiH4LmB4LiB4LmJ4LinIOC4q+C4tOC4o+C4seC4jQ0KK+C4geC4o+C4sOC4iOC5iOC4suC4hyDguYDguKXguLTguKjguYDguIHguLXguKLguKPguJXguLTguJTguLPguKPguIfguITguYwNCivguIHguKPguLDguKrguLHguJkg4LmA4Liq4Lij4Li04Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiB4Lij4Liw4LmB4Liq4Lij4LmMIOC4l+C5ieC4p+C4oeC4iOC4seC5iOC4mQ0KK+C4geC4o+C4suC4meC4leC5jOC4m+C4o+C4sOC4oOC4siDguJvguKPguLDguKrguLTguJfguJjguLTguYzguKfguKPguLLguIHguLjguKUNCivguIHguKPguLTguIrguIjguLjguJHguLIg4Lio4Lij4Li14Liq4LiB4Li44LilDQor4LiB4Lij4Li04Liq4LiZ4LmMIOC4meC4p+C4oeC4l+C4reC4hw0KK+C4geC4o+C4teC4keC4suC4nuC4oyDguKfguIfguKjguYzguKPguK3guJQNCivguIHguKPguLjguJPguLIg4LiC4Lix4LiZ4LiX4Lit4LiHDQor4LiB4Lij4Li44LiT4LiyIOC4nuC4tOC5gOC4iuC4kOC4quC4seC4l+C4mOC4sg0KK+C4geC4o+C4ueC4lOC4teC4myDguIvguLTguIfguKvguYwNCivguIHguKTguIog4Lib4Li44LiT4LiT4LiB4Lix4LiZ4LiV4LmMDQor4LiB4Lik4LiK4Lib4LiT4LiVIOC4meC4tOC4mOC4tOC4meC5guC4o+C4lOC4oQ0KK+C4geC4pOC4lOC4siDguIHguLTguJXguLTguKfguLTguKDguLLguJUNCivguIHguKTguJXguJ7guKMg4LiB4Liy4LiN4LiI4LiZ4LiB4Liy4Lij4Li44LiT4Lin4LiH4Lio4LmMDQor4LiB4Lik4LiV4Lii4LiyIOC4nuC4uOC4kuC4tOC5gOC4meC4suC4p+C4o+C4seC4leC4meC5jA0KK+C4geC4pOC4leC4p+C4tOC4l+C4ouC5jCDguKrguLTguIfguKvguYzguKrguLjguIINCivguIHguKTguJXguLTguIHguLIg4Lio4Li44LiB4Lij4LiB4Liz4LmA4Lir4LiZ4Li04LiUDQor4LiB4Lik4LiV4Li04Lii4LiyIOC4mOC4meC4suC5gOC4qOC4o+C4qeC4kOC5jOC4geC4uOC4pQ0KK+C4geC4pOC4qSDguKrguLjguJnguJfguKPguLLguKPguIrguLjguJkNCivguIHguKTguKnguI7guLIg4LiI4Li04Lij4Liw4Lin4Li04LiK4LiK4LmA4Lil4Li04LioDQor4LiB4Lik4Lip4LiO4LiyIOC4muC4uOC4jeC4o+C4suC4ig0KK+C4geC4pOC4qeC4juC4siDguKfguKPguKPguJPguKrguLLguKPguYDguKHguJjguLINCivguIHguKTguKnguI7guLLguIfguITguYwg4LiW4LiZ4Lit4Lih4Lin4LiH4Lip4LmMDQor4LiB4Lik4Lip4LiP4LmMIOC5hOC4leC4o+C4geC4pOC4qeC4lOC4suC4nuC4ow0KK+C4geC4pOC4qeC4k+C4sCDguITguLjguJPguLLguIHguKMNCivguIHguKTguKnguJPguLAg4Lie4LiH4Lip4LmM4LiY4LiZ4LiwDQor4LiB4Lik4Lip4LiT4LiwIOC4reC4ouC4ueC5iOC4quC4uOC4gg0KK+C4geC4pOC4qeC4k+C4siDguITguKXguLLguYDguKfguIoNCivguIHguKTguKnguJPguLIg4LmA4LiL4LiZ4LiV4LmM4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LiB4Lik4Lip4LiT4LiyIOC4mOC4o+C4o+C4oeC4p+C4uOC4kuC4tA0KK+C4geC4pOC4qeC4k+C4siDguJvguLTguKLguLDguJXguKPguLDguIHguLnguKXguKPguLHguJXguJnguYwNCivguIHguKTguKnguJPguLIg4Lih4LiT4LmA4LiR4Li14Lii4LijDQor4LiB4Lik4Lip4LiT4LiyIOC4qOC4o+C4teC4hOC4sw0KK+C4geC4pOC4qeC4k+C4siDguKrguLjguILguKfguLHguJLguIHguYwNCivguIHguKTguKnguJPguLIg4Lit4Li54LmI4Lir4Li04Lij4Lix4LiNDQor4LiB4Lik4Lip4LiT4LmA4LiU4LinIOC4l+C4o+C4teC4m+C4suC4leC4tQ0KK+C4geC4pOC4qeC4k+C5jCDguJfguK3guIfguYTguJfguKLguKrguLTguJkNCivguIHguKTguKnguJPguYwg4Lin4LiH4Lip4LmM4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiB4Lik4Lip4LiU4LiyIOC4geC4pOC4qeC4k+C4suC4iuC4ueC4p+C4h+C4qOC5jA0KK+C4geC4pOC4qeC4lOC4siDguJfguK3guJnguKrguLnguIfguYDguJnguLTguJkNCivguIHguKTguKnguJTguLIg4LmA4Lil4Li04Lio4LmE4Lie4Lio4Liy4Lil4LiB4Li04LiIDQor4LiB4Lik4Lip4LiU4LiyIOC5gOC4reC4t+C5ieC4reC4m+C4tOC4ouC4sOC4iuC4suC4leC4tA0KK+C4geC4pOC4qeC4p+C4o+C4o+C4kyDguK3guLTguJnguJfguJ7guLLguJnguLTguIoNCivguIHguKXguKLguLjguJfguJjguYwg4Lin4Li44LmI4LiZ4Lia4Liz4Lij4Li44LiHDQor4LiB4Lil4Lit4Lii4LmD4LiIIOC4nuC4uOC5iOC4oeC4nuC4p+C4hw0KK+C4geC4peC5ieC4suC4k+C4o+C4h+C4hOC5jCDguYDguJzguLfguK3guIHguITguLjguYnguKHguIHguKTguKkNCivguIHguKXguLTguYjguJnguILguIjguKMg4Lij4Lix4LiB4Lin4LiH4Lip4LmMDQor4LiB4Lin4LiH4Lia4Li54LmJIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4geC4p+C4siDguYHguIvguYjguYDguJXguYvguIcNCivguIHguKfguLTguJnguJnguLLguJYg4LmA4Lil4Li04Lio4Liq4Li44LiU4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Lin4Li1IOC4l+C4seC4h+C4quC4uOC4muC4uOC4leC4ow0KK+C4geC4p+C4tSDguYDguKXguLLguLDguJ/guK0NCivguIHguKfguLXguIrguLHguKIg4Lir4Lin4Lix4LiH4Lio4Li04Lil4Lib4LiE4Li44LiTDQor4LiB4LmJ4Lin4LiH4LmA4LiL4Li14LiiIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4geC4qeC4oeC4siDguKfguIfguKjguYzguYTguJ7guJHguLnguKPguKLguYzguJvguLTguKLguLANCivguIHguKrguKHguLIg4LmC4Lij4LiI4LiZ4LmM4LmA4Lih4LiY4LiyDQor4LiB4Lit4LiHIOC4p+C5iOC4reC4h+C4nuC4h+C4qOC4suC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4geC4reC4h+C5gOC4q+C4p+C5iOC4hyDguYHguIvguYjguYDguIjguLXguKLguIcNCivguIHguK3guJrguIHguLLguI3guIjguJnguYwg4LiY4Lij4Lij4Lih4Lin4Liy4LiX4Li04LiZDQor4LiB4Lit4Lia4LiB4Li44LilIOC4iOC4seC4meC4l+C4o+C5jOC4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4geC4reC4muC4geC4uOC4pSDguJnguLjguIrguYHguJTguIcNCivguIHguK3guJrguIHguLjguKUg4Lin4Li04Lin4Lix4LiS4LiZ4Liw4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Lit4Lia4LiB4Li54LilIOC4quC4tOC4h+C4hOC4sOC4leC4teC4o+C4sA0KK+C4geC4reC4muC4iuC4seC4oiDguYHguKvguKXguLDguYDguKvguKXguYjguLLguJvguKPguLLguIrguI3guYwNCivguIHguK3guJrguKjguLHguIHguJTguLTguYwg4LiV4Lib4LiZ4Li14Lii4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiB4Lit4Lia4LmA4LiB4Li34LmJ4LitIOC4nuC4uOC4geC4geC4peC4tOC5iOC4mQ0KK+C4geC4reC4muC5geC4geC5ieC4pyDguKjguLTguKPguLTguKfguKPguKPguJMNCivguIHguK3guYDguIvguYfguKEg4LmA4Lih4LmI4LiZ4LiX4Lit4LiHDQor4LiB4LmI4Lit4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4guC4uOC4meC4l+C4reC4hw0KK+C4geC5iOC4reC5guC4iuC4hCDguIjguLHguJnguJfguKfguKPguLLguIfguIHguLnguKMNCivguIHguYnguK3guIfguYDguIHguLXguKLguKPguJXguLQg4LmA4Lif4Li34LmI4Lit4LiH4Lin4Li44LiS4Li04Lij4Liy4LiNDQor4LiB4LmJ4Lit4LiZ4LmB4LiB4LmJ4LinIOC4qOC4o+C4teC4meC4hOC4ow0KK+C4geC4seC4h+C4p+C4suC4pSDguYDguIHguLXguKLguKPguJXguLTguYzguKjguLHguIHguJTguLLguKfguIfguKjguYwNCivguIHguLHguIfguKrguJTguLLguKUg4Lir4Lit4Lih4LiB4Lil4Li04LmI4LiZ4Lij4Liy4LiV4Lij4Li1DQor4LiB4Lix4LiN4LiI4LiZ4Li1IOC4h+C4suC4oeC4nuC4quC4uOC4mOC4suC4lOC4pQ0KK+C4geC4seC4jeC4jeC4mOC4oyDguJ7guIfguKjguYzguJ7guIfguLHguJkNCivguIHguLHguI3guI3guLIg4LmA4LiB4Lip4Liq4Lix4LiH4LiC4LmMDQor4LiB4Lix4LiN4LiN4LiyIOC5g+C4iOC4oeC4seC5iOC4mQ0KK+C4geC4seC4jeC4jeC4siDguJTguLXguJfguLXguYjguKrguLjguJQNCivguIHguLHguI3guI3guLIg4LiZ4Lin4Lil4LmB4LiCDQor4LiB4Lix4LiN4LiN4LiyIOC4nOC4ueC5ieC4geC4pOC4leC4ouC4suC4hOC4suC4oeC4tQ0KK+C4geC4seC4jeC4jeC4siDguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguIHguLHguI3guI3guLIg4Lio4Lij4Li14Lin4Lix4LiS4LiZ4LiwDQor4LiB4Lix4LiN4LiN4LiyIOC4q+C4h+C4quC4geC4uOC4pQ0KK+C4geC4seC4jeC4jeC4suC4oOC4o+C4k+C5jCDguKXguLTguKXguLTguJXguIrguLLguI0NCivguIHguLHguI3guI3guLLguKPguLHguJXguJnguYwg4LmA4Lih4Li34Lit4LiH4LmB4LiB4LmJ4LinDQor4LiB4Lix4LiN4LiX4Li04Lih4LiyIOC4mOC4teC4o+C4oOC4suC4nuC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4geC4seC4k+C4kOC4tOC4geC4siDguJMg4Liq4LiH4LiC4Lil4LiyDQor4LiB4Lix4LiT4LiX4Li04Lih4LiyIOC5gOC4iOC4o+C4tOC4jeC4o+C4seC4leC4meC4p+C4seC4kuC4meC5jA0KK+C4geC4seC4k+C4q+C4siDguKrguLjguKfguKPguKPguJPguIHguLLguYLguKMNCivguIHguLHguJnguJXguKLguLIg4LmA4Lie4Li04LmI4Lih4Lic4LilDQor4LiB4Lix4LiZ4LiX4Li04Lih4LiyIOC4o+C4reC4lOC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4geC4seC4meC4ouC4siDguIjguLXguJnguJ/guLjguYnguIcNCivguIHguLHguJnguKLguLIg4LmC4Lig4LiE4Liy4Liq4LiW4Li04LiV4Lii4LmMDQor4LiB4Lix4LiZ4Lii4LiyIOC5gOC4reC4teC5iOC4ouC4oeC4reC4meC4seC4meC4leC5jOC4p+C4seC4kuC4meC4sA0KK+C4geC4seC4meC4ouC4suC4peC4seC4geC4qeC4k+C5jCDguYDguJXguIrguLDguJ7guIfguKjguYzguKfguKPguIrguLHguKINCivguIHguLHguKHguJvguJnguLLguJcg4Lii4Lit4LmB4Liq4LiH4LiX4Lit4LiHDQor4LiB4Lix4Lih4Lie4LilIOC4leC4seC5ieC4h+C4iOC4tOC4leC4o+C4qOC4o+C4seC4l+C4mOC4sg0KK+C4geC4seC4oeC4nuC4pSDguKrguLTguILguKPguLXguKLguLANCivguIHguLHguKXguJnguLTguIHguLIg4LmA4Lii4Liy4Lin4Lij4Lix4LiB4Lip4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC4geC4suC4o+C4seC4geC4qeC5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4geC4seC4peC4ouC4siDguITguLjguJPguJvguKrguLjguJUNCivguIHguLHguKXguKLguLIg4LiJ4Liy4Lii4LiK4Li54Lie4LiH4Lio4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC5geC4i+C5iOC4reC4tuC5iuC4hw0KK+C4geC4seC4peC4ouC4siDguYDguJbguKPguLDguJvguLHguI3guI3guLINCivguIHguLHguKXguKLguLIg4LiZ4Li44LiK4LiZ4Liy4LiO4LiZ4LiZ4LiX4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC5gOC4nOC5iOC4suC5hOC4l+C4og0KK+C4geC4seC4peC4ouC4siDguYTguJ7guKPguKfguLHguJLguJnguLLguJnguLjguJ7guLHguJnguJjguYwNCivguIHguLHguKXguKLguLIg4Lii4Li04LmI4LiH4LiY4LmA4LiZ4LioDQor4LiB4Lix4Lil4Lii4LiyIOC4peC4tOC5ieC4oeC5guC4ouC4mOC4tOC4mQ0KK+C4geC4seC4peC4ouC4siDguKfguLTguKPguLTguKLguLDguYLguKPguIjguJnguLLguKfguLjguJLguLQNCivguIHguLHguKXguKLguLIg4Liq4Lij4Lij4Lie4LiB4Li04LiI4Lic4LilDQor4LiB4Lix4Lil4Lii4LiyIOC4quC4uOC4o+C4nuC4pOC4geC4qeC5jA0KK+C4geC4seC4peC4ouC4siDguK3guLTguJnguJfguKPguJfguLHguJUNCivguIHguLHguKXguKLguLLguJPguLUg4LiE4Li54Lib4Lij4Liw4Lie4Lix4LiX4LiY4LmM4Lie4LiH4Lio4LmMDQor4LiB4Lix4Lil4Lii4Liy4LiT4Li1IOC4luC4tOC4o+C4sOC4o+C4k+C4o+C4h+C4hOC5jA0KK+C4geC4seC4peC4ouC4suC4k+C4tSDguKPguLjguYjguIfguYDguKXguLTguKgNCivguIHguLHguKXguKLguLLguJPguLUg4Lir4Li04Lij4Lix4LiN4LmA4LiK4Lij4Lip4LiQ4LmMDQor4LiB4Lix4Lil4Lii4Liy4Lij4Lix4LiV4LiZ4LmMIOC4muC4seC4k+C4keC4tOC4leC4oOC4tOC4o+C4oeC4ouC5jA0KK+C4geC4suC4geC4reC4hyDguYHguIvguYjguKvguKLguLXguYgNCivguIHguLLguI3guIjguJnguLAg4LmE4Lih4LmJ4LmB4LiB4LmJ4LinDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4geC4suC4jeC4iOC4meC4sg0KK+C4geC4suC4jeC4iOC4meC4siDguYHguIHguYjguJnguJvguKPguLDguKLguLnguKMNCivguIHguLLguI3guIjguJnguLIg4LiE4Lij4Li44LiR4LmE4LiK4Lii4Lix4LiZ4LiV4LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4iOC4seC4meC4l+C4meC4sOC5guC4quC4leC4luC4tOC5jA0KK+C4geC4suC4jeC4iOC4meC4siDguIjguLXguKPguLDguYHguJ7guJfguKLguYwNCivguIHguLLguI3guIjguJnguLIg4LmA4LiJ4Lil4Li04Lih4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5gOC4iuC4tOC4h+C4iuC4suC4jeC4geC4tOC4iA0KK+C4geC4suC4jeC4iOC4meC4siDguYHguIvguYjguK3guLHguYrguIcNCivguIHguLLguI3guIjguJnguLIg4LmB4LiU4LiH4Lib4Lij4Liw4LmE4LieDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5guC4leC5iuC4sOC4nuC4tOC4geC4uOC4pQ0KK+C4geC4suC4jeC4iOC4meC4siDguYDguJfguJ7guKPguKoNCivguIHguLLguI3guIjguJnguLIg4LiZ4Liy4LiE4Lin4Li04Liq4Lix4LiiDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4muC4uOC4jeC4iuC5iOC4p+C4og0KK+C4geC4suC4jeC4iOC4meC4siDguJvguK3guIfguYDguKrguIfguLXguYjguKLguKENCivguIHguLLguI3guIjguJnguLIg4Lie4LiZ4Lih4Lin4Lij4Lij4LiT4LmA4Lin4LiKDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4nuC4tOC4nuC4seC4kuC4meC4suC4meC4tOC4leC4ouC5jA0KK+C4geC4suC4jeC4iOC4meC4siDguKDguLLguITguITguLkNCivguIHguLLguI3guIjguJnguLIg4LmA4Lih4LiG4LiB4Li44Lil4Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4o+C4suC4leC4o+C4tQ0KK+C4geC4suC4jeC4iOC4meC4siDguYDguKXguLTguKjguKjguLHguIHguJTguLTguYzguKfguLTguKHguLLguJkNCivguIHguLLguI3guIjguJnguLIg4Lin4Lix4LiS4LiZ4Liw4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4qOC4o+C4teC4m+C4o+C4sOC4l+C4teC4m+C4muC4seC4k+C4keC4tOC4lQ0KK+C4geC4suC4jeC4iOC4meC4siDguYDguKjguKfguJXguLLguKHguKPguYwNCivguIHguLLguI3guIjguJnguLIg4Liq4Liy4Lih4Liy4Lij4LiW4LiB4Li04LiIDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4quC4uOC4l+C4mOC4tOC4meC4uOC5iOC4mQ0KK+C4geC4suC4jeC4iOC4meC4siDguYHguKrguIfguKrguLnguIcNCivguIHguLLguI3guIjguJnguLIg4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmM4LiZ4Liy4LiWDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4reC4tOC4meC4l+C4o+C4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4geC4suC4jeC4iOC4meC4suC4oOC4o+C4k+C5jCDguILguKHguLTguYnguJnguYDguITguKPguLfguK0NCivguIHguLLguI3guIjguJnguLUg4Lij4Lix4LiB4Lip4LmM4Liq4LiB4Li44LilDQor4LiB4Liy4LiN4LiI4LiZ4LmMIOC4ouC4ueC5iOC5guC4q+C4h+C4pw0KK+C4geC4suC4meC4lOC4siDguITguJPguLDguKrguLjguIINCivguIHguLLguJnguJTguLIg4LmA4LiU4LmI4LiZ4LmE4LiX4LiiDQor4LiB4Liy4LiZ4LiU4LiyIOC4m+C4suC4meC4iuC4tQ0KK+C4geC4suC4meC4lOC4siDguKPguLjguYjguIfguJvguKPguLDguIHguLLguKLguKPguLHguJXguJnguYwNCivguIHguLLguJnguJTguLIg4Lio4Lix4LiB4LiU4Li04LmM4Liq4Li04LiX4LiY4Li04LmMDQor4LiB4Liy4LiZ4LiU4LiyIOC4reC4seC4oeC4nuC4o+C4p+C4tOC5guC4o+C4iOC4meC5jOC4geC4tOC4iA0KK+C4geC4suC4meC4leC5jCDguYLguIHguKrguLTguJnguJfguKPguIHguLjguKUNCivguIHguLLguJrguJnguKDguLIg4LiZ4Liy4Lih4LmB4LiU4LiHDQor4LiB4Liy4Lij4Liw4LmA4LiB4LiUIOC4geC4uOC4q+C4peC4suC4muC5geC4geC5ieC4pw0KK+C4geC4suC4o+C4teC4oSDguJrguLjguI3guKHguLLguYDguKXguLTguKgNCivguIHguLLguKPguLjguJMg4LiK4Lix4Lii4Lin4LiH4Lio4LmM4LmC4Lij4LiI4LiZ4LmMDQor4LiB4Liy4Lij4Li44LiTIOC4qOC4o+C4teC4quC4lOC5g+C4qg0KK+C4geC4suC4o+C4uOC4k+C4ouC5jCDguYDguKrguKPguLTguKHguKrguIHguLjguKUNCivguIHguLLguKvguKXguIcg4LiU4LmI4Liy4LiZ4Lie4Liy4LiT4Li04LiK4Lii4LmM4LiB4Li44LilDQor4LiB4LmJ4Liy4LiZIOC4meC5iOC4p+C4oeC4quC4s+C4peC4tQ0KK+C4geC4s+C4iOC4oyDguIrguLnguJjguJnguLLguIHguKPguJPguYzguIHguLjguKUNCivguIHguLPguIjguKMg4Lit4LiZ4Lix4LiN4LiN4Liy4LmA4LiC4LiVDQor4LiB4Liz4LiI4Lix4LiUIOC4pOC4l+C4mOC4tOC5jOC4lOC4tQ0KK+C4geC4s+C4iuC4seC4oiDguKXguLLguKfguLHguJPguKLguKfguLjguJLguLQNCivguIHguLPguJjguKMg4LiI4Liy4Lij4Li44Liq4Li44Lin4Lij4Lij4LiT4Lig4Li54Lih4Li0DQor4LiB4Liz4LiY4LijIOC4leC4seC4meC4mOC4teC4o+C4sOC4mOC4o+C4o+C4oQ0KK+C4geC4s+C4mOC4oyDguJ7guKPguJfguKfguLXguYLguKDguITguJfguKPguLHguJ7guKLguYwNCivguIHguLPguJjguKMg4LmE4Lin4LiX4Lii4Liw4Lie4Liy4LiZ4Li04LiKDQor4LiB4Liz4LiY4LijIOC4reC4tOC4meC4l+C4o+C5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4geC4s+C4nuC4pSDguYDguILguYfguKHguJfguK3guIcNCivguIHguLPguJ7guKUg4LmC4LiK4LiE4Liq4Li44LiZ4LiX4Liq4Li44LiX4LiY4Li04LmMDQor4LiB4Liz4Lie4LilIOC4muC4ueC4o+C4nuC4suC4iuC4teC4ng0KK+C4geC4s+C4nuC4pSDguKPguLHguJXguJnguKfguLTguKPguLTguKLguLANCivguIHguLPguJ7guKUg4Lio4Lix4LiB4LiU4Li04LmM4Lie4Li04LiK4Lix4Lii4Liq4LiB4Li44LilDQor4LiB4Liz4Lie4LilIOC4reC4lOC4uOC4peC4p+C4tOC4l+C4ouC5jA0KK+C4geC4s+C5gOC4meC4tOC4lCDguYDguJfguLXguKLguJnguYDguJnguLXguKLguKENCivguIHguLPguYTguKMg4LiJ4Li04Lih4LiU4Lit4LiZ4LiX4Lit4LiHDQor4LiB4Li04LmI4LiHIOC4geC4quC4tOC4oOC4suC4o+C5jA0KK+C4geC4tOC5iOC4h+C4geC4suC4jeC4iOC4meC5jCDguJjguJnguITguLjguYnguKHguIrguLXguJ4NCivguIHguLTguYjguIfguIHguLLguI3guIjguYwg4Lin4LiH4Lio4LmM4LiB4Li04LiI4LiI4Liy4LmA4Lil4Li04LioDQor4LiB4Li04LmI4LiH4Lie4LijIOC4hOC4h+C5gOC4reC4teC5iOC4ouC4oeC4nuC4tOC4mOC4tQ0KK+C4geC4tOC5iOC4h+C5geC4geC5ieC4pyDguYPguIjguJXguYrguLDguKHguLINCivguIHguLTguYjguIfguYHguIHguYnguKcg4Lii4Lix4LiH4LmA4LiI4Lij4Li04LiNDQor4LiB4Li04LiIIOC4meC4suC4p+C4suC4nuC4meC4oQ0KK+C4geC4tOC4iOC4iOC4siDguYDguIjguKPguLTguI3guJzguKUNCivguIHguLTguIjguIjguLIg4Lie4Li54Lil4Lic4LilDQor4LiB4Li04LiI4LiI4LiyIOC4quC4uOC4guC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4geC4tOC4iOC4leC4tOC4nuC4h+C4qeC5jCDguIrguLnguYTguJfguKINCivguIHguLTguJXguJTguJnguLHguKIg4LiY4Lij4Lih4LiY4Lix4LiKDQor4LiB4Li04LiV4LiV4Li0IOC4geC4tOC4leC4leC4tOC4p+C4o+C4nuC4seC4meC4mOC5jA0KK+C4geC4tOC4leC4leC4tCDguITguIfguIrguLfguYjguJnguKrguLTguJkNCivguIHguLTguJXguJXguLQg4LiI4LmI4Liy4LiH4LiI4Lij4Li54LiN4LmC4Lij4LiI4LiZ4LmMDQor4LiB4Li04LiV4LiV4Li0IOC4iuC4seC4ouC4qOC4tOC4o+C4tOC4nuC4h+C4qOC5jA0KK+C4geC4tOC4leC4leC4tCDguYHguIvguYjguKvguKXguLTguYnguKENCivguIHguLTguJXguJXguLQg4LiV4LmC4Lih4Lir4Lij4LiT4Lin4LiH4Lio4LmMDQor4LiB4Li04LiV4LiV4Li0IOC4mOC4meC4suC4oOC4tOC4meC4seC4meC4l+C5jOC4iuC4seC4og0KK+C4geC4tOC4leC4leC4tCDguJrguLjguI3guKfguLHguJnguJXguYwNCivguIHguLTguJXguJXguLQg4Lie4LiH4Lio4LmM4Lie4Lil4Liy4LiN4LiK4Lix4LiiDQor4LiB4Li04LiV4LiV4Li0IOC5hOC4nuC4muC4ueC4peC4ouC5jOC4ouC4tOC5iOC4hw0KK+C4geC4tOC4leC4leC4tCDguKPguK3guIfguKPguLHguJXguJnguYwNCivguIHguLTguJXguJXguLQg4Lil4Li04LmJ4Lih4LiK4Lix4Lii4LiB4Li04LiIDQor4LiB4Li04LiV4LiV4Li0IOC4p+C4seC4iuC4o+C4sOC4hOC4uOC4m+C4leC5jA0KK+C4geC4tOC4leC4leC4tCDguKjguKPguLXguKrguLjguJfguJjguLTguKPguLHguIHguKnguYwNCivguIHguLTguJXguJXguLQg4Liq4Lix4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Li04LiV4LiV4Li0IOC5gOC4quC4o+C4teC4muC4uOC4leC4ow0KK+C4geC4tOC4leC4leC4tCDguK3guKLguLnguYjguYLguJ7guJjguLTguYwNCivguIHguLTguJXguJXguLQg4LmA4Lit4Li34LmJ4Lit4LiK4Liy4LiN4LmA4Lin4LiKDQor4LiB4Li04LiV4LiV4Li04LiE4Li44LiTIOC5gOC4iOC4t+C4reC4geC4tOC4iOC4geC4s+C4iOC4ow0KK+C4geC4tOC4leC4leC4tOC4iuC4seC4oiDguIrguYjguK3guJfguK3guIfguJTguLUNCivguIHguLTguJXguJXguLTguIrguLHguKIg4Lie4Li04Lij4Li04Lii4Liw4LiB4Li44Lil4LiY4LijDQor4LiB4Li04LiV4LiV4Li04LiK4Lix4LiiIOC4reC4o+C4iuC4ow0KK+C4geC4tOC4leC4leC4tOC4meC4seC4meC4l+C5jCDguKvguKHguLLguKLguKHguLHguYjguJnguKjguKMNCivguIHguLTguJXguJXguLTguJ7guIfguKjguYwg4LiX4Lit4LiH4Liq4Li44LiC4LiyDQor4LiB4Li04LiV4LiV4Li04Lie4LiH4Lip4LmMIOC4geC4tOC4leC4leC4tOC4oOC4seC4quC4quC4ow0KK+C4geC4tOC4leC4leC4tOC4nuC4h+C4qeC5jCDguJfguKPguLHguJ7guKLguYzguKrguLjguIINCivguIHguLTguJXguJXguLTguJ7guIfguKnguYwg4LmA4Lih4Lip4Liw4Lih4Lix4LiVDQor4LiB4Li04LiV4LiV4Li04Lie4LiH4Lip4LmMIOC4q+C4suC4jeC5hOC4l+C4ouC4nOC4peC4lOC4tQ0KK+C4geC4tOC4leC4leC4tOC4nuC4pSDguIjguLHguJnguJfguKPguYzguKLguLTguYnguKENCivguIHguLTguJXguJXguLTguJ7guLHguJnguJjguLjguYwg4LmA4Lil4LmH4LiB4Lib4Lij4Liw4Liq4Lih4Lin4LiH4LiE4LmMDQor4LiB4Li04LiV4LiV4Li04Lih4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC4oeC4peC4oeC4suC4peC4ouC5jA0KK+C4geC4tOC4leC4leC4tOC4oeC4siDguYDguJ7guLTguYjguKHguKrguLjguIINCivguIHguLTguJXguJXguLTguKHguLIg4LmA4Lit4Li34LmJ4Lit4LiB4Li04LiI4LiY4Li04LmC4Lij4Lib4LiB4Lij4LiT4LmMDQor4LiB4Li04LiV4LiV4Li04Lii4LiyIOC4o+C4seC4leC4meC4qOC4o+C4teC4reC4s+C5hOC4nuC4nuC4h+C4qOC5jA0KK+C4geC4tOC4leC4leC4tOC4p+C4o+C4o+C4kyDguIHguLPguJjguKPguYDguIjguKPguLTguI0NCivguIHguLTguJXguJXguLTguKfguLjguJLguLQg4Lio4Lio4Li04Lie4LiH4Lio4LmM4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4geC4tOC4leC4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguJvguKPguLDguK3guLTguJnguJfguKPguYwNCivguIHguLTguJXguJXguLTguKjguLHguIHguJTguLTguYwg4Lin4Lij4LiB4Li04LiI4Lib4Lij4Liw4LiX4Li14LibDQor4LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4reC4oeC4iOC4s+C4m+C4sg0KK+C4geC4tOC4leC4leC4tOC5gOC4lOC4iiDguJjguJnguKPguKPguIbguLLguIHguKMNCivguIHguLTguJXguLQg4LiK4Lin4LiZ4Liw4Lil4Li04LiC4Li04LiB4LijDQor4LiB4Li04LiV4Li04LiB4LijIOC4nuC4meC4tOC4iuC4ouC5jOC4quC4geC4uOC4pQ0KK+C4geC4tOC4leC4tOC4iuC4seC4oiDguKrguLTguJfguJjguLTguYzguJjguKPguKPguKHguKfguLTguYTguKUNCivguIHguLTguJXguLTguJ7guIfguKnguYwg4LiV4Lix4LiZ4LiV4Li04Lin4LiT4Li04LiK4Lii4LmMDQor4LiB4Li04LiV4Li04Lie4Lix4LiS4LiZ4LmMIOC4m+C4p+C4teC4k+C4p+C4tOC4l+C4ouC5guC4iuC4leC4tA0KK+C4geC4tOC4leC4tOC4oeC4siDguJ7guLjguJLguIjguLHguJnguJfguKPguYwNCivguIHguLTguJXguLTguKLguLIg4LiZ4LiB4LiX4Lit4LiHDQor4LiB4Li04LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5geC4geC4peC5ieC4p+C4geC4quC4tOC4p+C4tOC4l+C4ouC5jA0KK+C4geC4tOC4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguYDguKXguLTguKjguKfguIfguKjguYzguKfguLXguKPguIrguLHguKINCivguIHguLTguJnguKPguLUg4LiU4Liz4LiX4Lit4LiH4Liq4Li44LiCDQor4LiB4Li04Lih4LiB4Li1IOC5geC4i+C5iOC4q+C4o+C4t+C4rQ0KK+C4geC4tOC4oeC4iOC4seC5iuC4pyDguYHguIvguYjguYLguJvguYjguKcNCivguIHguLTguKHguIvguYnguIcg4LmB4LiL4LmI4Lil4Li14LmJDQor4LiB4Li04Lih4Lib4LmK4LitIOC5gOC4peC4tOC4qOC4geC4p+C4teC4p+C4h+C4qOC5jA0KK+C4geC4tOC4oeC4peC4seC5ieC4hyDguIHguLTguIjguYDguIjguKPguLTguI3guIrguLHguKINCivguIHguLTguKHguKXguLjguYnguKIg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiB4Li04Lih4Lir4Lii4Li44LiZIOC5geC4i+C5iOC4iOC4hw0KK+C4geC4tOC4oeC4ruC4p+C4lCDguYDguIjguKPguLTguI3guKPguLHguIfguKrguKPguKPguITguYwNCivguIHguLTguKHguK7guLHguYnguKcg4LmB4LiL4LmI4Lil4Li14LmJDQor4LiB4Li04Lih4LmA4LiK4LmH4LiHIOC5geC4i+C5iOC5hOC4q+C4pQ0KK+C4geC4tOC4oeC5gOC4leC4teC4ouC4hyDguYHguIvguYjguYDguK7guYnguIcNCivguIHguLTguKHguYDguKXguLXguYnguKLguIcg4Lia4Li44LiN4Lii4LiH4LiE4LmMDQor4LiB4Li04Lih4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4q+C4peC4tOC4oQ0KK+C4geC4tOC4oeC5gOC4ruC4teC4ouC4hyDguYHguIvguYjguYTguKvguKUNCivguIHguLTguKHguYTguIjguYog4LmB4LiL4LmI4Lit4Li24LmK4LiHDQor4LiB4Li04LmJ4Lih4LiB4Li44LmJ4LiHIOC5geC4i+C5iOC4m+C4tuC5ieC4hw0KK+C4geC4tOC4o+C4kyDguIjguLLguKPguLjguIjguLTguJnguJTguLINCivguIHguLUg4LiI4Li14LmJ4LmA4LiL4LmJ4LiHDQor4LiB4Li14Lij4LiT4LiyIOC4l+C4seC4meC4leC4sOC5gOC4p+C4ig0KK+C4geC4teC4o+C4muC4uOC4leC4oyDguIHguLTguJXguLTguKLguLLguJTguLTguKjguLHguKINCivguIHguLjguIcg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LiB4Li44LiT4LiR4LilIOC4nuC4uOC4geC4geC4o+C4oeC4suC4meC4meC4l+C5jA0KK+C4geC4uOC4meC4l+C4tSDguYTguJ7guIjguLTguJXguKPguJvguKPguLDguKDguLLguKDguKPguJPguYwNCivguIHguLjguKLguYDguIHguLXguKLguIcg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4LiB4Li44LmI4Lii4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4geC4uOC4o+C5jOC4iOC4o+C4seC4meC4iuC4tOC4h+C4q+C5jCDguYLguITguKPguLLguJnguLINCivguIHguLjguKXguIrguKMg4LmB4Lii4LmJ4Lih4Lic4Lit4LiaDQor4LiB4Li44Lil4LiN4LiyIOC4oeC4seC4jeC4iuC4uOC4p+C4suC4l+C4tOC4meC4tQ0KK+C4geC4uOC4peC4mOC4oyDguJnguLLguKPguLnguKXguLINCivguIHguLjguKXguJjguLTguJTguLIg4Lit4Li44LiV4LiV4LmC4LiZDQor4LiB4Li44Lil4Lib4Lij4Liy4LiT4Li1IOC4hOC4h+C4nuC4peC4seC4hw0KK+C4geC4uOC4peC4oeC4tOC4leC4geC4reC4o+C5jCDguIjguLLguKfguLLguKXguLINCivguIHguLjguKXguKPguLHguJXguJnguYwg4Liq4Li04LmI4LiH4Lii4Lix4LiHDQor4LiB4Li44Lil4Lin4LiU4Li1IOC4mOC4teC4o+C4quC4uOC4meC4l+C4o+C4p+C4seC4kuC4meC5jA0KK+C4geC4uOC4peC4p+C4peC4tSDguJXguKPguLDguIHguLnguKXguKrguLHguJnguJXguLTguIrguLHguKINCivguIHguLjguKXguYDguJfguJ4g4LiZ4Liy4LiE4Liw4Lit4Lig4Li0DQor4LiB4Li44Lio4LilIOC4muC4uOC4jeC5gOC4quC4oeC4rQ0KK+C4geC4uOC4qOC4peC4qOC4o+C4tSDguKjguLHguIHguJTguLTguYzguYDguKHguLfguK3guIcNCivguIHguLjguKrguLjguKHguLIg4LmA4LiX4Li14Lii4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Li44Liq4Li44Lih4LiyIOC5gOC4quC4t+C4reC5gOC4meC4teC4ouC4oQ0KK+C4geC4uOC4q+C4peC4suC4miDguITguLjguJPguKrguLLguKHguLLguKPguJYNCivguIHguLjguKvguKXguLLguJog4LiX4Lij4Lix4Lie4Lii4LmM4LmA4LiB4Lip4LiV4LijDQor4LiB4Li44Lir4Lil4Liy4LiaIOC4nuC4uOC4geC4geC4sOC4k+C4sOC4quC4uOC4lQ0KK+C4geC4uOC4q+C4peC4suC4miDguKfguLTguKrguLjguJfguJjguLTguK3guLjguJfguLHguKLguIHguLjguKUNCivguIHguLjguKvguKXguLLguJog4Lit4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMDQor4LiB4Li54LmJ4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4iuC4seC4ouC4geC4o+C5guC4geC4qOC4pQ0KK+C5gOC4geC4iuC4siDguYLguJXguYrguLDguKrguKHguLHguJkNCivguYDguIHguJXguLgg4Lik4LiX4LiY4Li04LmM4LiU4Li1DQor4LmA4LiB4LiZ4LiL4Li04LiH4Lir4LmMIOC5gOC4geC4meC4i+C4tOC4h+C4q+C5jA0KK+C5gOC4geC4o+C4tOC4gSDguYDguKHguJnguLHguIoNCivguYDguIHguKPguLTguIHguK3guLTguJfguJjguLTguYwg4LmA4LiB4Lip4Lih4Liq4Lix4LiZ4LiV4LmMDQor4LmA4LiB4Lij4Li14Lii4LiHIOC5gOC4ouC4suC4p+C4meC4p+C4tOC4oeC4pQ0KK+C5gOC4geC4o+C4teC4ouC4h+C4iuC4seC4oiDguKPguLHguJXguJnguYTguJ7guKfguIfguKjguYwNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LiB4LmJ4Lit4LiH4LmE4LiV4Lij4Lig4LieDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4huC4qeC4tOC4leC4geC4uOC4peC4nuC4ow0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguIrguKfguKXguLTguILguLTguJUNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LiV4Lij4Li14LiX4Li04Lie4Lii4Lij4Lix4LiB4Lip4LmMDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4o+C4lOC4tQ0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguJ7guIfguKjguYzguYDguJ7guYfguIrguKMNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LmA4Lif4Li34LmI4Lit4LiH4Lif4Li54Lie4LiH4Lio4LmMDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4pOC4geC4qeC5jOC4reC4s+C4meC4p+C4ouC5guC4iuC4hA0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguKfguLTguIrguIrguLjguKfguLHguJLguJnguLLguIHguKMNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4Liq4Lih4LiB4Li04LiI4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4quC4meC5g+C4q+C4oeC5iA0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguK3guLjguJTguKHguKHguLTguJXguKPguKPguLHguIENCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4LiB4Li04LiV4LiV4Li04LiK4Lix4Lii4LmA4LiU4LiKDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4iOC4tOC4o+C4quC4tOC4o+C4tOC5guC4o+C4iOC4meC4suC4geC4ow0KK+C5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4oyDguJTguYjguLLguJnguJjguJnguLDguIrguLHguKINCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4LiZ4Liy4LiE4LiX4Lit4LiHDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4nuC4tOC4k+C4l+C4reC4hw0KK+C5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4oyDguKXguLLguKDguKrguLTguKPguLTguKrguKfguLHguKrguJTguLTguYwNCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4Lio4Li04Lij4Liy4Lih4Lie4Li44LiYDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4q+C4h+C4quC5hOC4geC4ow0KK+C5gOC4geC4peC4teC4ouC4p+C4lOC4tSDguJXguLHguJnguKrguLjguKfguKPguKPguJPguJTguLUNCivguYDguIHguKfguKXguLUg4Lie4Lil4LiK4Lix4LiiDQor4LmA4LiB4Lio4LiX4Li04Lie4Lii4LmMIOC4nuC4uOC4l+C4mOC4nuC4h+C4qeC5jA0KK+C5gOC4geC4qOC4o+C4siDguYHguIvguYjguYDguK7guYnguIcNCivguYDguIHguKjguKPguLLguKDguKPguJPguYwg4Lie4Lil4Li14LmA4LiB4LiV4Li4DQor4LmA4LiB4Lio4Lij4Li04LiZ4LiX4Lij4LmMIOC4q+C4peC4teC4l+C4seC4mg0KK+C5gOC4geC4qOC4quC4uOC4meC4teC4ouC5jCDguKfguLTguKfguLHguJLguJnguLLguKDguLTguKPguLHguIHguKnguYwNCivguYDguIHguKjguLTguJnguLUg4LiK4Lin4Lil4Li1DQor4LmA4LiB4Lio4Li04LiZ4Li1IOC4oeC4meC4l+C4tOC4o+C4suC4peC4seC4og0KK+C5gOC4geC4qOC4teC4k+C4tSDguKXguLfguK3guIHguLjguKXguKfguLHguJLguJnguIrguLHguKINCivguYDguIHguKnguJPguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LmA4LiB4Lip4LiV4LijIOC4quC4uOC4p+C4o+C4o+C4k+C4mOC4o+C4o+C4oeC4sg0KK+C5gOC4geC4qeC4oSDguIHguLTguJXguJXguLTguYLguKrguKDguJPguIHguLTguIgNCivguYDguIHguKnguKEg4LiE4Liz4Lie4Lii4Lix4LiE4LiG4LmMDQor4LmA4LiB4Lip4LihIOC4iOC4s+C4meC4h+C4hOC5jOC5hOC4pw0KK+C5gOC4geC4qeC4oSDguIrguYjguKfguIfguYLguIrguJXguLQNCivguYDguIHguKnguKEg4LmB4LiL4LmI4LiL4Li34LmJ4LitDQor4LmA4LiB4Lip4LihIOC4leC4uOC5ieC4oeC4l+C4reC4hw0KK+C5gOC4geC4qeC4oSDguJjguLXguKPguJfguLXguIbguLLguJnguLjguKfguIfguKjguYwNCivguYDguIHguKnguKEg4Lia4Li44LiN4Lih4Liy4Lii4Liw4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmA4LiB4Lip4LihIOC4m+C4tuC4h+C4iuC4p+C4peC4tOC4leC5guC4quC4oOC4tQ0KK+C5gOC4geC4qeC4oSDguJ7guLTguJ7guLHguJLguJnguYzguJvguKPguLDguJfguLLguJnguJ7guKMNCivguYDguIHguKnguKEg4Lih4Lix4LmI4LiZ4LiW4Liy4Lin4LijDQor4LmA4LiB4Lip4LihIOC4o+C4seC4leC4meC4suC4mOC4o+C4o+C4oeC4p+C4seC4kuC4meC5jA0KK+C5gOC4geC4qeC4oSDguYDguKXguLXguYjguKLguIfguKfguLTguIrguIrguLjguJ7guLHguJnguJjguYwNCivguYDguIHguKnguKEg4LmA4Lin4LiK4Lij4Lix4LiV4LiZ4LmM4Lie4Li04Lih4LilDQor4LmA4LiB4Lip4LihIOC4quC4oeC4tOC4l+C4mOC4tOC5gOC4meC4leC4ouC5jA0KK+C5gOC4geC4qeC4oSDguKrguLjguJTguKfguLTguKrguLHguKINCivguYDguIHguKnguKEg4Lir4Lin4Lix4LiH4LiI4Li04LiV4LiV4LmM4LmA4LiK4Li14Lii4LijDQor4LmA4LiB4Lip4LihIOC4reC4tOC4meC4l+C4o+C4quC4geC4uOC4pQ0KK+C5gOC4geC4qeC4oeC4qOC4o+C4tSDguIrguLXguKfguLDguYDguIHguJXguLgNCivguYDguIHguKnguKHguKjguLHguIHguJTguLTguYwg4Lib4Lix4LiN4LiN4Liy4Lik4LiX4LiY4Li04LmMDQor4LmA4LiB4Lip4Lih4Liq4Lix4LiZ4LiV4LmMIOC4quC4meC4mOC4tOC4quC4luC4suC4nuC4ow0KK+C5gOC4geC4qeC4oyDguIHguLjguKXguYDguKXguLTguKjguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguIHguKnguKMg4LiK4Li14Lin4Lib4Lij4Li14LiK4LiyDQor4LmA4LiB4Lip4LijIOC4meC4s+C4nuC4seC4gQ0KK+C5gOC4geC4qeC4oyDguYDguJ7guLTguYjguKHguJfguKPguLHguJ7guKLguYwNCivguYDguIHguKnguKMg4Lin4Lix4LiS4LiZ4Liy4Lil4Lix4LiiDQor4LmA4LiB4Lip4LijIOC5guC4quC4o+C4seC4leC4meC5jA0KK+C5gOC4geC4qeC4o+C4siDguJ7guKfguIfguKrguKfguLHguKrguJTguLTguYwNCivguYDguIHguKnguKPguLTguJnguJfguKPguYwg4Liq4Lih4Lin4LiH4Lio4LmMDQor4LmA4LiB4Lip4Liq4Li44LiZ4Li14Lii4LmMIOC4oeC4suC4oeC4teC4iuC4seC4og0KK+C5gOC4geC4qeC5geC4geC5ieC4pyDguYDguIjguKPguLTguI3guKrguLjguIINCivguYDguIHguKrguKPguLUg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Liz4LiI4LijDQor4LmA4LiB4Liy4Lij4Lix4LiB4Lip4LmMIOC4quC4uOC4hOC4meC4mOC5jOC5gOC4peC4tOC4qOC4quC4oeC4ow0KK+C5gOC4geC4teC4ouC4hyDguYDguKXguLTguKjguJ7guKXguLLguIrguLHguKINCivguYDguIHguLXguKLguKPguJXguLQg4LiB4Lix4LiH4Lin4Liy4LiZ4LmA4Lin4LiK4LiB4Li44LilDQor4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4lOC4teC4guC4iOC4ow0KK+C5gOC4geC4teC4ouC4o+C4leC4tCDguKHguKvguYDguIHguLXguKLguKPguJXguLTguYTguJ7guKjguLLguKUNCivguYDguIHguLXguKLguKPguJXguLQg4Lir4LiH4Lip4LmM4Lin4Li04Lio4Li04Lip4LiQ4LiB4Li44LilDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiE4Li44LiTIOC4l+C4seC4geC4qeC4tOC4k+C4meC4uOC4geC4uOC4peC4p+C4h+C4qOC5jA0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4iuC4seC4oiDguYLguJXguK3guKPguLjguKfguIfguKjguYwNCivguYDguIHguLXguKLguKPguJXguLTguIrguLHguKIg4LmA4Lin4Lio4LiZ4LmM4Lih4Lix4LiG4Lin4Liy4LiZDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiT4Lij4LiH4LiE4LmMIOC4o+C4seC4leC4meC4m+C4o+C4teC4iuC4suC5gOC4p+C4ig0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4nuC4oyDguIjguLLguKPguLjguJjguKPguKPguKENCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwg4LiB4Li04LiI4LiB4LmJ4Lit4LiH4LiC4LiI4Lij4LiK4Lix4LiiDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4ieC4seC4leC4o+C4p+C4tOC4l+C4ouC4suC4l+C4o+C4seC4nuC4ouC5jA0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guYDguKPguLfguK3guIcNCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwg4LmA4Lij4Li34Lit4LiZ4LiZ4Liy4LiEDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4quC4suC4quC4suC4og0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC5jCDguIHguLHguJPguKfguYDguKjguKPguKnguJANCivguYDguIHguLXguKLguKcg4Lie4Lix4Lin4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LmA4LiB4Li14LmJ4Lii4LiH4LiL4Lin4LiHIOC5geC4i+C5iOC4h+C4uOC5iOC4og0KK+C5gOC4geC4t+C5ieC4reC4geC4ueC4pSDguIHguK3guIfguKfguLTguYDguKjguKkNCivguYDguIHguLfguYnguK3guIHguLnguKUg4Lin4LiH4Lio4LmM4LiX4Lio4Lie4LijDQor4LmA4LiB4LmH4LiBIOC5geC4i+C5iOC4reC4tOC4oQ0KK+C5gOC4geC5iOC4h+C4geC4suC4iCDguJvguLHguIHguIHguLLguYDguJUNCivguYDguIHguYsg4Liq4Li44Lin4Lij4Lij4LiT4Lin4Lix4LiS4LiZ4LmMDQor4LmB4LiB4LmI4LiZIOC4l+C4seC5iOC4h+C4quC4luC4tOC4leC4ouC5jA0KK+C5geC4geC5ieC4pyDguIjguLTguKPguJrguKfguKPguKfguLTguKrguLjguJfguJjguLTguYwNCivguYHguIHguYnguKcg4LiW4Liy4Lin4Lij4LiZ4Lix4LiZ4LiX4LmMDQor4LmB4LiB4LmJ4LinIOC4ouC4suC4meC5ieC4reC4og0KK+C5geC4geC5ieC4pyDguYTguKrguKLguIjguLTguJXguKPguYwNCivguYHguIHguYnguKfguIjguLTguJnguJTguLIg4LiX4Lit4LiH4LmB4LiB4LmJ4LinDQor4LmB4LiB4LmJ4Lin4LiV4LiyIOC4qOC4pOC4h+C4hOC4suC4o+C5gOC4iOC4qeC4juC4sg0KK+C5geC4geC5ieC4p+C4oeC4k+C4tSDguKjguKPguLXguKfguLDguKPguKHguKLguYwNCivguYHguIHguYnguKfguYPguIgg4LmE4Lin4Lio4Lii4Liy4LiH4LiB4Li54LijDQor4LmC4LiB4Lih4LilIOC5guC4geC4oeC4uOC4l+C4mOC4meC4iuC4suC4leC4tA0KK+C5guC4geC4oeC4pSDguJvguLHguJXguJXguLLguJnguLjguKrguKPguJPguYwNCivguYLguIHguKHguKUg4Lio4Li04Lij4Li04Lie4LijDQor4LmC4LiB4Lih4Li04LiZ4LiX4Lij4LmMIOC4keC4teC4huC4mOC4meC4suC4meC4meC4l+C5jA0KK+C5guC4geC4peC4tOC4leC4siDguKHguLXguKXguLLguKANCivguYLguIHguKfguLTguJcg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LmC4LiB4Lin4Li04LiXIOC4nuC4seC4meC4mOC4uOC5jOC5geC4ouC5ieC4oeC4oeC4suC4peC4tQ0KK+C5guC4geC4p+C4tOC4lyDguKfguLLguJXguLANCivguYLguIHguKfguLTguJcg4Lit4Li44LiX4Lix4Lii4LiJ4Liy4LiiDQor4LmC4LiB4Lin4Li04LiX4Lii4LmMIOC4l+C4o+C4seC4nuC4ouC5jOC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C5guC4geC4p+C4tOC4l+C4ouC5jCDguKfguIfguKjguYzguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguYLguIHguKjguKUg4LiB4Lik4Lip4LiT4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LmC4LiB4Lio4LilIOC5g+C4iOC4p+C4tOC4iOC4tOC4leC4ow0KK+C5guC4geC4qOC4pSDguJjguLXguKPguJ7guLTguJfguKLguLLguJjguKMNCivguYLguIHguKjguKUg4LmA4Lie4LmH4LiK4Lij4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4LmC4LiB4Lio4LilIOC4p+C4seC4kuC4meC4suC4oeC4suC4meC4meC4l+C5jA0KK+C5guC4geC4qOC4pSDguYDguKvguKXguYjguLLguKjguLTguKPguLTguKPguLHguJXguJnguYwNCivguYLguIHguKrguLTguJfguJjguLTguYwg4LiJ4Lix4LiZ4LiX4Liy4LiI4Liy4Lij4Li44Lin4LiH4Lio4LmMDQor4LmC4LiB4Liq4Li04LiZ4LiX4Lij4LmMIOC4p+C4seC4peC4peC4tOC5guC4oOC4lOC4oQ0KK+C5guC4geC4quC4uOC4oSDguYHguKHguJnguJzguJTguLjguIcNCivguYLguIHguKrguLjguKHguKDguYwg4Lit4Lig4Li04Lin4Lix4LiZ4LiX4LiZ4Lix4LiZ4LiX4LmMDQor4LmC4LiB4LmA4Lih4LioIOC5guC4geC4oeC4uOC4l+C5gOC4geC4t+C5ieC4reC4geC4ueC4pQ0KK+C5g+C4geC4peC5ieC4o+C4uOC5iOC4hyDguYHguJ7guJfguKLguYzguJvguKPguLDguYDguKrguKPguLTguJANCivguYTguIHguKPguJTguLIg4LiU4Lin4LiH4Lib4Lij4Liw4LiK4LiyDQor4LmE4LiB4Lij4Lik4LiB4Lip4LmMIOC4kyDguKXguLPguJvguLLguIcNCivguYTguIHguKPguKfguLHguKXguKLguYwg4Lin4Li04Lij4Li04Lii4Liw4Lin4Li04LiX4Lii4LmMDQor4LmE4LiB4Lij4Lio4LijIOC4m+C4o+C4suC4o+C4luC4meC4suC4lOC4tQ0KK+C5hOC4geC4o+C4qOC4seC4geC4lOC4tOC5jCDguKvguLjguYjguJnguKfguLTguIjguLTguJXguKMNCivguYTguIHguKPguKrguKMg4Lin4LiH4Lio4LmM4LiZ4Lig4Liy4LiB4Liy4LiN4LiI4LiZ4LmMDQor4LmE4LiB4Lij4Liq4Li14Lir4LmMIOC4hOC4peC5ieC4suC4ouC4oeC4k+C4tQ0KK+C5hOC4geC4p+C4seC4pSDguIjguLLguJXguJnguLTguKXguJ7guLHguJnguJjguLjguYwNCivguILguIjguKMg4LiK4LmJ4Lit4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiC4LiI4LijIOC4nuC4tOC4oeC4nuC4tOC4iuC4seC4og0KK+C4guC4iOC4oyDguKrguLjguJnguJfguYLguKPguJTguKENCivguILguIjguKPguJ7guKUg4LmB4Liq4LiZ4Liq4Li44LiU4Liq4Lin4Liy4LiXDQor4LiC4LiI4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4iOC5ieC4suC4geC4o+C4oeC4l+C4reC4hw0KK+C4guC4iOC4o+C4qOC4seC4geC4lOC4tOC5jCDguYLguJ7guJjguLTguJnguLLguKHguJfguK3guIcNCivguILguIjguKPguKjguLHguIHguJTguLTguYwg4LmA4Lir4Lil4LmI4Liy4Lie4LiH4Lip4LmM4Lio4LijDQor4LiC4LiI4Lij4LmA4LiU4LiKIOC4nuC4h+C4qeC5jOC4quC4meC4suC4oQ0KK+C4guC4iOC4tOC4leC4nuC4o+C4o+C4kyDguITguIrguJ7guLHguJnguJjguLjguYwNCivguILguIrguKUg4Lin4Lij4LiX4Li14Lib4Liy4LiZ4LiZ4LiX4LmMDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4geC4suC4o+C4quC4oeC4nuC4tOC4qQ0KK+C4guC4meC4tOC4qeC4kOC4siDguIjguLPguYDguJnguLXguKLguKPguIHguLLguKUNCivguILguJnguLTguKnguJDguLIg4LiU4Lin4LiH4LmB4LiB4LmJ4LinDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4meC4suC4geC4suC4reC4tA0KK+C4guC4meC4tOC4qeC4kOC4siDguJzguKXguIfguLLguKENCivguILguJnguLTguKnguJDguLIg4Lii4LiH4Lin4Liy4LiZ4Li04LiK4LiI4Li04LiVDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4p+C4h+C4qOC5jOC5gOC4q+C4peC4t+C4reC4hw0KK+C4guC4meC4tOC4qeC4kOC4siDguKrguLHguIfguILguYzguKjguLTguKPguLQNCivguILguJnguLTguKnguJDguLIg4Lit4LiZ4Li44Liq4LiW4Li04LiV4Lii4LmMDQor4LiC4Lii4Lix4LiZIOC4qOC4suC4quC4leC4o+C4sOC4o+C4uOC4iOC4tA0KK+C4guC4p+C4seC4jSDguILguKfguLHguI3guYDguJfguLXguKLguJnguJfguK3guIcNCivguILguKfguLHguI3guIjguLTguJUg4Lii4Lit4LiU4Liq4Lit4LiZDQor4LiC4Lin4Lix4LiN4LiK4Lix4LiiIOC4geC4h+C4muC4uOC4o+C4suC4kw0KK+C4guC4p+C4seC4jeC4iuC4seC4oiDguYDguIrguLfguYnguK3guKrguLjguKfguKPguKPguJMNCivguILguKfguLHguI3guIrguLHguKIg4Lie4LiH4Lip4LmM4LmA4Lil4Liy4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiC4Lin4Lix4LiN4LiK4Lix4LiiIOC4p+C4h+C4qeC5jOC4k+C4o+C4seC4leC4meC5jA0KK+C4guC4p+C4seC4jeC4iuC4seC4oiDguK3guKHguKPguYDguKHguJgNCivguILguKfguLHguI3guJXguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LiJ4Liy4LiiDQor4LiC4Lin4Lix4LiN4LiV4LiyIOC4qOC4uOC4oOC5gOC4quC4suC4p+C4oOC4suC4hOC4ouC5jA0KK+C4guC4p+C4seC4jeC4ouC4t+C4mSDguJrguLjguI3guJ7guKPguKENCivguILguKfguLHguI3guKjguLTguKPguLQg4Lin4LiT4Li04LiK4LiB4Li44Lil4Lia4LiU4Li1DQor4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHIOC4hOC4h+C4luC4suC4p+C4ow0KK+C4guC4p+C4seC4jeC5gOC4o+C4t+C4reC4mSDguIfguLLguKHguYDguJzguLfguK3guIENCivguILguKfguLHguI3guYDguKPguLfguK3guJkg4Liq4Li14Lii4Lin4LiZDQor4LiC4Lin4Lix4LiN4LmD4LiIIOC5gOC4iOC4leC4meC5jOC4iOC4s+C4meC4h+C4hOC5jOC4quC4geC4uOC4pQ0KK+C4guC4p+C4seC4jeC5g+C4iCDguJnguKPguKHguLHguJXguJbguYwNCivguILguKfguLHguI3guYPguIgg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4LiC4Lin4Lix4LiN4LmD4LiIIOC4quC4uOC4guC4reC4suC4muC5g+C4iA0KK+C4guC4seC4k+C4keC5jOC5hOC4iuC4oiDguKfguIfguKjguYzguIfguLLguKENCivguILguLHguJnguJXguLQg4LmA4LiU4LiK4Liw4LiE4Li44Lib4LiV4LmMDQor4LiC4Lix4LiZ4LiX4Lit4LiHIOC4qOC4o+C4teC4hOC4sw0KK+C4guC4suC4h+C4tOC5ieC4oSDguYHguIvguYjguKXguLTguYnguKENCivguILguLLguKcg4Liq4Li44Lia4Lij4Lij4LiT4Lij4Lix4LiV4LiZ4LmMDQor4LiC4Liz4LmA4Liq4Lih4LitIOC4hOC4h+C4qOC4tOC4o+C4tA0KK+C4guC4uOC4meC5geC4nOC4mSDguYHguIHguYnguKfguJnguYnguK3guKINCivguYDguILguKHguIrguLLguJXguLQg4Lit4Li04Lij4Lix4LiK4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4LiC4Lih4LiyIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4p+C4seC4kuC4meC4suC4geC4ow0KK+C5gOC4guC4teC4ouC4mSDguKDguLHguJfguKPguLUNCivguYDguILguYfguKEg4LiE4Lil4LmJ4Lit4Lii4LmB4Liq4LiHDQor4LmA4LiC4LmH4Lih4LiX4Lit4LiHIOC4qOC4tOC4o+C4tOC5geC4quC4h+C5gOC4peC4tOC4qA0KK+C5geC4guC4meC4oOC4siDguJTguLjguKnguI7guLXguJTguLPguYDguIHguLTguIcNCivguYTguILguKjguKPguLUg4Lij4Lix4LiH4Liq4Li04Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LmE4LiC4LmI4Lih4Li44LiB4LiC4LmMIOC4hOC4h+C4hOC4sg0KK+C4hOC4h+C4geC4pOC4leC4ouC5jCDguJvguLLguJnguIjguLHguJnguJfguKPguYwNCivguITguIfguKTguJfguJjguLTguYwg4LmA4Lib4Li14LmI4Lii4Lih4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiDQor4LiE4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4leC4tOC4oeC4nuC4tOC4l+C4ouC4suC5gOC4p+C4ig0KK+C4hOC4h+C4qOC4seC4geC4lOC4tOC5jCDguKfguLLguJPguLTguIrguIHguKPguJ7guLTguJ7guLHguJLguJnguYwNCivguITguIfguYDguJTguIog4LmB4LiL4LmI4LmC4Lir4LiH4LmJ4LinDQor4LiE4LiR4Liy4LiX4Lit4LiHIOC4l+C4reC4h+C5g+C4q+C4jeC5iA0KK+C4hOC4k+C4suC4o+C4seC4iuC4leC5jCDguJfguLXguYDguKvguKXguYfguIENCivguITguJPguLTguJUg4LiL4Li04LmJ4Lih4LmA4LiI4Lij4Li04LiNDQor4LiE4LiT4Li04LiVIOC4qOC4suC4qOC4p+C4seC4leC4qOC4suC4meC4leC4tA0KK+C4hOC4k+C4tOC4mSDguIjguLjguJHguLLguKHguLLguKgNCivguITguJXguLQg4Lie4Lix4LiZ4LiY4Li44LmM4Liq4Lin4LmI4Liy4LiHDQor4LiE4LiZ4Lit4LiHIOC4meC4tOC4peC4nuC4seC4meC4mOC5jA0KK+C4hOC4meC4tuC4hyDguIrguLnguJvguKPguLDguIjguIcNCivguITguJnguLbguIcg4LmC4Liq4Lih4Liw4LmA4LiB4Lip4LiV4Lij4Li04LiZDQor4LiE4LiZ4Li24LiH4LiZ4Li04LiIIOC4l+C4p+C4teC5geC4geC5ieC4pw0KK+C4hOC4meC4tuC4h+C4meC4tOC4iCDguKrguLHguIfguILguYzguYDguIjguKPguLTguI0NCivguITguJnguLbguIfguJnguLTguJXguKLguYwg4Liq4Li44LiC4Liq4LiB4Li44LilDQor4LiE4Lih4LiB4Lij4Li04LiKIOC5gOC4ieC4peC4tOC4oeC4p+C4seC4kuC4meC5jA0KK+C4hOC4oeC4geC4pOC4iiDguJvguKPguLDguITguLjguJPguITguJTguLUNCivguITguKHguILguLMg4LiK4Lin4Lil4Li04LiVDQor4LiE4Lih4LiE4Liy4LiiIOC4leC4seC5ieC4h+C4leC4o+C4h+C4hOC4tOC4lA0KK+C4hOC4oeC4iOC4seC4geC4oyDguYDguIjguJnguIjguJoNCivguITguKHguKjguLHguIHguJTguLTguYwg4LiB4Lit4Liq4Li04LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiE4Lih4Liq4Lix4LiZIOC4hOC4uOC4k+C5gOC4iOC4o+C4tOC4jQ0KK+C4hOC4oeC4quC4seC4mSDguJrguLHguJPguJHguLTguJXguKfguIfguKnguYwNCivguITguKHguKrguLHguJkg4Lio4Lij4Li14LiX4Lit4LiH4Liq4Li44LiCDQor4LiE4Lih4Liq4Lix4LiZ4LiV4LmMIOC4geC4peC4tOC5iOC4meC4lOC4tQ0KK+C4hOC4oeC4quC4seC4meC4leC5jCDguKrguLjguJ7guKPguKPguJPguYLguKPguIjguJnguYwNCivguITguKPguKPguIrguLTguJUg4LiE4Lil4LmI4Lit4LiH4Lia4Li44LiN4LiI4Li04LiVDQor4LiE4Lij4Lij4LiK4Li04LiVIOC4nOC4peC4suC4muC4ueC4o+C4k+C4sA0KK+C4hOC4o+C4o+C4iuC4tOC4lSDguKrguLjguKfguKPguKPguJPguIrguLfguYjguJkNCivguITguKPguK3guIfguYDguIHguLXguKLguKPguJXguLQg4LmA4LiX4Lio4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4LiE4Lil4Lit4LmD4LiIIOC4m+C4seC4jeC4jeC4suC4qOC4ow0KK+C4hOC4peC4tuC4hyDguJfguKfguLXguKfguKPguKPguJPguYwNCivguITguK3guJXguLXguYDguKLguLLguLAg4Liq4Liy4Lih4Lix4LiNDQor4LiE4Liw4LmA4LiZ4LmH4LiVIOC4nOC4lOC4uOC4h+C4iuC4teC4p+C4tOC4lQ0KK+C4hOC4seC4l+C4o+C4teC4ouC4siDguKLguJnguJXguKPguYzguYDguJvguLXguYjguKLguKENCivguITguLHguKHguKDguLXguKPguJvguLHguI3guI3guLLguIHguKMg4Lie4Lij4Liw4LiE4Lij4Li5DQor4LiE4Liy4LiV4Li14LmLIOC5geC4i+C5iOC4hOC4hw0KK+C4hOC4suC5gOC4geC4teC4ouC4pyDguYHguIvguYjguYLguK3guYnguKcNCivguITguLMg4Lin4Lij4Lij4LiT4Liq4Li04LiX4LiY4Li0DQor4LiE4Liz4LiV4LiyIOC4muC4uOC4jeC4iuC4uQ0KK+C4hOC4s+C4meC4p+C4mSDguJrguLjguJPguKLguJzguKUNCivguITguLPguJnguLbguIcg4LmE4LiK4Lii4Lii4LiZ4LiV4LmMDQor4LiE4Liz4LiZ4Li24LiHIOC4qOC4tOC4o+C4tOC4iOC4seC4meC4l+C4o+C5jA0KK+C4hOC4s+C4m+C4seC4mSDguYHguKrguJnguKrguLjguIINCivguITguLPguJ7guKUg4LiE4LiH4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHDQor4LiE4Liz4Lie4Lix4LiZ4LiY4LmMIOC4qOC4uOC4oOC4quC4ow0KK+C4hOC4s+C4oeC4siDguKjguLTguKPguLTguK3guLLguIgNCivguITguLPguKPguJMg4LmB4LiL4LmI4LiB4Lix4LiHDQor4LiE4Liz4Lij4LiTIOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jOC4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4hOC4s+C4o+C4mSDguIjguJXguLjguJfguK3guIcNCivguITguLPguKvguKHguYjguK3guJkg4Lib4Lij4Liw4Liq4Lih4Lic4LilDQor4LiE4Liz4LmB4Lic4LiZIOC4qOC4o+C4teC4guC4suC4pw0KK+C4hOC4tOC4k+C4q+C5jCDguKfguLHguJLguJnguJ7guLTguJfguLHguIHguKnguYzguIHguLjguKUNCivguITguLTguKHguYLguK3guYnguKcg4Lir4Lin4Lix4LiH4Liq4Li44LiC4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMDQor4LiE4Li14LihIOC5gOC4peC5iOC4suC4p+C4iOC4teC4qOC4suC4quC4leC4o+C5jA0KK+C4hOC4tuC4geC4pOC4l+C4mOC4tOC5jCDguK3guLLguKPguLXguJvguIHguKPguJPguYwNCivguITguLjguJPguJnguYnguK3guIcg4Lie4Lix4LiS4LiZ4Liy4LiZ4Liy4Lij4Lix4LiB4Lip4LmMDQor4LiE4Li44LiT4Liy4LiB4Lij4LiT4LmMIOC4p+C4tOC5gOC4qOC4qeC4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jA0KK+C4hOC4uOC4oSDguJrguLjguI3guYHguIjguIENCivguITguLnguJMg4LmC4Liq4Lig4LiT4Liy4LiZ4Li44LiB4Li54LilDQor4LiE4LmA4LiT4LioIOC4guC4suC4p+C4iOC4seC4meC4l+C4o+C5jA0KK+C5gOC4hOC4mSDguKrguLjguKfguKPguKPguJPguKjguKPguLUNCivguYDguITguKPguLfguK3guJrguLjguI0g4LmC4Lir4LiV4Li04LiY4Liw4LiZ4Lix4LiHDQor4LmA4LiE4Lij4Li34Lit4Lin4Lij4Lij4LiTIOC4qOC4tOC4o+C4ouC4suC4meC4meC4l+C5jOC4nuC4tOC4meC4tOC4iA0KK+C5gOC4hOC4o+C4t+C4reC4p+C4seC4peC4ouC5jCDguJTguLPguKPguIfguITguYzguKPguLHguIHguKnguYwNCivguYDguITguKPguLfguK3guKfguLHguKXguKLguYwg4Lie4Li44LmI4Lih4LiK4LiyDQor4LmA4LiE4Lij4Li34Lit4Lin4Lix4Lil4Lii4LmMIOC4quC4teC5gOC4peC4tOC4qA0KK+C5gOC4hOC4peC4tOC5ieC4oSDguKDguLnguYjguJfguK3guIcNCivguYDguITguLXguKLguIfguILguKfguLHguI0g4LiI4Lix4LmI4LiZ4LmA4Lit4Li14LmI4Lii4LihDQor4LmA4LiE4LmH4LiBIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C5geC4hOC4peC5ieC4pyDguYHguJTguIfguJTguLUNCivguYTguITguK3guLnguYsg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LmC4LiG4Lip4Li04LiVIOC4nuC4seC4kuC4meC4nuC4h+C4qOC5jA0KK+C4h+C5iOC4p+C4h+C5gOC4i+C4teC5ieC4ouC4oSDguYHguIvguYjguYHguKsNCivguIfguYnguKfguJkg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiH4LmJ4LitIOC4quC4tOC4meC4mOC4teC4o+C4oOC4suC4ng0KK+C4h+C4suC4oeC4guC4syDguK7guLjguYjguJnguJXguKPguLDguIHguLnguKUNCivguIfguLLguKHguInguLTguJnguJnguYwg4Lii4Li04LmJ4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiH4Liy4Lih4LiV4LiyIOC4quC4suC4o+C4sOC5gOC4l+C4teC4ouC4mQ0KK+C4h+C4suC4oeC4nuC4o+C4o+C4kyDguYHguKLguYnguKHguKrguIHguLjguKUNCivguIfguLLguKHguKjguLHguIHguJTguLTguYwg4LmB4Lii4LmJ4Lih4LiK4Li34LmI4LiZDQor4LiH4Li04LmK4LihIOC5geC4i+C5iOC5gOC4ruC4hw0KK+C5gOC4h+C4tOC4mSDguYHguIHguYnguKfguIrguJnguLDguIrguLHguKINCivguYDguIfguLTguJnguKLguKfguIcg4LiZ4Li44LiZ4Lie4LiZ4Lix4Liq4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4LiH4LmH4LiBIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5gOC4h+C5h+C4geC4i+C4tOC4oSDguJXguJnguLHguJnguJfguYzguKLguLjguJfguJjguKfguIfguKjguYwNCivguYDguIfguYfguIHguK7guKfguKIg4LmB4LiL4LmI4LiI4Li24LiHDQor4LmA4LiH4LmH4LiB4LmA4Lil4LmJ4LiHIOC5geC4i+C5iOC5gOC4iOC4teC4ouC4oQ0KK+C5guC4h+C5ieC4p+C5gOC4hOC4teC5ieC4ouC4hyDguYHguIvguYjguKvguKXguK0NCivguIjguIfguIHguKPguJPguYwg4Lit4Li04LmI4Lih4Liq4LiB4Li44LilDQor4LiI4LiH4LiB4LilIOC4l+C4reC4h+C5guC4reC4rOC4suC4ow0KK+C4iOC4h+C4geC4pSDguKXguLLguJnguYDguIjguKPguLTguI0NCivguIjguIfguIHguKUg4LmB4Lir4Lib4Lij4Liw4Liq4Lie4LmC4LiK4LiEDQor4LiI4LiH4LiB4Lil4LiT4Li1IOC5geC4oeC5ieC4meC4q+C4oeC4suC4og0KK+C4iOC4h+C4geC4peC4meC4tSDguJvguLTguYjguJnguYDguIjguKPguLTguI0NCivguIjguIfguIjguLTguJUg4LmB4LiL4LmI4Lit4Li24LmL4LiHDQor4LiI4LiH4LiI4Li04LiV4LiV4LmMIOC4muC4uOC4jeC4iuC4meC4suC4meC4meC4l+C5jA0KK+C4iOC4h+C4iOC4tOC4leC4oyDguIjguLHguJnguJfguKfguLUNCivguIjguIfguIjguLTguJnguJXguYwg4LmA4Liq4Lij4Li14Lij4Lix4LiB4Lip4LmMDQor4LiI4LiH4LiU4Li1IOC4muC4seC4p+C4muC4ueC4iuC4sg0KK+C4iOC4h+C4lOC4tSDguYHguKrguIfguYDguJ7guIrguKMNCivguIjguIfguKPguLHguIEg4LmA4LiV4LmH4LiH4Lit4Liz4LiZ4Lin4LiiDQor4LiI4LiH4Lij4Lix4LiB4Lip4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4hOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4h+C4o+C4seC4geC4qeC5jCDguJ7guLHguJnguJjguKHguLTguJXguKMNCivguIjguIfguKPguLHguIHguKnguYwg4Lir4Liy4LiN4Lin4Li44LiK4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4LiI4LiH4Lio4Li04Lij4Li0IOC4peC5ieC4reC4geC4suC4jeC4iOC4meC4o+C4seC4leC4meC5jA0KK+C4iOC4h+C5gOC4ruC4hyDguYHguIvguYjguJnguLTguYnguKENCivguIjguJXguLjguJ7guKMg4LiB4Liy4LiN4LiI4LiZ4LiE4Lil4Lit4LiUDQor4LiI4LiV4Li44Lie4LijIOC4mOC4oeC4o+C4seC4leC4meC5jA0KK+C4iOC4leC4uOC4nuC4oyDguKfguLHguIrguKPguLLguJnguLLguIQNCivguIjguJXguLjguJ7guKUg4Lit4Li04LmI4Lih4LmA4LiH4Li04LiZDQor4LiI4LiV4Li44Lij4LiH4LiE4LmMIOC4nuC4peC4meC4tOC4pQ0KK+C4iOC4leC4uOC4o+C4nuC4oyDguKrguLjguKPguLTguKLguLLguKHguLLguKgNCivguIjguKPguIfguITguYwg4LiB4Lil4Li04LmI4LiZ4Lij4Li34LmI4LiZDQor4LiI4Lij4Lij4Lii4Lij4Lix4LiB4Lip4LmMIOC4hOC4uOC4k+C4uOC4m+C4geC4suC4ow0KK+C4iOC4o+C4o+C4ouC4siDguYDguIfguLTguJnguJTguLUNCivguIjguKPguKPguKLguLIg4LiK4Li54LiC4Lin4Lix4LiNDQor4LiI4Lij4Lij4Lii4LiyIOC4l+C4teC4m+C4suC4meC4meC4l+C5jA0KK+C4iOC4o+C4o+C4ouC4siDguJvguLHguYnguJnguYDguKvguJnguYjguIfguYDguJ7guIrguKMNCivguIjguKPguKPguKLguLIg4Lih4LiT4Li14LmC4LiK4LiV4Li0DQor4LiI4Lij4Lij4Lii4LiyIOC5gOC4peC4suC4q+C5gOC4peC4tOC4qOC4iuC4seC4og0KK+C4iOC4o+C4o+C4ouC4siDguYDguKjguKPguKnguJDguJrguLjguJXguKMNCivguIjguKPguKPguKLguLIg4Lir4LmI4Lin4LiH4Lio4Lij4Li1DQor4LiI4Lij4Lij4Lii4Liy4Lij4Lix4LiB4Lip4LmMIOC4l+C4o+C4seC4nuC4ouC5jOC5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4ow0KK+C4iOC4o+C4p+C4oiDguJfguK3guIfguKHguLXguJvguLHguYjguJkNCivguIjguKPguKfguKLguJ7guKMg4LiB4Lit4LiH4LmA4Lie4LmH4LiHDQor4LiI4Lij4Lit4LiZIOC5guC4m+C4o+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4o+C4seC4jSDguIjguLHguJnguJfguKPguYzguJfguLTguKENCivguIjguKPguLHguI0g4LiU4Li44Lil4Lii4Liy4Lig4Li04LiZ4Lix4LiZ4LiX4LmMDQor4LiI4Lij4Lix4LiNIOC5gOC4meC4teC4ouC4oeC4q+C4reC4oQ0KK+C4iOC4o+C4seC4jSDguJ7guLTguKPguLTguKLguLDguJvguLHguI3guI3guLINCivguIjguKPguLHguI0g4Lij4LmJ4Lit4LiH4LiC4Lix4LiZ4LmB4LiB4LmJ4LinDQor4LiI4Lij4Lix4LiNIOC4qOC4seC4geC4lOC4tOC5jOC4quC4ouC4suC4oeC4geC4uOC4pQ0KK+C4iOC4o+C4seC4jSDguKvguIfguKfguJnguYDguKrguIfguLXguYjguKLguKENCivguIjguKPguLHguI3guI3guLIg4LiI4Lix4LiZ4LiX4Lij4Liy4Liq4Li44Lin4Lij4Lij4LiTDQor4LiI4Lij4Lix4LiN4LmA4LiU4LiKIOC4iOC4s+C4m+C4suC4p+C4seC4peC4ouC5jA0KK+C4iOC4o+C4seC4pSDguIjguLTguKPguKjguLLguJnguJXguYzguIrguLHguKINCivguIjguKPguLHguKUg4Lia4Li44LiZ4LiZ4Liy4LiEDQor4LiI4Lij4Lix4LilIOC4p+C4tOC5guC4o+C4iOC4meC5jOC4ouC4tOC5iOC4h+C4ouC4hw0KK+C4iOC4o+C4seC4peC4o+C4seC4leC4meC5jCDguYDguKPguLfguK3guIfguIrguLLguJXguLQNCivguIjguKPguLHguKog4LiK4Lix4Lii4Lih4Lir4Liy4Lin4Lix4LiZDQor4LiI4Lij4Lix4LiqIOC4m+C4tOC5iOC4meC5guC4quC4oOC4sg0KK+C4iOC4o+C4seC4qiDguKfguKPguIHguLjguKXguJTguLPguKPguIcNCivguIjguKPguLHguKog4Lit4Lix4Lia4LiU4Li44Lil4Lil4LiyDQor4LiI4Lij4Lix4Liq4Lie4LijIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4iOC4o+C4seC4quC4qOC4o+C4tSDguYDguIjguKPguLTguI3guIrguLjguYjguKENCivguIjguKPguLHguKrguKjguKPguLUg4Lie4Li24LmI4LiH4LiB4Lix4LiZDQor4LiI4Lij4Lix4Liq4Lio4Lij4Li1IOC4quC4uOC4geC4seC4meC4jeC4sg0KK+C4iOC4o+C4tOC4hyDguJ7guLjguYjguKHguYHguJ7guKMNCivguIjguKPguLTguJkg4Lig4Li54LmI4LiZ4LmJ4Lit4LiiDQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4geC4peC4tOC5iOC4meC4oeC4sOC4peC4tA0KK+C4iOC4o+C4tOC4meC4l+C4o+C5jCDguIrguYnguLLguIfguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguIjguKPguLTguJnguJfguKPguYwg4LiZ4Liy4LiE4Lio4Lij4Li14Lit4Liy4Lig4Lij4LiT4LmMDQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4nuC4uOC4l+C4mOC4tOC4quC4suC4p+C4h+C4qOC5jA0KK+C4iOC4o+C4tOC4meC4l+C4o+C5jCDguYDguKPguLfguK3guJnguYHguIHguYnguKcNCivguIjguKPguLTguJnguJfguKPguYwg4Liq4Lih4Li44Lir4LmM4Liq4LiZ4LiY4LmMDQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4reC4tOC5iOC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4iOC4o+C4tOC4ouC4siDguYDguIHguKPguLXguKLguIfguYTguIHguKPguKfguJPguLTguIoNCivguIjguKPguLTguKLguLIg4LmA4LiI4Lij4Li04LiN4Liq4Li04LiZDQor4LiI4Lij4Li04Lii4LiyIOC4lOC4tOC4peC4geC5guC4geC4oeC4pQ0KK+C4iOC4o+C4tOC4ouC4siDguJrguLjguI3guIjguK3guIcNCivguIjguKPguLTguKLguLIg4LmC4Lie4LiY4Li04Lin4Li04LiK4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Lij4Li04Lii4LiyIOC4p+C4h+C4qOC5jOC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4o+C4tOC4ouC4siDguKrguLHguIfguKfguLLguKXguKLguYwNCivguIjguKPguLTguKLguLIg4Lit4LiH4LiE4LmM4Lin4Liy4Liq4Li04LiO4LiQ4LmMDQor4LiI4Lij4Li1IOC4leC4o+C4teC4quC4reC4suC4lA0KK+C4iOC4o+C4teC4oOC4o+C4k+C5jCDguK3guLTguJnguJfguYHguJ7guJfguKLguYwNCivguIjguKPguLXguKPguLHguJXguJnguYwg4Lie4Li04LiB4Li44Lil4LmB4Lii4LmJ4LihDQor4LiI4Lij4Li44LiHIOC4nuC4o+C4q+C4oeC4oeC4suC4meC4meC4l+C5jA0KK+C4iOC4o+C4uOC4h+C4qOC4o+C4tSDguIjguKPguLjguIfguIHguKXguLTguYjguJkNCivguIjguKPguLnguI0g4LiB4Lix4LiZ4LiL4Lix4LiZDQor4LiI4Lij4Li54LiNIOC4hOC4h+C4oeC4sg0KK+C4iOC4o+C4ueC4jSDguIjguLXguKPguLDguKfguLHguJLguJnguLINCivguIjguKPguLnguI0g4LmC4LiK4LiE4LiI4Liy4Lij4Li44LmA4LiZ4LiV4LijDQor4LiI4Lij4Li54LiNIOC4l+C4o+C4seC4nuC4ouC5jOC5gOC4meC4t+C4reC4h+C4meC4reC4hw0KK+C4iOC4o+C4ueC4jSDguYHguJnguKHguYPguKoNCivguIjguKPguLnguI0g4LmB4Lib4LmJ4LiZ4LmA4Lil4LmH4LiBDQor4LiI4Lij4Li54LiNIOC5gOC4nuC5h+C4iuC4o+C5jOC4geC4peC4seC4mg0KK+C4iOC4o+C4ueC4jSDguKPguLHguIHguKnguLLguKPguLLguIoNCivguIjguKPguLnguI0g4Lin4Lij4Lij4LiY4LiZ4Liw4Liq4Li04LiZDQor4LiI4Lij4Li54LiNIOC4quC4o+C5ieC4reC4ouC4quC4p+C5iOC4suC4hw0KK+C4iOC4o+C4ueC4jSDguYHguKrguJnguKPguLLguIoNCivguIjguKPguLnguI0g4LmA4Lit4Li34LmJ4Lit4LmA4Lie4Li04LmI4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LiI4Lij4Li54LiN4Lil4Lix4LiB4Lip4LiT4LmMIOC4reC4seC4h+C4hOC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4iOC4o+C4ueC4jeC4qOC4o+C4tSDguKjguLjguILguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguIjguKPguLnguI3guYLguKPguIjguJnguYwg4LiJ4Li04Lih4Liq4Liz4Lij4Liy4LiNDQor4LiI4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC5geC4geC5ieC4p+C4nuC4tuC5iOC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4iOC4p+C4mSDguJTguYnguKfguIfguYDguIfguLTguJkNCivguIjguKfguJnguJ/guLLguIcg4LiV4Lix4LmJ4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiI4Lit4LiZIOC4p+C4tOC4o+C4tOC4ouC4sOC4reC4o+C4o+C4luC4p+C4uOC4kuC4tA0KK+C4iOC4reC4oeC4neC4suC4hyDguKrguLHguKHguJfguKPguLLguKINCivguIjguK3guKvguYzguJkg4LmB4Lit4Lil4LmB4Lil4LiZ4LmB4LijDQor4LiI4LmK4LiwIOC5geC4i+C5iOC4l+C5ieC4suC4pw0KK+C4iOC4seC4geC4o+C4geC4o+C4tOC4iiDguKPguLjguIjguK3guLjguKzguLLguKMNCivguIjguLHguIHguKPguIHguKTguKkg4LiK4Li44LiZ4LiB4Lit4LiH4Liu4LitDQor4LiI4Lix4LiB4Lij4LiB4Lik4Lip4LiT4LmMIOC4meC4uOC4quC4quC4leC4tA0KK+C4iOC4seC4geC4o+C4geC4pOC4qeC4k+C5jCDguKrguLTguJfguJjguLLguIjguLLguKPguKfguLHguJLguJnguYwNCivguIjguLHguIHguKPguIrguLHguKIg4LmA4Lie4LmH4LiK4Lij4LmA4Lih4LmH4LiU4LmD4Lir4LiN4LmIDQor4LiI4Lix4LiB4Lij4Lie4LiH4Lio4LmMIOC5gOC4peC4tOC4qOC4oeC4k+C4teC4nuC4seC4meC4mOC5jA0KK+C4iOC4seC4geC4o+C4nuC4h+C4qeC5jCDguKrguLjguKDguLLguJ4NCivguIjguLHguIHguKPguJ7guLHguJnguJjguYwg4LiB4LmJ4Lit4LiZ4Lic4Li54LiBDQor4LiI4Lix4LiB4Lij4Lie4Lix4LiZ4LiY4LmMIOC5gOC4peC4tOC4qOC4luC4p+C4tOC4peC4oOC4seC4geC4lOC4tQ0KK+C4iOC4seC4geC4o+C4p+C4suC4pSDguIHguLPguKXguLHguIfguKjguKMNCivguIjguLHguIHguKPguLLguKfguLjguJgg4LmB4LiI4LmJ4LiH4LmA4Lin4LiK4LiJ4Liy4LiiDQor4LiI4Lix4LiB4Lij4Li1IOC5gOC4guC4t+C5iOC4reC4meC4mOC4o+C4o+C4oQ0KK+C4iOC4seC4geC4pOC4qeC4k+C5jCDguKTguJfguJjguLTguYzguYDguKXguLTguKgNCivguIjguLHguYnguIcg4Lih4LiU4LiX4Lit4LiHDQor4LiI4Lix4LiZ4LiI4LiZ4LiyIOC4quC4oeC4quC4t+C4mg0KK+C4iOC4seC4meC4lOC4tSDguK3guLTguIfguKrguLINCivguIjguLHguJnguJfguJnguLIg4LiB4Lih4Lil4LiX4Li04Lie4Lii4LmM4LiV4Lij4Liw4LiB4Li54LilDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4h+C4suC4oeC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jA0KK+C4iOC4seC4meC4l+C4meC4siDguIrguLTguJTguIrguK3guJoNCivguIjguLHguJnguJfguJnguLIg4LiV4Lix4LiZ4LiV4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4meC4uOC5ieC4ouC5gOC4nOC4t+C4reC4gQ0KK+C4iOC4seC4meC4l+C4meC4siDguJ7guLHguJLguJnguIjguLTguJXguKfguLTguYTguKUNCivguIjguLHguJnguJfguJnguLIg4Lij4Lit4LiU4Lin4Li04LiI4Li04LiV4LijDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4iOC4seC4meC4l+C4meC4siDguKrguLLguKLguIHguKPguLDguKrguLjguJkNCivguIjguLHguJnguJfguJnguLIg4LmC4Lir4Lih4Lin4Liy4LiZ4Li04LiKDQor4LiI4Lix4LiZ4LiX4LiZ4Li1IOC4iOC4seC4meC4l+C4o+C4suC4o+C4oeC4ouC5jA0KK+C4iOC4seC4meC4l+C4meC4tSDguKrguLTguIfguKvguYzguKrguLjguKfguKPguKPguJMNCivguIjguLHguJnguJfguKLguLIg4LiV4Lij4Lit4LiH4LiV4Lij4Liw4LiB4Liy4LijDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Liz4LmA4Lir4LiZ4Li04LiUIOC5gOC4iOC4o+C4tOC4jeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4iOC4seC4meC4l+C4o+C5jOC4iOC4tOC4o+C4siDguYDguIrguLfguYnguK3guIjguLjguYnguKINCivguIjguLHguJnguJfguKPguYzguInguLLguKIg4LiB4Li44Lil4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiJ4Liy4LiiIOC4nuC4h+C4qeC5jOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iOC4seC4meC4l+C4o+C5jOC4lOC4tSDguIHguLjguI3guIjguKMNCivguIjguLHguJnguJfguKPguYzguJfguKPguLIg4Lia4Li54LmI4Liq4Liy4Lil4Li1DQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiX4Li04Lie4Lii4LmMIOC4p+C4uOC4kuC4tOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iOC4seC4meC4l+C4o+C5jOC4meC4tOC4oOC4siDguYDguIHguKPguYHguK7guKENCivguIjguLHguJnguJfguKPguYzguJ7guLTguKEg4LiE4Lil4LmJ4Liy4Lii4LiZ4Liy4LiEDQor4LiI4Lix4LiZ4LiX4Lij4LmM4Lij4Lix4LiV4LiZ4LmMIOC4luC4meC4reC4oeC4nuC4peC4hOC4peC4seC4hw0KK+C4iOC4seC4meC4l+C4o+C5jOC4qOC4o+C4tSDguKrguKfguKLguKPguLnguJsNCivguIjguLHguJnguJfguKPguYzguKrguLjguJTguLIg4Lil4Liy4Lig4Lin4Li44LiS4Li04Lij4Lix4LiV4LiZ4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LiyIOC4geC4tOC4iOC4geC4seC4jeC4iOC4meC4suC4quC4meC5jA0KK+C4iOC4seC4meC4l+C4o+C4siDguYHguIvguYjguIHguLXguYkNCivguIjguLHguJnguJfguKPguLIg4Lia4Li44LiN4LiX4Li1DQor4LiI4Lix4LiZ4LiX4Lij4LiyIOC5guC4o+C4iOC4meC5jOC4nuC4peC4suC5gOC4quC4luC4teC4ouC4ow0KK+C4iOC4seC4meC4l+C4o+C4siDguKrguLjguILguKrguLTguIfguKvguYwNCivguIjguLHguJnguJfguKPguLLguKDguLIg4Lie4Lix4LiZ4LiY4Li44LmM4Liq4Lih4Lia4Li44LiNDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4geC4peC4teC4muC4muC4seC4pw0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguIjguLHguJnguKrguLPguYLguKPguIcNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4LmB4LiL4LmI4Lii4Li04LiUDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4mOC4meC4nuC4h+C4qOC5jOC4meC4uOC5guC4o+C4iOC4meC5jA0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguJvguLLguJnguYDguJfguKgNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4Lih4Liy4LiV4Lij4Liq4Li04LiH4Lir4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4p+C4h+C4qOC5jOC4iuC4s+C4meC4suC4jQ0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguKrguLHguI3guI3guLDguKfguLUNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4Lit4Lih4Lij4Liq4Lih4Lia4Li54Lij4LiT4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiU4LiHIOC4nOC4peC4iOC4seC4meC4l+C4o+C5jA0KK+C4iOC4seC4meC4l+C4o+C5jOC5guC4o+C4iOC4meC5jCDguKrguJbguLTguJXguKfguLTguKPguLTguKLguKfguIfguKjguYwNCivguIjguLHguJnguJfguKPguYwg4LmC4LiK4LiE4Liq4Li44Lij4Li04Lii4Liw4Liq4LiB4Li44LilDQor4LiI4Lix4LiZ4LiX4Lij4LmMIOC4nuC4tOC4peC4sg0KK+C4iOC4seC4meC4l+C4o+C5jCDguKrguIHguLjguJPguLINCivguIjguLHguJnguJfguLIg4LmA4LiB4Lil4Li14LmJ4Lii4LiH4Lie4Lij4LmJ4Lit4LihDQor4LiI4Lix4LiZ4LiX4Li04Lih4LiyIOC5geC4geC5ieC4p+C4m+C4o+C4sOC5guC4peC4oQ0KK+C4iOC4seC4meC4l+C4tOC4oeC4siDguJPguLDguKPguLTguJnguJfguKPguYzguJ/guLkNCivguIjguLHguJnguJfguLTguKHguLIg4Lie4Li04LiZ4LiX4Li44Lin4Lix4LiS4LiZ4LiwDQor4LiI4Lix4LiZ4LiX4Li04Lih4LiyIOC4qOC4o+C4teC5hOC4geC4o+C4p+C4seC4iuC4ow0KK+C4iOC4seC4meC4l+C4tOC4o+C4siDguIHguKPguLDguJrguKfguJnguKLguLjguJfguJgNCivguIjguLHguJnguJfguLTguKPguLIg4Liq4Li44LiC4Liq4LiB4Li44Lil4LiZ4Li1DQor4LiI4Lix4LiZ4Lin4Li04LmE4LilIOC4iuC4tOC4leC4meC4uOC4iuC4leC4o+C4suC4meC4meC4l+C5jA0KK+C4iOC4seC5iOC4p+C4hOC4uOC4kyDguYHguIvguYjguYDguIvguLXguKLguKcNCivguIjguLLguJXguLjguKPguIfguITguYwg4Liq4Li44Lij4Li04Lii4Liy4Lio4Lio4Li04LiZDQor4LiI4Liy4Lih4LiI4Li44Lij4Li1IOC4qOC4o+C4teC4q+C4tOC4o+C4seC4jeC4o+C4seC4qOC4oeC4tQ0KK+C4iOC4suC4oeC4o+C4tSDguYDguKvguKPguLXguKLguI3guK3guLHguKHguJ7guKMNCivguIjguLLguKPguLTguJPguLUg4Liq4Li44LiE4LiZ4LiY4LiK4Liy4LiV4Li0DQor4LiI4Liy4Lij4Li14Lii4LmM4Lie4LijIOC4nuC4uOC5iOC4oeC4meC5ieC4s+C5gOC4ouC5h+C4mQ0KK+C4iOC4suC4o+C4tuC4gSDguIrguLnguJnguLjguIoNCivguIjguLLguKPguLbguIEg4LmA4Lin4LiX4Lin4Lix4LiS4LiZ4Liy4Lie4Li04Lia4Li54LilDQor4LiI4Liy4Lij4Li4IOC4p+C4tOC4iuC4suC5hOC4l+C4og0KK+C4iOC4suC4o+C4uOC4k+C4tSDguIjguLDguYLguKPguITguKPguLHguKHguKLguYwNCivguIjguLLguKPguLjguJPguLUg4LiZ4Liy4LiE4LiZ4Liy4LihDQor4LiI4Liy4Lij4Li44LiT4Li1IOC4ouC4uOC4geC4leC4tOC4o+C4seC4leC4meC5jA0KK+C4iOC4suC4o+C4uOC4k+C4tSDguYDguKrguKfguJXguYTguK3guKLguLLguKPguLLguKENCivguIjguLLguKPguLjguJnguLHguJnguJfguYwg4Lia4Li44LiN4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiI4Liy4Lij4Li44Lie4LijIOC4qOC4tOC4o+C4tOC4l+C4seC4leC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4iOC4suC4o+C4uOC4oOC4siDguYHguKrguKHguILguLLguKcNCivguIjguLLguKPguLjguKXguLHguIHguKnguJPguYwg4LiY4Lij4Lij4Lih4LiY4Liy4LijDQor4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTIOC4iOC4h+C5gOC4peC4tOC4qOC4p+C4k+C4tOC4iuC4geC4uOC4pQ0KK+C4iOC4suC4o+C4uOC4p+C4o+C4o+C4kyDguYHguIvguYjguYLguK3guYrguKcNCivguIjguLLguKPguLjguKfguKPguKPguJMg4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4Lie4Lik4LiB4Lip4LmMDQor4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTIOC4oOC4tOC4o+C4oeC4ouC5jOC5gOC4iOC4teC4ouC4pw0KK+C4iOC4suC4o+C4uOC4p+C4o+C4o+C4kyDguKfguLHguJLguJnguKrguLTguIfguKvguLANCivguIjguLLguKPguLjguKfguKPguKPguJMg4LmA4Liq4Lij4Li14LmA4LiI4Lij4Li04LiN4Liq4LiW4Li04LiV4Lii4LmMDQor4LiI4Liy4Lij4Li44Lin4Lix4LiS4LiZ4LmMIOC4iOC4suC4o+C4uOC4p+C4seC4kuC4meC4sA0KK+C4iOC4suC4o+C4uOC5gOC4geC4teC4ouC4o+C4leC4tCDguITguLLguJTguKrguJnguLTguJcNCivguIjguLPguJnguIcg4LmC4LiB4Lin4Li04LiX4Lit4Li04Liq4Lij4Li04Lii4LiwDQor4LiI4Liz4LiZ4LiHIOC4o+C4seC4h+C4quC4tOC4geC4uOC4pQ0KK+C4iOC4s+C4meC4h+C4hOC5jCDguIHguLTguJXguJXguLTguKPguLHguJXguJnguK3guLjguJTguKENCivguIjguLPguJnguIfguITguYwg4LiI4Lij4Lij4Lii4Liy4Lin4Lij4Lin4LiH4Lio4LmMDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4iuC4tOC4leC4iOC5ieC4reC4og0KK+C4iOC4s+C4meC4h+C4hOC5jCDguJfguK3guIfguJvguKPguLDguYDguKrguKPguLTguJANCivguIjguLPguJnguIfguITguYwg4Lia4Lix4Lin4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4nuC4p+C4h+C4peC4sOC4reC4reC4hw0KK+C4iOC4s+C4meC4h+C4hOC5jCDguKHguLHguIfguIHguKPguJvguKPguLDguJTguLTguKnguJDguYwNCivguIjguLPguJnguIfguITguYwg4LmA4Lil4LmH4LiB4LiU4Liy4Lij4LiyDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4quC4o+C4sOC4l+C4reC4hw0KK+C4iOC4s+C4meC4h+C4hOC5jCDguKvguJnguLnguKDguLHguIHguJTguLUNCivguIjguLPguJnguIfguJnguLLguI8g4LiI4Li04LiV4LiV4LiB4Li04LiIDQor4LiI4Liz4LiZ4Lit4LiHIOC4nuC4p+C4h+C4nuC4uOC4kg0KK+C4iOC4s+C4m+C4siDguYLguIHguKnguLDguYLguKLguJjguLTguJkNCivguIjguLPguJvguLIg4Lie4Li44Lih4Lih4LiyDQor4LiI4Liz4Lib4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4hOC4sw0KK+C4iOC4s+C4m+C4tSDguYDguJvguYvguLLguJfguK3guIcNCivguIjguLPguJvguLUg4Liq4Li04LiH4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiI4Liz4Lij4Lix4LiNIOC4reC4o+C4o+C4luC4quC4uOC4meC4l+C4ow0KK+C4iOC4s+C4o+C4seC4qiDguYDguIfguLTguJnguKjguLTguKPguLQNCivguIjguLPguKPguLHguKog4LmE4LiK4Lii4Lio4Li04Lij4Li04LiZ4LiX4Lij4LmMDQor4LiI4Liz4Lij4Lix4LiqIOC4l+C4seC4muC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4s+C4o+C4seC4qiDguJrguLjguI3guJvguKPguLDguKrguJ4NCivguIjguLPguKPguLHguKog4Lie4Lix4LiZ4LiY4Li44LmM4LmB4LiB4LmJ4LinDQor4LiI4Liz4Lij4Lix4LiqIOC4oeC4teC4hOC4seC4peC5geC4peC4sOC4q+C5jA0KK+C4iOC4s+C4o+C4seC4qiDguYDguKXguYnguLLguIrguLHguKLguKfguLHguJLguJnguYwNCivguIjguLPguKPguLHguKog4Liq4LiH4Lin4LiZ4Lie4LiH4Lip4LmMDQor4LiI4Liz4Lij4Lix4LiqIOC5geC4quC4h+C4o+C4ueC4iOC4tQ0KK+C4iOC4s+C4o+C4seC4qiDguK3guLTguJnguKjguKPguLUNCivguIjguLPguKPguLnguI0g4LiE4Li44LmJ4Lih4LiK4Li44LmI4LihDQor4LiI4Liz4Lij4Li54LiNIOC4m+C4tOC4leC4sOC5guC4q+C4leC4o+C4sA0KK+C4iOC4s+C4o+C4ueC4jSDguKrguIfguKfguJnguKjguLHguIHguJTguLTguYzguYLguKLguJjguLTguJkNCivguIjguLPguKXguK3guIcg4LiB4Lit4LiH4LmB4Liq4LiH4Lio4Lij4Li1DQor4LiI4Liz4Lil4Lit4LiHIOC5geC4guC5gOC4guC4teC4ouC4pw0KK+C4iOC4s+C4peC4reC4hyDguIjguLLguKPguLjguIrguLHguKLguJnguLTguKfguLHguJLguJnguYwNCivguIjguLPguKXguK3guIcg4LiK4Li34LmI4LiZ4Lia4Liz4Lij4Li44LiHDQor4LiI4Liz4Lil4Lit4LiHIOC4l+C5ieC4p+C4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4s+C4peC4reC4hyDguJnguYnguK3guKLguK3guLTguJnguJfguKPguYwNCivguIjguLPguKXguK3guIcg4Lib4Lil4Li34LmJ4Lih4LmA4Lib4Lij4LihDQor4LiI4Liz4Lil4Lit4LiHIOC4nuC4uOC4kuC4q+C4ouC4p+C4gQ0KK+C4iOC4s+C4peC4reC4hyDguYDguKHguJjguLLguKfguLTguKPguLTguKLguLDguKjguLTguKXguJvguYwNCivguIjguLPguKXguK3guIcg4LmE4Lil4LmJ4Lij4Lix4LiB4Lip4LiyDQor4LiI4Liz4Lil4Lit4LiHIOC4qOC4tOC4peC4suC4nuC4seC4meC4mOC5jA0KK+C4iOC4s+C4peC4reC4hyDguKrguLjguILguKrguKfguLHguKrguJTguLTguYwNCivguIjguLPguKXguK3guIcg4Lit4LiZ4Lix4LiZ4LiV4Lic4LilDQor4LiI4Liz4Lil4Lit4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4quC4seC4jeC4jeC4sOC5gOC4lOC4iuC4suC4geC4uOC4pQ0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguIHguK3guIfguJrguLjguJrguJzguLINCivguIjguLPguYDguJnguLXguKLguKMg4LiI4LiH4LmE4Lie4LiI4Li04LiV4LijDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC5geC4iuC5iOC4oeC4iuC5ieC4reC4og0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguYDguJfguKjguYDguJ7guYfguI0NCivguIjguLPguYDguJnguLXguKLguKMg4Lib4Lij4Liw4Lig4Liy4Lij4Lix4LiV4LiZ4LmMDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC5gOC4nuC5h+C4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguKPguLHguJDguKfguLTguYDguKjguKkNCivguIjguLPguYDguJnguLXguKLguKMg4Lio4Lij4Li14Lin4LiH4Lip4LmMDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC4quC4uOC4lOC4qOC4tOC4o+C4tA0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguK3guLXguJTguLUNCivguIjguLPguYDguKPguLTguI0g4LiE4Liz4Liq4Lit4LiZDQor4LiI4Liz4LmA4Lij4Li04LiNIOC4muC4uOC4jeC4l+C4reC4h+C4quC4uOC4gg0KK+C4iOC4s+C5gOC4o+C4tOC4jSDguYDguKXguLTguKjguYDguIjguKPguLTguI3guKLguIfguITguYwNCivguIjguLPguYDguKPguLTguI0g4Lit4Lix4LiZ4LiY4Li04Lij4LiqDQor4LiI4Liz4LmA4Lij4Li14Lii4LiHIOC4lOC4tOC4qeC4kOC4suC4meC4meC4l+C5jA0KK+C4iOC4s+C5gOC4o+C4teC4ouC4hyDguKrguLjguKfguKPguKPguJPguYLguJMNCivguIjguLTguIfguKXguYnguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiI4Li04LiT4Lir4LiY4Liy4LiZ4LmMIOC4muC4uOC4jeC5hOC4geC4o+C4quC4tOC4l+C4mOC4tOC5jA0KK+C4iOC4tOC4leC4geC4o+C4reC4hyDguK3guLTguJnguJfguKPguK3guLjguJTguKENCivguIjguLTguJXguJXguYzguJrguKPguKPguKLguIcg4LiI4Li04LiV4LiV4LmM4Lia4Lij4Lij4Lii4LiHDQor4LiI4Li04LiV4LiV4Lij4LiyIOC4nuC4uOC4geC4geC4sOC4oeC4suC4mQ0KK+C4iOC4tOC4leC4leC5jOC4quC4oeC4oyDguK3guJXguLTguYDguKPguIHguLLguJnguJnguJfguYwNCivguIjguLTguJXguJXguLQg4LmC4LiK4LiV4Li04Lij4Lix4LiV4LiZ4Liw4Lio4Li04Lij4Li0DQor4LiI4Li04LiV4LiV4Li0IOC4p+C4tOC4iOC4tOC4leC4o+C4iuC4peC4geC4suC4meC4leC5jA0KK+C4iOC4tOC4leC4leC4tOC4meC4seC4meC4l+C5jCDguIjguLTguJnguJTguLLguKvguKPguLINCivguIjguLTguJXguJXguLTguKHguLIg4LmA4LiB4Lip4Lih4LmC4LiB4LmA4Lih4LioDQor4LiI4Li04LiV4LiV4Li04Lih4LiyIOC5gOC4l+C4p+C4teC4peC4suC4oOC4o+C4k+C5jA0KK+C4iOC4tOC4leC4leC4tOC4oeC4siDguYDguKXguLTguKjguJrguLjguI3guKLguJ7guLHguJnguJjguYwNCivguIjguLTguJXguJXguLTguKHguLIg4Lit4Li04Liq4Lij4Liw4LiB4Li54LilDQor4LiI4Li04LiV4LiV4LmMIOC4iuC4t+C5iOC4meC4oOC4seC4geC4lOC4tQ0KK+C4iOC4tOC4leC4leC5jCDguKvguKHguKfguJTguKrguIcNCivguIjguLTguJXguJvguKPguLDguYTguJ4g4LiB4LiZ4Li04Lip4LiQ4Liy4Lii4LiZDQor4LiI4Li04LiV4LijIOC4leC4seC4meC4leC4tOC4meC4tOC4geC4ow0KK+C4iOC4tOC4leC4o+C4geC4oyDguKjguKPguLXguKvguLTguKPguLHguI0NCivguIjguLTguJXguKPguKDguJMg4Lij4Lix4LiV4LiZ4Lih4LiH4LiE4Lil4LiB4Li44LilDQor4LiI4Li04LiV4Lij4Lil4LiU4LiyIOC5gOC4q+C4o+C4seC4jeC4k+C4uOC4geC4o+C4k+C5jA0KK+C4iOC4tOC4leC4o+C4siDguIHguKPguLDguYHguKrguIHguLjguKjguKUNCivguIjguLTguJXguKPguLIg4LiI4Li04LiV4LiV4LmM4Lir4Liy4LiNDQor4LiI4Li04LiV4Lij4LiyIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4iOC4tOC4leC4o+C4siDguJjguJnguLLguIHguLnguKPguYDguKHguJjguLINCivguIjguLTguJXguKPguLIg4Lie4Lik4LiS4Li04Lin4LiX4Lix4LiN4LiN4Li5DQor4LiI4Li04LiV4Lij4LiyIOC5gOC4ouC4teC5iOC4ouC4oeC4ieC4p+C4tQ0KK+C4iOC4tOC4leC4o+C4siDguKfguLHguJLguJnguYDguKPguLfguK3guIfguIrguLHguKINCivguIjguLTguJXguKPguLIg4Liq4Lix4LiZ4LiX4LiZ4Li14Lit4LiZ4Li44LiB4Li54LilDQor4LiI4Li04LiV4Lij4LiyIOC4reC4seC4hOC4o+C4nuC4seC4meC4mOC5jA0KK+C4iOC4tOC4leC4o+C4suC4oOC4o+C4k+C5jCDguJnguLLguKHguIjguLHguIHguKMNCivguIjguLTguJXguKPguLUg4Lin4LiH4Lio4LmM4Lij4Lix4LiV4LiZ4Liy4Lin4Li04LiZDQor4LiI4Li04LiV4Lin4LiU4Li1IOC4p+C4tOC4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jA0KK+C4iOC4tOC4leC4reC4suC4o+C4teC4ouC5jCDguYDguIHguLXguKLguKPguJXguLTguIHguYjguK3guKrguLjguIINCivguIjguLTguJkg4Lit4Lii4Li54LmI4Liq4Lia4Liy4LiiDQor4LiI4Li04LiZ4LiU4LiyIOC5geC4geC5ieC4p+C4quC4geC4peC4k+C4tQ0KK+C4iOC4tOC4meC4lOC4siDguIjguLHguJnguJfguKPguYzguKDguLnguKHguLQNCivguIjguLTguJnguJTguLIg4LiJ4LmI4Liz4LiI4Li04LiV4Lij4LiK4Li34LmI4LiZDQor4LiI4Li04LiZ4LiU4LiyIOC5geC4i+C5iOC4q+C4peC4tQ0KK+C4iOC4tOC4meC4lOC4siDguJfguKPguLHguJ7guKLguYzguIjguLTguJnguJTguLLguKfguIfguKjguYwNCivguIjguLTguJnguJTguLIg4LiZ4Liy4Lih4LiX4Lit4LiHDQor4LiI4Li04LiZ4LiU4LiyIOC4m+C4seC4jeC4jeC4suC4p+C4iuC4tOC4o+C4iuC4seC4og0KK+C4iOC4tOC4meC4lOC4siDguJ7guLHguJnguJnguLHguJfguJjguLUNCivguIjguLTguJnguJTguLIg4Lih4Liy4LiB4Lie4Li44LmI4LihDQor4LiI4Li04LiZ4LiU4LiyIOC4pOC4geC4qeC5jOC4m+C4tOC4ouC4sOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4iOC4tOC4meC4lOC4siDguKfguLTguKfguLHguJLguJnguYzguJ7guJnguIrguLLguJXguLQNCivguIjguLTguJnguJTguLIg4Liq4Lin4LiZ4LiX4Lin4Li1DQor4LiI4Li04LiZ4LiU4LiyIOC5gOC4quC4suC4o+C5jOC5gOC4geC4tOC4lA0KK+C4iOC4tOC4meC4lOC4siDguK3guLHguKjguKfguYDguKHguJjguLLguJ7guKMNCivguIjguLTguJnguJTguLLguJ7guKMg4Lio4Lij4Li14Liq4Li44LiC4Liq4Lix4LiZ4LiV4LmMDQor4LiI4Li04LiZ4LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC5gOC4lOC4iuC4sOC4o+C4seC4geC4qeC5jOC4nuC4h+C4qeC5jA0KK+C4iOC4tOC4meC4lOC4suC4o+C4seC4leC4meC5jCDguK3guKHguKPguJXguLLguJnguJnguJfguYwNCivguIjguLTguJnguJXguJnguLIg4LiB4Lil4Li04LmI4LiZ4Lir4Lit4LihDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5gOC4geC4leC4uOC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4iOC4tOC4meC4leC4meC4siDguYDguILguYfguKHguJnguLLguIQNCivguIjguLTguJnguJXguJnguLIg4LiI4Lij4Lij4Lii4Liy4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4iOC4teC4o+C4sOC4nuC4seC4kuC4meC5jA0KK+C4iOC4tOC4meC4leC4meC4siDguIrguKHguKHguLLguKXguLUNCivguIjguLTguJnguJXguJnguLIg4LmA4LiK4Li04LiN4Lio4Li04Lij4Li0DQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5geC4i+C5iOC4reC5i+C4reC4hw0KK+C4iOC4tOC4meC4leC4meC4siDguYDguJTguYLguIrguJ7guKUNCivguIjguLTguJnguJXguJnguLIg4LiW4Liy4Lin4Lij4Lin4Li04Lin4Lix4LiS4LiZ4Lia4Li44LiV4LijDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5gOC4l+C4tOC4lOC4l+C4ueC4peC4geC4uOC4pQ0KK+C4iOC4tOC4meC4leC4meC4siDguJnguLLguITguJvguJnguITguLMNCivguIjguLTguJnguJXguJnguLIg4Lia4Li44LiN4Lib4Lij4Liw4Liq4LiH4LiE4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4m+C4suC4meC4geC4peC4suC4hw0KK+C4iOC4tOC4meC4leC4meC4siDguJ7guKPguKvguKHguJ7guLTguIrguLTguJUNCivguIjguLTguJnguJXguJnguLIg4Lie4Li44LmI4Lih4Lio4Li04Lij4Li0DQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4oeC4pOC4hOC4quC4meC4mOC4tA0KK+C4iOC4tOC4meC4leC4meC4siDguYLguKLguJjguLLguKrguKHguLjguJfguKMNCivguIjguLTguJnguJXguJnguLIg4Lil4LiU4Liy4Lin4Lix4Lil4Lii4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4p+C4h+C4qOC5jOC4iuC4tOC4meC4qOC4o+C4tQ0KK+C4iOC4tOC4meC4leC4meC4siDguKfguLTguIjguLTguJXguKPguKjguKPguLXguKfguLHguJLguJnguYwNCivguIjguLTguJnguJXguJnguLIg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4quC4luC4tOC4leC4o+C4suC4ouC4uOC4mA0KK+C4iOC4tOC4meC4leC4meC4siDguKrguLjguILguJfguKfguLUNCivguIjguLTguJnguJXguJnguLIg4LmA4Liq4LiZ4Liy4Lie4Lij4Lir4LihDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4q+C4suC5gOC4o+C4t+C4reC4meC4iuC4teC4ng0KK+C4iOC4tOC4meC4leC4meC4siDguK3guLLguKDguLLguJnguLHguJnguJfguYwNCivguIjguLTguJnguJXguJnguLLguI8g4LiZ4Li04LiV4Li04Liq4Liy4Lij4Lio4Li04Lil4Lib4LmMDQor4LiI4Li04LiZ4LiV4LmMIOC4hOC4h+C4l+C4reC4hw0KK+C4iOC4tOC4meC4suC4p+C4o+C4o+C4kyDguYDguK7guK3guKPguYzguYHguKHguJkNCivguIjguLTguKHguK7guIcg4LmB4LiL4LmI4LmA4Liu4LmI4LiHDQor4LiI4Li04Lij4LiK4Lix4LiiIOC4q+C4p+C4seC4h+C4quC4sOC4lOC4p+C4gQ0KK+C4iOC4tOC4o+C4meC4seC4meC4l+C5jCDguKHguLXguKfguLLguKrguJnguLINCivguIjguLTguKPguJ7guIfguKnguYwg4Lie4Lix4LiZ4LiY4LmC4LiE4LiV4Lij4LmMDQor4LiI4Li04Lij4Lie4LijIOC5gOC4nOC4t+C5iOC4reC4meC4meC5ieC4reC4og0KK+C4iOC4tOC4o+C4nuC4o+C4o+C4kyDguJnguLTguKPguLHguJXguLTguKjguLHguKINCivguIjguLTguKPguJ7guLHguJLguJnguYwg4Lij4Lix4LiV4LiZ4Lib4Li04LiT4LiR4LiwDQor4LiI4Li04Lij4Lig4Lix4LiX4LijIOC5gOC4l+C4p+C4tOC4meC4l+C4o+C4oOC4seC4geC4leC4tA0KK+C4iOC4tOC4o+C4oOC4siDguKHguKvguLLguJ7guKUNCivguIjguLTguKPguKLguLjguJfguJgg4Lit4LiU4Li04LmA4LiX4Lie4LiZ4Lij4Liy4LiH4LiB4Li54LijDQor4LiI4Li04Lij4Lin4Lij4Lij4LiTIOC4meC4tOC4oeC4tOC4leC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC5jA0KK+C4iOC4tOC4o+C4p+C4seC4iOC4meC5jCDguYDguIjguKPguLTguI3guKjguLHguIHguJTguLTguYwNCivguIjguLTguKPguKfguLHguJLguJnguYwg4LiX4Li44Lih4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Li04Lij4Lin4Lix4LiS4LiZ4LmMIOC4quC4uOC4meC4l+C4p+C4seC4kuC5guC4o+C4lOC4oQ0KK+C4iOC4tOC4o+C4qOC4seC4geC4lOC4tOC5jCDguIHguJnguIHguIHguLHguJPguJHguJ7guIfguKnguYwNCivguIjguLTguKPguKjguLHguIHguJTguLTguYwg4Lib4Lij4Liw4LmE4Lie4LiB4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LiI4Li04Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4seC4h+C4guC4mOC4meC4suC4meC4meC4l+C5jA0KK+C4iOC4tOC4o+C4sCDguIjguLXguKPguKDguLHguJfguKPguYwNCivguIjguLTguKPguLAg4Lio4Li04Lil4Lib4LiK4Liz4LiZ4Liy4LiNDQor4LiI4Li04Lij4Liw4LiZ4Lix4LiZ4LiV4LmMIOC5geC4lOC4h+C4nuC4seC4meC4mOC5jA0KK+C4iOC4tOC4o+C4sOC4nuC4oyDguIHguLjguKXguYDguJ7guIrguKPguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguIjguLTguKPguLDguJ7guLHguJnguJjguYwg4LiI4Li04LiZ4Lij4Lix4LiV4LiZ4LmMDQor4LiI4Li04Lij4Liw4Lig4LiyIOC4o+C4seC4leC4meC4suC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4iOC4tOC4o+C4sOC4p+C4seC4kuC4meC5jCDguYHguIvguYjguYLguIfguYnguKcNCivguIjguLTguKPguLDguKjguLHguIHguJTguLTguYwg4LmA4LiU4LmI4LiZ4LiU4Lin4LiHDQor4LiI4Li04Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4uOC4oOC4muC4seC4k+C4keC4tOC4leC4leC4sg0KK+C4iOC4tOC4o+C4seC4iuC4ouC4siDguYHguKLguYnguKHguKrguLjguKfguKPguKPguJMNCivguIjguLTguKPguLIg4LiB4Lih4Lil4Lin4Liy4LiX4Li04LiZDQor4LiI4Li04Lij4Liy4LiZ4LiZ4LiX4LmMIOC4qOC4o+C4teC4l+C4o+C4seC4nuC4ouC5jA0KK+C4iOC4tOC4o+C4suC4nuC4oyDguIrguLnguKrguIHguLjguKUNCivguIjguLTguKPguLLguJ7guKMg4Lib4Liy4LiZ4LmA4Lit4LiBDQor4LiI4Li04Lij4Liy4Lie4LijIOC5gOC4o+C5iOC4h+C4o+C4seC4lA0KK+C4iOC4tOC4o+C4suC4nuC4oyDguKrguLjguKfguLTguJnguJfguKfguIfguKjguYwNCivguIjguLTguKPguLLguJ7guLHguJnguJjguLjguYwg4Lin4Lix4LiS4LiZ4LiyDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4iOC4seC4meC4l+C4o+C4o+C4seC4qOC4oeC4tQ0KK+C4iOC4tOC4o+C4suC4oOC4o+C4k+C5jCDguJMg4LmE4LiK4LmC4LiiDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4muC4ueC4o+C4k+C4quC4tOC4h+C4hOC5jA0KK+C4iOC4tOC4o+C4suC4oOC4o+C4k+C5jCDguKLguLDguK3guJnguLHguJnguJXguYwNCivguIjguLTguKPguLLguKDguKPguJPguYwg4Lin4Li04LmC4Lij4LiI4LiZ4Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4quC4uOC4lOC4ouC4reC4lA0KK+C4iOC4tOC4o+C4suC4oOC4o+C4k+C5jCDguK3guLjguJrguKXguIrguLLguJXguLQNCivguIjguLTguKPguLLguKDguLIg4Lie4LmI4Lin4LiH4Liq4Liz4LmA4LiZ4Li14Lii4LiHDQor4LiI4Li04Lij4Liy4Lii4Li4IOC4hOC4uOC5ieC4oeC4m+C4tOC4leC4tA0KK+C4iOC4tOC4o+C4suC4o+C4seC4iiDguITguIrguKDguLnguJjguKMNCivguIjguLTguKPguLLguKfguKPguKPguJMg4LiB4Lix4LiZ4LiX4Liy4LiL4Liy4LinDQor4LiI4Li04Lij4Liy4Lin4Lij4Lij4LiTIOC4quC4oeC4nuC4h+C4qeC5jA0KK+C4iOC4tOC4o+C4suC4qOC4seC4geC4lOC4tOC5jCDguKHguLHguJnguJfguKPguLLguJnguJnguJfguYwNCivguIjguLTguKXguLLguKfguLHguKXguKLguYwg4LmA4Lir4Li14Lii4LiH4LmB4LiB4LmJ4LinDQor4LiI4Li04LmC4Lij4LiI4LiZ4LmMIOC5hOC4nuC4keC4ueC4o+C4ouC5jA0KK+C4iOC4teC4o+C4iuC4seC4oiDguJXguLHguIfguITguKPguLHguIoNCivguIjguLXguKPguJ7guKMg4LiE4Li44LmJ4Lih4LiE4Lij4Lit4LiH4LiY4Lij4Lij4LihDQor4LiI4Li14Lij4Lie4Lix4LiZ4LiY4LmMIOC4reC4tOC4meC4l+C5gOC4qg0KK+C4iOC4teC4o+C4p+C4o+C4o+C4kyDguYHguIjguYjguKHguILguLMNCivguIjguLXguKPguKfguLHguJLguJnguYwg4LmE4LiK4Lii4Lin4Li04LiX4Lii4LmM4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4ieC4peC4tOC4oeC5gOC4peC4tOC4qOC4m+C4seC4jeC4jeC4sg0KK+C4iOC4teC4o+C4sCDguJMg4Lie4Lix4LiX4Lil4Li44LiHDQor4LiI4Li14Lij4Liw4Lie4LijIOC4peC4suC4oOC4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4iOC4teC4o+C4sOC4p+C4o+C4o+C4kyDguJ7guKPguKHguYDguJ7guYfguIcNCivguIjguLXguKPguLDguKjguLHguIHguJTguLTguYwg4Lih4Liy4Lil4Lix4Lii4Lin4LiH4Lio4LmMDQor4LiI4Li14Lij4Liy4Lie4LijIOC4peC4tOC5ieC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4teC4o+C4suC4p+C4uOC4kuC4tCDguJfguKPguKfguIfguYHguKrguKfguIcNCivguIjguLXguYkg4Lir4LiHIOC5gOC4iOC4tOC5ieC4hw0KK+C4iOC4t+C4reC5gOC4l+C5ieC4hyDguYHguIvguYjguKXguLTguYnguKENCivguIjguLjguYjguIfguKvguKLguIcg4LmB4LiL4LmI4Lil4Li14LmJDQor4LiI4Li44LiR4LiyIOC5gOC4iuC4tOC4h+C4iuC4suC4jQ0KK+C4iOC4uOC4keC4suC4l+C4tOC4niDguKfguLjguJLguLTguJjguKPguKPguKHguKrguLjguIINCivguIjguLjguJHguLLguJfguLTguJ7guKLguYwg4Lie4Li44LiX4LiY4Lij4Lix4LiB4Lip4LiyDQor4LiI4Li44LiR4Liy4LiY4Li04LibIOC4ieC4tOC4oeC4geC4uOC4pQ0KK+C4iOC4uOC4keC4suC4oOC4o+C4k+C5jCDguJjguJnguKjguLHguIHguJTguLTguYzguYLguKrguKDguJMNCivguIjguLjguJHguLLguKHguLLguKgg4LmB4LiB4LmJ4Lin4Lih4LiH4LiE4LilDQor4LiI4Li44LiR4Liy4Lih4Liy4LioIOC4leC4meC4seC4meC4l+C5jOC4ouC4uOC4l+C4mOC4p+C4h+C4qOC5jA0KK+C4iOC4uOC4keC4suC4oeC4suC4qCDguJ7guIfguKnguYzguKjguLTguKPguLQNCivguIjguLjguJHguLLguKHguLLguKgg4Lin4Lix4LiK4Lij4LmA4Lih4LiG4Li04LiZ4LiX4Lij4LmMDQor4LiI4Li44LiR4Liy4Lih4Liy4LioIOC5gOC4q+C4peC4t+C4reC4reC4meC4seC4meC4leC5jA0KK+C4iOC4uOC4keC4suC4o+C4seC4leC4meC5jCDguIHguLTguJXguJXguLTguIHguLjguKXguKLguLjguJfguJjguYwNCivguIjguLjguJHguLLguKPguLHguJXguJnguYwg4LiQ4Li04LiV4Li04Lib4Li44LiN4LiN4LiyDQor4LiI4Li44LiR4Liy4Lij4Lix4LiV4LiZ4LmMIOC4nuC4peC4suC4pOC4l+C4mOC4tOC5jA0KK+C4iOC4uOC4keC4suC4o+C4seC4leC4meC5jCDguKfguLTguKXguLHguKLguIHguKPguKfguJQNCivguIjguLjguJHguLLguKXguLHguIHguKnguJPguYwg4LiW4Liy4Lin4Lij4LiI4Li04LiV4LijDQor4LiI4Li44LiV4Li04Lie4LilIOC5gOC4quC4leC4sOC4p+C4teC4o+C4sA0KK+C4iOC4uOC4meC4seC4meC4l+C5jCDguKfguIfguKjguYzguK3guLLguKPguLUNCivguIjguLjguKHguJ7guI8g4LiB4Liy4LiN4LiI4LiZ4LiB4Liz4LiY4LiZDQor4LiI4Li44Lih4Lie4LilIOC4iOC4seC4meC4l+C4o+C4qOC4o+C4teC5gOC4geC4qeC4ow0KK+C4iOC4uOC4oeC4nuC4pSDguYHguJnguKfguKrguIHguKUNCivguIjguLjguKHguJ7guKUg4Lil4Lix4Lih4Lie4Liy4Lig4Li04Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li44Lih4Lie4LilIOC4q+C4peC5iOC4oeC4l+C4reC4hw0KK+C4iOC4uOC5ieC4ouC4o+C5ieC4suC4hyDguYHguIvguYjguInguLHguYjguKcNCivguIjguLjguKPguLTguJnguJfguLTguJ7guKLguYwg4Liq4Lih4Lie4Lix4LiZ4LiY4LmM4Liq4Liy4LiX4Li04LiV4Lii4LmMDQor4LiI4Li44Lij4Li1IOC4oeC4h+C4hOC4peC4peC4sA0KK+C4iOC4uOC4o+C4teC4nuC4oyDguIrguLHguYnguKfguIrguLHguYnguJkNCivguIjguLjguKPguLXguKLguYwg4LiI4Lix4LmI4LiZ4LiI4Li44LmJ4LiiDQor4LiI4Li44Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC5gOC4hOC4o+C4t+C4reC4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4uOC4o+C4teC4o+C4seC4leC4meC5jCDguKfguIfguKjguYzguIjguLHguJnguJfguKPguLINCivguIjguLjguKUg4LiX4Li04Lie4Lin4Lij4LiZ4Li04LiBDQor4LiI4Li44Lil4Lie4LiH4Lip4LmMIOC4kyDguJnguYjguLLguJkNCivguIjguLjguKXguKjguLTguKPguLQg4Liq4Li44Lin4Lij4Lij4LiT4Lio4Li04Lij4Li0DQor4LiI4Li44Liq4Li04LiZIOC4quC4uOC4mOC4suC4iuC4seC4ouC4nuC4ow0KK+C4iOC4uOC4rOC4suC4nuC4oyDguILguKLguLHguJnguIHguLLguKPguJnguLLguKfguLUNCivguIjguLjguKzguLLguKPguLHguJXguJnguYwg4LmB4LiL4LmI4LmA4Lia4LmJDQor4LiI4Li44Lis4Liy4Lil4Lix4LiB4Lip4LiT4LmMIOC4meC4suC4h+C4quC4p+C4og0KK+C4iOC4uOC5hOC4oyDguIjguIfguJvguKPguLDguIrguLLguKfguLHguJLguJnguYwNCivguIjguLjguYTguKMg4Lie4Li04LmA4Lio4Lip4LiB4Li44LilDQor4LiI4Li44LmE4Lij4Lie4LijIOC4qOC4tOC4peC4m+C4nuC4h+C4qeC5jA0KK+C4iOC4uOC5hOC4o+C4o+C4seC4leC4meC5jCDguYDguJTguIrguYDguIjguKPguLTguI0NCivguIjguLjguYTguKPguKPguLHguJXguJnguYwg4Lih4Lir4Liy4Lit4Li04LiX4LiY4Li04LiU4LilDQor4LiI4Li44LmE4Lij4Lij4Lix4LiV4LiZ4LmMIOC4q+C4suC4jeC5hOC4iuC5guC4ouC4oOC4ueC4oeC4tA0KK+C4iOC4uOC5hOC4o+C4qOC4o+C4tSDguKHguLXguIHguLHguIfguKfguLLguKUNCivguIjguLkg4LmB4LiL4LmI4LmD4LiK4LmJDQor4LiI4Li54LmA4LiE4Li14LmJ4Lii4LiHIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4iOC5gOC4oyDguI3guLLguJPguLDguIrguLHguKINCivguIjguYDguKMg4Liq4Li04Lij4Li04Liq4Li44LiX4LiY4Li0DQor4LmA4LiI4LiU4LmH4LiIIOC4reC4o+C4o+C4luC4q+C4tOC4o+C4seC4jQ0KK+C5gOC4iOC4leC4meC4siDguKPguLHguIHguKnguYzguIHguLPguYDguJnguLTguJQNCivguYDguIjguJXguJnguYwg4Lie4Lij4Lir4Lih4LmA4LiI4Lij4Li04LiNDQor4LmA4LiI4LiZIOC4geC4suC4muC5geC4geC5ieC4pw0KK+C5gOC4iOC4mSDguK3guLTguJfguJjguLTguKDguLTguI3guYLguI0NCivguYDguIjguJnguIjguLTguKPguLIg4LiY4Lij4Lij4Lih4Lin4Lij4Lij4LiY4LiZ4LiwDQor4LmA4LiI4LiZ4LiZ4Li14LmIIOC4luC4suC4p+C4o+C4geC4uOC4pQ0KK+C5gOC4iOC4oeC4quC5jOC4reC4suC5gOC4mOC4reC4o+C5jCDguKLguK3guKPguYzguIoNCivguYDguIjguKPguLTguI0g4LmA4LiB4Lip4LiV4Lij4Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4LiI4Lij4Li04LiNIOC4hOC4uOC4p+C4tOC4meC4l+C4o+C5jOC4nuC4seC4meC4mOC4uOC5jA0KK+C5gOC4iOC4o+C4tOC4jSDguIjguLTguKPguLDguKrguJbguLTguJXguKLguYwNCivguYDguIjguKPguLTguI0g4LiK4Lix4Lii4LiB4Li04LiV4LiV4Li0DQor4LmA4LiI4Lij4Li04LiNIOC5geC4i+C5iOC4geC4p+C4lA0KK+C5gOC4iOC4o+C4tOC4jSDguJXguLHguYnguIfguJrguLjguI3guKTguJfguJjguLTguYzguKTguJfguLHguKINCivguYDguIjguKPguLTguI0g4LiX4Lit4LiH4Lih4LiyDQor4LmA4LiI4Lij4Li04LiNIOC4meC4p+C4p+C4seC4kuC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C5gOC4iOC4o+C4tOC4jSDguJrguLjguKnguJrguKPguKPguJMNCivguYDguIjguKPguLTguI0g4Lic4Liy4LiZ4Li04LilDQor4LmA4LiI4Lij4Li04LiNIOC5gOC4nuC4teC4ouC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C5gOC4iOC4o+C4tOC4jSDguYTguKHguJTguLTguJnguIvguLINCivguYDguIjguKPguLTguI0g4LmA4Lij4Li34Lit4LiH4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4LiI4Lij4Li04LiNIOC4p+C4quC4seC4meC4leC4ouC4suC4meC4seC4meC4l+C5jA0KK+C5gOC4iOC4o+C4tOC4jSDguKjguKPguLXguKfguIfguKjguYzguKnguLINCivguYDguIjguKPguLTguI0g4Liq4Lih4Lie4LijDQor4LmA4LiI4Lij4Li04LiNIOC4quC4uOC4guC4reC4suC4geC4suC4qA0KK+C5gOC4iOC4o+C4tOC4jSDguYLguKrguKrguLjguJQNCivguYDguIjguKPguLTguI0g4Lit4Li04LiZ4LiX4Lij4LmA4LiB4Lip4LiV4LijDQor4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiIOC4geC4suC4jeC4iOC4meC4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C5gOC4iOC4o+C4tOC4jeC4iuC4seC4oiDguJ7guLTguKPguLTguKLguLDguJvguKPguLLguIHguLLguKMNCivguYDguIjguKPguLTguI3guJ7guIfguKjguYwg4Liq4Li44LiC4LiC4Li1DQor4LmA4LiI4Lij4Li04LiN4Lij4Lix4LiB4Lip4LmMIOC4m+C4peC4t+C5ieC4oeC4iOC4tOC4leC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tSDguYLguIHguKHguKXguKTguJfguJjguLTguYwNCivguYDguIjguKPguLTguI3guKjguKPguLUg4Lig4Li54LmI4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LmA4LiI4Lij4Li04LiN4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4seC4meC4leC4iuC4ueC5gOC4p+C4quC4qOC4tOC4o+C4tA0KK+C5gOC4iOC4o+C4tOC4jeC4quC4uOC4giDguIHguLTguIjguYDguIjguKPguLTguI0NCivguYDguIjguKPguLXguKLguIcg4Lie4Li44LiB4LiB4Liw4Lih4Liy4LiZDQor4LmA4LiI4Lip4LiO4LiyIOC4iuC4meC4tOC4meC4l+C4o+C4peC4teC4peC4sg0KK+C5gOC4iOC4qeC4juC4siDguJrguLjguI3guKfguLTguIjguLTguJXguKMNCivguYDguIjguKnguI7guLIg4LmA4Lij4Li34Lit4LiH4Lir4Li04Lij4Lix4LiNDQor4LmA4LiI4Lip4LiO4LiyIOC5geC4quC4h+C4quC4uOC4nuC4o+C4o+C4kw0KK+C5gOC4iOC4qeC4juC5jCDguK3guJnguKPguKPguIbguKHguIfguITguKUNCivguYDguIjguK3guKPguLXguYjguYDguKLguJkg4Lii4Li54LmA4LiK4LiZDQor4LmA4LiI4Li04LihIOC5gOC4lOC4iuC4lOC4s+C4o+C4h+C4hOC5jA0KK+C5gOC4iOC4tOC5ieC4hyDguYDguIjguLTguYnguIfguK3guLTguIcNCivguYDguIjguLXguKLguJkg4LiE4LiK4Liy4LiK4Lix4LiiDQor4LmA4LiI4Li14Lii4LihIOC5hOC4iuC4ouC4o+C4suC4ig0KK+C5gOC4iOC4teC4ouC4oeC4iOC4tOC4lSDguYHguIHguYnguKfguJnguYnguK3guKINCivguYDguIjguLXguKLguKHguIjguLTguJXguKMg4LmA4LiK4Lii4LiK4Li34LmI4LiZ4LiI4Li04LiV4LijDQor4LmA4LiI4Li14Lii4Lih4LmD4LiIIOC4l+C4sOC4peC4t+C4rQ0KK+C5gOC4iOC4teC4ouC4o+C4meC4seC4oiDguKfguIfguKnguLLguIHguLLguKgNCivguYDguIjguLXguKLguYDguITguLXguKLguIHguYDguKXguYnguIcg4LmB4LiL4LmI4LiB4Lix4LiHDQor4LmA4LiI4Li34LitIOC4l+C4seC4muC4qOC4o+C4tQ0KK+C5gOC4iOC4t+C4rSDguKrguLjguKfguKPguKPguJPguYDguIjguKPguLTguI0NCivguYDguIjguLfguK3guYDguIjguKPguLTguI0g4Liq4LiW4Liy4Lib4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4LiI4LmH4LiH4LmA4LiB4Li14LmK4Lii4LiBIOC5geC4i+C5iOC4peC4teC5iQ0KK+C5geC4iOC5iOC4oSDguYDguIHguJXguLjguKrguLTguIfguKvguYzguJnguYnguK3guKINCivguYHguIjguYjguKHguIjguLHguJnguJfguKPguYwg4Lib4Lij4Liy4LiK4LiN4Liy4Lin4Li04Lij4Li04Lii4LiwDQor4LmB4LiI4LmI4Lih4Lio4Lij4Li1IOC4reC4tOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C5geC4iOC5i+C4pyDguIHguLXguKPguJXguLTguYTguIHguKPguJnguJnguJfguYwNCivguYPguIgg4LiI4Liy4LiV4Li44Lin4Li04LiX4Lii4LmMDQor4LmD4LiI4LiX4Li04Lie4Lii4LmMIOC4i+C4seC4hw0KK+C5g+C4iOC4reC4suC4o+C4tSDguKfguLTguKPguLTguKLguLLguJnguJnguJfguYwNCivguInguIHguLLguIgg4Lit4Liy4Lij4Li14LmA4Liq4Lin4LiVDQor4LiJ4Lil4Lin4LiiIOC4geC4seC4peC4ouC4suC4k+C4oeC4tOC4leC4ow0KK+C4ieC4peC4p+C4oiDguIjguLnguJHguLDguJ7guKUNCivguInguKXguKfguKIg4LiV4Lij4Li14LmA4Lie4LmH4LiK4Lij4LmMDQor4LiJ4Lil4Lin4LiiIOC4muC4uOC4jeC4oeC4sg0KK+C4ieC4peC4p+C4oiDguJ7guLHguJnguJjguYzguILguLDguKfguIfguKnguYwNCivguInguKXguKfguKIg4LmB4Lii4LmJ4Lih4LiB4Lil4Li14LiaDQor4LiJ4Lil4Lin4LiiIOC4qOC4o+C4teC4o+C4seC4leC4meC4sg0KK+C4ieC4peC4p+C4oiDguYHguKrguIfguK3guLjguJfguLHguKLguIjguLLguKHguKMNCivguInguKXguKfguKLguKXguLHguIHguKnguJPguYwg4LmA4Lij4Li34Lit4LiH4LiI4Li44LiV4Li04LmC4Lie4LiY4Li04LmM4Lie4Liy4LiZDQor4LiJ4Lil4Lit4LiHIOC4iOC4suC4o+C4uOC4nuC4seC4kuC4meC4geC4uOC4pQ0KK+C4ieC4peC4reC4hyDguJfguKPguLHguJ7guKLguYzguKrguLTguJkNCivguInguKXguK3guIcg4LmD4Lia4LmA4LiH4Li04LiZDQor4LiJ4Lil4Lit4LiHIOC4oeC4ueC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4ieC4peC4reC4hyDguKjguLLguKrguJXguKPguKrguLjguIINCivguInguKXguK3guIcg4Lit4LiI4Lil4Lie4LiH4Lio4LmMDQor4LiJ4Lil4Lit4LiH4Lie4LijIOC4qOC4seC4geC4lOC4tOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4ieC4peC4reC4oSDguYHguKrguIfguJnguKPguLTguJnguJfguKPguYwNCivguInguKXguLLguJQg4Lib4Liy4LiZ4LmA4LiI4Lij4Li04LiNDQor4LiJ4Lil4Liy4LiUIOC4reC4meC4seC4meC4leC4sg0KK+C4ieC4p+C4tSDguIjguLHguJnguJfguKPguILguLMNCivguInguKfguLUg4LmA4LiZ4Li34LmJ4Lit4LiZ4Li04LmI4Lih4LiW4Liy4Lin4LijDQor4LiJ4Lin4Li1IOC4p+C4seC4kuC4meC4p+C4tOC4geC4ouC5jOC4geC4tOC4iA0KK+C4ieC4p+C4tSDguK3guLLguKPguKLguLLguIfguIHguLnguKMNCivguInguKfguLXguKfguKPguKPguJMg4LiC4LiI4Lij4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LmMDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC5geC4iOC5ieC4h+C4oeC4k+C4tQ0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguJXguLHguJnguJXguLTguJ7guLTguKrguLTguJfguJjguLTguYwNCivguInguKfguLXguKfguKPguKPguJMg4LiZ4Lij4Liy4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC4m+C4suC4meC4lOC4sw0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguKDguLTguI3guI3guLLguJjguLTguJnguLHguJnguJfguYwNCivguInguKfguLXguKfguKPguKPguJMg4Lil4Liy4Lig4LmA4LiI4Li14Lii4LihDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC4qOC4o+C4quC4seC4h+C4guC5jOC4l+C4reC4hw0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguKrguLTguJfguJjguLTguJ7guKPguJjguJnguIHguLjguKUNCivguInguKfguLXguKfguKPguKPguJMg4LmA4Lir4Lil4LmI4Liy4Lie4Li04LiX4Lii4LiyDQor4LiJ4Lin4Li14LmE4LilIOC4o+C4reC4lOC4nuC4peC4reC4og0KK+C4ieC4reC5ieC4reC4mSDguJnguK3guIHguIHguKPguLDguYLguJfguIENCivguInguK3guYnguLLguJkg4Lin4Li44LiR4LiS4Li04LiB4Lij4Lij4Lih4Lij4Lix4LiB4Lip4LiyDQor4LiJ4Lix4LiQ4Lie4LilIOC4iOC4o+C4seC4quC4oeC4h+C4hOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4ieC4seC4leC4oyDguKDguLLguITguLLguIHguLTguIgNCivguInguLHguJXguKPguIrguLHguKIg4LmB4LiB4LmJ4Lin4LmA4LiB4LiV4Li4DQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguYDguJTguIrguLLguKjguLHguIHguJTguLTguYzguJ7guKPguKPguJMNCivguInguLHguJXguKPguIrguLHguKIg4LiY4Lij4Lij4Lih4Liq4Lin4Lii4LiU4Li1DQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC4nuC4iOC4meC4suC4geC4s+C4mOC4ow0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguYHguKLguYnguKHguYHguKrguIfguJfguK3guIcNCivguInguLHguJXguKPguIrguLHguKIg4Lin4Lix4Lil4Lil4Li04Liq4Li44LiVDQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC4quC4tOC4o+C4tOC4m+C4ueC4iuC4geC4sA0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguK3guLHguKjguKfguJvguJXguLTguJnguLLguITguLTguJnguJfguKPguYwNCivguInguLHguJXguKPguJfguLTguJ7guKLguYwg4Liq4Lin4Lix4Liq4LiU4Li04LmE4LiK4LiiDQor4LiJ4Lix4LiV4Lij4Lih4LiZ4LiyIOC4oeC4h+C4hOC4peC4geC4tOC4iOC4oOC4seC4geC4lOC4tQ0KK+C4ieC4seC4leC4o+C4siDguIrguLjguKHguKDguLnguJfguK3guIcNCivguInguLHguJXguKPguYTguIrguKIg4Lit4Liy4LiT4Liy4Lin4Lij4Lij4LiTDQor4LiJ4Lix4LiZ4LiX4LiZ4LiyIOC4iOC4seC4h+C4qOC4o+C4teC4ouC4p+C4h+C4qOC5jA0KK+C4ieC4seC4meC4l+C4meC4siDguJfguK3guIfguJjguLnguJsNCivguInguLHguJnguJfguJnguLIg4Lie4Li04Lih4Lil4Liq4Lih4Lia4Lix4LiV4Li0DQor4LiJ4Lix4LiZ4LiX4LiZ4LiyIOC4p+C4seC4iuC4o+C5gOC4quC4p+C4tQ0KK+C4ieC4seC4meC4l+C4meC4siDguKvguIfguKnguYzguYDguInguLTguJTguInguLHguJnguJfguYwNCivguInguLHguJnguJfguYzguKrguLTguJnguLUg4LiX4Li04Lie4Lio4LijDQor4LiJ4Lix4LmI4LiZ4LiB4Li04LmK4LihIOC5geC4i+C5iOC4ieC4seC5iOC4mQ0KK+C4ieC4suC4oiDguKrguLTguIfguKvguYzguYPguKvguI3guYgNCivguInguLTguJnguIHguLXguYnguJ/guK3guIcg4LmB4LiL4LmI4LiJ4Li04LiZDQor4LmA4LiJ4LiZ4Li14Lii4LiZIOC5gOC4quC4meC4p+C4h+C4qeC5jA0KK+C5gOC4ieC4peC4oiDguKrguKHguLTguJXguLDguKHguLLguJkNCivguYDguInguKXguLIg4LiI4Li04Lij4Liw4LiK4Li14Lin4Liw4LiZ4Lix4LiZ4LiX4LmMDQor4LmA4LiJ4Lil4LiyIOC5gOC4m+C4teC5iuC4ouC4sOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C5gOC4ieC4peC4siDguKfguLXguKPguLDguIHguLjguKUNCivguYDguInguKXguLLguKjguKPguLUg4LiX4Lij4Lij4Lie4Lin4Liy4LiX4Li04LiZDQor4LmA4LiJ4Lil4Li04LihIOC4guC4s+C4m+C4seC4jeC4jeC4sg0KK+C5gOC4ieC4peC4tOC4oSDguYHguIjguYjguKHguIjguLPguKPguLHguKoNCivguYDguInguKXguLTguKEg4LiU4Li14Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LmA4LiJ4Lil4Li04LihIOC4mOC4suC4lOC4suC4m+C4o+C4sOC4lOC4seC4muC4quC4geC4uOC4pQ0KK+C5gOC4ieC4peC4tOC4oSDguJvguLHguI3guI3guLINCivguYDguInguKXguLTguKEg4Lie4Li04Liq4Li04Lip4LiQ4LmM4Liq4Lix4LiH4LiG4LiB4Liy4LijDQor4LmA4LiJ4Lil4Li04LihIOC4ouC4h+C4hOC5jOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4og0KK+C5gOC4ieC4peC4tOC4oSDguKXguLfguK3guKrguLHguKHguJ7guLHguJnguJjguYwNCivguYDguInguKXguLTguKEg4Lio4Li04Lij4Li04Lin4LiH4Lio4LmMDQor4LmA4LiJ4Lil4Li04LihIOC4quC4uOC4guC4uOC4oeC4nuC4suC4meC4tOC4ig0KK+C5gOC4ieC4peC4tOC4oSDguK3guIfguITguYzguKjguLjguKXguLUNCivguYDguInguKXguLTguKHguILguKfguLHguI0g4LiK4Li54LiE4LizDQor4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiIOC4iOC4seC4meC4l+C4o+C4p+C4tOC4o+C4uOC4iA0KK+C5gOC4ieC4peC4tOC4oeC4iuC4seC4oiDguJfguKPguLHguJ7guKLguYzguKrguK3guJkNCivguYDguInguKXguLTguKHguIrguLHguKIg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiIOC4qOC4o+C4teC4reC4tOC4meC4l+C4meC4meC4l+C5jA0KK+C5gOC4ieC4peC4tOC4oeC4iuC4seC4oiDguK3guLjguJTguKHguKPguLHguJXguJnguYwNCivguYDguInguKXguLTguKHguJ7guIfguKnguYwg4Lih4Lir4Liy4Lin4Liy4LiT4Li04LiK4Lii4LmM4Lin4LiH4Lio4LmMDQor4LmA4LiJ4Lil4Li04Lih4Lie4LijIOC5gOC4p+C4iuC5gOC4ieC4peC4tOC4oeC4iOC4tOC4leC4ow0KK+C5gOC4ieC4peC4tOC4oeC4nuC4pSDguJDguLTguJXguLTguJnguLHguJnguJfguYzguJbguLLguKfguKMNCivguYDguInguKXguLTguKHguJ7guKUg4Lie4Liy4LiZ4Li04LiK4Lii4Liy4LiZ4Li44Lin4Lix4LiS4LiZ4LmMDQor4LmA4LiJ4Lil4Li04Lih4Lie4LilIOC4quC4o+C5ieC4suC4h+C4quC4oeC4quC4uOC4guC4quC4geC4uOC4pQ0KK+C5gOC4ieC4peC4tOC4oeC4oeC4suC4lSDguKXguLTguKHguJvguLTguIrguLHguKLguJ7guLLguJnguLTguIoNCivguYDguInguKXguLTguKHguKfguLjguJgg4LiL4Li34LmI4Lit4LiV4Lij4LiHDQor4LmA4LiJ4Lil4Li04Lih4Lio4Lij4Li1IOC5gOC4l+C4teC4ouC4oeC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C5gOC4ieC4peC4tOC4oeC4qOC4o+C4tSDguKfguLTguKfguLHguJLguJnguYzguKfguLLguJnguLTguIrguIHguLjguKUNCivguYDguInguKXguLTguKHguKjguLHguIHguJTguLTguYwg4LiE4LiH4LmA4Lij4Li34Lit4LiH4Lio4Lij4Li1DQor4LmA4LiJ4Lil4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4o+C4sOC4muC4tOC4peC4p+C4h+C4qOC5jA0KK+C5gOC4ieC4peC4tOC4oeC4reC4seC4keC4kuC5jCDguIHguYnguK3guJnguJfguK3guIcNCivguYDguInguKXguLTguKHguYDguIHguLXguKLguKPguJXguLQg4Liq4Lix4LiZ4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmMDQor4LmA4LiJ4Lil4Li14Lii4LinIOC4geC4peC4tOC5iOC4meC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C5gOC4ieC4peC4teC4ouC4pyDguIjguIfguJvguKPguLDguKrguKHguKrguLTguJkNCivguYDguInguKXguLXguKLguKcg4LmB4LiL4LmI4LmA4LiV4Li14LiiDQor4LmA4LiJ4Lil4Li14Lii4LinIOC5hOC4l+C4ouC5gOC4iOC4t+C4rQ0KK+C5gOC4ieC4peC4teC4ouC4pyDguJvguKPguLbguIHguKnguLINCivguYDguInguKXguLXguKLguKcg4LmA4Lie4LiK4Lij4LiC4LizDQor4LmA4LiJ4Lil4Li14Lii4LinIOC4o+C4reC4lOC5gOC4lOC4ig0KK+C5gOC4ieC4peC4teC4ouC4pyDguKjguKPguLXguKvguLLguKfguIfguKjguYwNCivguYDguInguKXguLXguKLguKcg4LmB4Liq4LiH4LiB4Li04LiV4LiV4Li04LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LmA4LiJ4Lil4Li14Lii4LinIOC5gOC4reC4teC5iOC4ouC4oeC4ouC4reC4lOC4quC4tOC4mQ0KK+C5gOC4ieC4p+C4teC4ouC4mSDguITguLPguYDguJnguJXguKMNCivguYDguInguLTguJTguYLguInguKEg4Liq4Li44LiB4LiB4Liq4Lix4LiH4LiE4LmMDQor4LmB4LiJ4Lil4LmJ4LihIOC4geC4o+C4sOC4luC4tOC4meC4l+C4reC4hw0KK+C5geC4ieC4peC5ieC4oSDguYLguIrguJXguLTguIrguYjguKfguIcNCivguYHguInguKXguYnguKEg4Lic4Li54LiB4Lie4Lix4LiZ4LiY4LmMDQor4LmB4LiJ4Lil4LmJ4LihIOC4p+C4tOC4iuC4uOC4m+C4o+C4sOC4oOC4sg0KK+C5geC4ieC4peC5ieC4oSDguK3guLjguKjguLjguKDguKPguLHguJXguJnguYwNCivguYLguInguKHguKLguIfguITguYwg4LiZ4Liy4LiE4LiZ4Li24LiBDQor4LmC4LiJ4Lil4LiHIOC4geC4peC4seC5iOC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C5hOC4ieC4mSDguJ7guKXguLXguILguLHguJnguJjguYwNCivguYTguInguYTguKUg4LiB4Li44Lil4Lig4Lix4LiX4Lij4LmM4LmB4Liq4LiH4LiX4Lit4LiHDQor4LiKIOC4p+C4o+C4seC4leC4meC5jA0KK+C4iuC4jeC4suC4meC4tSDguJXguKPguLXguJfguLTguJ7guKLguLLguIfguIHguLnguKMNCivguIrguI7guLLguJ7guKMg4Lih4Lix4LiZ4Lii4Liy4LiB4Li44LilDQor4LiK4LiO4Liy4Lin4Lix4Lil4Lii4LmMIOC4o+C4t+C5iOC4meC4p+C4h+C4qeC4sg0KK+C4iuC4k+C4tOC4leC4siDguITguIfguKrguLLguKLguJfguK3guIfguITguLMNCivguIrguJTguIrguYnguK3guKIg4Lie4Lin4LiH4Lij4Lit4LiUDQor4LiK4LiZ4LiB4Lie4LijIOC5gOC4o+C4t+C4reC4h+C4geC4tOC4iOC4m+C4geC4o+C4k+C5jA0KK+C4iuC4meC4oeC5jOC4meC4tOC4oOC4siDguJnguLLguITguKLguYnguK3guKINCivguIrguJnguLAg4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4LiK4LiZ4LiwIOC5gOC4l+C4nuC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4iuC4meC4sCDguYDguKLguLXguYjguKLguIfguIHguKHguKXguKrguLTguIfguKvguYwNCivguIrguJnguLAg4Lir4LiZ4Li44LiZ4Lig4Lix4LiB4LiU4Li1DQor4LiK4LiZ4Liw4LiK4Lix4LiiIOC4oOC4ueC5iOC4oeC4teC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4meC4seC4iuC4k+C5jCDguIjguLHguJnguJfguKPguYDguIjguKPguLTguI0NCivguIrguJnguLHguJXguJbguYwg4LiB4Li04LiV4LiV4Li04Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4LiK4LiZ4Liy4LiN4Lin4Lix4LiVIOC4iOC4tOC4leC4o+C5jOC4oOC4tOC4o+C4oeC4ouC5jOC4qOC4o+C4tQ0KK+C4iuC4meC4suC4nuC4oyDguIrguLnguJfguLTguKENCivguIrguJnguLTguIHguLLguJnguJXguYwg4LiX4Liy4LiE4Liz4Lih4LiyDQor4LiK4LiZ4Li04LiU4LiyIOC4hOC4o+C4uOC4keC4l+C4reC4hw0KK+C4iuC4meC4tOC4lOC4siDguJXguLLguJPguLDguKrguLjguJUNCivguIrguJnguLTguJTguLIg4LmC4Lig4LmE4LiE4Lio4Lin4Lij4Lij4Lii4LmMDQor4LiK4LiZ4Li04LiU4LiyIOC4qOC4tOC4o+C4tOC4o+C4seC4leC4meC4geC4uOC4pQ0KK+C4iuC4meC4tOC4lSDguKfguLTguJfguKLguLLguIHguKPguYLguIHguKHguKUNCivguIrguJnguLTguJnguJfguKMg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmM4Lig4Li04LiN4LmC4LiNDQor4LiK4LiZ4Li04LiZ4LiX4Lij4LmMIOC4iuC4teC4p+C5guC4iuC4hOC4iuC4seC4og0KK+C4iuC4meC4tOC4meC4l+C4o+C5jCDguJvguLTguKLguLDguKfguLLguJPguLTguIrguYDguKrguJbguLXguKLguKMNCivguIrguJnguLTguJnguJfguKPguYwg4Lin4Li04LmA4Lio4Lip4LiU4Lix4LmJ4LiZDQor4LiK4LiZ4Li04LiZ4LiX4Lij4LmMIOC4reC4seC4qOC4p+C4mOC5gOC4o+C4qA0KK+C4iuC4meC4uOC4p+C4o+C4o+C4kyDguJXguKPguLXguYDguIHguKnguKENCivguIrguKEg4LmB4LiL4LmI4LiV4Lix4LiZDQor4LiK4LihIOC4quC4teC5geC4iOC5iOC4oQ0KK+C4iuC4oeC4meC4suC4hCDguYDguIjguKPguLTguI3guIHguLjguKUNCivguIrguKHguJ7guKUg4Liq4Li04Lij4Li04Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmM4LmA4LiI4Lij4Li04LiNDQor4LiK4Lih4Lie4Li54LiZ4Li44LiXIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4iuC4oeC4oOC4uSDguIrguKHguKDguLnguJnguLjguIoNCivguIrguKHguKDguLnguYgg4Lie4Lij4Lih4Lie4Li54LiZ4Lie4Liw4LmA4LiZ4LiyDQor4LiK4Lih4Lix4Lii4Lie4LijIOC4hOC4s+C4q+C4reC4oeC4geC4uOC4pQ0KK+C4iuC4ouC4l+C4seC4lSDguKPguJXguLTguKPguKHguKLguYzguJ7guLHguJnguJjguYwNCivguIrguKLguLHguJnguJXguYwg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4LiK4Lii4Liy4Lin4Li44LiYIOC4l+C4tOC4p+C5gOC4quC4luC4teC4ouC4ow0KK+C4iuC4o+C4seC4leC4meC5jCDguJXguYjguK3guK3guYjguK3guJkNCivguIrguKPguLTguJnguJfguKPguYwg4LiB4LiZ4LiB4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lin4LiH4Lio4LmMDQor4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4muC4seC4p+C4reC5iOC4reC4mQ0KK+C4iuC4o+C4tOC4meC4l+C4o+C5jCDguKrguKfguJnguYDguIjguKPguLTguI0NCivguIrguKTguJfguJjguLTguYwg4Lih4Li14Liq4Li04LiX4LiY4Li04LmMDQor4LiK4Lil4LiU4LiyIOC4m+C4tOC4ouC4k+C4o+C4h+C4hOC5jOC5guC4o+C4iOC4meC5jA0KK+C4iuC4peC4mOC4meC4seC4meC4l+C5jCDguYDguK3guLfguYnguK3guJvguKPguLDguIHguLTguIjguKrguLTguKPguLQNCivguIrguKXguJjguLTguIrguLIg4LmC4LiK4LiV4Li04LiK4LmI4Lin4LiHDQor4LiK4Lil4LiY4Li04LiK4LiyIOC4oeC4q+C4suC4geC4tOC4iOC4qOC4tOC4o+C4tA0KK+C4iuC4peC4mOC4tOC4lOC4siDguJjguKPguKPguKHguKfguLHguJLguJnguYzguKfguLTguKHguKUNCivguIrguKXguJnguLTguIrguLIg4LmA4LiI4Lij4Li04LiN4Liq4Lih4Lia4Lix4LiV4Li0DQor4LiK4Lil4Lil4LiU4LiyIOC4iOC4h+C4m+C4leC4tOC4ouC4seC4leC4leC5jA0KK+C4iuC4peC4peC4lOC4siDguKjguLTguKPguLTguJ7guIfguKjguYzguKrguLHguKHguJ7guLHguJnguJjguYwNCivguIrguKXguK0g4LiB4Lij4Li14LiK4Lin4LiUDQor4LiK4Lil4LitIOC4h+C4suC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4iuC4peC4rSDguYHguIvguYjguYDguKXguYnguLINCivguIrguKXguK0g4LiZ4Li04LmI4Lih4LiX4Lit4LiHDQor4LiK4Lil4LitIOC4nuC4h+C4qeC5jOC4oOC4oeC4ow0KK+C4iuC4peC4rSDguKHguKvguLLguK3guKHguKPguYDguKXguLTguKgNCivguIrguKXguK0g4Lin4Li04Lih4Li54Lil4LiK4Liy4LiV4Li0DQor4LiK4Lil4LitIOC4quC4uOC4iOC4tOC4leC4mOC4o+C4o+C4oeC4p+C4h+C4qOC5jA0KK+C4iuC4peC4rSDguK3guLjguJvguLDguYDguJTguLXguKINCivguIrguKXguLHguIog4LmA4LiX4Lie4Lih4LmC4LiZ4LiX4Lix4Lii4Liq4LiB4Li44LilDQor4LiK4Lil4Lix4Lih4Lie4LijIOC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oeC4iOC4seC4lA0KK+C4iuC4peC4suC4oOC4o+C4k+C5jCDguKrguJbguLLguJ7guKPguJjguJnguLLguKrguLTguJkNCivguIrguKXguLTguJTguLIg4LiE4LiH4Lij4Lix4LiV4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiK4Lil4Li04LiVIOC4guC4teC4leC4leC4sOC4quC4seC4h+C4hOC4sA0KK+C4iuC4peC4tOC4lSDguJfguK3guIfguKHguJPguLUNCivguIrguKXguLTguJUg4Lil4Li04LmJ4Lih4Lij4Liq4Liq4Li44LiE4LiZ4LiY4LmMDQor4LiK4Lil4Li04LiVIOC4reC4suC4iuC4suC5hOC4meC4ouC4geC4uOC4pQ0KK+C4iuC4peC4tOC4meC4l+C4oyDguK3guJnguLjguJXguKPguJ7guKMNCivguIrguKXguLXguJ7guKMg4Lij4Lix4LiB4Lie4Li34LiKDQor4LiK4Lin4LiK4Liy4LiV4Li0IOC5g+C4iOC5gOC4nuC5h+C4iuC4ow0KK+C4iuC4p+C4mSDguYLguIrguJXguLTguIjguLLguKPguLjguYTguIrguKLguLINCivguIrguKfguJkg4Lie4LiX4LiY4LmC4LiB4Liq4Lix4LiiDQor4LiK4Lin4LiZIOC4qOC4tOC4o+C4tOC4geC4tOC4iA0KK+C4iuC4p+C4meC4iuC4oSDguIjguLHguJnguJfguKPguLDguYDguJvguLLguKPguKLguLANCivguIrguKfguJnguIrguLfguYjguJkg4LiB4Lij4Liy4Lie4LiH4Lip4LmMDQor4LiK4Lin4LiZ4Lie4Li04LioIOC4h+C4suC4oeC4guC4sw0KK+C4iuC4p+C4meC4nuC4tOC4qCDguYDguJnguKHguLUNCivguIrguKfguJnguJ7guLTguKgg4Lin4Li04Lij4Lii4Lio4Li04Lij4Li0DQor4LiK4Lin4LiZ4Lix4LiK4Lii4LmMIOC4iOC4o+C4o+C4ouC4suC4qOC4seC4geC4lOC4tOC5jA0KK+C4iuC4p+C4o+C4seC4leC4meC5jCDguJrguKfguJrguJfguK3guIcNCivguIrguKfguKXguLTguJUg4LmA4LiB4LiV4Li44Lie4LilDQor4LiK4Lin4Lil4Li04LiVIOC4iOC4seC4meC4l+C4o+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4iuC4p+C4peC4tOC4lSDguIrguKfguKXguLTguJXguKrguLjguJnguJfguKMNCivguIrguKfguKXguLTguJUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiK4Lin4Lil4Li04LiVIOC4l+C4o+C4h+C4qOC4o+C4iuC4seC4og0KK+C4iuC4p+C4peC4tOC4lSDguJnguLTguJjguLLguIHguKMNCivguIrguKfguKXguLTguJUg4Lib4Lix4LiN4LiN4Liy4Liq4LiH4LiE4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4nuC4uOC4meC4l+C4tOC4geC4suC4nuC4seC4l+C4mOC5jA0KK+C4iuC4p+C4peC4tOC4lSDguKHguLXguYHguIHguYnguKfguJnguYnguK3guKINCivguIrguKfguKXguLTguJUg4Lil4Li04Lih4Lib4Li04Lic4Lil4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4p+C4tOC4o+C4tOC4ouC4sOC4reC4suC4oOC4o+C4k+C5jA0KK+C4iuC4p+C4peC4tOC4lSDguKrguYjguKfguJnguYDguKjguKPguKnguJDguLINCivguIrguKfguKXguLTguJUg4LmA4Liq4LiZ4Liy4LiC4Lix4LiZ4LiY4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4reC5iOC4reC4meC5gOC4oeC4t+C4reC4hw0KK+C4iuC4p+C4peC4tSDguJvguLHguI3guIjguLLguIfguITguYzguYDguIjguKPguLTguI0NCivguIrguKfguLLguKUg4LmA4LiC4Lih4Liw4Lil4Li04Lil4Li04LiVDQor4LiK4Lin4Liy4Lil4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4iuC4teC4ng0KK+C4iuC5iOC4p+C4hyDguIHguLjguKXguKfguKPguKPguJPguKfguLTguIjguLTguJXguKMNCivguIrguYjguKfguIfguYLguIrguIQg4LiX4Lit4LiH4Lit4Lii4Li54LmIDQor4LiK4LmJ4Lin4LiZIOC4muC4seC4p+C4l+C4reC4hw0KK+C4iuC4reC4miDguITguLjguYnguKHguKrguJXguLQNCivguIrguK3guJog4Lie4Lij4Lir4Lih4LmA4LiU4LiKDQor4LiK4Lit4Lia4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4quC5h+C4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iuC4reC4uOC5iOC4oSDguYTguKfguJfguKLguLLguITguKENCivguIrguYjguK0g4Lit4Lii4Li54LmI4Lia4Lix4LinDQor4LiK4LmI4Lit4LiX4Li04Lie4Lii4LmMIOC5gOC4l+C4qOC4m+C4o+C4sOC4quC4h+C4hOC5jA0KK+C4iuC5iOC4reC4l+C4tOC4nuC4ouC5jCDguKvguLTguKPguLHguI3guKfguIfguKnguYwNCivguIrguYjguK3guKXguLHguJTguJTguLIg4LiZ4LiZ4LiX4Lin4Lix4LiS4LiZ4LmMDQor4LiK4LmJ4Lit4LiH4Liu4Lin4LiiIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4o+C4seC4leC4meC4iuC4seC4og0KK+C4iuC5ieC4reC4ruC4seC5ieC4pyDguKrguKHguKjguLTguKPguLTguKfguLHguJLguJnguLINCivguIrguLDguKXguK0g4Lio4Lij4Li14LmA4LiH4Li04LiZ4Lii4Lin4LiHDQor4LiK4Liw4LmA4Lil4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4iuC4t+C5ieC4reC4reC4o+C4p+C4o+C4o+C4kw0KK+C4iuC4sOC5guC4reC4lCDguJfguKPguLHguJ7guKLguYzguIHguKXguYnguLINCivguIrguLHguYnguIfguIHguLTguKEg4LmB4LiL4LmI4LmC4LiBDQor4LiK4Lix4LiK4LiK4LiZ4LiBIOC4qOC4uOC4oOC4nOC4peC4luC4suC4p+C4ow0KK+C4iuC4seC4iuC4iuC4seC4oiDguJrguLjguI3guKLguLfguJnguKLguIfguKrguIHguLjguKUNCivguIrguLHguIrguIrguLLguKIg4Lin4LiH4Lio4LmM4Liq4LiH4Lin4LiZDQor4LiK4Lix4LiK4Lie4LiH4Lip4LmMIOC5guC4q+C4leC4sOC4o+C4sOC4oOC4p+C4suC4meC4meC4l+C5jA0KK+C4iuC4seC4iuC4p+C4o+C4o+C4kyDguKjguLTguKPguLTguJrguKPguKPguIjguIfguKjguLHguIHguJTguLTguYwNCivguIrguLHguIrguKfguLLguKUg4LiK4Li54LiK4Lix4Lii4Lie4Li04LmA4LiK4LiQDQor4LiK4Lix4LiK4Lin4Liy4LilIOC4m+C4tOC4ouC4sOC4m+C4o+C4sOC4nuC4seC4meC4mOC5jOC4nuC4h+C4qeC5jA0KK+C4iuC4seC4iuC4p+C4suC4pSDguKfguLTguKPguLTguKLguLDguYDguIjguKPguLTguI3guKHguIfguITguKUNCivguIrguLHguIrguKfguLLguKUg4LmA4Lit4Li14LmI4Lii4Lih4Lie4Li04Lig4Lix4LiB4LiU4Li04LmMDQor4LiK4Lix4LiK4Lin4Liy4Lil4Lii4LmMIOC5gOC4iOC4o+C4tOC4jeC4quC4p+C4o+C4o+C4ouC4sg0KK+C4iuC4seC4iuC4p+C4suC4peC4ouC5jCDguYDguJXguYfguKHguKTguJfguJjguLTguKfguIfguKjguYwNCivguIrguLHguIrguKfguLLguKXguKLguYwg4Lib4Liy4Lii4Liw4LiZ4Lix4LiZ4LiX4Lii4LmMDQor4LiK4Lix4LiK4Lin4Liy4Lil4Lii4LmMIOC5gOC4oeC4huC4ieC4suC4og0KK+C4iuC4seC4iuC4p+C4suC4peC4ouC5jCDguKfguLjguJLguLTguJvguKPguLDguYDguKrguKPguLTguJANCivguIrguLHguIrguKfguLLguKXguKLguYwg4Liq4Li44Lin4Li04Lij4Li04Lii4Liw4LmE4Lie4Lio4Liy4LilDQor4LiK4Lix4LiK4Liq4Lih4LijIOC4iuC4uOC4meC4q+C4iuC4seC4og0KK+C4iuC4seC4lOC4iuC4seC4oiDguJvguLLguJnguJnguLLguIQNCivguIrguLHguYnguJkg4LiI4Li54LiZ4LmJ4Lit4LiiDQor4LiK4Lix4LmJ4LiZIOC4pOC4l+C4mOC4tOC5jOC4q+C4tOC4o+C4seC4jQ0KK+C4iuC4seC4oiDguILguKHguLTguYnguJnguJzguIcNCivguIrguLHguKIg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LiK4Lix4LiiIOC4oeC4meC4seC4quC4qOC4tOC4o+C4tOC5gOC4nuC5h+C4jQ0KK+C4iuC4seC4oiDguKrguLjguKPguKrguLTguJfguJjguLTguYwNCivguIrguLHguKLguIHguLTguIgg4Lit4Li44LiX4Lix4Lii4Lin4Lix4LiT4LiZ4LmMDQor4LiK4Lix4Lii4LiK4LiZ4LiwIOC4nuC4seC4meC4mOC4uOC5jOC4oOC4seC4geC4lOC4teC4lOC4tOC4quC4geC4uOC4pQ0KK+C4iuC4seC4ouC4iuC4suC4jSDguIjguLnguIfguYDguIjguKPguLTguI3guIjguLTguJXguJXguYwNCivguIrguLHguKLguIrguLLguI0g4Liq4Li04Lij4Li04Lih4LiH4LiE4Lil4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4LiK4Lix4Lii4LiT4Lij4LiH4LiE4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4quC4p+C5iOC4suC4hw0KK+C4iuC4seC4ouC4k+C4o+C4h+C4hOC5jCDguJjguJnguLLguKrguKHguJrguLnguKPguJPguYzguJzguKUNCivguIrguLHguKLguJPguKPguIfguITguYwg4LmA4Lih4LiY4Li14Lij4Liw4Lin4Lix4LiS4LiZ4LmMDQor4LiK4Lix4Lii4LiT4Lij4LiH4LiE4LmMIOC4quC4meC4mOC4tOC4m+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4iuC4seC4ouC4lOC4tOC4qeC4kOC5jCDguKLguIfguJrguKPguKPguYDguIjguLTguJQNCivguIrguLHguKLguJjguKfguLHguIog4LiZ4Liy4LiE4Liw4LiZ4LiE4LijDQor4LiK4Lix4Lii4LiZ4Lix4LiZ4LiX4LmMIOC4p+C4tOC4quC4ueC4leC4o+C5gOC4o+C4t+C4reC4h+C5gOC4lOC4ig0KK+C4iuC4seC4ouC4m+C4tOC4leC4tCDguKHguYjguKfguIfguIHguLnguKUNCivguIrguLHguKLguJ7guIjguJnguYwg4LiJ4Lix4LiV4Lij4Lio4Lij4Li14LiZ4Lie4LiE4Li44LiTDQor4LiK4Lix4Lii4Lie4LijIOC5hOC4iuC4ouC4p+C4uOC4kuC4tOC5gOC4quC4o+C4tQ0KK+C4iuC4seC4ouC4nuC4oyDguJvguKPguLDguYDguKrguKPguLTguJDguIHguLHguJnguKLguYwNCivguIrguLHguKLguJ7guKMg4Lij4Lix4LiV4LiZ4LmA4Lih4LiY4Liy4LiZ4LiZ4LiX4LmMDQor4LiK4Lix4Lii4Lie4LijIOC4quC4oeC5g+C4iOC4meC4tuC4gQ0KK+C4iuC4seC4ouC4nuC4pOC4geC4qeC5jCDguYHguIHguYnguKfguIHguKHguKUNCivguIrguLHguKLguJ7guLHguJnguJjguLjguYwg4Lib4Lij4Liw4Lii4Li54Lij4Lin4Lij4Lij4LiTDQor4LiK4Lix4Lii4Lih4LiH4LiE4LilIOC4ouC4tOC5iOC4h+C4ouC4oeC4quC4suC4ow0KK+C4iuC4seC4ouC4ouC4h+C4hOC5jCDguIHguLLguI3guIjguJnguIbguLLguKMNCivguIrguLHguKLguKLguIfguITguYwg4Lio4Lij4Li14Lit4Lij4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4LiK4Lix4Lii4Lii4LioIOC4iuC4tOC4meC5guC4iuC4leC4tOC4geC4ow0KK+C4iuC4seC4ouC4ouC4qCDguJ7guIfguKjguYzguJ7guLnguKXguJfguK3guIcNCivguIrguLHguKLguKLguKgg4Liq4Li04LiZ4LiY4Li44Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4LiK4Lix4Lii4Lii4LiwIOC4oeC4teC4quC4geC4uOC4pQ0KK+C4iuC4seC4ouC4ouC4seC4meC4leC5jCDguJrguLHguKfguK3guLjguYTguKMNCivguIrguLHguKLguKLguLIg4Lig4Li04LiN4LmC4LiiDQor4LiK4Lix4Lii4Lii4Li44LiX4LiYIOC4iuC4seC4ouC4quC4uOC4o+C4tOC4meC4l+C4o+C5jA0KK+C4iuC4seC4ouC4ouC4uOC4l+C4mCDguJvguLTguJXguLTguJvguLLguKXguLANCivguIrguLHguKLguKLguLjguJfguJgg4Lin4Lix4LiZ4Liq4Lit4LiHDQor4LiK4Lix4Lii4Lii4Li44LiX4LiYIOC5gOC4reC4teC4ouC4lOC5geC4geC5ieC4pw0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguIHguKHguKXguJnguKPguYDguJfguJ4NCivguIrguLHguKLguKPguLHguJXguJnguYwg4LiI4Li54Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmMDQor4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC5gOC4lOC4iuC4suC4meC4s+C4p+C4h+C4qOC5jA0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguJrguLjguI3guJnguYnguK3guKINCivguIrguLHguKLguKPguLHguJXguJnguYwg4Lih4Liy4Lib4Lij4Liw4LiT4Li14LiVDQor4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC4p+C4o+C4p+C4h+C4qOC5jOC5gOC4mOC4rQ0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguKrguLjguKPguIrguLHguKLguJjguJnguKfguLHguJLguJnguYwNCivguIrguLHguKLguKTguIHguKnguYwg4LmA4Lie4Li04LmI4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMDQor4LiK4Lix4Lii4Lik4LiX4LiY4Li04LmMIOC4quC4teC4q+C4tOC4quC4o+C4suC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguIHguLTguJXguJXguLTguJ7guKPguJnguLHguJnguJfguYwNCivguIrguLHguKLguKfguLHguJLguJnguYwg4LiI4Lij4Li04Lii4Liy4Lig4Lij4LiT4LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4iuC4seC4ouC4o+C4seC4leC4meC4l+C4o+C4h+C4nuC4ow0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguJXguLHguJnguIHguLPguYHguKvguIfguYDguJTguIrguLINCivguIrguLHguKLguKfguLHguJLguJnguYwg4LiY4Li14Lij4Liq4Li44LiC4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4iuC4seC4ouC4geC4tOC4iA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguJ7guLLguJnguLTguIrguKLguLLguKDguKPguJPguYwNCivguIrguLHguKLguKfguLHguJLguJnguYwg4LmA4Lii4Liy4Lin4Lig4Liy4Lie4LiH4Lio4LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4p+C4h+C4qOC5jOC4p+C4seC4kuC4meC4qOC4suC4meC4leC5jA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguKjguKPguLXguYDguIjguKPguLTguI3guJjguKPguKPguKENCivguIrguLHguKLguKfguLHguJLguJnguYwg4Liq4Li44LiC4Lin4LiT4Li04LiK4LiZ4Lix4LiZ4LiX4LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4reC4o+C4tOC4ouC4oeC4h+C4hOC4peC4quC4geC4uOC4pQ0KK+C4iuC4seC4ouC4p+C4seC4leC4o+C5jCDguYDguJXguIrguLDguKTguJTguLXguKfguKPguKPguJMNCivguIrguLHguKLguKfguLTguKfguLHguJLguJnguYwg4LmA4LiC4Li14Lii4Lin4LmC4Liq4Lig4LiTDQor4LiK4Lix4Lii4Lin4Li44LiS4Li0IOC4qOC4uOC4oOC4p+C4h+C4qOC5jOC4p+C4tOC4qOC4suC4pQ0KK+C4iuC4seC4ouC4qOC4seC4geC4lOC4tOC5jCDguIrguLHguYjguIfguYPguIgNCivguIrguLHguKLguKjguLTguKPguLQg4Lie4Lix4LiZ4LiY4Li44LmM4LmC4Lit4Lig4Liy4LiqDQor4LiK4Lix4Lii4Liq4Li04LiX4LiY4Li04LmMIOC4geC5iOC4reC5gOC4geC4teC4ouC4o+C4leC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4seC4ouC4quC4tOC4l+C4mOC4tOC5jCDguYHguJXguYnguKPguLHguJXguJnguIrguLHguKINCivguIrguLHguKLguKrguLTguJfguJjguLTguYwg4Lil4Li54LiB4Lij4Lix4LiB4Lip4LmMDQor4LiK4Lix4Lii4Liq4Li04LiX4LiY4Li04LmMIOC4reC4seC4jeC4iuC4meC4suC4meC4meC4l+C5jA0KK+C4iuC4seC4ouC5gOC4iOC4o+C4tOC4jSDguYDguIjguKPguLTguI3guKrguLTguJfguJjguLTguYwNCivguIrguLHguKLguYDguKXguLTguKgg4LmC4LiB4Lii4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiK4Lix4Lii4LmC4Lij4LiI4LiZ4LmMIOC5gOC4geC4qeC4o+C4suC4h+C4geC4ueC4ow0KK+C4iuC4seC4ouC5guC4o+C4iOC4meC5jCDguKfguLHguJLguJnguKjguLTguKPguLTguKrguLjguIINCivguIrguLLguITguKMg4Lib4Lij4Liy4LiB4Liy4Lij4LiZ4Lie4LiE4Li44LiTDQor4LiK4Liy4LiE4Lij4Li04LiVIOC4quC4uOC4guC4nuC4o+C4p+C4tOC4l+C4p+C4seC4qg0KK+C4iuC4suC4jSDguYDguIHguLXguKLguKPguJXguLTguKrguLHguIfguKfguKPguJPguYwNCivguIrguLLguI0g4LmA4LiI4Lij4Li04LiN4Liq4Li04LiX4LiY4Li04Lie4Lix4LiZ4LiY4LmMDQor4LiK4Liy4LiNIOC5gOC4iuC4teC5iOC4ouC4p+C4mOC4teC4o+C4geC4uOC4pQ0KK+C4iuC4suC4jSDguYDguJXguKPguLXguKLguKHguKjguLTguKPguLTguKfguKPguIHguLjguKUNCivguIrguLLguI0g4Lia4Lix4Lin4LiX4Lit4LiHDQor4LiK4Liy4LiNIOC4nuC4seC4meC4mOC5jOC5geC4iuC5iOC4oQ0KK+C4iuC4suC4jSDguYDguKHguJjguLLguIfguIHguLnguKMNCivguIrguLLguI0g4Lin4LiH4Lio4LmM4Liq4Li44Lij4Lio4Li04Lil4Lib4LmMDQor4LiK4Liy4LiNIOC4quC4h+C5iOC4suC4h+C4suC4oQ0KK+C4iuC4suC4jSDguYDguKrguKPguLXguKPguLHguJDguYLguJ7guJjguLTguYzguJXguKPguLDguIHguLnguKUNCivguIrguLLguI0g4LmA4Lit4Li14LmI4Lii4Lih4Lit4Li44LmI4LiZDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4geC4tOC4leC4leC4tOC4p+C4h+C4qOC5jOC5hOC4geC4ow0KK+C4iuC4suC4jeC4iuC4seC4oiDguITguIfguYLguJUNCivguIrguLLguI3guIrguLHguKIg4LiI4Liy4Lij4Li44LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4iuC4p+C4peC4tOC4leC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4suC4jeC4iuC4seC4oiDguYTguIrguKLguJnguLLguKHguKrguJbguLTguJXguKLguYwNCivguIrguLLguI3guIrguLHguKIg4LiTIOC4luC4peC4suC4hw0KK+C4iuC4suC4jeC4iuC4seC4oiDguYLguJXguJrguJTguLUNCivguIrguLLguI3guIrguLHguKIg4LiZ4LiX4Li14Lin4LiH4Lio4LmM4LiB4Li04LiIDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4m+C4o+C4sOC4lOC4seC4muC4iuC4meC4suC4meC4uOC4o+C4seC4leC4meC5jA0KK+C4iuC4suC4jeC4iuC4seC4oiDguJ7guKPguYnguK3guKHguKfguLjguJLguLQNCivguIrguLLguI3guIrguLHguKIg4Lig4Lix4LiX4Lij4Liq4Li04LiX4LiY4Li04LmA4Liq4Lij4Li1DQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4o+C4seC4leC4meC4suC4iuC4seC4ouC4nuC4h+C4qeC5jA0KK+C4iuC4suC4jeC4iuC4seC4oiDguYDguKXguLTguKjguJvguKPguLDguKrguJ7guYLguIrguIQNCivguIrguLLguI3guIrguLHguKIg4Lin4Li04LiX4Li54Lij4Lib4Lix4LiN4LiN4Liy4LiB4Li04LiIDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4qOC4tOC4o+C4tOC4p+C4h+C4qOC5jOC4p+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4iuC4suC4jeC4iuC4seC4oiDguKrguLTguJfguJjguLTguIrguLHguKLguKfguLTguKPguLTguKLguLDguIHguLjguKUNCivguIrguLLguI3guIrguLHguKIg4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmM4Lio4Li04Lin4LiU4LilDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4reC4oOC4tOC4o+C4oeC4ouC5jOC5gOC4quC4oeC4rQ0KK+C4iuC4suC4jeC4iuC4seC4oiDguYDguK3guKHguLDguKPguLjguIjguLQNCivguIrguLLguI3guJPguKPguIfguITguYwg4LiC4Lin4Lix4LiN4LmA4LiI4Lij4Li04LiNDQor4LiK4Liy4LiN4LiT4Lij4LiH4LiE4LmMIOC4l+C4reC4h+C4meC4p+C4pQ0KK+C4iuC4suC4jeC4k+C4o+C4h+C4hOC5jCDguKDguLnguJzguLINCivguIrguLLguI3guJPguKPguIfguITguYwg4Liq4Li04LiX4LiY4Li04Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiK4Liy4LiN4Lia4Li54Lij4LiT4LmMIOC5gOC4nuC5h+C4jeC4leC4o+C4sOC4geC4ueC4pQ0KK+C4iuC4suC4jeC4ouC4uOC4l+C4mCDguJvguKPguLDguYDguKrguKPguLTguJDguYLguKrguKDguLINCivguIrguLLguI3guKLguLjguJfguJjguYwg4LiV4Lij4Li14Liq4Li44LiE4LiZ4LiY4LmMDQor4LiK4Liy4LiN4Lin4Li04LiX4Lii4LmMIOC4iuC5iOC4p+C4h+C4iuC4seC4og0KK+C4iuC4suC4jeC4p+C4tOC4l+C4ouC5jCDguJvguLTguKLguLDguKfguLLguJPguLTguIrguYDguKrguJbguLXguKLguKMNCivguIrguLLguI3guKfguLTguJfguKLguYwg4Liq4Li44LiC4Lit4Lij4LmI4Liy4LihDQor4LiK4Liy4LiN4Lin4Li44LiS4Li0IOC4nuC4o+C4geC4tOC4leC4leC4tOC4p+C4seC4kuC4meC4suC4geC4uOC4pQ0KK+C4iuC4suC4jeC4qOC4seC4geC4lOC4tOC5jCDguJfguLLguJnguJjguJnguLDguYDguIjguKPguLTguI0NCivguIrguLLguI3guKjguLHguIHguJTguLTguYwg4Lit4Li44LiU4Lih4LiW4Li04Lij4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiK4Liy4LiN4LmA4Lin4LiKIOC4qOC4o+C4seC4l+C4mOC4suC4nuC4uOC4l+C4mA0KK+C4iuC4suC4leC4o+C4tSDguYDguIHguKPguLXguKLguIfguKLguLDguIHguLjguKUNCivguIrguLLguJXguKPguLUg4LmA4LiI4Lij4Li04LiN4LiI4Lij4Lix4Liq4LiB4Li44LilDQor4LiK4Liy4LiV4Lij4Li1IOC4lOC4tOC5gOC4o+C4geC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4iuC4suC4leC4o+C4tSDguJnguIHguKrguIHguLjguKUNCivguIrguLLguJXguKPguLUg4Lie4Lix4LiY4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiK4Liy4LiV4Lij4Li1IOC4peC4tOC4oeC4m+C4tOC4iuC4seC4ouC5guC4quC4oOC4kw0KK+C4iuC4suC4leC4o+C4tSDguKjguKPguLXguKrguLjguITguJnguJjguYwNCivguIrguLLguJXguKPguLUg4Liq4Li44Lir4Lix4Liq4LmE4Lie4Lio4Liy4LilDQor4LiK4Liy4LiV4Lij4Li1IOC4reC4tOC4meC4hOC4uOC5ieC4oQ0KK+C4iuC4suC4leC4tCDguJfguLLguIfguJfguK3guIcNCivguIrguLLguJXguLTguIrguLHguKIg4LiI4Liy4LiV4Li44Lio4Lij4Li14Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiK4Liy4LiV4Li04LiK4Liy4LiiIOC4iOC4h+C4geC4pQ0KK+C4iuC4suC4leC4tOC4iuC4suC4oiDguYHguIvguYjguYHguJXguYkNCivguIrguLLguJXguLTguIrguLLguKIg4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04Liq4LiyDQor4LiK4Liy4LiV4Li04LiK4Liy4LiiIOC4ouC4uOC4p+C4meC4sOC5gOC4leC4oeC4teC4ouC5jA0KK+C4iuC4suC4leC4tOC4iuC4suC4oiDguKjguKPguLXguKrguLLguKPguLTguKrguJbguYwNCivguIrguLLguJXguLTguIrguLLguKIg4Lit4Lix4LiE4Lij4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LiK4Liy4LiV4Li04LmA4LiJ4Lil4Li04LihIOC5gOC4peC4guC4p+C4k+C4tOC4iuC4mOC4o+C4o+C4oeC4p+C4tOC4l+C4seC4geC4qeC5jA0KK+C4iuC4suC4meC4meC4l+C5jCDguKrguLLguKLguIrguLjguKENCivguIrguLLguKIg4LiX4LmJ4Lin4Lih4LiB4Lil4Li04LmI4LiZDQor4LiK4Liy4LiiIOC4reC4uOC4oeC4sOC4p+C4tOC4iuC4meC4tQ0KK+C4iuC4suC4ouC5g+C4q+C4jeC5iCDguJrguLjguI3guYDguILguYfguKHguJfguK3guIcNCivguIrguLLguKXguLTguJnguLUg4LiI4Lix4LiZ4LiX4Lin4Liy4Lij4LiyDQor4LiK4Liy4Lil4Li1IOC4hOC4s+C4peC4suC4og0KK+C4iuC4suC4peC4tSDguJfguLTguJ7guKLguKfguLLguJkNCivguIrguLLguKXguLUg4LmA4Lie4Li14Lii4Lij4Lih4Liy4LiZ4LiwDQor4LiK4Liy4Lil4Li1IOC4p+C4seC4iuC4o+C5gOC4quC4luC4teC4ouC4ow0KK+C4iuC4suC4peC4tSDguK3guJnguLHguJnguJXguYzguKfguLTguKPguLTguKLguLDguIrguLHguKINCivguIrguLPguJnguLAg4LiX4Lix4LiV4LiV4Li04Lii4Lie4LiH4Lio4LmMDQor4LiK4Liz4LiZ4Liy4LiNIOC4ieC4p+C4teC4p+C4h+C4qeC5jA0KK+C4iuC4s+C4meC4suC4jSDguYHguJXguYnguKrguLjguIjguLQNCivguIrguLPguJnguLLguI0g4Lia4Li44LiN4Lin4Li04LiX4Lii4Liy4LiB4Li44LilDQor4LiK4Liz4LiZ4Liy4LiNIOC5guC4nuC4mOC4tOC5jOC4quC4uOC4gg0KK+C4iuC4s+C4meC4suC4jSDguYDguKXguLLguKvguJrguLjguJXguKMNCivguIrguLPguJnguLLguI0g4Liq4Liy4Lij4Liw4Lic4LilDQor4LiK4Liz4LiZ4Liy4LiNIOC4reC4tOC4meC4l+C4sOC4meC4sA0KK+C4iuC4s+C5gOC4iuC4teC5ieC4ouC4sCDguILguLHguJnguJfguK3guIcNCivguIrguLTguIfguIrguLHguKIg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4LiI4Lij4Lix4Liq4Liq4LiB4Li44LilDQor4LiK4Li04LiUIOC4iOC4o+C4tOC4ouC4suC4p+C4tOC4peC4suC4qA0KK+C4iuC4tOC4lOC4iuC4meC4gSDguKjguKPguLXguKrguKHguKfguIfguKnguYwNCivguIrguLTguJTguJ7guIfguKnguYwg4Liq4Lii4Liy4Lih4LmA4LiZ4LiV4LijDQor4LiK4Li04LiVIOC4leC4seC4meC4qOC4tOC4o+C4tOC4peC5ieC4sw0KK+C4iuC4tOC4lSDguKLguLDguYLguKoNCivguIrguLTguJXguIrguKEg4LiI4Lix4LiV4LiV4Li44Lie4Lij4Lie4LiH4Lip4LmMDQor4LiK4Li04LiV4Liq4LiB4LiZ4LiY4LmMIOC4quC4seC4meC4l+C4seC4lA0KK+C4iuC4tOC4mSDguJXguLHguYnguIfguIHguLjguKjguKXguKXguKXguLTguJUNCivguIrguLTguJkg4LmC4Lij4LiI4LiZ4LmB4Liq4LiHDQor4LiK4Li04LiZ4LiT4LmA4Lij4LioIOC4lOC4tOC4qeC4kOC4nOC4pQ0KK+C4iuC4tOC4meC4pOC4l+C4mOC4tOC5jCDguJvguKPguLDguKLguLnguKPguJfguK3guIcNCivguIrguLTguJnguKfguLHguJXguKMg4LmD4LiI4LmA4LiX4Li14LmI4Lii4LiHDQor4LiK4Li04LiZ4LmA4Lir4Lij4Li14Lii4LiNIOC5gOC4quC4geC4mOC4teC4o+C4sA0KK+C4iuC4tOC4peC4seC4oiDguKrguLjguKfguKPguKPguJPguKrguLLguKMNCivguIrguLUg4LmA4LiEIOC5geC4peC4oQ0KK+C4iuC4teC4p+C4siDguIHguKXguLTguYjguJnguJTguLUNCivguIrguLfguYjguJkg4LmA4LiB4LiV4Li44Lib4Lih4LiyDQor4LiK4Li34LmI4LiZIOC5gOC4p+C4l+C4oeC4suC4q+C4sA0KK+C4iuC4t+C5iOC4meC4iOC4tOC4lSDguYHguKvguKXguKHguIjguKPguLTguIcNCivguIrguLfguYjguJnguIjguLTguJXguKMg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiK4Li34LmI4LiZ4Liq4Li44LiCIOC4geC4oeC4peC4l+C4geC4suC4oOC4seC4og0KK+C4iuC4t+C5ieC4mSDguJfguK3guIfguI3guKfguJkNCivguIrguLjguIfguYDguK3guIcg4LmB4LiL4LmI4LmA4LiI4Li14LiiDQor4LiK4Li44LiU4Liy4Lie4LijIOC5geC4quC4meC4o+C4suC4iuC4sg0KK+C4iuC4uOC4leC4tOC4meC4seC4meC4l+C5jCDguYDguJXguIrguLDguKrguKHguJrguLnguKPguJPguYwNCivguIrguLjguJXguLTguKHguJPguJHguJnguYwg4Lia4Li44LiN4LiK4Lix4LiK4Lin4Liy4LilDQor4LiK4Li44LiV4Li04Lih4LiyIOC4guC4seC4meC4lOC4tQ0KK+C4iuC4uOC4leC4tOC4oeC4siDguIrguLTguJnguYLguJkNCivguIrguLjguJXguLTguKHguLIg4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Li04Lij4Li04LiZ4LiX4Lij4LmMDQor4LiK4Li44LiV4Li04Lih4LiyIOC4m+C4seC4p+C4p+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4iuC4uOC4leC4tOC4oeC4siDguKHguKvguLHguITguITguIHguLjguKUNCivguIrguLjguJXguLTguKHguLIg4Lin4LiK4Li04Lij4LmA4Liq4Lij4Li14LiK4Lix4LiiDQor4LiK4Li44LiV4Li04Lih4LiyIOC4quC4tOC4meC4quC4suC4mOC4tOC4lQ0KK+C4iuC4uOC4leC4tOC4oeC4siDguK3guLHguI3guI3guJPguKPguIfguITguYzguIHguLjguKUNCivguIrguLjguJkg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LiK4Li44LiZ4LmA4LiL4LmJ4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4iuC4uOC4miDguIjguLHguJnguJfguKPguYzguYHguIHguYnguKcNCivguIrguLjguJog4Lil4Liy4LmE4Lih4LmJDQor4LiK4Li44Lih4LiZ4Li44LihIOC4qOC4seC4leC4o+C4ueC4peC4teC5iQ0KK+C4iuC4uOC4oeC4nuC4oyDguJzguJTguLjguIfguIHguLTguIgNCivguIrguLjguKHguJ7guKUg4LiB4Liy4LiN4LiI4LiZ4LmC4LiB4Lio4LilDQor4LiK4Li44Lih4Lie4LilIOC4iuC4oeC4nuC4ueC4l+C4p+C4teC4mw0KK+C4iuC4uOC4oeC4nuC4pSDguJXguLXguKPguJPguKrguLLguKMNCivguIrguLjguKHguJ7guKUg4Lia4Li44LiN4Liq4Liy4LmD4LiIDQor4LiK4Li44Lih4Lie4LilIOC4oeC4o+C4o+C4hOC4nOC4pQ0KK+C4iuC4uOC4oeC4nuC4pSDguYDguKfguKrguKrguJrguLjguJXguKMNCivguIrguLjguKHguJ7guKUg4LmA4Liq4Lij4Li04Lih4LiK4Lix4LmJ4LiZDQor4LiK4Li44Lih4Lij4Lix4LiV4LiZ4LmMIOC4iOC4seC4geC4o+C4iOC4tOC4leC4o+C4oOC4sg0KK+C4iuC4uOC4oeC4quC4suC4oiDguKHguJPguLXguJnguYnguK3guKINCivguIrguLjguYjguKEg4LiZ4LmJ4Lit4Lii4Lib4Lij4Liw4LiK4LiyDQor4LiK4Li44Lij4Li14Lin4Lij4Lij4LiTIOC4iOC4tOC4meC4leC4geC4p+C4teC4p+C4seC4kuC4meC5jA0KK+C4iuC4uOC4peC4tSDguYDguKPguLfguK3guIfguKTguJfguJjguLTguYwNCivguIrguLjguKXguLXguIHguKMg4Lij4Lix4LiV4LiZ4LmM4Lin4Li04LiI4Li04LiV4LiV4LmM4LmA4Lin4LiKDQor4LiK4Li44Lil4Li14Lie4LijIOC4muC4uOC4jeC4reC4ouC4ueC5iA0KK+C4iuC4uOC4peC4teC4nuC4oyDguK3guLbguYnguIfguKfguLTguKjguLTguKnguI7guYzguKfguIfguKjguYwNCivguIrguLkg4LmC4LiI4LmB4Lit4LiZ4LiZ4LiyDQor4LiK4Li54LiI4Lix4LiZ4LiX4Lij4LmM4LiJ4Liy4LiiIOC4peC4suC5gOC4hOC4mQ0KK+C4iuC4ueC4iOC4tOC4leC4leC5jCDguJjguKPguKPguKHguJDguLTguJXguLQNCivguIrguLnguIjguLTguJXguKMg4Lih4Lix4LiB4Lie4Lix4LiZ4LiY4LmM4LmA4LiI4Lij4Li04LiN4LiB4Li04LiIDQor4LiK4Li54LiK4Lix4LiiIOC5gOC4geC4tOC4lOC4nOC4pQ0KK+C4iuC4ueC4iuC4seC4oiDguYDguJXguIrguLDguJjguKPguLLguKPguLHguIHguKnguYwNCivguIrguLnguIrguLHguKIg4LmA4Lij4Li14Lii4Lia4LmA4Lil4Li04Lio4Lir4Li04Lij4Lix4LiNDQor4LiK4Li54LiK4Lix4LiiIOC4reC4uOC4lOC4oeC5guC4oOC4iuC4meC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguITguLPguYLguJUNCivguIrguLnguIrguLLguJXguLQg4LiL4Li24LmI4LiH4LiU4Liz4Lij4LiHDQor4LiK4Li54LiK4Liy4LiV4Li0IOC4meC4nuC4p+C4h+C4qeC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguJ7guIfguKnguYzguKPguLHguJXguJnguYwNCivguIrguLnguIrguLLguJXguLQg4Lij4Lix4LiB4Lip4Liy4Liq4Lix4LiV4Lii4LmMDQor4LiK4Li54LiK4Liy4LiV4Li0IOC4qOC4o+C4teC4o+C4seC4leC4meC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguKrguLjguKfguLHguIrguKPguKfguLTguKfguLHguJLguJnguYwNCivguIrguLnguIrguLLguJXguLQg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Li44LiX4LiY4LiyDQor4LiK4Li54LiK4Li14LieIOC4m+C4seC4jeC4iOC4quC4seC4h+C4guC5jA0KK+C4iuC4ueC4iuC4teC4niDguKrguLHguIfguILguYzguJnguLTguKXguYHguIHguYnguKcNCivguIrguLnguJTguKfguIcg4LmB4Liq4LiH4LiK4Li54LmC4LiVDQor4LiK4Li54Lie4LiH4Lio4LmMIOC4q+C4p+C4seC4h+C4p+C4seC4kuC4meC4suC4meC4seC4meC4l+C5jA0KK+C4iuC4ueC4nuC4seC4meC4mOC5jCDguYLguIHguKHguKXguKrguLjguJUNCivguIrguLnguKPguLHguJXguJnguYwg4Lia4Li44LiN4LmA4LiZ4Liy4Lin4LmMDQor4LiK4Li54Lin4LiH4Lio4LmMIOC4meC4tOC4leC4tOC4m+C4seC4jeC4jeC4suC4p+C4h+C4qOC5jA0KK+C4iuC4ueC4qOC4o+C4tSDguIHguK3guIfguYHguIHguYnguKcNCivguIrguLnguKjguKPguLUg4LmA4LiI4Li14Lii4Lij4LiB4Li44Lil4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiK4Li54Lio4Lij4Li1IOC4l+C4reC4h+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tA0KK+C4iuC4ueC4qOC4o+C4tSDguJvguLLguKXguLDguIHguLnguKUNCivguIrguLnguKjguKPguLUg4Lih4Liw4Lil4Li04Lit4LmI4Lit4LiHDQor4LiK4Li54Lio4Lij4Li1IOC4p+C4tOC4p+C4seC4kuC4meC5jOC4p+C4h+C4qOC5jOC4mOC4ow0KK+C4iuC4ueC4qOC4o+C4tSDguKrguLjguKPguLTguKfguIfguKnguYwNCivguIrguLnguKjguKPguLUg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lit4Liy4LiUDQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4seC4meC4l+C4o+C4oeC4suC4meC4sA0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguYLguIrguITguJrguKfguKMNCivguIrguLnguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LiB4Lil4LmI4LizDQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4o+C4sOC4l+C4teC4m+C5gOC4l+C4teC4ouC4meC4l+C4reC4hw0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguKHguYjguKfguIfguKLguLINCivguIrguLnguKjguLHguIHguJTguLTguYwg4Lil4Li34Lit4LiK4Liy4Lit4Li44LiU4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4o+C4teC5gOC4iOC4o+C4tOC4jeC4peC5iOC4s+C4i+C4sw0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguKrguLjguKfguKPguKPguJPguJrguLnguKXguKLguYwNCivguIrguLnguKjguLHguIHguJTguLTguYwg4Lit4Li44LmI4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lio4Li04Lil4Lib4LmMDQor4LiK4Li54Liq4Liy4LijIOC4p+C4h+C4qOC5jOC4p+C4seC4iuC4o+C4sg0KK+C4iuC4ueC5gOC4geC4teC4ouC4o+C4leC4tCDguIHguLHguJPguJHguKjguLTguKXguJvguYwNCivguIrguLnguYDguIHguLXguKLguKPguJXguLQg4LiK4Li34LmI4LiZ4Lig4Liy4LiB4Lij4LiT4LmMDQor4LiK4Li54LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4meC4suC4hOC4o+C4meC4o+C4suC4mOC4ow0KK+C4iuC4ueC5gOC4geC4teC4ouC4o+C4leC4tCDguYDguKHguJjguLXguJvguKPguLDguKDguLINCivguIrguLnguYDguIHguLXguKLguKPguJXguLQg4Liq4Lin4LmI4Liy4LiH4LmA4LiZ4LiV4LijDQor4LiK4Li54LmA4LiE4Lin4LmJ4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4iuC4ueC5gOC4reC5h+C4hyDguJ7guKPguJfguKfguLXguJfguLHguKjguJnguYwNCivguIrguLnguYPguIgg4Liu4Li54LmA4LiL4LmH4LiZDQor4LiK4LmC4Lil4LiX4LijIOC4quC4uOC4p+C4o+C4o+C4k+C4quC4seC4jeC4jeC4sg0KK+C4iuC5hOC4oeC4nuC4oyDguIrguLjguKHguYDguKrguKfguLUNCivguIrguYTguKHguJ7guKMg4Lin4Li04LiX4Li04LiV4Lin4Lix4LiS4LiZDQor4LmA4LiK4LiH4LiE4Li04LmJ4LiHIOC5geC4i+C5iOC5geC4leC5iQ0KK+C5gOC4iuC4mSDguJvguLTguYjguJnguYDguJ7guIrguKMNCivguYDguIrguKUg4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4LiK4Lin4LiHIOC5gOC4nuC4iuC4o+C4quC4uOC4p+C4o+C4o+C4kw0KK+C5gOC4iuC4p+C4h+C4qOC4seC4geC4lOC4tOC5jCDguYDguKHguIbguLINCivguYDguIrguKnguJDguIrguLHguKIg4Lij4Lix4LiV4LiZ4Liy4LiZ4Li44Lin4LiH4Lio4LmM4LiK4Lix4LiiDQor4LmA4LiK4Lip4LiQ4LiyIOC4quC4uOC4meC4l+C4o+C4geC4tOC4leC4tA0KK+C5gOC4iuC4reC4o+C4teC5iOC4p+C4o+C4o+C4kyDguIjguLTguJPguJPguJjguKPguKPguKHguJ7guIfguKnguYwNCivguYDguIrguLLguKfguJnguLUg4Liq4Lih4Li04LiV4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4LiK4Liy4Lin4LiZ4LmMIOC4ouC4sOC4quC4uOC4nuC4seC4kuC4meC4suC4geC4uOC4pQ0KK+C5gOC4iuC4suC4p+C4o+C4seC4leC4meC5jCDguYDguJnguJXguKPguKHguJPguLXguJfguLTguJ7guKLguYzguKrguLTguKPguLQNCivguYDguIrguLLguKfguKXguLTguJUg4LiC4Liz4Lio4Li04Lij4Li0DQor4LmA4LiK4Liy4Lin4Lil4Li04LiVIOC5guC4m+C4o+C5iOC4h+C4geC4oeC4pQ0KK+C5gOC4iuC4suC4p+C4peC4tOC4lSDguKrguLjguILguKrguJrguLLguKINCivguYDguIrguLLguKfguYwg4LmB4LiB4LmJ4Lin4Lib4Lij4Liw4LiU4Li04Lip4LiQDQor4LmA4LiK4Liy4Lin4LmMIOC4l+C4reC4h+C4oeC4sg0KK+C5gOC4iuC4suC4p+C5jCDguKHguLTguYjguIfguYHguIHguYnguKcNCivguYDguIrguLLguKfguYwg4Lir4Lil4Lix4LiB4LmA4Lie4LmH4LiK4LijDQor4LmA4LiK4Li04LiH4LiK4Lix4LiiIOC4mOC4s+C4o+C4h+C4p+C4tOC4meC4tOC4iOC4ieC4seC4og0KK+C5gOC4iuC4tOC4jSDguJvguKPguLDguJfguLjguKHguJnguJnguJfguYwNCivguYDguIrguLTguJQg4Lia4Lix4Lin4LmA4Lib4Lij4LihDQor4LmA4LiK4Li04LiUIOC4reC4tOC4meC4l+C4o+C5jOC4oeC4h+C4hOC4pQ0KK+C5gOC4iuC4tOC4lOC4iuC4seC4oiDguJnguLHguJnguJfguLTguKfguLHguIrguKPguLTguJnguJfguKPguYwNCivguYDguIrguLTguJTguIrguLHguKIg4Lio4Lij4Li14LiE4Liz4Lij4Li44LiTDQor4LmA4LiK4Li04LiU4LiK4Liy4LiiIOC4oeC4suC4geC4muC4s+C4o+C4uOC4hw0KK+C5gOC4iuC4tOC4lOC4nuC4seC4meC4mOC4uOC5jCDguYDguIjguKPguLTguI3guYDguKfguIoNCivguYDguIrguLTguJTguKjguLHguIHguJTguLTguYwg4LiZ4Liz4LmA4LiI4Lij4Li04LiN4LiB4Li04LiI4LiB4Li44LilDQor4LmA4LiK4Li04LiU4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4hOC4meC4mOC4quC4tOC4h+C4q+C5jA0KK+C5gOC4iuC4teC4ouC4hyDguKrguLPguYDguKPguYfguIjguJzguKUNCivguYDguIrguLXguKLguLDguJXguIcg4LmA4Lit4LiB4Lit4Lij4Li44LiT4Lij4Li44LmI4LiH4Lik4LiX4LiY4Li04LmMDQor4LmA4LiK4Li14LmJ4Lii4LiZIOC4oeC4reC4jeC4geC4o+C4sOC5guC4l+C4gQ0KK+C5gOC4iuC4t+C5ieC4rSDguYDguIHguJXguLjguJnguKfguKENCivguYDguIrguLfguYnguK0g4LmA4Lij4Li34Lit4LiH4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LmA4LiK4Li34LmJ4Lit4LmA4LiV4LmH4LiBIOC5geC4i+C5iOC4ieC4tOC5iOC4mQ0KK+C5gOC4iuC5h+C4h+C4quC4uOC4mSDguYHguIvguYjguYDguKXguLXguYjguKLguKcNCivguYDguIrguYnguLIg4LiY4Lij4Lij4Lih4LmC4LiK4LiV4Li0DQor4LmB4LiK4LmI4LihIOC5gOC4nOC4t+C4reC4geC4l+C4reC4hw0KK+C5guC4iuC4hCDguJ7guIfguKjguLLguJvguLLguJkNCivguYLguIrguITguIrguLHguKIg4LiI4Lix4LiZ4LiX4Lij4LmM4Lic4Liy4Liq4Li44LiCDQor4LmC4LiK4LiE4LiK4Lix4LiiIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5guC4iuC4hOC4iuC4seC4oiDguJrguLjguI3guI3guLLguKPguLHguJXguJnguYzguKrguJbguLLguJ7guKMNCivguYLguIrguITguIrguLHguKIg4Lig4Liy4Lin4Liq4Li44LiX4LiY4Li04LiB4Liy4LijDQor4LmC4LiK4LiE4LiK4Lix4LiiIOC4p+C4seC4h+C4oeC4sOC4meC4suC4pw0KK+C5guC4iuC4hOC4iuC4seC4oiDguKrguLjguJfguJjguLTguYzguJvguKPguLDguYDguKrguKPguLTguJDguJ7guKMNCivguYLguIrguITguJTguLUg4LiB4Liz4Lie4Lil4LmA4LiK4LiV4Li4DQor4LmC4LiK4LiE4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4nuC4h+C4qeC5jOC4leC4tOC5geC4lA0KK+C5guC4iuC4leC4tCDguIjguLTguJPguJPguKfguLLguYLguKoNCivguYLguIrguJXguLQg4Lib4Lij4Liw4Lii4LiH4LiE4LmM4LiX4Lij4Lix4Lie4Lii4LmMDQor4LmC4LiK4LiV4Li0IOC4quC4meC4mOC4tOC4l+C4o+C4seC4nuC4ouC5jA0KK+C5guC4iuC4leC4tOC4geC4siDguKrguKfguLHguKrguJTguLTguYzguKrguLLguKPguLANCivguYLguIrguJXguLTguKHguLIg4LiB4Lih4Lil4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LmC4LiK4LiV4Li04Lij4LiqIOC4hOC4ueC4nOC4suC4quC4uOC4gg0KK+C5guC4iuC4leC4tOC4p+C4uOC4kuC4tCDguJzguJTguLLguIjguLTguJXguKMNCivguYPguIrguYjguYDguK3guYfguIcg4LmB4LiL4LmI4Lir4Lil4Li04LmI4LinDQor4LmE4LiK4LiiIOC5geC4i+C5iOC5guC4i+C4pw0KK+C5hOC4iuC4ouC4k+C4o+C4h+C4hOC5jCDguKrguLjguJnguJfguYLguKPguJfguKLguLLguJkNCivguYTguIrguKLguJ7guKMg4Liq4Li44LiE4LiZ4LmC4LiY4Lir4LiBDQor4LmE4LiK4Lii4Lii4LiH4LiE4LmMIOC4o+C4tOC4meC4quC4luC4tOC4leC4meC4meC4l+C5jA0KK+C5hOC4iuC4ouC4ouC4qCDguJ7guLnguJnguJTguLUNCivguYTguIrguKLguKLguLHguJnguJXguYwg4LiI4Li04Lij4LiyDQor4LmE4LiK4Lii4Lii4LiyIOC4q+C4suC4jeC4p+C4tOC4p+C4seC4kuC4meC5jOC4p+C4h+C4qOC5jA0KK+C5hOC4iuC4ouC4o+C4seC4leC4meC5jCDguKPguLHguJXguJnguYHguIHguYnguKfguIHguLLguI3guIjguJnguYwNCivguYTguIrguKLguKfguLHguJLguJnguYwg4LiJ4Lil4Lit4LiH4Lie4Lix4LiZ4LiY4Lij4Lix4LiV4LiZ4LmMDQor4LmE4LiK4Lii4Lin4Lix4LiS4LiZ4LmMIOC4quC4suC4p+C4luC4ouC4suC4h+C4geC4ueC4ow0KK+C5hOC4iuC4ouC4quC4meC4mOC4tOC5jCDguJbguJnguLHguJTguYPguIrguYnguJvguLfguJkNCivguYTguIrguKLguLHguJnguJXguYwg4Lik4LiV4Lin4Li04Lij4Li44Lis4Lir4LmMDQor4LmE4LiK4Lii4LiyIOC4oeC4k+C4tQ0KK+C5hOC4iuC4ouC5gOC4l+C4niDguJ7guLTguKHguKXguJjguJnguKPguLHguIHguKnguYwNCivguYTguIrguYLguKIg4Liq4Li04LiX4LiY4Li04LiB4Lij4LmC4Liq4Lih4LiZ4Lix4LiqDQor4LiL4LiB4Liu4Li44LiiIOC4nuC4seC4meC4l+C4ow0KK+C4i+C4h+C4hOC5jCDguKPguJ7guLTguJfguKLguJ7guKPguKPguJMNCivguIvguYjguIfguYDguKHguYnguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4LmJ4LiH4LmA4Liq4LmH4LiHIOC4quC4uOC4o+C4tOC4ouC4sOC4iOC4seC4meC4l+C4o+C5jOC4q+C4reC4oQ0KK+C4i+C4reC4ouC4oeC5iOC4p+C4oiDguYDguKvguKXguLfguK3guIfguJfguLPguYDguKvguKHguLfguK3guJkNCivguIvguYjguK3guKvguKLguLTguJkg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4Lix4LiH4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4i+C4seC5ieC4p+C4m+C4p+C4ouC5gOC4oeC5ieC4hyDguYHguIvguYjguIvguLHguKcNCivguIvguLLguKHguKfguKUg4Lif4Li04Lil4Lil4Li04Lie4Liq4LmM4Lih4Li04Lin4Liq4LmMDQor4LiL4Liy4Lin4Liy4Lij4Lix4LiZIOC4i+C4tOC4h+C4q+C5jA0KK+C4i+C4tOC4geC4i+C4p+C4hyDguYHguIvguYjguK3guLHguYnguIcNCivguIvguLTguKHguITguYnguKfguIcg4LmB4LiL4LmI4LmA4LiV4LiHDQor4LiL4Li04Lin4LiH4LmJ4LitIOC5geC4i+C5iOC4geC4seC4pw0KK+C4i+C4tOC4p+C4oeC5iOC4p+C4oiDguYHguIvguYjguK3guLbguYnguIcNCivguIvguLTguKfguYDguIjguYfguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4Li04Lin4LmE4LiZ4LmJIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4i+C4tOC5ieC4p+C4iOC4uSDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLTguYnguKfguYDguJXguLXguKLguIcg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiL4Li14Lij4Lit4Lii4Li44LiU4LiU4Li04LiZIOC4oeC4tOC4meC4quC4suC4hOC4ow0KK+C4i+C4t+C5iOC4reC5gOC4q+C4peC4teC4ouC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLjguJnguJXguLTguYrguIEg4LmB4LiL4LmI4Liu4Li24LmJ4LiHDQor4LiL4Li44Lii4LiH4LmJ4LitIOC5geC4i+C5iOC5gOC4reC4teC5ieC4ouC4pw0KK+C4i+C4uOC5iOC4ouC4peC5ieC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLjguYnguKLguKXguLTguYnguKEg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4Li54Lia4LmK4Lin4LiiIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4i+C4ueC5iOC5gOC4geC4teC5iOC4ouC4pyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIvguJkg4LmC4Lir4Lih4LiU4LmA4Liq4LihDQor4LmA4LiL4Liy4Liw4Liu4Lin4LiHIOC5geC4i+C5iOC4q+C4peC4suC4og0KK+C5gOC4i+C4teC4ouC4h+C4geC4p+C4hyDguYHguIvguYjguIjguLbguIcNCivguYDguIvguLXguKLguKHguIjguLkg4LmA4LiY4Li14Lii4Lij4Lib4Lij4Li14LiK4LiyDQor4LmA4LiL4Li14Lii4Lih4LmA4LiH4LmH4LiBIOC5geC4i+C5iOC5gOC4reC4teC5ieC4og0KK+C5gOC4i+C4teC4ouC4p+C4leC4p+C4hyDguYHguIvguYjguYHguJXguYkNCivguYDguIvguLXguKLguLDguIjguLHguYnguKcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LmA4LiL4Li14Lii4Liw4LmA4LiB4Li14Lii4LinIOC5geC4i+C5iOC4geC4teC5iQ0KK+C5gOC4i+C4teC5iOC4ouC4h+C4geC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIvguLXguYjguKLguKHguIjguKfguJkg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LmA4LiL4Li14LmI4Lii4Lih4Lil4Lix4LmJ4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C5gOC4i+C4teC5iOC4ouC4oeC5gOC4geC4teC4ouC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIvguLXguYjguKLguKHguYDguKHguYnguIcg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LmA4LiL4Li14LmI4Lii4Lin4LiI4Li04LinIOC5geC4i+C5iOC5gOC4reC5h+C4hw0KK+C5gOC4i+C4teC5ieC4ouC4oSDguYHguIvguYjguYDguK3guYfguIcNCivguYDguIvguLXguYnguKLguLDguKLguYnguIcg4LmB4LiL4LmI4LiE4Li5DQor4LmA4LiL4LmH4LiH4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C5gOC4i+C5iOC4h+C5gOC4leC4teC4ouC4hyDguYHguIvguYjguYLguIfguYnguKcNCivguYDguIvguYnguKLguYDguIjguLXguYjguKIg4LmB4LiL4LmI4LmA4Lia4LmKDQor4LmC4LiL4LmA4Lif4Li14LiiIOC4lOC4s+C4quC4s+C4o+C4suC4jQ0KK+C5hOC4i+C4iOC4uSDguYHguIvguYjguK3guLbguYnguIcNCivguYTguIvguYLguIHguK3guLHguIcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LmE4LiL4LmJ4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4jeC4suC4k+C4tOC4meC4tSDguJjguIrguLLguKXguLjguKDguLHguI8NCivguI3guLLguJPguLXguKLguYwg4Lit4Li44LmJ4Lii4Liq4LiB4Li44LilDQor4LiN4Liy4LiZ4Li1IOC4leC4seC4meC4leC4tOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4kOC4meC4tOC4lOC4siDguKrguIHguLjguKXguIrguLHguKLguKfguLLguJnguLTguIoNCivguJDguLLguIHguLnguKMg4LiX4Lij4LiH4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmM4LiB4Li44LilDQor4LiQ4Liy4LiZ4Lix4LiZ4LiU4Lij4LmMIOC4reC4seC4qOC4p+C5gOC4peC4tOC4qOC4quC4o+C4ow0KK+C4kOC4suC4meC4tOC4qOC4p+C4o+C5jCDguYDguIjguKPguLTguI3guJ7guIfguKjguYwNCivguJDguLLguJvguJnguLUg4Lio4Lij4Li14LiZ4Liy4LiEDQor4LiQ4Li04LiV4Lij4Liy4Lie4LijIOC4quC4s+C4o+C4suC4jeC4iOC4tOC4leC4leC5jA0KK+C4kOC4tOC4leC4tCDguYLguIrguITguYDguIjguKPguLTguI3guJ7guLHguJLguJnguIHguLTguIgNCivguJDguLTguJXguLTguIHguLIg4Lih4Li14LiY4Lij4LiT4Li1DQor4LiQ4Li04LiV4Li04LiZ4Lix4LiZ4LiX4LmMIOC4iOC4o+C4tOC4ouC4p+C4seC4kuC4meC4quC4geC4uOC4pQ0KK+C4kOC4tOC4leC4tOC4nuC4h+C4qOC5jCDguKjguLjguKDguJzguKUNCivguJDguLTguJXguLTguJ7guKMg4LmA4LiV4LiK4Liw4LmC4Liq4Lig4LiT4Lih4LiT4Li1DQor4LiQ4Li04LiV4Li04Lie4LijIOC4quC4t+C4muC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4kOC4tOC4leC4tOC4oeC4siDguITguIfguKrguKfguYjguLLguIcNCivguJDguLTguJXguLTguKHguLIg4LmA4Lie4Li14Lii4Lij4LiK4Lit4LiaDQor4LiQ4Li04LiV4Li04Lih4LiyIOC4reC4meC4uOC4quC4meC4mOC4tOC5jA0KK+C4kOC4tOC4leC4tOC4o+C4seC4leC4meC5jCDguJvguKPguLDguKDguLLguKLguKrguLLguJjguIENCivguJDguLTguJXguLTguKfguLHguJLguJnguYwg4Lil4LmJ4Lin4LiZ4Lin4Lix4LiS4LiZ4Liy4LiZ4Li44LiB4Li54LilDQor4LiQ4Li04Lij4Liy4Lit4LijIOC4oeC4tOC4meC4o+C4suC4iuC4seC4mQ0KK+C5gOC4keC4teC4ouC4oyDguIHguKPguKPguJPguKrguLnguJUNCivguJPguJDguKfguKPguKPguJMg4Lib4Lij4Liw4Lii4Li44LiB4LiV4LmM4Liq4LiB4Li44LilDQor4LiT4Lie4LilIOC4nuC4peC4tOC4meC4quC4uOC4lQ0KK+C4k+C4o+C4h+C4hOC5jOC4iuC4seC4oiDguIHguLTguJXguJXguLTguYLguIrguJXguLTguKPguLHguJXguJnguYwNCivguJPguKPguIfguITguYzguIrguLHguKIg4LiY4LiZ4Liw4Lib4Lix4LiB4Lip4Li04LiTDQor4LiT4Lij4LiH4LiE4LmM4LiK4Lix4LiiIOC4qOC4tOC4o+C4tOC4muC4uOC4jeC4peC4sOC4oeC5iOC4reC4oQ0KK+C4k+C4o+C4h+C4hOC5jOC4ouC4qCDguKrguLPguKPguLLguI0NCivguJPguKPguIfguITguYzguKTguJfguJjguLTguYwg4Lie4LiZ4Liy4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiT4Lij4LiH4LiE4LmM4Lin4Li04LiX4Lii4LmMIOC4p+C4tOC4l+C4quC4seC4l+C4mOC4suC4p+C4o+C4geC4uOC4pQ0KK+C4k+C4o+C4h+C4hOC5jOC4qOC4seC4geC4lOC4tOC5jCDguJTguLXguK3guLPguJ7guLHguJkNCivguJPguKPguIfguITguYzguKjguLHguIHguJTguLTguYwg4Lie4Lij4Lir4Lih4Liq4Liy4LiC4LiyIOC4kyDguKrguIHguKXguJnguITguKMNCivguJPguKPguIfguITguYzguKjguLHguIHguJTguLTguYwg4LmA4Lil4Li04Lio4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiT4Lij4LiH4LiE4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4quC4h+C4p+C4seC4iuC4ow0KK+C4k+C4o+C4h+C4hOC5jOC5gOC4lOC4iiDguJrguLjguI3guITguKPguK3guIcNCivguJPguKPguIfguITguYwg4LiB4Lit4LiH4LiX4Lij4Lix4Lie4Lii4LmM4LmC4LiVDQor4LiT4Lij4LiH4LiE4LmMIOC4geC4uOC4quC4quC4peC4suC4meC4uOC4oOC4suC4ng0KK+C4k+C4o+C4h+C4hOC5jCDguILguLHguJnguIjguK3guIENCivguJPguKPguIfguITguYwg4LiE4Liz4Lie4Liy4LiZ4Li04LiKDQor4LiT4Lij4LiH4LiE4LmMIOC4iOC4p+C4muC4pOC4geC4qeC5jOC5gOC4ouC5h+C4mQ0KK+C4k+C4o+C4h+C4hOC5jCDguIjguLPguKPguLnguI3guKfguLHguJLguJnguYwNCivguJPguKPguIfguITguYwg4LmA4LiI4Lij4Li04LiN4LmA4LiB4Li14Lii4Lij4LiV4Li04Lin4LiH4Lio4LmMDQor4LiT4Lij4LiH4LiE4LmMIOC4iuC4seC4ouC4mOC4teC4o+C4geC4tOC4iA0KK+C4k+C4o+C4h+C4hOC5jCDguYLguIrguITguIjguLLguKPguLjguKPguLHguJXguJnguYwNCivguJPguKPguIfguITguYwg4LiU4LmI4Liy4LiZ4Lit4LiZ4Lix4LiZ4LiV4LmM4Liq4Li44LiCDQor4LiT4Lij4LiH4LiE4LmMIOC4leC4seC5ieC4h+C4p+C4tOC4muC4ueC4peC4ouC5jOC4p+C4tOC4l+C4ouC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguYLguJXguYrguLDguYDguIfguLTguJkNCivguJPguKPguIfguITguYwg4LiX4Lit4LiH4LmA4Lij4Li34Lit4LiHDQor4LiT4Lij4LiH4LiE4LmMIOC5hOC4l+C4ouC4quC4uOC4o+C4tOC4ouC4sA0KK+C4k+C4o+C4h+C4hOC5jCDguJnguYnguK3guKLguKfguIfguKjguYwNCivguJPguKPguIfguITguYwg4LiZ4Li44LiV4LiI4Lij4Lix4LiqDQor4LiT4Lij4LiH4LiE4LmMIOC4muC4uOC4jeC4quC4tOC4l+C4mOC4tOC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguJvguKPguLXguI3guLLguJnguJnguJfguYwNCivguJPguKPguIfguITguYwg4Lic4Lil4Liy4Lih4Li04LiV4LijDQor4LiT4Lij4LiH4LiE4LmMIOC4nuC4o+C4suC4ouC4l+C4reC4hw0KK+C4k+C4o+C4h+C4hOC5jCDguJ7guLTguKPguLTguKLguJ7guKTguJnguJfguYzguKrguIHguLjguKUNCivguJPguKPguIfguITguYwg4LmC4Lie4LiY4Li04Lie4Li44LiB4LiB4Liw4LiZ4LiwDQor4LiT4Lij4LiH4LiE4LmMIOC4oeC4k+C4teC4p+C4h+C4qeC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguYDguKHguJjguLXguKfguLTguKPguLTguKLguLLguKDguKPguJPguYwNCivguJPguKPguIfguITguYwg4Lij4Lit4LiU4Liq4Liy4LiiDQor4LiT4Lij4LiH4LiE4LmMIOC4o+C4uOC5iOC4h+C4p+C4tOC4iuC4suC4meC4tOC4p+C4seC4kuC4meC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguKXguLTguKHguJvguLTguKjguLTguKXguJvguYwNCivguJPguKPguIfguITguYwg4Lin4LiH4Lip4LmM4Liq4Lin4LmI4Liy4LiHDQor4LiT4Lij4LiH4LiE4LmMIOC4p+C4tOC4muC4ueC4peC4ouC5jOC5gOC4iOC4o+C4tOC4jeC4geC4tOC4iA0KK+C4k+C4o+C4h+C4hOC5jCDguKjguKPguLXguJnguLLguKfguLLguKfguIfguKjguYwNCivguJPguKPguIfguITguYwg4Lio4Li04Lil4Lib4LiK4Liz4LiZ4Liy4LiNDQor4LiT4Lij4LiH4LiE4LmMIOC4quC4o+C4o+C4quC4uOC4meC4l+C4ow0KK+C4k+C4o+C4h+C4hOC5jCDguKrguLTguJfguJjguLTguKHguIfguITguKUNCivguJPguKPguIfguITguYwg4Liq4Li44LiX4LiY4Li04Lin4Lix4LilDQor4LiT4Lij4LiH4LiE4LmMIOC5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jA0KK+C4k+C4o+C4h+C4hOC5jCDguKvguKHguLfguYjguJnguKfguIfguKnguYwNCivguJPguKPguIfguITguYwg4Lit4LiU4Li44Lil4Lii4LmM4Lin4Li04LiI4Li04LiV4LijDQor4LiT4Lij4LiH4LiE4LmMIOC4reC4seC4h+C4hOC4sOC4iOC4seC4meC4l+C4o+C5jA0KK+C4k+C4o+C4h+C4hOC5jCDguK3guLjguYjguJnguK3guYjguK3guJkNCivguJPguKPguIfguKjguLHguIHguJTguLTguYwg4LiV4Lix4LmJ4LiH4LmA4LiI4Lij4Li04LiN4Liq4Li44LiC4LiI4Li14Lij4LiwDQor4LiT4Lij4Li04Liq4Liy4Lir4LmMIOC5gOC4q+C4peC4t+C4reC4h+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4k+C4seC4iuC4iuC4siDguIHguKrguLTguJ7guKPguYnguK3guIcNCivguJPguLHguI7guJDguJ7guKMg4Lie4Lij4Lir4Lih4LiI4Li04LiZ4LiU4LiyDQor4LiT4Lix4LiO4LiQ4Li04LiZ4Li1IOC4lOC4p+C4h+C4oOC4tOC4o+C4oeC4ouC5jA0KK+C4k+C4seC4j+C4kOC4nuC4h+C4qOC5jCDguILguIjguKPguYLguIHguKfguLTguJfguKLguYwNCivguJPguLHguI/guJDguLIg4LiZ4LmJ4Lit4Lii4LiZ4Li04Lin4Lij4LiT4LmMDQor4LiT4Lix4LiP4LiQ4LmE4LiK4LiiIOC4quC4suC4ouC4muC4seC4pw0KK+C4k+C4seC4kCDguJbguJnguK3guKHguJ7guLTguIrguLHguKINCivguJPguLHguJAg4Lit4Li04LiZ4LiY4LiB4Liy4LijDQor4LiT4Lix4LiQ4LiB4Liy4LiZ4LiV4LmMIOC4iOC4h+C4lOC4tQ0KK+C4k+C4seC4kOC4geC4suC4oyDguK3guLjguJTguKHguKvguKPguKPguKnguLLguIHguLjguKUNCivguJPguLHguJDguIrguJnguIEg4LmB4LiB4LmI4LiH4Lir4Li04LiZ4LmB4LiB4LmJ4LinDQor4LiT4Lix4LiQ4LiK4Lix4LiiIOC4m+C4tOC4ouC4sOC4p+C4h+C4qOC5jOC4p+C4seC4kuC4meC4sg0KK+C4k+C4seC4kOC4jeC4siDguKXguLXguYnguJ7guYnguJnguJ7guLLguKUNCivguJPguLHguJDguJPguLTguIrguLIg4LiY4LmA4LiZ4Lio4Lie4LiH4Lio4LmM4LiY4Lij4Lij4LihDQor4LiT4Lix4LiQ4LiY4LijIOC4hOC4ueC4lOC4s+C4o+C4h+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4k+C4seC4kOC4meC4seC4meC4l+C4meC5jCDguJfguK3guIfguKfguLTguYDguKjguKkNCivguJPguLHguJDguJvguIHguKPguJPguYwg4LmA4Lil4Liy4LmB4LiB4LmJ4Lin4Lir4LiZ4Li5DQor4LiT4Lix4LiQ4Lie4LiH4Lio4LmMIOC4quC4tOC4o+C4tOC4nuC4peC4seC4h+C4hOC4suC4meC4meC4l+C5jA0KK+C4k+C4seC4kOC4nuC4h+C4qeC5jCDguKrguLHguJnguJXguLTguKjguLLguJnguJXguYwNCivguJPguLHguJDguJ7guKMg4LiZ4Liy4Lih4Lia4Li44Lij4Li1DQor4LiT4Lix4LiQ4Lie4LijIOC4q+C4p+C4seC4h+C4qOC4o+C4teC4leC4o+C4seC4og0KK+C4k+C4seC4kOC4nuC4pSDguIrguYnguLLguIfguKrguLPguKXguLUNCivguJPguLHguJDguJ7guKUg4Lig4Lix4LiX4Lij4LmA4Lij4Li34Lit4LiH4Liq4LiB4Li44LilDQor4LiT4Lix4LiQ4Lie4LilIOC4q+C4p+C4seC4h+C4pOC4l+C4mOC4tOC5jOC5hOC4geC4o+C4geC4uOC4pQ0KK+C4k+C4seC4kOC4oOC4o+C4k+C5jCDguJ7guKPguIHguLTguJXguJXguLTguYLguIrguJXguLTguYDguIjguKPguLTguI0NCivguJPguLHguJDguKLguLIg4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LmMDQor4LiT4Lix4LiQ4Lin4LijIOC4quC4tOC4h+C4q+C4l+C4seC4lQ0KK+C4k+C4seC4kOC4p+C4o+C4o+C4kyDguKPguLHguKjguKHguLXguJ7guKPguKvguKENCivguJPguLHguJDguKfguLHguJLguJnguYwg4Lia4Li44LiZ4LiZ4Liy4LiEDQor4LiT4Lix4LiQ4Lin4Li44LiS4Li0IOC4iOC4suC4o+C4uOC4p+C4o+C4o+C4k+C4suC4geC4ueC4ow0KK+C4k+C4seC4kOC4p+C4uOC4kuC4tCDguJvguLHguI3guJXguLDguYLguI0NCivguJPguLHguJDguKfguLjguJLguLQg4Liq4Li04Lih4Liw4Liq4Li44Lin4Lij4Lij4LiT4Lij4LiH4LiE4LmMDQor4LiT4Lix4LiQ4Liq4Lih4Lie4LilIOC4iOC4s+C4m+C4suC4l+C4tOC4nuC4ouC5jA0KK+C4k+C4seC4kOC4quC4uOC4o+C4suC4h+C4hOC5jCDguKvguKXguLTguKHguYDguIjguKPguLTguI0NCivguJPguLHguJDguLTguKLguLIg4Liq4Lix4LiZ4LiV4Li04LmC4Lii4LiY4Li04LiZDQor4LiT4Lix4Lio4Lig4LijIOC5gOC4reC4teC5iOC4ouC4oeC5guC4reC4oOC4suC4qg0KK+C4k+C4tOC4iuC4suC4oOC4seC4l+C4oyDguIrguKHguKfguLTguIrguLINCivguJPguLjguJXguLTguKjguLTguKnguI/guYwg4Lin4Li04Lia4Li54Lil4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiU4LiZ4Lix4LiiIOC4geC4peC5iOC4reC4oeC5gOC4reC4teC5ieC4ouC4hw0KK+C4lOC4meC4seC4oiDguInguLHguJ7guJ7guKPguKPguJPguKPguLHguIfguKnguLUNCivguJTguJnguLHguKIg4LiX4Li04Lin4Liy4LmA4Lin4LiKDQor4LiU4LiZ4Lix4LiiIOC4nuC4tOC4k+C4o+C4seC4leC4meC5jA0KK+C4lOC4meC4seC4oiDguKfguLHguJLguJnguKPguLHguIrguIHguLTguIgNCivguJTguJnguLHguKIg4Lir4Liw4Liq4Li04LiV4Liw4Lie4LiH4Lip4LmMDQor4LiU4LiZ4Li44LiI4LijIOC5gOC4iOC4tOC4oeC5gOC4iOC4tOC4lOC4nuC4pQ0KK+C4lOC4o+C4o+C4iuC4meC4tSDguYDguJfguKfguLLguJnguLjguKPguLHguIHguKnguYwNCivguJTguKPguLjguJPguJ7guKMg4LiB4Lih4Lil4Lig4Li44LiqDQor4LiU4Lij4Li44LiT4Li1IOC4iOC4seC4meC4lOC4suC5gOC4p+C4teC4ouC4hw0KK+C4lOC4o+C4uOC4k+C4tSDguJXguKPguLXguKjguLTguKPguLTguJ7guLTguKjguLLguKUNCivguJTguKPguLjguJPguLUg4Lia4Li44Lip4Lii4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMDQor4LiU4Lij4Li44LiT4Li1IOC4o+C4seC4geC4quC4seC4leC4ouC5jA0KK+C4lOC4o+C4uOC4k+C4tSDguKjguKPguLXguIrguLHguKLguIHguLjguKUNCivguJTguKPguLjguJPguLUg4Lir4Liy4LiN4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiU4Lil4LiT4Lix4LiP4LiQ4LiyIOC4qOC4o+C4teC5gOC4o+C4t+C4reC4h+C4iuC4teC4ng0KK+C4lOC4peC4pOC4lOC4tSDguKfguLTguJfguKLguLLguKjguLTguKPguLTguIHguLjguKUNCivguJTguKfguIcg4LmA4Liq4Lih4Liy4LiB4Li54LijDQor4LiU4Lin4LiH4LiB4Lih4LilIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4lOC4p+C4h+C4geC4oeC4pSDguJ7guLnguJ7guLHguJLguJnguLLguJnguLjguKPguLHguIHguKnguYwNCivguJTguKfguIfguIHguKHguKUg4Liq4Li04LiZ4LiY4Li44Lia4Li54Lij4LiT4LmMDQor4LiU4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC4hOC4peC4seC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4lOC4p+C4h+C4iOC4seC4meC4l+C4o+C5jCDguYLguKLguJjguLLguKrguLTguIfguKvguYwNCivguJTguKfguIfguIjguLTguJXguJXguYwg4LiB4Liy4Lij4Li44LiT4Liq4LiW4Li04LiV4Lii4LmM4LiK4Lix4LiiDQor4LiU4Lin4LiH4LiU4Liy4LinIOC5geC4i+C5iOC4geC5iuC4p+C4og0KK+C4lOC4p+C4h+C4lOC4suC4pyDguYDguKvguKXguLfguK3guIfguK3guLLguKrguJnguLDguJfguLTguJ7guKLguYwNCivguJTguKfguIfguJXguLIg4LmB4LiV4LiH4Lit4LmI4Lit4LiZDQor4LiU4Lin4LiH4LiV4LiyIOC4quC4oeC4iOC4tOC4leC4o+C5jA0KK+C4lOC4p+C4h+C4l+C4tOC4nuC4ouC5jCDguKfguJnguLDguKDguLnguJXguLQNCivguJTguKfguIfguJnguKDguLIg4Liq4Lin4LiZ4LiY4LiZ4Liy4Lio4Li04Lij4Li0DQor4LiU4Lin4LiH4Lie4LijIOC4hOC4s+C4guC4seC4meC4mOC5jA0KK+C4lOC4p+C4h+C4nuC4oyDguIrguLjguKHguJ7guIfguKnguYzguJfguK3guIcNCivguJTguKfguIfguJ7guKMg4LmE4LiV4Lij4Liq4Li44LiY4Lij4Lij4Lih4Lie4LijDQor4LiU4Lin4LiH4Lie4LijIOC4m+C4tOC4ouC4sOC4iuC4suC4leC4tOC4meC4seC4meC4l+C5jA0KK+C4lOC4p+C4h+C4nuC4oyDguKLguIfguITguYzguKTguJvguKPguLDguJ7guLHguJnguJjguYwNCivguJTguKfguIfguJ7guKMg4Lin4Li04LmE4Lil4Lie4Lij4LmA4LiI4Lij4Li04LiNDQor4LiU4Lin4LiH4Lie4LijIOC4quC4uOC4hOC4meC4mOC5jA0KK+C4lOC4p+C4h+C4nuC4oyDguK3guLbguYnguIfguK3guLHguKHguJ7guKPguKfguLTguYTguKUNCivguJTguKfguIfguKHguJkg4Lin4LiH4Lip4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiU4LiHDQor4LiU4Lin4LiH4Lij4Lix4LiV4LiZ4LmMIOC4lOC5iOC4suC4meC4p+C4seC4kuC4meC4qOC4tOC4o+C4tA0KK+C4lOC4p+C4h+C4o+C4seC4leC4meC5jCDguKjguKPguLXguJfguK3guIcNCivguJTguKfguIfguKTguJTguLUg4LiX4Lin4Li14Lie4LiI4LiZ4LmMDQor4LiU4Lin4LiH4Lik4Lih4LilIOC4o+C4seC4geC4qeC4suC4hOC4uOC4kw0KK+C4lOC4p+C4h+C4quC4oeC4oyDguKHguJPguLXguJzguYjguK3guIcNCivguJTguKfguIfguKrguLjguKHguJkg4Liq4Lih4Lin4Li04LiK4Lix4LiiDQor4LiU4Lin4LiH4LmA4LiU4Li34Lit4LiZIOC4hOC4peC5ieC4suC4ouC4nuC4h+C4qeC5jOC4nuC4seC4meC4mOC5jA0KK+C4lOC4p+C4h+C5gOC4lOC4t+C4reC4mSDguJrguLjguI3guIrguLHguKLguKTguJfguJjguLTguYwNCivguJTguKfguIfguYDguJTguLfguK3guJkg4Liq4Lix4Lii4LmA4LiB4LiV4Li4DQor4LiU4Lin4LiH4LmA4Lie4LiK4LijIOC4reC4o+C4seC4jeC4iuC4o+C4suC4mOC4ow0KK+C4lOC4p+C4h+C5geC4giDguYLguIHguKHguLjguJfguJ7guIfguKjguYwNCivguJTguKfguIfguYPguIgg4LiB4Li14Lij4Liw4Lin4Li04Lio4Liy4Liq4LiB4Li04LiIDQor4LiU4Lin4LiH4LmD4LiIIOC4iuC4suC4p+C4m+C4o+C4sOC4quC4sg0KK+C4lOC4p+C4h+C5g+C4iCDguJfguLHguJ7guJ7guLDguKPguLHguIfguKrguLUNCivguJTguKfguIfguYPguIgg4Lic4Li44LiU4Lib4Lij4Liw4Lig4Liy4LiB4Li44LilDQor4LiU4Lin4LiH4LmD4LiIIOC4o+C4seC4geC5gOC4meC4leC4o+C4quC4suC4hOC4ow0KK+C4lOC4p+C4h+C5g+C4iCDguKrguIfguKfguJnguYHguIHguYnguKcNCivguJTguKfguIfguYPguIgg4Lit4Li44Lib4LmA4Liq4LiZ4Liq4LiB4Li44Lil4Lin4LiH4Lip4LmMDQor4LiU4Lit4LiB4LmE4Lih4LmJIOC4iOC5ieC4reC4ouC4luC4meC4reC4oQ0KK+C4lOC4sOC4q+C5jCDguJTguLXguYDguIjguKPguLTguI0NCivguJTguLHguKrguIvguLHguJnguIvguLTguIfguKvguYwg4LiB4Li44Lil4Liy4LiV4Li1DQor4LiU4Liy4Lij4LmM4LiK4Lix4LmI4LiZIOC4i+C4tOC4h+C4q+C5jA0KK+C4lOC4suC4o+C4k+C4tSDguIjguLPguJvguLINCivguJTguLLguKPguJPguLUg4LiW4Li04Lij4LiY4LiZ4LiB4Li44LilDQor4LiU4Liy4Lij4LiT4Li1IOC5gOC4m+C4o+C4t+C5iOC4reC4h+C4p+C4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4lOC4suC4o+C4k+C4tSDguYDguKHguIbguIHguKfguLUNCivguJTguLLguKPguJPguLUg4Lin4Li04LiK4LiN4LiE4Li44Lib4LiV4LmMDQor4LiU4Liy4Lij4LiT4Li1IOC5gOC4quC4o+C4tOC4oeC4quC4uOC4meC4l+C4o+C4qOC4tOC4peC4m+C5jA0KK+C4lOC4suC4o+C4sOC4geC4siDguKjguLTguKPguLTguKrguLHguJnguJXguLTguKrguLHguKHguKTguJfguJjguLTguYwNCivguJTguLLguKPguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4Liq4LiH4Liq4Li44LiBDQor4LiU4Liy4Lij4LiyIOC5gOC4peC4teC5ieC4ouC4h+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jA0KK+C4lOC4suC4o+C4suC4k+C4tSDguYDguKrguLLguKfguKHguKUNCivguJTguLLguKPguLLguKPguLHguJXguJnguYwg4LiI4Li04LiH4LmA4Liq4LiW4Li14Lii4Lij4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiU4Liy4Lij4Liy4Lij4Lix4LiV4LiZ4LmMIOC4quC4luC4tOC4leC4mOC4o+C4o+C4oeC4meC4ueC4jQ0KK+C4lOC4suC4o+C4suC4p+C4o+C4o+C4kyDguKPguLHguJXguJnguKrguLjguKDguLINCivguJTguLLguKPguLTguJPguLUg4LmA4LiB4Lip4Lih4Liq4Lix4LiZ4LiV4LmMDQor4LiU4Liy4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4reC4meC5gOC4iOC4leC4meC5jA0KK+C4lOC4suC4o+C4uOC4k+C4tSDguKHguLHguYjguJnguITguIcNCivguJTguLLguKXguLHguJQg4Lin4Li04Lih4Li44LiB4LiV4Li04Lia4Li44LiV4LijDQor4LiU4Liy4Lin4LiT4Li1IOC4quC4uOC4guC4oeC4sg0KK+C4lOC4suC4p+C4o+C4uOC5iOC4hyDguJ7guKPguKvguKHguKjguKPguLXguJfguK3guIcNCivguJTguLLguKfguLjguJIg4Lit4Lix4LiK4LiM4Liy4Liq4Lix4LiiDQor4LiU4Liy4Lin4LmA4Lij4Li34Lit4LiHIOC4o+C4reC4lOC4oOC4seC4og0KK+C4lOC4suC5gOC4o+C4qCDguJ7guKPguKPguJPguILguLLguKENCivguJTguLPguKPguIcg4LmA4LiB4Lip4Liw4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiU4Liz4Lij4LiHIOC4l+C4reC4h+C4oeC4suC4gQ0KK+C4lOC4s+C4o+C4hyDguKPguLHguIrguJXguKjguKPguLXguJvguKPguLDguYDguKrguKPguLTguJANCivguJTguLPguKPguIcg4Liq4Li44LiC4Lic4Lil4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4LiU4Liz4Lij4LiH4LiE4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4reC4h+C4ouC4t+C4mQ0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguITguIfguYDguIjguKPguLTguI0NCivguJTguLPguKPguIfguITguYwg4LiK4Li54LiV4Li04LiB4Liy4LiN4LiI4LiZ4LmMDQor4LiU4Liz4Lij4LiH4LiE4LmMIOC4l+C4reC4h+C4nuC4peC4suC4og0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguJvguKPguLXguJTguLLguKDguLHguJfguKPguJ7guIfguKnguYwNCivguJTguLPguKPguIfguITguYwg4Lig4Li54LiX4Lix4LiV4LmC4LiVDQor4LiU4Liz4Lij4LiH4LiE4LmMIOC4p+C4h+C4qeC5jOC4l+C4reC4hw0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguKrguLTguKHguJ7guKXguLTguJ7guLHguJnguJjguLjguYwNCivguJTguLPguKPguIfguITguYwg4Lit4Liy4Lii4Li44LmA4LiI4Lij4Li04LiN4LiB4Li54LilDQor4LiU4Liz4Lij4LiH4Lik4LiX4LiY4Li04LmMIOC4quC4seC4meC4leC4tOC4m+C4suC4leC4tQ0KK+C4lOC4s+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguKHguLDguKXguLTguJfguK3guIcNCivguJTguLPguKPguIfguYDguIHguLXguKLguKPguJXguLQg4Lih4Li04LiV4Lij4Lig4Lix4LiB4LiU4Li1DQor4LiU4Liz4Lij4Li0IOC4nOC4suC4h+C4ouC4reC4ouC4i+C5ieC4suC4og0KK+C4lOC4s+C4o+C4tOC4q+C5jCDguJvguKPguLjguIfguYHguJXguYjguIfguIHguLTguIgNCivguJTguLPguYDguIHguLTguIcg4LiI4Lix4LiZ4LiX4Lij4Liy4Lib4Lij4Liw4Lig4Liy4LmA4Lin4LiKDQor4LiU4Liz4LmA4LiZ4Li04LiZIOC5gOC4nOC5iOC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4lOC4tOC4mSDguKPguLfguYjguJnguJ7guLTguJfguLHguIHguKnguYwNCivguJTguLTguKXguIEg4Lib4Lij4Liy4LiH4LiE4LmM4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMDQor4LiU4Li04Lil4LiBIOC4quC4suC4oeC4peC5gOC4p+C4ig0KK+C4lOC4tOC4qeC4nuC4h+C4hOC5jCDguJ7guKTguJLguLTguJjguLLguJTguLINCivguJTguLTguYDguKPguIEg4LmA4LiB4LiV4Li44Lin4Lix4Liq4Lir4LmMDQor4LiU4Li04LmA4Lij4LiBIOC5guC4iuC4leC4tOC4p+C4tOC4iOC4tOC4leC4ow0KK+C4lOC4tOC5gOC4o+C4gSDguJrguLLguIfguYDguILguLXguKLguKcNCivguJTguLTguYDguKPguIEg4Lih4Li14Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiU4Li04LmA4Lij4LiBIOC4qOC4seC4geC4lOC4tQ0KK+C4lOC4tOC5gOC4o+C4gSDguYLguK7guKPguLINCivguJTguLXguKHguLHguYjguJkg4LiB4Lit4Lia4Lie4Li04Lih4Liy4LiiDQor4LiU4Li44LiI4LiU4Liy4LinIOC4quC4uOC4l+C4mOC4tOC4m+C4o+C4p+C4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4lOC4uOC4peC4ouC4meC4tOC4leC4ouC5jCDguK3guLjguJTguKHguKfguIfguKjguYzguJfguKPguLHguJ7guKLguYwNCivguJTguLjguKnguI7guLUg4LmA4LiI4Lij4Li04LiN4LiI4Li04LiV4LiB4LijDQor4LiU4Li44Lip4LiO4Li1IOC4nuC4seC4geC4leC4o+C4nuC4seC4meC4mOC4suC4meC4meC4l+C5jA0KK+C4lOC4uOC4qeC4juC4tSDguKrguLTguJfguJjguLTguJfguK3guIcNCivguJTguLjguKnguI/guLUg4Lij4Lix4LiV4LiZ4Liy4Liq4Lix4LiH4LiB4Liy4LijDQor4LiU4Li44Lip4LiT4Li1IOC5gOC4peC4o+C4suC4oeC4seC4jQ0KK+C4lOC4uOC4qeC4lOC4tSDguK3guJnguLHguJnguJXguYzguKXguLHguIHguKnguJPguYzguIHguLLguKMNCivguJTguLjguKrguLTguJUg4LmB4LiI4LmI4Lih4Lio4Lij4Li1DQor4LiU4Li44Liq4Li04LiVIOC4muC4uOC4qeC4muC4sg0KK+C4lOC4uOC4quC4tOC4lSDguKfguLTguKPguKLguKjguLTguKPguLQNCivguJTguLjguKrguLTguJXguJjguKPguKPguKHguITguLjguJMg4Lie4Lij4Liw4LiE4Lij4Li5DQor4LmA4LiU4LiKIOC4luC4tOC4leC4ouC5jOC4quC4h+C4p+C4mQ0KK+C5gOC4lOC4iiDguKvguJnguLnguJnguYnguLMNCivguYDguJTguIrguJ7guKUg4LmA4Lir4Lij4Li14Lii4LiN4Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4LmA4LiU4LiK4LiyIOC4geC5ieC4reC4h+C5hOC4nuC4o+C4tOC4meC4l+C4o+C5jA0KK+C5gOC4lOC4iuC4siDguIjguLLguKPguLjguKHguJPguLXguYLguKPguIjguJnguYwNCivguYDguJTguIrguLIg4LmB4LiL4LmI4LmB4LiV4LmJDQor4LmA4LiU4LiK4LiyIOC5gOC4l+C4qOC4sOC4qOC4tOC4o+C4tA0KK+C5gOC4lOC4iuC4siDguYDguJvguLXguYjguKLguKHguKPguLLguKjguKPguLUNCivguYDguJTguIrguLIg4Lih4Li14Lij4Liw4LmA4Liq4LiZDQor4LmA4LiU4LiK4LiyIOC5hOC4p+C4p+C5iOC4reC4hw0KK+C5gOC4lOC4iuC4siDguKrguLjguJLguJnguIHguLTguIjguIHguLjguKUNCivguYDguJTguIrguLIg4Lit4Li04LiZ4LiX4LiZ4Li04LilDQor4LmA4LiU4Lin4Li04LiUIOC5gOC4lOC4meC4meC4teC5iA0KK+C5gOC4lOC4t+C4reC4mSDguJvguLTguKLguLDguKHguLLguKXguKLguYzguKHguLLguKgNCivguYDguJTguLfguK3guJnguJfguLTguJ7guKLguYwg4LiK4Lix4Lii4Lie4Lix4LiZ4LiY4LmMDQor4LmA4LiU4Li34Lit4LiZ4LmA4Lie4LmH4LiNIOC4kOC4suC4m+C4meC4suC4iuC4seC4og0KK+C5gOC4lOC4t+C4reC4meC5gOC4nuC5h+C4jSDguKfguKPguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguJTguYLguIog4Lin4Li44LiS4Li04LiB4Liy4LiN4LiI4LiZ4Liy4Lin4LiH4Lio4LmMDQor4LmA4LiU4LmI4LiZIOC4qOC4tOC4o+C4tOC4muC4uOC4jQ0KK+C5gOC4lOC5iOC4meC4meC4oOC4siDguKjguLLguKXguLTguITguLjguJvguJUNCivguYHguJTguIcg4LiI4Lij4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LmB4LiU4LiHIOC4lOC5iOC4suC4meC5geC4iOC5ieC4hw0KK+C5geC4lOC4hyDguKHguYjguKfguIfguIfguLLguKENCivguYHguJTguIcg4Lir4LiZ4Li54Lie4Lix4LiZ4LiY4LmMDQor4LmB4LiU4LiZ4LiK4Lix4LiiIOC4guC4suC4p+C4ieC4reC5ieC4reC4mQ0KK+C5hOC4lOC5ieC5gOC4reC5h+C4hyDguYHguIvguYjguJzguLnguYgNCivguJXguJXguLTguKLguLIg4LiI4Li04LiZ4Liy4Lin4LiH4Lio4LmMDQor4LiV4Lij4Lij4LiB4Lie4LiH4Lip4LmMIOC4q+C4suC4jeC4nuC4tOC4l+C4seC4geC4qeC5jOC4jeC4suC4leC4tA0KK+C4leC4o+C4sOC4geC4ueC4pSDguIjguLHguJnguYHguJXguIcNCivguJXguKPguLHguKLguJ7guIjguJnguYwg4LiV4Li04Liq4Lij4Liw4Lie4LiH4Lio4LmMDQor4LiV4Lij4Li14LiK4Lix4LiiIOC4quC4uOC4l+C4mOC4tOC5gOC4iuC4t+C5ieC4reC4meC4suC4hA0KK+C4leC4o+C4teC4o+C4sOC4meC4seC4meC4l+C5jCDguKHguLDguKXguLDguITguLMNCivguJXguKPguLXguYDguJfguJ4g4LmA4Lie4Li14Lii4Lij4Lig4Lix4LiB4LiU4Li1DQor4LiV4Lil4Lix4LiaIOC4oeC4teC4quC4seC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4leC4p+C4h+C4nuC4oyDguJjguJnguLHguIfguITguYDguKfguIrguKfguLTguJrguLnguKXguKLguYwNCivguJXguKfguIfguKrguLTguJfguJjguLTguYwg4Lih4LiZ4Lix4Liq4LiU4Liz4Lij4LiHDQor4LiV4Lit4LiHIOC4geC5ieC4suC4meC4l+C4reC4hw0KK+C4leC5iOC4reC4muC4uOC4jSDguKrguLjguKfguKPguKPguJPguYDguKDguKrguLHguIoNCivguJXguYjguK3guKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4Liq4Liy4LiiDQor4LiV4LmI4Lit4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4ouC4ueC5iOC4p+C4seC4kuC4meC4sg0KK+C4leC5ieC4reC4oiDguJnguLTguYjguKHguKrguLjguKfguKPguKPguJMNCivguJXguLDguKfguLHguJkg4LiW4Liy4Lin4Lij4Lit4LiZ4Li44Lih4Liy4LioDQor4LiV4Lix4LiH4LiJ4LmI4Liy4LiiIOC5geC4geC5ieC4p+C5hOC4nuC4o+C4seC4ig0KK+C4leC4seC5ieC4h+C4ruC4seC5iOC4h+C5gOC4hOC4teC5ieC4ouC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguJXguLHguYnguJkg4LiK4Lil4LiY4Liy4LijDQor4LiV4Liy4LiaIOC4geC4o+C4suC4meC4iOC4o+C4ueC4jQ0KK+C4leC5ieC4suC5gOC4geC4teC4ouC4hyDguYHguIvguYjguYHguJXguYkNCivguJXguLTguYnguIfguIrguLjguJkg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4LiV4Li04LmL4LihIOC4muC4uOC4jeC4quC4meC4mOC4tOC5jA0KK+C4leC4tOC5i+C4pyDguKrguLLguKLguK3guLjguJrguKUNCivguJXguLXguYnguYDguK7guLXguKLguIcg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LiV4Li14LmLIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4leC4uOC5iuC4geC4leC4siDguYHguIvguYjguYHguJXguYkNCivguJXguLjguYjguKEg4LmB4LiL4LmI4LmA4LiW4Li14Lii4LiZDQor4LiV4Li44Lil4Lii4LiyIOC4quC4teC4q+C4oeC4suC4geC4quC4uOC4gQ0KK+C4leC4uOC5iiDguYDguKrguKPguLTguKHguKTguJfguJjguLTguKPguIfguITguYwNCivguYDguJXguLLguLDguYDguITguLXguYnguKLguIcg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LmA4LiV4Li04LihIOC4quC4suC4oeC4meC4m+C4suC4pQ0KK+C5gOC4leC4tOC4oeC4qOC4o+C4tSDguKrguLjguKPguJ7guLHguJnguJjguLjguYwNCivguYDguJXguLTguKHguKjguLHguIHguJTguLTguYwg4Lit4Li04Lie4Lig4Li54LiU4LihDQor4LmA4LiV4Li14Lii4LiHIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C5gOC4leC4teC4ouC4h+C4l+C4hyDguYHguIvguYjguYLguIfguYnguKcNCivguYDguJXguLXguKLguKfguYDguIvguLXguKLguLAg4LmB4LiL4LmI4LiJ4Lix4LmI4LinDQor4LmA4LiV4Li14LmJ4Lii4LmC4Lit4LinIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C5gOC4leC4t+C4reC4meC4iOC4tOC4leC4leC5jCDguYDguIjguKPguLTguI3guKrguLjguIINCivguYDguJXguLfguK3guJnguJXguLIg4Lir4Liy4LiN4Lin4Li04Lij4Li04Lii4Liw4Lik4LiX4LiY4LiyDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC4h+C4suC4oeC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C5gOC4leC4t+C4reC4meC5g+C4iCDguYHguIvguYjguYDguK7guYfguIcNCivguYDguJXguLfguK3guJnguYPguIgg4LmA4LiZ4LiV4Lij4LmM4LiX4Lit4LiHDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC4nuC4ueC4meC4peC5ieC4s+C5gOC4peC4tOC4qA0KK+C5gOC4leC4t+C4reC4meC5g+C4iCDguKXguLTguYnguKHguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguYDguJXguLfguK3guJnguYPguIgg4Liq4Lix4LiH4LiC4Lij4Lix4LiV4LiZ4LmMDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC4reC4q+C4tOC4h+C4quC5guC4gQ0KK+C5gOC4leC5h+C4geC4ouC5ieC4hyDguYHguIvguYjguKXguLTguYnguKENCivguYDguJXguYfguIfguIfguYnguKfguJkg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LmA4LiV4LmH4Lih4LiU4Lin4LiHIOC5gOC4geC5h+C4qeC4leC4o+C4sOC4l+C4seC4lQ0KK+C5gOC4leC5h+C4oeC5gOC4lOC4t+C4reC4mSDguKvguLTguKPguLHguJPguKLguLHguKnguJDguLXguJXguLQNCivguYHguJXguIfguJzguLbguYjguIfguJzguLLguKIg4Lie4Li04Lio4Lih4Lix4LiiDQor4LmB4LiV4LmJ4Liq4Li1IOC5geC4i+C5iOC5gOC4i+C4teC4ouC4pw0KK+C5guC4leC4sOC4reC4ueC5iiDguYHguIvguYjguYDguJXguLXguKINCivguYTguJXguKPguJ7guKMg4Lil4Lin4Liq4Li44LiVDQor4LmE4LiV4Lij4Lij4LiH4LiE4LmMIOC4oeC4q+C4suC4p+C4suC4k+C4tOC4iuC4ouC5jOC4p+C4h+C4qOC5jA0KK+C5hOC4leC4o+C4o+C4seC4leC4meC5jCDguKjguLTguKPguLTguJjguKPguKPguKENCivguYTguJXguYnguIjguLjguYnguKIg4LmB4LiL4LmI4Lib4Li24LiHDQor4LiW4LiZ4Lit4LihIOC5gOC4geC4peC4suC5gOC4geC4peC4teC5ieC4ouC4hw0KK+C4luC4meC4reC4oSDguIrguKXguK3guK3guKLguLnguYgNCivguJbguJnguK3guKEg4LiY4Li14Lij4Liy4LiZ4Li44LiV4Lij4LmMDQor4LiW4LiZ4Lit4LihIOC4m+C4tuC4h+C4m+C4o+C4sOC4ouC4ueC4ow0KK+C4luC4meC4reC4oSDguKHguLLguKXguLLguIHguKPguJPguYwNCivguJbguJnguK3guKEg4Lio4Lij4Li14Lil4Liy4Lib4Lix4LiHDQor4LiW4LiZ4Lit4LihIOC4q+C4o+C4tOC4meC4l+C4o+C4seC4leC4meC5jA0KK+C4luC4meC4reC4oeC4iOC4tOC4lSDguJ7guKPguKvguKHguJ7guLHguJLguJnguYwNCivguJbguJnguK3guKHguJ7guIfguKjguYwg4Liq4Li44Lin4Lix4LiS4LiZ4LiY4Lij4Lij4LihDQor4LiW4LiZ4Lit4Lih4Lio4Lij4Li1IOC5geC4i+C5iOC5gOC4iOC4teC5iOC4og0KK+C4luC4meC4reC4oeC4qOC4o+C4tSDguKfguLHguIfguYTguJ7guJrguLnguKXguKLguYwNCivguJbguJnguK3guKHguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LmD4Lia4LmD4Lir4LiN4LmIDQor4LiW4LiZ4Lix4LiUIOC4meC4suC4hOC5geC4geC4oeC4l+C4reC4hw0KK+C4luC4meC4tOC4oSDguKHguLLguJnguLDguIHguKfguLTguJkNCivguJbguKHguKLguLIg4Lin4LiH4Lip4LmM4Liq4LiH4LiG4LmMDQor4LiW4Lin4Lix4Lil4Lii4LmMIOC5geC4geC5ieC4p+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4luC4p+C4seC4peC4ouC5jCDguJfguLTguKHguKXguK3guKLguYHguIHguYnguKcNCivguJbguKfguLHguKXguKLguYwg4Lig4Lij4Li04LiZ4LiX4LiZ4Lix4LiZ4LiX4LmMDQor4LiW4Lin4Lix4Lil4Lii4LmMIOC4quC4tOC4h+C4q+C5jOC4h+C4suC4oQ0KK+C4luC4p+C4tOC4pSDguIHguLTguIjguKrguKHguYPguIgNCivguJbguKfguLTguKUg4LmA4LiI4Lij4Li04LiN4Lio4Li04Lij4Li04Liq4Li44LiX4LiY4Li04LiB4Li44LilDQor4LiW4Lin4Li04LilIOC5gOC4luC4suC4p+C5jOC4iOC4uQ0KK+C4luC4p+C4tOC4pSDguJrguLjguI3guIHguKXguYjguK3guKENCivguJbguKfguLTguKUg4Lie4Li24LiH4Lii4LiyDQor4LiW4Lin4Li04LilIOC4o+C4t+C5iOC4meC4ouC4qA0KK+C4luC4p+C4tOC4pSDguKjguKPguLXguYDguIjguLXguKLguKENCivguJbguKfguLTguKUg4Liq4Li44LmA4Lih4LiG4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiW4Lin4Li04Lil4Lin4LiH4Lio4LmMIOC4iuC5iOC4p+C4h+C4iuC4tOC4hw0KK+C4luC4suC4p+C4oyDguIHguLTguIjguJfguK3guIfguJbguLLguKfguKMNCivguJbguLLguKfguKMg4LmA4LiH4Li04LiZ4LmA4Lie4LiK4Lij4LiX4Lit4LiH4LiE4LizDQor4LiW4Liy4Lin4LijIOC4iuC4peC4sOC5gOC4reC4oQ0KK+C4luC4suC4p+C4oyDguJXguLHguYnguIfguKrguKvguYTguKHguJXguKPguLUNCivguJbguLLguKfguKMg4LiZ4LmI4Lin4Lih4LmB4LiB4LmJ4LinDQor4LiW4Liy4Lin4LijIOC4m+C4suC4meC4o+C4uOC5iOC4hw0KK+C4luC4suC4p+C4oyDguKDguLnguKPguLXguYLguKPguIjguJnguYwNCivguJbguLLguKfguKMg4Lil4LmJ4Lin4LiZ4Lij4Lix4LiV4LiZ4LmMDQor4LiW4Liy4Lin4LijIOC4p+C4teC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4luC4suC4p+C4oyDguKrguLjguILguJ7guLTguJfguLHguIHguKnguYwNCivguJbguLLguKfguKMg4Lit4Lij4Lix4LiN4Lig4Li54Lih4Li0DQor4LiW4LmJ4LizIOC5gOC4lOC4iuC4pOC4lOC4tQ0KK+C4luC4tOC4o+C4p+C4seC4kuC4meC5jCDguYDguKXguLTguKjguKHguKvguLLguJfguKPguLHguJ7guKLguYwNCivguJbguLjguIfguYDguIfguLTguJkg4Lie4Lix4LiZ4LiY4Li44LmM4LiE4Li54LiTDQor4LmA4LiW4Lil4Li04LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4muC4seC4k+C4keC4tOC4leC4nuC4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C5geC4luC4oSDguIjguLHguJnguJfguKPguJfguKgNCivguYHguJbguKcg4LmE4LiV4Lij4Lia4Lij4Lij4LiT4LmMDQor4LiX4LiZ4LiHIOC4iOC4o+C4ueC4jeC4iuC4suC4leC4tOC4o+C4seC4geC4qeC5jA0KK+C4l+C4meC4hyDguYHguJ7guITguIfguITguLINCivguJfguJnguIfguITguYwg4LiB4Li14Lij4Lin4Li04LiX4Lii4LmMDQor4LiX4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4hOC4uOC4k+C4suC4quC4luC4tOC4leC4ouC5jOC4iuC4seC4og0KK+C4l+C4meC4h+C4qOC4seC4geC4lOC4tOC5jCDguJfguLHguKjguJnguKDguLHguIHguJTguLUNCivguJfguJnguIfguKjguLHguIHguJTguLTguYwg4Lig4Lix4LiX4Lij4LmE4LiK4Lii4LiZ4Lix4LiZ4LiX4LmMDQor4LiX4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4o+C4suC4jeC4iuC4t+C5iOC4mQ0KK+C4l+C4meC4seC4meC4l+C5jOC4iuC4seC4oiDguJ7guIfguKjguYzguJ7guLTguJ7guLHguJLguJnguYzguYDguKfguIoNCivguJfguKEg4LmA4LiZ4Li14Lii4Lih4Lia4Li44Lia4Lic4LiyDQor4LiX4Lij4LiHIOC4nOC4lOC4uOC4h+C4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4l+C4o+C4h+C4hOC4uOC4kyDguYDguKXguLTguKjguKTguJfguJjguLTguYzguYDguJTguIrguLINCivguJfguKPguIfguIrguLHguKIg4LiX4Lit4LiH4LmA4Lil4LmH4LiBDQor4LiX4Lij4LiH4LiK4Lix4LiiIOC4qOC4tOC4o+C4tOC4quC4o+C5ieC4reC4og0KK+C4l+C4o+C4h+C4mOC4o+C4o+C4oSDguJvguYjguLLguJ7guIHguLjguKUNCivguJfguKPguIfguJ7guKMg4Lio4Lij4Li14Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LiX4Lij4LiH4Lie4LilIOC4iuC4ueC5gOC4iuC4tOC4lA0KK+C4l+C4o+C4h+C4nuC4pSDguYHguJ7guJfguKLguYzguKPguLHguIHguKnguYwNCivguJfguKPguIfguJ7guKUg4Liq4Li44LiX4LiY4Li04LmA4Liq4Lij4Li04LihDQor4LiX4Lij4LiH4Lii4LioIOC5gOC4hOC4o+C4t+C4reC4oeC4seC4h+C4geC4ow0KK+C4l+C4o+C4h+C4ouC4qCDguKvguKPguLTguKPguLHguIHguKnguYzguKrguIHguLjguKUNCivguJfguKPguIfguKfguLLguJQg4LiC4LiZ4Lix4LiZ4LmE4LiX4LiiDQor4LiX4Lij4LiH4Lin4Li44LiS4Li0IOC5hOC4iuC4ouC4quC4uOC4o+C4tOC4p+C4tOC4o+C4seC4leC4meC5jA0KK+C4l+C4o+C4h+C4p+C4uOC4kuC4tCDguKLguLLguJfguYnguKfguKENCivguJfguKPguIfguKjguKPguLUg4LmA4LiJ4Lil4Li04Lih4LiN4Liy4LiV4Li0DQor4LiX4Lij4LiH4Lio4Lij4Li1IOC4reC4tOC4meC5hOC4iuC4ouC4sA0KK+C4l+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguInguLHguJXguKPguJTguLPguKPguIfguJjguKPguKPguKENCivguJfguKPguIfguKjguLHguIHguJTguLTguYwg4LiX4LiZ4Li44Lia4Liz4Lij4Li44LiH4Liq4Liy4Liq4LiZ4LmMDQor4LiX4Lij4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4seC4meC4mOC4uOC4oeC4suC4qA0KK+C4l+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKnguYzguIvguLTguYnguKENCivguJfguKPguIfguKjguLHguIHguJTguLTguYwg4Liq4Li44LiC4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4LiX4Lij4LiH4Lio4Li04Lil4Lib4LmMIOC5gOC4iOC4o+C4tOC4jeC4ouC4seC4hw0KK+C4l+C4o+C4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguIjguLLguKPguLjguYDguIHguLXguKLguKPguJXguLTguILguIjguKMNCivguJfguKPguIfguYDguIHguLXguKLguKPguJXguLTguYwg4LiY4Lij4Lij4Lih4Liy4Lig4Li04Lin4Lix4LiZ4LiX4LmMDQor4LiX4Lij4Lij4Lio4LiZ4Lix4LiZ4LiX4LmMIOC5geC4ouC5ieC4oeC4geC4peC4teC4muC4muC4seC4pw0KK+C4l+C4o+C4o+C4qOC4p+C4o+C4o+C4kyDguJnguLHguJnguIrguJnguIENCivguJfguKPguLHguJ7guKLguYwg4LiX4Li04LiZ4Lin4LiH4LiE4LmMDQor4LiX4Lik4Lip4LiO4Li1IOC4reC4suC4qeC4suC4o+C4seC4kA0KK+C4l+C4p+C4meC4l+C4reC4hyDguYDguJvguKXguLXguYjguKLguJnguKDguLHguIHguJTguLUNCivguJfguKfguLTguIHguLIg4LmA4Lit4LiB4LiC4LiI4Lij4Lin4LiH4Lip4LmMDQor4LiX4Lin4Li04LiKIOC4p+C4uOC4kuC4tOC4o+C4seC4geC4qeC5jOC4iuC4seC4og0KK+C4l+C4p+C4tOC4nuC4oyDguJDguLTguJXguLTguJjguKPguKPguKHguKrguKfguLHguKrguJTguLTguYwNCivguJfguKfguLUg4LmA4LiB4LiV4Li44LiX4Lix4Lia4LiX4Li04LihDQor4LiX4Lin4Li1IOC4hOC4h+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4l+C4p+C4tSDguIjguLHguJnguJfguKPguLUNCivguJfguKfguLUg4LmA4LiJ4Lii4LiX4Li44LihDQor4LiX4Lin4Li1IOC5geC4i+C5iOC4iOC4tOC4pw0KK+C4l+C4p+C4tSDguJXguLLguJXguLDguKLguLLguJnguJnguJfguYwNCivguJfguKfguLUg4LiX4Lit4LiH4LmD4Lia4LmD4Lir4LiN4LmIDQor4LiX4Lin4Li1IOC4meC4p+C4peC5gOC4iOC4o+C4tOC4jQ0KK+C4l+C4p+C4tSDguJrguLjguI3guJbguJnguK3guKHguKfguIfguKjguYwNCivguJfguKfguLUg4LmA4Lib4Li14LmI4Lii4Lih4Lie4LiH4Lio4LmM4Liq4Li44LiCDQor4LiX4Lin4Li1IOC4nuC4seC4meC4mOC4uOC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4l+C4p+C4tSDguKDguLnguYjguJXguKPguLDguIHguLnguKUNCivguJfguKfguLUg4Lij4Lit4LiU4LiI4Lij4Li54LiNDQor4LiX4Lin4Li1IOC4peC4teC4peC4suC4nuC4seC4meC4mOC4tOC4quC4tOC4l+C4mOC4tA0KK+C4l+C4p+C4tSDguKfguLLguKjguJvguKPguLDguYDguKrguKPguLTguJANCivguJfguKfguLUg4Lio4Li04Lij4Li0DQor4LiX4Lin4Li1IOC4quC4s+C4o+C4suC4jeC4p+C4h+C4qeC5jA0KK+C4l+C4p+C4tSDguKrguLjguYLguIHguKjguKUNCivguJfguKfguLUg4LmC4Lir4LmJ4LmE4LiX4LiiDQor4LiX4Lin4Li1IOC4reC4uOC4leC4quC4suC4q+C4leC4seC4mQ0KK+C4l+C4p+C4teC4iuC4seC4oiDguIjguLTguKPguYHguKrguIfguJfguK3guIcNCivguJfguKfguLXguIrguLHguKIg4LmA4Lia4LiN4LiI4Liy4LiH4LiE4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiX4Lin4Li14LiK4Lix4LiiIOC4p+C4tOC4o+C4tOC4ouC4sOC4p+C4h+C4qOC5jOC4quC4geC4uOC4pQ0KK+C4l+C4p+C4teC4l+C4o+C4seC4nuC4ouC5jCDguIrguYnguLLguIfguYHguIHguYnguKcNCivguJfguKfguLXguJsg4LmA4LiC4Li14Lii4Lin4Liq4LiZ4Lix4LmI4LiZDQor4LiX4Lin4Li14LibIOC5gOC4meC4leC4o+C4meC4tOC4ouC4oQ0KK+C4l+C4p+C4teC4myDguYTguKfguKLguJTguLUNCivguJfguKfguLXguJzguKUg4Lin4LiH4Lio4LmM4LmA4Lil4Li34LmI4Lit4Lii4Lik4LiX4LiY4Li04LmMDQor4LiX4Lin4Li14Lie4LijIOC4meC4tOC4oeC4tOC4leC4o+C4p+C4o+C4nuC4iOC4meC5jA0KK+C4l+C4p+C4teC4nuC4seC4kuC4meC5jCDguITguKXguYjguK3guIfguIHguLTguIjguYLguKPguIjguJnguYwNCivguJfguKfguLXguKXguLHguIHguKnguJPguYwg4LmA4LiX4Lie4Lir4Lix4Liq4LiU4Li04LiZIOC4kyDguK3guKLguLjguJjguKLguLINCivguJfguKfguLXguKfguKPguKPguJMg4Lie4Lij4Lir4Lih4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4LiX4Lin4Li14Lin4Lix4LiS4LiZ4LmMIOC4oOC4ueC4oeC4tQ0KK+C4l+C4p+C4teC4qOC4o+C4tSDguK3guLHguJXguJXguLDguJnguLHguJnguJfguJnguYwNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4LmA4LiC4LmH4Lih4LmA4Lie4LmH4LiK4Lij4LmMDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4tOC4o+C4muC4uOC4jeC4p+C4k+C4tOC4iuC4ouC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguIvguK3guYDguIvguKfguLUNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4LiV4Lix4LiZ4LmB4Liq4LiZ4LiX4Lit4LiHDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4mOC4o+C4o+C4oeC4meC4tOC4oOC4sg0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guYLguJ7guJjguLTguYwNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Lie4Lij4Liw4Liq4Lin4LmI4Liy4LiHDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4q+C4iuC4p+C5guC4o+C4iOC4meC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguKXguLTguILguLTguJXguIrguLHguIrguKfguLLguKXguIHguLjguKUNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Lin4Li04Lin4Lix4LiS4LiZ4LiC4LiI4Lij4Liq4Li44LiCDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4quC4geC4uOC4peC4nuC4pOC4geC4qeC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguKrguLjguKDguKrguLTguJfguJjguLTguYzguKHguIfguITguKUNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Lit4LiZ4Li44Liq4LiZ4LiY4Li04LmMDQor4LiX4Lin4Li14Lio4Li04Lil4LibIOC4l+C4tOC4nuC5guC4geC4oeC4uOC4lw0KK+C4l+C4p+C4teC4quC4tOC4mSDguIrguLTguJnguLDguJ7guLHguJLguJnguKfguIfguKjguYwNCivguJfguKfguLXguKrguLjguIIg4Lit4Lih4Lij4Liq4Li04LiZ4Lin4Lij4LiK4Lix4LiiDQor4LiX4Lin4Li14LmB4Liq4LiHIOC5hOC4q+C4peC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4l+C4qOC4meC4suC4o+C4liDguKDguKfguKDguLnguJXguLLguJnguJnguJfguYwNCivguJfguKjguJ7guKMg4LiV4Li44Lil4Liy4LiY4Lij4Lij4Lih4LiB4Li04LiIDQor4LiX4Lio4Lie4LijIOC4oeC4q+C4suC4lOC5hOC4l+C4og0KK+C4l+C4qOC4nuC4oyDguYDguKvguKXguYjguLLguK3guLTguJnguJfguKPguYwNCivguJfguKjguJ7guKUg4LiX4LiZ4LiX4Liy4LiZDQor4LiX4Lio4Lie4LilIOC4quC4tOC4meC5geC4meC5iOC4meC4lOC4s+C4o+C4hw0KK+C4l+C4q+C4suC4oyDguILguLPguKvguLTguKPguLHguI0NCivguJfguK3guIcg4LiZ4Liy4LiE4LiZ4Liy4Lin4LiyDQor4LiX4Lit4LiHIOC5gOC4q+C4oeC4t+C4reC4meC5gOC4lOC4ig0KK+C4l+C4reC4h+C4guC4suC4pyDguIjguLTguJXguKPguYzguKDguLHguIHguJTguLUNCivguJfguK3guIfguITguLMg4LmB4LiB4LmJ4Lin4Lia4Lix4Lin4LiU4Li1DQor4LiX4Lit4LiH4LiE4LizIOC5guC4iuC4hOC4p+C4tOC4muC4ueC4peC4ouC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4l+C4reC4h+C4hOC4syDguJjguKPguKPguKHguJvguLHguI3guI3guLINCivguJfguK3guIfguITguLMg4Lic4LmI4Lit4LiH4LmD4LiqDQor4LiX4Lit4LiH4LiE4LizIOC4ouC4reC4lOC5gOC4h+C4tOC4mQ0KK+C4l+C4reC4h+C4hOC4syDguKjguLTguKPguLTguYLguKoNCivguJfguK3guIfguITguLMg4Lit4Lij4Li44LiT4Lio4Li04Lij4Li0DQor4LiX4Lit4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC4l+C4suC4p+C4h+C4qeC5jA0KK+C4l+C4reC4h+C4iuC4uOC4miDguJnguLTguKXguJ7guKXguLHguJoNCivguJfguK3guIfguJTguLUg4LiE4LiK4Liy4LmE4Lie4LijDQor4LiX4Lit4LiH4LiU4Li1IOC4lOC4meC4leC4o+C4teC5gOC4quC4meC4suC4sA0KK+C4l+C4reC4h+C4lOC4tSDguJrguLPguKPguLjguIfguKrguLTguJkNCivguJfguK3guIfguJTguLUg4LmC4Lie4LiY4Li04LmM4LmA4Lic4Li34Lit4LiBDQor4LiX4Lit4LiH4LiU4Li1IOC4p+C4tOC5gOC4qOC4qeC4pOC4l+C4mOC4tOC5jA0KK+C4l+C4reC4h+C4lOC4tSDguKvguKPguKPguKnguITguLjguJPguLLguKPguKHguJPguYwNCivguJfguK3guIfguJfguKfguLUg4Lie4Li04Lih4LmA4Liq4LiZDQor4LiX4Lit4LiH4LiY4Lix4LiKIOC4l+C4reC4h+C4m+C4o+C4sOC4quC4suC4meC4hOC4uOC4kw0KK+C4l+C4reC4h+C4m+C4peC4tOC4pyDguIHguLTguIjguYHguIjguYjguKHguYDguKXguLTguKgNCivguJfguK3guIfguJvguK3guJkg4LmB4Liq4LiZ4Lib4Liw4LiX4LiwDQor4LiX4Lit4LiH4Lie4Lix4LiZ4LiY4LmMIOC5g+C4iOC5geC4geC5ieC4pw0KK+C4l+C4reC4h+C4nuC4ueC4mSDguJfguKPguLHguJ7guKLguYzguKrguIfguKfguJkNCivguJfguK3guIfguJ7guLnguJkg4Liq4Li44LiX4Lix4Lio4LiZ4LmMDQor4LiX4Lit4LiH4Lih4LmJ4Lin4LiZIOC4geC4o+C4sOC4muC4tOC4peC4quC4tOC4h+C4q+C5jA0KK+C4l+C4reC4h+C4oeC4siDguIjguK3guKHguITguLPguKrguLTguIfguKvguYwNCivguJfguK3guIfguKLguKfguJkg4LmB4LiI4LmI4Lih4Lin4LiH4Lip4LmMDQor4LiX4Lit4LiH4Lii4LmJ4Lit4LiiIOC4m+C4suC4meC4ouC5ieC4reC4og0KK+C4l+C4reC4h+C4ouC4uOC5ieC4mSDguJvguKPguLDguYDguKrguKPguLTguJDguKjguLHguIHguJTguLTguYwNCivguJfguK3guIfguKXguYnguK3guKEg4LmA4Liq4LmH4LiH4Liq4Lih4Liy4LiZDQor4LiX4Lit4LiH4Lio4Li54LiZ4Lii4LmMIOC4nOC4suC4geC4sg0KK+C4l+C4reC4h+C4quC4tSDguKrguLHguIfguITguLXguKPguLUNCivguJfguK3guIfguKrguLjguIEg4Lio4Lij4Li14LiZ4Liy4LiEDQor4LiX4Lit4LiH4Liq4Li44LiCIOC4iOC4seC4meC4l+C4sOC4quC4reC4mQ0KK+C4l+C4reC4h+C4quC4uOC4giDguYHguJTguIfguIrguLLguJXguLQNCivguJfguK3guIfguKrguLjguIIg4Lia4Li44LiN4LiN4Liy4LmA4Liq4LiZ4Li14Lii4LmM4LiB4Li44LilDQor4LiX4Lit4LiH4Liq4Li44LiCIOC4nuC4tOC4qOC5gOC4nuC4teC4ouC4h+C4iOC4seC4meC4l+C4o+C5jA0KK+C4l+C4reC4h+C4quC4uOC4giDguKPguLHguJXguJnguYLguKDguITguLINCivguJfguK3guIfguKrguLjguIIg4Liq4Lix4LiH4LiC4LmM4Liq4Lin4LiZDQor4LiX4Lit4LiH4Liq4Li44LiCIOC4reC4ouC4ueC5iOC5g+C4iOC5gOC4ouC5h+C4mQ0KK+C4l+C4reC4h+C4q+C4ouC4reC4lCDguJzguLbguYjguIfguJzguJTguLjguIcNCivguJfguK3guIfguKvguKXguYjguK0g4LmE4LiB4Lij4LiX4Lit4LiHDQor4LiX4Lit4LiH4Lir4Lil4LmI4LitIOC5gOC4leC4iuC4sOC4p+C4tOC5gOC4qOC4qQ0KK+C4l+C4reC4h+C4q+C4peC5iOC4rSDguJ7guKXguLHguJrguK3guLTguJnguJfguKPguYwNCivguJfguK3guIfguKvguKXguYjguK0g4Lil4Li34Lit4Lir4Lih4Li54LmIDQor4LiX4Lit4LiH4Lir4Lil4LmI4LitIOC4reC4lOC4l+C4mQ0KK+C4l+C4reC4h+C4reC4ouC4ueC5iCDguYHguIHguYnguKfguJ7guLHguJnguJjguYzguJ7guIfguKnguYwNCivguJfguK3guIfguK3guKLguLnguYgg4LiY4LiZ4Lix4LiH4LmA4Lil4Li04Lio4Lih4Liy4Lil4Lix4LiiDQor4LiX4Lit4LiH4Lit4Lii4Li54LmIIOC4p+C4teC4o+C4sOC4p+C4seC4kuC4meC5guC4ouC4mOC4tOC4mQ0KK+C4l+C4reC4h+C4reC4p+C4miDguK3guLjguJXguKPguKfguLTguYDguIrguLXguKLguKMNCivguJfguK3guIfguK3guLTguJnguJfguKPguYwg4LiW4Liy4Lin4Lij4LmA4LiI4Lij4Li04LiNDQor4LiX4Lit4LiH4Liu4Lin4LiiIOC4mOC4o+C4o+C4oeC4quC5guC4ow0KK+C4l+C4reC4h+C5gOC4iOC4t+C4rSDguYDguJfguLXguKLguKHguK3guLjguJfguLHguKLguKrguIHguLjguKUNCivguJfguK3guIfguYDguIjguLfguK0g4LmB4Liq4Lin4LiH4LmA4LiH4Li04LiZDQor4LiX4Lit4LiH4LmA4LiV4Li04LihIOC4q+C4suC4jeC4oeC4k+C4tQ0KK+C4l+C4reC4h+C5gOC4m+C4peC4pyDguYTguJ7guJHguLnguKPguKLguYzguKPguLHguJXguJnguYwNCivguJfguK3guIfguYDguJ7guLXguKLguKMg4LiV4Lix4LiZ4LiK4LiwDQor4LiX4Lit4LiH4LmA4Lil4LmH4LiBIOC5hOC4oeC5ieC4leC4o+C4suC4p+C4seC4kuC4meC4sg0KK+C4l+C4reC4h+C5gOC4reC4tOC4miDguYDguJ7guYfguIfguYHguIjguYjguKHguKjguKPguLUNCivguJfguK3guIfguYHguJbguKEg4Lie4Lij4Lih4Lie4LiH4Lip4LmMDQor4LiX4Lit4LiH4LmD4LiaIOC4geC4peC4tOC5iOC4meC4quC4uOC4hOC4meC4mOC5jA0KK+C4l+C4reC4h+C5g+C4miDguIrguLHguKLguYDguIjguKPguLTguI0NCivguJfguK3guIfguYPguJog4LiY4Lij4Lij4Lih4Liq4Liy4LijDQor4LiX4Lit4LiH4LmD4LiaIOC4nuC4o+C4q+C4oeC4m+C4seC5ieC4mQ0KK+C4l+C4reC4h+C5g+C4miDguKPguK3guJTguJrguLjguI3guIrguLHguIcNCivguJfguK3guIfguYPguJog4Liq4Liy4Lir4Lij4LmI4Liy4Lii4LiX4Lit4LiH4LiE4LizDQor4LiX4Lit4LiH4LmD4LiqIOC4muC4seC4p+C4oeC4p+C4hw0KK+C4l+C4reC4quC4o+C4p+C4hyDguKrguKDguLLguJnguLjguIrguLLguJUNCivguJfguLHguIHguKnguJPguLUg4LiK4Li34LmI4LiZ4Liq4Liz4Lij4Liy4LiNDQor4LiX4Lix4LiB4Lip4Li04LiT4LiyIOC4quC4luC4tOC4leC4ouC5jOC4geC4uOC4pQ0KK+C4l+C4seC4lOC4l+C4oyDguJrguLjguI3guYDguJfguLINCivguJfguLHguJnguYPguIgg4LiV4Liy4Lil4Liy4Lin4LiZ4Li04LiKDQor4LiX4Lix4Lia4LiX4Li04LihIOC4muC4seC4peC4peC4seC4h+C4hOC5jOC5guC4nuC4mOC4tOC5jA0KK+C4l+C4seC4muC4l+C4tOC4oSDguK3guIfguITguYzguIHguLLguKMNCivguJfguLHguKjguJnguIrguLHguKIg4Lio4Li04Lij4Li04LmE4Lie4Lie4Lij4Lij4LiTDQor4LiX4Lix4Lio4LiZ4Lix4LiiIOC5gOC4guC4oeC5gOC4geC4qeC4oQ0KK+C4l+C4seC4qOC4meC4seC4oiDguKfguLHguIrguKPguYDguIHguLfguYnguK0NCivguJfguLHguKjguJnguLIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LiX4Lix4Lio4LiZ4LiyIOC4quC4tOC4h+C4hOC4sOC5gOC4meC4leC4tA0KK+C4l+C4seC4qOC4meC4tSDguInguLLguKLguKPguLHguIfguKnguLUNCivguJfguLHguKjguJnguLXguKLguLIg4LiX4Lij4Lij4Lio4LiZ4LiB4Li44Lil4Lie4Lix4LiZ4LiY4LmMDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4geC4tOC4leC4leC4tOC4qOC4tOC4peC4suC4geC4ow0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguITguLjguJPguLLguJ7guLTguKoNCivguJfguLHguKjguJnguLXguKLguYwg4LiI4Li04LiV4Lij4Liy4LiI4Li44Lil4LiZ4Lix4LiZ4LiX4LmMDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4iuC4seC4ouC4geC4uOC4pQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYHguIvguYjguKXguLXguYkNCivguJfguLHguKjguJnguLXguKLguYwg4LiV4Lix4LiZ4LiV4Li04LiZ4Li14Lij4LiZ4Liy4LiXDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4l+C4seC4geC4mOC4tOC4geC4suC4ow0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguJnguLLguITguKfguLTguKXguLHguKINCivguJfguLHguKjguJnguLXguKLguYwg4Lib4Lij4Liw4Lih4Li54LilDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4nuC4o+C4q+C4oeC4iuC4uQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYDguJ7guIrguKPguYHguIHguYnguKfguIHguLjguKUNCivguJfguLHguKjguJnguLXguKLguYwg4Lih4Liy4Liq4LiT4Li1DQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4o+C4seC4leC4meC4reC4uOC4lOC4oQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYDguKXguYfguIHguITguIcNCivguJfguLHguKjguJnguLXguKLguYwg4Lin4Li04Lij4Li04Lii4Liw4LmA4Lin4Liq4Lih4LmM4LiB4Li44LilDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4qOC4tOC4o+C4tOC5guC4quC4oOC4suC4meC4meC4l+C5jA0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguKrguLTguKPguLTguKfguLTguYDguKjguKnguKfguKPguIHguLjguKUNCivguJfguLHguKjguJnguLXguKLguYwg4LmA4Liq4Lij4Li14Lie4LiB4LiB4Liw4LiT4LiwDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4reC4meC4uOC4leC4o+C4tOC4meC4l+C4o+C5jA0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYDguK3guLXguYjguKLguKHguKrguIHguLjguKUNCivguJfguLHguKjguJ7guKMg4Lie4Lij4Liq4Li44LiY4Liy4Lij4Lix4LiB4Lip4LmMDQor4LiX4Lix4Lio4LmE4LiZ4LiiIOC4muC4seC4jeC4jeC4seC4leC4tOC4l+C4seC4qOC5hOC4meC4og0KK+C4l+C4suC4miDguJzguKXguYLguJ7guJjguLTguYwNCivguJfguLPguJnguLQg4Lin4Li04LmE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4LiX4Li04LiG4Lix4Lih4Lie4LijIOC4iuC4tOC5ieC4meC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4l+C4tOC4iuC4suC4geC4oyDguIrguKHguYDguJTguIoNCivguJfguLTguJkg4Lie4Lix4LiU4LiK4LiyDQor4LiX4Li04LiZ4LiB4LijIOC4l+C4teC5gOC4geC5iOC4hw0KK+C4l+C4tOC4meC4geC4oyDguKXguLTguKHguJvguJnguKrguLjguJfguJjguLTguJ7guIfguKjguYwNCivguJfguLTguJnguIHguKPguJPguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Lie4Lil4Lix4LiaDQor4LiX4Li04Lie4Lie4Lin4Lix4LilIOC5gOC4nuC5h+C4h+C4quC4reC4suC4lA0KK+C4l+C4tOC4nuC4ouC4jeC4suC4kyDguKfguLTguIrguKLguLLguJnguJnguJfguYwNCivguJfguLTguJ7guKLguYzguKDguLLguJ7guKMg4Lia4Li44LiN4LmA4LiI4Lij4Li04LiN4Lii4LioDQor4LiX4Li04Lie4Lii4LmM4Lij4Lix4LiV4LiZ4LmMIOC4nuC4h+C4qOC5jOC4hOC4sw0KK+C4l+C4tOC4nuC4ouC4p+C4o+C4o+C4kyDguJ/guLjguYnguIfguKXguLHguJTguJTguLINCivguJfguLTguJ7guKLguYzguKfguKPguKPguJMg4LiI4Li04Lij4LiK4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiX4Li04Lie4Lii4LmM4Lin4Lij4Lij4LiTIOC4nuC4o+C4q+C4oeC4p+C4o+C4suC4l+C4ow0KK+C4l+C4tOC4nuC4ouC5jOC4p+C4o+C4o+C4kyDguKrguLjguKfguKPguKPguJPguJ7guLTguKHguKUNCivguJfguLTguJ7guKLguYzguKfguLHguKXguKLguYwg4LiY4Li14Lij4LiY4Lin4Lix4LiK4LiB4Li44LilDQor4LiX4Li04Lie4Lii4LmM4Lin4Liy4Lij4Li1IOC4oeC4tOC5iOC4h+C4guC4p+C4seC4jeC4m+C4tOC4ouC4sOC4geC4uOC4pQ0KK+C4l+C4tOC4nuC4ouC5jOC4quC4uOC4lOC4siDguYPguJrguKHguKPguIHguJUNCivguJfguLTguJ7guKLguLIg4LiZ4Lin4LiE4Li44LiT4Lin4Li04LiI4Li04LiV4Lij4LmMDQor4LiX4Li04Lie4Lii4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4q+C4tOC4o+C4seC4jQ0KK+C4l+C4tOC4nuC4ouC5jCDguYHguKrguKfguIfguKXguLLguKANCivguJfguLTguJ7guKfguKPguKPguJMg4LiB4Lij4LiB4Lij4Lit4LiHDQor4LiX4Li04Lie4Lin4Lij4Lij4LiTIOC4iOC4teC4o+C4nuC4seC4meC4mOC5jA0KK+C4l+C4tOC4nuC4p+C4o+C4o+C4kyDguJfguK3guIfguJvguKPguLDguYDguKrguKPguLTguJANCivguJfguLTguJ7guKfguKPguKPguJMg4Lie4Lix4LiS4LiZ4Liw4Lia4LiU4Li1DQor4LiX4Li04Lie4Lin4Lij4Lij4LiTIOC4peC4tOC4oeC4m+C4meC4suC4meC4meC4l+C5jA0KK+C4l+C4tOC4nuC4p+C4o+C4o+C4kyDguKjguLTguKPguLTguKfguLTguYTguKXguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJfguLTguJ7guKfguKPguKPguJMg4Lit4LiZ4Li04Lin4Lij4Lij4LiV4Lie4LiH4Lip4LmMDQor4LiX4Li04Lie4Lin4Lix4Lil4Lii4LmMIOC4hOC4teC4o+C4teC4p+C4h+C4qOC5jA0KK+C4l+C4tOC4nuC4p+C4seC4peC4ouC5jCDguKHguLLguKXguLHguKLguKHguLLguKXguKLguYwNCivguJfguLTguJ7guKfguLTguKHguKUg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LiX4Li04Lie4Liy4LiB4LijIOC4qOC4o+C4teC4iuC4teC4ouC4mOC4s+C4o+C4hw0KK+C4l+C4tOC4nuC4suC4nuC4oyDguKjguKPguLXguK3guLLguIgNCivguJfguLTguJ7guLLguKPguLHguJXguJnguYwg4LiZ4Li04Lil4Liq4LiZ4LiY4Li0DQor4LiX4Li04LihIOC4oeC4teC4muC4uOC4leC4o+C4quC4oQ0KK+C4l+C4tOC4p+C4siDguIjguKfguJnguIjguKfguJrguJfguKPguIcNCivguJfguLTguKfguLIg4Lin4LiH4LmA4LiU4Li34Lit4LiZDQor4LiX4Li04Lin4Liy4Lie4LijIOC4ieC4seC4leC4o+C4o+C4seC4leC4meC4suC4p+C4suC4k+C4tOC4ig0KK+C4l+C4tOC4p+C4suC4p+C4o+C4o+C4kyDguKrguLTguIfguKvguJ7guLHguKgNCivguJfguLXguYDguJnguJXguKMg4Lit4Lii4Li54LmI4Liq4Li44LiY4LiyDQor4LiX4Li44LmA4Lij4Li14Lii4LiZIOC4iOC4tOC4leC4leC4geC4suC4meC4leC5jOC4nuC4tOC4iuC4seC4og0KK+C4l+C4uOC5gOC4o+C4teC4ouC4mSDguKrguLTguJfguJjguLTguKDguLINCivguYDguJfguJ4g4LiH4Liy4Lih4LiK4Lix4Lii4Lie4Li04Liq4Li04LiQDQor4LmA4LiX4LieIOC4peC4teC4meC4sOC4geC4meC4tOC4qeC4kOC5jA0KK+C5gOC4l+C4nuC4iuC4seC4oiDguYDguIjguKPguLTguI3guJ7guKMNCivguYDguJfguJ7guJnguLTguKPguLHguJnguJTguKPguYwg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LmA4LiX4Lie4Lij4Lix4LiV4LiZ4LmMIOC4quC4suC4o+C4hOC4suC4oQ0KK+C5gOC4l+C4nuC4quC4uOC4o+C4tOC4ouC4siDguK3guKPguKPguJbguKfguLTguYDguKjguKkNCivguYDguJfguJ7guYTguJfguKIg4LmA4Liq4LiZ4Lie4LiH4Lio4LmMDQor4LmA4LiX4Lin4Lix4LiZIOC4reC4uOC4lOC4oeC5gOC4p+C4qOC4ouC5jA0KK+C5gOC4l+C4p+C4tOC4meC4l+C4o+C5jCDguKHguLjguYjguIfguJjguLHguI3guI3guLINCivguYDguJfguKfguLXguKPguLHguJXguJnguYwg4Lib4Liy4Lil4LiB4Liw4Lin4LiH4Lio4LmMIOC4kyDguK3guKLguLjguJjguKLguLINCivguYDguJfguK3guJTguJ7guIfguKnguYwg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LmA4LiX4Lit4LiU4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4tOC4l+C4seC4qOC4meC4suC4meC4seC4meC4l+C5jA0KK+C5gOC4l+C4reC4lOC4qOC4seC4geC4lOC4tOC5jCDguKrguLHguKHguKTguJfguJjguLTguIHguLLguKPguLjguJMNCivguYDguJfguLTguJTguIrguLHguKIg4LmA4LiV4LiK4Liw4LiY4Li04LiB4Liy4LijDQor4LmA4LiX4Li04LiU4LmE4LiX4LiiIOC4quC4uOC4guC4reC4suC4o+C4oeC4ouC5jA0KK+C5gOC4l+C4teC4ouC4mSDguJ7guLjguYjguKHguYDguIjguKPguLTguI0NCivguYDguJfguLXguKLguJnguIrguLHguKIg4LmA4LiI4Lij4Li04LiN4LiB4Li04LiI4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LmA4LiX4Li14Lii4LiZ4LiK4Lix4LiiIOC4m+C4suC4meC4o+C4seC4geC4qeC4sg0KK+C5gOC4l+C4teC4ouC4meC4iuC4seC4oiDguKfguLHguJLguJnguYLguKPguIjguJnguIHguLTguIgNCivguYDguJfguLXguKLguJnguJfguLTguJ7guKLguYwg4LiI4LiH4LmA4LiI4LiV4LiZ4LmM4LiU4Li1DQor4LmA4LiX4Li14Lii4LiaIOC4quC4seC4oeC4iOC4suC4o+C4tOC4meC4l+C4o+C5jA0KK+C5gOC4l+C4teC4ouC4oSDguYDguJfguLXguKLguKHguK3guLLguKPguLHguIHguKnguYwNCivguYDguJfguLXguKLguKHguIjguLHguJnguJfguKPguYwg4LiI4Liy4Lij4Li44Lin4Lix4LiS4LiZ4Lie4Lix4LiZ4LiY4LmMDQor4LmA4LiX4Li14Lii4Lih4LiJ4Lix4LiV4LijIOC4o+C4tOC5ieC4p+C4geC4h+C5geC4iA0KK+C5gOC4l+C4teC4ouC4oeC5g+C4iCDguJrguLjguI3guJbguLLguKfguKPguKfguLHguJLguJkNCivguYDguJfguLXguYjguKLguIcg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li04Lij4Li04LmA4LiI4Lij4Li04LiNDQor4LmA4LiX4LmA4Lin4LioIOC5geC4i+C5iOC4i+C4t+C5ieC4rQ0KK+C5geC4l+C4mSDguYDguJfguKjguKfguLTguKXguLHguKINCivguYTguJfguKIg4LmA4LiI4Lij4Li04LiN4Lin4Lij4Lij4Lix4LiB4Lip4LmMDQor4LmE4LiX4Lij4LiH4Liy4LihIOC4iOC4s+C4meC4h+C4hOC5jOC4quC4ueC4jQ0KK+C4mOC4h+C4iuC4seC4oiDguIHguJnguIHguJ7guJnguLLguJfguLHguJUNCivguJjguIfguIrguLHguKIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4Lij4Li34Lit4LiH4LiB4Lih4Lil4LiyDQor4LiY4LiH4LiK4Lix4LiiIOC4h+C4suC4oeC4mOC4meC5guC4geC4qOC4pQ0KK+C4mOC4h+C4iuC4seC4oiDguIjguLTguKPguLHguJDguLTguJXguLTguJ7guLHguJnguJjguYwNCivguJjguIfguIrguLHguKIg4LiK4Lix4Lii4Lie4Lij4Lie4LiH4Lio4LmMDQor4LiY4LiH4LiK4Lix4LiiIOC5geC4i+C5iOC4i+C4tOC5ieC4oQ0KK+C4mOC4h+C4iuC4seC4oiDguJXguJnguKrguIHguLjguKXguYDguJTguIoNCivguJjguIfguIrguLHguKIg4LiW4Li44LiH4LmB4LiB4LmJ4Lin4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4LiY4LiH4LiK4Lix4LiiIOC4mOC4o+C4o+C4oeC4p+C4tOC5hOC4peC4p+C4seC4kuC4meC5jA0KK+C4mOC4h+C4iuC4seC4oiDguJrguLjguI3guJPguKPguIfguITguYwNCivguJjguIfguIrguLHguKIg4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4Lin4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiY4LiH4LiK4Lix4LiiIOC4nuC4suC4meC4l+C4reC4hw0KK+C4mOC4h+C4iuC4seC4oiDguKDguLnguKnguJPguLDguJ7guIfguKnguYwNCivguJjguIfguIrguLHguKIg4Lij4Lit4LiU4LmB4LiB4LmJ4LinDQor4LiY4LiH4LiK4Lix4LiiIOC4peC4tOC4guC4tOC4leC4p+C4seC4kuC4meC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4mOC4h+C4iuC4seC4oiDguKfguLHguIrguKPguLDguK3guKLguLnguYgNCivguJjguIfguIrguLHguKIg4Lio4Lij4Li14LmE4LiX4Lii4Lij4Lix4LiB4Lip4LmMDQor4LiY4LiH4LiK4Lix4LiiIOC4quC4suC4hOC4o+C4quC4uOC4guC4qOC4o+C4teC4pOC4geC4qeC5jA0KK+C4mOC4h+C4iuC4seC4oiDguKrguLjguJ7guKXguJjguKfguJPguLTguIrguKLguYwNCivguJjguIfguIrguLHguKIg4Lir4Liy4LiN4Lih4LiH4LiE4LilDQor4LiY4LiH4LiK4Lix4LiiIOC4reC4suC4geC4suC4qOC4p+C4tOC4oOC4suC4lQ0KK+C4mOC4h+C4iuC4suC4leC4tCDguJ7guKfguIfguKrguLjguKfguKPguKPguJMNCivguJjguIfguYTguIrguKIg4Lie4Lil4Lin4Li04LiX4Lii4LmMDQor4LiY4LiZIOC4o+C4oeC4ouC4suC4meC4meC4l+C5jA0KK+C4mOC4meC4geC4oyDguKjguLjguKDguIHguKPguK3guLLguKDguKPguJPguYwNCivguJjguJnguIfguITguYwg4Lin4Li04LiI4Li04LiV4Lij4LmC4LiXDQor4LiY4LiZ4LiK4Lix4LiiIOC5gOC4q+C4peC4t+C4reC4h+C4leC4o+C4sOC4geC4ueC4peC4quC4tOC4o+C4tA0KK+C4mOC4meC4mSDguKjguKPguLXguJjguJnguLLguYLguKrguKzguKoNCivguJjguJnguJ7guIfguKjguYwg4Lin4Liq4Li44LmA4Liq4LiW4Li14Lii4LijDQor4LiY4LiZ4Lie4LijIOC5gOC4iuC4suC4p+C4meC4m+C4o+C4teC4iuC4sg0KK+C4mOC4meC4nuC4oyDguKjguKPguLXguIjguLHguJnguJfguKPguYwNCivguJjguJnguJ7guKUg4LiE4Li44LmJ4Lih4Lin4Lij4LiK4Lix4LiiDQor4LiY4LiZ4Lie4LilIOC4p+C4k+C4tOC4iuC4iuC4suC4meC4meC4l+C5jA0KK+C4mOC4meC4nuC4seC4meC4mOC5jCDguJ/guLnguJ7guLHguJnguJjguLjguYzguK3guJnguLHguJnguJXguYwNCivguJjguJnguKLguLIg4Lin4LiH4Lio4LmM4Liq4LiH4Lin4LiZDQor4LiY4LiZ4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C4mOC4meC4p+C4o+C4o+C4qeC5jCDguYDguKrguKPguLTguKHguJ7guLLguJPguLTguIrguKLguYwNCivguJjguJnguKfguLHguJLguJnguYwg4Lib4Lij4Liw4Liq4Liy4LiZ4LiY4Lij4Lij4Lih4LiE4Li44LiTDQor4LiY4LiZ4Lin4Lix4LiS4LiZ4LmMIOC4quC4suC4oeC4geC4qeC4seC4leC4o+C4tOC4ouC5jA0KK+C4mOC4meC4p+C4tOC4qOC4k+C5jCDguKDguLnguKHguLTguYTguIrguKINCivguJjguJnguKrguKPguJPguYwg4LmE4LiK4Lii4LiK4LiZ4LiwDQor4LiY4LiZ4LiwIOC4nuC4h+C4qeC5jOC4l+C4meC4suC4meC4meC4l+C5jOC4geC4uOC4pQ0KK+C4mOC4meC4sOC4iuC4seC4oiDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUNCivguJjguJnguLDguKfguKPguKPguJMg4Lir4Lih4Li34LmI4LiZ4Liq4LiyDQor4LiY4LiZ4Liw4LmA4Liq4Lij4Li04LiQIOC4ouC4peC4m+C4o+C4sOC4quC4suC4mQ0KK+C4mOC4meC4seC4jeC4iuC4seC4oiDguKPguLLguIrguKfguLHguKXguKDguLLguJnguLjguKrguLTguKnguJANCivguJjguJnguLHguJXguLQg4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmM4LiB4Li44LilDQor4LiY4LiZ4Lix4LiZ4LiX4LmMIOC4o+C4seC4h+C4quC4teC4nuC4o+C4q+C4oQ0KK+C4mOC4meC4siDguIrguLXguKPguKfguLTguJnguLTguIgNCivguJjguJnguLIg4LmC4Lib4Lip4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiY4LiZ4LiyIOC4quC4p+C5iOC4suC4h+C4geC4tOC4iA0KK+C4mOC4meC4suC4geC4oyDguYDguJXguIrguLDguKrguKHguJrguLnguKPguJPguYzguJzguKUNCivguJjguJnguLLguIHguKMg4Liq4Lix4LiI4LiI4Lie4LiI4LiZ4LmM4LmC4Liq4Lig4LiTDQor4LiY4LiZ4Liy4LiI4Lix4LiB4Lij4LmMIOC4meC5iOC4p+C4oeC4reC4ouC4ueC5iA0KK+C4mOC4meC4suC4mOC4tOC4myDguKPguLHguJXguJnguLHguKINCivguJjguJnguLLguJ7guKMg4Lie4Li04LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmM4LmC4LiB4Lih4LilDQor4LiY4LiZ4Liy4Lig4Lij4LiT4LmMIOC4o+C4seC4leC4meC5gOC4quC4mQ0KK+C4mOC4meC4suC4o+C4seC4iiDguKrguLTguKPguLTguKDguLnguKHguLTguKPguLHguJXguJnguLLguJnguJnguJfguYwNCivguJjguJnguLLguKfguLHguJLguJnguYwg4Lie4Li04LiY4Li44Lin4Lij4Lij4LiTDQor4LiY4LiZ4Liy4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4seC4leC4o+C4suC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4mOC4meC4tOC4lOC4siDguIjguLTguJnguJXguJnguKfguLTguKjguLTguKnguJDguYwNCivguJjguJnguLTguJUg4LmA4LiC4Li14Lii4Lin4LmA4LiH4Li04LiZDQor4LiY4LiZ4Li04LiVIOC5gOC4l+C4nuC4iOC4tOC4leC4ow0KK+C4mOC4meC4tOC4lSDguKHguLLguKjguKPguLXguJnguKfguKUNCivguJjguJnguLTguJUg4Liq4Li44LiB4Lix4LiZ4Lii4LiyDQor4LiY4LiZ4Li04LiV4LijIOC5gOC4meC4suC4p+C4qOC4seC4geC4lOC4tOC5jA0KK+C4mOC4meC4tOC4meC4l+C4o+C5jCDguJvguKPguLDguYDguKrguKPguLTguJDguIHguLLguI3guIjguJnguYwNCivguJjguJnguLTguKjguKPguYwg4Lit4Li04Lio4Lij4Liy4LiY4Li04LiB4Li54LilDQor4LiY4LiZ4Li14Lii4LiyIOC4q+C4o+C4ouC4suC4h+C4geC4ueC4ow0KK+C4mOC4meC4uSDguInguLjguKLguInguLLguKINCivguJjguJnguLkg4Lif4Lit4LiH4LiB4Li44LiZ4LiR4LilDQor4LiY4LiZ4Li5IOC4q+C4h+C4qeC5jOC4lOC4s+C5gOC4meC4tOC4mQ0KK+C4mOC4meC5gOC4lOC4iiDguKrguLjguILguKfguLHguJLguJnguLLguJ7guKMNCivguJjguKPguJPguLTguJnguJfguKPguYwg4LiB4Lit4LiH4Lij4Lix4LiB4Lip4LmA4Lin4LiKDQor4LiY4Lij4Lij4Lih4LiT4LieIOC5gOC4geC4leC4uOC4l+C4reC4hw0KK+C4mOC4o+C4o+C4oeC4meC4ueC4jSDguITguKXguYnguLLguKLguIHguKPguLnguI8NCivguJjguKPguKPguKHguJnguLnguI0g4LiX4Lix4Lio4LiZ4LmM4Lio4Lij4Li1DQor4LiY4Lij4Lij4Lih4LiZ4Li54LiNIOC4nuC4tOC4iuC4seC4ouC4qOC4o+C5geC4nOC4peC4hw0KK+C4mOC4o+C4o+C4oeC4meC4ueC4jSDguKjguKPguLXguIrguLDguI7guLINCivguJjguKPguKPguKHguJnguLnguI0g4Lit4Lix4LiH4Lio4Li44Liq4Li04LiH4Lir4LmMDQor4LiY4Lij4Lij4Lih4Lij4Lix4LiB4Lip4LmMIOC4l+C4tOC4meC4geC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4LiY4Lij4Lij4Lih4Lij4Lix4LiV4LiZ4LmMIOC4quC4seC4h+C4guC5jOC4qOC4o+C4teC5geC4geC5ieC4pw0KK+C4mOC4o+C4o+C4oeC4qOC4seC4geC4lOC4tOC5jCDguYHguKHguYnguJnguKHguLTguJnguJfguKPguYwNCivguJjguKPguKfguLTguKrguLTguJfguJjguLTguYwg4LmC4LiK4LiE4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmM4Lic4LilDQor4LiY4Lij4Liy4Lie4LiH4Lip4LmMIOC5gOC4hOC4peC4t+C4reC4h+C4suC4oQ0KK+C4mOC4p+C4seC4iiDguIHguLHguJnguJXguYzguKHguLTguJXguKPguLUNCivguJjguKfguLHguIog4LiI4Lit4Lih4Liq4LiH4LmI4LiyDQor4LiY4Lin4Lix4LiKIOC4iuC4seC5ieC4meC5gOC4quC4p+C4tOC4geC4uOC4pQ0KK+C4mOC4p+C4seC4iiDguJXguLHguJnguJXguLTguJvguLTguI/guIENCivguJjguKfguLHguIog4LiY4Li14Lij4Lig4Liy4LiZ4Li44Lih4Liy4Lio4LiB4Li44LilDQor4LiY4Lin4Lix4LiKIOC4muC4uOC4leC4o+C4ouC4teC5iA0KK+C4mOC4p+C4seC4iiDguYHguJ7guYPguKvguKHguYgNCivguJjguKfguLHguIog4Lij4Lix4LiQ4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiY4Lin4Lix4LiKIOC4p+C4seC4iuC4o+C5gOC4lOC4iuC4quC4uOC4p+C4o+C4o+C4kw0KK+C4mOC4p+C4seC4iiDguKrguLHguI3guI3guLDguKfguLTguKPguLUNCivguJjguKfguLHguIog4LmB4Liq4LiZ4Lih4LiZ4LiV4Lij4Li14LiB4Li44LilDQor4LiY4Lin4Lix4LiKIOC4reC4tOC4meC5geC4leC4hw0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguIHguLTguKHguKLguIfguITguYwNCivguJjguKfguLHguIrguIrguLHguKIg4LiE4Liy4Lih4LiI4Li04LiZ4LiU4LiyDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4iOC4tOC4leC4m+C4o+C4sOC4oOC4suC4iOC4tOC4kw0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguIrguLHguYjguIfguJfguK3guIcNCivguJjguKfguLHguIrguIrguLHguKIg4LiL4Li44LmJ4LiZ4LiL4Li04LmI4LihDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4lOC4teC4o+C4sOC4nuC4seC4meC4mOC5jOC4geC4uOC4pQ0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguYLguJXguKrguLTguJXguKPguLDguIHguLnguKUNCivguJjguKfguLHguIrguIrguLHguKIg4LmE4LiX4Lii4Lin4Lix4LiS4LiZ4LiyDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4meC4suC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguJvguLHguI3guIjguKPguLHguIHguKnguYzguKrguIHguLjguKUNCivguJjguKfguLHguIrguIrguLHguKIg4Lie4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LiX4Li04Lie4Lii4LmMDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4n+C4uOC5ieC4h+C5gOC4iOC4o+C4tOC4jeC4geC4uOC4pQ0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguKPguJXguLTguKrguKPguLLguI3guIjguLTguJUNCivguJjguKfguLHguIrguIrguLHguKIg4Lil4Li14LmJ4Lig4Li54Lih4Li04Lin4LiZ4Li04LiK4Lii4LmMDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4p+C4seC4kuC4meC4sA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguKjguKPguLXguKfguLTguJrguLnguKXguKLguYwNCivguJjguKfguLHguIrguIrguLHguKIg4Liq4Lij4Liy4LiN4LiT4Li04Lii4LiY4Lij4Lij4LihDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4quC4uOC4meC4l+C4o+C4geC4tOC4leC4tA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguYDguKvguKXguLfguK3guIfguKrguKHguK3guLjguYTguKMNCivguJjguKfguLHguIrguIrguLHguKIg4Lit4Li04Liq4Lij4Liw4LiZ4Li04Lih4Li04LiV4LijDQor4LiY4Lin4Lix4LiS4LiK4Lix4LiiIOC4nuC4tOC4nuC4seC4kuC4meC5jOC4qOC4tOC4o+C4tOC4guC4iOC4ow0KK+C4mOC4seC4iiDguKPguLHguJXguJnguJfguLjguKHguKHguLINCivguJjguLHguIrguJ7guKUg4Lie4Lin4LiH4LiB4LiZ4LiBDQor4LiY4Lix4LiN4LiN4Lij4Lix4LiB4Lip4LmMIOC4geC4uOC4kOC4tOC4meC4nuC4seC4kuC4meC5jA0KK+C4mOC4seC4jeC4jeC4sCDguYDguIjguKPguLTguI3guKrguLjguIINCivguJjguLHguI3guI3guLIg4LiZ4Liy4LiE4Liq4Li04LmA4LiZ4Lir4Lic4LilDQor4LiY4Lix4LiN4LiN4LiyIOC4reC5iOC4p+C4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4mOC4seC4jeC4l+C4tOC4nuC4ouC5jCDguYDguKXguYnguLLguKfguLHguJLguJnguLINCivguJjguLHguI3guKLguJjguKPguJPguYwg4Lil4Lix4LiB4LiC4Li44LiZ4LiX4LiUDQor4LiY4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4seC4l+C4oQ0KK+C4mOC4seC4meC4ouC4mOC4oyDguIHguYnguK3guIfguKfguLTguKPguLTguKLguLDguYTguJ7guKjguLLguKUNCivguJjguLHguJnguKfguJTguLUg4LmA4LiE4Lij4Li34Lit4Lin4Lix4Lil4Lii4LmMDQor4LiY4Liy4LiU4LiyIOC5gOC4geC4qeC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4mOC4suC4lOC4siDguYDguKXguLTguKjguKrguLTguJnguKrguYjguIfguYDguKrguKPguLTguKENCivguJjguLLguJXguKPguLUg4LiU4Liy4Lij4Liy4LmA4Lii4LmH4LiZDQor4LiY4Liy4LiZ4Lix4LiZ4LiX4LmMIOC4oeC4h+C4hOC4peC4p+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4mOC4suC4meC4tOC4meC4l+C4o+C5jCDguYHguIvguYjguIjguLbguIcNCivguJjguLLguJnguLTguJnguJfguKPguYwg4Lie4Lij4Li04LmJ4LiH4Lih4LiH4LiE4LilDQor4LiY4Liy4LiZ4Li04LiZ4LiX4Lij4LmMIOC4qOC4o+C4teC4quC4uOC4gg0KK+C4mOC4suC4meC4tSDguIHguKXguLTguYjguJnguYDguIHguKnguKMNCivguJjguLLguJnguLUg4LmC4LiV4Lit4LiU4Li04LmA4LiX4Lie4Lii4LmMDQor4LiY4Liy4LiZ4Li1IOC5gOC4nuC4tOC5iOC4oeC4nuC4tuC5iOC4h+C4o+C4seC4leC4meC5jA0KK+C4mOC4suC4meC4tSDguKfguLLguIjguLLguIfguLLguKENCivguJjguLLguJnguLUg4LmA4Lir4Lil4LmH4LiH4LiC4Lii4Lix4LiZDQor4LiY4Liy4Lij4LiX4Li04Lie4Lii4LmMIOC4kyDguKrguIfguILguKXguLINCivguJjguLLguKPguKXguLHguIHguKnguJPguYwg4Lir4Lin4Lix4LiH4LiY4Li14Lij4Lie4LiH4Lio4LmMDQor4LiY4Liy4Lij4LiyIOC5guC4o+C4iOC4meC5jOC4peC4t+C4reC4iuC4seC4og0KK+C4mOC4suC4o+C4suC4o+C4seC4leC4meC5jCDguJ7guIfguKnguYzguYLguKrguKDguLINCivguJjguLLguKPguLTguJPguLUg4LmA4Liq4Li34Lit4Lio4Lij4Li14LmA4Liq4Lij4Li04LihDQor4LiY4Liy4Lij4Li1IOC4quC4seC4h+C5gOC4meC4leC4o+C5jA0KK+C4mOC4s+C4o+C4hyDguYDguIjguLXguKLguKHguJvguKPguLDguYDguKrguKPguLTguJDguJrguLjguI0NCivguJjguLPguKPguIcg4Lig4Li54Lin4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiY4Liz4Lij4LiH4LiE4LmMIOC4geC4suC4jeC4iOC4meC4m+C4o+C4sOC4oOC4suC4qg0KK+C4mOC4s+C4o+C4h+C4hOC5jCDguKHguLnguKXguYDguIfguLTguJkNCivguJjguLPguKPguIfguKjguLHguIHguJTguLTguYwg4LiY4Liz4Lij4LiH4LmA4Lil4Li04Lio4Lik4LiX4LiY4Li04LmMDQor4LiY4Li04LiU4LiyIOC4hOC4uOC5ieC4oeC5gOC4guC4p+C5ieC4sg0KK+C4mOC4tOC4lOC4siDguJzguKXguITguLTguKHguKvguLHguJnguJXguYwNCivguJjguLTguJTguLIg4Liq4Li44LiK4Liy4LiV4Li0DQor4LiY4Li04LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4geC4uOC4qOC4peC4iOC4tOC4leC4oOC4o+C4k+C5jA0KK+C4mOC4tOC4lOC4suC4o+C4seC4leC4meC5jCDguKrguKHguJ7guLHguJnguJjguYwNCivguJjguLTguJXguLQg4LiX4Liy4LiH4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiY4Li04LiV4Li04Lie4LiH4Lio4LmMIOC5gOC4qOC4o+C4qeC4kOC4teC4quC4oeC4muC4seC4leC4tA0KK+C4mOC4tOC4leC4tOC4oeC4siDguKXguLLguKDguKjguKPguLXguKHguIfguITguKUNCivguJjguLTguKDguLLguJ7guKMg4LiK4Li44LiT4Lir4LiI4Li04Lij4Lix4LiQ4LiV4Li04LiB4Liy4LilDQor4LiY4Li14LijIOC4qOC4o+C5geC4geC5ieC4pw0KK+C4mOC4teC4o+C4iuC4seC4oiDguYDguJTguYLguIrguJ7guKUNCivguJjguLXguKPguIrguLHguKIg4LmA4Lio4Lij4Lip4LiQ4LiK4Liy4LiV4LiZ4Lix4LiZ4LiX4LmMDQor4LiY4Li14Lij4LiU4LiyIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4mOC4teC4o+C4meC4suC4o+C4liDguJvguLLguKXguIHguLDguKfguIfguKjguYwg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4mOC4teC4o+C4nuC4h+C4qOC5jCDguJTguKfguIfguYDguJnguJXguKMNCivguJjguLXguKPguJ7guIfguKnguYwg4LmC4LiE4LiI4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4LiY4Li14Lij4Lie4LiH4Lip4LmMIOC4o+C4seC4leC4meC5gOC4quC4luC4teC4ouC4ow0KK+C4mOC4teC4o+C4nuC4oyDguITguLjguJPguLLguJfguKPguKfguLHguJLguJnguIHguLjguKUNCivguJjguLXguKPguJ7guKUg4LmA4LiV4Li14LmL4Lii4Lie4Lix4LiS4LiZ4LiB4Li04LiIDQor4LiY4Li14Lij4Lie4LilIOC4quC4seC4meC4leC4tOC4p+C4meC4suC4meC4meC4l+C5jA0KK+C4mOC4teC4o+C4nuC4seC4meC4mOC5jCDguJ7guLHguIrguKPguJvguKPguLDguKDguLLguIHguKMNCivguJjguLXguKPguKLguKgg4LiK4Lix4Lii4LmA4Liq4LiZ4Liw4Lia4Lix4LiT4LiR4Li04LiVDQor4LiY4Li14Lij4Lii4Li44LiX4LiYIOC4m+C4o+C4seC4iuC4jeC4suC4muC4s+C4o+C4uA0KK+C4mOC4teC4o+C4ouC4uOC4l+C4mCDguK3guLHguIjguIjguLTguKHguLLguKPguLHguIfguKnguLUNCivguJjguLXguKPguKfguKPguKPguJMg4Lin4Lix4LiK4Lij4Liq4Li04LiZ4LiY4Li44LmMDQor4LiY4Li14Lij4Lin4Lix4LiS4LiZ4LmMIOC5gOC4leC4iuC4sOC4quC4uOC4o+C4tOC4ouC4sOC4oeC4k+C4tQ0KK+C4mOC4teC4o+C4p+C4seC4kuC4meC5jCDguKjguKPguLXguKrguLjguIINCivguJjguLXguKPguKfguLTguJfguKLguYwg4Lia4Lin4Lij4Lia4Li44LiN4Liq4Li44LiCDQor4LiY4Li14Lij4Lin4Li44LiS4Li0IOC4nuC4h+C4qOC5jOC5gOC4qOC4o+C4qeC4kOC5hOC4nuC4qOC4suC4pQ0KK+C4mOC4teC4o+C4qOC4seC4geC4lOC4tOC5jCDguIjguLTguKPguKfguLTguKPguLTguKLguKfguIfguKjguYwNCivguJjguLXguKPguKjguLHguIHguJTguLTguYwg4Lig4Li04Liq4Lix4LiK4LmA4Lie4LmH4LiNDQor4LiY4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4suC4oOC4suC4quC4geC4uOC4peC5gOC4lOC4ig0KK+C4mOC4teC4o+C4sCDguITguLPguKrguLINCivguJjguLXguKPguLAg4LmE4LiK4Lii4Lij4Lix4LiV4LiZ4LmMDQor4LiY4Li14Lij4LiwIOC4l+C4o+C4seC4nuC4ouC4o+C4uOC5iOC4h+C4l+C4p+C4teC4nOC4pQ0KK+C4mOC4teC4o+C4sCDguJnguLTguKXguYHguIjguYnguIcNCivguJjguLXguKPguLAg4Lie4Li04LiB4Li44Lil4LiZ4LmJ4Lit4LiiDQor4LiY4Li14Lij4LiwIOC4o+C4tOC4oeC4nuC4meC4seC4qg0KK+C4mOC4teC4o+C4sCDguKfguLTguKDguLnguIrguJnguLTguJkNCivguJjguLXguKPguLAg4Liq4Li04LiH4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiY4Li14Lij4LiwIOC4reC4meC4seC4meC4leC5jOC4oeC4suC4meC4sA0KK+C4mOC4teC4o+C4sOC4iuC4seC4oiDguYDguIHguJXguLjguJXguKPguLXguIHguKPguJPguYwNCivguJjguLXguKPguLDguIrguLHguKIg4Lie4Lix4LiZ4LiY4Li44Lil4Liy4LigDQor4LiY4Li14Lij4Liw4LiK4Liy4LiV4Li0IOC5gOC4peC4tOC4qOC4muC4p+C4o+C4p+C4h+C4qOC5jA0KK+C4mOC4teC4o+C4sOC4nuC4h+C4qOC5jCDguKfguLHguJLguJnguJ7guLTguJfguKLguIHguLjguKUNCivguJjguLXguKPguLDguJ7guIfguKnguYwg4Lie4Lil4Lih4Lix4LmI4LiZDQor4LiY4Li14Lij4Liw4Lie4LijIOC4p+C4teC4o+C4sOC4luC4suC4p+C4ow0KK+C4mOC4teC4o+C4sOC4nuC4pSDguKPguK3guJrguLPguKPguLjguIcNCivguJjguLXguKPguLDguJ7guLHguJnguJjguLjguYwg4Lin4Lix4LiS4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiY4Li14Lij4Liw4Lii4Li44LiX4LiYIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4mOC4teC4o+C4sOC4p+C4h+C4qOC5jCDguYHguIvguYjguK3guLbguYnguIcNCivguJjguLXguKPguLDguKfguLHguJLguJnguYwg4Lio4Lio4Li04LiY4LijDQor4LiY4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4suC4quC4suC4p+C4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4mOC4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guYDguInguKXguLXguKLguKcNCivguJjguLXguKPguLDguKjguLHguIHguJTguLTguYwg4Liq4Li04LiH4Lir4LmC4Lij4LiI4LiZ4Liy4LiB4Li44LilDQor4LiY4Li14Lij4Liw4LmA4LiU4LiKIOC4leC4o+C4teC4l+C4qOC4suC4ouC4uOC4mA0KK+C4mOC4teC4o+C4siDguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguJjguLXguKPguLLguKXguLHguIHguKnguJPguYwg4Lii4Lih4Liw4Liq4Lih4Li04LiVDQor4LiY4Li14Lij4LmA4LiU4LiKIOC5gOC4peC4tOC4qOC4p+C4tOC5hOC4peC4geC4uOC4peC4meC4l+C4tQ0KK+C4mOC5gOC4meC4lSDguYDguJvguKXguLXguYjguKLguJnguJnguLjguIoNCivguJjguYDguJnguKgg4LiJ4Liy4Lii4Lij4Lix4LiH4Lip4Li1DQor4LiY4LmA4LiZ4LioIOC4mOC4suC4k+C4suC4mOC4sOC4o+C4sOC4meC4tOC4lQ0KK+C4mOC5gOC4meC4qCDguKHguLXguYDguJTguIoNCivguJjguYDguJnguKgg4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4Lii4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiY4LmA4LiZ4Lio4Lie4LilIOC4qOC4uOC4geC4peC4geC4suC4meC4leC5jA0KK+C5gOC4mOC4meC4leC4oyDguJ7guLTguKHguJ7guYzguIjguLHguJnguJfguKPguYwNCivguYDguJjguLXguKLguKPguIrguLHguKIg4Lid4Liy4LiB4Lil4Liy4LigDQor4LmA4LiY4Li14Lii4Lij4LmE4LiK4LiiIOC4qOC4seC4meC4quC4meC4sOC4geC4uOC4pQ0KK+C4meC4geC5gOC4peC5h+C4gSDguJfguLHguJrguJnguLLguYLguITguIENCivguJnguIHguYHguIHguYnguKcg4Lin4LiH4Lio4LmM4Liq4LmI4Liy4Lii4LiW4LiZ4Lit4LihDQor4LiZ4LiE4LijIOC4iuC4seC4ouC4quC4oeC4muC4ueC4o+C4k+C5jOC4nuC4seC4meC4mOC5jA0KK+C4meC4hOC4oyDguJrguLjguJXguKPguYLguJ7guJjguLTguYwNCivguJnguITguKMg4Lii4Li04LmJ4Lih4Lio4Li04Lij4Li04Lin4Lix4LiS4LiZ4LiwDQor4LiZ4LiE4LijIOC4quC4h+C4hOC4o+C4suC4oQ0KK+C4meC4hOC4oyDguK3guLTguJnguJfguKPguYzguKrguLjguIINCivguJnguITguYDguKPguKgg4LiX4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmM4Lih4LiZ4LiV4Lij4Li1DQor4LiZ4LiH4LiE4Lij4Liy4LiNIOC5gOC4guC4t+C5iOC4reC4meC5geC4geC5ieC4pw0KK+C4meC4h+C4hOC4o+C4suC4jSDguKfguLXguKPguLDguJ7guLLguJnguLTguIrguYDguIjguKPguLTguI0NCivguJnguIfguITguYzguYDguKLguLLguKfguYwg4LiY4Lij4Lij4Lih4LiZ4Li04LiY4LiyDQor4LiZ4LiH4LiZ4Liy4LiPIOC4meC4tOC4nuC4meC4mOC5jOC4qOC4seC4geC4lOC4tOC5jA0KK+C4meC4h+C4meC4uOC4iiDguIHguK3guKrguIHguLjguKUNCivguJnguIfguJnguLjguIog4LiI4Lix4LiZ4LiX4Lij4LmM4Lir4Lit4LihDQor4LiZ4LiH4LiZ4Li44LiKIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4meC4h+C4meC4uOC4iiDguJfguLHguJrguKjguKPguLUNCivguJnguIfguJnguLjguIog4Lib4Lij4Liw4LiB4Lit4Lia4LmA4Lie4LmH4LiK4LijDQor4LiZ4LiH4LiZ4Li44LiKIOC5hOC4nuC4keC4ueC4o+C4ouC5jOC4oeC4h+C4hOC4pQ0KK+C4meC4h+C4meC4uOC4iiDguKXguLLguKDguKjguKPguLXguKfguLTguKfguLHguJLguJnguYwNCivguJnguIfguJnguLjguIog4Lio4Lix4Lil4Lii4LmM4Lin4Li04LmA4Lio4LipDQor4LiZ4LiH4LiZ4Li44LiKIOC4quC4uOC4p+C4o+C4o+C4k+C4geC4meC4tOC4qeC4kA0KK+C4meC4h+C4meC4uOC4iiDguK3guLjguJPguKvguYzguYTguKfguJfguKLguLANCivguJnguIfguJ7guLjguJgg4LiK4Li34LmI4LiZ4LiK4LihDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4geC4tOC4leC4leC4tOC4qOC4seC4geC4lOC4tOC5jOC5hOC4nuC4o+C4seC4ig0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguIjguKPguLTguKLguJ7guKTguJfguJjguLTguJ7guIfguKjguYwNCivguJnguIfguKXguLHguIHguKnguJPguYwg4LiK4LmI4Lin4Lii4Lin4LiH4Lip4LmM4LiN4Liy4LiV4Li0DQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4kOC4tOC4leC4tOC4p+C4ow0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguJfguK3guIfguK3guLHguKjguKfguLTguJkNCivguJnguIfguKXguLHguIHguKnguJPguYwg4Lia4Li44LiN4LiN4Lin4Lix4LiS4LiZ4LmMDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4nuC4o+C4quC4t+C4muC4p+C4h+C4qOC5jA0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguKDguLnguYjguKrguLjguJrguLTguJkNCivguJnguIfguKXguLHguIHguKnguJPguYwg4LmC4Lij4LiI4LiZ4LmM4LiB4Li44Lil4LiC4LiI4LijDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4p+C4tOC4l+C4ouC4suC4p+C4tOC4qOC4p+C4quC4geC4uOC4pQ0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguKrguKHguYHguIHguYnguKcNCivguJnguIfguKXguLHguIHguKnguJPguYwg4Liq4Li44Lil4Liy4Lin4Lij4Lij4LiTDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4reC4o+C4iuC4ow0KK+C4meC4h+C5gOC4ouC4suC4p+C4lOC4tSDguYTguJ7guJfguLXguIHguLjguKUNCivguJnguIfguYDguKLguLLguKfguYwg4LiI4Lix4LiZ4LiX4Lih4Liy4LioDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC5geC4i+C5iOC5guC4i+C4pw0KK+C4meC4h+C5gOC4ouC4suC4p+C5jCDguJjguLTguJXguLTguYTguJ7guKjguLLguKUNCivguJnguIfguYDguKLguLLguKfguYwg4Lie4Lij4Lir4Lih4LmE4LiB4Lij4Lin4LijDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC5gOC4oeC4meC4sOC5gOC4qOC4p+C4lQ0KK+C4meC4h+C5gOC4ouC4suC4p+C5jCDguKfguLLguJnguLDguKPguLTguJnguJfguKPguYwNCivguJnguIfguYDguKLguLLguKfguYwg4Liq4Li44LiB4LmD4LiqDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC4reC4uOC4l+C4seC4og0KK+C4meC4l+C4tSDguIjguLbguIfguJvguKPguLDguKrguLTguJfguJjguLTguYzguJ7guKMNCivguJnguJfguLUg4LmA4Lih4LiG4LiB4Lix4Lil4LiI4Liy4LiiDQor4LiZ4LiX4Li14LiX4Li04Lie4Lii4LmMIOC4o+C4seC4leC4leC4tOC4mOC4o+C4o+C4oQ0KK+C4meC4meC4l+C4nuC4oyDguK3guLjguJTguKHguKHguLLguIENCivguJnguJnguJfguLTguKLguLIg4LiU4Li04LiW4Li14LmA4Lie4LmH4LiHDQor4LiZ4LieIOC5guC4iuC4leC4tOC4geC5gOC4quC4luC4teC4ouC4ow0KK+C4meC4nuC4geC4oyDguIjguLTguJXguYLguJXguKDguLLguKkNCivguJnguJ7guITguLjguJMg4Lin4LiH4Lip4LmM4Liq4Lin4Lij4Lij4LiE4LmMDQor4LiZ4Lie4LiT4Lij4LiH4LiE4LmMIOC5geC4geC5ieC4p+C4iOC4s+C4peC4reC4hw0KK+C4meC4nuC4lOC4pSDguYTguIHguKPguYHguKrguIcNCivguJnguJ7guJTguKUg4LiI4Li44LiR4Liy4LiY4Li04Lib4Lix4LiV4Lii4LmMDQor4LiZ4Lie4LiU4LilIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4meC4nuC4lOC4pSDguYLguJXguYDguIjguKPguLTguI3guJjguJnguLLguJzguKUNCivguJnguJ7guJTguKUg4LiZ4Li04Lil4LiB4Liy4LmA4LiU4LmH4LiUDQor4LiZ4Lie4LiU4LilIOC4m+C4seC4l+C4oeC4sA0KK+C4meC4nuC4lOC4pSDguJ7guLTguYDguJTguIoNCivguJnguJ7guJTguKUg4Lih4Li04LmI4LiH4Lil4LiU4Liy4Lie4LijDQor4LiZ4Lie4LiU4LilIOC4pOC4l+C4mOC4tOC5jOC5gOC4l+C4ng0KK+C4meC4nuC4lOC4pSDguYDguKfguIrguKfguLTguJDguLLguJkNCivguJnguJ7guJTguKUg4Liq4Lix4LiH4LiC4LmM4Lio4Li04Lij4Li04LiZ4LiX4Lij4LmMDQor4LiZ4Lie4LiU4LilIOC4q+C4peC4suC4p+C4l+C4reC4hw0KK+C4meC4nuC4lOC4pSDguK3guLjguIrguIrguLTguJkNCivguJnguJ7guJvguI7guKUg4LiI4LiH4Liq4LiB4Li44Lil4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMDQor4LiZ4Lie4Lie4LijIOC5gOC4hOC4o+C4t+C4reC5geC4geC5ieC4pw0KK+C4meC4nuC4nuC4oyDguJXguLjguIfguITguLDguKPguLHguIHguKnguYwNCivguJnguJ7guJ7guKMg4Lib4Lij4Liw4LmC4Lih4LiI4LiZ4Li14Lii4LmMDQor4LiZ4Lie4Lie4LijIOC4o+C4seC4leC4meC4p+C4tOC4qOC4tOC4qeC4juC5jOC4geC4uOC4pQ0KK+C4meC4nuC4nuC4oyDguKjguLLguKrguJXguKPguYzguILguLMNCivguJnguJ7guJ7guKMg4Lit4Li04LiZ4LiX4Lij4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiZ4Lie4Lie4LilIOC4q+C4oeC4p+C4lOC4iOC4seC4meC4l+C4o+C5jA0KK+C4meC4nuC4oeC4k+C4tSDguYHguIvguYjguYLguIfguYnguKcNCivguJnguJ7guKHguLLguKgg4LmE4Lin4Lii4Lij4Lix4LiK4Lie4Liy4LiZ4Li04LiKDQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMIOC5gOC4guC4t+C5iOC4reC4meC4iuC4seC4og0KK+C4meC4nuC4o+C4seC4leC4meC5jCDguYTguIrguKLguKPguLHguJXguJnguYwNCivguJnguJ7guKPguLHguJXguJnguYwg4Lia4Li44LiN4Lie4Lij4Lie4Li04Lih4LilDQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMIOC4ouC4teC5iOC4reC4s+C4nuC4seC4meC4mOC5jA0KK+C4meC4nuC4o+C4seC4leC4meC5jCDguKrguKHguJrguLHguJXguLTguJvguKPguLDguIrguLLguIHguKMNCivguJnguJ7guKPguLHguJXguJnguYwg4Lit4Liy4Lij4Lii4Liw4LiZ4Lij4Liy4LiB4Li54LilDQor4LiZ4Lie4Lin4Lij4Lij4LiTIOC4hOC4h+C4oeC4sOC4geC4peC5iOC4sw0KK+C4meC4nuC4p+C4o+C4o+C4kyDguJbguLLguKfguKPguKfguLTguKrguLTguJfguJjguLTguYwNCivguJnguJ7guKfguKPguKPguJMg4Lig4Lix4LiB4LiU4Li14LiU4Liz4Lij4LiH4Lik4LiX4LiY4Li04LmMDQor4LiZ4Lie4Lin4Lij4Lij4LiTIOC4quC4tOC4meC4leC4seC5ieC4h+C4p+C4h+C4qeC5jA0KK+C4meC4nuC4p+C4seC4peC4ouC5jCDguKrguLHguKHguJ7guLHguJnguJjguYzguKrguLjguILguKjguKPguLUNCivguJnguJ7guYDguIHguYnguLIg4Liq4Li44LiC4Liq4Li04LiZDQor4LiZ4Lig4LiU4LilIOC5hOC4l+C4ouC4mOC4seC4jeC4jeC4nuC4suC4meC4tOC4ig0KK+C4meC4oOC4lOC4pSDguKrguLjguKfguKPguKPguJPguKHguJPguLUNCivguJnguKDguLHguKog4Lij4Lix4LiV4LiZ4LmE4Lie4LiR4Li54Lij4Lii4LmMDQor4LiZ4Lig4LiyIOC4iOC4suC4oeC4teC4geC4o+C4geC4uOC4pQ0KK+C4meC4oOC4siDguYLguJXguYrguLDguKrguKHguLHguJkNCivguJnguKDguLIg4Lig4Liy4LiE4Liy4Lin4Lix4Lil4Lii4LmMDQor4LiZ4Lig4LiyIOC4qOC4o+C4teC4geC4seC4k+C4keC4tOC4oeC4suC4o+C4seC4geC4qeC5jA0KK+C4meC4oOC4siDguYDguK3guLXguYjguKLguKHguKXguLDguK3guK0NCivguJnguKDguLLguJ7guKMg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiK4Lix4Lii4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiZ4Lig4Liy4Lie4LijIOC4iuC4peC4muC4uOC4qeC4m+C4geC4uOC4pQ0KK+C4meC4oOC4suC4nuC4oyDguJTguKfguIfguKrguKPguYnguK3guKLguJfguK3guIcNCivguJnguKDguLLguJ7guKMg4LiZ4Lit4Lia4LiZ4LmJ4Lit4Lih4LiY4Lij4Lij4LihDQor4LiZ4Lig4Liy4Lie4LijIOC4nuC4iOC4meC4sOC4qOC4tOC4peC4mw0KK+C4meC4oOC4suC4nuC4oyDguYDguKHguJXguJXguJ7guLHguJnguJjguLjguYwNCivguJnguKDguLLguJ7guKMg4Lin4LiH4Lio4LmM4LiB4Li44LiU4Lix4LmI4LiZDQor4LiZ4Lig4Liy4Lie4LijIOC4quC4luC4tOC4o+C4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4meC4oOC4suC4nuC4oyDguKvguK3guKHguILguIjguKMNCivguJnguKDguLLguJ7guKPguKPguJMg4LmA4LiV4LiK4Liw4Lie4Li04Lij4Li04Lii4Liw4LiB4Li44LilDQor4LiZ4Lig4Liy4Lig4Lij4LiT4LmMIOC4l+C4tOC4nuC4o+C4seC4leC4meC5jA0KK+C4meC4oOC4suC4oOC4o+C4k+C5jCDguKvguLDguKrguLTguJXguLDguYDguKfguIoNCivguJnguKDguLLguKXguLHguKIg4Liq4Li44Lin4Lij4Lij4LiT4LiY4Liy4LiU4LiyDQor4LiZ4Lig4Liy4Lio4Li04Lij4Li0IOC4lOC4suC4lOC4suC4qQ0KK+C4meC4o+C4iuC4seC4oiDguKHguLLguJnguLTguJXguIHguLjguKUNCivguJnguKPguKPguLHguJXguJnguYwg4Lit4LiZ4Li44Lio4Li04Lij4Li0DQor4LiZ4Lij4LiyIOC5gOC4l+C4nuC5gOC4quC4meC4sg0KK+C4meC4o+C4suC4l+C4tOC4nuC4ouC5jCDguKfguIfguKjguYzguKfguLTguKPguLHguJXguJnguYwNCivguJnguKPguLLguKDguKPguJPguYwg4LiI4Li14Lij4Liw4Lib4Lij4Liw4Lig4Liy4LiB4Liy4LiN4LiI4LiZ4LmMDQor4LiZ4Lij4Liy4Lin4Lix4Lil4Lii4LmMIOC4iOC4uOC4peC5guC4oeC4geC4guC5jA0KK+C4meC4o+C4tOC4meC4l+C4o+C4seC4leC4meC5jCDguKrguKfguLHguKrguJTguLTguKfguIfguKjguYwNCivguJnguKPguLTguJnguJfguKPguYwg4LiJ4Lix4LiV4Lij4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiDQor4LiZ4Lij4Li04LiZ4LiX4Lij4LmMIOC4meC4o+C4tOC4meC4l+C4o+C5jA0KK+C4meC4o+C4tOC4meC4l+C4o+C5jCDguJ7guKrguLjguJnguJjguKPguLLguJjguKPguKPguKENCivguJnguKPguLTguJnguJfguKPguYwg4Lil4Li04LmJ4Lih4Liq4Lij4LmJ4Lit4Lii4LmA4Lie4LmH4LiK4LijDQor4LiZ4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4uOC4iOC4tOC4leC5guC4lQ0KK+C4meC4o+C4tOC4meC4l+C4tOC4nuC4ouC5jCDguYLguIHguKHguLjguJfguIHguLjguKUNCivguJnguKPguLTguKgg4LiY4Li14Lij4Lie4Lij4Lie4LiH4Lio4LmMDQor4LiZ4Lij4Li04LioIOC4quC4meC5g+C4iA0KK+C4meC4o+C4tOC4qOC4o+C4siDguJXguKPguLXguKfguKPguKPguLHguJXguJnguIHguLjguKUNCivguJnguKPguLTguKjguKPguLIg4Lit4Li44Lip4Liy4LmE4Lie4Lij4Lie4Lij4Lij4LiTDQor4LiZ4Lij4Li04LiqIOC4reC4suC4o+C4teC4ouC5jA0KK+C4meC4o+C4teC4l+C4tOC4nuC4ouC5jCDguJfguLjguYjguIfguIHguLLguKfguLUNCivguJnguKPguYDguKjguKPguKnguJDguYwg4Lit4Li04Lio4Lij4Liy4LiH4LiB4Li54LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguJnguKTguJTguLUg4Lir4Li04Lij4Lix4LiN4Lia4Li54Lij4LiT4LiwDQor4LiZ4Lik4LiZ4Liy4LiXIOC4peC4teC5gOC4peC4tOC4qOC4nuC4seC4meC4mOC5jA0KK+C4meC4pOC4nuC4oyDguK3guLHguITguKPguJ7guIfguKjguYzguYTguJ7guKjguLLguKUNCivguJnguKTguKHguKUg4LiB4Liy4LiN4LiI4LiZ4LiW4Lih4Lii4LiyDQor4LiZ4Lik4Lih4LilIOC4guC4seC4meC5geC4geC5ieC4pw0KK+C4meC4pOC4oeC4pSDguIjguLHguJnguJfguKPguKfguKPguYDguKHguJcNCivguJnguKTguKHguKUg4LiK4Lix4Lii4LiE4Li54LiT4Lic4LilDQor4LiZ4Lik4Lih4LilIOC5geC4i+C5iOC4reC4tuC5iOC4hw0KK+C4meC4pOC4oeC4pSDguJXguLTguJnguLINCivguJnguKTguKHguKUg4LiY4LiZ4Liw4LiW4LmJ4Lit4LiiDQor4LiZ4Lik4Lih4LilIOC4muC4uOC4jeC4geC4meC4gQ0KK+C4meC4pOC4oeC4pSDguYDguJvguKPguKHguKfguLjguJLguLQNCivguJnguKTguKHguKUg4Lie4Li44LiX4LiY4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMDQor4LiZ4Lik4Lih4LilIOC4oeC4suC4meC4sOC4quC4geC4uOC4peC4geC4tOC4iA0KK+C4meC4pOC4oeC4pSDguKPguLjguIjguLTguKvguLLguI0NCivguJnguKTguKHguKUg4Lin4Lij4Lij4LiT4Liy4LmE4LiX4LijDQor4LiZ4Lik4Lih4LilIOC4qOC4tOC4o+C4tOC4nuC4h+C4qOC5jOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4meC4pOC4oeC4pSDguKrguLTguKPguLTguJvguKPguLXguJTguLLguJnguJnguJfguYwNCivguJnguKTguKHguKUg4LmB4Liq4LiZ4Liq4Lin4LiiDQor4LiZ4Lik4Lih4LilIOC4reC4o+C4uOC4k+C5gOC4iOC4o+C4tOC4jeC4geC4uOC4pQ0KK+C4meC4pOC4oeC4tOC4lSDguJzguKXguLLguIHguKPguIHguLjguKUNCivguJnguKXguJ7guKMg4Lig4Li04LiN4LmC4LiN4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4LiZ4Lil4Li04LiZ4LiX4Li04Lie4Lii4LmMIOC5geC4quC4meC4l+C4p+C4teC4quC4uOC4gg0KK+C4meC4peC4tOC4meC4tSDguJjguIfguJnguLPguJfguKPguLHguJ7guKLguYwNCivguJnguKXguLTguJnguLUg4Lit4Lij4LmI4Liy4Lih4LmA4Lij4Li34Lit4LiH4Liq4LiB4Li44LilDQor4LiZ4Lin4Lie4LijIOC4geC4uOC4peC4p+C4iuC4tOC4o+C4suC4p+C4o+C4o+C4k+C5jA0KK+C4meC4p+C4nuC4oyDguKfguIfguKjguYzguK3guLjguYTguKMNCivguJnguKfguKEg4Lie4Lil4Lix4Lia4LiI4Li44LmJ4LiiDQor4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMIOC5gOC4iOC4o+C4tOC4jeC4mOC4meC4suC4p+C4seC4kuC4meC5jA0KK+C4meC4p+C4o+C4seC4leC4meC5jCDguJvguLjguIHguKvguLjguJUNCivguJnguKfguKPguLHguJXguJnguYwg4Liq4LiH4Lin4LiZ4LmA4Liq4Lij4Li14Lie4Liy4LiZ4Li04LiKDQor4LiZ4Lin4LilIOC4p+C4seC4ouC4oeC4uOC4gg0KK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jCDguIjguK3guKHguYHguKrguIcNCivguJnguKfguKXguIjguLHguJnguJfguKPguYwg4LiV4Lix4LiH4LiE4Lia4LiU4Li1DQor4LiZ4Lin4Lil4LiI4Lix4LiZ4LiX4Lij4LmMIOC4muC4uOC4jeC4nuC4iOC4meC4quC4uOC4meC4l+C4ow0KK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jCDguYLguKDguITguLINCivguJnguKfguKXguIjguLHguJnguJfguKPguYwg4Lio4Lij4Li14Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LiZ4Lin4Lil4LiI4Lix4LiZ4LiX4Lij4LmMIOC4reC4suC4o+C4teC4qOC4o+C4teC4p+C4seC4kuC4meC4suC4p+C4h+C4qeC5jA0KK+C4meC4p+C4peC4ieC4p+C4tSDguJrguLHguKfguITguKPguLfguYnguJkNCivguJnguKfguKXguJXguLIg4Lie4Lix4LiS4LiZ4Liq4Li04LiH4Lir4LmMDQor4LiZ4Lin4Lil4LiZ4LmJ4Lit4LiiIOC4geC4meC4tOC4qeC4kOC4quC4uOC4lQ0KK+C4meC4p+C4peC4meC5ieC4reC4oiDguKrguLjguILguKfguLLguJnguLTguIrguKLguYzguYDguIjguKPguLTguI0NCivguJnguKfguKXguJvguKPguLLguIcg4LiK4Lix4Lii4LiX4LiZDQor4LiZ4Lin4Lil4Lie4LijIOC4oOC4suC4k+C4uOC4oeC4suC4oOC4o+C4k+C5jA0KK+C4meC4p+C4peC4nuC4o+C4o+C4kyDguKrguLPguKPguK3guIfguJfguKPguLHguJ7guKLguYwNCivguJnguKfguKXguKTguJTguLUg4LmA4LiV4LmH4Lih4Lik4LiX4LiY4Li04Lin4LiH4Lio4LmMDQor4LiZ4Lin4Lil4Lil4Liw4Lit4LitIOC5gOC4peC4hA0KK+C4meC4p+C4peC4qOC4o+C4tSDguInguKfguLXguJ7guLTguKjguLLguKUNCivguJnguKfguKXguKjguKPguLUg4Lij4Li04LiI4Li04Lij4Lin4LiZ4Li04LiKDQor4LiZ4Lin4Lil4Lio4Li04Lij4Li0IOC4iOC4h+C5gOC4iOC4o+C4tOC4jeC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4meC4p+C4peC4reC4meC4h+C4hOC5jCDguYDguIjguKPguLTguI3guJzguKUNCivguJnguKfguKXguK3guJnguIfguKjguYwg4LiY4Lij4Lij4Lih4Liq4Li44LiI4Lij4Li04LiVDQor4LiZ4Lin4Lin4Lij4Lij4LiTIOC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jeC4p+C4h+C4qOC5jA0KK+C4meC4reC4peC5gOC4lOC4p+C4i+C4tOC4h+C4q+C5jCDguIjguLLguKfguKXguLINCivguJnguYnguK3guKEg4LiX4Lij4Lix4Lie4Lii4Lix4LiiDQor4LiZ4LmJ4Lit4Lih4LiI4Li04LiV4LiV4LmMIOC4nuC4tuC5iOC4h+C4nuC4ow0KK+C4meC5ieC4reC4oiDguITguIfguKjguLTguKXguLINCivguJnguYnguK3guKIg4LiK4Li54LiU4Lin4LiHDQor4LiZ4LmJ4Lit4LiiIOC4leC4o+C4teC4nuC4o+C5hOC4nuC4o+C4seC4ig0KK+C4meC5ieC4reC4oiDguJnguLjguIrguIrguLHguKINCivguJnguYnguK3guKIg4Lie4Lix4LiS4Lie4Li04Lia4Li54Lil4Lii4LmMDQor4LiZ4LmJ4Lit4LiiIOC4ouC4o+C4o+C4ouC4h+C4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4meC5ieC4reC4oiDguYLguKfguKvguLLguKMNCivguJnguYnguK3guKIg4Liq4Li44LiU4Lir4Lil4LmJ4LiyDQor4LiZ4LmJ4Lit4LiiIOC4ruC4suC4oeC4tOC4hA0KK+C4meC4seC4geC4o+C4miDguKvguKXguLTguYjguKHguKfguLTguKPguLHguJXguJnguYwNCivguJnguLHguI7guJTguLIg4Lio4Lij4Li14Lil4LmJ4Lit4Lih4Lil4Liy4LigDQor4LiZ4Lix4LiQ4LiB4Li04LiV4LiV4Li0IOC5geC4i+C5iOC5gOC4iOC4teC4ouC4oQ0KK+C4meC4seC4kOC4ouC4siDguK3guJnguLjguJTguLTguKnguJDguYwNCivguJnguLHguJTguJTguLIg4LmC4Lie4LiY4LiyDQor4LiZ4Lix4LiX4LiY4Lih4LiZIOC5geC4leC4h+C4nuC4uOC4gQ0KK+C4meC4seC4mSDguJ7guLHguJnguYDguJTguIoNCivguJnguLHguJnguJfguIHguLIg4Lie4Liy4Liq4Li44LiZ4Lix4LiZ4LiX4LmMDQor4LiZ4Lix4LiZ4LiX4LmM4LiK4LiZ4LiBIOC4iuC4suC4p+C5gOC4o+C4t+C4rQ0KK+C4meC4seC4meC4l+C4meC4siDguITguKPguK3guIfguJrguLjguI3guKjguKPguLUNCivguJnguLHguJnguJfguJnguLIg4LiL4Liy4Lit4Liw4LiU4Li1DQor4LiZ4Lix4LiZ4LiX4LiZ4LiyIOC4mOC4o+C4o+C4oeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4meC4seC4meC4l+C4meC4siDguJ7guKPguJfguKPguLLguJnguJnguJfguYwNCivguJnguLHguJnguJfguJnguLIg4Lij4Liy4LiV4Lij4Li14LmC4LiK4LiV4Li0DQor4LiZ4Lix4LiZ4LiX4LiZ4LiyIOC4qOC4tOC4peC4suC4quC4seC4og0KK+C4meC4seC4meC4l+C4meC4siDguK3guJnguLHguJnguJXguYzguJjguYLguJnguJTguKENCivguJnguLHguJnguJfguJnguLUg4LmA4LiV4LiK4Liw4Lih4LmC4LiZ4Lij4Lih4Lii4LmMDQor4LiZ4Lix4LiZ4LiX4Lie4LijIOC4iuC4seC4ouC4p+C4o+C4l+C4ow0KK+C4meC4seC4meC4l+C4nuC4oyDguKPguLfguYjguJnguYTguKfguKINCivguJnguLHguJnguJfguJ7guKUg4LiX4Lit4LiH4LiE4LizDQor4LiZ4Lix4LiZ4LiX4Lii4LiyIOC5guC4m+C4o+C5iOC4h+C5geC4quC4h+C4mOC4o+C4o+C4oQ0KK+C4meC4seC4meC4l+C4o+C4siDguKTguJTguLXguILguIjguKMNCivguJnguLHguJnguJfguKfguKPguKPguJMg4Lia4Li54Lij4LiT4Lib4Lij4Liw4Lie4Lik4LiB4Lip4LmMDQor4LiZ4Lix4LiZ4LiX4Lin4Lix4LiS4LiZ4LmMIOC4hOC4meC4tOC4ouC4oeC5gOC4p+C4hOC4tOC4mQ0KK+C4meC4seC4meC4l+C4p+C4seC4mSDguYDguIjguLXguKLguKPguK3guLjguJTguKHguJfguKPguLHguJ7guKLguYwNCivguJnguLHguJnguJfguKfguLHguJkg4Lig4Li54Lij4Li04Lio4Lij4Li1DQor4LiZ4Lix4LiZ4LiX4Lin4Lix4LiZIOC4reC4tOC4quC4o+C4sOC4oeC4suC4peC4seC4og0KK+C4meC4seC4meC4l+C4quC4suC4oyDguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0NCivguJnguLHguJnguJfguLIg4LiK4Li04LiZ4LiY4Lij4Lij4Lih4Lih4Li04LiV4Lij4LmMDQor4LiZ4Lix4LiZ4LiX4LiyIOC4muC4uOC4jeC4l+C4p+C4teC4quC4geC4uOC4pQ0KK+C4meC4seC4meC4l+C4siDguKPguLHguJXguJnguYTguIrguKINCivguJnguLHguJnguJfguLIg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4LiZ4Lix4LiZ4LiX4Li04LiB4LiyIOC4p+C4tOC4o+C4tOC4ouC4sOC4quC4suC5guC4o+C4iOC4meC5jA0KK+C4meC4seC4meC4l+C4tOC4oOC4siDguKPguLHguJXguJnguYDguJ7guLXguKLguKPguIrguLHguKINCivguJnguLHguJnguJfguLTguKLguLIg4LiZ4Liz4LmA4LiB4Li14Lii4Lij4LiV4Li04Lin4LiH4Lip4LiyDQor4LiZ4Lix4LiZ4LiX4Li04Lii4LiyIOC4qOC4seC4geC4lOC4tOC5jOC4ieC4seC4meC4l+C4reC4s+C4nuC4mQ0KK+C4meC4seC4meC4l+C5jCDguYDguKPguLfguK3guIfguJXguKPguLDguIHguLnguKUNCivguJnguLHguKLguJnguYzguKPguLHguJXguJnguYwg4LmA4LiX4Li14Lii4Lih4LiX4Lix4Lio4LiZ4LmMDQor4LiZ4Lix4Lii4LiZ4LiyIOC5geC4i+C5iOC4hOC4uQ0KK+C4meC4seC4ouC4meC4siDguJvguK3guJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguJnguLHguKLguJnguLIg4Lil4Li14LiZ4Liw4LiY4Lij4Lij4LihDQor4LiZ4Lix4Lii4LiZ4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4l+C4reC4hw0KK+C4meC4seC4quC4leC4tOC4ouC4siDguJrguLjguI3guJ7guLTguJfguLHguIHguKnguYwNCivguJnguLLguITguLTguJkg4LmA4Lie4LiK4Lij4Lij4Lix4LiB4Lip4LmMDQor4LiZ4Liy4LiO4Lii4LiyIOC4reC4lOC4tOC5gOC4o+C4geC4pOC4l+C4mOC4tOC4o+C4kw0KK+C4meC4suC4j+C4ouC4siDguKTguJfguJjguLTguYzguYDguILguLXguKLguKcNCivguJnguLLguJXguKLguLIg4LiE4LiH4LmA4LiC4Liy4Lih4LmI4Lin4LiHDQor4LiZ4Liy4LiV4Lii4LiyIOC4meC4tOC4ouC4oQ0KK+C4meC4suC4leC4ouC4siDguKjguKPguLXguKrguLjguJrguLTguJkNCivguJnguLLguJXguK3guJnguIfguITguYwg4LiK4Li34LmI4LiZ4Lia4Liy4LiZDQor4LiZ4Liy4LiW4Lik4LiU4Li1IOC4quC4p+C4seC4quC4lOC4tOC5jOC4nuC4o+C5ieC4reC4oQ0KK+C4meC4suC4meC4siDguYHguIvguYjguJbguLHguKcNCivguJnguLLguKPguJYg4LiY4Liy4Lij4Liw4Lie4Li44LiX4LiYDQor4LiZ4Liy4Lij4LiyIOC5guC4quC4oeC4sOC4meC4seC4meC4l+C4meC5jA0KK+C4meC4suC4o+C4tSDguITguKPguK3guIfguKrguLHguJXguKLguYwNCivguJnguLLguKPguLUg4LmA4LiV4LiK4Liw4Liq4Li44Lig4Liy4LiB4Li54LijDQor4LiZ4Liy4Lij4Li1IOC4nuC4seC4meC4mOC5jOC4lOC4tQ0KK+C4meC4suC4o+C4tSDguKjguLHguIHguJTguLTguYzguYDguKrguKPguLXguIrguLHguKLguIHguLjguKUNCivguJnguLLguKPguLXguJnguLLguKPguJYg4LiJ4Li04Lih4Lig4Li54LmI4LiZ4Li44LmI4LihDQor4LiZ4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4mOC4meC4suC4quC4uOC4p+C4o+C4o+C4k+C4lOC4tOC4luC4tQ0KK+C4meC4suC4o+C4teC4o+C4seC4leC4meC5jCDguKrguLXguYDguKvguKXguYfguIENCivguJnguLLguKfguLTguJkg4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiI4Li14LiZDQor4LiZ4Liy4Lin4Li04LiZIOC4q+C4peC5iOC4reC4peC4seC4geC4qeC4k+C5jA0KK+C4meC4suC5gOC4p+C4qiDguKLguLHguIfguJnguYnguK3guKINCivguJnguLPguIrguLHguKIg4LiX4Li04Lie4LiK4Liy4LiV4Li04LmC4Lii4LiY4Li04LiZDQor4LiZ4Liz4LiK4Lix4LiiIOC4reC4t+C5ieC4reC5gOC4qOC4o+C4qeC4kOC4qOC4seC4geC4lOC4tOC5jA0KK+C4meC4s+C4peC4suC4oCDguYDguJrguYnguLLguKrguLjguKfguKPguKPguJMNCivguJnguYnguLMg4LiK4Lil4Liq4Liy4Lii4Lie4Lix4LiZ4LiY4LmMDQor4LiZ4LmJ4Liz4LiX4Li04Lie4Lii4LmMIOC4iOC4seC4meC4l+C4geC4meC4gQ0KK+C4meC5ieC4s+C4l+C4tOC4nuC4ouC5jCDguKDguLLguKPguLDguYDguKfguIoNCivguJnguYnguLPguJzguJkg4Lij4Liw4LmA4Lia4Li14Lii4LiaDQor4LiZ4LmJ4Liz4Lid4LiZIOC4p+C4tOC4muC4ueC4peC4iuC4suC4leC4tA0KK+C4meC5ieC4s+C5gOC4iuC4teC5iOC4ouC4pyDguIjguLTguJnguJTguLLguJ7guLHguJnguJjguYwNCivguJnguLTguIHguKMg4LiB4Lix4LiH4Lin4Liy4Lij4Liy4Lin4Li44LiS4Li0DQor4LiZ4Li04LiB4LijIOC4meC4p+C4m+C4o+C4teC4iuC4suC4geC4uOC4pQ0KK+C4meC4tOC4geC4oyDguYDguKXguLTguKjguIrguLLguKHguJ7guLnguJnguJcNCivguJnguLTguIHguKPguKEg4Lie4Li24LmI4LiH4LiC4LizDQor4LiZ4Li04LiE4LihIOC4hOC4s+C5gOC4nOC4t+C5iOC4reC4mQ0KK+C4meC4tOC4hOC4oSDguYDguJXguKfguLHguJLguJXguLLguJnguJnguJfguYwNCivguJnguLTguITguKEg4Lie4LiH4Lio4LmM4LmE4LiX4LiiDQor4LiZ4Li04LiE4LihIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4meC4tOC4hOC4oSDguKrguLjguILguKrguLjguKHguLTguJXguKMNCivguJnguLTguIgg4Lii4Li44LiK4Lih4Lig4Li5DQor4LiZ4Li04LiK4LiN4LiyIOC5guC4geC4p+C4tOC4l+C4hOC4k+C4tOC4lQ0KK+C4meC4tOC4lCDguYHguIvguYjguJXguLHguYnguIcNCivguJnguLTguJTguJTguLIg4Lin4Liq4Liw4Lig4Li04LiN4LmC4LiN4LiB4Li44LilDQor4LiZ4Li04LiU4LiyIOC4nOC5iOC4reC4h+C4reC4suC4o+C4oeC4k+C5jA0KK+C4meC4tOC4lOC4suC4p+C4o+C4o+C4kyDguJDguLTguJXguKPguLHguJXguJnguJ7guKUNCivguJnguLTguJXguKLguYzguJvguKPguLDguKDguLIg4Lit4LiU4Li44Lil4LmA4LiU4LiK4LiI4Lij4Lix4LilDQor4LiZ4Li04LiV4Lii4LiyIOC4geC4suC4o+C4quC4suC4oeC4suC4o+C4lg0KK+C4meC4tOC4leC4ouC4siDguILguKfguLHguI3guKTguIHguKnguYwNCivguJnguLTguJXguKLguLIg4LiH4Lix4LmI4LiZ4Lia4Li44LiN4Lio4Lij4Li1DQor4LiZ4Li04LiV4Lii4LiyIOC4iOC4tOC4o+C4m+C4o+C4sOC4oOC4suC4nuC4ow0KK+C4meC4tOC4leC4ouC4siDguIrguKPguLTguJnguJfguKPguLLguKfguLjguJLguLQNCivguJnguLTguJXguKLguLIg4LmE4LiK4Lii4Lih4LiH4LiE4LilDQor4LiZ4Li04LiV4Lii4LiyIOC5geC4i+C5iOC5gOC4m+C5ig0KK+C4meC4tOC4leC4ouC4siDguJXguLHguYnguIfguIjguLTguJXguJnguJoNCivguJnguLTguJXguKLguLIg4LiX4Lin4Li14LmC4LiVDQor4LiZ4Li04LiV4Lii4LiyIOC4mOC4s+C4o+C4h+C4p+C4tOC4l+C4p+C4seC4quC4nuC4h+C4qOC5jA0KK+C4meC4tOC4leC4ouC4siDguYDguJnguLXguKLguKHguITguIcNCivguJnguLTguJXguKLguLIg4Lib4Lij4Liw4LiE4Lit4LiHDQor4LiZ4Li04LiV4Lii4LiyIOC5geC4nOC5iOC4meC4l+C4reC4hw0KK+C4meC4tOC4leC4ouC4siDguJ7guLTguKXguLLguYHguJTguIcNCivguJnguLTguJXguKLguLIg4Lig4Li54LmI4Lii4Lit4LiU4Lii4Li04LmI4LiHDQor4LiZ4Li04LiV4Lii4LiyIOC5guC4oeC4ruC4s+C4oeC4seC4quC4reC4teC4quC4oeC4suC4reC4teC4pQ0KK+C4meC4tOC4leC4ouC4siDguYDguKPguLfguK3guIfguJTguLLguKPguIHguLLguJnguJnguJfguYwNCivguJnguLTguJXguKLguLIg4Lin4LiH4Lio4LmM4Lib4Lij4Li14LiU4Li1DQor4LiZ4Li04LiV4Lii4LiyIOC4p+C4tOC4oOC4suC4leC4sOC5guC4ouC4mOC4tOC4mQ0KK+C4meC4tOC4leC4ouC4siDguKjguLLguKXguKLguLLguIrguLXguKfguLTguJkNCivguJnguLTguJXguKLguLIg4Liq4Lix4LiH4LiC4LmM4LiX4Lit4LiHDQor4LiZ4Li04LiV4Lii4LiyIOC4quC4uOC4l+C4mOC4tOC4qOC4tOC4o+C4tA0KK+C4meC4tOC4leC4ouC4siDguYHguKrguIfguYHguJTguIcNCivguJnguLTguJXguKLguLIg4Lit4Lii4Li54LmI4LiZ4Li04LmI4LihDQor4LiZ4Li04LiV4Lii4LiyIOC4reC4uOC4lOC4oeC4o+C4seC4leC4meC4suC4meC4meC4l+C5jA0KK+C4meC4tOC4leC4ouC5jCDguYHguIHguYnguKfguInguLLguKINCivguJnguLTguJXguKLguYwg4LiW4Li14LmI4LiW4LmJ4Lin4LiZDQor4LiZ4Li04LiV4Lii4LmMIOC4oOC4ueC5iOC5g+C4iOC5gOC4l+C4teC5iOC4ouC4hw0KK+C4meC4tOC4leC4ouC5jCDguKrguLjguJnguJfguKPguK3guJnguLHguJnguJXguIHguLjguKUNCivguJnguLTguJXguLQg4LiJ4LmI4Liz4Lic4Li24LmJ4LiHDQor4LiZ4Li04LiV4Li04LiB4LijIOC4quC4luC4tOC4leC4pOC4l+C4mOC4suC4meC4seC4meC4l+C5jA0KK+C4meC4tOC4leC4tOC4nuC4oyDguJfguK3guIfguJnguLjguYjguKENCivguJnguLTguJfguJjguLTguKPguLIg4Lif4Lix4LiB4LmB4Lii4LmJ4LihDQor4LiZ4Li04LiX4Lix4Lio4LiZ4LmMIOC4geC4seC4h+C5geC4guC4gQ0KK+C4meC4tOC4l+C4seC4qOC4meC5jCDguJvguKPguLDguYDguKrguKPguLTguJDguYDguJnguJXguLTguIHguLjguKUNCivguJnguLTguJfguLHguKjguJnguYwg4Lit4Lig4Li04LiK4Liy4LiV4Li04Lia4Li44LiV4Lij4LmMDQor4LiZ4Li04LiY4Li04LiK4Lix4LiiIOC5hOC4iuC4ouC4mOC4p+C4seC4ig0KK+C4meC4tOC4mOC4tOC4oeC4siDguIrguLLguITguKPguLTguJXguJDguLLguIHguLnguKMNCivguJnguLTguJjguLUg4LmA4Lih4LiG4Liq4Li44LiX4Lix4Lio4LiZ4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4geC4o+C5gOC4geC4qeC4oQ0KK+C4meC4tOC4nuC4meC4mOC5jCDguYTguIHguKPguKXguLHguIHguKnguJPguYwNCivguJnguLTguJ7guJnguJjguYwg4LiI4Lix4LiZ4LiX4LijDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4iuC4suC4jeC4reC4seC4geC4qeC4ow0KK+C4meC4tOC4nuC4meC4mOC5jCDguJTguLLguKPguLLguKfguKPguKPguJPguYwNCivguJnguLTguJ7guJnguJjguYwg4LiX4Lio4Lij4LiH4LiE4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4meC4tOC5iOC4oeC5g+C4q+C4oeC5iA0KK+C4meC4tOC4nuC4meC4mOC5jCDguJvguKPguLDguKrguIfguITguYzguKrguLHguKHguKTguJfguJjguLTguYwNCivguJnguLTguJ7guJnguJjguYwg4Lie4Lik4LiS4Li04LiE4Liy4Lih4Lig4Li14Lij4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4oOC4p+C4quC4seC4meC4leC5jA0KK+C4meC4tOC4nuC4meC4mOC5jCDguYLguKLguKHguLINCivguJnguLTguJ7guJnguJjguYwg4Lil4Li14Lil4Liy4Lin4Li04Lil4Liy4LiqDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4p+C4tOC4peC4suC4peC4seC4og0KK+C4meC4tOC4nuC4meC4mOC5jCDguKrguIfguKfguJnguJnguLLguKENCivguJnguLTguJ7guJnguJjguYwg4Liq4Li44LiC4Liq4Lih4Liy4LiZDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4q+C4h+C4quC5jOC4p+C4tOC4iOC4seC4geC4qeC4k+C5jA0KK+C4meC4tOC4nuC4meC4mOC5jCDguK3guLHguKjguKfguKrguIfguITguKPguLLguKENCivguJnguLTguJ7guKMg4Lin4Lij4LiJ4Lix4LiV4LijDQor4LiZ4Li04Lie4Lix4LiS4LiZ4LmMIOC4guC4meC4reC4meC5gOC4p+C4ig0KK+C4meC4tOC4nuC4seC4l+C4mOC5jCDguJfguK3guIfguYDguKXguYfguIENCivguJnguLTguJ7guLHguJnguJjguYwg4LmA4LiZ4Li14Lii4Lih4Lin4LiH4Lio4LmMDQor4LiZ4Li04Lie4Li04LiQIOC4reC4o+C4uOC4k+C4p+C4h+C4qeC5jCDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4LiZ4Li04Lig4LiyIOC5geC4geC5ieC4p+C4q+C4reC4oQ0KK+C4meC4tOC4oOC4siDguIjguLHguJnguJfguLTguKHguLINCivguJnguLTguKDguLIg4LiK4LmI4Liy4LiH4LiZ4Liy4LiEDQor4LiZ4Li04Lig4LiyIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4meC4tOC4oOC4siDguJbguIHguKXguKfguLTguYLguKPguIjguJnguYwNCivguJnguLTguKDguLIg4LiZ4LiZ4LiX4LiK4Li14Lin4LiyDQor4LiZ4Li04Lig4LiyIOC4m+C4o+C4teC4iuC4suC4leC4seC5ieC4h+C4geC4tOC4iA0KK+C4meC4tOC4oOC4siDguJ7guLHguJnguJjguKHguLTguJXguKMNCivguJnguLTguKDguLIg4LmC4Lig4LiE4Liy4Lij4Lix4LiB4Lip4LmMDQor4LiZ4Li04Lig4LiyIOC4o+C4uOC4iOC4tOC4o+C4sOC4geC4tOC4leC4tOC4p+C4geC4ueC4pQ0KK+C4meC4tOC4oOC4siDguKfguKPguYTguIHguKfguLHguKUNCivguJnguLTguKDguLIg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiZ4Li04Lig4LiyIOC4quC4tOC4o+C4tOC4oeC4q+C4suC4quC4uOC4p+C4seC4kuC4meC5jA0KK+C4meC4tOC4oOC4siDguKvguLLguI3guYDguIHguLTguJTguKrguLTguKPguLQNCivguJnguLTguKDguLIg4Lit4Li04LiZ4Lie4Lix4LiV4Lij4LiyDQor4LiZ4Li04Lig4Liy4Lie4LijIOC4iOC4h+C4iOC4o+C4p+C4ouC4quC4geC4uOC4pQ0KK+C4meC4tOC4oOC4suC4nuC4oyDguJrguLHguKfguJfguK3guIcNCivguJnguLTguKDguLLguJ7guKMg4Lio4Lix4LiB4LiU4Li04LmM4LmB4Liq4LiZDQor4LiZ4Li04Lig4Liy4Lie4Lij4Lij4LiTIOC4nuC4h+C4qOC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4meC4tOC4oOC4suC4oOC4o+C4k+C5jCDguYDguIrguLTguI3guKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguJnguLTguKDguLLguKDguKPguJPguYwg4Liq4Li44LiC4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiZ4Li04Lig4Liy4Lin4Lij4Lij4LiTIOC4l+C4o+C4h+C4qOC4tOC4peC4m+C5jA0KK+C4meC4tOC4oeC4mSDguJXguLjguYjguKHguKjguLTguKPguLQNCivguJnguLTguKHguLTguJUg4Liq4Li44Lij4Li04Lir4Liy4LijDQor4LiZ4Li04Lih4Li04LiV4LijIOC4meC5ieC4reC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4meC4tOC4oeC4tOC4leC4oyDguYHguKrguIfguK3guLPguYTguJ4NCivguJnguLTguYjguKHguJnguKfguKUg4LmA4LiB4Lio4Lin4Lij4Liy4LiH4LiB4Li54LijDQor4LiZ4Li04LmI4Lih4LiZ4Lin4LilIOC4qOC4uOC4oOC4qeC4ow0KK+C4meC4tOC4ouC4lOC4siDguKDguLnguYjguK3guJnguLjguKrguLLguKrguJnguYwNCivguJnguLTguKLguKEg4LiI4LiZ4Li04Lip4LiQ4LmMDQor4LiZ4Li04Lii4LihIOC5geC4lOC4h+C5gOC4reC4teC5iOC4ouC4oeC5gOC4reC4gQ0KK+C4meC4tOC4ouC4oSDguJnguLTguKXguKrguLjguKfguKPguKPguJPguYwNCivguJnguLTguKLguKEg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lio4Liy4LiZ4LiV4LmMDQor4LiZ4Li04Lii4LihIOC5gOC4peC4tOC4qOC4quC4s+C4o+C4suC4jeC5gOC4o+C4tOC4h+C4o+C4oeC4ouC5jA0KK+C4meC4tOC4ouC4oSDguKrguLjguKDguLLguJ4NCivguJnguLTguKLguKHguKjguKPguLUg4Liq4Liy4Lij4Liq4Li44LiCDQor4LiZ4Li04Lij4LiK4LiyIOC5guC4ouC4mOC4tOC4meC4reC4uOC4m+C5hOC4oeC4og0KK+C4meC4tOC4o+C4oeC4pSDguIjguIfguIrguLLguI3guKrguLTguJfguYLguJgNCivguJnguLTguKPguKHguKUg4LiV4Lix4LiZ4LiV4Li04Lie4Lix4LiZ4LiY4LmM4Lin4LiU4Li1DQor4LiZ4Li04Lij4Lih4LilIOC4nuC4seC4kuC4meC4quC4uOC4p+C4o+C4o+C4kw0KK+C4meC4tOC4o+C4oeC4pSDguKfguKLguLLguIHguKPguJPguYzguKfguLTguIjguLTguJXguKMNCivguJnguLTguKPguKHguKUg4Lir4Lil4LmI4Lit4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LiZ4Li04Lij4Lix4LiB4Lip4LmMIOC4peC4tOC5ieC4oeC5geC4q+C4peC4oeC4l+C4reC4hw0KK+C4meC4tOC4o+C4seC4leC4meC5jCDguJ7guKPguKvguKPguKPguKnguLLguKfguLTguIjguLTguJUNCivguJnguLTguKPguLHguJnguJTguKMg4Lie4Lin4LiH4Lie4Li44LiUDQor4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMIOC4iOC4reC4meC5geC4iOC5ieC4hw0KK+C4meC4tOC4o+C4seC4meC4lOC4o+C5jCDguJfguK3guIfguJnguYnguK3guKINCivguJnguLTguKPguLHguJnguJTguKPguYwg4Lie4Lix4LiZ4LiX4Lij4LiB4Li04LiIDQor4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMIOC5guC4peC5ieC4quC4geC4uOC4pQ0KK+C4meC4tOC4o+C4seC4meC4lOC4o+C5jCDguKrguLjguILguKjguKPguLXguIjguLHguIHguKPguKfguLLguKwNCivguJnguLTguKPguLHguJnguJXguYwg4LmA4LiJ4Lii4Lij4Lit4LiUDQor4LiZ4Li04Lij4Li44LiS4LiZ4LmMIOC4leC4seC4meC4reC4meC4uOC4iuC4tOC4leC4leC4tOC4geC4uOC4pQ0KK+C4meC4tOC4o+C4uOC4mCDguYHguKLguYnguKHguYLguIrguJXguLQNCivguJnguLTguKXguJrguKUg4LiX4Li54Lij4Liy4LiZ4Li44Lig4Liy4LieDQor4LiZ4Li04Lil4Lin4Lij4Lij4LiTIOC4nuC4h+C4qeC5jOC5gOC4nOC4t+C4reC4gQ0KK+C4meC4tOC4peC4uOC4muC4pSDguYLguIHguYTguKjguKLguIHguLLguJnguJnguJfguYwNCivguJnguLTguKcg4LmB4LiL4LmI4LmA4LiI4Li14Lii4LiHDQor4LiZ4Li04Lin4Lix4LiS4LiZ4LmMIOC4hOC4h+C4iuC4t+C5iOC4mQ0KK+C4meC4tOC4p+C4seC4kuC4meC5jCDguJXguLHguJnguIjguLTguKPguKfguLHguJLguJnguLINCivguJnguLTguKfguLHguJLguJnguYwg4Lie4Lix4LiZ4LiY4LmM4Lie4Li44LmI4LihDQor4LiZ4Li04Lin4Lix4LiS4LiZ4LmMIOC4p+C4seC4kuC4meC4suC5gOC4iOC4o+C4tOC4jeC4qOC4tOC4peC4m+C5jA0KK+C4meC4tOC4p+C4seC4kuC4meC5jCDguK3guKPguLTguKLguJ7guKTguIHguKnguYwNCivguJnguLTguKfguLHguJXguJnguYwg4Lig4Li54LiV4Li04LiB4LiZ4Li04Lip4LiQ4LmMDQor4LiZ4Li04Lin4Lix4LiV4Lij4LmMIOC4meC4tOC4ouC4oeC5hOC4l+C4og0KK+C4meC4tOC4p+C4seC4leC4tCDguJzguKXguJjguLHguI3guI3guLINCivguJnguLTguKfguLHguJXguLQg4Lir4LmI4Liy4LiZ4LiV4Lij4Liw4LiB4Li54LilDQor4LiZ4Li04Lio4LiyIOC5gOC4iOC4teC4ouC4oeC4o+C4uOC4iOC4teC4geC4uOC4pQ0KK+C4meC4tOC4qOC4suC4geC4oyDguJvguLTguIjguYDguIjguKPguLTguI0NCivguJnguLTguKjguLLguJnguLLguJcg4LiY4Lij4Lij4Lih4LiU4Liz4LmA4LiB4Li04LiHDQor4LiZ4Li04Lip4LiQ4LiB4Liy4LiZ4LiV4LmMIOC5gOC4ouC5h+C4meC4nuC4o+C4sOC4nuC4suC4og0KK+C4meC4tOC4quC4seC4oiDguK3guKPguKPguJbguYTguIHguKfguLHguKXguKfguJfguLUNCivguJnguLTguKrguLIg4Lib4Li04Lii4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LiZ4Li04Liq4Liy4LiB4LijIOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC5ieC4reC4h+C4guC4iOC4ow0KK+C4meC4tOC4quC4suC4o+C4seC4leC4meC5jCDguYDguJXguIrguLLguKfguLHguJLguJnguKfguLTguKjguLLguKUNCivguJnguLTguKrguLTguJXguLIg4Lie4Lij4Lih4Lie4Li04Lil4LiyDQor4LiZ4Li04LmA4Lin4LioIOC5gOC4iOC4tOC5iOC4h+C4oeC5guC4meC4mOC4o+C4o+C4oQ0KK+C4meC4tOC5gOC4p+C4qOC4meC5jCDguJnguLLguITguKrguKHguJrguLnguKPguJPguYwNCivguJnguLTguYLguJkg4Lit4Li04LiZ4LmA4LiV4Lit4Lij4Lix4LiZ4LmA4LiVDQor4LiZ4Li04LmE4LiB4LilIOC5guC4ouC4m+C4seC4hw0KK+C4meC4teC4o+C4oeC4pSDguKrguLjguJnguJfguKPguJnguJnguJfguYwNCivguJnguLjguIHguKMg4Lin4Lij4Liy4LiB4Li54Lil4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTDQor4LiZ4Li44LiB4Li54LilIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4meC4uOC4geC4ueC4pSDguJ7guKTguIHguKnguKfguLHguJkNCivguJnguLjguIHguLnguKUg4Liq4Li44LiC4Liq4LihDQor4LiZ4Li44LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4tOC4meC4p+C4meC4suC4l+C4o+C4seC4nuC4ouC5jA0KK+C4meC4uOC4iiDguITguKXguK3guIfguJnguYnguK3guKINCivguJnguLjguIrguIjguKPguLTguJnguJfguKPguYwg4LmA4LiI4Lin4Li04LiZ4LiZ4Li44LiB4Li44LilDQor4LiZ4Li44LiK4LiI4Lij4Li1IOC4l+C4reC4h+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tA0KK+C4meC4uOC4iuC4iOC4suC4o+C4tSDguITguKXguYnguLLguKLguKrguLjguKfguKPguKPguJMNCivguJnguLjguIrguJnguLLguIgg4Lie4Lil4LiX4Lih4Li04LisDQor4LiZ4Li44LiK4LiZ4Liy4LiOIOC5guC4quC4oOC4sg0KK+C4meC4uOC4iuC4meC4suC4liDguYDguIHguLTguJTguYDguJ7guLTguYjguKENCivguJnguLjguIrguJnguLLguJYg4Lio4Li14Liq4Lix4LiH4LiC4LmMDQor4LiZ4Li44LiK4LiZ4Liy4Lij4LiWIOC4l+C4o+C4seC4nuC4ouC5jOC4quC4uOC4l+C4mOC4tA0KK+C4meC4uOC4iuC4meC4suC4o+C4liDguYPguKrguKrguLjguJfguJjguLTguYwNCivguJnguLjguIrguKPguLTguJnguJfguKPguYwg4LmB4Lin4LmI4LiZ4Lib4Lij4Liw4LiX4Li44LihDQor4LiZ4Li44LiK4Lij4Li14Lii4LmMIOC4quC4uOC4guC5gOC4geC4teC4ouC4o+C4leC4tOC4oOC4seC4og0KK+C4meC4uOC4iuC4tOC4lSDguYDguIjguKPguLTguI3guJ7guLLguJnguLTguIoNCivguJnguLjguKHguLLguJkg4Lii4Li04LmI4LiH4LiZ4Li04Lii4LihDQor4LiZ4Li44Lio4Lij4LiyIOC4nuC4o+C4geC4pOC4qeC4juC4suC4geC4uOC4pQ0KK+C4meC4uOC4quC4o+C4siDguIjguLHguJnguJfguKPguYzguYDguIjguLTguJTguKrguLjguKPguLTguKLguLANCivguJnguLjguKrguKPguLIg4LmA4Lie4LmH4LiK4Lij4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4Li44LmM4LiB4Li44LilDQor4LiZ4Li44Liq4Lij4LiyIOC4reC4seC4qOC4p+C4meC4seC4ouC4geC4tOC4iA0KK+C4meC5gOC4o+C4meC4l+C4o+C5jCDguJTguLTguKrguKPguLDguJ7guIfguKnguYwNCivguJnguYDguKPguKgg4LiX4Lit4LiH4LmB4LiB4LmJ4LinDQor4LiZ4LmA4Lij4LioIOC4qOC4o+C4nuC4o+C4q+C4oQ0KK+C4meC5gOC4o+C4qOC4o+C5jCDguJjguKPguKPguKHguKrguLLguKXguLUNCivguYDguJnguJXguKMg4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4LiZ4LiV4Lij4LiX4Li04Lie4Lii4LmMIOC4iuC4tOC4meC4peC4suC4oOC4suC4geC4uOC4pQ0KK+C5gOC4meC4leC4o+C4meC4oOC4siDguKvguKfguLHguIfguKrguLTguJnguKrguLjguIjguKPguLTguJUNCivguYDguJnguJXguKPguLTguIHguLIg4LmA4LiB4LiV4Li44Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LmA4LiZ4Lij4Lih4Li04LiVIOC4qOC4o+C4teC4iOC4s+C4meC4hw0KK+C5gOC4meC4suC4p+C4o+C4seC4leC4meC5jCDguIHguLPguKXguLHguIcNCivguYDguJnguLLguKfguKPguLHguJXguJnguYwg4LmA4LiL4LmH4LiZ4Liq4Liy4Liq4LmM4LiZDQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC4meC4nuC5gOC4quC4luC4teC4ouC4ow0KK+C5gOC4meC4suC4p+C4o+C4seC4leC4meC5jCDguJ7guLTguJ7guLTguJjguKfguKPguKPguJMNCivguYDguJnguLLguKfguKPguLHguJXguJnguYwg4Lin4Lix4LiS4LiZ4Liy4Lig4LiyDQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC5geC4quC4p+C4h+C4qOC4seC4geC4lOC4tOC5jA0KK+C5gOC4meC4suC4p+C5jCDguKrguLjguJTguYPguIjguJjguKPguKPguKENCivguYDguJnguLXguKLguKEg4Lia4Liz4Lij4Li44LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LmA4LiZ4Li14LmJ4Lii4LinIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C5gOC4meC4t+C5ieC4reC4l+C4tOC4nuC4ouC5jCDguIjguLHguJnguJfguKPguYzguYLguJvguKPguYwNCivguYHguJnguJog4LmC4Liq4LiV4LiW4Li04Lie4Lix4LiZ4LiY4Li44LmMDQor4LmB4LiZ4LmI4LiH4LiZ4LmJ4Lit4LiiIOC5gOC4i+C4teC5iOC4ouC4h+C4nOC4uOC4hw0KK+C5geC4meC5iOC4h+C4meC5ieC4reC4oiDguJvguLjguYjguJnguK3guLjguJTguKENCivguYHguJnguYjguIfguJnguYnguK3guKIg4LmA4Lin4LiX4Lii4Lie4LiH4Lip4LmMDQor4LmB4LiZ4LmI4LiH4LiZ4LmJ4Lit4LiiIOC4reC4tOC4meC4l+C4o+C4o+C4seC4geC4guC4sg0KK+C5guC4meC4o+C4tSDguYHguKrguIfguKjguKPguLUNCivguYTguJnguYkg4Lij4Lit4LiU4LiX4Lit4LiHDQor4Lia4LiH4LiB4LiKIOC4muC4uOC4jeC4iuC5iOC4p+C4og0KK+C4muC4h+C4geC4iiDguYDguKvguKXguYjguLLguKfguKPguKfguLTguJfguKLguYwNCivguJrguJTguLTguJnguJfguKPguYwg4LiU4Li04Lil4LiB4Lin4Lij4LmC4LiK4LiV4Li0DQor4Lia4Lie4Li04LiV4LijIOC4lOC4p+C4h+C5geC4geC5ieC4pw0KK+C4muC4o+C4o+C4iOC4hyDguIHguLjguKvguKXguLLguJrguKfguLTguKPguLHguJXguJnguYwNCivguJrguKPguKPguIjguIcg4LiI4Lix4LiZ4LiX4Lij4LmM4LiX4Lit4LiHDQor4Lia4Lij4Lij4LiI4LiHIOC4iuC4seC4ouC4p+C4tOC4o+C4tOC4ouC4sOC4p+C4h+C4qOC5jA0KK+C4muC4o+C4o+C4iOC4hyDguJXguLjguYjguJnguJfguLINCivguJrguKPguKPguIjguIcg4LiZ4Liy4Lih4Lih4Li14LmE4LiK4LiiDQor4Lia4Lij4Lij4LiI4LiHIOC4m+C5ieC4reC4h+C4oOC4seC4og0KK+C4muC4o+C4o+C4iOC4hyDguYDguJ7guLTguYjguKHguJzguKUNCivguJrguKPguKPguIjguIcg4Lij4LmI4Lih4LmC4Lie4LiY4Li04Lir4Lii4LiBDQor4Lia4Lij4Lij4LiI4LiHIOC4p+C4tOC4peC4suC4quC4o+C4seC4leC4meC5jA0KK+C4muC4o+C4o+C4iOC4hyDguKrguLLguKrguLDguIHguLjguKUNCivguJrguKPguKPguIjguIcg4Lir4Lij4Lix4LmI4LiH4LmA4Lit4LihDQor4Lia4Lij4Lij4LiI4LiH4LiB4Li04LiIIOC4m+C4tOC4ouC4sOC4quC4seC4meC4leC4tOC4quC4uOC4gg0KK+C4muC4o+C4o+C4iOC4miDguIrguLfguYjguJnguJ7guLHguJnguJjguLjguYwNCivguJrguKPguKPguIjguJog4Lig4Li54Lin4Lin4Li14Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Lia4Lij4Lij4LiI4LiwIOC5gOC4o+C4t+C4reC4meC5geC4geC5ieC4p+C4p+C4h+C4qOC5jA0KK+C4muC4o+C4o+C4k+C4siDguJnguJnguJfguKfguIfguKnguYwNCivguJrguKPguKPguJfguLbguIEg4Lil4LmJ4Lit4Lin4LiK4Li04Lij4Liw4Lin4Lix4LiO4LiO4LmMDQor4Lia4Lij4Lij4Lie4LiVIOC4lOC4teC4o+C4seC4geC4qeC4sg0KK+C4muC4o+C4o+C4nuC4lSDguKHguKvguLHguJfguJjguJnguLLguIHguLjguKUNCivguJrguKPguKPguJ7guJUg4LmB4Liq4LiH4LmB4LiB4LmI4LiZ4LmA4Lie4LmH4LiK4Lij4LmMDQor4Lia4Lij4Lij4Lii4LiHIOC4nuC4tOC4nuC4seC4kuC4meC5jOC5gOC4o+C4t+C4reC4h+C5hOC4ow0KK+C4muC4o+C4o+C4ouC4h+C4hOC5jCDguKLguKHguYHguJ7guJfguKLguYwNCivguJrguKPguKPguKXguLfguK0g4LmA4Lij4Li34Lit4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Lia4Lij4Lij4Lil4Li4IOC4oOC4ueC4oeC4tOC4nuC4seC4meC4mOC4uOC5jA0KK+C4muC4o+C4o+C4q+C4suC4oyDguKjguLTguKXguJvguK3guLLguIrguLINCivguJrguKPguKPguYDguIjguLTguJQg4LiK4Li34LmI4LiZ4LiB4Li44LilDQor4Lia4Lij4Lij4LmA4LiI4Li04LiUIOC4oOC4ueC5iOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4muC4o+C4o+C5gOC4iOC4tOC4lCDguYHguKrguIfguJfguK3guIcNCivguJrguKPguKPguYDguJfguLTguIcg4LiC4Liy4Lin4Lic4LmI4Lit4LiHDQor4Lia4Lij4Lij4LmA4LiX4Li04LiHIOC4p+C4h+C4qeC5jOC4nuC4ueC4pQ0KK+C4muC4o+C4o+C5gOC4peC4tOC4qCDguYHguIvguYjguYLguITguYnguKcNCivguJrguKPguLTguJrguLnguKPguJPguYwg4Lin4Liy4Lij4Liy4LiK4LiZ4LiZ4LiX4LmMDQor4Lia4Lij4Li04Lir4Liy4Lij4Lin4Lij4LiB4Li04LiIIOC4nuC4o+C4sOC4hOC4o+C4uQ0KK+C4muC4p+C4oyDguJvguKPguLDguYDguKrguKPguLTguJDguKrguKTguKnguJTguLTguYwNCivguJrguKfguKMg4LmA4Liq4LiW4Li14Lii4Lij4LmC4Liq4Lig4LiTDQor4Lia4Lin4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4tOC5iOC4oeC4qOC4tOC4o+C4tOC5gOC4o+C4t+C4reC4h+C4nOC4pQ0KK+C4muC5iuC4p+C4oiDguJjguKPguKPguKHguKHguIfguITguKUNCivguJrguLHguIHguIjguLjguYnguKIg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lia4Lix4LiB4LmA4LiB4Li14Lii4LinIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4muC4seC4geC5guC4hOC4oiDguYHguIvguYjguKXguLTguYnguKENCivguJrguLHguIfguK3guKMg4LiB4Lij4Liw4LiW4Li04LiZ4LiX4Lit4LiHDQor4Lia4Lix4LiH4Lit4LijIOC4hOC4h+C4luC4suC4p+C4ow0KK+C4muC4seC4h+C4reC4oyDguIjguLTguJXguIjguKPguLHguKrguYHguKrguIcNCivguJrguLHguIfguK3guKMg4LiK4Li34LmI4LiZ4LmC4LiK4LiV4Li0DQor4Lia4Lix4LiH4Lit4LijIOC5gOC4lOC4iuC4nOC4pQ0KK+C4muC4seC4h+C4reC4oyDguJfguLTguKHguYLguJvguYjguIfguYHguIHguYnguKcNCivguJrguLHguIfguK3guKMg4Lia4Lix4Lin4Liq4Lij4LmJ4Lit4LiiDQor4Lia4Lix4LiH4Lit4LijIOC4m+C4tOC4ouC4quC4uOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C4muC4seC4h+C4reC4oyDguJ7guLjguJfguJjguLTguJnguLHguJnguJfguJnguYwNCivguJrguLHguIfguK3guKMg4Lih4Liy4Liq4Lio4Lij4Li1DQor4Lia4Lix4LiH4Lit4LijIOC4peC4p+C5gOC4qOC4o+C4qeC4kOC4tQ0KK+C4muC4seC4h+C4reC4oyDguKfguLjguYnguJnguYDguKvguKXguLXguYjguKLguKENCivguJrguLHguIfguK3guKMg4Liq4Liw4Liq4Li04Liq4Lih4Li04LiVDQor4Lia4Lix4LiH4Lit4LijIOC4quC4uOC4p+C4o+C4o+C4k+C4suC4meC4meC4l+C5jA0KK+C4muC4seC4h+C4reC4oyDguK3guJXguLTguIrguLLguJXguLQNCivguJrguLHguIfguK3guKMg4LmA4Liu4LiH4Lig4Li54LmI4LmA4LiI4Lij4Li04LiNDQor4Lia4Lix4LiH4LmA4Lit4Li04LiNIOC5gOC4nuC5h+C4h+C4quC4uOC4gg0KK+C4muC4seC4jeC4iuC4oyDguKrguLjguILguK3guJnguLHguJnguJXguYzguIrguLHguKINCivguJrguLHguI3guIrguLIg4LiE4Lij4Li44LiY4LmA4Lin4LmC4LiKDQor4Lia4Lix4LiN4LiK4LiyIOC4iuC4seC4ouC4m+C4o+C4sOC4quC4ng0KK+C4muC4seC4jeC4iuC4siDguYHguJXguYnguKrguLjguKfguKPguKPguJMNCivguJrguLHguI3guIrguLIg4Lia4Li44LiZ4LiZ4Liy4LiE4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lia4Lix4LiN4LiK4LiyIOC5gOC4nuC4teC4ouC4o+C4m+C4o+C4sOC4quC4suC4mOC4meC5jOC4qOC4tOC4o+C4tA0KK+C4muC4seC4jeC4iuC4siDguKfguIfguKjguYzguKjguKPguLXguIHguLjguKUNCivguJrguLHguI3guIrguLIg4Liq4Liw4LiU4Lin4LiB4LiU4Li1DQor4Lia4Lix4LiN4LiK4LiyIOC4reC4seC4iOC4ieC4o+C4suC4oeC4h+C4hOC4pQ0KK+C4muC4seC4jeC4jeC4seC4leC4tCDguIjguLTguJnguJXguJnguLLguJvguKPguLLguYLguKHguJfguKLguYwNCivguJrguLHguI3guI3guLHguJXguLQg4Lia4Li44LiN4LiY4Lij4Lij4LihDQor4Lia4Lix4LiN4LiN4Lix4LiV4Li0IOC4p+C4h+C4qeC5jOC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4muC4seC4jeC4keC4tOC4lSDguKjguKPguIHguKXguYnguLINCivguJrguLHguJPguJHguLTguJUg4LiE4Li54LmI4LiX4Lin4Li14LiY4Lij4Lij4LihDQor4Lia4Lix4LiT4LiR4Li04LiVIOC4leC4o+C4sOC4geC4suC4o+C4p+C4teC4o+C4sOC5gOC4lOC4ig0KK+C4muC4seC4k+C4keC4tOC4lSDguJrguLjguI3guI3guLLguKfguLHguJLguJnguYwNCivguJrguLHguJPguJHguLTguJUg4LmC4Lie4LiY4Li04LmM4LiZ4LmJ4Lit4LiiDQor4Lia4Lix4LiT4LiR4Li04LiVIOC4p+C4o+C4suC4meC4uOC4qOC4oOC4suC4geC4uOC4pQ0KK+C4muC4seC4k+C4keC4tOC4lSDguKrguLjguJfguJjguLTguKfguLjguJLguLTguJnguKTguYDguJrguKjguKPguYwNCivguJrguLHguJPguJHguLTguJUg4Lit4Li44Lil4Li04LioDQor4Lia4Lix4LiT4LiR4Li04LiV4Lii4LmMIOC4quC4meC4tOC4l+C4o+C4seC4geC4qeC4sg0KK+C4muC4seC4k+C4keC4ueC4o+C4ouC5jCDguJ7guLHguJnguJjguLjguKrguLjguIINCivguJrguLHguJnguKXguLfguK0g4LmC4Lii4LiY4Li1DQor4Lia4Lix4Lil4Lil4Lix4LiH4LiB4LmMIOC4meC4suC4hOC4nuC4seC4meC4mOC4uOC5jA0KK+C4muC4seC4pyDguJ7guLjguIHguYDguIjguKPguLTguI0NCivguJrguLHguKfguILguLLguKcg4Liq4Li44LiC4LiE4LizDQor4Lia4Lix4Lin4LiL4LmI4Lit4LiZIOC4l+C4tOC4nuC4ouC5jOC4iOC4seC4geC4ow0KK+C4muC4seC4p+C4meC5ieC4reC4oiDguIfguLHguJTguKrguLHguJnguYDguJfguLXguKLguLANCivguJrguLHguKfguJzguLTguJkg4LmA4Lib4Lij4Lih4LiB4Lih4LilDQor4Lia4Lix4Lin4Lil4Lit4LiiIOC4geC4oeC4guC4uOC4meC4l+C4lA0KK+C4muC4seC4p+C4p+C4o+C4o+C4kyDguK3guJnguLXguIjguLDguYTguJ7guJrguLnguKXguKLguYwNCivguJrguLHguKfguKvguKXguKfguIcg4Lie4Lij4Lir4Lih4Lij4Lix4LiB4Lip4LiyDQor4Lia4Lix4Lin4LmA4Lij4Li14Lii4LinIOC5gOC4geC4suC4j+C4teC4o+C4sA0KK+C4muC4seC4p+C5hOC4giDguYHguIjguYjguKHguK3guLjguKXguLTguJXguKPguLHguJXguJnguYwNCivguJrguLLguIvguLHguKHguKLguLLguJkg4Lih4Li54Lil4Liy4LiE4Liy4LiZDQor4Lia4Liy4LiZ4LmA4Lii4LmH4LiZIOC4quC4luC4suC4p+C4o+C4quC4oeC4tOC4lQ0KK+C4muC5ieC4suC4meC4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguJrguYnguLLguJnguIHguKPguKPguJPguLTguIHguLLguKPguYwNCivguJrguYnguLLguJnguIrguLTguJTguJXguKfguLHguJkg4Lia4LmJ4Liy4LiZ4LiK4Li04LiU4LiV4Lin4Lix4LiZDQor4Lia4LmJ4Liy4LiZ4LiZ4Liy4LiH4LmA4Lil4Li04LmJ4LiHIDINCivguJrguYnguLLguJnguJvguLTguKLguLDguJPguLTguJTguLIg4Lia4LmJ4Liy4LiZ4Lib4Li04Lii4Liw4LiT4Li04LiU4LiyDQor4Lia4LmJ4Liy4LiZ4Lih4Lir4Li04LmC4LiE4LiVIOC4muC5ieC4suC4meC4oeC4q+C4tOC5guC4hOC4lQ0KK+C4muC5ieC4suC4meC4p+C4tOC4iOC4tOC4leC4o+C4qOC4o+C4teC4geC4oeC4pSDguJrguYnguLLguJnguKfguLTguIjguLTguJXguKPguKjguKPguLXguIHguKHguKUNCivguJrguYnguLLguJnguKrguLTguJnguLLguKXguLHguIHguKnguJPguYwg4Lia4LmJ4Liy4LiZ4Liq4Li04LiZ4Liy4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lia4LmJ4Liy4LiZ4LmA4LiB4Liy4Liw4LiB4Lil4Liy4LiHIOC4muC5ieC4suC4meC5gOC4geC4suC4sOC4geC4peC4suC4hw0KK+C4muC5ieC4suC4meC5geC4geC5ieC4pyDguJrguYnguLLguJnguYHguIHguYnguKcNCivguJrguLPguKPguLjguIcg4LiE4LiH4LiC4Lin4Lix4LiN4Lii4LiH4LiE4LmMDQor4Lia4Liz4Lij4Li44LiHIOC5geC4i+C5iOC4geC5iuC4p+C4og0KK+C4muC4s+C4o+C4uOC4hyDguJvguKPguLDguKDguLLguKPguLHguIHguKnguYwNCivguJrguLPguKPguLjguIcg4LmB4Lii4LmJ4Lih4Lia4Lix4LiN4LiK4LijDQor4Lia4Liz4Lij4Li44LiHIOC4quC4uOC4guC4quC4luC4suC4mQ0KK+C4muC4s+C5gOC4nuC5h+C4jSDguIHguLjguKXguJTguLTguKXguIHguIrguLHguKINCivguJrguLPguYDguJ7guYfguI0g4Liq4Liw4Lil4Lit4Lii4Lij4Lix4Lih4Lii4LmMDQor4Lia4Li14LmJIOC5geC4i+C5iOC4peC5ieC4rQ0KK+C4muC4uOC4jSDguYDguInguKXguLTguKHguJfguKPguLLguJnguLjguKfguLHguJLguJnguYwNCivguJrguLjguI0g4Lio4Lij4Li14LiK4LmI4Lin4LiiDQor4Lia4Li44LiN4LiB4LmI4LitIOC5gOC4oeC4mOC4teC4geC4uOC4pQ0KK+C4muC4uOC4jeC4hOC4p+C4oyDguYDguKvguKHguJrguLjguJXguKMNCivguJrguLjguI3guIjguKPguLTguIcg4LiV4LiH4LiI4Li04LiV4Lij4Lix4LiV4LiZ4LmMDQor4Lia4Li44LiN4LiI4Lix4LiZ4LiX4Lij4LmMIOC4o+C4s+C4iOC4p+C4mQ0KK+C4muC4uOC4jeC4iOC4tOC4o+C4siDguJTguLPguKPguLTguKvguYzguIHguKXguYnguLINCivguJrguLjguI3guIrguKEg4LiE4Liz4Lit4Li04LmI4LiZDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4geC4seC4meC4nuC4ueC4pQ0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguITguLLguKfguKrguLjguKfguKPguKPguJMNCivguJrguLjguI3guIrguYjguKfguKIg4LiJ4Li04Lih4LiJ4Lin4Li1DQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguJfguK3guIfguKrguLjguIINCivguJrguLjguI3guIrguYjguKfguKIg4LmA4LiZ4Liy4Lin4LmM4LmD4Lir4Lih4LmIDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC5geC4m+C5ieC4meC5gOC4q+C4oeC4t+C4reC4mQ0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguYDguJ7guLXguKLguKPguJTguLUNCivguJrguLjguI3guIrguYjguKfguKIg4Lii4Li54LiZ4LiK4Li44LmI4LihDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4p+C4seC4kuC4meC4suC4p+C4h+C4qOC5jA0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguKrguLHguIfguILguYzguYHguJvguYnguJkNCivguJrguLjguI3guIrguYjguKfguKIg4LmB4Liq4LiH4LiX4Lit4LiH4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4reC4uOC4lOC4oeC4leC4o+C4sOC4geC4ueC4peC4p+C4h+C4qOC5jA0KK+C4muC4uOC4jeC4iuC4reC4miDguJfguK3guIfguYHguIHguYnguKcNCivguJrguLjguI3guIrguK3guJog4Lit4Li44LiU4Lih4Lib4Lij4Liw4Lih4Lin4LilDQor4Lia4Li44LiN4LiK4Lix4LiiIOC4guC4seC4meC4leC4tOC4jeC4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4muC4uOC4jeC4iuC4seC4oiDguIjguLXguKPguLDguYTguJ7guYLguKPguIjguJnguYzguIHguLjguKUNCivguJrguLjguI3guIrguLHguKIg4LiK4Li44LiV4Li04Lit4LiZ4Li44Liq4Lij4LiT4LmM4LiK4Lix4LiiDQor4Lia4Li44LiN4LiK4Lix4LiiIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4muC4uOC4jeC4iuC4seC4oiDguYDguJXguLTguKHguJfguKPguLHguJ7guKLguYzguJbguLLguKfguKMNCivguJrguLjguI3guIrguLHguKIg4LiZ4Li04Lil4Lij4Lie4Li14LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lia4Li44LiN4LiK4Lix4LiiIOC4m+C4o+C4teC4iuC4suC4nuC4seC4meC4mOC5jA0KK+C4muC4uOC4jeC4iuC4seC4oiDguYDguJ7guIrguKPguJ7guKXguK3guKLguIfguLLguKENCivguJrguLjguI3guIrguLHguKIg4LmA4Lij4Li14Lii4LiH4Lin4Li04LmE4Lil4LiB4Li44LilDQor4Lia4Li44LiN4LiK4Lix4LiiIOC4p+C4o+C4geC4tOC4iOC4nuC4o+C4quC4tOC4mQ0KK+C4muC4uOC4jeC4iuC4seC4oiDguKjguKPguLXguKrguLjguKDguKMNCivguJrguLjguI3guIrguLHguKIg4Liq4Li44LiC4Lig4Li04Lij4Lih4Lii4LmM4LmA4LiB4Lip4LihDQor4Lia4Li44LiN4LiK4Lix4LiiIOC5gOC4q+C4peC5iOC4suC4nuC4suC4geC5gOC4nuC4teC4ouC4ow0KK+C4muC4uOC4jeC4iuC4seC4oiDguK3guLjguJvguJbguLHguKHguIrguLLguJXguLQNCivguJrguLjguI3guIrguLTguJQg4Lia4Li44LiN4LmA4Lil4Li04LioDQor4Lia4Li44LiN4LiK4Li34LmI4LiZIOC4m+C4tOC4ouC4sOC4m+C4geC4o+C4k+C5jOC4iuC4seC4og0KK+C4muC4uOC4jeC4iuC4uSDguIHguKPguLDguJbguLTguJnguJfguK3guIcNCivguJrguLjguI3guIrguLkg4LiH4Li04LmJ4Lin4LiK4LiZDQor4Lia4Li44LiN4LiK4Li5IOC4iuC4seC4ouC4muC4uOC4jeC4jeC4peC4seC4geC4qeC4k+C5jA0KK+C4muC4uOC4jeC4iuC4uSDguJXguKPguLDguIHguLnguKXguYDguIjguKPguLTguI3guKrguLjguIINCivguJrguLjguI3guIrguLkg4LiY4Li04Lij4Liy4Lio4Lix4LiB4LiU4Li04LmMDQor4Lia4Li44LiN4LiK4Li5IOC4m+C4seC5ieC4meC5gOC4guC4teC4ouC4pw0KK+C4muC4uOC4jeC4iuC4uSDguYLguJ7guJjguLTguKrguLLguKMNCivguJrguLjguI3guIrguLkg4Lij4Lit4LiU4LmA4Lie4LmH4LiH4Liq4Lix4LiH4LiE4LmMDQor4Lia4Li44LiN4LiK4Li5IOC4p+C4seC4h+C4geC4suC4meC4meC4l+C5jA0KK+C4muC4uOC4jeC4iuC4uSDguKrguKHguJrguLnguKPguJPguYwNCivguJrguLjguI3guIrguLkg4Liq4Li44Lin4Lij4Lij4LiT4LiK4Liy4LiV4Li0DQor4Lia4Li44LiN4LiK4Li5IOC4reC4tuC5ieC4h+C4geC4uOC4pQ0KK+C4muC4uOC4jeC4jeC4pOC4l+C4mOC4tOC5jCDguKXguLTguILguLTguJXguYDguIjguKPguLTguI3guKfguLHguJLguJnguLANCivguJrguLjguI3guJHguKPguLTguIEg4LiI4Lix4LiZ4LiX4Lij4LiY4Liy4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lia4Li44LiN4LiU4Li1IOC4quC4h+C4p+C4meC4hOC4p+C4suC4oeC4lOC4tQ0KK+C4muC4uOC4jeC4leC4siDguYHguIvguYjguYDguKfguLXguKLguJkNCivguJrguLjguI3guJXguLIg4Lio4Lix4LiB4LiU4Li04LmM4Lih4Lix4LiH4LiB4LijDQor4Lia4Li44LiN4LiW4Li04LmI4LiZIOC4nuC4h+C4qeC5jOC4guC4suC4pw0KK+C4muC4uOC4jeC4l+C4o+C4hyDguYDguJnguLXguKLguKHguYLguKDguITguLANCivguJrguLjguI3guJfguKPguLHguJ7guKLguYwg4Liq4Lir4LmA4LiX4Lin4Liq4Li44LiE4LiZ4LiY4LmMDQor4Lia4Li44LiN4LiX4Lin4Li1IOC5hOC4p+C4ouC4quC4uOC4leC4o+C4sg0KK+C4muC4uOC4jeC4l+C4reC4oSDguYLguJbguJvguLHguYnguJkNCivguJrguLjguI3guJfguLHguKjguJnguYwg4LiI4Lij4LiT4Liw4Lir4Li44LiVDQor4Lia4Li44LiN4LiX4Li04Lie4Lii4LmMIOC4p+C4seC4kuC4meC4sOC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguIHguKXguLHguJTguK3guKLguLnguYgNCivguJrguLjguI3guJjguKPguKPguKEg4LiI4Lij4Li54LiN4Lio4Lij4Li1DQor4Lia4Li44LiN4LiY4Lij4Lij4LihIOC5geC4i+C5iOC5hOC4q+C4pQ0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguJnguJ7guITguLjguJMNCivguJrguLjguI3guJjguKPguKPguKEg4Lic4Li04Lin4LmA4LiB4Lil4Li14LmJ4Lii4LiHDQor4Lia4Li44LiN4LiY4Lij4Lij4LihIOC4oeC5iOC4p+C4h+C4qOC4o+C4tQ0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguKfguLHguIfguYDguKrguJnguLINCivguJrguLjguI3guJjguKPguKPguKEg4Liq4Li44Lin4Lij4Lij4LiT4Lin4Li04LiI4Li04LiV4LijDQor4Lia4Li44LiN4LiY4Liy4Lij4Li1IOC4iOC4seC4meC4l+C4o+C4l+C4teC4m+C4o+C4sA0KK+C4muC4uOC4jeC4meC4sCDguKjguKPguLXguIjguLTguJnguJTguLINCivguJrguLjguI3guJnguLLguIQg4LiN4Liy4LiT4LmC4LiB4Lih4Li44LiXDQor4Lia4Li44LiN4LiZ4Liy4LiEIOC4nuC5iOC4p+C4h+C4nuC4o+C5ieC4reC4oQ0KK+C4muC4uOC4jeC4meC4suC4hCDguKrguLPguYHguJTguIfguYDguJTguIoNCivguJrguLjguI3guJnguLMg4LiK4LmJ4Liy4LiH4Lih4LiT4Li1DQor4Lia4Li44LiN4LiZ4LizIOC4reC4ouC4ueC5iOC4lOC4tQ0KK+C4muC4uOC4jeC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIHguJnguIHguKrguLTguIfguKvguYwNCivguJrguLjguI3guJvguKXguLnguIEg4LiC4Li44Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lia4Li44LiN4Lib4Lil4Li54LiBIOC4o+C4uOC4iOC4tOC4meC4suC4oQ0KK+C4muC4uOC4jeC4nOC5iOC4reC4hyDguKPguLjguJjguLHguJnguKfguYwNCivguJrguLjguI3guJ7guLHguJnguJjguYwg4LiX4Lix4Lio4LiZ4Lit4Lix4Lih4Lie4LijDQor4Lia4Li44LiN4Lie4LiyIOC4quC4suC4o+C4tOC4geC4sg0KK+C4muC4uOC4jeC4oeC4seC5iOC4mSDguILguKfguLHguI3guKLguLfguJkNCivguJrguLjguI3guKHguLIg4LmA4LiC4Li14Lii4Lin4LiK4Lit4Li44LmI4LihDQor4Lia4Li44LiN4Lih4LiyIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4muC4uOC4jeC4oeC4siDguJnguKfguKXguKrguKfguLLguJcNCivguJrguLjguI3guKHguLIg4Lie4Li44LmI4Lih4LmA4Lij4Li34Lit4LiHDQor4Lia4Li44LiN4Lih4LiyIOC4p+C4o+C4o+C4k+C4quC4uOC4l+C4mOC4tOC4nuC4h+C4qOC5jA0KK+C4muC4uOC4jeC4oeC4siDguYDguKrguLfguK3guYHguIvguKHguYDguKrguKPguLTguKENCivguJrguLjguI3guKHguLLguIEg4LiK4Li54Lio4Lij4Li1DQor4Lia4Li44LiN4Lih4Li1IOC4geC4o+C4o+C4k+C4quC4ueC4lQ0KK+C4muC4uOC4jeC4oeC4tSDguIfguLLguKHguIjguLTguJXguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJrguLjguI3guKHguLUg4LiK4Li14Lin4Liq4Liy4LiY4LiZ4LmMDQor4Lia4Li44LiN4Lih4Li1IOC4l+C4p+C4teC4leC4o+C4sOC4geC4ueC4pQ0KK+C4muC4uOC4jeC4oeC4tSDguJrguLjguI3guKXguYnguKfguJkNCivguJrguLjguI3guKHguLUg4Lie4Li04Lip4LiT4Li44Lin4LiH4Lio4LmMDQor4Lia4Li44LiN4Lih4Li1IOC5guC4ouC4mOC4suC4lOC4tuC4gQ0KK+C4muC4uOC4jeC4oeC4tSDguKjguKPguKHguKLguLjguKPguLINCivguJrguLjguI3guKHguLUg4Liq4Li44LiI4Li04LiV4Lij4Lin4Lix4LiS4LiZ4Liw4Liq4Li44LiCDQor4Lia4Li44LiN4Lih4Li1IOC5gOC4reC4teC5iOC4ouC4oeC4q+C4uOC5iOC4mQ0KK+C4muC4uOC4jeC4ouC4hyDguKPguLHguJXguJnguLLguJnguLHguJnguJfguYwNCivguJrguLjguI3guKLguIfguITguYwg4LiZ4Liy4Lih4LiU4Li1DQor4Lia4Li44LiN4Lii4LiH4LiE4LmMIOC5geC4quC4h+C4oeC4k+C4tQ0KK+C4muC4uOC4jeC4ouC4sOC4o+C4seC4leC4meC5jCDguITguKXguYnguLLguJnguKrguLTguJnguJjguLjguYwNCivguJrguLjguI3guKLguLHguIcg4LmA4Lib4Li14Lii4LiX4Lit4LiHDQor4Lia4Li44LiN4Lii4Li04LmI4LiHIOC4geC4pOC4qeC4k+C4sOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4muC4uOC4jeC4ouC4tOC5iOC4hyDguKDguLLguJPguLjguKjguLLguJnguJXguYwNCivguJrguLjguI3guKLguLTguJkg4Liq4Li44LiC4Lih4LiT4Li1DQor4Lia4Li44LiN4Lii4Li34LiZIOC4l+C4reC4h+C5geC4iOC5ieC4hw0KK+C4muC4uOC4jeC4ouC4t+C4mSDguKPguLHguIHguKnguYzguKrguLjguKPguKfguIfguKjguLINCivguJrguLjguI3guKLguLnguKMg4Lit4LmI4Lit4LiZ4Lit4Liz4LmE4LieDQor4Lia4Li44LiN4Lij4LmI4Lin4LihIOC4quC4uOC4p+C4o+C4o+C4k+C4iuC4suC4leC4tOC4geC4uOC4pQ0KK+C4muC4uOC4jeC4o+C4reC4lCDguYTguIrguKLguIrguJnguLANCivguJrguLjguI3guKPguK3guJQg4LmA4LiZ4LiV4Lij4LiX4Li04Lie4Lii4LmMDQor4Lia4Li44LiN4Lij4Lit4LiUIOC4oeC4teC5gOC4lOC4iuC4sg0KK+C4muC4uOC4jeC4o+C4reC4lCDguKrguLjguILguKrguLLguKPguLHguI0NCivguJrguLjguI3guKPguLHguIHguKnguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lib4Lij4Liw4Lig4Liy4Lie4LiB4Li44LilDQor4Lia4Li44LiN4Lij4Lix4LiV4LiZ4LmMIOC5gOC4iOC4o+C4tOC4jeC4nuC4suC4meC4tOC4ig0KK+C4muC4uOC4jeC4o+C4seC4leC4meC5jCDguKfguKPguKPguJPguIHguLTguIgNCivguJrguLjguI3guKPguLjguYjguIcg4Lie4Liy4LiZ4Li04LiK4Lin4Lix4LiS4LiZ4LmMDQor4Lia4Li44LiN4Lik4LiX4LiY4Li04LmMIOC4meC4uOC5ieC4ouC4guC4suC4pw0KK+C4muC4uOC4jeC4pOC4l+C4mOC4tOC5jCDguYDguK3guIHguKrguKHguKrguLjguIINCivguJrguLjguI3guKXguYnguK3guKEg4LiK4Liy4Lin4LiB4LiH4LiI4Lix4LiB4LijDQor4Lia4Li44LiN4Lil4LmJ4Lit4LihIOC4p+C4suC4k+C4tOC4iuC4ouC5jOC4geC4ueC4pQ0KK+C4muC4uOC4jeC4peC4suC4oCDguILguLLguKfguKrguK3guLLguJQNCivguJrguLjguI3guKXguLfguK0g4LmB4LiC4LmI4LiH4LiC4Lix4LiZ4LiU4Li1DQor4Lia4Li44LiN4Lil4Li34LitIOC5hOC4l+C4o+C5gOC4oeC4t+C4reC4hw0KK+C4muC4uOC4jeC4peC4t+C4rSDguKHguLXguKHguLLguIENCivguJrguLjguI3guKXguLfguK0g4LmB4Liq4LiH4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lia4Li44LiN4Lio4Lij4Li1IOC4geC4reC4muC4muC4uOC4jQ0KK+C4muC4uOC4jeC4qOC4o+C4tSDguYTguIrguKLguK7guKfguJTguKvguKXguYnguLMNCivguJrguLjguI3guKjguKPguLUg4Lia4Lix4LiT4LiR4Li44Lio4Li04Lil4Liy4Lit4Liy4Liq4LiZ4LmMDQor4Lia4Li44LiN4Lio4Lij4Li1IOC4oeC4suC4geC4o+C4reC4lA0KK+C4muC4uOC4jeC4qOC4o+C4tSDguKjguLjguILguIHguLLguKPguITguYnguLINCivguJrguLjguI3guKjguKPguLUg4Lir4Lil4Li14LiB4Lig4Lix4LiiDQor4Lia4Li44LiN4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4peC4tOC4qOC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4muC4uOC4jeC4qOC4tOC4o+C4tCDguKLguLHguIfguYDguJ/guLfguYjguK3guIfguKHguJnguJXguYwNCivguJrguLjguI3guKrguYjguIcg4LiB4Lin4Lii4Lij4Lix4LiB4Lip4LiyDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4guC4uOC4meC4q+C4meC4seC4h+C4quC4t+C4rQ0KK+C4muC4uOC4jeC4quC5iOC4hyDguIjguLHguJnguJfguKPguYzguInguLLguKLguJfguK3guIcNCivguJrguLjguI3guKrguYjguIcg4LiJ4Lix4LiZ4LiX4LmB4Lie4LiX4Lii4LmMDQor4Lia4Li44LiN4Liq4LmI4LiHIOC5hOC4iuC4ouC4quC4suC4oQ0KK+C4muC4uOC4jeC4quC5iOC4hyDguJXguLHguYnguIfguIrguLHguKLguKTguIHguKnguYwNCivguJrguLjguI3guKrguYjguIcg4LiX4Lit4LiH4LiI4Lix4LiZ4LiX4Lij4LmM4Lih4Li54LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4meC4seC4ouC4o+C4tOC4ouC4quC4seC4iA0KK+C4muC4uOC4jeC4quC5iOC4hyDguJrguLjguI3guK3guKLguLnguYjguITguIcNCivguJrguLjguI3guKrguYjguIcg4LmA4Lib4Li14LmI4Lii4Lih4Lie4Lil4Liy4LiiDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4nuC4suC4meC4tOC4iuC4geC4suC4ow0KK+C4muC4uOC4jeC4quC5iOC4hyDguKDguLnguYjguJ7guIfguKjguYzguYDguJ7guYfguIrguKMNCivguJrguLjguI3guKrguYjguIcg4LmD4Lii4Lie4Li54LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4peC4uOC4iOC4meC4suC4meC4meC4l+C5jA0KK+C4muC4uOC4jeC4quC5iOC4hyDguKfguLTguKfguLHguJLguJnguLDguIrguLHguKLguYHguKrguIcNCivguJrguLjguI3guKrguYjguIcg4Lio4Li44Lig4Lin4Lix4LiK4Lij4LmA4Liq4Lij4Li14LiB4Li44LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4quC4suC4o+C4sOC4oOC4sg0KK+C4muC4uOC4jeC4quC5iOC4hyDguYDguKrguKHguJfguLHguJ7guJ7guKPguLANCivguJrguLjguI3guKrguYjguIcg4LmA4Lir4Lil4LmI4Liy4LiZ4Lie4LmA4LiB4LmJ4Liy4Liq4LiB4Li44LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4reC4tOC4meC4l+C4o+C5jOC5gOC4q+C4ouC4teC5iOC4ouC4pw0KK+C4muC4uOC4jeC4quC4meC4tOC4lyDguKLguLLguKHguYTguKrguKINCivguJrguLjguI3guKrguKEg4LiE4Liz4LiZ4Lin4LiZ4Lin4Li44LiS4Li0DQor4Lia4Li44LiN4Liq4LihIOC4iuC4seC4ouC4quC4uOC4oOC4sg0KK+C4muC4uOC4jeC4quC4oSDguJfguK3guIfguJ7guLHguJnguJjguLjguYwNCivguJrguLjguI3guKrguKEg4Lia4Li44LiN4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lia4Li44LiN4Liq4LihIOC5guC4nuC4mOC4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4muC4uOC4jeC4quC4oSDguKXguLLguKLguKvguKLguIENCivguJrguLjguI3guKrguKEg4Liq4Lin4LiZ4LiB4Li44Lir4Lil4Liy4LiaDQor4Lia4Li44LiN4Liq4LihIOC5geC4quC4h+C5gOC4o+C4t+C4reC4hw0KK+C4muC4uOC4jeC4quC4oSDguK7guLTguKHguKrguLjguYjguJkNCivguJrguLjguI3guKrguLHguJnguJXguLTguYwg4LiJ4Lix4LiZ4LiX4LiB4Li04LiI4LmC4LiB4Lio4LilDQor4Lia4Li44LiN4Liq4Li04LiZIOC4quC4muC4suC4ouC4leC4seC4pw0KK+C4muC4uOC4jeC4quC4t+C4miDguJfguK3guIfguJnguLLguIENCivguJrguLjguI3guKrguLfguJog4Lio4Liy4LiV4Lin4Lij4Lij4LiTDQor4Lia4Li44LiN4Liq4Li44Lig4LiyIOC4geC4peC4tOC5iOC4meC4oeC4suC4peC4seC4og0KK+C4muC4uOC4jeC4q+C4peC5iOC4rSDguKLguLTguYnguKHguKXguLDguKHguLHguKINCivguJrguLjguI3guK3guLPguYTguJ4g4LiB4Li44Lil4Liq4Li04Lij4Li04Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lia4Li44LiN4LmA4LiB4Li04LiUIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4muC4uOC4jeC5gOC4geC4tOC4lCDguKPguLHguJXguJnguJvguKPguLDguKDguLLguKDguLLguKgNCivguJrguLjguI3guYDguIHguLTguJQg4Lit4Li34Lit4LiZ4Lit4LiBDQor4Lia4Li44LiN4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4p+C4o+C4h+C4hOC5jOC5guC4reC4rOC4suC4ow0KK+C4muC4uOC4jeC5gOC4geC4t+C5ieC4rSDguJfguYjguLLguJnguLHguJfguJjguLUNCivguJrguLjguI3guYDguIjguKPguLTguI0g4LmE4LiB4Lij4LiB4Lih4LilDQor4Lia4Li44LiN4LmA4LiI4Li34LitIOC4o+C4seC4leC4meC4quC4oeC4muC4seC4leC4tA0KK+C4muC4uOC4jeC5gOC4iuC4tOC4lCDguITguLHguJnguJjguKPguLHguIHguKnguYwNCivguJrguLjguI3guYDguIrguLTguJQg4LmA4Lil4Li04Lio4LiZ4Li04Lih4Li04LiV4LijDQor4Lia4Li44LiN4LmA4LiV4LmH4LihIOC4iOC4seC4meC4l+C4o+C5gOC4geC4leC4uA0KK+C4muC4uOC4jeC5gOC4leC4t+C4reC4mSDguJzguYjguK3guIfguK3guLPguYTguJ4NCivguJrguLjguI3guYDguJfguLXguKLguJkg4LmB4Lie4Lij4LiZ4LiZ4LiX4LmMDQor4Lia4Li44LiN4LmA4LiX4Li14Lii4LihIOC4reC4suC5gOC4nuC4pQ0KK+C4muC4uOC4jeC5gOC4meC4t+C5iOC4reC4hyDguYLguKXguIjguLDguKLguLANCivguJrguLjguI3guYDguJ7guYfguI0g4Lie4Li44LiX4LiY4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lia4Li44LiN4LmA4Lii4LmH4LiZIOC4muC4uOC4jeC5gOC4o+C4t+C4reC4h+C4reC4meC4seC4meC4leC5jA0KK+C4muC4uOC4jeC5gOC4ouC4teC5iOC4ouC4oSDguK3guLTguJnguJfguKPguYTguJ7guJrguLnguKXguKLguYwNCivguJrguLjguI3guYDguKPguLXguKLguKEg4LiB4LmJ4Liy4LiZ4LiC4Liy4LinDQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiHIOC4lOC4p+C4meC4lOC5iOC4p+C4mQ0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4hyDguKHguLTguIvguLLguIHguLANCivguJrguLjguI3guYDguKPguLfguK3guIcg4LmA4Lir4Lil4Li34Lit4LiH4Lit4Lij4Li44LiTDQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiZIOC4iOC4seC4meC4l+C4o+C5jOC4muC4s+C4o+C4uOC4hw0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4mSDguJfguKfguLXguIHguLLguI3guIjguJnguYwNCivguJrguLjguI3guYDguKPguLfguK3guJkg4Lie4Lil4Lit4Lii4LiK4Li5DQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiZIOC4p+C4h+C4qeC4sg0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4mSDguYDguKvguKHguLDguJvguLHguJfguKHguLANCivguJrguLjguI3guYDguKXguLTguKgg4LiB4Li04LmI4LiH4LiE4LizDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4hOC4suC4o+C4p+C4sOC4geC4uOC4pQ0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYDguIjguKPguLTguI3guKrguLjguIINCivguJrguLjguI3guYDguKXguLTguKgg4LmA4LiT4Lij4LmB4LiB4LmJ4LinDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4l+C4sOC4m+C4sOC4quC4ng0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguJrguLHguJPguJHguLTguJXguKfguIfguKjguYzguKPguLHguJXguJnguYwNCivguJrguLjguI3guYDguKXguLTguKgg4LmA4Lib4Li14LmI4Lii4Lih4Lib4Li04LmI4LiZ4LmA4Lio4LipDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC5guC4nuC4mOC4tOC5jOC4reC5iOC4reC4hw0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYLguKLguJfguLINCivguJrguLjguI3guYDguKXguLTguKgg4LmA4Lil4Li04Lio4Liq4LiB4Li44Lil4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4qOC4o+C4teC4quC4uOC4p+C4o+C4o+C4kw0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguKrguLjguILguJfguK3guIcNCivguJrguLjguI3guYDguKXguLTguKgg4LmA4Lir4Lih4LmH4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC5gOC4reC4geC4sOC4p+C4h+C4qeC5jA0KK+C4muC4uOC4jeC5gOC4peC4teC5ieC4ouC4hyDguYHguJvguYnguJnguK3guLTguJkNCivguJrguLjguI3guYDguKXguLfguYjguK3guJkg4Lio4Lij4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lia4Li44LiN4LmA4Liq4Lij4Li04LihIOC5guC4huC4qeC4sOC4mOC4o+C4o+C4oeC4geC4ueC4pQ0KK+C4muC4uOC4jeC5gOC4quC4o+C4tOC4oSDguYDguJnguJXguKPguYDguIHguYjguIcNCivguJrguLjguI3guYDguKrguKPguLTguKEg4Lil4LiU4Liy4Liq4Li44LiZ4LiX4LijDQor4Lia4Li44LiN4LmA4Liq4Lij4Li04LihIOC5geC4quC4h+C5geC4geC5ieC4pw0KK+C4muC4uOC4jeC5gOC4q+C4peC4t+C4rSDguJTguYnguKfguIfguJfguK3guIcNCivguJrguLjguI3guYDguKvguKXguLfguK0g4Liq4Li04LiZ4LmA4LiV4LmH4LihDQor4Lia4Li44LiN4LmA4Lit4Li34LmJ4LitIOC4leC4seC4meC4ouC4sOC4geC4uOC4pQ0KK+C4muC4uOC4jeC5geC4ouC5ieC4oSDguYDguIHguLTguJTguJnguYnguK3guKINCivguJrguLjguI3guYLguIrguJXguLQg4LiX4Li04Lie4Lii4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li04LiZDQor4Lia4Li44LiN4LmC4Liu4LihIOC4ieC4suC4ouC4m+C4o+C4sOC4lOC4seC4mg0KK+C4muC4uOC4jeC5hOC4l+C4oiDguYHguIHguKHguKfguJPguLTguIrguIHguLjguKUNCivguJrguLjguJPguJjguKPguKPguKEg4Lie4Liy4LiZ4Lij4Lix4LiB4Lip4LmMDQor4Lia4Li44LiT4Lij4Lit4LiUIOC4qOC4o+C4teC5geC4nuC5iOC4hw0KK+C4muC4uOC4meC4meC4suC4hCDguJ7guLjguJfguJ7guIfguKnguYwNCivguJrguLjguYnguJnguKvguIfguLUg4LmB4LiL4LmI4LiU4LmI4Liy4LiZDQor4Lia4Li44Lia4Lic4LiyIOC4geC4uOC4peC5gOC4quC4p+C4lQ0KK+C4muC4uOC4muC4nOC4siDguYDguIvguLXguYnguKLguYDguIjguKPguLTguI0NCivguJrguLjguJrguJzguLIg4Lia4Li44LiN4LiZ4Li04LiY4Li04Lin4Lix4LiS4LiZ4LiyDQor4Lia4Li44Lia4Lic4LiyIOC5gOC4nuC5h+C4iuC4o+C4m+C4o+C4sOC5hOC4ng0KK+C4muC4uOC4muC4nOC4siDguKfguIfguKjguYzguYHguKrguJnguKrguLjguIINCivguJrguLjguJrguJzguLIg4LmB4Liq4LiH4Lie4Li44LmI4LihDQor4Lia4Li44Lib4Lic4LiyIOC4geC5ieC4suC4meC4guC4suC4pw0KK+C4muC4uOC4m+C4nOC4siDguJXguLLguKzguKfguLHguJLguJnguYwNCivguJrguLjguJvguJzguLIg4Lie4Liy4LiZ4Li04LiK4LiB4Li54LilDQor4Lia4Li44Lib4Lic4LiyIOC4qOC4o+C4teC4q+C4sOC4o+C4seC4jQ0KK+C4muC4uOC4nOC4siDguJ7guLHguJnguJjguYzguKjguKPguLUNCivguJrguLjguKPguLTguJnguJfguKPguYwg4LiZ4Lit4LiC4Li44LiZ4LiX4LiUDQor4Lia4Li44Lij4Li1IOC4iuC4seC4ouC4geC4tOC4iOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4muC4uOC4peC5gOC4lOC4iiDguKfguLTguJrguLnguKXguJzguKUNCivguJrguLjguKjguKPguLIg4LiY4Liy4Lij4Liy4LiK4Li14Lin4Li04LiZDQor4Lia4Li44Lio4Lij4LiyIOC4reC4o+C4uOC4k+C4hOC4uOC4k+C4suC4o+C4seC4geC4qeC5jA0KK+C4muC4uOC4qOC4o+C4tOC4meC4l+C4o+C5jCDguYTguJXguKPguKfguKPguYDguJTguIrguLINCivguJrguLjguKnguIHguKMg4LiB4Lij4Lij4Lih4Liy4Lij4Liy4LiH4LiB4Li54LijDQor4Lia4Li44Lip4LiB4LijIOC4m+C4o+C4sOC4geC4suC4qOC5gOC4geC4leC4uOC4geC4suC4ow0KK+C4muC4uOC4qeC4geC4oyDguKrguLHguJnguJXguLTguKfguIfguITguYwNCivguJrguLjguKnguJrguIcg4LiI4Lix4LiZ4LiX4Lij4LiB4Li54LilDQor4Lia4Li44Lip4Lia4LiH4LiB4LmMIOC4lOC4tOC4qeC4kOC4iOC4s+C5gOC4meC4teC4ouC4ow0KK+C4muC4uOC4qeC4muC4siDguIrguLHguKLguIjguLTguJnguJTguLINCivguJrguLjguKnguJrguLIg4LmA4LiZ4Li34Lit4LiH4LiZ4Li44LiKDQor4Lia4Li44Lip4Lia4LiyIOC5gOC4oeC4iuC4tOC4o+C4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4muC4uOC4qeC4muC4siDguKrguIfguKfguJnguKLguKgNCivguJrguLjguKnguJrguLLguJ7guKPguKPguJMg4Lit4Li44LiU4Lih4Lin4Lix4LiS4LiZ4LmM4LiX4Lin4Li1DQor4Lia4Li44Lip4Lii4LiyIOC4m+C4o+C4sOC4oOC4suC4ouC4meC4leC5jA0KK+C4muC4uOC4qeC4o+C4siDguIrguLnguYHguIHguYnguKcNCivguJrguLjguKnguKPguLLguKDguKPguJPguYwg4LiB4Li04LiI4Liq4Lih4Li44LiX4LijDQor4Lia4Li44Lir4LiH4Lix4LiZIOC5gOC4iOC4teC4ouC5gOC4nuC4tOC5iOC4oeC4nuC4ueC4pQ0KK+C4muC4uOC4q+C4h+C4siDguKXguLLguKLguJvguKPguLDguJTguLTguKnguJANCivguJrguLjguKvguKXguLHguJkg4Lin4Lij4Lij4Lix4LiV4LiZ4Lin4LiH4Lio4LmMDQor4Lia4Li54Lij4LiT4Liw4Lio4Li04Lil4Lib4LmMIOC4muC4uOC4jeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4muC4ueC5iCDguK3guLjguJTguKHguKjguKPguLXguKrguLPguKPguLLguI0NCivguYDguJrguI3guIjguJ7guKMg4LiU4Liy4Lin4Lit4Li44LiU4LihDQor4LmA4Lia4LiN4LiI4Lie4LijIOC4quC4uOC4guC4quC4seC4h+C4p+C4suC4peC4ouC5jA0KK+C5gOC4muC4jeC4iOC4oeC4siDguIHguYnguK3guJnguJfguK3guIcNCivguYDguJrguI3guIjguKHguLLguKgg4LiE4Li44LiT4Liy4LiK4Li14Lin4LiwDQor4LmA4Lia4LiN4LiI4Lih4Liy4LioIOC4l+C4reC4h+C4l+C4tOC4nuC4ouC5jA0KK+C5gOC4muC4jeC4iOC4oeC4suC4qCDguYDguJ7guKXguLTguJnguJvguKPguLDguKDguLLguJ7guKMNCivguYDguJrguI3guIjguKHguLLguKgg4Lio4Lij4Li14Lia4Li44LiN4LmA4Lij4Li34Lit4LiHDQor4LmA4Lia4LiN4LiI4Lih4Liy4LioIOC5gOC4reC4t+C5ieC4reC4geC4suC4jeC4iOC4meC4p+C4tOC5hOC4pQ0KK+C5gOC4muC4jeC4iOC4o+C4seC4leC4meC5jCDguKrguLTguIfguKvguYzguKrguKHguJrguLjguI0NCivguYDguJrguI3guIjguKfguKPguKPguJMg4LiE4Li44LiT4LiT4Liw4Lij4Lix4LiB4Lip4LmM4LmE4LiX4LiiDQor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5gOC4ruC4hw0KK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4kyDguJrguLjguI3guKfguLHguJLguJnguYwNCivguYDguJrguI3guIjguKfguKPguKPguJMg4Lij4Lix4LiB4LiX4LmJ4Lin4LihDQor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiTIOC5gOC4qOC4o+C4qeC4kOC4muC4uOC4leC4ow0KK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4kyDguK3guLLguKPguLUNCivguYDguJrguI3guIjguLIg4LmB4LiB4LmJ4Lin4Lil4LmJ4Lin4LiZDQor4LmA4Lia4LiN4LiI4LiyIOC4p+C4h+C4qOC5jOC4iuC4tOC4meC4iuC4seC4og0KK+C5gOC4muC4jeC4iOC4suC4o+C4seC4leC4meC5jCDguK3guLTguIfguITguYDguKfguJfguKLguYwNCivguYDguJrguLTguIHguJ/guYnguLIg4LmA4LiB4LiV4Li44LiZ4Li44LiV4Li0DQor4LmA4Lia4LmH4LiN4LiI4Lie4LijIOC4quC4meC4mOC4tOC4quC4oeC4muC4seC4leC4tA0KK+C5gOC4muC5h+C4jeC4iOC4oeC4suC4qCDguYDguKvguKHguKvguIfguKnguYzguJfguK3guIcNCivguYDguJrguYfguI3guIjguKfguKPguKPguJMg4Lia4Lix4Lin4LiX4Lit4LiHDQor4LmA4Lia4LmH4LiN4LiI4LiwIOC4muC4uOC4jeC4qOC4tOC4o+C4tOC4ouC4suC4meC4meC4l+C5jOC4iuC4seC4og0KK+C5gOC4muC5h+C4jeC4iOC4siDguKrguLTguIfguKvguYDguJnguJXguKMNCivguYHguJrguKPguJnguJTguYzguKXguLUg4LmA4Lit4LiKDQor4LmD4LiaIOC4hOC4h+C4guC4uOC4meC4l+C4lA0KK+C4m+C4geC4iOC4tOC4leC4leC5jCDguJvguKPguLDguKHguLLguI0NCivguJvguIHguKPguJPguYwg4LmA4LiI4Li14Lii4Lij4Liq4Li44LiVDQor4Lib4LiB4Lij4LiT4LmMIOC4muC4uOC4jeC4quC4tOC4meC4quC4uOC4gg0KK+C4m+C4geC4o+C4k+C5jCDguKfguIfguKjguYzguKfguLTguJfguKLguLLguKDguLTguKPguKHguKLguYwNCivguJvguIHguKPguJPguYwg4Lit4Li04LiZ4LiX4Lij4Liy4Lin4Li44LiYDQor4Lib4LiK4LiyIOC4leC4teC4o+C4sOC4o+C4seC4leC4meC5jA0KK+C4m+C4j+C4tOC4meC4uOC4iiDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUNCivguJvguI/guLTguKHguLIg4LiB4Liy4LiN4LiI4LiZ4Lih4Lix4LiiDQor4Lib4LiQ4LihIOC4hOC4peC5ieC4suC4ouC4quC4uOC4l+C4mOC4tA0KK+C4m+C4kOC4oSDguK3guLHguIHguKnguKPguKjguKPguLUNCivguJvguJDguKHguKPguLHguJXguJnguYwg4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmM4LmA4Lil4LiC4LiyDQor4Lib4LiT4Lix4Lip4LiQ4LmMIOC4lOC4p+C4h+C4reC4uOC4lOC4oQ0KK+C4m+C4k+C4tOC4mOC4suC4mSDguKPguKfguKHguKfguLTguI3guI3guLnguIrguLHguKINCivguJvguJfguLXguJsg4LmE4Lih4LmJ4LiH4Liy4LihDQor4Lib4LiX4Li44LihIOC5gOC4m+C4teC5ieC4ouC4p+C4meC4tOC5iOC4oQ0KK+C4m+C4l+C4uOC4oSDguKvguLLguI3guIHguLTguJXguJXguLTguKrguIHguLjguKUNCivguJvguJfguLjguKHguJ7guKMg4Lit4Lih4Lij4LiI4Li04Lij4Lie4LijDQor4Lib4LiX4Li44Lih4Lij4Lix4LiV4LiZ4LmMIOC4p+C4tOC4p+C4seC4kuC4meC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4m+C4meC4seC4lOC4lOC4siDguYHguIHguYnguKfguKjguKPguLUNCivguJvguJnguLHguJTguJTguLIg4LiZ4Liy4Lih4LiT4Li1DQor4Lib4LiZ4Lix4LiU4LiU4LiyIOC4p+C4suC4o+C4tOC4mOC4ow0KK+C4m+C4meC4seC4quC4ouC4siDguJ7guK3guJnguYDguIjguKPguLTguI0NCivguJvguKDguLHguKrguKrguKMg4LmC4LiE4Lia4Liy4Lii4Liy4LiK4Li0DQor4Lib4Lij4LiHIOC5gOC4o+C4t+C4reC4h+C4iOC4uOC5ieC4og0KK+C4m+C4o+C4p+C4tOC4iuC4ouC5jCDguYLguK3guKDguLLguKoNCivguJvguKPguLDguIHguK3guJog4LiB4Lik4Lip4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4iOC4seC4meC4l+C4o+C5jOC4leC4o+C4tQ0KK+C4m+C4o+C4sOC4geC4reC4miDguJTguK3guIHguYHguIHguYnguKcNCivguJvguKPguLDguIHguK3guJog4LiZ4Liy4Lih4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4nuC4p+C4h+C4l+C4reC4h+C4l+C4tOC4nuC4ouC5jA0KK+C4m+C4o+C4sOC4geC4reC4miDguKPguLHguJXguJnguKrguKfguLHguKrguJTguLTguYwNCivguJvguKPguLDguIHguK3guJog4Lio4Li04Lij4Li04LmC4LiK4LiV4LiwDQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4reC4meC4seC4meC4leC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4geC4suC4oiDguIjguLjguKzguKfguJnguLTguIoNCivguJvguKPguLDguIHguLLguKLguKPguLHguJXguJnguYwg4LiV4Lix4LiZ4LiY4Li14Lij4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LiB4Liy4LijIOC4meC4uOC4iuC4muC4uOC4qeC4muC4sg0KK+C4m+C4o+C4sOC4geC4suC4qiDguIHguLHguJPguJDguLHguKjguYHguIHguYnguKcNCivguJvguKPguLDguIHguLTguIgg4LiV4Lij4Li14LiB4Li04LiV4LiV4Li04LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liw4LiB4Li04LiIIOC4ouC4reC4lOC4ouC4o+C4o+C4ouC4hw0KK+C4m+C4o+C4sOC4geC4tOC4iCDguK3guLTguIfguKDguLLguJnguLjguKfguIfguKjguYwNCivguJvguKPguLDguIHguLTguJUg4LiY4LiZ4Liy4LmA4LiI4Lij4Li04LiN4Lig4Li04Lij4Lih4Lii4LmMDQor4Lib4Lij4Liw4LiB4Li04LiVIOC4p+C4tOC4qOC4p+C4geC4o+C4p+C4tOC4qOC4tOC4qeC4j+C5jA0KK+C4m+C4o+C4sOC4hOC4o+C4reC4hyDguYLguIrguITguYLguKrguJQNCivguJvguKPguLDguITguK3guIcg4LmA4LiI4LmH4LiH4LiZ4LmJ4Lit4LiiDQor4Lib4Lij4Liw4LiE4Lit4LiHIOC4meC4tOC4peC4ieC4suC4og0KK+C4m+C4o+C4sOC4hOC4reC4hyDguJ7guLHguKfguJ7guIfguKnguYzguJfguK3guIcNCivguJvguKPguLDguITguK3guIcg4LmC4Lij4LiI4LiZ4LmM4Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liw4LiE4Lit4LiHIOC4quC4uOC4guC4nuC4uOC5iOC4oQ0KK+C4m+C4o+C4sOC4hOC4reC4h+C4qOC4o+C4tSDguYDguIjguKPguLTguI3guKXguLLguKANCivguJvguKPguLDguIjguIcg4Liq4Li04LiX4LiY4Li04Lin4LiT4Li04LiKDQor4Lib4Lij4Liw4LiI4LiaIOC4p+C4h+C4qeC5jOC4meC4tOC5iOC4oQ0KK+C4m+C4o+C4sOC4iOC4p+C4miDguYHguIHguYjguJnguIjguLHguJnguJfguJnguYwNCivguJvguKPguLDguIjguKfguJog4LiI4Lix4LiZ4LiX4Lij4LiyDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4m+C4o+C4sOC4iOC4p+C4miDguYDguJfguLXguYjguKLguIfguJrguLjguI0NCivguJvguKPguLDguIjguKfguJog4Lia4Li44LiN4LmA4Lit4Li14LmI4Lii4LihDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC4nuC4seC4iuC4meC4teC4o+C4seC4leC4meC4geC4o+C4k+C5jA0KK+C4m+C4o+C4sOC4iOC4p+C4miDguKHguLXguKfguLHguJnguJTguLUNCivguJvguKPguLDguIjguKfguJog4LmA4Lil4Li14LmJ4Lii4LiH4LmA4LiB4Li04LiUDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC4quC4oeC4iOC4tOC4leC4o+C5jA0KK+C4m+C4o+C4sOC4iOC4p+C4miDguYHguKrguIfguYDguKrguKfguJUNCivguJvguKPguLDguIjguKfguJog4Lit4Li44Lij4Li44LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4LiI4Lix4LiB4Lij4LmMIOC4reC5iOC4s+C4quC4uOC4gg0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jCDguYDguIjguKPguLTguI3guJ7guLHguJLguJnguLLguJnguJnguJfguYwNCivguJvguKPguLDguIjguLHguIHguKnguYwg4LiY4Liy4Lij4Liy4LiJ4Lix4LiV4LijDQor4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmMIOC4nuC4seC4h+C4nuC4suC4meC4meC4suC4hA0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jCDguKfguLHguJLguJnguYDguJTguIrguLLguIrguLLguI0NCivguJvguKPguLDguIjguLHguIHguKnguYwg4LmC4Liq4LiY4Lij4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiI4LizIOC4p+C4tOC5gOC4qOC4qeC4quC4oeC4tOC4lQ0KK+C4m+C4o+C4sOC4iOC4tOC4leC4oyDguKvguLLguKHguJnguJXguKPguLUNCivguJvguKPguLDguIrguI0g4Lih4Li14LiK4Li54Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiK4LiyIOC4geC4tOC4iOC4o+C4seC4leC4meC4geC4suC4jeC4iOC4meC5jA0KK+C4m+C4o+C4sOC4iuC4siDguIrguLfguYjguJnguYHguILguIENCivguJvguKPguLDguIrguLIg4LmA4LiX4Lio4LiX4Liz4LiZ4Li4DQor4Lib4Lij4Liw4LiK4LiyIOC4m+C5iOC4suC4h+C4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4iuC4siDguKLguLTguYnguKHguJ7guKPguJ7guLTguJ7guLHguJLguJnguYzguJzguKUNCivguJvguKPguLDguIrguLIg4Lio4Lij4Li14Lio4Lio4Li04Lin4Li04Lih4LilDQor4Lib4Lij4Liw4LiK4LiyIOC4reC4h+C4qOC5jOC5gOC4iOC4o+C4tOC4jeC4p+C4uOC4kuC4tA0KK+C4m+C4o+C4sOC4iuC4suC4p+C4uOC4kuC4tCDguYLguKrguKfguKPguKfguLjguJLguLTguJnguLHguJnguJfguYwNCivguJvguKPguLDguIrguLTguJUg4LiY4Li14Lij4Lio4Liy4Liq4LiV4Lij4LmMDQor4Lib4Lij4Liw4LiK4Li14LieIOC4iuC4ueC4nuC4seC4meC4mOC5jA0KK+C4m+C4o+C4sOC4iuC4uOC4oSDguIrguKfguKXguLTguJUNCivguJvguKPguLDguIrguLjguKEg4Lia4Lix4Lin4LmA4LiC4Li14Lii4LinDQor4Lib4Lij4Liw4LiK4Li44LihIOC4oeC4uOC4geC4lOC4suC4geC4o+C4o+C4k+C5jA0KK+C4m+C4o+C4sOC4iuC4uOC4oSDguKrguKfguLHguKrguJTguLTguKfguIfguKjguYwNCivguJvguKPguLDguIrguLjguKEg4LmA4Lit4Li14LmI4Lii4Lih4Lil4Liw4Lit4LitDQor4Lib4Lij4Liw4LiT4LiVIOC4muC4uOC4meC4meC4suC4hA0KK+C4m+C4o+C4sOC4k+C4teC4lSDguIjguLTguJXguJXguLTguJnguLHguJnguJfguJnguYwNCivguJvguKPguLDguJTguLHguJog4LiI4Li04LiV4LiV4Li04Lih4Liy4Lie4LijDQor4Lib4Lij4Liw4LiU4Lix4LiaIOC4nuC4uOC5iOC4oeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4m+C4o+C4sOC4lOC4seC4miDguYLguKrguKDguJPguIHguLTguJXguKLguLLguKDguKPguJPguYwNCivguJvguKPguLDguJTguLTguKnguJAg4LiI4Lix4LiZ4LiX4Lij4LiyDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQIOC5gOC4peC4tOC4qOC4p+C4tOC4iuC4sg0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguIHguKXguLTguYjguJnguKvguK3guKHguKPguLfguYjguJkNCivguJvguKPguLDguJTguLTguKnguJDguYwg4LiI4LiH4Liq4Li34Lia4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4iuC4ueC4nuC4tuC5iOC4h+C4reC4suC4leC4oeC5jA0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguJfguK3guIfguJ7guKrguLTguJDguKrguKHguJrguLHguJXguLQNCivguJvguKPguLDguJTguLTguKnguJDguYwg4Lia4Li44LiN4Lih4Liy4LiBDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4nuC4o+C4o+C4k+C4suC5guC4qg0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguKHguKvguJ7guLHguJnguJjguYwNCivguJvguKPguLDguJTguLTguKnguJDguYwg4Lil4Li04Lih4Lib4Li04Lij4Liy4Lip4LiO4Lij4LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC5gOC4p+C4quC4suC4o+C4seC4iuC4iuC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguKrguLHguIfguILguYzguKrguKfguYjguLLguIcNCivguJvguKPguLDguJTguLTguKnguJDguYwg4LmB4Liq4Lin4LiH4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC5gOC4reC4geC4reC4uOC5iOC4mQ0KK+C4m+C4o+C4sOC4luC4oSDguK3guLTguYjguKHguKrguKfguYjguLLguIcNCivguJvguKPguLDguJfguKfguJkg4LiZ4Liy4LiE4Lie4Lil4Lix4LiHDQor4Lib4Lij4Liw4LiX4Lin4LiZIOC4reC4o+C4o+C4luC5guC4geC4p+C4tOC4lw0KK+C4m+C4o+C4sOC4l+C4suC4mSDguJnguLHguJnguJfguJvguKPguLDguYTguJ4NCivguJvguKPguLDguJfguLTguJkg4LiI4Liz4Lib4Liy4LmA4LiH4Li04LiZDQor4Lib4Lij4Liw4LiX4Li04LiZIOC5gOC4muC4jeC4iOC4nuC4pQ0KK+C4m+C4o+C4sOC4l+C4tOC4mSDguKjguIfguKrguJnguLHguJnguJfguJnguYwNCivguJvguKPguLDguJfguLTguJnguJfguLTguJ7guKLguYwg4Lia4Lix4Lin4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC5gOC4geC4tOC4lOC4nOC4pQ0KK+C4m+C4o+C4sOC4l+C4teC4myDguIjguIfguKHguLXguYDguKrguKPguYfguIgNCivguJvguKPguLDguJfguLXguJsg4LiK4Lix4Lii4LmA4LiJ4Lil4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC5gOC4leC4iuC4sOC4m+C4o+C4sOC4oOC4suC4p+C4geC4uOC4pQ0KK+C4m+C4o+C4sOC4l+C4teC4myDguJnguKPguKHguLHguYjguIcNCivguJvguKPguLDguJfguLXguJsg4Lib4Lij4Liw4LmE4Lie4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC4nuC4uOC4kuC4tOC4quC4geC4uOC4peC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4l+C4teC4myDguKLguLTguYnguKHguKrguLLguKPguLANCivguJvguKPguLDguJfguLXguJsg4Lin4LiH4Lio4LmM4LmA4Lil4Li04LioDQor4Lib4Lij4Liw4LiX4Li14LibIOC4quC4meC5g+C4iOC4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4m+C4o+C4sOC4l+C4teC4myDguYDguKrguLXguKLguIfguKvguKfguLLguJkNCivguJvguKPguLDguJfguLXguJsg4Lit4Li44LiU4Lih4Lic4LilDQor4Lib4Lij4Liw4LiX4Li44LihIOC4guC4p+C4seC4jeC4oeC4sg0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguYDguIjguKPguLTguI3guIrguK3guJoNCivguJvguKPguLDguJfguLjguKEg4LiU4Li14LmC4Lij4LiI4LiZ4LmM4Lin4LiH4LiE4LmMDQor4Lib4Lij4Liw4LiX4Li44LihIOC4meC4uOC4iuC4meC4p+C4pQ0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguJ7guKPguKvguKHguKrguJnguJjguLTguYwNCivguJvguKPguLDguJfguLjguKEg4Lii4Li44Lin4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4LiX4Li44LihIOC5gOC4p+C4k+C4uOC4meC4seC4meC4l+C4meC5jA0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguKrguLjguILguKHguLINCivguJvguKPguLDguJfguLjguKEg4Lit4Lin4Lii4Lio4Li04Lij4Li0DQor4Lib4Lij4Liw4LiX4Li44Lih4Lie4Li04LiZIOC4oeC4uOC4leC5gOC4h+C4tOC4mQ0KK+C4m+C4o+C4sOC4mOC4suC4mSDguIrguLjguJPguKvguLDguKrguLHguJnguJXguYwNCivguJvguKPguLDguJjguLLguJkg4LmA4Lin4LiK4LiK4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4geC5ieC4reC4h+C4quC4oeC4uOC4l+C4ow0KK+C4m+C4o+C4sOC4meC4reC4oSDguYLguITguKjguLTguKXguLINCivguJvguKPguLDguJnguK3guKEg4LiK4LiZ4Liw4Lig4Lix4LiiDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4leC4o+C4teC4p+C4tOC4iOC4tOC4leC4o+C4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4m+C4o+C4sOC4meC4reC4oSDguJjguIfguKrguKfguLHguKrguJTguLTguYwNCivguJvguKPguLDguJnguK3guKEg4Lia4Li44LiN4Lih4Liy4LmA4Lil4Li04LioDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4nuC4h+C4qeC5jOC4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4meC4reC4oSDguYLguJ7guJjguLTguKLguLLguJnguJnguJfguYwNCivguJvguKPguLDguJnguK3guKEg4Lii4Li04LmJ4Lih4LiH4Liy4LihDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4p+C4h+C4qOC4suC4mOC4tOC4iuC4seC4ouC4quC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4meC4reC4oSDguKrguJbguLTguKPguKrguKHguJrguLHguJXguLQNCivguJvguKPguLDguJnguK3guKEg4Liq4Li44Lin4Lij4Lij4LiT4LmA4LiE4Lij4Li34LitDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4reC4seC4h+C4hOC5gOC4quC4luC4teC4ouC4ow0KK+C4m+C4o+C4sOC4nuC4h+C4qOC5jCDguKfguLHguJLguJnguKrguLjguIINCivguJvguKPguLDguJ7guIjguJnguYwg4Lih4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lij4Liw4Lie4LiZ4LiY4LmMIOC5gOC4geC4qeC4o+C4suC4h+C4geC4ueC4pQ0KK+C4m+C4o+C4sOC4nuC4meC4mOC5jCDguJnguJ7guKrguLTguJfguJjguLTguKjguLjguKDguJ7guIfguKnguYwNCivguJvguKPguLDguJ7guJnguJjguYwg4Lin4Lix4LiU4Lih4LiT4Li1DQor4Lib4Lij4Liw4Lie4LijIOC4ouC4seC4h+C4m+C4o+C4sOC4lOC4tOC4qeC4kA0KK+C4m+C4o+C4sOC4nuC4pOC4l+C4mOC4tOC5jCDguKjguLjguKDguJ7guLHguJLguJnguKfguKPguIHguLjguKUNCivguJvguKPguLDguJ7guLHguJLguJnguYzguJ7guIfguKnguYwg4Lia4Liz4LmA4Lie4LmH4LiN4Liq4Li04LiX4LiY4Li04LmMDQor4Lib4Lij4Liw4Lie4Lix4LiS4LiZ4LmMIOC4mOC4meC4sOC4mOC4meC4tOC4lQ0KK+C4m+C4o+C4sOC4nuC4seC4kuC4meC5jCDguKXguLTguKHguJvguYzguJjguLXguKPguLDguIHguLjguKUNCivguJvguKPguLDguJ7guLHguJLguJnguYwg4Lit4Li44LiU4Lih4LmC4Lig4LiK4LiZ4LmMDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4Li44LmMIOC4guC4seC4meC4mOC5guC4quC4oOC4sg0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguITguKXguYnguLLguKLguKrguLjguJrguKPguKPguJMNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4LiJ4Lix4LiV4Lij4LiY4LiZ4Liy4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC5gOC4lOC5guC4iuC4mOC4o+C4o+C4oeC4quC4luC4tOC4lQ0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguJjguLLguJnguLXguITguLMNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lib4Lij4Liw4Lig4Liy4Lie4Li04LiX4Lii4Liy4LiB4LijDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4nuC4tOC4nuC4seC4kuC4meC5jOC4reC4meC4seC4meC4leC5jA0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguKLguLjguIrguLHguKINCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lin4LiH4Lio4LmM4LmB4Liq4LiH4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4qOC4tOC4o+C4tOC5guC4iuC4leC4tOC4o+C4uOC5iOC4h+C4guC4iOC4ow0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguKrguLjguKfguKPguKPguJPguYwNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lit4Lix4LiN4LiN4Lih4LiT4Li1DQor4Lib4Lij4Liw4Lie4Liy4LioIOC4qOC4geC4uOC4meC4leC4meC4suC4hA0KK+C4m+C4o+C4sOC4nuC4suC4rCDguYHguKrguJnguKrguLjguIINCivguJvguKPguLDguJ7guLTguJfguKLguYwg4LmE4LiK4Lii4Lit4Li44LiX4Li04LiV4Lii4LmM4LiB4Li44LilDQor4Lib4Lij4Liw4Lie4Li04Lih4Lie4LmMIOC4nuC4uOC4l+C4mOC4tOC4o+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4nuC4tOC4qCDguJrguLjguI3guKPguLjguYjguIcNCivguJvguKPguLDguJ7guLTguKgg4LmB4Liq4LiH4Lit4Liy4LiX4Li04LiV4Lii4LmMDQor4Lib4Lij4Liw4Lie4Li14Lij4LmMIOC4reC4tOC4j+C4kOC4geC4o+C4nuC4seC4meC4mOC5jA0KK+C4m+C4o+C4sOC4oOC4seC4qOC4oyDguYTguIrguKLguYDguKjguKPguKnguJANCivguJvguKPguLDguKDguLHguKrguKPguYwg4Lie4Li04Lio4Li04Lip4LiQ4LiB4Liy4LijDQor4Lib4Lij4Liw4Lig4Lix4Liq4Liq4LijIOC4l+C4reC4h+C4hOC4s+C4hOC4ueC4kw0KK+C4m+C4o+C4sOC4oOC4seC4quC4quC4oyDguKXguLjguJvguKPguLDguKrguIfguITguYwNCivguJvguKPguLDguKDguLHguKrguKrguKMg4LmA4Lit4Li14LmI4Lii4Lih4LmC4Lit4Lig4Liy4LiqDQor4Lib4Lij4Liw4Lig4LiyIOC4hOC4s+C5gOC4nuC4o+C4suC4sA0KK+C4m+C4o+C4sOC4oOC4siDguIrguLLguKPguLXguK3guLHguJkNCivguJvguKPguLDguKDguLIg4LiV4Lix4LmL4LiZ4LmA4LiI4Lij4Li04LiNDQor4Lib4Lij4Liw4Lig4LiyIOC4meC4suC4hOC4meC4tOC4pQ0KK+C4m+C4o+C4sOC4oOC4siDguJ7guIfguKnguYzguJ7guLTguJ7guLHguJLguJnguYwNCivguJvguKPguLDguKDguLIg4Lih4Li14LmB4Liq4LiHDQor4Lib4Lij4Liw4Lig4LiyIOC4p+C4tOC5gOC4iuC4teC4ouC4o+C4quC4tOC4h+C4q+C5jA0KK+C4m+C4o+C4sOC4oOC4siDguKrguLjguILguJ7guLHguJnguJjguLUNCivguJvguKPguLDguKDguLIg4Lit4Li04LiH4LiE4LiZ4Lix4LiZ4LiX4LmMDQor4Lib4Lij4Liw4Lig4Liy4LiX4Li04Lie4Lii4LmMIOC4iSDguYDguIjguKPguLTguI3guJzguKUNCivguJvguKPguLDguKDguLLguJ7guKMg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lib4Lij4Liw4Lig4Liy4Lie4LijIOC5geC4ouC5ieC4oeC4reC5iOC4p+C4oQ0KK+C4m+C4o+C4sOC4oOC4suC4nuC4oyDguK3guLjguJrguKXguKfguLTguKPguLHguJXguJnguLINCivguJvguKPguLDguKDguLLguJ7guKPguKPguJMg4Lia4Li44LiT4Lii4Liw4Lio4Lij4Li1DQor4Lib4Lij4Liw4Lig4Liy4Lie4Lij4Lij4LiTIOC4reC4tOC5iOC4oeC4nuC4ueC4peC4l+C4o+C4seC4nuC4ouC5jA0KK+C4m+C4o+C4sOC4oOC4suC4oOC4o+C4k+C5jCDguJzguLTguJnguYHguJUNCivguJvguKPguLDguKDguLLguKPguLHguJXguJnguYwg4Lia4Liy4LiH4Lig4Li04Lig4LieDQor4Lib4Lij4Liw4Lig4Liy4Lin4LiU4Li1IOC4reC4s+C4oeC4pOC4leC5guC4iuC4leC4tA0KK+C4m+C4o+C4sOC4oOC4suC4qOC4o+C4tSDguITguLLguKPguKfguLDguJXguKPguLXguYDguJTguIoNCivguJvguKPguLDguKDguLLguKjguKPguLUg4LmA4LiX4Li14LmI4Lii4LiH4LiC4LizDQor4Lib4Lij4Liw4Lig4Liy4Lio4Lij4Li1IOC5gOC4oeC4t+C4reC4h+C4nuC4o+C4q+C4oQ0KK+C4m+C4o+C4sOC4oOC4suC4qOC4o+C4tSDguKrguLjguJnguJfguYDguKPguIHguLLguJnguJnguJfguYwNCivguJvguKPguLDguKDguLLguKog4LmA4LiB4LiV4LiB4Liw4LmC4LiB4Lih4LilDQor4Lib4Lij4Liw4Lig4Liy4LiqIOC4l+C4seC4muC4l+C4tOC4oeC4l+C4reC4hw0KK+C4m+C4o+C4sOC4oOC4suC4qiDguJ7guLjguJfguJjguLTguJTguLTguKXguIENCivguJvguKPguLDguKDguLLguKog4Lio4Li04Lij4Li04Lit4Lix4LiH4LiE4LiT4LiyDQor4Lib4Lij4Liw4Lig4Liy4LiqIOC5guC4reC4oOC4suC4quC4nuC4seC4meC4mOC5jOC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4oeC4p+C4jSDguJvguKPguLDguJTguLTguKnguJDguYLguKrguKDguJMNCivguJvguKPguLDguKHguKfguKUg4LiE4Liz4LmA4Lin4Li14Lii4LiH4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lib4Lij4Liw4Lih4Lin4LilIOC5gOC4leC4tOC4oeC4geC4uOC4qOC4peC4l+C4o+C4seC4nuC4ouC5jA0KK+C4m+C4o+C4sOC4oeC4p+C4pSDguJrguLjguI3guKrguLTguIfguKvguYzguKjguKMNCivguJvguKPguLDguKHguKfguKUg4Lig4Li54Lih4Li04LiK4Lix4LiiDQor4Lib4Lij4Liw4Lih4Lin4LilIOC4p+C4tOC4oeC4peC5guC4meC4mA0KK+C4m+C4o+C4sOC4oeC4p+C4pSDguKrguLjguKfguKPguKPguJPguIjguLTguJnguJTguLINCivguJvguKPguLDguKHguKfguKXguKjguKPguLUg4Liq4Li04LiZ4Lit4Liy4Lip4LiyDQor4Lib4Lij4Liw4Lih4Liy4LiZIOC4quC4uOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4m+C4o+C4sOC4oeC4uOC4giDguJ7guKPguKvguKHguKPguLHguJXguJnguYzguJ7guIfguKjguYwNCivguJvguKPguLDguKHguLnguKUg4LiK4Li54LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4geC4tOC4leC4leC4tOC4geC4suC4o+C4uOC4k+C4iOC4tOC4lQ0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguYPguIjguJTguLUNCivguJvguKPguLDguKLguIfguITguYwg4LiV4Lix4LiT4LiR4LmM4Liq4Li44LiX4LiY4Li04Lin4LiH4LiE4LmMDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4muC4seC4p+C4guC4iOC4ow0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguJ7guYjguKfguIfguJfguKPguLHguJ7guKLguYwNCivguJvguKPguLDguKLguIfguITguYwg4Lij4Lit4LiU4LiZ4Liz4Lie4LiyDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4quC4h+C5iOC4suC4p+C4h+C4hOC5jA0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguKvguIfguKnguYzguK3guYjguK3guJkNCivguJvguKPguLDguKLguKfguIog4LiZ4Li04Lil4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4Lii4Li44LiX4LiYIOC4guC4iOC4o+C4geC4p+C4tOC4meC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4ouC4uOC4l+C4mCDguYTguIrguKLguKHguLLguJXguKMNCivguJvguKPguLDguKLguLjguJfguJgg4LiZ4Li04Lih4Li04LiV4Lir4Lil4Li04Lin4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lib4Lij4Liw4Lii4Li44LiX4LiYIOC4nuC4uOC5iOC4oeC4iuC4ueC4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4ouC4uOC4l+C4mCDguKfguIfguKjguYzguJvguKPguLDguJfguLjguKENCivguJvguKPguLDguKLguLjguJfguJgg4Liq4Li44LiX4LiY4Li04Liq4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMIOC5guC4geC4p+C4tOC4l+C4p+C4k+C4tOC4iuC4geC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC4ouC4uOC4mCDguKLguLTguJnguJTguLXguJ7guLTguJgNCivguJvguKPguLDguKLguLnguKMg4LmB4LiB4LmJ4Lin4Lia4Lix4LiT4LiR4Li04LiVDQor4Lib4Lij4Liw4Lii4Li54LijIOC4iOC4h+C4oeC4teC4nuC4o+C4iuC4seC4og0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguYHguIjguYnguIfguIjguLTguJXguKMNCivguJvguKPguLDguKLguLnguKMg4LmE4LiK4LmC4LiiDQor4Lib4Lij4Liw4Lii4Li54LijIOC4l+C4reC4h+C4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguJnguLTguYjguKHguILguLLguKcNCivguJvguKPguLDguKLguLnguKMg4Lia4Li54Lij4LiT4Lio4Li04Lij4Li0DQor4Lib4Lij4Liw4Lii4Li54LijIOC4nuC4o+C4quC4seC4oeC4nuC4seC4meC4mOC5jOC4quC4uOC4gg0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguKDguLnguKHguLTguYLguKrguKENCivguJvguKPguLDguKLguLnguKMg4Lij4Lit4Lii4LiV4Lij4Liw4LiB4Li54LilDQor4Lib4Lij4Liw4Lii4Li54LijIOC5gOC4peC4tOC4qOC5hOC4iuC4ouC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguKjguKPguLXguKfguLTguYTguKUNCivguJvguKPguLDguKLguLnguKMg4Liq4Liz4LmA4LiZ4Li14Lii4LiH4LiH4Liy4LihDQor4Lib4Lij4Liw4Lii4Li54LijIOC4q+C4h+C4qeC5jOC5guC4lQ0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguK3guLjguJPguKPguLjguJcNCivguJvguKPguLDguKXguK3guIcg4Liq4Li44LiX4LiY4Li04LiZ4Lix4LiZ4LiX4Liq4Li44LiCDQor4Lib4Lij4Liw4Lin4Lix4LiV4Li0IOC4iOC4tOC4o+C4sOC4quC4luC4tOC4leC4ouC5jA0KK+C4m+C4o+C4sOC4p+C4seC4leC4tCDguJnguJ7guKPguLHguJXguJnguKPguLLguKDguKPguJPguYwNCivguJvguKPguLDguKfguLHguJXguLQg4Lij4Lix4LiV4LiZ4Lin4Li04Lig4Liy4Lie4LiH4Lip4LmMDQor4Lib4Lij4Liw4Lin4Lix4LiV4Li0IOC4quC4uOC4l+C4mOC4tOC4quC4suC4o+C5gOC4qOC4o+C4qeC4kOC5jA0KK+C4m+C4o+C4sOC4p+C4tOC4hyDguJnguKfguKXguIHguLDguKrguLTguJkNCivguJvguKPguLDguKfguLTguIog4Lit4Lix4LiK4LiM4Liy4Liq4Li44LiX4LiY4Li04LiE4Li44LiTDQor4Lib4Lij4Liw4Lin4Li04LiV4LijIOC4p+C4h+C4qOC5jOC4iOC4tOC4leC4leC4suC5guC4oOC4hA0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguIHguLHguIfguIHguKUNCivguJvguKPguLDguKfguLTguJfguKLguYwg4LiI4LiH4LiI4Li04LiV4Liq4Liz4Lij4Liy4LiNDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC5gOC4iOC4suC4quC4uOC4o+C4tOC4ouC4leC4o+C4sOC4geC4ueC4pQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguYHguIvguYjguJvguLbguIcNCivguJvguKPguLDguKfguLTguJfguKLguYwg4LmA4LiV4LiK4Liw4Lia4Li54Lij4LiT4LmA4LiX4Lie4Liy4Lig4Lij4LiT4LmMDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4meC4suC4meC4suC4iuC4tOC4mQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguJvguLLguKXguKjguKPguLUNCivguJvguKPguLDguKfguLTguJfguKLguYwg4Lie4Li54Lil4LmA4LiB4Lip4LijDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4o+C4leC4tOC4quC4tOC4mQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguYDguKXguLTguKjguYDguJjguLXguKLguKPguJTguLPguKPguIcNCivguJvguKPguLDguKfguLTguJfguKLguYwg4Lin4Li44LiS4Li04LiZ4Lig4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4quC4suC4ouC4iOC4seC4meC4l+C4o+C5jOC4q+C4reC4oQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguYHguKrguIfguYTguIrguKINCivguJvguKPguLDguKfguLTguJfguKLguYwg4Lit4Liy4Lij4Li14Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmM4LiB4Li44LilDQor4Lib4Lij4Liw4Lin4Li14LiTIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4sOC4p+C4uOC4kuC4tCDguKjguKPguLXguKHguLHguJnguJXguLANCivguJvguKPguLDguKjguLLguKrguJnguYwg4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4geC4s+C5geC4q+C4h+C4pOC4l+C4mOC4tOC5jA0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguYHguITguKXguYnguKfguYLguKLguJjguLINCivguJvguKPguLDguKrguIfguITguYwg4LmA4LiI4Li04LiU4Liq4LiB4Li44Lil4Lia4Li44LiNDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC5geC4i+C5iOC4ouC4tOC5ieC4oQ0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguJXguLnguYnguIjguLTguJnguJTguLINCivguJvguKPguLDguKrguIfguITguYwg4LiY4Liz4Lij4LiH4Lin4Lix4LiS4LiZ4LmA4Lil4Li04LioDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4m+C4l+C4uOC4oeC5gOC4lOC4iuC4sA0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguJ7guKPguIrguLHguKLguKfguKPguIHguLjguKUNCivguJvguKPguLDguKrguIfguITguYwg4LmB4Lie4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4o+C4reC4lOC5gOC4iuC4t+C5ieC4rQ0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguKfguIfguKjguYzguIrguJnguLDguKDguLHguKINCivguJvguKPguLDguKrguIfguITguYwg4Lio4Lij4Li14LiK4Lix4Lii4Lio4Li04Lij4Li04LmA4Lin4LiKDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4quC4p+C4meC4quC4oeC4iOC4tOC4leC4ow0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguKrguLjguKfguKPguKPguJPguJvguKPguLDguYDguJfguKgNCivguJvguKPguLDguKrguIfguITguYwg4Lit4Lii4LmI4Liy4LiH4LiY4Liy4Lij4LiyDQor4Lib4Lij4Liw4Liq4LiaIOC5guC4leC5iuC4sOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4m+C4o+C4sOC4quC4niDguJnguKfguKXguYDguJbguKXguLTguIfguKjguLHguIHguJTguLTguYwNCivguJvguKPguLDguKrguJ4g4Lir4Lix4Liq4LiC4Lix4LiZ4LiY4Li04LmM4LmA4Lib4Li14LmI4Lii4Lih4Liq4Li44LiCDQor4Lib4Lij4Liw4Liq4Lie4Liq4Li04LiZIOC4qOC4uOC4guC5gOC4reC4teC5iOC4ouC4oQ0KK+C4m+C4o+C4sOC4quC4nuC5guC4iuC4hCDguKfguLjguJLguLTguKrguLLguKMNCivguJvguKPguLDguKrguKEg4Liq4Li14LiZ4LmJ4Liz4LmA4LiH4Li04LiZDQor4Lib4Lij4Liw4Liq4Liy4LiXIOC5gOC4geC4qeC4leC4o+C4sOC4iuC4meC4oeC5jA0KK+C4m+C4o+C4sOC4quC4suC4lyDguJXguLHguYnguJnguYDguKrguYfguIcNCivguJvguKPguLDguKrguLLguJcg4Lie4Li04LiX4Lix4LiB4Lip4LmM4Lie4LiH4Lio4LmM4Lio4Li04Lij4Li0DQor4Lib4Lij4Liw4Liq4Liy4LiXIOC4qOC4o+C4teC4meC4suC4hA0KK+C4m+C4o+C4sOC4quC4suC4lyDguK3guKPguYjguLLguKHguIHguLjguKUNCivguJvguKPguLDguKrguLLguJjguJnguYzguJ7guKUg4LiE4Lil4LmI4Lit4LiH4LiB4Liy4Lij4LmA4LiC4Li14Lii4LiZDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC5gOC4geC4qeC4m+C4o+C4sOC4lOC4tOC4qeC4kOC4tOC5jA0KK+C4m+C4o+C4sOC4quC4suC4mSDguYDguInguKXguKLguKDguLLguJ4NCivguJvguKPguLDguKrguLLguJkg4LmA4LiV4LiK4Liw4Lib4Lij4Liw4Lig4Liy4Lin4LiB4Li44LilDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC4muC4uOC4jeC4o+C4uOC4leC4meC5jA0KK+C4m+C4o+C4sOC4quC4suC4mSDguJ7guLbguYjguIfguJrguLjguI3guJ7guLLguJnguLTguIrguKLguYwNCivguJvguKPguLDguKrguLLguJkg4LmA4Lij4Li34Lit4LiH4LmB4LiI4LmI4LihDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC4qOC4tOC4o+C4tOC4muC4uOC4jQ0KK+C4m+C4o+C4sOC4quC4suC4mSDguKrguLjguKPguLDguYDguKPguLfguK3guIfguIrguLHguKINCivguJvguKPguLDguKrguLLguJkg4Lit4Li04LiZ4LiX4Lio4Lix4LiB4LiU4Li04LmM4Lit4Li44Lia4LilDQor4Lib4Lij4Liw4Liq4Liy4LijIOC4guC4iOC4o+C4geC4peC4tOC5iOC4mQ0KK+C4m+C4o+C4sOC4quC4suC4oyDguJjguKPguKPguKHguIjguLPguKPguLHguKoNCivguJvguKPguLDguKrguLLguKMg4Lih4Li14Liq4Lih4Lih4LiZ4LiV4LmMDQor4Lib4Lij4Liw4Liq4Liy4LijIOC5geC4quC4h+C4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tCDguKrguLTguIfguKvguYzguYDguIjguKPguLTguI3guIHguLTguIgNCivguJvguKPguLDguKrguLTguJfguJjguLTguYzguJ7guKMg4Lin4Li04Lij4Li04Lii4Liw4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4geC4p+C4tOC4meC4m+C4k+C4tOC4mOC4suC4mQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIHguLTguJXguLTguKjguLHguIHguJTguLTguYzguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmB4LiB4LmJ4Lin4Liq4Lih4LiZ4Li24LiBDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4hOC4meC4i+C4t+C5iOC4rQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIjguIfguK3guLHguKjguI3guLLguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiI4Lix4LiZ4LmE4LiB4Lij4Lic4LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4iOC4uOC5ieC4ouC4meC4tOC5iOC4oQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguInguKXguK3guIfguJjguJnguLLguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiK4Liy4LiH4Lib4Lij4Liw4Lii4Li54LijDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4iuC4t+C5ieC4reC4iuC4suC4p+C4meC4sg0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYHguIvguYjguKvguLjguYjguJkNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmA4LiU4LiK4Lin4LiZ4Li04LiK4Lii4LiZ4Li44Lih4Lix4LiV4Li0DQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4leC4seC4meC4quC4h+C4p+C4meC4p+C4h+C4qeC5jA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJfguKPguIfguITguLDguKHguLLguKXguLUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmA4LiX4Lie4LmA4Lit4Li34LmJ4Lit4LiV4Lij4Liw4LiB4Li54LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4meC4p+C4peC4reC4meC4h+C4hOC5jA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJrguKPguKPguJfguLHguJTguYDguJfguLXguYjguKLguIcNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lia4Li44LiN4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC5gOC4peC4tOC4qA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJvguLjguKPguLDguKHguLLguJvguLHguJQNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lie4Lij4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4nuC4seC4meC5geC4quC4h+C4lOC4suC4pw0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYDguJ7guIrguKPguKrguLjguILguKrguLHguJnguJXguLTguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lig4Li54LmI4LiH4Liy4Lih4LiK4Li34LmI4LiZDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4oeC4suC4meC4sOC4nOC4pQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKLguLfguJnguKLguIcNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lij4Li44LmI4LiH4LiY4Li14Lij4LiB4Li44LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4peC4tOC4oeC4m+C5jOC4p+C4seC4kuC4meC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKfguIfguITguYzguKDguLnguYgNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lin4Lix4LiK4Lij4Liw4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4p+C4teC4o+C4sOC4nuC4suC4meC4tOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKjguKPguLXguK3guLjguJfguLLguKPguKfguIfguKjguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Liq4LiB4Li44Lil4LiZ4Liy4Lih4Lit4LmA4LiZ4LiBDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4quC4seC4meC4leC5guC4ouC4lOC4oQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKrguLXguKHguLLguJjguKPguKPguKHguKPguLHguJXguJnguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Liq4Li44LiX4LiY4Li04Lio4Li04Lij4Li04LiB4Li44LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC5geC4quC4h+C4oOC4seC4geC4lOC4tQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKvguLLguI3guIHguKXguYnguLINCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lit4LmJ4LiZ4Lib4Lix4LiZ4Liq4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4reC4suC4oeC4tOC4meC5gOC4i+C5h+C4mQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYDguK3guLXguKLguJTguYHguIHguYnguKcNCivguJvguKPguLDguKrguLnguJUg4LiK4Liy4LiN4LiI4Liz4Lil4Lit4LiHDQor4Lib4Lij4Liw4Lir4Lii4Lix4LiUIOC4hOC4peC5ieC4reC4ouC4nuC4tuC5iOC4h+C4reC4suC4iA0KK+C4m+C4o+C4sOC4q+C4ouC4seC4lCDguYHguJTguIfguK3guLTguJnguJfguKfguLHguJLguJnguYwNCivguJvguKPguLDguKvguKLguLHguJQg4Lia4Li44LiN4Liq4LmI4LiHDQor4Lib4Lij4Liw4Lir4Lii4Lix4LiUIOC4oeC5iOC4p+C4h+C5gOC4peC4teC5ieC4ouC4hw0KK+C4m+C4o+C4sOC4q+C4ouC4seC4lCDguYDguKjguKPguKnguJDguKfguIfguKjguYwNCivguJvguKPguLDguKvguKXguLLguJcg4LiZ4Lin4Lij4Liy4LiKDQor4Lib4Lij4Liw4LmA4LiI4Lip4LiO4LmMIOC4guC4iOC4o+C4meC4seC4meC4l+C4meC5jA0KK+C4m+C4o+C4sOC5gOC4iuC4tOC4jSDguJvguLHguYnguJnguJfguK3guIcNCivguJvguKPguLDguYDguJTguLTguKEg4Lii4Li44Lin4LmA4LiX4Lie4Liy4LiB4LijDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4geC4h+C4l+C4reC4hw0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguITguIfguKHguJnguJXguYwNCivguJvguKPguLDguYDguJfguLfguK3guIcg4LmA4LiI4Li14Lii4LmE4Lie4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4leC4tOC4k+C4sOC4oeC4suC4qA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguJnguLTguJXguKLguLANCivguJvguKPguLDguYDguJfguLfguK3guIcg4LmA4Lib4Liy4LiK4LihDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4oeC4q+C4suC4o+C4seC4geC4guC4geC4sA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguYDguKXguYfguIHguYPguIjguIHguKXguYnguLINCivguJvguKPguLDguYDguJfguLfguK3guIcg4Liq4Lix4LiH4LiC4Liq4Li54LiV4LijDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4q+C4suC4nuC4iOC4meC5jA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4h+C4l+C4tOC4nuC4ouC5jCDguKrguLjguILguJTguLUNCivguJvguKPguLDguYDguKHguLTguJkg4LiC4Lix4LiZ4LiY4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liw4LmA4Lin4LiKIOC4oOC4seC4geC4lOC4teC4m+C4o+C4sOC4nuC4seC4meC4mOC5jA0KK+C4m+C4o+C4sOC5gOC4p+C4qCDguIHguLjguKXguKfguLTguIjguLTguJXguKPguKPguLHguIfguKrguLUNCivguJvguKPguLDguYDguKfguKgg4Lig4Liy4Liq4Lin4Lij4LmA4Lin4LiKDQor4Lib4Lij4Liw4LmA4Lin4Lio4LiZ4LmMIOC4muC4uOC4jeC4p+C4tOC4oOC4suC4o+C4seC4leC4meC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguIHguKXguLHguYjguJnguJvguKPguLDguKrguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiB4Li04LiI4LmA4LiI4Lij4Li04LiN4Lin4Li04Lio4Liy4LilDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4geC4tOC4lOC4oOC4ueC5iA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguILguKfguLHguI3guJfguLDguYDguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiE4Lij4Lit4LiH4Lio4Lix4LiB4LiU4Li04LmM4Lio4Lij4Li1DQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5guC4hOC4leC4o+C4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguIjguLHguIfguKrguJbguLTguJXguKLguYzguIHguLjguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiI4Li04LiV4LiV4LmM4LiI4Liy4Lij4Li24LiBDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4iOC4leC4meC5jOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguInguLLguIHguIfguLLguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiK4Liy4LiN4LiQ4Li04LiV4Li04LmA4Lin4LiKDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4iuC4tOC4lOC4iuC4ueC4hOC4p+C4suC4oeC4lOC4tQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYHguIvguYjguKXguLTguYnguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiU4Liy4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4leC4seC5ieC4h+C4iOC4o+C4o+C4ouC4suC4mOC4o+C4o+C4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYDguJXguLTguKHguJvguKPguLDguKLguLnguKMNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiX4Lin4Li14LmC4LiK4LiV4Li04LiK4LmI4Lin4LiHDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4l+C4seC4qOC4meC4qOC4ow0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJjguKPguKPguKHguKPguLHguJXguYLguJnguJfguLHguKINCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiZ4Lix4LiZ4LiX4Liq4Lix4LiZ4LiV4Li0DQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4meC4teC4ouC4oeC4geC4uOC4peC4o+C4seC4geC4qeC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJrguLjguI3guKPguLHguJXguJnguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lib4Lij4Liw4Lih4LiH4LiB4Li04LiIDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4m+C4suC4meC4quC4uOC4gg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJzguLLguKrguLjguJbguLLguJkNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lie4Lik4LiB4Lip4Liy4LiH4LiB4Li54LijDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4nuC4teC4o+C4sOC5geC4nuC4l+C4ouC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYLguJ7guJjguLTguYDguIjguKPguLTguI0NCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lig4Li54Lih4Li04LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4oeC4seC4geC4nuC4tOC4oeC4pQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKHguLnguK7guLPguKHguLHguJTguK3guLLguKPguLUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lij4Lih4Lii4Lio4Li04Lij4Li04LmE4LiX4LiiDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4o+C4uOC4iOC4tOC4mOC4suC4o+C4k+C4o+C4h+C4hOC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKXguLLguKDguJTguLLguKPguLINCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4Lil4Liy4Lir4LmA4Lil4Li04Lio4LiK4Lix4LiiDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4p+C4h+C4qOC5jOC4reC4seC4hOC4o+C4geC4uOC4pQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKfguLHguJLguJnguLDguIrguLHguKLguKjguKPguLXguKrguIHguLjguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lin4Li44LiS4Lii4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4qOC4o+C4teC4quC4uOC4oOC4suC4h+C4hOC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKjguLbguIHguKfguLHguJLguJnguLINCivguJvguKPguLDguYDguKrguKPguLTguJAg4Liq4Lin4LiZ4Lib4Lij4Liy4LiH4LiE4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4quC4suC4ouC4p+C4seC4kuC4meC4suC4quC4uOC4gg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKrguLjguILguJrguLLguIcNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Liq4Li44Lia4Li04LiZ4Lih4Li04LiV4LijDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4quC5h+C4h+C4quC4uOC4gg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKvguKPguLnguKXguLHguIHguKnguJPguLLguJnguJnguJfguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4Lir4Lil4Li34Lit4LiH4Lio4Li44Lig4LiK4Lix4Lii4LiB4Li44LilDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4reC4ouC4ueC5iOC4nuC4uOC5iOC4oeC4nuC4pOC4geC4qeC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguK3guLLguIjguYDguJnguLXguKLguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lit4Li44LiU4Lih4Lio4Li04Lij4Li04LmC4Lig4LiE4Lio4Lix4LiiDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5guC4reC4p+C4sOC4geC4uOC4peC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4qOC4o+C4tSDguKfguIfguKnguYzguKrguLjguKPguLTguJnguJfguKPguYwNCivguJvguKPguLDguYDguKrguKPguLTguJDguLTguYwg4LiC4Liy4Lin4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lib4Lij4Liw4LmC4Lih4LiX4Lii4LmMIOC5hOC4iuC4ouC4geC4tOC4iA0KK+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jCDguYTguJfguKLguK3guLjguJTguKENCivguJvguKPguLDguYLguKLguIrguJnguYwg4Liq4LiZ4Li04LiX4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LmE4LiX4LiiIOC4m+C4o+C4sOC4geC4reC4muC4geC4peC4tOC5iOC4mQ0KK+C4m+C4o+C4sOC5hOC4niDguILguLLguKfguKrguLjguJfguJjguLQNCivguJvguKPguLDguYTguJ4g4LiI4Liz4LmA4Lij4Li14Lii4LiHDQor4Lib4Lij4Liw4LmE4LieIOC4iuC4ueC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4m+C4o+C4sOC5hOC4niDguJXguKPguLXguJnguLTguJXguKLguYwNCivguJvguKPguLDguYTguJ4g4LmA4LiX4Li14Lii4LiZ4LmE4LiX4LiiDQor4Lib4Lij4Liw4LmE4LieIOC4muC4uOC4jeC4ouC4sOC4o+C4seC4leC4meC5jA0KK+C4m+C4o+C4sOC5hOC4niDguJ7guKPguKHguJPguLANCivguJvguKPguLDguYTguJ4g4LmC4Lie4LiY4Li04LmM4LmB4Lir4LiaDQor4Lib4Lij4Liw4LmE4LieIOC4o+C4seC4leC4meC4sOC4iuC4teC4p+C4sOC4geC4uOC4pQ0KK+C4m+C4o+C4sOC5hOC4niDguKfguLTguKrguLLguKXguKrguIHguKUNCivguJvguKPguLDguYTguJ4g4Liq4Lij4LmJ4Lit4Lii4Liq4LiZ4LiY4Li04LmMDQor4Lib4Lij4Liw4LmE4LieIOC5geC4quC4h+C5gOC4lOC4ig0KK+C4m+C4o+C4sOC5hOC4niDguK3guLTguJnguYDguK3guLXguYjguKLguKENCivguJvguKPguLDguYTguJ7guJ7guKPguKPguJMg4LmA4LiB4LmH4LiI4Lin4Lil4Li14Lin4Lij4LijDQor4Lib4Lij4Liw4LmE4Lie4Lie4Lij4Lij4LiT4LmMIOC4iuC4sOC5gOC4reC4oQ0KK+C4m+C4o+C4sOC5hOC4nuC4o+C4seC4leC4meC5jCDguIHguLLguI3guIjguJnguJ7guLTguJrguLnguKXguKLguYwNCivguJvguKPguLDguYTguJ7guKjguKPguLUg4LiU4Lin4LiH4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4LmE4Lie4Lio4Lij4Li1IOC4qOC4o+C4teC4oOC4tOC4o+C4oeC4ouC5jA0KK+C4m+C4o+C4seC4iuC4jeC4siDguIjguKPguLnguI3guYLguKPguIjguJnguYwNCivguJvguKPguLHguIrguI3guLIg4Lin4Li04LiX4Lii4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lib4Lij4Lix4LiN4LiN4LiyIOC4iOC4seC4meC4l+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4m+C4o+C4suC4geC4suC4oyDguJrguYnguLLguJnguYDguIHguLLguLANCivguJvguKPguLLguIfguITguYwg4LmB4LiB4LmJ4Lin4LiH4Liy4LihDQor4Lib4Lij4Liy4LiI4Li04LiTIOC4p+C4uOC4kuC4suC4meC4uOC4quC4ow0KK+C4m+C4o+C4suC4k+C4tSDguIHguKTguKnguJPguIHguKPguLUNCivguJvguKPguLLguJPguLUg4LiB4Li04LiV4LiV4Li04LiE4Li44LiTDQor4Lib4Lij4Liy4LiT4Li1IOC5geC4geC5ieC4p+C4hOC4sw0KK+C4m+C4o+C4suC4k+C4tSDguITguIfguJvguKPguLDguYLguKLguIrguJnguYwNCivguJvguKPguLLguJPguLUg4LiE4Li44LmJ4Lih4LiI4Lix4LmI4LiZDQor4Lib4Lij4Liy4LiT4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4l+C4p+C4teC4peC4suC4oA0KK+C4m+C4o+C4suC4k+C4tSDguIjguLTguKfguLDguJ7guIfguKnguYwNCivguJvguKPguLLguJPguLUg4LiJ4Lix4LiV4Lij4LmE4Lie4Lio4Liy4Lil4Liq4Li44LiCDQor4Lib4Lij4Liy4LiT4Li1IOC4iuC4suC4jeC4iuC5iOC4suC4h+C4l+C4q+C4suC4ow0KK+C4m+C4o+C4suC4k+C4tSDguYLguIrguITguIrguLHguKLguYDguInguKXguLTguKHguKfguIfguKjguYwNCivguJvguKPguLLguJPguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lib4Lij4Liy4LiT4Li1IOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4m+C4o+C4suC4k+C4tSDguJXguKPguIfguYDguKfguYLguKPguIjguJnguYwNCivguJvguKPguLLguJPguLUg4LmA4LiV4Li14Lii4LmA4LiV4Li04Lih4Lio4Li44Lig4Lic4LilDQor4Lib4Lij4Liy4LiT4Li1IOC4l+C4reC4h+C4lOC4reC4meC4nuC4uOC5iOC4oQ0KK+C4m+C4o+C4suC4k+C4tSDguJfguLnguYnguYTguJ7guYDguKPguLLguLANCivguJvguKPguLLguJPguLUg4LiY4Li44Lij4LiB4Li04LiI4Lin4LiH4LiE4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4meC4tOC4ouC4oeC5gOC4quC4mQ0KK+C4m+C4o+C4suC4k+C4tSDguJrguLjguI3guIHguKXguYjguLMNCivguJvguKPguLLguJPguLUg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmM4Liq4Li44LiU4Liq4Lin4Liy4LiXDQor4Lib4Lij4Liy4LiT4Li1IOC4m+C4suC4nuC4iOC4meC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4suC4k+C4tSDguYDguJzguLfguK3guIHguYDguIHguKnguKENCivguJvguKPguLLguJPguLUg4Lie4Lik4LiV4Li04Lio4Lij4Lix4LiT4Lii4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4nuC4tOC5gOC4meC4leC4o+C5gOC4quC4luC4teC4ouC4ow0KK+C4m+C4o+C4suC4k+C4tSDguYLguJ7guJjguLTguYzguKHguLUNCivguJvguKPguLLguJPguLUg4Lih4Lir4Lix4LiV4LmA4LiU4LiK4LiB4Li44LilDQor4Lib4Lij4Liy4LiT4Li1IOC5hOC4oeC5ieC4quC4seC4gQ0KK+C4m+C4o+C4suC4k+C4tSDguKPguLHguIfguKrguLTguKLguLLguJnguJnguJfguYwNCivguJvguKPguLLguJPguLUg4LmC4Lij4LiI4LiZ4LmM4Lie4LiI4LiZ4Liy4Lij4Lix4LiKDQor4Lib4Lij4Liy4LiT4Li1IOC5gOC4peC4suC4q+C4sOC4geC4uOC4peC4mOC4o+C4o+C4oQ0KK+C4m+C4o+C4suC4k+C4tSDguKfguKPguInguLHguJXguKPguLLguKfguJPguLTguIoNCivguJvguKPguLLguJPguLUg4Lin4Li04LiX4Li44Lij4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4qOC4o+C4teC4l+C4seC4og0KK+C4m+C4o+C4suC4k+C4tSDguKjguLTguKPguLTguJfguLHguKjguJnguIHguLjguKUNCivguJvguKPguLLguJPguLUg4Liq4Lih4Lia4Li54Lij4LiT4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4quC4suC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4suC4k+C4tSDguKrguLjguILguJjguLXguKfguLjguJLguLQNCivguJvguKPguLLguJPguLUg4Liq4Li44Lij4Li04Lii4Liw4LiJ4Liy4LiiDQor4Lib4Lij4Liy4LiT4Li1IOC5geC4quC4meC4quC4uOC4gg0KK+C4m+C4o+C4suC4k+C4tSDguKvguLTguJXguLDguKvguLjguYjguIcNCivguJvguKPguLLguJPguLUg4Lit4Lii4Li54LmI4LmA4Liq4LiZ4Liy4Liq4LiZ4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4reC4s+C5hOC4nuC4quC4uOC4p+C4o+C4o+C4kw0KK+C4m+C4o+C4suC4k+C4tSDguYDguK3guIHguKrguLTguKPguLTguKXguLHguI3guIjguIHguKMNCivguJvguKPguLLguJPguLXguJUg4LiK4Lin4Liy4Lil4LiB4Li44LilDQor4Lib4Lij4Liy4LiT4Li14LiVIOC4nuC4tuC5iOC4h+C4nuC4h+C4qOC5jA0KK+C4m+C4o+C4suC4k+C4teC4lSDguYDguKvguKHguLfguK3guJnguYPguIgNCivguJvguKPguLLguJnguK3guKEg4LiI4Li04LiV4Lij4Lia4Liz4Lij4Li44LiHDQor4Lib4Lij4Liy4LiZ4Lit4LihIOC4oeC4tOC4leC4o+C4mOC4o+C4o+C4oeC4qOC4tOC4o+C4tA0KK+C4m+C4o+C4suC4meC4tSDguYDguJTguIrguKHguJPguLUNCivguJvguKPguLLguKPguJbguJnguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiB4Lih4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liy4Lij4LiW4LiZ4LiyIOC4oeC4tOC4peC4tOC4meC4l+C4iOC4tOC4meC4lOC4sg0KK+C4m+C4o+C4suC4o+C4oCDguKPguLHguJXguJ7guLHguJnguJjguLjguYwNCivguJvguKPguLLguKjguKPguLHguKIg4Lit4Lix4LiI4LiJ4Lij4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liy4LmC4Lih4LiXIOC4ouC4tOC4meC4lOC4tQ0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguITguIfguJjguJnguLANCivguJvguKPguLLguYLguKHguJfguKLguYwg4LiI4Liz4Lib4Liy4LiX4Lit4LiHDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4iuC4uOC4leC4tOC4oeC4sg0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguJXguLPguKPguLLguYDguKPguLXguKLguIcNCivguJvguKPguLLguYLguKHguJfguKLguYwg4LiZ4Lig4Liy4LmB4LiI4LmJ4LiHDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4muC4uOC4k+C4ouC4o+C4seC4h+C4quC4pOC4qeC4juC5jA0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguJ7guIfguKjguYzguIHguKXguYjguLMNCivguJvguKPguLLguYLguKHguJfguKLguYwg4Lih4LiB4Lij4Lie4Lik4LiB4Lip4LmMDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC5guC4o+C4iOC4meC4p+C4tOC4oOC4suC4lQ0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguKfguYLguKPguJTguKHguKfguJnguLTguIrguIHguLjguKUNCivguJvguKPguLLguYLguKHguJfguKLguYwg4Liq4Lij4Lij4LmA4Lie4LiK4Lij4Lio4Li04Lij4Li0DQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4quC4uOC4muC4o+C4o+C4k+C4nuC4h+C4qeC5jA0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguYLguKvguYnguYPguKINCivguJvguKPguLTguIHguIHguLXguJvguLLguKUg4LiL4Li04LiH4Lir4LmMDQor4Lib4Lij4Li04LiN4LiN4LiyIOC4hOC4s+C4l+C4sOC5gOC4meC4leC4ow0KK+C4m+C4o+C4tOC4jeC4jeC4siDguJXguLTguKPguJPguLDguJvguKPguLDguIHguLTguIgNCivguJvguKPguLTguI3guI3guLIg4LmA4Lib4Lij4Lih4LiY4Li14Lij4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lib4Lij4Li04LiN4LiN4LiyIOC5geC4ouC5ieC4oeC4iuC4oeC4quC4p+C4mQ0KK+C4m+C4o+C4tOC4jeC4jeC4siDguKjguKPguLXguKrguLjguKPguLTguYLguKINCivguJvguKPguLTguI3guI3guLIg4LmA4Lir4Lih4Lih4Liy4LiK4Li54LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Li44LilDQor4Lib4Lij4Li04LiN4LiU4LiyIOC4meC4tOC4peC4iOC4o+C4seC4quC4p+C4k+C4tOC4ig0KK+C4m+C4o+C4tOC4l+C4m+C4suC4peC4i+C4tOC4h+C4q+C5jCDguIvguLLguJrguLLguJTguLINCivguJvguKPguLTguKEg4LiE4Li44LiT4Liw4LmA4LiB4Lip4LihDQor4Lib4Lij4Li04Lii4LiyIOC4m+C4seC4jeC4jeC4suC4nuC4pQ0KK+C4m+C4o+C4tOC4qOC4meC4siDguYHguIHguYnguKfguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJvguKPguLTguKjguJnguLIg4Lib4Lij4Liw4Lir4Liy4Lij4LiC4LmJ4Liy4Lio4Li24LiBDQor4Lib4Lij4Li04Lio4LiZ4LiyIOC4reC4seC4qOC4p+C5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C4m+C4o+C4teC4iuC4siDguIHguKXguLLguIfguJrguLjguKPguLHguKHguKLguYwNCivguJvguKPguLXguIrguLIg4LiB4Li14Lij4LmA4Lio4Lij4Lip4LiQ4Lij4Li44LmI4LiH4LiX4Lin4Li1DQor4Lib4Lij4Li14LiK4LiyIOC5geC4geC5ieC4p+C5guC4geC4luC4oQ0KK+C4m+C4o+C4teC4iuC4siDguITguKXguYjguK3guIfguKrguLnguYnguKjguLbguIENCivguJvguKPguLXguIrguLIg4LmA4LiH4Li04LiZ4LiW4Liy4Lin4Lij4Lin4Lix4LiS4LiZ4LiyDQor4Lib4Lij4Li14LiK4LiyIOC4iOC4suC4o+C4uOC4qOC4tOC4o+C4tOC4meC4uOC4geC4uOC4pQ0KK+C4m+C4o+C4teC4iuC4siDguYDguIjguKPguLTguI3guIrguLHguKLguYDguJ7guIrguKMNCivguJvguKPguLXguIrguLIg4LmA4LiJ4Lil4Li04Lih4Lie4LilDQor4Lib4Lij4Li14LiK4LiyIOC4iuC4tOC4meC4sOC4meC4suC4p+C4tOC4mQ0KK+C4m+C4o+C4teC4iuC4siDguYTguIrguKLguKfguKrguLgNCivguJvguKPguLXguIrguLIg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lib4Lij4Li14LiK4LiyIOC4leC4o+C4seC4ouC4qOC4tOC4peC4suC4meC4seC4meC4l+C5jA0KK+C4m+C4o+C4teC4iuC4siDguYDguJXguIrguJfguLTguJ7guLLguIHguKMNCivguJvguKPguLXguIrguLIg4LiX4Lij4Lix4Lie4Lii4LmM4Liq4LiW4Li04LiV4Lii4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4l+C4tOC4qOC4suC4oOC4suC4hOC4ouC5jA0KK+C4m+C4o+C4teC4iuC4siDguJjguLLguKPguLLguKrguJnguJjguLTguYwNCivguJvguKPguLXguIrguLIg4LiZ4Liy4Liq4LiUDQor4Lib4Lij4Li14LiK4LiyIOC4muC4uOC4jeC4geC4peC4seC5iOC4mQ0KK+C4m+C4o+C4teC4iuC4siDguYDguJrguI3guIjguJnguLLguIHguLLguKjguIHguLjguKUNCivguJvguKPguLXguIrguLIg4Lib4Lij4Li14LiK4Liy4Lin4Li04Lig4Liy4LipDQor4Lib4Lij4Li14LiK4LiyIOC4nOC4peC4oeC4suC4gQ0KK+C4m+C4o+C4teC4iuC4siDguJ7guKPguKvguKHguYDguIHguLTguJQNCivguJvguKPguLXguIrguLIg4Lie4Li04LiK4Lii4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lib4Lij4Li14LiK4LiyIOC5gOC4nuC5h+C4iuC4o+C4meC5iOC4p+C4oQ0KK+C4m+C4o+C4teC4iuC4siDguKDguLnguYjguKrguLjguJTguYHguKrguKfguIcNCivguJvguKPguLXguIrguLIg4Lih4Li14Lia4Li44LiN4Lie4Li54Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4o+C4p+C4ouC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4m+C4o+C4teC4iuC4siDguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJvguKPguLXguIrguLIg4Lil4Li04Lib4Li04Lie4Lix4LiS4LiZ4LiB4Li44LilDQor4Lib4Lij4Li14LiK4LiyIOC4p+C4h+C4qOC5jOC4iOC4tOC4leC4leC4suC5guC4oOC4hA0KK+C4m+C4o+C4teC4iuC4siDguKfguLHguJLguJnguJTguLTguYDguKPguIENCivguJvguKPguLXguIrguLIg4Lin4Li04LmE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4qOC4o+C4teC5gOC4o+C4t+C4reC4hw0KK+C4m+C4o+C4teC4iuC4siDguKrguIfguKfguJnguJvguLUNCivguJvguKPguLXguIrguLIg4Liq4Lin4LmI4Liy4LiH4LiI4Li04LiV4LiV4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4quC4tOC4l+C4mOC4tOC4geC4tOC4iA0KK+C4m+C4o+C4teC4iuC4siDguKrguLjguJfguJjguLTguJnguLTguKDguLLguIrguLHguKINCivguJvguKPguLXguIrguLIg4LmA4Liq4Lij4Li14Lin4LiH4Lio4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4q+C4reC4oeC4nuC4p+C4h+C4oOC4ueC5iA0KK+C4m+C4o+C4teC4iuC4siDguK3guJnguLjguKDguLLguJ7guJvguKPguLDguYDguKrguKPguLTguJANCivguJvguKPguLXguIrguLIg4Lit4Lix4Lii4Liq4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4reC4uOC4lOC4oeC4ouC4tOC5iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4teC4iuC4suC4nuC4pSDguJzguLjguKrguKrguKPguLLguIfguITguYzguKHguLLguKXguLHguKINCivguJvguKPguLXguJTguLIg4LiE4LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Li14LiU4LiyIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4m+C4o+C4teC4lOC4siDguJrguKPguKPguJfguLHguJTguJ7guLHguJnguJjguLjguYwNCivguJvguKPguLXguJTguLIg4Lie4Li04Lia4Li54Lil4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Li14LiU4LiyIOC5guC4o+C4iOC4meC5jOC4muC4seC4p+C4l+C4reC4hw0KK+C4m+C4o+C4teC4lOC4siDguKrguKvguJnguLHguJnguJfguKPguLLguKLguLjguJfguJgNCivguJvguKPguLXguJTguLIg4LmA4Lit4LiB4Lio4Li04Lij4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Li14LiU4Li1IOC4guC4uOC4oeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4m+C4o+C4teC4lOC4tSDguKrguLjguJfguJjguLTguYHguKLguYnguKENCivguJvguKPguLXguKLguJ7guKPguKPguJMg4LmE4LiX4Lii4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lib4Lij4Li14Lii4LiyIOC4iOC4tOC4o+C4o+C4seC4geC4qeC5jOC5guC4quC4oOC4suC4geC4uOC4pQ0KK+C4m+C4o+C4teC4ouC4siDguJ7guIfguKjguLLguJnguKPguLLguIHguLjguKUNCivguJvguKPguLXguKLguLIg4Liq4Lih4Li44LiX4Lij4LmD4Lir4LiN4LmIDQor4Lib4Lij4Li14Lii4Liy4LiZ4Li04LiIIOC4qOC4o+C4teC5geC4geC5iOC4meC4iOC4seC4meC4l+C4o+C5jA0KK+C4m+C4o+C4teC4ouC4suC4nuC4oyDguYHguIvguYjguK3guLbguYnguIcNCivguJvguKPguLXguKLguLLguKDguLIg4Lit4Lig4Li04Liq4Li44LiCDQor4Lib4Lij4Li44LiHIOC5gOC4lOC4iuC4oeC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4uOC4h+C4qOC4o+C4tSDguYDguJ7guIrguKPguJrguLnguKPguJPguYwNCivguJvguKPguYDguKHguKnguJDguYwg4Lie4Lij4LmA4Lil4Li04LioDQor4Lib4Lil4Lit4LiU4Lig4Lix4LiiIOC4nuC4teC4o+C4lOC4seC4oQ0KK+C4m+C4peC4tOC4pyDguJTguLTguKnguJDguJvguLHguI3guI3guLINCivguJvguKXguLfguYnguKHguIjguLTguJXguJXguYwg4LiI4Li44LiR4Lij4Lij4LieDQor4Lib4Lin4Lij4Li04LiZ4LiX4LijIOC4muC4uOC4jeC4ouC4uOC4muC4pQ0KK+C4m+C4p+C4tOC4leC4o+C5jCDguKrguLjguJjguLLguKfguLTguKLguLLguIfguIHguLnguKMNCivguJvguKfguLXguJPguLIg4LiV4Lix4LiZ4Liq4Li04LiZDQor4Lib4Lin4Li14LiT4LiyIOC4quC4meC4mOC4tOC4oOC4seC4geC4lOC4tQ0KK+C4m+C5iOC4p+C4ouC4peC5ieC4p+C4hyDguYHguIvguYjguIjguLbguIcNCivguJvguK3guIcg4Lit4Liy4Lig4Liy4Lio4Li04Lil4Lib4LmMDQor4Lib4Lit4LiI4Li5IOC4leC4seC4meC4leC4tOC4reC4meC4uOC4geC4uOC4peC4muC4uOC4leC4ow0KK+C4m+C5ieC4reC4oSDguJvguKPguLDguIjguLPguKHguLnguKUNCivguJvguLDguKfguLTguIcg4Lio4Li04Lij4Li04LiB4Li04LiIDQor4Lib4Lix4LiN4LiI4Lie4LiH4Lip4LmMIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4m+C4seC4jeC4iOC4o+C4seC4leC4meC5jCDguKLguLjguJfguJjguKfguIfguKjguYwNCivguJvguLHguI3guIjguLLguKDguKPguJPguYwg4Lie4Lij4Lir4Lih4Liy4Lii4LiZDQor4Lib4Lix4LiN4LiN4LiyIOC4geC4suC4q+C4peC4hw0KK+C4m+C4seC4jeC4jeC4siDguITguLjguJPguKfguLjguJLguLTguJTguLXguYDguKXguLTguKjguKLguLTguYjguIcNCivguJvguLHguI3guI3guLIg4LmB4LiI4LmJ4LiH4LiB4Liy4Lij4LiU4Li1DQor4Lib4Lix4LiN4LiN4LiyIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4m+C4seC4jeC4jeC4siDguJfguK3guIfguKjguKPguLUNCivguJvguLHguI3guI3guLIg4LiZ4Li04Lil4Liq4Li04LiZ4LiY4LieDQor4Lib4Lix4LiN4LiN4LiyIOC4m+C4tOC5iOC4meC4m+C4suC4mQ0KK+C4m+C4seC4jeC4jeC4siDguJ7guLjguYjguKHguKXguLPguYDguIjguLXguKLguIENCivguJvguLHguI3guI3guLIg4Lij4Lit4LiU4LmA4LiE4Lij4Li34Lit4Lih4Li04LiV4LijDQor4Lib4Lix4LiN4LiN4LiyIOC4p+C4o+C4o+C4k+C4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4m+C4seC4jeC4jeC4siDguKjguKPguLXguYPguKoNCivguJvguLHguI3guI3guLIg4Liq4Li44LiC4Lin4Lix4LiS4LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lix4LiN4LiN4LiyIOC4q+C5iOC4suC4meC4quC4tOC4h+C4q+C5jA0KK+C4m+C4seC4jeC4jeC4siDguYDguK3guYjguIfguInguYnguKfguJkNCivguJvguLHguJPguIrguLLguKPguLXguKLguYwg4LmA4Lil4Li14LmJ4Lii4LiH4Lia4Liz4Lij4Li44LiHDQor4Lib4Lix4LiX4Lih4LiyIOC4geC4uOC4peC4m+C4seC4jeC4jeC4suC5gOC4peC4tOC4qA0KK+C4m+C4seC4l+C4oeC4siDguIrguLLguI3guIrguLHguKLguKjguKPguLUNCivguJvguLHguJfguKHguLIg4LiV4Li44Lil4Liy4Lij4Lix4LiB4Lip4LiyDQor4Lib4Lix4LiX4Lih4LiyIOC5gOC4m+C4teC5iOC4ouC4oeC4quC4seC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4m+C4seC4l+C4oeC4siDguYDguKHguLfguK3guIfguJfguK3guIfguYHguIHguYnguKcNCivguJvguLHguJfguKHguLIg4Lin4Li04Lib4Lix4Liq4Liq4LiZ4Liy4LiY4Lij4Lij4LihDQor4Lib4Lix4LiX4Lih4LiyIOC4quC4uOC4guC4geC5ieC4reC4mQ0KK+C4m+C4seC4l+C4oeC4siDguK3guLLguKPguLDguKLguLLguJnguLTguKHguLTguJXguKrguIHguLjguKUNCivguJvguLHguJfguKHguLLguKfguJTguLUg4Lia4Li44Lir4Lil4Lix4LiZDQor4Lib4Lix4LmJ4LiZIOC5guC4iuC4leC4tOC4geC4sOC4nuC4uOC4geC4geC4sOC4k+C4sA0KK+C4m+C4suC4mSDguYHguIHguYnguKfguIrguJnguLANCivguJvguLLguJnguITguLMg4Lil4Lix4Lin4Liw4LiV4Li34LmJ4LiZDQor4Lib4Liy4LiZ4LiK4Lix4LiiIOC5geC4geC5ieC4p+C4reC4seC4oeC4nuC4ow0KK+C4m+C4suC4meC4l+C4tOC4nuC4ouC5jCDguJnguLLguKHguYTguIrguKINCivguJvguLLguJnguKTguJfguLHguKIg4LiV4Lix4LmJ4LiH4LmD4LiIDQor4Lib4Liy4LiZ4LmA4Liq4LiBIOC4reC4suC4l+C4o+C4mOC4uOC4o+C4sOC4quC4uOC4gg0KK+C4m+C4suC4o+C4p+C4teC4o+C5jCDguJrguLjguI3guYLguJUNCivguJvguLLguKPguLTguIrguLLguJUg4LiB4LmJ4Lit4LiZ4LiZ4Liy4LiEDQor4Lib4Liy4Lij4Li04LiK4Liy4LiV4Li0IOC4geC4o+C4suC5gOC4i+C4teC4ouC4meC4teC5iA0KK+C4m+C4suC4o+C4tOC4iuC4suC4leC4tCDguJfguLHguJ7guKDguLDguKrguLjguJUNCivguJvguLLguKPguLTguIrguLLguJXguLQg4Lij4Liw4Lin4Lix4LiH4Liq4Liz4LmC4Lij4LiHDQor4Lib4Liy4Lij4Li04LiK4Liy4LiV4Li0IOC5gOC4quC4p+C4geC4nuC4seC4meC4mOC5jA0KK+C4m+C4suC4peC4tOC4lOC4siDguITguJPguLLguKPguKHguKLguYwNCivguJvguLTguIcg4Lie4Liy4LiZ4Li04LiK4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Li04LiV4Li0IOC4m+C4tOC5iOC4meC4quC4uOC4geC4suC4jeC4iOC4meC4sA0KK+C4m+C4tOC4leC4tOC4nuC4h+C4qOC5jCDguITguLjguJPguJ7guIfguKjguYzguYTguJ7guKjguLLguKUNCivguJvguLTguYjguJkg4LiB4Li04LiI4LmA4Lih4LiY4Li1DQor4Lib4Li04LmI4LiZIOC4oeC4k+C4teC4muC4uOC4leC4ow0KK+C4m+C4tOC5iOC4meC4l+C4reC4hyDguKjguLLguKXguKLguLLguIrguLXguKfguLTguJkNCivguJvguLTguYjguJnguK3guJnguIfguITguYwg4Lie4Lij4Lir4Lih4LiU4Lin4LiHDQor4Lib4Li04Lii4LiJ4Lix4LiV4LijIOC4reC4tOC4qOC4o+C5gOC4quC4meC4siDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lib4Li04Lii4LiZ4Lix4LiZ4LiX4LmMIOC4l+C4o+C4h+C4quC4geC4uOC4pQ0KK+C4m+C4tOC4ouC4meC4uOC4iiDguITguLLguKPguKfguLDguJ7guLTguJfguKLguLLguIHguLjguKUNCivguJvguLTguKLguJ7guIfguKjguYwg4LiV4Li04LiT4Liq4Li54Lil4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Li04Lii4Lie4Lij4Lij4LiTIOC5geC4ouC5ieC4oeC4meC5ieC4reC4og0KK+C4m+C4tOC4ouC4o+C4seC4leC4meC5jCDguIjguLLguJXguLjguKPguLHguJnguJXguJrguLjguJXguKMNCivguJvguLTguKLguKfguKPguKPguJMg4LiE4Liz4Lie4Lii4LiyDQor4Lib4Li04Lii4Lin4Lij4Lij4LiTIOC4qOC4o+C4teC4hOC4lQ0KK+C4m+C4tOC4ouC4p+C4uOC4kuC4tCDguIfguLLguKHguJ7guKUNCivguJvguLTguKLguLAg4LiI4Liy4Lij4Li44Lio4Li44LiB4LijDQor4Lib4Li04Lii4LiwIOC5gOC4luC4t+C5iOC4reC4meC5gOC4oeC4t+C4reC4hw0KK+C4m+C4tOC4ouC4sCDguYDguJvguKrguJXguLHguJnguKLguLUNCivguJvguLTguKLguLAg4Lin4LiH4Lio4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lib4Li04Lii4LiwIOC4reC4seC4iuC4iuC5gOC4quC4p+C4tOC4mQ0KK+C4m+C4tOC4ouC4sOC4iuC4suC4leC4tCDguIjguLHguJnguJfguKPguLHguJXguJnguYwNCivguJvguLTguKLguLDguJTguLIg4Lil4LmJ4Lit4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LmMDQor4Lib4Li04Lii4Liw4LiZ4Liy4LiWIOC4iuC4uOC5iOC4oeC4reC4o+C4sA0KK+C4m+C4tOC4ouC4sOC4meC4uOC4iiDguJrguLjguI3guKPguLHguJXguJnguYwNCivguJvguLTguKLguLDguJ7guIfguKjguYwg4Lib4Li04Lii4Liy4LiH4Liq4Li4DQor4Lib4Li04Lii4Liw4Lie4LijIOC4meC4tOC4peC4ieC4suC4og0KK+C4m+C4tOC4ouC4sOC4nuC4seC4meC4mOC5jCDguKrguLXguJTguK3guIHguJrguKfguJoNCivguJvguLTguKLguLDguKPguLHguJXguJnguYwg4LiU4Liz4Lij4LiH4LiE4LmM4LiB4Li44LilDQor4Lib4Li04Lii4Liw4Lin4LiU4Li1IOC4p+C4tOC4o+C4tOC4ouC4sOC4iuC4suC4leC4tA0KK+C4m+C4tOC4ouC4sOC4p+C4o+C4o+C4kyDguKrguLjguITguJnguJjguKrguLTguIfguKvguYwNCivguJvguLTguKLguLDguKjguLTguKPguLQg4LiH4Liy4Lih4LiW4Li04LmI4LiZDQor4Lib4Li04Lii4Liy4Lig4Lij4LiT4LmMIOC4iuC4tOC4meC4ueC4m+C4geC4suC4o+C4nuC4h+C4qOC5jA0KK+C4m+C4tOC4ouC5gOC4qOC4o+C4qeC4kOC5jCDguKfguKPguK3guLLguJXguKHguJ7guLTguJfguLHguIHguKnguYwNCivguJvguLXguKLguLLguKDguKPguJPguYwg4Lih4LmI4Lin4LiH4LiB4Li44LilDQor4Lib4Li44LiT4LiT4Lij4Lix4LiV4LiZ4LmMIOC5guC4nuC4mOC4tOC4geC4s+C4iOC4ow0KK+C4m+C4uOC5iOC4oSDguKHguLLguKXguLLguIHguLjguKUNCivguYDguJsg4Lia4Li44LiN4LiB4Lit4LiHDQor4LmA4Lib4Lij4LihIOC4iOC4seC4meC4l+C4o+C4sg0KK+C5gOC4m+C4o+C4oeC4geC4oeC4pSDguYDguIHguLTguJTguYDguJTguIoNCivguYDguJvguKPguKHguIjguLTguJXguJUg4LmB4Lie4LmI4LiH4Liq4LiW4LiyDQor4LmA4Lib4Lij4Lih4LiI4Li04LiV4LiV4LmMIOC4quC4suC4o+C4mOC4tOC4o+C4suC4ig0KK+C5gOC4m+C4o+C4oeC4iuC4seC4oiDguYDguJXguIrguLDguKHguIfguITguKXguLLguKDguLTguKfguLHguJLguJnguYwNCivguYDguJvguKPguKHguJ7guLHguJnguJjguYwg4LiK4Lih4Lig4Li54Lij4Lix4LiV4LiZ4LmMDQor4LmA4Lib4Lij4Lih4Lik4LiU4Li1IOC4p+C4h+C4qOC5jOC4l+C4reC4h+C4hOC4sw0KK+C5gOC4m+C4o+C4oeC4p+C4lOC4tSDguKPguLHguJXguJnguKjguLTguKPguLTguJnguJfguKPguKfguLjguJgNCivguYDguJvguKPguKHguKrguLTguJfguJjguLTguYwg4LmA4LiV4Li04Lih4LiI4Lij4Lix4LiqDQor4LmA4Lib4Lij4Li14Lii4LiaIOC4muC4uOC4jeC4peC4t+C4rQ0KK+C5gOC4m+C4peC4pyDguK3guKLguLnguYjguKrguK3guLLguJQNCivguYDguJvguKXguYjguIcg4LiZ4Li04LmI4Lih4LiE4LizDQor4LmA4Lib4Liy4Lil4Li04LiZIOC5gOC4geC4teC4ouC4o+C4leC4tOC4ouC4qOC4meC4uOC4quC4o+C4k+C5jA0KK+C5gOC4m+C4teC5iOC4ouC4oeC4qOC4o+C4tSDguYDguIjguKPguLTguI3guKrguLjguIINCivguYDguJvguLXguYrguKLguIEg4Lil4LmJ4Lin4LiZ4LmA4LiI4Lij4Li04LiNDQor4LmA4Lib4LmJ4LiHIOC5geC4i+C5iOC4reC4t+C5ieC4rQ0KK+C5gOC4m+C5ieC4siDguYLguJ7guJjguLTguYzguYDguJnguLfguK3guIfguJzguKUNCivguYDguJvguYvguIfguYTguIEg4LmB4LiL4LmI4LmA4LiI4Li14LmI4LiiDQor4LmB4Lib4LmJ4LiZIOC4o+C4sOC4lOC4oeC4h+C4suC4oQ0KK+C5guC4m+C4o+C4ouC4oeC4suC4qOC4ouC5jCDguKjguKPguLXguJfguK3guIfguIHguLjguKUNCivguYLguJvguYrguLDguIrguLHguKIg4LmB4LiL4LmI4LiI4Lix4LiHDQor4Lic4LiB4LiyIOC4meC4o+C4meC4tOC4leC4iuC4seC4ouC4geC4uOC4pQ0KK+C4nOC4geC4suC4geC4o+C4reC4hyDguJ7guLjguYjguKHguKfguIfguKjguYzguKrguLPguYDguJnguLXguKLguIcNCivguJzguIHguLLguJ7guKPguKPguJMg4Lib4Liw4LiV4Li04LmA4LiqDQor4Lic4LiB4Liy4Lih4Liy4LioIOC4leC4teC4o+C4k+C4mOC4suC4lOC4sg0KK+C4nOC4geC4suC4oeC4suC4qCDguKrguLTguJfguJjguLTguJ7guKUNCivguJzguIHguLLguKfguKPguKPguJMg4LmA4LiX4Li14Lii4Lih4LiX4Lit4LiH4LiE4LizDQor4Lic4LiB4Liy4LmB4LiB4LmJ4LinIOC4peC4teC4meC4sOC4muC4o+C4o+C4iOC4hw0KK+C4nOC4iOC4h+C4quC4uOC4giDguK3guLHguIfguJvguKPguLDguJfguLXguJsNCivguJzguIjguI0g4Lir4Li14Lia4LmB4LiB4LmJ4LinDQor4Lic4LiU4Li44LiHIOC4l+C4reC4h+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4nOC4lOC4uOC4hyDguKrguLTguIfguKvguYDguKrguJnguLUNCivguJzguJTguLjguIfguKjguLHguIHguJTguLTguYwg4LiY4LiZ4Liy4LiB4Li04LiI4LmA4LiI4Lij4Li04LiN4Liq4Li44LiCDQor4Lic4LiU4Li44LiH4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5gOC4reC4t+C5ieC4reC4reC4suC4o+C4ouC4sOC4oeC4meC4leC4o+C4tQ0KK+C4nOC4pSDguJvguK3guIfguKrguLjguIINCivguJzguKXguLHguJQg4LmA4Lit4Liy4Lis4Liy4LijDQor4Lic4Liq4Liy4LijIOC4quC4uOC4l+C4seC4qOC4meC5jCDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lic4LmI4Lit4LiHIOC4ouC4uOC4l+C4mOC4suC4o+C4seC4geC4qeC5jA0KK+C4nOC5iOC4reC4h+C4nuC4o+C4o+C4kyDguIjguIfguYTguIrguYLguKINCivguJzguYjguK3guIfguJ7guKPguKPguJMg4Lig4Li04Lii4LmC4Lii4LiU4Li04Lil4LiB4LiK4Lix4LiiDQor4Lic4LmI4Lit4LiH4Lie4Li04LioIOC4qOC4tOC4o+C4tOC4nuC4suC4meC4tOC4ig0KK+C4nOC5iOC4reC4h+C4qOC4o+C4tSDguYDguIjguKLguYDguKrguJnguLLguJnguJnguJfguYwNCivguJzguYjguK3guIfguKjguKPguLUg4LiZ4LiB4LmB4LiB4LmJ4LinDQor4Lic4LmI4Lit4LiH4Lio4Lij4Li1IOC5gOC4nuC4qOC4ouC4meC4suC4p+C4tOC4mQ0KK+C4nOC5iOC4reC4h+C4qOC4o+C4tSDguKfguLTguYDguKjguKnguKrguLjguIINCivguJzguYjguK3guIfguKjguKPguLUg4Lit4Li04LiZ4LiX4Lij4Lil4Liy4Lin4Lix4LiT4Lii4LmMDQor4Lic4LmI4Lit4LiH4LmD4LiqIOC4nuC4suC4q+C4uOC4o+C4seC4leC4meC5jA0KK+C4nOC5iOC4reC4mSDguK3guYjguKfguKHguKfguIfguKnguYwNCivguJzguLHguJkg4Lia4Li44LiN4LiK4Li04LiVDQor4Lic4Liy4LiT4Li04LiVIOC4iOC4seC4meC4l+C4o+C5gOC4l+C4qA0KK+C4nOC4suC4lCDguIHguLPguYDguKvguJnguLTguJTguYHguIHguYnguKcNCivguJzguLLguJnguLTguJUg4LmA4LiI4Lij4Li04LiN4Lie4LiH4Lio4LmM4Lie4Lix4LiS4LiZ4LiwDQor4Lic4Liy4Liq4Li04LiVIOC4q+C4tOC4o+C4seC4jeC4jeC4iuC4suC4leC4tOC4mOC4suC4lOC4sg0KK+C4nOC4suC4quC4uOC4giDguJ7guKPguYnguK3guKHguYDguJ7guKPguLXguKLguIcNCivguJzguLTguJkg4LiB4LmJ4Lit4LiZ4LiX4Lit4LiH4LiU4Li1DQor4Lic4Li04LiZIOC4qOC4o+C4teC4reC4uOC5gOC4l+C4meC4iuC4seC4og0KK+C4nOC4tOC4p+C4nuC4o+C4o+C4kyDguYDguJvguLXguKLguYHguIHguYnguKcNCivguJzguLjguKrguJTguLUg4LmA4LiC4Li14Lii4Lin4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lic4Li44Liq4LiU4Li1IOC5gOC4muC5h+C4jeC4iOC4oeC4tOC4meC4l+C4o+C5jA0KK+C4nOC4uOC4quC4lOC4tSDguKjguKPguLXguKrguLPguKPguLLguI0NCivguJzguLnguIHguIjguLTguJUg4Lit4Li04LiZ4LiX4Lin4LiH4Lio4LmMDQor4LmA4Lic4LiK4Li04LiNIOC4ouC4reC4lOC4ouC4tOC5iOC4hw0KK+C5gOC4nOC4lOC4teC4ouC4hyDguIrguLHguKLguK3guLHguKjguKfguKPguLHguIHguKnguYwNCivguYDguJzguJTguYfguIgg4Lic4Li54LmJ4Lie4Lix4LiS4LiZ4LmMDQor4LmA4Lic4LiU4LmH4LiI4LiK4Lix4LiiIOC4qOC4o+C4teC4quC4uOC4p+C4o+C4o+C4kw0KK+C5gOC4nOC4t+C4reC4lCDguJfguK3guIfguJfguLTguJ7guKLguYwNCivguYDguJzguYjguLLguJ7guIfguKnguYwg4LmD4LiI4LmA4LiI4LiV4LiZ4LiB4Li44Lio4LilDQor4LmB4Lic4LmI4LinIOC5gOC4nuC5h+C4h+C4iuC4sOC4reC4uOC5iOC4oQ0KK+C5hOC4nOC5iOC5gOC4l+C4niDguIHguLTguKHguYDguK7guLXguKLguLANCivguJ3guYnguLLguKIg4Lio4Li04Lij4Li04Lie4Lix4LiZ4LiY4LmMDQor4Lie4LiH4Lie4LiI4LiZ4LmMIOC5gOC4peC4tOC4qOC5gOC4iOC4teC4ouC4oeC4o+C4seC4leC4meC5jA0KK+C4nuC4h+C4qOC4geC4oyDguYDguKrguYfguIfguKrguLPguKPguLLguI0NCivguJ7guIfguKjguYzguIrguLLguKIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Li04LiV4LiV4Li04Lie4LiH4Lip4LmMDQor4Lie4LiH4Lio4LiY4LijIOC5gOC4peC4tOC4qOC4oOC4ueC4leC4o+C4suC4ig0KK+C4nuC4h+C4qOC5jOC4meC4o+C4tOC4meC4l+C4o+C5jCDguJ7guIfguKnguYzguKrguLTguJkNCivguJ7guIfguKjguYzguJ7guLHguJnguJjguLjguYwg4LmB4Lie4LiX4Lii4LmM4Lie4LiH4Lio4LmMDQor4Lie4LiH4Lio4LmM4Lij4Lix4LiV4LiZ4LmMIOC4o+C4seC4leC4meC4oOC4suC4geC4ow0KK+C4nuC4h+C4qOC5jOC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYHguJXguYkNCivguJ7guIfguKjguYzguKjguLHguIHguJTguLTguYwg4Lin4Lix4LiS4LiZ4Liy4Lio4Lij4Lih4Lio4Li04Lij4Li0DQor4Lie4LiH4Lio4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4q+C4oeC4ueC5iOC4nuC4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4h+C4qOC4siDguYHguKrguJnguYPguIjguIfguLLguKENCivguJ7guIfguKjguYzguYDguJfguJ4g4Lit4Lix4LiZ4LiV4Liw4Lij4Li04LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4LiH4Lip4LiB4LijIOC4nuC4seC4iuC4o+C5hOC4nuC4qOC4suC4pQ0KK+C4nuC4h+C4qeC5jOC4iuC4seC4oiDguYDguInguKXguLTguKHguIHguKXguLTguYjguJkNCivguJ7guIfguKnguYzguIrguLLguJXguLQg4LiB4Lit4Lir4Liy4LiNDQor4Lie4LiH4Lip4LmM4LiY4LijIOC4quC4uOC4lOC4ouC4reC4lOC4muC4o+C4o+C4nuC4lQ0KK+C4nuC4h+C4qeC5jOC4nuC4seC4kuC4meC5jCDguJjguLXguKPguJvguKPguLDguYDguJfguLfguK3guIfguIHguLjguKUNCivguJ7guIfguKnguYzguJ7guLHguJnguJjguYwg4Lie4Lix4LiZ4LiY4Li44LmM4LmA4Liq4Li34LitDQor4Lie4LiH4Lip4LmM4Lii4Li44LiX4LiYIOC4kyDguJ7guLHguJfguKXguLjguIcNCivguJ7guIfguKnguYzguKjguKPguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4hOC4suC4o+C4p+C4quC4tOC4o+C4tOC4mOC4o+C4o+C4oQ0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguIrguKHguKDguLnguK3guLTguJnguJXguLINCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4LiU4Liz4Lij4LiH4LiK4Lix4Lii4LiZ4Li04Lih4Li04LiV4LijDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4mOC4teC4o+C4oOC4suC4nuC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguJvguLHguI3guI3guIjguYDguKMNCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4LmA4Lie4Li04LmI4Lih4LiX4Lin4Li14Lic4LilDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4o+C4reC4muC4o+C4ueC5iQ0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKjguYzguKrguLjguKPguLTguKLguLLguJnguJnguJfguYwNCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4Lio4Lij4Li14Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4tOC4meC4reC4p+C4og0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguYDguKvguKXguYjguLLguYDguKXguLTguKjguIrguLHguKINCivguJ7guIfguKnguYzguKjguLLguJnguJXguYwg4LiE4LmJ4Liz4LiK4Li5DQor4Lie4LiH4Lip4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4mOC4h+C4qOC4o+C4tQ0KK+C4nuC4h+C4qeC5jOC4quC4tOC4l+C4mOC4tOC5jCDguYDguKfguIrguKrguLTguJfguJjguLTguYwNCivguJ7guIfguKnguYzguYDguIHguLXguKLguKPguJXguLQg4LiK4Lil4Lin4Li04LmE4LilDQor4Lie4LiH4Lip4LmM4LmA4LiX4LieIOC4l+C4seC4nuC4oOC4oeC4suC4mQ0KK+C4nuC4h+C4qeC5jOC5gOC4l+C4niDguKrguLTguJXguKfguLLguJfguLTguJkNCivguJ7guIfguKnguYwg4LiB4Li04LiV4LiV4Li04Lih4LmC4LiZ4Lij4LihDQor4Lie4LiH4Lip4LmMIOC4reC4seC4hOC4o+C4luC4meC4reC4oQ0KK+C4nuC4iOC4meC5jOC4k+C4o+C4h+C4hOC5jCDguKjguKPguLXguJfguLHguKjguJnguLXguKLguYwNCivguJ7guIjguJnguLIg4LmE4LiB4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LmC4LiK4LiEDQor4Lie4LiI4LiZ4LiyIOC4m+C4tOC4ouC4sOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C4nuC4iOC4meC4siDguKjguLTguKXguLINCivguJ7guIjguJnguLLguJYg4Lio4Li44Lig4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lie4LiI4LiZ4Liy4Lij4LiWIOC5gOC4reC4geC4jeC4suC4leC4tA0KK+C4nuC4iOC4meC4teC4ouC5jCDguITguLjguJPguJvguIHguKPguJPguYzguIrguLHguKINCivguJ7guIjguJnguLXguKLguYwg4Lib4Liy4LiZ4Lig4Lix4LiB4LiU4Li1DQor4Lie4LiI4LiZ4Li14Lii4LmMIOC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC5jA0KK+C4nuC4iOC4meC5jCDguYDguIHguLTguJTguJzguKUNCivguJ7guIjguJnguYwg4LiY4Li14Lij4LiE4Li44Lib4LiV4LmMDQor4Lie4LiI4LiZ4LmMIOC4oeC4seC5iOC4meC4geC4seC4meC4meC4suC4mQ0KK+C4nuC4iOC4meC5jCDguYHguKrguIfguJnguLTguKUNCivguJ7guIjguKHguLLguJkg4Lig4Li54LmI4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lie4LiI4Li14Lij4Lix4LiV4LiZ4LmMIOC4o+C4reC4lOC4o+C4seC4leC4meC4suC4l+C4ueC4pQ0KK+C4nuC4lOC4siDguYDguIjguKPguLTguI3guKfguLHguJLguJnguLLguJnguJnguJfguYwNCivguJ7guJnguKEg4LiK4LmJ4Liy4LiH4Lih4LiT4Li1DQor4Lie4LiZ4LihIOC4m+C4suC4meC4oOC4seC4geC4lOC4tQ0KK+C4nuC4meC4oSDguYDguKPguLfguK3guIfguKjguLTguKXguJvguYwNCivguJ7guJnguKEg4Lir4Lin4Lix4LiH4LiU4Li1DQor4Lie4LiZ4Lih4Lie4LijIOC4meC4tOC5iOC4oeC4reC4h+C4hOC4sw0KK+C4nuC4meC4oeC4p+C4seC4peC4ouC5jCDguIHguLLguI3guIjguJnguJnguLHguKHguJ7guLANCivguJ7guJnguK0g4LiV4Lix4LiZ4LiY4Li04Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lie4LiZ4Lit4LiI4Lix4LiZ4LiX4Lij4LmMIOC4oeC4suC4peC4suC4geC4uOC4pSDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lie4LiZ4Lix4LiqIOC4ieC4suC4ouC4quC4teC4qOC4tOC4o+C4tA0KK+C4nuC4meC4seC4qiDguKrguLXguKHguLHguJnguJXguKMNCivguJ7guJnguLLguJnguLjguKPguLHguIHguKnguLIg4Lie4LiZ4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LiyDQor4Lie4LiZ4Liy4Lin4Lix4Lil4Lii4LmMIOC5geC4hOC4peC5ieC4p+C5gOC4hOC4o+C4t+C4rQ0KK+C4nuC4meC4tOC4lOC4siDguITguLLguJbguLINCivguJ7guJnguLTguJTguLIg4LmB4LiL4LmI4Lil4Li14LmJDQor4Lie4LiZ4Li04LiU4LiyIOC4meC4suC4hOC4reC5iOC4reC4mQ0KK+C4nuC4meC4tOC4lOC4siDguYDguJ7guITguKLguLLguIfguIHguLnguKMNCivguJ7guJnguLTguJTguLIg4Lin4LiH4Lio4LmM4Lie4Lij4LmJ4Lit4Lih4LmA4LiI4Lij4Li04LiNDQor4Lie4LiZ4Li04LiU4LiyIOC4quC4uOC4guC5guC4nuC4mOC4tOC5jOC5gOC4nuC5h+C4iuC4ow0KK+C4nuC4meC4tOC4lSDguJfguK3guIfguKfguLTguIjguLTguJXguKMNCivguJ7guJnguLTguJnguJjguLIg4LiI4LmJ4Lit4Lii4LiK4Li5DQor4Lie4Lii4LiH4LiE4LmMIOC4iOC4seC4meC4l+C4o+C4seC4h+C4qeC4tQ0KK+C4nuC4ouC4h+C4hOC5jCDguJrguLjguI3guKXguLfguK0NCivguJ7guKLguIfguITguYwg4Liq4Liy4Lij4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lie4Lii4LiZ4LiV4LmMIOC4hOC4uOC5ieC4oeC4o+C4s+C5hOC4ng0KK+C4nuC4ouC4meC4leC5jCDguJ7guLjguJXguKLguJrguLjguJXguKMNCivguJ7guKLguJnguJXguYwg4Lit4Li44LiX4Lii4Liy4LiZ4Liw4LiB4LiwDQor4Lie4Lii4Lit4LihIOC4iOC4seC5iOC4meC4reC4uOC5hOC4ow0KK+C4nuC4ouC4reC4oSDguJfguKfguLXguITguLnguJMNCivguJ7guKLguK3guKEg4Lib4Li54LmI4Lir4Li04LiZDQor4Lie4Lii4Lit4LihIOC4o+C4p+C4oeC4qOC4tOC4peC4m+C5jA0KK+C4nuC4ouC4reC4oSDguKrguJnguJjguLTguJjguKPguKPguKENCivguJ7guKLguK3guKEg4Lit4Li04LiZ4LiX4Lij4LmM4LiB4Li04LmI4LiHDQor4Lie4Lii4Lix4LieIOC4meC4suC4hOC4l+C4seC5iOC4hw0KK+C4nuC4ouC4uOC4hyDguIjguIfguJvguLTguKLguLDguYLguIrguJXguLQNCivguJ7guKLguLjguIcg4LiX4Lix4Lia4LiX4Lit4LiHDQor4Lie4Lii4Li44LiHIOC4n+C4seC4geC5gOC4nuC4iuC4ow0KK+C4nuC4ouC4uOC4hyDguKrguLLguKLguLHguJPguKvguKfguLTguIHguKrguLTguJUNCivguJ7guKLguLjguIfguKjguKPguLUg4LiI4Lix4LiZ4LiX4Lij4LmM4Lio4Lij4Li1DQor4Lie4Lii4Li44LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4guC4quC4luC4suC4mQ0KK+C4nuC4ouC4ueC4oyDguKPguLHguIHguILguLLguKcNCivguJ7guKMg4LmE4LiV4Lij4Lij4Lix4LiV4LiZ4Lin4LiH4Lio4LmMDQor4Lie4LijIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4nuC4oyDguK3guLHguKjguKfguJ7guLTguJfguKLguLINCivguJ7guKPguIjguLHguJnguJfguKPguYwg4LiK4Lix4Lii4LmA4LiY4Li14Lii4Lij4Liq4Li44LiX4LiY4Liy4LiZ4Lix4LiZDQor4Lie4Lij4LiI4Li04LiV4LiV4LmMIOC4nuC4o+C4q+C4oeC4muC4o+C4o+C4lOC4suC5guC4iuC4hA0KK+C4nuC4o+C4iuC4meC4gSDguKfguKPguLTguJnguJfguKPguYDguKfguIoNCivguJ7guKPguIrguLHguKIg4LiB4Li04LiI4Lin4Lij4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lie4Lij4LiK4Lix4LiiIOC5gOC4guC4oeC5guC4iuC4hOC4meC4l+C4tQ0KK+C4nuC4o+C4iuC4seC4oiDguIjguLHguJnguJfguJrguLLguKUNCivguJ7guKPguIrguLHguKIg4LmA4LiI4Li14LmI4Lii4Liq4Lit4Liy4LiUDQor4Lie4Lij4LiK4Lix4LiiIOC5gOC4iuC4t+C5iOC4reC4h+C4q+C4peC4tOC4pw0KK+C4nuC4o+C4iuC4seC4oiDguYHguIvguYjguYDguIjguLXguYjguKINCivguJ7guKPguIrguLHguKIg4LmA4LiU4LiK4Liy4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lij4LiK4Lix4LiiIOC5gOC4leC4iuC4sOC4geC4meC4geC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4o+C4iuC4seC4oiDguJfguLjguJXguLTguKLguLLguKDguKPguJPguYwNCivguJ7guKPguIrguLHguKIg4LiZ4Lix4LiZ4LiX4Lin4Li04Lih4LilDQor4Lie4Lij4LiK4Lix4LiiIOC4m+C4o+C4sOC4oOC4suC4geC4o+C4p+C4o+C4geC4uOC4pQ0KK+C4nuC4o+C4iuC4seC4oiDguJ7guKPguJ7guLHguJLguJnguLLguIjguLTguKPguJ7guLHguJnguJjguLQNCivguJ7guKPguIrguLHguKIg4Lie4Li04Lij4Li04Lii4Lin4Li04LiX4LmC4Lii4Lig4Liy4LiqDQor4Lie4Lij4LiK4Lix4LiiIOC4oeC4h+C4hOC4peC4leC4o+C4teC4oeC4suC4qA0KK+C4nuC4o+C4iuC4seC4oiDguKPguLHguJXguJnguYLguIrguJXguLTguJ7guIfguKjguYwNCivguJ7guKPguIrguLHguKIg4Lil4Li14LmJ4LiW4Liy4Lin4LijDQor4Lie4Lij4LiK4Lix4LiiIOC4p+C4meC4suC5guC4o+C4iOC4meC5jA0KK+C4nuC4o+C4iuC4seC4oiDguKfguLXguKPguLDguIHguLTguJXguJXguLQNCivguJ7guKPguIrguLHguKIg4Lio4Li04Lil4Liy4LmC4Lig4LiK4LiZ4LmMDQor4Lie4Lij4LiK4Lix4LiiIOC4quC4tOC4h+C4q+C5jOC4geC4uOC4pQ0KK+C4nuC4o+C4iuC4seC4oiDguKrguLjguKPguLXguKLguYzguIHguKHguKXguIrguLHguKINCivguJ7guKPguIrguLHguKIg4LmA4Lir4Lil4Li34Lit4LiH4LiI4Li04LiV4Lin4Lix4LiS4LiZ4LiyDQor4Lie4Lij4LiK4Lix4LiiIOC4reC4seC4h+C4quC4uOC4o+C4seC4leC4meC5jOC5guC4geC4oeC4pQ0KK+C4nuC4o+C4iuC4seC4oiDguYDguK3guLXguYjguKLguKHguKrguLjguILguKHguIfguITguKUNCivguJ7guKPguJPguKPguIfguITguYwg4Lij4Liw4LiU4Lih4LiX4Lit4LiHDQor4Lie4Lij4LiX4Lin4Li1IOC4reC4mOC4tOC4qOC4tOC4p+C4geC4uOC4pQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguIHguLLguI3guIjguJnguKrguLjguJnguJfguKMNCivguJ7guKPguJfguLTguJ7guKLguYwg4LiC4Lix4LiZ4LiX4Lit4LiHDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4iOC4reC4meC5geC4iOC5ieC4hw0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguYDguIjguKPguLTguI3guIHguLTguIjguIrguLHguKLguIrguJnguLANCivguJ7guKPguJfguLTguJ7guKLguYwg4LiK4Li04LiZ4Lij4Lix4LiV4LiZ4LmMDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguYDguJTguIrguLDguJfguLHguKjguJnguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4LmA4LiV4Lih4Li14Lij4Lix4LiB4Lip4LmMDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4l+C4tOC4nuC4ouC5gOC4quC4oQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguJnguLLguITguJrguLjguJXguKMNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lia4Li44LiT4LmC4Lii4LiX4Lii4Liy4LiZDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4nOC4peC4n+C4seC4geC5geC4n+C4hw0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguJ7guLTguJPguJ7guLTguJ7guLHguJPguJnguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4oeC4teC4l+C4o+C4seC4nuC4ouC5jOC4quC4luC4suC4nuC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKPguLHguJXguJnguKfguLTguYDguIrguLXguKLguKMNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lil4Li04LiC4Li04LiV4LiK4Li14Lin4LiwDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4p+C4iuC4tOC4o+C4suC4meC4uOC4geC4ueC4pQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKfguLTguYDguKjguKnguJ7guIfguKnguYzguJ7guLHguJnguJjguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lio4Li04Lij4Li04LmA4Lit4Li14LmI4Lii4LihDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4quC4suC4o+C4geC4suC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKrguLjguKPguIrguLHguKLguKrguJXguLTguIHguLjguKUNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lir4Lit4Lih4Lil4Lit4LiUDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4reC4seC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4nuC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguK7guKfguJrguJTguLUNCivguJ7guKPguJfguLTguJ7guLIg4Lie4LiT4Li04LiK4Lii4Liy4LiH4LiB4Li54LijDQor4Lie4Lij4LiX4Li04Lig4LiyIOC4l+C4reC4h+C5gOC4guC4teC4ouC4pw0KK+C4nuC4o+C4mOC4tOC4lOC4siDguITguIfguKjguLTguKXguJvguYwNCivguJ7guKPguJnguKDguLIg4Lib4Li04LmI4LiZ4Lij4Lix4LiV4LiZ4LmMDQor4Lie4Lij4LiZ4Li04LiU4LiyIOC4quC4tOC4l+C4mOC4tOC4nuC4o+C4o+C4seC4leC4meC4oeC4k+C4tQ0KK+C4nuC4o+C4meC4uOC4iiDguITguLfguJnguITguIfguJTguLUNCivguJ7guKPguJvguKPguLDguYDguKrguKPguLTguJAg4Liq4Li44Lin4Lij4Lij4LiY4LiZ4Liw4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lie4Lij4Lie4LiI4LiZ4LmMIOC4m+C5iOC4suC4meC5geC4geC5ieC4pw0KK+C4nuC4o+C4nuC4ouC4hyDguITguLnguKvguYzguKrguLjguKfguKPguKPguJMNCivguJ7guKPguJ7guKPguKPguJMg4LiI4Li04LiK4LiK4Li44LiB4Lij4LiI4Li04Lij4Lig4Lix4LiEDQor4Lie4Lij4Lie4Lij4Lij4LiTIOC4kOC4suC4meC4sOC5gOC4iOC4o+C4tOC4jeC4geC4tOC4iA0KK+C4nuC4o+C4nuC4o+C4o+C4kyDguJjguLXguKPguLDguIrguLLguJXguLQNCivguJ7guKPguJ7guKPguKPguJMg4Lie4Lix4LiK4Lij4Lin4Lix4LiS4LiZ4Lie4LiH4Lio4LmMDQor4Lie4Lij4Lie4Lij4Lij4LiTIOC5gOC4ouC5h+C4meC4peC4s+C4ouC4reC4hw0KK+C4nuC4o+C4nuC4o+C4o+C4kyDguKfguLTguIrguI3guLLguYDguJTguIrguLANCivguJ7guKPguJ7guKPguKPguJMg4Liq4Li44LiZ4Liy4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lij4Lie4Lij4Lij4LiT4LmMIOC5hOC4l+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4o+C4nuC4seC4meC4mOC4uOC5jCDguJvguLTguYjguJnguYLguKHguKPguLINCivguJ7guKPguJ7guLTguJ7guLHguJLguJnguYwg4Liq4Lin4Lix4Liq4LiU4Li04LmM4LmA4Lin4LiX4Li04LiZDQor4Lie4Lij4Lie4Li04Lih4LilIOC4iOC4suC4lOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4nuC4o+C4nuC4tOC4oeC4pSDguYHguIvguYjguYDguJrguYkNCivguJ7guKPguJ7guLTguKHguKUg4LiY4Li44Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lij4Lie4Li04Lih4LilIOC4nuC4seC4kuC4meC4suC4ouC4uA0KK+C4nuC4o+C4nuC4tOC4oeC4pSDguKXguK3guK3guIfguKrguLjguJfguJjguLTguYwNCivguJ7guKPguJ7guLTguKHguKUg4Lio4Li04Lil4Lib4Liq4Li34Lia4LmA4LiK4Li34LmJ4LitDQor4Lie4Lij4Lie4Li04Lih4LilIOC5g+C4q+C4oeC5iOC4meC4p+C4pQ0KK+C4nuC4o+C4nuC4tOC4peC4suC4qCDguKjguLjguKDguJnguLLguJnguJnguJfguIrguLHguKINCivguJ7guKPguJ7guLTguKgg4Lit4Liy4Lig4Lij4LiT4LmM4Lio4Li04Lij4Li04Lie4LiH4Lip4LmMDQor4Lie4Lij4Lie4Li54LilIOC4q+C4peC4uOC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4o+C4oeC4k+C4tSDguYTguIrguKLguJrguLjguJXguKMNCivguJ7guKPguKPguJPguIfguLLguKEg4LiB4Liy4Lie4Lii4LmM4LmB4LiB4LmJ4LinDQor4Lie4Lij4Lij4LiT4LiX4Li04Lie4Lii4LmMIOC4h+C4suC4oeC4peC4sOC5gOC4oeC4teC4ouC4lA0KK+C4nuC4o+C4o+C4k+C4l+C4tOC4nuC4ouC5jCDguYTguKfguJfguKLguLLguJnguJnguJfguYwNCivguJ7guKPguKPguJPguJfguLTguJ7guLIg4Lih4Lij4LiB4LiV4Liq4Li04LiZ4LiY4Li44LmMDQor4Lie4Lij4Lij4LiT4LiZ4Lij4LiyIOC4m+C4suC4meC4k+C4o+C4h+C4hOC5jA0KK+C4nuC4o+C4o+C4k+C4meC4tOC4oOC4siDguK3guLjguJTguKHguIjguKPguKPguKLguLINCivguJ7guKPguKPguJPguJ7guLTguKHguKUg4LmB4LiL4LmI4Liu4Lix4LmI4LiZDQor4Lie4Lij4Lij4LiT4Lii4Li44Lie4LiyIOC4ruC5iOC4reC4quC4geC4uOC4pQ0KK+C4nuC4o+C4o+C4k+C4o+C4s+C5hOC4niDguJTguKfguIfguJTguLUNCivguJ7guKPguKPguJPguKfguJTguLUg4Lit4Lix4Lih4Lie4Li44LiKDQor4Lie4Lij4Lij4LiT4Lit4LijIOC4ieC4seC4meC4l+C5guC4o+C4iOC4meC5jA0KK+C4nuC4o+C4o+C4k+C4tOC4geC4siDguIjguLHguJnguJfguKPguYzguYDguJvguYnguLINCivguJ7guKPguKPguJPguLTguKDguLIg4Liq4Li04LiH4Lir4LmM4LmC4LiV4LmA4Lie4LmH4LiK4LijDQor4Lie4Lij4Lij4LiT4Li1IOC5gOC4geC4tOC4lOC5gOC4m+C4teC5iOC4ouC4oQ0KK+C4nuC4o+C4o+C4k+C4tSDguYLguITguJXguKPguLHguIHguKnguLINCivguJ7guKPguKPguJPguLUg4LiI4Li04Lij4Lin4Lio4Li04LiZDQor4Lie4Lij4Lij4LiT4Li1IOC4iuC4t+C5iOC4meC4reC4uOC5hOC4l+C4og0KK+C4nuC4o+C4o+C4k+C4tSDguYHguIvguYjguYLguITguYnguKcNCivguJ7guKPguKPguJPguLUg4LiV4Liy4LiZ4Liw4Lib4Lij4Liw4LiX4Li14Lib4LiB4Li44LilDQor4Lie4Lij4Lij4LiT4Li1IOC4mOC4meC4oOC4suC4meC4meC4l+C5jA0KK+C4nuC4o+C4o+C4k+C4tSDguJrguLHguKfguIrguLjguYjguKENCivguJ7guKPguKPguJPguLUg4Lib4Li54Lij4LiT4Liy4Lih4Lij4LiwDQor4Lie4Lij4Lij4LiT4Li1IOC4nuC4tOC4oeC4peC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4nuC4o+C4o+C4k+C4tSDguKHguJPguLXguIrguLLguJXguLQNCivguJ7guKPguKPguJPguLUg4Lij4Lit4LiH4LmC4Liq4Lig4LiyDQor4Lie4Lij4Lij4LiT4Li1IOC4peC4tOC5ieC4oeC4quC4uOC4mOC4suC5guC4oOC4iuC4meC5jA0KK+C4nuC4o+C4o+C4k+C4tSDguKfguLHguJLguJnguLLguKLguLLguIHguKMNCivguJ7guKPguKPguJPguLUg4Lio4Lij4Li14Lit4LiZ4Li44LiK4Liy4LiVDQor4Lie4Lij4Lij4LiT4Li1IOC4quC4seC4meC4m+C5iOC4suC5geC4geC5ieC4pw0KK+C4nuC4o+C4o+C4k+C4tSDguYDguKrguKHguLLguJfguK3guIcNCivguJ7guKPguKPguJPguLUg4Lit4Lig4Li04LiK4Lix4Lii4LiX4Lin4Li14Liq4Li04LiZDQor4Lie4Lij4Lij4LiT4Li1IOC5gOC4reC4geC4quC4tOC4meC5gOC4quC4o+C4tOC4oQ0KK+C4nuC4o+C4o+C4k+C5g+C4iCDguIjguLHguJnguJfguKPguYzguKrguKfguLHguKrguJTguLTguYwNCivguJ7guKPguKPguKnguJ7guKUg4LiV4Lix4LmJ4LiH4Lii4Liw4Lik4LiX4LiY4Li04LmMDQor4Lie4Lij4Lij4Lix4LiK4LiZ4Li1IOC4iOC5ieC4reC4ouC4nuC4uOC4l+C4mA0KK+C4nuC4o+C4pOC4lOC4tSDguKfguIfguKjguYzguKPguLDguKXguLbguIENCivguJ7guKPguKfguLLguKPguLHguJXguJnguYwg4Liq4LiB4Li44Lil4LmC4LiK4LiV4Li04Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lie4Lij4Lin4Li04LmE4LilIOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4ouC5gOC4nuC4iuC4ow0KK+C4nuC4o+C4qOC4o+C4tSDguIrguKXguLLguKLguJnguJnguLLguKfguLTguJkNCivguJ7guKPguKjguKPguLUg4Lie4Li04Lih4Lie4LiB4Lij4LiT4LmMDQor4Lie4Lij4Lio4Lij4Li1IOC5geC4quC4h+C4ieC4p+C4tQ0KK+C4nuC4o+C4qOC4seC4geC4lOC4tOC5jCDguIjguLPguJvguLLguJfguK3guIcNCivguJ7guKPguKjguLHguIHguJTguLTguYwg4LiX4Lix4Lie4Liq4Li04LiX4LiY4Li04LmMDQor4Lie4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4tOC4l+C4seC4geC4qeC5jOC4meC4o+C4suC4mOC4o+C4o+C4oQ0KK+C4nuC4o+C4qOC4seC4geC4lOC4tOC5jCDguKfguLTguIjguLTguJXguKPguYLguKrguKDguJMNCivguJ7guKPguKjguLHguIHguJTguLTguYwg4LmA4Lir4Lil4LmI4Liy4LiV4Lij4LiH4LiI4Lij4Li04LiHDQor4Lie4Lij4Lio4Li04Lij4Li0IOC4nOC4suC4quC4uOC4guC4geC4suC4meC4meC4l+C5jA0KK+C4nuC4o+C4qOC4uOC4peC4tSDguIjguLHguJnguJfguKPguYzguKjguLTguKPguLTguKjguKPguLUNCivguJ7guKPguKrguKfguKPguKPguITguYwg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lie4Lij4Liq4Lin4Lij4Lij4LiE4LmMIOC4qOC4seC4geC4lOC4tOC5jOC4mOC4meC4p+C4seC4kuC4meC5jA0KK+C4nuC4o+C4quC4tOC4l+C4mOC4tOC5jCDguK3guLLguKjguLTguKPguJ7guIfguKjguYzguJ7guLTguKjguLTguKnguJDguYwNCivguJ7guKPguKrguLjguIIg4Lio4Li04Lij4Li04Lin4LiH4Lio4LmMDQor4Lie4Lij4Liq4Li44Lij4Li14Lii4LmMIOC5gOC4nuC4tOC4geC4iOC4ow0KK+C4nuC4o+C4q+C4oeC4nuC4tOC4qCDguJXguLHguYnguIfguYDguKXguLTguKjguKrguLHguKHguJ7guLHguJnguJjguYwNCivguJ7guKPguK3guLPguJ7guLHguJkg4LiK4Lin4Lil4Li04LiV4LiZ4Li04LiY4Li04LiB4Li44LilDQor4Lie4Lij4LmJ4Lit4LihIOC4reC4tOC4meC4l+C4o+C5jOC5guC4lQ0KK+C4nuC4o+C5ieC4reC4oeC4qOC4seC4geC4lOC4tOC5jCDguJMg4Liq4LiH4LiC4Lil4LiyDQor4Lie4Lij4Li04LmJ4LiHIOC5gOC4luC4suC4p+C5jOC5gOC4nuC5h+C4hw0KK+C4nuC4o+C4tOC5ieC4oeC5gOC4nuC4o+C4siDguYLguJnguYnguJXguKjguLTguKPguLQNCivguJ7guKPguYDguJfguJ4g4LiB4LmI4Lit4LmA4Lil4Li04Lio4Lij4Lix4Lio4Lih4Li1DQor4Lie4Lij4LmA4LiX4LieIOC4ieC4seC4leC4o+C4qOC4tOC4peC4m+C5jOC4iuC4seC4og0KK+C4nuC4o+C5gOC4l+C4niDguJXguLTguIfguJ7guLTguJfguLHguIHguKnguYzguKrguIHguLjguKUNCivguJ7guKPguYDguJfguJ4g4Lib4Lij4Liy4LiH4LiE4LmM4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMDQor4Lie4Lij4LmA4LiX4LieIOC4oeC4q+C4seC4mOC4meC4quC4geC4uOC4pQ0KK+C4nuC4o+C5gOC4l+C4niDguKfguKPguIHguLjguKXguJ7guLTguJfguLHguIHguKnguYwNCivguJ7guKPguYDguJfguJ4g4Liq4Li44LiX4LiY4Li04Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lie4LiH4Lio4LmMDQor4Lie4Lij4LmA4LiZ4LiV4LijIOC5geC4ouC5ieC4oeC4h+C4suC4oeC5gOC4q+C4peC4t+C4rQ0KK+C4nuC4o+C5gOC4nuC5h+C4jSDguIrguLPguJnguLLguI3guIHguLTguIjguKfguJnguLTguIoNCivguJ7guKPguYDguJ7guYfguI0g4LiX4Lix4Lia4LiZ4LmJ4Lit4LiiDQor4Lie4Lij4LmA4Lie4LmH4LiNIOC4oeC4q+C4suC4hOC4uOC4k+C5guC4iuC4leC4tA0KK+C4nuC4o+C5gOC4nuC5h+C4jSDguKjguLXguJXguLDguIjguLTguJXguJXguYwNCivguJ7guKPguYDguJ7guYfguI0g4Lit4Li04LiH4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmM4Liq4LiB4Li44LilDQor4Lie4Lij4LmA4Lil4Li04LioIOC4o+C4seC4geC4quC4tOC4kA0KK+C4nuC4o+C5g+C4iCDguK3guIfguKjguYzguKjguLTguKPguLTguIHguLjguKUNCivguJ7guKTguJLguLTguKfguKPguKPguJMg4Liq4Lih4Lia4Li44LiNDQor4Lie4LilIOC4geC4o+C4sOC4leC5iOC4suC4ouC5guC4nuC4mOC4tOC5jA0KK+C4nuC4pSDguJ7guKXguKPguLHguJXguJnguYwNCivguJ7guKUg4Lit4Liy4LiK4Li14Lin4LiwDQor4Lie4Lil4LiK4Lix4LiiIOC4quC5ieC4oeC5gOC4guC4teC4ouC4p+C4q+C4p+C4suC4mQ0KK+C4nuC4peC4oeC4tOC4leC4oyDguJ7guLnguKXguKrguKfguLHguKrguJTguLTguYwNCivguJ7guKXguKjguKPguLUg4LiZ4Li04Lij4Lix4LiZ4LiU4LijDQor4Lie4Lil4Liq4Li04LiZ4LiY4Li44LmMIOC4guC4peC4tOC4muC5hOC4q+C4oeC4l+C4reC4hw0KK+C4nuC4peC4reC4ouC5hOC4nuC4keC4ueC4o+C4ouC5jCDguIrguLLguJXguLTguJvguKPguLDguYDguKrguKPguLTguJANCivguJ7guKXguLLguIHguKMg4Lir4LmI4Lin4LiH4LiB4Lil4LiI4Lix4LiB4Lij4LmMDQor4Lie4Lil4LmA4LiU4LiKIOC4p+C4o+C4ieC4seC4leC4ow0KK+C4nuC4p+C4hyDguJvguLDguIHguKXguLLguIcNCivguJ7guKfguIfguIrguKHguJnguLLguJYg4LiI4Lij4Li04Lii4Liw4LiI4Li04LiZ4LiU4LiyDQor4Lie4Lin4LiH4LiX4Lit4LiHIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4p+C4h+C4l+C4reC4hyDguKrguKPguLDguKrguKENCivguJ7guKfguIfguJfguLTguJ7guKLguYwg4Lih4Li14Liq4Li44LiCDQor4Lie4Lin4LiH4Lic4LiB4LiyIOC4hOC4h+C4reC4uOC4l+C4seC4ouC4geC4uOC4pQ0KK+C4nuC4p+C4h+C4nuC4ouC4reC4oSDguIfguLLguKHguKXguLHguIHguKnguJPguYwNCivguJ7guKfguIfguJ7guLHguJnguJjguYwg4LiB4Lik4Lip4LiT4LiY4Lij4LiT4Li04LioDQor4Lie4Lin4LiH4Lij4Lix4LiV4LiZ4LmMIOC4luC4suC4p+C4o+C4o+C4seC4leC4meC5jA0KK+C4nuC4p+C4h+C4p+C4tOC5hOC4pSDguIjguLHguJnguJfguKfguIfguKjguYwNCivguJ7guKfguIfguYDguJ7guIrguKMg4LiK4Lix4Lii4LiB4Li44LilDQor4Lie4Lin4LiH4LmA4Lie4LiK4LijIOC4reC4tOC4meC4leC5iuC4sOC4p+C4h+C4hOC5jA0KK+C4nuC4p+C4h+C5gOC4nuC5h+C4jSDguIjguLHguYjguJnguYDguJ7guYfguIrguKMNCivguJ7guKfguIfguYDguJ7guYfguI0g4Lin4Li04Lia4Li54Lil4Lii4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lie4Lin4LiH4LmB4LiB4LmJ4LinIOC4nuC4tOC4oeC4nuC4quC4uOC4lQ0KK+C4nuC4quC4tOC4qeC4kOC5jCDguJXguLjguKPguIfguITguYzguKrguKHguJrguLnguKPguJPguYwNCivguJ7guK3guJTguLUg4LiK4Lix4Lii4LmA4Lin4Lis4Li4DQor4Lie4Lit4LilIOC4o+C4ueC4lOC4reC4peC5jOC4nw0KK+C4nuC4sOC4iOC4uOC4k+C4k+C5jCDguJXguLLguKHguJvguKPguLDguJfguLXguJsNCivguJ7guLDguYDguKLguLLguKfguYwg4LmC4LiJ4Lih4LiH4Liy4LihDQor4Lie4Liw4LmA4Lii4Liy4Lin4LmMIOC4oeC4suC4peC4suC5gOC4p+C4ig0KK+C4nuC4sOC5gOC4ouC4teC4oiDguYHguIjguYjguKHguIHguKPguLDguIjguYjguLLguIcNCivguJ7guLHguIHguJXguKPguYzguKjguLTguKPguLQg4LiK4Li54Lin4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Lix4LiK4LiT4Li1IOC4iuC4seC5ieC4meC4nuC4o+C4oOC4seC4geC4lOC4tQ0KK+C4nuC4seC4iuC4meC4tSDguITguLjguJPguYHguJ4NCivguJ7guLHguIrguJnguLUg4LiZ4Liy4LiW4Lib4Lij4Liw4LiK4LiyDQor4Lie4Lix4LiK4LiZ4Li1IOC4p+C4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4nuC4seC4iuC4meC4teC4ouC5jCDguJrguLjguI3guIHguKPguJPguYwNCivguJ7guLHguIrguKPguIrguLHguKIg4LiB4Li44Lil4Lir4Lit4Lih4LmA4LiZ4Li14Lii4LihDQor4Lie4Lix4LiK4Lij4Lix4LiV4LiZ4LmMIOC5geC4i+C5iOC5guC4q+C4peC5iA0KK+C4nuC4seC4iuC4o+C4siDguIjguLTguJXguJXguKDguLHguJfguKPguYLguKPguIjguJnguYwNCivguJ7guLHguIrguKPguLIg4LmB4LiV4LiH4LiZ4Liy4LiEDQor4Lie4Lix4LiK4Lij4LiyIOC4m+C4suC4meC5gOC4quC4oeC4qOC4o+C4tQ0KK+C4nuC4seC4iuC4o+C4siDguKHguLXguJfguKPguLHguJ7guKLguYwNCivguJ7guLHguIrguKPguLIg4Lio4Li04Lin4Li04Lil4Lix4LiiDQor4Lie4Lix4LiK4Lij4LiyIOC4reC4tOC4h+C4reC4o+C4p+C4tOC4iOC4tOC4leC4ow0KK+C4nuC4seC4iuC4o+C4suC4oOC4o+C4k+C5jCDguIrguYjguLLguIfguIrguLjguJoNCivguJ7guLHguIrguKPguLLguKDguKPguJPguYwg4Lin4LiH4Lio4LmM4Lih4Lix4LmI4LiZ4LiB4LiV4Lix4LiN4LiN4Li5DQor4Lie4Lix4LiK4Lij4Liy4Lin4LiU4Li1IOC5geC4nuC4o+C4seC4leC4geC4uOC4pQ0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguIHguLLguKPguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4LiI4Lix4LiZ4LiX4Lij4Li04LiBDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC5geC4i+C5iOC4iOC4tOC4pw0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguYLguJXguYrguLDguKfguJnguLTguIrguKPguLHguIHguKnguLINCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4Lib4Lij4Li14LiU4Li14Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC5guC4nuC4mOC4tOC5jOC4reC5iOC4reC4mQ0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguKPguLLguKvguLjguKXguJvguLLguJkNCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4Lio4Lij4Li14LiK4Liw4Lia4LiyDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4uOC4lOC5g+C4iA0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguK3guLHguKjguKfguJnguLTguIENCivguJ7guLHguIrguKPguLUg4LmA4LiB4LiV4Li44Lir4Lit4LihDQor4Lie4Lix4LiK4Lij4Li1IOC4iOC4seC4meC4l+C4o+C4lOC4suC4p+C4seC4peC4ouC5jA0KK+C4nuC4seC4iuC4o+C4tSDguIrguLnguIjguLTguKPguKfguIfguKjguYwNCivguJ7guLHguIrguKPguLUg4LiV4Lix4LmJ4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Lie4Lix4LiK4Lij4Li1IOC4meC4o+C4quC4tOC4h+C4q+C5jA0KK+C4nuC4seC4iuC4o+C4tSDguJvguKPguLTguJvguLjguKPguJPguLANCivguJ7guLHguIrguKPguLUg4Lie4Lix4LiZ4LiY4Li44Lih4LiI4Li04LiZ4LiU4LiyDQor4Lie4Lix4LiK4Lij4Li1IOC4oeC4suC4geC4geC4o+C4seC4lA0KK+C4nuC4seC4iuC4o+C4tSDguKXguLTguKHguJvguKDguLLguJ7guLHguJnguJjguLjguYwNCivguJ7guLHguIrguKPguLUg4Lio4Lij4Li14LiB4Lij4Liw4LiI4Liy4LiiDQor4Lie4Lix4LiK4Lij4Li1IOC4quC4p+C5iOC4suC4h+C4nuC4seC4meC4mOC4uOC5jA0KK+C4nuC4seC4iuC4o+C4tSDguKrguLjguKfguJ7guKPguKjguLTguKXguJvguYwNCivguJ7guLHguIrguKPguLUg4Lit4Lij4Lix4LiN4LiX4Lij4Lin4Liy4LiZ4Li04LiKDQor4Lie4Lix4LiK4Lij4Li14Lie4LijIOC4quC4uOC4guC5guC4quC4oeC4meC4seC4qg0KK+C4nuC4seC4iuC4o+C4teC4ouC5jCDguKrguKHguYDguIjguKPguLTguI0NCivguJ7guLHguJLguJPguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lie4Lix4LiS4LiZ4Lie4LiH4Lio4LmMIOC4quC4uOC4guC5guC4geC4qeC4sg0KK+C4nuC4seC4kuC4meC4p+C4h+C4qeC5jCDguKfguLLguJnguLTguIoNCivguJ7guLHguJLguJnguLDguIrguLHguKIg4LmD4Liq4Liq4Lin4LmI4Liy4LiH4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lix4LiS4LiZ4LiyIOC4l+C4tOC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4seC4kuC4meC4siDguKHguLXguKjguLjguIINCivguJ7guLHguJLguJnguLIg4Liq4Li44Lih4Liy4Lil4Li1DQor4Lie4Lix4LiS4LiZ4Li1IOC4muC4uOC4jeC4l+C4p+C4tQ0KK+C4nuC4seC4kuC4meC5jCDguJ7guKXguKDguLHguJfguKPguJ7guLTguIjguLLguKPguJPguYwNCivguJ7guLHguJQg4LmC4Lie4LiY4Li04LmM4Liq4Lij4Liw4LiE4Li5DQor4Lie4Lix4LiX4LiY4Lii4LiyIOC4meC4tOC4o+C4sOC4oeC4pQ0KK+C4nuC4seC4l+C4ouC4siDguJ7guLTguKHguJ7guYzguKrguLDguK3guLLguJQNCivguJ7guLHguJkg4Lic4Lil4LmA4LiI4Lij4Li04LiNDQor4Lie4Lix4LiZ4LiX4Li04Lie4LiyIOC4iOC4seC4meC4l+C4o+C4p+C4o+C4o+C4k+C4sA0KK+C4nuC4seC4meC4l+C4tOC4nuC4siDguKrguLjguILguJvguKPguLDguYTguJ7guJ7guLHguJLguJnguYwNCivguJ7guLHguJnguJjguYzguJfguLTguJ7guKLguYwg4LmA4LiZ4LiV4Lij4Lij4Lix4LiH4Lip4Li1DQor4Lie4Lix4LiZ4LiY4Lin4Li04LiX4LiY4Li04LmMIOC5g+C4iOC4i+C4t+C5iOC4reC4geC4uOC4pQ0KK+C4nuC4seC4meC4mOC5jOC4qOC4seC4geC4lOC4tOC5jCDguYDguKLguYfguJnguKrguIHguLjguKXguKrguLjguIINCivguJ7guLHguJnguJjguLTguKDguLIg4Lic4Lil4Lig4Liy4Lip4Li1DQor4Lie4Lix4LiZ4LiY4Li44LmM4LiX4Li04Lie4Lii4LmMIOC4quC4suC4ouC4quC4uOC4meC4l+C4ow0KK+C4nuC4seC4meC4mOC4uOC5jOC4qOC4seC4geC4lOC4tOC5jCDguKrguKPguYnguK3guKLguITguLMNCivguJ7guLHguJnguJjguYzguYDguJfguJ4g4Lih4Liy4LiZ4Liw4LmA4LiB4Li14Lii4Lij4LiV4Li04LiV4Lij4Liw4LiB4Li54LilDQor4Lie4Lix4LiZ4Lib4Li1IOC4o+C4seC4leC4meC4m+C4o+C4sOC4oOC4sg0KK+C4nuC4seC4meC5gOC4oOC4siDguKHguLTguJnguYLguJQNCivguJ7guLHguKXguKXguKAg4LiY4LiZ4Liw4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lie4Lix4Lil4Lil4LigIOC4quC4p+C4meC5hOC4nuC4o+C4tOC4meC4l+C4o+C5jA0KK+C4nuC4seC4pyDguJTguLXguJvguKPguLDguYDguKrguKPguLTguJANCivguJ7guLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4LiX4Li14LmI4Lii4LiHDQor4Lie4Liy4LiT4Li04LiKIOC4oOC4seC4geC4leC4o+C5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4suC4k+C4tSDguJrguLPguYDguJ7guYfguI3guJrguLjguJPguKLguYwNCivguJ7guLLguJPguLUg4Liq4Li44LiC4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lie4Liy4LiZ4Li04LiKIOC4iOC4tOC4leC4o+C5geC4iOC5ieC4hw0KK+C4nuC4suC4meC4tOC4lSDguKjguKPguLXguKrguLjguIHguYPguKoNCivguJ7guLLguKLguLHguJ4g4LmA4LiK4Li34LmJ4Lit4Liq4Li44Lin4Lij4Lij4LiTDQor4Lie4Liy4Lij4LiyIOC5gOC4reC4teC5iOC4ouC4oeC4oeC4sOC5guC4meC4iuC4jeC5jA0KK+C4nuC4suC4quC4uOC4giDguJXguLHguYnguIfguJXguKPguLHguKrguJjguKPguKPguKENCivguJ7guLTguIHguLjguKUg4LmA4LiI4Lij4Li04LiN4Lin4Lix4LiiDQor4Lie4Li04LiB4Li44LilIOC4meC5ieC4reC4ouC4nOC4suC4hw0KK+C4nuC4tOC4geC4uOC4pSDguKHguYLguJnguKDguLTguI3guYLguI3guKDguLTguI3guI3guLANCivguJ7guLTguIHguLjguKUg4Liq4Liy4Lij4LiwDQor4Lie4Li04LiH4LiE4LmM4Lio4Li04Lij4Li0IOC4quC4uOC4meC4l+C4o+C4iuC4suC4leC4tA0KK+C4nuC4tOC4iOC4tOC4leC4oyDguYDguIjguKPguLTguI3guJfguKPguLHguJ7guKLguYwNCivguJ7guLTguIjguLTguJXguKPguLIg4LiK4LiH4Lix4LiUDQor4Lie4Li04LiK4LiN4LmM4LiZ4Lij4Li1IOC4quC4seC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4nuC4tOC4iuC4jeC4suC4k+C4tSDguYDguKXguK3guYDguKXguLTguKjguIHguLjguKUNCivguJ7guLTguIrguLHguKIg4LiB4Lik4Lip4LiO4Liy4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lie4Li04LiK4Lix4LiiIOC5gOC4guC4oeC4l+C5guC4o+C4meC4meC4l+C5jA0KK+C4nuC4tOC4iuC4seC4oiDguIjguLPguJvguLLguIfguLLguKENCivguJ7guLTguIrguLHguKIg4LiK4Lii4Liq4LiU4Lih4Lig4LmMDQor4Lie4Li04LiK4Lix4LiiIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4nuC4tOC4iuC4seC4oiDguJXguLHguJnguJXguLTguJnguKfguLDguIrguLHguKINCivguJ7guLTguIrguLHguKIg4LmB4LiX4LiZ4Lib4Lij4Liw4Lii4Li54LijDQor4Lie4Li04LiK4Lix4LiiIOC4muC4seC4p+C4oeC4suC4qA0KK+C4nuC4tOC4iuC4seC4oiDguYDguJvguKPguKHguJfguK3guIcNCivguJ7guLTguIrguLHguKIg4Lie4Li04Lij4Li04Lii4Liw4LmA4Liq4LiW4Li14Lii4Lij4LiB4Li44LilDQor4Lie4Li04LiK4Lix4LiiIOC4oeC4tOC5iOC4meC4quC4uOC4gg0KK+C4nuC4tOC4iuC4seC4oiDguKPguLjguYnguIfguJfguLLguJrguJnguKDguLINCivguJ7guLTguIrguLHguKIg4Lin4LiH4Lio4LmM4LiB4Li44Lio4Lil4Liq4Li04Lij4Li0DQor4Lie4Li04LiK4Lix4LiiIOC4p+C4uOC4kuC4tOC4iOC4s+C4meC4h+C4hOC5jA0KK+C4nuC4tOC4iuC4seC4oiDguKrguJbguLLguKfguKPguKHguJPguLUNCivguJ7guLTguIrguLHguKIg4Liq4Li44LiZ4LiX4Lij4Lit4Liz4Lie4LilDQor4Lie4Li04LiK4Lix4LiiIOC4q+C4suC4jeC4k+C4o+C4h+C4hOC5jOC4pOC4l+C4mOC4tOC5jA0KK+C4nuC4tOC4iuC4seC4oiDguK3guLTguJnguJfguKPguJ7guLTguJ7guLHguJLguJnguYwNCivguJ7guLTguIrguLIg4Lin4Lix4LiS4LiZ4Liw4LiY4Liy4Lij4Li1DQor4Lie4Li04LiK4Li04LiVIOC4geC4o+C4suC4meC5gOC4peC4tOC4qA0KK+C4nuC4tOC4iuC4tOC4lSDguIjguLjguKXguKTguIHguKnguYwNCivguJ7guLTguIrguLTguJUg4LiV4Lix4LmJ4LiH4Liq4Lir4LmE4Lih4LiV4Lij4Li1DQor4Lie4Li04LiK4Li04LiVIOC4muC4uOC4k+C4ouC5gOC4quC4meC4sg0KK+C4nuC4tOC4iuC4tOC4lSDguKDguLHguIHguJTguLTguYzguYHguIjguYjguKHguYPguKoNCivguJ7guLTguIrguLTguJUg4Lin4Lix4LiK4Lij4Liy4LiU4Li04Lil4LiB4LiB4Li44LilDQor4Lie4Li04LiK4Li04LiVIOC4quC4tOC4o+C4tOC4p+C4uOC4kuC4tOC4iOC4o+C4uOC4h+C4iOC4tOC4leC4leC4tOC5jA0KK+C4nuC4tOC4iuC4tOC4lSDguYDguK3guLXguYjguKLguKHguKXguLDguK3guK0NCivguJ7guLTguJHguLnguKPguKLguYwg4LiV4Lix4LiZ4LiV4Li04Lit4Lih4Lij4Lie4LiH4Lip4LmMDQor4Lie4Li04LiT4LiX4Li04Lie4Lii4LmMIOC4muC4o+C4tOC4muC4ueC4o+C4k+C5jOC4quC4uOC4gg0KK+C4nuC4tOC4k+C4quC4o+C4p+C4hyDguKfguIfguKjguYzguKfguLTguKXguLHguKINCivguJ7guLTguJfguKLguLIg4LiE4Li44LiT4Liy4Lin4Li04Lij4Li04Lii4Liw4Liq4Li04Lij4Li0DQor4Lie4Li04LiX4Lii4LiyIOC4meC4uOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4tOC4l+C4ouC4siDguYHguKLguYnguKHguKjguKPguKfguKUNCivguJ7guLTguJfguKLguLIg4Liq4Li44LiC4LmD4LiI4LmA4LiI4Lij4Li04LiN4LmA4Lin4LiKDQor4Lie4Li04LiX4Lii4LmMIOC5gOC4qOC4o+C4qeC4kOC4nuC4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4nuC4tOC4l+C4seC4geC4qeC5jCDguIjguLHguJnguJfguKPguYzguKvguK3guKENCivguJ7guLTguJfguLHguIHguKnguYwg4LiV4Lix4LmJ4LiH4LiK4Li54LiX4Lin4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lie4Li04LiX4Lix4LiB4Lip4LmMIOC4m+C4o+C4suC4lOC5gOC4m+C4o+C4t+C5iOC4reC4h+C5gOC4p+C4l+C4ouC5jA0KK+C4nuC4tOC4l+C4seC4geC4qeC5jCDguYDguKHguIbguKrguIHguLjguKXguKPguLHguJXguJnguYwNCivguJ7guLTguJfguLHguIHguKnguYwg4Lio4Lij4Li14LiV4Liw4Lin4Lix4LiZDQor4Lie4Li04LiX4Lix4LiB4Lip4LmMIOC4q+C4p+C4seC4h+C4qOC4tOC4o+C4tOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4nuC4tOC4mOC4suC4mSDguITguLjguJPguJ7guKPguKjguKPguLXguKDguLTguKPguKHguKLguYwNCivguJ7guLTguJkg4Liq4Lih4Liy4LiY4Li0DQor4Lie4Li04LiZ4Lix4LiiIOC4iOC4h+C4qOC4tOC4o+C4tOC4o+C4seC4geC4qeC5jA0KK+C4nuC4tOC4meC4tOC4iCDguIHguLLguJnguJXguLTguIHguLjguKUNCivguJ7guLTguJnguLTguIgg4LmA4LiI4Lij4Li04LiN4Lin4Li04Lin4Lix4LiS4LiZ4LiB4Li44LilDQor4Lie4Li04LiZ4Li04LiIIOC4leC4o+C4tOC4geC4suC4o+C4iuC4reC4mg0KK+C4nuC4tOC4meC4tOC4iCDguJrguLjguI3guKfguLTguYDguKjguKkNCivguJ7guLTguJnguLTguIgg4Lig4LiE4Liq4LiB4Li44LilDQor4Lie4Li04LiZ4Li04LiIIOC4p+C5iOC4reC4h+C5gOC4oeC4l+C4tOC4meC4tQ0KK+C4nuC4tOC4meC4tOC4iCDguKrguLjguJnguLLguIHguKMNCivguJ7guLTguJnguLTguIjguYDguKrguJnguLLguIHguLLguKMg4Lie4LitIOC4nuC4o+C4sA0KK+C4nuC4tOC4meC4tOC4leC4qOC4seC4geC4lOC4tOC5jCDguK3guYjguK3guIfguIjguKPguLnguI0NCivguJ7guLTguJrguLnguKUg4Lit4Li04LiZ4LiX4Lij4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lie4Li04Lia4Li54Lil4Lii4LmMIOC5hOC4l+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4tOC4muC4ueC4peC4ouC5jCDguKfguLTguYDguIrguLXguKLguKPguKfguKPguKPguJMNCivguJ7guLTguJ7guLHguJLguJnguJ7guIfguKnguYwg4Lij4Lix4LiB4Lii4Li44LiV4Li04LiY4Lij4Lij4LihDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4iOC4h+C5gOC4iOC4o+C4tOC4jeC4geC4oeC4pQ0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguYDguIrguLXguYjguKLguKfguKvguLHguJXguJbguYzguJ7guIfguKnguYwNCivguJ7guLTguJ7guLHguJLguJnguYwg4LiX4Lit4LiH4Lio4Lij4Li14LiZ4Liy4LiEDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4m+C4peC4t+C5ieC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguJ7guLTguIrguLTguJXguJnguKDguLLguIHguLjguKUNCivguJ7guLTguJ7guLHguJLguJnguYwg4Lij4Lin4Lii4LmB4LiX4LmJDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4p+C4h+C4qOC4suC5guC4o+C4iOC4meC5jA0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguKjguLjguKDguKrguLTguIfguKvguYzguKjguLTguKPguLTguJvguKPguLXguIrguLINCivguJ7guLTguJ7guLHguJLguJnguYwg4Lir4LiX4Lix4Lii4Lin4Liq4Li14Lin4LiH4Lio4LmMDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC5guC4reC4oeC4nuC4o+C4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4nuC4tOC4oOC4niDguIjguLHguJnguJfguKPguYLguKrguKDguLLguITguKLguYwNCivguJ7guLTguKDguJ4g4LmA4Lil4Liy4LiE4LizDQor4Lie4Li04Lig4Liy4LiU4LiyIOC5gOC4iOC4o+C4tOC4jeC4iOC4seC4meC4l+C4o+C5jA0KK+C4nuC4tOC4oeC4nuC5jOC4geC4suC4jeC4iOC4meC5jCDguKvguKXguYjguK3guKjguLTguKPguLTguYTguJ7guJrguLnguKXguKLguYwNCivguJ7guLTguKHguJ7guYzguJvguKPguLDguYTguJ4g4Lia4Li44LiT4Lii4Liw4Lib4Lij4Liw4Lig4Li54LiV4Li0DQor4Lie4Li04Lih4Lie4LmM4Lie4LijIOC4oeC4k+C4teC4o+C4seC4leC4meC5jA0KK+C4nuC4tOC4oeC4nuC5jOC4nuC4siDguJfguLTguJ7guKfguLHguKXguKLguYwNCivguJ7guLTguKHguJ7guKMg4Lie4Li04Lih4LmA4Lig4Liy4Lin4LmMDQor4Lie4Li04Lih4Lie4Lij4Lij4LiTIOC5gOC4m+C4o+C4oeC4mOC4suC4lOC4sg0KK+C4nuC4tOC4oeC4nuC5jOC4p+C4seC4peC4ouC5jCDguKrguLjguKfguKPguKPguJPguJvguKPguLDguIHguKMNCivguJ7guLTguKHguJ7guLIg4LiH4Liy4Lih4LmA4LiH4Li04LiZDQor4Lie4Li04Lih4Lie4LiyIOC4nuC4h+C4qOC4geC4o+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4nuC4tOC4oeC4nuC4siDguKvguJnguLnguYHguIHguYnguKcNCivguJ7guLTguKHguJ7guLTguKgg4Lin4Li44LiS4Li04LiY4Lij4Lij4Lih4Liy4Lig4Lij4LiT4LmMDQor4Lie4Li04Lih4Lie4LmM4LmD4LiIIOC4meC4s+C4quC4uOC4p+C4tOC4oeC4peC4geC4ueC4pQ0KK+C4nuC4tOC4oeC4nuC5jOC5g+C4iCDguKvguK3guKHguIjguLHguJnguJfguKPguYwNCivguJ7guLTguKHguJ7guYwg4Lin4LiH4Lip4LmM4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lie4Li04Lih4LilIOC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4nuC4tOC4oeC4pSDguJvguLXguJXguLTguKLguLINCivguJ7guLTguKHguKUg4Lin4Li14Lij4Lin4Lix4LiS4LiZ4LmM4Lie4LiH4Lio4LmMDQor4Lie4Li04Lih4Lil4Lie4LijIOC4oeC4q+C4seC4mOC4meC4suC4geC4ow0KK+C4nuC4tOC4oeC4peC4nuC4o+C4o+C4kyDguYDguKvguKXguLXguYjguKLguKHguKHguLjguIHguJTguLINCivguJ7guLTguKHguKXguKPguLHguJXguJnguYwg4Lit4Lix4LiH4LiB4Li54Lij4Liq4Li04LiX4LiY4Li04LmMDQor4Lie4Li04Lih4Liy4LiZ4Lih4Liy4LioIOC4quC4luC4tOC4leC4ouC5jOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4nuC4tOC4o+C4ouC4uOC4l+C4mCDguYLguJfguKrguLnguIfguYDguJnguLTguJkNCivguJ7guLTguKPguLTguKLguLAg4LiB4Li04LmI4LiH4LiC4LiI4Li1DQor4Lie4Li04Lij4Li44LiTIOC5gOC4iOC4o+C4tOC4jeC4geC4uOC4pQ0KK+C4nuC4tOC4o+C4uOC4k+C4o+C4seC4leC4meC5jCDguKrguLjguIfguKrguLjguKfguKPguKPguJMNCivguJ7guLTguKfguLHguJLguJnguYwg4Lin4Li04Lig4Liy4Lin4Li14Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Lie4Li04Lio4LiT4Li4IOC5gOC4iOC4o+C4tOC4jeC4meC4uOC4geC4ueC4pQ0KK+C4nuC4tOC4qOC4oeC4oyDguJbguLTguKPguIjguLTguJXguJXguYzguKrguLTguKPguLQNCivguJ7guLTguKjguKHguLHguKIg4LmA4LiE4Li14Lii4LiH4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Li04Lio4Lih4Lix4LiiIOC5hOC4iuC4ouC4p+C4seC4kuC4meC5jA0KK+C4nuC4tOC4qOC4oeC4seC4oiDguJnguJ7guKPguLHguJXguJnguYzguJrguLHguI3guJHguLTguJUNCivguJ7guLTguKjguKHguLHguKIg4Lie4Lix4LiS4LiZ4LiyDQor4Lie4Li04Lio4Lih4Lix4LiiIOC5gOC4peC4suC4q+C5jOC4q+C4tOC4o+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4nuC4tOC4qOC4oeC4seC4oiDguKrguLTguKPguLTguIrguLnguJXguLTguKfguIfguKjguYwNCivguJ7guLTguKjguKHguLHguKIg4Lit4Li04LiZ4LiX4Lij4LmM4Lij4LiI4LiZ4LiyDQor4Lie4Li04Lio4Lin4LiHIOC4oeC4teC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4tOC4qOC4quC4oeC4seC4oiDguYDguK3guIHguK3guLjguYjguJkNCivguJ7guLTguKjguLLguKUg4LiJ4Liy4Lii4Liy4LiB4LilDQor4Lie4Li04Lio4Liy4LilIOC4oeC5guC4meC4peC4teC4q+C4geC4uOC4pQ0KK+C4nuC4tOC4qOC4suC4pSDguYLguK7guJXguKPguLDguIHguLnguKUNCivguJ7guLTguKjguLTguKnguJAg4Lit4Lix4LiB4Lip4Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Li04Lio4Li04Lip4LiQ4LmMIOC4l+C4reC4h+C4oeC4seC5iOC4meC4hOC4hw0KK+C4nuC4tOC4qOC4tOC4qeC4kOC5jCDguKPguIfguITguKfguLTguKXguLTguJUNCivguJ7guLTguKjguLTguKnguJDguYwg4LmA4Lit4LiB4Lib4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4Lie4Li04Lio4LmA4Liq4LiZ4LmI4Lir4LmMIOC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C4nuC4tOC4qeC4k+C4uCDguYTguJXguKPguJvguLTguYjguJnguYDguJ7guYfguIrguKMNCivguJ7guLTguKnguJPguLgg4Lih4Liy4Lil4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Li04Lip4LiT4Li4IOC5geC4quC4h+C4quC4suC4hOC4ow0KK+C4nuC4tOC4quC4meC4mOC4tOC5jCDguKjguKPguLXguKDguLHguJfguKPguYLguIrguJXguLQNCivguJ7guLTguKrguKHguLHguKIg4LiZ4Li44LiY4Li04Lij4LiH4LiE4LmMDQor4Lie4Li04Liq4Lih4Lix4LiiIOC4q+C4peC5ieC4suC4peC5ieC4sw0KK+C4nuC4tOC4quC4seC4meC4leC5jCDguYLguK3guKrguLjguKfguKPguKPguJMNCivguJ7guLTguKrguLTguI/guJAg4Lit4Lix4Lio4Lin4LmA4Lie4LiK4Lij4Lik4LiB4Lip4LmMDQor4Lie4Li04Liq4Li04LiQIOC4iOC4seC4meC4l+C4o+C5jOC4iOC4tOC4o+C4teC4ouC5jA0KK+C4nuC4tOC4quC4tOC4kCDguJ7guKPguKfguLHguJLguJnguKHguIfguITguKUNCivguJ7guLTguKrguLTguJAg4Liq4Lij4LmJ4Liy4LiH4LiU4Li1DQor4Lie4Li04Liq4Li04LiX4LiY4Li04LmMIOC4iuC4seC4ouC4oeC4h+C4hOC4pQ0KK+C4nuC4tOC4quC4tOC4l+C4mOC4tOC5jCDguKfguLjguJLguLTguKfguIfguKjguYzguKfguLHguJLguJnguLINCivguJ7guLTguKrguLTguKnguJDguYwg4LiB4Lih4Lil4Lin4Liy4Lij4Li04LiZ4LiX4Lij4LmMDQor4Lie4Li04Liq4Li04Lip4LiQ4LmMIOC4nuC4tOC4o+C4tOC4ouC4sOC5gOC4muC4jeC4iOC4p+C4seC4kuC4meC5jA0KK+C4nuC4tOC4quC4uOC4l+C4mOC4tOC5jCDguYHguIHguYnguKfguK3guLPguYTguJ4NCivguJ7guLTguKrguLjguJfguJjguLTguYwg4Lio4Li44Lig4Lie4LijDQor4Lie4Li04LmA4LiK4LiO4Lij4LmMIOC4muC4uOC4jeC4oeC4sg0KK+C4nuC4tOC5gOC4iuC4kCDguJXguLTguKLguLDguJ7guIfguKnguYzguJ7guLTguJfguLHguIHguKnguYwNCivguJ7guLTguYDguIrguJAg4Lin4Lix4LiS4LiZ4Liy4LmA4Lit4Li14LmK4Lii4Lia4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Li04LmA4LiK4LiVIOC5gOC4o+C4t+C4reC4meC4l+C4tOC4nuC4ouC5jA0KK+C4nuC4tOC5gOC4iuC4qeC4kCDguYDguJXguIrguLDguJTguLUNCivguJ7guLTguYDguIrguKnguJAg4Lij4Lix4LiV4LiZ4Liy4Lij4Lih4Lii4LmMDQor4Lie4Li04LmA4LiK4Lip4LiQIOC4reC4uOC4ouC4ouC4suC4meC4uOC4geC4ueC4pQ0KK+C4nuC4tOC5gOC4iuC4qeC4kOC5jCDguYDguIjguKPguLTguI3guKfguKPguIHguLTguIjguIHguLLguKMNCivguJ7guLTguYDguIrguKnguJDguYwg4LiX4Li04Lie4Lii4LmM4LmC4LiB4Lip4Lix4LiiDQor4Lie4Li04LmA4LiK4Lip4LiQ4LmMIOC5gOC4nuC5h+C4jeC4qOC4o+C4tQ0KK+C4nuC4tOC5gOC4iuC4qeC4kOC5jCDguKfguLTguKHguKXguJjguKPguKPguKHguKfguLHguJLguJnguYwNCivguJ7guLTguYDguIrguKnguJDguYwg4Lit4Lix4LiE4Lij4Lie4Li04LiZ4LiX4LmMDQor4Lie4Li04LmA4Lio4LiBIOC4oeC4suC4quC4seC4h+C4guC5jA0KK+C4nuC4tOC5hOC4pSDguITguKPguLjguJHguKfguJPguLTguIrguJnguJnguJfguYwNCivguJ7guLTguYTguKXguKXguLHguIHguKnguJPguYwg4LmC4LiB4Liq4Li44Lih4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Lie4Li1IOC4m+C4tOC5guC4leC4o+C5gOC4peC4teC4ouC4oQ0KK+C4nuC4teC4o+C4meC4uOC4iiDguYDguJ7guYjguIfguJ7guLLguJnguLTguIoNCivguJ7guLXguKPguJ7guIfguKnguYwg4Lil4Li04Lih4Lib4LmM4Liq4Li44LiX4LiY4Li04Lij4Lix4LiK4LiV4LmMDQor4Lie4Li14Lij4Lie4LilIOC4oOC4ueC4oeC4tOC4p+C4seC4kuC4meC5jA0KK+C4nuC4teC4o+C4nuC4seC4meC4mOC5jCDguKjguKPguLXguKrguLjguKfguKPguKPguJPguJzguYTguJcNCivguJ7guLXguKPguKfguLHguJLguJnguYwg4LiK4Li44LiT4Lir4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lie4Li14Lij4LiwIOC4geC4reC4quC4uOC4p+C4o+C4o+C4k+C4quC4geC4uOC4pQ0KK+C4nuC4teC4o+C4sCDguJfguLHguIHguKnguLDguKfguJPguLTguIrguIrguLINCivguJ7guLXguKPguLAg4Lih4Li14LmB4Liq4LiH4LiZ4Li04LilDQor4Lie4Li14Lij4LiwIOC4q+C4p+C4seC4h+C4p+C4tOC4p+C4seC4kuC4meC5jOC4quC4tOC4mQ0KK+C4nuC4teC4o+C4sOC4nuC4h+C4qOC5jCDguITguKXguK3guIfguIHguLTguIjguYLguKPguIjguJnguYwNCivguJ7guLXguKPguLDguJ7guIfguKnguYwg4Lie4Lij4Liw4LiE4Li44LiT4Lit4Liz4LiZ4Lin4LiiDQor4Lie4Li14Lij4Liw4Lie4LilIOC4iuC4suC4leC4nuC4uOC4l+C4mOC4tOC4mOC4o+C4geC4uOC4pQ0KK+C4nuC4teC4o+C4sOC4nuC4pSDguYHguKrguIfguIjguLHguJnguJfguKPguYwNCivguJ7guLXguKPguLDguKLguLjguJfguJgg4LmE4LiX4Lii4Lil4Li04LmI4Lih4LiX4Lit4LiHDQor4Lie4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4tOC4ouC4oOC4suC4k+C4teC4geC4uOC4pQ0KK+C4nuC4teC4o+C4seC4leC4meC5jCDguK7guLLguKHguLXguJTguLUNCivguJ7guLbguIfguYPguIgg4LmA4LiB4Li14Lii4Lij4LiV4Li04Liq4Liy4LmC4Lij4LiI4LiZ4LmMDQor4Lie4Li44LiSIOC4lOC4reC4geC5hOC4oeC5ieC4iOC4teC4mQ0KK+C4nuC4uOC4kuC4mOC4tOC4nuC4h+C4qeC5jCDguYDguKrguJnguYjguKvguLINCivguJ7guLjguJTguIjguLXguJog4LmA4Lif4Li34LmI4Lit4LiH4LiK4Li34LmI4LiZDQor4Lie4Li44LiX4LiY4LiK4Liy4LiV4Li0IOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4uOC4l+C4mOC4qOC4seC4geC4lOC4tOC5jCDguYLguK3guJDguKLguLTguYnguKHguJ7guKPguLLguKINCivguJ7guLjguJgg4LmC4LiE4LiV4Lij4LmD4LiV4LmJDQor4Lie4Li5IOC4l+C4p+C4teC4iOC4tOC4leC4ow0KK+C4nuC4ueC4meC4iuC4seC4oiDguYDguK3guLfguYnguK3guIfguKrguLjguKDguLLguKDguKPguJPguYwNCivguJ7guLnguJnguJfguKPguLHguJ7guKLguYwg4Liq4Li04LiX4LiY4Li04Lie4Lij4Lir4LihDQor4Lie4Li54LiZ4Lii4LioIOC4muC4uOC4k+C4ouC4o+C4seC4geC4qeC5jA0KK+C4nuC4ueC4meC4qOC4o+C4tSDguJjguLXguKPguLDguJvguIHguKPguJPguYzguIHguLjguKUNCivguJ7guLnguJnguKjguKPguLUg4Liq4Li44Lia4LiH4LiB4LiKDQor4Lie4Li54LiZ4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4quC4uOC4meC4meC4l+C5jA0KK+C4nuC4ueC4meC4quC4oeC4muC4seC4leC4tCDguYHguIvguYjguK3guLfguYnguK0NCivguJ7guLnguJnguKrguLjguIIg4LiE4Lir4Liw4LmB4LiB4LmJ4LinDQor4Lie4Li54LiZ4Liq4Li44LiCIOC4quC4seC4meC4leC4tOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4nuC4ueC4peC4iuC4seC4oiDguIHguLLguI3guIjguJnguYLguKPguIjguJnguYwNCivguJ7guLnguKXguJfguKPguLHguJ7guKLguYwg4Lie4Lij4Liy4Lir4Lih4LiT4Li14Lii4LmMDQor4Lie4Li54Lil4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4quC4h+C4p+C4meC4quC4seC4leC4ouC5jA0KK+C4nuC4ueC4peC4qOC4o+C4tSDguYHguIvguYjguKvguLHguYjguJkNCivguJ7guLnguKXguKjguKPguLUg4Liq4Li44LiC4Li44Lih4Lin4Liy4LiXDQor4Lie4Li54Lil4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4tuC5iOC4h+C4m+C4o+C4sOC4oOC4sg0KK+C4nuC4ueC4peC4qOC4tOC4o+C4tCDguK3guLTguIfguJXguKPguLDguIHguLnguKUNCivguJ7guLnguKXguKrguLTguJkg4LmA4Liq4LiZ4Li14Lii4LmMDQor4Lie4Li54Lil4Liq4Li44LiCIOC5gOC4oeC5iOC4meC5geC4oeC4mQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguIHguKPguLDguJTguLLguKkNCivguJ7guYDguKLguLLguKfguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LiH4Liy4LihDQor4Lie4LmA4Lii4Liy4Lin4LmMIOC5geC4leC4h+C4reC5iOC4reC4mQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguJvguLHguYnguJnguJrguLjguI3guIrguLkNCivguJ7guYDguKLguLLguKfguYwg4Lig4Li54Lip4LiyDQor4Lie4LmA4Lii4Liy4Lin4LmMIOC4p+C4h+C4qeC5jOC4quC4suC4peC4tQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguKrguLTguJnguIrguYnguLLguIcNCivguJ7guYDguKLguLLguKfguYwg4LmA4Lit4Li14LmI4Lii4Lih4Lin4LiH4Lio4LmMDQor4LmA4Lie4LiK4LijIOC4o+C4reC4quC4ueC4h+C5gOC4meC4tOC4mQ0KK+C5gOC4nuC4iuC4o+C4meC5ieC4reC4oiDguYDguKfguJfguKLguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguYDguJ7guIrguKPguKPguLHguJXguJnguYwg4Lib4Lil4Li34LmJ4Lih4Lit4Liy4Lij4Lih4Lii4LmMDQor4LmA4Lie4LiK4Lij4Lij4Lix4LiV4LiZ4LmMIOC4reC4uOC4leC4sOC4m+C4sOC4peC4sA0KK+C5gOC4nuC4iuC4o+C4seC4leC4meC5jCDguJ7guKPguJrguKfguKPguYDguIHguLXguKLguKPguJXguLQNCivguYDguJ7guIrguKPguLIg4Lin4Li04LiI4Li04LiV4Lij4LmA4Lil4LiC4LiB4Liy4LijDQor4LmA4Lie4LiK4Lij4Li1IOC4oOC4ueC5iOC4quC4uOC4gg0KK+C5gOC4nuC4l+C4suC4oiDguJfguK3guIfguKjguKPguLUNCivguYDguJ7guJfguLLguKIg4Lir4Liy4LmA4Lij4Li34Lit4LiZ4LiK4Li14LieDQor4LmA4Lie4Lij4Li14Lii4LiaIOC4q+C4uOC4leC4suC4h+C4geC4ueC4ow0KK+C5gOC4nuC4peC4tOC4mSDguJzguLTguKfguYDguJPguKMNCivguYDguJ7guKXguLTguJnguIjguLTguJUg4Lin4Lix4LiK4Lij4LmC4LiK4LiV4Li0DQor4LmA4Lie4Lil4Li04LiZ4LiV4LiyIOC4reC4tOC5iOC4oeC4reC4geC5g+C4iA0KK+C5gOC4nuC4peC4tOC4meC4nuC4tOC4qCDguYHguJTguIfguYTguJ7guJrguLnguKXguKLguYwNCivguYDguJ7guKXguLTguJnguJ7guLTguKgg4Lih4Lir4Liy4Lin4LiZ4Li04LiKDQor4LmA4Lie4Lil4Li04LiZ4Lie4Li04LioIOC5hOC4q+C4peC4oeC4sg0KK+C5gOC4nuC4suC4nuC4sOC4h+C4siDguK3guLHguKrguKHguLTguKHguLLguJnguLANCivguYDguJ7guLTguYjguKEg4Lio4Lij4Li14Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LmA4Lie4Li04LmI4Lih4Lie4LijIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C5gOC4nuC4tOC5iOC4oeC4qOC4o+C4tSDguKfguLHguJTguYHguIHguYnguKcNCivguYDguJ7guLTguYjguKHguKjguLHguIHguJTguLTguYwg4Lib4Li04LiV4Li04LiY4LiZ4Liq4Liy4Lij4Liq4Lih4Lia4Lix4LiV4Li0DQor4LmA4Lie4Li04LmI4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4ouC4ueC5iOC5gOC4m+C5h+C4meC4quC4uOC4gg0KK+C5gOC4nuC4teC4ouC4h+C4iOC4seC4meC4l+C4o+C5jCDguJ7guLHguJnguJjguLjguKPguLHguJXguJnguYwNCivguYDguJ7guLXguKLguIfguJ7guKMg4Lit4Lih4Lij4LmE4LiK4LiiDQor4LmA4Lie4Li14Lii4LiH4LmA4Lie4LmH4LiNIOC4iOC4tuC4h+C4quC4s+C4o+C4suC4jQ0KK+C5gOC4nuC4teC4ouC4h+C5g+C4iCDguIjguYjguLLguJ7guLHguJnguJjguYzguK3guLTguJnguJfguKPguYwNCivguYDguJ7guLXguKLguIfguYPguIgg4Lih4Lir4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lie4Li14Lii4LiZIOC4muC4seC4h+C4hOC4o+C4seC4mQ0KK+C5gOC4nuC4teC4ouC4oyDguKjguLTguKPguLTguYLguIrguJXguLTguKPguLHguJXguJnguYwNCivguYDguJ7guLXguKLguKPguJ7guKMg4Lio4Lij4Li14LmA4Lie4Li14Lii4Lij4Lic4LilDQor4LmA4Lie4Li14Lii4LinIOC4reC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jOC4oOC4tOC4jeC5guC4jQ0KK+C5gOC4nuC5h+C4geC4iOC4uSDguYHguIvguYjguYDguK3guLXguYnguKINCivguYDguJ7guYfguIHguYDguK7guLXguYnguKIg4LmB4LiL4LmI4LmA4LiV4Li14LiiDQor4LmA4Lie4LmH4LiK4LijIOC4qOC4o+C4teC4p+C4tOC4iuC4seC4og0KK+C5gOC4nuC5h+C4iuC4o+C4o+C4seC4leC4meC5jCDguK3guLLguKPguLXguKPguLHguIHguKnguYwNCivguYDguJ7guYfguIrguKPguLLguKDguKPguJPguYwg4Lin4Liq4Li44LiZ4LiY4Lij4Liy4Lih4Liy4LioDQor4LmA4Lie4LmH4LiNIOC5gOC4iuC4t+C5ieC4reC4muC4uOC4jQ0KK+C5gOC4nuC5h+C4jSDguYHguKrguIfguYLguIrguJXguLQNCivguYDguJ7guYfguI3guIjguLHguJnguJfguKPguYwg4LiI4Li04Lij4Liw4Liq4Li04LiZ4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LmA4Lie4LmH4LiN4LiI4Lix4LiZ4LiX4Lij4LmMIOC4m+C4seC5ieC4meC4leC4o+C4sOC4geC4ueC4pQ0KK+C5gOC4nuC5h+C4jeC4iOC4seC4meC4l+C4o+C5jCDguKjguKPguLXguIjguLHguJnguJfguKPguYzguJTguLUNCivguYDguJ7guYfguI3guIjguLTguJUg4Lil4Li04LmI4Lin4Lio4Lij4Li14Liq4LiB4Li44LilDQor4LmA4Lie4LmH4LiN4LiT4Li14Lii4LmMIOC4m+C4tOC4h+C4ouC4reC4hw0KK+C5gOC4nuC5h+C4jeC4l+C4tOC4nuC4siDguJrguLjguI3guIrguLnguIHguLjguKjguKUNCivguYDguJ7guYfguI3guJnguKDguLIg4Lia4Liz4LmA4Lie4LmH4LiN4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LmA4Lie4LmH4LiN4LiZ4Li04LiU4LiyIOC4leC4uOC4peC4p+C4o+C4o+C4mOC4meC4sA0KK+C5gOC4nuC5h+C4jeC4m+C4o+C4sOC4oOC4siDguJXguKPguLXguKPguLjguYjguIfguYDguKPguLfguK3guIfguIHguLjguKUNCivguYDguJ7guYfguI3guJvguKPguLDguKDguLIg4LmB4Liq4LiZ4LmA4Lih4Li34Lit4LiH4Lih4LiyDQor4LmA4Lie4LmH4LiN4Lie4LijIOC5gOC4leC4iuC4sOC4nuC4tOC4l+C4seC4geC4qeC5jOC5gOC4nOC5iOC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C5gOC4nuC5h+C4jeC4nuC4o+C4o+C4kyDguIjguYnguK3guKLguKPguLjguYjguIcNCivguYDguJ7guYfguI3guJ7guKPguKPguJMg4LmA4Lij4Li14LmI4Lii4Lin4Lie4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4LmA4Lie4LmH4LiN4Lie4Lix4LiB4LiV4Lij4LmMIOC4meC4seC4meC4mOC4tOC4o+C4suC4oOC4suC4geC4ow0KK+C5gOC4nuC5h+C4jeC4nuC4tOC4qCDguITguKPguLjguJjguKfguLXguKPguYwNCivguYDguJ7guYfguI3guKPguLHguJXguJnguYwg4Lia4Li44LiT4Lii4Lio4Li04Lij4Li04LiB4Li44LilDQor4LmA4Lie4LmH4LiN4Lik4LiU4Li1IOC4nuC4uOC4l+C4mOC4m+C4o+C4suC5guC4oeC4l+C4ouC5jA0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguIHguKXguLTguYjguJnguJvguKPguLDguJfguLjguKENCivguYDguJ7guYfguI3guKjguKPguLUg4LmE4LiC4LmI4LmB4LiB4LmJ4LinDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4iOC4tOC4leC4leC5jOC4iOC4hw0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguIrguLTguJTguJvguKPguLDguKrguIfguITguYwNCivguYDguJ7guYfguI3guKjguKPguLUg4LiTIOC4o+C4sOC4meC4reC4hw0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguYLguJXguK3guJnguLHguJnguJXguYwNCivguYDguJ7guYfguI3guKjguKPguLUg4LiZ4Lig4Liy4Lio4Lij4Li1DQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4muC4ueC4o+C4jeC4sOC4muC4uOC4jeC4p+C4h+C4qOC5jA0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguJ7guKPguLDguIHguLPguIHguLHguJoNCivguYDguJ7guYfguI3guKjguKPguLUg4Lig4Lix4LiH4LiE4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4o+C4seC4leC4meC4o+C4uOC5iOC4h+C4iuC4seC4og0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguKfguIfguKnguYzguJvguLLguJkNCivguYDguJ7guYfguI3guKjguKPguLUg4Lio4Lij4Li14Liq4Liz4Lij4Liy4LiN4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4quC4suC4o+C4sOC4geC4uOC4pQ0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguYHguKrguIfguYDguIjguKPguLTguI0NCivguYDguJ7guYfguI3guKjguKPguLUg4Lit4Liz4LiZ4Lin4Lii4Lic4LilDQor4LmA4Lie4LmH4LiN4Lio4Li04Lij4Li0IOC4hOC4seC4oeC4oOC4tOC4o+C4suC4meC4meC4l+C5jA0KK+C5gOC4nuC5h+C4jeC4qOC4tOC4o+C4tCDguKPguLHguIHguKnguLLguKfguIfguKnguYzguKPguLHguJXguJnguYwNCivguYDguJ7guYfguI3guKrguLTguJnguLUg4LiV4LmJ4Lit4LiH4Liq4LiB4Li44Lil4LmC4Lij4LiI4LiZ4LmMDQor4LmA4Lie4LmH4LiN4LmB4LiCIOC4hOC4h+C4nuC4tOC4l+C4seC4geC4qeC5jOC4qOC4tOC4peC4m+C5jA0KK+C5gOC4nuC5h+C4jeC5geC4giDguKDguLHguJfguKPguJTguLTguKXguIENCivguYDguJ7guYfguI3guYHguKPguKEg4Lih4LiZ4Li54LiN4LiK4Lix4LiiDQor4LmA4Lie4LmJ4LiHIOC4peC5ieC4reC4oeC5gOC4nuC4iuC4o+C4nuC4peC4reC4og0KK+C5geC4nuC4o+C4pyDguYLguJXguYLguITguIHguILguLLguKENCivguYHguJ7guKPguKfguJ7guKPguKPguJMg4Lij4Lix4LiH4Lip4Li14LiB4Li04LiI4LmC4Lie4LiY4Li04LmMDQor4LmC4Lie4LiK4LiZ4LiwIOC4oeC4suC4qOC5gOC4guC4t+C5iOC4reC4meC4guC4seC4meC4mOC5jA0KK+C5guC4nuC4mOC4tOC5jOC4nuC4seC4meC4mOC4uOC5jCDguYPguIjguKHguLXguJjguKPguKPguKHguJTguLUNCivguYTguJ7guIjguLTguJUg4Lin4Lio4Li04LiZ4Lib4Lij4Li04LiN4LiN4LiyDQor4LmE4Lie4LiI4Li04LiV4LijIOC4iuC4seC4ouC4nuC4pOC4geC4qeC5jA0KK+C5hOC4nuC4iOC4tOC4leC4oyDguKHguLLguJTguLUNCivguYTguJ7guIjguLTguJXguKPguLIg4Lio4Li44LiC4Liq4Lih4Liy4LiZDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4geC4seC4meC4oOC4seC4og0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguITguIfguITguLLguKrguLjguKPguLTguKLguInguLLguKINCivguYTguJ7guJHguLnguKPguKLguYwg4LmA4LiI4LiZ4LiI4Liy4LiE4LiwDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC5geC4i+C5iOC5gOC4leC4teC5ieC4ouC4pw0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguJfguK3guIfguIHguKPguLDguIjguYjguLLguIcNCivguYTguJ7guJHguLnguKPguKLguYwg4Lia4Lix4Lin4LiE4Lil4Li14LmIDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4nOC4peC4oOC4suC4qeC4tQ0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguJ7guLnguKXguKrguKfguLHguKrguJTguLTguYwNCivguYTguJ7guJHguLnguKPguKLguYwg4Lij4Lix4LiH4Lip4Li04Lii4Liy4Lig4LiyDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4p+C4o+C4quC4seC4oeC4m+C4uOC4o+C4k+C4sA0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguKjguLTguKfguLDguJ7guKPguIrguLHguKINCivguYTguJ7guJHguLnguKPguKLguYwg4Liq4Li44LiZ4LiX4Lij4Lin4Lix4LiS4LiZ4LmMDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4reC5iOC4reC4meC4qOC4tOC4o+C4tA0KK+C5hOC4nuC4keC4ueC4peC4ouC5jCDguIjguKPguLnguI3guYDguKPguLfguK3guIcNCivguYTguJ7guJrguLnguKPguJPguYwg4LiE4Liz4Lia4Li44Lij4Li1DQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4geC4tOC4iOC4l+C4p+C4teC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguILguLLguKfguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguYTguJ7guJrguLnguKXguKLguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LiV4Lij4Li1DQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC5g+C4iOC4leC4suC4mg0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguYTguJ7guJrguLnguKXguKLguYwg4LiV4LmI4Liy4Lii4Liq4LiB4Li44Lil4LiX4Li04Lie4Lii4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC5gOC4l+C4nuC4iOC4tOC4meC4lOC4sg0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguJnguLTguKXguLLguKrguJnguYwNCivguYTguJ7guJrguLnguKXguKLguYwg4Lib4Lij4Liw4LmE4Lie4LiX4Lit4LiHDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4nuC4pOC4l+C4mOC4tOC4nuC4seC4kuC4geC4uOC4pQ0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguJ7guLjguYjguKHguK3guLLguKjguLHguKINCivguYTguJ7guJrguLnguKXguKLguYwg4Lih4LiT4Li14LmC4Lij4LiI4LiZ4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4o+C4seC4h+C4quC4teC4geC4uOC4peC4nuC4h+C4qOC5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguKXguLXguKXguLLguKDguLLguJPguLjguKHguLLguKgNCivguYTguJ7guJrguLnguKXguKLguYwg4Lin4LmI4Lit4LiH4LmE4Lin4Lii4Li04LmI4LiH4LmA4LiI4Lij4Li04LiNDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4qOC4o+C4teC4quC4seC4meC4leC4tOC4o+C4seC4leC4meC5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguKrguKHguLHguITguKPguIHguLLguKMNCivguYTguJ7guJrguLnguKXguKLguYwg4Liq4Li44LiC4Liq4Lix4LiZ4LiV4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC5geC4quC4h+C5geC4geC5ieC4pw0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguK3guKHguKPguK3guJnguLjguIHguLnguKUNCivguYTguJ7guJrguLnguKXguKLguYwg4LmA4Lit4Lih4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmE4Lie4Lih4LiZ4LiyIOC5gOC4q+C4peC5iOC4suC4guC4seC4leC4tOC4ouC4sA0KK+C5hOC4nuC4o+C4o+C4tOC4meC4l+C4o+C5jCDguJjguLnguJvguKrguLjguKfguKPguKPguJPguYwNCivguYTguJ7guKPguKfguLHguKXguKLguYwg4LmA4Lie4Li14Lii4Lij4Lil4Li44Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4LmE4Lie4Lij4Lix4LiBIOC4oOC4ueC5iOC5guC4quC4oOC4sg0KK+C5hOC4nuC4o+C4seC4iiDguIjguLHguJnguJfguKPguYzguYDguJvguKXguYjguIcNCivguYTguJ7guKPguLHguIog4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LmE4Lie4Lij4Lix4LiKIOC4mOC4o+C4o+C4oeC5geC4nuC4l+C4ouC5jA0KK+C5hOC4nuC4o+C4seC4iiDguJvguLLguJnguJfguLTguJ7guKLguYzguK3guLPguJ7guKMNCivguYTguJ7guKPguLHguIog4LmE4Lie4Lia4Li54Lil4Lii4LmM4Lih4Lix4LmI4LiZ4LiE4LiHDQor4LmE4Lie4Lij4Lix4LiKIOC4peC4teC5ieC5gOC4iOC4o+C4tOC4jQ0KK+C5hOC4nuC4o+C4seC4iiDguKjguLTguKPguLTguIrguLLguJXguLQNCivguYTguJ7guKPguLHguIog4LmA4Liq4Lin4LiB4Lie4Li04Lia4Li54Lil4Lii4LmMDQor4LmE4Lie4Lij4Lix4LiKIOC5guC4reC4quC4luC5gOC4iOC4o+C4tOC4jeC4nOC4pQ0KK+C5hOC4nuC4o+C4seC4leC4meC5jCDguIjguKPguKPguKLguKvguLLguI0NCivguYTguJ7guKPguLHguJXguJnguYwg4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0DQor4LmE4Lie4Lij4Lix4LiV4LiZ4LmMIOC4o+C4seC4leC4meC5jOC4nuC4h+C4qeC5jOC5guC4quC4oOC4tOC4lQ0KK+C5hOC4nuC4o+C4seC4leC4meC5jCDguYHguKrguKfguIfguIHguLTguIgNCivguYTguJ7guKPguLTguJkg4Lic4Lil4Lir4Lin4LmJ4LiyDQor4LmE4Lie4Lij4Li04LiZ4LiX4Lij4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4oeC4k+C4tQ0KK+C5hOC4nuC4o+C4tOC4meC4l+C4o+C5jCDguJ7guYjguKfguIfguKrguLjguJnguJfguKMNCivguYTguJ7guKPguLTguJnguJfguKPguYwg4LmA4Liq4Li34Lit4LiZ4LmJ4Lit4LiiDQor4LmE4Lie4Lil4Li04LiZIOC4iOC4tOC4leC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C5hOC4nuC4peC4tOC4mSDguJvguLLguKPguLDguJ7guIfguKjguYwNCivguYTguJ7guKXguLTguJkg4Lin4LmI4Lit4LiH4Lib4Lij4Liw4LiK4Liy4LiZ4Li44LiB4Li54LilDQor4LmE4Lie4Lil4Li04LiZIOC4reC4tOC4meC4l+C4o+C5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C5hOC4nuC4qOC4o+C4tSDguJjguLnguJvguYDguJfguLXguKLguJnguJfguK3guIcNCivguYTguJ7guKjguLLguKUg4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4LiB4Lip4Lih4Lio4Liy4LiZ4LiV4LmMDQor4LmE4Lie4Lio4Liy4LilIOC4iOC5i+C4p+C4h+C4nuC4suC4meC4tOC4ig0KK+C5hOC4nuC4qOC4suC4pSDguYDguIjguLTguJTguIjguLPguJnguIfguKfguLTguJfguKLguLLguIHguLjguKUNCivguYTguJ7guKjguLLguKUg4LmA4LiK4Li14Lii4LiH4Lih4LiyDQor4LmE4Lie4Lio4Liy4LilIOC4leC4seC5ieC4h+C4iOC4o+C4tOC4ouC4mOC4o+C4o+C4oQ0KK+C5hOC4nuC4qOC4suC4pSDguJfguLHguYnguKfguKrguLjguKDguLLguJ4NCivguYTguJ7guKjguLLguKUg4LiZ4Li04Lil4LiZ4LiX4Li1DQor4LmE4Lie4Lio4Liy4LilIOC4m+C4o+C4sOC4oOC4suC4reC4oOC4tOC4o+C4seC4leC4meC5jA0KK+C5hOC4nuC4qOC4suC4pSDguJ7guKPguKvguKHguKHguJPguLUNCivguYTguJ7guKjguLLguKUg4LmC4Lie4LiY4Li04LmM4LiZ4Li04LmI4Lih4LmB4LiU4LiHDQor4LmE4Lie4Lio4Liy4LilIOC4ouC4uOC5ieC4meC4nuC4seC4meC4mOC5jA0KK+C5hOC4nuC4qOC4suC4pSDguKXguLLguKfguLHguJPguKLguLLguIHguLjguKUNCivguYTguJ7guKjguLLguKUg4Lin4Lij4LmC4Lie4LiY4Li04LmMDQor4LmE4Lie4Lio4Liy4LilIOC4qOC4o+C4teC5gOC4geC4leC4uA0KK+C5hOC4nuC4qOC4suC4pSDguKrguLPguKPguLLguI3guIHguLTguIjguJTguLPguKPguIfguITguYwNCivguYTguJ7guKjguLLguKUg4LmA4Liq4Lij4Li14Lij4Lix4LiB4Lip4LmMDQor4LmE4Lie4Lio4Liy4LilIOC4reC4ouC4ueC5iOC5gOC4ouC5h+C4mQ0KK+C5hOC4nuC4qOC4suC4pSDguYLguK3guJnguYDguIfguLTguJkNCivguYTguJ7guKrguLTguJAg4LiI4Lij4Li04Lii4Liw4LmA4Lio4Lij4Lip4LiQ4LmMDQor4LmE4Lie4LmA4Lij4Liy4LiwIOC5gOC4geC4tOC4lOC4p+C4tOC4iuC4seC4og0KK+C5hOC4nuC5gOC4o+C4suC4sCDguJfguK3guIfguYPguJoNCivguYTguJ7guYDguKPguLLguLAg4Lij4Li14Lij4Lix4LiV4LiZ4LiK4Liy4LiV4Li0DQor4LmE4Lie4LmA4Lij4Liy4LiwIOC4reC4uOC5iOC4meC4meC4tOC5iOC4oQ0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguIHguLLguI3guIjguJnguJ7guLTguJrguLnguKXguKLguYwNCivguYTguJ7guYLguKPguIjguJnguYwg4LiC4LiI4Lij4Lin4Lix4LiK4Lij4LiyDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4iOC4o+C4uOC4h+C4oOC4seC4quC4quC4o+C5jOC4guC4iOC4ow0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguIjguLXguJnguILguIjguKMNCivguYTguJ7guYLguKPguIjguJnguYwg4LiK4Lix4Lii4Lie4LijDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4i+C4tuC5ieC4h+C5gOC4geC4qeC4oQ0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJXguKXguK3guJTguIHguLLguKUNCivguYTguJ7guYLguKPguIjguJnguYwg4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4mOC4teC4o+C5gOC4geC4qeC4leC4o+C4iuC4seC4og0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJrguKPguLTguJrguLnguKPguJPguYwNCivguYTguJ7guYLguKPguIjguJnguYwg4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmM4Lie4LijDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4nuC4h+C4qeC5jOC4iOC4tOC4meC4lOC4suC4p+C4suC4meC4tOC4ig0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJ7guLTguKDguLHguIHguIHguLTguIgNCivguYTguJ7guYLguKPguIjguJnguYwg4Lig4Lix4LiX4Lij4Liq4Li44LiC4LmA4Liq4Lij4Li04LihDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC5gOC4oeC4huC4p+C4tOC4oOC4suC4lQ0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKPguLjguYjguIfguJrguKPguKPguKXguLfguK3guKjguLHguIHguJTguLTguYwNCivguYTguJ7guYLguKPguIjguJnguYwg4Lil4Li04LmI4Lih4LiB4Liy4LiN4LiI4LiZ4LmC4LiK4LiV4Li0DQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4p+C4o+C4o+C4k+C4quC4luC4tOC4leC4ouC5jA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKjguKPguIjguLTguJXguJXguLQNCivguYTguJ7guYLguKPguIjguJnguYwg4LmC4Lio4LiI4Li04Lio4Li44Lig4LijDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4quC4tOC4h+C4q+C5jOC4reC4uOC4quC4suC4q+C4sA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKrguLjguKfguKPguKPguJPguKrguLjguJfguJjguLQNCivguYTguJ7guYLguKPguIjguJnguYwg4Lir4Liy4LiN4Lie4LiH4Lip4LmM4LiY4Lij4Lij4LihDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4reC4seC4leC4leC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguYLguK3guKfguLLguJfguIjguKPguLnguI3guIjguLTguJXguJXguYwNCivguJ/guK3guIfguITguLMg4Lij4Li44LiI4Li04LmB4Liq4LiH4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lif4Lit4LiH4LmB4LiB4LmJ4LinIOC4nuC4peC4meC4sOC5gOC4lOC4ig0KK+C4n+C4suC4leC4tOC4oeC4sCDguYDguIHguJXguLjguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguJ/guLLguKPguLXguJTguLIg4LmA4LiL4LmH4Lih4Liq4Lih4Lie4LijDQor4Lif4Li04Lil4Li04LibIOC4m+C4tOC5iOC4meC4quC4uOC4geC4suC4jeC4iOC4meC4sA0KK+C4n+C4t+C5ieC4mSDguKvguLTguKPguLHguI3guKrguLjguILguKrguLHguJnguJXguYwNCivguJ/guLkg4Lia4Li44LiN4LmA4Lie4LmH4LiHDQor4Lif4Li54LmA4LiK4Li14Lii4LiHIOC5geC4i+C5iOC4iOC5i+C4suC4pw0KK+C5gOC4n+C4t+C5iOC4reC4h+C4ieC4seC4leC4oyDguKrguLjguITguJnguJjguYzguILguIjguKMNCivguYDguJ/guLfguYjguK3guIfguKXguLHguJTguJTguLIg4LiB4Li04LiI4Liq4LiZ4Liy4LmC4Lii4LiY4Li04LiZDQor4Lig4LiE4Lie4LijIOC4oOC4seC4geC4qOC4o+C4teC4p+C4h+C4qeC5jA0KK+C4oOC4hOC4tOC4meC4tSDguKrguKPguJ7guIfguKjguYzguYTguJ7guKPguLHguIoNCivguKDguKHguKMg4LiJIOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4oOC4o+C4k+C5jOC4nuC4o+C4o+C4kyDguKPguLHguJXguKrguLTguKPguKLguLLguIHguKMNCivguKDguKPguJPguLUg4Lie4LiH4Lio4LmM4LmA4Lil4Li04Lio4LiZ4Lig4Liy4LiB4LijDQor4Lig4Lij4LiT4LmM4LmA4Lie4LmH4LiNIOC5geC4geC5ieC4p+C4iuC5iOC4p+C4og0KK+C4oOC4o+C4suC4lOC4oyDguKPguK3guJTguYDguKXguLXguYjguKLguKENCivguKDguKfguLHguI3guI3guLIg4Lil4LmJ4Lin4LiZ4LmD4LiI4Liq4LiZ4LiY4Li04LmMDQor4Lig4Lix4LiB4LiU4Li1IOC4iOC4seC4meC4l+C4nuC4seC4meC4mOC5jA0KK+C4oOC4seC4geC4lOC4tSDguJ7guYjguKfguIfguKDguLHguIHguJTguLUNCivguKDguLHguIHguJTguLUg4Liq4Li44Lie4Lij4Lie4Lix4LiS4LiZ4LiyDQor4Lig4Lix4LiE4Lie4LiH4Lip4LmMIOC4geC4uOC4peC4iuC4pQ0KK+C4oOC4seC4iuC4o+C4tSDguJvguLTguYjguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguKDguLHguJfguJfguYLguIEg4LmC4LiK4LiV4Li04LiB4LmE4LiB4LijDQor4Lig4Lix4LiX4Lij4LmM4LiB4Lih4LilIOC5gOC4leC5h+C4oeC4quC4uOC4gg0KK+C4oOC4seC4l+C4o+C4nuC4oyDguIjguLLguKPguLjguJ7guLHguJLguJnguYwNCivguKDguLHguJfguKPguKDguKMg4LiY4LiZ4Liy4LmA4LiB4Lip4Lih4Lie4LilDQor4Lig4Lix4LiX4Lij4LmM4Lin4Lij4Lij4LiTIOC4hOC4h+C4reC4o+C4o+C4luC4geC4suC4ow0KK+C4oOC4seC4l+C4o+C4siDguYDguIrguLXguYjguKLguKfguKfguLjguJLguLTguKDguLLguIQNCivguKDguLHguJfguKPguLIg4Lie4Lij4Lie4LiH4Lio4LmM4LiX4Lin4Li14Lin4Lix4LiS4LiZ4LmMDQor4Lig4Lix4LiX4Lij4LiyIOC4p+C4seC4meC4lOC4tQ0KK+C4oOC4seC4l+C4o+C4suC4nuC4oyDguIvguLfguYjguK3guIHguLTguJXguJXguLTguKjguLHguIHguJTguLTguYwNCivguKDguLHguJfguKPguLLguKDguKPguJPguYwg4LmA4Lit4Li14Lii4Liq4LiB4Li44LilDQor4Lig4Lix4LiX4Lij4Liy4Lin4Li44LiYIOC4nuC4seC4meC4mOC4uOC5gOC4oeC4mOC4suC4p+C4h+C4qOC5jA0KK+C4oOC4seC4l+C4o+C4teC4ouC4siDguJrguLjguI3guKLguKHguYLguJnguJnguLjguIHguLjguKUNCivguKDguLHguKrguKPguLIg4Lie4LiH4Lip4LmM4Lit4Li44LiU4LiX4LiyDQor4Lig4Lix4Liq4Liq4Lij4LiyIOC5gOC4lOC4iuC4sOC4qOC4tOC4o+C4tA0KK+C4oOC4suC4hOC4oOC4ueC4oeC4tCDguIrguLLguI3guJ7guLTguIrguLHguKINCivguKDguLLguITguKLguYwg4LiB4Lij4LiU4LiZ4Li04Lii4Lih4LiK4Lix4LiiDQor4Lig4Liy4LiT4Li1IOC5gOC4iuC4tOC4lOC4iuC4t+C5iOC4mQ0KK+C4oOC4suC4k+C4tSDguKrguLTguKPguLTguYDguKfguIrguIHguLjguKUNCivguKDguLLguJPguLgg4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lig4Liy4LiT4Li44LiY4Lix4LiKIOC4nuC4o+C4q+C4oeC4m+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4oOC4suC4k+C4uOC4oeC4suC4qCDguIHguLjguKjguKXguKXguLLguJnguLjguIHguLnguKUNCivguKDguLLguJPguLjguKfguLHguJLguJnguYwg4LiI4Liz4LiI4LiUDQor4Lig4Liy4LiT4Li44Lio4Lix4LiB4LiU4Li04LmMIOC4reC4tOC4meC4l+C4o+C4o+C4seC4geC4qeC4sg0KK+C4oOC4suC4meC4uCDguJrguLjguJXguKPguKjguKPguLUNCivguKDguLLguJnguLjguKHguLLguKgg4Lie4Li54LiZ4Liq4Li44LiC4LmC4LiCDQor4Lig4Liy4LiZ4Li44Lin4Li44LiYIOC4meC4p+C4peC4quC4sg0KK+C4oOC4suC4o+C4k+C4tSDguK3guLHguJrguJTguLjguKXguKXguLINCivguKDguLLguKPguJTguLUg4LmC4Lij4LiI4LiZ4Lin4Lix4LiS4LiZ4Lin4Li44LiS4Li0DQor4Lig4Liy4Lin4LiT4Li1IOC4quC4oeC4seC4meC4leC5gOC4p+C4hOC4tOC4mQ0KK+C4oOC4suC4p+C4lOC4tSDguK3guKHguKPguJ7guLHguIrguKPguLANCivguKDguLLguKfguJnguLIg4LiZ4Lij4Liy4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lig4Liy4Lin4LiZ4LiyIOC4qOC4o+C4teC4reC4o+C4uOC4kw0KK+C4oOC4suC4p+C4tOC4k+C4tSDguIHguKXguLTguYjguJnguILguIjguKMNCivguKDguLLguKfguLTguJPguLUg4LiX4Lit4LiH4Lih4Liy4LiBDQor4Lig4Liy4Lin4Li04LiT4Li1IOC4p+C4iuC4tOC4o+C4m+C4seC4jeC4jeC4suC4meC4uOC4geC4ueC4pQ0KK+C4oOC4suC4p+C4tOC4lSDguYLguJXguJTguLTguKXguIENCivguKDguLLguKfguLUg4Lih4Li14Lin4Lix4LiV4LiW4LiyDQor4Lig4Liy4Liq4LiB4LijIOC4iOC4tOC4leC4leC4o+C4reC4hw0KK+C4oOC4suC4quC4geC4oyDguYDguKvguKHguIHguKPguJPguYwNCivguKDguLTguIrguI3guKPguLHguJXguJnguYwg4Lin4LiH4Lio4LmM4Lin4Liq4Li44Liq4Li04LiZDQor4Lig4Li04LiN4LmC4LiNIOC4guC4seC4meC4l+C4reC4hw0KK+C4oOC4tOC4jeC5guC4jSDguJjguLHguJnguKfguLLguKPguIrguKMNCivguKDguLTguI3guYLguI0g4Lij4Lie4Li14Lie4Li04Lio4Liy4LilDQor4Lig4Li04LiN4LmC4LiNIOC4q+C4tOC5guC4leC4m+C4geC4o+C4k+C5jA0KK+C4oOC4tOC4o+C4oeC4k+C5jCDguITguIfguK3guKLguLnguYgNCivguKDguLTguKPguKHguKLguYwg4LiJ4Liy4Lii4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lig4Li04Lij4Lih4Lii4LmMIOC4nuC4pOC4geC4qeC4iuC4suC4leC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4oOC4tOC4o+C4oeC4ouC5jCDguKrguIfguKfguJnguJnguLLguKENCivguKDguLTguYDguKjguIEg4LmD4LiI4Lit4LmI4Lit4LiZ4LiZ4LmJ4Lit4LihDQor4Lig4Li44LiK4LiH4LiE4LmMIOC4leC4seC4k+C4keC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4oOC4uOC4iuC4iuC4h+C4hOC5jCDguIrguLLguI3guJjguJnguLLguIHguLTguIgNCivguKDguLkg4LmD4LiI4LiK4Liy4LiiDQor4Lig4Li54Lih4Li0IOC5guC4quC4oOC4suC4iOC4suC4o+C4teC4ouC5jA0KK+C4oOC4ueC4oeC4tOC4nuC4tOC4iuC4jeC5jCDguIjguKPguKPguKLguLLguKfguLTguIjguLHguIHguKnguJPguYwNCivguKDguLnguKPguLTguJTguLIg4LmC4LiX4LiY4LiB4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lig4Li54Lin4LiU4LilIOC5gOC4o+C4t+C4reC4h+C5guC4geC4quC4tOC4meC4l+C4o+C5jA0KK+C4oOC4ueC4p+C4meC4suC4o+C4liDguK3guLjguYDguJfguKjguJnguLHguJnguJfguJnguYwNCivguKDguLnguKnguLTguJUg4Lib4Lij4Liw4LiY4Liy4LiZ4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lig4Li54LmA4LiB4LmH4LiIIOC5geC4quC4lOC4h+C4mOC4o+C4o+C4oQ0KK+C5gOC4oOC4suC4p+C4meC4siDguK3guLTguJnguJfguLDguYHguKrguIcNCivguKHguIfguITguKUg4LiB4Lip4Li04LiV4Li04Lib4Lij4Liw4LiU4Li04Lip4LiQDQor4Lih4LiH4LiE4LilIOC5gOC4guC4teC4ouC4p+C4nOC4tuC5ieC4hw0KK+C4oeC4h+C4hOC4pSDguIjguLHguJnguJfguKPguYzguYHguKrguIfguKPguLHguJXguJnguYwNCivguKHguIfguITguKUg4LiJ4Li04Lih4LmA4Lil4LmH4LiBDQor4Lih4LiH4LiE4LilIOC5geC4i+C5iOC4geC4uOC5iOC4og0KK+C4oeC4h+C4hOC4pSDguJXguLHguYnguIfguIjguLTguJXguJXguYzguKfguLHguJLguJnguLINCivguKHguIfguITguKUg4LiX4Lix4Lia4LiX4Li04Lih4LiK4Li54Liq4Li44Lin4Lij4Lij4LiTDQor4Lih4LiH4LiE4LilIOC4meC4suC4hOC4sOC4oeC4sg0KK+C4oeC4h+C4hOC4pSDguJvguLLguJPguLDguJrguKPguKPguIjguIcNCivguKHguIfguITguKUg4Lie4LmI4Lin4LiH4Lie4LiH4Lio4LmMDQor4Lih4LiH4LiE4LilIOC4oOC4suC4quC4geC4o+C4iOC4o+C4seC4qg0KK+C4oeC4h+C4hOC4pSDguKLguLfguJnguKLguIfguKvguLHguJXguJbguKDguKPguJPguYwNCivguKHguIfguITguKUg4Lil4Li04LmI4Lin4Lih4LmC4LiZ4Lih4LiZ4LiV4LmMDQor4Lih4LiH4LiE4LilIOC4p+C4tOC4meC4tOC4iOC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4oeC4h+C4hOC4pSDguKjguLTguKPguLTguYHguKrguIfguIrguLHguKLguIHguLjguKUNCivguKHguIfguITguKUg4Liq4Li14LiU4LiyDQor4Lih4LiH4LiE4LilIOC5geC4quC4h+C4p+C4h+C4qOC5jOC4p+C4suC4k+C4tOC4iuC4ouC5jA0KK+C4oeC4h+C4hOC4pSDguK3guKLguLnguYjguJnguLjguIoNCivguKHguIfguITguKUg4LmA4Liu4LiH4Lia4Li44LiN4Liq4Li44LiC4LiB4Li44LilDQor4Lih4LmI4LiH4LmA4LiL4Li14LmJ4LiiIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4oeC4k+C4keC4o+C4tOC4gSDguYDguJTguIrguKvguJnguLkNCivguKHguJPguJHguKUg4LmD4Lia4Lia4Lix4LinDQor4Lih4LiT4LiR4LilIOC4reC4seC4qOC4p+C4oOC4seC4l+C4o+C4suC4geC4ow0KK+C4oeC4k+C4keC4siDguIjguKPguLjguIfguIHguKXguLTguYjguJkNCivguKHguJPguJHguLIg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lih4LiT4LiR4LiyIOC5gOC4meC4teC4ouC4oeC4qOC4tOC4o+C4tA0KK+C4oeC4k+C4keC4siDguJ7guLjguJLguJXguLLguKUNCivguKHguJPguJHguLIg4LmA4Lil4Li04Lio4LiX4LiZ4Li44Lie4LiH4Lio4LmMDQor4Lih4LiT4LiR4LiyIOC4quC4seC4meC4leC4tOC4mOC4seC4jeC4jeC4suC5guC4iuC4hA0KK+C4oeC4k+C4keC4siDguYDguKvguKXguLfguK3guIfguKXguLHguI3guIjguIHguKMNCivguKHguJPguJHguLLguJfguLTguJ7guKLguYwg4LmC4LiV4LmB4Lii4LmJ4LihDQor4Lih4LiT4LiR4Li04LiV4LiyIOC4reC4ueC5iOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4oeC4k+C4keC5jCDguKrguKHguJ7guLHguJnguJjguYwNCivguKHguJPguJ7guLTguKPguLIg4Lit4Liy4LiH4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lih4LiT4Li1IOC5guC4geC4qOC4peC5gOC4oeC4mOC4suC4geC4uOC4pQ0KK+C4oeC4k+C4tSDguYDguIjguKPguLTguI3guKrguLjguIINCivguKHguJPguLUg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lih4LiT4Li1IOC4l+C4reC4h+C5gOC4geC4qeC4ow0KK+C4oeC4k+C4tSDguJrguLjguI3guJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguKHguJPguLUg4Lie4Lix4LiS4LiZ4Liw4LmA4Lit4LiZ4LiBDQor4Lih4LiT4Li1IOC4oeC4ueC4ruC4s+C4oeC4seC4lOC5guC4mQ0KK+C4oeC4k+C4tSDguKfguIfguKjguYzguIHguKPguLjguJQNCivguKHguJPguLUg4Lio4Li04Lij4Li04Lin4Lix4LiS4LiY4LiZ4Liw4LiV4Lij4Liw4LiB4Li54LilDQor4Lih4LiT4Li1IOC4quC4uOC4meC4l+C4o+C4peC4tOC4m+C4tOC4geC4ow0KK+C4oeC4k+C4tSDguK3guLHguKjguKfguIjguLTguJnguJTguLLguKfguLHguJLguJnguYwNCivguKHguJPguLXguJnguLLguI8g4Lie4LiH4Lio4LmM4Lig4LiE4Lin4Lix4LiV4LijDQor4Lih4LiT4Li14Lij4Lix4LiB4Lip4LmMIOC4iOC4tOC4meC4leC4meC4suC4muC4o+C4o+C5gOC4iOC4tOC4lA0KK+C4oeC4k+C4teC4o+C4seC4leC4meC5jCDguYHguIjguYnguIfguYHguIjguYjguKHguIjguLTguJXguJXguYwNCivguKHguJPguLXguKPguLHguJXguJnguYwg4LiW4Li04LiZ4Lib4Lin4Lix4LiV4Li0DQor4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMIOC4nuC4o+C4geC4uOC4peC4p+C4seC4kuC4meC5jA0KK+C4oeC4k+C4teC4o+C4seC4leC4meC5jCDguYDguKXguLTguKjguKrguLjguITguJnguJjguYwNCivguKHguJPguLXguKPguLHguJXguJnguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lig4Liy4Lig4Lij4LiT4LmMDQor4Lih4LiT4Li14Lin4Lij4Lij4LiTIOC4kyDguJnguITguKMNCivguKHguJPguLXguKfguLHguKXguKLguYwg4Lit4Lih4Lij4LiY4Li14Lij4Liw4LiB4Li44LilDQor4Lih4LiT4LmA4LiR4Li14Lii4LijIOC4iuC4seC4ouC4oeC4tOC4leC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C4oeC4k+C5gOC4keC4teC4ouC4oyDguJ7guLnguKXguKjguLTguKPguLQNCivguKHguJPguYDguJHguLXguKLguKMg4Lit4Liy4LiI4Lia4Lij4Lij4LiI4LiHDQor4Lih4LiY4Li44Lij4LiqIOC4muC4uOC4leC4o+C4lOC4tQ0KK+C4oeC4meC4iuC4ouC4siDguYTguIHguKPguKTguIHguKnguYwNCivguKHguJnguJPguLHguIrguIrguLIg4LiK4Li54LiK4Liy4LiV4Li04LmE4LiX4LiiDQor4Lih4LiZ4LiV4LmM4LiK4Lix4LiiIOC5guC4iuC4leC4tOC4q+C4tOC4o+C4seC4k+C4o+C4seC4leC4meC5jA0KK+C4oeC4meC4leC5jOC4iuC4seC4oiDguYTguJzguJfguKPguLHguIHguKnguLLguJjguKPguKPguKENCivguKHguJnguJXguYzguIrguLHguKIg4Lin4Li04Liq4Li44LiX4LiY4Li04Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lih4LiZ4LiV4LmM4LiK4Lix4LiiIOC5gOC4reC4teC5iOC4ouC4oeC4o+C4seC4leC4meC4iuC4seC4og0KK+C4oeC4meC4leC4o+C5jOC4p+C4h+C4qOC5jCDguKDguLHguJfguKPguKfguLTguJfguKLguYwNCivguKHguJnguJXguKPguLUg4LmB4LiB4LmJ4Lin4LmA4Lil4LmH4LiBDQor4Lih4LiZ4LiV4Lij4Li1IOC4iOC4o+C4tOC4ouC4suC4geC4ueC4pQ0KK+C4oeC4meC4leC4o+C4tSDguYDguIjguKPguLTguI3guKPguLHguJXguJnguYwNCivguKHguJnguJXguKPguLUg4LiK4Li54LiZ4Liy4Lih4LiK4Lix4LiiDQor4Lih4LiZ4LiV4Lij4Li1IOC4lOC4suC4p+C5gOC4o+C4t+C4reC4hw0KK+C4oeC4meC4leC4o+C4tSDguYHguJXguIfguYDguIjguKPguLTguI0NCivguKHguJnguJXguKPguLUg4LiY4Lij4Lij4Lih4Lij4Lix4LiH4Lip4Li1DQor4Lih4LiZ4LiV4Lij4Li1IOC5gOC4meC4teC4ouC4oeC4iOC4teC4mQ0KK+C4oeC4meC4leC4o+C4tSDguJvguKPguLDguYDguKrguKPguLTguJDguKfguLTguJfguKLguLLguIHguLLguKMNCivguKHguJnguJXguKPguLUg4Lie4Lij4Lie4LiI4LiZ4LmM4LiY4LiZ4Lih4Liy4LioDQor4Lih4LiZ4LiV4Lij4Li1IOC5gOC4nuC4tOC5iOC4oeC4nOC4peC4iuC4seC4ouC4geC4uOC4pQ0KK+C4oeC4meC4leC4o+C4tSDguKHguLLguJnguLDguJfguLHguJUNCivguKHguJnguJXguKPguLUg4Lij4Lit4LiU4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lih4LiZ4LiV4Lij4Li1IOC4peC4teC4peC4suC5guC4quC4oOC4tOC4kw0KK+C4oeC4meC4leC4o+C4tSDguKfguLTguJ7guLHguJnguJjguYzguKfguKPguJ7guIfguKnguYwNCivguKHguJnguJXguKPguLUg4Lio4Li04Lij4Li04LiV4Lix4LiZ4LiV4Li04LiY4Lij4Lij4LihDQor4Lih4LiZ4LiV4Lij4Li1IOC4quC4seC4h+C4guC4p+C4uOC4kuC4tOC4iuC4seC4ouC4geC4uOC4pQ0KK+C4oeC4meC4leC4o+C4tSDguKrguLjguJrguKPguKPguJPguJ7guIfguKnguYwNCivguKHguJnguJXguKPguLUg4Lir4Lik4LmE4LiK4Lii4Liw4Lio4Lix4LiB4LiU4Li04LmMDQor4Lih4LiZ4LiV4Lij4Li1IOC4reC4seC4h+C4qOC4uOC4mOC4meC4quC4oeC4muC4seC4leC4tA0KK+C4oeC4meC4leC4o+C4tSDguYDguK3guLfguYnguK3guK3guKHguKMNCivguKHguJnguJXguYwg4LmA4LiK4LiV4Lih4Li1DQor4Lih4LiZ4LiX4Li04Lie4Lii4LmMIOC4p+C4tOC4iuC4seC4ouC4mOC4meC4nuC4seC4kuC4meC5jA0KK+C4oeC4meC4mOC4tOC4o+C4siDguYDguK3guIHguJrguLjguI3guKLguLfguJkNCivguKHguJnguKfguLTguKDguLIg4Lib4Lij4Liw4LiK4Lix4LiN4LiE4LiU4Li1DQor4Lih4LiZ4Lix4LiZ4Lii4LmMIOC4muC4uOC4jeC4ouC4sOC4iuC4seC4og0KK+C4oeC4meC4seC4qiDguILguLHguJnguJjguLTguYLguIrguJXguLQNCivguKHguJnguLHguKog4LiI4Lix4LiZ4LiX4Lin4Li04LiKDQor4Lih4LiZ4Lix4LiqIOC4iuC4seC4ouC4quC4uOC4oOC4sg0KK+C4oeC4meC4seC4qiDguJTguLXguIrguKHguIjguLHguJnguJfguKPguYwNCivguKHguJnguLHguKog4LiX4Lit4LiH4Liq4Liw4Lit4Liy4LiUDQor4Lih4LiZ4Lix4LiqIOC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C4oeC4meC4seC4qiDguJvguKPguLDguIjguLHguIHguKnguYzguIjguLTguJXguKPguYwNCivguKHguJnguLHguKog4Lie4Lil4Lix4Lia4Lia4Li44Lij4Li1DQor4Lih4LiZ4Lix4LiqIOC4oOC4suC4hOC4teC4mOC4o+C4o+C4oQ0KK+C4oeC4meC4seC4qiDguKLguK3guYHguKrguIcNCivguKHguJnguLHguKog4LmA4Lil4Li04Lio4Lin4Lix4LiS4LiZ4Liy4LmA4Liq4Lij4Li1DQor4Lih4LiZ4Lix4LiqIOC4qOC4o+C4teC4mOC4meC4quC4suC4ow0KK+C4oeC4meC4seC4qiDguKrguK3guLTguYnguIfguJfguK3guIcNCivguKHguJnguLHguKog4Liq4Li44Lig4Liy4Lin4Li04LiV4LiyDQor4Lih4LiZ4Lix4LiqIOC4reC4h+C4hOC5jOC4quC4o+C4k+C4sOC4hOC4oQ0KK+C4oeC4meC4seC4qiDguYLguK3guKrguJbguIjguLHguJnguJfguKPguYwNCivguKHguJnguLHguKrguKfguLUg4Lie4Lii4Lix4LiE4LiG4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lih4LiZ4Li44LiK4LiN4LmMIOC4p+C4seC4kuC4meC5guC4geC5gOC4oeC4ow0KK+C4oeC4meC4uSDguYLguIrguJXguLTguKPguLHguJUNCivguKHguJnguLkg4Lib4Li04LmI4LiZ4Lig4Li54LmIDQor4Lih4LiZ4Li5IOC4p+C4suC4p+C4tQ0KK+C4oeC4meC4uSDguK3guLHguKjguKfguYDguIHguKjguKHguJPguLUNCivguKHguJnguLnguI0g4LiK4Li54Lio4Li04Lij4Li04Lit4Li44LiX4Lix4LiiDQor4Lih4LiZ4Li54LiNIOC4meC4uOC4leC4p+C4h+C4qeC5jA0KK+C4oeC4meC4ueC4jSDguJ7guLnguKXguJfguKfguLUNCivguKHguJnguLnguI0g4Lin4Li04LiB4LiB4Lih4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lih4LiZ4Li54LiNIOC4q+C4tOC4meC4peC4reC4og0KK+C4oeC4meC4ueC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guKHguLLguYDguKXguLTguKgNCivguKHguKLguLjguKPguLIg4LiI4Li14Lij4LiI4Lij4Li04Lii4Liy4LmA4Lin4LiKDQor4Lih4Lii4Li44Lij4Li1IOC4geC4peC4tOC5iOC4meC4guC4iOC4ow0KK+C4oeC4ouC4uOC4o+C4tSDguIjguIfguK3guLjguJTguKHguJfguKPguLHguJ7guKLguYwNCivguKHguKLguLjguKPguLUg4LmA4LiJ4Lil4Li04Lih4LmA4LiC4LiV4LiV4LmMDQor4Lih4Lii4Li44Lij4Li1IOC5gOC4lOC4iuC4quC4oeC4pOC4l+C4mOC4tOC5jOC4pOC4l+C4seC4og0KK+C4oeC4ouC4uOC4o+C4tSDguJjguJnguLLguYDguIHguLXguKLguKPguJXguLTguKDguLTguI3guYLguI0NCivguKHguKLguLjguKPguLUg4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4LinDQor4Lih4Lii4Li44Lij4Li1IOC5gOC4nuC5h+C4iuC4o+C5jOC4nuC4meC4oeC4nuC4ow0KK+C4oeC4ouC4uOC4o+C4tSDguYHguKLguYnguKHguYDguIHguKnguKMNCivguKHguKLguLjguKPguLUg4Lin4LiH4Lip4LmM4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lih4Lii4Li44Lij4Li1IOC4quC4luC4suC4nuC4o+C4p+C4uOC4kuC4tOC4hOC4uOC4kw0KK+C4oeC4ouC4uOC4o+C4tSDguYTguKrguKLguKrguKHguJrguLHguJXguLQNCivguKHguKLguLjguKPguLUg4LmA4Lit4Li14LmI4Lii4Lih4LmA4LiI4Lij4Li04LiNDQor4Lih4Lij4LiB4LiVIOC4iOC4seC4meC4l+C4o+C5jOC4l+C4reC4hw0KK+C4oeC4o+C4geC4lSDguKjguKLguLLguKHguKUNCivguKHguKPguLTguJnguLIg4LiU4LmI4Liy4LiZ4Lin4LiZ4Li04LiKDQor4Lih4Lil4LiR4LiyIOC4nuC4tOC4oeC4nuC5jOC5gOC4q+C4peC4teC5iOC4ouC4oQ0KK+C4oeC4peC4nOC4geC4siDguKrguKPguKPguYDguJ7guIrguJTguLLguI3guLLguJkNCivguKHguKXguKTguJTguLUg4Lib4Lij4Liw4Liq4LiH4LiE4LmM4Lic4LilDQor4Lih4Lil4Lin4Li04Lig4LiyIOC5g+C4iOC4q+C4peC4seC4gQ0KK+C4oeC4peC4tCDguKvguKXguLXguKrguLjguILguYDguKrguKPguLTguJANCivguKHguKXguLTguKfguLHguKXguKLguYwg4LmB4LiB4LmJ4Lin4Liq4Lie4Liy4LiZDQor4Lih4Lil4Li04Lin4Lix4Lil4Lii4LmMIOC4nuC4iOC4meC4quC4seC4iA0KK+C4oeC4peC4tOC4p+C4seC4peC4ouC5jCDguKrguLjguILguJvguKPguLDguKrguLLguJcNCivguKHguYjguKfguKIg4LmB4LiL4LmI4LiE4Li5DQor4Lih4LmI4Lin4LiiIOC4quC4luC4tOC4o+C4iuC4p+C4suC4pQ0KK+C4oeC5iOC4p+C4ouC5gOC4geC4teC5ieC4oiDguKXguLLguIjguLHguIfguKvguKPguLXguJQNCivguKHguYnguKfguKIg4LmA4Lir4Lil4LmI4Liy4Liq4Li04Lij4Li04Lig4Li54Lih4Li0DQor4Lih4Lit4LiL4LmMIOC4geC4suC4oeC4o+C4ueC4lOC4tOC4mQ0KK+C4oeC4sOC4meC4tOC4leC4ouC5jCDguYDguIrguLfguYnguK3guJnguLjguIoNCivguKHguLDguKXguLQg4LiB4Lil4Li04LmI4LiZ4Lih4Liy4Lil4LiyDQor4Lih4Liw4Lil4Li0IOC4iOC4tOC4p+C4sOC4quC4oeC4q+C4p+C4seC4hw0KK+C4oeC4sOC4peC4tCDguJTguYnguKfguIfguYDguIfguLTguJkNCivguKHguLDguKXguLQg4LiZ4Liy4Lih4Lih4LiZ4LiV4Lij4Li1DQor4Lih4Liw4Lil4Li0IOC4nuC4tOC4o+C4tOC4ouC4sOC4reC4meC4meC4l+C5jA0KK+C4oeC4sOC4peC4tCDguKPguLnguJvguJ7guKPguKvguKENCivguKHguLDguKXguLQg4Liq4Liy4LiY4Li4DQor4Lih4Liw4Lil4Li0IOC4reC4oeC4o+C4tOC4meC4l+C4o+C5jOC5gOC4l+C4p+C4sg0KK+C4oeC4sOC4peC4tOC4p+C4o+C4o+C4kyDguKPguLLguKLguJPguLDguKrguLjguIINCivguKHguLDguKXguLTguKfguLHguKXguKLguYwg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lih4Liw4Lil4Li04Lin4Lix4Lil4Lii4LmMIOC4p+C4seC4kuC4meC4geC4tOC4leC4leC4tOC4nuC4ow0KK+C4oeC4sOC4q+C4sOC4q+C4oeC4suC4lOC4o+C4suC4q+C4p+C4tSDguJnguLLguJvguLLguYDguKXguJkNCivguKHguLHguIfguIHguKMg4LiI4Li14Lij4Lig4Lix4LiX4Lij4LmMDQor4Lih4Lix4LiH4LiB4LijIOC4ouC4suC4meC5ieC4reC4og0KK+C4oeC4seC4iOC4ieC4o+C4tSDguYHguIvguYjguYDguJXguLXguYvguKLguKcNCivguKHguLHguJPguJHguJnguLIg4LiB4Li54LmJ4Liq4Li44Lin4Lij4Lij4LiT4Lin4Li04LiI4Li04LiV4LijDQor4Lih4Lix4LiT4LiR4LiZ4LiyIOC4mOC4suC4lOC4suC4quC4teC4q+C5jA0KK+C4oeC4seC4k+C4keC4meC4siDguKPguLHguJXguIrguLDguJbguLLguKfguKMNCivguKHguLHguJPguJHguJnguLIg4Lit4Lii4Li54LmI4Lii4LiH4LiE4LmMDQor4Lih4Lix4LiUIOC5gOC4lOC4iuC4sOC4iuC4teC4ng0KK+C4oeC4seC4l+C4meC4siDguYLguIrguITguKfguKPguKfguLHguJLguJnguIHguKMNCivguKHguLHguJfguJnguLIg4LmC4Lit4Liq4LiW4Lir4LiH4Lip4LmMDQor4Lih4Lix4LiY4Lii4LiyIOC4o+C4p+C4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4oeC4seC4meC4l+C4meC4siDguKjguKPguKrguLTguIfguKvguYwNCivguKHguLHguJnguYLguKHguK7guLHguJnguIvguLTguIfguKvguYwg4LiI4Liy4Lin4Lil4Liy4Lir4LmMDQor4Lih4Lix4LmJ4LiZ4Lif4LiyIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4oeC4seC4peC4peC4tOC4geC4siDguIrguLHguKLguKrguLTguKPguLTguYLguKPguIjguJnguYwNCivguKHguLHguKXguKXguLTguIHguLIg4Lie4LiH4Lio4LmM4LmA4LiV4LmH4Lih4Liq4Li44LiCDQor4Lih4Lix4Lil4Lil4Li04LiB4LiyIOC4qOC4o+C4teC4p+C4teC4o+C4sOC4p+C4suC4meC4tOC4iuC4geC4uOC4pQ0KK+C4oeC4seC4peC4peC4tSDguIjguIfguYDguIHguKnguKENCivguKHguLLguIEg4LmA4Lir4Lih4Li34Lit4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lih4Liy4LiT4LieIOC4o+C4uOC4iOC4meC4tOC4quC4o+C4geC4uOC4pQ0KK+C4oeC4suC4k+C4tSDguJrguLjguI3guKvguKXguIcNCivguKHguLLguJTguLUg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lih4Liy4LiZ4LiZ4LiX4LmMIOC5guC4leC4p+C4h+C4qOC5jOC4qOC4o+C4teC5gOC4iOC4o+C4tOC4jQ0KK+C4oeC4suC4meC4niDguILguLPguIrguLfguYjguJkNCivguKHguLLguJnguJ4g4LiI4Li04LiV4LiV4LmA4LiB4Lip4LihDQor4Lih4Liy4LiZ4LieIOC4i+C4seC4muC4i+C5ieC4reC4mQ0KK+C4oeC4suC4meC4niDguJfguKPguIfguYDguKrguLXguYjguKLguIfguIrguLHguKINCivguKHguLLguJnguJ4g4LiZ4Li04LmI4Lih4LiZ4Lin4Lil4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lih4Liy4LiZ4LieIOC4m+C4tOC4ouC4sOC4quC4reC4mQ0KK+C4oeC4suC4meC4niDguJ7guLbguYjguIfguK3guLPguJnguKfguKINCivguKHguLLguJnguJ4g4Lih4Li54Liu4Liz4Lir4Lih4Lix4LiUDQor4Lih4Liy4LiZ4LieIOC4peC4teC4peC4suC4q+C4tOC4o+C4seC4jQ0KK+C4oeC4suC4meC4niDguKjguKPguLXguKrguIfguKfguJkNCivguKHguLLguJnguJ4g4Liq4Li44LiC4Lin4LiH4Lip4LmM4Lio4Li04Lil4Lib4LmMDQor4Lih4Liy4LiZ4LieIOC5gOC4q+C4peC5iOC4suC4guC4p+C4seC4jeC4quC4luC4tOC4leC4ouC5jA0KK+C4oeC4suC4meC4p+C4tOC4oOC4siDguKHguLLguKjguJ7guIfguKjguYwNCivguKHguLLguJnguLAg4LiH4Liy4Lih4Lin4Lix4LiK4Lij4Liq4LiB4Li44LilDQor4Lih4Liy4LiZ4LiwIOC5gOC4iuC4teC5iOC4ouC4p+C4quC4h+C4p+C4mQ0KK+C4oeC4suC4meC4sCDguJfguKPguLHguJ7guKLguYzguIfguLLguKHguKjguLTguKPguLQNCivguKHguLLguJnguLAg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lih4Liy4LiZ4LiwIOC4nuC4tOC4oeC4nuC5jOC4quC4oeC4uOC4l+C4ow0KK+C4oeC4suC4meC4sCDguKPguLHguJXguJnguIfguLLguKHguIHguLjguKUNCivguKHguLLguJnguLAg4Lin4Li04Liq4Li44LiX4LiY4Li04LmM4Liq4Lih4Li44LiX4LijDQor4Lih4Liy4LiZ4LiwIOC4quC4teC4nOC5iOC4reC4hw0KK+C4oeC4suC4meC4sCDguK3guLTguJnguJfguKPguJ7guLTguJnguJfguLjguKfguLHguJLguJnguYwNCivguKHguLLguJnguLHguJUg4Lii4Lit4LiU4Lih4LiZ4LiV4LmMDQor4Lih4Liy4LiZ4Lix4LiqIOC4o+C4uOC5iOC4h+C5gOC4l+C4teC4ouC4oQ0KK+C4oeC4suC4meC4tOC4iCDguJfguLTguKHguJ7guLHguJLguJnguJ7guIfguKjguYwNCivguKHguLLguJnguLTguJTguLIg4Lij4Lix4LiK4LiU4Liy4LiX4Li04LiV4Lii4LmMDQor4Lih4Liy4LiZ4Li04LiVIOC5gOC4iOC4teC4ouC4o+C4lOC4tOC4kA0KK+C4oeC4suC4meC4tOC4lSDguJnguLTguKXguYDguILguJXguKPguYwNCivguKHguLLguJnguLTguJUg4Lii4Lio4Lit4LiZ4Lix4LiZ4LiV4LiB4Li44LilDQor4Lih4Liy4LiZ4Li04LiVIOC4quC4uOC4iOC4o+C4tOC4leC4p+C4seC4kuC4meC4qOC4seC4geC4lOC4tOC5jA0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguIHguLLguKvguKXguIcNCivguKHguLLguJnguLTguJXguKLguYwg4LiI4Li44LiZ4LiX4LiB4Liy4LijDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4lOC4tOC4qeC4kOC4p+C4tOC4qOC4suC4pQ0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguJnguLLguITguYTguJfguKINCivguKHguLLguJnguLTguJXguKLguYwg4LmA4Lic4Li34Lit4LiB4Lin4Lix4LiS4LiZ4LiwDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4oeC4teC4iuC4meC4sA0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguKfguIfguKjguYzguIHguLTguJXguJXguLTguJ7guLHguJLguJnguLINCivguKHguLLguJnguLTguJXguKLguYwg4Liq4Lix4LiI4LiI4LmA4LiU4LiK4LiwDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4reC4meC4uOC4o+C4seC4leC4meC5jOC4nuC4suC4meC4tOC4ig0KK+C4oeC4suC4meC4tOC4quC4siDguYDguKHguIbguKjguLTguKPguLTguIHguLjguKUNCivguKHguLLguJnguLXguKPguLHguJXguJnguYwg4Lih4Lix4LiX4LiY4Lin4Lij4Lix4LiV4LiZ4LmMDQor4Lih4Liy4Lij4Lii4Liy4LiXIOC4iOC4seC4leC4uOC4o+C4h+C4hOC5jA0KK+C4oeC4suC4o+C4qOC4o+C4tSDguIjguLHguJnguJfguKPguYzguYDguKHguLfguK3guIcNCivguKHguLLguKPguKjguKPguLUg4Lii4Liw4Lit4Li44LmC4Lih4LiH4LiE4LmMDQor4Lih4Liy4Lij4Lio4Lij4Li1IOC4reC4seC4quC4p+C4sOC4p+C4tOC4quC4tOC4l+C4mOC4tOC5jOC4iuC4seC4og0KK+C4oeC4suC4o+C4tOC4qSDguJfguYjguLLguKPguLLguJoNCivguKHguLLguKPguLTguKrguLIg4LiB4Liy4LiN4LiI4LmC4LiZ4Lig4Liy4LiqDQor4Lih4Liy4Lij4Li04Liq4LiyIOC4quC4uOC4l+C4mOC4tOC4p+C4o+C4o+C4k+C4suC4o+C4seC4leC4meC5jA0KK+C4oeC4suC4o+C4uOC4iOC4siDguKrguLjguKPguJ7guLHguJnguJjguLjguYwNCivguKHguLLguKPguLjguJUg4Liq4Li44LiZ4LiX4Lij4Lio4Li04Lij4Li04Lia4Li44LiN4LiN4LiyDQor4Lih4Liy4Lil4Lix4LiiIOC4guC4s+C5gOC4iOC4o+C4tOC4jeC4nuC4ow0KK+C4oeC4suC4peC4seC4oiDguIrguKHguJ7guLnguJrguLjguJXguKMNCivguKHguLLguKXguLHguKIg4LiU4Lit4LiB4Lia4Lix4Lin4Lir4Lil4Lin4LiHDQor4Lih4Liy4Lil4Lix4LiiIOC4meC4suC5g+C4q+C5ieC4nOC4pQ0KK+C4oeC4suC4peC4seC4oiDguJ7guKPguKvguKHguKrguKfguLHguKrguJTguLTguYwNCivguKHguLLguKXguLHguKIg4Lii4Lix4LiH4Liq4Lin4LmI4Liy4LiHDQor4Lih4Liy4Lil4Lix4LiiIOC4qOC4o+C4teC4iuC5ieC4suC4h+C4reC4tOC5iOC4oQ0KK+C4oeC4suC4peC4seC4oiDguYHguKrguIfguIfguLTguYnguKcNCivguKHguLLguKXguLHguKLguIHguKPguK3guIcg4Lih4Li54Lil4Lio4Liy4Liq4LiV4Lij4LmMDQor4Lih4Liy4Lil4LiyIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4oeC4suC4peC4siDguKvguLTguKPguLHguI3guKTguJfguJjguLTguYwNCivguKHguLLguKXguLTguJkg4LiK4Lil4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC4geC4s+C5gOC4meC4tOC4lOC4lOC4tOC4qeC4kOC5jA0KK+C4oeC4suC4peC4tOC4meC4tSDguIrguK3guLjguYjguKHguJ7guKTguIHguKnguYwNCivguKHguLLguKXguLTguJnguLUg4LiX4Lij4Lix4Lie4Lii4Lin4LiT4Li04LiKDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC5geC4m+C5ieC4h+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4oeC4suC4peC4tOC4meC4tSDguKLguK3guJTguYLguJ7guJjguLTguYzguJfguK3guIcNCivguKHguLLguKXguLTguJnguLUg4Lio4Lij4Li14Liq4Li44Lin4Lix4LiI4Lij4Li14Lii4LmMDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC4q+C4pOC4l+C4seC4ouC4quC4tOC4o+C4tOC4o+C4seC4leC4meC5jA0KK+C4oeC4suC4peC4tSDguIHguKXguLHguYjguJnguIjguLHguIfguKvguKPguLXguJQNCivguKHguLLguKXguLUg4LiB4Li44LiZ4Liw4Lin4LiH4Lip4LmMDQor4Lih4Liy4Lil4Li1IOC4guC4seC4meC4leC4tOC4p+C4h+C4p+C4suC4ow0KK+C4oeC4suC4peC4tSDguYDguITguKPguLfguK3guYDguInguKXguLTguKHguJ7guLHguJnguJjguYwNCivguKHguLLguKXguLUg4LiI4Lix4LiZ4LmD4LiI4LmA4LiU4LmH4LiUDQor4Lih4Liy4Lil4Li1IOC5gOC4iOC4o+C4tOC4jeC5gOC4geC4qeC4geC4tOC4iA0KK+C4oeC4suC4peC4tSDguIrguLHguKLguKfguJnguLTguIrguKLguLINCivguKHguLLguKXguLUg4LmA4LiK4Li34LmJ4Lit4Lio4Li04Lij4Li0DQor4Lih4Liy4Lil4Li1IOC5geC4i+C5iOC4leC4seC4mQ0KK+C4oeC4suC4peC4tSDguYHguIvguYjguYDguJXguYfguIcNCivguKHguLLguKXguLUg4LiU4Liz4Lij4LiH4LiB4Li04LiI4LiB4Li44Lil4LiK4Lix4LiiDQor4Lih4Liy4Lil4Li1IOC4leC4seC4meC4leC4tOC4m+C4tOC4j+C4gQ0KK+C4oeC4suC4peC4tSDguJfguKfguLXguKjguKPguLUNCivguKHguLLguKXguLUg4LiY4Lij4Lih4LiY4Lix4LiKDQor4Lih4Liy4Lil4Li1IOC4meC4tOC4oOC4suC4geC4o+C4nuC4seC4meC4mOC5jA0KK+C4oeC4suC4peC4tSDguJrguLjguI3guKPguK3guJQNCivguKHguLLguKXguLUg4Lib4Liy4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lih4Liy4Lil4Li1IOC4nuC4h+C4qOC5jOC4quC4s+C4o+C4suC4jQ0KK+C4oeC4suC4peC4tSDguJ7guLHguJnguJzguLbguYnguIcNCivguKHguLLguKXguLUg4LmB4Lie4Lij4LmI4Lio4Lij4Li14LiV4Lij4Liw4LiB4Li54LilDQor4Lih4Liy4Lil4Li1IOC4oeC4meC4leC5jOC4p+C4tOC5gOC4qOC4qQ0KK+C4oeC4suC4peC4tSDguKLguKfguIfguYDguIfguLTguJkNCivguKHguLLguKXguLUg4Lij4Lix4LiV4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lih4Liy4Lil4Li1IOC4peC4tOC4oeC4m+C4tOC4ouC4suC4geC4ow0KK+C4oeC4suC4peC4tSDguKfguIfguKjguYzguYHguKvguKXguKHguJfguK3guIcNCivguKHguLLguKXguLUg4Lin4Li04Lil4Lix4Lii4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMDQor4Lih4Liy4Lil4Li1IOC4qOC4tOC4o+C4tOC4hOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4oeC4suC4peC4tSDguKrguKPguYnguLLguIfguITguKfguLLguKHguITguLTguJQNCivguKHguLLguKXguLUg4Liq4Li04LiZ4Lie4Liy4LiZ4Li04LiKDQor4Lih4Liy4Lil4Li1IOC4quC4uOC4o+C4seC4leC4meC4iuC4seC4ouC4geC4suC4ow0KK+C4oeC4suC4peC4tSDguKvguJnguLbguYjguIfguJTguKfguIfguIHguKHguKUNCivguKHguLLguKXguLUg4Lit4LiV4Li04LmB4Lie4LiX4Lii4LmMDQor4Lih4Liy4Lil4Li1IOC4reC4suC4l+C4ow0KK+C4oeC4suC4peC4tSDguK3guLjguYnguKLguK3guLTguYjguKHguJfguKPguLHguJ7guKLguYwNCivguKHguLLguKXguLXguJ7guLHguJnguJjguYwg4Lij4Lix4LiQ4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lih4Liy4Lil4Li14Lij4Lix4LiV4LiZ4LmMIOC4qOC4uOC4oOC4l+C4meC4leC5jA0KK+C4oeC4suC4p+C4tOC4mSDguKjguKPguLXguKHguJPguLXguJ7guLHguJnguJjguYwNCivguKHguLLguYDguKPguLXguKIg4Lin4Lij4Lij4LiT4Liy4Lie4LiH4Lio4LmMDQor4Lih4Liy4LmA4Lij4Li14Lii4LihIOC4muC4ueC4o+C4k+C4sOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4geC4tOC4iA0KK+C4oeC4suC5gOC4o+C4teC4ouC4oSDguKrguLjguJfguJjguLTguKjguLXguKXguJjguKPguKPguKENCivguKHguLLguYLguJnguIog4LiB4Liz4LiI4Lix4LiU4Lig4Lix4LiiDQor4Lih4Liy4LmC4LiZ4LiKIOC4iuC4seC4ouC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4oeC4suC5guC4meC4iiDguJjguKPguKPguKHguKPguLHguIrguKrguLjguJnguJfguKMNCivguKHguLLguYLguJnguIog4LmA4Lib4Lij4Lih4LmB4LiB4LmJ4LinDQor4Lih4Liy4LmC4LiZ4LiKIOC4oeC4teC4qOC4o+C4tQ0KK+C4oeC4suC5guC4meC4iiDguKfguLTguIrguLTguJXguKfguLLguKrguLjguYDguJfguJ4NCivguKHguLLguYLguJnguIog4LmB4Liq4LiH4Liq4Li44LiCDQor4Lih4Liy4LmC4LiZ4LiK4LiN4LmMIOC4iuC4meC4sOC4oOC4seC4og0KK+C4oeC4suC5guC4meC4iuC4jeC5jCDguK3guKPguLjguJPguKPguLHguKjguKHguLUNCivguKHguYnguLLguYDguKrguLXguYjguKLguIcg4LmB4LiL4LmI4Lih4LmJ4LiyDQor4Lih4Li04LmI4LiH4LiC4Lin4Lix4LiNIOC5gOC4oeC4leC4leC4suC4geC4o+C4uOC4k+C4suC4geC4uOC4pQ0KK+C4oeC4tOC4leC4oyDguJnguLLguITguYDguKrguJkNCivguKHguLTguJXguKPguKDguLLguJ4g4Lia4Li44LiN4LiK4Li54LiK4LmI4Lin4LiiDQor4Lih4Li04LmI4LiZIOC5gOC4q+C4peC5iOC4suC4iuC4suC4jeC4geC4tOC4iOC4p+C4meC4tOC4ig0KK+C4oeC4tSDguJfguK3guIfguYDguKPguLfguK3guIcNCivguKHguLXguIrguLHguKIg4LiZ4Liw4Lij4LiyDQor4Lih4Li14LiK4Lix4LiiIOC4q+C4h+C4qeC5jOC4nuC4suC4meC4tOC4ig0KK+C4oeC4teC4meC4siDguYLguKPguIjguJnguYzguKfguLTguIrguIrguLINCivguKHguLXguKjguLTguKPguLQg4LiB4Li04LiI4LmE4Lie4Lio4Liy4Lil4LiU4Liz4Lij4LiHDQor4Lih4Li44LiBIOC4muC4uOC4jeC4ouC4t+C4mQ0KK+C4oeC4uOC4geC4lOC4siDguInguLHguJXguKPguYHguIHguYnguKcNCivguKHguLjguIHguJTguLIg4LmA4LiX4Lio4Lia4Lij4Lij4LmA4LiX4Li04LiHDQor4Lih4Li44LiB4LiU4LiyIOC4oeC4seC5iOC4meC4qOC4tOC4o+C4tA0KK+C4oeC4uOC4geC4lOC4siDguKjguLTguKXguLLguYLguKPguIjguJnguYwNCivguKHguLjguIHguJTguLIg4Lit4Li04LiX4LiY4Li04LiY4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lih4Li44LmI4LiH4Lih4Li44LmJ4LiiIOC5geC4i+C5iOC4q+C4ouC4tOC4mQ0KK+C4oeC4uOC4l+C4tOC4leC4siDguJbguJnguK3guKHguJfguKPguLHguJ7guKLguYwNCivguKHguLjguKLguYDguJXguLXguKLguIcg4Lio4Li04Lij4Li04Lit4Lix4LiE4Lij4LiB4Lij4LiB4Li44LilDQor4Lih4Li44LmI4Lii4LmA4LiE4LmH4LiHIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4oeC4uOC5ieC4ouC4h+C5ieC4rSDguYHguIvguYjguYLguIfguYnguKcNCivguKHguLjguKrguJXguLLguJ/guLIg4Lih4Liw4Lir4Liw4Lir4Lih4Lix4LiUDQor4Lih4Li54Lir4Liw4Lir4Lih4Lix4LiUIOC5gOC4quC4t+C4reC4quC4oeC4tOC4hw0KK+C4oeC5guC4mSDguIjguIfguJjguJnguLnguJjguKPguKPguKENCivguKHguYLguJnguKPguKog4Lii4Lit4LiU4Lii4Li04LmI4LiHDQor4LmA4Lih4LiV4LiV4LiyIOC5gOC4geC4tOC4lOC4meC4suC4hA0KK+C5gOC4oeC4leC4leC4siDguJvguLTguJXguKLguLLguJnguJnguJfguYwNCivguYDguKHguJXguJXguLIg4Liq4Li04LiX4LiY4Li04Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4Lih4LiX4Li04LiZ4Li1IOC4lOC4suC4o+C4suC4nuC4seC4leC4ow0KK+C5gOC4oeC4mOC4siDguYHguIvguYjguYDguK7guYnguIcNCivguYDguKHguJjguLIg4Lin4LiH4Lio4LmM4Lin4Liy4LiZ4Li04LiKDQor4LmA4Lih4LiY4Liy4LiT4Li1IOC4h+C4suC4oeC4l+C4p+C4teC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C5gOC4oeC4mOC4tOC4meC4tSDguJfguKPguLHguJ7guKLguYzguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguKHguJjguLUg4LiI4Lij4Li54LiN4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmM4Lie4LijDQor4LmA4Lih4LiY4Li1IOC4muC4seC4p+C4qOC4o+C4tQ0KK+C5gOC4oeC4mOC4tSDguKPguLHguJXguJnguJXguLHguYnguIfguJXguKPguLDguIHguLnguKUNCivguYDguKHguJjguLUg4Lir4LiH4Lip4LmM4LiX4Lit4LiHDQor4LmA4Lih4Lip4LiQ4Lij4Lix4LiV4LiZ4LmMIOC4oeC4meC5gOC4l+C4teC4ouC4o+C4l+C4reC4hw0KK+C5gOC4oeC4teC5iOC4ouC4p+C4iOC4tOC4hyDguYHguIvguYjguK3guLfguYnguK0NCivguYDguKHguLXguYnguKLguKfguKvguKLguLTguYnguJkg4LmB4LiL4LmI4LiB4LitDQor4LmA4Lih4LmI4LiH4LiL4LiBIOC5geC4i+C5iOC4iOC4tOC4pw0KK+C5gOC4oeC5ieC4hyDguYHguIvguYjguInguLHguYjguKcNCivguYHguKHguJkg4LiJ4Liy4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LmB4Lih4Lij4Li14LmIIOC5geC4p+C4meC4lOC4sg0KK+C5geC4oeC5ieC4meC4oeC4suC4leC4oyDguYHguK3guYnguJnguIrguLHguKLguKDguLnguKHguLQNCivguYLguKHguKzguLUg4LiE4LiH4LiB4Lil4Liy4LiHDQor4LmE4LihIOC4meC4p+C4peC5gOC4meC4leC4ow0KK+C5hOC4oeC4leC4o+C4tSDguIrguLnguKHguJPguLUNCivguYTguKHguJXguKPguLUg4Lia4Lix4Lin4LmA4LiZ4LiV4LijDQor4LmE4Lih4LiV4Lij4Li1IOC5gOC4peC4tOC4qOC5gOC4nuC4teC4ouC4o+C4nuC4tOC4l+C4ouC4geC4uOC4pQ0KK+C5hOC4oeC4leC4o+C4tSDguKvguLLguI3guJjguJnguKfguLjguJLguLTguIrguLHguKINCivguYTguKHguYkg4Lio4Lij4Li14Liq4LiH4LmI4LiyDQor4Lii4LiHIOC5gOC4leC4iuC4sOC4nuC4h+C4qOC4mOC4ow0KK+C4ouC4h+C4hOC5jOC4iuC4seC4oiDguJfguKjguJ7guKXguK3guKDguLTguJnguLHguJnguJfguYwNCivguKLguIfguIrguLHguKIg4LiE4Li44LiT4LiY4Lij4Lij4Lih4LiU4Li1DQor4Lii4LiH4Lii4LioIOC4m+C4o+C4tOC4nuC4pOC4leC4tOC4nuC4h+C4qOC5jA0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguIHguLTguIjguJ7guIfguKnguYzguJnguLTguIHguKMNCivguKLguIfguKLguLjguJfguJgg4LiG4Lix4LiH4LiZ4Li04Lih4Li04LiV4LijDQor4Lii4LiH4Lii4Li44LiX4LiYIOC5g+C4iOC5gOC4iOC4o+C4tOC4jeC4mOC4o+C4o+C4oeC4geC4uOC4pQ0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguYHguIvguYjguYDguJXguLfguYnguK3guIcNCivguKLguIfguKLguLjguJfguJgg4LiW4Li14Lij4Liw4Lin4LiH4Lio4LmMDQor4Lii4LiH4Lii4Li44LiX4LiYIOC4meC4suC4hOC4sOC4nuC4h+C4qOC5jA0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguJvguLHguI3guI3guLLguKrguIHguLjguKXguKfguIfguKjguYwNCivguKLguIfguKLguLjguJfguJgg4Lie4Li44LiX4LiY4Liq4Li44Lin4Lij4Lij4LiTDQor4Lii4LiH4Lii4Li44LiX4LiYIOC5gOC4oeC4leC4sOC4qOC4tOC4o+C4tA0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguKXguK3guKLguYDguKHguIYNCivguKLguIfguKLguLjguJfguJgg4Lin4Li04LmA4LiK4Li14Lii4Lij4Liq4Lij4Lij4LiE4LmMDQor4Lii4LiH4Lii4Li44LiX4LiYIOC4quC4oeC4tOC4l+C4mOC4tOC5gOC4lOC4iuC4geC4uOC4pQ0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguKrguLjguKfguKPguKPguJPguYDguJ7guYfguIrguKMNCivguKLguIfguKLguLjguJfguJgg4Lit4LmI4Lit4LiH4Lia4Liy4LiH4LiZ4LmJ4Lit4LiiDQor4Lii4LiH4Lii4Li44LiX4LiY4Li04LmMIOC4p+C4o+C4p+C4uOC4kuC4tA0KK+C4ouC4h+C4p+C4seC4kuC4meC5jCDguJrguLnguKPguJPguLDguJvguI/guLTguKHguLLguIHguKMNCivguKLguIfguKrguLTguJkg4LmA4LiV4LiK4Liy4Lih4Lir4LiK4Lix4LiiDQor4Lii4LmI4LiH4Liu4Lin4LiUIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4ouC5ieC4hyDguYHguIvguYjguKXguLXguYkNCivguKLguJnguJXguYwg4Lia4Li44LiN4LmA4Lir4Lil4Li34Lit4Lir4Lil4LmI4LitDQor4Lii4Lih4LmC4LiU4LiiIOC4iuC4peC4suC4ouC4meC4meC4suC4p+C4tOC4mQ0KK+C4ouC4o+C4o+C4ouC4hyDguJrguLjguI3guKrguKHguJ7guIfguKnguYwNCivguKLguKPguKPguKLguIcg4Lio4Li44Lig4Lin4Li04LiR4Li54Lij4Lii4LmMDQor4Lii4Lij4Lij4Lii4LiH4LiE4LmMIOC4nuC4peC4qOC4tOC4o+C4tA0KK+C4ouC4p+C4hyDguKXguK3guKLguKrguLINCivguKLguYnguKfguJkg4Lie4Lix4LiZ4LiZ4LiBDQor4Lii4LioIOC4quC4oeC4muC4ueC4o+C4k+C5jOC4iOC4seC4meC4l+C4o+C5jA0KK+C4ouC4qOC4o+C4suC4p+C4lOC4tSDguYDguJvguLXguYjguKLguKHguK3guKPguLjguJMNCivguKLguK3guJQg4LiB4Lil4Li04LmI4LiZ4LiB4Lil4Lix4LmI4LiZDQor4Lii4Lit4LiUIOC4quC4seC4meC4leC4tOC4meC4tOC5gOC4p+C4qOC4meC5jA0KK+C4ouC4reC4lOC4mOC4hyDguYDguIjguKPguLTguI3guIjguIfguKfguLTguJfguKLguLINCivguKLguK3guJTguKjguLHguIHguJTguLTguYwg4Lir4Lil4LmI4Lit4LiI4Li04LiV4LiV4LmM4LmA4Liq4Li14Lii4LiHDQor4Lii4LiwIOC5gOC4geC4tOC4lOC4reC4ouC4ueC5iA0KK+C4ouC4seC4geC5guC4oeC4ruC4seC4meC4i+C4tOC4h+C4q+C5jCDguKLguLHguIHguYLguKHguK7guLHguJnguIvguLTguIfguKvguYwNCivguKLguLHguKrguJrguLXguKPguIvguLTguIfguKvguYwg4Lii4Lix4Liq4Lia4Li14Lij4LiL4Li04LiH4Lir4LmMDQor4Lii4Liy4LiU4LiyIOC5gOC4qOC4p+C4leC4leC4suC4meC4uOC4quC4o+C4k+C5jA0KK+C4ouC4suC5g+C4iCDguYHguIvguYjguKXguLXguYkNCivguKLguYnguLIg4LmA4Lit4LiB4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lii4Li04LmI4LiH4Lii4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4ouC4tOC5iOC4h+C4ouC4qCDguJrguLjguJnguJnguLLguIQNCivguKLguLTguYjguIfguKjguLHguIHguJTguLTguYwg4Lib4Lix4LiI4LiK4Liy4Lih4Liy4LiV4Lii4LmMDQor4Lii4Li04LiZIOC5gOC4quC4oeC4reC5gOC4iuC4t+C5ieC4rQ0KK+C4ouC4tOC4meC4lOC4tSDguJ7guKPguKHguYDguIHguJXguLgNCivguKLguLTguJnguJTguLUg4Lit4Li04LiZ4LiX4Lij4Lih4LiH4LiE4LilDQor4Lii4Li04LmJ4LihIOC4meC4suC4quC4oeC4meC4tuC4gQ0KK+C4ouC4tOC5ieC4pyDguKvguKXguLTguKfguJvguKPguLDguYDguKrguKPguLTguJANCivguKLguLXguYjguKrguLjguYjguJkg4Lio4Li44LiB4Lij4Liw4Lin4LiT4Li04LiKDQor4Lii4Li34LiZ4Lii4LiHIOC4meC4uOC4oOC4suC4ng0KK+C4ouC4uOC4geC4ouC4tOC5ieC4mSDguYDguIrguLXguKLguIfguInguLTguJkNCivguKLguLjguITguKXguJjguKMg4LmC4Lit4Lit4LiU4Li04Lio4Lix4LiiDQor4Lii4Li44LiX4LiYIOC5gOC4iOC4o+C4tOC4jeC4hOC4leC4tOC4mOC4o+C4o+C4oQ0KK+C4ouC4uOC4l+C4mCDguKvguJnguLjguJnguKDguLHguIHguJTguLUNCivguKLguLjguJfguJjguIrguLHguKIg4LiZ4LmJ4Liz4LiX4Li04Lie4Lii4LmMDQor4Lii4Li44LiX4LiY4LiZ4Lix4LiZ4LiX4LmMIOC5gOC4geC4qeC4teC4ouC4o+C4mOC4suC4lOC4suC4meC4meC4l+C5jA0KK+C4ouC4uOC4l+C4mOC4meC4siDguIjguKPguLTguIfguYPguIjguIHguLjguKUNCivguKLguLjguJfguJjguJnguLIg4LiU4Li44LiI4LiV4Li04Lib4Li04Lii4LiwDQor4Lii4Li44LiX4LiY4LiZ4LiyIOC4muC4uOC4k+C4ouC4sOC4p+C4uOC4kuC4geC4uOC4pQ0KK+C4ouC4uOC4l+C4mOC4meC4siDguYLguKDguITguJvguKPguLDguYDguKrguKPguLTguJANCivguKLguLjguJfguJjguJnguLIg4Lin4Liy4LiZ4Li04LiK4Lit4Lix4LiH4LiB4Li54LijDQor4Lii4Li44LiX4LiY4LiZ4LiyIOC4quC4uOC4iOC4tOC4meC4leC4p+C4h+C4qeC5jA0KK+C4ouC4uOC4l+C4mOC4meC4siDguYDguK3guLXguYjguKLguKHguKrguLTguJnguJjguLjguYwNCivguKLguLjguJfguJjguJ7guIfguKnguYwg4LiJIOC5guC4o+C4iOC4meC5jOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4ouC4uOC4l+C4mOC4nuC4pSDguYTguIHguKPguK3guLLguJoNCivguKLguLjguJfguJjguKjguLHguIHguJTguLTguYwg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lii4Li44LiX4LiY4Lio4Li04Lil4Lib4LmMIOC5gOC4geC4qeC4o+C4qOC4uOC4geC4o+C5jA0KK+C4ouC4uOC4mOC4tOC4leC4siDguYHguIvguYjguYDguK7guYnguIcNCivguKLguLjguJ7guJTguLUg4LiB4Liy4LiN4LiI4LiZ4LiyDQor4Lii4Li44Lie4LiU4Li1IOC4iuC4teC4nuC4reC4suC4o+C4meC4seC4og0KK+C4ouC4uOC4nuC4lOC4tSDguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguKLguLjguJ7guJTguLUg4Lij4Lix4LiB4LiB4Liy4Lij4LiU4Li1DQor4Lii4Li44Lie4LiU4Li1IOC4quC4meC5g+C4iOC4ouC4uOC4l+C4mA0KK+C4ouC4uOC4nuC4lOC4tSDguYDguK3guLXguYjguKLguKHguKjguLjguKDguKrguKfguLHguKrguJTguLTguYwNCivguKLguLjguJ7guKLguIfguITguYwg4Lie4Li04Lij4Li04Lii4Liw4LiB4Li04LiIDQor4Lii4Li44Lie4LiyIOC4geC5i+C4h+C4meC5ieC4reC4og0KK+C4ouC4uOC4nuC4siDguILguLHguJnguJfguK3guIcNCivguKLguLjguJ7guLIg4LiI4Li04LiV4Lij4LmC4Liq4Lig4Liy4Lig4Lij4LiT4LmMDQor4Lii4Li44Lie4LiyIOC4iuC4uOC5iOC4oeC4iuC4suC4leC4tA0KK+C4ouC4uOC4nuC4siDguYHguIvguYjguYLguITguYnguKcNCivguKLguLjguJ7guLIg4LiX4Li04Lie4Lii4Lie4Lij4LmA4LiB4Lip4LihDQor4Lii4Li44Lie4LiyIOC4muC4seC4p+C4mOC4o+C4sg0KK+C4ouC4uOC4nuC4siDguYDguJvguLXguYrguKLguLDguILguLLguKLguITguKXguYjguK3guIcNCivguKLguLjguJ7guLIg4LmA4Lie4LmH4LiN4Liq4Liy4Lii4LmD4LiIDQor4Lii4Li44Lie4LiyIOC4ouC4tOC5iOC4h+C4lOC4s+C4meC4uOC5iOC4mQ0KK+C4ouC4uOC4nuC4siDguYDguKXguK3guKLguKjguYDguIHguKPguLXguKLguIfguYTguIHguKMNCivguKLguLjguJ7guLIg4LmE4Lin4LiX4Lii4Liw4Lin4Li04LiN4LiN4Li5DQor4Lii4Li44Lie4LiyIOC4quC4suC4oeC4uOC4leC4tOC4reC4uOC4lOC4oeC4o+C4seC4leC4meC5jA0KK+C4ouC4uOC4nuC4siDguYHguKrguIfguYDguKrguKPguLTguKENCivguKLguLjguJ7guLIg4Lit4Liy4LiZ4Li44Lig4Liy4Lie4Lih4LiH4LiE4LilDQor4Lii4Li44Lie4Liy4Lie4LijIOC4nuC4o+C4q+C4oeC5guC4iuC4leC4tA0KK+C4ouC4uOC4nuC4suC4oOC4o+C4k+C5jCDguIHguKXguLHguYjguJnguIHguKXguLXguJoNCivguKLguLjguJ7guLLguKfguJTguLUg4Lii4Li04LiZ4LiU4Li14Lii4Lix4LmI4LiH4Lii4Li34LiZDQor4Lii4Li44Lie4Li04LiZIOC4geC4s+C5gOC4q+C4meC4tOC4lOC4p+C4seC4mQ0KK+C4ouC4uOC4nuC4tOC4mSDguITguKXguYnguLLguKLguKrguLjguJrguKPguKPguJMNCivguKLguLjguJ7guLTguJkg4LiI4Li04LiZ4LiU4Liy4Liq4Lix4LiZ4LiV4LmMDQor4Lii4Li44Lie4Li04LiZIOC4iuC4t+C5iOC4meC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4ouC4uOC4nuC4tOC4mSDguJTguK3guJnguK3guLjguYTguJ7guKMNCivguKLguLjguJ7guLTguJkg4LiX4Lij4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lii4Li44Lie4Li04LiZIOC5gOC4mOC4teC4ouC4o+C4nuC4suC4k+C4tOC4ig0KK+C4ouC4uOC4nuC4tOC4mSDguJrguLjguJXguKPguYDguJnguLXguKLguKENCivguKLguLjguJ7guLTguJkg4Lie4LiZ4Liy4LiK4Li34LmI4LiZ4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lii4Li44Lie4Li04LiZIOC5hOC4nuC4o+C4tOC4meC4l+C4o+C4suC4oOC4sg0KK+C4ouC4uOC4nuC4tOC4mSDguYDguKHguLfguK3guIfguKfguLTguKXguLHguKINCivguKLguLjguJ7guLTguJkg4Lil4Li14Liq4Li44Lin4Li04LiK4Liy4LiB4LijDQor4Lii4Li44Lie4Li04LiZIOC4qOC4o+C4teC4iuC4seC4og0KK+C4ouC4uOC4nuC4tOC4mSDguKrguKTguKnguJTguLTguKfguLjguJLguLQNCivguKLguLjguJ7guLTguJkg4Liq4Li44LiX4LiY4Li04Liq4Li44LiZ4LiX4LijDQor4Lii4Li44Lie4Li04LiZIOC4q+C4suC4jeC4p+C4h+C4qOC5jA0KK+C4ouC4uOC4nuC4tOC4mSDguK3guLbguYrguIfguJTguLPguKPguIcNCivguKLguLjguJ7guYDguKLguLLguKfguYwg4Lio4Li04Lij4Li04LmA4Lit4Li14LmJ4Lii4Lin4Lie4Li04LiB4Li54LilDQor4Lii4Li44Lig4LiyIOC5gOC4iOC5iuC4sOC5gOC4peC4suC4sA0KK+C4ouC4uOC4oOC4siDguYHguKrguIfguYDguJTguIoNCivguKLguLjguKDguLUg4LmA4LiE4Lir4Liw4Lij4Lit4LiUDQor4Lii4Li44Lij4Li1IOC5geC4i+C5iOC5guC4reC5ieC4pw0KK+C4ouC4uOC4p+C4lOC4tSDguIHguKPguLDguIjguYjguLLguIfguYPguIgNCivguKLguLjguKfguJTguLUg4LmA4LiI4LiZ4Lij4Lix4LiB4Lih4Liy4LiV4Li44Lig4Li54Lih4Li0DQor4Lii4Li44Lin4LiU4Li1IOC5gOC4leC4iuC4sOC5gOC4iuC4p+C4h+C4geC4uOC4pQ0KK+C4ouC4uOC4p+C4lOC4tSDguJvguKPguKHguLLguIfguIHguLnguKMNCivguKLguLjguKfguJTguLUg4Lih4Li04LiV4Lij4Lig4Lix4LiB4LiU4Li1DQor4Lii4Li44Lin4LiU4Li1IOC4p+C4seC4kuC4meC4nuC4tOC4l+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4ouC4uOC4p+C4lOC4tSDguYHguKrguIfguJTguYnguKfguIcNCivguKLguLjguKfguJnguLIg4Lil4Lin4LmA4Lin4LiK4LiB4Li44LilDQor4Lii4Li44Lin4Lig4LiyIOC4muC4uOC4jeC5gOC4peC4tOC4qA0KK+C4ouC4uOC4p+C4peC4seC4geC4qeC4k+C5jCDguYDguIHguLXguKLguKPguJXguLTguJvguLHguI3guI3guLINCivguKLguLjguYDguJ7guYfguI0g4LiK4Li54Lio4Lix4LiB4LiU4Li04LmM4LmB4Liq4LiH4LiX4Lit4LiHDQor4Lii4Li54LiL4LiaIOC4reC4seC4muC4lOC4uOC4quC4peC4suC4oQ0KK+C4ouC4ueC4quC4miDguKvguKXguIfguIjguLQNCivguKLguLnguYjguYDguJXguLXguKLguIcg4LmB4LiL4LmI4LmA4LiL4Li14LiiDQor4LmA4Lii4LiyIOC5hOC4peC5hOC4pw0KK+C5gOC4ouC4suC4p+C4lOC4tSDguYHguKLguYnguKHguIjguLjguYTguKMNCivguYDguKLguLLguKfguJnguLTguIgg4LiZ4Li04LiV4Li04LiY4Lij4Lij4LihDQor4LmA4Lii4Liy4Lin4LiZ4Li44LiKIOC4nuC4uOC4l+C4mOC4tOC4nuC4tOC4o+C4geC4uOC4pQ0KK+C5gOC4ouC4suC4p+C4oOC4o+C4k+C5jCDguKrguLTguKPguLTguKfguYLguKPguJjguLLguIHguLjguKUNCivguYDguKLguLLguKfguKDguLIg4LiX4Lix4Lie4Lij4Lix4LiV4LiZ4LmMDQor4LmA4Lii4Liy4Lin4Lig4LiyIOC4p+C4tOC4peC4seC4ouC4m+C4suC4mQ0KK+C5gOC4ouC4suC4p+C4oeC4suC4peC4ouC5jCDguJfguK3guIfguJ7guKPguKvguKENCivguYDguKLguLLguKfguKPguLHguJXguJnguYwg4LiE4Lin4Liy4Lih4LiK4Lit4LiaDQor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4geC4o+C4seC4meC4leC4suC4meC4meC4l+C5jA0KK+C5gOC4ouC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguYTguIrguKLguKTguJfguJjguLTguYwNCivguYDguKLguLLguKfguKXguLHguIHguKnguJPguYwg4Lia4Li44LiN4LiN4Liy4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4oeC4k+C4teC5guC4iuC4leC4tA0KK+C5gOC4ouC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguKfguIfguKjguLLguYLguKPguIjguJnguYwNCivguYDguKLguLLguKfguKXguLHguIHguKnguJPguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lil4Lig4Liy4Lie4LijDQor4LmA4Lii4Liy4Lin4LmA4Lij4LioIOC4geC4sOC4leC4suC4geC4ueC4pQ0KK+C5gOC4ouC4suC4p+C5gOC4o+C4qCDguKfguKPguKPguJPguKrguLjguIINCivguYDguKLguLXguKLguKEg4Lie4Li44LmI4Lih4Lie4Lik4LiB4Lip4LmMDQor4LmA4Lii4Li14LmI4Lii4LihIOC4reC4tOC4meC4l+C4o+C4geC4s+C5geC4q+C4hw0KK+C5gOC4ouC4t+C5ieC4reC4mSDguYDguIHguJXguLjguKXguK3guKINCivguYDguKLguYfguJkg4LiB4Lit4LiH4LmC4Liu4LihDQor4LmA4Lii4LmH4LiZ4LiI4Li04LiVIOC4iOC4tOC4o+C4suC4nuC4seC4kuC4meC4nuC4h+C4qOC5jA0KK+C5gOC4ouC5h+C4meC4iOC4tOC4leC4o+C5jCDguJvguKPguLDguJfguLXguJvguYHguKrguIfguKPguLHguJXguJnguYwNCivguYHguKLguYnguKEg4LmC4LiB4Lih4Li04LiZ4LiyDQor4LmC4Lii4LiY4Li04LiZIOC4hOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C5guC4ouC4mOC4tOC4mSDguJ7guIfguKjguYzguJ7guLHguIrguKPguLLguJ7guLHguJnguJjguLjguYwNCivguYLguKLguJjguLTguJkg4Lio4Li04Lij4Li04LmC4Liq4Lig4LiTDQor4LmD4LiiIOC4m+C4seC4luC4p+C4tQ0KK+C4o+C4iOC4meC4siDguIjguLHguIHguKPguKTguJfguJjguLTguJ7guIfguKjguYwNCivguKPguIjguJnguLIg4Lie4Liy4LiU4Li1DQor4Lij4LiI4LiZ4LiyIOC5geC4quC4h+C5guC4quC4oOC4kw0KK+C4o+C4iOC4tOC4lSDguKPguLHguIHguKLguK3guJQNCivguKPguJMg4Liq4Liy4Liq4LiZ4Liq4Li04LiX4LiY4Li04LmMDQor4Lij4LiT4LiK4Lix4LiiIOC4meC4tOC4leC4tOC4iuC4suC4hOC4ow0KK+C4o+C4k+C4iuC4seC4oiDguYDguK3guJnguIHguK3guKHguKPguIrguLHguKINCivguKPguJPguKPguIfguITguYwg4LmC4LiJ4Lih4Lio4Li44Lig4Liy4LiH4LiE4LmMDQor4Lij4LiT4Liq4Li04LiX4LiY4Li04LmMIOC4o+C4seC4leC4meC5gOC4geC4qeC4leC4ow0KK+C4o+C4leC4tOC4nuC4o+C4o+C4kyDguKPguLHguJXguJnguLTguJUNCivguKPguJ7guLTguJnguJfguKPguYwg4Lin4Li04LiK4LiK4Li44LmE4LiV4Lij4Lig4LieDQor4Lij4Lie4Li14Lie4Lij4Lij4LiTIOC5gOC4ieC4peC4tOC4oeC4iuC4seC4ouC5guC4geC4qOC4pQ0KK+C4o+C4nuC4teC4p+C4o+C4o+C4kyDguKrguLHguKHguJvguIrguLHguI3guI3guLANCivguKPguKHguKLguYzguIrguKXguLUg4Lia4Li44LiV4Lij4LmE4LiK4LiiDQor4Lij4Lin4LiH4LiX4Lit4LiHIOC4quC5ieC4oeC5gOC4geC4peC4teC5ieC4ouC4hw0KK+C4o+C4p+C4oeC4nuC4oyDguKDguLLguJnguLHguJnguJfguJnguYwNCivguKPguKfguKLguKPguLTguJkg4Lin4LiI4Liw4LmC4LiZ4Lig4Liy4LiqDQor4Lij4Lin4Li04Lin4Lij4Lij4LiTIOC5hOC4iuC4ouC4p+C4quC4uA0KK+C4o+C4p+C4teC4meC4uOC4iiDguITguLjguJPguJjguKPguKPguKHguKrguJbguLTguJUNCivguKPguKfguLXguKfguKPguKPguJMg4Lie4LiH4Lip4LmM4LiU4LiZ4LiV4Lij4Li1DQor4Lij4Lin4Li14Lin4Lij4Lij4LiTIOC4reC4suC4o+C4teC4mOC4o+C4o+C4oeC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4o+C4quC4meC4siDguKfguLHguJLguJnguLLguKrguLjguJnguJfguKPguJ7guIfguKjguYwNCivguKPguKrguKPguLTguJnguJfguKPguYwg4LiB4LiZ4LiB4Lit4Li44LiU4LihDQor4Lij4Liq4Liq4Li44LiE4LiZ4LiY4LmMIOC4leC4suC4oeC4qOC4o+C4tQ0KK+C4o+C4quC4quC4uOC4hOC4meC4mOC5jCDguKjguKPguLXguJXguLTguKHguIfguITguKUNCivguKPguK3guIcg4Lih4Li54Lil4Lih4LiT4Li1DQor4Lij4Lit4Lif4Liw4Lir4LmMIOC5gOC4i+C5h+C4meC4q+C4peC4p+C4hw0KK+C4o+C4reC5gOC4muC4teC5iuC4ouC4sCDguKLguLTguYjguIfguJnguLTguKLguKENCivguKPguLDguJXguLIg4Lit4Li04LiZ4LiX4Lij4LmM4LmB4LiB4LmJ4LinDQor4Lij4Liw4Lia4Li04LilIOC5guC4quC4oOC4k+C4nuC4meC4tOC4ig0KK+C4o+C4sOC4nuC4tSDguJvguKPguLDguKrguJ7guIrguLHguKINCivguKPguLDguJ7guLXguJ7guKPguKPguJMg4LiC4Lit4Lia4LiK4Li04LiVDQor4Lij4Liw4Lie4Li14Lie4Lij4Lij4LiTIOC4peC4s+C4iOC4p+C4meC4iOC4tOC4leC4leC5jA0KK+C4o+C4sOC4nuC4teC4nuC4seC4meC4mOC5jCDguK3guLLguKPguLXguKLguYwNCivguKPguLDguKLguYnguLLguJfguLTguJ7guKLguYwg4Lit4Li04LiZ4LiX4Lij4LiX4Li54LiVDQor4Lij4Liw4Lin4Li0IOC4muC4uOC4jeC4nOC4lOC4uOC4hw0KK+C4o+C4sOC4p+C4tOC4p+C4o+C4o+C4kyDguJvguKPguLDguJfguLjguKHguJ7guKfguIcNCivguKPguLDguKfguLUg4LiZ4Lix4LiZ4LiX4Liq4Liz4LmA4Lij4Li04LiHDQor4Lij4Liw4Lin4Li14Lin4Lij4Lij4LiTIOC5gOC4iOC4meC4geC4suC4ow0KK+C4o+C4sOC4p+C4teC4p+C4o+C4o+C4kyDguKDguLHguJfguKPguJvguKPguLDguKDguLINCivguKPguLDguKfguLXguKfguKPguKPguJPguYwg4LiV4Liy4LiK4Li54LiK4Liy4LiV4Li0DQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC4geC4tOC4iOC4geC4peC5ieC4sg0KK+C4o+C4sOC5gOC4muC4teC4ouC4miDguIjguLTguJXguKPguJrguLPguKPguLjguIcNCivguKPguLDguYDguJrguLXguKLguJog4LiX4Lix4Lia4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC4m+C4tOC5iOC4meC5geC4geC5ieC4pw0KK+C4o+C4sOC5gOC4muC4teC4ouC4miDguKHguLLguJnguLTguIHguJ7guLHguJnguJjguLjguYwNCivguKPguLDguYDguJrguLXguKLguJog4Lin4Lij4Liq4Li44LiC4Liq4Lix4LiH4LiC4LmMDQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC5gOC4quC4t+C4reC4quC4oeC4tOC4hw0KK+C4o+C4sOC5gOC4p+C4hyDguKXguLHguKLguKjguKPguLUNCivguKPguLHguIHguIrguJnguIEg4LmB4LiL4LmI4LmA4LiI4Li14LiiDQor4Lij4Lix4LiB4Lie4LiH4Lip4LmMIOC4p+C4h+C4qeC5jOC4iOC4s+C4meC4h+C4hOC5jA0KK+C4o+C4seC4geC4qeC5jCDguIHguLDguKPguLXguKPguLHguJUNCivguKPguLHguIHguKnguYwg4Lit4LmI4Lit4LiZ4LiZ4Liy4LiHDQor4Lij4Lix4LiH4LiX4Lit4LiHIOC4p+C4teC4o+C4sOC4nuC4seC4kuC4meC5jA0KK+C4o+C4seC4h+C4qeC4tSDguYDguJfguKjguJ7guLHguJnguJjguYwNCivguKPguLHguIfguKrguKPguKPguITguYwg4LiB4Lix4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC4iOC4uOC4rOC4suC4mOC4o+C4o+C4oeC4geC4uOC4pQ0KK+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jCDguJXguLHguJnguJXguLTguYDguKfguIrguIHguLjguKUNCivguKPguLHguIfguKrguKPguKPguITguYwg4Lib4Lix4LiN4LiN4Liy4Lig4LiyDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC4oeC4tOC4leC4o+C4nuC4seC4meC4mOC5jOC4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jCDguKfguLTguJrguLnguKXguJ7guLHguJLguJnguLDguKfguIfguKjguYwNCivguKPguLHguIfguKrguKPguKPguITguYwg4Liq4Li44LiZ4LiX4Lij4LiZ4Lix4LiZ4LiX4LmMDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4iOC4s+C4o+C4seC4qg0KK+C4o+C4seC4h+C4quC4tOC4lSDguYDguJTguIrguLDguIHguLjguKUNCivguKPguLHguIfguKrguLTguKHguLHguJnguJXguYwg4Lik4LiB4Lip4LmM4Lit4Li04LiZ4LiX4Lij4Lit4Liy4Lij4Li14Lii4LmMDQor4Lij4Lix4LiH4Liq4Li04Lih4LiyIOC5geC4quC4h+C4q+C4tOC4o+C4seC4jeC4p+C4seC4kuC4meC4sg0KK+C4o+C4seC4iiDguKfguKPguKPguJPguKfguLHguJLguJnguLANCivguKPguLHguIrguI7guLIg4LiI4Li04LiV4LiV4Li04Lin4Lij4Lij4LiTDQor4Lij4Lix4LiK4LiO4LiyIOC4quC4tOC4o+C4tOC4p+C4seC4kuC4meC4p+C4h+C4qOC5jA0KK+C4o+C4seC4iuC4juC4suC4p+C4o+C4o+C4kyDguKLguLDguJXguLTguJnguLHguJnguJfguYwNCivguKPguLHguIrguJTguLIg4LmA4LiE4Lii4Lih4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lij4Lix4LiK4LiU4LiyIOC4o+C4uOC5iOC4h+C5gOC4qOC4p+C4leC4geC4uOC4pQ0KK+C4o+C4seC4iuC4lOC4suC4nuC4oyDguKrguLjguILguYDguIHguKnguKHguKPguLHguJXguJnguYwNCivguKPguLHguIrguJXguKTguJTguLUg4Lij4Li44LiI4Li04LiT4Lij4LiH4LiE4LmMDQor4Lij4Lix4LiK4LiZ4Li04LiB4LijIOC5geC4quC4h+C4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4o+C4seC4iuC4meC4tSDguIHguLTguJXguJXguLTguKPguLHguIfguKrguLUNCivguKPguLHguIrguJnguLUg4LiE4Liy4LiI4Li04LiI4Li0DQor4Lij4Lix4LiK4LiZ4Li1IOC4iOC4tOC4o+C4l+C4p+C4teC4p+C4h+C4qOC5jA0KK+C4o+C4seC4iuC4meC4tSDguIrguKfguJXguLLguJnguJnguJfguYwNCivguKPguLHguIrguJnguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lij4Lix4LiK4LiZ4Li1IOC4leC4o+C4teC4muC4seC4jeC4iuC4suC4p+C4h+C4qOC5jA0KK+C4o+C4seC4iuC4meC4tSDguJfguLHguJrguKXguLDguITguKMNCivguKPguLHguIrguJnguLUg4LiZ4Liy4LiE4Liq4Li44LiCDQor4Lij4Lix4LiK4LiZ4Li1IOC4muC4uOC4leC4o+C4quC4tQ0KK+C4o+C4seC4iuC4meC4tSDguYHguJzguYjguJvguKPguLDguYDguKrguKPguLTguJANCivguKPguLHguIrguJnguLUg4Lie4Li54Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lij4Lix4LiK4LiZ4Li1IOC4oeC4suC4rOC4oeC4h+C4hOC4pQ0KK+C4o+C4seC4iuC4meC4tSDguKPguLHguJXguJnguYLguIHguKfguLTguJcNCivguKPguLHguIrguJnguLUg4Lil4Li34Lit4Lin4Li04Lih4Lil4LiB4Lik4Lip4LiQDQor4Lij4Lix4LiK4LiZ4Li1IOC4p+C4tOC4o+C4seC4iuC4meC4teC4ouC5jA0KK+C4o+C4seC4iuC4meC4tSDguKrguIHguLjguKXguKrguLjguKPguKPguLHguJXguJnguYwNCivguKPguLHguIrguJnguLUg4Liq4Li44LiB4Lip4Lih4Lij4Lix4LiV4LiZ4LmMDQor4Lij4Lix4LiK4LiZ4Li1IOC5geC4quC4h+C4quC4teC4l+C4reC4hw0KK+C4o+C4seC4iuC4meC4tSDguK3guKDguLTguIrguLHguKLguIHguLjguKUNCivguKPguLHguIrguJnguLUg4LmA4Lit4LiB4LiZ4Lin4Liy4Lij4Liw4LiK4Liy4LiV4Li0DQor4Lij4Lix4LiK4LiZ4Li14LiB4LijIOC4oeC4seC5iOC4h+C4oeC4teC4nOC4pQ0KK+C4o+C4seC4iuC4meC4teC4muC4ueC4peC4ouC5jCDguKHguLLguYTguJ7guKjguLLguKXguKLguYwNCivguKPguLHguIrguJnguLXguKDguKPguJPguYwg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lij4Lix4LiK4LiZ4Li14Lin4Lij4Lij4LiTIOC4geC5i+C4reC4ouC4quC4uOC4p+C4o+C4o+C4kw0KK+C4o+C4seC4iuC4meC4teC4p+C4o+C4o+C4kyDguKXguLDguK3guK3guYDguK3guLXguYjguKLguKENCivguKPguLHguIrguJ7guIfguKnguYwg4Lio4Li04Lij4Li04Lih4Li1DQor4Lij4Lix4LiK4Lij4Li1IOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4o+C4seC4jeC4iOC4p+C4mSDguKfguIfguKnguYzguIHguKXguYnguLLguKvguLLguI0NCivguKPguLHguJDguIHguLLguKMg4LmA4LiB4Li04LiU4LiU4Li1DQor4Lij4Lix4LiQ4Lie4LilIOC4h+C4suC4oeC4quC4oeC4uOC4l+C4ow0KK+C4o+C4seC4kOC4suC4oOC4tOC4o+C4seC4geC4qeC5jCDguJXguLHguJPguJHguJvguKPguLDguKjguLLguKrguJnguYwNCivguKPguLHguJXguJXguLTguIHguKMg4LiV4Lix4LmJ4LiH4Lie4Liy4LiZ4LiX4Lit4LiHDQor4Lij4Lix4LiV4LiV4Li04Lie4LijIOC4geC4o+C4quC4uOC4l+C4mOC4tOC5guC4quC4oOC4kw0KK+C4o+C4seC4leC4leC4tOC4ouC4siDguJ7guLnguKXguK3guKPguYjguLLguKENCivguKPguLHguJXguJnguYzguIHguLjguKUg4LiTIOC4p+C4tOC4l+C4ouC4suC4meC4seC4meC4l+C5jA0KK+C4o+C4seC4leC4meC5jOC4iuC4juC4siDguJ7guLHguJnguJjguYzguJnguLTguIHguLjguKUNCivguKPguLHguJXguJnguKHguJPguLUg4LmB4Lie4LiX4Lii4LmM4Lie4Lix4LiZ4LiY4LmM4Lio4Lij4Li1DQor4Lij4Lix4LiV4LiZ4LiwIOC4hOC4uOC4k+C4suC4meC4nuC4o+C4seC4leC4meC5jA0KK+C4o+C4seC4leC4meC4siDguIHguKXguLHguYjguJnguYHguIHguYnguKcNCivguKPguLHguJXguJnguLIg4LiB4Li44Lio4LilDQor4Lij4Lix4LiV4LiZ4LiyIOC5gOC4guC4teC4ouC4meC4oOC4seC4geC4lOC4tQ0KK+C4o+C4seC4leC4meC4siDguIfguLLguKHguILguLMNCivguKPguLHguJXguJnguLIg4LiI4Li04LiV4LiV4LmM4LiI4Liy4Lij4Li24LiBDQor4Lij4Lix4LiV4LiZ4LiyIOC5g+C4iOC4m+C4suC4mQ0KK+C4o+C4seC4leC4meC4siDguIrguLTguJnguKfguLHguJLguJnguLINCivguKPguLHguJXguJnguLIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lij4Lix4LiV4LiZ4LiyIOC4kyDguJXguLDguIHguLHguYjguKfguJfguLjguYjguIcNCivguKPguLHguJXguJnguLIg4LiV4Liy4Lij4Lie4LilDQor4Lij4Lix4LiV4LiZ4LiyIOC4l+C4reC4h+C4hOC4peC5ieC4suC4og0KK+C4o+C4seC4leC4meC4siDguJjguLXguKPguLDguKHguIfguITguKXguIHguLjguKUNCivguKPguLHguJXguJnguLIg4LmA4LiZ4Li14Lii4Lih4LiZ4Liz4Lic4LilDQor4Lij4Lix4LiV4LiZ4LiyIOC5gOC4muC5h+C4jeC4iOC5guC4oOC4hOC4tQ0KK+C4o+C4seC4leC4meC4siDguYDguJvguKXguLXguYjguKLguJnguKrguLUNCivguKPguLHguJXguJnguLIg4Lie4Lil4Lit4Lii4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lij4Lix4LiV4LiZ4LiyIOC4nuC4uOC4geC4muC4suC4h+C4iOC4suC4gQ0KK+C4o+C4seC4leC4meC4siDguKDguLLguKrguKfguKPguKfguLTguJfguKLguYwNCivguKPguLHguJXguJnguLIg4Lih4Li14Lil4Lix4LiB4Lip4LiT4LiwDQor4Lij4Lix4LiV4LiZ4LiyIOC4o+C4seC4geC4qeC5jOC4iuC4mQ0KK+C4o+C4seC4leC4meC4siDguYLguKPguIjguJnguYzguKHguKvguLLguKHguIfguITguKUNCivguKPguLHguJXguJnguLIg4LmA4Lil4Li14LmI4Lii4Lin4Lib4Lij4Li14LiK4LiyDQor4Lij4Lix4LiV4LiZ4LiyIOC4p+C4quC4uOC4p+C4suC4meC4tOC4ig0KK+C4o+C4seC4leC4meC4siDguYDguKfguLXguKLguIfguJjguLXguKPguKfguLHguJLguJnguYwNCivguKPguLHguJXguJnguLIg4Lio4Li04Lij4Li04LiZ4Lij4Liy4LiB4Lij4LiT4LmMDQor4Lij4Lix4LiV4LiZ4LiyIOC4quC4oeC4muC4ueC4o+C4k+C5jOC4meC4tOC4mOC4tOC4nOC4pQ0KK+C4o+C4seC4leC4meC4siDguKrguLXguKfguLTguKrguLjguJfguJjguLTguYwNCivguKPguLHguJXguJnguLIg4Liq4Li44Lin4Lix4LiK4Lij4Li14Lij4Lix4LiB4Lip4LmMDQor4Lij4Lix4LiV4LiZ4LiyIOC4q+C4suC4jeC4nuC4peC4suC4iuC4seC4og0KK+C4o+C4seC4leC4meC4siDguK3guYjguK3guIfguYDguJ7guYfguIrguKPguYwNCivguKPguLHguJXguJnguLIg4Lit4Li44LiK4Li44Lig4Liy4LieDQor4Lij4Lix4LiV4LiZ4Liy4Lie4LijIOC4hOC4uOC5ieC4oeC4nuC4h+C4qOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4o+C4seC4leC4meC4suC4oOC4o+C4k+C5jCDguIjguLbguIfguKrguIfguKfguJnguKrguLTguJfguJjguLTguYwNCivguKPguLHguJXguJnguLLguKDguKPguJPguYwg4Lib4Lij4Liw4Lii4Li54Lij4LmC4Lig4LiE4Lij4Liy4LiKDQor4Lij4Lix4LiV4LiZ4Liy4Lig4Lij4LiT4LmMIOC4qOC4o+C4teC4meC4suC4o+C4suC4hw0KK+C4o+C4seC4leC4meC4suC4p+C4lOC4tSDguJXguLHguJnguJXguLDguJvguLLguKUNCivguKPguLHguJXguJnguYwg4LmB4LiB4LmJ4Lin4LiB4Li54LijDQor4Lij4Lix4LiV4LiZ4LmMIOC4nuC4suC4meC4tOC4iuC4nuC4seC4meC4mOC5jA0KK+C4o+C4seC4leC4meC5jCDguYDguKvguKXguLfguK3guIfguKjguLjguKDguYLguIrguIQNCivguKPguLHguJnguJTguKMg4LmA4Lir4Lil4LmH4LiB4Lii4Lix4LiHDQor4Lij4Lix4Lih4Lig4LiyIOC4nuC4o+C4sOC4o+C4seC4geC4qeC4sg0KK+C4o+C4seC4qOC4oeC4tSDguITguLjguJPguJvguKPguLDguYDguKrguKPguLTguJDguIHguLjguKUNCivguKPguLHguKjguKHguLUg4LmA4LiX4Lie4LiU4Lil4LmE4LiK4LiiDQor4Lij4Lix4Lio4Lih4Li1IOC4ouC4tOC5iOC4h+C5gOC4iOC4o+C4tOC4jeC4geC4reC4muC4geC4tOC4iA0KK+C4o+C4seC4qOC4oeC4tSDguKrguLjguKfguKPguKPguJPguJzguYjguK3guIfguYPguKoNCivguKPguLHguKrguKHguLUg4LiE4Liz4LmB4Lir4LiH4Lie4LilDQor4Lij4Liy4LiK4Lib4Liy4Lil4LiL4Li04LiH4Lir4LmMIOC4meC4suC4o+C4seC4hw0KK+C4o+C4suC4iuC4seC4meC4ouC5jCDguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguKPguLLguIrguLTguJnguLUg4LiZ4Lin4LmA4LiI4Lij4Li04LiN4Lin4LiH4Lio4LmMDQor4Lij4Liy4LiT4Li1IOC4m+C4ueC4o+C4k+C5guC4iuC4leC4tA0KK+C4o+C4suC4leC4o+C4tSDguIHguKXguLTguYjguJnguKvguKfguKUNCivguKPguLLguJXguKPguLUg4LiI4LiV4Li44LmC4LiK4LiV4Li04LiK4Lin4Liy4Lil4Li44LilDQor4Lij4Liy4LiV4Lij4Li1IOC5geC4i+C5iOC5gOC4peC4teC5ieC4ouC4hw0KK+C4o+C4suC4leC4o+C4tSDguJnguLHguJnguKDguLHguIHguJTguLUNCivguKPguLLguJXguKPguLUg4Lie4LiH4Lio4LmM4Lie4Lix4LiZ4LiY4LmM4Lio4Lix4LiB4LiU4LiyDQor4Lij4Liy4LiV4Lij4Li1IOC4oeC4seC5iOC4meC4iOC4tOC4leC4leC5jA0KK+C4o+C4suC4leC4o+C4tSDguYTguKfguJfguKLguLTguJnguJfguKPguYwNCivguKPguLLguJXguKPguLUg4Liq4Li44LmI4Lih4Lih4Liy4LiV4Lii4LmMDQor4Lij4Liy4LiZ4Li1IOC5gOC4h+C4tOC4meC4luC4suC4p+C4ow0KK+C4o+C4suC4oeC4pOC4l+C4mOC4tOC5jCDguYDguJfguKfguIHguLjguKUNCivguKPguLLguKfguLTguJkg4Lit4LiZ4Lix4LiZ4LiV4LmM4LiX4Lij4LiH4Lin4Li04LiX4Lii4LmMDQor4Lij4Liy4Lio4Lij4Li1IOC4qOC4o+C4teC4o+C4seC4leC4meC4geC4ueC4pQ0KK+C4o+C4suC5gOC4iuC4meC4l+C4o+C5jCDguIrguLLguI3guJnguLTguJXguLQNCivguKPguLLguYDguKHguKgg4Lia4Li04LiZ4LmB4LitDQor4Lij4Liz4Lie4Lin4LiZIOC4m+C4o+C4suC4geC4j+C4p+C4h+C4qeC5jA0KK+C4o+C4s+C4nuC4tuC4hyDguJnguLTguKXguKrguLjguKfguKPguKPguJMNCivguKPguLPguJ7guLbguIcg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4Lij4Liz4LmA4Lie4LiiIOC4oOC4suC4quC4nuC4seC4meC4mOC5jA0KK+C4o+C4s+C5hOC4niDguYHguIvguYjguKXguLTguYnguKENCivguKPguLPguYTguJ4g4LmA4Lij4Li34Lit4LiZ4LiX4Li04Lie4Lii4LmMDQor4Lij4Liz4LmE4LieIOC4reC4uOC4rOC4suC4o+C4suC4h+C4geC4ueC4ow0KK+C4o+C4tOC4meC4iuC4seC4oiDguIrguLHguKLguKfguKPguJ7guKMNCivguKPguLTguKfguYLguIHguYrguLDguYDguITguLXguKLguKcg4LiW4Li04LiV4Liw4LiK4Lix4LiiDQor4Lij4Li34LmI4LiZIOC4quC4sOC5gOC4meC4suC4p+C5jA0KK+C4o+C4uOC5iOC4hyDguIrguKHguIrguLfguYjguJkNCivguKPguLjguYjguIfguIHguLLguJnguJXguYwg4Lie4Li34LiK4Liq4Li04LiH4Lir4LmMDQor4Lij4Li44LmI4LiH4LiV4Lin4Lix4LiZIOC4leC4seC4meC4o+C4seC4leC4meC4p+C4h+C4qOC5jA0KK+C4o+C4uOC5iOC4h+C4l+C4tOC4nuC4ouC5jCDguJXguLHguJnguJXguKPguLDguKDguLTguKPguKHguKLguYwNCivguKPguLjguYjguIfguJfguLTguJ7guKLguYwg4Lih4LiT4Li14Liq4Lix4LiH4LiC4LmMDQor4Lij4Li44LmI4LiH4LiX4Li04Lie4Lii4LmMIOC4quC4uOC5gOC4o+C4meC4l+C4o+C4suC4o+C4seC4geC4qeC5jA0KK+C4o+C4uOC5iOC4h+C4l+C4tOC4p+C4siDguIrguLLguI3guJ7guLTguJfguKLguLLguJnguLjguIHguLnguKXguIHguLTguIgNCivguKPguLjguYjguIfguJfguLTguKfguLIg4Lie4Li04Lig4Lie4LmE4LiK4Lii4Liy4Liq4Li04LiX4LiY4Li04LmMDQor4Lij4Li44LmI4LiH4LiX4Li04Lin4LiyIOC4quC4uOC4meC4sg0KK+C4o+C4uOC5iOC4h+C4meC4oOC4siDguITguIfguKrguKfguLHguKrguJTguLTguYwNCivguKPguLjguYjguIfguJnguKDguLIg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4Lij4Li44LmI4LiH4LiZ4Lig4LiyIOC4muC4uOC4jeC4iuC4t+C5iOC4mQ0KK+C4o+C4uOC5iOC4h+C4meC4oOC4siDguKHguJPguJHguLLguJfguK3guIcNCivguKPguLjguYjguIfguJnguKDguLIg4Lin4Liy4Liq4LiZ4Liy4LiU4Liz4Lij4LiH4LiU4Li1DQor4Lij4Li44LmI4LiH4LiZ4Lig4LiyIOC5geC4quC4p+C4h+C4nOC4pQ0KK+C4o+C4uOC5iOC4h+C4nuC4tOC4l+C4ouC4siDguKfguLHguKXguKLguYzguKjguKPguLUNCivguKPguLjguYjguIfguKPguKfguLUg4Lio4Lij4Li14Lin4Li04Lil4Lix4LiiDQor4Lij4Li44LmI4LiH4Lij4Lix4LiQIOC4geC4tOC4leC4leC4tOC4iuC4seC4ouC4k+C4o+C4h+C4hOC5jA0KK+C4o+C4uOC5iOC4h+C4o+C4seC4leC4meC5jCDguJ7guIjguJnguYzguJjguJnguKHguLLguKgNCivguKPguLjguYjguIfguKPguLHguJXguJnguYwg4Liq4Li44LiZ4LiX4Lij4Lin4Lij4LmA4LiK4Lip4LiQ4LmMDQor4Lij4Li44LmI4LiH4Lik4LiU4Li1IOC4muC4uOC4jeC5gOC4iOC4o+C4tOC4jeC4l+C4p+C4teC4quC4uOC4gg0KK+C4o+C4uOC5iOC4h+C4pOC4l+C4seC4oiDguKPguK3guJTguYLguJ7guJjguLTguYzguJfguK3guIcNCivguKPguLjguYjguIfguKjguLHguIHguJTguLTguYwg4LmB4Lib4LmJ4LiZ4LmD4Lir4LiN4LmIDQor4Lij4Li44LmI4LiH4Lit4Lij4Li44LiTIOC4geC4o+C4reC4h+C4geC4suC4o+C4uOC4k+C4ouC5jA0KK+C4o+C4uOC5iOC4h+C4reC4o+C4uOC4kyDguYLguJ7guJjguLTguYzguJnguLTguKHguLTguJXguKMNCivguKPguLjguYjguIfguYDguIHguLXguKLguKPguJXguLQg4Lib4Li04Lii4Lio4Li44Lig4LiB4Li04LiIDQor4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHIOC4ouC4t+C4meC4ouC4h+C4hOC5jA0KK+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jCDguIHguKPguKPguJPguKrguLnguJUNCivguKPguLjguYjguIfguYLguKPguIjguJnguYwg4LmC4LiK4LiV4Li04Lib4Lij4Liw4LiB4Liy4Lii4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMIOC4muC4uOC4jeC4i+C4t+C5iOC4rQ0KK+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jCDguYDguKPguLfguK3guIfguKTguJfguJjguLTguYwNCivguKPguLjguYjguIfguYLguKPguIjguJnguYwg4Liq4Li44Lie4Li44LiX4LiY4Li04LmE4LiB4LijDQor4Lij4Li44LmJ4LiH4LiX4Lit4LiHIOC4hOC4uOC4k+C4m+C4o+C4sOC4oOC4suC4geC4ow0KK+C4o+C4uOC5ieC4h+C4peC4lOC4siDguKvguLjguYjguJnguKrguKfguLHguKrguJTguLTguYwNCivguKPguLjguIjguIjguKPguLTguJnguJfguKPguYwg4Lij4Li04LiZ4LiX4Lij4LiwDQor4Lij4Li44LiI4LiyIOC4quC4uOC4guC4oeC4suC4peC4iOC4seC4meC4l+C4o+C5jA0KK+C4o+C4uOC4iOC4tOC4o+C4seC4leC4meC5jCDguJnguLTguJXguLTguKrguLjguJ7guKPguKPguLHguJXguJnguYwNCivguKPguLjguIjguLTguKPguLIg4LmA4LiX4Li14LmI4Lii4LiH4Lit4Lij4Li44LiTDQor4Lij4Li44LiI4Li04Lij4LiyIOC4qOC4o+C4iOC4tOC4leC4leC5jA0KK+C4o+C4uOC4iOC4tOC5gOC4o+C4gSDguJjguLHguJnguKfguLLguJnguJnguJfguYwNCivguKPguLjguIjguLUg4LmA4Lie4LmH4LiK4Lij4LiZ4Li04LilDQor4Lij4Li44LiZIOC4reC4h+C4reC4suC4iA0KK+C5gOC4o+C4k+C4uOC4oeC4suC4qCDguJ/guK3guIfguYDguJ7guYfguIrguKMNCivguYDguKPguJPguLkg4LiH4Liy4Lih4LiC4LizDQor4LmA4Lij4LiT4Li5IOC4i+C4t+C5iOC4reC4leC4o+C4hw0KK+C5gOC4o+C4k+C4uSDguJjguJnguKrguLTguJkNCivguYDguKPguJPguLkg4Lib4Li04LiV4Li04LiZ4Lix4LiZ4LiX4LmMDQor4LmA4Lij4LiT4Li5IOC4oeC4q+C4suC4iuC4suC4meC4tOC4geC4sA0KK+C5gOC4o+C4k+C4uSDguKXguLXguYnguJjguLXguKPguLDguIHguLjguKUNCivguYDguKPguJPguLkg4LmA4Lio4Lin4LiV4LmA4Lil4LiCDQor4LmA4Lij4LiT4Li5IOC4quC4uOC5hOC4peC4oeC4suC4mQ0KK+C5gOC4o+C4k+C4uSDguYDguK3guLfguYnguK3guYDguJ/guLfguYnguK0NCivguYDguKPguKfguJTguLUg4LmE4LiK4Lii4Liy4LiE4LizDQor4LmA4Lij4Lin4LiU4Li1IOC4muC4uOC4jeC5gOC4peC4tOC4qA0KK+C5gOC4o+C4p+C4lOC4tSDguYDguKXguLTguKjguIrguLHguKLguKfguKPguIHguLjguKUNCivguYDguKPguKfguJTguLUg4LmA4Lir4Lil4Li14LmI4Lii4Lih4LmE4LiX4LiiDQor4LmA4Lij4Lin4Lix4LiVIOC4h+C5ieC4suC4p+C4p+C4tOC5gOC4qOC4qQ0KK+C5gOC4o+C4p+C4seC4lSDguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguYDguKPguKfguLHguJXguJXguYwg4Lin4Lij4Lij4LiT4Liq4Li04LiZ4LiY4LmMDQor4LmA4Lij4Lin4Lix4LiV4LijIOC4quC4tOC4meC4mOC4uOC4quC4reC4suC4lA0KK+C5gOC4o+C4tOC4hyDguILguLPguKrguLjguIINCivguYDguKPguLTguIfguIrguLHguKIg4Lin4LiH4Lip4LmM4LiU4Li1DQor4LmA4Lij4Li04LiH4Lik4LiX4LiY4Li04LmMIOC4meC4seC4meC4l+C4meC4suC4iOC4suC4o+C4ouC5jOC4geC4uOC4pQ0KK+C5gOC4o+C4tOC4h+C4qOC4seC4geC4lOC4tOC5jCDguKrguKHguJ7guIfguKnguYwNCivguYDguKPguLTguYjguKHguKPguIjguLTguJUg4LiU4LmJ4Lin4LiH4Liq4Liz4Lij4Liy4LiNDQor4LmA4Lij4Li14Lii4LihIOC5gOC4geC4qeC4quC4suC4hOC4ow0KK+C5gOC4o+C4teC4ouC4oSDguKDguLnguJrguLLguKUNCivguYDguKPguLXguKLguKHguKPguLHguJXguJnguYwg4LmA4LiB4LiV4Li44LiB4Liy4LiN4LiI4LiZ4LmMDQor4LmA4Lij4Li34Lit4LiH4LiB4Li04LiIIOC5gOC4q+C4o+C4teC4ouC4jeC4geC4oeC4pQ0KK+C5gOC4o+C4t+C4reC4h+C4iuC4seC4oiDguKPguK3guJTguKPguLHguJXguJnguYwNCivguYDguKPguLfguK3guIfguKLguKgg4LiC4Liy4Lin4Liq4Lit4Liy4LiUDQor4LmA4Lij4Li34Lit4LiH4Lij4Lix4LiV4LiZ4LiyIOC4reC4uOC4meC4sOC4nuC4s+C4meC4seC4gQ0KK+C5gOC4o+C4t+C4reC4h+C4p+C4tOC4l+C4ouC5jCDguIjguLjguKXguIHguK3guIfguK7guYnguK0NCivguYDguKPguLfguK3guIfguKjguLHguIHguJTguLTguYwg4LiI4Liy4Lij4Li44LiB4Li04LiI4LmC4Liq4Lig4LiTDQor4LmA4Lij4Li34Lit4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4quC5iOC4h+C5hOC4nuC4qOC4suC4pQ0KK+C5gOC4o+C4t+C4reC4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguYDguIrguLLguKfguKPguLHguJXguJnguYwNCivguYDguKPguLfguK3guIfguYTguKMg4Lie4Li54LiZ4Lie4Liy4LiZ4Li04LiKDQor4LmA4Lij4LmE4LijIOC4iOC4tOC4o+C4qOC4seC4geC4lOC4tOC5jOC4l+C4p+C4tQ0KK+C5geC4o+C4h+C4o+C4seC4kCDguIHguKfguLXguKLguLANCivguYLguKPguIjguJnguLUg4LmA4Lih4LiG4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lin4Li04LiX4Lii4LmMDQor4LmC4Lij4LihIOC4hOC4h+C5gOC4iOC4suC4sA0KK+C5hOC4o+C4p+C4o+C4o+C4kyDguKrguLLguKLguKrguIHguLjguKUNCivguKTguJTguLUg4LiB4Lih4Lil4Lih4Liy4LioDQor4Lik4LiU4Li1IOC4peC4tOC5iOC4oeC4l+C4reC4h+C4meC5ieC4reC4og0KK+C4pOC4lOC4teC4o+C4seC4leC4meC5jCDguIrguLXguJ7guKrguLjguJfguJjguLINCivguKTguJfguJjguLTguIrguLHguKIg4LiZ4Li04Lii4Lih4LmC4LiK4LiEDQor4Lik4LiX4LiY4Li04Lij4LiH4LiE4LmMIOC4l+C4p+C4teC4mOC4meC4p+C4suC4k+C4tOC4iuC4ouC5jA0KK+C4pOC4l+C4mOC4tOC5jCDguYDguIrguLfguYnguK3guIrguLHguKINCivguKTguJfguLHguKIg4Lie4Lix4LiZ4LiY4Li44LmA4LiU4LiKDQor4Lik4Liy4LiK4Li44LiV4LiyIOC4reC4seC4oeC4nuC4uOC4ig0KK+C4peC4lOC4suC4nuC4o+C4o+C4kyDguJ7guLTguKjguKXguJ7guLnguKUNCivguKXguJTguLLguKfguLHguKXguKLguYwg4LiI4Li04LiZ4LiU4Liy4Lin4LiH4Lip4LmMDQor4Lil4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC5gOC4nOC4t+C5iOC4reC4meC4meC5ieC4reC4og0KK+C4peC4lOC4suC4p+C4seC4peC4ouC5jCDguKjguKPguLXguIHguLLguI3guIjguJnguLINCivguKXguJog4LiZ4Liy4LiU4Lit4LiZDQor4Lil4Lih4Lix4LiiIOC5geC4geC5ieC4p+C4nuC4seC4meC4leC4sg0KK+C4peC4oeC4seC4oiDguKHguJnguLLguJvguLUNCivguKXguKHguLLguJQg4Lie4Lil4LmA4Lij4Li34Lit4LiHDQor4Lil4Lih4Li54LilIOC4l+C4reC4h+C4iuC4t+C5iOC4mQ0KK+C4peC4peC4meC4siDguJTguLXguKrguKHguKrguLjguIINCivguKXguKXguLTguJXguJXguLIg4Liq4Liy4LiY4Li44LiB4Liy4LijDQor4Lil4Lil4Li04Liq4LiyIOC4meC4suC4oeC4quC4uOC4lOC5g+C4iA0KK+C4peC5ieC4p+C4mSDguJrguLjguKnguJrguLINCivguKXguYnguKfguJkg4Lir4Lih4Lin4LiU4Liq4Lix4LiZ4LmA4LiX4Li14Lii4LiwDQor4Lil4Lit4LiiIOC4q+C4suC4jeC4k+C4o+C4h+C4hOC5jA0KK+C4peC4reC4rSDguJrguLnguKPguJPguKjguLTguKPguLQNCivguKXguK3guK0g4Lir4Lit4Lii4Lio4Lij4Li14LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lil4Lit4Lit4Lio4Lij4Li1IOC4muC4o+C4o+C4iOC4h+C4qOC4tOC4peC4mw0KK+C4peC4sOC4lOC4siDguKrguJnguKXguK3guKINCivguKXguLDguKHguYjguK3guKEg4LmA4LiZ4LiV4LiV4Liw4Liq4Li54LiVDQor4Lil4Liw4Lih4LmI4Lit4LihIOC5geC4quC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4peC4sOC4oeC4seC4oiDguJfguK3guIfguKLguLHguYjguIfguKLguLfguJkNCivguKXguLDguKHguLHguKIg4Lij4Lix4LiB4LiB4Liy4LijDQor4Lil4Liw4Lih4Lix4LiiIOC4reC4suC4o+C4oeC4ouC5jOC4lOC4tQ0KK+C4peC4sOC4oeC5ieC4suC4oiDguJ7guKTguIHguKnguYzguKrguLjguJnguLHguJnguJfguYwNCivguKXguLDguKHguLjguJkg4LmA4Lib4Lil4LmI4LiH4Lin4Lix4LiZDQor4Lil4Liw4Lih4Li54LilIOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4peC4sOC4reC4rSDguITguLnguJPguKrguLTguJnguJfguKfguLXguIHguLjguKUNCivguKXguLDguK3guK0g4LiY4LmA4LiZ4Lio4LiY4Liy4LiU4LiyDQor4Lil4Liw4Lit4LitIOC5gOC4nuC5h+C4jeC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4peC4sOC4reC4rSDguKfguLTguIjguLTguJXguKMNCivguKXguLDguK3guK0g4Lit4Lii4Li54LmI4Lii4Li34LiZ4Lii4LiHDQor4Lil4Liw4Lit4Lit4LiHIOC4iuC4sOC5gOC4meC4leC4tOC4ouC4seC4hw0KK+C4peC4sOC4reC4reC4hyDguJvguLLguJnguYDguKHguYjguJkNCivguKXguLDguK3guK3guIcg4Lin4LiH4Lip4LiyDQor4Lil4Liw4Lit4Lit4LiH4LiU4Liy4LinIOC5gOC4geC4t+C5ieC4reC4geC4ueC4pQ0KK+C4peC4sOC4reC4reC4qOC4o+C4tSDguKrguLLguYDguK3guLXguYjguKLguKENCivguKXguLDguYDguKHguLXguKLguJQg4LiX4Lix4Lia4LiX4Li04Lih4LiX4Lit4LiHDQor4Lil4Liw4LmA4Lih4Li14Lii4LiUIOC5gOC4peC4suC4q+C4nuC4seC4meC4mOC4uOC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguIHguKXguLTguYjguJnguKXguLPguJTguKfguJkNCivguKXguLDguYDguK3guLXguKLguJQg4LiI4Lix4LiZ4LiX4Liw4Lin4LiH4Lio4LmMDQor4Lil4Liw4LmA4Lit4Li14Lii4LiUIOC4lOC5ieC4p+C4h+C5guC4lQ0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguJnguLjguYnguKLguYDguKXguYfguIENCivguKXguLDguYDguK3guLXguKLguJQg4Lie4Li04Lil4Li24LiBDQor4Lil4Liw4LmA4Lit4Li14Lii4LiUIOC5gOC4o+C4t+C4reC4h+C4qOC4o+C4tQ0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguKrguLLguKPguIjguLHguJnguJfguKPguYwNCivguKXguLDguYDguK3guLXguKLguJQg4LmA4Lit4Li14LmI4Lii4Lih4Lin4Li04LiI4Liy4Lij4LiT4LmMDQor4Lil4Lix4LiB4LiC4LiT4LiyIOC4geC4o+C4o+C5guC4oeC4m+C4geC4o+C4k+C5jA0KK+C4peC4seC4geC4guC4k+C4siDguIrguYnguLLguIfguYHguIjguYnguIcNCivguKXguLHguIHguILguJPguLIg4LiZ4LmJ4Lit4Lii4Lib4Lij4Li14LiK4LiyDQor4Lil4Lix4LiB4LiC4LiT4LiyIOC5guC4nuC4mOC4tOC4geC4uOC4pQ0KK+C4peC4seC4geC4guC4k+C4siDguYDguKfguKzguLjguKrguLjguKfguKPguKPguJMNCivguKXguLHguIHguILguJPguLIg4Lit4Lig4Li04Lin4Lix4LiS4LiZ4Lie4LiH4Lio4LmMDQor4Lil4Lix4LiB4Lip4LmM4LiE4LiT4LiyIOC4mOC4meC4sOC4m+C4seC4geC4qeC5jA0KK+C4peC4seC4geC4qeC4k+C4siDguIjguLLguKPguLjguYHguKrguIfguYTguJ7guYTguKPguIjguJnguYwNCivguKXguLHguIHguKnguJPguLIg4Lib4Li04LmI4LiZ4Lib4Lil4Li34LmJ4Lih4LiI4Li04LiV4LiV4LmMDQor4Lil4Lix4LiB4Lip4LiT4LiyIOC4qOC4o+C4teC5gOC4iuC4suC4p+C4o+C4seC4leC4meC5jA0KK+C4peC4seC4geC4qeC4k+C4tSDguKjguKPguLXguKrguJbguLLguJ7guKMNCivguKXguLHguIHguKnguJPguYwg4Lit4Lig4Li04LiK4Liy4LiV4Li04LiY4Lij4Lij4LihDQor4Lil4Lix4LiB4Lip4Lih4Li1IOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4peC4seC4hOC4meC4siDguIHguLHguJnguJXguKPguLDguKfguIfguKjguYwNCivguKXguLHguYnguIcg4LmB4LiL4LmI4LiE4Li5DQor4Lil4Lix4LmJ4LiH4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC5guC4gQ0KK+C4peC4seC4lOC4lOC4siDguIHguLLguI3guIjguJnguIHguLHguJnguJfguKPguYwNCivguKXguLHguJTguJTguLIg4LmB4LiB4LmJ4Lin4Lij4Lix4Lio4Lih4Li14Lin4LiH4Lio4LmMDQor4Lil4Lix4LiU4LiU4LiyIOC4hOC4uOC5ieC4oeC5gOC4geC4o+C4hw0KK+C4peC4seC4lOC4lOC4siDguIjguLTguJXguJXguYzguK3guYjguK3guJkNCivguKXguLHguJTguJTguLIg4LiK4Lil4LmE4Lie4Lij4Lie4Li04Lih4Lil4Lij4Lix4LiV4LiZ4LmMDQor4Lil4Lix4LiU4LiU4LiyIOC4i+C4reC4quC4uOC4guC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4peC4seC4lOC4lOC4siDguYHguIvguYjguK3guLbguYnguIcNCivguKXguLHguJTguJTguLIg4LiU4Li14Liq4Lix4LmJ4LiZDQor4Lil4Lix4LiU4LiU4LiyIOC5guC4leC5iuC4sOC4l+C4reC4hw0KK+C4peC4seC4lOC4lOC4siDguJjguKPguKPguKHguLLguKDguLTguKPguLLguJnguJnguJfguYwNCivguKXguLHguJTguJTguLIg4LiZ4Li44LiK4LmA4Lib4Lil4Li14LmI4Lii4LiZDQor4Lil4Lix4LiU4LiU4LiyIOC4m+C4j+C4tOC4muC4seC4leC4tA0KK+C4peC4seC4lOC4lOC4siDguYDguJzguYjguLLguJrguLjguI3guKHguLUNCivguKXguLHguJTguJTguLIg4Lie4Li24LmI4LiH4Lie4Lix4LiS4LiZ4LmMDQor4Lil4Lix4LiU4LiU4LiyIOC4oeC4h+C4hOC4peC4meC4seC4jg0KK+C4peC4seC4lOC4lOC4siDguKLguIfguYTguKrguKcNCivguKXguLHguJTguJTguLIg4Lij4Li44LmI4LiH4Lin4Li04LiV4Lij4Li1DQor4Lil4Lix4LiU4LiU4LiyIOC4p+C4h+C4qOC5jOC4peC4sOC4hOC4ow0KK+C4peC4seC4lOC4lOC4siDguKfguLTguKHguLjguIHguJXguLLguKLguJkNCivguKXguLHguJTguJTguLIg4Lio4Li04Lij4Li04LiH4LiwDQor4Lil4Lix4LiU4LiU4LiyIOC4quC4seC4oeC4pOC4l+C4mOC4tOC5gOC4p+C4ig0KK+C4peC4seC4lOC4lOC4siDguKrguLjguJnguJfguKPguLLguKfguIfguKjguYwNCivguKXguLHguJTguJTguLIg4Lir4Lin4Lix4LiH4Lih4Li1DQor4Lil4Lix4LiU4LiU4LiyIOC4reC4seC4muC4lOC4uOC4peC4peC4suC5g+C4mg0KK+C4peC4seC4lOC4lOC4siDguYDguK3guLTguJrguK3guLTguYjguKENCivguKXguLHguJTguJTguLLguKfguKPguKPguJMg4LiI4Li04LiV4Lij4LiU4LiyDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lij4Lij4LiT4LmMIOC4nuC4uOC5iOC4oeC4p+C4tOC5gOC4qOC4qQ0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguIfguLLguKHguJvguKPguLDguKHguKfguI0NCivguKXguLHguJTguJTguLLguKfguLHguKXguKLguYwg4LmB4LiL4LmI4LiZ4Li04LmJ4LihDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4meC4meC4l+C4sOC4meC4suC4hOC4ow0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguJ7guKXguK3guKLguYDguJ7guYfguIrguKMNCivguKXguLHguJTguJTguLLguKfguLHguKXguKLguYwg4Lii4Li44LiX4LiY4LiZ4Liy4Liq4Li04Lij4Li04LiB4Li44LilDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4qOC4o+C4teC4o+C4seC4leC4meC5guC4iuC4leC4tOC4iuC5iOC4p+C4hw0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguKrguLjguYDguKHguJjguLLguKjguKMNCivguKXguLHguJTguJ7guKXguLUg4Liq4Li04LiZ4LiY4Li44LmC4Liq4Lig4LiTDQor4Lil4Lix4LmI4LiZ4LiX4LihIOC4peC4teC4nuC4seC4meC5geC4quC4hw0KK+C4peC4suC4mSDguKfguIfguKjguYzguIfguLLguKHguIHguJnguIENCivguKXguLLguKXguLXguKfguLHguJPguKLguYwg4Lia4Li44LiZ4LiZ4Liy4LiEDQor4Lil4Liy4Lin4Lix4LiT4Lii4LmMIOC5hOC4iuC4ouC4muC4ueC4o+C4k+C4sOC4nuC4seC4meC4mOC5jOC4geC4uOC4pQ0KK+C4peC4suC4p+C4seC4k+C4ouC5jCDguKTguJfguJjguLTguJnguJnguJfguYwNCivguKXguLLguKfguLHguKXguKLguYwg4LiB4Lix4LiZ4LiK4Liy4LiV4Li0DQor4Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC5guC4iuC4leC4tOC4nuC4seC4meC4mOC5jA0KK+C4peC4suC4p+C4seC4peC4ouC5jCDguJrguLTguJnguKrguLjguKHguLHguJkNCivguKXguLLguKfguLHguKXguKLguYwg4LmB4Lii4LmJ4Lih4Lib4Lij4Liw4Lig4LiyDQor4Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC4qOC4uOC4guC5gOC4l+C4p+C4sg0KK+C4peC4suC4p+C4seC4peC4ouC5jCDguK3guLTguJnguJfguKPguJTguLTguKnguJDguYwNCivguKXguLPguIjguKfguJkg4Lia4Li44LiN4LmA4LiC4LmH4LihDQor4Lil4Liz4LiU4Lin4LiZIOC4geC4o+C4uOC4lOC4nuC4seC4meC4mOC5jA0KK+C4peC4s+C4lOC4p+C4mSDguYDguJXguIrguLDguYDguKrguJkNCivguKXguLPguJTguKfguJkg4LmA4Lie4LmH4LiK4Lij4LiB4Lil4Lix4LiaDQor4Lil4Liz4LiU4Lin4LiZIOC4quC4tOC4oeC4sOC4guC4iOC4o+C4muC4uOC4jQ0KK+C4peC4s+C4nuC4oyDguITguLPguKHguLINCivguKXguLPguJ7guLHguIcg4Lit4Li44LiU4LihDQor4Lil4Liz4Lie4Li5IOC4quC4t+C4muC4quC4p+C5iOC4suC4h+C4geC4uOC4pQ0KK+C4peC4s+C4oOC4uSDguKjguKPguLXguKDguITguLLguIHguKMNCivguKXguLPguKLguK3guIcg4LiZ4Lig4LiZ4LiX4Li1DQor4Lil4Liz4Lij4LiwIOC4l+C4seC4muC5gOC4m+C4peC4teC5iOC4ouC4mQ0KK+C4peC4s+C5gOC4iOC4teC4ouC4gSDguKPguLHguJXguKPguKrguLLguKMNCivguKXguLPguYDguJ7guKIg4LmA4Lih4LiG4Lib4Lij4Liw4Liq4Liy4LiXDQor4Lil4Liz4LmD4LiiIOC4iOC4o+C4tOC4leC4iuC4teC4p+C4sA0KK+C4peC4s+C5g+C4oiDguJvguLLguJnguYDguKPguLfguK3guIcNCivguKXguLPguYPguKIg4Liq4Li44Lin4Lij4Lij4LiT4LmC4LiK4LiV4Li0DQor4Lil4LmJ4LizIOC5g+C4iOC5gOC4geC5iOC4h+C4geC4tOC4iA0KK+C4peC4tOC4guC4tOC4lSDguIrguKfguKjguLTguKPguLQNCivguKXguLTguILguLTguJUg4Lij4Lix4LiV4LiZ4Lie4LiH4Lio4LmMDQor4Lil4Li04LiU4LiyIOC4leC4seC4meC4leC4tOC4iOC4o+C4o+C4ouC4suC4meC4meC4l+C5jA0KK+C4peC4tOC4meC4lOC4siDguIjguLTguKPguJvguKPguLDguKDguLLguIHguKMNCivguKXguLTguJnguJTguLIg4Lin4Li14Lij4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lil4Li04LmJ4LiZ4LiI4Li14LmIIOC4guC4seC4meC4l+C4reC4h+C4lOC4tQ0KK+C4peC4tOC5ieC4meC4iOC4teC5iCDguKrguKHguLTguJXguLTguJnguLHguJnguJfguJnguYwNCivguKXguLTguYjguKHguIrguLTguKcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lil4Li04LmJ4LihIOC4quC4uOC4guC4p+C4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4peC4tOC4peC4teC5iCDguKvguIfguKrguYzguKrguLjguILguJ7guLHguJnguJjguLjguYwNCivguKXguLUg4Liq4Li44LiC4LmB4Liq4LiH4LmD4LiqDQor4Lil4Li14LiV4LmJ4LiyIOC4geC4tOC4iOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4peC4teC4peC4siDguKXguLTguJkNCivguKXguLXguK7guLHguYnguKcg4Lio4Li04Lij4Li04LiK4Liy4LiV4LiK4Lix4LiiDQor4Lil4Li14LmI4LmA4LiE4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4peC4teC5iCDguK3guKLguLnguYjguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguKXguLfguK3guIrguLHguKIg4LmE4Lie4LmC4Lij4LiI4LiZ4LmM4Lie4Li44LiX4LiY4Li04LiE4Li44LiTDQor4Lil4Li34Lit4Lie4LiH4Lip4LmMIOC5guC4nuC4mOC4tOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4peC4uOC5ieC4oiDguYLguJXguJXguKPguLbguIfguJfguKPguLHguJ7guKLguYwNCivguKXguLnguIHguIrguLTguYnguJkg4Lir4LiH4Lip4LmM4LiX4Lit4LiHDQor4LmA4Lil4LiC4LiyIOC5gOC4nuC4iuC4o+C5gOC4quC4meC4sg0KK+C5gOC4peC4reC4nuC4h+C4qeC5jCDguYDguKPguLfguK3guIfguKfguLLguJnguLTguIoNCivguYDguKXguK3guKjguLHguIHguJTguLTguYwg4Liq4LiW4Li04LiV4Lii4LmM4Lin4Li04Lih4LilDQor4LmA4Lil4Liy4Lir4LiZ4Li44Lin4Lix4LiV4Li0IOC5gOC4peC4suC4q+C4meC4uOC4p+C4seC4leC4tA0KK+C5gOC4peC4tOC4qCDguIrguLfguYjguJnguYTguKHguYjguKfguLLguKINCivguYDguKXguLTguKgg4Lij4Liw4Lir4LiyDQor4LmA4Lil4Li04Lio4LiK4Lix4LiiIOC4hOC4peC5iOC4reC4h+C4mOC4meC4geC4tOC4iA0KK+C5gOC4peC4tOC4qOC4iuC4suC4oiDguITguYnguLLguJzguKXguJTguLUNCivguYDguKXguLTguKjguKTguJfguJjguLTguYwg4LiV4Lix4LmJ4LiH4LiB4LmI4Lit4Liq4LiB4Li44LilDQor4LmA4Lil4Li04Lio4Lin4Li04LiX4Lii4LmMIOC5guC4o+C4iOC4meC5jOC4guC4iOC4o+C4meC4oOC4suC4peC4seC4og0KK+C5gOC4peC4tOC4qOC4qOC4tOC4peC4m+C5jCDguITguLXguKPguLUNCivguYDguKXguLXguKLguIfguIrguLHguKIg4Lit4Lij4Li44LiT4LiB4Li04LiI4LmA4LiI4Lij4Li04LiNDQor4LmA4Lil4Li14LmI4Lii4LiH4LiE4Li04LihIOC5geC4i+C5iOC4reC4seC5iuC4hw0KK+C5gOC4peC4teC5iOC4ouC4h+C5gOC4ruC5h+C4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguKXguLXguYnguKLguIcg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4LmA4Lil4Li34LmI4Lit4LiZIOC4geC4pOC4qeC4k+C4geC4o+C4tQ0KK+C5gOC4peC4t+C5iOC4reC4mSDguKrguKHguJTguLUNCivguYDguKXguYfguIEg4LiB4Li44Lil4LiB4Li04LiI4LiB4Liz4LiI4LijDQor4LmA4Lil4LmH4LiBIOC4iOC4leC4uOC4nuC4o+C4q+C4oeC4p+C4h+C4qOC5jA0KK+C5gOC4peC5h+C4gSDguIrguYnguLLguIfguYDguJzguLfguK3guIENCivguYDguKXguYfguIEg4LmB4LiL4LmI4Lil4Li14LmJDQor4LmA4Lil4LmH4LiBIOC4lOC4reC4geC4quC4suC4ouC4q+C4ouC4uOC4lA0KK+C5gOC4peC5h+C4gSDguJfguKPguLHguJ7guKLguYzguYHguKrguJnguJTguLUNCivguYDguKXguYfguIEg4LiZ4Liy4Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4Lil4LmH4LiBIOC4m+C5ieC4reC4oeC4iuC4ueC5geC4geC5ieC4pw0KK+C5gOC4peC5h+C4gSDguJ7guLXguKPguJ7guKXguLLguJnguLHguJnguJfguYwNCivguYDguKXguYfguIEg4LmA4Lih4LiY4Li14LiB4Li44LilDQor4LmA4Lil4LmH4LiBIOC4peC4tOC5ieC4oeC4m+C4tOC4geC4o+C4k+C5jA0KK+C5gOC4peC5h+C4gSDguKjguKPguLXguIHguKXguLTguYjguJnguKrguLjguKfguKPguKPguJMNCivguYDguKXguYfguIEg4Liq4Liy4LiV4Lij4LiZ4LiZ4LiX4Lij4Li14Lii4LmMDQor4LmA4Lil4LmH4LiBIOC5geC4quC4h+C5g+C4quC5geC4geC5ieC4pw0KK+C5gOC4peC5h+C4gSDguK3guLHguIHguKnguKPguLLguJnguLjguKfguLHguJXguKMNCivguYDguKXguYfguJog4Lin4LiH4Lip4LmM4LmA4LiI4Lij4Li04LiNDQor4LmA4Lil4LmJ4LiHIOC5geC4i+C5iOC5geC4leC5iQ0KK+C5geC4peC5ieC4oSDguKDguLTguKPguKHguKLguYzguKHguYjguKfguIcNCivguYTguKXguYjguK7guIEg4LmB4LiL4LmI4LmA4Lia4LmKDQor4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC5hOC4l+C4o+C4h+C4suC4oQ0KK+C4p+C4h+C4qOC5jOC4iOC4seC4meC4l+C4o+C5jCDguKfguLTguYDguKjguKnguKjguKMNCivguKfguIfguKjguYzguKjguLTguKPguLQg4Lie4Lij4Lir4Lih4LiK4LiZ4LiwDQor4Lin4LiH4Lio4LmMIOC4iOC4s+C4meC4h+C4p+C4tOC4l+C4ouC5jA0KK+C4p+C4h+C4qeC5jOC5gOC4lOC4t+C4reC4mSDguIrguJnguJvguKPguLDguIrguLINCivguKfguIfguYDguJTguLfguK3guJkg4LiH4Liy4Lih4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4Lin4LiH4LmA4LiU4Li34Lit4LiZIOC4m+C4tOC5iOC4meC4geC4uOC4oeC4oOC4teC4o+C5jA0KK+C4p+C4h+C5gOC4lOC4t+C4reC4mSDguKrguLjguILguYDguJnguJXguKMNCivguKfguIrguLTguKMg4LiZ4Li04Lii4Lih4Lio4Li04Lil4LibDQor4Lin4LiK4Li04Lij4LiwIOC4mOC4o+C4o+C4oeC4q+C4l+C4seC4og0KK+C4p+C4iuC4tOC4o+C4siDguIHguLTguYjguIfguYHguIHguYnguKcNCivguKfguIrguLTguKPguLIg4Lir4Lil4Li14Lil4Liw4LmA4Lih4Li14Lii4LijDQor4Lin4LiK4Li04Lij4Liy4Lin4Lix4Lil4Lii4LmMIOC4p+C4tOC4l+C4ouC4nuC4suC4meC4tOC4ig0KK+C4p+C4k+C4tOC4iuC4siDguYLguK3guJfguIHguLLguJnguJnguJfguYwNCivguKfguJPguLUg4Lin4Li04LiI4Li04LiV4LijDQor4Lin4LiU4Li14LiB4Lij4LiT4LmMIOC4quC4uOC4guC4iOC4suC4o+C4uOC4p+C4o+C4o+C4kw0KK+C4p+C4meC4o+C4seC4iuC4leC5jCDguJXguLHguYnguIfguITguLLguKPguKfguLDguITguLjguJMNCivguKfguJnguLLguKXguLUg4LiI4Li04LiV4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4LiZ4Li04LiK4LiyIOC4o+C4seC4leC4meC4sOC4p+C4tOC4qA0KK+C4p+C4meC4tOC4lOC4siDguIHguLLguKvguKXguLTguJoNCivguKfguJnguLTguJTguLIg4LiC4Lix4LiZ4LiY4Liq4Li04LiX4LiY4Li04LmMDQor4Lin4LiZ4Li04LiU4LiyIOC4iOC4h+C4m+C4tOC4ouC4sOC5gOC4peC4tOC4qA0KK+C4p+C4meC4tOC4lOC4siDguIjguLjguKXguKrguLjguKfguKPguKPguJMNCivguKfguJnguLTguJTguLIg4LiK4Lix4Lii4LiK4Lix4LiK4Lin4Liy4LilDQor4Lin4LiZ4Li04LiU4LiyIOC4i+C4tuC4h+C4l+C4reC4hw0KK+C4p+C4meC4tOC4lOC4siDguJDguLLguJnguLDguKrguJbguLTguKPguIHguLjguKUNCivguKfguJnguLTguJTguLIg4LiV4Li04Lil4LiB4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4LiZ4Li04LiU4LiyIOC5gOC4l+C4nuC4nuC4tOC4l+C4seC4geC4qeC5jOC4nuC4h+C4qeC5jA0KK+C4p+C4meC4tOC4lOC4siDguJnguLTguKHguKHguLLguJnguYTguJ7guYLguKPguIjguJnguYwNCivguKfguJnguLTguJTguLIg4Lia4Li54Lij4LiT4Liq4Lix4LiI4LiI4LiwDQor4Lin4LiZ4Li04LiU4LiyIOC4nOC4peC4suC4nOC4pQ0KK+C4p+C4meC4tOC4lOC4siDguJ7guLLguJnguLTguIrguYDguIjguKPguLTguI0NCivguKfguJnguLTguJTguLIg4Lig4Li54LiX4Li04Lie4Lii4Lin4LiH4Lip4LiyDQor4Lin4LiZ4Li04LiU4LiyIOC5hOC4oeC5ieC4lOC4teC5gOC4peC4tOC4qA0KK+C4p+C4meC4tOC4lOC4siDguYDguKPguLfguK3guIfguJjguLXguKPguK3guLPguJnguKfguKINCivguKfguJnguLTguJTguLIg4LmA4Lil4Li14LmJ4Lii4LiH4LiW4LiZ4Lit4LihDQor4Lin4LiZ4Li04LiU4LiyIOC4p+C4tOC4jeC4jeC4ueC4p+C4tOC4quC4tOC4l+C4mOC4tOC4o+C4seC4geC4qeC5jA0KK+C4p+C4meC4tOC4lOC4siDguKjguLLguJnguJXguYzguJ7guLTguKPguLTguKLguLANCivguKfguJnguLTguJTguLIg4Liq4Lij4Liy4Lin4Li44LiY4Lin4Li04LiZ4Lix4LiiDQor4Lin4LiZ4Li04LiU4LiyIOC4quC4uOC4guC4quC4oeC4oOC4seC4geC4lOC4tOC5jA0KK+C4p+C4meC4tOC4lOC4siDguYHguKrguIfguJ7guIfguKjguYzguIrguKfguLLguKUNCivguKfguJnguLTguJTguLIg4Lit4Lih4Liy4LiV4Lii4LiB4Li44LilDQor4Lin4LiZ4Li04LiU4LiyIOC4reC4uOC4l+C4ouC4suC4h+C4geC4ueC4ow0KK+C4p+C4meC4tOC4oOC4siDguKfguYjguK3guIfguKfguLHguIjguJnguLANCivguKfguKPguIHguLLguJnguJXguYwg4Lig4LiE4Lin4Lix4LiV4Liq4Li44LiZ4LiX4LijDQor4Lin4Lij4LiB4Li04LiIIOC4quC4uOC4o+C4k+C4o+C4h+C4hOC5jOC4nuC4seC4meC4mOC5jA0KK+C4p+C4o+C4iOC4tOC4leC4o+C4siDguKfguKjguLTguJnguJ7guIfguKjguYzguKfguJPguLTguIoNCivguKfguKPguIrguLHguKIg4LiX4Lix4Lio4LmE4LiZ4Lii4LmA4LiY4Li14Lii4Lij4LiB4Li44LilDQor4Lin4Lij4LiK4Lix4LiiIOC4quC4tOC4meC4mOC4meC4meC4nuC4hOC4uOC4kw0KK+C4p+C4o+C4iuC4suC4leC4tCDguJ7guLHguJnguJjguLjguYzguKrguKfguLHguKrguJTguLTguYwNCivguKfguKPguJPguLUg4Lih4LiY4Li44Lij4Liq4LiV4Lij4Liw4LiB4Li54LilDQor4Lin4Lij4LiY4Lij4Lij4LihIOC5geC4iOC5iOC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4meC4suC4liDguJvguLTguKLguKrguLjguKfguKPguKPguJPguLLguKDguKPguJPguYwNCivguKfguKPguJnguLjguIog4LiB4Li04LiI4Lit4Li44LiU4Lih4Liq4Li04LiZDQor4Lin4Lij4LiZ4Li44LiKIOC4leC4seC5ieC4h+C5gOC4iOC4o+C4tOC4jeC5gOC4quC4luC4teC4ouC4ow0KK+C4p+C4o+C4meC4uOC4iiDguJ7guLTguKnguJPguLjguKfguIfguKnguYwNCivguKfguKPguJnguLjguIog4Lio4Lij4Li14LiX4Lix4Lio4LiZ4Li14Lii4LmMDQor4Lin4Lij4LiZ4Li44LiKIOC5guC4reC4oOC4suC4quC5gOC4iOC4o+C4tOC4jeC4nuC4ow0KK+C4p+C4o+C4nuC4h+C4qOC5jCDguKjguLTguKPguLTguJ7guIfguKnguYzguKfguLTguKPguLHguIoNCivguKfguKPguJ7guIfguKnguYwg4LmC4Lie4LiY4Li04LmM4Liq4Lin4LmI4Liy4LiHDQor4Lin4Lij4Lie4LiI4LiZ4LmMIOC4geC4tOC4leC4leC4tOC4nuC4seC4kuC4meC4suC4nuC4h+C4qOC5jA0KK+C4p+C4o+C4nuC4iOC4meC5jCDguJXguKPguKPguIHguJ7guIfguKjguYwNCivguKfguKPguJ7guIjguJnguYwg4LmA4Lib4Lij4Lih4Liq4Liy4LiiDQor4Lin4Lij4Lie4LiI4LiZ4LmMIOC4p+C4h+C4qOC5jOC4quC4h+C5iOC4sg0KK+C4p+C4o+C4nuC4iOC4meC5jCDguKrguLjguKfguLHguJLguJnguYzguJjguJnguLLguIHguKMNCivguKfguKPguJ7guKMg4LiX4Lij4Lix4Lie4Lii4LmM4LiX4Lin4Li14Lie4LijDQor4Lin4Lij4Lie4Lij4Lij4LiTIOC4oeC4teC4l+C4reC4h+C4hOC4sw0KK+C4p+C4o+C4nuC4pSDguYDguJrguI3guIHguLLguJnguLUNCivguKfguKPguJ7guLHguJLguJnguYwg4Liq4Li44Lih4Liw4LmC4LiZDQor4Lin4Lij4Lie4Li04LiK4LiN4LiyIOC4muC4uOC4jeC4qOC4o+C4teC5guC4o+C4iOC4meC5jA0KK+C4p+C4o+C4oeC4mSDguITguIfguK3guYjguK3guJkNCivguKfguKPguKLguLjguJfguJjguYwg4Lib4Lij4Liw4LiY4Liy4LiZ4LiX4Li04Lie4Lii4LmMDQor4Lin4Lij4Lij4LiT4LiB4Liy4LiZ4LiV4LmMIOC4guC4suC4p+C4peC4suC4oA0KK+C4p+C4o+C4o+C4k+C4iuC4seC4oiDguJrguLjguI3guJrguLPguKPguLjguIcNCivguKfguKPguKPguJPguJTguLUg4LiI4Lix4LiZ4LiX4Lij4LmM4Lib4Lil4Lix4LmI4LiHDQor4Lin4Lij4Lij4LiT4LiU4Li1IOC4nuC4o+C4meC4seC4meC4l+C4suC4o+C4seC4leC4meC5jA0KK+C4p+C4o+C4o+C4k+C4lOC4tSDguKvguIfguKrguYzguJnguLTguKHguLTguJXguIrguLHguKINCivguKfguKPguKPguJPguJfguLTguJ7guKLguYwg4LmB4LiL4LmI4LmC4Lib4LmI4LinDQor4Lin4Lij4Lij4LiT4LiZ4Lig4LiyIOC5geC4i+C5iOC5gOC4leC4teC5i+C4ouC4pw0KK+C4p+C4o+C4o+C4k+C4meC4tOC4oOC4siDguJ7guLjguYjguKHguKrguLjguKfguKPguKPguJMNCivguKfguKPguKPguJPguJ7guKMg4LiB4Li04LiV4LiV4Li04LmC4Liq4Lig4LiTDQor4Lin4Lij4Lij4LiT4Lie4LijIOC5gOC4nuC4teC4ouC4o+C4quC4suC4o+C4sA0KK+C4p+C4o+C4o+C4k+C4nuC4tOC4muC4ueC4peC4ouC5jCDguJnguLjguIrguYPguKINCivguKfguKPguKPguJPguKDguLIg4LiK4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Lij4Lij4LiT4Lig4LiyIOC4m+C4tOC4ouC4sOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4p+C4o+C4o+C4k+C4oOC4siDguKjguKPguYTguJ7guKjguLLguKUNCivguKfguKPguKPguJPguKPguLHguIHguKnguYwg4Lin4Lix4LiS4LiZ4Lin4Li44LiS4Li04Lie4LiH4Lio4LmMDQor4Lin4Lij4Lij4LiT4Lij4Li1IOC4iuC4uOC4k+C4q+C4oOC4tOC4jeC5guC4jeC4geC4uOC4pQ0KK+C4p+C4o+C4o+C4k+C4p+C4lOC4tSDguYLguJXguKnguKLguLLguJnguJnguJfguYwNCivguKfguKPguKPguJPguKfguLTguKDguLIg4LiY4LmA4LiZ4Lio4Liq4Li44LiY4Lij4Lij4LihDQor4Lin4Lij4Lij4LiT4Lin4Li04Lih4LilIOC4kOC4suC4meC4suC4meC4uOC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4o+C4o+C4k+C4p+C4tOC4oeC4pSDguKrguLjguILguJvguLLguJkNCivguKfguKPguKPguJPguKfguLTguYTguKUg4Lio4Li04Lij4Li04LiK4Lix4Lii4LmA4LiX4Lin4Li04LiZ4LiX4Lij4LmMDQor4Lin4Lij4Lij4LiT4Lio4Li04Lij4Li0IOC4leC4seC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4o+C4o+C4k+C4sCDguITguJPguLLguI3guLLguJXguLQNCivguKfguKPguKPguJPguLAg4LmE4Liq4Lii4LmA4LiB4Li34LmJ4LitDQor4Lin4Lij4Lij4LiT4LiyIOC4geC4uOC4peC4nuC4meC4suC5gOC4p+C4qA0KK+C4p+C4o+C4o+C4k+C4siDguITguIfguYDguIjguKPguLTguI3guIjguLTguJXguJXguLTguIHguLjguKUNCivguKfguKPguKPguJPguLIg4LiI4Lix4LiZ4LiX4Lij4LiE4LiHDQor4Lin4Lij4Lij4LiT4LiyIOC5gOC4iOC4teC4ouC4h+C4p+C4h+C4qOC5jOC4luC4suC4p+C4ow0KK+C4p+C4o+C4o+C4k+C4siDguIrguLTguJnguKjguKPguLXguKrguLjguIINCivguKfguKPguKPguJPguLIg4LmB4LiL4LmI4Lil4Li04LmI4LinDQor4Lin4Lij4Lij4LiT4LiyIOC5geC4i+C5iOC5guC4peC5iA0KK+C4p+C4o+C4o+C4k+C4siDguJXguLHguJnguYDguIjguKPguLTguI0NCivguKfguKPguKPguJPguLIg4LiX4Lit4LiH4Liq4Li44LiCDQor4Lin4Lij4Lij4LiT4LiyIOC4mOC4teC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4p+C4o+C4o+C4k+C4siDguJrguKfguKPguKfguLHguJLguJnguKfguLLguJnguLTguIoNCivguKfguKPguKPguJPguLIg4Lib4Lij4Liy4LiH4LiX4Lit4LiHDQor4Lin4Lij4Lij4LiT4LiyIOC4nuC4iOC4meC5jOC4qOC4tOC4o+C4tOC4qOC4tOC4peC4mw0KK+C4p+C4o+C4o+C4k+C4siDguJ7guLLguJnguLTguIrguKLguYzguYDguIjguKPguLTguI3guKLguLTguYjguIcNCivguKfguKPguKPguJPguLIg4Lig4Lix4LiX4Lij4Lia4Lix4LiT4LiR4Li04LiVDQor4Lin4Lij4Lij4LiT4LiyIOC5geC4oeC5ieC4meC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4o+C4k+C4siDguYDguKPguLfguK3guIfguJvguKPguLDguYDguKDguJcNCivguKfguKPguKPguJPguLIg4Lin4LiH4Lio4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Lij4Lij4LiT4LiyIOC4p+C4tOC4quC4uOC4l+C4mOC4p+C4tOC5gOC4qOC4qQ0KK+C4p+C4o+C4o+C4k+C4siDguKjguLTguJXguLDguYLguKLguJjguLTguJkNCivguKfguKPguKPguJPguLIg4Liq4Lir4LiY4Lij4Lij4Lih4Li04LiBDQor4Lin4Lij4Lij4LiT4LiyIOC4quC4uOC4iOC4o+C4tOC4lQ0KK+C4p+C4o+C4o+C4k+C4siDguYLguKrguKDguJPguJnguKPguLTguJnguJfguKPguYwNCivguKfguKPguKPguJPguLIg4Lit4LiZ4Li44Liq4Lij4LiT4LiK4Lix4LiiDQor4Lin4Lij4Lij4LiT4LiyIOC4reC4tOC4meC4l+C4o+C5jOC4nuC4o+C4sOC4ouC4sg0KK+C4p+C4o+C4o+C4k+C4suC4oOC4siDguYHguIvguYjguIvguLbguIcNCivguKfguKPguKPguJPguLTguKDguLIg4Liq4Li44LiC4Lie4Lil4Lit4LiiDQor4Lin4Lij4Lij4LiT4Li1IOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC4seC4h+C4p+C4suC4meC4geC4uOC4pQ0KK+C4p+C4o+C4o+C4k+C4tSDguITguLjguYnguKHguK3guJnguLjguKfguIfguKjguYwNCivguKfguKPguKPguJPguLUg4LmA4LiI4Lij4Li04LiN4LmA4LiV4Li14Lii4Lin4LiH4Lio4LmMDQor4Lin4Lij4Lij4LiT4Li1IOC5guC4iuC4hOC4iuC4ueC4iuC4seC4og0KK+C4p+C4o+C4o+C4k+C4tSDguYHguIvguYjguYDguK3guLXguKLguLANCivguKfguKPguKPguJPguLUg4LiV4Lix4LmJ4LiH4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMDQor4Lin4Lij4Lij4LiT4Li1IOC5hOC4l+C5gOC4oeC4t+C4reC4h+C4nuC4pQ0KK+C4p+C4o+C4o+C4k+C4tSDguJrguLjguI3guI3guLDguKTguJfguJjguLTguYwNCivguKfguKPguKPguJPguLUg4Lic4Li44Liq4LiU4Li04LiZDQor4Lin4Lij4Lij4LiT4Li1IOC4nuC4uOC5iOC4oeC4qOC4tOC4o+C4tA0KK+C4p+C4o+C4o+C4k+C4tSDguKHguLLguJnguLDguKDguLHguIHguJTguLTguYzguKjguLTguKPguLTguIHguLjguKUNCivguKfguKPguKPguJPguLUg4LmA4Lij4Li34Lit4LiH4Liq4Lih4Lir4Lih4Liy4LiiDQor4Lin4Lij4Lij4LiT4Li1IOC4p+C4h+C4qeC5jOC5gOC4l+C4teC4ouC4meC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4o+C4k+C4tSDguKjguKPguLXguKfguLTguKHguKXguJfguLHguKjguJnguYwNCivguKfguKPguKPguJPguLUg4Liq4Lix4LiI4LiI4Liw4LmA4Lin4LiX4LiwDQor4Lin4Lij4Lij4LiT4Li1IOC4quC4uOC4p+C4o+C4o+C4k+C4pOC4geC4qeC5jA0KK+C4p+C4o+C4o+C4k+C4tSDguK3guKDguLTguKPguLHguJXguJnguIHguLjguKUNCivguKfguKPguKPguJPguLUg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lit4Liy4LiUDQor4Lin4Lij4Lij4LiT4LmA4Lie4LmH4LiNIOC4nuC4o+C4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4o+C4mCDguIHguLHguJnguJXguYzguYTguJ7guYDguKPguLLguLANCivguKfguKPguKPguKXguKDguKPguJPguYwg4LmA4Lil4Lit4Lin4Lix4LiS4LiZ4LiB4Li04LiI4LiW4Liy4Lin4LijDQor4Lin4Lij4Lij4Lix4LiV4LiZ4LmMIOC4meC4tOC4o+C4sOC4ieC4seC4leC4o+C4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4p+C4o+C4peC4seC4geC4qeC4k+C5jCDguIjguLHguJnguJfguKPguJTguLUNCivguKfguKPguKXguLHguIHguKnguJPguYwg4Liq4Li04LiZ4LmE4LiK4LiiDQor4Lin4Lij4Lin4Lij4Lij4LiTIOC4jeC4suC4k+C4tOC4quC4quC4ow0KK+C4p+C4o+C4p+C4o+C4o+C4kyDguYDguKXguLTguKjguITguIfguITguLLguJfguLTguJ7guKLguYwNCivguKfguKPguKfguKPguKPguJMg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lix4LiZ4LiV4Li04LmE4Lie4Lio4Liy4LilDQor4Lin4Lij4Lin4Lix4LiS4LiZ4LmMIOC4p+C4tOC4p+C4seC4kuC4meC5jOC4ouC4uOC4qOC4seC4meC4leC5jA0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguIHguLjguKXguKfguIfguKnguYzguKfguLLguJPguLTguIrguKLguYwNCivguKfguKPguKfguLTguJfguKLguYwg4LiK4Liy4LiV4Li04LmA4Lin4Li14Lii4LiHDQor4Lin4Lij4Lin4Li04LiX4Lii4LmMIOC4l+C4seC4qOC4mOC4meC4sOC4quC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguJ7guLLguJPguLTguIrguJ7guLHguJLguJnguYwNCivguKfguKPguKfguLTguJfguKLguYwg4Lin4Lij4LiB4Li04LiV4LiV4Li04Lie4Lix4LiZ4LiY4LmMDQor4Lin4Lij4Lin4Li04LiX4Lii4LmMIOC4quC4tOC4meC4iuC4p+C4suC4peC4p+C4seC4kuC4meC5jA0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguK3guLTguKjguKPguLLguIfguIHguLnguKMg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4p+C4o+C4p+C4uOC4kuC4tCDguIjguLPguYDguKPguLTguI3guKPguLHguJXguJnguLLguIHguKMNCivguKfguKPguKfguLjguJLguLQg4LiV4Lix4LmJ4LiH4Liq4Lih4Lig4Liy4LiE4Lin4Lij4LiB4Li44LilDQor4Lin4Lij4Lin4Li44LiS4Li0IOC4nuC4o+C4p+C4o+C4meC4seC4meC4l+C5jA0KK+C4p+C4o+C4p+C4uOC4kuC4tCDguYDguKXguLTguKjguJvguKPguLXguIrguLLguJ7guIfguKnguYwNCivguKfguKPguKfguLjguJLguLQg4Liq4Li04LiX4LiY4Li04Lio4Liy4Liq4LiV4Lij4LmM4Liq4LiB4Li44LilDQor4Lin4Lij4Lin4Li44LiYIOC5gOC4meC4leC4o+C4l+C4seC4qOC4meC5jA0KK+C4p+C4o+C4qOC4seC4geC4lOC4tOC5jCDguYDguJTguYjguJnguYDguIHguKjguLTguJnguLXguKXguYnguLMNCivguKfguKPguKjguLHguIHguJTguLTguYwg4Liq4Li04LiH4Lir4LiY4Li04LiV4Li04LiB4Li44LilDQor4Lin4Lij4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4peC4t+C5ieC4oeC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4p+C4o+C4seC4iiDguK3guKPguLjguJPguIHguKHguKUNCivguKfguKPguLHguI3guI3guLIg4Lio4Li04Lil4Lib4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lin4Lij4Lix4Lih4Lie4LijIOC4quC4uOC4guC5hOC4lOC5ieC4nuC4tuC5iOC4hw0KK+C4p+C4o+C4suC4geC4oyDguJzguIjguIfguIjguLTguJXguJXguLTguIHguLjguKUNCivguKfguKPguLLguIfguITguJPguLIg4LiU4Li14Lih4Liy4LiBDQor4Lin4Lij4Liy4LiH4LiE4LiT4LiyIOC4reC4tOC4meC4iuC4ueC5guC4lQ0KK+C4p+C4o+C4suC4l+C4tOC4nuC4ouC5jCDguYTguK3guKLguKPguLLguIHguLLguI3guIjguJnguIHguLjguKUNCivguKfguKPguLLguJ7guKMg4LiH4Liy4Lih4Liq4Lih4LiV4Lij4Liw4LiB4Li54Lil4LiK4Liy4LiV4Li0DQor4Lin4Lij4Liy4Lie4LijIOC4nuC4seC4meC4mOC5jOC4k+C4o+C4h+C4hOC5jA0KK+C4p+C4o+C4suC4nuC4oyDguKrguLjguJfguLHguJnguJXguLTguIHguKMNCivguKfguKPguLLguKDguKPguJPguYwg4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LmB4LiB4LmJ4LinDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC5guC4geC4qOC4peC4p+C4seC4kuC4meC4sA0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguIjguIfguJvguLHguYnguJkNCivguKfguKPguLLguKDguKPguJPguYwg4LmA4LiI4Li14Lii4Lij4Liq4Lih4LiI4Li04LiV4LijDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC5hOC4iuC4ouC4p+C4h+C4qOC5jA0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguJTguLLguKfguJvguKPguLDguIjguLHguIHguKnguYwNCivguKfguKPguLLguKDguKPguJPguYwg4LmC4LiV4LmB4LiI4LmJ4LiHDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4mOC4meC4suC4oOC4o+C4k+C5jOC4nuC4tOC4muC4ueC4pQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguJrguLHguKfguITguKXguLXguYgNCivguKfguKPguLLguKDguKPguJPguYwg4Lib4Li04LmI4LiZ4LiX4Lit4LiHDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4nuC4tOC4k+C5gOC4oeC4t+C4reC4h+C4h+C4suC4oQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKHguKTguKjguYLguIrguJXguLQNCivguKfguKPguLLguKDguKPguJPguYwg4Lij4Lix4LiV4LiZ4LiwDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC5gOC4peC5iOC4h+C4p+C4tOC4o+C4tOC4ouC4sOC4geC4uOC4pQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKfguLTguJ7guLHguJLguJnguYzguIHguLTguIjguKfguLTguYTguKUNCivguKfguKPguLLguKDguKPguJPguYwg4Lio4Li44LiZ4Liy4Lil4Lix4LiiDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4quC4uOC4guC4muC4uOC4jeC4quC5iOC4hw0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKvguKHguLbguIHguKvguK3guKENCivguKfguKPguLLguKDguKPguJPguYwg4Lit4Lix4Lio4Lin4LiB4Liy4Lii4Lih4LiT4Li1DQor4Lin4Lij4Liy4Lih4Liy4LioIOC4i+C4tuC5iOC4h+C4iOC4tOC4leC5gOC4quC4luC4teC4ouC4ow0KK+C4p+C4o+C4suC4o+C4seC4leC4meC5jCDguIjguLTguKPguLDguILguIjguKPguKfguIfguKjguYwNCivguKfguKPguLLguKPguLHguJXguJnguYwg4Lit4Lit4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4Lin4Lij4Liy4Lil4Lix4LiB4Lip4LiT4LmMIOC4reC4tOC4l+C4mOC4tOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4p+C4o+C4suC4p+C4uOC4kuC4tCDguJjguKPguYDguKrguJbguLXguKLguKMNCivguKfguKPguLLguKfguLjguJgg4LmA4Lie4Li14Lii4Lij4LiB4Li04LiIDQor4Lin4Lij4Liy4Lir4LmMIOC5gOC4nOC5iOC4suC4leC4s+C4o+C4p+C4iA0KK+C4p+C4o+C4tOC4meC4l+C4o+C4teC4ouC5jCDguIrguLTguJnguKrguLLguKINCivguKfguKPguLTguJnguJfguKPguYwg4Lit4Li04LiZ4LiX4Lij4LmM4LiY4Li04Lij4Liy4LiKDQor4Lin4Lij4Li04Lio4Lij4LiyIOC5gOC4reC4t+C5ieC4reC4reC4suC4o+C4teC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4p+C4o+C4teC4oOC4o+C4k+C5jCDguKrguLHguIjguIjguKPguLTguJXguLLguJnguLHguJnguJfguYwNCivguKfguKPguLjguJMg4Lil4Li04LmJ4Lih4Lit4Li44LiU4Lih4Liq4Li44LiCDQor4Lin4Lij4Li44LiT4Li1IOC4leC4seC5ieC4h+C4quC4t+C4muC4geC4uOC4pQ0KK+C4p+C4o+C5gOC4iuC4lSDguKjguKPguLXguJvguKPguLDguKDguLLguKrguLjguILguKrguLHguJnguJXguLQNCivguKfguKPguYDguJTguIog4Lil4Li04LmJ4Lih4LiY4Lij4LmA4Lia4LiN4LiI4Lie4LilDQor4Lin4Lij4LmA4LiX4LieIOC5geC4l+C4meC4p+C4seC4meC4iuC4seC4og0KK+C4p+C4o+C5gOC4l+C4niDguKrguKfguLHguKrguJTguLTguKLguJnguLLguKfguLTguJkNCivguKfguKPguYLguIrguJXguLQg4LmA4LiK4Li14Lii4LiH4LiX4Lit4LiHDQor4Lin4Lil4Lix4LiiIOC5geC4m+C5ieC4meC4l+C4reC4hw0KK+C4p+C4peC4seC4ouC4nuC4oyDguYDguIHguLXguKLguKPguJXguLTguJfguLHguJrguJfguLTguKcNCivguKfguKXguLHguKLguJ7guKMg4Lig4Lix4LiX4Lij4Liy4Lie4LiH4Lio4LmMDQor4Lin4Lil4Lix4Lii4Lie4Lij4Lij4LiTIOC4lOC4p+C4h+C5geC4geC5ieC4pw0KK+C4p+C4peC4seC4ouC4o+C4seC4leC4meC5jCDguYHguIHguYnguKfguKrguKfguYjguLLguIcNCivguKfguKXguLHguKLguKXguLHguIHguKnguJPguYwg4Lik4LiX4LiY4Li04Lij4LiH4LiE4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lin4Lil4Li04Lii4LiyIOC4p+C4seC4kuC4meC4suC4nuC4ow0KK+C4p+C4peC4tSDguJ7guKXguLDguJrguLjguI3guKHguLUNCivguKfguKXguLXguJ7guKMg4Liq4Li44LiX4LiY4Li04LiZ4Lix4Lii4Lin4Lij4Liy4Lig4Lij4LiT4LmMDQor4Lin4Lil4Li14Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4reC4seC4geC4qeC4ow0KK+C4p+C4qOC4tOC4mSDguKfguJPguLTguIrguKLguYzguKfguKPguJnguLHguJnguJXguYwNCivguKfguKrguLHguJnguJXguLQg4LmC4Lit4Lig4Liy4Liq4Lin4Liy4LiZ4Li04LiKDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC4iOC4h+C4qOC4uOC4oOC4meC4tOC4oeC4tOC4lQ0KK+C4p+C4quC4seC4meC4leC5jCDguYDguIrguLfguYjguK3guKHguJfguK3guIcNCivguKfguKrguLHguJnguJXguYwg4LiX4Lit4LiH4LiE4LiHDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC4m+C4j+C4tOC5guC4oOC4hOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4p+C4quC4seC4meC4leC5jCDguYLguJ7guJjguLTguYzguYTguJ7guKPguJfguK3guIcNCivguKfguKrguLHguJnguJXguYwg4Lin4LiH4Lio4LmM4LiB4Lix4LiX4Lil4Li14LiE4Liy4LihDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC4quC4geC4uOC4peC4n+C4reC4hw0KK+C4p+C4quC4seC4meC4leC5jCDguKvguJfguLHguKLguYDguIHguLXguKLguKPguJXguLTguIHguLjguKUNCivguKfguKrguLgg4Lia4Li54Lij4LiT4Liw4LmA4Lir4LiV4Li4DQor4Lin4Lit4LiZIOC4ieC5iOC4s+C4meC4tOC4leC4ouC5jA0KK+C4p+C4seC4hyDguKrguLjguILguKrguKHguJrguLjguI0NCivguKfguLHguIjguKfguLTguJcg4LiX4Lix4LiB4Lip4LiT4Li04Lin4Lij4Lij4LiV4LiB4Li44LilDQor4Lin4Lix4LiK4LijIOC4nuC4peC4p+C4o+C4o+C4k+C4suC4oOC4sg0KK+C4p+C4seC4iuC4o+C4nuC4h+C4qeC5jCDguIHguLTguIjguYLguIHguKjguKUNCivguKfguLHguIrguKPguJ7guLHguJnguJjguYwg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Lie4LiH4Lip4LmMDQor4Lin4Lix4LiK4Lij4LiwIOC5geC4iOC5iOC4oeC4iOC4s+C4o+C4seC4qg0KK+C4p+C4seC4iuC4o+C4sCDguJrguLjguI3guYDguK3guJnguIHguJfguKPguLHguJ7guKLguYwNCivguKfguLHguIrguKPguLAg4LmA4Lii4LmH4LiZ4Lin4Li04LiI4Li04LiV4Lij4LmC4Liq4Lig4LiyDQor4Lin4Lix4LiK4Lij4LiwIOC4quC4uOC4o+C4sOC5geC4quC4hw0KK+C4p+C4seC4iuC4o+C4siDguYDguIjguKPguLTguI3guKPguLHguJXguJnguJ7guKMNCivguKfguLHguIrguKPguLIg4Lil4Li04Lih4Liy4LiZ4LiZ4LiX4LmM4LiU4Liz4Lij4LiH4LiE4LmMDQor4Lin4Lix4LiK4Lij4Liy4Lie4LijIOC5gOC4quC4oeC4hOC4sw0KK+C4p+C4seC4iuC4o+C4suC4oOC4o+C4k+C5jCDguKLguLTguYjguIfguKLguIfguKLguKgNCivguKfguLHguIrguKPguLTguJkg4LiV4Lij4Li14Lin4Li04Lil4Liy4Lio4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC5gOC4iOC4o+C4tOC4jeC4o+C4seC4leC4meC5jA0KK+C4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguJfguK3guIfguKPguLHguIHguKnguYwNCivguKfguLHguIrguKPguLTguJnguJfguKPguYwg4Lie4Lil4Lix4Lia4LmB4LiB4LmJ4LinDQor4Lin4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4p+C4iuC4tOC4o+C4nuC4suC4q+C4uA0KK+C4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguKrguLjguJrguKPguKPguJPguJ7guIfguKnguYwNCivguKfguLHguIrguKPguLUg4LiB4Liy4LiN4LiI4LmC4LiZ4Lig4Liy4LiqDQor4Lin4Lix4LiK4Lij4Li1IOC5gOC4iOC4o+C4tOC4jeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4seC4iuC4o+C4tSDguJXguKPguLXguJ7guLLguJnguLTguIoNCivguKfguLHguIrguKPguLUg4Lia4Li54Lij4LiT4LmM4Lin4Lij4Li44LiV4Lih4LmMDQor4Lin4Lix4LiK4Lij4Li1IOC4n+C4uOC4geC4leC4suC4meC4meC4l+C5jA0KK+C4p+C4seC4iuC4o+C4tSDguKfguIfguKjguYzguIHguKXguJjguLnguJUNCivguKfguLHguIrguKPguLUg4Liq4LiH4LmI4Liy4LmA4Lih4Li34Lit4LiHDQor4Lin4Lix4LiK4Lij4Li1IOC4q+C4tOC4o+C4seC4k+C4ouC4suC4leC4suC4nuC4h+C4qOC5jA0KK+C4p+C4seC4iuC4o+C4teC4ouC4siDguJjguJnguLDguKrguLjguJnguJfguKMNCivguKfguLHguIrguKPguYzguYHguKrguIcg4LmA4Lir4Lil4LmI4Liy4Lir4LiH4Lip4LmM4LmA4LiH4Li04LiZDQor4Lin4Lix4LiS4LiZ4LiK4Lix4LiiIOC4iOC4tOC4meC4lOC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4p+C4seC4kuC4meC4iuC4seC4oiDguKrguLLguJXguKPguJ7guLHguJnguJjguLjguYwNCivguKfguLHguJLguJnguKjguLHguIHguJTguLTguYwg4Lie4Lix4LiZ4LiY4Li44LmM4LiB4Liz4LmB4Lir4LiHDQor4Lin4Lix4LiS4LiZ4LiwIOC4m+C4o+C4tOC4qOC4meC4suC4p+C4suC4k+C4tOC4iuC4ouC5jA0KK+C4p+C4seC4kuC4meC4siDguIHguKPguK3guJrguYDguJ7guYfguIrguKPguYwNCivguKfguLHguJLguJnguLIg4LmA4LiC4Li14Lii4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Lix4LiS4LiZ4LiyIOC4iOC4tOC4leC4geC4suC4o+C4uOC4kw0KK+C4p+C4seC4kuC4meC4siDguIrguLLguI3guYTguIrguKINCivguKfguLHguJLguJnguLIg4LiV4Lij4Li14Lin4Li04LiX4Lii4Liy4LiB4Li44LilDQor4Lin4Lix4LiS4LiZ4LiyIOC5gOC4l+C4teC4ouC4meC5gOC4nuC5h+C4hw0KK+C4p+C4seC4kuC4meC4siDguJrguLPguKPguLjguIfguJ7guKTguIHguKnguYwNCivguKfguLHguJLguJnguLIg4Lib4Li04LmI4LiZ4LmA4Liq4LihDQor4Lin4Lix4LiS4LiZ4LiyIOC4nuC4tOC4oeC4nuC5jOC4m+C4o+C4sOC4lOC4seC4mg0KK+C4p+C4seC4kuC4meC4siDguKHguLLguKPguLDguKHguLTguYjguIcNCivguKfguLHguJLguJnguLIg4Lij4Lix4LiV4LiZ4Liw4Lih4LiH4LiE4Lil4LiB4Li44LilDQor4Lin4Lix4LiS4LiZ4LiyIOC4p+C4seC4iuC4o+C4sOC4nuC4tOC4oeC4peC4oeC4suC4qA0KK+C4p+C4seC4kuC4meC4siDguKjguKPguLXguYDguK3guJnguIHguKPguLLguJjguLINCivguKfguLHguJLguJnguLIg4Liq4Li44LiC4LiB4LiZ4Li04Lip4LiQ4LmMDQor4Lin4Lix4LiS4LiZ4LiyIOC5geC4quC4lOC4oeC4k+C4tQ0KK+C4p+C4seC4kuC4meC4siDguK3guLTguJnguJfguKPguLHguIHguKnguYwNCivguKfguLHguJLguJnguLLguKDguKPguJPguYwg4Lil4Li14LmJ4LiK4Liy4LiN4LiB4Li44LilDQor4Lin4Lix4LiS4LiZ4LmMIOC5gOC4iOC4o+C4tOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4geC4uOC4pQ0KK+C4p+C4seC4lOC4geC4o+C4sOC4iOC4seC4hyDguKfguLHguJTguIHguKPguLDguIjguLHguIcNCivguKfguLHguJTguIrguYjguK3guIfguJnguJnguJfguKPguLUg4Lin4Lix4LiU4LiK4LmI4Lit4LiH4LiZ4LiZ4LiX4Lij4Li1DQor4Lin4Lix4LiU4LiY4Liy4LiV4Li44LiX4Lit4LiHIOC4p+C4seC4lOC4mOC4suC4leC4uOC4l+C4reC4hw0KK+C4p+C4seC4lOC4muC4suC4h+C4nuC4peC4teC4meC5ieC4reC4oiDguKfguLHguJTguJrguLLguIfguJ7guKXguLXguJnguYnguK3guKINCivguKfguLHguJTguJvguYjguLLguYDguKPguYTguKMg4Lin4Lix4LiU4Lib4LmI4Liy4LmA4Lij4LmE4LijDQor4Lin4Lix4LiU4Lij4Liy4LiK4LiE4Lik4Lir4LmMIOC4p+C4seC4lOC4o+C4suC4iuC4hOC4pOC4q+C5jA0KK+C4p+C4seC4lOC4quC4p+C4meC5geC4geC5ieC4pyDguKfguLHguJTguKrguKfguJnguYHguIHguYnguKcNCivguKfguLHguJTguK3guKLguLnguYjguJTguLXguJrguLPguKPguLjguIfguJjguKPguKPguKEg4Lin4Lix4LiU4Lit4Lii4Li54LmI4LiU4Li14Lia4Liz4Lij4Li44LiH4LiY4Lij4Lij4LihDQor4Lin4Lix4LiU4LmA4Liq4LiU4LmH4LiIIOC4p+C4seC4lOC5gOC4quC4lOC5h+C4iA0KK+C4p+C4seC4lOC5g+C4q+C4oeC5iOC4peC4s+C4meC4geC5geC4guC4p+C4gSDguKfguLHguJTguYPguKvguKHguYjguKXguLPguJnguIHguYHguILguKfguIENCivguKfguLHguJjguJnguLIg4Lie4Lix4LiK4Lij4Liy4Lin4Lil4Lix4LiiDQor4Lin4Lix4LiZ4LiI4LiZ4Li14Lii4LmMIOC4lOC4s+C4o+C4seC4quC4geC4suC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguIHguLTguJXguJXguLTguIjguLLguKPguLjguIHguLPguIjguKMNCivguKfguLHguJnguIrguLHguKIg4LiC4LiZ4Lia4LiU4Li1DQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC5guC4hOC4leC4o+C4quC4oeC4muC4seC4leC4tA0KK+C4p+C4seC4meC4iuC4seC4oiDguIjguLPguJnguIfguITguYwNCivguKfguLHguJnguIrguLHguKIg4LmA4LiI4Li14Lii4Lij4Liw4LmE4LiZ4Lie4Lix4LiZ4LiY4LmMDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4iuC4suC4jeC4quC4h+C5iOC4suC5gOC4p+C4ig0KK+C4p+C4seC4meC4iuC4seC4oiDguIvguLfguYjguK3guYDguJjguLXguKLguKPguKrguIHguLjguKUNCivguKfguLHguJnguIrguLHguKIg4LmB4LiL4LmI4LmA4Lii4Li14LmJ4LiiDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4leC4o+C4teC4quC4tOC4meC4mOC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguYLguJXguITguKfguLLguKHguKPguLnguYkNCivguKfguLHguJnguIrguLHguKIg4LmA4LiX4Li04LiU4Lia4Lix4LiN4LiK4Lij4Liq4Li44LiCDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4meC4seC4meC4l+C4hOC4uOC4k+C4suC4geC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguJrguLjguI3guIrguYnguLLguIcNCivguKfguLHguJnguIrguLHguKIg4Lib4Lix4LmJ4LiZ4Lie4Li04LiZ4Li04LiIDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4nuC4o+C4oeC4p+C4h+C4qeC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguJ7guLnguJnguJfguKPguLHguJ7guKLguYwNCivguKfguLHguJnguIrguLHguKIg4Lih4LiH4LiE4Lil4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4ouC4seC4h+C4m+C4o+C4sOC4ouC4ueC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguKPguLjguYjguIfguKPguLHguJXguJnguYzguKHguJPguLXguKHguLLguKgNCivguKfguLHguJnguIrguLHguKIg4Lil4Li14Lil4Liy4LiK4Li54Lie4LiH4Lio4LmMDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4p+C4h+C4qeC5jOC4guC4suC4pw0KK+C4p+C4seC4meC4iuC4seC4oiDguKfguLTguJnguLHguKLguKfguKPguKrguIHguLjguKUNCivguKfguLHguJnguIrguLHguKIg4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4quC4geC4uOC4peC4qOC4seC4geC4lOC4tOC5jOC4meC4tOC4oeC4tOC4leC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguKrguLLguKLguKrguKfguLHguKrguJTguLTguYwNCivguKfguLHguJnguIrguLHguKIg4Liq4Li44LiX4LiY4Li04Lit4Liy4Lij4Li14LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC5guC4quC4leC4luC4teC4p+C4o+C4geC4uOC4pQ0KK+C4p+C4seC4meC4iuC4seC4oiDguK3guKDguLTguIHguKfguLTguJnguKfguIfguKjguYwNCivguKfguLHguJnguIrguLHguKIg4Lit4Liy4LiZ4Lix4LiZ4LiX4LiZ4Liq4LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC5gOC4reC4teC5iOC4ouC4oeC4p+C4tOC4p+C4seC4kuC4meC4sOC4geC4uOC4pQ0KK+C4p+C4seC4meC4iuC4suC4leC4tCDguJvguLjguI3guKfguLHguJLguYLguJcNCivguKfguLHguJnguJPguLUg4LiU4Liy4Lin4LmB4Liq4LiHDQor4Lin4Lix4LiZ4LiU4Li1IOC5hOC4geC4o+C4o+C4oeC4k+C5jA0KK+C4p+C4seC4meC4lOC4tSDguIjguLjguKXguKrguLPguKXguLUNCivguKfguLHguJnguJTguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lin4Lix4LiZ4LiU4Li1IOC5geC4lOC4h+C4q+C4meC4uQ0KK+C4p+C4seC4meC4lOC4tSDguYTguJfguKLguJvguKPguLDguJTguLTguKnguJDguYwNCivguKfguLHguJnguJTguLUg4Lia4Li44LiT4Lii4Liw4LiB4Liy4LiN4LiI4LiZDQor4Lin4Lix4LiZ4LiU4Li1IOC4nuC4peC4reC4ouC4oeC4sOC4geC4peC5ieC4sw0KK+C4p+C4seC4meC4lOC4tSDguKHguK7guLPguKvguKHguLHguJQNCivguKfguLHguJnguJTguLUg4Lil4Liw4Lih4Lix4LmI4LiHDQor4Lin4Lix4LiZ4LiU4Li1IOC5hOC4p+C4reC5iOC4reC4mQ0KK+C4p+C4seC4meC4lOC4tSDguKrguLTguIfguKvguLLguJ7guLHguJnguJjguLjguYwNCivguKfguLHguJnguJTguLUg4Lir4Li44LmC4Lil4Lib4Lij4Liw4LiB4Liy4Lij4LiB4Li44LilDQor4Lin4Lix4LiZ4LiX4LiT4Li1IOC5guC4iuC4leC4tOC5gOC4p+C4l+C4tQ0KK+C4p+C4seC4meC4l+C4meC4siDguIjguIfguYHguIjguYjguKENCivguKfguLHguJnguJfguJnguLIg4LmA4LiU4LiK4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lin4Lix4LiZ4LiX4LiZ4LiyIOC4muC4uOC4jeC4geC4o+C5iOC4suC4hw0KK+C4p+C4seC4meC4l+C4meC4siDguYDguJ7guLXguKLguKPguKfguJnguLTguIoNCivguKfguLHguJnguJfguJnguLIg4Lin4LiH4Lio4LmM4Lig4Lix4LiB4LiU4Li1DQor4Lin4Lix4LiZ4LiX4LiZ4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4nuC4h+C4qeC5jA0KK+C4p+C4seC4meC4l+C4meC4suC4nuC4oyDguKjguLTguKPguLTguJnguLHguJnguJfguKfguLTguJfguKLguLINCivguKfguLHguJnguJfguJnguLUg4Lik4LiX4LiY4Li04Liq4Li04LiH4Lir4LmMDQor4Lin4Lix4LiZ4LiX4LiZ4Li14Lii4LmMIOC4iuC4peC4tOC4leC4leC4suC4meC4meC4l+C5jA0KK+C4p+C4seC4meC4l+C4meC4teC4ouC5jCDguYDguJnguLXguKLguKHguYDguJfguKgNCivguKfguLHguJnguJfguJnguLXguKLguYwg4Lil4Lix4LiX4LiY4Liw4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lin4Lix4LiZ4LiX4LiZ4Li14Lii4LmMIOC4q+C4p+C4seC4hw0KK+C4p+C4seC4meC4mOC4k+C4tSDguYHguJTguIfguJvguKPguLDguJTguLHguJoNCivguKfguLHguJnguJnguLIg4Lio4Lij4Li14Liq4Lin4Liy4LiXDQor4Lin4Lix4LiZ4Lih4Li54Lir4Liw4Lih4Lix4LiU4LiZ4Lit4Lij4LmMIOC4oeC4sOC4l+C4sg0KK+C4p+C4seC4meC4p+C4tOC4quC4siDguKrguLTguKPguLTguKjguKPguLHguJPguKLguYwNCivguKfguLHguJnguYDguIjguLTguJQg4LiV4Liy4Lih4LmA4Lie4Li04LmI4LihDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4geC4tOC5iOC4h+C5g+C4muC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguYDguILguLLguYHguIHguYnguKcNCivguKfguLHguJnguYDguJ7guYfguI0g4LiI4Lix4LiZ4LiX4Lij4Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4iuC4meC4suC4geC4ow0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguYHguIvguYjguKXguLTguYnguKENCivguKfguLHguJnguYDguJ7guYfguI0g4LiV4Lij4Liw4LiB4Li54Lil4Liq4Li44LiC4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4l+C4o+C4seC4nuC4ouC5jOC4oeC4k+C4tQ0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguJnguLLguITguYHguKLguYnguKENCivguKfguLHguJnguYDguJ7guYfguI0g4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4nuC4o+C4mOC4meC4suC4p+C4uOC4kuC4tA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguYDguJ7guIrguKPguIHguLLguI3guIjguJnguLLguJ7guIfguKjguYwNCivguKfguLHguJnguYDguJ7guYfguI0g4Lih4Liy4LmC4LiZ4LiKDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguKfguKPguJ7guLHguJLguJnguLLguJnguLHguJnguJXguYwNCivguKfguLHguJnguYDguJ7guYfguI0g4Lio4Lij4Li14LmC4Lii4Lii4Lit4LiUDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4quC4tOC4h+C4q+C5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguKrguLnguI3guKrguLTguYnguJnguKDguLHguKINCivguKfguLHguJnguYDguJ7guYfguI0g4Lit4LiZ4Li44LiV4Li04Lij4Lii4LiwDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC5gOC4reC4p+C4suC4quC4geC4uOC4pQ0KK+C4p+C4seC4ouC4p+C4seC4iOC4meC5jCDguJfguLLguKLguLLguJfguKrguLjguKfguKPguKPguJMNCivguKfguLHguKXguJnguKDguLIg4Lij4Liy4Lio4Lij4Li14Lib4Lil4Lix4LmI4LiHDQor4Lin4Lix4Lil4Lig4LiyIOC4lOC4uOC4peC4ouC4suC4meC4meC4l+C5jA0KK+C4p+C4seC4peC4oOC4siDguKLguKPguKPguKLguIfguJ7guLHguJLguJnguLANCivguKfguLHguKXguKDguLIg4Lir4Lij4Lix4LmI4LiH4Liq4Li04LmC4LiiDQor4Lin4Lix4Lil4Lii4LmM4Lil4Lix4LiU4LiU4LiyIOC4mOC4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jOC4geC4uOC4pQ0KK+C4p+C4seC4peC4ouC4siDguJnguKfguKXguKXguLDguK3guK3guIcNCivguKfguLHguKXguKLguLLguKDguKPguJPguYwg4Lij4Lix4LiK4Lin4Li04LiK4Lix4LiiDQor4Lin4Lix4Lil4Lil4LigIOC5geC4geC5ieC4p+C5gOC4m+C4teC4og0KK+C4p+C4seC4peC4peC4oCDguYHguIjguYjguKHguKfguLjguJLguLTguJvguKPguLXguIrguLINCivguKfguLHguKXguKXguKAg4LiX4Lit4LiH4LiB4LmJ4Liy4LiiDQor4Lin4Lix4Lil4Lil4LigIOC4muC4ueC4o+C4k+C4qOC4tOC4o+C4tA0KK+C4p+C4seC4peC4peC4oCDguKHguLDguIrguKPguLINCivguKfguLHguKXguKXguKAg4Lin4LiK4Li04Lij4Lie4Lij4Lie4LiH4Lio4LiyDQor4Lin4Lix4Lil4Lil4LigIOC4quC4seC4h+C4guC5jOC4quC4reC4mQ0KK+C4p+C4seC4peC4peC4oCDguK3guKPguLHguI3guI3guYDguIHguKnguKENCivguKfguLHguKXguKXguKDguLIg4LmA4LiJ4Lil4Li04Lih4LiZ4Lix4LiiDQor4Lin4Lix4Lil4Lil4Lig4LiyIOC4nuC4o+C4oeC5guC4iuC4leC4tA0KK+C4p+C4seC4peC4peC4oOC4siDguKfguLXguKPguLDguJvguLjguKXguKXguLUNCivguKfguLHguKXguKXguLIg4LmA4LiB4Liy4Liq4Li44Lij4Lix4LiV4LiZ4LmMDQor4Lin4Lix4Lil4Lil4Li1IOC4meC4seC4meC4leC4suC4peC4tOC4gQ0KK+C4p+C4seC4peC4peC4teC4ouC5jCDguJvguKPguLDguJfguLjguKHguIrguLLguJXguLQNCivguKfguLHguKXguKXguLXguKLguYwg4Liu4Lix4LmJ4Lin4Lir4LmJ4Lin4Lii4Lie4Lij4LiwDQor4Lin4Liy4LiT4Li04LiK4Lii4LmMIOC4p+C4lOC4teC4qOC4tOC4o+C4tOC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4suC4k+C4tSDguJ7guLHguJnguJjguLjguKHguIjguLTguJnguJTguLINCivguKfguLLguJPguLUg4LmA4Lir4Lil4Li34Lit4LiH4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lin4Liy4LiX4Li04LiVIOC4nuC4tOC4iuC4ouC4meC4seC4meC4l+C5jA0KK+C4p+C4suC4l+C4tOC4meC4tSDguKfguIfguKjguYzguJrguLjguKnguKLguIHguLjguKUNCivguKfguLLguJnguLTguIog4LmA4Lih4LiY4Liy4LiY4Liz4Lij4LiH4LiE4LmM4Lio4Li04Lij4Li0DQor4Lin4Liy4Lij4LiT4Li1IOC5geC4lOC4h+C4quC4tQ0KK+C4p+C4suC4o+C4tOC4lyDguKvguKXguLLguKfguJfguK3guIcNCivguKfguLLguKPguLTguJnguJfguKPguYwg4LiB4Li04LiV4LiV4Li04LmC4LiK4LiV4Li04LiB4Li44LilDQor4Lin4Liy4Lij4Li04LiZ4LiX4Lij4LmMIOC4muC4uOC4jeC4iuC4ouC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4p+C4suC4o+C4tOC4meC4l+C4o+C5jCDguKfguLLguKPguKHguLINCivguKfguLLguKPguLTguJnguLUg4LmC4Lit4Lip4LiQ4Li04LmA4Lin4LiKDQor4Lin4Liy4Lij4Li1IOC4iOC4teC4meC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4p+C4suC4o+C4tSDguYTguJXguKPguJ7guLjguJfguJjguLLguIfguIHguLnguKMNCivguKfguLLguKPguLUg4Lie4Lil4Liq4Lij4Liw4LiZ4LmJ4Lit4LiiDQor4Lin4Liy4Lij4Li1IOC4p+C4h+C4qOC5jOC4reC4uOC5hOC4ow0KK+C4p+C4suC4o+C4tSDguKrguLjguJvguKPguLXguKLguLLguKfguKPguKPguJPguIrguLHguKINCivguKfguLLguKPguLXguJfguLTguJ7guKLguYwg4LmA4LiX4Lie4LiZ4Liz4LmC4Liq4Lih4LiZ4Lix4Liq4Liq4LmMDQor4Lin4Liy4Lij4Li44LiT4Lig4Lix4LiEIOC4ruC4seC5iOC4meC4leC4o+C4sOC4geC4ueC4pQ0KK+C4p+C4suC4o+C4uOC4k+C4tSDguIjguLTguJXguJXguYzguJjguKPguKPguKENCivguKfguLLguKPguLjguJPguLUg4LiU4Liy4Lia4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiDQor4Lin4Liy4Lij4Li44LiT4Li1IOC4meC4tOC4peC5gOC4nuC4iuC4o+C5jOC4nuC4peC4reC4og0KK+C4p+C4suC4o+C4uOC4k+C4tSDguJ7guLHguJnguJjguLjguYDguJ7guYfguIcNCivguKfguLLguKPguLjguJPguLUg4LmC4Lij4LiI4LiZ4LmM4Lie4Lil4Liy4LiB4LijDQor4Lin4Liy4Lij4Li44LiT4Li1IOC4qOC4o+C4teC4quC4geC4uOC4peC4lOC4tQ0KK+C4p+C4suC4o+C4uOC4k+C4tSDguKrguLjguKfguKPguKPguJPguKjguKPguLUNCivguKfguLLguKPguLjguJPguLXguKLguYwg4LiI4Liz4Lib4Liy4LiZ4Li04LilDQor4Lin4Liy4Liq4LiZ4LiyIOC4geC4o+C4sOC4nuC4seC4meC4nuC4h+C4qOC5jOC4quC4geC4uOC4pQ0KK+C4p+C4suC4quC4meC4siDguYHguIHguYnguKfguIrguLnguKjguLTguKXguJvguYwNCivguKfguLLguKrguJnguLIg4LiE4Liz4Lio4Li04Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC4iOC4tOC4meC4lOC4suC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4suC4quC4meC4siDguIrguLLguJnguIENCivguKfguLLguKrguJnguLIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Lin4Liy4Liq4LiZ4LiyIOC5hOC4leC4o+C5gOC4p+C4l+C4ouC5jOC4p+C4o+C4geC4uOC4pQ0KK+C4p+C4suC4quC4meC4siDguYDguJfguLXguKLguKHguYHguKrguIfguK3guKPguLjguJMNCivguKfguLLguKrguJnguLIg4LiZ4Li04Lii4Lih4Lik4LiX4LiY4Li04LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC4muC4ueC4o+C4qOC4tOC4o+C4tOC4o+C4seC4geC4qeC5jA0KK+C4p+C4suC4quC4meC4siDguYDguJzguYjguLLguJbguJnguK3guKENCivguKfguLLguKrguJnguLIg4Lie4Li54Lil4LiZ4Li04LiB4LijDQor4Lin4Liy4Liq4LiZ4LiyIOC4oeC4sOC5gOC4quC4o+C4tOC4kA0KK+C4p+C4suC4quC4meC4siDguKPguLDguKPguLfguYjguJnguIjguLTguJXguJXguYwNCivguKfguLLguKrguJnguLIg4LmB4Lil4Liw4LmA4Lii4LmK4Liy4Liw4Lir4LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC4p+C4teC4o+C4sOC4o+C4seC4qOC4oeC4tQ0KK+C4p+C4suC4quC4meC4siDguKjguLjguKDguKfguLTguJfguKLguLLguYLguKDguITguLUNCivguKfguLLguKrguJnguLIg4Liq4Liz4LmA4Lig4Liy4LiX4Lit4LiHDQor4Lin4Liy4Liq4LiZ4LiyIOC5gOC4quC4luC4teC4ouC4o+C4mOC4o+C4o+C4oeC4p+C4tOC4l+C4ouC5jA0KK+C4p+C4suC4quC4meC4siDguYDguKvguKXguLfguK3guIfguKrguLDguK3guLLguJQNCivguKfguLLguKrguJnguLIg4Lit4Li04LiZ4LiX4Liq4Li44Lin4Liy4LiXDQor4Lin4Liy4Liq4Li04LiZIOC4quC4uOC4oOC4m+C4o+C4sOC4geC4ow0KK+C4p+C5ieC4siDguYHguIvguYjguYHguJXguYkNCivguKfguLTguIHguKPguKEg4Lin4Li04LiB4Lij4Lih4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lin4Li04LiB4Li04LiIIOC4quC4uOC4guC4quC4s+C4o+C4suC4jQ0KK+C4p+C4tOC4iOC4seC4meC4l+C4o+C4siDguJrguLjguJnguJnguLLguIQNCivguKfguLTguIjguLLguKPguJPguYwg4LiZ4Liy4LiE4Lin4Li04LmA4LiK4Li14Lii4LijDQor4Lin4Li04LiI4Li04LiVIOC5hOC4l+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4iOC4tOC4leC4oyDguYDguIHguJXguLjguJjguKPguKPguKHguKfguIfguKjguYwNCivguKfguLTguIjguLTguJXguKMg4LiI4Li44Lil4Lij4Lix4Lip4LmA4LiQ4Li14Lii4LijDQor4Lin4Li04LiI4Li04LiV4LijIOC4leC4o+C4suC4iuC4uQ0KK+C4p+C4tOC4iOC4tOC4leC4oyDguJrguLPguKPguLjguIfguIHguLTguIgNCivguKfguLTguIjguLTguJXguKMg4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lin4Li04LiI4Li04LiV4LijIOC4o+C4seC4h+C4quC4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4p+C4tOC4iOC4tOC4leC4oyDguKfguLjguJLguLTguK3guLPguJ7guKUNCivguKfguLTguIjguLTguJXguKMg4Liq4Li44LiC4Lin4Li04LiX4Lii4Liy4Lin4LiH4Lip4LmMDQor4Lin4Li04LiI4Li04LiV4LijIOC4reC4seC4iOC4ieC4o+C4tOC4ouC4reC4seC4h+C4geC4ueC4ow0KK+C4p+C4tOC4iOC4tOC4leC4o+C4siDguYHguIHguYnguKfguKrguLTguJfguJjguLTguKfguIfguKjguYwNCivguKfguLTguIjguLTguJXguKPguLIg4LiW4Li04Lij4Liq4Li44LiZ4LiX4Lij4Liy4LiB4Li44LilDQor4Lin4Li04LiI4Li04LiV4Lij4LiyIOC4oeC5iOC4p+C4h+C4ouC4tOC5iOC4h+C4quC4uOC4gg0KK+C4p+C4tOC4iOC4tOC4leC4o+C4siDguKrguLTguJfguJjguLTguYLguIrguITguK3guLjguJTguKENCivguKfguLTguIjguLTguJXguKPguYwg4Lil4LmJ4Lit4Lih4LiB4Li44Lil4LmE4Lie4Lio4Liy4LilDQor4Lin4Li04LiK4LiK4LiyIOC4reC4seC4qOC4p+C4p+C4o+C4pOC4l+C4mOC4tOC5jA0KK+C4p+C4tOC4iuC4iuC4uOC4lOC4siDguKXguLXguKXguLLguKrguLjguILguKrguLHguJnguJXguLTguIHguLjguKUNCivguKfguLTguIrguI3guLIg4Liq4Li44LiX4LiY4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Li04LiK4Lin4LiZIOC4qOC4tOC4o+C4tOC4geC4suC4jeC4iOC4meC4p+C4suC4meC4tOC4ig0KK+C4p+C4tOC4iuC4seC4oiDguIHguLHguJnguJXguLHguIfguIHguLjguKUNCivguKfguLTguIrguLHguKIg4LiB4Li14Lij4LiV4Li04Lie4Liy4LiZ4Li04LiKDQor4Lin4Li04LiK4Lix4LiiIOC5gOC4geC4teC5i+C4ouC4p+C4nuC4sOC4oeC4tOC4leC4ow0KK+C4p+C4tOC4iuC4seC4oiDguYDguILguKHguLDguKfguKPguKPguJPguLINCivguKfguLTguIrguLHguKIg4LiE4Li44LiT4Liy4LiB4Lij4Liq4Li04Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4iOC4leC4uOC4o+C4nuC4seC4geC4leC4o+C4suC4o+C4seC4geC4qeC5jA0KK+C4p+C4tOC4iuC4seC4oiDguIjguLHguYjguKfguYHguIjguYjguKHguYPguKoNCivguKfguLTguIrguLHguKIg4LiI4Li04Lij4Liw4LmE4LiK4Lii4LmA4LiC4Li34LmI4Lit4LiZ4LiC4Lix4LiZ4LiY4LmMDQor4Lin4Li04LiK4Lix4LiiIOC5gOC4iOC4o+C4tOC4jeC4p+C4uOC4kuC4tOC4p+C4h+C4qeC4sg0KK+C4p+C4tOC4iuC4seC4oiDguInguLLguKLguKfguLTguIrguLTguJUNCivguKfguLTguIrguLHguKIg4LiK4Lix4Lii4Lit4Liz4LiZ4Lin4LiiDQor4Lin4Li04LiK4Lix4LiiIOC4iuC4ueC4iuC4seC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4iuC4seC4oiDguIvguLfguYnguK3guJ7guLHguJLguJnguLLguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguKfguLTguIrguLHguKIg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lin4Li04LiK4Lix4LiiIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4p+C4tOC4iuC4seC4oiDguJTguLXguKrguLjguITguJnguJjguYwNCivguKfguLTguIrguLHguKIg4LiV4Lix4LmJ4LiH4LiI4Liy4Lij4Li4DQor4Lin4Li04LiK4Lix4LiiIOC4leC4suC4oeC5gOC4l+C4teC5iOC4ouC4h+C4leC4o+C4hw0KK+C4p+C4tOC4iuC4seC4oiDguYTguJXguKPguJfguLTguJ7guKLguYzguJ7guLTguJfguLHguIHguKnguYwNCivguKfguLTguIrguLHguKIg4LiX4Lit4LiH4LmB4LiX4LmJDQor4Lin4Li04LiK4Lix4LiiIOC4mOC4meC4sOC4o+C4seC4iuC4leC4tOC4geC4suC4o+C4meC4meC4l+C5jA0KK+C4p+C4tOC4iuC4seC4oiDguJnguIHguYHguKLguYnguKENCivguKfguLTguIrguLHguKIg4LiZ4Li04Lih4Li04LiV4LmE4LiV4Lij4LiX4Li04Lie4Lii4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4muC4uOC4jeC4jeC4mOC4meC4seC4hw0KK+C4p+C4tOC4iuC4seC4oiDguJrguLjguKnguKLguLDguIjguLLguKPguLgNCivguKfguLTguIrguLHguKIg4Lib4Lij4Li14LiK4Liy4Lin4Li44LiS4Li0DQor4Lin4Li04LiK4Lix4LiiIOC5gOC4m+C4peC4teC5iOC4ouC4meC5geC4ng0KK+C4p+C4tOC4iuC4seC4oiDguJ7guKPguJjguKPguKPguKHguKrguLTguKPguLQNCivguKfguLTguIrguLHguKIg4Lie4Lix4LiZ4LiY4LmM4LiE4LizDQor4Lin4Li04LiK4Lix4LiiIOC4nuC4tuC5iOC4h+C4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguYTguJ7guJrguLnguKXguKLguYzguKXguLXguKrguIHguLjguKUNCivguKfguLTguIrguLHguKIg4Lih4LiT4Li14LiJ4Liy4LiiDQor4Lin4Li04LiK4Lix4LiiIOC4oeC4teC4l+C4o+C4seC4nuC4ouC5jOC4p+C4seC4kuC4meC4sg0KK+C4p+C4tOC4iuC4seC4oiDguKLguLTguYnguKHguJnguYnguK3guKINCivguKfguLTguIrguLHguKIg4Lij4Lix4LiV4LiZ4LmA4LiI4Lij4Li04LiN4Liq4LiB4Li44LilDQor4Lin4Li04LiK4Lix4LiiIOC5guC4o+C4iOC4meC5jOC4p+C4tOC4iuC4suC4p+C4h+C4qOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguKXguLTguYnguKHguJ7guKPguIHguLjguKUNCivguKfguLTguIrguLHguKIg4LmA4Lil4Li04Lio4Lie4Lil4Liy4LiB4LijDQor4Lin4Li04LiK4Lix4LiiIOC4p+C4h+C4qOC5jOC4quC4o+C4sOC4l+C4reC4hw0KK+C4p+C4tOC4iuC4seC4oiDguKfguYjguK3guIfguIHguLTguJXguJXguLTguKrguLTguJkNCivguKfguLTguIrguLHguKIg4Lin4Li04LiK4Lix4Lii4LiY4LiZ4Lie4Lix4LiS4LiZ4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4p+C4tOC5gOC4iuC4teC4ouC4o+C4l+C4reC4h+C4hOC4sw0KK+C4p+C4tOC4iuC4seC4oiDguKjguKPguLXguJvguLHguI3guIjguJ7guIfguKnguYwNCivguKfguLTguIrguLHguKIg4Lio4Li04Lij4Li04LiE4Li44LihDQor4Lin4Li04LiK4Lix4LiiIOC4quC4geC4peC4nuC4h+C4qeC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4p+C4tOC4iuC4seC4oiDguKrguLDguK3guLTguYrguJnguLANCivguKfguLTguIrguLHguKIg4Liq4Li04LiZ4LiX4Lix4LiV4LiV4LmC4Liq4Lig4LiTDQor4Lin4Li04LiK4Lix4LiiIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4iuC4seC4oiDguKrguLjguKPguLTguKLguLDguKHguIfguITguKUNCivguKfguLTguIrguLHguKIg4LmB4Liq4LiH4Liq4Lih4Lih4Liy4LiV4Lij4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4q+C4seC4quC4lOC4suC4lOC4pQ0KK+C4p+C4tOC4iuC4seC4oiDguYTguKvguKXguYDguIjguKPguLTguI3guKfguIfguKjguYwNCivguKfguLTguIrguLHguKIg4Lit4Lij4Li44LiT4Lin4Lix4LiS4LiZ4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4reC4suC4oOC4suC4nuC4h+C4qOC5jOC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguK3guLjguJfguLTguKgNCivguKfguLTguIrguLHguKIg4Liu4Lix4LmJ4Lin4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Li04LiK4LiyIOC4iuC5iOC4p+C4h+C5guC4iuC4leC4tA0KK+C4p+C4tOC4iuC4siDguJvguLTguJXguLTguJ7guLHguJLguJnguJ7guLHguJnguJjguYwNCivguKfguLTguIrguLIg4Lin4Li04LiK4Liy4LiK4Liy4LiNDQor4Lin4Li04LiK4Liy4LiNIOC4geC4o+C4sOC5geC4quC4o+C5jOC4geC4uOC4pQ0KK+C4p+C4tOC4iuC4suC4jSDguIjguLTguJnguJXguYzguKrguLjguKDguLHguIQNCivguKfguLTguIrguLLguI0g4LiU4Li14Lib4Lij4Liw4Lir4Lil4Liy4LiUDQor4Lin4Li04LiK4Liy4LiNIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4ouC4tOC5iOC4hw0KK+C4p+C4tOC4iuC4suC4jSDguYDguJ7guYfguIfguKrguK3guLLguJQNCivguKfguLTguIrguLLguI0g4Lil4Li04LmJ4Lih4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li04LiK4Liy4LiNIOC4qOC4tOC4o+C4tOC5gOC4p+C4iuC4p+C4o+C4suC4p+C4uOC4mA0KK+C4p+C4tOC4iuC4suC4jSDguYDguKvguJnguLXguYjguKLguKfguK3guIfguK3guLLguIgNCivguKfguLTguIrguLLguJXguLQg4Lii4Li44LiX4LiY4LiZ4Liy4Lin4Lij4Liy4LiB4Li44LilDQor4Lin4Li04LiK4Li04LiVIOC5gOC4geC4tOC4lOC5geC4geC4hw0KK+C4p+C4tOC4iuC4tOC4lSDguIjguLTguJXguKPguLXguYDguIrguLfguYnguK0NCivguKfguLTguIrguLTguJUg4LmC4LiK4LiV4Li04LiK4Lix4LiK4Lin4Liy4LilDQor4Lin4Li04LiK4Li04LiVIOC5gOC4leC4iuC4sOC4iuC4uOC4k+C4q+C4geC4tOC4iA0KK+C4p+C4tOC4iuC4tOC4lSDguJrguLjguI3guJbguJnguK3guKENCivguKfguLTguIrguLTguJUg4Lie4Lix4LiZ4LiY4Li44LmM4Lie4Liy4LiZ4Li04LiKDQor4Lin4Li04LiK4Li04LiVIOC4o+C5iOC4p+C4oeC4quC4uOC4gg0KK+C4p+C4tOC4iuC4tOC4lSDguKfguIfguKnguYzguYPguKvguI3guYgNCivguKfguLTguIrguLTguJUg4Lio4Lij4Li14Lie4LiH4Lip4LmM4Lie4Lix4LiZ4LiY4Li44LmM4LiB4Li44LilDQor4Lin4Li04LiK4Li04LiVIOC4quC4uOC4guC4quC4tOC4meC4mOC4suC4o+C4suC4meC4meC4l+C5jA0KK+C4p+C4tOC4iuC4tOC4lSDguK3guJnguLjguJXguKPguLDguIHguLnguKUNCivguKfguLTguIrguLTguJUg4LmA4Lit4Li14LmI4Lii4Lih4LmA4Liq4Lih4Liy4Lij4Li44LmI4LiHDQor4Lin4Li04LiK4Li44LiU4LiyIOC5geC4i+C5iOC4peC4tOC5iOC4oQ0KK+C4p+C4tOC4iuC4uOC4nuC4oyDguK3guLTguJfguJjguLTguKPguLHguIfguKrguLTguKHguLINCivguKfguLTguI3guI3guLkg4LiX4Lit4LiH4Lie4Lij4Lij4LiTDQor4Lin4Li04LiR4Li04LiVIOC4meC4teC4o+C4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4p+C4tOC4keC4ueC4oyDguKXguLXguKfguIfguKjguYzguYDguIjguKPguLTguI0NCivguKfguLTguJHguLnguKPguKLguYwg4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHDQor4Lin4Li04LiR4Li54Lij4Lii4LmMIOC4iuC4uOC5iOC4oeC5gOC4peC5h+C4gQ0KK+C4p+C4tOC4keC4ueC4o+C4ouC5jCDguJnguLTguKfguLLguKrguKrguKfguLHguKrguJTguLTguIHguLjguKUNCivguKfguLTguJHguLnguKPguKLguYwg4LmC4Lie4LiY4Li04LmM4LiI4LiH4Lij4Lix4LiB4Lip4LmMDQor4Lin4Li04LiR4Li54Lij4Lii4LmMIOC4p+C4o+C4o+C4k+C4iOC4tOC4leC4iOC4o+C4ueC4jQ0KK+C4p+C4tOC4keC4ueC4o+C4ouC5jCDguYDguKrguYfguIfguJ7guLLguJnguLTguIoNCivguKfguLTguJPguLHguJDguJHguLTguJXguLIg4LmC4Liq4Lig4Li04LiV4LiB4Liy4LiZ4LiV4LmMDQor4Lin4Li04LiX4Lii4Lij4Lix4LiV4LiZ4LmMIOC4l+C4reC4h+C4meC4tOC5iOC4oQ0KK+C4p+C4tOC4l+C4ouC4siDguYHguIHguYnguKfguKfguLHguJLguJnguLANCivguKfguLTguJfguKLguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LiU4Liy4LmA4Lij4Li34Lit4LiHDQor4Lin4Li04LiX4Lii4LiyIOC4ieC4seC4leC4o+C4p+C4tOC4l+C4ouC4suC4ouC4uOC4l+C4mA0KK+C4p+C4tOC4l+C4ouC4siDguYHguIvguYjguJXguLkNCivguKfguLTguJfguKLguLIg4LiV4Lix4LiT4LiR4Liq4Li44LiX4LiY4Li04LmMDQor4Lin4Li04LiX4Lii4LiyIOC4mOC4meC4sOC4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4p+C4tOC4l+C4ouC4siDguJrguLjguI3guI3guJjguJnguLLguKDguLTguKfguLHguJLguJnguYwNCivguKfguLTguJfguKLguLIg4Lie4LiH4Lip4LmM4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMDQor4Lin4Li04LiX4Lii4LiyIOC4nuC4ueC4peC4nuC4o+C4o+C4kw0KK+C4p+C4tOC4l+C4ouC4siDguYDguKHguJXguJXguLLguKrguLHguJXguKLguYwNCivguKfguLTguJfguKLguLIg4Lik4LiX4LiY4Li04LmM4LmA4LiU4LiKDQor4Lin4Li04LiX4Lii4LiyIOC4p+C4o+C4iuC4suC4leC4tA0KK+C4p+C4tOC4l+C4ouC4siDguKjguKPguJnguKPguLTguJnguJfguKPguYwNCivguKfguLTguJfguKLguLIg4Liq4Lix4LiZ4LiV4LmC4Lii4Lig4Liy4LiqDQor4Lin4Li04LiX4Lii4LiyIOC5gOC4quC4o+C4tOC4oeC4iuC4teC4ng0KK+C4p+C4tOC4l+C4ouC4siDguK3guKPguYjguLLguKHguKjguKPguLUNCivguKfguLTguJfguKLguLLguIHguKMg4LmA4LiK4Li14Lii4LiH4LiB4Li54LilDQor4Lin4Li04LiX4Lii4LmMIOC5gOC4nuC4iuC4o+C4o+C4seC4qOC4oeC4teC4nuC4o+C4suC4pw0KK+C4p+C4tOC4l+C4p+C4seC4qiDguIHguLTguJXguJXguLTguITguLjguJPguLLguJnguLHguJnguJfguYwNCivguKfguLTguJfguKfguLHguKog4Lir4LiH4Liq4LmE4LiB4LijDQor4Lin4Li04LiX4Li04LiVIOC4qOC4tOC4o+C4tOC5guC4oOC4hOC4suC4geC4tOC4iA0KK+C4p+C4tOC4l+C4ueC4oyDguYDguJfguJ7guJ7guLTguJfguLHguIHguKnguYwNCivguKfguLTguJfguLnguKMg4LmB4Liq4LiH4Liq4Li04LiH4LmB4LiB4LmJ4LinDQor4Lin4Li04LiX4Li54LilIOC4quC4oeC4muC4seC4leC4tOC4l+C4p+C4tQ0KK+C4p+C4tOC4mSDguIHguKXguYjguLPguYHguKrguIcNCivguKfguLTguJnguJTguLIg4LiK4Li34LmI4LiZ4LmA4LiK4Li34LmI4Lit4LihDQor4Lin4Li04LiZ4Lix4LiiIOC4geC4peC4tOC5iOC4meC4nuC4uOC4kg0KK+C4p+C4tOC4meC4seC4oiDguYHguIHguYnguKfguYDguIHguKnguIHguLLguKPguJPguYwNCivguKfguLTguJnguLHguKIg4LiE4Li44LmJ4Lih4LiE4Lit4LiZDQor4Lin4Li04LiZ4Lix4LiiIOC4iOC4tOC4leC4leC5jOC5geC4iOC5iOC4oQ0KK+C4p+C4tOC4meC4seC4oiDguIrguJnguLDguITguIoNCivguKfguLTguJnguLHguKIg4LmB4LiK4LmI4Lih4Lib4Lij4Li14LiU4LiyDQor4Lin4Li04LiZ4Lix4LiiIOC5gOC4lOC4iuC4meC4l+C4tQ0KK+C4p+C4tOC4meC4seC4oiDguJbguLLguKfguKMNCivguKfguLTguJnguLHguKIg4LmA4LiX4Li14Lii4Lih4LiZ4LmJ4Lit4LiiDQor4Lin4Li04LiZ4Lix4LiiIOC4meC4tOC4mOC4tOC4iuC4seC4og0KK+C4p+C4tOC4meC4seC4oiDguJrguLjguI3guKfguLHguJLguJnguYLguKrguKDguJMNCivguKfguLTguJnguLHguKIg4Lib4Liy4LiH4LiB4Li04LiV4LiV4Li04Lie4LiH4Lio4LmMDQor4Lin4Li04LiZ4Lix4LiiIOC4nuC4o+C5ieC4reC4oeC4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jA0KK+C4p+C4tOC4meC4seC4oiDguJ7guLjguYjguKHguYDguIjguKPguLTguI3guKfguLHguJLguJnguLINCivguKfguLTguJnguLHguKIg4Lih4Lij4Lij4LiE4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Li04LiZ4Lix4LiiIOC4ouC4uOC4lOC4lOC4ow0KK+C4p+C4tOC4meC4seC4oiDguYLguKPguIjguJnguYzguYDguIjguLXguKLguIcNCivguKfguLTguJnguLHguKIg4Lin4LiH4Lio4LmM4Lit4Liz4LiZ4Lin4Lii4LiB4Li44LilDQor4Lin4Li04LiZ4Lix4LiiIOC4p+C4tOC4peC4seC4ouC4geC4o+C4p+C4lA0KK+C4p+C4tOC4meC4seC4oiDguKjguLLguKrguJXguKPguYzguKrguLLguKPguLANCivguKfguLTguJnguLHguKIg4Liq4Liy4LiB4LilDQor4Lin4Li04LiZ4Lix4LiiIOC4quC4uOC4l+C4mOC4tOC4p+C4o+C4o+C4k+C4suC4o+C4seC4leC4meC5jA0KK+C4p+C4tOC4meC4seC4oiDguKvguKHguLnguYjguKHguLTguYjguIcNCivguKfguLTguJnguLHguKIg4Lit4Lij4Li44LiT4Lin4Lix4LiS4LiZ4LiB4Li54LilDQor4Lin4Li04LiZ4Lix4LiiIOC5gOC4ruC4h+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4p+C4tOC4meC4tOC4iCDguYDguIjguKPguLTguI3guKjguLTguKPguLQNCivguKfguLTguJnguLTguIgg4Lib4Lij4Li14LiK4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li04LiZ4Li04LiIIOC4p+C4tOC4o+C4tOC4ouC4geC4o+C4reC4muC4iuC4seC4og0KK+C4p+C4tOC4meC4tOC4iiDguIrguLTguKPguKfguLLguJnguLTguIoNCivguKfguLTguJnguLTguJXguKLguYwg4Liq4Lix4LiH4LiC4LmM4Liq4Li14LmA4Lir4Lil4Li34Lit4LiaDQor4Lin4Li04Lia4Li54Lij4LiT4LmMIOC4m+C4ueC5iOC4hOC4h+C4nuC4o+C4sA0KK+C4p+C4tOC4muC4ueC4peC4ouC5jOC4ouC4qCDguK3guKHguLLguJXguKLguIHguLjguKUNCivguKfguLTguJrguLnguKXguKLguYwg4LiB4Li04LiV4LiV4Li04Lit4Lix4Lih4Lie4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC5gOC4iOC4teC4ouC4o+C4p+C4h+C4qOC5jA0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguYHguJTguIfguJTguKfguIfguYHguIHguYnguKcNCivguKfguLTguJrguLnguKXguKLguYwg4LmB4LiX4LiZ4Lia4Li44LiN4LmE4Lie4Lij4Lix4LiKDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC4m+C4reC5geC4geC5ieC4pw0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguKDguLLguITguKfguJPguLTguIoNCivguKfguLTguJrguLnguKXguKLguYwg4Lik4LiX4Lix4Lii4Lio4Lij4Li14Lih4LiT4Li14Lie4Lix4LiZ4LiY4LmMDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC4p+C4tOC4muC4ueC4peC4ouC5jOC4geC4tOC4iOC4p+C4o+C4geC4uOC4pQ0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguKrguJbguLTguKPguKjguLTguKXguJvguLTguJkNCivguKfguLTguJrguLnguKXguKLguYwg4Lir4Lin4Lix4LiH4Lij4Lin4Lii4LiZ4Liy4LihDQor4Lin4Li04Lia4Li54Lil4Lil4Lix4LiB4Lip4LiT4LmMIOC4lOC4tOC4qeC4kOC4reC5iOC4p+C4oQ0KK+C4p+C4tOC4nuC4pSDguJvguLTguJXguLLguJnguLjguYDguITguKPguLLguLDguKvguYwNCivguKfguLTguJ7guLLguIHguKLguYwg4LmC4Lij4LiI4LiZ4LmB4Lie4LiX4Lii4LmMDQor4Lin4Li04Lig4LiyIOC4geC4suC4meC4leC5jOC5gOC4q+C4oeC4o+C4seC4leC4meC5jA0KK+C4p+C4tOC4oOC4siDguITguLnguJPguILguLjguJnguJfguJQNCivguKfguLTguKDguLIg4LmA4LiI4Li14Lii4Lih4LiX4Lin4Li14Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lin4Li04Lig4LiyIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4p+C4tOC4oOC4siDguJXguLHguJnguJXguKPguLTguKLguLLguJnguJnguJfguYwNCivguKfguLTguKDguLIg4LiY4Lij4Lij4Lih4Liy4LiI4Lix4LiB4Lij4LmM4LiB4Li44LilDQor4Lin4Li04Lig4LiyIOC4m+C4suC5geC4geC5ieC4pw0KK+C4p+C4tOC4oOC4siDguJ7guLTguJfguLHguIHguKnguYzguKrguLTguKPguLTguKjguLHguIHguJTguLTguYwNCivguKfguLTguKDguLIg4Lii4Lix4LiH4Lin4Li04LmA4Lio4LipDQor4Lin4Li04Lig4LiyIOC5gOC4peC4teC5ieC4ouC4h+C4qOC4tOC4o+C4tOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4p+C4tOC4oOC4siDguYDguKfguKjguLLguILguKfguKPguLTguJnguJjguYwNCivguKfguLTguKDguLIg4Liq4Liy4Lih4Liq4Li1DQor4Lin4Li04Lig4LiyIOC5geC4quC4h+C4quC4p+C5iOC4suC4hw0KK+C4p+C4tOC4oOC4siDguK3guLTguJDguIfguLLguKENCivguKfguLTguKDguLLguIjguKPguLUg4LiV4Lix4LmJ4LiH4Liq4Liz4LmA4Lij4Li04LiH4Lin4LiH4Lio4LmMDQor4Lin4Li04Lig4Liy4LiU4LiyIOC4meC4tOC4mOC4tOC4m+C4o+C4teC4iuC4suC4meC4meC4l+C5jA0KK+C4p+C4tOC4oOC4suC4lOC4siDguKvguLTguKPguLHguI3guJnguYnguK3guKINCivguKfguLTguKDguLLguJ7guKMg4LmB4LiL4LmI4LmC4Lil4LmJ4LinDQor4Lin4Li04Lig4Liy4Lie4LijIOC4pOC4lOC4teC4iuC4ueC4nuC4tOC4oeC4pQ0KK+C4p+C4tOC4oOC4suC4nuC4o+C4o+C4kyDguJ7guLjguYjguKHguKrguIfguKfguJkNCivguKfguLTguKDguLLguKDguKPguJPguYwg4LmB4LiL4LmI4LmE4Lir4LilDQor4Lin4Li04Lig4Liy4Lig4Lij4LiT4LmMIOC4reC4suC4iOC4reC4suC4quC4sg0KK+C4p+C4tOC4oOC4suC4o+C4seC4leC4meC5jCDguJ7guKPguKvguKHguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguKfguLTguKDguLLguKfguJTguLUg4LmE4LiC4LmI4Lih4Li44LiBDQor4Lin4Li04Lig4Liy4Lin4Lij4Lij4LiTIOC4hOC4uOC4k+C4leC4tOC4quC4uOC4gg0KK+C4p+C4tOC4oOC4suC4p+C4o+C4o+C4kyDguKDguLnguYjguJXguKPguLDguIHguLnguKUNCivguKfguLTguKDguLLguKfguKXguLHguKIg4LmB4LiI4Lin4LiK4Liz4LiZ4Liy4LiN4LmA4LiK4Liy4Lin4LmMDQor4Lin4Li04Lig4Liy4Lin4Li1IOC4quC4oeC4tOC4l+C4mOC4tOC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4p+C4tOC4oOC4suC4qiDguYDguK3guIHguJjguKPguKPguKHguKrguIHguLjguKUNCivguKfguLTguKHguKUg4LiB4Lil4Li04LmI4LiZ4LmA4LiB4Lip4LijDQor4Lin4Li04Lih4LilIOC4hOC4s+C5gOC4hOC4o+C4t+C5iOC4reC4hw0KK+C4p+C4tOC4oeC4pSDguInguLLguKLguJvguLHguI3guI3guLLguYDguKXguLTguKgNCivguKfguLTguKHguKUg4LmB4LiL4LmI4LmA4Liu4Li14LmJ4LiiDQor4Lin4Li04Lih4LilIOC4l+C4reC4h+C4lOC4reC4meC4meC5ieC4reC4og0KK+C4p+C4tOC4oeC4pSDguJrguLjguI3guKLguLHguIcNCivguKfguLTguKHguKUg4Lie4Lix4LiS4LiZ4Liy4LiU4Li04Liq4Lix4LiiDQor4Lin4Li04Lih4LilIOC4oeC4suC4peC4seC4ouC4l+C4reC4hw0KK+C4p+C4tOC4oeC4pSDguKXguLTguKHguJvguLTguKrguKfguLHguKrguJTguLTguYwNCivguKfguLTguKHguKUg4Lin4Li54Lin4LiZ4Li04LiKDQor4Lin4Li04Lih4LilIOC4quC4uOC4guC4quC4oeC5g+C4iA0KK+C4p+C4tOC4oeC4pSDguYHguKvguKLguKHguIfguLLguKENCivguKfguLTguKHguKXguJfguLTguJ7guKLguYwg4LmA4LiB4Lip4LmC4LiB4Lih4LilDQor4Lin4Li04Lih4Lil4Lih4Liy4Lil4Lii4LmMIOC4quC4oeC4hOC4sOC5gOC4mQ0KK+C4p+C4tOC4oeC4peC4o+C4seC4leC4meC5jCDguIfguLLguKHguJ7guKTguIHguKnguYzguKfguLLguJnguLTguIrguKLguYwNCivguKfguLTguKHguKXguKPguLHguJXguJnguYwg4LiZ4Li04Lij4Lix4LiV4Li04LiB4Li44Lil4LiK4Lix4LiiDQor4Lin4Li04Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC4peC4teC4peC4suC4m+C4o+C4sOC4iuC4suC4geC4uOC4pQ0KK+C4p+C4tOC4oeC4peC4o+C4seC4leC4meC5jCDguK3guKPguLjguJPguJnguLTguJjguLQNCivguKfguLTguKHguKXguKfguKPguKPguJMg4LmA4Lic4LmI4Liy4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Lih4Lil4Lio4Lij4Li1IOC4m+C4o+C4sOC4lOC4seC4muC5geC4geC5ieC4pw0KK+C4p+C4tOC4oeC4suC4mSDguJjguLTguYLguKrguKDguLINCivguKfguLTguKLguJTguLIg4Lin4Li04Lio4Li04Lip4LiQ4LmM4Lij4Lix4Lio4Lih4Li14Lin4LiH4Lio4LmMDQor4Lin4Li04Lii4Liw4LiU4LiyIOC4l+C4suC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4p+C4tOC4ouC4sOC4lOC4siDguKjguLTguKPguLTguJfguK3guIfguITguLMNCivguKfguLTguKPguIfguKPguK3guIcg4Lit4LmJ4LiZ4Lit4Liy4Lij4Li1DQor4Lin4Li04Lij4LiwIOC4muC4s+C4o+C4uOC4h+C4qOC4o+C4tQ0KK+C4p+C4tOC4o+C4seC4iiDguIHguKXguLTguYjguJnguILguIjguKMNCivguKfguLTguKPguLHguIog4LiC4Li44Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Li04Lij4Lix4LiKIOC4iOC4tOC4leC4nuC4seC4meC4mOC5jA0KK+C4p+C4tOC4o+C4seC4iiDguIrguLfguYjguJnguKHguLXguKjguKPguLUNCivguKfguLTguKPguLHguIog4LiU4Li04Lip4LiQ4Lia4Lij4Lij4LiI4LiHDQor4Lin4Li04Lij4Lix4LiKIOC5gOC4l+C4nuC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4p+C4tOC4o+C4seC4iiDguJrguKPguKPguYDguJfguLTguIcNCivguKfguLTguKPguLHguIog4LmA4Lib4Lij4Lih4Lio4Lij4Li1DQor4Lin4Li04Lij4Lix4LiKIOC4nuC4ueC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4tOC4o+C4seC4iiDguKHguLLguJTguKfguIcNCivguKfguLTguKPguLHguIog4LmA4Lij4Li34Lit4LiZ4LmA4LiH4Li04LiZDQor4Lin4Li04Lij4Lix4LiKIOC4p+C4o+C4o+C4k+C4o+C4seC4leC4meC5jA0KK+C4p+C4tOC4o+C4seC4iiDguKjguKPguLXguJrguLjguI3guKfguIfguKnguYwNCivguKfguLTguKPguLHguIog4Liq4Lir4Liq4Lih4LmC4LiK4LiEDQor4Lin4Li04Lij4Lix4LiKIOC5geC4quC4h+C5gOC4h+C4tOC4mQ0KK+C4p+C4tOC4o+C4seC4iiDguK3guKHguKjguLTguKPguLQNCivguKfguLTguKPguLHguIrguIog4Liq4Li44Lig4Liy4LiZ4Li44Liq4LijDQor4Lin4Li04Lij4Lix4LiVIOC4ouC4tOC5ieC4oeC4o+C4sOC4q+C4h+C4qeC5jA0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguYHguIHguYnguKfguKPguLHguJXguJnguK3guLHguKHguJ7guKMNCivguKfguLTguKPguLHguJXguJnguYwg4LiI4Liy4Lij4Li44LmA4Lin4LisDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4iuC4ueC4ieC4seC4leC4o+C5jA0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguJXguLHguJnguJXguLTguK3guJjguLTguKHguIfguITguKUNCivguKfguLTguKPguLHguJXguJnguYwg4LiY4Li54Lib4LiX4Lit4LiHDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4geC4uOC4pQ0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguJ7guLTguKXguLHguKINCivguKfguLTguKPguLHguJXguJnguYwg4Lii4Lix4LiZ4LiV4LmA4Lin4LiKDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4peC4teC4peC4suC4quC4oeC4suC4meC4iuC4seC4og0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguYHguKfguKfguJnguIHguKLguLnguIcNCivguKfguLTguKPguLHguJXguJnguYwg4Liq4Li04LiH4Lir4LmM4LiH4Liy4LihDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC5gOC4q+C4oeC4meC4o+C4suC4geC4ow0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguYDguK3guLXguKLguJTguYDguKrguJkNCivguKfguLTguKPguLLguJPguLUg4Lin4Lij4LiK4Liy4LiE4Lij4Li14Lii4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Li04Lij4Li04LiZ4LiX4Lij4LmMIOC4leC4seC4meC4leC4tOC4nuC4peC4suC4p+C4meC4tOC4iuC4ouC5jA0KK+C4p+C4tOC4o+C4tOC4ouC4sCDguJnguLTguKXguKPguLHguIfguKnguLUNCivguKfguLTguKPguLTguKLguLIg4LiB4Li04LiV4LiV4Li04LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Li04Lij4Li14Lii4LiyIOC4meC4suC4hOC4sg0KK+C4p+C4tOC4o+C4uOC4lSDguJXguKPguLXguKLguKfguIcNCivguKfguLTguKPguLjguKzguKvguYwg4LiE4Lij4Lit4LiH4Lia4Li44LiN4Lio4Lij4Li1DQor4Lin4Li04Lij4Li44Lis4Lir4LmMIOC4quC4uOC4meC4l+C4o+C4suC4oOC4seC4og0KK+C4p+C4tOC4peC4seC4oiDguYPguIjguJTguLUNCivguKfguLTguKXguLHguKIg4Lin4Li04Liq4Li44LiX4LiY4Li04LiK4Liy4LiV4Li0DQor4Lin4Li04Lil4Lix4Lii4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4geC4tOC4iOC4jeC4suC4kw0KK+C4p+C4tOC4peC4suC4p+C4o+C4o+C4kyDguJjguLLguKPguJjguJnguLLguKDguKPguJPguYwNCivguKfguLTguKXguLLguKfguLHguJPguKLguYwg4LmB4LiB4LmJ4Lin4LiB4LiZ4LiB4Lin4Li04LiI4Li04LiV4LijDQor4Lin4Li04Lil4Liy4Lin4Lix4LiT4Lii4LmMIOC4oOC4seC4l+C4o+C4p+C4meC4suC4geC4uOC4pQ0KK+C4p+C4tOC4peC4suC4p+C4seC4peC4ouC5jCDguIHguKPguLDguIjguYjguLLguIfguJfguLTguKgNCivguKfguLTguKXguLLguKfguLHguKXguKLguYwg4LiZ4Lij4Liq4Li04LiH4Lir4LmMDQor4Lin4Li04Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC4qOC4o+C4teC4oeC4teC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4tOC4peC4suC4qCDguIjguLXguJnguLLguKPguLHguIHguKnguYwNCivguKfguLTguKXguLLguKgg4LmA4Lin4LiK4Lig4Li54LiV4Li0DQor4Lin4Li04Lil4Liy4Liq4Li04LiZ4Li1IOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4p+C4tOC4p+C4o+C4o+C4kyDguIHguKHguKXguKjguKPguLXguIjguLHguIHguKMNCivguKfguLTguKfguKPguKPguJjguJnguYwg4Lig4Li04Lij4Lih4Lii4LmM4Lib4Lij4Liw4LmA4Lih4LioDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4geC4seC4meC4keC4mOC4meC4geC4tOC4iA0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguITguLjguJPguJXguLTguKrguLjguIINCivguKfguLTguKfguLHguJLguJnguYwg4LiJ4Liy4Lii4Liy4Liq4LiB4Li44Lil4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC5geC4i+C5iOC5guC4geC4og0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguYLguJXguYDguIjguKPguLTguI3guKfguLTguKfguLHguJLguJnguYwNCivguKfguLTguKfguLHguJLguJnguYwg4LiZ4Li04LiV4Li04Lig4Li54Lih4Li04LmA4Lin4LiK4Liq4LiB4Li44LilDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4m+C4tOC5iOC4meC4oOC4seC4geC4lOC4tQ0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguJ7guLXguKPguKjguLHguIHguJTguLTguYzguYLguKrguKDguJMNCivguKfguLTguKfguLHguJLguJnguYwg4Lii4Li04LmI4LiH4LiK4LiZ4Liw4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC5gOC4peC4suC4p+C5gOC4peC4tOC4qA0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguKfguLTguIHguKPguLLguJnguJXguYLguJnguKPguKoNCivguKfguLTguKfguLHguJLguJnguYwg4Lio4Li04Lil4LiB4Lij4Li44LiH4LiY4Li14Lij4Liw4Lig4Liy4LieDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguK3guKDguLTguKfguLHguJLguJnguKXguLHguIfguIHguLLguKMNCivguKfguLTguKfguLHguJLguJnguYwg4LmA4Lit4Li34LmJ4Lit4Lij4Lix4LiV4LiZ4LmM4Lio4Lij4Li14LiX4Lit4LiHDQor4Lin4Li04Lio4LiT4Li1IOC4qOC4o+C4l+C4seC4leC4leC5jA0KK+C4p+C4tOC4qOC4peC4ouC5jCDguKrguLTguKPguLTguJfguLHguKjguJnguITguLjguJMNCivguKfguLTguKjguLLguKUg4LmA4LiJ4Lil4Li04Lih4LiB4Li04LiIDQor4Lin4Li04Lio4Liy4LilIOC4peC4t+C4reC4geC4o+C4sOC4iOC5iOC4suC4h+C4mOC4o+C4o+C4oQ0KK+C4p+C4tOC4qOC4tOC4qeC4juC5jCDguYHguIHguYnguKfguKXguYnguK3guKENCivguKfguLTguKjguLTguKnguI7guYwg4Lie4Lix4LiS4LiZ4LmA4Lih4LiG4Li04LiZDQor4Lin4Li04Lio4Li04Lip4LiO4LmMIOC4reC4oOC4tOC4meC4seC4meC4l+C5jA0KK+C4p+C4tOC4qOC4tOC4qeC4j+C5jCDguKDguLnguKPguLTguKfguLHguJLguJnguYwNCivguKfguLTguKjguLTguKnguI/guYwg4Lit4Li04Liq4LiT4Lie4LiH4Lio4LmMDQor4Lin4Li04Lio4Li04Lip4LiQ4LmMIOC4geC4tOC4leC4leC4tOC4meC4seC4meC4l+C4nuC4seC4meC4mOC4uOC5jA0KK+C4p+C4tOC4qOC4tOC4qeC4kOC5jCDguJXguLLguKPguLHguIrguIHguLjguKUNCivguKfguLTguKjguLTguKnguJDguYwg4Lih4Lix4LmI4LiH4LiE4Lix4LmI4LiHDQor4Lin4Li04Lio4Li04Lip4LiQ4LmMIOC4qOC4tOC4p+C4sOC4muC4p+C4ow0KK+C4p+C4tOC4qOC4tOC4qeC4ouC5jOC4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKjguYzguKrguJbguLTguJXguKLguYzguJ7guKMNCivguKfguLTguKnguJPguLgg4LiX4Lin4Li14Lin4Li04LmC4Lij4LiI4LiZ4LmM4Liq4LiB4Li44LilDQor4Lin4Li04Lip4LiT4Li4IOC4p+C4h+C4qeC5jOC5gOC4h+C4tOC4mQ0KK+C4p+C4tOC4qeC4k+C4uOC4p+C4seC4lSDguKfguLHguIjguJnguLDguJ7guLjguIHguIHguLANCivguKfguLTguKrguLHguJnguJXguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Liq4Lix4LiiIOC4quC4oeC4muC4ueC4o+C4k+C5jOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4tOC4quC4suC4oyDguYDguJXguIrguLDguJjguLXguKPguLLguKfguLHguJLguJnguYwNCivguKfguLTguKrguLTguJAg4Lil4Li44Lic4Lil4LmB4LiX4LmJDQor4Lin4Li04Liq4Li04LiX4LiY4Li04LmMIOC4iOC4tOC4leC4o+C4nuC4suC4meC4tOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4quC4tOC4l+C4mOC4tOC5jCDguJ7guIfguYLguKjguJjguKMNCivguKfguLTguKrguLTguJfguJjguLTguYwg4LmA4Lio4Lij4Lip4LiQ4Li14Lie4LmI4Lit4LiE4LmJ4LiyDQor4Lin4Li04Liq4Li04Lip4LiQIOC4pOC4l+C4mOC4tOC5jOC4quC4s+C5gOC4o+C5h+C4iA0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tCDguJrguLjguI3guIHguLPguJ7guKPguYnguLINCivguKfguLTguKrguLjguJfguJjguLTguYwg4LiE4Li44LmJ4Lih4Lig4Liy4LiE4Liq4LiB4Li44LilDQor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMIOC4lOC5iOC4suC4meC4mOC4meC4quC4suC4hOC4ow0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jCDguJrguLjguI3guJTguLXguYDguIjguKPguLTguI3guKLguLTguYjguIcNCivguKfguLTguKrguLjguJfguJjguLTguYwg4Lig4Lix4LiX4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4nuC4tOC5gOC4meC4leC4ow0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jCDguKrguLjguJfguJjguLTguKfguLTguKPguLTguKLguLDguIHguLjguKUNCivguKfguLTguKrguLjguJfguJjguYwg4LmA4LiE4Lir4LmM4LiX4Li44LmI4LihDQor4Lin4Li04Liq4Li54LiV4LijIOC4ieC4geC4suC4iOC4pOC4l+C4mOC4tOC4nuC4h+C4qOC5jA0KK+C4p+C4tOC4quC4ueC4leC4oyDguJvguKPguLDguITguK3guIfguKrguLHguJnguJXguLTguIHguLjguKUNCivguKfguLTguKrguLnguJXguKMg4Lin4LiH4Lio4LmM4LmE4LiK4Lii4Lio4Lij4Li1DQor4Lin4Li04Liq4Li54LiV4LijIOC4quC4ueC5iOC4nuC4suC4meC4tOC4ig0KK+C4p+C4tOC5gOC4geC4t+C5ieC4rSDguKrguIHguLjguKXguIjguLHguJnguJfguKPguYwNCivguKfguLTguYDguIrguKnguJAg4Lib4Lij4Liy4LiK4LmA4Lib4Lij4Li34LmI4Lit4LiHDQor4Lin4Li04LmA4LiK4Lip4LiQ4LmMIOC4o+C4reC4lOC4meC4uOC4quC4meC4mOC4tOC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguIHguLHguIfguKfguLLguKXguKLguYwNCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiB4Li04LiU4Lig4Li54LmIDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5gOC4guC5h+C4oeC5gOC4h+C4tOC4mQ0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguYDguITguLLguKPguJ7guJ7guLLguJ7guIfguITguYwNCivguKfguLTguYDguIrguLXguKLguKMg4LiI4Lix4LiZ4LiX4LmC4LiK4LiV4Li04Lia4Li44LiV4LijDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5gOC4iOC4o+C4tOC4jeC4nuC4h+C4qeC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguIrguLHguKLguIrguLPguJnguLDguKDguLHguKINCivguKfguLTguYDguIrguLXguKLguKMg4LmC4LiK4LiV4Li04LiV4Lix4LiZ4LiV4Li04Lih4Liy4LiB4LijDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJXguKPguLXguJ7guLjguJINCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiV4Li04Lih4Lin4Li44LiS4Li0DQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4l+C4seC4leC4leC4oeC4meC4seC4qg0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJjguLLguKPguKHguJnguLnguKXguLLguKANCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiZ4LiV4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4muC4uOC4o+C4tOC4oeC4iOC4tOC4leC4leC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJvguLLguJnguK3guLjguJfguLHguKINCivguKfguLTguYDguIrguLXguKLguKMg4Lie4Lij4Liy4Lii4Lih4Li1DQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4nuC4tOC4o+C4tOC4ouC4sOC4nuC4h+C4qOC4mOC4ow0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJ/guLjguYnguIfguKrguLjguIINCivguKfguLTguYDguIrguLXguKLguKMg4Lih4Liy4Lih4Li14LmA4LiB4LiV4Li4DQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5g+C4ouC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKPguLjguYjguIfguYLguKPguIjguJnguLLguKXguLHguIHguKnguJPguYwNCivguKfguLTguYDguIrguLXguKLguKMg4Lil4Li04LmJ4Lih4Lit4Liy4Lij4Li14LiY4Lij4Lij4LihDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4p+C4h+C4qOC5jOC4reC4meC4uOC4quC4o+C4k+C5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKfguLHguJnguKXguLHguIHguKnguJPguYwNCivguKfguLTguYDguIrguLXguKLguKMg4LmE4Lin4Lie4LiI4LiZ4Liy4LiXDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4qOC4tOC4o+C4tOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKrguKHguKjguLTguKPguLTguIHguLjguKUNCivguKfguLTguYDguIrguLXguKLguKMg4Liq4Liz4LmA4Lig4LiyDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4quC4uOC4hOC4meC4mOC4suC4oOC4tOC4o+C4oeC4ouC5jCDguJMg4Lie4Lix4LiX4Lil4Li44LiHDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5gOC4quC4o+C5h+C4iOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKvguK3guKHguITguIcNCivguKfguLTguYDguIrguLXguKLguKMg4Lit4Lii4Li54LmI4LmA4Lij4Li34Lit4LiHDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4reC4tOC4meC4l+C4o+C5jOC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguK7guKfguJTguJvguKPguLDguJTguLTguKnguJDguYwNCivguKfguLTguYDguKXguLTguKgg4Lit4Lij4LmI4Liy4Lih4LmA4Lil4Li04Lio4LiV4Lij4Liw4LiB4Li54LilDQor4Lin4Li04LmA4Lio4LipIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4p+C4tOC5guC4iuC4hCDguKfguLTguYDguKjguKnguJ7guLHguJnguJjguLjguYzguIrguLHguKINCivguKfguLTguYLguKPguIjguJnguYwg4LiB4Lix4Lib4Lib4Li04Lii4LiI4Lij4Lij4Lii4LiyDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC5guC4geC4ouC4reC4meC4o+C4o+C4huC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguIfguLLguKHguYDguK3guIHguK3guLjguJTguKHguJ7guIfguKjguYwNCivguKfguLTguYLguKPguIjguJnguYwg4LiI4Li04Lin4Liy4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4iuC4peC4o+C4seC4leC4meC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguYLguIrguJXguLTguKfguKPguKPguJPguIHguLjguKUNCivguKfguLTguYLguKPguIjguJnguYwg4LiU4Lit4LiZ4Lii4Liy4LiH4LmE4Lie4LijDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC5gOC4leC4iuC4sOC4iuC4meC4suC4peC4seC4og0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguJfguLHguKjguJnguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguKfguLTguYLguKPguIjguJnguYwg4LiZ4Liy4LiE4LiZ4LmJ4Lit4LiiDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC5gOC4muC4jeC4iOC4nuC4quC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguJzguKXguJXguLnguKENCivguKfguLTguYLguKPguIjguJnguYwg4Lie4Li04LiX4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4oOC4suC5g+C4iOC4mOC4o+C4o+C4oQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKLguLHguYjguIfguKLguLfguJnguKDguKPguLLguJTguKMNCivguKfguLTguYLguKPguIjguJnguYwg4Lij4Li44LmC4LiI4Lib4LiB4Liy4LijDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4peC4tOC5iOC4p+C4peC4seC4geC4qeC4k+C5jA0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKfguIfguKnguYzguKjguLTguKPguLQNCivguKfguLTguYLguKPguIjguJnguYwg4Lin4Li04Lij4Li04Lii4Liw4LiY4LiZ4Liy4LiB4LijDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4qOC4pOC4h+C4hOC4suC4ow0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKrguLHguIfguKfguKPguYLguKLguJjguLTguJkNCivguKfguLTguYLguKPguIjguJnguYwg4Liq4Li44LiX4LiY4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4q+C4peC4tOC4oeC5hOC4iuC4ouC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguK3guKPguLjguJPguKPguLHguJXguJnguIHguLjguKUNCivguKfguLTguYLguKPguIjguJnguYwg4LmA4Lit4Li14LmI4Lii4Lih4Liq4LiB4Li44Lil4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li04LmE4LilIOC4geC4tOC4o+C4sOC4p+C4h+C4qOC5jOC4quC4geC4uOC4pQ0KK+C4p+C4tOC5hOC4pSDguITguLHguITguJnguLHguKHguJ7guKPguYDguKXguLTguKgNCivguKfguLTguYTguKUg4LiI4Liy4Lij4Li44Lie4LiH4Lio4LmMDQor4Lin4Li04LmE4LilIOC4iuC4lOC4iuC5ieC4reC4og0KK+C4p+C4tOC5hOC4pSDguYHguIvguYjguIHguLTguKENCivguKfguLTguYTguKUg4LiU4Liy4Lin4Liq4Li44LiCDQor4Lin4Li04LmE4LilIOC5guC4leC4quC4uOC4p+C4o+C4o+C4kw0KK+C4p+C4tOC5hOC4pSDguJjguLLguKPguLXguYTguJfguKINCivguKfguLTguYTguKUg4Lia4Li44LiN4Lih4Li1DQor4Lin4Li04LmE4LilIOC4m+C4suC4lOC4qOC4o+C4tQ0KK+C4p+C4tOC5hOC4pSDguJ7guLTguJfguLHguIHguKnguYzguIrguLHguKLguKfguLHguJLguJnguLINCivguKfguLTguYTguKUg4Lih4LiT4Li14LmB4Liq4LiHDQor4Lin4Li04LmE4LilIOC4o+C4seC4leC4leC4geC4uOC4pQ0KK+C4p+C4tOC5hOC4pSDguKXguLTguYnguKHguYDguJvguKPguKHguKfguLHguJLguJnguLINCivguKfguLTguYTguKUg4Lin4Li04LiI4Li04LiV4Lij4LiZ4Li04Lij4Lix4LiZ4LiU4LijDQor4Lin4Li04LmE4LilIOC4qOC4o+C4teC4reC4o+C4uOC4k+C4geC4tOC4iOC4iOC4sg0KK+C4p+C4tOC5hOC4pSDguKrguKvguK3guLLguKPguLHguIHguILguLINCivguKfguLTguYTguKUg4Liq4Li44LiX4Lix4LiU4LiT4LmM4Lin4Liy4LiZ4Li04LiKDQor4Lin4Li04LmE4LilIOC4q+C4p+C4seC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC5hOC4pSDguK3guLHguIrguJPguLLguIHguKPguKXguLHguIHguKnguJPguYwNCivguKfguLTguYTguKXguJ7guKMg4LiB4Li44Lil4Lia4Li44LiV4LijDQor4Lin4Li04LmE4Lil4Lie4LijIOC4l+C5iOC4suC5hOC4hOC4o+C5ieC4geC4peC4suC4hw0KK+C4p+C4tOC5hOC4peC4nuC4oyDguKfguLTguJfguKLguLLguILguIjguKPguYDguJTguIoNCivguKfguLTguYTguKXguJ7guKPguKPguJMg4Liq4Lih4Lia4Li54Lij4LiT4Liq4Li04LiZDQor4Lin4Li04LmE4Lil4Lij4Lix4LiV4LiZ4LmMIOC5guC4geC4qOC4peC4iOC4seC4meC4l+C4o+C4ouC4meC4leC5jA0KK+C4p+C4tOC5hOC4peC4o+C4seC4leC4meC5jCDguJvguLnguJnguKfguLTguKDguLLguIHguLjguKUNCivguKfguLTguYTguKXguKPguLHguJXguJnguYwg4Lir4Lin4Lix4LiH4Lio4Lij4Li14LiV4Lij4Lix4LiiDQor4Lin4Li04LmE4Lil4Lil4Lix4LiB4Lip4LiT4LmMIOC5gOC4iOC4meC4quC4oeC4suC4meC4iuC4seC4ouC4geC4uOC4pQ0KK+C4p+C4tOC5hOC4peC4peC4seC4geC4qeC4k+C5jCDguJnguKPguLTguJnguJfguKPguYwNCivguKfguLTguYTguKXguKXguLHguIHguKnguJPguYwg4Lij4Lix4LiV4LiZ4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li04LmE4Lil4Lil4Lix4LiB4Lip4LiT4LmMIOC5geC4quC4h+C4l+C4seC4geC4qeC4tOC4kw0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguITguIfguITguLTguJQNCivguKfguLTguYTguKXguKfguKPguKPguJMg4LiK4Li54LmB4LiU4LiHDQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTIOC5gOC4l+C4teC4ouC4meC4luC4suC4p+C4ow0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguYHguJvguYnguJnguKrguLjguKfguKPguKPguJMNCivguKfguLTguYTguKXguKfguKPguKPguJMg4Lii4Li04LiZ4LiU4Li14Lik4LiB4Lip4LmMDQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTIOC4p+C4suC4qOC4p+C4tOC4lw0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguKrguLjguYDguJ7guLXguKLguKMNCivguKfguLTguYTguKXguKfguKPguKPguJPguYwg4LmA4Lir4Lil4Li34Lit4LiH4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li14LiT4LiyIOC4geC4seC4quC4leC4seC4mQ0KK+C4p+C4teC4k+C4siDguYDguIjguJnguIHguLTguIjguYDguIjguKPguLTguI3guIrguLHguKINCivguKfguLXguJPguLIg4LiV4Lix4LiZ4LmA4LiB4Lip4LihDQor4Lin4Li14LiT4LiyIOC4muC4uOC4jeC4guC4p+C4seC4jQ0KK+C4p+C4teC4k+C4siDguKDguLHguIHguJTguLXguKfguLHguJLguJnguLDguIHguLjguKUNCivguKfguLXguJPguLIg4Lin4LiH4Lip4LmM4LiB4Lih4Lil4LiK4Li44LiT4Lir4LmMDQor4Lin4Li14LiT4LiyIOC4quC4suC4ouC4q+C4ouC4uOC4lA0KK+C4p+C4teC4k+C4siDguYDguK3guLXguYjguKLguKHguJvguKPguLDguIjguIcNCivguKfguLXguJnguLHguKog4Lib4Li04LmI4LiZ4Lih4Lix4LiH4LiB4LijDQor4Lin4Li14LiZ4Lix4LiqIOC5gOC4reC4teC5iOC4ouC4oeC4p+C4seC4kuC4meC4sA0KK+C4p+C4teC4o+C4geC4tOC4leC4leC5jCDguYTguJ7guJrguLnguKXguKLguYzguIHguLTguIjguYLguIHguKjguKUNCivguKfguLXguKPguIrguLHguKIg4LmB4LiL4LmI4LmA4LiL4Li14Lii4LinDQor4Lin4Li14Lij4LiK4Lix4LiiIOC4peC4suC4oOC5gOC4iOC4o+C4tOC4jeC4nuC4ow0KK+C4p+C4teC4o+C4iuC4seC4oiDguK3guLLguJnguLHguJnguJfguKjguLTguKPguLTguYDguIHguLXguKLguKPguJXguLQNCivguKfguLXguKPguJnguLLguJYg4LmB4LiU4LiH4Lia4Li44LiNDQor4Lin4Li14Lij4Lie4LiH4Lio4LmMIOC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jOC4oOC4seC4geC4lOC4tQ0KK+C4p+C4teC4o+C4nuC4iOC4meC5jCDguYDguIrguLTguJTguYTguIrguKLguKfguIfguKnguYwNCivguKfguLXguKPguJ7guKUg4LiY4LiZ4Liy4Lig4Lij4LiT4LmM4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lin4Li14Lij4Lie4Lix4LiS4LiZ4LmMIOC4geC4tOC4leC4leC4tOC4oOC4suC4k+C4uOC4geC4uOC4pQ0KK+C4p+C4teC4o+C4ouC4qCDguKTguJfguJjguLTguYzguYTguJfguKINCivguKfguLXguKPguKLguLjguJfguJgg4Lia4Lix4LiT4LiR4Li04LiV4Lig4Li54Lin4LiZ4LiZ4LiX4LmMDQor4Lin4Li14Lij4Lii4Li44LiX4LiY4LmMIOC4m+C4teC4geC4suC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4p+C4o+C4o+C4kyDguYHguJXguIfguYHguIHguYnguKcNCivguKfguLXguKPguKfguKPguKPguJMg4LmA4Lin4Liq4Liy4Lij4Lix4LiK4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lin4Li14Lij4Lin4Lix4LiS4LiZ4LmMIOC4hOC4uOC4k+C4nuC4tOC4l+C4seC4geC4qeC5jOC4p+C4seC4kuC4meC4sg0KK+C4p+C4teC4o+C4p+C4seC4kuC4meC5jCDguJ7guLbguYjguIfguYLguJ7guJjguLTguYzguKrguKANCivguKfguLXguKPguKfguLHguJUg4LiE4Li44LiT4Liy4LiZ4Li44LiB4Li54LilDQor4Lin4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4guC4iOC4o+C5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4p+C4teC4o+C4qOC4seC4geC4lOC4tOC5jCDguJrguKPguKPguIjguIfguKHguJPguLUNCivguKfguLXguKPguKjguLHguIHguJTguLTguYwg4Lin4Li04LiK4LiK4Liy4LiK4Li5DQor4Lin4Li14Lij4Liq4Li04LiX4LiY4Li04LmMIOC4ieC4seC4leC4o+C4quC4uOC4oOC4suC4h+C4hOC5jA0KK+C4p+C4teC4o+C4sCDguYHguIHguYnguKfguJnguLjguYjguKENCivguKfguLXguKPguLAg4LiI4Liw4Lia4Lix4LiHDQor4Lin4Li14Lij4LiwIOC4ieC4tOC4meC4l+C4geC4suC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4sCDguYLguIrguITguKLguLLguJnguLjguKfguLHguJLguJnguYzguKjguLTguKPguLQNCivguKfguLXguKPguLAg4LmC4LiU4LmB4Lin4LiZ4LmA4LinDQor4Lin4Li14Lij4LiwIOC4l+C4reC4h+C4peC4tOC5ieC4meC4iOC4teC5iA0KK+C4p+C4teC4o+C4sCDguJnguLPguIrguLLguI3guIrguLHguKLguKfguLjguJLguLQNCivguKfguLXguKPguLAg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Lic4Lil4Lie4Liy4LiZ4Li04LiKDQor4Lin4Li14Lij4LiwIOC4nuC4peC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4teC4o+C4sCDguKHguJnguJXguYDguKrguKPguLXguKfguIfguKjguYwNCivguKfguLXguKPguLAg4Lij4Lix4LiK4LiV4Liy4Lih4Li44LiC4Lii4LiZ4Lix4LiZ4LiV4LmMDQor4Lin4Li14Lij4LiwIOC4peC4t+C4reC4p+C4tOC4iuC4meC4sA0KK+C4p+C4teC4o+C4sCDguKfguLHguJLguJnguLLguKLguLTguYjguIfguKrguIHguLjguKUNCivguKfguLXguKPguLAg4Lio4Lij4Li14Lih4Liy4Lil4LiyDQor4Lin4Li14Lij4LiwIOC4quC4p+C4o+C4o+C4ouC4suC4o+C4seC4leC4meC5jA0KK+C4p+C4teC4o+C4sCDguKrguLjguKPguLTguKLguJvguKPguLDguKDguLLguJTguLTguKXguIENCivguKfguLXguKPguLAg4LmA4Lir4Lil4Li34Lit4LiH4Lia4Lij4Li04Lia4Li54Lij4LiT4LiwDQor4Lin4Li14Lij4LiwIOC4reC4uOC4meC4hOC4suC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4sOC4iuC4seC4oiDguIHguLnguJTguYLguJ7guJnguIfguLLguKENCivguKfguLXguKPguLDguIrguLHguKIg4LiK4Li04LmJ4LiZ4Lio4Li04Lij4Li0DQor4Lin4Li14Lij4Liw4LiK4Lix4LiiIOC4l+C4reC4h+C4p+C4h+C4qeC5jA0KK+C4p+C4teC4o+C4sOC4iuC4seC4oiDguJ7guKPguKvguKHguKHguLLguKgNCivguKfguLXguKPguLDguIrguLHguKIg4LmC4Lil4LmJ4Lie4Li04Lij4Li44LiTDQor4Lin4Li14Lij4Liw4LiK4Lix4LiiIOC4quC4uOC4meC4l+C4o+C5gOC4iOC4o+C4tOC4jeC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4sOC4iuC4suC4lSDguJ7guIfguKjguYzguKrguKfguLHguKrguJTguLTguYwNCivguKfguLXguKPguLDguIrguLLguJXguLQg4Lit4Li04LiH4Liq4Lix4LiZ4LmA4LiX4Li14Lii4LiwDQor4Lin4Li14Lij4Liw4Lie4LiH4Lio4LmMIOC4muC4uOC4jeC4geC4tOC4leC4leC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4teC4o+C4sOC4nuC4h+C4qeC5jCDguYDguJfguLXguKLguJnguYDguKrguKPguLTguKHguJfguKPguLHguJ7guKLguYwNCivguKfguLXguKPguLDguJ7guIfguKnguYwg4Liq4Li04Lij4Li04Lin4Lix4LiS4LiZ4LmA4Liq4LiW4Li14Lii4LijDQor4Lin4Li14Lij4Liw4Lie4LilIOC4iOC4tOC4o+C4seC4h+C4meC4tOC4oeC4tOC4leC4quC4geC4uOC4pQ0KK+C4p+C4teC4o+C4sOC4nuC4pSDguKHguLXguKXguLLguKANCivguKfguLXguKPguLDguJ7guKUg4LmC4Lit4Liq4Lig4Liy4Lij4Lii4LiB4Li44LilDQor4Lin4Li14Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC5gOC4nuC4iuC4o+C4o+C4seC4leC4meC5jA0KK+C4p+C4teC4o+C4sOC4ouC4uOC4l+C4mCDguYLguIHguKPguLHguJXguJnguLANCivguKfguLXguKPguLDguKLguLjguJfguJgg4Lio4Li44Lig4LiZ4Liy4Lij4LiyDQor4Lin4Li14Lij4Liw4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4p+C4teC4o+C4sOC4p+C4seC4kuC4meC5jCDguJXguLjguIfguITguKfguLTguIjguLTguJXguKPguKfguLHguJLguJnguYwNCivguKfguLXguKPguLDguKfguLHguJLguJnguYwg4Liq4Li44Lin4Lij4Lij4LiT4LmA4Lia4LiN4LiI4LiB4Li44LilDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4reC4h+C5geC4geC5ieC4pw0KK+C4p+C4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguIrguLLguI3guKfguLTguKPguKfguIfguKjguYwNCivguKfguLXguKPguLDguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4m+C4mOC4tOC4oeC4sg0KK+C4p+C4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguKTguIHguKnguYzguKrguKHguJrguLnguKPguJPguYzguKjguLTguKPguLQNCivguKfguLXguKPguLDguKjguLHguIHguJTguLTguYwg4Lio4Lij4Li14Liq4Li04LiZ4LiX4LijDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4reC4oeC4iuC4t+C5iOC4mQ0KK+C4p+C4teC4o+C4sOC5gOC4geC4teC4ouC4o+C4leC4tCDguJXguLHguYnguIfguK3guKHguKPguKPguLHguJXguJnguYwNCivguKfguLXguKPguLDguYDguJfguJ4g4LmA4LiV4LmH4Lih4Liq4Li04LiZ4Lic4LiU4Li44LiHDQor4Lin4Li14Lij4Liy4Lii4LiyIOC4reC5iOC4p+C4oeC4quC4sOC4reC4suC4lA0KK+C4p+C4teC4o+C5gOC4lOC4iiDguKXguLTguKHguJvguYzguKPguLHguIrguJXguLLguKHguKMNCivguKfguLjguJLguJHguLTguJnguLHguJnguJfguYwg4Lio4Lij4Li14LmC4LiJ4Lih4LiH4Liy4LihDQor4Lin4Li44LiS4Li0IOC5guC4iuC4quC4tOC4p+C4quC4geC4uOC4pQ0KK+C4p+C4uOC4kuC4tCDguKHguLXguKrguLjguIINCivguKfguLjguJLguLQg4LmA4Lir4Lil4LmI4Liy4Liq4Li44LiZ4LiX4LijDQor4Lin4Li44LiS4Li04LiK4Lix4LiiIOC5gOC4geC4qOC4m+C4suC4meC4meC4l+C5jA0KK+C4p+C4uOC4kuC4tOC4iuC4seC4oiDguYHguIvguYjguKXguLTguYnguKENCivguKfguLjguJLguLTguIrguLHguKIg4Lib4Lij4Liw4Lin4Li04LiH4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li44LiS4Li04LiK4Lix4LiiIOC4o+C4reC4lOC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4uOC4kuC4tOC4iuC4seC4oiDguKjguKTguIfguITguLLguKPguKDguLLguKnguLTguJUNCivguKfguLjguJLguLTguIrguLHguKIg4LmB4Liq4LiZ4Lih4Liy4LmC4LiZ4LiKDQor4Lin4Li44LiS4Li04LiZ4Lix4LiZ4LiX4LmMIOC4leC4uOC4peC4ouC4peC4seC4geC4qeC4k+C5jA0KK+C4p+C4uOC4kuC4tOC4nuC4h+C4qOC5jCDguKvguKfguLHguIfguJjguJnguIHguLTguIgNCivguKfguLjguJLguLTguJ7guIfguKnguYwg4Lio4Lij4Li14Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lin4Li44LiS4Li04Lin4Lix4LiS4LiZ4LmMIOC4reC4o+C4uOC4k+C4l+C4reC4hw0KK+C4p+C4uOC4kuC4tOC4quC4siDguJrguLjguKnguKHguIfguITguKUNCivguKfguLjguJLguLTguYTguIHguKMg4Lit4Li44LiX4Lix4Lii4Lin4Lix4LiS4LiZ4Lib4Lij4Li14LiK4LiyDQor4Lin4LmC4Lij4LiK4LiyIOC4leC4uOC4h+C4hOC4sOC5gOC4qOC4o+C4k+C4tQ0KK+C4p+C5hOC4peC4nuC4oyDguJTguLXguJbguLLguKfguKMNCivguKfguYTguKXguKXguLHguIHguKnguJPguYwg4LmA4LiI4Lij4Li04LiN4Lit4Lix4LiE4Lin4Liq4Li44LiCDQor4LmA4Lin4LiKIOC4l+C4reC4h+C5gOC4o+C4t+C4reC4hw0KK+C5gOC4p+C4k+C4tOC4gSDguIjguIfguYDguIjguKPguLTguI0NCivguYDguKfguKrguJfguYzguYHguKXguJnguJTguYwg4LiU4Li1DQor4LmA4Lin4Li14Lii4LiH4Lif4LmJ4LiyIOC4hOC4uOC5ieC4oeC5hOC4nuC4l+C4ueC4peC4ouC5jA0KK+C5gOC4p+C5ieC4h+C4ruC4hyDguYHguIvguYjguIHguLHguIcNCivguYHguKfguKcg4Lit4LmI4Lit4LiZ4Lil4Liw4Lih4Li54LilDQor4LmB4Lin4Lin4LiV4LiyIOC4o+C4reC4lOC4hOC4peC4reC4h+C4leC4seC4mQ0KK+C5geC4p+C4p+C5g+C4iCDguYHguIvguYjguJrguYnguLLguIcNCivguYTguKfguJHguLnguKPguKLguYwg4Lib4Lij4Lix4LiK4LiN4Liy4Lie4LiH4Lio4LmM4Lie4Lix4LiZ4LiY4LmMDQor4LmE4Lin4LiiIOC5gOC4m+C5ieC4suC4l+C4reC4hw0KK+C5hOC4p+C4p+C4tOC4l+C4ouC5jCDguYDguKvguKXguYjguLLguKfguKPguKfguLTguJfguKLguYwNCivguKjguIHguLjguJnguJXguKXguLIg4Lij4Lix4LiB4Lip4Liy4Liq4Lix4LiV4Lii4LmMDQor4Lio4LiI4Li14Lie4LijIOC4reC4tOC4quC4o+C4tOC4ouC4sOC5gOC4quC4o+C4teC4geC4uOC4pQ0KK+C4qOC4meC4tOC4qeC4siDguJnguLHguKLguJjguJnguLTguIoNCivguKjguKPguIrguLHguKIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiK4Lix4Lii4Lin4Li44LiS4Li0DQor4Lio4Lij4LiK4Lix4LiiIOC4o+C4seC4qOC4oeC4tOC4l+C4seC4lQ0KK+C4qOC4o+C4oyDguJjguKPguKPguKHguJbguLjguJXguLQNCivguKjguKPguKjguLTguKXguJvguYwg4Lie4Lil4LmA4LiV4LiK4LiyDQor4Lio4Lij4Lix4LiN4LiN4LiyIOC5guC4nuC4mOC4tOC5jOC5geC4geC5ieC4pw0KK+C4qOC4o+C4seC4k+C4jeC4siDguIjguIfguJnguKPguLHguIfguKrguLTguJkNCivguKjguKPguLHguJPguKLguLIg4Lin4LiH4Lio4LmM4Lia4LiyDQor4Lio4Lij4Lix4LiT4Lii4LmMIOC5gOC4mOC4teC4ouC4o+C4qOC4tOC4peC4suC4geC4uOC4pQ0KK+C4qOC4o+C4seC4l+C4mOC4siDguJfguK3guIfguKfguLjguJLguLTguJ7guLHguJnguJjguYwNCivguKjguKPguLLguKDguKPguJPguYwg4Lib4Lij4Li14LiK4LiyDQor4Lio4Lij4Liy4Lii4Li44LiX4LiYIOC4quC4suC4quC4meC4tOC4lw0KK+C4qOC4o+C4suC4p+C4uOC4kuC4tCDguIjguLTguJnguLLguJXguLjguJkNCivguKjguKPguLLguKfguLjguJgg4LiU4LmI4Liy4LiZ4LmA4Lie4LmH4LiK4Lij4LiU4Liz4Lij4LiHDQor4Lio4Lij4Liy4Lin4Li44LiYIOC4quC4oeC4seC4ouC5gOC4l+C4reC4lOC4qOC4seC4geC4lOC4tOC5jA0KK+C4qOC4o+C4tOC4meC4lOC4siDguJvguLHguKrguJnguLDguIjguLDguYLguJkNCivguKjguKPguLTguJnguJfguLTguJ7guKLguYwg4LiW4LmJ4Liz4LiX4Li04Lih4LiX4Lit4LiHDQor4Lio4Lij4Li04LiZ4Lii4LiyIOC4quC4q+C4quC4tOC4l+C4mOC4tOC4p+C4seC4kuC4meC5jA0KK+C4qOC4o+C4tSDguYDguJzguYjguLLguJfguK3guIfguIjguLXguJkNCivguKjguKPguLXguIHguLHguJnguKLguLIg4LmC4Lia4Lin4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Lio4Lij4Li14LiI4Lix4LiZ4LiX4LiZ4LmMIOC4p+C5iOC4reC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4qOC4o+C4teC4iOC4seC4meC4l+C4o+C5jCDguKLguLTguJnguJTguLXguK3guLHguJkNCivguKjguKPguLXguIjguLTguJXguJXguYwg4Liq4Li44LiK4Liy4LiV4Li04Liq4Li44LiY4Liy4LiY4Lij4Lij4LihDQor4Lio4Lij4Li14LiK4Liy4LiV4Li0IOC4quC4uOC4oOC4suC4qeC4tOC4lQ0KK+C4qOC4o+C4teC4l+C4reC4hyDguJ7guLnguKXguJfguKPguLHguJ7guKLguYwNCivguKjguKPguLXguJjguLTguIrguLIg4LiX4Lit4LiH4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lio4Lij4Li14LiZ4Lin4LilIOC4iOC4seC4meC4l+C4o+C5jOC4quC4uOC4gg0KK+C4qOC4o+C4teC4meC4p+C4pSDguJfguLjguKHguYDguJfguLXguYjguKLguIcNCivguKjguKPguLXguJnguKfguKUg4LmA4Lih4LiG4Lir4LmI4Lin4LiHDQor4Lio4Lij4Li14LiZ4Lin4LilIOC4quC4uOC4guC4quC4reC4suC4lA0KK+C4qOC4o+C4teC4meC4suC4o+C4tSDguYHguIvguYjguYDguK7guIcNCivguKjguKPguLXguJvguKPguLDguKDguLIg4LiB4Lil4Li04LmI4LiZ4Liq4Lix4LiH4LiC4LmMDQor4Lio4Lij4Li14Lib4Lij4Liw4Lig4LiyIOC5geC4quC4h+C5gOC4meC4leC4ow0KK+C4qOC4o+C4teC4m+C4o+C4suC4iuC4jeC5jCDguKrguLjguJfguLHguKjguJnguKjguLbguIHguKnguLINCivguKjguKPguLXguJ7guKMg4Lih4Liy4Lil4Liw4Lin4Li04LiK4Lix4LiiDQor4Lio4Lij4Li14Lie4Lix4LiK4Lij4LiyIOC4qOC4uOC4oOC4o+C4p+C4o+C4o+C4kw0KK+C4qOC4o+C4teC4oeC4suC4peC4siDguIHguKXguLXguJrguIHguKHguKUNCivguKjguKPguLXguKPguLHguJXguJnguLIg4Lij4Lit4LiU4LiU4Li1DQor4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4muC4o+C4o+C4ouC4h+C4geC4sOC5gOC4quC4meC4siDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4quC4seC4h+C4guC5jOC4nuC4seC4meC4mOC5jA0KK+C4qOC4o+C4teC4peC4seC4lOC4lOC4siDguYLguJvguYrguLDguJrguLjguI3guIrguLfguYjguJkNCivguKjguKPguLXguKfguKPguKPguJMg4LiK4Li54LiT4Lij4LiH4LiE4LmMDQor4Lio4Lij4Li14Lin4Lij4Lij4LiTIOC4o+C4seC4leC4meC5gOC4qOC4o+C4qeC4kA0KK+C4qOC4o+C4teC4p+C4o+C4o+C4kyDguK3guLTguJnguJfguKPguLHguJXguJnguYwNCivguKjguKPguLXguKfguKXguLUg4Lil4Li04LmI4Lih4Lih4Lij4LiB4LiVDQor4Lio4Lij4Li14Lin4Li04LiK4Lix4LiiIOC4meC4geC4ouC4tOC5ieC4oQ0KK+C4qOC4o+C4teC4p+C4tOC4peC4seC4oiDguKrguIfguKfguJnguKrguLHguJXguKLguYwNCivguKjguKPguLXguKfguLTguYTguKUg4Liq4Li44LiC4Li44Lih4LiB4Liy4LiN4LiI4LiZ4LiwDQor4Lio4Lij4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4qOC4seC4geC4lOC4tOC5jOC4qOC4o+C4tQ0KK+C4qOC4o+C4teC4quC4geC4uOC4pSDguKjguKPguLXguJXguLDguJvguLHguJnguKLguYwNCivguKjguKPguLXguKrguKHguJrguLnguKPguJPguYwg4LmA4Lie4LiK4Lij4Lih4LmI4Lin4LiHDQor4Lio4Lij4Li14Liq4Lih4LijIOC4nuC4h+C4qOC4suC4p+C4peC4teC4o+C4seC4leC4meC5jA0KK+C4qOC4o+C4teC4quC4oeC4seC4oiDguKfguLTguJrguLnguKXguKLguLLguJnguJnguJfguYwNCivguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwg4LiY4LiZ4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lio4Lij4Li14Liq4Lin4Liy4Liq4LiU4Li04LmMIOC4meC5ieC4reC4ouC4nuC4seC4meC4mOC4uOC5jA0KK+C4qOC4o+C4teC4quC4reC4suC4lCDguYHguIvguYjguK7guLHguYnguIcNCivguKjguKPguLXguKrguLjguIIg4LiB4Lil4Li04LmI4LiZ4Lia4Lix4LinDQor4Lio4Lij4Li14Liq4Li44LiK4Liy4LiV4Li0IOC4l+C4reC4h+C5hOC4peC5iQ0KK+C4qOC4o+C4teC4quC4uOC4lOC4siDguYHguJTguIfguJTguLXguYDguKXguLTguKgNCivguKjguKPguLXguKrguLjguJTguLIg4Lih4Lix4LmI4LiZ4LiE4LiH4Liq4LiB4Li44LilDQor4Lio4Lij4Li14Liq4Li44LiU4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4geC4tOC4iOC4p+C4seC4kuC4meC5jA0KK+C4qOC4o+C4teC4quC4uOC4meC4tSDguK3guLHguKjguKfguJ7guLTguKDguJ4NCivguKjguKPguLXguKrguLjguKHguLLguKXguKLguYwg4LiH4Liy4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li04LiIDQor4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTIOC4o+C4uOC4k+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4qOC4o+C4teC4reC4reC4mSDguJfguK3guIfguITguLMNCivguKjguKPguLXguK3guLjguJTguKEg4LmA4LiU4LiK4Liw4Lio4Li04Lij4Li0DQor4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNIOC4o+C4reC4muC4hOC4reC4mg0KK+C4qOC4o+C4teC5gOC4nuC5h+C4jSDguJfguKPguLHguJ7guKLguYzguKHguJnguIrguLHguKINCivguKjguKPguLXguYDguKPguLfguK3guJkg4Lib4Lij4Liw4Lii4Li54Lij4Lie4Lij4Lir4LihDQor4Lio4Lij4Li14LmB4LiEIOC4l+C4o+C4seC4nuC4ouC5jOC4lOC4tQ0KK+C4qOC4o+C4teC5hOC4l+C4oiDguKjguKPguLXguYDguKfguJfguKLguYzguJrguJTguLUNCivguKjguKPguLjguJUg4LiE4Lij4Lia4LiY4Li14Lij4Lin4LiH4Lio4LmMDQor4Lio4Lil4Li04Lip4LiyIOC4p+C4o+C4o+C4k+C4geC4tOC4iA0KK+C4qOC4qOC4p+C4o+C4o+C4kyDguKTguIHguKnguYzguKrguLjguKPguLTguKLguJ7guLHguJnguJjguYwNCivguKjguKjguLTguIrguKUg4LiI4Lij4Li54LiN4LmA4Lil4Li04Lio4Liq4Li04LiX4LiY4Li04Lic4LilDQor4Lio4Lio4Li04LiY4LijIOC4hOC4s+C4quC4seC4k+C4q+C5jA0KK+C4qOC4qOC4tOC4mOC4oyDguYTguIrguKLguKPguLTguJvguLkNCivguKjguKjguLTguJjguKMg4LiY4Lij4Lij4Lih4Lie4Lix4LiB4LiV4Lij4LiB4Li44LilDQor4Lio4Lio4Li04LiY4LijIOC4nuC4o+C4suC4q+C4oeC4k+C4sOC4meC4seC4meC4l+C4meC5jA0KK+C4qOC4qOC4tOC4mOC4oyDguKPguLjguIjguLLguJnguLjguKPguLHguIHguKnguYwNCivguKjguKjguLTguJjguKMg4Lio4Lij4Li14Lit4LiZ4Li44Lie4Lix4LiZ4LiY4Li44LmMDQor4Lio4Lio4Li04LiY4LijIOC4quC4uOC4o+C4tOC4ouC4suC4nuC4ow0KK+C4qOC4qOC4tOC4mOC4oyDguYHguK3guJnguK3guLbguYnguIcNCivguKjguKjguLTguJ7guKMg4LiY4LiZ4LmC4LiB4Lin4Li04LiXDQor4Lio4Lio4Li04Lig4Liy4Liq4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4uOC4gg0KK+C4qOC4qOC4tOC4peC4seC4geC4qeC4k+C5jCDguYDguIrguLLguKfguYzguJ7guLLguJnguJnguJfguYwNCivguKjguKjguLTguKfguLTguKHguKUg4LmC4LiB4Liq4Li04Lii4LiB4Li44LilDQor4Lio4Lio4Li04LmA4Lie4LmH4LiNIOC4p+C4o+C4o+C4k+C4p+C4tOC4iOC4tOC4leC4ow0KK+C4qOC4seC4geC4lOC4siDguITguKXguYnguLLguKLguKrguLLguITguKMNCivguKjguLHguIHguJTguLIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lio4Lix4LiB4LiU4LiyIOC4mOC4o+C4o+C4oeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4qOC4seC4geC4lOC4siDguJ7guIfguKnguYzguJzguKUNCivguKjguLHguIHguJTguLIg4LmB4Lih4LmJ4LiZ4Liq4Li44Lin4Lij4Lij4LiTDQor4Lio4Lix4LiB4LiU4LiyIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4p+C4h+C4qOC5jA0KK+C4qOC4seC4geC4lOC4siDguKrguLjguKPguLTguKLguLDguJ7guKPguIrguLHguKLguIHguLjguKUNCivguKjguLHguIHguJTguLIg4LmA4Lit4Li14LmI4Lii4Lih4Lit4Lij4LmI4Liy4Lih4Lio4Lij4Li1DQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4hOC4oeC4geC4pOC4qg0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguIrguYjguK3guIrguLHguKLguJ7guKTguIHguKnguYwNCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4LiU4Liz4Lij4Li04Lir4LmM4LiH4Liy4LihDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4l+C4seC4geC4guC4tOC4jeC5gOC4quC4luC4teC4ouC4ow0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguJvguLHguI3guI3guLLguKHguLXguYDguKrguKHguK0NCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4LmC4Lie4LiY4Li04LmM4Lib4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4pOC4geC4qeC5jOC5gOC4geC4qeC4oQ0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguKfguLTguKPguLTguKLguLDguKrguLjguILguKrguLTguJnguJjguLjguYwNCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4Liq4Li04Lij4Li04Lib4Lij4Liw4Lig4Liy4Lie4Lij4Lij4LiTDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC5gOC4q+C4peC4teC4ouC4h+C4geC4reC4muC4geC4tOC4iA0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguYDguK3guLfguYnguK3guKrguLjguJnguJfguKPguJ7guLLguJnguLTguIoNCivguKjguLHguIHguJTguLTguYzguIrguLLguKIg4Lil4Li04LiC4Li04LiV4LiV4Lij4Liw4LiB4Li44LilDQor4Lio4Lix4LiB4LiU4Li04LmM4LiU4LiyIOC5hOC4iuC4ouC4suC4meC4uOC4p+C4h+C4qOC5jA0KK+C4qOC4seC4geC4lOC4tOC5jOC4lOC4siDguK3guLTguIfguITguKfguLDguKPguLANCivguKjguLHguIHguJTguLTguYzguKLguLHguJnguJXguYwg4LiK4Li54LmD4LiIDQor4Lio4Lix4LiB4LiU4Li04LmM4Lio4Li04Lij4Li04Lih4LiyIOC4guC4s+C5gOC4reC4teC5iOC4ouC4oQ0KK+C4qOC4seC4geC4lOC4tOC5jOC4quC4tOC4l+C4mOC4tOC5jCDguYDguJbguLLguJfguK3guIcNCivguKjguLHguIHguJTguLTguYzguKrguLTguJfguJjguLTguYwg4LmA4Lir4Lih4LiB4Li04LiV4LiV4Li04LmA4LiB4Li14Lii4Lij4LiV4Li04LmMDQor4Lio4Lix4LiB4LiU4Li04LmM4LmE4Liq4LinIOC4l+C4reC4h+C4o+C4seC4leC4meC5jA0KK+C4qOC4seC4geC4lOC4tOC5jCDguJ7guLbguYjguIfguYDguIjguKPguLTguI0NCivguKjguLHguIHguJTguLUg4LmA4LiJ4Li14Lii4Lia4LmB4Lir4Lil4LihDQor4Lio4Lix4LiH4LiB4LijIOC4oOC4ueC4p+C5gOC4iOC4o+C4tOC4jQ0KK+C4qOC4seC4meC4quC4meC4teC4ouC5jCDguJXguLDguYLguJ7guJnguJfguK3guIcNCivguKjguLHguJnguKrguJnguLXguKLguYwg4Lin4Li04LiK4Lix4Lii4LiU4Li04Lip4LiQDQor4Lio4Lix4Lil4Lii4Lin4Li04LiX4Lii4LmMIOC4qOC4tOC4o+C4tOC4oeC4k+C4keC4pQ0KK+C4qOC4suC4meC4leC4tCDguK3guLHguIjguIjguLTguKHguLLguIHguKMNCivguKjguLLguKfguLTguJXguKPguLUg4Lig4Lin4Liy4LiV4Li04LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lio4Li04LiZ4Li04LiV4Lii4LmMIOC4reC4k+C4tOC4quC4seC4meC4keC5jA0KK+C4qOC4tOC4o+C4nuC4oyDguKjguLTguKPguLTguJrguLjguI3guKPguLHguIHguKnguLINCivguKjguLTguKPguLAg4Liq4LmC4LiV4LiZDQor4Lio4Li04Lij4Liy4LiZ4Li44LiKIOC4quC4uOC4p+C4o+C4o+C4k+C5guC4iuC4leC4tA0KK+C4qOC4tOC4o+C4tCDguYTguIHguKPguKrguKHguIjguLTguJXguKMNCivguKjguLTguKPguLQg4LiK4Lix4Lii4Liq4Lix4LiZ4LiY4LiZ4LiwDQor4Lio4Li04Lij4Li0IOC4mOC4o+C4o+C4oeC4quC4uOC4o+C4tOC5gOC4iuC4qeC4kOC5jA0KK+C4qOC4tOC4o+C4tCDguJzguKXguLTguJnguIHguLnguKUNCivguKjguLTguKPguLQg4Lih4Lix4LiY4Lii4Lih4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lio4Li04Lij4Li0IOC4p+C4h+C4qOC5jOC4ieC4tOC5iOC4h+C4ouC4t+C4meC4ouC4hw0KK+C4qOC4tOC4o+C4tCDguYDguKjguKfguJXguKPguLHguIHguJUNCivguKjguLTguKPguLQg4Lir4Lin4Liy4LiZ4Liq4LiZ4Li04LiXDQor4Lio4Li04Lij4Li04LiB4Lix4LiN4LiN4LiyIOC5geC4o+C4oeC4p+C4seC4peC4ouC5jA0KK+C4qOC4tOC4o+C4tOC4geC4uOC4pSDguIjguLTguJnguJXguJnguLLguIfguIHguLnguKMNCivguKjguLTguKPguLTguIHguLjguKUg4Lij4Lix4LiB4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4LioDQor4Lio4Li04Lij4Li04LiC4Lin4Lix4LiNIOC5geC4i+C5iOC5gOC4ruC4sg0KK+C4qOC4tOC4o+C4tOC4ieC4suC4oiDguJ7guIfguKjguYzguKrguLjguJvguKPguLDguJTguLTguKnguJDguYwNCivguKjguLTguKPguLTguIrguLHguKIg4LiE4Li54Lit4LiZ4Lix4LiZ4LiV4LmM4LiB4Li44LilDQor4Lio4Li04Lij4Li04LiK4Lix4LiiIOC5geC4i+C5iOC5gOC4iOC4teC4ouC4hw0KK+C4qOC4tOC4o+C4tOC4iuC4seC4oiDguJnguKDguLLguJrguKPguLTguKPguLHguIHguKnguYwNCivguKjguLTguKPguLTguIrguLHguKIg4Lie4Li04LiZ4Li04LiI4Lin4Lij4LiB4Li44LilDQor4Lio4Li04Lij4Li04LiK4Lix4LiiIOC4peC4tOC5ieC4oeC5gOC4peC4tOC4qOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4iuC4seC4oiDguKjguLjguKDguKPguLHguIrguJXguIHguLLguKMNCivguKjguLTguKPguLTguIrguLHguKIg4Lir4LiH4Lip4LmM4Lin4Li04LiX4Lii4Liy4LiB4LijDQor4Lio4Li04Lij4Li04LiT4Lix4LiQIOC5g+C4iOC4reC4suC4o+C4tQ0KK+C4qOC4tOC4o+C4tOC4l+C4tOC4nuC4ouC5jCDguJ7guKPguKvguKHguKrguIHguLjguKXguIrguLHguKINCivguKjguLTguKPguLTguJnguJfguKMg4LiI4LiH4LmA4Liq4LiW4Li14Lii4LijDQor4Lio4Li04Lij4Li04LiZ4LiX4Lij4LmMIOC4meC4tOC4oeC4oeC4suC4meC5gOC4q+C4oeC4tOC4meC4l+C4o+C5jA0KK+C4qOC4tOC4o+C4tOC4meC4mOC4oyDguJfguK3guIfguKrguLjguIINCivguKjguLTguKPguLTguJnguLHguJnguJfguYwg4LmB4LiL4LmI4Lit4Li24LmI4LiHDQor4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LmMIOC5gOC4reC4quC4uOC4iOC4tOC4meC4leC5jA0KK+C4qOC4tOC4o+C4tOC4meC4suC4o+C4liDguJXguLTguKnguKLguLLguIfguIHguLnguKMNCivguKjguLTguKPguLTguJrguLnguKPguJPguYwg4LmA4Lil4LmH4LiB4Lic4Lil4Li04Lic4LilDQor4Lio4Li04Lij4Li04Lie4LiH4Lio4LmMIOC4reC4tOC4meC4l+C4o+C5jOC4muC4s+C4o+C4uOC4hw0KK+C4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jCDguJfguLHguJrguJfguLTguKENCivguKjguLTguKPguLTguJ7guIfguKnguYwg4Lin4LiH4Lio4LmM4Lie4Li04Lih4Lie4LmMDQor4Lio4Li04Lij4Li04Lie4LiH4Lip4LmMIOC4reC4uOC4l+C4seC4ouC4mOC4meC4suC4o+C4seC4geC4qeC5jA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguIHguLLguKjguKrguLjguKfguKPguKPguJMNCivguKjguLTguKPguLTguJ7guKMg4LiC4Li44LiZ4LmC4Lit4Lip4LiQDQor4Lio4Li04Lij4Li04Lie4LijIOC4iOC4seC4meC4geC4peC4seC4lA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYDguIjguKPguLTguI3guIHguLTguIjguJ7guLTguKHguKUNCivguKjguLTguKPguLTguJ7guKMg4LiK4Liy4LiV4Li04Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lio4Li04Lij4Li04Lie4LijIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguJTguLPguKPguIfguKfguIfguKjguYzguKjguLTguKPguLQNCivguKjguLTguKPguLTguJ7guKMg4LmA4LiV4LmH4Lih4Liq4Li44LiZ4LiX4LijDQor4Lio4Li04Lij4Li04Lie4LijIOC5gOC4l+C4teC4ouC4meC4mOC4o+C4o+C4oeC4iuC4suC4leC4tA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguJnguLTguKXguJ7guKPguLLguKcNCivguKjguLTguKPguLTguJ7guKMg4Lib4Lij4Liw4Lii4Li44LiB4LiV4LmM4Lin4LiH4Lio4LmMDQor4Lio4Li04Lij4Li04Lie4LijIOC4nuC4h+C4qeC5jOC4iuC4seC4ouC4m+C4o+C4sOC4l+C4teC4mw0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguJ7guLLguJnguLTguIrguKXguYnguK3guYDguIjguKPguLTguI0NCivguKjguLTguKPguLTguJ7guKMg4Lig4Li54Lih4Li04Lit4Lih4LijDQor4Lio4Li04Lij4Li04Lie4LijIOC4ouC4seC4meC4leC5jOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYDguKPguLfguK3guIfguJjguKfguLHguIrguKjguLTguKXguJsNCivguKjguLTguKPguLTguJ7guKMg4LmA4Lil4Li04Lio4LiY4LiZ4Liy4Lic4LilDQor4Lio4Li04Lij4Li04Lie4LijIOC4p+C4seC4peC4peC4oOC4qOC4tOC4o+C4tA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguKjguKPguLXguKrguLTguIfguKvguYzguIrguLHguKINCivguKjguLTguKPguLTguJ7guKMg4Liq4Lil4Lix4LiaDQor4Lio4Li04Lij4Li04Lie4LijIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jeC4meC4uOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYHguKrguIfguYDguJ7guYfguIrguKPguYwNCivguKjguLTguKPguLTguJ7guKMg4LmD4Lir4LmJ4Lit4Li44LiU4Lih4LiB4Liy4LiN4LiI4LiZ4Lil4Liy4LigDQor4Lio4Li04Lij4Li04Lie4LijIOC4reC4suC4o+C4oeC4ouC5jOC4quC4uOC4gg0KK+C4qOC4tOC4o+C4tOC4nuC4o+C4o+C4kyDguIHguKXguLTguYjguJnguKrguKfguLHguKrguJTguLTguYwNCivguKjguLTguKPguLTguJ7guKPguKPguJMg4LiY4Lij4Lij4Lih4LiE4Li44Lis4Lir4LmMDQor4Lio4Li04Lij4Li04Lie4Lij4Lij4LiTIOC4quC4uOC4guC4q+C4tOC4o+C4seC4jeC4geC4tOC4iA0KK+C4qOC4tOC4o+C4tOC4nuC4seC4kuC4meC4siDguKfguLTguYDguKjguKnguYHguJ7guJfguKLguLINCivguKjguLTguKPguLTguJ7guLHguJnguJjguYwg4Lil4Lix4LiB4LiC4LiT4Liy4LiZ4Li44LiB4Li44LilDQor4Lio4Li04Lij4Li04Lig4Lij4LiT4LmMIOC5gOC4q+C4peC4teC5iOC4ouC4oeC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC4sg0KK+C4qOC4tOC4o+C4tOC4oeC4siDguITguLjguYnguKHguYLguJUNCivguKjguLTguKPguLTguKHguLIg4LmA4Lif4Li34LmI4Lit4LiH4LiC4LiI4LijDQor4Lio4Li04Lij4Li04Lih4LiyIOC4reC4tOC4meC4mOC4s+C4o+C4h+C4hOC5jA0KK+C4qOC4tOC4o+C4tOC4o+C4seC4geC4qeC5jCDguJrguLjguI3guIrguYjguKfguKLguYDguKHguJXguJXguLINCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4LmA4LiC4LmH4Lih4LiZ4Liy4LiEDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5geC4i+C5iOC4geC4tOC4oQ0KK+C4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguYDguJfguJ7guJnguLTguKHguLTguJXguKMNCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4Lie4Lij4Lie4LiH4Lio4LmM4Lit4LiY4Li04LiE4LihDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC4o+C4seC4geC4mOC4o+C4o+C4oQ0KK+C4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguKjguKPguLXguJnguLLguITguITguLMNCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5gOC4reC4teC5iOC4ouC4oeC5gOC4p+C4ig0KK+C4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguIjguJXguLjguYDguKrguJkNCivguKjguLTguKPguLTguKXguLHguIHguKnguJPguYwg4LiV4Lix4LmJ4LiH4LmA4LiJ4Lil4Li04Lih4LiB4Li44LilDQor4Lio4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4m+C4seC5ieC4meC4muC4s+C4o+C4uOC4h+C4geC4tOC4iA0KK+C4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguKPguLjguIjguLTguYLguIHguYTguKjguKINCivguKjguLTguKPguLTguKXguLHguIHguKnguJPguYwg4Liq4Liy4LiE4Lij4Lij4Lix4LiV4LiZ4LiB4Li44LilDQor4Lio4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC5gOC4reC4geC4p+C4h+C4hOC5jA0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguYDguIHguLTguJTguKfguLHguJLguJnguLINCivguKjguLTguKPguLTguKfguKPguKPguJMg4LiI4Liy4Lij4Li44LiI4Lij4LiTDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4iuC4uOC4leC4tOC4iOC4suC4leC4uOC4o+C4meC4leC5jA0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguJTguLLguKfguK3guLjguJTguKENCivguKjguLTguKPguLTguKfguKPguKPguJMg4LiX4Lit4LiH4Lie4Li54LilDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4muC4seC4p+C4qOC4o+C4tQ0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguJ7guKPguLDguYDguJfguJ4NCivguKjguLTguKPguLTguKfguKPguKPguJMg4Lih4Lir4Liy4Lio4Lix4LiB4LiU4Li04LmM4Lio4Li04Lij4Li0DQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC5gOC4peC4tOC4qOC4quC4tOC4meC4reC4uOC4lOC4oQ0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguKjguKPguLXguJrguLHguKfguYDguJzguLfguYjguK3guJkNCivguKjguLTguKPguLTguKfguKPguKPguJMg4Liq4Lix4LiZ4LiV4Li04LmA4Lin4LiK4LiK4LiB4Li44LilDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC5geC4quC4h+C4quC4uOC4o+C4teC4ouC5jA0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguK3guLTguJnguJfguJjguLTguYzguKrguLHguJPguKvguYwNCivguKjguLTguKPguLTguKfguLHguJLguJnguYwg4LmB4LiL4LmI4LmC4Lil4LmJ4LinDQor4Lio4Li04Lij4Li04Lin4Lix4Lil4Lig4LmMIOC4lOC4suC4o+C4suC4geC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lio4Li04Lij4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4qOC4seC4geC4lOC4tOC5jCDguYLguKPguIjguJnguYzguKTguJfguJjguLLguIHguKMNCivguKjguLTguKPguLTguKrguLjguIIg4LmA4Lij4Li14LmI4Lii4Lin4LmA4Lij4Li34Lit4LiH4Liq4Li44LiCDQor4Lio4Li04Lij4Li04Lit4LijIOC5gOC4reC4teC4ouC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4qOC4tOC4o+C4tOC5gOC4nuC5h+C4jSDguYLguIHguYDguKHguJnguYDguK3guIENCivguKjguLTguKPguLTguYDguJ7guYfguI0g4Lia4Li44LiN4LiB4Lix4LiH4Lin4Liy4LiZDQor4Lio4Li04Lij4Li04LmA4Lie4LmH4LiNIOC4quC4tOC4meC4mOC4uOC4mOC4suC4mQ0KK+C4qOC4tOC4o+C4tOC5guC4o+C4iOC4meC5jCDguKrguYLguKXguKDguLLguJ4NCivguKjguLTguKXguJvguIrguLHguKIg4LmE4LiX4Lii4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lio4Li04Lil4Lib4LmM4LiK4Lix4LiiIOC5gOC4iOC4o+C4tOC4jeC5g+C4iA0KK+C4qOC4tOC4peC4m+C4p+C4seC4mOC4meC5jCDguIrguLHguKLguJ7guLHguJLguJnguLLguKfguKPguKPguJMNCivguKjguLTguKXguLIg4Lij4Liy4LiK4Lit4Lig4Lix4LiiDQor4Lio4Li04Lin4Lie4LijIOC5gOC4geC4peC4teC4ouC4p+C4reC4o+C4o+C4hOC5gOC4lOC4ig0KK+C4qOC4tOC4p+C4nuC4oyDguKLguLTguJnguJTguLUNCivguKjguLTguKfguKXguLUg4LiI4Lix4LiZ4LiX4Lih4Liy4LioDQor4Lio4Li04Lin4Liw4Lie4LilIOC4h+C4suC4oeC4mOC4meC4p+C5guC4o+C4l+C4seC4og0KK+C4qOC4tOC4p+C4suC4nuC4oyDguYHguKLguIfguITguLMNCivguKjguLTguKfguLTguIHguLLguJnguJXguLTguYwg4LmE4Lin4LiI4Lij4Lij4Lii4LiyDQor4Lio4Li04Lip4LiO4LmMIOC4ieC4seC4meC4l+C4suC4o+C4tOC4ouC4sA0KK+C4qOC4teC4peC4p+C4seC4lSDguK3guJnguLDguJjguKPguKPguKHguKrguKHguJrguLHguJXguLQNCivguKjguLjguILguJjguLLguJ7guLHguJLguJnguYwg4LiB4Lix4LiT4LiR4LmM4LiK4Li54Liq4Li04LiZDQor4Lio4Li44Lie4Li04Lij4Lix4LiV4LiZ4LmMIOC4quC4s+C4o+C4suC4jeC4quC4uOC4guC4o+C4seC4leC4meC5jA0KK+C4qOC4uOC4oOC4geC4suC4jeC4iOC4meC5jCDguYHguKrguKfguIfguKjguLHguIHguJTguLTguYwNCivguKjguLjguKDguIHguLTguIgg4Lie4Lix4LiZ4LiY4LmM4Lia4Li44LiN4LmA4LiB4Li04LiUDQor4Lio4Li44Lig4LiB4Li04LiIIOC4reC4tOC4h+C4reC4meC4uOC4o+C4seC4geC4qeC5jOC4quC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4iuC4seC4oiDguYHguIHguYnguKfguKHguLXguIrguLHguKINCivguKjguLjguKDguIrguLHguKIg4LiI4Li04LiV4Lin4Li04Liq4Li44LiX4LiY4Li04LmM4Lie4LiH4Lio4LmMDQor4Lio4Li44Lig4LiK4Lix4LiiIOC5geC4i+C5iOC4iOC4tuC4hw0KK+C4qOC4uOC4oOC4iuC4seC4oiDguJXguLjguKXguKfguKPguKPguJjguJnguLANCivguKjguLjguKDguIrguLHguKIg4LiZ4Li04LmI4Lih4LiZ4Lin4LilDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4nuC4h+C4qOC5jOC4iuC4seC4ouC4quC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4iuC4seC4oiDguKHguLHguYjguIfguYDguIHguLXguKLguKPguJXguLTguKrguIHguLjguKUNCivguKjguLjguKDguIrguLHguKIg4Lik4LiX4LiY4Li04LmM4Lil4Liy4Lii4LiyDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4p+C4tOC4p+C4seC4kuC4meC4oeC4h+C4hOC4peC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4iuC4seC4oiDguKrguJnguK3guIfguITguLjguJMNCivguKjguLjguKDguIrguLHguKIg4LmB4Liq4LiH4Lif4LmJ4Liy4Liq4LiB4Li44Lil4LmE4LiXDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4reC4tuC5ieC4h+C4quC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4k+C4seC4kCDguJ7guKPguKvguKHguJ7guLTguKPguLTguKLguLLguKDguKPguJPguYwNCivguKjguLjguKDguJnguLTguJXguKLguYwg4LmC4LiK4LiE4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4Lio4Li44Lig4Lie4LijIOC4oeC4seC4h+C4geC4o+C4geC4suC4jeC4iOC4meC5jA0KK+C4qOC4uOC4oOC4oeC4suC4qiDguJTguYjguLLguJnguJ7guLLguJnguLTguIoNCivguKjguLjguKDguKHguLTguJXguKMg4Liq4Li44LiC4Lio4Lij4Li1DQor4Lio4Li44Lig4Lij4LiH4LiE4LmMIOC4peC4sOC5guC4p+C5ieC4iuC4seC4og0KK+C4qOC4uOC4oOC4o+C4seC4leC4meC5jCDguKLguLTguYjguIfguIHguKfguLXguKHguLLguJnguJ4NCivguKjguLjguKDguKPguLLguKDguKPguJPguYwg4Lie4Li44LiX4LiY4Lij4Lix4LiV4LiZ4LmMDQor4Lio4Li44Lig4Lik4LiB4Lip4LmMIOC4q+C4peC5iOC4reC4nuC4tOC4o+C4tOC4ouC4sOC4p+C4h+C4qOC5jA0KK+C4qOC4uOC4oOC4peC4seC4geC4qeC4k+C5jCDguYHguIvguYjguYHguJXguYkNCivguKjguLjguKDguKXguLHguIHguKnguJPguYwg4LmA4Lil4Li04Lio4Lij4Lix4LiV4LiZ4LmM4LmA4LiU4LiK4Liy4LiB4Li44LilDQor4Lio4Li44Lig4Lil4Lix4LiE4LiT4LmMIOC4oeC4teC4oeC4suC4gQ0KK+C4qOC4uOC4oOC4p+C4o+C4o+C4kyDguYDguJnguJXguLTguJjguLLguJTguLINCivguKjguLjguKDguKfguKPguKPguJMg4Liq4Li44Lin4Lij4Lij4LiT4LmA4Lil4Li04LioDQor4Lio4Li44Lig4Lin4Lix4LiS4LiZ4LmMIOC4quC4p+C4seC4quC4lOC4tOC5jOC4p+C4h+C4qOC5jA0KK+C4qOC4uOC4oOC4p+C4tOC4qCDguKrguLTguKPguLTguYDguIHguKnguKHguKrguLjguIINCivguKjguLjguKDguKnguKMg4Lie4Lij4LiI4Li04LiV4LmC4LiB4Lin4Li04LiXDQor4Lio4Li44Lig4Lit4Lij4Lij4LiWIOC4meC4seC4iOC4iOC4sOC4meC4seC4meC4l+C4meC5jA0KK+C4qOC4uOC4oOC4suC4quC4tOC4meC4tSDguIHguLHguIfguKfguLLguKXguYDguJnguLLguKfguKPguLHguJXguJnguYwNCivguKjguLjguKDguYLguIrguIQg4LiY4LiZ4Lib4Lix4LiN4LiI4Liy4Lig4Lij4LiT4LmMDQor4Lio4Li44Lij4Lie4LiH4Lip4LmMIOC4hOC4iuC4suC4iuC4teC4p+C4sA0KK+C4qOC4uOC4peC4teC4nuC4oyDguKrguLHguJnguJnguLDguIHguLTguIgNCivguYDguKjguIHguKrguKPguKMg4LiX4Lit4LiH4Lio4Lij4Li14LiE4LizDQor4LmA4Lio4Lij4Lip4LiQ4LiK4Lix4LiiIOC4qOC4seC4geC4lOC4tOC5jOC5guC4huC4qeC4tOC4lQ0KK+C5gOC4qOC4o+C4qeC4kOC4siDguIjguIfguJ7guKPguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguKjguKfguJUg4Lio4Lij4Li14Lib4Lix4LiN4LiN4LiyDQor4LmC4Lio4Lig4Li04LiU4LiyIOC5gOC4leC4iuC4sOC4qOC4o+C4tOC4meC4l+C4o+C5jA0KK+C5guC4qOC4o+C4ouC4siDguKjguLjguKDguIHguKPguYHguKrguIfguJfguK3guIcNCivguKrguIHguJkg4Lih4Li14LiB4Lix4LiH4Lin4Liy4LilDQor4Liq4LiB4LiZ4LiY4LmMIOC4reC4o+C4tOC4ouC4oeC4h+C4hOC4peC4quC4geC4uOC4pQ0KK+C4quC4geC4pSDguIrguLnguYDguIHguKkNCivguKrguIHguKUg4LmA4Lib4Li14LmI4Lii4Lih4Lin4Li04Lih4LilDQor4Liq4LiB4LilIOC4peC4teC4peC4suC4guC4iOC4o+C4iOC4tOC4lQ0KK+C4quC4geC4pSDguKrguLjguKPguITguLjguJvguJXguYwNCivguKrguIHguKXguKfguKPguKPguJMg4Lin4Liy4Liq4Li04LiZ4LiZ4LiX4LmMDQor4Liq4LiB4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC4reC4seC4hOC4hOC4teC5gOC4lOC4ig0KK+C4quC4geC4uOC4k+C4siDguKPguLjguIjguLTguYDguIHguLXguKLguKPguJXguLTguIHguLPguIjguKMNCivguKrguIHguLjguKUg4LiZ4LiE4Lij4LiK4Lix4LiiDQor4Liq4LiB4Li44LilIOC5gOC4q+C4peC4t+C4reC4h+C4reC4o+C5iOC4suC4oQ0KK+C4quC4geC4uOC4peC4o+C4seC4leC4meC5jCDguKXguLHguJfguJjguYzguKrguLHguKHguKTguJfguJjguLTguYwNCivguKrguIfguIHguKPguLLguJnguJXguYwg4LiI4Li44LiT4LiT4LiX4Lix4Lio4LiZ4LmMDQor4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMIOC4qOC4tOC4o+C4tOC4nuC4suC4meC4tOC4ig0KK+C4quC4h+C4hOC4o+C4suC4oSDguInguLTguKHguJ7guKrguLjguJfguJgNCivguKrguIfguITguKPguLLguKEg4Lio4Lij4Li14Liq4Li44LiCDQor4Liq4LiH4LiaIOC4h+C4suC4oeC4nOC5iOC4reC4hw0KK+C4quC4h+C4miDguJnguLHguJnguJfguILguKfguYnguLLguIcNCivguKrguIfguJog4LmA4Lii4LmH4LiZ4Lik4LiU4Li1DQor4Liq4LiH4LiaIOC4reC5ieC4meC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4quC4h+C4p+C4mSDguYHguIHguKXguYnguKfguIHguKXguYnguLINCivguKrguIfguKfguJkg4LiI4Lix4LiZ4LiX4Lij4Lit4Lix4LiB4Lip4LijDQor4Liq4LiH4Lin4LiZIOC4iuC4ueC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4h+C4p+C4mSDguJXguLHguJnguKrguLjguILguLLguJnguLHguJnguJfguYwNCivguKrguIfguKfguJkg4LiZ4Li44LiK4Lij4Li14Lin4Lij4Lij4LiTDQor4Liq4LiH4Lin4LiZIOC4nuC4h+C4qeC5jOC4q+C4h+C4qeC5jA0KK+C4quC4h+C4p+C4mSDguKDguLLguKPguLDguYLguIINCivguKrguIfguKfguJkg4Lij4Li44LiT4Lig4Lix4LiiDQor4Liq4LiH4Lin4LiZIOC4p+C4tOC4oeC4peC4quC4uOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C4quC4h+C4p+C4mSDguKrguIfguKfguJnguYDguJXguIrguLDguJXguKPguLDguIHguLnguKUNCivguKrguIfguKfguJkg4Liq4Li44Lin4Li04LiX4Lii4Liy4Lig4Lij4LiT4LmMDQor4Liq4LiH4Lin4LiZIOC4reC4seC4h+C4geC4uOC4p+C4o+C4geC4uOC4pQ0KK+C4quC4h+C4p+C4meC4o+C4seC4geC4qeC5jCDguYTguJXguKPguJnguLLguIjguLINCivguKrguIfguKfguJnguKjguKPguLUg4Lig4Li54LmI4LiH4Liy4LihDQor4Liq4LiH4Lin4LiZ4Lio4Lix4LiB4LiU4Li04LmMIOC4peC4tOC4guC4meC4suC4meC4meC4l+C4p+C4h+C4qOC5jA0KK+C4quC4h+C4seC4lCDguIjguLHguJnguJfguKPguYzguYHguJXguYkNCivguKrguIfguLHguJQg4Lib4Lij4Li04LiB4LmA4Lie4LiK4Lij4LmMDQor4Liq4LiH4Lix4LiUIOC4p+C4seC4meC4k+C4uOC4m+C4luC4seC4oeC4oOC5jA0KK+C4quC4h+C4seC4lCDguYDguK3guLXguYjguKLguKHguKrguLPguK3guLLguIfguITguYwNCivguKrguIfguYjguLIg4LiE4LiH4Liq4Liz4Lij4Liy4LiNDQor4Liq4LiH4LmI4LiyIOC4ieC4p+C4teC4m+C4peC4seC5iOC4hw0KK+C4quC4h+C5iOC4siDguYHguJTguIfguJTguLXguYDguKXguLTguKgNCivguKrguIfguYjguLIg4LiY4Lij4Lij4Lih4Lii4Li04LmI4LiH4Lii4LiHDQor4Liq4LiH4LmI4LiyIOC4m+C4suC4meC4sOC4meC4tOC4pQ0KK+C4quC4h+C5iOC4siDguKDguLLguKnguLTguJUNCivguKrguIfguYjguLIg4Lij4Li34LmI4LiZ4LmE4LiX4LiiDQor4Liq4LiH4LmI4LiyIOC4p+C4uOC4kuC4tOC4oeC4h+C4hOC4peC4iuC4seC4og0KK+C4quC4h+C5iOC4siDguKrguLLguKvguKPguYjguLLguKINCivguKrguIfguYjguLIg4Lir4Lit4Lih4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4LiH4Li44LmI4LiZIOC4i+C4t+C5iOC4reC4oeC4suC4gQ0KK+C4quC5iOC4h+C4qOC4o+C4tSDguYHguIHguYnguKfguIjguLHguJnguJfguKPguYwNCivguKrguYjguIfguKjguLHguIHguJTguLTguYwg4LiB4Lij4LiT4Lib4LiB4Lij4LiT4LmMDQor4Liq4LiI4LmK4Lin4LiVIOC4iuC4suC4o+C5jOC4pQ0KK+C4quC4lCDguJ7guLjguYjguKHguJnguLTguITguKENCivguKrguJTguKjguKPguLUg4Lie4Li44LmI4Lih4LmA4LiI4Lij4Li04LiNDQor4Liq4LiU4Liy4Lin4Lij4Lij4LiTIOC4muC4uOC4jeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4lOC5g+C4qiDguKLguLjguJfguJjguJnguLLguKrguLTguKPguLTguIHguLjguKUNCivguKrguJXguLXguYDguJ/guJkg4Liu4Liy4LinDQor4Liq4LiW4Liy4Lie4LijIOC4hOC4seC4oeC4oOC4tOC4o+C4suC4meC4meC4l+C5jA0KK+C4quC4luC4suC4nuC4oyDguIrguLnguKfguIfguKjguYzguYDguJXguLTguKENCivguKrguJbguLLguJ7guKMg4LiZ4Li14Lij4LiZ4Liy4LiW4Lin4LiH4Lio4LmMDQor4Liq4LiW4Liy4Lie4LijIOC4nuC4tuC5iOC4h+C4nuC4o+C4sOC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4quC4luC4suC4nuC4oyDguYDguKXguYnguLLguJvguKPguLDguYDguKrguKPguLTguJDguKjguKPguLUNCivguKrguJbguLLguJ7guKMg4Liq4Li04LiZ4LiY4Li44LiZ4Liy4Lin4LiyDQor4Liq4LiW4Liy4Lie4LijIOC4reC4uOC4geC4geC4uOC4j+C4suC4meC4meC4l+C5jA0KK+C4quC4luC4tOC4leC4nuC4h+C4qOC5jCDguKHguJnguLLguJvguKPguLLguJPguLUNCivguKrguJbguLTguJXguKLguYwg4LmD4LiI4Liq4Li44LiX4LiY4Li04LmMDQor4Liq4LiW4Li04LiV4Lii4LmMIOC4meC4suC4p+C4uOC4kuC4tA0KK+C4quC4luC4tOC4leC4ouC5jCDguYTguKHguYnguIfguLTguYnguKcNCivguKrguJbguLTguJXguKLguYwg4Liq4Li04LiH4Lir4LmM4LmC4LiVDQor4Liq4LiW4Li04Lij4Lie4Lix4LiZ4LiY4Li44LmMIOC5gOC4geC4ouC4suC4meC4meC4l+C5jA0KK+C4quC4meC4iuC4seC4oiDguJ7guLTguKPguLjguJPguKrguLLguKMNCivguKrguJnguJfguLTguKgg4Liq4LiB4Li44Lil4LiB4LiZ4LiBDQor4Liq4LiZ4LiY4Lii4LiyIOC5gOC4lOC5iOC4meC4p+C4o+C4geC4uOC4pQ0KK+C4quC4meC4mOC4ouC4siDguYLguJ7guJjguLTguYzguJnguYnguK3guKINCivguKrguJnguJjguKLguLIg4LmA4Liq4Li14Lii4LiH4Lin4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4LiZ4LiY4Li0IOC5gOC4peC4t+C5iOC4reC4meC4ieC4p+C4tQ0KK+C4quC4meC4mOC4tOC4ouC4siDguYDguIHguLXguKLguKPguJXguLTguKfguKPguLLguIfguIHguLnguKMNCivguKrguJnguKEg4LmC4LiV4Lij4Lix4LiB4Lip4Liy4Liq4LiB4Li44LilDQor4Liq4LiZ4Lin4LiZIOC4ieC4tOC4oeC4meC4suC4hOC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4meC4reC4hyDguIjguLHguJnguJfguKPguKjguLHguJ7guJfguYwNCivguKrguJnguK3guIcg4LiV4Lix4Lih4Lie4Lix4LiZ4LiY4Li44Liq4LiB4Li44LilDQor4Liq4LiZ4Lit4LiHIOC4muC4uOC4jeC4oeC4teC4pOC4l+C4mOC4tOC5jA0KK+C4quC4meC4reC4hyDguYLguJ7guJjguLQNCivguKrguJnguK3guIcg4Lil4Li14LiZ4Liw4Lin4Lix4LiVDQor4Liq4LiZ4Lit4LiHIOC4quC4tOC4meC5gOC4muC4jeC4iOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4meC4reC4hyDguK3guLjguYjguJnguJfguKPguLHguJ7guKLguYwNCivguKrguJnguLHguYjguJkg4LiB4Lik4Lip4LiU4Liy4LiY4Li04LiB4Liy4LijDQor4Liq4LiZ4Lix4LmI4LiZIOC5guC4hOC4geC4guC4sw0KK+C4quC4meC4seC5iOC4mSDguIrguLfguYjguJnguYDguJzguLfguK3guIENCivguKrguJnguLHguYjguJkg4LiX4Lit4LiH4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4LiZ4Lix4LmI4LiZIOC4muC4uOC4jeC4oeC4suC4gQ0KK+C4quC4meC4seC5iOC4mSDguJ7guLTguIHguLjguKXguYHguKLguYnguKENCivguKrguJnguLHguYjguJkg4Lij4Lix4LiB4Liq4Lih4Lii4LiyDQor4Liq4LiZ4Lix4LmI4LiZIOC4qOC4o+C4teC4peC4sOC4oeC5ieC4suC4og0KK+C4quC4meC4seC5iOC4mSDguKrguLjguILguIrguYjguKfguKINCivguKrguJnguLHguYjguJkg4Lit4Lia4LmA4LiK4LiiDQor4Liq4LiZ4Liy4LiZIOC4iOC4seC4meC4l+C4o+C5gOC4peC4tOC4qA0KK+C4quC4meC4suC4oSDguJ7guKXguK3guKLguKjguLTguKPguLQNCivguKrguJnguLTguJcg4LmB4LiB4LmJ4Lin4Lie4LilDQor4Liq4LiZ4Li04LiXIOC4iOC4seC5iOC4meC4m+C4o+C4sOC4lOC4seC4mg0KK+C4quC4meC4tOC4lyDguJTguLjguKnguI/guLXguYLguKvguJnguJQNCivguKrguJnguLTguJcg4LmB4LiX4LmI4LiH4LiX4Lit4LiHDQor4Liq4LiZ4Li04LiXIOC4muC4uOC4jeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4meC4tOC4lyDguJ7guYjguKfguIfguJ7guIfguKnguYwNCivguKrguJnguLTguJcg4Lih4Liy4Lib4Lij4Liw4LiI4Lin4LiaDQor4Liq4LiZ4Li04LiXIOC4peC4ueC4geC4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4meC4tOC4lyDguKrguJXguKHguKvguLLguIrguKXguLLguKrguLTguJnguJjguLjguYwNCivguKrguJnguLTguJcg4LmB4Liq4LiH4LiX4Lit4LiHDQor4Liq4LiZ4Li04LiXIOC4reC4uOC4lOC4oeC4mOC4teC4o+C4geC4uOC4pQ0KK+C4quC4meC4uOC5iOC4mSDguYDguIrguLfguYnguK3guJnguLjguYjguJkNCivguKrguJvguLHguJkg4Lie4Lix4LiK4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lig4Liy4Lit4LiH4LiE4LmM4LiB4Liy4Lij4Lil4Li54LiB4LiI4LmJ4Liy4LiH4LmB4Lij4LiH4LiH4Liy4LiZ4LmB4Lir4LmI4LiH4Lib4LijIOC4quC4oOC4suC4reC4h+C4hOC5jOC4geC4suC4o+C4peC4ueC4geC4iOC5ieC4suC4h+C5geC4o+C4h+C4h+C4suC4meC5geC4q+C5iOC4h+C4m+C4ow0KK+C4quC4oSDguJnguYnguK3guKLguJvguKPguLXguIrguLINCivguKrguKEg4Lin4Lij4Lij4LiT4Lib4Lij4Liw4Lig4LiyDQor4Liq4Lih4LiB4Lih4LilIOC4oeC4sOC5guC4meC4geC4tOC4iA0KK+C4quC4oeC4hOC4pSDguYDguIrguLfguYnguK3guYDguKHguLfguK3guIfguJfguLLguJkNCivguKrguKHguITguKfguKMg4LiI4Lix4LiZ4LiX4Lij4LmM4LiZ4Li44LmJ4LiiDQor4Liq4Lih4LiE4Lin4LijIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4quC4oeC4hOC4p+C4oyDguJnguLHguKLguKjguLTguKPguLQNCivguKrguKHguITguKfguKMg4Lie4Lix4LiS4LiZ4Lie4LiH4Lip4LmM4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Lih4LiE4Lin4LijIOC4o+C4seC4geC4geC4peC4seC4lA0KK+C4quC4oeC4hOC4p+C4oyDguKjguKPguLXguK3guLTguJnguJfguKPguYwNCivguKrguKHguITguKfguKMg4LmE4Liq4Lii4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4Lih4LiE4Li04LiEIOC4p+C4seC4kuC4meC5gOC4quC4o+C4teC4p+C4h+C4qOC5jA0KK+C4quC4oeC4hOC4tOC4lCDguYHguIHguYnguKfguIrguLTguIfguJTguKfguIcNCivguKrguKHguITguLTguJQg4LiI4Lit4LiZ4Liq4Lih4LiI4Li04LiV4LiV4LmMDQor4Liq4Lih4LiE4Li04LiUIOC5g+C4iOC4reC4tOC5iOC4oQ0KK+C4quC4oeC4hOC4tOC4lCDguYHguIvguYjguIjguLTguKcNCivguKrguKHguITguLTguJQg4LiV4Lix4LmJ4LiH4Lio4Li04Lij4Li04LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4LiE4Li04LiUIOC4l+C4sOC4o+C4seC4h+C4qOC4o+C4tQ0KK+C4quC4oeC4hOC4tOC4lCDguJnguLTguITguKHguYDguILguJXguJXguYwNCivguKrguKHguITguLTguJQg4LmD4Lia4Lih4LiH4LiE4LilDQor4Liq4Lih4LiE4Li04LiUIOC4nuC4o+C5ieC4reC4oeC4oeC4ueC4pQ0KK+C4quC4oeC4hOC4tOC4lCDguYDguJ7guYfguIfguJ7guLLguJQNCivguKrguKHguITguLTguJQg4Lih4Li54Lil4LiX4Lit4LiH4LiK4Li44LiZDQor4Liq4Lih4LiE4Li04LiUIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4qOC4o+C4tQ0KK+C4quC4oeC4hOC4tOC4lCDguKfguLHguJnguKfguLDguJnguLINCivguKrguKHguITguLTguJQg4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4Lin4Li44LiS4Li0DQor4Liq4Lih4LiE4Li04LiUIOC4quC4tOC4h+C4q+C5jOC4quC4s+C4o+C4suC4jQ0KK+C4quC4oeC4hOC4tOC4lCDguYHguKrguIfguJnguJnguJfguYzguJXguKPguLDguIHguLnguKUNCivguKrguKHguITguLTguJQg4Lit4LmJ4LiZ4LmA4Lib4Lij4LihDQor4Liq4Lih4LiE4Li04LiUIOC4reC4uOC4meC4l+C4o+C4tOC4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4oeC4iOC4seC4meC4l+C4o+C5jCDguYDguKvguKPguLXguKLguI3guJvguLHguI3guI3guLLguIHguLjguKUNCivguKrguKHguIjguLTguJUg4LiI4Lix4LiZ4LiX4Li44Lih4Liy4LiB4LijDQor4Liq4Lih4LiI4Li04LiVIOC4leC4seC4k+C4keC4quC4uOC4l+C4mOC4tOC5jA0KK+C4quC4oeC4iOC4tOC4lSDguJrguLjguI3guJfguKfguLUNCivguKrguKHguIjguLTguJUg4LmA4Lie4LmH4LiH4Liq4Lin4LiZDQor4Liq4Lih4LiI4Li04LiVIOC4p+C4o+C4o+C4k+C4o+C4seC4geC4qeC5jA0KK+C4quC4oeC4iOC4tOC4lSDguKrguLjguJfguJjguLTguKHguLLguKXguKLguYwNCivguKrguKHguIjguLTguJXguJXguYwg4LiB4LiZ4LiB4LiK4Lix4Lii4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC5geC4geC5ieC4p+C5gOC4geC4t+C5ieC4reC4geC4ueC4pQ0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguIjguLTguJXguJXguYzguKrguLjguJfguLHguKjguJnguYwNCivguKrguKHguIjguLTguJXguJXguYwg4LiK4Li04LiZ4Lij4Liy4LiKDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC5geC4i+C5iOC5gOC4reC4teC5ieC4og0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguJbguLTguYjguJnguJbguJnguK3guKENCivguKrguKHguIjguLTguJXguJXguYwg4LiY4Lix4Lih4Lih4Lij4Lix4LiE4LiE4Li04LiVDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC5gOC4muC4meC4geC4uOC5guC4o+C5guC4oQ0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguJ7guKXguLLguKHguLTguJXguKMNCivguKrguKHguIjguLTguJXguJXguYwg4Lig4Li54Lih4Li04LiI4Li04LiV4Lit4Lih4LijDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4o+C4suC4oeC4qOC4ow0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguKfguIrguLTguKPguKfguJPguLTguIrguIHguLTguIgNCivguKrguKHguIjguLTguJXguJXguYwg4Lio4Liy4Liq4LiV4Lij4LmM4Liq4Li44LiCDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4quC4tOC4h+C4q+C4sg0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguKvguKHguLnguYjguJzguLbguYnguIcNCivguKrguKHguIjguLTguJXguJXguYwg4Lit4Li04LiH4LiE4Liw4Lin4Lix4LiVDQor4Liq4Lih4LiI4Li04LiV4LijIOC5gOC4geC4leC4uOC4leC4tOC4oeC4sA0KK+C4quC4oeC4iOC4tOC4leC4oyDguIjguKPguKPguKLguLINCivguKrguKHguIjguLTguJXguKMg4LmD4LiI4Lin4Lix4LiH4LmC4Lil4LiBDQor4Liq4Lih4LiI4Li04LiV4LijIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4quC4oeC4iOC4tOC4leC4oyDguJfguK3guIfguKrguLjguKDguKMNCivguKrguKHguIjguLTguJXguKMg4LmA4LiZ4Li14Lii4Lih4Lio4Li04Lij4Li0DQor4Liq4Lih4LiI4Li04LiV4LijIOC4m+C4tOC5iOC4meC4oeC4k+C4tQ0KK+C4quC4oeC4iOC4tOC4leC4oyDguJ7guLjguYjguKHguJvguKPguLDguJTguLHguJoNCivguKrguKHguIjguLTguJXguKMg4LmA4Lih4Li14LmI4Lii4LiH4Lia4Lix4LinDQor4Liq4Lih4LiI4Li04LiV4LijIOC5gOC4peC4tOC4qOC4luC4p+C4tOC4peC4iOC4tOC4ow0KK+C4quC4oeC4iOC4tOC4leC4oyDguKjguKPguLXguKrguLjguKfguJPguLTguIrguIHguLjguKUNCivguKrguKHguIjguLTguJXguKMg4Liq4Li04LiZ4LmA4Lie4LmH4LiHDQor4Liq4Lih4LiI4Li04LiV4LijIOC4q+C4oeC4seC4lOC5guC4meC5iuC4lQ0KK+C4quC4oeC4iOC4tOC4leC4o+C4siDguIjguLHguJnguYLguKDguITguLINCivguKrguKHguIjguLTguJXguKPguYwg4LiJ4Lix4LiV4Lij4LmM4LiX4Lit4LiHDQor4Liq4Lih4LiI4Li04LiV4Lij4LmMIOC4l+C4tOC4nuC4ouC5jOC4m+C4o+C4sOC4oOC4suC5geC4ouC5ieC4oQ0KK+C4quC4oeC4iOC4tOC4leC4o+C5jCDguJ7guLbguYjguIfguKLguJnguJXguYwNCivguKrguKHguIjguLTguJXguKPguYwg4Lin4Lix4LiS4LiZ4LmA4LiI4Lij4Li04LiN4Lie4LijDQor4Liq4Lih4LiI4Li04LiV4Lij4LmMIOC4q+C4p+C4seC4h+C4lOC4tOC4peC4gQ0KK+C4quC4oeC4iOC4tOC4meC4leC4meC4siDguKfguLHguIfguJfguK3guIcNCivguKrguKHguInguKfguLUg4LmA4Lir4Lih4Liw4Lin4Li04Lij4Li04Lii4Liy4Lie4Lij4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Lih4LiK4Lix4LiiIOC4geC4tOC4iOC5gOC4peC4tOC4qOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4quC4oeC4iuC4seC4oiDguITguKXguYjguK3guIfguJjguJnguIHguLTguIgNCivguKrguKHguIrguLHguKIg4LiI4Li04Lij4LiK4Lii4Liy4LiH4LiB4Li54LijDQor4Liq4Lih4LiK4Lix4LiiIOC4iuC4seC4ouC4iOC4o+C4ueC4jeC4nuC4ow0KK+C4quC4oeC4iuC4seC4oiDguYTguIrguKLguKjguKPguLXguJjguKPguKPguKHguITguLjguJMNCivguKrguKHguIrguLHguKIg4LmB4LiL4LmI4LmA4Lil4Li14LmI4Lii4LiHDQor4Liq4Lih4LiK4Lix4LiiIOC4leC4seC5ieC4h+C4meC4tOC4o+C4seC4meC4lOC4ow0KK+C4quC4oeC4iuC4seC4oiDguJfguKPguIfguK7guIcNCivguKrguKHguIrguLHguKIg4LiZ4Lij4LmA4Lio4Lij4Lip4LiQ4LmM4LmC4Lio4Lig4LiTDQor4Liq4Lih4LiK4Lix4LiiIOC5guC4muC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4quC4oeC4iuC4seC4oiDguJ7guKPguKHguIfguITguKXguKrguLjguIINCivguKrguKHguIrguLHguKIg4Lif4Li44LmJ4LiH4Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4LiK4Lix4LiiIOC4ouC4uOC4l+C4mOC4meC4suC4oOC4tOC4meC4seC4meC4l+C5jA0KK+C4quC4oeC4iuC4seC4oiDguKXguYnguKfguJnguYPguIjguKrguJnguJjguLTguYwNCivguKrguKHguIrguLHguKIg4Lin4LiH4Lio4LmM4Lie4Lix4LiZ4LiY4LmM4LiH4Liy4LihDQor4Liq4Lih4LiK4Lix4LiiIOC4p+C4tOC4qOC4p+C4quC4oeC4oOC4ng0KK+C4quC4oeC4iuC4seC4oiDguKjguLTguKXguJvguKrguLLguJjguLTguJUNCivguKrguKHguIrguLHguKIg4Liq4Liy4Lii4LiU4LmJ4Lin4LiHDQor4Liq4Lih4LiK4Lix4LiiIOC4quC4uOC5guC4iuC4leC4tOC4geC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4oeC4iuC4seC4oiDguYLguKvguJXguKPguIjguLTguJXguKMNCivguKrguKHguIrguLHguKIg4Lit4Liy4Lig4Liy4Lin4Lix4LiK4LiZ4LmMDQor4Liq4Lih4LiK4Liy4LiNIOC4peC4teC4oeC4suC4quC4p+C4seC4quC4lOC4tOC5jOC4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4leC4tCDguIjguLTguJXguJXguKfguLTguKrguLjguJfguJjguLTguKfguIfguKjguYwNCivguKrguKHguIrguLLguJXguLQg4LiU4Lil4Lii4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMDQor4Liq4Lih4LiK4Liy4LiV4Li0IOC4meC4tOC4o+C4seC4meC4lOC4o+C5jOC4p+C4h+C4qOC5jOC4p+C4suC4mQ0KK+C4quC4oeC4iuC4suC4leC4tCDguYDguJ7guYfguI3guYDguKrguIfguLXguYjguKLguKENCivguKrguKHguIrguLLguJXguLQg4LmA4Lil4Li04Lio4LiY4Lij4Lij4Lih4LiZ4Liy4LiWDQor4Liq4Lih4LiK4Liy4LiV4Li0IOC4quC4seC4meC4leC4tOC4meC4o+C4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4oeC4iuC4suC4leC4tCDguK3guYjguKfguKHguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguKHguIrguLLguKIg4LiB4Lil4Lie4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4geC4suC4jeC4iOC4meC4geC4seC4meC4leC4tOC4geC4suC4ow0KK+C4quC4oeC4iuC4suC4oiDguIHguLTguJXguJXguLTguYDguKXguLTguKjguYTguJ7guKjguLLguKUNCivguKrguKHguIrguLLguKIg4LmA4LiB4Li04LiU4LmA4Lij4Li34Lit4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC5geC4geC5ieC4p+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4oeC4iuC4suC4oiDguILguLjguJnguKfguLTguYDguKjguKoNCivguKrguKHguIrguLLguKIg4LiE4LmJ4Liy4LiX4Lix4LiZ4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4LiK4Liy4LiiIOC5guC4huC4qeC4tOC4leC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4quC4oeC4iuC4suC4oiDguIjguIfguYDguJfguLTguJTguJfguLnguJnguKrguIHguLjguKUNCivguKrguKHguIrguLLguKIg4LiI4Lix4LiZ4LiX4Lij4Lib4Lij4Liw4LiX4Li04LiZDQor4Liq4Lih4LiK4Liy4LiiIOC4iOC4tOC4leC4leC4o+C4suC4meC4meC4l+C5jA0KK+C4quC4oeC4iuC4suC4oiDguIjguLjguJnguYDguIjguLfguK3guJfguKPguLHguJ7guKLguYwNCivguKrguKHguIrguLLguKIg4LmA4LiI4Lip4LiO4Liy4LiZ4Lig4Liy4Lin4LiH4Lio4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4ieC4seC4leC4o+C4oeC4h+C4hOC4peC5gOC4geC4qeC4oQ0KK+C4quC4oeC4iuC4suC4oiDguIrguKXguJ7guLTguYTguKXguJ7guIfguKjguYwNCivguKrguKHguIrguLLguKIg4LiK4Liy4LiN4Liq4Lih4Lit4LiZDQor4Liq4Lih4LiK4Liy4LiiIOC4iuC4uOC5iOC4oeC5hOC4iuC4ouC4nuC4pOC4geC4qeC5jA0KK+C4quC4oeC4iuC4suC4oiDguYLguIrguITguKrguLTguKPguLTguKrguKfguLHguKrguJTguLTguYwNCivguKrguKHguIrguLLguKIg4LmB4LiL4LmI4LiE4Li5DQor4Liq4Lih4LiK4Liy4LiiIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4quC4oeC4iuC4suC4oiDguYHguIvguYjguKXguLXguYkNCivguKrguKHguIrguLLguKIg4LmB4LiL4LmI4Liu4LmJ4LitDQor4Liq4Lih4LiK4Liy4LiiIOC5geC4i+C5iOC5gOC4ruC4hw0KK+C4quC4oeC4iuC4suC4oiDguYHguIvguYjguYLguKXguYnguKcNCivguKrguKHguIrguLLguKIg4LiU4Li14Lih4LiH4LiE4Lil4Liq4Li44LiCDQor4Liq4Lih4LiK4Liy4LiiIOC4leC4o+C4sOC4geC4ueC4peC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C4quC4oeC4iuC4suC4oiDguJXguLHguYnguIfguJvguJnguLTguJjguLLguJnguJTguLUNCivguKrguKHguIrguLLguKIg4LiV4Lix4LiZ4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4leC4teC5ieC4ouC4muC4seC4p+C5geC4geC5ieC4pw0KK+C4quC4oeC4iuC4suC4oiDguJbguLTguKPguYLguKrguJXguJbguLTguJnguLLguJnguJnguJfguYwNCivguKrguKHguIrguLLguKIg4LiX4Lit4LiH4Lir4Lil4LmI4LitDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4l+C4reC4lOC4p+C4h+C4qOC5jOC4p+C4o+C4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguJjguKPguKPguKHguIHguLTguIjguYTguJ7guYLguKPguIjguJnguYwNCivguKrguKHguIrguLLguKIg4LiY4LmA4LiZ4Lio4LiZ4Li04LiV4Lii4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4meC4suC4hOC4nuC4peC4seC5ieC4hw0KK+C4quC4oeC4iuC4suC4oiDguJnguLTguKXguKfguJPguLTguIrguKLguYwNCivguKrguKHguIrguLLguKIg4Lia4Liz4Lij4Li44LiH4Lin4LiH4Lio4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4muC4uOC4jeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4quC4oeC4iuC4suC4oiDguJvguKPguLDguIHguLLguKLguYLguIHguKfguLTguJcNCivguKrguKHguIrguLLguKIg4Lib4Lil4Li34LmJ4Lih4LiI4Li04LiVDQor4Liq4Lih4LiK4Liy4LiiIOC4m+C4uOC4k+C4k+C4o+C4uOC4iOC4suC4p+C4h+C4qeC5jA0KK+C4quC4oeC4iuC4suC4oiDguYDguJzguLfguYjguK3guJnguIjguLLguIcNCivguKrguKHguIrguLLguKIg4Lie4Lij4LiW4Li04Lij4Liw4Lih4LiH4LiE4LilDQor4Liq4Lih4LiK4Liy4LiiIOC4nuC4p+C4h+C4l+C4reC4hw0KK+C4quC4oeC4iuC4suC4oiDguJ7guLTguJfguLHguIHguKnguYzguIHguLTguIjguJbguLLguKfguKMNCivguKrguKHguIrguLLguKIg4Lie4Li44LmI4Lih4Liq4Li44LiCDQor4Liq4Lih4LiK4Liy4LiiIOC5guC4nuC4mOC4tOC5jOC4h+C4suC4oQ0KK+C4quC4oeC4iuC4suC4oiDguKDguLHguJfguKPguLLguIfguIHguLnguKMNCivguKrguKHguIrguLLguKIg4Lih4LiT4Li14LmA4LiC4Li14Lii4LinDQor4Liq4Lih4LiK4Liy4LiiIOC4oeC4suC4o+C4teC4geC4seC4mQ0KK+C4quC4oeC4iuC4suC4oiDguYDguKHguIbguYDguJnguKINCivguKrguKHguIrguLLguKIg4LmA4Lii4LmH4LiZ4LmD4LiI4LmA4LiJ4Li34LmI4Lit4LiiDQor4Liq4Lih4LiK4Liy4LiiIOC4o+C4seC4leC4meC4iuC4suC4leC4tOC4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguKPguLjguYjguIfguKjguKPguLXguKjguKjguLTguJjguKMNCivguKrguKHguIrguLLguKIg4LmC4Lij4LiI4LiZ4Lin4Lij4LmC4Liq4Lig4LiTDQor4Liq4Lih4LiK4Liy4LiiIOC4peC4suC4oOC4reC4uOC4lOC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4iuC4suC4oiDguKXguLXguYnguKXguLHguJfguJjguYDguIHguLXguKLguKPguJXguLQNCivguKrguKHguIrguLLguKIg4LmA4Lil4Li04Lio4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiIDQor4Liq4Lih4LiK4Liy4LiiIOC4p+C4h+C4qOC5jOC4leC4o+C4sOC4geC4ueC4peC4iOC4hw0KK+C4quC4oeC4iuC4suC4oiDguKfguIfguKnguYzguKvguLTguKPguLHguI3guKfguLLguJnguLTguIoNCivguKrguKHguIrguLLguKIg4Lin4LmI4Lit4LiH4Lin4LiH4Lio4LmM4Lio4Lij4Li1DQor4Liq4Lih4LiK4Liy4LiiIOC4p+C4suC4meC4tOC4iuC4p+C4seC4kuC4meC5jA0KK+C4quC4oeC4iuC4suC4oiDguKfguLTguKnguJPguLjguKfguIfguKjguYwNCivguKrguKHguIrguLLguKIg4Lio4Lij4Lia4Lij4Lij4LiI4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC4qOC4o+C4teC4p+C4tOC5hOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguKjguLTguKPguLTguJjguLXguKPguLLguYDguIjguKnguI7guYwNCivguKrguKHguIrguLLguKIg4Lio4Li44Lig4Lil4Lix4LiB4Lip4LiT4LmM4Lin4Lix4LiI4LiZ4LiwDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4meC4quC4h+C5iOC4sg0KK+C4quC4oeC4iuC4suC4oiDguKrguKfguYjguLLguIfguJnguYnguK3guKHguIjguLTguJXguJXguYwNCivguKrguKHguIrguLLguKIg4Liq4Lix4Lii4Lil4Liw4Lih4Lix4LiiDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4tOC4meC4mOC4uOC4m+C4o+C4sOC4oOC4sg0KK+C4quC4oeC4iuC4suC4oiDguKrguLjguILguJnguLHguJnguJfguKjguLHguIHguJTguLTguYwNCivguKrguKHguIrguLLguKIg4Liq4Li44LiX4LiY4Li04LiC4Liy4LinDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4uOC4o+C5gOC4lOC4iuC4suC4meC4seC4meC4l+C5jA0KK+C4quC4oeC4iuC4suC4oiDguYDguKrguLLguKvguIcNCivguKrguKHguIrguLLguKIg4Lir4LiH4Lip4LmM4Lij4Lix4LiV4LiZ4Lin4Li04LiI4Li04LiV4LijDQor4Liq4Lih4LiK4Liy4LiiIOC4q+C4reC4oeC4geC4o+C4sOC4q+C4peC4mg0KK+C4quC4oeC4iuC4suC4oiDguYDguKvguKXguLfguK3guIfguKjguLTguKPguLTguKPguLHguIfguKnguLUNCivguKrguKHguIrguLLguKIg4Lit4LiZ4Lix4LiZ4LiV4LmM4Liq4Li44LiC4Lia4Lij4Lij4LiTDQor4Liq4Lih4LiK4Liy4LiiIOC4reC4ouC4ueC5iOC5gOC4geC4tOC4lA0KK+C4quC4oeC4iuC4suC4oiDguK3guLHguIfguIHguLnguKPguLLguKPguLHguIHguKnguYwNCivguKrguKHguIrguLLguKIg4Lit4Liy4LiI4Lir4Liy4LiNDQor4Liq4Lih4LiK4Liy4LiiIOC4reC4tOC5iOC4oeC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4oeC4iuC4suC4oiDguYDguK3guIHguJvguLHguI3guI3guLLguIHguLjguKUNCivguKrguKHguIrguLLguKIg4LmA4Lit4Li34LmJ4Lit4LmA4LiB4Lip4Lih4Liq4Li04LiZDQor4Liq4Lih4LiN4LiyIOC4iuC4suC4jeC4geC4o+C4sOC4muC4teC5iA0KK+C4quC4oeC4lOC4tSDguKfguYjguK3guIfguYTguKfguKfguJPguLTguIrguIHguLjguKUNCivguKrguKHguJbguKfguLTguKUg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Li04Lij4Li04Lie4LiI4LiZ4LmMDQor4Liq4Lih4LiW4Lin4Li04LilIOC4l+C4reC4h+C5gOC4q+C4h+C5ieC4sg0KK+C4quC4oeC4luC4p+C4tOC4pSDguJ7guKPguKvguKHguJ7guIfguKnguYwNCivguKrguKHguJbguKfguLTguKUg4LmA4Lil4Li14LmJ4Lii4Lin4Lie4Lij4Lib4Lij4Liw4Liq4Liy4LiXDQor4Liq4Lih4LiW4Lin4Li04LilIOC5geC4quC4h+C4meC4tOC4peC4qOC4tOC4o+C4tA0KK+C4quC4oeC4l+C4miDguKDguLnguYjguKHguIfguIHguLjguI7guIrguLHguKINCivguKrguKHguJfguKPguIcg4LiC4Lit4Lie4Lia4Liq4Li44LiCDQor4Liq4Lih4LiX4Lij4LiHIOC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4quC4oeC4l+C4o+C4hyDguJXguLHguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguKHguJfguKPguIcg4LmA4LiZ4Li34LmI4Lit4LiH4LiI4Liy4LiB4LiZ4Liy4LiEDQor4Liq4Lih4LiX4Lij4LiHIOC4nuC4suC4meC4tOC4iuC4ouC4sOC4oeC4meC4leC4o+C4tQ0KK+C4quC4oeC4l+C4o+C4hyDguKPguLjguYjguIfguYDguKPguLfguK3guIfguKjguLTguKXguJvguYwNCivguKrguKHguJfguKPguIcg4LmA4Lio4Lin4LiV4LmA4Lin4LiKDQor4Liq4Lih4LiX4Lij4LiHIOC5geC4quC4h+C4quC4p+C5iOC4suC4hw0KK+C4quC4oeC4l+C4o+C4seC4nuC4ouC5jCDguJ7guKPguKjguLTguKPguLTguKXguLHguITguJPguLINCivguKrguKHguJnguLHguKog4LiC4Lij4Lij4LiE4LmM4LiK4Lix4LiiDQor4Liq4Lih4LiZ4Li24LiBIOC4geC4pOC4qeC4k+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4oeC4meC4tuC4gSDguYDguIHguLTguJTguYDguJvguLXguYjguKLguKENCivguKrguKHguJnguLbguIEg4LiE4LiH4Lii4Li04LmI4LiHDQor4Liq4Lih4LiZ4Li24LiBIOC4iOC4o+C4ueC4jeC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4oeC4meC4tuC4gSDguIjguLbguIfguIjguJXguLjguKPguJ7guLTguJgNCivguKrguKHguJnguLbguIEg4LmA4LiJ4Lil4Li04Lih4Lio4Lij4Li1DQor4Liq4Lih4LiZ4Li24LiBIOC4iuC4ueC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4meC4tuC4gSDguYHguIvguYjguK3guLfguYnguK0NCivguKrguKHguJnguLbguIEg4LiV4Lix4LmJ4LiH4Lin4Lix4LiK4Lij4Lie4LiH4Lio4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4l+C5ieC4p+C4oeC5geC4quC4hw0KK+C4quC4oeC4meC4tuC4gSDguJjguLHguKHguJ7guLTguJ7guLTguJgNCivguKrguKHguJnguLbguIEg4LmA4LiZ4Li14Lii4Lih4LiX4Lix4Lia4LiX4Li04LihDQor4Liq4Lih4LiZ4Li24LiBIOC4muC4ueC4o+C4k+C4sOC4quC4oeC4qeC4seC4leC4tA0KK+C4quC4oeC4meC4tuC4gSDguYDguJvguKPguKHguKPguLHguJXguJnguLINCivguKrguKHguJnguLbguIEg4Lie4Lil4Liy4Lii4LiH4Liy4LihDQor4Liq4Lih4LiZ4Li24LiBIOC4nuC4ueC4peC5guC4reC4qeC4kOC5jA0KK+C4quC4oeC4meC4tuC4gSDguKHguIfguITguKXguIjguKPguLHguKrguYHguKrguIcNCivguKrguKHguJnguLbguIEg4Lii4Lit4LiU4Lia4Lij4Li04Lia4Li54Lij4LiT4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4o+C4uOC5ieC4h+C4geC4oeC4peC4nuC4seC4meC4mOC5jA0KK+C4quC4oeC4meC4tuC4gSDguYDguKXguLTguKjguKrguLTguKPguLTguKrguLjguIINCivguKrguKHguJnguLbguIEg4Lin4Lix4LiK4Lij4Lia4Li54Lij4LiT4Lie4LiH4Lip4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4qOC4o+C4teC4m+C4o+C4sOC4lOC4seC4muC4o+C4seC4leC4meC5jA0KK+C4quC4oeC4meC4tuC4gSDguKrguJnguJjguLTguYLguKvguKHguJQNCivguKrguKHguJnguLbguIEg4Liq4Li04LiH4Lir4Liy4LiE4Li44LiTDQor4Liq4Lih4LiZ4Li24LiBIOC4quC4uOC4l+C4mOC4tOC4p+C4h+C4qOC5jA0KK+C4quC4oeC4meC4tuC4gSDguKvguIfguLjguYjguKLguIHguKPguLDguYLguJfguIENCivguKrguKHguJnguLbguIEg4Lit4Lih4Lij4Liq4Li04Lij4Li04Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4reC4tOC4quC4o+C4seC5iOC4mQ0KK+C4quC4oeC4muC4seC4leC4o+C5jCDguJfguKPguLHguJ7guKLguYzguYHguKLguYnguKENCivguKrguKHguJrguLHguJXguLQg4LiB4Li44Lil4Lin4Li44LiS4Li0DQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5gOC4guC4teC4ouC4p+C5guC4quC4oOC4sg0KK+C4quC4oeC4muC4seC4leC4tCDguYDguITguKPguLfguK3guK3guLLguKnguLINCivguKrguKHguJrguLHguJXguLQg4LiI4Liy4Lij4Li44Lia4Lij4Lij4Lii4LiH4LiE4LmMDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4ieC4seC4leC4o+C4p+C4o+C4uOC4k+C4o+C4seC4leC4meC5jA0KK+C4quC4oeC4muC4seC4leC4tCDguYTguIrguKLguJfguKPguLHguJ7guKLguYwNCivguKrguKHguJrguLHguJXguLQg4LiU4LmJ4Lin4LiH4Lin4LiH4Lio4LmM4Lio4Lij4Li1DQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5gOC4leC4iuC4reC4seC4hOC4o+C5gOC4quC4luC4teC4ouC4ow0KK+C4quC4oeC4muC4seC4leC4tCDguJfguK3guIfguKLguYnguK3guKINCivguKrguKHguJrguLHguJXguLQg4LmA4LiY4Li14Lii4Lij4Lie4LiI4LiZ4LmMDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4muC4seC4p+C4o+C4uOC5iOC4hw0KK+C4quC4oeC4muC4seC4leC4tCDguJvguKPguLDguYDguKrguKPguLTguJDguJnguJ7guITguLjguJMNCivguKrguKHguJrguLHguJXguLQg4Lic4Li54LiB4LmA4LiB4Lip4LijDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4nuC4suC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4quC4oeC4muC4seC4leC4tCDguYLguJ7guJjguLTguJrguLjguI0NCivguKrguKHguJrguLHguJXguLQg4Lih4Liw4Lir4Liw4Lir4Lih4Lix4LiUDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4ouC4tOC5iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4muC4seC4leC4tCDguYDguKPguLfguYnguK3guIENCivguKrguKHguJrguLHguJXguLQg4Lin4LiH4Lio4LmM4LiB4Liz4LiK4Lix4LiiDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4p+C4tOC4oOC4ueC4qOC4tOC4o+C4tA0KK+C4quC4oeC4muC4seC4leC4tCDguKjguKPguYDguKXguLTguKgNCivguKrguKHguJrguLHguJXguLQg4Liq4Lih4Lio4Lij4Li14Lit4Lix4LiB4Lip4Lij4LmB4Liq4LiHDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4quC4tOC4h+C4q+C5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4muC4seC4leC4tCDguKrguLjguJnguJfguKPguYDguKrguJPguLUNCivguKrguKHguJrguLHguJXguLQg4Lir4Lih4LmI4Lit4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4reC4ouC4ueC5iOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4muC4seC4leC4tCDguK3guLjguJXguKHguLDguKfguLTguKPguLTguKLguLLguIfguIHguLnguKMNCivguKrguKHguJrguLjguI0g4LmA4LiB4LiV4Lih4LiT4Li1DQor4Liq4Lih4Lia4Li44LiNIOC4iOC4suC4o+C4uOC4o+C4seC4leC4meC5gOC4geC4t+C5ieC4rQ0KK+C4quC4oeC4muC4uOC4jSDguYHguIvguYjguKvguKLguLTguJoNCivguKrguKHguJrguLjguI0g4LiX4Lit4LiH4Lie4LiH4Lip4LmM4LmA4LiZ4Li14Lii4LihDQor4Liq4Lih4Lia4Li44LiNIOC4muC4uOC4jeC4p+C4seC4kuC4meC4sg0KK+C4quC4oeC4muC4uOC4jSDguJ7guLnguJnguKrguLTguKPguKrguLTguJkNCivguKrguKHguJrguLjguI0g4Lij4Lix4LiB4Lip4LmM4Liq4Li44Lij4Lin4LiH4Lio4LiyDQor4Liq4Lih4Lia4Li44LiNIOC4p+C4suC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4muC4uOC4jSDguKrguLXguJnguYnguLPguYDguIfguLTguJkNCivguKrguKHguJrguLjguI0g4Lit4Lig4Li04Lin4Lij4Lij4LiT4Lio4Lij4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4geC4meC4geC4meC4oOC4suC4geC4uOC4pQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguIHguLTguIjguKPguLHguIfguKnguLXguKfguLTguJrguLnguKXguKLguYwNCivguKrguKHguJrguLnguKPguJPguYwg4LmB4LiB4LmJ4Lin4LiB4Liy4LijDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4hOC4h+C4oeC4seC5iOC4mQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguIfguLLguKHguJjguKPguKPguKHguKjguLTguKPguLQNCivguKrguKHguJrguLnguKPguJPguYwg4LiI4Lix4LiZ4LmC4LiX4Lin4Liy4LiXDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4iOC4uOC4peC4nuC4pQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguInguLLguKLguLDguYLguK3guKDguLLguKoNCivguKrguKHguJrguLnguKPguJPguYwg4LiK4Li44LiT4Lir4Liw4Lin4Lix4LiTDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC5geC4i+C5iOC4n+C4uOC5ieC4hw0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJPguLHguI7guJDguKrguKHguJrguLnguKPguJPguYwNCivguKrguKHguJrguLnguKPguJPguYwg4LiV4Lix4LmJ4LiH4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC5gOC4leC5iOC4suC4l+C4reC4hw0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJfguK3guIfguK3guKPguYjguLLguKENCivguKrguKHguJrguLnguKPguJPguYwg4LiY4LiZ4Liy4Liq4Li44Lin4Lij4Lij4LiT4LiU4Li04LiW4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4meC4tOC4oeC4sA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJrguLjguI3guKXguYnguJnguYDguKvguKXguLfguK0NCivguKrguKHguJrguLnguKPguJPguYwg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li44LiC4LmB4Liq4LiZDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4nOC5iOC4reC4h+C5hOC4quC4pw0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJ7guKPguYDguJTguIrguYDguJTguIrguLANCivguKrguKHguJrguLnguKPguJPguYwg4Lie4Li04LmA4Lio4Lip4Lie4Lix4LiS4LiZ4LiB4Li44LilDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4n+C4ueC5gOC4n+C4t+C5iOC4reC4h+C4quC4oeC4muC4seC4leC4tA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKHguLHguYjguIfguKHguLUNCivguKrguKHguJrguLnguKPguJPguYwg4Lii4Lix4LiZ4LiZ4Liy4LiU4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4o+C4t+C5iOC4meC4o+C4suC4leC4o+C4tQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKXguLXguYjguJfguK3guIfguK3guLTguJkNCivguKrguKHguJrguLnguKPguJPguYwg4Lin4LiH4Lio4LmM4Liq4Li44Lin4Lij4Lij4LiT4LiZ4Li04LiY4Li0DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4p+C4seC4ouC4p+C4tOC4o+C4seC4leC4meC5jA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKjguKPguLTguKHguYLguJnguJnguLjguIHguLjguKUNCivguKrguKHguJrguLnguKPguJPguYwg4Lio4Li04Lij4Li04Lia4Lij4Lij4LiI4LiHDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4quC4oeC4reC4uOC4lOC4ow0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKrguLLguKrguLDguYDguJTguLLguLDguKvguYwNCivguKrguKHguJrguLnguKPguJPguYwg4Liq4Li44LiX4LiY4Li04LiK4Lix4LiHDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC5geC4quC4h+C4lOC4tQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKvguLLguI3guJ7guLHguJLguJnguIrguLHguKLguIHguLnguKMNCivguKrguKHguJrguLnguKPguJPguYwg4Lit4Lij4Lij4LiE4Lio4Li04Lij4Li04LiZ4LiZ4LiX4LmMDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4reC4tOC4meC4iOC4s+C4m+C4sg0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguYLguK3guKDguLLguKrguYDguIjguKPguLTguI3guKfguLTguJfguKLguYwNCivguKrguKHguJvguKPguLDguKrguIfguITguYwg4Lia4Li44LiN4Lii4Liw4LiK4Lix4LiiDQor4Liq4Lih4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4reC4uOC5iOC4meC4peC4sOC4oeC5ieC4suC4og0KK+C4quC4oeC4m+C4reC4hyDguYDguIHguKnguKPguYzguKHguJPguLUNCivguKrguKHguJvguK3guIcg4LiI4Li04Lin4LmE4Lie4LmC4Lij4LiI4LiZ4LmM4LiB4Li04LiIDQor4Liq4Lih4Lib4Lit4LiHIOC4lOC4p+C4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4m+C4reC4hyDguYDguJfguJ7guYDguJfguJ7guLINCivguKrguKHguJvguK3guIcg4Lia4Li54Lij4LiT4Liw4Lin4Li44LiS4Li0DQor4Liq4Lih4Lib4Lit4LiHIOC4nuC4uOC4lOC4leC4suC4pQ0KK+C4quC4oeC4m+C4reC4hyDguKLguIfguKfguJPguLTguIrguKLguYwNCivguKrguKHguJvguK3guIcg4LmB4Lin4Lin4Lin4Lix4LiK4Lij4LiwDQor4Liq4Lih4Lib4Lit4LiHIOC4quC4tOC4h+C4q+C5gOC4quC4meC4tQ0KK+C4quC4oeC4m+C4reC4hyDguYDguKvguKXguYjguLLguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguKrguKHguJ7guIQg4Lio4Li14Lil4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Liq4Lih4Lie4LiH4Lio4LmMIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4quC4oeC4nuC4h+C4qOC5jCDguKPguLHguJXguJnguJrguLjguKPguLUNCivguKrguKHguJ7guIfguKnguYwg4LiB4Lij4Lij4LiT4Liq4Li54LiVDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4geC4tOC4leC4leC4tOC4o+C4seC4leC4meC4suC4oOC4tOC4meC4seC4meC4l+C5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguYLguIHguKjguKXguKPguK3guJQNCivguKrguKHguJ7guIfguKnguYwg4LiE4Lil4LmJ4Liy4Lii4Lih4Li1DQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4iOC4s+C4o+C4seC4qg0KK+C4quC4oeC4nuC4h+C4qeC5jCDguIjguLXguJnguYDguKfguIrguKjguLLguKrguJXguKPguYwNCivguKrguKHguJ7guIfguKnguYwg4LiJ4Liy4Lii4LmB4LiB4LmJ4LinDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4iuC4teC4p+C4sOC5gOC4iOC4o+C4tOC4jeC5hOC4l+C4og0KK+C4quC4oeC4nuC4h+C4qeC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguKrguKHguJ7guIfguKnguYwg4LiT4Lij4LiH4LiE4LmM4LmA4Lib4Lil4Li14LmI4Lii4LiZDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4leC4seC4meC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJfguKPguIfguJfguKPguLHguJ7guKLguYzguIHguLjguKUNCivguKrguKHguJ7guIfguKnguYwg4LmA4LiX4Lie4LmE4LiB4Lij4Lil4Liy4LioDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4meC4seC4meC4l+C4nuC4o+C4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJrguLjguI3guITguLjguJMNCivguKrguKHguJ7guIfguKnguYwg4Lib4Lij4Liw4Lig4Liy4Lio4Li04Lij4Li0DQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4m+C4uOC4ouC4ouC4sOC4o+C4uOC4mQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJ7guIfguKnguYzguYDguKDguJXguKPguLINCivguKrguKHguJ7guIfguKnguYwg4Lie4Li04LiZ4Li04LiI4LiB4Liy4Lij4LiT4LmMDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC5hOC4nuC4iOC4tOC4leC4ow0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKHguLHguIfguIHguKPguJ7guLLguJnguLTguIoNCivguKrguKHguJ7guIfguKnguYwg4Lii4Li54Liu4Lix4LiZ4LmA4LiH4Liy4LiwDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4o+C4uOC4iOC4tOC4guC4iOC4ow0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKXguLfguK3guIrguLLguJXguLTguYDguKHguJjguLTguIHguLjguKUNCivguKrguKHguJ7guIfguKnguYwg4Lin4LiH4Liq4Lit4Liy4LiUDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4p+C4tOC4o+C4tOC4ouC4sOC4oeC4meC4leC4o+C4tQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKjguKPguLXguKrguLLguIHguKUNCivguKrguKHguJ7guIfguKnguYwg4Liq4LiB4Li44Lil4Liq4Li44Lig4Liy4Lii4LiZ4LiyDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4quC4sOC4quC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKrguLTguJnguKrguJTguKfguIENCivguKrguKHguJ7guIfguKnguYwg4Liq4Li44LiZ4LiX4Lij4LiY4Lij4Lij4LihDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC5geC4quC4h+C4quC4tOC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKvguLLguI3guJ7guLLguJPguLTguIrguKLguYzguJ7guLHguJnguJjguLjguYwNCivguKrguKHguJ7guIfguKnguYwg4Lit4Lih4Lij4LiY4Lix4LiN4Liq4Li04Lij4Li04LiB4Li44LilDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4reC4suC4q+C4oeC4seC4lA0KK+C4quC4oeC4nuC4iOC4meC5jCDguIHguKLguLLguKfguLHguJLguJnguIHguLTguIgNCivguKrguKHguJ7guIjguJnguYwg4Lir4Lit4Lih4LiZ4Li04Lii4LihDQor4Liq4Lih4Lie4LijIOC4geC4tOC4iOC4geC4seC4h+C4p+C4suC4pQ0KK+C4quC4oeC4nuC4oyDguYHguIHguYnguKfguJnguLTguKUNCivguKrguKHguJ7guKMg4LiE4LiH4Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Lih4Lie4LijIOC4h+C4reC4meC4q+C4reC4oQ0KK+C4quC4oeC4nuC4oyDguIjguLHguJnguJfguLDguKPguLHguIfguKjguKPguLUNCivguKrguKHguJ7guKMg4LmB4LiI4Lin4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4Lie4LijIOC4iuC4seC4ouC4meC4tOC4hOC4oQ0KK+C4quC4oeC4nuC4oyDguYDguIrguLfguYnguK3guYDguIHguJXguLgNCivguKrguKHguJ7guKMg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Lih4Lie4LijIOC4lOC4teC5hOC4nuC4qOC4suC4pQ0KK+C4quC4oeC4nuC4oyDguJXguLjguYjguKHguKHguLANCivguKrguKHguJ7guKMg4LiX4Lit4LiH4Lib4Lij4Liw4LiU4Li04Lip4LiQDQor4Liq4Lih4Lie4LijIOC5gOC4l+C4teC4ouC4meC4l+C4seC4lA0KK+C4quC4oeC4nuC4oyDguJnguYnguK3guKLguYDguILguYfguKHguYDguIfguLTguJkNCivguKrguKHguJ7guKMg4Lia4Lix4Lin4Lit4Li44LmE4LijDQor4Liq4Lih4Lie4LijIOC4muC4uOC4leC4o+C4guC4seC4meC4l+C4reC4hw0KK+C4quC4oeC4nuC4oyDguJvguLLguJnguYPguKLguKrguKHguJrguLnguKPguJPguYwNCivguKrguKHguJ7guKMg4Lie4LiH4Lip4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Lih4Lie4LijIOC4nuC4suC4iuC4teC4o+C4seC4leC4meC5jA0KK+C4quC4oeC4nuC4oyDguYDguJ7guIrguKPguJTguLUNCivguKrguKHguJ7guKMg4Lig4Li54LmI4Lie4Lin4LiHDQor4Liq4Lih4Lie4LijIOC4oeC4tOC4o+C4reC4i+C4sg0KK+C4quC4oeC4nuC4oyDguKPguK3guJTguKPguLHguKjguKHguLUNCivguKrguKHguJ7guKMg4LmA4Lij4Li34Lit4LiH4Lik4LiX4LiY4Li04LmMDQor4Liq4Lih4Lie4LijIOC5gOC4peC4suC4q+C4o+C4seC4leC4meC4suC4q+C4tOC4o+C4seC4jQ0KK+C4quC4oeC4nuC4oyDguKfguKPguKPguJPguIrguJnguLANCivguKrguKHguJ7guKMg4Lin4Li04Lil4Lix4Lii4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lie4LijIOC4qOC4o+C4teC5gOC4nuC4iuC4ow0KK+C4quC4oeC4nuC4oyDguKrguJnguJfguK3guIcNCivguKrguKHguJ7guKMg4Liq4Liy4LiY4Li04LiV4Lie4Li04LiQ4LiB4Li44LilDQor4Liq4Lih4Lie4LijIOC4quC4uOC4guC5geC4geC5ieC4pw0KK+C4quC4oeC4nuC4oyDguYHguKrguIfguJnguJnguJfguYwNCivguKrguKHguJ7guKMg4Lir4Liy4LiN4Lie4LiH4Lip4LmM4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Lih4Lie4LijIOC4reC5iOC4reC4h+C4peC4sOC4reC4rQ0KK+C4quC4oeC4nuC4oyDguK3guLTguKjguKPguLLguJnguLjguKPguLHguIHguKnguYwNCivguKrguKHguJ7guKTguKnguYwg4Lie4Lij4Lir4Lih4Lih4Li0DQor4Liq4Lih4Lie4LilIOC4ieC4suC4ouC4suC4ouC4mQ0KK+C4quC4oeC4nuC4pSDguJjguLLguJTguLLguIHguKMNCivguKrguKHguJ7guKUg4Lie4Li24LiH4Lih4LiH4LiE4Lil4LiK4Lix4Lii4LiB4Li04LiIDQor4Liq4Lih4Lie4LilIOC4p+C4h+C4qOC5jOC4mOC4tOC4muC4lOC4teC5gOC4lOC4ig0KK+C4quC4oeC4nuC4pSDguKrguLjguJ7guYLguKUNCivguKrguKHguJ7guLHguIHguJXguKPguYwg4Lih4Lir4Liy4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Lih4Lie4Lix4LiZ4LiY4LmMIOC4muC4uOC4jeC4geC4seC4h+C4p+C4suC4pQ0KK+C4quC4oeC4nuC4tOC4qCDguIHguKPguLDguYHguKrguKPguYzguITguLjguJvguJXguYwNCivguKrguKHguJ7guLTguKgg4LiE4Lin4Lij4LmB4LiW4Lil4LiHDQor4Liq4Lih4Lie4Li04LioIOC4iuC4uOC5iOC4oeC4iuC4p+C4og0KK+C4quC4oeC4nuC4tOC4qCDguYLguJXguKHguLDguYLguJkNCivguKrguKHguJ7guLTguKgg4LmA4LiZ4Li04LiZ4LiB4Lij4LmI4Liy4LiHDQor4Liq4Lih4Lie4Li04LioIOC4nuC4seC4kuC4meC4suC4pOC4lOC4tQ0KK+C4quC4oeC4nuC4tOC4qCDguKLguK3guJTguKrguKfguLHguKrguJTguLTguYwNCivguKrguKHguJ7guLTguKgg4Lin4Li04LiK4Lix4Lii4LiB4Li44LilDQor4Liq4Lih4Lie4Li04LioIOC4quC4tOC4peC4uOC4iOC4iOC4ouC4suC4meC4meC4l+C5jA0KK+C4quC4oeC4nuC4tOC4qCDguK3guYjguKfguKHguJjguKPguKPguKENCivguKrguKHguKDguJ4g4LiB4Li04LiI4LmE4LiK4Lii4LiyDQor4Liq4Lih4Lig4LieIOC4iOC4tOC4o+C4iOC4o+C4seC4pQ0KK+C4quC4oeC4oOC4niDguJXguLTguKPguIrguLjguKXguLUNCivguKrguKHguKDguJ4g4Lib4Lij4Liw4LiB4Lit4Lia4LiZ4Lie4LmA4LiB4LmJ4LiyDQor4Liq4Lih4Lig4LieIOC4nuC4ueC4meC4nOC4peC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4quC4oeC4oOC4niDguKXguKHguKXguK3guKINCivguKrguKHguKDguJ4g4Lio4Lij4Li44LiV4Lin4Lij4Liq4LiB4Li44LilDQor4Liq4Lih4Lig4LieIOC4quC4uOC4o+C4seC4geC4guC4geC4sA0KK+C4quC4oeC4oOC4niDguK3guLHguKHguJ7guLjguJvguKPguLDguKDguLINCivguKrguKHguKDguLLguJ4g4Lij4Lix4LiV4LiZ4LiU4Liy4LiB4Li44LilDQor4Liq4Lih4Lih4Liy4LiVIOC4quC4seC4h+C4guC4nuC4seC4meC4mOC5jA0KK+C4quC4oeC4oeC4suC4leC4oyDguJ7guKPguKvguKHguLLguJnguLjguIHguLnguKUNCivguKrguKHguKHguLLguJXguKPguYwg4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBDQor4Liq4Lih4Lih4Liy4LioIOC4geC4p+C4ouC4oeC4h+C4hOC4pQ0KK+C4quC4oeC4oeC4tOC4leC4oyDguIjguLHguJnguJfguKPguYzguKDguLHguIHguJTguLUNCivguKrguKHguKHguLjguJXguLQg4Lij4Lix4LiK4LiV4Liw4Lin4Lij4Lij4LiTDQor4Liq4Lih4Lii4LioIOC5gOC4geC4tOC4lOC4reC4meC4seC4meC4leC5jA0KK+C4quC4oeC4ouC4qCDguIjguLHguYjguJnguYDguJ7guYfguIrguKMNCivguKrguKHguKLguKgg4LmA4LiK4Li14LmI4Lii4Lin4LiK4Liy4LiN4LmB4LiV4LmI4LiHDQor4Liq4Lih4Lii4LioIOC5hOC4leC4o+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4nuC4h+C4qOC5jA0KK+C4quC4oeC4ouC4qCDguJrguLjguI3guIrguLHguKLguKjguKPguLUNCivguKrguKHguKLguKgg4Lie4Lij4LmA4LiI4Lij4Li04LiN4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Lih4Lii4LioIOC4oeC4q+C4seC4l+C4mOC4meC4sOC4oeC4h+C4hOC4pQ0KK+C4quC4oeC4ouC4qCDguKPguLjguIjguLTguYLguKHguKPguLANCivguKrguKHguKLguKgg4Lin4Li04Lia4Li54Lil4Lii4LmM4Lib4Li04LmI4LiZDQor4Liq4Lih4Lii4LioIOC4quC4seC4h+C4guC5jOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4quC4oeC4ouC4qCDguKvguKXguLXguILguLLguKcNCivguKrguKHguKLguLIg4Lij4Lit4LiU4Lir4Lij4LmI4Liy4LiiDQor4Liq4Lih4LijIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4peC4tOC4qA0KK+C4quC4oeC4oyDguYTguJXguKPguKfguLTguIrguLINCivguKrguKHguKMg4Lib4Liy4LiZ4Lii4LmJ4Lit4LiiDQor4Liq4Lih4LijIOC4oeC4teC5geC4geC5ieC4pw0KK+C4quC4oeC4oyDguKjguLTguJjguKPguIHguLjguKUNCivguKrguKHguKMg4Lit4Lij4Lij4LiW4Lie4Li04LiX4Lii4LmMDQor4Liq4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4lOC4tOC4qeC4kOC4reC4uOC4lOC4oeC5guC4nuC4mOC4tOC5jA0KK+C4quC4oeC4o+C4qiDguKHguIfguITguKUNCivguKrguKHguKPguLHguIEg4LmE4Lie4Lia4Li54Lil4Lii4LmM4Lin4Li14Lij4Liw4Liq4LiB4Li44LilDQor4Liq4Lih4Lij4Lix4LiB4Lip4LmMIOC4leC5iOC4reC4p+C4h+C4qOC5jOC5hOC4nuC4iuC4ouC4meC4leC5jA0KK+C4quC4oeC4o+C4seC4leC4meC5jCDguJvguKPguLXguYDguIjguKPguLTguI0NCivguKrguKHguKTguIHguKnguYwg4Lir4Li04Lij4Lix4LiN4Lio4Li44Lig4LmC4LiK4LiV4Li0DQor4Liq4Lih4Lik4LiU4Li1IOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4pOC4lOC4tSDguYDguKrguJnguLDguKfguLXguJPguLTguJkNCivguKrguKHguKTguJfguLHguKIg4LiB4Lil4LmI4Lit4Lih4LiZ4LmJ4Lit4LiiDQor4Liq4Lih4Lil4Lix4LiB4Lip4LiT4LmMIOC4geC4tOC4leC4tOC4nuC4h+C4qeC5jA0KK+C4quC4oeC4peC4seC4geC4qeC4k+C5jCDguIvguYjguK3guKHguJvguKPguLDguJTguLTguKnguJDguYwNCivguKrguKHguKXguLHguIHguKnguJPguYwg4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmA4Lih4LiB4Li44LilDQor4Liq4Lih4Lil4Lix4LiB4Lip4LiT4LmMIOC4peC4tOC4meC4iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4peC4seC4geC4qeC4k+C5jCDguKrguLjguKfguKPguKPguJPguYHguKrguIcNCivguKrguKHguKfguIfguKjguYwg4LiE4Lij4LmJ4Liy4Lih4LiB4Liz4LiI4LijDQor4Liq4Lih4Lin4LiH4Lip4LmMIOC4iuC4s+C4meC4suC4jeC4geC4tOC4iOC4iOC4sg0KK+C4quC4oeC4p+C4tOC4l+C4ouC5jCDguJ7guIfguKjguYzguJrguKPguLTguJ7guLHguJXguKMNCivguKrguKHguKjguKPguLUg4LiB4Li04LiI4Lij4Lix4LiB4Lip4LiyDQor4Liq4Lih4Lio4Lij4Li1IOC4guC4suC4p+C4l+C4reC4hw0KK+C4quC4oeC4qOC4o+C4tSDguIfguYjguKfguJnguIjguKMNCivguKrguKHguKjguKPguLUg4LiI4Li04LiV4LiI4Lij4Lix4Liq4LmB4Liq4LiHDQor4Liq4Lih4Lio4Lij4Li1IOC4ieC4tOC4oeC4hOC4peC5ieC4suC4og0KK+C4quC4oeC4qOC4o+C4tSDguIrguLnguKjguKPguLXguJnguKfguKUNCivguKrguKHguKjguKPguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Liq4Lih4Lio4Lij4Li1IOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4quC4oeC4qOC4o+C4tSDguJXguLHguYnguIfguYDguIjguKPguLTguI0NCivguKrguKHguKjguKPguLUg4LmA4LiW4LmI4LiHDQor4Liq4Lih4Lio4Lij4Li1IOC5gOC4l+C4qOC4mOC4o+C4o+C4oQ0KK+C4quC4oeC4qOC4o+C4tSDguJnguLLguKrguKHguJ3guLHguJkNCivguKrguKHguKjguKPguLUg4Lia4Li44LiN4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4m+C4seC4l+C4oeC4nuC4h+C4qOC5jOC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4quC4oeC4qOC4o+C4tSDguJ7guKPguJvguKPguLHguIrguI3guLLguJ7guIfguKjguYwNCivguKrguKHguKjguKPguLUg4Lie4Li54Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4oOC4ueC4q+C4suC4meC4suC4oQ0KK+C4quC4oeC4qOC4o+C4tSDguKLguKjguIrguLkNCivguKrguKHguKjguKPguLUg4Lij4Lix4LiV4LiZ4Lib4Lij4Liw4Lig4Liy4LiVDQor4Liq4Lih4Lio4Lij4Li1IOC4peC4tOC4guC4tOC4leC4quC4geC4uOC4peC4iuC4seC4og0KK+C4quC4oeC4qOC4o+C4tSDguKfguIfguKnguYzguKvguKfguLHguIfguIjguLHguJnguJfguKPguYwNCivguKrguKHguKjguKPguLUg4Lin4Li04Lij4Li04Lii4Liw4Lia4Li44Lio4Lii4LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4qOC4seC4geC4lOC4tOC5jOC5gOC4quC4oeC4reC4nuC4o+C4q+C4oQ0KK+C4quC4oeC4qOC4o+C4tSDguKrguKXguLHguJTguKLguLDguJnguLHguJnguJfguYwNCivguKrguKHguKjguKPguLUg4Liq4Li14Lin4Lix4LiZ4LiZ4LiyDQor4Liq4Lih4Lio4Lij4Li1IOC5gOC4quC5h+C4h+C4lOC4reC4meC5hOC4nuC4ow0KK+C4quC4oeC4qOC4o+C4tSDguKvguLLguKHguJnguJXguKPguLUNCivguKrguKHguKjguKPguLUg4Lit4Lix4LiH4LiE4LiZ4Liy4Lin4Lij4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4reC4uOC5iOC4meC4p+C4seC4kuC4meC4meC4uOC4geC4ueC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIHguKPguLjguIfguJfguK3guIfguIjguLHguJnguJfguKPguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiB4Liy4LiN4LiI4LiZ4Lib4Lij4Liw4Lie4Li04LiTDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4tOC4leC4leC4tOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguIHguKPguLXguKLguIfguYTguIrguKLguIHguLTguIjguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmB4LiB4LmJ4Lin4Lia4Lin4LijDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4guC4seC4leC4leC4uOC4nuC4h+C4qOC5jOC4p+C4k+C4tOC4ig0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguITguIfguYTguJ7guKjguLLguKXguJbguLLguKfguKMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiE4Li44LmJ4Lih4Lig4Lix4Lii4Lie4Liy4LilDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4h+C4p+C4meC4tOC4iuC4ouC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIjguLHguJnguJfguKPguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiI4Liy4Lij4Li44LiI4Li44LiR4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4tOC4meC4suC4o+C4seC4geC4qeC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguIjguJnguIjguKPguLHguKrguKrguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmA4LiI4Li34Lit4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4ieC4peC4ouC4quC4seC4h+C4guC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIrguLLguI3guKrguKHguKMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiK4Li54Lin4LiH4Lio4LmM4Lin4Liy4Lil4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5g+C4iuC5iOC5geC4meC5iA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC5guC4leC4pw0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJTguLXguJnguIENCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiV4Lij4Liw4LiB4Li54Lil4LmC4Lit4Liq4LiWDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4leC4seC5ieC4h+C5gOC4iOC4o+C4tOC4jeC4mOC4o+C4o+C4oQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJXguLTguKXguIHguYDguKXguLTguKgNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmC4LiV4Lij4Lix4LiB4Lip4LiyDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4o+C4seC4nuC4ouC5jOC4p+C4tOC5hOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJfguLHguYjguIfguJfguK3guIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmA4LiX4Li14LmI4Lii4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4mOC4o+C4pOC4l+C4mOC4tOC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJnguKfguKXguK3guLjguYTguKMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiZ4Li04LiZ4LiZ4Liy4LiXDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4muC4p+C4o+C4reC4meC4seC4meC4leC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guKHguLLguYDguKXguLTguKgNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lia4Li54Lij4LiT4Liw4Lio4Li04Lil4Lib4LiB4Li04LiIDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4m+C4o+C4sOC4qOC4suC4quC4meC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJvguLLguKXguKjguKPguLUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lic4LiI4LiH4Lie4Lik4LiX4LiY4Li04LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4lOC4lOC5ieC4p+C4hw0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJ7guKTguIHguKnguLDguKfguLHguJkNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lie4Lix4LiZ4LiY4Li44LmM4Liq4LiZDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4t+C4iuC4quC4sOC4geC4sA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguJ7guLXguKLguKPguKPguLHguIfguKrguKPguKPguITguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lig4LiE4Liq4Li04Lij4Li04LiB4Li44LilDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4h+C4hOC4peC4oeC4q+C4suC4iuC4seC4og0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKHguLLguJTguLUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lih4LmC4LiZ4LiX4Lij4Lix4Lie4Lii4LmM4Lia4Liz4Lij4Li44LiHDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4ouC4tOC5iOC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKPguLDguKfguLTguYLguKPguIjguJnguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lij4Liy4LiK4LmB4Lie4LiX4Lii4Liy4LiE4LihDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4o+C4t+C4reC4h+C5guC4o+C4iOC4meC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKXguLTguILguLTguJXguKfguLTguJfguKLguKjguLHguIHguJTguLTguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lil4Li34Lit4Lie4Lix4LiS4LiZ4Liq4Li44LiCDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4peC5iOC4q+C5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKnguYzguJ7guLTguJ7guLHguJLguJnguYzguJ7guIfguKnguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lin4LmI4Lit4LiH4Lit4LiZ4Lix4LiZ4LiV4LmM4Lin4Li04LiX4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4suC4meC4tOC4iuC4ouC4suC4h+C4geC4ueC4ow0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKfguLTguKfguLHguJLguJnguKjguLTguKPguLTguKjguLHguIHguJTguLTguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lio4Lij4Lio4Lij4Li14LiX4Lit4LiHDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4o+C4teC4quC4geC4suC4p+C4geC4uOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKjguLHguIHguJTguLTguYzguYLguKjguKDguJPguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lio4Li04Lij4Li04LmE4Lie4Lij4Lin4Lix4LiZDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4lOC5g+C4qg0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKrguKPguYTguIrguKLguYDguKHguJjguLINCivguKrguKHguKjguLHguIHguJTguLTguYwg4Liq4Lix4LiZ4LiX4Lix4LiV4LmA4Lin4LiKDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4tOC4meC4iuC4seC4ouC4lOC4tQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKrguLjguILguJzguJTguLjguIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Liq4Li44LiX4LiY4Li04Lic4Lil4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguKrguLfguK3guYLguJXguIfguLLguKENCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmC4Liq4LiV4LiW4Li04LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4p+C4seC4h+C5guC4i+C5iuC4sA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguKvguKXguLfguK3guIfguYDguIjguKPguLTguI3guKfguLHguJLguJnguLINCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lit4Lig4Li04LiI4Liy4Lij4Li1DQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4o+C4uOC4k+C4o+C4seC4leC4meC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguK3guLHguKjguKfguKLguLjguJfguJjguJ7guKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lit4Li04LiH4LiE4LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4uOC4leC4oeC4sA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguK3guLfguYnguK3guKPguLLguKjguLXguIHguLjguKUNCivguKrguKHguKjguLTguKPguLQg4Lie4Lix4LiS4LiZ4Lib4Lij4Liw4Lig4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Lih4Lip4LijIOC4l+C4reC4h+C4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4quC4oeC4quC4meC4tOC4lyDguJXguLLguKHguJ7guKMNCivguKrguKHguKrguKHguLHguKIg4LiY4Liw4LmA4Lio4Lij4Lip4LiQDQor4Liq4Lih4Liq4Lij4Li1IOC4nuC4h+C4qOC5jOC5geC4nuC4l+C4ouC5jOC4nuC4tOC4meC4tOC4iA0KK+C4quC4oeC4quC5iOC4p+C4mSDguInguLLguKLguLLguKXguLHguIHguKnguJPguYwNCivguKrguKHguKrguLTguJfguJjguLTguYwg4Lin4Li04LmA4LiK4Lip4LiZ4Lil4Li04LiZ4Lin4LiH4Lip4LmMDQor4Liq4Lih4Liq4Li44LiCIOC4guC4seC4meC4leC4tOC4reC4uOC4lOC4oQ0KK+C4quC4oeC4quC4uOC4giDguJ7guKPguLLguKHguYDguIjguKPguLTguI0NCivguKrguKHguKrguLjguIIg4Liq4Li04LiB4LiC4Lib4Lix4LiN4LiN4LiyDQor4Liq4Lih4Lir4LiN4Li04LiHIOC4l+C4teC4m+C4sOC4quC4oeC4muC4seC4leC4tA0KK+C4quC4oeC4q+C4oeC4suC4oiDguIHguKXguLTguYjguJnguYHguIjguYjguKENCivguKrguKHguKvguKHguLLguKIg4LmA4LiC4LiV4Lij4LiE4LiHDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4iOC4tOC4leC4leC4tOC4p+C4seC4kuC4meC4geC4uOC4pQ0KK+C4quC4oeC4q+C4oeC4suC4oiDguIrguLTguJnguKfguLTguIrguLINCivguKrguKHguKvguKHguLLguKIg4LiU4Liy4Lia4LiX4Lit4LiH4LiU4Li1DQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4l+C4p+C4teC4quC4uOC4l+C4mOC4tOC5jA0KK+C4quC4oeC4q+C4oeC4suC4oiDguJnguLLguITguKrguKHguJrguLnguKPguJPguYwNCivguKrguKHguKvguKHguLLguKIg4Lib4Lij4Liw4Lig4Liy4LiB4LijDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4nuC4peC4suC4ouC5gOC4oeC4t+C4reC4hw0KK+C4quC4oeC4q+C4oeC4suC4oiDguKDguKPguLLguKPguLHguJXguJnguKfguLHguJLguJnguYwNCivguKrguKHguKvguKHguLLguKIg4LmE4Lih4LmJ4LmA4LiB4LiV4Li4DQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4peC4sOC4reC4reC4h+C4qOC4o+C4tQ0KK+C4quC4oeC4q+C4oeC4suC4oiDguKfguYLguKPguJTguKHguKfguLTguJfguKLguLINCivguKrguKHguKvguKHguLLguKIg4Liq4Lit4LiZ4Lin4Li04LiX4Lii4LmMDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4quC4uOC4lOC4guC4suC4pw0KK+C4quC4oeC4q+C4oeC4suC4oiDguKvguKfguLHguIfguJfguK3guIcNCivguKrguKHguKvguKHguLLguKIg4Lit4Li04LiX4LiY4Li04Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC5gOC4geC4qeC4oeC5guC4geC4quC4tOC4meC4l+C4o+C5jA0KK+C4quC4oeC4q+C4p+C4seC4hyDguIrguLjguJnguYDguIjguKPguLTguI0NCivguKrguKHguKvguKfguLHguIcg4LiZ4Lix4LiZ4LiV4LmM4LiI4Liy4Lij4Li44Lin4LiH4Lio4LmMDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC5gOC4nuC4iuC4o+C4nuC4tOC4meC4tOC4iOC4p+C4h+C4qOC5jA0KK+C4quC4oeC4q+C4p+C4seC4hyDguKXguK3guKHguLLguYDguKXguLANCivguKrguKHguKvguKfguLHguIcg4Liq4Liy4LiY4Li04LiV4Lit4LmA4LiZ4LiB4LiK4Lix4LiiDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC4reC4o+C4uOC4k+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4reC4suC4iCDguK3guKLguLnguYjguIHguLTguIjguJXguLTguIrguLHguKINCivguKrguKHguLHguITguKMg4LiV4Lix4LmJ4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4LihDQor4Liq4Lih4Lix4LiE4LijIOC4oeC4uOC5iOC4h+C4q+C4oeC4suC4og0KK+C4quC4oeC4seC4hOC4oyDguK3guLTguJnguJfguKPguKjguLTguKXguJvguYwNCivguKrguKHguLHguKIg4LmA4LiC4Li14Lii4Lin4Liq4Liw4Lit4Liy4LiUDQor4Liq4Lih4Lix4LiiIOC5geC4i+C5iOC4iOC4seC4hw0KK+C4quC4oeC4seC4oiDguJnguLTguKXguYLguJUNCivguKrguKHguLHguKIg4LmA4Lie4Li04LmI4Lih4Lie4Li54Lil4Lin4Li04LiX4Lii4LiyDQor4Liq4Lih4Lix4LiiIOC5gOC4peC4tOC4qOC4geC4peC4suC4hw0KK+C4quC4oeC4seC4oiDguKrguLXguJfguLUNCivguKrguKHguLHguKIg4Lit4Li44LiT4Lir4Lie4Lix4LiZ4LiYDQor4Liq4Lih4Liy4LiZIOC4geC4tOC5iOC4h+C4nuC4o+C5hOC4nuC4meC4tOC4nuC4seC4kuC4meC5jA0KK+C4quC4oeC4suC4mSDguITguYnguLLguITguKXguYjguK3guIcNCivguKrguKHguLLguJkg4LmA4LiI4LiZ4LiZ4Lig4LiyDQor4Liq4Lih4Liy4LiZIOC5gOC4i+C5h+C4meC5gOC4iuC4suC4p+C4meC4tOC4ig0KK+C4quC4oeC4suC4mSDguYLguJXguIHguKPguLDguIjguYjguLLguIcNCivguKrguKHguLLguJkg4LiY4Li54Lib4LmA4LiX4Li14Lii4LiZDQor4Liq4Lih4Liy4LiZIOC4muC4uOC4qeC4ouC4l+C4o+C4tOC4geC4suC4geC4o+C4k+C5jA0KK+C4quC4oeC4suC4mSDguJ7guKXguLXguJrguLHguJXguKMNCivguKrguKHguLLguJkg4Lih4LmI4Lin4LiH4Liq4Li14LiV4Lit4LiHDQor4Liq4Lih4Liy4LiZIOC5geC4ouC5ieC4oeC5gOC4geC4qeC4ow0KK+C4quC4oeC4suC4mSDguYDguKXguLXguYnguKLguIfguJvguKPguLDguKLguLnguKMNCivguKrguKHguLLguJkg4Lio4Li04Lij4Li04LmE4Lie4Lie4Lij4Lij4LiTDQor4Liq4Lih4Liy4LiZIOC4quC4teC4l+C4sg0KK+C4quC4oeC4suC4mSDguYLguKrguJTguYnguKfguIcNCivguKrguKHguLLguJkg4Lit4Lix4Lia4LiU4Li44Lil4LmA4Lil4Liy4Liw4Lir4LmMDQor4Liq4Lih4Liy4LiZ4Lie4LilIOC4reC4ouC4ueC5iOC4reC5iOC4reC4mQ0KK+C4quC4oeC4suC4o+C4uOC4lSDguKHguLDguKPguLjguKXguLUNCivguKrguKHguLTguJUg4Lin4Lij4Lih4LiH4LiE4LilDQor4Liq4Lih4Li04LiX4LiY4Li04LmMIOC4quC4q+C4meC4suC4p+C4tOC4mQ0KK+C4quC4oeC4uOC4l+C4oyDguYHguJ7guKPguKHguJPguLUNCivguKrguKHguYDguIHguKXguLXguKLguKcg4Lia4Li44LiN4LiE4LiHDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4geC4tOC4leC4leC4tOC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguILguKfguLHguI3guJTguLUNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LiH4Liy4Lih4LmA4Liq4LiH4Li14LmI4Lii4LihDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4iOC4tOC4o+C4o+C4seC4leC4meC4iuC4suC4jQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguIrguKfguKXguLTguJXguIjguLTguKPguLLguJ7guLHguJnguJjguLjguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmE4LiK4Lii4Liq4Li04LiH4Lir4LmMDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5geC4i+C5iOC5gOC4muC5ig0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJXguLHguYnguIfguJXguKPguIfguIjguLTguJXguKPguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmE4LiV4Lij4Lij4Lix4LiV4LiZ4LmM4LiX4Lin4Li14Liq4Li44LiCDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5geC4l+C5iOC4meC4l+C4reC4hw0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJnguLTguKPguLHguJnguJTguKPguYzguKfguIfguKjguYzguKfguLLguJkNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lib4Lij4Liw4LiB4Lit4Lia4Liq4Li44Lie4Lij4Lij4LiTDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4nOC4peC4p+C4tOC5gOC4qOC4qeC4iuC4seC4ouC4geC4uOC4pQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJ7guLHguJnguJjguLjguYzguKjguLTguKPguLQNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lif4Li54LiB4Lij4Liw4LmA4LiU4Li34LmI4Lit4LiHDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5gOC4oeC4t+C4reC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKPguLjguIjguLTguKPguKfguLHguJLguJnguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmA4Lil4Li04Lio4Lil4Lia4LiY4Liy4LiV4Lij4Li1DQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4p+C4seC4kuC4meC4mOC4o+C4o+C4oQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKjguKPguJfguKPguIcNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lio4Li44Lig4LmC4LiB4Lin4Li04LiXDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4quC4tOC4h+C4q+C5jOC5geC4geC5ieC4pw0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKrguLjguKPguYDguIrguKnguJDguYzguIHguLTguIgNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lir4Liy4LiN4Lig4Lix4LiX4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4reC4o+C4uOC5guC4k+C4l+C4seC4ouC4iOC4tOC4leC4ow0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguYDguK3guJnguJfguLDguKHguLTguJkNCivguKrguKHguYDguIjguJUg4LmA4LiB4LiV4Li44LmB4LiB4LmJ4LinDQor4Liq4Lih4LmA4LiI4LiV4LiZ4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4quC4oeC5gOC4iOC4leC4meC5jCDguJjguLPguKPguIfguKPguLLguIrguJnguLTguJXguLQNCivguKrguKHguYDguIjguJXguJnguYwg4LmA4Lil4Li04Lio4Lie4Lil4Liy4Lie4LiH4Lio4LmMDQor4Liq4Lih4LmA4LiI4LiV4LiZ4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4reC4mOC4tOC4pOC4l+C4mOC4tOC5jA0KK+C4quC4oeC5gOC4lOC5h+C4iCDguKrguLfguJrguYDguKvguKXguYjguLLguKPguJoNCivguKrguKHguYDguJTguIog4LiU4Li44Lil4Lii4Lit4LiZ4Li44LiB4Li04LiIDQor4Liq4Lih4LmA4LiU4LiKIOC4oeC4k+C4teC5hOC4oeC4leC4o+C4teC4iOC4tOC4lQ0KK+C4quC4oeC5gOC4lOC4iiDguKrguLjguKfguKPguKPguJPguJnguLLguIQNCivguKrguKHguYDguJ7guYfguIrguKMg4LiY4Lij4Lij4Lih4LiW4Liy4Lin4Lij4Lin4LiT4Li04LiKDQor4Liq4Lih4LmA4Lir4Lih4Li34Lit4LiZIOC4m+C4o+C4sOC5hOC4nuC4ouC5jA0KK+C4quC4oeC5guC4iuC4hCDguKXguLTguYnguKHguYDguIjguKPguLTguI0NCivguKrguKHguYLguJ7guJjguLQg4Liq4Lij4Lix4LiE4LiE4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lih4LmC4Lig4LiKIOC5gOC4m+C4peC4teC5iOC4ouC4meC4muC4suC4h+C4ouC4suC4hw0KK+C4quC4oeC5guC4oOC4iuC4meC5jCDguYHguIHguYjguJnguJfguK3guIfguYHguJTguIcNCivguKrguKHguYLguKDguIrguJnguYwg4LmB4LiV4LiH4Lia4Li44LiV4LijDQor4Liq4Lih4LmC4Lig4LiK4LiZ4LmMIOC4nuC4uOC4kuC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4oeC5guC4oOC4iuC4meC5jCDguKjguKPguLXguJjguJnguKrguLjguIHguLLguI3guIjguJnguYwNCivguKrguKHguYLguKDguIrguJnguYwg4Lit4Lix4Lio4Lin4Lio4Li04Lij4Li04LmC4Lij4LiI4LiZ4LmMDQor4Liq4Lih4LmD4LiIIOC4geC4suC4jeC4iOC4meC4sOC4p+C4suC4qA0KK+C4quC4oeC5g+C4iCDguILguLPguKvguLLguI0NCivguKrguKHguYPguIgg4LiI4Lix4LiZ4LiX4Lij4LmM4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Lih4LmD4LiIIOC5gOC4iOC4teC4ouC4oeC4qOC4uOC4oOC4geC4tOC4leC4leC5jA0KK+C4quC4oeC5g+C4iCDguIrguLfguYjguJnguK3guLLguKPguKHguKLguYwNCivguKrguKHguYPguIgg4LmB4LiL4LmI4Lii4LmI4Lit4LiHDQor4Liq4Lih4LmD4LiIIOC4kOC4tOC4p+C4o+C4tOC4meC4l+C4o+C5jA0KK+C4quC4oeC5g+C4iCDguJXguLHguJnguIrguLLguKXguLUNCivguKrguKHguYPguIgg4LiX4Lit4LiH4Lij4Lit4LiUDQor4Liq4Lih4LmD4LiIIOC4meC4seC4meC4l+C4qOC4tOC4peC4m+C4iuC4seC4og0KK+C4quC4oeC5g+C4iCDguJrguLjguI3guKPguLHguJXguJnguYDguJnguJXguKMNCivguKrguKHguYPguIgg4Lib4Li04Lii4Liw4Lij4Lix4LiH4Lip4Li1DQor4Liq4Lih4LmD4LiIIOC4nuC4p+C4h+C4l+C4reC4hw0KK+C4quC4oeC5g+C4iCDguJ/guK3guIfguIjguLHguJnguJfguKPguYwNCivguKrguKHguYPguIgg4Lih4Li14Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Lih4LmD4LiIIOC4o+C4t+C5iOC4meC5gOC4o+C4tOC4hw0KK+C4quC4oeC5g+C4iCDguYDguKXguLXguKLguIfguKfguLHguJLguJnguITguKUNCivguKrguKHguYPguIgg4Lin4Li04Lin4Lix4LiS4LiZ4LmM4Lin4Liy4LiZ4Li04LiKDQor4Liq4Lih4LmD4LiIIOC4qOC4tOC4o+C4tOC4geC4oeC4peC4oeC4suC4qA0KK+C4quC4oeC5g+C4iCDguKrguKfguYjguLLguIfguYHguKrguJnguKrguLjguIINCivguKrguKHguYPguIgg4Liq4Li44LiC4LmA4Liq4Lij4Li04Lih4Liq4LiB4Li44LilDQor4Liq4Lih4LmD4LiIIOC4q+C4h+C4qeC4suC4hOC4o+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC5g+C4iCDguK3guKHguLLguJXguKLguIHguLjguKUNCivguKrguKHguYPguIgg4LmA4Lit4Li14Lii4LiB4Liy4Lij4LiZ4LiyDQor4Liq4LmJ4Lih4LiI4Li14LiZIOC4meC4tOC5iOC4oeC4p+C4tOC4muC4ueC4peC4ouC5jOC4quC4oQ0KK+C4quC5ieC4oeC5gOC4geC4peC4teC5ieC4ouC4hyDguKrguKPguYnguLLguIfguKrguLjguILguJTguLUNCivguKrguKLguLLguKEg4LiC4Liz4LmB4Lib4LmJ4LiHDQor4Liq4Lii4Liy4LihIOC4quC4suC4hOC4ow0KK+C4quC4ouC4uOC4oeC4nuC4oyDguKPguLHguKjguKHguLXguJjguLLguKPguLINCivguKrguKPguIrguLHguKIg4LmC4Lie4LiY4Li04LmM4LiK4Lix4LiiDQor4Liq4Lij4LiZ4LieIOC4iuC4p+C4meC4muC4uOC4jQ0KK+C4quC4o+C4oOC4seC4oiDguYHguIvguYjguYDguKvguKXguLXguYjguKLguKcNCivguKrguKPguKPguITguYzguIrguLHguKIg4LmA4LiE4LmJ4Liy4LiJ4Li04LihDQor4Liq4Lij4Lij4LiK4Lix4LiiIOC4l+C4reC4h+C5g+C4iA0KK+C4quC4o+C4o+C4nuC4iuC4seC4oiDguJ7guLTguJfguLHguIHguKnguLLguIHguKMNCivguKrguKPguKPguLHguIHguKnguYwg4Lic4LmI4Lit4LiH4LmD4LiqDQor4Liq4Lij4Lij4LmA4Liq4Lij4Li04LiNIOC4iuC4p+C4meC4m+C4o+C4sOC4nuC4seC4meC4mOC5jA0KK+C4quC4o+C4o+C5gOC4quC4o+C4tOC4jSDguYHguKrguIfguJTguLLguKcNCivguKrguKPguKfguIfguKrguLjguJTguLIg4LiE4LmJ4Liz4LiI4Li44LiZDQor4Liq4Lij4Lin4Li44LiS4Li0IOC4mOC4meC5gOC4guC4oeC4oOC4seC4l+C4ow0KK+C4quC4o+C4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYDguJrguYoNCivguKrguKPguKjguLHguIHguJTguLTguYwg4Lil4Liy4Lig4Lij4Lix4LiV4LiZ4LmE4LiV4LijDQor4Liq4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4reC4teC5iOC4ouC4oeC5guC4quC4oOC4k+C4sg0KK+C4quC4o+C5ieC4reC4oiDguJXguLHguJnguYDguIjguKPguLTguI0NCivguKrguKPguYnguK3guKLguJfguLTguJ7guKLguYwg4LiE4LiH4LiW4Liy4Lin4Lij4Liq4LiB4Li44LilDQor4Liq4Lij4LmJ4Lit4Lii4Liq4LitIOC4quC4uOC4p+C4o+C4o+C4k+C4meC5ieC4reC4og0KK+C4quC4o+C4seC4jeC4jeC4sOC4p+C4h+C4qeC5jCDguYDguIHguJXguLjguInguLHguJXguKPguLLguKPguLTguKLguLDguIHguLjguKUNCivguKrguKPguLHguI3guJjguKMg4Liq4Lih4Lib4Lij4Liw4LiB4Lit4LiaDQor4Liq4Lij4Liy4LiN4LiX4Li04Lie4Lii4LmMIOC4iOC4suC4o+C4uOC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC4hOC4uOC4kw0KK+C4quC4o+C4suC4ouC4uOC4l+C4mCDguKrguLHguIfguILguYzguKfguLTguYDguKjguKkNCivguKrguKPguLLguKfguLjguJLguLQg4LmA4LiB4Lip4LiT4Li14Lii4Lia4Li44LiV4LijDQor4Liq4Lij4Liy4Lin4Li44LiYIOC5hOC4iuC4ouC4quC4p+C5iOC4suC4h+C4qOC4tOC4peC4m+C5jA0KK+C4quC4o+C4suC4p+C4uOC4mCDguKHguJPguLXguYDguKrguLLguKfguJnguJ4NCivguKrguKPguLLguKfguLjguJgg4LmA4Lit4Li14LmI4Lii4Lih4Liq4LiH4LiE4Lij4Liy4LihDQor4Liq4Lij4Li04LiZ4LiX4Li04Lie4Lii4LmMIOC4q+C4uOC5iOC4meC4qOC4suC4quC4leC4o+C5jA0KK+C4quC4o+C4teC4ouC4siDguJfguK3guIfguIHguKPguLDguIjguYjguLLguIfguYDguJnguJXguKMNCivguKrguKTguKnguI/guJ7guKMg4LiZ4Li04LiE4Lih4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LmMDQor4Liq4Lil4Lin4LiiIOC4hOC4iuC4o+C4seC4leC4meC5jA0KK+C4quC4peC4sCDguJTguLDguYDguIfguLLguLANCivguKrguKXguLAg4Lij4Lit4LiU4Lib4Lij4Liy4LiT4Li1DQor4Liq4Lil4Lix4LiB4LiI4Li04LiVIOC4mOC4o+C4o+C4oeC5gOC4geC4qeC4ow0KK+C4quC4peC4suC4oSDguYDguIjguYrguLDguYDguIvguYfguJkNCivguKrguKXguLTguKXguYLguKPguIjguJnguYwg4Lij4Li44LmI4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Lin4LiHIOC5guC4iuC4hOC4oeC4seC5iOC4h+C4oeC4tQ0KK+C4quC4p+C4hyDguJ7guKfguIfguJ7guLTguKHguLLguKINCivguKrguKfguIcg4Liq4Lix4LiN4LiB4Lij4LiT4LmMDQor4Liq4Lin4LiH4LiE4LmMIOC4m+C4o+C4suC4muC4nuC4uOC4l+C4mOC4iOC4sg0KK+C4quC4p+C4lOC4tSDguKHguLLguJnguLDguJnguLTguJXguKLguYwNCivguKrguKfguJnguLXguKLguYwg4Lin4LiH4Lip4LmM4LmA4Lin4LiX4Lii4LmMDQor4Liq4Lin4Lij4Lij4LiE4LmMIOC4hOC4oeC4quC4seC4mQ0KK+C4quC4p+C4o+C4o+C4ouC4siDguJnguLHguJnguJfguYTguJXguKPguYDguJTguIoNCivguKrguKfguKXguLUg4Lit4Li04Lio4Lij4Liy4LiH4LiB4Li54LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguKfguLHguKrguJTguLTguYzguYDguIHguLXguKLguKPguJXguLQg4Liq4Lin4LmI4Liy4LiH4Lio4Lij4Li1DQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4guC4leC4tOC4ouC4sOC4quC4uOC4meC4l+C4ow0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguIjguYjguLLguIfguYDguIjguKPguLTguI0NCivguKrguKfguLHguKrguJTguLTguYwg4LiK4LmI4Liy4LiH4Lir4Lil4LmI4LitDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4leC5ieC4meC4o+C4seC4qOC4oeC4tQ0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguJjguJnguLLguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguKrguKfguLHguKrguJTguLTguYwg4Lia4Li44LiN4Lii4Lij4Lix4LiV4Lib4Lij4Liw4Lig4LiyDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4nOC4uOC4h+C5gOC4nuC4tOC5iOC4oeC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguYDguJ7guIrguKPguJXguKPguLDguIHguLnguKUNCivguKrguKfguLHguKrguJTguLTguYwg4Lih4Liy4Lil4Li14Lin4Li04Lil4Liy4LioDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4pOC4l+C4mOC4tOC5jOC4l+C4reC4h+C4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguKfguLTguYTguKXguKPguLLguIfguIHguLnguKMNCivguKrguKfguLHguKrguJTguLTguYwg4Liq4Lih4Lia4Li54Lij4LiT4LmM4LiK4Lix4Lii4Lin4LiH4Lio4LmMDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4quC4uOC4guC4l+C4seC5iOC4p+C4jeC4suC4leC4tA0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguKvguJnguLnguYTguIrguKLguLINCivguKrguKfguLHguKrguJTguLTguYwg4Lit4Li04LiZ4LiX4Lib4Li44Lij4LiwDQor4Liq4Lin4Liy4LiXIOC5gOC4geC4leC4uOC4m+C4suC4o+C4sA0KK+C4quC4p+C4suC4lyDguJfguKPguLHguJ7guKLguYzguKHguLLguIENCivguKrguKfguLLguJcg4Lih4LiH4LiE4Lil4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Lin4Liy4LiXIOC4q+C4h+C4qeC5jOC5gOC4geC4teC4ouC4o+C5jA0KK+C4quC4p+C4suC4quC4lOC4tOC5jCDguKPguKHguJPguLXguKLguJjguKPguKPguKENCivguKrguKfguYjguLLguIcg4LiI4Lix4LiZ4LiX4Lij4LiyDQor4Liq4Lin4LmI4Liy4LiHIOC4leC5iOC4reC4quC4q+C4sOC4geC4uOC4pQ0KK+C4quC4p+C5iOC4suC4hyDguJvguLbguIHguILguLLguKcNCivguKrguKfguYjguLLguIcg4Lij4Lix4Lio4Lih4Li14LiJ4Liy4LiiDQor4Liq4Lin4LmI4Liy4LiHIOC4quC4suC4oeC5guC4geC5gOC4qOC4qA0KK+C4quC4p+C5iOC4suC4h+C4geC4tOC4iCDguK3guKHguKPguLLguIrguLXguKfguLANCivguKrguKfguYjguLLguIfguIjguLTguJXguKMg4Liq4Lin4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Lin4Li04LiHIOC5gOC4geC4leC4uOC5guC4geC4oeC4uOC4lw0KK+C4quC4p+C4tOC4hyDguYDguKXguLXguYnguKLguIfguJrguLPguKPguLjguIcNCivguKrguKfguLTguJkg4LiX4Li04Lih4Lih4LiT4Li14LiJ4Liy4LiiDQor4Liq4Liq4Li04LiY4LijIOC4meC4suC4geC4quC4uOC4gQ0KK+C4quC4q+C4o+C4seC4kCDguYTguIrguKLguYDguJzguLfguK3guIENCivguKrguKvguLHguKog4LmA4LiK4Li34LmJ4Lit4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Lir4Lix4Liq4LiK4Lix4LiiIOC4o+C4seC4iuC4leC5guC4nuC4mOC4tOC5jA0KK+C4quC4reC4lOC4qOC4o+C4tSDguIjguLHguJnguJfguKPguYzguIHguKPguLDguIjguYjguLLguIcNCivguKrguK3guJkg4Lio4Lij4Li14LmA4LiZ4LiV4LijDQor4Liq4Lit4Liy4LiH4LiE4LmMIOC4hOC4iuC5gOC4quC4meC4tQ0KK+C4quC4reC4suC4lCDguIHguLLguI3guIjguJnguK3guLjguJTguKENCivguKrguK3guLLguJQg4LiI4Li14LiZ4Liw4Lin4Liy4LiZ4Li04LiKDQor4Liq4Lit4Liy4LiUIOC5gOC4l+C4qOC4reC4tOC4meC4l+C4o+C5jA0KK+C4quC4reC4suC4lCDguJ7guKPguJ7guIfguKnguYwNCivguKrguK3guLLguJQg4Lii4Lix4LmI4LiH4Lii4Li34LiZDQor4Liq4Lit4Liy4LiUIOC4quC4geC4uOC4oeC4sg0KK+C4quC4reC4suC4lCDguYDguKvguKXguLXguKLguKfguK3guLTguJnguJfguKPguYwNCivguKrguK3guLTguYnguIcg4LiB4Lit4LiH4Lir4Li04Lij4Lix4LiNDQor4Liq4Lit4Li04LmJ4LiHIOC4muC4uOC4jeC4mOC4o+C4o+C4oQ0KK+C4quC4reC4tOC5ieC4hyDguKjguKPguLXguJ7guJnguKENCivguKrguYjguK3guIfguKjguKPguLUg4LiH4Liy4Lih4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Liw4LiV4Liy4Lil4Li14Lij4Liy4Lir4LmMIOC4muC4ueC4i+C4seC4pQ0KK+C4quC4sOC4q+C4oeC4seC4lCDguYDguKXguLLguLDguKjguLTguKPguLQNCivguKrguLDguK3guLLguJQg4LiW4LiZ4Lit4Lih4Lin4LiH4Lio4LmMDQor4Liq4Liw4Lit4Liy4LiUIOC4p+C4h+C5gOC4p+C4teC4ouC4mQ0KK+C4quC4sOC4reC4suC4o+C4tSDguYHguKfguKHguLnguJTguK0NCivguKrguLDguYPguJog4Lih4Liw4Lil4Li04LmD4LiIDQor4Liq4Lix4LiE4LiE4LmMIOC4o+C4seC4leC4meC4mOC4o+C4suC4mOC4ow0KK+C4quC4seC4h+C4guC5jCDguYDguJzguYjguLLguJ7guLTguKHguJ7guLINCivguKrguLHguIfguITguKEg4Lij4Liy4Lio4Lij4Li1DQor4Liq4Lix4LiH4Lin4LijIOC5gOC4nuC4iuC4o+C4m+C4o+C4sOC4quC4oQ0KK+C4quC4seC4h+C4p+C4o+C4k+C5jCDguKfguLDguYDguIHguLTguJTguYDguJvguYnguIcNCivguKrguLHguIfguKfguLLguKXguKLguYwg4LiB4Lil4Li04LmI4LiZ4Lih4Liy4Lil4Lix4LiiDQor4Liq4Lix4LiH4Lin4Liy4Lil4Lii4LmMIOC4iOC4teC5iOC5gOC4nuC4iuC4ow0KK+C4quC4seC4h+C4p+C4suC4peC4ouC5jCDguJnguLHguKLguKjguLTguKPguLQNCivguKrguLHguIfguKfguLLguKXguKLguYwg4LmA4Lie4LmH4LiK4Lij4LiZ4Li44LiKDQor4Liq4Lix4LiH4Lin4Liy4Lil4Lii4LmMIOC4qOC4o+C4teC4muC4uOC4leC4ow0KK+C4quC4seC4h+C4p+C4suC4peC4ouC5jCDguK3guKDguLHguKLguKDguLHguIHguJTguLTguYwNCivguKrguLHguIfguYDguKfguLXguKLguJkg4LiB4LmJ4Lit4LiH4LmA4Lin4Lir4Liy4Liq4Li04LiH4Lir4LilDQor4Liq4Lix4LiH4LmA4Lin4Li14Lii4LiZIOC5gOC4iuC4suC4p+C4peC4tOC4lQ0KK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mSDguJrguLjguI3guYDguKrguIfguLXguYjguKLguKENCivguKrguLHguIfguYDguKfguLXguKLguJkg4Lil4Liy4Lig4Lie4Li04LmA4Lio4LipDQor4Liq4Lix4LiH4LmA4Lin4Li14Lii4LiZIOC5geC4q+C4peC5iOC4h+C4q+C4peC5ieC4sg0KK+C4quC4seC4iOC4iOC4sCDguKTguJfguJjguLTguIHguLjguKXguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLHguIjguIjguLIg4Liq4LiW4Li04Lij4Liy4Lin4Li44LiYDQor4Liq4Lix4LiN4LiK4Lix4LiiIOC4hOC4peC5ieC4suC4ouC4iuC4uOC4oeC5geC4quC4hw0KK+C4quC4seC4jeC4iuC4seC4oiDguYDguJjguLXguKLguKPguKrguKfguLHguKrguJTguLTguYzguIHguLTguIgNCivguKrguLHguI3guIrguLHguKIg4Lil4Li04LiC4Li04LiV4Lil4Lix4LiN4LiJ4LiB4LijDQor4Liq4Lix4LiN4LiK4Lix4LiiIOC5gOC4q+C4oeC4m+C4o+C4sOC4iuC4tOC4leC4iuC4seC4og0KK+C4quC4seC4jeC4jeC4siDguITguKXguYnguLLguKLguIjguLTguJnguJTguLINCivguKrguLHguI3guI3guLIg4LiZ4Li44LmI4Lih4LmB4Liq4LiHDQor4Liq4Lix4LiN4LiN4LiyIOC4o+C4seC4qOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4seC4jeC4jeC4siDguKrguLjguILguJ7guJPguLTguIrguJnguLHguJnguJfguYwNCivguKrguLHguJPguIrguLLguKIg4Lin4Li04Liq4Li44LiX4LiY4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lix4LiT4Lir4LmMIOC4meC4tOC4p+C4suC4quC4sOC4p+C4seC4lQ0KK+C4quC4seC4leC4ouC4siDguKjguKPguLXguK3guYjguK3guJkNCivguKrguLHguJnguJDguLHguJfguJLguYwg4LiX4Lit4LiH4Lih4LiyDQor4Liq4Lix4LiZ4LiV4Li0IOC4geC4seC4k+C4meC4geC4tOC4iA0KK+C4quC4seC4meC4leC4tCDguITguLjguJXguJXguLDguKrguLTguIfguITguLUNCivguKrguLHguJnguJXguLQg4LiI4Li04LiZ4LiU4Liy4LiE4Lih4LiZ4LmMDQor4Liq4Lix4LiZ4LiV4Li0IOC4iuC4uOC5iOC4oeC4p+C4o+C4o+C4k+C5jA0KK+C4quC4seC4meC4leC4tCDguJXguJXguLTguKLguJXguKTguKnguJPguLINCivguKrguLHguJnguJXguLQg4LiX4Lij4LiH4Lio4Li04Lij4Li0DQor4Liq4Lix4LiZ4LiV4Li0IOC4meC4tOC4oeC4oeC4suC4meC4meC4tOC4leC4ouC5jA0KK+C4quC4seC4meC4leC4tCDguJzguKXguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLHguJnguJXguLQg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4Liq4Lix4LiZ4LiV4Li0IOC5gOC4ouC5h+C4meC4quC4luC4tOC4leC4ouC5jA0KK+C4quC4seC4meC4leC4tCDguYDguKXguLTguKjguKrguIHguLjguKXguJ7guLHguJnguJjguYwNCivguKrguLHguJnguJXguLQg4Lin4Li04LmE4Lil4LiZ4Liz4LmC4LiK4LiE4LiK4Lix4LiiDQor4Liq4Lix4LiZ4LiV4Li0IOC4quC4leC4suC5gOC4guC4lQ0KK+C4quC4seC4meC4leC4tCDguKrguLjguILguKHguLLguIENCivguKrguLHguJnguJXguLQg4Lir4Lin4Lix4LiH4Liq4Li44LiZ4LiX4LijDQor4Liq4Lix4LiZ4LiV4Li0IOC4reC4suC4oOC4suC4quC4geC4uOC4peC5gOC4lOC4ig0KK+C4quC4seC4meC4leC4tOC4iuC4seC4oiDguJfguK3guIfguILguLLguKcNCivguKrguLHguJnguJXguLTguJ7guIfguKnguYwg4LiZ4Li04Lih4Li04LiV4Lij4LiU4Li1DQor4Liq4Lix4LiZ4LiV4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4mOC4seC4jeC4jeC4suC4q+C4suC4ow0KK+C4quC4seC4meC4leC4tOC5jCDguK3guLTguJnguJfguKPguYDguIHguKnguKENCivguKrguLHguJnguJXguYwg4LiY4LiZ4Lij4Lix4LiV4LiZ4LmM4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Lix4LiZ4LiV4LmMIOC5gOC4peC4tOC4qOC4m+C4tOC4ouC4sOC4muC4uOC4jQ0KK+C4quC4seC4meC4leC5jCDguK3guLHguIjguIjguLTguKHguLLguJjguKMNCivguKrguLHguJnguJfguJnguLIg4Lin4Li44LmI4LiZ4LiI4Li54LmK4LiUDQor4Liq4Lix4LiZ4LiX4Lix4LiUIOC4iOC4tOC4leC4leC4uOC4o+C4h+C4hOC5jOC4reC4suC4oOC4o+C4k+C5jA0KK+C4quC4seC4meC4l+C4seC4lCDguKrguLPguJnguLHguIHguJ7guIfguKnguYwNCivguKrguLHguJnguJjguLLguJkg4LiE4Liz4Lih4Li04LmI4LiHDQor4Liq4Lix4Lih4Lic4Lix4LiqIOC4hOC4iuC4p+C4h+C4qOC5jA0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguITguLPguJPguJ7guLHguJLguJnguYwNCivguKrguLHguKHguJ7guLHguJnguJjguYwg4LiL4Li44LmI4Lih4LmA4Liq4LiZ4LiyDQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMIOC4meC4meC4l+C4qOC4uOC4gg0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguJ7guLHguJnguJjguLjguYzguKHguJPguLUNCivguKrguLHguKHguJ7guLHguJnguJjguYwg4Lij4Li54LmJ4Lib4Lij4Liw4Lih4Liy4LiTDQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMIOC4quC4p+C5iOC4suC4h+C5geC4nOC5ieC4pw0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguKvguLTguKPguLHguI3guKPguLHguIHguKnguLINCivguKrguLHguKHguKHguLLguKPguLTguJnguJfguKPguYwg4LiV4Lix4LiZ4Lio4Lij4Li1DQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC4hOC4uOC4k+C5gOC4iOC4leC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jCDguJTguKfguIfguKrguLDguK3guLLguJQNCivguKrguLHguKHguKTguJfguJjguLTguYwg4LiZ4Li04LmI4Lih4Lit4LiZ4LiH4LiE4LmMDQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC4nuC4uOC4geC4nuC4seC4gQ0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jCDguYDguKXguLXguYjguKLguKHguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguKrguLHguKHguKTguJfguJjguLTguYwg4Liq4Li44LiC4LmD4LiqDQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC4reC4uOC4o+C4uOC4meC4suC4meC4meC4l+C5jA0KK+C4quC4suC4geC4pSDguKrguKPguKrguLjguJnguJfguKMNCivguKrguLLguITguKMg4LiE4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Liy4LiE4LijIOC5geC4lOC4h+C4quC4tQ0KK+C4quC4suC4hOC4oyDguJrguLHguKfguYDguJ7guIrguKMNCivguKrguLLguITguKMg4Lie4Li54LiZ4Lie4LiI4LiZ4LmM4Lih4Liy4LioDQor4Liq4Liy4LiE4LijIOC4peC4suC4oOC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4hOC4oyDguKrguLLguKPguIrguLLguJXguLQNCivguKrguLLguITguKMg4Lit4Li44LmI4LiZ4LiI4Li04LiV4LijDQor4Liq4Liy4LiX4Li04LiVIOC4qOC4o+C4teC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4suC4mOC4oyDguJvguLLguKXguLDguIHguLDguKfguIfguKnguYwNCivguKrguLLguJjguLTguJUg4LiI4Lix4LiZ4LiX4Lij4LiI4Li04LmC4Lij4LiI4LiZ4LmM4LiB4Li44LilDQor4Liq4Liy4LiY4Li04LiVIOC5gOC4leC5h+C4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4mOC4tOC4lSDguJ7guIfguKjguYzguKfguKPguLTguJnguJfguKPguYwNCivguKrguLLguJjguLTguJUg4Lil4Li14Lil4Liy4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTDQor4Liq4Liy4LiY4Li04LiVIOC4quC4uOC4l+C4mOC4tOC4p+C4uOC4kuC4tOC4meC4pOC5gOC4muC4qOC4o+C5jA0KK+C4quC4suC4mOC4tOC4meC4tSDguKfguLTguKXguLLguKfguKPguKPguJMNCivguKrguLLguJnguLTguJUg4LiZ4LmI4Lin4Lih4LiX4Lix4LiVDQor4Liq4Liy4LiZ4Li04LiV4Lii4LmMIOC4m+C4seC5ieC4meC4l+C4reC4hw0KK+C4quC4suC4oeC4iuC4seC4oiDguJ7guKfguIfguKrguLPguKXguLUNCivguKrguLLguKHguLLguKPguJYg4LiE4LiH4LiE4Liz4Liq4Li1DQor4Liq4Liy4Lih4Liy4Lij4LiWIOC4iuC4t+C5iOC4meC4oOC4seC4geC4lOC4tQ0KK+C4quC4suC4oeC4suC4o+C4liDguJnguKfguKXguKXguLDguK3guK3guIcNCivguKrguLLguKHguLLguKPguJYg4Lie4Lil4Liy4Lii4LmA4LiW4Li34LmI4Lit4LiZDQor4Liq4Liy4Lih4Liy4Lij4LiWIOC4o+C4seC4qOC4oeC4teC5guC4o+C4iOC4meC5jOC4p+C4h+C4qOC5jA0KK+C4quC4suC4oeC4suC4o+C4liDguKrguKfguYjguLLguIfguYHguKrguIcNCivguKrguLLguKHguLLguKPguJYg4Lit4Li04LiZ4LiX4Lij4LmA4LiX4LieDQor4Liq4Liy4LiiIOC4nuC4o+C4suC4q+C4oeC4k+C4sOC4meC4seC4meC4l+C4meC5jA0KK+C4quC4suC4ouC4iOC4tOC4lSDguIrguLHguKLguKHguIfguITguKUNCivguKrguLLguKLguIrguKUg4LiJ4Lix4LiV4Lij4LmB4LiB4LmJ4Lin4Lia4Lij4Li04Lia4Li54Lij4LiT4LmMDQor4Liq4Liy4Lii4LiK4LilIOC4nuC4uOC4geC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4ouC4iuC4pSDguKrguLjguILguKjguLLguJnguJXguLTguKrguIHguLjguKUNCivguKrguLLguKLguJfguK3guIcg4LiK4Lix4Lii4LiK4LiZ4LiwDQor4Liq4Liy4Lii4LiX4Lit4LiHIOC4oeC4tOC4reC4o+C4seC4jQ0KK+C4quC4suC4ouC4l+C4tOC4nuC4ouC5jCDguYDguIjguKPguLTguI3guIrguLHguKLguKjguKPguLUNCivguKrguLLguKLguJjguLLguKMg4Lio4Li44LiC4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Liy4Lii4Lia4Lix4LinIOC4nuC4peC4reC4ouC4h+C4suC4oQ0KK+C4quC4suC4ouC4neC4mSDguJXguLLguKXguLjguITguYDguJTguK3guKPguYwNCivguKrguLLguKLguJ3guJkg4Lin4Li04LmA4Lio4Lip4Lio4Li04Lij4Li0DQor4Liq4Liy4Lii4Lie4Li04LiTIOC4hOC4o+C4uOC4quC4suC4leC4sA0KK+C4quC4suC4ouC4nuC4tOC4kyDguYDguJbguLLguKrguLjguKfguKPguKPguJMNCivguKrguLLguKLguJ7guLTguJMg4Lie4Li44LmI4Lih4LmA4LiB4Lil4Li14LmJ4Lii4LiHDQor4Liq4Liy4Lii4Lie4Li04LiTIOC4qOC4o+C4teC5guC4o+C4iOC4meC5jA0KK+C4quC4suC4ouC4nuC4tOC4mSDguIrguKfguLLguKXguKrguLHguJnguJXguJXguLQNCivguKrguLLguKLguJ7guLTguJkg4Lit4Li04LiZ4LiX4Lij4Lir4LiwDQor4Liq4Liy4Lii4Lij4Li44LmI4LiHIOC4o+C4suC4oeC4p+C4tOC4meC4tOC4iA0KK+C4quC4suC4ouC4peC4oSDguJfguKPguLHguJ7guKLguYzguJnguLLguIQNCivguKrguLLguKLguKrguJnguKEg4Lin4Liy4LiI4LiZ4Liw4Lin4Li04LiZ4Li04LiIDQor4Liq4Liy4Lii4Liq4Lih4LijIOC5guC4leC5iuC4sOC4reC4suC4iA0KK+C4quC4suC4ouC4quC4oeC4oyDguKrguKHguJrguLnguKPguJPguYzguKLguLTguYjguIfguKrguLjguIINCivguKrguLLguKLguKrguKfguLLguJcg4Lia4Lix4Lin4LiB4Lil4LmI4LizDQor4Liq4Liy4Lii4Liq4Li44LiT4Li1IOC4guC4uOC4meC4l+C4reC4hw0KK+C4quC4suC4ouC4quC4uOC4lOC5g+C4iCDguJvguLTguYjguJnguIHguKXguYjguK3guKENCivguKrguLLguKLguKrguLjguJnguLXguKLguYwg4LiI4Li44LiV4Li04Lie4Li04LiX4Lix4LiB4Lip4LmM4Lin4LiH4Lio4LmMDQor4Liq4Liy4Lii4Liq4Li44LiZ4Li14Lii4LmMIOC4oOC4seC4geC4lOC4tOC5jOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4ouC4quC4uOC4meC4teC4ouC5jCDguK3guLHguKjguKfguYzguYTguIrguKLguJXguKPguLDguIHguLnguKUNCivguKrguLLguKLguKvguKLguLjguJQg4LiI4Lix4LiZ4LiX4LijDQor4Liq4Liy4Lii4Lir4Lii4Li44LiUIOC4mOC4tOC4meC4meC4l+C5jA0KK+C4quC4suC4ouC4q+C4ouC4uOC4lCDguYDguJ7guLTguYjguKHguKrguKHguJrguLHguJXguLQNCivguKrguLLguKLguKvguKLguLjguJQg4Liq4LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Liy4Lii4Lir4Lii4Li44LiUIOC5guC4reC4rOC4suC4o+C4quC4uOC4guC4quC4geC4uOC4pQ0KK+C4quC4suC4ouC4seC4k+C4q+C5jCDguIHguLHguKXguKLguLLguJPguKHguLTguJXguKMNCivguKrguLLguKLguLHguJPguKvguYwg4LiV4Lij4LiH4Lio4Li04Lij4Li04Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Liq4Liy4Lii4Lix4LiT4Lir4LmMIOC4nuC4seC4meC4mOC4uOC5jOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4quC4suC4ouC4seC4k+C4q+C5jCDguKfguIrguLTguKPguYDguJTguIrguYDguKrguJbguLXguKLguKMNCivguKrguLLguKLguLHguJPguKvguYwg4Lir4LiZ4Li54Lij4Liy4LiKDQor4Liq4Liy4Lii4Lix4LiZ4LiV4LmMIOC4hOC4h+C4hOC4uOC4kw0KK+C4quC4suC4ouC4seC4meC4leC5jCDguJ7guLjguJfguJjguKHguLINCivguKrguLLguKLguLHguJnguKvguYwg4Lil4Li14Lil4Liy4LiB4Li44Lio4Lil4Lin4LiH4Lio4LmMDQor4Liq4Liy4Lii4LmD4LiIIOC4hOC5ieC4s+C4iOC4uOC4mQ0KK+C4quC4suC4ouC5g+C4iCDguJfguK3guIfguJnguLLguIQNCivguKrguLLguKLguYPguIgg4LmA4Lie4Li14Lii4Lij4LmA4Liq4Lij4Li04Lih4LiB4Li04LiIDQor4Liq4Liy4Lii4LmD4LiIIOC4p+C4uOC4kuC4tOC4nuC4h+C4qOC5jA0KK+C4quC4suC4ouC5g+C4iCDguK3guKPguLjguJPguIrguLHguKINCivguKrguLLguKPguKDguLUg4LiE4LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Liy4Lij4Lig4Li1IOC5hOC4p+C4l+C4ouC5jOC4geC4uOC4pQ0KK+C4quC4suC4o+C4seC4iuC4leC5jCDguYDguJzguLfguYjguK3guJnguJvguJDguKENCivguKrguLLguKPguLTguJPguLUg4Lit4Lix4Lio4Lin4Li04LiZ4LiZ4Li04Lih4Li04LiV4LijDQor4Liq4Liy4Lil4Li04LiB4LiyIOC4mOC4meC4sOC4p+C4tOC4muC4ueC4peC4ouC5jOC4iuC4seC4og0KK+C4quC4suC4peC4tOC4meC4tSDguKrguLTguJXguLDguKLguLHguIcNCivguKrguLLguKXguLUg4Liq4Liy4LmC4Lij4Lin4Liy4LiXDQor4Liq4Liy4Lil4Li14LmIIOC5geC4i+C5iOC4ruC4seC5ieC4mQ0KK+C4quC4suC4peC4teC5iCDguYLguJ7guJjguLTguYDguKfguIrguIHguLjguKUNCivguKrguLLguKXguLXguYgg4LmB4Liq4LiH4LiJ4Liy4LiiDQor4Liq4Liy4Lin4Li04LiV4Lij4Li1IOC4geC4peC5iOC4reC4oeC5gOC4reC4teC5ieC4ouC4hw0KK+C4quC4suC4p+C4tOC4leC4o+C4tSDguJzguLTguKfguJzguYjguK3guIcNCivguKrguLLguKfguLTguJXguKPguLUg4Liq4Li04LiH4Lir4Lij4LiyIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguLLguKvguKPguYjguLLguKIg4LmE4LiK4Lii4Lih4Liy4LiV4LijDQor4Liq4Liy4LmC4Lij4LiI4LiZ4LmMIOC5guC4geC4oeC4peC4q+C4l+C4seC4og0KK+C4quC4suC5guC4o+C4iOC4meC5jCDguJfguK3guIfguKrguKfguKPguKPguITguYwNCivguKrguLLguYLguKPguIjguJnguYwg4Lie4Li24LmI4LiH4Liq4Li44LiCDQor4Liq4Liy4LmC4Lij4LiI4LiZ4LmMIOC4qOC4tOC4o+C4tOC5gOC4reC4teC5ieC4ouC4p+C4nuC4tOC4geC4ueC4pQ0KK+C4quC4suC5guC4o+C4iiDguYDguIjguKPguLTguI3guKjguKPguLUNCivguKrguLLguYLguKPguIog4LmA4Lil4Liy4Lin4LiB4Li44LilDQor4Liq4Liz4LiZ4Lin4LiZIOC4nOC4geC4suC5geC4geC5ieC4pw0KK+C4quC4s+C4o+C4p+C4iCDguJnguLTguKLguKHguYDguJTguIoNCivguKrguLPguKPguKfguKEg4Lia4Li44Lij4Li44Lip4Lij4Lix4LiV4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Liz4Lij4Lin4LihIOC4reC5iOC4reC4meC4oeC4tOC5iOC4hw0KK+C4quC4s+C4o+C4p+C4oiDguILguLPguKDguLHguIHguJTguLUNCivguKrguLPguKPguKfguKIg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Lih4Lia4Li44LiNDQor4Liq4Liz4Lij4Lin4LiiIOC4iuC4uOC5iOC4oeC4p+C4tOC5gOC4iuC4teC4ouC4ow0KK+C4quC4s+C4o+C4p+C4oiDguJbguLbguIfguYPguIgNCivguKrguLPguKPguKfguKIg4LiZ4Liy4LiZ4LmJ4Lit4LiiDQor4Liq4Liz4Lij4Lin4LiiIOC4m+C4o+C4sOC4l+C4seC4h+C4hOC4sw0KK+C4quC4s+C4o+C4p+C4oiDguJ7guYjguKfguIfguYDguKDguJXguKPguLINCivguKrguLPguKPguKfguKIg4Lig4Li54LmI4LiX4Lit4LiHDQor4Liq4Liz4Lij4Lin4LiiIOC4o+C4reC4lOC4geC4s+C5gOC4q+C4meC4tOC4lA0KK+C4quC4s+C4o+C4p+C4oiDguKfguKPguJnguLjguIoNCivguKrguLPguKPguKfguKIg4Liq4Lih4Li04LiX4LiY4Li04LiY4Lij4Lij4Lih4LiY4Liy4LiU4LiyDQor4Liq4Liz4Lij4Lin4LiiIOC4quC4uOC4o+C4teC4ouC5jOC4qOC4o+C4teC4quC4geC4suC4pw0KK+C4quC4s+C4o+C4p+C4oiDguK3guYjguK3guJnguJnguLTguYjguKENCivguKrguLPguKPguKfguKUg4Lie4Li44LiB4LiB4Liw4LiT4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Liz4Lij4Lit4LiHIOC4pOC4geC4qeC5jOC4quC4uOC4l+C4mOC4tOC4qOC4tOC4o+C4tOC5gOC4lOC4ig0KK+C4quC4s+C4o+C4suC4jSDguIHguLHguKXguKLguLLguJPguKjguLTguKPguLTguJnguJfguKPguYwNCivguKrguLPguKPguLLguI0g4LmA4LiC4Li14Lii4Lin4LiK4Liw4Lit4Li44LmI4LihDQor4Liq4Liz4Lij4Liy4LiNIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4reC4teC5iOC4ouC4oQ0KK+C4quC4s+C4o+C4suC4jSDguIrguYnguLLguIfguYDguKLguLLguKfguYwNCivguKrguLPguKPguLLguI0g4LiU4Li14Liq4Li44LiUDQor4Liq4Liz4Lij4Liy4LiNIOC4l+C4tOC4nuC4p+C4seC4kuC4meC5jA0KK+C4quC4s+C4o+C4suC4jSDguJnguLjguIrguYHguJfguJkNCivguKrguLPguKPguLLguI0g4Lib4LiB4Liq4Lin4LmI4Liy4LiH4LmA4LiI4Lij4Li04LiNDQor4Liq4Liz4Lij4Liy4LiNIOC4nuC4ouC4uOC4h+C5geC4geC5ieC4pw0KK+C4quC4s+C4o+C4suC4jSDguYDguJ7guYfguIrguKPguK3guLjguYTguKMNCivguKrguLPguKPguLLguI0g4Lih4Liy4Lil4Li14LmA4LiX4LioDQor4Liq4Liz4Lij4Liy4LiNIOC4o+C4seC4leC4leC4suC4geC4ow0KK+C4quC4s+C4o+C4suC4jSDguKfguKPguKPguJPguJXguKPguIcNCivguKrguLPguKPguLLguI0g4Lio4Lix4Lil4Lii4LmM4Lin4Li04LmA4Lio4LipDQor4Liq4Liz4Lij4Liy4LiNIOC4quC4suC4hOC4ow0KK+C4quC4s+C4o+C4suC4jSDguYDguKrguIfguLXguYjguKLguKHguYDguInguKINCivguKrguLPguKPguLLguI0g4Lit4Lij4Lij4LiW4Lit4Li04LiZ4LiX4Lij4Li14Lii4LmMDQor4Liq4Liz4Lij4Liy4LiNIOC4ruC4suC5gOC4i+C5iuC4sA0KK+C4quC4s+C4pOC4l+C4mOC4tOC5jCDguKrguK3guJnguIHguKPguLDguJXguYjguLLguKINCivguKrguLPguKXguLUg4LmB4LiL4LmI4Lig4Li54LmIDQor4Liq4Liz4Lil4Li1IOC4nuC4tOC4huC5gOC4meC4qOC4p+C4ow0KK+C4quC4s+C4peC4tSDguKrguLLguKLguILguLjguJnguJfguJQNCivguKrguLPguK3guK3guKIg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Liz4Lit4Liy4LiHIOC4reC4tOC5iOC4oeC4iOC4tOC4leC4ow0KK+C4quC4s+C4reC4suC4h+C4hOC5jCDguIrguJnguLDguKrguLjguKPguLTguKLguLDguYDguIHguLXguKLguKPguJXguLQNCivguKrguLPguK3guLLguIfguITguYwg4LiZ4Lix4LiZ4LiX4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4Liq4Liz4Lit4Liy4LiH4LiE4LmMIOC5gOC4nuC4peC4tOC4meC4q+C4seC4lA0KK+C4quC4s+C4reC4suC4h+C4hOC5jCDguKfguIfguKnguYzguKrguLLguKLguKrguLTguJkNCivguKrguLPguK3guLLguIfguITguYwg4LmE4Lir4Lin4Liq4Lin4LmI4Liy4LiHDQor4Liq4Liz4LmA4LiZ4LiyIOC4mOC4tOC4hOC4uOC4meC4seC4meC4l+C5jA0KK+C4quC4s+C5gOC4meC4siDguKrguLjguKfguKPguKPguJPguK3guYjguK3guJkNCivguKrguLPguYDguJnguLXguKLguIcg4LiB4Lij4LiB4Lih4LilDQor4Liq4Liz4LmA4LiZ4Li14Lii4LiHIOC4iOC4teC4lOC4peC4s+C4lOC4p+C4mQ0KK+C4quC4s+C5gOC4meC4teC4ouC4hyDguJfguKjguKfguIfguKnguYwNCivguKrguLPguYDguJnguLXguKLguIcg4Lib4Liw4Lil4Liw4LiK4Liy4LiV4Li0DQor4Liq4Liz4LmA4LiZ4Li14Lii4LiHIOC4oOC4ueC5iOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4s+C5gOC4meC4teC4ouC4hyDguKjguKPguLXguKfguKPguKPguJPguYwNCivguKrguLPguYDguJnguLXguKLguIcg4Lir4Lit4Lih4LiK4Li34LmI4LiZDQor4Liq4Liz4LmA4Lig4LiyIOC5gOC4iOC4teC4ouC4o+C4quC4uOC4oeC4seC4og0KK+C4quC4s+C5gOC4oOC4siDguJrguLjguI3guK3guYjguK3guJkNCivguKrguLPguYDguKDguLIg4Lin4LiH4Lio4LmM4Liq4Li14LiU4LiyDQor4Liq4Liz4LmA4Lij4LmH4LiIIOC4iOC4o+C4seC4jeC4jeC4suC4reC5iOC4reC4mQ0KK+C4quC4s+C5gOC4o+C4tOC4hyDguIHguK3guIfguYHguKrguIfguKjguKPguLUNCivguKrguLPguYDguKPguLTguIcg4LiI4Lix4LiZ4LiX4Lij4Lih4LiT4Li1DQor4Liq4Liz4LmA4Lij4Li04LiHIOC4lOC4p+C4h+C4oOC4uOC4oeC5gOC4oeC4qA0KK+C4quC4s+C5gOC4o+C4tOC4hyDguJnguLTguKXguJ7guKTguIHguKnguYwNCivguKrguLPguYDguKPguLTguIcg4Lie4Lil4Lit4Lii4LiH4Liy4LihDQor4Liq4Liz4LmA4Lij4Li04LiHIOC4oeC4tOC5iOC4h+C4guC4p+C4seC4jQ0KK+C4quC4s+C5gOC4o+C4tOC4hyDguKfguLHguJLguJnguLDguYLguIrguJXguLQNCivguKrguLPguYDguKPguLTguIcg4Liq4Li14Liq4Li44LiBDQor4Liq4Liz4LmA4Lij4Li04LiHIOC4reC4seC4oeC4peC4teC4ouC5jA0KK+C4quC4tOC4h+C4guC4oyDguJjguLXguKPguLLguJfguKPguIcNCivguKrguLTguIfguKvguYzguJfguKfguJkg4LmA4LiV4LiI4LmK4LiwDQor4Liq4Li04LiH4Lir4LiwIOC4quC4suC4ouC4l+C4reC4hw0KK+C4quC4tOC4h+C4q+C5jCDguITguIrguYDguKrguJnguLUNCivguKrguLTguIfguKvguYwg4LmA4Lil4Li04Lio4LiZ4Liy4Lih4Lin4LiH4Lio4LmM4Lin4Liy4LiZDQor4Liq4Li04LiV4LiY4Li04LmMIOC4iOC4seC4h+C4nuC4suC4meC4tOC4ig0KK+C4quC4tOC4l+C4mOC4tCDguJXguLHguJPguJHguYLguK3guKDguLLguKoNCivguKrguLTguJfguJjguLTguIHguKMg4Lio4Li04Lij4Li04LmA4Lih4Li34Lit4LiH4Lih4Li54LilDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC5gOC4guC5iOC4h+C4l+C4reC4hw0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguYPguIjguIrguLfguYnguJkNCivguKrguLTguJfguJjguLTguIrguLHguKIg4LiU4Lij4Li44LiT4Lin4Lix4LiV4Li0DQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC5gOC4l+C4p+C4q+C4quC4geC4uOC4peC4l+C4reC4hw0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguJvguKXguLXguIHguK3guLPguYTguJ4NCivguKrguLTguJfguJjguLTguIrguLHguKIg4LmA4Lie4Li14Lii4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC4pOC4geC4qeC5jOC4quC4p+C4seC4quC4lOC4tOC5jOC4geC4uOC4pQ0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguKfguLTguKrguLjguJfguJjguLTguYzguK3guLPguJ7guLHguJkNCivguKrguLTguJfguJjguLTguIrguLHguKIg4Liq4Li04LiX4LiY4Li04Lin4Li04Lia4Li54Lil4Lii4LmM4Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC5gOC4q+C4peC4t+C4reC4h+C4quC4uOC4guC4quC4suC4hOC4ow0KK+C4quC4tOC4l+C4mOC4tOC4meC4seC4mSDguIrguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLTguJfguJjguLTguJ7guIfguKnguYwg4LiB4LmI4Lit4LmA4Lio4Lij4Lip4LiQ4Lij4Lix4LiK4LiV4LmMDQor4Liq4Li04LiX4LiY4Li04Lie4Lii4Liy4LiB4Lij4LiT4LmMICjguKfguLXguKPguLLguJnguLjguKfguLHguJXguJXguYwpDQor4Liq4Li04LiX4LiY4Li04Lie4LijIOC4muC4s+C5gOC4q+C4meC5h+C4iOC4nuC4seC4meC4mOC5jA0KK+C4quC4tOC4l+C4mOC4tOC4nuC4oyDguKrguKHguJrguLjguI0NCivguKrguLTguJfguJjguLTguJ7guKUg4Lin4Lix4LiS4LiZ4LiE4LiU4Li1DQor4Liq4Li04LiX4LiY4Li04Lij4Lix4LiV4LiZ4LmMIOC4nuC4tOC4iuC4jeC5jOC4nuC4tOC4l+C4ouC4suC4meC4meC4l+C5jA0KK+C4quC4tOC4l+C4mOC4tOC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYHguIjguYnguIcNCivguKrguLTguJfguJjguLTguKjguLHguIHguJTguLTguYwg4Lil4Li04LmJ4Lih4Lij4Liq4LiY4Lij4Lij4LihDQor4Liq4Li04LiX4LiY4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4reC4uOC4muC4peC4o+C4seC4leC4meC4sA0KK+C4quC4tOC4l+C4mOC4tOC5gOC4l+C4qCDguIHguLTguJXguJXguLTguIHguLjguKXguKrguLjguKfguKPguKPguJMNCivguKrguLTguJfguJjguLTguYLguIrguIQg4Lio4Lij4Li14Liq4Li44LiE4LiZ4LiY4LmMDQor4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4o+C4uOC4qOC4lOC4s+C5gOC4geC4tOC4hw0KK+C4quC4tOC4mSDguIjguLTguJnguJTguLLguKPguLHguJXguJnguKfguKPguIHguLjguKUNCivguKrguLTguJkg4Lin4LiH4Lio4LmM4LiE4Li44LmJ4Lih4Lie4LiH4Lio4LmMDQor4Liq4Li04LiZ4LiK4Lix4LiiIOC4iOC4reC4oeC5geC4quC4hw0KK+C4quC4tOC4meC4iuC4seC4oiDguJ7guKPguKvguKHguYDguKrguJnguLXguKLguYwNCivguKrguLTguJnguIrguLHguKIg4Liq4Li44LiX4LiY4Li04Lin4LiH4Lip4LmMDQor4Liq4Li04LiZ4LiY4Liy4LijIOC4p+C5iOC4reC4h+C4leC4suC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4quC4tOC4meC4mOC4uOC5jCDguKXguLTguYnguKHguJvguLTguJXguLQNCivguKrguLTguJnguKvguKXguLHguYjguIcg4LmA4Lit4Li34LmJ4Lit4Liq4Lih4Liq4LiB4Li44LilDQor4Liq4Li04LiZ4Li1IOC4oeC4k+C4teC4geC4uOC4pQ0KK+C4quC4tOC4meC4teC4meC4suC4jyDguJfguK3guIfguYLguJrguKPguLLguJMNCivguKrguLTguJnguLXguJ7guKPguKPguJMg4Lia4Li44LiN4LmA4Lil4Li14LmJ4Lii4LiHDQor4Liq4Li04Lij4LiB4Li44LilIOC4leC4sOC5gOC4hOC4teC4ouC4meC4meC4uOC4ig0KK+C4quC4tOC4o+C4tCDguJvguKPguLDguKfguLLguKvguLDguJnguLLguKfguLTguJkNCivguKrguLTguKPguLTguIHguLLguI3guIjguJnguYwg4LiU4Lin4LiH4LiH4Liy4LihDQor4Liq4Li04Lij4Li04LiB4Li44LilIOC5gOC4p+C4teC4ouC4h+C4iuC4meC4gQ0KK+C4quC4tOC4o+C4tOC4iuC4seC4oiDguJXguLHguJnguJXguLTguYDguKXguLTguKjguYDguIjguKPguLTguI0NCivguKrguLTguKPguLTguI3guI3guLIg4LmC4Liq4Lig4LiT4Liq4LiB4Li44Lil4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Li04Lij4Li04LiZ4LiX4Lij4LmM4LiX4Li04Lie4Lii4LmMIOC4guC4s+C4l+C4tOC4nuC4ouC5jA0KK+C4quC4tOC4o+C4tOC4meC4o+C4suC4oOC4o+C4k+C5jCDguJnguLTguKXguJrguLjguJXguKMNCivguKrguLTguKPguLTguJnguLLguJcg4LmA4Lir4Lil4Li34Lit4LiH4Lit4Lij4LmI4Liy4Lih4Lin4Li04LmE4LilDQor4Liq4Li04Lij4Li04Lie4LiH4Lip4LmMIOC4nuC4uOC4l+C4mOC4mOC4meC4quC4uOC4meC4l+C4ow0KK+C4quC4tOC4o+C4tOC4nuC4oyDguYDguIjguJnguIHguIrguIHguKMNCivguKrguLTguKPguLTguJ7guKMg4LmA4LiV4LiK4LiZ4Liw4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Li04Lij4Li04Lie4LijIOC4nuC4tOC4nuC4seC4kuC4nuC4peC4geC4suC4og0KK+C4quC4tOC4o+C4tOC4nuC4oyDguKjguKPguLXguYDguJ7guLXguKLguKMNCivguKrguLTguKPguLTguJ7guKMg4Lit4Lix4Lio4Lin4Lij4Lix4LiZ4LiV4LmMDQor4Liq4Li04Lij4Li04Lie4Lix4LiS4LiZ4LmMIOC4geC4oeC4peC4o+C4seC4leC4meC5jA0KK+C4quC4tOC4o+C4tOC4oeC4meC4leC5jCDguJrguLjguI3guKvguKXguYnguLINCivguKrguLTguKPguLTguKHguLIg4LmE4Lic4LmI4Lie4Lil4Li5DQor4Liq4Li04Lij4Li04Lih4Liy4LiV4LiyIOC5gOC4o+C5iOC4h+C4quC4oeC4muC4ueC4o+C4k+C5jOC4quC4uOC4gg0KK+C4quC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguYHguIjguYjguKHguJTguKfguIcNCivguKrguLTguKPguLTguKPguLHguJXguJnguYwg4Lie4Lij4Lin4Li04Lil4Liy4Lio4Liq4Li04Lij4Li0DQor4Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5geC4quC4h+C4nuC4ouC4seC4ng0KK+C4quC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguJrguLjguI3guYPguKvguI3guYgNCivguKrguLTguKPguLTguKXguLHguIHguKnguJPguYwg4Lit4LmL4Lit4LiH4Liq4LiB4Li44LilDQor4Liq4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4meC4suC4hOC4reC5iOC4reC4mQ0KK+C4quC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguKrguLTguJfguJjguLLguIfguIHguLnguKMNCivguKrguLTguKPguLTguKfguLTguKDguLIg4Lit4LiZ4Lix4LiZ4LiV4LiK4Liy4LiV4Li0DQor4Liq4Li04Lij4Li04Lit4Lij4Lij4LiT4LieIOC4mOC4meC4o+C4seC4geC4qeC5jA0KK+C4quC4tOC4o+C4tSDguILguLHguJnguJfguK3guIcNCivguKrguLTguKfguK3guYjguK3guJkg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Liq4Li04LmC4Lij4LiV4Lih4LmMIOC4p+C4seC4mOC4meC4mOC4suC4lOC4sg0KK+C4quC4teC4lOC4siDguKfguLHguIrguKPguJ7guLTguKHguKXguJ7guKPguKPguJMNCivguKrguLXguJnguKfguKUg4LiI4Lix4LiZ4LiX4Lij4LmM4Lij4Li04LmJ4LinDQor4Liq4Li14LiZ4Li14Lie4Lij4Lij4LiTIOC5gOC4geC4teC4ouC4o+C4leC4tOC4nuC4h+C4qeC5jOC4quC4suC4ow0KK+C4quC4teC4q+C4meC4suC4lyDguJvguKPguLDguKLguLnguKPguKPguLHguJXguJnguYwNCivguKrguLfguJog4LiE4Liz4LiZ4Li04LilDQor4Liq4Li34Lia4Lie4LiH4Lip4LmMIOC4kOC4tOC4leC4tOC5guC4iuC4leC4tOC4o+C4seC4leC4meC4sg0KK+C4quC4t+C4muC4qOC4seC4geC4lOC4tOC5jCDguJvguKPguLTguI3guI3guLLguIHguLjguKUNCivguKrguLfguJrguKrguKfguLHguKrguJTguLTguYwg4Lin4Lix4LiS4LiZ4LiQ4Liy4LiZ4LiwDQor4Liq4Li44LiB4LijIOC4iuC4peC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4uOC4gg0KK+C4quC4uOC4geC4o+C4tSDguKfguLHguIrguKPguJ7guKPguKPguJMNCivguKrguLjguIHguKUg4Lii4Li34LiZ4LiV4Lij4Liw4LiB4Li54Lil4LiK4Lix4LiiDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4geC4uOC4peC5gOC4o+C4t+C4reC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguITguLPguKHguYjguKfguIcNCivguKrguLjguIHguLHguI3guI3guLIg4LiI4Li04LiV4Lij4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4iuC4seC4ouC4qOC4o+C4teC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguYHguIvguYjguK3guLbguYnguIcNCivguKrguLjguIHguLHguI3guI3guLIg4LiV4Lix4LmJ4LiH4LmA4LiV4Li04Lih4LiX4Lit4LiHDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4l+C4suC4muC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguJnguLTguKLguKHguYPguJnguJjguKPguKPguKENCivguKrguLjguIHguLHguI3guI3guLIg4Lib4Lij4Liw4Liq4LiH4LiE4LmMDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4nuC4o+C4p+C4quC4seC4meC4leC5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguYHguJ7guKDguLTguKPguKHguKLguYzguKPguLHguJXguJnguYwNCivguKrguLjguIHguLHguI3guI3guLIg4LmA4Lih4LiG4Lit4Lij4Li04Lii4LiwDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4pOC4l+C4seC4ouC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguKfguLHguJLguJHguIHguYLguIHguKjguKUNCivguKrguLjguIHguLHguI3guI3guLIg4Lio4Li04Lij4Li04Lib4Lij4Liw4Lig4Liy4LiB4Li04LiIDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4quC4tOC4h+C4q+C5jOC4l+C4reC4hw0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguKrguLjguYLguKPguIjguJnguLLguJnguJnguJfguYwNCivguKrguLjguIHguLHguI3guI3guLIg4Lit4LiZ4Li44Lih4Liy4LiZ4Lio4Li04Lij4Li04LiB4Li44LilDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC5gOC4reC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4geC4seC4meC4ouC4siDguKDguLnguYHguIINCivguKrguLjguIHguLHguKXguKLguLIg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Lix4LiH4LiC4LmMDQor4Liq4Li44LiB4Liy4LiN4LiI4LiZ4LmMIOC4pOC4geC4qeC5jOC4quC4tOC4meC4quC4suC5guC4o+C4iOC4meC5jA0KK+C4quC4uOC4geC4suC4meC4lOC4siDguJjguLLguJXguLjguJTguLUNCivguKrguLjguIHguLLguJnguJTguLIg4Liq4Li44LiB4Li04LiV4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Li44LiB4Li04LiIIOC4geC4ueC4peC4oeC4meC4ueC4jQ0KK+C4quC4uOC4geC4tOC4iCDguYDguIrguLfguYnguK3guK3guLTguJnguJfguKPguYwNCivguKrguLjguIHguLTguIgg4LiZ4Li04LmI4Lih4Lie4Lij4LmJ4Liy4LinDQor4Liq4Li44LiB4Li04LiIIOC4oOC4uOC4oeC4oeC4tQ0KK+C4quC4uOC4geC4tOC4iCDguKfguLTguIrguLHguKLguYLguIrguJXguLQNCivguKrguLjguIHguLTguIgg4LmB4Liq4LiH4Lie4Lil4Liq4Li44LiCDQor4Liq4Li44LiB4Li04LiVIOC4p+C4tOC4p+C4seC4kuC4meC4l+C4teC4m+C4sA0KK+C4quC4uOC4giDguYHguIjguYnguIfguIHguKPguLDguIjguYjguLLguIcNCivguKrguLjguIIg4Liq4Li44Lij4Liw4Lie4Li04LiZ4Li04LiIDQor4Liq4Li44LiC4LiI4Li04LiV4LiVIOC4h+C4suC4oeC4muC4o+C4o+C4iOC4hw0KK+C4quC4uOC4guC4iuC4seC4oiDguK3guLjguJvguKrguLHguJnguJXguYwNCivguKrguLjguILguJvguKPguLDguYDguKrguKPguLTguJAg4Lij4LmI4Lih4LmC4Lie4LiY4Li04LmMDQor4Liq4Li44LiC4Lin4Liq4LiyIOC5geC4quC4h+C4lOC4tQ0KK+C4quC4uOC4guC4qOC4o+C4tSDguKfguIfguKnguYzguJbguKENCivguKrguLjguILguKrguKHguJrguLHguJXguLQg4LmA4LiX4Lio4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Liq4Li44LiC4Liq4Lit4Liy4LiUIOC4iOC4o+C4teC4qOC4o+C4tQ0KK+C4quC4uOC4guC4quC4seC4meC4leC5jCDguJ7guKPguKrguKfguKPguKPguITguYzguKfguLHguJLguJnguLINCivguKrguLjguILguKvguKPguKPguKnguLIg4LiH4Liy4Lih4Lin4Lix4LiS4LiZ4Liy4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiC4Li44LihIOC5gOC4iOC4teC4ouC4oeC4quC4geC4uOC4pQ0KK+C4quC4uOC4guC4uOC4oSDguJ7guKvguLnguKrguLnguJXguKMNCivguKrguLjguILguLjguKEg4Lio4Lij4Li14Lin4Li04LmE4Lil4Lik4LiX4LiY4Li04LmMDQor4Liq4Li44LiC4Li44LihIOC5gOC4reC4teC5iOC4ouC4oeC4quC4reC4suC4lA0KK+C4quC4uOC4guC4uOC4oeC4suC4peC4ouC5jCDguJvguKPguLDguYDguKrguKPguLTguJDguKjguKPguLUNCivguKrguLjguILguYDguIHguKnguKEg4LmA4Lil4Li34LmI4Lit4Lih4Lit4Lij4Li44LiTDQor4Liq4Li44LiC4LmC4LiCIOC4quC4uOC4oeC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4guC5g+C4iCDguKfguIfguKjguYzguKrguLjguKPguJ7guLTguYDguIrguKnguJDguYwNCivguKrguLjguITguJnguJjguYzguJfguLTguJ7guKLguYwg4LiX4Liz4LmA4Lil4LiX4Lit4LiHDQor4Liq4Li44LiE4LiZ4LiY4LiyIOC4quC4uOC4o+C4sOC4oeC4suC4meC4sA0KK+C4quC4uOC4hOC4meC4mOC5jCDguYDguInguKXguLTguKHguJ7guLTguJ7guLHguJLguJnguYwNCivguKrguLjguITguJnguJjguYwg4LmA4LiZ4Li34LmI4Lit4LiH4LiB4Lix4LiZ4LiX4LiyDQor4Liq4Li44LiE4LiZ4LiY4LmMIOC4o+C4seC4leC4meC4quC4sOC4reC4suC4lA0KK+C4quC4uOC4hOC4meC4mOC5jCDguKrguLjguIjguKPguLTguJUNCivguKrguLjguITguLTguJkg4LmA4LiU4LmI4LiZ4LmA4Lih4LiG4LiyDQor4Liq4Li44LiI4Lij4Li04LiVIOC4oeC4k+C4teC4p+C4h+C4hOC5jA0KK+C4quC4uOC4iOC4suC4o+C4teC4lSDguIHguKPguKPguJPguKXguYnguKfguJkNCivguKrguLjguIjguLTguJUg4Liq4LiW4Li04LiV4Lii4LmM4Lih4Liy4Lil4Lix4Lii4Lin4LiH4Lio4LmMDQor4Liq4Li44LiI4Li04LiV4LiV4LmMIOC4leC4seC5ieC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC4iOC4tOC4leC4oyDguIrguLHguKLguITguLnguJPguJzguKUNCivguKrguLjguIjguLTguJXguKPguLIg4LiB4Lil4LmI4Liz4LmB4Liq4LiHDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4iOC4seC4meC4l+C4o+C4lOC4tOC4peC4geC4geC4uOC4pQ0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguYHguIvguYjguIjguLTguKcNCivguKrguLjguIjguLTguJXguKPguLIg4LiX4Lin4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4muC4uOC4jeC4quC4ueC4hw0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguJ7guLHguJnguJjguLjguYzguKDguLHguJfguKPguYwNCivguKrguLjguIjguLTguJXguKPguLIg4Lii4Li04LmJ4Lih4LmB4Lii4LmJ4LihDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4p+C4o+C4ouC4qOC5guC4geC4p+C4tOC4lw0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguKrguJbguLLguJ7guKPguIrguLHguKLguKrguLTguJfguJjguLTguYwNCivguKrguLjguIjguLTguJXguKPguLIg4Liq4Li44Lij4Lij4Lix4LiV4LiZ4LmM4LmA4LiU4LiK4LiyDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4reC4uOC4leC4leC4oeC4sOC4qOC4tOC4pQ0KK+C4quC4uOC4iOC4tOC4mSDguKHguLjguIHguJnguYnguK3guKINCivguKrguLjguIjguLTguJnguJTguLIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Liq4Li44LiI4Li04LiZ4LiU4LiyIOC4oOC4seC4hOC4oOC4tOC4jeC5guC4jQ0KK+C4quC4uOC4iOC4tOC4meC4lOC4siDguKrguLTguJfguJjguLTguKjguKPguLHguJPguKLguYzguIHguLjguKUNCivguKrguLjguIjguLTguJnguJXguJnguLIg4LmA4Liq4Li34Lit4LmB4LiB4LmJ4LinDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4iOC4tOC4o+C4sOC4iuC4seC4og0KK+C4quC4uOC4iOC4tOC4meC4leC5jCDguJXguLHguJPguJHguYzguKfguKPguIHguLjguKUNCivguKrguLjguIjguLTguJnguJXguYwg4LmA4Lia4LmJ4Liy4LiB4Li44LilDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4n+C4uOC5ieC4h+C4mOC4o+C4o+C4oeC4quC4suC4ow0KK+C4quC4uOC4iOC4tOC4meC4leC5jCDguKfguIfguKjguYzguJ7guLHguJnguJjguLjguYwNCivguKrguLjguIjguLTguJnguJXguYwg4Liq4Lix4LiB4LiB4Liw4Lin4LiZ4Li04LiKDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4reC4uOC4lOC4oeC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4iOC4tOC4o+C4siDguKDguLnguYjguILguLMNCivguKrguLjguIrguI/guLTguKUg4Lin4Lix4LiS4Lii4Liy4LiB4LijDQor4Liq4Li44LiK4LilIOC4m+C4suC4meC4geC4peC4suC4hw0KK+C4quC4uOC4iuC4seC4oiDguIjguLPguKPguLHguKrguKfguLTguKHguKXguKPguLHguJXguJnguYwNCivguKrguLjguIrguLHguKIg4LiZ4Lij4LmA4Lio4Lij4Lip4LiQ4Lie4LiH4Lio4LmMDQor4Liq4Li44LiK4Lix4LiiIOC5gOC4peC4tOC4qOC4mOC4teC4o+C4sOC4iuC4suC4jeC4iuC4seC4og0KK+C4quC4uOC4iuC4seC4oiDguKvguKfguLHguIfguIHguLTguIjguIjguLTguJnguJTguLINCivguKrguLjguIrguLLguI0g4LiY4LiZ4Liw4LmE4Lie4Lij4Lij4Lix4LiB4Lip4LmMDQor4Liq4Li44LiK4Liy4LiU4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC5gOC4o+C4t+C4reC4h+C4quC4uOC4gg0KK+C4quC4uOC4iuC4suC4lOC4siDguIjguK3guJnguLjguKfguLHguJLguJnguIHguLjguKUNCivguKrguLjguIrguLLguJTguLIg4LiJ4Liy4Lii4Liw4LmA4LiB4Lip4LiV4Lij4Li04LiZDQor4Liq4Li44LiK4Liy4LiU4LiyIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC4iuC4suC4lOC4siDguYDguJXguLXguYrguKLguIHguITguLMNCivguKrguLjguIrguLLguJTguLIg4LiZ4LiX4Li14LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiK4Liy4LiU4LiyIOC4m+C4o+C4sOC4luC4oeC4m+C4seC4l+C4oeC4sA0KK+C4quC4uOC4iuC4suC4lOC4siDguJ7guLHguJnguJjguLjguYzguKHguJPguLUNCivguKrguLjguIrguLLguJTguLIg4Lih4Liy4Lij4Lii4Liy4LiXDQor4Liq4Li44LiK4Liy4LiU4LiyIOC5guC4o+C4iOC4meC4pOC4l+C4mOC4tOC5jOC4nuC4tOC5gOC4iuC4qeC4kOC5jA0KK+C4quC4uOC4iuC4suC4lOC4siDguKfguLTguJfguKLguLLguKDguKPguJPguYwNCivguKrguLjguIrguLLguJTguLIg4Liq4LiV4Lix4LiH4LiU4Li1DQor4Liq4Li44LiK4Liy4LiU4LiyIOC4quC4uOC4l+C4mOC4tOC4qOC4seC4meC4quC4meC4teC4ouC5jA0KK+C4quC4uOC4iuC4suC4lOC4siDguKvguLTguKPguLHguI3guJ7guLHguJLguJnguIHguLjguKUNCivguKrguLjguIrguLLguJTguLIg4Lit4Li24LmK4LiH4Liq4Lih4Li44LiX4LijDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4geC4peC4tOC5iOC4meC4reC4uOC4lOC4oeC4quC4uOC4gg0KK+C4quC4uOC4iuC4suC4leC4tCDguYDguIHguKPguLXguKLguIfguYLguIHguKHguKUNCivguKrguLjguIrguLLguJXguLQg4LmB4LiC4Lij4Lix4LiV4LiZ4LiwDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4h+C4suC4oeC5geC4quC4hw0KK+C4quC4uOC4iuC4suC4leC4tCDguIjguLTguJXguJ7guLHguJLguJnguIHguLjguKUNCivguKrguLjguIrguLLguJXguLQg4LmA4LiI4Lip4Lik4Liy4LmA4LiI4Li04LihDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4iuC4seC4ouC4meC4sOC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguYDguIrguLLguKfguYzguYTguKcNCivguKrguLjguIrguLLguJXguLQg4LmB4LiL4LmI4Lir4Lil4Li04LinDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4lOC4s+C4o+C4h+C4hOC5jOC4reC4meC4uOC4geC4ueC4pQ0KK+C4quC4uOC4iuC4suC4leC4tCDguJXguLHguYnguIfguJ7guLnguKXguJ7guLHguJnguJjguLjguYwNCivguKrguLjguIrguLLguJXguLQg4LiW4Liy4Lin4Lij4Lin4LiH4Lip4LmMDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4l+C4teC4ouC4oeC4quC4oeC4seC4og0KK+C4quC4uOC4iuC4suC4leC4tCDguJnguKPguLLguIHguLjguKXguKPguLHguKjguKHguLUNCivguKrguLjguIrguLLguJXguLQg4Lia4Liz4Lij4Li44LiH4Lie4Liy4LiZ4Li04LiKDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4m+C4o+C4sOC4quC4suC4meC4mOC4o+C4o+C4oeC4hOC4uOC4kw0KK+C4quC4uOC4iuC4suC4leC4tCDguJzguKXguKDguLTguKPguKENCivguKrguLjguIrguLLguJXguLQg4Lie4Liw4LiZ4Lit4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4nuC4teC4ouC4o+C4mOC4uOC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguKHguKXguJfguK3guIfguJTguLUNCivguKrguLjguIrguLLguJXguLQg4Lii4Li04LmJ4Lih4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4o+C4uOC4iOC4tOC5guC4oeC4o+C4sA0KK+C4quC4uOC4iuC4suC4leC4tCDguKXguLXguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKrguLjguIrguLLguJXguLQg4Lin4LiH4Lio4LmM4Liq4Lih4Lia4Li44LiNDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4p+C4suC4meC4tOC4iuC4ouC5jOC4q+C4suC4meC4meC4l+C5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguKjguKPguLXguJ/guYnguLLguKXguLLguKfguLHguJPguKLguYwNCivguKrguLjguIrguLLguJXguLQg4Lio4Li44LiB4Lij4Lin4Lij4Lij4LiTDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4quC4p+C5iOC4suC4h+C4geC4suC4ow0KK+C4quC4uOC4iuC4suC4leC4tCDguKrguLTguJnguJvguKPguLDguKrguIfguITguYwNCivguKrguLjguIrguLLguJXguLQg4Liq4Li44LiX4LiY4Li04Lie4Lij4Liq4LiB4Li44LilDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4quC4o+C4teC4quC4uOC4p+C4o+C4o+C4k+C4geC4tOC4iA0KK+C4quC4uOC4iuC4suC4leC4tCDguYDguKvguIfguLXguYjguKLguKHguIfguLLguKHguKjguKPguLUNCivguKrguLjguIrguLLguJXguLQg4Lit4LmI4Lit4LiZ4Liq4Li44LiCDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4reC4uOC4lOC4oeC4oOC4seC4geC4lOC4teC4p+C4h+C4qOC5jA0KK+C4quC4uOC4iuC4suC4oiDguIrguKfguLLguKXguJTguLTguJANCivguKrguLjguIrguLLguKIg4Liq4Li44LiZ4Lix4LiZ4LiX4Liy4Lij4Lit4LiUDQor4Liq4Li44LiK4Li04LiVIOC4peC5iOC4s+C4i+C4sw0KK+C4quC4uOC4iuC4tOC4mSDguIjguLPguJvguLLguJnguYnguK3guKINCivguKrguLjguIrguLTguJkg4LiV4LmI4Liy4LiH4LmD4LiIDQor4Liq4Li44LiK4Li04LiZIOC4m+C4o+C4sOC5hOC4nuC4qOC4tOC4peC4m+C5jA0KK+C4quC4uOC4iuC4tOC4mSDguYDguKHguIbguLDguKrguLjguKfguKPguKPguJPguYLguKPguIjguJnguYwNCivguKrguLjguIrguLTguJkg4Lio4Lij4Li14Lie4Lix4LiS4LiZ4Lin4Lij4Liy4LiH4LiB4Li54LilDQor4Liq4Li44LiK4Li04LiZIOC5geC4quC4h+C4reC4tOC4meC4l+C4o+C5jA0KK+C4quC4uOC4iuC4teC4niDguIHguLjguKXguIHguLLguI3guIjguJnguLLguIrguLXguKfguLTguJkNCivguKrguLjguIrguLXguJ4g4Liq4Li04LiH4Lir4LmM4LiY4Li14Lij4LmMDQor4Liq4Li44LiK4Li14Lil4LiyIOC5geC4i+C5iOC4q+C5iOC4suC4mQ0KK+C4quC4uOC4keC4suC4l+C4tOC4nuC4ouC5jCDguJ/guLHguIHguYDguKLguYfguJkNCivguKrguLjguJPguLTguKrguLIg4LmA4Lii4LmH4LiZ4LiJ4LmI4LizDQor4Liq4Li44LiT4Li1IOC4iOC4tOC4o+C4seC4meC4lOC4ow0KK+C4quC4uOC4k+C4tSDguYDguJTguIrguKrguLjguKfguKPguKPguJPguYwNCivguKrguLjguJPguLUg4Lib4Liy4LiZ4LiU4Li1DQor4Liq4Li44LiT4Li1IOC4peC4tOC4oeC4m+C5jOC4nuC4meC4suC4p+C4h+C4qOC5jA0KK+C4quC4uOC4k+C4tSDguKrguLTguJfguJjguLTguYDguKfguIrguKfguLTguIjguLTguJXguKMNCivguKrguLjguJPguLXguJnguLjguIog4LmC4LiV4LmK4Liw4Lir4Lin4Lix4LiHDQor4Liq4Li44LiT4Li14Lii4LmMIOC5gOC4l+C4nuC4quC4suC4og0KK+C4quC4uOC4k+C4teC4ouC5jCDguKfguLTguJfguKLguLLguJfguKPguIfguJXguKPguLDguIHguLnguKUNCivguKrguLjguJQg4LiB4Lij4Liw4LmB4Liq4LmA4LiX4LieDQor4Liq4Li44LiU4LiI4Li04LiVIOC5gOC4iOC4o+C4tOC4jeC4meC4tOC4nuC4meC4mOC5jOC4p+C4suC4meC4tOC4ig0KK+C4quC4uOC4lOC4iOC4tOC4leC4leC5jCDguKjguKPguLXguJXguKPguLXguKPguLHguJXguJnguYwNCivguKrguLjguJTguIrguLLguKIg4Lia4Li44LiN4LmC4LiVDQor4Liq4Li44LiU4LiY4Li04LiU4LiyIOC4oeC4q+C4tOC5guC4hOC4lQ0KK+C4quC4uOC4lOC4quC4h+C4p+C4mSDguIjguLHguJnguJfguKPguYzguKjguKPguLUNCivguKrguLjguJTguKrguKfguLLguJcg4LmA4LiJ4Li14Lii4Lia4LmB4Lir4Lil4LihDQor4Liq4Li44LiU4Liq4Liy4Lii4LmD4LiIIOC4q+C4suC5gOC4o+C4t+C4reC4meC5guC4oOC4hA0KK+C4quC4uOC4lOC4siDguIjguIfguKfguLHguJLguJnguLINCivguKrguLjguJTguLIg4LmA4LiK4Li14Lii4LiH4LmA4LiK4Liy4Lin4LmM4LmE4LinDQor4Liq4Li44LiU4LiyIOC4leC4uOC4peC4suC4p+C4k+C4tOC4ig0KK+C4quC4uOC4lOC4siDguJrguLPguKPguLjguIfguKvguKHguLnguYgNCivguKrguLjguJTguLIg4Lie4Li24LmI4LiH4LmC4Lie4LiY4Li04Lib4Lix4LiB4LiC4Li04Lii4LiwDQor4Liq4Li44LiU4LiyIOC4o+C4uOC5iOC4h+C5geC4quC4hw0KK+C4quC4uOC4lOC4siDguKjguKPguLXguIHguKPguIHguLLguKMNCivguKrguLjguJTguLIg4Liq4Li44LiC4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Liq4Li44LiU4LiyIOC4reC4seC4qOC4p+C5guC4oOC4hOC4tOC4mQ0KK+C4quC4uOC4lOC4suC4l+C4tOC4nuC4ouC5jCDguYDguK3guLXguYjguKLguKHguK3guLTguJfguJjguLTguKTguJfguJjguLTguYwNCivguKrguLjguJTguLLguJ7guKMg4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiU4Liy4Lie4Lix4LiZ4LiY4LmMIOC4reC4tOC4qOC4o+C4suC4h+C4geC4ueC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC5geC4geC5ieC4p+C4iuC4tOC4h+C4lOC4p+C4hw0KK+C4quC4uOC4lOC4suC4o+C4seC4leC4meC5jCDguIrguLTguJnguLDguJvguKPguLDguKDguLINCivguKrguLjguJTguLLguKPguLHguJXguJnguYwg4LiY4Lix4LiN4Liq4Li04Lij4Li04LmC4Lij4LiI4LiZ4LmMDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4nuC4tOC4oeC4nuC4tOC4oeC4pQ0KK+C4quC4uOC4lOC4suC4o+C4seC4leC4meC5jCDguYDguKXguLTguKjguKfguLTguJfguKLguLLguJ7guJnguJjguYwNCivguKrguLjguJTguLLguKPguLHguJXguJnguYwg4Liq4Liy4Lij4LiV4Liy4Lii4LiZDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4reC4tOC4meC5guC4l+C4reC4mOC4tOC4nuC4ow0KK+C4quC4uOC4lOC4suC4p+C4lOC4tSDguYHguKrguIfguIrguKHguKDguLkNCivguKrguLjguJTguLLguKfguKPguKPguJMg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Li44LiU4Liy4Lit4LijIOC4quC4seC4iOC4iOC4suC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4lOC5geC4quC4p+C4hyDguYHguKrguIfguJnguJ7guKPguLHguJXguJnguYwNCivguKrguLjguJTguYPguIgg4LiI4LiH4Lih4LmC4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44LiU4LmD4LiIIOC4iuC4seC4ouC5gOC4m+C4o+C4oQ0KK+C4quC4uOC4lOC5g+C4iCDguYHguJXguIfguK3guYjguK3guJkNCivguKrguLjguJTguYPguIgg4Lia4Li44LiN4Lih4Liy4LiBDQor4Liq4Li44LiU4LmD4LiIIOC4nuC4suC4meC4tOC4iuC4geC4uOC4pQ0KK+C4quC4uOC4lOC5g+C4iCDguYHguKLguYnguKHguYDguKvguKHguLfguK3guJkNCivguKrguLjguJTguYPguIgg4Lio4Lij4Li14Lih4LmI4Lin4LiHDQor4Liq4Li44LiU4LmD4LiIIOC4quC4tOC4meC4quC4oeC4uOC4l+C4o+C5jA0KK+C4quC4uOC4lOC5g+C4iCDguK3guYjguK3guJnguKjguKPguLUNCivguKrguLjguJbguLLguKfguKPguJPguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Li04Lil4Lib4LiZ4Lix4LiZ4LiV4LmMDQor4Liq4Li44LiX4LiY4Liy4LiX4Li04Lie4Lii4LmMIOC4m+C4o+C4sOC4quC4nuC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4l+C4mOC4tCDguIrguLLguJXguLTguKLguLLguJnguJnguJfguYwNCivguKrguLjguJfguJjguLQg4LmA4Lie4LmH4LiH4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiX4LiY4Li0IOC4quC4uOC4l+C4mOC4tOC4mOC4o+C4o+C4oeC4geC4uOC4pQ0KK+C4quC4uOC4l+C4mOC4tOC4iuC4seC4oiDguYTguIHguKPguITguLjguJPguLLguKjguLHguKINCivguKrguLjguJfguJjguLTguIrguLHguKIg4LiV4Lix4LiZ4LiY4LiZ4Liy4Lio4Li04Lij4Li04LiB4Li44LilDQor4Liq4Li44LiX4LiY4Li04LiK4Lix4LiiIOC4oeC4q+C4p+C4peC4teC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4l+C4mOC4tOC4iuC4seC4oiDguKrguLjguJfguJjguLTguJ7guLTguJrguLnguKXguKLguYwNCivguKrguLjguJfguJjguLTguJPguLUg4LiI4Li04LiV4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiX4LiY4Li04LiZ4Lix4LiZ4LiX4LmMIOC5guC4nuC4mOC4tOC4meC4suC4hA0KK+C4quC4uOC4l+C4mOC4tOC4meC4tSDguKrguLLguKPguLDguKLguLINCivguKrguLjguJfguJjguLTguJ7guIfguKjguYwg4Lin4LiI4Li14Lib4Li04Lii4LiZ4Lix4LiZ4LiX4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiX4LiY4Li04Lie4LiH4Lip4LmMIOC5hOC4leC4o+C4o+C4seC4leC4meC4l+C4o+C4h+C4nuC4pQ0KK+C4quC4uOC4l+C4mOC4tOC4nuC4h+C4qeC5jCDguKjguKPguLXguYDguJnguLXguKLguKENCivguKrguLjguJfguJjguLTguJ7guKMg4LiV4Lix4LiZ4Lih4LiH4LiE4LilDQor4Liq4Li44LiX4LiY4Li04Lie4LilIOC5geC4quC4h+C4o+C4uOC5ieC4h+C4kOC4tOC4leC4tOC4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4l+C4mOC4tOC4oeC4siDguIjguLTguJXguJXguKPguIcNCivguKrguLjguJfguJjguLTguKPguLHguJXguJnguYwg4LiH4Liy4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44LiX4LiY4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4nOC5iOC4reC4h+C4qOC4tOC4o+C4tA0KK+C4quC4uOC4l+C4mOC4tOC4p+C4tOC4l+C4ouC5jCDguILguLPguKXguLPguKDguLkNCivguKrguLjguJfguJjguLTguKjguLHguIHguJTguLTguYwg4Lij4Liw4LiI4Li04LiV4LiU4Liz4Lij4LiH4LiE4LmMDQor4Liq4Li44LiX4LiY4Li04Liq4Lix4LiZ4LiV4LmMIOC4leC4seC5ieC4h+C4qOC4o+C4teC4p+C4h+C4qeC5jA0KK+C4quC4uOC4l+C4mOC4tSDguIHguLTguIjguKrguLjguKDguLUNCivguKrguLjguJfguKPguKPguKgg4Lin4Lix4LiR4LiS4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiX4Lix4LiZIOC4quC4p+C4seC4quC4lOC4tOC5jOC4n+C4seC4gQ0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguIHguKXguLTguYjguJnguYLguIvguJTguLINCivguKrguLjguJfguLHguKjguJnguYwg4LiI4Liz4Lij4Lix4Liq4LiI4Li44Lis4Liy4LmA4LiZ4LiV4LijDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4lOC5iOC4suC4meC4reC4uOC4lOC4oeC4iuC4suC4jQ0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguJjguLXguKPguJjguJnguLLguIHguKMNCivguKrguLjguJfguLHguKjguJnguYwg4Lie4LiZ4Lix4Liq4LmA4Lil4Li04LioDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4o+C4reC4ouC4geC4uOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguKfguLjguJLguLTguIHguKPguKfguJPguLTguIrguKLguYwNCivguKrguLjguJfguLHguKjguJnguYwg4Liq4Li04LiX4LiY4Li04Lin4LiH4Lio4LmMDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4reC5iOC4reC4meC4iuC4uOC4peC4tQ0KK+C4quC4uOC4l+C4tOC4lSDguIHguJnguIHguYDguKXguLTguKjguKfguIfguKjguYwNCivguKrguLjguJfguLTguJkg4LiE4Li54LiZ4LmJ4Liz4LiX4Li04Lie4Lii4LmMDQor4Liq4Li44LiX4Li04LiZIOC5guC4iuC4leC4tOC4iOC4uOC4rOC4suC4h+C4geC4ueC4ow0KK+C4quC4uOC4l+C4tOC4mSDguJfguLHguJXguJXguLLguJnguJnguJfguYwNCivguKrguLjguJfguLTguJkg4Lia4Li54Lij4LiT4Liq4Li04LiZDQor4Liq4Li44LiX4Li04LiZIOC4oOC4suC4hOC4ouC4sOC4p+C4seC4mOC4meC5jA0KK+C4quC4uOC4l+C4tOC4mSDguKTguJfguKPguLLguITguKMNCivguKrguLjguJfguLTguJkg4Liq4LiZ4LiX4Lit4LiHDQor4Liq4Li44LiX4Li04LiZIOC5geC4quC4p+C4h+C4mOC4teC4o+C4sA0KK+C4quC4uOC4l+C4tOC4meC4tSDguYLguIHguKHguKXguKrguLTguIfguKvguYwNCivguKrguLjguJfguLTguKjguLIg4Lit4Li44LiU4Lih4LiI4Liy4Lij4Li44Lih4LiT4Li1DQor4Liq4Li44LiY4LiZIOC4iuC4ueC4iuC4seC4og0KK+C4quC4uOC4mOC4mSDguKXguLTguKHguJvguKHguJnguJXguYwNCivguKrguLjguJjguKMg4LiI4Li04LiV4LiB4Lij4Li14Liq4LijDQor4Liq4Li44LiY4Lij4Lij4LihIOC4iuC4seC4ouC4qOC4o+C4teC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4mOC4o+C4o+C4oSDguJrguLjguI3guYDguK3guIHguJrguLjguKjguKLguYwNCivguKrguLjguJjguKPguKPguKEg4LmA4Lil4Li04Lio4Lie4LiH4Lip4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44LiY4Lij4Lij4LihIOC4q+C4sOC4quC4tOC4leC4sOC5gOC4p+C4ig0KK+C4quC4uOC4mOC4seC4jeC4jeC4siDguYLguJ7guJjguLTguKPguLHguIrguJXguLLguIfguIHguLnguKMNCivguKrguLjguJjguLIg4Lir4LiH4Lip4LmM4Lij4Lix4LiV4LiZ4Lit4Li44LiX4Lix4LiiDQor4Liq4Li44LiY4Liy4LiX4Li04Lie4Lii4LmMIOC4iuC4ouC4suC4h+C4qOC4uA0KK+C4quC4uOC4mOC4suC4l+C4tOC4nuC4ouC5jCDguKjguKPguLXguKHguLjguIHguILguYwNCivguKrguLjguJjguLLguKDguKPguJPguYwg4Liq4Li44LiX4LiY4Li04LiZ4LiyDQor4Liq4Li44LiY4Liy4Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4guC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4quC4uOC4mOC4suC4quC4tOC4meC4tSDguKfguLTguIjguLTguJXguKPguLLguJnguJnguJfguYwNCivguKrguLjguJjguLTguJTguLIg4LiK4Li34LmI4LiZ4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44LiY4Li04LiU4LiyIOC4qOC4tOC4o+C4sOC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4quC4uOC4mOC4tOC4nuC4oyDguKrguK3guJnguKHguLHguIcNCivguKrguLjguJjguLUg4LiB4Lij4Lit4Li44LmE4LijDQor4Liq4Li44LiY4Li1IOC4ieC4seC4leC4o+C4reC4oOC4tOC4p+C4seC4meC4l+C5jA0KK+C4quC4uOC4mOC4tSDguYDguJXguYjguLLguJfguK3guIcNCivguKrguLjguJjguLUg4Lia4Li44LiT4Lii4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Liq4Li44LiY4Li1IOC4oeC4suC4peC4teC4qOC4o+C4tQ0KK+C4quC4uOC4mOC4tSDguKfguLTguYDguKjguKnguKrguLjguJnguJfguKPguKrguIHguLjguKUNCivguKrguLjguJjguLUg4Liq4Li44LiY4Lij4Lij4Lih4LiQ4Li04LiV4Li0DQor4Liq4Li44LiY4Li14LiU4LiyIOC4geC4oeC4peC4o+C4seC4leC4meC4sg0KK+C4quC4uOC4mOC4teC4o+C4siDguITguLjguJPguJnguLTguKPguLHguJnguJTguKMNCivguKrguLjguJjguLXguKPguLIg4Lie4Lil4Liq4LiZ4LiwDQor4Liq4Li44LiY4Li14Lij4LiyIOC4reC4oeC4o+C4meC4pOC4meC4suC4lg0KK+C4quC4uOC4mOC4teC4o+C5jCDguJvguKPguLXguIrguLLguJnguLjguKfguLHguJLguJnguYwNCivguKrguLjguJjguLXguKXguLIg4LiY4LiZ4Liw4Lik4LiX4LiY4Li04LmM4LmC4Lij4LiI4LiZ4LmMDQor4Liq4Li44LiZ4LiX4LijIOC4geC4tOC4iOC4iOC4uOC4peC4peC4iOC4suC4o+C4tOC4lQ0KK+C4quC4uOC4meC4l+C4oyDguILguLHguJnguJfguLDguKPguLLguKENCivguKrguLjguJnguJfguKMg4LmC4LiE4LmJ4Lin4LiZ4Lik4Lih4Li04LiV4LijDQor4Liq4Li44LiZ4LiX4LijIOC4iOC4tOC4o+C4suC4ouC4uOC4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4meC4l+C4oyDguIrguLLguI0NCivguKrguLjguJnguJfguKMg4LmB4LiL4LmI4Lif4Lit4LiHDQor4Liq4Li44LiZ4LiX4LijIOC4leC4o+C4sOC4geC4ueC4peC4pOC4l+C4mOC4tOC5gOC4lOC4ig0KK+C4quC4uOC4meC4l+C4oyDguJfguKPguLHguJ7guKLguYzguYDguIjguKPguLTguI0NCivguKrguLjguJnguJfguKMg4LiY4Li04LiK4Liy4LiB4Lij4LiT4LmMDQor4Liq4Li44LiZ4LiX4LijIOC4muC4seC4p+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4uOC4meC4l+C4oyDguJvguKPguLDguKDguLLguYLguKPguIjguJnguYwNCivguKrguLjguJnguJfguKMg4Lie4LiI4LiZ4LmM4LiY4LiZ4Lih4Liy4LioDQor4Liq4Li44LiZ4LiX4LijIOC4nuC4uOC4kuC4tOC4geC4o+C4geC4uOC4pQ0KK+C4quC4uOC4meC4l+C4oyDguKDguLnguKHguLTguK3guYjguK3guJkNCivguKrguLjguJnguJfguKMg4Lii4Lio4LmB4LiB4LmJ4LinDQor4Liq4Li44LiZ4LiX4LijIOC4o+C4uOC5iOC4h+C5geC4iOC5ieC4hw0KK+C4quC4uOC4meC4l+C4oyDguYDguKXguYnguLLguKfguLTguIrguLHguKINCivguKrguLjguJnguJfguKMg4Lin4Li04LiK4Liy4LiK4Liy4LiNDQor4Liq4Li44LiZ4LiX4LijIOC4qOC4o+C4teC5geC4quC4h+C4n+C5ieC4sg0KK+C4quC4uOC4meC4l+C4oyDguKrguK3guJnguKrguLUNCivguKrguLjguJnguJfguKMg4Liq4Li44LiC4Lih4Lix4LiiDQor4Liq4Li44LiZ4LiX4LijIOC5gOC4quC4t+C4reC5g+C4q+C4jeC5iA0KK+C4quC4uOC4meC4l+C4oyDguK3guJnguLjguYDguJTguIoNCivguKrguLjguJnguJfguKMg4Lit4Li04LmI4Lih4LmA4Lit4Li04Lia4Liq4Li44LiCDQor4Liq4Li44LiZ4LiX4Lij4LiyIOC4meC4p+C4peC4p+C4tOC4iOC4tOC4leC4ow0KK+C4quC4uOC4meC4l+C4o+C4tSDguIHguK3guKrguLTguIfguKvguKfguLHguJLguJnguLINCivguKrguLjguJnguJfguKPguLUg4LiI4Lix4LiZ4LiX4Lin4Li44LiS4Li0DQor4Liq4Li44LiZ4LiX4Lij4Li1IOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC4meC4l+C4o+C4tSDguJfguLLguKPguKHguKLguYwNCivguKrguLjguJnguJfguKPguLUg4Lib4Lix4LiN4LiN4Liy4LiY4Lix4LiN4LiN4LiwDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC5hOC4nuC4qOC4suC4peC4p+C4tOC4iOC4tOC4leC4o+C4meC4uOC4ig0KK+C4quC4uOC4meC4l+C4o+C4tSDguKXguLPguYTguKLguJfguK3guIcNCivguKrguLjguJnguJfguKPguLUg4Lio4Li04Lil4Lib4Liq4Liy4LiE4LijDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC5geC4quC4h+C5gOC4h+C4tOC4mQ0KK+C4quC4uOC4meC4l+C4o+C4tSDguYDguK3guLXguYjguKLguKHguKTguIHguKnguYzguKjguLTguKPguLQNCivguKrguLjguJnguJnguJfguYwg4Liq4Li44Lin4LiH4Lio4LmMDQor4Liq4Li44LiZ4Lix4LiZIOC4m+C4o+C4sOC4geC4suC4ouC4qOC4tOC4peC4m+C5jA0KK+C4quC4uOC4meC4seC4meC4l+C4o+C4siDguITguLPguJrguKPguKPguKXguLfguK0NCivguKrguLjguJnguLHguJnguJfguLIg4LiE4LiK4LiZ4Liy4LiEDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4ieC4seC4meC4l+C4qOC4suC4quC4leC4o+C5jOC4o+C4seC4qOC4oeC4tQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguYHguIvguYjguYDguJXguLXguKINCivguKrguLjguJnguLHguJnguJfguLIg4LmC4LiV4Lih4Liy4LiZ4LiwDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4meC4tOC4peC4qOC4o+C4tQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguYLguJvguKnguKLguLLguJnguJnguJfguYwNCivguKrguLjguJnguLHguJnguJfguLIg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4o+C4seC4h+C4qeC4teC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguKfguKPguIHguLTguIjguK3guLLguJfguKMNCivguKrguLjguJnguLHguJnguJfguLIg4Lio4Li44Lig4Lih4Liy4LiV4Lij4LiyDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4quC4uOC4o+C4oOC4seC4geC4lOC4tQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguK3guLHguKjguKfguJnguLHguKLguIHguLTguIgNCivguKrguLjguJnguLHguJnguJfguYwg4LiB4Li04Lii4Liw4LmB4Lie4LiX4Lii4LmMDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4h+C4suC4oeC4reC4seC4hOC4o+C4geC4uOC4pQ0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguInguLHguJXguKPguYHguIHguYnguKcNCivguKrguLjguJnguLHguJnguJfguYwg4LmB4LiL4LmI4Lir4Lin4LmI4Lit4LiHDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4leC4suC4m+C4quC4meC4seC4meC4l+C4meC5jA0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguJjguKPguKPguKHguKfguIfguKjguYzguKfguLHguJLguJnguYwNCivguKrguLjguJnguLHguJnguJfguYwg4Lia4Li54Lij4LiT4LmM4Lil4Lit4LihDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4nuC4p+C4h+C4meC4tOC4pQ0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguKHguIfguITguKUNCivguKrguLjguJnguLHguJnguJfguYwg4Lij4Lix4LiH4Liq4Li04LiV4LmA4Liq4LiW4Li14Lii4LijDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguKjguLTguKPguLTguIHguLLguKPguJPguYwNCivguKrguLjguJnguLHguJnguJfguYwg4Liq4Li04LiZ4LiY4Li44LmM4Lib4Lij4Liw4Liq4Lie4LiK4Lix4LiiDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4q+C4reC4oeC4nuC4uOC4kg0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguYDguK3guIHguKfguLHguJLguJnguYwNCivguKrguLjguJnguLHguKIg4Lih4Lii4Li44Lij4LiZ4Liy4LiE4Li04LiZDQor4Liq4Li44LiZ4Liy4LiEIOC4q+C4reC4oeC4q+C4p+C4pQ0KK+C4quC4uOC4meC4suC4o+C4tSDguKrguIfguYDguITguKPguLLguLDguKvguYwNCivguKrguLjguJnguLTguJTguLIg4LiV4Lix4LiZ4LiB4Lix4LiZ4Lig4Lix4LiiDQor4Liq4Li44LiZ4Li04LiV4Lii4LiyIOC5geC4geC5ieC4p+C5gOC4reC4teC5iOC4ouC4oQ0KK+C4quC4uOC4meC4tOC4leC4ouC5jCDguKrguLjguJnguJfguKMNCivguKrguLjguJnguLTguKDguLIg4Lij4Li44LmI4LiH4LmA4Lih4LiG4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiZ4Li04Lip4LiyIOC4iOC4seC4meC5gOC4geC4tOC4lA0KK+C4quC4uOC4meC4tOC4quC4siDguIjguLHguJnguJfguJrguLnguKXguKLguYwNCivguKrguLjguJnguLTguKrguLIg4LiV4Lix4LiZ4LiV4Li04LiB4Li44Lil4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Li44LiZ4Li04Liq4LiyIOC4nuC4tOC4l+C4ouC4suC4mOC4meC4suC4quC4geC4uOC4pQ0KK+C4quC4uOC4meC4tOC4quC4siDguKfguLHguIrguKPguJ7guIfguKjguYwNCivguKrguLjguJnguLTguKrguLIg4LmA4Lir4Lil4Li34Lit4LiH4Lij4Liw4LiG4Lix4LiHDQor4Liq4Li44LiZ4Li1IOC4hOC4h+C4quC4tOC4meC4l+C4p+C4teC4quC4uOC4gg0KK+C4quC4uOC4meC4tSDguYHguIvguYjguYDguIjguLXguKINCivguKrguLjguJnguLUg4LiZ4Li04LmI4Lih4LiZ4LmJ4Lit4LiiDQor4Liq4Li44LiZ4Li1IOC4oeC4tOC5iOC4h+C4oeC4k+C4teC4meC4suC4hOC4tOC4mQ0KK+C4quC4uOC4meC4tSDguKjguKPguLXguKrguLjguKPguLXguKLguYzguYTguJ7guKjguLLguKUNCivguKrguLjguJnguLUg4Lit4Lix4Lio4Lin4LmA4LiI4Lij4Li04LiN4Lil4Liy4LigDQor4Liq4Li44LiZ4Li14Lii4LmM4Lij4Lix4LiV4LiZ4LmMIOC4qOC4tOC4o+C4tOC5gOC4peC4tOC4qOC5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C4quC4uOC4meC4teC4ouC5jCDguIHguLjguKXguKTguIrguLLguIHguKMNCivguKrguLjguJnguLXguKLguYwg4LiE4LiZ4Lih4Lix4LmI4LiZDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4iOC4suC4leC4uOC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguInguLHguJnguJfguKrguKHguJrguLHguJXguLQNCivguKrguLjguJnguLXguKLguYwg4LmC4LiK4LiV4Li04Lih4LiyDQor4Liq4Li44LiZ4Li14Lii4LmMIOC5geC4i+C5iOC4peC5ieC4rQ0KK+C4quC4uOC4meC4teC4ouC5jCDguJTguLLguKPguLTguIHguLLguKPguYzguJnguJnguJfguYwNCivguKrguLjguJnguLXguKLguYwg4LmB4LiV4LmJ4Lih4LmA4LiV4Li04LihDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4mOC4meC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguJnguLTguKPguLjguJXguJXguLTguJnguLLguJnguJnguJfguYwNCivguKrguLjguJnguLXguKLguYwg4Lib4Lij4Li14LiK4Liy4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4nuC4o+C4q+C4oeC4quC4uOC4p+C4tOC4iuC4seC4og0KK+C4quC4uOC4meC4teC4ouC5jCDguYHguJ7guKPguKrguLjguKfguLHguJLguJnguYzguKjguLTguKXguJvguYwNCivguKrguLjguJnguLXguKLguYwg4Lih4Liy4LiX4Lit4LiHDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4o+C4seC4leC4meC4oOC4ueC4oeC4tOC4oOC4tOC4jeC5guC4jQ0KK+C4quC4uOC4meC4teC4ouC5jCDguKXguLTguYnguKHguJ7guKPguKPguLHguJXguJnguYwNCivguKrguLjguJnguLXguKLguYwg4Lin4Lij4Lin4Li44LiS4Li0DQor4Liq4Li44LiZ4Li14Lii4LmMIOC4qOC4o+C4teC4nuC4seC4iuC4o+C4nuC4seC4meC4mOC5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguKrguKPguYnguK3guKLguJfguK3guIcNCivguKrguLjguJnguLXguKLguYwg4Liq4Li44LiC4Li44Lih4Lin4Lij4Lie4LiI4LiZ4LmMDQor4Liq4Li44LiZ4Li14Lii4LmMIOC5geC4quC4h+C5g+C4ouC4oeC4k+C4tQ0KK+C4quC4uOC4meC4teC4ouC5jCDguK3guJnguLjguJ7guIfguKjguYzguK3guKDguLHguKINCivguKrguLjguJnguLXguKLguYwg4Lit4Li04LiH4Liq4LiB4Li44Lil4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Li44LiZ4Li14Lij4Lix4LiV4LiZ4LmMIOC4iOC4h+C4m+C4o+C4teC4iuC4sg0KK+C4quC4uOC5iOC4mSDguYDguIHguLTguJTguKXguLLguKANCivguKrguLjguJrguKPguKPguJPguYwg4LmB4LiB4LmI4LiZ4Liq4Liy4LijDQor4Liq4Li44Lia4Li04LiZIOC4leC4o+C4teC4m+C4seC4iOC4ouC4suC4geC4ow0KK+C4quC4uOC4muC4tOC4mSDguYLguJ7guJjguLTguYzguK3guLHguKHguJ7guKMNCivguKrguLjguJrguLTguJkg4Lit4Liy4LiC4Li44Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4geC4meC4geC4p+C4uOC4kuC4tA0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguIjguLHguJnguJfguKPguYzguKrguLTguJkNCivguKrguLjguJvguKPguLLguJPguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4mOC4teC4o+C4reC4meC4uOC4o+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguJ7guLHguIrguKPguJ7guIjguJnguLLguIHguKPguJPguYwNCivguKrguLjguJvguKPguLLguJPguLUg4Lij4Lix4LiV4LiZ4LiE4Liy4LihDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4qOC4o+C4teC4l+C4suC5guC4ruC4oQ0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguYTguKrguKLguKrguKHguJrguLHguJXguLQNCivguKrguLjguJvguKPguLLguJnguLUg4LiV4Lix4LiZ4Liq4Li04LiX4LiY4Li0DQor4Liq4Li44Lib4Lij4Li14LiU4LiyIOC5gOC4oeC4huC4reC4meC4seC4meC4leC5guC4geC4qOC4pQ0KK+C4quC4uOC4m+C4o+C4teC4ouC4siDguKjguLTguKXguLLguYDguIHguKkNCivguKrguLjguJvguLHguJkg4Lie4Lil4LmA4Liq4LiZ4LiyDQor4Liq4Li44Lie4LiH4Lio4LmMIOC4meC4sOC4oeC4suC4leC4o+C5jA0KK+C4quC4uOC4nuC4h+C4qeC5jCDguYDguK3guLXguYjguKLguKHguKTguIHguKnguYzguIrguLHguKINCivguKrguLjguJ7guIjguJnguYwg4LiB4Li04LiV4LiV4Li04LmC4Lig4LiE4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4hOC4h+C4nuC5iOC4p+C4hw0KK+C4quC4uOC4nuC4iOC4meC5jCDguIjguLHguJnguJfguKPguYzguKfguLTguYDguKHguKXguLfguK3guIcNCivguKrguLjguJ7guIjguJnguYwg4LmA4LiI4Lij4Li04LiN4Lie4Lij4Lir4Lih4Lih4Liy4LiV4Lij4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4iuC5ieC4suC4h+C4p+C4h+C4qOC5jOC4l+C4reC4hw0KK+C4quC4uOC4nuC4iOC4meC5jCDguYHguIvguYjguYLguIfguYnguKcNCivguKrguLjguJ7guIjguJnguYwg4LiV4Lix4LiZ4LiV4Lij4Liw4LiB4Li54LilDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC5gOC4l+C4teC4ouC4oeC4l+C4seC4mg0KK+C4quC4uOC4nuC4iOC4meC5jCDguJnguLTguKPguLHguJnguJXguKrguLjguILguKPguLHguJXguJnguYwNCivguKrguLjguJ7guIjguJnguYwg4Lib4Lij4Liw4Lig4Liy4Lit4Lig4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4nuC4iOC4meC4suC4p+C4o+C4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguJ7guLbguYjguIfguJ7guLHguJLguJnguLINCivguKrguLjguJ7guIjguJnguYwg4Lih4LiH4LiE4Lil4LiB4Li04LiI4LiK4Lix4Lii4LiB4Liy4LijDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC5gOC4ouC4teC5iOC4ouC4oeC4p+C4tOC4jeC4jeC4sA0KK+C4quC4uOC4nuC4iOC4meC5jCDguKTguIHguKnguYzguYLguKjguKDguLTguKnguJDguYwNCivguKrguLjguJ7guIjguJnguYwg4Lin4LiH4Lio4LmM4Lin4Lij4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4p+C4tOC4quC4suC4o+C4l+C4suC4meC4meC4l+C5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguKjguLTguKPguLTguKfguKPguKPguJPguIrguLHguKINCivguKrguLjguJ7guIjguJnguYwg4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4Liy4Lij4Lix4LiB4Lip4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4quC4uOC4meC4l+C4o+C4p+C4tOC5gOC4meC4leC4o+C5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguKvguJnguLnguYHguKLguYnguKENCivguKrguLjguJ7guIjguJnguYwg4Lit4Lii4Li54LmI4Lii4Lix4LmI4LiH4Lii4Li34LiZDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4reC4uOC4l+C4seC4ouC5guC4iuC4leC4tOC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4nuC4nuC4leC4siDguJ7guKPguKfguIrguLTguKPguLLguKDguLINCivguKrguLjguJ7guKMg4LiI4Lij4Lij4Lii4Liy4LiH4Liy4LihDQor4Liq4Li44Lie4LijIOC5geC4i+C5iOC4oeC4sg0KK+C4quC4uOC4nuC4oyDguJjguKPguKPguKHguLLguJ7guLTguJfguLHguIHguKnguYzguJ7guKMNCivguKrguLjguJ7guKMg4Lie4Lil4Liw4Lie4Lil4Li14Lin4Lix4Lil4Lii4LmMDQor4Liq4Li44Lie4LijIOC4o+C4uOC4iOC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4nuC4oyDguKjguLjguKDguKXguLHguIHguKnguJPguYzguJnguLLguKPguLUNCivguKrguLjguJ7guKMg4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lih4LiB4Lij4Liy4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lie4Lij4LiK4Lix4LiiIOC4p+C4o+C4o+C4k+C4l+C4tOC4oQ0KK+C4quC4uOC4nuC4o+C4o+C4kyDguIjguLHguJnguJ7guLTguKjguLLguKUNCivguKrguLjguJ7guKPguKPguJMg4Lie4LiH4Lio4LmM4LiI4Li14Lij4LiB4Liz4LiI4LijDQor4Liq4Li44Lie4Lij4Lij4LiTIOC4quC4uOC4guC4reC4o+C4uOC4kw0KK+C4quC4uOC4nuC4o+C4o+C4k+C4siDguYDguILguLXguKLguKfguIrguK3guLjguYnguKENCivguKrguLjguJ7guKPguKPguJPguLUg4LiE4Lij4Li54LiL4LitDQor4Liq4Li44Lie4Lij4Lij4LiT4Li1IOC5geC4i+C5iOC4geC4teC5iQ0KK+C4quC4uOC4nuC4o+C4o+C4k+C4tSDguJjguKPguKPguKHguITguLXguKPguLUNCivguKrguLjguJ7guKPguKPguJPguLUg4Lie4Lij4Lie4Lix4LiS4LiZ4LiZ4Liy4LiH4LiB4Li54LijDQor4Liq4Li44Lie4Lij4Lij4LiT4Li1IOC4o+C4uOC4iOC4tOC4oOC4seC4geC4lOC4tOC5jA0KK+C4quC4uOC4nuC4o+C4o+C4k+C4tSDguKrguKHguJrguLjguI3guI3guLLguJnguJnguJfguYwNCivguKrguLjguJ7guKPguKPguJPguLUg4Lit4Lix4Lia4LiU4Li44Lil4Lil4Liy4Liq4LmMDQor4Liq4Li44Lie4Lij4Lij4Lix4LiV4LiZ4LmMIOC5gOC4q+C4peC4t+C4reC4h+C4iuC4p+C4nuC4h+C4qOC5jA0KK+C4quC4uOC4nuC4pSDguYDguInguKXguLTguKHguYDguIHguLXguKLguKPguJXguLTguIHguLjguKUNCivguKrguLjguJ7guKUg4LiZ4LmJ4Liz4LmA4Lie4LiK4LijDQor4Liq4Li44Lie4LilIOC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4nuC4pSDguKrguKHguJ7guIfguKnguYwNCivguKrguLjguJ7guKUg4LmA4Lit4Li34LmJ4Lit4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Liq4Li44Lie4Lix4LiS4LiM4LiyIOC5geC4iOC4h+C4suC4oQ0KK+C4quC4uOC4nuC4seC4kuC4meC5jCDguIHguLTguIjguJrguLLguKPguKHguLUNCivguKrguLjguJ7guLHguJLguJnguYwg4LiV4Lix4LmJ4LiH4Lio4Lij4Li14Lib4Lij4Liw4LiK4Li04LiVDQor4Liq4Li44Lie4Lix4LiS4LiZ4LmMIOC4m+C4suC4p+C4sOC4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4quC4uOC4nuC4seC4kuC4meC5jCDguKPguLHguJXguJnguJ7guJnguLHguIcNCivguKrguLjguJ7guLHguJLguJnguYwg4Lio4Liy4Liq4LiV4Lij4LmM4Liq4Li04Lij4Li04Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4Li44Lie4Lix4LiS4LiZ4LmMIOC4reC4tOC4l+C4mOC4tOC5gOC4lOC4iuC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguIHguLHguJnguK3guKPguLQNCivguKrguLjguJ7guLHguJXguKPguLIg4LiH4Liy4Lih4Lil4Li04LiC4Li04LiV4Lin4Lix4LiS4LiZ4LiB4Li44LilDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4iuC4tOC4meC4p+C4teC4o+C4sOC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguJXguLHguIfguIHguKPguLHguJXguJnguYwNCivguKrguLjguJ7guLHguJXguKPguLIg4LiZ4Lix4LiZ4LiX4Lij4Lix4LiV4LiZ4Liy4LiB4Li54LilDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC5hOC4nOC5iOC5geC4geC5ieC4pw0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguKHguLHguYjguIfguKrguLjguKfguKPguKPguJMNCivguKrguLjguJ7guLHguJXguKPguLIg4LmA4Lil4Li04Lio4Lit4Lig4Li04Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4qOC4uOC4guC4sOC4p+C4suC4l+C4tQ0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguKrguLjguJXguKPguLXguYDguIrguLLguKfguJnguIHguLjguKUNCivguKrguLjguJ7guLHguJXguKPguLIg4LmC4Lir4Lij4Liy4LiZ4Li04LiE4LihDQor4Liq4Li44Lie4Lix4LiV4Lio4LijIOC4o+C4seC4geC4qeC5jOC4iuC4mQ0KK+C4quC4uOC4nuC4siDguIjguLHguJnguJfguKPguYzguJfguLTguJ7guKLguYwNCivguKrguLjguJ7guLTguIrguI3guLIg4Lie4Li04Lia4Li54Lil4Lig4Liy4LiZ4Li44Lin4Lix4LiY4LiZDQor4Liq4Li44Lie4Li04LiV4LijIOC4q+C4suC4jeC4k+C4o+C4h+C4hOC5jA0KK+C4quC4uOC4nuC4tOC4mSDguYHguIvguYjguK3guLbguYnguIcNCivguKrguLjguJ7guLTguJkg4Lin4Lij4Liy4Lie4Lik4LiB4Lip4LmMDQor4Liq4Li44Lie4Li04LiZ4LiU4LiyIOC4p+C4uOC4kuC4tOC4iuC4seC4og0KK+C4quC4uOC4nuC4tOC4qCDguIjguLHguJnguYHguIjguYjguKHguIjguLTguJXguJXguYwNCivguKrguLjguJ7guLTguKgg4Lin4LiH4Lio4LmM4Lig4Li54Lih4Li04LiZ4LiX4Lij4LmMDQor4Liq4Li44Lie4Li14Lij4LmM4Lie4Lix4LiS4LiZ4LmMIOC4iOC4reC4h+C4nuC4suC4meC4tOC4ig0KK+C4quC4uOC4oOC4iOC4tOC4o+C4siDguJTguYnguKfguIfguJTguLUNCivguKrguLjguKDguJPguLHguJAg4LiZ4Li04Lil4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lig4LijIOC5guC4guC4p+C4tOC4keC4ueC4o+C4geC4tOC4iA0KK+C4quC4uOC4oOC4o+C4k+C5jCDguIfguLLguKHguYDguIfguLTguJnguKfguKPguKPguJPguYwNCivguKrguLjguKDguKPguJPguYwg4Lie4Lij4LiH4Liy4LihDQor4Liq4Li44Lig4Lij4LiT4LmMIOC5gOC4quC4t+C4reC4iOC4uOC5ieC4og0KK+C4quC4uOC4oOC4peC4seC4hOC4k+C5jCDguJnguLLguITguLDguKrguLHguJnguJXguYwNCivguKrguLjguKDguLHguIIg4Liq4Lig4Liy4LiE4LiB4Li44LilDQor4Liq4Li44Lig4Lix4LiEIOC4q+C4h+C4qeC5jOC4ieC4peC4suC4lA0KK+C4quC4uOC4oOC4seC4lyDguJnguIHguKjguLTguKPguLQNCivguKrguLjguKDguLHguJfguKMg4Lie4Li04LiZ4Li04LiI4LmA4Lin4LiK4LiB4Liy4LijDQor4Liq4Li44Lig4Lix4LiX4Lij4LiyIOC4iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4oOC4seC4l+C4o+C4siDguJrguLjguI3guIrguLHguKLguKLguLjguJfguJjguKjguLHguIHguJTguLTguYwNCivguKrguLjguKDguLHguJfguKPguLIg4Lin4Lix4LiS4LiZ4LmA4LiB4Li14Lii4Lij4LiV4Li04Liq4Lij4LijDQor4Liq4Li44Lig4Lix4LiX4Lij4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4quC4uOC4gg0KK+C4quC4uOC4oOC4siDguYDguIHguKnguKPguKrguKHguJrguLHguJXguLQNCivguKrguLjguKDguLIg4LiJ4Lil4Liy4LiU4Liq4Li44LiZ4LiX4Lij4Lin4Liy4LiX4Li1DQor4Liq4Li44Lig4LiyIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4quC4uOC4oOC4siDguJfguKPguLHguJ7guKLguYzguK3guKfguKLguKrguLjguIINCivguKrguLjguKDguLIg4LmA4Lib4Li14Lii4Lij4Lit4LiUDQor4Liq4Li44Lig4LiyIOC4oeC4uOC4meC4tOC4meC4l+C4o+C5jOC4meC4tOC4oeC4tOC4leC4leC5jA0KK+C4quC4uOC4oOC4siDguYDguKXguLTguKjguYHguKrguKfguIfguIHguLTguIgNCivguKrguLjguKDguLIg4Lio4Li04Lij4Li04Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Li44Lig4LiyIOC4quC4uOC4meC4l+C4o+C5gOC4geC4qA0KK+C4quC4uOC4oOC4siDguK3guLHguIfguITguJPguLLguKfguLTguKjguLHguKXguKLguYwNCivguKrguLjguKDguLLguIfguITguYwg4LmA4LiX4Lit4LiU4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Li44LilDQor4Liq4Li44Lig4Liy4LiT4Li1IOC4iOC5ieC4reC4ouC4p+C4tOC4peC4seC4og0KK+C4quC4uOC4oOC4suC4k+C4tSDguJnguLLguK7guLTguKENCivguKrguLjguKDguLLguJPguLUg4Lin4LiH4Lio4LmM4Lin4Li04LiX4Li54LmE4LiXDQor4Liq4Li44Lig4Liy4LiT4Li1IOC5gOC4reC4teC5ieC4ouC4p+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC4oOC4suC4niDguIHguJXguLHguI3guI3guLkNCivguKrguLjguKDguLLguJ4g4LiE4Liz4LmB4Lic4LiHDQor4Liq4Li44Lig4Liy4LieIOC4iuC4uOC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4oOC4suC4niDguYLguJXguKnguIjguKPguLANCivguKrguLjguKDguLLguJ4g4Lia4Li44LiN4LiX4Lij4Li04LiB4LiK4Liy4LiV4Li0DQor4Liq4Li44Lig4Liy4LieIOC4nuC4p+C4h+C4q+C4tOC4oeC4p+C4seC4meC4leC5jA0KK+C4quC4uOC4oOC4suC4niDguKLguKjguLDguKrguLTguJnguJjguLjguYwNCivguKrguLjguKDguLLguJ4g4Lin4Lix4LiZ4Lin4Li04LmA4Lin4LiBDQor4Liq4Li44Lig4Liy4LieIOC4quC4suC4ouC4geC4oeC4pQ0KK+C4quC4uOC4oOC4suC4niDguK3guKDguLTguYLguIoNCivguKrguLjguKDguLLguJ7guKMg4LiB4Liz4Lir4LiZ4LiU4LmB4LiZ4LmIDQor4Liq4Li44Lig4Liy4Lie4LijIOC4iOC4h+C4quC4uOC4guC4geC4tOC4iOC4nuC4suC4meC4tOC4ig0KK+C4quC4uOC4oOC4suC4nuC4oyDguYHguIjguYnguIfguKrguJnguLTguJcNCivguKrguLjguKDguLLguJ7guKMg4LmB4LiL4LmI4LiZ4LizDQor4Liq4Li44Lig4Liy4Lie4LijIOC4leC4seC5ieC4h+C4muC4o+C4o+C5gOC4iOC4tOC4lOC4p+C4meC4tOC4ig0KK+C4quC4uOC4oOC4suC4nuC4oyDguYDguJfguLXguKLguJnguJvguKPguLDguKLguLnguKMNCivguKrguLjguKDguLLguJ7guKMg4Lia4Li44LiN4LmA4LiK4Li04LiU4LiK4Lix4Lii4Lii4Lix4LiZ4LiV4LmMDQor4Liq4Li44Lig4Liy4Lie4LijIOC4nuC4seC4kuC4meC4m+C4o+C4sOC4l+C4teC4mw0KK+C4quC4uOC4oOC4suC4nuC4oyDguKDguLnguYjguYLguKrguKDguLINCivguKrguLjguKDguLLguJ7guKMg4LmA4Lij4Li34Lit4LiH4Lio4Lij4Li1DQor4Liq4Li44Lig4Liy4Lie4LijIOC4p+C4o+C4o+C4k+C4geC5ieC4reC4mQ0KK+C4quC4uOC4oOC4suC4nuC4oyDguKjguLTguKPguLTguKXguLHguIHguKnguJPguKHguLLguJnguJnguJfguYwNCivguKrguLjguKDguLLguJ7guKMg4Liq4Li44LiX4Lin4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44Lig4Liy4Lie4LijIOC5gOC4q+C4peC4teC5iOC4ouC4oeC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4oOC4suC4nuC4oyDguK3guLTguJnguJfguJnguLLguJnguLjguIoNCivguKrguLjguKDguLLguJ7guKPguKPguJMg4LiK4Li44LmI4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Li44Lig4Liy4Lie4Lij4Lij4LiTIOC4quC4seC4meC4leC4tOC4quC4uOC4gg0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguIHguKXguYnguLLguKvguLLguI0NCivguKrguLjguKDguLLguKDguKPguJPguYwg4LmC4LiE4LiV4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4ieC4suC4ouC4p+C4tOC5gOC4iuC4teC4ouC4ow0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguYHguIvguYjguK3guLHguYnguIcNCivguKrguLjguKDguLLguKDguKPguJPguYwg4LmE4LiV4Lij4LiB4Li44LilDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4meC4tOC4qOC4suC4oOC4suC4geC4ow0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguJ7guLHguJLguJnguLLguKfguJPguLTguIrguKLguYwNCivguKrguLjguKDguLLguKDguKPguJPguYwg4LmA4Lii4LmH4LiZ4LiJ4LmI4LizDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4p+C4iuC4tOC5guC4o+C4oOC4suC4quC4geC4o+C4k+C5jA0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguKjguLTguKPguLTguYLguKrguKDguJPguLINCivguKrguLjguKDguLLguKDguKPguJPguYwg4Liq4Li44LiY4Li14Lij4Liy4LiY4Li04LiB4Li44LilDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4reC4suC4oOC4suC4iuC4meC4suC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4oOC4suC4o+C4seC4leC4meC5jCDguIjguLHguIHguKPguJ7guLHguJnguJjguLjguYwNCivguKrguLjguKDguLLguKPguLHguJXguJnguYwg4Lio4Lij4Li14Lin4Li44LiS4Li04LiK4Liy4LiNDQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC4guC4s+C4meC5ieC4reC4og0KK+C4quC4uOC4oOC4suC4p+C4lOC4tSDguYHguIvguYjguYDguK7guYnguLINCivguKrguLjguKDguLLguKfguJTguLUg4Lib4Li44Lij4Liy4LiY4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC4o+C4seC4h+C4quC4tOC5gOC4quC4meC4siDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC4quC4tOC4h+C4q+C4sOC5gOC4meC4leC4tA0KK+C4quC4uOC4oOC4suC4p+C4lOC4tSDguK3guLjguJvguIrguLXguKfguLANCivguKrguLjguKDguLLguKfguLTguJPguLUg4Lie4Li04Lih4LmC4Liq4LihDQor4Liq4Li44Lig4Liy4LmA4Lie4LmH4LiNIOC4q+C4peC4seC4geC4q+C4suC4jQ0KK+C4quC4uOC4oOC4tOC4lOC4siDguYLguK3guKrguJbguLLguJnguLjguYDguITguKPguLLguLDguKvguYwNCivguKrguLjguKDguLXguJ7guKPguKPguJMg4LiU4Liy4Lij4Liy4LiB4LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguLjguKHguJPguJHguLIg4LiI4Liz4Lib4LiyDQor4Liq4Li44Lih4LiT4LiR4LiyIOC5guC4o+C4iOC4meC4suC5gOC4m+C4o+C4oeC4quC4uOC4gg0KK+C4quC4uOC4oeC4mSDguIHguLPguJvguIfguIvguLHguJkNCivguKrguLjguKHguJkg4Lih4LiY4Li44Lin4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lih4LiZIOC4reC4seC4hOC4o+C4p+C4o+C4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4oeC4meC4l+C4siDguJ7guIfguKnguYzguJ7guLTguJrguLnguKXguKLguYwNCivguKrguLjguKHguJnguLIg4LmE4LiB4Lij4LiB4Liy4LiN4LiI4LiZ4LmMDQor4Liq4Li44Lih4LiZ4LiyIOC4m+C4l+C4teC4m+C4sOC4m+C4suC4k+C4tQ0KK+C4quC4uOC4oeC4meC4siDguKrguIHguLjguKXguKHguIfguITguKXguJnguLLguKENCivguKrguLjguKHguKUg4LmC4LiE4Lin4Liy4LiZ4Li04Liq4Lix4Lii4Liq4Li44LiC4LiB4Li44LilDQor4Liq4Li44Lih4LilIOC4l+C4reC4h+C4nuC4seC4meC4iuC4seC5iOC4hw0KK+C4quC4uOC4oeC4pSDguKPguLjguYjguIfguK3guLjguJTguKHguIHguLTguIgNCivguKrguLjguKHguKUg4Lit4Lii4Li54LmI4LiX4Lit4LiHDQor4Liq4Li44Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC5geC4leC5ieC4o+C4seC4leC4meC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4oeC4suC4k+C4tSDguIHguLTguIjguJrguLjguI3guIrguLHguKINCivguKrguLjguKHguLLguKDguKPguJPguYwg4Lit4Li44LiU4Lih4LmC4LiK4LiEDQor4Liq4Li44Lih4Liy4Lil4Lii4LmMIOC4ouC4tOC5ieC4oeC5gOC4m+C5h+C4meC4quC4uOC4gg0KK+C4quC4uOC4oeC4suC4peC4siDguJjguLnguJvguYDguJfguLXguKLguJnguKvguK3guKENCivguKrguLjguKHguLLguKXguLUg4LiB4Li04Lih4LiK4Li54Lin4Liy4LiT4Li04LiKDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4hOC4h+C4reC4suC4qeC4sg0KK+C4quC4uOC4oeC4suC4peC4tSDguIjguLHguJnguJfguKPguYzguKfguLTguJfguKLguLLguJnguLjguIrguLTguJUNCivguKrguLjguKHguLLguKXguLUg4LmB4LiI4LmI4Lih4Lih4Li1DQor4Liq4Li44Lih4Liy4Lil4Li1IOC4iuC4ueC4quC4seC4h+C4guC5jA0KK+C4quC4uOC4oeC4suC4peC4tSDguYHguIvguYjguYHguKvguYjguKcNCivguKrguLjguKHguLLguKXguLUg4LiV4Li44Lil4Liy4LiU4Li04Lil4LiBDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5gOC4l+C4qOC4meC4sOC5guC4ouC4mOC4tOC4mQ0KK+C4quC4uOC4oeC4suC4peC4tSDguJnguLLguITguYDguKjguKPguJPguLUNCivguKrguLjguKHguLLguKXguLUg4Lia4Li44LiN4Lin4Lij4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5guC4m+C4quC4suC4oOC4tOC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4oeC4suC4peC4tSDguJ7guLTguJfguLHguIHguKnguYzguJ7guLTguJnguLTguIjguJnguLHguJnguJfguYwNCivguKrguLjguKHguLLguKXguLUg4Lig4Li54Lih4Li04Lib4Lij4Li14LiK4LiyDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5hOC4oeC5ieC4q+C4reC4oQ0KK+C4quC4uOC4oeC4suC4peC4tSDguYDguKPguLfguK3guIfguKjguKPguLUNCivguKrguLjguKHguLLguKXguLUg4Lin4LiH4Lio4LmM4LiC4LmJ4Liy4Lir4Lil4Lin4LiHDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4p+C4tOC5hOC4peC5geC4geC5ieC4pw0KK+C4quC4uOC4oeC4suC4peC4tSDguKjguLTguKPguLTguJrguLLguKUNCivguKrguLjguKHguLLguKXguLUg4Liq4Li04LiH4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4quC4ueC5ieC4iuC4tOC4h+C4iuC4seC4og0KK+C4quC4uOC4oeC4suC4peC4tSDguYDguKvguKXguLfguK3guIfguJvguJDguKHguIrguLHguKINCivguKrguLjguKHguLLguKXguLUg4Lit4Liy4Lij4Li14Lin4LiH4LiE4LmMDQor4Liq4Li44Lih4Liy4LioIOC5gOC4geC4tOC4lOC5geC4geC5iOC4meC5geC4geC5ieC4pw0KK+C4quC4uOC4oeC4tOC4leC4oyDguInguLHguJXguKPguIrguLHguKLguKfguLTguKfguLHguJLguJnguLINCivguKrguLjguKHguLTguJXguKMg4Lib4Li44LiN4LiN4Liy4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Li44Lih4Li04LiV4LijIOC4qOC4tOC4o+C4tOC4i+C4uOC5ieC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4oeC4tOC4leC4o+C4siDguYDguIHguLXguKLguKPguJXguLTguYDguK3guLXguYjguKLguKENCivguKrguLjguKHguLTguJXguKPguLIg4LiV4Li14Lij4Lie4Lix4LiS4LiZ4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Li44Lih4Li04LiV4Lij4LiyIOC4oOC4ueC4p+C5gOC4qOC4o+C4qeC4kOC5jA0KK+C4quC4uOC4oeC4tOC4leC4o+C4siDguKrguLTguIfguKvguJfguLHguJUNCivguKrguLjguKHguLTguJnguJfguKPguYwg4Liq4Li44LiZ4LiX4Lij4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Li44Lij4LiB4Liy4LiZ4LiV4LmMIOC4m+C4seC4jeC4jeC4suC4h+C4suC4oQ0KK+C4quC4uOC4o+C4geC4tOC4iCDguYLguKXguKvguJjguLTguJXguJ7guLTguJfguLHguIHguKnguYwNCivguKrguLjguKPguIjguLTguJUg4LmA4LiV4LiK4Liw4Lia4Li54Lij4LiT4LmA4LiX4Lie4Liy4LiB4Lij4LiT4LmMDQor4Liq4Li44Lij4LiI4Li04LiV4LijIOC4meC4meC4l+C5jOC4mOC4meC4m+C4o+C4sOC4geC4tOC4iA0KK+C4quC4uOC4o+C4iuC4seC4oiDguIHguLHguIfguYDguKrguJbguLXguKLguKMNCivguKrguLjguKPguIrguLHguKIg4LiC4LiI4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li04Liq4Li44LiCDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4iOC4o+C4tOC4ouC4suC4meC4seC4meC4l+C5gOC4meC4leC4ow0KK+C4quC4uOC4o+C4iuC4seC4oiDguYDguIjguJnguJvguLTguKLguJ7guIfguKjguYwNCivguKrguLjguKPguIrguLHguKIg4LiK4Lix4Lii4LmA4Liq4LiW4Li14Lii4Lij4LiB4Li04LiIDQor4Liq4Li44Lij4LiK4Lix4LiiIOC5geC4i+C5iOC4hOC4uQ0KK+C4quC4uOC4o+C4iuC4seC4oiDguJMg4LmA4LiK4Li14Lii4LiH4LmD4Lir4Lih4LmIDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4leC4seC5ieC4h+C5gOC4iOC4o+C4tOC4jeC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4o+C4iuC4seC4oiDguJfguKfguLXguKXguLLguKANCivguKrguLjguKPguIrguLHguKIg4LiY4Li14Lij4Liy4LmA4Lin4LiX4Lii4LmM4LiZ4Li44Lie4LiH4Lio4LmMDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4muC4uOC4jeC4nuC4peC4seC4mg0KK+C4quC4uOC4o+C4iuC4seC4oiDguJvguLTguKLguLDguKPguLHguJXguJnguYLguKLguJjguLTguJkNCivguKrguLjguKPguIrguLHguKIg4Lie4Li04Lie4Lix4LiS4Lie4LiH4Lio4LiyDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4oeC4h+C4hOC4peC4muC4ueC4o+C4k+C4sOC4qOC4tOC4o+C4tA0KK+C4quC4uOC4o+C4iuC4seC4oiDguYLguKLguJjguLLguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLjguKPguIrguLHguKIg4Lik4LiX4Lix4Lii4Lij4Li44LmJ4LiHDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4p+C4h+C4qOC5jOC4iOC4suC4o+C4teC4geC4tOC4leC4leC4tA0KK+C4quC4uOC4o+C4iuC4seC4oiDguKfguLTguIjguLLguKPguJPguYzguIHguLHguKLguIHguLTguIgNCivguKrguLjguKPguIrguLHguKIg4Lio4Lij4Li14LmA4LiI4Lij4Li04LiN4Liq4Li44LiC4Lii4Li04LmI4LiHDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4quC4p+C4seC4quC4lOC4tOC5jOC4quC4o+C4o+C4nuC5jA0KK+C4quC4uOC4o+C4iuC4seC4oiDguKrguLjguIjguLTguJnguJTguLLguKHguJPguLUNCivguKrguLjguKPguIrguLHguKIg4LmB4Liq4LiH4Lit4Lij4Li44LiT4Lio4Li04Lij4Li0DQor4Liq4Li44Lij4LiK4Lix4LiiIOC4reC4lOC4uOC4peC4ouC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4o+C4iuC4seC4oiDguK3guLLguIjguKvguLLguI3guKjguLTguKPguLQNCivguKrguLjguKPguIrguLIg4LiX4Lit4LiH4Lie4Li04Lil4LiyDQor4Liq4Li44Lij4LiK4Liy4LiV4Li0IOC4leC4s+C4o+C4suC5gOC4o+C4teC4ouC4hw0KK+C4quC4uOC4o+C4iuC4suC4leC4tCDguKjguKjguLTguJjguJnguLLguJnguLjguKPguLHguIHguKnguYwNCivguKrguLjguKPguJPguLUg4LiV4Lix4LiZ4LiV4Li04Lin4LiT4Li04LiK4LiK4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4LiX4Li04LiZIOC4reC4tOC5ieC4h+C4iOC4sOC4meC4tOC4pQ0KK+C4quC4uOC4o+C4m+C4o+C4teC4iuC5jCDguYLguITguJXguKPguYLguKrguKDguLINCivguKrguLjguKPguJ7guIfguKjguYwg4Lie4Lix4LiZ4LiY4LmM4Lin4Li04Lio4Lin4Liy4LiqDQor4Liq4Li44Lij4Lie4LiH4Lio4LmMIOC5gOC4reC4t+C5ieC4reC4p+C4seC4kuC4meC4suC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguIjguLjguKXguKHguJnguJXguYwNCivguKrguLjguKPguJ7guIfguKnguYwg4LiV4Lix4LmJ4LiH4LmD4LiI4LiB4Liy4Lij4Li44LiT4Lii4LmMDQor4Liq4Li44Lij4Lie4LiH4Lip4LmMIOC4m+C4geC4suC4quC4tOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguKDguLnguJvguKPguLDguYTguJ4NCivguKrguLjguKPguJ7guIfguKnguYwg4Lin4Lix4LiH4LmA4Lit4LiBDQor4Liq4Li44Lij4Lie4LiH4Lip4LmMIOC4quC4uOC4nuC4seC4kuC4meC5jOC4qOC4tOC4peC4m+C5jA0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguK3guLbguYnguIfguK3guLHguKHguJ7guKPguKfguLTguYTguKUNCivguKrguLjguKPguJ7guKMg4Lih4LiT4Li14Liq4Li04LiZ4LiY4Li44LmMDQor4Liq4Li44Lij4Lie4LilIOC4geC4tOC4leC4leC4tOC4lOC4s+C4o+C4hw0KK+C4quC4uOC4o+C4nuC4pSDguITguIfguKrguIHguLjguKUNCivguKrguLjguKPguJ7guKUg4LiI4Lix4LiZ4LmA4Lie4LmH4LiHDQor4Liq4Li44Lij4Lie4LilIOC5gOC4ieC4peC4tOC4oeC4iuC4seC4ouC4meC4uOC4geC4uOC4pQ0KK+C4quC4uOC4o+C4nuC4pSDguYHguIvguYjguJzguLHguYjguIcNCivguKrguLjguKPguJ7guKUg4LiV4Liy4Lib4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4Lie4LilIOC5gOC4l+C4qOC4guC4iOC4ow0KK+C4quC4uOC4o+C4nuC4pSDguJnguLTguYLguITguKPguJ7guLTguJfguLHguIHguKnguYwNCivguKrguLjguKPguJ7guKUg4Lib4Lij4Lix4Lio4Lin4LmM4LmA4Lih4LiY4Li14LiB4Li44LilDQor4Liq4Li44Lij4Lie4LilIOC4nuC4o+C4q+C4oeC4meC4tOC4oeC4tOC4leC4ow0KK+C4quC4uOC4o+C4nuC4pSDguJ7guLnguKXguJfguKfguLUNCivguKrguLjguKPguJ7guKUg4Lih4Liy4Lie4Li54LiZ4Liq4Lin4Lix4Liq4LiU4Li04LmM4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Li44Lij4Lie4LilIOC4o+C4seC4leC4meC5jOC4nuC4h+C4qeC5jOC4nuC4ow0KK+C4quC4uOC4o+C4nuC4pSDguYDguKXguYfguIHguJvguKPguLDguKrguLLguKMNCivguKrguLjguKPguJ7guKUg4Lin4Li04Lii4Liw4LiU4Liy4Lih4LiH4LiE4LilDQor4Liq4Li44Lij4Lie4LilIOC4qOC4tOC4o+C4tOC4iuC4seC4ouC4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4o+C4nuC4pSDguKrguLHguIfguILguYzguKrguLTguIfguKvguYwNCivguKrguLjguKPguJ7guKUg4Liq4Li44Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Li44Lij4Lie4LilIOC4q+C4seC4quC4lOC4tOC4mQ0KK+C4quC4uOC4o+C4nuC4pSDguK3guLTguJnguJfguKPguKXguLHguIHguKnguJPguYwNCivguKrguLjguKPguJ7guLHguJXguKMg4Liq4Li44LiX4LiY4Li04LiY4LiZ4Liy4LiB4LijDQor4Liq4Li44Lij4Lie4Lix4LiZ4LiY4LmMIOC5gOC4leC4iuC4meC4sOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4quC4uOC4o+C4nuC4seC4meC4mOC5jCDguKfguKPguIHguLTguJXguJXguLTguKfguJPguLTguIoNCivguKrguLjguKPguJ7guLUg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Li44Lij4Lig4Li1IOC4l+C4tOC4oeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4oeC4ouC5jCDguYHguIvguYjguYDguJXguLXguKINCivguKrguLjguKPguKfguIfguKjguYwg4LiX4Lin4Li14Liq4Lix4LiV4Lii4LmMDQor4Liq4Li44Lij4Lin4Li04LiX4Lii4LmMIOC4qOC4suC4peC4suC4quC4uOC4gg0KK+C4quC4uOC4o+C4p+C4uOC4kuC4tCDguYDguKjguKPguKnguJDguJrguLjguJXguKMNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LiB4Li04LmI4LiH4LmE4LiX4LijDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4hOC4h+C4geC4tOC4leC4leC4tOC4geC4ow0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguIjguLHguJnguJfguKPguLLguJfguLTguJ7guKLguYwNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LmB4LiI4Lin4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4iuC4suC4p+C5jOC4p+C4tOC4qOC4tOC4qeC4kOC5jA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYDguKXguYnguLINCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LiV4Lix4LmJ4LiH4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LiB4Li44LilDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4reC4h+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguJnguLHguJnguJfguKfguLTguYLguKPguIjguJnguYwNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lib4Lij4Liw4LiX4Liy4LiZ4Lin4Lij4Lib4Lix4LiN4LiN4LiyDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4peC4seC4muC4nuC4peC4tQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKDguLnguYjguKfguLjguJLguLTguIHguLjguKUNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lij4Lix4LiK4LiV4Liw4Lin4Lij4Lij4LiTDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4peC4t+C4reC4p+C4tOC4qOC4p+C4geC4uOC4pQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKfguKPguKrguLjguKfguKPguKPguJPguLLguJfguKMNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lin4Li14Lij4LiK4Liy4Lii4Lil4Lix4LiB4Lip4LiT4LmMDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4tOC4o+C4tOC5guC4iuC4leC4tA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKrguLHguIfguILguYzguJfguK3guIcNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Liq4Li44Lie4Lix4LiS4LiZ4Liy4Lig4Lij4LiT4LmMDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4sOC4o+C4seC4h+C4qeC4tQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguK3guLHguIfguIHguLLguJrguKjguKPguLUNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LmC4Lit4Lis4Liy4Lij4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Li44Lij4Liq4Li04LiX4LiY4Li04LmMIOC4iOC4seC4meC4l+C4o+C5jOC5guC4quC4oOC4k+C4nuC4h+C4qOC5jA0KK+C4quC4uOC4o+C4quC4tOC4l+C4mOC4tOC5jCDguJvguKPguLLguJrguJPguKPguIfguITguYwNCivguKrguLjguKPguKrguLTguJfguJjguLTguYwg4Lio4Lij4Li14Lit4Lij4LiX4Lix4Lii4LiB4Li44LilDQor4Liq4Li44Lij4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4reC4teC5iOC4ouC4oeC4mOC4meC4suC4geC4uOC4pQ0KK+C4quC4uOC4o+C4sCDguJ7guYjguKfguIfguKXguLLguKDguKvguKXguLLguKINCivguKrguLjguKPguLDguIrguLHguKIg4Lih4Liy4Lil4Li14LmB4Lii4LmJ4LihDQor4Liq4Li44Lij4Liw4Lie4LilIOC4reC5iOC4reC4meC4pOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4o+C4seC4iiDguIHguK3guIfguJnguLTguKHguLTguJXguKMNCivguKrguLjguKPguLHguIrguJTguLIg4Lig4Li54Lin4LiU4Lil4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4Li44Lij4Lix4LiK4Lin4LiU4Li1IOC4q+C4reC4oeC4ouC4gQ0KK+C4quC4uOC4o+C4seC4leC4meC5jOC4nuC4oyDguYDguJfguLXguKLguKHguYDguKHguIYNCivguKrguLjguKPguLHguJXguJnguYwg4LiB4Lix4LiZ4LiV4Liw4Lio4Lij4Li1DQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4iOC4seC4meC4l+C4o+C5jOC5guC4iuC4hOC4nuC4h+C4qeC5jA0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguYDguIrguLTguJTguIrguLnguKHguLLguKXguLHguKLguIHguLTguIgNCivguKrguLjguKPguLHguJXguJnguYwg4LiX4Lit4LiH4LmA4Liq4Lih4LmH4LiUDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4muC4uOC4jeC4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguJ7guLjguYjguKHguJzguKUNCivguKrguLjguKPguLHguJXguJnguYwg4Lij4Li44LmI4LiH4LmB4Liq4LiHDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4qOC4o+C4teC4peC4suC4oA0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguKrguLjguILguJ7guLTguKjguLLguKUNCivguKrguLjguKPguLHguJXguJnguYwg4Lit4Lix4LiE4Lij4Lig4Liy4LiZ4Li44Lih4Liy4LioDQor4Liq4Li44Lij4Lix4LiV4Li0IOC5gOC4qOC4o+C4qeC4kOC4reC4oOC4tOC4mOC4suC4mQ0KK+C4quC4uOC4o+C4seC4quC4p+C4lOC4tSDguKrguLXguJrguLjguI3guYDguKPguLfguK3guIcNCivguKrguLjguKPguLLguIfguITguYzguKPguLHguJXguJnguYwg4Lih4Li44Liq4Li04LiB4LmE4LiK4LiiDQor4Liq4Li44Lij4Liy4LiH4LiE4LmMIOC4iOC4o+C4o+C4ouC4suC4reC4seC4h+C4geC4ueC4ow0KK+C4quC4uOC4o+C4suC4h+C4hOC5jCDguJTguLjguKXguKLguYzguJ7guIjguJnguYzguYDguJfguKfguLINCivguKrguLjguKPguLLguIfguITguYwg4LmC4Lib4Lip4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4Liy4LiH4LiE4LmMIOC4o+C4seC4geC4qeC4suC4o+C4suC4iuC4p+C4tOC4leC4ow0KK+C4quC4uOC4o+C4suC4h+C4hOC5jCDguKrguIfguKfguJnguKfguIfguKjguYwNCivguKrguLjguKPguLLguIfguITguYwg4LmC4Lir4Lih4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Li44Lij4Liy4Lip4LiO4Lij4LmMIOC5gOC4geC4qeC4leC4o+C4sOC4iuC4meC4oeC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jOC4l+C4tOC4nuC4ouC5jCDguK3guLTguKrguKrguKPguLDguIrguLHguKINCivguKrguLjguKPguLTguJnguJfguKPguYwg4LmA4LiB4Li04LiU4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4hOC4s+C5guC4luC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguIjguLTguJnguLHguJnguJfguKLguLINCivguKrguLjguKPguLTguJnguJfguKPguYwg4LiK4Lix4Lii4LiK4Liw4LiZ4Liw4Lih4LiH4LiE4LilDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4jeC4suC4k+C5gOC4geC4teC4ouC4o+C4leC4tOC4nuC4h+C4qOC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguYDguJXguLTguKHguKrguLLguKLguJfguK3guIcNCivguKrguLjguKPguLTguJnguJfguKPguYwg4LiY4LiZ4LiB4Li04LiI4LiI4Liz4Lij4Li54LiNDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4muC4uOC4jeC4peC4ng0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguYLguJvguKPguYDguJfguLXguKLguKPguJPguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lie4Li04LiK4Lix4Lii4Lio4Lij4LiX4Lix4LiVDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4oOC4ueC5iOC4m+C4o+C4sOC4oOC4suC4lOC4tOC4peC4gQ0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguKLguLTguYnguKHguYDguJ7guYfguIcNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lil4Lix4LiB4Lip4Lih4Li14Lin4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4p+C4o+C4nuC4seC4meC4mOC5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguKjguKPguLXguKfguLLguKPguLXguKPguLHguJXguJnguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Liq4Lih4Lix4LiE4Lij4LiK4LmI4Lin4LiiDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4uOC4guC4oeC4suC4gQ0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguYHguKrguIfguKPguLHguJXguJnguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lit4LiZ4Lix4LiH4Lij4Lix4Liq4LiU4Li1DQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4reC4tOC5iOC4oeC4quC4uOC4gg0KK+C4quC4uOC4o+C4tOC4oeC4suC4qCDguYHguJ7guJfguKLguLLguJnguJnguJfguYwNCivguKrguLjguKPguLTguKLguJnguJXguYwg4LmA4LiB4Lip4Lij4Lie4Lij4Lir4LihDQor4Liq4Li44Lij4Li04Lii4LiwIOC4lOC4p+C4h+C5geC4geC5ieC4pw0KK+C4quC4uOC4o+C4tOC4ouC4sCDguYLguKXguKvguLDguYDguKfguIoNCivguKrguLjguKPguLTguKLguLHguI0g4LiZ4Li04Lil4LiX4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44Lij4Li04Lii4Lix4LiZ4LiV4LmMIOC4iuC4ueC4leC4sOC4p+C4h+C4qeC5jA0KK+C4quC4uOC4o+C4tOC4ouC4siDguYDguITguKXguYnguLLguIjguLHguJnguJfguKPguYzguJ7guIfguKnguYwNCivguKrguLjguKPguLTguKLguLIg4LiX4Lit4LiH4LmA4LiV4LmH4LihDQor4Liq4Li44Lij4Li04Lii4LiyIOC5gOC4nuC5h+C4iuC4o+C4m+C4tOC5iOC4meC5geC4geC5ieC4pw0KK+C4quC4uOC4o+C4tOC4ouC4siDguKrguKXguLDguIHguLjguKUNCivguKrguLjguKPguLTguKLguYwg4LiE4Li54LiT4Lic4LilDQor4Liq4Li44Lij4Li1IOC4leC4seC4meC4mOC4meC5jOC4qOC4uOC4oOC4geC4suC4jeC4iOC4mQ0KK+C4quC4uOC4o+C4teC4nuC4oyDguITguJnguYDguIjguJkNCivguKrguLjguKPguLXguJ7guKMg4LmC4Lie4LiY4Li04LmM4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LiK4Lix4LiiDQor4Liq4Li44Lij4Li14Lie4LijIOC5gOC4reC4teC5ieC4ouC4p+C4luC4suC4p+C4ow0KK+C4quC4uOC4o+C4teC4ouC5jOC4nuC4oyDguYDguIfguLTguJnguIfguLLguKHguYDguKXguLTguKgNCivguKrguLjguKPguLXguKLguYzguJ7guKMg4Lib4Lij4Li14Lii4Liw4Lie4Liy4LiZ4Li04LiKDQor4Liq4Li44Lij4Li14Lii4LmM4Lie4LijIOC4qOC4o+C4teC4quC4t+C4mg0KK+C4quC4uOC4o+C4teC4ouC5jOC4o+C4seC4leC4meC5jCDguITguIfguJ7guLTguJfguKLguLLguJ7guLHguJnguJjguLjguYwNCivguKrguLjguKPguLXguKLguYzguKPguLHguJXguJnguYwg4Lit4LiZ4Lix4LiZ4LiV4LiB4Liy4Lil4LiV4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4geC4tOC4leC4leC4tOC4p+C4o+C4p+C4h+C4qOC5jA0KK+C4quC4uOC4o+C4teC4ouC5jCDguIjguLHguJnguJfguKPguYzguJfguKPguLHguJ7guKLguYwNCivguKrguLjguKPguLXguKLguYwg4LiK4Li34LmI4LiZ4Liq4Lih4LiW4LmJ4Lin4LiiDQor4Liq4Li44Lij4Li14Lii4LmMIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4quC4uOC4o+C4teC4ouC5jCDguJfguKPguIfguYDguIrguLfguYnguK0NCivguKrguLjguKPguLXguKLguYwg4LiZ4Li04Lih4Li04LiV4Lij4LiB4Li44LilDQor4Liq4Li44Lij4Li14Lii4LmMIOC5gOC4m+C4o+C4oeC4m+C4o+C4suC5guC4oeC4iuC4ouC5jA0KK+C4quC4uOC4o+C4teC4ouC5jCDguJ7guLjguYjguKHguKjguLTguKPguLQNCivguKrguLjguKPguLXguKLguYwg4LmE4Lih4LmJ4Liq4LiW4Li04LiV4Lii4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4peC4tOC5ieC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4o+C4teC4ouC5jCDguKfguLTguYDguIrguLXguKLguKPguIHguLjguKUNCivguKrguLjguKPguLXguKLguYwg4Liq4Lij4Liq4Li44LiE4LiZ4LiY4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4o+C4sOC4l+C4teC4mw0KK+C4quC4uOC4o+C4teC4ouC5jCDguK3guKHguKPguJjguLXguKPguLDguIHguLjguKUNCivguKrguLjguKPguLXguKPguLHguJXguJnguYwg4LiE4LiT4Liw4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4leC4seC4meC4mOC4uOC4p+C4meC4tOC4leC4ouC5jA0KK+C4quC4uOC4o+C4teC4o+C4seC4leC4meC5jCDguKLguLHguIfguKrguKfguYjguLLguIcNCivguKrguLjguKPguLXguKPguLHguJXguJnguYwg4Lir4Liy4LiN4LiI4LiH4LiB4LilDQor4Liq4Li44Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4p+C4tOC5gOC4qOC4qeC4quC4tOC4l+C4mOC4uOC5jA0KK+C4quC4uOC4o+C5gOC4iuC4qeC4kCDguJnguYnguLLguJnguLLguITguLTguJnguJfguKPguYwNCivguKrguLjguKPguYDguIrguKnguJDguYwg4LmA4LiI4Lij4Li04LiN4LiK4Lix4Lii4LiW4Liy4Lin4Lij4LiI4Li04LiVDQor4Liq4Li44Lij4LmA4LiK4Lip4LiQ4LmMIOC4ouC4seC4h+C4quC4uOC4gg0KK+C4quC4uOC4o+C5gOC4lOC4iiDguIHguLHguIfguKrguJTguLLguKUNCivguKrguLjguKPguYDguJTguIog4LiU4Liy4Lij4LmM4LiL4Li04LiH4Lir4LmMDQor4Liq4Li44Lij4LmA4LiU4LiKIOC4m+C4o+C4sOC4quC4suC4meC5gOC4geC4teC4ouC4o+C4leC4tOC4o+C4suC4ig0KK+C4quC4uOC4o+C5gOC4lOC4iiDguYTguKPguYnguIHguLHguIfguKfguKUNCivguKrguLjguKPguYDguJTguIog4Liq4Li04LiX4LiY4Li04LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lij4LmA4LiX4LieIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4iOC4tOC4leC4quC4o+C4ow0KK+C4quC4uOC4o+C5hOC4geC4oyDguIHguLXguKPguJXguLTguJvguLLguKUNCivguKrguLjguKXguLHguJTguJTguLIg4LiK4LmJ4Lit4LiZ4LiX4Lit4LiHDQor4Liq4Li44Lil4Li1IOC4hOC4t+C4meC4leC4seC4gQ0KK+C4quC4uOC4p+C4hOC4meC4mOC5jCDguKHguYjguKfguIfguJfguK3guIcNCivguKrguLjguKfguJPguLUg4LiI4Li04LiV4LiV4LmM4Lij4Lix4LiV4LiZ4LiY4Lij4Lij4LihDQor4Liq4Li44Lin4LiT4Li14Lii4LmMIOC5gOC4iuC4teC5iOC4ouC4p+C4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4p+C4lOC4tSDguYDguJfguJ7guKPguLHguIHguKnguYwNCivguKrguLjguKfguJTguLUg4Lit4Liy4Lij4Li14Liq4LiB4Li44Lil4Liq4Li44LiCDQor4Liq4Li44Lin4LiZ4Li04LiV4Lii4LmMIOC5gOC4quC4j+C4kOC4quC4uOC4p+C4iOC4sA0KK+C4quC4uOC4p+C4nuC4oyDguYDguIvguYfguKHguYDguK7guIcNCivguKrguLjguKfguJ7guLTguKgg4Lii4LiH4Lio4Li04Lil4Lib4LiK4Lix4LiiDQor4Liq4Li44Lin4Lig4LiyIOC5gOC4peC4teC5iOC4ouC4oeC4nuC4uOC4mOC4l+C4reC4hw0KK+C4quC4uOC4p+C4o+C4o+C4kyDguIHguKXguLTguYjguJnguIjguLHguJnguJfguKPguYzguKvguK3guKENCivguKrguLjguKfguKPguKPguJMg4LiC4Lin4Lix4LiN4Lii4Li34LiZDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4iOC4seC4meC4l+C4o+C5jOC4quC4uOC4o+C4tOC4meC4l+C4o+C5jA0KK+C4quC4uOC4p+C4o+C4o+C4kyDguIrguYnguLLguIfguIrguLHguKINCivguKrguLjguKfguKPguKPguJMg4LiU4Liz4LmA4LiZ4Li04LiZ4LiX4Lit4LiHDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4l+C4seC4oeC4nuC4ow0KK+C4quC4uOC4p+C4o+C4o+C4kyDguJrguKPguKPguJTguLLguKjguLHguIHguJTguLTguYwNCivguKrguLjguKfguKPguKPguJMg4Lib4Li04Lii4Liw4Lig4Liy4LiT4Li1DQor4Liq4Li44Lin4Lij4Lij4LiTIOC4nuC4uOC5iOC4oeC4m+C4o+C4sOC4lOC4seC4mg0KK+C4quC4uOC4p+C4o+C4o+C4kyDguKHguLXguKvguKXguLHguIHguIrguLHguKINCivguKrguLjguKfguKPguKPguJMg4LmC4Lij4LiI4LiZ4Lin4Li04Lig4Liy4LiVDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4p+C4suC4quC4meC4geC4oeC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4kyDguKjguLTguKPguLTguKfguLTguIHguLjguKUNCivguKrguLjguKfguKPguKPguJMg4Liq4Li44LiC4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4q+C4reC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4uOC4p+C4o+C4o+C4kyDguYDguK3guLXguYjguKLguKHguKPguLHguKjguKHguLXguYLguIrguJXguLQNCivguKrguLjguKfguKPguKPguJPguJfguLTguJ7guKLguYwg4LmB4LiL4LmI4LmA4Liu4LiHDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4geC4meC4tOC4qeC4kOC4quC4uOC4lQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguYDguIHguKnguKHguKrguLjguIINCivguKrguLjguKfguKPguKPguJPguLIg4LiE4Li44Lib4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4iOC4tOC4meC4lOC4suC4mOC5gOC4meC4qA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguIrguKLguLDguK3guKXguIfguIHguKPguJPguYwNCivguKrguLjguKfguKPguKPguJPguLIg4LiL4Li24LmJ4LiH4Lin4Li04Lij4Li04Lii4Liw4LiB4Li44LilDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguJXguLHguYnguIfguITguLjguKPguLjguKrguKPguJPguYwNCivguKrguLjguKfguKPguKPguJPguLIg4LiX4Lit4LiH4LiX4LiyDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4meC4meC4l+C4quC4uOC4lQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguJrguLPguKPguLjguIfguIHguLTguIjguYDguIjguKPguLTguI0NCivguKrguLjguKfguKPguKPguJPguLIg4Lib4Lix4LiN4LiN4Liy4LiK4Li14Lin4Li04LiZDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4nuC4seC4kuC4meC4nuC4h+C4qOC4geC4ow0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguYTguJ7guYLguKPguIjguJnguYzguIHguLTguIjguIjguLINCivguKrguLjguKfguKPguKPguJPguLIg4Lih4Li54Lih4Liw4Lir4Liw4Lir4Lih4Lix4LiU4LiL4Lit4LmB4Lil4LiwDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4o+C4t+C5iOC4meC5gOC4o+C4tOC4h+C5g+C4iA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguYDguKXguLTguKjguKfguIfguKjguYzguIrguLHguIrguKfguLLguKUNCivguKrguLjguKfguKPguKPguJPguLIg4Lin4Li04LiI4Li04LiV4Lij4Lib4Lij4Liw4Lig4Liy4Lie4LiH4Lip4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4qOC4o+C4teC4qOC4uOC4oOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguKrguKfguYjguLLguIfguJ7guLLguJPguLTguIrguKLguYwNCivguKrguLjguKfguKPguKPguJPguLIg4Liq4Li44LiC4Lih4Lix4LmI4LiZ4LiE4LiH4LmA4Liq4Lih4LitDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC5geC4quC4h+C4mOC4meC4suC4nuC4pOC4geC4qeC5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguK3guJnguLHguJnguJXguKrguLTguJfguJjguLTguYzguKrguIHguLjguKUNCivguKrguLjguKfguKPguKPguJPguLIg4Lit4Li04LiZ4LiX4Lij4LmM4Lit4Li44LiU4LihDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4geC4suC4o+C5hOC4l+C4og0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguITguLPguKrguLjguIINCivguKrguLjguKfguKPguKPguJPguLUg4LiI4Li04Lin4Lij4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4iuC4uOC4leC4tOC4nuC4o+C4p+C4k+C4tOC4ig0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguYHguIvguYjguK7guLHguYnguIcNCivguKrguLjguKfguKPguKPguJPguLUg4LiV4Lix4LmJ4LiH4Lin4LiH4Lio4LmM4Lio4Liy4LiZ4LiV4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC5gOC4l+C4nuC4quC4tOC4meC4mOC4meC4quC4geC4uOC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguJrguLHguKfguIjguLXguJkNCivguKrguLjguKfguKPguKPguJPguLUg4LmA4Lic4Li04LiHDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC5gOC4nuC5iOC4h+C4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4p+C4h+C4qeC5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguKPguLHguIHguKnguLLguJ7guIjguJnguLLguIHguLTguIgNCivguKrguLjguKfguKPguKPguJPguLUg4LmA4Lil4Li04Lio4Lin4Li04Lij4Li04Lii4Liw4LmE4Lie4Lio4Liy4LilDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4p+C4tOC4oOC4suC4geC4uOC4peC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguKrguKHguLjguJfguKPguKPguLHguIfguKrguLUNCivguKrguLjguKfguKPguKPguJPguLUg4Liq4Li44Lih4Liy4Lih4Liy4Lil4Lii4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4reC5ieC4meC4o+C4uOC5iOC4hw0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguYDguK3guLfguYnguK3guKrguKHguKrguIHguLjguKUNCivguKrguLjguKfguKPguKPguJPguYwg4LiZ4Liy4LiE4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Li44Lin4Lij4Lix4LiV4LiZ4LmMIOC4muC4uOC4jeC4ouC4quC4tOC4l+C4mOC4tOC5jOC4nuC4tOC4iuC4seC4og0KK+C4quC4uOC4p+C4o+C4teC4ouC5jCDguYDguKXguLTguKjguK3guKPguLTguKLguLLguJnguLHguJnguJfguYwNCivguKrguLjguKfguKXguLHguIHguKnguJPguYwg4Lit4LiZ4Lix4LiZ4LiV4LiK4Lix4LiiDQor4Liq4Li44Lin4Lil4Li1IOC5gOC4reC4teC5iOC4ouC4oeC4quC4reC4suC4lA0KK+C4quC4uOC4p+C4seC4iOC4meC5jCDguKrguIfguKfguJnguKfguIfguKjguYwNCivguKrguLjguKfguLHguIrguKPguYwg4Lio4Li44Lig4LiB4Liy4LiN4LiI4LiZ4LmM4LmA4LiU4LiK4Liy4LiB4Li44LilDQor4Liq4Li44Lin4Lix4LiS4LiZ4LiwIOC4n+C4uOC5ieC4h+C4peC4seC4lOC4lOC4sg0KK+C4quC4uOC4p+C4seC4kuC4meC4siDguYDguJ7guYjguIfguJ7guLTguJnguLTguIgNCivguKrguLjguKfguLHguJLguJnguYwg4LiB4Lin4Li14Lin4Li44LiS4Li04Lio4Li04Lil4Lib4LmMDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4hOC4h+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jOC4quC4tOC4h+C4q+C5jA0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguIjguLbguIfguJvguKPguLDguKDguLINCivguKrguLjguKfguLHguJLguJnguYwg4LmC4LiK4LiE4Lit4Lin4Lii4Lie4Lij4LiK4Lix4LiiDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4leC4seC4meC5gOC4quC4luC4teC4ouC4ow0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguJnguLDguYLguKLguKrguLTguJkNCivguKrguLjguKfguLHguJLguJnguYwg4LmC4Lib4Lip4Lii4Liw4Lie4Li04Liq4Li04Lip4LiQ4LmMDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC5guC4nuC4mOC4tOC5geC4quC4hw0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguKPguLHguKjguKHguLUNCivguKrguLjguKfguLHguJLguJnguYwg4LmA4Lil4LmH4LiB4Liq4Li44Lin4Lij4Lij4LiT4LiB4Li44LilDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4p+C4tOC4oOC4seC4iuC4meC4meC4l+C5jOC4geC4tOC4iA0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguKjguLjguKDguJjguJnguKrguLTguJnguYDguILguKnguKENCivguKrguLjguKfguLHguJLguJnguYwg4Liq4Li44LiC4Liq4Lix4LiZ4LiV4Li04LmMDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4q+C4p+C4seC4h+C4p+C4tOC4iuC4sg0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguK3guLLguKfguKPguJPguYwNCivguKrguLjguKfguLHguJXguKMg4Lio4Lij4Li14LiK4LiN4LiyDQor4Liq4Li44Lin4Lix4LiZ4LiZ4Li1IOC5guC4geC4hOC4ueC4kw0KK+C4quC4uOC4p+C4suC4meC4teC4ouC5jCDguIjguLTguJnguJXguKLguLHguIfguITguLjguJMNCivguKrguLjguKfguLLguKPguLUg4Lij4Li44LmI4LiH4Liq4Li04Lij4Li04LiI4Lij4Lix4Liq4LiX4Lit4LiHDQor4Liq4Li44Lin4Li04LiKIOC4iuC4ueC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC4p+C4tOC4iiDguKjguLTguKPguLTguKfguLHguJLguJnguYLguKLguJjguLTguJkNCivguKrguLjguKfguLTguIrguI3guLIg4LmA4LiB4Li04LiU4LiE4LiHDQor4Liq4Li44Lin4Li04LiK4LiyIOC5gOC4geC4leC4uOC5geC4geC5ieC4pw0KK+C4quC4uOC4p+C4tOC4iuC4suC4meC5jCDguIHguLPguKXguLHguIfguYDguKrguLfguK0NCivguKrguLjguKfguLTguJfguKLguYwg4LiB4Lit4LiH4LiB4Lix4LiZ4Lig4Lix4LiiDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5hOC4geC4p+C4seC4peC5guC4geC4qOC4pQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguIjguLHguJnguJfguKPguIfguLLguKENCivguKrguLjguKfguLTguJfguKLguYwg4LiI4Li44LiV4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4iuC4suC4jeC4l+C4p+C4teC4hOC4uOC4kw0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguYHguIvguYjguYDguK7guIcNCivguKrguLjguKfguLTguJfguKLguYwg4LiV4Lix4LiZ4Lib4Lij4Liw4Lin4Lix4LiV4Li0DQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4l+C4reC4h+C4nOC4suC4quC4uOC4gg0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguJnguKTguYDguJrguKjguKPguYzguYTguIHguKPguKrguLXguKvguYwNCivguKrguLjguKfguLTguJfguKLguYwg4Lia4Li44LiN4Lij4Lix4LiB4Lip4LiyDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5guC4m+C4qeC4ouC4sOC4nuC4tOC4quC4tOC4qeC4kOC5jA0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguJ7guLTguJfguLHguIHguKnguYzguYDguKXguLTguKjguIHguLjguKUNCivguKrguLjguKfguLTguJfguKLguYwg4Lig4Li54LmI4LmE4Lie4LiI4Li04LiV4Lij4LiB4Li44LilDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4o+C4seC4leC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguYDguKXguLLguKvguLDguIHguLjguKXguJjguKPguKPguKENCivguKrguLjguKfguLTguJfguKLguYwg4Lin4Lix4LiK4Lij4LmA4Liq4LiW4Li14Lii4LijDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5gOC4p+C4l+C4ouC5jOC4p+C4o+C4suC4p+C4uOC4mA0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguYDguKjguKPguKnguJDguLXguIrguLHguKLguIrguJnguLANCivguKrguLjguKfguLTguJfguKLguYwg4Liq4Li04Lih4Liw4Liq4LiB4Li44LilDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5gOC4quC4o+C4teC5guC4o+C4iOC4meC4sg0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguK3guKHguKTguJXguIHguLjguKUNCivguKrguLjguKfguLTguJfguKLguYwg4LmA4Lit4LiB4Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li44Lin4Li04LiZIOC5gOC4peC4suC4q+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4p+C4tOC4oOC4o+C4k+C5jCDguYHguKLguYnguKHguJfguLHguJoNCivguKrguLjguKfguLTguKHguKUg4LiB4LmJ4Lit4LiH4LiB4Lix4LiH4Lin4Liy4Lis4LmC4LiK4LiEDQor4Liq4Li44Lin4Li04Lih4LilIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4p+C4tOC4oeC4pSDguIrguLTguJnguLDguKfguKPguJ7guIfguKjguYwNCivguKrguLjguKfguLTguKHguKUg4LiU4Li04Lil4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lin4Li04Lih4LilIOC4mOC4o+C4o+C4oeC4oeC5guC4meC4p+C4suC4meC4tOC4ig0KK+C4quC4uOC4p+C4tOC4oeC4pSDguJvguLTguJXguLTguYDguIjguKPguLTguI3guYLguIrguITguKXguLLguKANCivguKrguLjguKfguLTguKHguKUg4Lig4Lin4Lin4Lij4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44Lin4Li04Lih4LilIOC4pOC4l+C4mOC4tOC5guC4meC4oeC4seC4og0KK+C4quC4uOC4p+C4tOC4oeC4pSDguKfguLTguJrguLnguKXguKLguYzguYDguKXguLTguKjguKfguLHguJLguJnguLANCivguKrguLjguKfguLTguKHguKUg4Liq4Lix4LiZ4LiV4Li04LiX4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lin4Li04Lih4LilIOC4reC4lOC4uOC4peC4ouC5jOC4kOC4suC4meC4suC4meC4uOC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4uOC4p+C4tOC4o+C4seC4leC4meC5jCDguYDguIjguJnguKfguKrguLgNCivguKrguLjguKfguLTguYTguKUg4LmA4LiV4LmH4Lih4LiY4Liy4Lij4LiX4Li04Lie4Lii4LmMDQor4Liq4Li44Lin4LmC4Lij4LiKIOC4nuC4sOC4peC4seC4hw0KK+C4quC4uOC4q+C4suC4jSDguKrguLjguJnguJfguKPguJ7guLLguJPguLTguIrguKLguYwNCivguKrguLjguYDguIjguJXguJnguYwg4Lit4Lig4Lix4Lii4Lin4LiH4Lio4LmMDQor4Liq4Li44LmA4LiK4Lip4LiQ4LmMIOC4meC4tOC4peC4quC4uOC4p+C4o+C4o+C4k+C4suC4geC4uOC4pQ0KK+C4quC4uOC5gOC4l+C4niDguIHguKXguLTguYjguJnguJbguLfguK3guKjguLXguKUNCivguKrguLjguYDguJfguJ4g4LmB4LiB4LmJ4Lin4LiZ4Li04Lih4Li04LiV4LiK4Lix4LiiDQor4Liq4Li44LmA4LiX4LieIOC5guC4hOC5ieC4p+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC5gOC4l+C4niDguIjguLXguJnguYDguIjguJnguJ7guIjguJnguYwNCivguKrguLjguYDguJfguJ4g4LiK4Lix4Lii4Liq4LiB4Li44LilDQor4Liq4Li44LmA4LiX4LieIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC5gOC4l+C4niDguJXguLHguJnguKfguLTguJnguLTguIgNCivguKrguLjguYDguJfguJ4g4LiX4Lix4Lia4LiX4Li04Lih4LmB4Liq4LiHDQor4Liq4Li44LmA4LiX4LieIOC4mOC4uOC4p+C4sOC5gOC4qOC4o+C4qeC4kOC4geC4uOC4pQ0KK+C4quC4uOC5gOC4l+C4niDguJrguLjguI3guJfguKPguLHguJ7guKLguYwNCivguKrguLjguYDguJfguJ4g4Lib4Lix4LmJ4LiZ4LiZ4Li04LmI4LihDQor4Liq4Li44LmA4LiX4LieIOC4nuC4o+C4reC4s+C4meC4p+C4og0KK+C4quC4uOC5gOC4l+C4niDguJ7guLjguYjguKHguJfguYnguKfguKENCivguKrguLjguYDguJfguJ4g4Lih4LiT4Li14LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMDQor4Liq4Li44LmA4LiX4LieIOC4o+C4p+C4ouC4lOC4tQ0KK+C4quC4uOC5gOC4l+C4niDguKXguLTguYnguKHguJXguKPguLDguIHguLnguKUNCivguKrguLjguYDguJfguJ4g4Lin4Lij4Lii4LioDQor4Liq4Li44LmA4LiX4LieIOC4qOC4o+C4teC4meC4tOC4ouC4oQ0KK+C4quC4uOC5gOC4l+C4niDguKrguKHguLLguJnguKHguLTguJXguKMNCivguKrguLjguYDguJfguJ4g4Liq4Li44LiC4Lia4Liz4Lij4Li44LiHDQor4Liq4Li44LmA4LiX4LieIOC4quC4uOC4p+C4tOC4iuC4suC4iuC4meC4seC4meC4l+C4o+C5jA0KK+C4quC4uOC5gOC4l+C4niDguYDguKvguKHguLfguK3guJnguJTguKfguIcNCivguKrguLjguYDguJfguJ4g4Lit4LmI4Liz4Liq4Li44LiCDQor4Liq4Li44LmA4LiY4Li14Lii4LijIOC4meC4tOC4o+C4seC4meC4lOC4o+C5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4quC4uOC5gOC4meC4leC4o+C4siDguIjguLTguJXguYDguJrguI3guIjguIHguLnguKUNCivguKrguLjguYDguJ7guYfguI0g4LiI4Lij4Lij4Lii4Liy4LiZ4Li44Lig4Liy4LieDQor4Liq4Li44LmA4Lie4Li14Lii4LijIOC4p+C4h+C4hOC5jOC4m+C4seC4meC4h+C5ieC4suC4pw0KK+C4quC4uOC5gOC4oeC4mCDguIHguLLguIfguYTguJjguKrguIcNCivguKrguLjguYDguKHguJgg4LiI4Lix4LiZ4LiX4Lin4LiH4Lio4LmMDQor4Liq4Li44LmA4Lih4LiYIOC5hOC4iuC4ouC5geC4geC5ieC4pw0KK+C4quC4uOC5gOC4oeC4mCDguJfguKfguLXguJfguKPguLHguJ7guKLguYwNCivguKrguLjguYDguKHguJgg4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LiB4Lil4Li04LmI4LiZDQor4Liq4Li44LmA4Lih4LiYIOC4oeC5guC4q+C4quC4lg0KK+C4quC4uOC5gOC4oeC4mCDguKfguIfguKjguYzguKrguLjguILguKvguKTguJfguLHguKINCivguKrguLjguYDguKHguJgg4Lio4Li44Lig4Lie4Liy4LiT4Li04LiK4Lin4LiH4Lio4LmMDQor4Liq4Li44LmA4Lih4LiYIOC5geC4quC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4uOC5gOC4oeC4mCDguK3guLTguKrguKPguLTguKLguK3guLPguYTguJ4NCivguKrguLjguYDguKHguKjguKPguYwg4Liq4Li44LiC4Li44Lih4Lig4Liy4LiT4Li44LmA4Lih4Lio4Lij4LmMDQor4Liq4Li44LmA4Lin4LiX4Lii4LmMIOC4h+C4ueC4nuC4tOC4oeC4suC4og0KK+C4quC4uOC5guC4giDguJvguLHguI3guIjguKfguLXguJPguLTguJkNCivguKrguLjguYLguKDguIrguJnguYwg4LiV4Lix4LiZ4LiV4Li04Lin4LiH4Lio4LmMDQor4Liq4Li44LmD4Lia4LiU4LmK4LiwIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC5hOC4peC4oeC4suC4mSDguJnguLDguKHguLQNCivguKrguYDguIHguYfguJTguJTguLLguKcg4LiL4Li34LmI4Lit4Lin4Lix4LiS4LiZ4LiwDQor4Liq4LmE4Lia4LiX4Li04Lie4Lii4LmMIOC4qOC4tOC4o+C4tOC4p+C4h+C4qOC5jA0KK+C5gOC4quC4geC4quC4o+C4oyDguJnguLTguYjguKHguJ7guLTguIjguLLguKPguJPguYwNCivguYDguKrguIHguKrguKPguKMg4Lit4Li44LiX4Li04Lio4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Liq4LiB4Liq4Lij4Lij4LiE4LmMIOC4m+C5ieC4reC4h+C4geC4seC4meC4oOC4seC4og0KK+C5gOC4quC4geC4quC4o+C4o+C4hOC5jCDguK3guKLguLnguYjguYDguJvguYfguJnguKrguLjguIINCivguYDguKrguIfguLXguYjguKLguKEg4LmA4LiB4LmI4LiH4LiK4LiZDQor4LmA4Liq4LiH4Li14LmI4Lii4LihIOC5geC4i+C5iOC4iuC4tOC4hw0KK+C5gOC4quC4h+C4teC5iOC4ouC4oSDguJrguLjguJXguKPguIrguLDguKHguYnguK3guKINCivguYDguKrguIfguLXguYjguKLguKEg4Lih4Li14Liq4Lix4LiZ4LiQ4Liy4LiZDQor4LmA4Liq4LiH4Li14LmI4Lii4LihIOC4quC4oeC4muC4seC4leC4tOC4luC4suC4p+C4o+C4p+C4h+C4qOC5jA0KK+C5gOC4quC4h+C4teC5iOC4ouC4oSDguYDguK3guIHguInguLHguJXguKMNCivguYDguKrguJbguLXguKLguKMg4LiE4Liy4Lih4Li14Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4Liq4LiW4Li14Lii4LijIOC4lOC4peC4muC4seC4meC4lOC4suC4peC5guC4iuC4hA0KK+C5gOC4quC4luC4teC4ouC4oyDguJrguLHguKfguITguKXguLXguYgNCivguYDguKrguJbguLXguKLguKMg4Lig4Liy4Liq4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LmA4Liq4LiW4Li14Lii4LijIOC4p+C4h+C4qOC5jOC5gOC4iOC4o+C4tOC4jeC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C5gOC4quC4luC4teC4ouC4oyDguKrguYjguK3guKrguLjguKvguLHguJcNCivguYDguKrguJbguLXguKLguKMg4LmA4Lir4Lil4Li34Lit4LiH4Lit4Lij4LmI4Liy4LihDQor4LmA4Liq4LiZ4LitIOC5geC4iOC5ieC4h+C4iuC4seC4lOC5g+C4iA0KK+C5gOC4quC4meC4rSDguKHguLnguKXguKjguLLguKrguJXguKPguYwNCivguYDguKrguJnguLLguLAg4LiB4Lix4LiZ4LmC4Lij4LiE4LiyDQor4LmA4Liq4LiZ4Liy4LiwIOC4leC4uOC5iOC4meC5hOC4p+C4ouC5jA0KK+C5gOC4quC4meC4suC4sCDguJvguKPguLDguJTguLHguJrguKXguLLguKINCivguYDguKrguJnguLLguLAg4Lii4Li04LmJ4Lih4LmA4LiI4Lij4Li04LiNDQor4LmA4Liq4LiZ4Liy4LiwIOC4quC4seC4h+C4guC5jOC4l+C4reC4h+C4lOC4tQ0KK+C5gOC4quC4meC4suC4sCDguYDguK3guKHguKfguLDguJTguLUNCivguYDguKrguJnguLXguKLguYwg4LiY4Lij4Lij4Lih4Liy4LiI4Lix4LiB4Lij4LmM4LiB4Li44LilDQor4LmA4Liq4LiZ4Li14Lii4LmMIOC4reC4meC4uOC4quC4o+C4qOC4seC4geC4lOC4tOC5jA0KK+C5gOC4quC4meC5iOC4q+C5jCDguITguKfguLLguKHguJTguLUNCivguYDguKrguJnguYjguKvguYwg4LmA4LiK4Li14LmI4Lii4Lin4LiY4LiZ4Lin4Lix4LiS4LiZ4LmMDQor4LmA4Liq4LiZ4LmI4Lir4LmMIOC4meC4suC4q+C5ieC4p+C4ouC4l+C4o+C4suC4og0KK+C5gOC4quC4meC5iOC4q+C5jCDguJ7guLHguJnguJjguYzguIjguLXguJkNCivguYDguKrguJnguYjguKvguYwg4LmA4Lih4LiG4LmA4LiJ4Lil4Li04LihDQor4LmA4Liq4LiZ4LmI4Lir4LmMIOC4qOC4o+C4teC4p+C4seC4kuC4meC5jA0KK+C5gOC4quC4meC5iOC4q+C5jCDguYLguKrguKPguLTguJnguJfguKPguYwNCivguYDguKrguKHguK0g4LmA4LiB4Li14Lii4Lij4LiV4Li04LmE4LiB4LijDQor4LmA4Liq4Lih4LitIOC4oeC4tOC4leC4o+C4p+C4tOC4iOC4suC4o+C4k+C5jA0KK+C5gOC4quC4oeC4reC4nuC4oyDguIrguLjguJPguKvguIrguLHguIrguKfguLLguKUNCivguYDguKrguKHguLIg4LiY4Li04Lij4Liy4Lih4LiZ4LiV4Lij4LmMDQor4LmA4Liq4Lih4Li34Lit4LiZIOC5gOC4iuC4t+C5ieC4reC4oeC4reC4jQ0KK+C5gOC4quC4o+C4tOC4oSDguYDguIHguKnguJfguK3guIcNCivguYDguKrguKPguLTguKEg4LmA4LiZ4Li14Lii4Lih4LiZ4Lie4LmA4LiZ4LiV4LijDQor4LmA4Liq4Lij4Li04LihIOC4oeC4ueC4peC4l+C4reC4h+C4ouC5ieC4reC4og0KK+C5gOC4quC4o+C4tOC4oSDguKvguKPguLnguKrguIHguLjguKUNCivguYDguKrguKPguLTguKHguJfguKPguLHguJ7guKLguYwg4Lia4Li44LiN4LiK4Li5DQor4LmA4Liq4Lij4Li04Lih4Lio4Lij4Li1IOC4geC4suC4jeC4iOC4meC4suC4oOC4o+C4k+C5jOC4geC4uOC4pQ0KK+C5gOC4quC4o+C4tOC4oeC4qOC4o+C4tSDguKjguKPguLXguYHguIHguYnguKcNCivguYDguKrguKPguLTguKHguKjguLHguIHguJTguLTguYwg4LmA4LiU4LiK4Lia4Li44LiNDQor4LmA4Liq4Lij4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4peC4seC4hOC4meC4suC4iOC4seC4meC4l+C5guC4iuC4leC4tA0KK+C5gOC4quC4o+C4tOC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguK3guIHguKfguLHguJLguJnguYwNCivguYDguKrguKPguLTguKHguKrguLjguIIg4LmC4LiK4LiV4Li04LiK4LmI4Lin4LiH4LiJ4Lix4LiV4Lij4LiK4Lix4LiiDQor4LmA4Liq4Lij4Li04Lih4Liq4Li44LiCIOC4reC4ouC4ueC5iOC4ouC4h+C4quC4tOC4mQ0KK+C5gOC4quC4o+C4tSDguYDguIHguLXguKLguKPguJXguLTguJrguKPguKPguKXguLfguK0NCivguYDguKrguKPguLUg4LmA4LiI4Li14Lii4Lij4LmB4Liq4LiH4LiX4Lit4LiHDQor4LmA4Liq4Lij4Li1IOC5gOC4lOC4iuC4geC4peC5ieC4sg0KK+C5gOC4quC4o+C4tSDguJjguLLguJnguLUNCivguYDguKrguKPguLUg4Lib4LiP4Li04Lib4LiX4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Liq4Lij4Li1IOC4nuC4seC4p+C4qOC4tOC4o+C4tA0KK+C5gOC4quC4o+C4tSDguKLguLjguKfguKPguLUNCivguYDguKrguKPguLUg4Lin4LiH4Lio4LmM4Lig4Lix4LiX4Lij4LiK4LiZDQor4LmA4Liq4Lij4Li1IOC4qOC4tOC4o+C4tOC4mOC4ow0KK+C5gOC4quC4o+C4tSDguKrguLjguJjguLLguIrguLUNCivguYDguKrguKPguLUg4Lit4Lij4Li04Lii4LmC4Liq4Lig4Liy4Lij4Lix4LiB4Lip4LmMDQor4LmA4Liq4Lin4LiBIOC4guC4sOC4oeC4seC4meC4iOC4sg0KK+C5gOC4quC4p+C4gSDguJ7guLHguJnguJjguYzguKvguJnguK3guKINCivguYDguKrguKfguIEg4LmB4Liq4LiH4LmA4LiC4Li14Lii4LinDQor4LmA4Liq4Lin4LiiIOC5gOC4o+C4t+C4reC4h+C5guC4iuC4leC4tA0KK+C5gOC4quC4p+C4teC4ouC4hyDguK3guLTguKjguKPguLLguIfguIHguLnguKMg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C5gOC4quC4suC4o+C5jOC5geC4geC5ieC4pyDguYPguIjguIHguKfguYnguLLguIcNCivguYDguKrguLLguKfguITguJnguJjguYwg4Lin4Li04Liq4Li04Lit4LiV4Li0DQor4LmA4Liq4Liy4Lin4LiT4Li1IOC4hOC4o+C4reC4muC4hOC4o+C4reC4hw0KK+C5gOC4quC4suC4p+C4k+C4tSDguKDguLHguIHguJTguLUNCivguYDguKrguLLguKfguJPguLUg4LmA4Lit4Li14LmI4Lii4Lih4Lin4LiH4Lio4LmM4LiZ4Li44LiB4Li54LilDQor4LmA4Liq4Liy4Lin4LiT4Li14Lii4LmMIOC4iuC4ueC5gOC4iuC4tOC4lA0KK+C5gOC4quC4suC4p+C4k+C4teC4ouC5jCDguJzguKXguLTguJXguIHguLjguKjguKXguJjguLHguIoNCivguYDguKrguLLguKfguJPguLXguKLguYwg4Lin4Li04LiI4Li04LiV4Lij4LiV4Lij4Liw4LiB4Liy4Lij4Lij4Li44LmI4LiHDQor4LmA4Liq4Liy4Lin4LiT4Li14Lii4LmMIOC4reC4o+C4uOC4k+C5geC4ieC5iOC4hw0KK+C5gOC4quC4suC4p+C4meC4tOC4lSDguYTguK3guJnguYnguLPguJfguLTguJ7guKLguYwNCivguYDguKrguLLguKfguJnguLUg4Lio4Lij4Li14LmA4Lie4LmH4LiK4Lij4LiU4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Liq4Liy4Lin4LiZ4Li14Lii4LmMIOC4iuC4seC5ieC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4quC4suC4p+C4meC4teC4ouC5jCDguJrguLjguKPguLTguJnguJfguKPguLLguKHguLLguJXguKLguYwNCivguYDguKrguLLguKfguJnguLXguKLguYwg4Lil4Li14Lii4Liy4LiB4Liy4LioDQor4LmA4Liq4Liy4Lin4LiZ4Li14Lii4LmMIOC5geC4quC4h+C5geC4geC5ieC4pw0KK+C5gOC4quC4suC4p+C4oOC4siDguIrguYjguKfguKLguIrguLnguKfguIfguKjguYwNCivguYDguKrguLLguKfguKDguLIg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmC4Lie4LiY4Li04LmMDQor4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMIOC4reC4meC4seC4meC4leC5jOC4iuC4t+C5iOC4meC4quC4uOC4gg0KK+C5gOC4quC4suC4p+C4o+C4qiDguKjguKPguLXguJ7guJnguKENCivguYDguKrguLLguKfguKPguLXguKLguYwg4LiV4Liw4LmC4Lie4LiZ4LiX4Lit4LiHDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4iOC4tOC4o+C4nuC4h+C4qOC4suC4meC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguJDguLLguJnguLDguK3guLjguJTguKHguKHguIfguITguKUNCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwg4LiZ4Liy4Lij4LiW4Lia4Li44LiNDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4nuC4tOC4iuC4tOC4leC4peC4s+C5gOC4hOC5h+C4jQ0KK+C5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguKXguLTguILguLTguJXguKfguLHguJLguJnguJ7guKMNCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwg4Liq4LiB4Li44Lil4Lij4Lix4LiV4LiZ4LmMDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4q+C4peC4tOC5iOC4oeC4quC4suC5guC4o+C4ig0KK+C5gOC4quC4suC4p+C4peC4tSDguJXguLTguIHguILguJvguLHguI3guI3guIHguLjguKUNCivguYDguKrguLXguKLguJTguJ/guYnguLIg4LiK4Lin4LiZ4LiI4Li04LiV4LiV4LmMDQor4LmA4Liq4LmH4LiHIOC4iuC4t+C5iOC4meC4quC4uOC4gg0KK+C5gOC4quC5iOC4oiDguKPguLHguJXguJnguKfguLHguJLguJnguLLguJjguKMNCivguYHguKrguIcg4Lib4Lij4Liw4Lii4Li54Lij4Lir4LiH4Lip4LmMDQor4LmB4Liq4LiHIOC4quC4uOC4o+C4sOC5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C5geC4quC4h+C4iOC4seC4meC4l+C4o+C5jCDguYDguIjguKPguLTguI3guKrguLjguIINCivguYHguKrguIfguIjguLHguJnguJfguKPguYwg4Lic4LiB4Liy4Lih4Liy4LioDQor4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC4quC4seC4iuC4iuC4sOC5gOC4lOC4ig0KK+C5geC4quC4h+C4iuC4seC4oiDguInguLHguJXguKPguIrguLHguKLguKrguLjguIrguLINCivguYHguKrguIfguIrguLHguKIg4LiZ4Lin4Lij4Lix4LiV4LiZ4LmM4LiU4Li44Liq4Li04LiVDQor4LmB4Liq4LiH4LiK4Lix4LiiIOC4qOC4o+C4teC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4oOC4o+C4k+C5jA0KK+C5geC4quC4h+C4lOC4suC4pyDguJfguK3guIfguYHguJ4NCivguYHguKrguIfguJfguK3guIcg4LiX4Li04LiZ4LiZ4Li04LiB4LijDQor4LmB4Liq4LiH4LiY4Lij4Lij4LihIOC4n+C4uOC5ieC4h+C5hOC4nuC4qOC4suC4peC4nuC4h+C4qOC5jA0KK+C5geC4quC4h+C4oeC4siDguYDguJTguIrguKHguJnguJXguYwNCivguYHguKrguIfguKPguLHguJXguJnguYwg4Lit4Li44LiU4Lih4LiK4Lix4Lii4Lia4Lij4Lij4LmA4LiI4Li04LiUDQor4LmB4Liq4LiH4Liq4Li44Lij4Li14Lii4LmMIOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4k+C4meC4tOC4mOC4tA0KK+C5geC4quC4h+C4reC4o+C4uOC4kyDguJrguLjguI3guIrguLkNCivguYHguKrguIfguK3guYjguK3guJkg4LiE4Liz4Lil4Li34LitDQor4LmB4Liq4LiH4LmA4LiU4Li34Lit4LiZIOC4l+C4tOC4nuC4oeC4meC4leC5jA0KK+C5geC4quC4h+C5gOC4lOC4t+C4reC4mSDguKrguLjguKfguKfguKPguKPguJjguJnguYwNCivguYHguKrguIfguYDguJ7guYfguI0g4Lil4Li14LiY4LiZ4Lio4Lix4LiB4LiU4Li04LmM4Liq4LiB4Li44LilDQor4LmB4Liq4LiU4LiHIOC4leC4seC4meC4leC4ouC4suC4geC4ow0KK+C5geC4quC4meC4nuC4pSDguKPguLHguKjguKHguLUNCivguYHguKrguKfguIcg4LiB4Lix4LiZ4Lij4Lix4Lih4Lii4LmMDQor4LmB4Liq4Lin4LiHIOC4iOC4seC4meC4l+C4o+C5jOC4reC4uOC4lOC4oQ0KK+C5geC4quC4p+C4hyDguJTguLPguKPguLHguKrguKHguIfguITguKXguKrguLTguKPguLQNCivguYHguKrguKfguIcg4Lia4Li44LiN4LiH4Lit4LiBDQor4LmB4Liq4Lin4LiHIOC4nuC4peC4suC4k+C4tOC4iuC4ouC5jA0KK+C5geC4quC4p+C4hyDguYDguKLguYfguJnguYPguIjguJvguKPguLDguYDguKrguKPguLTguJANCivguYHguKrguKfguIcg4Lio4Li04Lij4Li04Lib4Lij4Liw4Lig4Liy4Lip4Lih4LiH4LiE4LilDQor4LmB4Liq4Lin4LiHIOC4q+C4oeC4seC4lOC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C5guC4quC4lOC4siDguKPguLHguI3guJTguKMNCivguYLguKrguJ7guKUg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4LmC4Liq4Lie4Li04LioIOC4oOC4ueC4quC4meC4suC4hOC4oQ0KK+C5guC4quC4oOC4kyDguIHguLnguYvguYDguIjguKPguLTguI0NCivguYLguKrguKDguJMg4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Lil4Li04LmI4LiZDQor4LmC4Liq4Lig4LiTIOC4iuC4suC4peC4teC4nuC4o+C4q+C4oQ0KK+C5guC4quC4oOC4kyDguYDguJTguIrguYDguJfguKfguJ7guKMNCivguYLguKrguKDguJMg4LiX4Lix4Lia4Lia4Lij4Lij4LiI4LiHDQor4LmC4Liq4Lig4LiTIOC4muC4uOC4jeC4iuC5iOC4p+C4og0KK+C5guC4quC4oOC4kyDguJ7guIfguKnguYzguYDguKDguJXguKPguLLguKPguLHguJXguJnguYwNCivguYLguKrguKDguJMg4Lig4Li44Lih4Lij4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmC4Liq4Lig4LiTIOC4o+C4seC4leC4meC5gOC4peC4tOC4qA0KK+C5guC4quC4oOC4kyDguKfguYjguK3guIfguKfguIfguKjguYzguKjguKPguLUNCivguYLguKrguKDguJMg4Lio4Li04Lin4Li04Lil4Lix4LiiDQor4LmC4Liq4Lig4LiTIOC4quC4uOC4jeC4suC4k+C5gOC4qOC4o+C4qeC4kOC4geC4ow0KK+C5guC4quC4oOC4kyDguYDguKvguKHguLfguK3guJnguKrguKHguLHguKINCivguYLguKrguKDguJPguJ7guLHguJLguJnguLLguKDguKPguJPguYwg4Lie4Lij4Liw4LiE4Lij4Li5DQor4LmC4Liq4Lig4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC4quC4seC4h+C4p+C4o+C4k+C5jA0KK+C5guC4quC4oOC4siDguYDguIjguKPguLTguI3guKrguLjguILguIjguLTguKPguLANCivguYLguKrguKDguLIg4LmA4LiV4Li14Lii4Lin4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4LmC4Liq4Lig4LiyIOC4muC4uOC4jeC5gOC4o+C4t+C4reC4hw0KK+C5guC4quC4oOC4siDguYDguJ7guYfguIrguKPguITguLnguYDguKfguLXguKLguIcNCivguYLguKrguKDguLIg4Lil4Li04Lih4Liy4LiZ4LiZ4LiX4LmM4Lin4Lij4Liy4LmE4LiK4LiiDQor4LmC4Liq4Lig4LiyIOC4quC4p+C4seC4quC4lOC4tOC5jOC4l+C4seC4leC4tA0KK+C5guC4quC4oOC4siDguYLguKvguJXguKPguLDguIHguLTguJXguKLguYwNCivguYLguKrguKDguLLguJ7guKMg4Lit4Liy4Lir4Li04LiZ4Lix4LiZ4LmC4LiXDQor4LmC4Liq4Lig4Liy4LioIOC5guC4quC4p+C4seC4kuC4meC4suC4h+C4geC4ueC4ow0KK+C5guC4quC4oOC4tOC4lOC4siDguYHguJfguYnguYDguJfguLXguYjguKLguIfguJjguKPguKPguKENCivguYLguKrguKDguLTguJUg4Lil4Li04LmJ4Lih4Lit4Liz4LiZ4Lin4LiiDQor4LmC4Liq4Lig4Li04Lip4LiQIOC4nOC4peC4hOC4s+C4quC4uOC4gg0KK+C5guC4quC4oOC4tSDguK3guJnguLjguIjguLLguKPguLXguKPguLHguJXguJnguYwNCivguYLguKrguKHguJ7guLTguIrguIzguLIg4Lin4Lij4Lij4LiT4LiB4Li54LilDQor4LmC4Liq4Lij4Lii4LiyIOC4muC4uOC4jeC4ouC4p+C4tOC4leC4o+C5jA0KK+C5guC4quC4o+C4seC4leC4meC5jCDguIjguK3guIcNCivguYLguKrguKzguKog4Lih4LmI4Lin4LiH4LiZ4Li44LmI4LihDQor4LmE4LiqIOC4ouC4tOC5ieC4oeC5gOC4meC4teC4ouC4oQ0KK+C5hOC4quC4pyDguYHguILguJTguKfguIcNCivguYTguKrguKcg4LmA4LiJ4LmI4LiH4LiX4Lit4LiHDQor4LmE4Liq4LinIOC5guC4leC4p+C4h+C4qeC5jA0KK+C5hOC4quC4pyDguJrguLjguI3guJfguLTguKENCivguYTguKrguKcg4Lie4Li24LmI4LiH4LmB4LiB4LmJ4LinDQor4LmE4Liq4LinIOC4o+C4suC4iuC4p+C4h+C4qOC5jA0KK+C5hOC4quC4pyDguKjguKPguLXguYHguKrguIcNCivguYTguKrguKcg4Liq4Li44LiU4Lib4Liy4LiZDQor4LmE4Liq4LinIOC4reC4s+C5hOC4nuC4nuC4ow0KK+C4q+C4hyDguK3guLTguKrguKPguLDguKfguKPguKfguLLguJPguLTguIoNCivguKvguIfguKnguYwg4LmC4LiB4Lin4Li04LiZ4LiY4LiZ4Liy4Lie4Lix4LiS4LiZ4LmMDQor4Lir4LiH4Lip4LmMIOC5gOC4nOC5iOC4suC5guC4oOC4hOC4quC4luC4tOC4leC4ouC5jA0KK+C4q+C4h+C4tOC5iOC4h+C4peC5ieC4p+C4hyDguYHguIvguYjguYDguIvguLXguKLguKcNCivguKvguJfguLHguKIg4LmA4Lic4Li34Lit4LiB4Lil4Liy4LiU4Lie4Lij4LmJ4Liy4LinDQor4Lir4LiX4Lix4Lii4LiK4LiZ4LiBIOC5geC4quC4h+C4nuC4o+C4oeC4l+C4tOC4nuC4ouC5jA0KK+C4q+C4l+C4seC4ouC4o+C4seC4leC4meC5jCDguITguLjguYjguKLguJXguYjguKfguJkNCivguKvguJfguLHguKLguKPguLHguJXguJnguYwg4Lie4Lix4LiS4LiZ4LmM4LiE4Li44LmJ4LihDQor4Lir4LiX4Lix4Lii4Lij4Li44LmI4LiHIOC4leC4seC5ieC4h+C4iOC4tOC4leC4nuC4tOC4l+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4q+C4meC4syDguJvguLTguKLguLHguKrguKrguJ7guLHguJnguJjguLjguYwNCivguKvguJnguLbguYjguIfguKvguJfguLHguKIg4LmA4LiZ4LiV4Li04Lil4Lix4LiB4Lip4LiT4Lin4Li04LiI4Liy4Lij4LiT4LmMDQor4Lir4LiZ4Li5IOC4o+C4uOC5iOC4h+C5gOC4iOC4o+C4tOC4jeC4o+C4reC4lA0KK+C4q+C4meC4ueC4meC5ieC4reC4oiDguK7guK3guIHguLTguYnguJnguKrguYwNCivguKvguJnguLnguKfguKPguKPguJPguYwg4Lin4Lij4Lij4Lix4LiV4LiZ4LmMDQor4Lir4LiZ4Li54LmA4Lil4LmH4LiBIOC5geC4quC4h+C4l+C4reC4hw0KK+C4q+C4oeC5iOC4p+C4oiDguJjguKPguKPguKHguJrguLjguJXguKMNCivguKvguKHguLHguJQg4Lir4Lih4Lix4LiU4Liu4Liy4Lij4Li44LiTDQor4Lir4Lih4Li44LiUIOC4quC4uOC4guC4oOC4tOC4jeC5guC4jQ0KK+C4q+C4oeC4uOC4ouC5gOC4leC4teC4ouC4hyDguYHguIvguYjguYLguK3guYrguKcNCivguKvguKLguIHguKjguLTguKPguLQg4Lib4Lij4Liw4LiK4Li44Lih4LmC4LiK4LiV4Li0DQor4Lir4Lii4Lin4LiBIOC4peC5ieC4s+C5gOC4peC4tOC4qA0KK+C4q+C4ouC4suC4lOC4lOC4p+C4hyDguYDguKfguJPguLjguIjguLHguJnguJfguKPguYwNCivguKvguKLguLXguYgg4LmA4Lit4Li14LmI4Lii4Lih4LiB4Lil4Li04LmI4LiZDQor4Lir4Lij4Lij4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4seC4meC4mOC5jOC4h+C4suC4oQ0KK+C4q+C4o+C4o+C4qeC4siDguKHguLDguYLguKPguKvguLDguJrguLjguJXguKPguYwNCivguKvguKPguLHguYjguIcg4Liq4Li44LiX4LiY4Li04Liq4Li44Lin4Lij4Lij4LiTDQor4Lir4Lik4LiX4Lix4LiiIOC5gOC4iOC4teC4ouC4oeC5g+C4iOC4quC4p+C5iOC4suC4h+C4pOC4geC4qeC5jA0KK+C4q+C4peC4hyDguKrguLTguIfguKvguYzguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKvguKXguYjguK3guIfguIfguYnguK0g4LmB4LiL4LmI4LmA4LiL4Li14Lii4LinDQor4Lir4Lil4Liy4LiUIOC4meC4tOC4peC4qOC4tOC4o+C4tA0KK+C4q+C4peC4tOC4mSDguKjguKPguLXguKfguIfguIjguLHguJnguJfguKPguYwNCivguKvguKXguLUg4Lib4Lil4Lit4LiU4Lig4Lix4LiiDQor4Lir4Lil4Li14LmA4Lit4LiHIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4q+C4p+C4pSDguYDguJfguLXguKLguKHguK3guLHguKHguJ7guKMNCivguKvguKfguLHguIcg4Lik4LiB4Lip4LmM4Lij4Lix4LiK4LiZ4Li14LiB4LijDQor4Lir4Lin4Lix4LmI4LiZIOC4iOC4uOC4peC4oeC4uOC4mQ0KK+C4q+C4p+C4suC4meC5g+C4iCDguITguKXguYnguLLguKLguKjguKPguLUNCivguKvguK3guKEg4LmA4LiX4Li14Lii4Lih4LmA4LiI4Lij4Li04LiNDQor4Lir4Lit4Lih4Lir4Lin4LilIOC4m+C4seC4leC4meC4tQ0KK+C4q+C4seC4lCDguYLguITguJXguLDguKHguLANCivguKvguLHguJfguKLguLIg4Lie4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4Lir4Lix4Liq4LiV4LiK4Lix4LiiIOC5geC4quC4h+C5gOC4quC4o+C4tOC4kOC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4q+C4suC4jSDguIvguLfguYjguK3guJXguKPguIcNCivguKvguLLguI0g4Lit4Lix4LmL4LiZ4Lin4LiH4Lio4LmMDQor4Lir4LmI4Liy4LiH4LiE4Li44LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4q+C4tOC4o+C4seC4jSDguJrguLjguJnguJnguLLguIQNCivguKvguLTguKPguLHguI3guI3guLTguIHguLLguKPguYwg4Lit4Lij4Lix4LiN4LiN4Li04LiBDQor4Lir4Li44LmJ4Lii4LmE4LiZ4LmJIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5gOC4q+C4oeC4nuC4o+C4o+C4kyDguIjguLLguJnguKjguLTguKXguLINCivguYDguKvguKHguLfguK3guJkg4Liq4Li14LmA4Lir4Lil4LmH4LiBDQor4LmA4Lir4Lij4Li14Lii4LiNIOC4iuC4teC4p+C4suC4meC4seC4meC4l+C5jA0KK+C5gOC4q+C4o+C4teC4ouC4jSDguKrguIfguYjguLLguYDguJnguJXguKMNCivguYDguKvguKPguLXguKLguI3guYDguIfguLTguJkg4LiX4Lix4Lio4LiZ4Lin4Li04Lij4Li44Lis4Lir4LmMDQor4LmA4Lir4Lil4Li14LmI4Lii4LihIOC4meC4suC4meC4reC4gQ0KK+C5gOC4q+C4peC5h+C4geC4ruC4ueC5iSDguYHguIvguYjguYDguKXguYfguIENCivguYDguKvguYfguKEg4Lil4Liz4LmA4Lir4Lil4Li34LitDQor4LmB4Lir4Lil4Lih4LiX4Lit4LiHIOC4reC4oOC4tOC4oeC4q+C4suC4muC4uOC4k+C4ouC5jA0KK+C5guC4q+C4peC5iOC5gOC4q+C4oeC4oiDguYHguIvguYjguYDguInguLTguJkNCivguYPguKvguKHguYgg4LmB4LiL4LmI4LiL4Li04LmJ4LihDQor4LmE4Lir4Lil4LmI4Liu4LiBIOC5geC4i+C5iOC4iOC4tuC4hw0KK+C4reC4h+C4hOC5jOC4reC4oyDguYDguKXguK3guKXguKANCivguK3guIfguK3guLLguIgg4LiI4Li24LiH4Lib4Lij4Liw4Lig4LiyDQor4Lit4LiH4Lit4Liy4LiIIOC5guC4leC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4reC4h+C4reC4suC4iCDguJ7guIjguJnguYzguJfguKfguLXguYDguIHguLXguKLguKPguJXguLQNCivguK3guIfguK3guLLguIgg4LmC4Lij4LiI4LiZ4LmM4LiV4Lij4LiH4LiI4Li04LiV4LiV4LmMDQor4Lit4LiH4Lit4Liy4LiIIOC4quC4uOC4iOC4tOC4o+C4iuC4suC5guC4lQ0KK+C4reC4h+C4uOC5iOC4mSDguYLguIHguI/guLTguJXguKPguLDguIHguLnguKUNCivguK3guIfguLjguYjguJkg4Lie4Lij4Lir4Lih4Lih4Liy4Lii4LiZDQor4Lit4LiH4Li44LmI4LiZIOC5guC4q+C4h+C4p+C5gOC4iOC4o+C4tOC4jQ0KK+C4reC4k+C4tOC4p+C4seC4kuC4meC5jCDguYDguKvguKXguLfguK3guIfguKHguLXguIrguLHguKINCivguK3guJTguLTguJnguLHguJnguJfguYwg4Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmM4LiZ4Liy4LiB4LijDQor4Lit4LiU4Li04Lio4LijIOC4iuC4suC4leC4tOC4geC4s+C5geC4q+C4hw0KK+C4reC4lOC4tOC4qOC4oyDguYDguJ7guYfguIrguKPguJbguJnguK3guKENCivguK3guJTguLTguKjguKMg4Liq4Li44Lij4Li04Lii4Lin4Lij4Lin4LiH4Lio4LmMDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4geC4uOC4peC4qOC4tOC4o+C4tOC4p+C4uOC4kuC4tOC4iuC4seC4og0KK+C4reC4lOC4tOC4qOC4seC4geC4lOC4tOC5jCDguYLguInguKHguYHguIHguYnguKcNCivguK3guJTguLTguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LmB4LiX4LmI4LiHDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4p+C4h+C5gOC4nuC5h+C4iuC4o+C5jA0KK+C4reC4lOC4tOC4qOC4seC4geC4lOC4tOC5jCDguYLguKPguKvguLTguJXguLDguKjguLjguJkNCivguK3guJTguLTguKjguLHguIHguJTguLTguYwg4Lio4Lix4LiB4LiU4Li04LmM4LiZ4Liz4Liq4LmI4LiHDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4peC4sOC4l+C4tOC5ieC4hw0KK+C4reC4lOC4tOC4qOC4seC4oiDguJjguJnguKfguLTguJrguLnguKXguKLguYwNCivguK3guJTguLTguKrguLHguKIg4Lin4Li04Lih4Lil4Liq4Lix4LiI4LiI4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lit4LiU4Li04LmA4Lij4LiBIOC4muC4uOC4jeC5gOC4reC4teC5iOC4ouC4oQ0KK+C4reC4lOC4uOC4pSDguIjguLHguJnguJfguKPguKrguLjguKPguLTguKLguKjguLHguIHguJTguLTguYwNCivguK3guJTguLjguKXguKLguYzguKjguLHguIHguJTguLTguYwg4LiV4Li14Lij4Liw4LiI4Li04LiZ4LiU4LiyDQor4Lit4LiU4Li44Lil4Lii4LmMIOC4iOC4suC4o+C4uOC4o+C4seC4leC4meC5jA0KK+C4reC4lOC4uOC4peC4ouC5jCDguYDguJXguLXguKLguKrguIHguLjguKUNCivguK3guJTguLjguKXguKLguYwg4Lic4Liy4LiV4Li04Lir4Lix4LiV4LiW4LiB4LijDQor4Lit4LiU4Li44Lil4Lii4LmMIOC4o+C4seC4leC4meC4l+C4seC4qOC4meC4teC4ouC5jA0KK+C4reC4lOC4uOC4peC4ouC5jCDguKrguIHguLjguKXguJ7guLLguJPguLTguIrguKLguYwNCivguK3guJTguLjguKXguKLguYwg4Lit4Li04LiZ4LmA4Liq4LiZ4Li1DQor4Lit4LiV4Li04LiZ4Li44LiKIOC4o+C4seC4h+C4quC4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4reC4leC4tOC5gOC4o+C4gSDguJMg4LiW4Lil4Liy4LiHDQor4Lit4LiY4Li04LiE4LihIOC4qOC4uOC4oOC4lOC4tOC4peC4geC4iuC4seC4og0KK+C4reC4mOC4tOC4m+C4seC4leC4ouC5jCDguITguKXguLXguYjguKrguLjguJnguJfguKMNCivguK3guJjguLTguKfguLHguJLguJnguYwg4Lit4Lij4Lij4LiW4Lib4Lin4Lix4LiV4LiZ4LmMDQor4Lit4LiZ4LiH4LiE4LmM4LiZ4Liy4LiOIOC5gOC4leC4iuC4sOC4p+C4quC4seC4jeC4jeC4uQ0KK+C4reC4meC4h+C4hOC5jOC4meC4uOC4iiDguIHguK3guIfguIjguLTguJnguJTguLINCivguK3guJnguIfguITguYzguKXguLHguIHguKnguJPguYwg4Lih4Liy4Lil4Liy4LiB4Lit4LiHDQor4Lit4LiZ4LiH4LiE4LmMIOC5geC4geC5ieC4p+C4geC4tOC4leC4leC4tOC4hOC4uOC4kw0KK+C4reC4meC4h+C4hOC5jCDguIjguLHguJnguJfguKPguKjguLjguKDguYHguKrguIcNCivguK3guJnguIfguITguYwg4LiK4Liy4LiV4Lia4Li44LiV4LijDQor4Lit4LiZ4LiH4LiE4LmMIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4reC4meC4h+C4hOC5jCDguJfguKfguLXguKrguLjguIINCivguK3guJnguIfguITguYwg4LiZ4Liy4Lih4Lio4Lij4Li14LiE4Li44LiTDQor4Lit4LiZ4LiH4LiE4LmMIOC4m+C4o+C4sOC4nuC4seC4leC4o+C5jOC4geC4uOC4pQ0KK+C4reC4meC4h+C4hOC5jCDguJ7guLHguKXguKXguKDguKPguLHguIHguKnguLINCivguK3guJnguIfguITguYwg4Lig4Li54LmI4LmA4LiI4Lij4Li04LiNDQor4Lit4LiZ4LiH4LiE4LmMIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4reC4meC4h+C4hOC5jCDguKfguLTguYDguKfguYLguIENCivguK3guJnguIfguITguYwg4Liq4Lih4Liy4LiZ4Liq4Li04LiZDQor4Lit4LiZ4LiH4LiE4LmMIOC4quC4uOC4oOC4suC4nuC4nuC4o+C5ieC4reC4oQ0KK+C4reC4meC4h+C4hOC5jCDguK3guYjguKfguKHguKrguLjguIINCivguK3guJnguIfguKXguLHguIHguKnguJPguYwg4LmC4Lij4LiI4LiZ4Lia4Li44Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4LiZ4Lin4Lix4LiKIOC4kOC4tOC4leC4tOC4oOC4suC4geC4ow0KK+C4reC4meC4seC4jeC4jeC4siDguKfguLXguKPguLDguJDguLLguJnguLANCivguK3guJnguLHguJnguJXguYzguIrguLHguKIg4LiC4Lix4LiZ4LmC4LiXDQor4Lit4LiZ4Lix4LiZ4LiV4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4nuC4teC4ouC4o+C4iOC4tOC4leC5gOC4peC4tOC4qOC4guC4iOC4ow0KK+C4reC4meC4seC4meC4leC5jCDguIHguLPguJvguLHguYjguJnguJfguK3guIcNCivguK3guJnguLHguJnguJXguYwg4LiC4Lii4Lix4LiZDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4h+C4suC4oeC4ouC4tOC5iOC4h+C4quC4h+C5iOC4sg0KK+C4reC4meC4seC4meC4leC5jCDguIjguLTguJXguJXguYzguKPguLHguIHguYTguJfguKINCivguK3guJnguLHguJnguJXguYwg4LmB4LiI4LmJ4LiH4LiB4Lil4Li14LiaDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4iuC4uOC5iOC4oeC4geC4o+C4suC4meC4leC5jA0KK+C4reC4meC4seC4meC4leC5jCDguYHguIvguYjguYDguKvguLXguKINCivguK3guJnguLHguJnguJXguYwg4LiV4Lij4Li14Lie4LiI4LiZ4Li14Lii4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC5hOC4leC4o+C4quC4suC4o+C4qOC4o+C4tQ0KK+C4reC4meC4seC4meC4leC5jCDguJjguJnguLDguKjguLTguKPguLTguJnguLLguKfguLTguJkNCivguK3guJnguLHguJnguJXguYwg4LiZ4Li04LiV4Li04LmA4LiI4Lij4Li04LiN4Lie4LiH4Lio4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4muC4uOC4jeC4qOC4o+C4teC4quC4uOC4gg0KK+C4reC4meC4seC4meC4leC5jCDguJvguKXguLfguYnguKHguKHguJPguLUNCivguK3guJnguLHguJnguJXguYwg4Lie4LiH4Lip4LmM4Liq4Lih4Lia4Lix4LiV4Li0DQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4nuC4tuC5iOC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4reC4meC4seC4meC4leC5jCDguKDguLnguYjguKjguKPguLXguKfguKPguLLguKfguIfguKjguYzguIHguLnguKUNCivguK3guJnguLHguJnguJXguYwg4LmA4Lih4LiG4Lil4Lit4LiiDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4o+C4seC4iuC5gOC4p+C4l+C4ouC5jA0KK+C4reC4meC4seC4meC4leC5jCDguKXguLTguYnguJnguIjguLXguYgNCivguK3guJnguLHguJnguJXguYwg4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4p+C4tOC4o+C4tOC4o+C4seC4leC4meC5jA0KK+C4reC4meC4seC4meC4leC5jCDguKjguKPguLXguYDguJ7guLXguKLguKMNCivguK3guJnguLHguJnguJXguYwg4Liq4Lin4Lix4Liq4LiU4Li04LmM4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4quC4uOC4guC4meC5ieC4reC4og0KK+C4reC4meC4seC4meC4leC5jCDguKrguLnguIjguLTguIbguKPguLANCivguK3guJnguLHguJnguJXguYwg4LmA4Lir4Lih4Li34Lit4LiZ4LmB4Lih4LmJ4LiZDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4reC4seC4qOC4p+C4geC4uOC4pQ0KK+C4reC4meC4seC4meC4leC5jCDguYDguK3guIHguJnguLTguKLguKENCivguK3guJnguLHguKog4Lio4Li04Lil4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lit4LiZ4Li04Lij4Li44LiX4LiY4LmMIOC4hOC4h+C5gOC4m+C4o+C4oQ0KK+C4reC4meC4tOC4qeC4juC4siDguKjguKPguLXguKrguLHguJnguJXguLTguYHguKrguIcNCivguK3guJnguLgg4Lin4Lix4LiS4LiY4Lix4LiN4LiN4LiB4Lij4Lij4LihDQor4Lit4LiZ4Li44LiB4Li54LilIOC4iuC4suC4leC4tOC4reC4uOC4lOC4oeC5gOC4lOC4ig0KK+C4reC4meC4uOC4geC4ueC4pSDguKjguLTguKPguLTguKjguLHguIHguJTguLTguYzguYTguJ7guJrguLnguKXguKLguYwNCivguK3guJnguLjguIrguKPguLHguIHguKnguYwg4Lih4Lir4Liy4Lit4Lix4Lih4Lie4Lij4Lie4Lik4LiB4Lip4LmMDQor4Lit4LiZ4Li44LiK4LiyIOC4iOC4suC4o+C4uOC4q+C4tOC4o+C4seC4jeC4quC4geC4uOC4pQ0KK+C4reC4meC4uOC4iuC4siDguJjguLPguKPguIfguKPguLHguJXguJnguYwNCivguK3guJnguLjguIrguLIg4Lih4Li44LiB4LiU4Liy4Liq4LiZ4Li04LiXDQor4Lit4LiZ4Li44LiK4LiyIOC4quC4tOC4o+C4tOC4quC4tOC4meC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4reC4meC4uOC4iuC4suC4leC4tCDguITguIrguKjguLTguKXguLINCivguK3guJnguLjguIrguLTguJUg4LiB4Liy4Lij4LiZ4Lit4LiBDQor4Lit4LiZ4Li44LiK4Li04LiVIOC4l+C4reC4h+C4reC4seC5ieC4mQ0KK+C4reC4meC4uOC4iuC4tOC4lSDguYDguKPguYjguIfguJ7guLjguJLguLTguJ7guIfguKnguYwNCivguK3guJnguLjguIrguLTguJUg4Lit4Li04LiZ4LiY4Li04Lij4Lix4LiB4Lip4LmMDQor4Lit4LiZ4Li44LiY4Li04LiU4LiyIOC5geC4nuC4peC4h+C4geC4o+C4sOC5guC4l+C4gQ0KK+C4reC4meC4uOC4nuC4h+C4qeC5jCDguIjguLHguIfguJnguKDguLLguJ7guKMNCivguK3guJnguLjguJ7guJnguJjguYwg4Lii4Lio4Lig4Lij4LiT4LmMDQor4Lit4LiZ4Li44Lie4Lix4LiZ4LiY4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4reC4meC4uOC4o+C4seC4geC4qeC5jCDguITguLHguJnguJjguKPguLHguIHguKnguYwNCivguK3guJnguLjguKPguLHguIHguKnguYwg4LiZ4Liy4LiU4Liq4Liy4LijDQor4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmMIOC4peC4teC4peC4suC4m+C4tOC4ouC4oeC4tOC4leC4ow0KK+C4reC4meC4uOC4o+C4seC4geC4qeC5jCDguYDguK3guLfguYnguK3guIfguK3guLjguJTguKENCivguK3guJnguLjguKPguLHguJXguJnguYwg4Lir4Lih4Lix4LiU4Liq4Liw4LmB4Lil4LiwDQor4Lit4LiZ4Li44Lin4Lij4Lij4LiV4LiZ4LmMIOC4geC4peC5gOC4i+C5h+C4oeC4oeC4ueC4i+C4rQ0KK+C4reC4meC4uOC4p+C4seC4kuC4meC5jCDguJnguLLguITguKjguKPguLXguKrguLjguIINCivguK3guJnguLjguKfguLHguJLguJnguYwg4Liq4LiW4Li04Lij4Lin4Li04LiB4Lij4Liy4LiZ4LiV4LmMDQor4Lit4LiZ4Li44Lin4Lix4LiV4LiZ4LmMIOC4reC4seC4h+C4qOC4uOC4oOC4suC4geC4ow0KK+C4reC4meC4uOC4p+C4seC4leC4oyDguK3guLLguIjguKfguLLguJfguLTguJkNCivguK3guJnguLjguKjguLHguIHguJTguLTguYwg4LiI4LiH4LiI4Liy4Lih4Lij4Li14Liq4Li14LiX4Lit4LiHDQor4Lit4LiZ4Li44Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4teC4quC4oeC4p+C4tOC4l+C4ouC5jA0KK+C4reC4meC4uOC4qOC4tOC4qeC4juC5jCDguYDguJfguJ7guKrguLTguJnguJjguJ7guKrguIHguLjguKUNCivguK3guJnguLjguKrguKPguJPguYwg4LiE4Li04Lin4LmA4LiB4Lip4Lih4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lit4LiZ4Li44Liq4Lij4LiT4LmMIOC4luC5ieC4s+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4reC4meC4uOC4quC4o+C4k+C5jCDguJ7guIfguKnguYzguYLguIrguJXguLQNCivguK3guJnguLjguKrguKPguJPguYwg4Lil4Li04Lih4Lib4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lit4LiZ4Li44Liq4Lij4LiT4LmMIOC4quC4uOC4meC4l+C4o+C4sg0KK+C4reC4meC4uOC4quC4o+C4siDguKrguLjguILguIrguLLguJXguLQNCivguK3guJnguLjguYDguJfguJ4g4Lia4Li44LiN4LmA4Lib4Li14LmI4Lii4Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lit4Lia4Lih4Liy4Lil4Li1IOC4oOC4tOC4jeC5guC4jeC4p+C4suC4meC4tOC4iuC4geC4sA0KK+C4reC4oOC4seC4oiDguJjguKPguKTguJfguJjguLTguYwNCivguK3guKDguLTguIrguI3guLIg4LiZ4Lie4Lih4Liy4LioDQor4Lit4Lig4Li04LiK4Lix4LiiIOC4iOC4tOC4o+C4seC4kOC4leC4tOC4ouC4suC4h+C4geC4ueC4ow0KK+C4reC4oOC4tOC4iuC4seC4oiDguJfguKPguIfguKjguLTguKXguJvguYwNCivguK3guKDguLTguIrguLHguKIg4Lih4Lir4Liy4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lig4Li04LiK4Lix4LiiIOC4qOC4o+C4teC5hOC4iuC4ouC4ouC4seC4meC4leC5jA0KK+C4reC4oOC4tOC4iuC4seC4oiDguK3guLHguKjguKfguYLguKPguIjguJnguYzguJ7guLLguJnguLTguIoNCivguK3guKDguLTguIrguLLguJUg4LmB4Lie4Lij4Liq4Li14LmA4LiI4Lij4Li04LiNDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4geC4teC4o+C4leC4tOC4reC4suC4oOC4suC4geC4uOC4pQ0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguIjguLHguJnguJfguYLguKPguJrguKUNCivguK3guKDguLTguIrguLLguJXguLQg4LmA4LiK4Li04LiU4LiK4Lix4Lii4Lig4Li54Lih4Li0DQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4leC4seC5ieC4h+C4hOC4suC4o+C4p+C4hOC4uOC4kw0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguJjguLXguKPguKrguLjguJnguJfguKPguKfguLHguJLguJnguYwNCivguK3guKDguLTguIrguLLguJXguLQg4LmC4Lib4Lij4LiT4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4oeC4k+C4teC5guC4o+C4iOC4meC5jOC4ieC4suC4og0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguYDguKXguLTguKjguJvguLTguKLguLDguJnguLHguJnguJfguIHguLnguKMNCivguK3guKDguLTguIrguLLguJXguLQg4Lio4Li04Lij4Li04Lih4Liy4LiV4Lii4LmMDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4quC4uOC4p+C4o+C4o+C4k+C4geC4uOC4pQ0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguK3guLHguKjguKfguJ7guLTguIrguI3guYzguYLguIrguJXguLQNCivguK3guKDguLTguIrguLTguJUg4Lik4LiX4LiY4Li04Lia4Li54Lij4LiT4LmMDQor4Lit4Lig4Li04LiN4LiN4LiyIOC4ieC4seC4leC4o+C5guC4reC4rOC4suC4o+C4geC4uOC4pQ0KK+C4reC4oOC4tOC4jeC4jeC4siDguJrguLjguI3guIjguLPguKPguLHguKoNCivguK3guKDguLTguI3guI3guLIg4LmA4Lil4Li04Lio4Lin4Lix4LiS4LiZ4LiZ4LiZ4LiX4LmMDQor4Lit4Lig4Li04LiN4LiN4LiyIOC4reC4ouC4ueC5iOC4hOC4sw0KK+C4reC4oOC4tOC4meC4niDguYDguIHguLTguJTguJ7guLTguJrguLnguKXguKLguYwNCivguK3guKDguLTguJnguLHguJnguJfguYwg4LiTIOC4meC4hOC4ow0KK+C4reC4oOC4tOC4meC4seC4meC4l+C5jCDguKPguLHguIHguJXguJvguKPguLDguIjguLTguJUNCivguK3guKDguLTguJrguLLguKUg4Lin4Lij4Lij4Lix4LiH4Liq4Lik4Lip4LiP4Li04LmMDQor4Lit4Lig4Li04Lii4Li44LiV4LiV4LmMIOC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4reC4oOC4tOC4o+C4lOC4tSDguYLguJ7guJjguLTguKLguLHguJnguJXguYwNCivguK3guKDguLTguKPguKHguKLguYwg4LiU4Li04Lip4LiQ4Li1DQor4Lit4Lig4Li04Lij4Lix4LiB4Lip4LmMIOC4iuC4teC4p+C5gOC4quC4luC4teC4ouC4o+C4nuC4ow0KK+C4reC4oOC4tOC4o+C4seC4geC4qeC5jCDguKjguLTguKPguLTguJfguKPguLHguJ7guKLguLLguIHguKMNCivguK3guKDguLTguKPguLHguJAg4Lit4Li04LiX4LiY4Li04Lin4Li04LiB4Li44LilDQor4Lit4Lig4Li04Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4guC4qOC4o+C4tQ0KK+C4reC4oOC4tOC4p+C4o+C4o+C4kyDguKrguKfguLHguKrguJTguLUNCivguK3guKDguLTguKfguLHguJLguJnguYwg4Lia4Li44Lij4Li14Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lig4Li04Lin4Lix4LiV4LiZ4LmMIOC4nuC4tOC4k+C4l+C4reC4hw0KK+C4reC4oOC4tOC4qOC4seC4geC4lOC4tOC5jCDguIvguLTguYnguKHguJvguKPguLDguYDguKrguKPguLTguJANCivguK3guKDguLTguKjguLHguIHguJTguLTguYwg4Liq4Lij4Lin4Li04Liq4Li54LiV4LijDQor4Lit4Lig4Li04Liq4Li04LiX4LiY4Li04LmMIOC4iOC4seC4meC4l+C4o+C4p+C4h+C4qOC5jA0KK+C4reC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jCDguJ7guKPguYDguIjguKPguLTguI0NCivguK3guKDguLTguKrguLTguJfguJjguLTguYwg4Liq4Liy4Lii4Liw4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lit4Lig4Li04LmA4LiK4Lip4LiQ4LmMIOC4iuC5iOC4reC4h+C4lOC4suC4o+C4suC4geC4uOC4pQ0KK+C4reC4oOC4tOC5guC4o+C4iOC4meC5jCDguJvguLTguYjguJnguYDguKrguJbguLXguKLguKPguYDguIHguKoNCivguK3guKHguKMg4LiI4Liw4LmA4LiK4Li34Lit4LiZ4Lij4Lix4Lih4Lii4LmMDQor4Lit4Lih4LijIOC4lOC4tOC5gOC4o+C4geC4muC4uOC4qeC4o+C4suC4hOC4seC4oQ0KK+C4reC4oeC4oyDguJrguLLguIfguYDguIjguKPguLTguI3guJ7guKPguJ7guIfguKjguYwNCivguK3guKHguKMg4Lie4Li04Liq4Li44LiX4LiY4Li04Lij4Lix4LiV4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lih4LijIOC5gOC4o+C4t+C4reC4h+C4oeC4suC4meC4sOC4oeC4h+C4hOC4pQ0KK+C4reC4oeC4oyDguKjguLTguKPguLTguK3guLLguIrguLLguKfguLHguJLguJnguLINCivguK3guKHguKMg4Lir4Lih4Lix4LiU4LiC4Liy4LinDQor4Lit4Lih4LijIOC5gOC4reC4teC5iOC4ouC4oeC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4reC4oeC4o+C4nuC4o+C4o+C4kyDguJrguLjguKPguLXguKrguLTguKPguLTguKPguLHguJXguJnguYwNCivguK3guKHguKPguKPguLHguJXguJnguYwg4LiB4Liy4LiN4LiI4LiZ4Lin4Li04LiI4Li04LiV4Lij4LmA4Lil4Li04LioDQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4iOC4uOC4keC4suC4oeC4suC4iuC4suC4leC4tA0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguJTguLjguKrguLTguJUNCivguK3guKHguKPguKPguLHguJXguJnguYwg4LiZ4Li04Lii4Lih4Lij4Liy4Lip4LiO4Lij4LmMDQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4nuC4ueC4meC4leC4o+C4sOC4geC4ueC4peC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguKPguLjguYjguIfguYLguKPguIjguJnguYzguKrguIHguLjguKUNCivguK3guKHguKPguKPguLHguJXguJnguYwg4Lin4Li04LiZ4Li04LiI4LiJ4Liy4Lii4Liw4LiI4Li04LiZ4LiU4LiyDQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4quC4teC5gOC4h+C5ieC4rQ0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguK3guLHguIfguKrguLjguJfguJjguLQNCivguK3guKHguKPguKfguLTguJfguKLguYwg4LmA4Lit4LiB4LmB4Liq4LiH4Lio4Lij4Li1DQor4Lit4Lih4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4h+C4qOC5jOC4nuC4seC4kuC4meC4suC4quC4tOC4mQ0KK+C4reC4oeC4o+C4siDguITguLjguYnguKHguYHguIHguYnguKcNCivguK3guKHguKPguLIg4LiZ4Li04LmI4Lih4Lij4Liy4Lio4Lij4Li1DQor4Lit4Lih4Lij4LiyIOC4o+C4seC4leC4leC4suC4geC4ow0KK+C4reC4oeC4o+C4siDguKvguIfguKnguYzguJ7guKPguYnguK3guKHguI3guLLguJXguLQNCivguK3guKHguKPguLLguKfguJTguLUg4Lit4Lix4LiH4LiE4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Lih4Lij4LmA4LiX4LieIOC4nuC5iOC4p+C4h+C5guC4geC4qOC4pQ0KK+C4reC4oeC4seC4meC4ouC4tOC4lSDguIvguLTguIfguKvguYwNCivguK3guKLguLjguJgg4LiZ4Lix4LiZ4LiX4Liy4Lig4Li04Lin4Lix4LiY4LiZ4LmMDQor4Lit4LijIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4reC4o+C4ieC4seC4kCDguIrguYjguLLguIfguJfguLMNCivguK3guKPguIrguKMg4LmC4Lie4LiY4Li04Liq4Li44LiCDQor4Lit4Lij4LiK4Li44LiU4LiyIOC4nuC4o+C4oeC4muC4uOC4leC4ow0KK+C4reC4o+C4k+C4tSDguIHguLTguJXguLTguK3guLLguKDguLINCivguK3guKPguJPguLUg4Lir4Lil4Lit4LiU4LmA4LiH4Li04LiZDQor4Lit4Lij4LiX4Lix4LiiIOC4geC4pOC4qeC4k+C4ouC4o+C4o+C4ouC4hw0KK+C4reC4o+C4l+C4seC4oiDguIjguLXguKPguKfguKPguKPguJPguKfguIfguKjguYwNCivguK3guKPguJfguLHguKIg4LiU4Li44Lip4LiP4Li14LiX4Lin4Li14Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lij4LiX4Lix4LiiIOC4muC4uOC4jeC4ieC4tOC4oQ0KK+C4reC4o+C4l+C4seC4oiDguKDguLHguIHguJTguLXguKfguLTguIjguLTguJXguKMNCivguK3guKPguJfguLHguKIg4LmA4Lil4Li04Lio4Lib4Lij4Liw4Liq4Lie4Liq4Li44LiCDQor4Lit4Lij4LiX4Lix4LiiIOC4quC4ouC4uOC4oeC4nuC4ow0KK+C4reC4o+C4l+C4seC4oiDguK3guJnguLjguJ7guLHguJnguJjguYzguKfguLXguKPguLDguJ7guIfguKnguYwNCivguK3guKPguJjguLTguJTguLIg4Lia4Li44LiN4Liq4LihDQor4Lit4Lij4LiZ4Li44LiKIOC4geC5ieC4reC4h+C4quC4tOC4meC4mOC4uA0KK+C4reC4o+C4meC4uOC4iiDguIrguJnguLDguJ7guLHguJnguJjguYwNCivguK3guKPguJnguLjguIog4LiW4LiZ4Lix4LiU4LiB4Li04LiIDQor4Lit4Lij4LiZ4Li44LiKIOC4nuC4suC4k+C4tOC4iuC4ouC5jOC4iOC4tOC4meC4lOC4sg0KK+C4reC4o+C4meC4uOC4iiDguKfguKPguKPguJPguKfguLTguIjguLTguJXguKMNCivguK3guKPguJnguLjguIog4Lir4Lix4LiH4Liq4Liw4LmE4Lin4Lio4Lii4LiwDQor4Lit4Lij4Lie4LijIOC4muC4seC4p+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4reC4o+C4nuC4o+C4o+C4kyDguInguLHguJnguKfguLTguYTguKXguIHguLTguIgNCivguK3guKPguJ7guKPguKPguJMg4Lib4LiP4Li04Lie4Lix4LiX4LiY4LmM4Lib4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4Lit4Lij4Lie4Lij4Lij4LiTIOC4p+C4tOC5gOC4qOC4qeC4oeC4h+C4hOC4peC4iuC4seC4og0KK+C4reC4o+C4nuC4o+C4o+C4kyDguK3guLTguJnguJfguKPguKrguLjguKPguLTguKLguYDguJTguIoNCivguK3guKPguJ7guLTguJMg4LmA4LiB4LiV4Li44Lib4Lix4LiN4LiN4LiyDQor4Lit4Lij4Lie4Li04LiZIOC4iOC4seC4meC4l+C4o+C4quC4uOC4gg0KK+C4reC4o+C4nuC4tOC4mSDguJXguLHguJnguJXguLTguKfguLTguKPguLjguKzguKvguYwNCivguK3guKPguJ7guLTguJkg4Lie4Lij4Lib4Lij4Liw4LiB4Liy4Liq4Li04LiVDQor4Lit4Lij4Lie4Li04LiZIOC4p+C5iOC4reC4h+C4p+C4tOC4iuC4iuC4uOC5gOC4p+C4l+C4ouC5jA0KK+C4reC4o+C4nuC4tOC4mSDguK3guJnguLHguJnguJXguKPguIHguLTguJXguJXguLQNCivguK3guKPguJ7guLTguJnguJfguKPguYwg4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmM4LiI4Liy4Lij4Li44Lie4LiH4Lio4LmMDQor4Lit4Lij4Lie4Li04LiZ4LiX4LmMIOC5geC4i+C5iOC5gOC4iOC4teC5iOC4og0KK+C4reC4o+C4nuC4tOC4meC4l+C5jCDguJ7guIfguKjguYzguKfguKPguLLguKHguLTguJXguKPguIrguLHguKINCivguK3guKPguJ7guLTguJnguJfguYwg4Lin4LiH4Lio4LmM4Lin4Li04Liq4Li44LiX4LiY4Li04Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lij4Lie4Li04LiZ4LiX4LmMIOC4reC4meC4seC4meC4leC4muC4uOC4leC4ow0KK+C4reC4o+C4nuC4tOC4meC4mOC5jCDguJjguLTguJTguLLguKPguLHguJXguJnguYzguKrguIHguLjguKUNCivguK3guKPguKHguJPguLUg4Lig4Liy4LiT4Li44Lie4Lix4LiZ4LiY4LmMDQor4Lit4Lij4Lij4LiE4LmA4LiU4LiKIOC5gOC4peC4t+C5iOC4reC4oeC5geC4quC4hw0KK+C4reC4o+C4o+C4k+C4niDguYDguITguLXguKLguIfguKjguLTguKPguLQNCivguK3guKPguKPguJPguJ4g4Lia4Li44LiN4Lie4Li04Lij4Li44LiT4Lij4Lix4LiB4Lip4LiyDQor4Lit4Lij4Lij4LiT4LieIOC4p+C4tOC4iOC4tOC4leC4o+C4leC4o+C4sOC4geC4suC4o+C4geC4uOC4pQ0KK+C4reC4o+C4o+C4k+C4niDguK3guLbguYnguIfguKfguLTguJHguLnguKPguKrguJbguLTguJXguKLguYwNCivguK3guKPguKPguJbguIHguKHguKXguKLguJrguLjguJXguKLguLLguJnguKfguLHguJXguKMg4Lir4Lil4Lin4LiHDQor4Lit4Lij4Lij4LiW4LiK4Lix4LiiIOC4pOC4geC4qeC4muC4uOC4leC4ow0KK+C4reC4o+C4o+C4luC4nuC4oyDguYLguIrguITguIrguLHguKLguYDguIjguKPguLTguI3guKjguKPguLUNCivguK3guKPguKPguJbguJ7guKUg4LiB4Lik4Lip4LiU4Liy4LiY4Li04LiB4Liy4LijDQor4Lit4Lij4Lij4LiW4Lie4LilIOC4ouC4tOC4meC4muC4seC4pw0KK+C4reC4o+C4o+C4luC4nuC4pSDguYDguK7guIfguJrguLjguJPguKLguJ7guLHguJnguJjguYwNCivguK3guKPguKPguJbguKfguLjguJLguLQg4Lij4Lix4LiV4LiZ4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lit4Lij4Lij4LiW4Lit4Li44LiU4LihIOC4nuC4peC4suC4qOC4o+C4seC4og0KK+C4reC4o+C4peC4seC4geC4qeC4k+C5jCDguJvguLTguYjguJnguJnguLTguIHguKMNCivguK3guKPguKfguKPguKPguJMg4LmB4LiB4LmI4LiZ4LiX4Lit4LiHDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4l+C4teC5iOC4ouC4hw0KK+C4reC4o+C4p+C4o+C4o+C4kyDguIrguI7guLLguIrguLHguKLguKfguLTguKfguLHguJLguJnguYwNCivguK3guKPguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4LiI4LmI4LiyDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC5gOC4leC5h+C4oeC4quC4uOC4p+C4o+C4o+C4k+C4nuC4suC4meC4tOC4ig0KK+C4reC4o+C4p+C4o+C4o+C4kyDguJjguLXguKPguLDguKfguLTguJfguKLguYDguKXguLTguKgNCivguK3guKPguKfguKPguKPguJMg4Lib4LiQ4Lih4Lin4Liy4LiT4Li04LiK4Lii4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4nuC4h+C4qeC5jOC4p+C4ow0KK+C4reC4o+C4p+C4o+C4o+C4kyDguKDguKfguJ7guIfguKjguYzguKrguLjguKDguLHguJfguKMNCivguK3guKPguKfguKPguKPguJMg4Lij4Lit4LiU4Lie4Lix4LiZ4LiY4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC5gOC4peC4tOC4qOC4quC4suC4mOC4tOC4lQ0KK+C4reC4o+C4p+C4o+C4o+C4kyDguKfguLTguJfguKLguLLguYDguKfguIoNCivguK3guKPguKfguKPguKPguJMg4Lio4Li04Lij4Li04Liq4Li44LiC4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4quC4tOC4meC4peC4reC4ouC4oeC4sg0KK+C4reC4o+C4p+C4o+C4o+C4kyDguYHguKrguIfguKPguLHguJXguJnguIrguLHguKLguIHguLjguKUNCivguK3guKPguKfguKPguKPguJMg4Lit4Lij4Li44LiT4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiT4LmMIOC4oeC4uOC5iOC4h+C4q+C4meC5ieC4suC4l+C4teC5iA0KK+C4reC4o+C4qOC4o+C4tSDguJnguLTguKLguKHguKfguLHguJkNCivguK3guKPguKnguLIg4LiX4Lij4LiH4Liq4Lih4Lij4Lij4LiW4Lig4Liy4LieDQor4Lit4Lij4Liq4LiyIOC4guC4seC4leC4leC4tOC4ouC4nuC4o+C4nuC4h+C4qOC5jA0KK+C4reC4o+C4quC4siDguJXguLHguJnguYTguJ7guIjguLTguJXguKMNCivguK3guKPguKrguLIg4Lie4Lil4Lit4Lii4Lie4Liy4LiZ4Li04LiK4LmA4LiI4Lij4Li04LiNDQor4Lit4Lij4Liq4LiyIOC4p+C4meC4o+C4seC4geC4qeC5jA0KK+C4reC4o+C4quC4siDguKvguIfguKnguYzguJfguK3guIcNCivguK3guKPguK3guJPguLUg4LmA4Lin4LiK4Lie4LiH4Lio4LiyDQor4Lit4Lij4Lit4LiZ4LiH4LiE4LmMIOC4leC4seC5ieC4h+C4quC4p+C4seC4quC4lOC4tOC4o+C4seC4leC4meC5jA0KK+C4reC4o+C4reC4meC4h+C4hOC5jCDguYDguJ7guKPguLTguJTguJ7guKPguLTguYnguIcNCivguK3guKPguK3guJnguIfguITguYwg4Lio4Lij4Li14Lih4Li54LilDQor4Lit4Lij4Lit4LiZ4LiH4LiE4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4pOC4geC4qeC5jOC4iuC4seC4og0KK+C4reC4o+C4reC4uOC4oeC4siDguJnguLHguJnguJfguLjguKPguLHguJXguJnguYwNCivguK3guKPguK3guLjguKnguLIg4Lit4Liy4Lip4Liy4LiZ4Lit4LiBDQor4Lit4Lij4Lix4LiNIOC5gOC4nOC4t+C4reC4geC4l+C4reC4hw0KK+C4reC4o+C4seC4jSDguKrguLjguJnguLTguJ7guKUNCivguK3guKPguLHguI3guI3guLIg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Li44Lij4Li04Lin4LiH4Lio4LmMDQor4Lit4Lij4Lix4LiN4LiN4LiyIOC4mOC4meC4suC4meC4seC4meC4l+C5jA0KK+C4reC4o+C4seC4jeC4jeC4siDguKHguLLguJnguLDguYHguIHguYnguKcNCivguK3guKPguLHguI3guI3guLIg4Liq4Liy4LiY4Li4DQor4Lit4Lij4Lix4LiTIOC4qOC4o+C4teC4reC4p+C4ouC4iuC4seC4og0KK+C4reC4o+C5iOC4suC4oSDguYDguJfguJ7guLLguJnguJnguJfguYwNCivguK3guKPguYjguLLguKEg4Lin4LiH4Lio4LmM4LiW4Li04Lij4Lin4Lij4Lij4LiY4LiZ4LmMDQor4Lit4Lij4LmI4Liy4Lih4Lio4Lij4Li1IOC4oeC4h+C4hOC4peC4qOC4tOC4o+C4tA0KK+C4reC4o+C4tOC4meC4siDguKjguLTguKPguLTguKfguIfguKjguYwNCivguK3guKPguLTguKLguLIg4Lin4Li04LiX4Lii4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNDQor4Lit4Lij4Li04Liq4LiyIOC5gOC4geC4qeC4oeC4geC4tOC4iOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4reC4o+C4uOC4kyDguYDguIHguLXguKLguKPguJXguLTguJvguLHguI3guI3guLINCivguK3guKPguLjguJMg4LiI4Lix4LiH4LiX4Lit4LiH4Lio4Li04Lij4Li0DQor4Lit4Lij4Li44LiTIOC4iuC4oeC5gOC4iuC4ouC4p+C4h+C4qOC5jA0KK+C4reC4o+C4uOC4kyDguJTguLPguKPguIfguJzguKUNCivguK3guKPguLjguJMg4LiX4Lit4LiH4LiZ4Lit4LiBDQor4Lit4Lij4Li44LiTIOC4meC4tOC4oeC4oeC4suC4meC4meC4l+C5jA0KK+C4reC4o+C4uOC4kyDguJvguKPguLXguJTguLINCivguK3guKPguLjguJMg4Lie4Li44LiB4Lie4Lix4LiBDQor4Lit4Lij4Li44LiTIOC4oeC4suC4ruC4suC4muC4ueC4mg0KK+C4reC4o+C4uOC4kyDguYDguKPguLfguK3guIfguKLguLjguJfguJjguJvguIHguKPguJPguYwNCivguK3guKPguLjguJMg4Lin4Lix4LiZ4Lij4Lix4LiB4Lip4LmMDQor4Lit4Lij4Li44LiTIOC4qOC4tuC4geC4qeC4suC4nuC4o+C4lQ0KK+C4reC4o+C4uOC4kyDguKrguLjguILguKrguJrguLLguKINCivguK3guKPguLjguJMg4Lir4Liy4LiN4LiK4LiZ4LiwDQor4Lit4Lij4Li44LiTIOC4reC4uOC4lOC4oeC4quC4uOC4gg0KK+C4reC4o+C4uOC4k+C4m+C4o+C4sOC4qOC4suC4quC4leC4o+C5jCDguYDguJvguKXguYjguIfguYHguKrguIfguKjguKPguLUNCivguK3guKPguLjguJPguKPguLHguJXguJnguYwg4LiX4Lix4Lia4LmA4LilDQor4Lit4Lij4Li44LiT4Lij4Lix4LiV4LiZ4LmMIOC5gOC4reC4teC5iOC4ouC4oeC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4reC4o+C4uOC4k+C4p+C4o+C4o+C4kyDguIHguLXguKPguJXguLTguJ7guKXguIHguLjguKUNCivguK3guKPguLjguJPguKjguKPguLUg4LmA4LiB4Lip4Lih4Lie4LiH4Lip4LmMDQor4Lit4Lij4Li44LiT4Lio4Lij4Li1IOC4meC4uOC5iOC4oeC4q+C4reC4oQ0KK+C4reC4o+C4uOC4k+C4qOC4o+C4tSDguKjguLTguKPguLTguJ7guKPguYDguJfguJ4NCivguK3guKPguLjguJPguLIg4Lia4Liy4LiB4LmJ4LiyDQor4Lit4Lij4Li44LiT4Li1IOC4hOC4h+C5gOC4o+C4t+C4reC4h+C4pOC4l+C4mOC4tOC5jA0KK+C4reC4o+C4uOC4k+C4tSDguYDguIjguKPguLTguI3guJzguKUNCivguK3guKPguLjguJPguLUg4LmE4LiK4Lii4LiB4LilDQor4Lit4Lij4Li44LiT4Li1IOC5geC4leC4h+C4ieC5iOC4sw0KK+C4reC4o+C4uOC4k+C4tSDguJnguLLguITguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguK3guKPguLjguJPguLUg4Lib4Li04LmI4LiZ4Lia4Lix4LiT4LiR4Li04LiVDQor4Lit4Lij4Li44LiT4Li1IOC4nuC4teC4o+C4suC4geC4o+C5gOC4lOC4ig0KK+C4reC4o+C4uOC4k+C4tSDguKPguLHguIHguKnguLLguJnguLLguYDguKfguKgNCivguK3guKPguLjguJPguLUg4LmC4Lil4Lir4Liy4LiK4Li14Lin4LiwDQor4Lit4Lij4Li44LiT4Li1IOC4qOC4o+C4teC4oOC4sg0KK+C4reC4o+C4uOC4k+C4tSDguKrguLTguIfguKvguYzguITguLMNCivguK3guKPguLjguJPguLUg4Lir4Lih4Li54LmI4LiC4LiI4Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lit4Lij4Li44LiT4Li1IOC4reC4uOC4lOC4oeC4m+C4o+C4suC4peC4sA0KK+C4reC4o+C4uOC4quC4o+C4siDguIrguLLguI3guKrguKfguYjguLLguIcNCivguK3guKPguYTguJcg4Lin4Li44LiS4Li04LmA4LiU4LiK4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijDQor4Lit4Lil4LiH4LiB4Lij4LiT4LmMIOC5gOC4lOC4iuC4hOC4hw0KK+C4reC4peC4tOC4leC4siDguJTguLTguKjguKPguKDguLHguIHguJTguLUNCivguK3guKXguLTguKrguLIg4LiX4Li14LmC4LiqDQor4Lit4Lin4LiaIOC4m+C4o+C4sOC5guC4oeC4iOC4meC4teC4ouC5jA0KK+C4reC4p+C4ouC4iuC4seC4oiDguJvguLTguKLguLDguITguLjguJMNCivguK3guKfguKLguJ7guKMg4LmB4LiB4LmJ4Lin4Lih4LiT4Li1DQor4Lit4Lin4Lii4Lie4LijIOC4oeC4h+C4hOC4peC4geC4peC5ieC4sg0KK+C4reC4p+C4pSDguJnguLTguJXguKLguKrguLjguJfguJjguLTguYwNCivguK3guKrguLjguJnguLXguKLguYwg4LiX4Lij4Lix4Lie4Lii4LmM4Lio4Lij4Li14Lio4Li44Lig4LiK4Lix4LiiDQor4Lit4Lit4Lih4Liq4Li04LiZIOC4quC4tOC4h+C4q+C5jOC5gOC4l+C4teC4ouC4mQ0KK+C4reC5iOC4reC4meC4leC4siDguKrguLHguJfguJjguLLguKPguLHguIfguKrguLUNCivguK3guYnguK0g4LmC4Lie4LiY4LiyDQor4Lit4LmJ4Lit4Lih4LmD4LiIIOC5gOC4nuC4tOC5iOC4oeC4nuC4tOC4geC4uOC4pQ0KK+C4reC5ieC4reC4ouC4l+C4tOC4nuC4ouC5jCDguYHguIvguYjguK3guLHguYnguIcNCivguK3guYnguK3guKLguYPguIgg4Lia4Li44LiN4Lii4Lix4LiHDQor4Lit4Lix4LiBIOC4iuC4uOC5iOC4oeC4iuC4t+C5iOC4mQ0KK+C4reC4seC4geC4qeC4o+C4seC4geC4quC5jCDguYLguJXguIHguKTguKnguJPguLANCivguK3guLHguITguKPguJnguLLguI8g4LiB4Li04LiV4LiV4Li04LmB4Liq4LiH4LiY4Lij4Lij4LihDQor4Lit4Lix4LiE4Lij4Lie4Lix4LiS4LiZ4LmMIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4reC4seC4hOC4o+C5gOC4iuC4qeC4kOC5jCDguITguIfguYDguIjguKPguLTguI0NCivguK3guLHguITguKPguYDguJTguIog4Lit4Liy4Lij4Li14Lii4LmM4Liq4LiB4Li44LilDQor4Lit4Lix4LiH4LiB4Li54LijIOC4m+C4suC4peC4teC4p+C4h+C4qOC5jA0KK+C4reC4seC4h+C4hOC4k+C4siDguITguLPguKrguLjguJnguJfguKMNCivguK3guLHguIfguITguJPguLIg4LmC4LiK4LiV4Li04LiC4LiI4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lit4Lix4LiH4LiE4LiT4LiyIOC4l+C4reC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4reC4seC4h+C4hOC4k+C4siDguYDguJvguLXguYjguKLguKHguKrguLjguILguKfguLHguJLguJnguYwNCivguK3guLHguIfguITguJPguLIg4LmA4Lih4LiY4Lii4Liy4Lig4LiyDQor4Lit4Lix4LiH4LiE4LiT4LiyIOC4p+C4suC4k+C4tOC4iuC4p+C4tOC5gOC4qOC4qeC4geC4uOC4pQ0KK+C4reC4seC4h+C4hOC4k+C4siDguKrguLjguILguKrguLTguJfguJjguLTguYwNCivguK3guLHguIfguITguJPguLIg4Lit4Li04LiZ4LiX4Lij4LmC4LiB4LmA4Lio4LioDQor4Lit4Lix4LiH4LiE4Liy4LijIOC4p+C4seC4iuC4o+C4muC4ueC4o+C4nuC4suC4iuC4seC4og0KK+C4reC4seC4h+C4quC4meC4siDguITguIrguKPguLHguIHguKnguYwNCivguK3guLHguIfguKrguJnguLIg4LmA4Lil4Li04Lio4Lic4LiB4Liy4LiB4Li44LilDQor4Lit4Lix4LiH4LmA4LiU4LijIOC4iOC4ueC5gOC4meC4teC4ouC4o+C5jA0KK+C4reC4seC4iOC4iOC4k+C4siDguJTguLTguJbguLXguKrguKfguLHguKrguJTguLTguYwNCivguK3guLHguIjguInguKPguLIg4LiB4Lil4Li04LmI4LiZ4Lir4Lit4LihDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC5gOC4guC4oeC4quC4tOC4o+C4tOC5guC4iuC4hA0KK+C4reC4seC4iOC4ieC4o+C4siDguIjguLTguJXguKPguJnguLjguKfguLHguJLguJnguYzguIHguLjguKUNCivguK3guLHguIjguInguKPguLIg4LiK4Li34LmI4LiZ4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4lOC4tOC4qeC4kOC4reC4tOC4meC4l+C4o+C5jA0KK+C4reC4seC4iOC4ieC4o+C4siDguJfguK3guIfguKHguLUNCivguK3guLHguIjguInguKPguLIg4LiZ4Li04Lil4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4m+C4peC4t+C5ieC4oeC4reC4uOC4l+C4ow0KK+C4reC4seC4iOC4ieC4o+C4siDguJ7guLTguIrguI3guYzguYDguKXguLTguKjguIrguLLguI0NCivguK3guLHguIjguInguKPguLIg4Lih4Liy4Lio4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4peC4p+C4iuC4peC4suC4hOC4oQ0KK+C4reC4seC4iOC4ieC4o+C4siDguKfguLHguIrguKPguIHguLjguKUNCivguK3guLHguIjguInguKPguLIg4Lio4Lij4Li14LmA4Lil4LmH4LiB4LiU4Li1DQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4quC4suC4o+C4nuC4tOC4oeC4nuC4sg0KK+C4reC4seC4iOC4ieC4o+C4siDguKrguLjguKfguLTguJfguKLguLLguJ7guKPguKrguIHguLjguKUNCivguK3guLHguIjguInguKPguLIg4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmM4LiB4Li04LiV4LiV4Li0DQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC5gOC4reC4geC4iOC4s+C4meC4h+C4hOC5jA0KK+C4reC4seC4iOC4ieC4o+C4suC4nuC4seC4meC4mOC5jCDguITguLHguJ7guJfguLDguJnguLLguKfguLTguJkNCivguK3guLHguIjguInguKPguLLguKfguKPguKPguJMg4LmA4Lig4LiV4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lix4LiI4LiJ4Lij4Li04Lii4LiyIOC5gOC4quC4o+C4tOC4oeC4l+C4reC4hw0KK+C4reC4seC4iOC4ieC4o+C4teC4ouC5jCDguK3guKHguKPguYDguKXguLTguKjguKfguLTguKHguLLguJkNCivguK3guLHguIrguIzguLIg4LiV4Lix4LmJ4LiH4LiV4Li04Lib4LiB4Lij4LiT4LmMDQor4Lit4Lix4LiK4LiZ4LiyIOC4peC4suC4oOC4q+C4peC4suC4og0KK+C4reC4seC4iuC4o+C4suC4oOC4o+C4k+C5jCDguKrguLjguILguYDguIHguKnguKENCivguK3guLHguI3guIrguI7guLIg4LmA4Lit4Li14LmI4Lii4Lih4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmM4Lig4Lix4LiTDQor4Lit4Lix4LiN4LiK4LiZ4LiyIOC5gOC4m+C4peC5iOC4h+C4iOC4tOC4meC4lOC4suC5gOC4o+C4t+C4reC4hw0KK+C4reC4seC4jeC4iuC4meC4tSDguJ7guIfguKjguYzguJjguLXguKPguKDguLLguJ4NCivguK3guLHguI3guIrguKXguLUg4LiB4Liy4LiZ4LiU4LiyDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4hOC4h+C4geC4seC4peC4m+C5jA0KK+C4reC4seC4jeC4iuC4peC4tSDguIjguLHguYjguKfguYHguIjguYjguKHguYPguKoNCivguK3guLHguI3guIrguKXguLUg4LiK4Lih4Lij4LiqDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4reC4seC4jeC4iuC4peC4tSDguJXguLHguJnguJXguLTguKHguLTguJXguKMNCivguK3guLHguI3guIrguKXguLUg4LiY4LiZ4Liw4Lib4Lij4LiwDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4muC4seC4p+C4l+C4reC4hw0KK+C4reC4seC4jeC4iuC4peC4tSDguJvguLTguKLguLDguKrguLLguJjguLjguIHguLTguIgNCivguK3guLHguI3guIrguKXguLUg4Lie4Li04LiZ4LiX4Li44Lie4Li14Lij4LmC4LiB4Lin4Li04LiXDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4oeC4h+C4hOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4seC4jeC4iuC4peC4tSDguKPguLjguYjguIfguKPguLHguJXguJnguLLguK3guLjguJrguKUNCivguK3guLHguI3guIrguKXguLUg4Lin4LiH4Lio4LmM4LiX4Li04LihDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4p+C4tOC5guC4o+C4iOC4meC5jOC4mOC4meC4sOC4iuC4seC4og0KK+C4reC4seC4jeC4iuC4peC4tSDguKjguLjguKDguKfguKPguKPguJMNCivguK3guLHguI3guIrguKXguLUg4Liq4Li44LiC4Li44Lih4Lin4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4q+C4peC5iOC4reC4meC4nuC5gOC4geC5ieC4sg0KK+C4reC4seC4jeC4iuC4peC4tSDguK3guLTguJnguJfguKPguYzguJfguK3guIcNCivguK3guLHguI3guIrguLHguI0g4LiE4Liz4LiV4LiyDQor4Lit4Lix4LiN4LiK4Lix4LiZIOC4p+C4uOC4kuC4tOC4nuC4pOC4geC4qeC5jA0KK+C4reC4seC4jeC4iuC4uOC4peC4tSDguKrguLjguYLguKDguJfguLHguKINCivguK3guLHguI3guI3guLLguJXguYwg4LmE4Lie4LiI4Li04LiV4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4Lix4LiN4LmA4LiK4Li04LiNIOC4iOC4seC4meC4l+C4o+C4uOC5gOC4muC4geC4qeC4sg0KK+C4reC4seC4kOC4nuC4pSDguYTguIrguKLguKPguLHguIHguKnguYwNCivguK3guLHguJXguJbguJ7guKMg4Lil4Lix4Lia4LmE4Lie4Lij4Li1DQor4Lit4Lix4LiY4Lii4LiyIOC4muC4uOC4jeC4jeC4sOC4lOC4tOC4qeC4kOC5jA0KK+C4reC4seC5iOC4mSDguYHguIvguYjguIjguLTguKcNCivguK3guLHguJrguJTguLjguKXguYDguKXguLLguLAg4Liq4Li44LiC4LiW4Liy4Lin4LijDQor4Lit4Lix4Lib4Liq4LijIOC4meC4tOC4l+C4seC4qOC4meC4iOC4suC4o+C4uOC4geC4uOC4pQ0KK+C4reC4seC4oeC4nuC4oyDguIHguKHguKXguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguK3guLHguKHguJ7guKMg4LmB4LiB4LmI4LiZ4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4Lit4Lix4Lih4Lie4LijIOC4iOC4leC4uOC4o+C4p+C4seC4kuC4meC4sg0KK+C4reC4seC4oeC4nuC4oyDguYDguIjguJnguK3guJnguLHguJnguJXguYzguJ7guKMNCivguK3guLHguKHguJ7guKMg4LiK4Li34LmI4LiZ4LmD4LiIDQor4Lit4Lix4Lih4Lie4LijIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4reC4seC4oeC4nuC4oyDguJXguLjguJPguKrguLjguKfguKPguKPguJMNCivguK3guLHguKHguJ7guKMg4LiY4LiZ4Liq4Li44Lin4Lij4Lij4LiT4LmA4LiB4Lip4LihDQor4Lit4Lix4Lih4Lie4LijIOC4muC4o+C4o+C4lOC4suC4qOC4seC4geC4lOC4tOC5jA0KK+C4reC4seC4oeC4nuC4oyDguJvguKPguLLguIfguITguYzguKPguLHguJXguJnguYwNCivguK3guLHguKHguJ7guKMg4Lie4Lij4Lih4LiV4Lix4LiZDQor4Lit4Lix4Lih4Lie4LijIOC4nuC4uOC4peC5gOC4peC5h+C4gQ0KK+C4reC4seC4oeC4nuC4oyDguKHguLLguJrguIjguLDguJrguIENCivguK3guLHguKHguJ7guKMg4Lij4Li44LmI4LiH4LmA4Liq4Lij4Li14Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lix4Lih4Lie4LijIOC4p+C4h+C4qOC5jOC5gOC4peC4tOC4qOC4n+C5ieC4sg0KK+C4reC4seC4oeC4nuC4oyDguKfguLTguYLguJnguJfguLHguKINCivguK3guLHguKHguJ7guKMg4Lio4Li04Lij4Li04LmA4Lin4LiK4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lix4Lih4Lie4LijIOC4quC4suC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4reC4seC4oeC4nuC4oyDguKrguLnguIfguKrguKfguYjguLLguIcNCivguK3guLHguKHguJ7guKMg4Lit4Lih4Lij4LiB4Li44Lil4Liy4LiI4Liy4Lij4Lii4LmMDQor4Lit4Lix4Lih4Lie4LijIOC4reC4uOC5iOC4meC5gOC4quC4teC4ouC4oQ0KK+C4reC4seC4oeC4nuC4o+C4tOC4qCDguYDguKrguLfguK3guKfguKPguKPguJPguKjguKPguLUNCivguK3guLHguKHguJ7guKfguLHguJkg4Lie4Lil4Lit4Lii4LmA4Lie4LiK4Lij4Lih4LiT4Li1DQor4Lit4Lix4Lih4Lie4LiyIOC5hOC4guC5iOC4oeC4uOC4gQ0KK+C4reC4seC4oeC4nuC4tOC4geC4siDguYHguIvguYjguK3guLbguYnguIcNCivguK3guLHguKHguKDguLIg4LiI4Li04Lij4LmA4LiI4Li04LiU4LiZ4Lig4LiyDQor4Lit4Lix4Lih4Lij4LiyIOC4hOC4uOC4k+C5gOC4iuC4teC4ouC4ow0KK+C4reC4seC4oeC4o+C4tOC4meC4l+C4o+C5jCDguJnguLLguKPguLLguIoNCivguK3guLHguKXguJTguLjguKXguYDguKXguLLguLAg4LmB4LiU4LiH4LmC4LiB4LmA4Lih4LiZDQor4Lit4Lix4Lio4LiZ4Li14Lii4LmMIOC4muC4uOC4jeC4qOC4tOC4o+C4tOC4hOC4s+C4iuC4seC4og0KK+C4reC4seC4qOC4p+C4tOC4mSDguYHguIjguYnguIfguIHguKPguLDguIjguYjguLLguIcNCivguK3guLHguKjguKfguLTguJkg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lit4Lix4Lip4LiO4Liy4LiH4LiE4LmMIOC4kOC4suC4meC4sOC4p+C4ow0KK+C4reC4seC4quC4lOC4suC4h+C4hOC5jCDguJvguLTguYjguJnguKrguLjguKfguKPguKPguJPguYwNCivguK3guLHguKrguK3guLLguKPguLUg4LiB4Lix4Liq4LiV4Liy4Lin4Li1DQor4Lit4Liy4LiE4LihIOC4hOC4o+C5ieC4suC4oeC4qOC4o+C4tQ0KK+C4reC4suC4hOC4oSDguJnguLTguJXguKLguLLguIHguKPguJPguYwNCivguK3guLLguITguKEg4LmA4Lif4Li34LmI4Lit4LiH4Lif4Li44LmJ4LiHDQor4Lit4Liy4LiE4LihIOC4qOC4suC4meC4leC4tOC4quC4o+C4ow0KK+C4reC4suC4hOC4oSDguK3guLHguJXguJbguLDguKrguLHguKHguJrguLjguJPguJPguLANCivguK3guLLguIgg4Lin4Liq4Li44LiC4Lix4LiZ4LiY4LmMDQor4Lit4Liy4LiI4Liy4Lij4Li1IOC4q+C4reC4oeC5gOC4qOC4o+C4qeC4kOC4tQ0KK+C4reC4suC4iOC4tOC4meC4leC5jCDguYDguKrguLXguYjguKLguIfguYLguIrguITguK3guKLguLnguYgNCivguK3guLLguIrguLXguKfguLAg4Lih4LiH4LiE4Lil4Liq4LiB4Li44Lil4Lik4LiX4LiY4Li04LmMDQor4Lit4Liy4LiT4Lix4LiV4Li0IOC4nuC4seC4meC4mOC4uOC4p+C4lOC4tQ0KK+C4reC4suC4lOC4ueC4peC4ouC5jCDguKLguLHguJnguJXguKPguJ7guLTguJnguLTguIgNCivguK3guLLguJfguKMg4LmB4LiK4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lit4Liy4LiX4LijIOC4o+C4suC4oeC5guC4geC4oeC4uOC4lw0KK+C4reC4suC4l+C4o+C4l+C4tOC4nuC4ouC5jCDguJ7guKfguIfguKHguJPguLUNCivguK3guLLguJfguLTguJXguKLguYwg4LmD4LiI4Lia4Li44LiNDQor4Lit4Liy4LiX4Li04LiV4Lii4LmMIOC4oeC4suC4meC4quC4seC4iOC4iOC4mOC4o+C4o+C4oQ0KK+C4reC4suC4l+C4tOC4leC4ouC5jCDguK3guKfguKjguLTguKPguLTguJ7guIfguKnguYwNCivguK3guLLguJnguJnguJfguYwg4LiI4Li14Lij4LiU4Li04Lip4LiQ4LmMDQor4Lit4Liy4LiZ4LiZ4LiX4LmMIOC5gOC4nuC5h+C4iuC4o+C4meC5ieC4reC4og0KK+C4reC4suC4meC4meC4l+C5jCDguKrguKPguLDguJfguK3guIfguYHguJ4NCivguK3guLLguJnguLHguJnguJXguYwg4Lit4Li04LiQ4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liy4LiZ4Li14LiV4LiyIOC4iOC4suC4p+C4suC4peC4sg0KK+C4reC4suC4meC4uOC4oOC4suC4niDguKrguLjguJnguK3guJnguLHguJnguJXguYwNCivguK3guLLguJ7guKMg4LmB4LiL4LmI4Lil4Li14LmJDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4geC4uOC4peC4p+C4seC4kuC5guC4lw0KK+C4reC4suC4oOC4o+C4k+C5jCDguYPguIjguJfguLHguKjguJnguYzguIHguLjguKUNCivguK3guLLguKDguKPguJPguYwg4LiV4Lix4LmJ4LiH4Lio4Li04Lij4Li04LmA4Liq4LiW4Li14Lii4LijDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4meC4tOC5guC4o+C4iOC4meC5jA0KK+C4reC4suC4oOC4o+C4k+C5jCDguJ7guLLguJnguJfguK3guIcNCivguK3guLLguKDguKPguJPguYwg4Lij4Lix4LiV4LiZ4Liw4LiE4Li44Lib4LiV4LmMDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4qOC4tOC4peC4reC4uOC4lOC4oQ0KK+C4reC4suC4oOC4o+C4k+C5jCDguKrguYLguKPguIrguKfguLTguIHguKrguLTguJUNCivguK3guLLguKDguLHguJfguKPguLIg4LiY4Lij4Lij4Lih4LmA4LiI4Lij4Li04LiNDQor4Lit4Liy4Lig4LiyIOC5guC4ieC4oeC4qOC4o+C4tQ0KK+C4reC4suC4oOC4siDguKjguKPguLXguIfguLLguKHguJzguYjguK3guIcNCivguK3guLLguKDguLLguIHguKMg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4LiI4Lij4Li04Lii4LiyDQor4Lit4Liy4Lig4Liy4Lie4Lij4Lij4LiTIOC4leC4o+C4sOC4geC4suC4o+C4quC4tOC4h+C4q+C4meC4suC4lw0KK+C4reC4suC4oOC4suC4oOC4o+C4k+C5jCDguKrguLjguILguKrguLHguKINCivguK3guLLguKHguYjguKfguKIg4LmB4LiL4LmI4LmC4LiV4LmL4LinDQor4Lit4Liy4Lih4Li44LmI4LiiIOC5geC4i+C5iOC4leC4seC4mQ0KK+C4reC4suC4o+C4lOC4siDguIHguKPguLjguJPguLLguKLguLTguYjguIfguJ7guLHguJnguJjguYwNCivguK3guLLguKPguKHguJPguYwg4LmB4LiI4LmI4Lih4LiU4Liy4LinDQor4Lit4Liy4Lij4Lih4LiT4LmMIOC4nOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4suC4o+C4oeC4k+C5jCDguKrguIfguKfguJnguJfguKPguLHguJ7guKLguYwNCivguK3guLLguKPguKHguKLguYwg4LiI4Lix4LmI4LiZ4Liu4Lin4LiaDQor4Lit4Liy4Lij4Lih4Lii4LmMIOC4oeC4ueC5gOC4l+C4teC4og0KK+C4reC4suC4o+C4ouC4sCDguJXguKPguLXguKjguLjguIHguKPguYwNCivguK3guLLguKPguKLguLIg4LiH4Liy4Lih4Lin4LiH4Lio4LmM4LmA4Lin4LiK4LiB4Li44LilDQor4Lit4Liy4Lij4Lii4LiyIOC4l+C4tOC4oeC4geC4uOC4pQ0KK+C4reC4suC4o+C4ouC4siDguJ7guLTguJ7guLHguJfguJjguIHguLjguKjguKXguIHguLjguKUNCivguK3guLLguKPguKLguLIg4Lio4LiV4Lix4Lip4LmA4LiQ4Li14Lii4LijDQor4Lit4Liy4Lij4Lii4LiyIOC4reC4tOC4meC4l+C4o+C5jOC4iOC4seC4meC4l+C4tuC4gQ0KK+C4reC4suC4o+C4seC4geC4qeC5jCDguJvguLjguYnguKLguJXguKPguLDguIHguLnguKUNCivguK3guLLguKPguLTguIrguKLguYwg4LiE4Li44LiT4Lib4Lij4Liw4Liq4LieDQor4Lit4Liy4Lij4Li1IOC4geC4reC4h+C5gOC4m+C5h+C4hw0KK+C4reC4suC4o+C4tSDguYHguIjguYnguIfguKrguKfguYjguLLguIcNCivguK3guLLguKPguLUg4LiU4Li04Lip4Liy4Lig4Li04Lij4Lih4Lii4LmMDQor4Lit4Liy4Lij4Li1IOC4meC4suC4hOC4sOC4quC4tOC4h+C4q+C5jA0KK+C4reC4suC4o+C4tSDguJ7guKPguKvguKHguYLguJPguKHguLHguKINCivguK3guLLguKPguLUg4Lii4Li04LmJ4Lih4Lit4LmI4LizDQor4Lit4Liy4Lij4Li1IOC4p+C4tOC5hOC4peC4p+C4o+C4o+C4kw0KK+C4reC4suC4o+C4tSDguKrguLXguJXguLDguKrguLTguJfguJjguLTguYwNCivguK3guLLguKPguLUg4Lit4Lix4Lio4Lij4Lix4Liq4LiB4LijDQor4Lit4Liy4Lij4Li14Lie4LijIOC4p+C4h+C4qeC5jOC4oeC4k+C4teC5gOC4l+C4qA0KK+C4reC4suC4o+C4teC4ouC5jOC4p+C4o+C4o+C4kyDguJrguLHguKfguYDguJzguLfguYjguK3guJkNCivguK3guLLguKPguLXguKLguLIg4Lil4Li04Lii4Liw4LiB4Li44Lil4Lie4LiH4Lio4LmMDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4geC4tOC4leC4tOC4quC4suC4o+C4qOC4seC4geC4lOC4tOC5jA0KK+C4reC4suC4o+C4teC4ouC5jCDguITguLjguYnguKHguKjguLTguKPguLQNCivguK3guLLguKPguLXguKLguYwg4LmA4LiI4Li14Lii4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4i+C4t+C5iOC4reC4iuC4seC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4suC4o+C4teC4ouC5jCDguYDguJTguYjguJnguKjguLTguKPguLTguJ7guIfguKnguYwNCivguK3guLLguKPguLXguKLguYwg4LiX4Li04Lie4Lii4LmM4LiN4Liy4LiZ4Lin4LiH4Lio4LmMDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4muC4tOC4meC4q+C4oeC4seC4lA0KK+C4reC4suC4o+C4teC4ouC5jCDguJ7guIfguKjguYzguJ7guLHguJLguJnguLLguJnguLjguKPguLHguIHguKnguYwNCivguK3guLLguKPguLXguKLguYwg4LmC4Lie4LiY4Li04Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liy4Lij4Li14Lii4LmMIOC5gOC4oeC4t+C4reC4h+C4quC4h+C4p+C4mQ0KK+C4reC4suC4o+C4teC4ouC5jCDguKXguLTguYjguKHguKfguIfguKjguYwNCivguK3guLLguKPguLXguKLguYwg4Lio4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4quC4p+C5iOC4suC4h+C4qOC4o+C4tQ0KK+C4reC4suC4o+C4teC4ouC5jCDguKrguLjguJnguJ7guIfguKnguYzguKjguKPguLUNCivguK3guLLguKPguLXguKLguYwg4Lir4Li44LiV4Liw4Lih4Liy4LiZDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4reC4uOC4lOC4oeC4hOC4k+C4suC4o+C4seC4leC4meC5jA0KK+C4reC4suC4o+C4teC4o+C4seC4leC4meC5jCDguYDguIjguJXguJXguYzguKrguKPguKPguKfguLTguKrguKPguJPguYwNCivguK3guLLguKPguLXguKPguLHguJXguJnguYwg4Lia4Li44LiN4LiX4Lin4Li1DQor4Lit4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4peC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4geC4uOC4pQ0KK+C4reC4suC4o+C4teC4o+C4seC4leC4meC5jCDguYHguKvguJjguLHguI3guKfguLTguKrguLTguJANCivguK3guLLguKPguLXguKfguKPguKPguJMg4LiY4Liy4Lij4Liy4LiY4Li14Lij4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lit4Liy4Lij4Li14LmA4Lif4LiZIOC4ruC4sOC4i+C4suC4meC4tQ0KK+C4reC4suC4peC4seC4oiDguKrguLjguKPguLDguYDguKPguLfguK3guIfguIrguLHguKINCivguK3guLLguKfguLjguJLguLQg4Liq4LiH4Lin4LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lit4Liy4Lin4Li44LiYIOC4qOC4o+C4teC4iOC4seC4meC4l+C4o+C5jA0KK+C4reC4suC4quC4siDguILguKLguLHguJnguYDguILguLXguKLguJkNCivguK3guLLguK3guLXguIvguYrguLAg4LmA4Lir4Lih4Liq4Lih4Lix4LiZDQor4Lit4Liy4LmA4Lii4LiB4Li44Lih4Liy4LijIOC4m+C4suC4p+C4sg0KK+C4reC5iOC4suC4hyDguYHguIvguYjguYDguJXguLXguKINCivguK3guYvguLIg4Lio4Lij4Li14Lit4Liz4LmE4LieDQor4Lit4Liz4LiZ4Lin4LiiIOC5gOC4geC4qeC4muC4s+C4o+C4uOC4hw0KK+C4reC4s+C4meC4p+C4oiDguITguKPguLjguJHguJnguLINCivguK3guLPguJnguKfguKIg4LiI4Lix4LiZ4LiX4LiwDQor4Lit4Liz4LiZ4Lin4LiiIOC4ieC4seC4leC4o+C4iuC4suC4jeC4oeC4h+C4hOC4pQ0KK+C4reC4s+C4meC4p+C4oiDguYTguIrguKLguYLguKPguIjguJnguYwNCivguK3guLPguJnguKfguKIg4LmA4LiV4LiK4Liw4Lio4Lij4Li1DQor4Lit4Liz4LiZ4Lin4LiiIOC4l+C4seC4qOC4meC5gOC4oeC4mOC4tOC4mQ0KK+C4reC4s+C4meC4p+C4oiDguJnguLLguITguJnguLLguKfguLINCivguK3guLPguJnguKfguKIg4Lia4Li44LiN4LiX4Lij4Lix4LiB4Lip4LiyDQor4Lit4Liz4LiZ4Lin4LiiIOC4m+C4seC5ieC4meC4h+C4suC4oQ0KK+C4reC4s+C4meC4p+C4oiDguJ7guKPguYDguKXguLTguKjguJvguLTguJXguLQNCivguK3guLPguJnguKfguKIg4LmA4Lie4LiK4Lij4LmB4Liq4LiHDQor4Lit4Liz4LiZ4Lin4LiiIOC4oeC4suC4quC4sg0KK+C4reC4s+C4meC4p+C4oiDguKPguLHguJXguJnguKfguLTguYTguKXguIHguLjguKUNCivguK3guLPguJnguKfguKIg4Lin4LiH4Lio4LmM4Lin4LiT4Li04LiKDQor4Lit4Liz4LiZ4Lin4LiiIOC5gOC4p+C4iuC4quC4uOC4geC4o+C4o+C4oQ0KK+C4reC4s+C4meC4p+C4oiDguKrguJnguKvguKXguLUNCivguK3guLPguJnguKfguKIg4Liq4Li14LiZ4Lin4LiZDQor4Lit4Liz4LiZ4Lin4LiiIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4suC4pQ0KK+C4reC4s+C4meC4p+C4oiDguKvguK3guKLguKrguLHguIfguILguYwNCivguK3guLPguJnguKfguKIg4Lit4Lix4Lio4Lin4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liz4LiZ4Lin4LiiIOC4ruC4suC4i+C4seC4meC4muC4tOC4mQ0KK+C4reC4s+C4meC4p+C4ouC4nuC4oyDguKjguLTguKPguLTguJ7guIfguKnguYzguYTguJ7guJrguLnguKXguKLguYwNCivguK3guLPguJnguLLguIgg4LiB4Liy4Lij4Li44LiT4Lih4Lij4Lij4LiE4Lic4LilDQor4Lit4Liz4LiZ4Liy4LiIIOC4iOC4h+C4reC4lOC4tOC5gOC4o+C4geC4peC4suC4oA0KK+C4reC4s+C4meC4suC4iCDguIrguKLguKrguKHguLLguJnguJnguJfguYwNCivguK3guLPguJnguLLguIgg4LiV4Lij4Li14Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4Liz4LiZ4Liy4LiIIOC4mOC4teC4o+C4sOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC4nOC4pQ0KK+C4reC4s+C4meC4suC4iCDguJrguLjguI3guYDguJXguYfguKENCivguK3guLPguJnguLLguIgg4Lie4Lij4Lir4Lih4LiZ4Li04LiV4Lii4LmMDQor4Lit4Liz4LiZ4Liy4LiIIOC4oeC4h+C4hOC4peC4nuC4seC4meC4mOC5jA0KK+C4reC4s+C4meC4suC4iCDguYDguKPguLfguK3guJnguJfguLTguJ7guKLguYwNCivguK3guLPguJnguLLguIgg4LmE4Lin4LiI4LiH4LmA4LiI4Lij4Li04LiNDQor4Lit4Liz4LiZ4Liy4LiIIOC4quC4suC4ouC4lOC4p+C4hw0KK+C4reC4s+C4meC4suC4iCDguYHguKrguIfguKjguLTguKPguLQNCivguK3guLPguJnguLLguIgg4Lit4Liz4LiZ4Liy4LiI4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiDQor4Lit4Liz4Lie4LiZIOC4ouC4tOC5ieC4oeC4quC4oeC4muC4seC4leC4tA0KK+C4reC4s+C4nuC4oyDguITguLnguJPguKrguKfguLHguKrguJTguLTguYwNCivguK3guLPguJ7guKMg4LiU4Lit4LiZ4LmE4Lie4Lij4LmA4Lie4LiK4LijDQor4Lit4Liz4Lie4LijIOC4muC4seC4p+C4iuC4seC4hw0KK+C4reC4s+C4nuC4oyDguKDguLnguYjguYDguIHguKXguLXguYnguKLguIcNCivguK3guLPguJ7guKMg4LmE4Lin4LmJ4LiX4LmA4Lia4Lij4LiK4LiX4LmMDQor4Lit4Liz4Lie4LijIOC5geC4quC4h+C5gOC4nuC4iuC4ow0KK+C4reC4s+C4nuC4o+C4o+C4kyDguJfguKfguLXguKHguLLguKPguJYNCivguK3guLPguJ7guKUg4LmA4LiB4Liy4Liw4LiB4Liy4LiB4Lil4Liy4LiHDQor4Lit4Liz4Lie4LilIOC4iuC4s+C4meC4suC4jeC4geC4tOC4iA0KK+C4reC4s+C4nuC4pSDguJnguLLguKHguKrguJnguJjguLQNCivguK3guLPguJ7guKUg4LmC4Lie4LiY4Li04LmM4Lie4Li44LmI4Lih4LmA4Lii4LmH4LiZDQor4Lit4Liz4Lie4LilIOC4p+C4teC4o+C4sOC4leC4sOC4meC4meC4l+C5jA0KK+C4reC4s+C4nuC4pSDguKvguLDguKPguLTguJnguKrguLjguJUNCivguK3guLPguJ7guLHguJkg4LiE4Lil4LmJ4Liy4Lii4LiK4Lix4LiHDQor4Lit4Liz4Lie4Lix4LiZIOC4nOC4peC4q+C5ieC4sg0KK+C4reC4s+C4nuC4seC4mSDguKrguLjguILguIjguK3guJQNCivguK3guLPguJ7guLHguJnguJjguYwg4LiK4Lin4LiB4Li44LilDQor4Lit4Liz4Lie4Lix4LiZ4Lie4LiH4Lip4LmMIOC5guC4lOC5gOC4o+C4teC5iOC4ouC4mQ0KK+C4reC4s+C4oOC4siDguIjguLHguJnguJfguKPguITguLjguJPguLLguKDguLLguKoNCivguK3guLPguKDguLIg4Lib4Liy4LiZ4Lij4Lix4LiB4Lip4LiyDQor4Lit4Liz4Lig4LiyIOC4quC4uOC4guC4reC4suC4o+C4oeC4ouC5jA0KK+C4reC4s+C4o+C4uOC4hyDguKrguKPguKPguJ7guKrguLTguJfguJjguLTguYzguKfguIfguKjguYwNCivguK3guLPguYTguJ4g4LmB4LiB4LmJ4Lin4LmB4LiI4LmI4LihDQor4Lit4Liz4LmE4LieIOC4iOC4tOC4leC4o+C4oeC4tOC4leC4ow0KK+C4reC4s+C5hOC4niDguYTguIrguKLguJ7guLjguJfguJgNCivguK3guLPguYTguJ4g4LiW4Li44LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lit4Liz4LmE4LieIOC4muC4seC4k+C4keC4tOC4lQ0KK+C4reC4s+C5hOC4niDguJzguKXguJTguLUNCivguK3guLPguYTguJ4g4Lig4Lih4Lij4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liz4LmE4LieIOC4o+C4seC4leC4meC4o+C4seC4leC4meC5jA0KK+C4reC4s+C5hOC4niDguKfguLTguIrguLLguJfguLLguJnguKrguIHguLjguKUNCivguK3guLPguYTguJ4g4Liq4Lih4Lix4LiE4Lij4LmE4LiX4LiiDQor4Lit4Liz4LmE4LieIOC4quC4uOC4o+C4h+C4hOC5jOC5gOC4peC4tOC4qA0KK+C4reC4s+C5hOC4niDguK3guKLguLnguYjguKjguKPguLXguYDguIjguKPguLTguI0NCivguK3guLPguYTguJ7guJ7guKPguKPguJMg4Lin4Li44LiS4Li04LiY4Lij4Lij4Lih4LiI4Liy4Lij4Li1DQor4Lit4Li04LmK4LiB4LiV4Li14LmLIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4reC4tOC4h+C4reC4oyDguKfguLTguYDguIrguLXguKLguKPguKrguKPguKPguITguYwNCivguK3guLTguYrguJTguIvguYnguIcg4LmB4LiL4LmI4Liu4LmJ4LitDQor4Lit4Li04LiX4LiY4Li04LiK4Lix4LiiIOC4quC4uOC4q+C4seC4leC4luC4suC4nuC4ow0KK+C4reC4tOC4l+C4mOC4tOC4nuC4pSDguYPguIjguJXguLHguYnguIcNCivguK3guLTguJfguJjguLTguJ7guKUg4Lij4Lix4LiK4LmD4LiZ4Lin4Lij4Lij4LiTDQor4Lit4Li04LiX4LiY4Li04Lii4LiyIOC5geC4iOC5iOC4oeC4oeC4tOC4mQ0KK+C4reC4tOC4l+C4mOC4tOC5guC4o+C4iOC4meC5jCDguJ7guIfguKnguYzguJ7guLTguJfguLHguIHguKnguYwNCivguK3guLTguJnguJfguKPguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LiU4Li1DQor4Lit4Li04LiZ4LiX4LmM4Lit4LijIOC4nuC4seC4meC4mOC4p+C4suC4o+C4tQ0KK+C4reC4tOC4meC4l+C4tOC4o+C4siDguJXguLHguJnguJvguIHguLTguIjguKfguIfguKjguYwNCivguK3guLTguJnguJfguLTguKPguLIg4LmA4Lin4LiK4LiY4Lij4Lij4LihDQor4Lit4Li04LiZ4LiY4Li04LiU4LiyIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4reC4tOC4oSDguYHguIvguYjguYDguIjguYfguIcNCivguK3guLTguYjguKHguIjguLTguJXguJXguYwg4Lit4Li44LiU4Lih4LiY4LiZ4Lig4Lix4LiX4LijDQor4Lit4Li04LmJ4Lin4LiX4LmJ4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4reC4tOC4qOC4o+C4siDguKLguIfguKLguLfguJkNCivguK3guLTguKjguYDguKPguKgg4LiJ4Lix4LiV4Lij4LmB4LiB4LmJ4Lin4LiZ4Lie4LiU4LilDQor4Lit4Li04Liq4Lij4LiwIOC4iOC4tOC4leC4oeC4teC4quC4uOC4gg0KK+C4reC4tOC4quC4o+C4siDguKrguIfguKfguJnguJ7guIfguKjguYwNCivguK3guLTguKrguKrguKPguLAg4Lic4Lil4Liy4LmA4LiB4LiV4Li4DQor4Lit4Li14LiL4LiyIOC4nuC4peC4reC4ouC4lOC4tQ0KK+C4reC4teC5i+C5gOC4leC5h+C4gSDguYHguIvguYjguYDguJXguLXguKLguKcNCivguK3guLjguIHguKTguKkg4LiK4Liy4LiN4LmA4Lil4LiC4LiyDQor4Lit4Li44LiB4Lik4Lip4LiP4LmMIOC4quC4seC4h+C4guC5jOC5geC4geC5ieC4pw0KK+C4reC4uOC4k+C4suC4meC4seC4meC4l+C4meC5jCDguKfguIfguKnguYzguKrguLHguIjguIjguLLguJnguLHguJnguJfguYwNCivguK3guLjguJTguKEg4LiB4Li24LiB4LiB4LmJ4Lit4LiHDQor4Lit4Li44LiU4LihIOC5guC4geC4quC4seC4ouC4quC4uOC4gQ0KK+C4reC4uOC4lOC4oSDguITguLPguKDguLTguKPguLDguKLguKgNCivguK3guLjguJTguKEg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4LiX4Li14LmI4Lii4LiHDQor4Lit4Li44LiU4LihIOC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4reC4uOC4lOC4oSDguIrguLLguKPguLXguJjguKPguKPguKENCivguK3guLjguJTguKEg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lit4Li44LiU4LihIOC5geC4lOC4h+C4o+C4seC4qOC4oeC4teC5guC4quC4oOC4kw0KK+C4reC4uOC4lOC4oSDguJfguKPguIfguKHguLUNCivguK3guLjguJTguKEg4LiY4Lij4Lij4Lih4Lig4Li54Lip4Li04LiVDQor4Lit4Li44LiU4LihIOC4muC4seC4p+C4o+C4uOC5iOC4hw0KK+C4reC4uOC4lOC4oSDguJvguLLguJnguYDguJbguLfguYjguK3guJkNCivguK3guLjguJTguKEg4Lie4Lij4Lir4Lih4LmA4LiB4LiV4Li44LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lit4Li44LiU4LihIOC4nuC4uOC5iOC4oeC4nuC4p+C4hw0KK+C4reC4uOC4lOC4oSDguKDguLTguI3guYLguI3guIrguLXguJ4NCivguK3guLjguJTguKEg4Lih4Li44LiV4Lij4LiZ4Li04Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Li44LiU4LihIOC4o+C4seC4qOC4oeC4teC4o+C4seC4h+C4qeC4teC5gOC4q+C4peC4t+C4reC4hw0KK+C4reC4uOC4lOC4oSDguKXguLXguJfguK3guIcNCivguK3guLjguJTguKEg4Lin4Liq4Li44Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lit4Li44LiU4LihIOC4qOC4o+C4teC4meC4nuC4hOC4uOC4kw0KK+C4reC4uOC4lOC4oSDguKjguLjguKDguKrguLTguJnguJjguLjguYwNCivguK3guLjguJTguKEg4Liq4Lix4LiZ4LiY4Li5DQor4Lit4Li44LiU4LihIOC4quC4uOC4lOC5hOC4mOC4quC4hw0KK+C4reC4uOC4lOC4oSDguYHguKrguJnguIjguLPguKvguJnguYjguLLguKINCivguK3guLjguJTguKEg4Lit4LiZ4Lix4LiZ4LiV4LmA4Liq4LiWDQor4Lit4Li44LiU4LihIOC4reC4tuC5ieC4h+C4quC4uOC4p+C4o+C4o+C4k+C4nuC4suC4meC4tOC4ig0KK+C4reC4uOC4lOC4oeC4iuC4seC4oiDguJXguLHguYnguIfguK3guKHguKPguKjguLTguKPguLQNCivguK3guLjguJTguKHguJ7guKMg4LiV4Lix4LiZ4LiK4Lix4Lii4Lih4LiH4LiE4LilDQor4Lit4Li44LiU4Lih4Lie4Lix4LiZ4LiY4Li44LmMIOC4l+C4tOC4nuC4l+C4seC4qg0KK+C4reC4uOC4lOC4oeC4peC4seC4geC4qeC4k+C5jCDguJnguJnguJfguLTguKfguKPguKPguJjguIENCivguK3guLjguJTguKHguKjguKPguLUg4LiB4Li04LiI4LiE4LmJ4LiyDQor4Lit4Li44LiU4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4geC4oeC4peC4suC4o+C4iuC4uOC4mQ0KK+C4reC4uOC4lOC4oeC4qOC4seC4geC4lOC4tOC5jCDguJjguLnguJvguKrguLjguKfguKPguKPguJMNCivguK3guLjguJTguKHguKjguLHguIHguJTguLTguYwg4Lin4LiH4Lio4LmM4Lie4Li04Lio4Liy4LilDQor4Lit4Li44LiU4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4p+C4tOC4o+C4uOC4l+C4mOC4sg0KK+C4reC4uOC4lOC4oeC5gOC4lOC4iiDguIrguLLguI3guIrguKLguKjguLbguIENCivguK3guLjguJTguKMg4LmD4LiI4Lib4Lix4LiZ4LiY4Li0DQor4Lit4Li44LiU4LijIOC4nuC4tuC5iOC4h+C4l+C4reC4hw0KK+C4reC4uOC4lOC4oyDguYDguKrguJbguLXguKLguKPguKDguLLguJ7guIfguKnguYwNCivguK3guLjguJfguKMg4LmA4LiC4Lih4Liw4Lia4Li44Lil4LiB4Li44LilDQor4Lit4Li44LiX4Lix4LiiIOC5geC4geC5iOC4meC5geC4geC5ieC4pw0KK+C4reC4uOC4l+C4seC4oiDguITguLnguYHguIHguYnguKcNCivguK3guLjguJfguLHguKIg4LmD4LiI4Lib4Lij4Liw4Liq4Liy4LiXDQor4Lit4Li44LiX4Lix4LiiIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4reC4uOC4l+C4seC4oiDguYDguJXguIrguLDguKPguIfguITguYwNCivguK3guLjguJfguLHguKIg4LiY4Lij4Lij4Lih4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lit4Li44LiX4Lix4LiiIOC4muC4ueC4o+C4k+C4p+C4tOC4iuC4seC4ouC4qOC4tOC4peC4m+C5jA0KK+C4reC4uOC4l+C4seC4oiDguJ7guLHguJnguJjguYzguJ7guKPguLbguIHguKrguYwNCivguK3guLjguJfguLHguKIg4Lih4Li44Liq4Li04LiB4Liw4LiK4Lix4LiiDQor4Lit4Li44LiX4Lix4LiiIOC4peC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4reC4uOC4l+C4seC4oiDguYDguKfguIrguKLguLINCivguK3guLjguJfguLHguKIg4Liq4Lin4Lix4Liq4LiU4Li04LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lit4Li44LiX4Lix4LiiIOC4quC4uOC4p+C4o+C4o+C4k+C4sA0KK+C4reC4uOC4l+C4seC4oiDguK3guYjguK3guJnguKPguLHguYjguKcNCivguK3guLjguJfguLHguKLguJ7guKMg4LiI4Liy4Lij4Li44LiB4Li04LiI4LmC4Liq4Lig4LiyDQor4Lit4Li44LiX4Lix4Lii4Lin4Lij4Lij4LiTIOC4iOC4seC4meC4l+C4o+C5jOC4p+C4seC4kuC4meC4suC4h+C4geC4ueC4ow0KK+C4reC4uOC4l+C4seC4ouC4p+C4o+C4o+C4kyDguJrguLHguKfguYHguIHguYnguKcNCivguK3guLjguJfguLHguKLguKfguKPguKPguJMg4Lij4Lix4Lih4Lii4Liw4Lij4Lix4LiH4Liq4Li0DQor4Lit4Li44LiX4Lix4Lii4Lin4Lij4Lij4LiTIOC4quC4uOC4meC4l+C4o+C4p+C4seC4kuC4meC5jA0KK+C4reC4uOC4l+C4suC4oyDguYDguJ/guLfguYjguK3guIfguJ/guLnguKrguLTguJkNCivguK3guLjguJfguLTguKgg4LiU4Li44Lil4Lii4LiB4Liy4LiN4LiI4LiZ4LmMDQor4Lit4Li44LiX4Li04LioIOC4peC5ieC4p+C4meC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4uOC4l+C4tOC4qCDguYLguK3guKDguLLguKrguJnguLPguJ7guLLguKfguIfguKjguYwNCivguK3guLjguJfguLjguKHguJ7guKMg4Lie4Lil4Liy4Lin4LiH4Lio4LmMDQor4Lit4Li44LiZ4Li04LiV4Lii4LmMIOC4p+C4o+C4o+C4k+C4quC4tOC4meC4mOC5jA0KK+C4reC4uOC5iOC4meC5gOC4o+C4t+C4reC4mSDguIjguLTguKLguLDguKfguKPguJnguLHguJnguJfguYwNCivguK3guLjguYjguJnguYPguIgg4Lia4Li44LiN4LmA4Liq4Lij4Li04Lih4LmB4LiX4LmJDQor4Lit4Li44Lia4LilIOC5geC4geC5ieC4p+C4meC4tOC4oeC4tOC4leC4ow0KK+C4reC4uOC4muC4pSDguIjguLHguJnguJfguKPguYzguIrguLXguKfguLANCivguK3guLjguJrguKUg4LiK4Li34LmI4LiZ4LiI4Li04LiV4LijDQor4Lit4Li44Lia4LilIOC5guC4leC4oeC4reC4jQ0KK+C4reC4uOC4muC4pSDguJnguLTguKXguYDguILguLXguKLguKcNCivguK3guLjguJrguKUg4Lic4LmI4Liy4LiZ4LiI4Lix4LiH4Lir4Liy4LijDQor4Lit4Li44Lia4LilIOC4oOC4ueC4nuC4teC4o+C4sOC4quC4uOC4nuC4h+C4qeC5jA0KK+C4reC4uOC4muC4pSDguYDguKPguLTguIfguIHguKHguKUNCivguK3guLjguJrguKUg4Lio4Lij4Li14LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMDQor4Lit4Li44Lia4LilIOC4quC4tOC4o+C4tOC4iOC4seC4meC4l+C4o+C4lOC4tOC4peC4gQ0KK+C4reC4uOC4muC4pSDguKvguKHguLfguYjguJnguKDguLHguIHguJTguLUNCivguK3guLjguJrguKUg4Lit4Li44Lib4LmA4Liq4Lin4Li1DQor4Lit4Li44Lia4Lil4Lij4Lix4LiV4LiZ4LmMIOC4iOC4tOC4leC4leC4sOC5gOC4quC4meC4teC4ouC5jA0KK+C4reC4uOC4muC4peC4o+C4seC4leC4meC5jCDguYHguJ7guYjguIfguJnguITguKMNCivguK3guLjguJrguKXguKPguLHguJXguJnguYwg4LmA4Liq4Lij4Li14LmA4LiI4Li14Lii4Lia4Lib4Lij4Li14LiK4LiyDQor4Lit4Li44Lia4Lil4Lin4Lij4Lij4LiTIOC5gOC4m+C4o+C4oeC4iOC4tOC4leC4leC5jOC4iuC4t+C5iOC4mQ0KK+C4reC4uOC4muC4peC4qOC4o+C4tSDguJXguYjguLLguKLguYHguJXguYnguKHguJfguK3guIcNCivguK3guLjguJvguJnguLHguJnguJfguYwg4LmA4LiZ4LiV4Lij4Liq4Lin4LmI4Liy4LiHDQor4Lit4Li44Lih4LiyIOC4reC4seC4hOC4o+C4peC4tOC4guC4tOC4lQ0KK+C4reC4uOC4oeC4suC4nuC4oyDguJ7guLHguJLguJnguYDguKrguKPguLUNCivguK3guLjguKHguLLguKDguKPguJPguYwg4LiV4Li04LiB4Lin4Lix4LiS4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4Li44Lii4Liu4Lin4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4reC4uOC4o+C4lOC4tSDguKrguLLguJPguLDguYDguKrguJkNCivguK3guLjguKPguLIg4LmB4LiB4LmJ4Lin4LiB4Lil4LihDQor4Lit4Li44Lij4Li04LiZIOC4quC4tOC4meC4qOC4tuC4geC4quC4h+C4mg0KK+C4reC4uOC4peC4tOC4lSDguJvguLHguJfguKHguLLguKXguLHguKINCivguK3guLjguKnguJPguLIg4Lio4Lij4Li14Liq4Liz4LmA4Lij4Li04LiHDQor4Lit4Li44Lip4LiT4Li1IOC4quC4uOC4meC4suC5guC4nuC4mOC4tOC5jA0KK+C4reC4uOC4qeC4k+C4teC4ouC5jCDguIrguLTguJnguJ7guLHguJLguJnguLLguIHguLLguKMNCivguK3guLjguKnguJPguLXguKLguYwg4Lia4Li44LiN4LmA4Liq4LiZ4LmI4Lir4LmMDQor4Lit4Li44Lip4LiT4Li14Lii4LmMIOC4p+C4h+C4qOC5jOC4m+C4o+C4suC4k+C4teC4geC4uOC4pQ0KK+C4reC4uOC4qeC4k+C4teC4ouC5jCDguK3guLLguIjguK3guKPguLjguJMNCivguK3guLjguKnguLIg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lij4Liw4Lia4Li04LilDQor4Lit4Li44Lip4LiyIOC4iOC4tOC4leC4leC5jOC4iOC4o+C4o+C4ouC4suC4geC4uOC4pQ0KK+C4reC4uOC4qeC4siDguYLguIrguITguYDguIjguKPguLTguI0NCivguK3guLjguKnguLIg4LiX4Lin4Li14Liq4Li44LiX4LiY4Li04LmMDQor4Lit4Li44Lip4LiyIOC4muC4seC4p+C4qOC4tOC4o+C4tA0KK+C4reC4uOC4qeC4siDguJ7guIfguKnguYzguJ7guKTguIHguKnguLINCivguK3guLjguKnguLIg4Lih4LmI4Lin4LiH4LiI4Liz4LiB4Lix4LiUDQor4Lit4Li44Lip4LiyIOC5gOC4peC5h+C4geC4ouC4tOC5ieC4oQ0KK+C4reC4uOC4qeC4siDguKjguKPguLXguYPguKoNCivguK3guLjguKnguLIg4Liq4Li44LiC4Liq4LiZ4Lit4LiHDQor4Lit4Li44Lip4LiyIOC4reC4ouC4ueC5iOC5geC4ng0KK+C4reC4uOC4qeC4suC4p+C4lOC4tSDguYHguIvguYjguYLguIfguYnguKcNCivguK3guLjguKrguKPguLIg4Lib4Lij4Liw4LiX4Li14LibIOC4kyDguJbguKXguLLguIcNCivguK3guLjguKrguLLguKvguYwg4Lio4Li04Lil4Lib4Li1DQor4Lit4Li44LmA4LiX4LiZIOC5gOC4ieC4peC4tOC4oeC4nuC4o+C4o+C4seC4leC4meC4sg0KK+C4reC4uOC5gOC4l+C4mSDguYDguKrguKPguLXguYDguJTguYjguJnguIrguLHguKINCivguK3guLjguYTguKMg4LiB4Li44Lio4Lil4Liq4Lij4LmJ4Liy4LiHDQor4Lit4Li44LmE4LijIOC4hOC4seC4h+C4hOC4sOC5gOC4geC4leC4uA0KK+C4reC4uOC5hOC4oyDguYDguIjguLXguKLguJvguKPguLDguYDguKrguKPguLTguJANCivguK3guLjguYTguKMg4LmB4LiL4LmI4Lin4LmI4Lit4LiHDQor4Lit4Li44LmE4LijIOC5gOC4leC4teC4ouC4sOC5gOC4nuC5h+C4iuC4ow0KK+C4reC4uOC5hOC4oyDguJnguKfguKHguYHguKvguKXguKENCivguK3guLjguYTguKMg4Lia4Li44LiZ4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lit4Li44LmE4LijIOC4nuC4h+C4qeC5jOC4quC4p+C5iOC4suC4hw0KK+C4reC4uOC5hOC4oyDguYLguJ7guJjguLTguYzguJDguLTguJXguLTguKPguLHguJXguJnguYwNCivguK3guLjguYTguKMg4LmA4Lih4LiG4LmE4Lie4Lia4Li54Lil4Lii4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lit4Li44LmE4LijIOC4peC4tOC5ieC4meC5geC4geC5ieC4pw0KK+C4reC4uOC5hOC4oyDguKjguKPguKTguJfguJjguLTguYzguIrguLTguIfguIrguLHguKINCivguK3guLjguYTguKMg4Liq4Lin4Lix4Liq4LiU4Li04LmM4LmA4LiJ4LiiDQor4Lit4Li44LmE4LijIOC4quC4uOC4p+C4tOC4p+C4seC4kuC4meC4iuC4seC4ouC4geC4uOC4pQ0KK+C4reC4uOC5hOC4oyDguK3guKPguKPguITguYDguKrguKXguLINCivguK3guLjguYTguKPguJ7guKMg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lit4Li44LmE4Lij4Lij4Lix4LiV4LiZ4LmMIOC4ieC4suC4ouC4iuC4ueC4p+C4h+C4qeC5jA0KK+C4reC4uOC5hOC4o+C4o+C4seC4leC4meC5jCDguKrguKvguKfguLHguJjguJnguLANCivguK3guLjguYTguKPguKfguKPguKPguJMg4LiB4Liz4Lib4Lix4LmI4LiZ4LiX4Lit4LiHDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4iOC4o+C4ueC4jeC4quC4oeC4tOC4l+C4mOC4tOC5jA0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguYDguIrguLLguKfguIHguLTguJXguJXguLTguYLguKPguIjguJnguYwNCivguK3guLjguYTguKPguKfguKPguKPguJMg4LmA4LiX4Lie4Lib4Lij4Liw4LiX4Liy4LiZ4LiB4Li04LiIDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4m+C4o+C4teC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguJ7guLbguYjguIfguYPguKvguI3guYgNCivguK3guLjguYTguKPguKfguKPguKPguJMg4LmB4Lii4LmJ4Lih4LiZ4Li04Lii4LihDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4p+C4tOC4iOC4tOC4leC4o+C4muC4seC4k+C4keC4tOC4leC4geC4uOC4pQ0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguKrguLLguITguKPguKrguLTguJnguJjguLjguYwNCivguK3guLjguYTguKPguKfguKPguKPguJMg4Lir4Lin4Lix4LmI4LiZ4Lin4Liw4LiU4Li1DQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC5gOC4reC4teC5iOC4ouC4oeC4m+C4o+C4suC4k+C4teC4lQ0KK+C4reC4ueC5iuC4lCDguJTguLPguYDguIHguLTguIfguJXguKPguLDguIHguLnguKUNCivguK3guLnguYsg4Lih4Liy4Lil4Liy4LmA4Lil4LmH4LiBDQor4Lit4LmC4LiT4LiX4Lix4LiiIOC5gOC4iOC4leC4meC5gOC4quC4mQ0KK+C4reC5guC4k+C4l+C4seC4oiDguKfguIfguKjguYzguYDguKHguJjguLXguKrguLjguYDguKHguJgNCivguK3guYLguJnguIrguLIg4Liq4Li44Lin4Lij4Lij4LiT4Lij4Lix4LiV4LiZDQor4Lit4LmC4LiZ4LiX4Lix4LiiIOC4reC4seC4qOC4p+C4m+C4o+C4sOC4oOC4sg0KK+C5gOC4reC4gSDguIrguLHguI/guK3guJnguLHguJnguJXguYwNCivguYDguK3guIEg4Liq4Lii4Liy4Lih4Lin4Liy4Lil4LiyDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4geC4reC4h+C5geC4geC5ieC4pw0KK+C5gOC4reC4geC4iuC4seC4oiDguInguKXguK3guIfguJvguLTguKLguKPguLHguJXguJnguYwNCivguYDguK3guIHguIrguLHguKIg4LmA4LiU4LiK4Lio4Li04Lij4Li04Lie4Lix4LiZ4LiY4LmMDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4muC4uOC4qeC4ouC4muC4o+C4tOC4muC4ueC4o+C4k+C5jOC5guC4iuC4leC4tA0KK+C5gOC4reC4geC4iuC4seC4oiDguKDguLHguJfguKPguJnguLjguJjguLLguJ7guKMNCivguYDguK3guIHguIrguLHguKIg4Lin4LmI4Lit4LiH4Lia4Lij4Lij4LiI4LiH4Lir4Liy4LijDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4quC4tOC4o+C4tOC4iuC4ueC4quC4tOC4meC4p+C4h+C4qOC5jA0KK+C5gOC4reC4geC4iuC4seC4oiDguK3guLHguKjguKfguYLguIHguKfguLTguJcNCivguYDguK3guIHguJzguKUg4Lit4Lig4Li04LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4LiB4Lin4Li1DQor4LmA4Lit4LiB4Lie4LijIOC4geC4seC4h+C4p+C4suC4rOC5hOC4geC4o+C5hOC4nuC4qOC4suC4pQ0KK+C5gOC4reC4geC4nuC4seC4meC4mOC5jCDguIrguYjguLLguIfguYDguK3guIHguKfguIfguKjguYwNCivguYDguK3guIHguKLguIcg4LmB4LiL4LmI4LmA4LiL4Li14Lii4LinDQor4LmA4Lit4LiB4Lij4Lix4Lio4Lih4Li1IOC4reC4p+C4ouC4quC4tOC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4reC4geC4o+C4tOC4meC4l+C4o+C5jCDguYDguJrguLXguYnguKLguKfguYTguKENCivguYDguK3guIHguKfguLHguJLguJnguYwg4LiK4Lix4Lii4Lin4Lix4LiV4LijDQor4LmA4Lit4LiB4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4tOC4quC4uOC4l+C4mOC4tOC4iuC4suC4meC4meC4l+C5jA0KK+C5gOC4reC4geC4quC4tOC4l+C4mOC4tOC5jCDguYPguIjguJrguLjguI0NCivguYDguK3guIHguKrguLTguJfguJjguLTguYwg4Lio4Li04Lin4Liy4Lin4Li44LiYDQor4LmA4Lit4LiB4LmA4LiK4Liy4Lin4LiZ4LmMIOC5gOC4nuC4tOC5iOC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4uOC4gg0KK+C5gOC4reC4meC4gSDguIHguLTguIjguYTguJ7guKjguLLguKUNCivguYDguK3guJnguIEg4LiI4Lix4LiZ4Lij4Lit4LiUDQor4LmA4Lit4LiZ4LiBIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5gOC4reC4meC4gSDguYDguJfguLXguKLguJnguYDguIHguKnguKENCivguYDguK3guJnguIEg4Lib4Lin4Li04LiU4Liy4Lig4LiyDQor4LmA4Lit4LiZ4LiBIOC5guC4nuC4mOC4tOC5jOC4meC4tOC5iOC4oQ0KK+C5gOC4reC4meC4gSDguKXguLTguILguLTguJXguJXguKPguLDguIHguLnguKXguYDguKXguLTguKgNCivguYDguK3guJnguIEg4Lio4Lij4Li14LmB4Liq4LiHDQor4LmA4Lit4LiZ4LiBIOC5geC4quC4h+C4ieC4suC4og0KK+C5gOC4reC4meC4gSDguK3guLnguYjguJrguLHguIfguKrguLTguJkNCivguYDguK3guKHguK3guKMg4LiB4Lil4Li04LmI4LiZ4Lih4Liy4Lil4LiyDQor4LmA4Lit4Lih4Lit4LijIOC5gOC4ieC4peC4tOC4oeC4meC4meC4l+C5jA0KK+C5gOC4reC4oeC4reC4oyDguJnguLLguITguKDguLnguKHguLQNCivguYDguK3guKHguK3guKMg4LmA4Lif4Li34LmI4Lit4LiH4Lin4Li04LiX4Lii4Liy4LiB4Liy4LijDQor4LmA4Lit4Lih4Lit4LijIOC4qOC4o+C4teC4hOC4h+C4qOC4o+C4tQ0KK+C5gOC4reC4oeC4reC4oyDguK3guKPguLjguJPguKLguIfguIjguLTguJUNCivguYDguK3guKog4LmA4Lit4LmH4LihDQor4LmA4Lit4Li04Lia4Lil4Liy4LigIOC5gOC4peC4tOC4qOC4p+C4tOC4mOC4tQ0KK+C5gOC4reC4teC4ouC4sOC5gOC4iOC5h+C4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguK3guLXguYjguKLguKEg4Lia4Li44LiN4LiE4LiHDQor4LmA4Lit4Li14LmI4Lii4LihIOC4reC4seC4qOC4p+C4pOC4l+C4mOC4tOC5jOC4geC4uOC4pQ0KK+C5gOC4reC4teC5iOC4ouC4oeC4i+C5ieC4hyDguYHguIvguYjguJXguLHguJkNCivguYDguK3guLXguYjguKLguKHguYDguIjguLXguKLguIcg4LmB4LiL4LmI4LmC4LiV4LmL4LinDQor4LmA4Lit4Li14LmJ4Lii4LiHIOC5geC4i+C5iOC5guC4leC5iuC4sA0KK+C5gOC4reC4teC5ieC4ouC4oeC5gOC4i+C4teC5ieC4oiDguYHguIvguYjguJnguLTguYjguKENCivguYDguK3guLXguYnguKLguKvguYjguLLguIfguIHguKfguIcg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4LmA4Lit4Li34LmJ4LitIOC4p+C4h+C4qeC5jOC4quC4suC4geC5ieC4rQ0KK+C5gOC4reC4t+C5ieC4reC4iOC4tOC4leC4leC5jCDguJzguKXguK3guLTguJnguJfguKPguYwNCivguYDguK3guLfguYnguK3guJnguJ7guKMg4LiI4Li04Lij4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lit4Li34LmJ4Lit4Lih4Lie4LijIOC4geC4seC4peC4m+C5jOC5gOC4quC4suC4p+C4oOC4suC4hOC4ouC5jOC4geC4uOC4pQ0KK+C5gOC4reC4t+C5ieC4reC4oeC4nuC4oyDguJzguLjguJTguJzguLLguJQNCivguYDguK3guLfguYnguK3guKHguJ7guKMg4LmE4Lir4Lih4Lie4Li04Lih4Lie4LmMDQor4LmA4Lit4Li34LmJ4Lit4Lit4Liy4Lij4Li1IOC4p+C4h+C4qOC5jOC4p+C4tOC4keC4ueC4o+C4ouC4suC4nuC4ow0KK+C5gOC4reC5h+C4hyDguYHguIvguYjguKXguLTguYnguKENCivguYDguK3guYfguIfguKLguLTguYnguKcg4LmB4LiL4LmI4LmA4Lii4Li14LmI4Lii4LiHDQor4LmA4Lit4LmH4LiZ4LiU4Li5IOC4qOC4o+C4teC4muC4uOC4jeC5gOC4o+C4t+C4reC4hw0KK+C5geC4reC4mSDguYHguKrguIfguKjguKPguLUNCivguYHguK3guJnguYLguJfguJnguLXguYgg4LmA4LiV4Li14Lii4LiHDQor4LmB4Lit4LmL4LinIOC4geC4s+C4oeC4sOC4q+C4ouC4teC5iA0KK+C5guC4reC4oOC4siDguKDguLHguJfguKPguJjguKPguKPguKHguJrguLLguKUNCivguYLguK3guKDguLLguKog4LmA4LiH4Li04LiZ4LmA4LiV4LmH4Lih4LmA4Lib4Li14LmI4Lii4LihDQor4LmC4Lit4Lig4Liy4LiqIOC4l+C4o+C4seC4nuC4ouC5jOC4reC4suC4oOC4suC4geC4ow0KK+C5guC4reC4oOC4suC4qiDguJ7guKPguKvguKHguKPguLHguJXguJnguJ7guIfguKjguYwNCivguYLguK3guKDguLLguKog4Lil4Li04Lil4Li04LiV4LiB4Lix4LiZ4Lii4Liy4LiB4Li44LilDQor4LmC4Lit4Lig4Liy4LiqIOC4quC4uOC4nuC4o+C4o+C4k+C5guC4reC4iuC4suC4geC4uOC4pQ0KK+C5guC4reC4o+C4qiDguKfguIfguKnguYzguKrguLTguJfguJjguLTguYwNCivguYLguK3guKrguJYg4LmC4LiB4Lio4Li04LiZDQor4LmC4Lit4Lis4Liy4LijIOC4nuC4tuC5iOC4h+C4quC4meC4tOC4lw0KK+C5guC4reC5ieC4p+C5gOC4i+C5h+C4hyDguYHguIvguYjguK3guLHguYrguIcNCivguYTguK3guYDguIvguJnguYLguK7guYDguJ/guK3guKPguYwg4LmE4LitIOC4reC4tQ0KK+C4ruC4geC5gOC4ruC4hyDguYHguIvguYjguKXguLXguYkNCivguK7guYjguIfguK7guKfguJQg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Liu4Lin4LiH4LmA4LiI4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4ruC4p+C4oiDguYHguIvguYjguKvguKXguLLguKINCivguK7guYjguK3guK3guLbguYnguIcg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4Liu4Lix4LiH4LiV4Li14LmLIOC4leC4seC5ieC4h+C4oeC4uOC4iOC4peC4tOC4meC4l+C5jA0KK+C4ruC4seC5iOC4h+C5gOC4iOC4teC4oiDguYHguIvguYjguJXguLHguYnguIcNCivguK7guLHguYnguIfguYDguIHguLXguKLguIcg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4Lii4LinDQor4Liu4Lix4LmJ4LiZ4LiH4LmJ4Lin4LiZIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4ruC4seC5iOC4p+C4m+C4tOC4lCDguYHguIvguYjguK3guLbguYnguIcNCivguK7guLHguYnguKfguYPguIrguYkg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Liu4Liy4Lii4Li54Lij4LiL4Li04LiH4Lir4LmMIOC4geC4seC4oeC4muC4teC4o+C5jA0KK+C4ruC4suC4o+C4teC5iOC4m+C4suC4i+C4suC4mSDguIvguLLguK7guLUNCivguK7guLTguKEg4LmB4LiL4LmI4Lir4Lil4LmI4LitDQor4Liu4Li44LiBIOC4nuC4o+C4q+C4oeC4pOC4l+C4mOC4tOC5gOC4lOC4iuC4sg0KK+C4ruC4uOC4ouC4geC4uOC4hyDguYHguIvguYjguIvguLQNCivguK7guLjguKLguYDguIfguYfguIEg4LmB4LiL4LmI4LmA4Lit4LmH4LiHDQor4Liu4Li44LmI4Lii4Liu4Lin4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4ruC4uOC5ieC4ouC4peC4seC5ieC4hyDguJvguKPguLDguKrguLTguJfguJjguLTguKXguLHguIHguKnguJPguLANCivguYDguK7guIcg4Lio4Li04Lij4Li04Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4LmA4Liu4LihIOC4o+C4uOC5iOC4h+C4quC4geC4uOC4pQ0KK+C5gOC4ruC4teC4ouC4hyDguYHguIvguYjguK3guYnguLLguKcNCivguYDguK7guLXguKLguIfguIHguLXguYgg4LmB4LiL4LmI4LmA4Lir4Li14LmI4LiiDQor4LmA4Liu4Li14LmJ4Lii4LiH4LiL4Li04LihIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5guC4ruC4hyDguYDguK3guIHguJjguJnguLLguJnguLHguJnguJfguYwNCivguYTguK7guYkg4LmA4Lil4Li04Lio4Lil4Li04LiC4Li04LiV4LiY4LiZ4Li04LiV4LiB4Li44LilDQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvbm9ybXBlcmYucGwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9ub3JtcGVyZi5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iM2JiYWYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvbm9ybXBlcmYucGwKQEAgLTAsMCArMSw1MzggQEAKKyMhL3Vzci9sb2NhbC9iaW4vcGVybAorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK3VzZSBzdHJpY3Q7CisKKyMgQXNzdW1lIHdlIGFyZSBydW5uaW5nIHdpdGhpbiB0aGUgaWN1NGogcm9vdCBkaXJlY3RvcnkKK3VzZSBsaWIgJ3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmJzsKKwordXNlIERhdGFzZXQ7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBjbGFzcworbXkgJFRFU1RDTEFTUyA9ICdjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLk5vcm1hbGl6ZXJQZXJmb3JtYW5jZVRlc3QnOyAKKworIyBNZXRob2RzIHRvIGJlIHRlc3RlZC4gIEVhY2ggcGFpciByZXByZXNlbnRzIGEgdGVzdCBtZXRob2QgYW5kCisjIGEgYmFzZWxpbmUgbWV0aG9kIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24uCitteSBATUVUSE9EUyAgPSAoCisgIAkJWydUZXN0SUNVX05GRF9ORkNfVGV4dCcsICAnVGVzdEpES19ORkRfTkZDX1RleHQnXSwKKwkJWydUZXN0SUNVX05GQ19ORkNfVGV4dCcsICAnVGVzdEpES19ORkNfTkZDX1RleHQnXSwKKyAgICAgICAgICAgICAgICBbJ1Rlc3RJQ1VfTkZDX05GRF9UZXh0JywgICdUZXN0SkRLX05GQ19ORkRfVGV4dCddLAorICAgICAgICAgICAgICAgIFsnVGVzdElDVV9ORkNfT3JpZ19UZXh0JywgJ1Rlc3RKS0RfTkZDX09yaWdfVGV4dCddLAorCQlbJ1Rlc3RJQ1VfTkZEX05GQ19UZXh0JywgICdUZXN0SkRLX05GRF9ORkNfVGV4dCddLAorICAgICAgICAgICAgICAgIFsnVGVzdElDVV9ORkRfTkZEX1RleHQnLCAgJ1Rlc3RKREtfTkZEX05GRF9UZXh0J10sCisgICAgICAgICAgICAgICAgWydUZXN0SUNVX05GRF9PcmlnX1RleHQnLCAnVGVzdEpES19ORkRfT3JpZ19UZXh0J10sIAorICAgICAgICAgICAgICAgKTsKKworIyBQYXR0ZXJucyB3aGljaCBkZWZpbmUgdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHVzZWQgZm9yIHRlc3RpbmcuCisKK215ICRTT1VSQ0VESVIgPSJDOlxcd29ya1xcaWN1NGpcXHNyY1xcY29tXFxpYm1cXGljdVxcZGV2XFx0ZXN0XFxwZXJmXFxkYXRhXFxjb2xsYXRpb25cXCI7CisKK215IEBPUFRJT05TID0gKAorIyAgICAgICAgICAgICAgICAgICAgICBzcmMgdGV4dCAgICAgICAgICAJICBzcmMgZW5jb2RpbmcgIG1vZGUgIAorCQkgICAgWyAiVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQiLCAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJhcmFiaWMudHh0IiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImZyZW5jaC50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiZ3JlZWsudHh0IiwgICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJoZWJyZXcudHh0IiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImhpbmRpLnR4dCIgLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiamFwYW5lc2UudHh0IiwgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJrb3JlYW4udHh0IiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgInMtY2hpbmVzZS50eHQiLCAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiZnJlbmNoLnR4dCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJncmVlay50eHQiLCAgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImhlYnJldy50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiaGluZGkudHh0IiAsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJqYXBhbmVzZS50eHQiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImtvcmVhbi50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAicy1jaGluZXNlLnR4dCIsICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJhcmFiaWMuaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImN6ZWNoLmh0bWwiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZGFuaXNoLmh0bWwiLCAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJlbmdsaXNoLmh0bWwiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImVzcGVyYW50by5odG1sIiwgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZnJlbmNoLmh0bWwiLCAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJnZW9yZ2lhbi5odG1sIiwgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImdlcm1hbi5odG1sIiwgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZ3JlZWsuaHRtbCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJoZWJyZXcuaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImhpbmRpLmh0bWwiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiaWNlbGFuZGljLmh0bWwiLCAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJpbnRlcmxpbmd1YS5odG1sIiwgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgIml0YWxpYW4uaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiamFwYW5lc2UuaHRtbCIsICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJrb3JlYW4uaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImxpdGh1YW5pYW4uaHRtbCIsICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAibWFsdGVzZS5odG1sIiwgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJwZXJzaWFuLmh0bWwiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInBvbGlzaC5odG1sIiwgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAicG9ydHVndWVzZS5odG1sIiwgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJyb21hbmlhbi5odG1sIiwgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInJ1c3NpYW4uaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAicy1jaGluZXNlLmh0bWwiLCAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJzcGFuaXNoLmh0bWwiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInN3ZWRpc2guaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAidC1jaGluZXNlLmh0bWwiLCAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJ3ZWxzaC5odG1sIiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgIlRlc3ROYW1lc19Bc2lhbi50eHQiLCAgICAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX0NoaW5lc2UudHh0IiwgICAgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfSmFwYW5lc2UudHh0IiwgICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19KYXBhbmVzZV9oLnR4dCIsICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0IiwgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfS29yZWFuLnR4dCIsICAgICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19MYXRpbi50eHQiLCAgICAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQiLCAgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfU2VyYmlhblNSLnR4dCIsICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19UaGFpLnR4dCIsICAgICAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdG5hbWVzX1J1c3NpYW4udHh0IiwgICAgICAiVVRGLTgiLCAibCJdLCAKKyAgICAgICAgICAgICAgKTsKKworbXkgJENBTElCUkFURSA9IDI7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgaW5pdGlhbCBjYWxpYnJhdGlvbgorbXkgJERVUkFUSU9OID0gMTA7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgZWFjaCBwYXNzCitteSAkTlVNUEFTU0VTID0gNDsgIyBudW1iZXIgb2YgcGFzc2VzLiAgSWYgPiAxIHRoZW4gdGhlIGZpcnN0IHBhc3MKKyAgICAgICAgICAgICAgICAgICAjIGlzIGRpc2NhcmRlZCBhcyBhIEpJVCB3YXJtLXVwIHBhc3MuCisKK215ICRUQUJMRUFUVFIgPSAnQk9SREVSPSIxIiBDRUxMUEFERElORz0iNCIgQ0VMTFNQQUNJTkc9IjAiJzsKKworbXkgJFBMVVNfTUlOVVMgPSAiJnBsdXNtbjsiOworCitpZiAoJE5VTVBBU1NFUyA8IDMpIHsKKyAgICBkaWUgIk5lZWQgYXQgbGVhc3QgMyBwYXNzZXMuICBPbmUgaXMgZGlzY2FyZGVkIChKSVQgd2FybXVwKSBhbmQgbmVlZCB0d28gdG8gaGF2ZSAxIGRlZ3JlZSBvZiBmcmVlZG9tICh0IGRpc3RyaWJ1dGlvbikuIjsKK30KKworbXkgJE9VVDsgIyBzZWUgb3V0KCkKKworbWFpbigpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIC4uLgorc3ViIG1haW4geworICAgIG15ICRkYXRlID0gbG9jYWx0aW1lOworICAgIG15ICR0aXRsZSA9ICJJQ1U0Sk5JIFBlcmZvcm1hbmNlIFRlc3QgJGRhdGUiOworCisgICAgbXkgJGh0bWwgPSAkZGF0ZTsKKyAgICAkaHRtbCA9fiBzLzovL2c7ICMgJzonIGlsbGVnYWwKKyAgICAkaHRtbCA9fiBzL1xzKlxkKyQvLzsgIyBkZWxldGUgeWVhcgorICAgICRodG1sID1+IHMvXlx3K1xzKi8vOyAjIGRlbGV0ZSBkb3cKKyAgICAkaHRtbCA9ICJwZXJmICRodG1sLmh0bWwiOworCisgICAgb3BlbihIVE1MLCI+JGh0bWwiKSBvciBkaWUgIkNhbid0IHdyaXRlIHRvICRodG1sOiAkISI7CisKKyAgICBwcmludCBIVE1MIDw8RU9GOworPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPEhUTUw+CisgICA8SEVBRD4KKyAgICAgIDxUSVRMRT4kdGl0bGU8L1RJVExFPgorICAgPC9IRUFEPgorICAgPEJPRFk+CitFT0YKKyAgICBwcmludCBIVE1MICI8SDE+JHRpdGxlPC9IMT5cbiI7CisKKyAgICBwcmludCBIVE1MICI8SDI+JFRFU1RDTEFTUzwvSDI+XG4iOworCisgICAgbXkgJHJhdyA9ICIiOworCisgICAgZm9yIG15ICRtZXRob2RQYWlyIChATUVUSE9EUykgeworCisgICAgICAgIG15ICR0ZXN0TWV0aG9kID0gJG1ldGhvZFBhaXItPlswXTsKKyAgICAgICAgbXkgJGJhc2VsaW5lTWV0aG9kID0gJG1ldGhvZFBhaXItPlsxXTsKKworICAgICAgICBwcmludCBIVE1MICI8UD48VEFCTEUgJFRBQkxFQVRUUj48VFI+PFREPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PEI+JHRlc3RNZXRob2QgdnMuICRiYXNlbGluZU1ldGhvZDwvQj48L1A+XG4iOworICAgICAgICAKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PFRBQkxFICRUQUJMRUFUVFIgQkdDT0xPUj1cIiNDQ0ZGRkZcIj5cbiI7CisgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+T3B0aW9uczwvVEQ+PFREPiR0ZXN0TWV0aG9kPC9URD4iOworICAgICAgICBwcmludCBIVE1MICI8VEQ+JGJhc2VsaW5lTWV0aG9kPC9URD48VEQ+UmF0aW88L1REPjwvVFI+XG4iOworCisgICAgICAgICRPVVQgPSAnJzsKKworICAgICAgICBmb3IgbXkgJHBhdCAoQE9QVElPTlMpIHsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+QCRwYXRbMF0sIEAkcGF0WzJdPC9URD5cbiI7CisKKyAgICAgICAgICAgIG91dCgiPFA+PFRBQkxFICRUQUJMRUFUVFIgV0lEVEg9XCIxMDAlXCI+Iik7CisKKyAgICAgICAgICAgICMgbWVhc3VyZSB0aGUgdGVzdCBtZXRob2QKKyAgICAgICAgICAgIG91dCgiPFRSPjxURD4iKTsKKyAgICAgICAgICAgIHByaW50ICJcbiR0ZXN0TWV0aG9kIFtAJHBhdF1cbiI7CisgICAgICAgICAgICBteSAkdCA9IG1lYXN1cmUyKCR0ZXN0TWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJHQtPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICAjIG1lYXN1cmUgYmFzZWxpbmUgbWV0aG9kCisgICAgICAgICAgICBvdXQoIjxUUj48VEQ+Iik7CisgICAgICAgICAgICBwcmludCAiXG5CZWdpbiAkYmFzZWxpbmVNZXRob2QgW0AkcGF0XVxuIjsKKyAgICAgICAgICAgIG15ICRiID0gbWVhc3VyZTIoJGJhc2VsaW5lTWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJGItPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICBvdXQoIjwvVEFCTEU+PC9QPiIpOworCisgICAgICAgICAgICAjIG91dHB1dCByYXRpbworICAgICAgICAgICAgbXkgJHIgPSAkdC0+ZGl2aWRlKCRiKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD48Qj4iLCBmb3JtYXRQZXJjZW50KDMsICRyLT5nZXRNZWFuKCksICRyLT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8L0I+PC9URD48L1RSPlxuIjsKKyAgICAgICAgfQorCisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKworICAgICAgICBwcmludCBIVE1MICI8UD5SYXcgZGF0YTo8L1A+XG4iOworICAgICAgICBwcmludCBIVE1MICRPVVQ7CisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKyAgICB9CisKKyAgICBwcmludCBIVE1MIDw8RU9GOworICAgPC9CT0RZPgorPC9IVE1MPgorRU9GCisgICAgY2xvc2UoSFRNTCkgb3IgZGllICJDYW4ndCBjbG9zZSAkaHRtbDogJCEiOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFwcGVuZCB0ZXh0IHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgJE9VVAorc3ViIG91dCB7CisgICAgJE9VVCAuPSBqb2luKCcnLCBAXyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXBwZW5kIHRleHQgdG8gdGhlIGdsb2JhbCB2YXJpYWJsZSAkT1VUCitzdWIgb3V0bG4geworICAgICRPVVQgLj0gam9pbignJywgQF8pIC4gIlxuIjsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBNZWFzdXJlIGEgZ2l2ZW4gdGVzdCBtZXRob2Qgd2l0aCBhIGdpdmUgdGVzdCBwYXR0ZXJuIHVzaW5nIHRoZQorIyBnbG9iYWwgcnVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjIEBwYXJhbSBpZiA+MCB0aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBwZXIgcGFzcy4gIElmIDwwIHRoZW4KKyMgICAgICAgIChuZWdhdGl2ZSBvZikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHBlciBwYXNzLgorIworIyBAcmV0dXJuIGEgRGF0YXNldCBvYmplY3QsIHNjYWxlZCBieSBpdGVyYXRpb25zIHBlciBwYXNzIGFuZAorIyAgICAgICAgIGV2ZW50cyBwZXIgaXRlcmF0aW9uLCB0byBnaXZlIHRpbWUgcGVyIGV2ZW50CisjCitzdWIgbWVhc3VyZTIgeworICAgIG15IEBkYXRhID0gbWVhc3VyZTEoQF8pOworICAgIG15ICRpdGVyUGVyUGFzcyA9IHNoaWZ0KEBkYXRhKTsKKyAgICBteSAkZXZlbnRQZXJJdGVyID0gc2hpZnQoQGRhdGEpOworCisgICAgc2hpZnQoQGRhdGEpIGlmIChAZGF0YSA+IDEpOyAjIGRpc2NhcmQgZmlyc3QgcnVuCisKKyAgICBteSAkZHMgPSBEYXRhc2V0LT5uZXcoQGRhdGEpOworICAgICRkcy0+c2V0U2NhbGUoMS4wZS0zIC8gKCRpdGVyUGVyUGFzcyAqICRldmVudFBlckl0ZXIpKTsKKyAgICAkZHM7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhcnJheSBvZjoKKyMgICAgICAgICBbMF0gaXRlcmF0aW9ucyBwZXIgcGFzcworIyAgICAgICAgIFsxXSBldmVudHMgcGVyIGl0ZXJhdGlvbgorIyAgICAgICAgIFsyLi5dIG1zIHJlcG9ydGVkIGZvciBlYWNoIHBhc3MsIGluIG9yZGVyCisjCitzdWIgbWVhc3VyZTEgeworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJGl0ZXJDb3VudCA9IHNoaWZ0OyAjIGFjdHVhbGx5IG1pZ2h0IGJlIC1zZWNvbmRzL3Bhc3MKKworICAgIG91dCgiPFA+TWVhc3VyaW5nICRtZXRob2QgZm9yIGlucHV0IGZpbGUgQCRwYXRbMF0gaW4gQCRwYXRbMl0gLCAiKTsKKyAgICBpZiAoJGl0ZXJDb3VudCA+IDApIHsKKyAgICAgICAgb3V0KCIkaXRlckNvdW50IGl0ZXJhdGlvbnMvcGFzcywgJE5VTVBBU1NFUyBwYXNzZXM8L1A+XG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBvdXQoLSRpdGVyQ291bnQsICIgc2Vjb25kcy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0KKworICAgICMgaXMgJGl0ZXJDb3VudCBhY3R1YWxseSAtc2Vjb25kcz8KKyAgICBpZiAoJGl0ZXJDb3VudCA8IDApIHsKKworICAgICAgICAjIGNhbGlicmF0ZTogZXN0aW1hdGUgbXMvaXRlcmF0aW9uCisgICAgICAgIHByaW50ICJDYWxpYnJhdGluZy4uLiI7CisgICAgICAgIG15IEB0ID0gY2FsbEphdmEoJG1ldGhvZCwgJHBhdCwgJENBTElCUkFURSApOworICAgICAgICBwcmludCAiZG9uZS5cbiI7CisKKyAgICAgICAgbXkgQGRhdGEgPSBzcGxpdCgvXHMrLywgJHRbMF0tPlsyXSk7CisgICAgICAgIG15ICR0aW1lUGVySXRlciA9IDEuMGUtMyAqICRkYXRhWzBdIC8gJGRhdGFbMl07CisgICAgCisgICAgICAgICMgZGV0ZXJtaW5lIGl0ZXJhdGlvbnMvcGFzcworICAgICAgICAkaXRlckNvdW50ID0gaW50KC0kaXRlckNvdW50IC8gJHRpbWVQZXJJdGVyICsgMC41KTsKKworICAgICAgICBvdXQoIjxQPkNhbGlicmF0aW9uIHBhc3MgKCRDQUxJQlJBVEUgc2VjKTogIik7CisgICAgICAgIG91dCgiJGRhdGFbMF0gbXMsICIpOworICAgICAgICBvdXQoIiRkYXRhWzJdIGl0ZXJhdGlvbnMgPSAiKTsKKyAgICAgICAgb3V0KGZvcm1hdFNlY29uZHMoNCwgJHRpbWVQZXJJdGVyKSwgIi9pdGVyYXRpb248QlI+XG4iKTsKKyAgICB9CisgICAgCisgICAgIyBydW4gcGFzc2VzCisgICAgcHJpbnQgIk1lYXN1cmluZyAkaXRlckNvdW50IGl0ZXJhdGlvbnMgeCAkTlVNUEFTU0VTIHBhc3Nlcy4uLiI7CisgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAiJGl0ZXJDb3VudCAiIHggJE5VTVBBU1NFUyk7CisgICAgcHJpbnQgImRvbmUuXG4iOworICAgIG15IEBtcyA9ICgpOworICAgIG15IEBiOyAjIHNjcmF0Y2gKKyAgICBmb3IgbXkgJGEgKEB0KSB7CisgICAgICAgICMgJGEtPlswXTogbWV0aG9kIG5hbWUsIGNvcnJlc3BvbmRzIHRvICRtZXRob2QKKyAgICAgICAgIyAkYS0+WzFdOiAnYmVnaW4nIGRhdGEsID09ICRpdGVyQ291bnQKKyAgICAgICAgIyAkYS0+WzJdOiAnZW5kJyBkYXRhLCBvZiB0aGUgZm9ybSA8bXM+IDxldmVudHNQZXJJdGVyPgorICAgICAgICAjICRhLT5bMy4uLl06IGdjIG1lc3NhZ2VzIGZyb20gSlZNIGR1cmluZyBwYXNzCisgICAgICAgIEBiID0gc3BsaXQoL1xzKy8sICRhLT5bMl0pOworICAgICAgICBwdXNoKEBtcywgJGJbMF0pOworICAgIH0KKyAgICBteSAkZXZlbnRzUGVySXRlciA9ICRiWzFdOworCisgICAgb3V0KCJJdGVyYXRpb25zIHBlciBwYXNzOiAkaXRlckNvdW50PEJSPlxuIik7CisgICAgb3V0KCJFdmVudHMgcGVyIGl0ZXJhdGlvbjogJGV2ZW50c1Blckl0ZXI8QlI+XG4iKTsKKworICAgIG15IEBtc19zdHIgPSBAbXM7CisgICAgJG1zX3N0clswXSAuPSAiIChkaXNjYXJkZWQpIiBpZiAoQG1zX3N0ciA+IDEpOworICAgIG91dCgiUmF3IHRpbWVzIChtcy9wYXNzKTogIiwgam9pbigiLCAiLCBAbXNfc3RyKSwgIjxCUj5cbiIpOworCisgICAgKCRpdGVyQ291bnQsICRldmVudHNQZXJJdGVyLCBAbXMpOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEludm9rZSBqYXZhIHRvIHJ1biAkVEVTVENMQVNTLCBwYXNzaW5nIGl0IHRoZSBnaXZlbiBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucywgb3IgaWYgbmVnYXRpdmUsIHRoZSBkdXJhdGlvbgorIyAgICAgICAgaW4gc2Vjb25kcy4gIElmIG1vcmUgdGhhbiBvbiBwYXNzIGlzIGRlc2lyZWQsIHBhc3MgaW4KKyMgICAgICAgIGEgc3RyaW5nLCBlLmcuLCAiMTAwIDEwMCAxMDAiLgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjCisjIEByZXR1cm4gYW4gYXJyYXkgb2YgcmVzdWx0cy4gIEVhY2ggcmVzdWx0IGlzIGFuIGFycmF5IFJFRgorIyAgICAgICAgIGRlc2NyaWJpbmcgb25lIHBhc3MuICBUaGUgYXJyYXkgUkVGIGNvbnRhaW5zOgorIyAgICAgICAgIC0+WzBdOiBUaGUgbWV0aG9kIG5hbWUgYXMgcmVwb3J0ZWQKKyMgICAgICAgICAtPlsxXTogVGhlIHBhcmFtcyBvbiB0aGUgJz0gPG1ldGg+IGJlZ2luIC4uLicgbGluZQorIyAgICAgICAgIC0+WzJdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gZW5kIC4uLicgbGluZQorIyAgICAgICAgIC0+WzMuLl06IEdDIG1lc3NhZ2VzIGZyb20gdGhlIEpWTSwgaWYgYW55CisjCitzdWIgY2FsbEphdmEgeworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJG4gPSBzaGlmdDsKKyAgICBteSAkZmlsZU5hbWUgPSAkU09VUkNFRElSIC4gQCRwYXRbMF0gOyAKKyAgICBteSAkY21kID0gImM6XFxqZGsxLjQuMl8wNFxcYmluXFxqYXZhIC1jbGFzc3BhdGggO2NsYXNzZXM7ICRURVNUQ0xBU1MgJG1ldGhvZCAtdCAkbiAtZiAkZmlsZU5hbWUgLWUgQCRwYXRbMV0gLUAkcGF0WzJdIjsKKyAgICBwcmludCAiWyRjbWRdXG4iOyAjIGZvciBkZWJ1Z2dpbmcKKyAgICBvcGVuKFBJUEUsICIkY21kfCIpIG9yIGRpZSAiQ2FuJ3QgcnVuIFwiJGNtZFwiIjsKKyAgICBteSBAb3V0OworICAgIHdoaWxlICg8UElQRT4pIHsKKyAgICAgICAgcHVzaChAb3V0LCAkXyk7CisgICAgfQorICAgIGNsb3NlKFBJUEUpIG9yIGRpZSAiSmF2YSBmYWlsZWQ6IFwiJGNtZFwiIjsKKworICAgIEBvdXQgPSBncmVwKCEvXlwjLywgQG91dCk7ICAjIGZpbHRlciBvdXQgY29tbWVudHMKKworICAgICNwcmludCAiWyIsIGpvaW4oIlxuIiwgQG91dCksICJdXG4iOworCisgICAgbXkgQHJlc3VsdHM7CisgICAgbXkgJG1ldGhvZCA9ICcnOworICAgIG15ICRkYXRhID0gW107CisgICAgZm9yZWFjaCAoQG91dCkgeworICAgICAgICBuZXh0IHVubGVzcyAoL1xTLyk7CisKKyAgICAgICAgaWYgKC9ePVxzKihcdyspXHMqKFx3KylccyooLiopLykgeworICAgICAgICAgICAgbXkgKCRtLCAkc3RhdGUsICRkKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgICAgICNwcmludCAiJF8gPT4gW1skbSAkc3RhdGUgJGRhdGFdXVxuIjsKKyAgICAgICAgICAgIGlmICgkc3RhdGUgZXEgJ2JlZ2luJykgeworICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAkbTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJGQpOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAnJyk7ICMgcGxhY2Vob2xkZXIgZm9yIGVuZCBkYXRhCisgICAgICAgICAgICB9IGVsc2lmICgkc3RhdGUgZXEgJ2VuZCcpIHsKKyAgICAgICAgICAgICAgICBpZiAoJG0gbmUgJG1ldGhvZCkgeworICAgICAgICAgICAgICAgICAgICBkaWUgIiRtZXRob2QgZW5kIGRvZXMgbm90IG1hdGNoOiAkXyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRkYXRhLT5bMV0gPSAkZDsgIyBpbnNlcnQgZW5kIGRhdGEgYXQgWzFdCisgICAgICAgICAgICAgICAgI3ByaW50ICIjJG1ldGhvZDoiLCBqb2luKCI7IixAJGRhdGEpLCAiXG4iOworICAgICAgICAgICAgICAgIHVuc2hpZnQoQCRkYXRhLCAkbWV0aG9kKTsgIyBhZGQgbWV0aG9kIHRvIHN0YXJ0CisgICAgICAgICAgICAgICAgcHVzaChAcmVzdWx0cywgJGRhdGEpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAnJzsKKyAgICAgICAgICAgICAgICAkZGF0YSA9IFtdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkaWUgIkNhbid0IHBhcnNlOiAkXyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNpZiAoL15cWy8pIHsKKyAgICAgICAgICAgIGlmICgkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICRfKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIyBpZ25vcmUgZXh0cmFuZW91cyBHQyBub3RpY2VzCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworCisgICAgQHJlc3VsdHM7Cit9CisKKyN8Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI3wjIEZvcm1hdCBhIGNvbmZpZGVuY2UgaW50ZXJ2YWwsIGFzIGdpdmVuIGJ5IGEgRGF0YXNldC4gIE91dHB1dCBpcyBhcworI3wjIGFzIGZvbGxvd3M6CisjfCMgICAyNDEuMjMgLSAyNDEuOTggPT4gMjQxLjUgKy8tIDAuMworI3wjICAgMjQxLjIgLSAyNDMuOCA9PiAyNDIgKy8tIDEKKyN8IyAgIDIxMS4wIC0gMjQxLjAgPT4gMjI2ICsvLSAxNSBvcj8gMjMwICsvLSAyMAorI3wjICAgMjIwLjMgLSAyMzQuMyA9PiAyMjcgKy8tIDcKKyN8IyAgIDIyMC4zIC0gMzAwLjMgPT4gMjYwICsvLSA0MAorI3wjICAgMjIwLjMgLSAxMDAwID0+IDYxMCArLy0gMzkwIG9yPyA2MDAgKy8tIDQwMAorI3wjICAgMC4wMjIgLSAwLjAyNCA9PiAwLjAyMyArLy0gMC4wMDEKKyN8IyAgIDAuMDIyIC0gMC4wMzIgPT4gMC4wMjcgKy8tIDAuMDA1CisjfCMgICAwLjAyMiAtIDEuMDAwID0+IDAuNSArLy0gMC41CisjfCMgSW4gb3RoZXIgd29yZHMsIHRha2Ugb25lIHNpZ25pZmljYW50IGRpZ2l0IG9mIHRoZSBlcnJvciB2YWx1ZSBhbmQKKyN8IyBkaXNwbGF5IHRoZSBtZWFuIHRvIHRoZSBzYW1lIHByZWNpc2lvbi4KKyN8c3ViIGZvcm1hdERhdGFzZXQgeworI3wgICAgbXkgJGRzID0gc2hpZnQ7CisjfCAgICBteSAkbG93ZXIgPSAkZHMtPmdldE1lYW4oKSAtICRkcy0+Z2V0RXJyb3IoKTsKKyN8ICAgIG15ICR1cHBlciA9ICRkcy0+Z2V0TWVhbigpICsgJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHNjYWxlID0gMDsKKyN8ICAgICMgRmluZCBob3cgbWFueSBpbml0aWFsIGRpZ2l0cyBhcmUgdGhlIHNhbWUKKyN8ICAgIHdoaWxlICgkbG93ZXIgPCAxIHx8CisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgKj0gMTA7CisjfCAgICAgICAgJHVwcGVyICo9IDEwOworI3wgICAgICAgICRzY2FsZSsrOworI3wgICAgfQorI3wgICAgd2hpbGUgKCRsb3dlciA+PSAxMCAmJgorI3wgICAgICAgICAgIGludCgkbG93ZXIpID09IGludCgkdXBwZXIpKSB7CisjfCAgICAgICAgJGxvd2VyIC89IDEwOworI3wgICAgICAgICR1cHBlciAvPSAxMDsKKyN8ICAgICAgICAkc2NhbGUtLTsKKyN8ICAgIH0KKyN8fQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIG11bHRpcGxpZXIKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIiBvciAiMjMgKy8tIDEwIi4KKyMKK3N1YiBmb3JtYXROdW1iZXIgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkbXVsdCA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgbXkgJHJlc3VsdCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkYSokbXVsdCk7CisgICAgaWYgKGRlZmluZWQoJGRlbHRhKSkgeworICAgICAgICBteSAkZCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkZGVsdGEqJG11bHQpOworICAgICAgICAjIHJlc3RyaWN0IFBSRUNJU0lPTiBvZiBkZWx0YSB0byB0aGF0IG9mIG1haW4gbnVtYmVyCisgICAgICAgIGlmICgkcmVzdWx0ID1+IC9cLihcZCspLykgeworICAgICAgICAgICAgIyBUT0RPIG1ha2UgdGhpcyB3b3JrIGZvciB2YWx1ZXMgd2l0aCBhbGwgc2lnbmlmaWNhbnQKKyAgICAgICAgICAgICMgZGlnaXRzIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsLCBlLmcuLCAxMjM0MDAwLgorCisgICAgICAgICAgICAjIFRPRE8gdGhlIG90aGVyIHRoaW5nIHdyb25nIHdpdGggdGhpcyBpcyB0aGF0IGl0CisgICAgICAgICAgICAjIGlzbid0IHJvdW5kaW5nIHRoZSAkZGVsdGEgcHJvcGVybHkuICBIYXZlIHRvIHB1dAorICAgICAgICAgICAgIyB0aGlzIGxvZ2ljIGludG8gZm9ybWF0U2lnRGlnKCkuCisgICAgICAgICAgICBteSAkeCA9IGxlbmd0aCgkMSk7CisgICAgICAgICAgICAkZCA9fiBzL1wuKFxkeyR4fSlcZCsvLiQxLzsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0IC49ICIgJFBMVVNfTUlOVVMgIiAuICRkOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIHRpbWUsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSB0aW1lIGluIHNlY29uZHMgdG8gYmUgZm9ybWF0dGVkCisjIEBvcHRpb25hbCBkZWx0YSBpbiBzZWNvbmRzCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyBtcyIgb3IgIjIzICsvLSAxMCBtcyIuCisjCitzdWIgZm9ybWF0U2Vjb25kcyB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisKKyAgICBteSBATVVMVCA9ICgxICAgLCAxZTMsICAxZTYsICAxZTkpOworICAgIG15IEBTVUZGID0gKCdzJyAsICdtcycsICd1cycsICducycpOworCisgICAgIyBEZXRlcm1pbmUgb3VyIHNjYWxlCisgICAgbXkgJGkgPSAwOworICAgICsrJGkgd2hpbGUgKCRhKiRNVUxUWyRpXSA8IDEgJiYgJGkgPCBATVVMVCk7CisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsICRNVUxUWyRpXSwgJGEsICRkZWx0YSkgLiAnICcgLiAkU1VGRlskaV07Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgcGVyY2VudGFnZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCwgYXMgYSBmcmFjdGlvbiwgZS5nLiAwLjUgZm9yIDUwJQorIyBAb3B0aW9uYWwgZGVsdGEsIGFzIGEgZnJhY3Rpb24KKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzICUiIG9yICIyMyArLy0gMTAgJSIuCisjCitzdWIgZm9ybWF0UGVyY2VudCB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsIDEwMCwgJGEsICRkZWx0YSkgLiAnICUnOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciB0byBuIHNpZ25pZmljYW50IGRpZ2l0cyB3aXRob3V0IHVzaW5nIGV4cG9uZW50aWFsCisjIG5vdGF0aW9uLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbnVtYmVyIHRvIGJlIGZvcm1hdHRlZAorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMTIzNCIgIjEyLjM0IiBvciAiMC4wMDEyMzQiLiAgSWYKKyMgICAgICAgICBudW1iZXIgd2FzIG5lZ2F0aXZlLCBwcmVmaXhlZCBieSAnLScuCisjCitzdWIgZm9ybWF0U2lnRGlnIHsKKyAgICBteSAkbiA9IHNoaWZ0KCkgLSAxOworICAgIG15ICRhID0gc2hpZnQ7CisKKyAgICBsb2NhbCAkXyA9IHNwcmludGYoIiUuJHtufWUiLCAkYSk7CisgICAgbXkgJHNpZ24gPSAocy9eLS8vKSA/ICctJyA6ICcnOworCisgICAgbXkgJGFfZTsKKyAgICBteSAkcmVzdWx0OworICAgIGlmICgvXihcZClcLihcZCspZShbLStdXGQrKSQvKSB7CisgICAgICAgIG15ICgkZCwgJGRuLCAkZSkgPSAoJDEsICQyLCAkMyk7CisgICAgICAgICRhX2UgPSAkZTsKKyAgICAgICAgJGQgLj0gJGRuOworICAgICAgICAkZSsrOworICAgICAgICAkZCAuPSAnMCcgd2hpbGUgKCRlID4gbGVuZ3RoKCRkKSk7CisgICAgICAgIHdoaWxlICgkZSA8IDEpIHsKKyAgICAgICAgICAgICRlKys7CisgICAgICAgICAgICAkZCA9ICcwJyAuICRkOworICAgICAgICB9CisgICAgICAgIGlmICgkZSA9PSBsZW5ndGgoJGQpKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHNpZ24gLiAkZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuIHN1YnN0cigkZCwgMCwgJGUpIC4gJy4nIC4gc3Vic3RyKCRkLCAkZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWUgIkNhbid0IHBhcnNlICRfIjsKKyAgICB9CisgICAgJHJlc3VsdDsKK30KKworI2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcGVybGRyaXZlci9EYXRhc2V0LnBtIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcGVybGRyaXZlci9EYXRhc2V0LnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkOTkzMTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL0RhdGFzZXQucG0KQEAgLTAsMCArMSwxMzkgQEAKKyMhL3Vzci9sb2NhbC9iaW4vcGVybAorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogQ09QWVJJR0hUOgorIyAgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisjICAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK3BhY2thZ2UgRGF0YXNldDsKK3VzZSBTdGF0aXN0aWNzOjpEZXNjcmlwdGl2ZTsKK3VzZSBTdGF0aXN0aWNzOjpEaXN0cmlidXRpb25zOwordXNlIHN0cmljdDsKKworIyBDcmVhdGUgYSBuZXcgRGF0YXNldCB3aXRoIHRoZSBnaXZlbiBkYXRhLgorc3ViIG5ldyB7CisgICAgbXkgKCRjbGFzcykgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IGJsZXNzIHsKKyAgICAgICAgX2RhdGEgPT4gXEBfLAorICAgICAgICBfc2NhbGUgPT4gMS4wLAorICAgICAgICBfbWVhbiA9PiAwLjAsCisgICAgICAgIF9lcnJvciA9PiAwLjAsCisgICAgfSwgJGNsYXNzOworCisgICAgbXkgJG4gPSBAXzsKKyAgICAKKyAgICBpZiAoJG4gPj0gMSkgeworICAgICAgICBteSAkc3RhdHMgPSBTdGF0aXN0aWNzOjpEZXNjcmlwdGl2ZTo6RnVsbC0+bmV3KCk7CisgICAgICAgICRzdGF0cy0+YWRkX2RhdGEoQHskc2VsZi0+e19kYXRhfX0pOworICAgICAgICAkc2VsZi0+e19tZWFufSA9ICRzdGF0cy0+bWVhbigpOworCisgICAgICAgIGlmICgkbiA+PSAyKSB7CisgICAgICAgICAgICAjIFVzZSBhIHQgZGlzdHJpYnV0aW9uIHJhdGhlciB0aGFuIEdhdXNzaWFuIGJlY2F1c2UgKGEpIHdlCisgICAgICAgICAgICAjIGFzc3VtZSBhbiB1bmRlcmx5aW5nIG5vcm1hbCBkaXN0LCAoYikgd2UgZG8gbm90IGtub3cgdGhlCisgICAgICAgICAgICAjIHN0YW5kYXJkIGRldmlhdGlvbiAtLSB3ZSBlc3RpbWF0ZSBpdCBmcm9tIHRoZSBkYXRhLCBhbmQgKGMpCisgICAgICAgICAgICAjIHdlIE1BWSBoYXZlIGEgc21hbGwgc2FtcGxlIHNpemUgKGFsc28gd29ya3MgZm9yIGxhcmdlIG4pLgorICAgICAgICAgICAgbXkgJHQgPSBTdGF0aXN0aWNzOjpEaXN0cmlidXRpb25zOjp0ZGlzdHIoJG4tMSwgMC4wMDUpOworICAgICAgICAgICAgJHNlbGYtPntfZXJyb3J9ID0gJHQgKiAkc3RhdHMtPnN0YW5kYXJkX2RldmlhdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgJHNlbGY7Cit9CisKKyMgU2V0IGEgc2NhbGluZyBmYWN0b3IgZm9yIGFsbCBkYXRhOyAxLjAgbWVhbnMgbm8gc2NhbGluZy4KKyMgU2NhbGUgbXVzdCBiZSA+IDAuCitzdWIgc2V0U2NhbGUgeworICAgIG15ICgkc2VsZiwgJHNjYWxlKSA9IEBfOworICAgICRzZWxmLT57X3NjYWxlfSA9ICRzY2FsZTsKK30KKworIyBNdWx0aXBseSB0aGUgc2NhbGluZyBmYWN0b3IgYnkgYSB2YWx1ZS4KK3N1YiBzY2FsZUJ5IHsKKyAgICBteSAoJHNlbGYsICRhKSA9IEBfOworICAgICRzZWxmLT57X3NjYWxlfSAqPSAkYTsKK30KKworIyBSZXR1cm4gdGhlIG1lYW4uCitzdWIgZ2V0TWVhbiB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntfbWVhbn0gKiAkc2VsZi0+e19zY2FsZX07Cit9CisKKyMgUmV0dXJuIGEgOTklIGVycm9yIGJhc2VkIG9uIHRoZSB0IGRpc3RyaWJ1dGlvbi4gIFRoZSBkYXRhc2V0CisjIGlzIGRlc3JpYmVkIGFzIGdldE1lYW4oKSArLy0gZ2V0RXJyb3IoKS4KK3N1YiBnZXRFcnJvciB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntfZXJyb3J9ICogJHNlbGYtPntfc2NhbGV9OworfQorCisjIERpdmlkZSB0d28gRGF0YXNldHMgYW5kIHJldHVybiBhIG5ldyBvbmUsIG1haW50YWluaW5nIHRoZQorIyBtZWFuKy8tZXJyb3IuICBUaGUgbmV3IERhdGFzZXQgaGFzIG5vIGRhdGEgcG9pbnRzLgorc3ViIGRpdmlkZSB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkcmhzID0gc2hpZnQ7CisgICAgCisgICAgbXkgJG1pbnJhdGlvID0gKCRzZWxmLT57X21lYW59IC0gJHNlbGYtPntfZXJyb3J9KSAvCisgICAgICAgICAgICAgICAgICAgKCRyaHMtPntfbWVhbn0gKyAkcmhzLT57X2Vycm9yfSk7CisgICAgbXkgJG1heHJhdGlvID0gKCRzZWxmLT57X21lYW59ICsgJHNlbGYtPntfZXJyb3J9KSAvCisgICAgICAgICAgICAgICAgICAgKCRyaHMtPntfbWVhbn0gLSAkcmhzLT57X2Vycm9yfSk7CisKKyAgICBteSAkcmVzdWx0ID0gRGF0YXNldC0+bmV3KCk7CisgICAgJHJlc3VsdC0+e19tZWFufSA9ICgkbWlucmF0aW8gKyAkbWF4cmF0aW8pIC8gMjsKKyAgICAkcmVzdWx0LT57X2Vycm9yfSA9ICRyZXN1bHQtPntfbWVhbn0gLSAkbWlucmF0aW87CisgICAgJHJlc3VsdC0+e19zY2FsZX0gPSAkc2VsZi0+e19zY2FsZX0gLyAkcmhzLT57X3NjYWxlfTsKKyAgICAkcmVzdWx0OworfQorCisjIHN1YnRyYWN0cyB0d28gRGF0YXNldHMgYW5kIHJldHVybiBhIG5ldyBvbmUsIG1haW50YWluaW5nIHRoZQorIyBtZWFuKy8tZXJyb3IuICBUaGUgbmV3IERhdGFzZXQgaGFzIG5vIGRhdGEgcG9pbnRzLgorc3ViIHN1YnRyYWN0IHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRyaHMgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gRGF0YXNldC0+bmV3KCk7CisgICAgJHJlc3VsdC0+e19tZWFufSA9ICRzZWxmLT57X21lYW59IC0gJHJocy0+e19tZWFufTsKKyAgICAkcmVzdWx0LT57X2Vycm9yfSA9ICRzZWxmLT57X2Vycm9yfSArICRyaHMtPntfZXJyb3J9OworICAgICRyZXN1bHQtPntfc2NhbGV9ID0gJHNlbGYtPntfc2NhbGV9OworICAgICRyZXN1bHQ7Cit9CisKKyMgYWRkcyB0d28gRGF0YXNldHMgYW5kIHJldHVybiBhIG5ldyBvbmUsIG1haW50YWluaW5nIHRoZQorIyBtZWFuKy8tZXJyb3IuICBUaGUgbmV3IERhdGFzZXQgaGFzIG5vIGRhdGEgcG9pbnRzLgorc3ViIGFkZCB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkcmhzID0gc2hpZnQ7CisgICAgCisgICAgbXkgJHJlc3VsdCA9IERhdGFzZXQtPm5ldygpOworICAgICRyZXN1bHQtPntfbWVhbn0gPSAkc2VsZi0+e19tZWFufSArICRyaHMtPntfbWVhbn07CisgICAgJHJlc3VsdC0+e19lcnJvcn0gPSAkc2VsZi0+e19lcnJvcn0gKyAkcmhzLT57X2Vycm9yfTsKKyAgICAkcmVzdWx0LT57X3NjYWxlfSA9ICRzZWxmLT57X3NjYWxlfTsKKyAgICAkcmVzdWx0OworfQorCisjIERpdmlkZXMgYSBkYXRhc2V0IGJ5IGEgc2NhbGFyLgorIyBUaGUgbmV3IERhdGFzZXQgaGFzIG5vIGRhdGEgcG9pbnRzLgorc3ViIGRpdmlkZUJ5U2NhbGFyIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRzID0gc2hpZnQ7CisgICAgCisgICAgbXkgJHJlc3VsdCA9IERhdGFzZXQtPm5ldygpOworICAgICRyZXN1bHQtPntfbWVhbn0gPSAkc2VsZi0+e19tZWFufS8kczsKKyAgICAkcmVzdWx0LT57X2Vycm9yfSA9ICRzZWxmLT57X2Vycm9yfS8kczsKKyAgICAkcmVzdWx0LT57X3NjYWxlfSA9ICRzZWxmLT57X3NjYWxlfTsKKyAgICAkcmVzdWx0OworfQorCisjIERpdmlkZXMgYSBkYXRhc2V0IGJ5IGEgc2NhbGFyLgorIyBUaGUgbmV3IERhdGFzZXQgaGFzIG5vIGRhdGEgcG9pbnRzLgorc3ViIG11bHRpcGx5QnlTY2FsYXIgeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gRGF0YXNldC0+bmV3KCk7CisgICAgJHJlc3VsdC0+e19tZWFufSA9ICRzZWxmLT57X21lYW59KiRzOworICAgICRyZXN1bHQtPntfZXJyb3J9ID0gJHNlbGYtPntfZXJyb3J9KiRzOworICAgICRyZXN1bHQtPntfc2NhbGV9ID0gJHNlbGYtPntfc2NhbGV9OworICAgICRyZXN1bHQ7Cit9CisKKzE7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL0Zvcm1hdC5wbSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvRm9ybWF0LnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwZDYwNzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL0Zvcm1hdC5wbQpAQCAtMCwwICsxLDE2NiBAQAorIyEvdXNyL2xvY2FsL2Jpbi9wZXJsCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiBDT1BZUklHSFQ6CisjICAqIENvcHlyaWdodCAoYykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyMgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworbXkgJFBMVVNfTUlOVVMgPSAiJnBsdXNtbjsiOworCisjfCMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyN8IyBGb3JtYXQgYSBjb25maWRlbmNlIGludGVydmFsLCBhcyBnaXZlbiBieSBhIERhdGFzZXQuICBPdXRwdXQgaXMgYXMKKyN8IyBhcyBmb2xsb3dzOgorI3wjICAgMjQxLjIzIC0gMjQxLjk4ID0+IDI0MS41ICsvLSAwLjMKKyN8IyAgIDI0MS4yIC0gMjQzLjggPT4gMjQyICsvLSAxCisjfCMgICAyMTEuMCAtIDI0MS4wID0+IDIyNiArLy0gMTUgb3I/IDIzMCArLy0gMjAKKyN8IyAgIDIyMC4zIC0gMjM0LjMgPT4gMjI3ICsvLSA3CisjfCMgICAyMjAuMyAtIDMwMC4zID0+IDI2MCArLy0gNDAKKyN8IyAgIDIyMC4zIC0gMTAwMCA9PiA2MTAgKy8tIDM5MCBvcj8gNjAwICsvLSA0MDAKKyN8IyAgIDAuMDIyIC0gMC4wMjQgPT4gMC4wMjMgKy8tIDAuMDAxCisjfCMgICAwLjAyMiAtIDAuMDMyID0+IDAuMDI3ICsvLSAwLjAwNQorI3wjICAgMC4wMjIgLSAxLjAwMCA9PiAwLjUgKy8tIDAuNQorI3wjIEluIG90aGVyIHdvcmRzLCB0YWtlIG9uZSBzaWduaWZpY2FudCBkaWdpdCBvZiB0aGUgZXJyb3IgdmFsdWUgYW5kCisjfCMgZGlzcGxheSB0aGUgbWVhbiB0byB0aGUgc2FtZSBwcmVjaXNpb24uCisjfHN1YiBmb3JtYXREYXRhc2V0IHsKKyN8ICAgIG15ICRkcyA9IHNoaWZ0OworI3wgICAgbXkgJGxvd2VyID0gJGRzLT5nZXRNZWFuKCkgLSAkZHMtPmdldEVycm9yKCk7CisjfCAgICBteSAkdXBwZXIgPSAkZHMtPmdldE1lYW4oKSArICRkcy0+Z2V0RXJyb3IoKTsKKyN8ICAgIG15ICRzY2FsZSA9IDA7CisjfCAgICAjIEZpbmQgaG93IG1hbnkgaW5pdGlhbCBkaWdpdHMgYXJlIHRoZSBzYW1lCisjfCAgICB3aGlsZSAoJGxvd2VyIDwgMSB8fAorI3wgICAgICAgICAgIGludCgkbG93ZXIpID09IGludCgkdXBwZXIpKSB7CisjfCAgICAgICAgJGxvd2VyICo9IDEwOworI3wgICAgICAgICR1cHBlciAqPSAxMDsKKyN8ICAgICAgICAkc2NhbGUrKzsKKyN8ICAgIH0KKyN8ICAgIHdoaWxlICgkbG93ZXIgPj0gMTAgJiYKKyN8ICAgICAgICAgICBpbnQoJGxvd2VyKSA9PSBpbnQoJHVwcGVyKSkgeworI3wgICAgICAgICRsb3dlciAvPSAxMDsKKyN8ICAgICAgICAkdXBwZXIgLz0gMTA7CisjfCAgICAgICAgJHNjYWxlLS07CisjfCAgICB9CisjfH0KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBudW1iZXIsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBtdWx0aXBsaWVyCisjIEBwYXJhbSB0aW1lIGluIHNlY29uZHMgdG8gYmUgZm9ybWF0dGVkCisjIEBvcHRpb25hbCBkZWx0YSBpbiBzZWNvbmRzCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyIgb3IgIjIzICsvLSAxMCIuCisjCitzdWIgZm9ybWF0TnVtYmVyIHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJG11bHQgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorICAgIAorICAgIG15ICRyZXN1bHQgPSBmb3JtYXRTaWdEaWcoJHNpZ2RpZywgJGEqJG11bHQpOworICAgIGlmIChkZWZpbmVkKCRkZWx0YSkpIHsKKyAgICAgICAgbXkgJGQgPSBmb3JtYXRTaWdEaWcoJHNpZ2RpZywgJGRlbHRhKiRtdWx0KTsKKyAgICAgICAgIyByZXN0cmljdCBQUkVDSVNJT04gb2YgZGVsdGEgdG8gdGhhdCBvZiBtYWluIG51bWJlcgorICAgICAgICBpZiAoJHJlc3VsdCA9fiAvXC4oXGQrKS8pIHsKKyAgICAgICAgICAgICMgVE9ETyBtYWtlIHRoaXMgd29yayBmb3IgdmFsdWVzIHdpdGggYWxsIHNpZ25pZmljYW50CisgICAgICAgICAgICAjIGRpZ2l0cyB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCwgZS5nLiwgMTIzNDAwMC4KKworICAgICAgICAgICAgIyBUT0RPIHRoZSBvdGhlciB0aGluZyB3cm9uZyB3aXRoIHRoaXMgaXMgdGhhdCBpdAorICAgICAgICAgICAgIyBpc24ndCByb3VuZGluZyB0aGUgJGRlbHRhIHByb3Blcmx5LiAgSGF2ZSB0byBwdXQKKyAgICAgICAgICAgICMgdGhpcyBsb2dpYyBpbnRvIGZvcm1hdFNpZ0RpZygpLgorICAgICAgICAgICAgbXkgJHggPSBsZW5ndGgoJDEpOworICAgICAgICAgICAgJGQgPX4gcy9cLihcZHskeH0pXGQrLy4kMS87CisgICAgICAgIH0KKyAgICAgICAgJHJlc3VsdCAuPSAiICRQTFVTX01JTlVTICIgLiAkZDsKKyAgICB9CisgICAgJHJlc3VsdDsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSB0aW1lLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gdGltZSBpbiBzZWNvbmRzIHRvIGJlIGZvcm1hdHRlZAorIyBAb3B0aW9uYWwgZGVsdGEgaW4gc2Vjb25kcworIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMgbXMiIG9yICIyMyArLy0gMTAgbXMiLgorIworc3ViIGZvcm1hdFNlY29uZHMgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorCisgICAgbXkgQE1VTFQgPSAoMSAgICwgMWUzLCAgMWU2LCAgMWU5KTsKKyAgICBteSBAU1VGRiA9ICgncycgLCAnbXMnLCAndXMnLCAnbnMnKTsKKworICAgICMgRGV0ZXJtaW5lIG91ciBzY2FsZQorICAgIG15ICRpID0gMDsKKyAgICAjYWx3YXlzIGRvIHNlY29uZHMgaWYgdGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvbW1lbnRlZCBvdXQKKyAgICArKyRpIHdoaWxlICgkYSokTVVMVFskaV0gPCAxICYmICRpIDwgQE1VTFQpOworICAgIAorICAgIGZvcm1hdE51bWJlcigkc2lnZGlnLCAkTVVMVFskaV0sICRhLCAkZGVsdGEpIC4gJyAnIC4gJFNVRkZbJGldOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIHBlcmNlbnRhZ2UsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSB2YWx1ZSB0byBiZSBmb3JtYXR0ZWQsIGFzIGEgZnJhY3Rpb24sIGUuZy4gMC41IGZvciA1MCUKKyMgQG9wdGlvbmFsIGRlbHRhLCBhcyBhIGZyYWN0aW9uCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyAlIiBvciAiMjMgKy8tIDEwICUiLgorIworc3ViIGZvcm1hdFBlcmNlbnQgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorICAgIAorICAgIGZvcm1hdE51bWJlcigkc2lnZGlnLCAxMDAsICRhLCAkZGVsdGEpIC4gJyUnOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciB0byBuIHNpZ25pZmljYW50IGRpZ2l0cyB3aXRob3V0IHVzaW5nIGV4cG9uZW50aWFsCisjIG5vdGF0aW9uLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbnVtYmVyIHRvIGJlIGZvcm1hdHRlZAorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMTIzNCIgIjEyLjM0IiBvciAiMC4wMDEyMzQiLiAgSWYKKyMgICAgICAgICBudW1iZXIgd2FzIG5lZ2F0aXZlLCBwcmVmaXhlZCBieSAnLScuCisjCitzdWIgZm9ybWF0U2lnRGlnIHsKKyAgICBteSAkbiA9IHNoaWZ0KCkgLSAxOworICAgIG15ICRhID0gc2hpZnQ7CisKKyAgICBsb2NhbCAkXyA9IHNwcmludGYoIiUuJHtufWUiLCAkYSk7CisgICAgbXkgJHNpZ24gPSAocy9eLS8vKSA/ICctJyA6ICcnOworCisgICAgbXkgJGFfZTsKKyAgICBteSAkcmVzdWx0OworICAgIGlmICgvXihcZClcLihcZCspZShbLStdXGQrKSQvKSB7CisgICAgICAgIG15ICgkZCwgJGRuLCAkZSkgPSAoJDEsICQyLCAkMyk7CisgICAgICAgICRhX2UgPSAkZTsKKyAgICAgICAgJGQgLj0gJGRuOworICAgICAgICAkZSsrOworICAgICAgICAkZCAuPSAnMCcgd2hpbGUgKCRlID4gbGVuZ3RoKCRkKSk7CisgICAgICAgIHdoaWxlICgkZSA8IDEpIHsKKyAgICAgICAgICAgICRlKys7CisgICAgICAgICAgICAkZCA9ICcwJyAuICRkOworICAgICAgICB9CisgICAgICAgIGlmICgkZSA9PSBsZW5ndGgoJGQpKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHNpZ24gLiAkZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuIHN1YnN0cigkZCwgMCwgJGUpIC4gJy4nIC4gc3Vic3RyKCRkLCAkZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWUgIkNhbid0IHBhcnNlICRfIjsKKyAgICB9CisgICAgJHJlc3VsdDsKK30KKworMTsKKworI2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcGVybGRyaXZlci9PdXRwdXQucG0gYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL091dHB1dC5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDFhMjVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcGVybGRyaXZlci9PdXRwdXQucG0KQEAgLTAsMCArMSwzODkgQEAKKyMhL3Vzci9sb2NhbC9iaW4vcGVybAorCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiBDT1BZUklHSFQ6CisjICAqIENvcHlyaWdodCAoYykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyMgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworCit1c2Ugc3RyaWN0OworCit1c2UgRGF0YXNldDsKKworbXkgJFRBQkxFQVRUUiA9ICdCT1JERVI9IjEiIENFTExQQURESU5HPSI0IiBDRUxMU1BBQ0lORz0iMCInOworbXkgJG91dFR5cGUgPSAiSFRNTCI7CitteSAkaHRtbCA9ICJub05hbWUiOworbXkgJGluVGFibGU7CitteSBAaGVhZGVyczsKK215IEB0aW1ldHlwZXMgPSAoIm1lYW4gcGVyIG9wIiwgImVycm9yIHBlciBvcCIsICJldmVudHMiLCAicGVyIGV2ZW50Iik7CitteSAlcmF3OworbXkgJGN1cnJlbnQgPSAiIjsKK215ICRleHAgPSAwOworbXkgJG11bHQgPSAxZTk7ICN1c2UgbmFub3NlY29uZHMKK215ICRwZXJjID0gMTAwOyAjZm9yIHBlcmNlbnQKK215ICRwcmludEV2ZW50cyA9IDA7CitteSAkbGVnZW5kID0gIjxhIG5hbWU9XCJMZWdlbmRcIj5cbjxoMj5UYWJsZSBsZWdlbmQ8L2gyPjwvYT48dWw+IjsKK215ICRsZWdlbmREb25lID0gMDsKK215ICVvcHRpb25zOworbXkgJG9wZXJhdGlvbklzID0gIm9wZXJhdGlvbiI7CitteSAkZXZlbnRJcyA9ICJldmVudCI7CisKK3N1YiBzdGFydFRlc3QgeworICAkY3VycmVudCA9IHNoaWZ0OworICAkZXhwID0gMDsKKyAgb3V0cHV0RGF0YSgkY3VycmVudCk7Cit9CisKK3N1YiBwcmludExlZyB7CisgIGlmKCEkbGVnZW5kRG9uZSkgeworICAgIG15ICRtZXNzYWdlOworICAgIGZvcmVhY2ggJG1lc3NhZ2UgKEBfKSB7CisgICAgICAkbGVnZW5kIC49ICI8bGk+Ii4kbWVzc2FnZS4iPC9saT5cbiI7CisgICAgfQorICB9Cit9CisKK3N1YiBvdXRwdXREaXN0IHsKKyAgbXkgJHZhbHVlID0gc2hpZnQ7CisgIG15ICRwZXJjZW50ID0gc2hpZnQ7CisgIG15ICRtZWFuID0gJHZhbHVlLT5nZXRNZWFuOworICBteSAkZXJyb3IgPSAkdmFsdWUtPmdldEVycm9yOworICBwcmludCBIVE1MICI8dGQgY2xhc3M9XCIiOworICBpZigkbWVhbiA+IDApIHsKKyAgICBwcmludCBIVE1MICJ2YWx1ZSI7CisgIH0gZWxzZSB7CisgICAgcHJpbnQgSFRNTCAid29yc2UiOworICB9CisgIHByaW50IEhUTUwgIlwiPiI7CisgIGlmKCRwZXJjZW50KSB7CisgICAgcHJpbnQgSFRNTCBmb3JtYXRQZXJjZW50KDIsICRtZWFuKTsKKyAgfSBlbHNlIHsKKyAgICBwcmludCBIVE1MIGZvcm1hdE51bWJlcigyLCAkbXVsdCwgJG1lYW4pOworICB9CisgIHByaW50IEhUTUwgIjwvdGQ+XG4iOyAgCisgIHByaW50IEhUTUwgIjx0ZCBjbGFzcz1cIiI7CisgIGlmKCgoJGVycm9yKiRtdWx0IDwgMTApJiYhJHBlcmNlbnQpIHx8ICgoJGVycm9yPDEwKSYmJHBlcmNlbnQpKSB7CisgICAgcHJpbnQgSFRNTCAiZXJyb3IiOworICB9IGVsc2UgeworICAgIHByaW50IEhUTUwgImVycm9yTGFyZ2UiOworICB9CisgIHByaW50IEhUTUwgIlwiPiZwbHVzbW47IjsKKyAgaWYoJHBlcmNlbnQpIHsKKyAgICBwcmludCBIVE1MIGZvcm1hdFBlcmNlbnQoMiwgJGVycm9yKTsKKyAgfSBlbHNlIHsKKyAgICBwcmludCBIVE1MIGZvcm1hdE51bWJlcigyLCAkbXVsdCwgJGVycm9yKTsKKyAgfQorICBwcmludCBIVE1MICI8L3RkPlxuIjsgIAorfQorICAKK3N1YiBvdXRwdXRWYWx1ZSB7CisgIG15ICR2YWx1ZSA9IHNoaWZ0OworICBwcmludCBIVE1MICI8dGQgY2xhc3M9XCJzZXB2YWx1ZVwiPiI7CisgIHByaW50IEhUTUwgJHZhbHVlOworICAjcHJpbnQgSFRNTCBmb3JtYXROdW1iZXIoMiwgMSwgJHZhbHVlKTsKKyAgcHJpbnQgSFRNTCAiPC90ZD5cbiI7ICAKK30KKworc3ViIHN0YXJ0VGFibGUgeworICAjbXkgJHByaW50RXZlbnRzID0gc2hpZnQ7CisgICRpblRhYmxlID0gMTsKKyAgbXkgJGk7CisgIHByaW50IEhUTUwgIjx0YWJsZSAkVEFCTEVBVFRSPlxuIjsKKyAgcHJpbnQgSFRNTCAiPHRib2R5PlxuIjsKKyAgaWYoJCNoZWFkZXJzID49IDApIHsKKyAgICBteSAoJGhlYWRlciwgJGkpOworICAgIHByaW50IEhUTUwgIjx0cj5cbiI7CisgICAgcHJpbnQgSFRNTCAiPHRoIHJvd3NwYW49XCIyXCIgY2xhc3M9XCJ0ZXN0TmFtZUhlYWRlclwiPjxhIGhyZWY9XCIjVGVzdE5hbWVcIj5UZXN0IE5hbWU8L2E+PC90aD5cbiI7CisgICAgcHJpbnQgSFRNTCAiPHRoIHJvd3NwYW49XCIyXCIgY2xhc3M9XCJ0ZXN0TmFtZUhlYWRlclwiPjxhIGhyZWY9XCIjT3BzXCI+T3BzPC9hPjwvdGg+XG4iOworICAgIHByaW50TGVnKCI8YSBuYW1lPVwiVGVzdCBOYW1lXCI+VGVzdE5hbWU8L2E+IC0gbmFtZSBvZiB0aGUgdGVzdCBhcyBzZXQgYnkgdGhlIHRlc3Qgd3JpdGVyXG4iLCAiPGEgbmFtZT1cIk9wc1wiPk9wczwvYT4gLSBudW1iZXIgb2YgIi4kb3BlcmF0aW9uSXMuInMgcGVyIGl0ZXJhdGlvblxuIik7CisgICAgaWYoISRwcmludEV2ZW50cykgeworICAgICAgcHJpbnQgSFRNTCAiPHRoIGNvbHNwYW49Ii4oKDQqKCQjaGVhZGVycysxKSktMikuIiBjbGFzcz1cInNvdXJjZVR5cGVcIj5QZXIgT3BlcmF0aW9uPC90aD5cbiI7CisgICAgfSBlbHNlIHsKKyAgICAgIHByaW50IEhUTUwgIjx0aCBjb2xzcGFuPSIuKCgyKigkI2hlYWRlcnMrMSkpLTIpLiIgY2xhc3M9XCJzb3VyY2VUeXBlXCI+UGVyIE9wZXJhdGlvbjwvdGg+XG4iOworICAgICAgcHJpbnQgSFRNTCAiPHRoIGNvbHNwYW49Ii4oKDUqKCQjaGVhZGVycysxKSktMikuIiBjbGFzcz1cInNvdXJjZVR5cGVcIj5QZXIgRXZlbnQ8L3RoPlxuIjsKKyAgICB9CisgICAgcHJpbnQgSFRNTCAiPC90cj5cbjx0cj5cbiI7CisgICAgaWYoISRwcmludEV2ZW50cykgeworICAgICAgZm9yZWFjaCAkaGVhZGVyIChAaGVhZGVycykgeworCXByaW50IEhUTUwgIjx0aCBjbGFzcz1cInNvdXJjZVwiIGNvbHNwYW49Mj48YSBocmVmPVwiI21lYW5vcF8kaGVhZGVyXCI+JGhlYWRlcjxicj4vb3A8L2E+PC90aD5cbiI7CisJcHJpbnRMZWcoIjxhIG5hbWU9XCJtZWFub3BfJGhlYWRlclwiPiRoZWFkZXIgL29wPC9hPiAtIG1lYW4gdGltZSBhbmQgZXJyb3IgZm9yICRoZWFkZXIgcGVyICRvcGVyYXRpb25JcyIpOworICAgICAgfQorICAgIH0KKyAgICBmb3IgJGkgKDEgLi4gJCNoZWFkZXJzKSB7CisgICAgICBwcmludCBIVE1MICI8dGggY2xhc3M9XCJzb3VyY2VcIiBjb2xzcGFuPTI+PGEgaHJlZj1cIiNtZWFuX29wXyRpXCI+cmF0aW8gJGk8YnI+L29wPC9hPjwvdGg+XG4iOworICAgICAgcHJpbnRMZWcoIjxhIG5hbWU9XCJtZWFuX29wXyRpXCI+cmF0aW8gJGkgL29wPC9hPiAtIHJhdGlvIGFuZCBlcnJvciBvZiBwZXIgJG9wZXJhdGlvbklzIHRpbWUsIGNhbGN1bGF0ZWQgYXM6ICgoJGhlYWRlcnNbMF0gLSAkaGVhZGVyc1skaV0pLyRoZWFkZXJzWyRpXSkqMTAwJSwgbWVhbiB2YWx1ZSIpOworICAgIH0KKyAgICBpZigkcHJpbnRFdmVudHMpIHsKKyAgICAgIGZvcmVhY2ggJGhlYWRlciAoQGhlYWRlcnMpIHsKKwlwcmludCBIVE1MICI8dGggY2xhc3M9XCJzb3VyY2VcIj48YSBocmVmPVwiI2V2ZW50c18kaGVhZGVyXCI+JGhlYWRlcjxicj5ldmVudHM8L2E+PC90aD5cbiI7CisJcHJpbnRMZWcoIjxhIG5hbWU9XCJldmVudHNfJGhlYWRlclwiPiRoZWFkZXIgZXZlbnRzPC9hPiAtIG51bWJlciBvZiAiLiRldmVudElzLiJzIGZvciAkaGVhZGVyIHBlciBpdGVyYXRpb24iKTsKKyAgICAgIH0KKyAgICAgIGZvcmVhY2ggJGhlYWRlciAoQGhlYWRlcnMpIHsKKwlwcmludCBIVE1MICI8dGggY2xhc3M9XCJzb3VyY2VcIiBjb2xzcGFuPTI+PGEgaHJlZj1cIiNtZWFuX2V2XyRoZWFkZXJcIj4kaGVhZGVyPGJyPi9ldjwvYT48L3RoPlxuIjsKKwlwcmludExlZygiPGEgbmFtZT1cIm1lYW5fZXZfJGhlYWRlclwiPiRoZWFkZXIgL2V2PC9hPiAtIG1lYW4gdGltZSBhbmQgZXJyb3IgZm9yICRoZWFkZXIgcGVyICRldmVudElzIik7CisgICAgICB9CisgICAgICBmb3IgJGkgKDEgLi4gJCNoZWFkZXJzKSB7CisJcHJpbnQgSFRNTCAiPHRoIGNsYXNzPVwic291cmNlXCIgY29sc3Bhbj0yPjxhIGhyZWY9XCIjbWVhbl9ldl8kaVwiPnJhdGlvICRpPGJyPi9ldjwvYT48L3RoPlxuIjsKKwlwcmludExlZygiPGEgbmFtZT1cIm1lYW5fZXZfJGlcIj5yYXRpbyAkaSAvZXY8L2E+IC0gcmF0aW8gYW5kIGVycm9yIG9mIHBlciAkZXZlbnRJcyB0aW1lLCBjYWxjdWxhdGVkIGFzOiAoKCRoZWFkZXJzWzBdIC0gJGhlYWRlcnNbJGldKS8kaGVhZGVyc1skaV0pKjEwMCUsIG1lYW4gdmFsdWUiKTsKKyAgICAgIH0KKyAgICB9CisgICAgcHJpbnQgSFRNTCAiPC90cj5cbiI7CisgIH0KKyAgJGxlZ2VuZERvbmUgPSAxOworfQorCitzdWIgY2xvc2VUYWJsZSB7CisgIGlmKCRpblRhYmxlKSB7CisgICAgdW5kZWYgJGluVGFibGU7CisgICAgcHJpbnQgSFRNTCAiPC90cj5cbiI7CisgICAgcHJpbnQgSFRNTCAiPC90Ym9keT4iOworICAgIHByaW50IEhUTUwgIjwvdGFibGU+XG4iOworICB9Cit9CisKK3N1YiBuZXdSb3cgeworICBpZighJGluVGFibGUpIHsKKyAgICBzdGFydFRhYmxlOworICB9IGVsc2UgeworICAgIHByaW50IEhUTUwgIjwvdHI+XG4iOworICB9CisgIHByaW50IEhUTUwgIjx0cj4iOworfQorCitzdWIgb3V0cHV0RGF0YSB7CisgIGlmKCRpblRhYmxlKSB7CisgICAgbXkgJG1zZyA9IHNoaWZ0OworICAgIG15ICRhbGlnbiA9IHNoaWZ0OworICAgIHByaW50IEhUTUwgIjx0ZCI7CisgICAgaWYoJGFsaWduKSB7CisgICAgICBwcmludCBIVE1MICIgYWxpZ24gPSAkYWxpZ24+IjsKKyAgICB9IGVsc2UgeworICAgICAgcHJpbnQgSFRNTCAiPiI7CisgICAgfQorICAgIHByaW50IEhUTUwgIiRtc2ciOworICAgIHByaW50IEhUTUwgIjwvdGQ+IjsKKyAgfSBlbHNlIHsKKyAgICBteSAkbWVzc2FnZTsKKyAgICBmb3JlYWNoICRtZXNzYWdlIChAXykgeworICAgICAgcHJpbnQgSFRNTCAiJG1lc3NhZ2UiOworICAgIH0KKyAgfQorfQorCitzdWIgc2V0dXBPdXRwdXQgeworICBteSAkZGF0ZSA9IGxvY2FsdGltZTsKKyAgbXkgJG9wdGlvbnMgPSBzaGlmdDsKKyAgJW9wdGlvbnMgPSAleyAkb3B0aW9ucyB9OworICBteSAkdGl0bGUgPSAkb3B0aW9uc3sgInRpdGxlIiB9OworICBteSAkaGVhZGVycyA9ICRvcHRpb25zeyAiaGVhZGVycyIgfTsKKyAgaWYoJG9wdGlvbnN7ICJvcGVyYXRpb25JcyIgfSkgeworICAgICRvcGVyYXRpb25JcyA9ICRvcHRpb25zeyAib3BlcmF0aW9uSXMiIH07CisgIH0KKyAgaWYoJG9wdGlvbnN7ICJldmVudElzIiB9KSB7CisgICAgJGV2ZW50SXMgPSAkb3B0aW9uc3sgImV2ZW50SXMiIH07CisgIH0KKyAgQGhlYWRlcnMgPSBzcGxpdCgvIC8sICRoZWFkZXJzKTsKKyAgbXkgKCR0LCAkcmVzdCk7CisgICgkdCwgJHJlc3QpID0gc3BsaXQoL1wuXHcrLywgJDApOworICAkdCA9fiAvXi4qXFcoXHcrKSQvOworICAkdCA9ICQxOworICBpZigkb3V0VHlwZSBlcSAnSFRNTCcpIHsKKyAgICAkaHRtbCA9ICRkYXRlOworICAgICRodG1sID1+IHMvOi8vZzsgIyAnOicgaWxsZWdhbAorICAgICRodG1sID1+IHMvXHMqXGQrJC8vOyAjIGRlbGV0ZSB5ZWFyCisgICAgJGh0bWwgPX4gcy9eXHcrXHMqLy87ICMgZGVsZXRlIGRvdworICAgICRodG1sID0gIiR0ICRodG1sLmh0bWwiOworICAgIGlmKCRvcHRpb25zeyAib3V0cHV0RGlyIiB9KSB7CisgICAgICAkaHRtbCA9ICRvcHRpb25zeyAib3V0cHV0RGlyIiB9LiIvIi4kaHRtbDsKKyAgICB9CisgICAgJGh0bWwgPX4gcy8gL18vZzsKKworICAgIG9wZW4oSFRNTCwiPiRodG1sIikgb3IgZGllICJDYW4ndCB3cml0ZSB0byAkaHRtbDogJCEiOworCisjPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CisgICAgcHJpbnQgSFRNTCA8PEVPRjsKKzxIVE1MPgorICAgPEhFQUQ+CisgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgICAgICA8VElUTEU+JHRpdGxlPC9USVRMRT4KKzxzdHlsZT4KKzwhLS0KK2JvZHkgICAgICAgICB7IGZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgfQordGggICAgICAgICAgIHsgZm9udC1zaXplOiAxMHB0OyBib3JkZXI6IDAgc29saWQgIzAwMDA4MDsgcGFkZGluZzogNSB9Cit0aC50ZXN0TmFtZUhlYWRlciB7IGJvcmRlci13aWR0aDogMSB9Cit0aC50ZXN0TmFtZSAgeyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXItbGVmdC13aWR0aDogMTsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxOyAKKyAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDEgfQordGguc291cmNlICAgIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxOyBib3JkZXItYm90dG9tLXdpZHRoOiAxIH0KK3RoLnNvdXJjZVR5cGUgeyBib3JkZXItcmlnaHQtd2lkdGg6IDE7IGJvcmRlci10b3Atd2lkdGg6IDE7IGJvcmRlci1ib3R0b20td2lkdGg6IDEgfQordGQgICAgICAgICAgIHsgZm9udC1zaXplOiAxMHB0OyB0ZXh0LWFsaWduOiBSaWdodDsgYm9yZGVyOiAwIHNvbGlkICMwMDAwODA7IHBhZGRpbmc6IDUgfQordGQuc3RyaW5nICAgIHsgdGV4dC1hbGlnbjogTGVmdDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxOyBib3JkZXItcmlnaHQtd2lkdGg6MSB9Cit0ZC5zZXB2YWx1ZSAgeyBib3JkZXItYm90dG9tLXdpZHRoOiAxOyBib3JkZXItcmlnaHQtd2lkdGg6IDEgfQordGQudmFsdWUgICAgIHsgYm9yZGVyLWJvdHRvbS13aWR0aDogMSB9Cit0ZC53b3JzZSAgICAgeyBjb2xvcjogI0ZGMDAwMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJvcmRlci1ib3R0b20td2lkdGg6IDEgfQordGQuZXJyb3IgICAgIHsgZm9udC1zaXplOiA3NSU7IGJvcmRlci1yaWdodC13aWR0aDogMTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMSB9Cit0ZC5lcnJvckxhcmdlIHsgZm9udC1zaXplOiA3NSU7IGNvbG9yOiAjRkYwMDAwOyBmb250LXdlaWdodDogYm9sZDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxOyAKKyAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDEgfQorQTpsaW5rICAgIHsgY29sb3I6IGJsYWNrOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWRlY29yYXRpb246IG5vbmV9ICAgIC8qIHVudmlzaXRlZCBsaW5rcyAqLworQTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtZGVjb3JhdGlvbjogbm9uZSB9ICAgLyogdmlzaXRlZCBsaW5rcyAgICovCitBOmhvdmVyICAgeyBjb2xvcjogcmVkOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWRlY29yYXRpb246IG5vbmUgfSAvKiB1c2VyIGhvdmVycyAgICAgKi8KK0E6YWN0aXZlICB7IGNvbG9yOiBsaW1lOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWRlY29yYXRpb246IG5vbmUgfSAgIC8qIGFjdGl2ZSBsaW5rcyAgICAqLworLS0+Cis8L3N0eWxlPgorICAgPC9IRUFEPgorICAgPEJPRFkgYmdjb2xvcj0iI0ZGRkZGRiIgTElOSz0iIzAwNjY2NiIgVkxJTks9IiMwMDAwMDAiPgorRU9GCisgICAgcHJpbnQgSFRNTCAiPEgxPiR0aXRsZTwvSDE+XG4iOworCisgICAgI3ByaW50IEhUTUwgIjxIMj4kVEVTVENMQVNTPC9IMj5cbiI7CisgIH0KK30KKworc3ViIGNsb3NlT3V0cHV0IHsKKyAgaWYoJG91dFR5cGUgZXEgJ0hUTUwnKSB7CisgICAgaWYoJGluVGFibGUpIHsKKyAgICAgIGNsb3NlVGFibGU7CisgICAgfQorICAgICRsZWdlbmQgLj0gIjwvdWw+XG4iOworICAgIHByaW50IEhUTUwgJGxlZ2VuZDsKKyAgICBvdXRwdXRSYXcoKTsKKyAgICBwcmludCBIVE1MIDw8RU9GOworICAgPC9CT0RZPgorPC9IVE1MPgorRU9GCisgICAgY2xvc2UoSFRNTCkgb3IgZGllICJDYW4ndCBjbG9zZSAkaHRtbDogJCEiOworICB9Cit9CisKKworc3ViIG91dHB1dFJhdyB7CisgIHByaW50IEhUTUwgIjxoMj5SYXcgZGF0YTwvaDI+IjsKKyAgbXkgJGtleTsKKyAgbXkgJGk7CisgIG15ICRqOworICBteSAkazsKKyAgcHJpbnQgSFRNTCAiPHRhYmxlICRUQUJMRUFUVFI+XG4iOworICBmb3IgJGtleSAoc29ydCBrZXlzICVyYXcpIHsKKyAgICBteSAkcHJpbnRrZXkgPSAka2V5OworICAgICRwcmludGtleSA9fiBzL1w8YnJcPi8gL2c7CisgICAgaWYoJHByaW50RXZlbnRzKSB7CisgICAgICBpZigka2V5IG5lICIiKSB7CisJcHJpbnQgSFRNTCAiPHRyPjx0aCBjbGFzcz1cInRlc3ROYW1lSGVhZGVyXCIgY29sc3BhbiA9IDc+JHByaW50a2V5PC90ZD48L3RyPlxuIjsgIyBsb2NhbGUgYW5kIGRhdGEgZmlsZQorICAgICAgfQorICAgICAgcHJpbnQgSFRNTCAiPHRyPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+dGVzdCBuYW1lPC90aD48dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPmludGVyZXN0aW5nIGFyZ3VtZW50czwvdGg+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj5pdGVyYXRpb25zPC90aD48dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPm9wZXJhdGlvbnM8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+bWVhbiB0aW1lIChucyk8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+ZXJyb3IgKG5zKTwvdGg+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj5ldmVudHM8L3RoPjwvdHI+XG4iOworICAgIH0gZWxzZSB7CisgICAgICBpZigka2V5IG5lICIiKSB7CisJcHJpbnQgSFRNTCAiPHRyPjx0aCBjbGFzcz1cInRlc3ROYW1lXCIgY29sc3BhbiA9IDY+JHByaW50a2V5PC90ZD48L3RyPlxuIjsgIyBsb2NhbGUgYW5kIGRhdGEgZmlsZQorICAgICAgfQorICAgICAgcHJpbnQgSFRNTCAiPHRyPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+dGVzdCBuYW1lPC90aD48dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPmludGVyZXN0aW5nIGFyZ3VtZW50czwvdGg+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj5pdGVyYXRpb25zPC90aD48dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPm9wZXJhdGlvbnM8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+bWVhbiB0aW1lIChucyk8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+ZXJyb3IgKG5zKTwvdGg+PC90cj5cbiI7CisgICAgfQorICAgICRwcmludGtleSA9fiBzL1tcPFw+XC8gXS8vZzsKKyAgICAgIAorICAgIG15ICVkb25lOworICAgIGZvciAkaSAoICRyYXd7JGtleX0gKSB7CisgICAgICBwcmludCBIVE1MICI8dHI+IjsKKyAgICAgIGZvciAkaiAoIEAkaSApIHsKKwlteSAoJHRlc3QsICRhcmdzKTsKKwkoJHRlc3QsICRhcmdzKSA9IHNwbGl0KC8sLywgc2hpZnQoQCRqKSk7CisKKwlwcmludCBIVE1MICI8dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPiI7CisJaWYoISRkb25leyR0ZXN0fSkgeworCSAgcHJpbnQgSFRNTCAiPGEgbmFtZT1cIiIuJHByaW50a2V5LiJfIi4kdGVzdC4iXCI+Ii4kdGVzdC4iPC9hPiI7CisJICAkZG9uZXskdGVzdH0gPSAxOworCX0gZWxzZSB7CisJICBwcmludCBIVE1MICR0ZXN0OworCX0KKwlwcmludCBIVE1MICI8L3RoPiI7CisKKwlwcmludCBIVE1MICI8dGQgY2xhc3M9XCJzdHJpbmdcIj4iLiRhcmdzLiI8L3RkPiI7CisJCisJcHJpbnQgSFRNTCAiPHRkIGNsYXNzPVwic2VwdmFsdWVcIj4iLnNoaWZ0KEAkaikuIjwvdGQ+IjsKKwlwcmludCBIVE1MICI8dGQgY2xhc3M9XCJzZXB2YWx1ZVwiPiIuc2hpZnQoQCRqKS4iPC90ZD4iOworCisJbXkgQGRhdGEgPSBAeyBzaGlmdChAJGopIH07CisJbXkgJGRzID0gRGF0YXNldC0+bmV3KEBkYXRhKTsKKwlwcmludCBIVE1MICI8dGQgY2xhc3M9XCJzZXB2YWx1ZVwiPiIuZm9ybWF0TnVtYmVyKDQsICRtdWx0LCAkZHMtPmdldE1lYW4pLiI8L3RkPjx0ZCBjbGFzcz1cInNlcHZhbHVlXCI+Ii5mb3JtYXROdW1iZXIoNCwgJG11bHQsICRkcy0+Z2V0RXJyb3IpLiI8L3RkPiI7CisJaWYoJCN7ICRqIH0gPj0gMCkgeworCSAgcHJpbnQgSFRNTCAiPHRkIGNsYXNzPVwic2VwdmFsdWVcIj4iLnNoaWZ0KEAkaikuIjwvdGQ+IjsKKwl9CisJcHJpbnQgSFRNTCAiPC90cj5cbiI7CisgICAgICB9CisgICAgfQorICB9Cit9CisKK3N1YiBzdG9yZSB7CisgICRyYXd7JGN1cnJlbnR9WyRleHArK10gPSBbQF9dOworfQorCitzdWIgb3V0cHV0Um93IHsKKyAgIyRyYXd7JGN1cnJlbnR9WyRleHArK10gPSAgW0BfXTsKKyAgbXkgJHRlc3ROYW1lID0gc2hpZnQ7CisgIG15IEBpdGVyUGVyUGFzcyA9IEB7c2hpZnQoQF8pfTsKKyAgbXkgQG5vb3BlcnMgPSAgQHtzaGlmdChAXyl9OworICAgbXkgQHRpbWVkYXRhID0gIEB7c2hpZnQoQF8pfTsKKyAgbXkgQG5vZXZlbnRzOworICBpZigkI18gPj0gMCkgeworICAgIEBub2V2ZW50cyA9ICBAe3NoaWZ0KEBfKX07CisgIH0KKyAgaWYoISRpblRhYmxlKSB7CisgICAgaWYoQG5vZXZlbnRzKSB7CisgICAgICAkcHJpbnRFdmVudHMgPSAxOworICAgICAgc3RhcnRUYWJsZTsKKyAgICB9IGVsc2UgeworICAgICAgc3RhcnRUYWJsZTsKKyAgICB9CisgIH0KKyAgZGVidWcoIk5vIGV2ZW50czogQG5vZXZlbnRzLCAkI25vZXZlbnRzXG4iKTsKKworICBteSAkajsKKyAgbXkgJGxvYyA9ICRjdXJyZW50OworICAkbG9jID1+IHMvXDxiclw+LyAvZzsKKyAgJGxvYyA9fiBzL1tcPFw+XC8gXS8vZzsKKworICAjIEZpbmlzaGVkIG9uZSByb3cgb2YgcmVzdWx0cy4gT3V0cHV0dGluZworICBuZXdSb3c7CisgICNvdXRwdXREYXRhKCR0ZXN0TmFtZSwgIkxFRlQiKTsKKyAgcHJpbnQgSFRNTCAiPHRoIGNsYXNzPVwidGVzdE5hbWVcIj48YSBocmVmPVwiIyIuJGxvYy4iXyIuJHRlc3ROYW1lLiJcIj4kdGVzdE5hbWU8L2E+PC90aD5cbiI7CisgICNvdXRwdXREYXRhKCRpdGVyQ291bnQpOworICAjb3V0cHV0RGF0YSgkbm9vcGVyc1swXSwgIlJJR0hUIik7CisgIG91dHB1dFZhbHVlKCRub29wZXJzWzBdKTsKKworICBpZighJHByaW50RXZlbnRzKSB7CisgICAgZm9yICRqICggMCAuLiAkI3RpbWVkYXRhICkgeworICAgICAgbXkgJHBlck9wZXJhdGlvbiA9ICR0aW1lZGF0YVskal0tPmRpdmlkZUJ5U2NhbGFyKCRpdGVyUGVyUGFzc1skal0qJG5vb3BlcnNbJGpdKTsgIyB0aW1lIHBlciBvcGVyYXRpb24KKyAgICAgICNkZWJ1ZygiVGltZSBwZXIgb3BlcmF0aW9uOiAiLmZvcm1hdFNlY29uZHMoNCwgJHBlck9wZXJhdGlvbi0+Z2V0TWVhbiwgJHBlck9wZXJhdGlvbi0+Z2V0RXJyb3IpLiJcbiIpOworICAgICAgb3V0cHV0RGlzdCgkcGVyT3BlcmF0aW9uKTsKKyAgICB9CisgIH0KKyAgbXkgJGJhc2VMaW5lUE8gPSAkdGltZWRhdGFbMF0tPmRpdmlkZUJ5U2NhbGFyKCRpdGVyUGVyUGFzc1swXSokbm9vcGVyc1swXSk7CisgIGZvciAkaiAoIDEgLi4gJCN0aW1lZGF0YSApIHsKKyAgICBteSAkcGVyT3BlcmF0aW9uID0gJHRpbWVkYXRhWyRqXS0+ZGl2aWRlQnlTY2FsYXIoJGl0ZXJQZXJQYXNzWyRqXSokbm9vcGVyc1skal0pOyAjIHRpbWUgcGVyIG9wZXJhdGlvbgorICAgIG15ICRyYXRpbyA9ICRiYXNlTGluZVBPLT5zdWJ0cmFjdCgkcGVyT3BlcmF0aW9uKTsKKyAgICAkcmF0aW8gPSAkcmF0aW8tPmRpdmlkZSgkcGVyT3BlcmF0aW9uKTsKKyAgICBvdXRwdXREaXN0KCRyYXRpbywgIiUiKTsKKyAgfSAgIAorICBpZiAoQG5vZXZlbnRzKSB7CisgICAgZm9yICRqICggMCAuLiAkI3RpbWVkYXRhICkgeworICAgICAgI291dHB1dERhdGEoJG5vZXZlbnRzWyRqXSwgIlJJR0hUIik7CisgICAgICBvdXRwdXRWYWx1ZSgkbm9ldmVudHNbJGpdKTsKKyAgICB9CisgICAgZm9yICRqICggMCAuLiAkI3RpbWVkYXRhICkgeworICAgICAgbXkgJHBlckV2ZW50ID0gICR0aW1lZGF0YVskal0tPmRpdmlkZUJ5U2NhbGFyKCRpdGVyUGVyUGFzc1skal0qJG5vZXZlbnRzWyRqXSk7ICMgdGltZSBwZXIgZXZlbnQKKyAgICAgICNkZWJ1ZygiVGltZSBwZXIgb3BlcmF0aW9uOiAiLmZvcm1hdFNlY29uZHMoNCwgJHBlckV2ZW50LT5nZXRNZWFuLCAkcGVyRXZlbnQtPmdldEVycm9yKS4iXG4iKTsKKyAgICAgIG91dHB1dERpc3QoJHBlckV2ZW50KTsKKyAgICB9ICAgCisgICAgbXkgJGJhc2VMaW5lUE8gPSAkdGltZWRhdGFbMF0tPmRpdmlkZUJ5U2NhbGFyKCRpdGVyUGVyUGFzc1swXSokbm9ldmVudHNbMF0pOworICAgIGZvciAkaiAoIDEgLi4gJCN0aW1lZGF0YSApIHsKKyAgICAgIG15ICRwZXJPcGVyYXRpb24gPSAkdGltZWRhdGFbJGpdLT5kaXZpZGVCeVNjYWxhcigkaXRlclBlclBhc3NbJGpdKiRub2V2ZW50c1skal0pOyAjIHRpbWUgcGVyIG9wZXJhdGlvbgorICAgICAgbXkgJHJhdGlvID0gJGJhc2VMaW5lUE8tPnN1YnRyYWN0KCRwZXJPcGVyYXRpb24pOworICAgICAgJHJhdGlvID0gJHJhdGlvLT5kaXZpZGUoJHBlck9wZXJhdGlvbik7CisgICAgICBvdXRwdXREaXN0KCRyYXRpbywgIiUiKTsKKyAgICB9ICAgCisgIH0KK30KKworCisxOworCisjZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL1BlcmZGcmFtZXdvcms0ai5wbSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvUGVyZkZyYW1ld29yazRqLnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjMDAxYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL1BlcmZGcmFtZXdvcms0ai5wbQpAQCAtMCwwICsxLDQxNSBAQAorIyEvdXNyL2xvY2FsL2Jpbi9wZXJsCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiBDT1BZUklHSFQ6CisjICAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisjICAqIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCit1c2Ugc3RyaWN0OworCisjdXNlIERhdGFzZXQ7Cit1c2UgRm9ybWF0OwordXNlIE91dHB1dDsKKworbXkgJFZFUkJPU0UgPSAwOworbXkgJERFQlVHICAgPSAxOworbXkgJHN0YXJ0X2wgPSAiIjsgI2Zvcm1hdHRpbmcgaGVscAorbXkgJGVuZF9sICAgPSAiIjsKK215IEB0ZXN0QXJnczsgIyBkaWZmZXJlbnQga2luZHMgb2YgdGVzdHMgd2Ugd2FudCB0byBkbworbXkgJGRhdGFkaXIgPSAiZGF0YSI7CitteSAkZXh0cmFBcmdzOyAjIHN0dWZmIHRoYXQgYWx3YXlzIGdldHMgcGFzc2VkIHRvIHRoZSB0ZXN0IHByb2dyYW0KKworCitteSAkaXRlckNvdW50ID0gMDsKK215ICROVU1QQVNTRVMgPSA0OworbXkgJFRJTUUgPSAyOworbXkgJElURVJBVElPTlM7ICAgI0FkZGVkIGJ5IERvdWcKK215ICREQVRBRElSOworCitzdWIgc2V0dXBPcHRpb25zIHsKKyAgbXkgJW9wdGlvbnMgPSAle3NoaWZ0IEBffTsKKworICBpZigkb3B0aW9uc3sidGltZSJ9KSB7CisgICAgJFRJTUUgPSAkb3B0aW9uc3sidGltZSJ9OworICB9CisKKyAgaWYoJG9wdGlvbnN7InBhc3NlcyJ9KSB7CisgICAgJE5VTVBBU1NFUyA9ICRvcHRpb25zeyJwYXNzZXMifTsKKyAgfQorCQorICBpZigkb3B0aW9uc3siZGF0YURpciJ9KSB7CisgICAgJERBVEFESVIgPSAkb3B0aW9uc3siZGF0YURpciJ9OworICB9CisgIAorICAjIEFkZGVkIGJ5IERvdWcKKyAgaWYgKCRvcHRpb25zeyJpdGVyYXRpb25zIn0pIHsKKyAgCSRJVEVSQVRJT05TID0gJG9wdGlvbnN7Iml0ZXJhdGlvbnMifTsKKyAgfQorfQorCitzdWIgcnVuVGVzdHMgeworICBkZWJ1ZygiRW50ZXIgcnVuVGVzdCBpbiBQZXJmRnJhbWV3b3JrNGpcbiIpOworICBteSAkb3B0aW9ucyA9IHNoaWZ0OworICBteSBAcHJvZ3JhbXM7CisgIG15ICR0ZXN0cyA9IHNoaWZ0OworICBteSAlZGF0YWZpbGVzOworICBpZigkI18gPj0gMCkgeyAjIG1heWJlIG5vIGZpbGVzL2xvY2FsZXMKKyAgICBteSAkZGF0YWZpbGVzID0gc2hpZnQ7CisgICAgaWYoJGRhdGFmaWxlcykgeworICAgICAgJWRhdGFmaWxlcyA9ICV7JGRhdGFmaWxlc307CisgICAgfQorICB9CisgIHNldHVwT3V0cHV0KCRvcHRpb25zKTsKKyAgc2V0dXBPcHRpb25zKCRvcHRpb25zKTsKKworICBteSgkbG9jYWxlLCAkaXRlciwgJGRhdGEsICRwcm9ncmFtLCAkYXJncywgJHZhcmlhYmxlKTsKKyMKKyMgIE91dGVyIGxvb3AgcnVucyB0aHJvdWdoIHRoZSBsb2NhbGVzIHRvIHRlc3QKKyMKKyAgaWYgKCVkYXRhZmlsZXMpIHsKKyAgICBmb3JlYWNoICRsb2NhbGUgKHNvcnQga2V5cyAlZGF0YWZpbGVzICkgeworICAgICAgZm9yZWFjaCAkZGF0YSAoQHsgJGRhdGFmaWxlc3skbG9jYWxlfSB9KSB7CisJY2xvc2VUYWJsZTsKKwlteSAkbG9jZGF0YSA9ICIiOworCWlmKCEoJGxvY2FsZSBlcSAiIikpIHsKKwkgICRsb2NkYXRhID0gIjxiPkxvY2FsZTo8L2I+ICRsb2NhbGU8YnI+IjsKKwl9CisJJGxvY2RhdGEgLj0gIjxiPkRhdGFmaWxlOjwvYj4gJGRhdGE8YnI+IjsKKwlzdGFydFRlc3QoJGxvY2RhdGEpOworCisJaWYoJERBVEFESVIpIHsKKwkgIGNvbXBhcmVMb29wICgkdGVzdHMsICRsb2NhbGUsICREQVRBRElSLiIvIi4kZGF0YSk7CisJfSBlbHNlIHsKKwkgIGNvbXBhcmVMb29wICgkdGVzdHMsICRsb2NhbGUsICRkYXRhKTsKKwl9CisgICAgICB9CisgICAgfQorICB9IGVsc2UgeworICAgIGNvbXBhcmVMb29wKCR0ZXN0cyk7CisgIH0KKyAgY2xvc2VPdXRwdXQoKTsKK30KKworc3ViIGNvbXBhcmVMb29wIHsKKyAgI2RlYnVnKCJlbnRlciBjb21wYXJlTG9vcFxuIik7CisgIAorICBteSAkdGVzdHMgPSBzaGlmdDsKKyAgI2RlYnVnKCJ0ZXN0cyAkdGVzdHMiKTsKKyAgI215IEB0ZXN0cyA9IEB7JHRlc3RzfTsKKyAgbXkgJXRlc3RzID0gJXskdGVzdHN9OworICAjZGVidWcoInRlc3RzICR0ZXN0cyIpOworICBteSAkbG9jYWxlID0gc2hpZnQ7CisgIG15ICRkYXRhZmlsZSA9IHNoaWZ0OworICBteSAkbG9jQW5kRGF0YSA9ICIiOworICBpZigkbG9jYWxlKSB7CisgICAgJGxvY0FuZERhdGEgLj0gIiAtTCAkbG9jYWxlIjsKKyAgfQorICAKKyAgaWYoJGRhdGFmaWxlKSB7CisgICAgJGxvY0FuZERhdGEgLj0gIiAtZiAkZGF0YWZpbGUiOworICB9CisJICAKKyAgbXkgJGFyZ3M7CisgIG15ICgkaSwgJGosICRhcmVmKTsKKyAgZm9yZWFjaCAkaSAoIHNvcnQga2V5cyAldGVzdHMgKSB7CisgICAgI2RlYnVnKCJUZXN0OiAkaVxuIik7CisgICAgJGFyZWYgPSAkdGVzdHN7JGl9OworICAgIG15IEB0aW1lZGF0YTsKKyAgICBteSBAaXRlclBlclBhc3M7CisgICAgbXkgQG5vb3BlcnM7CisgICAgbXkgQG5vZXZlbnRzOworCisgICAgbXkgJHByb2dyYW07CisgICAgbXkgQGFyZ3NBbmRUZXN0OworICAgIGZvciAkaiAoIDAgLi4gJCN7JGFyZWZ9ICkgeworICAgICMgZmlyc3Qgd2UgY2FsaWJyYXRlLiBVc2UgdGltZSBmcm9tIHNvbWV3aGVyZQorICAgICMgZmlyc3QgdGVzdCBpcyB1c2VkIGZvciBjYWxpYnJhdGlvbgorICAgICMjIyMjIyMjIyMjIyMjIyMjIworICAgICMgICgkcHJvZ3JhbSwgQGFyZ3NBbmRUZXN0KSA9IHNwbGl0KC9cIC8sIEB7ICR0ZXN0c3skaX0gfVskal0pOworICAgICMgICNNb2RpZmllZCBieSBEb3VnCisgICAgIyAgIG15ICRjb21tYW5kTGluZTsKKyAgICAjICBpZiAoJElURVJBVElPTlMpIHsKKyAgICAjICAJJGNvbW1hbmRMaW5lID0gIiRwcm9ncmFtIC1pICRJVEVSQVRJT05TIC1wICROVU1QQVNTRVMgJGxvY0FuZERhdGEgQGFyZ3NBbmRUZXN0IjsKKyAgICAjICB9IGVsc2UgeworICAgICMgIAkkY29tbWFuZExpbmUgPSAiJHByb2dyYW0gLXQgJFRJTUUgLXAgJE5VTVBBU1NFUyAkbG9jQW5kRGF0YSBAYXJnc0FuZFRlc3QiOworICAgICMgCX0KKyAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgIG15ICRjdXN0QXJnczsKKyAgICBteSAkdGVzdENvbW1hbmQgPSBAeyAkdGVzdHN7JGl9IH1bJGpdOworICAgICAgaWYgKCR0ZXN0Q29tbWFuZCA9fi8tLS8pIHsKKyAgICAgIAkkY3VzdEFyZ3MgPSAkJiAuICQnOwkjVGhlIG1hdGNoZWQgcGFydCBhbmQgdGhlIHJpZ2h0IHBhcnQKKyAgICAgIAkkdGVzdENvbW1hbmQgPSAkYDsJCSNUaGUgbGVmdCBwYXJ0IGZvciBmdXJ0aHVyIHByb2Nlc3NpbmcKKyAgICAgIH0gZWxzZSB7ICRjdXN0QXJncyA9ICcnOyB9CisgICAgICAoJHByb2dyYW0sIEBhcmdzQW5kVGVzdCkgPSBzcGxpdCgvXCAvLCAkdGVzdENvbW1hbmQpOworICAgICAgbXkgJGNvbW1hbmRMaW5lOworICAgICAgaWYgKCRJVEVSQVRJT05TKSB7CisgICAgICAJJGNvbW1hbmRMaW5lID0gIiRwcm9ncmFtIEBhcmdzQW5kVGVzdCAtaSAkSVRFUkFUSU9OUyAtcCAkTlVNUEFTU0VTICRsb2NBbmREYXRhICRjdXN0QXJncyI7CisgICAgICB9IGVsc2UgeworICAgICAgCSRjb21tYW5kTGluZSA9ICIkcHJvZ3JhbSBAYXJnc0FuZFRlc3QgLXQgJFRJTUUgLXAgJE5VTVBBU1NFUyAkbG9jQW5kRGF0YSAkY3VzdEFyZ3MiOworICAgIAl9CisgICAgI2RlYnVnKCJjdXN0QXJnczokY3VzdEFyZ3NcbiIpOworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICAKKyAgICAgIG15IEByZXMgPSBtZWFzdXJlMSgkY29tbWFuZExpbmUpOworICAgICAgc3RvcmUoIiRpLCAkcHJvZ3JhbSBAYXJnc0FuZFRlc3QiLCBAcmVzKTsKKworICAgICAgcHVzaChAaXRlclBlclBhc3MsIHNoaWZ0KEByZXMpKTsKKyAgICAgIHB1c2goQG5vb3BlcnMsIHNoaWZ0KEByZXMpKTsKKyAgICAgIG15IEBkYXRhID0gQHsgc2hpZnQoQHJlcykgfTsKKyAgICAgIGlmKCQjcmVzID49IDApIHsKKwlwdXNoKEBub2V2ZW50cywgc2hpZnQoQHJlcykpOworICAgICAgfQorICAgIAorCisgICAgICBzaGlmdChAZGF0YSkgaWYgKEBkYXRhID4gMSk7ICMgZGlzY2FyZCBmaXJzdCBydW4KKworICAgICAgI2RlYnVnKCJkYXRhIGlzIEBkYXRhXG4iKTsKKyAgICAgIG15ICRkcyA9IERhdGFzZXQtPm5ldyhAZGF0YSk7CisKKyAgICAgIHB1c2goQHRpbWVkYXRhLCAkZHMpOworICAgIH0KKworICAgIG91dHB1dFJvdygkaSwgXEBpdGVyUGVyUGFzcywgXEBub29wZXJzLCBcQHRpbWVkYXRhLCBcQG5vZXZlbnRzKTsKKyAgfQorCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhcnJheSBvZjoKKyMgICAgICAgICBbMF0gaXRlcmF0aW9ucyBwZXIgcGFzcworIyAgICAgICAgIFsxXSBldmVudHMgcGVyIGl0ZXJhdGlvbgorIyAgICAgICAgIFsyLi5dIG1zIHJlcG9ydGVkIGZvciBlYWNoIHBhc3MsIGluIG9yZGVyCisjCitzdWIgbWVhc3VyZTEgeworICAgICMgcnVuIHBhc3NlcworICAgIG15IEB0ID0gY2FsbFByb2coc2hpZnQpOyAjIiRwcm9ncmFtICRhcmdzICRhcmdzQW5kVGVzdCIpOworICAgIG15IEBtcyA9ICgpOworICAgIG15IEBiOyAjIHNjcmF0Y2gKKyAgICBmb3IgbXkgJGEgKEB0KSB7CisgICAgICAgICMgJGEtPlswXTogbWV0aG9kIG5hbWUsIGNvcnJlc3BvbmRzIHRvICRtZXRob2QKKyAgICAgICAgIyAkYS0+WzFdOiAnYmVnaW4nIGRhdGEsID09ICRpdGVyQ291bnQKKyAgICAgICAgIyAkYS0+WzJdOiAnZW5kJyBkYXRhLCBvZiB0aGUgZm9ybSA8bXM+IDxldmVudHNQZXJJdGVyPgorICAgICAgICAjICRhLT5bMy4uLl06IGdjIG1lc3NhZ2VzIGZyb20gSlZNIGR1cmluZyBwYXNzCisgICAgICAgIEBiID0gc3BsaXQoL1xzKy8sICRhLT5bMl0pOworICAgICAgICAjcHVzaChAbXMsICRiWzBdKTsKKyAgICAgICAgcHVzaChAbXMsIHNoaWZ0KEBiKSk7CisgICAgfQorICAgIG15ICRpdGVyQ291bnQgPSBzaGlmdChAYik7CisgICAgbXkgJG9wZXJhdGlvbnNQZXJJdGVyID0gc2hpZnQoQGIpOworICAgIG15ICRldmVudHNQZXJJdGVyOworICAgIGlmKCQjYiA+PSAwKSB7CisgICAgICAkZXZlbnRzUGVySXRlciA9IHNoaWZ0KEBiKTsKKyAgICB9CisKKyMgICAgb3V0KCJJdGVyYXRpb25zIHBlciBwYXNzOiAkaXRlckNvdW50PEJSPlxuIik7CisjICAgIG91dCgiRXZlbnRzIHBlciBpdGVyYXRpb246ICRldmVudHNQZXJJdGVyPEJSPlxuIik7CisjICAgIGRlYnVnKCJJdGVyYXRpb25zIHBlciBwYXNzOiAkaXRlckNvdW50PEJSPlxuIik7CisjICAgIGlmKCRldmVudHNQZXJJdGVyKSB7CisjICAgICAgZGVidWcoIkV2ZW50cyBwZXIgaXRlcmF0aW9uOiAkZXZlbnRzUGVySXRlcjxCUj5cbiIpOworIyAgICB9CisKKyAgICBteSBAbXNfc3RyID0gQG1zOworICAgICRtc19zdHJbMF0gLj0gIiAoZGlzY2FyZGVkKSIgaWYgKEBtc19zdHIgPiAxKTsKKyMgICAgb3V0KCJSYXcgdGltZXMgKG1zL3Bhc3MpOiAiLCBqb2luKCIsICIsIEBtc19zdHIpLCAiPEJSPlxuIik7CisgICAgZGVidWcoIlJhdyB0aW1lcyAobXMvcGFzcyk6ICIsIGpvaW4oIiwgIiwgQG1zX3N0ciksICI8QlI+XG4iKTsKKyAgICBpZigkZXZlbnRzUGVySXRlcikgeworICAgICAgKCRpdGVyQ291bnQsICRvcGVyYXRpb25zUGVySXRlciwgXEBtcywgJGV2ZW50c1Blckl0ZXIpOworICAgIH0gZWxzZSB7CisgICAgICAoJGl0ZXJDb3VudCwgJG9wZXJhdGlvbnNQZXJJdGVyLCBcQG1zKTsKKyAgICB9Cit9CisKKworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE1lYXN1cmUgYSBnaXZlbiB0ZXN0IG1ldGhvZCB3aXRoIGEgZ2l2ZSB0ZXN0IHBhdHRlcm4gdXNpbmcgdGhlCisjIGdsb2JhbCBydW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMgQHBhcmFtIGlmID4wIHRoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHBlciBwYXNzLiAgSWYgPDAgdGhlbgorIyAgICAgICAgKG5lZ2F0aXZlIG9mKSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgcGVyIHBhc3MuCisjCisjIEByZXR1cm4gYSBEYXRhc2V0IG9iamVjdCwgc2NhbGVkIGJ5IGl0ZXJhdGlvbnMgcGVyIHBhc3MgYW5kCisjICAgICAgICAgZXZlbnRzIHBlciBpdGVyYXRpb24sIHRvIGdpdmUgdGltZSBwZXIgZXZlbnQKKyMKK3N1YiBtZWFzdXJlMiB7CisgICAgbXkgQHJlcyA9IG1lYXN1cmUxKEBfKTsKKyAgICBteSAkaXRlclBlclBhc3MgPSBzaGlmdChAcmVzKTsKKyAgICBteSAkb3BlcmF0aW9uc1Blckl0ZXIgPSBzaGlmdChAcmVzKTsKKyAgICBteSBAZGF0YSA9IEB7IHNoaWZ0KEByZXMpIH07CisgICAgbXkgJGV2ZW50c1Blckl0ZXIgPSBzaGlmdChAcmVzKTsKKyAgICAKKworICAgIHNoaWZ0KEBkYXRhKSBpZiAoQGRhdGEgPiAxKTsgIyBkaXNjYXJkIGZpcnN0IHJ1bgorCisgICAgbXkgJGRzID0gRGF0YXNldC0+bmV3KEBkYXRhKTsKKyAgICAjJGRzLT5zZXRTY2FsZSgxLjBlLTMgLyAoJGl0ZXJQZXJQYXNzICogJG9wZXJhdGlvbnNQZXJJdGVyKSk7CisgICAgKCRkcywgJGl0ZXJQZXJQYXNzLCAkb3BlcmF0aW9uc1Blckl0ZXIsICRldmVudHNQZXJJdGVyKTsKK30KKworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEludm9rZSBwcm9ncmFtIGFuZCBjYXB0dXJlIHJlc3VsdHMsIHBhc3NpbmcgaXQgdGhlIGdpdmVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCBvciBpZiBuZWdhdGl2ZSwgdGhlIGR1cmF0aW9uCisjICAgICAgICBpbiBzZWNvbmRzLiAgSWYgbW9yZSB0aGFuIG9uIHBhc3MgaXMgZGVzaXJlZCwgcGFzcyBpbgorIyAgICAgICAgYSBzdHJpbmcsIGUuZy4sICIxMDAgMTAwIDEwMCIuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMKKyMgQHJldHVybiBhbiBhcnJheSBvZiByZXN1bHRzLiAgRWFjaCByZXN1bHQgaXMgYW4gYXJyYXkgUkVGCisjICAgICAgICAgZGVzY3JpYmluZyBvbmUgcGFzcy4gIFRoZSBhcnJheSBSRUYgY29udGFpbnM6CisjICAgICAgICAgLT5bMF06IFRoZSBtZXRob2QgbmFtZSBhcyByZXBvcnRlZAorIyAgICAgICAgIC0+WzFdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gYmVnaW4gLi4uJyBsaW5lCisjICAgICAgICAgLT5bMl06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBlbmQgLi4uJyBsaW5lCisjICAgICAgICAgLT5bMy4uXTogR0MgbWVzc2FnZXMgZnJvbSB0aGUgSlZNLCBpZiBhbnkKKyMKK3N1YiBjYWxsUHJvZyB7CisgICAgbXkgJGNtZCA9IHNoaWZ0OworICAgICNteSAkcGF0ID0gc2hpZnQ7CisgICAgI215ICRuID0gc2hpZnQ7CisKKyAgICAjbXkgJGNtZCA9ICJqYXZhIC1jcCBjOlxcZGV2XFxteWljdTRqXFxjbGFzc2VzICRURVNUQ0xBU1MgJG1ldGhvZCAkbiAkcGF0IjsKKyAgICBkZWJ1ZyggIlskY21kXVxuIik7ICMgZm9yIGRlYnVnZ2luZworICAgIG9wZW4oUElQRSwgIiRjbWR8Iikgb3IgZGllICJDYW4ndCBydW4gXCIkY21kXCIiOworICAgIG15IEBvdXQ7CisgICAgd2hpbGUgKDxQSVBFPikgeworICAgICAgICBwdXNoKEBvdXQsICRfKTsKKyAgICB9CisgICAgY2xvc2UoUElQRSkgb3IgZGllICJQcm9ncmFtIGZhaWxlZDogXCIkY21kXCIiOworCisgICAgQG91dCA9IGdyZXAoIS9eXCMvLCBAb3V0KTsgICMgZmlsdGVyIG91dCBjb21tZW50cworCisgICAgI2RlYnVnKCAiWyIsIGpvaW4oIlxuIiwgQG91dCksICJdXG4iKTsKKworICAgIG15IEByZXN1bHRzOworICAgIG15ICRtZXRob2QgPSAnJzsKKyAgICBteSAkZGF0YSA9IFtdOworICAgIGZvcmVhY2ggKEBvdXQpIHsKKyAgICAgICAgbmV4dCB1bmxlc3MgKC9cUy8pOworCisgICAgICAgIGlmICgvXj1ccyooXHcrKVxzKihcdyspXHMqKC4qKS8pIHsKKyAgICAgICAgICAgIG15ICgkbSwgJHN0YXRlLCAkZCkgPSAoJDEsICQyLCAkMyk7CisgICAgICAgICAgICAjZGVidWcgKCIkXyA9PiBbWyRtICRzdGF0ZSAhISEkZCEhISAkZGF0YSBdXVxuIik7CisgICAgICAgICAgICBpZiAoJHN0YXRlIGVxICdiZWdpbicpIHsKKyAgICAgICAgICAgICAgICBkaWUgIiRtZXRob2Qgd2FzIGJlZ3VuIGJ1dCBub3QgZmluaXNoZWQiIGlmICgkbWV0aG9kKTsKKyAgICAgICAgICAgICAgICAkbWV0aG9kID0gJG07CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICRkKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJycpOyAjIHBsYWNlaG9sZGVyIGZvciBlbmQgZGF0YQorICAgICAgICAgICAgfSBlbHNpZiAoJHN0YXRlIGVxICdlbmQnKSB7CisgICAgICAgICAgICAgICAgaWYgKCRtIG5lICRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICAgICAgZGllICIkbWV0aG9kIGVuZCBkb2VzIG5vdCBtYXRjaDogJF8iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkZGF0YS0+WzFdID0gJGQ7ICMgaW5zZXJ0IGVuZCBkYXRhIGF0IFsxXQorICAgICAgICAgICAgICAgICNkZWJ1ZyggIiMkbWV0aG9kOiIsIGpvaW4oIjsiLEAkZGF0YSksICJcbiIpOworICAgICAgICAgICAgICAgIHVuc2hpZnQoQCRkYXRhLCAkbWV0aG9kKTsgIyBhZGQgbWV0aG9kIHRvIHN0YXJ0CisgICAgICAgICAgICAgICAgcHVzaChAcmVzdWx0cywgJGRhdGEpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAnJzsKKyAgICAgICAgICAgICAgICAkZGF0YSA9IFtdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkaWUgIkNhbid0IHBhcnNlOiAkXyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNpZiAoL15cWy8pIHsKKyAgICAgICAgICAgIGlmICgkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICRfKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIyBpZ25vcmUgZXh0cmFuZW91cyBHQyBub3RpY2VzCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworCisgICAgQHJlc3VsdHM7Cit9CisKK3N1YiBkZWJ1ZyAgeworICBteSAkbWVzc2FnZTsKKyAgaWYoJERFQlVHICE9IDApIHsKKyAgICBmb3JlYWNoICRtZXNzYWdlIChAXykgeworICAgICAgcHJpbnQgU1RERVJSICIkbWVzc2FnZSI7CisgICAgfQorICB9Cit9CisKK3N1YiBtZWFzdXJlMUFsYW4geworICAjQWRkZWQgaGVyZSwgd2FzIGdsb2JhbAorICBteSAkQ0FMSUJSQVRFID0gMjsgIyBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciBpbml0aWFsIGNhbGlicmF0aW9uCisKKyAgICBteSAkbWV0aG9kID0gc2hpZnQ7CisgICAgbXkgJHBhdCA9IHNoaWZ0OworICAgIG15ICRpdGVyQ291bnQgPSBzaGlmdDsgIyBhY3R1YWxseSBtaWdodCBiZSAtc2Vjb25kcy9wYXNzCisKKyAgICBvdXQoIjxQPk1lYXN1cmluZyAkbWV0aG9kIHVzaW5nICRwYXQsICIpOworICAgIGlmICgkaXRlckNvdW50ID4gMCkgeworICAgICAgICBvdXQoIiRpdGVyQ291bnQgaXRlcmF0aW9ucy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dCgtJGl0ZXJDb3VudCwgIiBzZWNvbmRzL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfQorCisgICAgIyBpcyAkaXRlckNvdW50IGFjdHVhbGx5IC1zZWNvbmRzPworICAgIGlmICgkaXRlckNvdW50IDwgMCkgeworCisgICAgICAgICMgY2FsaWJyYXRlOiBlc3RpbWF0ZSBtcy9pdGVyYXRpb24KKyAgICAgICAgcHJpbnQgIkNhbGlicmF0aW5nLi4uIjsKKyAgICAgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAtJENBTElCUkFURSk7CisgICAgICAgIHByaW50ICJkb25lLlxuIjsKKworICAgICAgICBteSBAZGF0YSA9IHNwbGl0KC9ccysvLCAkdFswXS0+WzJdKTsKKyAgICAgICAgbXkgJHRpbWVQZXJJdGVyID0gMS4wZS0zICogJGRhdGFbMF0gLyAkZGF0YVsyXTsKKyAgICAKKyAgICAgICAgIyBkZXRlcm1pbmUgaXRlcmF0aW9ucy9wYXNzCisgICAgICAgICRpdGVyQ291bnQgPSBpbnQoLSRpdGVyQ291bnQgLyAkdGltZVBlckl0ZXIgKyAwLjUpOworCisgICAgICAgIG91dCgiPFA+Q2FsaWJyYXRpb24gcGFzcyAoJENBTElCUkFURSBzZWMpOiAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVswXSBtcywgIik7CisgICAgICAgIG91dCgiJGRhdGFbMl0gaXRlcmF0aW9ucyA9ICIpOworICAgICAgICBvdXQoZm9ybWF0U2Vjb25kcyg0LCAkdGltZVBlckl0ZXIpLCAiL2l0ZXJhdGlvbjxCUj5cbiIpOworICAgIH0KKyAgICAKKyAgICAjIHJ1biBwYXNzZXMKKyAgICBwcmludCAiTWVhc3VyaW5nICRpdGVyQ291bnQgaXRlcmF0aW9ucyB4ICROVU1QQVNTRVMgcGFzc2VzLi4uIjsKKyAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsICIkaXRlckNvdW50ICIgeCAkTlVNUEFTU0VTKTsKKyAgICBwcmludCAiZG9uZS5cbiI7CisgICAgbXkgQG1zID0gKCk7CisgICAgbXkgQGI7ICMgc2NyYXRjaAorICAgIGZvciBteSAkYSAoQHQpIHsKKyAgICAgICAgIyAkYS0+WzBdOiBtZXRob2QgbmFtZSwgY29ycmVzcG9uZHMgdG8gJG1ldGhvZAorICAgICAgICAjICRhLT5bMV06ICdiZWdpbicgZGF0YSwgPT0gJGl0ZXJDb3VudAorICAgICAgICAjICRhLT5bMl06ICdlbmQnIGRhdGEsIG9mIHRoZSBmb3JtIDxtcz4gPGV2ZW50c1Blckl0ZXI+CisgICAgICAgICMgJGEtPlszLi4uXTogZ2MgbWVzc2FnZXMgZnJvbSBKVk0gZHVyaW5nIHBhc3MKKyAgICAgICAgQGIgPSBzcGxpdCgvXHMrLywgJGEtPlsyXSk7CisgICAgICAgIHB1c2goQG1zLCAkYlswXSk7CisgICAgfQorICAgIG15ICRldmVudHNQZXJJdGVyID0gJGJbMV07CisKKyAgICBvdXQoIkl0ZXJhdGlvbnMgcGVyIHBhc3M6ICRpdGVyQ291bnQ8QlI+XG4iKTsKKyAgICBvdXQoIkV2ZW50cyBwZXIgaXRlcmF0aW9uOiAkZXZlbnRzUGVySXRlcjxCUj5cbiIpOworCisgICAgbXkgQG1zX3N0ciA9IEBtczsKKyAgICAkbXNfc3RyWzBdIC49ICIgKGRpc2NhcmRlZCkiIGlmIChAbXNfc3RyID4gMSk7CisgICAgb3V0KCJSYXcgdGltZXMgKG1zL3Bhc3MpOiAiLCBqb2luKCIsICIsIEBtc19zdHIpLCAiPEJSPlxuIik7CisKKyAgICAoJGl0ZXJDb3VudCwgJGV2ZW50c1Blckl0ZXIsIEBtcyk7Cit9CisKKworMTsKKworI2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcmVzb3VyY2Vib3VuZGxlcGVyZi5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Jlc291cmNlYm91bmRsZXBlcmYucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjVjMmQzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Jlc291cmNlYm91bmRsZXBlcmYucGwKQEAgLTAsMCArMSw2OSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLwordXNhZ2UoKSB1bmxlc3MgZGVmaW5lZCAoJEVOVnsnSUNVNEpfUk9PVCd9KTsKK3VzZSBsaWIgIiRFTlZ7J0lDVTRKX1JPT1QnfS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyIjsKK3VzZSBQZXJmRnJhbWV3b3JrNGo7CisKK215ICRJQ1U0Sl9ST09UID0gJEVOVnsnSUNVNEpfUk9PVCd9OworJFRFU1RfREFUQT0iJElDVTRKX1JPT1Qvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24iOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3ViIHVzYWdleworICAgIHByaW50ICJQbGVhc2UgZGVmaW5lIElDVTRKX1JPT1QgZW52IHZhcmlhYmxlLlxuIjsKKyAgICBleGl0IC0xOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgY2xhc3MKK215ICRURVNUQ0xBU1MgPSAiY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5SZXNvdXJjZUJ1bmRsZVBlcmYiOyAKKworbWtkaXIgInJlc3VsdHNfSUNVNEoiOworCitteSAkb3B0aW9ucyA9IHsKKwkgICAgICAgInRpdGxlIj0+IlJlc291cmNlQnVubGRlIHBlcmZvcm1hbmNlIHRlc3QiLAorCSAgICAgICAiaGVhZGVycyI9PiJKYXZhIElDVSIsCisJICAgICAgICJvcGVyYXRpb25JcyI9PiJ2YXJpb3VzIiwKKwkgICAgICAgInRpbWVQZXJPcGVyYXRpb25JcyI9PiJUaW1lIHBlciBlYWNoIGZldGNoIiwKKwkgICAgICAgInBhc3NlcyI9PiIxMCIsCisJICAgICAgICJ0aW1lIj0+IjYwIiwKKwkgICAgICAgIyJvdXRwdXRUeXBlIj0+IkhUTUwiLAorCSAgICAgICAiZGF0YURpciI9PiRURVNUX0RBVEEsCisJICAgICAgICJvdXRwdXREaXIiPT4icmVzdWx0c19JQ1U0SiIKKwkgICAgICB9OworCisjIHByb2dyYW1zCisKK215ICRjbWQgPSAiamF2YSAtY3AgXCIkSUNVNEpfUk9PVC9jbGFzc2VzXCIgJFRFU1RDTEFTUyI7CisKK215ICRkYXRhRmlsZXMgPSAiIjsKKworbXkgJHRlc3RzID0geyAKKyAgICAgICAgICAgICAgICJFbXB0eSBhcnJheSIsICAgICAgICAgICBbIiRjbWQgVGVzdEVtcHR5QXJyYXlKYXZhIiwgICAgICAgICAgICAgICAgICIkY21kIFRlc3RFbXB0eUFycmF5SUNVIl0sCisgICAgICAgICAgICAgICAiRW1wdHkgRXhwbGljaXQgU3RyaW5nIiwgWyIkY21kIFRlc3RFbXB0eUV4cGxpY2l0U3RyaW5nSmF2YSIsICAgICAgICAiJGNtZCBUZXN0RW1wdHlFeHBsaWNpdFN0cmluZ0lDVSJdLAorICAgICAgICAgICAgICAgIkVtcHR5IFN0cmluZyIsICAgICAgICAgIFsiJGNtZCBUZXN0RW1wdHlTdHJpbmdKYXZhIiwgICAgICAgICAgICAgICAgIiRjbWQgVGVzdEVtcHR5U3RyaW5nSUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IDEyMyIsICAgICAgICAgICAgICAgWyIkY21kIFRlc3RHZXQxMjNKYXZhIiwgICAgICAgICAgICAgICAgICAgICAiJGNtZCBUZXN0R2V0MTIzSUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IEJpbmFyeSBUZXN0IiwgICAgICAgWyIkY21kIFRlc3RHZXRCaW5hcnlUZXN0SmF2YSIsICAgICAgICAgICAgICAiJGNtZCBUZXN0R2V0QmluYXJ5VGVzdElDVSJdLAorICAgICAgICAgICAgICAgIkdldCBFbXB0eSBCaW5hcnkiLCAgICAgIFsiJGNtZCBUZXN0R2V0RW1wdHlCaW5hcnlKYXZhIiwgICAgICAgICAgICAgIiRjbWQgVGVzdEdldEJpbmFyeVRlc3RJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgRW1wdHkgTWVudSIsICAgICAgICBbIiRjbWQgVGVzdEdldEVtcHR5TWVudUphdmEiLCAgICAgICAgICAgICAgICIkY21kIFRlc3RHZXRFbXB0eU1lbnVJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgRW1wdHkgSW50IiwgICAgICAgICBbIiRjbWQgVGVzdEdldEVtcHR5SW50SmF2YSIsICAgICAgICAgICAgICAgICIkY21kIFRlc3RHZXRFbXB0eUludElDVSJdLAorICAgICAgICAgICAgICAgIkdldCBFbXB0eSBJbnQgQXJyYXkiLCAgIFsiJGNtZCBUZXN0R2V0RW1wdHlJbnRlZ2VyQXJyYXlKYXZhIiwgICAgICAgIiRjbWQgVGVzdEdldEVtcHR5SW50ZWdlckFycmF5SUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IEludCBBcnJheSIsICAgICAgICAgWyIkY21kIFRlc3RHZXRJbnRlZ2VyQXJyYXlKYXZhIiwgICAgICAgICAgICAiJGNtZCBUZXN0R2V0SW50ZWdlckFycmF5SUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IE1lbnUiLCAgICAgICAgICAgICAgWyIkY21kIFRlc3RHZXRNZW51SmF2YSIsICAgICAgICAgICAgICAgICAgICAiJGNtZCBUZXN0R2V0TWVudUlDVSJdLAorICAgICAgICAgICAgICAgIkdldCBNaW51cyBPbmUiLCAgICAgICAgIFsiJGNtZCBUZXN0R2V0TWludXNPbmVKYXZhIiwgICAgICAgICAgICAgICAgIiRjbWQgVGVzdEdldE1pbnVzT25lSUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IE1pbnVzIE9uZSBVaW50IiwgICAgWyIkY21kIFRlc3RHZXRNaW51c09uZVVpbnRKYXZhIiwgICAgICAgICAgICAiJGNtZCBUZXN0R2V0TWludXNPbmVVaW50SUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IE9uZSIsICAgICAgICAgICAgICAgWyIkY21kIFRlc3RHZXRPbmVKYXZhIiwgICAgICAgICAgICAgICAgICAgICAiJGNtZCBUZXN0R2V0T25lSUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IFBsdXMgT25lIiwgICAgICAgICAgWyIkY21kIFRlc3RHZXRQbHVzT25lSmF2YSIsICAgICAgICAgICAgICAgICAiJGNtZCBUZXN0R2V0UGx1c09uZUlDVSJdLAorICAgICAgICAgICAgICAgIkNvbnN0cnVjdGlvbiIsICAgICAgICAgIFsiJGNtZCBUZXN0UmVzb3VyY2VCdW5kbGVDb25zdHJ1Y3Rpb25KYXZhIiwgIiRjbWQgVGVzdFJlc291cmNlQnVuZGxlQ29uc3RydWN0aW9uSUNVIl0sCisgICAgICAgICAgICAgICAiWmVybyBUZXN0IiwgICAgICAgICAgICAgWyIkY21kIFRlc3RaZXJvVGVzdEphdmEiLCAgICAgICAgICAgICAgICAgICAiJGNtZCBUZXN0WmVyb1Rlc3RJQ1UiXQorICAgICAgICAgICAgfTsKKworCitydW5UZXN0cygkb3B0aW9ucywgJHRlc3RzLCAkZGF0YUZpbGVzKTsKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi91Y2hhcmFjdGVycGVyZi5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3VjaGFyYWN0ZXJwZXJmLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiNTYyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi91Y2hhcmFjdGVycGVyZi5wbApAQCAtMCwwICsxLDQ4OSBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisKKyMhL3Vzci9sb2NhbC9iaW4vcGVybAorCit1c2Ugc3RyaWN0OworCisjIEFzc3VtZSB3ZSBhcmUgcnVubmluZyB3aXRoaW4gdGhlIGljdTRqIHJvb3QgZGlyZWN0b3J5Cit1c2UgbGliICdzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZic7CisKK3VzZSBEYXRhc2V0OworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgY2xhc3MKK215ICRURVNUQ0xBU1MgPSAnY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5VQ2hhcmFjdGVyUGVyZic7CisKKyMgTWV0aG9kcyB0byBiZSB0ZXN0ZWQuICBFYWNoIHBhaXIgcmVwcmVzZW50cyBhIHRlc3QgbWV0aG9kIGFuZAorIyBhIGJhc2VsaW5lIG1ldGhvZCB3aGljaCBpcyB1c2VkIGZvciBjb21wYXJpc29uLgorbXkgQE1FVEhPRFMgID0gKFsnRGlnaXQnLCAnSkRLRGlnaXQnXSwKKyAgICAgICAgICAgICAgICBbJ0dldE51bWVyaWNWYWx1ZScsICdKREtHZXROdW1lcmljVmFsdWUnXSwKKyAgICAgICAgICAgICAgICBbJ0dldFR5cGUnLCAnSkRLR2V0VHlwZSddLAorICAgICAgICAgICAgICAgIFsnSXNEZWZpbmVkJywgJ0pES0lzRGVmaW5lZCddLAorICAgICAgICAgICAgICAgIFsnSXNEaWdpdCcsICdKREtJc0RpZ2l0J10sCisgICAgICAgICAgICAgICAgWydJc0lkZW50aWZpZXJJZ25vcmFibGUnLCAnSkRLSXNJZGVudGlmaWVySWdub3JhYmxlJ10sCisgICAgICAgICAgICAgICAgWydJc0lTT0NvbnRyb2wnLCAnSkRLSXNJU09Db250cm9sJ10sCisgICAgICAgICAgICAgICAgWydJc0xldHRlcicsICdKREtJc0xldHRlciddLAorICAgICAgICAgICAgICAgIFsnSXNMZXR0ZXJPckRpZ2l0JywgJ0pES0lzTGV0dGVyT3JEaWdpdCddLAorICAgICAgICAgICAgICAgIFsnSXNMb3dlckNhc2UnLCAnSkRLSXNMb3dlckNhc2UnXSwKKyAgICAgICAgICAgICAgICBbJ0lzU3BhY2VDaGFyJywgJ0pES0lzU3BhY2VDaGFyJ10sCisgICAgICAgICAgICAgICAgWydJc1RpdGxlQ2FzZScsICdKREtJc1RpdGxlQ2FzZSddLAorICAgICAgICAgICAgICAgIFsnSXNVbmljb2RlSWRlbnRpZmllclBhcnQnLCAnSkRLSXNVbmljb2RlSWRlbnRpZmllclBhcnQnXSwKKyAgICAgICAgICAgICAgICBbJ0lzVW5pY29kZUlkZW50aWZpZXJTdGFydCcsICdKREtJc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQnXSwKKyAgICAgICAgICAgICAgICBbJ0lzVXBwZXJDYXNlJywgJ0pES0lzVXBwZXJDYXNlJ10sCisgICAgICAgICAgICAgICAgWydJc1doaXRlU3BhY2UnLCAnSkRLSXNXaGl0ZVNwYWNlJ10sCisgICAgICAgICAgICAgICApOworCisjIFBhdHRlcm5zIHdoaWNoIGRlZmluZSB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdXNlZCBmb3IgdGVzdGluZy4KK215IEBQQVRURVJOUyA9ICgnMCBmZmZmJyk7CisKK215ICRDQUxJQlJBVEUgPSAyOyAjIGR1cmF0aW9uIGluIHNlY29uZHMgZm9yIGluaXRpYWwgY2FsaWJyYXRpb24KK215ICREVVJBVElPTiA9IDEwOyAjIGR1cmF0aW9uIGluIHNlY29uZHMgZm9yIGVhY2ggcGFzcworbXkgJE5VTVBBU1NFUyA9IDQ7ICMgbnVtYmVyIG9mIHBhc3Nlcy4gIElmID4gMSB0aGVuIHRoZSBmaXJzdCBwYXNzCisgICAgICAgICAgICAgICAgICAgIyBpcyBkaXNjYXJkZWQgYXMgYSBKSVQgd2FybS11cCBwYXNzLgorCitteSAkVEFCTEVBVFRSID0gJ0JPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjQiIENFTExTUEFDSU5HPSIwIic7CisKK215ICRQTFVTX01JTlVTID0gIiZwbHVzbW47IjsKKworaWYgKCROVU1QQVNTRVMgPCAzKSB7CisgICAgZGllICJOZWVkIGF0IGxlYXN0IDMgcGFzc2VzLiAgT25lIGlzIGRpc2NhcmRlZCAoSklUIHdhcm11cCkgYW5kIG5lZWQgdHdvIHRvIGhhdmUgMSBkZWdyZWUgb2YgZnJlZWRvbSAodCBkaXN0cmlidXRpb24pLiI7Cit9CisKK215ICRPVVQ7ICMgc2VlIG91dCgpCisKK21haW4oKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAuLi4KK3N1YiBtYWluIHsKKyAgICBteSAkZGF0ZSA9IGxvY2FsdGltZTsKKyAgICBteSAkdGl0bGUgPSAiSUNVNEogUGVyZm9ybWFuY2UgVGVzdCAkZGF0ZSI7CisKKyAgICBteSAkaHRtbCA9ICRkYXRlOworICAgICRodG1sID1+IHMvOi8vZzsgIyAnOicgaWxsZWdhbAorICAgICRodG1sID1+IHMvXHMqXGQrJC8vOyAjIGRlbGV0ZSB5ZWFyCisgICAgJGh0bWwgPX4gcy9eXHcrXHMqLy87ICMgZGVsZXRlIGRvdworICAgICRodG1sID0gInBlcmYgJGh0bWwuaHRtbCI7CisKKyAgICBvcGVuKEhUTUwsIj4kaHRtbCIpIG9yIGRpZSAiQ2FuJ3Qgd3JpdGUgdG8gJGh0bWw6ICQhIjsKKworICAgIHByaW50IEhUTUwgPDxFT0Y7Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cis8SFRNTD4KKyAgIDxIRUFEPgorICAgICAgPFRJVExFPiR0aXRsZTwvVElUTEU+CisgICA8L0hFQUQ+CisgICA8Qk9EWT4KK0VPRgorICAgIHByaW50IEhUTUwgIjxIMT4kdGl0bGU8L0gxPlxuIjsKKworICAgIHByaW50IEhUTUwgIjxIMj4kVEVTVENMQVNTPC9IMj5cbiI7CisKKyAgICBteSAkcmF3ID0gIiI7CisKKyAgICBmb3IgbXkgJG1ldGhvZFBhaXIgKEBNRVRIT0RTKSB7CisKKyAgICAgICAgbXkgJHRlc3RNZXRob2QgPSAkbWV0aG9kUGFpci0+WzBdOworICAgICAgICBteSAkYmFzZWxpbmVNZXRob2QgPSAkbWV0aG9kUGFpci0+WzFdOworCisgICAgICAgIHByaW50IEhUTUwgIjxQPjxUQUJMRSAkVEFCTEVBVFRSPjxUUj48VEQ+XG4iOworICAgICAgICBwcmludCBIVE1MICI8UD48Qj4kdGVzdE1ldGhvZCB2cy4gJGJhc2VsaW5lTWV0aG9kPC9CPjwvUD5cbiI7CisgICAgICAgIAorICAgICAgICBwcmludCBIVE1MICI8UD48VEFCTEUgJFRBQkxFQVRUUiBCR0NPTE9SPVwiI0NDRkZGRlwiPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFRSPjxURD5QYXR0ZXJuPC9URD48VEQ+JHRlc3RNZXRob2Q8L1REPiI7CisgICAgICAgIHByaW50IEhUTUwgIjxURD4kYmFzZWxpbmVNZXRob2Q8L1REPjxURD5SYXRpbzwvVEQ+PC9UUj5cbiI7CisKKyAgICAgICAgJE9VVCA9ICcnOworCisgICAgICAgIGZvciBteSAkcGF0IChAUEFUVEVSTlMpIHsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+JHBhdDwvVEQ+XG4iOworCisgICAgICAgICAgICBvdXQoIjxQPjxUQUJMRSAkVEFCTEVBVFRSIFdJRFRIPVwiMTAwJVwiPiIpOworCisgICAgICAgICAgICAjIG1lYXN1cmUgdGhlIHRlc3QgbWV0aG9kCisgICAgICAgICAgICBvdXQoIjxUUj48VEQ+Iik7CisgICAgICAgICAgICBwcmludCAiXG4kdGVzdE1ldGhvZCAkcGF0XG4iOworICAgICAgICAgICAgbXkgJHQgPSBtZWFzdXJlMigkdGVzdE1ldGhvZCwgJHBhdCwgLSREVVJBVElPTik7CisgICAgICAgICAgICBvdXQoIjwvVEQ+PC9UUj4iKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD4iLCBmb3JtYXRTZWNvbmRzKDQsICR0LT5nZXRNZWFuKCksICR0LT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICIvZXZlbnQ8L1REPlxuIjsKKworICAgICAgICAgICAgIyBtZWFzdXJlIGJhc2VsaW5lIG1ldGhvZAorICAgICAgICAgICAgb3V0KCI8VFI+PFREPiIpOworICAgICAgICAgICAgcHJpbnQgIlxuQmVnaW4gJGJhc2VsaW5lTWV0aG9kICRwYXRcbiI7CisgICAgICAgICAgICBteSAkYiA9IG1lYXN1cmUyKCRiYXNlbGluZU1ldGhvZCwgJHBhdCwgLSREVVJBVElPTik7CisgICAgICAgICAgICBvdXQoIjwvVEQ+PC9UUj4iKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD4iLCBmb3JtYXRTZWNvbmRzKDQsICRiLT5nZXRNZWFuKCksICR0LT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICIvZXZlbnQ8L1REPlxuIjsKKworICAgICAgICAgICAgb3V0KCI8L1RBQkxFPjwvUD4iKTsKKworICAgICAgICAgICAgIyBvdXRwdXQgcmF0aW8KKyAgICAgICAgICAgIG15ICRyID0gJHQtPmRpdmlkZSgkYik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VEQ+PEI+IiwgZm9ybWF0UGVyY2VudCgzLCAkci0+Z2V0TWVhbigpLCAkci0+Z2V0RXJyb3IpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPC9CPjwvVEQ+PC9UUj5cbiI7CisgICAgICAgIH0KKworICAgICAgICBwcmludCBIVE1MICI8L1RBQkxFPjwvUD5cbiI7CisKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+UmF3IGRhdGE6PC9QPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAkT1VUOworICAgICAgICBwcmludCBIVE1MICI8L1RBQkxFPjwvUD5cbiI7CisgICAgfQorCisgICAgcHJpbnQgSFRNTCA8PEVPRjsKKyAgIDwvQk9EWT4KKzwvSFRNTD4KK0VPRgorICAgIGNsb3NlKEhUTUwpIG9yIGRpZSAiQ2FuJ3QgY2xvc2UgJGh0bWw6ICQhIjsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBcHBlbmQgdGV4dCB0byB0aGUgZ2xvYmFsIHZhcmlhYmxlICRPVVQKK3N1YiBvdXQgeworICAgICRPVVQgLj0gam9pbignJywgQF8pOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFwcGVuZCB0ZXh0IHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgJE9VVAorc3ViIG91dGxuIHsKKyAgICAkT1VUIC49IGpvaW4oJycsIEBfKSAuICJcbiI7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhIERhdGFzZXQgb2JqZWN0LCBzY2FsZWQgYnkgaXRlcmF0aW9ucyBwZXIgcGFzcyBhbmQKKyMgICAgICAgICBldmVudHMgcGVyIGl0ZXJhdGlvbiwgdG8gZ2l2ZSB0aW1lIHBlciBldmVudAorIworc3ViIG1lYXN1cmUyIHsKKyAgICBteSBAZGF0YSA9IG1lYXN1cmUxKEBfKTsKKyAgICBteSAkaXRlclBlclBhc3MgPSBzaGlmdChAZGF0YSk7CisgICAgbXkgJGV2ZW50UGVySXRlciA9IHNoaWZ0KEBkYXRhKTsKKworICAgIHNoaWZ0KEBkYXRhKSBpZiAoQGRhdGEgPiAxKTsgIyBkaXNjYXJkIGZpcnN0IHJ1bgorCisgICAgbXkgJGRzID0gRGF0YXNldC0+bmV3KEBkYXRhKTsKKyAgICAkZHMtPnNldFNjYWxlKDEuMGUtMyAvICgkaXRlclBlclBhc3MgKiAkZXZlbnRQZXJJdGVyKSk7CisgICAgJGRzOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE1lYXN1cmUgYSBnaXZlbiB0ZXN0IG1ldGhvZCB3aXRoIGEgZ2l2ZSB0ZXN0IHBhdHRlcm4gdXNpbmcgdGhlCisjIGdsb2JhbCBydW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMgQHBhcmFtIGlmID4wIHRoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHBlciBwYXNzLiAgSWYgPDAgdGhlbgorIyAgICAgICAgKG5lZ2F0aXZlIG9mKSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgcGVyIHBhc3MuCisjCisjIEByZXR1cm4gYXJyYXkgb2Y6CisjICAgICAgICAgWzBdIGl0ZXJhdGlvbnMgcGVyIHBhc3MKKyMgICAgICAgICBbMV0gZXZlbnRzIHBlciBpdGVyYXRpb24KKyMgICAgICAgICBbMi4uXSBtcyByZXBvcnRlZCBmb3IgZWFjaCBwYXNzLCBpbiBvcmRlcgorIworc3ViIG1lYXN1cmUxIHsKKyAgICBteSAkbWV0aG9kID0gc2hpZnQ7CisgICAgbXkgJHBhdCA9IHNoaWZ0OworICAgIG15ICRpdGVyQ291bnQgPSBzaGlmdDsgIyBhY3R1YWxseSBtaWdodCBiZSAtc2Vjb25kcy9wYXNzCisKKyAgICBvdXQoIjxQPk1lYXN1cmluZyAkbWV0aG9kIHVzaW5nICRwYXQsICIpOworICAgIGlmICgkaXRlckNvdW50ID4gMCkgeworICAgICAgICBvdXQoIiRpdGVyQ291bnQgaXRlcmF0aW9ucy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dCgtJGl0ZXJDb3VudCwgIiBzZWNvbmRzL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfQorCisgICAgIyBpcyAkaXRlckNvdW50IGFjdHVhbGx5IC1zZWNvbmRzPworICAgIGlmICgkaXRlckNvdW50IDwgMCkgeworCisgICAgICAgICMgY2FsaWJyYXRlOiBlc3RpbWF0ZSBtcy9pdGVyYXRpb24KKyAgICAgICAgcHJpbnQgIkNhbGlicmF0aW5nLi4uIjsKKyAgICAgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAtJENBTElCUkFURSk7CisgICAgICAgIHByaW50ICJkb25lLlxuIjsKKworICAgICAgICBteSBAZGF0YSA9IHNwbGl0KC9ccysvLCAkdFswXS0+WzJdKTsKKyAgICAgICAgbXkgJHRpbWVQZXJJdGVyID0gMS4wZS0zICogJGRhdGFbMF0gLyAkZGF0YVsyXTsKKyAgICAKKyAgICAgICAgIyBkZXRlcm1pbmUgaXRlcmF0aW9ucy9wYXNzCisgICAgICAgICRpdGVyQ291bnQgPSBpbnQoLSRpdGVyQ291bnQgLyAkdGltZVBlckl0ZXIgKyAwLjUpOworCisgICAgICAgIG91dCgiPFA+Q2FsaWJyYXRpb24gcGFzcyAoJENBTElCUkFURSBzZWMpOiAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVswXSBtcywgIik7CisgICAgICAgIG91dCgiJGRhdGFbMl0gaXRlcmF0aW9ucyA9ICIpOworICAgICAgICBvdXQoZm9ybWF0U2Vjb25kcyg0LCAkdGltZVBlckl0ZXIpLCAiL2l0ZXJhdGlvbjxCUj5cbiIpOworICAgIH0KKyAgICAKKyAgICAjIHJ1biBwYXNzZXMKKyAgICBwcmludCAiTWVhc3VyaW5nICRpdGVyQ291bnQgaXRlcmF0aW9ucyB4ICROVU1QQVNTRVMgcGFzc2VzLi4uIjsKKyAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsICIkaXRlckNvdW50ICIgeCAkTlVNUEFTU0VTKTsKKyAgICBwcmludCAiZG9uZS5cbiI7CisgICAgbXkgQG1zID0gKCk7CisgICAgbXkgQGI7ICMgc2NyYXRjaAorICAgIGZvciBteSAkYSAoQHQpIHsKKyAgICAgICAgIyAkYS0+WzBdOiBtZXRob2QgbmFtZSwgY29ycmVzcG9uZHMgdG8gJG1ldGhvZAorICAgICAgICAjICRhLT5bMV06ICdiZWdpbicgZGF0YSwgPT0gJGl0ZXJDb3VudAorICAgICAgICAjICRhLT5bMl06ICdlbmQnIGRhdGEsIG9mIHRoZSBmb3JtIDxtcz4gPGV2ZW50c1Blckl0ZXI+CisgICAgICAgICMgJGEtPlszLi4uXTogZ2MgbWVzc2FnZXMgZnJvbSBKVk0gZHVyaW5nIHBhc3MKKyAgICAgICAgQGIgPSBzcGxpdCgvXHMrLywgJGEtPlsyXSk7CisgICAgICAgIHB1c2goQG1zLCAkYlswXSk7CisgICAgfQorICAgIG15ICRldmVudHNQZXJJdGVyID0gJGJbMV07CisKKyAgICBvdXQoIkl0ZXJhdGlvbnMgcGVyIHBhc3M6ICRpdGVyQ291bnQ8QlI+XG4iKTsKKyAgICBvdXQoIkV2ZW50cyBwZXIgaXRlcmF0aW9uOiAkZXZlbnRzUGVySXRlcjxCUj5cbiIpOworCisgICAgbXkgQG1zX3N0ciA9IEBtczsKKyAgICAkbXNfc3RyWzBdIC49ICIgKGRpc2NhcmRlZCkiIGlmIChAbXNfc3RyID4gMSk7CisgICAgb3V0KCJSYXcgdGltZXMgKG1zL3Bhc3MpOiAiLCBqb2luKCIsICIsIEBtc19zdHIpLCAiPEJSPlxuIik7CisKKyAgICAoJGl0ZXJDb3VudCwgJGV2ZW50c1Blckl0ZXIsIEBtcyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW52b2tlIGphdmEgdG8gcnVuICRURVNUQ0xBU1MsIHBhc3NpbmcgaXQgdGhlIGdpdmVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCBvciBpZiBuZWdhdGl2ZSwgdGhlIGR1cmF0aW9uCisjICAgICAgICBpbiBzZWNvbmRzLiAgSWYgbW9yZSB0aGFuIG9uIHBhc3MgaXMgZGVzaXJlZCwgcGFzcyBpbgorIyAgICAgICAgYSBzdHJpbmcsIGUuZy4sICIxMDAgMTAwIDEwMCIuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QsIHZhbHVlcyBpbiBoZXggZGlnaXRzIHdpdGhvdXQgMHgKKyMKKyMgQHJldHVybiBhbiBhcnJheSBvZiByZXN1bHRzLiAgRWFjaCByZXN1bHQgaXMgYW4gYXJyYXkgUkVGCisjICAgICAgICAgZGVzY3JpYmluZyBvbmUgcGFzcy4gIFRoZSBhcnJheSBSRUYgY29udGFpbnM6CisjICAgICAgICAgLT5bMF06IFRoZSBtZXRob2QgbmFtZSBhcyByZXBvcnRlZAorIyAgICAgICAgIC0+WzFdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gYmVnaW4gLi4uJyBsaW5lCisjICAgICAgICAgLT5bMl06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBlbmQgLi4uJyBsaW5lCisjICAgICAgICAgLT5bMy4uXTogR0MgbWVzc2FnZXMgZnJvbSB0aGUgSlZNLCBpZiBhbnkKKyMKK3N1YiBjYWxsSmF2YSB7CisgICAgbXkgJG1ldGhvZCA9IHNoaWZ0OworICAgIG15ICRwYXQgPSBzaGlmdDsKKyAgICBteSAkbiA9IHNoaWZ0OworCisgICAgbXkgJGNtZCA9ICJqYXZhIC1jcCBjbGFzc2VzICRURVNUQ0xBU1MgJG1ldGhvZCAkbiAtICRwYXQiOworICAgIHByaW50ICJbJGNtZF1cbiI7ICMgZm9yIGRlYnVnZ2luZworICAgIG9wZW4oUElQRSwgIiRjbWR8Iikgb3IgZGllICJDYW4ndCBydW4gXCIkY21kXCIiOworICAgIG15IEBvdXQ7CisgICAgd2hpbGUgKDxQSVBFPikgeworICAgICAgICBwdXNoKEBvdXQsICRfKTsKKyAgICB9CisgICAgY2xvc2UoUElQRSkgb3IgZGllICJKYXZhIGZhaWxlZDogXCIkY21kXCIiOworCisgICAgQG91dCA9IGdyZXAoIS9eXCMvLCBAb3V0KTsgICMgZmlsdGVyIG91dCBjb21tZW50cworCisgICAgI3ByaW50ICJbIiwgam9pbigiXG4iLCBAb3V0KSwgIl1cbiI7CisKKyAgICBteSBAcmVzdWx0czsKKyAgICBteSAkbWV0aG9kID0gJyc7CisgICAgbXkgJGRhdGEgPSBbXTsKKyAgICBmb3JlYWNoIChAb3V0KSB7CisgICAgICAgIG5leHQgdW5sZXNzICgvXFMvKTsKKworICAgICAgICBpZiAoL149XHMqKFx3KylccyooXHcrKVxzKiguKikvKSB7CisgICAgICAgICAgICBteSAoJG0sICRzdGF0ZSwgJGQpID0gKCQxLCAkMiwgJDMpOworICAgICAgICAgICAgI3ByaW50ICIkXyA9PiBbWyRtICRzdGF0ZSAkZGF0YV1dXG4iOworICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAnYmVnaW4nKSB7CisgICAgICAgICAgICAgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICRtOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAkZCk7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICcnKTsgIyBwbGFjZWhvbGRlciBmb3IgZW5kIGRhdGEKKyAgICAgICAgICAgIH0gZWxzaWYgKCRzdGF0ZSBlcSAnZW5kJykgeworICAgICAgICAgICAgICAgIGlmICgkbSBuZSAkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCBlbmQgZG9lcyBub3QgbWF0Y2g6ICRfIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGRhdGEtPlsxXSA9ICRkOyAjIGluc2VydCBlbmQgZGF0YSBhdCBbMV0KKyAgICAgICAgICAgICAgICAjcHJpbnQgIiMkbWV0aG9kOiIsIGpvaW4oIjsiLEAkZGF0YSksICJcbiI7CisgICAgICAgICAgICAgICAgdW5zaGlmdChAJGRhdGEsICRtZXRob2QpOyAjIGFkZCBtZXRob2QgdG8gc3RhcnQKKyAgICAgICAgICAgICAgICBwdXNoKEByZXN1bHRzLCAkZGF0YSk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICcnOworICAgICAgICAgICAgICAgICRkYXRhID0gW107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2lmICgvXlxbLykgeworICAgICAgICAgICAgaWYgKCRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJF8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAjIGlnbm9yZSBleHRyYW5lb3VzIEdDIG5vdGljZXMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZTogJF8iOworICAgICAgICB9CisgICAgfQorCisgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisKKyAgICBAcmVzdWx0czsKK30KKworI3wjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjfCMgRm9ybWF0IGEgY29uZmlkZW5jZSBpbnRlcnZhbCwgYXMgZ2l2ZW4gYnkgYSBEYXRhc2V0LiAgT3V0cHV0IGlzIGFzCisjfCMgYXMgZm9sbG93czoKKyN8IyAgIDI0MS4yMyAtIDI0MS45OCA9PiAyNDEuNSArLy0gMC4zCisjfCMgICAyNDEuMiAtIDI0My44ID0+IDI0MiArLy0gMQorI3wjICAgMjExLjAgLSAyNDEuMCA9PiAyMjYgKy8tIDE1IG9yPyAyMzAgKy8tIDIwCisjfCMgICAyMjAuMyAtIDIzNC4zID0+IDIyNyArLy0gNworI3wjICAgMjIwLjMgLSAzMDAuMyA9PiAyNjAgKy8tIDQwCisjfCMgICAyMjAuMyAtIDEwMDAgPT4gNjEwICsvLSAzOTAgb3I/IDYwMCArLy0gNDAwCisjfCMgICAwLjAyMiAtIDAuMDI0ID0+IDAuMDIzICsvLSAwLjAwMQorI3wjICAgMC4wMjIgLSAwLjAzMiA9PiAwLjAyNyArLy0gMC4wMDUKKyN8IyAgIDAuMDIyIC0gMS4wMDAgPT4gMC41ICsvLSAwLjUKKyN8IyBJbiBvdGhlciB3b3JkcywgdGFrZSBvbmUgc2lnbmlmaWNhbnQgZGlnaXQgb2YgdGhlIGVycm9yIHZhbHVlIGFuZAorI3wjIGRpc3BsYXkgdGhlIG1lYW4gdG8gdGhlIHNhbWUgcHJlY2lzaW9uLgorI3xzdWIgZm9ybWF0RGF0YXNldCB7CisjfCAgICBteSAkZHMgPSBzaGlmdDsKKyN8ICAgIG15ICRsb3dlciA9ICRkcy0+Z2V0TWVhbigpIC0gJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHVwcGVyID0gJGRzLT5nZXRNZWFuKCkgKyAkZHMtPmdldEVycm9yKCk7CisjfCAgICBteSAkc2NhbGUgPSAwOworI3wgICAgIyBGaW5kIGhvdyBtYW55IGluaXRpYWwgZGlnaXRzIGFyZSB0aGUgc2FtZQorI3wgICAgd2hpbGUgKCRsb3dlciA8IDEgfHwKKyN8ICAgICAgICAgICBpbnQoJGxvd2VyKSA9PSBpbnQoJHVwcGVyKSkgeworI3wgICAgICAgICRsb3dlciAqPSAxMDsKKyN8ICAgICAgICAkdXBwZXIgKj0gMTA7CisjfCAgICAgICAgJHNjYWxlKys7CisjfCAgICB9CisjfCAgICB3aGlsZSAoJGxvd2VyID49IDEwICYmCisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgLz0gMTA7CisjfCAgICAgICAgJHVwcGVyIC89IDEwOworI3wgICAgICAgICRzY2FsZS0tOworI3wgICAgfQorI3x9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbXVsdGlwbGllcgorIyBAcGFyYW0gdGltZSBpbiBzZWNvbmRzIHRvIGJlIGZvcm1hdHRlZAorIyBAb3B0aW9uYWwgZGVsdGEgaW4gc2Vjb25kcworIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMiIG9yICIyMyArLy0gMTAiLgorIworc3ViIGZvcm1hdE51bWJlciB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRtdWx0ID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRhKiRtdWx0KTsKKyAgICBpZiAoZGVmaW5lZCgkZGVsdGEpKSB7CisgICAgICAgIG15ICRkID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRkZWx0YSokbXVsdCk7CisgICAgICAgICMgcmVzdHJpY3QgUFJFQ0lTSU9OIG9mIGRlbHRhIHRvIHRoYXQgb2YgbWFpbiBudW1iZXIKKyAgICAgICAgaWYgKCRyZXN1bHQgPX4gL1wuKFxkKykvKSB7CisgICAgICAgICAgICAjIFRPRE8gbWFrZSB0aGlzIHdvcmsgZm9yIHZhbHVlcyB3aXRoIGFsbCBzaWduaWZpY2FudAorICAgICAgICAgICAgIyBkaWdpdHMgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwsIGUuZy4sIDEyMzQwMDAuCisKKyAgICAgICAgICAgICMgVE9ETyB0aGUgb3RoZXIgdGhpbmcgd3Jvbmcgd2l0aCB0aGlzIGlzIHRoYXQgaXQKKyAgICAgICAgICAgICMgaXNuJ3Qgcm91bmRpbmcgdGhlICRkZWx0YSBwcm9wZXJseS4gIEhhdmUgdG8gcHV0CisgICAgICAgICAgICAjIHRoaXMgbG9naWMgaW50byBmb3JtYXRTaWdEaWcoKS4KKyAgICAgICAgICAgIG15ICR4ID0gbGVuZ3RoKCQxKTsKKyAgICAgICAgICAgICRkID1+IHMvXC4oXGR7JHh9KVxkKy8uJDEvOworICAgICAgICB9CisgICAgICAgICRyZXN1bHQgLj0gIiAkUExVU19NSU5VUyAiIC4gJGQ7CisgICAgfQorICAgICRyZXN1bHQ7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgdGltZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIG1zIiBvciAiMjMgKy8tIDEwIG1zIi4KKyMKK3N1YiBmb3JtYXRTZWNvbmRzIHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKworICAgIG15IEBNVUxUID0gKDEgICAsIDFlMywgIDFlNiwgIDFlOSk7CisgICAgbXkgQFNVRkYgPSAoJ3MnICwgJ21zJywgJ3VzJywgJ25zJyk7CisKKyAgICAjIERldGVybWluZSBvdXIgc2NhbGUKKyAgICBteSAkaSA9IDA7CisgICAgKyskaSB3aGlsZSAoJGEqJE1VTFRbJGldIDwgMSAmJiAkaSA8IEBNVUxUKTsKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgJE1VTFRbJGldLCAkYSwgJGRlbHRhKSAuICcgJyAuICRTVUZGWyRpXTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBwZXJjZW50YWdlLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gdmFsdWUgdG8gYmUgZm9ybWF0dGVkLCBhcyBhIGZyYWN0aW9uLCBlLmcuIDAuNSBmb3IgNTAlCisjIEBvcHRpb25hbCBkZWx0YSwgYXMgYSBmcmFjdGlvbgorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMgJSIgb3IgIjIzICsvLSAxMCAlIi4KKyMKK3N1YiBmb3JtYXRQZXJjZW50IHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgMTAwLCAkYSwgJGRlbHRhKSAuICcgJSc7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyIHRvIG4gc2lnbmlmaWNhbnQgZGlnaXRzIHdpdGhvdXQgdXNpbmcgZXhwb25lbnRpYWwKKyMgbm90YXRpb24uCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBudW1iZXIgdG8gYmUgZm9ybWF0dGVkCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIxMjM0IiAiMTIuMzQiIG9yICIwLjAwMTIzNCIuICBJZgorIyAgICAgICAgIG51bWJlciB3YXMgbmVnYXRpdmUsIHByZWZpeGVkIGJ5ICctJy4KKyMKK3N1YiBmb3JtYXRTaWdEaWcgeworICAgIG15ICRuID0gc2hpZnQoKSAtIDE7CisgICAgbXkgJGEgPSBzaGlmdDsKKworICAgIGxvY2FsICRfID0gc3ByaW50ZigiJS4ke259ZSIsICRhKTsKKyAgICBteSAkc2lnbiA9IChzL14tLy8pID8gJy0nIDogJyc7CisKKyAgICBteSAkYV9lOworICAgIG15ICRyZXN1bHQ7CisgICAgaWYgKC9eKFxkKVwuKFxkKyllKFstK11cZCspJC8pIHsKKyAgICAgICAgbXkgKCRkLCAkZG4sICRlKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgJGFfZSA9ICRlOworICAgICAgICAkZCAuPSAkZG47CisgICAgICAgICRlKys7CisgICAgICAgICRkIC49ICcwJyB3aGlsZSAoJGUgPiBsZW5ndGgoJGQpKTsKKyAgICAgICAgd2hpbGUgKCRlIDwgMSkgeworICAgICAgICAgICAgJGUrKzsKKyAgICAgICAgICAgICRkID0gJzAnIC4gJGQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRlID09IGxlbmd0aCgkZCkpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuICRkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzaWduIC4gc3Vic3RyKCRkLCAwLCAkZSkgLiAnLicgLiBzdWJzdHIoJGQsICRlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgJF8iOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi91bmljb2Rlc2V0cGVyZi5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3VuaWNvZGVzZXRwZXJmLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1ODU4ODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi91bmljb2Rlc2V0cGVyZi5wbApAQCAtMCwwICsxLDQ3NSBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisKKyMhL3Vzci9sb2NhbC9iaW4vcGVybAorCit1c2Ugc3RyaWN0OworCisjIEFzc3VtZSB3ZSBhcmUgcnVubmluZyB3aXRoaW4gdGhlIGljdTRqIHJvb3QgZGlyZWN0b3J5Cit1c2UgbGliICdzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZic7CisKK3VzZSBEYXRhc2V0OworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgY2xhc3MKK215ICRURVNUQ0xBU1MgPSAnY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5Vbmljb2RlU2V0UGVyZic7CisKKyMgTWV0aG9kcyB0byBiZSB0ZXN0ZWQuICBFYWNoIHBhaXIgcmVwcmVzZW50cyBhIHRlc3QgbWV0aG9kIGFuZAorIyBhIGJhc2VsaW5lIG1ldGhvZCB3aGljaCBpcyB1c2VkIGZvciBjb21wYXJpc29uLgorbXkgQE1FVEhPRFMgID0gKFsnVW5pY29kZVNldEFkZCcsICdIYXNoU2V0QWRkJ10sCisgICAgICAgICAgICAgICAgWydVbmljb2RlU2V0Q29udGFpbnMnLCAnSGFzaFNldENvbnRhaW5zJ10sCisgICAgICAgICAgICAgICAgWydVbmljb2RlU2V0SXRlcmF0ZScsICdIYXNoU2V0SXRlcmF0ZSddKTsKKworIyBQYXR0ZXJucyB3aGljaCBkZWZpbmUgdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHVzZWQgZm9yIHRlc3RpbmcuCitteSBAUEFUVEVSTlMgPSAoJ1s6THQ6XScsICdbOkNuOl0nKTsKKworbXkgJENBTElCUkFURSA9IDI7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgaW5pdGlhbCBjYWxpYnJhdGlvbgorbXkgJERVUkFUSU9OID0gMTA7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgZWFjaCBwYXNzCitteSAkTlVNUEFTU0VTID0gNDsgIyBudW1iZXIgb2YgcGFzc2VzLiAgSWYgPiAxIHRoZW4gdGhlIGZpcnN0IHBhc3MKKyAgICAgICAgICAgICAgICAgICAjIGlzIGRpc2NhcmRlZCBhcyBhIEpJVCB3YXJtLXVwIHBhc3MuCisKK215ICRUQUJMRUFUVFIgPSAnQk9SREVSPSIxIiBDRUxMUEFERElORz0iNCIgQ0VMTFNQQUNJTkc9IjAiJzsKKworbXkgJFBMVVNfTUlOVVMgPSAiJnBsdXNtbjsiOworCitpZiAoJE5VTVBBU1NFUyA8IDMpIHsKKyAgICBkaWUgIk5lZWQgYXQgbGVhc3QgMyBwYXNzZXMuICBPbmUgaXMgZGlzY2FyZGVkIChKSVQgd2FybXVwKSBhbmQgbmVlZCB0d28gdG8gaGF2ZSAxIGRlZ3JlZSBvZiBmcmVlZG9tICh0IGRpc3RyaWJ1dGlvbikuIjsKK30KKworbXkgJE9VVDsgIyBzZWUgb3V0KCkKKworbWFpbigpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIC4uLgorc3ViIG1haW4geworICAgIG15ICRkYXRlID0gbG9jYWx0aW1lOworICAgIG15ICR0aXRsZSA9ICJJQ1U0SiBQZXJmb3JtYW5jZSBUZXN0ICRkYXRlIjsKKworICAgIG15ICRodG1sID0gJGRhdGU7CisgICAgJGh0bWwgPX4gcy86Ly9nOyAjICc6JyBpbGxlZ2FsCisgICAgJGh0bWwgPX4gcy9ccypcZCskLy87ICMgZGVsZXRlIHllYXIKKyAgICAkaHRtbCA9fiBzL15cdytccyovLzsgIyBkZWxldGUgZG93CisgICAgJGh0bWwgPSAicGVyZiAkaHRtbC5odG1sIjsKKworICAgIG9wZW4oSFRNTCwiPiRodG1sIikgb3IgZGllICJDYW4ndCB3cml0ZSB0byAkaHRtbDogJCEiOworCisgICAgcHJpbnQgSFRNTCA8PEVPRjsKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KKzxIVE1MPgorICAgPEhFQUQ+CisgICAgICA8VElUTEU+JHRpdGxlPC9USVRMRT4KKyAgIDwvSEVBRD4KKyAgIDxCT0RZPgorRU9GCisgICAgcHJpbnQgSFRNTCAiPEgxPiR0aXRsZTwvSDE+XG4iOworCisgICAgcHJpbnQgSFRNTCAiPEgyPiRURVNUQ0xBU1M8L0gyPlxuIjsKKworICAgIG15ICRyYXcgPSAiIjsKKworICAgIGZvciBteSAkbWV0aG9kUGFpciAoQE1FVEhPRFMpIHsKKworICAgICAgICBteSAkdGVzdE1ldGhvZCA9ICRtZXRob2RQYWlyLT5bMF07CisgICAgICAgIG15ICRiYXNlbGluZU1ldGhvZCA9ICRtZXRob2RQYWlyLT5bMV07CisKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PFRBQkxFICRUQUJMRUFUVFI+PFRSPjxURD5cbiI7CisgICAgICAgIHByaW50IEhUTUwgIjxQPjxCPiR0ZXN0TWV0aG9kIHZzLiAkYmFzZWxpbmVNZXRob2Q8L0I+PC9QPlxuIjsKKyAgICAgICAgCisgICAgICAgIHByaW50IEhUTUwgIjxQPjxUQUJMRSAkVEFCTEVBVFRSIEJHQ09MT1I9XCIjQ0NGRkZGXCI+XG4iOworICAgICAgICBwcmludCBIVE1MICI8VFI+PFREPlBhdHRlcm48L1REPjxURD4kdGVzdE1ldGhvZDwvVEQ+IjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFREPiRiYXNlbGluZU1ldGhvZDwvVEQ+PFREPlJhdGlvPC9URD48L1RSPlxuIjsKKworICAgICAgICAkT1VUID0gJyc7CisKKyAgICAgICAgZm9yIG15ICRwYXQgKEBQQVRURVJOUykgeworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFRSPjxURD4kcGF0PC9URD5cbiI7CisKKyAgICAgICAgICAgIG91dCgiPFA+PFRBQkxFICRUQUJMRUFUVFIgV0lEVEg9XCIxMDAlXCI+Iik7CisKKyAgICAgICAgICAgICMgbWVhc3VyZSB0aGUgdGVzdCBtZXRob2QKKyAgICAgICAgICAgIG91dCgiPFRSPjxURD4iKTsKKyAgICAgICAgICAgIHByaW50ICJcbiR0ZXN0TWV0aG9kICRwYXRcbiI7CisgICAgICAgICAgICBteSAkdCA9IG1lYXN1cmUyKCR0ZXN0TWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJHQtPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICAjIG1lYXN1cmUgYmFzZWxpbmUgbWV0aG9kCisgICAgICAgICAgICBvdXQoIjxUUj48VEQ+Iik7CisgICAgICAgICAgICBwcmludCAiXG5CZWdpbiAkYmFzZWxpbmVNZXRob2QgJHBhdFxuIjsKKyAgICAgICAgICAgIG15ICRiID0gbWVhc3VyZTIoJGJhc2VsaW5lTWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJGItPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICBvdXQoIjwvVEFCTEU+PC9QPiIpOworCisgICAgICAgICAgICAjIG91dHB1dCByYXRpbworICAgICAgICAgICAgbXkgJHIgPSAkdC0+ZGl2aWRlKCRiKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD48Qj4iLCBmb3JtYXRQZXJjZW50KDMsICRyLT5nZXRNZWFuKCksICRyLT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8L0I+PC9URD48L1RSPlxuIjsKKyAgICAgICAgfQorCisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKworICAgICAgICBwcmludCBIVE1MICI8UD5SYXcgZGF0YTo8L1A+XG4iOworICAgICAgICBwcmludCBIVE1MICRPVVQ7CisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKyAgICB9CisKKyAgICBwcmludCBIVE1MIDw8RU9GOworICAgPC9CT0RZPgorPC9IVE1MPgorRU9GCisgICAgY2xvc2UoSFRNTCkgb3IgZGllICJDYW4ndCBjbG9zZSAkaHRtbDogJCEiOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFwcGVuZCB0ZXh0IHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgJE9VVAorc3ViIG91dCB7CisgICAgJE9VVCAuPSBqb2luKCcnLCBAXyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXBwZW5kIHRleHQgdG8gdGhlIGdsb2JhbCB2YXJpYWJsZSAkT1VUCitzdWIgb3V0bG4geworICAgICRPVVQgLj0gam9pbignJywgQF8pIC4gIlxuIjsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBNZWFzdXJlIGEgZ2l2ZW4gdGVzdCBtZXRob2Qgd2l0aCBhIGdpdmUgdGVzdCBwYXR0ZXJuIHVzaW5nIHRoZQorIyBnbG9iYWwgcnVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjIEBwYXJhbSBpZiA+MCB0aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBwZXIgcGFzcy4gIElmIDwwIHRoZW4KKyMgICAgICAgIChuZWdhdGl2ZSBvZikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHBlciBwYXNzLgorIworIyBAcmV0dXJuIGEgRGF0YXNldCBvYmplY3QsIHNjYWxlZCBieSBpdGVyYXRpb25zIHBlciBwYXNzIGFuZAorIyAgICAgICAgIGV2ZW50cyBwZXIgaXRlcmF0aW9uLCB0byBnaXZlIHRpbWUgcGVyIGV2ZW50CisjCitzdWIgbWVhc3VyZTIgeworICAgIG15IEBkYXRhID0gbWVhc3VyZTEoQF8pOworICAgIG15ICRpdGVyUGVyUGFzcyA9IHNoaWZ0KEBkYXRhKTsKKyAgICBteSAkZXZlbnRQZXJJdGVyID0gc2hpZnQoQGRhdGEpOworCisgICAgc2hpZnQoQGRhdGEpIGlmIChAZGF0YSA+IDEpOyAjIGRpc2NhcmQgZmlyc3QgcnVuCisKKyAgICBteSAkZHMgPSBEYXRhc2V0LT5uZXcoQGRhdGEpOworICAgICRkcy0+c2V0U2NhbGUoMS4wZS0zIC8gKCRpdGVyUGVyUGFzcyAqICRldmVudFBlckl0ZXIpKTsKKyAgICAkZHM7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhcnJheSBvZjoKKyMgICAgICAgICBbMF0gaXRlcmF0aW9ucyBwZXIgcGFzcworIyAgICAgICAgIFsxXSBldmVudHMgcGVyIGl0ZXJhdGlvbgorIyAgICAgICAgIFsyLi5dIG1zIHJlcG9ydGVkIGZvciBlYWNoIHBhc3MsIGluIG9yZGVyCisjCitzdWIgbWVhc3VyZTEgeworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJGl0ZXJDb3VudCA9IHNoaWZ0OyAjIGFjdHVhbGx5IG1pZ2h0IGJlIC1zZWNvbmRzL3Bhc3MKKworICAgIG91dCgiPFA+TWVhc3VyaW5nICRtZXRob2QgdXNpbmcgJHBhdCwgIik7CisgICAgaWYgKCRpdGVyQ291bnQgPiAwKSB7CisgICAgICAgIG91dCgiJGl0ZXJDb3VudCBpdGVyYXRpb25zL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0KC0kaXRlckNvdW50LCAiIHNlY29uZHMvcGFzcywgJE5VTVBBU1NFUyBwYXNzZXM8L1A+XG4iKTsKKyAgICB9CisKKyAgICAjIGlzICRpdGVyQ291bnQgYWN0dWFsbHkgLXNlY29uZHM/CisgICAgaWYgKCRpdGVyQ291bnQgPCAwKSB7CisKKyAgICAgICAgIyBjYWxpYnJhdGU6IGVzdGltYXRlIG1zL2l0ZXJhdGlvbgorICAgICAgICBwcmludCAiQ2FsaWJyYXRpbmcuLi4iOworICAgICAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsIC0kQ0FMSUJSQVRFKTsKKyAgICAgICAgcHJpbnQgImRvbmUuXG4iOworCisgICAgICAgIG15IEBkYXRhID0gc3BsaXQoL1xzKy8sICR0WzBdLT5bMl0pOworICAgICAgICBteSAkdGltZVBlckl0ZXIgPSAxLjBlLTMgKiAkZGF0YVswXSAvICRkYXRhWzJdOworICAgIAorICAgICAgICAjIGRldGVybWluZSBpdGVyYXRpb25zL3Bhc3MKKyAgICAgICAgJGl0ZXJDb3VudCA9IGludCgtJGl0ZXJDb3VudCAvICR0aW1lUGVySXRlciArIDAuNSk7CisKKyAgICAgICAgb3V0KCI8UD5DYWxpYnJhdGlvbiBwYXNzICgkQ0FMSUJSQVRFIHNlYyk6ICIpOworICAgICAgICBvdXQoIiRkYXRhWzBdIG1zLCAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVsyXSBpdGVyYXRpb25zID0gIik7CisgICAgICAgIG91dChmb3JtYXRTZWNvbmRzKDQsICR0aW1lUGVySXRlciksICIvaXRlcmF0aW9uPEJSPlxuIik7CisgICAgfQorICAgIAorICAgICMgcnVuIHBhc3NlcworICAgIHByaW50ICJNZWFzdXJpbmcgJGl0ZXJDb3VudCBpdGVyYXRpb25zIHggJE5VTVBBU1NFUyBwYXNzZXMuLi4iOworICAgIG15IEB0ID0gY2FsbEphdmEoJG1ldGhvZCwgJHBhdCwgIiRpdGVyQ291bnQgIiB4ICROVU1QQVNTRVMpOworICAgIHByaW50ICJkb25lLlxuIjsKKyAgICBteSBAbXMgPSAoKTsKKyAgICBteSBAYjsgIyBzY3JhdGNoCisgICAgZm9yIG15ICRhIChAdCkgeworICAgICAgICAjICRhLT5bMF06IG1ldGhvZCBuYW1lLCBjb3JyZXNwb25kcyB0byAkbWV0aG9kCisgICAgICAgICMgJGEtPlsxXTogJ2JlZ2luJyBkYXRhLCA9PSAkaXRlckNvdW50CisgICAgICAgICMgJGEtPlsyXTogJ2VuZCcgZGF0YSwgb2YgdGhlIGZvcm0gPG1zPiA8ZXZlbnRzUGVySXRlcj4KKyAgICAgICAgIyAkYS0+WzMuLi5dOiBnYyBtZXNzYWdlcyBmcm9tIEpWTSBkdXJpbmcgcGFzcworICAgICAgICBAYiA9IHNwbGl0KC9ccysvLCAkYS0+WzJdKTsKKyAgICAgICAgcHVzaChAbXMsICRiWzBdKTsKKyAgICB9CisgICAgbXkgJGV2ZW50c1Blckl0ZXIgPSAkYlsxXTsKKworICAgIG91dCgiSXRlcmF0aW9ucyBwZXIgcGFzczogJGl0ZXJDb3VudDxCUj5cbiIpOworICAgIG91dCgiRXZlbnRzIHBlciBpdGVyYXRpb246ICRldmVudHNQZXJJdGVyPEJSPlxuIik7CisKKyAgICBteSBAbXNfc3RyID0gQG1zOworICAgICRtc19zdHJbMF0gLj0gIiAoZGlzY2FyZGVkKSIgaWYgKEBtc19zdHIgPiAxKTsKKyAgICBvdXQoIlJhdyB0aW1lcyAobXMvcGFzcyk6ICIsIGpvaW4oIiwgIiwgQG1zX3N0ciksICI8QlI+XG4iKTsKKworICAgICgkaXRlckNvdW50LCAkZXZlbnRzUGVySXRlciwgQG1zKTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBJbnZva2UgamF2YSB0byBydW4gJFRFU1RDTEFTUywgcGFzc2luZyBpdCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMsIG9yIGlmIG5lZ2F0aXZlLCB0aGUgZHVyYXRpb24KKyMgICAgICAgIGluIHNlY29uZHMuICBJZiBtb3JlIHRoYW4gb24gcGFzcyBpcyBkZXNpcmVkLCBwYXNzIGluCisjICAgICAgICBhIHN0cmluZywgZS5nLiwgIjEwMCAxMDAgMTAwIi4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIworIyBAcmV0dXJuIGFuIGFycmF5IG9mIHJlc3VsdHMuICBFYWNoIHJlc3VsdCBpcyBhbiBhcnJheSBSRUYKKyMgICAgICAgICBkZXNjcmliaW5nIG9uZSBwYXNzLiAgVGhlIGFycmF5IFJFRiBjb250YWluczoKKyMgICAgICAgICAtPlswXTogVGhlIG1ldGhvZCBuYW1lIGFzIHJlcG9ydGVkCisjICAgICAgICAgLT5bMV06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBiZWdpbiAuLi4nIGxpbmUKKyMgICAgICAgICAtPlsyXTogVGhlIHBhcmFtcyBvbiB0aGUgJz0gPG1ldGg+IGVuZCAuLi4nIGxpbmUKKyMgICAgICAgICAtPlszLi5dOiBHQyBtZXNzYWdlcyBmcm9tIHRoZSBKVk0sIGlmIGFueQorIworc3ViIGNhbGxKYXZhIHsKKyAgICBteSAkbWV0aG9kID0gc2hpZnQ7CisgICAgbXkgJHBhdCA9IHNoaWZ0OworICAgIG15ICRuID0gc2hpZnQ7CisKKyAgICBteSAkY21kID0gImphdmEgLWNwIGNsYXNzZXMgJFRFU1RDTEFTUyAkbWV0aG9kICRuICRwYXQiOworICAgICMgcHJpbnQgIlskY21kXVxuIjsgIyBmb3IgZGVidWdnaW5nCisgICAgb3BlbihQSVBFLCAiJGNtZHwiKSBvciBkaWUgIkNhbid0IHJ1biBcIiRjbWRcIiI7CisgICAgbXkgQG91dDsKKyAgICB3aGlsZSAoPFBJUEU+KSB7CisgICAgICAgIHB1c2goQG91dCwgJF8pOworICAgIH0KKyAgICBjbG9zZShQSVBFKSBvciBkaWUgIkphdmEgZmFpbGVkOiBcIiRjbWRcIiI7CisKKyAgICBAb3V0ID0gZ3JlcCghL15cIy8sIEBvdXQpOyAgIyBmaWx0ZXIgb3V0IGNvbW1lbnRzCisKKyAgICAjcHJpbnQgIlsiLCBqb2luKCJcbiIsIEBvdXQpLCAiXVxuIjsKKworICAgIG15IEByZXN1bHRzOworICAgIG15ICRtZXRob2QgPSAnJzsKKyAgICBteSAkZGF0YSA9IFtdOworICAgIGZvcmVhY2ggKEBvdXQpIHsKKyAgICAgICAgbmV4dCB1bmxlc3MgKC9cUy8pOworCisgICAgICAgIGlmICgvXj1ccyooXHcrKVxzKihcdyspXHMqKC4qKS8pIHsKKyAgICAgICAgICAgIG15ICgkbSwgJHN0YXRlLCAkZCkgPSAoJDEsICQyLCAkMyk7CisgICAgICAgICAgICAjcHJpbnQgIiRfID0+IFtbJG0gJHN0YXRlICRkYXRhXV1cbiI7CisgICAgICAgICAgICBpZiAoJHN0YXRlIGVxICdiZWdpbicpIHsKKyAgICAgICAgICAgICAgICBkaWUgIiRtZXRob2Qgd2FzIGJlZ3VuIGJ1dCBub3QgZmluaXNoZWQiIGlmICgkbWV0aG9kKTsKKyAgICAgICAgICAgICAgICAkbWV0aG9kID0gJG07CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICRkKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJycpOyAjIHBsYWNlaG9sZGVyIGZvciBlbmQgZGF0YQorICAgICAgICAgICAgfSBlbHNpZiAoJHN0YXRlIGVxICdlbmQnKSB7CisgICAgICAgICAgICAgICAgaWYgKCRtIG5lICRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICAgICAgZGllICIkbWV0aG9kIGVuZCBkb2VzIG5vdCBtYXRjaDogJF8iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkZGF0YS0+WzFdID0gJGQ7ICMgaW5zZXJ0IGVuZCBkYXRhIGF0IFsxXQorICAgICAgICAgICAgICAgICNwcmludCAiIyRtZXRob2Q6Iiwgam9pbigiOyIsQCRkYXRhKSwgIlxuIjsKKyAgICAgICAgICAgICAgICB1bnNoaWZ0KEAkZGF0YSwgJG1ldGhvZCk7ICMgYWRkIG1ldGhvZCB0byBzdGFydAorICAgICAgICAgICAgICAgIHB1c2goQHJlc3VsdHMsICRkYXRhKTsKKyAgICAgICAgICAgICAgICAkbWV0aG9kID0gJyc7CisgICAgICAgICAgICAgICAgJGRhdGEgPSBbXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZTogJF8iOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzaWYgKC9eXFsvKSB7CisgICAgICAgICAgICBpZiAoJG1ldGhvZCkgeworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAkXyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICMgaWdub3JlIGV4dHJhbmVvdXMgR0Mgbm90aWNlcworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkaWUgIkNhbid0IHBhcnNlOiAkXyI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkaWUgIiRtZXRob2Qgd2FzIGJlZ3VuIGJ1dCBub3QgZmluaXNoZWQiIGlmICgkbWV0aG9kKTsKKworICAgIEByZXN1bHRzOworfQorCisjfCMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyN8IyBGb3JtYXQgYSBjb25maWRlbmNlIGludGVydmFsLCBhcyBnaXZlbiBieSBhIERhdGFzZXQuICBPdXRwdXQgaXMgYXMKKyN8IyBhcyBmb2xsb3dzOgorI3wjICAgMjQxLjIzIC0gMjQxLjk4ID0+IDI0MS41ICsvLSAwLjMKKyN8IyAgIDI0MS4yIC0gMjQzLjggPT4gMjQyICsvLSAxCisjfCMgICAyMTEuMCAtIDI0MS4wID0+IDIyNiArLy0gMTUgb3I/IDIzMCArLy0gMjAKKyN8IyAgIDIyMC4zIC0gMjM0LjMgPT4gMjI3ICsvLSA3CisjfCMgICAyMjAuMyAtIDMwMC4zID0+IDI2MCArLy0gNDAKKyN8IyAgIDIyMC4zIC0gMTAwMCA9PiA2MTAgKy8tIDM5MCBvcj8gNjAwICsvLSA0MDAKKyN8IyAgIDAuMDIyIC0gMC4wMjQgPT4gMC4wMjMgKy8tIDAuMDAxCisjfCMgICAwLjAyMiAtIDAuMDMyID0+IDAuMDI3ICsvLSAwLjAwNQorI3wjICAgMC4wMjIgLSAxLjAwMCA9PiAwLjUgKy8tIDAuNQorI3wjIEluIG90aGVyIHdvcmRzLCB0YWtlIG9uZSBzaWduaWZpY2FudCBkaWdpdCBvZiB0aGUgZXJyb3IgdmFsdWUgYW5kCisjfCMgZGlzcGxheSB0aGUgbWVhbiB0byB0aGUgc2FtZSBwcmVjaXNpb24uCisjfHN1YiBmb3JtYXREYXRhc2V0IHsKKyN8ICAgIG15ICRkcyA9IHNoaWZ0OworI3wgICAgbXkgJGxvd2VyID0gJGRzLT5nZXRNZWFuKCkgLSAkZHMtPmdldEVycm9yKCk7CisjfCAgICBteSAkdXBwZXIgPSAkZHMtPmdldE1lYW4oKSArICRkcy0+Z2V0RXJyb3IoKTsKKyN8ICAgIG15ICRzY2FsZSA9IDA7CisjfCAgICAjIEZpbmQgaG93IG1hbnkgaW5pdGlhbCBkaWdpdHMgYXJlIHRoZSBzYW1lCisjfCAgICB3aGlsZSAoJGxvd2VyIDwgMSB8fAorI3wgICAgICAgICAgIGludCgkbG93ZXIpID09IGludCgkdXBwZXIpKSB7CisjfCAgICAgICAgJGxvd2VyICo9IDEwOworI3wgICAgICAgICR1cHBlciAqPSAxMDsKKyN8ICAgICAgICAkc2NhbGUrKzsKKyN8ICAgIH0KKyN8ICAgIHdoaWxlICgkbG93ZXIgPj0gMTAgJiYKKyN8ICAgICAgICAgICBpbnQoJGxvd2VyKSA9PSBpbnQoJHVwcGVyKSkgeworI3wgICAgICAgICRsb3dlciAvPSAxMDsKKyN8ICAgICAgICAkdXBwZXIgLz0gMTA7CisjfCAgICAgICAgJHNjYWxlLS07CisjfCAgICB9CisjfH0KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBudW1iZXIsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBtdWx0aXBsaWVyCisjIEBwYXJhbSB0aW1lIGluIHNlY29uZHMgdG8gYmUgZm9ybWF0dGVkCisjIEBvcHRpb25hbCBkZWx0YSBpbiBzZWNvbmRzCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyIgb3IgIjIzICsvLSAxMCIuCisjCitzdWIgZm9ybWF0TnVtYmVyIHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJG11bHQgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorICAgIAorICAgIG15ICRyZXN1bHQgPSBmb3JtYXRTaWdEaWcoJHNpZ2RpZywgJGEqJG11bHQpOworICAgIGlmIChkZWZpbmVkKCRkZWx0YSkpIHsKKyAgICAgICAgbXkgJGQgPSBmb3JtYXRTaWdEaWcoJHNpZ2RpZywgJGRlbHRhKiRtdWx0KTsKKyAgICAgICAgIyByZXN0cmljdCBQUkVDSVNJT04gb2YgZGVsdGEgdG8gdGhhdCBvZiBtYWluIG51bWJlcgorICAgICAgICBpZiAoJHJlc3VsdCA9fiAvXC4oXGQrKS8pIHsKKyAgICAgICAgICAgICMgVE9ETyBtYWtlIHRoaXMgd29yayBmb3IgdmFsdWVzIHdpdGggYWxsIHNpZ25pZmljYW50CisgICAgICAgICAgICAjIGRpZ2l0cyB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCwgZS5nLiwgMTIzNDAwMC4KKworICAgICAgICAgICAgIyBUT0RPIHRoZSBvdGhlciB0aGluZyB3cm9uZyB3aXRoIHRoaXMgaXMgdGhhdCBpdAorICAgICAgICAgICAgIyBpc24ndCByb3VuZGluZyB0aGUgJGRlbHRhIHByb3Blcmx5LiAgSGF2ZSB0byBwdXQKKyAgICAgICAgICAgICMgdGhpcyBsb2dpYyBpbnRvIGZvcm1hdFNpZ0RpZygpLgorICAgICAgICAgICAgbXkgJHggPSBsZW5ndGgoJDEpOworICAgICAgICAgICAgJGQgPX4gcy9cLihcZHskeH0pXGQrLy4kMS87CisgICAgICAgIH0KKyAgICAgICAgJHJlc3VsdCAuPSAiICRQTFVTX01JTlVTICIgLiAkZDsKKyAgICB9CisgICAgJHJlc3VsdDsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSB0aW1lLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gdGltZSBpbiBzZWNvbmRzIHRvIGJlIGZvcm1hdHRlZAorIyBAb3B0aW9uYWwgZGVsdGEgaW4gc2Vjb25kcworIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMgbXMiIG9yICIyMyArLy0gMTAgbXMiLgorIworc3ViIGZvcm1hdFNlY29uZHMgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorCisgICAgbXkgQE1VTFQgPSAoMSAgICwgMWUzLCAgMWU2LCAgMWU5KTsKKyAgICBteSBAU1VGRiA9ICgncycgLCAnbXMnLCAndXMnLCAnbnMnKTsKKworICAgICMgRGV0ZXJtaW5lIG91ciBzY2FsZQorICAgIG15ICRpID0gMDsKKyAgICArKyRpIHdoaWxlICgkYSokTVVMVFskaV0gPCAxICYmICRpIDwgQE1VTFQpOworICAgIAorICAgIGZvcm1hdE51bWJlcigkc2lnZGlnLCAkTVVMVFskaV0sICRhLCAkZGVsdGEpIC4gJyAnIC4gJFNVRkZbJGldOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIHBlcmNlbnRhZ2UsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSB2YWx1ZSB0byBiZSBmb3JtYXR0ZWQsIGFzIGEgZnJhY3Rpb24sIGUuZy4gMC41IGZvciA1MCUKKyMgQG9wdGlvbmFsIGRlbHRhLCBhcyBhIGZyYWN0aW9uCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyAlIiBvciAiMjMgKy8tIDEwICUiLgorIworc3ViIGZvcm1hdFBlcmNlbnQgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorICAgIAorICAgIGZvcm1hdE51bWJlcigkc2lnZGlnLCAxMDAsICRhLCAkZGVsdGEpIC4gJyAlJzsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBudW1iZXIgdG8gbiBzaWduaWZpY2FudCBkaWdpdHMgd2l0aG91dCB1c2luZyBleHBvbmVudGlhbAorIyBub3RhdGlvbi4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIG51bWJlciB0byBiZSBmb3JtYXR0ZWQKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjEyMzQiICIxMi4zNCIgb3IgIjAuMDAxMjM0Ii4gIElmCisjICAgICAgICAgbnVtYmVyIHdhcyBuZWdhdGl2ZSwgcHJlZml4ZWQgYnkgJy0nLgorIworc3ViIGZvcm1hdFNpZ0RpZyB7CisgICAgbXkgJG4gPSBzaGlmdCgpIC0gMTsKKyAgICBteSAkYSA9IHNoaWZ0OworCisgICAgbG9jYWwgJF8gPSBzcHJpbnRmKCIlLiR7bn1lIiwgJGEpOworICAgIG15ICRzaWduID0gKHMvXi0vLykgPyAnLScgOiAnJzsKKworICAgIG15ICRhX2U7CisgICAgbXkgJHJlc3VsdDsKKyAgICBpZiAoL14oXGQpXC4oXGQrKWUoWy0rXVxkKykkLykgeworICAgICAgICBteSAoJGQsICRkbiwgJGUpID0gKCQxLCAkMiwgJDMpOworICAgICAgICAkYV9lID0gJGU7CisgICAgICAgICRkIC49ICRkbjsKKyAgICAgICAgJGUrKzsKKyAgICAgICAgJGQgLj0gJzAnIHdoaWxlICgkZSA+IGxlbmd0aCgkZCkpOworICAgICAgICB3aGlsZSAoJGUgPCAxKSB7CisgICAgICAgICAgICAkZSsrOworICAgICAgICAgICAgJGQgPSAnMCcgLiAkZDsKKyAgICAgICAgfQorICAgICAgICBpZiAoJGUgPT0gbGVuZ3RoKCRkKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzaWduIC4gJGQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHNpZ24gLiBzdWJzdHIoJGQsIDAsICRlKSAuICcuJyAuIHN1YnN0cigkZCwgJGUpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGllICJDYW4ndCBwYXJzZSAkXyI7CisgICAgfQorICAgICRyZXN1bHQ7Cit9CisKKyNlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JSZWdUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yUmVnVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZWM5NmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yUmVnVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yUmVnVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBCcmVha0l0ZXJhdG9yUmVnVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnVW5yZWcoKSB7CisgICAgTG9jYWxlIHRoYWlsYW5kX2xvY2FsZSA9IG5ldyBMb2NhbGUoInRoIiwgIlRIIiwgIiIpOworICAgIExvY2FsZSBmb29fbG9jYWxlID0gbmV3IExvY2FsZSgiZnUiLCAiRlUiLCAiRk9PIik7CisgICAgQnJlYWtJdGVyYXRvciBqd2JpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLkpBUEFOKTsKKyAgICBCcmVha0l0ZXJhdG9yIHV3YmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIEJyZWFrSXRlcmF0b3IgdXNiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIEJyZWFrSXRlcmF0b3IgdHdiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHRoYWlsYW5kX2xvY2FsZSk7CisgICAgQnJlYWtJdGVyYXRvciByd2JpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IExvY2FsZSgiIiwgIiIsICIiKSk7CisKKyAgICBCcmVha0l0ZXJhdG9yIHNiaSA9IChCcmVha0l0ZXJhdG9yKXVzYmkuY2xvbmUoKTsKKyAgICAvLyB0b2RvOiB0aGlzIHdpbGwgY2F1c2UgdGhlIHRlc3QgdG8gZmFpbCwgbm8gd2F5IHRvIHNldCBhIGJyZWFraXRlcmF0b3IgdG8gbnVsbCB0ZXh0IHNvIGNhbid0IGZpeCB5ZXQuCisgICAgLy8gU3RyaW5nIHRleHQgPSAiVGhpcyBpcyBzb21lIHRlc3QsIGJ5IGdvbGx5LiBCb3ksIHRoZXkgZG9uJ3QgbWFrZSB0ZXN0cyBsaWtlIHRoZXkgdXNlZCB0bywgZG8gdGhleT8gIFRoaXMgaGVyZSB0ZXN0IGFpbid0IHdvcnRoICQyLjUwLiAgTm9wZS4iOworICAgIC8vIHNiaS5zZXRUZXh0KHRleHQpOworCisgICAgYXNzZXJ0VHJ1ZSghQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKCIiKSwgInVucmVnaXN0ZXIgYmVmb3JlIHJlZ2lzdGVyIik7IC8vIGNvdmVyYWdlCisKKyAgICBPYmplY3Qga2V5MCA9IEJyZWFrSXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSgoQnJlYWtJdGVyYXRvcil0d2JpLmNsb25lKCksIGZvb19sb2NhbGUsIEJyZWFrSXRlcmF0b3IuS0lORF9XT1JEKTsKKyAgICBPYmplY3Qga2V5MSA9IEJyZWFrSXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZShzYmksIExvY2FsZS5VUywgQnJlYWtJdGVyYXRvci5LSU5EX1dPUkQpOworICAgIE9iamVjdCBrZXkyID0gQnJlYWtJdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKChCcmVha0l0ZXJhdG9yKXR3YmkuY2xvbmUoKSwgTG9jYWxlLlVTLCBCcmVha0l0ZXJhdG9yLktJTkRfV09SRCk7CisgICAgCisgICAgeworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QwID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDIgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MyA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHRoYWlsYW5kX2xvY2FsZSk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDQgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShmb29fbG9jYWxlKTsKKworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MCwgandiaSwgImphcGFuIHdvcmQgPT0gamFwYW4gd29yZCIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MSwgdHdiaSwgInVzIHdvcmQgPT0gdGhhaSB3b3JkIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QyLCB1c2JpLCAidXMgc2VudGVuY2UgPT0gdXMgc2VudGVuY2UiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDMsIHR3YmksICJ0aGFpIHdvcmQgPT0gdGhhaSB3b3JkIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3Q0LCB0d2JpLCAiZm9vIHdvcmQgPT0gdGhhaSB3b3JkIik7CisgICAgfQorCisgICAgTG9jYWxlW10gbG9jYWxlcyA9IEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIAorICAgIGFzc2VydFRydWUoQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKGtleTIpLCAidW5yZWdpc3RlciB1cyB3b3JkICh0aGFpIHdvcmQpIik7CisgICAgYXNzZXJ0VHJ1ZSghQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKGtleTIpLCAidW5yZWdpc3RlciBzZWNvbmQgdGltZSIpOworICAgIGJvb2xlYW4gZXJyb3IgPSBmYWxzZTsKKyAgICB0cnkgeworICAgICAgICBCcmVha0l0ZXJhdG9yLnVucmVnaXN0ZXIobnVsbCk7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJvciA9IHRydWU7CisgICAgfQorCisgICAgYXNzZXJ0VHJ1ZShlcnJvciwgInVucmVnaXN0ZXIgbnVsbCIpOworCisgICAgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBzY2kgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpLmdldFRleHQoKTsKKyAgICAgICAgaW50IGxlbiA9IHNjaS5nZXRFbmRJbmRleCgpIC0gc2NpLmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwobGVuLCAwLCAidXMgd29yZCB0ZXh0OiAiICsgZ2V0U3RyaW5nKHNjaSkpOworICAgIH0KKworICAgIGFzc2VydFRydWUoQXJyYXlzLmFzTGlzdChCcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKSkuY29udGFpbnMoZm9vX2xvY2FsZSksICJmb29fbG9jYWxlIik7CisgICAgYXNzZXJ0VHJ1ZShCcmVha0l0ZXJhdG9yLnVucmVnaXN0ZXIoa2V5MCksICJ1bnJlZ2lzdGVyIGZvbyB3b3JkICh0aGFpIHdvcmQpIik7CisgICAgYXNzZXJ0VHJ1ZSghQXJyYXlzLmFzTGlzdChCcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKSkuY29udGFpbnMoZm9vX2xvY2FsZSksICJubyBmb29fbG9jYWxlIik7CisgICAgYXNzZXJ0RXF1YWwoQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLlVTKSwgdXNiaSwgInVzIHdvcmQgPT0gdXMgc2VudGVuY2UiKTsKKyAgICAKKyAgICBhc3NlcnRUcnVlKEJyZWFrSXRlcmF0b3IudW5yZWdpc3RlcihrZXkxKSwgInVucmVnaXN0ZXIgdXMgd29yZCAodXMgc2VudGVuY2UpIik7CisgICAgeworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QwID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDIgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MyA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHRoYWlsYW5kX2xvY2FsZSk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDQgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShmb29fbG9jYWxlKTsKKworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MCwgandiaSwgImphcGFuZXNlIHdvcmQgYnJlYWsiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDEsIHV3YmksICJ1cyBzZW50ZW5jZS13b3JkIGJyZWFrIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QyLCB1c2JpLCAidXMgc2VudGVuY2UgYnJlYWsiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDMsIHR3YmksICJ0aGFpIHdvcmQgYnJlYWsiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDQsIHJ3YmksICJyb290IHdvcmQgYnJlYWsiKTsKKworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBzY2kgPSB0ZXN0MS5nZXRUZXh0KCk7CisgICAgICAgIGludCBsZW4gPSBzY2kuZ2V0RW5kSW5kZXgoKSAtIHNjaS5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgIGFzc2VydEVxdWFsKGxlbiwgMCwgInVzIHNlbnRlbmNlLXdvcmQgYnJlYWsgdGV4dDogIiArIGdldFN0cmluZyhzY2kpKTsKKyAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydEVxdWFsKE9iamVjdCBsaHMsIE9iamVjdCByaHMsIFN0cmluZyBtc2cpIHsKKyAgICBtc2cobXNnLCBsaHMuZXF1YWxzKHJocykgPyBMT0cgOiBFUlIsIHRydWUsIHRydWUpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhc3NlcnRFcXVhbChpbnQgbGhzLCBpbnQgcmhzLCBTdHJpbmcgbXNnKSB7CisgICAgbXNnKG1zZywgbGhzID09IHJocyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydFRydWUoYm9vbGVhbiBhcmcsIFN0cmluZyBtc2cpIHsKKyAgICBtc2cobXNnLCBhcmcgPyBMT0cgOiBFUlIsIHRydWUsIHRydWUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRTdHJpbmcoQ2hhcmFjdGVySXRlcmF0b3IgY2kpIHsKKyAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihjaS5nZXRFbmRJbmRleCgpIC0gY2kuZ2V0QmVnaW5JbmRleCgpICsgMik7CisgICAgYnVmLmFwcGVuZCgiJyIpOworICAgIGZvciAoY2hhciBjID0gY2kuZmlyc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjID0gY2kubmV4dCgpKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgfQorICAgIGJ1Zi5hcHBlbmQoIiciKTsKKyAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JSdWxlc19lbl9VU19URVNULmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmQzNTNhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JSdWxlc19lbl9VU19URVNULmphdmEKQEAgLTAsMCArMSwyMTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmk7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFRoaXMgcmVzb3VyY2UgYnVuZGxlIGlzIGluY2x1ZGVkIGZvciB0ZXN0aW5nIGFuZCBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzIG9ubHkuCisgKiBJdCBhcHBsaWVzIHRoZSBkaWN0aW9uYXJ5LWJhc2VkIGFsZ29yaXRobSB0byBFbmdsaXNoIHRleHQgdGhhdCBoYXMgaGFkIGFsbCB0aGUKKyAqIHNwYWNlcyByZW1vdmVkLiAgT25jZSB3ZSBoYXZlIGdvb2QgdGVzdCBjYXNlcyBmb3IgVGhhaSwgd2Ugd2lsbCByZXBsYWNlIHRoaXMKKyAqIHdpdGggZ29vZCByZXNvdXJjZSBkYXRhIChhbmQgYSBnb29kIGRpY3Rpb25hcnkgZmlsZSkgZm9yIFRoYWkKKyAqLworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JSdWxlc19lbl9VU19URVNUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9OQU1FID0gIi9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpL2VuZ2xpc2guZGljdCI7CisKKyAgICAvLyBjYWxsaW5nIGNvZGUgd2lsbCBoYW5kbGUgY2FzZSB3aGVyZSBkaWN0aW9uYXJ5IGRvZXMgbm90IGV4aXN0CisKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIC8vIG5hbWVzIG9mIGNsYXNzZXMgdG8gaW5zdGFudGlhdGUgZm9yIHRoZSBkaWZmZXJlbnQga2luZHMgb2YgYnJlYWsKKyAgICAgICAgICAgIC8vIGl0ZXJhdG9yLiAgTm90aWNlIHdlJ3JlIG5vdyB1c2luZyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgICAgIHsgICAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgLy8gd29yZC1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsCisgICAgICAgICAgICAgICAgICAgIC8vIGxpbmUtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiIH0gLy8gc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSB3b3JkLWJyZWFraW5nIHJ1bGVzIGFzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIC8vIHJlc291cmNlLCBleGNlcHQgdGhhdCB0aGUgTGF0aW4gbGV0dGVycywgYXBvc3Ryb3BoZSwgYW5kIGh5cGhlbiBhcmUKKyAgICAgICAgICAgIC8vIHNwZWNpZmllZCBhcyBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiV29yZEJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgLy8gYWxsIG9mIHdoaWNoIHNob3VsZCBub3QgaW5mbHVlbmNlIHRoZSBhbGdvcml0aG0KKyAgICAgICAgICAgICAgICAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIKKworICAgICAgICAgICAgICAgIC8vIGxvd2VyIGFuZCB1cHBlciBjYXNlIFJvbWFuIGxldHRlcnMsIGFwb3N0cm9waHkgYW5kIGRhc2ggYXJlCisgICAgICAgICAgICAgICAgLy8gaW4gdGhlIEVuZ2xpc2ggZGljdGlvbmFyeQorICAgICAgICAgICAgICAgICsiJF9kaWN0aW9uYXJ5Xz1bYS16QS1aXFwnXFwtXTsiCisKKyAgICAgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAorICAgICAgICAgICAgICAgIC8vIG90aGVyIGxldHRlcnMsIGFuZCBkaWdpdHMKKyAgICAgICAgICAgICAgICArIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRrYW5qaT1bXHUzMDA1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRdOyIKKyAgICAgICAgICAgICAgICAgICAgKyAiJGthdGE9W1x1MzA5OS1cdTMwOWNcdTMwYTEtXHUzMGZlXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRoaXJhPVtcdTMwNDEtXHUzMDllXHUzMGZjXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRsZXQ9W1tbOkw6XVs6TWM6XV0tWyRrYW5qaSRrYXRhJGhpcmFdXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRkZ3Q9WzpOOl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIGRhc2hlcywgYXBvc3Ryb3BoZXMsIGFuZCBxdW90YXRpb24gbWFya3MKKyAgICAgICAgICAgICAgICArIiRtaWRfd29yZD1bWzpQZDpdXHUwMGFkXHUyMDI3XFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKKyAgICAgICAgICAgICAgICAvLyBkZWNpbWFsIHBvaW50CisgICAgICAgICAgICAgICAgKyIkbWlkX251bT1bXFxcIlxcXCdcXCxcdTA2NmJcXC5dOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgorICAgICAgICAgICAgICAgICsiJHByZV9udW09W1tbOlNjOl0tW1x1MDBhMl1dXFwjXFwuXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGVyY2VudCwgcGVyLXRob3VzYW5kLCBwZXItdGVuLXRob3VzYW5kLCBhbmQgQXJhYmljIHBlcmNlbnQKKyAgICAgICAgICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCisgICAgICAgICAgICAgICAgKyIkcG9zdF9udW09W1xcJVxcJlx1MDBhMlx1MDY2YVx1MjAzMFx1MjAzMV07IgorCisgICAgICAgICAgICAgICAgLy8gbGluZSBzZXBhcmF0b3JzOiBjdXJyZW50bHkgTEYsIEZGLCBQUywgYW5kIExTCisgICAgICAgICAgICAgICAgKyIkbHM9W1xuXHUwMDBjXHUyMDI4XHUyMDI5XTsiCisKKyAgICAgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBhbGwgc3BhY2Ugc2VwYXJhdG9ycyBhbmQgdGhlIHRhYiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArIiR3cz1bWzpaczpdXHRdOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgbGV0dGVyIGFuZAorICAgICAgICAgICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdworICAgICAgICAgICAgICAgICsiJHdvcmQ9KCRsZXQrKCRtaWRfd29yZCRsZXQrKSokZGFuZGE/KTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIG51bWJlciBpcyBhIHNlcXVlbmNlIG9mIGRpZ2l0cyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBkaWdpdCBhbmQKKyAgICAgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cuCisgICAgICAgICAgICAgICAgKyIkbnVtYmVyPSgkZGd0KygkbWlkX251bSRkZ3QrKSopOyIKKworICAgICAgICAgICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3Rlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMKKyAgICAgICAgICAgICAgICAvLyAodGhpcyB3aWxsIGNhdXNlIHB1bmN0dWF0aW9uIG1hcmtzIHRoYXQgYXJlbid0IGNvbnNpZGVyZWQKKyAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIHdvcmRzIG9yIG51bWJlcnMgdG8gYmUgdHJlYXRlZCBhcyB3b3JkcyB1bnRvIHRoZW1zZWx2ZXMpCisgICAgICAgICAgICAgICAgKyIuOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW55IHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgICAgICAvLyAoaW5jbHVkaW5nIGp1c3Qgb25lIG9mIGVpdGhlciksIHBsdXMgYW4gb3B0aW9uYWwgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICsiJHdvcmQ/KCRudW1iZXIkd29yZCkqKCRudW1iZXIkcG9zdF9udW0/KT87IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbmQgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgICAgIC8vIHRoYXQgc3RhcnRzIHdpdGggYSBudW1iZXItcHJlZml4IGNoYXJhY3RlciBhbmQgYSBudW1iZXIsCisgICAgICAgICAgICAgICAgLy8gYW5kIG1heSBlbmQgd2l0aCBhIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKyIkcHJlX251bSgkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvciBvciBDUkxGIHNlcXVlbmNlKQorICAgICAgICAgICAgICAgICsiJHdzKlxyPyRscz87IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthdGFrYW5hCisgICAgICAgICAgICAgICAgKyIka2F0YSo7IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEhpcmFnYW5hCisgICAgICAgICAgICAgICAgKyIkaGlyYSo7IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthbmppCisgICAgICAgICAgICAgICAgKyIka2FuamkqOyIgfSwKKworICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1lIGxpbmUtYnJlYWtpbmcgcnVsZXMgYXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgLy8gcmVzb3VyY2UsIGV4Y2VwdCB0aGF0IHRoZSBMYXRpbiBsZXR0ZXJzLCBhcG9zdHJvcGhlLCBhbmQgaHlwaGVuIGFyZQorICAgICAgICAgICAgLy8gc3BlY2lmaWVkIGFzIGRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICAgICAgeyAgICJMaW5lQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICIkX2lnbm9yZV89W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgorCisgICAgICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIGNhc2UgUm9tYW4gbGV0dGVycywgYXBvc3Ryb3BoeSBhbmQgZGFzaAorICAgICAgICAgICAgICAgIC8vIGFyZSBpbiB0aGUgRW5nbGlzaCBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgKyIkX2RpY3Rpb25hcnlfPVthLXpBLVpcXCdcXC1dOyIKKworICAgICAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgKyIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCisgICAgICAgICAgICAgICAgKyIkYnJlYWs9W1x1MDAwM1x0XG5cZlx1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBwcmV2ZW50IGEgYnJlYWs6IHRoZSBub24tYnJlYWtpbmcgc3BhY2UKKyAgICAgICAgICAgICAgICAvLyBhbmQgc2ltaWxhciBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgKyIkbmJzcD1bXHUwMGEwXHUyMDA3XHUyMDExXHVmZWZmXTsiCisKKyAgICAgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgICAgICAvLyBDUiBhbmQgdGhlIG90aGVyIGNoYXJhY3RlcnMgbWVudGlvbmVkIGFib3ZlCisgICAgICAgICAgICAgICAgKyIkc3BhY2U9W1tbOlpzOl1bOkNjOl1dLVskbmJzcCRicmVha1xyXV07IgorCisgICAgICAgICAgICAgICAgLy8gZGFzaGVzOiBkYXNoIHB1bmN0dWF0aW9uIGFuZCB0aGUgZGlzY3JldGlvbmFyeSBoeXBoZW4sIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucworICAgICAgICAgICAgICAgICsiJGRhc2g9W1tbOlBkOl1cdTAwYWRdLVskbmJzcF1dOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBwcmVjZWRlIGl0OiBjdXJyZW5jeSBzeW1ib2xzCisgICAgICAgICAgICAgICAgLy8gKGV4Y2VwdCB0aGUgY2VudHMgc2lnbikgYW5kIHN0YXJ0aW5nIHB1bmN0dWF0aW9uCisgICAgICAgICAgICAgICAgKyIkcHJlX3dvcmQ9W1tbOlNjOl0tW1x1MDBhMl1dWzpQczpdXFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKKyAgICAgICAgICAgICAgICAvLyBvdGhlciBwdW5jdHVhdGlvbiB0aGF0IHVzdWFsbHkgb2NjdXJzIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZSwKKyAgICAgICAgICAgICAgICAvLyBzbWFsbCBLYW5hIGNoYXJhY3RlcnMsIHNvbWUgQ0pLIGRpYWNyaXRpY3MsIGV0Yy4KKyAgICAgICAgICAgICAgICArIiRwb3N0X3dvcmQ9W1s6UGU6XVxcIVxcXCJcXFwnXFwlXFwuXFwsXFw6XFw7XFw/XHUwMGEyXHUwMGIwXHUwNjZhXHUyMDMwLVx1MjAzNCIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUyMTAzXHUyMTA1XHUyMTA5XHUzMDAxXHUzMDAyXHUzMDA1XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzIgorICAgICAgICAgICAgICAgICAgICArICJcdTMwODNcdTMwODVcdTMwODdcdTMwOGVcdTMwOTktXHUzMDllXHUzMGExXHUzMGEzXHUzMGE1XHUzMGE3XHUzMGE5IgorICAgICAgICAgICAgICAgICAgICArICJcdTMwYzNcdTMwZTNcdTMwZTVcdTMwZTdcdTMwZWVcdTMwZjVcdTMwZjZcdTMwZmMtXHUzMGZlXHVmZjAxXHVmZjBjIgorICAgICAgICAgICAgICAgICAgICArICJcdWZmMGVcdWZmMWZdOyIKKworICAgICAgICAgICAgICAgIC8vIEthbmppOiBhY3R1YWxseSBpbmNsdWRlcyBib3RoIEthbmppIGFuZCBLYW5hLCBleGNlcHQgZm9yIHNtYWxsIEthbmEgYW5kCisgICAgICAgICAgICAgICAgLy8gQ0pLIGRpYWNyaXRpY3MKKyAgICAgICAgICAgICAgICArIiRrYW5qaT1bW1x1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXHUzMDQxLVx1MzA5NFx1MzBhMS1cdTMwZmFdLVskcG9zdF93b3JkJF9pZ25vcmVfXV07IgorCisgICAgICAgICAgICAgICAgLy8gZGlnaXRzCisgICAgICAgICAgICAgICAgKyIkZGlnaXQ9W1s6TmQ6XVs6Tm86XV07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCisgICAgICAgICAgICAgICAgKyIkbWlkX251bT1bXFwuXFwsXTsiCisKKyAgICAgICAgICAgICAgICAvLyBldmVyeXRoaW5nIG5vdCBtZW50aW9uZWQgYWJvdmUsIHBsdXMgdGhlIHF1b3RlIG1hcmtzICh3aGljaCBhcmUgYm90aAorICAgICAgICAgICAgICAgIC8vIDxwcmUtd29yZD4sIDxwb3N0LXdvcmQ+LCBhbmQgPGNoYXI+KQorICAgICAgICAgICAgICAgICsiJGNoYXI9W14kYnJlYWskc3BhY2UkZGFzaCRrYW5qaSRuYnNwJF9pZ25vcmVfJHByZV93b3JkJHBvc3Rfd29yZCRtaWRfbnVtJGRhbmRhXHJcXFwiXFxcJ107IgorCisgICAgICAgICAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKKyAgICAgICAgICAgICAgICAvLyBtb3JlIGRpZ2l0cyB3aXRoIGlzb2xhdGVkIG51bWJlci1wdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGludGVyc3BlcnNlZAorICAgICAgICAgICAgICAgICsiJG51bWJlcj0oWyRwcmVfd29yZCRkYXNoXSokZGlnaXQrKCRtaWRfbnVtJGRpZ2l0KykqKTsiCisKKyAgICAgICAgICAgICAgICAvLyB0aGUgYmFzaWMgY29yZSBvZiBhIHdvcmQgY2FuIGJlIGVpdGhlciBhICJudW1iZXIiIGFzIGRlZmluZWQgYWJvdmUsIGEgc2luZ2xlCisgICAgICAgICAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyAodGhpcyBpbmNsdWRlcyBMYXRpbiBsZXR0ZXJzKQorICAgICAgICAgICAgICAgICsiJHdvcmRfY29yZT0oWyRwcmVfd29yZCRjaGFyXSp8JGthbmppfCRudW1iZXIpOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBtYXkgZW5kIHdpdGggYW4gb3B0aW9uYWwgc3VmZml4IHRoYXQgYmUgZWl0aGVyIGEgcnVuIG9mIG9uZSBvcgorICAgICAgICAgICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgLy8gcnVuIG9mIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICArIiR3b3JkX3N1ZmZpeD0oKCRkYXNoK3wkcG9zdF93b3JkKikkc3BhY2UqKTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQsIHRodXMsIGlzIGFuIG9wdGlvbmFsIHJ1biBvZiB3b3JkLXByZWZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieQorICAgICAgICAgICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CisgICAgICAgICAgICAgICAgLy8gYWN0dWFsbHkgYWxsb3dzIGVpdGhlciBvZiB0aGVtIHRvIG1hdGNoIHRoZSBlbXB0eSBzdHJpbmcsIHB1dHRpbmcgYSBicmVhaworICAgICAgICAgICAgICAgIC8vIGJldHdlZW4gdGhpbmdzIGxpa2UgIikoIiBvciAiYWFhKGFhYSIKKyAgICAgICAgICAgICAgICArIiR3b3JkPSgkcHJlX3dvcmQqJHdvcmRfY29yZSR3b3JkX3N1ZmZpeCk7IgorCisgICAgICAgICAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAorICAgICAgICAgICAgICAgIC8vIGFyZSBqb2luZWQgYnkgcnVucyBvZiBvbmUgb2YgbW9yZSBub24tc3BhY2luZyBtYXJrLiAgQWxzbyBrZWVwIGEgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBsaW5lLWJyZWFrIGNoYXJhY3RlciBvciBDUkxGIGNvbWJpbmF0aW9uIHdpdGggdGhlIHdvcmQuICAobGluZSBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCisgICAgICAgICAgICAgICAgKyIkd29yZCgkbmJzcCskd29yZCkqXHI/JGJyZWFrPzsiIH0sCisKKyAgICAgICAgICAgIC8vIHRoZXNlIHR3byByZXNvdXJjZXMgc3BlY2lmeSB0aGUgcGF0aG5hbWVzIG9mIHRoZSBkaWN0aW9uYXJ5IGZpbGVzIHRvCisgICAgICAgICAgICAvLyB1c2UgZm9yIHdvcmQgYnJlYWtpbmcgYW5kIGxpbmUgYnJlYWtpbmcuICBCb3RoIGN1cnJlbnRseSByZWZlciB0bworICAgICAgICAgICAgLy8gYSBmaWxlIGNhbGxlZCBlbmdsaXNoLmRpY3QgcGxhY2VkIGluIGNvbS5pYm0uaWN1LmltcGwuZGF0YQorICAgICAgICAgICAgLy8gc29tZXdoZXJlIGluIHRoZSBjbGFzcyBwYXRoLiAgSXQncyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0CisgICAgICAgICAgICAvLyBlbmdsaXNoLmRpY3Qgd2FzIGNyZWF0ZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSwgYW5kIGRvZXNuJ3QKKyAgICAgICAgICAgIC8vIGNvbWUgYW55d2hlcmUgY2xvc2UgdG8gYmVpbmcgYW4gZXhoYXVzdGl2ZSBkaWN0aW9uYXJ5IG9mIEVuZ2xpc2gKKyAgICAgICAgICAgIC8vIHdvcmRzIChiYXNpY2FsbHksIGl0IGNvbnRhaW5zIGFsbCB0aGUgd29yZHMgaW4gdGhlIERlY2xhcmF0aW9uIG9mCisgICAgICAgICAgICAvLyBJbmRlcGVuZGVuY2UsIGFuZCB0aGUgUmV2aXNlZCBTdGFuZGFyZCBWZXJzaW9uIG9mIHRoZSBib29rIG9mIEdlbmVzaXMsCisgICAgICAgICAgICAvLyBwbHVzIGEgZmV3IG90aGVyIHdvcmRzIHRocm93biBpbiB0byBzaG93IG1vcmUgaW50ZXJlc3RpbmcgY2FzZXMpLgorICAgICAgICAgICAgLy8geyAiV29yZEJyZWFrRGljdGlvbmFyeSIsICJjb21cXGlibVxcdGV4dFxccmVzb3VyY2VzXFxlbmdsaXNoLmRpY3QiIH0sCisgICAgICAgICAgICAvLyB7ICJMaW5lQnJlYWtEaWN0aW9uYXJ5IiwgImNvbVxcaWJtXFx0ZXh0XFxyZXNvdXJjZXNcXGVuZ2xpc2guZGljdCIgfQorICAgICAgICAgICAgeyAgICJXb3JkQnJlYWtEaWN0aW9uYXJ5IiwgREFUQV9OQU1FIH0sIAorICAgICAgICAgICAgeyAgICJMaW5lQnJlYWtEaWN0aW9uYXJ5IiwgREFUQV9OQU1FIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjM4YTk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclRlc3QuamF2YQpAQCAtMCwwICsxLDgyNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGNoYXJhY3RlckJyZWFrOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciB3b3JkQnJlYWs7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGxpbmVCcmVhazsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3Igc2VudGVuY2VCcmVhazsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgdGl0bGVCcmVhazsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQnJlYWtJdGVyYXRvclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIEJyZWFrSXRlcmF0b3JUZXN0KCkKKyAgICB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpeworICAgICAgICBjaGFyYWN0ZXJCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgd29yZEJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgbGluZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgLy9sb2dsbigiQ3JlYXRpbmcgc2VudGVuY2UgaXRlcmF0b3IuLi4iKTsKKyAgICAgICAgc2VudGVuY2VCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICAvL2xvZ2xuKCJGaW5pc2hlZCBjcmVhdGluZyBzZW50ZW5jZSBpdGVyYXRvci4uLiIpOworICAgICAgICB0aXRsZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKCk7CisgICAgfQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGdlbmVyYWwgdGVzdCBzdWJyb3V0aW5lcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSB2b2lkIGdlbmVyYWxJdGVyYXRvclRlc3QoQnJlYWtJdGVyYXRvciBiaSwgVmVjdG9yIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZyB0ZXh0OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkUmVzdWx0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICB0ZXh0ID0gKFN0cmluZylleHBlY3RlZFJlc3VsdC5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHRleHQpOworICAgICAgICB9CisgICAgICAgIHRleHQgPSBidWZmZXIudG9TdHJpbmcoKTsKKworICAgICAgICBiaS5zZXRUZXh0KHRleHQpOworCisgICAgICAgIFZlY3RvciBuZXh0UmVzdWx0cyA9IF90ZXN0Rmlyc3RBbmROZXh0KGJpLCB0ZXh0KTsKKyAgICAgICAgVmVjdG9yIHByZXZpb3VzUmVzdWx0cyA9IF90ZXN0TGFzdEFuZFByZXZpb3VzKGJpLCB0ZXh0KTsKKworICAgICAgICBsb2dsbigiY29tcGFyaW5nIGZvcndhcmQgYW5kIGJhY2t3YXJkLi4uIik7CisgICAgICAgIGludCBlcnJzID0gZ2V0RXJyb3JDb3VudCgpOworICAgICAgICBjb21wYXJlRnJhZ21lbnRMaXN0cygiZm9yd2FyZCBpdGVyYXRpb24iLCAiYmFja3dhcmQgaXRlcmF0aW9uIiwgbmV4dFJlc3VsdHMsCisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1Jlc3VsdHMpOworICAgICAgICBpZiAoZ2V0RXJyb3JDb3VudCgpID09IGVycnMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJjb21wYXJpbmcgZXhwZWN0ZWQgYW5kIGFjdHVhbC4uLiIpOworICAgICAgICAgICAgY29tcGFyZUZyYWdtZW50TGlzdHMoImV4cGVjdGVkIHJlc3VsdCIsICJhY3R1YWwgcmVzdWx0IiwgZXhwZWN0ZWRSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc3VsdHMpOworICAgICAgICB9CisKKyAgICAgICAgaW50W10gYm91bmRhcmllcyA9IG5ldyBpbnRbZXhwZWN0ZWRSZXN1bHQuc2l6ZSgpICsgM107CisgICAgICAgIGJvdW5kYXJpZXNbMF0gPSBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIGJvdW5kYXJpZXNbMV0gPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkUmVzdWx0LnNpemUoKTsgaSsrKQorICAgICAgICAgICAgYm91bmRhcmllc1tpICsgMl0gPSBib3VuZGFyaWVzW2kgKyAxXSArICgoU3RyaW5nKWV4cGVjdGVkUmVzdWx0LmVsZW1lbnRBdChpKSkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoKCk7CisgICAgICAgIGJvdW5kYXJpZXNbYm91bmRhcmllcy5sZW5ndGggLSAxXSA9IEJyZWFrSXRlcmF0b3IuRE9ORTsKKworICAgICAgICBfdGVzdEZvbGxvd2luZyhiaSwgdGV4dCwgYm91bmRhcmllcyk7CisgICAgICAgIF90ZXN0UHJlY2VkaW5nKGJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKyAgICAgICAgX3Rlc3RJc0JvdW5kYXJ5KGJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKworICAgICAgICBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChiaSwgdGV4dCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBWZWN0b3IgX3Rlc3RGaXJzdEFuZE5leHQoQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgaW50IHAgPSBiaS5maXJzdCgpOworICAgICAgICBpbnQgbGFzdFAgPSBwOworICAgICAgICBWZWN0b3IgcmVzdWx0ID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICBlcnJsbigiZmlyc3QoKSByZXR1cm5lZCAiICsgcCArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgIHdoaWxlIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgcCA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGlmIChwIDw9IGxhc3RQKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dCgpIGZhaWxlZCB0byBtb3ZlIGZvcndhcmQ6IG5leHQoKSBvbiBwb3NpdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiB5aWVsZGVkICIgKyBwKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRFbGVtZW50KHRleHQuc3Vic3RyaW5nKGxhc3RQLCBwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobGFzdFAgIT0gdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIm5leHQoKSByZXR1cm5lZCBET05FIHByZW1hdHVyZWx5OiBvZmZzZXQgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFAgPSBwOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBWZWN0b3IgX3Rlc3RMYXN0QW5kUHJldmlvdXMoQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgaW50IHAgPSBiaS5sYXN0KCk7CisgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgIFZlY3RvciByZXN1bHQgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaWYgKHAgIT0gdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgICAgIGVycmxuKCJsYXN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICB3aGlsZSAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHAgPSBiaS5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgaWYgKHAgPj0gbGFzdFApCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJwcmV2aW91cygpIGZhaWxlZCB0byBtb3ZlIGJhY2t3YXJkOiBwcmV2aW91cygpIG9uIHBvc2l0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIHlpZWxkZWQgIiArIHApOworCisgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydEVsZW1lbnRBdCh0ZXh0LnN1YnN0cmluZyhwLCBsYXN0UCksIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IDApCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJwcmV2aW91cygpIHJldHVybmVkIERPTkUgcHJlbWF0dXJlbHk6IG9mZnNldCB3YXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0UCA9IHA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY29tcGFyZUZyYWdtZW50TGlzdHMoU3RyaW5nIGYxTmFtZSwgU3RyaW5nIGYyTmFtZSwgVmVjdG9yIGYxLCBWZWN0b3IgZjIpIHsKKyAgICAgICAgaW50IHAxID0gMDsKKyAgICAgICAgaW50IHAyID0gMDsKKyAgICAgICAgU3RyaW5nIHMxOworICAgICAgICBTdHJpbmcgczI7CisgICAgICAgIGludCB0MSA9IDA7CisgICAgICAgIGludCB0MiA9IDA7CisKKyAgICAgICAgd2hpbGUgKHAxIDwgZjEuc2l6ZSgpICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICBzMSA9IChTdHJpbmcpZjEuZWxlbWVudEF0KHAxKTsKKyAgICAgICAgICAgIHMyID0gKFN0cmluZylmMi5lbGVtZW50QXQocDIpOworICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICB0MiArPSBzMi5sZW5ndGgoKTsKKworICAgICAgICAgICAgaWYgKHMxLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgICA+IiArIHMxICsgIjwiKTsKKyAgICAgICAgICAgICAgICArK3AxOworICAgICAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcFQxID0gdDE7CisgICAgICAgICAgICAgICAgaW50IHRlbXBUMiA9IHQyOworICAgICAgICAgICAgICAgIGludCB0ZW1wUDEgPSBwMTsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcFAyID0gcDI7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxICE9IHRlbXBUMiAmJiB0ZW1wUDEgPCBmMS5zaXplKCkgJiYgdGVtcFAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0ZW1wVDEgPCB0ZW1wVDIgJiYgdGVtcFAxIDwgZjEuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVDEgKz0gKChTdHJpbmcpZjEuZWxlbWVudEF0KHRlbXBQMSkpLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBUMiA8IHRlbXBUMSAmJiB0ZW1wUDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMiArPSAoKFN0cmluZylmMi5lbGVtZW50QXQodGVtcFAyKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICArK3RlbXBQMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiKioqICIgKyBmMU5hbWUgKyAiIGhhczoiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocDEgPD0gdGVtcFAxICYmIHAxIDwgZjEuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIHMxID0gKFN0cmluZylmMS5lbGVtZW50QXQocDEpOworICAgICAgICAgICAgICAgICAgICB0MSArPSBzMS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICoqKiA+IiArIHMxICsgIjwiKTsKKyAgICAgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIioqKioqICIgKyBmMk5hbWUgKyAiIGhhczoiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocDIgPD0gdGVtcFAyICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIHMyID0gKFN0cmluZylmMi5lbGVtZW50QXQocDIpOworICAgICAgICAgICAgICAgICAgICB0MiArPSBzMi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICoqKioqID4iICsgczIgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICArK3AyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlcnJsbigiRGlzY3JlcGFuY3kgYmV0d2VlbiAiICsgZjFOYW1lICsgIiBhbmQgIiArIGYyTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RGb2xsb3dpbmcoQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIHRleHQsIGludFtdIGJvdW5kYXJpZXMpIHsKKyAgICAgICAgbG9nbG4oInRlc3RGb2xsb3dpbmcoKToiKTsKKyAgICAgICAgaW50IHAgPSAyOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICAgKytwOworCisgICAgICAgICAgICBpbnQgYiA9IGJpLmZvbGxvd2luZyhpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJiaS5mb2xsb3dpbmcoIiArIGkgKyAiKSAtPiAiICsgYik7CisgICAgICAgICAgICBpZiAoYiAhPSBib3VuZGFyaWVzW3BdKQorICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBmb2xsb3dpbmcoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCAiICsgYm91bmRhcmllc1twXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgYik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RQcmVjZWRpbmcoQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIHRleHQsIGludFtdIGJvdW5kYXJpZXMpIHsKKyAgICAgICAgbG9nbG4oInRlc3RQcmVjZWRpbmcoKToiKTsKKyAgICAgICAgaW50IHAgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGludCBiID0gYmkucHJlY2VkaW5nKGkpOworICAgICAgICAgICAgbG9nbG4oImJpLnByZWNlZGluZygiICsgaSArICIpIC0+ICIgKyBiKTsKKyAgICAgICAgICAgIGlmIChiICE9IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIHByZWNlZGluZygpIGZvciAiICsgaSArICI6IGV4cGVjdGVkICIgKyBib3VuZGFyaWVzW3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyBiKTsKKworICAgICAgICAgICAgaWYgKGkgPT0gYm91bmRhcmllc1twICsgMV0pCisgICAgICAgICAgICAgICAgKytwOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0SXNCb3VuZGFyeShCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgICBsb2dsbigidGVzdElzQm91bmRhcnkoKToiKTsKKyAgICAgICAgaW50IHAgPSAxOworICAgICAgICBib29sZWFuIGlzQjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpc0IgPSBiaS5pc0JvdW5kYXJ5KGkpOworICAgICAgICAgICAgbG9nbG4oImJpLmlzQm91bmRhcnkoIiArIGkgKyAiKSAtPiAiICsgaXNCKTsKKworICAgICAgICAgICAgaWYgKGkgPT0gYm91bmRhcmllc1twXSkgeworICAgICAgICAgICAgICAgIGlmICghaXNCKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gaXNCb3VuZGFyeSgpIGZvciAiICsgaSArICI6IGV4cGVjdGVkIHRydWUsIGdvdCBmYWxzZSIpOworICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChpc0IpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgZmFsc2UsIGdvdCB0cnVlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9NdWx0aXBsZVNlbGVjdGlvblRlc3QoQnJlYWtJdGVyYXRvciBpdGVyYXRvciwgU3RyaW5nIHRlc3RUZXh0KQorICAgIHsKKyAgICAgICAgbG9nbG4oIk11bHRpcGxlIHNlbGVjdGlvbiB0ZXN0Li4uIik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdEl0ZXJhdG9yID0gKEJyZWFrSXRlcmF0b3IpaXRlcmF0b3IuY2xvbmUoKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGl0ZXJhdG9yLmZpcnN0KCk7CisgICAgICAgIGludCB0ZXN0T2Zmc2V0OworICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubmV4dChjb3VudCk7CisgICAgICAgICAgICBsb2dsbigibmV4dCgiICsgY291bnQgKyAiKSAtPiAiICsgdGVzdE9mZnNldCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3RPZmZzZXQpCisgICAgICAgICAgICAgICAgZXJybG4oIm5leHQobikgYW5kIG5leHQoKSBub3QgcmV0dXJuaW5nIGNvbnNpc3RlbnQgcmVzdWx0czogZm9yIHN0ZXAgIiArIGNvdW50ICsgIiwgbmV4dChuKSByZXR1cm5lZCAiICsgdGVzdE9mZnNldCArICIgYW5kIG5leHQoKSBoYWQgIiArIG9mZnNldCk7CisKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBpdGVyYXRvci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpOworCisgICAgICAgIC8vIG5vdyBkbyBpdCBiYWNrd2FyZHMuLi4KKyAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IubGFzdCgpOworICAgICAgICBjb3VudCA9IDA7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5sYXN0KCk7CisgICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLm5leHQoY291bnQpOworICAgICAgICAgICAgbG9nbG4oIm5leHQoIiArIGNvdW50ICsgIikgLT4gIiArIHRlc3RPZmZzZXQpOworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSB0ZXN0T2Zmc2V0KQorICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KG4pIGFuZCBuZXh0KCkgbm90IHJldHVybmluZyBjb25zaXN0ZW50IHJlc3VsdHM6IGZvciBzdGVwICIgKyBjb3VudCArICIsIG5leHQobikgcmV0dXJuZWQgIiArIHRlc3RPZmZzZXQgKyAiIGFuZCBuZXh0KCkgaGFkICIgKyBvZmZzZXQpOworCisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGNvdW50LS07CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAob2Zmc2V0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSk7CisgICAgfQorCisKKyAgICBwcml2YXRlIHZvaWQgZG9PdGhlckludmFyaWFudFRlc3QoQnJlYWtJdGVyYXRvciB0YiwgU3RyaW5nIHRlc3RDaGFycykKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JrID0gbmV3IFN0cmluZ0J1ZmZlcigiYVxyXG5hIik7CisgICAgICAgIGludCBlcnJvckNvdW50ID0gMDsKKworICAgICAgICAvLyBhIGJyZWFrIHNob3VsZCBuZXZlciBvY2N1ciBiZXR3ZWVuIENSIGFuZCBMRgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgwLCB0ZXN0Q2hhcnMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgzLCB0ZXN0Q2hhcnMuY2hhckF0KGopKTsKKyAgICAgICAgICAgICAgICB0Yi5zZXRUZXh0KHdvcmsudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IHRiLmZpcnN0KCk7IGsgIT0gQnJlYWtJdGVyYXRvci5ET05FOyBrID0gdGIubmV4dCgpKQorICAgICAgICAgICAgICAgICAgICBpZiAoayA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQnJlYWsgYmV0d2VlbiBDUiBhbmQgTEYgaW4gc3RyaW5nIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHdvcmsuY2hhckF0KDApKSkgKyAiLCBVK2QgVSthIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHdvcmsuY2hhckF0KDMpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yQ291bnQgPj0gNzUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBhIGJyZWFrIHNob3VsZCBuZXZlciBvY2N1ciBiZWZvcmUgYSBub24tc3BhY2luZyBtYXJrLCB1bmxlc3MgaXQncyBwcmVjZWRlZAorICAgICAgICAvLyBieSBhIGxpbmUgdGVybWluYXRvcgorICAgICAgICB3b3JrLnNldExlbmd0aCgwKTsKKyAgICAgICAgd29yay5hcHBlbmQoImFhYWEiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Q2hhcnMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gdGVzdENoYXJzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1x1MjAyOScgfHwgYyA9PSAnXHUyMDI4JyB8fCBjID09ICdcdTAwMDMnKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMSwgYyk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgYyA9IHRlc3RDaGFycy5jaGFyQXQoaik7CisgICAgICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5nZXRUeXBlKGMpICE9IENoYXJhY3Rlci5OT05fU1BBQ0lOR19NQVJLICYmIENoYXJhY3Rlci5nZXRUeXBlKGMpCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDaGFyYWN0ZXIuRU5DTE9TSU5HX01BUkspCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDIsIGMpOworICAgICAgICAgICAgICAgIHRiLnNldFRleHQod29yay50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gdGIuZmlyc3QoKTsgayAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGsgPSB0Yi5uZXh0KCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChrID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJCcmVhayBiZXR3ZWVuIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoKGludCkod29yay5jaGFyQXQoMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoKGludCkod29yay5jaGFyQXQoMikpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+PSA3NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlYnVnTG9nbG4oU3RyaW5nIHMpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9zID0gIjAwMDAiOworICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPCAnXHUwMDdmJykKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGMpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgdGVtcCA9IEludGVnZXIudG9IZXhTdHJpbmcoKGludCljKTsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKHplcm9zLnN1YnN0cmluZygwLCA0IC0gdGVtcC5sZW5ndGgoKSkpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQodGVtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIHRlc3RzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworICAgIC8qKgorICAgICAqIEBidWcgNDA5Nzc3OQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDk3Nzc5KCkgeworICAgICAgICBWZWN0b3Igd29yZFNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWFcdTAzMDBhIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHdvcmRCcmVhaywgd29yZFNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA5ODQ2NworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDk4NDY3V29yZHMoKSB7CisgICAgICAgIFZlY3RvciB3b3JkU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgICAgICAvLyBhZCBmb3IgdGhlIEtvcmVhbiBQcmVzYnl0ZXJpYW4gQ2h1cmNoIG9mIFNhbiBGcmFuY2lzY28sIGFuZCBJIGhvcGUgSSB0cmFuc2NyaWJlZAorICAgICAgICAvLyBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyAgICAgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAgICAgLy8gcHJlY29tcG9zZWQgc3lsbGFibGVzLi4uCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzBjMVx1ZDU2ZCIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1ZDU1Y1x1Yzc3OCIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzVmMFx1ZDU2OSIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzdhNVx1Yjg1Y1x1YWQ1MFx1ZDY4YyIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmNcdTExMTJcdTExNjFcdTExYmMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYWJcdTExMGJcdTExNzVcdTExYWIiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNjdcdTExYWJcdTExMTJcdTExNjFcdTExYjgiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmNcdTExMDVcdTExNjlcdTExMDBcdTExNmRcdTExMTJcdTExNmMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEJyZWFrLCB3b3JkU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMTEzMzgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDExMTMzOCgpIHsKKyAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyB0ZXN0IGZvciBidWcgIzQxMTEzMzg6IERvbid0IGJyZWFrIHNlbnRlbmNlcyBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBDSksKKyAgICAgICAgLy8gYW5kIG90aGVyIGxldHRlcnMKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NTpcIkpBVkFcdTgyMWMiCisgICAgICAgICAgICAgICAgKyAiXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkLFx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYSIKKyAgICAgICAgICAgICAgICArICJcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcIi5cdTIwMjkiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTRKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0IgorICAgICAgICAgICAgICAgICsgIlx1NjQ3MFx1ODc5MEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDgiCisgICAgICAgICAgICAgICAgKyAiXHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDI5Iik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZSBzYWlkLCBcIkkgY2FuIGdvIHRoZXJlLlwiXHUyMDI5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTQzMDcxCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNDMwNzEoKSB7CisgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHNlbnRlbmNlcyB0aGF0IGVuZCB3aXRoIGRpZ2l0cyB3b3JrIHJpZ2h0CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUb2RheSBpcyB0aGUgMjd0aCBvZiBNYXksIDE5OTguICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRvbW9ycm93IHdpbGwgYmUgMjggTWF5IDE5OTguICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRoZSBkYXkgYWZ0ZXIgd2lsbCBiZSB0aGUgMzB0aC5cdTIwMjkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTUyNDE2CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNTI0MTYoKSB7CisgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHNlbnRlbmNlcyBlbmRpbmcgd2l0aCBhIGNhcGl0YWwgbGV0dGVyIGFyZSB0cmVhdGVkIGNvcnJlY3RseQorICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhlIHR5cGUgb2YgYWxsIHByaW1pdGl2ZSAiCisgICAgICAgICAgICAgICAgKyAiPGNvZGU+Ym9vbGVhbjwvY29kZT4gdmFsdWVzIGFjY2Vzc2VkIGluIHRoZSB0YXJnZXQgVk0uICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkNhbGxzIHRvIHh4eCB3aWxsIHJldHVybiBhbiAiCisgICAgICAgICAgICAgICAgKyAiaW1wbGVtZW50b3Igb2YgdGhpcyBpbnRlcmZhY2UuXHUyMDI5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDE1MjExNworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTUyMTE3KCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBzZW50ZW5jZSBicmVha2luZyBpcyBoYW5kbGluZyBwdW5jdHVhdGlvbiBjb3JyZWN0bHkKKyAgICAgICAgLy8gW0NPVUxEIE5PVCBSRVBST0RVQ0UgVEhJUyBCVUcsIEJVVCBURVNUIElTIEhFUkUgVE8gTUFLRSBTVVJFCisgICAgICAgIC8vIElUIERPRVNOJ1QgQ1JPUCBVUF0KKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkNvbnN0cnVjdHMgYSByYW5kb21seSBnZW5lcmF0ZWQgIgorICAgICAgICAgICAgICAgICsgIkJpZ0ludGVnZXIsIHVuaWZvcm1seSBkaXN0cmlidXRlZCBvdmVyIHRoZSByYW5nZSA8dHQ+MDwvdHQ+ICIKKyAgICAgICAgICAgICAgICArICJ0byA8dHQ+KDI8c3VwPm51bUJpdHM8L3N1cD4gLSAxKTwvdHQ+LCBpbmNsdXNpdmUuICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRoZSB1bmlmb3JtaXR5IG9mIHRoZSBkaXN0cmlidXRpb24gIgorICAgICAgICAgICAgICAgICsgImFzc3VtZXMgdGhhdCBhIGZhaXIgc291cmNlIG9mIHJhbmRvbSBiaXRzIGlzIHByb3ZpZGVkIGluICIKKyAgICAgICAgICAgICAgICArICI8dHQ+cm5kPC90dD4uICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIk5vdGUgdGhhdCB0aGlzIGNvbnN0cnVjdG9yIGFsd2F5cyAiCisgICAgICAgICAgICAgICAgKyAiY29uc3RydWN0cyBhIG5vbi1uZWdhdGl2ZSBCaWdJbnRlZ2VyLlx1MjAyOSIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TGluZUJyZWFrKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiTXVsdGktIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkxldmVsICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJleGFtcGxlICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJvZiAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgic2VtaS0iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiaWRpb3RpYyAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibm9uLSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJzZW5zaWNhbCAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKG5vbi0iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiaW1wb3J0YW50KSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgic2VudGVuY2UuICIpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhpICAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGVsbG8gIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhvd1xuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImFyZVxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInlvdVx1MjAyOCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmaW5lLlx0Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImdvb2QuICAiKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJOb3dcciIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJpc1xuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInRoZVxyXG4iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidGltZVxuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImZvclxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImFsbCIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDY4MTMzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwNjgxMzMoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTk2ZjYiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTAwXHUzMDAyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGU4Y1x1MzAwMSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDlcdTMwMDJcdTMwMDEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1NmRiXHUzMDAxXHUzMDAyXHUzMDAxIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGU5NCwiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1MTZkLiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDMuXHUzMDAxLFx1MzAwMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTUxNmIiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA4NjA1MgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDg2MDUyKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZm9vXHUwMGEwYmFyICIpOworLy8gICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImZvb1x1ZmVmZmJhciIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk3OTIwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTc5MjAoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJkb2csY2F0LG1vdXNlICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIob25lKSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIodHdvKVxuIik7CisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgCisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMTc1NTQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDExNzU1NExpbmVzKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gRnVsbHdpZHRoIC4hPyBzaG91bGQgYmUgdHJlYXRlZCBhcyBwb3N0SndyZAorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDFcdWZmMGUiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTAyXHVmZjAxIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwM1x1ZmYxZiIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExldHRlcnNBbmREaWdpdHMoKSB7CisgICAgICAgIC8vIGEgY2hhcmFjdGVyIHNlcXVlbmNlIHN1Y2ggYXMgIlgxMSIgb3IgIjMwRjMiIG9yICJuYXRpdmUyYXNjaWkiIHNob3VsZAorICAgICAgICAvLyBiZSBrZXB0IHRvZ2V0aGVyIGFzIGEgc2luZ2xlIHdvcmQKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlgxMSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMzBGMyAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibmF0aXZlMmFzY2lpIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBncmF2ZVMgPSAiU1x1MDMwMCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGFjdXRlQmVsb3dJID0gImlcdTAzMTciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBhY3V0ZUUgPSAiZVx1MDMwMSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNpcmN1bWZsZXhBID0gImFcdTAzMDIiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyB0aWxkZUUgPSAiZVx1MDMwMyI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhcmFjdGVyQnJlYWsoKSB7CisgICAgICAgIFZlY3RvciBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChncmF2ZVMpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoYWN1dGVCZWxvd0kpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm0iKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJwIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoYWN1dGVFKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgicyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoY2lyY3VtZmxleEEpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm0iKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJwIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQodGlsZGVFKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIuIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoY2lyY3VtZmxleEEpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInciKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInEiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxuIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChjaGFyYWN0ZXJCcmVhaywgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk4NDY3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTg0NjdDaGFyYWN0ZXJzKCkgeworICAgICAgICBWZWN0b3IgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgICAgICAvLyBhZCBmb3IgdGhlIEtvcmVhbiBQcmVzYnl0ZXJpYW4gQ2h1cmNoIG9mIFNhbiBGcmFuY2lzY28sIGFuZCBJIGhvcGUgSSB0cmFuc2NyaWJlZAorICAgICAgICAvLyBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyAgICAgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAgICAgLy8gcHJlY29tcG9zZWQgc3lsbGFibGVzLi4uCisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjMGMxIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNTZkIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1ZDU1YyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1Yzc3OCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWM1ZjAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWQ1NjkiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjN2E1Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHViODVjIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVhZDUwIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNjhjIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAvLyBjb25qb2luaW5nIGphbW8uLi4KKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYmMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWFiIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTc1XHUxMWFiIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwYlx1MTE2N1x1MTFhYiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiOCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDVcdTExNjkiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDBcdTExNmQiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNmMiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGNoYXJhY3RlckJyZWFrLCBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGl0bGVCcmVhaygpCisgICAgeworICAgICAgICBWZWN0b3IgdGl0bGVEYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgiICAgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJUaGlzICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgiaXMgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJhICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgic2ltcGxlICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgic2FtcGxlICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgic2VudGVuY2UuICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgiVGhpcyAiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHRpdGxlQnJlYWssIHRpdGxlRGF0YSk7CisgICAgfQorCisKKworICAgIC8qCisgICAgICogQGJ1ZyA0MTUzMDcyCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNTMwNzIoKSB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIFN0cmluZyBzdHIgPSAiLi4uSGVsbG8sIFdvcmxkIS4uLiI7CisgICAgICAgIGludCBiZWdpbiA9IDM7CisgICAgICAgIGludCBlbmQgPSBzdHIubGVuZ3RoKCkgLSAzOworICAgICAgICAvLyBub3QgdXNlZCBib29sZWFuIGdvdEV4Y2VwdGlvbiA9IGZhbHNlOworIAorCisgICAgICAgIGl0ZXIuc2V0VGV4dChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ioc3RyLCBiZWdpbiwgZW5kLCBiZWdpbikpOworICAgICAgICBmb3IgKGludCBpbmRleCA9IC0xOyBpbmRleCA8IGJlZ2luICsgMTsgKytpbmRleCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpdGVyLmlzQm91bmRhcnkoaW5kZXgpOworICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IGJlZ2luKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBleGNlcHRpb24gd2l0aCBvZmZzZXQgPSAiICsgaW5kZXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgYmVnaW4gaW5kZXggPSAiICsgYmVnaW4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IGJlZ2luKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiR290IGV4Y2VwdGlvbiB3aXRoIG9mZnNldCA9ICIgKyBpbmRleCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBiZWdpbiBpbmRleCA9ICIgKyBiZWdpbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTQ2MTc1TGluZXMoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyB0aGUgZnVsbHdpZHRoIGNvbW1hIHNob3VsZCBzdGljayB0byB0aGUgcHJlY2VkaW5nIEphcGFuZXNlIGNoYXJhY3RlcgorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTdkNDJcdWZmMGMiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUzMDhmIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY2FubmVkVGVzdENoYXJzCisgICAgICAgID0gIlx1MDAwMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNCAhXCIjJCUmKCkrLTAxMjM0PD0+QUJDREVbXV5fYGFiY2Rle318XHUwMGEwXHUwMGEyIgorICAgICAgICArICJcdTAwYTNcdTAwYTRcdTAwYTVcdTAwYTZcdTAwYTdcdTAwYThcdTAwYTlcdTAwYWJcdTAwYWRcdTAwYWVcdTAwYWZcdTAwYjBcdTAwYjJcdTAwYjMiCisgICAgICAgICsgIlx1MDBiNFx1MDBiOVx1MDBiYlx1MDBiY1x1MDBiZFx1MDJiMFx1MDJiMVx1MDJiMlx1MDJiM1x1MDJiNFx1MDMwMFx1MDMwMVx1MDMwMlx1MDMwMyIKKyAgICAgICAgKyAiXHUwMzA0XHUwNWQwXHUwNWQxXHUwNWQyXHUwNWQzXHUwNWQ0XHUwOTAzXHUwOTNlXHUwOTNmXHUwOTQwXHUwOTQ5XHUwZjNhXHUwZjNiXHUyMDAwIgorICAgICAgICArICJcdTIwMDFcdTIwMDJcdTIwMGNcdTIwMGRcdTIwMGVcdTIwMGZcdTIwMTBcdTIwMTFcdTIwMTJcdTIwMjhcdTIwMjlcdTIwMmFcdTIwM2VcdTIwM2YiCisgICAgICAgICsgIlx1MjA0MFx1MjBkZFx1MjBkZVx1MjBkZlx1MjBlMFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NCI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2VudGVuY2VJbnZhcmlhbnRzKCkKKyAgICB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICBkb090aGVySW52YXJpYW50VGVzdChlLCBjYW5uZWRUZXN0Q2hhcnMgKyAiLixcdTMwMDFcdTMwMDJcdTMwNDFcdTMwNDJcdTMwNDNcdWZlZmYiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RW1wdHlTdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiIjsKKyAgICAgICAgVmVjdG9yIHggPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHguYWRkRWxlbWVudCh0ZXh0KTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgeCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgTG9jYWxlW10gbG9jTGlzdCA9IEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworCisgICAgICAgIGlmIChsb2NMaXN0Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgZXJybG4oImdldEF2YWlsYWJsZUxvY2FsZXMoKSByZXR1cm5lZCBhbiBlbXB0eSBsaXN0ISIpOworICAgICAgICAvLyBJIGhhdmUgbm8gaWRlYSBob3cgdG8gdGVzdCB0aGlzIGZ1bmN0aW9uLi4uCisgICAgICAgIAorICAgICAgICBjb20uaWJtLmljdS51dGlsLlVMb2NhbGVbXSB1bG9jTGlzdCA9IEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgaWYgKHVsb2NMaXN0Lmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSByZXR1cm5lZCBhbiBlbXB0eSBsaXN0ISIpOyAgICAgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSByZXR1cm5lZCAiICsgdWxvY0xpc3QubGVuZ3RoICsgIiBsb2NhbGVzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjgxMzcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5kQmVoYXZpb3IoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiYm9vLiI7CisgICAgICAgIEJyZWFrSXRlcmF0b3Igd2IgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICB3Yi5zZXRUZXh0KHRlc3RTdHJpbmcpOworCisgICAgICAgIGlmICh3Yi5maXJzdCgpICE9IDApCisgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBicmVhayBhdCBiZWdpbm5pbmcgb2Ygc3RyaW5nLiIpOworICAgICAgICBpZiAod2IubmV4dCgpICE9IDMpCisgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBicmVhayBiZWZvcmUgcGVyaW9kIGluIFwiYm9vLlwiIik7CisgICAgICAgIGlmICh3Yi5jdXJyZW50KCkgIT0gNCAmJiB3Yi5uZXh0KCkgIT0gNCkKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGJyZWFrIGF0IGVuZCBvZiBzdHJpbmcuIik7CisgICAgfQorCisgICAgLy8gVGhlIEZvbGxvd2luZyB0d28gdGVzdHMgYXJlIHBvcnRlZCBmcm9tIElDVTRDIDEuOC4xIFtSaWNoYXJkL0dDTF0KKyAgICAvKioKKyAgICAgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogdGV4dGJvdW5kcyA6IEludGxUZXN0VGV4dEJvdW5kYXJ5CisgICAgICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvaXR0eHRiZC5jcHAKKyAgICAgKiovCisgICAgLyoqCisgICAgICogdGVzdCBtZXRob2RzIHByZWNlZGluZywgZm9sbG93aW5nIGFuZCBpc0JvdW5kYXJ5CisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmVjZWRpbmcoKSB7CisgICAgICAgIFN0cmluZyB3b3JkczMgPSAiYWFhIGJiYiBjY2MiOworICAgICAgICBCcmVha0l0ZXJhdG9yIGUgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgZS5zZXRUZXh0KCB3b3JkczMgKTsKKyAgICAgICAgZS5maXJzdCgpOworICAgICAgICBpbnQgcDEgPSBlLm5leHQoKTsKKyAgICAgICAgaW50IHAyID0gZS5uZXh0KCk7CisgICAgICAgIGludCBwMyA9IGUubmV4dCgpOworICAgICAgICBpbnQgcDQgPSBlLm5leHQoKTsKKworICAgICAgICBpbnQgZiA9IGUuZm9sbG93aW5nKHAyKzEpOworICAgICAgICBpbnQgcCA9IGUucHJlY2VkaW5nKHAyKzEpOworICAgICAgICBpZiAoZiE9cDMpCisgICAgICAgICAgICBlcnJsbigiSW50bFRlc3RUZXh0Qm91bmRhcnk6OlRlc3RQcmVjZWRpbmc6IGYhPXAzIik7CisgICAgICAgIGlmIChwIT1wMikKKyAgICAgICAgICAgIGVycmxuKCJJbnRsVGVzdFRleHRCb3VuZGFyeTo6VGVzdFByZWNlZGluZzogcCE9cDIiKTsKKworICAgICAgICBpZiAocDErMSE9cDIpCisgICAgICAgICAgICBlcnJsbigiSW50bFRlc3RUZXh0Qm91bmRhcnk6OlRlc3RQcmVjZWRpbmc6IHAxKzEhPXAyIik7CisKKyAgICAgICAgaWYgKHAzKzEhPXA0KQorICAgICAgICAgICAgZXJybG4oIkludGxUZXN0VGV4dEJvdW5kYXJ5OjpUZXN0UHJlY2VkaW5nOiBwMysxIT1wNCIpOworCisgICAgICAgIGlmICghZS5pc0JvdW5kYXJ5KHAyKSB8fCBlLmlzQm91bmRhcnkocDIrMSkgfHwgIWUuaXNCb3VuZGFyeShwMykpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJJbnRsVGVzdFRleHRCb3VuZGFyeTo6VGVzdFByZWNlZGluZzogaXNCb3VuZGFyeSBlcnIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIAorICAgIC8qKgorICAgICAqIEJ1ZyA0NDUwODA0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExpbmVCcmVha0NvbnRyYWN0aW9ucygpIHsKKyAgICAgICAgVmVjdG9yIGV4cGVjdGVkID0gbmV3IFZlY3RvcigpOworICAgICAgICBleHBlY3RlZC5hZGQoIlRoZXNlICIpOworICAgICAgICBleHBlY3RlZC5hZGQoImFyZSAiKTsKKyAgICAgICAgZXhwZWN0ZWQuYWRkKCInZm9vYmxlcycuICIpOworICAgICAgICBleHBlY3RlZC5hZGQoIkRvbid0ICIpOworICAgICAgICBleHBlY3RlZC5hZGQoInlvdSAiKTsKKyAgICAgICAgZXhwZWN0ZWQuYWRkKCJsaWtlICIpOworICAgICAgICBleHBlY3RlZC5hZGQoInRoZW0/Iik7CisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBleHBlY3RlZCk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJQVBJVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSUFQSVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YjUyNzhlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSUFQSVRlc3QuamF2YQpAQCAtMCwwICsxLDQ1MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IHJiYmkgOiBSQkJJQVBJVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvcmJiaWFwdHMuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIEFQSSBUZXN0IHRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNsYXNzCisgKi8KK3B1YmxpYyBjbGFzcyBSQkJJQVBJVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFJCQklBUElUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0cyBjbG9uZSgpIGFuZCBlcXVhbHMoKSBtZXRob2RzIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgICAgICAgICAKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdENsb25lRXF1YWxzKCkgeworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaWVxdWFsID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMyA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorCisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nID0gIlRlc3Rpbmcgd29yZCBicmVhayBpdGVyYXRvcnMncyBjbG9uZSgpIGFuZCBlcXVhbHMoKSI7CisgICAgICAgIGJpMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBiaTIuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgYmllcXVhbC5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICAKKyAgICAgICAgYmkzLnNldFRleHQoImhlbGxvIik7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVxdWFscygpIik7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nID09IGFuZCAhPSIpOworICAgICAgICBpZiAoIWJpMS5lcXVhbHMoYmllcXVhbCkgfHwgYmkxLmVxdWFscyhiaTIpIHx8IGJpMS5lcXVhbHMoYmkzKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoxIFJCQkkncyA9PSBhbmQgIS0gb3BlcmF0b3IgZmFpbGVkLiIpOworICAgICAgICBpZiAoYmkyLmVxdWFscyhiaWVxdWFsKSB8fCBiaTIuZXF1YWxzKGJpMSkgfHwgYmllcXVhbC5lcXVhbHMoYmkzKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoyIFJCQkkncyA9PSBhbmQgIT0gb3BlcmF0b3IgIGZhaWxlZC4iKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgY2xvbmUoKSIpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMWNsb25lID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIGJpMS5jbG9uZSgpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMmNsb25lID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIGJpMi5jbG9uZSgpOworICAgICAgICBpZiAoIWJpMWNsb25lLmVxdWFscyhiaTEpCisgICAgICAgICAgICB8fCAhYmkxY2xvbmUuZXF1YWxzKGJpZXF1YWwpCisgICAgICAgICAgICB8fCBiaTFjbG9uZS5lcXVhbHMoYmkzKQorICAgICAgICAgICAgfHwgYmkxY2xvbmUuZXF1YWxzKGJpMikpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MSBSQkJJJ3MgY2xvbmUoKSBtZXRob2QgZmFpbGVkIik7CisKKyAgICAgICAgaWYgKGJpMmNsb25lLmVxdWFscyhiaTEpCisgICAgICAgICAgICB8fCBiaTJjbG9uZS5lcXVhbHMoYmllcXVhbCkKKyAgICAgICAgICAgIHx8IGJpMmNsb25lLmVxdWFscyhiaTMpCisgICAgICAgICAgICB8fCAhYmkyY2xvbmUuZXF1YWxzKGJpMikpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MiBSQkJJJ3MgY2xvbmUoKSBtZXRob2QgZmFpbGVkIik7CisKKyAgICAgICAgaWYgKCFiaTEuZ2V0VGV4dCgpLmVxdWFscyhiaTFjbG9uZS5nZXRUZXh0KCkpCisgICAgICAgICAgICB8fCAhYmkyY2xvbmUuZ2V0VGV4dCgpLmVxdWFscyhiaTIuZ2V0VGV4dCgpKQorICAgICAgICAgICAgfHwgYmkyY2xvbmUuZXF1YWxzKGJpMWNsb25lKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUkJCSSdzIGNsb25lKCkgbWV0aG9kIGZhaWxlZCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0b1N0cmluZygpIG1ldGhvZCBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1N0cmluZygpIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkyID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBsb2dsbigiVGVzdGluZyB0b1N0cmluZygpIik7CisgICAgICAgIGJpMS5zZXRUZXh0KCJIZWxsbyB0aGVyZSIpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMyA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBiaTEuY2xvbmUoKTsKKyAgICAgICAgU3RyaW5nIHRlbXAgPSBiaTEudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHRlbXAyID0gYmkyLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyB0ZW1wMyA9IGJpMy50b1N0cmluZygpOworICAgICAgICBpZiAodGVtcDIuZXF1YWxzKHRlbXAzKSB8fCB0ZW1wLmVxdWFscyh0ZW1wMikgfHwgIXRlbXAuZXF1YWxzKHRlbXAzKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZXJyb3IgaW4gdG9TdHJpbmcoKSBtZXRob2QiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdHMgdGhlIG1ldGhvZCBoYXNoQ29kZSgpIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEhhc2hDb2RlKCkgeworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTMgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkyID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBsb2dsbigiVGVzdGluZyBoYXNoQ29kZSgpIik7CisgICAgICAgIGJpMS5zZXRUZXh0KCJIYXNoIGNvZGUiKTsKKyAgICAgICAgYmkyLnNldFRleHQoIkhhc2ggY29kZSIpOworICAgICAgICBiaTMuc2V0VGV4dCgiSGFzaCBjb2RlIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxY2xvbmUgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgYmkxLmNsb25lKCk7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkyY2xvbmUgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgYmkyLmNsb25lKCk7CisgICAgICAgIGlmIChiaTEuaGFzaENvZGUoKSAhPSBiaTFjbG9uZS5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTEuaGFzaENvZGUoKSAhPSBiaTMuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkxY2xvbmUuaGFzaENvZGUoKSAhPSBiaTMuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkyLmhhc2hDb2RlKCkgIT0gYmkyY2xvbmUuaGFzaENvZGUoKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaWRlbnRpY2FsIG9iamVjdHMgaGF2ZSBkaWZmZXJlbnQgaGFzaGNvZGVzIik7CisgICAgICAgIAorICAgICAgICBpZiAoYmkxLmhhc2hDb2RlKCkgPT0gYmkyLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMi5oYXNoQ29kZSgpID09IGJpMy5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTFjbG9uZS5oYXNoQ29kZSgpID09IGJpMmNsb25lLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMWNsb25lLmhhc2hDb2RlKCkgPT0gYmkyLmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGRpZmZlcmVudCBvYmplY3RzIGhhdmUgc2FtZSBoYXNoY29kZXMiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICAqIFRlc3RzIHRoZSBtZXRob2RzIGdldFRleHQoKSBhbmQgc2V0VGV4dCgpIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRTZXRUZXh0KCkgeworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXRUZXh0IHNldFRleHQgIik7CisgICAgICAgIFN0cmluZyBzdHIxID0gImZpcnN0IHN0cmluZy4iOworICAgICAgICBTdHJpbmcgc3RyMiA9ICJTZWNvbmQgc3RyaW5nLiI7CisgICAgICAgIC8vUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dDEgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ioc3RyMSk7CisgICAgICAgIC8vQ2hhcmFjdGVySXRlcmF0b3IgdGV4dDFDbG9uZSA9IChDaGFyYWN0ZXJJdGVyYXRvcikgdGV4dDEuY2xvbmUoKTsKKyAgICAgICAgLy9DaGFyYWN0ZXJJdGVyYXRvciB0ZXh0MiA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzdHIyKTsKKyAgICAgICAgd29yZEl0ZXIxLnNldFRleHQoc3RyMSk7CisgICAgICAgIGlmICghd29yZEl0ZXIxLmdldFRleHQoKS5lcXVhbHModGV4dDEpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjEgZXJyb3IgaW4gc2V0VGV4dCBvciBnZXRUZXh0ICIpOworICAgICAgICBpZiAod29yZEl0ZXIxLmN1cnJlbnQoKSAhPSAwKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjEgc2V0VGV4dCBkaWQgbm90IHNldCB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIGl0IGlzIgorICAgICAgICAgICAgICAgICAgICsgd29yZEl0ZXIxLmN1cnJlbnQoKSArICJcbiIpOyAKKyAgICAgICAgd29yZEl0ZXIxLm5leHQoMik7CisgICAgICAgIHdvcmRJdGVyMS5zZXRUZXh0KHN0cjIpOworICAgICAgICBpZiAod29yZEl0ZXIxLmN1cnJlbnQoKSAhPSAwKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjIgc2V0VGV4dCBkaWQgbm90IHJlc2V0IHRoZSBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgaXQgaXMiCisgICAgICAgICAgICAgICAgICAgICsgd29yZEl0ZXIxLmN1cnJlbnQoKSArICJcbiIpOyAKKyAgICAgICAgLy9JQ1U0SiBoYXMgcmVtb3ZlIHRoZSBtZXRob2QgYWRvcHRUZXh0CisgICAgICAgIC8qCisgICAgICAgIGNoYXJJdGVyMS5hZG9wdFRleHQodGV4dDFDbG9uZSk7CisgICAgICAgIGlmICh3b3JkSXRlcjEuZ2V0VGV4dCgpID09IGNoYXJJdGVyMS5nZXRUZXh0KCkKKyAgICAgICAgICAgIHx8IHdvcmRJdGVyMS5nZXRUZXh0KCkgIT0gdGV4dDIKKyAgICAgICAgICAgIHx8IGNoYXJJdGVyMS5nZXRUZXh0KCkgIT0gdGV4dDEpCisgICAgICAgICAgICBlcnJsbigoVW5pY29kZVN0cmluZykgIkVSUk9SOjIgZXJyb3IgaXMgZ2V0VGV4dCBvciBzZXRUZXh0KCkiKTsKKyAgICAgICAgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgd29yZEl0ZXIxLmNsb25lKCk7CisgICAgICAgIHJiLmFkb3B0VGV4dCh0ZXh0MSk7CisgICAgICAgIGlmIChyYi5nZXRUZXh0KCkgIT0gdGV4dDEpCisgICAgICAgICAgICBlcnJsbigoVW5pY29kZVN0cmluZykgIkVSUk9SOjEgZXJyb3IgaW4gYWRvcHRUZXh0ICIpOworICAgICAgICByYi5hZG9wdFRleHQodGV4dDIpOworICAgICAgICBpZiAocmIuZ2V0VGV4dCgpICE9IHRleHQyKQorICAgICAgICAgICAgZXJybG4oKFVuaWNvZGVTdHJpbmcpICJFUlJPUjoyIGVycm9yIGluIGFkb3B0VGV4dCAiKTsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICAqIFRlc3RpbmcgdGhlIG1ldGhvZHMgZmlyc3QoKSwgbmV4dCgpLCBuZXh0KGludCkgYW5kIGZvbGxvd2luZygpIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGaXJzdE5leHRGb2xsb3dpbmcoKSB7CisgICAgICAgIGludCBwLCBxOworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJUaGlzIGlzIGEgd29yZCBicmVhay4gSXNuJ3QgaXQ/IDIuMjUiOworICAgICAgICBsb2dsbigiVGVzdGluZyBmaXJzdCgpIGFuZCBuZXh0KCksIGZvbGxvd2luZygpIHdpdGggY3VzdG9tIHJ1bGVzIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHdvcmQgaXRlcmF0b3IgLSBzdHJpbmcgOi0gXCIiICsgdGVzdFN0cmluZyArICJcIlxuIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB3b3JkSXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IHdvcmRJdGVyMS5maXJzdCgpOworICAgICAgICBpZiAocCAhPSAwKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmaXJzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAwIik7CisgICAgICAgIHEgPSB3b3JkSXRlcjEubmV4dCg5KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDIwLCAiVGhpcyBpcyBhIHdvcmQgYnJlYWsiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSB3b3JkSXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjEsICIuIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gd29yZEl0ZXIxLm5leHQoMyk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyOCwgIiBJc24ndCAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSB3b3JkSXRlcjEubmV4dCgyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDMxLCAiaXQ/Iik7CisgICAgICAgIHEgPSB3b3JkSXRlcjEuZm9sbG93aW5nKDIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMiwgcSwgNCwgImlzIik7CisgICAgICAgIHEgPSB3b3JkSXRlcjEuZm9sbG93aW5nKDIyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDIyLCBxLCAyNywgIklzbid0Iik7CisgICAgICAgIHdvcmRJdGVyMS5sYXN0KCk7CisgICAgICAgIHAgPSB3b3JkSXRlcjEubmV4dCgpOworICAgICAgICBxID0gd29yZEl0ZXIxLmZvbGxvd2luZyh3b3JkSXRlcjEubGFzdCgpKTsKKyAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FIHx8IHEgIT0gQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBuZXh0KCkvZm9sbG93aW5nKCkgYXQgbGFzdCBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpICsgIlxuIik7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgdGVzdFN0cmluZyA9ICJXcml0ZSBoaW5kaSBoZXJlLiBcdTA5MmRcdTA5M2VcdTA5MzBcdTAzMDEgXHUwOTM4XHUwOTQxXHUwOTAyXHUwOTI2XHUwOTMwIFx1MDkzOVx1MDk0Y1x1MDk2NCI7IAorICAgICAgICBsb2dsbigidGVzdGluZyBjaGFyIGl0ZXIgLSBzdHJpbmc6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIGNoYXJJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gY2hhckl0ZXIxLmZpcnN0KCk7CisgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAxLCAiVyIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KDQpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNSwgInJpdGUiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCgxMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAxNywgIiBoaW5kaSBoZXJlLiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KC02KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDExLCAiIGhlcmUuIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoNik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAxNywgIiBoZXJlLiIpOworICAgICAgICAvLyBoaW5kaSBzdGFydHMgaGVyZQorICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KDQpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjIsICIgXHUwOTJkXHUwOTNlXHUwOTMwXHUwMzAxIik7ICAgLy8gTm9uc2Vuc2UsIGJ1dCBjb21wYXRpYmxlIGJldHdlZW4gb2xkIGFuZCBuZXcgcnVsZXMuCisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyNiwgIiBcdTA5MzhcdTA5NDFcdTA5MDIiKTsKKworICAgICAgICBxID0gY2hhckl0ZXIxLmZvbGxvd2luZygyNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyNCwgcSwgMjYsICJcdTA5NDFcdTA5MDIiKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5mb2xsb3dpbmcoMjApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjAsIHEsIDIyLCAiXHUwOTMwXHUwMzAxIik7CisgICAgICAgIHAgPSBjaGFySXRlcjEuZm9sbG93aW5nKGNoYXJJdGVyMS5sYXN0KCkpOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoY2hhckl0ZXIxLmxhc3QoKSk7CisgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZm9sbG93aW5nKCkvbmV4dCgpIGF0IGxhc3QgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7IAorICAgICAgICB0ZXN0U3RyaW5nID0gIkhlbGxvISBob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiBUaGFua3lvdS4gSG93IGFyZSB5b3UgZG9pbmc/IFRoaXMgIGNvc3RzICQyMCwwMCwwMDAuIjsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igc2VudEl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHNlbnRlbmNlIGl0ZXIgLSBTdHJpbmc6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIHNlbnRJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gc2VudEl0ZXIxLmZpcnN0KCk7CisgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5uZXh0KCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA3LCAiSGVsbG8hICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5uZXh0KDIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzEsICJob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dCgtMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA3LCAiaG93IGFyZSB5b3U/IEknYW0gZmluZS4gIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA2MCwgImhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDgzLCAiVGhpcyAgY29zdHMgJDIwLDAwLDAwMC4iKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoMSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAxLCBxLCA3LCAiZWxsbyEgIik7CisgICAgICAgIHEgPSBzZW50SXRlcjEuZm9sbG93aW5nKDEwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDEwLCBxLCAyMCwgIiBhcmUgeW91PyAiKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoMjApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjAsIHEsIDMxLCAiSSdhbSBmaW5lLiAiKTsKKyAgICAgICAgcCA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoc2VudEl0ZXIxLmxhc3QoKSk7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dChzZW50SXRlcjEubGFzdCgpKTsKKyAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FIHx8IHEgIT0gQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmb2xsb3dpbmcoKS9uZXh0KCkgYXQgbGFzdCBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvd1xyXG4gKGFyZSlcciB5b3U/IEknYW0gZmluZS0gVGhhbmt5b3UuIGZvb1x1MDBhMGJhciBIb3csIGFyZSwgeW91PyBUaGlzLCBjb3N0cyAkMjAsMDAsMDAwLiI7IAorICAgICAgICBsb2dsbigiKFVuaWNvZGVTdHJpbmcpdGVzdGluZyBsaW5lIGl0ZXIgLSBTdHJpbmc6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgbGluZUl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgbGluZUl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBsaW5lSXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJIZWxsbyEgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KDQpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjAsICJob3dcclxuIChhcmUpXHIgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQoLTQpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNywgImhvd1xyXG4gKGFyZSlcciAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCg2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDMwLCAiaG93XHJcbiAoYXJlKVxyIHlvdT8gSSdhbSAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzYsICJmaW5lLSAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDU0LCAiVGhhbmt5b3UuIGZvb1x1MDBhMGJhciAiKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5mb2xsb3dpbmcoNjApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgNjAsIHEsIDY0LCAicmUsICIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZygxKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDEsIHEsIDcsICJlbGxvISAiKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5mb2xsb3dpbmcoMTApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMTAsIHEsIDEyLCAiXHJcbiIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZygyMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyMCwgcSwgMjUsICJ5b3U/ICIpOworICAgICAgICBwID0gbGluZUl0ZXIxLmZvbGxvd2luZyhsaW5lSXRlcjEubGFzdCgpKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KGxpbmVJdGVyMS5sYXN0KCkpOworICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvbGxvd2luZygpL25leHQoKSBhdCBsYXN0IHBvc2l0aW9uIHJldHVybmVkICMiCisgICAgICAgICAgICAgICAgICAgICsgcCArICIgYW5kICIgKyBxICsgIiBpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOyAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyB0aGUgbWV0aG9kcyBsYXN0dCgpLCBwcmV2aW91cygpLCBhbmQgcHJlY2VkaW5nKCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TGFzdFByZXZpb3VzUHJlY2VkaW5nKCkgeworICAgICAgICBpbnQgcCwgcTsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiVGhpcyBpcyBhIHdvcmQgYnJlYWsuIElzbid0IGl0PyAyLjI1IGRvbGxhcnMiOworICAgICAgICBsb2dsbigiVGVzdGluZyBsYXN0KCkscHJldmlvdXMoKSwgcHJlY2VkaW5nKCkgd2l0aCBjdXN0b20gcnVsZXMiKTsKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgd29yZCBpdGVyYXRpb24gZm9yIHN0cmluZyBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgd29yZEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSB3b3JkSXRlcjEubGFzdCgpOworICAgICAgICBpZiAocCAhPSB0ZXN0U3RyaW5nLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIHEgPSB3b3JkSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDM3LCAiZG9sbGFycyIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzYsICIgIik7CisgICAgICAgIHEgPSB3b3JkSXRlcjEucHJlY2VkaW5nKDI1KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDI1LCBxLCAyMiwgIklzbiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjEsICIgIik7CisgICAgICAgIHEgPSB3b3JkSXRlcjEucHJlY2VkaW5nKDIwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDIwLCBxLCAxNSwgImJyZWFrIik7CisgICAgICAgIHAgPSB3b3JkSXRlcjEucHJlY2VkaW5nKHdvcmRJdGVyMS5maXJzdCgpKTsKKyAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwcmVjZWRpbmcoKSAgYXQgc3RhcnRpbmcgcG9zaXRpb24gcmV0dXJuZWQgIyIgKyBwICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgdGVzdFN0cmluZyA9ICJXcml0ZSBoaW5kaSBoZXJlLiBcdTA5MmRcdTA5M2VcdTA5MzBcdTA5MjQgXHUwOTM4XHUwOTQxXHUwOTAyXHUwOTI2XHUwOTMwIFx1MDkzOVx1MDMwMVx1MDk2NCI7IAorICAgICAgICBsb2dsbigidGVzdGluZyBjaGFyYWN0ZXIgaXRlcmF0aW9uIGZvciBzdHJpbmcgXCIgIiArIHRlc3RTdHJpbmcgKyAiXCIgXG4iKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgY2hhckl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBjaGFySXRlcjEubGFzdCgpOworICAgICAgICBpZiAocCAhPSB0ZXN0U3RyaW5nLmxlbmd0aCgpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmaXJzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzEsICJcdTA5NjQiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDI5LCAiXHUwOTM5XHUwMzAxIik7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJlY2VkaW5nKDI2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDI2LCBxLCAyMywgIlx1MDkzOFx1MDk0MVx1MDkwMiIpOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZWNlZGluZygxNik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAxNiwgcSwgMTUsICJlIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAxNCwgInIiKTsKKyAgICAgICAgY2hhckl0ZXIxLmZpcnN0KCk7CisgICAgICAgIHAgPSBjaGFySXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmVjZWRpbmcoY2hhckl0ZXIxLmZpcnN0KCkpOworICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHByZXZpb3VzKCkvcHJlY2VkaW5nKCkgYXQgc3RhcnRpbmcgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YgMFxuIik7IAorICAgICAgICB0ZXN0U3RyaW5nID0gIkhlbGxvISBob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiBUaGFua3lvdS4gSG93IGFyZSB5b3UgZG9pbmc/IFRoaXMgIGNvc3RzICQyMCwwMCwwMDAuIjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHNlbnRlbmNlIGl0ZXIgLSBTdHJpbmc6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igc2VudEl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIHNlbnRJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gc2VudEl0ZXIxLmxhc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gdGVzdFN0cmluZy5sZW5ndGgoKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogbGFzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIHEgPSBzZW50SXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDYwLCAiVGhpcyAgY29zdHMgJDIwLDAwLDAwMC4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDQxLCAiSG93IGFyZSB5b3UgZG9pbmc/ICIpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZWNlZGluZyg0MCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCA0MCwgcSwgMzEsICJUaGFua3lvdS4iKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5wcmVjZWRpbmcoMjUpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjUsIHEsIDIwLCAiSSdhbSAiKTsKKyAgICAgICAgc2VudEl0ZXIxLmZpcnN0KCk7CisgICAgICAgIHAgPSBzZW50SXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5wcmVjZWRpbmcoc2VudEl0ZXIxLmZpcnN0KCkpOworICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHByZXZpb3VzKCkvcHJlY2VkaW5nKCkgYXQgc3RhcnRpbmcgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YgMFxuIik7IAorICAgICAgICB0ZXN0U3RyaW5nID0gIkhlbGxvISBob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiBUaGFua3lvdS4gSG93IGFyZSB5b3UgZG9pbmc/IFRoaXNcbiBjb3N0cyAkMjAsMDAsMDAwLiI7IAorICAgICAgICBsb2dsbigidGVzdGluZyBsaW5lIGl0ZXIgLSBTdHJpbmc6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgbGluZUl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBsaW5lSXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IGxpbmVJdGVyMS5sYXN0KCk7CisgICAgICAgIGlmIChwICE9IHRlc3RTdHJpbmcubGVuZ3RoKCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGxhc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA3MiwgIiQyMCwwMCwwMDAuIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA2NiwgImNvc3RzICIpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZWNlZGluZyg0MCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCA0MCwgcSwgMzEsICJUaGFua3lvdS4iKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5wcmVjZWRpbmcoMjUpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjUsIHEsIDIwLCAiSSdhbSAiKTsKKyAgICAgICAgbGluZUl0ZXIxLmZpcnN0KCk7CisgICAgICAgIHAgPSBsaW5lSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5wcmVjZWRpbmcoc2VudEl0ZXIxLmZpcnN0KCkpOworICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHByZXZpb3VzKCkvcHJlY2VkaW5nKCkgYXQgc3RhcnRpbmcgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YgMFxuIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIHRoZSBtZXRob2QgSXNCb3VuZGFyeSgpIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdElzQm91bmRhcnkoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nMSA9ICJXcml0ZSBoZXJlLiBcdTA5MmRcdTAzMDFcdTA5MzBcdTA5MjQgXHUwOTM4XHUwOTQxXHUwOTAyXHUwOTI2XHUwOTMwIGFcdTAzMDF1IjsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgY2hhckl0ZXIxLnNldFRleHQodGVzdFN0cmluZzEpOworICAgICAgICBpbnQgYm91bmRzMVtdID0gezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDE0LCAxNSwgMTYsIDE3LCAyMCwgMjEsIDIyLCAyMywgMjUsIDI2fTsKKyAgICAgICAgZG9Cb3VuZGFyeVRlc3QoY2hhckl0ZXIxLCB0ZXN0U3RyaW5nMSwgYm91bmRzMSk7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEl0ZXIyID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB3b3JkSXRlcjIuc2V0VGV4dCh0ZXN0U3RyaW5nMSk7CisgICAgICAgIGludCBib3VuZHMyW10gPSB7MCwgNSwgNiwgMTAsIDExLCAxMiwgMTYsIDE3LCAyMiwgMjMsIDI2fTsKKyAgICAgICAgZG9Cb3VuZGFyeVRlc3Qod29yZEl0ZXIyLCB0ZXN0U3RyaW5nMSwgYm91bmRzMik7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy9JbnRlcm5hbCBzdWJyb3V0aW5lcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyogSW50ZXJuYWwgc3Vicm91dGluZSB1c2VkIGJ5IFRlc3RJc0JvdW5kYXJ5KCkgKi8gCisgICAgcHVibGljIHZvaWQgZG9Cb3VuZGFyeVRlc3QoQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIHRleHQsIGludFtdIGJvdW5kYXJpZXMpIHsKKyAgICAgICAgbG9nbG4oInRlc3RJc0JvdW5kYXJ5KCk6Iik7CisgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgYm9vbGVhbiBpc0I7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpc0IgPSBiaS5pc0JvdW5kYXJ5KGkpOworICAgICAgICAgICAgbG9nbG4oImJpLmlzQm91bmRhcnkoIiArIGkgKyAiKSAtPiAiICsgaXNCKTsKKyAgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcF0pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQikKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCB0cnVlLCBnb3QgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICBwKys7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChpc0IpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgZmFsc2UsIGdvdCB0cnVlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLypJbnRlcm5hbCBzdWJyb3V0aW5lIHVzZWQgZm9yIGNvbXBhcmlzaW9uIG9mIGV4cGVjdGVkIGFuZCBhY3F1aXJlZCByZXN1bHRzICovCisgICAgcHVibGljIHZvaWQgZG9UZXN0KFN0cmluZyB0ZXN0U3RyaW5nLCBpbnQgc3RhcnQsIGludCBnb3RvZmZzZXQsIGludCBleHBlY3RlZE9mZnNldCwgU3RyaW5nIGV4cGVjdGVkU3RyaW5nKSB7CisgICAgICAgIFN0cmluZyBzZWxlY3RlZDsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gZXhwZWN0ZWRTdHJpbmc7CisgICAgICAgIGlmIChnb3RvZmZzZXQgIT0gZXhwZWN0ZWRPZmZzZXQpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6KioqKnJldHVybmVkICMiICsgZ290b2Zmc2V0ICsgIiBpbnN0ZWFkIG9mICMiICsgZXhwZWN0ZWRPZmZzZXQpOworICAgICAgICBpZiAoc3RhcnQgPD0gZ290b2Zmc2V0KSB7CisgICAgICAgICAgICBzZWxlY3RlZCA9IHRlc3RTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBnb3RvZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2VsZWN0ZWQgPSB0ZXN0U3RyaW5nLnN1YnN0cmluZyhnb3RvZmZzZXQsIHN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXNlbGVjdGVkLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6KioqKnNlbGVjdGVkIFwiIiArIHNlbGVjdGVkICsgIlwiIGluc3RlYWQgb2YgXCIiICsgZXhwZWN0ZWQgKyAiXCIiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nbG4oIioqKipzZWxlY3RlZCBcIiIgKyBzZWxlY3RlZCArICJcIiIpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzEzZGVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3QuamF2YQpAQCAtMCwwICsxLDUwNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKyAKKy8vUmVncmVzc2lvbiB0ZXN0aW5nIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKy8vCisvLyAgVE9ETzogIFRoZXNlIHRlc3RzIHNob3VsZCBiZSBtb3N0bHkgcmV0aXJlZC4KKy8vICAgICAgICAgIE11Y2ggb2YgdGhlIHRlc3QgZGF0YSB0aGF0IHdhcyBvcmlnaW5hbHkgaGVyZSB3YXMgcmVtb3ZlZCB3aGVuIHRoZSBSQkJJIHJ1bGVzCisvLyAgICAgICAgICAgIHdlcmUgdXBkYXRlZCB0byBtYXRjaCB0aGUgVW5pY29kZSBib3VuZGFyeSBUUnMsIGFuZCB0aGUgZGF0YSB3YXMgZm91bmQgdG8gYmUgaW52YWxpZC4KKy8vICAgICAgICAgIE11Y2ggb2YgdGhlIHJlbWFpbmluZyBkYXRhIGhhcyBiZWVuIG1vdmVkIGludG8gdGhlIHJiYml0c3QudHh0IHRlc3QgZGF0YSBmaWxlLAorLy8gICAgICAgICAgICB3aGljaCBpcyBjb21tb24gYmV0d2VlbiBJQ1U0QyBhbmQgSUNVNEouICBUaGUgcmVtYWluaW5nIHRlc3QgZGF0YSBzaG91bGQgYWxzbyBiZSBtb3ZlZCwKKy8vICAgICAgICAgICAgb3Igc2ltcGx5IHJldGlyZWQgaWYgaXQgaXMgbm8gbG9uZ2VyIGludGVyZXN0aW5nLgoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitwdWJsaWMgY2xhc3MgUkJCSVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayAKK3sgIAorICAgIAorICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICBuZXcgUkJCSVRlc3QoKS5ydW4oYXJncyk7CisgIH0KKworICBwdWJsaWMgUkJCSVRlc3QoKSB7IAorICB9CisgIAorICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaGFsZk5BID0gIlx1MDkyOFx1MDk0ZFx1MjAwZCI7ICAvKmhhbGZmb3JtIE5BID0gZGV2YW5pZ2lyaSBOQSArIHZpcmFtYShzdXByZXNzZXMgaW5oZXJlbnQgdm93ZWwpKyB6ZXJvIHdpZHRoIGpvaW5lciAqLyAgCisKKworICAvLyB0ZXN0cyBkZWZhdWx0IHJ1bGVzIGJhc2VkIGNoYXJhY3RlciBpdGVyYXRpb24uCisgIC8vIEJ1aWxkcyBhIG5ldyBpdGVyYXRvciBmcm9tIHRoZSBzb3VyY2UgcnVsZXMgaW4gdGhlIGRlZmF1bHQgKHByZWJ1aWx0KSBpdGVyYXRvci4KKyAgLy8KKyAgcHVibGljIHZvaWQgVGVzdERlZmF1bHRSdWxlQmFzZWRDaGFyYWN0ZXJJdGVyYXRpb24oKXsKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaT0oUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICBsb2dsbigiVGVzdGluZyB0aGUgUkJCSSBmb3IgY2hhcmFjdGVyIGl0ZXJhdGlvbiBieSB1c2luZyBkZWZhdWx0IHJ1bGVzIik7CisKKyAgICAgIC8vZmV0Y2ggdGhlIHJ1bGVzIHVzZWQgdG8gY3JlYXRlIHRoZSBhYm92ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICBTdHJpbmcgZGVmYXVsdFJ1bGVzPXJiYmkudG9TdHJpbmcoKTsKKyAgICAgIAorICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlckRlZmF1bHQ9bnVsbDsKKyAgICAgIHRyeXsKKyAgICAgICAgICBjaGFySXRlckRlZmF1bHQgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGRlZmF1bHRSdWxlcyk7IAorICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgIGVycmxuKCJFUlJPUjogZmFpbGVkIGNvbnN0cnVjdGlvbiBpbiBUZXN0RGVmYXVsdFJ1bGVCYXNlZENoYXJhY3Rlckl0ZXJhdGlvbigpIisgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorCisgICAgICBWZWN0b3IgY2hhcmRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJIIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJlIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJvIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJlXHUwMzAxIik7ICAgICAgICAgICAgICAgICAgIC8vYWN1dGVFCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCImIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJlXHUwMzAzIik7ICAgICAgICAgICAgICAgICAgIC8vdGlsZGFFCisgICAgICAvL2RldmFuYWdpcmkgY2hhcmFjdGVycyBmb3IgSGluZGkgc3VwcG9ydAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTA2Iik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgQUEKKyAgICAgIC8vY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTNlXHUwOTAxIik7ICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgdm93ZWxzaWduIEFBKyBjaGFuZHJhYmluZGh1CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MTZcdTA5NDciKTsgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBLSEErdm93ZWxzaWduIEUKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOFx1MDk0MVx1MDkwMiIpOyAgICAgICAgLy9kZXZhbmFnaXJpIFNBK3Zvd2Vsc2lnbiBVICsgYW51c3ZhcmEoYmluZHUpCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MjYiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBjb25zb25hbnQgREEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzMCIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIGNvbnNvbmFudCBSQQorICAgICAgLy8gY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTRjIik7ICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgSEErdm93ZWwgc2lnbiBBSQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgZGFuZGEKKyAgICAgIC8vZW5kIGhpbmRpIGNoYXJhY3RlcnMgICAgICAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIkFcdTAzMDIiKTsgICAgICAgICAgICAgICAgICAgLy8gY2lyY3VtZmxleEEgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJpXHUwMzAxIik7ICAgICAgICAgICAgICAgICAgIC8vIGFjdXRlQmVsb3dJICAgCisgICAgICAvLyBjb25qb2luaW5nIGphbW8uLi4gCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlxyXG4iKTsgICAgICAgICAgICAgICAgICAgICAgLy8ga2VlcCBDUkxGIHNlcXVlbmNlcyB0b2dldGhlciAgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJTXHUwMzAwIik7ICAgICAgICAgICAgICAgICAgIC8vZ3JhdmVTCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJpXHUwMzAxIik7ICAgICAgICAgICAgICAgICAgIC8vIGFjdXRlQmVsb3dJCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIhIik7CisKKyAgICAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgICAgLy8gYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQKKyAgICAgIC8vIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorICAgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAgIC8vIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLgorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVjMGMxIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWQ1NmQiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1ZDU1YyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVjNzc4Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWM1ZjAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1ZDU2OSIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVjN2E1Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWI4NWMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1YWQ1MCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVkNjhjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgLy8gY29uam9pbmluZyBqYW1vLi4uCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWFiIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNzVcdTExYWIiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwYlx1MTE2N1x1MTFhYiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWI4Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwNVx1MTE2OSIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTAwXHUxMTZkIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNmMiKTsKKworCisgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGNoYXJJdGVyRGVmYXVsdCwgY2hhcmRhdGEpOworCisgIH0KKworICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdFJ1bGVCYXNlZFdvcmRJdGVyYXRpb24oKXsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciB3b3JkIGl0ZXJhdGlvbiB1c2luZyBkZWZhdWx0IHJ1bGVzIik7CisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmk9KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgIC8vZmV0Y2ggdGhlIHJ1bGVzIHVzZWQgdG8gY3JlYXRlIHRoZSBhYm92ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICBTdHJpbmcgZGVmYXVsdFJ1bGVzPXJiYmkudG9TdHJpbmcoKTsKKyAgICAgIAorICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlckRlZmF1bHQ9bnVsbDsKKyAgICAgIHRyeXsKKyAgICAgIHdvcmRJdGVyRGVmYXVsdCAgID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoZGVmYXVsdFJ1bGVzKTsgCisgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3REZWZhdWx0UnVsZUJhc2VkV29yZEl0ZXJhdGlvbigpIC0tIGN1c3RvbSBydWxlcyIrIGlhZS50b1N0cmluZygpKTsKKyAgICAgIH0KKworICAgICAgVmVjdG9yIHdvcmRkYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCAoIldyaXRlIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50ICgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCAoIndvcmRydWxlcyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCAoIi4iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIC8vd29yZGRhdGEuYWRkRWxlbWVudCgiYWxwaGEtYmV0YS1nYW1tYSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOyAgICAgIAorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTJmXHUwOTM5Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5M2YiICsgaGFsZk5BICsgIlx1MDkyNlx1MDk0MCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTQ4Iik7CisgICAgICAvLyAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7ICAgLy9kYW5kYSBmb2xsb3dlZCBieSBhIHNwYWNlCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MDVcdTA5M2VcdTA5MmEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOFx1MDkzZlx1MDkxNlx1MDk0Ylx1MDkxN1x1MDk0NyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiPyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJJdCdzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgIC8vIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiQzMC4xMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOyAgCisgICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiQmFkZ2VzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCI/Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJCQURHRVMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIjEwMDAsMjMzLDQ1Ni4wMDAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKworICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdCh3b3JkSXRlckRlZmF1bHQsIHdvcmRkYXRhKTsKKyAgfQorICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1BhcmFncmFwaFNlcGFyYXRvciA9ICJcdTIwMjkiOworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0xpbmVTZXBhcmF0b3IgICAgICA9ICJcdTIwMjgiOworCisgIHB1YmxpYyB2b2lkIFRlc3REZWZhdWx0UnVsZUJhc2VkU2VudGVuY2VJdGVyYXRpb24oKXsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciBzZW50ZW5jZSBpdGVyYXRpb24gdXNpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpPShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKUJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgCisgICAgICAvL2ZldGNoIHRoZSBydWxlcyB1c2VkIHRvIGNyZWF0ZSB0aGUgYWJvdmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgU3RyaW5nIGRlZmF1bHRSdWxlcz1yYmJpLnRvU3RyaW5nKCk7CisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHNlbnRJdGVyRGVmYXVsdD1udWxsOworICAgICAgdHJ5eworICAgICAgICAgIHNlbnRJdGVyRGVmYXVsdCAgID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoZGVmYXVsdFJ1bGVzKTsgCisgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3REZWZhdWx0UnVsZUJhc2VkU2VudGVuY2VJdGVyYXRpb24oKSIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICB9CisgICAgICAKKyAgICAgIFZlY3RvciBzZW50ZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIihUaGlzIGlzIGl0LikgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJUZXN0aW5nIHRoZSBzZW50ZW5jZSBpdGVyYXRvci4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcIlRoaXMgaXNuXCd0IGl0LlwiICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiSGkhICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXMgaXQuKSAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlRoaXMgaXMgYSBzaW1wbGUgc2FtcGxlIHNlbnRlbmNlLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlwiVGhpcyBpc25cJ3QgaXQuXCIgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIaSEgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIk5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiB1bmEgc2VsdmEgb3NjdXJhLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkNoZSBsYSBkcml0dGEgdmlhIGF2ZW8gc21hcnJpdGEuICIpOworICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudEl0ZXJEZWZhdWx0LCBzZW50ZGF0YSk7CisgIH0KKyAgIAorICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdFJ1bGVCYXNlZExpbmVJdGVyYXRpb24oKXsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciBsaW5lIGl0ZXJhdGlvbiB1c2luZyBkZWZhdWx0IHJ1bGVzIik7CisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmk9KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgIC8vZmV0Y2ggdGhlIHJ1bGVzIHVzZWQgdG8gY3JlYXRlIHRoZSBhYm92ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICBTdHJpbmcgZGVmYXVsdFJ1bGVzPXJiYmkudG9TdHJpbmcoKTsKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgbGluZUl0ZXJEZWZhdWx0PW51bGw7CisgICAgICB0cnl7CisgICAgICAgICAgbGluZUl0ZXJEZWZhdWx0ICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihkZWZhdWx0UnVsZXMpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdERlZmF1bHRSdWxlQmFzZWRMaW5lSXRlcmF0aW9uKCkiICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorCisgICAgIFZlY3RvciBsaW5lZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiTXVsdGktIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIkxldmVsICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJleGFtcGxlICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJvZiAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiYSAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgic2VtaS0iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiaWRpb3RpYyAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgibm9uLSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJzZW5zaWNhbCAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiKG5vbi0iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiaW1wb3J0YW50KSAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgic2VudGVuY2UuICIpOworCisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIkhpICAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiSGVsbG8gIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIkhvd1xuIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImFyZVxyIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoInlvdSIgKyBrTGluZVNlcGFyYXRvcik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImZpbmUuXHQiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZ29vZC4gICIpOworCisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIk5vd1xyIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImlzXG4iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgidGhlXHJcbiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJ0aW1lXG4iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZm9yXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiYWxsIik7CisKKyAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lSXRlckRlZmF1bHQsIGxpbmVkYXRhKTsKKworCisgIH0KKyAKKyAgICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAvLyBnZW5lcmFsIHRlc3Qgc3Vicm91dGluZXMKKyAgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgcHJpdmF0ZSB2b2lkIGdlbmVyYWxJdGVyYXRvclRlc3QoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBWZWN0b3IgZXhwZWN0ZWRSZXN1bHQpeworICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgIFN0cmluZyB0ZXh0OworICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZFJlc3VsdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgIHRleHQgPSAoU3RyaW5nKWV4cGVjdGVkUmVzdWx0LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHRleHQpOworICAgICAgICAgfQorICAgICAgICAgdGV4dCA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgaWYgKHJiYmkgPT0gbnVsbCkgeworICAgICAgICAgICAgIGVycmxuKCJudWxsIGl0ZXJhdG9yLCB0ZXN0IHNraXBwZWQuIik7CisgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorCisgICAgICAgICByYmJpLnNldFRleHQodGV4dCk7CisKKyAgICAgICAgIFZlY3RvciBuZXh0UmVzdWx0cyA9IF90ZXN0Rmlyc3RBbmROZXh0KHJiYmksIHRleHQpOworICAgICAgICAgVmVjdG9yIHByZXZpb3VzUmVzdWx0cyA9IF90ZXN0TGFzdEFuZFByZXZpb3VzKHJiYmksIHRleHQpOworCisgICAgICAgICBsb2dsbigiY29tcGFyaW5nIGZvcndhcmQgYW5kIGJhY2t3YXJkLi4uIik7CisgICAgICAgICBpbnQgZXJycyA9IGdldEVycm9yQ291bnQoKTsKKyAgICAgICAgIGNvbXBhcmVGcmFnbWVudExpc3RzKCJmb3J3YXJkIGl0ZXJhdGlvbiIsICJiYWNrd2FyZCBpdGVyYXRpb24iLCBuZXh0UmVzdWx0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1Jlc3VsdHMpOworICAgICAgICAgaWYgKGdldEVycm9yQ291bnQoKSA9PSBlcnJzKSB7CisgICAgICAgICAgICAgbG9nbG4oImNvbXBhcmluZyBleHBlY3RlZCBhbmQgYWN0dWFsLi4uIik7CisgICAgICAgICAgICAgY29tcGFyZUZyYWdtZW50TGlzdHMoImV4cGVjdGVkIHJlc3VsdCIsICJhY3R1YWwgcmVzdWx0IiwgZXhwZWN0ZWRSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRSZXN1bHRzKTsKKyAgICAgICAgIH0KKworICAgICAgICBpbnRbXSBib3VuZGFyaWVzID0gbmV3IGludFtleHBlY3RlZFJlc3VsdC5zaXplKCkgKyAzXTsKKyAgICAgICAgYm91bmRhcmllc1swXSA9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgICAgYm91bmRhcmllc1sxXSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWRSZXN1bHQuc2l6ZSgpOyBpKyspCisgICAgICAgICBib3VuZGFyaWVzW2kgKyAyXSA9IGJvdW5kYXJpZXNbaSArIDFdICsgKChTdHJpbmcpZXhwZWN0ZWRSZXN1bHQuZWxlbWVudEF0KGkpKS5sZW5ndGgoKTsKKyAgICAgIAorICAgICAgICBib3VuZGFyaWVzW2JvdW5kYXJpZXMubGVuZ3RoIC0gMV0gPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAKKyAgICAgICAgX3Rlc3RGb2xsb3dpbmcocmJiaSwgdGV4dCwgYm91bmRhcmllcyk7CisgICAgICAgIF90ZXN0UHJlY2VkaW5nKHJiYmksIHRleHQsIGJvdW5kYXJpZXMpOworICAgICAgICBfdGVzdElzQm91bmRhcnkocmJiaSwgdGV4dCwgYm91bmRhcmllcyk7CisKKyAgICAgICAgZG9NdWx0aXBsZVNlbGVjdGlvblRlc3QocmJiaSwgdGV4dCk7CisgICAgIH0KKworICAgICBwcml2YXRlIFZlY3RvciBfdGVzdEZpcnN0QW5kTmV4dChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFN0cmluZyB0ZXh0KSB7CisgICAgICAgICBpbnQgcCA9IHJiYmkuZmlyc3QoKTsKKyAgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgICBWZWN0b3IgcmVzdWx0ID0gbmV3IFZlY3RvcigpOworCisgICAgICAgICBpZiAocCAhPSAwKQorICAgICAgICAgICAgIGVycmxuKCJmaXJzdCgpIHJldHVybmVkICIgKyBwICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgIHdoaWxlIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgIHAgPSByYmJpLm5leHQoKTsKKyAgICAgICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICAgaWYgKHAgPD0gbGFzdFApCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dCgpIGZhaWxlZCB0byBtb3ZlIGZvcndhcmQ6IG5leHQoKSBvbiBwb3NpdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgeWllbGRlZCAiICsgcCk7CisKKyAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZEVsZW1lbnQodGV4dC5zdWJzdHJpbmcobGFzdFAsIHApKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgIGlmIChsYXN0UCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgICAgICAgICAgZXJybG4oIm5leHQoKSByZXR1cm5lZCBET05FIHByZW1hdHVyZWx5OiBvZmZzZXQgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiBpbnN0ZWFkIG9mICIgKyB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgbGFzdFAgPSBwOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgfQorCisgICAgIHByaXZhdGUgVmVjdG9yIF90ZXN0TGFzdEFuZFByZXZpb3VzKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaSwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgIGludCBwID0gcmJiaS5sYXN0KCk7CisgICAgICAgICBpbnQgbGFzdFAgPSBwOworICAgICAgICAgVmVjdG9yIHJlc3VsdCA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAgaWYgKHAgIT0gdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgICAgICBlcnJsbigibGFzdCgpIHJldHVybmVkICIgKyBwICsgIiBpbnN0ZWFkIG9mICIgKyB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgIHdoaWxlIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgIHAgPSByYmJpLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgaWYgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgIGlmIChwID49IGxhc3RQKQorICAgICAgICAgICAgICAgICAgICAgZXJybG4oInByZXZpb3VzKCkgZmFpbGVkIHRvIG1vdmUgYmFja3dhcmQ6IHByZXZpb3VzKCkgb24gcG9zaXRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIHlpZWxkZWQgIiArIHApOworCisgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnRFbGVtZW50QXQodGV4dC5zdWJzdHJpbmcocCwgbGFzdFApLCAwKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgIGlmIChsYXN0UCAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgZXJybG4oInByZXZpb3VzKCkgcmV0dXJuZWQgRE9ORSBwcmVtYXR1cmVseTogb2Zmc2V0IHdhcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGxhc3RQID0gcDsKKyAgICAgICAgIH0KKyAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgIH0KKworICAgICBwcml2YXRlIHZvaWQgY29tcGFyZUZyYWdtZW50TGlzdHMoU3RyaW5nIGYxTmFtZSwgU3RyaW5nIGYyTmFtZSwgVmVjdG9yIGYxLCBWZWN0b3IgZjIpIHsKKyAgICAgICAgIGludCBwMSA9IDA7CisgICAgICAgICBpbnQgcDIgPSAwOworICAgICAgICAgU3RyaW5nIHMxOworICAgICAgICAgU3RyaW5nIHMyOworICAgICAgICAgaW50IHQxID0gMDsKKyAgICAgICAgIGludCB0MiA9IDA7CisKKyAgICAgICAgIHdoaWxlIChwMSA8IGYxLnNpemUoKSAmJiBwMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgIHMxID0gKFN0cmluZylmMS5lbGVtZW50QXQocDEpOworICAgICAgICAgICAgIHMyID0gKFN0cmluZylmMi5lbGVtZW50QXQocDIpOworICAgICAgICAgICAgIHQxICs9IHMxLmxlbmd0aCgpOworICAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworCisgICAgICAgICAgICAgaWYgKHMxLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICAgPiIgKyBzMSArICI8Iik7CisgICAgICAgICAgICAgICAgICsrcDE7CisgICAgICAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICBpbnQgdGVtcFQxID0gdDE7CisgICAgICAgICAgICAgICAgIGludCB0ZW1wVDIgPSB0MjsKKyAgICAgICAgICAgICAgICAgaW50IHRlbXBQMSA9IHAxOworICAgICAgICAgICAgICAgICBpbnQgdGVtcFAyID0gcDI7CisKKyAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBUMSAhPSB0ZW1wVDIgJiYgdGVtcFAxIDwgZjEuc2l6ZSgpICYmIHRlbXBQMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBUMSA8IHRlbXBUMiAmJiB0ZW1wUDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVDEgKz0gKChTdHJpbmcpZjEuZWxlbWVudEF0KHRlbXBQMSkpLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICsrdGVtcFAxOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBUMiA8IHRlbXBUMSAmJiB0ZW1wUDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVDIgKz0gKChTdHJpbmcpZjIuZWxlbWVudEF0KHRlbXBQMikpLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICsrdGVtcFAyOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGxvZ2xuKCIqKiogIiArIGYxTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgICB3aGlsZSAocDEgPD0gdGVtcFAxICYmIHAxIDwgZjEuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICBzMSA9IChTdHJpbmcpZjEuZWxlbWVudEF0KHAxKTsKKyAgICAgICAgICAgICAgICAgICAgIHQxICs9IHMxLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICoqKiA+IiArIHMxICsgIjwiKTsKKyAgICAgICAgICAgICAgICAgICAgICsrcDE7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgbG9nbG4oIioqKioqICIgKyBmMk5hbWUgKyAiIGhhczoiKTsKKyAgICAgICAgICAgICAgICAgd2hpbGUgKHAyIDw9IHRlbXBQMiAmJiBwMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICAgICAgICAgICB0MiArPSBzMi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgIGRlYnVnTG9nbG4oIiAqKioqKiA+IiArIHMyICsgIjwiKTsKKyAgICAgICAgICAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgZXJybG4oIkRpc2NyZXBhbmN5IGJldHdlZW4gIiArIGYxTmFtZSArICIgYW5kICIgKyBmMk5hbWUpOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0Rm9sbG93aW5nKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaSwgU3RyaW5nIHRleHQsIGludFtdIGJvdW5kYXJpZXMpIHsKKyAgICAgICBsb2dsbigidGVzdEZvbGxvd2luZygpOiIpOworICAgICAgIGludCBwID0gMjsKKyAgICAgICBmb3IoaW50IGkgPSAwOyBpIDw9IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICBpZiAoaSA9PSBib3VuZGFyaWVzW3BdKQorICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICBpbnQgYiA9IHJiYmkuZm9sbG93aW5nKGkpOworICAgICAgICAgICBsb2dsbigicmJiaS5mb2xsb3dpbmcoIiArIGkgKyAiKSAtPiAiICsgYik7CisgICAgICAgICAgIGlmIChiICE9IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gZm9sbG93aW5nKCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgIiArIGJvdW5kYXJpZXNbcF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgYik7CisgICAgICAgfQorICAgfQorCisgICBwcml2YXRlIHZvaWQgX3Rlc3RQcmVjZWRpbmcoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgIGxvZ2xuKCJ0ZXN0UHJlY2VkaW5nKCk6Iik7CisgICAgICAgaW50IHAgPSAwOworICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgIGludCBiID0gcmJiaS5wcmVjZWRpbmcoaSk7CisgICAgICAgICAgIGxvZ2xuKCJyYmJpLnByZWNlZGluZygiICsgaSArICIpIC0+ICIgKyBiKTsKKyAgICAgICAgICAgaWYgKGIgIT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBwcmVjZWRpbmcoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCAiICsgYm91bmRhcmllc1twXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBnb3QgIiArIGIpOworICAgICAgICAgICBpZiAoaSA9PSBib3VuZGFyaWVzW3AgKyAxXSkKKyAgICAgICAgICAgICAgICsrcDsKKyAgICAgICB9CisgICB9CisKKyAgIHByaXZhdGUgdm9pZCBfdGVzdElzQm91bmRhcnkoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgIGxvZ2xuKCJ0ZXN0SXNCb3VuZGFyeSgpOiIpOworICAgICAgIGludCBwID0gMTsKKyAgICAgICBib29sZWFuIGlzQjsKKyAgICAgICBmb3IoaW50IGkgPSAwOyBpIDw9IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICBpc0IgPSByYmJpLmlzQm91bmRhcnkoaSk7CisgICAgICAgICAgIGxvZ2xuKCJyYmJpLmlzQm91bmRhcnkoIiArIGkgKyAiKSAtPiAiICsgaXNCKTsKKyAgICAgICAgICAgaWYoaSA9PSBib3VuZGFyaWVzW3BdKSB7CisgICAgICAgICAgICAgICBpZiAoIWlzQikKKyAgICAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gaXNCb3VuZGFyeSgpIGZvciAiICsgaSArICI6IGV4cGVjdGVkIHRydWUsIGdvdCBmYWxzZSIpOworICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgaWYoaXNCKQorICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgZmFsc2UsIGdvdCB0cnVlIik7CisgICAgICAgICAgIH0KKyAgICAgICB9CisgICB9CisgICBwcml2YXRlIHZvaWQgZG9NdWx0aXBsZVNlbGVjdGlvblRlc3QoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpdGVyYXRvciwgU3RyaW5nIHRlc3RUZXh0KQorICAgeworICAgICAgIGxvZ2xuKCJNdWx0aXBsZSBzZWxlY3Rpb24gdGVzdC4uLiIpOworICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgdGVzdEl0ZXJhdG9yID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpaXRlcmF0b3IuY2xvbmUoKTsKKyAgICAgICBpbnQgb2Zmc2V0ID0gaXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICBpbnQgdGVzdE9mZnNldDsKKyAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgZG8geworICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLmZpcnN0KCk7CisgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubmV4dChjb3VudCk7CisgICAgICAgICAgIGxvZ2xuKCJuZXh0KCIgKyBjb3VudCArICIpIC0+ICIgKyB0ZXN0T2Zmc2V0KTsKKyAgICAgICAgICAgaWYgKG9mZnNldCAhPSB0ZXN0T2Zmc2V0KQorICAgICAgICAgICAgICAgZXJybG4oIm5leHQobikgYW5kIG5leHQoKSBub3QgcmV0dXJuaW5nIGNvbnNpc3RlbnQgcmVzdWx0czogZm9yIHN0ZXAgIiArIGNvdW50ICsgIiwgbmV4dChuKSByZXR1cm5lZCAiICsgdGVzdE9mZnNldCArICIgYW5kIG5leHQoKSBoYWQgIiArIG9mZnNldCk7CisKKyAgICAgICAgICAgaWYgKG9mZnNldCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICBvZmZzZXQgPSBpdGVyYXRvci5uZXh0KCk7CisgICAgICAgICAgIH0KKyAgICAgICB9IHdoaWxlIChvZmZzZXQgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKTsKKworICAgICAgIC8vIG5vdyBkbyBpdCBiYWNrd2FyZHMuLi4KKyAgICAgICBvZmZzZXQgPSBpdGVyYXRvci5sYXN0KCk7CisgICAgICAgY291bnQgPSAwOworCisgICAgICAgZG8geworICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5uZXh0KGNvdW50KTsKKyAgICAgICAgICAgbG9nbG4oIm5leHQoIiArIGNvdW50ICsgIikgLT4gIiArIHRlc3RPZmZzZXQpOworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3RPZmZzZXQpCisgICAgICAgICAgICAgICBlcnJsbigibmV4dChuKSBhbmQgbmV4dCgpIG5vdCByZXR1cm5pbmcgY29uc2lzdGVudCByZXN1bHRzOiBmb3Igc3RlcCAiICsgY291bnQgKyAiLCBuZXh0KG4pIHJldHVybmVkICIgKyB0ZXN0T2Zmc2V0ICsgIiBhbmQgbmV4dCgpIGhhZCAiICsgb2Zmc2V0KTsKKworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgY291bnQtLTsKKyAgICAgICAgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLnByZXZpb3VzKCk7CisgICAgICAgICAgIH0KKyAgICAgICB9IHdoaWxlIChvZmZzZXQgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKTsKKyAgIH0KKworICAgcHJpdmF0ZSB2b2lkIGRlYnVnTG9nbG4oU3RyaW5nIHMpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9zID0gIjAwMDAiOworICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPCAnXHUwMDdmJykKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGMpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgdGVtcCA9IEludGVnZXIudG9IZXhTdHJpbmcoKGludCljKTsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKHplcm9zLnN1YnN0cmluZygwLCA0IC0gdGVtcC5sZW5ndGgoKSkpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQodGVtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgIGxvZ2xuKG91dC50b1N0cmluZygpKTsKKyAgICB9CisgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3RFeHRlbmRlZC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3RFeHRlbmRlZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNWY5NjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdEV4dGVuZGVkLmphdmEKQEAgLTAsMCArMSw0OTIgQEAKKy8qCisgKiBDcmVhdGVkIG9uIE1heSA1LCAyMDA0CisgKiAKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmk7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworCisvKioKKyAqIFJ1bGUgYmFzZWQgYnJlYWsgaXRlcmF0b3IgZGF0YSBkcml2ZW4gdGVzdC4KKyAqICAgICAgUGVyZm9ybSB0aGUgdGVzdHMgZnJvbSB0aGUgZmlsZSByYmJpdHN0LnR4dC4KKyAqICAgICAgVGhlIHRlc3QgZGF0YSBmaWxlIGlzIGNvbW1vbiB0byBib3RoIElDVTRDIGFuZCBJQ1U0Si4KKyAqICAgICAgU2VlIHRoZSBkYXRhIGZpbGUgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIHRlc3RzLgorICoKKyAqLworcHVibGljIGNsYXNzIFJCQklUZXN0RXh0ZW5kZWQgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncyl0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFJCQklUZXN0RXh0ZW5kZWQoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIAorcHVibGljIFJCQklUZXN0RXh0ZW5kZWQoKSB7IAorICAgIH0KKworCisKK3N0YXRpYyBjbGFzcyBUZXN0UGFyYW1zIHsKKyAgICBCcmVha0l0ZXJhdG9yICAgYmk7CisgICAgU3RyaW5nQnVmZmVyICAgIGRhdGFUb0JyZWFrICAgID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIGludFtdICAgICAgICAgICBleHBlY3RlZEJyZWFrcyA9IG5ldyBpbnRbMTAwMF07CisgICAgaW50W10gICAgICAgICAgIHNyY0xpbmUgICAgICAgID0gbmV3IGludFsxMDAwXTsKKyAgICBpbnRbXSAgICAgICAgICAgc3JjQ29sICAgICAgICAgPSBuZXcgaW50WzEwMDBdOworICAgIFVMb2NhbGUgICAgICAgICBjdXJyZW50TG9jYWxlICA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworfQorCisKK3B1YmxpYyB2b2lkIFRlc3RFeHRlbmRlZCgpIHsKKworICAgIFRlc3RQYXJhbXMgICAgIHRwID0gbmV3IFRlc3RQYXJhbXMoKTsKKworCisgICAgLy8KKyAgICAvLyAgT3BlbiBhbmQgcmVhZCB0aGUgdGVzdCBkYXRhIGZpbGUuCisgICAgLy8KKyAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSBudWxsOworICAgIFN0cmluZ0J1ZmZlciAgdGVzdEZpbGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgdHJ5IHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBSQkJJVGVzdEV4dGVuZGVkLmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oInJiYml0c3QudHh0Iik7CisgICAgICAgIGlmIChpcyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IG9wZW4gdGVzdCBkYXRhIGZpbGUgcmJiaXRzdC50eHQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsICJVVEYtOCIpOyAgICAgICAgICAgCisgICAgICAgIGludCBjOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBjID0gaXNyLnJlYWQoKTsKKyAgICAgICAgICAgIGlmIChjIDwgMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlmIChjPT0weEZFRkYgJiYgY291bnQ9PTEpIHsKKyAgICAgICAgICAgICAgIC8vIEJPTSBpbiB0aGUgdGVzdCBkYXRhIGZpbGUuICBEaXNjYXJkIGl0LgorICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgIAorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRlc3RGaWxlQnVmLCBjKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKGUudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSB0ZXN0RmlsZUJ1Zi50b1N0cmluZygpOworICAgIAorCisgICAgZmluYWwgaW50ICBQQVJTRV9DT01NRU5UID0gMTsKKyAgICBmaW5hbCBpbnQgIFBBUlNFX1RBRyAgICAgPSAyOworICAgIGZpbmFsIGludCAgUEFSU0VfREFUQSAgICA9IDM7CisgICAgZmluYWwgaW50ICBQQVJTRV9OVU0gICAgID0gNDsKKworICAgIGludCBwYXJzZVN0YXRlID0gUEFSU0VfVEFHOworCisgICAgaW50IHNhdmVkU3RhdGUgPSBQQVJTRV9UQUc7CisKKyAgICBmaW5hbCBjaGFyIENIX0xGICAgICAgICA9IDB4MGE7CisgICAgZmluYWwgY2hhciBDSF9DUiAgICAgICAgPSAweDBkOworICAgIGZpbmFsIGNoYXIgQ0hfSEFTSCAgICAgID0gMHgyMzsKKyAgICAvKnN0YXRpYyBjb25zdCBVQ2hhciBDSF9QRVJJT0QgICAgPSAweDJlOyovCisgICAgZmluYWwgY2hhciBDSF9MVCAgICAgICAgPSAweDNjOworICAgIGZpbmFsIGNoYXIgQ0hfR1QgICAgICAgID0gMHgzZTsKKyAgICBmaW5hbCBjaGFyIENIX0JBQ0tTTEFTSCA9IDB4NWM7CisgICAgZmluYWwgY2hhciBDSF9CVUxMRVQgICAgPSAweDIwMjI7CisKKyAgICBpbnQgICAgbGluZU51bSAgPSAxOworICAgIGludCAgICBjb2xTdGFydCA9IDA7CisgICAgaW50ICAgIGNvbHVtbiAgID0gMDsKKyAgICBpbnQgICAgY2hhcklkeCAgPSAwOworICAgIGludCAgICBpOworCisgICAgaW50ICAgIHRhZ1ZhbHVlID0gMDsgICAgICAgLy8gVGhlIG51bWVyaWMgdmFsdWUgb2YgYSA8bm5uPiB0YWcuCisgICAgaW50ICAgIGxlbiA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisKKyAgICBmb3IgKGNoYXJJZHggPSAwOyBjaGFySWR4IDwgbGVuOyApIHsKKyAgICAgICAgaW50ICBjID0gVVRGMTYuY2hhckF0KHRlc3RTdHJpbmcsIGNoYXJJZHgpOworICAgICAgICBjaGFySWR4Kys7CisgICAgICAgIGlmIChjID09IENIX0NSICYmIGNoYXJJZHg8bGVuICYmIHRlc3RTdHJpbmcuY2hhckF0KGNoYXJJZHgpID09IENIX0xGKSB7CisgICAgICAgICAgICAvLyB0cmVhdCBDUkxGIGFzIGEgdW5pdAorICAgICAgICAgICAgYyA9IENIX0xGOworICAgICAgICAgICAgY2hhcklkeCsrOworICAgICAgICB9CisgICAgICAgIGlmIChjID09IENIX0xGIHx8IGMgPT0gQ0hfQ1IpIHsKKyAgICAgICAgICAgIGxpbmVOdW0rKzsKKyAgICAgICAgICAgIGNvbFN0YXJ0ID0gY2hhcklkeDsKKyAgICAgICAgfQorICAgICAgICBjb2x1bW4gPSBjaGFySWR4IC0gY29sU3RhcnQgKyAxOworCisgICAgICAgIHN3aXRjaCAocGFyc2VTdGF0ZSkgeworICAgICAgICBjYXNlIFBBUlNFX0NPTU1FTlQ6CisgICAgICAgICAgICBpZiAoYyA9PSAweDBhIHx8IGMgPT0gMHgwZCkgeworICAgICAgICAgICAgICAgIHBhcnNlU3RhdGUgPSBzYXZlZFN0YXRlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBQQVJTRV9UQUc6CisgICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoYyA9PSBDSF9IQVNIKSB7CisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX0NPTU1FTlQ7CisgICAgICAgICAgICAgICAgc2F2ZWRTdGF0ZSA9IFBBUlNFX1RBRzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8d29yZD4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgdHAuYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSh0cC5jdXJyZW50TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBjaGFySWR4ICs9IDU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8Y2hhcj4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgdHAuYmkgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKHRwLmN1cnJlbnRMb2NhbGUpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjxsaW5lPiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICB0cC5iaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKHRwLmN1cnJlbnRMb2NhbGUpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjxzZW50PiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICB0cC5iaSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSh0cC5jdXJyZW50TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBjaGFySWR4ICs9IDU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8dGl0bGU+IiwgY2hhcklkeC0xKSkgeworICAgICAgICAgICAgICAgIHRwLmJpID0gQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKHRwLmN1cnJlbnRMb2NhbGUpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjxsb2NhbGUgIiwgY2hhcklkeC0xKSkgeworICAgICAgICAgICAgICAgIGludCBjbG9zZUluZGV4ID0gdGVzdFN0cmluZy5pbmRleE9mKCI+IiwgY2hhcklkeCk7CisgICAgICAgICAgICAgICAgaWYgKGNsb3NlSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJsaW5lIiArIGxpbmVOdW0gKyAiOiBtaXNzaW5nIGNsb3NlIG9uIDxsb2NhbGUgIHRhZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBsb2NhbGVOYW1lID0gdGVzdFN0cmluZy5zdWJzdHJpbmcoY2hhcklkeCs2LCBjbG9zZUluZGV4KTsKKyAgICAgICAgICAgICAgICBsb2NhbGVOYW1lID0gbG9jYWxlTmFtZS50cmltKCk7CisgICAgICAgICAgICAgICAgdHAuY3VycmVudExvY2FsZSA9IG5ldyBVTG9jYWxlKGxvY2FsZU5hbWUpOworICAgICAgICAgICAgICAgIGNoYXJJZHggPSBjbG9zZUluZGV4KzE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8ZGF0YT4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX0RBVEE7CisgICAgICAgICAgICAgICAgY2hhcklkeCArPSA1OworICAgICAgICAgICAgICAgIHRwLmRhdGFUb0JyZWFrLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBBcnJheXMuZmlsbCh0cC5leHBlY3RlZEJyZWFrcywgMCk7CisgICAgICAgICAgICAgICAgQXJyYXlzLmZpbGwodHAuc3JjQ29sLCAwKTsKKyAgICAgICAgICAgICAgICBBcnJheXMuZmlsbCh0cC5zcmNMaW5lLCAwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXJybG4oImxpbmUiICsgbGluZU51bSArICI6IFRhZyBleHBlY3RlZCBpbiB0ZXN0IGZpbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAvL3BhcnNlU3RhdGUgPSBQQVJTRV9DT01NRU5UOworICAgICAgICAgICAgLy9zYXZlZFN0YXRlID0gUEFSU0VfREFUQTsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlIFBBUlNFX0RBVEE6CisgICAgICAgICAgICBpZiAoYyA9PSBDSF9CVUxMRVQpIHsKKyAgICAgICAgICAgICAgICBpbnQgIGJyZWFrSWR4ID0gdHAuZGF0YVRvQnJlYWsubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgdHAuZXhwZWN0ZWRCcmVha3NbYnJlYWtJZHhdID0gLTE7CisgICAgICAgICAgICAgICAgdHAuc3JjTGluZVticmVha0lkeF0gICAgICAgID0gbGluZU51bTsKKyAgICAgICAgICAgICAgICB0cC5zcmNDb2xbYnJlYWtJZHhdICAgICAgICAgPSBjb2x1bW47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjwvZGF0YT4iLCBjaGFySWR4LTEpKSAgeworICAgICAgICAgICAgICAgIC8vIEFkZCBmaW5hbCBlbnRyeSB0byBtYXBwaW5ncyBmcm9tIGJyZWFrIGxvY2F0aW9uIHRvIHNvdXJjZSBmaWxlIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIC8vICBOZWVkIG9uZSBleHRyYSBiZWNhdXNlIGxhc3QgYnJlYWsgcG9zaXRpb24gcmV0dXJuZWQgaXMgYWZ0ZXIgdGhlCisgICAgICAgICAgICAgICAgLy8gICAgbGFzdCBjaGFyIGluIHRoZSBkYXRhLCBub3QgYXQgdGhlIGxhc3QgY2hhci4KKyAgICAgICAgICAgICAgICBpbnQgaWR4ID0gdHAuZGF0YVRvQnJlYWsubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgdHAuc3JjTGluZVtpZHhdID0gbGluZU51bTsKKyAgICAgICAgICAgICAgICB0cC5zcmNDb2xbaWR4XSAgPSBjb2x1bW47CisKKyAgICAgICAgICAgICAgICBwYXJzZVN0YXRlID0gUEFSU0VfVEFHOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNjsKKworICAgICAgICAgICAgICAgIC8vIFJVTiBUSEUgVEVTVCEKKyAgICAgICAgICAgICAgICBleGVjdXRlVGVzdCh0cCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgaWYgKHRlc3RTdHJpbmcuc3RhcnRzV2l0aCgiXFxOeyIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgIGludCBuYW1lRW5kSWR4ID0gdGVzdFN0cmluZy5pbmRleE9mKCd9JywgY2hhcklkeCk7CisgICAgICAgICAgICAgICBpZiAobmFtZUVuZElkeCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBpbiBuYW1lZCBjaGFyYWN0ZXIgaW4gdGVzdCBmaWxlIGF0IGxpbmUgIiArIGxpbmVOdW0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgY29sICIgKyBjb2x1bW4pOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIE5hbWVkIGNoYXJhY3RlciwgZS5nLiBcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgY29kZSBwb2ludCBmcm9tIHRoZSBuYW1lIGFuZCBpbnNlcnQgaXQgaW50byB0aGUgdGVzdCBkYXRhLgorICAgICAgICAgICAgICAgIFN0cmluZyBjaGFyTmFtZSA9IHRlc3RTdHJpbmcuc3Vic3RyaW5nKGNoYXJJZHgrMiwgbmFtZUVuZElkeCk7CisgICAgICAgICAgICAgICAgYyA9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lKGNoYXJOYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgaW4gbmFtZWQgY2hhcmFjdGVyIGluIHRlc3QgZmlsZSBhdCBsaW5lICIgKyBsaW5lTnVtICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBjb2wgIiArIGNvbHVtbik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gTmFtZWQgY29kZSBwb2ludCB3YXMgcmVjb2duaXplZC4gIEluc2VydCBpdAorICAgICAgICAgICAgICAgICAgICAvLyAgIGludG8gdGhlIHRlc3QgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRwLmRhdGFUb0JyZWFrLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gdHAuZGF0YVRvQnJlYWsubGVuZ3RoKCktMTsgaT49MCAmJiB0cC5zcmNMaW5lW2ldPT0wOyBpLS0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbaV0gPSBsaW5lTnVtOworICAgICAgICAgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2ldICA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuYW1lRW5kSWR4ID4gY2hhcklkeCkgeworICAgICAgICAgICAgICAgICAgICBjaGFySWR4ID0gbmFtZUVuZElkeCsxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRlc3RTdHJpbmcuc3RhcnRzV2l0aCgiPD4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgY2hhcklkeCsrOworICAgICAgICAgICAgICAgIGludCAgYnJlYWtJZHggPSB0cC5kYXRhVG9CcmVhay5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0cC5leHBlY3RlZEJyZWFrc1ticmVha0lkeF0gPSAtMTsKKyAgICAgICAgICAgICAgICB0cC5zcmNMaW5lW2JyZWFrSWR4XSAgICAgICAgPSBsaW5lTnVtOworICAgICAgICAgICAgICAgIHRwLnNyY0NvbFticmVha0lkeF0gICAgICAgICA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGMgPT0gQ0hfTFQpIHsKKyAgICAgICAgICAgICAgICB0YWdWYWx1ZSAgID0gMDsKKyAgICAgICAgICAgICAgICBwYXJzZVN0YXRlID0gUEFSU0VfTlVNOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYyA9PSBDSF9IQVNIICYmIGNvbHVtbj09MykgeyAgIC8vIFRPRE86ICB3aHkgaXMgY29sdW1uIG9mZiBzbyBmYXI/CisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX0NPTU1FTlQ7CisgICAgICAgICAgICAgICAgc2F2ZWRTdGF0ZSA9IFBBUlNFX0RBVEE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjID09IENIX0JBQ0tTTEFTSCkgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBcIGF0IGVuZCBvZiBsaW5lLCBhIGxpbmUgY29udGludWF0aW9uLgorICAgICAgICAgICAgICAgIC8vICAgICBBZHZhbmNlIG92ZXIgKGRpc2NhcmQpIHRoZSBuZXdsaW5lCisgICAgICAgICAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHRlc3RTdHJpbmcsIGNoYXJJZHgpOyAKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gQ0hfQ1IgJiYgY2hhcklkeDxsZW4gJiYgVVRGMTYuY2hhckF0KHRlc3RTdHJpbmcsIGNoYXJJZHgrMSkgPT0gQ0hfTEYpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBhIENSIExGCisgICAgICAgICAgICAgICAgICAgIC8vICBOZWVkIGFuIGV4dHJhIGluY3JlbWVudCBvZiB0aGUgaW5wdXQgcHRyIHRvIG1vdmUgb3ZlciBib3RoIG9mIHRoZW0KKyAgICAgICAgICAgICAgICAgICAgY2hhcklkeCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gQ0hfTEYgfHwgY3AgPT0gQ0hfQ1IpIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bSsrOworICAgICAgICAgICAgICAgICAgICBjb2x1bW4gICA9IDA7CisgICAgICAgICAgICAgICAgICAgIGNoYXJJZHgrKzsKKyAgICAgICAgICAgICAgICAgICAgY29sU3RhcnQgPSBjaGFySWR4OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBMZXQgdW5lc2NhcGUgaGFuZGxlIHRoZSBiYWNrIHNsYXNoLgorICAgICAgICAgICAgICAgIGludCAgY2hhcklkeEFyW10gPSBuZXcgaW50WzFdOworICAgICAgICAgICAgICAgIGNoYXJJZHhBclswXSA9IGNoYXJJZHg7CisgICAgICAgICAgICAgICAgY3AgPSBVdGlsaXR5LnVuZXNjYXBlQXQodGVzdFN0cmluZywgY2hhcklkeEFyKTsKKyAgICAgICAgICAgICAgICBpZiAoY3AgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRXNjYXBlIHNlcXVlbmNlIHdhcyByZWNvZ25pemVkLiAgSW5zZXJ0IHRoZSBjaGFyCisgICAgICAgICAgICAgICAgICAgIC8vICAgaW50byB0aGUgdGVzdCBkYXRhLgorICAgICAgICAgICAgICAgICAgICBjaGFySWR4ID0gY2hhcklkeEFyWzBdOworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQodHAuZGF0YVRvQnJlYWssIGNwKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpPXRwLmRhdGFUb0JyZWFrLmxlbmd0aCgpLTE7IGk+PTAgJiYgdHAuc3JjTGluZVtpXT09MDsgaS0tKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cC5zcmNMaW5lW2ldID0gbGluZU51bTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRwLnNyY0NvbFtpXSAgPSBjb2x1bW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICAgICAgLy8gTm90IGEgcmVjb2duaXplZCBiYWNrc2xhc2ggZXNjYXBlIHNlcXVlbmNlLgorICAgICAgICAgICAgICAgIC8vIFRha2UgdGhlIG5leHQgY2hhciBhcyBhIGxpdGVyYWwuCisgICAgICAgICAgICAgICAgLy8gIFRPRE86ICBTaG91bGQgdGhpcyBiZSBhbiBlcnJvcj8KKyAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHRlc3RTdHJpbmcsY2hhcklkeCk7CisgICAgICAgICAgICAgICAgY2hhcklkeCA9IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQodGVzdFN0cmluZywgY2hhcklkeCwgMSk7CisgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBOb3JtYWwsIG5vbi1lc2NhcGVkIGRhdGEgY2hhci4KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZCh0cC5kYXRhVG9CcmVhaywgYyk7CisgCisgICAgICAgICAgICAvLyBTYXZlIHRoZSBtYXBwaW5nIGZyb20gb2Zmc2V0IGluIHRoZSBkYXRhIHRvIGxpbmUvY29sdW1uIG51bWJlcnMgaW4KKyAgICAgICAgICAgIC8vICAgdGhlIG9yaWdpbmFsIGlucHV0IGZpbGUuICBXaWxsIGJlIHVzZWQgZm9yIGJldHRlciBlcnJvciBtZXNzYWdlcyBvbmx5LgorICAgICAgICAgICAgLy8gICBJZiB0aGVyZSdzIGFuIGV4cGVjdGVkIGJyZWFrIGJlZm9yZSB0aGlzIGNoYXIsIHRoZSBzbG90IGluIHRoZSBtYXBwaW5nCisgICAgICAgICAgICAvLyAgICAgdmVjdG9yIHdpbGwgYWxyZWFkeSBiZSBzZXQgZm9yIHRoaXMgY2hhcjsgZG9uJ3Qgb3ZlcndyaXRlIGl0LgorICAgICAgICAgICAgZm9yIChpPXRwLmRhdGFUb0JyZWFrLmxlbmd0aCgpLTE7IGk+PTAgJiYgdHAuc3JjTGluZVtpXT09MDsgaS0tKSB7CisgICAgICAgICAgICAgICAgdHAuc3JjTGluZVtpXSA9IGxpbmVOdW07CisgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2ldICA9IGNvbHVtbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisKKyAgICAgICAgY2FzZSBQQVJTRV9OVU06CisgICAgICAgICAgICAvLyBXZSBhcmUgcGFyc2luZyBhbiBleHBlY3RlZCBudW1lcmljIHRhZyB2YWx1ZSwgbGlrZSA8MTIzND4sCisgICAgICAgICAgICAvLyAgIHdpdGhpbiBhIGNodW5rIG9mIGRhdGEuCisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGMgPT0gQ0hfR1QpIHsKKyAgICAgICAgICAgICAgICAvLyBGaW5pc2hlZCB0aGUgbnVtYmVyLiAgQWRkIHRoZSBpbmZvIHRvIHRoZSBleHBlY3RlZCBicmVhayBkYXRhLAorICAgICAgICAgICAgICAgIC8vICAgYW5kIHN3aXRjaCBwYXJzZSBzdGF0ZSBiYWNrIHRvIGRvaW5nIHBsYWluIGRhdGEuCisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX0RBVEE7CisgICAgICAgICAgICAgICAgaWYgKHRhZ1ZhbHVlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGFnVmFsdWUgPSAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50ICBicmVha0lkeCA9IHRwLmRhdGFUb0JyZWFrLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRwLmV4cGVjdGVkQnJlYWtzW2JyZWFrSWR4XSA9IHRhZ1ZhbHVlOworICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbYnJlYWtJZHhdICAgICAgICA9IGxpbmVOdW07CisgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2JyZWFrSWR4XSAgICAgICAgID0gY29sdW1uOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RpZ2l0KGMpKSB7CisgICAgICAgICAgICAgICAgdGFnVmFsdWUgPSB0YWdWYWx1ZSoxMCArIFVDaGFyYWN0ZXIuZGlnaXQoYyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVycmxuKCJTeW50YXggRXJyb3IgaW4gdGVzdCBmaWxlIGF0IGxpbmUgIisgbGluZU51bSArIiwgY29sICVkIiArIGNvbHVtbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHBhcnNlU3RhdGUgPSBQQVJTRV9DT01NRU5UOyAgIC8vIFRPRE86IHVucmVhY2hhYmxlLiAgRG9uJ3Qgc3RvcCBvbiBlcnJvcnMuCisgICAgICAgICAgICAvLyBicmVhazsKKyAgICAgICAgfQorCisKKyAKKyAgICB9Cit9CisKK3ZvaWQgZXhlY3V0ZVRlc3QoVGVzdFBhcmFtcyB0KSB7CisgICAgaW50ICAgIGJwOworICAgIGludCAgICBwcmV2QlA7CisgICAgaW50ICAgIGk7CisKKyAgICBpZiAodC5iaSA9PSBudWxsKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgdC5iaS5zZXRUZXh0KHQuZGF0YVRvQnJlYWsudG9TdHJpbmcoKSk7CisgICAgLy8KKyAgICAvLyAgUnVuIHRoZSBpdGVyYXRvciBmb3J3YXJkCisgICAgLy8KKyAgICBwcmV2QlAgPSAtMTsKKyAgICBmb3IgKGJwID0gdC5iaS5maXJzdCgpOyBicCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGJwID0gdC5iaS5uZXh0KCkpIHsKKyAgICAgICAgaWYgKHByZXZCUCA9PSAgYnApIHsKKyAgICAgICAgICAgIC8vIEZhaWwgZm9yIGxhY2sgb2YgZm9yd2FyZCBwcm9ncmVzcy4KKyAgICAgICAgICAgIGVycmxuKCJGb3J3YXJkIEl0ZXJhdGlvbiwgbm8gZm9yd2FyZCBwcm9ncmVzcy4gIEJyZWFrIFBvcz0iICsgYnAgKworICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSIgKyB0LnNyY0xpbmVbYnBdICsgIiwgIiArIHQuc3JjQ29sW2JwXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlcmUgd2VyZSB3ZSBkaWRuJ3QgbWlzcyBhbiBleHBlY3RlZCBicmVhayBiZXR3ZWVuIHRoZSBsYXN0IG9uZQorICAgICAgICAvLyAgYW5kIHRoaXMgb25lLgorICAgICAgICBmb3IgKGk9cHJldkJQKzE7IGk8YnA7IGkrKykgeworICAgICAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGb3J3YXJkIEl0ZXJhdGlvbiwgYnJlYWsgZXhwZWN0ZWQsIGJ1dCBub3QgZm91bmQuICBQb3M9IiArIGkgKyAKKyAgICAgICAgICAgICAgICAgICAgIiAgRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVtpXSArICIsICIgKyB0LnNyY0NvbFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBicmVhayB3ZSBkaWQgZmluZCB3YXMgZXhwZWN0ZWQKKyAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbYnBdID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGb3J3YXJkIEl0ZXJhdGlvbiwgYnJlYWsgZm91bmQsIGJ1dCBub3QgZXhwZWN0ZWQuICBQb3M9IiArIGJwICsgCisgICAgICAgICAgICAgICAgICAgICIgIEZpbGUgbGluZSxjb2w9ICIgKyB0LnNyY0xpbmVbYnBdICsgIiwgIiArIHQuc3JjQ29sW2JwXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgYnJlYWsgd2FzIGV4cGVjdGVkLgorICAgICAgICAgICAgLy8gICBDaGVjayB0aGF0IHRoZSB7bm5ufSB0YWcgdmFsdWUgaXMgY29ycmVjdC4KKyAgICAgICAgICAgIGludCBleHBlY3RlZFRhZ1ZhbCA9IHQuZXhwZWN0ZWRCcmVha3NbYnBdOworICAgICAgICAgICAgaWYgKGV4cGVjdGVkVGFnVmFsID09IC0xKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRUYWdWYWwgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbmUgPSB0LnNyY0xpbmVbYnBdOworICAgICAgICAgICAgaW50IHJzID0gKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKXQuYmkpLmdldFJ1bGVTdGF0dXMoKTsKKyAgICAgICAgICAgIGlmIChycyAhPSBleHBlY3RlZFRhZ1ZhbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3Qgc3RhdHVzIGZvciBmb3J3YXJkIGJyZWFrLiAgUG9zID0gIiArIGJwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIuICBGaWxlIGxpbmUsY29sID0gIiArIGxpbmUgKyAiLCAiICsgdC5zcmNDb2xbYnBdICsgIlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICBBY3R1YWwsIEV4cGVjdGVkIHN0YXR1cyA9ICIgKyBycyArICIsICIgKyBleHBlY3RlZFRhZ1ZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIHByZXZCUCA9IGJwOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZXJlIHdlcmUgbm8gbWlzc2VkIGV4cGVjdGVkIGJyZWFrcyBhZnRlciB0aGUgbGFzdCBvbmUgZm91bmQKKyAgICBmb3IgKGk9cHJldkJQKzE7IGk8dC5kYXRhVG9CcmVhay5sZW5ndGgoKSsxOyBpKyspIHsKKyAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbaV0gIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkZvcndhcmQgSXRlcmF0aW9uLCBicmVhayBleHBlY3RlZCwgYnV0IG5vdCBmb3VuZC4gIFBvcz0iICsgaSArIAorICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSAiICsgdC5zcmNMaW5lW2ldICsgIiwgIiArIHQuc3JjQ29sW2ldKTsKKyAgICAgICB9CisgICAgfQorCisgICAgLy8KKyAgICAvLyAgUnVuIHRoZSBpdGVyYXRvciBiYWNrd2FyZHMsIHZlcmlmeSB0aGF0IHRoZSBzYW1lIGJyZWFrcyBhcmUgZm91bmQuCisgICAgLy8KKyAgICBwcmV2QlAgPSB0LmRhdGFUb0JyZWFrLmxlbmd0aCgpKzI7ICAvLyBzdGFydCB3aXRoIGEgcGhvbnkgdmFsdWUgZm9yIHRoZSBsYXN0IGJyZWFrIHBvcyBzZWVuLgorICAgIGZvciAoYnAgPSB0LmJpLmxhc3QoKTsgYnAgIT0gQnJlYWtJdGVyYXRvci5ET05FOyBicCA9IHQuYmkucHJldmlvdXMoKSkgeworICAgICAgICBpZiAocHJldkJQID09ICBicCkgeworICAgICAgICAgICAgLy8gRmFpbCBmb3IgbGFjayBvZiBwcm9ncmVzcy4KKyAgICAgICAgICAgIGVycmxuKCJSZXZlcnNlIEl0ZXJhdGlvbiwgbm8gcHJvZ3Jlc3MuICBCcmVhayBQb3M9IiArIGJwICsKKyAgICAgICAgICAgICAgICAgICAgIkZpbGUgbGluZSxjb2w9IiArIHQuc3JjTGluZVticF0gKyAiICIgKyAgdC5zcmNDb2xbYnBdKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGVyZSB3ZXJlIHdlIGRpZG4ndCBtaXNzIGFuIGV4cGVjdGVkIGJyZWFrIGJldHdlZW4gdGhlIGxhc3Qgb25lCisgICAgICAgIC8vICBhbmQgdGhpcyBvbmUuICAoVVZlY3RvciByZXR1cm5zIHplcm9zIGZvciBpbmRleCBvdXQgb2YgYm91bmRzLikKKyAgICAgICAgZm9yIChpPXByZXZCUC0xOyBpPmJwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0LmV4cGVjdGVkQnJlYWtzW2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUmV2ZXJzZSBJdGVydGlvbiwgYnJlYWsgZXhwZWN0ZWQsIGJ1dCBub3QgZm91bmQuICBQb3M9IiArIGkgKyAKKyAgICAgICAgICAgICAgICAgICAgIiAgRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVtpXSArICIsICIgKyB0LnNyY0NvbFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBicmVhayB3ZSBkaWQgZmluZCB3YXMgZXhwZWN0ZWQKKyAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbYnBdID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJSZXZlcnNlIEl0ZXJ0aW9uLCBicmVhayBmb3VuZCwgYnV0IG5vdCBleHBlY3RlZC4gIFBvcz0iICsgYnAgKyAKKyAgICAgICAgICAgICAgICAgICAgIiAgRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVticF0gKyAiLCAiICsgdC5zcmNDb2xbYnBdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRoZSBicmVhayB3YXMgZXhwZWN0ZWQuCisgICAgICAgICAgICAvLyAgIENoZWNrIHRoYXQgdGhlIHtubm59IHRhZyB2YWx1ZSBpcyBjb3JyZWN0LgorICAgICAgICAgICAgaW50IGV4cGVjdGVkVGFnVmFsID0gdC5leHBlY3RlZEJyZWFrc1ticF07CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRUYWdWYWwgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFRhZ1ZhbCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbGluZSA9IHQuc3JjTGluZVticF07CisgICAgICAgICAgICBpbnQgcnMgPSAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpdC5iaSkuZ2V0UnVsZVN0YXR1cygpOworICAgICAgICAgICAgaWYgKHJzICE9IGV4cGVjdGVkVGFnVmFsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBzdGF0dXMgZm9yIHJldmVyc2UgYnJlYWsuICBQb3M9ICAiICsgYnAgKworICAgICAgICAgICAgICAgICAgICAgICAgIkZpbGUgbGluZSxjb2w9ICIgKyBsaW5lICsgIiwgIiArIHQuc3JjQ29sW2JwXSArICJcbiIgKworICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgQWN0dWFsLCBFeHBlY3RlZCBzdGF0dXMgPSAiICsgcnMgKyAiLCAiICsgZXhwZWN0ZWRUYWdWYWwpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJldkJQID0gYnA7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlcmUgd2VyZSBubyBtaXNzZWQgYnJlYWtzIHByaW9yIHRvIHRoZSBsYXN0IG9uZSBmb3VuZAorICAgIGZvciAoaT1wcmV2QlAtMTsgaT49MDsgaS0tKSB7CisgICAgICAgIGlmICh0LmV4cGVjdGVkQnJlYWtzW2ldICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGb3J3YXJkIEl0ZXJ0aW9uLCBicmVhayBleHBlY3RlZCwgYnV0IG5vdCBmb3VuZC4gIFBvcz0iICsgaSArCisgICAgICAgICAgICAgICAgICAgICIgIEZpbGUgbGluZSxjb2w9ICIgKyB0LnNyY0xpbmVbaV0gKyAiLCAiICsgdC5zcmNDb2xbaV0pOworICAgICAgICAgfQorICAgIH0KK30KKworCisKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3RNb25rZXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklUZXN0TW9ua2V5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ5ODVjNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklUZXN0TW9ua2V5LmphdmEKQEAgLTAsMCArMSwxOTQ5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIHBhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworCisvLyBNb25rZXkgdGVzdGluZyBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworCisvKioKKyAqIE1vbmtleSB0ZXN0cyBmb3IgUkJCSS4gIFRoZXNlIHRlc3RzIGhhdmUgaW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mCisgKiB0aGUgVW5pY29kZSBUUiBib3VuZGFyeSBydWxlcywgYW5kIGNvbXBhcmUgcmVzdWx0cyBiZXR3ZWVuIHRoZXNlIGFuZCBJQ1UncworICogaW1wbGVtZW50YXRpb24sIHVzaW5nIHJhbmRvbSBkYXRhLgorICogCisgKiBUZXN0cyBjb3ZlciBHcmFwaGVtZSBDbHVzdGVyIChjaGFyKSwgV29yZCBhbmQgTGluZSBicmVha3MKKyAqIAorICogUG9ydGVkIGZyb20gSUNVNEMsIG9yaWdpbmFsIGNvZGUgaW4gZmlsZSBzb3VyY2UvdGVzdC9pbnRsdGVzdC9yYmJpdHN0LmNwcAorICoKKyAqLworcHVibGljIGNsYXNzIFJCQklUZXN0TW9ua2V5IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFJCQklUZXN0TW9ua2V5KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKy8vCisvLyAgICAgY2xhc3NzIFJCQklNb25rZXlLaW5kCisvLworLy8gICAgICAgIE1vbmtleSBUZXN0IGZvciBCcmVhayBJdGVyYXRpb24KKy8vICAgICAgICBBYnN0cmFjdCBpbnRlcmZhY2UgY2xhc3MuICAgQ29uY3JldGUgZGVyaXZlZCBjbGFzc2VzIGluZGVwZW5kZW50bHkKKy8vICAgICAgICBpbXBsZW1lbnQgdGhlIGJyZWFrIHJ1bGVzIGZvciBkaWZmZXJlbnQgaXRlcmF0b3IgdHlwZXMuCisvLworLy8gICAgICAgIFRoZSBNb25rZXkgVGVzdCBpdHNlbGYgdXNlcyBkb2Vzbid0IGtub3cgd2hpY2ggdHlwZSBvZiBicmVhayBpdGVyYXRvciBpdCBpcworLy8gICAgICAgIHRlc3RpbmcsIGJ1dCB3b3JrcyBwdXJlbHkgaW4gdGVybXMgb2YgdGhlIGludGVyZmFjZSBkZWZpbmVkIGhlcmUuCisvLworICAgIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBSQkJJTW9ua2V5S2luZCB7CisgICAgCisgICAgICAgIC8vIFJldHVybiBhIExpc3Qgb2YgVW5pY29kZVNldHMsIHJlcHJlc2VudGluZyB0aGUgY2hhcmFjdGVyIGNsYXNzZXMgdXNlZAorICAgICAgICAvLyAgIGZvciB0aGlzIHR5cGUgb2YgaXRlcmF0b3IuCisgICAgICAgIGFic3RyYWN0ICBMaXN0ICBjaGFyQ2xhc3NlcygpOworCisgICAgICAgIC8vIFNldCB0aGUgdGVzdCB0ZXh0IG9uIHdoaWNoIHN1YnNlcXVlbnQgY2FsbHMgdG8gbmV4dCgpIHdpbGwgb3BlcmF0ZQorICAgICAgICBhYnN0cmFjdCAgdm9pZCAgIHNldFRleHQoU3RyaW5nQnVmZmVyIHRleHQpOworCisgICAgICAgIC8vIEZpbmQgdGhlIG5leHQgYnJlYWsgcG9zdGlvbiwgc3RhcnRpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAvLyBSZXR1cm4gLTEgYWZ0ZXIgcmVhY2hpbmcgZW5kIG9mIHN0cmluZy4KKyAgICAgICAgYWJzdHJhY3QgICBpbnQgICBuZXh0KGludCBpKTsKKyAgICB9CisKKyAKKyAgICAvKioKKyAgICAgKiBNb25rZXkgdGVzdCBzdWJjbGFzcyBmb3IgdGVzdGluZyBDaGFyYWN0ZXIgKEdyYXBoZW1lIENsdXN0ZXIpIGJvdW5kYXJpZXMuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFJCQklDaGFyTW9ua2V5IGV4dGVuZHMgUkJCSU1vbmtleUtpbmQgeworICAgICAgICBMaXN0ICAgICAgICAgICAgICAgICAgICAgIGZTZXRzOworCisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkNSTEZTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkNvbnRyb2xTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkV4dGVuZFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmSGFuZ3VsU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZBbnlTZXQ7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyICAgICAgICAgICAgICBmVGV4dDsKKworCisgICAgUkJCSUNoYXJNb25rZXkoKSB7CisgICAgICAgIGZUZXh0ICAgICAgID0gbnVsbDsKKyAgICAgICAgZkNSTEZTZXQgICAgPSBuZXcgVW5pY29kZVNldCgiW1xcclxcbl0iKTsKKyAgICAgICAgZkNvbnRyb2xTZXQgPSBuZXcgVW5pY29kZVNldCgiW1tcXHB7Wmx9XFxwe1pwfVxccHtDY31cXHB7Q2Z9XS1bXFxuXS1bXFxyXV0iKTsKKyAgICAgICAgZkV4dGVuZFNldCAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtHcmFwaGVtZV9FeHRlbmR9XSIpOworICAgICAgICBmSGFuZ3VsU2V0ICA9IG5ldyBVbmljb2RlU2V0KAorICAgICAgICAgICAgIltcXHB7SGFuZ3VsX1N5bGxhYmxlX1R5cGU9TH1cXHB7SGFuZ3VsX1N5bGxhYmxlX1R5cGU9TH1cXHB7SGFuZ3VsX1N5bGxhYmxlX1R5cGU9VH0iICsKKyAgICAgICAgICAgICAiXFxwe0hhbmd1bF9TeWxsYWJsZV9UeXBlPUxWfVxccHtIYW5ndWxfU3lsbGFibGVfVHlwZT1MVlR9XSIpOworICAgICAgICBmQW55U2V0ICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFx1MDAwMC1cXFUwMDEwZmZmZl0iKTsKKworICAgICAgICBmU2V0cyAgICAgICA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZlNldHMuYWRkKGZDUkxGU2V0KTsKKyAgICAgICAgZlNldHMuYWRkKGZDb250cm9sU2V0KTsKKyAgICAgICAgZlNldHMuYWRkKGZFeHRlbmRTZXQpOworICAgICAgICBmU2V0cy5hZGQoZkhhbmd1bFNldCk7CisgICAgICAgIGZTZXRzLmFkZChmQW55U2V0KTsKKyAgICAgfQorCisKKyAgICB2b2lkIHNldFRleHQoU3RyaW5nQnVmZmVyIHMpIHsKKyAgICAgICAgZlRleHQgPSBzOyAgICAgICAgCisgICAgfQorICAgIAorICAgIExpc3QgY2hhckNsYXNzZXMoKSB7CisgICAgICAgIHJldHVybiBmU2V0czsKKyAgICB9CisgICAgCisgICAgaW50IG5leHQoaW50IGkpIHsKKyAgICAgICAgcmV0dXJuIG5leHRHQyhmVGV4dCwgaSk7CisgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogCisgICAgICogV29yZCBNb25rZXkgVGVzdCBDbGFzcworICAgICAqCisgICAgICogCisgICAgICogCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFJCQklXb3JkTW9ua2V5IGV4dGVuZHMgUkJCSU1vbmtleUtpbmQgeworICAgICAgICBMaXN0ICAgICAgICAgICAgICAgICAgICAgIGZTZXRzOworICAgICAgICBTdHJpbmdCdWZmZXIgICAgICAgICAgICAgIGZUZXh0OworCisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkthdGFrYW5hU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZBTGV0dGVyU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZNaWRMZXR0ZXJTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZk1pZE51bVNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmTnVtZXJpY1NldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmRm9ybWF0U2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZFeHRlbmRTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkV4dGVuZE51bUxldFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmT3RoZXJTZXQ7CisKKyAgICAgICAgCisgICAgICAgIFJCQklXb3JkTW9ua2V5KCkgeworICAgICAgICAgICAgZlNldHMgICAgICAgICAgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAgICAgIGZBTGV0dGVyU2V0ICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gQUxldHRlcn0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltcXHB7TGluZV9CcmVhayA9IENvbXBsZXhfQ29udGV4dH0iICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1cXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLVxccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dXSIpOworICAgICAgICAgICAgZkthdGFrYW5hU2V0ICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBLYXRha2FuYX0tW1xcdWZmOWVcXHVmZjlmXV0iKTsKKyAgICAgICAgICAgIGZNaWRMZXR0ZXJTZXQgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gTWlkTGV0dGVyfV0iKTsKKyAgICAgICAgICAgIGZNaWROdW1TZXQgICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gTWlkTnVtfV0iKTsKKyAgICAgICAgICAgIGZOdW1lcmljU2V0ICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gTnVtZXJpY31dIik7CisgICAgICAgICAgICBmRm9ybWF0U2V0ICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7V29yZF9CcmVhayA9IEZvcm1hdH1dIik7CisgICAgICAgICAgICBmRXh0ZW5kTnVtTGV0U2V0ID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7V29yZF9CcmVhayA9IEV4dGVuZE51bUxldH1dIik7CisgICAgICAgICAgICBmRXh0ZW5kU2V0ICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH1cXHVmZjllXFx1ZmY5Zl0iKTsKKyAgICAgICAgICAgIGZPdGhlclNldCAgICAgICAgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgICAgICBmT3RoZXJTZXQuY29tcGxlbWVudCgpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmQUxldHRlclNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZLYXRha2FuYVNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZNaWRMZXR0ZXJTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmTWlkTnVtU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZk51bWVyaWNTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmRm9ybWF0U2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkV4dGVuZFNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZFeHRlbmROdW1MZXRTZXQpOworCisgICAgICAgICAgICBmU2V0cy5hZGQoZkFMZXR0ZXJTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZLYXRha2FuYVNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk1pZExldHRlclNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk1pZE51bVNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk51bWVyaWNTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZGb3JtYXRTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZFeHRlbmRTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZFeHRlbmROdW1MZXRTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZPdGhlclNldCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBMaXN0ICBjaGFyQ2xhc3NlcygpIHsKKyAgICAgICAgIHJldHVybiBmU2V0czsgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkICAgc2V0VGV4dChTdHJpbmdCdWZmZXIgcykgeyAKKyAgICAgICAgICAgIGZUZXh0ID0gczsgICAgICAgIAorICAgICAgICB9ICAgCisKKyAgICAgICAgaW50ICAgbmV4dChpbnQgcHJldlBvcykgeyAgCisgICAgICAgICAgICBpbnQgICAgcDAsIHAxLCBwMiwgcDM7ICAgICAgLy8gSW5kaWNlcyBvZiB0aGUgc2lnbmlmaWNhbnQgY29kZSBwb2ludHMgYXJvdW5kIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGJyZWFrIHBvc2l0aW9uIGJlaW5nIHRlc3RlZC4gIFRoZSBjYW5kaWRhdGUgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGxvY2F0aW9uIGlzIGJlZm9yZSBwMi4KKyAgICAgICAgICAgIGludCAgICAgYnJlYWtQb3MgPSAtMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGMwLCBjMSwgYzIsIGMzOyAgIC8vIFRoZSBjb2RlIHBvaW50cyBhdCBwMCwgcDEsIHAyICYgcDMuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFByZXYgYnJlYWsgYXQgZW5kIG9mIHN0cmluZy4gIHJldHVybiBET05FLgorICAgICAgICAgICAgaWYgKHByZXZQb3MgPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwMCA9IHAxID0gcDIgPSBwMyA9IHByZXZQb3M7CisgICAgICAgICAgICBjMyA9IFVURjE2LmNoYXJBdChmVGV4dCwgcHJldlBvcyk7CisgICAgICAgICAgICBjMCA9IGMxID0gYzIgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICAKKworICAgICAgICAgICAgLy8gTG9vcCBydW5zIG9uY2UgcGVyICJzaWduaWZpY2FudCIgY2hhcmFjdGVyIHBvc2l0aW9uIGluIHRoZSBpbnB1dCB0ZXh0LgorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIE1vdmUgYWxsIG9mIHRoZSBwb3NpdGlvbnMgZm9yd2FyZCBpbiB0aGUgaW5wdXQgc3RyaW5nLgorICAgICAgICAgICAgICAgIHAwID0gcDE7ICBjMCA9IGMxOworICAgICAgICAgICAgICAgIHAxID0gcDI7ICBjMSA9IGMyOworICAgICAgICAgICAgICAgIHAyID0gcDM7ICBjMiA9IGMzOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEFkdmFuY2QgcDMgYnkgICAgWChFeHRlbmQgfCBGb3JtYXQpKiAgIFJ1bGUgNAorICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgcDMgPSBtb3ZlSW5kZXgzMihmVGV4dCwgcDMsIDEpOworICAgICAgICAgICAgICAgICAgICBjMyA9IC0xOworICAgICAgICAgICAgICAgICAgICBpZiAocDM+PWZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjMyA9IFVURjE2LmNoYXJBdChmVGV4dCwgcDMpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHNldENvbnRhaW5zKGZGb3JtYXRTZXQsIGMzKSB8fCBzZXRDb250YWlucyhmRXh0ZW5kU2V0LCBjMykpOworCisgICAgICAgICAgICAgICAgaWYgKHAxID09IHAyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFN0aWxsIHdhcm1pbmcgdXAgdGhlIGxvb3AuICAod29uJ3Qgd29yayB3aXRoIHplcm8gbGVuZ3RoIHN0cmluZ3MsIGJ1dCB3ZSBkb24ndCBjYXJlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHAyID09IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlYWNoZWQgZW5kIG9mIHN0cmluZy4gIEFsd2F5cyBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgzKSAgIENSIHggTEYKKyAgICAgICAgICAgICAgICAvLyAgICAgTm8gRXh0ZW5kIG9yIEZvcm1hdCBjaGFyYWN0ZXJzIG1heSBhcHBlYXIgYmV0d2VlbiB0aGUgQ1IgYW5kIExGLAorICAgICAgICAgICAgICAgIC8vICAgICB3aGljaCByZXF1aXJlcyB0aGUgYWRkaXRpb25hbCBjaGVjayBmb3IgcDIgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHAxLgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgaWYgKGMxPT0weDBEICYmIGMyPT0weDBBICYmIHAxPT0ocDItMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDUpLiAgIEFMZXR0ZXIgeCBBTGV0dGVyCisgICAgICAgICAgICAgICAgaWYgKGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZkFMZXR0ZXJTZXQuY29udGFpbnMoYzIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoNikgIEFMZXR0ZXIgIHggIE1pZExldHRlciAgQUxldHRlcgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgaWYgKCBmQUxldHRlclNldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZNaWRMZXR0ZXJTZXQuY29udGFpbnMoYzIpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWlucyhmQUxldHRlclNldCwgYzMpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlICg3KSAgQUxldHRlciBNaWRMZXR0ZXIgICB4ICBBTGV0dGVyCisgICAgICAgICAgICAgICAgaWYgKGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk1pZExldHRlclNldC5jb250YWlucyhjMSkgICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmQUxldHRlclNldC5jb250YWlucyhjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vICBSdWxlICg4KSAgICBOdW1lcmljIHggTnVtZXJpYworICAgICAgICAgICAgICAgIGlmIChmTnVtZXJpY1NldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZOdW1lcmljU2V0LmNvbnRhaW5zKGMyKSkgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDkpICAgIEFMZXR0ZXIgeCBOdW1lcmljCisgICAgICAgICAgICAgICAgaWYgKGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk51bWVyaWNTZXQuY29udGFpbnMoYzIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgxMCkgICAgTnVtZXJpYyB4IEFMZXR0ZXIKKyAgICAgICAgICAgICAgICBpZiAoZk51bWVyaWNTZXQuY29udGFpbnMoYzEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmQUxldHRlclNldC5jb250YWlucyhjMikpICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgxMSkgICBOdW1lcmljIChNaWROdW0gfCBNaWROdW1MZXQpICB4ICBOdW1lcmljCisgICAgICAgICAgICAgICAgaWYgKCBmTnVtZXJpY1NldC5jb250YWlucyhjMCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZNaWROdW1TZXQuY29udGFpbnMoYzEpICAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZOdW1lcmljU2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoMTIpICBOdW1lcmljIHggKE1pZE51bSB8IE1pZE51bUxldCkgTnVtZXJpYworICAgICAgICAgICAgICAgIGlmIChmTnVtZXJpY1NldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZNaWROdW1TZXQuY29udGFpbnMoYzIpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWlucyhmTnVtZXJpY1NldCwgYzMpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgxMykgIEthdGFrYW5hIHggS2F0YWthbmEKKyAgICAgICAgICAgICAgICBpZiAoZkthdGFrYW5hU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZkthdGFrYW5hU2V0LmNvbnRhaW5zKGMyKSkgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgMTNhICAoQUxldHRlciB8IE51bWVyaWMgfCBLYXRha2FuYSB8IEV4dGVuZE51bUxldCkgeCBFeHRlbmROdW1MZXQKKyAgICAgICAgICAgICAgICBpZiAoKGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMxKSB8fCBmTnVtZXJpY1NldC5jb250YWlucyhjMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZLYXRha2FuYVNldC5jb250YWlucyhjMSkgfHwgZkV4dGVuZE51bUxldFNldC5jb250YWlucyhjMSkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmRXh0ZW5kTnVtTGV0U2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gUnVsZSAxM2IgICBFeHRlbmROdW1MZXQgeCAoQUxldHRlciB8IE51bWVyaWMgfCBLYXRha2FuYSB8IEV4dGVuZE51bUxldCkKKyAgICAgICAgICAgICAgICBpZiAoZkV4dGVuZE51bUxldFNldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChmQUxldHRlclNldC5jb250YWlucyhjMikgfHwgZk51bWVyaWNTZXQuY29udGFpbnMoYzIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmS2F0YWthbmFTZXQuY29udGFpbnMoYzIpIHx8IGZFeHRlbmROdW1MZXRTZXQuY29udGFpbnMoYzIpKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlIDE0LiAgQnJlYWsgZm91bmQgaGVyZS4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnJlYWtQb3MgPSBwMjsKKyAgICAgICAgICAgIHJldHVybiBicmVha1BvczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAKKyAgICBzdGF0aWMgY2xhc3MgUkJCSUxpbmVNb25rZXkgZXh0ZW5kcyBSQkJJTW9ua2V5S2luZCB7CisgICAgICAgIAorICAgICAgICBMaXN0ICAgICAgICBmU2V0czsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgIGZCSzsKKyAgICAgICAgVW5pY29kZVNldCAgZkNSOworICAgICAgICBVbmljb2RlU2V0ICBmTEY7CisgICAgICAgIFVuaWNvZGVTZXQgIGZDTTsKKyAgICAgICAgVW5pY29kZVNldCAgZk5MOworICAgICAgICBVbmljb2RlU2V0ICBmU0c7CisgICAgICAgIFVuaWNvZGVTZXQgIGZXSjsKKyAgICAgICAgVW5pY29kZVNldCAgZlpXOworICAgICAgICBVbmljb2RlU2V0ICBmR0w7CisgICAgICAgIFVuaWNvZGVTZXQgIGZDQjsKKyAgICAgICAgVW5pY29kZVNldCAgZlNQOworICAgICAgICBVbmljb2RlU2V0ICBmQjI7CisgICAgICAgIFVuaWNvZGVTZXQgIGZCQTsKKyAgICAgICAgVW5pY29kZVNldCAgZkJCOworICAgICAgICBVbmljb2RlU2V0ICBmSFk7CisgICAgICAgIFVuaWNvZGVTZXQgIGZDTDsKKyAgICAgICAgVW5pY29kZVNldCAgZkVYOworICAgICAgICBVbmljb2RlU2V0ICBmSU47CisgICAgICAgIFVuaWNvZGVTZXQgIGZOUzsKKyAgICAgICAgVW5pY29kZVNldCAgZk9QOworICAgICAgICBVbmljb2RlU2V0ICBmUVU7CisgICAgICAgIFVuaWNvZGVTZXQgIGZJUzsKKyAgICAgICAgVW5pY29kZVNldCAgZk5VOworICAgICAgICBVbmljb2RlU2V0ICBmUE87CisgICAgICAgIFVuaWNvZGVTZXQgIGZQUjsKKyAgICAgICAgVW5pY29kZVNldCAgZlNZOworICAgICAgICBVbmljb2RlU2V0ICBmQUk7CisgICAgICAgIFVuaWNvZGVTZXQgIGZBTDsKKyAgICAgICAgVW5pY29kZVNldCAgZklEOworICAgICAgICBVbmljb2RlU2V0ICBmU0E7CisgICAgICAgIFVuaWNvZGVTZXQgIGZKTDsKKyAgICAgICAgVW5pY29kZVNldCAgZkpWOworICAgICAgICBVbmljb2RlU2V0ICBmSlQ7CisgICAgICAgIFVuaWNvZGVTZXQgIGZIMjsKKyAgICAgICAgVW5pY29kZVNldCAgZkgzOworICAgICAgICBVbmljb2RlU2V0ICBmWFg7CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgIGZUZXh0OworICAgICAgICBpbnQgICAgICAgICAgIGZPcmlnUG9zaXRpb25zOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBSQkJJTGluZU1vbmtleSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZTZXRzICAgICAgICAgID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmQksgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX0JyZWFrPUJLfV0iKTsKKyAgICAgICAgICAgIGZDUiAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9Q1J9XSIpOworICAgICAgICAgICAgZkxGICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1MRn1dIik7CisgICAgICAgICAgICBmQ00gICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUNNfV0iKTsKKyAgICAgICAgICAgIGZOTCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9Tkx9XSIpOworICAgICAgICAgICAgZldKICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1XSn1dIik7CisgICAgICAgICAgICBmWlcgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVpXfV0iKTsKKyAgICAgICAgICAgIGZHTCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9R0x9XSIpOworICAgICAgICAgICAgZkNCICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1DQn1dIik7CisgICAgICAgICAgICBmU1AgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVNQfV0iKTsKKyAgICAgICAgICAgIGZCMiAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9QjJ9XSIpOworICAgICAgICAgICAgZkJBICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1CQX1dIik7CisgICAgICAgICAgICBmQkIgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUJCfV0iKTsKKyAgICAgICAgICAgIGZIWSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SFl9XSIpOworICAgICAgICAgICAgZkNMICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1DTH1dIik7CisgICAgICAgICAgICBmRVggICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUVYfV0iKTsKKyAgICAgICAgICAgIGZJTiAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SU59XSIpOworICAgICAgICAgICAgZk5TICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1OU31dIik7CisgICAgICAgICAgICBmT1AgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPU9QfV0iKTsKKyAgICAgICAgICAgIGZRVSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9UVV9XSIpOworICAgICAgICAgICAgZklTICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1JU31dIik7CisgICAgICAgICAgICBmTlUgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPU5VfV0iKTsKKyAgICAgICAgICAgIGZQTyAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9UE99XSIpOworICAgICAgICAgICAgZlBSICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1QUn1dIik7CisgICAgICAgICAgICBmU1kgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVNZfV0iKTsKKyAgICAgICAgICAgIGZBSSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9QUl9XSIpOworICAgICAgICAgICAgZkFMICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1BTH1dIik7CisgICAgICAgICAgICBmSUQgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUlEfV0iKTsKKyAgICAgICAgICAgIGZTQSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9U0F9XSIpOworICAgICAgICAgICAgZkpMICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1KTH1dIik7CisgICAgICAgICAgICBmSlYgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUpWfV0iKTsKKyAgICAgICAgICAgIGZKVCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SlR9XSIpOworICAgICAgICAgICAgZkgyICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1IMn1dIik7CisgICAgICAgICAgICBmSDMgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUgzfV0iKTsKKyAgICAgICAgICAgIGZTRyAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFx1ZDgwMC1cXHVkZmZmXSIpOworICAgICAgICAgICAgZlhYICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1YWH1dIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZBTC5hZGRBbGwoZlhYKTsgICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgZm9yIFhYIGlzIGlkZW50aWNhbCB0byBBTAorICAgICAgICAgICAgZkFMLmFkZEFsbChmQUkpOyAgICAgLy8gRGVmYXVsdCBiZWhhdmlvciBmb3IgQUkgaXMgaWRlbnRpY2FsIHRvIEFMCisgICAgICAgICAgICBmQUwuYWRkQWxsKGZTQSk7ICAgICAvLyBEZWZhdWx0IGJlaGF2aW9yIGZvciBTQSBpcyBYWCwgd2hpY2ggZGVmYXVsdHMgdG8gQUwKKyAgICAgICAgICAgIGZBTC5hZGRBbGwoZlNHKTsgICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgZm9yIFNHICh1bnBhaXJlZCBzdXJyb2dhdGVzKSBpcyBBTAorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZlNldHMuYWRkKGZCSyk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkNSKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTEYpOworICAgICAgICAgICAgZlNldHMuYWRkKGZDTSk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk5MKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmV0opOworICAgICAgICAgICAgZlNldHMuYWRkKGZaVyk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkdMKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQ0IpOworICAgICAgICAgICAgZlNldHMuYWRkKGZTUCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkIyKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQkEpOworICAgICAgICAgICAgZlNldHMuYWRkKGZCQik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkhZKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSDIpOworICAgICAgICAgICAgZlNldHMuYWRkKGZIMyk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkNMKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmRVgpOworICAgICAgICAgICAgZlNldHMuYWRkKGZJTik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkpMKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSlQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZKVik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk5TKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmT1ApOworICAgICAgICAgICAgZlNldHMuYWRkKGZRVSk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZklTKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTlUpOworICAgICAgICAgICAgZlNldHMuYWRkKGZQTyk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlBSKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmU1kpOworICAgICAgICAgICAgZlNldHMuYWRkKGZBSSk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkFMKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSUQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZXSik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlNBKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmU0cpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgc2V0VGV4dChTdHJpbmdCdWZmZXIgcykgeworICAgICAgICAgICAgZlRleHQgICAgICAgPSBzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgICAgaW50IG5leHQoaW50IHN0YXJ0UG9zKSB7CisgICAgICAgICAgICBpbnQgICAgcG9zOyAgICAgICAvLyAgSW5kZXggb2YgdGhlIGNoYXIgZm9sbG93aW5nIGEgcG90ZW50aWFsIGJyZWFrIHBvc2l0aW9uCisgICAgICAgICAgICBpbnQgICAgdGhpc0NoYXI7ICAvLyAgQ2hhcmFjdGVyIGF0IGFib3ZlIHBvc2l0aW9uICJwb3MiCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCAgICBwcmV2UG9zOyAgIC8vICBJbmRleCBvZiB0aGUgY2hhciBwcmVjZWRpbmcgYSBwb3RlbnRpYWwgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgICAgIGludCAgICBwcmV2Q2hhcjsgIC8vICBDaGFyYWN0ZXIgYXQgYWJvdmUgcG9zaXRpb24uICBOb3RlIHRoYXQgcHJldkNoYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgYW5kIHRoaXNDaGFyIG1heSBub3QgYmUgYWRqYWNlbnQgYmVjYXVzZSBjb21iaW5pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgY2hhcmFjdGVycyBiZXR3ZWVuIHRoZW0gd2lsbCBiZSBpZ25vcmVkLgorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgICAgbmV4dFBvczsgICAvLyAgSW5kZXggb2YgdGhlIG5leHQgY2hhcmFjdGVyIGZvbGxvd2luZyBwb3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgVXN1YWxseSBza2lwcyBvdmVyIGNvbWJpbmluZyBtYXJrcy4KKyAgICAgICAgICAgIGludCAgICB0UG9zOyAgICAgIC8vICB0ZW1wIHZhbHVlLgorICAgICAgICAgICAgaW50ICAgIGM7CisgICAgICAgICAgICBpbnQgICAgbWF0Y2hWYWxzW10gID0gbnVsbDsgICAgICAgLy8gTnVtYmVyICBFeHByZXNzaW9uIE1hdGNoIFJlc3VsdHMKKyAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0YXJ0UG9zID49IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBsb29wLiAgTG9vcCB3aWxsIHJ1biB0aGUgZmlyc3QgdGltZSB3aXRob3V0IGZpbmRpbmcgYnJlYWtzLAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0aGUgaW52YWxpZCB2YWx1ZXMgc2hpZnQgb3V0IGFuZCB0aGUgInRoaXMiIGFuZAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAicHJldiIgcG9zaXRpb25zIGFyZSBmaWxsZWQgaW4gd2l0aCBnb29kIHZhbHVlcy4KKyAgICAgICAgICAgIHBvcyAgICAgID0gcHJldlBvcyAgID0gLTE7ICAgIC8vIEludmFsaWQgdmFsdWUsIHNlcnZlcyBhcyBmbGFnIGZvciBpbml0aWFsIGxvb3AgaXRlcmF0aW9uLgorICAgICAgICAgICAgdGhpc0NoYXIgPSBwcmV2Q2hhciAgPSAwOworICAgICAgICAgICAgbmV4dFBvcyAgPSBzdGFydFBvczsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBMb29wIHJ1bnMgb25jZSBwZXIgcG9zaXRpb24gaW4gdGhlIHRlc3QgdGV4dCwgdW50aWwgYSBicmVhayBwb3NpdGlvbgorICAgICAgICAgICAgLy8gIGlzIGZvdW5kLiAgSW4gZWFjaCBpdGVyYXRpb24sIHdlIGFyZSB0ZXN0aW5nIGZvciBhIHBvc3NpYmxlIGJyZWFrCisgICAgICAgICAgICAvLyAganVzdCBwcmVjZWRpbmcgdGhlIGNoYXJhY3RlciBhdCBpbmRleCAicG9zIi4gIFRoZSBjaGFyYWN0ZXIgcHJlY2VkaW5nCisgICAgICAgICAgICAvLyAgdGhpcyBjaGFyIGlzIGF0IHBvc3Rpb24gInByZXZQb3MiOyBiZWNhdXNlIG9mIGNvbWJpbmluZyBzZXF1ZW5jZXMsCisgICAgICAgICAgICAvLyAgInByZXZQb3MiIGNhbiBiZSBhcmJpdHJhcmlseSBmYXIgYmVmb3JlICJwb3MiLgorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIG5leHQgcG9zaXRpb24gdG8gYmUgdGVzdGVkLgorICAgICAgICAgICAgICAgIHByZXZQb3MgICA9IHBvczsKKyAgICAgICAgICAgICAgICBwcmV2Q2hhciAgPSB0aGlzQ2hhcjsKKyAgICAgICAgICAgICAgICBwb3MgICAgICAgPSBuZXh0UG9zOworICAgICAgICAgICAgICAgIG5leHRQb3MgICA9IG1vdmVJbmRleDMyKGZUZXh0LCBwb3MsIDEpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgTEIyIC0gQnJlYWsgYXQgZW5kIG9mIHRleHQuCisgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSBMQiA5IC0gYWRqdXN0IGZvciBjb21iaW5pbmcgc2VxdWVuY2VzLgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIFdlIGRvIHRoaXMgcnVsZSBvdXQtb2Ytb3JkZXIgYmVjYXVzZSB0aGUgYWRqdXN0bWVudCBkb2VzCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgbm90IGVmZmVjdCB0aGUgd2F5IHRoYXQgcnVsZXMgTEIgMyB0aHJvdWdoIExCIDYgbWF0Y2gsCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgYW5kIGRvaW5nIGl0IGhlcmUgcmF0aGVyIHRoYW4gYWZ0ZXIgTEIgNiBpcyBzdWJzdGFudGlhbGx5CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgc2ltcGxlciB3aGVuIGNvbWJpbmluZyBzZXF1ZW5jZXMgZG8gb2NjdXIuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgOSAgICAgICAgIEtlZXAgY29tYmluaW5nIHNlcXVlbmNlcyB0b2dldGhlci4KKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgYWR2YW5jZSBvdmVyIGFueSBDTSBjbGFzcyBjaGFycyBhdCAicG9zIiwgCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgIHJlc3VsdCBpcyAibmV4dFBvcyIgZm9yIHRoZSBmb2xsb3dpbmcgbG9vcCBpdGVyYXRpb24uCisgICAgICAgICAgICAgICAgdGhpc0NoYXIgID0gVVRGMTYuY2hhckF0KGZUZXh0LCBwb3MpOworICAgICAgICAgICAgICAgIGlmICghKGZTUC5jb250YWlucyh0aGlzQ2hhcikgfHwgZkJLLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCB0aGlzQ2hhcj09MHgwZCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgdGhpc0NoYXI9PTB4MGEgfHwgZk5MLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmWlcuY29udGFpbnModGhpc0NoYXIpICkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRQb3MgPT0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXh0Q2hhciA9IFVURjE2LmNoYXJBdChmVGV4dCwgbmV4dFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZDTS5jb250YWlucyhuZXh0Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgbmV4dFBvcywgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgOSBUcmVhdCBYIENNKiBhcyBpZiBpdCB3ZXJlIFgKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgTm8gZXhwbGljaXQgYWN0aW9uIHJlcXVpcmVkLgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDEwICAgICBUcmVhdCBhbnkgcmVtYWluaW5nIGNvbWJpbmluZyBtYXJrIGFzIEFMCisgICAgICAgICAgICAgICAgaWYgKGZDTS5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpc0NoYXIgPSAnQSc7ICAgCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGxvb3AgaXMgc3RpbGwgd2FybWluZyB1cCAtIGlmIHdlIGhhdmVuJ3Qgc2hpZnRlZCB0aGUgaW5pdGlhbAorICAgICAgICAgICAgICAgIC8vICAgLTEgcG9zaXRpb25zIG91dCBvZiBwcmV2UG9zIHlldCAtIGxvb3AgYmFjayB0byBhZHZhbmNlIHRoZQorICAgICAgICAgICAgICAgIC8vICAgIHBvc2l0aW9uIGluIHRoZSBpbnB1dCB3aXRob3V0IGFueSBmdXJ0aGVyIGxvb2tpbmcgZm9yIGJyZWFrcy4KKyAgICAgICAgICAgICAgICBpZiAocHJldlBvcyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgNCAgQWx3YXlzIGJyZWFrIGFmdGVyIGhhcmQgbGluZSBicmVha3MsCisgICAgICAgICAgICAgICAgaWYgKGZCSy5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDUgIEJyZWFrIGFmdGVyIENSLCBMRiwgTkwsIGJ1dCBub3QgaW5zaWRlIENSIExGCisgICAgICAgICAgICAgICAgaWYgKGZDUi5jb250YWlucyhwcmV2Q2hhcikgJiYgZkxGLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgIChmQ1IuY29udGFpbnMocHJldkNoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICBmTEYuY29udGFpbnMocHJldkNoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICBmTkwuY29udGFpbnMocHJldkNoYXIpKSAgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgNiAgRG9uJ3QgYnJlYWsgYmVmb3JlIGhhcmQgbGluZSBicmVha3MKKyAgICAgICAgICAgICAgICBpZiAoZkJLLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmQ1IuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmTEYuY29udGFpbnModGhpc0NoYXIpIHx8IGZOTC5jb250YWlucyh0aGlzQ2hhcikgKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA3ICBEb24ndCBicmVhayBiZWZvcmUgc3BhY2VzIG9yIHplcm8td2lkdGggc3BhY2UuCisgICAgICAgICAgICAgICAgaWYgKGZTUC5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChmWlcuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA4ICBCcmVhayBhZnRlciB6ZXJvIHdpZHRoIHNwYWNlCisgICAgICAgICAgICAgICAgaWYgKGZaVy5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vICBMQiA5LCAxMCAgQWxyZWFkeSBkb25lLCBhdCB0b3Agb2YgbG9vcC4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDExCisgICAgICAgICAgICAgICAgLy8gICAgeCAgV0oKKyAgICAgICAgICAgICAgICAvLyAgICBXSiAgeAorICAgICAgICAgICAgICAgIGlmIChmV0ouY29udGFpbnModGhpc0NoYXIpIHx8IGZXSi5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDEyCisgICAgICAgICAgICAgICAgLy8gICAgICAgICghU1ApIHggR0wKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgR0wgeAorICAgICAgICAgICAgICAgIGlmICgoIWZTUC5jb250YWlucyhwcmV2Q2hhcikpICYmIGZHTC5jb250YWlucyh0aGlzQ2hhcikgfHwgCisgICAgICAgICAgICAgICAgICAgICAgICBmR0wuY29udGFpbnMocHJldkNoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxMyAgRG9uJ3QgYnJlYWsgYmVmb3JlIGNsb3NpbmdzLgorICAgICAgICAgICAgICAgIC8vICAgICAgIE5VIHggQ0wgIGFuZCBOVSB4IElTIGFyZSBub3QgbWF0Y2hlZCBoZXJlIHNvIHRoYXQgdGhleSB3aWxsCisgICAgICAgICAgICAgICAgLy8gICAgICAgZmFsbCBpbnRvIExCIDE3IGFuZCB0aGUgbW9yZSBnZW5lcmFsIG51bWJlciByZWd1bGFyIGV4cHJlc3Npb24uCisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICBpZiAoIWZOVS5jb250YWlucyhwcmV2Q2hhcikgJiYgZkNMLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZkVYLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIWZOVS5jb250YWlucyhwcmV2Q2hhcikgJiYgZklTLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIWZOVS5jb250YWlucyhwcmV2Q2hhcikgJiYgZlNZLmNvbnRhaW5zKHRoaXNDaGFyKSkgICAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTQgIERvbid0IGJyZWFrIGFmdGVyIE9QIFNQKgorICAgICAgICAgICAgICAgIC8vICAgICAgIFNjYW4gYmFja3dhcmRzLCBjaGVja2luZyBmb3IgdGhpcyBzZXF1ZW5jZS4KKyAgICAgICAgICAgICAgICAvLyAgICAgICBUaGUgT1AgY2hhciBjb3VsZCBpbmNsdWRlIGNvbWJpbmluZyBtYXJrcywgc28gd2UgYWN1YWxseSBjaGVjayBmb3IKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgT1AgQ00qIFNQKiB4CisgICAgICAgICAgICAgICAgdFBvcyA9IHByZXZQb3M7CisgICAgICAgICAgICAgICAgaWYgKGZTUC5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRQb3MgPiAwICYmIGZTUC5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdFBvcz1tb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmQ00uY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdFBvcz1tb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZk9QLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxNSBEbyBub3QgYnJlYWsgd2l0aGluZyAiWyAKKyAgICAgICAgICAgICAgICAvLyAgICAgICBRVSBDTSogU1AqIHggT1AKKyAgICAgICAgICAgICAgICBpZiAoZk9QLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTY2FuIGJhY2t3YXJkcyBmcm9tIHByZXZDaGFyIHRvIHNlZSBpZiBpdCBpcyBwcmVjZWRlZCBieSBRVSBDTSogU1AqCisgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBwcmV2UG9zOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZlNQLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0UG9zID0gbW92ZUluZGV4MzIoZlRleHQsIHRQb3MsIC0xKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZkNNLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0UG9zID0gbW92ZUluZGV4MzIoZlRleHQsIHRQb3MsIC0xKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZlFVLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxNiAgIENMIFNQKiB4IE5TCisgICAgICAgICAgICAgICAgaWYgKGZOUy5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgdFBvcyA9IHByZXZQb3M7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmU1AuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmQ00uY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChmQ0wuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE3ICAgICAgICBCMiBTUCogeCBCMgorICAgICAgICAgICAgICAgIGlmIChmQjIuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBwcmV2UG9zOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZlNQLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0UG9zID0gbW92ZUluZGV4MzIoZlRleHQsIHRQb3MsIC0xKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZkNNLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0UG9zID0gbW92ZUluZGV4MzIoZlRleHQsIHRQb3MsIC0xKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZkIyLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxOCAgICBicmVhayBhZnRlciBzcGFjZQorICAgICAgICAgICAgICAgIGlmIChmU1AuY29udGFpbnMocHJldkNoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxOQorICAgICAgICAgICAgICAgIC8vICAgIHggICBRVQorICAgICAgICAgICAgICAgIC8vICAgIFFVICB4CisgICAgICAgICAgICAgICAgaWYgKGZRVS5jb250YWlucyh0aGlzQ2hhcikgfHwgZlFVLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjAgIEJyZWFrIGFyb3VuZCBhIENCCisgICAgICAgICAgICAgICAgaWYgKGZDQi5jb250YWlucyh0aGlzQ2hhcikgfHwgZkNCLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjEKKyAgICAgICAgICAgICAgICBpZiAoZkJBLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZkhZLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZk5TLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZkJCLmNvbnRhaW5zKHByZXZDaGFyKSApICAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjIKKyAgICAgICAgICAgICAgICBpZiAoZkFMLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmSU4uY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmSUQuY29udGFpbnMocHJldkNoYXIpICYmIGZJTi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZJTi5jb250YWlucyhwcmV2Q2hhcikgJiYgZklOLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmSU4uY29udGFpbnModGhpc0NoYXIpICkgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAyMyAgICBJRCB4IFBPICAgIChOb3RlOiAgTGVhZGluZyBDTSBiZWhhdmVzIGxpa2UgSUQpCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgQUwgeCBOVQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgIE5VIHggQUwKKyAgICAgICAgICAgICAgICBpZiAoZklELmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmUE8uY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmQUwuY29udGFpbnMocHJldkNoYXIpICYmIGZOVS5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZOVS5jb250YWlucyhwcmV2Q2hhcikgJiYgZkFMLmNvbnRhaW5zKHRoaXNDaGFyKSApICAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjQgIERvIG5vdCBicmVhayBiZXR3ZWVuIHByZWZpeCBhbmQgbGV0dGVycyBvciBpZGVvZ3JhcGhzLgorICAgICAgICAgICAgICAgIC8vICAgICAgICBQUiB4IElECisgICAgICAgICAgICAgICAgLy8gICAgICAgIFBSIHggQUwKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgUE8geCBBTAorICAgICAgICAgICAgICAgIGlmIChmUFIuY29udGFpbnMocHJldkNoYXIpICYmIGZJRC5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgZlBSLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQUwuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgIGZQTy5jb250YWlucyhwcmV2Q2hhcikgJiYgZkFMLmNvbnRhaW5zKHRoaXNDaGFyKSkgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDI1ICAgIE51bWJlcnMKKyAgICAgICAgICAgICAgICBtYXRjaFZhbHMgPSBMQk51bWJlckNoZWNrKGZUZXh0LCBwcmV2UG9zLCBtYXRjaFZhbHMpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaFZhbHNbMF0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWF0Y2hlZCBhIG51bWJlci4gIEJ1dCBjb3VsZCBoYXZlIGJlZW4ganVzdCBhIHNpbmdsZSBkaWdpdCwgd2hpY2ggd291bGQKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgbm90IHJlcHJlc2VudCBhICJubyBicmVhayBoZXJlIiBiZXR3ZWVuIHByZXZDaGFyIGFuZCB0aGlzQ2hhcgorICAgICAgICAgICAgICAgICAgICBpbnQgbnVtRW5kSWR4ID0gbWF0Y2hWYWxzWzFdOyAgLy8gaWR4IG9mIGZpcnN0IGNoYXIgZm9sbG93aW5nIG51bQorICAgICAgICAgICAgICAgICAgICBpZiAobnVtRW5kSWR4ID4gcG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgbWF0Y2ggaW5jbHVkZXMgYXQgbGVhc3QgdGhlIHR3byBjaGFycyBiZWluZyBjaGVja2VkCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtRW5kSWR4ID4gbmV4dFBvcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlciBtYXRjaCBpbmNsdWRlcyBhZGRpdGlvbmFsIGNoYXJzLiAgVXBkYXRlIHBvcyBhbmQgbmV4dFBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgc28gdGhhdCBuZXh0IGxvb3AgaXRlcmF0aW9uIHdpbGwgY29udGludWUgYXQgdGhlIGVuZCBvZiB0aGUgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgY2hlY2tpbmcgZm9yIGJyZWFrcyBiZXR3ZWVuIGxhc3QgY2hhciBpbiBudW1iZXIgJiB3aGF0ZXZlciBmb2xsb3dzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRQb3MgPSBudW1FbmRJZHg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zICAgICA9IG51bUVuZElkeDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IG1vdmVJbmRleDMyKGZUZXh0LCBwb3MsIC0xKTsgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzQ2hhciA9IFVURjE2LmNoYXJBdChmVGV4dCwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGZDTS5jb250YWlucyh0aGlzQ2hhcikpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjYgIERvIG5vdCBicmVhayBLb3JlYW4gU3lsbGFibGVzCisgICAgICAgICAgICAgICAgaWYgKGZKTC5jb250YWlucyhwcmV2Q2hhcikgJiYgKGZKTC5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZKVi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZIMi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZIMy5jb250YWlucyh0aGlzQ2hhcikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKGZKVi5jb250YWlucyhwcmV2Q2hhcikgfHwgZkgyLmNvbnRhaW5zKHByZXZDaGFyKSkgICYmCisgICAgICAgICAgICAgICAgICAgIChmSlYuY29udGFpbnModGhpc0NoYXIpIHx8IGZKVC5jb250YWlucyh0aGlzQ2hhcikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKGZKVC5jb250YWlucyhwcmV2Q2hhcikgfHwgZkgzLmNvbnRhaW5zKHByZXZDaGFyKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgZkpULmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gTEIgMjcgVHJlYXQgYSBLb3JlYW4gU3lsbGFibGUgQmxvY2sgdGhlIHNhbWUgYXMgSUQKKyAgICAgICAgICAgICAgICBpZiAoKGZKTC5jb250YWlucyhwcmV2Q2hhcikgfHwgZkpWLmNvbnRhaW5zKHByZXZDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICBmSlQuY29udGFpbnMocHJldkNoYXIpIHx8IGZIMi5jb250YWlucyhwcmV2Q2hhcikgfHwgZkgzLmNvbnRhaW5zKHByZXZDaGFyKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgZklOLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKGZKTC5jb250YWlucyhwcmV2Q2hhcikgfHwgZkpWLmNvbnRhaW5zKHByZXZDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICBmSlQuY29udGFpbnMocHJldkNoYXIpIHx8IGZIMi5jb250YWlucyhwcmV2Q2hhcikgfHwgZkgzLmNvbnRhaW5zKHByZXZDaGFyKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgZlBPLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZlBSLmNvbnRhaW5zKHByZXZDaGFyKSAmJiAoZkpMLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmSlYuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgIGZKVC5jb250YWlucyh0aGlzQ2hhcikgfHwgZkgyLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmSDMuY29udGFpbnModGhpc0NoYXIpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDI4IERvIG5vdCBicmVhayBiZXR3ZWVuIGFscGhhYmV0aWNzCisgICAgICAgICAgICAgICAgaWYgKGZBTC5jb250YWlucyhwcmV2Q2hhcikgJiYgZkFMLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjkgIERvIG5vdCBicmVhayBiZXR3ZWVuIG51bWVyaWMgcHVuY3R1YXRpb24gYW5kIGFscGhhYmV0aWNzCisgICAgICAgICAgICAgICAgaWYgKGZJUy5jb250YWlucyhwcmV2Q2hhcikgJiYgZkFMLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMzAgIERvIG5vdCBicmVhayBiZXR3ZWVuIGxldHRlcnMsIG51bWJlcnMgb3Igb3JpZG5hcnkgc3ltYm9scyBhbmQgCisgICAgICAgICAgICAgICAgLy8gICAgICAgIG9wZW5pbmcgb3IgY2xvc2luZyBwdW5jdHVhdGlvbi4KKyAgICAgICAgICAgICAgICAvLyAgICAgICAgKEFMIHwgTlUpIHggT1AKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgQ0wgeCAoQUwgfCBOVSkKKyAgICAgICAgICAgICAgICBpZiAoKGZBTC5jb250YWlucyhwcmV2Q2hhcikgfHwgZk5VLmNvbnRhaW5zKHByZXZDaGFyKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZPUC5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmQ0wuY29udGFpbnMocHJldkNoYXIpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoZkFMLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmTlUuY29udGFpbnModGhpc0NoYXIpKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMzEgICAgQnJlYWsgZXZlcnl3aGVyZSBlbHNlCisgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgLy8gTWF0Y2ggdGhlIGZvbGxvd2luZyByZWd1bGFyIGV4cHJlc3Npb24gaW4gdGhlIGlucHV0IHRleHQuCisgICAgICAgIC8vICAgICgoUFIgfCBQTykgQ00qKT8gKChPUCB8IEhZKSBDTSopPyBOVSBDTSogKChOVSB8IElTIHwgU1kpIENNKikgKiAoQ0wgQ00qKT8gIChQUiB8IFBPKSBDTSopPworICAgICAgICAvLyAgICAgIDAgICAgMCAgIDEgICAgICAgMyAgICAzICAgIDQgICAgICAgICAgICAgIDcgICAgNyAgICA3ICAgIDcgICAgICA5ICAgOSAgICAgMTEgICAxMSAgICAobWF0Y2ggc3RhdGVzKQorICAgICAgICAvLyAgcmV0VmFscyBhcnJheSAgWzBdICBpbmRleCBvZiB0aGUgc3RhcnQgb2YgdGhlIG1hdGNoLCBvciAtMSBpZiBubyBtYXRjaAorICAgICAgICAvLyAgICAgICAgICAgICAgICAgWzFdICBpbmRleCBvZiBmaXJzdCBjaGFyIGZvbGxvd2luZyB0aGUgbWF0Y2guCisgICAgICAgIC8vICBDYW4gbm90IHVzZSBKYXZhIHJlZ2V4IGJlY2F1c2UgbmVlZCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBzdXBwb3J0LAorICAgICAgICAvLyAgICAgYW5kIGJlY2F1c2UgVW5pY29kZSBjaGFyIHByb3BlcnRpZXMgdmVyc2lvbiBtdXN0IGJlIHRoZSBzYW1lIGFzIGluCisgICAgICAgIC8vICAgICB0aGUgdmVyc2lvbiBvZiBJQ1UgYmVpbmcgdGVzdGVkLgorICAgICAgICBwcml2YXRlIGludFtdIExCTnVtYmVyQ2hlY2soU3RyaW5nQnVmZmVyIHMsIGludCBzdGFydElkeCwgaW50W10gcmV0VmFscykgeworICAgICAgICAgICAgaWYgKHJldFZhbHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldFZhbHMgPSBuZXcgaW50WzJdOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbHNbMF0gICAgID0gLTE7ICAvLyBJbmRpY2F0ZXMgbm8gbWF0Y2guCisgICAgICAgICAgICBpbnQgbWF0Y2hTdGF0ZSA9IDA7CisgICAgICAgICAgICBpbnQgaWR4ICAgICAgICA9IHN0YXJ0SWR4OworICAgICAgICAgICAgCisgICAgICAgICAgICBtYXRjaExvb3A6IGZvciAoaWR4ID0gc3RhcnRJZHg7IGlkeDxzLmxlbmd0aCgpOyBpZHggPSBtb3ZlSW5kZXgzMihzLCBpZHgsIDEpKXsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChzLCBpZHgpOworICAgICAgICAgICAgICAgIGludCBjTEJUeXBlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG1hdGNoU3RhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOiAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuUFJFRklYX05VTUVSSUMgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLlBPU1RGSVhfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxOyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5PUEVOX1BVTkNUVUFUSU9OKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IWVBIRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLk5VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1hdGNoTG9vcDsgICAvKiBObyBNYXRjaCAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuT1BFTl9QVU5DVFVBVElPTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuSFlQSEVOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYXRjaExvb3A7ICAgLyogTm8gTWF0Y2ggICovCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgIC8qIE5vIE1hdGNoICAqLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgKChQUiB8IFBPKSBDTSopPyAoKE9QIHwgSFkpIENNKik/IE5VIENNKiAoKE5VIHwgSVMgfCBTWSkgQ00qKSAqIChDTCBDTSopPyAgKFBSIHwgUE8pIENNKik/CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIDAgICAgMCAgIDEgICAgICAgMyAgICAzICAgIDQgICAgICAgICAgICAgIDcgICAgNyAgICA3ICAgIDcgICAgICA5ICAgOSAgICAgMTEgICAxMSAgICAobWF0Y2ggc3RhdGVzKQorICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuQ09NQklOSU5HX01BUkspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLk5VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLklORklYX05VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkJSRUFLX1NZTUJPTFMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DTE9TRV9QVU5DVFVBVElPTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA5OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuUE9TVEZJWF9OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDExOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuUFJFRklYX05VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gMTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1hdGNoTG9vcDsgICAgLy8gTWF0Y2ggQ29tcGxldGUuCisgICAgICAgICAgICAgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPTUJJTklOR19NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5QT1NURklYX05VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gMTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5QUkVGSVhfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1hdGNoTG9vcDsgICAgLy8gTWF0Y2ggQ29tcGxldGUuCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1hdGNoTG9vcDsgICAgLy8gTWF0Y2ggQ29tcGxldGUuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1hdGNoU3RhdGUgPiA0KSB7CisgICAgICAgICAgICAgICAgcmV0VmFsc1swXSA9IHN0YXJ0SWR4OyAgIAorICAgICAgICAgICAgICAgICByZXRWYWxzWzFdID0gaWR4OyAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJldFZhbHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBMaXN0ICBjaGFyQ2xhc3NlcygpIHsKKyAgICAgICAgICAgIHJldHVybiBmU2V0czsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgCisgICAgfQorCisgICAgIAorICAgIC8qKgorICAgICAqIAorICAgICAqIFNlbnRlbmNlIE1vbmtleSBUZXN0IENsYXNzCisgICAgICoKKyAgICAgKiAKKyAgICAgKiAKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgUkJCSVNlbnRlbmNlTW9ua2V5IGV4dGVuZHMgUkJCSU1vbmtleUtpbmQgeworICAgICAgICBMaXN0ICAgICAgICAgICAgICAgICBmU2V0czsKKyAgICAgICAgU3RyaW5nQnVmZmVyICAgICAgICAgZlRleHQ7CisKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZlNlcFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZkZvcm1hdFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZlNwU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmTG93ZXJTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZVcHBlclNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZk9MZXR0ZXJTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZOdW1lcmljU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmQVRlcm1TZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZTVGVybVNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZkNsb3NlU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmT3RoZXJTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZFeHRlbmRTZXQ7CisKKyAKKyAgICAgICAgCisgICAgICAgIFJCQklTZW50ZW5jZU1vbmtleSgpIHsKKyAgICAgICAgICAgIGZTZXRzICAgICAgICAgICAgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAgICAgIGZTZXBTZXQgICAgICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtTZW50ZW5jZV9CcmVhayA9IFNlcH1dIik7CisgICAgICAgICAgICBmRm9ybWF0U2V0ICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBGb3JtYXR9XSIpOworICAgICAgICAgICAgZlNwU2V0ICAgICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gU3B9XSIpOworICAgICAgICAgICAgZkxvd2VyU2V0ICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gTG93ZXJ9XSIpOworICAgICAgICAgICAgZlVwcGVyU2V0ICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gVXBwZXJ9XSIpOworICAgICAgICAgICAgZk9MZXR0ZXJTZXQgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gT0xldHRlcn0tW1xcdWZmOWVcXHVmZjlmXV0iKTsKKyAgICAgICAgICAgIGZOdW1lcmljU2V0ICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtTZW50ZW5jZV9CcmVhayA9IE51bWVyaWN9XSIpOworICAgICAgICAgICAgZkFUZXJtU2V0ICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gQVRlcm19XSIpOworICAgICAgICAgICAgZlNUZXJtU2V0ICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gU1Rlcm19XSIpOworICAgICAgICAgICAgZkNsb3NlU2V0ICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gQ2xvc2V9XSIpOworICAgICAgICAgICAgZkV4dGVuZFNldCAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0dyYXBoZW1lX0V4dGVuZH1cXHVmZjllXFx1ZmY5Zl0iKTsKKyAgICAgICAgICAgIGZPdGhlclNldCAgICAgICAgPSBuZXcgVW5pY29kZVNldCgpOworCisKKyAgICAgICAgICAgIGZPdGhlclNldC5jb21wbGVtZW50KCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZTZXBTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmRm9ybWF0U2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZlNwU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkxvd2VyU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZlVwcGVyU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZk9MZXR0ZXJTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmTnVtZXJpY1NldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZBVGVybVNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZTVGVybVNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZDbG9zZVNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZFeHRlbmRTZXQpOworCisgICAgICAgICAgICBmU2V0cy5hZGQoZlNlcFNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkZvcm1hdFNldCk7CisKKyAgICAgICAgICAgIGZTZXRzLmFkZChmU3BTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZMb3dlclNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlVwcGVyU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmT0xldHRlclNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk51bWVyaWNTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZBVGVybVNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlNUZXJtU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQ2xvc2VTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZPdGhlclNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkV4dGVuZFNldCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBMaXN0ICBjaGFyQ2xhc3NlcygpIHsKKyAgICAgICAgICAgIHJldHVybiBmU2V0czsgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkICAgc2V0VGV4dChTdHJpbmdCdWZmZXIgcykgeyAKKyAgICAgICAgICAgIGZUZXh0ID0gczsgICAgICAgIAorICAgICAgICB9ICAgCisKKyAgICAgICAgCisgICAgICAgIC8vICAgICAgbW92ZUJhY2soKSAgIEZpbmQgdGhlICJzaWduaWZpY2FudCIgY29kZSBwb2ludCBwcmVjZWRpbmcgdGhlIGluZGV4IGkuCisgICAgICAgIC8vICAgICAgU2tpcHMgb3ZlciAoJEV4dGVuZCB8ICRGb3JtYXQpKgorICAgICAgICAvLyAKKyAgICAgICAgcHJpdmF0ZSBpbnQgbW92ZUJhY2soaW50IGkpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGkgPD0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50ICAgICAgYzsKKyAgICAgICAgICAgIGludCAgICAgIGogPSBpOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGogPSBtb3ZlSW5kZXgzMihmVGV4dCwgaiwgLTEpOworICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQoZlRleHQsIGopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGo+MCAmJihmRm9ybWF0U2V0LmNvbnRhaW5zKGMpIHx8IGZFeHRlbmRTZXQuY29udGFpbnMoYykpKTsKKyAgICAgICAgICAgIHJldHVybiBqOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaW50IG1vdmVGb3J3YXJkKGludCBpKSB7CisgICAgICAgICAgICBpZiAoaT49ZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZlRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgICBjOworICAgICAgICAgICAgaW50ICAgaiA9IGk7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgaiA9IG1vdmVJbmRleDMyKGZUZXh0LCBqLCAxKTsKKyAgICAgICAgICAgICAgICBjID0gY0F0KGopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGM+PTAgJiYgKGZGb3JtYXRTZXQuY29udGFpbnMoYykgfHwgZkV4dGVuZFNldC5jb250YWlucyhjKSkpOworICAgICAgICAgICAgcmV0dXJuIGo7CisgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgY0F0KGludCBwb3MpIHsKKyAgICAgICAgICAgIGlmIChwb3M8MCB8fCBwb3M+PWZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFVURjE2LmNoYXJBdChmVGV4dCwgcG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCAgIG5leHQoaW50IHByZXZQb3MpIHsgIAorICAgICAgICAgICAgaW50ICAgIHAwLCBwMSwgcDIsIHAzOyAgICAgIC8vIEluZGljZXMgb2YgdGhlIHNpZ25pZmljYW50IGNvZGUgcG9pbnRzIGFyb3VuZCB0aGUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBicmVhayBwb3NpdGlvbiBiZWluZyB0ZXN0ZWQuICBUaGUgY2FuZGlkYXRlIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBsb2NhdGlvbiBpcyBiZWZvcmUgcDIuCisgICAgICAgICAgICBpbnQgICAgIGJyZWFrUG9zID0gLTE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjMCwgYzEsIGMyLCBjMzsgICAgICAgICAvLyBUaGUgY29kZSBwb2ludHMgYXQgcDAsIHAxLCBwMiAmIHAzLgorICAgICAgICAgICAgaW50IGM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFByZXYgYnJlYWsgYXQgZW5kIG9mIHN0cmluZy4gIHJldHVybiBET05FLgorICAgICAgICAgICAgaWYgKHByZXZQb3MgPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwMCA9IHAxID0gcDIgPSBwMyA9IHByZXZQb3M7CisgICAgICAgICAgICBjMyA9IFVURjE2LmNoYXJBdChmVGV4dCwgcHJldlBvcyk7CisgICAgICAgICAgICBjMCA9IGMxID0gYzIgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBMb29wIHJ1bnMgb25jZSBwZXIgInNpZ25pZmljYW50IiBjaGFyYWN0ZXIgcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQuCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgLy8gTW92ZSBhbGwgb2YgdGhlIHBvc2l0aW9ucyBmb3J3YXJkIGluIHRoZSBpbnB1dCBzdHJpbmcuCisgICAgICAgICAgICAgICAgcDAgPSBwMTsgIGMwID0gYzE7CisgICAgICAgICAgICAgICAgcDEgPSBwMjsgIGMxID0gYzI7CisgICAgICAgICAgICAgICAgcDIgPSBwMzsgIGMyID0gYzM7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQWR2YW5jZCBwMyBieSAgWChFeHRlbmQgfCBGb3JtYXQpKiAgIFJ1bGUgNAorICAgICAgICAgICAgICAgIHAzID0gbW92ZUZvcndhcmQocDMpOworICAgICAgICAgICAgICAgIGMzID0gY0F0KHAzKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgzKSBDUiB4IExGCisgICAgICAgICAgICAgICAgaWYgKGMxPT0weDBkICYmIGMyPT0weDBhICYmIHAyPT0ocDErMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDQpICAgIFNlcCAgPGJyZWFrPgorICAgICAgICAgICAgICAgIGlmIChmU2VwU2V0LmNvbnRhaW5zKGMxKSkgeworICAgICAgICAgICAgICAgICAgICBwMiA9IHAxKzE7ICAgLy8gU2VwYXJhdG9ycyBkb24ndCBjb21iaW5lIHdpdGggRXh0ZW5kIG9yIEZvcm1hdAorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICBpZiAocDIgPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVhY2hlZCBlbmQgb2Ygc3RyaW5nLiAgQWx3YXlzIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChwMiA9PSBwcmV2UG9zKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFN0aWxsIHdhcm1pbmcgdXAgdGhlIGxvb3AuICAod29uJ3Qgd29yayB3aXRoIHplcm8gbGVuZ3RoIHN0cmluZ3MsIGJ1dCB3ZSBkb24ndCBjYXJlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSdWxlICg2KS4gICBBVGVybSB4IE51bWVyaWMKKyAgICAgICAgICAgICAgICBpZiAoZkFUZXJtU2V0LmNvbnRhaW5zKGMxKSAmJiAgZk51bWVyaWNTZXQuY29udGFpbnMoYzIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSdWxlICg3KS4gIFVwcGVyIEFUZXJtICB4ICBVcHBwZXIKKyAgICAgICAgICAgICAgICBpZiAoZlVwcGVyU2V0LmNvbnRhaW5zKGMwKSAmJiBmQVRlcm1TZXQuY29udGFpbnMoYzEpICYmIGZVcHBlclNldC5jb250YWlucyhjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoOCkgIEFUZXJtIENsb3NlKiBTcCogIHggIChub3QgKE9MZXR0dGVyIHwgVXBwZXIgfCBMb3dlciB8IFNlcCkpKiBMb3dlcgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICBOb3RlOiAgU3Rlcm0gfCBBVGVybSBhcmUgYWRkZWQgdG8gdGhlIG5lZ2F0ZWQgcGFydCBvZiB0aGUgZXhwcmVzc2lvbiBieSBhIAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgbm90ZSB0byB0aGUgVW5pY29kZSA1LjAgZG9jdW1lbnRzLgorICAgICAgICAgICAgICAgIGludCBwOCA9IHAxOworICAgICAgICAgICAgICAgIHdoaWxlIChwOD4wICYmIGZTcFNldC5jb250YWlucyhjQXQocDgpKSkgeworICAgICAgICAgICAgICAgICAgICBwOCA9IG1vdmVCYWNrKHA4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHA4PjAgJiYgZkNsb3NlU2V0LmNvbnRhaW5zKGNBdChwOCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHA4ID0gbW92ZUJhY2socDgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZkFUZXJtU2V0LmNvbnRhaW5zKGNBdChwOCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHA4PXAyOworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gY0F0KHA4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjPT0tMSB8fCBmT0xldHRlclNldC5jb250YWlucyhjKSB8fCBmVXBwZXJTZXQuY29udGFpbnMoYykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTG93ZXJTZXQuY29udGFpbnMoYykgfHwgZlNlcFNldC5jb250YWlucyhjKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZBVGVybVNldC5jb250YWlucyhjKSB8fCBmU1Rlcm1TZXQuY29udGFpbnMoYykpICAKKyAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwOCA9IG1vdmVGb3J3YXJkKHA4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAocDg8ZlRleHQubGVuZ3RoKCkgJiYgZkxvd2VyU2V0LmNvbnRhaW5zKGNBdChwOCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlIDhhICAoU1Rlcm0gfCBBVGVybSkgQ2xvc2UqIFNwKiB4IChTdGVybSB8IEFUZXJtKQorICAgICAgICAgICAgICAgIGlmIChmU1Rlcm1TZXQuY29udGFpbnMoYzIpIHx8IGZBVGVybVNldC5jb250YWlucyhjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgcDggPSBwMTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHNldENvbnRhaW5zKGZTcFNldCwgY0F0KHA4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHA4ID0gbW92ZUJhY2socDgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzZXRDb250YWlucyhmQ2xvc2VTZXQsIGNBdChwOCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwOCA9IG1vdmVCYWNrKHA4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjID0gY0F0KHA4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNldENvbnRhaW5zKGZTVGVybVNldCwgYykgfHwgc2V0Q29udGFpbnMoZkFUZXJtU2V0LCBjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDkpICAoU1Rlcm0gfCBBVGVybSkgQ2xvc2UqICB4ICAoQ2xvc2UgfCBTcCB8IFNlcCkKKyAgICAgICAgICAgICAgICBpbnQgcDkgPSBwMTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocDk+MCAmJiBmQ2xvc2VTZXQuY29udGFpbnMoY0F0KHA5KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcDkgPSBtb3ZlQmFjayhwOSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMgPSBjQXQocDkpOworICAgICAgICAgICAgICAgIGlmICgoZlNUZXJtU2V0LmNvbnRhaW5zKGMpIHx8IGZBVGVybVNldC5jb250YWlucyhjKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZDbG9zZVNldC5jb250YWlucyhjMikgfHwgZlNwU2V0LmNvbnRhaW5zKGMyKSB8fCBmU2VwU2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgxMCkgIChTdGVybSB8IEFUZXJtKSBDbG9zZSogU3AqICB4ICAoU3AgfCBTZXApCisgICAgICAgICAgICAgICAgaW50IHAxMCA9IHAxOworICAgICAgICAgICAgICAgIHdoaWxlIChwMTA+MCAmJiBmU3BTZXQuY29udGFpbnMoY0F0KHAxMCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHAxMCA9IG1vdmVCYWNrKHAxMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlIChwMTA+MCAmJiBmQ2xvc2VTZXQuY29udGFpbnMoY0F0KHAxMCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHAxMCA9IG1vdmVCYWNrKHAxMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmU1Rlcm1TZXQuY29udGFpbnMoY0F0KHAxMCkpIHx8IGZBVGVybVNldC5jb250YWlucyhjQXQocDEwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZTcFNldC5jb250YWlucyhjMikgfHwgZlNlcFNldC5jb250YWlucyhjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoMTEpICAoU1Rlcm0gfCBBVGVybSkgQ2xvc2UqIFNwKiAgIDxicmVhaz4KKyAgICAgICAgICAgICAgICBpbnQgcDExID0gcDE7CisgICAgICAgICAgICAgICAgd2hpbGUgKHAxMT4wICYmIGZTcFNldC5jb250YWlucyhjQXQocDExKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcDExID0gbW92ZUJhY2socDExKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHAxMT4wICYmIGZDbG9zZVNldC5jb250YWlucyhjQXQocDExKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcDExID0gbW92ZUJhY2socDExKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGZTVGVybVNldC5jb250YWlucyhjQXQocDExKSkgfHwgZkFUZXJtU2V0LmNvbnRhaW5zKGNBdChwMTEpKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyAgUnVsZSAoMTIpICBBbnkgeCBBbnkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrUG9zID0gcDI7CisgICAgICAgICAgICByZXR1cm4gYnJlYWtQb3M7CisgICAgICAgIH0KKyAgICAgICAgICAgCisKKyAgICAgICAgCisgICAgfQorCisgCisgICAgLyoqCisgICAgICogTW92ZSBhbiBpbmRleCBpbnRvIGEgc3RyaW5nIGJ5IG4gY29kZSBwb2ludHMuCisgICAgICogICBTaW1pbGFyIHRvIFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQsIGJ1dCB3aXRob3V0IHRoZSBleGNlcHRpb25zLCB3aGljaCB3ZXJlCisgICAgICogICBjb21wbGljYXRpbmcgdXNhZ2UuCisgICAgICogQHBhcmFtIHMgICBhIFRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIHBvcyBUaGUgc3RhcnRpbmcgY29kZSB1bml0IGluZGV4IGludG8gdGhlIHRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIGFtdCBUaGUgYW1vdW50IHRvIGFkanVzdCB0aGUgc3RyaW5nIGJ5LgorICAgICAqIEByZXR1cm4gICAgVGhlIGFkanVzdGVkIGNvZGUgdW5pdCBpbmRleCwgcGlubmVkIHRvIHRoZSBzdHJpbmcncyBsZW5ndGgsIG9yCisgICAgICogICAgICAgICAgICB1bmNoYW5nZWQgaWYgaW5wdXQgaW5kZXggd2FzIG91dHNpZGUgb2YgdGhlIHN0cmluZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IG1vdmVJbmRleDMyKFN0cmluZ0J1ZmZlciBzLCBpbnQgcG9zLCBpbnQgYW10KSB7CisgICAgICAgIGludCBpOworICAgICAgICBjaGFyICBjOworICAgICAgICBpZiAoYW10PjApIHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPGFtdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzLmxlbmd0aCgpOyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgcG9zKys7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBwb3MgPCBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7ICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGk9MDsgaT5hbXQ7IGktLSkgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcG9zLS07CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYykgJiYgcG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcy0tOyAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5vLWV4Y2VwdGlvbnMgZm9ybSBvZiBVbmljb2RlU2V0LmNvbnRhaW5zKGMpLgorICAgICAqICAgIFNpbXBsaWZpZXMgbG9vcHMgdGhhdCB0ZXJtaW5hdGUgd2l0aCBhbiBlbmQtb2YtaW5wdXQgY2hhcmFjdGVyIHZhbHVlLgorICAgICAqIEBwYXJhbSBzICBBIHVuaWNvZGUgc2V0CisgICAgICogQHBhcmFtIGMgIEEgY29kZSBwb2ludCB2YWx1ZQorICAgICAqIEByZXR1cm4gICB0cnVlIGlmIHRoZSBzZXQgY29udGFpbnMgYy4KKyAgICAgKi8KKyAgICBzdGF0aWMgYm9vbGVhbiBzZXRDb250YWlucyhVbmljb2RlU2V0IHMsIGludCBjKSB7CisgICAgCWlmIChjPDAgfHwgYz5VVEYxNi5DT0RFUE9JTlRfTUFYX1ZBTFVFICkgeworICAgIAkJcmV0dXJuIGZhbHNlOworICAgIAl9CisgICAgCXJldHVybiBzLmNvbnRhaW5zKGMpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGlucHV0IHRleHQuCisgICAgICogQHBhcmFtIGkgdGhlIHByZWNlZGluZyBpbmRleAorICAgICAqIEByZXR1cm4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50ICBuZXh0Q1AoU3RyaW5nQnVmZmVyIHMsIGludCBpKSB7CisgICAgICAgIGlmIChpID09IC0xKSB7CisgICAgICAgICAgICAvLyBFbmQgb2YgSW5wdXQgaW5kaWNhdGlvbi4gIENvbnRpbnVlIHRvIHJldHVybiBlbmQgdmFsdWUuCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaW50ICByZXRWYWwgPSBpICsgMTsKKyAgICAgICAgaWYgKHJldFZhbCA+IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpbnQgIGMgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgIGlmIChjID49IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShzLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgIHJldFZhbCsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorCisKKyAgICAvLworICAgIC8vICBUaGUgZm9sbG93aW5nIFVuaWNvZGVTZXRzIGFyZSB1c2VkIGluIG1hdGNoaW5nIGEgR3JhcGhlbWUgQ2x1c3RlcgorICAgIC8vCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBHQ19Db250cm9sOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgR0NfRXh0ZW5kIDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IEdDX0wgOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgR0NfViA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBHQ19UIDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IEdDX0xWOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgR0NfTFZUIDsKKworICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIEdDX0NvbnRyb2wgPSBuZXcgVW5pY29kZVNldCgiW1s6Wmw6XVs6WnA6XVs6Q2M6XVs6Q2Y6XS1bXFx1MDAwZFxcdTAwMGFdLVtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhaz1FeHRlbmR9XV0iKTsKKyAgICAgICAKKyAgICAgICAgR0NfRXh0ZW5kID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhaz1FeHRlbmR9XSIpOworICAgICAgIAorICAgICAgICBHQ19MID0gbmV3IFVuaWNvZGVTZXQoIltbOkhhbmd1bF9TeWxsYWJsZV9UeXBlPUw6XV0iKTsKKyAgICAgICAKKyAgICAgICAgR0NfViA9IG5ldyBVbmljb2RlU2V0KCJbWzpIYW5ndWxfU3lsbGFibGVfVHlwZT1WOl1dIik7CisgICAgICAgCisgICAgICAgIEdDX1QgPSBuZXcgVW5pY29kZVNldCgiW1s6SGFuZ3VsX1N5bGxhYmxlX1R5cGU9VDpdXSIpOworICAgICAgIAorICAgICAgICBHQ19MViA9IG5ldyBVbmljb2RlU2V0KCJbWzpIYW5ndWxfU3lsbGFibGVfVHlwZT1MVjpdXSIpOworICAgICAgIAorICAgICAgICBHQ19MVlQgPSBuZXcgVW5pY29kZVNldCgiW1s6SGFuZ3VsX1N5bGxhYmxlX1R5cGU9TFZUOl1dIik7CisgICAgfQorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIGVuZCBvZiB0aGUgZXh0ZW50IG9mIGEgZ3JhcGhlbWUgY2x1c3Rlci4KKyAgICAgKiBUaGlzIGlzIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gdXNlZCBieSB0aGUgbW9ua2V5IHRlc3QgZm9yIGNvbXBhcmlzb24KKyAgICAgKiB3aXRoIHRoZSBSQkJJIHJlc3VsdHMuCisgICAgICogQHBhcmFtIHMgIFRoZSBzdHJpbmcgY29udGFpbmluZyB0aGUgdGV4dCB0byBiZSBhbmFseXplZCAgCisgICAgICogQHBhcmFtIGkgIFRoZSBpbmRleCBvZiB0aGUgc3RhcnQgb2YgdGhlIGdyYXBoZW1lIGNsdXN0ZXIuCisgICAgICogQHJldHVybiAgIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY29kZSBwb2ludCBmb2xsb3dpbmcgdGhlIGdyYXBoZW1lIGNsdXN0ZXIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbmV4dEdDKFN0cmluZ0J1ZmZlciBzLCBpbnQgaSkgeworICAgICAgICBpZiAoaSA+PSBzLmxlbmd0aCgpIHx8IGkgPT0gLTEgKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpbnQgIGMgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgIGludCAgcG9zID0gaTsKKyAgICAgICAgCisgICAgICAgIGlmIChjID09IDB4MGQpIHsKKyAgICAgICAgICAgIHBvcyA9IG5leHRDUChzLCBpKTsKKyAgICAgICAgICAgIGlmIChwb3MgPj0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIHBvcyk7CisgICAgICAgICAgICBpZiAoYyA9PSAweDBhKSB7CisgICAgICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoR0NfQ29udHJvbC5jb250YWlucyhjKSB8fCBjID09IDB4MGEpIHsKKyAgICAgICAgICAgIHBvcyA9IG5leHRDUChzLCBwb3MpOworICAgICAgICAgICAgcmV0dXJuIHBvczsgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTGl0dGxlIHN0YXRlIG1hY2hpbmUgdG8gY29uc3VtZSBIYW5ndWwgU3lsbGFibGVzCisgICAgICAgIGludCAgaGFuZ3VsU3RhdGUgPSAxOworICAgICAgICBzdGF0ZV9sb29wOiBmb3IgKDs7KSB7CisgICAgICAgICAgICBzd2l0Y2ggKGhhbmd1bFN0YXRlKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfTC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX1YuY29udGFpbnMoYykgfHwgR0NfTFYuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19ULmNvbnRhaW5zKGMpIHx8IEdDX0xWVC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgc3RhdGVfbG9vcDsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19MLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51ZSBpbiBzdGF0ZSAyLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX1YuY29udGFpbnMoYykgfHwgR0NfTFYuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19MVlQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19FeHRlbmQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIHN0YXRlX2xvb3A7CisgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfVi5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgaW4gc3RhdGUgMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19ULmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndWxTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfRXh0ZW5kLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndWxTdGF0ZSA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBzdGF0ZV9sb29wOworICAgICAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX1QuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGluIHN0YXRlIDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19FeHRlbmQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIHN0YXRlX2xvb3A7CisgICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfRXh0ZW5kLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndWxTdGF0ZSA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgc3RhdGVfbG9vcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFdlIGhhdmUgZXhpdGVkIHRoZSBzd2l0Y2ggc3RhdGVtZW50LCBidXQgYXJlIHN0aWxsIGluIHRoZSBsb29wLgorICAgICAgICAgICAgLy8gU3RpbGwgaW4gYSBIYW5ndWwgU3lsbGFibGUsIGFkdmFuY2UgdG8gdGhlIG5leHQgY29kZSBwb2ludC4KKyAgICAgICAgICAgIHBvcyA9IG5leHRDUChzLCBwb3MpOyAKKyAgICAgICAgICAgIGlmIChwb3MgPj0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBwb3MpOyAgICAKKyAgICAgICAgfSAgLy8gZW5kIG9mIGxvb3AKKyAgICAgICAgCisgICAgICAgIGlmIChoYW5ndWxTdGF0ZSAhPSAxKSB7CisgICAgICAgICAgICAvLyBXZSBmb3VuZCBhIEhhbmd1bC4gIFdlJ3JlIGRvbmUuCisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBPcmRpbmFyeSBjaGFyYWN0ZXJzLiAgQ29uc3VtZSBvbmUgY29kZXBvaW50IHVuY29uZGl0aW9uYWxseSwgdGhlbiBhbnkgZm9sbG93aW5nIEV4dGVuZHMuCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIHBvcyA9IG5leHRDUChzLCBwb3MpOyAKKyAgICAgICAgICAgIGlmIChwb3MgPj0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBwb3MpOyAgICAKKyAgICAgICAgICAgIGlmIChHQ19FeHRlbmQuY29udGFpbnMoYykgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHBvczsgICAKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuICBOb3QgdXNpbmcgSmF2YSdzIGJ1aWx0LWluIFJhbmRvbXMgZm9yIHR3byByZWFzb25zOgorICAgICAqICAgIDEuICBVc2luZyB0aGlzIGNvZGUgYWxsb3dzIG9idGFpbmluZyB0aGUgc2FtZSBzZXF1ZW5jZXMgYXMgdGhvc2UgZnJvbSB0aGUgSUNVNEMgbW9ua2V5IHRlc3QuCisgICAgICogICAgMi4gIFdlIG5lZWQgdG8gZ2V0IGFuZCByZXN0b3JlIHRoZSBzZWVkIGZyb20gdmFsdWVzIG9jY3VyaW5nIGluIHRoZSBtaWRkbGUKKyAgICAgKiAgICAgICAgb2YgYSBsb25nIHNlcXVlbmNlLCB0byBtb3JlIGVhc2lseSByZXByb2R1Y2UgZmFpbGluZyBjYXNlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbV9zZWVkID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgIG1fcmFuZCgpCisgICAgeworICAgICAgICBtX3NlZWQgPSBtX3NlZWQgKiAxMTAzNTE1MjQ1ICsgMTIzNDU7CisgICAgICAgIHJldHVybiAoaW50KShtX3NlZWQgPj4+IDE2KSAlIDMyNzY4OworICAgIH0KKworICAgIAorLyoqCisgKiAgUnVuIGEgUkJCSSBtb25rZXkgdGVzdC4gIENvbW1vbiByb3V0aW5lLCBmb3IgYWxsIGJyZWFrIGl0ZXJhdG9yIHR5cGVzLgorICogICAgUGFyYW1ldGVyczoKKyAqICAgICAgIGJpICAgICAgLSB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gdXNlCisgKiAgICAgICBtayAgICAgIC0gTW9ua2V5S2luZCwgYWJzdHJhY3Rpb24gZm9yIG9idGFpbmluZyBleHBlY3RlZCByZXN1bHRzCisgKiAgICAgICBuYW1lICAgIC0gTmFtZSBvZiB0ZXN0IChjaGFyLCB3b3JkLCBldGMuKSBmb3IgdXNlIGluIGVycm9yIG1lc3NhZ2VzCisgKiAgICAgICBzZWVkICAgIC0gU2VlZCBmb3Igc3RhcnRpbmcgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgKHBhcmFtZXRlciBmcm9tIHVzZXIpCisgKiAgICAgICBudW1JdGVyYXRpb25zCisgKi8KK3ZvaWQgUnVuTW9ua2V5KEJyZWFrSXRlcmF0b3IgIGJpLCBSQkJJTW9ua2V5S2luZCBtaywgU3RyaW5nIG5hbWUsIGludCAgc2VlZCwgaW50IG51bUl0ZXJhdGlvbnMpIHsKKyAgICBpbnQgICAgICAgICAgICAgIFRFU1RTVFJJTkdMRU4gPSA1MDA7CisgICAgU3RyaW5nQnVmZmVyICAgICB0ZXN0VGV4dCAgICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIGludCAgICAgICAgICAgICAgbnVtQ2hhckNsYXNzZXM7CisgICAgTGlzdCAgICAgICAgICAgICBjaENsYXNzZXM7CisgICAgaW50W10gICAgICAgICAgICBleHBlY3RlZCAgICAgICAgID0gbmV3IGludFtURVNUU1RSSU5HTEVOKjIgKyAxXTsKKyAgICBpbnQgICAgICAgICAgICAgIGV4cGVjdGVkQ291bnQgICAgPSAwOworICAgIGJvb2xlYW5bXSAgICAgICAgZXhwZWN0ZWRCcmVha3MgICA9IG5ldyBib29sZWFuW1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGJvb2xlYW5bXSAgICAgICAgZm9yd2FyZEJyZWFrcyAgICA9IG5ldyBib29sZWFuW1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGJvb2xlYW5bXSAgICAgICAgcmV2ZXJzZUJyZWFrcyAgICA9IG5ldyBib29sZWFuW1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGJvb2xlYW5bXSAgICAgICAgaXNCb3VuZGFyeUJyZWFrcyA9IG5ldyBib29sZWFuW1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGJvb2xlYW5bXSAgICAgICAgZm9sbG93aW5nQnJlYWtzICA9IG5ldyBib29sZWFuW1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGJvb2xlYW5bXSAgICAgICAgcHJlY2VkaW5nQnJlYWtzICA9IG5ldyBib29sZWFuW1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGludCAgICAgICAgICAgICAgaTsKKyAgICBpbnQgICAgICAgICAgICAgIGxvb3BDb3VudCAgICAgICAgPSAwOworICAgIGJvb2xlYW4gICAgICAgICAgcHJpbnRUZXN0RGF0YSAgICA9IGZhbHNlOworICAgIGJvb2xlYW4gICAgICAgICAgcHJpbnRCcmVha3NGcm9tQkkgPSBmYWxzZTsKKworICAgIG1fc2VlZCA9IHNlZWQ7CisKKyAgICBudW1DaGFyQ2xhc3NlcyA9IG1rLmNoYXJDbGFzc2VzKCkuc2l6ZSgpOworICAgIGNoQ2xhc3NlcyAgICAgID0gbWsuY2hhckNsYXNzZXMoKTsKKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjaGFyYWN0ZXIgY2xhc3NlcyBhbGwgaGF2ZSBhdCBsZWFzdCBvbmUgbWVtYmVyLgorICAgIGZvciAoaT0wOyBpPG51bUNoYXJDbGFzc2VzOyBpKyspIHsKKyAgICAgICAgVW5pY29kZVNldCBzID0gKFVuaWNvZGVTZXQpY2hDbGFzc2VzLmdldChpKTsKKyAgICAgICAgaWYgKHMgPT0gbnVsbCB8fCBzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVyIENsYXNzICIgKyBpICsgIiBpcyBudWxsIG9yIG9mIHplcm8gc2l6ZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBEZWJ1Z2dpbmcgc2V0dGluZ3MuICBDb21tZW50IG91dCBldmVyeXRoaW5nIGluIHRoZSBmb2xsb3dpbmcgYmxvY2sgZm9yIG5vcm1hbCBvcGVyYXRpb24KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBudW1JdGVyYXRpb25zID0gLTE7ICAKKyAgICAvLyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldy5mVHJhY2UgPSB0cnVlOworICAgIC8vIG1fc2VlZCA9IDg1OTA1NjQ2NTsKKyAgICAvLyBURVNUU1RSSU5HTEVOID0gNTA7CisgICAgLy8gcHJpbnRUZXN0RGF0YSA9IHRydWU7CisgICAgLy8gcHJpbnRCcmVha3NGcm9tQkkgPSB0cnVlOworICAgIC8vICgoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9OZXcpYmkpLmR1bXAoKTsKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgRW5kIG9mIERlYnVnZ2luZyBzZXR0aW5ncy4gIAorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGludCAgZG90c09uTGluZSA9IDA7CisgICAgIHdoaWxlIChsb29wQ291bnQgPCBudW1JdGVyYXRpb25zIHx8IG51bUl0ZXJhdGlvbnMgPT0gLTEpIHsKKyAgICAgICAgaWYgKG51bUl0ZXJhdGlvbnMgPT0gLTEgJiYgbG9vcENvdW50ICUgMTAgPT0gMCkgeworICAgICAgICAgICAgLy8gSWYgdGVzdCBpcyBydW5uaW5nIGluIGFuIGluZmluaXRlIGxvb3AsIGRpc3BsYXkgYSBwZXJpb2RpYyB0aWMgc28KKyAgICAgICAgICAgIC8vICAgd2UgY2FuIHRlbGwgdGhhdCBpdCBpcyBtYWtpbmcgcHJvZ3Jlc3MuCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIuIik7CisgICAgICAgICAgICBpZiAoZG90c09uTGluZSsrID49IDgwKXsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICBkb3RzT25MaW5lID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBTYXZlIGN1cnJlbnQgcmFuZG9tIG51bWJlciBzZWVkLCBzbyB0aGF0IHdlIGNhbiByZWNyZWF0ZSB0aGUgcmFuZG9tIG51bWJlcnMKKyAgICAgICAgLy8gICBmb3IgdGhpcyBsb29wIGl0ZXJhdGlvbiBpbiBldmVudCBvZiBhbiBlcnJvci4KKyAgICAgICAgc2VlZCA9IG1fc2VlZDsKKworICAgICAgICB0ZXN0VGV4dC5zZXRMZW5ndGgoMCk7CisgICAgICAgIC8vIFBvcHVsYXRlIGEgdGVzdCBzdHJpbmcgd2l0aCBkYXRhLgorICAgICAgICBpZiAocHJpbnRUZXN0RGF0YSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUZXN0IERhdGEgc3RyaW5nIC4uLiIpOyAKKyAgICAgICAgfQorICAgICAgICBmb3IgKGk9MDsgaTxURVNUU1RSSU5HTEVOOyBpKyspIHsKKyAgICAgICAgICAgIGludCAgICAgICAgYUNsYXNzTnVtID0gbV9yYW5kKCkgJSBudW1DaGFyQ2xhc3NlczsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgY2xhc3NTZXQgID0gKFVuaWNvZGVTZXQpY2hDbGFzc2VzLmdldChhQ2xhc3NOdW0pOworICAgICAgICAgICAgaW50ICAgICAgICBjaGFySWR4ICAgPSBtX3JhbmQoKSAlIGNsYXNzU2V0LnNpemUoKTsKKyAgICAgICAgICAgIGludCAgICAgICAgYyAgICAgICAgID0gY2xhc3NTZXQuY2hhckF0KGNoYXJJZHgpOworICAgICAgICAgICAgaWYgKGMgPCAwKSB7ICAgLy8gVE9ETzogIGRlYWwgd2l0aCBzZXRzIGNvbnRhaW5pbmcgc3RyaW5ncy4KKyAgICAgICAgICAgICAgICBlcnJsbigiYyA8IDAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZENvZGVQb2ludCh0ZXN0VGV4dCwgYyk7CisgICAgICAgICAgICBpZiAocHJpbnRUZXN0RGF0YSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b0hleFN0cmluZyhjKSArICIgIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByaW50VGVzdERhdGEpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOyAKKyAgICAgICAgfQorCisgICAgICAgIEFycmF5cy5maWxsKGV4cGVjdGVkLCAwKTsKKyAgICAgICAgQXJyYXlzLmZpbGwoZXhwZWN0ZWRCcmVha3MsIGZhbHNlKTsKKyAgICAgICAgQXJyYXlzLmZpbGwoZm9yd2FyZEJyZWFrcywgZmFsc2UpOworICAgICAgICBBcnJheXMuZmlsbChyZXZlcnNlQnJlYWtzLCBmYWxzZSk7CisgICAgICAgIEFycmF5cy5maWxsKGlzQm91bmRhcnlCcmVha3MsIGZhbHNlKTsKKyAgICAgICAgQXJyYXlzLmZpbGwoZm9sbG93aW5nQnJlYWtzLCBmYWxzZSk7CisgICAgICAgIEFycmF5cy5maWxsKHByZWNlZGluZ0JyZWFrcywgZmFsc2UpOworIAorICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGV4cGVjdGVkIHJlc3VsdHMgZm9yIHRoaXMgdGVzdCBzdHJpbmcuCisgICAgICAgIG1rLnNldFRleHQodGVzdFRleHQpOworICAgICAgICBleHBlY3RlZENvdW50ID0gMDsKKyAgICAgICAgZXhwZWN0ZWRCcmVha3NbMF0gPSB0cnVlOworICAgICAgICBleHBlY3RlZFtleHBlY3RlZENvdW50ICsrXSA9IDA7CisgICAgICAgIGludCBicmVha1BvcyA9IDA7CisgICAgICAgIGludCBsYXN0QnJlYWtQb3MgPSAtMTsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbGFzdEJyZWFrUG9zID0gYnJlYWtQb3M7CisgICAgICAgICAgICBicmVha1BvcyA9IG1rLm5leHQoYnJlYWtQb3MpOworICAgICAgICAgICAgaWYgKGJyZWFrUG9zID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnJlYWtQb3MgPiB0ZXN0VGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJicmVha1BvcyA+IHRlc3RUZXh0Lmxlbmd0aCgpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGFzdEJyZWFrUG9zID49IGJyZWFrUG9zKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk5leHQoKSBub3QgaW5jcmVhc2luZy4iKTsKKyAgICAgICAgICAgICAgICAvLyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGVjdGVkQnJlYWtzW2JyZWFrUG9zXSA9IHRydWU7CisgICAgICAgICAgICBleHBlY3RlZFtleHBlY3RlZENvdW50ICsrXSA9IGJyZWFrUG9zOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgYnJlYWsgcG9zaXRpb25zIHVzaW5nIGZvcndhcmQgaXRlcmF0aW9uCisgICAgICAgIGlmIChwcmludEJyZWFrc0Zyb21CSSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCcmVha3MgZnJvbSBCSS4uLiIpOyAgCisgICAgICAgIH0KKyAgICAgICAgYmkuc2V0VGV4dCh0ZXN0VGV4dC50b1N0cmluZygpKTsKKyAgICAgICAgZm9yIChpPWJpLmZpcnN0KCk7IGkgIT0gQnJlYWtJdGVyYXRvci5ET05FOyBpPWJpLm5leHQoKSkgeworICAgICAgICAgICAgaWYgKGkgPCAwIHx8IGkgPiB0ZXN0VGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKG5hbWUgKyAiIGJyZWFrIG1vbmtleSB0ZXN0OiBPdXQgb2YgcmFuZ2UgdmFsdWUgcmV0dXJuZWQgYnkgYnJlYWtJdGVyYXRvcjo6bmV4dCgpIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocHJpbnRCcmVha3NGcm9tQkkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yd2FyZEJyZWFrc1tpXSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByaW50QnJlYWtzRnJvbUJJKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIGJyZWFrIHBvc2l0aW9ucyB1c2luZyByZXZlcnNlIGl0ZXJhdGlvbgorICAgICAgICBmb3IgKGk9YmkubGFzdCgpOyBpICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgaT1iaS5wcmV2aW91cygpKSB7CisgICAgICAgICAgICBpZiAoaSA8IDAgfHwgaSA+IHRlc3RUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4obmFtZSArICIgYnJlYWsgbW9ua2V5IHRlc3Q6IE91dCBvZiByYW5nZSB2YWx1ZSByZXR1cm5lZCBieSBicmVha0l0ZXJhdG9yLm5leHQoKSIgKyBuYW1lKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldmVyc2VCcmVha3NbaV0gPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgYnJlYWsgcG9zaXRpb25zIHVzaW5nIGlzQm91bmRhcnkoKSB0ZXN0cy4KKyAgICAgICAgZm9yIChpPTA7IGk8PXRlc3RUZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlzQm91bmRhcnlCcmVha3NbaV0gPSBiaS5pc0JvdW5kYXJ5KGkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgYnJlYWsgcG9zaXRpb25zIHVzaW5nIHRoZSBmb2xsb3dpbmcoKSBmdW5jdGlvbi4KKyAgICAgICAgbGFzdEJyZWFrUG9zID0gMDsKKyAgICAgICAgZm9sbG93aW5nQnJlYWtzWzBdID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpPTA7IGk8dGVzdFRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgYnJlYWtQb3MgPSBiaS5mb2xsb3dpbmcoaSk7CisgICAgICAgICAgICBpZiAoYnJlYWtQb3MgPD0gaSB8fAorICAgICAgICAgICAgICAgIGJyZWFrUG9zIDwgbGFzdEJyZWFrUG9zIHx8CisgICAgICAgICAgICAgICAgYnJlYWtQb3MgPiB0ZXN0VGV4dC5sZW5ndGgoKSB8fAorICAgICAgICAgICAgICAgIGJyZWFrUG9zID4gbGFzdEJyZWFrUG9zICYmIGxhc3RCcmVha1BvcyA+IGkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4obmFtZSArICIgYnJlYWsgbW9ua2V5IHRlc3Q6ICIgKworICAgICAgICAgICAgICAgICAgICAiT3V0IG9mIHJhbmdlIHZhbHVlIHJldHVybmVkIGJ5IEJyZWFrSXRlcmF0b3I6OmZvbGxvd2luZygpLlxuIiArCisgICAgICAgICAgICAgICAgICAgICJpbmRleD0iICsgaSArICJmb2xsb3dpbmcgcmV0dXJuZWQ9IiArIGJyZWFrUG9zICsKKyAgICAgICAgICAgICAgICAgICAgImxhc3RCcmVhaz0iICsgbGFzdEJyZWFrUG9zKTsKKyAgICAgICAgICAgICAgICBwcmVjZWRpbmdCcmVha3NbaV0gPSAhZXhwZWN0ZWRCcmVha3NbaV07ICAgLy8gRm9yY2VzIGFuIGVycm9yLgorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb2xsb3dpbmdCcmVha3NbYnJlYWtQb3NdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsYXN0QnJlYWtQb3MgPSBicmVha1BvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRmluZCB0aGUgYnJlYWsgcG9zaXRpb25zIHVzaW5nIHRoZSBwcmVjZWRpbmcoKSBmdW5jdGlvbi4KKyAgICAgICAgbGFzdEJyZWFrUG9zID0gdGVzdFRleHQubGVuZ3RoKCk7CisgICAgICAgIHByZWNlZGluZ0JyZWFrc1t0ZXN0VGV4dC5sZW5ndGgoKV0gPSB0cnVlOworICAgICAgICBmb3IgKGk9dGVzdFRleHQubGVuZ3RoKCk7IGk+MDsgaS0tKSB7CisgICAgICAgICAgICBicmVha1BvcyA9IGJpLnByZWNlZGluZyhpKTsKKyAgICAgICAgICAgIGlmIChicmVha1BvcyA+PSBpIHx8CisgICAgICAgICAgICAgICAgYnJlYWtQb3MgPiBsYXN0QnJlYWtQb3MgfHwKKyAgICAgICAgICAgICAgICBicmVha1BvcyA8IDAgfHwKKyAgICAgICAgICAgICAgICBicmVha1BvcyA8IGxhc3RCcmVha1BvcyAmJiBsYXN0QnJlYWtQb3MgPCBpICkgeworICAgICAgICAgICAgICAgIGVycmxuKG5hbWUgKyAiIGJyZWFrIG1vbmtleSB0ZXN0OiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJPdXQgb2YgcmFuZ2UgdmFsdWUgcmV0dXJuZWQgYnkgQnJlYWtJdGVyYXRvcjo6cHJlY2VkaW5nKCkuXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbmRleD0iICsgaSArICJwcmVjZWRpbmcgcmV0dXJuZWQ9IiArIGJyZWFrUG9zICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJsYXN0QnJlYWs9IiArIGxhc3RCcmVha1Bvcyk7CisgICAgICAgICAgICAgICAgcHJlY2VkaW5nQnJlYWtzW2ldID0gIWV4cGVjdGVkQnJlYWtzW2ldOyAgIC8vIEZvcmNlcyBhbiBlcnJvci4KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJlY2VkaW5nQnJlYWtzW2JyZWFrUG9zXSA9IHRydWU7CisgICAgICAgICAgICAgICAgbGFzdEJyZWFrUG9zID0gYnJlYWtQb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAKKworICAgICAgICAvLyBDb21wYXJlIHRoZSBleHBlY3RlZCBhbmQgYWN0dWFsIHJlc3VsdHMuCisgICAgICAgIGZvciAoaT0wOyBpPD10ZXN0VGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgZXJyb3JUeXBlID0gbnVsbDsKKyAgICAgICAgICAgIGlmICAoZm9yd2FyZEJyZWFrc1tpXSAhPSBleHBlY3RlZEJyZWFrc1tpXSkgeworICAgICAgICAgICAgICAgIGVycm9yVHlwZSA9ICJuZXh0KCkiOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXZlcnNlQnJlYWtzW2ldICE9IGZvcndhcmRCcmVha3NbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJvclR5cGUgPSAicHJldmlvdXMoKSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQm91bmRhcnlCcmVha3NbaV0gIT0gZXhwZWN0ZWRCcmVha3NbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJvclR5cGUgPSAiaXNCb3VuZGFyeSgpIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9sbG93aW5nQnJlYWtzW2ldICE9IGV4cGVjdGVkQnJlYWtzW2ldKSB7CisgICAgICAgICAgICAgICAgZXJyb3JUeXBlID0gImZvbGxvd2luZygpIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlY2VkaW5nQnJlYWtzW2ldICE9IGV4cGVjdGVkQnJlYWtzW2ldKSB7CisgICAgICAgICAgICAgICAgZXJyb3JUeXBlID0gInByZWNlZGluZygpIjsKKyAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICBpZiAoZXJyb3JUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBGb3JtYXQgYSByYW5nZSBvZiB0aGUgdGVzdCB0ZXh0IHRoYXQgaW5jbHVkZXMgdGhlIGZhaWx1cmUgYXMKKyAgICAgICAgICAgICAgICAvLyAgYSBkYXRhIGl0ZW0gdGhhdCBjYW4gYmUgaW5jbHVkZWQgaW4gdGhlIHJiYmkgdGVzdCBkYXRhIGZpbGUuCisKKyAgICAgICAgICAgICAgICAvLyBTdGFydCBvZiB0aGUgcmFuZ2UgaXMgdGhlIGxhc3QgcG9pbnQgd2hlcmUgZXhwZWN0ZWQgYW5kIGFjdHVhbCByZXN1bHRzCisgICAgICAgICAgICAgICAgLy8gICBib3RoIGFncmVlZCB0aGF0IHRoZXJlIHdhcyBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIGludCBzdGFydENvbnRleHQgPSBpOworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRDb250ZXh0PT0wKSB7IGJyZWFrOyB9CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q29udGV4dCAtLTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkQnJlYWtzW3N0YXJ0Q29udGV4dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRW5kIG9mIHJhbmdlIGlzIHR3byBleHBlY3RlZCBicmVha3MgcGFzdCB0aGUgc3RhcnQgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgaW50IGVuZENvbnRleHQgPSBpICsgMTsKKyAgICAgICAgICAgICAgICBpbnQgY2k7CisgICAgICAgICAgICAgICAgZm9yIChjaT0wOyBjaTwyOyBjaSsrKSB7ICAvLyBOdW1iZXIgb2YgaXRlbXMgdG8gaW5jbHVkZSBpbiBlcnJvciB0ZXh0LgorICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kQ29udGV4dCA+PSB0ZXN0VGV4dC5sZW5ndGgoKSkge2JyZWFrO30KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZEJyZWFrc1tlbmRDb250ZXh0LTFdKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAwKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZENvbnRleHQgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBGb3JtYXQgbG9va3MgbGlrZSAgICI8ZGF0YT48Plx1YWJjZFx1YWJjZDw+XFUwMDAxYWJjZC4uLjwvZGF0YT4iCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGVycm9yVGV4dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKCI8ZGF0YT4iKTsKKworICAgICAgICAgICAgICAgIFN0cmluZyBoZXhDaGFycyA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKKyAgICAgICAgICAgICAgICBpbnQgICAgICBjOyAgICAvLyBDaGFyIGZyb20gdGVzdCBkYXRhCisgICAgICAgICAgICAgICAgaW50ICAgICAgYm47CisgICAgICAgICAgICAgICAgZm9yIChjaSA9IHN0YXJ0Q29udGV4dDsgIGNpIDw9IGVuZENvbnRleHQgJiYgY2kgIT0gLTE7ICBjaSA9IG5leHRDUCh0ZXN0VGV4dCwgY2kpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaSA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgZXJyb3IuCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKCI8Pz4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChleHBlY3RlZEJyZWFrc1tjaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgYSBub24tZXJyb3IgZXhwZWN0ZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKCI8PiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChjaSA8IHRlc3RUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHRlc3RUZXh0LCBjaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA8IDB4MTAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGJuPTEyOyBibj49MDsgYm4tPTQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZChoZXhDaGFycy5jaGFyQXQoKCgoaW50KWMpPj5ibikmMHhmKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKCJcXFUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGJuPTI4OyBibj49MDsgYm4tPTQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZChoZXhDaGFycy5jaGFyQXQoKCgoaW50KWMpPj5ibikmMHhmKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjaSA9PSB0ZXN0VGV4dC5sZW5ndGgoKSAmJiBjaSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKCI8PiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKCI8L2RhdGE+XG4iKTsKKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgZXJyb3IKKyAgICAgICAgICAgICAgICBlcnJsbihuYW1lICsgIiBicmVhayBtb25rZXkgdGVzdCBlcnJvci4gICIgKyAKKyAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZEJyZWFrc1tpXT8gIkJyZWFrIGV4cGVjdGVkIGJ1dCBub3QgZm91bmQuIiA6ICJCcmVhayBmb3VuZCBidXQgbm90IGV4cGVjdGVkLiIpICsKKyAgICAgICAgICAgICAgICAgICAgICAiXG5PcGVyYXRpb24gPSAiICsgZXJyb3JUeXBlICsgIjsgcmFuZG9tIHNlZWQgPSAiICsgc2VlZCArICI7ICBidWYgSWR4ID0gIiArIGkgKyAiXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9vcENvdW50Kys7CisgICAgfQorfQorCitwdWJsaWMgdm9pZCBUZXN0Q2hhck1vbmtleSgpIHsKKyAgICAKKyAgICBpbnQgICAgICAgIGxvb3BDb3VudCA9IDUwMDsKKyAgICBpbnQgICAgICAgIHNlZWQgICAgICA9IDE7CisgICAgCisgICAgaWYgKHBhcmFtcy5pbmNsdXNpb24gPj0gOSkgeworICAgICAgICBsb29wQ291bnQgPSAxMDAwMDsKKyAgICB9CisgICAgCisgICAgUkJCSUNoYXJNb25rZXkgIG0gPSBuZXcgUkJCSUNoYXJNb25rZXkoKTsKKyAgICBCcmVha0l0ZXJhdG9yICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgUnVuTW9ua2V5KGJpLCBtLCAiY2hhciIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisKK3B1YmxpYyB2b2lkIFRlc3RXb3JkTW9ua2V5KCkgeworICAgIAorICAgIGludCAgICAgICAgbG9vcENvdW50ID0gNTAwOworICAgIGludCAgICAgICAgc2VlZCAgICAgID0gMTsKKyAgICAKKyAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+PSA5KSB7CisgICAgICAgIGxvb3BDb3VudCA9IDEwMDAwOworICAgIH0KKyAgICAKKyAgICBsb2dsbigiV29yZCBCcmVhayBNb25rZXkgVGVzdCIpOworICAgIFJCQklXb3JkTW9ua2V5ICBtID0gbmV3IFJCQklXb3JkTW9ua2V5KCk7CisgICAgQnJlYWtJdGVyYXRvciAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBSdW5Nb25rZXkoYmksIG0sICJ3b3JkIiwgc2VlZCwgbG9vcENvdW50KTsKK30KKworcHVibGljIHZvaWQgVGVzdExpbmVNb25rZXkoKSB7CisgICAgCisgICAgaW50ICAgICAgICBsb29wQ291bnQgPSA1MDA7CisgICAgaW50ICAgICAgICBzZWVkICAgICAgPSAxOworICAgIAorICAgIGlmIChwYXJhbXMuaW5jbHVzaW9uID49IDkpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMTAwMDA7CisgICAgfQorICAgIAorICAgIGxvZ2xuKCJMaW5lIEJyZWFrIE1vbmtleSBUZXN0Iik7CisgICAgUkJCSUxpbmVNb25rZXkgIG0gPSBuZXcgUkJCSUxpbmVNb25rZXkoKTsKKyAgICBCcmVha0l0ZXJhdG9yICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIGlmIChwYXJhbXMgPT0gbnVsbCkgeworICAgICAgICBsb29wQ291bnQgPSA1MDsKKyAgICB9CisgICAgUnVuTW9ua2V5KGJpLCBtLCAibGluZSIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisKK3B1YmxpYyB2b2lkIFRlc3RTZW50TW9ua2V5KCkgeworICAgIAorICAgIGludCAgICAgICAgbG9vcENvdW50ID0gNTAwOworICAgIGludCAgICAgICAgc2VlZCAgICAgID0gMTsKKyAgICAKKyAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+PSA5KSB7CisgICAgICAgIGxvb3BDb3VudCA9IDMwMDA7CisgICAgfQorICAgIAorICAgIGxvZ2xuKCJTZW50ZW5jZSBCcmVhayBNb25rZXkgVGVzdCIpOworICAgIFJCQklTZW50ZW5jZU1vbmtleSAgbSA9IG5ldyBSQkJJU2VudGVuY2VNb25rZXkoKTsKKyAgICBCcmVha0l0ZXJhdG9yICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBpZiAocGFyYW1zID09IG51bGwpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMzA7CisgICAgfQorICAgIFJ1bk1vbmtleShiaSwgbSwgInNlbnQiLCBzZWVkLCBsb29wQ291bnQpOworfQorLy8KKy8vICBSb3VuZC10cmlwIG1vbmtleSB0ZXN0cy4KKy8vICBWZXJpZnkgdGhhdCBicmVhayBpdGVyYXRvcnMgY3JlYXRlZCBmcm9tIHRoZSBydWxlIHNvdXJjZSBmcm9tIHRoZSBkZWZhdWx0CisvLyAgICBicmVhayBpdGVyYXRvcnMgc3RpbGwgcGFzcyB0aGUgbW9ua2V5IHRlc3QgZm9yIHRoZSBpdGVyYXRvciB0eXBlLgorLy8KKy8vICBUaGlzIGlzIGEgbWFqb3IgdGVzdCBmb3IgdGhlIFJ1bGUgQ29tcGlsZXIuICBUaGUgZGVmYXVsdCBicmVhayBpdGVyYXRvcnMgYXJlIGJ1aWx0CisvLyAgZnJvbSBwcmUtY29tcGlsZWQgYmluYXJ5IHJ1bGUgZGF0YSB0aGF0IHdhcyBjcmVhdGVkIHVzaW5nIElDVTRDOyB0aGVzZQorLy8gIHJvdW5kLXRyaXAgcnVsZSByZWNvbXBpbGUgdGVzdHMgdmVyaWZ5IHRoYXQgdGhlIEphdmEgcnVsZSBjb21waWxlciBjYW4KKy8vICByZWJ1aWxkIGJyZWFrIGl0ZXJhdG9ycyBmcm9tIHRoZSBvcmlnaW5hbCBzb3VyY2UgcnVsZXMuCisvLworcHVibGljIHZvaWQgVGVzdFJUQ2hhck1vbmtleSgpIHsKKyAgICAKKyAgICBpbnQgICAgICAgIGxvb3BDb3VudCA9IDIwMDsKKyAgICBpbnQgICAgICAgIHNlZWQgICAgICA9IDE7CisgICAgCisgICAgaWYgKHBhcmFtcy5pbmNsdXNpb24gPj0gOSkgeworICAgICAgICBsb29wQ291bnQgPSAyMDAwOworICAgIH0KKyAgICAKKyAgICBSQkJJQ2hhck1vbmtleSAgbSA9IG5ldyBSQkJJQ2hhck1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBTdHJpbmcgcnVsZXMgPSBiaS50b1N0cmluZygpOworICAgIEJyZWFrSXRlcmF0b3IgcnRiaSA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVzKTsKKyAgICBSdW5Nb25rZXkocnRiaSwgbSwgImNoYXIiLCBzZWVkLCBsb29wQ291bnQpOworfQorCitwdWJsaWMgdm9pZCBUZXN0UlRXb3JkTW9ua2V5KCkgeworICAgIAorICAgIGludCAgICAgICAgbG9vcENvdW50ID0gMjAwOworICAgIGludCAgICAgICAgc2VlZCAgICAgID0gMTsKKyAgICAKKyAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+PSA5KSB7CisgICAgICAgIGxvb3BDb3VudCA9IDIwMDA7CisgICAgfQorICAgIAorICAgIGxvZ2xuKCJXb3JkIEJyZWFrIE1vbmtleSBUZXN0Iik7CisgICAgUkJCSVdvcmRNb25rZXkgIG0gPSBuZXcgUkJCSVdvcmRNb25rZXkoKTsKKyAgICBCcmVha0l0ZXJhdG9yICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIFN0cmluZyBydWxlcyA9IGJpLnRvU3RyaW5nKCk7CisgICAgQnJlYWtJdGVyYXRvciBydGJpID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IocnVsZXMpOworICAgIFJ1bk1vbmtleShydGJpLCBtLCAid29yZCIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisKK3B1YmxpYyB2b2lkIFRlc3RSVExpbmVNb25rZXkoKSB7CisgICAgCisgICAgaW50ICAgICAgICBsb29wQ291bnQgPSAyMDA7CisgICAgaW50ICAgICAgICBzZWVkICAgICAgPSAxOworICAgIAorICAgIGlmIChwYXJhbXMuaW5jbHVzaW9uID49IDkpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMjAwMDsKKyAgICB9CisgICAgCisgICAgbG9nbG4oIkxpbmUgQnJlYWsgTW9ua2V5IFRlc3QiKTsKKyAgICBSQkJJTGluZU1vbmtleSAgbSA9IG5ldyBSQkJJTGluZU1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgU3RyaW5nIHJ1bGVzID0gYmkudG9TdHJpbmcoKTsKKyAgICBCcmVha0l0ZXJhdG9yIHJ0YmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlcyk7CisgICAgaWYgKHBhcmFtcyA9PSBudWxsKSB7CisgICAgICAgIGxvb3BDb3VudCA9IDUwOworICAgIH0KKyAgICBSdW5Nb25rZXkocnRiaSwgbSwgImxpbmUiLCBzZWVkLCBsb29wQ291bnQpOworfQorCitwdWJsaWMgdm9pZCBUZXN0UlRTZW50TW9ua2V5KCkgeworICAgIAorICAgIGludCAgICAgICAgbG9vcENvdW50ID0gMjAwOworICAgIGludCAgICAgICAgc2VlZCAgICAgID0gMTsKKyAgICAKKyAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+PSA5KSB7CisgICAgICAgIGxvb3BDb3VudCA9IDEwMDA7CisgICAgfQorICAgIAorICAgIGxvZ2xuKCJTZW50ZW5jZSBCcmVhayBNb25rZXkgVGVzdCIpOworICAgIFJCQklTZW50ZW5jZU1vbmtleSAgbSA9IG5ldyBSQkJJU2VudGVuY2VNb25rZXkoKTsKKyAgICBCcmVha0l0ZXJhdG9yICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBTdHJpbmcgcnVsZXMgPSBiaS50b1N0cmluZygpOworICAgIEJyZWFrSXRlcmF0b3IgcnRiaSA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVzKTsKKyAgICBpZiAocGFyYW1zID09IG51bGwpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMzA7CisgICAgfQorICAgIFJ1bk1vbmtleShydGJpLCBtLCAic2VudCIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisKKworCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1NpbXBsZUJJVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvU2ltcGxlQklUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzY1OWU2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1NpbXBsZUJJVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yOworCisvLyBUT0RPOiB7ZGxmfSB0aGlzIHRlc3QgY3VycmVudGx5IGRvZXNuJ3QgdGVzdCBhbnl0aGluZyEKKy8vIFlvdSdsbCBub3RpY2UgdGhhdCB0aGUgcmVzb3VyY2UgdGhhdCB1c2VzIHRoZSBkaWN0aW9uYXJ5IGlzbid0IGV2ZW4gb24gdGhlIHJlc291cmNlIHBhdGgsCisvLyBzbyB0aGUgZGljdGlvbmFyeSBuZXZlciBnZXRzIHVzZWQuICBHb29kIHRoaW5nLCB0b28sIGJlY2F1c2UgaXQgd291bGQgdGhyb3cgYSBzZWN1cml0eQorLy8gZXhjZXB0aW9uIGlmIHJ1biB3aXRoIGEgc2VjdXJpdHkgbWFuYWdlci4gIE5vdCB0aGF0IGl0IHdvdWxkIG1hdHRlciwgdGhlIGRpY3Rpb25hcnkgCisvLyByZXNvdXJjZSBpc24ndCBldmVuIGluIHRoZSBpY3Ugc291cmNlIHRyZWUhCisvLyBJbiBvcmRlciB0byBmaXggdGhpczoKKy8vIDEpIG1ha2Ugc3VyZSBlbmdsaXNoLmRpY3QgbWF0Y2hlcyB0aGUgY3VycmVudCBkaWN0aW9uYXJ5IGZvcm1hdCByZXF1aXJlZCBieSBkYmJpCisvLyAyKSBtYWtlIHN1cmUgZW5nbGlzaC5kaWN0IGdldHMgaW5jbHVkZWQgaW4gaWN1NGp0ZXN0cy5qYXIKKy8vIDMpIGhhdmUgdGhpcyB0ZXN0IHVzZSBnZXRSZXNvdXJjZUFzU3RyZWFtIHRvIGdldCBhIHN0cmVhbSBvbiB0aGUgZGljdGlvbmFyeSwgYW5kCisvLyAgICBkaXJlY3RseSBpbnN0YW50aWF0ZSBhIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuICBJdCBjYW4gdXNlIHRoZSBydWxlcyBmcm9tCisvLyAgICB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBvZiBSZXNvdXJjZUJ1bmRsZV9lbl9VU19URVNULiAgSSdkIHN1Z2dlc3QganVzdCBjb3B5aW5nCisvLyAgICB0aGUgcnVsZXMgaW50byB0aGlzIGZpbGUuCisvLyA0KSBjaGFuZ2UgdGhlIHRlc3QgdGV4dCBieSBpbnNlcnRpbmcgJ3wnIGF0IHdvcmQgYnJlYWtzLCBhbmQgJ3x8JyBhdCBsaW5lIGJyZWFrcy4gIAorLy8gNSkgcHJvY2VzcyB0aGlzIHRleHQgdG8gYSkgY3JlYXRlIHRhYmxlcyBvZiBicmVhayBpbmRpY2VzLCBhbmQgYikgY2xlYW4gdXAgdGhlIHRlc3QKKy8vICAgIGZvciB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gd29yayBvbgorLy8gCisvLyBUaGlzIHdvdWxkIE5PVCB0ZXN0IHRoZSBhYmlsaXR5IHRvIGxvYWQgZGljdGlvbmFyeS1iYXNlZCBicmVhayBpdGVyYXRvcnMgdGhyb3VnaCBvdXIKKy8vIG5vcm1hbCByZXNvdXJjZSBtZWNoYW5pc20uICBPbmUgY291bGQgaW5zdGFsbCBzdWNoIGEgYnJlYWsgaXRlcmF0b3IgYW5kIGl0cworLy8gcmVzb3VyY2VzIGludG8gdGhlIGljdTRqIGphciwgYW5kIGl0IHdvdWxkIHdvcmssIGJ1dCB0aGVyZSdzIG5vIHdheSB0byByZWdpc3RlciBlbnRpcmUKKy8vIHJlc291cmNlcyBmcm9tIG91dHNpZGUgeWV0LiAgRXZlbiBpZiB0aGVyZSB3ZXJlLCB0aGUgYWNjZXNzIHJlc3RyaWN0aW9ucyBhcmUgYSBiaXQKKy8vIGRpZmZpY3VsdCB0byBtYW5hZ2UsIGlmIG9uZSB3YW50ZWQgdG8gcmVnaXN0ZXIgYSBicmVhayBpdGVyYXRvciB3aG9zZSBjb2RlIGFuZCBkYXRhCisvLyByZXNpZGVzIG91dHNpZGUgdGhlIGljdTRqIGphci4gIFNpbmNlIHRoZSBjb2RlIHRvIGluc3RhbnRpYXRlIHdvdWxkIGJlIGdvaW5nIHRocm91Z2ggCisvLyB0d28gcHJvdGVjdGlvbiBkb21haW5zLCBlYWNoIGRvbWFpbiB3b3VsZCBoYXZlIHRvIGFsbG93IGFjY2VzcyB0byB0aGUgZGF0YS0tIGJ1dCAKKy8vIGljdTRqJ3MgZG9tYWluIHdvdWxkbid0IGtub3cgYWJvdXQgb3Vycy4gIFNvIHdlIGNvdWxkIGluc3RhbnRpYXRlIGJlZm9yZSByZWdpc3RlcmluZworLy8gdGhlIGJyZWFrIGl0ZXJhdG9yLCBidXQgdGhpcyB3b3VsZCBtZWFuIHdlJ2QgaGF2ZSB0byBmdWxseSBpbml0aWFsaXplIHRoZSBkaWN0aW9uYXJ5KHMpCisvLyBhdCBpbnN0YW50aWF0aW9uIHRpbWUsIHJhdGhlciB0aGFuIGxldCB0aGlzIGJlIGRlZmVycmVkIHVudGlsIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKy8vCisvLyBJJ3ZlIGRvbmUgaXRlbXMgMiBhbmQgMyBhYm92ZS4gIFVuZm9ydHVuYXRlbHksIHNpbmNlIEkgaGF2ZW4ndCBkb25lIGl0ZW0gMSwgdGhlCisvLyBkaWN0aW9uYXJ5IGJ1aWxkZXIgY3Jhc2hlcy4gIFNvIGZvciBub3cgSSdtIGRpc2FibGluZyB0aGlzIHRlc3QuICBUaGlzIGlzIG5vdAorLy8gdGhhdCBpbXBvcnRhbnQsIHNpbmNlIHdlIGhhdmUgYSB0aGFpIGRpY3Rpb25hcnkgdGhhdCB3ZSBkbyB0ZXN0IHRob3JvdWdobHkuCisvLworCitwdWJsaWMgY2xhc3MgU2ltcGxlQklUZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGVzdFRleHQgPQorLy8gICAgICAgICJUaGUgcmFpbiBpbiBTcGFpbiBzdGF5cyBtYWlubHkgb24gdGhlIHBsYWluLiAgVGhlIHBsYWlucyBpbiBTcGFpbiBhcmUgbWFpbmx5IHBhaW5lZCB3aXRoIHJhaW4uIjsKKy8vIm9uZS10d28gbm93LS0gIEhhaCEgIFlvdSBvd2UgbWUgZXhhY3RseSAkMSwzNDUuNjcuLi4gIFBheSB1cCwgaHVoPyAgQnkgdGhlIHdheSwgd2h5IGRvbid0IEkgc2VuZCB5b3UgbXkgcmVcdTAzMDFzdW1lXHUwMzAxPyAgVGhpcyBpcyBhIGxpbmVcclxuYnJlYWsuIjsKKy8vIm5vd2lzdGhldGltZWZvcmFsbGdvb2RtZW4uLi4gIHRvY29tZXRvdGhlaGVscG9mdGhlaXJjb3VudHJ5IjsKKyJXaGVuLCBpbiB0aGUgY291cnNlIG9mIGh1bWFuIGV2ZW50cywgaXQgYmVjb21lcyBuZWNlc3NhcnkgZm9yIG9uZSBwZW9wbGUgdG8gZGlzc29sdmUgdGhlIHBvbGl0aWNhbCBib25kcyB3aGljaCBoYXZlICIKKy8vIldoZW4saW50aGVjb3Vyc2VvZmh1bWFuZXZlbnRzLGl0YmVjb21lc25lY2Vzc2FyeWZvcm9uZXBlb3BsZXRvZGlzc29sdmV0aGVwb2xpdGljYWxib25kc3doaWNoaGF2ZSIKKysgImNvbm5lY3RlZHRoZW13aXRoYW5vdGhlcixhbmR0b2Fzc3VtZWFtb25ndGhlcG93ZXJzb2Z0aGVlYXJ0aCx0aGVzZXBhcmF0ZWFuZGVxdWFsc3RhdGlvbnRvd2hpY2h0aGVsYXdzIgorKyAib2ZuYXR1cmVhbmRvZm5hdHVyZSdzR29kZW50aXRsZXRoZW0sYWRlY2VudHJlc3BlY3R0b3RoZW9waW5pb25zb2ZtYW5raW5kcmVxdWlyZXN0aGF0dGhleXNob3VsZGRlY2xhcmV0aGUiCisrICJjYXVzZXN3aGljaGltcGVsdGhlbXRvdGhlc2VwYXJhdGlvblxuIgorKyAiV2Vob2xkdGhlc2V0cnV0aHN0b2Jlc2VsZi1ldmlkZW50LHRoYXRhbGxtZW5hcmVjcmVhdGVkZXF1YWwsdGhhdHRoZXlhcmVlbmRvd2VkYnl0aGVpckNyZWF0b3J3aXRoY2VydGFpbiIKKysgInVuYWxpZW5hYmxlcmlnaHRzLHRoYXRhbW9uZ3RoZXNlYXJlbGlmZSxsaWJlcnR5YW5kdGhlcHVyc3VpdG9maGFwcGluZXNzLlRoYXR0b3NlY3VyZXRoZXNlcmlnaHRzLGdvdmVybm1lbnRzYXJlIgorKyAiaW5zdGl0dXRlZGFtb25nbWVuLGRlcml2aW5ndGhlaXJqdXN0cG93ZXJzZnJvbXRoZWNvbnNlbnRvZnRoZWdvdmVybmVkLlRoYXR3aGVuZXZlcmFueWZvcm1vZmdvdmVybm1lbnQiCisrICJiZWNvbWVzZGVzdHJ1Y3RpdmV0b3RoZXNlZW5kcyxpdGlzdGhlcmlnaHRvZnRoZXBlb3BsZXRvYWx0ZXJvcnRvYWJvbGlzaGl0LGFuZHRvaW5zdGl0dXRlbmV3Z292ZXJubWVudCxsYXlpbmciCisrICJpdHNmb3VuZGF0aW9ub25zdWNocHJpbmNpcGxlc2FuZG9yZ2FuaXppbmdpdHNwb3dlcnNpbnN1Y2hmb3JtLGFzdG90aGVtc2hhbGxzZWVtbW9zdGxpa2VseXRvZWZmZWN0dGhlaXJzYWZldHkiCisrICJhbmRoYXBwaW5lc3MuUHJ1ZGVuY2UsaW5kZWVkLHdpbGxkaWN0YXRldGhhdGdvdmVybm1lbnRzbG9uZ2VzdGFibGlzaGVkc2hvdWxkbm90YmVjaGFuZ2VkZm9ybGlnaHRhbmR0cmFuc2llbnQiCisrICJjYXVzZXM7YW5kYWNjb3JkaW5nbHlhbGxleHBlcmllbmNlaGF0aHNob3dudGhhdG1hbmtpbmRhcmVtb3JlZGlzcG9zZWR0b3N1ZmZlcix3aGlsZWV2aWxzYXJlc3VmZmVyYWJsZSx0aGFuIgorKyAidG9yaWdodHRoZW1zZWx2ZXNieWFib2xpc2hpbmd0aGVmb3Jtc3Rvd2hpY2h0aGV5YXJlYWNjdXN0b21lZC5CdXR3aGVuYWxvbmd0cmFpbm9mYWJ1c2VzYW5kdXN1cnBhdGlvbnMsIgorKyAicHVyc3VpbmdpbnZhcmlhYmx5dGhlc2FtZW9iamVjdGV2aW5jZXNhZGVzaWdudG9yZWR1Y2V0aGVtdW5kZXJhYnNvbHV0ZWRlc3BvdGlzbSxpdGlzdGhlaXJyaWdodCxpdGlzdGhlaXJkdXR5LCIKKysgInRvdGhyb3dvZmZzdWNoZ292ZXJubWVudCxhbmR0b3Byb3ZpZGVuZXdndWFyZHNmb3J0aGVpcmZ1dHVyZXNlY3VyaXR5Li0tU3VjaGhhc2JlZW50aGVwYXRpZW50c3VmZmVyYW5jZW9mIgorKyAidGhlc2Vjb2xvbmllczthbmRzdWNoaXNub3d0aGVuZWNlc3NpdHl3aGljaGNvbnN0cmFpbnN0aGVtdG9hbHRlcnRoZWlyZm9ybWVyc3lzdGVtc29mZ292ZXJubWVudC5UaGVoaXN0b3J5IgorKyAib2Z0aGVwcmVzZW50S2luZ29mR3JlYXRCcml0YWluaXNhaGlzdG9yeW9mcmVwZWF0ZWRpbmp1cmllc2FuZHVzdXJwYXRpb25zLGFsbGhhdmluZ2luZGlyZWN0b2JqZWN0dGhlIgorKyAiZXN0YWJsaXNobWVudG9mYW5hYnNvbHV0ZXR5cmFubnlvdmVydGhlc2VzdGF0ZXMuVG9wcm92ZXRoaXMsbGV0ZmFjdHNiZXN1Ym1pdHRlZHRvYWNhbmRpZHdvcmxkLlxuIgorKyAiSGVoYXNyZWZ1c2VkaGlzYXNzZW50dG9sYXdzLHRoZW1vc3R3aG9sZXNvbWVhbmRuZWNlc3Nhcnlmb3J0aGVwdWJsaWNnb29kLlxuIgorKyAiSGVoYXNmb3JiaWRkZW5oaXNnb3Zlcm5vcnN0b3Bhc3NsYXdzb2ZpbW1lZGlhdGVhbmRwcmVzc2luZ2ltcG9ydGFuY2UsdW5sZXNzc3VzcGVuZGVkaW50aGVpcm9wZXJhdGlvbnRpbGwiCisrICJoaXNhc3NlbnRzaG91bGRiZW9idGFpbmVkO2FuZHdoZW5zb3N1c3BlbmRlZCxoZWhhc3V0dGVybHluZWdsZWN0ZWR0b2F0dGVuZHRvdGhlbS5cbiIKKysgIkhlaGFzcmVmdXNlZHRvcGFzc290aGVybGF3c2ZvcnRoZWFjY29tbW9kYXRpb25vZmxhcmdlZGlzdHJpY3Rzb2ZwZW9wbGUsdW5sZXNzdGhvc2VwZW9wbGV3b3VsZHJlbGlucXVpc2giCisrICJ0aGVyaWdodG9mcmVwcmVzZW50YXRpb25pbnRoZWxlZ2lzbGF0dXJlLGFyaWdodGluZXN0aW1hYmxldG90aGVtYW5kZm9ybWlkYWJsZXRvdHlyYW50c29ubHkuXG4iCisrICJIZWhhc2NhbGxlZHRvZ2V0aGVybGVnaXNsYXRpdmVib2RpZXNhdHBsYWNlc3VudXN1YWwsdW5jb21mb3J0YWJsZSxhbmRkaXN0YW50ZnJvbXRoZWRlcG9zaXRvcnlvZnRoZWlycHVibGljIgorKyAicmVjb3Jkcyxmb3J0aGVzb2xlcHVycG9zZW9mZmF0aWd1aW5ndGhlbWludG9jb21wbGlhbmNld2l0aGhpc21lYXN1cmVzLlxuIgorKyAiSGVoYXNkaXNzb2x2ZWRyZXByZXNlbnRhdGl2ZWhvdXNlc3JlcGVhdGVkbHksZm9yb3Bwb3Npbmd3aXRobWFubHlmaXJtbmVzc2hpc2ludmFzaW9uc29udGhlcmlnaHRzb2Z0aGVwZW9wbGUuXG4iCisrICJIZWhhc3JlZnVzZWRmb3JhbG9uZ3RpbWUsYWZ0ZXJzdWNoZGlzc29sdXRpb25zLHRvY2F1c2VvdGhlcnN0b2JlZWxlY3RlZDt3aGVyZWJ5dGhlbGVnaXNsYXRpdmVwb3dlcnMsIgorKyAiaW5jYXBhYmxlb2Zhbm5paGlsYXRpb24saGF2ZXJldHVybmVkdG90aGVwZW9wbGVhdGxhcmdlZm9ydGhlaXJleGVyY2lzZTt0aGVzdGF0ZXJlbWFpbmluZ2ludGhlbWVhbnRpbWVleHBvc2VkIgorKyAidG9hbGx0aGVkYW5nZXJzb2ZpbnZhc2lvbmZyb213aXRob3V0LGFuZGNvbnZ1bHNpb25zd2l0aGluLlxuIgorKyAiSGVoYXNlbmRlYXZvcmVkdG9wcmV2ZW50dGhlcG9wdWxhdGlvbm9mdGhlc2VzdGF0ZXM7Zm9ydGhhdHB1cnBvc2VvYnN0cnVjdGluZ3RoZWxhd3Nmb3JuYXR1cmFsaXphdGlvbm9mIgorKyAiZm9yZWlnbmVycztyZWZ1c2luZ3RvcGFzc290aGVyc3RvZW5jb3VyYWdldGhlaXJtaWdyYXRpb25oaXRoZXIsYW5kcmFpc2luZ3RoZWNvbmRpdGlvbnNvZm5ld2FwcHJvcHJpYXRpb25zb2YiCisrICJsYW5kcy5cbiIKKysgIkhlaGFzb2JzdHJ1Y3RlZHRoZWFkbWluaXN0cmF0aW9ub2ZqdXN0aWNlLGJ5cmVmdXNpbmdoaXNhc3NlbnR0b2xhd3Nmb3Jlc3RhYmxpc2hpbmdqdWRpY2lhcnlwb3dlcnMuXG4iCisrICJIZWhhc21hZGVqdWRnZXNkZXBlbmRlbnRvbmhpc3dpbGxhbG9uZSxmb3J0aGV0ZW51cmVvZnRoZWlyb2ZmaWNlcyxhbmR0aGVhbW91bnRhbmRwYXltZW50b2Z0aGVpcnNhbGFyaWVzLlxuIgorKyAiSGVoYXNlcmVjdGVkYW11bHRpdHVkZW9mbmV3b2ZmaWNlcyxhbmRzZW50aGl0aGVyc3dhcm1zb2ZvZmZpY2Vyc3RvaGFyYXNzb3VycGVvcGxlLGFuZGVhdG91dHRoZWlyIgorKyAic3Vic3RhbmNlLlxuIgorKyAiSGVoYXNrZXB0YW1vbmd1cyxpbnRpbWVzb2ZwZWFjZSxzdGFuZGluZ2FybWllc3dpdGhvdXR0aGVjb25zZW50b2ZvdXJsZWdpc2xhdHVyZS5cbiIKKysgIkhlaGFzYWZmZWN0ZWR0b3JlbmRlcnRoZW1pbGl0YXJ5aW5kZXBlbmRlbnRvZmFuZHN1cGVyaW9ydG9jaXZpbHBvd2VyLlxuIgorKyAiSGVoYXNjb21iaW5lZHdpdGhvdGhlcnN0b3N1YmplY3R1c3RvYWp1cmlzZGljdGlvbmZvcmVpZ250b291cmNvbnN0aXR1dGlvbixhbmR1bmFja25vd2xlZGdlZGJ5b3VybGF3czsiCisrICJnaXZpbmdoaXNhc3NlbnR0b3RoZWlyYWN0c29mcHJldGVuZGVkbGVnaXNsYXRpb246XG4iCisrICJGb3JxdWFydGVyaW5nbGFyZ2Vib2RpZXNvZmFybWVkdHJvb3BzYW1vbmd1czpcbiIKKysgIkZvcnByb3RlY3Rpbmd0aGVtLGJ5bW9ja3RyaWFsLGZyb21wdW5pc2htZW50Zm9yYW55bXVyZGVyc3doaWNodGhleXNob3VsZGNvbW1pdG9udGhlaW5oYWJpdGFudHNvZnRoZXNlIgorKyAic3RhdGVzOlxuIgorKyAiRm9yY3V0dGluZ29mZm91cnRyYWRld2l0aGFsbHBhcnRzb2Z0aGV3b3JsZDpcbiIKKysgIkZvcmltcG9zaW5ndGF4ZXNvbnVzd2l0aG91dG91cmNvbnNlbnQ6XG4iCisrICJGb3JkZXByaXZpbmd1c2lubWFueWNhc2VzLG9mdGhlYmVuZWZpdHNvZnRyaWFsYnlqdXJ5OlxuIgorKyAiRm9ydHJhbnNwb3J0aW5ndXNiZXlvbmRzZWFzdG9iZXRyaWVkZm9ycHJldGVuZGVkb2ZmZW5zZXM6XG4iCisrICJGb3JhYm9saXNoaW5ndGhlZnJlZXN5c3RlbW9mRW5nbGlzaGxhd3NpbmFuZWlnaGJvcmluZ3Byb3ZpbmNlLGVzdGFibGlzaGluZ3RoZXJlaW5hbmFyYml0cmFyeWdvdmVybm1lbnQsYW5kIgorKyAiZW5sYXJnaW5naXRzYm91bmRhcmllc3NvYXN0b3JlbmRlcml0YXRvbmNlYW5leGFtcGxlYW5kZml0aW5zdHJ1bWVudGZvcmludHJvZHVjaW5ndGhlc2FtZWFic29sdXRlcnVsZWludGhlc2UiCisrICJjb2xvbmllczpcbiIKKysgIkZvcnRha2luZ2F3YXlvdXJjaGFydGVycyxhYm9saXNoaW5nb3VybW9zdHZhbHVhYmxlbGF3cyxhbmRhbHRlcmluZ2Z1bmRhbWVudGFsbHl0aGVmb3Jtc29mb3VyZ292ZXJubWVudHM6XG4iCisrICJGb3JzdXNwZW5kaW5nb3Vyb3dubGVnaXNsYXR1cmVzLGFuZGRlY2xhcmluZ3RoZW1zZWx2ZXNpbnZlc3RlZHdpdGhwb3dlcnRvbGVnaXNsYXRlZm9ydXNpbmFsbGNhc2Vzd2hhdHNvZXZlci5cbiIKKysgIkhlaGFzYWJkaWNhdGVkZ292ZXJubWVudGhlcmUsYnlkZWNsYXJpbmd1c291dG9maGlzcHJvdGVjdGlvbmFuZHdhZ2luZ3dhcmFnYWluc3R1cy5cbiIKKysgIkhlaGFzcGx1bmRlcmVkb3Vyc2VhcyxyYXZhZ2Vkb3VyY29hc3RzLGJ1cm5lZG91cnRvd25zLGFuZGRlc3Ryb3llZHRoZWxpdmVzb2ZvdXJwZW9wbGUuXG4iCisrICJIZWlzYXR0aGlzdGltZXRyYW5zcG9ydGluZ2xhcmdlYXJtaWVzb2Zmb3JlaWdubWVyY2VuYXJpZXN0b2NvbXBsZXRldGhld29ya3NvZmRlYXRoLGRlc29sYXRpb25hbmR0eXJhbm55LCIKKysgImFscmVhZHliZWd1bndpdGhjaXJjdW1zdGFuY2Vzb2ZjcnVlbHR5YW5kcGVyZmlkeXNjYXJjZWx5cGFyYWxsZWxlZGludGhlbW9zdGJhcmJhcm91c2FnZXMsYW5kdG90YWx5dW53b3J0aCIKKysgInRoZWhlYWRvZmFjaXZpbGl6ZWRuYXRpb24uXG4iCisrICJIZWhhc2NvbnN0cmFpbmVkb3VyZmVsbG93Y2l0aXplbnN0YWtlbmNhcHRpdmVvbnRoZWhpZ2hzZWFzdG9iZWFyYXJtc2FnYWluc3R0aGVpcmNvdW50cnksdG9iZWNvbWV0aGUiCisrICJleGVjdXRpb25lcnNvZnRoZWlyZnJpZW5kc2FuZGJyZXRocmVuLG9ydG9mYWxsdGhlbXNlbHZlc2J5dGhlaXJoYW5kcy5cbiIKKysgIkhlaGFzZXhjaXRlZGRvbWVzdGljaW5zdXJyZWN0aW9uc2Ftb25nc3R1cyxhbmRoYXNlbmRlYXZvcmVkdG9icmluZ29udGhlaW5oYWJpdGFudHNvZm91cmZyb250aWVycyx0aGUiCisrICJtZXJjaWxlc3NJbmRpYW5zYXZhZ2VzLHdob3Nla25vd25ydWxlb2Z3YXJmYXJlLGlzdW5kaXN0aW5ndWlzaGVkZGVzdHJ1Y3Rpb25vZmFsbGFnZXMsc2V4ZXNhbmRjb25kaXRpb25zLlxuIgorKyAiSW5ldmVyeXN0YWdlb2Z0aGVzZW9wcHJlc3Npb25zd2VoYXZlcGV0aXRpb25lZGZvcnJlZHJlc3NpbnRoZW1vc3RodW1ibGV0ZXJtczpvdXJyZXBlYXRlZHBldGl0aW9uc2hhdmUiCisrICJiZWVuYW5zd2VyZWRvbmx5YnlyZXBlYXRlZGluanVyeS5BcHJpbmNlLHdob3NlY2hhcmFjdGVyaXN0aHVzbWFya2VkYnlldmVyeWFjdHdoaWNobWF5ZGVmaW5lYXR5cmFudCxpcyIKKysgInVuZml0dG9iZXRoZXJ1bGVyb2ZhZnJlZXBlb3BsZS5cbiIKKysgIk5vcmhhdmV3ZWJlZW53YW50aW5naW5hdHRlbnRpb250b291ckJyaXRpc2hicmV0aHJlbi5XZWhhdmV3YXJuZWR0aGVtZnJvbXRpbWV0b3RpbWVvZmF0dGVtcHRzYnl0aGVpciIKKysgImxlZ2lzbGF0dXJldG9leHRlbmRhbnVud2FycmFudGFibGVqdXJpc2RpY3Rpb25vdmVydXMuV2VoYXZlcmVtaW5kZWR0aGVtb2Z0aGVjaXJjdW1zdGFuY2Vzb2ZvdXJlbWlncmF0aW9uIgorKyAiYW5kc2V0dGxlbWVudGhlcmUuV2VoYXZlYXBwZWFsZWR0b3RoZWlybmF0aXZlanVzdGljZWFuZG1hZ25hbmltaXR5LGFuZHdlaGF2ZWNvbmp1cmVkdGhlbWJ5dGhldGllc29mb3VyIgorKyAiY29tbW9ua2luZHJlZHRvZGlzYXZvd3RoZXNldXN1cnBhdGlvbnMsd2hpY2gsd291bGRpbmV2aXRhYmx5aW50ZXJydXB0b3VyY29ubmVjdGlvbnNhbmRjb3JyZXNwb25kZW5jZS5XZSIKKysgIm11c3QsdGhlcmVmb3JlLGFjcXVpZXNjZWludGhlbmVjZXNzaXR5LHdoaWNoZGVub3VuY2Vzb3Vyc2VwYXJhdGlvbixhbmRob2xkdGhlbSxhc3dlaG9sZHRoZXJlc3RvZm1hbmtpbmQsIgorKyAiZW5lbWllc2lud2FyLGlucGVhY2VmcmllbmRzLlxuIgorKyAiV2UsdGhlcmVmb3JlLHRoZXJlcHJlc2VudGF0aXZlc29mdGhlVW5pdGVkU3RhdGVzb2ZBbWVyaWNhLGluR2VuZXJhbENvbmdyZXNzLGFzc2VtYmxlZCxhcHBlYWxpbmd0b3RoZSIKKysgIlN1cHJlbWVKdWRnZW9mdGhld29ybGRmb3J0aGVyZWN0aXR1ZGVvZm91cmludGVudGlvbnMsZG8saW50aGVuYW1lLGFuZGJ5dGhlYXV0aG9yaXR5b2Z0aGVnb29kcGVvcGxlb2YiCisrICJ0aGVzZWNvbG9uaWVzLHNvbGVtbmx5cHVibGlzaGFuZGRlY2xhcmUsdGhhdHRoZXNldW5pdGVkY29sb25pZXNhcmUsYW5kb2ZyaWdodG91Z2h0dG9iZWZyZWVhbmRpbmRlcGVuZGVudCIKKysgInN0YXRlczt0aGF0dGhleWFyZWFic29sdmVkZnJvbWFsbGFsbGVnaWFuY2V0b3RoZUJyaXRpc2hDcm93bixhbmR0aGF0YWxscG9saXRpY2FsY29ubmVjdGlvbmJldHdlZW50aGVtYW5kdGhlIgorKyAic3RhdGVvZkdyZWF0QnJpdGFpbixpc2FuZG91Z2h0dG9iZXRvdGFsbHlkaXNzb2x2ZWQ7YW5kdGhhdGFzZnJlZWFuZGluZGVwZW5kZW50c3RhdGVzLHRoZXloYXZlZnVsbHBvd2VydG8iCisrICJsZXZleXdhcixjb25jbHVkZXBlYWNlLGNvbnRyYWN0YWxsaWFuY2VzLGVzdGFibGlzaGNvbW1lcmNlLGFuZHRvZG9hbGxvdGhlcmFjdHNhbmR0aGluZ3N3aGljaGluZGVwZW5kZW50IgorKyAic3RhdGVzbWF5b2ZyaWdodGRvLkFuZGZvcnRoZXN1cHBvcnRvZnRoaXNkZWNsYXJhdGlvbix3aXRoYWZpcm1yZWxpYW5jZW9udGhlcHJvdGVjdGlvbm9mRGl2aW5lUHJvdmlkZW5jZSx3ZSIKKysgIm11dHVhbGx5cGxlZGdldG9lYWNob3RoZXJvdXJsaXZlcyxvdXJmb3J0dW5lc2FuZG91cnNhY3JlZGhvbm9yLlxuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgU2ltcGxlQklUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKyAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHdoZW4gZW5nbGlzaC5kaWN0IGdldHMgZml4ZWQKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBjcmVhdGVUZXN0SXRlcmF0b3IoaW50IGtpbmQpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJuYW1lID0gImNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmkuQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QiOworCisgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IG51bGw7CisKKyAgICAgICAgTGlzdFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDbGFzcyBjbHMgPSBDbGFzcy5mb3JOYW1lKGJuYW1lKTsKKyAgICAgICAgICAgIGJ1bmRsZSA9IChMaXN0UmVzb3VyY2VCdW5kbGUpY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBidW5kbGU6ICIgKyBibmFtZSArICJleGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nW10ga2luZE5hbWVzID0geworICAgICAgICAgICAgIkNoYXJhY3RlciIsICJXb3JkIiwgIkxpbmUiLCAiU2VudGVuY2UiCisgICAgICAgIH07CisgICAgICAgIFN0cmluZyBydWxlc05hbWUgPSBraW5kTmFtZXNba2luZF0gKyAiQnJlYWtSdWxlcyI7CisgICAgICAgIFN0cmluZyBkaWN0aW9uYXJ5TmFtZSA9IGtpbmROYW1lc1traW5kXSArICJCcmVha0RpY3Rpb25hcnkiOworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gY2xhc3NOYW1lcyA9IGJ1bmRsZS5nZXRTdHJpbmdBcnJheSgiQnJlYWtJdGVyYXRvckNsYXNzZXMiKTsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gYnVuZGxlLmdldFN0cmluZyhydWxlc05hbWUpOworICAgICAgICBpZiAoY2xhc3NOYW1lc1traW5kXS5lcXVhbHMoIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiKSkgeworICAgICAgICAgICAgaXRlciA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChjbGFzc05hbWVzW2tpbmRdLmVxdWFscygiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBkaWN0aW9uYXJ5UGF0aCA9IGJ1bmRsZS5nZXRTdHJpbmcoZGljdGlvbmFyeU5hbWUpOworICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGRpY3Rpb25hcnkgPSBidW5kbGUuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKGRpY3Rpb25hcnlQYXRoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImxvb2tpbmcgZm9yICIgKyBkaWN0aW9uYXJ5UGF0aCArICIgZnJvbSAiICsgYnVuZGxlLmdldENsYXNzKCkgKyAiIHJldHVybmVkICIgKyBkaWN0aW9uYXJ5KTsKKyAgICAgICAgICAgICAgICBpdGVyID0gbmV3IERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IocnVsZXMsIGRpY3Rpb25hcnkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsgLy8gZGVidWcKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsgLy8gZGVidWcKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBpdGVyYXRvciIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gaXRlcjsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdGVzdFdvcmRCcmVhaygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBCcmVha0l0ZXJhdG9yIHdvcmRCcmVhayA9IGNyZWF0ZVRlc3RJdGVyYXRvcihCcmVha0l0ZXJhdG9yLktJTkRfV09SRCk7CisgICAgICAgIGludCBicmVha3MgPSBkb1Rlc3Qod29yZEJyZWFrKTsKKyAgICAgICAgbG9nbG4oU3RyaW5nLnZhbHVlT2YoYnJlYWtzKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdExpbmVCcmVhaygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBCcmVha0l0ZXJhdG9yIGxpbmVCcmVhayA9IGNyZWF0ZVRlc3RJdGVyYXRvcihCcmVha0l0ZXJhdG9yLktJTkRfTElORSk7CisgICAgICAgIGludCBicmVha3MgPSBkb1Rlc3QobGluZUJyZWFrKTsKKyAgICAgICAgbG9nbG4oU3RyaW5nLnZhbHVlT2YoYnJlYWtzKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFNlbnRlbmNlQnJlYWsoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBzZW50ZW5jZUJyZWFrID0gY3JlYXRlVGVzdEl0ZXJhdG9yKEJyZWFrSXRlcmF0b3IuS0lORF9TRU5URU5DRSk7CisgICAgICAgIGludCBicmVha3MgPSBkb1Rlc3Qoc2VudGVuY2VCcmVhayk7CisgICAgICAgIGxvZ2xuKFN0cmluZy52YWx1ZU9mKGJyZWFrcykpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGRvVGVzdChCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIC8vIGZvcndhcmQKKyAgICAgICAgYmkuc2V0VGV4dCh0ZXN0VGV4dCk7CisgICAgICAgIGludCBwID0gYmkuZmlyc3QoKTsKKyAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgU3RyaW5nIGZyYWdtZW50OworICAgICAgICBpbnQgYnJlYWtzID0gMDsKKyAgICAgICAgbG9nbG4oIkZvcndhcmQuLi4iKTsKKyAgICAgICAgd2hpbGUgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBwID0gYmkubmV4dCgpOworICAgICAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQgPSB0ZXN0VGV4dC5zdWJzdHJpbmcobGFzdFAsIHApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmcmFnbWVudCA9IHRlc3RUZXh0LnN1YnN0cmluZyhsYXN0UCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWJ1Z1ByaW50bG4oIjogPiIgKyBmcmFnbWVudCArICI8Iik7CisgICAgICAgICAgICArK2JyZWFrczsKKyAgICAgICAgICAgIGxhc3RQID0gcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnJlYWtzOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkZWJ1Z1ByaW50bG4oU3RyaW5nIHMpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9zID0gIjAwMDAiOworICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPCAnXHUwMDdmJykKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGMpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgdGVtcCA9IEludGVnZXIudG9IZXhTdHJpbmcoKGludCljKTsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKHplcm9zLnN1YnN0cmluZygwLCA0IC0gdGVtcC5sZW5ndGgoKSkpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQodGVtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KKworLyogICAgcHJpdmF0ZSB2b2lkIGRlYnVnUHJpbnRsbjIoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJ1x1MDEwMCcpCisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiPCIgKyAoKGludCljIC0gMHgxMDApICsgIj4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKG91dC50b1N0cmluZygpKTsKKyAgICB9Ki8KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3Njc1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAvLyBEaXNhYmxlZCBmb3Igbm93OyBzZWUgY29tbWVudCBpbiBTaW1wbGVCSVRlc3QgZm9yIGRldGFpbHMKKyAgICAgICAgICAgICAgICAgIC8vICJTaW1wbGVCSVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkJyZWFrSXRlcmF0b3JUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJSQkJJVGVzdCIsCisgICAgICAgICAgICAgICAgICAiUkJCSUFQSVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkJyZWFrSXRlcmF0b3JSZWdUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJSQkJJVGVzdEV4dGVuZGVkIiwKKyAgICAgICAgICAgICAgICAgICJSQkJJVGVzdE1vbmtleSIKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIiBCcmVha0l0ZXJhdG9yIGFuZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIFRlc3RzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiUkJCSSI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjI0NjhhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgdGhlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcmJiaXRzdC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9yYmJpdHN0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDc5M2MwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcmJiaXRzdC50eHQKQEAgLTAsMCArMSw1MzkgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBSQkJJIFRlc3QgRGF0YQorIworIyAgIEZpbGU6ICByYmJpdHN0LnR4dAorIworIyAgICAgVGhlIGZvcm1hdCBvZiB0aGlzIGZpbGUgbG9va3MgdmFndWVseSBsaWtlIHNvbWUga2luZCBvZiB4bWwtaXNoIG1hcmt1cCwKKyMgICAgIGJ1dCBpdCBpcyBOT1QuICBUaGUgc3ludGF4IGlzIHRoaXMuLgorIworIyAgIDx3b3JkPiAgICBhbnkgZm9sbG93aW5nIGRhdGEgaXMgZm9yIHdvcmQgYnJlYWsgdGVzdGluZworIyAgIDxzZW50PiAgICBhbnkgZm9sbG93aW5nIGRhdGEgaXMgZm9yIHNlbnRlbmNlIGJyZWFrIHRlc3RpbmcKKyMgICA8bGluZT4gICAgYW55IGZvbGxvd2luZyBkYXRhIGlzIGZvciBsaW5lIGJyZWFrIHRlc3RpbmcKKyMgICA8Y2hhcj4gICAgYW55IGZvbGxvd2luZyBkYXRhIGlzIGZvciBjaGFyIGJyZWFrIHRlc3RpbmcKKyMgICA8bG9jYWxlIGxvY2FsX25hbWU+ICBTd2l0Y2ggdG8gdGhlIG5hbWVkIGxvY2FsZSBhdCB0aGUgbmV4dCBvY2N1cmVuY2Ugb2YgPHdvcmQ+LCA8c2VudD4sIGV0Yy4KKyMgICA8ZGF0YT4gLi4uIDwvZGF0YT4gICB0ZXN0IGRhdGEuICBNYXkgc3BhbiBtdWx0aXBsZSBsaW5lcy4KKyMgICAgICA8PiAgICAgICAgQnJlYWsgcG9zaXRpb24sIHN0YXR1cyA9PSAwCisjICAgICAg4oCiICAgICAgICAgQnJlYWsgcG9zaXRpb24sIHN0YXR1cyA9PSAwICAgKEJ1bGxldCwgXHUyMDIyKSAKKyMgICAgICA8bm5uPiAgICAgQnJlYWsgcG9zaXRpb24sIHN0YXR1cyA9PSBubm4KKyMgICAgICBcICAgICAgICAgRXNjYXBlLiAgTm9ybWFsIElDVSB1bmVzY2FwZSBhcHBsaWVkLiAgCisjICAgICAgXCBhdCBlbmQgb2YgbGluZSAgLT4gIExpbmUgQ29udGludWF0aW9uLiAgUmVtb3ZlIGJvdGggdGhlIGJhY2tzbGFzaCBhbmQgdGhlIG5ldyBsaW5lCisjICAgCisjCisKKworIyAgIFRlbXAgZGVidWdnaW5nIHRlc3RzIAorPHNlbnQ+Cis8ZGF0YT7igKIgIChUaGlzIGlzIGl0KS4gIOKAolRlc3RpbmcgdGhlIHNlbnRlbmNlIGl0ZXJhdG9yLiDigKJcCisiVGhpcyBpc24ndCBpdC4iIOKAokhpISBcCivigKJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4g4oCiKFRoaXMgaXMgaXQuKSDigKJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4g4oCiXAorIlRoaXMgaXNuJ3QgaXQuIiDigKJcCitIaSEg4oCiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuIOKAokl0IGRvZXMgbm90IGhhdmUgdG8gbWFrZSBhbnkgc2Vuc2UgYXMgeW91IGNhbiBzZWUuIOKAok5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiB1bmEgc2VsdmEgb3NjdXJhLiDigKJDaGUgbGEgZHJpdHRhIHZpYSBhdmVvIHNtYXJyaXRhLiDigKJIZSBzYWlkLCB0aGF0IEkgc2FpZCwgdGhhdCB5b3Ugc2FpZCEhIOKAokRvbid0IHJvY2sgdGhlIGJvYXQuXHUyMDI54oCiQmVjYXVzZSBJIGFtIHRoZSBkYWRkeSwgdGhhdCBpcyB3aHkuIAor4oCiTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKSEg4oCiPC9kYXRhPgorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjCisjICAgICAgIEcgciBhIHAgaCBlIG0gZSAgICBDIGwgdSBzIHQgZSByICAgICBUIGUgcyB0IHMKKyMKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworPGNoYXI+CisKKzxkYXRhPuKAomHigKJi4oCiY+KAoiDigKIs4oCiXHUwNjY24oCiPC9kYXRhPiAgICAgICAgICAgICAgICAgIyBRdWljayBUZXN0Cis8ZGF0YT7igKJccuKAolxy4oCiXHJcbuKAolxyXG7igKJcbuKAolxy4oCiPC9kYXRhPiAgICAgICAgICAgICMgZG9uJ3QgYnJlYWsgQ1IvTEYKKworIyBBbHdheXMgYnJlYWsgYWZ0ZXIgY29udHJvbHMuICBDb21iaW5pbmcgY2hhcnMgZG9uJ3QgY29tYmluZSB3aXRoIHRoZW0uCis8ZGF0YT7igKJcdTAwMDPigKJcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfeKAolxy4oCiXE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH3igKI8L2RhdGE+Cis8ZGF0YT7igKJcdTAwODXigKJcTntDT01CSU5JTkcgTUFDUk9OfeKAokFcTntDT01CSU5JTkcgTUFDUk9OfeKAojwvZGF0YT4KKworIyBTdXJyb2dhdGVzCis8ZGF0YT7igKJcVTAwMDExMDAw4oCiXFUwMDAxMDAyMOKAolxVMDAwMTAwMDBcTntDT01CSU5JTkcgTUFDUk9OfeKAojwvZGF0YT4KKzxkYXRhPuKAolx1ZDgwMFx1ZGMwMOKAolx1ZGJmZlx1ZGZmZuKAomHigKI8L2RhdGE+CisKKyMgRXh0ZW5kIChDb21iaW5pbmcgY2hhcnMpIGNvbWJpbmUuCis8ZGF0YT7igKJBXE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH3igKJC4oCiPC9kYXRhPgorPGRhdGE+4oCiXE57R1JFRUsgU01BTEwgTEVUVEVSIE1VfVxOe0NPTUJJTklORyBMT1cgTElORX1cTntDT01CSU5JTkcgSE9STn3igKI8L2RhdGE+Cis8ZGF0YT7igKJhXHUwMzAx4oCiYlx1MDMwMuKAomNcdTAzMDPigKJkXHUwMzA04oCiZVx1MDMwNeKAomZcdTAzMDbigKJnXHUwMzA34oCiaFx1MDMwOOKAomlcdTAzMDnigKI8L2RhdGE+CisKKzxkYXRhPuKAomFcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDTigKI8L2RhdGE+CisKKyMgRG9uJ3QgYnJlYWsgSGFuZ3VsIFN5bGxhYmxlcworIyAgIEwgOiBcdTExMDAKKyMgICBWIDogXHUxMTYxCisjICAgVCA6IFx1MTFBOAorIyAgTFYgOiBcdUFDMDAKKyMgTFZUIDogXHVBQzAxCisKKzxkYXRhPuKAolx1MTEwMFx1MTE2MVx1MTFhOOKAolx1MTEwMFx1MTE2MVx1MTFhOOKAojwvZGF0YT4gICNMVlQKKzxkYXRhPuKAolx1MTEwMFx1MTE2MeKAolx1MTEwMFx1MTE2MeKAojwvZGF0YT4gCis8ZGF0YT7igKJcdTExMDBcdTExNjFcdTExYTjigKJcdTExNjHigKJcdTExMDDigKJcdTExYTjigKJcdTExNjFcdTExNjFcdTExNjFcdTExYTjigKI8L2RhdGE+Cis8ZGF0YT7igKJcdTExMDBcdTExMDBcdWFjMDHigKJcdTExMDBcdWFjMDHigKJcdTExMDBcdWFjMDFcdTAzMDHigKJcdWFjMDHigKI8L2RhdGE+Cis8ZGF0YT7igKJcdTExMDBcdTAzMDHigKJcdTExNjFcdTExYThcdTAzMDHigKJcdTExYTjigKI8L2RhdGE+CisKKworCisjIEhpbmRpIGNvbWJpbmluZyBjaGFycy4gIChBbiBvbGQgdGVzdCkKKzxkYXRhPuKAouCkreKAouKAouCkvuKAolx1MDkzMOKAolx1MDkyNOKAoiDigKJcdTA5MzhcdTA5NDFcdTA5MDLigKJcdTA5MjbigKJcdTA5MzDigKIKK+KAolx1MDkzOeKAolx1MDk0Y+KAolx1MDk2NOKAojwvZGF0YT4KKzxkYXRhPuKAolx1MDkxNlx1MDk0N+KAolx1MDkzOFx1MDk0MVx1MDkwMuKAolx1MDkyNuKAolx1MDkzMOKAolx1MDkzOeKAolx1MDk0Y+KAolx1MDk2NOKAojwvZGF0YT4KKworCisjICBCdWcgMTU4Ny4gIFRhbWlsLiAgXHUwYmFhXHUwYmMxIHNob3VsZCBiZSB0d28gc2VwYXJhdGUgY2hhcmFjdGVycywgZXZlbiB0aG91Z2gKKyMgICAgICAgICAgICAgICAgICAgICBIeWFuZ21pIHdvdWxkIHBlcmZlciB0aGF0IGl0IGJlIG9uZS4KKzxkYXRhPuKAolx1MGJhYeKAolx1MGJjMeKAolx1MGJhYeKAolx1MGJjMeKAojwvZGF0YT4KKworIyAgIFJlZ3Jlc3Npb24gdGVzdCBmb3IgYnVnIDE4ODkKKzxkYXRhPuKAolx1MGY0MFx1MGY3ZOKAolx1MDAwMOKAolx1MGY3ZeKAojwvZGF0YT4KKworCisjICAgICAweGZmZmYgaXMgYSBsZWdhbCBjaGFyYWN0ZXIsIGFuZCBzaG91bGQgbm90IHN0b3AgdGhlIGJyZWFrIGl0ZXJhdG9yIGVhcmx5LgorIyAgICAgKFJlcXVpcmVzIHNwZWNpYWwgY2FzaW5nIGluIGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyB3aHkgaXQgZ2V0cyBhIHRlc3QuKQorPGRhdGE+4oCiXHVmZmZm4oCiXHVmZmZm4oCiIOKAomHigKI8L2RhdGE+CisKKyMgIFRyZWF0IEphcGFuZXNlIEhhbGYgV2lkdGggdm9pY2luZyBtYXJrcyBhcyBjb21iaW5pbmcKKzxkYXRhPuKAokFcdWZmOWXigKJCXHVmZjlmXHVmZjllXHVmZjlm4oCiQ+KAojwvZGF0YT4KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIworIyAgICAgICBXIG8gciBkICAgIEIgbyB1IG4gZCBhIHIgeSAgICAgIFQgZSBzIHQgcworIworIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKzx3b3JkPgorIworIyBRdWljayBzYW5pdHkgdGVzdAorIworPGRhdGE+4oCiaGVsbG88MjAwPiDigKJ0aGVyZTwyMDA+IOKAomdvb2RieWU8MjAwPjwvZGF0YT4KKzxkYXRhPuKAomhlbGxvPDIwMD4g4oCiMTIzNDU8MTAwPiDigKIs4oCiPC9kYXRhPgorCisKKyMKKyMgVGVzdCBkYXRhIG9yaWdpbmFsbHkgaW4gUkJCSUFQSVRlc3Q6OlRlc3RGaXJzdE5leHRGb2xsb3dpbmcoKSBhbmQgVGVzdExhc3RQcmV2aW91c1ByZWNlZGluZygpCisjCisKKzx3b3JkPgorPGRhdGE+4oCiVGhpczwyMDA+IOKAomlzPDIwMD4g4oCiYTwyMDA+IOKAondvcmQ8MjAwPiDigKJicmVhazwyMDA+LuKAoiDigKIg4oCiSXNuJ3Q8MjAwPiDigKJpdDwyMDA+P+KAoiDigKIyLjI1PDEwMD48L2RhdGE+CisKKworCisjCisjIERhdGEgb3JpZ2luYWxseSBmcm9tIFRlc3REZWZhdWx0UnVsZUJhc2VkV29yZEl0ZXJhdGlvbigpCisjCis8ZGF0YT7igKJXcml0ZTwyMDA+IOKAondvcmRydWxlczwyMDA+LuKAoiDigKIxMjMuNDU2PDEwMD4g4oCiYWxwaGFcdTAwYWRiZXRhXHUwMGFkZ2FtbWE8MjAwPiDigKJcdTA5MmZcdTA5Mzk8MjAwPiDigKI8L2RhdGE+Cis8ZGF0YT7igKIg4oCiXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUyMDBkXHUwOTI2XHUwOTQwPDIwMD4g4oCiXHUwOTM5XHUwOTQ4PDIwMD4g4oCiXHUwOTA1XHUwOTNlXHUwOTJhPDIwMD4g4oCiXHUwOTM4XHUwOTNmXHUwOTE2XHUwOTRiXHUwOTE3XHUwOTQ3PDIwMD4/4oCiPC9kYXRhPgorCisjSGluZGkgTnVtYmVycworPGRhdGE+4oCiIOKAolx1MDk2OFx1MDk2Ni5cdTA5NjlcdTA5NmY8MTAwPiDigKJcdTA5NjdcdTA5NjZcdTA5NjYuXHUwOTY2XHUwOTY2PDEwMD4g4oCiXE57UlVQRUUgU0lHTn3igKJcdTA5NjcsXHUwOTY3XHUwOTY2XHUwOTY2Llx1MDk2Nlx1MDk2NjwxMDA+IOKAoiDigKJcdTA5MDVcdTA5MmVcdTA5MWM8MjAwPlxu4oCiPC9kYXRhPgorCis8ZGF0YT7igKJcdTA5MzhcdTA5NGRcdTIwMGRcdTA5MzVcdTA5MjRcdTA5MDJkZWFkVEFcdTA5MzA8MjAwPlxy4oCiSXQnczwyMDA+IOKAoiTigKIzMC4xMDwxMDA+IOKAojEyLDM0PDEwMD7CouKAosKj4oCiwqTigKLCpeKAomFscGhhXHUwNWYzYmV0YVx1MDVmNGdhbW1hPDIwMD4g4oCiPC9kYXRhPgorCis8ZGF0YT7igKJCYWRnZXM8MjAwPj/igKIg4oCiQkFER0VTPDIwMD4h4oCiP+KAoiHigKIg4oCiV2U8MjAwPiDigKJkb24ndDwyMDA+IOKAom5lZWQ8MjAwPiDigKJubzwyMDA+IOKAolNUSU5LSU5HPDIwMD4g4oCiQkFER0VTPDIwMD4h4oCiIeKAojEwMDAsMjMzLDQ1Ni4wMDA8MTAwPiDigKIxLDIzLjMyMjwxMDA+JeKAojEyMy4xMjIyPDEwMD4k4oCiMTIzLDAwMC4yMDwxMDA+IOKAojE3OS4wMTwxMDA+JeKAolg8MjAwPiDigKJOb3c8MjAwPlxy4oCiaXM8MjAwPlxu4oCidGhlPDIwMD5cclxu4oCidGltZTwyMDA+IOKAojwvZGF0YT4KKworI0hhbmd1bAorPGRhdGE+4oCiXHVjNWYwXHVkNTY5PDIwMD4g4oCiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjPDIwMD4g4oCiXHUxMTA5XHUxMTYxXHUxMWJjXHUxMTEyXHUxMTYxXHUxMWJjPDIwMD4g4oCiXHUxMTEyXHUxMTYxXHUxMWFiXHUxMTBiXHUxMTc1XHUxMWFiPDIwMD4g4oCiSGVsbG88MjAwPizigKIg4oCiaG93PDIwMD4g4oCiYXJlPDIwMD4g4oCieW91PDIwMD4g4oCiPC9kYXRhPgorCisKKyMgV29yZHMgY29udGFpbmluZyBub24tQk1QIGxldHRlcnMKKzxkYXRhPuKAomFiY1xVMDAwMTAzMDA8MjAwPiDigKJhYmNcTntERVNFUkVUIFNNQUxMIExFVFRFUiBFTkd9PDIwMD4g4oCiYWJjXE57TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWn08MjAwPiDigKJhYmNcTntNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBQSSBTWU1CT0x9PDIwMD4g4oCiPC9kYXRhPgorCisjIFVuYXNzaWduZWQgY29kZSBwb2ludHMKKzxkYXRhPuKAomFiYzwyMDA+XFUwMDAxRDgwMOKAomRlZjwyMDA+XFUwMDAxRDNGRuKAoiDigKI8L2RhdGE+CisKKyMgSGlyYWdhbmEgJiBLYXRha2FuYSBzdGF5IHRvZ2V0aGVyLCBidXQgc2VwYXJhdGVzIGZyb20gZWFjaCBvdGhlciBhbmQgTGF0aW4uCis8ZGF0YT7igKJhYmM8MjAwPlxOe0hJUkFHQU5BIExFVFRFUiBTTUFMTCBBfTwzMDA+XE57SElSQUdBTkEgTEVUVEVSIFZVfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9PDMwMD5cTntISVJBR0FOQSBJVEVSQVRJT04gTUFSS308MzAwPlxOe0tBVEFLQU5BIExFVFRFUiBTTUFMTCBBfVxOe0tBVEFLQU5BIElURVJBVElPTiBNQVJLfVxOe0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgV099XE57SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOfTwzMDA+ZGVmPDIwMD4j4oCiPC9kYXRhPgorCisjIFdvcmRzIHdpdGggaW50ZXJpb3IgZm9ybWF0dGluZyBjaGFyYWN0ZXJzCis8ZGF0YT7igKJkZWZcTntDT01CSU5JTkcgQUNVVEUgQUNDRU5UfVxOe1NZUklBQyBBQkJSRVZJQVRJT04gTUFSS31naGk8MjAwPiDigKI8L2RhdGE+CisgICAgCisjIHRvIHRlc3QgZm9yIGJ1ZyAjNDA5Nzc3OQorPGRhdGE+4oCiYWFcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfWE8MjAwPiDigKI8L2RhdGE+CisKKworIyAgICAgIHRvIHRlc3QgZm9yIGJ1ZyAjNDA5ODQ2NworIyAgICAgIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisjICAgICAgYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQKKyMgICAgICBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyMgICAgICBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorIyAgICAgIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLgorPGRhdGE+4oCiXHVjMGMxXHVkNTZkPDIwMD4g4oCiXHVkNTVjXHVjNzc4PDIwMD4g4oCiXHVjNWYwXHVkNTY5PDIwMD4g4oCiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjPDIwMD4g4oCiXHUxMTA5XHUxMTYxXHUxMWJjXHUxMTEyXHUxMTYxXHUxMWJjPDIwMD4g4oCiXHUxMTEyXHUxMTYxXHUxMWFiXHUxMTBiXHUxMTc1XHUxMWFiPDIwMD4g4oCiXHUxMTBiXHUxMTY3XHUxMWFiXHUxMTEyXHUxMTYxXHUxMWI4PDIwMD4g4oCiXHUxMTBjXHUxMTYxXHUxMWJjXHUxMTA1XHUxMTY5XHUxMTAwXHUxMTZkXHUxMTEyXHUxMTZjPDIwMD4g4oCiPC9kYXRhPgorCis8ZGF0YT7igKJhYmM8MjAwPlx1NGUwMTw0MDA+XHU0ZTAyPDQwMD5cdTMwMDU8MjAwPlx1NGUwMzw0MDA+XHU0ZTAzPDQwMD5hYmM8MjAwPiDigKI8L2RhdGE+CisKKzxkYXRhPuKAolx1MDZjOVx1Yzc5OVx1ZmZmYTwyMDA+PC9kYXRhPgorCisjICAgICAgCisjICAgICAgVHJ5IHNvbWUgd29yZHMgZnJvbSBvdGhlciBzY3JpcHRzLgorIyAgICAgCisKKyMgICAgICAgVHJ5IHNvbWUgd29yZHMgZnJvbSBvdGhlciBzY3JpcHRzLgorIyAgICAgICAgICBHcmVlaywgQ3lyaWxsaWMsIEhlYnJldywgQXJhYmljLCBBcmFiaWMsIEdlb3JnaWFuLCBMYXRpbgorIyAgICAgIAorPGRhdGE+4oCizpHOks6TPDIwMD4g4oCi0JHQktCTPDIwMD4g4oCi15DXkdeS1pM8MjAwPiDigKLYp9io2Ko8MjAwPiDigKLZodmi2aM8MTAwPiDigKJcdTEwQTBcdTEwQTFcdTEwQTI8MjAwPiDigKJBQkM8MjAwPiDigKI8L2RhdGE+CisKKzxkYXRhPuKAolx1MDMwMeKAokE8MjAwPjwvZGF0YT4KKworCisjCisjICBIaW5kaSB3b3JkIGJyZWFrIHRlc3RzLCBpbXBvcnRlZCBmcm9tIHRoZSBvbGQgUkJCSSB0ZXN0cy4KKyMgICAgQW4gaGlzdG9yaWNhbCBub3RlOiAgYSBtdWNoIGVhcmxpZXIgdmVyc2lvbiBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzIGhhZCBhIG51bWJlcgorIyAgICBvZiBzcGVjaWFsIGNhc2UgcnVsZXMgZm9yIEhpbmRpLCB3aGljaCB3ZXJlIHRlc3RlZCBieSBhbiBlYXJsaWVyIHZlcnNpb24gb2YKKyMgICAgdGhpcyB0ZXN0IGRhdGEuICBUaGUgY3VycmVudCBSQkJJIHJ1bGVzIGRvIG5vdCBzcGVjaWFsIGNhc2UgSGluZGkgaW4gCisjICAgIGFueSB3YXksIG1ha2luZyB0aGlzIHRlc3QgZGF0YSBtdWNoIGxlc3Mgc2lnbmZpZmljYW50LgorIworPGRhdGE+4oCiXHUwOTE3XHUwOTJhXHUwMGFkXHUwOTM2XHUwOTJhPDIwMD4h4oCiXHUwOTJmXHUwOTM5PDIwMD4g4oCiXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUyMDBkXHUwOTI2XHUwOTQwPDIwMD4g4oCiXHUwOTM5XHUwOTQ4PDIwMD4g4oCiXHUwOTA1XHUwOTNlXHUwOTJhPDIwMD4g4oCiXHUwOTM4XHUwOTNmXHUwOTE2XHUwOTRiXHUwOTE3XHUwOTQ3PDIwMD4/4oCiXG7igKI64oCiXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTNlXHUwOTJmXHUwOTAzPDIwMD4KK+KAolx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDkzZTwyMDA+XHJcbuKAolx1MDkyYVx1MDk0ZFx1MDkzMFx1MDkxNVx1MDkzZVx1MDkzNjwyMDA+LOKAolx1MDkyNFx1MDk0MVx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0YjwyMDA+IOKAolx1MDkyZVx1MDkzZlx1MDkyNFx1MDk0ZFx1MDkzMDwyMDA+IOKAolx1MDkxNVx1MDkzZTwyMDA+IOKAolx1MDkyYVx1MDkyNFx1MDk0ZFx1MDkzMDwyMDA+IOKAolx1MDkyYVx1MDk1ZFx1MDk0YjwyMDA+IOKAolx1MDkzOFx1MDk0ZFx1MDkyNFx1MDk0ZFx1MDkzMFx1MDkzZjwyMDA+LuKAoiDigKJcdTA5NjhcdTA5NjYuXHUwOTY5XHUwOTZmPDEwMD4g4oCiXHUwOTY3XHUwOTY2XHUwOTY2Llx1MDk2Nlx1MDk2NjwxMDA+XHUyMGE44oCiXHUwOTY3LFx1MDk2N1x1MDk2Nlx1MDk2Ni5cdTA5NjZcdTA5NjY8MTAwPiDigKJcdTA5MDVcdTA5MmVcdTA5MWM8MjAwPlxu4oCiXHUwOTM4XHUwOTRkXHUyMDBkXHUwOTM1XHUwOTI0XHUwOTAyXHUwOTI0XHUwOTRkXHUwOTMwPDIwMD5ccuKAojwvZGF0YT4KKworIworIyAgRmFpbHVyZXMgZnJvbSBtb25rZXkgdGVzdHMKKyMKKzxkYXRhPuKAolx1ODUyNzw0MDA+XHUwMmJhPDIwMD5cdTAwMjdcdTBkNDLigKJcdTAwYjfigKJcdTA5ZWE8MTAwPjwvZGF0YT4KKworIworIyBKaXR0ZXJidWcgNTI3NiAtIHRyZWF0IEphcGFuZXNlIGhhbGYgd2lkdGggdm9pY2luZyBtYXJrcyBhcyBHcmFwaGVtZSBFeHRlbmQKKyMKKzxkYXRhPuKAokFcdWZmOWVcdWZmOWZCQzwyMDA+IOKAojFcdWZmOWVcdWZmOWYyMzwxMDA+PC9kYXRhPgorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjCisjICAgICAgIFMgZSBuIHQgZSBuIGMgZSAgICAgQiBvIHUgbiBkIGEgciB5ICAgICAgVCBlIHMgdCBzCisjCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCisjCisjIFRlc3QgZGF0YSBvcmlnaW5hbGx5IGZyb20gUkJCSSBSQkJJVGVzdDo6VGVzdERlZmF1bHRSdWxlQmFzZWRTZW50ZW5jZUl0ZXJhdGlvbigpCisjCis8c2VudD4KKworCis8c2VudD4KKzxkYXRhPuKAolRoaXNcbjwxMDA+PC9kYXRhPgorPGRhdGE+4oCiSGVsbG8hIOKAomhvdyBhcmUgeW91PyDigKJJJ2FtIGZpbmUuIOKAolRoYW5reW91LiDigKJIb3cgYXJlIHlvdSBcCitkb2luZz8g4oCiVGhpc1xuPDEwMD4gY29zdHMgJDIwLDAwLDAwMC4g4oCiPC9kYXRhPgorCisKKyMgU2VudGVuY2UgZW5kaW5nIGluIGEgcXVvdGUuCis8ZGF0YT7igKIiU2VudGVuY2UgZW5kaW5nIHdpdGggYSBxdW90ZS4iIOKAokJ5ZS7igKI8L2RhdGE+CisKKyMgU2VudGVuY2UsIGFuZCB0ZXN0IGRhdGEsIGVuZGluZyB3aXRob3V0IGEgcGVyaW9kIG9yIG90aGVyIHRlcm1pbmF0b3IuCis8ZGF0YT7igKJIZXJlIGlzIGEgcmFuZG9tIHNlbnRlbmNlLCBubyBlbmRpbmcgcGVyaW9kPDEwMD48L2RhdGE+CisKKworPGRhdGE+4oCiICAoVGhpcyBpcyBpdCkuICDigKJUZXN0aW5nIHRoZSBzZW50ZW5jZSBpdGVyYXRvci4g4oCiXAorIlRoaXMgaXNuJ3QgaXQuIiDigKJIaSEgXAor4oCiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuIOKAoihUaGlzIGlzIGl0Likg4oCiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuIOKAolwKKyJUaGlzIGlzbid0IGl0LiIg4oCiXAorSGkhIOKAolRoaXMgaXMgYSBzaW1wbGUgc2FtcGxlIHNlbnRlbmNlLiDigKJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiDigKJOZWwgbWV6em8gZGVsIGNhbW1pbiBkaSBub3N0cmEgdml0YSwgbWkgcml0cm92YWkgaW4gdW5hIHNlbHZhIG9zY3VyYS4g4oCiQ2hlIGxhIGRyaXR0YSB2aWEgYXZlbyBzbWFycml0YS4g4oCiSGUgc2FpZCwgdGhhdCBJIHNhaWQsIHRoYXQgeW91IHNhaWQhISDigKJEb24ndCByb2NrIHRoZSBib2F0Llx1MjAyOeKAokJlY2F1c2UgSSBhbSB0aGUgZGFkZHksIHRoYXQgaXMgd2h5LiAKK+KAok5vdCBvbiBteSB0aW1lIChlbCB0aW1vLikhIOKAojwvZGF0YT4KKworPGRhdGE+4oCiSGVsbG8uICDigKJTbyB3aGF0ISFcdTIwMjnigKIiQnV0IG5vdywiIGhlIHNhaWQsIFwKKyJJIGtub3chIiDigKJcCitIYXJyaXMgdGh1bWJlZCBkb3duIHNldmVyYWwsIGluY2x1ZGluZyAiQXdheSBXZSBHbyIgKHdoaWNoIGJlY2FtZSB0aGUgaHVnZSBzdWNjZXNzIE9rbGFob21hISkuIOKAok9uZSBzcGVjaWVzLCBCLiBhbnRocmFjaXMsIGlzIGhpZ2hseSB2aXJ1bGVudC4KK+KAoldvbGYgc2FpZCBhYm91dCBTb3VuZGVyOlwKKyJCZWF1dGlmdWxseSB0aG91Z2h0LW91dCBhbmQgZGlyZWN0ZWQuIiDigKJcCitIYXZlIHlvdSBldmVyIHNhaWQsICJUaGlzIGlzIHdoZXJlXHRJIHNoYWxsIGxpdmUiPyDigKJIZSBhbnN3ZXJlZCwgXAorIllvdSBtYXkgbm90ISIg4oCiQW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogIkhvdyBkbyB5b3UgZG8/Ii4gXG7igKJcCitZZXQgYW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogXAorJ0knbSBmaW5lIHRoYW5rcy4nIOKAolwKK1doYXQgaXMgdGhlIHByb3BlciB1c2Ugb2YgdGhlIGFiYnJldmlhdGlvbiBwcC4/IOKAolllcywgSSBhbSBkZWZpbmF0ZWxseSAxMiIgdGFsbCEhXAor4oCiTm93XHI8MTAwPmlzXG48MTAwPnRoZVxyXG48MTAwPnRpbWVcbjwxMDA+XHI8MTAwPmZvclxyPDEwMD5ccjwxMDA+PC9kYXRhPgorCis8ZGF0YT7igKJObyBicmVha3Mgd2hlbiAuIGlzIHN1cnJvdW5kZWQgYnkgVVBQRVIuQ2FzZSBsZXR0ZXJzLiAg4oCiPC9kYXRhPgorPGRhdGE+4oCiTm8gYnJlYWtzIHdoZW4gLiBpcyBmb2xsb3dlZCBieSBOdW1lcmljIC40IGEuNCBDLjQgMy4xIC7igKI8L2RhdGE+Cis8ZGF0YT7igKJObyBicmVha3Mgd2hlbiAuIGlzIGZvbGxvd2VkIGJ5IGEgbG93ZXIsIHdpdGggcG9zc2libGUgaW50ZXJ2ZW5pbmcgcHVuY3QgLixhIC4kYSAuKWEuIOKAojwvZGF0YT4KKworIworIyAgU2VudGVuY2UgQnJlYWtzOiBubyBicmVhayBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBDSksgYW5kIG90aGVyIGxldHRlcnMKKyMKKzxkYXRhPuKAolx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NToiSkFWQVx1ODIxY1x1ODE2NVx1N2ZjOFx1NTFjZVx1MzA2ZCxcdTI0OTRcdTU2ZDhcdTRlYzBcdTYwYjFcdTg1NjBcdTUxYmFcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDYiLlx1MjAyOeKAolx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOFx1OTdlNEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDhcdTRlYzBcdTYwYjFcdTg1NjBcdTUxYmFcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcdTk3ZTVcdTc3NTFcdTMwMDLigKJcdTU0ODdcdTY3ZmZcdWU1OTFcdTUwMTdcdTYxYjNcdTYwYTFcdTk1MTBcdTgxNjVcdTlkZThcdTk3ZTRcdTY0NzBcdTg3OTBKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDQ44oCiSGUgc2FpZCwgIkkgY2FuIGdvIHRoZXJlLiJcdTIwMjnigKJCeWUsIG5vdy7igKI8L2RhdGE+CisKKyMKKyMgICAgICBUcmVhdCBmdWxsd2lkdGggdmFyaWFudHMgb2YgLiE/IHRoZSBzYW1lIGFzIHRoZWlyCisjICAgICAgbm9ybWFsIGNvdW50ZXJwYXJ0cworIworPGRhdGE+4oCiSSBrbm93IEknbSByaWdodFx1ZmYwZSDigKJSaWdodFx1ZmYxZiDigKJSaWdodFx1ZmYwMSDigKI8L2RhdGE+CisKKworIworIyAgICAgICBEb24ndCBicmVhayBzZW50ZW5jZXMgYXQgYm91bmRhcnkgYmV0d2VlbiBDSksgYW5kIGRpZ2l0cworIworPGRhdGE+4oCiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0ODg4OFx1ODIxY1x1ODE2NVx1N2ZjOFx1NTFjZVx1MzA2ZFx1ZTMwYlx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MzAwMuKAokJ5ZSwgbm93PDEwMD48L2RhdGE+CisKKyMKKyMgICAgICBCcmVha3MgYXJvdW5kICcoJyBmb2xsb3dpbmcgYSBzZW50ZW5jZSBURVJNLiAgKFJ1bGUgOSkKKyMKKzxkYXRhPuKAokhvdyBkbyB5b3UgZG8/KOKAokZpbmUpLiDigKI8L2RhdGE+Cis8ZGF0YT7igKJIb3cgZG8geW91IGRvPyDigKIoRmluZSkuIOKAojwvZGF0YT4KKzxkYXRhPuKAokhvdyBkbyB5b3UgZG8/KOKAomZpbmUpLiDigKI8L2RhdGE+Cis8ZGF0YT7igKJIb3cgZG8geW91IGRvPyDigKIoZmluZSkuIOKAojwvZGF0YT4KKworIworPGRhdGE+4oCiSGVsbG8uMTIzPDEwMD48L2RhdGE+ICAgICMgUnVsZSA2ICAgIAorPGRhdGE+4oCiSGVsbG8/4oCiMTIzPDEwMD48L2RhdGE+ICAKKyAgCis8ZGF0YT7igKJIRUxMTy5CeWU8MTAwPjwvZGF0YT4gICAgIyBSdWxlIDcgICAgCis8ZGF0YT7igKJIRUxMTz/igKJCeWU8MTAwPjwvZGF0YT4gICAgCisKKzxkYXRhPuKAokhlbGxvLmdvb2RieWU8MTAwPjwvZGF0YT4gICNSdWxlIDgKKzxkYXRhPuKAokhlbGxvLiDigKJHb29kYnllPDEwMD48L2RhdGE+Cis8ZGF0YT7igKJIZWxsby4gZ29vZGJ5ZTwxMDA+PC9kYXRhPgorCisKKworIworIyAgICAgICAgdGVzdCBmb3IgYnVnICM0MTU4MzgxOiBObyBicmVha3Mgd2hlbiB0aGVyZSBhcmUgbm8gdGVybWluYXRvcnMgYXJvdW5kCisjCis8ZGF0YT7igKJcPFA+UHJvdmlkZXMgYSBzZXQgb2YgJnF1b3Q7bGlnaHR3ZWlnaHQmcXVvdDsgKGFsbC1qYXZhXDxGT05UIFNJWkU9Ii0yIj5cPFNVUD5UTVw8L1NVUD5cPC9GT05UPiBsYW5ndWFnZSkgY29tcG9uZW50cyB0aGF0LCB0byB0aGUgbWF4aW11bSBkZWdyZWUgcG9zc2libGUsIHdvcmsgdGhlIHNhbWUgb24gYWxsIHBsYXRmb3Jtcy4gIOKAojwvZGF0YT4KKzxkYXRhPuKAokFub3RoZXIgdGVzdC5cdTIwMjnigKI8L2RhdGE+CisgICAgICAKKyMgICAgICAgIHRlc3QgZm9yIGJ1ZyAjNDE0MzA3MTogTWFrZSBzdXJlIHNlbnRlbmNlcyB0aGF0IGVuZCB3aXRoIGRpZ2l0cworIyAgICAgICAgd29yayByaWdodAorIworPGRhdGE+4oCiVG9kYXkgaXMgdGhlIDI3dGggb2YgTWF5LCAxOTk4LiAg4oCiPC9kYXRhPgorPGRhdGE+4oCiVG9tb3Jyb3cgd2l0aCBiZSAyOCBNYXkgMTk5OC4gIOKAojwvZGF0YT4KKzxkYXRhPuKAolRoZSBkYXkgYWZ0ZXIgd2lsbCBiZSB0aGUgMzB0aC5cdTIwMjnigKI8L2RhdGE+CisgICAgICAKKyMgICAgICAgIHRlc3QgZm9yIGJ1ZyAjNDE1MjQxNjogTWFrZSBzdXJlIHNlbnRlbmNlcyBlbmRpbmcgd2l0aCBhIGNhcGl0YWwKKyMgICAgICAgIGxldHRlciBhcmUgdHJlYXRlZCBjb3JyZWN0bHkKKyMKKzxkYXRhPuKAolRoZSB0eXBlIG9mIGFsbCBwcmltaXRpdmUgXDxjb2RlPmJvb2xlYW5cPC9jb2RlPiB2YWx1ZXMgYWNjZXNzZWQgaW4gdGhlIHRhcmdldCBWTS4gIOKAokNhbGxzIHRvIHh4eCB3aWxsIHJldHVybiBhbiBpbXBsZW1lbnRvciBvZiB0aGlzIGludGVyZmFjZS4gIFx1MjAyOeKAojwvZGF0YT4KKyAgICAgIAorIyAgICAgICAgdGVzdCBmb3IgYnVnICM0MTUyMTE3OiBNYWtlIHN1cmUgc2VudGVuY2UgYnJlYWtpbmcgaXMgaGFuZGxpbmcKKyMgICAgICAgIHB1bmN0dWF0aW9uIGNvcnJlY3RseSBbQ09VTEQgTk9UIFJFUFJPRFVDRSBUSElTIEJVRywgQlVUIFRFU1QgSVMKKyMgICAgICAgIEhFUkUgVE8gTUFLRSBTVVJFIElUIERPRVNOJ1QgQ1JPUCBVUF0KKyMKKzxkYXRhPuKAokNvbnN0cnVjdHMgYSByYW5kb21seSBnZW5lcmF0ZWQgQmlnSW50ZWdlciwgdW5pZm9ybWx5IGRpc3RyaWJ1dGVkIG92ZXIgdGhlIHJhbmdlIFw8dHQ+MFw8L3R0PiB0byBcPHR0PigyXDxzdXA+bnVtQml0c1w8L3N1cD4gLSAxXClcPC90dD4sIGluY2x1c2l2ZS4gIOKAolRoZSB1bmlmb3JtaXR5IG9mIHRoZSBkaXN0cmlidXRpb24gYXNzdW1lcyB0aGF0IGEgZmFpciBzb3VyY2Ugb2YgcmFuZG9tIGJpdHMgaXMgcHJvdmlkZWQgaW4gXDx0dD5ybmRcPC90dD4uICDigKJOb3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBhbHdheXMgY29uc3RydWN0cyBhIG5vbi1uZWdhdGl2ZSBiaWdpbnRlZ2VyLiAgXG7igKJBaGggYWJjLiAgCivigKI8L2RhdGE+CisKKyMgICAgICAgIHNlbnRlbmNlIGJyZWFrcyBmb3IgaGluZGkgd2hpY2ggdXNlZCBEZXZhbmFnYXJpIHNjcmlwdAorIyAgICAgICAgbWFrZSBzdXJlIHRoZXJlIGlzIHNlbnRlbmNlIGJyZWFrIGFmdGVyID8sZGFuZGEoaGluZGkgcGhyYXNlIHNlcGFyYXRvciksCisjICAgICAgICBmdWxsc3RvcCBmb2xsb3dlZCBieSBzcGFjZS4gIChWRVJZIG9sZCB0ZXN0KQorIyAgICAgICAKKzxkYXRhPuKAolx1MDkyOFx1MDkyZVx1MDkzOFx1MDk0ZFx1MjAwZFx1MDkyNFx1MDk0NyBcdTA5MzBcdTA5MmVcdTA5NDdcdTA5MzZcdTA5MDVcdTA5M2VcdTA5MmFcdTA5MTVcdTA5NDhcdTA5MzhcdTA5NDcgXHUwOTM5XHUwOTQ4P+KAolx1MDkyZVx1MDk0OCBcdTA5MDVcdTA5MWFcdTA5NGRcdTIwMGQgXHUwOTFiXHUwOTNlIFx1MDkzOVx1MDk0Mlx1MDkwMVx1MDk2NCDigKJcdTA5MDVcdTA5M2VcdTA5MmFcclxuPDEwMD5cCitcdTA5MTVcdTA5NDhcdTA5MzhcdTA5NDcgXHUwOTM5XHUwOTQ4P+KAolx1MDkzNVx1MDkzOSBcdTA5MTVcdTA5NGRcdTIwMGRcdTA5MmZcdTA5M2VcblwKKzwxMDA+XHUwOTM5XHUwOTQ4P+KAolx1MDkyZlx1MDkzOSBcdTA5MDVcdTA5M2VcdTA5MmUgXHUwOTM5XHUwOTQ4LiDigKJcdTA5MmZcdTA5MzkgbWVhbnMgInRoaXMiLiDigKIiXHUwOTJhXHUwOTVkXHUwOTNlXHUwOTA4IiBtZWFuaW5nICJlZHVjYXRpb24iIG9yICJzdHVkaWVzIi4g4oCiXHUwOTA1XHUwOTNlXHUwOTFjKFx1MDkzOFx1MDk0ZFx1MjAwZFx1MDkzNVx1MDkyNFx1MDkwMlx1MDkyNFx1MDk0ZFx1MDkzMCBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5M2VcdTA5MzgpIFx1MDkzOVx1MDk0OFx1MDk2NCDigKJMZXQncyBlbmQgaGVyZS4g4oCiPC9kYXRhPgorCisjICAgICAgICAgUmVncmVzc2lvbiB0ZXN0IGZvciBidWcgIzE5ODQsIFNlbnRlbmNlIGJyZWFrIGluIEFyYWJpYyB0ZXh0LgorICAKKzxkYXRhPlwKK+KAolx1MDYyM1x1MDYzM1x1MDYyN1x1MDYzM1x1MDY0Ylx1MDYyN1x1MDYwY1x1MDAyMFx1MDYyYVx1MDYyYVx1MDYzOVx1MDYyNyJcdTA2NDVcdTA2NDRcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MmRcdTA2NDhcdTA2MjdcdTA2MzNcdTA2NGFcdTA2MjhcdTAwMjAiXHUwNjQxXHUwNjQyXHUwNjM3XHUwMDIwXHUwNjQ1XHUwNjM5XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjQyXHUwNjI3XHUwNjQ1XHUwNjBjXHUwNjQ4XHUwNjJhXHUwNjQyXHUwNjQ4XHUwNjQ1XHUwMDIwXHUwNjI4XHUwNjJhXHUwNjJlXHUwNjMyXHUwNjRhXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjMxXHUwNjQxXHUwMDIwXHUwNjQ4XHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJlXHUwNjMxXHUwNjQ5XHUwMDIwXHUwNjI4XHUwNjM5XHUwNjJmXHUwMDIwXHUwNjIzXHUwNjQ2XHUwNjJhXHUwNjRmXHUwNjM5XHUwNjM3XHUwNjRhXHUwMDIwXHUwNjMxXHUwNjQyXHUwNjQ1XHUwNjI3XHUwMDIwXHUwNjQ1XHUwNjM5XHUwNjRhXHUwNjQ2XHUwNjI3XHUwMDIwXHUwNjQ0XHUwNjQzXHUwNjQ0XHUwMDIwXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwMDIwXHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjI3XHUwMDJlXHUwMDIw4oCiXHUwNjQ4XHUwNjQyXHUwNjI4XHUwNjQ0XHUwMDIwXHUwNjI3XHUwNjJlXHUwNjJhXHUwNjMxXHUwNjI3XHUwNjM5XHUwMDIyXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjUwXHUwNjQzXHUwNjQ4XHUwNjJmXHUwMDIyXHUwNjBjXHUwMDIwXHUwNjQzXHUwNjI3XHUwNjQ2XHUwMDIwXHUwNjQ3XHUwNjQ2XHUwNjI3XHUwNjQzXHUwMDIwXHUwNjQ1XHUwNjI2XHUwNjI3XHUwNjJhXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjQ2XHUwNjM4XHUwNjQ1XHUwNjI5XHUwMDIwXHUwNjQ0XHUwNjQ0XHUwNjJhXHUwNjM0XHUwNjQxXHUwNjRhXHUwNjMxXHUwNjQ4XHUwNjJhXHUwNjJlXHUwNjM1XHUwNjRhXHUwNjM1XHUwMDIwXHUwNjQ3XHUwNjMwXHUwNjQ3XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjQyXHUwNjI3XHUwNjQ1XHUwMDIwXHUwNjQ0XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwNjBjXHUwMDIwXHUwNjQ4XHUwNjQ0XHUwNjQ1XHUwMDIwXHUwNjRhXHUwNjQ4XHUwNjJjXHUwNjJmXHUwMDIwXHUwNjQ2XHUwNjM4XHUwNjI3XHUwNjQ1XHUwNjJhXHUwNjM0XHUwNjQxXHUwNjRhXHUwMDIwXHUwNjM5XHUwNjQ0XHUwNjQ5XHUwMDIwXHUwNjJjXHUwNjQ1XHUwNjRhXHUwNjM5XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjM2XHUwNjMxXHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjI5LiAg4oCiPC9kYXRhPgorCisjICAgICAgICAgVHJ5IGEgZmV3IG1vcmUgb2YgdGhlIGxlc3MgY29tbW9uIHNlbnRlbmNlIGVuZGluZ3MuCis8ZGF0YT7igKJIZWxsbywgd29ybGRcdTMwMDIg4oCiSGVsbG8sIHdvcmxkXHUxODAzIOKAokhlbGxvLCB3b3JsZFx1MjA0OCDigKJIZWxsbywgd29ybGRcdTIwM2Mg4oCiTGV0J3MgZW5kIGhlcmUuIOKAojwvZGF0YT4KKworCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIworIyAgICAgICAgTCBJIE4gRSAgICAgQiBSIEUgQSBLCisjCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKzxsaW5lPgorIworIyBUZXN0IENoYXJhY3RlciBmb3IgZWFjaCBvZiB0aGUgbGluZSBicmVhayBjbGFzc2VzLgorIworIyAwMEExO0FJICMgSU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSyAgwqEKKyMgMDA0MTtBTCAjIExBVElOIENBUElUQUwgTEVUVEVSIEEKKyMgMDAwOTtCQSAjIDxjb250cm9sPgorIyAwMEI0O0JCICMgQUNVVEUgQUNDRU5UCisjIDAwMEM7QksgIyA8Y29udHJvbD4KKyMgMjAxNDtCMiAjIEVNIERBU0gKKyMgRkZGQztDQiAjIE9CSkVDVCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKKyMgMDAyOTtDTCAjIFJJR0hUIFBBUkVOVEhFU0lTCisjIDAzMDE7Q00gIyBDT01CSU5JTkcgQUNVVEUgQUNDRU5UCisjIDAwMjE7RVggIyBFWENMQU1BVElPTiBNQVJLCisjIDAwQTA7R0wgIyBOTy1CUkVBSyBTUEFDRQorIyAwMDJEO0hZICMgSFlQSEVOLU1JTlVTCisjIDRFMDA7SUQgIyA8Q0pLIElkZW9ncmFwaCwgRmlyc3Q+CisjIDIwMjQ7SU4gIyBPTkUgRE9UIExFQURFUgorIyAwMDJDO0lTICMgQ09NTUEKKyMgMDAwQTtMRiAjIDxjb250cm9sPgorIyAwRTVBO05TICMgVEhBSSBDSEFSQUNURVIgQU5HS0hBTktIVQorIyAwMDMyO05VICMgRElHSVQgVFdPCisjIDAwMjg7T1AgIyBMRUZUIFBBUkVOVEhFU0lTCisjIDAwMjU7UE8gIyBQRVJDRU5UIFNJR04KKyMgMDAyNDtQUiAjIERPTExBUiBTSUdOCisjIDAwMjI7UVUgIyBRVU9UQVRJT04gTUFSSworIyAwRTAxO1NBICMgVEhBSSBDSEFSQUNURVIgS08gS0FJCisjIERCN0Y7U0cgIyBTdXJyb2dhdGUKKyMgMDAyMDtTUCAjIFNQQUNFCisjIDAwMkY7U1kgIyBTT0xJRFVTIC8KKyMgRjhGRjtYWCAjIFByaXZhdGUgVXNlCisjIDIwMEI7WlcgIyBaRVJPIFdJRFRIIFNQQUNFCisKKworIyAyYiAgQWx3YXlzIGJyZWFrIGF0IGVuZCBvZiB0ZXh0CisKKzxkYXRhPuKAoiAg4oCiXHUwMEEx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwNDHigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAwOeKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMEI04oCiPC9kYXRhPgorPGRhdGE+4oCiICAgIFx1MDAwQzwxMDA+PC9kYXRhPiAgICAjIExCM0MgIMOXIEJLCis8ZGF0YT7igKIgIOKAolx1MjAxNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHVGRkZD4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDI54oCiPC9kYXRhPiAgICAjIExCIDggICDDlyBDTAorIyA8ZGF0YT7igKIg4oCiIFx1MDMwMeKAojwvZGF0YT4gICAgIyBMQiA3YSAgIFRyZWF0IFNQIENNKiBhcyBpZiBpdCB3ZXJlIElEICAjVE9ETzogIFNQIENNCis8ZGF0YT7igKIgICBcdTAwMjHigKI8L2RhdGE+ICAgICMgTEIgOCAgIMOXIEVYCisjPGRhdGE+4oCiICAgXHUwMEEw4oCiPC9kYXRhPiAgICAjIExCIDExYiAgIMOXIEdMICAgVE9ETzogIGZpeC4KKzxkYXRhPuKAoiAg4oCiXHUwMDJE4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTRFMDDigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MjAyNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAgIFx1MDAyQ+KAojwvZGF0YT4gICAgIyBMQiA4ICAgw5cgSVMKKzxkYXRhPuKAoiAgIFx1MDAwQTwxMDA+PC9kYXRhPiAgICAjIExCM0MgICDDlyAoIEJLIHwgQ1IgfCBMRiB8IE5MICkKKzxkYXRhPuKAoiAg4oCiXHUwRTVB4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMzLigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAyOOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDI14oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMjTigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAyMuKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwRTAx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdURCN0bigKI8L2RhdGE+Cis8ZGF0YT7igKIgICBcdTAwMjDigKI8L2RhdGE+ICAgICAjIExCNCAtIGRvbid0IGJyZWFrIGJlZm9yZSBzcGFjZS4KKzxkYXRhPuKAoiAgIFx1MDAyRuKAojwvZGF0YT4gICAgICMgTEIgOCAgw5cgU1kKKzxkYXRhPuKAoiAg4oCiXHVGOEZG4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUyMDBC4oCiPC9kYXRhPiAgICAgIyBMQjQgLSBkb24ndCBicmVhayBiZWZvcmUgWkEKKworCisjIDNhICBBbHdheXMgYnJlYWsgYWZ0ZXIgaGFyZCBsaW5lIGJyZWFrcy4KKyMgM2MgIE5ldmVyIGJyZWFrIGJlZm9yZSBoYXJkIGxpbmUgYnJlYWtzLgorCis8ZGF0YT7igKIgIOKAolx1MDBBMVx1MjAyODwxMDA+XHUwMEEx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwNDFcdTIwMjg8MTAwPlx1MDA0MeKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDA5XHUyMDI4PDEwMD5cdTAwMDnigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDBCNFx1MjAyODwxMDA+XHUwMEI04oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDBDPDEwMD5cdTIwMjg8MTAwPlx1MDAwQzwxMDA+PC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTIwMTRcdTIwMjg8MTAwPlx1MjAxNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHVGRkZDXHUyMDI4PDEwMD5cdUZGRkPigKI8L2RhdGE+Cis8ZGF0YT7igKIgICBcdTAwMjlcdTIwMjg8MTAwPlx1MDAyOeKAojwvZGF0YT4KKyM8ZGF0YT7igKIgICBcdTAzMDFcdTIwMjg8MTAwPlx1MDMwMeKAojwvZGF0YT4gICAgIyBUT0RPOiAgZml4LgorPGRhdGE+4oCiICAgXHUwMDIxXHUyMDI4PDEwMD5cdTAwMjHigKI8L2RhdGE+CisjPGRhdGE+4oCiICAgXHUwMEEwXHUyMDI4PDEwMD5cdTAwQTDigKI8L2RhdGE+ICAgICMgVE9ETzogIGZpeAorPGRhdGE+4oCiICDigKJcdTAwMkRcdTIwMjg8MTAwPlx1MDAyROKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHU0RTAwXHUyMDI4PDEwMD5cdTRFMDDigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MjAyNFx1MjAyODwxMDA+XHUyMDI04oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDJDXHUyMDI4PDEwMD5cdTAwMkPigKI8L2RhdGE+Cis8ZGF0YT7igKIgICBcdTAwMEE8MTAwPlx1MjAyODwxMDA+XHUwMDBBPDEwMD48L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MEU1QVx1MjAyODwxMDA+XHUwRTVB4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMzJcdTIwMjg8MTAwPlx1MDAzMuKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDI4XHUyMDI4PDEwMD5cdTAwMjjigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAyNVx1MjAyODwxMDA+XHUwMDI14oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMjRcdTIwMjg8MTAwPlx1MDAyNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDIyXHUyMDI4PDEwMD5cdTAwMjLigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MEUwMVx1MjAyODwxMDA+XHUwRTAx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdURCN0ZcdTIwMjg8MTAwPlx1REI3RuKAojwvZGF0YT4KKzxkYXRhPuKAoiAgIFx1MDAyMFx1MjAyODwxMDA+XHUwMDIw4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDJGXHUyMDI4PDEwMD5cdTAwMkbigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1RjhGRlx1MjAyODwxMDA+XHVGOEZG4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUyMDBCXHUyMDI4PDEwMD5cdTIwMELigKI8L2RhdGE+CisKKworIworIyAgT2xkIExpbmUgQnJlYWsgVGVzdCBkYXRhLiAgT3JnaW5hbGx5IGxvY2F0ZWQgaW4gUkJCSVRlc3Q6OlRlc3REZWZhdWx0UnVsZUJhc2VkTGluZUl0ZXJhdGlvbigpCisjCisKKzxsaW5lPgorCis8ZGF0YT7igKJNdWx0aS3igKJMZXZlbCDigKJleGFtcGxlIOKAom9mIOKAomEg4oCic2VtaS3igKJpZGlvdGljIOKAom5vbi3igKJzZW5zaWNhbCDigKIobm9uLeKAomltcG9ydGFudCkg4oCic2VudGVuY2UuIAorPDEwMD5IaSAg4oCiSGVsbG8g4oCiSG93XG48MTAwPmFyZVxyPDEwMD55b3VcdTIwMjg8MTAwPmZpbmUuXHTigKJnb29kLiAg4oCiTm93XHI8MTAwPmlzXG48MTAwPnRoZVxyXG48MTAwPnRpbWVcbjwxMDA+XHI8MTAwPmZvclxyPDEwMD5ccjwxMDA+YWxs4oCiPC9kYXRhPgorCis8bGluZT4KKzxkYXRhPuKAokhlbGxvISDigKJob3dcclxuPDEwMD4g4oCiKGFyZSlccjwxMDA+IOKAonlvdT8g4oCiSSdhbSDigKJmaW5lLSDigKJUaGFua3lvdS4g4oCiZm9vXHUwMGEwYmFyIAorPDEwMD5Ib3csIOKAomFyZSwg4oCieW91PyDigKJUaGlzLCDigKJjb3N0cyDigKIkMjAsMDAsMDAwLuKAojwvZGF0YT4KKworIyAgICAgdGVzdCBmb3IgYnVnICM0MDY4MTMzCisjCis8ZGF0YT7igKJcdTk2ZjbigKJcdTRlMDBcdTMwMDLigKJcdTRlOGNcdTMwMDHigKJcdTRlMDlcdTMwMDJcdTMwMDHigKJcdTU2ZGJcdTMwMDFcdTMwMDJcdTMwMDHigKJcdTRlOTQs4oCiXHU1MTZkLuKAolx1NGUwMy5cdTMwMDEsXHUzMDAy4oCiXHU1MTZi4oCiPC9kYXRhPgorCisjICAgICB0byB0ZXN0IGZvciBidWcgIzQwODYwNTIKKzxkYXRhPuKAomZvb1x1MDBhMGJhcuKAojwvZGF0YT4KKworIyAgICAgdG8gdGVzdCBmb3IgYnVnICM0MDk3OTIwCis8ZGF0YT7igKJkb2csY2F0LG1vdXNlIOKAoihvbmUp4oCiKHR3bylcbjwxMDA+PC9kYXRhPgorCisjICAgICB0byB0ZXN0IGZvciBidWcgIzQwMzUyNjYKKzxkYXRhPuKAolRoZSDigKJiYWxhbmNlIOKAomlzIOKAoiQtMjMsNDU2Ljc4LCDigKJub3Qg4oCiLeKAoiQzMiw0NTYuNzghXG48MTAwPjwvZGF0YT4KKworCisjICAgICAgdG8gdGVzdCBmb3IgYnVnICM0MDk4NDY3CisjICAgICAgV2hhdCBmb2xsb3dzIGlzIGEgc3RyaW5nIG9mIEtvcmVhbiBjaGFyYWN0ZXJzIChJIGZvdW5kIGl0IGluIHRoZSBZZWxsb3cgUGFnZXMKKyMgICAgICBhZCBmb3IgdGhlIEtvcmVhbiBQcmVzYnl0ZXJpYW4gQ2h1cmNoIG9mIFNhbiBGcmFuY2lzY28sIGFuZCBJIGhvcGUgSSB0cmFuc2NyaWJlZAorIyAgICAgIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorIyAgICAgIEJvdGggc2VxdWVuY2VzIHNob3VsZCBiZSBzZW1hbnRpY2FsbHkgaWRlbnRpY2FsIGFuZCBicmVhayB0aGUgc2FtZSB3YXkuCisjICAgICAgcHJlY29tcG9zZWQgc3lsbGFibGVzLi4uICAoSSA9PSBSaWNoIEdpbGxhbT8pCisjCis8ZGF0YT7igKJcdWMwYzHigKJcdWQ1NmQg4oCiXHVkNTVj4oCiXHVjNzc4IOKAolx1YzVmMOKAolx1ZDU2OSDigKJcdWM3YTXigKJcdWI4NWPigKJcdWFkNTDigKJcdWQ2OGPigKI8L2RhdGE+CisKKyMgICAgICBjb25qb2luaW5nIGphbW8uLi4KKyMgICAgICBUT0RPOiAgcnVsZXMgdXBkYXRlIG5lZWRlZAorIzxkYXRhPuKAolx1MTEwOVx1MTE2MVx1MTFiY+KAolx1MTExMlx1MTE2MVx1MTFiYyDigKJcdTExMTJcdTExNjFcdTExYWLigKJcdTExMGJcdTExNzVcdTExYWIgI+KAolx1MTEwYlx1MTE2N1x1MTFhYuKAolx1MTExMlx1MTE2MVx1MTFiOCDigKJcdTExMGNcdTExNjFcdTExYmPigKJcdTExMDVcdTExNjnigKJcdTExMDBcdTExNmTigKJcdTExMTJcdTExNmPigKI8L2RhdGE+CisKKyMgICAgICB0byB0ZXN0IGZvciBidWcgIzQxMTc1NTQ6IEZ1bGx3aWR0aCAuIT8gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgcG9zdEp3cmQKKzxkYXRhPuKAolx1NGUwMVx1ZmYwZeKAolx1NGUwMlx1ZmYwMeKAolx1NGUwM1x1ZmYxZuKAojwvZGF0YT4KKworIyAgICAgIFN1cnJvZ2F0ZSBsaW5lIGJyZWFrIHRlc3RzLgorIworPGRhdGE+4oCiXHU0ZTAx4oCiXHVkODQwXHVkYzAx4oCiXHU0ZTAy4oCiYWJjIOKAolx1ZTAwMCDigKJcdWRiODBcdWRjMDHigKI8L2RhdGE+CisKKyMgICAgICBSZWdyZXNzaW9uIGZvciBidWcgODM2Cis8ZGF0YT7igKJBQUEoQUFBIOKAojwvZGF0YT4gCisKKyMgICAgICAgVHJ5IHNvbWUgd29yZHMgZnJvbSBvdGhlciBzY3JpcHRzLgorIyAgICAgICAgICBHcmVlaywgQ3lyaWxsaWMsIEhlYnJldywgQXJhYmljLCBBcmFiaWMsIEdlb3JnaWFuLCBMYXRpbgorIyAgICAgIAorPGRhdGE+4oCizpHOks6TIOKAotCR0JLQkyDigKLXkNeR15LWkyDigKLYp9io2Kog4oCi2aHZotmjIOKAolx1MTBBMFx1MTBBMVx1MTBBMiDigKJBQkMg4oCiPC9kYXRhPgorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMKKyMgICAgICAgVCBpIHQgbCBlICAgQiBvIHUgbiBkIGEgciB5ICAgICAgVCBlIHMgdCBzCisjCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKzx0aXRsZT4KKzxkYXRhPuKAokhlcmUg4oCiaXMg4oCiYSDigKJzaG9ydCDigKJzYW1wbGUg4oCic2VudGVuY2UuICDigKJBbmQg4oCiYW5vdGhlci7igKI8L2RhdGE+Cis8ZGF0YT7igKJIRVJFIOKAoklTIOKAokEg4oCiU0hPUlQg4oCiU0FNUExFIOKAolNFTlRFTkNFLiAg4oCiQU5EIOKAokFOT1RIRVIu4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJTdGFydCDigKJhbmQg4oCiZW5kIOKAondpdGgg4oCic3BhY2VzICAg4oCiPC9kYXRhPgorPGRhdGE+4oCiSW5jbHVkZSAxMjMgNDU2IF4mICDigKJzb21lIDU0MzMyIOKAom51bWJlcnMgNDQ0NeKAomFiYzEyM+KAomFiYyDigKJlbmRpbmcgMTIyMyDigKI8L2RhdGE+CisKKzxkYXRhPuKAokNvbWJpbmluZ1x1MDMwMSBcdTAzMDHigKJtYVx1MDMwNnJrcyAg4oCiYnllICDigKI8L2RhdGE+Cis8ZGF0YT7igKIxMjMgIOKAolN0YXJ0IOKAondpdGgg4oCiYSDigKJudW1iZXIu4oCiPC9kYXRhPgorCis8ZGF0YT7igKIn4oCic3RhcnQg4oCid2l0aCDigKJhIOKAomNhc2Ut4oCiaWdub3JhYmxlIOKAomNoYSdyJ2EnY3RlcuKAojwvZGF0YT4KKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgICBUaGFpIFRlc3RzCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKzxsb2NhbGUgdGg+Cis8d29yZD4KKyMKKyMgVGVzdCBkYXRhIG9yaWdpbmFsbHkgZnJvbSB0aGUgdGVzdCBjb2RlIHNvdXJjZSBmaWxlCisjICAgICAgLy8gQHN1d2l0IC0tIFRoYWkgc2FtcGxlIGRhdGEgZnJvbSBHVlQgR3VpZGVsaW5lCisjCisjICBOT1RFOiAgVGhhaSBKYXZhIHJlc3VsdHMgZGlmZmVyIGZyb20gQyBiZWNhdXNlIHRoZSBuZXcgZGljdGlvbmFyeSBjb2RlIGlzIG5vdAorIyAgICAgICAgIHlldCBwb3J0ZWQuICBBbGwgdGFncyBhcmUgemVybyB3aXRoIHRoZSBvbGQgVGhhaSBpbXBsLgorCis8ZGF0YT7igKJcdTBFMkJcdTBFMTlcdTBFMzZcdTBFNDhcdTBFMDc8MDAwPlx1MEUwNFx1MEUzMzwwMDA+XHUwRTQ0XHUwRTE3XHUwRTIyPDAwMD5cCitcdTBFMkFcdTBFMzJcdTBFMjFcdTBFMzJcdTBFMjNcdTBFMTY8MDAwPlx1MEUxQlx1MEUyM1x1MEUzMFx1MEUwMVx1MEUyRFx1MEUxQTwwMDA+XAorXHUwRTE0XHUwRTQ5XHUwRTI3XHUwRTIyPDAwMD5cdTBlMmJcdTBlMjVcdTBlMzJcdTBlMjI8MDAwPlwKK1x1MGUxZVx1MGUyMlx1MGUzMlx1MGUwN1x1MGUwNFx1MGU0YzwwMDA+PC9kYXRhPgorCisjCisjICBKaXR0ZXJidWcgMzY3MSBUZXN0IENhc2UKKyMKKzxkYXRhPuKAouC4quC4p+C4seC4quC4lOC4tTwwMDA+4LiE4Lij4Lix4LiaPDAwMD7guKrguJrguLLguKI8MDAwPuC4lOC4tTwwMDA+4LmE4Lir4LihPDAwMD4g4oCi4LiE4Lij4Lix4LiaPDAwMD48L2RhdGE+CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTk2MDRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlLmphdmEKQEAgLTAsMCArMSwxNjkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zYW1wbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5Nb2R1bGVUZXN0OworCitwdWJsaWMgY2xhc3MgTW9kdWxlVGVzdFNhbXBsZSBleHRlbmRzIE1vZHVsZVRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIG5ldyBNb2R1bGVUZXN0U2FtcGxlKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBNb2R1bGVUZXN0U2FtcGxlKCl7CisgICAgICAgIHN1cGVyKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS8iLCAiVGVzdCIpOworICAgIH0KKworICAgIC8vIHN0YW5kYXJkIGxvb3AsIHNldHRpbmdzIGFuZCBjYXNlcworLy8gICAgcHVibGljIHZvaWQgVGVzdDAxKCkgeworLy8gICAgd2hpbGUgKG5leHRTZXR0aW5ncygpKSB7CisvLyAgICAgICAgbG9nbG4oIi0tLS0tLS0tIik7CisvLyAgICAgICAgbG9nbG4oIlN0cmluZzogIiArIHNldHRpbmdzLmdldFN0cmluZygiYVN0cmluZyIpKTsKKy8vICAgICAgICBpZiAoc2V0dGluZ3MuaXNEZWZpbmVkKCJhbkludCIpKSB7CisvLyAgICAgICAgbG9nbG4oIkludDogIiArIHNldHRpbmdzLmdldEludCgiYW5JbnQiKSk7CisvLyAgICAgICAgfQorLy8gICAgICAgIGxvZ2xuKCJCb29sZWFuOiAiICsgc2V0dGluZ3MuZ2V0Qm9vbGVhbigiYUJvb2xlYW4iKSk7CisvLworLy8gICAgICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisvLyAgICAgICAgbG9nbG4oIiAgLS0tLSIpOworLy8gICAgICAgIGxvZ2xuKCIgIFN0cmluZ0FycmF5OiAiICsgcHJpbnRBcnJheSh0ZXN0Y2FzZS5nZXRTdHJpbmdBcnJheSgiYVN0cmluZ0FycmF5IikpKTsKKy8vICAgICAgICBsb2dsbigiICBJbnRBcnJheTogIiArIHByaW50QXJyYXkodGVzdGNhc2UuZ2V0SW50QXJyYXkoImFuSW50QXJyYXkiKSkpOworLy8gICAgICAgIGxvZ2xuKCIgIEJvb2xlYW5BcnJheTogIiArIHByaW50QXJyYXkodGVzdGNhc2UuZ2V0Qm9vbGVhbkFycmF5KCJhQm9vbGVhbkFycmF5IikpKTsKKy8vICAgICAgICB9CisvLyAgICB9CisvLyAgICB9CisvLworLy8gICAgLy8gbG9vcCB3aXRoIGp1c3QgY2FzZXMKKy8vICAgIHB1YmxpYyB2b2lkIFRlc3QwMigpIHsKKy8vICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisvLyAgICAgICAgbG9nbG4oIi0tLS0iKTsKKy8vICAgICAgICBsb2dsbigiU3RyaW5nOiAiICsgdGVzdGNhc2UuZ2V0U3RyaW5nKCJhU3RyaW5nIikpOworLy8gICAgICAgIGxvZ2xuKCJJbnQ6ICIgKyB0ZXN0Y2FzZS5nZXRJbnQoImFuSW50IikpOworLy8gICAgICAgIGxvZ2xuKCJCb29sZWFuOiAiICsgdGVzdGNhc2UuZ2V0Qm9vbGVhbigiYUJvb2xlYW4iKSk7CisvLyAgICB9CisvLyAgICB9CisKKyAgICAvLyBubyBjYXNlcywganVzdCB1c2VzIGluZm8gZm9yIHRlc3QKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDMoKSB7CisvLyAgICBEYXRhTWFwIGluZm8gPSB0ZXN0SW5mbygpOworLy8gICAgaWYgKGluZm8gIT0gbnVsbCkgeworLy8vLyAgICAgICAgbG9nbG4oaW5mby5nZXRTdHJpbmcoVGVzdERhdGFNb2R1bGUuREVTQ1JJUFRJT04pKTsgLy8gc3RhbmRhcmQKKy8vICAgICAgICBsb2dsbihpbmZvLmdldFN0cmluZygiRXh0cmEiKSk7IC8vIHRlc3Qtc3BlY2lmaWMKKy8vICAgIH0KKy8vICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBubyBkYXRhLCBNb2R1bGVUZXN0IHNob3VsZCBub3QgYWxsb3cgdGhpcyB0byBleGVjdXRlIGJ5IGRlZmF1bHQKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDQoKSB7CisgICAgZXJybG4oIlRlc3QwNCBzaG91bGQgbm90IGV4ZWN1dGUhIik7CisgICAgfQorCisgICAgLy8gc3BlY2lhbCBvdmVycmlkZSBvZiB2YWxpZGF0ZU1ldGhvZCBhbGxvd3MgVGVzdDA1IAorICAgIC8vIHRvIGV4ZWN1dGUgZXZlbiB0aG91Z2ggaXQgaGFzIG5vIGRhdGEgaW4gdGhlIG1vZHVsZQorICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlTWV0aG9kKFN0cmluZyBtZXRob2ROYW1lKSB7CisgICAgcmV0dXJuIG1ldGhvZE5hbWUuZXF1YWxzKCJUZXN0MDUiKSA/IHRydWUgOiBzdXBlci52YWxpZGF0ZU1ldGhvZChtZXRob2ROYW1lKTsKKyAgICB9CisKKyAgICAvLyBubyBkYXRhLCBidXQgb3ZlcnJpZGUgb2YgdmFsaWRhdGVNZXRob2QgYWxsb3dzIGl0IHRvIGV4ZWN1dGUKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDUoKSB7CisgICAgbG9nbG4oIlRlc3QwNSBleGVjdXRlZC4iKTsKKyAgICB9CisKKy8vICAgIC8vIFRoZSB0ZXN0IGRhdGEgY29udGFpbnMgYW4gZXJyb3IgaW4gdGhlIHRoaXJkIGNhc2UuICBXaGVuIGdldEludCgiRGF0YSIpIGlzCisvLyAgICAvLyBleGVjdXRlZCB0aGUgZXJyb3IgaXMgbG9nZ2VkIGFuZCBpdGVyYXRpb24gc3RvcHMuCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0MDYoKSB7CisvLyAgICB3aGlsZSAobmV4dENhc2UoKSkgeworLy8gICAgICAgIGxvZ2xuKCItLS0tIik7CisvLyAgICAgICAgbG9nbG4oImlzR29vZDogIiArIHRlc3RjYXNlLmdldFN0cmluZygiSXNHb29kIikpOworLy8gICAgICAgIGxvZ2xuKCIgIERhdGE6ICIgKyB0ZXN0Y2FzZS5nZXRJbnQoIkRhdGEiKSk7CisvLyAgICB9CisvLyAgICB9CisvLworLy8gICAgLy8gVGhlIHRlc3QgdXNpbmcgdGhlIGRhdGEgcmVwb3J0cyBhbiBlcnJvciwgd2hpY2ggYWxzbyBhdXRvbWF0aWNhbGx5IHN0b3BzIGl0ZXJhdGlvbi4KKy8vICAgIHB1YmxpYyB2b2lkIFRlc3QwNygpIHsKKy8vICAgIHdoaWxlIChuZXh0U2V0dGluZ3MoKSkgeworLy8gICAgICAgIGludCB2YWx1ZSA9IHNldHRpbmdzLmdldEludCgiVmFsdWUiKTsKKy8vICAgICAgICB3aGlsZSAobmV4dENhc2UoKSkgeworLy8gICAgICAgIGludCBmYWN0b3IgPSB0ZXN0Y2FzZS5nZXRJbnQoIkZhY3RvciIpOworLy8gICAgICAgIGZsb2F0IHJlc3VsdCA9IChmbG9hdCl2YWx1ZSAvIGZhY3RvcjsKKy8vICAgICAgICBpZiAocmVzdWx0ICE9IChpbnQpcmVzdWx0KSB7CisvLyAgICAgICAgICAgIGVycmxuKCJ0aGUgbnVtYmVyICciICsgZmFjdG9yICsgIicgaXMgbm90IGEgZmFjdG9yIG9mIHRoZSBudW1iZXIgJyIgKyB2YWx1ZSArICInIik7CisvLyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgbG9nbG4oIiciICsgZmFjdG9yICsgIicgaXMgYSBmYWN0b3Igb2YgJyIgKyB2YWx1ZSArICInIik7CisvLyAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgIH0KKy8vICAgIH0KKworLy8gICAgLy8gVGhlIG51bWJlciBvZiBkYXRhIGVsZW1lbnRzIGlzIGluY29ycmVjdAorLy8gICAgcHVibGljIHZvaWQgVGVzdDA4KCkgeworLy8gICAgd2hpbGUgKG5leHRDYXNlKCkpIHsKKy8vICAgICAgICBpbnQgb25lID0gdGVzdGNhc2UuZ2V0SW50KCJPbmUiKTsKKy8vICAgICAgICBpbnQgdHdvID0gdGVzdGNhc2UuZ2V0SW50KCJUd28iKTsKKy8vICAgICAgICBpbnQgdGhyZWUgPSB0ZXN0Y2FzZS5nZXRJbnQoIlRocmVlIik7CisvLyAgICAgICAgbG9nbG4oImdvdDogIiArIG9uZSArICIsICIgKyB0d28gKyAiLCAiICsgdGhyZWUpOworLy8gICAgfQorLy8gICAgfQorLy8KKy8vICAgIHB1YmxpYyB2b2lkIFRlc3QwOSgpIHsKKy8vICAgICAgICB3aGlsZSAobmV4dENhc2UoKSkgeworLy8gICAgICAgICAgICBpbnQgcmFkaXggPSB0ZXN0Y2FzZS5nZXRJbnQoIlJhZGl4Iik7CisvLyAgICAgICAgICAgIGludFtdIHBvdyA9IHRlc3RjYXNlLmdldEludEFycmF5KCJQb3dlciIpOworLy8gICAgICAgICAgICBpbnRbXSB2YWwgPSB0ZXN0Y2FzZS5nZXRJbnRBcnJheSgiVmFsdWUiKTsKKy8vICAgICAgICAgICAgbG9nbG4oInJhZGl4OiAiICsgcmFkaXggKyAiIHBvdzogIiArIHByaW50QXJyYXkocG93KSArICIgdmFsOiAiICsgcHJpbnRBcnJheSh2YWwpKTsKKy8vICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwb3cubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgICAgIGlmICh2YWxbaV0gIT0gKGludClNYXRoLnBvdyhyYWRpeCwgcG93W2ldKSkgeworLy8gICAgICAgICAgICAgICAgICAgIGVycmxuKCJyYWRpeDogIiArIHJhZGl4ICsgIiB0byBwb3dlciAiICsgcG93W2ldICsgIiAhPSAiICsgdmFsW2ldKTsKKy8vICAgICAgICAgICAgICAgICAgICBicmVhazsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAvLyB1dGlsaXR5IHByaW50IGZ1bmN0aW9ucyB0byBkaXNwbGF5IHRoZSBkYXRhIGZyb20gdGhlIHJlc291cmNlCisgICAgU3RyaW5nIHByaW50QXJyYXkoU3RyaW5nW10gYSkgeworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJTdHJpbmdbXSB7Iik7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgYnVmLmFwcGVuZCgiLCIpOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiAiICsgYVtpXSk7CisgICAgfQorICAgIGJ1Zi5hcHBlbmQoIiB9Iik7CisgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIFN0cmluZyBwcmludEFycmF5KGludFtdIGEpIHsKKyAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiaW50W10geyIpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIiwiKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgIiArIGFbaV0pOworICAgIH0KKyAgICBidWYuYXBwZW5kKCIgfSIpOworICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBTdHJpbmcgcHJpbnRBcnJheShib29sZWFuW10gYSkgeworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJib29sZWFuW10geyIpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIiwiKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgIiArIGFbaV0pOworICAgIH0KKyAgICBidWYuYXBwZW5kKCIgfSIpOworICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5Nb2R1bGVUZXN0I3Byb2Nlc3NNb2R1bGVzKCkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzTW9kdWxlcygpIHsKKyAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgorICAgICAgICAKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVkOGFkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zYW1wbGUvTW9kdWxlVGVzdFNhbXBsZURhdGEuamF2YQpAQCAtMCwwICsxLDE3MCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNhbXBsZTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogVGhpcyBpcyBzYW1wbGUgZGF0YSBmb3IgTW9kdWxlVGVzdFNhbXBsZSwgd2hpY2ggaXMgYW4gaWxsdXN0cmF0aW9uCisgKiBvZiBhIHN1YmNsYXNzIG9mIE1vZHVsZVRlc3QuICBUaGlzIGRhdGEgaXMgaW4gYSBmb3JtYXQgd2hpY2gKKyAqIGlzIHVuZGVyc3Rvb2QgYnkgUmVzb3VyY2VNb2R1bGUsIHdoaWNoIGZvciBzaW1wbGljaXR5IGV4cGVjdHMKKyAqIGFsbCBkYXRhLCBpbmNsdWRpbmcgbnVtZXJpYyBhbmQgYm9vbGVhbiBkYXRhLCB0byBiZSByZXByZXNlbnRlZAorICogYnkgU3RyaW5ncy4KKyAqLworcHVibGljIGNsYXNzIE1vZHVsZVRlc3RTYW1wbGVEYXRhIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICByZXR1cm4gY29udGVudHM7CisgICAgfQorCisgICAgT2JqZWN0W11bXSBjb250ZW50cyA9IHsKKyAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJUaGlzIGlzIGEgc2FtcGxlIHRlc3QgbW9kdWxlIHRoYXQgaWxsdXN0cmF0ZXMgTW9kdWxlVGVzdCAiICsKKyAgICAgICAgICAiYW5kIHVzZXMgZGF0YSBmb3JtYXR0ZWQgZm9yIFJlc291cmNlTW9kdWxlLiIgfSwKKyAgICAgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICJhU3RyaW5nQXJyYXkiLCAiYW5JbnRBcnJheSIsICJhQm9vbGVhbkFycmF5IgorICAgICAgICB9fSwKKyAgICB9fSwKKyAgICAKKworICAgIHsgIlRlc3REYXRhIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJUZXN0MDEiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHR5cGljYWwgdGVzdCB1c2luZyBib3RoIHNldHRpbmdzIGFuZCBjYXNlcy4iIH0sCisgICAgICAgICAgICB7ICJMb25nX0Rlc2NyaXB0aW9uIiwgIkl0IGRvZXMgbm90IGRlZmluZWQgaXRzIG93biBoZWFkZXJzLCBidXQgaW5zdGVhZCAiICsKKyAgICAgICAgICAgICAgInVzZXMgdGhlIGRlZmF1bHQgaGVhZGVycyBkZWZpbmVkIGZvciB0aGUgbW9kdWxlLiAgIiArCisgICAgICAgICAgICAgICJUaGVyZSBhcmUgdHdvIHNldHMgb2Ygc2V0dGluZ3MgYW5kIHRocmVlIGNhc2VzLiIgfSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIlNldHRpbmdzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdCisgICAgICAgICAgICB7eyAiYVN0cmluZyIsICJ0aGlzIGlzIGEgc3RyaW5nIiB9LAorICAgICAgICAgICAgIHsgImFuSW50IiwgIjQzIiB9LAorICAgICAgICAgICAgIHsgImFCb29sZWFuIiwgImZhbHNlIiB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdIAorICAgICAgICAgICAge3sgImFTdHJpbmciLCAidGhpcyBpcyBhbm90aGVyIHN0cmluZyIgfSwKKyAgICAgICAgICAgICB7ICJhQm9vbGVhbiIsICJ0cnVlIiB9fQorICAgICAgICB9fSwKKyAgICAgICAgeyAiQ2FzZXMiLCBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAib25lIiwgInR3byIsICJ0aHJlZSIgfSwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiMjQiLCAiNDgiLCAiNzIiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgInRydWUiLCAiZmFsc2UiLCAidHJ1ZSIgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICJmb3VyIiwgImZpdmUiLCAic2l4IiB9LAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICItMSIsICItNSIsICItMTAiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgInRydWUiLCAiZmFsc2UiLCAiZmFsc2UiIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiYmFnZWwiLCAicGVhbnV0cyIsICJjYXJyb3QiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIjAiLCAiMDAwMDEiLCAiMTAxMDEiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgImZhbHNlIiwgImZhbHNlIiwgIkZhbHNlIiB9CisgICAgICAgICAgICB9LAorICAgICAgICB9fQorICAgICAgICB9fSwKKworICAgICAgICB7ICJUZXN0MDIiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHR5cGljYWwgdGVzdCB0aGF0IHVzZXMgY2FzZXMgYnV0IG5vdCBzZXR0aW5ncy4iIH0sCisgICAgICAgICAgICB7ICJMb25nX0Rlc2NyaXB0aW9uIiwgIkl0IGRlZmluZXMgaXRzIG93biBoZWFkZXJzLiIgfSwKKyAgICAgICAgICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgImFTdHJpbmciLCAiYW5JbnQiLCAiYUJvb2xlYW4iCisgICAgICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJTdXBlcnN0cmluZyIsICI0MiIsICJ0cnVlIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIlVuZGVyZG9nIiwgIjEyIiwgImZhbHNlIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIlNjb29ieURvbyIsICI3IiwgIlRyVWUiIH0KKyAgICAgICAgfX0KKyAgICAgICAgfX0sCisKKyAgICAgICAgeyAiVGVzdDAzIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0eXBpY2FsIHRlc3QgdGhhdCB1c2VzIGp1c3QgdGhlIGluZm8sIG5vIGNhc2VzIG9yIHNldHRpbmdzLiIgfSwKKyAgICAgICAgICAgIHsgIkV4dHJhIiwgIlRoaXMgaXMgc29tZSBleHRyYSBpbmZvcm1hdGlvbi4iIH0KKyAgICAgICAgfX0sCisgICAgICAgIH19LAorCisgICAgICAgIC8vIG5vIFRlc3QwNCBkYXRhCisgICAgICAgIC8vIFRlc3QwNCBzaG91bGQgY2F1c2UgYW4gZXhjZXB0aW9uIHRvIGJlIHRocm93biBzaW5jZSBNb2R1bGVUZXN0U2FtcGxlIGRvZXMgbm90CisgICAgICAgIC8vIHNwZWNpZnkgdGhhdCBpdCBpcyBvayBmb3IgaXQgdG8gaGF2ZSBubyBkYXRhLgorCisgICAgICAgIC8vIG5vIFRlc3QwNSBkYXRhCisgICAgICAgIC8vIFRlc3QwNSBzaG91bGQganVzdCBsb2cgdGhpcyBmYWN0LCBzaW5jZSBNb2R1bGVUZXN0U2FtcGxlIGluZGljYXRlcyB0aGF0IGl0IGlzCisgICAgICAgIC8vIG9rIGZvciBUZXN0MDUgdG8gaGF2ZSBubyBkYXRhIGluIGl0cyBvdmVycmlkZSBvZiB2YWxpZGF0ZU1ldGhvZC4KKworICAgICAgICB7ICJUZXN0MDYiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHRlc3QgdGhhdCBoYXMgYmFkIGRhdGEuIiB9LAorICAgICAgICAgICAgeyAiTG9uZ19EZXNjcmlwdGlvbiIsICJUaGlzIGlsbHVzdHJhdGVzIGhvdyBhIGRhdGEgZXJyb3Igd2lsbCBhdXRvbWF0aWNhbGx5ICIgKworICAgICAgICAgICAgICAidGVybWluYXRlIHRoZSBzZXR0aW5ncyBhbmQgY2FzZXMgbG9vcC4iIH0sCisgICAgICAgICAgICB7ICJIZWFkZXJzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJJc0dvb2QiLCAiRGF0YSIsCisgICAgICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJHb29kIiwgIjIzIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIkdvb2QiLCAiLTEyMyIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJCYWQiLCAiV2hvb3BzIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIk5vdCBFeGVjdXRlZCIsICIzNSIgfSwKKyAgICAgICAgfX0sCisgICAgICAgIH19LAorCisgICAgICAgIHsgIlRlc3QwNyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIkRlc2NyaXB0aW9uIiwgIkEgdGVzdCB0aGF0IGZhaWxzIHdpdGggYSBjZXJ0YWluIGNvbWJpbmF0aW9uIG9mIHNldHRpbmdzIGFuZCBjYXNlLiIgfSwKKyAgICAgICAgICAgIHsgIkxvbmdfRGVzY3JpcHRpb24iLCAiVGhpcyBpbGx1c3RyYXRlcyBob3cgYSB0ZXN0IGVycm9yIHdpbGwgYXV0b21hdGljYWxseSAiICsKKyAgICAgICAgICAgICAgInRlcm1pbmF0ZSB0aGUgc2V0dGluZ3MgYW5kIGNhc2VzIGxvb3AuICBTZXR0aW5ncyBkYXRhIGlzIHZhbHVlcywgdGhlIGNhc2UgIiArCisgICAgICAgICAgICAgICJkYXRhIGlzIGZhY3RvcnMuICBUaGUgdGhpcmQgZmFjdG9yIGlzIG5vdCBhIGZhY3RvciBvZiB0aGUgc2Vjb25kIHZhbHVlLiAgIiArCisgICAgICAgICAgICAgICJUaGUgdGVzdCB3aWxsIGxvZyBhbiBlcnJvciwgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IHN0b3AgdGhlIGxvb3AuIiB9LAorICAgICAgICAgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiRmFjdG9yIiwKKyAgICAgICAgICAgIH19LAorICAgICAgICB9fSwKKyAgICAgICAgeyAiU2V0dGluZ3MiICwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdIHt7ICJWYWx1ZSIsICIyMTAiIH19LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdW10ge3sgIlZhbHVlIiwgIjQyMCIgfX0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W11bXSB7eyAiVmFsdWUiLCAiNDIiIH19LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdW10ge3sgIlZhbHVlIiwgIk5vdCByZWFjaGVkLiIgfX0KKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIyIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjMiIH0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiNSIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICI3IiB9LAorICAgICAgICB9fSwKKyAgICAgICAgfX0sCisKKyAgICAgICAgeyAiVGVzdDA4IiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0ZXN0IHdpdGggZGF0YSBtaXNzaW5nIGZyb20gYSB0ZXN0IGNhc2UuIiB9LAorICAgICAgICAgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiT25lIiwgIlR3byIsICJUaHJlZSIKKyAgICAgICAgICAgIH19LAorICAgICAgICB9fSwKKyAgICAgICAgeyAiQ2FzZXMiLCBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjEiLCAiMiIsICIzIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjQiLCAiNSIgfSwgLy8gdG9vIHNob3J0CisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiNiIsICI3IiwgIjgiIH0sCisgICAgICAgIH19LAorICAgICAgICB9fSwKKworICAgICAgICB7ICJUZXN0MDkiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHRlc3Qgd2l0aCBkYXRhIHN0b3JlZCBhcyBpbnQgYXJyYXlzIGluc3RlYWQgb2Ygc3RyaW5ncyIgfSwKKyAgICAgICAgICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIlJhZGl4IiwgIlBvd2VyIiwgIlZhbHVlIgorICAgICAgICAgICAgfX0sCisgICAgICAgIH19LAorICAgICAgICB7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiMiIsIG5ldyBpbnRbXSB7IDEsIDIsIDMgfSwgbmV3IGludFtdIHsgMiwgNCwgOCB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIzIiwgbmV3IGludFtdIHsgMywgNCwgNSB9LCBuZXcgaW50W10geyAyNywgODEsIDI0MyB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIyIiwgbmV3IGludFtdIHsgMCwgOCwgMTYsIDI0IH0sIG5ldyBpbnRbXSB7IDEsIDI1NiwgNjU1MzYsIDY1NTM2ICogMjU2IH19LAorICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgfX0sCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvU2VhcmNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC9TZWFyY2hUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFmMzJmZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvU2VhcmNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTk3NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvU3RyaW5nU2VhcmNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3Qvc3JjaHRlc3QuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VhcmNoOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK3B1YmxpYyBjbGFzcyBTZWFyY2hUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgLy9pbm5lciBjbGFzcworICAgIHN0YXRpYyBjbGFzcyBTZWFyY2hEYXRhIHsKKyAgICAgICAgU2VhcmNoRGF0YShTdHJpbmcgdGV4dCwgU3RyaW5nIHBhdHRlcm4sIFN0cmluZyBjb2xsLCBpbnQgc3RyZW5ndGgsIFN0cmluZyBicmVha2VyLAorICAgICAgICAgICAgICAgICAgIGludFtdIG9mZnNldCwgaW50W10gc2l6ZSkgeworICAgICAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgICAgICB0aGlzLmNvbGxhdG9yID0gY29sbDsKKyAgICAgICAgICAgIHRoaXMuc3RyZW5ndGggPSBzdHJlbmd0aDsKKyAgICAgICAgICAgIHRoaXMuYnJlYWtlciA9IGJyZWFrZXI7CisgICAgICAgICAgICB0aGlzLm9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICB0ZXh0OworICAgICAgICBTdHJpbmcgICAgICAgICAgICAgIHBhdHRlcm47CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgY29sbGF0b3I7CisgICAgICAgIGludCAgICAgICAgICAgICAgICAgc3RyZW5ndGg7CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgYnJlYWtlcjsKKyAgICAgICAgaW50W10gICAgICAgICAgICAgICBvZmZzZXQ7CisgICAgICAgIGludFtdICAgICAgICAgICAgICAgc2l6ZTsKKyAgICB9CisKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2VuX3VzXzsKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2ZyX2ZyXzsKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2RlXzsKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2VzXzsKKyAgICBCcmVha0l0ZXJhdG9yICAgICBtX2VuX3dvcmRicmVha2VyXzsKKyAgICBCcmVha0l0ZXJhdG9yICAgICBtX2VuX2NoYXJhY3RlcmJyZWFrZXJfOworCisgICAgc3RhdGljIFNlYXJjaERhdGFbXSBCQVNJQyA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInh4eHh4eHh4eHh4eHh4eHh4eHh4IiwgICAgICAgICAgImZpc2hlciIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgICAgICAgICAgICBuZXcgaW50W117MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3ByaW5nIHN0cmluZyIsICAgICAgICAgICAic3RyaW5nIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxMywgLTF9LCAgICAgICAgIG5ldyBpbnRbXXs2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzaWxseSBzcHJpbmcgc3RyaW5nIHN0cmluZyIsICAgICJzdHJpbmciLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezEzLCAyMCwgLTF9LCAgICAgbmV3IGludFtdezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHN0cmluZyBzcHJpbmcgc3RyaW5nIiwgICAgInN0cmluZyIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117NiwgMjAsIC0xfSwgICAgICBuZXcgaW50W117NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic3RyaW5nIHNwcmluZyBzdHJpbmciLCAgICAgICAgICAic3RyaW5nIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXswLCAxNCwgLTF9LCAgICAgIG5ldyBpbnRbXXs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJTY290dCBHYW55byIsICAgICAgICAgICAgICAgICAgICJjIiwgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezEsIC0xfSwgICAgICAgICAgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlNjb3R0IEdhbnlvIiwgICAgICAgICAgICAgICAgICAgIiAiLCAgICAgICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117NSwgLTF9LCAgICAgICAgICBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgICAgICAgICAgICAgICAgICAiXHUwMzAwIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXstMX0sICAgICAgICAgICAgIG5ldyBpbnRbXXswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgICAgICAgICAgICAgICAgICJcdTAzMDAiLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdey0xfSwgICAgICAgICAgICAgbmV3IGludFtdezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAgICAgICAgICAgICAgICAgIlx1MDMwMFx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MSwgLTF9LCAgICAgICAgICBuZXcgaW50W117Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMGIiLCAgICAgICAgICAgICAgICAgICAgICAiXHUwMzAwIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxLCAtMX0sICAgICAgICAgIG5ldyBpbnRbXXsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwYzkiLCAgICAgICAgICAgICAgICAgICAgICAgICJlIiwgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5QUklNQVJZLCAgbnVsbCwgbmV3IGludFtdezAsIC0xfSwgICAgICAgICAgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgICAgICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117LTF9LCAgICAgICAgICAgICBuZXcgaW50W117MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQlJFQUtJVEVSQVRPUkVYQUNUW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3h5IGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezAsIDUsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3h5IGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHs1LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEwLCAxNCwgLTF9LCBuZXcgaW50W10gezMsIDJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoaXMgaXMgYSB0b2UgVFx1MDBGNm5lIiwgInRvZSIsICJkZSIsIENvbGxhdG9yLlBSSU1BUlksICJ3b3JkYnJlYWtlciIsIG5ldyBpbnRbXSB7MTAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJDaGFubmVsLCBhbm90aGVyIGNoYW5uZWwsIG1vcmUgY2hhbm5lbHMsIGFuZCBvbmUgbGFzdCBDaGFubmVsIiwgIkNoYW5uZWwiLCAiZXMiLCBDb2xsYXRvci5URVJUSUFSWSwKKyAgICAgICAgICAgICAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezAsIDU0LCAtMX0sIG5ldyBpbnRbXSB7NywgN30pLAorICAgICAgICAvKiBqaXR0ZXJidWcgMTc0NSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGVzdGluZyB0aGF0IFx1MDBlOSBkb2VzIG5vdCBtYXRjaCBlIiwgImUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwKKyAgICAgICAgICAgICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxLCAxNywgMzAsIC0xfSwgbmV3IGludFtdIHsxLCAxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0ZXN0aW5nIHRoYXQgc3RyaW5nIGFiXHUwMGU5Y2QgZG9lcyBub3QgbWF0Y2ggZSIsICJlIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksCisgICAgICAgICAgICAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MSwgMjgsIDQxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMGM5IiwgImUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W117MCwgLTF9LCBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQlJFQUtJVEVSQVRPUkNBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHswLCA1LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJ3b3JkYnJlYWtlciIsIG5ldyBpbnRbXSB7NSwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoaXMgaXMgYSB0b2UgVFx1MDBGNm5lIiwgInRvZSIsICJkZSIsIENvbGxhdG9yLlBSSU1BUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxMCwgMTQsIC0xfSwgbmV3IGludFtdIHszLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezEwLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQ2hhbm5lbCwgYW5vdGhlciBjaGFubmVsLCBtb3JlIGNoYW5uZWxzLCBhbmQgb25lIGxhc3QgQ2hhbm5lbCIsICJDaGFubmVsIiwgImVzIiwgQ29sbGF0b3IuVEVSVElBUlksICJ3b3JkYnJlYWtlciIsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgNTQsIC0xfSwgbmV3IGludFtdIHs3LCA3fSksCisgICAgICAgIC8qIGppdHRlcmJ1ZyAxNzQ1ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0ZXN0aW5nIHRoYXQgXHUwMGU5IGRvZXMgbm90IG1hdGNoIGUiLCAiZSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLAorICAgICAgICAgICAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEsIDE3LCAzMCwgLTF9LCBuZXcgaW50W10gezEsIDEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInRlc3RpbmcgdGhhdCBzdHJpbmcgYWJcdTAwZTljZCBkb2VzIG5vdCBtYXRjaCBlIiwgImUiLCBudWxsLAorICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZLCAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MSwgMjgsIDQxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMGM5IiwgImUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W117MCwgLTF9LCBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQkFTSUNDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInh4eHh4eHh4eHh4eHh4eHh4eHh4IiwgImZpc2hlciIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludCBbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3ByaW5nIHN0cmluZyIsICJzdHJpbmciLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxMywgLTF9LCBuZXcgaW50W10gezZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHNwcmluZyBzdHJpbmcgc3RyaW5nIiwgInN0cmluZyIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEzLCAyMCwgLTF9LCBuZXcgaW50W10gezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHN0cmluZyBzcHJpbmcgc3RyaW5nIiwgInN0cmluZyIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezYsIDIwLCAtMX0sIG5ldyBpbnRbXSB7NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic3RyaW5nIHNwcmluZyBzdHJpbmciLCAic3RyaW5nIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMTQsIC0xfSwgbmV3IGludFtdIHs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJTY290dCBHYW55byIsICJjIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlNjb3R0IEdhbnlvIiwgIiAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs1LCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50IFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludCBbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzAwXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W117Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMGIiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNWIiLCAiXHUwMzAwYiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMjVcdTAzMDBBXHUwMzI1XHUwMzAwIiwgIlx1MDMwMEFcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7NX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzI1XHUwMzAwQVx1MDMyNVx1MDMwMCIsICJcdTAzMjVBXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezV9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjViXHUwMzAwXHUwMzI1YyBcdTAzMjViXHUwMzAwIFx1MDMwMGJcdTAzMjUiLCAiXHUwMzAwYlx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLAorICAgICAgICAgICAgbmV3IGludFtdIHsxLCAxMiwgLTF9LCBuZXcgaW50W10gezUsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBjNFx1MDMyMyIsICJBXHUwMzIzXHUwMzA4IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwOFx1MDMyMyIsICJcdTAzMjNcdTAzMDgiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQ09MTEFUT1JbXSA9IHsKKyAgICAgICAgLyogZW5nbGlzaCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICAvKiB0YWlsb3JlZCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDQsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU3RyaW5nIFRFU1RDT0xMQVRPUlJVTEUgPSAiJiBvLE8gOyBwLFAiOworICAgIFN0cmluZyBFWFRSQUNPTExBVElPTlJVTEUgPSAiICYgYWUgOyBcdTAwZTQgJiBBRSA7IFx1MDBjNCAmIG9lIDsgXHUwMGY2ICYgT0UgOyBcdTAwZDYgJiB1ZSA7IFx1MDBmYyAmIFVFIDsgXHUwMGRjIjsKKworCisgICAgU2VhcmNoRGF0YSBDT0xMQVRPUkNBTk9OSUNBTFtdID0geworICAgICAgICAvKiBlbmdsaXNoICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3ggZnB4IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIC8qIHRhaWxvcmVkICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3ggZnB4IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgNCwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIENPTVBPU0lURUJPVU5EQVJJRVNbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMCIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAwQzBDIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdICB7MCwgMSwgLTF9LCBuZXcgaW50W10gIHsxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzBBIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQlx1MDBDMCIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMEIiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDBDMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwXHUwMzAwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIC8qIEEgKyAwMzBBICsgMDMwMSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDFGQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIkFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwMUEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQVx1MDMwMSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMUZBIiwgIkFcdTAzMEEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzMiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzFcdTBGNzIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MEY3MyIsICJBXHUwRjcxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3M0EiLCAiXHUwRjcyQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBDT01QT1NJVEVCT1VOREFSSUVTQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMEMwQyIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMSwgLTF9LCBuZXcgaW50W10gezEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMEEiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDEsIC0xfSwgbmV3IGludFtdIHsxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJCXHUwMEMwIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwQiIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMEMwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDEsIC0xfSwgbmV3IGludFtdIHsxLCAxfSksCisgICAgICAgIC8qIFx1MDMwMCBibG9ja2VkIGJ5IFx1MDMwMCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwXHUwMzAwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIC8qIEEgKyAwMzBBICsgMDMwMSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDFGQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICAvKiBibG9ja2VkIGFjY2VudCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIkFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwMUEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQVx1MDMwMSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMUZBIiwgIkFcdTAzMEEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzMiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzFcdTBGNzIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MEY3MyIsICJBXHUwRjcxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3M0EiLCAiXHUwRjcyQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEgQVx1MDMwMVx1MDMwQSBBXHUwMzBBXHUwMzAxIEFcdTAzMEEgXHUwMUZBIiwgIkFcdTAzMEEiLAorICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgNiwgMTAsIDEzLCAtMX0sIG5ldyBpbnRbXSB7MSwgMywgMiwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgU1VQUExFTUVOVEFSWVtdID0geworICAgICAgICAvKiAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYyBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAxIFx1RDgwMVx1REMwMCBcdUQ4MDBcdURDMDBhYmMgYWJjXHVEODAwXHVEQzAwIFx1RDgwMFx1RDgwMFx1REMwMCBcdUQ4MDBcdURDMDBcdURDMDAiLAorICAgICAgICAgICAgIlx1RDgwMFx1REMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7NCwgMTMsIDIyLCAyNiwgMjksIC0xfSwgbmV3IGludFtdIHsyLCAyLCAyLCAyLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmRcdUQ4MzRcdUREQjl0aGlzIHNlbnRlbmNlIiwgIlx1RDgzNFx1RERCOSIsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCBcdUQ4MzRcdUREQjkgdGhpcyBzZW50ZW5jZSIsICIgXHVEODM0XHVEREI5ICIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZC1cdUQ4MzRcdUREQjktdGhpcyBzZW50ZW5jZSIsICItXHVEODM0XHVEREI5LSIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCxcdUQ4MzRcdUREQjksdGhpcyBzZW50ZW5jZSIsICIsXHVEODM0XHVEREI5LCIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZD9cdUQ4MzRcdUREQjk/dGhpcyBzZW50ZW5jZSIsICI/XHVEODM0XHVEREI5PyIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTdHJpbmcgQ09OVFJBQ1RJT05SVUxFID0gIiZ6ID0gYWIvYyA8IEFCIDwgWFx1MDMwMCA8IEFCQyA8IFhcdTAzMDBcdTAzMTUiOworCisgICAgU2VhcmNoRGF0YSBDT05UUkFDVElPTltdID0geworICAgICAgICAvKiBjb21tb24gZGlzY29udGlndW91cyAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MDMwMFx1MDMxNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MDMwMFx1MDMxNSIsICJcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICAvKiBjb250cmFjdGlvbiBwcmVmaXggKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFCXHUwMzE1QyIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFCXHUwMzE1QyIsICJBQiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MiwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgLyogZGlzY29udGlndW91cyBwcm9ibGVtIGhlcmUgZm9yIGJhY2t3YXJkcyBpdGVyYXRpb24uCisgICAgICAgIGFjY2VudHMgbm90IGZvdW5kIGJlY2F1c2UgZGlzY29udGlndW91cyBzdG9yZXMgYWxsIGluZm9ybWF0aW9uICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzE5XHUwMzE1IiwgIlx1MDMxOSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgICAvKiBlbmRzIG5vdCB3aXRoIGEgY29udHJhY3Rpb24gY2hhcmFjdGVyICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzE1XHUwMzAwRCIsICJcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMxNVx1MDMwMEQiLCAiWFx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJYXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgLyogYmxvY2tlZCBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJcdTAzMUFcdTAzMTVEIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiIiwgInoiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQ09OVFJBQ1RJT05DQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyogY29tbW9uIGRpc2NvbnRpZ3VvdXMgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAzMDBcdTAzMTUiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAzMDBcdTAzMTUiLCAiXHUwMzAwXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgLyogY29udHJhY3Rpb24gcHJlZml4ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiQUIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIlx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezIsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIC8qIGRpc2NvbnRpZ3VvdXMgcHJvYmxlbSBoZXJlIGZvciBiYWNrd2FyZHMgaXRlcmF0aW9uLgorICAgICAgICBmb3J3YXJkcyBnaXZlcyAwLCA0IGJ1dCBiYWNrd2FyZHMgZ2l2ZSAxLCAzICovCisgICAgICAgIC8qIHsiWFx1MDMwMFx1MDMxOVx1MDMxNSIsICJcdTAzMTkiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgezAsIC0xfSwKKyAgICAgICAgezR9fSwgKi8KKworICAgICAgICAgLyogZW5kcyBub3Qgd2l0aCBhIGNvbnRyYWN0aW9uIGNoYXJhY3RlciAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMxNVx1MDMwMEQiLCAiXHUwMzAwXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlhcdTAzMTVcdTAzMDBEIiwgIlhcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlhcdTAzMDBcdTAzMUFcdTAzMTVEIiwgIlhcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezR9KSwKKyAgICAgICAgLyogYmxvY2tlZCBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJcdTAzMUFcdTAzMTVEIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsCisgICAgICAgICAgICBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYiIsICJ6IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIE1BVENIW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhIGJ1c3kgYmVlIGlzIGEgdmVyeSBidXN5IGJlZWVlIiwgImJlZSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLAorICAgICAgICBuZXcgaW50W10gezcsIDI2LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICAvKiAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImEgYnVzeSBiZWUgaXMgYSB2ZXJ5IGJ1c3kgYmVlZWUgd2l0aCBubyBiZWUgbGlmZSIsICJiZWUiLCBudWxsLAorICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NywgMjYsIDQwLCAtMX0sIG5ldyBpbnRbXSB7MywgMywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFN0cmluZyBJR05PUkFCTEVSVUxFID0gIiZhID0gXHUwMzAwIjsKKworICAgIFNlYXJjaERhdGEgSUdOT1JBQkxFW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMTVcdTAzMDAgXHUwMzE1XHUwMzAwXHUwMzE1ICIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLAorICAgICAgICAgICAgbmV3IGludFtdIHswLCAzLCAtMX0sIG5ldyBpbnRbXSB7MiwgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9STUNBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMDBcdTAzMjUiLCAiXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzI1XHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LAorICAgICAgICAgICAgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMwMFx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9STUVYQUNUW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMyNVx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBOT05OT1JNRVhBQ1RbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzI1XHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIE9WRVJMQVBbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYWJhYmFiIiwgImFiYWIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAyLCA0LCAtMX0sIG5ldyBpbnRbXSB7NCwgNCwgNH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9OT1ZFUkxBUFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYWJhYmFiYWIiLCAiYWJhYiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDQsIC0xfSwgbmV3IGludFtdIHs0LCA0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBPVkVSTEFQQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMiwgNCwgLTF9LAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0LCA0LCA0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBOT05PVkVSTEFQQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgNCwgLTF9LCBuZXcgaW50W10gezQsIDR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFBBVFRFUk5DQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJ0aGUiLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDMxLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTYsIDQwLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgUEFUVEVSTltdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgInRoZSIsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMzEsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNiwgNDAsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBTVFJFTkdUSFtdID0geworICAgICAgICAvKjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OSovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgImVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNiwgNDAsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgImVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImJsYWNrYmlyZHMgUGF0IHBcdTAwRTljaFx1MDBFOSBwXHUwMEVBY2hlIHBcdTAwRTljaGVyIHBcdTAwRUFjaGVyIFRvZCBUXHUwMEY2bmUgYmxhY2sgVG9mdSBibGFja2JpcmRzIFRvbiBQQVQgdG9laG9sZCBibGFja2JpcmQgYmxhY2stYmlyZCBwYXQgdG9lIGJpZyBUb2UiLAorICAgICAgICAgICAgICAgICAgICAgICAicGVjaGUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE1LCAyMSwgMjcsIDM0LCAtMX0sIG5ldyBpbnRbXSB7NSwgNSwgNSwgNX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MTAsIDE0LCAtMX0sIG5ldyBpbnRbXSB7MywgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQSBjaGFubmVsLCBhbm90aGVyIENIQU5ORUwsIG1vcmUgQ2hhbm5lbHMsIGFuZCBvbmUgbGFzdCBjaGFubmVsLi4uIiwgImNoYW5uZWwiLCAiZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsyLCAxOSwgMzMsIDU2LCAtMX0sIG5ldyBpbnRbXSB7NywgNywgNywgN30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgU1RSRU5HVEhDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyowMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJmb3giLCAiZW4iLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCA0MCwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJmb3giLCAiZW4iLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezE2LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYmxhY2tiaXJkcyBQYXQgcFx1MDBFOWNoXHUwMEU5IHBcdTAwRUFjaGUgcFx1MDBFOWNoZXIgcFx1MDBFQWNoZXIgVG9kIFRcdTAwRjZuZSBibGFjayBUb2Z1IGJsYWNrYmlyZHMgVG9uIFBBVCB0b2Vob2xkIGJsYWNrYmlyZCBibGFjay1iaXJkIHBhdCB0b2UgYmlnIFRvZSIsCisgICAgICAgICAgICAgICAgICAgICAgICJwZWNoZSIsICJmciIsIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTUsIDIxLCAyNywgMzQsIC0xfSwgbmV3IGludFtdIHs1LCA1LCA1LCA1fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezEwLCAxNCwgLTF9LCBuZXcgaW50W10gezMsIDJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkEgY2hhbm5lbCwgYW5vdGhlciBDSEFOTkVMLCBtb3JlIENoYW5uZWxzLCBhbmQgb25lIGxhc3QgY2hhbm5lbC4uLiIsICJjaGFubmVsIiwgImVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdezIsIDE5LCAzMywgNTYsIC0xfSwgbmV3IGludFtdIHs3LCA3LCA3LCA3fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFNVUFBMRU1FTlRBUllDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyowMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYyBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAxIFx1RDgwMVx1REMwMCBcdUQ4MDBcdURDMDBhYmMgYWJjXHVEODAwXHVEQzAwIFx1RDgwMFx1RDgwMFx1REMwMCBcdUQ4MDBcdURDMDBcdURDMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAiXHVEODAwXHVEQzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NCwgMTMsIDIyLCAyNiwgMjksIC0xfSwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsyLCAyLCAyLCAyLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmRcdUQ4MzRcdUREQjl0aGlzIHNlbnRlbmNlIiwgIlx1RDgzNFx1RERCOSIsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCBcdUQ4MzRcdUREQjkgdGhpcyBzZW50ZW5jZSIsICIgXHVEODM0XHVEREI5ICIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZC1cdUQ4MzRcdUREQjktdGhpcyBzZW50ZW5jZSIsICItXHVEODM0XHVEREI5LSIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCxcdUQ4MzRcdUREQjksdGhpcyBzZW50ZW5jZSIsICIsXHVEODM0XHVEREI5LCIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZD9cdUQ4MzRcdUREQjk/dGhpcyBzZW50ZW5jZSIsICI/XHVEODM0XHVEREI5PyIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBzdGF0aWMgU2VhcmNoRGF0YSBWQVJJQUJMRVtdID0geworICAgICAgICAvKjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OSovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJibGFja2JpcmRzIGJsYWNrIGJsYWNrYmlyZHMgYmxhY2tiaXJkIGJsYWNrLWJpcmQiLCAiYmxhY2tiaXJkIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICAgbnVsbCwKKyAgICAgICAgbmV3IGludFtdIHswLCAxNywgMjgsIDM4LCAtMX0sIG5ldyBpbnRbXSB7OSwgOSwgOSwgMTB9KSwKKworICAgICAgICAvKiB0byBzZWUgdGhhdCBpdCBkb2Vzbid0IGdvIGludG8gYW4gaW5maW5pdGUgbG9vcCBpZiB0aGUgc3RhcnQgb2YgdGV4dAorICAgICAgICBpcyBhIGlnbm9yYWJsZSBjaGFyYWN0ZXIgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIiBvbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnbyIsICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gey0xfSwgbmV3IGludFtdezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwgICAgICAgICAgICAgICAgICAgICAgICIgICAiLCAgICAgICBudWxsLCBDb2xsYXRvci5QUklNQVJZLCAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAtMX0sCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9KSwKKworICAgICAgICAvKiB0ZXN0aW5nIHRpZ2h0ZXN0IG1hdGNoICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgYWJjICBhIGJjICAgYWIgYyAgICBhICBiYyAgICAgYWIgIGMiLCAgICAgICAgICAgICAiYWJjIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuUVVBVEVSTkFSWSwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdezEsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIC8qMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgYWJjICBhIGJjICAgYWIgYyAgICBhICBiYyAgICAgYWIgIGMiLCAgICAgICAgICAgICAiYWJjIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuU0VDT05EQVJZLCAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsxLCA2LCAxMywgMjEsIDMxLCAtMX0sIG5ldyBpbnRbXSB7MywgNCwgNCwgNSwgNX0pLAorCisgICAgICAgIC8qIHRvdGFsbHkgaWdub3JhYmxlIHRleHQgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIiAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tIiwgICAgICAgICAgICAgICAgICAgICAgICJhYmMiLCAgICAgICBudWxsLCBDb2xsYXRvci5TRUNPTkRBUlksICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgc3RhdGljIFNlYXJjaERhdGEgVEVYVENBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGhlIGZveHkgYnJvd24gZm94IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZveCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7NCwgMTUsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0aGUgcXVpY2sgYnJvd24gZm94IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm94IiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W117M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSxudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgU2VhcmNoVGVzdCgpCisgICAgeworCisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbV9lbl91c18gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbV9mcl9mcl8gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIG1fZGVfID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImRlIiwgIkRFIikpOworICAgICAgICBtX2VzXyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlcyIsICJFUyIpKTsKKyAgICAgICAgbV9lbl93b3JkYnJlYWtlcl8gPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICBtX2VuX2NoYXJhY3RlcmJyZWFrZXJfID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICBTdHJpbmcgcnVsZXMgPSBtX2RlXy5nZXRSdWxlcygpICsgRVhUUkFDT0xMQVRJT05SVUxFOworICAgICAgICBtX2RlXyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIHJ1bGVzID0gbV9lc18uZ2V0UnVsZXMoKSArIEVYVFJBQ09MTEFUSU9OUlVMRTsKKyAgICAgICAgbV9lc18gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworCisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgU2VhcmNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgLy8gbmV3IFNlYXJjaFRlc3QoKS5UZXN0Q29udHJhY3Rpb24oKTsKKyAgICB9CisKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBnZXRDb2xsYXRvcihTdHJpbmcgY29sbGF0b3IpIHsKKyAgICAgICAgaWYgKGNvbGxhdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBtX2VuX3VzXzsKKyAgICAgICAgfSBpZiAoY29sbGF0b3IuZXF1YWxzKCJmciIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9mcl9mcl87CisgICAgICAgIH0gZWxzZSBpZiAoY29sbGF0b3IuZXF1YWxzKCJkZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kZV87CisgICAgICAgIH0gZWxzZSBpZiAoY29sbGF0b3IuZXF1YWxzKCJlcyIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9lc187CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl91c187CisgICAgICAgIH0KKyAgICB9CisKKyAgICBCcmVha0l0ZXJhdG9yIGdldEJyZWFrSXRlcmF0b3IoU3RyaW5nIGJyZWFrZXIpIHsKKyAgICAgICAgaWYgKGJyZWFrZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0gaWYgKGJyZWFrZXIuZXF1YWxzKCJ3b3JkYnJlYWtlciIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl93b3JkYnJlYWtlcl87CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl9jaGFyYWN0ZXJicmVha2VyXzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2xlYW4gYXNzZXJ0Q2Fub25pY2FsRXF1YWwoU2VhcmNoRGF0YSBzZWFyY2gpIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2xlYW4gYXNzZXJ0RXF1YWwoU2VhcmNoRGF0YSBzZWFyY2gpIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbGVhbiBhc3NlcnRFcXVhbFdpdGhBdHRyaWJ1dGUoU2VhcmNoRGF0YSBzZWFyY2gsIGJvb2xlYW4gY2Fub25pY2FsLCBib29sZWFuIG92ZXJsYXApIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwoY2Fub25pY2FsKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcob3ZlcmxhcCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sZWFuIGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChTdHJpbmdTZWFyY2ggc3Ryc3JjaCwgU2VhcmNoRGF0YSBzZWFyY2gpIHsKKyAgICAgICAgaW50ICAgICAgICAgICBjb3VudCAgICAgICA9IDA7CisgICAgICAgIGludCAgIG1hdGNoaW5kZXggID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgIFN0cmluZyBtYXRjaHRleHQ7CisKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igd2l0aCB0aGUgaW5pdGlhbGl6YXRpb24gb2YgbWF0Y2ggc3RhcnQgYW5kIGxlbmd0aCIpOworICAgICAgICB9CisgICAgICAgIC8vIHN0YXJ0IG9mIGZvbGxvd2luZyBtYXRjaGVzCisgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGludCBtYXRjaGxlbmd0aCA9IHNlYXJjaC5zaXplW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgLy9pbnQgeCA9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpOworICAgICAgICAgICAgaWYgKG1hdGNoaW5kZXggIT0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgfHwKKyAgICAgICAgICAgICAgICBtYXRjaGxlbmd0aCAhPSBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHNlYXJjaC50ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZm9sbG93aW5nIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworCisgICAgICAgICAgICBtYXRjaHRleHQgPSBzdHJzcmNoLmdldE1hdGNoZWRUZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0VGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICAgICAgaWYgKG1hdGNobGVuZ3RoID4gMCAmJgorICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc3Vic3RyaW5nKG1hdGNoaW5kZXgsIG1hdGNoaW5kZXggKyBtYXRjaGxlbmd0aCkuY29tcGFyZVRvKG1hdGNodGV4dCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaGVkIHRleHQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHNlYXJjaC50ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZm9sbG93aW5nIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdGFydCBvZiBwcmVjZWRpbmcgbWF0Y2hlcworICAgICAgICBjb3VudCA9IGNvdW50ID09IDAgPyAwIDogY291bnQgLSAxOworICAgICAgICBtYXRjaGluZGV4ID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGludCBtYXRjaGxlbmd0aCA9IHNlYXJjaC5zaXplW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2gucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGZvbGxvd2luZyBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXRUZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBpZiAobWF0Y2hsZW5ndGggPiAwICYmCisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zdWJzdHJpbmcobWF0Y2hpbmRleCwgbWF0Y2hpbmRleCArIG1hdGNobGVuZ3RoKS5jb21wYXJlVG8obWF0Y2h0ZXh0KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgZm9sbG93aW5nIG1hdGNoZWQgdGV4dCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYXRjaGluZGV4ID0gY291bnQgPiAwID8gc2VhcmNoLm9mZnNldFtjb3VudCAtIDFdIDogLTE7CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnByZXZpb3VzKCk7CisgICAgICAgIGlmIChzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSAhPSBTZWFyY2hJdGVyYXRvci5ET05FIHx8CisgICAgICAgICAgICBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgc2VhcmNoLnRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBmb2xsb3dpbmcgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRleHRpdGVyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpOworICAgICAgICBDb2xsYXRvciBkZWZhdWx0Y29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHNlYXJjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dCk7CisgICAgICAgIGlmICghc2VhcmNoLmdldFBhdHRlcm4oKS5lcXVhbHMocGF0dGVybikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0VGFyZ2V0KCkuZXF1YWxzKHRleHRpdGVyKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhkZWZhdWx0Y29sbGF0b3IpCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMoYnJlYWtlcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdTZWFyY2goU3RyaW5nLCBTdHJpbmcpIGVycm9yIik7CisgICAgICAgIH0KKyAgICAgICAgc2VhcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCB0ZXh0aXRlciwgbV9mcl9mcl8pOworICAgICAgICBpZiAoIXNlYXJjaC5nZXRQYXR0ZXJuKCkuZXF1YWxzKHBhdHRlcm4pCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldFRhcmdldCgpLmVxdWFscyh0ZXh0aXRlcikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHMobV9mcl9mcl8pCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMoYnJlYWtlcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdTZWFyY2goU3RyaW5nLCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciwgIgorICAgICAgICAgICAgICAgICAgKyAiUnVsZUJhc2VkQ29sbGF0b3IpIGVycm9yIik7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlIGRlID0gbmV3IExvY2FsZSgiZGUiLCAiREUiKTsKKyAgICAgICAgYnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoZGUpOworICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIHNlYXJjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dGl0ZXIsIGRlKTsKKyAgICAgICAgaWYgKCFzZWFyY2guZ2V0UGF0dGVybigpLmVxdWFscyhwYXR0ZXJuKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRUYXJnZXQoKS5lcXVhbHModGV4dGl0ZXIpCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldENvbGxhdG9yKCkuZXF1YWxzKENvbGxhdG9yLmdldEluc3RhbmNlKGRlKSkKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhicmVha2VyKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZ1NlYXJjaChTdHJpbmcsIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yLCBMb2NhbGUpICIKKyAgICAgICAgICAgICAgICAgICsgImVycm9yIik7CisgICAgICAgIH0KKworICAgICAgICBzZWFyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIHRleHRpdGVyLCBtX2ZyX2ZyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2VuX3dvcmRicmVha2VyXyk7CisgICAgICAgIGlmICghc2VhcmNoLmdldFBhdHRlcm4oKS5lcXVhbHMocGF0dGVybikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0VGFyZ2V0KCkuZXF1YWxzKHRleHRpdGVyKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhtX2ZyX2ZyXykKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhtX2VuX3dvcmRicmVha2VyXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdTZWFyY2goU3RyaW5nLCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciwgTG9jYWxlKSAiCisgICAgICAgICAgICAgICAgICArICJlcnJvciIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJhc2ljKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChCQVNJQ1tjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCcmVha0l0ZXJhdG9yKCkgeworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gQlJFQUtJVEVSQVRPUkVYQUNUWzBdLnRleHQ7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gQlJFQUtJVEVSQVRPUkVYQUNUWzBdLnBhdHRlcm47CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKG51bGwpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHVzZWFyY2hfZ2V0QnJlYWtJdGVyYXRvciByZXR1cm5lZCB3cm9uZyBvYmplY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0QnJlYWtJdGVyYXRvcihtX2VuX2NoYXJhY3RlcmJyZWFrZXJfKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMobV9lbl9jaGFyYWN0ZXJicmVha2VyXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciB1c2VhcmNoX2dldEJyZWFrSXRlcmF0b3IgcmV0dXJuZWQgd3Jvbmcgb2JqZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldEJyZWFrSXRlcmF0b3IobV9lbl93b3JkYnJlYWtlcl8pOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhtX2VuX3dvcmRicmVha2VyXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciB1c2VhcmNoX2dldEJyZWFrSXRlcmF0b3IgcmV0dXJuZWQgd3Jvbmcgb2JqZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCA0KSB7CisgICAgICAgICAgICAvLyBzcGVjaWFsIHB1cnBvc2VzIGZvciB0ZXN0cyBudW1iZXJzIDAtMworICAgICAgICAgICAgU2VhcmNoRGF0YSAgICAgICAgc2VhcmNoICAgPSBCUkVBS0lURVJBVE9SRVhBQ1RbY291bnRdOworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICAgICAgQnJlYWtJdGVyYXRvciAgICAgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgICAgICAgICAgIC8vU3RyaW5nU2VhcmNoICAgICAgc3Ryc3JjaDsKKworICAgICAgICAgICAgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgICAgICAgICAgaWYgKGJyZWFrZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKHNlYXJjaC5zdHJlbmd0aCk7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBicmVha2VyKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKSAhPSBicmVha2VyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgYnJlYWsgaXRlcmF0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggICA9IEJSRUFLSVRFUkFUT1JFWEFDVFtjb3VudCArIDFdOworICAgICAgICAgICAgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnNldEJyZWFrSXRlcmF0b3IoYnJlYWtlcik7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkgIT0gYnJlYWtlcikgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGJyZWFrIGl0ZXJhdG9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChCUkVBS0lURVJBVE9SRVhBQ1RbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChCUkVBS0lURVJBVE9SRVhBQ1RbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnJlYWtJdGVyYXRvckNhbm9uaWNhbCgpIHsKKyAgICAgICAgaW50ICAgICAgICBjb3VudCAgPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCA0KSB7CisgICAgICAgICAgICAvLyBzcGVjaWFsIHB1cnBvc2VzIGZvciB0ZXN0cyBudW1iZXJzIDAtMworICAgICAgICAgICAgU2VhcmNoRGF0YSAgICAgc2VhcmNoICAgPSBCUkVBS0lURVJBVE9SQ0FOT05JQ0FMW2NvdW50XTsKKworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworCisgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgc3RyaW5nIHNlYXJjaCBkYXRhIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgICAgICBpZiAoIXN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhicmVha2VyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGJyZWFrIGl0ZXJhdG9yIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggID0gQlJFQUtJVEVSQVRPUkVYQUNUW2NvdW50ICsgMV07CisgICAgICAgICAgICBicmVha2VyID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgICAgICBicmVha2VyLnNldFRleHQoc3Ryc3JjaC5nZXRUYXJnZXQoKSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldEJyZWFrSXRlcmF0b3IoYnJlYWtlcik7CisgICAgICAgICAgICBpZiAoIXN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhicmVha2VyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGJyZWFrIGl0ZXJhdG9yIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKEJSRUFLSVRFUkFUT1JDQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQlJFQUtJVEVSQVRPUkNBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNDQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRDYW5vbmljYWxFcXVhbChCQVNJQ0NBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRvcigpIHsKKyAgICAgICAgLy8gdGVzdCBjb2xsYXRvciB0aGF0IHRoaW5rcyAibyIgYW5kICJwIiBhcmUgdGhlIHNhbWUgdGhpbmcKKyAgICAgICAgU3RyaW5nIHRleHQgPSBDT0xMQVRPUlswXS50ZXh0OworICAgICAgICBTdHJpbmcgcGF0dGVybiAgPSBDT0xMQVRPUlswXS5wYXR0ZXJuOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JbMF0pKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gVEVTVENPTExBVE9SUlVMRTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGFpbG9yZWQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGFpbG9yZWQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgdGFpbG9yZWQuc2V0U3RyZW5ndGgoQ09MTEFUT1JbMV0uc3RyZW5ndGgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgcnVsZSBiYXNlZCBjb2xsYXRvciAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0Q29sbGF0b3IodGFpbG9yZWQpOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHModGFpbG9yZWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBydWxlIGJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUlsxXSkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldENvbGxhdG9yKG1fZW5fdXNfKTsKKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHMobV9lbl91c18pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBydWxlIGJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JbMF0pKSB7CisgICAgICAgICAgIGVycmxuKCJFcnJvciBzZWFyY2hpbmcgY29sbGF0b3IgdGVzdCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdG9yQ2Fub25pY2FsKCkgeworICAgICAgICAvKiB0ZXN0IGNvbGxhdG9yIHRoYXQgdGhpbmtzICJvIiBhbmQgInAiIGFyZSB0aGUgc2FtZSB0aGluZyAqLworICAgICAgICBTdHJpbmcgdGV4dCA9IENPTExBVE9SQ0FOT05JQ0FMWzBdLnRleHQ7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gQ09MTEFUT1JDQU5PTklDQUxbMF0ucGF0dGVybjsKKworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTExBVE9SQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gVEVTVENPTExBVE9SUlVMRTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGFpbG9yZWQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGFpbG9yZWQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgdGFpbG9yZWQuc2V0U3RyZW5ndGgoQ09MTEFUT1JDQU5PTklDQUxbMV0uc3RyZW5ndGgpOworICAgICAgICAgICAgdGFpbG9yZWQuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBydWxlIGJhc2VkIGNvbGxhdG9yICIpOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5zZXRDb2xsYXRvcih0YWlsb3JlZCk7CisgICAgICAgIGlmICghc3Ryc3JjaC5nZXRDb2xsYXRvcigpLmVxdWFscyh0YWlsb3JlZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUkNBTk9OSUNBTFsxXSkpIHsKKyAgICAgICAgCWxvZ2xuKCJDT0xMQVRPUkNBTk9OSUNBTFsxXSBmYWlsZWQiKTsgIC8vIEVycm9yIHNob3VsZCBhbHJlYWR5IGJlIHJlcG9ydGVkLgorICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0Q29sbGF0b3IobV9lbl91c18pOworICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIGlmICghc3Ryc3JjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhtX2VuX3VzXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUkNBTk9OSUNBTFswXSkpIHsKKyAgICAgICAgCWxvZ2xuKCJDT0xMQVRPUkNBTk9OSUNBTFswXSBmYWlsZWQiKTsgIC8vIEVycm9yIHNob3VsZCBhbHJlYWR5IGJlIHJlcG9ydGVkLgorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2l0ZUJvdW5kYXJpZXMoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChDT01QT1NJVEVCT1VOREFSSUVTW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJjb21wb3NpdGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQ09NUE9TSVRFQk9VTkRBUklFU1tjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2l0ZUJvdW5kYXJpZXNDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChDT01QT1NJVEVCT1VOREFSSUVTQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJjb21wb3NpdGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoQ09NUE9TSVRFQk9VTkRBUklFU0NBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uKCkgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSBDT05UUkFDVElPTlJVTEU7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgY29sbGF0b3IgIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQ09OVFJBQ1RJT05bY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dCA9IENPTlRSQUNUSU9OW2NvdW50XS50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IENPTlRSQUNUSU9OW2NvdW50XS5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTlRSQUNUSU9OW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHJhY3Rpb25DYW5vbmljYWwoKSB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IENPTlRSQUNUSU9OUlVMRTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBjb2xsYXRvciAiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGV4dCA9ICJ0ZXh0IjsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAicGF0dGVybiI7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIG51bGwpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQ09OVFJBQ1RJT05DQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dCA9IENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XS50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XS5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0TWF0Y2goKSB7CisgICAgICAgIFNlYXJjaERhdGEgc2VhcmNoID0gTUFUQ0hbMF07CisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50ICAgICAgICAgICBjb3VudCAgICAgID0gMDsKKyAgICAgICAgaW50ICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworICAgICAgICBTdHJpbmcgbWF0Y2h0ZXh0OworICAgICAgICB3aGlsZSAobWF0Y2hpbmRleCA+PSAwKSB7CisgICAgICAgICAgICBpbnQgbWF0Y2hsZW5ndGggPSBzZWFyY2guc2l6ZVtjb3VudF07CisgICAgICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisKKyAgICAgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaHRleHQubGVuZ3RoKCkgIT0gbWF0Y2hsZW5ndGgpeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG1hdGNoIHRleHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICAhPSBTdHJpbmdTZWFyY2guRE9ORSB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBlbmQgb2YgbWF0Y2ggbm90IGZvdW5kIik7CisgICAgICAgIH0KKyAgICAgICAgbWF0Y2h0ZXh0ID0gc3Ryc3JjaC5nZXRNYXRjaGVkVGV4dCgpOworICAgICAgICBpZiAobWF0Y2h0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG51bGwgbWF0Y2hlcyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldEF0dHJpYnV0ZSgpIHsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmcgIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZGVmYXVsdCBvdmVybGFwaW5nIHNob3VsZCBiZSBmYWxzZSIpOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcodHJ1ZSk7CisgICAgICAgIGlmICghc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgdHJ1ZSIpOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcoZmFsc2UpOworICAgICAgICBpZiAoc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgZmFsc2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICBpZiAoIXN0cnNyY2guaXNDYW5vbmljYWwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgY2Fub25pY2FsIG1hdGNoIHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbChmYWxzZSk7CisgICAgICAgIGlmIChzdHJzcmNoLmlzQ2Fub25pY2FsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGNhbm9uaWNhbCBtYXRjaCBmYWxzZSIpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2V0T2Zmc2V0KCkgeworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgICAgIFN0cmluZyAgdGV4dCAgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzZWFyY2giKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogdGVzdGluZyBvdXQgb2YgYm91bmRzIGVycm9yICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgc2V0IG9mZnNldCBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzdHJzcmNoLnNldEluZGV4KC0xKSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAJfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KDEyOCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc3Ryc3JjaC5zZXRJbmRleCgxMjgpIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgaW50IGluZGV4ICAgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNbaW5kZXhdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgU2VhcmNoRGF0YSAgc2VhcmNoICAgICAgPSBCQVNJQ1tpbmRleCArK107CisKKyAgICAgICAgICAgIHRleHQgPXNlYXJjaC50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0Q29sbGF0b3IoKS5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IG1hdGNoaW5kZXggID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisKKyAgICAgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF0Y2hsZW5ndGggPSBzZWFyY2guc2l6ZVtjb3VudF07CisgICAgICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoaW5kZXggIT0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgfHwKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgdGV4dCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSA9PSAtMSA/IC0xIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLm9mZnNldFtjb3VudCArIDJdOworICAgICAgICAgICAgICAgIGlmIChzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgc3Ryc3JjaC5zZXRJbmRleChzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnNyY2guZ2V0SW5kZXgoKSAhPSBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gKyAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvZmZzZXRcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFN0cmluZ1NlYXJjaC5ET05FKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyB0ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHN0cnNyY2guZ2V0Q29sbGF0b3IoKS5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldE9mZnNldENhbm9uaWNhbCgpIHsKKworICAgICAgICBTdHJpbmcgIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gb3BlbiBTdHJpbmdTZWFyY2ghIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIC8qIHRlc3Rpbmcgb3V0IG9mIGJvdW5kcyBlcnJvciAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaC5zZXRJbmRleCgtMSk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc3Ryc3JjaC5zZXRJbmRleCgtMSkgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoMTI4KTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgc2V0IG9mZnNldCBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzdHJzcmNoLnNldEluZGV4KDEyOCkgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKworICAgICAgICBpbnQgICBpbmRleCAgID0gMDsKKyAgICAgICAgd2hpbGUgKEJBU0lDQ0FOT05JQ0FMW2luZGV4XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNlYXJjaERhdGEgIHNlYXJjaCAgICAgID0gQkFTSUNDQU5PTklDQUxbaW5kZXggKytdOworICAgICAgICAgICAgaWYgKEJBU0lDQ0FOT05JQ0FMW2luZGV4XS50ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBza2lwIHRoZSBsYXN0IG9uZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisgICAgICAgICAgICBzdHJzcmNoLnNldFRhcmdldChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCkpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgaW50ICAgICAgICAgY291bnQgICAgICAgPSAwOworICAgICAgICAgICAgaW50IG1hdGNoaW5kZXggID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgICAgICB3aGlsZSAobWF0Y2hpbmRleCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaW50IG1hdGNobGVuZ3RoID0gc2VhcmNoLnNpemVbY291bnRdOworICAgICAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgICAgIG1hdGNobGVuZ3RoICE9IHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gPT0gLTEgPyAtMSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC5vZmZzZXRbY291bnQgKyAyXTsKKyAgICAgICAgICAgICAgICBpZiAoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldEluZGV4KCkgIT0gc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb2Zmc2V0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU3RyaW5nU2VhcmNoLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAlcyIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLmdldENvbGxhdG9yKCkuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJZ25vcmFibGUoKSB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IElHTk9SQUJMRVJVTEU7CisgICAgICAgIGludCAgICAgICAgY291bnQgID0gMDsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoSUdOT1JBQkxFW2NvdW50XS5zdHJlbmd0aCk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIGNvbGxhdG9yICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmcgdGV4dCA9ICJ0ZXh0IjsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBjb2xsYXRvciwgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKElHTk9SQUJMRVtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICB0ZXh0ID0gSUdOT1JBQkxFW2NvdW50XS50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IElHTk9SQUJMRVtjb3VudF0ucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBJR05PUkFCTEVbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbml0aWFsaXphdGlvbigpIHsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuOworICAgICAgICBTdHJpbmcgIHRleHQ7CisgICAgICAgIFN0cmluZyAgdGVtcCA9ICJhIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoICByZXN1bHQ7CisKKyAgICAgICAgLyogc2ltcGxlIHRlc3Qgb24gdGhlIHBhdHRlcm4gY2UgY29uc3RydWN0aW9uICovCisgICAgICAgIHBhdHRlcm4gPSB0ZW1wICsgdGVtcDsKKyAgICAgICAgdGV4dCA9IHRlbXAgKyB0ZW1wICsgdGVtcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzZWFyY2ggIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvKiB0ZXN0aW5nIGlmIGFuIGV4dHJlbWVseSBsYXJnZSBwYXR0ZXJuIHdpbGwgZmFpbCB0aGUgaW5pdGlhbGl6YXRpb24gKi8KKyAgICAgICAgcGF0dGVybiA9ICIiOworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgNTEyOyBjb3VudCArKykgeworICAgICAgICAgICAgcGF0dGVybiArPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICAgICAgbG9nbG4oInBhdHRlcm46IiArIHJlc3VsdC5nZXRQYXR0ZXJuKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IGFuIGV4dHJlbWVseSBsYXJnZSBwYXR0ZXJuIHdpbGwgZmFpbCB0aGUgaW5pdGlhbGl6YXRpb24iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzdHJpbmcgc2VhcmNoIG9iamVjdCBleHBlY3RlZCB0byBtYXRjaCBpdHNlbGYiKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1DYW5vbmljYWwoKSB7CisgICAgICAgIG1fZW5fdXNfLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoTk9STUNBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKE5PUk1DQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtRXhhY3QoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIG1fZW5fdXNfLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB3aGlsZSAoQkFTSUNbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChCQVNJQ1tjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE5PUk1FWEFDVFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKE5PUk1FWEFDVFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgICAgIG1fZW5fdXNfLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE5PTk5PUk1FWEFDVFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKE5PTk5PUk1FWEFDVFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE9wZW5DbG9zZSgpIHsKKyAgICAgICAgU3RyaW5nU2VhcmNoICAgICAgICAgICAgcmVzdWx0OworICAgICAgICBCcmVha0l0ZXJhdG9yICAgICAgICAgICBicmVha2l0ZXIgPSBtX2VuX3dvcmRicmVha2VyXzsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICBwYXR0ZXJuID0gIiI7CisgICAgICAgIFN0cmluZyAgICAgICAgICAgdGV4dCA9ICIiOworICAgICAgICBTdHJpbmcgICAgICAgICAgIHRlbXAgID0gImEiOworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciAgY2hhcml0ZXI9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KTsKKworICAgICAgICAvKiB0ZXN0aW5nIG51bGwgYXJndW1lbnRzICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYXJndW1lbnRzIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogbnVsbCBhcmd1bWVudHMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKworICAgICAgICBjaGFyaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYXJndW1lbnRzIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogbnVsbCBhcmd1bWVudHMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKworICAgICAgICB0ZXh0ICA9IFN0cmluZy52YWx1ZU9mKDB4MSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEVtcHR5IHBhdHRlcm4gc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBFbXB0eSBwYXR0ZXJuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhcml0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFbXB0eSBwYXR0ZXJuIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogRW1wdHkgcGF0dGVybiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRleHQgPSAiIjsKKyAgICAgICAgcGF0dGVybiA9dGVtcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogRW1wdHkgdGV4dCBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IEVtcHR5IHRleHQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEVtcHR5IHRleHQgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBFbXB0eSB0ZXh0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgIAl9CisKKyAgICAgICAgdGV4dCArPSB0ZW1wOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGFyZ3VtZW50cyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgYXJndW1lbnRzIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgY2hhcml0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGFyZ3VtZW50cyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgYXJndW1lbnRzIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYnJlYWsgaXRlcmF0b3IgaXMgdmFsaWQgZm9yIG9wZW5pbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYnJlYWsgaXRlcmF0b3IgaXMgdmFsaWQgZm9yIG9wZW5pbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgYnJlYWtpdGVyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogQnJlYWsgaXRlcmF0b3IgaXMgdmFsaWQgZm9yIG9wZW5pbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbV9lbl91c18sIG51bGwpOworICAgICAgICAgICAgbG9nbG4oInBhdHRlcm46IiArIHJlc3VsdC5nZXRQYXR0ZXJuKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBCcmVhayBpdGVyYXRvciBpcyB2YWxpZCBmb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RPdmVybGFwKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoT1ZFUkxBUFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aEF0dHJpYnV0ZShPVkVSTEFQW2NvdW50XSwgZmFsc2UsIHRydWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IG92ZXJsYXAgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoTk9OT1ZFUkxBUFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKE5PTk9WRVJMQVBbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBub24gb3ZlcmxhcCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgMSkgeworICAgICAgICAgICAgU2VhcmNoRGF0YSBzZWFyY2ggPSAoT1ZFUkxBUFtjb3VudF0pOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gZ2V0Q29sbGF0b3Ioc2VhcmNoLmNvbGxhdG9yKTsKKyAgICAgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCAgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIG51bGwpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3Igb3BlbiBTdHJpbmdTZWFyY2giKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcodHJ1ZSk7CisgICAgICAgICAgICBpZiAoIXN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb3ZlcmxhcCBvcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlYXJjaCA9IE5PTk9WRVJMQVBbY291bnRdOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRPdmVybGFwcGluZyhmYWxzZSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIG9wdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE92ZXJsYXBDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChPVkVSTEFQQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoQXR0cmlidXRlKE9WRVJMQVBDQU5PTklDQUxbY291bnRdLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgb3ZlcmxhcCB0ZXN0IG51bWJlciAlZCIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChOT05PVkVSTEFQW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoTk9OT1ZFUkxBUENBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IG5vbiBvdmVybGFwIHRlc3QgbnVtYmVyICVkIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCAxKSB7CisgICAgICAgICAgICAgICAgIC8qIFVDaGFyICAgICAgIHRlbXBbMTI4XTsKKyAgICAgICAgICAgIGNvbnN0IFNlYXJjaERhdGEgKnNlYXJjaCA9ICYoT1ZFUkxBUENBTk9OSUNBTFtjb3VudF0pOworICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOyovCisgICAgICAgICAgICBTZWFyY2hEYXRhIHNlYXJjaCA9IE9WRVJMQVBDQU5PTklDQUxbY291bnRdOworCisgICAgICAgICAgICAvKnVfdW5lc2NhcGUoc2VhcmNoLnRleHQsIHRlbXAsIDEyOCk7CisgICAgICAgICAgICBVbmljb2RlU3RyaW5nIHRleHQ7CisgICAgICAgICAgICB0ZXh0LnNldFRvKHRlbXAsIHVfc3RybGVuKHRlbXApKTsKKyAgICAgICAgICAgIHVfdW5lc2NhcGUoc2VhcmNoLnBhdHRlcm4sIHRlbXAsIDEyOCk7CisgICAgICAgICAgICBVbmljb2RlU3RyaW5nIHBhdHRlcm47CisgICAgICAgICAgICBwYXR0ZXJuLnNldFRvKHRlbXAsIHVfc3RybGVuKHRlbXApKTsqLworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHNlYXJjaC5wYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ioc2VhcmNoLnRleHQpLCBjb2xsYXRvciwgbnVsbCk7CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcodHJ1ZSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkgIT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VhcmNoID0gTk9OT1ZFUkxBUENBTk9OSUNBTFtjb3VudF07CisgICAgICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSAhPSBmYWxzZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICVkIiArIGNvdW50KTsKKyAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybigpIHsKKyAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoUEFUVEVSTlswXS5zdHJlbmd0aCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChQQVRURVJOWzBdLnBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihQQVRURVJOWzBdLnRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisKKyAgICAgICAgLyppZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggJXMiLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKGdldEVDb2xsYXRpb25TdHJlbmd0aChVQ09MX1RFUlRJQVJZKSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIHN0cnNyY2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0qLworCisgICAgICAgIGlmIChzdHJzcmNoLmdldFBhdHRlcm4oKSAhPSBQQVRURVJOWzBdLnBhdHRlcm4pIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOWzBdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKFBBVFRFUk5bMV0ucGF0dGVybik7CisgICAgICAgIGlmIChQQVRURVJOWzFdLnBhdHRlcm4gIT0gc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4iKTsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgUEFUVEVSTlsxXSkpIHsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihQQVRURVJOWzBdLnBhdHRlcm4pOworICAgICAgICBpZiAoUEFUVEVSTlswXS5wYXR0ZXJuICE9IHN0cnNyY2guZ2V0UGF0dGVybigpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOWzBdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8qIGVub3Jtb3VzIHBhdHRlcm4gc2l6ZSB0byBzZWUgaWYgdGhpcyBjcmFzaGVzICovCisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gIiI7CisgICAgICAgIGZvciAoaW50IHRlbXBsZW5ndGggPSAwOyB0ZW1wbGVuZ3RoICE9IDUxMjsgdGVtcGxlbmd0aCArKykgeworICAgICAgICAgICAgcGF0dGVybiArPSAweDYxOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIHdpdGggc2l6ZSA1MTIiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybkNhbm9uaWNhbCgpIHsKKyAgICAgICAgLy9TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFBBVFRFUk5DQU5PTklDQUxbMF0udGV4dCk7CisgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKFBBVFRFUk5DQU5PTklDQUxbMF0uc3RyZW5ndGgpOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2goUEFUVEVSTkNBTk9OSUNBTFswXS5wYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoUEFUVEVSTkNBTk9OSUNBTFswXS50ZXh0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisKKyAgICAgICAgaWYgKFBBVFRFUk5DQU5PTklDQUxbMF0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICB9CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5DQU5PTklDQUxbMF0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihQQVRURVJOQ0FOT05JQ0FMWzFdLnBhdHRlcm4pOworICAgICAgICBpZiAoUEFUVEVSTkNBTk9OSUNBTFsxXS5wYXR0ZXJuICE9IHN0cnNyY2guZ2V0UGF0dGVybigpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5DQU5PTklDQUxbMV0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihQQVRURVJOQ0FOT05JQ0FMWzBdLnBhdHRlcm4pOworICAgICAgICBpZiAoUEFUVEVSTkNBTk9OSUNBTFswXS5wYXR0ZXJuICE9IHN0cnNyY2guZ2V0UGF0dGVybigpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5DQU5PTklDQUxbMF0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNldCgpIHsKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiZmlzaCBmaXNoIik7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInMiOworCisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dCwgbV9lbl91c18sIG51bGwpOworICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKHRydWUpOworICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRJbmRleCg5KTsKKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBpZiAoc3Ryc3JjaC5pc0Nhbm9uaWNhbCgpIHx8IHN0cnNyY2guaXNPdmVybGFwcGluZygpIHx8CisgICAgICAgICAgICBzdHJzcmNoLmdldEluZGV4KCkgIT0gMCB8fCBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMCB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciByZXNldHRpbmcgc3RyaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5wcmV2aW91cygpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gNyB8fCBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHJlc2V0dGluZyBzdHJpbmcgc2VhcmNoXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRNYXRjaCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE1BVENIW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNlYXJjaERhdGEgICAgIHNlYXJjaCA9IE1BVENIW2NvdW50XTsKKyAgICAgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChzZWFyY2gucGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHNlYXJjaC50ZXh0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2VuX3VzXywgbnVsbCk7CisKKyAgICAgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChzZWFyY2gub2Zmc2V0W3NpemVdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgc2l6ZSArKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN0cnNyY2guZmlyc3QoKSAhPSBzZWFyY2gub2Zmc2V0WzBdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgZmlyc3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmxhc3QoKSAhPSBzZWFyY2gub2Zmc2V0W3NpemUgLTFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgbGFzdCBtYXRjaCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgc2l6ZSkgeworICAgICAgICAgICAgICAgIGlmIChpbmRleCArIDIgPCBzaXplKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLmZvbGxvd2luZyhzZWFyY2gub2Zmc2V0W2luZGV4ICsgMl0gLSAxKSAhPSBzZWFyY2gub2Zmc2V0W2luZGV4ICsgMl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaCBhdCBpbmRleCAiICsgKHNlYXJjaC5vZmZzZXRbaW5kZXggKyAyXS0xKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA8IHNpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnNyY2gucHJlY2VkaW5nKHNlYXJjaC5vZmZzZXRbaW5kZXggKyAxXSArIHNlYXJjaC5zaXplW2luZGV4ICsgMV0gKyAxKSAhPSBzZWFyY2gub2Zmc2V0W2luZGV4ICsgMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIHByZWNlZWRpbmcgbWF0Y2ggYXQgaW5kZXggIiArIChzZWFyY2gub2Zmc2V0W2luZGV4ICsgMV0gKyAxKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggKz0gMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN0cnNyY2guZm9sbG93aW5nKHNlYXJjaC50ZXh0Lmxlbmd0aCgpKSAhPSBTZWFyY2hJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGV4cGVjdGluZyBvdXQgb2YgYm91bmRzIG1hdGNoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5wcmVjZWRpbmcoMCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgb3V0IG9mIGJvdW5kcyBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJlbmd0aCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKFNUUkVOR1RIW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAzKSBjb3VudCArKzsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoU1RSRU5HVEhbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyZW5ndGhDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVFJFTkdUSENBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gMykgY291bnQgKys7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKFNUUkVOR1RIQ0FOT05JQ0FMW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VwcGxlbWVudGFyeSgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKFNVUFBMRU1FTlRBUllbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChTVVBQTEVNRU5UQVJZW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnlDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVVBQTEVNRU5UQVJZQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoU1VQUExFTUVOVEFSWUNBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRleHQoKSB7CisgICAgICAgIFNlYXJjaERhdGEgVEVYVFtdID0geworICAgICAgICAgICAgbmV3IFNlYXJjaERhdGEoInRoZSBmb3h5IGJyb3duIGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs0LCAxNSwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0aGUgcXVpY2sgYnJvd24gZm94IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W117MH0pCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVFswXS50ZXh0KTsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKFRFWFRbMF0ucGF0dGVybiwgdCwgbV9lbl91c18sIG51bGwpOworCisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBURVhUWzBdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihURVhUWzFdLnRleHQpOworICAgICAgICBzdHJzcmNoLnNldFRhcmdldCh0KTsKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgVEVYVFsxXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUZXh0Q2Fub25pY2FsKCkgeworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0ID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFRFWFRDQU5PTklDQUxbMF0udGV4dCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChURVhUQ0FOT05JQ0FMWzBdLnBhdHRlcm4sIHQsIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICB9CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFRFWFRDQU5PTklDQUxbMF0pKSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVENBTk9OSUNBTFsxXS50ZXh0KTsKKyAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQodCk7CisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgVEVYVENBTk9OSUNBTFsxXSkpIHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihURVhUQ0FOT05JQ0FMWzBdLnRleHQpOworICAgICAgICBzdHJzcmNoLnNldFRhcmdldCh0KTsKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBURVhUQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaCIpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VmFyaWFibGUoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIG1fZW5fdXNfLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgd2hpbGUgKFZBUklBQkxFW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ2YXJpYWJsZSIgKyBjb3VudCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKFZBUklBQkxFW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIG1fZW5fdXNfLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBtX2VuX3VzXy5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIHdoaWxlIChWQVJJQUJMRVtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBsb2dsbigidmFyaWFibGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoVkFSSUFCTEVbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgbV9lbl91c18uc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ViQ2xhc3MoKQorICAgIHsKKyAgICAgICAgY2xhc3MgVGVzdFNlYXJjaCBleHRlbmRzIFNlYXJjaEl0ZXJhdG9yCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuOworICAgICAgICAgICAgU3RyaW5nIHRleHQ7CisKKyAgICAgICAgICAgIFRlc3RTZWFyY2goU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBCcmVha0l0ZXJhdG9yIGJyZWFrZXIsCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN1cGVyKHRhcmdldCwgYnJlYWtlcik7CisgICAgICAgICAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIHdoaWxlICh0YXJnZXRUZXh0LmdldEluZGV4KCkgIT0gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGFyZ2V0VGV4dC5jdXJyZW50KCkpOworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dCA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBoYW5kbGVOZXh0KGludCBzdGFydCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF0Y2ggPSB0ZXh0LmluZGV4T2YocGF0dGVybiwgc3RhcnQpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5sYXN0KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1hdGNoKTsKKyAgICAgICAgICAgICAgICBzZXRNYXRjaExlbmd0aChwYXR0ZXJuLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZVByZXZpb3VzKGludCBzdGFydCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF0Y2ggPSB0ZXh0Lmxhc3RJbmRleE9mKHBhdHRlcm4sIHN0YXJ0IC0gMSk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtYXRjaCk7CisgICAgICAgICAgICAgICAgc2V0TWF0Y2hMZW5ndGgocGF0dGVybi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPCAwIHx8IHJlc3VsdCA+PSB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGVzdFNlYXJjaCBzZWFyY2ggPSBuZXcgVGVzdFNlYXJjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoImFiYyBhYmNkIGFiYyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsICJhYmMiKTsKKyAgICAgICAgaW50IGV4cGVjdGVkW10gPSB7MCwgNCwgOX07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoc2VhcmNoLm5leHQoKSAhPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG5leHQgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZWFyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSBzZWFyY2gucGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG5leHQgbWF0Y2ggbGVuZ3RoIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlYXJjaC5uZXh0KCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNob3VsZCBoYXZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IGV4cGVjdGVkLmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgaWYgKHNlYXJjaC5wcmV2aW91cygpICE9IGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgbmV4dCBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNlYXJjaC5nZXRNYXRjaExlbmd0aCgpICE9IHNlYXJjaC5wYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgbmV4dCBtYXRjaCBsZW5ndGgiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc2VhcmNoLnByZXZpb3VzKCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNob3VsZCBoYXZlIHJlYWNoZWQgdGhlIHN0YXJ0IG9mIHRoZSBpdGVyYXRpb24iKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUyMjM5N2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgdGhlIGludGVybmF0aW9uYWwgc2VhcmNoIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlY3VyaXR5LnBvbGljeSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWN1cml0eS5wb2xpY3kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5MmI2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWN1cml0eS5wb2xpY3kKQEAgLTAsMCArMSw0OCBAQAorLy8jCisgLy8jKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8jKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorLy8jKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorLy8jKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8jKiBUaGlzIGlzIHRoZSBhbnQgYnVpbGQgZmlsZSBmb3IgSUNVNEouICBTZWUgcmVhZG1lLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisvLyMqCisvLyBwb2xpY2llcyBuZWVkZWQgdG8gcnVuIHRlc3RzCitncmFudCAvLyBjb2RlYmFzZSAiZmlsZToke3VzZXIuZGlyfS9pY3U0anRlc3RzLmphciIKK3sKKwkvLyB0ZW1wb3JhcnkgZm9yIGRlYnVnZ2luZworICAgICAgICAvLyBwZXJtaXNzaW9uIGphdmEubGFuZy5SdW50aW1lUGVybWlzc2lvbiAiZ2V0UHJvdGVjdGlvbkRvbWFpbiI7CisKKwkvLyBpYm0gMTQxIG9uIGlibSB4cCBjYW4ndCB1c2UgcmVmbGVjdGlvbgorCXBlcm1pc3Npb24gamF2YS5sYW5nLlJ1bnRpbWVQZXJtaXNzaW9uICJhY2Nlc3NEZWNsYXJlZE1lbWJlcnMiOworCisJLy8gbmVlZGVkIGZvciBMb2NhbGUuc2V0RGVmYXVsdCwgb25seSB1c2VkIGluIHRlc3RzIGFuZCBkZW1vcworCXBlcm1pc3Npb24gamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbiAidXNlci5sYW5ndWFnZSIsICJ3cml0ZSI7CisKKwkvLyBuZWVkZWQgZm9yIFRlc3RVdGlscworCXBlcm1pc3Npb24gamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbiAiSUNVRGF0YVBhdGgiLCAicmVhZCI7CisJcGVybWlzc2lvbiBqYXZhLnV0aWwuUHJvcGVydHlQZXJtaXNzaW9uICJ1c2VyLmRpciIsICJyZWFkIjsKKyAgICBwZXJtaXNzaW9uIGphdmEudXRpbC5Qcm9wZXJ0eVBlcm1pc3Npb24gIlVfUkJCSURFQlVHIiwgInJlYWQiOworICAgIHBlcm1pc3Npb24gamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbiAiR0VORVJBVEVfVEVTVF9EQVRBIiwgInJlYWQiOworCQorICAgIC8vIHRpbWUgem9uZSB0ZXN0cworCXBlcm1pc3Npb24gamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbiAidXNlci50aW1lem9uZSIsICJyZWFkIjsKKyAgICAKKyAgICAvL2ZvciBjaGFyc2V0cworICAgIHBlcm1pc3Npb24gamF2YS5sYW5nLlJ1bnRpbWVQZXJtaXNzaW9uICJjaGFyc2V0UHJvdmlkZXIiLCAicmVhZCI7CisKK307CisKKy8vIHRoZXJlIG11c3QgYmUgYSB3YXkgZm9yIGNvZGUgaW4gb25lIGphciBmaWxlIHRvIGNhbGwgY29kZSBpbiBhbm90aGVyIGphcgorLy8gZmlsZSBhbmQgZ2l2ZSB0aGUgY2FsbGVkIGNvZGUgcGVybWlzc2lvbiB0byByZWFkIHRoZSBjYWxsaW5nIGNvZGUncworLy8gamFyLiAgdGhleSdyZSBpbiBkaWZmZXJlbnQgcHJvdGVjdGlvbiBkb21haW5zIGRlc3BpdGUgYmVpbmcgb24gdGhlCisvLyBzYW1lIGNsYXNzcGF0aCBhbmQgYmVpbmcgbG9hZGVkIGJ5IHRoZSBzYW1lIGNsYXNzIGxvYWRlciwgc28gdGhlIGNsYXNzCisvLyBsb2FkZXIgZG9lc24ndCBkaXNhbWJpZ3VhdGUgd2hpY2ggcHJvdGVjdGlvbiBkb21haW4gd2UncmUgdXNpbmcuIGl0J3MKKy8vIG5vdCBlYXN5IHRvIGZpZ3VyZSBvdXQgdGhlIHNlY3VyaXR5IGRvY3MsIHNpZ2guCisvLworLy8gdGhpcyBpcyBzbyBJQ1VEYXRhIChpbiBpY3U0ai5qYXIpLCBjYWxsZWQgZnJvbSB0ZXN0IGNvZGUgKGluIGljdTRqdGVzdHMuamFyKQorLy8gY2FuIHJlYWQgdGVzdCByZXNvdXJjZSBmaWxlcyAoaW4gaWN1NGp0ZXN0cy5qYXIiCisvLworZ3JhbnQgY29kZWJhc2UgImZpbGU6JHt1c2VyLmRpcn0vaWN1NGouamFyIgoreworCXBlcm1pc3Npb24gamF2YS5pby5GaWxlUGVybWlzc2lvbiAiJHsvfSR7dXNlci5kaXJ9JHsvfWljdTRqdGVzdHMuamFyIiwgInJlYWQiOworCXBlcm1pc3Npb24gamF2YS5pby5GaWxlUGVybWlzc2lvbiAiJHsvfSR7dXNlci5kaXJ9JHsvfWljdTRqLWNoYXJzZXRzLmphciIsICJyZWFkIjsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9DYWxlbmRhclRlc3RzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL0NhbGVuZGFyVGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjY1MTUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9DYWxlbmRhclRlc3RzLmphdmEKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhclRlc3RzCit7CisgICAgc3RhdGljIGNsYXNzIENhbGVuZGFySGFuZGxlciBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgcHN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IENhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UocHN0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsX2EgPSAoQ2FsZW5kYXIpIGE7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxfYiA9IChDYWxlbmRhcikgYjsKKyAgICAgICAgICAgIGxvbmcgbm93ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbF9hLnNldFRpbWVJbk1pbGxpcyhub3cpOworICAgICAgICAgICAgY2FsX2Eucm9sbChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbF9iLnNldFRpbWVJbk1pbGxpcyhub3cpOworICAgICAgICAgICAgY2FsX2Iucm9sbChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxfYS5nZXRUaW1lKCkuZXF1YWxzKGNhbF9hLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQnVkZGhpc3RDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIHRzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBc2lhL0Jhbmdrb2siKTsKKyAgICAgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgQnVkZGhpc3RDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKHRzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoaW5lc2VDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGNzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBc2lhL1NoYW5naGFpIik7CisgICAgICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgQ2hpbmVzZUNhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IENoaW5lc2VDYWxlbmRhcihjc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ29wdGljQ2FsZW5kYXJIYW5kbGVyIGV4dGVuZHMgQ2FsZW5kYXJIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBUaW1lWm9uZSBhc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRXVyb3BlL0F0aGVucyIpOworICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgQ29wdGljQ2FsZW5kYXJbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBuZXcgQ29wdGljQ2FsZW5kYXIoYXN0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgRXRoaW9waWNDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGFzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBZnJpY2EvQWRkaXNfQWJhYmEiKTsKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgRXRoaW9waWNDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKGFzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7IAorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEdyZWdvcmlhbkNhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgcHN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHBzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7IAorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEhlYnJld0NhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUganN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvSmVydXNhbGVtIik7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWxlbmRhcnNbXSA9IG5ldyBIZWJyZXdDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBIZWJyZXdDYWxlbmRhcihqc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgSXNsYW1pY0NhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgY3N0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFmcmljYS9DYWlybyIpOworICAgICAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IElzbGFtaWNDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoY3N0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgSmFwYW5lc2VDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGpzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IEphcGFuZXNlQ2FsZW5kYXJbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihqc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICAvL25vdGhpbmcgbmVlZGVkIHlldC4uLgorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ29tcGF0aWJpbGl0eVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ29tcGF0aWJpbGl0eVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2M4NDE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Db21wYXRpYmlsaXR5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMjQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEubmV0LkphclVSTENvbm5lY3Rpb247CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5qYXIuSmFyRW50cnk7CitpbXBvcnQgamF2YS51dGlsLmphci5KYXJGaWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisvL2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuU2VyaWFsaXphYmxlVGVzdDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIENvbXBhdGliaWxpdHlUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgY2xhc3MgRm9sZGVyVGFyZ2V0IGV4dGVuZHMgVGFyZ2V0CisgICAgeworICAgICAgICBwcml2YXRlIFRhcmdldCBoZWFkID0gbmV3IFRhcmdldChudWxsKTsKKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgdGFpbCA9IGhlYWQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgRm9sZGVyVGFyZ2V0KFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRkKFN0cmluZyBjbGFzc05hbWUsIElucHV0U3RyZWFtIGlzKQorICAgICAgICB7CisgICAgICAgICAgICBIYW5kbGVyVGFyZ2V0IG5ld1RhcmdldCA9IG5ldyBIYW5kbGVyVGFyZ2V0KGNsYXNzTmFtZSwgaXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0YWlsLnNldE5leHQobmV3VGFyZ2V0KTsKKyAgICAgICAgICAgIHRhaWwgPSBuZXdUYXJnZXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbCArPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKFRhcmdldCB0YXJnZXQgPSBoZWFkLmdldE5leHQoKTsgdGFyZ2V0ICE9IG51bGw7IHRhcmdldCA9IHRhcmdldC5nZXROZXh0KCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnJ1bigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwYXJhbXMuaW5kZW50TGV2ZWwgLT0gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBIYW5kbGVyVGFyZ2V0IGV4dGVuZHMgVGFyZ2V0CisgICAgeworICAgICAgICBwcm90ZWN0ZWQgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyIGhhbmRsZXIgPSBudWxsOworICAgICAgICBwcm90ZWN0ZWQgSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgcHVibGljIEhhbmRsZXJUYXJnZXQoU3RyaW5nIG5hbWUsIElucHV0U3RyZWFtIGlzKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgICAgIGlucHV0U3RyZWFtID0gaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgaGFuZGxlciA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0SGFuZGxlcihuYW1lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXIgIT0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBhcmFtcy5pbkRvY01vZGUoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZXhlY3V0ZQorICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyYW1zLnN0YWNrLmluY2x1ZGVkKSB7CisgICAgICAgICAgICAgICAgKytwYXJhbXMuaW52YWxpZENvdW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMudGVzdENvdW50ICs9IDE7CisgICAgCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAgICAgICAgICAgICBPYmplY3QgaW5wdXRPYmplY3RzW10gPSAoT2JqZWN0W10pIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRlc3RPYmplY3RzW10gPSBoYW5kbGVyLmdldFRlc3RPYmplY3RzKCk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGluLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0U3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBhZGQgZXF1YWxpdHkgdGVzdC4uLgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY29tbWVudGVkIG91dCBjb2RlIGJlbG93IGRvZXMgdGhhdCwKKyAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNvbWUgdGVzdCBvYmplY3RzIGRvbid0IGRlZmluZSBhbiBlcXVhbHMoKSBtZXRob2QsCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgZGVmYXVsdCBtZXRob2QgaXMgdGhlIHNhbWUgYXMgdGhlICI9PSIgb3BlcmF0b3IuLi4KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0T2JqZWN0cy5sZW5ndGg7IGkgKz0gMSkgeworICAgIC8vICAgICAgICAgICAgICAgICAgICBpZiAoISBpbnB1dE9iamVjdHNbaV0uZXF1YWxzKHRlc3RPYmplY3RzW2ldKSkgeworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIklucHV0IG9iamVjdCAiICsgaSArICIgZmFpbGVkIGVxdWFsaXR5IHRlc3QuIik7CisgICAgLy8gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEgaGFuZGxlci5oYXNTYW1lQmVoYXZpb3IoaW5wdXRPYmplY3RzW2ldLCB0ZXN0T2JqZWN0c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJubG4oIklucHV0IG9iamVjdCAiICsgaSArICIgZmFpbGVkIGJlaGF2aW9yIHRlc3QuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgZGF0YS4gIitlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBUYXJnZXQgZ2V0RmlsZVRhcmdldHMoVVJMIGZpbGVVUkwpCisgICAgeworICAgICAgICBGaWxlIHRvcERpciA9IG5ldyBGaWxlKGZpbGVVUkwuZ2V0UGF0aCgpKTsKKyAgICAgICAgRmlsZSBkYXRhRGlyc1tdID0gdG9wRGlyLmxpc3RGaWxlcygpOworICAgICAgICBGb2xkZXJUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGQgPSAwOyBkIDwgZGF0YURpcnMubGVuZ3RoOyBkICs9IDEpIHsKKyAgICAgICAgICAgIEZpbGUgZGF0YURpciA9IGRhdGFEaXJzW2RdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZGF0YURpci5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgRm9sZGVyVGFyZ2V0IG5ld1RhcmdldCA9IG5ldyBGb2xkZXJUYXJnZXQoZGF0YURpci5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgIEZpbGUgZmlsZXNbXSA9IGRhdGFEaXIubGlzdEZpbGVzKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbmV3VGFyZ2V0LnNldE5leHQodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSBuZXdUYXJnZXQ7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBGaWxlIGZpbGUgPSBmaWxlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZmlsZS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBpeCA9IGZpbGVuYW1lLmluZGV4T2YoIi5kYXQiKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChpeCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXM7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGQoY2xhc3NOYW1lLCBpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFRhcmdldCBnZXRKYXJUYXJnZXRzKFVSTCBqYXJVUkwpCisgICAgeworICAgICAgICBTdHJpbmcgcHJlZml4ID0gamFyVVJMLmdldFBhdGgoKTsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnREaXIgPSBudWxsOworICAgICAgICBpbnQgaXggPSBwcmVmaXguaW5kZXhPZigiIS8iKTsKKyAgICAgICAgSmFyRmlsZSBqYXJGaWxlOworICAgICAgICBGb2xkZXJUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChpeCA+PSAwKSB7CisgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXguc3Vic3RyaW5nKGl4ICsgMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBKYXJVUkxDb25uZWN0aW9uIGNvbm4gPSAoSmFyVVJMQ29ubmVjdGlvbikgamFyVVJMLm9wZW5Db25uZWN0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGphckZpbGUgPSBjb25uLmdldEphckZpbGUoKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gZW50cmllcyA9IGphckZpbGUuZW50cmllcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIEphckVudHJ5IGVudHJ5ID0gKEphckVudHJ5KWVudHJpZXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGVudHJ5LmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKHByZWZpeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoISBlbnRyeS5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHggPSBuYW1lLmxhc3RJbmRleE9mKCIvIik7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGlyTmFtZSAgPSBuYW1lLnN1YnN0cmluZygxLCBkeCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBuYW1lLnN1YnN0cmluZyhkeCArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISBkaXJOYW1lLmVxdWFscyhjdXJyZW50RGlyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREaXIgPSBkaXJOYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbGRlclRhcmdldCBuZXdUYXJnZXQgPSBuZXcgRm9sZGVyVGFyZ2V0KGN1cnJlbnREaXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RhcmdldC5zZXROZXh0KHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3VGFyZ2V0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeHggPSBmaWxlbmFtZS5pbmRleE9mKCIuZGF0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4eCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gZmlsZW5hbWUuc3Vic3RyaW5nKDAsIHh4KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGQoY2xhc3NOYW1lLCBqYXJGaWxlLmdldElucHV0U3RyZWFtKGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiamFyIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpCisgICAgeworICAgICAgICBVUkwgZGF0YVVSTCA9IGdldENsYXNzKCkuZ2V0UmVzb3VyY2UoImRhdGEiKTsKKyAgICAgICAgU3RyaW5nIHByb3RvY29sID0gZGF0YVVSTC5nZXRQcm90b2NvbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHByb3RvY29sLmVxdWFscygiamFyIikpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRKYXJUYXJnZXRzKGRhdGFVUkwpOworICAgICAgICB9IGVsc2UgaWYgKHByb3RvY29sLmVxdWFscygiZmlsZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RmlsZVRhcmdldHMoZGF0YVVSTCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRG9uJ3Qga25vdyBob3cgdG8gdGVzdCAiICsgZGF0YVVSTC5nZXRQYXRoKCkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgQ29tcGF0aWJpbGl0eVRlc3QgdGVzdCA9IG5ldyBDb21wYXRpYmlsaXR5VGVzdCgpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Db3ZlcmFnZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ292ZXJhZ2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY5NGE1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ292ZXJhZ2VUZXN0LmphdmEKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkZpZWxkOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1vZGlmaWVyOworaW1wb3J0IGphdmEubmV0LlVSTDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVJMSGFuZGxlcjsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIENvdmVyYWdlVGVzdCBleHRlbmRzIENvbXBhdGliaWxpdHlUZXN0IGltcGxlbWVudHMgVVJMSGFuZGxlci5VUkxWaXNpdG9yCit7CisKKyAgICBwcml2YXRlIHN0YXRpYyBDbGFzcyBzZXJpYWxpemFibGU7CisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkgeworICAgICAgICB0cnkgeyAgICAKKyAgICAgICAgICAgIHNlcmlhbGl6YWJsZSA9IENsYXNzLmZvck5hbWUoImphdmEuaW8uU2VyaWFsaXphYmxlIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyB3ZSdyZSBpbiBkZWVwIHRyb3VibGUuLi4KKyAgICAgICAgICAgIHdhcm5sbigiV29vcHMhIENhbid0IGdldCBjbGFzcyBpbmZvIGZvciBTZXJpYWxpemFibGUuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFRhcmdldCBoZWFkID0gbmV3IFRhcmdldChudWxsKTsKKyAgICBwcml2YXRlIFRhcmdldCB0YWlsID0gaGVhZDsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBwYXRoOworICAgIAorICAgIHB1YmxpYyBDb3ZlcmFnZVRlc3QoKQorICAgIHsKKyAgICAgICAgdGhpcyhudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvdmVyYWdlVGVzdChTdHJpbmcgcGF0aCkKKyAgICB7CisgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CisgICAgICAgIAorICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICBGaWxlIGRpciA9IG5ldyBGaWxlKHBhdGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWRpci5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIGRpci5ta2RpcnMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVGaWxlKFN0cmluZyBjbGFzc05hbWUsIGJ5dGUgYnl0ZXNbXSkKKyAgICB7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKHBhdGggKyBGaWxlLnNlcGFyYXRvciArIGNsYXNzTmFtZSArICIuZGF0Iik7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gc3RyZWFtOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cmVhbSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzdHJlYW0ud3JpdGUoYnl0ZXMpOworICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgLSBjYW4ndCB3cml0ZSBmaWxlISIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBhZGQoU3RyaW5nIGNsYXNzTmFtZSwgaW50IGNsYXNzTW9kaWZpZXJzLCBieXRlIGJ5dGVzW10pCisgICAgeworICAgICAgICBDb3ZlcmFnZVRhcmdldCBuZXdUYXJnZXQgPSBuZXcgQ292ZXJhZ2VUYXJnZXQoY2xhc3NOYW1lLCBjbGFzc01vZGlmaWVycywgYnl0ZXMpOworICAgICAgICAKKyAgICAgICAgdGFpbC5zZXROZXh0KG5ld1RhcmdldCk7CisgICAgICAgIHRhaWwgPSBuZXdUYXJnZXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjbGFzcyBDb3ZlcmFnZVRhcmdldCBleHRlbmRzIEhhbmRsZXJUYXJnZXQKKyAgICB7CisgICAgICAgIHByaXZhdGUgYnl0ZSBieXRlc1tdOworICAgICAgICBwcml2YXRlIGludCBtb2RpZmllcnM7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ292ZXJhZ2VUYXJnZXQoU3RyaW5nIGNsYXNzTmFtZSwgaW50IGNsYXNzTW9kaWZpZXJzLCBieXRlIGJ5dGVzW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKGNsYXNzTmFtZSwgYnl0ZXMgPT0gbnVsbD8gbnVsbCA6IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0aGlzLmJ5dGVzID0gYnl0ZXM7CisgICAgICAgICAgICBtb2RpZmllcnMgPSBjbGFzc01vZGlmaWVyczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gdmFsaWRhdGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIudmFsaWRhdGUoKSB8fCBNb2RpZmllci5pc0Fic3RyYWN0KG1vZGlmaWVycyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpbnB1dFN0cmVhbSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFyYW1zLnRlc3RDb3VudCArPSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjID0gQ2xhc3MuZm9yTmFtZShuYW1lKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBGaWVsZCB1aWQgPSBjLmdldERlY2xhcmVkRmllbGQoInNlcmlhbFZlcnNpb25VSUQiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm8gc2VyaWFsVmVyc2lvblVJRCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZShuYW1lLCBieXRlcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHN1cGVyLmV4ZWN1dGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB2aXNpdChTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgaWYoc2VyaWFsaXphYmxlPT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgaXggPSBzdHIubGFzdEluZGV4T2YoIi5jbGFzcyIpOworICAgICAgICAKKyAgICAgICAgaWYgKGl4ID49IDApIHsKKyAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSAiY29tLmlibS5pY3UiICsgc3RyLnN1YnN0cmluZygwLCBpeCkucmVwbGFjZSgnLycsICcuJyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFNraXAgdGhpbmdzIGluIGNvbS5pYm0uaWN1LmRldjsgdGhleSdyZSBub3QgcmVsZXZhbnQuCisgICAgICAgICAgICBpZiAoY2xhc3NOYW1lLnN0YXJ0c1dpdGgoImNvbS5pYm0uaWN1LmRldi4iKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjID0gQ2xhc3MuZm9yTmFtZShjbGFzc05hbWUpOworICAgICAgICAgICAgICAgIGludCAgIG0gPSBjLmdldE1vZGlmaWVycygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzZXJpYWxpemFibGUuaXNBc3NpZ25hYmxlRnJvbShjKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoTW9kaWZpZXIuaXNQdWJsaWMobSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlciBoYW5kbGVyID0gU2VyaWFsaXphYmxlVGVzdC5nZXRIYW5kbGVyKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qgb2JqZWN0c091dFtdID0gaGFuZGxlci5nZXRUZXN0T2JqZWN0cygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBvYmplY3RzSW5bXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHBhc3NlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJ5dGVPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnl0ZU91dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KG9iamVjdHNPdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZU91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJFcnJvciB3cml0aW5nIHRlc3Qgb2JqZWN0czogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkKGNsYXNzTmFtZSwgbSwgYnl0ZU91dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkKGNsYXNzTmFtZSwgbSwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiY292ZXJhZ2Ugb2YgIiArIGNsYXNzTmFtZSArICI6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oImNvdmVyYWdlIG9mICIgKyBjbGFzc05hbWUgKyAiOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpCisgICAgeworICAgICAgICAKKyAgICAgICAgaWYgKFN5c3RlbS5nZXRTZWN1cml0eU1hbmFnZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBUaGlzIHRlc3Qgd29uJ3QgcnVuIHVuZGVyIGEgc2VjdXJpdHkgbWFuYWdlcgorICAgICAgICAgICAgcmV0dXJuIG5ldyBDb3ZlcmFnZVRhcmdldCgiU2tpcHBlZCBEdWUgVG8gU2VjdXJpdHkgTWFuYWdlciIsIE1vZGlmaWVyLkFCU1RSQUNULCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYoc2VyaWFsaXphYmxlPT1udWxsKXsKKyAgICAgICAgICAgIGluaXQoKTsKKyAgICAgICAgfQorICAgICAgICBVUkwgdXJsID0gZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZSgiL2NvbS9pYm0vaWN1Iik7CisgICAgICAgIFVSTEhhbmRsZXIgaGFuZGxlciAgPSBVUkxIYW5kbGVyLmdldCh1cmwpOworICAgICAgICAKKyAgICAgICAgaGFuZGxlci5ndWlkZSh0aGlzLCB0cnVlLCBmYWxzZSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGVhZC5nZXROZXh0KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBDb3ZlcmFnZVRlc3QgdGVzdCA9IG5ldyBDb3ZlcmFnZVRlc3QoKTsKKyAgICAgICAgCisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRXhjZXB0aW9uVGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRXhjZXB0aW9uVGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjJjODQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9FeGNlcHRpb25UZXN0cy5qYXZhCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnZhbGlkRm9ybWF0RXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIEV4Y2VwdGlvblRlc3RzCit7CisgICAgc3RhdGljIGFic3RyYWN0IGNsYXNzIEV4Y2VwdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIGFic3RyYWN0IHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgRXhjZXB0aW9uIGVhID0gKEV4Y2VwdGlvbikgYTsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlYiA9IChFeGNlcHRpb24pIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBlYS50b1N0cmluZygpLmVxdWFscyhlYi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbkhhbmRsZXIgZXh0ZW5kcyBFeGNlcHRpb25IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIGV4Y2VwdGlvbnNbXSA9IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uc1tpXSA9IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKGxvY2FsZXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBleGNlcHRpb25zOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb25IYW5kbGVyIGV4dGVuZHMgRXhjZXB0aW9uSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gIlRoaXMgaXMgYSB2ZXJ5IG9kZCBsaXR0bGUgc2V0IG9mIHJ1bGVzLCBqdXN0IGZvciB0ZXN0aW5nLCB5b3Uga25vdy4uLiI7CisgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXhjZXB0aW9uc1tdID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnNbaV0gPSBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKGxvY2FsZXNbaV0udG9TdHJpbmcoKSwgaSwgcnVsZXMsIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uSGFuZGxlciBleHRlbmRzIEV4Y2VwdGlvbkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBleGNlcHRpb25zW10gPSBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uc1tpXSA9IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24obG9jYWxlc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbnM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIEludmFsaWRGb3JtYXRFeGNlcHRpb25IYW5kbGVyIGV4dGVuZHMgRXhjZXB0aW9uSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbiBleGNlcHRpb25zW10gPSBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnNbaV0gPSBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbihsb2NhbGVzW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uczsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRm9ybWF0VGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRm9ybWF0VGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmQ1MmNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Gb3JtYXRUZXN0cy5qYXZhCkBAIC0wLDAgKzEsMTM5OSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIEZvcm1hdFRlc3RzCit7CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE51bWJlckZvcm1hdEhhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXRzW10gPSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdF9hID0gKE51bWJlckZvcm1hdCkgYTsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXRfYiA9IChOdW1iZXJGb3JtYXQpIGI7CisgICAgICAgICAgICBkb3VibGUgbnVtYmVyID0gMTIzNC41NjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdF9hLmZvcm1hdChudW1iZXIpLmVxdWFscyhmb3JtYXRfYi5mb3JtYXQobnVtYmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBEZWNpbWFsRm9ybWF0SGFuZGxlciBleHRlbmRzIE51bWJlckZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0c1tdID0gbmV3IERlY2ltYWxGb3JtYXRbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzW2ldID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIyIsIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhsb2NhbGVzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUnVsZUJhc2VkTnVtYmVyRm9ybWF0SGFuZGxlciBleHRlbmRzIE51bWJlckZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIC8vIGRlZmF1bHQgcnVsZXMsIGZyb20gcm9vdC50eHQKKyAgICAgICAgU3RyaW5nIHh4X1NwZWxsb3V0UnVsZXMgPSAiPSMsIyMwLiMjIyMjIz07XG4iOworICAgICAgICBTdHJpbmcgeHhfT3JkaW5hbFJ1bGVzID0gIj0jLCMjMD07XG4iOworICAgICAgICBTdHJpbmcgeHhfRHVyYXRpb25SdWxlcyA9ICI9IywjIzA9O1xuIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBqYV9zcGVsbG91dFJ1bGVzID0gCisgICAgICAgICAgICAiJWZpbmFuY2lhbDpcbiIgKworICAgICAgICAgICAgICAgICJcdTk2ZjY7IFx1NThmMTsgXHU1ZjEwOyBcdTUzYzI7IFx1NTZkYjsgXHU0ZjBkOyBcdTUxNmQ7IFx1NGUwMzsgXHU1MTZiOyBcdTRlNWQ7XG4iICsKKyAgICAgICAgICAgICAgICAiXHU2MmZlWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogPDxcdTYyZmVbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogPDxcdTc2N2VbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IDw8XHU1MzQzWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAsMDAwLDAwMDogPDxcdTUxMDRbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1NTE0Nls+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIgKworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgIiV0cmFkaXRpb25hbDpcbiIgKworICAgICAgICAgICAgICAgICJcdTk2ZjY7IFx1NGUwMDsgXHU0ZThjOyBcdTRlMDk7IFx1NTZkYjsgXHU0ZTk0OyBcdTUxNmQ7IFx1NGUwMzsgXHU1MTZiOyBcdTRlNWQ7XG4iICsKKyAgICAgICAgICAgICAgICAiXHU1MzQxWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogPDxcdTUzNDFbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogPDxcdTc2N2VbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IDw8XHU1MzQzWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAsMDAwLDAwMDogPDxcdTUxMDRbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1NTE0Nls+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGVuX1NwZWxsb3V0UnVsZXMgPSAKKyAgICAgICAgICAgIC8vIFRoaXMgcnVsZSBzZXQgc2hvd3MgdGhlIG5vcm1hbCBzaW1wbGUgZm9ybWF0dGluZyBydWxlcyBmb3IgRW5nbGlzaAorICAgICAgICAgICAgIiVzaW1wbGlmaWVkOlxuIiArCisgICAgICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUgbnVtYmVyIHJ1bGUuICBUaGlzIHJ1bGUgaXMgdXNlZCB0byBmb3JtYXQgbmVnYXRpdmUKKyAgICAgICAgICAgICAgICAgICAvLyBudW1iZXJzLiAgVGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBudW1iZXIncyBhYnNvbHV0ZQorICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGlzIHBsYWNlZCB3aGVyZSB0aGUgPj4gaXMuCisgICAgICAgICAgICAgICAgIi14OiBtaW51cyA+PjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGZhY3Rpb24gcnVsZS4gIFRoaXMgcnVsZSBpcyB1c2VkIGZvciBmb3JtYXR0aW5nIG51bWJlcnMKKyAgICAgICAgICAgICAgICAgICAvLyB3aXRoIGZyYWN0aW9uYWwgcGFydHMuICBUaGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCBpcyBzdWJzdGl0dXRlZCBmb3IgdGhlIDw8LCBhbmQKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydAorICAgICAgICAgICAgICAgICAgIC8vIChvbmUgZGlnaXQgYXQgYSB0aW1lLCBlLmcuLCAwLjEyMyBpcyAiemVybyBwb2ludCBvbmUgdHdvCisgICAgICAgICAgICAgICAgICAgLy8gdGhyZWUiKSByZXBsYWNlcyB0aGUgPj4uCisgICAgICAgICAgICAgICAgIngueDogPDwgcG9pbnQgPj47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgcnVsZXMgZm9yIHRoZSB2YWx1ZXMgZnJvbSAwIHRvIDE5IGFyZSBzaW1wbHkgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIHRob3NlIG51bWJlcnMKKyAgICAgICAgICAgICAgICAiemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIgKworICAgICAgICAgICAgICAgICJ0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47XG4iICsKKyAgICAgICAgICAgICAgICAgICAgInNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGF0IDIwLCB3ZSB1c2UgdGhlID4+IHRvIG1hcmsgdGhlIHBvc2l0aW9uIHdoZXJlCisgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBudW1iZXIncyBvbmVzIGRpZ2l0LiAgVGh1cywKKyAgICAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IG5lZWQgYSBuZXcgcnVsZSBhdCBldmVyeSBtdWx0aXBsZSBvZiAxMC4gIFRleHQgaW4KKyAgICAgICAgICAgICAgICAgICAvLyBiYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBhbgorICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gbXVsdGlwbGUgb2YgMTAuCisgICAgICAgICAgICAgICAgIjIwOiB0d2VudHlbLT4+XTtcbiIgKworICAgICAgICAgICAgICAgICIzMDogdGhpcnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNDA6IGZvcnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IGZpZnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNjA6IHNpeHR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNzA6IHNldmVudHlbLT4+XTtcbiIgKworICAgICAgICAgICAgICAgICI4MDogZWlnaHR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IG5pbmV0eVstPj5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGF0IDEwMCwgd2UgY2FuIHVzZSA8PCB0byBtYXJrIHRoZSBwb3NpdGlvbiB3aGVyZQorICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbXVsdGlwbGUgb2YgMTAwIGlzIHRvIGJlCisgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0ZWQuICBOb3RpY2UgYWxzbyB0aGF0IHRoZSBtZWFuaW5nIG9mID4+IGhhcyBzaGlmdGVkOgorICAgICAgICAgICAgICAgICAgIC8vIGhlcmUsIGl0IHJlZmVycyB0byBib3RoIHRoZSBvbmVzIHBsYWNlIGFuZCB0aGUgdGVucyBwbGFjZS4KKyAgICAgICAgICAgICAgICAgICAvLyBUaGUgbWVhbmluZ3Mgb2YgdGhlIDw8IGFuZCA+PiB0b2tlbnMgZGVwZW5kIG9uIHRoZSBiYXNlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJ1bGUuICBBIHJ1bGUncyBkaXZpc29yIGlzICh1c3VhbGx5KSB0aGUgaGlnaGVzdAorICAgICAgICAgICAgICAgICAgIC8vIHBvd2VyIG9mIDEwIHRoYXQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBydWxlJ3MgYmFzZQorICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlLiAgVGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBkaXZpZGVkIGJ5IHRoZSBydWxlJ3MKKyAgICAgICAgICAgICAgICAgICAvLyBkaXZpc29yLCBhbmQgdGhlIGludGVncmFsIHF1b3RpZW50IGlzIHVzZWQgdG8gZ2V0IHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgLy8gZm9yIDw8LCB3aGlsZSB0aGUgcmVtYWluZGVyIGlzIHVzZWQgdG8gcHJvZHVjZSB0aGUgdGV4dAorICAgICAgICAgICAgICAgICAgIC8vIGZvciA+Pi4gIEFnYWluLCB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICAgICAgICAgICAgICAgLy8gKGluIHRoaXMgY2FzZSwgYW4gZXZlbiBtdWx0aXBsZSBvZiAxMDApCisgICAgICAgICAgICAgICAgIjEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gVGhlIHJ1bGVzIGZvciB0aGUgaGlnaGVyIG51bWJlcnMgd29yayB0aGUgc2FtZSB3YXkgYXMgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gcnVsZSBmb3IgMTAwOiBBZ2FpbiwgdGhlIDw8IGFuZCA+PiB0b2tlbnMgZGVwZW5kIG9uIHRoZQorICAgICAgICAgICAgICAgICAgIC8vIHJ1bGUncyBkaXZpc29yLCB3aGljaCBmb3IgYWxsIHRoZXNlIHJ1bGVzIGlzIGFsc28gdGhlIHJ1bGUncworICAgICAgICAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUuICBUbyBncm91cCBieSB0aG91c2FuZCwgd2Ugc2ltcGx5IGRvbid0IGhhdmUgYW55CisgICAgICAgICAgICAgICAgICAgLy8gcnVsZXMgYmV0d2VlbiAxLDAwMCBhbmQgMSwwMDAsMDAwLgorICAgICAgICAgICAgICAgICIxMDAwOiA8PCB0aG91c2FuZFsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwLDAwMDogPDwgdHJpbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIG92ZXJmbG93IHJ1bGUuICBUaGlzIHJ1bGUgc3BlY2lmaWVzIHRoYXQgdmFsdWVzIG9mIGEKKyAgICAgICAgICAgICAgICAgICAvLyBxdWFkcmlsbGlvbiBvciBtb3JlIGFyZSBzaG93biBpbiBudW1lcmFscyByYXRoZXIgdGhhbiB3b3Jkcy4KKyAgICAgICAgICAgICAgICAgICAvLyBUaGUgPT0gdG9rZW4gbWVhbnMgdG8gZm9ybWF0ICh3aXRoIG5ldyBydWxlcykgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGJ5IHRoaXMgcnVsZSBhbmQgcGxhY2UgdGhlIHJlc3VsdCB3aGVyZQorICAgICAgICAgICAgICAgICAgIC8vIHRoZSA9PSBpcy4gIFRoZSAjLCMjMCBpbnNpZGUgdGhlID09IHNpZ25zIGlzIGEKKyAgICAgICAgICAgICAgICAgICAvLyBEZWNpbWFsRm9ybWF0IHBhdHRlcm4uICBJdCBzcGVjaWZpZXMgdGhhdCB0aGUgdmFsdWUgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgLy8gYmUgZm9ybWF0dGVkIHdpdGggYSBEZWNpbWFsRm9ybWF0IG9iamVjdCwgYW5kIHRoYXQgaXQKKyAgICAgICAgICAgICAgICAgICAvLyBzaG91bGQgYmUgZm9ybWF0dGVkIHdpdGggbm8gZGVjaW1hbCBwbGFjZXMsIGF0IGxlYXN0IG9uZQorICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0LCBhbmQgYSB0aG91c2FuZHMgc2VwYXJhdG9yLgorICAgICAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iICsKKworICAgICAgICAgICAgLy8gJWRlZmF1bHQgaXMgYSBtb3JlIGVsYWJvcmF0ZSBmb3JtIG9mICVzaW1wbGlmaWVkOyAgSXQgaXMgYmFzaWNhbGx5CisgICAgICAgICAgICAvLyB0aGUgc2FtZSwgZXhjZXB0IHRoYXQgaXQgaW50cm9kdWNlcyAiYW5kIiBiZWZvcmUgdGhlIG9uZXMgZGlnaXQKKyAgICAgICAgICAgIC8vIHdoZW4gYXBwcm9wcmlhdGUgKGJhc2ljYWxseSwgYmV0d2VlbiB0aGUgdGVucyBhbmQgb25lcyBkaWdpdHMpIGFuZAorICAgICAgICAgICAgLy8gc2VwYXJhdGVzIHRoZSB0aG91c2FuZHMgZ3JvdXBzIHdpdGggY29tbWFzIGluIHZhbHVlcyBvdmVyIDEwMCwwMDAuCisgICAgICAgICAgICAiJWRlZmF1bHQ6XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzLiAgVGhlc2UgYXJlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgLy8gYXMgdGhvc2UgZm9yICVzaW1wbGlmaWVkLCBidXQgaGF2ZSB0byBiZSBzdGF0ZWQgaGVyZSB0b28KKyAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoaXMgaXMgYW4gZW50cnkgcG9pbnQKKyAgICAgICAgICAgICAgICAiLXg6IG1pbnVzID4+O1xuIiArCisgICAgICAgICAgICAgICAgIngueDogPDwgcG9pbnQgPj47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBqdXN0IHVzZSAlc2ltcGxpZmllZCBmb3IgdmFsdWVzIGJlbG93IDEwMAorICAgICAgICAgICAgICAgICI9JXNpbXBsaWZpZWQ9O1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBmcm9tIDEwMCB0byA5LDk5OSB1c2UgJSVhbmQgdG8gZGVjaWRlIHdoZXRoZXIgb3IKKyAgICAgICAgICAgICAgICAgICAvLyBub3QgdG8gaW50ZXJwb3NlIHRoZSAiYW5kIgorICAgICAgICAgICAgICAgICIxMDA6IDw8IGh1bmRyZWRbID4lJWFuZD5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgb2YgMTAwLDAwMCBhbmQgdXAsIHVzZSAlJWNvbW1hcyB0byBpbnRlcnBvc2UgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gY29tbWFzIGluIHRoZSByaWdodCBwbGFjZXMgKGFuZCBhbHNvIHRvIGludGVycG9zZSB0aGUgImFuZCIpCisgICAgICAgICAgICAgICAgIjEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiA8PCBtaWxsaW9uWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bPiUlY29tbWFzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIgKworICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGlzIHJ1bGUgc2V0IGlzIGdyZWF0ZXIgdGhhbiAxMDAsIGRvbid0CisgICAgICAgICAgICAvLyBhZGQgdGhlICJhbmQiOyBpZiBpdCdzIGxlc3MgdGhhbiAxMDAsIGFkZCAiYW5kIiBiZWZvcmUgdGhlIGxhc3QKKyAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgIiUlYW5kOlxuIiArCisgICAgICAgICAgICAgICAgImFuZCA9JWRlZmF1bHQ9O1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHBsYWNlIHRoZSBjb21tYXMKKyAgICAgICAgICAgICIlJWNvbW1hczpcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYmVsb3cgMTAwLCBhZGQgImFuZCIgKHRoZSBhcG9zdHJvcGhlIGF0IHRoZQorICAgICAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBpcyBpZ25vcmVkLCBidXQgY2F1c2VzIHRoZSBzcGFjZSB0aGF0IGZvbGxvd3MgaXQKKyAgICAgICAgICAgICAgICAgICAvLyB0byBiZSBzaWduaWZpY2FudDogdGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgcnVsZXMKKyAgICAgICAgICAgICAgICAgICAvLyBjYWxsaW5nICUlY29tbWFzIGRvbid0IHB1dCBhIHNwYWNlIGJlZm9yZSBpdCkKKyAgICAgICAgICAgICAgICAiJyBhbmQgPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHB1dCBhIGNvbW1hIGFmdGVyIHRoZSB0aG91c2FuZHMgKG9yIHdoYXRldmVyIHByZWNlZGVkIHRoZQorICAgICAgICAgICAgICAgICAgIC8vIGh1bmRyZWRzKQorICAgICAgICAgICAgICAgICIxMDA6ICwgPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHB1dCBhIGNvbW1hIGFmdGVyIHRoZSBtaWxsaW9ucyAob3Igd2hhdGV2ZXIgcHJlY2VkZXMgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gdGhvdXNhbmRzKQorICAgICAgICAgICAgICAgICIxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBhbmQgc28gb24uLi4KKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiAsID0lZGVmYXVsdD07IiArCisgICAgICAgICAgICAvLyAlJWxlbmllbnQtcGFyc2UgaXNuJ3QgcmVhbGx5IGEgc2V0IG9mIG51bWJlciBmb3JtYXR0aW5nIHJ1bGVzOworICAgICAgICAgICAgLy8gaXQncyBhIHNldCBvZiBjb2xsYXRpb24gcnVsZXMuICBMZW5pZW50LXBhcnNlIG1vZGUgdXNlcyBhIENvbGxhdG9yCisgICAgICAgICAgICAvLyBvYmplY3QgdG8gY29tcGFyZSBmcmFnbWVudHMgb2YgdGhlIHRleHQgYmVpbmcgcGFyc2VkIHRvIHRoZSB0ZXh0CisgICAgICAgICAgICAvLyBpbiB0aGUgcnVsZXMsIGFsbG93aW5nIG1vcmUgbGVld2F5IGluIHRoZSBtYXRjaGluZyB0ZXh0LiAgVGhpcyBzZXQKKyAgICAgICAgICAgIC8vIG9mIHJ1bGVzIHRlbGxzIHRoZSBmb3JtYXR0ZXIgdG8gaWdub3JlIGNvbW1hcyB3aGVuIHBhcnNpbmcgKGl0CisgICAgICAgICAgICAvLyBhbHJlYWR5IGlnbm9yZXMgc3BhY2VzLCB3aGljaCBpcyB3aHkgd2UgcmVmZXIgdG8gdGhlIHNwYWNlOyBpdCBhbHNvCisgICAgICAgICAgICAvLyBpZ25vcmVzIGh5cGhlbnMsIG1ha2luZyAidHdlbnR5IG9uZSIgYW5kICJ0d2VudHktb25lIiBwYXJzZQorICAgICAgICAgICAgLy8gaWRlbnRpY2FsbHkpCisgICAgICAgICAgICAiJSVsZW5pZW50LXBhcnNlOlxuIiArCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAiJiAnICcgLCAnLCcgO1xuIiArCisgICAgICAgICAgICAiICAgJlx1MDAwMCA8PCAnICcgPDwgJywnIDw8ICctJzsgXG4iOworCisgICAgICAgIFN0cmluZyBlbl9HQl9TcGVsbG91dFJ1bGVzID0KKyAgICAgICAgICAgICIlc2ltcGxpZmllZDpcbiIgKworICAgICAgICAgICAgIi14OiBtaW51cyA+PjtcbiIgKworICAgICAgICAgICAgIngueDogPDwgcG9pbnQgPj47XG4iICsKKyAgICAgICAgICAgICJ6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIiArCisgICAgICAgICAgICAidGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIiArCisgICAgICAgICAgICAiICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIiArCisgICAgICAgICAgICAiMjA6IHR3ZW50eVstPj5dO1xuIiArCisgICAgICAgICAgICAiMzA6IHRoaXJ0eVstPj5dO1xuIiArCisgICAgICAgICAgICAiNDA6IGZvcnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICI1MDogZmlmdHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjYwOiBzaXh0eVstPj5dO1xuIiArCisgICAgICAgICAgICAiNzA6IHNldmVudHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjgwOiBlaWdodHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjkwOiBuaW5ldHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIiArCisgICAgICAgICAgICAiMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIgKworICAgICAgICAgICAgIjEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIgKworICAgICAgICAiJWRlZmF1bHQ6XG4iICsKKyAgICAgICAgICAgICIteDogbWludXMgPj47XG4iICsKKyAgICAgICAgICAgICJ4Lng6IDw8IHBvaW50ID4+O1xuIiArCisgICAgICAgICAgICAiPSVzaW1wbGlmaWVkPTtcbiIgKworICAgICAgICAgICAgIjEwMDogPDwgaHVuZHJlZFsgPiUlYW5kPl07XG4iICsKKyAgICAgICAgICAgICIxMDAwOiA8PCB0aG91c2FuZFsgPiUlYW5kPl07XG4iICsKKyAgICAgICAgICAgICIxMDAsMDAwPj46IDw8IHRob3VzYW5kWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwOiA8PCBtaWxsaW9uWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bPiUlY29tbWFzPl07XG4iICsKKyAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iICsKKyAgICAgICAgIiUlYW5kOlxuIiArCisgICAgICAgICAgICAiYW5kID0lZGVmYXVsdD07XG4iICsKKyAgICAgICAgICAgICIxMDA6ID0lZGVmYXVsdD07XG4iICsKKyAgICAgICAgIiUlY29tbWFzOlxuIiArCisgICAgICAgICAgICAiJyBhbmQgPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgIjEwMDogLCA9JWRlZmF1bHQ9O1xuIiArCisgICAgICAgICAgICAiMTAwMDogLCA8JWRlZmF1bHQ8IHRob3VzYW5kLCA+JWRlZmF1bHQ+O1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwOiAsID0lZGVmYXVsdD07IiArCisgICAgICAgICIlJWxlbmllbnQtcGFyc2U6XG4iICsKKyAgICAgICAgICAgICImICcgJyAsICcsJyA7XG4iOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGZyX1NwZWxsb3V0UnVsZXMgPQorICAgICAgICAgICAgLy8gdGhlIG1haW4gcnVsZSBzZXQKKyAgICAgICAgICAgICIlbWFpbjpcbiIgKworICAgICAgICAgICAgICAgICIteDogbW9pbnMgPj47XG4iICsKKyAgICAgICAgICAgICAgICAieC54OiA8PCB2aXJndWxlID4+O1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIG51bWJlcnMgZnJvbSAwIHRvIDEwCisgICAgICAgICAgICAgICAgInpcdTAwZTlybzsgdW47IGRldXg7IHRyb2lzOyBxdWF0cmU7IGNpbnE7IHNpeDsgc2VwdDsgaHVpdDsgbmV1ZjtcbiIgKworICAgICAgICAgICAgICAgICJkaXg7IG9uemU7IGRvdXplOyB0cmVpemU7IHF1YXRvcnplOyBxdWluemU7IHNlaXplO1xuIiArCisgICAgICAgICAgICAgICAgIiAgICBkaXgtc2VwdDsgZGl4LWh1aXQ7IGRpeC1uZXVmO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gb3JkcyBmb3IgdGhlIG11bHRpcGxlcyBvZiAxMDogJSVhbHQtb25lcyBpbnNlcnRzICJldCIKKyAgICAgICAgICAgICAgICAgICAvLyB3aGVuIG5lZWRlZAorICAgICAgICAgICAgICAgICIyMDogdmluZ3RbLT4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMzA6IHRyZW50ZVstPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICI0MDogcXVhcmFudGVbLT4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IGNpbnF1YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHJ1bGUgZm9yIDYwLiAgVGhlIC8yMCBjYXVzZXMgdGhpcyBydWxlJ3MgbXVsdGlwbGllciB0byBiZQorICAgICAgICAgICAgICAgICAgIC8vIDIwIHJhdGhlciB0aGFuIDEwLCBhbGxvd2luaGcgdXMgdG8gcmVjdXJzZSBmb3IgYWxsIHZhbHVlcworICAgICAgICAgICAgICAgICAgIC8vIGZyb20gNjAgdG8gNzkuLi4KKyAgICAgICAgICAgICAgICAiNjAvMjA6IHNvaXhhbnRlWy0+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gLi4uZXhjZXB0IGZvciA3MSwgd2hpY2ggbXVzdCBiZSBzcGVjaWFsLWNhc2VkCisgICAgICAgICAgICAgICAgIjcxOiBzb2l4YW50ZSBldCBvbnplO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYXQgNzIsIHdlIGhhdmUgdG8gcmVwZWF0IHRoZSBydWxlIGZvciA2MCB0byBnZXQgdXMgdG8gNzkKKyAgICAgICAgICAgICAgICAiNzIvMjA6IHNvaXhhbnRlLT4lJWFsdC1vbmVzPjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGF0IDgwLCB3ZSBzdGF0ZSBhIG5ldyBydWxlIHdpdGggdGhlIHBocmFzZSBmb3IgODAuICBTaW5jZQorICAgICAgICAgICAgICAgICAgIC8vIGl0IGNoYW5nZXMgZm9ybSB3aGVuIHRoZXJlJ3MgYSBvbmVzIGRpZ2l0LCB3ZSBuZWVkIGEgc2Vjb25kCisgICAgICAgICAgICAgICAgICAgLy8gcnVsZSBhdCA4MS4gIFRoaXMgcnVsZSBhbHNvIGluY2x1ZGVzICIvMjAsIiBhbGxvd2luZyBpdCB0bworICAgICAgICAgICAgICAgICAgIC8vIGJlIHVzZWQgY29ycmVjdGx5IGZvciBhbGwgdmFsdWVzIHVwIHRvIDk5CisgICAgICAgICAgICAgICAgIjgwOiBxdWF0cmUtdmluZ3RzOyA4MS8yMDogcXVhdHJlLXZpbmd0LT4+O1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gImNlbnQiIGJlY29tZXMgcGx1cmFsIHdoZW4gcHJlY2VkZWQgYnkgYSBtdWx0aXBsaWVyLCBhbmQKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgbXVsdGlwbGllciBpcyBvbWl0dGVkIGZyb20gdGhlIHNpbmd1bGFyIGZvcm0KKyAgICAgICAgICAgICAgICAiMTAwOiBjZW50WyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwOiA8PCBjZW50c1sgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IG1pbGxlWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgZnJvbSAxLDEwMCB0byAxLDE5OSBhcmUgcmVuZGVyZWQgYXMgIm9uemUgY2VudHMuLi4iCisgICAgICAgICAgICAgICAgICAgLy8gaW5zdGVhZCBvZiAibWlsbGUgY2VudC4uLiIgIFRoZSA+IGFmdGVyICIxMDAwIiBkZWNyZWFzZXMKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGV4cG9uZW50LCBjYXVzaW5nIGl0cyBtdWx0aXBsaWVyIHRvIGJlIDEwMCBpbnN0ZWFkCisgICAgICAgICAgICAgICAgICAgLy8gb2YgMSwwMDAuICBUaGlzIHByZXZlbnRzIHVzIGZyb20gZ2V0dGluZyAib256ZSBjZW50cyBjZW50CisgICAgICAgICAgICAgICAgICAgLy8gdmluZ3QtZGV1eCIgKCJlbGV2ZW4gaHVuZHJlZCBvbmUgaHVuZHJlZCB0d2VudHktdHdvIikuCisgICAgICAgICAgICAgICAgIjExMDA+OiBvbnplIGNlbnRzWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBhdCAxLDIwMCwgd2UgZ28gYmFjayB0byBmb3JtYXRpbmcgaW4gdGhvdXNhbmRzLCBzbyB3ZQorICAgICAgICAgICAgICAgICAgIC8vIHJlcGVhdCB0aGUgcnVsZSBmb3IgMSwwMDAKKyAgICAgICAgICAgICAgICAiMTIwMDogbWlsbGUgPj47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBhdCAyLDAwMCwgdGhlIG11bHRpcGxpZXIgaXMgYWRkZWQKKyAgICAgICAgICAgICAgICAiMjAwMDogPDwgbWlsbGVbID4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwOiA8PCBtaWxsaWFyZFsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIiArCisgICAgICAgICAgICAvLyAlJWFsdC1vbmVzIGlzIHVzZWQgdG8gaW5zZXJ0ICJldCIgd2hlbiB0aGUgb25lcyBkaWdpdCBpcyAxCisgICAgICAgICAgICAiJSVhbHQtb25lczpcbiIgKworICAgICAgICAgICAgICAgICI7IGV0LXVuOyA9JW1haW49O1xuIiArIAorICAgICAgICAgICAgIiUlbGVuaWVudC1wYXJzZTpcbiIgKworICAgICAgICAgICAgICAgICImXHUwMDAwIDw8ICcgJyA8PCAnLCcgPDwgJy0nO1xuIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBkZV9TcGVsbG91dFJ1bGVzID0KKyAgICAgICAgICAgIC8vIDEgaXMgImVpbnMiIHdoZW4gYnkgaXRzZWxmLCBidXQgdHVybnMgaW50byAiZWluIiBpbiBtb3N0CisgICAgICAgICAgICAvLyBjb21iaW5hdGlvbnMKKyAgICAgICAgICAgICIlYWx0LW9uZXM6XG4iICsKKyAgICAgICAgICAgICAgICAiLXg6IG1pbnVzID4+O1xuIiArCisgICAgICAgICAgICAgICAgIngueDogPDwga29tbWEgPj47XG4iICsKKyAgICAgICAgICAgICAgICAibnVsbDsgZWluczsgPSUlbWFpbj07XG4iICsKKyAgICAgICAgICAgICIlJW1haW46XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB3b3JkcyBmb3IgbnVtYmVycyBmcm9tIDAgdG8gMTIuICBOb3RpY2UgdGhhdCB0aGUgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgLy8gZnJvbSAxMyB0byAxOSBjYW4gZGVyaXZlZCBhbGdvcml0aG1pY2FsbHksIHVubGlrZSBpbiBtb3N0CisgICAgICAgICAgICAgICAgICAgLy8gb3RoZXIgbGFuZ3VhZ2VzCisgICAgICAgICAgICAgICAgIm51bGw7IGVpbjsgendlaTsgZHJlaTsgdmllcjsgZlx1MDBmY25mOyBzZWNoczsgc2llYmVuOyBhY2h0OyBuZXVuO1xuIiArCisgICAgICAgICAgICAgICAgInplaG47IGVsZjsgendcdTAwZjZsZjsgPj56ZWhuO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gcnVsZXMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTAuICBOb3RpY2UgdGhhdCB0aGUgb25lcyBkaWdpdAorICAgICAgICAgICAgICAgICAgIC8vIGdvZXMgb24gdGhlIGZyb250CisgICAgICAgICAgICAgICAgIjIwOiBbPj51bmRdendhbnppZztcbiIgKworICAgICAgICAgICAgICAgICIzMDogWz4+dW5kXWRyZWlcdTAwZGZpZztcbiIgKworICAgICAgICAgICAgICAgICI0MDogWz4+dW5kXXZpZXJ6aWc7XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IFs+PnVuZF1mXHUwMGZjbmZ6aWc7XG4iICsKKyAgICAgICAgICAgICAgICAiNjA6IFs+PnVuZF1zZWNoemlnO1xuIiArCisgICAgICAgICAgICAgICAgIjcwOiBbPj51bmRdc2llYnppZztcbiIgKworICAgICAgICAgICAgICAgICI4MDogWz4+dW5kXWFjaHR6aWc7XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IFs+PnVuZF1uZXVuemlnO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogaHVuZGVydFs+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwOiA8PGh1bmRlcnRbPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IHRhdXNlbmRbPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjIwMDA6IDw8dGF1c2VuZFs+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiBlaW5lIE1pbGxpb25bID4lYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICIyLDAwMCwwMDA6IDw8IE1pbGxpb25lblsgPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDA6IGVpbmUgTWlsbGlhcmRlWyA+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMiwwMDAsMDAwLDAwMDogPDwgTWlsbGlhcmRlblsgPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiBlaW5lIEJpbGxpb25bID4lYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICIyLDAwMCwwMDAsMDAwLDAwMDogPDwgQmlsbGlvbmVuWyA+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9OyIgKworICAgICAgICAgICAgIiUlbGVuaWVudC1wYXJzZTpcbiIgKworICAgICAgICAgICAgICAgICImXHUwMDAwIDw8ICcgJyA8PCAnLSdcbiIgKworICAgICAgICAgICAgICAgICImIGFlICwgXHUwMGU0ICYgYWUgLCBcdTAwYzRcbiIgKworICAgICAgICAgICAgICAgICImIG9lICwgXHUwMGY2ICYgb2UgLCBcdTAwZDZcbiIgKworICAgICAgICAgICAgICAgICImIHVlICwgXHUwMGZjICYgdWUgLCBcdTAwZGNcbiI7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgaXRfU3BlbGxvdXRSdWxlcyA9CisgICAgICAgICAgICAvLyBtYWluIHJ1bGUgc2V0LiAgRm9sbG93cyB0aGUgcGF0dGVybnMgb2YgdGhlIHByZWNlZGluZyBydWxlIHNldHMsCisgICAgICAgICAgICAvLyBleGNlcHQgdGhhdCB0aGUgZmluYWwgdm93ZWwgaXMgb21pdHRlZCBmcm9tIHdvcmRzIGVuZGluZyBpbgorICAgICAgICAgICAgLy8gdm93ZWxzIHdoZW4gdGhleSBhcmUgZm9sbG93ZWQgYnkgYW5vdGhlciB3b3JkOyBpbnN0ZWFkLCB3ZSBoYXZlCisgICAgICAgICAgICAvLyBzZXBhcmF0ZSBydWxlIHNldHMgdGhhdCBhcmUgaWRlbnRpY2FsIHRvIHRoaXMgb25lLCBleGNlcHQgdGhhdAorICAgICAgICAgICAgLy8gYWxsIHRoZSB3b3JkcyB0aGF0IGRvbid0IGJlZ2luIHdpdGggYSB2b3dlbCBoYXZlIGEgdm93ZWwgdGFja2VkCisgICAgICAgICAgICAvLyBvbnRvIHRoZW0gYXQgdGhlIGZyb250LiAgQSB3b3JkIGVuZGluZyBpbiBhIHZvd2VsIGNhbGxzIGEKKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbiB0aGF0IHdpbGwgc3VwcGx5IHRoYXQgdm93ZWwsIHVubGVzcyB0aGF0IHZvd2VsIGlzIHRvCisgICAgICAgICAgICAvLyBiZSBlbGlkZWQuCisgICAgICAgICAgICAiJW1haW46XG4iICsKKyAgICAgICAgICAgICAgICAiLXg6IG1lbm8gPj47XG4iICsKKyAgICAgICAgICAgICAgICAieC54OiA8PCB2aXJnb2xhID4+O1xuIiArCisgICAgICAgICAgICAgICAgInplcm87IHVubzsgZHVlOyB0cmU7IHF1YXR0cm87IGNpbnF1ZTsgc2VpOyBzZXR0ZTsgb3R0bzsgbm92ZTtcbiIgKworICAgICAgICAgICAgICAgICJkaWVjaTsgdW5kaWNpOyBkb2RpY2k7IHRyZWRpY2k7IHF1YXR0b3JkaWNpOyBxdWluZGljaTsgc2VkaWNpO1xuIiArCisgICAgICAgICAgICAgICAgIiAgICBkaWNpYXNldHRlOyBkaWNpb3R0bzsgZGljaWFubm92ZTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogdmVudGk7IHZlbnQ+JSV3aXRoLWk+O1xuIiArCisgICAgICAgICAgICAgICAgIjMwOiB0cmVudGE7IHRyZW50PiUld2l0aC1pPjtcbiIgKworICAgICAgICAgICAgICAgICI0MDogcXVhcmFudGE7IHF1YXJhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjUwOiBjaW5xdWFudGE7IGNpbnF1YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI2MDogc2Vzc2FudGE7IHNlc3NhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjcwOiBzZXR0YW50YTsgc2V0dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IG5vdmFudGE7IG5vdmFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwOiBjZW50bzsgY2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDA6IDw8Y2VudG87IDw8Y2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAwOiBtaWxsZTsgbWlsbFs+JSV3aXRoLWk+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDAwOiA8PG1pbGE7IDw8bWlsWz4lJXdpdGgtYT5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMCwwMDA+PjogPDxtaWxhWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiA9IywjIzA9IChpbmNvbXBsZXRlIGRhdGEpO1xuIiArCisgICAgICAgICAgICAiJSV3aXRoLWE6XG4iICsKKyAgICAgICAgICAgICAgICAiYXplcm87IHVubzsgYWR1ZTsgYXRyZTsgYXF1YXR0cm87IGFjaW5xdWU7IGFzZWk7IGFzZXR0ZTsgb3R0bzsgYW5vdmU7XG4iICsKKyAgICAgICAgICAgICAgICAiYWRpZWNpOyB1bmRpY2k7IGFkb2RpY2k7IGF0cmVkaWNpOyBhcXVhdHRvcmRpY2k7IGFxdWluZGljaTsgYXNlZGljaTtcbiIgKworICAgICAgICAgICAgICAgICIgICAgYWRpY2lhc2V0dGU7IGFkaWNpb3R0bzsgYWRpY2lhbm5vdmU7XG4iICsKKyAgICAgICAgICAgICAgICAiMjA6IGF2ZW50aTsgYXZlbnQ+JSV3aXRoLWk+O1xuIiArCisgICAgICAgICAgICAgICAgIjMwOiBhdHJlbnRhOyBhdHJlbnQ+JSV3aXRoLWk+O1xuIiArCisgICAgICAgICAgICAgICAgIjQwOiBhcXVhcmFudGE7IGFxdWFyYW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI1MDogYWNpbnF1YW50YTsgYWNpbnF1YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI2MDogYXNlc3NhbnRhOyBhc2Vzc2FudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiNzA6IGFzZXR0YW50YTsgYXNldHRhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjkwOiBhbm92YW50YTsgYW5vdmFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwOiBhY2VudG87IGFjZW50Wz4lJXdpdGgtbz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjIwMDogPCUld2l0aC1hPGNlbnRvOyA8JSV3aXRoLWE8Y2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAwOiBhbWlsbGU7IGFtaWxsWz4lJXdpdGgtaT5dO1xuIiArCisgICAgICAgICAgICAgICAgIjIwMDA6IDwlJXdpdGgtYTxtaWxhOyA8JSV3aXRoLWE8bWlsWz4lJXdpdGgtYT5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMCwwMDA6ID0lbWFpbj07XG4iICsKKyAgICAgICAgICAgICIlJXdpdGgtaTpcbiIgKworICAgICAgICAgICAgICAgICJpemVybzsgdW5vOyBpZHVlOyBpdHJlOyBpcXVhdHRybzsgaWNpbnF1ZTsgaXNlaTsgaXNldHRlOyBvdHRvOyBpbm92ZTtcbiIgKworICAgICAgICAgICAgICAgICJpZGllY2k7IHVuZGljaTsgaWRvZGljaTsgaXRyZWRpY2k7IGlxdWF0dG9yZGljaTsgaXF1aW5kaWNpOyBpc2VkaWNpO1xuIiArCisgICAgICAgICAgICAgICAgIiAgICBpZGljaWFzZXR0ZTsgaWRpY2lvdHRvOyBpZGljaWFubm92ZTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogaXZlbnRpOyBpdmVudD4lJXdpdGgtaT47XG4iICsKKyAgICAgICAgICAgICAgICAiMzA6IGl0cmVudGE7IGl0cmVudD4lJXdpdGgtaT47XG4iICsKKyAgICAgICAgICAgICAgICAiNDA6IGlxdWFyYW50YTsgaXF1YXJhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjUwOiBpY2lucXVhbnRhOyBpY2lucXVhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjYwOiBpc2Vzc2FudGE7IGlzZXNzYW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI3MDogaXNldHRhbnRhOyBpc2V0dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IGlub3ZhbnRhOyBpbm92YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICIxMDA6IGljZW50bzsgaWNlbnRbPiUld2l0aC1vPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwOiA8JSV3aXRoLWk8Y2VudG87IDwlJXdpdGgtaTxjZW50Wz4lJXdpdGgtbz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IGltaWxsZTsgaW1pbGxbPiUld2l0aC1pPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwMDogPCUld2l0aC1pPG1pbGE7IDwlJXdpdGgtaTxtaWxbPiUld2l0aC1hPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwLDAwMDogPSVtYWluPTtcbiIgKworICAgICAgICAgICAgIiUld2l0aC1vOlxuIiArCisgICAgICAgICAgICAgICAgIm96ZXJvOyB1bm87IG9kdWU7IG90cmU7IG9xdWF0dHJvOyBvY2lucXVlOyBvc2VpOyBvc2V0dGU7IG90dG87IG9ub3ZlO1xuIiArCisgICAgICAgICAgICAgICAgIm9kaWVjaTsgdW5kaWNpOyBvZG9kaWNpOyBvdHJlZGljaTsgb3F1YXR0b3JkaWNpOyBvcXVpbmRpY2k7IG9zZWRpY2k7XG4iICsKKyAgICAgICAgICAgICAgICAiICAgIG9kaWNpYXNldHRlOyBvZGljaW90dG87IG9kaWNpYW5ub3ZlO1xuIiArCisgICAgICAgICAgICAgICAgIjIwOiBvdmVudGk7IG92ZW50PiUld2l0aC1pPjtcbiIgKworICAgICAgICAgICAgICAgICIzMDogb3RyZW50YTsgb3RyZW50PiUld2l0aC1pPjtcbiIgKworICAgICAgICAgICAgICAgICI0MDogb3F1YXJhbnRhOyBvcXVhcmFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IG9jaW5xdWFudGE7IG9jaW5xdWFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiNjA6IG9zZXNzYW50YTsgb3Nlc3NhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjcwOiBvc2V0dGFudGE7IG9zZXR0YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI5MDogb25vdmFudGE7IG9ub3ZhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogb2NlbnRvOyBvY2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDA6IDwlJXdpdGgtbzxjZW50bzsgPCUld2l0aC1vPGNlbnRbPiUld2l0aC1vPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwMDogb21pbGxlOyBvbWlsbFs+JSV3aXRoLWk+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDAwOiA8JSV3aXRoLW88bWlsYTsgPCUld2l0aC1vPG1pbFs+JSV3aXRoLWE+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAsMDAwOiA9JW1haW49O1xuIiA7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZW5fT3JkaW5hbFJ1bGVzID0KKyAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyB0aGUgbnVtZXJhbCBhbmQgY2FsbHMgJSVhYmJyZXYgdG8KKyAgICAgICAgICAgIC8vIHN1cHBseSB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICAgICAiJW1haW46XG4iICsKKyAgICAgICAgICAgICAgICAiPSMsIyMwPT0lJWFiYnJldj07XG4iICsKKyAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgc3VwcGxpZXMgdGhlIGFiYnJldmlhdGlvbgorICAgICAgICAgICAgIiUlYWJicmV2OlxuIiArCisgICAgICAgICAgICAgICAgICAgLy8gdGhlIGFiYnJldmlhdGlvbnMuICBFdmVyeXRoaW5nIGZyb20gNCB0byAxOSBlbmRzIGluICJ0aCIKKyAgICAgICAgICAgICAgICAidGg7IHN0OyBuZDsgcmQ7IHRoO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYXQgMjAsIHdlIGJlZ2luIHJlcGVhdGluZyB0aGUgY3ljbGUgZXZlcnkgMTAgKDEzIGlzICIxM3RoIiwKKyAgICAgICAgICAgICAgICAgICAvLyBidXQgMjMgYW5kIDMzIGFyZSAiMjNyZCIgYW5kICIzM3JkIikgIFdlIGRvIHRoaXMgYnkKKyAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmluZyBhbGwgYnVnIHRoZSBvbmVzIGRpZ2l0IGluIHNlbGVjdGluZyB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICAgICAgICAgIjIwOiA+PjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGF0IDEwMCwgd2UgcmVwZWF0IHRoZSB3aG9sZSBjeWNsZSBieSBjb25zaWRlcmluZyBvbmx5IHRoZQorICAgICAgICAgICAgICAgICAgIC8vIHRlbnMgYW5kIG9uZXMgZGlnaXRzIGluIHBpY2tpbmcgYW4gYWJicmV2aWF0aW9uCisgICAgICAgICAgICAgICAgIjEwMDogPj47XG4iOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGVuX0R1cmF0aW9uUnVsZXMgPQorICAgICAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyB3aXRoIHdvcmRzCisgICAgICAgICAgICAiJXdpdGgtd29yZHM6XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB0YWtlIGNhcmUgb2Ygc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiAic2Vjb25kIgorICAgICAgICAgICAgICAgICIwIHNlY29uZHM7IDEgc2Vjb25kOyA9MD0gc2Vjb25kcztcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHVzZSAlJW1pbiB0byBmb3JtYXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiA2MCBzZWNvbmRzCisgICAgICAgICAgICAgICAgIjYwLzYwOiA8JSVtaW48WywgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gdXNlICUlaHIgdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gMyw2MDAgc2Vjb25kcworICAgICAgICAgICAgICAgICAgIC8vICh0aGUgIj4+PiIgYmVsb3cgY2F1c2VzIHVzIHRvIHNlZSB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMKKyAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHdoZW4gdGhlcmUgYXJlIHplcm8gbWludXRlcykKKyAgICAgICAgICAgICAgICAiMzYwMC82MDogPCUlaHI8WywgPj4+XTtcbiIgKworICAgICAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgICAgICAvLyBvZiAibWludXRlIgorICAgICAgICAgICAgIiUlbWluOlxuIiArCisgICAgICAgICAgICAgICAgIjAgbWludXRlczsgMSBtaW51dGU7ID0wPSBtaW51dGVzO1xuIiArCisgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHRha2VzIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMKKyAgICAgICAgICAgIC8vIG9mICJob3VyIgorICAgICAgICAgICAgIiUlaHI6XG4iICsKKyAgICAgICAgICAgICAgICAiMCBob3VyczsgMSBob3VyOyA9MD0gaG91cnM7XG4iICsKKworICAgICAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyBpbiBudW1lcmFscworICAgICAgICAgICAgIiVpbi1udW1lcmFsczpcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlcyBiZWxvdyA2MCBzZWNvbmRzIGFyZSBzaG93biB3aXRoICJzZWMuIgorICAgICAgICAgICAgICAgICI9MD0gc2VjLjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGhpZ2hlciB2YWx1ZXMgYXJlIHNob3duIHdpdGggY29sb25zOiAlJW1pbi1zZWMgaXMgdXNlZCBmb3IKKyAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgMyw2MDAgc2Vjb25kcy4uLgorICAgICAgICAgICAgICAgICI2MDogPSUlbWluLXNlYz07XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyAuLi5hbmQgJSVoci1taW4tc2VjIGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBzZWNvbmRzCisgICAgICAgICAgICAgICAgICAgLy8gYW5kIGFib3ZlCisgICAgICAgICAgICAgICAgIjM2MDA6ID0lJWhyLW1pbi1zZWM9O1xuIiArCisgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgY2F1c2VzIHZhbHVlcyBvZiBsZXNzIHRoYW4gMTAgbWludXRlcyB0byBzaG93IHdpdGhvdXQKKyAgICAgICAgICAgIC8vIGEgbGVhZGluZyB6ZXJvCisgICAgICAgICAgICAiJSVtaW4tc2VjOlxuIiArCisgICAgICAgICAgICAgICAgIjA6IDo9MDA9O1xuIiArCisgICAgICAgICAgICAgICAgIjYwLzYwOiA8MDw+PjtcbiIgKworICAgICAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIGZvciB2YWx1ZXMgb2YgMyw2MDAgb3IgbW9yZS4gIE1pbnV0ZXMgYXJlIGFsd2F5cworICAgICAgICAgICAgLy8gc2hvd24sIGFuZCBhbHdheXMgc2hvd24gd2l0aCB0d28gZGlnaXRzCisgICAgICAgICAgICAiJSVoci1taW4tc2VjOlxuIiArCisgICAgICAgICAgICAgICAgIjA6IDo9MDA9O1xuIiArCisgICAgICAgICAgICAgICAgIjYwLzYwOiA8MDA8Pj47XG4iICsKKyAgICAgICAgICAgICAgICAiMzYwMC82MDogPCMsIyMwPDo+Pj47XG4iICsKKyAgICAgICAgICAgIC8vIHRoZSBsZW5pZW50LXBhcnNlIHJ1bGVzIGFsbG93IHNldmVyYWwgZGlmZmVyZW50IGNoYXJhY3RlcnMgdG8gYmUgdXNlZAorICAgICAgICAgICAgLy8gYXMgZGVsaW1pdGVycyBiZXR3ZWVuIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcworICAgICAgICAgICAgIiUlbGVuaWVudC1wYXJzZTpcbiIgKworICAgICAgICAgICAgICAgICImICc6JyA9ICcuJyA9ICcgJyA9ICctJztcbiI7CisKKyAgICAgICAgICAgIEhhc2hNYXAgY2FubmVkRGF0YSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fQ0EvU3BlbGxvdXRSdWxlcyIsICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fQ0EvT3JkaW5hbFJ1bGVzIiwgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9DQS9EdXJhdGlvblJ1bGVzIiwgICAgICBlbl9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0NBL1NwZWxsb3V0UnVsZXMiLCAgICAgIGZyX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0NBL09yZGluYWxSdWxlcyIsICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnJfQ0EvRHVyYXRpb25SdWxlcyIsICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9DTi9TcGVsbG91dFJ1bGVzIiwgICAgICBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9DTi9PcmRpbmFsUnVsZXMiLCAgICAgICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0NIL0R1cmF0aW9uUnVsZXMiLCAgICAgIHh4X0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemgvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemgvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuL1NwZWxsb3V0UnVsZXMiLCAgICAgICAgIGVuX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuL09yZGluYWxSdWxlcyIsICAgICAgICAgIGVuX09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW4vRHVyYXRpb25SdWxlcyIsICAgICAgICAgZW5fRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmcl9GUi9TcGVsbG91dFJ1bGVzIiwgICAgICBmcl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmcl9GUi9PcmRpbmFsUnVsZXMiLCAgICAgICB4eF9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0ZSL0R1cmF0aW9uUnVsZXMiLCAgICAgIHh4X0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnIvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgZnJfU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnIvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgeHhfT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmci9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlL1NwZWxsb3V0UnVsZXMiLCAgICAgICAgIGRlX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlL09yZGluYWxSdWxlcyIsICAgICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZGUvRHVyYXRpb25SdWxlcyIsICAgICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJkZV9ERS9TcGVsbG91dFJ1bGVzIiwgICAgICBkZV9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJkZV9ERS9PcmRpbmFsUnVsZXMiLCAgICAgICB4eF9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlX0RFL0R1cmF0aW9uUnVsZXMiLCAgICAgIHh4X0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXQvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgaXRfU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXQvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgeHhfT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJpdC9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoIml0X0lUL1NwZWxsb3V0UnVsZXMiLCAgICAgIGl0X1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoIml0X0lUL09yZGluYWxSdWxlcyIsICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXRfSVQvRHVyYXRvblJ1bGVzIiwgICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrb19LUi9TcGVsbG91dFJ1bGVzIiwgICAgICBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrb19LUi9PcmRpbmFsUnVsZXMiLCAgICAgICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImtvX0tSL0R1cmF0aW9uUnVsZXMiLCAgICAgIGVuX0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia28vU3BlbGxvdXRSdWxlcyIsICAgICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia28vT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrby9EdXJhdGlvblJ1bGVzIiwgICAgICAgICBlbl9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04vU3BlbGxvdXRSdWxlcyIsIGVuX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04vT3JkaW5hbFJ1bGVzIiwgIGVuX09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfSGFuc19DSC9EdXJhdGlvblJ1bGVzIiwgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9IYW50X1RXL1NwZWxsb3V0UnVsZXMiLCBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9IYW50X1RXL09yZGluYWxSdWxlcyIsICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnRfVFcvRHVyYXRpb25SdWxlcyIsIGVuX0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfVFcvU3BlbGxvdXRSdWxlcyIsICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfVFcvT3JkaW5hbFJ1bGVzIiwgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9UVy9EdXJhdGlvblJ1bGVzIiwgICAgICBlbl9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX0dCL1NwZWxsb3V0UnVsZXMiLCAgICAgIGVuX0dCX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX0dCL09yZGluYWxSdWxlcyIsICAgICAgIGVuX09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fR0IvRHVyYXRpb25SdWxlcyIsICAgICAgZW5fRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9VUy9TcGVsbG91dFJ1bGVzIiwgICAgICBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9VUy9PcmRpbmFsUnVsZXMiLCAgICAgICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX1VTL0R1cmF0aW9uUnVsZXMiLCAgICAgIGVuX0R1cmF0aW9uUnVsZXMpOworCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamEvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgamFfc3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamEvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgeHhfT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJqYS9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphX0pQL1NwZWxsb3V0UnVsZXMiLCAgICAgIGphX3NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphX0pQL09yZGluYWxSdWxlcyIsICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamFfSlAvRHVyYXRpb25SdWxlcyIsICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCB0eXBlc1tdICAgICAgICA9IHtSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQsIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5PUkRJTkFMLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT059OworICAgICAgICBTdHJpbmcgdHlwZU5hbWVzW10gPSB7IlNwZWxsb3V0UnVsZXMiLCAiT3JkaW5hbFJ1bGVzIiwgIkR1cmF0aW9uUnVsZXMifTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXRzW10gPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0W3R5cGVzLmxlbmd0aCAqIGxvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgdCA9IDA7IHQgPCB0eXBlcy5sZW5ndGg7IHQgKz0gMSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGwgPSAwOyBsIDwgbG9jYWxlcy5sZW5ndGg7IGwgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2FubmVkUnVsZXMgPSAoU3RyaW5nKSBjYW5uZWREYXRhLmdldChsb2NhbGVzW2xdLnRvU3RyaW5nKCkgKyAiLyIgKyB0eXBlTmFtZXNbdF0pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbm5lZFJ1bGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHNbaSsrXSA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoY2FubmVkUnVsZXMsIGxvY2FsZXNbbF0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0c1tpKytdID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChsb2NhbGVzW2xdLCB0eXBlc1t0XSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGVjaW1hbEZvcm1hdFN5bWJvbHNIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgc2VyaWFsaXplZCBmb3JtIG9mIGEgbm9ybWFsbHkgY3JlYXRlZCBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QKKyAgICAgICAgICogd2lsbCBoYXZlIGxvY2FsZS1zcGVjaWZpYyBkYXRhIGluIGl0IHRoYXQgbWlnaHQgY2hhbmdlIGZyb20gb25lIHZlcnNpb24KKyAgICAgICAgICogb2YgSUNVNEogdG8gYW5vdGhlci4gVG8gZ3VhcmQgYWdhaW5zdCB0aGlzLCB3ZSBzdG9yZSB0aGUgZm9sbG93aW5nIGNhbm5lZAorICAgICAgICAgKiBkYXRhIGludG8gdGhlIHRlc3Qgb2JqZWN0cyB3ZSBjcmVhdGUuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgSGFzaE1hcCBjYW5uZWREYXRhID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fQ0FfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIiQiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiQ0FEIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBmcl9DQV9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiJCIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJDQUQiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIHpoX0NOX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdUZGRTUiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiQ05ZIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MDBBNCIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJYWFgiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGZyX0ZSX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdTIwQUMiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiRVVSIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBmcl9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZGVfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MDBBNCIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJYWFgiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGRlX0RFX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdTIwQUMiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiRVVSIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBpdF9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgaXRfSVRfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MjBBQyIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJFVVIiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGphX0pQX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdUZGRTUiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiSlBZIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBqYV9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcga29fS1JfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1RkZFNiIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJLUlciLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGtvX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwQTQiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiWFhYIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9IYW5zX0NOX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdUZGRTUiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiQ05ZIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9IYW50X1RXX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJOVCQiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiVFdEIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9UV19TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiTlQkIiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlRXRCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fR0JfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MDBBMyIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJHQlAiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGVuX1VTX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICIkIiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlVTRCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX0NBIiwgICAgICBlbl9DQV9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmcl9DQSIsICAgICAgZnJfQ0FfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfQ04iLCAgICAgIHpoX0NOX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoIiwgICAgICAgICB6aF9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbiIsICAgICAgICAgZW5fU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnJfRlIiLCAgICAgIGZyX0ZSX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyIiwgICAgICAgICBmcl9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJkZSIsICAgICAgICAgZGVfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZGVfREUiLCAgICAgIGRlX0RFX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoIml0IiwgICAgICAgICBpdF9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJpdF9JVCIsICAgICAgaXRfSVRfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamFfSlAiLCAgICAgIGphX0pQX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphIiwgICAgICAgICBqYV9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrb19LUiIsICAgICAga29fS1JfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia28iLCAgICAgICAgIGtvX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04iLCB6aF9IYW5zX0NOX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnRfVFciLCB6aF9IYW50X1RXX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX1RXIiwgICAgICB6aF9UV19TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9HQiIsICAgICAgZW5fR0JfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fVVMiLCAgICAgIGVuX1VTX1N0cmluZ1N5bWJvbHMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGNoYXJbXSBnZXRDaGFyU3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXIgc3ltYm9sc1tdID0geworICAgICAgICAgICAgICAgIGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCksCisgICAgICAgICAgICAgICAgZGZzLmdldERpZ2l0KCksCisgICAgICAgICAgICAgICAgZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCksCisgICAgICAgICAgICAgICAgZGZzLmdldE1pbnVzU2lnbigpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0UGFkRXNjYXBlKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFBhdHRlcm5TZXBhcmF0b3IoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0UGVyY2VudCgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRQZXJNaWxsKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFBsdXNTaWduKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFNpZ25pZmljYW50RGlnaXQoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0WmVyb0RpZ2l0KCkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzeW1ib2xzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFN0cmluZ1tdIGdldFN0cmluZ1N5bWJvbHMoRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3ltYm9sc1tdID0geworICAgICAgICAgICAgICAgIGRmcy5nZXRDdXJyZW5jeVN5bWJvbCgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRFeHBvbmVudFNlcGFyYXRvcigpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRJbmZpbml0eSgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0TmFOKCkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzeW1ib2xzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgc2V0U3RyaW5nU3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMsIFN0cmluZyBzeW1ib2xzW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIGRmcy5zZXRDdXJyZW5jeVN5bWJvbChzeW1ib2xzWzBdKTsKKyAgICAgICAgICAgIGRmcy5zZXRFeHBvbmVudFNlcGFyYXRvcihzeW1ib2xzWzFdKTsKKyAgICAgICAgICAgIGRmcy5zZXRJbmZpbml0eShzeW1ib2xzWzJdKTsKKyAgICAgICAgICAgIGRmcy5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woc3ltYm9sc1szXSk7CisgICAgICAgICAgICBkZnMuc2V0TmFOKHN5bWJvbHNbNF0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnNbXSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9sc1tsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworCisgICAgICAgICAgICAgICAgZGZzW2ldID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKHVsb2MpOworICAgICAgICAgICAgICAgIHNldFN0cmluZ1N5bWJvbHMoZGZzW2ldLCAoU3RyaW5nW10pIGNhbm5lZERhdGEuZ2V0KHVsb2MudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZGZzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnNfYSA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgYTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmc19iID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBiOworICAgICAgICAgICAgU3RyaW5nIHN0cmluZ3NfYVtdID0gZ2V0U3RyaW5nU3ltYm9scyhkZnNfYSk7CisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nc19iW10gPSBnZXRTdHJpbmdTeW1ib2xzKGRmc19iKTsKKyAgICAgICAgICAgIGNoYXIgY2hhcnNfYVtdID0gZ2V0Q2hhclN5bWJvbHMoZGZzX2EpOworICAgICAgICAgICAgY2hhciBjaGFyc19iW10gPSBnZXRDaGFyU3ltYm9scyhkZnNfYik7CisKKyAgICAgICAgICAgIHJldHVybiBTZXJpYWxpemFibGVUZXN0LmNvbXBhcmVTdHJpbmdzKHN0cmluZ3NfYSwgc3RyaW5nc19iKSAmJiBTZXJpYWxpemFibGVUZXN0LmNvbXBhcmVDaGFycyhjaGFyc19hLCBjaGFyc19iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1lc3NhZ2VGb3JtYXRIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdHNbXSA9IHtuZXcgTWVzc2FnZUZvcm1hdCgicGF0dGVybnswfSIpfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IG1mYSA9IChNZXNzYWdlRm9ybWF0KSBhOworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBtZmIgPSAoTWVzc2FnZUZvcm1hdCkgYjsKKyAgICAgICAgICAgIE9iamVjdCBhcmd1bWVudHNbXSA9IHtuZXcgSW50ZWdlcigxMjM0NTYpfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG1mYS5mb3JtYXQoYXJndW1lbnRzKSAhPSBtZmIuZm9ybWF0KGFyZ3VtZW50cyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBEYXRlRm9ybWF0SGFuZGxlciBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXRzW10gPSBuZXcgRGF0ZUZvcm1hdFtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGZvcm1hdHNbaV0gPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZm9ybWF0czsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZmEgPSAoRGF0ZUZvcm1hdCkgYTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGZiID0gKERhdGVGb3JtYXQpIGI7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBuZXcgRGF0ZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgICAgICAgICBTdHJpbmcgc2ZhID0gZGZhLmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIFN0cmluZyBzZmIgPSBkZmEuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgCisgICAgICAgICAgIHJldHVybiBzZmEuZXF1YWxzKHNmYik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgc2VyaWFsaXplZCBmb3JtIG9mIGEgbm9ybWFsbHkgY3JlYXRlZCBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QKKyAgICAgICAgICogd2lsbCBoYXZlIGxvY2FsZS1zcGVjaWZpYyBkYXRhIGluIGl0IHRoYXQgbWlnaHQgY2hhbmdlIGZyb20gb25lIHZlcnNpb24KKyAgICAgICAgICogb2YgSUNVNEogdG8gYW5vdGhlci4gVG8gZ3VhcmQgYWdhaW5zdCB0aGlzLCB3ZSBzdG9yZSB0aGUgZm9sbG93aW5nIGNhbm5lZAorICAgICAgICAgKiBkYXRhIGludG8gdGhlIHRlc3Qgb2JqZWN0cyB3ZSBjcmVhdGUuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgSGFzaE1hcCBjYW5uZWREYXRhID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGVuX0NBX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJKYW51YXJ5IiwgCisgICAgICAgICAgICAiRmVicnVhcnkiLCAKKyAgICAgICAgICAgICJNYXJjaCIsIAorICAgICAgICAgICAgIkFwcmlsIiwgCisgICAgICAgICAgICAiTWF5IiwgCisgICAgICAgICAgICAiSnVuZSIsIAorICAgICAgICAgICAgIkp1bHkiLCAKKyAgICAgICAgICAgICJBdWd1c3QiLCAKKyAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAKKyAgICAgICAgICAgICJPY3RvYmVyIiwgCisgICAgICAgICAgICAiTm92ZW1iZXIiLCAKKyAgICAgICAgICAgICJEZWNlbWJlciIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZnJfQ0FfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgImphbnZpZXIiLCAKKyAgICAgICAgICAgICJmXHUwMEU5dnJpZXIiLCAKKyAgICAgICAgICAgICJtYXJzIiwgCisgICAgICAgICAgICAiYXZyaWwiLCAKKyAgICAgICAgICAgICJtYWkiLCAKKyAgICAgICAgICAgICJqdWluIiwgCisgICAgICAgICAgICAianVpbGxldCIsIAorICAgICAgICAgICAgImFvXHUwMEZCdCIsIAorICAgICAgICAgICAgInNlcHRlbWJyZSIsIAorICAgICAgICAgICAgIm9jdG9icmUiLCAKKyAgICAgICAgICAgICJub3ZlbWJyZSIsIAorICAgICAgICAgICAgImRcdTAwRTljZW1icmUiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIHpoX0hhbnNfQ05fTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIlx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU4Q1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwOVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTZEQlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU5NFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwM1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2Qlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU1RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEU4Q1x1NjcwOCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgemhfQ05fTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIlx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU4Q1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwOVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTZEQlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU5NFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwM1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2Qlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU1RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEU4Q1x1NjcwOCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgemhfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIlx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU4Q1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwOVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTZEQlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU5NFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwM1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2Qlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU1RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEU4Q1x1NjcwOCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIkphbnVhcnkiLCAKKyAgICAgICAgICAgICJGZWJydWFyeSIsIAorICAgICAgICAgICAgIk1hcmNoIiwgCisgICAgICAgICAgICAiQXByaWwiLCAKKyAgICAgICAgICAgICJNYXkiLCAKKyAgICAgICAgICAgICJKdW5lIiwgCisgICAgICAgICAgICAiSnVseSIsIAorICAgICAgICAgICAgIkF1Z3VzdCIsIAorICAgICAgICAgICAgIlNlcHRlbWJlciIsIAorICAgICAgICAgICAgIk9jdG9iZXIiLCAKKyAgICAgICAgICAgICJOb3ZlbWJlciIsIAorICAgICAgICAgICAgIkRlY2VtYmVyIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBmcl9GUl9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiamFudmllciIsIAorICAgICAgICAgICAgImZcdTAwRTl2cmllciIsIAorICAgICAgICAgICAgIm1hcnMiLCAKKyAgICAgICAgICAgICJhdnJpbCIsIAorICAgICAgICAgICAgIm1haSIsIAorICAgICAgICAgICAgImp1aW4iLCAKKyAgICAgICAgICAgICJqdWlsbGV0IiwgCisgICAgICAgICAgICAiYW9cdTAwRkJ0IiwgCisgICAgICAgICAgICAic2VwdGVtYnJlIiwgCisgICAgICAgICAgICAib2N0b2JyZSIsIAorICAgICAgICAgICAgIm5vdmVtYnJlIiwgCisgICAgICAgICAgICAiZFx1MDBFOWNlbWJyZSIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZnJfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgImphbnZpZXIiLCAKKyAgICAgICAgICAgICJmXHUwMEU5dnJpZXIiLCAKKyAgICAgICAgICAgICJtYXJzIiwgCisgICAgICAgICAgICAiYXZyaWwiLCAKKyAgICAgICAgICAgICJtYWkiLCAKKyAgICAgICAgICAgICJqdWluIiwgCisgICAgICAgICAgICAianVpbGxldCIsIAorICAgICAgICAgICAgImFvXHUwMEZCdCIsIAorICAgICAgICAgICAgInNlcHRlbWJyZSIsIAorICAgICAgICAgICAgIm9jdG9icmUiLCAKKyAgICAgICAgICAgICJub3ZlbWJyZSIsIAorICAgICAgICAgICAgImRcdTAwRTljZW1icmUiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGRlX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJKYW51YXIiLCAKKyAgICAgICAgICAgICJGZWJydWFyIiwgCisgICAgICAgICAgICAiTVx1MDBFNHJ6IiwgCisgICAgICAgICAgICAiQXByaWwiLCAKKyAgICAgICAgICAgICJNYWkiLCAKKyAgICAgICAgICAgICJKdW5pIiwgCisgICAgICAgICAgICAiSnVsaSIsIAorICAgICAgICAgICAgIkF1Z3VzdCIsIAorICAgICAgICAgICAgIlNlcHRlbWJlciIsIAorICAgICAgICAgICAgIk9rdG9iZXIiLCAKKyAgICAgICAgICAgICJOb3ZlbWJlciIsIAorICAgICAgICAgICAgIkRlemVtYmVyIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBkZV9ERV9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiSmFudWFyIiwgCisgICAgICAgICAgICAiRmVicnVhciIsIAorICAgICAgICAgICAgIk1cdTAwRTRyeiIsIAorICAgICAgICAgICAgIkFwcmlsIiwgCisgICAgICAgICAgICAiTWFpIiwgCisgICAgICAgICAgICAiSnVuaSIsIAorICAgICAgICAgICAgIkp1bGkiLCAKKyAgICAgICAgICAgICJBdWd1c3QiLCAKKyAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAKKyAgICAgICAgICAgICJPa3RvYmVyIiwgCisgICAgICAgICAgICAiTm92ZW1iZXIiLCAKKyAgICAgICAgICAgICJEZXplbWJlciIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgaXRfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgImdlbm5haW8iLCAKKyAgICAgICAgICAgICJmZWJicmFpbyIsIAorICAgICAgICAgICAgIm1hcnpvIiwgCisgICAgICAgICAgICAiYXByaWxlIiwgCisgICAgICAgICAgICAibWFnZ2lvIiwgCisgICAgICAgICAgICAiZ2l1Z25vIiwgCisgICAgICAgICAgICAibHVnbGlvIiwgCisgICAgICAgICAgICAiYWdvc3RvIiwgCisgICAgICAgICAgICAic2V0dGVtYnJlIiwgCisgICAgICAgICAgICAib3R0b2JyZSIsIAorICAgICAgICAgICAgIm5vdmVtYnJlIiwgCisgICAgICAgICAgICAiZGljZW1icmUiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGl0X0lUX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJnZW5uYWlvIiwgCisgICAgICAgICAgICAiZmViYnJhaW8iLCAKKyAgICAgICAgICAgICJtYXJ6byIsIAorICAgICAgICAgICAgImFwcmlsZSIsIAorICAgICAgICAgICAgIm1hZ2dpbyIsIAorICAgICAgICAgICAgImdpdWdubyIsIAorICAgICAgICAgICAgImx1Z2xpbyIsIAorICAgICAgICAgICAgImFnb3N0byIsIAorICAgICAgICAgICAgInNldHRlbWJyZSIsIAorICAgICAgICAgICAgIm90dG9icmUiLCAKKyAgICAgICAgICAgICJub3ZlbWJyZSIsIAorICAgICAgICAgICAgImRpY2VtYnJlIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBqYV9KUF9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1NjcwOCIsIAorICAgICAgICAgICAgIjJcdTY3MDgiLCAKKyAgICAgICAgICAgICIzXHU2NzA4IiwgCisgICAgICAgICAgICAiNFx1NjcwOCIsIAorICAgICAgICAgICAgIjVcdTY3MDgiLCAKKyAgICAgICAgICAgICI2XHU2NzA4IiwgCisgICAgICAgICAgICAiN1x1NjcwOCIsIAorICAgICAgICAgICAgIjhcdTY3MDgiLCAKKyAgICAgICAgICAgICI5XHU2NzA4IiwgCisgICAgICAgICAgICAiMTBcdTY3MDgiLCAKKyAgICAgICAgICAgICIxMVx1NjcwOCIsIAorICAgICAgICAgICAgIjEyXHU2NzA4IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBqYV9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1NjcwOCIsIAorICAgICAgICAgICAgIjJcdTY3MDgiLCAKKyAgICAgICAgICAgICIzXHU2NzA4IiwgCisgICAgICAgICAgICAiNFx1NjcwOCIsIAorICAgICAgICAgICAgIjVcdTY3MDgiLCAKKyAgICAgICAgICAgICI2XHU2NzA4IiwgCisgICAgICAgICAgICAiN1x1NjcwOCIsIAorICAgICAgICAgICAgIjhcdTY3MDgiLCAKKyAgICAgICAgICAgICI5XHU2NzA4IiwgCisgICAgICAgICAgICAiMTBcdTY3MDgiLCAKKyAgICAgICAgICAgICIxMVx1NjcwOCIsIAorICAgICAgICAgICAgIjEyXHU2NzA4IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBrb19LUl9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1QzZENCIsIAorICAgICAgICAgICAgIjJcdUM2RDQiLCAKKyAgICAgICAgICAgICIzXHVDNkQ0IiwgCisgICAgICAgICAgICAiNFx1QzZENCIsIAorICAgICAgICAgICAgIjVcdUM2RDQiLCAKKyAgICAgICAgICAgICI2XHVDNkQ0IiwgCisgICAgICAgICAgICAiN1x1QzZENCIsIAorICAgICAgICAgICAgIjhcdUM2RDQiLCAKKyAgICAgICAgICAgICI5XHVDNkQ0IiwgCisgICAgICAgICAgICAiMTBcdUM2RDQiLCAKKyAgICAgICAgICAgICIxMVx1QzZENCIsIAorICAgICAgICAgICAgIjEyXHVDNkQ0IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBrb19Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1QzZENCIsIAorICAgICAgICAgICAgIjJcdUM2RDQiLCAKKyAgICAgICAgICAgICIzXHVDNkQ0IiwgCisgICAgICAgICAgICAiNFx1QzZENCIsIAorICAgICAgICAgICAgIjVcdUM2RDQiLCAKKyAgICAgICAgICAgICI2XHVDNkQ0IiwgCisgICAgICAgICAgICAiN1x1QzZENCIsIAorICAgICAgICAgICAgIjhcdUM2RDQiLCAKKyAgICAgICAgICAgICI5XHVDNkQ0IiwgCisgICAgICAgICAgICAiMTBcdUM2RDQiLCAKKyAgICAgICAgICAgICIxMVx1QzZENCIsIAorICAgICAgICAgICAgIjEyXHVDNkQ0IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9IYW50X1RXX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDlcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTU2REJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOTRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDNcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFNURcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIHpoX1RXX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDlcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTU2REJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOTRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDNcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFNURcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBlbl9HQl9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiSmFudWFyeSIsIAorICAgICAgICAgICAgIkZlYnJ1YXJ5IiwgCisgICAgICAgICAgICAiTWFyY2giLCAKKyAgICAgICAgICAgICJBcHJpbCIsIAorICAgICAgICAgICAgIk1heSIsIAorICAgICAgICAgICAgIkp1bmUiLCAKKyAgICAgICAgICAgICJKdWx5IiwgCisgICAgICAgICAgICAiQXVndXN0IiwgCisgICAgICAgICAgICAiU2VwdGVtYmVyIiwgCisgICAgICAgICAgICAiT2N0b2JlciIsIAorICAgICAgICAgICAgIk5vdmVtYmVyIiwgCisgICAgICAgICAgICAiRGVjZW1iZXIiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGVuX1VTX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJKYW51YXJ5IiwgCisgICAgICAgICAgICAiRmVicnVhcnkiLCAKKyAgICAgICAgICAgICJNYXJjaCIsIAorICAgICAgICAgICAgIkFwcmlsIiwgCisgICAgICAgICAgICAiTWF5IiwgCisgICAgICAgICAgICAiSnVuZSIsIAorICAgICAgICAgICAgIkp1bHkiLCAKKyAgICAgICAgICAgICJBdWd1c3QiLCAKKyAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAKKyAgICAgICAgICAgICJPY3RvYmVyIiwgCisgICAgICAgICAgICAiTm92ZW1iZXIiLCAKKyAgICAgICAgICAgICJEZWNlbWJlciIsIAorICAgICAgICB9OworCisgICAgICAgIHsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9DQSIsICAgICAgZW5fQ0FfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnJfQ0EiLCAgICAgIGZyX0NBX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04iLCB6aF9IYW5zX0NOX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0NOIiwgICAgICB6aF9DTl9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aCIsICAgICAgICAgemhfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW4iLCAgICAgICAgIGVuX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0ZSIiwgICAgICBmcl9GUl9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmciIsICAgICAgICAgZnJfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZGUiLCAgICAgICAgIGRlX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlX0RFIiwgICAgICBkZV9ERV9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJpdCIsICAgICAgICAgaXRfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXRfSVQiLCAgICAgIGl0X0lUX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphX0pQIiwgICAgICBqYV9KUF9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJqYSIsICAgICAgICAgamFfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia29fS1IiLCAgICAgIGtvX0tSX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImtvIiwgICAgICAgICBrb19Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9IYW50X1RXIiwgemhfSGFudF9UV19Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9UVyIsICAgICAgemhfVFdfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fR0IiLCAgICAgIGVuX0dCX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX1VTIiwgICAgICBlbl9VU19Nb250aE5hbWVzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzW10gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHNbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBkZnNbaV0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoR3JlZ29yaWFuQ2FsZW5kYXIuY2xhc3MsIHVsb2MpOworICAgICAgICAgICAgICAgIGRmc1tpXS5zZXRNb250aHMoKFN0cmluZ1tdKSBjYW5uZWREYXRhLmdldCh1bG9jLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGRmczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzX2EgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpIGE7CisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBkZnNfYiA9IChEYXRlRm9ybWF0U3ltYm9scykgYjsKKyAgICAgICAgICAgIFN0cmluZyBtb250aHNfYVtdID0gZGZzX2EuZ2V0TW9udGhzKCk7CisgICAgICAgICAgICBTdHJpbmcgbW9udGhzX2JbXSA9IGRmc19iLmdldE1vbnRocygpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gU2VyaWFsaXphYmxlVGVzdC5jb21wYXJlU3RyaW5ncyhtb250aHNfYSwgbW9udGhzX2IpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2ltcGxlRGF0ZUZvcm1hdEhhbmRsZXIgZXh0ZW5kcyBEYXRlRm9ybWF0SGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm5zW10gPSB7CisgICAgICAgICAgICAiRUVFRSwgeXl5eSBNTU1NIGRkIiwKKyAgICAgICAgICAgICJ5eXl5IE1NTU0gZCIsCisgICAgICAgICAgICAieXl5eSBNTU0gZCIsCisgICAgICAgICAgICAieXkvTU0vZGQiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRhdGVGb3JtYXRzW10gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdFtwYXR0ZXJucy5sZW5ndGggKiBsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHAgPSAwOyBwIDwgcGF0dGVybnMubGVuZ3RoOyBwICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBsID0gMDsgbCA8IGxvY2FsZXMubGVuZ3RoOyBsICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdHNbaSsrXSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm5zW3BdLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2xdKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdHM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDaGluZXNlRGF0ZUZvcm1hdEhhbmRsZXIgZXh0ZW5kcyBEYXRlRm9ybWF0SGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm5zW10gPSB7CisgICAgICAgICAgICAiRUVFRSB5J3gnRy1NbC1kIiwKKyAgICAgICAgICAgICJ5J3gnRy1NbC1kIiwKKyAgICAgICAgICAgICJ5J3gnRy1NbC1kIiwKKyAgICAgICAgICAgICJ5J3gnRy1NbC1kIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXQgZGF0ZUZvcm1hdHNbXSA9IG5ldyBDaGluZXNlRGF0ZUZvcm1hdFtwYXR0ZXJucy5sZW5ndGggKiBsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHAgPSAwOyBwIDwgcGF0dGVybnMubGVuZ3RoOyBwICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBsID0gMDsgbCA8IGxvY2FsZXMubGVuZ3RoOyBsICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBuZXcgVUxvY2FsZShsb2NhbGVzW2xdLnRvU3RyaW5nKCkgKyAiQGNhbGVuZGFyPWNoaW5lc2UiKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXRzW2krK10gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXQocGF0dGVybnNbcF0sIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdHM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyIGV4dGVuZHMgRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgY2Rmc1tdID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9sc1tsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNkZnNbaV0gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKHVsb2MpOworICAgICAgICAgICAgICAgIGNkZnNbaV0uc2V0TW9udGhzKChTdHJpbmdbXSkgY2FubmVkRGF0YS5nZXQodWxvYy50b1N0cmluZygpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjZGZzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoISBzdXBlci5oYXNTYW1lQmVoYXZpb3IoYSwgYikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBjZGZzX2EgPSAoQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKSBhOworICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGNkZnNfYiA9IChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjZGZzX2EuZ2V0TGVhcE1vbnRoKDApLmVxdWFscyhjZGZzX2IuZ2V0TGVhcE1vbnRoKDApKSAmJgorICAgICAgICAgICAgICAgICAgIGNkZnNfYS5nZXRMZWFwTW9udGgoMSkuZXF1YWxzKGNkZnNfYi5nZXRMZWFwTW9udGgoMSkpOworICAgICAgICB9CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTnVtYmVyRm9ybWF0RmllbGRIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQgZmllbGRzW10gPSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LkZpZWxkLkNVUlJFTkNZLCBOdW1iZXJGb3JtYXQuRmllbGQuREVDSU1BTF9TRVBBUkFUT1IsIE51bWJlckZvcm1hdC5GaWVsZC5FWFBPTkVOVCwKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQuRVhQT05FTlRfU0lHTiwgTnVtYmVyRm9ybWF0LkZpZWxkLkVYUE9ORU5UX1NZTUJPTCwgTnVtYmVyRm9ybWF0LkZpZWxkLkZSQUNUSU9OLAorICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdC5GaWVsZC5HUk9VUElOR19TRVBBUkFUT1IsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSLCBOdW1iZXJGb3JtYXQuRmllbGQuUEVSQ0VOVCwKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQuUEVSTUlMTEUsIE51bWJlckZvcm1hdC5GaWVsZC5TSUdOCisgICAgICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZmllbGRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQgZmllbGRfYSA9IChOdW1iZXJGb3JtYXQuRmllbGQpIGE7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQgZmllbGRfYiA9IChOdW1iZXJGb3JtYXQuRmllbGQpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmaWVsZF9hLnRvU3RyaW5nKCkuZXF1YWxzKGZpZWxkX2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIC8vIG5vdGhpbmcgbmVlZGVkLi4uCisgICAgfQorfQorLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMyOGEzZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDc5IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxpbmtlZEhhc2hNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5MUlVNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVGltZVpvbmVBZGFwdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFNlcmlhbGl6YWJsZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ay5UZXN0R3JvdXAKK3sKKyAgICBwdWJsaWMgaW50ZXJmYWNlIEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgSGFuZGxlciBnZXRIYW5kbGVyKFN0cmluZyBjbGFzc05hbWUpCisgICAgeworICAgICAgICByZXR1cm4gKEhhbmRsZXIpIG1hcC5nZXQoY2xhc3NOYW1lKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVGltZVpvbmVIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nW10gWk9ORVMgPSB7ICJHTVQiLCAiTUVUIiwgIklTVCIgfTsKKworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBUaW1lWm9uZSB6b25lc1tdID0gbmV3IFRpbWVab25lW1pPTkVTLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgeiA9IDA7IHogPCBaT05FUy5sZW5ndGg7IHogKz0gMSkgeworICAgICAgICAgICAgICAgIHpvbmVzW3pdID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoWk9ORVNbel0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gem9uZXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFRpbWVab25lIHpvbmVfYSA9IChUaW1lWm9uZSkgYTsKKyAgICAgICAgICAgIFRpbWVab25lIHpvbmVfYiA9IChUaW1lWm9uZSkgYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHpvbmVfYS5nZXREaXNwbGF5TmFtZSgpLmVxdWFscyh6b25lX2IuZ2V0RGlzcGxheU5hbWUoKSkgJiYgem9uZV9hLmhhc1NhbWVSdWxlcyh6b25lX2IpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIExvY2FsZSBsb2NhbGVzW10gPSB7CisgICAgICAgIExvY2FsZS5DQU5BREEsIExvY2FsZS5DQU5BREFfRlJFTkNILCBMb2NhbGUuQ0hJTkEsIAorICAgICAgICBMb2NhbGUuQ0hJTkVTRSwgTG9jYWxlLkVOR0xJU0gsIExvY2FsZS5GUkFOQ0UsIExvY2FsZS5GUkVOQ0gsIAorICAgICAgICBMb2NhbGUuR0VSTUFOLCBMb2NhbGUuR0VSTUFOWSwgTG9jYWxlLklUQUxJQU4sIExvY2FsZS5JVEFMWSwgCisgICAgICAgIExvY2FsZS5KQVBBTiwgTG9jYWxlLkpBUEFORVNFLCBMb2NhbGUuS09SRUEsIExvY2FsZS5LT1JFQU4sIAorICAgICAgICBMb2NhbGUuUFJDLCBMb2NhbGUuU0lNUExJRklFRF9DSElORVNFLCBMb2NhbGUuVEFJV0FOLCAKKyAgICAgICAgTG9jYWxlLlRSQURJVElPTkFMX0NISU5FU0UsIExvY2FsZS5VSywgTG9jYWxlLlVTCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBMb2NhbGUgcGxhY2VzW10gPSB7CisgICAgICAgIExvY2FsZS5DQU5BREEsIExvY2FsZS5DQU5BREFfRlJFTkNILCBMb2NhbGUuQ0hJTkEsIAorICAgICAgICBMb2NhbGUuRlJBTkNFLCBMb2NhbGUuR0VSTUFOWSwgTG9jYWxlLklUQUxZLCAKKyAgICAgICAgTG9jYWxlLkpBUEFOLCBMb2NhbGUuS09SRUEsIExvY2FsZS5QUkMsIExvY2FsZS5UQUlXQU4sIAorICAgICAgICBMb2NhbGUuVUssIExvY2FsZS5VUworICAgIH07CisgICAgCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhbGVzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29tcGFyZVN0cmluZ3MoU3RyaW5nIGFbXSwgU3RyaW5nIGJbXSkKKyAgICB7CisgICAgICAgIGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGlmICghIGFbaV0uZXF1YWxzKGJbaV0pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbXBhcmVDaGFycyhjaGFyIGFbXSwgY2hhciBiW10pCisgICAgeworICAgICAgICBpZiAoYS5sZW5ndGggIT0gYi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBpZiAoYVtpXSAhPSBiW2ldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTaW1wbGVUaW1lWm9uZUhhbmRsZXIgZXh0ZW5kcyBUaW1lWm9uZUhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHNpbXBsZVRpbWVab25lc1tdID0gbmV3IFNpbXBsZVRpbWVab25lWzZdOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbMF0gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJNeVRpbWVab25lIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1sxXSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzJdID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzJdLnNldFJhd09mZnNldCgwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzNdID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzNdLnNldFN0YXJ0WWVhcigxMDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0uc2V0U3RhcnRZZWFyKDEwMDApOworICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzRdLnNldERTVFNhdmluZ3MoMTgwMDAwMCk7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0uc2V0U3RhcnRSdWxlKDMsIDQsIDE4MDAwMCk7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0uc2V0RW5kUnVsZSg2LCAzLCA0LCAzNjAwMDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNV0gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNV0uc2V0U3RhcnRSdWxlKDIsIDMsIDQsIDM2MDAwMCk7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNV0uc2V0RW5kUnVsZSg2LCAzLCA0LCAzNjAwMDApOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gc2ltcGxlVGltZVpvbmVzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFVMb2NhbGVIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgVUxvY2FsZSB1TG9jYWxlc1tdID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICB1TG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdUxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvY19hID0gKFVMb2NhbGUpIGE7CisgICAgICAgICAgICBVTG9jYWxlIHVsb2NfYiA9IChVTG9jYWxlKSBiOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdWxvY19hLmdldE5hbWUoKS5lcXVhbHModWxvY19iLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ3VycmVuY3lIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgQ3VycmVuY3kgY3VycmVuY2llc1tdID0gbmV3IEN1cnJlbmN5W3BsYWNlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBsYWNlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGN1cnJlbmNpZXNbaV0gPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShwbGFjZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3VycmVuY2llczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgQ3VycmVuY3kgY3Vycl9hID0gKEN1cnJlbmN5KSBhOworICAgICAgICAgICAgQ3VycmVuY3kgY3Vycl9iID0gKEN1cnJlbmN5KSBiOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3Vycl9hLmdldEN1cnJlbmN5Q29kZSgpLmVxdWFscyhjdXJyX2IuZ2V0Q3VycmVuY3lDb2RlKCkpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgT2xzb25UaW1lWm9uZUhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmcgem9uZUlEc1tdID0geworICAgICAgICAgICAgIlBhY2lmaWMvSG9ub2x1bHUiLCAiQW1lcmljYS9BbmNob3JhZ2UiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAiQW1lcmljYS9DaGljYWdvIiwgIkFtZXJpY2EvTmV3X1lvcmsiLCAiQWZyaWNhL0NhaXJvIiwgIkFmcmljYS9BZGRpc19BYmFiYSIsICJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsCisgICAgICAgICAgICAiQWZyaWNhL0ZyZWV0b3duIiwgIkFmcmljYS9Kb2hhbm5lc2J1cmciLCAiQWZyaWNhL05haXJvYmkiLCAiQXNpYS9CYW5na29rIiwgIkFzaWEvQmFnaGRhZCIsCisgICAgICAgICAgICAiQXNpYS9DYWxjdXR0YSIsICJBc2lhL0hvbmdfS29uZyIsICJBc2lhL0pha2FydGEiLCAiQXNpYS9KZXJ1c2FsZW0iLCAiQXNpYS9NYW5pbGEiLCAiQXNpYS9Ub2t5byIsCisgICAgICAgICAgICAiRXVyb3BlL0Ftc3RlcmRhbSIsICJFdXJvcGUvQXRoZW5zIiwgIkV1cm9wZS9CZXJsaW4iLCAiRXVyb3BlL0xvbmRvbiIsICJFdXJvcGUvTWFsdGEiLCAiRXVyb3BlL01vc2NvdyIsCisgICAgICAgICAgICAiRXVyb3BlL1BhcmlzIiwgIkV1cm9wZS9Sb21lIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgT2xzb25UaW1lWm9uZSB0aW1lWm9uZXNbXSA9IG5ldyBPbHNvblRpbWVab25lW3pvbmVJRHMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6b25lSURzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgdGltZVpvbmVzW2ldID0gbmV3IE9sc29uVGltZVpvbmUoem9uZUlEc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0aW1lWm9uZXM7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIE9sc29uVGltZVpvbmUgb3R6X2EgPSAoT2xzb25UaW1lWm9uZSkgYTsKKyAgICAgICAgICAgIE9sc29uVGltZVpvbmUgb3R6X2IgPSAoT2xzb25UaW1lWm9uZSkgYjsKKyAgICAgICAgICAgIGxvbmcgbm93ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBpbnQgYV9vZmZzZXRzW10gPSB7MCwgMH07CisgICAgICAgICAgICBpbnQgYl9vZmZzZXRzW10gPSB7MCwgMH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG90el9hLmdldE9mZnNldChub3csIGZhbHNlLCBhX29mZnNldHMpOworICAgICAgICAgICAgb3R6X2IuZ2V0T2Zmc2V0KG5vdywgZmFsc2UsIGJfb2Zmc2V0cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBhX29mZnNldHNbMF0gPT0gYl9vZmZzZXRzWzBdICYmIGFfb2Zmc2V0c1sxXSA9PSBiX29mZnNldHNbMV07CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSkRLVGltZVpvbmVIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nIHpvbmVJRHNbXSA9IHsKKyAgICAgICAgICAgICJQYWNpZmljL0hvbm9sdWx1IiwgIkFtZXJpY2EvQW5jaG9yYWdlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAgICAgIkFtZXJpY2EvQ2hpY2FnbyIsICJBbWVyaWNhL05ld19Zb3JrIiwgIkFmcmljYS9DYWlybyIsICJBZnJpY2EvQWRkaXNfQWJhYmEiLCAiQWZyaWNhL0Rhcl9lc19TYWxhYW0iLAorICAgICAgICAgICAgIkFmcmljYS9GcmVldG93biIsICJBZnJpY2EvSm9oYW5uZXNidXJnIiwgIkFmcmljYS9OYWlyb2JpIiwgIkFzaWEvQmFuZ2tvayIsICJBc2lhL0JhZ2hkYWQiLAorICAgICAgICAgICAgIkFzaWEvQ2FsY3V0dGEiLCAiQXNpYS9Ib25nX0tvbmciLCAiQXNpYS9KYWthcnRhIiwgIkFzaWEvSmVydXNhbGVtIiwgIkFzaWEvTWFuaWxhIiwgIkFzaWEvVG9reW8iLAorICAgICAgICAgICAgIkV1cm9wZS9BbXN0ZXJkYW0iLCAiRXVyb3BlL0F0aGVucyIsICJFdXJvcGUvQmVybGluIiwgIkV1cm9wZS9Mb25kb24iLCAiRXVyb3BlL01hbHRhIiwgIkV1cm9wZS9Nb3Njb3ciLAorICAgICAgICAgICAgIkV1cm9wZS9QYXJpcyIsICJFdXJvcGUvUm9tZSIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIEpES1RpbWVab25lIHRpbWVab25lc1tdID0gbmV3IEpES1RpbWVab25lW3pvbmVJRHMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6b25lSURzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgdGltZVpvbmVzW2ldID0gbmV3IEpES1RpbWVab25lKGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSh6b25lSURzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0aW1lWm9uZXM7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIEpES1RpbWVab25lIGp0el9hID0gKEpES1RpbWVab25lKSBhOworICAgICAgICAgICAgSkRLVGltZVpvbmUganR6X2IgPSAoSkRLVGltZVpvbmUpIGI7CisgICAgICAgICAgICBsb25nIG5vdyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgaW50IGFfb2Zmc2V0c1tdID0gezAsIDB9OworICAgICAgICAgICAgaW50IGJfb2Zmc2V0c1tdID0gezAsIDB9OworICAgICAgICAgICAgCisgICAgICAgICAgICBqdHpfYS5nZXRPZmZzZXQobm93LCBmYWxzZSwgYV9vZmZzZXRzKTsKKyAgICAgICAgICAgIGp0el9iLmdldE9mZnNldChub3csIGZhbHNlLCBiX29mZnNldHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gYV9vZmZzZXRzWzBdID09IGJfb2Zmc2V0c1swXSAmJiBhX29mZnNldHNbMV0gPT0gYl9vZmZzZXRzWzFdOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRpbWVab25lQWRhcHRlckhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmcgem9uZUlEc1tdID0geworICAgICAgICAgICAgIlBhY2lmaWMvSG9ub2x1bHUiLCAiQW1lcmljYS9BbmNob3JhZ2UiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAiQW1lcmljYS9DaGljYWdvIiwgIkFtZXJpY2EvTmV3X1lvcmsiLCAiQWZyaWNhL0NhaXJvIiwgIkFmcmljYS9BZGRpc19BYmFiYSIsICJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsCisgICAgICAgICAgICAiQWZyaWNhL0ZyZWV0b3duIiwgIkFmcmljYS9Kb2hhbm5lc2J1cmciLCAiQWZyaWNhL05haXJvYmkiLCAiQXNpYS9CYW5na29rIiwgIkFzaWEvQmFnaGRhZCIsCisgICAgICAgICAgICAiQXNpYS9DYWxjdXR0YSIsICJBc2lhL0hvbmdfS29uZyIsICJBc2lhL0pha2FydGEiLCAiQXNpYS9KZXJ1c2FsZW0iLCAiQXNpYS9NYW5pbGEiLCAiQXNpYS9Ub2t5byIsCisgICAgICAgICAgICAiRXVyb3BlL0Ftc3RlcmRhbSIsICJFdXJvcGUvQXRoZW5zIiwgIkV1cm9wZS9CZXJsaW4iLCAiRXVyb3BlL0xvbmRvbiIsICJFdXJvcGUvTWFsdGEiLCAiRXVyb3BlL01vc2NvdyIsCisgICAgICAgICAgICAiRXVyb3BlL1BhcmlzIiwgIkV1cm9wZS9Sb21lIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgVGltZVpvbmVBZGFwdGVyIHRpbWVab25lc1tdID0gbmV3IFRpbWVab25lQWRhcHRlclt6b25lSURzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgem9uZUlEcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIHRpbWVab25lc1tpXSA9IG5ldyBUaW1lWm9uZUFkYXB0ZXIoVGltZVpvbmUuZ2V0VGltZVpvbmUoem9uZUlEc1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdGltZVpvbmVzOworICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBUaW1lWm9uZUFkYXB0ZXIgdHphX2EgPSAoVGltZVpvbmVBZGFwdGVyKSBhOworICAgICAgICAgICAgVGltZVpvbmVBZGFwdGVyIHR6YV9iID0gKFRpbWVab25lQWRhcHRlcikgYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHR6YV9hLmhhc1NhbWVSdWxlcyh0emFfYik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQmlnRGVjaW1hbEhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmcgdmFsdWVzW10gPSB7CisgICAgICAgICAgICAiMTIzNDU2Nzg5MC4iLAorICAgICAgICAgICAgIjEyMzQ1Njc4OS4wIiwKKyAgICAgICAgICAgICIxMjM0NTY3OC45MCIsCisgICAgICAgICAgICAiMTIzNDU2Ny44OTAiLAorICAgICAgICAgICAgIjEyMzQ1Ni43ODkwIiwKKyAgICAgICAgICAgICIxMjM0NS42Nzg5MCIsCisgICAgICAgICAgICAiMTIzNC41Njc4OTAiLAorICAgICAgICAgICAgIjEyMy40NTY3ODkwIiwKKyAgICAgICAgICAgICIxMi4zNDU2Nzg5MCIsCisgICAgICAgICAgICAiMS4yMzQ1Njc4OTAiLAorICAgICAgICAgICAgIi4xMjM0NTY3ODkwIn07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBCaWdEZWNpbWFsIGJkc1tdID0gbmV3IEJpZ0RlY2ltYWxbdmFsdWVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgYmRzW2ldID0gbmV3IEJpZ0RlY2ltYWwodmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGJkczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgQmlnRGVjaW1hbCBiZGEgPSAoQmlnRGVjaW1hbCkgYTsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgYmRiID0gKEJpZ0RlY2ltYWwpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBiZGEudG9TdHJpbmcoKS5lcXVhbHMoYmRiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1hdGhDb250ZXh0SGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIGludCBmb3Jtc1tdID0ge01hdGhDb250ZXh0LlBMQUlOLCBNYXRoQ29udGV4dC5FTkdJTkVFUklORywgTWF0aENvbnRleHQuU0NJRU5USUZJQ307CisgICAgICAgIGludCByb3VuZHNbXSA9IHsKKyAgICAgICAgICAgIE1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcsIE1hdGhDb250ZXh0LlJPVU5EX0RPV04sIE1hdGhDb250ZXh0LlJPVU5EX0ZMT09SLAorICAgICAgICAgICAgTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOLCBNYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4sIE1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVAsCisgICAgICAgICAgICBNYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSwgTWF0aENvbnRleHQuUk9VTkRfVVB9OworCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBvYmplY3RDb3VudCA9IGZvcm1zLmxlbmd0aCAqIHJvdW5kcy5sZW5ndGg7CisgICAgICAgICAgICBNYXRoQ29udGV4dCBjb250ZXh0c1tdID0gbmV3IE1hdGhDb250ZXh0W29iamVjdENvdW50XTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgZiA9IDA7IGYgPCBmb3Jtcy5sZW5ndGg7IGYgKz0gMSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IHIgPSAwOyByIDwgcm91bmRzLmxlbmd0aDsgciArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdHMgPSBmICogcjsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsb3N0RGlnaXRzID0gKHIgJiAxKSAhPSAwOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dHNbaSsrXSA9IG5ldyBNYXRoQ29udGV4dChkaWdpdHMsIGZvcm1zW2ZdLCBsb3N0RGlnaXRzLCByb3VuZHNbcl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNvbnRleHRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBNYXRoQ29udGV4dCBtY2EgPSAoTWF0aENvbnRleHQpIGE7CisgICAgICAgICAgICBNYXRoQ29udGV4dCBtY2IgPSAoTWF0aENvbnRleHQpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBtY2EudG9TdHJpbmcoKS5lcXVhbHMobWNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIExSVU1hcEhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMUlVNYXBbXSBtYXBzID0gbmV3IExSVU1hcFsxXTsKKyAgICAgICAgICAgIG1hcHNbMF0gPSBuZXcgTFJVTWFwKCk7CisgICAgICAgICAgICBtYXBzWzBdLnB1dCgiMSIsICJhIik7CisgICAgICAgICAgICBtYXBzWzBdLnB1dCgiMiIsICJiIik7CisgICAgICAgICAgICByZXR1cm4gbWFwczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBMUlVNYXAgbWFwQSA9IChMUlVNYXApIGE7CisgICAgICAgICAgICBMUlVNYXAgbWFwQiA9IChMUlVNYXApIGI7CisgICAgICAgICAgICByZXR1cm4gbWFwQS5lcXVhbHMobWFwQik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBMaW5rZWRIYXNoTWFwSGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExpbmtlZEhhc2hNYXBbXSBtYXBzID0gbmV3IExpbmtlZEhhc2hNYXBbMl07CisgICAgICAgICAgICBtYXBzWzBdID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICAgICAgICAgIG1hcHNbMV0gPSBuZXcgTGlua2VkSGFzaE1hcCgxNiwgMC43NUYsIHRydWUpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgICAgICBtYXBzW2ldLnB1dCgiMSIsICJhIik7CisgICAgICAgICAgICAgICAgbWFwc1tpXS5wdXQoIjIiLCAiYiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1hcHM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgTGlua2VkSGFzaE1hcCBtYXBBID0gKExpbmtlZEhhc2hNYXApIGE7CisgICAgICAgICAgICBMaW5rZWRIYXNoTWFwIG1hcEIgPSAoTGlua2VkSGFzaE1hcCkgYjsKKyAgICAgICAgICAgIHJldHVybiBtYXBBLmVxdWFscyhtYXBCKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIEhhc2hNYXAgbWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAKKyAgICBzdGF0aWMgeworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLlRpbWVab25lIiwgbmV3IFRpbWVab25lSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZSIsIG5ldyBTaW1wbGVUaW1lWm9uZUhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSIsIG5ldyBVTG9jYWxlSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeSIsIG5ldyBDdXJyZW5jeUhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUiLCBuZXcgSkRLVGltZVpvbmVIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS5pbXBsLkxpbmtlZEhhc2hNYXAiLCBuZXcgTGlua2VkSGFzaE1hcEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LmltcGwuTFJVTWFwIiwgbmV3IExSVU1hcEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LmltcGwuT2xzb25UaW1lWm9uZSIsIG5ldyBPbHNvblRpbWVab25lSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIiLCBuZXcgVGltZVpvbmVBZGFwdGVySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIiwgbmV3IEJpZ0RlY2ltYWxIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IiwgbmV3IE1hdGhDb250ZXh0SGFuZGxlcigpKTsKKyAgICAgICAgCisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLk51bWJlckZvcm1hdEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdCIsIG5ldyBGb3JtYXRUZXN0cy5EZWNpbWFsRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQiLCBuZXcgRm9ybWF0VGVzdHMuUnVsZUJhc2VkTnVtYmVyRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyIsIG5ldyBGb3JtYXRUZXN0cy5EZWNpbWFsRm9ybWF0U3ltYm9sc0hhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdCIsIG5ldyBGb3JtYXRUZXN0cy5NZXNzYWdlRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLkRhdGVGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzIiwgbmV3IEZvcm1hdFRlc3RzLkRhdGVGb3JtYXRTeW1ib2xzSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLlNpbXBsZURhdGVGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLkNoaW5lc2VEYXRlRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMiLCBuZXcgRm9ybWF0VGVzdHMuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzSGFuZGxlcigpKTsKKworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyIiwgbmV3IENhbGVuZGFyVGVzdHMuQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5CdWRkaGlzdENhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5DaGluZXNlQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyIiwgbmV3IENhbGVuZGFyVGVzdHMuQ29wdGljQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkV0aGlvcGljQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5FdGhpb3BpY0NhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkdyZWdvcmlhbkNhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkhlYnJld0NhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5Jc2xhbWljQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5KYXBhbmVzZUNhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgCisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiIsIG5ldyBFeGNlcHRpb25UZXN0cy5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24iLCBuZXcgRXhjZXB0aW9uVGVzdHMuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24iLCBuZXcgRXhjZXB0aW9uVGVzdHMuVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UuaW1wbC5JbnZhbGlkRm9ybWF0RXhjZXB0aW9uIiwgbmV3IEV4Y2VwdGlvblRlc3RzLkludmFsaWRGb3JtYXRFeGNlcHRpb25IYW5kbGVyKCkpOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdCRGaWVsZCIsIG5ldyBGb3JtYXRUZXN0cy5OdW1iZXJGb3JtYXRGaWVsZEhhbmRsZXIoKSk7CisvLyNlbmRpZgorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU2VyaWFsaXphYmxlVGVzdCgpCisgICAgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZS5Db3ZlcmFnZVRlc3QiLAorICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuQ29tcGF0aWJpbGl0eVRlc3QifSwKKyAgICAgICAgICAgICAgICAiQWxsIFNlcmlhbGl6YWJsZSBUZXN0cyIKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSAgPSAiU2VyaWFsaXphYmxlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBTZXJpYWxpemFibGVUZXN0IHRlc3QgPSBuZXcgU2VyaWFsaXphYmxlVGVzdCgpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorfQorLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL1NlcmlhbGl6YWJsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NjAyZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL1NlcmlhbGl6YWJsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CisKKy8qKgorICogVGhpcyBjbGFzcyB3cml0ZXMgdGhlIHRlc3Qgb2JqZWN0cyBmb3IgZWFjaCBjbGFzcyB0byBhIGZpbGUuIFRoZSB3b3JrIGlzCisgKiBhY3R1YWxseSBkb25lIGJ5IHRoZSBzdXBlcmNsYXNzLCBDb3ZlcmFnZVRlc3QuIFRoaXMgY2xhc3MganVzdCBjb25zdHJ1Y3RzCisgKiBhIENvdmVyYWdlVGVzdCB3LyBhIG5vbi1udWxsIHBhdGgsIHdoaWNoIHRlbGxzIGl0IHRvIHdyaXRlIHRoZSBkYXRhLgorICogCisgKi8KK3B1YmxpYyBjbGFzcyBTZXJpYWxpemFibGVXcml0ZXIgZXh0ZW5kcyBDb3ZlcmFnZVRlc3QKK3sKKyAgICBwdWJsaWMgU2VyaWFsaXphYmxlV3JpdGVyKFN0cmluZyBwYXRoKQorICAgIHsKKyAgICAgICAgc3VwZXIocGF0aCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBmb2xkZXJOYW1lKCkKKyAgICB7CisgICAgICAgIGludCBtYWpvciA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1ham9yKCk7CisgICAgICAgIGludCBtaW5vciA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pbm9yKCk7CisgICAgICAgIGludCBtaWxsaSA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pbGxpKCk7CisgICAgICAgIGludCBtaWNybyA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pY3JvKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCJJQ1VfIik7CisgICAgICAgIAorICAgICAgICByZXN1bHQuYXBwZW5kKG1ham9yKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiLiIpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1pbm9yKTsKKyAgICAgICAgCisgICAgICAgIGlmIChtaWxsaSAhPSAwIHx8IG1pY3JvICE9IDApIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIi4iKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobWlsbGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobWljcm8gIT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIi4iKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1pY3JvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBVUkwgZGF0YVVSTCA9IFNlcmlhbGl6YWJsZVdyaXRlci5jbGFzcy5nZXRSZXNvdXJjZSgiZGF0YSIpOworICAgICAgICBDb3ZlcmFnZVRlc3QgdGVzdCA9IG5ldyBTZXJpYWxpemFibGVXcml0ZXIoZGF0YVVSTC5nZXRQYXRoKCkgKyAiLyIgKyBmb2xkZXJOYW1lKCkpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgICAgIAorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBkNGE1NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjY1NWJkOWFlMTljOTNkZjRjMWZjNTViZTkwMWNiZTYyMzVmOWMyMDNjOTc1M2FlNThmMWNlMDg2ODFiMDJlOGEKK3NpemUgMTExNwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuT2xzb25UaW1lWm9uZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIxYmU0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuT2xzb25UaW1lWm9uZS5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MWI1ZGUzOTdlZWZkMDVjZGI1ZWNmZTdlN2M5MTA4ZDljZDg1MGE5NmVhMjc0MGNmMDE3OGI0OGM0YTZjMDYzOAorc2l6ZSAxMjI1NgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4ZDczOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLlRpbWVab25lQWRhcHRlci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YzJiYzcwNTkwZDIyZTAwNGNlYTU1OGU1YmM3MWU0M2Y1YjkyNTI4OGEyZTJlNzQwZTQ4NDI3YmFlOWEzNDBjNQorc2l6ZSAxMjY4OQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdmZGQ1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6Zjk4MDc2YTVjNWE2MDZjMjBlMmEwNDliZGNmMGFiMmU2MTVjNTRlZThlNTRkNTc1N2ZiNWMwOThiOTBkMTI3Mworc2l6ZSA1MjAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJkZjNkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjU3YTA3NjlkNTJhZWI1NjExMTNkODc3NTkyZTAzYTQyMTA2ZWEyYTgwZWM3YjU5ZWJiODEyZGViNzc4OGMxNzAKK3NpemUgNTk1CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmdFeGNlcHRpb24uZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjhlNDg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo4NTA4MDk4N2I3NmJiZTk1MDU5MmQ3MzUxMjVkMTUyNmRkNjhkMmI1Mzg0NjZiZGNmMDZkODI3YmEwZmNmMzFkCitzaXplIDY3MzMKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjExMjEzNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojg2ZWI1NzM3YmMzYmM1NTVmODUzNzlkNGFhNGU1ZmJmOTAzMzUxZGIwZWZiZmY5ZWUwOWQ4NjUwOTExZjkxZmIKK3NpemUgMTgyMjgwCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQxN2NmNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjowMjZjZWJhZDM5MzdkYWNiMGY1NWY2ZWZkMjRhM2Q3ZGI3Y2ZhNDEyOTAwYTIxNTMwYjJlMDljMzEwNGZlOTg3CitzaXplIDI2MTAzCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDcwNWVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjozYmRlZjk4YWQ5OTIzNjgyZmNhZDUwNWYxNzAyNThkZDhiMTQ3MWQyZjljYjRiNTcxMzFlNmFjMDlkMmEyNDU2CitzaXplIDQ4NTMyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZjVkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo3NzllMjAyMDRmNWY2YTNiMzc5NDY1ZTMzNWE3NWQwY2ZmNmFkZTBkNzdmMGZiZWUxZjEyYjQzNDg4YzhjMjVhCitzaXplIDI1NjY0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzM5ZDIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjoyMTIyMTI0ZGU4MmRkYzYzYjY2MmFiYmNkMGIzYjhjMThjMDRiNzc1NTUwNTc4YTU3NGZlNjk2ZDBlOTc4YjdjCitzaXplIDY2NjQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY1NTk4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjI2YWVmNWM1ZWRhMWUwN2I5NjdmMDhkMDAwNjBmMDBiMDdhMzRiNmE0ODI5MDE0ZWQwZjMzYWU3NjYzZDFjMjEKK3NpemUgMzE3MwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIyOTc4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6N2ZiMGI0NGRiNWVkM2ZlZTY0ZGY0MjUwZmJlNTUwMTE1ZDI0YzI0NDk0ZTkwNTUwNDc4OGNiMTk3OWU0OGRkNAorc2l6ZSA2NDEKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWNkNDBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmM3OTIwZDgyOWRmY2Q2NjBjZjVkM2U4ZDNiZTNmOWY5NmQ2NDZjZDAzNDhiMTNhYmQ4MGM0ZjEzMzk4OWE2M2EKK3NpemUgMjgyMgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NzQ5M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YTE1NjAzZGIzOGZiZGU5ODQ0ZmUxZDUxZWI3NTYwMDgzYTA2ZmZhMmQ0ZWIwNDBlOWVhZTA1YjNkOTJjN2E4NAorc2l6ZSA1Mzk3MQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTljYzA2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6OWYzMzYyNTBhNThkNmUxMWJhZDU3MWRmZGFmZGViODViOTQ4NGVjZGFjNDc0NGMwYmQ5Mzc2MjlhYjk5NmUwYworc2l6ZSAxNzc1ODYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTZkNDk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjExY2UyZmQwZmVlNjdkNTEwYmMwNGYwODExMzNkMzRkMDU2ZTgyMmFkNTM1MDhmMmVkN2JhNmIyZDY4MTY1NTEKK3NpemUgMTEyMjYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzODVlZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjMwNzFlNWVjNmE5NDAyYjFlZTBjZmJhMGU3NjU2OWU0ODM3ZjZiY2FkN2JmMGYwNjk5MGJmYjMxYTI1OWViMmUKK3NpemUgMjM0NApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWMxMGE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MGJhNjNlYzQzYzRjNjQ1ZDU1NTE1ZDYyZmQ1YjY5ZGIxNjFhZTQ4MzU5MjA3OTcyNDg0NmY0MDc2ZmVlMTE3OQorc2l6ZSAzMTQ2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY0ZTE4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpjZWYwN2E0YWJjM2VlNDdkNmRhMWUzMGMyZWI1NGNiYWQzZTNmMDg0Yjg1NWFkNmExYWIyY2NiY2VhODczOGZkCitzaXplIDIxOTUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ29wdGljQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Db3B0aWNDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM0OWYwZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Db3B0aWNDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6Yzc4ZDA1YzRjMTM2OGNkYjE1OWJhYTAyY2UxZmQ1YzhjMjk1Mzc2ODM2MDc5YzBiMzNkNzc1Y2M2Y2Y3ZmZmMQorc2l6ZSAyOTY0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkN1cnJlbmN5LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3kuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZmE5NzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkN1cnJlbmN5LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo5ODcyNmQ0MWZjYmUyNDk1N2QyYjY5YTY2ZjIwODg3YWQ3NTc4MjFkNjkxZDQ4ZTk3MTg1MWQ5YzY0YWE3OTcyCitzaXplIDM1MQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI1MDU2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YzBiNWQ5ODE1ZGZlMzNkMWZmNTc1MGUzZDZhNjM2YzJjZDg0NzBhYjI4MDQwYjEzZjJmNTc5NGYzM2QzMDY0Mworc2l6ZSAyMjU2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjYTljYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo4ZDZkMDhhOWM3Mzk5OTQzZjQwNzFiNTZjOWE4ZTZhMWZlMjhiZmU2YTFjODllMTMyMWQ5YWVhMTA2NGVhODE4CitzaXplIDMxNTUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM3ZTAzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXIuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojc5YjY0OTdjNTZhYzlhMzc4YmU2YzgwZDg1OTQ4ZDAzZWY1NTZhZTFjNjc2OGNjY2Y2ZDcxM2ZkNGYxZTQyZjcKK3NpemUgMjgyNwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OGUyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6OTYxZTg1NDE2MTgxZDNiZDdlYzhhNjQyZjc5MzZlODA1OGZmZDkyZjk5ZjY0OGQ5NzAyZmJkNTE5NzEyOTZmZgorc2l6ZSAzMDExCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmM0Y2ZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpkYTJiNGIyYzc2MDcxOWU3MDc1NmE4YmQwNDE1YzFiYjhjN2Y4ZTc3MTkzNTBlNzdmYjMyYzAzMTE4NzIyZTQxCitzaXplIDIzNDIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVkMjZiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmI4M2E5YzE2N2I1ZTE4MTNmY2U3ZWU3MDRhYTljZTI5Y2RlNjE3YTI5OTYwZDg1N2QwM2IyMGE1NDdhZDRjMWYKK3NpemUgMTI2NQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlRpbWVab25lLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjQ0YmU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6OTZiOWEyMTBmOWQwNmMwNjYyMmM1Nzk4MDE1ZDQyNjc0OTAzYTA3NDExYjAwMmQ3YjJmMWEzOWY2NmYyZmM5Mworc2l6ZSAxMjg4CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVMb2NhbGUuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VTG9jYWxlLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTkyM2UxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VTG9jYWxlLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjoyZDk1MzA0ZmI0MTMxNTNkMmQ2MmE4MTFhZDdlNGQxMWE5NTAxN2E1MGU2MjdmY2U3YzYwMzM2ZWNiYzBiYTI2CitzaXplIDM5MgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyYWFmN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YjNjOTBlOGYwMzdhMTJlYmM1MjgxMTdkOTgzNzBmYmM5N2EzNDIzMzVmYzcxYzg2MWQ3OWMxZDU2OWMxYzJkMAorc2l6ZSA2Nzk4CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2hhcGluZy9BcmFiaWNTaGFwaW5nUmVnVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1JlZ1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDFmZTAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1JlZ1Rlc3QuamF2YQpAQCAtMCwwICsxLDUwMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zaGFwaW5nOworCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZzsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmdFeGNlcHRpb247CisKKy8qKgorICogUmVncmVzc2lvbiB0ZXN0IGZvciBBcmFiaWMgc2hhcGluZy4KKyAqLworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmdSZWdUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgLyogY29uc3RhbnRzIGNvcGllZCBmcm9tIEFyYWJpY1NoYXBpbmcgZm9yIGNvbnZlbmllbmNlICovCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfR1JPV19TSFJJTksgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQgPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HID0gMzsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgPSA0OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSU19OT09QID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFID0gODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEID0gMHgxODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1VOU0hBUEUgPSAweDEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX05PT1AgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTiA9IDB4MjA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0FOMkVOID0gMHg0MDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfRU4yQU5fSU5JVF9MUiA9IDB4NjA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOX0lOSVRfQUwgPSAweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUdJVFNfUkVTRVJWRUQgPSAweGEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTiA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCA9IDB4MTAwOworCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBUZXN0RGF0YSB7CisgICAgICAgIHB1YmxpYyBpbnQgdHlwZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBzb3VyY2U7CisgICAgICAgIHB1YmxpYyBpbnQgZmxhZ3M7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVzdWx0OworICAgICAgICBwdWJsaWMgaW50IGxlbmd0aDsKKyAgICAgICAgcHVibGljIENsYXNzIGVycm9yOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQU5EQVJEID0gMDsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJFRkxJR0hUID0gMTsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1IgPSAyOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdERhdGEgc3RhbmRhcmQoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBTdHJpbmcgcmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRlc3REYXRhKFNUQU5EQVJELCBzb3VyY2UsIGZsYWdzLCByZXN1bHQsIDAsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBUZXN0RGF0YSBwcmVmbGlnaHQoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRlc3REYXRhKFBSRUZMSUdIVCwgc291cmNlLCBmbGFncywgbnVsbCwgbGVuZ3RoLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdERhdGEgZXJyb3IoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBDbGFzcyBlcnJvcikgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBUZXN0RGF0YShFUlJPUiwgc291cmNlLCBmbGFncywgbnVsbCwgMCwgZXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBUZXN0RGF0YShpbnQgdHlwZSwgU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBTdHJpbmcgcmVzdWx0LCBpbnQgbGVuZ3RoLCBDbGFzcyBlcnJvcikgeworICAgICAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICAgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlOworICAgICAgICAgICAgdGhpcy5mbGFncyA9IGZsYWdzOworICAgICAgICAgICAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHR5cGVuYW1lcyA9IHsgInN0YW5kYXJkIiwgInByZWZsaWdodCIsICJlcnJvciIgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCJbXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodHlwZW5hbWVzW3R5cGVdKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgibnVsbCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCciJyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChlc2NhcGVkU3RyaW5nKHNvdXJjZSkpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyInKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGZsYWdzKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIm51bGwiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnIicpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZXNjYXBlZFN0cmluZyhyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCciJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGVuZ3RoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChlcnJvcik7CisgICAgICAgICAgICBidWYuYXBwZW5kKCddJyk7CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbGFtQWxlZlNwZWNpYWxWTFRSID0KKyAgICAgICAgIlx1MDAyMFx1MDY0Nlx1MDYyMlx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyM1x1MDY0RVx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyN1x1MDY3MFx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyMlx1MDY1M1x1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyNVx1MDY1NVx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyMlx1MDY1NFx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1RkVGQ1x1MDYzOSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGFzaGtlZWxTcGVjaWFsVkxUUiA9CisgICAgICAgICJcdTA2NEFcdTA2MjhcdTA2MzFcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDY0QVx1MDYyOFx1MDY1MVx1MDYzMVx1MDY0RVx1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjRDXHUwNjRBXHUwNjI4XHUwNjMxXHUwNjRGXHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2MjhcdTA2NzBcdTA2MzFcdTA2NzBcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDYyOFx1MDY1M1x1MDYzMVx1MDY1M1x1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjI4XHUwNjU0XHUwNjMxXHUwNjU0XHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2MjhcdTA2NTVcdTA2MzFcdTA2NTVcdTA2MzlcdTAwMjAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxvZ2ljYWxVbnNoYXBlID0KKyAgICAgICAgIlx1MDAyMFx1MDAyMFx1MDAyMFx1RkU4RFx1RkVGNVx1MDAyMFx1RkVFNVx1MDAyMFx1RkU4RFx1RkVGN1x1MDAyMCIgKworICAgICAgICAiXHVGRUQ3XHVGRUZDXHUwMDIwXHVGRUUxXHUwMDIwXHVGRThEXHVGRURGXHVGRUNDXHVGRUFFXHVGRTkxXHVGRUY0IiArCisgICAgICAgICJcdUZFOTRcdTAwMjBcdUZFOERcdUZFREZcdUZFQTRcdUZFQUVcdUZFOTNcdTAwMjBcdTAwMjBcdTAwMjBcdTAwMjAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIG51bVNvdXJjZSA9CisgICAgICAgICJcdTAwMzEiICsgIC8qIGVuOjEgKi8KKyAgICAgICAgIlx1MDYyNyIgKyAgLyogYXJhYmljOmFsZWYgKi8KKyAgICAgICAgIlx1MDAzMiIgKyAgLyogZW46MiAqLworICAgICAgICAiXHUwNmYzIiArICAvKiBhbjozICovCisgICAgICAgICJcdTAwNjEiICsgIC8qIGxhdGluOmEgKi8KKyAgICAgICAgIlx1MDAzNCI7ICAgLyogZW46NCAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGVzdERhdGFbXSBzdGFuZGFyZFRlc3RzID0geworICAgICAgICAvKiBsYW0gYWxlZiBzcGVjaWFsIHZpc3VhbCBsdHIgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDAyMFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHVmZTc2XHVmZWY3XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NzBcdWZlZmJcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1M1x1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU1XHVmZWY5XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjAiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisKKyAgICAgICAgLyogVEFTSEtFRUwgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDAyMFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHVmZTc2XHVmZWY3XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NzBcdWZlZmJcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1M1x1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU1XHVmZWY5XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjAiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisKKyAgICAgICAgLyogdGFzaGtlZWwgc3BlY2lhbCB2aXN1YWwgbHRyICovCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKHRhc2hrZWVsU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWYyXHVmZTkxXHVmZWFlXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZjJcdWZlOTFcdWZlN2NcdWZlYWVcdWZlNzdcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Mlx1ZmVmMlx1ZmU5MVx1ZmVhZVx1ZmU3OVx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjcwXHVmZWFlXHUwNjcwXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTNcdWZlYWVcdTA2NTNcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1NFx1ZmVhZVx1MDY1NFx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjU1XHVmZWFlXHUwNjU1XHVmZWNiXHUwMDIwIiksCisKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQodGFzaGtlZWxTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZjJcdWZlOTFcdWZlYWVcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmMlx1ZmU5MVx1ZmU3Y1x1ZmVhZVx1ZmU3Nlx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZTcyXHVmZWYyXHVmZTkxXHVmZWFlXHVmZTc4XHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NzBcdWZlYWVcdTA2NzBcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1M1x1ZmVhZVx1MDY1M1x1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjU0XHVmZWFlXHUwNjU0XHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTVcdWZlYWVcdTA2NTVcdWZlY2JcdTAwMjAiKSwKKworICAgICAgICAvKiBsb2dpY2FsIHVuc2hhcGUgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobG9naWNhbFVuc2hhcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjBcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjJcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTA2NDJcdTA2NDRcdTA2MjciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyZFx1MDYzMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjI5XHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjBcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjJcdTAwMjBcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTAwMjBcdTA2NDIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NFx1MDYyN1x1MDAyMFx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyNyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjQ0XHUwNjJkXHUwNjMxXHUwNjI5XHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2MjdcdTA2NDRcdTA2MjJcdTAwMjBcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTAwMjBcdTA2NDJcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyZFx1MDYzMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjI5XHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIyXHUwMDIwXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwMDIwXHUwNjQyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NDRcdTA2MjdcdTAwMjBcdTA2NDVcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NGFcdTA2MjlcdTAwMjBcdTA2MjciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NFx1MDYyZFx1MDYzMVx1MDYyOVx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIpLAorCisgICAgICAgIC8qIG51bWJlcnMgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBESUdJVFNfRU4yQU4gfCBESUdJVF9UWVBFX0FOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjI3XHUwNjYyXHUwNmYzXHUwMDYxXHUwNjY0IiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKG51bVNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElHSVRTX0FOMkVOIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzMVx1MDYyN1x1MDAzMlx1MDAzM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0xSIHwgRElHSVRfVFlQRV9BTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzMVx1MDYyN1x1MDY2Mlx1MDZmM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0FMIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDZmMVx1MDYyN1x1MDZmMlx1MDZmM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0xSIHwgRElHSVRfVFlQRV9BTiB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2MjdcdTAwMzJcdTA2ZjNcdTAwNjFcdTAwMzQiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBESUdJVFNfRU4yQU5fSU5JVF9BTCB8IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNmYxXHUwNjI3XHUwMDMyXHUwNmYzXHUwMDYxXHUwNmY0IiksCisKKyAgICAgICAgLyogbm8tb3AgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBudW1Tb3VyY2UpLAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUZXN0RGF0YVtdIHByZWZsaWdodFRlc3RzID0geworICAgICAgICAvKiBwcmVmbGlnaHQgKi8KKyAgICAgICAgVGVzdERhdGEucHJlZmxpZ2h0KCJcdTA2NDRcdTA2MjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IExFTkdUSF9HUk9XX1NIUklOSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpLAorCisgICAgICAgIFRlc3REYXRhLnByZWZsaWdodCgiXHUwNjQ0XHUwNjI3XHUwMDMxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTiB8IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAzKSwKKworICAgICAgICBUZXN0RGF0YS5wcmVmbGlnaHQoIlx1MDY0NFx1MDY0NCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMiksCisKKyAgICAgICAgVGVzdERhdGEucHJlZmxpZ2h0KCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMiksCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRlc3REYXRhW10gZXJyb3JUZXN0cyA9IHsKKyAgICAgICAgLyogYmFkIGRhdGEgKi8KKyAgICAgICAgVGVzdERhdGEuZXJyb3IoIlx1MDAyMFx1ZmVmN1x1MDY0NFx1MDAyMCIsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5jbGFzcyksCisKKyAgICAgICAgVGVzdERhdGEuZXJyb3IoIlx1MDAyMFx1ZmVmNyIsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmNsYXNzKSwKKworICAgICAgICBUZXN0RGF0YS5lcnJvcigiXHVmZWY3XHUwMDIwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIC8qIGJhZCBvcHRpb25zICovCisgICAgICAgIFRlc3REYXRhLmVycm9yKCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmLAorICAgICAgICAgICAgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIFRlc3REYXRhLmVycm9yKCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIFRlc3REYXRhLmVycm9yKG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uY2xhc3MpLAorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhbmRhcmQoKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhbmRhcmRUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGVzdERhdGEgdGVzdCA9IHN0YW5kYXJkVGVzdHNbaV07CisKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBleCA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzaGFwZXIgPSBuZXcgQXJhYmljU2hhcGluZyh0ZXN0LmZsYWdzKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzaGFwZXIuc2hhcGUodGVzdC5zb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGllKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjogIitpZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBleCA9IGU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdGVzdC5yZXN1bHQuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRUZXN0RmFpbHVyZShpLCB0ZXN0LCBzaGFwZXIsIHJlc3VsdCwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFByZWZsaWdodCgpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcmVmbGlnaHRUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGVzdERhdGEgdGVzdCA9IHByZWZsaWdodFRlc3RzW2ldOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgY2hhciBzcmNbXSA9IG51bGw7CisgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgaWYgKHRlc3Quc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzcmMgPSB0ZXN0LnNvdXJjZS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNoYXBlciA9IG5ldyBBcmFiaWNTaGFwaW5nKHRlc3QuZmxhZ3MpOworICAgICAgICAgICAgICAgIGxlbiA9IHNoYXBlci5zaGFwZShzcmMsIDAsIHNyYy5sZW5ndGgsIG51bGwsIDAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGVzdC5sZW5ndGggIT0gbGVuKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmUoaSwgdGVzdCwgc2hhcGVyLCB0ZXN0LnNvdXJjZSwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEVycm9yKCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVycm9yVGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRlc3REYXRhIHRlc3QgPSBlcnJvclRlc3RzW2ldOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgY2hhciBzcmNbXSA9IG51bGw7CisgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgaWYgKHRlc3Quc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzcmMgPSB0ZXN0LnNvdXJjZS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgICAgIGxlbiA9IHNyYy5sZW5ndGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2hhcGVyID0gbmV3IEFyYWJpY1NoYXBpbmcodGVzdC5mbGFncyk7CisgICAgICAgICAgICAgICAgc2hhcGVyLnNoYXBlKHNyYywgMCwgbGVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCF0ZXN0LmVycm9yLmlzSW5zdGFuY2UoZXgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmUoaSwgdGVzdCwgc2hhcGVyLCB0ZXN0LnNvdXJjZSwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFscygpCisgICAgeworICAgICAgICBBcmFiaWNTaGFwaW5nIGFzMSA9IG5ldyBBcmFiaWNTaGFwaW5nKExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSKTsKKyAgICAgICAgQXJhYmljU2hhcGluZyBhczIgPSBuZXcgQXJhYmljU2hhcGluZyhMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUik7CisgICAgICAgIEFyYWJpY1NoYXBpbmcgYXMzID0gbmV3IEFyYWJpY1NoYXBpbmcoTEVUVEVSU19VTlNIQVBFIHwgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HKTsKKworICAgICAgICBpZiAoISBhczEuZXF1YWxzKGFzMSkpIHsKKyAgICAgICAgICAgIGVycigiYXMxOiAiICsgYXMxICsgIiBkb2VzIG5vdCBlcXVhbCBpdHNlbGYhXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghIGFzMS5lcXVhbHMoYXMyKSkgeworICAgICAgICAgICAgZXJyKCJhczE6ICIgKyBhczEgKyAiLCBhczI6ICIgKyBhczIgKyAiIGFyZSBub3QgZXF1YWwsIGJ1dCBzaG91bGQgYmUuXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhczEuZXF1YWxzKGFzMykpIHsKKyAgICAgICAgICAgIGVycigiYXMxOiAiICsgYXMxICsgIiwgYXMzOiAiICsgYXMzICsgIiBhcmUgZXF1YWwgYnV0IHNob3VsZCBub3QgYmUuXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlcG9ydFRlc3RGYWlsdXJlKGludCBpbmRleCwgVGVzdERhdGEgdGVzdCwgQXJhYmljU2hhcGluZyBzaGFwZXIsIFN0cmluZyByZXN1bHQsIEV4Y2VwdGlvbiBlcnJvcikgeworICAgICAgICBpZiAobm9EYXRhKCkgJiYgZXJyb3IgIT0gbnVsbCAmJiBlcnJvciBpbnN0YW5jZW9mIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiApIHsKKyAgICAgICAgICAgIHdhcm5sbihlcnJvci5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiKioqIHRlc3QgZmFpbHVyZSAqKipcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJpbmRleDogIiArIGluZGV4ICsgIlxuIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoInRlc3Q6ICIgKyB0ZXN0ICsgIlxuIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoInNoYXBlcjogIiArIHNoYXBlciArICJcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJyZXN1bHQ6ICIgKyBlc2NhcGVkU3RyaW5nKHJlc3VsdCkgKyAiXG4iKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiZXJyb3I6ICIgKyBlcnJvciArICJcbiIpOworCisgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCAmJiB0ZXN0LnJlc3VsdCAhPSBudWxsICYmICF0ZXN0LnJlc3VsdC5lcXVhbHMocmVzdWx0KSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNYXRoLm1heCh0ZXN0LnJlc3VsdC5sZW5ndGgoKSwgcmVzdWx0Lmxlbmd0aCgpKTsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBJbnRlZ2VyLnRvU3RyaW5nKGkpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wLmxlbmd0aCgpIDwgMikgeworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gIiAiLmNvbmNhdCh0ZW1wKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hhciB0cmcgPSBpIDwgdGVzdC5yZXN1bHQubGVuZ3RoKCkgPyB0ZXN0LnJlc3VsdC5jaGFyQXQoaSkgOiAnXHVmZmZmJzsKKyAgICAgICAgICAgICAgICBjaGFyIHJlcyA9IGkgPCByZXN1bHQubGVuZ3RoKCkgPyByZXN1bHQuY2hhckF0KGkpIDogJ1x1ZmZmZic7CisKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJbIiArIHRlbXAgKyAiXSAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGVzY2FwZWRTdHJpbmcoIiIgKyB0cmcpICsgIiAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGVzY2FwZWRTdHJpbmcoIiIgKyByZXMpICsgIiAiKTsKKyAgICAgICAgICAgICAgICBpZiAodHJnICE9IHJlcykgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIqKioiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlcnIoYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBlc2NhcGVkU3RyaW5nKFN0cmluZyBzdHIpIHsKKyAgICAgICAgaWYgKHN0ciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5sZW5ndGgoKSAqIDYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc3RyLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMTAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMDEwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBBcmFiaWNTaGFwaW5nUmVnVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDI3MzM1YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNoYXBpbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uOworCisvKioKKyAqIEludGVyYWN0aXZlIHRlc3QgZm9yIEFyYWJpYyBzaGFwaW5nLgorICogSW52b2tlIGZyb20gYSBjb21tYW5kIGxpbmUgcGFzc2luZyBhcmdzIGFuZCBzdHJpbmdzLiAgVXNlICctaGVscCcgdG8gc2VlIGRlc2NyaXB0aW9uIG9mIGFyZ3VtZW50cy4KKyAqLworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmdUZXN0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09QWSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOUExBQ0UgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVFJJTkcgPSAyOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBpbnQgdGVzdHR5cGUgPSBDT1BZOworICAgICAgICBpbnQgb3B0aW9ucyA9IDA7CisgICAgICAgIGludCBzcyA9IDA7CisgICAgICAgIGludCBzbCA9IC0xOworICAgICAgICBpbnQgZHMgPSAwOworICAgICAgICBpbnQgZGwgPSAtMTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiJDIyLjQgdGVzdCAxMjMgXHVmZWY2XHUwNjQ0XHUwNjIyIDQ1NiBcdTA2NjRcdTA2NjVcdTA2NjYhIjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9wdCA9IGFyZy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IG9wdDsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBhcmcuaW5kZXhPZignOicpOworICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBvcHQgPSBvcHQuc3Vic3RyaW5nKDAsIE1hdGgubWluKGluZGV4LCAzKSk7CisgICAgICAgICAgICAgICAgICAgIHZhbCA9IGFyZy5zdWJzdHJpbmcoaW5kZXggKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJsZW4iKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkxFTkdUSF9NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImdzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfR1JPV19TSFJJTks7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX05FQVI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic2IiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkxFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJkaXIiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX01BU0s7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgibG9nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5URVhUX0RJUkVDVElPTl9MT0dJQ0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ2aXMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImxldCIpKSB7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgJj0gfkFyYWJpY1NoYXBpbmcuTEVUVEVSU19NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoIm5vIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNoIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX1NIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ1biIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19VTlNIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ0YSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGlnIikpIHsKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyAmPSB+QXJhYmljU2hhcGluZy5ESUdJVFNfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJubyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImVhIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImFlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfQU4yRU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImxyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU5fSU5JVF9MUjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiYWwiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUU19FTjJBTl9JTklUX0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJ0eXAiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJhbiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRfVFlQRV9BTjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiZXgiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfQU5fRVhURU5ERUQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImRzdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcyA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGxuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRsID0gSW50ZWdlci5wYXJzZUludCh2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJzc3QiKSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3MgPSBJbnRlZ2VyLnBhcnNlSW50KHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoInNsbiIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzbCA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgidGVzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJjcCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0dHlwZSA9IENPUFk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImlwIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3R0eXBlID0gSU5QTEFDRTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic3QiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHR5cGUgPSBTVFJJTkc7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImhlbHAiKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odXNhZ2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93T3B0RXJyb3Iob3B0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFzc3VtZSB0ZXh0CisgICAgICAgICAgICAgICAgdGV4dCA9IHBhcnNlVGV4dChhcmcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNsIDwgMCkgeworICAgICAgICAgICAgc2wgPSB0ZXh0Lmxlbmd0aCgpIC0gc3M7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInNsIGRlZmF1bHRpbmcgdG8gIiArIHNsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGwgPCAwKSB7CisgICAgICAgICAgICBkbCA9IDIgKiBzbDsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGwgZGVmYXVsdGluZyB0byAiICsgZGwpOworICAgICAgICB9CisKKyAgICAgICAgQXJhYmljU2hhcGluZyBzaGFwZXIgPSBuZXcgQXJhYmljU2hhcGluZyhvcHRpb25zKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzaGFwZXI6ICIgKyBzaGFwZXIpOworCisgICAgICAgIGNoYXJbXSBzcmMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIGlucHV0OiAnIiArIGVzY2FwZWRUZXh0KHNyYywgc3MsIHNsKSArICInIik7CisgICAgICAgIGlmICh0ZXN0dHlwZSAhPSBTVFJJTkcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3RhcnQ6ICIgKyBzcyArICIgbGVuZ3RoOiAiICsgc2wgKyAiIHRvdGFsIGxlbmd0aDogIiArIHNyYy5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBjaGFyW10gZGVzdCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN3aXRjaCAodGVzdHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ09QWToKKyAgICAgICAgICAgICAgICBkZXN0ID0gbmV3IGNoYXJbZHMgKyBkbF07CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsLCBkZXN0LCBkcywgZGwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIElOUExBQ0U6CisgICAgICAgICAgICAgICAgc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsKTsKKyAgICAgICAgICAgICAgICBkcyA9IHNzOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNsOworICAgICAgICAgICAgICAgIGRlc3QgPSBzcmM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU1RSSU5HOgorICAgICAgICAgICAgICAgIGRlc3QgPSBzaGFwZXIuc2hhcGUodGV4dCkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgICAgICBkcyA9IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGVzdC5sZW5ndGg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiAnIiArIGVzY2FwZWRUZXh0KGRlc3QsIGRzLCByZXN1bHQpICsgIiciKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGVuZ3RoOiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChkcyAhPSAwIHx8IHJlc3VsdCAhPSBkZXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZnVsbCBvdXRwdXQ6ICciICsgZXNjYXBlZFRleHQoZGVzdCwgMCwgZGVzdC5sZW5ndGgpICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dPcHRFcnJvcihTdHJpbmcgb3B0KSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biBvcHRpb246ICIgKyBvcHQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dWYWxFcnJvcihTdHJpbmcgb3B0LCBTdHJpbmcgdmFsKSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biB2YWx1ZTogIiArIHZhbCArICIgZm9yIG9wdGlvbjogIiArIG9wdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0aHJvd1VzYWdlRXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIioqKiB1c2FnZSBlcnJvciAqKipcbiIpOworICAgICAgICBidWYuYXBwZW5kKG1lc3NhZ2UpOworICAgICAgICBidWYuYXBwZW5kKCJcbiIpOworICAgICAgICBidWYuYXBwZW5kKHVzYWdlKTsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2UgPSAKKyAgICAgICAgIlVzYWdlOiBbb3B0aW9uXSogW3RleHRdXG4iICsKKyAgICAgICAgIiAgd2hlcmUgb3B0aW9uIGlzIGluIHRoZSBmb3JtYXQgJy1vcHRbOnZhbF0nXG4iICsKKyAgICAgICAgIiAgb3B0aW9ucyBhcmU6XG4iICsKKyAgICAgICAgIiAgICAtbGVuOltnc3xzbnxzZXxzYl0gICAgKGxlbmd0aDogZ3Jvdy9zaHJpbmssIHNwYWNlcyBuZWFyLCBzcGFjZXMgZW5kLCBzcGFjZXMgYmVnaW5uaW5nKVxuIiArCisgICAgICAgICIgICAgLWRpcjpbbG9nfHZpc10gICAgICAgIChkaXJlY3Rpb246IGxvZ2ljYWwsIHZpc3VhbClcbiIgKworICAgICAgICAiICAgIC1sZXQ6W25vfHNofHVufHRhXSAgICAobGV0dGVyczogbm9vcCwgc2hhcGUsIHVuc2hhcGUsIHRhc2hrZWVsKVxuIiArCisgICAgICAgIC8vICIgICAgLWxldDpbbm98c2h8dW5dICAgICAgIChsZXR0ZXJzOiBub29wLCBzaGFwZSwgdW5zaGFwZSlcbiIgKworICAgICAgICAiICAgIC1kaWc6W25vfGVhfGFlfGxyfGFsXSAoZGlnaXRzOiBub29wLCBlbjJhbiwgYW4yZW4sIGVuMmFuX2xyLCBlbjJhbl9hbClcbiIgKworICAgICAgICAiICAgIC10eXA6W2FufGV4XSAgICAgICAgICAoZGlnaXQgdHlwZTogYXJhYmljLCBhcmFiaWMgZXh0ZW5kZWQpXG4iICsKKyAgICAgICAgIiAgICAtZHN0OiMgICAgICAgICAgICAgICAgKGRlc3Qgc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1kbG46IyAgICAgICAgICAgICAgICAoZGVzdCBsZW5ndGggKG1heCBzaXplKTogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXNzdDojICAgICAgICAgICAgICAgIChzb3VyY2Ugc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1zbG46IyAgICAgICAgICAgICAgICAoc291cmNlIGxlbmd0aDogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXRlczpbY3B8aXB8c3RdICAgICAgICh0ZXN0IHR5cGU6IGNvcHksIGluIHBsYWNlLCBzdHJpbmcpXG4iICsKKyAgICAgICAgIiAgICAtaGVscCAgICAgICAgICAgICAgICAgKHByaW50IHRoaXMgaGVscCBtZXNzYWdlKVxuIiArCisgICAgICAgICIgIHRleHQgY2FuIGNvbnRhaW4gdW5pY29kZSBlc2NhcGUgdmFsdWVzIGluIHRoZSBmb3JtYXQgJ1xcdVhYWFgnIG9ubHlcbiI7CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBlc2NhcGVkVGV4dChjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCwgZSA9IHN0YXJ0ICsgbGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dFtpXTsKKyAgICAgICAgICAgIGlmIChjaCA8IDB4MjAgfHwgY2ggPiAweDdlKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2ggPCAweDEwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGFyc2VUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIC8vIHByb2Nlc3MgdW5pY29kZSBlc2NhcGVzIChvbmx5KQorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBjaGFyW10gY2hhcnMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjaGFyc1tpXTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgaWYgKChpIDwgY2hhcnMubGVuZ3RoIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGNoYXJzW2krMV0gPT0gJ3UnKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdmFsID0gSW50ZWdlci5wYXJzZUludCh0ZXh0LnN1YnN0cmluZyhpKzIsIGkrNiksIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhcil2YWwpOworICAgICAgICAgICAgICAgICAgICBpICs9IDU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BQ29uZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BQ29uZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVmZTA0ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFDb25mb3JtYW5jZVRlc3QuamF2YQpAQCAtMCwwICsxLDMwOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuSUROQTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIEBhdXRob3IgbGltYW95dQorICogCisgKi8KK3B1YmxpYyBjbGFzcyBJRE5BQ29uZm9ybWFuY2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJRE5BQ29uZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZSgpIHsKKworICAgICAgICBUcmVlTWFwIGlucHV0RGF0YSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXREYXRhID0gUmVhZElucHV0LmdldElucHV0RGF0YSgpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTZXQga2V5TWFwID0gaW5wdXREYXRhLmtleVNldCgpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXIgPSBrZXlNYXAuaXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBMb25nIGVsZW1lbnQgPSAoTG9uZykgaXRlci5uZXh0KCk7CisgICAgICAgICAgICBIYXNoTWFwIHRlbXBIYXNoID0gKEhhc2hNYXApIGlucHV0RGF0YS5nZXQoZWxlbWVudCk7CisKKyAgICAgICAgICAgIC8vZ2V0IGFsbCBhdHRyaWJ1dGVzIGZyb20gaW5wdXQgZGF0YQorICAgICAgICAgICAgU3RyaW5nIHBhc3NmYWlsID0gKFN0cmluZykgdGVtcEhhc2guZ2V0KCJwYXNzZmFpbCIpOworICAgICAgICAgICAgU3RyaW5nIGRlc2MgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoImRlc2MiKTsKKyAgICAgICAgICAgIFN0cmluZyB0eXBlID0gKFN0cmluZykgdGVtcEhhc2guZ2V0KCJ0eXBlIik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZWJhc2UgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoIm5hbWViYXNlIik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZXV0ZjggPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoIm5hbWV1dGY4Iik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZXpvbmUgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoIm5hbWV6b25lIik7CisgICAgICAgICAgICBTdHJpbmcgZmFpbHpvbmUxID0gKFN0cmluZykgdGVtcEhhc2guZ2V0KCJmYWlsem9uZTEiKTsKKyAgICAgICAgICAgIFN0cmluZyBmYWlsem9uZTIgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoImZhaWx6b25lMiIpOworCisgICAgICAgICAgICAvL3RoZXkgbWF5YmUgaW5jbHVkZXMgPCo+IHN0eWxlIHVuaWNvZGUKKyAgICAgICAgICAgIG5hbWViYXNlID0gc3RyaW5nUmVwbGFjZShuYW1lYmFzZSk7CisgICAgICAgICAgICBuYW1lem9uZSA9IHN0cmluZ1JlcGxhY2UobmFtZXpvbmUpOworCisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIGJvb2xlYW4gZmFpbGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICgidG9hc2NpaSIuZXF1YWxzKHRlbXBIYXNoLmdldCgidHlwZSIpKSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vZ2V0IHRoZSByZXN1bHQKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvL2J5IGRlZmF1bHQgU1REMyBydWxlcyBhcmUgbm90IHVzZWQsIGJ1dCBpZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICAgICAgLy9pbmNsdWRlcyBVc2VTVEQzQVNDSUlSdWxlcywgd2Ugd2lsbCBzZXQgaXQuCisgICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlU1REM0FTQ0lJUnVsZXMiLnRvTG93ZXJDYXNlKCkpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKG5hbWViYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE5BLkFMTE9XX1VOQVNTSUdORUQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKG5hbWViYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE5BLlVTRV9TVEQzX1JVTEVTKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vZXJybG4oZTIuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCJwYXNzIi5lcXVhbHMocGFzc2ZhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbmFtZXpvbmUuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiXHQgcGFzcyBmYWlsIHN0YW5kYXJkIGlzIHBhc3MsIGJ1dCBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiXHRwYXNzZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgiZmFpbCIuZXF1YWxzKHBhc3NmYWlsKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludEluZm8oZGVzYywgbmFtZWJhc2UsIG5hbWV1dGY4LCBuYW1lem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHpvbmUxLCBmYWlsem9uZTIsIHJlc3VsdCwgdHlwZSwgcGFzc2ZhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oInBhc3NlZCIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJcdCBwYXNzIGZhaWwgc3RhbmRhcmQgaXMgZmFpbCwgYnV0IG5vIGV4Y2VwdGlvbiB0aHJvd24gb3V0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKCJ0b3VuaWNvZGUiLmVxdWFscyh0ZW1wSGFzaC5nZXQoInR5cGUiKSkpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvL2J5IGRlZmF1bHQgU1REMyBydWxlcyBhcmUgbm90IHVzZWQsIGJ1dCBpZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICAgICAgLy9pbmNsdWRlcyBVc2VTVEQzQVNDSUlSdWxlcywgd2Ugd2lsbCBzZXQgaXQuCisgICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlU1REM0FTQ0lJUnVsZXMiLnRvTG93ZXJDYXNlKCkpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBJRE5BLmNvbnZlcnRJRE5Ub1VuaWNvZGUobmFtZWJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETkEuQUxMT1dfVU5BU1NJR05FRCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IElETkEuY29udmVydElETlRvVW5pY29kZShuYW1lYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUROQS5VU0VfU1REM19SVUxFUykudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICAvL2VycmxuKGUyLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgicGFzcyIuZXF1YWxzKHBhc3NmYWlsKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIW5hbWV6b25lLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludEluZm8oZGVzYywgbmFtZWJhc2UsIG5hbWV1dGY4LCBuYW1lem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHpvbmUxLCBmYWlsem9uZTIsIHJlc3VsdCwgdHlwZSwgcGFzc2ZhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiXHQgRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdC4gRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShuYW1lem9uZSkgKyAiIEdvdDogIiArIHByZXR0aWZ5KHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJcdHBhc3NlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCJmYWlsIi5lcXVhbHMocGFzc2ZhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmYWlsZWQgfHwgbmFtZWJhc2UuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJcdHBhc3NlZCIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlx0IHBhc3MgZmFpbCBzdGFuZGFyZCBpcyBmYWlsLCBidXQgbm8gZXhjZXB0aW9uIHRocm93biBvdXQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCBsb2cgbWVzc2FnZS4KKyAgICAgKiBAcGFyYW0gZGVzYworICAgICAqIEBwYXJhbSBuYW1lYmFzZQorICAgICAqIEBwYXJhbSBuYW1ldXRmOAorICAgICAqIEBwYXJhbSBuYW1lem9uZQorICAgICAqIEBwYXJhbSBmYWlsem9uZTEKKyAgICAgKiBAcGFyYW0gZmFpbHpvbmUyCisgICAgICogQHBhcmFtIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBwcmludEluZm8oU3RyaW5nIGRlc2MsIFN0cmluZyBuYW1lYmFzZSwKKyAgICAgICAgICAgIFN0cmluZyBuYW1ldXRmOCwgU3RyaW5nIG5hbWV6b25lLCBTdHJpbmcgZmFpbHpvbmUxLAorICAgICAgICAgICAgU3RyaW5nIGZhaWx6b25lMiwgU3RyaW5nIHJlc3VsdCwgU3RyaW5nIHR5cGUsIFN0cmluZyBwYXNzZmFpbCkgeworICAgICAgICBsb2dsbigiZGVzYzpcdCIgKyBkZXNjKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigidHlwZTpcdCIgKyB0eXBlKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigicGFzcyBmYWlsIHN0YW5kYXJkOlx0IiArIHBhc3NmYWlsKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigibmFtZWJhc2U6XHQiICsgbmFtZWJhc2UpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJuYW1ldXRmODpcdCIgKyBuYW1ldXRmOCk7CisgICAgICAgIGxvZygiXHQiKTsKKyAgICAgICAgbG9nbG4oIm5hbWV6b25lOlx0IiArIG5hbWV6b25lKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigiZmFpbHpvbmUxOlx0IiArIGZhaWx6b25lMSk7CisgICAgICAgIGxvZygiXHQiKTsKKyAgICAgICAgbG9nbG4oImZhaWx6b25lMjpcdCIgKyBmYWlsem9uZTIpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJyZXN1bHQ6XHQiICsgcmVzdWx0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdW5pY29kZSBzdHJpbmcgZnJvbSA8MDBBRD4gdG8gXHUwMEFELCBmb3IgdGhlIGxhdGVyIGlzIGFjY2VwdGVkCisgICAgICogYnkgSmF2YQorICAgICAqIEBwYXJhbSBzdHIgU3RyaW5nIGluY2x1ZGluZyA8Kj4gc3R5bGUgdW5pY29kZQorICAgICAqIEByZXR1cm4gXFx1IFN0cmluZworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzdHJpbmdSZXBsYWNlKFN0cmluZyBzdHIpIHsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBjaGFyW10gY2hhcnMgPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiVGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCc8JyA9PSBjaGFyc1tpXSkgeworICAgICAgICAgICAgICAgIHNiVGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoJz4nICE9IGNoYXJzW2kgKyAxXSkgeworICAgICAgICAgICAgICAgICAgICBzYlRlbXAuYXBwZW5kKGNoYXJzWysraV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoZSB1bmljb2RlIHNvbWV0aW1lcyBpcyBsYXJnZXIgdGhlbiBcdUZGRkYsIHNvIGhhdmUgdG8gdXNlCisgICAgICAgICAgICAgICAgICogVVRGMTYuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IHRvQmVJbnNlcnRlZCA9IEludGVnZXIucGFyc2VJbnQoc2JUZW1wLnRvU3RyaW5nKCksIDE2KTsKKyAgICAgICAgICAgICAgICBpZiAoKHRvQmVJbnNlcnRlZCA+PiAxNikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKSB0b0JlSW5zZXJ0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB1dGYxNlN0cmluZyA9IFVURjE2LnZhbHVlT2YodG9CZUluc2VydGVkKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzVGVtcCA9IHV0ZjE2U3RyaW5nLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY2hhcnNUZW1wLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKSBjaGFyc1RlbXBbal0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgnPicgPT0gY2hhcnNbaV0pIHsvL2VuZCB3aGVuIG1ldCB3aXRoICc+JworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJzW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gcmVhZCB0ZXN0IGRhdGEgZnJvbSBUZXN0SW5wdXQgZmlsZS4KKyAgICAgKiAKKyAgICAgKiBAYXV0aG9yIGxpbWFveXUKKyAgICAgKiAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZWFkSW5wdXQgeworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVHJlZU1hcCBnZXRJbnB1dERhdGEoKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7CisKKyAgICAgICAgICAgIFRyZWVNYXAgcmVzdWx0ID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKCJJRE5BVGVzdElucHV0LnR4dCIsICJ1dGYtOCIpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXBTdHIgPSBudWxsOworICAgICAgICAgICAgICAgIGludCByZWNvcmRzID0gMDsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0TGluZSA9IHRydWU7CisgICAgICAgICAgICAgICAgSGFzaE1hcCBoYXNoSXRlbSA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoKHRlbXBTdHIgPSBpbi5yZWFkTGluZSgpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vaWdub3JlIHRoZSBmaXJzdCBsaW5lIGlmIGl0J3MgIj09PT09IgorICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RMaW5lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIj09PT09Ii5lcXVhbHModGVtcFN0cikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vSWdub3JlIGVtcHR5IGxpbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKCIiLmVxdWFscyh0ZW1wU3RyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0ciA9ICIiOy8vYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBib2R5ID0gIiI7Ly92YWx1ZQorCisgICAgICAgICAgICAgICAgICAgIC8vZ2V0IGF0dHIgYW5kIGJvZHkgZnJvbSBsaW5lIGlucHV0LCBhbmQgdGhlbiBzZXQgdGhlbSBpbnRvIGVhY2ggaGFzaCBpdGVtLiAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGludCBwb3N0aW9uID0gdGVtcFN0ci5pbmRleE9mKCI6Iik7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3N0aW9uID4gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIgPSB0ZW1wU3RyLnN1YnN0cmluZygwLCBwb3N0aW9uKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gdGVtcFN0ci5zdWJzdHJpbmcocG9zdGlvbiArIDEpLnRyaW0oKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy9kZWFsIHdpdGggY29tYmluYXRpb24gbGluZXMgd2hlbiBlbmQgd2l0aCAnXCcKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChudWxsICE9IGJvZHkgJiYgYm9keS5sZW5ndGgoKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgJ1xcJyA9PSBib2R5LmNoYXJBdChib2R5Lmxlbmd0aCgpIC0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gYm9keS5zdWJzdHJpbmcoMCwgYm9keS5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgKz0gIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wU3RyID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ICs9IHRlbXBTdHI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy9wdXNoIHRoZW0gdG8gaGFzaCBpdGVtCisgICAgICAgICAgICAgICAgICAgIGhhc2hJdGVtLnB1dChhdHRyLCBib2R5KTsKKworICAgICAgICAgICAgICAgICAgICAvL2lmIG1ldCAiPT09PT0iLCBpdCBtZWFucyB0aGlzIGl0ZW0gaXMgZmluaXNoZWQKKyAgICAgICAgICAgICAgICAgICAgaWYgKCI9PT09PSIuZXF1YWxzKHRlbXBTdHIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL3NldCB0aGVtIGludG8gcmVzdWx0LCB1c2luZyByZWNvcmRzIG51bWJlciBhcyBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQobmV3IExvbmcocmVjb3JkcyksIGhhc2hJdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vY3JlYXRlIGFub3RoZXIgaGFzaCBpdGVtIGFuZCBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaEl0ZW0gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkcysrOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFSZWZlcmVuY2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFSZWZlcmVuY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGYzYWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvSUROQVJlZmVyZW5jZS5qYXZhCkBAIC0wLDAgKzEsNDI5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBJRE5BUmVmZXJlbmNlIHsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gQUNFX1BSRUZJWCA9IG5ldyBjaGFyW117IDB4MDA3OCwweDAwNkUsMHgwMDJkLDB4MDAyZCB9IDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUNFX1BSRUZJWF9MRU5HVEggID0gNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfTEFCRUxfTEVOR1RIICAgPSA2MzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSFlQSEVOICAgICAgICAgICAgID0gMHgwMDJEOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVBJVEFMX0EgICAgICAgICAgPSAweDAwNDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBUElUQUxfWiAgICAgICAgICA9IDB4MDA1QTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVJfQ0FTRV9ERUxUQSAgID0gMHgwMDIwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX1NUT1AgICAgICAgICAgPSAweDAwMkU7CisKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFQgICAgICAgICAgICAgPSAweDAwMDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxMT1dfVU5BU1NJR05FRCAgICA9IDB4MDAwMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVU0VfU1REM19SVUxFUyAgICAgID0gMHgwMDAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTmFtZVByZXBUcmFuc2Zvcm0gdHJhbnNmb3JtID0gTmFtZVByZXBUcmFuc2Zvcm0uZ2V0SW5zdGFuY2UoKTsKKyAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBzdGFydHNXaXRoUHJlZml4KFN0cmluZ0J1ZmZlciBzcmMpeworICAgICAgICBib29sZWFuIHN0YXJ0c1dpdGhQcmVmaXggPSB0cnVlOworCisgICAgICAgIGlmKHNyYy5sZW5ndGgoKSA8IEFDRV9QUkVGSVhfTEVOR1RIKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGk9MDsgaTxBQ0VfUFJFRklYX0xFTkdUSDtpKyspeworICAgICAgICAgICAgaWYodG9BU0NJSUxvd2VyKHNyYy5jaGFyQXQoaSkpICE9IEFDRV9QUkVGSVhbaV0peworICAgICAgICAgICAgICAgIHN0YXJ0c1dpdGhQcmVmaXggPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhcnRzV2l0aFByZWZpeDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIHRvQVNDSUlMb3dlcihjaGFyIGNoKXsKKyAgICAgICAgaWYoQ0FQSVRBTF9BIDw9IGNoICYmIGNoIDw9IENBUElUQUxfWil7CisgICAgICAgICAgICByZXR1cm4gKGNoYXIpKGNoICsgTE9XRVJfQ0FTRV9ERUxUQSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ0J1ZmZlciB0b0FTQ0lJTG93ZXIoU3RyaW5nQnVmZmVyIHNyYyl7CisgICAgICAgIFN0cmluZ0J1ZmZlciBkZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxzcmMubGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKHRvQVNDSUlMb3dlcihzcmMuY2hhckF0KGkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc3Q7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShTdHJpbmdCdWZmZXIgczEsIFN0cmluZ0J1ZmZlciBzMil7CisgICAgICAgIGNoYXIgYzEsYzI7CisgICAgICAgIGludCByYzsKKyAgICAgICAgZm9yKGludCBpID0wOy8qIG5vIGNvbmRpdGlvbiAqLztpKyspIHsKKyAgICAgICAgICAgIC8qIElmIHdlIHJlYWNoIHRoZSBlbmRzIG9mIGJvdGggc3RyaW5ncyB0aGVuIHRoZXkgbWF0Y2ggKi8KKyAgICAgICAgICAgIGlmKGkgPT0gczEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYzEgPSBzMS5jaGFyQXQoaSk7CisgICAgICAgICAgICBjMiA9IHMyLmNoYXJBdChpKTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBDYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gKi8KKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIHJjPXRvQVNDSUlMb3dlcihjMSktdG9BU0NJSUxvd2VyKGMyKTsKKyAgICAgICAgICAgICAgICBpZihyYyE9MCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTZXBhcmF0b3JJbmRleChjaGFyW10gc3JjLGludCBzdGFydCwgaW50IGxpbWl0KXsKKyAgICAgICAgZm9yKDsgc3RhcnQ8bGltaXQ7c3RhcnQrKyl7CisgICAgICAgICAgICBpZihOYW1lUHJlcFRyYW5zZm9ybS5pc0xhYmVsU2VwYXJhdG9yKHNyY1tzdGFydF0pKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gd2UgaGF2ZSBub3QgZm91bmQgdGhlIHNlcGFyYXRvciBqdXN0IHJldHVybiBsZW5ndGgKKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTERIQ2hhcihpbnQgY2gpeworICAgICAgICAvLyBoaWdoIHJ1bm5lciBjYXNlCisgICAgICAgIGlmKGNoPjB4MDA3QSl7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy9bXFx1MDAyRCBcXHUwMDMwLVxcdTAwMzkgXFx1MDA0MS1cXHUwMDVBIFxcdTAwNjEtXFx1MDA3QV0KKyAgICAgICAgaWYoIChjaD09MHgwMDJEKSB8fCAKKyAgICAgICAgICAgICgweDAwMzAgPD0gY2ggJiYgY2ggPD0gMHgwMDM5KSB8fAorICAgICAgICAgICAgKDB4MDA0MSA8PSBjaCAmJiBjaCA8PSAweDAwNUEpIHx8CisgICAgICAgICAgICAoMHgwMDYxIDw9IGNoICYmIGNoIDw9IDB4MDA3QSkKKyAgICAgICAgICApeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvQVNDSUkoU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9BU0NJSShpdGVyLG9wdGlvbnMpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9BU0NJSShTdHJpbmdCdWZmZXIgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0FTQ0lJKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb0FTQ0lJKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmNJdGVyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgIAorICAgICAgICBjaGFyW10gY2FzZUZsYWdzID0gbnVsbDsKKyAgICAKKyAgICAgICAgLy8gdGhlIHNvdXJjZSBjb250YWlucyBhbGwgYXNjaWkgY29kZXBvaW50cworICAgICAgICBib29sZWFuIHNyY0lzQVNDSUkgID0gdHJ1ZTsKKyAgICAgICAgLy8gYXNzdW1lIHRoZSBzb3VyY2UgY29udGFpbnMgYWxsIExESCBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNMREggPSB0cnVlOyAKKworICAgICAgICAvL2dldCB0aGUgb3B0aW9ucworICAgICAgICBib29sZWFuIHVzZVNURDNBU0NJSVJ1bGVzID0gKChvcHRpb25zICYgVVNFX1NURDNfUlVMRVMpICE9IDApOworCisgICAgICAgIGludCBjaDsKKyAgICAgICAgLy8gc3RlcCAxCisgICAgICAgIHdoaWxlKChjaCA9IHNyY0l0ZXIubmV4dCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIGlmKGNoPiAweDdmKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGZhaWxQb3MgPSAtMTsKKyAgICAgICAgc3JjSXRlci5zZXRUb1N0YXJ0KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBwcm9jZXNzT3V0ID0gbnVsbDsKKyAgICAgICAgLy8gc3RlcCAyIGlzIHBlcmZvcm1lZCBvbmx5IGlmIHRoZSBzb3VyY2UgY29udGFpbnMgbm9uIEFTQ0lJCisgICAgICAgIGlmKCFzcmNJc0FTQ0lJKXsKKyAgICAgICAgICAgIC8vIHN0ZXAgMgorICAgICAgICAgICAgcHJvY2Vzc091dCA9ICB0cmFuc2Zvcm0ucHJlcGFyZShzcmNJdGVyLG9wdGlvbnMpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHByb2Nlc3NPdXQgPSBuZXcgU3RyaW5nQnVmZmVyKHNyY0l0ZXIuZ2V0VGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgcG9MZW4gPSBwcm9jZXNzT3V0Lmxlbmd0aCgpOworICAgICAgICBpZihwb0xlbj09MCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJGb3VuZCB6ZXJvIGxlbmd0aCBsYWJsZSBhZnRlciBOYW1lUHJlcC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5aRVJPX0xFTkdUSF9MQUJFTCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICAvLyByZXNldCB0aGUgdmFyaWFibGUgdG8gdmVyaWZ5IGlmIG91dHB1dCBvZiBwcmVwYXJlIGlzIEFTQ0lJIG9yIG5vdAorICAgICAgICBzcmNJc0FTQ0lJID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIC8vIHN0ZXAgMyAmIDQKKyAgICAgICAgZm9yKGludCBqPTA7ajxwb0xlbjtqKysgKXsKKyAgICAgICAgICAgIGNoPXByb2Nlc3NPdXQuY2hhckF0KGopOworICAgICAgICAgICAgaWYoY2ggPiAweDdGKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihpc0xESENoYXIoY2gpPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgLy8gaGVyZSB3ZSBkbyBub3QgYXNzZW1ibGUgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgdGhhdCBMREggY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICAvLyBhcmUgaW4gdGhlIEFTQ0lJIHJhbmdlIG9ubHkKKyAgICAgICAgICAgICAgICBzcmNJc0xESCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZhaWxQb3MgPSBqOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmKHVzZVNURDNBU0NJSVJ1bGVzID09IHRydWUpeworICAgICAgICAgICAgLy8gdmVyaWZ5IDNhIGFuZCAzYgorICAgICAgICAgICAgaWYoIHNyY0lzTERIID09IGZhbHNlIC8qIHNvdXJjZSBjb250YWlucyBzb21lIG5vbi1MREggY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KDApID09ICBIWVBIRU4gCisgICAgICAgICAgICAgICAgfHwgcHJvY2Vzc091dC5jaGFyQXQocHJvY2Vzc091dC5sZW5ndGgoKS0xKSA9PSBIWVBIRU4peworCisgICAgICAgICAgICAgICAgLyogcG9wdWxhdGUgdGhlIHBhcnNlRXJyb3Igc3RydWN0ICovCisgICAgICAgICAgICAgICAgaWYoc3JjSXNMREg9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oICJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsUG9zPjApID8gKGZhaWxQb3MtMSkgOiBmYWlsUG9zKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSBIWVBIRU4peworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLHByb2Nlc3NPdXQudG9TdHJpbmcoKSwwKTsKKyAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9MZW4+MCkgPyBwb0xlbi0xIDogcG9MZW4pOworCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKHNyY0lzQVNDSUkpeworICAgICAgICAgICAgZGVzdCA9ICBwcm9jZXNzT3V0OworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8vIHN0ZXAgNSA6IHZlcmlmeSB0aGUgc2VxdWVuY2UgZG9lcyBub3QgYmVnaW4gd2l0aCBBQ0UgcHJlZml4CisgICAgICAgICAgICBpZighc3RhcnRzV2l0aFByZWZpeChwcm9jZXNzT3V0KSl7CisKKyAgICAgICAgICAgICAgICAvL3N0ZXAgNjogZW5jb2RlIHRoZSBzZXF1ZW5jZSB3aXRoIHB1bnljb2RlCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHB1bnlvdXQgPSBQdW55Y29kZVJlZmVyZW5jZS5lbmNvZGUocHJvY2Vzc091dCxjYXNlRmxhZ3MpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgYWxsIGNvZGVwb2ludHMgdG8gbG93ZXIgY2FzZSBBU0NJSQorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBsb3dlck91dCA9IHRvQVNDSUlMb3dlcihwdW55b3V0KTsKKworICAgICAgICAgICAgICAgIC8vU3RlcCA3OiBwcmVwZW5kIHRoZSBBQ0UgcHJlZml4CisgICAgICAgICAgICAgICAgZGVzdC5hcHBlbmQoQUNFX1BSRUZJWCwwLEFDRV9QUkVGSVhfTEVOR1RIKTsKKyAgICAgICAgICAgICAgICAvL1N0ZXAgNjogY29weSB0aGUgY29udGVudHMgaW4gYjIgaW50byBkZXN0CisgICAgICAgICAgICAgICAgZGVzdC5hcHBlbmQobG93ZXJPdXQpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IHN0YXJ0IHdpdGggdGhlIEFDRSBQcmVmaXguIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkFDRV9QUkVGSVhfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKGRlc3QubGVuZ3RoKCkgPiBNQVhfTEFCRUxfTEVOR1RIKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBsYWJlbHMgaW4gdGhlIGlucHV0IGFyZSB0b28gbG9uZy4gTGVuZ3RoID4gNjQuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uTEFCRUxfVE9PX0xPTkdfRVJST1IsZGVzdC50b1N0cmluZygpLDApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROdG9BU0NJSShVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcixpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICByZXR1cm4gY29udmVydElETlRvQVNDSUkoaXRlci5nZXRUZXh0KCksIG9wdGlvbnMpOyAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETnRvQVNDSUkoU3RyaW5nQnVmZmVyIHN0cixpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICByZXR1cm4gY29udmVydElETlRvQVNDSUkoc3RyLnRvU3RyaW5nKCksIG9wdGlvbnMpOyAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvQVNDSUkoU3RyaW5nIHNyYyxpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIGNoYXJbXSBzcmNBcnIgPSBzcmMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHNlcEluZGV4PTA7CisgICAgICAgIGludCBvbGRTZXBJbmRleCA9IDA7CisgICAgICAgIGZvcig7Oyl7CisgICAgICAgICAgICBzZXBJbmRleCA9IGdldFNlcGFyYXRvckluZGV4KHNyY0FycixzZXBJbmRleCxzcmNBcnIubGVuZ3RoKTsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IG5ldyBTdHJpbmcoc3JjQXJyLG9sZFNlcEluZGV4LHNlcEluZGV4LW9sZFNlcEluZGV4KTsKKyAgICAgICAgICAgIC8vbWFrZSBzdXJlIHRoaXMgaXMgbm90IGEgcm9vdCBsYWJlbCBzZXBhcmF0b3IuCisgICAgICAgICAgICBpZighKGxhYmVsLmxlbmd0aCgpPT0wICYmIHNlcEluZGV4PT1zcmNBcnIubGVuZ3RoKSl7CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobGFiZWwpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydFRvQVNDSUkoaXRlcixvcHRpb25zKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzZXBJbmRleD09c3JjQXJyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHNlcEluZGV4IHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yCisgICAgICAgICAgICBzZXBJbmRleCsrOworICAgICAgICAgICAgb2xkU2VwSW5kZXggPSBzZXBJbmRleDsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpRlVMTF9TVE9QKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9Vbmljb2RlKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoU3RyaW5nQnVmZmVyIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9Vbmljb2RlKGl0ZXIsb3B0aW9ucyk7CisgICAgfSAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIGludCBvcHRpb25zKQorICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworCisgICAgICAgIGNoYXJbXSBjYXNlRmxhZ3MgPSBudWxsOworICAgICAgICAKKyAgICAgICAgLy9nZXQgdGhlIG9wdGlvbnMKKyAgICAgICAgYm9vbGVhbiB1c2VTVEQzQVNDSUlSdWxlcyA9ICgob3B0aW9ucyAmIFVTRV9TVEQzX1JVTEVTKSAhPSAwKTsKKworICAgICAgICAvLyB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBhc2NpaSBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNBU0NJSSAgPSB0cnVlOworICAgICAgICAvLyBhc3N1bWUgdGhlIHNvdXJjZSBjb250YWlucyBhbGwgTERIIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0xESCA9IHRydWU7IAorICAgICAgICAgICAgICAgCisgICAgICAgIGludCBmYWlsUG9zID0gLTE7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgaW50IHNhdmVJbmRleCA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAgICAgICAgLy8gc3RlcCAxOiBmaW5kIG91dCBpZiBhbGwgdGhlIGNvZGVwb2ludHMgaW4gc3JjIGFyZSBBU0NJSSAgCisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihjaD4weDdGKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihpc0xESENoYXIoY2gpPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgZmFpbFBvcyA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBzcmNJc0xESCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBwcm9jZXNzT3V0OworICAgICAgICAKKyAgICAgICAgaWYoc3JjSXNBU0NJSSA9PSBmYWxzZSl7CisgICAgICAgICAgICAvLyBzdGVwIDI6IHByb2Nlc3MgdGhlIHN0cmluZworICAgICAgICAgICAgaXRlci5zZXRJbmRleChzYXZlSW5kZXgpOworICAgICAgICAgICAgcHJvY2Vzc091dCA9IHRyYW5zZm9ybS5wcmVwYXJlKGl0ZXIsb3B0aW9ucyk7CisKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAvL2p1c3QgcG9pbnQgdG8gc291cmNlCisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gbmV3IFN0cmluZ0J1ZmZlcihpdGVyLmdldFRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gVE9ETzoKKyAgICAgICAgLy8gVGhlIFJGQyBzdGF0ZXMgdGhhdCAKKyAgICAgICAgLy8gPHF1b3RlPgorICAgICAgICAvLyBUb1VuaWNvZGUgbmV2ZXIgZmFpbHMuIElmIGFueSBzdGVwIGZhaWxzLCB0aGVuIHRoZSBvcmlnaW5hbCBpbnB1dAorICAgICAgICAvLyBpcyByZXR1cm5lZCBpbW1lZGlhdGVseSBpbiB0aGF0IHN0ZXAuCisgICAgICAgIC8vIDwvcXVvdGU+CisgICAgICAgIAorICAgICAgICAvL3N0ZXAgMzogdmVyaWZ5IEFDRSBQcmVmaXgKKyAgICAgICAgaWYoc3RhcnRzV2l0aFByZWZpeChwcm9jZXNzT3V0KSl7CisKKyAgICAgICAgICAgLy9zdGVwIDQ6IFJlbW92ZSB0aGUgQUNFIFByZWZpeAorICAgICAgICAgICBTdHJpbmcgdGVtcCA9IHByb2Nlc3NPdXQuc3Vic3RyaW5nKEFDRV9QUkVGSVhfTEVOR1RILHByb2Nlc3NPdXQubGVuZ3RoKCkpOworCisgICAgICAgICAgIC8vc3RlcCA1OiBEZWNvZGUgdXNpbmcgcHVueWNvZGUKKyAgICAgICAgICAgU3RyaW5nQnVmZmVyIGRlY29kZU91dCA9IFB1bnljb2RlUmVmZXJlbmNlLmRlY29kZShuZXcgU3RyaW5nQnVmZmVyKHRlbXApLGNhc2VGbGFncyk7CisgICAgICAgIAorICAgICAgICAgICAgLy9zdGVwIDY6QXBwbHkgdG9BU0NJSQorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQVNDSUlPdXQgPSBjb252ZXJ0VG9BU0NJSShkZWNvZGVPdXQsIG9wdGlvbnMpOworCisgICAgICAgICAgICAvL3N0ZXAgNzogdmVyaWZ5CisgICAgICAgICAgICBpZihjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkocHJvY2Vzc091dCwgdG9BU0NJSU91dCkgIT0wKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgdmVyaWZpY2F0aW9uIHN0ZXAgcHJlc2NyaWJlZCBieSB0aGUgUkZDIDM0OTEgZmFpbGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5WRVJJRklDQVRJT05fRVJST1IpOyAKKyAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vc3RlcCA4OiByZXR1cm4gb3V0cHV0IG9mIHN0ZXAgNQorICAgICAgICAgICAgcmV0dXJuIGRlY29kZU91dDsKKyAgICAgICAgICAgIAorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8vIHZlcmlmeSB0aGF0IFNURDMgQVNDSUkgcnVsZXMgYXJlIHNhdGlzZmllZAorICAgICAgICAgICAgaWYodXNlU1REM0FTQ0lJUnVsZXMgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYoIHNyY0lzTERIID09IGZhbHNlIC8qIHNvdXJjZSBjb250YWlucyBzb21lIG5vbi1MREggY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSAgSFlQSEVOIAorICAgICAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdChwcm9jZXNzT3V0Lmxlbmd0aCgpLTEpID09IEhZUEhFTil7CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZihzcmNJc0xESD09ZmFsc2UpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWxQb3M+MCkgPyAoZmFpbFBvcy0xKSA6IGZhaWxQb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYocHJvY2Vzc091dC5jaGFyQXQoMCkgPT0gSFlQSEVOKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0Lmxlbmd0aCgpKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGp1c3QgcmV0dXJuIHRoZSBzb3VyY2UKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKGl0ZXIuZ2V0VGV4dCgpKTsKKyAgICAgICAgfSAgCisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub1VuaWNvZGUoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gY29udmVydElETlRvVW5pY29kZShpdGVyLmdldFRleHQoKSwgb3B0aW9ucyk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub1VuaWNvZGUoU3RyaW5nQnVmZmVyIHN0ciwgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9Vbmljb2RlKHN0ci50b1N0cmluZygpLCBvcHRpb25zKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvVW5pY29kZShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgIAorICAgICAgICBjaGFyW10gc3JjQXJyID0gc3JjLnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBzZXBJbmRleD0wOworICAgICAgICBpbnQgb2xkU2VwSW5kZXg9MDsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHNlcEluZGV4ID0gZ2V0U2VwYXJhdG9ySW5kZXgoc3JjQXJyLHNlcEluZGV4LHNyY0Fyci5sZW5ndGgpOworICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gbmV3IFN0cmluZyhzcmNBcnIsb2xkU2VwSW5kZXgsc2VwSW5kZXgtb2xkU2VwSW5kZXgpOworICAgICAgICAgICAgaWYobGFiZWwubGVuZ3RoKCk9PTAgJiYgc2VwSW5kZXghPXNyY0Fyci5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJGb3VuZCB6ZXJvIGxlbmd0aCBsYWJsZSBhZnRlciBOYW1lUHJlcC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5aRVJPX0xFTkdUSF9MQUJFTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShsYWJlbCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKSk7CisgICAgICAgICAgICBpZihzZXBJbmRleD09c3JjQXJyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHNlcEluZGV4IHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yCisgICAgICAgICAgICBzZXBJbmRleCsrOworICAgICAgICAgICAgb2xkU2VwSW5kZXggPSBzZXBJbmRleDsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpRlVMTF9TVE9QKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvLyAgVE9ETzogb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKFN0cmluZ0J1ZmZlciBzMSwgU3RyaW5nQnVmZmVyIHMyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaWYoczE9PW51bGwgfHwgczIgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbmUgb2YgdGhlIHNvdXJjZSBidWZmZXJzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgczFPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMS50b1N0cmluZygpLCBvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoczIudG9TdHJpbmcoKSwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkoczFPdXQsczJPdXQpOworICAgIH0KKyAgICAvLyAgVE9ETzogb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKFN0cmluZyBzMSwgU3RyaW5nIHMyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaWYoczE9PW51bGwgfHwgczIgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbmUgb2YgdGhlIHNvdXJjZSBidWZmZXJzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgczFPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMSwgb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMyLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorICAgIC8vICBUT0RPOiBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yIGkxLCBVQ2hhcmFjdGVySXRlcmF0b3IgaTIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpZihpMT09bnVsbCB8fCBpMiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9uZSBvZiB0aGUgc291cmNlIGJ1ZmZlcnMgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMU91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKGkxLmdldFRleHQoKSwgb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKGkyLmdldFRleHQoKSwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkoczFPdXQsczJPdXQpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTkZTNFN0cmluZ1ByZXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL05GUzRTdHJpbmdQcmVwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZjMDkyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL05GUzRTdHJpbmdQcmVwLmphdmEKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXA7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUaGlzIGlzIGEgZHVtYiBpbXBsZW1lbnRhdGlvbiBvZiBORlM0IHByb2ZpbGVzLiBJdCBpcyBhIGRpcmVjdCBwb3J0IG9mCisgKiBDIGNvZGUsIGRvZXMgbm90IHVzZSBPYmplY3QgT3JpZW50ZWQgcHJpbmNpcGxlcy4gUXVpY2sgYW5kIERpcnR5IGltcGxlbWVudGF0aW9uCisgKiBmb3IgdGVzdGluZy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE5GUzRTdHJpbmdQcmVwIHsKKworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNjc3MgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNjc2kgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNjaXMgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNteHAgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNteHMgPSBudWxsOworICAgIC8vc2luZ2xldG9uIGluc3RhbmNlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTkZTNFN0cmluZ1ByZXAgcHJlcCA9IG5ldyBORlM0U3RyaW5nUHJlcCgpOworICAgIAorCisgICAgcHJpdmF0ZSAgTkZTNFN0cmluZ1ByZXAgKCl7CisgICAgICAgIENsYXNzTG9hZGVyIGxvYWRlciA9IE5GUzRTdHJpbmdQcmVwLmNsYXNzLmdldENsYXNzTG9hZGVyKCk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElucHV0U3RyZWFtICBuZnNjc2lGaWxlID0gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0oImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL25mc2NzaS5zcHAiKTsKKyAgICAgICAgICAgIG5mc2NzaSA9IG5ldyBTdHJpbmdQcmVwKG5mc2NzaUZpbGUpOworICAgICAgICAgICAgbmZzY3NpRmlsZS5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBJbnB1dFN0cmVhbSAgbmZzY3NzRmlsZSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS9uZnNjc3Muc3BwIik7CisgICAgICAgICAgICBuZnNjc3MgPSBuZXcgU3RyaW5nUHJlcChuZnNjc3NGaWxlKTsKKyAgICAgICAgICAgIG5mc2Nzc0ZpbGUuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgSW5wdXRTdHJlYW0gIG5mc2Npc0ZpbGUgPSBsb2FkZXIuZ2V0UmVzb3VyY2VBc1N0cmVhbSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvbmZzY2lzLnNwcCIpOworICAgICAgICAgICAgbmZzY2lzID0gbmV3IFN0cmluZ1ByZXAobmZzY2lzRmlsZSk7CisgICAgICAgICAgICBuZnNjaXNGaWxlLmNsb3NlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIElucHV0U3RyZWFtICBuZnNteHBGaWxlID0gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0oImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL25mc214cC5zcHAiKTsKKyAgICAgICAgICAgIG5mc214cCA9IG5ldyBTdHJpbmdQcmVwKG5mc214cEZpbGUpOworICAgICAgICAgICAgbmZzbXhwRmlsZS5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBJbnB1dFN0cmVhbSAgbmZzbXhzRmlsZSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS9uZnNteHMuc3BwIik7CisgICAgICAgICAgICBuZnNteHMgPSBuZXcgU3RyaW5nUHJlcChuZnNteHNGaWxlKTsKKyAgICAgICAgICAgIG5mc214c0ZpbGUuY2xvc2UoKTsKKyAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCksIiIsIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBwcmVwYXJlKGJ5dGVbXSBzcmMsIFN0cmluZ1ByZXAgcHJlcCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc3JjLCAiVVRGLTgiKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSAgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMpOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gcHJlcC5wcmVwYXJlKGl0ZXIsU3RyaW5nUHJlcC5ERUZBVUxUKTsKKyAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpLmdldEJ5dGVzKCJVVEYtOCIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBjc19wcmVwYXJlKGJ5dGVbXSBzcmMsIGJvb2xlYW4gaXNDYXNlU2Vuc2l0aXZlKQorICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb257CisgICAgICAgIGlmKGlzQ2FzZVNlbnNpdGl2ZSA9PSB0cnVlICl7CisgICAgICAgICAgICByZXR1cm4gcHJlcGFyZShzcmMsIHByZXAubmZzY3NzKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICByZXR1cm4gcHJlcGFyZShzcmMsIHByZXAubmZzY3NpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBjaXNfcHJlcGFyZShieXRlW10gc3JjKQorICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gcHJlcGFyZShzcmMsIHByZXAubmZzY2lzKTsKKyAgICB9ICAKKyAgICAKKyAgICAvKiBzb3J0ZWQgYXJyYXkgZm9yIGJpbmFyeSBzZWFyY2gqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHNwZWNpYWxfcHJlZml4ZXM9eworICAgICAgICAiQU5PTllNT1VTIiwgICAgCisgICAgICAgICJBVVRIRU5USUNBVEVEIiwKKyAgICAgICAgIkJBVENIIiwgCisgICAgICAgICJESUFMVVAiLCAKKyAgICAgICAgIkVWRVJZT05FIiwgCisgICAgICAgICJHUk9VUCIsCisgICAgICAgICJJTlRFUkFDVElWRSIsICAKKyAgICAgICAgIk5FVFdPUksiLCAKKyAgICAgICAgIk9XTkVSIiwKKyAgICB9OworCisKKyAgICAvKiBiaW5hcnkgc2VhcmNoIHRoZSBzb3J0ZWQgYXJyYXkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZmluZFN0cmluZ0luZGV4KFN0cmluZ1tdIHNvcnRlZEFycixTdHJpbmcgdGFyZ2V0KXsKKworICAgICAgICBpbnQgbGVmdCwgbWlkZGxlLCByaWdodCxyYzsKKworICAgICAgICBsZWZ0ID0wOworICAgICAgICByaWdodD0gc29ydGVkQXJyLmxlbmd0aC0xOworCisgICAgICAgIHdoaWxlKGxlZnQgPD0gcmlnaHQpeworICAgICAgICAgICAgbWlkZGxlID0gKGxlZnQrcmlnaHQpLzI7CisgICAgICAgICAgICByYz0gc29ydGVkQXJyW21pZGRsZV0uY29tcGFyZVRvKHRhcmdldCk7CisgICAgICAgIAorICAgICAgICAgICAgaWYocmM8MCl7CisgICAgICAgICAgICAgICAgbGVmdCA9IG1pZGRsZSsxOworICAgICAgICAgICAgfWVsc2UgaWYocmMgPjApeworICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkZGxlIC0xOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1pZGRsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQVRfU0lHTiA9ICdAJzsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBtaXhlZF9wcmVwYXJlKGJ5dGVbXSBzcmMpCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzcmMsICJVVEYtOCIpOworICAgICAgICBpbnQgaW5kZXggPSBzLmluZGV4T2YoQVRfU0lHTik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgaWYoaW5kZXggPiAtMSl7CisgICAgICAgICAgICAvKiBzcGVjaWFsIHByZWZpeGVzIG11c3Qgbm90IGJlIGZvbGxvd2VkIGJ5IHN1ZmZpeGVzISAqLworICAgICAgICAgICAgU3RyaW5nIHByZWZpeFN0cmluZyA9IHMuc3Vic3RyaW5nKDAsaW5kZXgpOworICAgICAgICAgICAgaW50IGk9IGZpbmRTdHJpbmdJbmRleChzcGVjaWFsX3ByZWZpeGVzLCBwcmVmaXhTdHJpbmcpOworICAgICAgICAgICAgU3RyaW5nIHN1ZmZpeFN0cmluZyA9IHMuc3Vic3RyaW5nKGluZGV4KzEsIHMubGVuZ3RoKCkpOworICAgICAgICAgICAgaWYoaT4tMSAmJiAhc3VmZml4U3RyaW5nLmVxdWFscygiIikpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlN1ZmZpeCBmb2xsb3dpbmcgYSBzcGVjaWFsIGluZGV4IiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklOVkFMSURfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgcHJlZml4ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHByZWZpeFN0cmluZyk7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3Igc3VmZml4ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHN1ZmZpeFN0cmluZyk7CisgICAgICAgICAgICBvdXQuYXBwZW5kKHByZXAubmZzbXhwLnByZXBhcmUocHJlZml4LFN0cmluZ1ByZXAuREVGQVVMVCkpOworICAgICAgICAgICAgb3V0LmFwcGVuZChBVF9TSUdOKTsgLy8gYWRkIHRoZSBkZWxpbWl0ZXIKKyAgICAgICAgICAgIG91dC5hcHBlbmQocHJlcC5uZnNteHMucHJlcGFyZShzdWZmaXgsIFN0cmluZ1ByZXAuREVGQVVMVCkpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMpOworICAgICAgICAgICAgb3V0LmFwcGVuZChwcmVwLm5mc214cC5wcmVwYXJlKGl0ZXIsU3RyaW5nUHJlcC5ERUZBVUxUKSk7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKS5nZXRCeXRlcygiVVRGLTgiKTsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9OYW1lUHJlcFRyYW5zZm9ybS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTmFtZVByZXBUcmFuc2Zvcm0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzZjNzNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTmFtZVByZXBUcmFuc2Zvcm0uamF2YQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJEaXJlY3Rpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgY2xhc3MgTmFtZVByZXBUcmFuc2Zvcm0geworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE5hbWVQcmVwVHJhbnNmb3JtIHRyYW5zZm9ybSA9IG5ldyBOYW1lUHJlcFRyYW5zZm9ybSgpOworICAgIAorICAgIHByaXZhdGUgVW5pY29kZVNldCBsYWJlbFNlcGFyYXRvclNldDsKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgcHJvaGliaXRlZFNldDsKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgdW5hc3NpZ25lZFNldDsKKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIG1hcFRyYW5zZm9ybTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTExPV19VTkFTU0lHTkVEID0gMTsKKyAgICAKKyAgICBwcml2YXRlIE5hbWVQcmVwVHJhbnNmb3JtKCl7CisgICAgICAgIC8vIGxvYWQgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAgICAvLyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsImlkbmFfcnVsZXMiLCB0cnVlKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmNyZWF0ZUJ1bmRsZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJpZG5hX3J1bGVzIiwgTmFtZVByZXBUcmFuc2Zvcm0uY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKSk7CisgICAgICAgIFN0cmluZyAgbWFwUnVsZXMgICAgICA9IGJ1bmRsZS5nZXRTdHJpbmcoIk1hcE5vTm9ybWFsaXphdGlvbiIpOworICAgICAgICBtYXBSdWxlcyAgICAgICAgICAgICArPSBidW5kbGUuZ2V0U3RyaW5nKCJNYXBORktDIik7CisgICAgICAgIG1hcFRyYW5zZm9ybSAgICAgICAgICA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiQ2FzZU1hcCIsbWFwUnVsZXMsVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGxhYmVsU2VwYXJhdG9yU2V0ICAgICA9IG5ldyBVbmljb2RlU2V0KGJ1bmRsZS5nZXRTdHJpbmcoIkxhYmVsU2VwYXJhdG9yU2V0IikpOworICAgICAgICBwcm9oaWJpdGVkU2V0ICAgICAgICAgPSBuZXcgVW5pY29kZVNldChidW5kbGUuZ2V0U3RyaW5nKCJQcm9oaWJpdGVkU2V0IikpOworICAgICAgICB1bmFzc2lnbmVkU2V0ICAgICAgICAgPSBuZXcgVW5pY29kZVNldChidW5kbGUuZ2V0U3RyaW5nKCJVbmFzc2lnbmVkU2V0IikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE5hbWVQcmVwVHJhbnNmb3JtIGdldEluc3RhbmNlKCl7CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm07CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xhYmVsU2VwYXJhdG9yKGludCBjaCl7CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm0ubGFiZWxTZXBhcmF0b3JTZXQuY29udGFpbnMoY2gpOworICAgIH0KKworICAgICAvKgorICAgICAgIDEpIE1hcCAtLSBGb3IgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCBjaGVjayBpZiBpdCBoYXMgYSBtYXBwaW5nCisgICAgICAgICAgYW5kLCBpZiBzbywgcmVwbGFjZSBpdCB3aXRoIGl0cyBtYXBwaW5nLiAgCisKKyAgICAgICAyKSBOb3JtYWxpemUgLS0gUG9zc2libHkgbm9ybWFsaXplIHRoZSByZXN1bHQgb2Ygc3RlcCAxIHVzaW5nIFVuaWNvZGUKKyAgICAgICAgICBub3JtYWxpemF0aW9uLiAKKworICAgICAgIDMpIFByb2hpYml0IC0tIENoZWNrIGZvciBhbnkgY2hhcmFjdGVycyB0aGF0IGFyZSBub3QgYWxsb3dlZCBpbiB0aGUKKyAgICAgICAgICBvdXRwdXQuICBJZiBhbnkgYXJlIGZvdW5kLCByZXR1cm4gYW4gZXJyb3IuICAKKworICAgICAgIDQpIENoZWNrIGJpZGkgLS0gUG9zc2libHkgY2hlY2sgZm9yIHJpZ2h0LXRvLWxlZnQgY2hhcmFjdGVycywgYW5kIGlmCisgICAgICAgICAgYW55IGFyZSBmb3VuZCwgbWFrZSBzdXJlIHRoYXQgdGhlIHdob2xlIHN0cmluZyBzYXRpc2ZpZXMgdGhlCisgICAgICAgICAgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MuICBJZiB0aGUgc3RyaW5nIGRvZXMgbm90CisgICAgICAgICAgc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MsIHJldHVybiBhbgorICAgICAgICAgIGVycm9yLiAgCisgICAgICAgICAgW1VuaWNvZGUzLjJdIGRlZmluZXMgc2V2ZXJhbCBiaWRpcmVjdGlvbmFsIGNhdGVnb3JpZXM7IGVhY2ggY2hhcmFjdGVyCisgICAgICAgICAgIGhhcyBvbmUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSBhc3NpZ25lZCB0byBpdC4gIEZvciB0aGUgcHVycG9zZXMgb2YKKyAgICAgICAgICAgdGhlIHJlcXVpcmVtZW50cyBiZWxvdywgYW4gIlJhbmRBTENhdCBjaGFyYWN0ZXIiIGlzIGEgY2hhcmFjdGVyIHRoYXQKKyAgICAgICAgICAgaGFzIFVuaWNvZGUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yaWVzICJSIiBvciAiQUwiOyBhbiAiTENhdCBjaGFyYWN0ZXIiCisgICAgICAgICAgIGlzIGEgY2hhcmFjdGVyIHRoYXQgaGFzIFVuaWNvZGUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSAiTCIuICBOb3RlCisKKworICAgICAgICAgICB0aGF0IHRoZXJlIGFyZSBtYW55IGNoYXJhY3RlcnMgd2hpY2ggZmFsbCBpbiBuZWl0aGVyIG9mIHRoZSBhYm92ZQorICAgICAgICAgICBkZWZpbml0aW9uczsgTGF0aW4gZGlnaXRzICg8VSswMDMwPiB0aHJvdWdoIDxVKzAwMzk+KSBhcmUgZXhhbXBsZXMgb2YKKyAgICAgICAgICAgdGhpcyBiZWNhdXNlIHRoZXkgaGF2ZSBiaWRpcmVjdGlvbmFsIGNhdGVnb3J5ICJFTiIuCisKKyAgICAgICAgICAgSW4gYW55IHByb2ZpbGUgdGhhdCBzcGVjaWZpZXMgYmlkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgaGFuZGxpbmcsIGFsbAorICAgICAgICAgICB0aHJlZSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBNVVNUIGJlIG1ldDoKKworICAgICAgICAgICAxKSBUaGUgY2hhcmFjdGVycyBpbiBzZWN0aW9uIDUuOCBNVVNUIGJlIHByb2hpYml0ZWQuCisKKyAgICAgICAgICAgMikgSWYgYSBzdHJpbmcgY29udGFpbnMgYW55IFJhbmRBTENhdCBjaGFyYWN0ZXIsIHRoZSBzdHJpbmcgTVVTVCBOT1QKKyAgICAgICAgICAgICAgY29udGFpbiBhbnkgTENhdCBjaGFyYWN0ZXIuCisKKyAgICAgICAgICAgMykgSWYgYSBzdHJpbmcgY29udGFpbnMgYW55IFJhbmRBTENhdCBjaGFyYWN0ZXIsIGEgUmFuZEFMQ2F0CisgICAgICAgICAgICAgIGNoYXJhY3RlciBNVVNUIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZywgYW5kIGEKKyAgICAgICAgICAgICAgUmFuZEFMQ2F0IGNoYXJhY3RlciBNVVNUIGJlIHRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nLgorICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBwcmVwYXJlKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICAgcmV0dXJuIHByZXBhcmUoc3JjLmdldFRleHQoKSxvcHRpb25zKTsKKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgbWFwICggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIC8vIG1hcCAKKyAgICAgICAgYm9vbGVhbiBhbGxvd1VuYXNzaWduZWQgPSAgKChvcHRpb25zICYgQUxMT1dfVU5BU1NJR05FRCk+MCk7CisgICAgICAgIFN0cmluZyBjYXNlTWFwT3V0ID0gdHJhbnNmb3JtLm1hcFRyYW5zZm9ybS50cmFuc2xpdGVyYXRlKHNyYyk7ICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShjYXNlTWFwT3V0KTsKKyAgICAgICAgaW50IGNoOworICAgICAgICB3aGlsZSgoY2g9aXRlci5uZXh0Q29kZVBvaW50KCkpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7ICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKHRyYW5zZm9ybS51bmFzc2lnbmVkU2V0LmNvbnRhaW5zKGNoKT09dHJ1ZSAmJiBhbGxvd1VuYXNzaWduZWQgPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiQW4gdW5hc3NpZ25lZCBjb2RlIHBvaW50IHdhcyBmb3VuZCBpbiB0aGUgaW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhc2VNYXBPdXQ7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgcHJlcGFyZShTdHJpbmcgc3JjLGludCBvcHRpb25zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworIAorICAgICAgICBpbnQgY2g7CisgICAgICAgIFN0cmluZyBtYXBPdXQgPSBtYXAoc3JjLG9wdGlvbnMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShtYXBPdXQpOworCisgICAgICAgIGludCBkaXJlY3Rpb249VUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVCwKKyAgICAgICAgICAgIGZpcnN0Q2hhckRpcj1VQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5UOyAgICAKKyAgICAgICAgaW50IHJ0bFBvcz0tMSwgbHRyUG9zPS0xOworICAgICAgICBib29sZWFuIHJpZ2h0VG9MZWZ0PWZhbHNlLCBsZWZ0VG9SaWdodD1mYWxzZTsKKyAgICAgICAgICAgCisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisKKworICAgICAgICAgICAgaWYodHJhbnNmb3JtLnByb2hpYml0ZWRTZXQuY29udGFpbnMoY2gpPT10cnVlICYmIGNoIT0weDAwMjApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkEgcHJvaGliaXRlZCBjb2RlIHBvaW50IHdhcyBmb3VuZCBpbiB0aGUgaW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlci5nZXRUZXh0KCksaXRlci5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlyZWN0aW9uID0gVUNoYXJhY3Rlci5nZXREaXJlY3Rpb24oY2gpOworICAgICAgICAgICAgaWYoZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQpeworICAgICAgICAgICAgICAgIGZpcnN0Q2hhckRpciA9IGRpcmVjdGlvbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQpeworICAgICAgICAgICAgICAgIGxlZnRUb1JpZ2h0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsdHJQb3MgPSBpdGVyLmdldEluZGV4KCktMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfHwgZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMpeworICAgICAgICAgICAgICAgIHJpZ2h0VG9MZWZ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBydGxQb3MgPSBpdGVyLmdldEluZGV4KCktMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgICAgCisKKyAgICAgICAgLy8gc2F0aXNmeSAyCisgICAgICAgIGlmKCBsZWZ0VG9SaWdodCA9PSB0cnVlICYmIHJpZ2h0VG9MZWZ0ID09IHRydWUpeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIHJ1bGVzIGZvciBCaURpIGNvZGUgcG9pbnRzLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkNIRUNLX0JJRElfRVJST1IsaXRlci5nZXRUZXh0KCksKHJ0bFBvcz5sdHJQb3MpID8gcnRsUG9zIDogbHRyUG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vc2F0aXNmeSAzCisgICAgICAgIGlmKCByaWdodFRvTGVmdCA9PSB0cnVlICYmIAorICAgICAgICAgICAgISgoZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB8fCBmaXJzdENoYXJEaXIgPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQykgJiYKKyAgICAgICAgICAgIChkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIHx8IGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDKSkKKyAgICAgICAgICAgKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBydWxlcyBmb3IgQmlEaSBjb2RlIHBvaW50cy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUixpdGVyLmdldFRleHQoKSwocnRsUG9zPmx0clBvcykgPyBydGxQb3MgOiBsdHJQb3MpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcihtYXBPdXQpOworCisgICAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9QdW55Y29kZVJlZmVyZW5jZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvUHVueWNvZGVSZWZlcmVuY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWJhOGI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvUHVueWNvZGVSZWZlcmVuY2UuamF2YQpAQCAtMCwwICsxLDM4MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisvKgorICogCitEaXNjbGFpbWVyIGFuZCBsaWNlbnNlCisKKyAgICBSZWdhcmRpbmcgdGhpcyBlbnRpcmUgZG9jdW1lbnQgb3IgYW55IHBvcnRpb24gb2YgaXQgKGluY2x1ZGluZworICAgIHRoZSBwc2V1ZG9jb2RlIGFuZCBDIGNvZGUpLCB0aGUgYXV0aG9yIG1ha2VzIG5vIGd1YXJhbnRlZXMgYW5kCisgICAgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBhbnkgZGFtYWdlIHJlc3VsdGluZyBmcm9tIGl0cyB1c2UuICBUaGUKKyAgICBhdXRob3IgZ3JhbnRzIGlycmV2b2NhYmxlIHBlcm1pc3Npb24gdG8gYW55b25lIHRvIHVzZSwgbW9kaWZ5LAorICAgIGFuZCBkaXN0cmlidXRlIGl0IGluIGFueSB3YXkgdGhhdCBkb2VzIG5vdCBkaW1pbmlzaCB0aGUgcmlnaHRzCisgICAgb2YgYW55b25lIGVsc2UgdG8gdXNlLCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGl0LCBwcm92aWRlZCB0aGF0CisgICAgcmVkaXN0cmlidXRlZCBkZXJpdmF0aXZlIHdvcmtzIGRvIG5vdCBjb250YWluIG1pc2xlYWRpbmcgYXV0aG9yIG9yCisgICAgdmVyc2lvbiBpbmZvcm1hdGlvbi4gIERlcml2YXRpdmUgd29ya3MgbmVlZCBub3QgYmUgbGljZW5zZWQgdW5kZXIKKyAgICBzaW1pbGFyIHRlcm1zLgorCitwdW55Y29kZS5jIDAuNC4wICgyMDAxLU5vdi0xNy1TYXQpCitodHRwOi8vd3d3LmNzLmJlcmtlbGV5LmVkdS9+YW1jL2lkbi8KK0FkYW0gTS4gQ29zdGVsbG8KK2h0dHA6Ly93d3cubmljZW1pY2UubmV0L2FtYy8KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBkaXJlY3QgcG9ydCBvZiBDIGNvZGUgaW4gdGhlIFJGQworICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBQdW55Y29kZVJlZmVyZW5jZSB7CisgICAgLyoqKiBwdW55Y29kZSBzdGF0dXMgY29kZXMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBwdW55Y29kZV9zdWNjZXNzPTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHVueWNvZGVfYmFkX2lucHV0PTE7ICAgLyogSW5wdXQgaXMgaW52YWxpZC4gICAgICAgICAgICAgICAgICAgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHVueWNvZGVfYmlnX291dHB1dD0yOyAgLyogT3V0cHV0IHdvdWxkIGV4Y2VlZCB0aGUgc3BhY2UgcHJvdmlkZWQuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHVueWNvZGVfb3ZlcmZsb3cgPTM7ICAgIC8qIElucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MuICAqLworICAgIAorICAgIC8qKiogQm9vdHN0cmluZyBwYXJhbWV0ZXJzIGZvciBQdW55Y29kZSAqKiovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGJhc2UgPSAzNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdG1pbiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHRtYXggPSAyNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2tldyA9IDM4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBkYW1wID0gNzAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbml0aWFsX2JpYXMgPSA3MjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5pdGlhbF9uID0gMHg4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZGVsaW1pdGVyID0gMHgyRDsKKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIFVOU0lHTkVEX0lOVF9NQVNLID0gMHhmZmZmZmZmZkw7CisgICAgCisgICAgLyogYmFzaWMoY3ApIHRlc3RzIHdoZXRoZXIgY3AgaXMgYSBiYXNpYyBjb2RlIHBvaW50OiAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gYmFzaWMoaW50IGNwKXsKKyAgICAgICAgcmV0dXJuIChjaGFyKShjcCkgPCAweDgwOworICAgIH0KKworICAgIC8qIGRlbGltKGNwKSB0ZXN0cyB3aGV0aGVyIGNwIGlzIGEgZGVsaW1pdGVyOiAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZGVsaW0oaW50IGNwKXsKKyAgICAgICAgcmV0dXJuICgoY3ApID09IGRlbGltaXRlcik7CisgICAgfQorCisgICAgLyogZGVjb2RlX2RpZ2l0KGNwKSByZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZSAqLworICAgIC8qIHBvaW50IChmb3IgdXNlIGluIHJlcHJlc2VudGluZyBpbnRlZ2VycykgaW4gdGhlIHJhbmdlIDAgdG8gKi8KKyAgICAvKiBiYXNlLTEsIG9yIGJhc2UgaWYgY3AgaXMgZG9lcyBub3QgcmVwcmVzZW50IGEgdmFsdWUuICAgICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZGVjb2RlX2RpZ2l0KGludCBjcCkKKyAgICB7CisgICAgICByZXR1cm4gIGNwIC0gNDggPCAxMCA/IGNwIC0gMjIgOiAgY3AgLSA2NSA8IDI2ID8gY3AgLSA2NSA6CisgICAgICAgICAgICAgIGNwIC0gOTcgPCAyNiA/IGNwIC0gOTcgOiAgYmFzZTsKKyAgICB9CisKKyAgICAvKiBlbmNvZGVfZGlnaXQoZCxmbGFnKSByZXR1cm5zIHRoZSBiYXNpYyBjb2RlIHBvaW50IHdob3NlIHZhbHVlICAgICAgKi8KKyAgICAvKiAod2hlbiB1c2VkIGZvciByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGlzIGQsIHdoaWNoIG5lZWRzIHRvIGJlIGluICAgKi8KKyAgICAvKiB0aGUgcmFuZ2UgMCB0byBiYXNlLTEuICBUaGUgbG93ZXJjYXNlIGZvcm0gaXMgdXNlZCB1bmxlc3MgZmxhZyBpcyAgKi8KKyAgICAvKiBub256ZXJvLCBpbiB3aGljaCBjYXNlIHRoZSB1cHBlcmNhc2UgZm9ybSBpcyB1c2VkLiAgVGhlIGJlaGF2aW9yICAgKi8KKyAgICAvKiBpcyB1bmRlZmluZWQgaWYgZmxhZyBpcyBub256ZXJvIGFuZCBkaWdpdCBkIGhhcyBubyB1cHBlcmNhc2UgZm9ybS4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgZW5jb2RlX2RpZ2l0KGludCBkLCBpbnQgZmxhZykKKyAgICB7CisgICAgICByZXR1cm4gKGNoYXIpIChkICsgMjIgKyAoNzUgKiAoKGQgPCAyNikgPyAxIDogMCkgLSAoKChmbGFnICE9IDApID8gMSA6MCkgPDwgNSkpKTsKKyAgICAgIC8qICAwLi4yNSBtYXAgdG8gQVNDSUkgYS4ueiBvciBBLi5aICovCisgICAgICAvKiAyNi4uMzUgbWFwIHRvIEFTQ0lJIDAuLjkgICAgICAgICAqLworICAgIH0KKworICAgIC8qIGZsYWdnZWQoYmNwKSB0ZXN0cyB3aGV0aGVyIGEgYmFzaWMgY29kZSBwb2ludCBpcyBmbGFnZ2VkICovCisgICAgLyogKHVwcGVyY2FzZSkuICBUaGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIGJjcCBpcyBub3QgYSAgKi8KKyAgICAvKiBiYXNpYyBjb2RlIHBvaW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBmbGFnZ2VkKGludCBiY3ApeworICAgICAgICAgcmV0dXJuICgoYmNwKSAtIDY1IDwgMjYpOworICAgIH0KKworICAgIC8qIGVuY29kZV9iYXNpYyhiY3AsZmxhZykgZm9yY2VzIGEgYmFzaWMgY29kZSBwb2ludCB0byBsb3dlcmNhc2UgKi8KKyAgICAvKiBpZiBmbGFnIGlzIHplcm8sIHVwcGVyY2FzZSBpZiBmbGFnIGlzIG5vbnplcm8sIGFuZCByZXR1cm5zICAgICovCisgICAgLyogdGhlIHJlc3VsdGluZyBjb2RlIHBvaW50LiAgVGhlIGNvZGUgcG9pbnQgaXMgdW5jaGFuZ2VkIGlmIGl0ICAqLworICAgIC8qIGlzIGNhc2VsZXNzLiAgVGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiBiY3AgaXMgbm90IGEgYmFzaWMgKi8KKyAgICAvKiBjb2RlIHBvaW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGVuY29kZV9iYXNpYyhpbnQgYmNwLCBpbnQgZmxhZykKKyAgICB7CisgICAgICBiY3AgLT0gKCgoYmNwIC0gOTcpIDwgMjYpID8gMSA6MCApIDw8IDU7CisgICAgICBib29sZWFuIG15YmNwID0gKGJjcCAtIDY1IDwgMjYpOworICAgICAgcmV0dXJuIChjaGFyKSAoYmNwICsgKCgoZmxhZz09MCkgJiYgbXliY3AgKSA/IDEgOiAwICkgPDwgNSk7CisgICAgfQorCisgICAgLyoqKiBQbGF0Zm9ybS1zcGVjaWZpYyBjb25zdGFudHMgKioqLworCisgICAgLyogbWF4aW50IGlzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGEgcHVueWNvZGVfdWludCB2YXJpYWJsZTogKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIG1heGludCA9IDB4RkZGRkZGRkZMOworICAgIC8qIEJlY2F1c2UgbWF4aW50IGlzIHVuc2lnbmVkLCAtMSBiZWNvbWVzIHRoZSBtYXhpbXVtIHZhbHVlLiAqLworCisgICAgLyoqKiBCaWFzIGFkYXB0YXRpb24gZnVuY3Rpb24gKioqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFkYXB0KGludCBkZWx0YSwgaW50IG51bXBvaW50cywgYm9vbGVhbiBmaXJzdHRpbWUgKXsKKyAgICAgIGludCBrOworCisgICAgICBkZWx0YSA9IChmaXJzdHRpbWU9PXRydWUpID8gZGVsdGEgLyBkYW1wIDogZGVsdGEgPj4gMTsKKyAgICAgIC8qIGRlbHRhID4+IDEgaXMgYSBmYXN0ZXIgd2F5IG9mIGRvaW5nIGRlbHRhIC8gMiAqLworICAgICAgZGVsdGEgKz0gZGVsdGEgLyBudW1wb2ludHM7CisKKyAgICAgIGZvciAoayA9IDA7ICBkZWx0YSA+ICgoYmFzZSAtIHRtaW4pICogdG1heCkgLyAyOyAgayArPSBiYXNlKSB7CisgICAgICAgIGRlbHRhIC89IGJhc2UgLSB0bWluOworICAgICAgfQorCisgICAgICByZXR1cm4gayArIChiYXNlIC0gdG1pbiArIDEpICogZGVsdGEgLyAoZGVsdGEgKyBza2V3KTsKKyAgICB9CisKKyAgICAvKioqIE1haW4gZW5jb2RlIGZ1bmN0aW9uICoqKi8KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGVuY29kZSggICBpbnQgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5wdXRbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGNhc2VfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG91dHB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgb3V0cHV0W10gKXsKKyAgICAgIGludCBkZWx0YSwgaCwgYiwgb3V0LCBtYXhfb3V0LCBiaWFzLCBqLCBxLCBrLCB0OworICAgICAgbG9uZyBtLG47CisgICAgICAvKiBJbml0aWFsaXplIHRoZSBzdGF0ZTogKi8KKworICAgICAgbiA9IGluaXRpYWxfbjsKKyAgICAgIGRlbHRhID0gb3V0ID0gMDsKKyAgICAgIG1heF9vdXQgPSBvdXRwdXRfbGVuZ3RoWzBdOworICAgICAgYmlhcyA9IGluaXRpYWxfYmlhczsKKworICAgICAgLyogSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50czogKi8KKworICAgICAgZm9yIChqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opIHsKKyAgICAgICAgaWYgKGJhc2ljKGlucHV0W2pdKSkgeworICAgICAgICAgIGlmIChtYXhfb3V0IC0gb3V0IDwgMikgcmV0dXJuIHB1bnljb2RlX2JpZ19vdXRwdXQ7CisgICAgICAgICAgb3V0cHV0W291dCsrXSA9IChjaGFyKQorICAgICAgICAgICAgKGNhc2VfZmxhZ3MhPW51bGwgPyAgZW5jb2RlX2Jhc2ljKGlucHV0W2pdLCBjYXNlX2ZsYWdzW2pdKSA6IGlucHV0W2pdKTsKKyAgICAgICAgfQorICAgICAgICAvKiBlbHNlIGlmIChpbnB1dFtqXSA8IG4pIHJldHVybiBwdW55Y29kZV9iYWRfaW5wdXQ7ICovCisgICAgICAgIC8qIChub3QgbmVlZGVkIGZvciBQdW55Y29kZSB3aXRoIHVuc2lnbmVkIGNvZGUgcG9pbnRzKSAqLworICAgICAgfQorCisgICAgICBoID0gYiA9IG91dDsKKworICAgICAgLyogaCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBiZWVuIGhhbmRsZWQsIGIgaXMgdGhlICAqLworICAgICAgLyogbnVtYmVyIG9mIGJhc2ljIGNvZGUgcG9pbnRzLCBhbmQgb3V0IGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyAqLworICAgICAgLyogdGhhdCBoYXZlIGJlZW4gb3V0cHV0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICBpZiAoYiA+IDApIG91dHB1dFtvdXQrK10gPSBkZWxpbWl0ZXI7CisKKyAgICAgIC8qIE1haW4gZW5jb2RpbmcgbG9vcDogKi8KKworICAgICAgd2hpbGUgKGggPCBpbnB1dF9sZW5ndGgpIHsKKyAgICAgICAgLyogQWxsIG5vbi1iYXNpYyBjb2RlIHBvaW50cyA8IG4gaGF2ZSBiZWVuICAgICAqLworICAgICAgICAvKiBoYW5kbGVkIGFscmVhZHkuICBGaW5kIHRoZSBuZXh0IGxhcmdlciBvbmU6ICovCisKKyAgICAgICAgZm9yIChtID0gbWF4aW50LCBqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opIHsKKyAgICAgICAgICAvKiBpZiAoYmFzaWMoaW5wdXRbal0pKSBjb250aW51ZTsgKi8KKyAgICAgICAgICAvKiAobm90IG5lZWRlZCBmb3IgUHVueWNvZGUpICovCisgICAgICAgICAgaWYgKGlucHV0W2pdID49IG4gJiYgaW5wdXRbal0gPCBtKSBtID0gaW5wdXRbal07CisgICAgICAgIH0KKworICAgICAgICAvKiBJbmNyZWFzZSBkZWx0YSBlbm91Z2ggdG8gYWR2YW5jZSB0aGUgZGVjb2RlcidzICAgICovCisgICAgICAgIC8qIDxuLGk+IHN0YXRlIHRvIDxtLDA+LCBidXQgZ3VhcmQgYWdhaW5zdCBvdmVyZmxvdzogKi8KKworICAgICAgICBpZiAobSAtIG4gPiAobWF4aW50IC0gZGVsdGEpIC8gKGggKyAxKSkgcmV0dXJuIHB1bnljb2RlX292ZXJmbG93OworICAgICAgICBkZWx0YSArPSAobSAtIG4pICogKGggKyAxKTsKKyAgICAgICAgbiA9IG07CisKKyAgICAgICAgZm9yIChqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opIHsKKyAgICAgICAgICAvKiBQdW55Y29kZSBkb2VzIG5vdCBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgaW5wdXRbal0gaXMgYmFzaWM6ICovCisgICAgICAgICAgaWYgKGlucHV0W2pdIDwgbiAvKiB8fCBiYXNpYyhpbnB1dFtqXSkgKi8gKSB7CisgICAgICAgICAgICBpZiAoKytkZWx0YSA9PSAwKSByZXR1cm4gcHVueWNvZGVfb3ZlcmZsb3c7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKGlucHV0W2pdID09IG4pIHsKKyAgICAgICAgICAgIC8qIFJlcHJlc2VudCBkZWx0YSBhcyBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyOiAqLworCisgICAgICAgICAgICBmb3IgKHEgPSBkZWx0YSwgayA9IGJhc2U7ICA7ICBrICs9IGJhc2UpIHsKKyAgICAgICAgICAgICAgaWYgKG91dCA+PSBtYXhfb3V0KSByZXR1cm4gcHVueWNvZGVfYmlnX291dHB1dDsKKyAgICAgICAgICAgICAgdCA9IGsgPD0gYmlhcyAvKiArIHRtaW4gKi8gPyB0bWluIDogICAgIC8qICt0bWluIG5vdCBuZWVkZWQgKi8KKyAgICAgICAgICAgICAgICAgIGsgPj0gYmlhcyArIHRtYXggPyB0bWF4IDogayAtIGJpYXM7CisgICAgICAgICAgICAgIGlmIChxIDwgdCkgYnJlYWs7CisgICAgICAgICAgICAgIG91dHB1dFtvdXQrK10gPSBlbmNvZGVfZGlnaXQodCArIChxIC0gdCkgJSAoYmFzZSAtIHQpLCAwKTsKKyAgICAgICAgICAgICAgcSA9IChxIC0gdCkgLyAoYmFzZSAtIHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRwdXRbb3V0KytdID0gZW5jb2RlX2RpZ2l0KHEsIChjYXNlX2ZsYWdzICE9bnVsbCkgPyBjYXNlX2ZsYWdzW2pdIDogMCk7CisgICAgICAgICAgICBiaWFzID0gYWRhcHQoZGVsdGEsIGggKyAxLCAoaCA9PSBiKSk7CisgICAgICAgICAgICBkZWx0YSA9IDA7CisgICAgICAgICAgICArK2g7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgKytkZWx0YTsKKyAgICAgICAgKytuOworICAgICAgfQorCisgICAgICBvdXRwdXRfbGVuZ3RoWzBdID0gb3V0OworICAgICAgcmV0dXJuIHB1bnljb2RlX3N1Y2Nlc3M7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIGVuY29kZShTdHJpbmdCdWZmZXIgaW5wdXQsY2hhcltdIGNhc2VfZmxhZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaW50W10gaW4gPSBuZXcgaW50W2lucHV0Lmxlbmd0aCgpXTsKKyAgICAgICAgaW50IGluTGVuID0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShpbnB1dCk7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpbltpbkxlbisrXT1jaDsKKyAgICAgICAgfQorCisgICAgICAgIGludFtdIG91dExlbiA9ICBuZXcgaW50WzFdOworICAgICAgICBvdXRMZW5bMF0gPSBpbnB1dC5sZW5ndGgoKSo0OworICAgICAgICBjaGFyW10gb3V0cHV0ID0gbmV3IGNoYXJbb3V0TGVuWzBdXTsKKyAgICAgICAgaW50IHJjID0gcHVueWNvZGVfc3VjY2VzczsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHJjID0gZW5jb2RlKGluTGVuLGluLGNhc2VfZmxhZ3MsIG91dExlbiwgb3V0cHV0KTsKKyAgICAgICAgICAgIGlmKHJjPT1wdW55Y29kZV9iaWdfb3V0cHV0KXsKKyAgICAgICAgICAgICAgICBvdXRMZW5bMF0gPSBvdXRMZW5bMF0qNDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBuZXcgY2hhcltvdXRMZW5bMF1dOworICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIHRvIGNvbnZlcnQKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmKHJjPT1wdW55Y29kZV9zdWNjZXNzKXsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKG91dHB1dCwwLG91dExlblswXSk7CisgICAgICAgIH0KKyAgICAgICAgZ2V0RXhjZXB0aW9uKHJjKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGdldEV4Y2VwdGlvbihpbnQgcmMpIAorICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICBzd2l0Y2gocmMpeworICAgICAgICAgICAgIGNhc2UgcHVueWNvZGVfYmlnX291dHB1dDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgb3V0cHV0IGNhcGFjaXR5IHdhcyBub3Qgc3VmZmljaWVudC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5CVUZGRVJfT1ZFUkZMT1dfRVJST1IpOworICAgICAgICAgICAgIGNhc2UgcHVueWNvZGVfYmFkX2lucHV0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCBpbiB0aGUgaW5wdXQiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgIGNhc2UgcHVueWNvZGVfb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSW52YWxpZCBjaGFyIGZvdW5kIGluIHRoZSBpbnB1dCIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklOVkFMSURfQ0hBUl9GT1VORCk7ICAgCisgICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0JVRkZFUl9TSVpFID0gMTAwOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIGRlY29kZShTdHJpbmdCdWZmZXIgaW5wdXQsY2hhcltdIGNhc2VfZmxhZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgY2hhcltdIGluID0gaW5wdXQudG9TdHJpbmcoKS50b0NoYXJBcnJheSgpOworICAgICAgICBpbnRbXSBvdXRMZW4gPSBuZXcgaW50WzFdOworICAgICAgICBvdXRMZW5bMF0gPSBNQVhfQlVGRkVSX1NJWkU7CisgICAgICAgIGludFtdIG91dHB1dCA9IG5ldyBpbnRbb3V0TGVuWzBdXTsKKyAgICAgICAgaW50IHJjID0gcHVueWNvZGVfc3VjY2VzczsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHJjID0gZGVjb2RlKGlucHV0Lmxlbmd0aCgpLGluLCBvdXRMZW4sIG91dHB1dCxjYXNlX2ZsYWdzKTsKKyAgICAgICAgICAgIGlmKHJjPT1wdW55Y29kZV9iaWdfb3V0cHV0KXsKKyAgICAgICAgICAgICAgICBvdXRMZW5bMF0gPSBvdXRwdXQubGVuZ3RoICogNDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBuZXcgaW50W291dExlblswXV07CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZihyYz09cHVueWNvZGVfc3VjY2Vzcyl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaSA8IG91dExlblswXTsgaSsrICl7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCxvdXRwdXRbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGdldEV4Y2VwdGlvbihyYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqKiBNYWluIGRlY29kZSBmdW5jdGlvbiAqKiovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZGVjb2RlKGludCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb3V0cHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2FzZV9mbGFncyApeworICAgICAgaW50IG4sIG91dCwgaSwgbWF4X291dCwgYmlhcywKKyAgICAgICAgICAgICAgICAgICAgIGIsIGosIGluLCBvbGRpLCB3LCBrLCBkaWdpdCwgdDsKKworICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgc3RhdGU6ICovCisKKyAgICAgIG4gPSBpbml0aWFsX247CisgICAgICBvdXQgPSBpID0gMDsKKyAgICAgIG1heF9vdXQgPSBvdXRwdXRfbGVuZ3RoWzBdOworICAgICAgYmlhcyA9IGluaXRpYWxfYmlhczsKKworICAgICAgLyogSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50czogIExldCBiIGJlIHRoZSBudW1iZXIgb2YgaW5wdXQgY29kZSAqLworICAgICAgLyogcG9pbnRzIGJlZm9yZSB0aGUgbGFzdCBkZWxpbWl0ZXIsIG9yIDAgaWYgdGhlcmUgaXMgbm9uZSwgdGhlbiAgICAqLworICAgICAgLyogY29weSB0aGUgZmlyc3QgYiBjb2RlIHBvaW50cyB0byB0aGUgb3V0cHV0LiAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICBmb3IgKGIgPSBqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opeworICAgICAgICAgICBpZiAoZGVsaW0oaW5wdXRbal0pPT10cnVlKXsKKyAgICAgICAgICAgICAgICBiID0gajsKKyAgICAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKGIgPiBtYXhfb3V0KSByZXR1cm4gcHVueWNvZGVfYmlnX291dHB1dDsKKworICAgICAgZm9yIChqID0gMDsgIGogPCBiOyAgKytqKSB7CisgICAgICAgIGlmIChjYXNlX2ZsYWdzICE9IG51bGwpIGNhc2VfZmxhZ3Nbb3V0XSA9IChjaGFyKShmbGFnZ2VkKGlucHV0W2pdKSA/IDEgOiAwKTsKKyAgICAgICAgaWYgKCFiYXNpYyhpbnB1dFtqXSkpIHJldHVybiBwdW55Y29kZV9iYWRfaW5wdXQ7CisgICAgICAgIG91dHB1dFtvdXQrK10gPSBpbnB1dFtqXTsKKyAgICAgIH0KKworICAgICAgLyogTWFpbiBkZWNvZGluZyBsb29wOiAgU3RhcnQganVzdCBhZnRlciB0aGUgbGFzdCBkZWxpbWl0ZXIgaWYgYW55ICAqLworICAgICAgLyogYmFzaWMgY29kZSBwb2ludHMgd2VyZSBjb3BpZWQ7IHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb3RoZXJ3aXNlLiAqLworCisgICAgICBmb3IgKGluID0gYiA+IDAgPyBiICsgMSA6IDA7ICBpbiA8IGlucHV0X2xlbmd0aDsgICsrb3V0KSB7CisKKyAgICAgICAgLyogaW4gaXMgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byBiZSBjb25zdW1lZCwgYW5kICovCisgICAgICAgIC8qIG91dCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuICAgICAqLworCisgICAgICAgIC8qIERlY29kZSBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyIGludG8gZGVsdGEsICAqLworICAgICAgICAvKiB3aGljaCBnZXRzIGFkZGVkIHRvIGkuICBUaGUgb3ZlcmZsb3cgY2hlY2tpbmcgaXMgZWFzaWVyICAgKi8KKyAgICAgICAgLyogaWYgd2UgaW5jcmVhc2UgaSBhcyB3ZSBnbywgdGhlbiBzdWJ0cmFjdCBvZmYgaXRzIHN0YXJ0aW5nICovCisgICAgICAgIC8qIHZhbHVlIGF0IHRoZSBlbmQgdG8gb2J0YWluIGRlbHRhLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICAgIGZvciAob2xkaSA9IGksIHcgPSAxLCBrID0gYmFzZTsgIDsgIGsgKz0gYmFzZSkgeworICAgICAgICAgIGlmIChpbiA+PSBpbnB1dF9sZW5ndGgpIHJldHVybiBwdW55Y29kZV9iYWRfaW5wdXQ7CisgICAgICAgICAgZGlnaXQgPSBkZWNvZGVfZGlnaXQoaW5wdXRbaW4rK10pOworICAgICAgICAgIGlmIChkaWdpdCA+PSBiYXNlKSByZXR1cm4gcHVueWNvZGVfYmFkX2lucHV0OworICAgICAgICAgIGlmIChkaWdpdCA+IChtYXhpbnQgLSBpKSAvIHcpIHJldHVybiBwdW55Y29kZV9vdmVyZmxvdzsKKyAgICAgICAgICBpICs9IGRpZ2l0ICogdzsKKyAgICAgICAgICB0ID0gKGsgPD0gYmlhcykgLyogKyB0bWluICovID8gdG1pbiA6ICAgICAvKiArdG1pbiBub3QgbmVlZGVkICovCisgICAgICAgICAgICAgIChrID49IChiaWFzICsgdG1heCkpID8gdG1heCA6IGsgLSBiaWFzOworICAgICAgICAgIGlmIChkaWdpdCA8IHQpIGJyZWFrOworICAgICAgICAgIGlmICh3ID4gbWF4aW50IC8gKGJhc2UgLSB0KSkgcmV0dXJuIHB1bnljb2RlX292ZXJmbG93OworICAgICAgICAgIHcgKj0gKGJhc2UgLSB0KTsKKyAgICAgICAgfQorCisgICAgICAgIGJpYXMgPSBhZGFwdChpIC0gb2xkaSwgb3V0ICsgMSwgKG9sZGkgPT0gMCkpOworCisgICAgICAgIC8qIGkgd2FzIHN1cHBvc2VkIHRvIHdyYXAgYXJvdW5kIGZyb20gb3V0KzEgdG8gMCwgICAqLworICAgICAgICAvKiBpbmNyZW1lbnRpbmcgbiBlYWNoIHRpbWUsIHNvIHdlJ2xsIGZpeCB0aGF0IG5vdzogKi8KKworICAgICAgICBpZiAoaSAvIChvdXQgKyAxKSA+IG1heGludCAtIG4pIHJldHVybiBwdW55Y29kZV9vdmVyZmxvdzsKKyAgICAgICAgbiArPSBpIC8gKG91dCArIDEpOworICAgICAgICBpICU9IChvdXQgKyAxKTsKKworICAgICAgICAvKiBJbnNlcnQgbiBhdCBwb3NpdGlvbiBpIG9mIHRoZSBvdXRwdXQ6ICovCisKKyAgICAgICAgLyogbm90IG5lZWRlZCBmb3IgUHVueWNvZGU6ICovCisgICAgICAgIC8qIGlmIChkZWNvZGVfZGlnaXQobikgPD0gYmFzZSkgcmV0dXJuIHB1bnljb2RlX2ludmFsaWRfaW5wdXQ7ICovCisgICAgICAgIGlmIChvdXQgPj0gbWF4X291dCkgcmV0dXJuIHB1bnljb2RlX2JpZ19vdXRwdXQ7CisKKyAgICAgICAgaWYgKGNhc2VfZmxhZ3MgIT0gbnVsbCkgeworICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2FzZV9mbGFncywgaSwgY2FzZV9mbGFncywgIGkgKyAxLCBvdXQgLSBpKTsKKyAgICAgICAgICAvKiBDYXNlIG9mIGxhc3QgY2hhcmFjdGVyIGRldGVybWluZXMgdXBwZXJjYXNlIGZsYWc6ICovCisgICAgICAgICAgY2FzZV9mbGFnc1tpXSA9IChjaGFyKShmbGFnZ2VkKGlucHV0W2luIC0gMV0pID8gMCA6MSk7CisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG91dHB1dCwgaSwgb3V0cHV0LCBpICsgMSwgIChvdXQgLSBpKSk7CisgICAgICAgIG91dHB1dFtpKytdID0gbjsKKyAgICAgIH0KKworICAgICAgb3V0cHV0X2xlbmd0aFswXSA9IG91dDsKKyAgICAgIHJldHVybiBwdW55Y29kZV9zdWNjZXNzOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjN2NkMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICJUZXN0SUROQSIsIAorICAgICAgICAgICAgICAgICAgICAgICJUZXN0U3RyaW5nUHJlcCIsCisgICAgICAgICAgICAgICAgICAgICAgIlRlc3RJRE5BUmVmIiwKKyAgICAgICAgICAgICAgICAgICAgICAiSUROQUNvbmZvcm1hbmNlVGVzdCIsCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgIlN0cmluZ1ByZXAgYW5kIElETkEgdGVzdCIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJTdHJpbmdQcmVwIjsKKyAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdERhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWFhNGU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdERhdGEuamF2YQpAQCAtMCwwICsxLDYzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5JRE5BOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIFRlc3REYXRhIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXJbXVtdIHVuaWNvZGVJbiA9eworICAgICAgICB7IAorICAgICAgICAgICAgMHgwNjQ0LCAweDA2NEEsIDB4MDY0NywgMHgwNjQ1LCAweDA2MjcsIDB4MDYyOCwgMHgwNjJBLCAweDA2NDMsIDB4MDY0NCwKKyAgICAgICAgICAgIDB4MDY0NSwgMHgwNjQ4LCAweDA2MzQsIDB4MDYzOSwgMHgwNjMxLCAweDA2MjgsIDB4MDY0QSwgMHgwNjFGCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4NEVENiwgMHg0RUVDLCAweDRFM0EsIDB4NEVDMCwgMHg0RTQ4LCAweDRFMEQsIDB4OEJGNCwgMHg0RTJELCAweDY1ODcsIAorICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgwMDUwLCAweDAwNzIsIDB4MDA2RiwgMHgwMTBELCAweDAwNzAsIDB4MDA3MiwgMHgwMDZGLCAweDAwNzMsIDB4MDA3NCwKKyAgICAgICAgICAgIDB4MDExQiwgMHgwMDZFLCAweDAwNjUsIDB4MDA2RCwgMHgwMDZDLCAweDAwNzUsIDB4MDA3NiwgMHgwMEVELCAweDAxMEQsCisgICAgICAgICAgICAweDAwNjUsIDB4MDA3MywgMHgwMDZCLCAweDAwNzksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDVEQywgMHgwNURFLCAweDA1RDQsIDB4MDVENCwgMHgwNURELCAweDA1RTQsIDB4MDVFOSwgMHgwNUQ1LCAweDA1RDgsCisgICAgICAgICAgICAweDA1REMsIDB4MDVEMCwgMHgwNURFLCAweDA1RDMsIDB4MDVEMSwgMHgwNUU4LCAweDA1RDksIDB4MDVERCwgMHgwNUUyLAorICAgICAgICAgICAgMHgwNUQxLCAweDA1RTgsIDB4MDVEOSwgMHgwNUVBLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDA5MkYsIDB4MDkzOSwgMHgwOTMyLCAweDA5NEIsIDB4MDkxNywgMHgwOTM5LCAweDA5M0YsIDB4MDkyOCwgMHgwOTRELAorICAgICAgICAgICAgMHgwOTI2LCAweDA5NDAsIDB4MDkxNSwgMHgwOTRELCAweDA5MkYsIDB4MDk0QiwgMHgwOTAyLCAweDA5MjgsIDB4MDkzOSwKKyAgICAgICAgICAgIDB4MDk0MCwgMHgwOTAyLCAweDA5MkMsIDB4MDk0QiwgMHgwOTMyLCAweDA5MzgsIDB4MDkxNSwgMHgwOTI0LCAweDA5NDcsCisgICAgICAgICAgICAweDA5MzksIDB4MDk0OCwgMHgwOTAyLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDMwNkEsIDB4MzA1QywgMHgzMDdGLCAweDMwOTMsIDB4MzA2QSwgMHg2NUU1LCAweDY3MkMsIDB4OEE5RSwgMHgzMDkyLAorICAgICAgICAgICAgMHg4QTcxLCAweDMwNTcsIDB4MzA2NiwgMHgzMDRGLCAweDMwOEMsIDB4MzA2QSwgMHgzMDQ0LCAweDMwNkUsIDB4MzA0QiwKKyAgICAgICAgICAgCisgICAgICAgIH0sCisgICAgLyogIAorICAgICAgICB7CisgICAgICAgICAgICAweEMxMzgsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgIDB4QzVCQywgMHhCOUM4LCAweEIwOTgsIDB4Qzg4QiwgMHhDNzQ0LCAweEFFNEMsCisgICAgICAgIH0sCisgICAgKi8KKyAgICAgICAgeyAgIAorICAgICAgICAgICAgMHgwNDNGLCAweDA0M0UsIDB4MDQ0NywgMHgwNDM1LCAweDA0M0MsIDB4MDQ0MywgMHgwNDM2LCAweDA0MzUsIDB4MDQzRSwKKyAgICAgICAgICAgIDB4MDQzRCwgMHgwNDM4LCAweDA0M0QsIDB4MDQzNSwgMHgwNDMzLCAweDA0M0UsIDB4MDQzMiwgMHgwNDNFLCAweDA0NDAsCisgICAgICAgICAgICAweDA0NEYsIDB4MDQ0MiwgMHgwNDNGLCAweDA0M0UsIDB4MDQ0MCwgMHgwNDQzLCAweDA0NDEsIDB4MDQ0MSwgMHgwNDNBLAorICAgICAgICAgICAgMHgwNDM4LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwNTAsIDB4MDA2RiwgMHgwMDcyLCAweDAwNzEsIDB4MDA3NSwgMHgwMEU5LCAweDAwNkUsIDB4MDA2RiwgMHgwMDcwLAorICAgICAgICAgICAgMHgwMDc1LCAweDAwNjUsIDB4MDA2NCwgMHgwMDY1LCAweDAwNkUsIDB4MDA3MywgMHgwMDY5LCAweDAwNkQsIDB4MDA3MCwKKyAgICAgICAgICAgIDB4MDA2QywgMHgwMDY1LCAweDAwNkQsIDB4MDA2NSwgMHgwMDZFLCAweDAwNzQsIDB4MDA2NSwgMHgwMDY4LCAweDAwNjEsCisgICAgICAgICAgICAweDAwNjIsIDB4MDA2QywgMHgwMDYxLCAweDAwNzIsIDB4MDA2NSwgMHgwMDZFLCAweDAwNDUsIDB4MDA3MywgMHgwMDcwLAorICAgICAgICAgICAgMHgwMDYxLCAweDAwRjEsIDB4MDA2RiwgMHgwMDZDLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDRFRDYsIDB4NTAxMSwgMHg3MjMyLCAweDRFQzAsIDB4OUVCRCwgMHg0RTBELCAweDhBQUEsIDB4NEUyRCwgMHg2NTg3LAorICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgwMDU0LCAweDFFQTEsIDB4MDA2OSwgMHgwMDczLCAweDAwNjEsIDB4MDA2RiwgMHgwMDY4LCAweDFFQ0QsIDB4MDA2QiwKKyAgICAgICAgICAgIDB4MDA2OCwgMHgwMEY0LCAweDAwNkUsIDB4MDA2NywgMHgwMDc0LCAweDAwNjgsIDB4MUVDMywgMHgwMDYzLCAweDAwNjgsCisgICAgICAgICAgICAweDFFQzksIDB4MDA2RSwgMHgwMEYzLCAweDAwNjksIDB4MDA3NCwgMHgwMDY5LCAweDFFQkYsIDB4MDA2RSwgMHgwMDY3LAorICAgICAgICAgICAgMHgwMDU2LCAweDAwNjksIDB4MUVDNywgMHgwMDc0LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwMzMsIDB4NUU3NCwgMHgwMDQyLCAweDdENDQsIDB4OTFEMSwgMHg1MTZCLCAweDUxNDgsIDB4NzUxRiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHg1Qjg5LCAweDVCQTQsIDB4NTk0OCwgMHg3RjhFLCAweDYwNzUsIDB4MDAyRCwgMHgwMDc3LCAweDAwNjksIDB4MDA3NCwKKyAgICAgICAgICAgIDB4MDA2OCwgMHgwMDJELCAweDAwNTMsIDB4MDA1NSwgMHgwMDUwLCAweDAwNDUsIDB4MDA1MiwgMHgwMDJELCAweDAwNEQsCisgICAgICAgICAgICAweDAwNEYsIDB4MDA0RSwgMHgwMDRCLCAweDAwNDUsIDB4MDA1OSwgMHgwMDUzLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwNDgsIDB4MDA2NSwgMHgwMDZDLCAweDAwNkMsIDB4MDA2RiwgMHgwMDJELCAweDAwNDEsIDB4MDA2RSwgMHgwMDZGLAorICAgICAgICAgICAgMHgwMDc0LCAweDAwNjgsIDB4MDA2NSwgMHgwMDcyLCAweDAwMkQsIDB4MDA1NywgMHgwMDYxLCAweDAwNzksIDB4MDAyRCwKKyAgICAgICAgICAgIDB4MzA1RCwgMHgzMDhDLCAweDMwNUUsIDB4MzA4QywgMHgzMDZFLCAweDU4MzQsIDB4NjI0MCwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgzMDcyLCAweDMwNjgsIDB4MzA2NCwgMHg1QzRCLCAweDY4MzksIDB4MzA2RSwgMHg0RTBCLCAweDAwMzIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDA0RCwgMHgwMDYxLCAweDAwNkEsIDB4MDA2OSwgMHgzMDY3LCAweDAwNEIsIDB4MDA2RiwgMHgwMDY5LCAweDMwNTksCisgICAgICAgICAgICAweDMwOEIsIDB4MDAzNSwgMHg3OUQyLCAweDUyNEQsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MzBEMSwgMHgzMEQ1LCAweDMwQTMsIDB4MzBGQywgMHgwMDY0LCAweDAwNjUsIDB4MzBFQiwgMHgzMEYzLCAweDMwRDAsCisgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDMwNUQsIDB4MzA2RSwgMHgzMEI5LCAweDMwRDQsIDB4MzBGQywgMHgzMEM5LCAweDMwNjcsCisgICAgICAgIH0sCisgICAgICAgIC8vIHRlc3Qgbm9uLUJNUCBjb2RlIHBvaW50cworICAgICAgICB7ICAgIAorICAgICAgICAgICAgMHhEODAwLCAweERGMDAsIDB4RDgwMCwgMHhERjAxLCAweEQ4MDAsIDB4REYwMiwgMHhEODAwLCAweERGMDMsIDB4RDgwMCwgMHhERjA1LAorICAgICAgICAgICAgMHhEODAwLCAweERGMDYsIDB4RDgwMCwgMHhERjA3LCAweEQ4MDAsIDB4REYwOSwgMHhEODAwLCAweERGMEEsIDB4RDgwMCwgMHhERjBCLAorICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHhEODAwLCAweERGMEQsIDB4RDgwMCwgMHhERjBDLCAweEQ4MDAsIDB4REYxRSwgMHhEODAwLCAweERGMEYsIDB4RDgwMCwgMHhERjE2LAorICAgICAgICAgICAgMHhEODAwLCAweERGMTUsIDB4RDgwMCwgMHhERjE0LCAweEQ4MDAsIDB4REYxMiwgMHhEODAwLCAweERGMTAsIDB4RDgwMCwgMHhERjIwLAorICAgICAgICAgICAgMHhEODAwLCAweERGMjEsCisgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICAvLyBHcmVlaworICAgICAgICB7CisgICAgICAgICAgICAweDAzYjUsIDB4MDNiYiwgMHgwM2JiLCAweDAzYjcsIDB4MDNiZCwgMHgwM2I5LCAweDAzYmEsIDB4MDNhYworICAgICAgICB9LAorICAgICAgICAvLyBNYWx0ZXNlCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDA2MiwgMHgwMDZmLCAweDAwNmUsIDB4MDEyMSwgMHgwMDc1LCAweDAwNzMsIDB4MDA2MSwgMHgwMTI3LAorICAgICAgICAgICAgMHgwMTI3LCAweDAwNjEKKyAgICAgICAgfSwKKyAgICAgICAgLy8gUnVzc2lhbgorICAgICAgICB7CisgICAgICAgICAgICAweDA0M2YsIDB4MDQzZSwgMHgwNDQ3LCAweDA0MzUsIDB4MDQzYywgMHgwNDQzLCAweDA0MzYsIDB4MDQzNSwKKyAgICAgICAgICAgIDB4MDQzZSwgMHgwNDNkLCAweDA0MzgsIDB4MDQzZCwgMHgwNDM1LCAweDA0MzMsIDB4MDQzZSwgMHgwNDMyLAorICAgICAgICAgICAgMHgwNDNlLCAweDA0NDAsIDB4MDQ0ZiwgMHgwNDQyLCAweDA0M2YsIDB4MDQzZSwgMHgwNDQwLCAweDA0NDMsCisgICAgICAgICAgICAweDA0NDEsIDB4MDQ0MSwgMHgwNDNhLCAweDA0MzgKKyAgICAgICAgfSwKKyAgIAorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGFzY2lpSW4gPSB7CisgICAgICAgICJ4bi0tZWdicGRhajZidTRieGZnZWhmdnd4biIsCisgICAgICAgICJ4bi0taWhxd2NyYjRjdjhhOGRxZzA1NnBxanllIiwKKyAgICAgICAgInhuLS1Qcm9wcm9zdG5lbWx1dmVza3ktdXliMjRkbWE0MWEiLAorICAgICAgICAieG4tLTRkYmNhZ2RhaHltYnhla2hlaDZlMGE3ZmVpMGIiLAorICAgICAgICAieG4tLWkxYmFhN2VjaTlnbHJkOWIyYWUxYmowaGZjZ2c2aXlhZjhvMGExZGlnMGNkIiwKKyAgICAgICAgInhuLS1uOGpvazVheTVkemFiZDVieW05ZjBjbTU2ODVycmpldHI2cGR4YSIsCisgICAgLyogICJ4bi0tOTg5YW9tc3ZpNWU4M2RiMWQyYTM1NWN2MWUwdmFrMWR3cnY5M2Q1eGJoMTVhMGR0MzBhNWpwc2Q4NzljY202ZmVhOThjIiwqLworICAgICAgICAieG4tLWIxYWJmYWFlcGRybm5iZ2VmYmFEb3Rjd2F0bXEyZzRsIiwKKyAgICAgICAgInhuLS1Qb3JxdW5vcHVlZGVuc2ltcGxlbWVudGVoYWJsYXJlbkVzcGFvbC1mbWQ1NmEiLAorICAgICAgICAieG4tLWlocXdjdHZ6YzkxZjY1OWRyc3MzeDhibzB5YiIsCisgICAgICAgICJ4bi0tVGlzYW9oa2huZ3RoY2huaXRpbmdWaXQta2pjcjgyNjhxeXhhZmQyZjFiOWciLAorICAgICAgICAieG4tLTNCLXd3NGM1ZTE4MGU1NzVhNjVsc3kyYiIsCisgICAgICAgICJ4bi0tLXdpdGgtU1VQRVItTU9OS0VZUy1wYzU4YWc4MGE4cWFpMDBnN245biIsCisgICAgICAgICJ4bi0tSGVsbG8tQW5vdGhlci1XYXktLWZjNHF1YTA1YXV3YjM2NzR2ZnIwYiIsCisgICAgICAgICJ4bi0tMi11OXRsenI5NzU2YnQzdWMwdiIsCisgICAgICAgICJ4bi0tTWFqaUtvaTUtNzgzZ3VlNnF6MDc1YXptNWUiLAorICAgICAgICAieG4tLWRlLWpnNGF2aGJ5MW5vYzBkIiwKKyAgICAgICAgInhuLS1kOWp1YXU0MWF3Y3pjenAiLAorICAgICAgICAiWE4tLTA5N0NDREVLR0hRSksiLAorICAgICAgICAiWE4tLWRiOENCSEVKTEdINEUwQUwiLAorICAgICAgICAieG4tLWh4YXJnaWZkYXIiLCAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JlZWsKKyAgICAgICAgInhuLS1ib251c2FhLTViYjFkYSIsICAgICAgICAgICAgICAgICAgIC8vIE1hbHRlc2UKKyAgICAgICAgInhuLS1iMWFiZmFhZXBkcm5uYmdlZmJhZG90Y3dhdG1xMmc0bCIsIC8vIFJ1c3NpYW4gKEN5cmlsbGljKQorICAgICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGRvbWFpbk5hbWVzID0geworICAgICAgICAic2xpcDEyOS0zNy0xMTgtMTQ2Lm5jLnVzLmlibS5uZXQiLAorICAgICAgICAic2FyYXRvZ2EucGUudXRleGFzLmVkdSIsCisgICAgICAgICJkaWFsLTEyMC00NS5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJ3b28tMDg1LmRvcm1zLndhbGxlci5uZXQiLAorICAgICAgICAiaGQzMC0wNDkuaGlsLmNvbXB1c2VydmUuY29tIiwKKyAgICAgICAgInBlbTIwMy0zMS5wZS50dHUuZWR1IiwKKyAgICAgICAgIjU2Sy0yMjcuTWF4VE5UMy5wZHEubmV0IiwKKyAgICAgICAgImRpYWwtMzYtMi5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJzbGlwMTI5LTM3LTIzLTE1Mi5nYS51cy5pYm0ubmV0IiwKKyAgICAgICAgInRzNDVpcDExOS5jYWR2aXNpb24uY29tIiwKKyAgICAgICAgInNkbi10cy0wMDR0eGF1c3RQMDUuZGlhbHNwcmludC5uZXQiLAorICAgICAgICAiYmFyLXRudDFzNjYuZXJvbHMuY29tIiwKKyAgICAgICAgIjEwMS5zdC1sb3Vpcy0xNS5tby5kaWFsLWFjY2Vzcy5hdHQubmV0IiwKKyAgICAgICAgImg5Mi0yNDUuQXJjby5DT00iLAorICAgICAgICAiZGlhbC0xMy0yLm90cy51dGV4YXMuZWR1IiwKKyAgICAgICAgIm5ldC1yZWR5bmV0MjkuZGF0YW1hcmtldHMuY29tLmFyIiwKKyAgICAgICAgImNjcy1zaGl2YTI4LnJlYWNjaXVuLm5ldC52ZSIsCisgICAgICAgICI3LmhvdXN0b24tMTEudHguZGlhbC1hY2Nlc3MuYXR0Lm5ldCIsCisgICAgICAgICJpbmd3MTI5LTM3LTEyMC0yNi5tby51cy5pYm0ubmV0IiwKKyAgICAgICAgImRpYWx1cDYuYXVzdGludHguY29tIiwKKyAgICAgICAgImRuczIudHBhby5nb3YudHIiLAorICAgICAgICAic2xpcDEyOS0zNy0xMTktMTk0Lm5jLnVzLmlibS5uZXQiLAorICAgICAgICAiY3M3LmRpbGxvbnMuY28udWsuMjAzLjExOS4xOTMuaW4tYWRkci5hcnBhIiwKKyAgICAgICAgInN3cHJkMS5pbm5vdnBsYWNlLnNhc2thdG9vbi5zay5jYSIsCisgICAgICAgICJiaWtpbmkuYm9sb2duYS5tYXJhdXQuaXQiLAorICAgICAgICAibm9kZTkxLnN1Ym5ldDE1OS0xOTgtNzkuYmF4dGVyLmNvbSIsCisgICAgICAgICJjdXN0MTkubWF4NS5uZXcteW9yay5ueS5tcy51dS5uZXQiLAorICAgICAgICAiYmFsZXhhbmRlci5zbGlwLmFuZHJldy5jbXUuZWR1IiwKKyAgICAgICAgInBvb2wwMjkubWF4Mi5kZW52ZXIuY28uZHluaXAuYWx0ZXIubmV0IiwKKyAgICAgICAgImN1c3Q0OS5tYXg5Lm5ldy15b3JrLm55Lm1zLnV1Lm5ldCIsCisgICAgICAgICJzNjEuYWJxLWRpYWxpbjIuaG9sbHliZXJyeS5jb20iLAorCisgICAgfTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGRvbWFpbk5hbWVzMVVuaSA9IHsKKyAgICAgICAgIlx1MDkxN1x1MDkyOFx1MDk0N1x1MDkzNi5zYW5qb3NlLmlibS5jb20iLAorICAgICAgICAid3d3Llx1MDEyMS5jb20iLAorICAgICAgICAvLyJ3d3cuXHUwMEUwXHUwMEIzXHUwMEFGLmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEMyXHUwMEE0LmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEMyXHUwMEEzLmNvbSIsCisgICAgICAgIC8vICJcXHUwMDI1IiwgLy8nJScgKDB4MDAyNSkgcHJvZHVjZXMgVV9JRE5BX1NURDNfQVNDSUlfUlVMRVNfRVJST1IKKyAgICAgICAgLy8gIlxcdTAwNUNcXHUwMDVDIiwgLy8nXCcgKDB4MDA1QykgcHJvZHVjZXMgVV9JRE5BX1NURDNfQVNDSUlfUlVMRVNfRVJST1IKKyAgICAgICAgLy8iQCIsCisgICAgICAgIC8vIlxcdTAwMkYiLAorICAgICAgICAvLyJ3d3cuXFx1MDAyMS5jb20iLAorICAgICAgICAvLyJ3d3cuXFx1MDAyNC5jb20iLAorICAgICAgICAvLyJcXHUwMDNmIiwKKyAgICAgICAgLy8gVGhlc2UgeWVpbGQgVV9JRE5BX1BST0hJQklURURfRVJST1IKKyAgICAgICAgLy8iXFx1MDBDRlxcdTAwODIuY29tIiwKKyAgICAgICAgLy8iXFx1MDBDRVxcdTAwQjJcXHUwMEMzXFx1MDA5RnNzLmNvbSIsCisgICAgICAgIC8vIlxcdTAwRTJcXHUwMDk4XFx1MDBCQS5jb20iLAorICAgICAgICAiXHUwMEMzXHUwMEJDLmNvbSIKKyAgICB9OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZG9tYWluTmFtZXNUb0FTQ0lJT3V0ID0geworICAgICAgICAieG4tLTMxYjhhMmJ3ZC5zYW5qb3NlLmlibS5jb20iLAorICAgICAgICAid3d3LnhuLS12ZWEuY29tIiwKKyAgICAgICAgLy8id3d3LnhuLS0zIC1paWE4MHQuY29tIiwKKyAgICAgICAgInd3dy54bi0tYmJhN2ouY29tIiwKKyAgICAgICAgInd3dy54bi0tOWE5ai5jb20iLAorICAgICAgIC8vICJcdTAwMjUiLAorICAgICAgIC8vICJcdTAwNUNcdTAwNUMiLAorICAgICAgIC8vICJAIiwKKyAgICAgICAvLyAiXHUwMDJGIiwKKyAgICAgICAvLyAid3d3Llx1MDAyMS5jb20iLAorICAgICAgIC8vICJ3d3cuXHUwMDI0LmNvbSIsCisgICAgICAgLy8gIlx1MDAzZiIsCisgICAgICAgICJ4bi0tMTQtcmlhNzQyM2EuY29tIgorICAgICAgICAKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBkb21haW5OYW1lc1RvVW5pY29kZU91dCA9IHsKKyAgICAgICAgIlx1MDkxN1x1MDkyOFx1MDk0N1x1MDkzNi5zYW5qb3NlLmlibS5jb20iLAorICAgICAgICAid3d3Llx1MDEyMS5jb20iLAorICAgICAgICAvLyJ3d3cuXHUwMEUwXHUwMDMzXHUwMDIwXHUwMzA0LmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEUyXHUwMEE0LmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEUyXHUwMEEzLmNvbSIsCisgICAgICAgLy8gIlx1MDAyNSIsCisgICAgICAgLy8gIlx1MDA1Q1x1MDA1QyIsCisgICAgICAgLy8gIkAiLAorICAgICAgIC8vICJcdTAwMkYiLAorICAgICAgIC8vICJ3d3cuXHUwMDIxLmNvbSIsCisgICAgICAgLy8gInd3dy5cdTAwMjQuY29tIiwKKyAgICAgICAvLyAiXHUwMDNmIiwKKyAgICAgICAgIlx1MDBFM1x1MDAzMVx1MjA0NFx1MDAzNC5jb20iCisgICAgICAgIAorICAgIH07CisKKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRXJyb3JDYXNleworCisgICAgICAgIHB1YmxpYyBjaGFyW10gdW5pY29kZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBhc2NpaTsKKyAgICAgICAgcHVibGljIEV4Y2VwdGlvbiBleHBlY3RlZDsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gdXNlU1REM0FTQ0lJUnVsZXM7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHRlc3RUb1VuaWNvZGU7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHRlc3RMYWJlbDsKKyAgICAgICAgRXJyb3JDYXNlKGNoYXJbXSB1bmlJbiwgU3RyaW5nIGFzY2lpSW4sIEV4Y2VwdGlvbiBleCwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHN0ZDMsIGJvb2xlYW4gdGVzdFRvVW5pLCBib29sZWFuIHRlc3RsYWJlbCl7CisgICAgICAgICAgICB1bmljb2RlID0gdW5pSW47CisgICAgICAgICAgICBhc2NpaSA9IGFzY2lpSW47CisgICAgICAgICAgICBleHBlY3RlZCA9IGV4OworICAgICAgICAgICAgdXNlU1REM0FTQ0lJUnVsZXMgPSBzdGQzOworICAgICAgICAgICAgdGVzdFRvVW5pY29kZSA9IHRlc3RUb1VuaTsKKyAgICAgICAgICAgIHRlc3RMYWJlbCA9IHRlc3RsYWJlbDsgCisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVycm9yQ2FzZVtdIGVycm9yQ2FzZXMgPSB7CisgICAgICAgICAgCisgICAgICAgIAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeyAKKyAgICAgICAgICAgIDB4MDA3NywgMHgwMDc3LCAweDAwNzcsIDB4MDAyZSwgLyogd3d3LiAqLworICAgICAgICAgICAgMHhDMTM4LCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgIDB4MDcwRiwvKnByb2hpYml0ZWQqLworICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLyogY29tLiAqLworICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgInd3dy54bi0tOG1iNTU5NWZzb2EyOG9ydWN5YTM3OGJxcmUydGN3b3AwNmM1cWJ3ODJhMXJmZm1hZTAzNjFkZWE5NmIuY29tIiwKKyAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUiksCisgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlKSwKKworICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeyAKKyAgICAgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8qIHd3dy4gKi8KKyAgICAgICAgICAgICAgICAweEMxMzgsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgICAgIDB4MDIyMSwgMHgwMjM0LypVbmFzc2lnbmVkIGNvZGUgcG9pbnRzKi8sCisgICAgICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAid3d3LnhuLS02bGEyYno1NDhmajFndWEzOTFiZjFnYjFuNTlhYjI5YTdpYS5jb20iLAorCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5VTkFTU0lHTkVEX0VSUk9SKSwKKyAgICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgbmV3IEVycm9yQ2FzZSggbmV3IGNoYXJbXXsgCisgICAgICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAgICAgMHhDMTM4LCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgICAgICAweDA2NDQsIDB4MDY0QSwgMHgwNjQ3LC8qQXJhYmljIGNvZGUgcG9pbnRzLiBDYW5ub3QgbWl4IFJUTCB3aXRoIExUUiovCisgICAgICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ3d3cueG4tLWdoQkdJNDg1MU9peUEzM1ZxckQ2QXo4NkM0cUY4M0N0UnY5M0Q1eEJrMTVBemZHMG5BZ0EwNTc4RGVBNzFDLmNvbSIsCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKSwKKyAgICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117IAorICAgICAgICAgICAgICAgIDB4MDA3NywgMHgwMDc3LCAweDAwNzcsIDB4MDAyZSwgLyogd3d3LiAqLworICAgICAgICAgICAgICAgIC8qIGxhYmVscyBjYW5ub3QgYmVnaW4gd2l0aCBhbiBIWVBIRU4gKi8KKyAgICAgICAgICAgICAgICAweDAwMkQsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgICAgIDB4MDAyRSwgCisgICAgICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInd3dy54bi0tLS1iOTVFdzhTcUEzMTVBbzVGYnVNbG5ObWhBLmNvbSIsCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SKSwKKyAgICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117IAorICAgICAgICAgICAgICAgIC8qIGNvcnJlY3QgQUNFLXByZWZpeCBmb2xsb3dlZCBieSB1bmljb2RlICovCisgICAgICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAgICAgMHgwMDc4LCAweDAwNmUsIDB4MDAyZCwweDAwMmQsICAvKiBBQ0UgUHJlZml4ICovCisgICAgICAgICAgICAgICAgMHgwMDJELCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgICAgICAweDAwMkQsIAorICAgICAgICAgICAgICAgIDB4RDU1QywgMHhBRDZELCAweEM1QjQsIDB4Qjk3QywgMHhDNzc0LCAweEQ1NzQsIDB4RDU1QywgMHhCMkU0LCAweEJBNzQsCisgICAgICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC8qIHdyb25nIEFDRS1wcmVmaXggZm9sbG93ZWQgYnkgdmFsaWQgQUNFLWVuY29kZWQgQVNDSUkgKi8gCisgICAgICAgICAgICAid3d3LlhZLS0tLS1iOTFJMFY2NVM5NkMyQTM1NUN3MUU1eUNlUXIxOUNzblAxbUZmbUFFMDM2MURlQTk2Qi5jb20iLAorICAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQUNFX1BSRUZJWF9FUlJPUiksCisgICAgICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIC8qIGNhbm5vdCB2ZXJpZnkgVV9JRE5BX1ZFUklGSUNBVElPTl9FUlJPUiAqLworCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8qIHd3dy4gKi8KKyAgICAgICAgICAgIDB4QzEzOCwgMHhBQ0M0LCAweEM3NTgsIDB4QkFBOCwgMHhCNEUwLCAweEMwQUMsIDB4Qjc4QywgMHhCNEU0LCAweEM3NzQsCisgICAgICAgICAgICAweEQ1NUMsIDB4QUQ2RCwgMHhDNUI0LCAweEI5N0MsIDB4Qzc3NCwgMHhENTc0LCAweEQ1NUMsIDB4QjJFNCwgMHhCQTc0LAorICAgICAgICAgICAgMHhDNUJDLCAweEI5QzgsIDB4QjA5OCwgMHhDODhCLCAweEM3NDQsIDB4QUU0QywgCisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LnhuLS05ODlBb01zVmk1RTgzRGIxRDJBMzU1Q3YxRTB2QWsxRHdSdjkzRDV4QmgxNUEwRHQzMEE1SnBTRDg3OUNjbTZGZUE5OEMuY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5MQUJFTF9UT09fTE9OR19FUlJPUiksCisgICAgICAgICAgZmFsc2UsIHRydWUsIHRydWUKKyAgICAgICAgKSwgIAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAweDAwMzAsIDB4MDY0NCwgMHgwNjRBLCAweDA2NDcsIDB4MDAzMSwgLyogQXJhYmljIGNvZGUgcG9pbnRzIHNxdWFzaGVkIGJldHdlZW4gRU4gY29kZXBvaW50cyAqLworICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgIAorICAgICAgICAgIH0sCisgICAgICAgICAgInd3dy54bi0tMDEtdHZkbW8uY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKSwKKyAgICAgICAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZQorICAgICAgICApLCAgCisgICAgCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8vIHd3dy4gCisgICAgICAgICAgICAweDIwNkMsIDB4MDY0NCwgMHgwNjRBLCAweDA2NDcsIDB4MjA2RCwgLy8gQXJhYmljIGNvZGUgcG9pbnRzIHNxdWFzaGVkIGJldHdlZW4gQk4gY29kZXBvaW50cyAKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LlhOLS1naGJnaTI3OHhpYS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpLAorICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW10geworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgMHgwMDJELCAweDAwNDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwgLy8gSFlQSEVOIGF0IHRoZSBzdGFydCBvZiBsYWJlbCAKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3Li1hYmNkZS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IpLAorICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW10geworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgMHgwMDQxLCAweDAwNDIsIDB4MDA0MywgMHgwMDQ0LCAweDAwNDUsMHgwMDJELCAvLyBIWVBIRU4gYXQgdGhlIGVuZCBvZiB0aGUgbGFiZWwKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LmFiY2RlLS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IpLAorICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8vIHd3dy4gCisgICAgICAgICAgICAweDAwNDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwweDAwNDAsIC8vIENvbnRhaW5pbmcgbm9uIExESCBjb2RlIHBvaW50CisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8vIGNvbS4gCisgICAgICAgICAgIAorICAgICAgICAgIH0sCisgICAgICAgICAgInd3dy5hYmNkZUAuY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SKSwKKyAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZQorICAgICAgICApLAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgIC8vIHplcm8gbGVuZ3RoIGxhYmVsCisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8vIGNvbS4gCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3Li5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlpFUk9fTEVOR1RIX0xBQkVMKSwKKyAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZQorICAgICAgICApLAorICAgIH07CisKKworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIENvbmZvcm1hbmNlVGVzdENhc2V7CisgICAgICAgICBTdHJpbmcgY29tbWVudDsKKyAgICAgICAgIFN0cmluZyBpbnB1dDsKKyAgICAgICAgIFN0cmluZyBvdXRwdXQ7CisgICAgICAgICBTdHJpbmcgcHJvZmlsZTsKKyAgICAgICAgIGludCBmbGFnczsKKyAgICAgICAgIEV4Y2VwdGlvbiBleHBlY3RlZDsKKyAgICAgICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBnZXRCeXRlcyhTdHJpbmcgaW4peworICAgICAgICAgICAgIGlmKGluPT1udWxsKXsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlW2luLmxlbmd0aCgpXTsKKyAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaSA8IGluLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICAgICAgIGJ5dGVzW2ldID0gKGJ5dGUpaW4uY2hhckF0KGkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1cm4gYnl0ZXM7CisgICAgICAgICB9CisgICAgICAgICBDb25mb3JtYW5jZVRlc3RDYXNlKFN0cmluZyBjb210LCBTdHJpbmcgaW4sIFN0cmluZyBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJvZiwgaW50IGZsZywgRXhjZXB0aW9uIGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgY29tbWVudCA9IGNvbXQ7CisgICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IGdldEJ5dGVzKGluKTsKKyAgICAgICAgICAgICAgICAgaW5wdXQgPSBuZXcgU3RyaW5nKGJ5dGVzLCJVVEYtOCIpOworICAgICAgICAgICAgICAgICBieXRlcyA9IGdldEJ5dGVzKG91dCk7CisgICAgICAgICAgICAgICAgIG91dHB1dCA9IChieXRlcz09bnVsbCk/IG51bGwgOiBuZXcgU3RyaW5nKGJ5dGVzLCJVVEYtOCIpOworICAgICAgICAgICAgICAgICBwcm9maWxlID0gcHJvZjsKKyAgICAgICAgICAgICAgICAgZmxhZ3MgPSBmbGc7CisgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gZXg7CisgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAKKyAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbmZvcm1hbmNlVGVzdENhc2VbXSBjb25mb3JtYW5jZVRlc3RDYXNlcyA9CisgICAgICAgeworICAKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQ2FzZSBmb2xkaW5nIEFTQ0lJIFUrMDA0MyBVKzAwNDEgVSswMDQ2IFUrMDA0NSIsCisgICAgICAgICAgICJcdTAwNDNcdTAwNDFcdTAwNDZcdTAwNDUiLCAiXHUwMDYzXHUwMDYxXHUwMDY2XHUwMDY1IiwKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULCAKKyAgICAgICAgICAgbnVsbAorCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisgICAgICAgICAgICJDYXNlIGZvbGRpbmcgOGJpdCBVKzAwREYgKGdlcm1hbiBzaGFycCBzKSIsCisgICAgICAgICAgICJcdTAwQzNcdTAwOUYiLCAiXHUwMDczXHUwMDczIiwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwgCisgICAgICAgICAgIG51bGwKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1BU0NJSSBtdWx0aWJ5dGUgc3BhY2UgY2hhcmFjdGVyIFUrMTY4MCIsCisgICAgICAgICAgICJcdTAwRTFcdTAwOUFcdTAwODAiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLUFTQ0lJIDhiaXQgY29udHJvbCBjaGFyYWN0ZXIgVSswMDg1IiwKKyAgICAgICAgICAgIlx1MDBDMlx1MDA4NSIsIG51bGwsIAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisgICAgICAgICAgICJOb24tQVNDSUkgbXVsdGlieXRlIGNvbnRyb2wgY2hhcmFjdGVyIFUrMTgwRSIsCisgICAgICAgICAgICJcdTAwRTFcdTAwQTBcdTAwOEUiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLUFTQ0lJIGNvbnRyb2wgY2hhcmFjdGVyIFUrMUQxNzUiLAorICAgICAgICAgICAiXHUwMEYwXHUwMDlEXHUwMDg1XHUwMEI1IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIlBsYW5lIDAgcHJpdmF0ZSB1c2UgY2hhcmFjdGVyIFUrRjEyMyIsCisgICAgICAgICAgICJcdTAwRUZcdTAwODRcdTAwQTMiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiUGxhbmUgMTUgcHJpdmF0ZSB1c2UgY2hhcmFjdGVyIFUrRjEyMzQiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEIxXHUwMDg4XHUwMEI0IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIlBsYW5lIDE2IHByaXZhdGUgdXNlIGNoYXJhY3RlciBVKzEwRjIzNCIsCisgICAgICAgICAgICJcdTAwRjRcdTAwOEZcdTAwODhcdTAwQjQiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLWNoYXJhY3RlciBjb2RlIHBvaW50IFUrOEZGRkUiLAorICAgICAgICAgICAiXHUwMEYyXHUwMDhGXHUwMEJGXHUwMEJFIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1jaGFyYWN0ZXIgY29kZSBwb2ludCBVKzEwRkZGRiIsCisgICAgICAgICAgICJcdTAwRjRcdTAwOEZcdTAwQkZcdTAwQkYiLCBudWxsLAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAvKiAKKyAgICAgICAgIHsKKyAgICAgICAgICAgIlN1cnJvZ2F0ZSBjb2RlIFUrREY0MiIsCisgICAgICAgICAgICJcdTAwRURcdTAwQkRcdTAwODIiLCBudWxsLCAiTmFtZXByZXAiLCBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsCisgICAgICAgICAgIFVfSUROQV9QUk9ISUJJVEVEX0VSUk9SCisgICAgICAgICB9LAorICAgICovCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1wbGFpbiB0ZXh0IGNoYXJhY3RlciBVK0ZGRkQiLAorICAgICAgICAgICAiXHUwMEVGXHUwMEJGXHUwMEJEIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIklkZW9ncmFwaGljIGRlc2NyaXB0aW9uIGNoYXJhY3RlciBVKzJGRjUiLAorICAgICAgICAgICAiXHUwMEUyXHUwMEJGXHUwMEI1IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkRpc3BsYXkgcHJvcGVydHkgY2hhcmFjdGVyIFUrMDM0MSIsCisgICAgICAgICAgICJcdTAwQ0RcdTAwODEiLCAiXHUwMENDXHUwMDgxIiwKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULCAKKyAgICAgICAgICAgbnVsbAorCisgICAgICAgICApLAorCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkxlZnQtdG8tcmlnaHQgbWFyayBVKzIwMEUiLAorICAgICAgICAgICAiXHUwMEUyXHUwMDgwXHUwMDhFIiwgIlx1MDBDQ1x1MDA4MSIsIAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisKKyAgICAgICAgICAgIkRlcHJlY2F0ZWQgVSsyMDJBIiwKKyAgICAgICAgICAgIlx1MDBFMlx1MDA4MFx1MDBBQSIsICJcdTAwQ0NcdTAwODEiLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTGFuZ3VhZ2UgdGFnZ2luZyBjaGFyYWN0ZXIgVStFMDAwMSIsCisgICAgICAgICAgICJcdTAwRjNcdTAwQTBcdTAwODBcdTAwODEiLCAiXHUwMENDXHUwMDgxIiwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkxhbmd1YWdlIHRhZ2dpbmcgY2hhcmFjdGVyIFUrRTAwNDIiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEEwXHUwMDgxXHUwMDgyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVSswNUJFIGFuZCBMQ2F0IGNoYXJhY3RlcnMiLAorICAgICAgICAgICAiXHUwMDY2XHUwMDZGXHUwMDZGXHUwMEQ2XHUwMEJFXHUwMDYyXHUwMDYxXHUwMDcyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVStGRDUwIGFuZCBMQ2F0IGNoYXJhY3RlcnMiLAorICAgICAgICAgICAiXHUwMDY2XHUwMDZGXHUwMDZGXHUwMEVGXHUwMEI1XHUwMDkwXHUwMDYyXHUwMDYxXHUwMDcyIiwgbnVsbCwKKyAgICAgICAgICAgIk5hbWVwcmVwIixJRE5BLkRFRkFVTFQgLAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQmlkaTogUmFuZEFMQ2F0IGNoYXJhY3RlciBVK0ZCMzggYW5kIExDYXQgY2hhcmFjdGVycyIsCisgICAgICAgICAgICJcdTAwNjZcdTAwNkZcdTAwNkZcdTAwRUZcdTAwQjlcdTAwQjZcdTAwNjJcdTAwNjFcdTAwNzIiLCAiXHUwMDY2XHUwMDZGXHUwMDZGIFx1MDBkOVx1MDA4ZVx1MDA2Mlx1MDA2MVx1MDA3MiIsCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbnVsbAorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQmlkaTogUmFuZEFMQ2F0IHdpdGhvdXQgdHJhaWxpbmcgUmFuZEFMQ2F0IFUrMDYyNyBVKzAwMzEiLAorICAgICAgICAgICAiXHUwMEQ4XHUwMEE3XHUwMDMxIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVSswNjI3IFUrMDAzMSBVKzA2MjgiLAorICAgICAgICAgICAiXHUwMEQ4XHUwMEE3XHUwMDMxXHUwMEQ4XHUwMEE4IiwgIlx1MDBEOFx1MDBBN1x1MDAzMVx1MDBEOFx1MDBBOCIsCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbnVsbAorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiVW5hc3NpZ25lZCBjb2RlIHBvaW50IFUrRTAwMDIiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEEwXHUwMDgwXHUwMDgyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUikKKyAgICAgICAgICksCisKKyAgICAvKiAgLy8gSW52YWxpZCBVVEYtOAorICAgICAgICAgeworICAgICAgICAgICAiTGFyZ2VyIHRlc3QgKHNocmlua2luZykiLAorICAgICAgICAgICAiWFx1MDBDMlx1MDBBRFx1MDBDM1x1MDBERlx1MDBDNFx1MDBCMFx1MDBFMlx1MDA4NFx1MDBBMVx1MDA2YVx1MDBjY1x1MDA4Y1x1MDBjMlx1MDBhMFx1MDBjMiIKKyAgICAgICAgICAgIlx1MDBhYVx1MDBjZVx1MDBiMFx1MDBlMlx1MDA4MFx1MDA4MCIsICJ4c3NpXHUwMGNjXHUwMDg3IiJ0ZWxcdTAwYzdcdTAwYjAgYVx1MDBjZVx1MDBiMCAiLAorICAgICAgICAgICAiTmFtZXByZXAiLAorICAgICAgICAgICBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsIFVfWkVST19FUlJPUgorICAgICAgICAgfSwKKyAgICAgICAgeworCisgICAgICAgICAgICJMYXJnZXIgdGVzdCAoZXhwYW5kaW5nKSIsCisgICAgICAgICAgICJYXHUwMEMzXHUwMERGXHUwMGUzXHUwMDhjXHUwMDk2XHUwMEM0XHUwMEIwXHUwMEUyXHUwMDg0XHUwMEExXHUwMEUyXHUwMDkyXHUwMDlGXHUwMEUzXHUwMDhjXHUwMDgwIiwKKyAgICAgICAgICAgInhzc1x1MDBlM1x1MDA4Mlx1MDBhZFx1MDBlM1x1MDA4M1x1MDBhZFx1MDBlM1x1MDA4M1x1MDBhMVx1MDBlM1x1MDA4M1x1MDBiY1x1MDBlM1x1MDA4M1x1MDA4OCIKKyAgICAgICAgICAgIlx1MDBlM1x1MDA4M1x1MDBhYiIiaVx1MDBjY1x1MDA4NyIidGVsXHUwMDI4IiJkXHUwMDI5XHUwMGUzXHUwMDgyXHUwMGEyXHUwMGUzXHUwMDgzXHUwMDkxIgorICAgICAgICAgICAiXHUwMGUzXHUwMDgzXHUwMGJjXHUwMGUzXHUwMDgzXHUwMDg4IgorICAgICAgICAgICAiTmFtZXByZXAiLAorICAgICAgICAgICBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsIFVfWkVST19FUlJPUgorICAgICAgICAgfSwKKyAgICAgICovCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJRE5BLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNjI3YTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQS5qYXZhCkBAIC0wLDAgKzEsODE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LklETkE7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0SUROQSBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RJRE5BKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiB1bmFzc2lnbmVkRXhjZXB0aW9uID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUik7CisgICAgcHVibGljIHZvaWQgVGVzdFRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgLy8gdGVzdCBTdHJpbmdCdWZmZXIgdG9Vbmljb2RlCisgICAgICAgICAgICBkb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkEuVVNFX1NURDNfUlVMRVMsIG51bGwpOyAKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLlVTRV9TVEQzX1JVTEVTfElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7IAorICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0FTQ0lJKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAvLyB0ZXN0IFN0cmluZ0J1ZmZlciB0b1VuaWNvZGUKKyAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsgCisgICAgICAgICAgICBkb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQS5VU0VfU1REM19SVUxFU3xJRE5BLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOyAKKyAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SUROVG9BU0NJSSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkEuQUxMT1dfVU5BU1NJR05FRHxJRE5BLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXMxVW5pLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXMxVW5pW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dFtpXSxJRE5BLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdElETlRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5BTExPV19VTkFTU0lHTkVEfElETkEuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dC5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkEuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdFRvVW5pY29kZShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb1VuaWNvZGUoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb1VuaWNvZGUoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICsgcHJldHRpZnkoc3JjKSArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0SUROVG9Vbmljb2RlKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VG9BU0NJSShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKHNyYyxvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyJcbiBHb3Q6ICAiKyBleC50b1N0cmluZygpICsiXG4gRXhwZWN0ZWQ6ICIgK2V4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7ICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0VG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydFRvQVNDSUkoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkLnRvTG93ZXJDYXNlKCkpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3RJRE5Ub0FTQ0lJKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvQVNDSUkoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0SUROVG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvSUROQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKGluSXRlcixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvbmZvcm1hbmNlKCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0RGF0YS5jb25mb3JtYW5jZVRlc3RDYXNlcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgLy9UZXN0IHRvQVNDSUkKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKHRlc3RDYXNlLmlucHV0LHRlc3RDYXNlLm91dHB1dCxJRE5BLkRFRkFVTFQsdGVzdENhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkodGVzdENhc2UuaW5wdXQsdGVzdENhc2Uub3V0cHV0LElETkEuQUxMT1dfVU5BU1NJR05FRCx0ZXN0Q2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL1Rlc3QgdG9Vbmljb2RlCisgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZSh0ZXN0Q2FzZS5pbnB1dCx0ZXN0Q2FzZS5vdXRwdXQsSUROQS5ERUZBVUxULHRlc3RDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZVByZXBDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3VpZG5hLnNwcCIpOworICAgICAgICBTdHJpbmdQcmVwIG5hbWVQcmVwID0gbmV3IFN0cmluZ1ByZXAoc3RyZWFtKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBUZXN0RGF0YS5Db25mb3JtYW5jZVRlc3RDYXNlIHRlc3RDYXNlID0gVGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXNbaV07CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0Q2FzZS5pbnB1dCk7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5hbWVQcmVwLnByZXBhcmUoaXRlcixTdHJpbmdQcmVwLkRFRkFVTFQpOworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLm91dHB1dCAhPW51bGwgJiYgb3V0cHV0IT1udWxsICYmICF0ZXN0Q2FzZS5vdXRwdXQuZXF1YWxzKG91dHB1dC50b1N0cmluZygpKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0LiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KHRlc3RDYXNlLm91dHB1dCkrCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiKyBwcmV0dGlmeShvdXRwdXQpICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyh0ZXN0Q2FzZS5leHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgPT0gbnVsbCB8fCAhZXguZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3Rlc3RDYXNlLmlucHV0ICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VG9TdGFydCgpOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXRwdXQgPSBuYW1lUHJlcC5wcmVwYXJlKGl0ZXIsU3RyaW5nUHJlcC5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5vdXRwdXQgIT1udWxsICYmIG91dHB1dCE9bnVsbCAmJiAhdGVzdENhc2Uub3V0cHV0LmVxdWFscyhvdXRwdXQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeSh0ZXN0Q2FzZS5vdXRwdXQpKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIEdvdDogIisgcHJldHRpZnkob3V0cHV0KSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5leHBlY3RlZCE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHModGVzdENhc2UuZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkID09IG51bGwgfHwgIWV4LmVxdWFscyh0ZXN0Q2FzZS5leHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICt0ZXN0Q2FzZS5pbnB1dCArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RFcnJvckNhc2VzKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGkgPCBUZXN0RGF0YS5lcnJvckNhc2VzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFRlc3REYXRhLkVycm9yQ2FzZSBlcnJDYXNlID0gVGVzdERhdGEuZXJyb3JDYXNlc1tpXTsKKyAgICAgICAgICAgIGlmKGVyckNhc2UudGVzdExhYmVsPT10cnVlKXsKKyAgICAgICAgICAgICAgICAvLyBUZXN0IFRvQVNDSUkKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkEuREVGQVVMVCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkEuQUxMT1dfVU5BU1NJR05FRCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBpZihlcnJDYXNlLnVzZVNURDNBU0NJSVJ1bGVzKXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGVyckNhc2UudXNlU1REM0FTQ0lJUnVsZXMhPXRydWUpeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRlc3QgSUROVG9BU0NJSQorICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQS5ERUZBVUxULGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQS5BTExPV19VTkFTU0lHTkVELGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3RUb1VuaWNvZGUKKyAgICAgICAgICAgIGlmKGZhbHNlICYmIGVyckNhc2UudGVzdFRvVW5pY29kZT09dHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS51c2VTVEQzQVNDSUlSdWxlcyE9dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgSUROVG9Vbmljb2RlCisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLkRFRkFVTFQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLkFMTE9XX1VOQVNTSUdORUQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0Q29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgYm9vbGVhbiBpc0VxdWFsKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50IHJldFZhbCA9IElETkEuY29tcGFyZShzMSxzMixJRE5BLkRFRkFVTFQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkEuY29tcGFyZShuZXcgU3RyaW5nQnVmZmVyKHMxKSwgbmV3IFN0cmluZ0J1ZmZlcihzMiksIElETkEuREVGQVVMVCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BLmNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMxKSwgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMyKSwgSUROQS5ERUZBVUxUKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIGJ5IElETkEuY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnQgcmV0VmFsID0gSUROQS5jb21wYXJlKHMxLHMyLElETkEuQUxMT1dfVU5BU1NJR05FRCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gSUROQS5jb21wYXJlKG5ldyBTdHJpbmdCdWZmZXIoczEpLCBuZXcgU3RyaW5nQnVmZmVyKHMyKSwgSUROQS5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkEuY29tcGFyZShVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczEpLCBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczIpLCBJRE5BLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBieSBJRE5BLmNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyB3d3cgPSAid3d3LiI7CisgICAgICAgIFN0cmluZyBjb20gPSAiLmNvbSI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkwICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkxICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTEgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisKKyAgICAgICAgdW5pMC5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzBdKTsKKyAgICAgICAgdW5pMC5hcHBlbmQoY29tKTsKKworICAgICAgICB1bmkxLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5bMV0pOworICAgICAgICB1bmkxLmFwcGVuZChjb20pOworCisgICAgICAgIGFzY2lpMC5hcHBlbmQoVGVzdERhdGEuYXNjaWlJblswXSk7CisgICAgICAgIGFzY2lpMC5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTEuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMV0pOworICAgICAgICBhc2NpaTEuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgZm9yKGludCBpPTA7aTwgVGVzdERhdGEudW5pY29kZUluLmxlbmd0aDsgaSsrKXsKKworICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5IGVudHJ5IGluIHVuaWNvZGVJbiBhcnJheQorICAgICAgICAgICAgLy8gcHJlcGVuZCB3d3cuIGFuZCBhcHBlbmQgLmNvbQorICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCg0KTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluW2ldKTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29tKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYSkgY29tcGFyZSBpdCB3aXRoIGl0c2VsZgorICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxzb3VyY2UudG9TdHJpbmcoKSx0cnVlKTsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBiKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBlcXVpdmFsZW50CisgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHd3dytUZXN0RGF0YS5hc2NpaUluW2ldK2NvbSx0cnVlKTsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBjKSBjb21wYXJlIGl0IHdpdGggdW5pY29kZUluIG5vdCBlcXVpdmFsZW50CisgICAgICAgICAgICBpZihpPT0wKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLCB1bmkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksdW5pMC50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBkKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAgdGVzdCBhbmQgYXNjZXJ0YWluCisgICAgLy8gIGZ1bmMoZnVuYyhmdW5jKHNyYykpKSA9PSBmdW5jKHNyYykKKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDaGFpbmluZ1RvQVNDSUkoU3RyaW5nIHNvdXJjZSl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdCdWZmZXIgZXhwZWN0ZWQ7IAorICAgICAgICBTdHJpbmdCdWZmZXIgY2hhaW5lZDsKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvQVNDSUkKKyAgICAgICAgZXhwZWN0ZWQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydElETlRvQVNDSUkoY2hhaW5lZCxJRE5BLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydElETlRvQVNDSUkiKTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IGNvbnZlcnRJRE5Ub0EKKyAgICAgICAgZXhwZWN0ZWQgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydFRvQVNDSUkoY2hhaW5lZCxJRE5BLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydFRvQVNDSUkiKTsKKyAgICAgICAgfSAgIAorICAgIH0KKyAgICAvLyAgdGVzdCBhbmQgYXNjZXJ0YWluCisgICAgLy8gIGZ1bmMoZnVuYyhmdW5jKHNyYykpKSA9PSBmdW5jKHNyYykKKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDaGFpbmluZ1RvVW5pY29kZShTdHJpbmcgc291cmNlKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZDsgCisgICAgICAgIFN0cmluZ0J1ZmZlciBjaGFpbmVkOworICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9Vbmljb2RlCisgICAgICAgIGV4cGVjdGVkID0gSUROQS5jb252ZXJ0SUROVG9Vbmljb2RlKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydElETlRvVW5pY29kZShjaGFpbmVkLElETkEuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0SUROVG9Vbmljb2RlIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9BCisgICAgICAgIGV4cGVjdGVkID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydFRvVW5pY29kZShjaGFpbmVkLElETkEuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0VG9Vbmljb2RlIik7CisgICAgICAgIH0gICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENoYWluaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgZG9UZXN0Q2hhaW5pbmdUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkb1Rlc3RDaGFpbmluZ1RvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8qIElETkEgUkZDIFNheXM6CisgICAgQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gIExhYmVscyBhcmUgdXN1YWxseQorICAgIHNob3duIHNlcGFyYXRlZCBieSBkb3RzOyBmb3IgZXhhbXBsZSwgdGhlIGRvbWFpbiBuYW1lCisgICAgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgdGhyZWUgbGFiZWxzOiAid3d3IiwgImV4YW1wbGUiLCBhbmQKKyAgICAiY29tIi4gIChUaGUgemVyby1sZW5ndGggcm9vdCBsYWJlbCBkZXNjcmliZWQgaW4gW1NURDEzXSwgd2hpY2ggY2FuCisgICAgYmUgZXhwbGljaXQgYXMgaW4gInd3dy5leGFtcGxlLmNvbS4iIG9yIGltcGxpY2l0IGFzIGluCisgICAgInd3dy5leGFtcGxlLmNvbSIsIGlzIG5vdCBjb25zaWRlcmVkIGEgbGFiZWwgaW4gdGhpcyBzcGVjaWZpY2F0aW9uLikKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSb290TGFiZWxTZXBhcmF0b3IoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgd3d3ID0gInd3dy4iOworICAgICAgICBTdHJpbmcgY29tID0gIi5jb20uIjsgLy9yb290IGxhYmVsIHNlcGFyYXRvcgorICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMCAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMSAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkwID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkxID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworCisgICAgICAgIHVuaTAuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJblswXSk7CisgICAgICAgIHVuaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgdW5pMS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzFdKTsKKyAgICAgICAgdW5pMS5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTAuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMF0pOworICAgICAgICBhc2NpaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgYXNjaWkxLmFwcGVuZChUZXN0RGF0YS5hc2NpaUluWzFdKTsKKyAgICAgICAgYXNjaWkxLmFwcGVuZChjb20pOworCisgICAgICAgIGZvcihpbnQgaT0wO2k8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisKKyAgICAgICAgICAgIC8vIGZvciBldmVyeSBlbnRyeSBpbiB1bmljb2RlSW4gYXJyYXkKKyAgICAgICAgICAgIC8vIHByZXBlbmQgd3d3LiBhbmQgYXBwZW5kIC5jb20KKyAgICAgICAgICAgIHNvdXJjZS5zZXRMZW5ndGgoNCk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJbltpXSk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKGNvbSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGEpIGNvbXBhcmUgaXQgd2l0aCBpdHNlbGYKKyAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksc291cmNlLnRvU3RyaW5nKCksdHJ1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gYikgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gZXF1aXZhbGVudAorICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx3d3crVGVzdERhdGEuYXNjaWlJbltpXStjb20sdHJ1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gYykgY29tcGFyZSBpdCB3aXRoIHVuaWNvZGVJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSwgdW5pMS50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHVuaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZCkgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gbm90IGVxdWl2YWxlbnQKKyAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICB9CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxvb3BDb3VudCA9IDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4Q2hhckNvdW50ID0gMTU7CisgICAvLyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4Q29kZVBvaW50ID0gMHgxMGZmZmY7CisgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSByYW5kb20gaW50ZWdlciBpIHdoZXJlIDAgPD0gaSA8IG4uCisgICAgICogQSBzcGVjaWFsIGZ1bmN0aW9uIHRoYXQgZ2V0cyByYW5kb20gY29kZXBvaW50cyBmcm9tIHBsYW5lcyAwLDEsMiBhbmQgMTQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByYW5kX3VuaSgpCisgICAgeworICAgICAgIGludCByZXRWYWwgPSAoaW50KShyYW5kb20ubmV4dExvbmcoKSYgMHgzRkZGRik7CisgICAgICAgaWYocmV0VmFsID49IDB4MzAwMDApeworICAgICAgICAgICByZXRWYWwrPTB4QjAwMDA7CisgICAgICAgfQorICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgcmFuZGkoaW50IG4peworICAgICAgICByZXR1cm4gKHJhbmRvbS5uZXh0SW50KDB4N2ZmZikgJSAobisxKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgZ2V0VGVzdFNvdXJjZShTdHJpbmdCdWZmZXIgZmlsbEluKSB7CisgICAgICAgIC8vIHVzZSB1bmlmb3JtIHNlZWQgdmFsdWUgZnJvbSB0aGUgZnJhbWV3b3JrCisgICAgICAgIGlmKHJhbmRvbT09bnVsbCl7CisgICAgICAgICAgICByYW5kb20gPSBjcmVhdGVSYW5kb20oKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGludCBjaGFyQ291bnQgPSAocmFuZGkobWF4Q2hhckNvdW50KSArIDEpOworICAgICAgICB3aGlsZSAoaSA8Y2hhckNvdW50ICkgeworICAgICAgICAgICAgaW50IGNvZGVwb2ludCA9IHJhbmRfdW5pKCk7CisgICAgICAgICAgICBpZihjb2RlcG9pbnQgPT0gMHgwMDAwKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChmaWxsSW4sIGNvZGVwb2ludCk7CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpbGxJbjsKKyAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgTW9ua2V5VGVzdCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgLyogZG8gdGhlIG1vbmtleSB0ZXN0ICAgKi8gICAgICAgCisgICAgICAgICBmb3IoaW50IGk9MDsgaTxsb29wQ291bnQ7IGkrKyl7CisgICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICBnZXRUZXN0U291cmNlKHNvdXJjZSk7CisgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc291cmNlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLy8gdGVzdCBzdHJpbmcgd2l0aCBlbWJlZGRlZCBudWxsICAKKyAgICAgICAgIHNvdXJjZS5hcHBlbmQoICJcXHUwMDAwXFx1MjEwOVxcdTNFMUJcXFUwMDBFNjVDQVxcVTAwMDFDQUM1IiApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKFV0aWxpdHkudW5lc2NhcGUoc291cmNlLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKHNvdXJjZSk7CisgICAgICAgICAKKyAgICAgICAgIC8vU3RyaW5nQnVmZmVyIHNyYyA9IG5ldyBTdHJpbmdCdWZmZXIoVXRpbGl0eS51bmVzY2FwZSgiXFx1REVFOFxcVTAwMEUyMjhDXFxVMDAwMkVFOEVcXFUwMDBFNjM1MFxcVTAwMDI0REQ5XHU0MDQ5XFxVMDAwRTBERTRcXFUwMDBFNDQ4Q1xcVTAwMDE4NjlCXFxVMDAwRTMzODBcXFUwMDAxNkE4RVxcVTAwMDE3MkQ1XFxVMDAwMUM0MDhcXFUwMDBFOUZCNSIpKTsKKyAgICAgICAgIC8vZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc3JjKTsKKyAgICAgICAgIAorICAgICAgICAgLy90ZXN0IGRlbGV0aW9uIG9mIGNvZGUgcG9pbnRzCisgICAgICAgICBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKFV0aWxpdHkudW5lc2NhcGUoIlxcdTA0M2ZcXHUwMEFEXFx1MDM0ZlxcdTA0M2VcXHUwNDQ3XFx1MDQzNVxcdTA0M2NcXHUwNDQzXFx1MDQzNlxcdTA0MzVcXHUwNDNlXFx1MDQzZFxcdTA0MzhcXHUwNDNkXFx1MDQzNVxcdTA0MzNcXHUwNDNlXFx1MDQzMlxcdTA0M2VcXHUwNDQwXFx1MDQ0ZlxcdTA0NDJcXHUwNDNmXFx1MDQzZVxcdTA0NDBcXHUwNDQzXFx1MDQ0MVxcdTA0NDFcXHUwNDNhXFx1MDQzOCIpKTsKKyAgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZCA9IG5ldyBTdHJpbmdCdWZmZXIoInhuLS1iMWFiZmFhZXBkcm5uYmdlZmJhZG90Y3dhdG1xMmc0bCIpOworICAgICAgICAgZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc291cmNlKTsKKyAgICAgICAgIGRvVGVzdFRvQVNDSUkoc291cmNlLnRvU3RyaW5nKCksZXhwZWN0ZWQudG9TdHJpbmcoKSwgSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKFN0cmluZ0J1ZmZlciBzcmMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgbGFiZWwgPSBzcmM7ICAKKworICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXhwZWN0ZWQgPSBudWxsOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkgPSBudWxsOworICAgICAgICBpbnQgb3B0aW9ucyA9IElETkEuREVGQVVMVDsKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBpZG5hcmVmX3RvQVNDSUkgd2l0aCB1aWRuYV90b0FTQ0lJIGZvciBpbnB1dDogIiArIHByZXR0aWZ5KGxhYmVsKSk7CisgICAgICAgIHRyeXsgICAgICAgCisgICAgICAgICAgICBhc2NpaSA9IElETkFSZWZlcmVuY2UuY29udmVydFRvQVNDSUkobGFiZWwsIG9wdGlvbnMpOworICAgICAgICB9Y2F0Y2goIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gZTsKKyAgICAgICAgICAgIGlmKGUuZXF1YWxzKHVuYXNzaWduZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBvcHRpb25zID0gSUROQS5BTExPV19VTkFTU0lHTkVEOworICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIGFzY2lpID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShsYWJlbCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgfWNhdGNoKCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IGV4OyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZG9UZXN0VG9BU0NJSShsYWJlbC50b1N0cmluZygpLCAKKyAgICAgICAgICAgICAgICAgICAgICAoYXNjaWkgPT0gbnVsbCkgPyBudWxsIDogYXNjaWkudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkKTsKKworICAgICAgICBsb2dsbigiQ29tcGFyaW5nIGlkbmFyZWZfdG9Vbmljb2RlIHdpdGggdWlkbmFfdG9Vbmljb2RlIGZvciBpbnB1dDogIiArIHByZXR0aWZ5KGxhYmVsKSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkgPW51bGw7CisgICAgICAgIAorICAgICAgICBpZihleHBlY3RlZCA9PSBudWxsKXsKKyAgICAgICAgICAgIG9wdGlvbnMgPSBJRE5BLkRFRkFVTFQ7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgIHVuaSA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShhc2NpaSwgb3B0aW9ucyk7CisgICAgICAgICAgICB9Y2F0Y2goIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlICl7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBlOworICAgICAgICAgICAgICAgIGlmKGV4cGVjdGVkLmVxdWFscyh1bmFzc2lnbmVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBJRE5BLkFMTE9XX1VOQVNTSUdORUQ7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgdW5pID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9Vbmljb2RlKGFzY2lpLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IGV4OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKGFzY2lpLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuaT09bnVsbCk/IG51bGwgOiB1bmkudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlUmVmSW1wbCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAweDQwMDAwIDsgaTwgMHgxMGZmZmY7IGkrKyl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3JjID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGlzUXVpY2soKT09dHJ1ZSAmJiBpPiAweDFGRkZGKXsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihpID49IDB4MzAwMDAgJiYgaTw9MHhmMDAwMCl7CisgICAgICAgICAgICAgICBpKz0weEIwMDAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHNyYyxpKTsKKyAgICAgICAgICAgIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKHNyYyk7CisKKyAgICAgICAgfSAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlMzJOb3JtKCkgeworICAgICAgICAvKgorICAgICAgICAgKiB0ZXN0IFVuaWNvZGUgMy4yIG5vcm1hbGl6YXRpb24sIGJlZm9yZSBQdWJsaWMgUmV2aWV3IElzc3VlICMyOQorICAgICAgICAgKiBzZWUgY25vcm10c3QuYyBUZXN0Q29tcG9zaXRpb24oKQorICAgICAgICAgKi8KKyAgICAgICAgZmluYWwgU3RyaW5nIHN0cmluZ3NbXT17CisgICAgICAgICAgICAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3IiwKKyAgICAgICAgICAgICJcdTBiNDdcdTAzMDBcdTBiM2VcdTAzMjciCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIGFzY2lpID0gbnVsbCwgdW5pY29kZSA9IG51bGw7CisgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleDI7CisgICAgICAgIGludCBpOworCisgICAgICAgIGZvcihpPTA7IGk8c3RyaW5ncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZXgyPW51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGFzY2lpPUlETkEuY29udmVydFRvQVNDSUkoc3RyaW5nc1tpXSwgMCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB1bmljb2RlPUlETkEuY29udmVydFRvVW5pY29kZShhc2NpaSwgMCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gY2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgZXJybG4oInN0cmluZyAiICsgaSArICIgZ2V0cyBleGNlcHRpb24gIiArIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZih1bmljb2RlID09IG51bGwgfHwgdW5pY29kZS5jb21wYXJlVG8oYXNjaWkpICE9IDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdWMgPSB1bmljb2RlID09IG51bGw/ICIobnVsbCkiIDogdW5pY29kZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nICIgKyBpICsgIiB5aWVsZHMgIiArIHVjICsiIGluc3RlYWQgb2YgIiArIGFzY2lpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI0NDkwKCl7CisgICAgICAgIFN0cmluZ1tdIGluID0gbmV3IFN0cmluZ1tdeworICAgICAgICAgICAgICAgICJcdTAwRjVcdTAwZEVcdTAwZEZcdTAwZEQiLAorICAgICAgICAgICAgICAgICJcdUZCMDBcdUZCMDEiCisgICAgICAgICAgICAgICB9OworICAgICAgICBmb3IgKCBpbnQgaT0wOyBpPCBpbi5sZW5ndGg7IGkrKyl7ICAgCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFzY2lpID0gSUROQS5jb252ZXJ0VG9BU0NJSShpbltpXSxJRE5BLkRFRkFVTFQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdW5pY29kZSA9IElETkEuY29udmVydFRvVW5pY29kZShhc2NpaSxJRE5BLkRFRkFVTFQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgY29udmVydFRvVW5pY29kZTogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBjb252ZXJ0VG9BU0NJSTogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEpCNDQ3NSgpeworICAgICAgICBTdHJpbmdbXSBpbiA9IG5ldyBTdHJpbmdbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICJURVNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0IgorICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICBmb3IgKCBpbnQgaT0wOyBpPCBpbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYXNjaWkgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKGluW2ldLElETkEuREVGQVVMVCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpZighYXNjaWkuZXF1YWxzKGluW2ldKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBjb252ZXJ0VG9BU0NJSS4gRXhwZWN0ZWQ6ICIrIGluW2ldICsiIEdvdDogIiArIGFzY2lpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb246ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEpCNTI3MygpCisgICAgeworICAgICAgICBTdHJpbmcgSU5WQUxJRF9ET01BSU5fTkFNRSA9ICJ4bi0tbVx1MDBGQ2xsZXIuZGUiOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJRE5BLmNvbnZlcnRJRE5Ub1VuaWNvZGUoSU5WQUxJRF9ET01BSU5fTkFNRSwgSUROQS5ERUZBVUxUKTsKKyAgICAgICAgICAgIElETkEuY29udmVydElETlRvVW5pY29kZShJTlZBTElEX0RPTUFJTl9OQU1FLCBJRE5BLlVTRV9TVEQzX1JVTEVTKTsKKworICAgICAgICB9IGNhdGNoIChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdG9pbjogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZXJybG4oIkdvdCBhbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gY2FsbGluZyBjb252ZXJ0SUROVG9Vbmljb2RlKFwiIiArIElOVkFMSURfRE9NQUlOX05BTUUgKyAiXCIpIik7CisgICAgICAgIH0KKyAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERlYnVnKCl7ICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nIHNyYyA9ICJcdTAwRUQ0ZG4iOworICAgICAgICAgICAgU3RyaW5nIHVuaSA9IElETkEuY29udmVydFRvVW5pY29kZShzcmMsSUROQS5ERUZBVUxUKS50b1N0cmluZygpOworICAgICAgICAgICAgaWYoIXVuaS5lcXVhbHMoc3JjKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpICsiIEdvdDogIiArdW5pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBsb2dsbigiVW5leHBlY3RlZCBleGNlcHRpb246ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZyBhc2NpaSA9IElETkEuY29udmVydFRvQVNDSUkoIlx1MDBBRCIsSUROQS5ERUZBVUxUKS50b1N0cmluZygpOworICAgICAgICAgICAgaWYoYXNjaWkhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oIkdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJRE5BUmVmLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQVJlZi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZjU1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQVJlZi5qYXZhCkBAIC0wLDAgKzEsNjIxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0SUROQVJlZiBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RJRE5BUmVmKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiB1bmFzc2lnbmVkRXhjZXB0aW9uID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUik7CisgICAgcHVibGljIHZvaWQgVGVzdFRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIC8vIHRlc3QgU3RyaW5nQnVmZmVyIHRvVW5pY29kZQorICAgICAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgICAgIC8vZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOyAKKyAgICAgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTfElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7IAorICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0FTQ0lJKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgLy8gdGVzdCBTdHJpbmdCdWZmZXIgdG9Vbmljb2RlCisgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksVGVzdERhdGEuYXNjaWlJbltpXSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsgCisgICAgICAgICAgICAgICAgLy9kb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFU3xJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOyAKKyAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SUROVG9BU0NJSSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUR8SUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzMVVuaS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXMxVW5pW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dFtpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUR8SUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SUROVG9Vbmljb2RlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVEfElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0Lmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dFtpXSxUZXN0RGF0YS5kb21haW5OYW1lc1RvVW5pY29kZU91dFtpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5Ob0NsYXNzRGVmRm91bmRFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdFRvVW5pY29kZShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb1VuaWNvZGUoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9Vbmljb2RlKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb1VuaWNvZGUoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICsgcHJldHRpZnkoc3JjKSArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0SUROVG9Vbmljb2RlKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VG9BU0NJSShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb0FTQ0lJKHNyYyxvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb0FTQ0lJKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkLnRvTG93ZXJDYXNlKCkpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZighdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pICYmIGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmIGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQudG9Mb3dlckNhc2UoKSkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIisgb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdElETlRvQVNDSUkoU3RyaW5nIHNyYywgU3RyaW5nIGV4cGVjdGVkLCBpbnQgb3B0aW9ucywgT2JqZWN0IGV4cGVjdGVkRXhjZXB0aW9uKSAKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvQVNDSUkoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BUmVmZXJlbmNlQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BUmVmZXJlbmNlQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFSZWZlcmVuY2VBU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROdG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BUmVmZXJlbmNlQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvSUROQVJlZmVyZW5jZVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFSZWZlcmVuY2VTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROdG9BU0NJSShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiKyBvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRJRE5Ub0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZSgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAvL1Rlc3QgdG9BU0NJSQorICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKHRlc3RDYXNlLmlucHV0LHRlc3RDYXNlLm91dHB1dCxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsdGVzdENhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKHRlc3RDYXNlLmlucHV0LHRlc3RDYXNlLm91dHB1dCxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsdGVzdENhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1Rlc3QgdG9Vbmljb2RlCisgICAgICAgICAgICAgICAgLy9kb1Rlc3RUb1VuaWNvZGUodGVzdENhc2UuaW5wdXQsdGVzdENhc2Uub3V0cHV0LElETkFSZWZlcmVuY2UuREVGQVVMVCx0ZXN0Q2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZVByZXBDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIE5hbWVQcmVwVHJhbnNmb3JtIG5hbWVQcmVwID0gTmFtZVByZXBUcmFuc2Zvcm0uZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzLmxlbmd0aDtpKyspeworICAgICAgICAgICAgICAgIFRlc3REYXRhLkNvbmZvcm1hbmNlVGVzdENhc2UgdGVzdENhc2UgPSBUZXN0RGF0YS5jb25mb3JtYW5jZVRlc3RDYXNlc1tpXTsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0Q2FzZS5pbnB1dCk7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0cHV0ID0gbmFtZVByZXAucHJlcGFyZShpdGVyLE5hbWVQcmVwVHJhbnNmb3JtLk5PTkUpOworICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5vdXRwdXQgIT1udWxsICYmIG91dHB1dCE9bnVsbCAmJiAhdGVzdENhc2Uub3V0cHV0LmVxdWFscyhvdXRwdXQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiICsgcHJldHRpZnkodGVzdENhc2Uub3V0cHV0KSsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiKyBwcmV0dGlmeShvdXRwdXQpICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQhPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgPT0gbnVsbCB8fCAhZXguZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICt0ZXN0Q2FzZS5pbnB1dCArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIuc2V0VG9TdGFydCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0cHV0ID0gbmFtZVByZXAucHJlcGFyZShpdGVyLE5hbWVQcmVwVHJhbnNmb3JtLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5vdXRwdXQgIT1udWxsICYmIG91dHB1dCE9bnVsbCAmJiAhdGVzdENhc2Uub3V0cHV0LmVxdWFscyhvdXRwdXQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiICsgcHJldHRpZnkodGVzdENhc2Uub3V0cHV0KSsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiKyBwcmV0dGlmeShvdXRwdXQpICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQhPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgPT0gbnVsbCB8fCAhZXguZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICt0ZXN0Q2FzZS5pbnB1dCArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZSl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtRGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEVycm9yQ2FzZXMoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaSA8IFRlc3REYXRhLmVycm9yQ2FzZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIFRlc3REYXRhLkVycm9yQ2FzZSBlcnJDYXNlID0gVGVzdERhdGEuZXJyb3JDYXNlc1tpXTsKKyAgICAgICAgICAgICAgICBpZihlcnJDYXNlLnRlc3RMYWJlbD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgVG9BU0NJSQorICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkFSZWZlcmVuY2UuREVGQVVMVCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGVyckNhc2UudXNlU1REM0FTQ0lJUnVsZXMpeworICAgICAgICAgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGVyckNhc2UudXNlU1REM0FTQ0lJUnVsZXMhPXRydWUpeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gVGVzdCBJRE5Ub0FTQ0lJCisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQVJlZmVyZW5jZS5ERUZBVUxULGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUyxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy9UZXN0VG9Vbmljb2RlCisgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS50ZXN0VG9Vbmljb2RlPT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS51c2VTVEQzQVNDSUlSdWxlcyE9dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUZXN0IElETlRvVW5pY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKGVyckNhc2UuYXNjaWksbmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLElETkFSZWZlcmVuY2UuREVGQVVMVCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5Ob0NsYXNzRGVmRm91bmRFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdENvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGJvb2xlYW4gaXNFcXVhbCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGludCByZXRWYWwgPSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUoczEsczIsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUobmV3IFN0cmluZ0J1ZmZlcihzMSksIG5ldyBTdHJpbmdCdWZmZXIoczIpLCBJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gSUROQVJlZmVyZW5jZS5jb21wYXJlKFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzMSksIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzMiksIElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBieSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50IHJldFZhbCA9IElETkFSZWZlcmVuY2UuY29tcGFyZShzMSxzMixJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkFSZWZlcmVuY2UuY29tcGFyZShuZXcgU3RyaW5nQnVmZmVyKHMxKSwgbmV3IFN0cmluZ0J1ZmZlcihzMiksIElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMxKSwgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMyKSwgSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB0aHJvd24gYnkgSUROQVJlZmVyZW5jZS5jb21wYXJlIik7CisgICAgICAgIH0gICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyB3d3cgPSAid3d3LiI7CisgICAgICAgIFN0cmluZyBjb20gPSAiLmNvbSI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkwICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkxICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTEgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisKKyAgICAgICAgdW5pMC5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzBdKTsKKyAgICAgICAgdW5pMC5hcHBlbmQoY29tKTsKKworICAgICAgICB1bmkxLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5bMV0pOworICAgICAgICB1bmkxLmFwcGVuZChjb20pOworCisgICAgICAgIGFzY2lpMC5hcHBlbmQoVGVzdERhdGEuYXNjaWlJblswXSk7CisgICAgICAgIGFzY2lpMC5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTEuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMV0pOworICAgICAgICBhc2NpaTEuYXBwZW5kKGNvbSk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgCisgICAgICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5IGVudHJ5IGluIHVuaWNvZGVJbiBhcnJheQorICAgICAgICAgICAgICAgIC8vIHByZXBlbmQgd3d3LiBhbmQgYXBwZW5kIC5jb20KKyAgICAgICAgICAgICAgICBzb3VyY2Uuc2V0TGVuZ3RoKDQpOworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluW2ldKTsKKyAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKGNvbSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gYSkgY29tcGFyZSBpdCB3aXRoIGl0c2VsZgorICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksc291cmNlLnRvU3RyaW5nKCksdHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBiKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx3d3crVGVzdERhdGEuYXNjaWlJbltpXStjb20sdHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjKSBjb21wYXJlIGl0IHdpdGggdW5pY29kZUluIG5vdCBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksIHVuaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHVuaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBkKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLGFzY2lpMS50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKworICAgIC8vICB0ZXN0IGFuZCBhc2NlcnRhaW4KKyAgICAvLyAgZnVuYyhmdW5jKGZ1bmMoc3JjKSkpID09IGZ1bmMoc3JjKQorICAgIHB1YmxpYyB2b2lkIGRvVGVzdENoYWluaW5nVG9BU0NJSShTdHJpbmcgc291cmNlKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZDsgCisgICAgICAgIFN0cmluZ0J1ZmZlciBjaGFpbmVkOworICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9BU0NJSQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvQVNDSUkoc291cmNlLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIGNoYWluZWQgPSBleHBlY3RlZDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IDQ7IGkrKyl7CisgICAgICAgICAgICBjaGFpbmVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROdG9BU0NJSShjaGFpbmVkLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0SUROVG9BU0NJSSIpOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvQQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvQVNDSUkoc291cmNlLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIGNoYWluZWQgPSBleHBlY3RlZDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IDQ7IGkrKyl7CisgICAgICAgICAgICBjaGFpbmVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShjaGFpbmVkLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0VG9BU0NJSSIpOworICAgICAgICB9IAorICAgICAgICAKKyAgICB9CisgICAgLy8gIHRlc3QgYW5kIGFzY2VydGFpbgorICAgIC8vICBmdW5jKGZ1bmMoZnVuYyhzcmMpKSkgPT0gZnVuYyhzcmMpCisgICAgcHVibGljIHZvaWQgZG9UZXN0Q2hhaW5pbmdUb1VuaWNvZGUoU3RyaW5nIHNvdXJjZSl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdCdWZmZXIgZXhwZWN0ZWQ7IAorICAgICAgICBTdHJpbmdCdWZmZXIgY2hhaW5lZDsKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvVW5pY29kZQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShzb3VyY2UsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgY2hhaW5lZCA9IGV4cGVjdGVkOworICAgICAgICBmb3IoaW50IGk9MDsgaTwgNDsgaSsrKXsKKyAgICAgICAgICAgIGNoYWluZWQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRJRE5Ub1VuaWNvZGUoY2hhaW5lZCxJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydElETlRvVW5pY29kZSIpOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvQQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShzb3VyY2UsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgY2hhaW5lZCA9IGV4cGVjdGVkOworICAgICAgICBmb3IoaW50IGk9MDsgaTwgNDsgaSsrKXsKKyAgICAgICAgICAgIGNoYWluZWQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb1VuaWNvZGUoY2hhaW5lZCxJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydFRvVW5pY29kZSIpOworICAgICAgICB9CisKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENoYWluaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q2hhaW5pbmdUb0FTQ0lJKG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgVGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q2hhaW5pbmdUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9vdExhYmVsU2VwYXJhdG9yKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nIHd3dyA9ICJ3d3cuIjsKKyAgICAgICAgU3RyaW5nIGNvbSA9ICIuY29tLiI7IC8qcm9vdCBsYWJlbCBzZXBhcmF0b3IqLworICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMCAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMSAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkwID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkxID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworCisgICAgICAgIHVuaTAuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJblswXSk7CisgICAgICAgIHVuaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgdW5pMS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzFdKTsKKyAgICAgICAgdW5pMS5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTAuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMF0pOworICAgICAgICBhc2NpaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgYXNjaWkxLmFwcGVuZChUZXN0RGF0YS5hc2NpaUluWzFdKTsKKyAgICAgICAgYXNjaWkxLmFwcGVuZChjb20pOworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDtpPCBUZXN0RGF0YS51bmljb2RlSW4ubGVuZ3RoOyBpKyspeworICAgIAorICAgICAgICAgICAgICAgIC8vIGZvciBldmVyeSBlbnRyeSBpbiB1bmljb2RlSW4gYXJyYXkKKyAgICAgICAgICAgICAgICAvLyBwcmVwZW5kIHd3dy4gYW5kIGFwcGVuZCAuY29tCisgICAgICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCg0KTsKKyAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJbltpXSk7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb20pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGEpIGNvbXBhcmUgaXQgd2l0aCBpdHNlbGYKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHNvdXJjZS50b1N0cmluZygpLHRydWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gYikgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gZXF1aXZhbGVudAorICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksd3d3K1Rlc3REYXRhLmFzY2lpSW5baV0rY29tLHRydWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gYykgY29tcGFyZSBpdCB3aXRoIHVuaWNvZGVJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLCB1bmkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx1bmkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZCkgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gbm90IGVxdWl2YWxlbnQKKyAgICAgICAgICAgICAgICBpZihpPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLGFzY2lpMC50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5Ob0NsYXNzRGVmRm91bmRFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfSAKKworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJbnB1dERhdGFTdHJ1Y3R1cmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJbnB1dERhdGFTdHJ1Y3R1cmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjg3ZWFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdElucHV0RGF0YVN0cnVjdHVyZS5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACisvKgorCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKKy8qKgorICogQGF1dGhvciBsaW1hb3l1CisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0SW5wdXREYXRhU3RydWN0dXJlIHsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBkZXNjID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIG5hbWViYXNlID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIG5hbWV1dGY4ID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIG5hbWV6b25lID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIGZhaWx6b25lMSA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0cmluZyBmYWlsem9uZTIgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgdG9rZW4gPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc2ZhaWwgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgdHlwZSA9IG51bGw7CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBkZXNjLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVzYygpIHsKKyAgICAgICAgcmV0dXJuIGRlc2M7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBkZXNjIFRoZSBkZXNjIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZXNjKFN0cmluZyBkZXNjKSB7CisgICAgICAgIHRoaXMuZGVzYyA9IGRlc2M7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgZmFpbHpvbmUxLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmFpbHpvbmUxKCkgeworICAgICAgICByZXR1cm4gZmFpbHpvbmUxOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gZmFpbHpvbmUxIFRoZSBmYWlsem9uZTEgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZhaWx6b25lMShTdHJpbmcgZmFpbHpvbmUxKSB7CisgICAgICAgIHRoaXMuZmFpbHpvbmUxID0gZmFpbHpvbmUxOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGZhaWx6b25lMi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEZhaWx6b25lMigpIHsKKyAgICAgICAgcmV0dXJuIGZhaWx6b25lMjsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIGZhaWx6b25lMiBUaGUgZmFpbHpvbmUyIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGYWlsem9uZTIoU3RyaW5nIGZhaWx6b25lMikgeworICAgICAgICB0aGlzLmZhaWx6b25lMiA9IGZhaWx6b25lMjsKKyAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBuYW1lYmFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWViYXNlKCkgeworICAgICAgICByZXR1cm4gbmFtZWJhc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBuYW1lYmFzZSBUaGUgbmFtZWJhc2UgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5hbWViYXNlKFN0cmluZyBuYW1lYmFzZSkgeworICAgICAgICB0aGlzLm5hbWViYXNlID0gbmFtZWJhc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgbmFtZXV0ZjguCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1ldXRmOCgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWV1dGY4OworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbmFtZXV0ZjggVGhlIG5hbWV1dGY4IHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROYW1ldXRmOChTdHJpbmcgbmFtZXV0ZjgpIHsKKyAgICAgICAgdGhpcy5uYW1ldXRmOCA9IG5hbWV1dGY4OworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIG5hbWV6b25lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZXpvbmUoKSB7CisgICAgICAgIHJldHVybiBuYW1lem9uZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIG5hbWV6b25lIFRoZSBuYW1lem9uZSB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZXpvbmUoU3RyaW5nIG5hbWV6b25lKSB7CisgICAgICAgIHRoaXMubmFtZXpvbmUgPSBuYW1lem9uZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBwYXNzZmFpbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3NmYWlsKCkgeworICAgICAgICByZXR1cm4gcGFzc2ZhaWw7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBwYXNzZmFpbCBUaGUgcGFzc2ZhaWwgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhc3NmYWlsKFN0cmluZyBwYXNzZmFpbCkgeworICAgICAgICB0aGlzLnBhc3NmYWlsID0gcGFzc2ZhaWw7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgdG9rZW4uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUb2tlbigpIHsKKyAgICAgICAgcmV0dXJuIHRva2VuOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gdG9rZW4gVGhlIHRva2VuIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUb2tlbihTdHJpbmcgdG9rZW4pIHsKKyAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIHR5cGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gdHlwZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFR5cGUoU3RyaW5nIHR5cGUpIHsKKyAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdFN0cmluZ1ByZXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RTdHJpbmdQcmVwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM3YjgxOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RTdHJpbmdQcmVwLmphdmEKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICovCitwdWJsaWMgY2xhc3MgVGVzdFN0cmluZ1ByZXAgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0U3RyaW5nUHJlcCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgLyoKKyAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBzcGVjaWFsIGlkZW50aWZpZXJzICgid2hvIikgd2hpY2ggbmVlZCB0byBiZQorICAgICAgIHVuZGVyc3Rvb2QgdW5pdmVyc2FsbHksIHJhdGhlciB0aGFuIGluIHRoZSBjb250ZXh0IG9mIGEgcGFydGljdWxhcgorICAgICAgIEROUyBkb21haW4uICBTb21lIG9mIHRoZXNlIGlkZW50aWZpZXJzIGNhbm5vdCBiZSB1bmRlcnN0b29kIHdoZW4gYW4KKyAgICAgICBORlMgY2xpZW50IGFjY2Vzc2VzIHRoZSBzZXJ2ZXIsIGJ1dCBoYXZlIG1lYW5pbmcgd2hlbiBhIGxvY2FsIHByb2Nlc3MKKyAgICAgICBhY2Nlc3NlcyB0aGUgZmlsZS4gIFRoZSBhYmlsaXR5IHRvIGRpc3BsYXkgYW5kIG1vZGlmeSB0aGVzZQorICAgICAgIHBlcm1pc3Npb25zIGlzIHBlcm1pdHRlZCBvdmVyIE5GUywgZXZlbiBpZiBub25lIG9mIHRoZSBhY2Nlc3MgbWV0aG9kcworICAgICAgIG9uIHRoZSBzZXJ2ZXIgdW5kZXJzdGFuZHMgdGhlIGlkZW50aWZpZXJzLgorCisgICAgICAgIFdobyAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKyAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKworICAgICAgICJPV05FUiIgICAgICAgICAgICAgICAgVGhlIG93bmVyIG9mIHRoZSBmaWxlLgorICAgICAgICJHUk9VUCIgICAgICAgICAgICAgICAgVGhlIGdyb3VwIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS4KKyAgICAgICAiRVZFUllPTkUiICAgICAgICAgICAgIFRoZSB3b3JsZC4KKyAgICAgICAiSU5URVJBQ1RJVkUiICAgICAgICAgIEFjY2Vzc2VkIGZyb20gYW4gaW50ZXJhY3RpdmUgdGVybWluYWwuCisgICAgICAgIk5FVFdPUksiICAgICAgICAgICAgICBBY2Nlc3NlZCB2aWEgdGhlIG5ldHdvcmsuCisgICAgICAgIkRJQUxVUCIgICAgICAgICAgICAgICBBY2Nlc3NlZCBhcyBhIGRpYWx1cCB1c2VyIHRvIHRoZSBzZXJ2ZXIuCisgICAgICAgIkJBVENIIiAgICAgICAgICAgICAgICBBY2Nlc3NlZCBmcm9tIGEgYmF0Y2ggam9iLgorICAgICAgICJBTk9OWU1PVVMiICAgICAgICAgICAgQWNjZXNzZWQgd2l0aG91dCBhbnkgYXV0aGVudGljYXRpb24uCisgICAgICAgIkFVVEhFTlRJQ0FURUQiICAgICAgICBBbnkgYXV0aGVudGljYXRlZCB1c2VyIChvcHBvc2l0ZSBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5PTllNT1VTKQorICAgICAgICJTRVJWSUNFIiAgICAgICAgICAgICAgQWNjZXNzIGZyb20gYSBzeXN0ZW0gc2VydmljZS4KKworICAgICAgIFRvIGF2b2lkIGNvbmZsaWN0LCB0aGVzZSBzcGVjaWFsIGlkZW50aWZpZXJzIGFyZSBkaXN0aW5ndWlzaCBieSBhbgorICAgICAgIGFwcGVuZGVkICJAIiBhbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgZm9ybSAieHh4eEAiIChub3RlOiBubyBkb21haW4KKyAgICAgICBuYW1lIGFmdGVyIHRoZSAiQCIpLiAgRm9yIGV4YW1wbGU6IEFOT05ZTU9VU0AuCisgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1tdIG1peGVkX3ByZXBfZGF0YSA9eworICAgICAgICAiT1dORVJAIiwKKyAgICAgICAgIkdST1VQQCIsICAgICAgICAKKyAgICAgICAgIkVWRVJZT05FQCIsICAgICAKKyAgICAgICAgIklOVEVSQUNUSVZFQCIsICAKKyAgICAgICAgIk5FVFdPUktAIiwgICAgICAKKyAgICAgICAgIkRJQUxVUEAiLCAgICAgICAKKyAgICAgICAgIkJBVENIQCIsICAgICAgICAKKyAgICAgICAgIkFOT05ZTU9VU0AiLCAgICAKKyAgICAgICAgIkFVVEhFTlRJQ0FURURAIiwKKyAgICAgICAgIlx1MDkzMFx1MDk0RFx1MDkyRVx1MDk0RFx1MDkxNVx1MDk0RFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0REBzbGlwMTI5LTM3LTExOC0xNDYubmMudXMuaWJtLm5ldCIsCisgICAgICAgICJcdTA5MzZcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MmVcdTA5MjZcdTA5NGRAc2FyYXRvZ2EucGUudXRleGFzLmVkdSIsCisgICAgICAgICJcdTA5MmRcdTA5MTdcdTA5MzVcdTA5MjZcdTA5NGRcdTA5MTdcdTA5NDBcdTA5MjRcdTA5M2VAZGlhbC0xMjAtNDUub3RzLnV0ZXhhcy5lZHUiLAorICAgICAgICAiXHUwOTA1XHUwOTI3XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTJmQHdvby0wODUuZG9ybXMud2FsbGVyLm5ldCIsCisgICAgICAgICJcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDFcdTA5MjhAaGQzMC0wNDkuaGlsLmNvbXB1c2VydmUuY29tIiwKKyAgICAgICAgIlx1MDkzNVx1MDkzZlx1MDkzN1x1MDkzZVx1MDkyNkBwZW0yMDMtMzEucGUudHR1LmVkdSIsCisgICAgICAgICJcdTA5MmZcdTA5NGJcdTA5MTdANTZLLTIyNy5NYXhUTlQzLnBkcS5uZXQiLAorICAgICAgICAiXHUwOTI3XHUwOTQzXHUwOTI0XHUwOTMwXHUwOTNlXHUwOTM3XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwQGRpYWwtMzYtMi5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJcdTA5MDlcdTA5MzVcdTA5M0VcdTA5MUFcdTA5NDNAc2xpcDEyOS0zNy0yMy0xNTIuZ2EudXMuaWJtLm5ldCIsCisgICAgICAgICJcdTA5MjdcdTA5MzBcdTA5NGRcdTA5MmVcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDdAdHM0NWlwMTE5LmNhZHZpc2lvbi5jb20iLAorICAgICAgICAiXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3QHNkbi10cy0wMDR0eGF1c3RQMDUuZGlhbHNwcmludC5uZXQiLAorICAgICAgICAiXHUwOTM4XHUwOTJlXHUwOTM1XHUwOTQ3XHUwOTI0XHUwOTNlQGJhci10bnQxczY2LmVyb2xzLmNvbSIsCisgICAgICAgICJcdTA5MmZcdTA5NDFcdTA5MmZcdTA5NDFcdTA5MjRcdTA5NGRcdTA5MzhcdTA5MzVcdTA5MDNAMTAxLnN0LWxvdWlzLTE1Lm1vLmRpYWwtYWNjZXNzLmF0dC5uZXQiLAorICAgICAgICAiXHUwOTJlXHUwOTNlXHUwOTJlXHUwOTE1XHUwOTNlXHUwOTAzQGg5Mi0yNDUuQXJjby5DT00iLAorICAgICAgICAiXHUwOTJhXHUwOTNlXHUwOTIzXHUwOTRkXHUwOTIxXHUwOTM1XHUwOTNlXHUwOTM2XHUwOTRkXHUwOTFhXHUwOTQ4XHUwOTM1QGRpYWwtMTMtMi5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJcdTA5MTVcdTA5M2ZcdTA5MmVcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NGRcdTA5MzVcdTA5MjRAbmV0LXJlZHluZXQyOS5kYXRhbWFya2V0cy5jb20uYXIiLAorICAgICAgICAiXHUwOTM4XHUwOTAyXHUwOTFjXHUwOTM1QGNjcy1zaGl2YTI4LnJlYWNjaXVuLm5ldC52ZSIsCisgICAgICAgICJcdTBjMzBcdTBjMThcdTBjNDFcdTBjMzBcdTBjM2VcdTBjMmVcdTBjNGRANy5ob3VzdG9uLTExLnR4LmRpYWwtYWNjZXNzLmF0dC5uZXQiLAorICAgICAgICAiXHUwYzM1XHUwYzNmXHUwYzM2XHUwYzRkXHUwYzM1XHUwYzI4XHUwYzNlXHUwYzI3QGluZ3cxMjktMzctMTIwLTI2Lm1vLnVzLmlibS5uZXQiLAorICAgICAgICAiXHUwYzA2XHUwYzI4XHUwYzAyXHUwYzI2XHUwYzRkQGRpYWx1cDYuYXVzdGludHguY29tIiwKKyAgICAgICAgIlx1MEMzNVx1MEMyNlx1MEM0RFx1MEMyNlx1MEMzRlx1MEMzMFx1MEMzRVx1MEMxQ1x1MEM0MUBkbnMyLnRwYW8uZ292LnRyIiwKKyAgICAgICAgIlx1MGMzMFx1MGMzZVx1MGMxY1x1MGM0MFx1MGMzNVx1MGM0ZEBzbGlwMTI5LTM3LTExOS0xOTQubmMudXMuaWJtLm5ldCIsCisgICAgICAgICJcdTBjMTVcdTBjMzZcdTBjMzBcdTBjMmNcdTBjM2VcdTBjMjZAY3M3LmRpbGxvbnMuY28udWsuMjAzLjExOS4xOTMuaW4tYWRkci5hcnBhIiwKKyAgICAgICAgIlx1MGMzOFx1MGMwMlx1MGMxY1x1MGM0MFx1MGMzNVx1MGM0ZEBzd3ByZDEuaW5ub3ZwbGFjZS5zYXNrYXRvb24uc2suY2EiLAorICAgICAgICAiXHUwYzE1XHUwYzM2XHUwYzMwXHUwYzJjXHUwYzNlXHUwYzI2QGJpa2luaS5ib2xvZ25hLm1hcmF1dC5pdCIsCisgICAgICAgICJcdTBjMzhcdTBjMDJcdTBjMWNcdTBjNDBcdTBjMmNcdTBjNGRAbm9kZTkxLnN1Ym5ldDE1OS0xOTgtNzkuYmF4dGVyLmNvbSIsCisgICAgICAgICJcdTBjMzhcdTBjNDZcdTBjMjhcdTBjNGRcdTBjMTdcdTBjNDFcdTBjMmFcdTBjNGRcdTBjMjRAY3VzdDE5Lm1heDUubmV3LXlvcmsubnkubXMudXUubmV0IiwKKyAgICAgICAgIlx1MGMwNVx1MGMyZVx1MGMzMFx1MGM0N1x1MGMwMlx1MGMyNlx1MGM0ZFx1MGMzMEBiYWxleGFuZGVyLnNsaXAuYW5kcmV3LmNtdS5lZHUiLAorICAgICAgICAiXHUwYzM5XHUwYzI4XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzI4XHUwYzQxXHUwYzMyQHBvb2wwMjkubWF4Mi5kZW52ZXIuY28uZHluaXAuYWx0ZXIubmV0IiwKKyAgICAgICAgIlx1MGMzMFx1MGMzNVx1MGMzZkBjdXN0NDkubWF4OS5uZXcteW9yay5ueS5tcy51dS5uZXQiLAorICAgICAgICAiXHUwYzE1XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkQHM2MS5hYnEtZGlhbGluMi5ob2xseWJlcnJ5LmNvbSIsCisgICAgICAgICJcdTBjMzVcdTBjM2ZcdTBjMzZcdTBjNGRcdTBjMzVcdTBjMjhcdTBjM2VcdTBjMjdAXHUwOTE3XHUwOTI4XHUwOTQ3XHUwOTM2LnNhbmpvc2UuaWJtLmNvbSIsCisgICAgICAgICJcdTBjMDZcdTBjMjZcdTBjM2ZcdTBjMjRcdTBjNGRcdTBjMmZAd3d3Llx1MDBFMFx1MDBCM1x1MDBBRi5jb20iLAorICAgICAgICAiXHUwQzE1XHUwQzAyXHUwQzI2XHUwQzREXHUwQzMwXHUwQzQ3XHUwQzE3XHUwQzQxXHUwYzMyQHd3dy5cdTAwQzJcdTAwQTQuY29tIiwKKyAgICAgICAgIlx1MGMzNlx1MGM0ZFx1MGMzMFx1MGM0MFx1MEMyN1x1MEMzMFx1MEM0REB3d3cuXHUwMEMyXHUwMEEzLmNvbSIsCisgICAgICAgICJcdTBjMTVcdTBjMDJcdTBjMWZcdTBjMmVcdTBjMzZcdTBjNDZcdTBjMWZcdTBjNGRcdTBjMWZcdTBjM2ZAXHUwMDI1IiwKKyAgICAgICAgIlx1MGMyZVx1MGMzZVx1MGMyN1x1MGMzNVx1MGM0ZEBcdTAwNUNcdTAwNUMiLAorICAgICAgICAiXHUwYzI2XHUwYzQ2XHUwYzM2XHUwYzQ2XHUwYzFmXHUwYzRkXHUwYzFmXHUwYzNmQHd3dy5cdTAwMjEuY29tIiwKKyAgICAgICAgInRlc3RAd3d3Llx1MDAyNC5jb20iLAorICAgICAgICAiaGVscEBcdTAwQzNcdTAwQkMuY29tIiwKKyAgICB9OworICAgIHB1YmxpYyB2b2lkIFRlc3RORlM0TWl4ZWRQcmVwKCl7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCBtaXhlZF9wcmVwX2RhdGEubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFN0cmluZyBzcmMgPSBtaXhlZF9wcmVwX2RhdGFbaV07CisgICAgICAgICAgICAgICAgYnl0ZVtdIGRlc3QgPSBORlM0U3RyaW5nUHJlcC5taXhlZF9wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHJpbmcgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgICAgIGludCBkZXN0SW5kZXggPSBkZXN0U3RyaW5nLmluZGV4T2YoJ0AnKTsKKyAgICAgICAgICAgICAgICBpZihkZXN0SW5kZXggPCAwKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRlbGltaXRlciBAIGRpc2FwcGVhcmVkIGZyb20gdGhlIG91dHB1dCEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGVycmxuKCJtaXhlZF9wcmVwYXJlIGZvciBzdHJpbmc6ICIgKyBtaXhlZF9wcmVwX2RhdGFbaV0gKyIgZmFpbGVkIHdpdGggIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIC8qIHRlc3QgdGhlIGVycm9yIGNvbmRpdGlvbiAqLworICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3JjID0gIk9XTkVSQG9zcy5zb2Z0d2FyZS5pYm0uY29tIjsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBieXRlW10gZGVzdCA9IE5GUzRTdHJpbmdQcmVwLm1peGVkX3ByZXBhcmUoc3JjLmdldEJ5dGVzKCJVVEYtOCIpKTsKKyAgICAgICAgICAgICAgICBpZihkZXN0IT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJtaXhlZF9wcmVwYXJlIGZvciBzdHJpbmc6ICIgKyBzcmMgKyIgcGFzc2VkIHdpdGggIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENJU1ByZXAoKXsKKworICAgICAgICBmb3IoaW50IGk9MDtpPCAoVGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoKTtpKyspeworICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgU3RyaW5nIHNyYyA9IHRlc3RDYXNlLmlucHV0OworICAgICAgICAgICAgRXhjZXB0aW9uIGV4cGVjdGVkID0gdGVzdENhc2UuZXhwZWN0ZWQ7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZXN0ID0gdGVzdENhc2Uub3V0cHV0OworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGJ5dGVbXSBkZXN0ID1ORlM0U3RyaW5nUHJlcC5jaXNfcHJlcGFyZShzcmMuZ2V0Qnl0ZXMoIlVURi04IikpOworICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0U3RyaW5nID0gbmV3IFN0cmluZyhkZXN0LCAiVVRGLTgiKTsKKyAgICAgICAgICAgICAgICBpZighZXhwZWN0ZWREZXN0LmVxdWFsc0lnbm9yZUNhc2UoZGVzdFN0cmluZykpeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBuZnM0X2Npc19wcmVwIGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGlmKCFleHBlY3RlZC5lcXVhbHMoZSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDU1ByZXAoKXsKKyAgICAgICAgCisgICAgICAgIC8vIENoZWNraW5nIGZvciBiaWRpIGlzIHR1cm5lZCBvZmYKKyAgICAgICAgU3RyaW5nIHNyYyA9ICJcdUMxMzhcdUFDQzRcdUM3NThcdUJBQThcdUI0RTBcdUMwQUNcdUI3OENcdUI0RTRcdUM3NzRcdTA2NDRcdTA2NEFcdTA2NDdcdUQ1NUNcdUFENkRcdUM1QjRcdUI5N0NcdUM3NzRcdUQ1NzRcdUQ1NUNcdUIyRTRcdUJBNzQiOworICAgICAgICB0cnl7CisgICAgICAgICAgICBORlM0U3RyaW5nUHJlcC5jc19wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSwgZmFsc2UpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIG5vcm1hbGl6YXRpb24gaXMgdHVybmVkIG9mZgorICAgICAgICB0cnl7CisgICAgICAgICAgICBzcmMgPSAid3d3Llx1MDBFMFx1MDBCM1x1MDBBRi5jb20iOworICAgICAgICAgICAgYnl0ZVtdIGRlc3QgPSBORlM0U3RyaW5nUHJlcC5jc19wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSwgZmFsc2UpOworICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHIgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgaWYoIXNyYy5lcXVhbHMoZGVzdFN0cikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpKworICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiICsgcHJldHRpZnkoZGVzdFN0cikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY2FzZSBpbnNlbnNpdGl2ZSBzdHJpbmcKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgc3JjID0gIlRISVNJU0FURVNUIjsKKyAgICAgICAgICAgIGJ5dGVbXSBkZXN0ID0gTkZTNFN0cmluZ1ByZXAuY3NfcHJlcGFyZShzcmMuZ2V0Qnl0ZXMoIlVURi04IiksIGZhbHNlKTsKKyAgICAgICAgICAgIFN0cmluZyBkZXN0U3RyID0gbmV3IFN0cmluZyhkZXN0LCAiVVRGLTgiKTsKKyAgICAgICAgICAgIGlmKCFzcmMudG9Mb3dlckNhc2UoKS5lcXVhbHMoZGVzdFN0cikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpKworICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiICsgcHJldHRpZnkoZGVzdFN0cikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBjYXNlIHNlbnNpdGl2ZSBzdHJpbmcKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgc3JjID0gIlRISVNJU0FURVNUIjsKKyAgICAgICAgICAgIGJ5dGVbXSBkZXN0ID0gTkZTNFN0cmluZ1ByZXAuY3NfcHJlcGFyZShzcmMuZ2V0Qnl0ZXMoIlVURi04IiksIHRydWUpOworICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHIgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgaWYoIXNyYy5lcXVhbHMoZGVzdFN0cikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpKworICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiICsgcHJldHRpZnkoZGVzdFN0cikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIGlmIChuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJjb3ZlcmFnZSIsIDAsICIiLCAwLDApID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oU3RyaW5nLCBpbnQsIFN0cmluZywgaW50LCBpbnQpIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZWE2ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXNjYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIHRpbWUgc2NhbGUgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiVGltZVNjYWxlQVBJVGVzdCIsCisgICAgICAgICAgICAgICAgIlRpbWVTY2FsZURhdGFUZXN0IiwKKyAgICAgICAgICAgICAgICAiVGltZVNjYWxlTW9ua2V5VGVzdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIkFsbCBUaW1lU2NhbGUgdGVzdHMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgID0gIlRpbWVTY2FsZSI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZUFQSVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlQVBJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkZDU2YWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZUFQSVRlc3QuamF2YQpAQCAtMCwwICsxLDM2MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXNjYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCisvKioKKyAqIEBhdXRob3IgT3duZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBUaW1lU2NhbGVBUElUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKworICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyBUaW1lU2NhbGVBUElUZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCaWdEZWNpbWFsRnJvbUJpZ0RlY2ltYWwoKQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCBiaWdaZXJvID0gbmV3IEJpZ0RlY2ltYWwoMCk7CisgICAgICAgIEJpZ0RlY2ltYWwgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbShiaWdaZXJvLCAtMSk7CisgICAgICAgICAgICBlcnJsbigiYmlnRGVjaW1hbEZyb20oYmlnWmVybywgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oYmlnWmVybywgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJiaWdEZWNpbWFsRnJvbShiaWdaZXJvLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbShiaWdaZXJvLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKGJpZ1plcm8sIE1BWF9TQ0FMRSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1ldEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbEZyb21Eb3VibGUoKQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKDAuMCwgLTEpOworICAgICAgICAgICAgZXJybG4oImJpZ0RlY2ltYWxGcm9tKDAuMCwgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oMC4wLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImJpZ0RlY2ltYWxGcm9tKDAuMCwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oMC4wLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKDAuMCwgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCaWdEZWNpbWFsRnJvbUxvbmcoKQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKDBMLCAtMSk7CisgICAgICAgICAgICBlcnJsbigiYmlnRGVjaW1hbEZyb20oMEwsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKDBMLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImJpZ0RlY2ltYWxGcm9tKDBMLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSgwTCwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRSk7CisgICAgICAgICAgICBlcnJsbigiZnJvbSgwTCwgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RGcm9tTG9uZygpCisgICAgeworICAgICAgICBsb25nIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSgwTCwgLTEpOworICAgICAgICAgICAgZXJybG4oImZyb20oMEwsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyBmcm9tTWluID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpOworICAgICAgICAgICAgbG9uZyBmcm9tTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NQVhfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDBMLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZyb20oMEwsICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbShmcm9tTWluLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZyb20oZnJvbU1pbiwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZyb21NaW4gPiBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGZyb21NaW4gLSAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmcm9tKGZyb21NaW4gLSAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGZyb21NYXgsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZnJvbShmcm9tTWF4LCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZyb21NYXggPCBMb25nLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGZyb21NYXggKyAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmcm9tKGZyb21NYXggKyAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmZyb20gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDBMLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKDBMLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0VGltZVNjYWxlKCkKKyAgICB7CisgICAgICAgIGxvbmcgdmFsdWU7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoLTEsIDApOworICAgICAgICAgICAgZXJybG4oImdldFRpbWVTY2FsZVZhbHVlKC0xLCAwKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHZhbHVlID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKDAsIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJnZXRUaW1lU2NhbGVWYWx1ZSgwLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCAwKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0VGltZVNjYWxlVmFsdWUoIiArIHNjYWxlICsgIiwgMCkgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRSwgMCk7CisgICAgICAgICAgICBlcnJsbigiZ2V0VGltZVNjYWxlVmFsdWUoTUFYX1NDQUxFLCAwKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoMCwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRV9WQUxVRSk7CisgICAgICAgICAgICBlcnJsbigiZ2V0VGltZVNjYWxlVmFsdWUoMCwgTUFYX1NDQUxFX1ZBTFVFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0JpZ0RlY2ltYWxGcm9tQmlnRGVjaW1hbCgpCisgICAgeworICAgICAgICBCaWdEZWNpbWFsIGJpZ1plcm8gPSBuZXcgQmlnRGVjaW1hbCgwKTsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbChiaWdaZXJvLCAtMSk7CisgICAgICAgICAgICBlcnJsbigidG9CaWdEZWNpbWFsKGJpZ1plcm8sIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwoYmlnWmVybywgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoYmlnWmVybywgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbChiaWdaZXJvLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoYmlnWmVybywgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUb0JpZ0RlY2ltYWxUcnVuYygpCisgICAgeworICAgICAgICBCaWdEZWNpbWFsIGJpZ1plcm8gPSBuZXcgQmlnRGVjaW1hbCgwKTsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsVHJ1bmMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsVHJ1bmMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRvQmlnRGVjaW1hbEZyb21Mb25nKCkKKyAgICB7CisgICAgICAgIEJpZ0RlY2ltYWwgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwoMEwsIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoMEwsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwoMEwsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9CaWdEZWNpbWFsKDBMLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsKDBMLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoMEwsIE1BWF9TQ0FMRSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1ldEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRvTG9uZygpCisgICAgeworICAgICAgICBsb25nIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKDBMLCAtMSk7CisgICAgICAgICAgICBlcnJsbigidG9Mb25nKDBMLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyB0b01pbiA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01JTl9WQUxVRSk7CisgICAgICAgICAgICBsb25nIHRvTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVE9fTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKDBMLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvTG9uZygwTCwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9NaW4sIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9Mb25nKHRvTWluLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodG9NaW4gPiBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9NaW4gLSAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcodG9NaW4gLSAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyh0b01heCwgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcodG9NYXgsICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodG9NYXggPCBMb25nLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9NYXggKyAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcodG9NYXggKyAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZygwTCwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRSk7CisgICAgICAgICAgICBlcnJsbigidG9Mb25nKDBMLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBuZXcgVGltZVNjYWxlQVBJVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZURhdGFUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZURhdGFUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZjNTk1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlRGF0YVRlc3QuamF2YQpAQCAtMCwwICsxLDI1OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXNjYWxlOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworLyoqCisgKiBAYXV0aG9yIE93bmVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgVGltZVNjYWxlRGF0YVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb250c3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFRpbWVTY2FsZURhdGFUZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByb3VuZFRyaXBUZXN0KGxvbmcgdmFsdWUsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIGxvbmcgcnQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKHZhbHVlLCBzY2FsZSksIHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChydCAhPSB2YWx1ZSkgeworICAgICAgICAgICAgZXJybG4oIlJvdW5kLXRyaXAgZXJyb3I6IHRpbWUgc2NhbGUgPSAiICsgc2NhbGUgKyAiLCB2YWx1ZSA9ICIgKyB2YWx1ZSArICIsIHJvdW5kLXRyaXAgPSAiICsgcnQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB0b0xpbWl0VGVzdChsb25nIHRvTGltaXQsIGxvbmcgZnJvbUxpbWl0LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBsb25nIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9MaW1pdCwgc2NhbGUpOworICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBmcm9tTGltaXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xpbWl0IGZhaWx1cmU6IHNjYWxlID0gIiArIHNjYWxlICsgIiwgdG9MaW1pdCA9ICIgKyB0b0xpbWl0ICsKKyAgICAgICAgICAgICAgICAgICIsIHRvTG9uZyh0b0xpbWl0LCBzY2FsZSkgPSAiICsgcmVzdWx0ICsgIiwgZnJvbUxpbWl0ID0gIiArIGZyb21MaW1pdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGVwb2NoT2Zmc2V0VGVzdChsb25nIGVwb2NoT2Zmc2V0LCBsb25nIHVuaXRzLCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBsb25nIHVuaXZlcnNhbEVwb2NoID0gZXBvY2hPZmZzZXQgKiB1bml0czsKKyAgICAgICAgbG9uZyBsb2NhbCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodW5pdmVyc2FsRXBvY2gsIHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChsb2NhbCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigidG9Mb25nKGVwb2NoT2Zmc2V0LCBzY2FsZSk6IHNjYWxlID0gIiArIHNjYWxlICsgIiwgZXBvY2hPZmZzZXQgPSAiICsgdW5pdmVyc2FsRXBvY2ggKworICAgICAgICAgICAgICAgICAgIiwgcmVzdWx0ID0gIiArIGxvY2FsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9jYWwgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKDAsIHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChsb2NhbCAhPSAtZXBvY2hPZmZzZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcoMCwgc2NhbGUpOiBzY2FsZSA9ICIgKyBzY2FsZSArICIsIHJlc3VsdCA9ICIgKyBsb2NhbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvbmcgdW5pdmVyc2FsID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oLWVwb2NoT2Zmc2V0LCBzY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKC1lcG9jaE9mZmVzdCwgc2NhbGUpOiBzY2FsZSA9ICIgKyBzY2FsZSArICIsIGVwb2NoT2Zmc2V0ID0gIiArIGVwb2NoT2Zmc2V0ICsKKyAgICAgICAgICAgICAgICAgICIsIHJlc3VsdCA9ICIgKyB1bml2ZXJzYWwpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB1bml2ZXJzYWwgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSgwLCBzY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsICE9IHVuaXZlcnNhbEVwb2NoKSB7CisgICAgICAgICAgICBlcnJsbigiZnJvbSgwLCBzY2FsZSk6IHNjYWxlID0gIiArIHNjYWxlICsgIiwgcmVzdWx0ID0gIiArIHVuaXZlcnNhbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEVwb2NoT2Zmc2V0cygpCisgICAgeworICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyB1bml0cyAgICAgICA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlVOSVRTX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgZXBvY2hPZmZzZXQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5FUE9DSF9PRkZTRVRfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBlcG9jaE9mZnNldFRlc3QoZXBvY2hPZmZzZXQsIHVuaXRzLCBzY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnJvbUxpbWl0cygpCisgICAgeworICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyBmcm9tTWluID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpOworICAgICAgICAgICAgbG9uZyBmcm9tTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NQVhfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICByb3VuZFRyaXBUZXN0KGZyb21NaW4sIHNjYWxlKTsKKyAgICAgICAgICAgIHJvdW5kVHJpcFRlc3QoZnJvbU1heCwgc2NhbGUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0xpbWl0cygpCisgICAgeworICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyBmcm9tTWluID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpOworICAgICAgICAgICAgbG9uZyBmcm9tTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NQVhfVkFMVUUpOworICAgICAgICAgICAgbG9uZyB0b01pbiAgID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVE9fTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgdG9NYXggICA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01BWF9WQUxVRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRvTGltaXRUZXN0KHRvTWluLCBmcm9tTWluLCBzY2FsZSk7CisgICAgICAgICAgICB0b0xpbWl0VGVzdCh0b01heCwgZnJvbU1heCwgc2NhbGUpOworICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUZXN0IHdpdGggZGF0YSBmcm9tIC5OZXQgU3lzdGVtLkRhdGVUaW1lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAvKgorICAgICAqIFRoaXMgZGF0YSB3YXMgZ2VuZXJhdGVkIGJ5IEMrKy5OZXQgY29kZSBsaWtlCisgICAgICogQ29uc29sZTo6V3JpdGVMaW5lKEwiICAgIHt7IHswfSwgMSwgMSwgSU5UNjRfQyh7MX0pIH19LCIsIHllYXIsIERhdGVUaW1lKHllYXIsIDEsIDEpLlRpY2tzKTsKKyAgICAgKiB3aXRoIHRoZSBEYXRlVGltZSBjb25zdHJ1Y3RvciB0YWtpbmcgaW50IHZhbHVlcyBmb3IgeWVhciwgbW9udGgsIGFuZCBkYXRlLgorICAgICAqLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgZG90TmV0RGF0ZVRpbWVUaWNrc1tdID0geworICAgICAgICAvKiB5ZWFyLCBtb250aCwgZGF5LCB0aWNrcyAqLworICAgICAgICAxMDAsIDEsIDEsIDMxMjQxMzc2MDAwMDAwMDAwTCwKKyAgICAgICAgMTAwLCAzLCAxLCAzMTI5MjM1MjAwMDAwMDAwMEwsCisgICAgICAgIDIwMCwgMSwgMSwgNjI3OTgxMTIwMDAwMDAwMDBMLAorICAgICAgICAyMDAsIDMsIDEsIDYyODQ5MDg4MDAwMDAwMDAwTCwKKyAgICAgICAgMzAwLCAxLCAxLCA5NDM1NDg0ODAwMDAwMDAwMEwsCisgICAgICAgIDMwMCwgMywgMSwgOTQ0MDU4MjQwMDAwMDAwMDBMLAorICAgICAgICA0MDAsIDEsIDEsIDEyNTkxMTU4NDAwMDAwMDAwMEwsCisgICAgICAgIDQwMCwgMywgMSwgMTI1OTYzNDI0MDAwMDAwMDAwTCwKKyAgICAgICAgNTAwLCAxLCAxLCAxNTc0NjkxODQwMDAwMDAwMDBMLAorICAgICAgICA1MDAsIDMsIDEsIDE1NzUyMDE2MDAwMDAwMDAwMEwsCisgICAgICAgIDYwMCwgMSwgMSwgMTg5MDI1OTIwMDAwMDAwMDAwTCwKKyAgICAgICAgNjAwLCAzLCAxLCAxODkwNzY4OTYwMDAwMDAwMDBMLAorICAgICAgICA3MDAsIDEsIDEsIDIyMDU4MjY1NjAwMDAwMDAwMEwsCisgICAgICAgIDcwMCwgMywgMSwgMjIwNjMzNjMyMDAwMDAwMDAwTCwKKyAgICAgICAgODAwLCAxLCAxLCAyNTIxMzkzOTIwMDAwMDAwMDBMLAorICAgICAgICA4MDAsIDMsIDEsIDI1MjE5MTIzMjAwMDAwMDAwMEwsCisgICAgICAgIDkwMCwgMSwgMSwgMjgzNjk2OTkyMDAwMDAwMDAwTCwKKyAgICAgICAgOTAwLCAzLCAxLCAyODM3NDc5NjgwMDAwMDAwMDBMLAorICAgICAgICAxMDAwLCAxLCAxLCAzMTUyNTM3MjgwMDAwMDAwMDBMLAorICAgICAgICAxMDAwLCAzLCAxLCAzMTUzMDQ3MDQwMDAwMDAwMDBMLAorICAgICAgICAxMTAwLCAxLCAxLCAzNDY4MTA0NjQwMDAwMDAwMDBMLAorICAgICAgICAxMTAwLCAzLCAxLCAzNDY4NjE0NDAwMDAwMDAwMDBMLAorICAgICAgICAxMjAwLCAxLCAxLCAzNzgzNjcyMDAwMDAwMDAwMDBMLAorICAgICAgICAxMjAwLCAzLCAxLCAzNzg0MTkwNDAwMDAwMDAwMDBMLAorICAgICAgICAxMzAwLCAxLCAxLCA0MDk5MjQ4MDAwMDAwMDAwMDBMLAorICAgICAgICAxMzAwLCAzLCAxLCA0MDk5NzU3NzYwMDAwMDAwMDBMLAorICAgICAgICAxNDAwLCAxLCAxLCA0NDE0ODE1MzYwMDAwMDAwMDBMLAorICAgICAgICAxNDAwLCAzLCAxLCA0NDE1MzI1MTIwMDAwMDAwMDBMLAorICAgICAgICAxNTAwLCAxLCAxLCA0NzMwMzgyNzIwMDAwMDAwMDBMLAorICAgICAgICAxNTAwLCAzLCAxLCA0NzMwODkyNDgwMDAwMDAwMDBMLAorICAgICAgICAxNjAwLCAxLCAxLCA1MDQ1OTUwMDgwMDAwMDAwMDBMLAorICAgICAgICAxNjAwLCAzLCAxLCA1MDQ2NDY4NDgwMDAwMDAwMDBMLAorICAgICAgICAxNzAwLCAxLCAxLCA1MzYxNTI2MDgwMDAwMDAwMDBMLAorICAgICAgICAxNzAwLCAzLCAxLCA1MzYyMDM1ODQwMDAwMDAwMDBMLAorICAgICAgICAxODAwLCAxLCAxLCA1Njc3MDkzNDQwMDAwMDAwMDBMLAorICAgICAgICAxODAwLCAzLCAxLCA1Njc3NjAzMjAwMDAwMDAwMDBMLAorICAgICAgICAxOTAwLCAxLCAxLCA1OTkyNjYwODAwMDAwMDAwMDBMLAorICAgICAgICAxOTAwLCAzLCAxLCA1OTkzMTcwNTYwMDAwMDAwMDBMLAorICAgICAgICAyMDAwLCAxLCAxLCA2MzA4MjI4MTYwMDAwMDAwMDBMLAorICAgICAgICAyMDAwLCAzLCAxLCA2MzA4NzQ2NTYwMDAwMDAwMDBMLAorICAgICAgICAyMTAwLCAxLCAxLCA2NjIzODA0MTYwMDAwMDAwMDBMLAorICAgICAgICAyMTAwLCAzLCAxLCA2NjI0MzEzOTIwMDAwMDAwMDBMLAorICAgICAgICAyMjAwLCAxLCAxLCA2OTM5MzcxNTIwMDAwMDAwMDBMLAorICAgICAgICAyMjAwLCAzLCAxLCA2OTM5ODgxMjgwMDAwMDAwMDBMLAorICAgICAgICAyMzAwLCAxLCAxLCA3MjU0OTM4ODgwMDAwMDAwMDBMLAorICAgICAgICAyMzAwLCAzLCAxLCA3MjU1NDQ4NjQwMDAwMDAwMDBMLAorICAgICAgICAyNDAwLCAxLCAxLCA3NTcwNTA2MjQwMDAwMDAwMDBMLAorICAgICAgICAyNDAwLCAzLCAxLCA3NTcxMDI0NjQwMDAwMDAwMDBMLAorICAgICAgICAyNTAwLCAxLCAxLCA3ODg2MDgyMjQwMDAwMDAwMDBMLAorICAgICAgICAyNTAwLCAzLCAxLCA3ODg2NTkyMDAwMDAwMDAwMDBMLAorICAgICAgICAyNjAwLCAxLCAxLCA4MjAxNjQ5NjAwMDAwMDAwMDBMLAorICAgICAgICAyNjAwLCAzLCAxLCA4MjAyMTU5MzYwMDAwMDAwMDBMLAorICAgICAgICAyNzAwLCAxLCAxLCA4NTE3MjE2OTYwMDAwMDAwMDBMLAorICAgICAgICAyNzAwLCAzLCAxLCA4NTE3NzI2NzIwMDAwMDAwMDBMLAorICAgICAgICAyODAwLCAxLCAxLCA4ODMyNzg0MzIwMDAwMDAwMDBMLAorICAgICAgICAyODAwLCAzLCAxLCA4ODMzMzAyNzIwMDAwMDAwMDBMLAorICAgICAgICAyOTAwLCAxLCAxLCA5MTQ4MzYwMzIwMDAwMDAwMDBMLAorICAgICAgICAyOTAwLCAzLCAxLCA5MTQ4ODcwMDgwMDAwMDAwMDBMLAorICAgICAgICAzMDAwLCAxLCAxLCA5NDYzOTI3NjgwMDAwMDAwMDBMLAorICAgICAgICAzMDAwLCAzLCAxLCA5NDY0NDM3NDQwMDAwMDAwMDBMLAorICAgICAgICAxLCAxLCAxLCAwTCwKKyAgICAgICAgMTYwMSwgMSwgMSwgNTA0OTExMjMyMDAwMDAwMDAwTCwKKyAgICAgICAgMTg5OSwgMTIsIDMxLCA1OTkyNjUyMTYwMDAwMDAwMDBMLAorICAgICAgICAxOTA0LCAxLCAxLCA2MDA1Mjc1MjAwMDAwMDAwMDBMLAorICAgICAgICAxOTcwLCAxLCAxLCA2MjEzNTU5NjgwMDAwMDAwMDBMLAorICAgICAgICAyMDAxLCAxLCAxLCA2MzExMzkwNDAwMDAwMDAwMDBMLAorICAgICAgICA5OTAwLCAzLCAxLCAzMTIzODczMjE2MDAwMDAwMDAwTCwKKyAgICAgICAgOTk5OSwgMTIsIDMxLCAzMTU1Mzc4MTEyMDAwMDAwMDAwTAorICAgIH07CisKKyAgICAvKgorICAgICAqIElDVSdzIFVuaXZlcnNhbCBUaW1lIFNjYWxlIGlzIGRlc2lnbmVkIHRvIGJlIHRpY2stZm9yLXRpY2sgY29tcGF0aWJsZSB3aXRoCisgICAgICogLk5ldCBTeXN0ZW0uRGF0ZVRpbWUuIFZlcmlmeSB0aGF0IHRoaXMgaXMgc28gZm9yIHRoZQorICAgICAqIC5OZXQtc3VwcG9ydGVkIGRhdGUgcmFuZ2UgKHllYXJzIDEtOTk5OSBBRCkuCisgICAgICogVGhpcyByZXF1aXJlcyBhIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgYmVjYXVzZSB0aGF0J3Mgd2hhdCAuTmV0IHVzZXMuCisgICAgICogUHJvbGVwdGljOiBObyBKdWxpYW4vR3JlZ29yaWFuIHN3aXRjaG92ZXIsIG9yIGEgc3dpdGNob3ZlciBiZWZvcmUKKyAgICAgKiBhbnkgZGF0ZSB0aGF0IHdlIHRlc3QsIHRoYXQgaXMsIGJlZm9yZSAwMDAxIEFELgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REb3ROZXQoKSB7CisgICAgICAgIFRpbWVab25lIHV0YzsKKyAgICAgICAgZmluYWwgbG9uZyBkYXlNaWxsaXMgPSA4NjQwMCAqIDEwMDBMOyAgICAvKiAxIGRheSA9IDg2NDAwIHNlY29uZHMgKi8KKyAgICAgICAgZmluYWwgbG9uZyBkYXlUaWNrcyA9IDg2NDAwICogMTAwMDAwMDBMOworICAgICAgICBmaW5hbCBpbnQga1llYXIgPSAwOyAgLy8gb2Zmc2V0IGZvciBkb3ROZXREYXRlVGltZVRpY2tzW10gZmllbGQKKyAgICAgICAgZmluYWwgaW50IGtNb250aCA9IDE7CisgICAgICAgIGZpbmFsIGludCBrRGF5ID0gMjsKKyAgICAgICAgZmluYWwgaW50IGtUaWNrcyA9IDM7CisgICAgICAgIGZpbmFsIGludCBrSW5jcmVtZW50ID0gNDsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsOworICAgICAgICBsb25nIGljdURhdGU7CisgICAgICAgIGxvbmcgdGlja3MsIG1pbGxpczsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgLyogT3BlbiBhIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIuICovCisgICAgICAgIGxvbmcgYmVmb3JlMDAwMUFEID0gLTEwMDAwMDAgKiBkYXlNaWxsaXM7CisgICAgICAgIHV0YyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIik7CisgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih1dGMsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShiZWZvcmUwMDAxQUQpKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgZG90TmV0RGF0ZVRpbWVUaWNrcy5sZW5ndGg7IGkgKz0ga0luY3JlbWVudCkgeworICAgICAgICAgICAgLyogVGVzdCBjb252ZXJzaW9uIGZyb20gLk5ldC9Vbml2ZXJzYWwgdGltZSB0byBJQ1UgdGltZS4gKi8KKyAgICAgICAgICAgIG1pbGxpcyA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga1RpY2tzXSwgVW5pdmVyc2FsVGltZVNjYWxlLklDVTRDX1RJTUUpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KChpbnQpZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga1llYXJdLAorICAgICAgICAgICAgICAgICAgICAoaW50KWRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtNb250aF0gLSAxLCAvKiBKYXZhICYgSUNVIHVzZSBKYW51YXJ5ID0gbW9udGggMC4gKi8KKyAgICAgICAgICAgICAgICAgICAgKGludClkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrRGF5XSk7CisgICAgICAgICAgICBpY3VEYXRlID0gY2FsLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgaWYobWlsbGlzICE9IGljdURhdGUpIHsKKyAgICAgICAgICAgICAgICAvKiBQcmludCBkYXlzIG5vdCBtaWxsaXMuICovCisgICAgICAgICAgICAgICAgZXJybG4oIlVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodGlja3NbIiArIGkgKyAiXSwgSUNVNEMpPSIgKworICAgICAgICAgICAgICAgICAgICAgIChtaWxsaXMvZGF5TWlsbGlzKSArICIgIT0gIiArIChpY3VEYXRlL2RheU1pbGxpcykgKworICAgICAgICAgICAgICAgICAgICAgICI9dWNhbF9nZXRNaWxsaXMoIiArIGRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtZZWFyXSArCisgICAgICAgICAgICAgICAgICAgICAgIi0iICsgZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga01vbnRoXSArCisgICAgICAgICAgICAgICAgICAgICAgIi0iICsgZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga0RheV0gKyAiKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBUZXN0IGNvbnZlcnNpb24gZnJvbSBJQ1UgdGltZSB0byAuTmV0L1VuaXZlcnNhbCB0aW1lLiAqLworICAgICAgICAgICAgdGlja3MgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbShpY3VEYXRlLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSk7CisgICAgICAgICAgICBpZih0aWNrcyAhPSBkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrVGlja3NdKSB7CisgICAgICAgICAgICAgICAgLyogUHJpbnQgZGF5cyBub3QgdGlja3MuICovCisgICAgICAgICAgICAgICAgZXJybG4oIlVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGRhdGVbIiArIGkgKyAiXSwgSUNVNEMpPSIgKworICAgICAgICAgICAgICAgICAgICAgICh0aWNrcy9kYXlUaWNrcykgKyAiICE9ICIgKyBkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrVGlja3NdL2RheVRpY2tzICsKKyAgICAgICAgICAgICAgICAgICAgICAiPS5OZXQgU3lzdGVtLkRhdGVUaW1lKCIgKyBkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrWWVhcl0gKworICAgICAgICAgICAgICAgICAgICAgICItIiArIGRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtNb250aF0gKworICAgICAgICAgICAgICAgICAgICAgICItIiArIGRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtEYXldICsgIikuVGlja3MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBuZXcgVGltZVNjYWxlRGF0YVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWVzY2FsZS9UaW1lU2NhbGVNb25rZXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZU1vbmtleVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzI5MTVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWVzY2FsZS9UaW1lU2NhbGVNb25rZXlUZXN0LmphdmEKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lc2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHRlc3RzIHRoZSBVbml2ZXJzYWxUaW1lU2NhbGUgY2xhc3MgYnkKKyAqIGdlbmVyYXRpbmcgcmFtZG9uIHZhbHVlcyBpbiByYW5nZSBhbmQgbWFraW5nIHN1cmUKKyAqIHRoYXQgdGhleSByb3VuZC10cmlwIGNvcnJlY3RseS4KKyAqLworcHVibGljIGNsYXNzIFRpbWVTY2FsZU1vbmtleVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFRpbWVTY2FsZU1vbmtleVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPT1BfQ09VTlQgPSAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEJpZ0RlY2ltYWwgbG9uZ01heCA9IG5ldyBCaWdEZWNpbWFsKExvbmcuTUFYX1ZBTFVFKTsKKyAgICAKKyAgICBwcml2YXRlIFJhbmRvbSByYW4gPSBudWxsOworICAgIAorICAgIHByaXZhdGUgbG9uZyByYW5JbnQ7CisgICAgcHJpdmF0ZSBsb25nIHJhbk1pbjsKKyAgICBwcml2YXRlIGxvbmcgcmFuTWF4OworICAgIAorICAgIHByaXZhdGUgdm9pZCBpbml0UmFuZG9tKGxvbmcgbWluLCBsb25nIG1heCkKKyAgICB7CisgICAgICAgIEJpZ0RlY2ltYWwgaW50ZXJ2YWwgPSBuZXcgQmlnRGVjaW1hbChtYXgpLnN1YnRyYWN0KG5ldyBCaWdEZWNpbWFsKG1pbikpOworICAgICAgICAKKyAgICAgICAgcmFuTWluID0gbWluOworICAgICAgICByYW5NYXggPSBtYXg7CisgICAgICAgIHJhbkludCA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAocmFuID09IG51bGwpIHsKKyAgICAgICAgICAgIHJhbiA9IGNyZWF0ZVJhbmRvbSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoaW50ZXJ2YWwuY29tcGFyZVRvKGxvbmdNYXgpIDwgMCkgeworICAgICAgICAgICAgcmFuSW50ID0gaW50ZXJ2YWwubG9uZ1ZhbHVlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBsb25nIHJhbmRvbUluUmFuZ2UoKQorICAgIHsKKyAgICAgICAgbG9uZyB2YWx1ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChyYW5JbnQgIT0gMCkgeworICAgICAgICAgICAgdmFsdWUgPSByYW4ubmV4dExvbmcoKSAlIHJhbkludDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gLXZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB2YWx1ZSArPSByYW5NaW47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSByYW4ubmV4dExvbmcoKTsKKyAgICAgICAgICAgIH0gd2hpbGUgKHZhbHVlIDwgcmFuTWluIHx8IHZhbHVlID4gcmFuTWF4KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRUcmlwKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICBsb25nIGZyb21NaW4gPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01JTl9WQUxVRSk7CisgICAgICAgICAgICBsb25nIGZyb21NYXggPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01BWF9WQUxVRSk7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGluaXRSYW5kb20oZnJvbU1pbiwgZnJvbU1heCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChpIDwgTE9PUF9DT1VOVCkgeworICAgICAgICAgICAgICAgIGxvbmcgdmFsdWUgPSByYW5kb21JblJhbmdlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxvbmcgcnQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKHZhbHVlLCBzY2FsZSksIHNjYWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocnQgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlJvdW5kLXRyaXAgZXJyb3I6IHRpbWUgc2NhbGUgPSAiICsgc2NhbGUgKyAiLCB2YWx1ZSA9ICIgKyB2YWx1ZSArICIsIHJvdW5kLXRyaXAgPSAiICsgcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgbmV3IFRpbWVTY2FsZU1vbmtleVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk4ZmQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiVGltZVpvbmVUZXN0IiwKKyAgICAgICAgICAgICJUaW1lWm9uZVJlZ3Jlc3Npb24iLAorICAgICAgICAgICAgIlRpbWVab25lQm91bmRhcnlUZXN0IiwKKy8vICAgICAgICAgICAgICJUaW1lWm9uZUFsaWFzVGVzdCIsCisgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlRpbWVab25lIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUFsaWFzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQWxpYXNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDViMjk0ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUFsaWFzVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDIyIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZTsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkJhZ0Zvcm1hdHRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisKKy8qKgorICogQ2xhc3MgZm9yIHRlc3RpbmcgVGltZVpvbmVzIGZvciBjb25zaXN0ZW5jeQorICogQGF1dGhvciBEYXZpcworICogCisgKi8KK3B1YmxpYyBjbGFzcyBUaW1lWm9uZUFsaWFzVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lQWxpYXNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgdHdvIHRoaW5ncyB0byBjaGVjayBhbGlhc2VzIGZvcjo8YnI+CisgICAgICogMS4gdGhlIGFsaWFzIHNldCBtdXN0IGJlIHVuaWZvcm06IGlmIGEgaXNBbGlhcyBiLCB0aGVuIGFsaWFzU2V0KGEpID09IGFsaWFzU2V0KGIpPGJyPgorICAgICAqIDIuIGFsbCBhbGlhc2VzIG11c3QgaGF2ZSB0aGUgc2FtZSBvZmZzZXRzCisgICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbGlhc2VzKCkgeworICAgICAgICBpZiAoc2tpcElmQmVmb3JlSUNVKDMsMCkpIHJldHVybjsKKyAgICAgICAgWm9uZS5TZWNvbmRzIHNlY29uZHMgPSBuZXcgWm9uZS5TZWNvbmRzKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBab25lLmdldFpvbmVTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgWm9uZSB6b25lID0gKFpvbmUpaXQubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGlkID0gem9uZS5pZDsKKyAgICAgICAgICAgIGlmIChpZC5pbmRleE9mKCcvJykgPCAwICYmIChpZC5lbmRzV2l0aCgiU1QiKSB8fCBpZC5lbmRzV2l0aCgiRFQiKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoem9uZS5taW5SZWNlbnRPZmZzZXQgIT0gem9uZS5tYXhSZWNlbnRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiU3RhbmRhcmQgb3IgRGF5bGlnaHQgVGltZSBub3QgY29uc3RhbnQ6ICIgKyBpZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjogIiArIFpvbmUuZm9ybWF0SG91cnMoem9uZS5taW5SZWNlbnRPZmZzZXQpCisgICAgICAgICAgICAgICAgICAgICAgICArICIgIT0gIiArIFpvbmUuZm9ybWF0SG91cnMoem9uZS5tYXhSZWNlbnRPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTZXQgYWxpYXNlcyA9IHpvbmUuZ2V0UHVycG9ydGVkQWxpYXNlcygpOworICAgICAgICAgICAgU2V0IGFsaWFzZXNTZXQgPSBuZXcgVHJlZVNldChhbGlhc2VzKTsKKyAgICAgICAgICAgIGFsaWFzZXNTZXQuYWRkKGlkKTsgLy8gZm9yIGNvbXBhcmlzb24KKyAgICAgICAgICAgIEl0ZXJhdG9yIGFsaWFzSXRlcmF0b3IgPSBhbGlhc2VzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoYWxpYXNJdGVyYXRvci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3RoZXJJZCA9IChTdHJpbmcpYWxpYXNJdGVyYXRvci5uZXh0KCk7CisgICAgICAgICAgICAgICAgWm9uZSBvdGhlclpvbmUgPSBab25lLm1ha2Uob3RoZXJJZCk7CisgICAgICAgICAgICAgICAgU2V0IG90aGVyQWxpYXNlcyA9IG90aGVyWm9uZS5nZXRQdXJwb3J0ZWRBbGlhc2VzKCk7CisgICAgICAgICAgICAgICAgb3RoZXJBbGlhc2VzLmFkZChvdGhlcklkKTsgLy8gZm9yIGNvbXBhcmlzb24KKyAgICAgICAgICAgICAgICBpZiAoIWFsaWFzZXNTZXQuZXF1YWxzKG90aGVyQWxpYXNlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiQWxpYXNlcyBVbnN5bW1ldHJpYzogIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBpZCArICIgPT4gIiArIFpvbmUuYmYuam9pbihhbGlhc2VzU2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiOyAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBvdGhlcklkICsgIiA9PiAiICsgWm9uZS5iZi5qb2luKG90aGVyQWxpYXNlcykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoem9uZS5maW5kT2Zmc2V0T3JkZXJpbmcob3RoZXJab25lLCBzZWNvbmRzKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJBbGlhc2VzIGRpZmZlcjogIiArIGlkICsgIiwgIiArIG90aGVySWQKKyAgICAgICAgICAgICAgICAgICAgICAgICArICIgZGlmZmVyIGF0ICIgKyBzZWNvbmRzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV2UgY2hlY2sgdG8gc2VlIHRoYXQgZXZlcnkgdGltZXpvbmUgdGhhdCBpcyBub3QgYW4gYWxpYXMgaXMgYWN0dWFsbHkgZGlmZmVyZW50IQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REaWZmZXJlbmNlcygpIHsKKyAgICAgICAgaWYgKHNraXBJZkJlZm9yZUlDVSgzLDApKSByZXR1cm47CisgICAgICAgIFpvbmUgbGFzdCA9IG51bGw7CisgICAgICAgIFpvbmUuU2Vjb25kcyBkaWZmRGF0ZSA9IG5ldyBab25lLlNlY29uZHMoKTsgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gWm9uZS5nZXRab25lU2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgWm9uZSB0ZXN0Wm9uZSA9IChab25lKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmIChsYXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tbW9uID0gdGVzdFpvbmUgKyAiXHR2cyAiICsgbGFzdCArICI6XHQiOworICAgICAgICAgICAgICAgIGludCBkaWZmID0gdGVzdFpvbmUuZmluZE9mZnNldE9yZGVyaW5nKGxhc3QsIGRpZmZEYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlmZiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBjb21tb24gKyAiZGlmZmVyZW5jZSBhdDogIiArIGRpZmZEYXRlIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgWm9uZS5mb3JtYXRIb3VycyhkaWZmKSArICJociIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGVzdFpvbmUuaXNSZWFsQWxpYXMobGFzdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlx0IiArIGNvbW1vbiArICJhbGlhcywgbm8gZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKGNvbW1vbiArICJOT1QgQUxJQVMgQlVUIE5PIERJRkZFUkVOQ0UhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdCA9IHRlc3Rab25lOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgZm9yIHByaW50aW5nIG91dCB6b25lcyB0byBiZSB0cmFuc2xhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBUZXN0R2VuZXJhdGVab25lcygpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IFpvbmUuZ2V0VW5pcXVlWm9uZVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIFpvbmUgem9uZSA9IChab25lKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih6b25lLnRvU3RyaW5nKGNvdW50KyspKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogVXRpbGl0eTsgb3VnaHQgdG8gYmUgc29tZXBsYWNlIGNvbW1vbgorICAgICAqLworICAgIC8qCisgICAgc3RhdGljIFN0cmluZyBqb2luKENvbGxlY3Rpb24gYywgU3RyaW5nIHNlcGFyYXRvcikgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBib29sZWFuIGlzRmlyc3QgPSB0cnVlOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgaWYgKCFpc0ZpcnN0KSByZXN1bHQuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBlbHNlIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgKi8KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGhlIGd1dHMgaXMgaW4gdGhpcyBzdWJjbGFzcy4gSXQgc3Vja3MgaW4gYWxsIHRoZSBkYXRhIGZyb20gdGhlIHpvbmVzLAorICAgICAqIGFuZCBhbmFseXNlcyBpdC4gSXQgY29uc3RydWN0cyBzb21lIG1hcHBpbmdzIGZvciB0aGUgdW5pcXVlIGlkcywKKyAgICAgKiBldGMuPGJyPgorICAgICAqIFRoZSBtYWluIHRyaWNreSBiaXQgaXMgdGhhdCBmb3IgcGVyZm9ybWFuY2UgaXQgcHJlLWFuYWx5c2VzIGFsbCB6b25lcworICAgICAqIGZvciBpbmZsZWN0aW9ucyBwb2ludHM7IHRoZSBwb2ludHMgaW4gdGltZSB3aGVyZSB0aGUgb2Zmc2V0IGNoYW5nZXMuCisgICAgICogVGhlIHpvbmVzIGNhbiB0aGVuIGJlIHNvcnRlZCBieSB0aG9zZSBwb2ludHMsIHdoaWNoIGFsbG93cyB1cyB0bworICAgICAqIGF2b2lkIGV4cGVuc2l2ZSBjb21wYXJpc29ucy4KKyAgICAgKiBAYXV0aG9yIERhdmlzCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFpvbmUgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKyAgICAgICAgLy8gY2xhc3MgZmllbGRzCisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEJhZ0Zvcm1hdHRlciBiZiA9IG5ldyBCYWdGb3JtYXR0ZXIoKS5zZXRTZXBhcmF0b3IoIiwgIik7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5VUyk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIEhPVVIgPSAxMDAwKjYwKjYwOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgREhPVVIgPSBIT1VSOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIERBWSA9IDI0KkhPVVI7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgR1JPU1NfUEVSSU9EID0gMzAqREFZOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIEVQU0lMT04gPSBIT1VSLzQ7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGludCBjdXJyZW50WWVhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgbG9uZyBlbmREYXRlID0gZ2V0RGF0ZSgoY3VycmVudFllYXIrMSksMCwxKS5nZXRUaW1lKCk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgZW5kRGF0ZTIgPSBnZXREYXRlKChjdXJyZW50WWVhcisxKSw2LDEpLmdldFRpbWUoKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgbG9uZyByZWNlbnRMaW1pdCA9IGdldERhdGUoKGN1cnJlbnRZZWFyLTEpLDYsMSkuZ2V0VGltZSgpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIHN0YXJ0RGF0ZSA9IGdldERhdGUoMTkwNSwwLDEpLmdldFRpbWUoKTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE1hcCBpZFRvWm9uZSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIFNldCB6b25lU2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgU2V0IHVuaXF1ZVpvbmVTZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBNYXAgaWRUb1JlYWxBbGlhc2VzID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvLyBidWlsZCBldmVyeXRoaW5nIG9uY2UuCisgICAgICAgIHN0YXRpYyB7CisgICAgICAgICAgICBTdHJpbmcgW10gZm9vID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvby5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHpvbmVTZXQuYWRkKFpvbmUubWFrZShmb29baV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFpvbmUgbGFzdCA9IG51bGw7CisgICAgICAgICAgICBab25lLlNlY29uZHMgZGlmZkRhdGUgPSBuZXcgWm9uZS5TZWNvbmRzKCk7CisgICAgICAgICAgICBTdHJpbmcgbGFzdFVuaXF1ZSA9ICIiOyAgICAgIAorICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IFpvbmUuZ2V0Wm9uZVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBab25lIHRlc3Rab25lID0gKFpvbmUpaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChsYXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5pcXVlWm9uZVNldC5hZGQodGVzdFpvbmUpOworICAgICAgICAgICAgICAgICAgICBsYXN0VW5pcXVlID0gdGVzdFpvbmUuaWQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZmYgPSB0ZXN0Wm9uZS5maW5kT2Zmc2V0T3JkZXJpbmcobGFzdCwgZGlmZkRhdGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVab25lU2V0LmFkZCh0ZXN0Wm9uZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VW5pcXVlID0gdGVzdFpvbmUuaWQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXQgYWxpYXNlcyA9IChTZXQpaWRUb1JlYWxBbGlhc2VzLmdldChsYXN0VW5pcXVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGlhc2VzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZFRvUmVhbEFsaWFzZXMucHV0KGxhc3RVbmlxdWUsIGFsaWFzZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlcy5hZGQodGVzdFpvbmUuaWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3QgPSB0ZXN0Wm9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIHB1YmxpYyBTZXQgZ2V0Wm9uZVNldCgpIHsKKyAgICAgICAgICAgIHJldHVybiB6b25lU2V0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIFNldCBnZXRVbmlxdWVab25lU2V0KCkgeworICAgICAgICAgICAgcmV0dXJuIHVuaXF1ZVpvbmVTZXQ7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgcHVibGljIFpvbmUgbWFrZShTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIFpvbmUgcmVzdWx0ID0gKFpvbmUpaWRUb1pvbmUuZ2V0KGlkKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBab25lKGlkKTsKKyAgICAgICAgICAgIGlkVG9ab25lLnB1dChpZCwgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGZvcm1hdEhvdXJzKGludCBob3VycykgeworICAgICAgICAgICAgcmV0dXJuIG5mLmZvcm1hdChob3Vycy9ESE9VUik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHV0aWxpdHkgY2xhc3MgZm9yIGRhdGUgcmV0dXJuLCBiZWNhdXNlIERhdGUgaXMgY2x1bmt5LgorICAgICAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNlY29uZHMgeworICAgICAgICAgICAgcHVibGljIGxvbmcgc2Vjb25kcyA9IExvbmcuTUlOX1ZBTFVFOworICAgICAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2Vjb25kcyA9PSBMb25nLk1JTl9WQUxVRSkgcmV0dXJuICJuL2EiOworICAgICAgICAgICAgICAgIHJldHVybiBkZi5mb3JtYXQobmV3IERhdGUoc2Vjb25kcykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpbnN0YW5jZSBmaWVsZHMKKyAgICAgICAgLy8gd2Uga2VlcCBtaW4vbWF4IG9mZnNldHMgbm90IG9ubHkgb3ZlciBhbGwgdGltZSAodGhhdCB3ZSBjYXJlIGFib3V0KQorICAgICAgICAvLyBidXQgYWxzbyBzZXBhcmF0ZSBvbmVzIGZvciByZWNlbnQgeWVhcnMuCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGlkOworICAgICAgICBwcml2YXRlIFRpbWVab25lIHpvbmU7CisgICAgICAgIC8vIGNvbXB1dGVkIGJlbG93CisgICAgICAgIHByaXZhdGUgaW50IG1pbk9mZnNldDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbWF4T2Zmc2V0OworICAgICAgICBwcml2YXRlIGludCBtaW5SZWNlbnRPZmZzZXQ7CisgICAgICAgIHByaXZhdGUgaW50IG1heFJlY2VudE9mZnNldDsKKyAgICAgICAgcHJpdmF0ZSBMaXN0IGluZmxlY3Rpb25Qb2ludHMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHByaXZhdGUgU2V0IHB1cnBvcnRlZEFsaWFzZXMgPSBuZXcgVHJlZVNldCgpOworICAgIAorICAgICAgICBwcml2YXRlIFpvbmUoU3RyaW5nIGlkKSB7IC8vIGZvciBpbnRlcmFsIHVzZSBvbmx5OyB1c2UgbWFrZSBpbnN0ZWFkIQorICAgICAgICAgICAgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKGlkKTsKKyAgICAgICAgICAgIHRoaXMuaWQgPSBpZDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gZ2V0IGFsaWFzZXMKKyAgICAgICAgICAgIGludCBlcXVpdkNvdW50ID0gVGltZVpvbmUuY291bnRFcXVpdmFsZW50SURzKGlkKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZXF1aXZDb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFsdElEID0gVGltZVpvbmUuZ2V0RXF1aXZhbGVudElEKGlkLCBqKTsKKyAgICAgICAgICAgICAgICBpZiAoYWx0SUQuZXF1YWxzKGlkKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgcHVycG9ydGVkQWxpYXNlcy5hZGQoYWx0SUQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBmaW5kIGluZmxleGlvbiBwb2ludHM7IHRpbWVzIHdoZXJlIHRoZSBvZmZzZXQgY2hhbmdlZAorICAgICAgICAgICAgbG9uZyBsYXN0RGF0ZSA9IGVuZERhdGU7CisgICAgICAgICAgICBpZiAoem9uZS5nZXRPZmZzZXQobGFzdERhdGUpIDwgem9uZS5nZXRPZmZzZXQoZW5kRGF0ZTIpKSBsYXN0RGF0ZSA9IGVuZERhdGUyOworICAgICAgICAgICAgbWF4UmVjZW50T2Zmc2V0ID0gbWluUmVjZW50T2Zmc2V0ID0gbWluT2Zmc2V0ID0gbWF4T2Zmc2V0ID0gem9uZS5nZXRPZmZzZXQobGFzdERhdGUpOworCisgICAgICAgICAgICBpbmZsZWN0aW9uUG9pbnRzLmFkZChuZXcgTG9uZyhsYXN0RGF0ZSkpOworICAgICAgICAgICAgaW50IGxhc3RPZmZzZXQgPSB6b25lLmdldE9mZnNldChlbmREYXRlKTsKKyAgICAgICAgICAgIGxvbmcgbGFzdEluZmxlY3Rpb24gPSBlbmREYXRlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB3ZSBkbyBhIGdyb3NzIHNlYXJjaCwgdGhlbiBuYXJyb3cgaW4gd2hlbiB3ZSBmaW5kIGEgZGlmZmVyZW5jZSBmcm9tIHRoZSBsYXN0IG9uZQorICAgICAgICAgICAgZm9yIChsb25nIGN1cnJlbnREYXRlID0gZW5kRGF0ZTsgY3VycmVudERhdGUgPj0gc3RhcnREYXRlOyBjdXJyZW50RGF0ZSAtPSBHUk9TU19QRVJJT0QpIHsKKyAgICAgICAgICAgICAgICBpbnQgY3VycmVudE9mZnNldCA9IHpvbmUuZ2V0T2Zmc2V0KGN1cnJlbnREYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudE9mZnNldCAhPSBsYXN0T2Zmc2V0KSB7IC8vIEJpbmFyeSBTZWFyY2gKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRPZmZzZXQgPCBtaW5PZmZzZXQpIG1pbk9mZnNldCA9IGN1cnJlbnRPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50T2Zmc2V0ID4gbWF4T2Zmc2V0KSBtYXhPZmZzZXQgPSBjdXJyZW50T2Zmc2V0OworICAgICAgICAgICAgICAgICAgICBpZiAobGFzdEluZmxlY3Rpb24gPj0gcmVjZW50TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50T2Zmc2V0IDwgbWluUmVjZW50T2Zmc2V0KSBtaW5SZWNlbnRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRPZmZzZXQgPiBtYXhSZWNlbnRPZmZzZXQpIG1heFJlY2VudE9mZnNldCA9IGN1cnJlbnRPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbG9uZyBsb3cgPSBjdXJyZW50RGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZyBoaWdoID0gbGFzdERhdGU7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsb3cgLSBoaWdoID4gRVBTSUxPTikgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtaWQgPSAoaGlnaCArIGxvdykvMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaWRPZmZzZXQgPSB6b25lLmdldE9mZnNldChtaWQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pZE9mZnNldCA9PSBsb3cpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3cgPSBtaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW5mbGVjdGlvblBvaW50cy5hZGQobmV3IExvbmcobG93KSk7CisgICAgICAgICAgICAgICAgICAgIGxhc3RJbmZsZWN0aW9uID0gbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0T2Zmc2V0ID0gY3VycmVudE9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZmxlY3Rpb25Qb2ludHMuYWRkKG5ldyBMb25nKHN0YXJ0RGF0ZSkpOyAvLyBqdXN0IHRvIGNhcCBpdCBvZmYgZm9yIGNvbXBhcmlzb25zLgorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB3ZSBhc3N1bWUgdGhhdCBwbGFjZXMgd2lsbCBub3QgY29udmVydCB0aW1lIHpvbmVzIHRoZW4gYmFjayB3aXRoaW4gb25lIGRheQorICAgICAgICAvLyBzbyB3ZSBnbyBmaXJzdCBieSBoYWxmCisgICAgICAgIHB1YmxpYyBpbnQgZmluZE9mZnNldE9yZGVyaW5nKFpvbmUgb3RoZXIsIFNlY29uZHMgZGF0ZURpZmZGb3VuZCkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIi1kaWZmOiAiICsgaWQgKyAiXHQiICsgb3RoZXIuaWQpOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgICBsb25nIHNlY29uZHMgPSAwOworICAgICAgICAgICAgaW50IG1pbiA9IGluZmxlY3Rpb25Qb2ludHMuc2l6ZSgpOworICAgICAgICAgICAgaWYgKG90aGVyLmluZmxlY3Rpb25Qb2ludHMuc2l6ZSgpIDwgbWluKSBtaW4gPSBvdGhlci5pbmZsZWN0aW9uUG9pbnRzLnNpemUoKTsKKyAgICAgICAgICAgIG1haW46CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtaW47ICsraSkgeworICAgICAgICAgICAgICAgICAgICBsb25nIG15SVAgPSAoKExvbmcpaW5mbGVjdGlvblBvaW50cy5nZXQoaSkpLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBsb25nIG90aGVySVAgPSAoKExvbmcpb3RoZXIuaW5mbGVjdGlvblBvaW50cy5nZXQoaSkpLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAobXlJUCA+IG90aGVySVApIHsgLy8gdGFrZSBsb3dlc3QsIGZvciB0cmFuc2l0aXZpdHkgKHNlbWkpCisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRlbXAgPSBteUlQOworICAgICAgICAgICAgICAgICAgICAgICAgbXlJUCA9IG90aGVySVA7CisgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcklQID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB6b25lLmdldE9mZnNldChteUlQKSAtIG90aGVyLnpvbmUuZ2V0T2Zmc2V0KG15SVApOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSBteUlQOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgaWYgKG15SVAgPT0gb3RoZXJJUCkgY29udGludWU7IC8vIHRlc3Qgb3RoZXIgaWYgZGlmZmVyZW50CisgICAgICAgICAgICAgICAgICAgIG15SVAgPSBvdGhlcklQOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB6b25lLmdldE9mZnNldChteUlQKSAtIG90aGVyLnpvbmUuZ2V0T2Zmc2V0KG15SVApOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSBteUlQOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gaWYgdGhleSBhcmUgZXF1YWwgc28gZmFyLCB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSByZXN0CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgICAgICBzZWNvbmRzID0gTG9uZy5NSU5fVkFMVUU7CisgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIrZGlmZjogIiArIChyZXN1bHQvSE9VUikgKyAiXHQiICsgZGF0ZURpZmZGb3VuZCk7CisgICAgICAgICAgICBpZiAoZGF0ZURpZmZGb3VuZCAhPSBudWxsKSBkYXRlRGlmZkZvdW5kLnNlY29uZHMgPSBzZWNvbmRzOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gaW50ZXJuYWwgYnVmZmVyIHRvIGF2b2lkIGNyZWF0aW9uIGFsbCB0aGUgdGltZS4KKyAgICAgICAgcHJpdmF0ZSBTZWNvbmRzIGRpZmZEYXRlUmV0dXJuID0gbmV3IFNlY29uZHMoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CisgICAgICAgICAgICBab25lIG90aGVyID0gKFpvbmUpbzsKKyAgICAgICAgICAgIC8vIGZpcnN0IG9yZGVyIGJ5IG1heCBhbmQgbWluIG9mZnNldHMKKyAgICAgICAgICAgIC8vIG1pbiB3aWxsIHVzdWFsbHkgY29ycmVzcG9uZCB0byBzdGFuZGFyZCB0aW1lLCBtYXggdG8gZGF5bGlnaHQKKyAgICAgICAgICAgIC8vIHVubGVzcyB0aGVyZSBoYXZlIGJlZW4gaGlzdG9yaWNhbCBzaGlmdHMKKyAgICAgICAgICAgIGlmIChtaW5SZWNlbnRPZmZzZXQgPCBvdGhlci5taW5SZWNlbnRPZmZzZXQpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGlmIChtaW5SZWNlbnRPZmZzZXQgPiBvdGhlci5taW5SZWNlbnRPZmZzZXQpIHJldHVybiAxOworICAgICAgICAgICAgaWYgKG1heFJlY2VudE9mZnNldCA8IG90aGVyLm1heFJlY2VudE9mZnNldCkgcmV0dXJuIC0xOworICAgICAgICAgICAgaWYgKG1heFJlY2VudE9mZnNldCA+IG90aGVyLm1heFJlY2VudE9mZnNldCkgcmV0dXJuIDE7CisgICAgICAgICAgICAvLyBub3cgY2hlY2sgdGhhdCBhbGwgb2Zmc2V0cyBhcmUgdGhlIHNhbWUgb3ZlciBoaXN0b3J5CisgICAgICAgICAgICBpbnQgZGlmZkRhdGUgPSBmaW5kT2Zmc2V0T3JkZXJpbmcob3RoZXIsIGRpZmZEYXRlUmV0dXJuKTsKKyAgICAgICAgICAgIGlmIChkaWZmRGF0ZSAhPSAwKSByZXR1cm4gZGlmZkRhdGU7CisgICAgICAgICAgICAvLyBjaG9vc2UgbG9uZ2VyIG5hbWUgZmlyc3QhIQorICAgICAgICAgICAgaWYgKGlkLmxlbmd0aCgpICE9IG90aGVyLmlkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkLmxlbmd0aCgpIDwgb3RoZXIuaWQubGVuZ3RoKCkpIHJldHVybiAxOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpZC5jb21wYXJlVG8ob3RoZXIuaWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU2V0IGdldFB1cnBvcnRlZEFsaWFzZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRyZWVTZXQocHVycG9ydGVkQWxpYXNlcyk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNQdXJwb3J0ZWRBbGlhcyhTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHJldHVybiBwdXJwb3J0ZWRBbGlhc2VzLmNvbnRhaW5zKGlkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNSZWFsQWxpYXMoWm9uZSB6KSB7CisgICAgICAgICAgICByZXR1cm4gcHVycG9ydGVkQWxpYXNlcy5jb250YWlucyh6LmlkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRQdXJwb3J0ZWRBbGlhc2VzQXNTdHJpbmcoKSB7CisgICAgICAgICAgICBTZXQgcyA9IGdldFB1cnBvcnRlZEFsaWFzZXMoKTsKKyAgICAgICAgICAgIGlmIChzLnNpemUoKSA9PSAwKSByZXR1cm4gIiI7CisgICAgICAgICAgICByZXR1cm4gIiAiICsgYmYuam9pbihzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRSZWFsQWxpYXNlc0FzU3RyaW5nKCkgeworICAgICAgICAgICAgU2V0IHMgPSAoU2V0KWlkVG9SZWFsQWxpYXNlcy5nZXQoaWQpOworICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgcmV0dXJuICIiOworICAgICAgICAgICAgcmV0dXJuICIgKiIgKyBiZi5qb2luKHMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldENpdHkoKSB7CisgICAgICAgICAgICBpbnQgcG9zID0gaWQubGFzdEluZGV4T2YoKCcvJykpOworICAgICAgICAgICAgU3RyaW5nIGNpdHkgPSBpZC5zdWJzdHJpbmcocG9zKzEpOworICAgICAgICAgICAgcmV0dXJuIGNpdHkucmVwbGFjZSgnXycsJyAnKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gdG9TdHJpbmcoLTEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogV2hlcmUgY291bnQgPiAwLCByZXR1cm5zIHN0cmluZyB0aGF0IGlzIHNldCB1cCBmb3IgdHJhbnNsYXRpb24KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoaW50IGNvdW50KSB7CisgICAgICAgICAgICBTdHJpbmcgY2l0eSA9IGdldENpdHkoKTsKKyAgICAgICAgICAgIFN0cmluZyBob3VycyA9IGZvcm1hdEhvdXJzKG1pblJlY2VudE9mZnNldCkKKyAgICAgICAgICAgICAgICArIChtaW5SZWNlbnRPZmZzZXQgIT0gbWF4UmVjZW50T2Zmc2V0IAorICAgICAgICAgICAgICAgICAgICA/ICIsIiArIGZvcm1hdEhvdXJzKG1heFJlY2VudE9mZnNldCkgCisgICAgICAgICAgICAgICAgICAgIDogIiIpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpZCArIGdldFB1cnBvcnRlZEFsaWFzZXNBc1N0cmluZygpICsgIiAoIiArIGhvdXJzICsgIikiOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIC8vIGZvciBnZXR0aW5nIHRlbXBsYXRlIGZvciB0cmFuc2xhdGlvbgorICAgICAgICAgICAgcmV0dXJuICJcdHtcdFwiIiArIGlkICsgIlwiXHQvLyBbIiArIGNvdW50ICsgIl0gIiArIGhvdXJzIAorICAgICAgICAgICAgICAgICsgZ2V0UmVhbEFsaWFzZXNBc1N0cmluZygpICsgIlxyXG4iCisgICAgICAgICAgICAgICAgKyAiXHRcdC8vIHRyYW5zbGF0ZSB0aGUgZm9sbG93aW5nISFcclxuIgorICAgICAgICAgICAgICAgICsgKG1pblJlY2VudE9mZnNldCAhPSBtYXhSZWNlbnRPZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgPyAiXHRcdFwiIiArIGNpdHkgKyAiIFN0YW5kYXJkIFRpbWVcIlxyXG4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0XHRcIiIgKyBjaXR5ICsgIi1TVFwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHRcdFwiIiArIGNpdHkgKyAiIERheWxpZ2h0IFRpbWVcIlxyXG4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0XHRcIiIgKyBjaXR5ICsgIi1EVFwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgOiAiXHRcdFwiXCJcclxuIgorICAgICAgICAgICAgICAgICAgICArICJcdFx0XCJcIlxyXG4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0XHRcIlwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHRcdFwiXCJcclxuIikKKyAgICAgICAgICAgICAgICArICJcdFx0XCIiICsgY2l0eSArICIgVGltZVwiXHJcbiIKKyAgICAgICAgICAgICAgICArICJcdFx0XCIiICsgY2l0eSArICItVFwiXHJcbiIKKyAgICAgICAgICAgICAgICArICJcdFx0XCIiICsgY2l0eSArICJcIlxyXG4iCisgICAgICAgICAgICAgICAgKyAiXHR9IjsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUJvdW5kYXJ5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQm91bmRhcnlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODVhNWEzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUJvdW5kYXJ5VGVzdC5qYXZhCkBAIC0wLDAgKzEsODQ0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCisvKioKKyAqIEEgdGVzdCB3aGljaCBkaXNjb3ZlcnMgdGhlIGJvdW5kYXJpZXMgb2YgRFNUIHByb2dyYW1tYXRpY2FsbHkgYW5kIHZlcmlmaWVzCisgKiB0aGF0IHRoZXkgYXJlIGNvcnJlY3QuCisgKi8KK3B1YmxpYyBjbGFzcyBUaW1lWm9uZUJvdW5kYXJ5VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgc3RhdGljIGZpbmFsIGludCBPTkVfU0VDT05EID0gMTAwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE9ORV9NSU5VVEUgPSA2MCpPTkVfU0VDT05EOworICAgIHN0YXRpYyBmaW5hbCBpbnQgT05FX0hPVVIgPSA2MCpPTkVfTUlOVVRFOworICAgIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9EQVkgPSAyNCpPTkVfSE9VUjsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBPTkVfWUVBUiA9IChsb25nKSgzNjUuMjUgKiBPTkVfREFZKTsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBTSVhfTU9OVEhTID0gT05FX1lFQVIgLyAyOworCisgICAgc3RhdGljIGZpbmFsIGludCBNT05USF9MRU5HVEhbXSA9IHszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMX07CisKKyAgICAvLyBUaGVzZSB2YWx1ZXMgYXJlIGVtcGlyaWNhbGx5IGRldGVybWluZWQgdG8gYmUgY29ycmVjdAorICAgIHN0YXRpYyBmaW5hbCBsb25nIFBTVF8xOTk3X0JFRyAgPSA4NjAzMjA4MDAwMDBMOworICAgIHN0YXRpYyBmaW5hbCBsb25nIFBTVF8xOTk3X0VORCAgPSA4Nzc4NTY0MDAwMDBMOworCisgICAgLy8gTWluaW11bSBpbnRlcnZhbCBmb3IgYmluYXJ5IHNlYXJjaGVzIGluIG1zOyBzaG91bGQgYmUgbm8gbGFyZ2VyCisgICAgLy8gdGhhbiAxMDAwLgorICAgIHN0YXRpYyBmaW5hbCBsb25nIElOVEVSVkFMID0gMTA7IC8vIE1pbGxpc2Vjb25kcworCisgICAgLy8gWzNKYW4wMSBMaXVdIFVwZGF0ZWQgZm9yIDIwMDBmIGRhdGEKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIEFVU1RSQUxJQSA9ICJBdXN0cmFsaWEvQWRlbGFpZGUiOworICAgIHN0YXRpYyBmaW5hbCBsb25nIEFVU1RSQUxJQV8xOTk3X0JFRyA9IDg3Nzc5NzAwMDAwMEw7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgQVVTVFJBTElBXzE5OTdfRU5EID0gODU5NjUzMDAwMDAwTDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lQm91bmRhcnlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoKSBCb3VuZGFyeSBUZXN0CisgICAgICogTG9vayBmb3IgYSBEU1QgY2hhbmdlb3ZlciB0byBvY2N1ciB3aXRoaW4gNiBtb250aHMgb2YgdGhlIGdpdmVuIERhdGUuCisgICAgICogVGhlIGluaXRpYWwgRGF0ZS50b1N0cmluZygpIHNob3VsZCB5aWVsZCBhIHN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAqIHN0YXJ0TW9kZSBhcyBhIFNVQlNUUklORy4gIFRoZSBib3VuZGFyeSB3aWxsIGJlIHRlc3RlZCB0byBiZQorICAgICAqIGF0IHRoZSBleHBlY3RlZEJvdW5kYXJ5IHZhbHVlLgorICAgICAqLworICAgIHZvaWQgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ0RhdGUoRGF0ZSBkLCBTdHJpbmcgc3RhcnRNb2RlLCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgICAgIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKworICAgICAgICBpZiAoZC50b1N0cmluZygpLmluZGV4T2Yoc3RhcnRNb2RlKSA9PSAtMSkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkVycm9yOiAiICsgc3RhcnRNb2RlICsgIiBub3QgcHJlc2VudCBpbiAiICsgZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgICAgICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAgICAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyBtYXggPSBtaW4gKyBTSVhfTU9OVEhTOworCisgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+ICBJTlRFUlZBTCkKKyAgICAgICAgeworICAgICAgICAgICAgbG9uZyBtaWQgPSAobWluICsgbWF4KSA+PiAxOworICAgICAgICAgICAgU3RyaW5nIHMgPSBuZXcgRGF0ZShtaWQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAvLyBsb2dsbihzKTsKKyAgICAgICAgICAgIGlmIChzLmluZGV4T2Yoc3RhcnRNb2RlKSAhPSAtMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtaW4gPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkRhdGUgQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgICAgIGxvZ2xuKCJEYXRlIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworICAgICAgICBsb25nIG1pbmRlbHRhID0gZXhwZWN0ZWRCb3VuZGFyeSAtIG1pbjsKKyAgICAgICAgLy8gbm90IHVzZWQgbG9uZyBtYXhkZWx0YSA9IG1heCAtIGV4cGVjdGVkQm91bmRhcnk7CisgICAgICAgIGlmIChtaW5kZWx0YSA+PSAwICYmIG1pbmRlbHRhIDw9IElOVEVSVkFMICYmCisgICAgICAgICAgICBtaW5kZWx0YSA+PSAwICYmIG1pbmRlbHRhIDw9IElOVEVSVkFMKQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEV4cGVjdGVkIGJvdW5kYXJ5IGF0ICIgKyBleHBlY3RlZEJvdW5kYXJ5KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIGJvdW5kYXJ5IGF0ICIgKyBleHBlY3RlZEJvdW5kYXJ5KTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgY2Fubm90IGJlIGNvbXBpbGVkIHVudGlsIHRoZSBpbkRheWxpZ2h0VGltZSgpIG1ldGhvZCBvZiBHcmVnb3JpYW5DYWxlbmRhcgorICAgIC8vIGJlY29tZXMgcHVibGljLgorICAgIC8vICAgIHN0YXRpYyB2b2lkIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdDYWxlbmRhcihEYXRlIGQsIGJvb2xlYW4gc3RhcnRzSW5EU1QpCisgICAgLy8gICAgeworICAgIC8vICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgLy8gIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKyAgICAvLworICAgIC8vICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAvLyAgY2FsLnNldFRpbWUoZCk7CisgICAgLy8gIGlmIChjYWwuaW5EYXlsaWdodFRpbWUoKSAhPSBzdGFydHNJbkRTVCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9nbG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgZCArICIpICE9ICIgKyBzdGFydHNJbkRTVCk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgIC8vICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAvLyAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAvLyAgbG9uZyBtYXggPSBtaW4gKyAobG9uZykoMzY1LjI1IC8gMiAqIDI0KjYwKjYwKjEwMDApOworICAgIC8vCisgICAgLy8gIHdoaWxlICgobWF4IC0gbWluKSA+ICBJTlRFUlZBTCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9uZyBtaWQgPSAobWluICsgbWF4KSA+PiAxOworICAgIC8vICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlkKSk7CisgICAgLy8gICAgICBpZiAoY2FsLmluRGF5bGlnaHRUaW1lKCkgPT0gc3RhcnRzSW5EU1QpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBtaW4gPSBtaWQ7CisgICAgLy8gICAgICB9CisgICAgLy8gICAgICBlbHNlCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBtYXggPSBtaWQ7CisgICAgLy8gICAgICB9CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBsb2dsbigiQ2FsZW5kYXIgQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgLy8gIGxvZ2xuKCJDYWxlbmRhciBBZnRlcjogICIgKyBzaG93RGF0ZShtYXgpKTsKKyAgICAvLyAgICB9CisKKyAgICB2b2lkIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdUaW1lWm9uZShEYXRlIGQsIGJvb2xlYW4gc3RhcnRzSW5EU1QsIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSkKKyAgICB7CisgICAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdUaW1lWm9uZShkLCBzdGFydHNJbkRTVCwgZXhwZWN0ZWRCb3VuZGFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgdm9pZCBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSwgVGltZVpvbmUgdHopCisgICAgeworICAgICAgICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgICAgIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKworICAgICAgICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgICAgICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAgICAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyBtYXggPSBtaW4gKyBTSVhfTU9OVEhTOworCisgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShkKSAhPSBzdGFydHNJbkRTVCkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0ei5nZXRJRCgpICsgIiBpbkRheWxpZ2h0VGltZSgiICsKKyAgICAgICAgICAgICAgICAgIGQgKyAiKSAhPSAiICsgc3RhcnRzSW5EU1QpOworICAgICAgICAgICAgc3RhcnRzSW5EU1QgPSAhc3RhcnRzSW5EU1Q7IC8vIEZsaXAgb3ZlcjsgZmluZCB0aGUgYXBwYXJlbnQgdmFsdWUKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXgpKSA9PSBzdGFydHNJbkRTVCkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0ei5nZXRJRCgpICsgIiBpbkRheWxpZ2h0VGltZSgiICsKKyAgICAgICAgICAgICAgICAgIChuZXcgRGF0ZShtYXgpKSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNJbiA9IHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1pZCkpOworICAgICAgICAgICAgaWYgKGlzSW4gPT0gc3RhcnRzSW5EU1QpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWluID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1heCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKHR6LmdldElEKCkgKyAiIEJlZm9yZTogIiArIHNob3dEYXRlKG1pbiwgdHopKTsKKyAgICAgICAgbG9nbG4odHouZ2V0SUQoKSArICIgQWZ0ZXI6ICAiICsgc2hvd0RhdGUobWF4LCB0eikpOworCisgICAgICAgIGxvbmcgbWluZGVsdGEgPSBleHBlY3RlZEJvdW5kYXJ5IC0gbWluOworICAgICAgICAvLyBub3QgdXNlZCBsb25nIG1heGRlbHRhID0gbWF4IC0gZXhwZWN0ZWRCb3VuZGFyeTsgCisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HKTsKKyAgICAgICAgZm10LnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgaWYgKG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkgKyAiID0gIiArIGZtdC5mb3JtYXQobmV3IERhdGUoZXhwZWN0ZWRCb3VuZGFyeSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIGJvdW5kYXJ5IGF0ICIgKyBleHBlY3RlZEJvdW5kYXJ5ICsgIiA9ICIgKyBmbXQuZm9ybWF0KG5ldyBEYXRlKGV4cGVjdGVkQm91bmRhcnkpKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dEYXRlKGxvbmcgbCkKKyAgICB7CisgICAgICAgIHJldHVybiBzaG93RGF0ZShuZXcgRGF0ZShsKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dEYXRlKERhdGUgZCkKKyAgICB7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIHJldHVybiAiIiArIChjYWwuZ2V0KENhbGVuZGFyLllFQVIpIC0gMTkwMCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKSArICIgIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSArICI6IiAKKyAgICAgICAgICAgICAgICsgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKyAiIFwiIiArIGQgKyAiXCIgPSAiICsKKyAgICAgICAgICAgICAgIGQuZ2V0VGltZSgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaG93RGF0ZShsb25nIGwsIFRpbWVab25lIHopCisgICAgeworICAgICAgICByZXR1cm4gc2hvd0RhdGUobmV3IERhdGUobCksIHopOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaG93RGF0ZShEYXRlIGQsIFRpbWVab25lIHpvbmUpCisgICAgeworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORyk7CisgICAgICAgIGZtdC5zZXRUaW1lWm9uZSh6b25lKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgcmV0dXJuICIiICsgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgLSAxOTAwKSArICIvIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpICsgIiAiICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpICsgIjoiICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKSArICIgXCIiICsgZCArICJcIiA9ICIgKworICAgICAgICAgICAgICAgZm10LmZvcm1hdChkKSArICIgPSAiICsgZC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dOTihpbnQgbikKKyAgICB7CisgICAgICAgIHJldHVybiAoKG4gPCAxMCkgPyAiMCIgOiAiIikgKyBuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgZGF0ZSwgYSBUaW1lWm9uZSwgYW5kIGV4cGVjdGVkIHZhbHVlcyBmb3IgaW5EYXlsaWdodFRpbWUsCisgICAgICogdXNlRGF5bGlnaHRUaW1lLCB6b25lIGFuZCBEU1Qgb2Zmc2V0LCB2ZXJpZnkgdGhhdCB0aGlzIGlzIHRoZSBjYXNlLgorICAgICAqLworICAgIHZvaWQgdmVyaWZ5RFNUKFN0cmluZyB0YWcsIENhbGVuZGFyIGNhbCwgVGltZVpvbmUgdGltZV96b25lLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXhwVXNlRGF5bGlnaHRUaW1lLCBib29sZWFuIGV4cEluRGF5bGlnaHRUaW1lLAorICAgICAgICAgICAgICAgICAgIGludCBleHBSYXdPZmZzZXQsIGludCBleHBPZmZzZXQpCisgICAgeworICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIGxvZ2xuKCItLSAiICsgdGFnICsgIjogIiArIGQgKworICAgICAgICAgICAgICAiIGluIHpvbmUgIiArIHRpbWVfem9uZS5nZXRJRCgpICsgIiAoIiArCisgICAgICAgICAgICAgIGQuZ2V0VGltZSgpLzM2MDAwMDAuMCArICIpIik7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS5pbkRheWxpZ2h0VGltZShkKSA9PSBleHBJbkRheWxpZ2h0VGltZSkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBpbkRheWxpZ2h0VGltZSA9ICIgKyB0aW1lX3pvbmUuaW5EYXlsaWdodFRpbWUoZCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5EYXlsaWdodFRpbWUgPSAiICsgdGltZV96b25lLmluRGF5bGlnaHRUaW1lKGQpKTsKKworICAgICAgICBpZiAodGltZV96b25lLnVzZURheWxpZ2h0VGltZSgpID09IGV4cFVzZURheWxpZ2h0VGltZSkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiB1c2VEYXlsaWdodFRpbWUgPSAiICsgdGltZV96b25lLnVzZURheWxpZ2h0VGltZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVzZURheWxpZ2h0VGltZSA9ICIgKyB0aW1lX3pvbmUudXNlRGF5bGlnaHRUaW1lKCkpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUuZ2V0UmF3T2Zmc2V0KCkgPT0gZXhwUmF3T2Zmc2V0KQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IGdldFJhd09mZnNldCgpID0gIiArIGV4cFJhd09mZnNldC8oZG91YmxlKU9ORV9IT1VSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFJhd09mZnNldCgpID0gIiArIHRpbWVfem9uZS5nZXRSYXdPZmZzZXQoKS8oZG91YmxlKU9ORV9IT1VSICsKKyAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKyBleHBSYXdPZmZzZXQvKGRvdWJsZSlPTkVfSE9VUik7CisKKyAgICAgICAgLy9HcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0aW1lX3pvbmUpOworICAgICAgICAvL2djLnNldFRpbWUoZCk7CisgICAgICAgIGludCBvZmZzZXQgPSB0aW1lX3pvbmUuZ2V0T2Zmc2V0KGNhbC5nZXQoQ2FsZW5kYXIuRVJBKSwgY2FsLmdldChDYWxlbmRhci5ZRUFSKSwgY2FsLmdldChDYWxlbmRhci5NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSwgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKSAqIDYwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSkgKiAxMDAwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICAgICAgICBpZiAob2Zmc2V0ID09IGV4cE9mZnNldCkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBnZXRPZmZzZXQoKSA9ICIgKyBvZmZzZXQvKGRvdWJsZSlPTkVfSE9VUik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG9nbG4oImVyYT0iICsgY2FsLmdldChDYWxlbmRhci5FUkEpICsKKyAgICAgICAgICAgICAgICAgICIsIHllYXI9IiArIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKworICAgICAgICAgICAgICAgICAgIiwgbW9udGg9IiArIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsKKyAgICAgICAgICAgICAgICAgICIsIGRvbT0iICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICsKKyAgICAgICAgICAgICAgICAgICIsIGRvdz0iICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykgKworICAgICAgICAgICAgICAgICAgIiwgdGltZS1vZi1kYXk9IiArICgoKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogNjAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkpICogMTAwMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKSAvIDM2MDAwMDAuMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBob3VycyIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE9mZnNldCgpID0gIiArIG9mZnNldC8oZG91YmxlKU9ORV9IT1VSICsKKyAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKyBleHBPZmZzZXQvKGRvdWJsZSlPTkVfSE9VUik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB0aGF0IHRoZSBnaXZlbiB5ZWFyL21vbnRoL2RvbS9ob3VyIG1hcHMgdG8gYW5kIGZyb20gdGhlCisgICAgICogZ2l2ZW4gZXBvY2hIb3Vycy4gIFRoaXMgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uaW5nIG9mIHRoZQorICAgICAqIGNhbGVuZGFyIGFuZCB0aW1lIHpvbmUgaW4gY29uanVuY3Rpb24gd2l0aCBvbmUgYW5vdGhlciwKKyAgICAgKiBpbmNsdWRpbmcgdGhlIGNhbGVuZGFyIHRpbWUtPmZpZWxkcyBhbmQgZmllbGRzLT50aW1lIGFuZAorICAgICAqIHRoZSB0aW1lIHpvbmUgZ2V0T2Zmc2V0IG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlcG9jaEhvdXJzIGhvdXJzIGFmdGVyIEphbiAxIDE5NzAgMDowMCBHTVQuCisgICAgICovCisgICAgdm9pZCB2ZXJpZnlNYXBwaW5nKENhbGVuZGFyIGNhbCwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRvbSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBlcG9jaEhvdXJzKSB7CisgICAgICAgIGRvdWJsZSBIID0gMzYwMDAwMC4wOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZG9tLCBob3VyLCAwLCAwKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgZG91YmxlIGUgPSBkLmdldFRpbWUoKSAvIEg7CisgICAgICAgIERhdGUgZWQgPSBuZXcgRGF0ZSgobG9uZykoZXBvY2hIb3VycyAqIEgpKTsKKyAgICAgICAgaWYgKGUgPT0gZXBvY2hIb3VycykgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRvbSArICIgIiArIGhvdXIgKyAiOjAwID0+ICIgKworICAgICAgICAgICAgICAgICAgZSArICIgKCIgKyBlZCArICIpIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkb20gKyAiICIgKyBob3VyICsgIjowMCA9PiAiICsKKyAgICAgICAgICAgICAgICAgIGUgKyAiICgiICsgbmV3IERhdGUoKGxvbmcpKGUgKiBIKSkgKyAiKSIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSIpOworICAgICAgICB9CisgICAgICAgIGNhbC5zZXRUaW1lKGVkKTsKKyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgPT0geWVhciAmJgorICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCkgPT0gbW9udGggJiYKKyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgPT0gZG9tICYmCisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EU19JTl9EQVkpID09IGhvdXIgKiAzNjAwMDAwKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBlcG9jaEhvdXJzICsgIiAoIiArIGVkICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkRTX0lOX0RBWSkvSCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKyAiICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORFNfSU5fREFZKS9IICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZG9tICsKKyAgICAgICAgICAgICAgICAgICIgIiArIGhvdXIpOworICAgICAgICB9CisgICAgfQorCisvLyBOT1RFOiBFbmFibGUgdGhpcyBjb2RlIHRvIGNoZWNrIHRoZSBiZWhhdmlvciBvZiB0aGUgdW5kZXJseWluZyBKREssCisvLyB1c2luZyBhIEpESyBDYWxlbmRhciBvYmplY3QuCisvLworLy8gICAgaW50IG1pbGxpc0luRGF5KGphdmEudXRpbC5DYWxlbmRhciBjYWwpIHsKKy8vICAgICAgICByZXR1cm4gKChjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDYwICsKKy8vICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkpICogNjAgKworLy8gICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpKSAqIDEwMDAgKworLy8gICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKTsKKy8vICAgIH0KKy8vCisvLyAgICB2b2lkIHZlcmlmeU1hcHBpbmcoamF2YS51dGlsLkNhbGVuZGFyIGNhbCwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRvbSwgaW50IGhvdXIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGVwb2NoSG91cnMpIHsKKy8vICAgICAgICBjYWwuY2xlYXIoKTsKKy8vICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkb20sIGhvdXIsIDAsIDApOworLy8gICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisvLyAgICAgICAgZG91YmxlIGUgPSBkLmdldFRpbWUoKSAvIDM2MDAwMDAuMDsKKy8vICAgICAgICBEYXRlIGVkID0gbmV3IERhdGUoKGxvbmcpKGVwb2NoSG91cnMgKiAzNjAwMDAwKSk7CisvLyAgICAgICAgaWYgKGUgPT0gZXBvY2hIb3VycykgeworLy8gICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZG9tICsgIiAiICsgaG91ciArICI6MDAgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgIGUgKyAiICgiICsgZWQgKyAiKSIpOworLy8gICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRvbSArICIgIiArIGhvdXIgKyAiOjAwID0+ICIgKworLy8gICAgICAgICAgICAgICAgICBlICsgIiAoIiArIG5ldyBEYXRlKChsb25nKShlICogMzYwMDAwMCkpICsgIikiICsKKy8vICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSIpOworLy8gICAgICAgIH0KKy8vICAgICAgICBjYWwuc2V0VGltZShlZCk7CisvLyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgPT0geWVhciAmJgorLy8gICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSA9PSBtb250aCAmJgorLy8gICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpID09IGRvbSAmJgorLy8gICAgICAgICAgICBtaWxsaXNJbkRheShjYWwpID09IGhvdXIgKiAzNjAwMDAwKSB7CisvLyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisvLyAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArCisvLyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKyAiICIgKworLy8gICAgICAgICAgICAgICAgICBtaWxsaXNJbkRheShjYWwpLzM2MDAwMDAuMCk7CisvLyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBlcG9jaEhvdXJzICsgIiAoIiArIGVkICsgIikgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworLy8gICAgICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKworLy8gICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsgIiAiICsKKy8vICAgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkoY2FsKS8zNjAwMDAwLjAgKworLy8gICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRvbSArCisvLyAgICAgICAgICAgICAgICAgICIgIiArIGhvdXIpOworLy8gICAgICAgIH0KKy8vICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCb3VuZGFyaWVzKCkKKyAgICB7CisgICAgICAgIFRpbWVab25lIHNhdmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisKKyAgICAgICAgLy8gQ2hlY2sgYmFzaWMgbWFwcGluZ3MuICBXZSBoYWQgYSBwcm9ibGVtIHdpdGggdGhpcyBmb3IgSUNVCisgICAgICAgIC8vIDIuOCBhZnRlciBtaWdyYXRpbmcgdG8gdXNpbmcgcGFzcy10aHJvdWdoIHRpbWUgem9uZXMuICBUaGUKKyAgICAgICAgLy8gcHJvYmxlbSBhcHBlYXJlZCBvbmx5IG9uIEpESyAxLjMuCisgICAgICAgIFRpbWVab25lIHBzdCA9IHNhZmVHZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIENhbGVuZGFyIHRlbXBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShwc3QpOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCAzLCAgMCwgMjM4OTA0LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA0LCAgMCwgMjM4OTI4LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA1LCAgMCwgMjM4OTUyLjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA1LCAyMywgMjM4OTc1LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMCwgMjM4OTc2LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMSwgMjM4OTc3LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMywgMjM4OTc4LjApOworICAgICAgICAKKyAgICAgICAgVGltZVpvbmUgdXRjID0gc2FmZUdldFRpbWVab25lKCJVVEMiKTsKKyAgICAgICAgQ2FsZW5kYXIgdXRjY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodXRjKTsKKyAgICAgICAgdmVyaWZ5TWFwcGluZyh1dGNjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAwLCAyMzg5NjguMCk7CisKKy8vIE5PVEU6IEVuYWJsZSB0aGlzIGNvZGUgdG8gY2hlY2sgdGhlIGJlaGF2aW9yIG9mIHRoZSB1bmRlcmx5aW5nIEpESywKKy8vIHVzaW5nIGEgSkRLIENhbGVuZGFyIG9iamVjdC4KKy8vCisvLyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka3BzdCA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisvLyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGpka2NhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShqZGtwc3QpOworLy8gICAgICAgIHZlcmlmeU1hcHBpbmcoamRrY2FsLCAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNSwgIDAsIDIzODk1Mi4wKTsKKy8vICAgICAgICB2ZXJpZnlNYXBwaW5nKGpka2NhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDUsIDIzLCAyMzg5NzUuMCk7CisvLyAgICAgICAgdmVyaWZ5TWFwcGluZyhqZGtjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMCwgMjM4OTc2LjApOworLy8gICAgICAgIHZlcmlmeU1hcHBpbmcoamRrY2FsLCAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNiwgIDEsIDIzODk3Ny4wKTsKKy8vICAgICAgICB2ZXJpZnlNYXBwaW5nKGpka2NhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsICAzLCAyMzg5NzguMCk7CisKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5BUFJJTCwgNik7CisgICAgICAgIERhdGUgZCA9IHRlbXBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHBzdCk7CisKKyAgICAgICAgICAgIC8vIERTVCBjaGFuZ2VvdmVyIGZvciBQU1QgaXMgNC82LzE5OTcgYXQgMiBob3VycyBwYXN0IG1pZG5pZ2h0CisgICAgICAgICAgICAvLyBhdCAyMzg5NzguMCBlcG9jaCBob3Vycy4KKworICAgICAgICAgICAgLy8gaSBpcyBtaW51dGVzIHBhc3QgbWlkbmlnaHQgc3RhbmRhcmQgdGltZQorICAgICAgICAgICAgZm9yIChpbnQgaT0tMTIwOyBpPD0xODA7IGkrPTYwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5EU1QgPSAoaSA+PSAxMjApOworICAgICAgICAgICAgICAgIHRlbXBjYWwuc2V0VGltZUluTWlsbGlzKGQuZ2V0VGltZSgpICsgaSo2MCoxMDAwKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlEU1QoImhvdXI9IiArIGkvNjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBjYWwsIHBzdCwgdHJ1ZSwgaW5EU1QsIC04Kk9ORV9IT1VSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbkRTVCA/IC03Kk9ORV9IT1VSIDogLTgqT05FX0hPVVIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cnVlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIG9ubHkgd29ya3MgaW4gUFNUL1BEVAorICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYWZlR2V0VGltZVpvbmUoIlBTVCIpKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAwLCAxKTsKKyAgICAgICAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdEYXRlKHRlbXBjYWwuZ2V0VGltZSgpLCAiUFNUIiwgUFNUXzE5OTdfQkVHKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCA2LCAxKTsKKyAgICAgICAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdEYXRlKHRlbXBjYWwuZ2V0VGltZSgpLCAiUERUIiwgUFNUXzE5OTdfRU5EKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vICBpZiAodHJ1ZSkKKyAgICAgICAgLy8gIHsKKyAgICAgICAgLy8gICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAvLyAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdDYWxlbmRhcihuZXcgRGF0ZSg5NywwLDEpLCBmYWxzZSk7CisgICAgICAgIC8vICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgLy8gICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nQ2FsZW5kYXIobmV3IERhdGUoOTcsNiwxKSwgdHJ1ZSk7CisgICAgICAgIC8vICB9CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFNvdXRoZXJuIGhlbWlzcGhlcmUgdGVzdAorICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIFRpbWVab25lIHogPSBzYWZlR2V0VGltZVpvbmUoQVVTVFJBTElBKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDAsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCB0cnVlLCBBVVNUUkFMSUFfMTk5N19FTkQsIHopOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCBmYWxzZSwgQVVTVFJBTElBXzE5OTdfQkVHLCB6KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cnVlKQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUodGVtcGNhbC5nZXRUaW1lKCksIGZhbHNlLCBQU1RfMTk5N19CRUcpOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCB0cnVlLCBQU1RfMTk5N19FTkQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBqdXN0IHNob3dzIHRoZSBvZmZzZXQgZm9yIEFwcmlsIDQtNyBpbiAxOTk3LiAgVGhpcyBpcyByZWR1bmRhbnQKKyAgICAgICAgLy8gd2l0aCBhIHRlc3QgYWJvdmUsIHNvIHdlIGRpc2FibGUgaXQuCisgICAgICAgIGlmIChmYWxzZSkKKyAgICAgICAgeworICAgICAgICAgICAgVGltZVpvbmUgeiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDMsIDQpOworICAgICAgICAgICAgbG9nbG4oei5nZXRPZmZzZXQoMSwgOTcsIDMsIDQsIDYsIDApICsgIiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMywgNSk7CisgICAgICAgICAgICBsb2dsbih6LmdldE9mZnNldCgxLCA5NywgMywgNSwgNywgMCkgKyAiICIgKyB0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAzLCA2KTsKKyAgICAgICAgICAgIGxvZ2xuKHouZ2V0T2Zmc2V0KDEsIDk3LCAzLCA2LCAxLCAwKSArICIgIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDMsIDcpOworICAgICAgICAgICAgbG9nbG4oei5nZXRPZmZzZXQoMSwgOTcsIDMsIDcsIDIsIDApICsgIiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYW4ndCBkbyBhbnkgb2YgdGhlc2Ugd2l0aG91dCBhIHB1YmxpYyBpbkRheWxpZ2h0VGltZSBpbiBHQworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKKyAgICAvLyAgICBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgLy8KKyAgICAvLyAgICBzdGF0aWMgdm9pZCBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAvLyAgICB7CisgICAgLy8gIC8vIEdpdmVuIGEgZGF0ZSB3aXRoIGEgeWVhciBzdGFydCwgZmluZCB0aGUgRGF5bGlnaHQgb25zZXQKKyAgICAvLyAgLy8gYW5kIGVuZC4gIFRoZSBnaXZlbiBkYXRlIHNob3VsZCBiZSAxLzEveHggaW4gc29tZSB5ZWFyLgorICAgIC8vCisgICAgLy8gIC8vIFVzZSBhIGJpbmFyeSBzZWFyY2gsIGFzc3VtaW5nIHRoYXQgd2UgaGF2ZSBhIFN0YW5kYXJkCisgICAgLy8gIC8vIHRpbWUgYXQgdGhlIG1pZHBvaW50LgorICAgIC8vICBsb25nIG1pbiA9IGQuZ2V0VGltZSgpOworICAgIC8vICBsb25nIG1heCA9IG1pbiArIChsb25nKSgzNjUuMjUgLyAyICogT05FX0RBWSk7CisgICAgLy8KKyAgICAvLyAgLy8gRmlyc3QgY2hlY2sgdGhlIG1heAorICAgIC8vICBjYWwuc2V0VGltZShuZXcgRGF0ZShtYXgpKTsKKyAgICAvLyAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpID09IHN0YXJ0c0luRFNUKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiRXJyb3I6IGluRGF5bGlnaHRUaW1lKCIgKyAobmV3IERhdGUobWF4KSkgKyAiKSAhPSAiICsgKCFzdGFydHNJbkRTVCkpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgY2FsLnNldFRpbWUoZCk7CisgICAgLy8gIGlmIChjYWwuaW5EYXlsaWdodFRpbWUoKSAhPSBzdGFydHNJbkRTVCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9nbG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgZCArICIpICE9ICIgKyBzdGFydHNJbkRTVCk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAvLyAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pZCkpOworICAgIC8vICAgICAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpID09IHN0YXJ0c0luRFNUKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWluID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICAgICAgZWxzZQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWF4ID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgLy8gIGxvZ2xuKCJCaW5hcnkgU2VhcmNoIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworICAgIC8vICAgIH0KKyAgICAvLworICAgIC8vICAgIHN0YXRpYyB2b2lkIF90ZXN0VXNpbmdNaWxsaXMoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNUKQorICAgIC8vICAgIHsKKyAgICAvLyAgbG9uZyBtaWxsaXMgPSBkLmdldFRpbWUoKTsKKyAgICAvLyAgbG9uZyBtYXggPSBtaWxsaXMgKyAobG9uZykoMzcwICogT05FX0RBWSk7IC8vIEEgeWVhciBwbHVzIGV4dHJhCisgICAgLy8KKyAgICAvLyAgYm9vbGVhbiBsYXN0RFNUID0gc3RhcnRzSW5EU1Q7CisgICAgLy8gIHdoaWxlIChtaWxsaXMgPCBtYXgpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgIC8vICAgICAgYm9vbGVhbiBpbkRheWxpZ2h0ID0gY2FsLmluRGF5bGlnaHRUaW1lKCk7CisgICAgLy8KKyAgICAvLyAgICAgIGlmIChpbkRheWxpZ2h0ICE9IGxhc3REU1QpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBsb2dsbigiU3dpdGNoICIgKyAoaW5EYXlsaWdodCA/ICJpbnRvIiA6ICJvdXQgb2YiKQorICAgIC8vICAgICAgICAgICAgICAgICArICIgRFNUIGF0ICIgKyAobmV3IERhdGUobWlsbGlzKSkpOworICAgIC8vICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgLy8gICAgICB9CisgICAgLy8KKyAgICAvLyAgICAgIG1pbGxpcyArPSAxNSpPTkVfTUlOVVRFOworICAgIC8vICB9CisgICAgLy8gICAgfQorICAgIC8vCisgICAgLy8gICAgc3RhdGljIHZvaWQgX3Rlc3RVc2luZ0ZpZWxkcyhpbnQgeSwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAvLyAgICB7CisgICAgLy8gIGJvb2xlYW4gbGFzdERTVCA9IHN0YXJ0c0luRFNUOworICAgIC8vICBmb3IgKGludCBtID0gMDsgbSA8IDEyOyArK20pCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGZvciAoaW50IGQgPSAxOyBkIDw9IE1PTlRIX0xFTkdUSFttXTsgKytkKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgZm9yIChpbnQgaCA9IDA7IGggPCAyNDsgKytoKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgICAgIGZvciAoaW50IG1pbiA9IDA7IG1pbiA8IDYwOyBtaW4gKz0gMTUpCisgICAgLy8gICAgICAgICAgeworICAgIC8vICAgICAgICAgIGNhbC5jbGVhcigpOworICAgIC8vICAgICAgICAgIGNhbC5zZXQoeSwgbSwgZCwgaCwgbWluKTsKKyAgICAvLyAgICAgICAgICBib29sZWFuIGluRGF5bGlnaHQgPSBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAvLyAgICAgICAgICBpZiAoaW5EYXlsaWdodCAhPSBsYXN0RFNUKQorICAgIC8vICAgICAgICAgIHsKKyAgICAvLyAgICAgICAgICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgLy8gICAgICAgICAgICAgIGxvZygiU3dpdGNoICIgKyAobGFzdERTVCA/ICJpbnRvIiA6ICJvdXQgb2YiKQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICArICIgRFNUIGF0ICIgKyB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgc2hvd05OKGgpICsgIjoiICsgc2hvd05OKG1pbikpOworICAgIC8vICAgICAgICAgICAgICBsb2dsbigiICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLworICAgIC8vICAgICAgICAgICAgICBjYWwuc2V0KHksIG0sIGQsIGgtMSwgNDUpOworICAgIC8vICAgICAgICAgICAgICBsb2coIkJlZm9yZSA9ICIKKyAgICAvLysgeSArICIvIiArIChtKzEpICsgIi8iICsgZAorICAgIC8vKyAiICIgKyBzaG93Tk4oaC0xKSArICI6IiArIHNob3dOTig0NSkpOworICAgIC8vICAgICAgICAgICAgICBsb2dsbigiICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLyAgICAgICAgICB9CisgICAgLy8gICAgICAgICAgfQorICAgIC8vICAgICAgfQorICAgIC8vICAgICAgfQorICAgIC8vICB9CisgICAgLy8gICAgfQorICAgIC8vCisgICAgLy8gICAgcHVibGljIHZvaWQgVGVzdDEoKQorICAgIC8vICAgIHsKKyAgICAvLyAgbG9nbG4oTG9jYWxlLmdldERlZmF1bHQoKS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAvLyAgbG9nbG4oVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCkpOworICAgIC8vICBsb2dsbihuZXcgRGF0ZSgwKSk7CisgICAgLy8KKyAgICAvLyAgaWYgKHRydWUpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKG5ldyBEYXRlKDk3LDYsMSksIHRydWUpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgaWYgKHRydWUpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBsb2dsbigiU3RlcHBpbmcgdXNpbmcgbWlsbGlzIik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nTWlsbGlzKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAvLyAgfQorICAgIC8vCisgICAgLy8gIGlmICh0cnVlKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgIC8vICAgICAgbG9nbG4oIlN0ZXBwaW5nIHVzaW5nIGZpZWxkcyIpOworICAgIC8vICAgICAgX3Rlc3RVc2luZ0ZpZWxkcygxOTk3LCBmYWxzZSk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBpZiAoZmFsc2UpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGNhbC5jbGVhcigpOworICAgIC8vICAgICAgY2FsLnNldCgxOTk3LCAzLCA1LCAxMCwgMCk7CisgICAgLy8gICAgICAvLyAgY2FsLmluRGF5bGlnaHRUaW1lKCk7CisgICAgLy8gICAgICBsb2dsbigiRGF0ZSA9ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLyAgICAgIGxvZ2xuKCJNaWxsaXMgPSAiICsgY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkvMzYwMDAwMCk7CisgICAgLy8gIH0KKyAgICAvLyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHZvaWQgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaChTaW1wbGVUaW1lWm9uZSB0eiwgRGF0ZSBkLCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgICAgIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKworICAgICAgICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgICAgICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAgICAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyBtYXggPSBtaW4gKyAobG9uZykoMzY1LjI1IC8gMiAqIE9ORV9EQVkpOworCisgICAgICAgIC8vIEZpcnN0IGNoZWNrIHRoZSBib3VuZGFyaWVzCisgICAgICAgIGJvb2xlYW4gc3RhcnRzSW5EU1QgPSB0ei5pbkRheWxpZ2h0VGltZShkKTsKKworICAgICAgICBpZiAodHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWF4KSkgPT0gc3RhcnRzSW5EU1QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogaW5EYXlsaWdodFRpbWUoIiArIChuZXcgRGF0ZShtYXgpKSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtaWQpKSA9PSBzdGFydHNJbkRTVCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtaW4gPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgICAgIGxvZ2xuKCJCaW5hcnkgU2VhcmNoIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworCisgICAgICAgIGxvbmcgbWluZGVsdGEgPSBleHBlY3RlZEJvdW5kYXJ5IC0gbWluOworICAgICAgICAvLyBub3QgdXNlZCBsb25nIG1heGRlbHRhID0gbWF4IC0gZXhwZWN0ZWRCb3VuZGFyeTsKKyAgICAgICAgaWYgKG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgIH0KKworICAgIC8qCisgICAgICBzdGF0aWMgdm9pZCBfdGVzdFVzaW5nTWlsbGlzKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAgIHsKKyAgICAgIGxvbmcgbWlsbGlzID0gZC5nZXRUaW1lKCk7CisgICAgICBsb25nIG1heCA9IG1pbGxpcyArIChsb25nKSgzNzAgKiBPTkVfREFZKTsgLy8gQSB5ZWFyIHBsdXMgZXh0cmEKKworICAgICAgYm9vbGVhbiBsYXN0RFNUID0gc3RhcnRzSW5EU1Q7CisgICAgICB3aGlsZSAobWlsbGlzIDwgbWF4KQorICAgICAgeworICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgICBib29sZWFuIGluRGF5bGlnaHQgPSBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKworICAgICAgaWYgKGluRGF5bGlnaHQgIT0gbGFzdERTVCkKKyAgICAgIHsKKyAgICAgIGxvZ2xuKCJTd2l0Y2ggIiArIChpbkRheWxpZ2h0ID8gImludG8iIDogIm91dCBvZiIpCisgICAgICArICIgRFNUIGF0ICIgKyAobmV3IERhdGUobWlsbGlzKSkpOworICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgICB9CisKKyAgICAgIG1pbGxpcyArPSAxNSpPTkVfTUlOVVRFOworICAgICAgfQorICAgICAgfQorICAgICAgKi8KKworICAgIC8qKgorICAgICAqIFRlc3QgbmV3IHJ1bGUgZm9ybWF0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV3UnVsZXMoKQorICAgIHsKKyAgICAgICAgLy9sb2dsbihMb2NhbGUuZ2V0RGVmYXVsdCgpLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAvL2xvZ2xuKFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpKTsKKyAgICAgICAgLy9sb2dsbihuZXcgRGF0ZSgwKSk7CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERvZXNuJ3QgbWF0dGVyIHdoYXQgdGhlIGRlZmF1bHQgVGltZVpvbmUgaXMgaGVyZSwgc2luY2Ugd2UKKyAgICAgICAgICAgIC8vIGFyZSBjcmVhdGluZyBvdXIgb3duIFRpbWVab25lIG9iamVjdHMuCisKKyAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHR6OworICAgICAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKworICAgICAgICAgICAgbG9nbG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsb2dsbigiQXVnIDJuZFR1ZXMgLi4gTWFyIDE1Iik7CisgICAgICAgICAgICB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCpPTkVfSE9VUiwgIlRlc3RfMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5BVUdVU1QsIDIsIENhbGVuZGFyLlRVRVNEQVksIDIqT05FX0hPVVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NQVJDSCwgMTUsIDAsIDIqT05FX0hPVVIpOworICAgICAgICAgICAgLy9sb2dsbih0ei50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAwLCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NTg0MTY0MDAwMDBMKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCA2LCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NzEzODAwMDAwMDBMKTsKKworICAgICAgICAgICAgbG9nbG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsb2dsbigiQXByIFdlZD49MTQgLi4gU2VwIFN1bjw9MjAiKTsKKyAgICAgICAgICAgIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKC04Kk9ORV9IT1VSLCAiVGVzdF8yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkFQUklMLCAxNCwgLUNhbGVuZGFyLldFRE5FU0RBWSwgMipPTkVfSE9VUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNFUFRFTUJFUiwgLTIwLCAtQ2FsZW5kYXIuU1VOREFZLCAyKk9ORV9IT1VSKTsKKyAgICAgICAgICAgIC8vbG9nbG4odHoudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHR6LCB0ZW1wY2FsLmdldFRpbWUoKSwgODYxMTg0ODAwMDAwTCk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgNiwgMSk7CisgICAgICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHR6LCB0ZW1wY2FsLmdldFRpbWUoKSwgODc0MjI3NjAwMDAwTCk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgIGlmICh0cnVlKQorICAgICAgICAgIHsKKyAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgIGxvZ2xuKCJTdGVwcGluZyB1c2luZyBtaWxsaXMiKTsKKyAgICAgICAgICBfdGVzdFVzaW5nTWlsbGlzKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAodHJ1ZSkKKyAgICAgICAgICB7CisgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICBsb2dsbigiU3RlcHBpbmcgdXNpbmcgZmllbGRzIik7CisgICAgICAgICAgX3Rlc3RVc2luZ0ZpZWxkcygxOTk3LCBmYWxzZSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKGZhbHNlKQorICAgICAgICAgIHsKKyAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICBjYWwuc2V0KDE5OTcsIDMsIDUsIDEwLCAwKTsKKyAgICAgICAgICAvLyAgICBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAgICAgICBsb2dsbigiRGF0ZSA9ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICBsb2dsbigiTWlsbGlzID0gIiArIGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpLzM2MDAwMDApOworICAgICAgICAgIH0KKyAgICAgICAgICAqLworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIExvbmcgQnVnCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvL3B1YmxpYyB2b2lkIFRlc3QzKCkKKyAgICAvL3sKKyAgICAvLyAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUobmV3IERhdGUoOTcsNiwxKSwgdHJ1ZSk7CisgICAgLy99CisKKyAgICAvKioKKyAgICAgKiBGaW5kIGJvdW5kYXJpZXMgYnkgc3RlcHBpbmcuCisgICAgICovCisgICAgdm9pZCBmaW5kQm91bmRhcmllc1N0ZXB3aXNlKGludCB5ZWFyLCBsb25nIGludGVydmFsLCBUaW1lWm9uZSB6LCBpbnQgZXhwZWN0ZWRDaGFuZ2VzKQorICAgIHsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCh5ZWFyLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgRGF0ZSBkID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvbmcgdGltZSA9IGQuZ2V0VGltZSgpOyAvLyBtcworICAgICAgICBsb25nIGxpbWl0ID0gdGltZSArIE9ORV9ZRUFSICsgT05FX0RBWTsKKyAgICAgICAgYm9vbGVhbiBsYXN0U3RhdGUgPSB6LmluRGF5bGlnaHRUaW1lKGQpOworICAgICAgICBpbnQgY2hhbmdlcyA9IDA7CisgICAgICAgIGxvZ2xuKCItLSBab25lICIgKyB6LmdldElEKCkgKyAiIHN0YXJ0cyBpbiAiICsgeWVhciArICIgd2l0aCBEU1QgPSAiICsgbGFzdFN0YXRlKTsKKyAgICAgICAgbG9nbG4oInVzZURheWxpZ2h0VGltZSA9ICIgKyB6LnVzZURheWxpZ2h0VGltZSgpKTsKKyAgICAgICAgd2hpbGUgKHRpbWUgPCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgZC5zZXRUaW1lKHRpbWUpOworICAgICAgICAgICAgYm9vbGVhbiBzdGF0ZSA9IHouaW5EYXlsaWdodFRpbWUoZCk7CisgICAgICAgICAgICBpZiAoc3RhdGUgIT0gbGFzdFN0YXRlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxvZ2xuKChzdGF0ZSA/ICJFbnRyeSAiIDogIkV4aXQgIikgKworICAgICAgICAgICAgICAgICAgICAgICJhdCAiICsgZCk7CisgICAgICAgICAgICAgICAgbGFzdFN0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAgKytjaGFuZ2VzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGltZSArPSBpbnRlcnZhbDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2hhbmdlcyA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWxhc3RTdGF0ZSAmJiAhei51c2VEYXlsaWdodFRpbWUoKSkgbG9nbG4oIk5vIERTVCIpOworICAgICAgICAgICAgZWxzZSBlcnJsbigiRkFJTDogRFNUIGFsbCB5ZWFyLCBvciBubyBEU1Qgd2l0aCB0cnVlIHVzZURheWxpZ2h0VGltZSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGNoYW5nZXMgIT0gMikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBjaGFuZ2VzICsgIiBjaGFuZ2VzIHNlZW47IHNob3VsZCBzZWUgMCBvciAyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXoudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgZmFsc2UgYnV0IDIgY2hhbmdlcyBzZWVuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoYW5nZXMgIT0gZXhwZWN0ZWRDaGFuZ2VzKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGNoYW5nZXMgKyAiIGNoYW5nZXMgc2VlbjsgZXhwZWN0ZWQgIiArIGV4cGVjdGVkQ2hhbmdlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RlcHdpc2UoKQorICAgIHsKKyAgICAgICAgZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBzYWZlR2V0VGltZVpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKSwgMik7CisgICAgICAgIC8vIGRpc2FibGVkIE9jdCAyMDAzIGFsaXU7IEFDVCBjb3VsZCBtZWFuIGFueXRoaW5nLCBkZXBlbmRpbmcgb24gdGhlIHVuZGVybHlpbmcgSkRLLCBhcyBvZiAyLjgKKyAgICAgICAgLy8gZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBzYWZlR2V0VGltZVpvbmUoIkFDVCIpLCAyKTsKKyAgICAgICAgZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBzYWZlR2V0VGltZVpvbmUoIkFtZXJpY2EvUGhvZW5peCIpLCAwKTsgLy8gQWRkZWQgM0phbjAxCisgICAgICAgIGZpbmRCb3VuZGFyaWVzU3RlcHdpc2UoMTk5NywgT05FX0RBWSwgc2FmZUdldFRpbWVab25lKEFVU1RSQUxJQSksIDIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVJlZ3Jlc3Npb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjhhZjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lUmVncmVzc2lvbi5qYXZhCkBAIC0wLDAgKzEsMTA1MyBAQAorLy8jI2hlYWRlcgorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogQHRlc3QgMS4xOCA5OS8wOS8yMQorICogQGJ1ZyA0MDUyOTY3IDQwNzMyMDkgNDA3MzIxNSA0MDg0OTMzIDQwOTY5NTIgNDEwOTMxNCA0MTI2Njc4IDQxNTE0MDYgNDE1MTQyOQorICogQGJ1ZyA0MTU0NTI1IDQxNTQ1MzcgNDE1NDU0MiA0MTU0NjUwIDQxNTk5MjIgNDE2MjU5MyA0MTczNjA0IDQxNzY2ODYgNDE4NDIyOSA0MjA4OTYwCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUaW1lWm9uZVJlZ3Jlc3Npb24gZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lUmVncmVzc2lvbigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1Mjk2NygpIHsKKyAgICAgICAgbG9nbG4oIioqKiBDSEVDSyBUSU1FWk9ORSBBR0FJTlNUIEhPU1QgT1MgU0VUVElORyAqKioiKTsKKyAgICAgICAgU3RyaW5nIGlkID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyB1c2VyLnRpbWV6b25lIGlzIGEgcHJvdGVjdGVkIHN5c3RlbSBwcm9wZXJ0eQorICAgICAgICAgICAgbG9nbG4oInVzZXIudGltZXpvbmU6ICIgKyBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIudGltZXpvbmUiLCAiPG5vdCBzZXQ+IikpOworICAgICAgICAgICAgbG9nbG4oIlRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpOiAiICsgaWQpOworICAgICAgICAgICAgbG9nbG4obmV3IERhdGUoKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKiogVEhFIFJFU1VMVFMgT0YgVEhJUyBURVNUIE1VU1QgQkUgVkVSSUZJRUQgTUFOVUFMTFkgKioqIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigic2VjdXJpdHkgZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDczMjA5KCkgeworICAgICAgICBUaW1lWm9uZSB6MSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgVGltZVpvbmUgejIgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGlmICh6MSA9PSB6MikgZXJybG4oIkZhaWw6IFRpbWVab25lIHNob3VsZCByZXR1cm4gY2xvbmVzIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzMyMTUoKSB7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkdNVCIpOworICAgICAgICBpZiAoei51c2VEYXlsaWdodFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBGaXggdGVzdCB0byBzdGFydCB3aXRoIG5vbi1EU1Qgem9uZSIpOworICAgICAgICB6LnNldFN0YXJ0UnVsZShDYWxlbmRhci5GRUJSVUFSWSwgMSwgQ2FsZW5kYXIuU1VOREFZLCAwKTsKKyAgICAgICAgei5zZXRFbmRSdWxlKENhbGVuZGFyLk1BUkNILCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAwKTsKKyAgICAgICAgaWYgKCF6LnVzZURheWxpZ2h0VGltZSgpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBub3QgYWN0aXZlIik7CisgICAgICAgIENhbGVuZGFyIHRlbXBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0VGltZVpvbmUoeik7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDMxKTsKKyAgICAgICAgRGF0ZSBkMSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoei5pbkRheWxpZ2h0VGltZShkMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgbm90IHdvcmtpbmcgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSAKKworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMSk7CisgICAgICAgIERhdGUgZDIgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgaWYgKCF6LmluRGF5bGlnaHRUaW1lKGQyKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBub3Qgd29ya2luZyBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDMxKTsKKyAgICAgICAgRGF0ZSBkMyA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoei5pbkRheWxpZ2h0VGltZShkMykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgbm90IHdvcmtpbmcgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZXhwZWN0ZWQgYmVoYXZpb3Igb2YgVGltZVpvbmUgYXJvdW5kIHRoZSBib3VuZGFyaWVzIGlzOgorICAgICAqIChBc3N1bWUgdHJhbnNpdGlvbiB0aW1lIG9mIDI6MDAgQU0pCisgICAgICogICAgZGF5IG9mIG9uc2V0IDE6NTkgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAxOjU5IEFNIFNUCisgICAgICogICAgICAgICAgICAgICAgIDI6MDAgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAzOjAwIEFNIERUCisgICAgICogICAgZGF5IG9mIGVuZCAgIDA6NTkgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAxOjU5IEFNIERUCisgICAgICogICAgICAgICAgICAgICAgIDE6MDAgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAxOjAwIEFNIFNUCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODQ5MzMoKSB7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCisgICAgICAgIGxvbmcgb2Zmc2V0MSA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuT0NUT0JFUiwgMjYsIENhbGVuZGFyLlNVTkRBWSwgKDIqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDIgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLk9DVE9CRVIsIDI2LCBDYWxlbmRhci5TVU5EQVksICgyKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIGxvbmcgb2Zmc2V0MyA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuT0NUT0JFUiwgMjYsIENhbGVuZGFyLlNVTkRBWSwgKDEqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDQgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLk9DVE9CRVIsIDI2LCBDYWxlbmRhci5TVU5EQVksICgxKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIC8qCisgICAgICAgICAqICBUaGUgZm9sbG93aW5nIHdhcyBhZGRlZCBqdXN0IGZvciBjb25zaXN0ZW5jeS4gIEl0IHNob3dzIHRoYXQgZ29pbmcgKnRvKiBEYXlsaWdodAorICAgICAgICAgKiAgU2F2aW5ncyBUaW1lIChQRFQpIGRvZXMgd29yayBhdCAyYW0uCisgICAgICAgICAqLworCisgICAgICAgIGxvbmcgb2Zmc2V0NSA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsIENhbGVuZGFyLlNVTkRBWSwgKDIqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDYgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCBDYWxlbmRhci5TVU5EQVksICgyKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIGxvbmcgb2Zmc2V0NyA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsIENhbGVuZGFyLlNVTkRBWSwgKDEqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDggPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCBDYWxlbmRhci5TVU5EQVksICgxKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIGxvbmcgU1RvZmZzZXQgPSAtOCAqIDYwKjYwKjEwMDBMOworICAgICAgICBsb25nIERUb2Zmc2V0ID0gLTcgKiA2MCo2MCoxMDAwTDsKKyAgICAgICAgaWYgKG9mZnNldDEgIT0gU1RvZmZzZXQgfHwgb2Zmc2V0MiAhPSBTVG9mZnNldCB8fAorICAgICAgICAgICAgb2Zmc2V0MyAhPSBTVG9mZnNldCB8fCBvZmZzZXQ0ICE9IERUb2Zmc2V0IHx8CisgICAgICAgICAgICBvZmZzZXQ1ICE9IERUb2Zmc2V0IHx8IG9mZnNldDYgIT0gU1RvZmZzZXQgfHwKKyAgICAgICAgICAgIG9mZnNldDcgIT0gU1RvZmZzZXQgfHwgb2Zmc2V0OCAhPSBTVG9mZnNldCkKKyAgICAgICAgICAgIHdhcm5sbigiRmFpbDogVGltZVpvbmUgbWlzYmVoYXZpbmciKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5Njk1MigpIHsKKyAgICAgICAgU3RyaW5nW10gWk9ORVMgPSB7ICJHTVQiLCAiTUVUIiwgIklTVCIgfTsKKyAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxaT05FUy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShaT05FU1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCF6b25lLmdldElEKCkuZXF1YWxzKFpPTkVTW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJGYWlsOiBUZXN0IGJyb2tlbjsgem9uZXMgbm90IGluc3RhbnRpYXRpbmciKTsKKworICAgICAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBiYW9zOworICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvc3RyZWFtID0KKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zID0gbmV3CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCkpOworICAgICAgICAgICAgICAgIG9zdHJlYW0ud3JpdGVPYmplY3Qoem9uZSk7CisgICAgICAgICAgICAgICAgb3N0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIGJhb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBpc3RyZWFtID0KKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYmFvcy50b0J5dGVBcnJheSgpKSk7CisgICAgICAgICAgICAgICAgVGltZVpvbmUgZnJhbmtlblpvbmUgPSAoVGltZVpvbmUpIGlzdHJlYW0ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIC8vbG9nbG4oIlpvbmU6ICAgICAgICAiICsgem9uZSk7CisgICAgICAgICAgICAgICAgLy9sb2dsbigiRnJhbmtlblpvbmU6ICIgKyBmcmFua2VuWm9uZSk7CisgICAgICAgICAgICAgICAgaWYgKCF6b25lLmVxdWFscyhmcmFua2VuWm9uZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlRpbWVab25lICIgKyB6b25lLmdldElEKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIG5vdCBlcXVhbCB0byBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZCBvbmUiKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcGFzcykgZXJybG4oIkZhaWw6IFRpbWVab25lIHNlcmlhbGl6YXRpb24vZXF1YWxpdHkgYnVnIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDkzMTQoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsQ2FsZW5kYXIuQVBSSUwsNCwyMiwwKTsKKyAgICAgICAgRGF0ZSBkMSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LENhbGVuZGFyLkFQUklMLDUsNiwwKTsKKyAgICAgICAgRGF0ZSBkMiA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LENhbGVuZGFyLk9DVE9CRVIsMjQsMjIsMCk7CisgICAgICAgIERhdGUgZDMgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCxDYWxlbmRhci5PQ1RPQkVSLDI1LDYsMCk7CisgICAgICAgIERhdGUgZDQgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgT2JqZWN0W10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICBQU1QsIGQxLCBkMiwKKyAgICAgICAgICAgIFBTVCwgZDMsIGQ0LAorICAgICAgICB9OworICAgICAgICBib29sZWFuIHBhc3M9dHJ1ZTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRlc3REYXRhLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lWm9uZSgoVGltZVpvbmUpIHRlc3REYXRhW2ldKTsKKyAgICAgICAgICAgIGxvbmcgdCA9ICgoRGF0ZSl0ZXN0RGF0YVtpKzFdKS5nZXRUaW1lKCk7CisgICAgICAgICAgICBEYXRlIGVuZCA9IChEYXRlKSB0ZXN0RGF0YVtpKzJdOworICAgICAgICAgICAgd2hpbGUgKHQgPCBlbmQuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lKG5ldyBEYXRlKHQpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNoZWNrQ2FsZW5kYXIzMTQodGVzdENhbCwgKFRpbWVab25lKSB0ZXN0RGF0YVtpXSkpCisgICAgICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0ICs9IDYwKjYwKjEwMDBMOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghcGFzcykgZXJybG4oIkZhaWw6IFRaIEFQSSBpbmNvbnNpc3RlbnQiKTsKKyAgICB9CisKKyAgICBib29sZWFuIGNoZWNrQ2FsZW5kYXIzMTQoR3JlZ29yaWFuQ2FsZW5kYXIgdGVzdENhbCwgVGltZVpvbmUgdGVzdFRaKSB7CisgICAgICAgIC8vIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpYUNhbC5jbG9uZSgpOworCisgICAgICAgIGZpbmFsIGludCBPTkVfREFZID0gMjQqNjAqNjAqMTAwMDsKKworICAgICAgICBpbnQgdHpPZmZzZXQsIHR6UmF3T2Zmc2V0OworICAgICAgICBGbG9hdCB0ek9mZnNldEZsb2F0LHR6UmF3T2Zmc2V0RmxvYXQ7CisgICAgICAgIC8vIEhlcmUgaXMgd2hlcmUgdGhlIHVzZXIgbWFkZSBhbiBlcnJvci4gIFRoZXkgd2VyZSBwYXNzaW5nIGluIHRoZSB2YWx1ZSBvZgorICAgICAgICAvLyB0aGUgTUlMTFNFQ09ORCBmaWVsZDsgeW91IG5lZWQgdG8gcGFzcyBpbiB0aGUgbWlsbGlzIGluIHRoZSBkYXkgaW4gU1RBTkRBUkQKKyAgICAgICAgLy8gdGltZS4KKyAgICAgICAgaW50IG1pbGxpcyA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSArCisgICAgICAgICAgICAxMDAwICogKHRlc3RDYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICA2MCAqICh0ZXN0Q2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjAgKiAodGVzdENhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSkpIC0KKyAgICAgICAgICAgIHRlc3RDYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworCisgICAgICAgIC8qIEZpeCB1cCBtaWxsaXMgdG8gYmUgaW4gcmFuZ2UuICBBU1NVTUUgVEhBVCBXRSBBUkUgTk9UIEFUIFRIRQorICAgICAgICAgKiBCRUdJTk5JTkcgT1IgRU5EIE9GIEEgTU9OVEguICBXZSBtdXN0IGFkZCB0aGlzIGNvZGUgYmVjYXVzZQorICAgICAgICAgKiBnZXRPZmZzZXQoKSBoYXMgYmVlbiBjaGFuZ2VkIHRvIGJlIG1vcmUgc3RyaWN0IGFib3V0IHRoZSBwYXJhbWV0ZXJzCisgICAgICAgICAqIGl0IHJlY2VpdmVzIC0tIGl0IHR1cm5zIG91dCB0aGF0IHRoaXMgdGVzdCB3YXMgcGFzc2luZyBpbiBpbGxlZ2FsCisgICAgICAgICAqIHZhbHVlcy4gKi8KKyAgICAgICAgaW50IGRhdGUgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgaW50IGRvdyAgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIHdoaWxlIChtaWxsaXMgPCAwKSB7CisgICAgICAgICAgICBtaWxsaXMgKz0gT05FX0RBWTsKKyAgICAgICAgICAgIC0tZGF0ZTsKKyAgICAgICAgICAgIGRvdyA9IENhbGVuZGFyLlNVTkRBWSArICgoZG93IC0gQ2FsZW5kYXIuU1VOREFZICsgNikgJSA3KTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAobWlsbGlzID49IE9ORV9EQVkpIHsKKyAgICAgICAgICAgIG1pbGxpcyAtPSBPTkVfREFZOworICAgICAgICAgICAgKytkYXRlOworICAgICAgICAgICAgZG93ID0gQ2FsZW5kYXIuU1VOREFZICsgKChkb3cgLSBDYWxlbmRhci5TVU5EQVkgKyAxKSAlIDcpOworICAgICAgICB9CisKKyAgICAgICAgdHpPZmZzZXQgPSB0ZXN0VFouZ2V0T2Zmc2V0KHRlc3RDYWwuZ2V0KENhbGVuZGFyLkVSQSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmdldChDYWxlbmRhci5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxsaXMpOworICAgICAgICB0elJhd09mZnNldCA9IHRlc3RUWi5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgdHpPZmZzZXRGbG9hdCA9IG5ldyBGbG9hdCgoZmxvYXQpdHpPZmZzZXQvKGZsb2F0KTM2MDAwMDApOworICAgICAgICB0elJhd09mZnNldEZsb2F0ID0gbmV3IEZsb2F0KChmbG9hdCl0elJhd09mZnNldC8oZmxvYXQpMzYwMDAwMCk7CisKKyAgICAgICAgRGF0ZSB0ZXN0RGF0ZSA9IHRlc3RDYWwuZ2V0VGltZSgpOworCisgICAgICAgIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUgPSB0ZXN0VFouaW5EYXlsaWdodFRpbWUodGVzdERhdGUpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eXl5IEhIOm1tIik7CisgICAgICAgIHNkZi5zZXRDYWxlbmRhcih0ZXN0Q2FsKTsKKyAgICAgICAgU3RyaW5nIGluRGF5bGlnaHRUaW1lU3RyaW5nOworCisgICAgICAgIGJvb2xlYW4gcGFzc2VkOworCisgICAgICAgIGlmIChpbkRheWxpZ2h0VGltZSkKKyAgICAgICAgeworICAgICAgICAgICAgaW5EYXlsaWdodFRpbWVTdHJpbmcgPSAiIERTVCAiOworICAgICAgICAgICAgcGFzc2VkID0gKHR6T2Zmc2V0ID09ICh0elJhd09mZnNldCArIDM2MDAwMDApKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGluRGF5bGlnaHRUaW1lU3RyaW5nID0gIiAgICAgIjsKKyAgICAgICAgICAgIHBhc3NlZCA9ICh0ek9mZnNldCA9PSB0elJhd09mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgb3V0cHV0ID0gdGVzdFRaLmdldElEKCkgKyAiICIgKyBzZGYuZm9ybWF0KHRlc3REYXRlKSArCisgICAgICAgICAgICAiIE9mZnNldCgiICsgdHpPZmZzZXRGbG9hdCArICIpIiArCisgICAgICAgICAgICAiIFJhd09mZnNldCgiICsgdHpSYXdPZmZzZXRGbG9hdCArICIpIiArCisgICAgICAgICAgICAiICIgKyBtaWxsaXMvKGZsb2F0KTM2MDAwMDAgKyAiICIgKworICAgICAgICAgICAgaW5EYXlsaWdodFRpbWVTdHJpbmc7CisKKyAgICAgICAgaWYgKHBhc3NlZCkKKyAgICAgICAgICAgIG91dHB1dCArPSAiICAgICAiOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXRwdXQgKz0gIkVSUk9SIjsKKworICAgICAgICBpZiAocGFzc2VkKSBsb2dsbihvdXRwdXQpOyBlbHNlIGVycmxuKG91dHB1dCk7CisgICAgICAgIHJldHVybiBwYXNzZWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ0FOTk9UIFJFUFJPRFVERQorICAgICAqCisgICAgICogWWV0IGFub3RoZXIgX2FsbGVnZWRfIGJ1ZyBpbiBUaW1lWm9uZS5nZXRPZmZzZXQoKSwgYSBtZXRob2QgdGhhdCBuZXZlcgorICAgICAqIHNob3VsZCBoYXZlIGJlZW4gbWFkZSBwdWJsaWMuICBJdCdzIHNpbXBseSB0b28gaGFyZCB0byB1c2UgY29ycmVjdGx5LgorICAgICAqCisgICAgICogVGhlIG9yaWdpbmFsIHRlc3QgY29kZSBmYWlsZWQgdG8gZG8gdGhlIGZvbGxvd2luZzoKKyAgICAgKiAoMSkgQ2FsbCBDYWxlbmRhci5zZXRUaW1lKCkgYmVmb3JlIGdldHRpbmcgdGhlIGZpZWxkcyEKKyAgICAgKiAoMikgVXNlIHRoZSByaWdodCBtaWxsaXMgKGFzIHVzdWFsKSBmb3IgZ2V0T2Zmc2V0KCk7IHRoZXkgd2VyZSBwYXNzaW5nCisgICAgICogICAgIGluIHRoZSBNSUxMSVMgZmllbGQsIGluc3RlYWQgb2YgdGhlIFNUQU5EQVJEIE1JTExJUyBJTiBEQVkuCisgICAgICogV2hlbiB5b3UgZml4IHRoZXNlIHR3byBwcm9ibGVtcywgdGhlIHRlc3QgcGFzc2VzLCBhcyBleHBlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNjY3OCgpIHsKKyAgICAvLyBOb3RlOiB0aGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgUFNUIHRpbWUgem9uZS4KKyAgICBUaW1lWm9uZSBpbml0aWFsWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh0eik7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZSh0eik7CisKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNSwgMTAsIDApOworICAgICAgICBEYXRlIGR0ID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgLy8gdGhlIGR0IHZhbHVlIGlzIGxvY2FsIHRpbWUgaW4gUFNULgorICAgICAgICBpZiAoIXR6LmluRGF5bGlnaHRUaW1lKGR0KSkKKyAgICAgICAgICAgIGVycmxuKCJXZSdyZSBub3QgaW4gRGF5bGlnaHQgU2F2aW5ncyBUaW1lIGFuZCB3ZSBzaG91bGQgYmUuXG4iKTsKKworICAgICAgICBjYWwuc2V0VGltZShkdCk7CisgICAgICAgIGludCBlcmEgPSBjYWwuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIGludCB5ZWFyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCBkYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpOworICAgICAgICBpbnQgZGF5T2ZXZWVrID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtaWxsaXMgPSBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSArCisgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikgKiA2MCkgKiA2MCkgKiAxMDAwKSAtCisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworCisgICAgICAgIGxvbmcgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMpOworICAgICAgICBsb25nIHJhd19vZmZzZXQgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgaWYgKG9mZnNldCA9PSByYXdfb2Zmc2V0KQorICAgICAgICAgICAgZXJybG4oIk9mZnNldHMgc2hvdWxkIG5vdCBtYXRjaCB3aGVuIGluIERTVCIpOworCisgICAgLy8gcmVzdG9yZSB0aGUgaW5pdGlhbCB0aW1lIHpvbmUgc28gdGhhdCB0aGlzIHRlc3QgY2FzZQorICAgIC8vIGRvZXNuJ3QgYWZmZWN0IHRoZSBvdGhlcnMuCisgICAgVGltZVpvbmUuc2V0RGVmYXVsdChpbml0aWFsWm9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKGludCkgdGhyb3dzIGV4Y2VwdGlvbiBmb3IgY2VydGFpbiB2YWx1ZXMsCisgICAgICogZHVlIHRvIGEgZmF1bHR5IGNvbnN0YW50IGluIFRpbWVab25lLmphdmEuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTE0MDYoKSB7CisgICAgICAgIGludCBtYXggPSAwOworICAgICAgICBmb3IgKGludCBoPS0yODsgaDw9MzA7ICsraCkgeworICAgICAgICAgICAgLy8gaCBpcyBpbiBoYWxmLWhvdXJzIGZyb20gR01UOyByYXdvZmZzZXQgaXMgaW4gbWlsbGlzCisgICAgICAgICAgICBpbnQgcmF3b2Zmc2V0ID0gaCAqIDE4MDAwMDA7CisgICAgICAgICAgICBpbnQgaGggPSAoaDwwKSA/IC1oIDogaDsKKyAgICAgICAgICAgIFN0cmluZyBobmFtZSA9ICgoaDwwKSA/ICJHTVQtIiA6ICJHTVQrIikgKworICAgICAgICAgICAgICAgICgoaGgvMiA8IDEwKSA/ICIwIiA6ICIiKSArCisgICAgICAgICAgICAgICAgKGhoLzIpICsgJzonICsKKyAgICAgICAgICAgICAgICAoKGhoJTI9PTApID8gIjAwIiA6ICIzMCIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMocmF3b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA+IG1heCkgbWF4ID0gaWRzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICBsb2dsbihobmFtZSArICcgJyArIGlkcy5sZW5ndGggKworICAgICAgICAgICAgICAgICAgICAgICgoaWRzLmxlbmd0aCA+IDApID8gKCIgZS5nLiAiICsgaWRzWzBdKSA6ICIiKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKGhuYW1lICsgJyAnICsgIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiTWF4aW11bSB6b25lcyBwZXIgb2Zmc2V0ID0gIiArIG1heCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTE0MjkoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgICAgIC8qU3RyaW5nIG5hbWUgPSovIHR6LmdldERpc3BsYXlOYW1lKHRydWUsIEludGVnZXIuTUFYX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGVycmxuKCJJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gbm90IHRocm93biBieSBUaW1lWm9uZS5nZXREaXNwbGF5TmFtZSgpIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUgYWNjZXB0cyBpbGxlZ2FsIERTVCBzYXZpbmdzIHZhbHVlcy4gIFRoZXNlIHZhbHVlcworICAgICAqIG11c3QgYmUgbm9uLXplcm8uICBUaGVyZSBpcyBubyB1cHBlciBsaW1pdCBhdCB0aGlzIHRpbWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTQ1MjUoKSB7CisgICAgICAgIGZpbmFsIGludCBHT09EID0gMSwgQkFEID0gMDsKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIDEsIEdPT0QsCisgICAgICAgICAgICAwLCBCQUQsCisgICAgICAgICAgICAtMSwgQkFELAorICAgICAgICAgICAgNjAqNjAqMTAwMCwgR09PRCwKKyAgICAgICAgICAgIEludGVnZXIuTUlOX1ZBTFVFLCBCQUQsCisgICAgICAgICAgICAvLyBJbnRlZ2VyLk1BWF9WQUxVRSwgPywgLy8gbm8gdXBwZXIgbGltaXQgb24gRFNUIHNhdmluZ3MgYXQgdGhpcyB0aW1lCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgaW50IHNhdmluZ3MgPSBEQVRBW2ldOworICAgICAgICAgICAgYm9vbGVhbiB2YWxpZCA9IERBVEFbaSsxXSA9PSBHT09EOworICAgICAgICAgICAgU3RyaW5nIG1ldGhvZCA9IG51bGw7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MjsgKytqKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChqKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJjb25zdHJ1Y3RvciI7CisgICAgICAgICAgICAgICAgICAgICAgICBTaW1wbGVUaW1lWm9uZSB6ID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJpZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NQVJDSCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZpbmdzKTsgLy8gPC0gd2hhdCB3ZSdyZSBpbnRlcmVzdGVkIGluCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gInNldERTVFNhdmluZ3MoKSI7CisgICAgICAgICAgICAgICAgICAgICAgICB6ID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHouc2V0RFNUU2F2aW5ncyhzYXZpbmdzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlBhc3M6IERTVCBzYXZpbmdzIG9mICIgKyBzYXZpbmdzICsgIiBhY2NlcHRlZCBieSAiICsgbWV0aG9kKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgc2F2aW5ncyBvZiAiICsgc2F2aW5ncyArICIgYWNjZXB0ZWQgYnkgIiArIG1ldGhvZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgc2F2aW5ncyBvZiAiICsgc2F2aW5ncyArICIgdG8gIiArIG1ldGhvZCArICIgZ2F2ZSAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiUGFzczogRFNUIHNhdmluZ3Mgb2YgIiArIHNhdmluZ3MgKyAiIHRvICIgKyBtZXRob2QgKyAiIGdhdmUgIiArIGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUuaGFzU2FtZVJ1bGVzKCkgZG9lc24ndCB3b3JrIGZvciB6b25lcyB3aXRoIG5vIERTVAorICAgICAqIGFuZCBkaWZmZXJlbnQgRFNUIHBhcmFtZXRlcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTQ1MzcoKSB7CisgICAgICAgIC8vIHR6MSBhbmQgdHoyIGhhdmUgbm8gRFNUIGFuZCBkaWZmZXJlbnQgcnVsZSBwYXJhbWV0ZXJzCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6MSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiMSIsIDAsIDAsIDAsIDAsIDIsIDAsIDAsIDApOworICAgICAgICBTaW1wbGVUaW1lWm9uZSB0ejIgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIjIiLCAxLCAwLCAwLCAwLCAzLCAwLCAwLCAwKTsKKyAgICAgICAgLy8gdHphIGFuZCB0ekEgaGF2ZSB0aGUgc2FtZSBydWxlIHBhcmFtcworICAgICAgICBTaW1wbGVUaW1lWm9uZSB0emEgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgImEiLCAwLCAxLCAwLCAwLCAzLCAyLCAwLCAwKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHpBID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJBIiwgMCwgMSwgMCwgMCwgMywgMiwgMCwgMCk7CisgICAgICAgIC8vIHR6YiBkaWZmZXJzIGZyb20gdHphCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6YiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiYiIsIDAsIDEsIDAsIDAsIDMsIDEsIDAsIDApOworICAgICAgICBpZiAodHoxLnVzZURheWxpZ2h0VGltZSgpIHx8IHR6Mi51c2VEYXlsaWdodFRpbWUoKSB8fAorICAgICAgICAgICAgIXR6YS51c2VEYXlsaWdodFRpbWUoKSB8fCAhdHpBLnVzZURheWxpZ2h0VGltZSgpIHx8CisgICAgICAgICAgICAhdHpiLnVzZURheWxpZ2h0VGltZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBpcyBicm9rZW4gLS0gcmV3cml0ZSBpdCIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHphLmhhc1NhbWVSdWxlcyh0ekEpIHx8IHR6YS5oYXNTYW1lUnVsZXModHpiKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IGhhc1NhbWVSdWxlcygpIGJyb2tlbiBmb3Igem9uZXMgd2l0aCBydWxlcyIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHoxLmhhc1NhbWVSdWxlcyh0ejIpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogaGFzU2FtZVJ1bGVzKCkgcmV0dXJucyBmYWxzZSBmb3Igem9uZXMgd2l0aG91dCBydWxlcyIpOworICAgICAgICAgICAgZXJybG4oInpvbmUgMSA9ICIgKyB0ejEpOworICAgICAgICAgICAgZXJybG4oInpvbmUgMiA9ICIgKyB0ejIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUgY29uc3RydWN0b3JzLCBzZXRTdGFydFJ1bGUoKSwgYW5kIHNldEVuZFJ1bGUoKSBkb24ndAorICAgICAqIGNoZWNrIGZvciBvdXQtb2YtcmFuZ2UgYXJndW1lbnRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTU0NTQyKCkgeworICAgICAgICBmaW5hbCBpbnQgR09PRCA9IDE7CisgICAgICAgIGZpbmFsIGludCBCQUQgID0gMDsKKworICAgICAgICBmaW5hbCBpbnQgR09PRF9NT05USCAgICAgICA9IENhbGVuZGFyLkpBTlVBUlk7CisgICAgICAgIGZpbmFsIGludCBHT09EX0RBWSAgICAgICAgID0gMTsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfREFZX09GX1dFRUsgPSBDYWxlbmRhci5TVU5EQVk7CisgICAgICAgIGZpbmFsIGludCBHT09EX1RJTUUgICAgICAgID0gMDsKKworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgR09PRCwgSW50ZWdlci5NSU5fVkFMVUUsICAgIDAsICBJbnRlZ2VyLk1BWF9WQUxVRSwgICBJbnRlZ2VyLk1JTl9WQUxVRSwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkpBTlVBUlksICAgIC01LCAgQ2FsZW5kYXIuU1VOREFZLCAgICAgMCwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkRFQ0VNQkVSLCAgICA1LCAgQ2FsZW5kYXIuU0FUVVJEQVksICAgMjQqNjAqNjAqMTAwMC0xLAorICAgICAgICAgICAgQkFELCAgQ2FsZW5kYXIuREVDRU1CRVIsICAgIDUsICBDYWxlbmRhci5TQVRVUkRBWSwgICAyNCo2MCo2MCoxMDAwKzEsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNSwgIENhbGVuZGFyLlNBVFVSREFZLCAgLTEsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5KQU5VQVJZLCAgICAtNiwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNiwgIENhbGVuZGFyLlNBVFVSREFZLCAgIDI0KjYwKjYwKjEwMDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAgMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5BUFJJTCwgICAgICAzMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMiwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5KQU5VQVJZLTEsICAgMSwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUisxLCAgMSwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMiwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgIC0zMiwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNBVFVSREFZLTEsIDAsCisgICAgICAgIH07CisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIloiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz01KSB7CisgICAgICAgICAgICBib29sZWFuIHNob3VsZEJlR29vZCA9IChEQVRBW2ldID09IEdPT0QpOworICAgICAgICAgICAgaW50IG1vbnRoICAgICA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIGludCBkYXkgICAgICAgPSBEQVRBW2krMl07CisgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrID0gREFUQVtpKzNdOworICAgICAgICAgICAgaW50IHRpbWUgICAgICA9IERBVEFbaSs0XTsKKworICAgICAgICAgICAgRXhjZXB0aW9uIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgem9uZS5zZXRTdGFydFJ1bGUobW9udGgsIGRheSwgZGF5T2ZXZWVrLCB0aW1lKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0U3RhcnRSdWxlKG1vbnRoPSIgKyBtb250aCArICIsIGRheT0iICsgZGF5ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBkYXlPZldlZWs9IiArIGRheU9mV2VlayArICIsIHRpbWU9IiArIHRpbWUgKworICAgICAgICAgICAgICAgICAgICAgIChzaG91bGRCZUdvb2QgPyAoIikgc2hvdWxkIHdvcmsgYnV0IHRocm93cyAiICsgZXgpCisgICAgICAgICAgICAgICAgICAgICAgIDogIikgc2hvdWxkIGZhaWwgYnV0IGRvZXNuJ3QiKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgem9uZS5zZXRFbmRSdWxlKG1vbnRoLCBkYXksIGRheU9mV2VlaywgdGltZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZXggPT0gbnVsbCkgIT0gc2hvdWxkQmVHb29kKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNldEVuZFJ1bGUobW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiKSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiKSBzaG91bGQgZmFpbCBidXQgZG9lc24ndCIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXggPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvKlNpbXBsZVRpbWVab25lIHRlbXAgPSovIG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiWiIsCisgICAgICAgICAgICAgICAgICAgICAgICBtb250aCwgZGF5LCBkYXlPZldlZWssIHRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9EQVlfT0ZfV0VFSywgR09PRF9USU1FKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2ltcGxlVGltZVpvbmUobW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiLCA8ZW5kPikgc2hvdWxkIHdvcmsgYnV0IHRocm93cyAiICsgZXgpCisgICAgICAgICAgICAgICAgICAgICAgIDogIiwgPGVuZD4pIHNob3VsZCBmYWlsIGJ1dCBkb2Vzbid0IikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBleCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8qU2ltcGxlVGltZVpvbmUgdGVtcCA9ICovbmV3IFNpbXBsZVRpbWVab25lKDAsICJaIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RBWV9PRl9XRUVLLCBHT09EX1RJTUUsCisgICAgICAgICAgICAgICAgICAgICAgICBtb250aCwgZGF5LCBkYXlPZldlZWssIHRpbWUpOworICAgICAgICAgICAgICAgLy8gdGVtcCA9IG51bGw7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZXggPT0gbnVsbCkgIT0gc2hvdWxkQmVHb29kKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlNpbXBsZVRpbWVab25lKDxzdGFydD4sIG1vbnRoPSIgKyBtb250aCArICIsIGRheT0iICsgZGF5ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBkYXlPZldlZWs9IiArIGRheU9mV2VlayArICIsIHRpbWU9IiArIHRpbWUgKworICAgICAgICAgICAgICAgICAgICAgIChzaG91bGRCZUdvb2QgPyAoIikgc2hvdWxkIHdvcmsgYnV0IHRocm93cyAiICsgZXgpCisgICAgICAgICAgICAgICAgICAgICAgIDogIikgc2hvdWxkIGZhaWwgYnV0IGRvZXNuJ3QiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZS5nZXRPZmZzZXQgYWNjZXB0cyBpbGxlZ2FsIGFyZ3VtZW50cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1NDY1MCgpIHsKKyAgICAgICAgZmluYWwgaW50IEdPT0Q9MSwgQkFEPTA7CisgICAgICAgIGZpbmFsIGludCBHT09EX0VSQT1HcmVnb3JpYW5DYWxlbmRhci5BRCwgR09PRF9ZRUFSPTE5OTgsIEdPT0RfTU9OVEg9Q2FsZW5kYXIuQVVHVVNUOworICAgICAgICBmaW5hbCBpbnQgR09PRF9EQVk9MiwgR09PRF9ET1c9Q2FsZW5kYXIuU1VOREFZLCBHT09EX1RJTUU9MTYqMzYwMDAwMDsKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorCisgICAgICAgICAgICBHT09ELCBHcmVnb3JpYW5DYWxlbmRhci5CQywgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEdPT0QsIEdyZWdvcmlhbkNhbGVuZGFyLkFELCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR3JlZ29yaWFuQ2FsZW5kYXIuQkMtMSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdyZWdvcmlhbkNhbGVuZGFyLkFEKzEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkpBTlVBUlksIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuREVDRU1CRVIsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWS0xLCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkRFQ0VNQkVSKzEsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAxLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWSwgMzEsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAwLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWSwgMzIsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBDYWxlbmRhci5TVU5EQVksIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBDYWxlbmRhci5TQVRVUkRBWSwgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIENhbGVuZGFyLlNVTkRBWS0xLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgQ2FsZW5kYXIuU0FUVVJEQVkrMSwgR09PRF9USU1FLAorCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIDAsCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIDI0KjM2MDAwMDAtMSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgLTEsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIDI0KjM2MDAwMDAsCisgICAgICAgIH07CisKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NykgeworICAgICAgICAgICAgYm9vbGVhbiBnb29kID0gREFUQVtpXSA9PSBHT09EOworICAgICAgICAgICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvKmludCBvZmZzZXQgPSovIHR6LmdldE9mZnNldChEQVRBW2krMV0sIERBVEFbaSsyXSwgREFUQVtpKzNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQVtpKzRdLCBEQVRBW2krNV0sIERBVEFbaSs2XSk7CisgICAgICAgICAgICAgICAgLy9vZmZzZXQgPSAwOworICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICBlID0gZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZ29vZCAhPSAoZSA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBnZXRPZmZzZXQoIiArCisgICAgICAgICAgICAgICAgICAgICAgREFUQVtpKzFdICsgIiwgIiArIERBVEFbaSsyXSArICIsICIgKyBEQVRBW2krM10gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBEQVRBW2krNF0gKyAiLCAiICsgREFUQVtpKzVdICsgIiwgIiArIERBVEFbaSs2XSArCisgICAgICAgICAgICAgICAgICAgICAgKGdvb2QgPyAoIikgdGhyZXcgIiArIGUpIDogIikgYWNjZXB0cyBpbnZhbGlkIGFyZ3MiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBjb25zdHJ1Y3RvcnMgYWxsb3cgbnVsbCBJRHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTk5MjIoKSB7CisgICAgICAgIFRpbWVab25lIHogPSBudWxsOworCisgICAgICAgIC8vIFRpbWVab25lIEFQSS4gIE9ubHkgaGFzU2FtZVJ1bGVzKCkgYW5kIHNldERlZmF1bHQoKSBzaG91bGQKKyAgICAgICAgLy8gYWxsb3cgbnVsbC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gZ2V0VGltZVpvbmUiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgeiA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgLy8ge2RsZn0gcmVxdWlyaW5nIGNhc3QgZm9yIGRpc2FtYmlndWF0aW9uIGlzIG9rIGZvciBjb21wYXRpYmlsaXR5IHNpbmNlIG51bGwKKyAgICAgICAgLy8gaXMgbm90IGEgdmFsaWQgYXJndW1lbnQgdG8gdGhpcyBBUEkKKyAgICAgICAgICAgIHouZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLlNIT1JULCAoVUxvY2FsZSludWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gZ2V0RGlzcGxheU5hbWUoMykiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgLy8ge2RsZn0gc2VlIGFib3ZlCisgICAgICAgICAgICB6LmdldERpc3BsYXlOYW1lKChVTG9jYWxlKW51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBnZXREaXNwbGF5TmFtZSgxKSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKHouaGFzU2FtZVJ1bGVzKG51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGhhc1NhbWVSdWxlcyByZXR1cm5lZCB0cnVlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIE5PVCBhbGxvd2VkIGluIGhhc1NhbWVSdWxlcyIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6LmluRGF5bGlnaHRUaW1lKG51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBpbkRheWxpZ2h0VGltZSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgei5zZXRJRChudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gc2V0SUQiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICBUaW1lWm9uZSBzYXZlID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgTk9UIGFsbG93ZWQgaW4gc2V0RGVmYXVsdCIpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNpbXBsZVRpbWVab25lIEFQSQorICAgICAgICBTaW1wbGVUaW1lWm9uZSBzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIFNpbXBsZVRpbWVab25lKDIpIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzID0gbmV3IFNpbXBsZVRpbWVab25lKDAsIG51bGwsIDAsIDEsIDAsIDAsIDAsIDEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBTaW1wbGVUaW1lWm9uZSgxMCkiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgbnVsbCwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMCwgMTAwMCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIFNpbXBsZVRpbWVab25lKDExKSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBpZihzIT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgRXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBicm9rZW4gYXQgbWlkbmlnaHQuICBUaGUgVGltZVpvbmUgY29kZSBmYWlscyB0byBoYW5kbGUKKyAgICAgKiB0cmFuc2l0aW9ucyBhdCBtaWRuaWdodCBjb3JyZWN0bHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjI1OTMoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInoiLCBMb2NhbGUuVVMpOworICAgICAgICBmaW5hbCBpbnQgT05FX0hPVVIgPSA2MCo2MCoxMDAwOworICAgICAgICBmaW5hbCBmbG9hdCBIID0gKGZsb2F0KSBPTkVfSE9VUjsKKyAgICAgICAgVGltZVpvbmUgaW5pdGlhbFpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBkZCB5eXl5IEhIOm1tIHoiKTsKKworICAgICAgICBTaW1wbGVUaW1lWm9uZSBhc3VuY2lvbiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtNCpPTkVfSE9VUiwgIkFtZXJpY2EvQXN1bmNpb24iIC8qUFklc1QqLywKKyAgICAgICAgICAgIENhbGVuZGFyLk9DVE9CRVIsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwKKyAgICAgICAgICAgIENhbGVuZGFyLk1BUkNILCAxLCAwIC8qRE9NKi8sIDAqT05FX0hPVVIsIDEqT05FX0hPVVIpOworCisgICAgICAgIC8qIFpvbmUKKyAgICAgICAgICogU3RhcnRpbmcgdGltZQorICAgICAgICAgKiBUcmFuc2l0aW9uIGV4cGVjdGVkIGJldHdlZW4gc3RhcnQrMUggYW5kIHN0YXJ0KzJICisgICAgICAgICAqLworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IFNpbXBsZVRpbWVab25lKDIqT05FX0hPVVIsICJBc2lhL0RhbWFzY3VzIiAvKkVFJXNUKi8sCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuQVBSSUwsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5PQ1RPQkVSLCAxLCAwIC8qRE9NKi8sIDAqT05FX0hPVVIsIDEqT05FX0hPVVIpLAorICAgICAgICAgICAgbmV3IGludFtdIHsxOTk4LCBDYWxlbmRhci5TRVBURU1CRVIsIDMwLCAyMiwgMH0sCisgICAgICAgICAgICBCb29sZWFuLlRSVUUsCisKKyAgICAgICAgICAgIGFzdW5jaW9uLAorICAgICAgICAgICAgbmV3IGludFtdIHsyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjgsIDIyLCAwfSwKKyAgICAgICAgICAgIEJvb2xlYW4uRkFMU0UsCisKKyAgICAgICAgICAgIGFzdW5jaW9uLAorICAgICAgICAgICAgbmV3IGludFtdIHsyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjksIDIyLCAwfSwKKyAgICAgICAgICAgIEJvb2xlYW4uVFJVRSwKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSB6b25lID0gbmV3IFN0cmluZ1s0XTsKKworICAgICAgICBmb3IgKGludCBqPTA7IGo8REFUQS5sZW5ndGg7IGorPTMpIHsKKyAgICAgICAgICAgIFRpbWVab25lIHR6ID0gKFRpbWVab25lKURBVEFbal07CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHR6KTsKKyAgICAgICAgICAgIGZtdC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgICAgICBzZGYuc2V0VGltZVpvbmUodHopOworCisgICAgICAgICAgICAvLyBNdXN0IGNvbnN0cnVjdCB0aGUgRGF0ZSBvYmplY3QgQUZURVIgc2V0dGluZyB0aGUgZGVmYXVsdCB6b25lCisgICAgICAgICAgICBpbnRbXSBwID0gKGludFtdKURBVEFbaisxXTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQocFswXSwgcFsxXSwgcFsyXSwgcFszXSwgcFs0XSk7CisgICAgICAgICAgICBsb25nIHN0YXJ0ID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICBib29sZWFuIHRyYW5zaXRpb25FeHBlY3RlZCA9ICgoQm9vbGVhbilEQVRBW2orMl0pLmJvb2xlYW5WYWx1ZSgpOworCisgICAgICAgICAgICBsb2dsbih0ei5nZXRJRCgpICsgIjoiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTw0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZShzdGFydCArIGkqT05FX0hPVVIpOworICAgICAgICAgICAgICAgIHpvbmVbaV0gPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgaSArICI6ICIgKyBzZGYuZm9ybWF0KGQpICsgIiA9PiAiICsgem9uZVtpXSArCisgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIGQuZ2V0VGltZSgpL0ggKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsLnNldChwWzBdLCBwWzFdLCBwWzJdLCAwLCAwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTw0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgaCA9IDIyK2k7CisgICAgICAgICAgICAgICAgaW50IGRvbSA9IHBbMl0rKGg+PTI0PzE6MCk7CisgICAgICAgICAgICAgICAgaCAlPSAyNDsKKyAgICAgICAgICAgICAgICBpbnQgbXMgPSBoKk9ORV9IT1VSOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQocFswXSwgcFsxXSwgZG9tLCAwLCAwKTsKKyAgICAgICAgICAgICAgICBpbnQgb2ZmID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXMpOworICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuSE9VUiwgaCk7CisgICAgICAgICAgICAgICAgaW50IHggPSBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJoPSIgKyBoICsgIjsgZG9tPSIgKyBkb20gKworICAgICAgICAgICAgICAgICAgICAgICI7IFpPTkVfT0ZGU0VUPSIgKyBjYWwuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKS9IICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBEU1RfT0ZGU0VUPSIgKyBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpL0ggKworICAgICAgICAgICAgICAgICAgICAgICI7IGdldE9mZnNldCgpPSIgKyBvZmYvSCArCisgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpL0ggKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHpvbmVbMF0uZXF1YWxzKHpvbmVbMV0pICYmCisgICAgICAgICAgICAgICAgKHpvbmVbMV0uZXF1YWxzKHpvbmVbMl0pICE9IHRyYW5zaXRpb25FeHBlY3RlZCkgJiYKKyAgICAgICAgICAgICAgICB6b25lWzJdLmVxdWFscyh6b25lWzNdKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogdHJhbnNpdGlvbiAiICsgdHJhbnNpdGlvbkV4cGVjdGVkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2l0aW9uRXhwZWN0ZWQ/InRyYW5zaXRpb24iOiJubyB0cmFuc2l0aW9uIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAvLyByZXN0b3JlIHRoZSBpbml0aWFsIHRpbWUgem9uZSBzbyB0aGF0IHRoaXMgdGVzdCBjYXNlCisgICAgLy8gZG9lc24ndCBhZmZlY3QgdGhlIG90aGVycy4KKyAgICBUaW1lWm9uZS5zZXREZWZhdWx0KGluaXRpYWxab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBicm9rZW4gaW4gbGFzdCBob3VyIG9mIHllYXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3MzYwNCgpIHsKKyAgICAgICAgVGltZVpvbmUgcHN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpbnQgbzIyID0gcHN0LmdldE9mZnNldCgxLCAxOTk4LCAxMSwgMzEsIENhbGVuZGFyLlRIVVJTREFZLCAyMio2MCo2MCoxMDAwKTsKKyAgICAgICAgaW50IG8yMyA9IHBzdC5nZXRPZmZzZXQoMSwgMTk5OCwgMTEsIDMxLCBDYWxlbmRhci5USFVSU0RBWSwgMjMqNjAqNjAqMTAwMCk7CisgICAgICAgIGludCBvMDAgPSBwc3QuZ2V0T2Zmc2V0KDEsIDE5OTksIDAsIDEsIENhbGVuZGFyLkZSSURBWSwgMCk7CisgICAgICAgIGlmIChvMjIgIT0gbzIzIHx8IG8yMiAhPSBvMDApIHsKKyAgICAgICAgICAgIGVycmxuKCJPZmZzZXRzIHNob3VsZCBiZSB0aGUgc2FtZSAoZm9yIFBTVCksIGJ1dCBnb3Q6ICIgKworICAgICAgICAgICAgICAgICAgIjEyLzMxIDIyOjAwICIgKyBvMjIgKworICAgICAgICAgICAgICAgICAgIiwgMTIvMzEgMjM6MDAgIiArIG8yMyArCisgICAgICAgICAgICAgICAgICAiLCAwMS8wMSAwMDowMCAiICsgbzAwKTsKKyAgICAgICAgfQorCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUocHN0KTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGludCBsYXN0RFNUID0gY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKTsKKyAgICAgICAgaW50IHRyYW5zaXRpb25zID0gMDsKKyAgICAgICAgaW50IGRlbHRhID0gNTsKKyAgICAgICAgd2hpbGUgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgPCAyMDAwKSB7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1JTlVURSwgZGVsdGEpOworICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgIT0gbGFzdERTVCkgeworICAgICAgICAgICAgICAgICsrdHJhbnNpdGlvbnM7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgdCA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICB0LmFkZChDYWxlbmRhci5NSU5VVEUsIC1kZWx0YSk7CisgICAgICAgICAgICAgICAgbG9nbG4odC5nZXRUaW1lKCkgKyAiICAiICsgdC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkgKyAiICAiICsgKGxhc3REU1Q9Y2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0cmFuc2l0aW9ucyAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiU2F3ICIgKyB0cmFuc2l0aW9ucyArICIgdHJhbnNpdGlvbnM7IHNob3VsZCBoYXZlIHNlZW4gNCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogZ2V0RGlzcGxheU5hbWUgZG9lc24ndCB3b3JrIHdpdGggdW51c3VhbCBzYXZpbmdzL29mZnNldHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzY2ODYoKSB7CisgICAgICAgIC8vIENvbnN0cnVjdCBhIHpvbmUgdGhhdCBkb2VzIG5vdCBvYnNlcnZlIERTVCBidXQKKyAgICAgICAgLy8gdGhhdCBkb2VzIGhhdmUgYSBEU1Qgc2F2aW5ncyAod2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQpLgorICAgICAgICBpbnQgb2Zmc2V0ID0gOTAgKiA2MDAwMDsgLy8gMTozMAorICAgICAgICBTaW1wbGVUaW1lWm9uZSB6MSA9IG5ldyBTaW1wbGVUaW1lWm9uZShvZmZzZXQsICJfc3RkX3pvbmVfIik7CisgICAgICAgIHoxLnNldERTVFNhdmluZ3MoNDUgKiA2MDAwMCk7IC8vIDA6NDUKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSB6b25lIHRoYXQgb2JzZXJ2ZXMgRFNUIGZvciB0aGUgZmlyc3QgNiBtb250aHMuCisgICAgICAgIFNpbXBsZVRpbWVab25lIHoyID0gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCwgIl9kc3Rfem9uZV8iKTsKKyAgICAgICAgejIuc2V0RFNUU2F2aW5ncyg0NSAqIDYwMDAwKTsgLy8gMDo0NQorICAgICAgICB6Mi5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCk7CisgICAgICAgIHoyLnNldEVuZFJ1bGUoQ2FsZW5kYXIuSlVMWSwgMSwgMCk7CisKKyAgICAgICAgLy8gQWxzbyBjaGVjayBEYXRlRm9ybWF0CisgICAgICAgIERhdGVGb3JtYXQgZm10MSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ6Iik7CisgICAgICAgIGZtdDEuc2V0VGltZVpvbmUoejEpOyAvLyBGb3JtYXQgdXNlcyBzdGFuZGFyZCB6b25lCisgICAgICAgIERhdGVGb3JtYXQgZm10MiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ6Iik7CisgICAgICAgIGZtdDIuc2V0VGltZVpvbmUoejIpOyAvLyBGb3JtYXQgdXNlcyBEU1Qgem9uZQorICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5NzAsIENhbGVuZGFyLkZFQlJVQVJZLCAxKTsKKyAgICAgICAgRGF0ZSBkc3QgPSB0ZW1wY2FsLmdldFRpbWUoKTsgLy8gVGltZSBpbiBEU1QKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk3MCwgQ2FsZW5kYXIuQVVHVVNULCAxKTsKKyAgICAgICAgRGF0ZSBzdGQgPSB0ZW1wY2FsLmdldFRpbWUoKTsgLy8gVGltZSBpbiBzdGFuZGFyZAorCisgICAgICAgIC8vIERlc2NyaXB0aW9uLCBSZXN1bHQsIEV4cGVjdGVkIFJlc3VsdAorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKGZhbHNlLCBTSE9SVCkvc3RkIHpvbmUiLAorICAgICAgICAgICAgejEuZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLlNIT1JUKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkcpL3N0ZCB6b25lIiwKKyAgICAgICAgICAgIHoxLmdldERpc3BsYXlOYW1lKGZhbHNlLCBUaW1lWm9uZS5MT05HICksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKHRydWUsIFNIT1JUKS9zdGQgem9uZSIsCisgICAgICAgICAgICB6MS5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5TSE9SVCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKHRydWUsIExPTkcpL3N0ZCB6b25lIiwKKyAgICAgICAgICAgIHoxLmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLkxPTkcgKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFNIT1JUKS9kc3Qgem9uZSIsCisgICAgICAgICAgICB6Mi5nZXREaXNwbGF5TmFtZShmYWxzZSwgVGltZVpvbmUuU0hPUlQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJnZXREaXNwbGF5TmFtZShmYWxzZSwgTE9ORykvZHN0IHpvbmUiLAorICAgICAgICAgICAgejIuZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLkxPTkcgKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgU0hPUlQpL2RzdCB6b25lIiwKKyAgICAgICAgICAgIHoyLmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLlNIT1JUKSwgIkdNVCswMjoxNSIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgTE9ORykvZHN0IHpvbmUiLAorICAgICAgICAgICAgejIuZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuTE9ORyApLCAiR01UKzAyOjE1IiwKKyAgICAgICAgICAgICJEYXRlRm9ybWF0LmZvcm1hdChzdGQpL3N0ZCB6b25lIiwgZm10MS5mb3JtYXQoc3RkKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiRGF0ZUZvcm1hdC5mb3JtYXQoZHN0KS9zdGQgem9uZSIsIGZtdDEuZm9ybWF0KGRzdCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgIkRhdGVGb3JtYXQuZm9ybWF0KHN0ZCkvZHN0IHpvbmUiLCBmbXQyLmZvcm1hdChzdGQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJEYXRlRm9ybWF0LmZvcm1hdChkc3QpL2RzdCB6b25lIiwgZm10Mi5mb3JtYXQoZHN0KSwgIkdNVCswMjoxNSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBpZiAoIURBVEFbaSsxXS5lcXVhbHMoREFUQVtpKzJdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpXSArICIgLT4gIiArIERBVEFbaSsxXSArICIsIGV4cCAiICsgREFUQVtpKzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZVRpbWVab25lIGFsbG93cyBpbnZhbGlkIERPTSB2YWx1ZXMuCisgICAgICovCisgICAgLy8gQ3VycmVudCBvcmduYWl6YXRpb24gb2YgZGF0YSBpbiB6b25laW5mb3IucmVzIGFsbG93cyBuZWdhdGl2ZQorICAgIC8vIHZhbHVlcyBmcm9tIERPTSBzbyBjb21tZW50IHRoZXNlIHRlc3RzIG91dAorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTg0MjI5KCkgeworICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAtMSwgMCwgMCwgMCwgMCwgMCwgMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgc3RhcnREYXkiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihhKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJBIiwgMCwgMCwgMCwgMCwgMCwgLTEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIGVuZERheSIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGIpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAtMSwgMCwgMCwgMCwgMCwgMCwgMCwgMTAwMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgc3RhcnREYXkgK3NhdmluZ3MiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihjKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJBIiwgMCwgMCwgMCwgMCwgMCwgLTEsIDAsIDAsIDEwMDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIGVuZERheSArc2F2aW5ncyIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGQpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gTWFrZSBhIHZhbGlkIGNvbnN0cnVjdG9yIGNhbGwgZm9yIHN1YnNlcXVlbnQgdGVzdHMuCisKKyAgICAgICAgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiQSIsIDAsIDEsIDAsIDAsIDAsIDEsIDAsIDApOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUuc2V0U3RhcnRSdWxlKDAsIC0xLCAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRTdGFydFJ1bGUgK3NhdmluZ3MiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihlKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lLnNldFN0YXJ0UnVsZSgwLCAtMSwgMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgc2V0U3RhcnRSdWxlIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoZikgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZS5zZXRFbmRSdWxlKDAsIC0xLCAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRFbmRSdWxlICtzYXZpbmdzIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoZykgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZS5zZXRFbmRSdWxlKDAsIC0xLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRFbmRSdWxlIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoaCkgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZS5nZXRPZmZzZXQoKSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gdG8gZ2V0CisgICAgICogb2YgMi8yOS8xOTk2IChsZWFwIGRheSkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMDg5NjAgKCkgeworICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgIHRyeSB7CisgICAgICAgIC8qaW50IG9mZnNldCA9Ki8gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk2LCBDYWxlbmRhci5GRUJSVUFSWSwgMjksCisgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDApOworICAgICAgICAvL29mZnNldCA9IDA7CisgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oIkZBSUxFRDogdG8gZ2V0IFRpbWVab25lLmdldE9mZnNldCgyLzI5Lzk2KSIpOworICAgIH0KKyAgICB0cnkgeworICAgICAgICAvKmludCBvZmZzZXQgPSovIHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5NywgQ2FsZW5kYXIuRkVCUlVBUlksIDI5LAorICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAwKTsKKyAgICAgICAgLy9vZmZzZXQgPSAwOworICAgICAgICB3YXJubG4oIkZBSUxFRDogVGltZVpvbmUuZ2V0T2Zmc2V0KDIvMjkvOTcpIGV4cGVjdGVkIHRvIHRocm93IEV4Y2VwdGlvbi4iKTsKKyAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiZ290IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRvIHNlZSBpZiBEYXRlRm9ybWF0IHVuZGVyc3RhbmRzIHpvbmUgZXF1aXZhbGVuY3kgZ3JvdXBzLiAgSXQKKyAgICAgKiBtaWdodCBzZWVtIHRoYXQgdGhpcyBzaG91bGQgYmUgYSBEYXRlRm9ybWF0IHRlc3QsIGJ1dCBpdCdzIHJlYWxseSBhCisgICAgICogVGltZVpvbmUgdGVzdCAtLSB0aGUgY2hhbmdlcyB0byBEYXRlRm9ybWF0IGFyZSBtaW5vci4KKyAgICAgKgorICAgICAqIFdlIHVzZSB0d28ga25vd24sIHpvbmVzIHRoYXQgYXJlIGVxdWl2YWxlbnQsIHdoZXJlIG9uZSB6b25lIGhhcworICAgICAqIGxvY2FsaXplZCBuYW1lIGRhdGEsIGFuZCB0aGUgb3RoZXIgZG9lc24ndCwgaW4gc29tZSBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEo0NDkoKSB7CisgICAgICAgIC8vIG5vdCB1c2VkIFN0cmluZyBzdHI7CisKKyAgICAgICAgLy8gTW9kaWZ5IHRoZSBmb2xsb3dpbmcgdGhyZWUgYXMgbmVjZXNzYXJ5LiAgVGhlIHR3byBJRHMgbXVzdAorICAgICAgICAvLyBzcGVjaWZ5IHR3byB6b25lcyBpbiB0aGUgc2FtZSBlcXVpdmFsZW5jeSBncm91cC4gIE9uZSBtdXN0IGhhdmUKKyAgICAgICAgLy8gbG9jYWxlIGRhdGEgaW4gJ2xvYyc7IHRoZSBvdGhlciBtdXN0IG5vdC4KKyAgICAgICAgU3RyaW5nIGlkV2l0aExvY2FsZURhdGEgPSAiQW1lcmljYS9Mb3NfQW5nZWxlcyI7CisgICAgICAgIFN0cmluZyBpZFdpdGhvdXRMb2NhbGVEYXRhID0gIlBTVCI7IC8vICJVUy9QYWNpZmljIjsKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoImVuIiwgIiIsICIiKTsKKworICAgICAgICBUaW1lWm9uZSB6b25lV2l0aCA9IFRpbWVab25lLmdldFRpbWVab25lKGlkV2l0aExvY2FsZURhdGEpOworICAgICAgICBUaW1lWm9uZSB6b25lV2l0aG91dCA9IFRpbWVab25lLmdldFRpbWVab25lKGlkV2l0aG91dExvY2FsZURhdGEpOworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ290IHZhbGlkIHpvbmVzCisgICAgICAgIGlmICghKHpvbmVXaXRoLmdldElEKCkuZXF1YWxzKGlkV2l0aExvY2FsZURhdGEpICYmCisgICAgICAgICAgICAgIHpvbmVXaXRob3V0LmdldElEKCkuZXF1YWxzKGlkV2l0aG91dExvY2FsZURhdGEpKSkgeworICAgICAgICAgICAgd2FybmxuKCJGYWlsOiBVbmFibGUgdG8gY3JlYXRlIHpvbmVzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxXaXRoID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmVXaXRoKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbFdpdGhvdXQgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZVdpdGhvdXQpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPQorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU0gZCB5eXl5IGhoOm1tIGEgenp6IiwgbG9jKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IG5ldyBEYXRlKDBMKTsKKyAgICAgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWxXaXRoKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHJXaXRoID0gZm10LmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWxXaXRob3V0KTsKKyAgICAgICAgICAgIFN0cmluZyBzdHJXaXRob3V0ID0gZm10LmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIGlmIChzdHJXaXRoLmVxdWFscyhzdHJXaXRob3V0KSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGlkV2l0aExvY2FsZURhdGEgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cldpdGggKyAiOyAiICsgaWRXaXRob3V0TG9jYWxlRGF0YSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgc3RyV2l0aG91dCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaWRXaXRoTG9jYWxlRGF0YSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgc3RyV2l0aCArICI7ICIgKyBpZFdpdGhvdXRMb2NhbGVEYXRhICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHJXaXRob3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIGdldE9mZnNldCByZXR1cm5zIHdyb25nIG9mZnNldCBmb3IgZGF5cyBpbiBlYXJseSAyMHRoIGNlbnR1cnkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjUxMzQoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGltZVpvbmUgaWN1RWFzdGVybiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL05ld19Zb3JrIik7ICAgICAgICAKKyAgICAgICAgdGVzdENhbC5zZXRUaW1lWm9uZShpY3VFYXN0ZXJuKTsKKyAgICAgICAgdGVzdENhbC5zZXQoMTkwMCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCwgMCwgMCk7CisgICAgICAgIGxvbmcgdGltZSA9IHRlc3RDYWwuZ2V0VGltZUluTWlsbGlzKCk7CisKKyAgICAgICAgaW50IG9mZnNldCA9IGljdUVhc3Rlcm4uZ2V0T2Zmc2V0KHRpbWUpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC0xODAwMDAwMCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVUQyBvZmZzZXQgaW4gdGltZSB6b25lIEFtZXJpY2EvTmV3X1lvcmsgb24gSmFuIDEsIDE5MDAgLT4gIiArIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBpc0RzdCA9IGljdUVhc3Rlcm4uaW5EYXlsaWdodFRpbWUobmV3IERhdGUodGltZSkpOworICAgICAgICBpZiAoaXNEc3QpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEU1QgaXMgb2JzZXJ2ZWQgaW4gdGltZSB6b25lIEFtZXJpY2EvTmV3X1lvcmsgb24gSmFuIDEsIDE5MDAiKTsKKyAgICAgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBpZiAoU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLnZlbmRvciIsICIiKS5zdGFydHNXaXRoKCJJQk0iKSAmJgorICAgICAgICAJU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLnZlcnNpb24iLCAiIikuZXF1YWxzKCIxLjQuMSIpKSB7CisgICAgICAgICAgICAvLyBJQk0gSkRLIDEuNC4xIGhhcyBhIGJ1ZyBhbmQgZmFpbHMgdG8gcnVuIHRoaXMgdGVzdCBjYXNlLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZSBqZGtFYXN0ZXJuID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL05ld19Zb3JrIik7CisgICAgICAgIC8vIENvbXBhcmUgb2Zmc2V0IGFuZCBEU1Qgb2JzZXJ2YXRpb24gd2l0aCBKREsgYW5kIElDVSBmb3IgNTAgeWVhcnMgc2luY2UgMTkwMAorICAgICAgICB0ZXN0Q2FsLmFkZChDYWxlbmRhci5ZRUFSLCA1MCk7CisgICAgICAgIGxvbmcgZW5kVGltZSA9IHRlc3RDYWwuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIGludCBqZGtPZmZzZXQ7CisgICAgICAgIGJvb2xlYW4gaXNEc3RKZGs7CisgICAgICAgIHdoaWxlICh0aW1lIDwgZW5kVGltZSkgeworICAgICAgICAgICAgb2Zmc2V0ID0gaWN1RWFzdGVybi5nZXRPZmZzZXQodGltZSk7CisgICAgICAgICAgICBqZGtPZmZzZXQgPSBqZGtFYXN0ZXJuLmdldE9mZnNldCh0aW1lKTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gamRrT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEluY29tcGF0aWJsZSBVVEMgb2Zmc2V0IC0+IEpESzoiICsgamRrT2Zmc2V0ICsgIi9JQ1U6IiArIG9mZnNldCArICIgWyIgKyB0aW1lICsgIl0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKHRpbWUpOworICAgICAgICAgICAgaXNEc3QgPSBpY3VFYXN0ZXJuLmluRGF5bGlnaHRUaW1lKGQpOworICAgICAgICAgICAgaXNEc3RKZGsgPSBqZGtFYXN0ZXJuLmluRGF5bGlnaHRUaW1lKGQpOworICAgICAgICAgICAgaWYgKGlzRHN0ICE9IGlzRHN0SmRrKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEluY29tcGF0aWJsZSBEU1QgLT4gSkRLOiIgKyBpc0RzdEpkayArICIvSUNVOiIgKyBpc0RzdCArICIgWyIgKyB0aW1lICsgIl0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRpbWUgKz0gMjQqNjAqNjAqMTAwMEw7IC8vIGluY3JlbWVudCAxIGRheQorICAgICAgICB9CisvLyNlbmRpZgorICAgIH0KK30KKworLy9lb2YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjgxY2Y4ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVRlc3QuamF2YQpAQCAtMCwwICsxLDEzMDQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqIEB0ZXN0IDEuMjIgOTkvMDkvMjEKKyAqIEBidWcgNDAyODAwNiA0MDQ0MDEzIDQwOTY2OTQgNDEwNzI3NiA0MTA3NTcwIDQxMTI4NjkgNDEzMDg4NQorICogQHN1bW1hcnkgdGVzdCBUaW1lWm9uZQorICogQGJ1aWxkIFRpbWVab25lVGVzdAorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUaW1lWm9uZVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDM2MDAwMDA7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOT1RFOiBBcyBvZiBJQ1UgMi44LCB0aGUgbWFwcGluZyBvZiAzLWxldHRlciBsZWdhY3kgYWxpYXNlcworICAgICAqIHRvIGByZWFsJyBPbHNvbiBJRHMgaXMgdW5kZXIgY29udHJvbCBvZiB0aGUgdW5kZXJseWluZyBKREsuCisgICAgICogVGhpcyB0ZXN0IG1heSBmYWlsIG9uIG9uZSBKREsgYW5kIHBhc3Mgb24gYW5vdGhlcjsgZG9uJ3QgYmUKKyAgICAgKiB0b28gY29uY2VybmVkLiAgQWxhbgorICAgICAqCisgICAgICogQnVnIDQxMzA4ODUKKyAgICAgKiBDZXJ0YWluIHNob3J0IHpvbmUgSURzLCB1c2VkIHNpbmNlIDEuMS54LCBhcmUgaW5jb3JyZWN0LgorICAgICAqICAKKyAgICAgKiBUaGUgd29yc3Qgb2YgdGhlc2UgaXM6CisgICAgICoKKyAgICAgKiAiQ0FUIiAoQ2VudHJhbCBBZnJpY2FuIFRpbWUpIHNob3VsZCBiZSBHTVQrMjowMCwgYnV0IGluc3RlYWQgcmV0dXJucyBhCisgICAgICogem9uZSBhdCBHTVQtMTowMC4gVGhlIHpvbmUgYXQgR01ULTE6MDAgc2hvdWxkIGJlIGNhbGxlZCBFR1QsIENWVCwgRUdTVCwKKyAgICAgKiBvciBBWk9TVCwgZGVwZW5kaW5nIG9uIHdoaWNoIHpvbmUgaXMgbWVhbnQsIGJ1dCBpbiBubyBjYXNlIGlzIGl0IENBVC4KKyAgICAgKgorICAgICAqIE90aGVyIHdyb25nIHpvbmUgSURzOgorICAgICAqCisgICAgICogRUNUIChFdXJvcGVhbiBDZW50cmFsIFRpbWUpIEdNVCsxOjAwOiBFQ1QgaXMgRWN1YWRvciBUaW1lLAorICAgICAqIEdNVC01OjAwLiBFdXJvcGVhbiBDZW50cmFsIHRpbWUgaXMgYWJicmV2aWF0ZWQgQ0VTVC4KKyAgICAgKgorICAgICAqIFNTVCAoU29sb21vbiBJc2xhbmQgVGltZSkgR01UKzExOjAwLiBTU1QgaXMgYWN0dWFsbHkgU2Ftb2EgU3RhbmRhcmQgVGltZSwKKyAgICAgKiBHTVQtMTE6MDAuIFNvbG9tb24gSXNsYW5kIHRpbWUgaXMgU0JULgorICAgICAqCisgICAgICogTlNUIChOZXcgWmVhbGFuZCBUaW1lKSBHTVQrMTI6MDAuIE5TVCBpcyB0aGUgYWJicmV2aWF0aW9uIGZvcgorICAgICAqIE5ld2ZvdW5kbGFuZCBTdGFuZGFyZCBUaW1lLCBHTVQtMzozMC4gTmV3IFplYWxhbmRlcnMgdXNlIE5aU1QuCisgICAgICoKKyAgICAgKiBBU1QgKEFsYXNrYSBTdGFuZGFyZCBUaW1lKSBHTVQtOTowMC4gW1RoaXMgaGFzIGFscmVhZHkgYmVlbiBub3RlZCBpbgorICAgICAqIGFub3RoZXIgYnVnLl0gSXQgc2hvdWxkIGJlICJBS1NUIi4gQVNUIGlzIEF0bGFudGljIFN0YW5kYXJkIFRpbWUsCisgICAgICogR01ULTQ6MDAuCisgICAgICoKKyAgICAgKiBQTlQgKFBob2VuaXggVGltZSkgR01ULTc6MDAuIFBOVCB1c3VhbGx5IG1lYW5zIFBpdGNhaXJuIFRpbWUsCisgICAgICogR01ULTg6MzAuIFRoZXJlIGlzIG5vIHN0YW5kYXJkIGFiYnJldmlhdGlvbiBmb3IgUGhvZW5peCB0aW1lLCBhcyBkaXN0aW5jdAorICAgICAqIGZyb20gTVNUIHdpdGggZGF5bGlnaHQgc2F2aW5ncy4KKyAgICAgKgorICAgICAqIEluIGFkZGl0aW9uIHRvIHRoZXNlIHByb2JsZW1zLCBhIG51bWJlciBvZiB6b25lcyBhcmUgRkFLRS4gVGhhdCBpcywgdGhleQorICAgICAqIGRvbid0IG1hdGNoIHdoYXQgcGVvcGxlIHVzZSBpbiB0aGUgcmVhbCB3b3JsZC4KKyAgICAgKgorICAgICAqIEZBS0Ugem9uZXM6CisgICAgICoKKyAgICAgKiBFRVQgKHNob3VsZCBiZSBFRVNUKQorICAgICAqIEFSVCAoc2hvdWxkIGJlIEVFU1QpCisgICAgICogTUVUIChzaG91bGQgYmUgSVJTVCkKKyAgICAgKiBORVQgKHNob3VsZCBiZSBBTVNUKQorICAgICAqIFBMVCAoc2hvdWxkIGJlIFBLVCkKKyAgICAgKiBCU1QgKHNob3VsZCBiZSBCRFQpCisgICAgICogVlNUIChzaG91bGQgYmUgSUNUKQorICAgICAqIENUVCAoc2hvdWxkIGJlIENTVCkgKworICAgICAqIEFDVCAoc2hvdWxkIGJlIENTVCkgKworICAgICAqIEFFVCAoc2hvdWxkIGJlIEVTVCkgKworICAgICAqIE1JVCAoc2hvdWxkIGJlIFdTVCkgKworICAgICAqIElFVCAoc2hvdWxkIGJlIEVTVCkgKworICAgICAqIFBSVCAoc2hvdWxkIGJlIEFTVCkgKworICAgICAqIENOVCAoc2hvdWxkIGJlIE5TVCkKKyAgICAgKiBBR1QgKHNob3VsZCBiZSBBUlNUKQorICAgICAqIEJFVCAoc2hvdWxkIGJlIEVTVCkgKworICAgICAqCisgICAgICogKyBBIHpvbmUgd2l0aCB0aGUgY29ycmVjdCBuYW1lIGFscmVhZHkgZXhpc3RzIGFuZCBtZWFucyBzb21ldGhpbmcKKyAgICAgKiBlbHNlLiBFLmcuLCBFU1QgdXN1YWxseSBpbmRpY2F0ZXMgdGhlIFVTIEVhc3Rlcm4gem9uZSwgc28gaXQgY2Fubm90IGJlCisgICAgICogdXNlZCBmb3IgQnJhemlsIChCRVQpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTaG9ydFpvbmVJRHMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBab25lRGVzY3JpcHRvcltdIEpES18xMTZfUkVGRVJFTkNFX0xJU1QgPSB7CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIk1JVCIsIC02NjAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiSFNUIiwgLTYwMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBU1QiLCAtNTQwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiUFNUIiwgLTQ4MCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlBOVCIsIC00MjAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiTVNUIiwgLTQyMCwgZmFsc2UpLC8vIHVwZGF0ZWQgQXVnIDIwMDMgYWxpdQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDU1QiLCAtMzYwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiSUVUIiwgLTMwMCwgdHJ1ZSksIC8vIHVwZGF0ZWQgRmViIDIwMDYgc3JsCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkVTVCIsIC0zMDAsIGZhbHNlKSwvLyB1cGRhdGVkIEF1ZyAyMDAzIGFsaXUKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiUFJUIiwgLTI0MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDTlQiLCAtMjEwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQUdUIiwgLTE4MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJCRVQiLCAtMTgwLCB0cnVlKSwKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiQ0FUIiwgLTYwLCBmYWxzZSksIC8vIFdyb25nOgorICAgICAgICAgICAgLy8gQXMgb2YgYnVnIDQxMzA4ODUsIGZpeCBDQVQgKENlbnRyYWwgQWZyaWNhKQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDQVQiLCAxMjAsIGZhbHNlKSwgLy8gQWZyaWNhL0hhcmFyZQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJHTVQiLCAwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlVUQyIsIDAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiRUNUIiwgNjAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBUlQiLCAxMjAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJFRVQiLCAxMjAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJFQVQiLCAxODAsIGZhbHNlKSwKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiTUVUIiwgMjEwLCB0cnVlKSwKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzdGFuZGFyZCBVbml4IHpvbmUsIHNvIGRvbid0IHJlbWFwIGl0IC0gTGl1IDNKYW4wMQorICAgICAgICAgICAgLy8gbmV3IFpvbmVEZXNjcmlwdG9yKCJORVQiLCAyNDAsIGZhbHNlKTsKKyAgICAgICAgICAgIC8vIEFzIG9mIGJ1ZyA0MTkxMTY0LCBmaXggTkVUCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIk5FVCIsIDI0MCwgdHJ1ZSksCisgICAgICAgICAgICAvLyBQTFQgYmVoYXZlcyBkaWZmZXJlbnRseSB1bmRlciBkaWZmZXJlbnQgSkRLcywgc28gd2UgZG9uJ3QgY2hlY2sgaXQKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiUExUIiwgMzAwLCBmYWxzZSksIC8vIHVwZGF0ZWQgT2N0IDIwMDMgYWxpdQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJJU1QiLCAzMzAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQlNUIiwgMzYwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlZTVCIsIDQyMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDVFQiLCA0ODAsIGZhbHNlKSwgLy8gdXBkYXRlZCBPY3QgMjAwMyBhbGl1CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkpTVCIsIDU0MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBQ1QiLCA1NzAsIGZhbHNlKSwgLy8gdXBkYXRlZCBPY3QgMjAwMyBhbGl1CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkFFVCIsIDYwMCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlNTVCIsIDY2MCwgZmFsc2UpLAorICAgICAgICAgICAgLy8gbmV3IFpvbmVEZXNjcmlwdG9yKCJOU1QiLCA3MjAsIGZhbHNlKSwKKyAgICAgICAgICAgIC8vIEFzIG9mIGJ1ZyA0MTMwODg1LCBmaXggTlNUIChOZXcgWmVhbGFuZCkKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiTlNUIiwgNzIwLCB0cnVlKSwgLy8gUGFjaWZpYy9BdWNrbGFuZAorCisgICAgICAgICAgICAvLyBbM0phbjAxIExpdV0gVGhyZWUgb2YgdGhlc2Ugem9uZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCisgICAgICAgICAgICAvLyBUaGUgQ1RUIGFuZCBBQ1Qgem9uZXMganVzdCByZW1hcCB0byBBc2lhL1NoYW5naGFpCisgICAgICAgICAgICAvLyBhbmQgQXVzdHJhbGlhL0Rhcndpbi4gIFNpbmNlIHRob3NlIHpvbmVzIGhhdmUgY2hhbmdlZCwKKyAgICAgICAgICAgIC8vIEkgaGF2ZSB1cGRhdGVkIHRoZSB0YWJsZS4gIFRoZSBNRVQgem9uZSB1c2VkIHRvIGJlIG1hcHBlZAorICAgICAgICAgICAgLy8gdG8gQXNpYS9UZWhyYW4gYnV0IHNpbmNlIE1FVCBpcyBhIHN0YW5kYXJkIFVuaXggem9uZSBuYW1lZAorICAgICAgICAgICAgLy8gaW4gdGhlIHNvdXJjZSBkYXRhIHdlIG5vIGxvbmdlciBkbyB0aGlzIGluIGljdSBvciBpY3U0ai4KKyAgICAgICAgfTsKKworICAgICAgICBIYXNodGFibGUgaGFzaCA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gaWRzW2ldOworICAgICAgICAgICAgaWYgKGlkLmxlbmd0aCgpID09IDMpIHsKKyAgICAgICAgICAgICAgICBoYXNoLnB1dChpZCwgbmV3IFpvbmVEZXNjcmlwdG9yKFRpbWVab25lLmdldFRpbWVab25lKGlkKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEpES18xMTZfUkVGRVJFTkNFX0xJU1QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIHJlZmVyZW5jZVpvbmUgPSBKREtfMTE2X1JFRkVSRU5DRV9MSVNUW2ldOworICAgICAgICAgICAgWm9uZURlc2NyaXB0b3IgY3VycmVudFpvbmUgPSAoWm9uZURlc2NyaXB0b3IpaGFzaC5nZXQocmVmZXJlbmNlWm9uZS5nZXRJRCgpKTsKKyAgICAgICAgICAgIGlmIChyZWZlcmVuY2Vab25lLmVxdWFscyhjdXJyZW50Wm9uZSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2sgIiArIHJlZmVyZW5jZVpvbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJGYWlsOiBFeHBlY3RlZCAiICsgcmVmZXJlbmNlWm9uZSArCisgICAgICAgICAgICAgICAgICAgICAgIjsgZ290ICIgKyBjdXJyZW50Wm9uZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGRlc2NyaXB0b3IgZm9yIGEgem9uZTsgdXNlZCB0byByZWdyZXNzIHRoZSBzaG9ydCB6b25lIElEcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgWm9uZURlc2NyaXB0b3IgeworICAgICAgICBTdHJpbmcgaWQ7CisgICAgICAgIGludCBvZmZzZXQ7IC8vIEluIG1pbnV0ZXMKKyAgICAgICAgYm9vbGVhbiBkYXlsaWdodDsKKworICAgICAgICBab25lRGVzY3JpcHRvcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgICAgICB0aGlzLmlkID0gem9uZS5nZXRJRCgpOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSB6b25lLmdldFJhd09mZnNldCgpIC8gNjAwMDA7CisgICAgICAgICAgICB0aGlzLmRheWxpZ2h0ID0gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFpvbmVEZXNjcmlwdG9yKFN0cmluZyBpZCwgaW50IG9mZnNldCwgYm9vbGVhbiBkYXlsaWdodCkgeworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICB0aGlzLmRheWxpZ2h0ID0gZGF5bGlnaHQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkgeyByZXR1cm4gaWQ7IH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIHRoYXQgPSAoWm9uZURlc2NyaXB0b3IpbzsKKyAgICAgICAgICAgIHJldHVybiB0aGF0ICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICBpZC5lcXVhbHModGhhdC5pZCkgJiYKKyAgICAgICAgICAgICAgICBvZmZzZXQgPT0gdGhhdC5vZmZzZXQgJiYKKyAgICAgICAgICAgICAgICBkYXlsaWdodCA9PSB0aGF0LmRheWxpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIGludCBtaW4gPSBvZmZzZXQ7CisgICAgICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgICAgICBpZiAobWluIDwgMCkgeyBzaWduID0gJy0nOyBtaW4gPSAtbWluOyB9CisKKyAgICAgICAgICAgIHJldHVybiAiWm9uZVtcIiIgKyBpZCArICJcIiwgR01UIiArIHNpZ24gKyAobWluLzYwKSArICc6JyArCisgICAgICAgICAgICAgICAgKG1pbiU2MDwxMD8iMCI6IiIpICsgKG1pbiU2MCkgKyAiLCAiICsKKyAgICAgICAgICAgICAgICAoZGF5bGlnaHQgPyAiRGF5bGlnaHQiIDogIlN0YW5kYXJkIikgKyAiXSI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBab25lRGVzY3JpcHRvciBpMSA9IChab25lRGVzY3JpcHRvcilvMTsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIGkyID0gKFpvbmVEZXNjcmlwdG9yKW8yOworICAgICAgICAgICAgaWYgKGkxLm9mZnNldCA+IGkyLm9mZnNldCkgcmV0dXJuIDE7CisgICAgICAgICAgICBpZiAoaTEub2Zmc2V0IDwgaTIub2Zmc2V0KSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoaTEuZGF5bGlnaHQgJiYgIWkyLmRheWxpZ2h0KSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlmICghaTEuZGF5bGlnaHQgJiYgaTIuZGF5bGlnaHQpIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiBpMS5pZC5jb21wYXJlVG8oaTIuaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBFWFBFQ1RFRF9DVVNUT01fSUQgPSAiQ3VzdG9tIjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGZvcm1hdE1pbnV0ZXMoaW50IG1pbikgeworICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgIGlmIChtaW4gPCAwKSB7IHNpZ24gPSAnLSc7IG1pbiA9IC1taW47IH0KKyAgICAgICAgaW50IGggPSBtaW4vNjA7CisgICAgICAgIG1pbiA9IG1pbiU2MDsKKyAgICAgICAgcmV0dXJuICIiICsgc2lnbiArIChoPDEwPyIwIjoiIikgKyBoICsgIjoiICsgKG1pbjwxMD8iMCI6IiIpICsgbWluOworICAgIH0KKyAgICAvKioKKyAgICAgKiBBcyBwYXJ0IG9mIHRoZSBWTSBmaXggKHNlZSBDQ0MgYXBwcm92ZWQgUkZFIDQwMjgwMDYsIGJ1ZworICAgICAqIDQwNDQwMTMpLCBUaW1lWm9uZS5nZXRUaW1lWm9uZSgpIGhhcyBiZWVuIG1vZGlmaWVkIHRvIHJlY29nbml6ZQorICAgICAqIGdlbmVyaWMgSURzIG9mIHRoZSBmb3JtIEdNVFsrLV1oaDptbSwgR01UWystXWhobW0sIGFuZAorICAgICAqIEdNVFsrLV1oaC4gIFRlc3QgdGhpcyBiZWhhdmlvciBoZXJlLgorICAgICAqCisgICAgICogQnVnIDQwNDQwMTMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VzdG9tUGFyc2UoKSB7CisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBJRCAgICAgICAgRXhwZWN0ZWQgb2Zmc2V0IGluIG1pbnV0ZXMKKyAgICAgICAgICAgICJHTVQiLCAgICAgICBudWxsLAorICAgICAgICAgICAgIkdNVC1ZT1VSLkFELkhFUkUiLCBudWxsLAorICAgICAgICAgICAgLy8gIkdNVDAiLCAgICAgIG51bGwsIC8vIElDVSAzLjY6IEFuIE9sc29uIHpvbmUgSURUaGlzIGlzIHBhcnNlZCBieSBzb21lIEpES3MgKFN1biAxLjQuMSksIGJ1dCBub3QgYnkgb3RoZXJzCisgICAgICAgICAgLy8gICJHTVQrMCIsICAgICBuZXcgSW50ZWdlcigwKSwvLyBJQ1UgMy42OiBBbiBPbHNvbiB6b25lIElECisgICAgICAgICAgICAiR01UKzEiLCAgICAgbmV3IEludGVnZXIoNjApLAorICAgICAgICAgICAgIkdNVC0wMDMwIiwgIG5ldyBJbnRlZ2VyKC0zMCksCisgICAgICAgICAgICAvLyBQYXJzZWQgaW4gMS4zLCBwYXJzZSBmYWlsdXJlIGluIDEuNDoKKyAgICAgICAgICAgIC8vIkdNVCsxNTo5OSIsIG5ldyBJbnRlZ2VyKDE1KjYwKzk5KSwKKyAgICAgICAgICAgICJHTVQrIiwgICAgICBudWxsLAorICAgICAgICAgICAgIkdNVC0iLCAgICAgIG51bGwsCisgICAgICAgICAgICAiR01UKzA6IiwgICAgbnVsbCwKKyAgICAgICAgICAgICJHTVQtOiIsICAgICBudWxsLAorICAgICAgICAgICAgIkdNVCswMDEwIiwgIG5ldyBJbnRlZ2VyKDEwKSwgLy8gSW50ZXJwcmV0IHRoaXMgYXMgMDA6MTAKKyAgICAgICAgICAgICJHTVQtMTAiLCAgICBuZXcgSW50ZWdlcigtMTAqNjApLAorICAgICAgICAgICAgLy8gUGFyc2VkIGluIDEuMywgcGFyc2UgZmFpbHVyZSBpbiAxLjQ6CisgICAgICAgICAgICAvLyJHTVQrMzAiLCAgICBuZXcgSW50ZWdlcigzMCksCisgICAgICAgICAgICAiR01ULTM6MzAiLCAgbmV3IEludGVnZXIoLSgzKjYwKzMwKSksCisgICAgICAgICAgICAiR01ULTIzMCIsICAgbmV3IEludGVnZXIoLSgyKjYwKzMwKSksCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZylEQVRBW2ldOworICAgICAgICAgICAgSW50ZWdlciBleHAgPSAoSW50ZWdlcilEQVRBW2krMV07CisgICAgICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWQpOworICAgICAgICAgICAgaWYgKHpvbmUuZ2V0SUQoKS5lcXVhbHMoIkdNVCIpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oaWQgKyAiIC0+IGdlbmVyaWMgR01UIik7CisgICAgICAgICAgICAgICAgLy8gV2hlbiBUaW1lWm9uZS5nZXRUaW1lWm9uZSgpIGNhbid0IHBhcnNlIHRoZSBpZCwgaXQKKyAgICAgICAgICAgICAgICAvLyByZXR1cm5zIEdNVCAtLSBhIGR1YmlvdXMgcHJhY3RpY2UsIGJ1dCByZXF1aXJlZCBmb3IKKyAgICAgICAgICAgICAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgICAgICAgICAgICAgIGlmIChleHAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgb2Zmc2V0IG9mICIgKyBmb3JtYXRNaW51dGVzKGV4cC5pbnRWYWx1ZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgZm9yICIgKyBpZCArICIsIGdvdCBwYXJzZSBmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGlvZmZzZXQgPSB6b25lLmdldFJhd09mZnNldCgpLzYwMDAwOworICAgICAgICAgICAgICAgIFN0cmluZyBvZmZzZXQgPSBmb3JtYXRNaW51dGVzKGlvZmZzZXQpOworICAgICAgICAgICAgICAgIFN0cmluZyBnZW5JRCA9ICJHTVQiKyBvZmZzZXQ7CisgICAgICAgICAgICAgICAgbG9nbG4oaWQgKyAiIC0+ICIgKyB6b25lLmdldElEKCkgKyAiICIgKyBnZW5JRCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGdvdElEID0gem9uZS5nZXRJRCgpOworICAgICAgICAgICAgICAgIGlmIChleHAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgcGFyc2UgZmFpbHVyZSBmb3IgIiArIGlkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZ290IG9mZnNldCBvZiAiICsgb2Zmc2V0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgaWQgIiArIHpvbmUuZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEpESyAxLjMgY3JlYXRlcyBjdXN0b20gem9uZXMgd2l0aCB0aGUgSUQgIkN1c3RvbSIKKyAgICAgICAgICAgICAgICAvLyBKREsgMS40IGNyZWF0ZXMgY3VzdG9tIHpvbmVzIHdpdGggSURzIG9mIHRoZSBmb3JtICJHTVQrMDI6MDAiCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW9mZnNldCAhPSBleHAuaW50VmFsdWUoKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICEoZ290SUQuZXF1YWxzKEVYUEVDVEVEX0NVU1RPTV9JRCkgLyp8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290SUQuZXF1YWxzKGdlbklEKSovKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgb2Zmc2V0IG9mICIgKyBmb3JtYXRNaW51dGVzKGV4cC5pbnRWYWx1ZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGlkIEN1c3RvbSwgZm9yICIgKyBpZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdCBvZmZzZXQgb2YgIiArIG9mZnNldCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGlkICIgKyB6b25lLmdldElEKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGdldERpc3BsYXlOYW1lKCkgQVBJLgorICAgICAqCisgICAgICogQnVnIDQxMTI4NjkKKyAgICAgKiBCdWcgNDAyODAwNgorICAgICAqCisgICAgICogU2VlIGFsc28gQVBJIGNoYW5nZSByZXF1ZXN0IEE0MS4KKyAgICAgKgorICAgICAqIDQvMjEvOTggLSBtYWtlIHNtYXJ0ZXIsIHNvIHRoZSB0ZXN0IHdvcmtzIGlmIHRoZSBleHQgcmVzb3VyY2VzCisgICAgICogYXJlIHByZXNlbnQgb3Igbm90LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgVGltZVpvbmUgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSB6b25lLmdldERpc3BsYXlOYW1lKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgbG9nbG4oIlBTVC0+IiArIG5hbWUpOworCisgICAgICAgIC8vIGRsZiAtIHdlIG5vdyAoMy40LjEpIHJldHVybiBnZW5lcmljIHRpbWUKKyAgICAgICAgaWYgKCFuYW1lLmVxdWFscygiUGFjaWZpYyBUaW1lIikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgXCJQYWNpZmljIFRpbWVcIiwgZ290ICIgKyBuYW1lICsKKyAgICAgICAgICAgICAgICAgICIgZm9yICIgKyB6b25lKTsKKworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORVMgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORVMgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORVMgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICAgICAgICAvLyB0b2RvOiBjaGVjayB0byBzZWUgd2hldGhlciB3ZSBjYW4gdGVzdCBmb3IgYWxsIG9mIHBzdCwgcGR0LCBwdAorICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IEJvb2xlYW4oZmFsc2UpLCBuZXcgSW50ZWdlcihUaW1lWm9uZS5TSE9SVCksICJQU1QiLAorICAgICAgICAgICAgbmV3IEJvb2xlYW4odHJ1ZSksICBuZXcgSW50ZWdlcihUaW1lWm9uZS5TSE9SVCksICJQRFQiLAorICAgICAgICAgICAgbmV3IEJvb2xlYW4oZmFsc2UpLCBuZXcgSW50ZWdlcihUaW1lWm9uZS5MT05HKSwgICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLAorICAgICAgICAgICAgbmV3IEJvb2xlYW4odHJ1ZSksICBuZXcgSW50ZWdlcihUaW1lWm9uZS5MT05HKSwgICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbmFtZSA9IHpvbmUuZ2V0RGlzcGxheU5hbWUoKChCb29sZWFuKURBVEFbaV0pLmJvb2xlYW5WYWx1ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChJbnRlZ2VyKURBVEFbaSsxXSkuaW50VmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMoREFUQVtpKzJdKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgIiArIERBVEFbaSsyXSArICI7IGdvdCAiICsgbmFtZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBkaXNwbGF5IHRoZSBEU1QgbmFtZSBieSBjb25zdHJ1Y3RpbmcgYSBmYWtlCisgICAgICAgIC8vIFBTVCB6b25lIHRoYXQgaGFzIERTVCBhbGwgeWVhciBsb25nLgorICAgICAgICAvLyBkbGYgLSB0aGlzIHRlc3QgaXMgbm8gbG9uZ2VyIHJlbGV2YW50LCB3ZSBkaXNwbGF5IGdlbmVyaWMgdGltZSBub3cKKyAgICAgICAgLy8gICAgc28gdGhlIGJlaGF2aW9yIG9mIHRoZSB0aW1lem9uZSBkb2Vzbid0IG1hdHRlcgorICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lMiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiUFNUIik7CisgICAgICAgIHpvbmUyLnNldFN0YXJ0UnVsZShDYWxlbmRhci5KQU5VQVJZLCAxLCAwKTsKKyAgICAgICAgem9uZTIuc2V0RW5kUnVsZShDYWxlbmRhci5ERUNFTUJFUiwgMzEsIDApOworICAgICAgICBsb2dsbigiTW9kaWZpZWQgUFNUIGluRGF5bGlnaHRUaW1lLT4iICsgem9uZTIuaW5EYXlsaWdodFRpbWUobmV3IERhdGUoKSkpOworICAgICAgICBuYW1lID0gem9uZTIuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBsb2dsbigiTW9kaWZpZWQgUFNULT4iICsgbmFtZSk7CisgICAgICAgIGlmICghbmFtZS5lcXVhbHMoIlBhY2lmaWMgVGltZSIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIFwiUGFjaWZpYyBUaW1lXCIiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBkZWZhdWx0IGRpc3BsYXkgZm9ybWF0IGZvciBMb2NhbGVzCisgICAgICAgIC8vIHdpdGggbm8gZGlzcGxheSBuYW1lIGRhdGEuCisgICAgICAgIExvY2FsZSBtdF9NVCA9IG5ldyBMb2NhbGUoIm10IiwgIk1UIik7CisgICAgICAgIG5hbWUgPSB6b25lLmdldERpc3BsYXlOYW1lKG10X01UKTsKKyAgICAgICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIExJTkUgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORSBNVVNUIEJFIFVQREFURUQgSUYgVEhFIExPQ0FMRSBEQVRBIENIQU5HRVMKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBMSU5FIE1VU1QgQkUgVVBEQVRFRCBJRiBUSEUgTE9DQUxFIERBVEEgQ0hBTkdFUworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAgIGxvZ2xuKCJQU1QobXRfTVQpLT4iICsgbmFtZSk7CisKKyAgICAgICAgLy8gTm93IGJlIHNtYXJ0IC0tIGNoZWNrIHRvIHNlZSBpZiB6aCByZXNvdXJjZSBpcyBldmVuIHByZXNlbnQuCisgICAgICAgIC8vIElmIG5vdCwgd2UgZXhwZWN0IHRoZSBlbiBmYWxsYmFjayBiZWhhdmlvci4KKworICAgICAgICAvLyBpbiBpY3U0aiAyLjEgd2Uga25vdyB3ZSBoYXZlIHRoZSB6aF9DTiBsb2NhbGUgZGF0YSwgdGhvdWdoIGl0J3MgaW5jb21wbGV0ZQorLy8gICAgLyJEYXRlRm9ybWF0Wm9uZURhdGEiLCAKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGVuUkIgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSxMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBtdFJCID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIG10X01UKTsKKyAgICAgICAgYm9vbGVhbiBub1pIID0gZW5SQiA9PSBtdFJCOworCisgICAgICAgIGlmIChub1pIKSB7CisgICAgICAgICAgICBsb2dsbigiV2FybmluZzogTm90IHRlc3RpbmcgdGhlIG10X01UIGJlaGF2aW9yIGJlY2F1c2UgcmVzb3VyY2UgaXMgYWJzZW50Iik7CisgICAgICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJQYWNpZmljIFN0YW5kYXJkIFRpbWUiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgUGFjaWZpYyBTdGFuZGFyZCBUaW1lIGZvciBQU1QgaW4gbXRfTVQgYnV0IGdvdCAiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBkbGYgLSB3ZSB3aWxsIHVzZSBnZW5lcmljIHRpbWUsIG9yIGlmIHVuYXZhaWxhYmxlLCBHTVQgZm9yIHN0YW5kYXJkIHRpbWUgaW4gdGhlIHpvbmUgCisgICAgICAgIC8vICAgICAtIHdlIG5vdyAoMy40LjEpIGhhdmUgbG9jYWxpemF0aW9ucyBmb3IgdGhpcyB6b25lLCBzbyBjaGFuZ2UgdGVzdCBzdHJpbmcKKyAgICAgICAgZWxzZSBpZighbmFtZS5lcXVhbHMoIkxvcyBBbmdlbGVzIChTdGF0aSBVbml0aSkiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQtMDg6MDAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQtODowMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVC0wODAwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01ULTgwMCIpKSB7CisKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBnb3QgJyIgKyBuYW1lICsgIicsIGV4cGVjdGVkIEdNVC0wODowMCBvciBzb21ldGhpbmcgc2ltaWxhclxuIiArCisgICAgICAgICAgICAgICAgICAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iICsKKyAgICAgICAgICAgICAgICAgICJUSEUgQUJPVkUgRkFJTFVSRSBNQVkgSlVTVCBNRUFOIFRIRSBMT0NBTEUgREFUQSBIQVMgQ0hBTkdFRFxuIiArCisgICAgICAgICAgICAgICAgICAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyB0cnkgYSBub24tZXhpc3RlbnQgem9uZQorICAgICAgICB6b25lMiA9IG5ldyBTaW1wbGVUaW1lWm9uZSg5MCo2MCoxMDAwLCAieHl6enkiKTsKKyAgICAgICAgbmFtZSA9IHpvbmUyLmdldERpc3BsYXlOYW1lKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgbG9nbG4oIkdNVCs5MG1pbi0+IiArIG5hbWUpOworICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJHTVQrMDE6MzAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQrMTozMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVCswMTMwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01UKzEzMCIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIEdNVCswMTozMCBvciBzb21ldGhpbmcgc2ltaWxhciIpOworICAgICAgICAKKyAgICAgICAgLy8gY292ZXIgZ2V0RGlzcGxheU5hbWUoKSAtIG51bGwgYXJnCisgICAgICAgIFVMb2NhbGUgc2F2ZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5VUyk7CisgICAgICAgIG5hbWUgPSB6b25lMi5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICBsb2dsbigiR01UKzkwbWluLT4iICsgbmFtZSArICJmb3IgZGVmYXVsdCBkaXNwbGF5IGxvY2FsZSIpOworICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJHTVQrMDE6MzAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQrMTozMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVCswMTMwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01UKzEzMCIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIEdNVCswMTozMCBvciBzb21ldGhpbmcgc2ltaWxhciIpOyAgICAgICAgCisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChzYXZlKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZTIoKSB7CisgICAgICAgIC8vIERhdGUgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSB0aGVuID0gbmV3IERhdGUoMjAwNSwgMCwgMSk7CisKKyAgICAgICAgU3RyaW5nW10gdGltZXpvbmVzID0geyJBbWVyaWNhL0NoaWNhZ28iLCAiRXVyb3BlL01vc2NvdyIsICJFdXJvcGUvUm9tZSIsICJBc2lhL1NoYW5naGFpIiwgIldFVCIgfTsKKyAgICAgICAgU3RyaW5nW10gbG9jYWxlcyA9IHsiZW4iLCAiZnIiLCAiZGUiLCAiamEiLCAiemhfVFciLCAiemhfSGFucyIgfTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsb2NhbGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IG5ldyBVTG9jYWxlKGxvY2FsZXNbal0pOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aW1lem9uZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKHRpbWV6b25lc1tpXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lMCA9IHR6LmdldERpc3BsYXlOYW1lKGxvY2FsZSk7IC8vIGRvZXNuJ3Qgd29yaz8/PworICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZHQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgidnZ2diIsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgZHQuc2V0VGltZVpvbmUodHopOworICAgICAgICAgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZTEgPSBkdC5mb3JtYXQodGhlbik7ICAvLyBkYXRlIHZhbHVlIF9kb2VzXyBtYXR0ZXIgaWYgd2UgZmFsbGJhY2sgdG8gR01UCisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLmdldERpc3BsYXlOYW1lKCkgKyAiLCAiICsgdHouZ2V0SUQoKSArICI6ICIgKyBkaXNwbGF5TmFtZTApOworICAgICAgICAgICAgICAgIGlmICghZGlzcGxheU5hbWUxLmVxdWFscyhkaXNwbGF5TmFtZTApKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKGxvY2FsZS5nZXREaXNwbGF5TmFtZSgpICsgIiwgIiArIHR6LmdldElEKCkgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjogZXhwZWN0ZWQgIiArIGRpc3BsYXlOYW1lMSArICIgYnV0IGdvdDogIiArIGRpc3BsYXlOYW1lMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdlbmVyaWNBUEkoKSB7CisgICAgICAgIFN0cmluZyBpZCA9ICJOZXdHTVQiOworICAgICAgICBpbnQgb2Zmc2V0ID0gMTIzNDU7CisKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZShvZmZzZXQsIGlkKTsKKyAgICAgICAgaWYgKHpvbmUudXNlRGF5bGlnaHRUaW1lKCkpIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgc2hvdWxkIHJldHVybiBmYWxzZSIpOworCisgICAgICAgIFRpbWVab25lIHpvbmVjbG9uZSA9IChUaW1lWm9uZSl6b25lLmNsb25lKCk7CisgICAgICAgIGlmICghem9uZWNsb25lLmVxdWFscyh6b25lKSkgZXJybG4oIkZBSUw6IGNsb25lIG9yIG9wZXJhdG9yPT0gZmFpbGVkIik7CisgICAgICAgIHpvbmVjbG9uZS5zZXRJRCgiYWJjIik7CisgICAgICAgIGlmICh6b25lY2xvbmUuZXF1YWxzKHpvbmUpKSBlcnJsbigiRkFJTDogY2xvbmUgb3Igb3BlcmF0b3IhPSBmYWlsZWQiKTsKKyAgICAgICAgLy8gZGVsZXRlIHpvbmVjbG9uZTsKKworICAgICAgICB6b25lY2xvbmUgPSAoVGltZVpvbmUpem9uZS5jbG9uZSgpOworICAgICAgICBpZiAoIXpvbmVjbG9uZS5lcXVhbHMoem9uZSkpIGVycmxuKCJGQUlMOiBjbG9uZSBvciBvcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICB6b25lY2xvbmUuc2V0UmF3T2Zmc2V0KDQ1Njc4KTsKKyAgICAgICAgaWYgKHpvbmVjbG9uZS5lcXVhbHMoem9uZSkpIGVycmxuKCJGQUlMOiBjbG9uZSBvciBvcGVyYXRvciE9IGZhaWxlZCIpOworCisgICAgICAgIC8vIEMrKyBvbmx5CisgICAgICAgIC8qCisgICAgICAgICAgU2ltcGxlVGltZVpvbmUgY29weSgqem9uZSk7CisgICAgICAgICAgaWYgKCEoY29weSA9PSAqem9uZSkpIGVycmxuKCJGQUlMOiBjb3B5IGNvbnN0cnVjdG9yIG9yIG9wZXJhdG9yPT0gZmFpbGVkIik7CisgICAgICAgICAgY29weSA9ICooU2ltcGxlVGltZVpvbmUqKXpvbmVjbG9uZTsKKyAgICAgICAgICBpZiAoIShjb3B5ID09ICp6b25lY2xvbmUpKSBlcnJsbigiRkFJTDogYXNzaWdubWVudCBvcGVyYXRvciBvciBvcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICAgICovCisKKyAgICAgICAgVGltZVpvbmUgc2F2ZURlZmF1bHQgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoem9uZSk7CisgICAgICAgIFRpbWVab25lIGRlZmF1bHR6b25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpZiAoZGVmYXVsdHpvbmUgPT0gem9uZSkgZXJybG4oIkZBSUw6IERlZmF1bHQgb2JqZWN0IGlzIGlkZW50aWNhbCwgbm90IGNsb25lIik7CisgICAgICAgIGlmICghZGVmYXVsdHpvbmUuZXF1YWxzKHpvbmUpKSBlcnJsbigiRkFJTDogRGVmYXVsdCBvYmplY3QgaXMgbm90IGVxdWFsIik7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZURlZmF1bHQpOworICAgICAgICAvLyBkZWxldGUgZGVmYXVsdHpvbmU7CisgICAgICAgIC8vIGRlbGV0ZSB6b25lY2xvbmU7CisKKy8vICAgICAgLy8gSUNVIDIuNiBDb3ZlcmFnZQorLy8gICAgICBsb2dsbih6b25lLnRvU3RyaW5nKCkpOworLy8gICAgICBsb2dsbih6b25lLmdldERpc3BsYXlOYW1lKCkpOworLy8gICAgICBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIgc3R6YSA9IG5ldyBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIoKFNpbXBsZVRpbWVab25lKSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworLy8gICAgICBzdHphLnNldElEKCJGb28iKTsKKy8vICAgICAgaWYgKHN0emEuaGFzU2FtZVJ1bGVzKGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpKSB7CisvLyAgICAgICAgICBlcnJsbigiRkFJTDogU2ltcGxlVGltZVpvbmVBZGFwdGVyLmhhc1NhbWVSdWxlcyIpOworLy8gICAgICB9CisvLyAgICAgIHN0emEuc2V0UmF3T2Zmc2V0KDMwMDApOworLy8gICAgICBvZmZzZXQgPSBzdHphLmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5CQywgMjAwMSwgQ2FsZW5kYXIuREVDRU1CRVIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LCBDYWxlbmRhci5UVUVTREFZLCAxMio2MCo2MCoxMDAwKTsKKy8vICAgICAgaWYgKG9mZnNldCAhPSAzMDAwKSB7CisvLyAgICAgICAgICBlcnJsbigiRkFJTDogU2ltcGxlVGltZVpvbmVBZGFwdGVyLmdldE9mZnNldCIpOworLy8gICAgICB9CisvLyAgICAgIFNpbXBsZVRpbWVab25lQWRhcHRlciBkdXAgPSAoU2ltcGxlVGltZVpvbmVBZGFwdGVyKSBzdHphLmNsb25lKCk7CisvLyAgICAgIGlmIChzdHphLmhhc2hDb2RlKCkgIT0gZHVwLmhhc2hDb2RlKCkpIHsKKy8vICAgICAgICAgIGVycmxuKCJGQUlMOiBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIuaGFzaENvZGUiKTsKKy8vICAgICAgfQorLy8gICAgICBpZiAoIXN0emEuZXF1YWxzKGR1cCkpIHsKKy8vICAgICAgICAgIGVycmxuKCJGQUlMOiBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIuZXF1YWxzIik7CisvLyAgICAgIH0KKy8vICAgICAgbG9nbG4oc3R6YS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZUFQSSgpCisgICAgeworICAgICAgICAvLyBFcnJvckNvZGUgc3RhdHVzID0gWkVST19FUlJPUjsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gKGludCkoNjAqNjAqMTAwMCoxLjc1KTsgLy8gUGljayBhIHdlaXJkIG9mZnNldAorICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCwgIlRlc3Rab25lIik7CisgICAgICAgIGlmICh6b25lLnVzZURheWxpZ2h0VGltZSgpKSBlcnJsbigiRkFJTDogdXNlRGF5bGlnaHRUaW1lIHNob3VsZCByZXR1cm4gZmFsc2UiKTsKKworICAgICAgICAvLyBFc3RhYmxpc2ggb3VyIGV4cGVjdGVkIHRyYW5zaXRpb24gdGltZXMuICBEbyB0aGlzIHdpdGggYSBub24tRFNUCisgICAgICAgIC8vIGNhbGVuZGFyIHdpdGggdGhlIChhYm92ZSkgZGVjbGFyZWQgbG9jYWwgb2Zmc2V0LgorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgZ2MuY2xlYXIoKTsKKyAgICAgICAgZ2Muc2V0KDE5OTAsIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgbG9uZyBtYXJjaE9uZVN0ZCA9IGdjLmdldFRpbWUoKS5nZXRUaW1lKCk7IC8vIExvY2FsIFN0ZCB0aW1lIG1pZG5pZ2h0CisgICAgICAgIGdjLmNsZWFyKCk7CisgICAgICAgIGdjLnNldCgxOTkwLCBDYWxlbmRhci5KVUxZLCAxKTsKKyAgICAgICAgbG9uZyBqdWx5T25lU3RkID0gZ2MuZ2V0VGltZSgpLmdldFRpbWUoKTsgLy8gTG9jYWwgU3RkIHRpbWUgbWlkbmlnaHQKKworICAgICAgICAvLyBTdGFydGluZyBhbmQgZW5kaW5nIGhvdXJzLCBXQUxMIFRJTUUKKyAgICAgICAgaW50IHN0YXJ0SG91ciA9IChpbnQpKDIuMjUgKiAzNjAwMDAwKTsKKyAgICAgICAgaW50IGVuZEhvdXIgICA9IChpbnQpKDMuNSAgKiAzNjAwMDAwKTsKKworICAgICAgICB6b25lLnNldFN0YXJ0UnVsZShDYWxlbmRhci5NQVJDSCwgMSwgMCwgc3RhcnRIb3VyKTsKKyAgICAgICAgem9uZS5zZXRFbmRSdWxlICAoQ2FsZW5kYXIuSlVMWSwgIDEsIDAsIGVuZEhvdXIpOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICAvLyBpZiAoZmFpbHVyZShzdGF0dXMsICJuZXcgR3JlZ29yaWFuQ2FsZW5kYXIiKSkgcmV0dXJuOworCisgICAgICAgIGxvbmcgbWFyY2hPbmUgPSBtYXJjaE9uZVN0ZCArIHN0YXJ0SG91cjsKKyAgICAgICAgbG9uZyBqdWx5T25lID0ganVseU9uZVN0ZCArIGVuZEhvdXIgLSAzNjAwMDAwOyAvLyBBZGp1c3QgZnJvbSB3YWxsIHRvIFN0ZCB0aW1lCisKKyAgICAgICAgbG9uZyBleHBNYXJjaE9uZSA9IDYzNjI1MTQwMDAwMEw7CisgICAgICAgIGlmIChtYXJjaE9uZSAhPSBleHBNYXJjaE9uZSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIHN0YXJ0IGNvbXB1dGVkIGFzICIgKyBtYXJjaE9uZSArCisgICAgICAgICAgICAgICAgICAiID0gIiArIG5ldyBEYXRlKG1hcmNoT25lKSk7CisgICAgICAgICAgICBsb2dsbigiICAgICAgU2hvdWxkIGJlICAgICAgICAgICAgICAgICAgIiArIGV4cE1hcmNoT25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUoZXhwTWFyY2hPbmUpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgZXhwSnVseU9uZSA9IDY0Njc5MzEwMDAwMEw7CisgICAgICAgIGlmIChqdWx5T25lICE9IGV4cEp1bHlPbmUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBzdGFydCBjb21wdXRlZCBhcyAiICsganVseU9uZSArCisgICAgICAgICAgICAgICAgICAiID0gIiArIG5ldyBEYXRlKGp1bHlPbmUpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICAgICBTaG91bGQgYmUgICAgICAgICAgICAgICAgICAiICsgZXhwSnVseU9uZSArCisgICAgICAgICAgICAgICAgICAiID0gIiArIG5ldyBEYXRlKGV4cEp1bHlPbmUpKTsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyIGNhbDEgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwxLnNldCgxOTkwLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbDIuc2V0KDE5OTAsIENhbGVuZGFyLkpVTkUsIDEpOworICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHpvbmUsIGNhbDEuZ2V0VGltZUluTWlsbGlzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5nZXRUaW1lSW5NaWxsaXMoKSwgbWFyY2hPbmUpOworICAgICAgICBjYWwxLnNldCgxOTkwLCBDYWxlbmRhci5KVU5FLCAxKTsKKyAgICAgICAgY2FsMi5zZXQoMTk5MCwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxKTsKKyAgICAgICAgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaCh6b25lLCBjYWwxLmdldFRpbWVJbk1pbGxpcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0VGltZUluTWlsbGlzKCksIGp1bHlPbmUpOworCisgICAgICAgIGlmICh6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1hcmNoT25lIC0gMTAwMCkpIHx8CisgICAgICAgICAgICAhem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXJjaE9uZSkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN0YXJ0IHJ1bGUgYnJva2VuIik7CisgICAgICAgIGlmICghem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShqdWx5T25lIC0gMTAwMCkpIHx8CisgICAgICAgICAgICB6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKGp1bHlPbmUpKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFbmQgcnVsZSBicm9rZW4iKTsKKworICAgICAgICB6b25lLnNldFN0YXJ0WWVhcigxOTkxKTsKKyAgICAgICAgaWYgKHpvbmUuaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWFyY2hPbmUpKSB8fAorICAgICAgICAgICAgem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShqdWx5T25lIC0gMTAwMCkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN0YXJ0IHllYXIgYnJva2VuIik7CisKKyAgICAgICAgLy8gZmFpbHVyZShzdGF0dXMsICJUZXN0UnVsZUFQSSIpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisgICAgICAgIC8vIGRlbGV0ZSB6b25lOworICAgIH0KKworICAgIHZvaWQgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaChTaW1wbGVUaW1lWm9uZSB0eiwgbG9uZyBtaW4sIGxvbmcgbWF4LCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICAvLyBFcnJvckNvZGUgc3RhdHVzID0gWkVST19FUlJPUjsKKyAgICAgICAgYm9vbGVhbiBzdGFydHNJbkRTVCA9IHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1pbikpOworICAgICAgICAvLyBpZiAoZmFpbHVyZShzdGF0dXMsICJTaW1wbGVUaW1lWm9uZTo6aW5EYXlsaWdodFRpbWUiKSkgcmV0dXJuOworICAgICAgICBpZiAodHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWF4KSkgPT0gc3RhcnRzSW5EU1QpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJFcnJvcjogaW5EYXlsaWdodFRpbWUoIiArIG5ldyBEYXRlKG1heCkgKyAiKSAhPSAiICsgKCFzdGFydHNJbkRTVCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIlNpbXBsZVRpbWVab25lOjppbkRheWxpZ2h0VGltZSIpKSByZXR1cm47CisgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+IElOVEVSVkFMKSB7CisgICAgICAgICAgICBsb25nIG1pZCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtaWQpKSA9PSBzdGFydHNJbkRTVCkgeworICAgICAgICAgICAgICAgIG1pbiA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1heCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIlNpbXBsZVRpbWVab25lOjppbkRheWxpZ2h0VGltZSIpKSByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgbWluICsgIiA9ICIgKyBuZXcgRGF0ZShtaW4pKTsKKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQWZ0ZXI6ICAiICsgbWF4ICsgIiA9ICIgKyBuZXcgRGF0ZShtYXgpKTsKKyAgICAgICAgbG9uZyBtaW5kZWx0YSA9IGV4cGVjdGVkQm91bmRhcnkgLSBtaW47CisgICAgICAgIC8vIG5vdCB1c2VkIGxvbmcgbWF4ZGVsdGEgPSBtYXggLSBleHBlY3RlZEJvdW5kYXJ5OworICAgICAgICBpZiAobWluZGVsdGEgPj0gMCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhIDw9IElOVEVSVkFMKQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEV4cGVjdGVkIGJkcnk6ICAiICsgZXhwZWN0ZWRCb3VuZGFyeSArICIgPSAiICsgbmV3IERhdGUoZXhwZWN0ZWRCb3VuZGFyeSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYmRyeTogICIgKyBleHBlY3RlZEJvdW5kYXJ5ICsgIiA9ICIgKyBuZXcgRGF0ZShleHBlY3RlZEJvdW5kYXJ5KSk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBJTlRFUlZBTCA9IDEwMDsKKworICAgIC8vIEJ1ZyAwMDY7IHZlcmlmeSB0aGUgb2Zmc2V0IGZvciBhIHNwZWNpZmljIHpvbmUuCisgICAgcHVibGljIHZvaWQgVGVzdFBSVE9mZnNldCgpCisgICAgeworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCAiUFJUIiApOworICAgICAgICBpZiggdHogPT0gbnVsbCApIHsKKyAgICAgICAgICAgIGVycmxuKCAiRkFJTDogVGltZVpvbmUoUFJUKSBpcyBudWxsIiApOworICAgICAgICB9CisgICAgICAgIGVsc2V7CisgICAgICAgICAgICBpZiAodHouZ2V0UmF3T2Zmc2V0KCkgIT0gKC00Km1pbGxpc1BlckhvdXIpKQorICAgICAgICAgICAgICAgIHdhcm5sbigiRkFJTDogT2Zmc2V0IGZvciBQUlQgc2hvdWxkIGJlIC00LCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgdHouZ2V0UmF3T2Zmc2V0KCkgLyAoZG91YmxlKW1pbGxpc1BlckhvdXIpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICAvLyBUZXN0IHZhcmlvdXMgY2FsbHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0VmFyaW91c0FQSTUxOCgpCisgICAgeworICAgICAgICBUaW1lWm9uZSB0aW1lX3pvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDMwKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICBsb2dsbigiVGhlIHRpbWV6b25lIGlzICIgKyB0aW1lX3pvbmUuZ2V0SUQoKSk7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS5pbkRheWxpZ2h0VGltZShkKSAhPSB0cnVlKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGluRGF5bGlnaHRUaW1lIHJldHVybmVkIGZhbHNlIik7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS51c2VEYXlsaWdodFRpbWUoKSAhPSB0cnVlKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVzZURheWxpZ2h0VGltZSByZXR1cm5lZCBmYWxzZSIpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUuZ2V0UmF3T2Zmc2V0KCkgIT0gLTgqbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCAiRkFJTDogZ2V0UmF3T2Zmc2V0IHJldHVybmVkIHdyb25nIHZhbHVlIik7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgZ2Muc2V0VGltZShkKTsKKyAgICAgICAgaWYgKHRpbWVfem9uZS5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIGdjLmdldChHcmVnb3JpYW5DYWxlbmRhci5ZRUFSKSwgZ2MuZ2V0KEdyZWdvcmlhbkNhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KEdyZWdvcmlhbkNhbGVuZGFyLkRBWV9PRl9NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmdldChHcmVnb3JpYW5DYWxlbmRhci5EQVlfT0ZfV0VFSyksIDApCisgICAgICAgICAgICAhPSAtNyptaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE9mZnNldCByZXR1cm5lZCB3cm9uZyB2YWx1ZSIpOworICAgIH0KKworICAgIC8vIFRlc3QgZ2V0QXZhaWxhYmxlSUQgQVBJCisgICAgcHVibGljIHZvaWQgVGVzdEdldEF2YWlsYWJsZUlEczkxMygpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCkgPSB7ICIpOworICAgICAgICBTdHJpbmdbXSBzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaSA+IDApIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHNbaV0pOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiB9OyIpOworICAgICAgICBsb2dsbihidWYudG9TdHJpbmcoKSk7CisKKyAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKEdNVCswMjowMCkgPSB7ICIpOworICAgICAgICBzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCsyICogNjAgKiA2MCAqIDEwMDApOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGg7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGkgPiAwKSBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgfTsiKTsKKyAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworCisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpZiAodHogIT0gbnVsbCkKKyAgICAgICAgICAgIGxvZ2xuKCJnZXRUaW1lWm9uZShQU1QpID0gIiArIHR6LmdldElEKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZVpvbmUoUFNUKSA9IG51bGwiKTsKKworICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgICAgICAgIGlmICh0eiAhPSBudWxsKQorICAgICAgICAgICAgbG9nbG4oImdldFRpbWVab25lKEFtZXJpY2EvTG9zX0FuZ2VsZXMpID0gIiArIHR6LmdldElEKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZVpvbmUoUFNUKSA9IG51bGwiKTsKKworICAgICAgICAvLyBCdWcgNDA5NjY5NAorICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJOT05fRVhJU1RFTlQiKTsKKyAgICAgICAgaWYgKHR6ID09IG51bGwpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZVpvbmUoTk9OX0VYSVNURU5UKSA9IG51bGwiKTsKKyAgICAgICAgZWxzZSBpZiAoIXR6LmdldElEKCkuZXF1YWxzKCJHTVQiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRUaW1lWm9uZShOT05fRVhJU1RFTlQpID0gIiArIHR6LmdldElEKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJ1ZyA0MTA3Mjc2CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERTVFNhdmluZ3MoKSB7CisgICAgICAgIC8vIEl0IG1pZ2h0IGJlIGJldHRlciB0byBmaW5kIGEgd2F5IHRvIGludGVncmF0ZSB0aGlzIHRlc3QgaW50byB0aGUgbWFpbiBUaW1lWm9uZQorICAgICAgICAvLyB0ZXN0cyBhYm92ZSwgYnV0IEkgZG9uJ3QgaGF2ZSB0aW1lIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGRvIHRoaXMgKG9yIGlmIGl0J3MKKyAgICAgICAgLy8gZXZlbiByZWFsbHkgYSBnb29kIGlkZWEpLiAgTGV0J3MgY29uc2lkZXIgdGhhdCBhIGZ1dHVyZS4gIC0tcnRnIDEvMjcvOTgKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoLTUgKiBtaWxsaXNQZXJIb3VyLCAiZHN0U2F2aW5nc1Rlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NQVJDSCwgMSwgMCwgMCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgwLjUgKiBtaWxsaXNQZXJIb3VyKSk7CisKKyAgICAgICAgaWYgKHR6LmdldFJhd09mZnNldCgpICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJHb3QgYmFjayBhIHJhdyBvZmZzZXQgb2YgIiArICh0ei5nZXRSYXdPZmZzZXQoKSAvIG1pbGxpc1BlckhvdXIpICsKKyAgICAgICAgICAgICAgICAgICIgaG91cnMgaW5zdGVhZCBvZiAtNSBob3Vycy4iKTsKKyAgICAgICAgaWYgKCF0ei51c2VEYXlsaWdodFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IHRpbWUgem9uZSBzaG91bGQgdXNlIERTVCBidXQgY2xhaW1zIGl0IGRvZXNuJ3QuIik7CisgICAgICAgIGlmICh0ei5nZXREU1RTYXZpbmdzKCkgIT0gMC41ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJTZXQgRFNUIG9mZnNldCB0byAwLjUgaG91ciwgYnV0IGdvdCBiYWNrICIgKyAodHouZ2V0RFNUU2F2aW5ncygpIC8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlsbGlzUGVySG91cikgKyAiIGhvdXJzIGluc3RlYWQuIik7CisKKyAgICAgICAgaW50IG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTAgQU0sIDEvMS85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLkpVTkUsIDEsIENhbGVuZGFyLk1PTkRBWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQuNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTAgQU0sIDYvMS85OCBzaG91bGQgaGF2ZSBiZWVuIC00LjUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIHR6LnNldERTVFNhdmluZ3MobWlsbGlzUGVySG91cik7CisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMCBBTSwgMS8xLzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuSlVORSwgMSwgQ2FsZW5kYXIuTU9OREFZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNCAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTAgQU0sIDYvMS85OCAod2l0aCBhIDEtaG91ciBEU1Qgb2Zmc2V0KSBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWcgNDEwNzU3MAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbHRlcm5hdGVSdWxlcygpIHsKKyAgICAgICAgLy8gTGlrZSBUZXN0RFNUU2F2aW5ncywgdGhpcyB0ZXN0IHNob3VsZCBwcm9iYWJseSBiZSBpbnRlZ3JhdGVkIHNvbWVob3cgd2l0aCB0aGUgbWFpbgorICAgICAgICAvLyB0ZXN0IGF0IHRoZSB0b3Agb2YgdGhpcyBjbGFzcywgYnV0IEkgZGlkbid0IGhhdmUgdGltZSB0byBmaWd1cmUgb3V0IGhvdyB0byBkbyB0aGF0LgorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAtLXJ0ZyAxLzI4Lzk4CisKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoLTUgKiBtaWxsaXNQZXJIb3VyLCAiYWx0ZXJuYXRlUnVsZVRlc3QiKTsKKworICAgICAgICAvLyB0ZXN0IHRoZSBkYXktb2YtbW9udGggQVBJCisgICAgICAgIHR6LnNldFN0YXJ0UnVsZShDYWxlbmRhci5NQVJDSCwgMTAsIDEyICogbWlsbGlzUGVySG91cik7CisgICAgICAgIHR6LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgMjAsIDEyICogbWlsbGlzUGVySG91cik7CisKKyAgICAgICAgaW50IG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDMvNS85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk1BUkNILCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNVTkRBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNCAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMy8xNS85OCBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDE1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDEwLzE1Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTQgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuT0NUT0JFUiwgMjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5TVU5EQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDEwLzI1Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIC8vIHRlc3QgdGhlIGRheS1vZi13ZWVrLWFmdGVyLWRheS1pbi1tb250aCBBUEkKKyAgICAgICAgdHouc2V0U3RhcnRSdWxlKENhbGVuZGFyLk1BUkNILCAxMCwgQ2FsZW5kYXIuRlJJREFZLCAxMiAqIG1pbGxpc1BlckhvdXIsIHRydWUpOworICAgICAgICB0ei5zZXRFbmRSdWxlKENhbGVuZGFyLk9DVE9CRVIsIDIwLCBDYWxlbmRhci5GUklEQVksIDEyICogbWlsbGlzUGVySG91ciwgZmFsc2UpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDExLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VETkVTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAzLzExLzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDE0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDMvMTQvOTggc2hvdWxkIGhhdmUgYmVlbiAtNCBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5PQ1RPQkVSLCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC00ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAxMC8xNS85OCBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDE3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDEwLzE3Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RFcXVpdmFsZW5jeUdyb3VwcygpIHsKKyAgICAgICAgU3RyaW5nIGlkID0gIkFtZXJpY2EvTG9zX0FuZ2VsZXMiOworICAgICAgICBpbnQgbiA9IFRpbWVab25lLmNvdW50RXF1aXZhbGVudElEcyhpZCk7CisgICAgICAgIGlmIChuIDwgMikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvdW50RXF1aXZhbGVudElEcygiICsgaWQgKyAiKSByZXR1cm5lZCAiICsgbiArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCA+PSAyIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBUaW1lWm9uZS5nZXRFcXVpdmFsZW50SUQoaWQsIGkpOworICAgICAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRFcXVpdmFsZW50SUQoIiArIGlkICsgIiwgIiArIGkgKworICAgICAgICAgICAgICAgICAgICAgICIpIHJldHVybmVkIFwiIiArIHMgKyAiXCIsIGV4cGVjdGVkIHZhbGlkIElEIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgaSArICI6IiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSkIjNTQ4MCAtIGVxdWl2YWxlbnQgSURzIHNob3VsZCBub3QgYmUgZW1wdHkgd2l0aGluIHJhbmdlCisgICAgICAgIFN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50IG5FcXVpdiA9IFRpbWVab25lLmNvdW50RXF1aXZhbGVudElEcyhpZHNbaV0pOworICAgICAgICAgICAgLy8gRWFjaCBlcXVpdmFsZW50IElEIG11c3Qgbm90IGJlIGVtcHR5CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG5FcXVpdjsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGVxdWl2SUQgPSBUaW1lWm9uZS5nZXRFcXVpdmFsZW50SUQoaWRzW2ldLCBqKTsKKyAgICAgICAgICAgICAgICBpZiAoZXF1aXZJRC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRFcXVpdmFsZW50SUQoIiArIGlkc1tpXSArICIsICIgKyBpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSByZXR1cm5lZCBcIiIgKyBlcXVpdklEICsgIlwiLCBleHBlY3RlZCB2YWxpZCBJRCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVxdWl2YWxlbnQgSUQgb3V0IG9mIHJhbmdlIG11c3QgYmUgZW1wdHkKKyAgICAgICAgICAgIFN0cmluZyBvdXRPZlJhbmdlSUQgPSBUaW1lWm9uZS5nZXRFcXVpdmFsZW50SUQoaWRzW2ldLCBuRXF1aXYpOworICAgICAgICAgICAgaWYgKG91dE9mUmFuZ2VJRC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEVxdWl2YWxlbnRJRCgiICsgaWRzW2ldICsgIiwgIiArIGkgKworICAgICAgICAgICAgICAgICAgICAgICAgIikgcmV0dXJuZWQgXCIiICsgb3V0T2ZSYW5nZUlEICsgIlwiLCBleHBlY3RlZCBlbXB0eSBzdHJpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3VudHJpZXMoKSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSBBbWVyaWNhL0xvc19BbmdlbGVzIGlzIGluIHRoZSAiVVMiIGdyb3VwLCBhbmQKKyAgICAgICAgLy8gQXNpYS9Ub2t5byBpc24ndC4gIFZpY2UgdmVyc2EgZm9yIHRoZSAiSlAiIGdyb3VwLgorCisgICAgICAgIFN0cmluZ1tdIHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoIlVTIik7CisgICAgICAgIGJvb2xlYW4gbGEgPSBmYWxzZSwgdG9reW8gPSBmYWxzZTsKKyAgICAgICAgU3RyaW5nIGxhWm9uZSA9ICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgdG9reW9ab25lID0gIkFzaWEvVG9reW8iOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc1tpXS5lcXVhbHMobGFab25lKSkgeworICAgICAgICAgICAgICAgIGxhID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzW2ldLmVxdWFscyh0b2t5b1pvbmUpKSB7CisgICAgICAgICAgICAgICAgdG9reW8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghbGEgKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxhWm9uZSArICIgaW4gVVMgPSAiICsgbGEpOworICAgICAgICB9CisgICAgICAgIGlmICh0b2t5bykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0b2t5b1pvbmUgKyAiIGluIFVTID0gIiArIHRva3lvKTsKKyAgICAgICAgfQorICAgICAgICBzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCJKUCIpOworICAgICAgICBsYSA9IGZhbHNlOyB0b2t5byA9IGZhbHNlOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc1tpXS5lcXVhbHMobGFab25lKSkgeworICAgICAgICAgICAgICAgIGxhID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzW2ldLmVxdWFscyh0b2t5b1pvbmUpKSB7CisgICAgICAgICAgICAgICAgdG9reW8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChsYSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsYVpvbmUgKyAiIGluIEpQID0gIiArIGxhKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRva3lvKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHRva3lvWm9uZSArICIgaW4gSlAgPSAiICsgdG9reW8pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZyYWN0aW9uYWxEU1QoKSB7CisJICAgIFN0cmluZyB0ek5hbWUgPSAiQXVzdHJhbGlhL0xvcmRfSG93ZSI7IC8vIDMwIG1pbiBvZmZzZXQKKwkgICAgamF2YS51dGlsLlRpbWVab25lIHR6X2phdmEgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUodHpOYW1lKTsKKwkgICAgaW50IGRzdF9qYXZhID0gMDsKKwkgICAgdHJ5IHsKKwkgICAgICAgIC8vIGhhY2sgc28gdGVzdCBjb21waWxlcyBhbmQgcnVucyBpbiBib3RoIEpESyAxLjMgYW5kIEpESyAxLjQKKwkgICAgICAgIGZpbmFsIE9iamVjdFtdIGFyZ3MgPSBuZXcgT2JqZWN0WzBdOworCSAgICAgICAgZmluYWwgQ2xhc3NbXSBhcmd0eXBlcyA9IG5ldyBDbGFzc1swXTsKKwkgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCBtID0gdHpfamF2YS5nZXRDbGFzcygpLmdldE1ldGhvZCgiZ2V0RFNUU2F2aW5ncyIsIGFyZ3R5cGVzKTsgCisJICAgICAgICBkc3RfamF2YSA9ICgoSW50ZWdlcikgbS5pbnZva2UodHpfamF2YSwgYXJncykpLmludFZhbHVlKCk7CisJICAgICAgICBpZiAoZHN0X2phdmEgPD0gMCB8fCBkc3RfamF2YSA+PSAzNjAwMDAwKSB7IC8vIGRpZG4ndCBnZXQgdGhlIGZyYWN0aW9uYWwgdGltZSB6b25lIHdlIHdhbnRlZAorCSAgICAgICAgZXJybG4oImRpZG4ndCBnZXQgZnJhY3Rpb25hbCB0aW1lIHpvbmUhIik7CisJICAgICAgICB9CisJICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7CisJICAgICAgICAvLyBzZWUgSkRLVGltZVpvbmUgZm9yIHRoZSByZWFzb24gZm9yIHRoaXMgY29kZQorCSAgICAgICAgZHN0X2phdmEgPSAzNjAwMDAwOworCSAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKwkgICAgICAgIC8vIHNlZSBKREtUaW1lWm9uZSBmb3IgdGhlIHJlYXNvbiBmb3IgdGhpcyBjb2RlCisJICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisJICAgICAgICBkc3RfamF2YSA9IDM2MDAwMDA7CisJICAgIH0gY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworCSAgICAgICAgLy8gc2VlIEpES1RpbWVab25lIGZvciB0aGUgcmVhc29uIGZvciB0aGlzIGNvZGUKKwkgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKwkgICAgICAgIGRzdF9qYXZhID0gMzYwMDAwMDsKKwkgICAgfSBjYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgeworCSAgICAgICAgd2FybmxuKGUuZ2V0TWVzc2FnZSgpKTsKKwkgICAgICAgIHJldHVybjsKKwkgICAgfQorCSAgICAKKwkgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSB0el9pY3UgPSBjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKHR6TmFtZSk7CisJICAgIGludCBkc3RfaWN1ID0gdHpfaWN1LmdldERTVFNhdmluZ3MoKTsKKwkKKwkgICAgaWYgKGRzdF9qYXZhICE9IGRzdF9pY3UpIHsKKwkgICAgICAgIHdhcm5sbigiamF2YSByZXBvcnRzIGRzdCBzYXZpbmdzIG9mICIgKyBkc3RfamF2YSArCisJICAgICAgICAgICIgYnV0IGljdSByZXBvcnRzICIgKyBkc3RfaWN1ICsgCisJICAgICAgICAgICIgZm9yIHR6ICIgKyB0el9pY3UuZ2V0SUQoKSk7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBsb2dsbigiYm90aCBqYXZhIGFuZCBpY3UgcmVwb3J0IGRzdCBzYXZpbmdzIG9mICIgKyBkc3RfamF2YSArICIgZm9yIHR6ICIgKyB0el9pY3UuZ2V0SUQoKSk7CisJICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0T2Zmc2V0RGF0ZSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5KQU5VQVJZLCAzMCk7CisgICAgICAgIGxvbmcgZGF0ZSA9IGNhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKworICAgIFRpbWVab25lIHR6X2ljdSA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgICAgaW50IG9mZnNldCA9IHR6X2ljdS5nZXRPZmZzZXQoZGF0ZSk7CisgICAgaWYgKG9mZnNldCAhPSAtMjg4MDAwMDApIHsKKyAgICAgICAgZXJybG4oImV4cGVjdGVkIG9mZnNldCAtMjg4MDAwMDAsIGdvdDogIiArIG9mZnNldCk7CisgICAgfQorCisgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5KVUxZLCAzMCk7CisgICAgZGF0ZSA9IGNhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICBvZmZzZXQgPSB0el9pY3UuZ2V0T2Zmc2V0KGRhdGUpOworICAgIGlmIChvZmZzZXQgIT0gLTI1MjAwMDAwKSB7CisgICAgICAgIGVycmxuKCJleHBlY3RlZCBvZmZzZXQgLTI1MjAwMDAwLCBnb3Q6ICIgKyBvZmZzZXQpOworICAgIH0KKyAgICB9CisKKyAgICAvLyBqYjQ0ODQKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2ltcGxlVGltZVpvbmVTZXJpYWxpemF0aW9uKCkgCisgICAgeworICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHowID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiTXlUaW1lWm9uZSIpOworICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHoxID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHoyID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICBzdHoyLnNldFJhd09mZnNldCgwKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6MyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgc3R6My5zZXRTdGFydFllYXIoMTAwKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6NCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgc3R6NC5zZXRTdGFydFllYXIoMTAwMCk7CisgICAgICAgIHN0ejQuc2V0RFNUU2F2aW5ncygxODAwMDAwKTsKKyAgICAgICAgc3R6NC5zZXRTdGFydFJ1bGUoMywgNCwgMTgwMDAwKTsKKyAgICAgICAgc3R6NC5zZXRFbmRSdWxlKDYsIDMsIDQsIDM2MDAwMCk7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHN0ejUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgIHN0ejUuc2V0U3RhcnRSdWxlKDIsIDMsIDQsIDM2MDAwMCk7CisgICAgICAgIHN0ejUuc2V0RW5kUnVsZSg2LCAzLCA0LCAzNjAwMDApOworICAgICAgICAKKyAgICAgICAgU2ltcGxlVGltZVpvbmVbXSBzdHpzID0geyBzdHowLCBzdHoxLCBzdHoyLCBzdHozLCBzdHo0LCBzdHo1LCB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3R6cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6ID0gc3R6c1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KHN0eik7CisgICAgICAgICAgICAgICAgb29zLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJpZDogIiArIHN0ei5nZXRJRCgpICsgIiBsZW5ndGg6ICIgKyBieXRlcy5sZW5ndGgpOworCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYmFpcyA9IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcyk7CisgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGJhaXMpOworCisgICAgICAgICAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6RGVzZXJpYWxpemVkID0gKFNpbXBsZVRpbWVab25lKW9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAgICAgb2lzLmNsb3NlKCk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInRpbWUgem9uZXMiLCBzdHosIHN0ekRlc2VyaWFsaXplZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGNjZSkgeworICAgICAgICAgICAgICAgIGNjZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGRlc2VyaWFsaXplIFNpbXBsZVRpbWVab25lIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gaW9lKSB7CisgICAgICAgICAgICAgICAgZXJybG4oaW9lLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBjbmZlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oY25mZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gamI0MTc1CisgICAgLyogR2VuZXJhdGVkIGJ5IG9yZy51bmljb2RlLmNsZHIudG9vbC5Db3VudEl0ZW1zICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdGltZVpvbmVUZXN0TmFtZXMgPSB7CisgICAgICAgICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLAorICAgICAgICAiQW1lcmljYS9BcmdlbnRpbmEvQ2F0YW1hcmNhIiwgIkFtZXJpY2EvQ2F0YW1hcmNhIiwKKyAgICAgICAgIkFtZXJpY2EvQXJnZW50aW5hL0NvcmRvYmEiLCAiQW1lcmljYS9Db3Jkb2JhIiwKKyAgICAgICAgIkFtZXJpY2EvQXJnZW50aW5hL0p1anV5IiwgIkFtZXJpY2EvSnVqdXkiLAorICAgICAgICAiQW1lcmljYS9BcmdlbnRpbmEvTWVuZG96YSIsICJBbWVyaWNhL01lbmRvemEiLAorICAgICAgICAiQW1lcmljYS9BdGthIiwgIkFtZXJpY2EvQWRhayIsCisgICAgICAgICJBbWVyaWNhL0Vuc2VuYWRhIiwgIkFtZXJpY2EvVGlqdWFuYSIsCisgICAgICAgICJBbWVyaWNhL0ZvcnRfV2F5bmUiLCAiQW1lcmljYS9JbmRpYW5hcG9saXMiLAorICAgICAgICAiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpcyIsICJBbWVyaWNhL0luZGlhbmFwb2xpcyIsCisgICAgICAgICJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGUiLCAiQW1lcmljYS9Mb3Vpc3ZpbGxlIiwKKyAgICAgICAgIkFtZXJpY2EvS25veF9JTiIsICJBbWVyaWNhL0luZGlhbmEvS25veCIsCisgICAgICAgICJBbWVyaWNhL1BvcnRvX0FjcmUiLCAiQW1lcmljYS9SaW9fQnJhbmNvIiwKKyAgICAgICAgIkFtZXJpY2EvUm9zYXJpbyIsICJBbWVyaWNhL0NvcmRvYmEiLAorICAgICAgICAiQW1lcmljYS9WaXJnaW4iLCAiQW1lcmljYS9TdF9UaG9tYXMiLAorICAgICAgICAiQXNpYS9Bc2hraGFiYWQiLCAiQXNpYS9Bc2hnYWJhdCIsCisgICAgICAgICJBc2lhL0NodW5na2luZyIsICJBc2lhL0Nob25ncWluZyIsCisgICAgICAgICJBc2lhL0RhY2NhIiwgIkFzaWEvRGhha2EiLAorICAgICAgICAiQXNpYS9Jc3RhbmJ1bCIsICJFdXJvcGUvSXN0YW5idWwiLAorICAgICAgICAiQXNpYS9NYWNhbyIsICJBc2lhL01hY2F1IiwKKyAgICAgICAgIkFzaWEvVGVsX0F2aXYiLCAiQXNpYS9KZXJ1c2FsZW0iLAorICAgICAgICAiQXNpYS9UaGltYnUiLCAiQXNpYS9UaGltcGh1IiwKKyAgICAgICAgIkFzaWEvVWp1bmdfUGFuZGFuZyIsICJBc2lhL01ha2Fzc2FyIiwKKyAgICAgICAgIkFzaWEvVWxhbl9CYXRvciIsICJBc2lhL1VsYWFuYmFhdGFyIiwKKyAgICAgICAgIkF1c3RyYWxpYS9BQ1QiLCAiQXVzdHJhbGlhL1N5ZG5leSIsCisgICAgICAgICJBdXN0cmFsaWEvQ2FuYmVycmEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsCisgICAgICAgICJBdXN0cmFsaWEvTEhJIiwgIkF1c3RyYWxpYS9Mb3JkX0hvd2UiLAorICAgICAgICAiQXVzdHJhbGlhL05TVyIsICJBdXN0cmFsaWEvU3lkbmV5IiwKKyAgICAgICAgIkF1c3RyYWxpYS9Ob3J0aCIsICJBdXN0cmFsaWEvRGFyd2luIiwKKyAgICAgICAgIkF1c3RyYWxpYS9RdWVlbnNsYW5kIiwgIkF1c3RyYWxpYS9CcmlzYmFuZSIsCisgICAgICAgICJBdXN0cmFsaWEvU291dGgiLCAiQXVzdHJhbGlhL0FkZWxhaWRlIiwKKyAgICAgICAgIkF1c3RyYWxpYS9UYXNtYW5pYSIsICJBdXN0cmFsaWEvSG9iYXJ0IiwKKyAgICAgICAgIkF1c3RyYWxpYS9WaWN0b3JpYSIsICJBdXN0cmFsaWEvTWVsYm91cm5lIiwKKyAgICAgICAgIkF1c3RyYWxpYS9XZXN0IiwgIkF1c3RyYWxpYS9QZXJ0aCIsCisgICAgICAgICJBdXN0cmFsaWEvWWFuY293aW5uYSIsICJBdXN0cmFsaWEvQnJva2VuX0hpbGwiLAorICAgICAgICAiQnJhemlsL0FjcmUiLCAiQW1lcmljYS9SaW9fQnJhbmNvIiwKKyAgICAgICAgIkJyYXppbC9EZU5vcm9uaGEiLCAiQW1lcmljYS9Ob3JvbmhhIiwKKyAgICAgICAgIkJyYXppbC9FYXN0IiwgIkFtZXJpY2EvU2FvX1BhdWxvIiwKKyAgICAgICAgIkJyYXppbC9XZXN0IiwgIkFtZXJpY2EvTWFuYXVzIiwKKyAgICAgICAgIkNTVDZDRFQiLCAiQW1lcmljYS9DaGljYWdvIiwKKyAgICAgICAgIkNhbmFkYS9BdGxhbnRpYyIsICJBbWVyaWNhL0hhbGlmYXgiLAorICAgICAgICAiQ2FuYWRhL0NlbnRyYWwiLCAiQW1lcmljYS9XaW5uaXBlZyIsCisgICAgICAgICJDYW5hZGEvRWFzdC1TYXNrYXRjaGV3YW4iLCAiQW1lcmljYS9SZWdpbmEiLAorICAgICAgICAiQ2FuYWRhL0Vhc3Rlcm4iLCAiQW1lcmljYS9Ub3JvbnRvIiwKKyAgICAgICAgIkNhbmFkYS9Nb3VudGFpbiIsICJBbWVyaWNhL0VkbW9udG9uIiwKKyAgICAgICAgIkNhbmFkYS9OZXdmb3VuZGxhbmQiLCAiQW1lcmljYS9TdF9Kb2hucyIsCisgICAgICAgICJDYW5hZGEvUGFjaWZpYyIsICJBbWVyaWNhL1ZhbmNvdXZlciIsCisgICAgICAgICJDYW5hZGEvU2Fza2F0Y2hld2FuIiwgIkFtZXJpY2EvUmVnaW5hIiwKKyAgICAgICAgIkNhbmFkYS9ZdWtvbiIsICJBbWVyaWNhL1doaXRlaG9yc2UiLAorICAgICAgICAiQ2hpbGUvQ29udGluZW50YWwiLCAiQW1lcmljYS9TYW50aWFnbyIsCisgICAgICAgICJDaGlsZS9FYXN0ZXJJc2xhbmQiLCAiUGFjaWZpYy9FYXN0ZXIiLAorICAgICAgICAiQ3ViYSIsICJBbWVyaWNhL0hhdmFuYSIsCisgICAgICAgICJFU1QiLCAiQW1lcmljYS9JbmRpYW5hcG9saXMiLAorICAgICAgICAiRVNUNUVEVCIsICJBbWVyaWNhL05ld19Zb3JrIiwKKyAgICAgICAgIkVneXB0IiwgIkFmcmljYS9DYWlybyIsCisgICAgICAgICJFaXJlIiwgIkV1cm9wZS9EdWJsaW4iLAorICAgICAgICAiRXRjL0dNVCswIiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXRjL0dNVC0wIiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXRjL0dNVDAiLCAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvR3JlZW53aWNoIiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXRjL1VDVCIsICJFdGMvR01UIiwKKyAgICAgICAgIkV0Yy9VVEMiLCAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvVW5pdmVyc2FsIiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXRjL1p1bHUiLCAiRXRjL0dNVCIsCisgICAgICAgICJFdXJvcGUvTmljb3NpYSIsICJBc2lhL05pY29zaWEiLAorICAgICAgICAiRXVyb3BlL1RpcmFzcG9sIiwgIkV1cm9wZS9DaGlzaW5hdSIsCisgICAgICAgICJHQiIsICJFdXJvcGUvTG9uZG9uIiwKKyAgICAgICAgIkdCLUVpcmUiLCAiRXVyb3BlL0xvbmRvbiIsCisgICAgICAgICJHTVQiLCAiRXRjL0dNVCIsCisgICAgICAgICJHTVQrMCIsICJFdGMvR01UIiwKKyAgICAgICAgIkdNVC0wIiwgIkV0Yy9HTVQiLAorICAgICAgICAiR01UMCIsICJFdGMvR01UIiwKKyAgICAgICAgIkdyZWVud2ljaCIsICJFdGMvR01UIiwKKyAgICAgICAgIkhTVCIsICJQYWNpZmljL0hvbm9sdWx1IiwKKyAgICAgICAgIkhvbmdrb25nIiwgIkFzaWEvSG9uZ19Lb25nIiwKKyAgICAgICAgIkljZWxhbmQiLCAiQXRsYW50aWMvUmV5a2phdmlrIiwKKyAgICAgICAgIklyYW4iLCAiQXNpYS9UZWhyYW4iLAorICAgICAgICAiSXNyYWVsIiwgIkFzaWEvSmVydXNhbGVtIiwKKyAgICAgICAgIkphbWFpY2EiLCAiQW1lcmljYS9KYW1haWNhIiwKKyAgICAgICAgIkphcGFuIiwgIkFzaWEvVG9reW8iLAorICAgICAgICAiS3dhamFsZWluIiwgIlBhY2lmaWMvS3dhamFsZWluIiwKKyAgICAgICAgIkxpYnlhIiwgIkFmcmljYS9Ucmlwb2xpIiwKKyAgICAgICAgIk1TVCIsICJBbWVyaWNhL1Bob2VuaXgiLAorICAgICAgICAiTVNUN01EVCIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICJNZXhpY28vQmFqYU5vcnRlIiwgIkFtZXJpY2EvVGlqdWFuYSIsCisgICAgICAgICJNZXhpY28vQmFqYVN1ciIsICJBbWVyaWNhL01hemF0bGFuIiwKKyAgICAgICAgIk1leGljby9HZW5lcmFsIiwgIkFtZXJpY2EvTWV4aWNvX0NpdHkiLAorICAgICAgICAiTloiLCAiUGFjaWZpYy9BdWNrbGFuZCIsCisgICAgICAgICJOWi1DSEFUIiwgIlBhY2lmaWMvQ2hhdGhhbSIsCisgICAgICAgICJOYXZham8iLCAiQW1lcmljYS9TaGlwcm9jayIsIC8qIGZpeGVkIGZyb20gTWFyaydzIG9yaWdpbmFsICovCisgICAgICAgICJQUkMiLCAiQXNpYS9TaGFuZ2hhaSIsCisgICAgICAgICJQU1Q4UERUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLAorICAgICAgICAiUGFjaWZpYy9TYW1vYSIsICJQYWNpZmljL1BhZ29fUGFnbyIsCisgICAgICAgICJQb2xhbmQiLCAiRXVyb3BlL1dhcnNhdyIsCisgICAgICAgICJQb3J0dWdhbCIsICJFdXJvcGUvTGlzYm9uIiwKKyAgICAgICAgIlJPQyIsICJBc2lhL1RhaXBlaSIsCisgICAgICAgICJST0siLCAiQXNpYS9TZW91bCIsCisgICAgICAgICJTaW5nYXBvcmUiLCAiQXNpYS9TaW5nYXBvcmUiLAorICAgICAgICAiU3lzdGVtVi9BU1Q0IiwgIkFtZXJpY2EvUHVlcnRvX1JpY28iLAorICAgICAgICAiU3lzdGVtVi9BU1Q0QURUIiwgIkFtZXJpY2EvSGFsaWZheCIsCisgICAgICAgICJTeXN0ZW1WL0NTVDYiLCAiQW1lcmljYS9SZWdpbmEiLAorICAgICAgICAiU3lzdGVtVi9DU1Q2Q0RUIiwgIkFtZXJpY2EvQ2hpY2FnbyIsCisgICAgICAgICJTeXN0ZW1WL0VTVDUiLCAiQW1lcmljYS9JbmRpYW5hcG9saXMiLAorICAgICAgICAiU3lzdGVtVi9FU1Q1RURUIiwgIkFtZXJpY2EvTmV3X1lvcmsiLAorICAgICAgICAiU3lzdGVtVi9IU1QxMCIsICJQYWNpZmljL0hvbm9sdWx1IiwKKyAgICAgICAgIlN5c3RlbVYvTVNUNyIsICJBbWVyaWNhL1Bob2VuaXgiLAorICAgICAgICAiU3lzdGVtVi9NU1Q3TURUIiwgIkFtZXJpY2EvRGVudmVyIiwKKyAgICAgICAgIlN5c3RlbVYvUFNUOCIsICJQYWNpZmljL1BpdGNhaXJuIiwKKyAgICAgICAgIlN5c3RlbVYvUFNUOFBEVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwKKyAgICAgICAgIlN5c3RlbVYvWVNUOSIsICJQYWNpZmljL0dhbWJpZXIiLAorICAgICAgICAiU3lzdGVtVi9ZU1Q5WURUIiwgIkFtZXJpY2EvQW5jaG9yYWdlIiwKKyAgICAgICAgIlR1cmtleSIsICJFdXJvcGUvSXN0YW5idWwiLAorICAgICAgICAiVUNUIiwgIkV0Yy9HTVQiLAorICAgICAgICAiVVMvQWxhc2thIiwgIkFtZXJpY2EvQW5jaG9yYWdlIiwKKyAgICAgICAgIlVTL0FsZXV0aWFuIiwgIkFtZXJpY2EvQWRhayIsCisgICAgICAgICJVUy9Bcml6b25hIiwgIkFtZXJpY2EvUGhvZW5peCIsCisgICAgICAgICJVUy9DZW50cmFsIiwgIkFtZXJpY2EvQ2hpY2FnbyIsCisgICAgICAgICJVUy9FYXN0LUluZGlhbmEiLCAiQW1lcmljYS9JbmRpYW5hcG9saXMiLAorICAgICAgICAiVVMvRWFzdGVybiIsICJBbWVyaWNhL05ld19Zb3JrIiwKKyAgICAgICAgIlVTL0hhd2FpaSIsICJQYWNpZmljL0hvbm9sdWx1IiwKKyAgICAgICAgIlVTL0luZGlhbmEtU3RhcmtlIiwgIkFtZXJpY2EvSW5kaWFuYS9Lbm94IiwKKyAgICAgICAgIlVTL01pY2hpZ2FuIiwgIkFtZXJpY2EvRGV0cm9pdCIsCisgICAgICAgICJVUy9Nb3VudGFpbiIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICJVUy9QYWNpZmljIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLAorICAgICAgICAiVVMvUGFjaWZpYy1OZXciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsCisgICAgICAgICJVUy9TYW1vYSIsICJQYWNpZmljL1BhZ29fUGFnbyIsCisgICAgICAgICJVVEMiLCAiRXRjL0dNVCIsCisgICAgICAgICJVbml2ZXJzYWwiLCAiRXRjL0dNVCIsCisgICAgICAgICJXLVNVIiwgIkV1cm9wZS9Nb3Njb3ciLAorICAgICAgICAiWnVsdSIsICJFdGMvR01UIiwKKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdE9kZFRpbWVab25lTmFtZXMoKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGltZVpvbmVUZXN0TmFtZXMubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgICAgICAgIFN0cmluZyBmdW5reU5hbWUgPSB0aW1lWm9uZVRlc3ROYW1lc1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBjb3JyZWN0TmFtZSA9IHRpbWVab25lVGVzdE5hbWVzW2krMV07CisKKyAgICAgICAgICAgIFRpbWVab25lIGZ0eiA9IFRpbWVab25lLmdldFRpbWVab25lKGZ1bmt5TmFtZSk7CisgICAgICAgICAgICBUaW1lWm9uZSBjdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShjb3JyZWN0TmFtZSk7CisKKyAgICAgICAgICAgIFN0cmluZyBmZG4gPSBmdHouZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIGxvbmcgZnJvID0gZnR6LmdldFJhd09mZnNldCgpOworICAgICAgICAgICAgbG9uZyBmZHMgPSBmdHouZ2V0RFNUU2F2aW5ncygpOworICAgICAgICAgICAgYm9vbGVhbiBmZHkgPSBmdHoudXNlRGF5bGlnaHRUaW1lKCk7CisKKyAgICAgICAgICAgIFN0cmluZyBjZG4gPSBjdHouZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIGxvbmcgY3JvID0gY3R6LmdldFJhd09mZnNldCgpOworICAgICAgICAgICAgbG9uZyBjZHMgPSBjdHouZ2V0RFNUU2F2aW5ncygpOworICAgICAgICAgICAgYm9vbGVhbiBjZHkgPSBjdHoudXNlRGF5bGlnaHRUaW1lKCk7CisKKyAgICAgICAgICAgIGlmICghZmRuLmVxdWFscyhjZG4pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImRpc3BsYXkgbmFtZSAoIiArIGZ1bmt5TmFtZSArICIsICIgKyBjb3JyZWN0TmFtZSArICIpIGV4cGVjdGVkOiAiICsgY2RuICsgIiBidXQgZ290OiAiICsgZmRuKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJvICE9IGNybykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvZmZzZXQgKCIgKyBmdW5reU5hbWUgKyAiLCAiICsgY29ycmVjdE5hbWUgKyAiKSBleHBlY3RlZDogIiArIGNybyArICIgYnV0IGdvdDogIiArIGZybyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZkcyAhPSBjZHMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiZGF5bGlnaHQgKCIgKyBmdW5reU5hbWUgKyAiLCAiICsgY29ycmVjdE5hbWUgKyAiKSBleHBlY3RlZDogIiArIGNkcyArICIgYnV0IGdvdDogIiArIGZkcyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZkeSAhPSBjZHkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigidXNlcyBkYXlsaWdodCAoIiArIGZ1bmt5TmFtZSArICIsICIgKyBjb3JyZWN0TmFtZSArICIpIGV4cGVjdGVkOiAiICsgY2R5ICsgIiBidXQgZ290OiAiICsgZmR5KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gbm8gZXJyb3IsIGFzc3VtZSB3ZSdyZSByZWZlcmVuY2luZyB0aGUgc2FtZSBpbnRlcm5hbCBqYXZhIG9iamVjdAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpeworICAgICAgICBjbGFzcyBTdHViVGltZVpvbmUgZXh0ZW5kcyBUaW1lWm9uZXsKKyAgICAgICAgICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksIGludCBkYXlPZldlZWssIGludCBtaWxsaXNlY29uZHMpIHtyZXR1cm4gMDt9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykge30KKyAgICAgICAgICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkge3JldHVybiAwO30KKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpIHtyZXR1cm4gZmFsc2U7fQorICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKSB7cmV0dXJuIGZhbHNlO30KKyAgICAgICAgfSAKKyAgICAgICAgU3R1YlRpbWVab25lIHN0dWIgPSBuZXcgU3R1YlRpbWVab25lKCk7CisgICAgICAgIFN0dWJUaW1lWm9uZSBzdHViMiA9IChTdHViVGltZVpvbmUpIHN0dWIuY2xvbmUoKTsKKyAgICAgICAgaWYgKHN0dWIuZ2V0RFNUU2F2aW5ncygpICE9IDApeworICAgICAgICAgICAgZXJybG4oIlRpbWVab25lLmdldERTVFNhdmluZ3MoKSBzaG91bGQgcmV0dXJuIDAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXN0dWIuaGFzU2FtZVJ1bGVzKHN0dWIyKSl7CisgICAgICAgICAgICBlcnJsbigiVGltZVpvbmUuY2xvbmUoKSBvYmplY3Qgc2hvdWxkIGhhc1NhbWVSdWxlcyIpOworICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWFyaygpeworICAgICAgICBTdHJpbmcgdHppZCA9ICJBbWVyaWNhL0FyZ2VudGluYS9Db21vZFJpdmFkYXZpYSI7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUodHppZCk7CisgICAgICAgIGludCBvZmZzZXQgPSB0ei5nZXRPZmZzZXQobmV3IERhdGUoKS5nZXRUaW1lKCkpOworICAgICAgICBsb2dsbih0emlkICsgIjpcdCIgKyBvZmZzZXQpOworICAgICAgICBMaXN0IGxpc3QgPSBBcnJheXMuYXNMaXN0KFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpKTsKKyAgICAgICAgaWYoIWxpc3QuY29udGFpbnModHppZCkpeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIGNyZWF0ZSB0aGUgdGltZSB6b25lIGJ1dCBpdCBpcyBub3QgaW4gZ2V0QXZhaWxhYmxlSURzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFpvbmVNZXRhKCkgeworICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgc2F2ZSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZSBuZXdab25lID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJHTVQtMDg6MDAiKTsKKyAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5zZXREZWZhdWx0KG51bGwpOworICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChuZXdab25lKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiR01UIik7CisgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgZGVmYXVsdFpvbmUgPSBjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgaWYoZGVmYXVsdFpvbmU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oIlRpbWVab25lLmdldERlZmF1bHQoKSBmYWlsZWQgZm9yIEdNVC0wODowMCIpOworICAgICAgICB9CisgICAgICAgIGlmKHpvbmU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oIlNpbXBsZVRpbWVab25lKDAsIEdNVC0wODowMCkgZmFpbGVkIGZvciBHTVQtMDg6MDAiKTsKKyAgICAgICAgfQorICAgICAgICAvL3Jlc2V0CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZS5zZXREZWZhdWx0KHNhdmUpOworICAgIH0KKworICAgIC8vIENvcGllZCBmcm9tIHRoZSBwcm90ZWN0ZWQgY29uc3RhbnQgaW4gVGltZVpvbmUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JTExJU19QRVJfSE9VUiA9IDYwKjYwKjEwMDA7CisKKyAgICAvLyAgVGVzdCB0aGF0IGEgdHJhbnNpdGlvbiBhdCB0aGUgZW5kIG9mIEZlYnJ1YXJ5IGlzIGhhbmRsZWQgY29ycmVjdGx5LgorICAgIHB1YmxpYyB2b2lkIFRlc3RGZWJydWFyeSgpIHsKKyAgICAgICAgLy8gVGltZSB6b25lIHdpdGggZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGZyb20gdGhlIGZpcnN0IFN1bmRheSBpbiBOb3ZlbWJlcgorICAgICAgICAvLyB0byB0aGUgbGFzdCBTdW5kYXkgaW4gRmVicnVhcnkuCisgICAgICAgIC8vIFNpbWlsYXIgdG8gdGhlIG5ldyBydWxlIGZvciBCcmF6aWwgKFNhbyBQYXVsbykgaW4gdHpkYXRhMjAwNm4uCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6MSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0zICogTUlMTElTX1BFUl9IT1VSLCAgICAgICAgICAgICAgICAgICAgLy8gcmF3IG9mZnNldDogM2ggYmVmb3JlICh3ZXN0IG9mKSBHTVQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3YtZmViIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk5PVkVNQkVSLCAxLCBDYWxlbmRhci5TVU5EQVksICAgLy8gc3RhcnQ6IE5vdmVtYmVyLCBmaXJzdCwgU3VuZGF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBtaWRuaWdodCB3YWxsIHRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkZFQlJVQVJZLCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAgLy8gZW5kOiAgIEZlYnJ1YXJ5LCBsYXN0LCBTdW5kYXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgIG1pZG5pZ2h0IHdhbGwgdGltZQorCisgICAgICAgIC8vIFRpbWUgem9uZSBmb3IgQnJhemlsLCB3aXRoIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIHJ1bGVzIGFzIGFib3ZlLAorICAgICAgICAvLyBidXQgZXhwcmVzc2VkIHdpdGggRE9XX0dFX0RPTV9NT0RFIGFuZCBET1dfTEVfRE9NX01PREUgcnVsZXMuCisgICAgICAgIFRpbWVab25lIHR6MiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL1Nhb19QYXVsbyIpOworCisgICAgICAgIC8vIE5vdyBoYXJkY29kZSB0aGUgc2FtZSBydWxlcyBhcyBmb3IgQnJhemlsLCBzbyB0aGF0IHdlIGNvdmVyIHRoZSBpbnRlbmRlZCBjb2RlCisgICAgICAgIC8vIGV2ZW4gd2hlbiBpbiB0aGUgZnV0dXJlIHpvbmVpbmZvIGhhcmRjb2RlcyB0aGVzZSB0cmFuc2l0aW9uIGRhdGVzLgorICAgICAgICBTaW1wbGVUaW1lWm9uZSB0ejM9IG5ldyBTaW1wbGVUaW1lWm9uZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0zICogTUlMTElTX1BFUl9IT1VSLCAgICAgICAgICAgICAgICAgICAgLy8gcmF3IG9mZnNldDogM2ggYmVmb3JlICh3ZXN0IG9mKSBHTVQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3YtZmViMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5OT1ZFTUJFUiwgMSwgLUNhbGVuZGFyLlNVTkRBWSwgIC8vIHN0YXJ0OiBOb3ZlbWJlciwgMSBvciBhZnRlciwgU3VuZGF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBtaWRuaWdodCB3YWxsIHRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkZFQlJVQVJZLCAtMjksIC1DYWxlbmRhci5TVU5EQVksLy8gZW5kOiAgIEZlYnJ1YXJ5LCAyOSBvciBiZWZvcmUsIFN1bmRheQorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgbWlkbmlnaHQgd2FsbCB0aW1lCisKKyAgICAgICAgLy8gR3JlZ29yaWFuIGNhbGVuZGFyIHdpdGggdGhlIFVUQyB0aW1lIHpvbmUgZm9yIGdldHRpbmcgc2FtcGxlIHRlc3QgZGF0ZS90aW1lcy4KKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkV0Yy9HTVQiKSk7CisgICAgICAgIC8vICJVbmFibGUgdG8gY3JlYXRlIHRoZSBVVEMgY2FsZW5kYXI6ICVzIgorCisgICAgICAgIGludFtdIGRhdGEgPSB7CisgICAgICAgICAgICAvLyBVVEMgdGltZSAoNiBmaWVsZHMpIGZvbGxvd2VkIGJ5CisgICAgICAgICAgICAvLyBleHBlY3RlZCB0aW1lIHpvbmUgb2Zmc2V0IGluIGhvdXJzIGFmdGVyIEdNVCAobmVnYXRpdmU9YmVmb3JlIEdNVCkuCisgICAgICAgICAgICAvLyBpbnQgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG9mZnNldEhvdXJzCisgICAgICAgICAgICAyMDA2LCBDYWxlbmRhci5OT1ZFTUJFUiwgIDUsIDAyLCA1OSwgNTksIC0zLAorICAgICAgICAgICAgMjAwNiwgQ2FsZW5kYXIuTk9WRU1CRVIsICA1LCAwMywgMDAsIDAwLCAtMiwKKyAgICAgICAgICAgIDIwMDcsIENhbGVuZGFyLkZFQlJVQVJZLCAyNSwgMDEsIDU5LCA1OSwgLTIsCisgICAgICAgICAgICAyMDA3LCBDYWxlbmRhci5GRUJSVUFSWSwgMjUsIDAyLCAwMCwgMDAsIC0zLAorCisgICAgICAgICAgICAyMDA3LCBDYWxlbmRhci5OT1ZFTUJFUiwgIDQsIDAyLCA1OSwgNTksIC0zLAorICAgICAgICAgICAgMjAwNywgQ2FsZW5kYXIuTk9WRU1CRVIsICA0LCAwMywgMDAsIDAwLCAtMiwKKyAgICAgICAgICAgIDIwMDgsIENhbGVuZGFyLkZFQlJVQVJZLCAyNCwgMDEsIDU5LCA1OSwgLTIsCisgICAgICAgICAgICAyMDA4LCBDYWxlbmRhci5GRUJSVUFSWSwgMjQsIDAyLCAwMCwgMDAsIC0zLAorCisgICAgICAgICAgICAyMDA4LCBDYWxlbmRhci5OT1ZFTUJFUiwgIDIsIDAyLCA1OSwgNTksIC0zLAorICAgICAgICAgICAgMjAwOCwgQ2FsZW5kYXIuTk9WRU1CRVIsICAyLCAwMywgMDAsIDAwLCAtMiwKKyAgICAgICAgICAgIDIwMDksIENhbGVuZGFyLkZFQlJVQVJZLCAyMiwgMDEsIDU5LCA1OSwgLTIsCisgICAgICAgICAgICAyMDA5LCBDYWxlbmRhci5GRUJSVUFSWSwgMjIsIDAyLCAwMCwgMDAsIC0zLAorCisgICAgICAgICAgICAyMDA5LCBDYWxlbmRhci5OT1ZFTUJFUiwgIDEsIDAyLCA1OSwgNTksIC0zLAorICAgICAgICAgICAgMjAwOSwgQ2FsZW5kYXIuTk9WRU1CRVIsICAxLCAwMywgMDAsIDAwLCAtMiwKKyAgICAgICAgICAgIDIwMTAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOCwgMDEsIDU5LCA1OSwgLTIsCisgICAgICAgICAgICAyMDEwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjgsIDAyLCAwMCwgMDAsIC0zCisgICAgICAgIH07CisKKyAgICAgICAgVGltZVpvbmUgdGltZXpvbmVzW10gPSB7IHR6MSwgdHoyLCB0ejMgfTsKKworICAgICAgICBUaW1lWm9uZSB0ejsKKyAgICAgICAgRGF0ZSBkdDsKKyAgICAgICAgaW50IHQsIGksIHJhdywgZHN0OworICAgICAgICBpbnRbXSBvZmZzZXRzID0gbmV3IGludFsyXTsgLy8gcmF3ID0gb2Zmc2V0c1swXSwgZHN0ID0gb2Zmc2V0c1sxXQorICAgICAgICBmb3IgKHQgPSAwOyB0IDwgdGltZXpvbmVzLmxlbmd0aDsgKyt0KSB7CisgICAgICAgICAgICB0eiA9IHRpbWV6b25lc1t0XTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSs9NykgeworICAgICAgICAgICAgICAgIGdjLnNldChkYXRhW2ldLCBkYXRhW2krMV0sIGRhdGFbaSsyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpKzNdLCBkYXRhW2krNF0sIGRhdGFbaSs1XSk7CisgICAgICAgICAgICAgICAgZHQgPSBnYy5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgdHouZ2V0T2Zmc2V0KGR0LmdldFRpbWUoKSwgZmFsc2UsIG9mZnNldHMpOworICAgICAgICAgICAgICAgIHJhdyA9IG9mZnNldHNbMF07CisgICAgICAgICAgICAgICAgZHN0ID0gb2Zmc2V0c1sxXTsKKyAgICAgICAgICAgICAgICBpZiAoKHJhdyArIGRzdCkgIT0gZGF0YVtpKzZdICogTUlMTElTX1BFUl9IT1VSKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0ZXN0IGNhc2UgIiArIHQgKyAiLiIgKyAoaS83KSArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAidHouZ2V0T2Zmc2V0KCIgKyBkYXRhW2ldICsgIi0iICsgKGRhdGFbaSsxXSArIDEpICsgIi0iICsgZGF0YVtpKzJdICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpKzNdICsgIjoiICsgZGF0YVtpKzRdICsgIjoiICsgZGF0YVtpKzVdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIikgcmV0dXJucyAiICsgcmF3ICsgIisiICsgZHN0ICsgIiAhPSAiICsgZGF0YVtpKzZdICogTUlMTElTX1BFUl9IT1VSKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRlNDNhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QuamF2YQpAQCAtMCwwICsxLDI4MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0aW9uKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIGNvbXBvdW5kIFRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIFN0cmluZyBuYW1lc1tdPXsiR3JlZWstTGF0aW4iLCAiTGF0aW4tRGV2YW5hZ2FyaSIsICJEZXZhbmFnYXJpLUxhdGluIiwgIkxhdGluLUdyZWVrIn07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQzPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ0PW51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQxPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzBdKTsKKyAgICAgICAgICAgIHQyPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzFdKTsKKyAgICAgICAgICAgIHQzPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzJdKTsKKyAgICAgICAgICAgIHQ0PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzNdKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHRocm93IGV4OworICAgICAgICB9CisgIAorICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXkxPXt0MX07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNhcnJheTI9e3QxLCB0NH07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNhcnJheTM9e3Q0LCB0MSwgdDJ9OworICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXk0PXt0MSwgdDIsIHQzLCB0NH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JbXVtdIHRyYW5zYXJyYXk9e3RyYW5zYXJyYXkxLCB0cmFuc2FycmF5MiwgdHJhbnNhcnJheTMsIHRyYW5zYXJyYXk0fTsgCisgICAgICAgIGZpbmFsIFN0cmluZyBJRHNbXT17CisgICAgICAgICAgICBuYW1lc1swXSwgCisgICAgICAgICAgICBuYW1lc1swXSsiOyIrbmFtZXNbM10sIAorICAgICAgICAgICAgbmFtZXNbM10rIjsiK25hbWVzWzFdKyI7IituYW1lc1syXSwgCisgICAgICAgICAgICBuYW1lc1swXSsiOyIrbmFtZXNbMV0rIjsiK25hbWVzWzJdKyI7IituYW1lc1szXSAKKyAgICAgICAgfTsKKworICAgCisgICAgICAgIGZvcihpbnQgaT0wOyBpPDQ7IGkrKyl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnM9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSURzW2ldKTsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgxKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCkgZmFpbGVkIGZvciAiICsgSURzW2ldKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBjcGR0cmFucz1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRHNbaV0sIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgIGNwZHRyYW5zID0gbnVsbDsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgaW50IGRpcmVjdGlvbj1GT1JXQVJEKSBmYWlsZWQgZm9yICIgKyBJRHNbaV0pOworICAgICAgICAgICAgICAgIHRocm93IGV4MjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGNwZHRyYW5zPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEc1tpXSwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICAgICAgY3BkdHJhbnMgPSBudWxsOworICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDMpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIHVzaW5nIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBpbnQgZGlyZWN0aW9uPVJFVkVSU0UpIGZhaWxlZCBmb3IgIiArIElEc1tpXSk7CisgICAgICAgICAgICAgICAgdGhyb3cgZXgzOworICAgICAgICAgICAgfQorCisvLyAgICAgICAgICAgIHRyeXsKKy8vICAgICAgICAgICAgICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnM9bmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoSURzW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJELCBudWxsKTsKKy8vICAgICAgICAgICAgICAgIGNwZHRyYW5zID0gbnVsbDsKKy8vICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDQpIHsKKy8vICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGludCBkaXJlY3Rpb249Rk9SV0FSRCwiICsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIlVuaWNvZGVGaWx0ZXIgYWRvcHRlZEZpbHRlcj0wKSBmYWlsZWQgZm9yICIgKyBJRHNbaV0pOworLy8gICAgICAgICAgICAgICAgdGhyb3cgZXg0OworLy8gICAgICAgICAgICB9CisvLyAgCisvLyAgICAgICAKKy8vICAgICAgICAgICAgdHJ5eworLy8gICAgICAgICAgICAgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjcGR0cmFuczI9bmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IodHJhbnNhcnJheVtpXSwgbnVsbCk7CisvLyAgICAgICAgICAgICAgICBjcGR0cmFuczIgPSBudWxsOworLy8gICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4NSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IENvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdG9yc1tdLCIgKworLy8gICAgICAgICAgICAgICAgICAgICAgICJVbmljb2RlRmlsdGVyIGFkb3B0ZWRGaWx0ZXIgPSAwKSAgZmFpbGVkIik7CisvLyAgICAgICAgICAgICAgICB0aHJvdyBleDU7CisvLyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgIAorICAgIH0KKyAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0VHJhbnNsaXRlcmF0b3IoKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGdldFRyYW5zbGl0ZXJhdG9yKCkgQVBJIG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgU3RyaW5nIElEPSJMYXRpbi1HcmVlaztHcmVlay1MYXRpbjtMYXRpbi1EZXZhbmFnYXJpO0RldmFuYWdhcmktTGF0aW47TGF0aW4tQ3lyaWxsaWM7Q3lyaWxsaWMtTGF0aW47QW55LUhleDtIZXgtQW55IjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgY3QxPW51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIC8vY3QxPW5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKElEKTsKKyAgICAgICAgICAgIGN0MSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQgZm9yIElEPSIgKyBJRCk7CisgICAgICAgICAgICB0aHJvdyBpYWU7CisgICAgICAgIH0KKyAgICAgICAgLy9pbnQgY291bnQ9Y3QxLmdldENvdW50KCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGVsZW1zW10gPSBjdDEuZ2V0RWxlbWVudHMoKTsKKyAgICAgICAgaW50IGNvdW50ID0gZWxlbXMubGVuZ3RoOworICAgICAgICBTdHJpbmcgYXJyYXlbXT1zcGxpdChJRCwgJzsnKTsKKyAgICAgICAgaWYgKGNvdW50ICE9IGFycmF5Lmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBnZXRDb3VudCgpIGZhaWxlZC4gRXhwZWN0ZWQ6IiArIGFycmF5Lmxlbmd0aCArICIgZ290OiIgKyBjb3VudCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGkgPCBjb3VudDsgaSsrKXsKKyAgICAgICAgICAgIC8vU3RyaW5nIGNoaWxkPSBjdDEuZ2V0VHJhbnNsaXRlcmF0b3IoaSkuZ2V0SUQoKTsKKyAgICAgICAgICAgIFN0cmluZyBjaGlsZCA9IGVsZW1zW2ldLmdldElEKCk7CisgICAgICAgICAgICBpZighY2hpbGQuZXF1YWxzKGFycmF5W2ldKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldFRyYW5zbGl0ZXJhdG9yKCkgZmFpbGVkOiBFeHBlY3RlZC0+IiArIGFycmF5W2ldICsgIiBHb3QtPiIgKyBjaGlsZCk7CisgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnZXRUcmFuc2xpdGVyYXRvcigpIHBhc3NlZDogRXhwZWN0ZWQtPiIgKyBhcnJheVtpXSArICIgR290LT4iICsgY2hpbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgCisgICAgfQorIAorICAgICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUcmFuc2xpdGVyYXRlKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBoYW5kbGVUcmFuc2xpdGVyYXRlKCkgQVBJIG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgY3QxPW51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGN0MT1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleDtIZXgtQW55Iik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQpIGZhaWxlZCBmb3IgIiArICJBbnktSGV4O0hleC1BbnkiKTsKKyAgICAgICAgICAgIHRocm93IGlhZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgcz0iYWJjYWJjIjsKKyAgICAgICAgZXhwZWN0KGN0MSwgcywgcyk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJzb3VyY2UyPW5ldyBSZXBsYWNlYWJsZVN0cmluZyhzKTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0PXM7CisgICAgICAgIGN0MS50cmFuc2xpdGVyYXRlKHJzb3VyY2UyLCBpbmRleCk7CisgICAgICAgIGN0MS5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZTIsIGluZGV4KTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdD1yc291cmNlMi50b1N0cmluZygpOworICAgICAgICBleHBlY3RBdXgoY3QxLmdldElEKCkgKyAiOlJlcGxhY2VhYmxlU3RyaW5nLCBpbmRleCgwLDAsMCwwKSIsIHMgKyAiLT4iICsgcnNvdXJjZTIsIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLCBleHBlY3RlZFJlc3VsdCk7CisgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleDIgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMSwzLDIsMyk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJzb3VyY2UzPW5ldyBSZXBsYWNlYWJsZVN0cmluZyhzKTsKKyAgICAgICAgY3QxLnRyYW5zbGl0ZXJhdGUocnNvdXJjZTMsIGluZGV4Mik7IAorICAgICAgICBjdDEuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UzLCBpbmRleDIpOworICAgICAgICByZXN1bHQ9cnNvdXJjZTMudG9TdHJpbmcoKTsKKyAgICAgICAgZXhwZWN0QXV4KGN0MS5nZXRJRCgpICsgIjpTdHJpbmcsIGluZGV4MigxLDIsMiwzKSIsIHMgKyAiLT4iICsgcnNvdXJjZTMsIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLCBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAKKyAgICAgICAgU3RyaW5nIERhdGFbXT17CisgICAgICAgICAgICAgLy9JRCwgaW5wdXQgc3RyaW5nLCB0cmFuc2xpdGVyYXRlZCBzdHJpbmcKKyAgICAgICAgICAgICAiQW55LUhleDtIZXgtQW55O0FueS1IZXgiLCAgICAgImhlbGxvIiwgICJcXHUwMDY4XFx1MDA2NVxcdTAwNkNcXHUwMDZDXFx1MDA2RiIsIAorICAgICAgICAgICAgICJBbnktSGV4O0hleC1BbnkiLCAgICAgICAgICAgICAgICAgImhlbGxvISBIb3cgYXJlIHlvdT8iLCAgImhlbGxvISBIb3cgYXJlIHlvdT8iLAorICAgICAgICAgICAgICJEZXZhbmFnYXJpLUxhdGluO0xhdGluLURldmFuYWdhcmkiLCAgICAgICAiXHUwOTJEXHUwOTQ4J1x1MDkzMCdcdTA5MzUiLCAgIlx1MDkyRFx1MDk0OFx1MDkzMFx1MDkzNSIsIC8vIHF1b3RlcyBsb3N0CisgICAgICAgICAgICAgIkxhdGluLUN5cmlsbGljO0N5cmlsbGljLUxhdGluIiwgICAgICAgICAgICJhJ2InaydkJ2UnZidnJ2gnaSdqJ1NoY2gnc2hjaCd6aCdoIiwgImEnYidrJ2QnZSdmJ2cnaCdpJ2onU2hjaCdzaGNoJ3poJ2giLAorICAgICAgICAgICAgICJMYXRpbi1HcmVlaztHcmVlay1MYXRpbiIsICAgICAgICAgICAgICAgICAiQUJHYWJnQUtMTU4iLCAiQUJHYWJnQUtMTU4iLAorICAgICAgICAgICAgIC8vIkxhdGluLUFyYWJpYztBcmFiaWMtTGF0aW4iLCAgICAgICAgICAgICAgICJBZCdyJ2EnYidpJ2snZGgnZGQnZ2giLCAiQWRyYWJpa2RoZGRnaCIsCisgICAgICAgICAgICAgIkhpcmFnYW5hLUthdGFrYW5hIiwgICAgICAgICAgICAgICAgICAgICAgICJcdTMwNDFcdTMwOGZcdTMwOTlcdTMwNmVcdTMwNGJcdTMwOTJcdTMwOTkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBBMVx1MzBmN1x1MzBjZVx1MzBhYlx1MzBmYSIsICAKKyAgICAgICAgICAgICAiSGlyYWdhbmEtS2F0YWthbmE7S2F0YWthbmEtSGlyYWdhbmEiLCAgICAgIlx1MzA0MVx1MzA4Zlx1MzA5OVx1MzA2ZVx1MzA0Ylx1MzA1MSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUzMDQxXHUzMDhmXHUzMDk5XHUzMDZlXHUzMDRiXHUzMDUxIiwKKyAgICAgICAgICAgICAiS2F0YWthbmEtSGlyYWdhbmE7SGlyYWdhbmEtS2F0YWthbmEiLCAgICAgIlx1MzBBMVx1MzBmN1x1MzBjZVx1MzBmNVx1MzBmNiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUzMEExXHUzMGY3XHUzMGNlXHUzMGFiXHUzMGIxIiwgIAorICAgICAgICAgICAgICJMYXRpbi1LYXRha2FuYTtLYXRha2FuYS1MYXRpbiIsICAgICAgICAgICAgICAgICAgICJ2YXZpdnV2ZXZvaHV6aXp1em9uaW51bmFzZXN1emV6dSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmF2aXZ1dmV2b2h1eml6dXpvbmludW5hc2VzdXplenUiLCAgCisgICAgICAgIH07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGN0Mj1udWxsOworICAgICAgICBmb3IoaW50IGk9MDsgaTxEYXRhLmxlbmd0aDsgaSs9Myl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgY3QyPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKERhdGFbaSswXSk7CisgICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZTIpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQgZm9yICIgKyBEYXRhW2krMF0pOworICAgICAgICAgICAgICAgIHRocm93IGlhZTI7CisgICAgICAgICAgICB9CisgICAgICAgIGV4cGVjdChjdDIsIERhdGFbaSsxXSwgRGF0YVtpKzJdKTsKKyAgICAgICAgfQorICAgCisgICAgfQorIAorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU3VwcG9ydCBtZXRob2RzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgLyoqCisgICAgICogU3BsaXRzIGEgc3RyaW5nLAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gc3BsaXQoU3RyaW5nIHMsIGNoYXIgZGl2aWRlcikgeworICAgICAgCisgICAgLy8gc2VlIGhvdyBtYW55IHRoZXJlIGFyZQorICAgICAgICBpbnQgY291bnQgPSAxOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgaWYgKHMuY2hhckF0KGkpID09IGRpdmlkZXIpICsrY291bnQ7CisgICAgfQorICAgICAgICAKKyAgICAvLyBtYWtlIGFuIGFycmF5IHdpdGggdGhlbQorICAgIFN0cmluZ1tdIHJlc3VsdCA9IG5ldyBTdHJpbmdbY291bnRdOworICAgIGludCBsYXN0ID0gMDsKKyAgICBpbnQgY3VycmVudCA9IDA7CisgICAgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gZGl2aWRlcikgeworICAgICAgICAgICAgcmVzdWx0W2N1cnJlbnQrK10gPSBzLnN1YnN0cmluZyhsYXN0LGkpOworICAgICAgICAgICAgbGFzdCA9IGkrMTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXN1bHRbY3VycmVudCsrXSA9IHMuc3Vic3RyaW5nKGxhc3QsaSk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yIHQsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gdC50cmFuc2xpdGVyYXRlKHNvdXJjZSk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlN0cmluZyIsIHNvdXJjZSwgcmVzdWx0LCBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcnNvdXJjZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzb3VyY2UpOworICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSk7CisgICAgICAgIHJlc3VsdCA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6UmVwbGFjZWFibGUiLCBzb3VyY2UsIHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIC8vIFRlc3Qga2V5Ym9hcmQgKGluY3JlbWVudGFsKSB0cmFuc2xpdGVyYXRpb24gLS0gdGhpcyByZXN1bHQKKyAgICAgICAgLy8gbXVzdCBiZSB0aGUgc2FtZSBhZnRlciB3ZSBmaW5hbGl6ZSAoc2VlIGJlbG93KS4KKyAgICAgICAgcnNvdXJjZS5yZXBsYWNlKDAsIHJzb3VyY2UubGVuZ3RoKCksICIiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8c291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgKyAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZy5hcHBlbmQoc291cmNlLmNoYXJBdChpKSkuYXBwZW5kKCIgLT4gIik7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLnZhbHVlT2Yoc291cmNlLmNoYXJBdChpKSkpOworICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzdHJpbmcgYnVmZmVyIHdpdGggYSB2ZXJ0aWNhbCBiYXIgJ3wnIHdoZXJlCisgICAgICAgICAgICAvLyB0aGUgY29tbWl0dGVkIGluZGV4IGlzLgorICAgICAgICAgICAgU3RyaW5nIHMgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsb2cuYXBwZW5kKHMuc3Vic3RyaW5nKDAsIGluZGV4LnN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd8JykuCisgICAgICAgICAgICAgICAgYXBwZW5kKHMuc3Vic3RyaW5nKGluZGV4LnN0YXJ0KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEFzIGEgZmluYWwgc3RlcCBpbiBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24sIHdlIG11c3QgY2FsbAorICAgICAgICAvLyB0cmFuc2xpdGVyYXRlIHRvIGZpbmlzaCBvZmYgYW55IHBlbmRpbmcgcGFydGlhbCBtYXRjaGVzIHRoYXQKKyAgICAgICAgLy8gd2VyZSB3YWl0aW5nIGZvciBtb3JlIGlucHV0LgorICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlLCBpbmRleCk7CisgICAgICAgIHJlc3VsdCA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nLmFwcGVuZCgiID0+ICIpLmFwcGVuZChyc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpLZXlib2FyZCIsIGxvZy50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgfQorICAgIHByaXZhdGUgdm9pZCBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBleHBlY3RBdXgodGFnLCBzb3VyY2UgKyAiIC0+ICIgKyByZXN1bHQsCisgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLAorICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc3VtbWFyeSwgYm9vbGVhbiBwYXNzLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgaWYgKHBhc3MpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoIiArIHRhZyArICIpICIgKyBVdGlsaXR5LmVzY2FwZShzdW1tYXJ5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKCIgKyB0YWcrICIpICIKKyAgICAgICAgICAgICAgICArIFV0aWxpdHkuZXNjYXBlKHN1bW1hcnkpCisgICAgICAgICAgICAgICAgKyAiLCBleHBlY3RlZCAiICsgVXRpbGl0eS5lc2NhcGUoZXhwZWN0ZWRSZXN1bHQpKTsKKyAgICAgICAgfQorICAgIH0gIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvRXJyb3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvRXJyb3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTQxOTg4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9FcnJvclRlc3QuamF2YQpAQCAtMCwwICsxLDI0NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBFcnJvciBjb25kaXRpb24gdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgRXJyb3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBFcnJvclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRyYW5zbGl0ZXJhdG9yRXJyb3JzKCkgeworICAgICAgICBTdHJpbmcgdHJhbnMgPSAiTGF0aW4tR3JlZWsiOworICAgICAgICBTdHJpbmcgYm9ndXNJRCA9ICJMQVRJTkdSRUVLLUdSRUVLTEFUSU4iOworICAgICAgICBTdHJpbmcgbmV3SUQgPSAiQm9ndXMtTGF0aW4iOworICAgICAgICBTdHJpbmcgbmV3SURSdWxlcyA9ICJ6enogPiBaOyBmIDw+IHBoIjsKKyAgICAgICAgU3RyaW5nIGJvZ3VzUnVsZXMgPSAiYSB9IFtiLWcgbS1wICI7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlc3RTdHJpbmcgPQorICAgICAgICAgICAgbmV3IFJlcGxhY2VhYmxlU3RyaW5nKCJBIHF1aWNrIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIik7CisgICAgICAgIFN0cmluZyBpbnNlcnRTdHJpbmcgPSAiY2F0cyBhbmQgZG9ncyI7CisgICAgICAgIGludCBzdG9wcGVkQXQgPSAwLCBsZW47CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UodHJhbnMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIG9mIExhdGluLUdyZWVrIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbGVuID0gdGVzdFN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgc3RvcHBlZEF0ID0gdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIDAsIDEwMCk7CisgICAgICAgIGlmIChzdG9wcGVkQXQgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBPdXQgb2YgYm91bmRzIGNoZWNrIGZhaWxlZCAoMSkuIik7CisgICAgICAgIH0gZWxzZSBpZiAodGVzdFN0cmluZy5sZW5ndGgoKSAhPSBsZW4pIHsKKyAgICAgICAgICAgIHRlc3RTdHJpbmcgPQorICAgICAgICAgICAgICAgIG5ldyBSZXBsYWNlYWJsZVN0cmluZygiQSBxdWljayBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdGUgZmFpbHMgYW5kIHRoZSB0YXJnZXQgc3RyaW5nIHdhcyBtb2RpZmllZC4iKTsKKyAgICAgICAgfQorICAgICAgICBzdG9wcGVkQXQgPSB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgMTAwLCB0ZXN0U3RyaW5nLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIGlmIChzdG9wcGVkQXQgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBPdXQgb2YgYm91bmRzIGNoZWNrIGZhaWxlZCAoMikuIik7CisgICAgICAgIH0gZWxzZSBpZiAodGVzdFN0cmluZy5sZW5ndGgoKSAhPSBsZW4pIHsKKyAgICAgICAgICAgIHRlc3RTdHJpbmcgPQorICAgICAgICAgICAgICAgIG5ldyBSZXBsYWNlYWJsZVN0cmluZygiQSBxdWljayBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdGUgZmFpbHMgYW5kIHRoZSB0YXJnZXQgc3RyaW5nIHdhcyBtb2RpZmllZC4iKTsKKyAgICAgICAgfQorICAgICAgICBwb3Muc3RhcnQgPSAxMDA7CisgICAgICAgIHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTdGFydCBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcywgZXJyb3Igbm90IHJlcG9ydGVkLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIlN0YXJ0IG9mZnNldCBpcyBvdXQgb2YgYm91bmRzIGFuZCBkZXRlY3RlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBwb3MubGltaXQgPSAxMDA7CisgICAgICAgIHBvcy5zdGFydCA9IDA7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXN0U3RyaW5nLCBwb3MpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IExpbWl0IG9mZnNldCBpcyBvdXQgb2YgYm91bmRzLCBlcnJvciBub3QgcmVwb3J0ZWQuXG4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJTdGFydCBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcyBhbmQgZGV0ZWN0ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuID0gcG9zLmNvbnRleHRMaW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5jb250ZXh0U3RhcnQgPSAwOworICAgICAgICBwb3MubGltaXQgPSBsZW4gLSAxOworICAgICAgICBwb3Muc3RhcnQgPSA1OworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIHBvcywgaW5zZXJ0U3RyaW5nKTsKKyAgICAgICAgICAgIGlmIChsZW4gPT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3QgaW5zZXJ0aW9uIHdpdGggc3RyaW5nOiB0aGUgdHJhbnNsaXRlcmF0aW9uIHBvc2l0aW9uIGxpbWl0IGRpZG4ndCBjaGFuZ2UgYXMgZXhwZWN0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiSW5zZXJ0aW9uIHRlc3Qgd2l0aCBzdHJpbmcgZmFpbGVkIGZvciBzb21lIHJlYXNvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBwb3MuY29udGV4dFN0YXJ0ID0gMDsKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCkgLSAxOworICAgICAgICBwb3Muc3RhcnQgPSA1OworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIHBvcywgMHgwMDYxKTsKKyAgICAgICAgICAgIGlmIChsZW4gPT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3QgaW5zZXJ0aW9uIHdpdGggY2hhcmFjdGVyOiB0aGUgdHJhbnNsaXRlcmF0aW9uIHBvc2l0aW9uIGxpbWl0IGRpZG4ndCBjaGFuZ2UgYXMgZXhwZWN0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSW5zZXJ0aW9uIHRlc3Qgd2l0aCBVVEYtMTYgY29kZSBwb2ludCBmYWlsZWQgZm9yIHNvbWUgcmVhc29uLiIpOworICAgICAgICB9CisgICAgICAgIGxlbiA9IHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5jb250ZXh0U3RhcnQgPSAwOworICAgICAgICBwb3MuY29udGV4dExpbWl0ID0gdGVzdFN0cmluZy5sZW5ndGgoKSAtIDE7CisgICAgICAgIHBvcy5zdGFydCA9IDU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zLCBpbnNlcnRTdHJpbmcpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE91dCBvZiBib3VuZHMgY2hlY2sgZmFpbGVkICgzKS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLmxlbmd0aCgpICE9IGxlbikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgaW5wdXQgc3RyaW5nIHdhcyBtb2RpZmllZCB0aG91Z2ggdGhlIG9mZnNldHMgd2VyZSBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIkluc2VydGlvbiB0ZXN0IHdpdGggb3V0IG9mIGJvdW5kcyBpbmRleGVzLiIpOworICAgICAgICB9CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQxID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoYm9ndXNJRCwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZiAodDEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gb2YgYm9ndXMgSUQgXCJMQVRJTkdSRUVLLUdSRUVLTEFUSU5cIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICB9CisKKyAgICAgICAgLy90cnkgeyAvLyB1bm5lZWRlZCAtIEV4Y2VwdGlvbiBjYW5ub3QgYmUgdGhyb3duCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgICAgICAgICBuZXdJRCwKKyAgICAgICAgICAgICAgICBuZXdJRFJ1bGVzLAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSB0Mi5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIG5ld0lEIHRyYW5zbGl0ZXJhdG9yIHdhcyBub3QgcmVnaXN0ZXJlZCBzbyBjcmVhdGVJbnZlcnNlIHNob3VsZCBmYWlsLiIpOworICAgICAgICAgICAgaWYgKHQzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIG5ld0lEIHRyYW5zbGl0ZXJhdG9yIHdhcyBub3QgcmVnaXN0ZXJlZCBzbyBjcmVhdGVJbnZlcnNlIHNob3VsZCBmYWlsLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgICAgIC8vfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDQgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgICAgICAgICAgICAgbmV3SUQsCisgICAgICAgICAgICAgICAgICAgIGJvZ3VzUnVsZXMsCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYgKHQ0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIHJ1bGVzIGlzIG1hbGZvcm1lZCBidXQgZXJyb3Igd2FzIG5vdCByZXBvcnRlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlU2V0RXJyb3JzKCkgeworICAgICAgICBTdHJpbmcgYmFkUGF0dGVybiA9ICJbWzpMOl0tWzB4MDMwMC0weDA0MDBdIjsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAvL1N0cmluZyByZXN1bHQ7CisKKyAgICAgICAgaWYgKCFzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGRlZmF1bHQgY3RvciBvZiBVbmljb2RlU2V0IGNyZWF0ZWQgYSBub24tZW1wdHkgb2JqZWN0LiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKGJhZFBhdHRlcm4pOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFwcGxpZWQgYSBiYWQgcGF0dGVybiB0byB0aGUgVW5pY29kZVNldCBvYmplY3Qgb2theS4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IGFwcGx5aW5nIHdpdGggdGhlIGJhZCBwYXR0ZXJuLiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IHNldDEgPSBuZXcgVW5pY29kZVNldChiYWRQYXR0ZXJuKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDcmVhdGVkIGEgVW5pY29kZVNldCBiYXNlZCBvbiBiYWQgcGF0dGVybnMuIik7CisgICAgICAgICAgICBpZiAoc2V0MSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IENyZWF0ZWQgYSBVbmljb2RlU2V0IGJhc2VkIG9uIGJhZCBwYXR0ZXJucy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IGNvbnN0cnVjdGluZyB3aXRoIHRoZSBiYWQgcGF0dGVybi4iKTsKKyAgICAgICAgfQorICAgIH0KKworLy8gICAgcHVibGljIHZvaWQgVGVzdFVuaVRvSGV4RXJyb3JzKCkgeworLy8gICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHQgPSBuZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoIiIsIHRydWUsIG51bGwpOworLy8gICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHdpdGggYW4gZW1wdHkgcGF0dGVybi4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgfQorLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHQgPSBuZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoIlxceCIsIHRydWUsIG51bGwpOworLy8gICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgfQorLy8gICAgICAgIHQgPSBuZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoKTsKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAoKFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKSB0KS5hcHBseVBhdHRlcm4oIlxceCIpOworLy8gICAgICAgICAgICBlcnJsbigiRkFJTDogVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3I6OmFwcGx5UGF0dGVybiBzdWNjZWVkZWQgd2l0aCBhIGJhZCBwYXR0ZXJuLiIpOworLy8gICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJCVEVycm9ycygpIHsKKworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiYWI+eSI7CisgICAgICAgIFN0cmluZyBpZCA9ICJNeVJhbmRvbS1ZUmV2ZXJzZSI7CisgICAgICAgIFN0cmluZyBnb29kUGF0dGVybiA9ICJbWzpMOl0mW1xcdTAwMDAtXFx1RkZGRl1dIjsgLyogYWxsIEJNUCBsZXR0ZXJzICovCisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNldCA9IG5ldyBVbmljb2RlU2V0KGdvb2RQYXR0ZXJuKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcyhpZCwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgICAgIHQuc2V0RmlsdGVyKHNldCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJDbGFzcyhpZCwgdC5nZXRDbGFzcygpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKGlkKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MSA9CisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gb2YgdW5yZWdpc3RlcmVkIElEIHNob3VsZCBoYXZlIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdhcyBub3QgYWJsZSB0byBjcmVhdGUgYSBnb29kIFJCVCB0byB0ZXN0IHJlZ2lzdHJhdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBXYXMgbm90IGFibGUgdG8gY3JlYXRlIGEgZ29vZCBVbmljb2RlU2V0IGJhc2VkIG9uIHZhbGlkIHBhdHRlcm5zLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0SGV4VG9VbmlFcnJvcnMoKSB7CisvLyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisvLyAgICAgICAgLy90cnkgeyAvLyB1bm5lZWRlZCAtIGV4Y2VwdGlvbiBjYW5ub3QgYmUgdGhyb3duCisvLyAgICAgICAgdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiIiwgbnVsbCk7CisvLyAgICAgICAgLy99IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgIC8vICAgIGVycmxuKCJGQUlMOiBDb3VsZCBub3QgY3JlYXRlIGEgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3Igd2l0aCBhbiBlbXB0eSBwYXR0ZXJuLiIpOworLy8gICAgICAgIC8vfQorLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoIlxceCIsIG51bGwpOworLy8gICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKy8vICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpOworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgICgoSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IpIHQpLmFwcGx5UGF0dGVybigiXFx4Iik7CisvLyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcjo6YXBwbHlQYXR0ZXJuIHN1Y2NlZWRlZCB3aXRoIGEgYmFkIHBhdHRlcm4uIik7CisvLyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICB9CisvLyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvSmFtb1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9KYW1vVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYwZWRhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvSmFtb1Rlc3QuamF2YQpAQCAtMCwwICsxLDQ4NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IFRlc3QgdGhlIExhdGluLUphbW8gdHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIEphbW9UZXN0IGV4dGVuZHMgVHJhbnNsaXRlcmF0b3JUZXN0IHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgU0VQID0gJ1wnJzsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSmFtb1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEphbW8oKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluSmFtbyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1KYW1vIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGphbW9MYXRpbiA9IGxhdGluSmFtby5nZXRJbnZlcnNlKCk7CisKKyAgICAgICAgU3RyaW5nW10gQ0FTRSA9IHsKKyAgICAgICAgICAgIC8vIENvbHVtbiAxIGlzIHRoZSBsYXRpbiB0ZXh0IEwxIHRvIGJlIGZlZCB0byBMYXRpbi1KYW1vCisgICAgICAgICAgICAvLyB0byB5aWVsZCBvdXRwdXQgSi4KKworICAgICAgICAgICAgLy8gQ29sdW1uIDIgaXMgZXhwZWN0ZWQgdmFsdWUgb2YgSi4gIEogaXMgZmVkIHRvCisgICAgICAgICAgICAvLyBKYW1vLUxhdGluIHRvIHlpZWxkIG91dHB1dCBMMi4KKworICAgICAgICAgICAgLy8gQ29sdW1uIDMgaXMgZXhwZWN0ZWQgdmFsdWUgb2YgTDIuICBJZiB0aGUgZXhwZWN0ZWQKKyAgICAgICAgICAgIC8vIHZhbHVlIG9mIEwyIGlzIEwxLCB0aGVuIEwyIGlzIG51bGwuCisgICAgICAgICAgICAiYmFiIiwgIihCaSkoQSkoQmYpIiwgbnVsbCwKKyAgICAgICAgICAgICJiYWJiIiwgIihCaSkoQSkoQmYpKEJpKShFVSkiLCAiYmFiIitTRVArImJldSIsCisgICAgICAgICAgICAiYmFiYmJhIiwgIihCaSkoQSkoQmYpKEJCKShBKSIsIG51bGwsCisgICAgICAgICAgICAiYmFnZyIsICIoQmkpKEEpKEdHZikiLCBudWxsLAorICAgICAgICAgICAgImJhZ2dnYSIsICIoQmkpKEEpKEdHZikoR2kpKEEpIiwgbnVsbCwKKyAgICAgICAgICAgICJiYWciK1NFUCsiZ2dhIiwgIihCaSkoQSkoR2YpKEdHaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImthYnNhIiwgIihLaSkoQSkoQmYpKFNpKShBKSIsIG51bGwsCisgICAgICAgICAgICAia2Fic2thIiwgIihLaSkoQSkoQlMpKEtpKShBKSIsIG51bGwsCisgICAgICAgICAgICAiZ2Fic2JrYSIsICIoR2kpKEEpKEJTKShCaSkoRVUpKEtpKShBKSIsICJnYWJzYmV1a2EiLCAvLyBub3QgKEtmKQorICAgICAgICAgICAgImdnYSIsICIoR0dpKShBKSIsIG51bGwsCisgICAgICAgICAgICAiYnNhIiwgIihCaSkoRVUpKFNpKShBKSIsICJiZXVzYSIsCisgICAgICAgICAgICAiYWdnIiwgIihJRVVORykoQSkoR0dmKSIsIG51bGwsCisgICAgICAgICAgICAiYWdnYSIsICIoSUVVTkcpKEEpKEdHaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImxhIiwgIihSKShBKSIsICJyYSIsCisgICAgICAgICAgICAiYnMiLCAiKEJpKShFVSkoU2YpIiwgImJldXMiLAorICAgICAgICAgICAgImthbGdnYSIsICIoS2kpKEEpKEwpKEdHaSkoQSkiLCBudWxsLAorCisgICAgICAgICAgICAvLyAncicgaW4gYSBmaW5hbCBwb3NpdGlvbiBpcyB0cmVhdGVkIGxpa2UgJ2wnCisgICAgICAgICAgICAia2Fya2EiLCAiKEtpKShBKShMKShLaSkoQSkiLCAia2Fsa2EiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxDQVNFLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIGphbW8gPSBuYW1lVG9KYW1vKENBU0VbaSsxXSk7CisgICAgICAgICAgICBpZiAoQ0FTRVtpKzJdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobGF0aW5KYW1vLCBDQVNFW2ldLCBqYW1vLCBqYW1vTGF0aW4pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVyZSByb3VuZC10cmlwIGlzIGV4cGVjdGVkIHRvIGZhaWwKKyAgICAgICAgICAgICAgICBleHBlY3QobGF0aW5KYW1vLCBDQVNFW2ldLCBqYW1vKTsKKyAgICAgICAgICAgICAgICBleHBlY3QoamFtb0xhdGluLCBqYW1vLCBDQVNFW2krMl0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlc2UgYXJlIHByb2JsZW1zIHR1cm5lZCB1cCBieSB0aGUgSGFuZ3VsLUphbW87SmFtby1MYXRpbgorICAgICAqIHJvdW5kIHRyaXAgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRUcmlwKCkgeworICAgICAgICBTdHJpbmcgSEFOR1VMW10gPSB7ICJcdUFDMDNcdUMyRjgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUM1NDRcdUM1QjQifTsKKyAgICAgICAgCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluSmFtbyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1KYW1vIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGphbW9MYXRpbiA9IGxhdGluSmFtby5nZXRJbnZlcnNlKCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGphbW9IYW5ndWwgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZDIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhhbmd1bEphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEIik7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEhBTkdVTC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGhhbmd1bCA9IEhBTkdVTFtpXTsKKyAgICAgICAgICAgIFN0cmluZyBqYW1vID0gaGFuZ3VsSmFtby50cmFuc2xpdGVyYXRlKGhhbmd1bCk7CisgICAgICAgICAgICBTdHJpbmcgbGF0aW4gPSBqYW1vTGF0aW4udHJhbnNsaXRlcmF0ZShqYW1vKTsKKyAgICAgICAgICAgIFN0cmluZyBqYW1vMiA9IGxhdGluSmFtby50cmFuc2xpdGVyYXRlKGxhdGluKTsKKyAgICAgICAgICAgIFN0cmluZyBoYW5ndWwyID0gamFtb0hhbmd1bC50cmFuc2xpdGVyYXRlKGphbW8yKTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgaWYgKCFoYW5ndWwuZXF1YWxzKGhhbmd1bDIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBVdGlsaXR5LmVzY2FwZShidWYudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbihVdGlsaXR5LmVzY2FwZShidWYudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB2YXJpb3VzIHN0ZXAtYXQtYS10aW1lIHRyYW5zZm9ybWF0aW9uIG9mIGhhbmd1bCB0byBqYW1vIHRvCisgICAgICogbGF0aW4gYW5kIGJhY2suCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBpZWNlbWVhbCgpIHsKKyAgICAgICAgU3RyaW5nIGhhbmd1bCA9ICJcdUJDMEYiOworICAgICAgICBTdHJpbmcgamFtbyA9IG5hbWVUb0phbW8oIihNaSkoSSkoQ2YpIik7CisgICAgICAgIFN0cmluZyBsYXRpbiA9ICJtaWMiOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEIik7IC8vIHdhcyBIYW5ndWwtSmFtbworICAgICAgICBleHBlY3QodCwgaGFuZ3VsLCBqYW1vKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GQyIpOyAvLyB3YXMgSmFtby1IYW5ndWwKKyAgICAgICAgZXhwZWN0KHQsIGphbW8sIGhhbmd1bCk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1KYW1vIik7CisgICAgICAgIGV4cGVjdCh0LCBsYXRpbiwgamFtbyk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJKYW1vLUxhdGluIik7CisgICAgICAgIGV4cGVjdCh0LCBqYW1vLCBsYXRpbik7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW5ndWwtTGF0aW4iKTsKKyAgICAgICAgZXhwZWN0KHQsIGhhbmd1bCwgbGF0aW4pOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSGFuZ3VsIik7CisgICAgICAgIGV4cGVjdCh0LCBsYXRpbiwgaGFuZ3VsKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhhbmd1bC1MYXRpbjsgTGF0aW4tSmFtbyIpOworICAgICAgICBleHBlY3QodCwgaGFuZ3VsLCBqYW1vKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkphbW8tTGF0aW47IExhdGluLUhhbmd1bCIpOworICAgICAgICBleHBlY3QodCwgamFtbywgaGFuZ3VsKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhhbmd1bC1MYXRpbjsgTGF0aW4tSGFuZ3VsIik7CisgICAgICAgIGV4cGVjdCh0LCBoYW5ndWwsIGhhbmd1bCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlYWxUZXh0KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpbkphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vTGF0aW4gPSBsYXRpbkphbW8uZ2V0SW52ZXJzZSgpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vSGFuZ3VsID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GQyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBoYW5ndWxKYW1vID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpOworICAgICAgICAvL1RyYW5zbGl0ZXJhdG9yIHJ0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IobmV3IFRyYW5zbGl0ZXJhdG9yW10geworICAgICAgICAvLyAgICBoYW5ndWxKYW1vLCBqYW1vTGF0aW4sIGxhdGluSmFtbywgamFtb0hhbmd1bCB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcnQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEO0phbW8tTGF0aW47TGF0aW4tSmFtbztORkMiKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHRvdGFsID0gMDsKKyAgICAgICAgaW50IGVycm9ycyA9IDA7CisgICAgICAgIHdoaWxlIChwb3MgPCBXSEFUX0lTX1VOSUNPREUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBzcGFjZSA9IFdIQVRfSVNfVU5JQ09ERS5pbmRleE9mKCcgJywgcG9zKzEpOworICAgICAgICAgICAgaWYgKHNwYWNlIDwgMCkgeworICAgICAgICAgICAgICAgIHNwYWNlID0gV0hBVF9JU19VTklDT0RFLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBvcyA8IHNwYWNlKSB7CisgICAgICAgICAgICAgICAgKyt0b3RhbDsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsID0gV0hBVF9JU19VTklDT0RFLnN1YnN0cmluZyhwb3MsIHNwYWNlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsWCA9IHJ0LnRyYW5zbGl0ZXJhdGUoaGFuZ3VsKTsKKyAgICAgICAgICAgICAgICBpZiAoIWhhbmd1bC5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytlcnJvcnM7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBqYW1vID0gaGFuZ3VsSmFtby50cmFuc2xpdGVyYXRlKGhhbmd1bCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsYXRpbiA9IGphbW9MYXRpbi50cmFuc2xpdGVyYXRlKGphbW8pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamFtbzIgPSBsYXRpbkphbW8udHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBoYW5ndWwyID0gamFtb0hhbmd1bC50cmFuc2xpdGVyYXRlKGphbW8yKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmd1bC5lcXVhbHMoaGFuZ3VsMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGQUlMIChDb21wb3VuZCB0cmFuc2xpdGVyYXRvciBwcm9ibGVtKTogIik7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IGJ1dCAiICsgaGFuZ3VsICsgIiA9Y3BkPT4gIiArIGphbW9Ub05hbWUoaGFuZ3VsWCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKGJ1Zi50b1N0cmluZygpKSk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoamFtby5lcXVhbHMoamFtbzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiRkFJTCAoSmFtbzw+SGFuZ3VsIHByb2JsZW0pOiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZ3VsMi5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIoV2VpcmQ6ICIgKyBoYW5ndWxYICsgIiAhPSAiICsgaGFuZ3VsMiArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGQUlMOiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZ3VsMi5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIoV2VpcmQ6ICIgKyBoYW5ndWxYICsgIiAhPSAiICsgaGFuZ3VsMiArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgSGFuZ3VsLUphbW8gY29udmVyc2lvbiBpcyBub3QgdXN1YWxseSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1ZyBoZXJlLCBzbyB3ZSBoaWRlIGl0IGZyb20gZGlzcGxheS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCBsaW5lcyB0byBzZWUgdGhlIEhhbmd1bC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoLy9oYW5ndWwgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYW1vVG9OYW1lKGphbW8pICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4gKyAiID0+ICIgKyBqYW1vVG9OYW1lKGphbW8yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLysgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyA9IHNwYWNlKzE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVycm9ycyAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCB3b3JkIGZhaWx1cmVzOiAiICsgZXJyb3JzICsgIiBvdXQgb2YgIiArIHRvdGFsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJBbGwgIiArIHRvdGFsICsgIiB0ZXN0IHdvcmRzIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCB0ZXh0IHRha2VuIGZyb20gdGhlIFVuaWNvZGUgd2ViIHNpdGUKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFdIQVRfSVNfVU5JQ09ERSA9CisKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YzVkMCBcdWIzMDBcdWQ1NzQgPyAiICsKKworICAgICAgICAiXHVjNWI0XHViNWE0IFx1ZDUwY1x1YjdhYlx1ZDNmYywgXHVjNWI0XHViNWE0ICIgKworICAgICAgICAiXHVkNTA0XHViODVjXHVhZGY4XHViN2E4LCBcdWM1YjRcdWI1YTQgXHVjNWI4XHVjNWI0XHVjNWQwXHViM2M0ICIgKworICAgICAgICAiXHVjMGMxXHVhZDAwXHVjNWM2XHVjNzc0IFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWJhYThcdWI0ZTAgIiArCisgICAgICAgICJcdWJiMzhcdWM3OTBcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YWNlMFx1YzcyMCBcdWJjODhcdWQ2MzhcdWI5N2MgIiArCisgICAgICAgICJcdWM4MWNcdWFjZjVcdWQ1NjlcdWIyYzhcdWIyZTQuICIgKworICAgICAgICAKKyAgICAgICAgIlx1YWUzMFx1YmNmOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWNlZjRcdWQ0ZThcdWQxMzBcdWIyOTQgIiArCisgICAgICAgICJcdWMyMmJcdWM3OTBcdWI5Y2MgXHVjYzk4XHViOWFjXHVkNTY5XHViMmM4XHViMmU0LiBcdWFlMDBcdWM3OTBcdWIwOTggIiArCisgICAgICAgICJcdWIyZTRcdWI5NzggXHViYjM4XHVjNzkwXHVjNWQwXHViM2M0IFx1YzIyYlx1Yzc5MFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzljMFx1YzgxNVx1ZDU1OFx1YzVlYyAiICsKKyAgICAgICAgIlx1YzgwMFx1YzdhNVx1ZDU2OVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHVhYzAwICIgKworICAgICAgICAiXHVhYzFjXHViYzFjXHViNDE4XHVhZTMwIFx1YzgwNFx1YzVkMFx1YjI5NCBcdWM3NzRcdWI3ZWNcdWQ1NWMgIiArCisgICAgICAgICJcdWMyMmJcdWM3OTBcdWI5N2MgXHVjOWMwXHVjODE1XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWMyMThcdWJjMzEgIiArCisgICAgICAgICJcdWFjMDBcdWM5YzBcdWM3NTggXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCAiICsKKyAgICAgICAgIlx1YzJkY1x1YzJhNFx1ZDE1Y1x1Yzc0NCAiICsKKyAgICAgICAgIlx1YzBhY1x1YzZhOVx1ZDU4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHViMmU4XHVjNzdjIFx1YWUzMFx1ZDYzOFx1ZDY1NCAiICsKKyAgICAgICAgIlx1YmMyOVx1YmM5NVx1YzczY1x1Yjg1Y1x1YjI5NCBcdWJhYThcdWI0ZTAgXHViYjM4XHVjNzkwXHViOTdjICIgKworICAgICAgICAiXHVkM2VjXHVkNTY4XHVkNTYwIFx1YzIxOCBcdWM1YzZcdWM1YzhcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YzYwOFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YjRlNFx1YzViNCBcdWM3MjBcdWI3ZmQgXHVjNWYwXHVkNTY5XHVjNWQwXHVjMTFjXHViOWNjICIgKworICAgICAgICAiXHViY2Y0XHViMzU0XHViNzdjXHViM2M0IFx1YmFhOFx1YjRlMCBcdWFjMDEgXHViMDk4XHViNzdjXHViY2M0ICIgKworICAgICAgICAiXHVjNWI4XHVjNWI0XHViOTdjIFx1Y2M5OFx1YjlhY1x1ZDU1OFx1YjgyNFx1YmE3NCBcdWM1ZWNcdWI3ZWMgIiArCisgICAgICAgICJcdWFjMWNcdWM3NTggXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NzQgIiArCisgICAgICAgICJcdWQ1NDRcdWM2OTRcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YzYwMVx1YzViNFx1YzY0MCBcdWFjMTlcdWM3NDAgIiArCisgICAgICAgICJcdWIyZThcdWM3N2MgXHVjNWI4XHVjNWI0XHVjNzU4IFx1YWNiZFx1YzZiMFx1YjNjNCAiICsKKyAgICAgICAgIlx1YWNmNVx1ZDFiNVx1YzgwMVx1YzczY1x1Yjg1YyBcdWMwYWNcdWM2YTlcdWI0MThcdWIyOTQgXHViYWE4XHViNGUwICIgKworICAgICAgICAiXHVhZTAwXHVjNzkwLCBcdWJiMzhcdWM3YTUgXHViZDgwXHVkNjM4IFx1YmMwZiAiICsKKyAgICAgICAgIlx1ZDE0Y1x1ZDA2Y1x1YjJjOFx1Y2VlYyBcdWFlMzBcdWQ2MzhcdWM1ZDAgXHViOWRlXHViMjk0IFx1YjJlOFx1Yzc3YyAiICsKKyAgICAgICAgIlx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NDQgXHVhYzE2XHVhY2UwIFx1Yzc4OFx1YzljMCAiICsKKyAgICAgICAgIlx1YmFiYlx1ZDU1OFx1YzYwMFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzc0XHViN2VjXHVkNTVjIFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWMyZGNcdWMyYTRcdWQxNWNcdWM3NDAgIiArCisgICAgICAgICJcdWI2MTBcdWQ1NWMgXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWMyZGNcdWMyYTRcdWQxNWNcdWFjZmMgIiArCisgICAgICAgICJcdWNkYTlcdWIzY2NcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1Yzk4OSBcdWI0NTAgXHVhYzAwXHVjOWMwICIgKworICAgICAgICAiXHVhZTMwXHVkNjM4XHVkNjU0IFx1YmMyOVx1YmM5NVx1Yzc3NCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YjJlNFx1Yjk3OCAiICsKKyAgICAgICAgIlx1YmIzOFx1Yzc5MFx1YzVkMCBcdWIzMDBcdWQ1NzQgXHVhYzE5XHVjNzQwIFx1YmM4OFx1ZDYzOFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzBhY1x1YzZhOVx1ZDU1OFx1YWM3MFx1YjA5OCBcdWFjMTlcdWM3NDAgXHViYjM4XHVjNzkwXHVjNWQwICIgKworICAgICAgICAiXHViMzAwXHVkNTc0IFx1YjJlNFx1Yjk3OCBcdWJjODhcdWQ2MzhcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHVjOGZjXHVjNWI0XHVjOWM0IFx1YmFhOFx1YjRlMCAiICsKKyAgICAgICAgIlx1Y2VmNFx1ZDRlOFx1ZDEzMChcdWQyYjlcdWQ3ODggXHVjMTFjXHViYzg0KVx1YjI5NCBcdWMxMWNcdWI4NWMgIiArCisgICAgICAgICJcdWIyZTRcdWI5NzggXHVjNWVjXHViN2VjIFx1YWMwMFx1YzljMCBcdWFlMzBcdWQ2MzhcdWQ2NTQgIiArCisgICAgICAgICJcdWJjMjlcdWJjOTVcdWM3NDQgXHVjOWMwXHVjNmQwXHVkNTc0XHVjNTdjICIgKworICAgICAgICAiXHVkNTY5XHViMmM4XHViMmU0LiBcdWFkZjhcdWI3ZWNcdWIwOTgsIFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzggXHVhZTMwXHVkNjM4XHVkNjU0IFx1YmMyOVx1YmM5NVx1Yzc3NFx1YjA5OCAiICsKKyAgICAgICAgIlx1ZDUwY1x1YjdhYlx1ZDNmYyBcdWFjMDRcdWM1ZDAgXHVjODA0XHViMmVjXHVkNTYwIFx1YjU0Y1x1YjljOFx1YjJlNCAiICsKKyAgICAgICAgIlx1YWRmOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWIyOTQgXHVkNTZkXHVjMGMxIFx1YzE5MFx1YzBjMVx1Yzc1OCAiICsKKyAgICAgICAgIlx1YzcwNFx1ZDVkOFx1Yzc0NCBcdWFjYWFcdWFjOGMgXHViNDI5XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWI4NWMgXHViYWE4XHViNGUwIFx1YWM4M1x1Yzc0NCAiICsKKyAgICAgICAgIlx1ZDU3NFx1YWNiMFx1ZDU2MCBcdWMyMTggXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0ISAiICsKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWMwYWNcdWM2YTkgXHVjOTExXHVjNzc4ICIgKworICAgICAgICAiXHVkNTBjXHViN2FiXHVkM2ZjLCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YTgsIFx1YzViOFx1YzViNFx1YzVkMCAiICsKKyAgICAgICAgIlx1YWQwMFx1YWNjNFx1YzVjNlx1Yzc3NCBcdWJiMzhcdWM3OTBcdWI5YzhcdWIyZTQgXHVhY2UwXHVjNzIwXHVkNTVjICIgKworICAgICAgICAiXHVjMjJiXHVjNzkwXHViOTdjICIgKworICAgICAgICAiXHVjODFjXHVhY2Y1XHVkNTY5XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgIiArCisgICAgICAgICJcdWQ0NWNcdWM5MDBcdWM3NDAgIiArIC8vICJBcHBsZSwgSFAsIElCTSwgSnVzdFN5c3RlbSwgTWljcm9zb2Z0LCBPcmFjbGUsIFNBUCwgIiArCisgICAgICAgIC8vICJTdW4sIFN5YmFzZSwgVW5pc3lzICIgKyAKKyAgICAgICAgIlx1YmMwZiBcdWFlMzBcdWQwYzAgXHVjNWVjXHViN2VjICIgKworICAgICAgICAiXHVkNjhjXHVjMGFjXHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWM1YzVcdWFjYzQgIiArCisgICAgICAgICJcdWMxMjBcdWI0NTBcdWM4ZmNcdWM3OTBcdWM1ZDAgXHVjNzU4XHVkNTc0ICIgKworICAgICAgICAiXHVjYzQ0XHVkMGRkXHViNDE4XHVjNWM4XHVjMmI1XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWIyOTQgIiArCisgICAgICAgIC8vICJYTUwsIEphdmEsIEVDTUFTY3JpcHQoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01MICIgKworICAgICAgICAiXHViNGYxXHVhY2ZjICIgKworICAgICAgICAiXHVhYzE5XHVjNzc0IFx1ZDYwNFx1YzdhYyBcdWIxMTBcdWI5YWMgXHVjMGFjXHVjNmE5XHViNDE4XHViMjk0ICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNWQwXHVjMTFjIFx1ZDU0NFx1YzY5NFx1ZDU1OFx1YmE3MCBcdWM3NzRcdWIyOTQgIiArIC8vSVNPL0lFQyAiICsKKyAgICAgICAgIjEwNjQ2XHVjNzQ0IFx1YWQ2Y1x1ZDYwNFx1ZDU1OFx1YjI5NCBcdWFjZjVcdWMyZGRcdWM4MDFcdWM3NzggIiArCisgICAgICAgICJcdWJjMjlcdWJjOTVcdWM3ODVcdWIyYzhcdWIyZTQuIFx1Yzc3NFx1YjI5NCBcdWI5Y2VcdWM3NDAgXHVjNmI0XHVjNjAxICIgKworICAgICAgICAiXHVjY2I0XHVjODFjLCBcdWM2OTRcdWM5OTggXHVjMGFjXHVjNmE5XHViNDE4XHViMjk0IFx1YmFhOFx1YjRlMCAiICsKKyAgICAgICAgIlx1YmUwY1x1Yjc3Y1x1YzZiMFx1YzgwMCBcdWJjMGYgXHVhZTMwXHVkMGMwIFx1YjljZVx1Yzc0MCAiICsKKyAgICAgICAgIlx1YzgxY1x1ZDQ4OFx1YzVkMFx1YzExYyAiICsKKyAgICAgICAgIlx1YzljMFx1YzZkMFx1YjQyOVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNzU4IFx1YmQ4MFx1YzBjMVx1YWNmYyBcdWM3NzRcdWI5N2MgIiArCisgICAgICAgICJcdWM5YzBcdWM2ZDBcdWQ1NThcdWIyOTQgXHViM2M0XHVhZDZjXHVjNzU4IFx1YWMwMFx1YzZhOVx1YzEzMVx1Yzc0MCAiICsKKyAgICAgICAgIlx1Y2Q1Y1x1YWRmYyBcdWM4MDQgXHVjMTM4XHVhY2M0XHVjNWQwIFx1YmQ4OFx1YWNlMCBcdWM3ODhcdWIyOTQgIiArCisgICAgICAgICJcdWFlMzBcdWMyMjAgXHVhY2JkXHVkNWE1XHVjNWQwXHVjMTFjIFx1YWMwMFx1YzdhNSBcdWM5MTFcdWM2OTRcdWQ1NWMgIiArCisgICAgICAgICJcdWJkODBcdWJkODRcdWM3NDQgXHVjYzI4XHVjOWMwXHVkNTU4XHVhY2UwIFx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViOTdjICIgKworICAgICAgICAiXHVkMDc0XHViNzdjXHVjNzc0XHVjNWI4XHVkMmI4LVx1YzExY1x1YmM4NCBcdWI2MTBcdWIyOTQgIiArCisgICAgICAgICJcdWIyZTRcdWM5MTEtXHVjNWYwXHVhY2IwIFx1Yzc1MVx1YzZhOSBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWFjZmMgIiArCisgICAgICAgICJcdWM2ZjkgXHVjMGFjXHVjNzc0XHVkMmI4XHVjNWQwIFx1ZDFiNVx1ZDU2OVx1ZDU1OFx1YmE3NCAiICsKKyAgICAgICAgIlx1YjgwOFx1YWM3MFx1YzJkYyBcdWJiMzhcdWM3OTAgXHVjMTM4XHVkMmI4IFx1YzBhY1x1YzZhOVx1YzVkMCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzViNFx1YzExYyBcdWMwYzFcdWIyZjlcdWQ1NWMgXHViZTQ0XHVjNmE5IFx1YzgwOFx1YWMxMCAiICsKKyAgICAgICAgIlx1ZDZhOFx1YWNmY1x1YWMwMCAiICsKKyAgICAgICAgIlx1YjA5OFx1ZDBjMFx1YjBhOVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViOTdjICIgKworICAgICAgICAiXHVkMWI1XHVkNTc0IFx1YjlhY1x1YzVkNFx1YzljMFx1YjJjOFx1YzViNFx1YjljMSBcdWM1YzZcdWM3NzQgIiArCisgICAgICAgICJcdWIyZTRcdWM5MTEgXHVkNTBjXHViN2FiXHVkM2ZjLCBcdWM1YjhcdWM1YjQgXHViYzBmIFx1YWQ2ZFx1YWMwMCAiICsKKyAgICAgICAgIlx1YWMwNFx1YzVkMCBcdWIyZThcdWM3N2MgXHVjMThjXHVkNTA0XHVkMmI4XHVjNmU4XHVjNWI0ICIgKworICAgICAgICAiXHVkNTBjXHViN2FiXHVkM2ZjIFx1YjYxMFx1YjI5NCBcdWIyZThcdWM3N2MgXHVjNmY5ICIgKworICAgICAgICAiXHVjMGFjXHVjNzc0XHVkMmI4XHViOTdjIFx1YmFhOVx1ZDQ1Y1x1Yjg1YyBcdWMwYmNcdWM3NDQgXHVjMjE4ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiBcdWM3NzRcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTU4XHViYTc0ICIgKworICAgICAgICAiXHViMzcwXHVjNzc0XHVkMTMwXHViOTdjIFx1YzE5MFx1YzBjMSBcdWM1YzZcdWM3NzQgXHVjNWVjXHViN2VjICIgKworICAgICAgICAiXHVjMmRjXHVjMmE0XHVkMTVjXHVjNzQ0IFx1ZDFiNVx1ZDU3NCBcdWM4MDRcdWMxYTFcdWQ1NjAgXHVjMjE4ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNWQwIFx1YjMwMFx1ZDU3NCAiICsKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyBcdWNmNThcdWMxOGNcdWMyZGNcdWM1YzRcdWM3NDAgIiArCisgICAgICAgICJcdWJlNDRcdWM2MDFcdWI5YWMgXHVjODcwXHVjOWMxXHVjNzNjXHViODVjXHVjMTFjIFx1ZDYwNFx1YjMwMCAiICsKKyAgICAgICAgIlx1YzE4Y1x1ZDUwNFx1ZDJiOFx1YzZlOFx1YzViNCBcdWM4MWNcdWQ0ODhcdWFjZmMgIiArCisgICAgICAgICJcdWQ0NWNcdWM5MDBcdWM1ZDBcdWMxMWMgXHVkMTRkXHVjMmE0XHVkMmI4XHVjNzU4IFx1ZDQ1Y1x1ZDYwNFx1Yzc0NCAiICsKKyAgICAgICAgIlx1YzljMFx1YzgxNVx1ZDU1OFx1YjI5NCBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVkNDVjXHVjOTAwXHVjNzU4ICIgKworICAgICAgICAiXHVjMGFjXHVjNmE5XHVjNzQ0IFx1YWMxY1x1YmMxY1x1ZDU1OFx1YWNlMCBcdWQ2NTVcdWM3YTVcdWQ1NThcdWJhNzAgIiArCisgICAgICAgICJcdWM3YTVcdWI4MjRcdWQ1NThcdWFlMzAgXHVjNzA0XHVkNTc0ICIgKworICAgICAgICAiXHVjMTM4XHVjNmNjXHVjODRjXHVjMmI1XHViMmM4XHViMmU0LiBcdWNmNThcdWMxOGNcdWMyZGNcdWM1YzQgIiArCisgICAgICAgICJcdWJhNjRcdWJjODRcdWMyN2RcdWM3NDAgXHVjZWY0XHVkNGU4XHVkMTMwXHVjNjQwIFx1YzgxNVx1YmNmNCAiICsKKyAgICAgICAgIlx1Y2M5OFx1YjlhYyBcdWMwYjBcdWM1YzVcdWM1ZDAgXHVjODg1XHVjMGFjXHVkNTU4XHVhY2UwIFx1Yzc4OFx1YjI5NCAiICsKKyAgICAgICAgIlx1YWQxMVx1YmM5NFx1YzcwNFx1ZDU1YyBcdWQ2OGNcdWMwYWMgXHViYzBmIFx1Yzg3MFx1YzljMVx1Yzc1OCAiICsKKyAgICAgICAgIlx1YmM5NFx1YzcwNFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YjA5OFx1ZDBjMFx1YjBjNVx1YjJjOFx1YjJlNC4gXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNzU4ICIgKworICAgICAgICAiXHVjN2FjXHVjODE1XHVjNzQwIFx1YzgwNFx1YzgwMVx1YzczY1x1Yjg1YyBcdWQ2OGNcdWJlNDRcdWM1ZDAgIiArCisgICAgICAgICJcdWM3NThcdWQ1NzQgXHVjZGE5XHViMmY5XHViNDI5XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgIiArCisgICAgICAgICJcdWNlZThcdWMxOGNcdWMyZGNcdWM1YzRcdWM1ZDBcdWMxMWNcdWM3NTggXHViYTY0XHViYzg0XHVjMjdkXHVjNzQwICIgKworICAgICAgICAiXHVjODA0IFx1YzEzOFx1YWNjNCBcdWM1YjRcdWIyOTAgXHVhY2YzXHVjNWQwXHVjMTFjXHViMDk4ICIgKworICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjIFx1ZDQ1Y1x1YzkwMFx1Yzc0NCBcdWM5YzBcdWM2ZDBcdWQ1NThcdWFjZTAgIiArCisgICAgICAgICJcdWFkZjggXHVkNjU1XHVjN2E1XHVhY2ZjIFx1YWQ2Y1x1ZDYwNFx1Yzc0NCAiICsKKyAgICAgICAgIlx1YzljMFx1YzZkMFx1ZDU1OFx1YWNlMFx1Yzc5MFx1ZDU1OFx1YjI5NCBcdWM4NzBcdWM5YzFcdWFjZmMgIiArCisgICAgICAgICJcdWFjMWNcdWM3NzhcdWM1ZDBcdWFjOGMgXHVhYzFjXHViYzI5XHViNDE4XHVjNWI0ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWIzNTQgXHVjNzkwXHVjMTM4XHVkNTVjIFx1YjBiNFx1YzZhOVx1Yzc0MCBcdWM2YTlcdWM1YjRcdWM5ZDEsICIgKworICAgICAgICAiXHVjNjA4XHVjODFjIFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyBcdWMwYWNcdWM2YTkgXHVhYzAwXHViMmE1ICIgKworICAgICAgICAiXHVjODFjXHVkNDg4LCBcdWFlMzBcdWMyMjAgXHVjODE1XHViY2Y0IFx1YmMwZiBcdWFlMzBcdWQwYzAgIiArCisgICAgICAgICJcdWM3MjBcdWM2YTlcdWQ1NWMgXHVjODE1XHViY2Y0XHViOTdjICIgKworICAgICAgICAiXHVjYzM4XHVjODcwXHVkNTU4XHVjMmVkXHVjMmRjXHVjNjI0LiI7CisKKyAgICAvLyBUcmFuc2xpdGVyYXRvclRlc3Qgb3ZlcnJpZGUKKyAgICBib29sZWFuIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc3VtbWFyeSwgYm9vbGVhbiBwYXNzLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICByZXR1cm4gc3VwZXIuZXhwZWN0QXV4KHRhZywgamFtb1RvTmFtZShzdW1tYXJ5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MsIGphbW9Ub05hbWUoZXhwZWN0ZWRSZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBVVElMSVRJRVMKKworICAgIC8vIE5vdGU6IFRoZSBmb2xsb3dpbmcgY291bGQgbW9yZSBlYXNpbHkgYmUgZG9uZSB3aXRoIGEgdHJhbnNsaXRlcmF0b3IhCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEpBTU9fTkFNRVMgPSB7CisgICAgICAgICIoR2kpIiwgIlx1MTEwMCIsCisgICAgICAgICIoR0dpKSIsICJcdTExMDEiLAorICAgICAgICAiKE5pKSIsICJcdTExMDIiLAorICAgICAgICAiKERpKSIsICJcdTExMDMiLAorICAgICAgICAiKEREKSIsICJcdTExMDQiLAorICAgICAgICAiKFIpIiwgIlx1MTEwNSIsCisgICAgICAgICIoTWkpIiwgIlx1MTEwNiIsCisgICAgICAgICIoQmkpIiwgIlx1MTEwNyIsCisgICAgICAgICIoQkIpIiwgIlx1MTEwOCIsCisgICAgICAgICIoU2kpIiwgIlx1MTEwOSIsCisgICAgICAgICIoU1NpKSIsICJcdTExMEEiLAorICAgICAgICAiKElFVU5HKSIsICJcdTExMEIiLAorICAgICAgICAiKEppKSIsICJcdTExMEMiLAorICAgICAgICAiKEpKKSIsICJcdTExMEQiLAorICAgICAgICAiKENpKSIsICJcdTExMEUiLAorICAgICAgICAiKEtpKSIsICJcdTExMEYiLAorICAgICAgICAiKFRpKSIsICJcdTExMTAiLAorICAgICAgICAiKFBpKSIsICJcdTExMTEiLAorICAgICAgICAiKEhpKSIsICJcdTExMTIiLAorICAgICAgICAKKyAgICAgICAgIihBKSIsICJcdTExNjEiLAorICAgICAgICAiKEFFKSIsICJcdTExNjIiLAorICAgICAgICAiKFlBKSIsICJcdTExNjMiLAorICAgICAgICAiKFlBRSkiLCAiXHUxMTY0IiwKKyAgICAgICAgIihFTykiLCAiXHUxMTY1IiwKKyAgICAgICAgIihFKSIsICJcdTExNjYiLAorICAgICAgICAiKFlFTykiLCAiXHUxMTY3IiwKKyAgICAgICAgIihZRSkiLCAiXHUxMTY4IiwKKyAgICAgICAgIihPKSIsICJcdTExNjkiLAorICAgICAgICAiKFdBKSIsICJcdTExNkEiLAorICAgICAgICAiKFdBRSkiLCAiXHUxMTZCIiwKKyAgICAgICAgIihPRSkiLCAiXHUxMTZDIiwKKyAgICAgICAgIihZTykiLCAiXHUxMTZEIiwKKyAgICAgICAgIihVKSIsICJcdTExNkUiLAorICAgICAgICAiKFdFTykiLCAiXHUxMTZGIiwKKyAgICAgICAgIihXRSkiLCAiXHUxMTcwIiwKKyAgICAgICAgIihXSSkiLCAiXHUxMTcxIiwKKyAgICAgICAgIihZVSkiLCAiXHUxMTcyIiwKKyAgICAgICAgIihFVSkiLCAiXHUxMTczIiwKKyAgICAgICAgIihZSSkiLCAiXHUxMTc0IiwKKyAgICAgICAgIihJKSIsICJcdTExNzUiLAorCisgICAgICAgICIoR2YpIiwgIlx1MTFBOCIsCisgICAgICAgICIoR0dmKSIsICJcdTExQTkiLAorICAgICAgICAiKEdTKSIsICJcdTExQUEiLAorICAgICAgICAiKE5mKSIsICJcdTExQUIiLAorICAgICAgICAiKE5KKSIsICJcdTExQUMiLAorICAgICAgICAiKE5IKSIsICJcdTExQUQiLAorICAgICAgICAiKERmKSIsICJcdTExQUUiLAorICAgICAgICAiKEwpIiwgIlx1MTFBRiIsCisgICAgICAgICIoTEcpIiwgIlx1MTFCMCIsCisgICAgICAgICIoTE0pIiwgIlx1MTFCMSIsCisgICAgICAgICIoTEIpIiwgIlx1MTFCMiIsCisgICAgICAgICIoTFMpIiwgIlx1MTFCMyIsCisgICAgICAgICIoTFQpIiwgIlx1MTFCNCIsCisgICAgICAgICIoTFApIiwgIlx1MTFCNSIsCisgICAgICAgICIoTEgpIiwgIlx1MTFCNiIsCisgICAgICAgICIoTWYpIiwgIlx1MTFCNyIsCisgICAgICAgICIoQmYpIiwgIlx1MTFCOCIsCisgICAgICAgICIoQlMpIiwgIlx1MTFCOSIsCisgICAgICAgICIoU2YpIiwgIlx1MTFCQSIsCisgICAgICAgICIoU1NmKSIsICJcdTExQkIiLAorICAgICAgICAiKE5HKSIsICJcdTExQkMiLAorICAgICAgICAiKEpmKSIsICJcdTExQkQiLAorICAgICAgICAiKENmKSIsICJcdTExQkUiLAorICAgICAgICAiKEtmKSIsICJcdTExQkYiLAorICAgICAgICAiKFRmKSIsICJcdTExQzAiLAorICAgICAgICAiKFBmKSIsICJcdTExQzEiLAorICAgICAgICAiKEhmKSIsICJcdTExQzIiLAorICAgIH07CisKKyAgICBzdGF0aWMgSGFzaHRhYmxlIEpBTU9fVE9fTkFNRTsKKyAgICBzdGF0aWMgSGFzaHRhYmxlIE5BTUVfVE9fSkFNTzsKKworICAgIHN0YXRpYyB7CisgICAgICAgIEpBTU9fVE9fTkFNRSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgTkFNRV9UT19KQU1PID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8SkFNT19OQU1FUy5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIEpBTU9fVE9fTkFNRS5wdXQoSkFNT19OQU1FU1tpKzFdLCBKQU1PX05BTUVTW2ldKTsKKyAgICAgICAgICAgIE5BTUVfVE9fSkFNTy5wdXQoSkFNT19OQU1FU1tpXSwgSkFNT19OQU1FU1tpKzFdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgc2hvcnQgbmFtZXMgdG8gYWN0dWFsIGphbW8uICBFLmcuLCAieChMRyl5IiByZXR1cm5zCisgICAgICogInhcdTExQjB5Ii4gIFNlZSBKQU1PX05BTUVTIGZvciB0YWJsZSBvZiBuYW1lcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIG5hbWVUb0phbW8oU3RyaW5nIGlucHV0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxpbnB1dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBpbnB1dC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnKCcpIHsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGlucHV0LmluZGV4T2YoJyknLCBpKzEpOworICAgICAgICAgICAgICAgIGlmICgoai1pKSA+PSAyICYmIChqLWkpIDw9IDYpIHsgLy8gIihBKSIsICIoSUVVTkcpIgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamFtbyA9IChTdHJpbmcpIE5BTUVfVE9fSkFNTy5nZXQoaW5wdXQuc3Vic3RyaW5nKGksIGorMSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoamFtbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGphbW8pOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgamFtbyB0byBzaG9ydCBuYW1lcy4gIEUuZy4sICJ4XHUxMUIweSIgcmV0dXJucworICAgICAqICJ4KExHKXkiLiAgU2VlIEpBTU9fTkFNRVMgZm9yIHRhYmxlIG9mIG5hbWVzLgorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmcgamFtb1RvTmFtZShTdHJpbmcgaW5wdXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlucHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGlucHV0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID49IDB4MTEwMCAmJiBjIDw9IDB4MTFDMikgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgSkFNT19UT19OQU1FLmdldChpbnB1dC5zdWJzdHJpbmcoaSwgaSsxKSk7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUmVwbGFjZWFibGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUmVwbGFjZWFibGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTU3ZTFjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9SZXBsYWNlYWJsZVRlc3QuamF2YQpAQCAtMCwwICsxLDE4NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IFJvdW5kIHRyaXAgdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgUmVwbGFjZWFibGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBMQVRFUl9USEFOXzJfMSA9IHRydWU7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSZXBsYWNlYWJsZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0KCkgdGhyb3dzIElPRXhjZXB0aW9uLCBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIGNoZWNrKCJMb3dlciIsICJBQkNEIiwgIjEyMzQiKTsKKyAgICAgICAgY2hlY2soIlVwcGVyIiwgImFiY2RcdTAwREYiLCAiMTIzNDU1Iik7IC8vIG11c3QgbWFwIDAwREYgdG8gU1MKKyAgICAgICAgY2hlY2soIlRpdGxlIiwgImFCQ0QiLCAiMTIzNCIpOworICAgICAgICBjaGVjaygiTkZDIiwgIkFcdTAzMDBFXHUwMzAwIiwgIjEzIik7CisgICAgICAgIGNoZWNrKCJORkQiLCAiXHUwMEMwXHUwMEM4IiwgIjExMjIiKTsKKyAgICAgICAgaWYgKCFMQVRFUl9USEFOXzJfMSkgcmV0dXJuOworICAgICAgICBjaGVjaygiKih4KSA+IEEgJDEgQiIsICJ3eHkiLCAiMTEyMjMiKTsKKyAgICAgICAgY2hlY2soIiooeCkoeSkgPiBBICQyIEIgJDEgQyAkMiBEIiwgInd4eXoiLCAiMTEzMzIyMzM0Iik7CisgICAgICAgIGNoZWNrKCIqKHgpKHkpKHopID4gQSAkMyBCICQyIEMgJDEgRCIsICJ3eHl6dSIsICIxMTQ0MzMyMjUiKTsKKyAgICAvLyBEaXNhYmxlZCBmb3IgMi40LiAgVE9ETyBSZXZpc2l0IGluIDIuNiBvciBsYXRlci4KKyAgICAgICAgLy9jaGVjaygiKnggPiBhIiwgInh5eiIsICIyMjMiKTsgLy8gZXhwZWN0ICIxMjMiPworICAgICAgICAvL2NoZWNrKCIqeCA+IGEiLCAid3h5IiwgIjExMyIpOyAvLyBleHBlY3QgIjEyMyI/CisgICAgICAgIC8vY2hlY2soIip4ID4gYSIsICJcdUZGRkZ4eSIsICJfMzMiKTsgLy8gZXhwZWN0ICJfMjMiPworICAgICAgICAvL2NoZWNrKCIqKHgpID4gQSAkMSBCIiwgIlx1RkZGRnh5IiwgIl9fMjIzIik7CisgICAgfQorICAgIAorICAgIHZvaWQgY2hlY2soU3RyaW5nIHRyYW5zbGl0ZXJhdG9yTmFtZSwgU3RyaW5nIHRlc3QsIFN0cmluZyBzaG91bGRQcm9kdWNlU3R5bGVzKSB7CisgICAgICAgIFRlc3RSZXBsYWNlYWJsZSB0ciA9IG5ldyBUZXN0UmVwbGFjZWFibGUodGVzdCwgbnVsbCk7CisgICAgICAgIFN0cmluZyBvcmlnaW5hbCA9IHRyLnRvU3RyaW5nKCk7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworICAgICAgICBpZiAodHJhbnNsaXRlcmF0b3JOYW1lLnN0YXJ0c1dpdGgoIioiKSkgeworICAgICAgICAgICAgdHJhbnNsaXRlcmF0b3JOYW1lID0gdHJhbnNsaXRlcmF0b3JOYW1lLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLCB0cmFuc2xpdGVyYXRvck5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zbGl0ZXJhdG9yTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRyKTsKKyAgICAgICAgU3RyaW5nIG5ld1N0eWxlcyA9IHRyLmdldFN0eWxlcygpOworICAgICAgICBpZiAoIW5ld1N0eWxlcy5lcXVhbHMoc2hvdWxkUHJvZHVjZVN0eWxlcykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFN0eWxlczogIiArIHRyYW5zbGl0ZXJhdG9yTmFtZSArICIgKCAiCisgICAgICAgICAgICAgICAgKyBvcmlnaW5hbCArICIgKSA9PiAiICsgdHIudG9TdHJpbmcoKSArICI7IHNob3VsZCBiZSB7IiArIHNob3VsZFByb2R1Y2VTdHlsZXMgKyAifSEiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHRyYW5zbGl0ZXJhdG9yTmFtZSArICIgKCAiICsgb3JpZ2luYWwgKyAiICkgPT4gIiArIHRyLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIXRyLmhhc01ldGFEYXRhKCkgfHwgdHIuY2hhcnMuaGFzTWV0YURhdGEoKSAKKyAgICAgICAgICAgIHx8IHRyLnN0eWxlcy5oYXNNZXRhRGF0YSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCBoYXNNZXRhRGF0YSgpIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgdGVzdCBjbGFzcyB0aGF0IHNpbXVsYXRlcyBzdHlsZWQgdGV4dC4KKyAgICAgKiBJdCBhc3NvY2lhdGVzIGEgc3R5bGUgbnVtYmVyICgwLi42NTUzNSkgd2l0aCBlYWNoIGNoYXJhY3RlciwKKyAgICAgKiBhbmQgbWFpbnRhaW5zIHRoYXQgc3R5bGUgaW4gdGhlIG5vcm1hbCBmYXNoaW9uOgorICAgICAqIFdoZW4gc2V0dGluZyB0ZXh0IGZyb20gcmF3IHN0cmluZyBvciBjaGFyYWN0ZXJzLDxicj4KKyAgICAgKiBTZXQgdGhlIHN0eWxlcyB0byB0aGUgc3R5bGUgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciByZXBsYWNlZC48YnI+CisgICAgICogSWYgbm8gY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQsIHVzZSB0aGUgc3R5bGUgb2YgdGhlIHByZXZpb3VzIGNoYXJhY3Rlci48YnI+CisgICAgICogSWYgYXQgc3RhcnQsIHVzZSB0aGUgZm9sbG93aW5nIGNoYXJhY3Rlcjxicj4KKyAgICAgKiBPdGhlcndpc2UgdXNlIE5PX1NUWUxFLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBUZXN0UmVwbGFjZWFibGUgaW1wbGVtZW50cyBSZXBsYWNlYWJsZSB7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIGNoYXJzOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzdHlsZXM7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgZmluYWwgY2hhciBOT19TVFlMRSA9ICdfJzsKKworICAgICAgICBzdGF0aWMgZmluYWwgY2hhciBOT19TVFlMRV9NQVJLID0gMHhGRkZGOworICAgICAgICAKKyAgICAgICAgVGVzdFJlcGxhY2VhYmxlIChTdHJpbmcgdGV4dCwgU3RyaW5nIHN0eWxlcykgeworICAgICAgICAgICAgY2hhcnMgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcodGV4dCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0eWxlcyAhPSBudWxsICYmIGkgPCBzdHlsZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcy5hcHBlbmQoc3R5bGVzLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckF0KGkpID09IE5PX1NUWUxFX01BUkspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKE5PX1NUWUxFKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKChjaGFyKSAoaSArICcxJykpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5zdHlsZXMgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcocy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTdHlsZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gc3R5bGVzLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMudG9TdHJpbmcoKSArICJ7IiArIHN0eWxlcy50b1N0cmluZygpICsgIn0iOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBzdWJzdHJpbmcoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5zdWJzdHJpbmcoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJzLmxlbmd0aCgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgY2hhckF0KGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgY2hhcjMyQXQoaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJzLmNoYXIzMkF0KG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBnZXRDaGFycyhpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwgY2hhciBkc3RbXSwgaW50IGRzdFN0YXJ0KSB7CisgICAgICAgICAgICBjaGFycy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGRzdCwgZHN0U3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgICAgIGlmIChzdWJzdHJpbmcoc3RhcnQsbGltaXQpLmVxdWFscyh0ZXh0KSkgcmV0dXJuOyAvLyBOTyBBQ1RJT04hCisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnQoVXRpbGl0eS5lc2NhcGUodG9TdHJpbmcoKSArICIgLT4gcmVwbGFjZSgiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCIgKyBsaW1pdCArICIsIiArIHRleHQpICsgIikgLT4gIik7CisgICAgICAgICAgICBjaGFycy5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCk7CisgICAgICAgICAgICBmaXhTdHlsZXMoc3RhcnQsIGxpbWl0LCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKHRvU3RyaW5nKCkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyc1N0YXJ0LCBpbnQgY2hhcnNMZW4pIHsKKyAgICAgICAgICAgIGlmIChzdWJzdHJpbmcoc3RhcnQsbGltaXQpLmVxdWFscyhuZXcgU3RyaW5nKGNoYXJzLCBjaGFyc1N0YXJ0LCBjaGFyc0xlbi1jaGFyc1N0YXJ0KSkpIHJldHVybjsgLy8gTk8gQUNUSU9OIQorICAgICAgICAgICAgdGhpcy5jaGFycy5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgY2hhcnMsIGNoYXJzU3RhcnQsIGNoYXJzTGVuKTsKKyAgICAgICAgICAgIGZpeFN0eWxlcyhzdGFydCwgbGltaXQsIGNoYXJzTGVuKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZml4U3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgbmV3TGVuKSB7CisgICAgICAgICAgICBjaGFyIG5ld1N0eWxlID0gTk9fU1RZTEU7CisgICAgICAgICAgICBpZiAoc3RhcnQgIT0gbGltaXQgJiYgc3R5bGVzLmNoYXJBdChzdGFydCkgIT0gTk9fU1RZTEUpIHsKKyAgICAgICAgICAgICAgICBuZXdTdHlsZSA9IHN0eWxlcy5jaGFyQXQoc3RhcnQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCA+IDAgJiYgY2hhckF0KHN0YXJ0LTEpICE9IE5PX1NUWUxFX01BUkspIHsKKyAgICAgICAgICAgICAgICBuZXdTdHlsZSA9IHN0eWxlcy5jaGFyQXQoc3RhcnQtMSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbWl0IDwgc3R5bGVzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgbmV3U3R5bGUgPSBzdHlsZXMuY2hhckF0KGxpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdy4KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuZXdMZW47ICsraSkgeworICAgICAgICAgICAgICAgIC8vIHRoaXMgZG9lc24ndCByZWFsbHkgaGFuZGxlIGFuIGVtYmVkZGVkIE5PX1NUWUxFX01BUksKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGUgbWlkZGxlIG9mIGEgbG9uZyBydW4gb2YgY2hhcmFjdGVycyByaWdodCAtLSBidXQKKyAgICAgICAgICAgICAgICAvLyB0aGF0IGNhc2Ugc2hvdWxkbid0IGhhcHBlbiBhbnl3YXkKKyAgICAgICAgICAgICAgICBpZiAoY2hhckF0KHN0YXJ0K2kpID09IE5PX1NUWUxFX01BUkspIHsKKyAgICAgICAgICAgICAgICAgICAgcy5hcHBlbmQoTk9fU1RZTEUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKG5ld1N0eWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHlsZXMucmVwbGFjZShzdGFydCwgbGltaXQsIHMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBjb3B5KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgZGVzdCkgeworICAgICAgICAgICAgY2hhcnMuY29weShzdGFydCwgbGltaXQsIGRlc3QpOworICAgICAgICAgICAgc3R5bGVzLmNvcHkoc3RhcnQsIGxpbWl0LCBkZXN0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTWV0YURhdGEoKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1JvdW5kVHJpcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Sb3VuZFRyaXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWU1ODA0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Sb3VuZFRyaXBUZXN0LmphdmEKQEAgLTAsMCArMSwxNTk4IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Mb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkV3JpdGVyOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBSb3VuZCB0cmlwIHRlc3Qgb2YgVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIFJvdW5kVHJpcFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBFWFRSQV9URVNUUyA9IHRydWU7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gUFJJTlRfUlVMRVMgPSB0cnVlOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSb3VuZFRyaXBUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RTaW5nbGUoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1HcmVlayIpOworICAgICAgICBTdHJpbmcgcyA9IHQudHJhbnNsaXRlcmF0ZSgiXHUwMTAxXHUwMDY5Iik7CisgICAgfQorICAgICovCisKKyAgICAvKgorICAgIE5vdGU6IFVuaWNvZGUgMy4yIGFkZGVkIG5ldyBIaXJhZ2FuYS9LYXRha2FuYSBjaGFyYWN0ZXJzOgorCiszMDk1Li4zMDk2ICAgIDsgMy4yICMgICBbMl0gSElSQUdBTkEgTEVUVEVSIFNNQUxMIEtBLi5ISVJBR0FOQSBMRVRURVIgU01BTEwgS0UKKzMwOUYuLjMwQTAgICAgOyAzLjIgIyAgIFsyXSBISVJBR0FOQSBESUdSQVBIIFlPUkkuLktBVEFLQU5BLUhJUkFHQU5BIERPVUJMRSBIWVBIRU4KKzMwRkYgICAgICAgICAgOyAzLjIgIyAgICAgICBLQVRBS0FOQSBESUdSQVBIIEtPVE8KKzMxRjAuLjMxRkYgICAgOyAzLjIgIyAgWzE2XSBLQVRBS0FOQSBMRVRURVIgU01BTEwgS1UuLktBVEFLQU5BIExFVFRFUiBTTUFMTCBSTworCisgICAgV2Ugd2lsbCBub3QgYWRkIHRoZW0gdG8gdGhlIHJ1bGVzIHVudGlsIHRoZXkgYXJlIG1vcmUgc3VwcG9ydGVkIChlLmcuIGluIGZvbnRzIG9uIFdpbmRvd3MpCisgICAgQSBidWcgaGFzIGJlZW4gZmlsZWQgdG8gcmVtaW5kIHVzIHRvIGRvIHRoaXM6ICMxOTc5LgorICAgICovCisKKyAgICBzdGF0aWMgU3RyaW5nIEtBVEFLQU5BID0gIltbWzprYXRha2FuYTpdW1x1MzBBMS1cdTMwRkFcdTMwRkNdXS1bXHUzMEZGXHUzMUYwLVx1MzFGRl1dIjsKKyAgICBzdGF0aWMgU3RyaW5nIEhJUkFHQU5BID0gIltbWzpoaXJhZ2FuYTpdW1x1MzA0MC1cdTMwOTRdXS1bXHUzMDk1LVx1MzA5Nlx1MzA5Ri1cdTMwQTBdXSI7CisgICAgc3RhdGljIFN0cmluZyBMRU5HVEggPSAiW1x1MzBGQ10iOworICAgIHN0YXRpYyBTdHJpbmcgSEFMRldJRFRIX0tBVEFLQU5BID0gIltcdUZGNjUtXHVGRjlEXSI7CisgICAgc3RhdGljIFN0cmluZyBLQVRBS0FOQV9JVEVSQVRJT04gPSAiW1x1MzBGRFx1MzBGRV0iOworICAgIHN0YXRpYyBTdHJpbmcgSElSQUdBTkFfSVRFUkFUSU9OID0gIltcdTMwOURcdTMwOUVdIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgc3RhdGljIGNsYXNzIEFiYnJldmlhdGVkVW5pY29kZVNldEl0ZXJhdG9yIGV4dGVuZHMgVW5pY29kZVNldEl0ZXJhdG9yIHsKKworICAgICAgICBwcml2YXRlIGJvb2xlYW4gYWJicmV2aWF0ZWQ7CisgICAgICAgIHByaXZhdGUgaW50IHBlclJhbmdlOworCisgICAgICAgIHB1YmxpYyBBYmJyZXZpYXRlZFVuaWNvZGVTZXRJdGVyYXRvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICBhYmJyZXZpYXRlZCA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoVW5pY29kZVNldCBuZXdTZXQpIHsKKyAgICAgICAgICAgIHJlc2V0KG5ld1NldCwgZmFsc2UpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoVW5pY29kZVNldCBuZXdTZXQsIGJvb2xlYW4gYWJiKSB7CisgICAgICAgICAgICByZXNldChuZXdTZXQsIGFiYiwgMTAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KFVuaWNvZGVTZXQgbmV3U2V0LCBib29sZWFuIGFiYiwgaW50IGRlbnNpdHkpIHsKKyAgICAgICAgICAgIHN1cGVyLnJlc2V0KG5ld1NldCk7CisgICAgICAgICAgICBhYmJyZXZpYXRlZCA9IGFiYjsKKyAgICAgICAgICAgIHBlclJhbmdlID0gbmV3U2V0LmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChwZXJSYW5nZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcGVyUmFuZ2UgPSBkZW5zaXR5IC8gcGVyUmFuZ2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBsb2FkUmFuZ2UoaW50IG15UmFuZ2UpIHsKKyAgICAgICAgICAgIHN1cGVyLmxvYWRSYW5nZShteVJhbmdlKTsKKyAgICAgICAgICAgIGlmIChhYmJyZXZpYXRlZCAmJiAoZW5kRWxlbWVudCA+IG5leHRFbGVtZW50ICsgcGVyUmFuZ2UpKSB7CisgICAgICAgICAgICAgICAgZW5kRWxlbWVudCA9IG5leHRFbGVtZW50ICsgcGVyUmFuZ2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgdm9pZCBzaG93RWxhcHNlZChsb25nIHN0YXJ0LCBTdHJpbmcgbmFtZSkgeworICAgICAgICBkb3VibGUgZHVyID0gKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnQpIC8gMTAwMC4wOworICAgICAgICBsb2dsbihuYW1lICsgIiB0b29rICIgKyBkdXIgKyAiIHNlY29uZHMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2FuYSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkthdGFrYW5hLUhpcmFnYW5hIikKKyAgICAgICAgICAudGVzdChLQVRBS0FOQSwgIlsiICsgSElSQUdBTkEgKyBMRU5HVEggKyAiXSIsICJbIiArIEhBTEZXSURUSF9LQVRBS0FOQSArIExFTkdUSCArICJdIiwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RLYW5hIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhpcmFnYW5hKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tSGlyYWdhbmEiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXSIsIEhJUkFHQU5BLCBISVJBR0FOQV9JVEVSQVRJT04sIHRoaXMsIG5ldyBMZWdhbCgpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0SGlyYWdhbmEiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2F0YWthbmEoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1LYXRha2FuYSIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgS0FUQUtBTkEsICJbIiArIEtBVEFLQU5BX0lURVJBVElPTiArIEhBTEZXSURUSF9LQVRBS0FOQSArICJdIiwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RLYXRha2FuYSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKYW1vKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tSmFtbyIpCisgICAgICAgICAgICAudGVzdCgiW2EtekEtWl0iLCAiW1x1MTEwMC1cdTExMTIgXHUxMTYxLVx1MTE3NSBcdTExQTgtXHUxMUMyXSIsICIiLCB0aGlzLCBuZXcgTGVnYWxKYW1vKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RKYW1vIik7CisgICAgfQorCisvKgorICAgICAgICBTQmFzZSA9IDB4QUMwMCwgTEJhc2UgPSAweDExMDAsIFZCYXNlID0gMHgxMTYxLCBUQmFzZSA9IDB4MTFBNywKKyAgICAgICAgTENvdW50ID0gMTksIFZDb3VudCA9IDIxLCBUQ291bnQgPSAyOCwKKyAgICAgICAgTkNvdW50ID0gVkNvdW50ICogVENvdW50LCAgIC8vIDU4OAorICAgICAgICBTQ291bnQgPSBMQ291bnQgKiBOQ291bnQsICAgLy8gMTExNzIKKyAgICAgICAgTExpbWl0ID0gTEJhc2UgKyBMQ291bnQsICAgIC8vIDExMTMKKyAgICAgICAgVkxpbWl0ID0gVkJhc2UgKyBWQ291bnQsICAgIC8vIDExNzYKKyAgICAgICAgVExpbWl0ID0gVEJhc2UgKyBUQ291bnQsICAgIC8vIDExQzMKKyAgICAgICAgU0xpbWl0ID0gU0Jhc2UgKyBTQ291bnQ7ICAgIC8vIEQ3QTQKKyovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBUZXN0IHQgPSBuZXcgVGVzdCgiTGF0aW4tSGFuZ3VsIiwgNSk7CisgICAgICAgIGlmIChnZXRJbmNsdXNpb24oKSA8IDEwKSB0LnNldFBhaXJMaW1pdCgxMDAwKTsKKyAgICAgICAgdC50ZXN0KCJbYS16QS1aXSIsICJbXHVBQzAwLVx1RDdBNF0iLCAiIiwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RIYW5ndWwiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEhhbigpIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLCBGaWxlTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICB0cnl7CisgICAgICAgICAgICBVbmljb2RlU2V0IGV4ZW1wbGFycyA9IExvY2FsZURhdGEuZ2V0RXhlbXBsYXJTZXQobmV3IFVMb2NhbGUoInpoIiksMCk7CisgICAgICAgICAgICAvLyBjcmVhdGUgc3RyaW5nIHdpdGggYWxsIGNoYXJzCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihleGVtcGxhcnMpOyBpdC5uZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGIsaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSBiLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAvLyB0cmFuc2Zvcm0gd2l0aCBIYW4gdHJhbnNsaXQKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhhbiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW4tTGF0aW4iKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSBoYW4udHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICAgICAgLy8gbm93IHZlcmlmeSB0aGF0IHRoZXJlIGFyZSBubyBIYW4gY2hhcmFjdGVycyBsZWZ0CisgICAgICAgICAgICBVbmljb2RlU2V0IGFsbEhhbiA9IG5ldyBVbmljb2RlU2V0KCJbOmhhbjpdIik7CisgICAgICAgICAgICBhc3NlcnRGYWxzZSgiTm8gSGFuIG11c3QgYmUgbGVmdCBhZnRlciBIYW4tTGF0aW4gdHJhbnNsaXRlcmF0aW9uIixhbGxIYW4uY29udGFpbnNTb21lKHRhcmdldCkpOworICAgICAgICAgICAgLy8gY2hlY2sgdGhlIHBpbnlpbiB0cmFuc2xpdAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgcG4gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tTnVtZXJpY1BpbnlpbiIpOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldDIgPSBwbi50cmFuc2xpdGVyYXRlKHRhcmdldCk7CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhhdCB0aGVyZSBhcmUgbm8gbWFya3MKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIG5mYyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJuZmMiKTsKKyAgICAgICAgICAgIFN0cmluZyBuZmNlZCA9IG5mYy50cmFuc2xpdGVyYXRlKHRhcmdldDIpOworICAgICAgICAgICAgVW5pY29kZVNldCBhbGxNYXJrcyA9IG5ldyBVbmljb2RlU2V0KCJbOm1hcms6XSIpOworICAgICAgICAgICAgYXNzZXJ0RmFsc2UoIk51bWVyaWNQaW55aW4gbXVzdCBjb250YWluIG5vIG1hcmtzIiwgYWxsTWFya3MuY29udGFpbnNTb21lKG5mY2VkKSk7CisgICAgICAgICAgICAvLyB2ZXJpZnkgcm91bmR0cmlwCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBucCA9IHBuLmdldEludmVyc2UoKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQzID0gbnAudHJhbnNsaXRlcmF0ZSh0YXJnZXQpOworICAgICAgICAgICAgYm9vbGVhbiByb3VuZHRyaXBPSyA9IHRhcmdldDMuZXF1YWxzKHRhcmdldCk7CisgICAgICAgICAgICBhc3NlcnRUcnVlKCJOdW1lcmljUGlueWluIG11c3Qgcm91bmR0cmlwIiwgcm91bmR0cmlwT0spOworICAgICAgICAgICAgaWYgKCFyb3VuZHRyaXBPSykgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9ICJudW1lcmljLXBpbnlpbi5sb2cudHh0IjsKKyAgICAgICAgICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZFdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCAiVVRGOCIpLCA0KjEwMjQpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgbG9nIGZpbGUgIiArIG5ldyBGaWxlKGZpbGVuYW1lKS5nZXRBYnNvbHV0ZUZpbGUoKSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIlBpbnlpbjogICAgICAgICAgICAgICAgIiArIHRhcmdldCk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIlBpbnlpbi1OdW1lcmljLVBpbnlpbjogIiArIHRhcmdldDIpOworICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhIGZvciBmZXRjaGluZyB0aGUgZXhlbXBsYXIgY2hhcmFjdGVycy4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTaW5nbGUoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tR3JlZWsiKTsKKyAgICAgICAgdC50cmFuc2xpdGVyYXRlKCJcdTAwNjFcdTAxMDFcdTAwNjkiKTsKKyAgICB9CisKKyAgICBTdHJpbmcgZ2V0R3JlZWtTZXQoKSB7CisgICAgICAgIC8vIFRpbWUgYm9tYgorICAgICAgICBpZiAoc2tpcElmQmVmb3JlSUNVKDMsNikpIHsKKyAgICAgICAgICAgIC8vIFdlIHRlbXBvcmFyaWx5IGZpbHRlciBhZ2FpbnN0IFVuaWNvZGUgNC4xLCBidXQgd2Ugb25seSBkbyB0aGlzCisgICAgICAgICAgICAvLyBiZWZvcmUgdmVyc2lvbiAzLjUuCisgICAgICAgICAgICBsb2dsbigiVGVzdEdyZWVrIG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgc2VjdGlvbiBtYXJrZWQgWzpBZ2U9NC4wOl0gZmlsdGVyIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdEdyZWVrIG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgWzpBZ2U9NC4wOl0gZmlsdGVyICIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAKKyAgICAgICAgLy8gaXNJQ1UyOCgpID8gIltbXHUwMDNCXHUwMEI3WzpHcmVlazpdLVtcdTAzRDctXHUwM0VGXV0mWzpBZ2U9My4yOl1dIiA6CisgICAgICAgICAgICAiW1x1MDAzQlx1MDBCN1tbOkdyZWVrOl0mWzpMZXR0ZXI6XV0tWyIgKworICAgICAgICAgICAgIlx1MUQyNi1cdTFEMkEiICsgLy8gTCYgICBbNV0gR1JFRUsgTEVUVEVSIFNNQUxMIENBUElUQUwgR0FNTUEuLkdSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIFBTSQorICAgICAgICAgICAgIlx1MUQ1RC1cdTFENjEiICsgLy8gTG0gICBbNV0gTU9ESUZJRVIgTEVUVEVSIFNNQUxMIEJFVEEuLk1PRElGSUVSIExFVFRFUiBTTUFMTCBDSEkKKyAgICAgICAgICAgICJcdTFENjYtXHUxRDZBIiArIC8vIEwmICAgWzVdIEdSRUVLIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgQkVUQS4uR1JFRUsgU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBDSEkKKyAgICAgICAgICAgICJcdTAzRDctXHUwM0VGIiArIC8vIFxOe0dSRUVLIEtBSSBTWU1CT0x9Li5cTntDT1BUSUMgU01BTEwgTEVUVEVSIERFSX0KKyAgICAgICAgICAgICJdICYgWzpBZ2U9NC4wOl1dIjsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWVrKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tR3JlZWsiLCA1MCkKKyAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgZ2V0R3JlZWtTZXQoKSwKKyAgICAgICAgICAgICJbXHUwMEI1XHUwMzdBXHUwM0QwLVx1MDNGNVx1MDNGOV0iLCAvKiByb3VuZHRyaXAgZXhjbHVzaW9ucyAqLworICAgICAgICAgICAgdGhpcywgbmV3IExlZ2FsR3JlZWsodHJ1ZSkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RHcmVlayIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVla1VOR0VHTigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUdyZWVrL1VOR0VHTiIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgZ2V0R3JlZWtTZXQoKSwKKyAgICAgICAgICAgICJbXHUwMEI1XHUwMzdBXHUwM0QwLVx1RkZGRntcdTAzOUNcdTAzQzB9XSIsIC8qIHJvdW5kdHJpcCBleGNsdXNpb25zICovCisgICAgICAgICAgICB0aGlzLCBuZXcgTGVnYWxHcmVlayhmYWxzZSkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RHcmVla1VOR0VHTiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RlbCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLWVsIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWl0iLCBnZXRHcmVla1NldCgpLAorICAgICAgICAgICAgIltcdTAwQjVcdTAzN0FcdTAzRDAtXHVGRkZGe1x1MDM5Q1x1MDNDMH1dIiwgLyogcm91bmR0cmlwIGV4Y2x1c2lvbnMgKi8KKyAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEdyZWVrKGZhbHNlKSk7CisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdGVsIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEN5cmlsbGljKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tQ3lyaWxsaWMiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMTEwXHUwMTExXHUwMkJBXHUwMkI5XSIsICJbXHUwNDAwLVx1MDQ1Rl0iLCBudWxsLCB0aGlzLCBuZXcgTGVnYWwoKSk7CisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdEN5cmlsbGljIik7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBBUkFCSUMgPSAiW1x1MDYwQ1x1MDYxQlx1MDYxRlx1MDYyMVx1MDYyNy1cdTA2M0FcdTA2NDEtXHUwNjU1XHUwNjYwLVx1MDY2Q1x1MDY3RVx1MDY4Nlx1MDY5OFx1MDZBNFx1MDZBRFx1MDZBRlx1MDZDQi1cdTA2Q0NcdTA2RjAtXHUwNkY5XSI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QXJhYmljKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tQXJhYmljIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWlx1MDJCRVx1MDJCRl0iLCBBUkFCSUMsICJbYS16QS1aXHUwMkJFXHUwMkJGXHUyMDdGXSIsIG51bGwsIHRoaXMsIG5ldyBMZWdhbCgpKTsgLy8KKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0QXJhYmljIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhlYnJldygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIC8vICAgICAgVGltZSBib21iCisgICAgICAgIGlmIChza2lwSWZCZWZvcmVJQ1UoMyw2KSkgeworICAgICAgICAgICAgLy8gV2UgdGVtcG9yYXJpbHkgZmlsdGVyIGFnYWluc3QgVW5pY29kZSA0LjEsIGJ1dCB3ZSBvbmx5IGRvIHRoaXMKKyAgICAgICAgICAgIC8vIGJlZm9yZSB2ZXJzaW9uIDMuNS4KKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0SGVicmV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgc2VjdGlvbiBtYXJrZWQgWzpBZ2U9NC4wOl0gZmlsdGVyIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdEhlYnJldyBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIFs6QWdlPTQuMDpdIGZpbHRlciAiKTsKKyAgICAgICAgfQorICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1IZWJyZXciKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMkJDXHUwMkJCXSIsICJbW1s6aGVicmV3Ol0tW1x1MDVCRFx1RkIwMC1cdUZCRkZdXSYgWzpBZ2U9NC4wOl1dIiwgIltcdTA1RjBcdTA1RjFcdTA1RjJdIiwgdGhpcywgbmV3IExlZ2FsSGVicmV3KCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RIZWJyZXciKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGhhaSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgaWYoaXNJQ1VWZXJzaW9uQXRMZWFzdCgzLDcpKXsKKyAgICAgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1UaGFpIikKKyAgICAgICAgICAgICAgICAudGVzdCgiW2EtekEtWlx1MDE0Mlx1MUVDRFx1MDBFNlx1MDEzMVx1MDI2OFx1MDJDQ10iLAorICAgICAgICAgICAgICAgICAgICAgICJbXHUwRTAxLVx1MEUzQVx1MEU0MC1cdTBFNUJdIiwgCisgICAgICAgICAgICAgICAgICAgICAgIlthLXpBLVpcdTAxNDJcdTFFQ0RcdTAwRTZcdTAxMzFcdTAyNjhcdTAyQjlcdTAyQ0NdIiwKKyAgICAgICAgICAgICAgICBudWxsLCB0aGlzLCBuZXcgTGVnYWxUaGFpKCkpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1UaGFpIikKKyAgICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMTQyXHUxRUNEXHUwMEU2XHUwMTMxXHUwMjY4XHUwMkNDXSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEUwMS1cdTBFM0FcdTBFNDAtXHUwRTVCXSIsIAorICAgICAgICAgICAgICAgICAgIlthLXpBLVpcdTAxNDJcdTFFQ0RcdTAwRTZcdTAxMzFcdTAyNjhcdTAyQjlcdTAyQ0NdIiwKKyAgICAgICAgICAgICJbXHUwRTRGXSIsIHRoaXMsIG5ldyBMZWdhbFRoYWkoKSk7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdFRoYWkiKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlci1JbmRpYyBUZXN0cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxJbmRpYyBleHRlbmRzIExlZ2FseworICAgICAgICBVbmljb2RlU2V0IHZvd2VsU2lnblNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgcHVibGljIExlZ2FsSW5kaWMoKXsKKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTA5MDFcdTA5MDJcdTA5MDNcdTA5MDRcdTA5M2UtXHUwOTRjXHUwOTYyXHUwOTYzXSIpKTsgICAgICAgICAgICAgICAvKiBEZXZhbmFnYXJpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwOTgxXHUwOTgyXHUwOTgzXHUwOWJlLVx1MDljY1x1MDllMlx1MDllM1x1MDlEN10iKSk7ICAgICAgICAgLyogQmVuZ2FsaSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGEwMVx1MGEwMlx1MGEwM1x1MGEzZS1cdTBhNGNcdTBhNjJcdTBhNjNcdTBhNzBcdTBhNzFdIikpOyAgIC8qIEd1cm11a2hpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYTgxXHUwYTgyXHUwYTgzXHUwYWJlLVx1MGFjY1x1MGFlMlx1MGFlM10iKSk7ICAgICAgICAgICAgICAgLyogR3VqYXJhdGkgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTBiMDFcdTBiMDJcdTBiMDNcdTBiM2UtXHUwYjRjXHUwYjYyXHUwYjYzXHUwYjU2XHUwYjU3XSIpKTsgICAvKiBPcml5YSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGI4MVx1MGI4Mlx1MGI4M1x1MGJiZS1cdTBiY2NcdTBiZTJcdTBiZTNcdTBiZDddIikpOyAgICAgICAgIC8qIFRhbWlsICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYzAxXHUwYzAyXHUwYzAzXHUwYzNlLVx1MGM0Y1x1MGM2Mlx1MGM2M1x1MGM1NVx1MGM1Nl0iKSk7ICAgLyogVGVsdWd1ICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYzgxXHUwYzgyXHUwYzgzXHUwY2JlLVx1MGNjY1x1MGNlMlx1MGNlM1x1MGNkNVx1MGNkNl0iKSk7ICAgLyogS2FubmFkYSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGQwMVx1MGQwMlx1MGQwM1x1MGQzZS1cdTBkNGNcdTBkNjJcdTBkNjNcdTBkNTddIikpOyAgICAgICAgIC8qIE1hbGF5YWxhbSAqLworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGF2YWdyYWhhID0gIlx1MDkzZFx1MDliZFx1MGFiZFx1MGIzZFx1MGNiZCI7CisgICAgICAgIFN0cmluZyBudWt0YSA9ICJcdTA5M2NcdTA5YmNcdTBhM2NcdTBhYmNcdTBiM2NcdTBjYmMiOworICAgICAgICBTdHJpbmcgdmlyYW1hID0gIlx1MDk0ZFx1MDljZFx1MGE0ZFx1MGFjZFx1MGI0ZFx1MGJjZFx1MGM0ZFx1MGNjZFx1MGQ0ZCI7CisgICAgICAgIFN0cmluZyBzYW5za3JpdFN0cmVzc1NpZ25zID0gIlx1MDk1MVx1MDk1Mlx1MDk1M1x1MDk1NFx1MDk3ZCI7CisgICAgICAgIFN0cmluZyBjaGFuZHJhYmluZHUgPSAiXHUwOTAxXHUwOTgxXHUwQTgxXHUwYjAxXHUwYzAxIjsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZyl7CisgICAgICAgICAgICBpbnQgY3A9c291cmNlU3RyaW5nLmNoYXJBdCgwKTsKKworICAgICAgICAgICAgLy8gQSB2b3dlbCBzaWduIGNhbm5vdCBiZSB0aGUgZmlyc3QgY2hhcgorICAgICAgICAgICAgaWYodm93ZWxTaWduU2V0LmNvbnRhaW5zKGNwKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYoYXZhZ3JhaGEuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZih2aXJhbWEuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihudWt0YS5pbmRleE9mKGNwKSE9LTEpeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHNhbnNrcml0U3RyZXNzU2lnbnMuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZigoY2hhbmRyYWJpbmR1LmluZGV4T2YoY3ApIT0tMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChzb3VyY2VTdHJpbmcubGVuZ3RoKCkgPjEgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b3dlbFNpZ25TZXQuY29udGFpbnMoc291cmNlU3RyaW5nLmNoYXJBdCgxKSkpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIGxhdGluRm9ySW5kaWMgPSAiW1snLjAtOUEtWmEten5cdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0VcdTAxNDMtXHUwMTQ4IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFFRFx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMUZCIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDIwMC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDI5NFx1MDMwMy1cdTAzMDRcdTAzMDZcdTAzMTQtXHUwMzE1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMyNVx1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1RVx1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQxXHUwNEQ2LVx1MDRENyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA0RTItXHUwNEUzXHUwNEVFLVx1MDRFRlx1MUUwMC1cdTFFOTlcdTFFQTAtXHUxRUY5XHUxRjAxXHUxRjAzXHUxRjA1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUYwN1x1MUYwOVx1MUYwQlx1MUYwRFx1MUYwRlx1MUYxMVx1MUYxM1x1MUYxNVx1MUYxOVx1MUYxQlx1MUYxRFx1MUYyMSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGMjNcdTFGMjVcdTFGMjdcdTFGMjlcdTFGMkJcdTFGMkRcdTFGMkZcdTFGMzFcdTFGMzNcdTFGMzVcdTFGMzdcdTFGMzkiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjNCXHUxRjNEXHUxRjNGXHUxRjQxXHUxRjQzXHUxRjQ1XHUxRjQ5XHUxRjRCXHUxRjREXHUxRjUxXHUxRjUzXHUxRjU1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2MVx1MUY2M1x1MUY2NVx1MUY2N1x1MUY2OVx1MUY2Qlx1MUY2RCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGNkZcdTFGODFcdTFGODNcdTFGODVcdTFGODdcdTFGODlcdTFGOEJcdTFGOERcdTFGOEZcdTFGOTFcdTFGOTNcdTFGOTUiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjk3XHUxRjk5XHUxRjlCXHUxRjlEXHUxRjlGXHUxRkExXHUxRkEzXHUxRkE1XHUxRkE3XHUxRkE5XHUxRkFCXHUxRkFEIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUZBRi1cdTFGQjFcdTFGQjgtXHUxRkI5XHUxRkQwLVx1MUZEMVx1MUZEOC1cdTFGRDlcdTFGRTAtXHUxRkUxXHUxRkU1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUZFOC1cdTFGRTlcdTFGRUNcdTIxMkEtXHUyMTJCXHVFMDREXHVFMDY0XSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItW1x1RTAwMC1cdUUwODAgXHUwMUUyXHUwMUUzXSYgW1s6bGF0aW46XVs6bWFyazpdXV0iOworCisgICAgcHVibGljIHZvaWQgVGVzdERldmFuYWdhcmlMYXRpbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgaWYoc2tpcElmQmVmb3JlSUNVKDIsOCkpeworICAgICAgICAgICAgbmV3IFRlc3QoIkxhdGluLURFVkFOQUdBUkkiLCA1MCkKKyAgICAgICAgICAgICAgLnRlc3QobGF0aW5Gb3JJbmRpYywgIltbOkRldmFuYWdhcmk6XVtcdTA5NGRdW1x1MDk2NFx1MDk2NV0gJiBbOkFnZT0zLjI6XV0iLCAiW1x1MDk2NV0iLCB0aGlzLCBuZXcgTGVnYWxJbmRpYygpKTsKKworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGlmIChpc0lDVVZlcnNpb25BdExlYXN0KDMsOCkpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSB0ZW1wb3JhcmlseSBmaWx0ZXIgYWdhaW5zdCBVbmljb2RlIDQuMSwgYnV0IHdlIG9ubHkgZG8gdGhpcworICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB2ZXJzaW9uIDMuNC4KKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdERldmFuYWdhcmlMYXRpbiBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIFs6QWdlPTQuMTpdIGZpbHRlciAiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiBUZXN0RGV2YW5hZ2FyaUxhdGluIG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgc2VjdGlvbiBtYXJrZWQgWzpBZ2U9NC4xOl0gZmlsdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuZXcgVGVzdCgiTGF0aW4tREVWQU5BR0FSSSIsIDUwKQorICAgICAgICAgICAgICAudGVzdChsYXRpbkZvckluZGljLCAiW1tbOkRldmFuYWdhcmk6XVtcdTA5NGRdW1x1MDk2NFx1MDk2NV1dJls6QWdlPTQuMTpdXSIsICJbXHUwOTY1XHUwOTA0XSIsIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgICAgICB9CisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdERldmFuYWdhcmlMYXRpbiIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBbXVtdIGludGVySW5kaWNBcnJheT0gbmV3IFN0cmluZ1tdW117CisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktREVWQU5BR0FSSSIsCisgICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTA0XHUwOTUxLVx1MDk1NFx1MDk0My1cdTA5NDlcdTA5NGFcdTA5NjJcdTA5NjNcdTA5MERcdTA5MGVcdTA5MTFcdTA5MTJcdTA5MjlcdTA5MzNcdTA5MzRcdTA5MzVcdTA5NTBcdTA5NThcdTA5NTlcdTA5NWFcdTA5NWJcdTA5NWVcdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1CRU5HQUxJIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwOUQ3XHUwOTBEXHUwOTBlXHUwOTExXHUwOTEyXHUwOTI5XHUwOTMzXHUwOTM0XHUwOTM1XHUwOTUwXHUwOTU4XHUwOTU5XHUwOTVhXHUwOTViXHUwOTVlXHUwOWYwXHUwOWYxXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5MDRcdTA5MDJcdTA5MzZcdTA5MzNcdTA5NTEtXHUwOTU0XHUwOTAyXHUwOTAzXHUwOTQzLVx1MDk0OVx1MDk0YVx1MDk2Mlx1MDk2M1x1MDkwQlx1MDkwQ1x1MDkwRFx1MDkwZVx1MDkxMVx1MDkxMlx1MDkzNFx1MDkzN1x1MDkzRFx1MDk1MFx1MDk2MFx1MDk2MVx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLUdVUk1VS0hJIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MDk0Nlx1MEE1Q1x1MDk1MS1cdTA5NTRcdTBBNzBcdTBBNzFcdTA5MEJcdTA5MENcdTA5MERcdTA5MGVcdTA5MTFcdTA5MTJcdTA5MzRcdTA5MzdcdTA5M0RcdTA5NTBcdTA5NjBcdTA5NjFcdTBhNzJcdTBhNzNcdTBhNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTA0XHUwOTQ2XHUwOTRBXHUwOTYyXHUwOTYzXHUwOTUxLVx1MDk1NFx1MDk2MVx1MDkwY1x1MDkwZVx1MDkxMlx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLUdVSkFSQVRJIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MDk1MS1cdTA5NTRcdTA5NjFcdTA5MGNcdTA5MGVcdTA5MTJdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTA0XHUwOTEyXHUwOTExXHUwOTBEXHUwOTBlXHUwOTMxXHUwOTQzLVx1MDk0YVx1MDk2Mlx1MDk2M1x1MDk1MS1cdTA5NTRcdTA5NTBcdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1PUklZQSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBiNWZcdTBiNTZcdTBiNTdcdTBiNzBcdTBiNzFcdTA5NTBcdTA5MERcdTA5MGVcdTA5MTJcdTA5MTFcdTA5MzFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRhbWlsLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOnRhbWlsOl0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTA5MDFcdTA5MDRcdTA5M2NcdTA5NDMtXHUwOTRhXHUwOTUxLVx1MDk1NFx1MDk2Mlx1MDk2M1x1MDkwQlx1MDkwQ1x1MDkwRFx1MDkxMVx1MDkxNlx1MDkxN1x1MDkxOFx1MDkxQlx1MDkxRFx1MDkyMFx1MDkyMVx1MDkyMlx1MDkyNVx1MDkyNlx1MDkyN1x1MDkyQlx1MDkyQ1x1MDkyRFx1MDkzNlx1MDkzZFx1MDk1MFtcdTA5NTgtXHUwOTYxXVx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktVGFtaWwiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzp0YW1pbDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYmQ3XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUZWx1Z3UtREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6dGVsdWd1Ol0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTA0XHUwOTNjXHUwOTUwXHUwOTQ1XHUwOTQ5XHUwOTUxLVx1MDk1NFx1MDk2Mlx1MDk2M1x1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXVx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLVRFTFVHVSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzU1XHUwYzU2XHUwOTUwXHUwOTBEXHUwOTExXHUwOTNkXHUwOTI5XHUwOTM0W1x1MDk1OC1cdTA5NWZdXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5MDFcdTA5MDRcdTA5NDZcdTA5NTBcdTA5NDVcdTA5NDlcdTA5NTEtXHUwOTU0XHUwOTYyXHUwOTYzXHUwOTUwXHUwOTBEXHUwOTExXHUwOTNkXHUwOTI5XHUwOTM0W1x1MDk1OC1cdTA5NWZdXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktS0FOTkFEQSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW3tcdTBjYjBcdTBjYmN9e1x1MGNiM1x1MGNiY31cdTBjZGVcdTBjZDVcdTBjZDZcdTA5NTBcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1dIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5MDFcdTA5MDRcdTA5NGFcdTA5NGJcdTA5NGNcdTA5M2NcdTA5NTBcdTA5NDRcdTA5NDVcdTA5NDlcdTA5NTEtXHUwOTU0XHUwOTYyXHUwOTYzXHUwOTBEXHUwOTExXHUwOTNkXHUwOTI5XHUwOTM0W1x1MDk1OC1cdTA5NWZdXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkNGNcdTBkNTdcdTA5NTBcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1dIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLUJFTkdBTEkiLAorICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTgyXHUwOWI2XHUwOWUyXHUwOWUzXHUwOWMzXHUwOWM0XHUwOWQ3XHUwOThCXHUwOThDXHUwOUI3XHUwOUUwXHUwOUUxXHUwOUYwXHUwOUYxXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLUdVUk1VS0hJIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGE1Y1x1MGE0N1x1MGE3MFx1MGE3MVx1MEEzM1x1MEEzNVx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktQkVOR0FMSSIsCisgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5ZDdcdTA5ZTJcdTA5ZTNcdTA5OGNcdTA5ZTFcdTA5ZjBcdTA5ZjFcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktR1VKQVJBVEkiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQTgyXHUwYTgzXHUwQWM5XHUwQWM1XHUwYWM3XHUwQThEXHUwQTkxXHUwQUIzXHUwQUI1XHUwQUJEXHUwQUQwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1CRU5HQUxJIiwKKyAgICAgICAgICAiWzpPUklZQTpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDljNFx1MDllMlx1MDllM1x1MDlmMFx1MDlmMVx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1PUklZQSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBiMzVcdTBiNzFcdTBiNWZcdTBiNTZcdTBiMzNcdTBiM2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRhbWlsLUJFTkdBTEkiLAorICAgICAgICAgICJbOnRhbWlsOl0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTA5ODFcdTA5YmNcdTA5YzNcdTA5YzRcdTA5ZTJcdTA5ZTNcdTA5ZjBcdTA5ZjFcdTA5OEJcdTA5OENcdTA5OTZcdTA5OTdcdTA5OThcdTA5OUJcdTA5OURcdTA5QTBcdTA5QTFcdTA5QTJcdTA5QTVcdTA5QTZcdTA5QTdcdTA5QUJcdTA5QUNcdTA5QURcdTA5QjZcdTA5RENcdTA5RERcdTA5REZcdTA5RTBcdTA5RTFcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1UYW1pbCIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOnRhbWlsOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBiYzZcdTBiYzdcdTBiY2FcdTBCOEVcdTBCOTJcdTBCQTlcdTBCQjFcdTBCQjNcdTBCQjRcdTBCQjVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRlbHVndS1CRU5HQUxJIiwKKyAgICAgICAgICAiWzp0ZWx1Z3U6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5ZTJcdTA5ZTNcdTA5YmNcdTA5ZDdcdTA5ZjBcdTA5ZjFcdTA5ZGNcdTA5ZGRcdTA5ZGZcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktVEVMVUdVIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjNTVcdTBjNTZcdTBjNDdcdTBjNDZcdTBjNGFcdTBDMEVcdTBDMTJcdTBDMzFcdTBDMzNcdTBDMzVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtQkVOR0FMSSIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDk4MVx1MDllMlx1MDllM1x1MDliY1x1MDlkN1x1MDlmMFx1MDlmMVx1MDlkY1x1MDlkZFx1MDlkZlx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbe1x1MGNiMFx1MGNiY317XHUwY2IzXHUwY2JjfVx1MGNjNlx1MGNjYVx1MGNkNVx1MGNkNlx1MGNjN1x1MEM4RVx1MEM5Mlx1MENCMVx1MGNiM1x1MGNiNVx1MGNkZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLUJFTkdBTEkiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDk4MVx1MDllMlx1MDllM1x1MDliY1x1MDljNFx1MDlmMFx1MDlmMVx1MDlkY1x1MDlkZFx1MDlkZlx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQ0Nlx1MGQ0YVx1MGQ0N1x1MGQzMS1cdTBkMzVcdTBkMGVcdTBkMTJdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLUdVUk1VS0hJIiwKKyAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBMDJcdTBhYjNcdTBhYjZcdTBBNzBcdTBhNzFcdTBhODJcdTBhODNcdTBhYzNcdTBhYzRcdTBhYzVcdTBhYzlcdTBhNWNcdTBhNzJcdTBhNzNcdTBhNzRcdTBhOGJcdTBhOGRcdTBhOTFcdTBhYmRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktR1VKQVJBVEkiLAorICAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGE1Y1x1MEE3MFx1MGE3MVx1MGE3Mlx1MGE3M1x1MGE3NFx1MGE4Mlx1MGE4M1x1MGE4Ylx1MGE4Y1x1MGE4ZFx1MGE5MVx1MGFiM1x1MGFiNlx1MGFiN1x1MGFiZFx1MGFjM1x1MGFjNFx1MGFjNVx1MGFjOVx1MGFkMFx1MGFlMFx1MGFlMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtR1VSTVVLSEkiLAorICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGE1Y1x1MGEyMVx1MGE0N1x1MGE3MVx1MGIwMlx1MGIwM1x1MGIzM1x1MGIzNlx1MGI0M1x1MGI1Nlx1MGI1N1x1MEIwQlx1MEIwQ1x1MEIzN1x1MEIzRFx1MEI1Rlx1MEI2MFx1MEI2MVx1MGEzNVx1MGE3Mlx1MGE3M1x1MGE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1PUklZQSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYTcxXHUwYjAyXHUwYjAzXHUwYjMzXHUwYjM2XHUwYjQzXHUwYjU2XHUwYjU3XHUwQjBCXHUwQjBDXHUwQjM3XHUwQjNEXHUwQjVGXHUwQjYwXHUwQjYxXHUwYjcwXHUwYjcxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1HVVJNVUtISSIsCisgICAgICAgICAgIls6VEFNSUw6XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTAxXHUwQTAyXHUwYTMzXHUwYTM2XHUwYTNjXHUwYTcwXHUwYTcxXHUwYTQ3XHUwQTE2XHUwQTE3XHUwQTE4XHUwQTFCXHUwQTFEXHUwQTIwXHUwQTIxXHUwQTIyXHUwQTI1XHUwQTI2XHUwQTI3XHUwQTJCXHUwQTJDXHUwQTJEXHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVDXHUwQTVFXHUwQTcyXHUwQTczXHUwQTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLVRBTUlMIiwKKyAgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOlRBTUlMOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBiODJcdTBiYzZcdTBiY2FcdTBiZDdcdTBiYjdcdTBiYjNcdTBiODNcdTBCOEVcdTBCOTJcdTBCQTlcdTBCQjFcdTBCQjRcdTBiYjZdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1HVVJNVUtISSIsCisgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGEzM1x1MGEzNlx1MGEzY1x1MGE3MFx1MGE3MVx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1Q1x1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1URUxVR1UiLAorICAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjMDJcdTBjMDNcdTBjMzNcdTBjMzZcdTBjNDRcdTBjNDNcdTBjNDZcdTBjNGFcdTBjNTZcdTBjNTVcdTBDMEJcdTBDMENcdTBDMEVcdTBDMTJcdTBDMzFcdTBDMzdcdTBDNjBcdTBDNjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLUdVUk1VS0hJIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEEwMVx1MEEwMlx1MGEzM1x1MGEzNlx1MGEzY1x1MGE3MFx1MGE3MVx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1Q1x1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW3tcdTBjYjBcdTBjYmN9e1x1MGNiM1x1MGNiY31cdTBjODJcdTBjODNcdTBjYjNcdTBjYjZcdTBjYzRcdTBjYzNcdTBjYzZcdTBjY2FcdTBjZDVcdTBjZDZcdTBDOEJcdTBDOENcdTBDOEVcdTBDOTJcdTBDQjFcdTBDQjdcdTBjYmRcdTBDRTBcdTBDRTFcdTBjZGVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1HVVJNVUtISSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEEwMVx1MEEwMlx1MGE0Ylx1MGE0Y1x1MGEzM1x1MGEzNlx1MGEzY1x1MGE3MFx1MGE3MVx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1Q1x1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkMDJcdTBkMDNcdTBkMzNcdTBkMzZcdTBkNDNcdTBkNDZcdTBkNGFcdTBkNGNcdTBkNTdcdTBEMEJcdTBEMENcdTBEMEVcdTBEMTJcdTBEMzFcdTBEMzRcdTBEMzdcdTBENjBcdTBENjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLU9SSVlBIiwKKyAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgIltcdTBiNTZcdTBiNTdcdTBCMENcdTBCNUZcdTBCNjFcdTBiNzBcdTBiNzFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtR1VKQVJBVEkiLAorICAgICAgICAgICAiWzpPUklZQTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEFjNFx1MEFjNVx1MEFjOVx1MEFjN1x1MEE4RFx1MEE5MVx1MEFCNVx1MEFkMF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEFNSUwtR1VKQVJBVEkiLAorICAgICAgICAgICJbOlRBTUlMOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEE4MVx1MGE4Y1x1MGFiY1x1MGFjM1x1MEFjNFx1MEFjNVx1MEFjOVx1MEFjN1x1MEE4Qlx1MEE4RFx1MEE5MVx1MEE5Nlx1MEE5N1x1MEE5OFx1MEE5Qlx1MEE5RFx1MEFBMFx1MEFBMVx1MEFBMlx1MEFBNVx1MEFBNlx1MEFBN1x1MEFBQlx1MEFBQ1x1MEFBRFx1MEFCNlx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1UQU1JTCIsCisgICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQmM2XHUwQmNhXHUwQmQ3XHUwQjhFXHUwQjkyXHUwQkE5XHUwQkIxXHUwQkI0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtR1VKQVJBVEkiLAorICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBhYmNcdTBBYzVcdTBBYzlcdTBBOERcdTBBOTFcdTBBQkRcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktVEVMVUdVIiwKKyAgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzQ2XHUwYzRhXHUwYzU1XHUwYzU2XHUwQzBDXHUwQzBFXHUwQzEyXHUwQzMxXHUwQzYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLUdVSkFSQVRJIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEE4MVx1MGFiY1x1MEFjNVx1MEFjOVx1MEE4RFx1MEE5MVx1MEFCRFx1MEFkMF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW3tcdTBjYjBcdTBjYmN9e1x1MGNiM1x1MGNiY31cdTBjYzZcdTBjY2FcdTBjZDVcdTBjZDZcdTBDOENcdTBDOEVcdTBDOTJcdTBDQjFcdTBDREVcdTBDRTFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1HVUpBUkFUSSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEE4MVx1MGFjNFx1MGFjYlx1MGFjY1x1MGFiY1x1MEFjNVx1MEFjOVx1MEE4RFx1MEE5MVx1MEFCRFx1MEFkMF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkNDZcdTBkNGFcdTBkNGNcdTBkNTVcdTBkNTdcdTBEMENcdTBEMEVcdTBEMTJcdTBEMzFcdTBEMzRcdTBENjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRBTUlMLU9SSVlBIiwKKyAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgIltcdTBCMDFcdTBiM2NcdTBiNDNcdTBiNTZcdTBCMEJcdTBCMENcdTBCMTZcdTBCMTdcdTBCMThcdTBCMUJcdTBCMURcdTBCMjBcdTBCMjFcdTBCMjJcdTBCMjVcdTBCMjZcdTBCMjdcdTBCMkJcdTBCMkNcdTBCMkRcdTBCMzZcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUZcdTBCNjBcdTBCNjFcdTBiNzBcdTBiNzFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtVEFNSUwiLAorICAgICAgICAgICAiWzpPUklZQTpdIiwgIls6VEFNSUw6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGJjNlx1MGJjYVx1MGJjN1x1MEI4RVx1MEI5Mlx1MEJBOVx1MEJCMVx1MEJCNFx1MEJCNV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEVMVUdVLU9SSVlBIiwKKyAgICAgICAgICAiWzpURUxVR1U6XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICJbXHUwYjNjXHUwYjU3XHUwYjU2XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGXHUwYjcwXHUwYjcxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLVRFTFVHVSIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGM0NFx1MGM0Nlx1MGM0YVx1MGM1NVx1MGM0N1x1MEMwRVx1MEMxMlx1MEMzMVx1MEMzNV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1PUklZQSIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgIltcdTBCMDFcdTBiM2NcdTBiNTdcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUZcdTBiNzBcdTBiNzFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtS0FOTkFEQSIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIlt7XHUwY2IwXHUwY2JjfXtcdTBjYjNcdTBjYmN9XHUwY2M0XHUwY2M2XHUwY2NhXHUwY2Q1XHUwY2M3XHUwQzhFXHUwQzkyXHUwQ0IxXHUwQ0I1XHUwQ0RFXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tT1JJWUEiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgIltcdTBCMDFcdTBiM2NcdTBiNTZcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUZcdTBiNzBcdTBiNzFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6T1JJWUE6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwRDQ3XHUwRDQ2XHUwRDRhXHUwRDBFXHUwRDEyXHUwRDMxXHUwRDM0XHUwRDM1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtVEFNSUwiLAorICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6VEFNSUw6XSIsCisgICAgICAgICAgICAgICAgIltcdTBiZDdcdTBiYTlcdTBiYjRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEFNSUwtVEVMVUdVIiwKKyAgICAgICAgICAgIls6VEFNSUw6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQzAxXHUwYzQzXHUwYzQ0XHUwYzQ2XHUwYzQ3XHUwYzU1XHUwYzU2XHUwYzY2XHUwQzBCXHUwQzBDXHUwQzE2XHUwQzE3XHUwQzE4XHUwQzFCXHUwQzFEXHUwQzIwXHUwQzIxXHUwQzIyXHUwQzI1XHUwQzI2XHUwQzI3XHUwQzJCXHUwQzJDXHUwQzJEXHUwQzM2XHUwQzYwXHUwQzYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLVRBTUlMIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MGJkN1x1MGJjNlx1MGJhOVx1MGJiNF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1LQU5OQURBIiwKKyAgICAgICAgICAgIls6VEFNSUw6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGNjM1x1MGNjNFx1MGNjNlx1MGNjN1x1MGNkNVx1MGNkNlx1MEM4Qlx1MEM4Q1x1MEM5Nlx1MEM5N1x1MEM5OFx1MEM5Qlx1MEM5RFx1MENBMFx1MENBMVx1MENBMlx1MENBNVx1MENBNlx1MENBN1x1MENBQlx1MENBQ1x1MENBRFx1MENCNlx1MGNiY1x1MGNiZFx1MENERVx1MENFMFx1MENFMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLVRBTUlMIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOlRBTUlMOl0iLAorICAgICAgICAgICAgICAgICJbXHUwYmE5XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRBTUlMLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOlRBTUlMOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQ0M1x1MGQxMlx1MEQwQlx1MEQwQ1x1MEQxNlx1MEQxN1x1MEQxOFx1MEQxQlx1MEQxRFx1MEQyMFx1MEQyMVx1MEQyMlx1MEQyNVx1MEQyNlx1MEQyN1x1MEQyQlx1MEQyQ1x1MEQyRFx1MEQzNlx1MEQ2MFx1MEQ2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1URUxVR1UiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEMwMVx1MGMzZlx1MGM0Nlx1MGM0OFx1MGM0YV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtS0FOTkFEQSIsCisgICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwY2M4XHUwY2Q1XHUwY2Q2XHUwQ0RFXHUwY2JjXHUwY2JkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tVEVMVUdVIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEMwMVx1MGM0NFx1MGM0YVx1MGM0Y1x1MGM0Ylx1MGM1NVx1MGM1Nl0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQ0Y1x1MGQ1N1x1MEQzNF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLUtBTk5BREEiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MGNiY1x1MGNiZFx1MGNjNFx1MGNjNlx1MGNjYVx1MGNjY1x1MGNjYlx1MGNkNVx1MGNkNlx1MGNEZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1CZW5nYWxpIiwKKyAgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbWzpCZW5nYWxpOl1bXHUwOTY0XHUwOTY1XV0iLAorICAgICAgICAgICAgICAgIltcdTA5NjVcdTA5ZjAtXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLUd1cm11a2hpIiwKKyAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIltbOkd1cm11a2hpOl1bXHUwOTY0XHUwOTY1XV0iLAorICAgICAgICAgICAgICAgIltcdTBhMDFcdTBhMDJcdTA5NjVcdTBhNzJcdTBhNzNcdTBhNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tR3VqYXJhdGkiLAorICAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIltbOkd1amFyYXRpOl1bXHUwOTY0XHUwOTY1XV0iLAorICAgICAgICAgICAgICAgIltcdTA5NjVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tT3JpeWEiLAorICAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIltbOk9yaXlhOl1bXHUwOTY0XHUwOTY1XV0iLAorICAgICAgICAgICAgICAgIltcdTA5NjVcdTBiNzBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tVGFtaWwiLAorICAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIls6VGFtaWw6XSIsCisgICAgICAgICAgICAgICBudWxsLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1UZWx1Z3UiLAorICAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIls6VGVsdWd1Ol0iLAorICAgICAgICAgICAgICAgbnVsbCwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tS2FubmFkYSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiWzpLYW5uYWRhOl0iLAorICAgICAgICAgICAgICAgbnVsbCwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLU1hbGF5YWxhbSIsCisgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbOk1hbGF5YWxhbTpdIiwKKyAgICAgICAgICAgICAgIG51bGwsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW50ZXJJbmRpYygpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgaW50IG51bSA9IGludGVySW5kaWNBcnJheS5sZW5ndGg7CisgICAgICAgIGlmIChpc1F1aWNrKCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIG9ubHkgNSBvZiAiKyBpbnRlckluZGljQXJyYXkubGVuZ3RoKyIgU2tpcHBpbmcgcmVzdCAodXNlIC1lIGZvciBleGhhdXN0aXZlKSIpOworICAgICAgICAgICAgbnVtID0gNTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNJQ1VWZXJzaW9uQXRMZWFzdCgzLDgpKSB7CisgICAgICAgICAgICAvLyBXZSB0ZW1wb3JhcmlseSBmaWx0ZXIgYWdhaW5zdCBVbmljb2RlIDQuMSwgYnV0IHdlIG9ubHkgZG8gdGhpcworICAgICAgICAgICAgLy8gYmVmb3JlIHZlcnNpb24gMy40LgorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3RJbnRlckluZGljIG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgWzpBZ2U9NC4xOl0gZmlsdGVyICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIldhcm5pbmc6IFRlc3RJbnRlckluZGljIG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgc2VjdGlvbiBtYXJrZWQgWzpBZ2U9NC4xOl0gZmlsdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGk8bnVtO2krKyl7CisgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nICIgKyBpbnRlckluZGljQXJyYXlbaV1bMF0gKyAiIGF0IGluZGV4ICIgKyBpICAgKTsKKyAgICAgICAgICAgaWYoc2tpcElmQmVmb3JlSUNVKDIsOCkpeworICAgICAgICAgICAgICAgbmV3IFRlc3QoaW50ZXJJbmRpY0FycmF5W2ldWzBdLCA1MCkKKyAgICAgICAgICAgICAgICAgICAgLnRlc3QoIlsiICsgaW50ZXJJbmRpY0FycmF5W2ldWzFdKyIgJiBbOkFnZT0zLjI6XV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiWyIgKyBpbnRlckluZGljQXJyYXlbaV1bMl0rIiAmIFs6QWdlPTMuMjpdXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVySW5kaWNBcnJheVtpXVszXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywgbmV3IExlZ2FsSW5kaWMoKSk7CisgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgLypUT0RPOiB1bmNvbW1lbnQgdGhlIGxpbmUgYmVsb3cgd2hlbiB0aGUgdHJhbnNsaXRlcmF0b3IgaXMgZml4ZWQKKyAgICAgICAgICAgICAgIG5ldyBUZXN0KGludGVySW5kaWNBcnJheVtpXVswXSwgNTApCisgICAgICAgICAgICAgICAgICAgIC50ZXN0KGludGVySW5kaWNBcnJheVtpXVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJJbmRpY0FycmF5W2ldWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlckluZGljQXJyYXlbaV1bM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgIC8qIGNvbW1lbnQgbGluZXMgYmVsb3cgIHdoZW4gdHJhbnNsaXRlcmF0b3IgaXMgZml4ZWQgKi8KKyAgICAgICAgICAgICAgIC8vIHN0YXJ0CisgICAgICAgICAgICAgICBuZXcgVGVzdChpbnRlckluZGljQXJyYXlbaV1bMF0sIDUwKQorICAgICAgICAgICAgICAgLnRlc3QoIlsiK2ludGVySW5kaWNBcnJheVtpXVsxXSsiICZbOkFnZT00LjE6XV0iLAorICAgICAgICAgICAgICAgICAgICAgIlsiK2ludGVySW5kaWNBcnJheVtpXVsyXSsiICZbOkFnZT00LjE6XV0iLAorICAgICAgICAgICAgICAgICAgICAgaW50ZXJJbmRpY0FycmF5W2ldWzNdLAorICAgICAgICAgICAgICAgICAgICAgdGhpcywgbmV3IExlZ2FsSW5kaWMoKSk7CisgICAgICAgICAgICAgICAvL2VuZAorICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RJbnRlckluZGljIik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFbmQgSW5kaWMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbCB7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHtyZXR1cm4gdHJ1ZTt9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbEphbW8gZXh0ZW5kcyBMZWdhbCB7CisgICAgICAgIC8vIGFueSBpbml0aWFsIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBtZWRpYWwgKG9yIGluaXRpYWwpCisgICAgICAgIC8vIGFueSBtZWRpYWwgbXVzdCBmb2xsb3cgYW4gaW5pdGlhbCAob3IgbWVkaWFsKQorICAgICAgICAvLyBhbnkgZmluYWwgbXVzdCBmb2xsb3cgYSBtZWRpYWwgKG9yIGZpbmFsKQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaW50IHQ7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZVN0cmluZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wLmxlbmd0aCgpOyArK2kpIHsgLy8gZG9uJ3Qgd29ycnkgYWJvdXQgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGdldFR5cGUoZGVjb21wLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGdldFR5cGUoZGVjb21wLmNoYXJBdChpKzEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IDAgJiYgdCAhPSAxKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGdldFR5cGUoZGVjb21wLmNoYXJBdChpLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IDAgJiYgdCAhPSAxKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGdldFR5cGUoZGVjb21wLmNoYXJBdChpLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IDEgJiYgdCAhPSAyKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VHlwZShjaGFyIGMpIHsKKyAgICAgICAgICAgIGlmICgnXHUxMTAwJyA8PSBjICYmIGMgPD0gJ1x1MTExMicpIHJldHVybiAwOworICAgICAgICAgICAgZWxzZSBpZiAoJ1x1MTE2MScgPD0gYyAmJiBjICA8PSAnXHUxMTc1JykgcmV0dXJuIDE7CisgICAgICAgICAgICBlbHNlIGlmICgnXHUxMUE4JyA8PSBjICYmIGMgIDw9ICdcdTExQzInKSByZXR1cm4gMjsKKyAgICAgICAgICAgIHJldHVybiAtMTsgLy8gb3RoZXIKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vc3RhdGljIEJyZWFrSXRlcmF0b3IgdGhhaUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiVEgiKSk7CisgICAgLy8gYW55dGhpbmcgaXMgbGVnYWwgZXhjZXB0IHdvcmQgZW5kaW5nIHdpdGggTG9naWNhbC1vcmRlci1leGNlcHRpb24KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIExlZ2FsVGhhaSBleHRlbmRzIExlZ2FsIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVN0cmluZy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBzb3VyY2VTdHJpbmcuY2hhckF0KHNvdXJjZVN0cmluZy5sZW5ndGgoKSAtIDEpOyAvLyBkb24ndCB3b3JyeSBhYm91dCBzdXJyb2dhdGVzLgorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5MT0dJQ0FMX09SREVSX0VYQ0VQVElPTikpIHJldHVybiBmYWxzZTsKKworCisgICAgICAgICAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyB3aXRoIGEgd29yZGJyZWFrIGJldHdlZW4KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc291cmNlU3RyaW5nKSA8PSAxKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHRoYWlCcmVhay5zZXRUZXh0KHNvdXJjZVN0cmluZyk7CisgICAgICAgICAgICBmb3IgKGludCBwb3MgPSB0aGFpQnJlYWsuZmlyc3QoKTsgcG9zICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgcG9zID0gdGhhaUJyZWFrLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPiAwICYmIHBvcyA8IHNvdXJjZVN0cmluZy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNraXBwaW5nICIgKyBVdGlsaXR5LmVzY2FwZShzb3VyY2VTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGFueXRoaW5nIGlzIGxlZ2FsIGV4Y2VwdCB0aGF0IEZpbmFsIGxldHRlcnMgY2FuJ3QgYmUgZm9sbG93ZWQgYnkgbGV0dGVyOyBOb25GaW5hbCBtdXN0IGJlCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbEhlYnJldyBleHRlbmRzIExlZ2FsIHsKKyAgICAgICAgc3RhdGljIFVuaWNvZGVTZXQgRklOQUwgPSBuZXcgVW5pY29kZVNldCgiW1x1MDVEQVx1MDVERFx1MDVERlx1MDVFM1x1MDVFNV0iKTsKKyAgICAgICAgc3RhdGljIFVuaWNvZGVTZXQgTk9OX0ZJTkFMID0gbmV3IFVuaWNvZGVTZXQoIltcdTA1REJcdTA1REVcdTA1RTBcdTA1RTRcdTA1RTZdIik7CisgICAgICAgIHN0YXRpYyBVbmljb2RlU2V0IExFVFRFUiA9IG5ldyBVbmljb2RlU2V0KCJbOmxldHRlcjpdIik7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VTdHJpbmcubGVuZ3RoKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAvLyBkb24ndCB3b3JyeSBhYm91dCBzdXJyb2dhdGVzLgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2VTdHJpbmcubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBzb3VyY2VTdHJpbmcuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGNoYXIgbmV4dCA9IGkrMSA9PSBzb3VyY2VTdHJpbmcubGVuZ3RoKCkgPyAnXHUwMDAwJyA6IHNvdXJjZVN0cmluZy5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKEZJTkFMLmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoTEVUVEVSLmNvbnRhaW5zKG5leHQpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChOT05fRklOQUwuY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghTEVUVEVSLmNvbnRhaW5zKG5leHQpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxHcmVlayBleHRlbmRzIExlZ2FsIHsKKworICAgICAgICBib29sZWFuIGZ1bGw7CisKKyAgICAgICAgcHVibGljIExlZ2FsR3JlZWsoYm9vbGVhbiBmdWxsKSB7CisgICAgICAgICAgICB0aGlzLmZ1bGwgPSBmdWxsOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgSU9UQV9TVUJTQ1JJUFQgPSAnXHUwMzQ1JzsKKyAgICAgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgYnJlYXRoaW5nID0gbmV3IFVuaWNvZGVTZXQoIltcXHUwMzEzXFx1MDMxNCddIik7CisgICAgICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IHZhbGlkU2Vjb25kVm93ZWwgPSBuZXcgVW5pY29kZVNldCgiW1xcdTAzQzVcXHUwM0I5XFx1MDNBNVxcdTAzOTldIik7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVm93ZWwoY2hhciBjKSB7CisgICAgICAgICAgICByZXR1cm4gIlx1MDNCMVx1MDNCNVx1MDNCN1x1MDNCOVx1MDNCRlx1MDNDNVx1MDNDOVx1MDM5MVx1MDM5NVx1MDM5N1x1MDM5OVx1MDM5Rlx1MDNBNVx1MDNBOSIuaW5kZXhPZihjKSA+PSAwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUmhvKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuICJcdTAzQzFcdTAzQTEiLmluZGV4T2YoYykgPj0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZVN0cmluZywgTm9ybWFsaXplci5ORkQpOworCisgICAgICAgICAgICAgICAgLy8gbW9kZXJuIGlzIHNpbXBsZXI6IGRvbid0IGNhcmUgYWJvdXQgYW55dGhpbmcgYnV0IGEgZ3JhdmUKKyAgICAgICAgICAgICAgICBpZiAoIWZ1bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAoc291cmNlU3RyaW5nLmVxdWFscygiXHUwMzlDXHUwM0MwIikpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXAubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gZGVjb21wLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV4Y2x1ZGUgYWxsIHRoZSBhY2NlbnRzCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXHUwMzEzJyB8fCBjID09ICdcdTAzMTQnIHx8IGMgPT0gJ1x1MDMwMCcgfHwgYyA9PSAnXHUwMzAyJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGMgPT0gJ1x1MDM0MicgfHwgYyA9PSAnXHUwMzQ1JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIExlZ2FsIGZ1bGwgR3JlZWsgaGFzIGJyZWF0aGluZyBtYXJrcyBJRkYgdGhlcmUgaXMgYSB2b3dlbCBvciBSSE8gYXQgdGhlIHN0YXJ0CisgICAgICAgICAgICAgICAgLy8gSUYgaXQgaGFzIHRoZW0sIGl0IGhhcyBleGFjdGx5IG9uZS4KKyAgICAgICAgICAgICAgICAvLyBJRiBpdCBzdGFydHMgd2l0aCBhIFJITywgdGhlbiB0aGUgYnJlYXRoaW5nIG1hcmsgbXVzdCBjb21lIGJlZm9yZSB0aGUgc2Vjb25kIGxldHRlci4KKyAgICAgICAgICAgICAgICAvLyBJRiBpdCBzdGFydHMgd2l0aCBhIHZvd2VsLCB0aGVuIGl0IG11c3QgYmVmb3JlIHRoZSB0aGlyZCBsZXR0ZXIuCisgICAgICAgICAgICAgICAgLy8gIGl0IHdpbGwgb25seSBjb21lIGFmdGVyIHRoZSBzZWNvbmQgaWYgb2YgdGhlIGZvcm1hdCBbdm93ZWxdIFtubyBpb3RhIHN1YnNjcmlwdCFdIFt1cHNpbG9uIG9yIGlvdGFdCisgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlcmUgYXJlIG5vIHN1cnJvZ2F0ZXMgaW4gZ3JlZWssIGRvbid0IHdvcnJ5IGFib3V0IHRoZW0KKworICAgICAgICAgICAgICAgIGJvb2xlYW4gZmlyc3RJc1Zvd2VsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdElzUmhvID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBub0xldHRlcllldCA9IHRydWU7CisgICAgICAgICAgICAgICAgaW50IGJyZWF0aGluZ0NvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgbGV0dGVyQ291bnQgPSAwOworICAgICAgICAgICAgICAgIC8vaW50IGJyZWF0aGluZ1Bvc2l0aW9uID0gLTE7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IGRlY29tcC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2xldHRlckNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0SXNWb3dlbCAmJiAhdmFsaWRTZWNvbmRWb3dlbC5jb250YWlucyhjKSAmJiBicmVhdGhpbmdDb3VudCA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9MZXR0ZXJZZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub0xldHRlcllldCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0SXNWb3dlbCA9IGlzVm93ZWwoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RJc1JobyA9IGlzUmhvKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0SXNSaG8gJiYgbGV0dGVyQ291bnQgPT0gMiAmJiBicmVhdGhpbmdDb3VudCA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gSU9UQV9TVUJTQ1JJUFQgJiYgZmlyc3RJc1Zvd2VsICYmIGJyZWF0aGluZ0NvdW50ID09IDApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJyZWF0aGluZy5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAvLyBicmVhdGhpbmdQb3NpdGlvbiA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICArK2JyZWF0aGluZ0NvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0SXNWb3dlbCB8fCBmaXJzdElzUmhvKSByZXR1cm4gYnJlYXRoaW5nQ291bnQgPT0gMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYnJlYXRoaW5nQ291bnQgPT0gMDsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyB0LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdCB7CisKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0OworCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHRyYW5zbGl0ZXJhdG9ySUQ7CisgICAgICAgIHByaXZhdGUgaW50IGVycm9yTGltaXQgPSA1MDA7CisgICAgICAgIHByaXZhdGUgaW50IGVycm9yQ291bnQgPSAwOworICAgICAgICBwcml2YXRlIGludCBwYWlyTGltaXQgID0gMHgxMDAwMDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZGVuc2l0eSA9IDEwMDsKKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VSYW5nZTsKKyAgICAgICAgVW5pY29kZVNldCB0YXJnZXRSYW5nZTsKKyAgICAgICAgVW5pY29kZVNldCB0b1NvdXJjZTsKKyAgICAgICAgVW5pY29kZVNldCB0b1RhcmdldDsKKyAgICAgICAgVW5pY29kZVNldCByb3VuZHRyaXBFeGNsdXNpb25zOworCisgICAgICAgIFJvdW5kVHJpcFRlc3QgbG9nOworICAgICAgICBMZWdhbCBsZWdhbFNvdXJjZTsKKyAgICAgICAgVW5pY29kZVNldCBiYWRDaGFyYWN0ZXJzOworCisgICAgICAgIC8qCisgICAgICAgICAqIGNyZWF0ZSBhIHRlc3QgZm9yIHRoZSBnaXZlbiBzY3JpcHQgdHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBUZXN0KFN0cmluZyB0cmFuc2xpdGVyYXRvcklEKSB7CisgICAgICAgICAgICB0aGlzKHRyYW5zbGl0ZXJhdG9ySUQsIDEwMCk7CisgICAgICAgIH0KKworICAgICAgICBUZXN0KFN0cmluZyB0cmFuc2xpdGVyYXRvcklELCBpbnQgZGVucykgeworICAgICAgICAgICAgdGhpcy50cmFuc2xpdGVyYXRvcklEID0gdHJhbnNsaXRlcmF0b3JJRDsKKyAgICAgICAgICAgIHRoaXMuZGVuc2l0eSA9IGRlbnM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRFcnJvckxpbWl0KGludCBsaW1pdCkgeworICAgICAgICAgICAgZXJyb3JMaW1pdCA9IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0UGFpckxpbWl0KGludCBsaW1pdCkgeworICAgICAgICAgICAgcGFpckxpbWl0ID0gbGltaXQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGRlZCB0byBkbyBiZXR0ZXIgZXF1YWxpdHkgY2hlY2suCisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU2FtZShTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhiKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAoYS5lcXVhbHNJZ25vcmVDYXNlKGIpICYmIGlzQ2FtZWwoYSkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgYSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGEsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShiLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpIHJldHVybiB0cnVlOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzSWdub3JlQ2FzZShiKSAmJiBpc0NhbWVsKGEpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgIHB1YmxpYyBib29sZWFuIGluY2x1ZGVzU29tZShVbmljb2RlU2V0IHNldCwgU3RyaW5nIGEpIHsKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoYSwgaSk7CisgICAgICAgICAgICAgICAgaWYgKHNldC5jb250YWlucyhjcCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQ2FtZWwoU3RyaW5nIGEpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJDYW1lbFRlc3QiKTsKKyAgICAgICAgICAgIC8vIHNlZSBpZiBzdHJpbmcgaXMgb2YgdGhlIGZvcm0gYUI7IGUuZy4gbG93ZXIsIHRoZW4gdXBwZXIgb3IgdGl0bGUKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZUxvd2VyID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KGEsIGkpOworICAgICAgICAgICAgICAgIGludCB0ID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgdCArICIgIiArIEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVI6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUxvd2VyKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMb3dlcikgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkcm9wIHRocm91Z2gsIHNpbmNlIHNlY29uZCBsZXR0ZXIgaXMgbG93ZXIuCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVI6CisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlTG93ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkZBTFNFIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBva0FueXdheSA9IG5ldyBVbmljb2RlU2V0KCJbXls6TGV0dGVyOl1dIik7CisgICAgICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IG5ldmVyT2sgPSBuZXcgVW5pY29kZVNldCgiWzpPdGhlcjpdIik7CisKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdChTdHJpbmcgc291cmNlUmFuZ2UsIFN0cmluZyB0YXJnZXRSYW5nZSwKKyAgICAgICAgICBTdHJpbmcgcm91bmR0cmlwRXhjbHVzaW9ucywgUm91bmRUcmlwVGVzdCBsb2csIExlZ2FsIGxlZ2FsU291cmNlKQorICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHRlc3Qoc291cmNlUmFuZ2UsIHRhcmdldFJhbmdlLCBzb3VyY2VSYW5nZSwgcm91bmR0cmlwRXhjbHVzaW9ucywgbG9nLCBsZWdhbFNvdXJjZSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogV2lsbCB0ZXN0IAorICAgICAgICAgKiB0aGF0IGV2ZXJ5dGhpbmcgaW4gc291cmNlUmFuZ2UgbWFwcyB0byB0YXJnZXRSYW5nZSwKKyAgICAgICAgICogdGhhdCBldmVyeXRoaW5nIGluIHRhcmdldFJhbmdlIG1hcHMgdG8gYmFja3RvU291cmNlUmFuZ2UKKyAgICAgICAgICogdGhhdCBldmVyeXRoaW5nIHJvdW5kdHJpcHMgZnJvbSB0YXJnZXQgLT4gc291cmNlIC0+IHRhcmdldCwgZXhjZXB0IHJvdW5kdHJpcEV4Y2VwdGlvbnMKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3QoU3RyaW5nIHNvdXJjZVJhbmdlLCBTdHJpbmcgdGFyZ2V0UmFuZ2UsIFN0cmluZyBiYWNrdG9Tb3VyY2VSYW5nZSwKKyAgICAgICAgICBTdHJpbmcgcm91bmR0cmlwRXhjbHVzaW9ucywgUm91bmRUcmlwVGVzdCBsb2csIExlZ2FsIGxlZ2FsU291cmNlKQorICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKworICAgICAgICAgICAgdGhpcy5sZWdhbFNvdXJjZSA9IGxlZ2FsU291cmNlOworICAgICAgICAgICAgdGhpcy5zb3VyY2VSYW5nZSA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZVJhbmdlKTsKKyAgICAgICAgICAgIHRoaXMuc291cmNlUmFuZ2UucmVtb3ZlQWxsKG5ldmVyT2spOworCisgICAgICAgICAgICB0aGlzLnRhcmdldFJhbmdlID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0UmFuZ2UpOworICAgICAgICAgICAgdGhpcy50YXJnZXRSYW5nZS5yZW1vdmVBbGwobmV2ZXJPayk7CisKKyAgICAgICAgICAgIHRoaXMudG9Tb3VyY2UgPSBuZXcgVW5pY29kZVNldChiYWNrdG9Tb3VyY2VSYW5nZSk7CisgICAgICAgICAgICB0aGlzLnRvU291cmNlLmFkZEFsbChva0FueXdheSk7CisKKyAgICAgICAgICAgIHRoaXMudG9UYXJnZXQgPSBuZXcgVW5pY29kZVNldCh0YXJnZXRSYW5nZSk7CisgICAgICAgICAgICB0aGlzLnRvVGFyZ2V0LmFkZEFsbChva0FueXdheSk7CisKKyAgICAgICAgICAgIGlmIChyb3VuZHRyaXBFeGNsdXNpb25zICE9IG51bGwgJiYgcm91bmR0cmlwRXhjbHVzaW9ucy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0aGlzLnJvdW5kdHJpcEV4Y2x1c2lvbnMgPSBuZXcgVW5pY29kZVNldChyb3VuZHRyaXBFeGNsdXNpb25zKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHRoaXMucm91bmR0cmlwRXhjbHVzaW9ucyA9IG5ldyBVbmljb2RlU2V0KCk7IC8vIGVtcHR5CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMubG9nID0gbG9nOworCisgICAgICAgICAgICBsb2cubG9nbG4oVXRpbGl0eS5lc2NhcGUoIlNvdXJjZTogICIgKyB0aGlzLnNvdXJjZVJhbmdlKSk7CisgICAgICAgICAgICBsb2cubG9nbG4oVXRpbGl0eS5lc2NhcGUoIlRhcmdldDogICIgKyB0aGlzLnRhcmdldFJhbmdlKSk7CisgICAgICAgICAgICBsb2cubG9nbG4oVXRpbGl0eS5lc2NhcGUoIkV4Y2x1ZGU6ICIgKyB0aGlzLnJvdW5kdHJpcEV4Y2x1c2lvbnMpKTsKKyAgICAgICAgICAgIGlmIChsb2cuaXNRdWljaygpKSBsb2cubG9nbG4oIkFiYnJldmlhdGVkIFRlc3QiKTsKKworICAgICAgICAgICAgYmFkQ2hhcmFjdGVycyA9IG5ldyBVbmljb2RlU2V0KCJbOm90aGVyOl0iKTsKKworICAgICAgICAgICAgLy8gbWFrZSBhIFVURi04IG91dHB1dCBmaWxlIHdlIGNhbiByZWFkIHdpdGggYSBicm93c2VyCisKKyAgICAgICAgICAgIC8vIG5vdGU6IGNoZWNrIHRoYXQgZXZlcnkgdHJhbnNsaXRlcmF0b3IgdHJhbnNsaXRlcmF0ZXMgdGhlIG51bGwgc3RyaW5nIGNvcnJlY3RseSEKKworICAgICAgICAvLyB7ZGxmfSByZW9yZ2FuaXplIHNvIGNhbiBydW4gdGVzdCBpbiBwcm90ZWN0ZWQgc2VjdXJpdHkgZW52aXJvbm1lbnQKKy8vICAgICAgICAgICAgICBTdHJpbmcgbG9nRmlsZU5hbWUgPSAidGVzdF8iICsgdHJhbnNsaXRlcmF0b3JJRC5yZXBsYWNlKCcvJywgJ18nKSArICIuaHRtbCI7CisKKy8vICAgICAgICAgICAgICBGaWxlIGxmID0gbmV3IEZpbGUobG9nRmlsZU5hbWUpOworLy8gICAgICAgICAgICAgIGxvZy5sb2dsbigiQ3JlYXRpbmcgbG9nIGZpbGUgIiArIGxmLmdldEFic29sdXRlRmlsZSgpKTsKKworLy8gICAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKy8vICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0obG9nRmlsZU5hbWUpLCAiVVRGOCIpLCA0KjEwMjQpKTsKKworICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFzdCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgICBiYXN0LCAiVVRGOCIpLCA0KjEwMjQpKTsKKyAgICAgICAgICAgIC8vb3V0LndyaXRlKCdcdUZGRUYnKTsgICAgLy8gQk9NCisgICAgICAgICAgICBvdXQucHJpbnRsbigiPCFET0NUWVBFIEhUTUwgUFVCTElDIFwiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTlwiPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxIVE1MPjxIRUFEPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxNRVRBIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIiBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZT48L0hFQUQ+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPEJPRFkgYmdjb2xvcj0nI0ZGRkZGRicgc3R5bGU9J2ZvbnQtZmFtaWx5OiBBcmlhbCBVbmljb2RlIE1TJz4iKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0ZXN0MigpOworICAgICAgICAgICAgfSBjYXRjaCAoVGVzdFRydW5jYXRlZCBlKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvQk9EWT48L0hUTUw+Iik7CisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKworICAgICAgICAgICAgaWYgKGVycm9yQ291bnQgPiAwKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgbG9nRmlsZU5hbWUgPSAidGVzdF8iICsgdHJhbnNsaXRlcmF0b3JJRC5yZXBsYWNlKCcvJywgJ18nKSArICIuaHRtbCI7CisgICAgICAgICAgICBGaWxlIGxmID0gbmV3IEZpbGUobG9nRmlsZU5hbWUpOworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDcmVhdGluZyBsb2cgZmlsZSAiICsgbGYuZ2V0QWJzb2x1dGVGaWxlKCkpOworICAgICAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBmb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShsZik7CisgICAgICAgICAgICBmb3Mud3JpdGUoYmFzdC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgIGZvcy5jbG9zZSgpOworICAgICAgICAgICAgbG9nLmVycmxuKHRyYW5zbGl0ZXJhdG9ySUQgKyAiIGVycm9yczogIgorICAgICAgICAgICAgICAgICAgKyBlcnJvckNvdW50ICsgKGVycm9yQ291bnQgPiBlcnJvckxpbWl0ID8gIiAoYXQgbGVhc3QhKSIgOiAiIikKKyAgICAgICAgICAgICAgICAgICsgIiwgc2VlICIgKyBsZi5nZXRBYnNvbHV0ZUZpbGUoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJsbih0cmFuc2xpdGVyYXRvcklEICsgIiBlcnJvcnM6ICIKKyAgICAgICAgICAgICAgICAgICsgZXJyb3JDb3VudCArIChlcnJvckNvdW50ID4gZXJyb3JMaW1pdCA/ICIgKGF0IGxlYXN0ISkiIDogIiIpCisgICAgICAgICAgICAgICAgICArICIsIG5vIGxvZyBwcm92aWRlZCBkdWUgdG8gcHJvdGVjdGVkIHRlc3QgZG9tYWluIik7CisgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKHRyYW5zbGl0ZXJhdG9ySUQgKyAiIG9rIik7CisvLyAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKGxvZ0ZpbGVOYW1lKS5kZWxldGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIG9rIGlmIGF0IGxlYXN0IG9uZSBpcyBub3QgZXF1YWwKKyAgICAgICAgcHVibGljIGJvb2xlYW4gY2hlY2tJcnJlbGV2YW50cyhUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgaXJyZWxldmFudHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXJyZWxldmFudHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGlycmVsZXZhbnRzLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gdC50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICBpZiAoY3MuZXF1YWxzKHRhcmcpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3QyKCkgeworCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBzb3VyY2VUb1RhcmdldCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zbGl0ZXJhdG9ySUQpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGFyZ2V0VG9Tb3VyY2UgPSBzb3VyY2VUb1RhcmdldC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBBYmJyZXZpYXRlZFVuaWNvZGVTZXRJdGVyYXRvciB1c2kgPSBuZXcgQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IoKTsKKyAgICAgICAgICAgIEFiYnJldmlhdGVkVW5pY29kZVNldEl0ZXJhdG9yIHVzaTIgPSBuZXcgQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IoKTsKKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IGF0IGxlYXN0IG9uZSBpcnJldmFudCBjaGFyYWN0ZXJzIGlzIG5vdCBORkMnZWQiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Q2hlY2tpbmcgdGhhdCBhdCBsZWFzdCBvbmUgaXJyZXZhbnQgY2hhcmFjdGVycyBpcyBub3QgTkZDJ2VkPC9oMz4iKTsKKworICAgICAgICAgICAgU3RyaW5nIGlycmVsZXZhbnRzID0gIlx1MjAwMFx1MjAwMVx1MjEyNlx1MjEyQVx1MjEyQlx1MjMyOSI7IC8vIHN0cmluZyBpcyBmcm9tIE5GQ19OTyBpbiB0aGUgVUNECisKKyAgICAgICAgICAgIGlmICghY2hlY2tJcnJlbGV2YW50cyhzb3VyY2VUb1RhcmdldCwgaXJyZWxldmFudHMpKSB7CisgICAgICAgICAgICAgICAgbG9nRmFpbHMoIlNvdXJjZS1UYXJnZXQsIE11c3Qgbm90IE5GQyBldmVyeXRoaW5nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWNoZWNrSXJyZWxldmFudHModGFyZ2V0VG9Tb3VyY2UsIGlycmVsZXZhbnRzKSkgeworICAgICAgICAgICAgICAgIGxvZ0ZhaWxzKCJUYXJnZXQtU291cmNlLCBpcnJlbGV2YW50cyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoRVhUUkFfVEVTVFMpIHsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgdG9SdWxlcyB3b3JrcyIpOworICAgICAgICAgICAgICAgIFN0cmluZyBydWxlcyA9ICIiOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHNvdXJjZVRvVGFyZ2V0MjsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0YXJnZXRUb1NvdXJjZTI7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBzb3VyY2VUb1RhcmdldC50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9UYXJnZXQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJzMnQyIiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRfUlVMRVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Rm9yd2FyZCBSdWxlczo8L2gzPjxwPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oVGVzdFV0aWxpdHkucmVwbGFjZShydWxlcywgIlxuIiwgIjxicj5cbiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3A+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSB0YXJnZXRUb1NvdXJjZS50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VG9Tb3VyY2UyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0MnMyIiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRfUlVMRVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+QmFja3dhcmQgUnVsZXM6PC9oMz48cD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMsICJcbiIsICI8YnI+XG4iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+QnJva2VuIFJ1bGVzOjwvaDM+PHA+Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMsICJcbiIsICI8YnI+XG4iKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3A+Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5Sb3VuZHRyaXAgRXhjbHVzaW9uczogIiArIG5ldyBVbmljb2RlU2V0KHJvdW5kdHJpcEV4Y2x1c2lvbnMpICsgIjwvaDM+Iik7CisgICAgICAgICAgICAgICBvdXQuZmx1c2goKTsKKworICAgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgc291cmNlIC0+IHRhcmdldCAtPiBzb3VyY2UiKTsKKyAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHNvdXJjZSAtPiB0YXJnZXQgLT4gc291cmNlPC9oMz4iKTsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIHVzaS5yZXNldChzb3VyY2VSYW5nZSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGMgPSB1c2kuY29kZXBvaW50OworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjcyA9IFVURjE2LnZhbHVlT2YoYyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IHNvdXJjZVRvVGFyZ2V0Mi50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1RvUnVsZXNGYWlscygiU291cmNlLVRhcmdldCwgdG9SdWxlcyIsIGNzLCB0YXJnLCB0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgdGFyZ2V0IC0+IHNvdXJjZSAtPiB0YXJnZXQiKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkNoZWNraW5nIHRoYXQgdGFyZ2V0IC0+IHNvdXJjZSAtPiB0YXJnZXQ8L2gzPiIpOworICAgICAgICAgICAgICAgdXNpLnJlc2V0KHRhcmdldFJhbmdlKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSB0YXJnZXRUb1NvdXJjZS50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcyID0gdGFyZ2V0VG9Tb3VyY2UyLnRyYW5zbGl0ZXJhdGUoY3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRhcmcuZXF1YWxzKHRhcmcyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nVG9SdWxlc0ZhaWxzKCJUYXJnZXQtU291cmNlLCB0b1J1bGVzIiwgY3MsIHRhcmcsIHRhcmcyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgc291cmNlIGNoYXJhY3RlcnMgY29udmVydCB0byB0YXJnZXQgLSBTaW5nbGVzIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkNoZWNraW5nIHRoYXQgc291cmNlIGNoYXJhY3RlcnMgY29udmVydCB0byB0YXJnZXQgLSBTaW5nbGVzPC9oMz4iKTsKKworICAgICAgICAgICAgVW5pY29kZVNldCBmYWlsU291cmNlVGFyZyA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBmb3IgKGNoYXIgYyA9IDA7IGMgPCAweEZGRkY7ICsrYykgeworICAgICAgICAgICAgICAgIGlmICghc291cmNlUmFuZ2UuY29udGFpbnMoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICB1c2kucmVzZXQoc291cmNlUmFuZ2UpOworICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZykpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdEID0gTm9ybWFsaXplci5ub3JtYWxpemUodGFyZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRvVGFyZ2V0LmNvbnRhaW5zQWxsKHRhcmdEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmdEKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nV3JvbmdTY3JpcHQoIlNvdXJjZS1UYXJnZXQiLCBjcywgdGFyZywgdG9UYXJnZXQsIGJhZENoYXJhY3RlcnMpOworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbFNvdXJjZVRhcmcuYWRkKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MyID0gTm9ybWFsaXplci5ub3JtYWxpemUoY3MsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzMik7CisgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nTm90Q2Fub25pY2FsKCJTb3VyY2UtVGFyZ2V0IiwgY3MsIHRhcmcsIGNzMiwgdGFyZzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHNvdXJjZSBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gdGFyZ2V0IC0gRG91YmxlcyIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHNvdXJjZSBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gdGFyZ2V0IC0gRG91YmxlczwvaDM+Iik7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBmb3IgKGNoYXIgYyA9IDA7IGMgPCAweEZGRkY7ICsrYykgeworICAgICAgICAgICAgICAgIGlmIChUZXN0VXRpbGl0eS5pc1VuYXNzaWduZWQoYykgfHwKKyAgICAgICAgICAgICAgICAgICAgIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGMpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoZmFpbFNvdXJjZVRhcmcuZ2V0KGMpKSBjb250aW51ZTsKKworICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgVW5pY29kZVNldCBzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMgPSBuZXcgVW5pY29kZVNldChzb3VyY2VSYW5nZSk7CisgICAgICAgICAgICBzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMucmVtb3ZlQWxsKGZhaWxTb3VyY2VUYXJnKTsKKworICAgICAgICAgICAgYm9vbGVhbiBxdWlja1J0ID0gbG9nLmdldEluY2x1c2lvbigpIDwgMTA7CisKKyAgICAgICAgICAgIHVzaS5yZXNldChzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMsIHF1aWNrUnQsIGRlbnNpdHkpOworCisgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGludCBjID0gdXNpLmNvZGVwb2ludDsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGQgPSAwOyBkIDwgMHhGRkZGOyArK2QpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChkKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxTb3VyY2VUYXJnLmdldChkKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB1c2kyLnJlc2V0KHNvdXJjZVJhbmdlTWludXNGYWlsdXJlcywgcXVpY2tSdCwgZGVuc2l0eSk7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAodXNpMi5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGQgPSB1c2kyLmNvZGVwb2ludDsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpICsgVVRGMTYudmFsdWVPZihkKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ0QgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvVGFyZ2V0LmNvbnRhaW5zQWxsKHRhcmdEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dXcm9uZ1NjcmlwdCgiU291cmNlLVRhcmdldCIsIGNzLCB0YXJnLCB0b1RhcmdldCwgYmFkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNzMiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNzLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUoY3MyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ05vdENhbm9uaWNhbCgiU291cmNlLVRhcmdldCIsIGNzLCB0YXJnLCBjczIsIHRhcmcyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHRhcmdldCBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gc291cmNlIGFuZCBiYWNrIC0gU2luZ2xlcyIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHRhcmdldCBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gc291cmNlIGFuZCBiYWNrIC0gU2luZ2xlczwvaDM+Iik7CisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZmFpbFRhcmdTb3VyY2UgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgVW5pY29kZVNldCBmYWlsUm91bmQgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgICAgICAvKmZvciAoY2hhciBjID0gMDsgYyA8IDB4RkZGRjsgKytjKSB7CisgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChjKSB8fAorICAgICAgICAgICAgICAgICAgICAhdGFyZ2V0UmFuZ2UuY29udGFpbnMoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICB1c2kucmVzZXQodGFyZ2V0UmFuZ2UpOworICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3M7CisgICAgICAgICAgICAgICAgaW50IGM7CisgICAgICAgICAgICAgICAgaWYodXNpLmNvZGVwb2ludCA9PSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKXsKKyAgICAgICAgICAgICAgICAgICAgY3MgPSB1c2kuc3RyaW5nOworICAgICAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KGNzLDApOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBjID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICAgICAgY3MgPVVURjE2LnZhbHVlT2YoYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSB0YXJnZXRUb1NvdXJjZS50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZSA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUodGFyZyk7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRvU291cmNlLmNvbnRhaW5zQWxsKHRhcmcpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ0QgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdG9Tb3VyY2UuY29udGFpbnNBbGwodGFyZ0QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZ0QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qVW5pY29kZVNldCB0ZW1wID0gKi9uZXcgVW5pY29kZVNldCgpLmFkZEFsbCh0YXJnRCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dXcm9uZ1NjcmlwdCgiVGFyZ2V0LVNvdXJjZSIsIGNzLCB0YXJnLCB0b1NvdXJjZSwgYmFkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsVGFyZ1NvdXJjZS5hZGQoY3MpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFpc1NhbWUoY3MsIHJldmVyc2UpICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGMpCisgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGNzKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dSb3VuZFRyaXBGYWlsdXJlKGNzLHRhcmdldFRvU291cmNlLmdldElEKCksIHRhcmcsc291cmNlVG9UYXJnZXQuZ2V0SUQoKSwgcmV2ZXJzZSk7CisgICAgICAgICAgICAgICAgICAgIGZhaWxSb3VuZC5hZGQoYyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJldmVyc2UyID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZSh0YXJnMik7CisgICAgICAgICAgICAgICAgaWYgKCFyZXZlcnNlLmVxdWFscyhyZXZlcnNlMikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nTm90Q2Fub25pY2FsKCJUYXJnZXQtU291cmNlIiwgdGFyZywgcmV2ZXJzZSwgdGFyZzIsIHJldmVyc2UyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCB0YXJnZXQgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHNvdXJjZSBhbmQgYmFjayAtIERvdWJsZXMiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Q2hlY2tpbmcgdGhhdCB0YXJnZXQgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHNvdXJjZSBhbmQgYmFjayAtIERvdWJsZXM8L2gzPiIpOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAgICAgVW5pY29kZVNldCB0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMgPSBuZXcgVW5pY29kZVNldCh0YXJnZXRSYW5nZSk7CisgICAgICAgICAgICB0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMucmVtb3ZlQWxsKGZhaWxUYXJnU291cmNlKTsKKyAgICAgICAgICAgIHRhcmdldFJhbmdlTWludXNGYWlsdXJlcy5yZW1vdmVBbGwoZmFpbFJvdW5kKTsKKworICAgICAgICAgICAgLy9jaGFyW10gYnVmID0gbmV3IGNoYXJbNF07IC8vIG1heGltdW0gd2UgY2FuIGhhdmUgd2l0aCAyIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhGRkZGOyArK2MpIHsKKyAgICAgICAgICAgICAgICBpZiAoVGVzdFV0aWxpdHkuaXNVbmFzc2lnbmVkKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICF0YXJnZXRSYW5nZS5jb250YWlucyhjKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIHVzaS5yZXNldCh0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMsIHF1aWNrUnQsIGRlbnNpdHkpOworCisgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGludCBjID0gdXNpLmNvZGVwb2ludDsKKworICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ID4gcGFpckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUZXN0VHJ1bmNhdGVkKCJUZXN0IHRydW5jYXRlZCBhdCAiICsgcGFpckxpbWl0ICsgIiB4IDY0ayBwYWlycyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2xvZy5sb2coVGVzdFV0aWxpdHkuaGV4KGMpKTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGQgPSAwOyBkIDwgMHhGRkZGOyArK2QpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChkKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIXRhcmdldFJhbmdlLmNvbnRhaW5zKGQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgdXNpMi5yZXNldCh0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMsIHF1aWNrUnQsIGRlbnNpdHkpOworCisgICAgICAgICAgICAgICAgd2hpbGUgKHVzaTIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkID0gdXNpMi5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChkIDwgMCkgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKSArIFVURjE2LnZhbHVlT2YoZCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gdGFyZ2V0VG9Tb3VyY2UudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyByZXZlcnNlID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZSh0YXJnKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIXRvU291cmNlLmNvbnRhaW5zQWxsKHRhcmcpIC8qJiYgIWZhaWxUYXJnU291cmNlLmNvbnRhaW5zKGMpICYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhkKSovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnRCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRhcmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdG9Tb3VyY2UuY29udGFpbnNBbGwodGFyZ0QpIC8qJiYgIWZhaWxUYXJnU291cmNlLmNvbnRhaW5zKGMpICYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhkKSovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmdEKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1dyb25nU2NyaXB0KCJUYXJnZXQtU291cmNlIiwgY3MsIHRhcmcsIHRvU291cmNlLCBiYWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU2FtZShjcywgcmV2ZXJzZSkgLyomJiAhZmFpbFJvdW5kLmNvbnRhaW5zKGMpICYmICFmYWlsUm91bmQuY29udGFpbnMoZCkqLworICAgICAgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXJvdW5kdHJpcEV4Y2x1c2lvbnMuY29udGFpbnMoZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhcm91bmR0cmlwRXhjbHVzaW9ucy5jb250YWlucyhjcykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1JvdW5kVHJpcEZhaWx1cmUoY3MsdGFyZ2V0VG9Tb3VyY2UuZ2V0SUQoKSwgdGFyZyxzb3VyY2VUb1RhcmdldC5nZXRJRCgpLCByZXZlcnNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRhcmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJldmVyc2UyID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZSh0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV2ZXJzZS5lcXVhbHMocmV2ZXJzZTIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dOb3RDYW5vbmljYWwoIlRhcmdldC1Tb3VyY2UiLCB0YXJnLCByZXZlcnNlLCB0YXJnMiwgcmV2ZXJzZTIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nLmxvZ2xuKCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZyBpbmZvKFN0cmluZyBzKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiXHUyMDBFIikuYXBwZW5kKHMpLmFwcGVuZCgiXHUyMDBFICgiKS5hcHBlbmQoVGVzdFV0aWxpdHkuaGV4KHMpKS5hcHBlbmQoIi8iKTsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeyAvLyBhcHBlbmQgYWdlLCBhcyBhIGNoZWNrCisgICAgICAgICAgICAgICAgaW50IGNwID0gMDsgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChVQ2hhcmFjdGVyLmdldEFnZShjcCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIikiKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIHZvaWQgbG9nV3JvbmdTY3JpcHQoU3RyaW5nIGxhYmVsLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvLCAKKyAgICAgICAgICBVbmljb2RlU2V0IHNob3VsZENvbnRhaW5BbGwsIFVuaWNvZGVTZXQgc2hvdWxkTm90Q29udGFpbkFueSkgeworICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgdG9EID0gTm9ybWFsaXplci5ub3JtYWxpemUodG8sIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgdGVtcCA9IG5ldyBVbmljb2RlU2V0KCkuYWRkQWxsKHRvRCk7CisgICAgICAgICAgICBVbmljb2RlU2V0IGJhZCA9IG5ldyBVbmljb2RlU2V0KHNob3VsZE5vdENvbnRhaW5BbnkpLnJldGFpbkFsbCh0ZW1wKQorICAgICAgICAgICAgICAgIC5hZGRBbGwobmV3IFVuaWNvZGVTZXQodGVtcCkucmVtb3ZlQWxsKHNob3VsZENvbnRhaW5BbGwpKTsKKworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsICIgKyBsYWJlbCArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgPT4gIiArIGluZm8odG8pICsgIiAiICsgYmFkCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCB2b2lkIGxvZ05vdENhbm9uaWNhbChTdHJpbmcgbGFiZWwsIFN0cmluZyBmcm9tLCBTdHJpbmcgdG8sIFN0cmluZyBmcm9tQ2FuLCBTdHJpbmcgdG9DYW4pIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsIChjYW4uZXF1aXYpICIgKyBsYWJlbCArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgPT4gIiArIGluZm8odG8pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgLS0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvKGZyb21DYW4pICsgIiA9PiAiICsgaW5mbyh0b0NhbikgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCB2b2lkIGxvZ0ZhaWxzKFN0cmluZyBsYWJlbCkgeworICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJyPkZhaWwgKGNhbi5lcXVpdikiICsgbGFiZWwpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgdm9pZCBsb2dUb1J1bGVzRmFpbHMoU3RyaW5nIGxhYmVsLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvLCBTdHJpbmcgdG9DYW4pIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsICIgKyBsYWJlbCArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgPT4gIiArIGluZm8odG8pICsgIiwgIiArIGluZm8odG9DYW4pCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgdm9pZCBsb2dSb3VuZFRyaXBGYWlsdXJlKFN0cmluZyBmcm9tLFN0cmluZyB0b0lELCBTdHJpbmcgdG8sU3RyaW5nIGJhY2tJRCwgU3RyaW5nIGJhY2spIHsKKyAgICAgICAgICAgIGlmICghbGVnYWxTb3VyY2UuaXMoZnJvbSkpIHJldHVybjsgLy8gc2tpcCBpbGxlZ2FscworCisgICAgICAgICAgICBpZiAoKytlcnJvckNvdW50ID4gZXJyb3JMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBUZXN0VHJ1bmNhdGVkKCJUZXN0IHRydW5jYXRlZDsgdG9vIG1hbnkgZmFpbHVyZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8YnI+RmFpbCBSb3VuZHRyaXA6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgIit0b0lEKyIgPT4gIiArIGluZm8odG8pICsgIiAiICsgYmFja0lEKyIgPT4gIiArIGluZm8oYmFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBDaGFyYWN0ZXJzIHRvIGZpbHRlciBmb3Igc291cmNlLXRhcmdldCBtYXBwaW5nIGNvbXBsZXRlbmVzcworICAgICAgICAgKiBUeXBpY2FsbHkgaXMgYmFzZSBhbHBoYWJldCwgbWludXMgZXh0ZW5kZWQgY2hhcmFjdGVycworICAgICAgICAgKiBEZWZhdWx0IGlzIEFTQ0lJIGxldHRlcnMgZm9yIExhdGluCisgICAgICAgICAqLworICAgICAgICAgLyoKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNTb3VyY2UoY2hhciBjKSB7CisgICAgICAgICAgICBpZiAoIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGMpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIC8qCisgICAgICAgICAqIENoYXJhY3RlcnMgdG8gY2hlY2sgZm9yIHRhcmdldCBiYWNrIHRvIHNvdXJjZSBtYXBwaW5nLgorICAgICAgICAgKiBUeXBpY2FsbHkgdGhlIHNhbWUgYXMgdGhlIHRhcmdldCBzY3JpcHQsIHBsdXMgcHVuY3R1YXRpb24KKyAgICAgICAgICovCisgICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlY2VpdmluZ1NvdXJjZShjaGFyIGMpIHsKKyAgICAgICAgICAgIGlmICghdGFyZ2V0UmFuZ2UuY29udGFpbnMoYykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8qCisgICAgICAgICAqIENoYXJhY3RlcnMgdG8gZmlsdGVyIGZvciB0YXJnZXQtc291cmNlIG1hcHBpbmcKKyAgICAgICAgICogVHlwaWNhbGx5IGlzIGJhc2UgYWxwaGFiZXQsIG1pbnVzIGV4dGVuZGVkIGNoYXJhY3RlcnMKKyAgICAgICAgICovCisgICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1RhcmdldChjaGFyIGMpIHsKKyAgICAgICAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGMpOworICAgICAgICAgICAgaWYgKHNjcmlwdCAhPSB0YXJnZXRTY3JpcHQpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghVGVzdFV0aWxpdHkuaXNMZXR0ZXIoYykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICh0YXJnZXRSYW5nZSAhPSBudWxsICYmICF0YXJnZXRSYW5nZS5jb250YWlucyhjKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICAvKgorICAgICAgICAgKiBDaGFyYWN0ZXJzIHRvIGNoZWNrIGZvciB0YXJnZXQtc291cmNlIG1hcHBpbmcKKyAgICAgICAgICogVHlwaWNhbGx5IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2Ugc2NyaXB0LCBwbHVzIHB1bmN0dWF0aW9uCisgICAgICAgICAqLworICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlY2VpdmluZ1RhcmdldChjaGFyIGMpIHsKKyAgICAgICAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGMpOworICAgICAgICAgICAgcmV0dXJuIChzY3JpcHQgPT0gdGFyZ2V0U2NyaXB0IHx8IHNjcmlwdCA9PSBUZXN0VXRpbGl0eS5DT01NT05fU0NSSVBUKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNTb3VyY2UoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1NvdXJjZShzLmNoYXJBdChpKSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBpc1RhcmdldChTdHJpbmcgcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVGFyZ2V0KHMuY2hhckF0KGkpKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGlzUmVjZWl2aW5nU291cmNlKFN0cmluZyBzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghaXNSZWNlaXZpbmdTb3VyY2Uocy5jaGFyQXQoaSkpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNSZWNlaXZpbmdUYXJnZXQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1JlY2VpdmluZ1RhcmdldChzLmNoYXJBdChpKSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgc3RhdGljIGNsYXNzIFRlc3RUcnVuY2F0ZWQgZXh0ZW5kcyBSdW50aW1lRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIFRlc3RUcnVuY2F0ZWQoU3RyaW5nIG1zZykgeworICAgICAgICAgICAgICAgIHN1cGVyKG1zZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vICBzdGF0aWMgY2xhc3MgVGVzdEhhbmd1bCBleHRlbmRzIFRlc3QgeworLy8gICAgICBUZXN0SGFuZ3VsICgpIHsKKy8vICAgICAgICAgIHN1cGVyKCJKYW1vLUhhbmd1bCIsIFRlc3RVdGlsaXR5LkpBTU9fU0NSSVBULCBUZXN0VXRpbGl0eS5IQU5HVUxfU0NSSVBUKTsKKy8vICAgICAgfQorLy8KKy8vICAgICAgcHVibGljIGJvb2xlYW4gaXNTb3VyY2UoY2hhciBjKSB7CisvLyAgICAgICAgICBpZiAoMHgxMTEzIDw9IGMgJiYgYyA8PSAweDExNjApIHJldHVybiBmYWxzZTsKKy8vICAgICAgICAgIGlmICgweDExNzYgPD0gYyAmJiBjIDw9IDB4MTFGOSkgcmV0dXJuIGZhbHNlOworLy8gICAgICAgICAgaWYgKDB4MzEzMSA8PSBjICYmIGMgPD0gMHgzMThFKSByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgICByZXR1cm4gc3VwZXIuaXNTb3VyY2UoYyk7CisvLyAgICAgIH0KKy8vICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTQxMTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDMzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJUcmFuc2xpdGVyYXRvclRlc3QiLAorICAgICAgICAgICAgIlVuaWNvZGVTZXRUZXN0IiwKKyAgICAgICAgICAgICJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdCIsCisgICAgICAgICAgICAiSmFtb1Rlc3QiLAorICAgICAgICAgICAgIkVycm9yVGVzdCIsCisgICAgICAgICAgICAiUm91bmRUcmlwVGVzdCIsCisgICAgICAgICAgICAiUmVwbGFjZWFibGVUZXN0IiwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiVHJhbnNsaXQiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RVdGlsaXR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVGVzdFV0aWxpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YmYyM2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RVdGlsaXR5LmphdmEKQEAgLTAsMCArMSw0NDQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGZpbmFsIGNsYXNzIFRlc3RVdGlsaXR5IHsKKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChjaGFyIGNoKSB7CisgICAgICAgIFN0cmluZyBmb28gPSBJbnRlZ2VyLnRvU3RyaW5nKGNoLDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICByZXR1cm4gIjAwMDAiLnN1YnN0cmluZygwLDQtZm9vLmxlbmd0aCgpKSArIGZvbzsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGludCBjaCkgeworICAgICAgICBTdHJpbmcgZm9vID0gSW50ZWdlci50b1N0cmluZyhjaCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmV0dXJuICIwMDAwMDAwMCIuc3Vic3RyaW5nKDAsNC1mb28ubGVuZ3RoKCkpICsgZm9vOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgIHJldHVybiBoZXgocywiLCIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMsIFN0cmluZyBzZXApIHsKKyAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHJldHVybiAiIjsKKyAgICAgIFN0cmluZyByZXN1bHQgPSBoZXgocy5jaGFyQXQoMCkpOworICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgcmVzdWx0ICs9IHNlcDsKKyAgICAgICAgcmVzdWx0ICs9IGhleChzLmNoYXJBdChpKSk7CisgICAgICB9CisgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0b0JlUmVwbGFjZWQsIFN0cmluZyByZXBsYWNlbWVudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGxlbiA9IHRvQmVSZXBsYWNlZC5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNvdXJjZS5yZWdpb25NYXRjaGVzKGZhbHNlLCBpLCB0b0JlUmVwbGFjZWQsIDAsIGxlbikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICAgICAgaSArPSBsZW4gLSAxOyAvLyBtaW51cyBvbmUsIHNpbmNlIHdlIHdpbGwgaW5jcmVtZW50CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNvdXJjZS5jaGFyQXQoaSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHRzLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2VBbGwoU3RyaW5nIHNvdXJjZSwgVW5pY29kZVNldCBzZXQsIFN0cmluZyByZXBsYWNlbWVudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsaSk7CisgICAgICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdHMsIGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0cy50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvLyBDT01NRU5URUQgT1VUIEFMTCBUSEUgT0xEIFNDUklQVCBTVFVGRgorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBieXRlIGdldFNjcmlwdChjaGFyIGMpIHsKKyAgICAgIHJldHVybiBnZXRTY3JpcHQoZ2V0QmxvY2soYykpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgZ2V0U2NyaXB0KGJ5dGUgYmxvY2spIHsKKyAgICAgIHJldHVybiBibG9ja1RvU2NyaXB0W2Jsb2NrXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBieXRlIGdldEJsb2NrKGNoYXIgYykgeworICAgICAgaW50IGluZGV4ID0gYyA+PiA3OworICAgICAgYnl0ZSBibG9jayA9IGNoYXJUb0Jsb2NrW2luZGV4XTsKKyAgICAgIHdoaWxlIChibG9jayA8IDApIHsgLy8gdGFrZSBjYXJlIG9mIGV4Y2VwdGlvbnMsIGJsb2NrcyBzcGxpdCBhY3Jvc3MgMTI4IGJvdW5kYXJpZXMKKyAgICAgICAgICBpbnRbXSB0dXBsZSA9IHNwbGl0Wy1ibG9jay0xXTsKKyAgICAgICAgICBpZiAoYyA8IHR1cGxlWzBdKSBibG9jayA9IChieXRlKXR1cGxlWzFdOworICAgICAgICAgIGVsc2UgYmxvY2sgPSAoYnl0ZSl0dXBsZVsyXTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBibG9jazsKKyAgICB9CisgICAgICAgICAgICAgICAKKyAgICAvLyByZXR1cm5zIG5leHQgbGV0dGVyIG9mIHNjcmlwdCwgb3IgMHhGRkZGIGlmIGRvbmUKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgZ2V0TmV4dExldHRlcihjaGFyIGMsIGJ5dGUgc2NyaXB0KSB7CisgICAgICAgIHdoaWxlIChjIDwgMHhGRkZGKSB7CisgICAgICAgICAgICArK2M7CisgICAgICAgICAgICBpZiAoZ2V0U2NyaXB0KGMpID09IHNjcmlwdCAmJiBDaGFyYWN0ZXIuaXNMZXR0ZXIoYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzsKKyAgICB9CisgICAgCisgICAgLy8gU3VwcGxlbWVudHMgdG8gQ2hhcmFjdGVyIG1ldGhvZHM7IHRoZXNlIG1ldGhvZHMgZ28gdGhyb3VnaAorICAgIC8vIFVDaGFyYWN0ZXIgaWYgcG9zc2libGUuICBJZiBub3QsIHRoZXkgZmFsbCBiYWNrIHRvIENoYXJhY3Rlci4KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VuYXNzaWduZWQoY2hhciBjKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRUeXBlKGMpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQ7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGV0dGVyKGNoYXIgYykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuaXNMZXR0ZXIoYyk7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBDaGFyYWN0ZXIuaXNMZXR0ZXIoYyk7CisgICAgfQorCisgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJsb2NrczogIik7CisgICAgYnl0ZSBsYXN0YmxvY2sgPSAtMTI4OworICAgIGZvciAoY2hhciBjYyA9IDA7IGNjIDwgMHhGRkZGOyArK2NjKSB7CisgICAgICBieXRlIGJsb2NrID0gVGVzdFV0aWxpdHkuZ2V0QmxvY2soY2MpOworICAgICAgaWYgKGJsb2NrICE9IGxhc3RibG9jaykgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVGVzdFV0aWxpdHkuaGV4KGNjKSArICJcdCIgKyBibG9jayk7CisgICAgICAgIGxhc3RibG9jayA9IGJsb2NrOworICAgICAgfQorICAgIH0KKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNjcmlwdHM6ICIpOworICAgIGJ5dGUgbGFzdFNjcmlwdCA9IC0xMjg7CisgICAgZm9yIChjaGFyIGNjID0gMDsgY2MgPCAweEZGRkY7ICsrY2MpIHsKKyAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGNjKTsKKyAgICAgIGlmIChzY3JpcHQgIT0gbGFzdFNjcmlwdCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVGVzdFV0aWxpdHkuaGV4KGNjKSArICJcdCIgKyBzY3JpcHQpOworICAgICAgICBsYXN0U2NyaXB0ID0gc2NyaXB0OworICAgICAgfQorICAgIH0KKyAgfQorICAgICAgCisgICAgCisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIC8vIFNDUklQVCBDT0RFCisgICAgICAgIENPTU1PTl9TQ1JJUFQgPSAwLAorICAgICAgICBMQVRJTl9TQ1JJUFQgPSAxLAorICAgICAgICBHUkVFS19TQ1JJUFQgPSAyLAorICAgICAgICBDWVJJTExJQ19TQ1JJUFQgPSAzLAorICAgICAgICBBUk1FTklBTl9TQ1JJUFQgPSA0LAorICAgICAgICBIRUJSRVdfU0NSSVBUID0gNSwKKyAgICAgICAgQVJBQklDX1NDUklQVCA9IDYsCisgICAgICAgIFNZUklBQ19TQ1JJUFQgPSA3LAorICAgICAgICBUSEFBTkFfU0NSSVBUID0gOCwgCisgICAgICAgIERFVkFOQUdBUklfU0NSSVBUID0gOSwKKyAgICAgICAgQkVOR0FMSV9TQ1JJUFQgPSAxMCwKKyAgICAgICAgR1VSTVVLSElfU0NSSVBUID0gMTEsCisgICAgICAgIEdVSkFSQVRJX1NDUklQVCA9IDEyLAorICAgICAgICBPUklZQV9TQ1JJUFQgPSAxMywKKyAgICAgICAgVEFNSUxfU0NSSVBUID0gMTQsCisgICAgICAgIFRFTFVHVV9TQ1JJUFQgPSAxNSwKKyAgICAgICAgS0FOTkFEQV9TQ1JJUFQgPSAxNiwKKyAgICAgICAgTUFMQVlBTEFNX1NDUklQVCA9IDE3LAorICAgICAgICBTSU5IQUxBX1NDUklQVCA9IDE4LAorICAgICAgICBUSEFJX1NDUklQVCA9IDE5LAorICAgICAgICBMQU9fU0NSSVBUID0gMjAsCisgICAgICAgIFRJQkVUQU5fU0NSSVBUID0gMjEsCisgICAgICAgIE1ZQU5NQVJfU0NSSVBUID0gMjIsCisgICAgICAgIEdFT1JHSUFOX1NDUklQVCA9IDIzLAorICAgICAgICBKQU1PX1NDUklQVCA9IDI0LAorICAgICAgICBIQU5HVUxfU0NSSVBUID0gMjUsCisgICAgICAgIEVUSElPUElDX1NDUklQVCA9IDI2LAorICAgICAgICBDSEVST0tFRV9TQ1JJUFQgPSAyNywKKyAgICAgICAgQUJPUklHSU5BTF9TQ1JJUFQgPSAyOCwKKyAgICAgICAgT0dIQU1fU0NSSVBUID0gMjksCisgICAgICAgIFJVTklDX1NDUklQVCA9IDMwLAorICAgICAgICBLSE1FUl9TQ1JJUFQgPSAzMSwKKyAgICAgICAgTU9OR09MSUFOX1NDUklQVCA9IDMyLAorICAgICAgICBISVJBR0FOQV9TQ1JJUFQgPSAzMywKKyAgICAgICAgS0FUQUtBTkFfU0NSSVBUID0gMzQsCisgICAgICAgIEJPUE9NT0ZPX1NDUklQVCA9IDM1LAorICAgICAgICBIQU5fU0NSSVBUID0gMzYsCisgICAgICAgIFlJX1NDUklQVCA9IDM3OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSAvLyBibG9jayBjb2RlCisgICAgICAgIFJFU0VSVkVEX0JMT0NLID0gMCwKKyAgICAgICAgQkFTSUNfTEFUSU4gPSAxLAorICAgICAgICBMQVRJTl8xX1NVUFBMRU1FTlQgPSAyLAorICAgICAgICBMQVRJTl9FWFRFTkRFRF9BID0gMywKKyAgICAgICAgTEFUSU5fRVhURU5ERURfQiA9IDQsCisgICAgICAgIElQQV9FWFRFTlNJT05TID0gNSwKKyAgICAgICAgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTID0gNiwKKyAgICAgICAgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTID0gNywKKyAgICAgICAgR1JFRUsgPSA4LAorICAgICAgICBDWVJJTExJQyA9IDksCisgICAgICAgIEFSTUVOSUFOID0gMTAsCisgICAgICAgIEhFQlJFVyA9IDExLAorICAgICAgICBBUkFCSUMgPSAxMiwKKyAgICAgICAgU1lSSUFDID0gMTMsCisgICAgICAgIFRIQUFOQSA9IDE0LAorICAgICAgICBERVZBTkFHQVJJID0gMTUsCisgICAgICAgIEJFTkdBTEkgPSAxNiwKKyAgICAgICAgR1VSTVVLSEkgPSAxNywKKyAgICAgICAgR1VKQVJBVEkgPSAxOCwKKyAgICAgICAgT1JJWUEgPSAxOSwKKyAgICAgICAgVEFNSUwgPSAyMCwKKyAgICAgICAgVEVMVUdVID0gMjEsCisgICAgICAgIEtBTk5BREEgPSAyMiwKKyAgICAgICAgTUFMQVlBTEFNID0gMjMsCisgICAgICAgIFNJTkhBTEEgPSAyNCwKKyAgICAgICAgVEhBSSA9IDI1LAorICAgICAgICBMQU8gPSAyNiwKKyAgICAgICAgVElCRVRBTiA9IDI3LAorICAgICAgICBNWUFOTUFSID0gMjgsCisgICAgICAgIEdFT1JHSUFOID0gMjksCisgICAgICAgIEhBTkdVTF9KQU1PID0gMzAsCisgICAgICAgIEVUSElPUElDID0gMzEsCisgICAgICAgIENIRVJPS0VFID0gMzIsCisgICAgICAgIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MgPSAzMywKKyAgICAgICAgT0dIQU0gPSAzNCwKKyAgICAgICAgUlVOSUMgPSAzNSwKKyAgICAgICAgS0hNRVIgPSAzNiwKKyAgICAgICAgTU9OR09MSUFOID0gMzcsCisgICAgICAgIExBVElOX0VYVEVOREVEX0FERElUSU9OQUwgPSAzOCwKKyAgICAgICAgR1JFRUtfRVhURU5ERUQgPSAzOSwKKyAgICAgICAgR0VORVJBTF9QVU5DVFVBVElPTiA9IDQwLAorICAgICAgICBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMgPSA0MSwKKyAgICAgICAgQ1VSUkVOQ1lfU1lNQk9MUyA9IDQyLAorICAgICAgICBDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFMgPSA0MywKKyAgICAgICAgTEVUVEVSTElLRV9TWU1CT0xTID0gNDQsCisgICAgICAgIE5VTUJFUl9GT1JNUyA9IDQ1LAorICAgICAgICBBUlJPV1MgPSA0NiwKKyAgICAgICAgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUyA9IDQ3LAorICAgICAgICBNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTCA9IDQ4LAorICAgICAgICBDT05UUk9MX1BJQ1RVUkVTID0gNDksCisgICAgICAgIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OID0gNTAsCisgICAgICAgIEVOQ0xPU0VEX0FMUEhBTlVNRVJJQ1MgPSA1MSwKKyAgICAgICAgQk9YX0RSQVdJTkcgPSA1MiwKKyAgICAgICAgQkxPQ0tfRUxFTUVOVFMgPSA1MywKKyAgICAgICAgR0VPTUVUUklDX1NIQVBFUyA9IDU0LAorICAgICAgICBNSVNDRUxMQU5FT1VTX1NZTUJPTFMgPSA1NSwKKyAgICAgICAgRElOR0JBVFMgPSA1NiwKKyAgICAgICAgQlJBSUxMRV9QQVRURVJOUyA9IDU3LAorICAgICAgICBDSktfUkFESUNBTFNfU1VQUExFTUVOVCA9IDU4LAorICAgICAgICBLQU5HWElfUkFESUNBTFMgPSA1OSwKKyAgICAgICAgSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUyA9IDYwLAorICAgICAgICBDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT04gPSA2MSwKKyAgICAgICAgSElSQUdBTkEgPSA2MiwKKyAgICAgICAgS0FUQUtBTkEgPSA2MywKKyAgICAgICAgQk9QT01PRk8gPSA2NCwKKyAgICAgICAgSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNTyA9IDY1LAorICAgICAgICBLQU5CVU4gPSA2NiwKKyAgICAgICAgQk9QT01PRk9fRVhURU5ERUQgPSA2NywKKyAgICAgICAgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUyA9IDY4LAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWSA9IDY5LAorICAgICAgICBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BID0gNzAsCisgICAgICAgIENKS19VTklGSUVEX0lERU9HUkFQSFMgPSA3MSwKKyAgICAgICAgWUlfU1lMTEFCTEVTID0gNzIsCisgICAgICAgIFlJX1JBRElDQUxTID0gNzMsCisgICAgICAgIEhBTkdVTF9TWUxMQUJMRVMgPSA3NCwKKyAgICAgICAgSElHSF9TVVJST0dBVEVTID0gNzUsCisgICAgICAgIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUyA9IDc2LAorICAgICAgICBMT1dfU1VSUk9HQVRFUyA9IDc3LAorICAgICAgICBQUklWQVRFX1VTRSA9IDc4LAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTID0gNzksCisgICAgICAgIEFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TID0gODAsCisgICAgICAgIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQSA9IDgxLAorICAgICAgICBDT01CSU5JTkdfSEFMRl9NQVJLUyA9IDgyLAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9GT1JNUyA9IDgzLAorICAgICAgICBTTUFMTF9GT1JNX1ZBUklBTlRTID0gODQsCisgICAgICAgIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQiA9IDg1LAorICAgICAgICBTUEVDSUFMUyA9IDg2LAorICAgICAgICBIQUxGV0lEVEhfQU5EX0ZVTExXSURUSF9GT1JNUyA9IDg3OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZVtdIGJsb2NrVG9TY3JpcHQgPSB7CisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDAsIDxSRVNFUlZFRF9CTE9DSz4KKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyAxLCBCQVNJQ19MQVRJTgorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDIsIExBVElOXzFfU1VQUExFTUVOVAorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDMsIExBVElOX0VYVEVOREVEX0EKKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyA0LCBMQVRJTl9FWFRFTkRFRF9CCisgICAgICAgIExBVElOX1NDUklQVCwgLy8gNSwgSVBBX0VYVEVOU0lPTlMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNiwgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDcsIENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUworICAgICAgICBHUkVFS19TQ1JJUFQsIC8vIDgsIEdSRUVLCisgICAgICAgIENZUklMTElDX1NDUklQVCwgLy8gOSwgQ1lSSUxMSUMKKyAgICAgICAgQVJNRU5JQU5fU0NSSVBULCAvLyAxMCwgQVJNRU5JQU4KKyAgICAgICAgSEVCUkVXX1NDUklQVCwgLy8gMTEsIEhFQlJFVworICAgICAgICBBUkFCSUNfU0NSSVBULCAvLyAxMiwgQVJBQklDCisgICAgICAgIFNZUklBQ19TQ1JJUFQsIC8vIDEzLCBTWVJJQUMKKyAgICAgICAgVEhBQU5BX1NDUklQVCwgLy8gMTQsIFRIQUFOQQorICAgICAgICBERVZBTkFHQVJJX1NDUklQVCwgLy8gMTUsIERFVkFOQUdBUkkKKyAgICAgICAgQkVOR0FMSV9TQ1JJUFQsIC8vIDE2LCBCRU5HQUxJCisgICAgICAgIEdVUk1VS0hJX1NDUklQVCwgLy8gMTcsIEdVUk1VS0hJCisgICAgICAgIEdVSkFSQVRJX1NDUklQVCwgLy8gMTgsIEdVSkFSQVRJCisgICAgICAgIE9SSVlBX1NDUklQVCwgLy8gMTksIE9SSVlBCisgICAgICAgIFRBTUlMX1NDUklQVCwgLy8gMjAsIFRBTUlMCisgICAgICAgIFRFTFVHVV9TQ1JJUFQsIC8vIDIxLCBURUxVR1UKKyAgICAgICAgS0FOTkFEQV9TQ1JJUFQsIC8vIDIyLCBLQU5OQURBCisgICAgICAgIE1BTEFZQUxBTV9TQ1JJUFQsIC8vIDIzLCBNQUxBWUFMQU0KKyAgICAgICAgU0lOSEFMQV9TQ1JJUFQsIC8vIDI0LCBTSU5IQUxBCisgICAgICAgIFRIQUlfU0NSSVBULCAvLyAyNSwgVEhBSQorICAgICAgICBMQU9fU0NSSVBULCAvLyAyNiwgTEFPCisgICAgICAgIFRJQkVUQU5fU0NSSVBULCAvLyAyNywgVElCRVRBTgorICAgICAgICBNWUFOTUFSX1NDUklQVCwgLy8gMjgsIE1ZQU5NQVIKKyAgICAgICAgR0VPUkdJQU5fU0NSSVBULCAvLyAyOSwgR0VPUkdJQU4KKyAgICAgICAgSkFNT19TQ1JJUFQsIC8vIDMwLCBIQU5HVUxfSkFNTworICAgICAgICBFVEhJT1BJQ19TQ1JJUFQsIC8vIDMxLCBFVEhJT1BJQworICAgICAgICBDSEVST0tFRV9TQ1JJUFQsIC8vIDMyLCBDSEVST0tFRQorICAgICAgICBBQk9SSUdJTkFMX1NDUklQVCwgLy8gMzMsIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MKKyAgICAgICAgT0dIQU1fU0NSSVBULCAvLyAzNCwgT0dIQU0KKyAgICAgICAgUlVOSUNfU0NSSVBULCAvLyAzNSwgUlVOSUMKKyAgICAgICAgS0hNRVJfU0NSSVBULCAvLyAzNiwgS0hNRVIKKyAgICAgICAgTU9OR09MSUFOX1NDUklQVCwgLy8gMzcsIE1PTkdPTElBTgorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDM4LCBMQVRJTl9FWFRFTkRFRF9BRERJVElPTkFMCisgICAgICAgIEdSRUVLX1NDUklQVCwgLy8gMzksIEdSRUVLX0VYVEVOREVECisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQwLCBHRU5FUkFMX1BVTkNUVUFUSU9OCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQxLCBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDIsIENVUlJFTkNZX1NZTUJPTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDMsIENPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0NCwgTEVUVEVSTElLRV9TWU1CT0xTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQ1LCBOVU1CRVJfRk9STVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDYsIEFSUk9XUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0NywgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0OCwgTUlTQ0VMTEFORU9VU19URUNITklDQUwKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDksIENPTlRST0xfUElDVFVSRVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTAsIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDUxLCBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDUyLCBCT1hfRFJBV0lORworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1MywgQkxPQ0tfRUxFTUVOVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTQsIEdFT01FVFJJQ19TSEFQRVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTUsIE1JU0NFTExBTkVPVVNfU1lNQk9MUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1NiwgRElOR0JBVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTcsIEJSQUlMTEVfUEFUVEVSTlMKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNTgsIENKS19SQURJQ0FMU19TVVBQTEVNRU5UCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDU5LCBLQU5HWElfUkFESUNBTFMKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNjAsIElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNjEsIENKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTgorICAgICAgICBISVJBR0FOQV9TQ1JJUFQsIC8vIDYyLCBISVJBR0FOQQorICAgICAgICBLQVRBS0FOQV9TQ1JJUFQsIC8vIDYzLCBLQVRBS0FOQQorICAgICAgICBCT1BPTU9GT19TQ1JJUFQsIC8vIDY0LCBCT1BPTU9GTworICAgICAgICBKQU1PX1NDUklQVCwgLy8gNjUsIEhBTkdVTF9DT01QQVRJQklMSVRZX0pBTU8KKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNjYsIEtBTkJVTgorICAgICAgICBCT1BPTU9GT19TQ1JJUFQsIC8vIDY3LCBCT1BPTU9GT19FWFRFTkRFRAorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA2OCwgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA2OSwgQ0pLX0NPTVBBVElCSUxJVFkKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNzAsIENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0EKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNzEsIENKS19VTklGSUVEX0lERU9HUkFQSFMKKyAgICAgICAgWUlfU0NSSVBULCAvLyA3MiwgWUlfU1lMTEFCTEVTCisgICAgICAgIFlJX1NDUklQVCwgLy8gNzMsIFlJX1JBRElDQUxTCisgICAgICAgIEhBTkdVTF9TQ1JJUFQsIC8vIDc0LCBIQU5HVUxfU1lMTEFCTEVTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDc1LCBISUdIX1NVUlJPR0FURVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNzYsIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA3NywgTE9XX1NVUlJPR0FURVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNzgsIFBSSVZBVEVfVVNFCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDc5LCBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDgwLCBBTFBIQUJFVElDX1BSRVNFTlRBVElPTl9GT1JNUworICAgICAgICBBUkFCSUNfU0NSSVBULCAvLyA4MSwgQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19BCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDgyLCBDT01CSU5JTkdfSEFMRl9NQVJLUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4MywgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODQsIFNNQUxMX0ZPUk1fVkFSSUFOVFMKKyAgICAgICAgQVJBQklDX1NDUklQVCwgLy8gODUsIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQgorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4NiwgU1BFQ0lBTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODcsIEhBTEZXSURUSF9BTkRfRlVMTFdJRFRIX0ZPUk1TCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDg4LCBTUEVDSUFMUworICAgIH07CisgICAgICAgIAorICAgIC8vIGNvdWxkIGJlIGZ1cnRoZXIgcmVkdWNlZCB0byBhIGJ5dGUgYXJyYXksIGJ1dCBJIGRpZG4ndCBib3RoZXIuCisgICAgc3RhdGljIGZpbmFsIGludFtdW10gc3BsaXQgPSB7CisgICAgICAgIHsweDAyNTAsIDQsIDV9LCAvLyAtMQorICAgICAgICB7MHgwMkIwLCA1LCA2fSwgLy8gLTIKKyAgICAgICAgezB4MDM3MCwgNywgOH0sIC8vIC0zCisgICAgICAgIHsweDA1MzAsIDAsIDEwfSwgLy8gLTQKKyAgICAgICAgezB4MDU5MCwgMTAsIDExfSwgLy8gLTUKKyAgICAgICAgezB4MDc1MCwgMTMsIDB9LCAvLyAtNgorICAgICAgICB7MHgwN0MwLCAxNCwgMH0sIC8vIC03CisgICAgICAgIHsweDEwQTAsIDI4LCAyOX0sIC8vIC04CisgICAgICAgIHsweDEzQTAsIDAsIDMyfSwgLy8gLTkKKyAgICAgICAgezB4MTZBMCwgMzQsIDM1fSwgLy8gLTEwCisgICAgICAgIHsweDE4QjAsIDM3LCAwfSwgLy8gLTExCisgICAgICAgIHsweDIwNzAsIDQwLCA0MX0sIC8vIC0xMgorICAgICAgICB7MHgyMEEwLCA0MSwgLTMxfSwgLy8gLTEzCisgICAgICAgIHsweDIxNTAsIDQ0LCA0NX0sIC8vIC0xNAorICAgICAgICB7MHgyMTkwLCA0NSwgNDZ9LCAvLyAtMTUKKyAgICAgICAgezB4MjQ0MCwgNDksIC0zMn0sIC8vIC0xNgorICAgICAgICB7MHgyNUEwLCA1MywgNTR9LCAvLyAtMTcKKyAgICAgICAgezB4MjdDMCwgNTYsIDB9LCAvLyAtMTgKKyAgICAgICAgezB4MkZFMCwgNTksIC0zM30sIC8vIC0xOQorICAgICAgICB7MHgzMDQwLCA2MSwgNjJ9LCAvLyAtMjAKKyAgICAgICAgezB4MzBBMCwgNjIsIDYzfSwgLy8gLTIxCisgICAgICAgIHsweDMxMzAsIDY0LCA2NX0sIC8vIC0yMgorICAgICAgICB7MHgzMTkwLCA2NSwgLTM0fSwgLy8gLTIzCisgICAgICAgIHsweDREQjYsIDcwLCAwfSwgLy8gLTI0CisgICAgICAgIHsweEE0OTAsIDcyLCAtMzV9LCAvLyAtMjUKKyAgICAgICAgezB4RDdBNCwgNzQsIDB9LCAvLyAtMjYKKyAgICAgICAgezB4RkI1MCwgODAsIDgxfSwgLy8gLTI3CisgICAgICAgIHsweEZFMjAsIDAsIC0zNn0sIC8vIC0yOAorICAgICAgICB7MHhGRUZGLCA4NSwgODZ9LCAvLyAtMjkKKyAgICAgICAgezB4RkZGMCwgODcsIC0zN30sIC8vIC0zMAorICAgICAgICB7MHgyMEQwLCA0MiwgNDN9LCAvLyAtMzEKKyAgICAgICAgezB4MjQ2MCwgNTAsIDUxfSwgLy8gLTMyCisgICAgICAgIHsweDJGRjAsIDAsIDYwfSwgLy8gLTMzCisgICAgICAgIHsweDMxQTAsIDY2LCAtMzh9LCAvLyAtMzQKKyAgICAgICAgezB4QTREMCwgNzMsIDB9LCAvLy0zNQorICAgICAgICB7MHhGRTMwLCA4MiwgLTM5fSwgLy8tMzYKKyAgICAgICAgezB4RkZGRSwgODgsIDB9LCAvLy0zNworICAgICAgICB7MHgzMUMwLCA2NywgMH0sIC8vIC0zOAorICAgICAgICB7MHhGRTUwLCA4MywgLTQwfSwgLy8tMzkKKyAgICAgICAgezB4RkU3MCwgODQsIDg1fSAvLyAtNDAKKyAgICB9OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZVtdIGNoYXJUb0Jsb2NrID0geworICAgICAgMSwgMiwgMywgNCwgLTEsIC0yLCAtMywgOCwgOSwgOSwgLTQsIC01LCAxMiwgMTIsIC02LCAtNywKKyAgICAgIDAsIDAsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyNywKKyAgICAgIDI4LCAtOCwgMzAsIDMwLCAzMSwgMzEsIDMxLCAtOSwgMzMsIDMzLCAzMywgMzMsIDMzLCAtMTAsIDAsIDM2LAorICAgICAgMzcsIC0xMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzgsIDM4LCAzOSwgMzksCisgICAgICAtMTIsIC0xMywgLTE0LCAtMTUsIDQ3LCA0NywgNDgsIDQ4LCAtMTYsIDUxLCA1MiwgLTE3LCA1NSwgNTUsIDU2LCAtMTgsCisgICAgICA1NywgNTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4LCA1OSwgLTE5LAorICAgICAgLTIwLCAtMjEsIC0yMiwgLTIzLCA2OCwgNjgsIDY5LCA2OSwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLAorICAgICAgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsCisgICAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwKKyAgICAgIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgLTI0LCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzIsIDcyLCA3MiwgNzIsIDcyLCA3MiwgNzIsIDcyLCA3MiwgLTI1LCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsCisgICAgICA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwKKyAgICAgIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsCisgICAgICA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCAtMjYsCisgICAgICA3NSwgNzUsIDc1LCA3NSwgNzUsIDc1LCA3NSwgNzYsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywKKyAgICAgIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LAorICAgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsCisgICAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwKKyAgICAgIDc4LCA3OCwgNzksIDc5LCA3OSwgNzksIC0yNywgODEsIDgxLCA4MSwgODEsIDgxLCAtMjgsIC0yOSwgODcsIC0zMAorICAgIH07CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40N2Q1MTlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzQxNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHlFeHRlbnNpb25zOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FzZUluc2Vuc2l0aXZlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgICAgICAgICAgICAgICAgICAgIEhPVyBUTyBVU0UgVEhJUyBURVNUIEZJTEUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtb3ItCisgICAgICAgICAgICAgICAgICBIb3cgSSBkZXZlbG9wZWQgb24gdHdvIHBsYXRmb3JtcworICAgICAgICAgICAgICAgIHdpdGhvdXQgbG9zaW5nICh0b28gbXVjaCBvZikgbXkgbWluZAorCisKKzEuIEFkZCBuZXcgdGVzdHMgYnkgY29weWluZy9wYXN0aW5nL2NoYW5naW5nIGV4aXN0aW5nIHRlc3RzLiAgT24gSmF2YSwKKyAgIGFueSBwdWJsaWMgdm9pZCBtZXRob2QgbmFtZWQgVGVzdC4uLigpIHRha2luZyBubyBwYXJhbWV0ZXJzIGJlY29tZXMKKyAgIGEgdGVzdC4gIE9uIEMrKywgeW91IG5lZWQgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgYW5kIGFkZCBhIGxpbmUgdG8KKyAgIHRoZSBydW5JbmRleGVkVGVzdCgpIGRpc3BhdGNoIG1ldGhvZC4KKworMi4gTWFrZSBsaWJlcmFsIHVzZSBvZiB0aGUgZXhwZWN0KCkgbWV0aG9kOyBpdCBpcyB5b3VyIGZyaWVuZC4KKworMy4gVGhlIHRlc3RzIGluIHRoaXMgZmlsZSBleGFjdGx5IG1hdGNoIHRob3NlIGluIGEgc2lzdGVyIGZpbGUgb24gdGhlCisgICBvdGhlciBzaWRlLiAgVGhlIHR3byBmaWxlcyBhcmU6CisKKyAgIGljdTRqOiAgc3JjL2NvbS5pYm0uaWN1LmRldi50ZXN0L3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCisgICBpY3U0YzogIHNvdXJjZS90ZXN0L2ludGx0ZXN0L3RyYW5zdHN0LmNwcAorCisgICAgICAgICAgICAgICAgICA9PT4gVEhJUyBJUyBUSEUgSU1QT1JUQU5UIFBBUlQgPD09CisKKyAgIFdoZW4geW91IGFkZCBhIHRlc3QgaW4gdGhpcyBmaWxlLCBhZGQgaXQgaW4gdHJhbnN0c3QuY3BwIHRvby4KKyAgIEdpdmUgaXQgdGhlIHNhbWUgbmFtZSBhbmQgcHV0IGl0IGluIHRoZSBzYW1lIHJlbGF0aXZlIHBsYWNlLiAgVGhpcworICAgbWFrZXMgbWFpbnRlbmFuY2UgYSBsb3Qgc2ltcGxlciBmb3IgYW55IHBvb3Igc291bCB3aG8gZW5kcyB1cAorICAgdHJ5aW5nIHRvIHN5bmNocm9uaXplIHRoZSB0ZXN0cyBiZXR3ZWVuIGljdTRqIGFuZCBpY3U0Yy4KKworNC4gSWYgeW91IE1VU1QgZW50ZXIgYSB0ZXN0IHRoYXQgaXMgTk9UIHBhcmFsbGVsZWQgaW4gdGhlIHNpc3RlciBmaWxlLAorICAgdGhlbiBhZGQgaXQgaW4gdGhlIHNwZWNpYWwgbm9uLW1pcnJvcmVkIHNlY3Rpb24uICBUaGVzZSBhcmUKKyAgIGxhYmVsZWQKKworICAgICAiaWN1NGogT05MWSIKKworICAgb3IKKworICAgICAiaWN1NGMgT05MWSIKKworICAgTWFrZSBzdXJlIHlvdSBkb2N1bWVudCB0aGUgcmVhc29uIHRoZSB0ZXN0IGlzIGhlcmUgYW5kIG5vdCB0aGVyZS4KKworCitUaGFuayB5b3UuCitUaGUgTWFuYWdlbWVudAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUcmFuc2xpdGVyYXRvclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEluc3RhbnRpYXRpb24oKSB7CisgICAgICAgIGxvbmcgbXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgU3RyaW5nIElEOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVJRHMoKTsgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBJRCA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGlmIChJRC5lcXVhbHMoIkxhdGluLUhhbi9kZWZpbml0aW9uIikpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVE9ETzogZGlzYWJsaW5nIExhdGluLUhhbi9kZWZpbml0aW9uIGNoZWNrIGZvciBub3c6IGZpeCBsYXRlciIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHRydWUgZm9yIHNvbWUgc3ViY2xhc3NlcworLy8gICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGdldCBhIG5ldyBpbnN0YW5jZSBpZiB3ZSB0cnkgYWdhaW4KKy8vICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworLy8gICAgICAgICAgICAgICAgaWYgKHQgIT0gdDIpIHsKKy8vICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShJRCkgKyAiICgiICsgSUQgKyAiKTogIiArIHQpOworLy8gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIiByZXR1cm5lZCBpZGVudGljYWwgaW5zdGFuY2VzIik7CisvLyAgICAgICAgICAgICAgICAgICAgdCA9IG51bGw7CisvLyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIE5vdyB0ZXN0IHRvUnVsZXMKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXMgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gdC50b1J1bGVzKHRydWUpOworCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIngiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgSUQgKyAiLnRvUnVsZXMoKSA9PiBiYWQgcnVsZXM6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlcyk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGV4MjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGVzdCB0aGUgZmFpbHVyZSBwYXRoCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJRCA9ICI8Tm90IGEgdmFsaWQgVHJhbnNsaXRlcmF0b3IgSUQ+IjsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIiByZXR1cm5lZCAiICsgdCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBCb2d1cyBJRCBoYW5kbGVkIHByb3Blcmx5Iik7CisgICAgICAgIH0KKworICAgICAgICBtcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gbXM7CisgICAgICAgIGxvZ2xuKCJFbGFwc2VkIHRpbWU6ICIgKyBtcyArICIgbXMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2ltcGxlUnVsZXMoKSB7CisgICAgICAgIC8qIEV4YW1wbGU6IHJ1bGVzIDEuIGFiPnh8eQorICAgICAgICAgKiAgICAgICAgICAgICAgICAyLiB5Yz56CisgICAgICAgICAqCisgICAgICAgICAqIFtdfGVhYmNkICBzdGFydCAtIG5vIG1hdGNoLCBjb3B5IGUgdG8gdHJhbmxhdGVkIGJ1ZmZlcgorICAgICAgICAgKiBbZV18YWJjZCAgbWF0Y2ggcnVsZSAxIC0gY29weSBvdXRwdXQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIFtleHx5XWNkICBtYXRjaCBydWxlIDIgLSBjb3B5IG91dHB1dCAmIGFkanVzdCBjdXJzb3IKKyAgICAgICAgICogW2V4el18ZCAgIG5vIG1hdGNoLCBjb3B5IGQgdG8gdHJhbnNsaXRlcmF0ZWQgYnVmZmVyCisgICAgICAgICAqIFtleHpkXXwgICBkb25lCisgICAgICAgICAqLworICAgICAgICBleHBlY3QoImFiPnh8eTsiICsKKyAgICAgICAgICAgICAgICJ5Yz56IiwKKyAgICAgICAgICAgICAgICJlYWJjZCIsICJleHpkIik7CisKKyAgICAgICAgLyogQW5vdGhlciBzZXQgb2YgcnVsZXM6CisgICAgICAgICAqICAgIDEuIGFiPnh8eXphY3cKKyAgICAgICAgICogICAgMi4gemE+cQorICAgICAgICAgKiAgICAzLiBxYz5yCisgICAgICAgICAqICAgIDQuIGN3Pm4KKyAgICAgICAgICoKKyAgICAgICAgICogW118YWIgICAgICAgUnVsZSAxCisgICAgICAgICAqIFt4fHl6YWN3XSAgIE5vIG1hdGNoCisgICAgICAgICAqIFt4eXx6YWN3XSAgIFJ1bGUgMgorICAgICAgICAgKiBbeHlxfGN3XSAgICBSdWxlIDQKKyAgICAgICAgICogW3h5cW5dfCAgICAgRG9uZQorICAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0KCJhYj54fHl6YWN3OyIgKworICAgICAgICAgICAgICAgInphPnE7IiArCisgICAgICAgICAgICAgICAicWM+cjsiICsKKyAgICAgICAgICAgICAgICJjdz5uIiwKKyAgICAgICAgICAgICAgICJhYiIsICJ4eXFuIik7CisKKyAgICAgICAgLyogVGVzdCBjYXRlZ29yaWVzCisgICAgICAgICAqLworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGR1bW15PVx1RTEwMDsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHZvd2VsPVthZWlvdUFFSU9VXTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGx1PVs6THU6XTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHZvd2VsIH0gJGx1ID4gJyEnOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkdm93ZWwgPiAnJic7IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIichJyB7ICRsdSA+ICdeJzsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGx1ID4gJyonOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhPkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYmNkZWZnQUJDREVGR1UiLCAiJmJjZCZmZyFeKiohXiomIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBpbmxpbmUgc2V0IHN5bnRheCBhbmQgc2V0IHZhcmlhYmxlIHN5bnRheC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5saW5lU2V0KCkgeworICAgICAgICBleHBlY3QoInsgWzpMbDpdIH0geCA+IHk7IFs6TGw6XSA+IHo7IiwgImFBYnhxIiwgInpBeXp6Iik7CisgICAgICAgIGV4cGVjdCgiYVswLTldYiA+IHFycyIsICIxYTdiOSIsICIxcXJzOSIpOworCisgICAgICAgIGV4cGVjdCgiJGRpZ2l0ID0gWzAtOV07IiArCisgICAgICAgICAgICAgICAiJGFscGhhID0gW2EtekEtWl07IiArCisgICAgICAgICAgICAgICAiJGFscGhhbnVtZXJpYyA9IFskZGlnaXQgJGFscGhhXTsiICsgLy8gKioqCisgICAgICAgICAgICAgICAiJHNwZWNpYWwgPSBbXiRhbHBoYW51bWVyaWNdOyIgKyAgICAgLy8gKioqCisgICAgICAgICAgICAgICAiJGFscGhhbnVtZXJpYyA+ICctJzsiICsKKyAgICAgICAgICAgICAgICIkc3BlY2lhbCA+ICcqJzsiLAorCisgICAgICAgICAgICAgICAidGh4LTExMzgiLCAiLS0tKi0tLS0iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgc29tZSBpbnZlcnNlcyBhbmQgY29uZmlybSB0aGF0IHRoZXkgd29yay4gIFdlIGhhdmUgdG8gYmUKKyAgICAgKiBjYXJlZnVsIGhvdyB3ZSBkbyB0aGlzLCBzaW5jZSB0aGUgaW52ZXJzZXMgd2lsbCBub3QgYmUgdHJ1ZQorICAgICAqIGludmVyc2VzIC0tIHdlIGNhbid0IHRocm93IGFueSByYW5kb20gc3RyaW5nIGF0IHRoZSBjb21wb3NpdGlvbgorICAgICAqIG9mIHRoZSB0cmFuc2xpdGVyYXRvcnMgYW5kIGV4cGVjdCB0aGUgaWRlbnRpdHkgZnVuY3Rpb24uICBGIHgKKyAgICAgKiBGJyAhPSBJLiAgSG93ZXZlciwgaWYgd2UgYXJlIGNhcmVmdWwgYWJvdXQgdGhlIGlucHV0LCB3ZSB3aWxsCisgICAgICogZ2V0IHRoZSBleHBlY3RlZCByZXN1bHRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlQmFzZWRJbnZlcnNlKCkgeworICAgICAgICBTdHJpbmcgUlVMRVMgPQorICAgICAgICAgICAgImFiYz56eXg7IiArCisgICAgICAgICAgICAiYWI+eXo7IiArCisgICAgICAgICAgICAiYmM+eng7IiArCisgICAgICAgICAgICAiY2E+eHk7IiArCisgICAgICAgICAgICAiYT54OyIgKworICAgICAgICAgICAgImI+eTsiICsKKyAgICAgICAgICAgICJjPno7IiArCisKKyAgICAgICAgICAgICJhYmM8enl4OyIgKworICAgICAgICAgICAgImFiPHl6OyIgKworICAgICAgICAgICAgImJjPHp4OyIgKworICAgICAgICAgICAgImNhPHh5OyIgKworICAgICAgICAgICAgImE8eDsiICsKKyAgICAgICAgICAgICJiPHk7IiArCisgICAgICAgICAgICAiYzx6OyIgKworCisgICAgICAgICAgICAiIjsKKworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gQ2FyZWZ1bCBoZXJlIC0tIHJhbmRvbSBzdHJpbmdzIHdpbGwgbm90IHdvcmsuICBJZiB3ZSBrZWVwCisgICAgICAgICAgICAvLyB0aGUgbGVmdCBzaWRlIHRvIHRoZSBkb21haW4gYW5kIHRoZSByaWdodCBzaWRlIHRvIHRoZSByYW5nZQorICAgICAgICAgICAgLy8gd2Ugd2lsbCBiZSBva2F5IHRob3VnaCAobGVmdCwgYWJjOyByaWdodCB4eXopLgorICAgICAgICAgICAgImEiLCAieCIsCisgICAgICAgICAgICAiYWJjYWNhYiIsICJ6eXh4eHl5IiwKKyAgICAgICAgICAgICJjYWNjYiIsICJ4eXp6eSIsCisgICAgICAgIH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZndkID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciByZXYgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBSVUxFUywgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgZXhwZWN0KGZ3ZCwgREFUQVtpXSwgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIGV4cGVjdChyZXYsIERBVEFbaSsxXSwgREFUQVtpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCYXNpYyB0ZXN0IG9mIGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RLZXlib2FyZCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBzY2g+WTsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyJwcz55OyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArImNoPng7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiYT5BOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gaW5zZXJ0aW9uLCBidWZmZXIKKyAgICAgICAgICAgICJhIiwgIkEiLAorICAgICAgICAgICAgInAiLCAiQXAiLAorICAgICAgICAgICAgInMiLCAiQXBzIiwKKyAgICAgICAgICAgICJjIiwgIkFwc2MiLAorICAgICAgICAgICAgImEiLCAiQXljQSIsCisgICAgICAgICAgICAicHNjaCIsICJBeWNBWSIsCisgICAgICAgICAgICBudWxsLCAiQXljQVkiLCAvLyBudWxsIG1lYW5zIGZpbmlzaEtleWJvYXJkVHJhbnNsaXRlcmF0aW9uCisgICAgICAgIH07CisKKyAgICAgICAga2V5Ym9hcmRBdXgodCwgREFUQSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFzaWMgdGVzdCBvZiBrZXlib2FyZCB3aXRoIGN1cnNvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5Ym9hcmQyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieWNoPlk7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsicHM+fHk7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiY2g+eDsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyJhPkE7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBpbnNlcnRpb24sIGJ1ZmZlcgorICAgICAgICAgICAgImEiLCAiQSIsCisgICAgICAgICAgICAicCIsICJBcCIsCisgICAgICAgICAgICAicyIsICJBcHMiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXkiLAorICAgICAgICAgICAgImMiLCAiQXBzYyIsIC8vIG1vZGlmaWVkIGZvciByb2xsYmFjayAtICJBeWMiLAorICAgICAgICAgICAgImEiLCAiQXljQSIsCisgICAgICAgICAgICAicCIsICJBeWNBcCIsCisgICAgICAgICAgICAicyIsICJBeWNBcHMiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXljQXkiLAorICAgICAgICAgICAgImMiLCAiQXljQXBzYyIsIC8vIG1vZGlmaWVkIGZvciByb2xsYmFjayAtICJBeWNBeWMiLAorICAgICAgICAgICAgImgiLCAiQXljQVkiLAorICAgICAgICAgICAgbnVsbCwgIkF5Y0FZIiwgLy8gbnVsbCBtZWFucyBmaW5pc2hLZXlib2FyZFRyYW5zbGl0ZXJhdGlvbgorICAgICAgICB9OworCisgICAgICAgIGtleWJvYXJkQXV4KHQsIERBVEEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3Qga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uIHdpdGggYmFjay1yZXBsYWNlbWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5Ym9hcmQzKCkgeworICAgICAgICAvLyBXZSB3YW50IHRoPnogYnV0IHQ+eS4gIEZ1cnRoZXJtb3JlLCBkdXJpbmcga2V5Ym9hcmQKKyAgICAgICAgLy8gdHJhbnNsaXRlcmF0aW9uIHdlIHdhbnQgdD55IHRoZW4geWg+eiBpZiB0LCB0aGVuIGggYXJlCisgICAgICAgIC8vIHR5cGVkLgorICAgICAgICBTdHJpbmcgUlVMRVMgPQorICAgICAgICAgICAgInQ+fHk7IiArCisgICAgICAgICAgICAieWg+ejsiICsKKyAgICAgICAgICAgICIiOworCisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBDb2x1bW4gMTogY2hhcmFjdGVycyB0byBhZGQgdG8gYnVmZmVyIChhcyBpZiB0eXBlZCkKKyAgICAgICAgICAgIC8vIENvbHVtbiAyOiBleHBlY3RlZCBhcHBlYXJhbmNlIG9mIGJ1ZmZlciBhZnRlcgorICAgICAgICAgICAgLy8gICAgICAgICAgIGtleWJvYXJkIHhsaXRlcmF0aW9uLgorICAgICAgICAgICAgImEiLCAiYSIsCisgICAgICAgICAgICAiYiIsICJhYiIsCisgICAgICAgICAgICAidCIsICJhYnQiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiYWJ5IiwKKyAgICAgICAgICAgICJjIiwgImFieWMiLAorICAgICAgICAgICAgInQiLCAiYWJ5Y3QiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiYWJ5Y3kiLAorICAgICAgICAgICAgImgiLCAiYWJ5Y3oiLAorICAgICAgICAgICAgbnVsbCwgImFieWN6IiwgLy8gbnVsbCBtZWFucyBmaW5pc2hLZXlib2FyZFRyYW5zbGl0ZXJhdGlvbgorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBSVUxFUywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGtleWJvYXJkQXV4KHQsIERBVEEpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBrZXlib2FyZEF1eChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmdbXSBEQVRBKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHMgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbG9nOworICAgICAgICAgICAgaWYgKERBVEFbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIocy50b1N0cmluZygpICsgIiArICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgREFUQVtpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIC0+ICIpOworICAgICAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShzLCBpbmRleCwgREFUQVtpXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIocy50b1N0cmluZygpICsgIiA9PiAiKTsKKyAgICAgICAgICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihzLCBpbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHMsIGluZGV4KTsKKyAgICAgICAgICAgIGlmIChzLnRvU3RyaW5nKCkuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2cudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbG9nLnRvU3RyaW5nKCkgKyAiLCBleHBlY3RlZCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIExhdGluLUFyYWJpYyBoYXMgYmVlbiB0ZW1wb3JhcmlseSByZW1vdmVkIHVudGlsIGl0IGNhbiBiZQorICAgIC8vIGRvbmUgY29ycmVjdGx5LgorCisvLyAgcHVibGljIHZvaWQgVGVzdEFyYWJpYygpIHsKKy8vICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKy8vICAgICAgICAgICJBcmFiaWMiLAorLy8gICAgICAgICAgICAgICJcdTA2MmFcdTA2MmFcdTA2NDVcdTA2MmFcdTA2MzkgIisKKy8vICAgICAgICAgICAgICAiXHUwNjI3XHUwNjQ0XHUwNjQ0XHUwNjNhXHUwNjI5ICIrCisvLyAgICAgICAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDYyOFx1MDY0YVx1MDYyOSAiKworLy8gICAgICAgICAgICAgICJcdTA2MjhcdTA2MjhcdTA2NDZcdTA2MzhcdTA2NDUgIisKKy8vICAgICAgICAgICAgICAiXHUwNjQzXHUwNjJhXHUwNjI3XHUwNjI4XHUwNjI4XHUwNjRhXHUwNjI5ICIrCisvLyAgICAgICAgICAgICAgIlx1MDYyY1x1MDY0NVx1MDY0YVx1MDY0NFx1MDYyOSIKKy8vICAgICAgfTsKKworLy8gICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUFyYWJpYyIpOworLy8gICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKy8vICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2ldLCBEQVRBW2krMV0pOworLy8gICAgICB9CisvLyAgfQorCisgICAgLyoqCisgICAgICogQ29tcG9zZSB0aGUgS2FuYSB0cmFuc2xpdGVyYXRvciBmb3J3YXJkIGFuZCByZXZlcnNlIGFuZCB0cnkKKyAgICAgKiBzb21lIHN0cmluZ3MgdGhhdCBzaG91bGQgY29tZSBvdXQgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZEthbmEoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tS2F0YWthbmE7S2F0YWthbmEtTGF0aW4iKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYWFhYSIsICJhYWFhYSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvc2UgdGhlIGhleCB0cmFuc2xpdGVyYXRvcnMgZm9yd2FyZCBhbmQgcmV2ZXJzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRIZXgoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBiID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1BbnkiKTsKKyAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3JbXSB0cmFucyA9IHsgYSwgYiB9OworICAgICAgICAvLyBUcmFuc2xpdGVyYXRvciBhYiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgYWIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleDtIZXgtQW55Iik7CisKKyAgICAgICAgLy8gRG8gc29tZSBiYXNpYyB0ZXN0cyBvZiBiCisgICAgICAgIGV4cGVjdChiLCAiXFx1MDAzMFxcdTAwMzEiLCAiMDEiKTsKKworICAgICAgICBTdHJpbmcgcyA9ICJhYmNkZSI7CisgICAgICAgIGV4cGVjdChhYiwgcywgcyk7CisKKyAgICAgICAgLy8gdHJhbnMgPSBuZXcgVHJhbnNsaXRlcmF0b3JbXSB7IGIsIGEgfTsKKyAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3IgYmEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFucyk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGJhID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1Bbnk7QW55LUhleCIpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzdHIgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcocyk7CisgICAgICAgIGEudHJhbnNsaXRlcmF0ZShzdHIpOworICAgICAgICBleHBlY3QoYmEsIHN0ci50b1N0cmluZygpLCBzdHIudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG8gc29tZSBiYXNpYyB0ZXN0cyBvZiBmaWx0ZXJpbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZpbHRlcmluZygpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgiKTsKKyAgICAgICAgaGV4LnNldEZpbHRlcihuZXcgVW5pY29kZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGMgIT0gJ2MnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25Ubykge30KKyAgICAgICAgfSk7CisgICAgICAgIFN0cmluZyBzID0gImFiY2RlIjsKKyAgICAgICAgU3RyaW5nIG91dCA9IGhleC50cmFuc2xpdGVyYXRlKHMpOworICAgICAgICBTdHJpbmcgZXhwID0gIlxcdTAwNjFcXHUwMDYyY1xcdTAwNjRcXHUwMDY1IjsKKyAgICAgICAgaWYgKG91dC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAgIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkZBSUw6IFwiIiArIG91dCArICJcIiwgd2FudGVkIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBhbmNob3JzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFuY2hvcnMoKSB7CisgICAgICAgIGV4cGVjdCgiXmFiICA+IDAxIDsiICsKKyAgICAgICAgICAgICAgICIgYWIgID4gfDggOyIgKworICAgICAgICAgICAgICAgIiAgYiAgPiBrIDsiICsKKyAgICAgICAgICAgICAgICIgOHgkID4gNDUgOyIgKworICAgICAgICAgICAgICAgIiA4eCAgPiA3NyA7IiwKKworICAgICAgICAgICAgICAgImFiYWJiYWJ4YWJ4IiwKKyAgICAgICAgICAgICAgICIwMThrNzc0NSIpOworICAgICAgICBleHBlY3QoIiRzID0gW3okXSA7IiArCisgICAgICAgICAgICAgICAiJHN7YWIgICAgPiAwMSA7IiArCisgICAgICAgICAgICAgICAiICAgYWIgICAgPiB8OCA7IiArCisgICAgICAgICAgICAgICAiICAgIGIgICAgPiBrIDsiICsKKyAgICAgICAgICAgICAgICIgICA4eH0kcyA+IDQ1IDsiICsKKyAgICAgICAgICAgICAgICIgICA4eCAgICA+IDc3IDsiLAorCisgICAgICAgICAgICAgICAiYWJ6YWJhYmJhYnh6YWJ4YWJ4IiwKKyAgICAgICAgICAgICAgICIwMXowMThrNDV6MDF4NDUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHBhdHRlcm4gcXVvdGluZyBhbmQgZXNjYXBlIG1lY2hhbmlzbXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5RdW90aW5nKCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJcdTRFMDE+J1ttYWxlIGFkdWx0XSciLCAiXHU0RTAxIiwgIlttYWxlIGFkdWx0XSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybjogIiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdyZXNzaW9uIHRlc3QgZm9yIGJ1Z3MgZm91bmQgaW4gR3JlZWsgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKMjc3KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBnbCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJHcmVlay1MYXRpbjsgTkZEOyBbOk06XVJlbW92ZTsgTkZDIik7CisKKyAgICAgICAgY2hhciBzaWdtYSA9IChjaGFyKTB4M0MzOworICAgICAgICBjaGFyIHVwc2lsb24gPSAoY2hhcikweDNDNTsKKyAgICAgICAgY2hhciBudSA9IChjaGFyKTB4M0JEOworICAgICAgICAvLyBub3QgdXNlZCBjaGFyIFBISSA9IChjaGFyKTB4M0E2OworICAgICAgICBjaGFyIGFscGhhID0gKGNoYXIpMHgzQjE7CisgICAgICAgIC8vIG5vdCB1c2VkIGNoYXIgb21lZ2EgPSAoY2hhcikweDNDOTsKKyAgICAgICAgLy8gbm90IHVzZWQgY2hhciBvbWljcm9uID0gKGNoYXIpMHgzQkY7CisgICAgICAgIC8vIG5vdCB1c2VkIGNoYXIgZXBzaWxvbiA9IChjaGFyKTB4M0I1OworCisgICAgICAgIC8vIHNpZ21hIHVwc2lsb24gbnUgLT4gc3luCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbWEpLmFwcGVuZCh1cHNpbG9uKS5hcHBlbmQobnUpOworICAgICAgICBTdHJpbmcgc3luID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdChnbCwgc3luLCAic3luIik7CisKKyAgICAgICAgLy8gc2lnbWEgYWxwaGEgdXBzaWxvbiBudSAtPiBzYXVuCisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbWEpLmFwcGVuZChhbHBoYSkuYXBwZW5kKHVwc2lsb24pLmFwcGVuZChudSk7CisgICAgICAgIFN0cmluZyBzYXluID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdChnbCwgc2F5biwgInNhdW4iKTsKKworICAgICAgICAvLyBBZ2FpbiwgdXNpbmcgYSBzbWFsbGVyIHJ1bGUgc2V0CisgICAgICAgIFN0cmluZyBydWxlcyA9CisgICAgICAgICAgICAgICAgICAgICIkYWxwaGEgICA9IFx1MDNCMTsiICsKKyAgICAgICAgICAgICAgICAgICAgIiRudSAgICAgID0gXHUwM0JEOyIgKworICAgICAgICAgICAgICAgICAgICAiJHNpZ21hICAgPSBcdTAzQzM7IiArCisgICAgICAgICAgICAgICAgICAgICIkeXBzaWxvbiA9IFx1MDNDNTsiICsKKyAgICAgICAgICAgICAgICAgICAgIiR2b3dlbCAgID0gW2FlaW91QUVJT1UkYWxwaGEkeXBzaWxvbl07IiArCisgICAgICAgICAgICAgICAgICAgICJzIDw+ICAgICAgICAgICAkc2lnbWE7IiArCisgICAgICAgICAgICAgICAgICAgICJhIDw+ICAgICAgICAgICAkYWxwaGE7IiArCisgICAgICAgICAgICAgICAgICAgICJ1IDw+ICAkdm93ZWwgeyAkeXBzaWxvbjsiICsKKyAgICAgICAgICAgICAgICAgICAgInkgPD4gICAgICAgICAgICR5cHNpbG9uOyIgKworICAgICAgICAgICAgICAgICAgICAibiA8PiAgICAgICAgICAgJG51OyI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIG1pbmkgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMKKyAgICAgICAgICAgICgibWluaSIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgZXhwZWN0KG1pbmksIHN5biwgInN5biIpOworICAgICAgICBleHBlY3QobWluaSwgc2F5biwgInNhdW4iKTsKKworLy98ICAgIC8vIFRyYW5zbGl0ZXJhdGUgdGhlIEdyZWVrIGxvY2FsZSBkYXRhCisvL3wgICAgTG9jYWxlIGVsKCJlbCIpOworLy98ICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bXMoZWwsIHN0YXR1cyk7CisvL3wgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7IGVycmxuKCJGQUlMOiBUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3RvciBmYWlsZWQiKTsgcmV0dXJuOyB9CisvL3wgICAgaW50MzJfdCBpLCBjb3VudDsKKy8vfCAgICBjb25zdCBVbmljb2RlU3RyaW5nKiBkYXRhID0gc3ltcy5nZXRNb250aHMoY291bnQpOworLy98ICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKy8vfCAgICAgICAgaWYgKGRhdGFbaV0ubGVuZ3RoKCkgPT0gMCkgeworLy98ICAgICAgICAgICAgY29udGludWU7CisvL3wgICAgICAgIH0KKy8vfCAgICAgICAgVW5pY29kZVN0cmluZyBvdXQoZGF0YVtpXSk7CisvL3wgICAgICAgIGdsLT50cmFuc2xpdGVyYXRlKG91dCk7CisvL3wgICAgICAgIGJvb2xfdCBvayA9IFRSVUU7CisvL3wgICAgICAgIGlmIChkYXRhW2ldLmxlbmd0aCgpID49IDIgJiYgb3V0Lmxlbmd0aCgpID49IDIgJiYKKy8vfCAgICAgICAgICAgIHVfaXN1cHBlcihkYXRhW2ldLmNoYXJBdCgwKSkgJiYgdV9pc2xvd2VyKGRhdGFbaV0uY2hhckF0KDEpKSkgeworLy98ICAgICAgICAgICAgaWYgKCEodV9pc3VwcGVyKG91dC5jaGFyQXQoMCkpICYmIHVfaXNsb3dlcihvdXQuY2hhckF0KDEpKSkpIHsKKy8vfCAgICAgICAgICAgICAgICBvayA9IEZBTFNFOworLy98ICAgICAgICAgICAgfQorLy98ICAgICAgICB9CisvL3wgICAgICAgIGlmIChvaykgeworLy98ICAgICAgICAgICAgbG9nbG4ocHJldHRpZnkoZGF0YVtpXSArICIgLT4gIiArIG91dCkpOworLy98ICAgICAgICB9IGVsc2UgeworLy98ICAgICAgICAgICAgZXJybG4oVW5pY29kZVN0cmluZygiRkFJTDogIikgKyBwcmV0dGlmeShkYXRhW2ldICsgIiAtPiAiICsgb3V0KSk7CisvL3wgICAgICAgIH0KKy8vfCAgICB9CisgICAgfQorCisvLyAgICAvKioKKy8vICAgICAqIFByZWZpeCwgc3VmZml4IHN1cHBvcnQgaW4gaGV4IHRyYW5zbGl0ZXJhdG9ycworLy8gICAgICovCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0SjI0MygpIHsKKy8vICAgICAgICAvLyBUZXN0IGRlZmF1bHQgSGV4LUFueSwgd2hpY2ggc2hvdWxkIGhhbmRsZQorLy8gICAgICAgIC8vIFxcdSwgXFxVLCB1KywgYW5kIFUrCisvLyAgICAgICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgaGV4ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCk7CisvLyAgICAgICAgZXhwZWN0KGhleCwgIlxcdTAwNDErXFxVMDA0Mix1KzAwNDN1dSswMDQ0eiIsICJBK0IsQ3VEeiIpOworLy8KKy8vICAgICAgICAvLyBUcnkgYSBjdXN0b20gSGV4LUFueQorLy8gICAgICAgIC8vIFxcdVhYWFggYW5kICYjeFhYWFg7CisvLyAgICAgICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgaGV4MiA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiXFxcXHUjIyMwOyZcXCN4IyMjMFxcOyIpOworLy8gICAgICAgIGV4cGVjdChoZXgyLCAiXFx1NjFcXHUwNjJcXHUwMDYzXFx1MDA2NDVcXHU2NngmI3gzMDsmI3gwMzE7JiN4MDAzMjsmI3gwMDAzMzsiLAorLy8gICAgICAgICAgICAgICAiYWJjZDVmeDAxMiYjeDAwMDMzOyIpOworLy8KKy8vICAgICAgICAvLyBUcnkgY3VzdG9tIEFueS1IZXggKGRlZmF1bHQgaXMgdGVzdGVkIGVsc2V3aGVyZSkKKy8vICAgICAgICBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciBoZXgzID0gbmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKCImXFwjeCMjIzA7Iik7CisvLyAgICAgICAgZXhwZWN0KGhleDMsICIwMTIiLCAiJiN4MzA7JiN4MzE7JiN4MzI7Iik7CisvLyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SjMyOSgpIHsKKworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IEJvb2xlYW4oZmFsc2UpLCAiYSA+IGI7IGMgPiBkIiwKKyAgICAgICAgICAgIG5ldyBCb29sZWFuKHRydWUpLCAgImEgPiBiOyBubyBvcGVyYXRvcjsgYyA+IGQiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nIGVyciA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nKSBEQVRBW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnIgPSBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gZ290RXJyb3IgPSAoZXJyICE9IG51bGwpOworICAgICAgICAgICAgU3RyaW5nIGRlc2MgPSAoU3RyaW5nKSBEQVRBW2krMV0gKworICAgICAgICAgICAgICAgIChnb3RFcnJvciA/ICgiIC0+IGVycm9yOiAiICsgZXJyKSA6ICIgLT4gbm8gZXJyb3IiKTsKKyAgICAgICAgICAgIGlmICgoZXJyICE9IG51bGwpID09ICgoQm9vbGVhbilEQVRBW2ldKS5ib29sZWFuVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogICAiICsgZGVzYyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZGVzYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHNlZ21lbnRzIGFuZCBzZWdtZW50IHJlZmVyZW5jZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNlZ21lbnRzKCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIoW2Etel0pICcuJyAoWzAtOV0pID4gJDIgJy0nICQxIiwKKyAgICAgICAgICAgICJhYmMuMTIzLnh5ei40NTYiLAorICAgICAgICAgICAgImFiMS1jMjMueHk0LXo1NiIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybjogIiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGN1cnNvciBwb3NpdGlvbmluZyBvdXRzaWRlIG9mIHRoZSBrZXkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3Vyc29yT2Zmc2V0KCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJwcmUge2FscGhhfSBwb3N0ID4gfCBAIEFMUEhBIDsiICsKKyAgICAgICAgICAgICJlQUxQSEEgPiBiZXRhIDsiICsKKyAgICAgICAgICAgICJwcmUge2JldGF9IHBvc3QgPiBCRVRBIEBAIHwgOyIgKworICAgICAgICAgICAgInBvc3QgPiB4eXoiLAorCisgICAgICAgICAgICAicHJlYWxwaGFwb3N0IHByZWJldGFwb3N0IiwKKyAgICAgICAgICAgICJwcmJldGF4eXogcHJlQkVUQXBvc3QiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm46ICIgKyBVdGlsaXR5LmVzY2FwZShEQVRBW2ldKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgREFUQVtpXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB6ZXJvIGxlbmd0aCBhbmQgPiAxIGNoYXIgbGVuZ3RoIHZhcmlhYmxlIHZhbHVlcy4gIFRlc3QKKyAgICAgKiB1c2Ugb2YgdmFyaWFibGUgcmVmcyBpbiBVbmljb2RlU2V0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QXJiaXRyYXJ5VmFyaWFibGVWYWx1ZXMoKSB7CisgICAgICAgIC8vIEFycmF5IG9mIDNuIGl0ZW1zCisgICAgICAgIC8vIEVhY2ggaXRlbSBpcyA8cnVsZXM+LCA8aW5wdXQ+LCA8ZXhwZWN0ZWQgb3V0cHV0PgorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgIiRhYmUgPSBhYjsiICsKKyAgICAgICAgICAgICIkcGF0ID0geFt5WV16OyIgKworICAgICAgICAgICAgIiRsbCAgPSAnYS16JzsiICsKKyAgICAgICAgICAgICIkbGxaID0gWyRsbF07IiArCisgICAgICAgICAgICAiJGxsWSA9IFskbGwkcGF0XTsiICsKKyAgICAgICAgICAgICIkZW1wID0gOyIgKworCisgICAgICAgICAgICAiJGFiZSA+IEFCRTsiICsKKyAgICAgICAgICAgICIkcGF0ID4gRU5EOyIgKworICAgICAgICAgICAgIiRsbFogPiAxOyIgKworICAgICAgICAgICAgIiRsbFkgPiAyOyIgKworICAgICAgICAgICAgIjckZW1wIDggPiA5OyIgKworICAgICAgICAgICAgIiIsCisKKyAgICAgICAgICAgICJhYiB4WXp4eXogc3RZNzgiLAorICAgICAgICAgICAgIkFCRSBFTkRFTkQgMTEyOSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybjogIiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25maXJtIHRoYXQgdGhlIGNvbnRleHRTdGFydCwgY29udGV4dExpbWl0LCBzdGFydCwgYW5kIGxpbWl0CisgICAgICogYmVoYXZlIGNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UG9zaXRpb25IYW5kbGluZygpIHsKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzIDxydWxlcz4sIDxpbnB1dD4sIDxleHBlY3RlZCBvdXRwdXQ+CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiYXt0fSA+IFNTIDsge3R9YiA+IFVVIDsge3R9ID4gVFQgOyIsCisgICAgICAgICAgICAieHRhdCB0eHRiIiwgLy8gcG9zIDAsOSwwLDkKKyAgICAgICAgICAgICJ4VFRhU1MgVFR4VVViIiwKKworICAgICAgICAgICAgImF7dH0gPiBTUyA7IHt0fWIgPiBVVSA7IHt0fSA+IFRUIDsiLAorICAgICAgICAgICAgInh0YXQgdHh0YiIsIC8vIHBvcyAyLDksMyw4CisgICAgICAgICAgICAieHRhU1MgVFR4VVViIiwKKworICAgICAgICAgICAgImF7dH0gPiBTUyA7IHt0fWIgPiBVVSA7IHt0fSA+IFRUIDsiLAorICAgICAgICAgICAgInh0YXQgdHh0YiIsIC8vIHBvcyAzLDgsMyw4CisgICAgICAgICAgICAieHRhVFQgVFR4VFRiIiwKKyAgICAgICAgfTsKKworICAgICAgICAvLyBBcnJheSBvZiA0biBwb3NpdGlvbnMgLS0gdGhlc2UgZ28gd2l0aCB0aGUgREFUQSBhcnJheQorICAgICAgICAvLyBUaGV5IGFyZTogY29udGV4dFN0YXJ0LCBjb250ZXh0TGltaXQsIHN0YXJ0LCBsaW1pdAorICAgICAgICBpbnRbXSBQT1MgPSB7CisgICAgICAgICAgICAwLCA5LCAwLCA5LAorICAgICAgICAgICAgMiwgOSwgMywgOCwKKyAgICAgICAgICAgIDMsIDgsIDMsIDgsCisgICAgICAgIH07CisKKyAgICAgICAgaW50IG4gPSBEQVRBLmxlbmd0aC8zOworICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgaSsrKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgREFUQVszKmldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigKKyAgICAgICAgICAgICAgICBQT1NbNCppXSwgUE9TWzQqaSsxXSwgUE9TWzQqaSsyXSwgUE9TWzQqaSszXSk7CisgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKERBVEFbMyppKzFdKTsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlLCBwb3MpOworICAgICAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZSwgcG9zKTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVszKmkrMl07CisgICAgICAgICAgICBleHBlY3RBdXgoVXRpbGl0eS5lc2NhcGUoREFUQVszKmldKSwKKyAgICAgICAgICAgICAgICAgICAgICBEQVRBWzMqaSsxXSwKKyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHApLAorICAgICAgICAgICAgICAgICAgICAgIGV4cCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBIaXJhZ2FuYS1LYXRha2FuYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SGlyYWdhbmFLYXRha2FuYSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaGsgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGlyYWdhbmEtS2F0YWthbmEiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3Iga2ggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiS2F0YWthbmEtSGlyYWdhbmEiKTsKKworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgImhrInwia2gifCJib3RoIiwgPEhpcmFnYW5hPiwgPEthdGFrYW5hPgorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgImJvdGgiLAorICAgICAgICAgICAgIlx1MzA0Mlx1MzA5MFx1MzA5OVx1MzA5Mlx1MzA1MCIsCisgICAgICAgICAgICAiXHUzMEEyXHUzMEY4XHUzMEYyXHUzMEIwIiwKKworICAgICAgICAgICAgImtoIiwKKyAgICAgICAgICAgICJcdTMwN0NcdTMwNTFcdTMwNjBcdTMwNDJcdTMwOTNcdTMwRkMiLAorICAgICAgICAgICAgIlx1MzBEQ1x1MzBGNlx1MzBDMFx1MzBGQ1x1MzBGM1x1MzBGQyIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBzd2l0Y2ggKERBVEFbaV0uY2hhckF0KDApKSB7CisgICAgICAgICAgICBjYXNlICdoJzogLy8gSGlyYWdhbmEtS2F0YWthbmEKKyAgICAgICAgICAgICAgICBleHBlY3QoaGssIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2snOiAvLyBLYXRha2FuYS1IaXJhZ2FuYQorICAgICAgICAgICAgICAgIGV4cGVjdChraCwgREFUQVtpKzJdLCBEQVRBW2krMV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnYic6IC8vIGJvdGgKKyAgICAgICAgICAgICAgICBleHBlY3QoaGssIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgICAgICAgICBleHBlY3Qoa2gsIERBVEFbaSsyXSwgREFUQVtpKzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvcHlKNDc2KCkgeworICAgICAgICAvLyBUaGlzIGlzIGEgQysrLW9ubHkgY29weSBjb25zdHJ1Y3RvciB0ZXN0CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBpbnRlci1JbmRpYyB0cmFuc2xpdGVyYXRvcnMuICBUaGVzZSBhcmUgY29tcG9zZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEludGVySW5kaWMoKSB7CisgICAgICAgIFN0cmluZyBJRCA9ICJEZXZhbmFnYXJpLUd1amFyYXRpIjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGcgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIGlmIChkZyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0SW5zdGFuY2UoIiArIElEICsgIikgcmV0dXJuZWQgbnVsbCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBpZCA9IGRnLmdldElEKCk7CisgICAgICAgIGlmICghaWQuZXF1YWxzKElEKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpLmdldElEKCkgPT4gIiArIGlkKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZGV2ID0gIlx1MDkwMVx1MDkwQlx1MDkyNSI7CisgICAgICAgIFN0cmluZyBndWogPSAiXHUwQTgxXHUwQThCXHUwQUE1IjsKKyAgICAgICAgZXhwZWN0KGRnLCBkZXYsIGd1aik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmaWx0ZXIgc3ludGF4IGluIElEcy4gKEoyMykKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RmlsdGVySURzKCkgeworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgIlthZWlvdV1BbnktSGV4IiwgLy8gSUQKKyAgICAgICAgICAgICJbYWVpb3VdSGV4LUFueSIsIC8vIGV4cGVjdGVkIGludmVyc2UgSUQKKyAgICAgICAgICAgICJxdWl6emljYWwiLCAgICAgIC8vIHNyYworICAgICAgICAgICAgInFcXHUwMDc1XFx1MDA2OXp6XFx1MDA2OWNcXHUwMDYxbCIsIC8vIGV4cGVjdGVkIElELnRyYW5zbGl0KHNyYykKKworICAgICAgICAgICAgIlthZWlvdV1BbnktSGV4O1teNV1IZXgtQW55IiwKKyAgICAgICAgICAgICJbXjVdQW55LUhleDtbYWVpb3VdSGV4LUFueSIsCisgICAgICAgICAgICAicXVpenppY2FsIiwKKyAgICAgICAgICAgICJxXFx1MDA3NWl6emljYWwiLAorCisgICAgICAgICAgICAiW2FiY11OdWxsIiwKKyAgICAgICAgICAgICJbYWJjXU51bGwiLAorICAgICAgICAgICAgInh5eiIsCisgICAgICAgICAgICAieHl6IiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIFN0cmluZyBJRCA9IERBVEFbaV07CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICAgICAgZXhwZWN0KHQsIERBVEFbaSsyXSwgREFUQVtpKzNdKTsKKworICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIElECisgICAgICAgICAgICBpZiAoIUlELmVxdWFscyh0LmdldElEKCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpLmdldElEKCkgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgdC5nZXRJRCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIGludmVyc2UKKyAgICAgICAgICAgIFN0cmluZyB1SUQgPSBEQVRBW2krMV07CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBpZiAodSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBJRCArICIuZ2V0SW52ZXJzZSgpIHJldHVybmVkIE5VTEwiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIXUuZ2V0SUQoKS5lcXVhbHModUlEKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgSUQgKyAiLmdldEludmVyc2UoKS5nZXRJRCgpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHUuZ2V0SUQoKSArICIsIGV4cGVjdGVkICIgKyB1SUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgY2FzZSBtYXBwaW5nIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZU1hcCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdG9VcHBlciA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LVVwcGVyW154eXpYWVpdIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRvTG93ZXIgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1Mb3dlclteeHl6WFlaXSIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0b1RpdGxlID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktVGl0bGVbXnh5elhZWl0iKTsKKworICAgICAgICBleHBlY3QodG9VcHBlciwgIlRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9ncy4iLAorICAgICAgICAgICAgICAgIlRIRSBRVUlDSyBCUk9XTiBGT3ggSlVNUEVEIE9WRVIgVEhFIExBenkgRE9HUy4iKTsKKyAgICAgICAgZXhwZWN0KHRvTG93ZXIsICJUaGUgcXVJY2sgYnJvd24gZk9YIGpVTVBFRCBPVkVSIFRIRSBMQXpZIGRvZ3MuIiwKKyAgICAgICAgICAgICAgICJ0aGUgcXVpY2sgYnJvd24gZm9YIGp1bXBlZCBvdmVyIHRoZSBsYXpZIGRvZ3MuIik7CisgICAgICAgIGV4cGVjdCh0b1RpdGxlLCAidGhlIHF1aWNrIGJyb3duIGZvWCBjYU4nVCBqdW1wIG92ZXIgdGhlIGxhWnkgZG9ncy4iLAorICAgICAgICAgICAgICAgIlRoZSBRdWljayBCcm93biBGb1ggQ2FuJ3QgSnVtcCBPdmVyIFRoZSBMYVp5IERvZ3MuIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgbmFtZSBtYXBwaW5nIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZU1hcCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdW5pMm5hbWUgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OYW1lW15hYmNdIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIG5hbWUydW5pID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJOYW1lLUFueSIpOworCisgICAgICAgIGV4cGVjdCh1bmkybmFtZSwgIlx1MDBBMGFiY1x1NEUwMVx1MDBCNVx1MEE4MVx1RkZGRFx1MDAwNFx1MDAwOVx1MDA4MVx1RkZGRiIsCisgICAgICAgICAgICAgICAiXFxOe05PLUJSRUFLIFNQQUNFfWFiY1xcTntDSksgVU5JRklFRCBJREVPR1JBUEgtNEUwMX1cXE57TUlDUk8gU0lHTn1cXE57R1VKQVJBVEkgU0lHTiBDQU5EUkFCSU5EVX1cXE57UkVQTEFDRU1FTlQgQ0hBUkFDVEVSfVxcTntFTkQgT0YgVFJBTlNNSVNTSU9OfVxcTntDSEFSQUNURVIgVEFCVUxBVElPTn1cXE57PGNvbnRyb2wtMDA4MT59XFxOezxub25jaGFyYWN0ZXItRkZGRj59Iik7CisgICAgICAgIGV4cGVjdChuYW1lMnVuaSwgIntcXE4geyBOTy1CUkVBSyBTUEFDRX1hYmNcXE57ICBDSksgVU5JRklFRCAgSURFT0dSQVBILTRFMDEgIH1cXE57eFxcTntNSUNSTyBTSUdOfVxcTntHVUpBUkFUSSBTSUdOIENBTkRSQUJJTkRVfVxcTntSRVBMQUNFTUVOVCBDSEFSQUNURVJ9XFxOe0VORCBPRiBUUkFOU01JU1NJT059XFxOe0NIQVJBQ1RFUiBUQUJVTEFUSU9OfVxcTns8Y29udHJvbC0wMDgxPn1cXE57PG5vbmNoYXJhY3Rlci1GRkZGPn1cXE57PGNvbnRyb2wtMDAwND59XFxOeyIsCisgICAgICAgICAgICAgICAie1x1MDBBMGFiY1x1NEUwMVxcTnt4XHUwMEI1XHUwQTgxXHVGRkZEXHUwMDA0XHUwMDA5XHUwMDgxXHVGRkZGXHUwMDA0XFxOeyIpOworCisgICAgICAgIC8vIHJvdW5kIHRyaXAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTmFtZTtOYW1lLUFueSIpOworCisgICAgICAgIFN0cmluZyBzID0gIntcdTAwQTBhYmNcdTRFMDFcXE57eFx1MDBCNVx1MEE4MVx1RkZGRFx1MDAwNFx1MDAwOVx1MDA4MVx1RkZGRlx1MDAwNFxcTnsiOworICAgICAgICBleHBlY3QodCwgcywgcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBsaWJlcmFsaXplZCBJRCBzeW50YXguICAxMDA2YworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMaWJlcmFsaXplZElEKCkgeworICAgICAgICAvLyBTb21lIHRlc3QgY2FzZXMgaGF2ZSBhbiBleHBlY3RlZCBnZXRJRCgpIHZhbHVlIG9mIE5VTEwuICBUaGlzCisgICAgICAgIC8vIG1lYW5zIEkgaGF2ZSBkaXNhYmxlZCB0aGUgdGVzdCBjYXNlIGZvciBub3cuICBUaGlzIHN0dWZmIGlzCisgICAgICAgIC8vIHN0aWxsIHVuZGVyIGRldmVsb3BtZW50LCBhbmQgSSBoYXZlbid0IGRlY2lkZWQgd2hldGhlciB0byBtYWtlCisgICAgICAgIC8vIGdldElEKCkgcmV0dXJuIGNhbm9uaWNhbCBjYXNlIHlldC4gIEl0IHdpbGwgYWxsIGdldCByZXdyaXR0ZW4KKyAgICAgICAgLy8gd2l0aCB0aGUgbW92ZSB0byBTb3VyY2UtVGFyZ2V0L1ZhcmlhbnQgSURzIGFueXdheS4gW2FsaXVdCisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAibGF0aW4tZ3JlZWsiLCBudWxsIC8qIkxhdGluLUdyZWVrIiovLCAiY2FzZSBpbnNlbnNpdGl2aXR5IiwKKyAgICAgICAgICAgICIgIE51bGwgICIsICJOdWxsIiwgIndoaXRlc3BhY2UiLAorICAgICAgICAgICAgIiBMYXRpblthLXpdLUdyZWVrICAiLCAiW2Etel1MYXRpbi1HcmVlayIsICJpbmxpbmUgZmlsdGVyIiwKKyAgICAgICAgICAgICIgIG51bGwgIDsgbGF0aW4tZ3JlZWsgICIsIG51bGwgLyoiTnVsbDtMYXRpbi1HcmVlayIqLywgImNvbXBvdW5kIHdoaXRlc3BhY2UiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoREFUQVtpXSk7CisgICAgICAgICAgICAgICAgaWYgKERBVEFbaSsxXSA9PSBudWxsIHx8IERBVEFbaSsxXS5lcXVhbHModC5nZXRJRCgpKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBEQVRBW2krMl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGNyZWF0ZSBJRCBcIiIgKyBEQVRBW2ldICsgIlwiID0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSArICJcIiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpKzJdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBjcmVhdGUgSUQgXCIiICsgREFUQVtpXSArICJcIiA9PiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldElEKCkgKyAiXCIsIGV4cCBcIiIgKyBEQVRBW2krMV0gKyAiXCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpKzJdICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGNyZWF0ZSBJRCBcIiIgKyBEQVRBW2ldICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3JlYXRlSW5zdGFuY2UoKSB7CisgICAgICAgIFN0cmluZyBGT1JXQVJEID0gIkYiOworICAgICAgICBTdHJpbmcgUkVWRVJTRSA9ICJSIjsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIENvbHVtbiAxOiBpZAorICAgICAgICAgICAgLy8gQ29sdW1uIDI6IGRpcmVjdGlvbgorICAgICAgICAgICAgLy8gQ29sdW1uIDM6IGV4cGVjdGVkIElELCBvciAiIiBpZiBleHBlY3QgZmFpbHVyZQorICAgICAgICAgICAgIkxhdGluLUhhbmd1bCIsIFJFVkVSU0UsICJIYW5ndWwtTGF0aW4iLCAvLyBKQiM5MTIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSkIjMjY4OTogYmFkIGNvbXBvdW5kIGNhdXNlcyBjcmFzaAorICAgICAgICAgICAgIkludmFsaWRTb3VyY2UtSW52YWxpZFRhcmdldCIsIEZPUldBUkQsICIiLAorICAgICAgICAgICAgIkludmFsaWRTb3VyY2UtSW52YWxpZFRhcmdldCIsIFJFVkVSU0UsICIiLAorICAgICAgICAgICAgIkhleC1Bbnk7SW52YWxpZFNvdXJjZS1JbnZhbGlkVGFyZ2V0IiwgRk9SV0FSRCwgIiIsCisgICAgICAgICAgICAiSGV4LUFueTtJbnZhbGlkU291cmNlLUludmFsaWRUYXJnZXQiLCBSRVZFUlNFLCAiIiwKKyAgICAgICAgICAgICJJbnZhbGlkU291cmNlLUludmFsaWRUYXJnZXQ7SGV4LUFueSIsIEZPUldBUkQsICIiLAorICAgICAgICAgICAgIkludmFsaWRTb3VyY2UtSW52YWxpZFRhcmdldDtIZXgtQW55IiwgUkVWRVJTRSwgIiIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgIG51bGwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgREFUQVtpXSE9bnVsbDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIGlkPURBVEFbaV07CisgICAgICAgICAgICBpbnQgZGlyID0gKERBVEFbaSsxXT09Rk9SV0FSRCk/CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRDpUcmFuc2xpdGVyYXRvci5SRVZFUlNFOworICAgICAgICAgICAgU3RyaW5nIGV4cElEPURBVEFbaSsyXTsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCxkaXIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgZSA9IGUxOworICAgICAgICAgICAgICAgIHQgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIG5ld0lEID0gKHQhPW51bGwpP3QuZ2V0SUQoKToiIjsKKyAgICAgICAgICAgIGJvb2xlYW4gb2sgPSAobmV3SUQuZXF1YWxzKGV4cElEKSk7CisgICAgICAgICAgICBpZiAodD09bnVsbCkgeworICAgICAgICAgICAgICAgIG5ld0lEID0gZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IGNyZWF0ZUluc3RhbmNlKCIgKworICAgICAgICAgICAgICAgICAgICAgIGlkICsgIiwiICsgREFUQVtpKzFdICsgIikgPT4gIiArIG5ld0lEKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUluc3RhbmNlKCIgKworICAgICAgICAgICAgICAgICAgICAgIGlkICsgIiwiICsgREFUQVtpKzFdICsgIikgPT4gIiArIG5ld0lEICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgbm9ybWFsaXphdGlvbiB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yKCkgeworICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIFRXTyBUQUJMRVMgQVJFIENPUElFRCBGUk9NIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXIuQmFzaWNUZXN0CisgICAgICAgIC8vIFBMRUFTRSBLRUVQIFRIRU0gSU4gU1lOQyBXSVRIIEJhc2ljVGVzdC4KKyAgICAgICAgU3RyaW5nW11bXSBDQU5PTiA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgICAgICB7ImNhdCIsICAgICAgICAgICAgICAgICJjYXQiLCAgICAgICAgICAgICAgICAiY2F0IiAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7Ilx1MDBlMGFyZHZhcmsiLCAgICAgICJhXHUwMzAwYXJkdmFyayIsICAgICAiXHUwMGUwYXJkdmFyayIgICAgIH0sCisKKyAgICAgICAgICAgIHsiXHUxZTBhIiwgICAgICAgICAgICAgIkRcdTAzMDciLCAgICAgICAgICAgICJcdTFlMGEiICAgICAgICAgICAgfSwgLy8gRC1kb3RfYWJvdmUKKyAgICAgICAgICAgIHsiRFx1MDMwNyIsICAgICAgICAgICAgIkRcdTAzMDciLCAgICAgICAgICAgICJcdTFlMGEiICAgICAgICAgICAgfSwgLy8gRCBkb3RfYWJvdmUKKworICAgICAgICAgICAgeyJcdTFlMGNcdTAzMDciLCAgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBELWRvdF9iZWxvdyBkb3RfYWJvdmUKKyAgICAgICAgICAgIHsiXHUxZTBhXHUwMzIzIiwgICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICJcdTFlMGNcdTAzMDciICAgICAgfSwgLy8gRC1kb3RfYWJvdmUgZG90X2JlbG93CisgICAgICAgICAgICB7IkRcdTAzMDdcdTAzMjMiLCAgICAgICJEXHUwMzIzXHUwMzA3IiwgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQgZG90X2JlbG93IGRvdF9hYm92ZQorCisgICAgICAgICAgICB7Ilx1MWUxMFx1MDMwN1x1MDMyMyIsICJEXHUwMzI3XHUwMzIzXHUwMzA3IiwiXHUxZTEwXHUwMzIzXHUwMzA3In0sIC8vIEQgZG90X2JlbG93IGNlZGlsbGEgZG90X2Fib3ZlCisgICAgICAgICAgICB7IkRcdTAzMDdcdTAzMjhcdTAzMjMiLCJEXHUwMzI4XHUwMzIzXHUwMzA3IiwiXHUxZTBjXHUwMzI4XHUwMzA3In0sIC8vIEQgZG90X2Fib3ZlIG9nb25layBkb3RfYmVsb3cKKworICAgICAgICAgICAgeyJcdTFFMTQiLCAgICAgICAgICAgICAiRVx1MDMwNFx1MDMwMCIsICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3Jvbi1ncmF2ZQorICAgICAgICAgICAgeyJcdTAxMTJcdTAzMDAiLCAgICAgICAiRVx1MDMwNFx1MDMwMCIsICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3JvbiArIGdyYXZlCisgICAgICAgICAgICB7Ilx1MDBjOFx1MDMwNCIsICAgICAgICJFXHUwMzAwXHUwMzA0IiwgICAgICAiXHUwMGM4XHUwMzA0IiAgICAgIH0sIC8vIEUtZ3JhdmUgKyBtYWNyb24KKworICAgICAgICAgICAgeyJcdTIxMmIiLCAgICAgICAgICAgICAiQVx1MDMwYSIsICAgICAgICAgICAgIlx1MDBjNSIgICAgICAgICAgICB9LCAvLyBhbmdzdHJvbV9zaWduCisgICAgICAgICAgICB7Ilx1MDBjNSIsICAgICAgICAgICAgICJBXHUwMzBhIiwgICAgICAgICAgICAiXHUwMGM1IiAgICAgICAgICAgIH0sIC8vIEEtcmluZworCisgICAgICAgICAgICB7Ilx1MDBmZGZmaW4iLCAgICAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sIC8vdXBkYXRlZCB3aXRoIDMuMAorICAgICAgICAgICAgeyJcdTAwZmRcdUZCMDNuIiwgICAgICAieVx1MDMwMVx1RkIwM24iLCAgICAgIlx1MDBmZFx1RkIwM24iICAgICB9LCAvL3VwZGF0ZWQgd2l0aCAzLjAKKworICAgICAgICAgICAgeyJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorICAgICAgICAgICAgeyJIZW5yeSBcdTIxNjMiLCAgICAgICAiSGVucnkgXHUyMTYzIiwgICAgICAgIkhlbnJ5IFx1MjE2MyIgICAgICB9LAorCisgICAgICAgICAgICB7Ilx1MzBBQyIsICAgICAgICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGdhIChLYXRha2FuYSkKKyAgICAgICAgICAgIHsiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8ga2EgKyB0ZW4KKyAgICAgICAgICAgIHsiXHVGRjc2XHVGRjlFIiwgICAgICAgIlx1RkY3Nlx1RkY5RSIsICAgICAgICJcdUZGNzZcdUZGOUUiICAgICAgfSwgLy8gaHdfa2EgKyBod190ZW4KKyAgICAgICAgICAgIHsiXHUzMEFCXHVGRjlFIiwgICAgICAgIlx1MzBBQlx1RkY5RSIsICAgICAgICJcdTMwQUJcdUZGOUUiICAgICAgfSwgLy8ga2EgKyBod190ZW4KKyAgICAgICAgICAgIHsiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1RkY3Nlx1MzA5OSIsICAgICAgICJcdUZGNzZcdTMwOTkiICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKworICAgICAgICAgICAgeyJBXHUwMzAwXHUwMzE2IiwgICAgICAiQVx1MDMxNlx1MDMwMCIsICAgICAgIlx1MDBDMFx1MDMxNiIgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdW10gQ09NUEFUID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgICAgIHsiXHVGQjRmIiwgICAgICAgICAgICAgIlx1MDVEMFx1MDVEQyIsICAgICAgICJcdTA1RDBcdTA1REMiICAgICAgfSwgLy8gQWxlZi1MYW1lZCB2cy4gQWxlZiwgTGFtZWQKKworICAgICAgICAgICAgeyJcdTAwZmRmZmluIiwgICAgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgIlx1MDBmZGZmaW4iICAgICAgICB9LCAvL3VwZGF0ZWQgZm9yIDMuMAorICAgICAgICAgICAgeyJcdTAwZmRcdUZCMDNuIiwgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgIlx1MDBmZGZmaW4iICAgICAgICB9LCAvLyBmZmkgbGlnYXR1cmUgLT4gZiArIGYgKyBpCisKKyAgICAgICAgICAgIHsiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsiSGVucnkgXHUyMTYzIiwgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKworICAgICAgICAgICAgeyJcdTMwQUMiLCAgICAgICAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBnYSAoS2F0YWthbmEpCisgICAgICAgICAgICB7Ilx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGthICsgdGVuCisKKyAgICAgICAgICAgIHsiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBORkQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIE5GQyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkMiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPENBTk9OLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaW4gPSBDQU5PTltpXVswXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBkID0gQ0FOT05baV1bMV07CisgICAgICAgICAgICBTdHJpbmcgZXhwYyA9IENBTk9OW2ldWzJdOworICAgICAgICAgICAgZXhwZWN0KE5GRCwgaW4sIGV4cGQpOworICAgICAgICAgICAgZXhwZWN0KE5GQywgaW4sIGV4cGMpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgTkZLRCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORktEIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIE5GS0MgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZLQyIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8Q09NUEFULmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaW4gPSBDT01QQVRbaV1bMF07CisgICAgICAgICAgICBTdHJpbmcgZXhwa2QgPSBDT01QQVRbaV1bMV07CisgICAgICAgICAgICBTdHJpbmcgZXhwa2MgPSBDT01QQVRbaV1bMl07CisgICAgICAgICAgICBleHBlY3QoTkZLRCwgaW4sIGV4cGtkKTsKKyAgICAgICAgICAgIGV4cGVjdChORktDLCBpbiwgZXhwa2MpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkQ7IFt4XVJlbW92ZSIpOworICAgICAgICBleHBlY3QodCwgIlx1MDEwZHgiLCAiY1x1MDMwQyIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgY29tcG91bmQgUkJUIHJ1bGVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZFJCVCgpIHsKKyAgICAgICAgLy8gQ2FyZWZ1bCB3aXRoIHNwYWNpbmcgYW5kICc7JyBoZXJlOiAgUGhyYXNlIHRoaXMgZXhhY3RseQorICAgICAgICAvLyBhcyB0b1J1bGVzKCkgaXMgZ29pbmcgdG8gcmV0dXJuIGl0LiAgSWYgdG9SdWxlcygpIGNoYW5nZXMKKyAgICAgICAgLy8gd2l0aCByZWdhcmQgdG8gc3BhY2luZyBvciAnOycsIHRoZW4gYWRqdXN0IHRoaXMgc3RyaW5nLgorICAgICAgICBTdHJpbmcgcnVsZSA9ICI6OkhleC1Bbnk7XG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiOjpBbnktTG93ZXI7XG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiYSA+ICcuQS4nO1xuIiArCisgICAgICAgICAgICAgICAgICAgICAgImIgPiAnLkIuJztcbiIgKworICAgICAgICAgICAgICAgICAgICAgICI6OltedF1BbnktVXBwZXI7IjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGV4cGVjdCh0LCAiXHUwMDQzYXQgaW4gdGhlIGhhdCwgYmF0IG9uIHRoZSBtYXQiLAorICAgICAgICAgICAgICAgIkMuQS50IElOIHRIRSBILkEudCwgLkIuLkEudCBPTiB0SEUgTS5BLnQiKTsKKyAgICAgICAgU3RyaW5nIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmIChyLmVxdWFscyhydWxlKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcnVsZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGVzdCB0b1J1bGVzCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiR3JlZWstTGF0aW47IExhdGluLUN5cmlsbGljIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZXhwID0gIjo6R3JlZWstTGF0aW47XG46OkxhdGluLUN5cmlsbGljOyI7CisgICAgICAgIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmICghci5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogdG9SdWxlcygpID0+ICIgKyByKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJvdW5kIHRyaXAgdGhlIHJlc3VsdCBvZiB0b1J1bGVzCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyAjMiBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogY3JlYXRlRnJvbVJ1bGVzKCIgKyByICsgIikgc3VjY2VlZGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IHRvUnVsZXMgYWdhaW4KKyAgICAgICAgciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKCFyLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdG9SdWxlcygpID0+ICIgKyByICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCBGb28oQmFyKSBJRHMuICBDYXJlZnVsIHdpdGggc3BhY2luZyBpbiBpZDsgbWFrZSBpdCBjb25mb3JtCisgICAgICAgIC8vIHRvIHdoYXQgdGhlIHJlZ2VuZXJhdGVkIElEIHdpbGwgbG9vayBsaWtlLgorICAgICAgICBTdHJpbmcgaWQgPSAiVXBwZXIoTG93ZXIpOyhORktDKSI7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSAjMiBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodC5nZXRJRCgpLmVxdWFscyhpZCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogY3JlYXRlZCAiICsgaWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUluc3RhbmNlKCIgKyBpZCArCisgICAgICAgICAgICAgICAgICAiKS5nZXRJRCgpID0+ICIgKyB0LmdldElEKCkpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICBpZiAodSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW52ZXJzZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBleHAgPSAiTkZLQygpO0xvd2VyKFVwcGVyKSI7CisgICAgICAgIGlmICh1LmdldElEKCkuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogY3JlYXRlSW52ZXJzZSgiICsgaWQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgIHUuZ2V0SUQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW52ZXJzZSgiICsgaWQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgIHUuZ2V0SUQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wb3VuZCBmaWx0ZXIgc2VtYW50aWNzIHdlcmUgb3JnaW5pYWxseSBub3QgaW1wbGVtZW50ZWQKKyAgICAgKiBjb3JyZWN0bHkuICBPcmlnaW5hbGx5LCBlYWNoIGNvbXBvbmVudCBmaWx0ZXIgZihpKSBpcyByZXBsYWNlZCBieQorICAgICAqIGYnKGkpID0gZihpKSAmJiBnLCB3aGVyZSBnIGlzIHRoZSBmaWx0ZXIgZm9yIHRoZSBjb21wb3VuZAorICAgICAqIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqCisgICAgICogRnJvbSBNYXJrOgorICAgICAqCisgICAgICogU3VwcG9zZSBhbmQgSSBoYXZlIGEgdHJhbnNsaXRlcmF0b3IgWC4gSW50ZXJuYWxseSBYIGlzCisgICAgICogIkdyZWVrLUxhdGluOyBMYXRpbi1DeXJpbGxpYzsgQW55LUxvd2VyIi4gSSB1c2UgYSBmaWx0ZXIgW15BXS4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb3VuZCBzaG91bGQgY29udmVydCBhbGwgZ3JlZWsgY2hhcmFjdGVycyAodGhyb3VnaCBsYXRpbikgdG8KKyAgICAgKiBjeXJpbGxpYywgdGhlbiBsb3dlcmNhc2UgdGhlIHJlc3VsdC4gVGhlIGZpbHRlciBzaG91bGQgc2F5ICJkb24ndAorICAgICAqIHRvdWNoICdBJyBpbiB0aGUgb3JpZ2luYWwiLiBCdXQgYmVjYXVzZSBhbiBpbnRlcm1lZGlhdGUgcmVzdWx0CisgICAgICogaGFwcGVucyB0byBnbyB0aHJvdWdoICJBIiwgdGhlIEdyZWVrIEFscGhhIGdldHMgaHVuZyB1cC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRGaWx0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZQorICAgICAgICAgICAgKCJHcmVlay1MYXRpbjsgTGF0aW4tR3JlZWs7IExvd2VyIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIHQuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbXkFdIikpOworCisgICAgICAgIC8vIE9ubHkgdGhlICdBJyBhdCBpbmRleCAxIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkCisgICAgICAgIGV4cGVjdCh0LAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIkJBXFx1MDM5QVxcdTAzOTEiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXHUwM2IyQVxcdTAzYmFcXHUwM2IxIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlICJSZW1vdmUiIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSZW1vdmUoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiUmVtb3ZlW2FlaW91XSIpOworICAgICAgICBleHBlY3QodCwgIlRoZSBxdWljayBicm93biBmb3guIiwKKyAgICAgICAgICAgICAgICJUaCBxY2sgYnJ3biBmeC4iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9SdWxlcygpIHsKKyAgICAgICAgU3RyaW5nIFJCVCA9ICJyYnQiOworICAgICAgICBTdHJpbmcgU0VUID0gInNldCI7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJGE9XFx1NEU2MTsgWyRhXSA+IEE7IiwKKyAgICAgICAgICAgICJbXFx1NEU2MV0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkd2hpdGU9W1s6WnM6XVs6Wmw6XV07ICR3aGl0ZXthfSA+IEE7IiwKKyAgICAgICAgICAgICJbWzpaczpdWzpabDpdXXthfSA+IEE7IiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIltbOlpzOl1bOlpsOl1dIiwKKyAgICAgICAgICAgICJbWzpaczpdWzpabDpdXSIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbOlBzOl0iLAorICAgICAgICAgICAgIls6UHM6XSIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbOkw6XSIsCisgICAgICAgICAgICAiWzpMOl0iLAorCisgICAgICAgICAgICBTRVQsCisgICAgICAgICAgICAiW1s6TDpdLVtBXV0iLAorICAgICAgICAgICAgIltbOkw6XS1bQV1dIiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIlt+WzpMdTpdWzpMbDpdXSIsCisgICAgICAgICAgICAiW35bOkx1Ol1bOkxsOl1dIiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIlt+W2Etel1dIiwKKyAgICAgICAgICAgICJbflthLXpdXSIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkd2hpdGU9WzpaczpdOyAkYmxhY2s9W14kd2hpdGVdOyAkYmxhY2t7YX0gPiBBOyIsCisgICAgICAgICAgICAiW15bOlpzOl1de2F9ID4gQTsiLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJGE9WzpaczpdOyAkYj1bW2Etel0tJGFdOyAkYnthfSA+IEE7IiwKKyAgICAgICAgICAgICJbW2Etel0tWzpaczpdXXthfSA+IEE7IiwKKworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiRhPVs6WnM6XTsgJGI9WyRhJlthLXpdXTsgJGJ7YX0gPiBBOyIsCisgICAgICAgICAgICAiW1s6WnM6XSZbYS16XV17YX0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkYT1bOlpzOl07ICRiPVt4JGFdOyAkYnthfSA+IEE7IiwKKyAgICAgICAgICAgICJbeFs6WnM6XV17YX0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkYWNjZW50TWludXMgPSBbIFtcXHUwMzAwLVxcdTAzNDVdICYgWzpNOl0gLSBbXFx1MDMzOF1dIDsiKworICAgICAgICAgICAgIiRtYWNyb24gPSBcXHUwMzA0IDsiKworICAgICAgICAgICAgIiRldm93ZWwgPSBbYWVpb3V5QUVJT1VZXSA7IisKKyAgICAgICAgICAgICIkaW90YXN1YiA9IFxcdTAzNDUgOyIrCisgICAgICAgICAgICAiKCRldm93ZWwgJG1hY3JvbiAkYWNjZW50TWludXMgKikgaSA+IHwgJDEgJGlvdGFzdWIgOyIsCisgICAgICAgICAgICAiKFtBRUlPVVlhZWlvdXldXFx1MDMwNFtbXFx1MDMwMC1cXHUwMzQ1XSZbOk06XS1bXFx1MDMzOF1dKilpID4gfCAkMSBcXHUwMzQ1OyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIoW0FFSU9VWWFlaW91eV1cXHUwMzA0W1s6TTpdLVtcXHUwMzA0XFx1MDM0NV1dKilpID4gfCAkMSBcXHUwMzQ1OyIsCisgICAgICAgICAgICAiKFtBRUlPVVlhZWlvdXldXFx1MDMwNFtbOk06XS1bXFx1MDMwNFxcdTAzNDVdXSopaSA+IHwgJDEgXFx1MDM0NTsiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGQ9MDsgZCA8IERBVEEubGVuZ3RoOyBkKz0zKSB7CisgICAgICAgICAgICBpZiAoREFUQVtkXSA9PSBSQlQpIHsKKyAgICAgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRvciB0ZXN0CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQVtkKzFdLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzLCBlc2NhcGVkUnVsZXM7CisgICAgICAgICAgICAgICAgcnVsZXMgPSB0LnRvUnVsZXMoZmFsc2UpOworICAgICAgICAgICAgICAgIGVzY2FwZWRSdWxlcyA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwUnVsZXMgPSBVdGlsaXR5LnVuZXNjYXBlKERBVEFbZCsyXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cEVzY2FwZWRSdWxlcyA9IERBVEFbZCsyXTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXMuZXF1YWxzKGV4cFJ1bGVzKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBEQVRBW2QrMV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBVdGlsaXR5LmVzY2FwZShydWxlcykpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtkKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgVXRpbGl0eS5lc2NhcGUocnVsZXMgKyAiLCBleHAgIiArIGV4cFJ1bGVzKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChlc2NhcGVkUnVsZXMuZXF1YWxzKGV4cEVzY2FwZWRSdWxlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgREFUQVtkKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZXNjYXBlZFJ1bGVzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbZCsxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGVzY2FwZWRSdWxlcyArICIsIGV4cCAiICsgZXhwRXNjYXBlZFJ1bGVzKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVW5pY29kZVNldCB0ZXN0CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IERBVEFbZCsxXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwVG9QYXQgPSBEQVRBW2QrMl07CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChwYXQpOworCisgICAgICAgICAgICAgICAgLy8gQWRqdXN0IHNwYWNpbmcgZXRjLiBhcyBuZWNlc3NhcnkuCisgICAgICAgICAgICAgICAgU3RyaW5nIHRvUGF0OworICAgICAgICAgICAgICAgIHRvUGF0ID0gc2V0LnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhwVG9QYXQuZXF1YWxzKHRvUGF0KSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyB0b1BhdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBVdGlsaXR5LmVzY2FwZSh0b1BhdCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHAgIiArIFV0aWxpdHkuZXNjYXBlKHBhdCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb250ZXh0KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMCwgMiwgMCwgMSk7IC8vIGNzIGNsIHMgbAorCisgICAgICAgIGV4cGVjdCgiZGUgPiB4OyB7ZH1lID4geTsiLAorICAgICAgICAgICAgICAgImRlIiwKKyAgICAgICAgICAgICAgICJ5ZSIsCisgICAgICAgICAgICAgICBwb3MpOworCisgICAgICAgIGV4cGVjdCgiYWJ7Y30gPiB6OyIsCisgICAgICAgICAgICAgICAieGFkYWJkYWJjeSIsCisgICAgICAgICAgICAgICAieGFkYWJkYWJ6eSIpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxpdHkudW5lc2NhcGUocyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhbCgpIHsKKworICAgICAgICBleHBlY3QoQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIiRhPVxcVTAwMDEwMzAwOyAkcz1bXFxVMDAwMTAzMDAtXFxVMDAwMTAzMjNdOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEgPiAkYTsgJHMgPiBpOyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoImFiXFxVMDAwMTAzMEZ4IiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMDBiaXgiKSk7CisKKyAgICAgICAgZXhwZWN0KENoYXJzVG9Vbmljb2RlU3RyaW5nKCIkYT1bYS16XFxVMDAwMTAzMDAtXFxVMDAwMTAzMjNdOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRiPVtBLVpcXFUwMDAxMDQwMC1cXFUwMDAxMDQ0RF07IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKCRhKSgkYikgPiAkMiAkMTsiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJhQlxcVTAwMDEwMzAwXFxVMDAwMTA0MDBjXFxVMDAwMTA0MDFcXFUwMDAxMDMwMUQiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJCYVxcVTAwMDEwNDAwXFxVMDAwMTAzMDBcXFUwMDAxMDQwMWNEXFxVMDAwMTAzMDEiKSk7CisKKyAgICAgICAgLy8ga3xheFxcVTAwMDEwMzAweG0KKworICAgICAgICAvLyBrfGFcXFUwMDAxMDQwMFxcVTAwMDEwMzAweG0KKyAgICAgICAgLy8ga3l8XFxVMDAwMTA0MDBcXFUwMDAxMDMwMHhtCisgICAgICAgIC8vIGt5XFxVMDAwMTA0MDB8XFxVMDAwMTAzMDB4bQorCisgICAgICAgIC8vIGt5XFxVMDAwMTA0MDB8XFxVMDAwMTAzMDBcXFUwMDAxMDQwMG0KKyAgICAgICAgLy8ga3lcXFUwMDAxMDQwMHl8XFxVMDAwMTA0MDBtCisgICAgICAgIGV4cGVjdChDaGFyc1RvVW5pY29kZVN0cmluZygiJGE9W2FcXFUwMDAxMDMwMC1cXFUwMDAxMDMyM107IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGEge3h9ID4gfCBAIFxcVTAwMDEwNDAwOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInskYX0gW15cXHUwMDAwLVxcdUZGRkZdID4geTsiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJrYXhcXFUwMDAxMDMwMHhtIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygia3lcXFUwMDAxMDQwMHlcXFUwMDAxMDQwMG0iKSk7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTmFtZSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiXFxOe0dPVEhJQyBMRVRURVIgQUhTQX1cXE57VEFHIExBVElOIFNNQUxMIExFVFRFUiBBfVxcTntOTy1CUkVBSyBTUEFDRX0iKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5hbWUtQW55IiksCisgICAgICAgICAgICAgICAiXFxOe0dPVEhJQyBMRVRURVIgQUhTQX1cXE57VEFHIExBVElOIFNNQUxMIExFVFRFUiBBfVxcTntOTy1CUkVBSyBTUEFDRX0iLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAwRTAwNjFcXHUwMEEwIikpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9Vbmljb2RlIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIlUrMTAzMzBVKzEwRkYwMFUrRTAwNjFVKzAwQTAiKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvQyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1BlcmwiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiXFx4ezEwMzMwfVxceHsxMEZGMDB9XFx4e0UwMDYxfVxceHtBMH0iKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvSmF2YSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICJcXHVEODAwXFx1REYzMFxcdURCRkZcXHVERjAwXFx1REI0MFxcdURDNjFcXHUwMEEwIik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1hNTCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICImI3gxMDMzMDsmI3gxMEZGMDA7JiN4RTAwNjE7JiN4QTA7Iik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1hNTDEwIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIiYjNjYzNTI7JiMxMTEzODU2OyYjOTE3NjAxOyYjMTYwOyIpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW1xcVTAwMEUwMDAwLVxcVTAwMEUwRkZGXSBSZW1vdmUiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcdTAwQTAiKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFF1YW50aWZpZXIoKSB7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgaW4gYSBxdWFudGlmaWVkIGFudGVDb250ZXh0IHdvcmtzCisgICAgICAgIGV4cGVjdCgiYSsge2J9ID4gfCBAQCBjOyBBID4gYTsgKGErIGMpID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgIkFBQUFBYiIsCisgICAgICAgICAgICAgICAiYWFhKGFhYykiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBpbiBhIHF1YW50aWZpZWQgcG9zdENvbnRleHQgd29ya3MKKyAgICAgICAgZXhwZWN0KCJ7Yn0gYSsgPiBjIEBAIHw7IChhKykgPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAiYmFhYWFhIiwKKyAgICAgICAgICAgICAgICJjYWEoYWFhKSIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIGluIGEgcXVhbnRpZmllZCBwb3N0Q29udGV4dCB3aXRoIHNlZyByZWYgd29ya3MKKyAgICAgICAgZXhwZWN0KCJ7KGIpfSBhKyA+ICQxIEBAIHw7IChhKykgPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAiYmFhYWFhIiwKKyAgICAgICAgICAgICAgICJiYWEoYWFhKSIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIHBhc3QgYW50ZSBjb250ZXh0IGRvZXNuJ3QgZW50ZXIgYW50ZSBjb250ZXh0CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCA1LCAzLCA1KTsKKyAgICAgICAgZXhwZWN0KCJhKyB7Yn0gPiB8IEBAIGM7IHggPiB5OyAoYSsgYykgPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAieHh4YWIiLAorICAgICAgICAgICAgICAgInh4eChhYykiLAorICAgICAgICAgICAgICAgcG9zKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBwYXN0IHBvc3QgY29udGV4dCBkb2Vzbid0IHBhc3MgbGltaXQKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zMiA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCA0LCAwLCAyKTsKKyAgICAgICAgZXhwZWN0KCJ7Yn0gYSsgPiBjIEBAIHw7IHggPiB5OyBhID4gQTsiLAorICAgICAgICAgICAgICAgImJheHgiLAorICAgICAgICAgICAgICAgImNheHgiLAorICAgICAgICAgICAgICAgcG9zMik7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgcGFzdCBwb3N0IGNvbnRleHQgZG9lc24ndCBlbnRlciBwb3N0IGNvbnRleHQKKyAgICAgICAgZXhwZWN0KCJ7Yn0gYSsgPiBjIEBAIHw7IHggPiB5OyBhID4gQTsiLAorICAgICAgICAgICAgICAgImJheHgiLAorICAgICAgICAgICAgICAgImNheXkiKTsKKworICAgICAgICBleHBlY3QoIihhYik/IGMgPiBkOyIsCisgICAgICAgICAgICAgICAiYyBhYmMgYWJhYmMiLAorICAgICAgICAgICAgICAgImQgZCBhYmQiKTsKKworICAgICAgICAvLyBOT1RFOiBUaGUgKGFiKSsgd2hlbiByZWZlcmVuY2VkIGp1c3QgeWllbGRzIGEgc2luZ2xlICJhYiIsCisgICAgICAgIC8vIG5vdCB0aGUgZnVsbCBzZXF1ZW5jZSBvZiB0aGVtLiAgVGhpcyBhY2NvcmRzIHdpdGggcGVybCBiZWhhdmlvci4KKyAgICAgICAgZXhwZWN0KCIoYWIpKyB7eH0gPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAieCBhYnggYWJhYnh5IiwKKyAgICAgICAgICAgICAgICJ4IGFiKGFiKSBhYmFiKGFiKXkiKTsKKworICAgICAgICBleHBlY3QoImIrID4geDsiLAorICAgICAgICAgICAgICAgImFjIGFiYyBhYmJjIGFiYmJjIiwKKyAgICAgICAgICAgICAgICJhYyBheGMgYXhjIGF4YyIpOworCisgICAgICAgIGV4cGVjdCgiW2FiY10rID4geDsiLAorICAgICAgICAgICAgICAgInFhYyBhYnJjIGFiYmNzIGFidGJiYyIsCisgICAgICAgICAgICAgICAicXggeHJ4IHhzIHh0eCIpOworCisgICAgICAgIGV4cGVjdCgicXsoYWIpK30gPiB4OyIsCisgICAgICAgICAgICAgICAicWEgcWFiIHFhYmEgcWFiYWJjIHFhYmEiLAorICAgICAgICAgICAgICAgInFhIHF4IHF4YSBxeGMgcXhhIik7CisKKyAgICAgICAgZXhwZWN0KCJxKGFiKSogPiB4OyIsCisgICAgICAgICAgICAgICAicWEgcWFiIHFhYmEgcWFiYWJjIiwKKyAgICAgICAgICAgICAgICJ4YSB4IHhhIHhjIik7CisKKyAgICAgICAgLy8gTk9URTogVGhlIChhYikrIHdoZW4gcmVmZXJlbmNlZCBqdXN0IHlpZWxkcyBhIHNpbmdsZSAiYWIiLAorICAgICAgICAvLyBub3QgdGhlIGZ1bGwgc2VxdWVuY2Ugb2YgdGhlbS4gIFRoaXMgYWNjb3JkcyB3aXRoIHBlcmwgYmVoYXZpb3IuCisgICAgICAgIGV4cGVjdCgicShhYikqID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgInFhIHFhYiBxYWJhIHFhYmFiYyIsCisgICAgICAgICAgICAgICAiKClhIChhYikgKGFiKWEgKGFiKWMiKTsKKworICAgICAgICAvLyAnZm9vJysgYW5kICdmb28nKiAtLSB0aGUgcXVhbnRpZmllciBzaG91bGQgYXBwbHkgdG8gdGhlIGVudGlyZQorICAgICAgICAvLyBxdW90ZWQgc3RyaW5nCisgICAgICAgIGV4cGVjdCgiJ2FiJysgPiB4OyIsCisgICAgICAgICAgICAgICAiYmIgYWIgYWJhYmIiLAorICAgICAgICAgICAgICAgImJiIHggeGIiKTsKKworICAgICAgICAvLyAkZm9vKyBhbmQgJGZvbyogLS0gdGhlIHF1YW50aWZpZXIgc2hvdWxkIGFwcGx5IHRvIHRoZSBlbnRpcmUKKyAgICAgICAgLy8gdmFyaWFibGUgcmVmZXJlbmNlCisgICAgICAgIGV4cGVjdCgiJHZhciA9IGFiOyAkdmFyKyA+IHg7IiwKKyAgICAgICAgICAgICAgICJiYiBhYiBhYmFiYiIsCisgICAgICAgICAgICAgICAiYmIgeCB4YiIpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBUZXN0RmFjdCBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICBzdGF0aWMgY2xhc3MgTmFtZWFibGVOdWxsVHJhbnMgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisgICAgICAgICAgICBwdWJsaWMgTmFtZWFibGVOdWxsVHJhbnMoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICAgICAgc3VwZXIoaWQsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGlkOworICAgICAgICBwdWJsaWMgVGVzdEZhY3QoU3RyaW5nIHRoZUlEKSB7CisgICAgICAgICAgICBpZCA9IHRoZUlEOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgaWdub3JlZElEKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE5hbWVhYmxlTnVsbFRyYW5zKGlkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTVFYoKSB7CisgICAgICAgIEVudW1lcmF0aW9uIGVzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICBmb3IgKGludCBpPTA7IGVzLmhhc01vcmVFbGVtZW50cygpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgbG9nbG4oIiIgKyBpICsgIjogIiArIHNvdXJjZSk7CisgICAgICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZW1wdHkgc291cmNlIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBldCA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgZXQuaGFzTW9yZUVsZW1lbnRzKCk7ICsraikgeworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSAoU3RyaW5nKSBldC5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGogKyAiOiAiICsgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGVtcHR5IHRhcmdldCIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZXYgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBldi5oYXNNb3JlRWxlbWVudHMoKTsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50ID0gKFN0cmluZykgZXYubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgIiArIGsgKyAiOiA8ZW1wdHk+Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiICAiICsgayArICI6ICIgKyB2YXJpYW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgcmVnaXN0cmF0aW9uCisgICAgICAgIFN0cmluZ1tdIElEUyA9IHsgIkZpZXJ1d2VyIiwgIlNlb3JpZGYtU3dlb3JpZSIsICJPZXdvaXItT3dlcmkvVnNpZSIgfTsKKyAgICAgICAgU3RyaW5nW10gRlVMTF9JRFMgPSB7ICJBbnktRmllcnV3ZXIiLCAiU2VvcmlkZi1Td2VvcmllIiwgIk9ld29pci1Pd2VyaS9Wc2llIiB9OworICAgICAgICBTdHJpbmdbXSBTT1VSQ0VTID0geyBudWxsLCAiU2VvcmlkZiIsICJPZXdvaXIiIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwzOyArK2kpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRFNbaV0sIG5ldyBUZXN0RmFjdChJRFNbaV0pKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEU1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKHQuZ2V0SUQoKS5lcXVhbHMoSURTW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IFJlZ2lzdHJhdGlvbi9jcmVhdGlvbiBzdWNjZWVkZWQgZm9yIElEICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJRFNbaV0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBSZWdpc3RyYXRpb24gb2YgSUQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIElEU1tpXSArICIgY3JlYXRlcyBJRCAiICsgdC5nZXRJRCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihJRFNbaV0pOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRFNbaV0pOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVW5yZWdpc3RyYXRpb24gZmFpbGVkIGZvciBJRCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgSURTW2ldICsgIjsgc3RpbGwgcmVjZWl2aW5nIElEICIgKyB0LmdldElEKCkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICAvLyBHb29kOyB0aGlzIGlzIHdoYXQgd2UgZXhwZWN0CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazsgVW5yZWdpc3RlcmVkICIgKyBJRFNbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFJlZ2lzdHJhdGlvbi9jcmVhdGlvbiBmYWlsZWQgZm9yIElEICIgKworICAgICAgICAgICAgICAgICAgICAgIElEU1tpXSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoSURTW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2Ugc3VyZSBnZXRBdmFpbGFibGUgQVBJIHJlZmxlY3RzIHJlbW92YWwKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICAgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8MzsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkLmVxdWFscyhGVUxMX0lEU1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVucmVnaXN0ZXIoIiArIGlkICsgIikgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoIkFueSIpOworICAgICAgICAgICAgIGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIHQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBpZiAodC5lcXVhbHMoSURTWzBdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1bnJlZ2lzdGVyKEFueS0iICsgdCArICIpIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgICAgICBlLmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDM7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChTT1VSQ0VTW2ldID09IG51bGwpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChzLmVxdWFscyhTT1VSQ0VTW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogdW5yZWdpc3RlcigiICsgcyArICItKikgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBpbnZlcnNlIG9mIEdyZWVrLUxhdGluOyBUaXRsZSgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kSW52ZXJzZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlCisgICAgICAgICAgICAoIkdyZWVrLUxhdGluOyBUaXRsZSgpIiwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBleHAgPSAiKFRpdGxlKTtMYXRpbi1HcmVlayI7CisgICAgICAgIGlmICh0LmdldElEKCkuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogaW52ZXJzZSBvZiBcIkdyZWVrLUxhdGluOyBUaXRsZSgpXCIgaXMgXCIiICsKKyAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaW52ZXJzZSBvZiBcIkdyZWVrLUxhdGluOyBUaXRsZSgpXCIgaXMgXCIiICsKKyAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IE5GRCBjaGFpbmluZyB3aXRoIFJCVAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RORkRDaGFpblJCVCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVEVTVCIsICI6Ok5GRDsgYWEgPiBROyBhID4gcTsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBsb2dsbih0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICBleHBlY3QodCwgImFhIiwgIlEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnZlcnNlIG9mICJOdWxsIiBzaG91bGQgYmUgIk51bGwiLiAoSjIxKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROdWxsSW52ZXJzZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJOdWxsIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgaWYgKCF1LmdldElEKCkuZXF1YWxzKCJOdWxsIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnZlcnNlIG9mIE51bGwgc2hvdWxkIGJlIE51bGwiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIElEIG9mIGludmVyc2Ugb2YgYWxpYXMuIChKMjIpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFsaWFzSW52ZXJzZUlEKCkgeworICAgICAgICBTdHJpbmcgSUQgPSAiTGF0aW4tSGFuZ3VsIjsgLy8gVGhpcyBzaG91bGQgYmUgYW55IGFsaWFzIElEIHdpdGggYW4gaW52ZXJzZQorICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIFN0cmluZyBleHAgPSAiSGFuZ3VsLUxhdGluIjsKKyAgICAgICAgU3RyaW5nIGdvdCA9IHUuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCFnb3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnZlcnNlIG9mICIgKyBJRCArICIgaXMgIiArIGdvdCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgSURzIG9mIGludmVyc2VzIG9mIGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9ycy4gKEoyMCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRJbnZlcnNlSUQoKSB7CisgICAgICAgIFN0cmluZyBJRCA9ICJMYXRpbi1KYW1vO05GQyhORkQpIjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICBTdHJpbmcgZXhwID0gIk5GRChORkMpO0phbW8tTGF0aW4iOworICAgICAgICBTdHJpbmcgZ290ID0gdS5nZXRJRCgpOworICAgICAgICBpZiAoIWdvdC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEludmVyc2Ugb2YgIiArIElEICsgIiBpcyAiICsgZ290ICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB1bmRlZmluZWQgdmFyaWFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFVuZGVmaW5lZFZhcmlhYmxlKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICIkaW5pdGlhbCB9IGEgPD4gXHUxMTYxOyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgcnVsZSxUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIHQgPSBudWxsOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBHb3QgZXhjZXB0aW9uIGZvciAiICsgcnVsZSArICIsIGFzIGV4cGVjdGVkOiAiICsKKyAgICAgICAgICAgICAgICAgIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiRmFpbDogYm9ndXMgcnVsZSAiICsgcnVsZSArICIgY29tcGlsZWQgd2l0aG91dCBlcnJvciIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZW1wdHkgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW1wdHlDb250ZXh0KCkgeworICAgICAgICBleHBlY3QoIiB7IGEgfSA+IGI7IiwgInhheSBhICIsICJ4YnkgYiAiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGNvbXBvdW5kIGZpbHRlciBJRCBzeW50YXgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRGaWx0ZXJJRCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIENvbC4gMSA9IElEIG9yIHJ1bGUgc2V0IChsYXR0ZXIgbXVzdCBzdGFydCB3aXRoICMpCisKKyAgICAgICAgICAgIC8vID0gY29sdW1ucyA+IDEgYXJlIG51bGwgaWYgZXhwZWN0IGNvbC4gMSB0byBiZSBpbGxlZ2FsID0KKworICAgICAgICAgICAgLy8gQ29sLiAyID0gZGlyZWN0aW9uLCAiRi4uLiIgb3IgIlIuLi4iCisgICAgICAgICAgICAvLyBDb2wuIDMgPSBzb3VyY2Ugc3RyaW5nCisgICAgICAgICAgICAvLyBDb2wuIDQgPSBleHAgcmVzdWx0CisKKyAgICAgICAgICAgICJbYWJjXTsgW2FiY10iLCBudWxsLCBudWxsLCBudWxsLCAvLyBtdWx0aXBsZSBmaWx0ZXJzCisgICAgICAgICAgICAiTGF0aW4tR3JlZWs7IFthYmNdOyIsIG51bGwsIG51bGwsIG51bGwsIC8vIG1pc3BsYWNlZCBmaWx0ZXIKKyAgICAgICAgICAgICJbYl07IExhdGluLUdyZWVrOyBVcHBlcjsgKFt4eXpdKSIsICJGIiwgImFiYyIsICJhXHUwMzkyYyIsCisgICAgICAgICAgICAiW2JdOyAoTG93ZXIpOyBMYXRpbi1HcmVlazsgVXBwZXIoKTsgKFtcdTAzOTJdKSIsICJSIiwgIlx1MDM5MVx1MDM5Mlx1MDM5MyIsICJcdTAzOTFiXHUwMzkzIiwKKyAgICAgICAgICAgICIjXG46OltiXTsgOjpMYXRpbi1HcmVlazsgOjpVcHBlcjsgOjooW3h5el0pOyIsICJGIiwgImFiYyIsICJhXHUwMzkyYyIsCisgICAgICAgICAgICAiI1xuOjpbYl07IDo6KExvd2VyKTsgOjpMYXRpbi1HcmVlazsgOjpVcHBlcigpOyA6OihbXHUwMzkyXSk7IiwgIlIiLCAiXHUwMzkxXHUwMzkyXHUwMzkzIiwgIlx1MDM5MWJcdTAzOTMiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NCkgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gREFUQVtpXTsKKyAgICAgICAgICAgIGludCBkaXJlY3Rpb24gPSAoREFUQVtpKzFdICE9IG51bGwgJiYgREFUQVtpKzFdLmNoYXJBdCgwKSA9PSAnUicpID8KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5SRVZFUlNFIDogVHJhbnNsaXRlcmF0b3IuRk9SV0FSRDsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSBEQVRBW2krMl07CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzNdOworICAgICAgICAgICAgYm9vbGVhbiBleHBPayA9IChEQVRBW2krMV0gIT0gbnVsbCk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKyAgICAgICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGlkLmNoYXJBdCgwKSA9PSAnIycpIHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCBpZCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGVlKSB7CisgICAgICAgICAgICAgICAgZSA9IGVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbGVhbiBvayA9ICh0ICE9IG51bGwgJiYgZSA9PSBudWxsKTsKKyAgICAgICAgICAgIGlmIChvayA9PSBleHBPaykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGlkICsgIiA9PiAiICsgdCArCisgICAgICAgICAgICAgICAgICAgICAgKGUgIT0gbnVsbCA/ICgiLCAiICsgZS5nZXRNZXNzYWdlKCkpIDogIiIpKTsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgZXhwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaWQgKyAiID0+ICIgKyB0ICsKKyAgICAgICAgICAgICAgICAgICAgICAoZSAhPSBudWxsID8gKCIsICIgKyBlLmdldE1lc3NhZ2UoKSkgOiAiIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBuZXcgcHJvcGVydHkgc2V0IHN5bnRheAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcm9wZXJ0eVNldCgpIHsKKyAgICAgICAgZXhwZWN0KCJhPkE7IFxccHtMdX0+eDsgXFxwe0FueX0+eTsiLCAiYWJjREVGIiwgIkF5eXh4eCIpOworICAgICAgICBleHBlY3QoIiguKyk+J1snICQxICddJzsiLCAiIGEgc3RpdGNoIFxuIGluIHRpbWUgXHIgc2F2ZXMgOSIsCisgICAgICAgICAgICAgICAiWyBhIHN0aXRjaCBdXG5bIGluIHRpbWUgXVxyWyBzYXZlcyA5XSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdmFyaW91cyBmYWlsdXJlIHBvaW50cyBvZiB0aGUgbmV3IDIuMCBlbmdpbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5ld0VuZ2luZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1IaXJhZ2FuYSIpOworICAgICAgICAvLyBLYXRha2FuYSBzaG91bGQgYmUgdW50b3VjaGVkCisgICAgICAgIGV4cGVjdCh0LCAiYVx1MzA0Mlx1MzBBMiIsICJcdTMwNDJcdTMwNDJcdTMwQTIiKTsKKworICAgICAgICBpZiAodHJ1ZSkgeworICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IHdpbGwgb25seSB3b3JrIGlmIFRyYW5zbGl0ZXJhdG9yLlJPTExCQUNLIGlzCisgICAgICAgICAgICAvLyB0cnVlLiAgT3RoZXJ3aXNlLCB0aGlzIHRlc3Qgd2lsbCBmYWlsLCByZXZlYWxpbmcgYQorICAgICAgICAgICAgLy8gbGltaXRhdGlvbiBvZiBnbG9iYWwgZmlsdGVycyBpbiBpbmNyZW1lbnRhbCBtb2RlLgorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBhID0KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImFfdG9fQSIsICJhID4gQTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIEEgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiQV90b19iIiwgIkEgPiBiOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCisgICAgICAgICAgICAvL1RyYW5zbGl0ZXJhdG9yIGFycmF5W10gPSBuZXcgVHJhbnNsaXRlcmF0b3JbXSB7CisgICAgICAgICAgICAvLyAgICBhLAorICAgICAgICAgICAgLy8gICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpLAorICAgICAgICAgICAgLy8gICAgQSB9OworICAgICAgICAgICAgLy90ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoYXJyYXksIG5ldyBVbmljb2RlU2V0KCJbOkxsOl0iKSk7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZShhKTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKEEpOworCisgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbOkxsOl07YV90b19BO05GRDtBX3RvX2IiKTsKKyAgICAgICAgICAgICAgICBleHBlY3QodCwgImFBYUEiLCAiYkFiQSIpOworCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JbXSB1ID0gdC5nZXRFbGVtZW50cygpOworICAgICAgICAgICAgICAgIGFzc2VydFRydWUoImdldEVsZW1lbnRzKCkubGVuZ3RoIiwgdS5sZW5ndGggPT0gMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRFbGVtZW50cygpWzBdIiwgdVswXS5nZXRJRCgpLCAiYV90b19BIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRFbGVtZW50cygpWzFdIiwgdVsxXS5nZXRJRCgpLCAiTkZEIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRFbGVtZW50cygpWzJdIiwgdVsyXS5nZXRJRCgpLCAiQV90b19iIik7CisKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImFfdG9fQTtORkQ7QV90b19iIik7CisgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoIls6TGw6XSIpKTsKKyAgICAgICAgICAgICAgICBleHBlY3QodCwgImFBYUEiLCAiYkFiQSIpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKCJhX3RvX0EiKTsgCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcigiQV90b19iIik7ICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBleHBlY3QoIiRzbW9vdGggPSB4OyAkbWFjcm9uID0gcTsgWzpeTDpdIHsgKFthZWlvdXlBRUlPVVldICRtYWNyb24/KSB9IFteYWVpb3V5QUVJT1VZJHNtb290aCRtYWNyb25dID4gfCAkMSAkc21vb3RoIDsiLAorICAgICAgICAgICAgICAgImEiLAorICAgICAgICAgICAgICAgImF4Iik7CisKKyAgICAgICAgU3RyaW5nIGdyID0KKyAgICAgICAgICAgICIkZGRvdCA9IFx1MDMwOCA7IiArCisgICAgICAgICAgICAiJGxjZ3Zvd2VsID0gW1x1MDNiMVx1MDNiNVx1MDNiN1x1MDNiOVx1MDNiZlx1MDNjNVx1MDNjOV0gOyIgKworICAgICAgICAgICAgIiRyb3VnaCA9IFx1MDMxNCA7IiArCisgICAgICAgICAgICAiKCRsY2d2b3dlbCsgJGRkb3Q/KSAkcm91Z2ggPiBoIHwgJDEgOyIgKworICAgICAgICAgICAgIlx1MDNiMSA8PiBhIDsiICsKKyAgICAgICAgICAgICIkcm91Z2ggPD4gaCA7IjsKKworICAgICAgICBleHBlY3QoZ3IsICJcdTAzQjFcdTAzMTQiLCAiaGEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHF1YW50aWZpZWQgc2VnbWVudCBiZWhhdmlvci4gIFdlIHdhbnQ6CisgICAgICogKFthYmNdKSsgPiB4ICQxIHg7IGFwcGxpZWQgdG8gImNiYSIgcHJvZHVjZXMgInhheCIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVhbnRpZmllZFNlZ21lbnQoKSB7CisgICAgICAgIC8vIFRoZSBub3JtYWwgY2FzZQorICAgICAgICBleHBlY3QoIihbYWJjXSspID4geCAkMSB4OyIsICJjYmEiLCAieGNiYXgiKTsKKworICAgICAgICAvLyBUaGUgdHJpY2t5IGNhc2U7IHRoZSBxdWFudGlmaWVyIGlzIGFyb3VuZCB0aGUgc2VnbWVudAorICAgICAgICBleHBlY3QoIihbYWJjXSkrID4geCAkMSB4OyIsICJjYmEiLCAieGF4Iik7CisKKyAgICAgICAgLy8gVHJpY2t5IGNhc2UgaW4gcmV2ZXJzZSBkaXJlY3Rpb24KKyAgICAgICAgZXhwZWN0KCIoW2FiY10pKyB7IHEgPiB4ICQxIHg7IiwgImNiYXEiLCAiY2JheGF4Iik7CisKKyAgICAgICAgLy8gQ2hlY2sgcG9zdC1jb250ZXh0IHNlZ21lbnQKKyAgICAgICAgZXhwZWN0KCJ7cX0gKFthLWRdKSsgPiAnKCcgJDEgJyknOyIsICJkZHFjYmEiLCAiZGQoYSljYmEiKTsKKworICAgICAgICAvLyBUZXN0IHRvUnVsZS90b1BhdHRlcm4gZm9yIG5vbi1xdWFudGlmaWVkIHNlZ21lbnQuCisgICAgICAgIC8vIENhcmVmdWwgd2l0aCBzcGFjaW5nIGhlcmUuCisgICAgICAgIFN0cmluZyByID0gIihbYS1jXSl7cX0gPiB4ICQxIHg7IjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgU3RyaW5nIHJyID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoIXIuZXF1YWxzKHJyKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFwiIiArIHIgKyAiXCIgeCB0b1J1bGVzKCkgPT4gXCIiICsgcnIgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogXCIiICsgciArICJcIiB4IHRvUnVsZXMoKSA9PiBcIiIgKyByciArICJcIiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCB0b1J1bGUvdG9QYXR0ZXJuIGZvciBxdWFudGlmaWVkIHNlZ21lbnQuCisgICAgICAgIC8vIENhcmVmdWwgd2l0aCBzcGFjaW5nIGhlcmUuCisgICAgICAgIHIgPSAiKFthLWNdKSt7cX0gPiB4ICQxIHg7IjsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgcnIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmICghci5lcXVhbHMocnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogXCIiICsgciArICJcIiB4IHRvUnVsZXMoKSA9PiBcIiIgKyByciArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9rOiBcIiIgKyByICsgIlwiIHggdG9SdWxlcygpID0+IFwiIiArIHJyICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBSYW0ncyB0ZXN0cworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIC8qIHRoaXMgdGVzdCBwZXJmb3JtcyAgdGVzdCBvZiBydWxlcyBpbiBJU08gMTU5MTUgKi8KKyAgICBwdWJsaWMgdm9pZCAgVGVzdERldmFuYWdhcmlMYXRpblJUKCl7CisgICAgICAgIFN0cmluZ1tdICBzb3VyY2UgPSB7CisgICAgICAgICAgICAiYmhcdTAxMDFyYXRhIiwKKyAgICAgICAgICAgICJrcmEiLAorICAgICAgICAgICAgImtcdTFFNjNhIiwKKyAgICAgICAgICAgICJraHJhIiwKKyAgICAgICAgICAgICJncmEiLAorICAgICAgICAgICAgIlx1MUU0NXJhIiwKKyAgICAgICAgICAgICJjcmEiLAorICAgICAgICAgICAgImNocmEiLAorICAgICAgICAgICAgImpcdTAwRjFhIiwKKyAgICAgICAgICAgICJqaHJhIiwKKyAgICAgICAgICAgICJcdTAwRjFyYSIsCisgICAgICAgICAgICAiXHUxRTZEeWEiLAorICAgICAgICAgICAgIlx1MUU2RGhyYSIsCisgICAgICAgICAgICAiXHUxRTBEeWEiLAorICAgICAgICAvLyJyXHUwMzIzeWEiLCAvLyBcdTA5NWMgaXMgbm90IHZhbGlkIGluIERldmFuYWdhcmkKKyAgICAgICAgICAgICJcdTFFMERoeWEiLAorICAgICAgICAgICAgIlx1MUU1QmhyYSIsCisgICAgICAgICAgICAiXHUxRTQ3cmEiLAorICAgICAgICAgICAgInR0YSIsCisgICAgICAgICAgICAidGhyYSIsCisgICAgICAgICAgICAiZGRhIiwKKyAgICAgICAgICAgICJkaHJhIiwKKyAgICAgICAgICAgICJubmEiLAorICAgICAgICAgICAgInByYSIsCisgICAgICAgICAgICAicGhyYSIsCisgICAgICAgICAgICAiYnJhIiwKKyAgICAgICAgICAgICJiaHJhIiwKKyAgICAgICAgICAgICJtcmEiLAorICAgICAgICAgICAgIlx1MUU0OXJhIiwKKyAgICAgICAgLy8ibFx1MDMzMXJhIiwKKyAgICAgICAgICAgICJ5cmEiLAorICAgICAgICAgICAgIlx1MUU4RnJhIiwKKyAgICAgICAgLy8ibC0iLAorICAgICAgICAgICAgInZyYSIsCisgICAgICAgICAgICAiXHUwMTVCcmEiLAorICAgICAgICAgICAgIlx1MUU2M3JhIiwKKyAgICAgICAgICAgICJzcmEiLAorICAgICAgICAgICAgImhtYSIsCisgICAgICAgICAgICAiXHUxRTZEXHUxRTZEYSIsCisgICAgICAgICAgICAiXHUxRTZEXHUxRTZEaGEiLAorICAgICAgICAgICAgIlx1MUU2RGhcdTFFNkRoYSIsCisgICAgICAgICAgICAiXHUxRTBEXHUxRTBEYSIsCisgICAgICAgICAgICAiXHUxRTBEXHUxRTBEaGEiLAorICAgICAgICAgICAgIlx1MUU2RHlhIiwKKyAgICAgICAgICAgICJcdTFFNkRoeWEiLAorICAgICAgICAgICAgIlx1MUUwRHlhIiwKKyAgICAgICAgICAgICJcdTFFMERoeWEiLAorICAgICAgICAgICAgLy8gTm90IHJvdW5kdHJpcHBhYmxlIC0tCisgICAgICAgICAgICAvLyBcdTA5MzlcdTA5NGRcdTA5NGRcdTA5MkUgIC0gaG1hCisgICAgICAgICAgICAvLyBcdTA5MzlcdTA5NGRcdTA5MkUgICAgICAgICAtIGhtYQorICAgICAgICAgICAgLy8gQ2hhcnNUb1VuaWNvZGVTdHJpbmcoImhtYSIpLAorICAgICAgICAgICAgImh5YSIsCisgICAgICAgICAgICAiXHUwMTVCclx1MDMyNSIsCisgICAgICAgICAgICAiXHUwMTVCY2EiLAorICAgICAgICAgICAgIlx1MDExNSIsCisgICAgICAgICAgICAic2FuXHUwMzA0alx1MDEyQmIgc1x1MDExM25hZ3VwdGEiLAorICAgICAgICAgICAgIlx1MDEwMW5hbmQgdmFkZGlyXHUwMTAxanUiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSAgZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiXHUwOTJEXHUwOTNFXHUwOTMwXHUwOTI0IiwgICAgLyogYmhhXHUwMzA0cmF0YSAqLworICAgICAgICAgICAgIlx1MDkxNVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGtyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTE1XHUwOTREXHUwOTM3IiwgICAgICAgICAgLyoga3NcdTAzMjNhICAqLworICAgICAgICAgICAgIlx1MDkxNlx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGtocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTE3XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogZ3JhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MTlcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBuXHUwMzA3cmEgICovCisgICAgICAgICAgICAiXHUwOTFBXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogY3JhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MUJcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBjaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxQ1x1MDk0RFx1MDkxRSIsICAgICAgICAgIC8qIGpuXHUwMzAzYSAgKi8KKyAgICAgICAgICAgICJcdTA5MURcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBqaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxRVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG5cdTAzMDNyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MUZcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiB0XHUwMzIzeWEgICovCisgICAgICAgICAgICAiXHUwOTIwXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogdFx1MDMyM2hyYSAqLworICAgICAgICAgICAgIlx1MDkyMVx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIGRcdTAzMjN5YSAgKi8KKyAgICAgICAgLy8iXHUwOTVDXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogclx1MDMyM3lhICAqLyAvLyBcdTA5NWMgaXMgbm90IHZhbGlkIGluIERldmFuYWdhcmkKKyAgICAgICAgICAgICJcdTA5MjJcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiBkXHUwMzIzaHlhICovCisgICAgICAgICAgICAiXHUwOTIyXHUwOTNDXHUwOTREXHUwOTMwIiwgICAgLyogclx1MDMyM2hyYSAqLworICAgICAgICAgICAgIlx1MDkyM1x1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG5cdTAzMjNyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MjRcdTA5NERcdTA5MjQiLCAgICAgICAgICAvKiB0dGEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyNVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHRocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTI2XHUwOTREXHUwOTI2IiwgICAgICAgICAgLyogZGRhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MjdcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBkaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyOFx1MDk0RFx1MDkyOCIsICAgICAgICAgIC8qIG5uYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJBXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogcHJhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkJcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBwaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyQ1x1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGJyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJEXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogYmhyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkVcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBtcmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyOVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG5cdTAzMzFyYSAgKi8KKyAgICAgICAgLy8iXHUwOTM0XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogbFx1MDMzMXJhICAqLworICAgICAgICAgICAgIlx1MDkyRlx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHlyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJGXHUwOTNDXHUwOTREXHUwOTMwIiwgICAgLyogeVx1MDMwN3JhICAqLworICAgICAgICAvLyJsLSIsCisgICAgICAgICAgICAiXHUwOTM1XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogdnJhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzZcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBzXHUwMzAxcmEgICovCisgICAgICAgICAgICAiXHUwOTM3XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogc1x1MDMyM3JhICAqLworICAgICAgICAgICAgIlx1MDkzOFx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHNyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTM5XHUwOTRkXHUwOTJFIiwgICAgICAgICAgLyogaG1hICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MUZcdTA5NERcdTA5MUYiLCAgICAgICAgICAvKiB0XHUwMzIzdFx1MDMyM2EgICovCisgICAgICAgICAgICAiXHUwOTFGXHUwOTREXHUwOTIwIiwgICAgICAgICAgLyogdFx1MDMyM3RcdTAzMjNoYSAqLworICAgICAgICAgICAgIlx1MDkyMFx1MDk0RFx1MDkyMCIsICAgICAgICAgIC8qIHRcdTAzMjNodFx1MDMyM2hhKi8KKyAgICAgICAgICAgICJcdTA5MjFcdTA5NERcdTA5MjEiLCAgICAgICAgICAvKiBkXHUwMzIzZFx1MDMyM2EgICovCisgICAgICAgICAgICAiXHUwOTIxXHUwOTREXHUwOTIyIiwgICAgICAgICAgLyogZFx1MDMyM2RcdTAzMjNoYSAqLworICAgICAgICAgICAgIlx1MDkxRlx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIHRcdTAzMjN5YSAgKi8KKyAgICAgICAgICAgICJcdTA5MjBcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiB0XHUwMzIzaHlhICovCisgICAgICAgICAgICAiXHUwOTIxXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogZFx1MDMyM3lhICAqLworICAgICAgICAgICAgIlx1MDkyMlx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIGRcdTAzMjNoeWEgKi8KKyAgICAgICAgLy8gImhtYSIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGhtYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTM5XHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogaHlhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzZcdTA5NDMiLCAgICAgICAgICAgICAgICAvKiBzXHUwMzAxclx1MDMyNWEgICovCisgICAgICAgICAgICAiXHUwOTM2XHUwOTREXHUwOTFBIiwgICAgICAgICAgLyogc1x1MDMwMWNhICAqLworICAgICAgICAgICAgIlx1MDkwZCIsICAgICAgICAgICAgICAgICAgICAgIC8qIGVcdTAzMDYgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MUNcdTA5NDBcdTA5MkNcdTA5NEQgXHUwOTM4XHUwOTQ3XHUwOTI4XHUwOTE3XHUwOTQxXHUwOTJBXHUwOTREXHUwOTI0IiwKKyAgICAgICAgICAgICJcdTA5MDZcdTA5MjhcdTA5MDJcdTA5MjZcdTA5NEQgXHUwOTM1XHUwOTI2XHUwOTREXHUwOTI2XHUwOTNGXHUwOTMwXHUwOTNFXHUwOTFDXHUwOTQxIiwKKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpblRvRGV2PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1EZXZhbmFnYXJpIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCApOworICAgICAgICBUcmFuc2xpdGVyYXRvciBkZXZUb0xhdGluPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJEZXZhbmFnYXJpLUxhdGluIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisKKyAgICAgICAgZm9yKGludCBpPSAwOyBpPHNvdXJjZS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBleHBlY3QobGF0aW5Ub0Rldiwoc291cmNlW2ldKSwoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgICAgIGV4cGVjdChkZXZUb0xhdGluLChleHBlY3RlZFtpXSksKHNvdXJjZVtpXSkpOworICAgICAgICB9CisKKyAgICB9CisgICAgcHVibGljIHZvaWQgIFRlc3RUZWx1Z3VMYXRpblJUKCl7CisgICAgICAgIFN0cmluZ1tdICBzb3VyY2UgPSB7CisgICAgICAgICAgICAicmFnaHVyXHUwMTAxbSB2aVx1MDE1QnZhblx1MDEwMWRoYSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmFnaHVyYW0gVmlzd2FuYWRoYSAgICAqLworICAgICAgICAgICAgIlx1MDEwMW5hbmQgdmFkZGlyXHUwMTAxanUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFuYW5kIFZhZGRpcmFqdSAgICAgICAgKi8KKyAgICAgICAgICAgICJyXHUwMTAxalx1MDEyQnYga2FcdTAxNUJhcmFiXHUwMTAxZGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSYWplZXYgS2FzYXJhYmFkYSAgICAgICovCisgICAgICAgICAgICAic2FuXHUwMzA0alx1MDEyQnYga2FcdTAxNUJhcmFiXHUwMTAxZGEiLCAgICAgICAgICAgICAgICAgICAgICAgLyogc2FuamVldiBrYXNhcmFiYWRhICAgICAqLworICAgICAgICAgICAgInNhblx1MDMwNGpcdTAxMkJiIHNlbidndXB0YSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNhbmppYiBzZW5ndXBhdGEgICAgICAgKi8KKyAgICAgICAgICAgICJhbWFyXHUwMTEzbmRyYSBoYW51bVx1MDEwMW51bGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBbWFyZW5kcmEgaGFudW1hbnVsYSAgICovCisgICAgICAgICAgICAicmF2aSBrdW1cdTAxMDFyIHZpXHUwMTVCdmFuXHUwMTAxZGhhIiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmF2aSBLdW1hciBWaXN3YW5hZGhhICAqLworICAgICAgICAgICAgIlx1MDEwMWRpdHlhIGthbmRyXHUwMTEzZ3VsYSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFkaXR5YSBLYW5kcmVndWxhICAgICAgKi8KKyAgICAgICAgICAgICJcdTAxNUJyXHUwMTJCZGhhciBrYVx1MUU0N1x1MUU2RGFtYVx1MDE1QmVcdTFFNkRcdTFFNkRpIiwgICAgICAvKiBTaHJpZGhhciBLYW50YW1zZXR0eSAgICovCisgICAgICAgICAgICAibVx1MDEwMWRoYXYgZGVcdTAxNUJlXHUxRTZEXHUxRTZEaSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTWFkaGF2IERlc2V0dHkgICAgICAgICAqLworICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICJcdTBjMzBcdTBjMThcdTBjNDFcdTBjMzBcdTBjM2VcdTBjMmVcdTBjNGQgXHUwYzM1XHUwYzNmXHUwYzM2XHUwYzRkXHUwYzM1XHUwYzI4XHUwYzNlXHUwYzI3IiwKKyAgICAgICAgICAgICJcdTBjMDZcdTBjMjhcdTBjMDJcdTBjMjZcdTBjNGQgXHUwQzM1XHUwQzI2XHUwQzREXHUwQzI2XHUwQzNGXHUwQzMwXHUwQzNFXHUwQzFDXHUwQzQxIiwKKyAgICAgICAgICAgICJcdTBjMzBcdTBjM2VcdTBjMWNcdTBjNDBcdTBjMzVcdTBjNGQgXHUwYzE1XHUwYzM2XHUwYzMwXHUwYzJjXHUwYzNlXHUwYzI2IiwKKyAgICAgICAgICAgICJcdTBjMzhcdTBjMDJcdTBjMWNcdTBjNDBcdTBjMzVcdTBjNGQgXHUwYzE1XHUwYzM2XHUwYzMwXHUwYzJjXHUwYzNlXHUwYzI2IiwKKyAgICAgICAgICAgICJcdTBjMzhcdTBjMDJcdTBjMWNcdTBjNDBcdTBjMmNcdTBjNGQgXHUwYzM4XHUwYzQ2XHUwYzI4XHUwYzRkXHUwYzE3XHUwYzQxXHUwYzJhXHUwYzRkXHUwYzI0IiwKKyAgICAgICAgICAgICJcdTBjMDVcdTBjMmVcdTBjMzBcdTBjNDdcdTBjMDJcdTBjMjZcdTBjNGRcdTBjMzAgXHUwYzM5XHUwYzI4XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzI4XHUwYzQxXHUwYzMyIiwKKyAgICAgICAgICAgICJcdTBjMzBcdTBjMzVcdTBjM2YgXHUwYzE1XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkIFx1MGMzNVx1MGMzZlx1MGMzNlx1MGM0ZFx1MGMzNVx1MGMyOFx1MGMzZVx1MGMyNyIsCisgICAgICAgICAgICAiXHUwYzA2XHUwYzI2XHUwYzNmXHUwYzI0XHUwYzRkXHUwYzJmIFx1MEMxNVx1MEMwMlx1MEMyNlx1MEM0RFx1MEMzMFx1MEM0N1x1MEMxN1x1MEM0MVx1MGMzMiIsCisgICAgICAgICAgICAiXHUwYzM2XHUwYzRkXHUwYzMwXHUwYzQwXHUwQzI3XHUwQzMwXHUwQzREIFx1MGMxNVx1MGMwMlx1MGMxZlx1MGMyZVx1MGMzNlx1MGM0Nlx1MGMxZlx1MGM0ZFx1MGMxZlx1MGMzZiIsCisgICAgICAgICAgICAiXHUwYzJlXHUwYzNlXHUwYzI3XHUwYzM1XHUwYzRkIFx1MGMyNlx1MGM0Nlx1MGMzNlx1MGM0Nlx1MGMxZlx1MGM0ZFx1MGMxZlx1MGMzZiIsCisgICAgICAgIH07CisKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpblRvRGV2PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1UZWx1Z3UiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGV2VG9MYXRpbj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiVGVsdWd1LUxhdGluIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisKKyAgICAgICAgZm9yKGludCBpPSAwOyBpPHNvdXJjZS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBleHBlY3QobGF0aW5Ub0Rldiwoc291cmNlW2ldKSwoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgICAgIGV4cGVjdChkZXZUb0xhdGluLChleHBlY3RlZFtpXSksKHNvdXJjZVtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgIFRlc3RTYW5za3JpdExhdGluUlQoKXsKKyAgICAgICAgaW50IE1BWF9MRU4gPTE1OworICAgICAgICBTdHJpbmdbXSAgc291cmNlID0geworICAgICAgICAgICAgInJta1x1MUU2M1x1MDExM3QiLAorICAgICAgICAgICAgIlx1MDE1QnJcdTAxMkJtYWQiLAorICAgICAgICAgICAgImJoYWdhdmFkZ1x1MDEyQnRcdTAxMDEiLAorICAgICAgICAgICAgImFkaHlcdTAxMDF5YSIsCisgICAgICAgICAgICAiYXJqdW5hIiwKKyAgICAgICAgICAgICJ2aVx1MUU2M1x1MDEwMWRhIiwKKyAgICAgICAgICAgICJ5XHUwMTREZ2EiLAorICAgICAgICAgICAgImRoclx1MDMyNXRhclx1MDEwMVx1MUU2M1x1MUU2RHJhIiwKKyAgICAgICAgICAgICJ1dlx1MDEwMWNyXHUwMzI1IiwKKyAgICAgICAgICAgICJkaGFybWFrXHUxRTYzXHUwMTEzdHJcdTAxMTMiLAorICAgICAgICAgICAgImt1cnVrXHUxRTYzXHUwMTEzdHJcdTAxMTMiLAorICAgICAgICAgICAgInNhbWF2XHUwMTEzdFx1MDEwMSIsCisgICAgICAgICAgICAieXV5dXRzYXZhXHUxRTI1IiwKKyAgICAgICAgICAgICJtXHUwMTAxbWFrXHUwMTAxXHUxRTI1IiwKKyAgICAgICAgLy8gInBcdTAxMDFcdTFFNDdcdTFFMERhdlx1MDEwMVx1MDE1QmNhaXZhIiwKKyAgICAgICAgICAgICJraW1ha3VydmF0YSIsCisgICAgICAgICAgICAic2FuXHUwMzA0amF2YSIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICJcdTA5MzBcdTA5NERcdTA5MkVcdTA5NERcdTA5MTVcdTA5NERcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NEQiLAorICAgICAgICAgICAgIlx1MDkzNlx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkyZVx1MDkyNlx1MDk0ZCIsCisgICAgICAgICAgICAiXHUwOTJkXHUwOTE3XHUwOTM1XHUwOTI2XHUwOTRkXHUwOTE3XHUwOTQwXHUwOTI0XHUwOTNlIiwKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MjdcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MmYiLAorICAgICAgICAgICAgIlx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0MVx1MDkyOCIsCisgICAgICAgICAgICAiXHUwOTM1XHUwOTNmXHUwOTM3XHUwOTNlXHUwOTI2IiwKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NGJcdTA5MTciLAorICAgICAgICAgICAgIlx1MDkyN1x1MDk0M1x1MDkyNFx1MDkzMFx1MDkzZVx1MDkzN1x1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMCIsCisgICAgICAgICAgICAiXHUwOTA5XHUwOTM1XHUwOTNFXHUwOTFBXHUwOTQzIiwKKyAgICAgICAgICAgICJcdTA5MjdcdTA5MzBcdTA5NGRcdTA5MmVcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDciLAorICAgICAgICAgICAgIlx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyIsCisgICAgICAgICAgICAiXHUwOTM4XHUwOTJlXHUwOTM1XHUwOTQ3XHUwOTI0XHUwOTNlIiwKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NDFcdTA5MmZcdTA5NDFcdTA5MjRcdTA5NGRcdTA5MzhcdTA5MzVcdTA5MDMiLAorICAgICAgICAgICAgIlx1MDkyZVx1MDkzZVx1MDkyZVx1MDkxNVx1MDkzZVx1MDkwMyIsCisgICAgICAgIC8vIlx1MDkyYVx1MDkzZVx1MDkyM1x1MDk0ZFx1MDkyMVx1MDkzNVx1MDkzZVx1MDkzNlx1MDk0ZFx1MDkxYVx1MDk0OFx1MDkzNSIsCisgICAgICAgICAgICAiXHUwOTE1XHUwOTNmXHUwOTJlXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTRkXHUwOTM1XHUwOTI0IiwKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MWNcdTA5MzUiLAorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluVG9EZXY9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLURldmFuYWdhcmkiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGV2VG9MYXRpbj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiRGV2YW5hZ2FyaS1MYXRpbiIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBmb3IoaW50IGk9IDA7IGk8TUFYX0xFTjsgaSsrKXsKKyAgICAgICAgICAgIGV4cGVjdChsYXRpblRvRGV2LChzb3VyY2VbaV0pLChleHBlY3RlZFtpXSkpOworICAgICAgICAgICAgZXhwZWN0KGRldlRvTGF0aW4sKGV4cGVjdGVkW2ldKSwoc291cmNlW2ldKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCAgVGVzdENvbXBvdW5kTGF0aW5SVCgpeworICAgICAgICBpbnQgTUFYX0xFTiA9MTU7CisgICAgICAgIFN0cmluZ1tdICBzb3VyY2UgPSB7CisgICAgICAgICAgICAicm1rXHUxRTYzXHUwMTEzdCIsCisgICAgICAgICAgICAiXHUwMTVCclx1MDEyQm1hZCIsCisgICAgICAgICAgICAiYmhhZ2F2YWRnXHUwMTJCdFx1MDEwMSIsCisgICAgICAgICAgICAiYWRoeVx1MDEwMXlhIiwKKyAgICAgICAgICAgICJhcmp1bmEiLAorICAgICAgICAgICAgInZpXHUxRTYzXHUwMTAxZGEiLAorICAgICAgICAgICAgInlcdTAxNERnYSIsCisgICAgICAgICAgICAiZGhyXHUwMzI1dGFyXHUwMTAxXHUxRTYzXHUxRTZEcmEiLAorICAgICAgICAgICAgInV2XHUwMTAxY3JcdTAzMjUiLAorICAgICAgICAgICAgImRoYXJtYWtcdTFFNjNcdTAxMTN0clx1MDExMyIsCisgICAgICAgICAgICAia3VydWtcdTFFNjNcdTAxMTN0clx1MDExMyIsCisgICAgICAgICAgICAic2FtYXZcdTAxMTN0XHUwMTAxIiwKKyAgICAgICAgICAgICJ5dXl1dHNhdmFcdTFFMjUiLAorICAgICAgICAgICAgIm1cdTAxMDFtYWtcdTAxMDFcdTFFMjUiLAorICAgICAgICAvLyAicFx1MDEwMVx1MUU0N1x1MUUwRGF2XHUwMTAxXHUwMTVCY2FpdmEiLAorICAgICAgICAgICAgImtpbWFrdXJ2YXRhIiwKKyAgICAgICAgICAgICJzYW5cdTAzMDRqYXZhIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSAgZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiXHUwOTMwXHUwOTREXHUwOTJFXHUwOTREXHUwOTE1XHUwOTREXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTREIiwKKyAgICAgICAgICAgICJcdTA5MzZcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MmVcdTA5MjZcdTA5NGQiLAorICAgICAgICAgICAgIlx1MDkyZFx1MDkxN1x1MDkzNVx1MDkyNlx1MDk0ZFx1MDkxN1x1MDk0MFx1MDkyNFx1MDkzZSIsCisgICAgICAgICAgICAiXHUwOTA1XHUwOTI3XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTJmIiwKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDFcdTA5MjgiLAorICAgICAgICAgICAgIlx1MDkzNVx1MDkzZlx1MDkzN1x1MDkzZVx1MDkyNiIsCisgICAgICAgICAgICAiXHUwOTJmXHUwOTRiXHUwOTE3IiwKKyAgICAgICAgICAgICJcdTA5MjdcdTA5NDNcdTA5MjRcdTA5MzBcdTA5M2VcdTA5MzdcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzAiLAorICAgICAgICAgICAgIlx1MDkwOVx1MDkzNVx1MDkzRVx1MDkxQVx1MDk0MyIsCisgICAgICAgICAgICAiXHUwOTI3XHUwOTMwXHUwOTRkXHUwOTJlXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3IiwKKyAgICAgICAgICAgICJcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDciLAorICAgICAgICAgICAgIlx1MDkzOFx1MDkyZVx1MDkzNVx1MDk0N1x1MDkyNFx1MDkzZSIsCisgICAgICAgICAgICAiXHUwOTJmXHUwOTQxXHUwOTJmXHUwOTQxXHUwOTI0XHUwOTRkXHUwOTM4XHUwOTM1XHUwOTAzIiwKKyAgICAgICAgICAgICJcdTA5MmVcdTA5M2VcdTA5MmVcdTA5MTVcdTA5M2VcdTA5MDMiLAorICAgICAgICAvLyAgIlx1MDkyYVx1MDkzZVx1MDkyM1x1MDk0ZFx1MDkyMVx1MDkzNVx1MDkzZVx1MDkzNlx1MDk0ZFx1MDkxYVx1MDk0OFx1MDkzNSIsCisgICAgICAgICAgICAiXHUwOTE1XHUwOTNmXHUwOTJlXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTRkXHUwOTM1XHUwOTI0IiwKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MWNcdTA5MzUiCisgICAgICAgIH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbGF0aW5Ub0RldlRvTGF0aW49VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLURldmFuYWdhcmk7RGV2YW5hZ2FyaS1MYXRpbiIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBkZXZUb0xhdGluVG9EZXY9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkRldmFuYWdhcmktTGF0aW47TGF0aW4tRGV2YW5hZ2FyaSIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBmb3IoaW50IGk9IDA7IGk8TUFYX0xFTjsgaSsrKXsKKyAgICAgICAgICAgIGV4cGVjdChsYXRpblRvRGV2VG9MYXRpbiwoc291cmNlW2ldKSwoc291cmNlW2ldKSk7CisgICAgICAgICAgICBleHBlY3QoZGV2VG9MYXRpblRvRGV2LChleHBlY3RlZFtpXSksKGV4cGVjdGVkW2ldKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdCBHdXJtdWtoaS1EZXZhbmFnYXJpIFRpcHBpIGFuZCBCaW5kaQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHdXJtdWtoaURldmFuYWdhcmkoKXsKKyAgICAgICAgLy8gdGhlIHJ1bGUgc2F5czoKKyAgICAgICAgLy8gKFx1MDkwMikgKHdoZW4gcHJlY2VkZWQgYnkgdm93ZWwpICAgICAgLS0tPiAgKFx1MEEwMikKKyAgICAgICAgLy8gKFx1MDkwMikgKHdoZW4gcHJlY2VkZWQgYnkgY29uc29uYW50KSAgLS0tPiAgKFx1MEE3MCkKKworICAgICAgICBVbmljb2RlU2V0IHZvd2VsID1uZXcgVW5pY29kZVNldCgiW1x1MDkwNS1cdTA5MEEgXHUwOTBGXHUwOTEwXHUwOTEzXHUwOTE0IFx1MDkzZS1cdTA5NDJcdTA5NDdcdTA5NDhcdTA5NEJcdTA5NENcdTA5NERdIik7CisgICAgICAgIFVuaWNvZGVTZXQgbm9uX3Zvd2VsID1uZXcgVW5pY29kZVNldCgiW1x1MDkxNS1cdTA5MjhcdTA5MkEtXHUwOTMwXSIpOworCisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB2SXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iodm93ZWwpOworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgbnZJdGVyID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihub25fdm93ZWwpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJEZXZhbmFnYXJpLUd1cm11a2hpIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzcmMgPSBuZXcgU3RyaW5nQnVmZmVyKCIgXHUwOTAyIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3QgPSBuZXcgU3RyaW5nQnVmZmVyKCIgXHUwQTAyIik7CisgICAgICAgIHdoaWxlKHZJdGVyLm5leHQoKSl7CisgICAgICAgICAgICBzcmMuc2V0Q2hhckF0KDAsKGNoYXIpIHZJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBleHBlY3Quc2V0Q2hhckF0KDAsKGNoYXIpICh2SXRlci5jb2RlcG9pbnQrMHgwMTAwKSk7CisgICAgICAgICAgICBleHBlY3QodHJhbnMsc3JjLnRvU3RyaW5nKCksZXhwZWN0LnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgZXhwZWN0LnNldENoYXJBdCgxLCdcdTBBNzAnKTsKKyAgICAgICAgd2hpbGUobnZJdGVyLm5leHQoKSl7CisgICAgICAgICAgICAvL3NyYy5zZXRDaGFyQXQoMCwoY2hhcikgbnZJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBzcmMuc2V0Q2hhckF0KDAsKGNoYXIpbnZJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBleHBlY3Quc2V0Q2hhckF0KDAsKGNoYXIpIChudkl0ZXIuY29kZXBvaW50KzB4MDEwMCkpOworICAgICAgICAgICAgZXhwZWN0KHRyYW5zLHNyYy50b1N0cmluZygpLGV4cGVjdC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBUZXN0IGluc3RhbnRpYXRpb24gZnJvbSBhIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlSW5zdGFudGlhdGlvbigpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJ0ZV9JTi1MYXRpbiIpOworICAgICAgICAgICAgLy9leHBlY3QodCwgIlx1MDQzMCIsICJhIik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YSBmb3Igb2J0YWluaW5nIHRoZSBzY3JpcHQgdXNlZCBpbiB0aGUgbG9jYWxlIHRlX0lOLiAiK2V4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJydV9SVS1MYXRpbiIpOworICAgICAgICAgICAgZXhwZWN0KHQsICJcdTA0MzAiLCAiYSIpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEgZm9yIG9idGFpbmluZyB0aGUgc2NyaXB0IHVzZWQgaW4gdGhlIGxvY2FsZSBydV9SVS4gIitleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiZW4tZWwiKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCAiYSIsICJcdTAzQjEiKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGxvY2FsZSBkYXRhIGZvciBvYnRhaW5pbmcgdGhlIHNjcmlwdCB1c2VkIGluIHRoZSBsb2NhbGUgZWwuICIrIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRpdGxlIGNhc2UgaGFuZGxpbmcgb2YgYWNjZW50IChzaG91bGQgaWdub3JlIGFjY2VudHMpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRpdGxlQWNjZW50cygpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJUaXRsZSIpOworICAgICAgICBleHBlY3QodCwgImFcdTAzMDBiIGNhbid0IGFiZSIsICJBXHUwMzAwYiBDYW4ndCBBYmUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCYXNpYyB0ZXN0IG9mIGEgbG9jYWxlIHJlc291cmNlIGJhc2VkIHJ1bGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZVJlc291cmNlKCkgeworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gaWQgICAgICAgICAgICAgICAgICAgIGZyb20gICAgICAgICAgICAgdG8KKyAgICAgICAgICAgICJMYXRpbi1HcmVlay9VTkdFR04iLCAgICAiYiIsICAgICAgICAgICAgICJcdTAzYmNcdTAzYzAiLAorICAgICAgICAgICAgIkxhdGluLWVsIiwgICAgICAgICAgICAgICJiIiwgICAgICAgICAgICAgIlx1MDNiY1x1MDNjMCIsCisgICAgICAgICAgICAiTGF0aW4tR3JlZWsiLCAgICAgICAgICAgImIiLCAgICAgICAgICAgICAiXHUwM0IyIiwKKyAgICAgICAgICAgICJHcmVlay1MYXRpbi9VTkdFR04iLCAgICAiXHUwM0IyIiwgICAgICAgICJ2IiwKKyAgICAgICAgICAgICJlbC1MYXRpbiIsICAgICAgICAgICAgICAiXHUwM0IyIiwgICAgICAgICJ2IiwKKyAgICAgICAgICAgICJHcmVlay1MYXRpbiIsICAgICAgICAgICAiXHUwM0IyIiwgICAgICAgICJiIiwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoREFUQVtpXSk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIHBhcnNlIGVycm9ycyByZWZlcmVuY2UgdGhlIHJpZ2h0IGxpbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhcnNlRXJyb3IoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0KKyAgICAgICAgICAgICJhID4gYjtcbiIgKworICAgICAgICAgICAgIiMgbW9yZSBzdHVmZlxuIiArCisgICAgICAgICAgICAiZCA8PCBiOyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYodCE9bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3RyaW5nIGVyciA9IGUuZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgaWYgKGVyci5pbmRleE9mKCJkIDw8IGIiKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZXJyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBlcnIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGQUlMOiBubyBzeW50YXggZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgc2V0cyBvbiBvdXRwdXQgYXJlIGRpc2FsbG93ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE91dHB1dFNldCgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJHNldCA9IFthLWNtLW5dOyBiID4gJHNldDsiOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZih0IT1udWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGQUlMOiBObyBzeW50YXggZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSB1c2UgdmFyaWFibGUgcmFuZ2UgcHJhZ21hLCBtYWtpbmcgc3VyZSB0aGF0IHVzZSBvZgorICAgICAqIHZhcmlhYmxlIHJhbmdlIGNoYXJhY3RlcnMgaXMgZGV0ZWN0ZWQgYW5kIGZsYWdnZWQgYXMgYW4gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlUmFuZ2UoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gInVzZSB2YXJpYWJsZSByYW5nZSAweDcwIDB4NzI7IGEgPiBBOyBiID4gQjsgcSA+IFE7IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmKHQhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIkZBSUw6IE5vIHN5bnRheCBlcnJvciIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW52YWxpZCBwb3N0IGNvbnRleHQgZXJyb3IgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW52YWxpZFBvc3RDb250ZXh0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsICJhfWJ7Yz5kOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYodCE9bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cgPSBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgIGlmIChtc2cuaW5kZXhPZigiYX1ie2MiKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgbXNnKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGQUlMOiBObyBzeW50YXggZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IElEIGZvcm0gdmFyaWFudHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SURGb3JtcygpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJORkMiLCBudWxsLCAiTkZEIiwKKyAgICAgICAgICAgICJuZmQiLCBudWxsLCAiTkZDIiwgLy8gbWFrZSBzdXJlIGNhc2UgaXMgaWdub3JlZAorICAgICAgICAgICAgIkFueS1ORktEIiwgbnVsbCwgIkFueS1ORktDIiwKKyAgICAgICAgICAgICJOdWxsIiwgbnVsbCwgIk51bGwiLAorICAgICAgICAgICAgIi1uZmtjIiwgIm5ma2MiLCAiTkZLRCIsCisgICAgICAgICAgICAiLW5ma2MvIiwgIm5ma2MiLCAiTkZLRCIsCisgICAgICAgICAgICAiTGF0aW4tR3JlZWsvVU5HRUdOIiwgbnVsbCwgIkdyZWVrLUxhdGluL1VOR0VHTiIsCisgICAgICAgICAgICAiR3JlZWsvVU5HRUdOLUxhdGluIiwgIkdyZWVrLUxhdGluL1VOR0VHTiIsICJMYXRpbi1HcmVlay9VTkdFR04iLAorICAgICAgICAgICAgIkJlbmdhbGktRGV2YW5hZ2FyaS8iLCAiQmVuZ2FsaS1EZXZhbmFnYXJpIiwgIkRldmFuYWdhcmktQmVuZ2FsaSIsCisgICAgICAgICAgICAiU291cmNlLSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiU291cmNlL1ZhcmlhbnQtIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICJTb3VyY2UtL1ZhcmlhbnQiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi9WYXJpYW50IiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICIvVmFyaWFudC0iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi0vVmFyaWFudCIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiLS8iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi0iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi8iLCBudWxsLCBudWxsLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIElEID0gREFUQVtpXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBJRCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBJbnZJRCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIGJvb2xlYW4gZXhwVmFsaWQgPSAoZXhwSW52SUQgIT0gbnVsbCk7CisgICAgICAgICAgICBpZiAoZXhwSUQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGV4cElEID0gSUQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgICAgIGlmICh0LmdldElEKCkuZXF1YWxzKGV4cElEKSAmJgorICAgICAgICAgICAgICAgICAgICB1LmdldElEKCkuZXF1YWxzKGV4cEludklEKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBJRCArICIuZ2V0SW52ZXJzZSgpID0+ICIgKyBleHBJbnZJRCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldElEKCkgKyAiIHggZ2V0SW52ZXJzZSgpID0+ICIgKyB1LmdldElEKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwSW52SUQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFleHBWYWxpZCkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IGdldEluc3RhbmNlKCIgKyBJRCArICIpID0+ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpID0+ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjaGVja1J1bGVzKFN0cmluZyBsYWJlbCwgVHJhbnNsaXRlcmF0b3IgdDIsIFN0cmluZyB0ZXN0UnVsZXNGb3J3YXJkKSB7CisgICAgICAgIFN0cmluZyBydWxlczIgPSB0Mi50b1J1bGVzKHRydWUpOworICAgICAgICAvL3J1bGVzMiA9IFRlc3RVdGlsaXR5LnJlcGxhY2VBbGwocnVsZXMyLCBuZXcgVW5pY29kZVNldCgiWycgJ1xuXHJdIiksICIiKTsKKyAgICAgICAgcnVsZXMyID0gVGVzdFV0aWxpdHkucmVwbGFjZShydWxlczIsICIgIiwgIiIpOworICAgICAgICBydWxlczIgPSBUZXN0VXRpbGl0eS5yZXBsYWNlKHJ1bGVzMiwgIlxuIiwgIiIpOworICAgICAgICBydWxlczIgPSBUZXN0VXRpbGl0eS5yZXBsYWNlKHJ1bGVzMiwgIlxyIiwgIiIpOworICAgICAgICB0ZXN0UnVsZXNGb3J3YXJkID0gVGVzdFV0aWxpdHkucmVwbGFjZSh0ZXN0UnVsZXNGb3J3YXJkLCAiICIsICIiKTsKKworICAgICAgICBpZiAoIXJ1bGVzMi5lcXVhbHModGVzdFJ1bGVzRm9yd2FyZCkpIHsKKyAgICAgICAgICAgIGVycmxuKGxhYmVsKTsKKyAgICAgICAgICAgIGxvZ2xuKCJHRU5FUkFURUQgUlVMRVM6ICIgKyBydWxlczIpOworICAgICAgICAgICAgbG9nbG4oIlNIT1VMRCBCRTogICAgICAgIiArIHRlc3RSdWxlc0ZvcndhcmQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFyaydzIHRvUnVsZXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9SdWxlc01hcmsoKSB7CisKKyAgICAgICAgU3RyaW5nIHRlc3RSdWxlcyA9CisgICAgICAgICAgICAiOjpbWzpMYXRpbjpdWzpNYXJrOl1dOyIKKyAgICAgICAgICAgICsgIjo6TkZLRCAoTkZDKTsiCisgICAgICAgICAgICArICI6Okxvd2VyIChMb3dlcik7IgorICAgICAgICAgICAgKyAiYSA8PiBcXHUwM0IxOyIgLy8gYWxwaGEKKyAgICAgICAgICAgICsgIjo6TkZLQyAoTkZEKTsiCisgICAgICAgICAgICArICI6OlVwcGVyIChMb3dlcik7IgorICAgICAgICAgICAgKyAiOjpMb3dlciAoKTsiCisgICAgICAgICAgICArICI6OihbWzpHcmVlazpdWzpNYXJrOl1dKTsiCisgICAgICAgICAgICA7CisgICAgICAgIFN0cmluZyB0ZXN0UnVsZXNGb3J3YXJkID0KKyAgICAgICAgICAgICI6OltbOkxhdGluOl1bOk1hcms6XV07IgorICAgICAgICAgICAgKyAiOjpORktEKE5GQyk7IgorICAgICAgICAgICAgKyAiOjpMb3dlcihMb3dlcik7IgorICAgICAgICAgICAgKyAiYSA+IFxcdTAzQjE7IgorICAgICAgICAgICAgKyAiOjpORktDKE5GRCk7IgorICAgICAgICAgICAgKyAiOjpVcHBlciAoTG93ZXIpOyIKKyAgICAgICAgICAgICsgIjo6TG93ZXIgKCk7IgorICAgICAgICAgICAgOworICAgICAgICBTdHJpbmcgdGVzdFJ1bGVzQmFja3dhcmQgPQorICAgICAgICAgICAgIjo6W1s6R3JlZWs6XVs6TWFyazpdXTsiCisgICAgICAgICAgICArICI6Okxvd2VyIChVcHBlcik7IgorICAgICAgICAgICAgKyAiOjpORkQoTkZLQyk7IgorICAgICAgICAgICAgKyAiXFx1MDNCMSA+IGE7IgorICAgICAgICAgICAgKyAiOjpMb3dlcihMb3dlcik7IgorICAgICAgICAgICAgKyAiOjpORkMoTkZLRCk7IgorICAgICAgICAgICAgOworICAgICAgICBTdHJpbmcgc291cmNlID0gIlx1MDBFMSI7IC8vIGEtYWN1dGUKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJcdTAzQUMiOyAvLyBhbHBoYS1hY3V0ZQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJzb3VyY2UtdGFyZ2V0IiwgdGVzdFJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRhcmdldC1zb3VyY2UiLCB0ZXN0UnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworCisgICAgICAgIGV4cGVjdCh0Miwgc291cmNlLCB0YXJnZXQpOworICAgICAgICBleHBlY3QodDMsIHRhcmdldCwgc291cmNlKTsKKworICAgICAgICBjaGVja1J1bGVzKCJGYWlsZWQgdG9SdWxlcyBGT1JXQVJEIiwgdDIsIHRlc3RSdWxlc0ZvcndhcmQpOworICAgICAgICBjaGVja1J1bGVzKCJGYWlsZWQgdG9SdWxlcyBCQUNLV0FSRCIsIHQzLCB0ZXN0UnVsZXNCYWNrd2FyZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBFc2NhcGUgYW5kIFVuZXNjYXBlIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXNjYXBlKCkgeworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1BbnkiKSwKKyAgICAgICAgICAgICAgICJcXHh7NDB9XFxVMDAwMDAwMzEmI3gzMjsmIzgxOyIsCisgICAgICAgICAgICAgICAiQDEyUSIpOworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvQyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIkFcXFUwMDEwQkVFRlxcdUZFRUQiKSwKKyAgICAgICAgICAgICAgICJcXHUwMDQxXFxVMDAxMEJFRUZcXHVGRUVEIik7CisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9KYXZhIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiQVxcVTAwMTBCRUVGXFx1RkVFRCIpLAorICAgICAgICAgICAgICAgIlxcdTAwNDFcXHVEQkVGXFx1REVFRlxcdUZFRUQiKTsKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1BlcmwiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJBXFxVMDAxMEJFRUZcXHVGRUVEIiksCisgICAgICAgICAgICAgICAiXFx4ezQxfVxceHsxMEJFRUZ9XFx4e0ZFRUR9Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIGRpc3BsYXkgbmFtZXMgb2YgdmFyaWFudHMgbG9vayByZWFzb25hYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIElELCBmb3J3YXJkIG5hbWUsIHJldmVyc2UgbmFtZQorICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB0ZXh0IGFzIG5lY2Vzc2FyeSAtLSB0aGUgaW1wb3J0YW50IHRoaW5nIGlzCisgICAgICAgICAgICAvLyBub3QgdGhlIHRleHQgaXRzZWxmLCBidXQgaG93IHZhcmlvdXMgY2FzZXMgYXJlIGhhbmRsZWQuCisKKyAgICAgICAgICAgIC8vIEJhc2ljIHRlc3QKKyAgICAgICAgICAgICJBbnktSGV4IiwgIkFueSB0byBIZXggRXNjYXBlIiwgIkhleCBFc2NhcGUgdG8gQW55IiwKKworICAgICAgICAgICAgLy8gVmFyaWFudHMKKyAgICAgICAgICAgICJBbnktSGV4L1BlcmwiLCAiQW55IHRvIEhleCBFc2NhcGUvUGVybCIsICJIZXggRXNjYXBlIHRvIEFueS9QZXJsIiwKKworICAgICAgICAgICAgLy8gVGFyZ2V0LW9ubHkgSURzCisgICAgICAgICAgICAiTkZDIiwgIkFueSB0byBORkMiLCAiQW55IHRvIE5GRCIsCisgICAgICAgIH07CisKKyAgICAgICAgTG9jYWxlIFVTID0gTG9jYWxlLlVTOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShEQVRBW2ldLCBVUyk7CisgICAgICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaV0gKyAiLmdldERpc3BsYXlOYW1lKCkgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgbmFtZSArICIsIGV4cGVjdGVkICIgKyBEQVRBW2krMV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBEQVRBW2ldICsgIi5nZXREaXNwbGF5TmFtZSgpID0+ICIgKyBuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgICAgIG5hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZSh0LmdldElEKCksIFVTKTsKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMoREFUQVtpKzJdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgdC5nZXRJRCgpICsgIi5nZXREaXNwbGF5TmFtZSgpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKyAiLCBleHBlY3RlZCAiICsgREFUQVtpKzJdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgdC5nZXRJRCgpICsgIi5nZXREaXNwbGF5TmFtZSgpID0+ICIgKyBuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ292ZXIgZ2V0RGlzcGxheU5hbWUoU3RyaW5nKQorICAgICAgICAgICAgVUxvY2FsZSBzYXZlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZTIgPSBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZSh0LmdldElEKCkpOworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscyhuYW1lMikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERpc3BsYXlOYW1lIHdpdGggZGVmYXVsdCBsb2NhbGUgZmFpbGVkIik7CisgICAgICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoc2F2ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGFuY2hvciBtYXNraW5nCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFuY2hvck1hc2tpbmcoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gIl5hID4gUTsgYSA+IHE7IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZih0PT1udWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBydWxlICsgIiA9PiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3QgaXMgbm90IGluIHRybnN0c3QuY3BwLiBUaGlzIHRlc3QgaGFzIGJlZW4gbW92ZWQgZnJvbSBjb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0LmphdmEKKyAgICAgKiBkdXJpbmcgSUNVNEogbW9kdWxhcml6YXRpb24gdG8gcmVtb3ZlIGRlcGVuZGVuY3kgb2YgdGVzdHMgb24gVHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JpcHRBbGxDb2RlcG9pbnRzKCl7CisgICAgICAgICAgICBpbnQgY29kZTsKKyAgICAgICAgICAgIEhhc2hTZXQgIHNjcmlwdElkc0NoZWNrZWQgICA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICBIYXNoU2V0ICBzY3JpcHRBYmJyc0NoZWNrZWQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgZm9yKCBpbnQgaSA9MDsgaSA8PSAweDEwZmZmZjsgaSsrKXsKKyAgICAgICAgICAgICAgICBjb2RlID0gVVNjcmlwdC5nZXRTY3JpcHQoaSk7CisgICAgICAgICAgICAgICAgaWYoY29kZT09VVNjcmlwdC5JTlZBTElEX0NPREUpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRTY3JpcHQgZm9yIGNvZGVwb2ludCAweCIrIGhleChpKSsiIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgU3RyaW5nIGlkID1VU2NyaXB0LmdldE5hbWUoY29kZSk7CisgICAgICAgICAgICAgICAgIFN0cmluZyBhYmJyID0gVVNjcmlwdC5nZXRTaG9ydE5hbWUoY29kZSk7CisgICAgICAgICAgICAgICAgIGlmICghc2NyaXB0SWRzQ2hlY2tlZC5jb250YWlucyhpZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgIHNjcmlwdElkc0NoZWNrZWQuYWRkKGlkKTsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdJZCA9Ils6IitpZCsiOl07TkZEIjsKKyAgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmV3SWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHQ9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzY3JpcHQgY29kZTogIiAraWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIiBzY3JpcHQgY29kZTogIiAraWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeGNlcHRpb246ICIrZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGlmICghc2NyaXB0QWJicnNDaGVja2VkLmNvbnRhaW5zKGFiYnIpKSB7CisgICAgICAgICAgICAgICAgICAgICBzY3JpcHRBYmJyc0NoZWNrZWQuYWRkKGFiYnIpOworICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5ld0FiYnJJZCA9Ils6IithYmJyKyI6XTtORkQiOworICAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuZXdBYmJySWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHQ9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzY3JpcHQgY29kZTogIiArYWJicik7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2xpdGVyYXRvciBmb3IgIitoZXgoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiIHNjcmlwdCBjb2RlOiAiICthYmJyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhjZXB0aW9uOiAiK2UuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIH0KKworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gcmVnaXN0ZXJSdWxlcyA9IHsKKyAgICAgICAgeyJBbnktRGV2MSIsICJ4ID4gWDsgeSA+IFk7In0sCisgICAgICAgIHsiQW55LURldjIiLCAiWFkgPiBaIn0sCisgICAgICAgIHsiR3JlZWstTGF0aW4vRkFLRSIsCisgICAgICAgICAgICAiW15bOkw6XVs6TTpdXSB7IFx1MDNiY1x1MDNjMCA+IGIgOyAiKworICAgICAgICAgICAgIlx1MDNiY1x1MDNjMCB9IFteWzpMOl1bOk06XV0gPiBiIDsgIisKKyAgICAgICAgICAgICJbXls6TDpdWzpNOl1dIHsgW1x1MDM5Y1x1MDNiY11bXHUwM2EwXHUwM2MwXSA+IEIgOyAiKworICAgICAgICAgICAgIltcdTAzOWNcdTAzYmNdW1x1MDNhMFx1MDNjMF0gfSBbXls6TDpdWzpNOl1dID4gQiA7IgorICAgICAgICAgICAgfSwKKyAgICB9OworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBERVNFUkVUX0RFRSA9IFVURjE2LnZhbHVlT2YoMHgxMDQxNCk7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBERVNFUkVUX2RlZSA9IFVURjE2LnZhbHVlT2YoMHgxMDQzQyk7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSB0ZXN0Q2FzZXMgPSB7CisKKyAgICAgICAgLy8gTk9STUFMSVpBVElPTgorICAgICAgICAvLyBzaG91bGQgYWRkIG1vcmUgdGVzdCBjYXNlcworICAgICAgICB7Ik5GRCIgLCAiYVx1MDMwMCBcdTAwRTAgXHUxMTAwXHUxMTYxIFx1RkY3Nlx1RkY5RVx1MDNEMyJ9LAorICAgICAgICB7Ik5GQyIgLCAiYVx1MDMwMCBcdTAwRTAgXHUxMTAwXHUxMTYxIFx1RkY3Nlx1RkY5RVx1MDNEMyJ9LAorICAgICAgICB7Ik5GS0QiLCAiYVx1MDMwMCBcdTAwRTAgXHUxMTAwXHUxMTYxIFx1RkY3Nlx1RkY5RVx1MDNEMyJ9LAorICAgICAgICB7Ik5GS0MiLCAiYVx1MDMwMCBcdTAwRTAgXHUxMTAwXHUxMTYxIFx1RkY3Nlx1RkY5RVx1MDNEMyJ9LAorCisgICAgICAgIC8vIG1wIC0+IGIgQlVHCisgICAgICAgIHsiR3JlZWstTGF0aW4vVU5HRUdOIiwgIihcdTAzQkNcdTAzQzApIiwgIihiKSJ9LAorICAgICAgICB7IkdyZWVrLUxhdGluL0ZBS0UiLCAiKFx1MDNCQ1x1MDNDMCkiLCAiKGIpIn0sCisKKyAgICAgICAgLy8gY2hlY2sgZm9yIGRldmFuYWdhcmkgYnVnCisgICAgICAgIHsibmZkO0RldjE7RGV2MjtuZmMiLCAieHkiLCAiWiJ9LAorCisgICAgICAgIC8vIGZmLCBpLCBkb3RsZXNzLWksIEksIGRvdHRlZC1JLCBMSkxqbGogZGVzZXJldCBkZWVERUUKKyAgICAgICAgeyJUaXRsZSIsICJhYidjRCBmZmlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsgREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRSwKKyAgICAgICAgICAgICAgICAgICJBYidjZCBGZmlcdTAxMzFpaVx1MDMwNyBcdTAxQzhcdTAxQzlcdTAxQzkgIiArIERFU0VSRVRfREVFICsgREVTRVJFVF9kZWV9LAorICAgICAgICAvL1RPRE86IGVuYWJsZSB0aGlzIHRlc3Qgb25jZSBUaXRsZWNhc2Ugd29ya3MgcmlnaHQKKyAgICAgICAgLy97IlRpdGxlIiwgIlx1RkIwMGlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsgREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRSwKKyAgICAgICAgLy8gICAgICAgICAgIkZmaVx1MDEzMWlpIFx1MDFDOFx1MDFDOVx1MDFDOSAiICsgREVTRVJFVF9ERUUgKyBERVNFUkVUX2RlZX0sCisKKyAgICAgICAgeyJVcHBlciIsICJhYidjRCBcdUZCMDBpXHUwMTMxSVx1MDEzMCBcdTAxQzdcdTAxQzhcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUUsCisgICAgICAgICAgICAgICAgICAiQUInQ0QgRkZJSUlcdTAxMzAgXHUwMUM3XHUwMUM3XHUwMUM3ICIgKyBERVNFUkVUX0RFRSArIERFU0VSRVRfREVFfSwKKyAgICAgICAgeyJMb3dlciIsICJhYidjRCBcdUZCMDBpXHUwMTMxSVx1MDEzMCBcdTAxQzdcdTAxQzhcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUUsCisgICAgICAgICAgICAgICAgICAiYWInY2QgXHVGQjAwaVx1MDEzMWlpXHUwMzA3IFx1MDFDOVx1MDFDOVx1MDFDOSAiICsgREVTRVJFVF9kZWUgKyBERVNFUkVUX2RlZX0sCisKKyAgICAgICAgeyJVcHBlciIsICJhYidjRCBcdUZCMDBpXHUwMTMxSVx1MDEzMCBcdTAxQzdcdTAxQzhcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUV9LAorICAgICAgICB7Ikxvd2VyIiwgImFiJ2NEIFx1RkIwMGlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsgREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRX0sCisKKyAgICAgICAgIC8vIEZPUk1TIE9GIFMKKyAgICAgICAgeyJHcmVlay1MYXRpbi9VTkdFR04iLCAiXHUwM0MzIFx1MDNDM1x1MDNDMiBcdTAzQzJcdTAzQzMiLCAicyBzcyBzXHUwMzMxc1x1MDMzMSJ9LAorICAgICAgICB7IkxhdGluLUdyZWVrL1VOR0VHTiIsICJzIHNzIHNcdTAzMzFzXHUwMzMxIiwgIlx1MDNDMyBcdTAzQzNcdTAzQzIgXHUwM0MyXHUwM0MzIn0sCisgICAgICAgIHsiR3JlZWstTGF0aW4iLCAiXHUwM0MzIFx1MDNDM1x1MDNDMiBcdTAzQzJcdTAzQzMiLCAicyBzcyBzXHUwMzMxc1x1MDMzMSJ9LAorICAgICAgICB7IkxhdGluLUdyZWVrIiwgInMgc3Mgc1x1MDMzMXNcdTAzMzEiLCAiXHUwM0MzIFx1MDNDM1x1MDNDMiBcdTAzQzJcdTAzQzMifSwKKworICAgICAgICAvLyBUYXRpYW5hIGJ1ZworICAgICAgICAvLyBVcHBlcjogVEFUXHUwMkI5XHUwMEMyTkEKKyAgICAgICAgLy8gTG93ZXI6IHRhdFx1MDJCOVx1MDBFMm5hCisgICAgICAgIC8vIFRpdGxlOiBUYXRcdTAyQjlcdTAwRTJuYQorICAgICAgICB7IlVwcGVyIiwgInRhdFx1MDJCOVx1MDBFMm5hIiwgIlRBVFx1MDJCOVx1MDBDMk5BIn0sCisgICAgICAgIHsiTG93ZXIiLCAiVEFUXHUwMkI5XHUwMEMyTkEiLCAidGF0XHUwMkI5XHUwMEUybmEifSwKKyAgICAgICAgeyJUaXRsZSIsICJ0YXRcdTAyQjlcdTAwRTJuYSIsICJUYXRcdTAyQjlcdTAwRTJuYSJ9LAorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3BlY2lhbENhc2VzKCkgeworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVnaXN0ZXJSdWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcyhyZWdpc3RlclJ1bGVzW2ldWzBdLAorICAgICAgICAgICAgICAgIHJlZ2lzdGVyUnVsZXNbaV1bMV0sIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgRHVtbXlGYWN0b3J5LmFkZChyZWdpc3RlclJ1bGVzW2ldWzBdLCB0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSB0ZXN0Q2FzZXNbaV1bMF07CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSB0LmdldElEKCk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gdGVzdENhc2VzW2ldWzFdOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IG51bGw7CisKKyAgICAgICAgICAgIC8vIEF1dG9tYXRpYyBnZW5lcmF0aW9uIG9mIHRhcmdldHMsIHRvIG1ha2UgaXQgc2ltcGxlciB0byBhZGQgdGVzdCBjYXNlcyAoYW5kIG1vcmUgZmFpbC1zYWZlKQorCisgICAgICAgICAgICBpZiAodGVzdENhc2VzW2ldLmxlbmd0aCA+IDIpICAgIHRhcmdldCA9IHRlc3RDYXNlc1tpXVsyXTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIk5GRCIpKSAgICB0YXJnZXQgPSBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJORkMiKSkgICAgdGFyZ2V0ID0gY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSgiTkZLRCIpKSAgIHRhcmdldCA9IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJORktDIikpICAgdGFyZ2V0ID0gY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIkxvd2VyIikpICB0YXJnZXQgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5VUywgc291cmNlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIlVwcGVyIikpICB0YXJnZXQgPSBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKExvY2FsZS5VUywgc291cmNlKTsKKworICAgICAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlZ2lzdGVyUnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIocmVnaXN0ZXJSdWxlc1tpXVswXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBzZWVtcyBsaWtlIHRoZXJlIHNob3VsZCBiZSBhbiBlYXNpZXIgd2F5IHRvIGp1c3QgcmVnaXN0ZXIgYW4gaW5zdGFuY2Ugb2YgYSB0cmFuc2xpdGVyYXRvcgorCisgICAgc3RhdGljIGNsYXNzIER1bW15RmFjdG9yeSBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICBzdGF0aWMgRHVtbXlGYWN0b3J5IHNpbmdsZXRvbiA9IG5ldyBEdW1teUZhY3RvcnkoKTsKKyAgICAgICAgc3RhdGljIEhhc2hNYXAgbSA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgLy8gU2luY2UgVHJhbnNsaXRlcmF0b3JzIGFyZSBpbW11dGFibGUsIHdlIGRvbid0IGhhdmUgdG8gY2xvbmUgb24gc2V0ICYgZ2V0CisgICAgICAgIHN0YXRpYyB2b2lkIGFkZChTdHJpbmcgSUQsIFRyYW5zbGl0ZXJhdG9yIHQpIHsKKyAgICAgICAgICAgIG0ucHV0KElELCB0KTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJSZWdpc3RlcmluZzogIiArIElEICsgIiwgIiArIHQudG9SdWxlcyh0cnVlKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSUQsIHNpbmdsZXRvbik7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgbS5nZXQoSUQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1cnJvZ2F0ZUNhc2luZyAoKSB7CisgICAgICAgIC8vIGNoZWNrIHRoYXQgY2FzaW5nIGhhbmRsZXMgc3Vycm9nYXRlcworICAgICAgICAvLyB0aXRsZWNhc2UgaXMgY3VycmVudGx5IGRlZmVjdGl2ZQorICAgICAgICBpbnQgZGVlID0gVVRGMTYuY2hhckF0KERFU0VSRVRfZGVlLDApOworICAgICAgICBpbnQgREVFID0gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShkZWUpOworICAgICAgICBpZiAoIVVURjE2LnZhbHVlT2YoREVFKS5lcXVhbHMoREVTRVJFVF9ERUUpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHMgdGl0bGVjYXNlIG9mIHN1cnJvZ2F0ZXMiICsgSW50ZWdlci50b1N0cmluZyhkZWUsMTYpICsgIiwgIiArIEludGVnZXIudG9TdHJpbmcoREVFLDE2KSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIudG9VcHBlckNhc2UoREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRSkuZXF1YWxzKERFU0VSRVRfREVFICsgREVTRVJFVF9ERUUpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHMgdXBwZXJjYXNlIG9mIHN1cnJvZ2F0ZXMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShERVNFUkVUX2RlZSArIERFU0VSRVRfREVFKS5lcXVhbHMoREVTRVJFVF9kZWUgKyBERVNFUkVUX2RlZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlscyBsb3dlcmNhc2Ugb2Ygc3Vycm9nYXRlcyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQ2hlY2sgdG8gc2VlIHRoYXQgaW5jcmVtZW50YWwgZ2V0cyBhdCBsZWFzdCBwYXJ0IHdheSB0aHJvdWdoIGEgcmVhc29uYWJsZSBzdHJpbmcuCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5jcmVtZW50YWxQcm9ncmVzcygpIHsKKyAgICAgICAgU3RyaW5nIGxhdGluVGVzdCA9ICJUaGUgUXVpY2sgQnJvd24gRm94LiI7CisgICAgICAgIFN0cmluZyBkZXZhVGVzdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1EZXZhbmFnYXJpIikudHJhbnNsaXRlcmF0ZShsYXRpblRlc3QpOworICAgICAgICBTdHJpbmcga2F0YVRlc3QgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tS2F0YWthbmEiKS50cmFuc2xpdGVyYXRlKGxhdGluVGVzdCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdHMgPSB7CisgICAgICAgICAgICB7IkFueSIsIGxhdGluVGVzdH0sCisgICAgICAgICAgICB7IkxhdGluIiwgbGF0aW5UZXN0fSwKKyAgICAgICAgICAgIHsiSGFsZndpZHRoIiwgbGF0aW5UZXN0fSwKKyAgICAgICAgICAgIHsiRGV2YW5hZ2FyaSIsIGRldmFUZXN0fSwKKyAgICAgICAgICAgIHsiS2F0YWthbmEiLCBrYXRhVGVzdH0sCisgICAgICAgIH07CisKKyAgICAgICAgRW51bWVyYXRpb24gc291cmNlcyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgd2hpbGUoc291cmNlcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHNvdXJjZXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXN0ID0gZmluZE1hdGNoKHNvdXJjZSwgdGVzdHMpOworICAgICAgICAgICAgaWYgKHRlc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGluZyAiICsgc291cmNlICsgIi1YIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFbnVtZXJhdGlvbiB0YXJnZXRzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVGFyZ2V0cyhzb3VyY2UpOworICAgICAgICAgICAgd2hpbGUodGFyZ2V0cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSAoU3RyaW5nKSB0YXJnZXRzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gdmFyaWFudHMgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgd2hpbGUodmFyaWFudHMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAoU3RyaW5nKSB2YXJpYW50cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSBzb3VyY2UgKyAiLSIgKyB0YXJnZXQgKyAiLyIgKyB2YXJpYW50OworICAgICAgICAgICAgICAgICAgICBsb2dsbigiaWQ6ICIgKyBpZCk7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbHRlciA9IGdldFRyYW5zbGl0VGVzdEZpbHRlcigpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwgJiYgaWQuaW5kZXhPZihmaWx0ZXIpIDwgMCkgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkKTsKKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tJbmNyZW1lbnRhbEF1eCh0LCB0ZXN0KTsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ID0gdC50cmFuc2xpdGVyYXRlKHRlc3QpOworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBpbnYgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tJbmNyZW1lbnRhbEF1eChpbnYsIHJldik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBmaW5kTWF0Y2ggKFN0cmluZyBzb3VyY2UsIFN0cmluZ1tdW10gcGFpcnMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHNJZ25vcmVDYXNlKHBhaXJzW2ldWzBdKSkgcmV0dXJuIHBhaXJzW2ldWzFdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIENoZWNrSW5jcmVtZW50YWxBdXgoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nIGlucHV0KSB7CisKKyAgICAgICAgUmVwbGFjZWFibGUgdGVzdCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhpbnB1dCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCB0ZXN0Lmxlbmd0aCgpLCAwLCB0ZXN0Lmxlbmd0aCgpKTsKKyAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3QsIHBvcyk7CisgICAgICAgIGJvb2xlYW4gZ290RXJyb3IgPSBmYWxzZTsKKworICAgICAgICAvLyB3ZSBoYXZlIGEgZmV3IHNwZWNpYWwgY2FzZXMuIEFueS1SZW1vdmUgKHBvcy5zdGFydCA9IDAsIGJ1dCBhbHNvID0gbGltaXQpIGFuZCBVK1hYWFhYP1g/CisKKyAgICAgICAgaWYgKHBvcy5zdGFydCA9PSAwICYmIHBvcy5saW1pdCAhPSAwICYmICF0LmdldElEKCkuZXF1YWxzKCJIZXgtQW55L1VuaWNvZGUiKSkgeworICAgICAgICAgICAgZXJybG4oIk5vIFByb2dyZXNzLCAiICsgdC5nZXRJRCgpICsgIjogIiArIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRlc3QsIHBvcykpOworICAgICAgICAgICAgZ290RXJyb3IgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlBBU1MgUHJvZ3Jlc3MsICIgKyB0LmdldElEKCkgKyAiOiAiICsgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGVzdCwgcG9zKSk7CisgICAgICAgIH0KKyAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24odGVzdCwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5zdGFydCAhPSBwb3MubGltaXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvbXBsZXRlLCAiICsgdC5nZXRJRCgpICsgIjogICIgKyBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dCh0ZXN0LCBwb3MpKTsKKyAgICAgICAgICAgIGdvdEVycm9yID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZighZ290RXJyb3IpeworICAgICAgICAgICAgLy9lcnJsbigiRkFJTDogRGlkIG5vdCBnZXQgZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGdW5jdGlvbigpIHsKKyAgICAgICAgLy8gQ2FyZWZ1bCB3aXRoIHNwYWNpbmcgYW5kICc7JyBoZXJlOiAgUGhyYXNlIHRoaXMgZXhhY3RseQorICAgICAgICAvLyBhcyB0b1J1bGVzKCkgaXMgZ29pbmcgdG8gcmV0dXJuIGl0LiAgSWYgdG9SdWxlcygpIGNoYW5nZXMKKyAgICAgICAgLy8gd2l0aCByZWdhcmQgdG8gc3BhY2luZyBvciAnOycsIHRoZW4gYWRqdXN0IHRoaXMgc3RyaW5nLgorICAgICAgICBTdHJpbmcgcnVsZSA9CisgICAgICAgICAgICAiKFs6THU6XSkgPiAkMSAnKCcgJkxvd2VyKCAkMSApICc9JyAmSGV4KCAmQW55LUxvd2VyKCAkMSApICkgJyknOyI7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmIChyLmVxdWFscyhydWxlKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcnVsZSk7CisgICAgICAgIH0KKworICAgICAgICBleHBlY3QodCwgIlRoZSBRdWljayBCcm93biBGb3giLAorICAgICAgICAgICAgICAgIlQodD1cXHUwMDc0KWhlIFEocT1cXHUwMDcxKXVpY2sgQihiPVxcdTAwNjIpcm93biBGKGY9XFx1MDA2NilveCIpOworICAgICAgICBydWxlID0KKyAgICAgICAgICAgICIoW15cXCAtXFx1MDA3Rl0pID4gJkhleC9Vbmljb2RlKCAkMSApICcgJyAmTmFtZSggJDEgKSA7IjsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICByID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoci5lcXVhbHMocnVsZSkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogdG9SdWxlcygpID0+ICIgKyByKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0b1J1bGVzKCkgPT4gIiArIHIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHJ1bGUpOworICAgICAgICB9CisKKyAgICAgICAgZXhwZWN0KHQsICJcdTAzMDEiLAorICAgICAgICAgICAgICAgIlUrMDMwMSBcXE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW52YWxpZEJhY2tSZWYoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gICIuID4gJDE7IjsKKyAgICAgICAgU3RyaW5nIHJ1bGUyID0iKC4pIDw+ICZoZXgvdW5pY29kZSgkMSkgJm5hbWUoJDEpOyAuID4gJDE7IFt7fV0gPlx1MDAyMDsiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgc2hvdWxkIGhhdmUgcmV0dXJuZWQgTlVMTCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IE9rOiAuID4gJDE7ID0+IG5vIGVycm9yIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0Mj0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0MiIsIHJ1bGUyLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmICh0MiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBzaG91bGQgaGF2ZSByZXR1cm5lZCBOVUxMIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbigiRkFJTDogT2s6IC4gPiAkMTsgPT4gbm8gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICBsb2dsbigiT2s6IC4gPiAkMTsgPT4gIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RNdWx0aWNoYXJTdHJpbmdTZXQoKSB7CisgICAgICAgIC8vIEJhc2ljIHRlc3RpbmcKKyAgICAgICAgU3RyaW5nIHJ1bGUgPQorICAgICAgICAgICAgIiAgICAgICBbe2FhfV0gICAgICAgPiB4OyIgKworICAgICAgICAgICAgIiAgICAgICAgIGEgICAgICAgICAgPiB5OyIgKworICAgICAgICAgICAgIiAgICAgICBbYntiY31dICAgICAgPiB6OyIgKworICAgICAgICAgICAgIlt7Z2R9XSB7IGUgICAgICAgICAgPiBxOyIgKworICAgICAgICAgICAgIiAgICAgICAgIGUgfSBbe2ZnfV0gPiByOyIgOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGVjdCh0LCAiYSBhYSBhYiBiYyBkIGdkIGRlIGdkZSBnZGVmZyBkZGVmZyIsCisgICAgICAgICAgICAgICAgICAieSB4IHl6IHogZCBnZCBkZSBnZHEgZ2RxZmcgZGRyZmciKTsKKworICAgICAgICAvLyBPdmVybGFwcGVkIHN0cmluZyB0ZXN0LiAgTWFrZSBzdXJlIHRoYXQgd2hlbiBtdWx0aXBsZQorICAgICAgICAvLyBzdHJpbmdzIGNhbiBtYXRjaCB0aGF0IHRoZSBsb25nZXN0IG9uZSBpcyBtYXRjaGVkLgorICAgICAgICBydWxlID0KKyAgICAgICAgICAgICIgICAgW2Ege2FifSB7YWJjfV0gICAgPiB4OyIgKworICAgICAgICAgICAgIiAgICAgICAgICAgYiAgICAgICAgICA+IHk7IiArCisgICAgICAgICAgICAiICAgICAgICAgICBjICAgICAgICAgID4gejsiICsKKyAgICAgICAgICAgICIgcSBbdCB7c3R9IHtyc3R9XSB7IGUgPiBwOyIgOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGVjdCh0LCAiYSBhYiBhYmMgcXRlIHFzdGUgcXJzdGUiLAorICAgICAgICAgICAgICAgICAgInggeCB4IHF0cCBxc3RwIHFyc3RwIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGF0IHVzZXItcmVnaXN0ZXJlZCB0cmFuc2xpdGVyYXRvcnMgY2FuIGJlIHVzZWQgdW5kZXIgZnVuY3Rpb24KKyAgICAgKiBzeW50YXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFVzZXJGdW5jdGlvbigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDsKKworICAgICAgICAvLyBUaGVyZSdzIG5vIG5lZWQgdG8gcmVnaXN0ZXIgaW52ZXJzZXMgaWYgd2UgZG9uJ3QgdXNlIHRoZW0KKyAgICAgICAgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkuYWRkKCJBbnktZ2lmIiwKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmIiwKKyAgICAgICAgICAgICAgICAiJ1xcJ3UoLi4pKC4uKSA+ICc8aW1nIHNyYz1cImh0dHA6Ly93d3cudW5pY29kZS5vcmcvZ2lmcy8yNC8nICQxICcvVScgJDEkMiAnLmdpZlwiPic7IiwKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSk7CisgICAgICAgIC8vVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkuYWRkKCJnaWYtQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOworCisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiQW55LVJlbW92ZUN1cmx5IiwKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiUmVtb3ZlQ3VybHkiLCAiW1xce1xcfV0gPiA7IFxcXFxOID4gOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpKTsKKyAgICAgICAgLy9UZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIlJlbW92ZUN1cmx5LUFueSIsIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTnVsbCIpKTsKKworICAgICAgICBsb2dsbigiVHJ5aW5nICZoZXgiKTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiaGV4MiIsICIoLikgPiAmaGV4KCQxKTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgbG9nbG4oIlJlZ2lzdGVyaW5nIik7CisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiQW55LWhleDIiLCB0KTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktaGV4MiIpOworICAgICAgICBleHBlY3QodCwgImFiYyIsICJcXHUwMDYxXFx1MDA2MlxcdTAwNjMiKTsKKworICAgICAgICBsb2dsbigiVHJ5aW5nICZnaWYiKTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmMiIsICIoLikgPiAmR2lmKCZIZXgyKCQxKSk7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGxvZ2xuKCJSZWdpc3RlcmluZyIpOworICAgICAgICBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIkFueS1naWYyIiwgdCk7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LWdpZjIiKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYiIsICI8aW1nIHNyYz1cImh0dHA6Ly93d3cudW5pY29kZS5vcmcvZ2lmcy8yNC8wMC9VMDA2MS5naWZcIj4iICsKKyAgICAgICAgICAgICAgICI8aW1nIHNyYz1cImh0dHA6Ly93d3cudW5pY29kZS5vcmcvZ2lmcy8yNC8wMC9VMDA2Mi5naWZcIj4iKTsKKworICAgICAgICAvLyBUZXN0IHRoYXQgZmlsdGVycyBhcmUgYWxsb3dlZCBhZnRlciAmCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLAorICAgICAgICAgICAgICAgICIoLikgPiAmSGV4KCQxKSAnICcgJkFueS1SZW1vdmVDdXJseSgmTmFtZSgkMSkpICcgJzsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYmMiLCAiXFx1MDA2MSBMQVRJTiBTTUFMTCBMRVRURVIgQSBcXHUwMDYyIExBVElOIFNNQUxMIExFVFRFUiBCIFxcdTAwNjMgTEFUSU4gU01BTEwgTEVUVEVSIEMgIik7CisKKyAgICAgICAgLy8gVW5yZWdpc3RlciBvdXIgdGVzdCBzdHVmZgorICAgICAgICBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS51bnJlZ2lzdGVyKCk7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5IGltcGxlbWVudHMgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeSBzaW5nbGV0b24gPSBuZXcgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkoKTsKKyAgICAgICAgc3RhdGljIEhhc2hNYXAgbSA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkKFN0cmluZyBJRCwgVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAgICAgbS5wdXQobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhJRCksIHQpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KElELCBzaW5nbGV0b24pOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgbS5nZXQobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhJRCkpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlcigpIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGlkcyA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpZHMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGlkID0gKENhc2VJbnNlbnNpdGl2ZVN0cmluZykgaWRzLm5leHQoKTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKGlkLmdldFN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZHMucmVtb3ZlKCk7IC8vIHJlbW92ZXMgcGFpciBmcm9tIG0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIEFueS1YIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QW55WCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgYW55TGF0aW4gPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1MYXRpbiIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCisgICAgICAgIGV4cGVjdChhbnlMYXRpbiwKKyAgICAgICAgICAgICAgICJncmVlazpcdTAzQjFcdTAzQjJcdTAzQkFcdTAzOTFcdTAzOTJcdTAzOUEgaGlyYWdhbmE6XHUzMDQyXHUzMDc2XHUzMDRGIGN5cmlsbGljOlx1MDQzMFx1MDQzMVx1MDQ0NiIsCisgICAgICAgICAgICAgICAiZ3JlZWs6YWJrQUJLIGhpcmFnYW5hOmFidWt1IGN5cmlsbGljOmFiYyIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IHNldCBBUEkuICBUaGVzZSBhcmUgb25seSBpbXBsZW1lbnRlZAorICAgICAqIGZvciBSQlQgYW5kIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgYXQgdGhpcyB0aW1lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTb3VyY2VUYXJnZXRTZXQoKSB7CisgICAgICAgIC8vIFJ1bGVzCisgICAgICAgIFN0cmluZyByID0KKyAgICAgICAgICAgICJhID4gYjsgIiArCisgICAgICAgICAgICAiciBbeHtsdX1dID4gcTsiOworCisgICAgICAgIC8vIEV4cGVjdGVkIHNvdXJjZQorICAgICAgICBVbmljb2RlU2V0IGV4cFNyYyA9IG5ldyBVbmljb2RlU2V0KCJbYXJ4e2x1fV0iKTsKKworICAgICAgICAvLyBFeHBlY3RlZCB0YXJnZXQKKyAgICAgICAgVW5pY29kZVNldCBleHBUcmcgPSBuZXcgVW5pY29kZVNldCgiW2JxXSIpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVW5pY29kZVNldCBzcmMgPSB0LmdldFNvdXJjZVNldCgpOworICAgICAgICBVbmljb2RlU2V0IHRyZyA9IHQuZ2V0VGFyZ2V0U2V0KCk7CisKKyAgICAgICAgaWYgKHNyYy5lcXVhbHMoZXhwU3JjKSAmJiB0cmcuZXF1YWxzKGV4cFRyZykpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHIgKyAiID0+IHNvdXJjZSA9ICIgKyBzcmMudG9QYXR0ZXJuKHRydWUpICsKKyAgICAgICAgICAgICAgICAgICIsIHRhcmdldCA9ICIgKyB0cmcudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgciArICIgPT4gc291cmNlID0gIiArIHNyYy50b1BhdHRlcm4odHJ1ZSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cFNyYy50b1BhdHRlcm4odHJ1ZSkgKworICAgICAgICAgICAgICAgICAgIjsgdGFyZ2V0ID0gIiArIHRyZy50b1BhdHRlcm4odHJ1ZSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cFRyZy50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBoYW5kbGluZyBvZiBydWxlIHdoaXRlc3BhY2UsIGZvciBib3RoIFJCVCBhbmQgVW5pY29kZVNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZVdoaXRlc3BhY2UoKSB7CisgICAgICAgIC8vIFJ1bGVzCisgICAgICAgIFN0cmluZyByID0gImEgPiBcdTIwMEUgYjsiOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKworICAgICAgICBleHBlY3QodCwgImEiLCAiYiIpOworCisgICAgICAgIC8vIFVuaWNvZGVTZXQKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgiW2EgXHUyMDBFXSIpOworCisgICAgICAgIGlmIChzZXQuY29udGFpbnMoMHgyMDBFKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFUrMjAwRSBub3QgYmVpbmcgaWdub3JlZCBieSBVbmljb2RlU2V0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWx0ZXJuYXRlU3ludGF4KCkgeworICAgICAgICAvLyBVKzIyMDYgPT0gJgorICAgICAgICAvLyBVKzIxOTAgPT0gPAorICAgICAgICAvLyBVKzIxOTIgPT0gPgorICAgICAgICAvLyBVKzIxOTQgPT0gPD4KKyAgICAgICAgZXhwZWN0KCJhIFx1MjE5MiB4OyBiIFx1MjE5MCB5OyBjIFx1MjE5NCB6IiwKKyAgICAgICAgICAgICAgICJhYmMiLAorICAgICAgICAgICAgICAgInhieiIpOworICAgICAgICBleHBlY3QoIihbOl5BU0NJSTpdKSBcdTIxOTIgXHUyMjA2TmFtZSgkMSk7IiwKKyAgICAgICAgICAgICAgICI8PVx1MjE5MDsgPj1cdTIxOTI7IDw+PVx1MjE5NDsgJj1cdTIyMDYiLAorICAgICAgICAgICAgICAgIjw9XFxOe0xFRlRXQVJEUyBBUlJPV307ID49XFxOe1JJR0hUV0FSRFMgQVJST1d9OyA8Pj1cXE57TEVGVCBSSUdIVCBBUlJPV307ICY9XFxOe0lOQ1JFTUVOVH0iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UG9zaXRpb25BUEkoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGEgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMyw1LDcsMTEpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBiID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKGEpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBjID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIGMuc2V0KGEpOworICAgICAgICAvLyBDYWxsIHRoZSB0b1N0cmluZygpIEFQSToKKyAgICAgICAgaWYgKGEuZXF1YWxzKGIpICYmIGEuZXF1YWxzKGMpKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBhICsgIiA9PSAiICsgYiArICIgPT0gIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBhICsgIiAhPSAiICsgYiArICIgIT0gIiArIGMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE5ldyB0ZXN0cyBmb3IgdGhlIDo6QkVHSU4vOjpFTkQgc3ludGF4CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBCRUdJTl9FTkRfUlVMRVMgPSBuZXcgU3RyaW5nW10geworICAgICAgICAvLyBbMF0KKyAgICAgICAgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiYWJhID4gejsiLAorCisgICAgICAgIC8vIFsxXQorLyoKKyAgICAgICAgIjo6QkVHSU47IgorICAgICAgICArICJhYmMgPiB4eTsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYSA+IHo7IgorICAgICAgICArICI6OkVORDsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbMl0KKy8qCisgICAgICAgICJhYmMgPiB4eTsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICJhYmEgPiB6OyIKKyAgICAgICAgKyAiOjpFTkQ7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzNdCisvKgorICAgICAgICAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICJhYmEgPiB6OyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFs0XQorICAgICAgICAiYWJjID4geHk7IgorICAgICAgICArICI6Ok51bGw7IgorICAgICAgICArICJhYmEgPiB6OyIsCisKKyAgICAgICAgLy8gWzVdCisgICAgICAgICI6OlVwcGVyOyIKKyAgICAgICAgKyAiQUJDID4geHk7IgorICAgICAgICArICJBQiA+IHg7IgorICAgICAgICArICJDID4gejsiCisgICAgICAgICsgIjo6VXBwZXI7IgorICAgICAgICArICJYWVogPiBwOyIKKyAgICAgICAgKyAiWFkgPiBxOyIKKyAgICAgICAgKyAiWiA+IHI7IgorICAgICAgICArICI6OlVwcGVyOyIsCisKKyAgICAgICAgLy8gWzZdCisgICAgICAgICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IiwKKworICAgICAgICAvLyBbN10KKyAgICAgICAgIjo6TnVsbDsiCisgICAgICAgICsgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiLAorCisgICAgICAgIC8vIFs4XQorICAgICAgICAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIKKyAgICAgICAgKyAiOjpOdWxsOyIsCisKKyAgICAgICAgLy8gWzldCisgICAgICAgICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIjo6TnVsbDsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IiwKKworICAgICAgICAvLyBbMTBdCisvKgorICAgICAgICAiOjpCRUdJTjsiCisgICAgICAgICsgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFsxMV0KKy8qCisgICAgICAgICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIKKyAgICAgICAgKyAiOjpFTkQ7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzEyXQorLyoKKyAgICAgICAgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiJGFiID0gW2FiXTsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiJGFiIHsgJyAnIH0gJGFiID4gJy0nOyIKKyAgICAgICAgKyAiYyB7ICcgJyA+IDsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgIidhLWEnID4gYVxcJXxhOyIKKyAgICAgICAgKyAiOjpFTkQ7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzEzXQorICAgICAgICAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICIkYWIgPSBbYWJdOyIKKyAgICAgICAgKyAiOjpOdWxsOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiCisgICAgICAgICsgIjo6TnVsbDsiCisgICAgICAgICsgIiRhYiB7ICcgJyB9ICRhYiA+ICctJzsiCisgICAgICAgICsgImMgeyAnICcgPiA7IgorICAgICAgICArICI6Ok51bGw7IgorICAgICAgICArICInYS1hJyA+IGFcXCV8YTsiLAorCisgICAgICAgIC8vIFsxNF0KKy8qCisgICAgICAgICI6OlthYmNdOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJhID4geXo7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6VXBwZXI7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzE1XQorICAgICAgICAiOjpbYWJjXTsiCisgICAgICAgICsgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiOjpOdWxsOyIKKyAgICAgICAgKyAiYWJhID4geXo7IgorICAgICAgICArICI6OlVwcGVyOyIsCisKKyAgICAgICAgLy8gWzE2XQorLyoKKyAgICAgICAgIjo6W2FiY107IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJjIDw+IHh5OyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJhIDw+IHl6OyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OlVwcGVyKExvd2VyKTsiCisgICAgICAgICsgIjo6KFtYWVpdKTsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbMTddCisgICAgICAgICI6OlthYmNdOyIKKyAgICAgICAgKyAiYWJjIDw+IHh5OyIKKyAgICAgICAgKyAiOjpOdWxsOyIKKyAgICAgICAgKyAiYWJhIDw+IHl6OyIKKyAgICAgICAgKyAiOjpVcHBlcihMb3dlcik7IgorICAgICAgICArICI6OihbWFlaXSk7IgorICAgIH07CisKKy8qCisoVGhpcyBlbnRpcmUgdGVzdCBpcyBjb21tZW50ZWQgb3V0IGJlbG93IGFuZCB3aWxsIG5lZWQgc29tZSBoZWF2eSByZXZpc2lvbiB3aGVuIHdlIHJlLWFkZAordGhlIDo6QkVHSU4vOjpFTkQgc3R1ZmYpCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gQk9HVVNfQkVHSU5fRU5EX1JVTEVTID0gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgLy8gWzddCisgICAgICAgICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJjID4geHk7IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJhID4gejsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpFTkQ7IiwKKworICAgICAgICAvLyBbOF0KKyAgICAgICAgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiIGFiYSA+IHo7IgorICAgICAgICArICI6OkVORDsiLAorCisgICAgICAgIC8vIFs5XQorICAgICAgICAiOjpCRUdJTjsiCisgICAgICAgICsgIjo6VXBwZXI7IgorICAgICAgICArICI6OkVORDsiCisgICAgfTsKKyovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBCRUdJTl9FTkRfVEVTVF9DQVNFUyA9IG5ldyBTdHJpbmdbXSB7CisgICAgICAgIEJFR0lOX0VORF9SVUxFU1swXSwgImFiYyBhYmFiYyBhYmEiLCAieHkgemJjIHoiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxXSwgImFiYyBhYmFiYyBhYmEiLCAieHkgYWJ4eSB6IiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMl0sICJhYmMgYWJhYmMgYWJhIiwgInh5IGFieHkgeiIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzNdLCAiYWJjIGFiYWJjIGFiYSIsICJ4eSBhYnh5IHoiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbNF0sICJhYmMgYWJhYmMgYWJhIiwgInh5IGFieHkgeiIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1s1XSwgImFiY2NhYmFhY2FiYWJjYmMiLCAiUFhBQVJYUUJSIiwKKworICAgICAgICBCRUdJTl9FTkRfUlVMRVNbNl0sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbN10sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbOF0sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbOV0sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxMF0sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxMV0sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxMl0sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxMl0sICJhICAgIGEgICAgYSAgICBhIiwgImElYSVhJWEiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxMl0sICJhIGEtYiBjIGIgYSIsICJhJWEtYiBjYi1hIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzEzXSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1sxM10sICJhICAgIGEgICAgYSAgICBhIiwgImElYSVhJWEiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTNdLCAiYSBhLWIgYyBiIGEiLCAiYSVhLWIgY2ItYSIsCisKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTRdLCAiYWJjIHh5IGFiYWJjIHh5eiBhYmEiLCAiWFkgeHkgQUJYWSB4eXogWVoiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTVdLCAiYWJjIHh5IGFiYWJjIHh5eiBhYmEiLCAiWFkgeHkgQUJYWSB4eXogWVoiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxNl0sICJhYmMgeHkgYWJhYmMgeHl6IGFiYSIsICJYWSB4eSBBQlhZIHh5eiBZWiIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1sxN10sICJhYmMgeHkgYWJhYmMgeHl6IGFiYSIsICJYWSB4eSBBQlhZIHh5eiBZWiIKKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdEJlZ2luRW5kKCkgeworICAgICAgICAvLyBydW4gdGhyb3VnaCB0aGUgbGlzdCBvZiB0ZXN0IGNhc2VzIGFib3ZlCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQkVHSU5fRU5EX1RFU1RfQ0FTRVMubGVuZ3RoOyBpICs9IDMpIHsKKyAgICAgICAgICAgIGV4cGVjdChCRUdJTl9FTkRfVEVTVF9DQVNFU1tpXSwgQkVHSU5fRU5EX1RFU1RfQ0FTRVNbaSArIDFdLCBCRUdJTl9FTkRfVEVTVF9DQVNFU1tpICsgMl0pOworICAgICAgICB9CisKKyAgICAgICAgLy8gaW5zdGFudGlhdGUgdGhlIG9uZSByZXZlcnNpYmxlIHJ1bGUgc2V0IGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiBhbmQgbWFrZSBzdXJlIGl0IGRvZXMgdGhlIHJpZ2h0IHRoaW5nCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHJldmVyc2VkICA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiUmV2ZXJzZWQiLCBCRUdJTl9FTkRfUlVMRVNbMTddLAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICBleHBlY3QocmV2ZXJzZWQsICJ4eSBYWSBYWVogeXogWVoiLCAieHkgYWJjIHhhYmEgeXogYWJhIik7CisKKyAgICAgICAgLy8gZmluYWxseSwgcnVuIHRocm91Z2ggdGhlIGxpc3Qgb2Ygc3ludGFjdGljYWxseS1pbGwtZm9ybWVkIHJ1bGUgc2V0cyBhYm92ZSBhbmQgbWFrZSBzdXJlCisgICAgICAgIC8vIHRoYXQgYWxsIG9mIHRoZW0gY2F1c2UgZXJyb3JzCisvKgorKGNvbW1lbnRlZCBvdXQgdW50aWwgd2UgaGF2ZSB0aGUgcmVhbCA6OkJFR0lOLzo6RU5EIHN0dWZmIGluIHBsYWNlCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQk9HVVNfQkVHSU5fRU5EX1JVTEVTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImZvbyIsIEJPR1VTX0JFR0lOX0VORF9SVUxFU1tpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgIGVycmxuKCJTaG91bGQgaGF2ZSBnb3R0ZW4gc3ludGF4IGVycm9yIGZyb20gIiArIEJPR1VTX0JFR0lOX0VORF9SVUxFU1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHN1cHBvc2VkIHRvIGhhcHBlbjsgZG8gbm90aGluZyBoZXJlCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyovCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJlZ2luRW5kVG9SdWxlcygpIHsKKyAgICAgICAgLy8gcnVuIHRocm91Z2ggdGhlIHNhbWUgbGlzdCBvZiB0ZXN0IGNhc2VzIHdlIHVzZWQgYWJvdmUsIGJ1dCB0aGlzIHRpbWUsIGluc3RlYWQgb2YganVzdAorICAgICAgICAvLyBpbnN0YW50aWF0aW5nIGEgVHJhbnNsaXRlcmF0b3IgZnJvbSB0aGUgcnVsZXMgYW5kIHJ1bm5pbmcgdGhlIHRlc3QgYWdhaW5zdCBpdCwgd2UgaW5zdGFudGlhdGUKKyAgICAgICAgLy8gYSBUcmFuc2xpdGVyYXRvciBmcm9tIHRoZSBydWxlcywgZG8gdG9SdWxlcygpIG9uIGl0LCBpbnN0YW50aWF0ZSBhIFRyYW5zbGl0ZXJhdG9yIGZyb20KKyAgICAgICAgLy8gdGhlIHJlc3VsdGluZyBzZXQgb2YgcnVsZXMsIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGUgZ2VuZXJhdGVkIHJ1bGUgc2V0IGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50CisgICAgICAgIC8vIHRvIChpLmUuLCBkb2VzIHRoZSBzYW1lIHRoaW5nIGFzKSB0aGUgb3JpZ2luYWwgcnVsZSBzZXQKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCRUdJTl9FTkRfVEVTVF9DQVNFUy5sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiLS0iLCBCRUdJTl9FTkRfVEVTVF9DQVNFU1tpXSwKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBTdHJpbmcgcnVsZXMgPSB0LnRvUnVsZXMoZmFsc2UpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDIgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QgY2FzZSAjIiArIChpIC8gMyksIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0MiwgQkVHSU5fRU5EX1RFU1RfQ0FTRVNbaSArIDFdLCBCRUdJTl9FTkRfVEVTVF9DQVNFU1tpICsgMl0pOworICAgICAgICB9CisKKyAgICAgICAgLy8gZG8gdGhlIHNhbWUgdGhpbmcgZm9yIHRoZSByZXZlcnNpYmxlIHRlc3QgY2FzZQorICAgICAgICBUcmFuc2xpdGVyYXRvciByZXZlcnNlZCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiUmV2ZXJzZWQiLCBCRUdJTl9FTkRfUlVMRVNbMTddLAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICBTdHJpbmcgcnVsZXMgPSByZXZlcnNlZC50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmV2ZXJzZWQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJSZXZlcnNlZCIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZXhwZWN0KHJldmVyc2VkMiwgInh5IFhZIFhZWiB5eiBZWiIsICJ4eSBhYmMgeGFiYSB5eiBhYmEiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0ZXJBbGlhcygpIHsKKyAgICAgICAgU3RyaW5nIGxvbmdJRCA9ICJMb3dlcjtbYWVpb3VdVXBwZXIiOworICAgICAgICBTdHJpbmcgc2hvcnRJRCA9ICJBbnktQ2FwVm93ZWxzIjsKKyAgICAgICAgU3RyaW5nIHJlYWxseVNob3J0SUQgPSAiQ2FwVm93ZWxzIjsKKworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckFsaWFzKHNob3J0SUQsIGxvbmdJRCk7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShsb25nSUQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0MiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHJlYWxseVNob3J0SUQpOworCisgICAgICAgIGlmICghdDEuZ2V0SUQoKS5lcXVhbHMobG9uZ0lEKSkKKyAgICAgICAgICAgIGVycmxuKCJUcmFuc2xpdGVyYXRvciBpbnN0YW50aWF0ZWQgd2l0aCBsb25nIElEIGRvZXNuJ3QgaGF2ZSBsb25nIElEIik7CisgICAgICAgIGlmICghdDIuZ2V0SUQoKS5lcXVhbHMocmVhbGx5U2hvcnRJRCkpCisgICAgICAgICAgICBlcnJsbigiVHJhbnNsaXRlcmF0b3IgaW5zdGFudGlhdGVkIHdpdGggc2hvcnQgSUQgZG9lc24ndCBoYXZlIHNob3J0IElEIik7CisKKyAgICAgICAgaWYgKCF0MS50b1J1bGVzKHRydWUpLmVxdWFscyh0Mi50b1J1bGVzKHRydWUpKSkKKyAgICAgICAgICAgIGVycmxuKCJBbGlhcyB0cmFuc2xpdGVyYXRvcnMgYXJlbid0IHRoZSBzYW1lIik7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihzaG9ydElEKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShzaG9ydElEKTsKKyAgICAgICAgICAgIGVycmxuKCJJbnN0YW50aWF0aW9uIHdpdGggc2hvcnQgSUQgc3VjY2VlZGVkIGFmdGVyIHNob3J0IElEIHdhcyB1bnJlZ2lzdGVyZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRyeSB0aGUgc2FtZSB0aGluZyBhZ2FpbiwgYnV0IHRoaXMgdGltZSB3aXRoIHNvbWV0aGluZyBvdGhlciB0aGFuCisgICAgICAgIC8vIGFuIGluc3RhbmNlIG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IKKyAgICAgICAgU3RyaW5nIHJlYWxJRCA9ICJMYXRpbi1HcmVlayI7CisgICAgICAgIFN0cmluZyBmYWtlSUQgPSAiTGF0aW4tZGxna2pkZmxramRsIjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJBbGlhcyhmYWtlSUQsIHJlYWxJRCk7CisKKyAgICAgICAgdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShyZWFsSUQpOworICAgICAgICB0MiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGZha2VJRCk7CisKKyAgICAgICAgaWYgKCF0MS50b1J1bGVzKHRydWUpLmVxdWFscyh0Mi50b1J1bGVzKHRydWUpKSkKKyAgICAgICAgICAgIGVycmxuKCJBbGlhcyB0cmFuc2xpdGVyYXRvcnMgYXJlbid0IHRoZSBzYW1lIik7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihmYWtlSUQpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFRoZXNlIHRlc3RzIGFyZSBub3QgbWlycm9yZWQgKHlldCkgaW4gaWN1NGMgYXQKKyAgICAvLyBzb3VyY2UvdGVzdC9pbnRsdGVzdC90cmFuc3RzdC5jcHAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIEltcHJvdmUgY29kZSBjb3ZlcmFnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIC8vIE51bGxUcmFuc2xpdGVyYXRvcgorICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk51bGwiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZXhwZWN0KHQsICJhIiwgImEiKTsKKworICAgICAgICAvLyBTb3VyY2UsIHRhcmdldCBzZXQKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1HcmVlayIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB0LnNldEZpbHRlcihuZXcgVW5pY29kZVNldCgiW0EtWl0iKSk7CisgICAgICAgIGxvZ2xuKCJzb3VyY2UgPSAiICsgdC5nZXRTb3VyY2VTZXQoKSk7CisgICAgICAgIGxvZ2xuKCJ0YXJnZXQgPSAiICsgdC5nZXRUYXJnZXRTZXQoKSk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygieCIsICIoLikgPiAmQW55LUhleCgkMSk7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGxvZ2xuKCJzb3VyY2UgPSAiICsgdC5nZXRTb3VyY2VTZXQoKSk7CisgICAgICAgIGxvZ2xuKCJ0YXJnZXQgPSAiICsgdC5nZXRUYXJnZXRTZXQoKSk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RBbnkoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgYWxwaGFiZXRpYyA9IChVbmljb2RlU2V0KSBuZXcgVW5pY29kZVNldCgiWzphbHBoYWJldGljOl0iKS5mcmVlemUoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlc3RTdHJpbmcgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVVNjcmlwdC5DT0RFX0xJTUlUOyArK2kpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2FtcGxlID0gbmV3IFVuaWNvZGVTZXQoKS5hcHBseVByb3BlcnR5QWxpYXMoInNjcmlwdCIsIFVTY3JpcHQuZ2V0U2hvcnROYW1lKGkpKS5yZXRhaW5BbGwoYWxwaGFiZXRpYyk7CisgICAgICAgICAgICBpbnQgY291bnQgPSA1OworICAgICAgICAgICAgZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNhbXBsZSk7IGl0Lm5leHQoKTspIHsKKyAgICAgICAgICAgICAgICB0ZXN0U3RyaW5nLmFwcGVuZChpdC5nZXRTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKC0tY291bnQgPCAwKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiU2FtcGxlIHNldCBmb3IgQW55LUxhdGluOiAiICsgdGVzdFN0cmluZyk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGFueUxhdGluID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImFueS1MYXRuIik7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBhbnlMYXRpbi50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKCJTYW1wbGUgcmVzdWx0IGZvciBBbnktTGF0aW46ICIgKyByZXN1bHQpOworICAgIH0KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBTdXBwb3J0IG1ldGhvZHMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICB2b2lkIGV4cGVjdChTdHJpbmcgcnVsZXMsCisgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQsCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBydWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGV4cGVjdCh0LCBzb3VyY2UsIGV4cGVjdGVkUmVzdWx0LCBwb3MpOworICAgIH0KKworICAgIHZvaWQgZXhwZWN0KFN0cmluZyBydWxlcywgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIGV4cGVjdChydWxlcywgc291cmNlLCBleHBlY3RlZFJlc3VsdCwgbnVsbCk7CisgICAgfQorCisgICAgdm9pZCBleHBlY3QoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0LAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHJldmVyc2VUcmFuc2xpdGVyYXRvcikgeworICAgICAgICBleHBlY3QodCwgc291cmNlLCBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGlmIChyZXZlcnNlVHJhbnNsaXRlcmF0b3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZXhwZWN0KHJldmVyc2VUcmFuc2xpdGVyYXRvciwgZXhwZWN0ZWRSZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgZXhwZWN0ZWRSZXN1bHQsIChUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbikgbnVsbCk7CisgICAgfQorCisgICAgdm9pZCBleHBlY3QoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0LAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcykgeworICAgICAgICBpZiAocG9zID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSB0LnRyYW5zbGl0ZXJhdGUoc291cmNlKTsKKyAgICAgICAgICAgIGlmICghZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6U3RyaW5nIiwgc291cmNlLCByZXN1bHQsIGV4cGVjdGVkUmVzdWx0KSkgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXggPSBudWxsOworICAgICAgICBpZiAocG9zID09IG51bGwpIHsKKyAgICAgICAgICAgIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDAsIHNvdXJjZS5sZW5ndGgoKSwgMCwgc291cmNlLmxlbmd0aCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKHBvcy5jb250ZXh0U3RhcnQsIHBvcy5jb250ZXh0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc3RhcnQsIHBvcy5saW1pdCk7CisgICAgICAgIH0KKworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHNvdXJjZSk7CisKKyAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZSwgaW5kZXgpOworICAgICAgICAvLyBEbyBpdCBhbGwgYXQgb25jZSAtLSBiZWxvdyB3ZSBkbyBpdCBpbmNyZW1lbnRhbGx5CisKKyAgICAgICAgaWYgKGluZGV4LnN0YXJ0ICE9IGluZGV4LmxpbWl0KSB7CisgICAgICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpVTkZJTklTSEVEIiwgc291cmNlLAorICAgICAgICAgICAgICAgICJzdGFydDogIiArIGluZGV4LnN0YXJ0ICsgIiwgbGltaXQ6ICIgKyBpbmRleC5saW1pdCwgZmFsc2UsIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICBpZiAoIWV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlJlcGxhY2VhYmxlIiwgc291cmNlLCByZXN1bHQsIGV4cGVjdGVkUmVzdWx0KSkgcmV0dXJuOworCisKKyAgICAgICAgaWYgKHBvcyA9PSBudWxsKSB7CisgICAgICAgICAgICBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24ocG9zLmNvbnRleHRTdGFydCwgcG9zLmNvbnRleHRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zdGFydCwgcG9zLmxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgaW5jcmVtZW50YWwgdHJhbnNsaXRlcmF0aW9uIC0tIHRoaXMgcmVzdWx0CisgICAgICAgIC8vIG11c3QgYmUgdGhlIHNhbWUgYWZ0ZXIgd2UgZmluYWxpemUgKHNlZSBiZWxvdykuCisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChzb3VyY2UpOworICAgICAgICByc291cmNlLnJlcGxhY2UoMCwgcnNvdXJjZS5sZW5ndGgoKSwgIiIpOworICAgICAgICBpZiAocG9zICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJzb3VyY2UucmVwbGFjZSgwLCAwLCBzb3VyY2UpOworICAgICAgICAgICAgdi5hZGQoVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQocnNvdXJjZSwgaW5kZXgpKTsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlLCBpbmRleCk7CisgICAgICAgICAgICB2LmFkZChVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChyc291cmNlLCBpbmRleCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgLy92LmFkZChpID09IDAgPyAiIiA6ICIgKyAiICsgc291cmNlLmNoYXJBdChpKSArICIiKTsKKyAgICAgICAgICAgICAgICAvL2xvZy5hcHBlbmQoc291cmNlLmNoYXJBdChpKSkuYXBwZW5kKCIgLT4gIikpOworICAgICAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlLCBpbmRleCwgc291cmNlLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgLy92LmFkZChVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChyc291cmNlLCBpbmRleCkgKyBzb3VyY2Uuc3Vic3RyaW5nKGkrMSkpOworICAgICAgICAgICAgICAgIHYuYWRkKFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHJzb3VyY2UsIGluZGV4KSArCisgICAgICAgICAgICAgICAgICAgICAgKChpPHNvdXJjZS5sZW5ndGgoKS0xKT8oIiArICciICsgc291cmNlLmNoYXJBdChpKzEpICsgIicgLT4iKToiID0+IikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXMgYSBmaW5hbCBzdGVwIGluIGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiwgd2UgbXVzdCBjYWxsCisgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGUgdG8gZmluaXNoIG9mZiBhbnkgcGVuZGluZyBwYXJ0aWFsIG1hdGNoZXMgdGhhdAorICAgICAgICAvLyB3ZXJlIHdhaXRpbmcgZm9yIG1vcmUgaW5wdXQuCisgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UsIGluZGV4KTsKKyAgICAgICAgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICAvL2xvZy5hcHBlbmQoIiA9PiAiKS5hcHBlbmQocnNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgdi5hZGQocmVzdWx0KTsKKworICAgICAgICBTdHJpbmdbXSByZXN1bHRzID0gbmV3IFN0cmluZ1t2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocmVzdWx0cyk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOkluY3JlbWVudGFsIiwgcmVzdWx0cywKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIHJldHVybiBleHBlY3RBdXgodGFnLCBuZXcgU3RyaW5nW10ge3NvdXJjZSwgcmVzdWx0fSwKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCwgYm9vbGVhbiBwYXNzLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICByZXR1cm4gZXhwZWN0QXV4KHRhZywgbmV3IFN0cmluZ1tdIHtzb3VyY2UsIHJlc3VsdH0sCisgICAgICAgICAgICAgICAgICBwYXNzLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBwYXNzLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICByZXR1cm4gZXhwZWN0QXV4KHRhZywgbmV3IFN0cmluZ1tdIHtzb3VyY2V9LAorICAgICAgICAgICAgICAgICAgcGFzcywKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0KTsKKyAgICB9CisKKyAgICBib29sZWFuIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmdbXSByZXN1bHRzLCBib29sZWFuIHBhc3MsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIG1zZygocGFzcz8iKCI6IkZBSUw6ICgiKSt0YWcrIikiLCBwYXNzID8gTE9HIDogRVJSLCB0cnVlLCB0cnVlKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbDsKKyAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBsYWJlbCA9ICJzb3VyY2U6ICAgIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSByZXN1bHRzLmxlbmd0aCAtIDEpIHsKKyAgICAgICAgICAgICAgICBsYWJlbCA9ICJyZXN1bHQ6ICAgIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1ZlcmJvc2UoKSAmJiBwYXNzKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBsYWJlbCA9ICJpbnRlcm0iICsgaSArICI6ICAiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXNnKCIgICAgIiArIGxhYmVsICsgcmVzdWx0c1tpXSwgcGFzcyA/IExPRyA6IEVSUiwgZmFsc2UsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFwYXNzKSB7CisgICAgICAgICAgICBtc2coICAiICAgIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRSZXN1bHQsIEVSUiwgZmFsc2UsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBhc3M7CisgICAgfQorfQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Vbmljb2RlTWFwVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVNYXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTllZmE2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Vbmljb2RlTWFwVGVzdC5qYXZhCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJFbnVtcy5FQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5Vbmljb2RlTWFwOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuUHJldHR5UHJpbnRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Tb3J0ZWRTZXRSZWxhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIFVuaWNvZGVTZXQKKyAqLworcHVibGljIGNsYXNzIFVuaWNvZGVNYXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAKKyAgc3RhdGljIGZpbmFsIGludCBNT0RJRllfVEVTVF9MSU1JVCA9IDMyOworICBzdGF0aWMgZmluYWwgaW50IE1PRElGWV9URVNUX0lURVJBVElPTlMgPSAxMDAwMDA7CisgIAorICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICBuZXcgVW5pY29kZU1hcFRlc3QoKS5ydW4oYXJncyk7CisgIH0KKyAgCisgIHB1YmxpYyB2b2lkIFRlc3RNb2RpZnkoKSB7CisgICAgUmFuZG9tIHJhbmRvbSA9IG5ldyBSYW5kb20oMCk7CisgICAgVW5pY29kZU1hcCB1bmljb2RlTWFwID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICBIYXNoTWFwIGhhc2hNYXAgPSBuZXcgSGFzaE1hcCgpOworICAgIFN0cmluZ1tdIHZhbHVlcyA9IHtudWxsLCAidGhlIiwgInF1aWNrIiwgImJyb3duIiwgImZveCJ9OworICAgIGZvciAoaW50IGNvdW50ID0gMTsgY291bnQgPD0gTU9ESUZZX1RFU1RfSVRFUkFUSU9OUzsgKytjb3VudCkgeworICAgICAgU3RyaW5nIHZhbHVlID0gdmFsdWVzW3JhbmRvbS5uZXh0SW50KHZhbHVlcy5sZW5ndGgpXTsKKyAgICAgIGludCBzdGFydCA9IHJhbmRvbS5uZXh0SW50KE1PRElGWV9URVNUX0xJTUlUKTsgLy8gdGVzdCBsaW1pdGVkIHJhbmdlCisgICAgICBpbnQgZW5kID0gcmFuZG9tLm5leHRJbnQoTU9ESUZZX1RFU1RfTElNSVQpOworICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB7CisgICAgICAgIGludCB0ZW1wID0gc3RhcnQ7CisgICAgICAgIHN0YXJ0ID0gZW5kOworICAgICAgICBlbmQgPSB0ZW1wOworICAgICAgfQorICAgICAgaW50IG1vZENvdW50ID0gY291bnQgJiAweEZGOworICAgICAgaWYgKG1vZENvdW50ID09IDAgJiYgaXNWZXJib3NlKCkpIHsKKyAgICAgICAgbG9nbG4oIioqKiIrY291bnQpOworICAgICAgICBsb2dsbih1bmljb2RlTWFwLnRvU3RyaW5nKCkpOworICAgICAgfQorICAgICAgdW5pY29kZU1hcC5wdXRBbGwoc3RhcnQsIGVuZCwgdmFsdWUpOworICAgICAgaWYgKG1vZENvdW50ID09IDEgJiYgaXNWZXJib3NlKCkpIHsKKyAgICAgICAgbG9nbG4oIj4+Plx0IiArIFV0aWxpdHkuaGV4KHN0YXJ0KSArICIuLiIgKyBVdGlsaXR5LmhleChlbmQpICsgIlx0IiArIHZhbHVlKTsKKyAgICAgICAgbG9nbG4odW5pY29kZU1hcC50b1N0cmluZygpKTsKKyAgICAgIH0KKyAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICBoYXNoTWFwLnB1dChuZXcgSW50ZWdlcihpKSwgdmFsdWUpOworICAgICAgfQorICAgICAgaWYgKCFoYXNTYW1lVmFsdWVzKHVuaWNvZGVNYXAsIGhhc2hNYXApKSB7CisgICAgICAgIGVycmxuKCJGYWlsZWQgYXQgIiArIGNvdW50KTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBwcml2YXRlIGJvb2xlYW4gaGFzU2FtZVZhbHVlcyhVbmljb2RlTWFwIHVuaWNvZGVNYXAsIEhhc2hNYXAgaGFzaE1hcCkgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTU9ESUZZX1RFU1RfTElNSVQ7ICsraSkgeworICAgICAgT2JqZWN0IHVuaWNvZGVNYXBWYWx1ZSA9IHVuaWNvZGVNYXAuZ2V0VmFsdWUoaSk7CisgICAgICBPYmplY3QgaGFzaE1hcFZhbHVlID0gaGFzaE1hcC5nZXQobmV3IEludGVnZXIoaSkpOworICAgICAgaWYgKHVuaWNvZGVNYXBWYWx1ZSAhPSBoYXNoTWFwVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Vbmljb2RlU2V0VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVTZXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjc2MDY5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Vbmljb2RlU2V0VGVzdC5qYXZhCkBAIC0wLDAgKzEsMjAyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckVudW1zLkVDaGFyYWN0ZXJDYXRlZ29yeTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlByZXR0eVByaW50ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuU29ydGVkU2V0UmVsYXRpb247CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBVbmljb2RlU2V0CisgKi8KK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgCisgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9UID0gIiUlJSUiOworICAKKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgbmV3IFVuaWNvZGVTZXRUZXN0KCkucnVuKGFyZ3MpOworICB9CisgIAorICAKKyAgcHVibGljIHZvaWQgVGVzdFByb3BlcnR5QWNjZXNzKCkgeworICAgIC8vIHRlc3QgdG8gc2VlIHRoYXQgYWxsIG9mIHRoZSBuYW1lcyB3b3JrCisgICAgZm9yIChpbnQgcHJvcE51bSA9IFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQ7IHByb3BOdW0gPCBVUHJvcGVydHkuSU5UX0xJTUlUOyArK3Byb3BOdW0pIHsKKyAgICAgIGZvciAoaW50IG5hbWVDaG9pY2UgPSBVUHJvcGVydHkuTmFtZUNob2ljZS5TSE9SVDsgbmFtZUNob2ljZSA8PSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HOyArK25hbWVDaG9pY2UpIHsKKyAgICAgICAgaWYgKHByb3BOdW0gPj0gVVByb3BlcnR5LkJJTkFSWV9MSU1JVCAmJiBwcm9wTnVtIDwgVVByb3BlcnR5LklOVF9TVEFSVCkgY29udGludWU7IC8vIHNraXAgdGhlIGdhcAorICAgICAgICBTdHJpbmcgcHJvcE5hbWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgcHJvcE5hbWUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShwcm9wTnVtLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICBpZiAocHJvcE5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKG5hbWVDaG9pY2UgPT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpIGNvbnRpbnVlOyAvLyBhbGxvdyBub24tZXhpc3RlbnQgc2hvcnQgbmFtZXMKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgIGVycmxuKCJDYW4ndCBnZXQgcHJvcGVydHkgbmFtZSBmb3I6ICIKKyAgICAgICAgICAgICAgKyAiUHJvcGVydHkgKCIgKyBwcm9wTnVtICsgIikiCisgICAgICAgICAgICAgICsgIiwgTmFtZUNob2ljZTogIiArIG5hbWVDaG9pY2UgKyAiLCAiCisgICAgICAgICAgICAgICsgZTEuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJQcm9wZXJ0eSAoIiArIHByb3BOdW0gKyAiKTogIiArIHByb3BOYW1lKTsKKyAgICAgICAgZm9yIChpbnQgdmFsdWVOdW0gPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUocHJvcE51bSk7IHZhbHVlTnVtIDw9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShwcm9wTnVtKTsgKyt2YWx1ZU51bSkgeworICAgICAgICAgIFN0cmluZyB2YWx1ZU5hbWU7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHZhbHVlTmFtZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcE51bSwgdmFsdWVOdW0sIG5hbWVDaG9pY2UpOworICAgICAgICAgICAgaWYgKHZhbHVlTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgIGlmIChuYW1lQ2hvaWNlID09IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLlNIT1JUKSBjb250aW51ZTsgLy8gYWxsb3cgbm9uLWV4aXN0ZW50IHNob3J0IG5hbWVzCisgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgIC8vIEhBQ0sgZm9yIG5vdworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocHJvcE51bSA9PSA0MDk4ICYmIGUxIGluc3RhbmNlb2YgTnVsbFBvaW50ZXJFeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgaWYgKHNraXBJZkJlZm9yZUlDVSgzLDcpKSBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcm9wTnVtID09IDQxMTIgfHwgcHJvcE51bSA9PSA0MTEzKSB7CisgICAgICAgICAgICAgIGlmIChza2lwSWZCZWZvcmVJQ1UoMyw3KSkgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGVycmxuKCJDYW4ndCBnZXQgcHJvcGVydHkgdmFsdWUgbmFtZSBmb3I6ICIKKyAgICAgICAgICAgICAgICArICJQcm9wZXJ0eSAoIiArIHByb3BOdW0gKyAiKTogIiArIHByb3BOYW1lICsgIiwgIiAKKyAgICAgICAgICAgICAgICArICJWYWx1ZSAoIiArIHZhbHVlTnVtICsgIikgIgorICAgICAgICAgICAgICAgICsgIiwgTmFtZUNob2ljZTogIiArIG5hbWVDaG9pY2UgKyAiLCAiCisgICAgICAgICAgICAgICAgKyBlMS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgbG9nbG4oIlZhbHVlICgiICsgdmFsdWVOdW0gKyAiKTogIiArIHZhbHVlTmFtZSk7CisgICAgICAgICAgVW5pY29kZVNldCB0ZXN0U2V0OworICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0ZXN0U2V0ID0gbmV3IFVuaWNvZGVTZXQoIls6IiArIHByb3BOYW1lICsgIj0iICsgdmFsdWVOYW1lICsgIjpdIik7CisgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ2FuJ3QgY3JlYXRlIFVuaWNvZGVTZXQgZm9yOiAiCisgICAgICAgICAgICAgICAgKyAiUHJvcGVydHkgKCIgKyBwcm9wTnVtICsgIik6ICIgKyBwcm9wTmFtZSArICIsICIgCisgICAgICAgICAgICAgICAgKyAiVmFsdWUgKCIgKyB2YWx1ZU51bSArICIpOiAiICsgdmFsdWVOYW1lICsgIiwgIgorICAgICAgICAgICAgICAgICsgZS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgVW5pY29kZVNldCBjb2xsZWN0ZWRFcnJvcnMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgIGZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcih0ZXN0U2V0KTsgaXQubmV4dCgpOykgeworICAgICAgICAgICAgaW50IHZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGl0LmNvZGVwb2ludCwgcHJvcE51bSk7CisgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWVOdW0pIHsKKyAgICAgICAgICAgICAgY29sbGVjdGVkRXJyb3JzLmFkZChpdC5jb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoY29sbGVjdGVkRXJyb3JzLnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICBpZiAocHJvcE51bSA9PSA0MTA3ICYmIHZhbHVlTnVtID09IDAgJiYgc2tpcElmQmVmb3JlSUNVKDMsNykpIHsKKyAgICAgICAgICAgICAgY29udGludWU7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIlByb3BlcnR5IFZhbHVlIERpZmZlcnM6ICIgCisgICAgICAgICAgICAgICAgKyAiUHJvcGVydHkgKCIgKyBwcm9wTnVtICsgIik6ICIgKyBwcm9wTmFtZSArICIsICIgCisgICAgICAgICAgICAgICAgKyAiVmFsdWUgKCIgKyB2YWx1ZU51bSArICIpOiAiICsgdmFsdWVOYW1lICsgIiwgIgorICAgICAgICAgICAgICAgICsgIkRpZmZlcmluZyB2YWx1ZXM6ICIgKyBjb2xsZWN0ZWRFcnJvcnMudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KKyAgCisgIAorICAvKioKKyAgICogVGVzdCB0b1BhdHRlcm4oKS4KKyAgICovCisgIHB1YmxpYyB2b2lkIFRlc3RUb1BhdHRlcm4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAvLyBUZXN0IHRoYXQgdG9QYXR0ZXJuKCkgcm91bmQgdHJpcHMgd2l0aCBzeW50YXggY2hhcmFjdGVycworICAgIC8vIGFuZCB3aGl0ZXNwYWNlLgorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgT1RIRVJfVE9QQVRURVJOX1RFU1RTLmxlbmd0aDsgKytpKSB7CisgICAgICBjaGVja1BhdChPVEhFUl9UT1BBVFRFUk5fVEVTVFNbaV0sIG5ldyBVbmljb2RlU2V0KE9USEVSX1RPUEFUVEVSTl9URVNUU1tpXSkpOworICAgIH0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICBpZiAoKGkgPD0gMHhGRiAmJiAhVUNoYXJhY3Rlci5pc0xldHRlcihpKSkgfHwgVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoaSkpIHsKKyAgICAgICAgLy8gY2hlY2sgdmFyaW91cyBjb21iaW5hdGlvbnMgdG8gbWFrZSBzdXJlIHRoZXkgYWxsIHdvcmsuCisgICAgICAgIGlmIChpICE9IDAgJiYgIXRvUGF0dGVybkF1eChpLCBpKSkgY29udGludWU7CisgICAgICAgIGlmICghdG9QYXR0ZXJuQXV4KDAsIGkpKSBjb250aW51ZTsKKyAgICAgICAgaWYgKCF0b1BhdHRlcm5BdXgoaSwgMHhGRkZGKSkgY29udGludWU7CisgICAgICB9CisgICAgfSAKKyAgICAKKyAgICAvLyBUZXN0IHBhdHRlcm4gYmVoYXZpb3Igb2YgbXVsdGljaGFyYWN0ZXIgc3RyaW5ncy4KKyAgICBVbmljb2RlU2V0IHMgPSBuZXcgVW5pY29kZVNldCgiW2EteiB7YWF9IHthYn1dIik7CisgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e2FhfXthYn1dIiwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiYWEiLCAiYWIiLCBOT1QsICJhYyJ9KTsKKyAgICBzLmFkZCgiYWMiKTsKKyAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7YWF9e2FifXthY31dIiwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiYWEiLCAiYWIiLCAiYWMiLCBOT1QsICJ4eSJ9KTsKKyAgICAKKyAgICBzLmFwcGx5UGF0dGVybigiW2EteiB7XFx7bH0ge3JcXH19XSIpOworICAgIGV4cGVjdFRvUGF0dGVybihzLCAiW2EtentyXFx9fXtcXHtsfV0iLAorICAgICAgICBuZXcgU3RyaW5nW10geyJ7bCIsICJyfSIsIE5PVCwgInh5In0pOworICAgIHMuYWRkKCJbXSIpOworICAgIGV4cGVjdFRvUGF0dGVybihzLCAiW2EtentcXFtcXF19e3JcXH19e1xce2x9XSIsCisgICAgICAgIG5ldyBTdHJpbmdbXSB7IntsIiwgInJ9IiwgIltdIiwgTk9ULCAieHkifSk7CisgICAgCisgICAgcy5hcHBseVBhdHRlcm4oIlthLXoge1x1NEUwMVx1NEUwMn17XFxuXFxyfV0iKTsKKyAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7XFx1MDAwQVxcdTAwMER9e1xcdTRFMDFcXHU0RTAyfV0iLAorICAgICAgICBuZXcgU3RyaW5nW10geyJcdTRFMDFcdTRFMDIiLCAiXG5cciJ9KTsKKyAgICAKKyAgICBzLmNsZWFyKCk7CisgICAgcy5hZGQoImFiYyIpOworICAgIHMuYWRkKCJhYmMiKTsKKyAgICBleHBlY3RUb1BhdHRlcm4ocywgIlt7YWJjfV0iLAorICAgICAgICBuZXcgU3RyaW5nW10geyJhYmMiLCBOT1QsICJhYiJ9KTsKKyAgICAKKyAgICAvLyBKQiMzNDAwOiBGb3IgMiBjaGFyYWN0ZXIgcmFuZ2VzIHByZWZlciBbYWJdIHRvIFthLWJdCisgICAgcy5jbGVhcigpOyAKKyAgICBzLmFkZCgnYScsICdiJyk7CisgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYWJdIiwgbnVsbCk7CisgICAgCisgICAgLy8gQ292ZXIgYXBwbHlQYXR0ZXJuLCBhcHBseVByb3BlcnR5QWxpYXMKKyAgICBzLmNsZWFyKCk7CisgICAgcy5hcHBseVBhdHRlcm4oIlthYiBdIiwgdHJ1ZSk7CisgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYWJdIiwgbmV3IFN0cmluZ1tdIHsiYSIsIE5PVCwgImFiIn0pOworICAgIHMuY2xlYXIoKTsKKyAgICBzLmFwcGx5UGF0dGVybigiW2FiIF0iLCBmYWxzZSk7CisgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbXFxcdTAwMjBhYl0iLCBuZXcgU3RyaW5nW10geyJhIiwgIlx1MDAyMCIsIE5PVCwgImFiIn0pOworICAgIAorICAgIHMuY2xlYXIoKTsKKyAgICBzLmFwcGx5UHJvcGVydHlBbGlhcygibnYiLCAiMC41Iik7CisgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbXFx1MDBCRFxcdTBGMkFcXHUyQ0ZEXFxVMDAwMTAxNDFcXFUwMDAxMDE3NVxcVTAwMDEwMTc2XSIsIG51bGwpOworICAgIC8vIFVuaWNvZGUgNC4xIGFkZHMgXHUyQ0ZEXFUwMDAxMDE0MVxVMDAwMTAxNzVcVTAwMDEwMTc2IHdpdGggbnVtZXJpYyB2YWx1ZSAxLzIKKyAgICAKKyAgICBzLmNsZWFyKCk7CisgICAgcy5hcHBseVByb3BlcnR5QWxpYXMoImdjIiwgIkx1Iik7CisgICAgLy8gVE9ETyBleHBlY3RUb1BhdHRlcm4ocywgd2hhdD8pCisgIH0KKyAgCisgIHN0YXRpYyBTdHJpbmdbXSBPVEhFUl9UT1BBVFRFUk5fVEVTVFMgPSB7CisgICAgIltbOmxhdGluOl0mWzpncmVlazpdXSIsIAorICAgICJbWzpsYXRpbjpdLVs6Z3JlZWs6XV0iLAorICAgICJbOm5vbnNwYWNpbmcgbWFyazpdIgorICB9OworICAKKyAgCisgIHB1YmxpYyBib29sZWFuIHRvUGF0dGVybkF1eChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAvLyB1c2UgSW50ZWdlci50b1N0cmluZyBiZWNhdXNlIFV0aWxpdHkuaGV4IGRvZXNuJ3QgaGFuZGxlIGludHMKKyAgICBTdHJpbmcgc291cmNlID0gIjB4IiArIEludGVnZXIudG9TdHJpbmcoc3RhcnQsMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgaWYgKHN0YXJ0ICE9IGVuZCkgc291cmNlICs9ICIuLjB4IiArIEludGVnZXIudG9TdHJpbmcoZW5kLDE2KS50b1VwcGVyQ2FzZSgpOworICAgIFVuaWNvZGVTZXQgdGVzdFNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgdGVzdFNldC5hZGQoc3RhcnQsIGVuZCk7CisgICAgcmV0dXJuIGNoZWNrUGF0KHNvdXJjZSwgdGVzdFNldCk7CisgIH0KKyAgCisgIGJvb2xlYW4gY2hlY2tQYXQgKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgdGVzdFNldCkgeworICAgIFN0cmluZyBwYXQgPSAiIjsKKyAgICB0cnkgeworICAgICAgLy8gV2hhdCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSBvZiBpcyB0aGF0IGEgcGF0dGVybiBnZW5lcmF0ZWQKKyAgICAgIC8vIGJ5IHRvUGF0dGVybigpLCB3aXRoIG9yIHdpdGhvdXQgZXNjYXBlZCB1bnByaW50YWJsZXMsIGNhbgorICAgICAgLy8gYmUgcGFzc2VkIGJhY2sgaW50byB0aGUgVW5pY29kZVNldCBjb25zdHJ1Y3Rvci4KKyAgICAgIFN0cmluZyBwYXQwID0gdGVzdFNldC50b1BhdHRlcm4odHJ1ZSk7CisgICAgICBpZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGVzY2FwZWQpIiwgdGVzdFNldCwgcGF0MCkpIHJldHVybiBmYWxzZTsKKyAgICAgIAorICAgICAgLy9TdHJpbmcgcGF0MSA9IHVuZXNjYXBlTGVuaWVudGx5KHBhdDApOworICAgICAgLy9pZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGluIGNvZGUpIiwgdGVzdFNldCwgcGF0MSkpIHJldHVybiBmYWxzZTsKKyAgICAgIAorICAgICAgU3RyaW5nIHBhdDIgPSB0ZXN0U2V0LnRvUGF0dGVybihmYWxzZSk7CisgICAgICBpZiAoIWNoZWNrUGF0KHNvdXJjZSwgdGVzdFNldCwgcGF0MikpIHJldHVybiBmYWxzZTsKKyAgICAgIAorICAgICAgLy9TdHJpbmcgcGF0MyA9IHVuZXNjYXBlTGVuaWVudGx5KHBhdDIpOworICAgICAgLy9pZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGluIGNvZGUpIiwgdGVzdFNldCwgcGF0MykpIHJldHVybiBmYWxzZTsKKyAgICAgIAorICAgICAgLy9sb2dsbihzb3VyY2UgKyAiID0+ICIgKyBwYXQwICsgIiwgIiArIHBhdDEgKyAiLCAiICsgcGF0MiArICIsICIgKyBwYXQzKTsKKyAgICAgIGxvZ2xuKHNvdXJjZSArICIgPT4gIiArIHBhdDAgKyAiLCAiICsgcGF0Mik7CisgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgIGVycmxuKCJFWENFUFRJT04gaW4gdG9QYXR0ZXJuOiAiICsgc291cmNlICsgIiA9PiAiICsgcGF0KTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgCisgIGJvb2xlYW4gY2hlY2tQYXQgKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgdGVzdFNldCwgU3RyaW5nIHBhdCkgeworICAgIFVuaWNvZGVTZXQgdGVzdFNldDIgPSBuZXcgVW5pY29kZVNldChwYXQpOworICAgIGlmICghdGVzdFNldDIuZXF1YWxzKHRlc3RTZXQpKSB7CisgICAgICBlcnJsbigiRmFpbCB0b1BhdHRlcm46ICIgKyBzb3VyY2UgKyAiOyAiICsgcGF0ICsgIiA9PiAiICsKKyAgICAgICAgICB0ZXN0U2V0Mi50b1BhdHRlcm4oZmFsc2UpICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgdGVzdFNldC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgCisgIC8vIE5PVEU6IGNvcGllZCB0aGUgZm9sbG93aW5nIGZyb20gVXRpbGl0eS4gVGhlcmUgb3VnaHQgdG8gYmUgYSB2ZXJzaW9uIGluIHRoZXJlIHdpdGggYSBmbGFnCisgIC8vIHRoYXQgZG9lcyB0aGUgSmF2YSBzdHVmZgorICAKKyAgcHVibGljIHN0YXRpYyBpbnQgdW5lc2NhcGVBdChTdHJpbmcgcywgaW50W10gb2Zmc2V0MTYpIHsKKyAgICBpbnQgYzsKKyAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICBpbnQgbiA9IDA7CisgICAgaW50IG1pbkRpZyA9IDA7CisgICAgaW50IG1heERpZyA9IDA7CisgICAgaW50IGJpdHNQZXJEaWdpdCA9IDQ7CisgICAgaW50IGRpZzsKKyAgICBpbnQgaTsKKyAgICAKKyAgICAvKiBDaGVjayB0aGF0IG9mZnNldCBpcyBpbiByYW5nZSAqLworICAgIGludCBvZmZzZXQgPSBvZmZzZXQxNlswXTsKKyAgICBpbnQgbGVuZ3RoID0gcy5sZW5ndGgoKTsKKyAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPj0gbGVuZ3RoKSB7CisgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qIEZldGNoIGZpcnN0IFVDaGFyIGFmdGVyICdcXCcgKi8KKyAgICBjID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAKKyAgICAvKiBDb252ZXJ0IGhleGFkZWNpbWFsIGFuZCBvY3RhbCBlc2NhcGVzICovCisgICAgc3dpdGNoIChjKSB7CisgICAgICBjYXNlICd1JzoKKyAgICAgICAgbWluRGlnID0gbWF4RGlnID0gNDsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIC8qCisgICAgICAgICBjYXNlICdVJzoKKyAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDg7CisgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgIG1heERpZyA9IDI7CisgICAgICAgICBicmVhazsKKyAgICAgICAgICovCisgICAgICBkZWZhdWx0OgorICAgICAgICBkaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIDgpOworICAgICAgaWYgKGRpZyA+PSAwKSB7CisgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgIG1heERpZyA9IDM7CisgICAgICAgIG4gPSAxOyAvKiBBbHJlYWR5IGhhdmUgZmlyc3Qgb2N0YWwgZGlnaXQgKi8KKyAgICAgICAgYml0c1BlckRpZ2l0ID0gMzsKKyAgICAgICAgcmVzdWx0ID0gZGlnOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChtaW5EaWcgIT0gMCkgeworICAgICAgd2hpbGUgKG9mZnNldCA8IGxlbmd0aCAmJiBuIDwgbWF4RGlnKSB7CisgICAgICAgIC8vIFRFTVBPUkFSWQorICAgICAgICAvLyBUT0RPOiBSZXN0b3JlIHRoZSBjaGFyMzItYmFzZWQgY29kZSB3aGVuIFVDaGFyYWN0ZXIuZGlnaXQKKyAgICAgICAgLy8gaXMgd29ya2luZyAoQnVnIDY2KS4KKyAgICAgICAgCisgICAgICAgIC8vYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICAvL2RpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgIGMgPSBzLmNoYXJBdChvZmZzZXQpOworICAgICAgICBkaWcgPSBDaGFyYWN0ZXIuZGlnaXQoKGNoYXIpYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgIGlmIChkaWcgPCAwKSB7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCA8PCBiaXRzUGVyRGlnaXQpIHwgZGlnOworICAgICAgICAvL29mZnNldCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICsrb2Zmc2V0OworICAgICAgICArK247CisgICAgICB9CisgICAgICBpZiAobiA8IG1pbkRpZykgeworICAgICAgICByZXR1cm4gLTE7CisgICAgICB9CisgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qIENvbnZlcnQgQy1zdHlsZSBlc2NhcGVzIGluIHRhYmxlICovCisgICAgZm9yIChpPTA7IGk8VU5FU0NBUEVfTUFQLmxlbmd0aDsgaSs9MikgeworICAgICAgaWYgKGMgPT0gVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gVU5FU0NBUEVfTUFQW2krMV07CisgICAgICB9IGVsc2UgaWYgKGMgPCBVTkVTQ0FQRV9NQVBbaV0pIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIElmIG5vIHNwZWNpYWwgZm9ybXMgYXJlIHJlY29nbml6ZWQsIHRoZW4gY29uc2lkZXIKKyAgICAgKiB0aGUgYmFja3NsYXNoIHRvIGdlbmVyaWNhbGx5IGVzY2FwZSB0aGUgbmV4dCBjaGFyYWN0ZXIuICovCisgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgcmV0dXJuIGM7CisgIH0KKyAgCisgIC8qIFRoaXMgbWFwIG11c3QgYmUgaW4gQVNDRU5ESU5HIE9SREVSIE9GIFRIRSBFU0NBUEUgQ09ERSAqLworICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBjaGFyW10gVU5FU0NBUEVfTUFQID0geworICAgIC8qIiAgIDB4MjIsIDB4MjIgKi8KKyAgICAvKicgICAweDI3LCAweDI3ICovCisgICAgLyo/ICAgMHgzRiwgMHgzRiAqLworICAgIC8qXCAgIDB4NUMsIDB4NUMgKi8KKyAgICAvKmEqLyAweDYxLCAweDA3LAorICAgIC8qYiovIDB4NjIsIDB4MDgsCisgICAgLypmKi8gMHg2NiwgMHgwYywKKyAgICAvKm4qLyAweDZFLCAweDBhLAorICAgIC8qciovIDB4NzIsIDB4MGQsCisgICAgLyp0Ki8gMHg3NCwgMHgwOSwKKyAgICAvKnYqLyAweDc2LCAweDBiCisgIH07CisgIAorICAvKioKKyAgICogQ29udmVydCBhbGwgZXNjYXBlcyBpbiBhIGdpdmVuIHN0cmluZyB1c2luZyB1bmVzY2FwZUF0KCkuCisgICAqIExlYXZlIGludmFsaWQgZXNjYXBlIHNlcXVlbmNlcyB1bmNoYW5nZWQuCisgICAqLworICBwdWJsaWMgc3RhdGljIFN0cmluZyB1bmVzY2FwZUxlbmllbnRseShTdHJpbmcgcykgeworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgaW50W10gcG9zID0gbmV3IGludFsxXTsKKyAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CisgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICBwb3NbMF0gPSBpOworICAgICAgICBpbnQgZSA9IHVuZXNjYXBlQXQocywgcG9zKTsKKyAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlKTsKKyAgICAgICAgICBpID0gcG9zWzBdOworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgIH0KKyAgCisgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJucygpIHsKKyAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgZXhwZWN0UGF0dGVybihzZXQsICJbW2EtbV0mW2Qtel0mW2steV1dIiwgICJrbSIpOworICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW1thLXpdLVttLXldLVtkLXJdXSIsICAiYWN6eiIpOworICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2FcXC16XSIsICAiLS1hYXp6Iik7CisgICAgZXhwZWN0UGF0dGVybihzZXQsICJbLWF6XSIsICAiLS1hYXp6Iik7CisgICAgZXhwZWN0UGF0dGVybihzZXQsICJbYXotXSIsICAiLS1hYXp6Iik7CisgICAgZXhwZWN0UGF0dGVybihzZXQsICJbW1thLXpdLVthZWlvdV1pXV0iLCAiYmRmbnB0dnoiKTsKKyAgICAKKyAgICAvLyBUaHJvdyBpbiBhIHRlc3Qgb2YgY29tcGxlbWVudAorICAgIHNldC5jb21wbGVtZW50KCk7CisgICAgU3RyaW5nIGV4cCA9ICdcdTAwMDAnICsgImFlZW9vdXUiICsgKGNoYXIpKCd6JysxKSArICdcdUZGRkYnOworICAgIGV4cGVjdFBhaXJzKHNldCwgZXhwKTsKKyAgfQorICAKKyAgcHVibGljIHZvaWQgVGVzdENhdGVnb3JpZXMoKSB7CisgICAgaW50IGZhaWx1cmVzID0gMDsKKyAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCJbOkx1Ol0iKTsKKyAgICBleHBlY3RDb250YWlubWVudChzZXQsICJBQkMiLCAiYWJjIik7CisgICAgCisgICAgLy8gTWFrZSBzdXJlIGdlbmVyYXRpb24gb2YgTCBkb2Vzbid0IHBvbGx1dGUgY2FjaGVkIEx1IHNldAorICAgIC8vIEZpcnN0IGdlbmVyYXRlIEwsIHRoZW4gTHUKKyAgICAvLyBub3QgdXNlZCBpbnQgVE9QID0gMHgyMDA7IC8vIERvbid0IG5lZWQgdG8gZ28gb3ZlciB0aGUgd2hvbGUgcmFuZ2U6CisgICAgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIls6TDpdIik7CisgICAgZm9yIChpbnQgaT0wOyBpPDB4MjAwOyArK2kpIHsKKyAgICAgIGJvb2xlYW4gbCA9IFVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSk7CisgICAgICBpZiAobCAhPSBzZXQuY29udGFpbnMoKGNoYXIpaSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IEwgY29udGFpbnMgIiArIChjaGFyKWkgKyAiID0gIiArIAorICAgICAgICAgICAgc2V0LmNvbnRhaW5zKChjaGFyKWkpKTsKKyAgICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMTApIGJyZWFrOworICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzZXQgPSBuZXcgVW5pY29kZVNldCgiWzpMdTpdIik7CisgICAgZm9yIChpbnQgaT0wOyBpPDB4MjAwOyArK2kpIHsKKyAgICAgIGJvb2xlYW4gbHUgPSAoVUNoYXJhY3Rlci5nZXRUeXBlKGkpID09IEVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKTsKKyAgICAgIGlmIChsdSAhPSBzZXQuY29udGFpbnMoKGNoYXIpaSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IEx1IGNvbnRhaW5zICIgKyAoY2hhcilpICsgIiA9ICIgKyAKKyAgICAgICAgICAgIHNldC5jb250YWlucygoY2hhcilpKSk7CisgICAgICAgIGlmICgrK2ZhaWx1cmVzID09IDIwKSBicmVhazsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgCisgIHB1YmxpYyB2b2lkIFRlc3RBZGRSZW1vdmUoKSB7CisgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgIHNldC5hZGQoJ2EnLCAneicpOworICAgIGV4cGVjdFBhaXJzKHNldCwgImF6Iik7CisgICAgc2V0LnJlbW92ZSgnbScsICdwJyk7CisgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWxxeiIpOworICAgIHNldC5yZW1vdmUoJ2UnLCAnZycpOworICAgIGV4cGVjdFBhaXJzKHNldCwgImFkaGxxeiIpOworICAgIHNldC5yZW1vdmUoJ2QnLCAnaScpOworICAgIGV4cGVjdFBhaXJzKHNldCwgImFjamxxeiIpOworICAgIHNldC5yZW1vdmUoJ2MnLCAncicpOworICAgIGV4cGVjdFBhaXJzKHNldCwgImFic3oiKTsKKyAgICBzZXQuYWRkKCdmJywgJ3EnKTsKKyAgICBleHBlY3RQYWlycyhzZXQsICJhYmZxc3oiKTsKKyAgICBzZXQucmVtb3ZlKCdhJywgJ2cnKTsKKyAgICBleHBlY3RQYWlycyhzZXQsICJocXN6Iik7CisgICAgc2V0LnJlbW92ZSgnYScsICd6Jyk7CisgICAgZXhwZWN0UGFpcnMoc2V0LCAiIik7CisgICAgCisgICAgLy8gVHJ5IHJlbW92aW5nIGFuIGVudGlyZSBzZXQgZnJvbSBhbm90aGVyIHNldAorICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2MteF0iLCAiY3giKTsKKyAgICBVbmljb2RlU2V0IHNldDIgPSBuZXcgVW5pY29kZVNldCgpOworICAgIGV4cGVjdFBhdHRlcm4oc2V0MiwgIltmLWt5LXphLWJjW3Z3XV0iLCAiYWNma3Z3eXoiKTsKKyAgICBzZXQucmVtb3ZlQWxsKHNldDIpOworICAgIGV4cGVjdFBhaXJzKHNldCwgImRlbHV4eCIpOworICAgIAorICAgIC8vIFRyeSBhZGRpbmcgYW4gZW50aXJlIHNldCB0byBhbm90aGVyIHNldAorICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2phY2tpZW1jbGVhbl0iLCAiYWFjY2VlaW4iKTsKKyAgICBleHBlY3RQYXR0ZXJuKHNldDIsICJbaGl0b3NoaW5hbWVrYXRhamFtZXNhbmRlcnNvbl0iLCAiYWFkZWhrbW9ydCIpOworICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWFjZWhvcnQiKTsKKyAgICAKKyAgICAvLyBUZXN0IGNvbW11dGF0aXZpdHkKKyAgICBleHBlY3RQYXR0ZXJuKHNldCwgIltoaXRvc2hpbmFtZWthdGFqYW1lc2FuZGVyc29uXSIsICJhYWRlaGttb3J0Iik7CisgICAgZXhwZWN0UGF0dGVybihzZXQyLCAiW2phY2tpZW1jbGVhbl0iLCAiYWFjY2VlaW4iKTsKKyAgICBzZXQuYWRkQWxsKHNldDIpOworICAgIGV4cGVjdFBhaXJzKHNldCwgImFhY2Vob3J0Iik7CisgIH0KKyAgCisgIC8qKgorICAgKiBNYWtlIHN1cmUgbWluaW1hbCByZXByZXNlbnRhdGlvbiBpcyBtYWludGFpbmVkLgorICAgKi8KKyAgcHVibGljIHZvaWQgVGVzdE1pbmltYWxSZXAoKSB7CisgICAgLy8gVGhpcyBpcyBwcmV0dHkgdGhvcm91Z2hseSB0ZXN0ZWQgYnkgY2hlY2tDYW5vbmljYWxSZXAoKQorICAgIC8vIHJ1biBhZ2FpbnN0IHRoZSBleGhhdXN0aXZlIG9wZXJhdGlvbiByZXN1bHRzLiAgVXNlIHRoZSBjb2RlCisgICAgLy8gaGVyZSBmb3IgZGVidWdnaW5nIHNwZWNpZmljIHNwb3QgcHJvYmxlbXMuCisgICAgCisgICAgLy8gMSBvdmVybGFwIGFnYWluc3QgMgorICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIltoLWttLXFdIik7CisgICAgVW5pY29kZVNldCBzZXQyID0gbmV3IFVuaWNvZGVTZXQoIltpLW9dIik7CisgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICBleHBlY3RQYWlycyhzZXQsICJocSIpOworICAgIC8vIHJpZ2h0CisgICAgc2V0LmFwcGx5UGF0dGVybigiW2EtbV0iKTsKKyAgICBzZXQyLmFwcGx5UGF0dGVybigiW2Utb10iKTsKKyAgICBzZXQuYWRkQWxsKHNldDIpOworICAgIGV4cGVjdFBhaXJzKHNldCwgImFvIik7CisgICAgLy8gbGVmdAorICAgIHNldC5hcHBseVBhdHRlcm4oIltlLW9dIik7CisgICAgc2V0Mi5hcHBseVBhdHRlcm4oIlthLW1dIik7CisgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICBleHBlY3RQYWlycyhzZXQsICJhbyIpOworICAgIC8vIDEgb3ZlcmxhcCBhZ2FpbnN0IDMKKyAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbYS1lZy1tby13XSIpOworICAgIHNldDIuYXBwbHlQYXR0ZXJuKCJbZC1xXSIpOworICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgZXhwZWN0UGFpcnMoc2V0LCAiYXciKTsKKyAgfQorICAKKyAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAvLyBkZWZhdWx0IGN0CisgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgIGlmICghc2V0LmlzRW1wdHkoKSB8fCBzZXQuZ2V0UmFuZ2VDb3VudCgpICE9IDApIHsKKyAgICAgIGVycmxuKCJGQUlMLCBzZXQgc2hvdWxkIGJlIGVtcHR5IGJ1dCBpc24ndDogIiArCisgICAgICAgICAgc2V0KTsKKyAgICB9CisgICAgCisgICAgLy8gY2xlYXIoKSwgaXNFbXB0eSgpCisgICAgc2V0LmFkZCgnYScpOworICAgIGlmIChzZXQuaXNFbXB0eSgpKSB7CisgICAgICBlcnJsbigiRkFJTCwgc2V0IHNob3VsZG4ndCBiZSBlbXB0eSBidXQgaXM6ICIgKworICAgICAgICAgIHNldCk7CisgICAgfQorICAgIHNldC5jbGVhcigpOworICAgIGlmICghc2V0LmlzRW1wdHkoKSkgeworICAgICAgZXJybG4oIkZBSUwsIHNldCBzaG91bGQgYmUgZW1wdHkgYnV0IGlzbid0OiAiICsKKyAgICAgICAgICBzZXQpOworICAgIH0KKyAgICAKKyAgICAvLyBzaXplKCkKKyAgICBzZXQuY2xlYXIoKTsKKyAgICBpZiAoc2V0LnNpemUoKSAhPSAwKSB7CisgICAgICBlcnJsbigiRkFJTCwgc2l6ZSBzaG91bGQgYmUgMCwgYnV0IGlzICIgKyBzZXQuc2l6ZSgpICsKKyAgICAgICAgICAiOiAiICsgc2V0KTsKKyAgICB9CisgICAgc2V0LmFkZCgnYScpOworICAgIGlmIChzZXQuc2l6ZSgpICE9IDEpIHsKKyAgICAgIGVycmxuKCJGQUlMLCBzaXplIHNob3VsZCBiZSAxLCBidXQgaXMgIiArIHNldC5zaXplKCkgKworICAgICAgICAgICI6ICIgKyBzZXQpOworICAgIH0KKyAgICBzZXQuYWRkKCcxJywgJzknKTsKKyAgICBpZiAoc2V0LnNpemUoKSAhPSAxMCkgeworICAgICAgZXJybG4oIkZBSUwsIHNpemUgc2hvdWxkIGJlIDEwLCBidXQgaXMgIiArIHNldC5zaXplKCkgKworICAgICAgICAgICI6ICIgKyBzZXQpOworICAgIH0KKyAgICBzZXQuY2xlYXIoKTsKKyAgICBzZXQuY29tcGxlbWVudCgpOworICAgIGlmIChzZXQuc2l6ZSgpICE9IDB4MTEwMDAwKSB7CisgICAgICBlcnJsbigiRkFJTCwgc2l6ZSBzaG91bGQgYmUgMHgxMTAwMDAsIGJ1dCBpcyIgKyBzZXQuc2l6ZSgpKTsKKyAgICB9CisgICAgCisgICAgLy8gY29udGFpbnMoZmlyc3QsIGxhc3QpCisgICAgc2V0LmNsZWFyKCk7CisgICAgc2V0LmFwcGx5UGF0dGVybigiW0EtWSAxLTggYi1kIGwteV0iKTsKKyAgICBmb3IgKGludCBpID0gMDsgaTxzZXQuZ2V0UmFuZ2VDb3VudCgpOyArK2kpIHsKKyAgICAgIGludCBhID0gc2V0LmdldFJhbmdlU3RhcnQoaSk7CisgICAgICBpbnQgYiA9IHNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgIGlmICghc2V0LmNvbnRhaW5zKGEsIGIpKSB7CisgICAgICAgIGVycmxuKCJGQUlMLCBzaG91bGQgY29udGFpbiAiICsgKGNoYXIpYSArICctJyArIChjaGFyKWIgKworICAgICAgICAgICAgIiBidXQgZG9lc24ndDogIiArIHNldCk7CisgICAgICB9CisgICAgICBpZiAoc2V0LmNvbnRhaW5zKChjaGFyKShhLTEpLCBiKSkgeworICAgICAgICBlcnJsbigiRkFJTCwgc2hvdWxkbid0IGNvbnRhaW4gIiArCisgICAgICAgICAgICAoY2hhcikoYS0xKSArICctJyArIChjaGFyKWIgKworICAgICAgICAgICAgIiBidXQgZG9lczogIiArIHNldCk7CisgICAgICB9CisgICAgICBpZiAoc2V0LmNvbnRhaW5zKGEsIChjaGFyKShiKzEpKSkgeworICAgICAgICBlcnJsbigiRkFJTCwgc2hvdWxkbid0IGNvbnRhaW4gIiArCisgICAgICAgICAgICAoY2hhcilhICsgJy0nICsgKGNoYXIpKGIrMSkgKworICAgICAgICAgICAgIiBidXQgZG9lczogIiArIHNldCk7CisgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIFBvcnRlZCBJbnZlcnNpb25MaXN0IHRlc3QuCisgICAgVW5pY29kZVNldCBhID0gbmV3IFVuaWNvZGVTZXQoKGNoYXIpMywoY2hhcikxMCk7CisgICAgVW5pY29kZVNldCBiID0gbmV3IFVuaWNvZGVTZXQoKGNoYXIpNywoY2hhcikxNSk7CisgICAgVW5pY29kZVNldCBjID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAKKyAgICBsb2dsbigiYSBbMy0xMF06ICIgKyBhKTsKKyAgICBsb2dsbigiYiBbNy0xNV06ICIgKyBiKTsKKyAgICBjLnNldChhKTsgYy5hZGRBbGwoYik7CisgICAgVW5pY29kZVNldCBleHAgPSBuZXcgVW5pY29kZVNldCgoY2hhcikzLChjaGFyKTE1KTsKKyAgICBpZiAoYy5lcXVhbHMoZXhwKSkgeworICAgICAgbG9nbG4oImMuc2V0KGEpLmFkZChiKTogIiArIGMpOworICAgIH0gZWxzZSB7CisgICAgICBlcnJsbigiRkFJTDogYy5zZXQoYSkuYWRkKGIpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgfQorICAgIGMuY29tcGxlbWVudCgpOworICAgIGV4cC5zZXQoKGNoYXIpMCwgKGNoYXIpMik7CisgICAgZXhwLmFkZCgoY2hhcikxNiwgVW5pY29kZVNldC5NQVhfVkFMVUUpOworICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICBsb2dsbigiYy5jb21wbGVtZW50KCk6ICIgKyBjKTsKKyAgICB9IGVsc2UgeworICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUw6IGMuY29tcGxlbWVudCgpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCkpOworICAgIH0KKyAgICBjLmNvbXBsZW1lbnQoKTsKKyAgICBleHAuc2V0KChjaGFyKTMsIChjaGFyKTE1KTsKKyAgICBpZiAoYy5lcXVhbHMoZXhwKSkgeworICAgICAgbG9nbG4oImMuY29tcGxlbWVudCgpOiAiICsgYyk7CisgICAgfSBlbHNlIHsKKyAgICAgIGVycmxuKCJGQUlMOiBjLmNvbXBsZW1lbnQoKSA9ICIgKyBjICsgIiwgZXhwZWN0ICIgKyBleHApOworICAgIH0KKyAgICBjLnNldChhKTsgYy5jb21wbGVtZW50QWxsKGIpOworICAgIGV4cC5zZXQoKGNoYXIpMywoY2hhcik2KTsKKyAgICBleHAuYWRkKChjaGFyKTExLChjaGFyKSAxNSk7CisgICAgaWYgKGMuZXF1YWxzKGV4cCkpIHsKKyAgICAgIGxvZ2xuKCJjLnNldChhKS5jb21wbGVtZW50KGIpOiAiICsgYyk7CisgICAgfSBlbHNlIHsKKyAgICAgIGVycmxuKCJGQUlMOiBjLnNldChhKS5jb21wbGVtZW50KGIpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgfQorICAgIAorICAgIGV4cC5zZXQoYyk7CisgICAgYyA9IGJpdHNUb1NldChzZXRUb0JpdHMoYykpOworICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICBsb2dsbigiYml0c1RvU2V0KHNldFRvQml0cyhjKSk6ICIgKyBjKTsKKyAgICB9IGVsc2UgeworICAgICAgZXJybG4oIkZBSUw6IGJpdHNUb1NldChzZXRUb0JpdHMoYykpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgfSAKKyAgICAKKyAgICAvLyBBZGRpdGlvbmFsIHRlc3RzIGZvciBjb3ZlcmFnZSBKQiMyMTE4CisgICAgLy9Vbmljb2RlU2V0Ojpjb21wbGVtZW50KGNsYXNzIFVuaWNvZGVTdHJpbmcgY29uc3QgJikKKyAgICAvL1VuaWNvZGVTZXQ6OmNvbXBsZW1lbnRBbGwoY2xhc3MgVW5pY29kZVN0cmluZyBjb25zdCAmKQorICAgIC8vVW5pY29kZVNldDo6Y29udGFpbnNOb25lKGNsYXNzIFVuaWNvZGVTZXQgY29uc3QgJikKKyAgICAvL1VuaWNvZGVTZXQ6OmNvbnRhaW5zTm9uZShsb25nLGxvbmcpCisgICAgLy9Vbmljb2RlU2V0Ojpjb250YWluc1NvbWUoY2xhc3MgVW5pY29kZVNldCBjb25zdCAmKQorICAgIC8vVW5pY29kZVNldDo6Y29udGFpbnNTb21lKGxvbmcsbG9uZykKKyAgICAvL1VuaWNvZGVTZXQ6OnJlbW92ZUFsbChjbGFzcyBVbmljb2RlU3RyaW5nIGNvbnN0ICYpCisgICAgLy9Vbmljb2RlU2V0OjpyZXRhaW4obG9uZykKKyAgICAvL1VuaWNvZGVTZXQ6OnJldGFpbkFsbChjbGFzcyBVbmljb2RlU3RyaW5nIGNvbnN0ICYpCisgICAgLy9Vbmljb2RlU2V0OjpzZXJpYWxpemUodW5zaWduZWQgc2hvcnQgKixsb25nLGVudW0gVUVycm9yQ29kZSAmKQorICAgIC8vVW5pY29kZVNldEl0ZXJhdG9yOjpnZXRTdHJpbmcodm9pZCkKKyAgICBzZXQuY2xlYXIoKTsKKyAgICBzZXQuY29tcGxlbWVudCgiYWIiKTsKKyAgICBleHAuYXBwbHlQYXR0ZXJuKCJbe2FifV0iKTsKKyAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogY29tcGxlbWVudChcImFiXCIpIik7IHJldHVybjsgfQorICAgIAorICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpc2V0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgIGlmICghaXNldC5uZXh0KCkgfHwgaXNldC5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgZXJybG4oIkZBSUw6IFVuaWNvZGVTZXRJdGVyYXRvci5uZXh0L0lTX1NUUklORyIpOworICAgIH0gZWxzZSBpZiAoIWlzZXQuc3RyaW5nLmVxdWFscygiYWIiKSkgeworICAgICAgZXJybG4oIkZBSUw6IFVuaWNvZGVTZXRJdGVyYXRvci5zdHJpbmciKTsKKyAgICB9CisgICAgCisgICAgc2V0LmFkZCgoY2hhcikweDYxLCAoY2hhcikweDdBKTsKKyAgICBzZXQuY29tcGxlbWVudEFsbCgiYWxhbiIpOworICAgIGV4cC5hcHBseVBhdHRlcm4oIlt7YWJ9Yi1rbW8tel0iKTsKKyAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogY29tcGxlbWVudEFsbChcImFsYW5cIikiKTsgcmV0dXJuOyB9CisgICAgCisgICAgZXhwLmFwcGx5UGF0dGVybigiW2Etel0iKTsKKyAgICBpZiAoc2V0LmNvbnRhaW5zTm9uZShleHApKSB7IGVycmxuKCJGQUlMOiBjb250YWluc05vbmUoVW5pY29kZVNldCkiKTsgfQorICAgIGlmICghc2V0LmNvbnRhaW5zU29tZShleHApKSB7IGVycmxuKCJGQUlMOiBjb250YWluc1NvbWUoVW5pY29kZVNldCkiKTsgfQorICAgIGV4cC5hcHBseVBhdHRlcm4oIlthbG5dIik7CisgICAgaWYgKCFzZXQuY29udGFpbnNOb25lKGV4cCkpIHsgZXJybG4oIkZBSUw6IGNvbnRhaW5zTm9uZShVbmljb2RlU2V0KSIpOyB9CisgICAgaWYgKHNldC5jb250YWluc1NvbWUoZXhwKSkgeyBlcnJsbigiRkFJTDogY29udGFpbnNTb21lKFVuaWNvZGVTZXQpIik7IH0KKyAgICAKKyAgICBpZiAoc2V0LmNvbnRhaW5zTm9uZSgoY2hhcikweDYxLCAoY2hhcikweDdBKSkgeworICAgICAgZXJybG4oIkZBSUw6IGNvbnRhaW5zTm9uZShjaGFyLCBjaGFyKSIpOworICAgIH0KKyAgICBpZiAoIXNldC5jb250YWluc1NvbWUoKGNoYXIpMHg2MSwgKGNoYXIpMHg3QSkpIHsKKyAgICAgIGVycmxuKCJGQUlMOiBjb250YWluc1NvbWUoY2hhciwgY2hhcikiKTsKKyAgICB9CisgICAgaWYgKCFzZXQuY29udGFpbnNOb25lKChjaGFyKTB4NDEsIChjaGFyKTB4NUEpKSB7CisgICAgICBlcnJsbigiRkFJTDogY29udGFpbnNOb25lKGNoYXIsIGNoYXIpIik7CisgICAgfQorICAgIGlmIChzZXQuY29udGFpbnNTb21lKChjaGFyKTB4NDEsIChjaGFyKTB4NUEpKSB7CisgICAgICBlcnJsbigiRkFJTDogY29udGFpbnNTb21lKGNoYXIsIGNoYXIpIik7CisgICAgfQorICAgIAorICAgIHNldC5yZW1vdmVBbGwoImxpdSIpOworICAgIGV4cC5hcHBseVBhdHRlcm4oIlt7YWJ9Yi1oai1rbW8tdHYtel0iKTsKKyAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogcmVtb3ZlQWxsKFwibGl1XCIpIik7IHJldHVybjsgfQorICAgIAorICAgIHNldC5yZXRhaW5BbGwoInN0YXIiKTsKKyAgICBleHAuYXBwbHlQYXR0ZXJuKCJbcnN0XSIpOworICAgIGlmICghc2V0LmVxdWFscyhleHApKSB7IGVycmxuKCJGQUlMOiByZXRhaW5BbGwoXCJzdGFyXCIpIik7IHJldHVybjsgfQorICAgIAorICAgIHNldC5yZXRhaW4oKGNoYXIpMHg3Myk7CisgICAgZXhwLmFwcGx5UGF0dGVybigiW3NdIik7CisgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJldGFpbigncycpIik7IHJldHVybjsgfQorICAgIAorICAgIC8vIElDVSAyLjYgY292ZXJhZ2UgdGVzdHMKKyAgICAvLyBwdWJsaWMgZmluYWwgVW5pY29kZVNldCByZXRhaW4oU3RyaW5nIHMpOworICAgIC8vIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZShpbnQgYyk7CisgICAgLy8gcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmVtb3ZlKFN0cmluZyBzKTsKKyAgICAvLyBwdWJsaWMgaW50IGhhc2hDb2RlKCk7CisgICAgc2V0LmFwcGx5UGF0dGVybigiW2EtenthYn17Y2R9XSIpOworICAgIHNldC5yZXRhaW4oImNkIik7CisgICAgZXhwLmFwcGx5UGF0dGVybigiW3tjZH1dIik7CisgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJldGFpbihcImNkXCIpIik7IHJldHVybjsgfQorICAgIAorICAgIHNldC5hcHBseVBhdHRlcm4oIlthLXp7YWJ9e2NkfV0iKTsKKyAgICBzZXQucmVtb3ZlKChjaGFyKTB4NjMpOworICAgIGV4cC5hcHBseVBhdHRlcm4oIlthYmQtenthYn17Y2R9XSIpOworICAgIGlmICghc2V0LmVxdWFscyhleHApKSB7IGVycmxuKCJGQUlMOiByZW1vdmUoJ2MnKSIpOyByZXR1cm47IH0KKyAgICAKKyAgICBzZXQucmVtb3ZlKCJjZCIpOworICAgIGV4cC5hcHBseVBhdHRlcm4oIlthYmQtenthYn1dIik7CisgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJlbW92ZShcImNkXCIpIik7IHJldHVybjsgfQorICAgIAorICAgIGlmIChzZXQuaGFzaENvZGUoKSAhPSBleHAuaGFzaENvZGUoKSkgeworICAgICAgZXJybG4oIkZBSUw6IGhhc2hDb2RlKCkgdW5lcXVhbCIpOworICAgIH0KKyAgICBleHAuY2xlYXIoKTsKKyAgICBpZiAoc2V0Lmhhc2hDb2RlKCkgPT0gZXhwLmhhc2hDb2RlKCkpIHsKKyAgICAgIGVycmxuKCJGQUlMOiBoYXNoQ29kZSgpIGVxdWFsIik7CisgICAgfQorICAgIAorICAgIHsKKyAgICAgIC8vQ292ZXIgYWRkQWxsKENvbGxlY3Rpb24pIGFuZCBhZGRBbGxUbyhDb2xsZWN0aW9uKSAgCisgICAgICAvLyAgU2VlbXMgdGhhdCB0aGVyZSBpcyBhIGJ1ZyBpbiBhZGRBbGwoQ29sbGVjdGlvbikgb3BlcmF0aW9uCisgICAgICAvLyAgICBSYW0gYWxzbyBhZGQgYSBzaW1pbGFyIHRlc3QgdG8gVXRpbGl0eVRlc3QuamF2YQorICAgICAgbG9nbG4oIlRlc3RpbmcgYWRkQWxsKENvbGxlY3Rpb24pIC4uLiAiKTsgIAorICAgICAgU3RyaW5nW10gYXJyYXkgPSB7ImEiLCAiYiIsICJjIiwgImRlIn07CisgICAgICBMaXN0IGxpc3QgPSBBcnJheXMuYXNMaXN0KGFycmF5KTsKKyAgICAgIFNldCBhc2V0ID0gbmV3IEhhc2hTZXQobGlzdCk7CisgICAgICBsb2dsbigiICoqKiBUaGUgc291cmNlIHNldCdzIHNpemUgaXM6ICIgKyBhc2V0LnNpemUoKSk7CisgICAgICAKKyAgICAgIHNldC5jbGVhcigpOworICAgICAgc2V0LmFkZEFsbChhc2V0KTsKKyAgICAgIGlmIChzZXQuc2l6ZSgpICE9IGFzZXQuc2l6ZSgpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBBZnRlciBhZGRBbGwsIHRoZSBVbmljb2RlU2V0IHNpemUgZXhwZWN0ZWQgIiArIGFzZXQuc2l6ZSgpICsKKyAgICAgICAgICAgICIsICIgKyBzZXQuc2l6ZSgpICsgIiBzZWVuIGluc3RlYWQhIik7CisgICAgICB9IGVsc2UgeworICAgICAgICBsb2dsbigiT0s6IEFmdGVyIGFkZEFsbCwgdGhlIFVuaWNvZGVTZXQgc2l6ZSBnb3QgIiArIHNldC5zaXplKCkpOworICAgICAgfQorICAgICAgCisgICAgICBMaXN0IGxpc3QyID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgc2V0LmFkZEFsbFRvKGxpc3QyKTsKKyAgICAgIAorICAgICAgLy92ZXJpZnkgdGhlIHJlc3VsdAorICAgICAgbG9nKCIgKioqIFRoZSBlbGVtZW50cyBhcmU6ICIpOworICAgICAgU3RyaW5nIHMgPSBzZXQudG9QYXR0ZXJuKHRydWUpOworICAgICAgbG9nbG4ocyk7CisgICAgICBJdGVyYXRvciBteWl0ZXIgPSBsaXN0Mi5pdGVyYXRvcigpOworICAgICAgd2hpbGUobXlpdGVyLmhhc05leHQoKSkgeworICAgICAgICBsb2cobXlpdGVyLm5leHQoKS50b1N0cmluZygpICsgIiAgIik7CisgICAgICB9CisgICAgICBsb2dsbigiIik7ICAvLyBhIG5ldyBsaW5lCisgICAgfQorICAgIAorICB9CisgIAorICBwdWJsaWMgdm9pZCBUZXN0U3RyaW5ncygpIHsKKy8vICBPYmplY3RbXVtdIHRlc3RMaXN0ID0geworLy8gIHtJX0VRVUFMUywgIFVuaWNvZGVTZXQuZnJvbUFsbCgiYWJjIiksCisvLyAgbmV3IFVuaWNvZGVTZXQoIlthLWNdIil9LAorLy8gIAorLy8gIHtJX0VRVUFMUywgIFVuaWNvZGVTZXQuZnJvbSgiY2giKS5hZGQoJ2EnLCd6JykuYWRkKCJsbCIpLAorLy8gIG5ldyBVbmljb2RlU2V0KCJbe2xsfXtjaH1hLXpdIil9LAorLy8gIAorLy8gIHtJX0VRVUFMUywgIFVuaWNvZGVTZXQuZnJvbSgiYWJ9YyIpLCAgCisvLyAgbmV3IFVuaWNvZGVTZXQoIlt7YWJcXH1jfV0iKX0sCisvLyAgCisvLyAge0lfRVFVQUxTLCAgbmV3IFVuaWNvZGVTZXQoJ2EnLCd6JykuYWRkKCdBJywgJ1onKS5yZXRhaW4oJ00nLCdtJykuY29tcGxlbWVudCgnWCcpLCAKKy8vICBuZXcgVW5pY29kZVNldCgiW1thLXpBLVpdJltNLW1dLVtYXV0iKX0sCisvLyAgfTsKKy8vICAKKy8vICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RMaXN0Lmxlbmd0aDsgKytpKSB7CisvLyAgZXhwZWN0UmVsYXRpb24odGVzdExpc3RbaV1bMF0sIHRlc3RMaXN0W2ldWzFdLCB0ZXN0TGlzdFtpXVsyXSwgIigiICsgaSArICIpIik7CisvLyAgfSAgICAgICAgCisgICAgCisgICAgVW5pY29kZVNldFtdW10gdGVzdExpc3QgPSB7CisgICAgICAgIHtVbmljb2RlU2V0LmZyb21BbGwoImFiYyIpLAorICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbYS1jXSIpfSwKKyAgICAgICAgICAKKyAgICAgICAgICB7VW5pY29kZVNldC5mcm9tKCJjaCIpLmFkZCgnYScsJ3onKS5hZGQoImxsIiksCisgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW3tsbH17Y2h9YS16XSIpfSwKKyAgICAgICAgICAgIAorICAgICAgICAgICAge1VuaWNvZGVTZXQuZnJvbSgiYWJ9YyIpLCAgCisgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbe2FiXFx9Y31dIil9LAorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAge25ldyBVbmljb2RlU2V0KCdhJywneicpLmFkZCgnQScsICdaJykucmV0YWluKCdNJywnbScpLmNvbXBsZW1lbnQoJ1gnKSwgCisgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltbYS16QS1aXSZbTS1tXS1bWF1dIil9LAorICAgIH07CisgICAgCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0TGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgaWYgKCF0ZXN0TGlzdFtpXVswXS5lcXVhbHModGVzdExpc3RbaV1bMV0pKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXRzIHVuZXF1YWw7IHNlZSBzb3VyY2UgY29kZSAoIiArIGkgKyAiKSIpOworICAgICAgfQorICAgIH0gICAgICAgIAorICB9CisgIAorICBzdGF0aWMgZmluYWwgSW50ZWdlciAKKyAgSV9BTlkgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5BTlkpLAorICBJX0NPTlRBSU5TID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uQ09OVEFJTlMpLAorICBJX0RJU0pPSU5UID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uRElTSk9JTlQpLAorICBJX05PX0IgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5OT19CKSwKKyAgSV9JU0NPTlRBSU5FRCA9IG5ldyBJbnRlZ2VyKFNvcnRlZFNldFJlbGF0aW9uLklTQ09OVEFJTkVEKSwKKyAgSV9FUVVBTFMgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5FUVVBTFMpLAorICBJX05PX0EgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5OT19BKSwKKyAgSV9OT05FID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uTk9ORSk7CisgIAorICBwdWJsaWMgdm9pZCBUZXN0U2V0UmVsYXRpb24oKSB7CisgICAgCisgICAgU3RyaW5nW10gY2hvaWNlcyA9IHsiYSIsICJiIiwgImNkIiwgImVmIn07CisgICAgaW50IGxpbWl0ID0gMSA8PCBjaG9pY2VzLmxlbmd0aDsKKyAgICAKKyAgICBTb3J0ZWRTZXQgaXNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgU29ydGVkU2V0IGpzZXQgPSBuZXcgVHJlZVNldCgpOworICAgIAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgcGljayhpLCBjaG9pY2VzLCBpc2V0KTsKKyAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGltaXQ7ICsraikgeworICAgICAgICBwaWNrKGosIGNob2ljZXMsIGpzZXQpOworICAgICAgICBjaGVja1NldFJlbGF0aW9uKGlzZXQsIGpzZXQsICIoIiArIGkgKyAiKSIpOworICAgICAgfQorICAgIH0KKyAgfQorICAKKyAgcHVibGljIHZvaWQgVGVzdFNldFNwZWVkKCkgeworICAgIC8vIHNraXAgdW5sZXNzIHZlcmJvc2UKKyAgICBpZiAoIWlzVmVyYm9zZSgpKSByZXR1cm47CisgICAgCisgICAgU2V0U3BlZWQyKDEwMCk7CisgICAgU2V0U3BlZWQyKDEwMDApOworICB9CisgIAorICBwdWJsaWMgdm9pZCBTZXRTcGVlZDIoaW50IHNpemUpIHsKKyAgICAKKyAgICBTb3J0ZWRTZXQgaXNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgU29ydGVkU2V0IGpzZXQgPSBuZXcgVHJlZVNldCgpOworICAgIAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZSoyOyBpICs9IDIpIHsgLy8gb25seSBldmVuIHZhbHVlcworICAgICAgaXNldC5hZGQobmV3IEludGVnZXIoaSkpOworICAgICAganNldC5hZGQobmV3IEludGVnZXIoaSkpOworICAgIH0KKyAgICAKKyAgICBpbnQgaXRlcmF0aW9ucyA9IDEwMDAwMDAgLyBzaXplOworICAgIAorICAgIGxvZ2xuKCJUaW1pbmcgY29tcGFyaXNvbiBvZiBKYXZhIHZzIFV0aWxpdHkiKTsKKyAgICBsb2dsbigiRm9yIGFib3V0ICIgKyBzaXplICsgIiBvYmplY3RzIHRoYXQgYXJlIGFsbW9zdCBhbGwgdGhlIHNhbWUuIik7CisgICAgCisgICAgQ2hlY2tTcGVlZChpc2V0LCBqc2V0LCAid2hlbiBhID0gYiIsIGl0ZXJhdGlvbnMpOworICAgIAorICAgIGlzZXQuYWRkKG5ldyBJbnRlZ2VyKHNpemUgKyAxKSk7ICAgIC8vIGFkZCBvZGQgdmFsdWUgaW4gbWlkZGxlCisgICAgCisgICAgQ2hlY2tTcGVlZChpc2V0LCBqc2V0LCAid2hlbiBhIGNvbnRhaW5zIGIiLCBpdGVyYXRpb25zKTsgICAgICAgIAorICAgIENoZWNrU3BlZWQoanNldCwgaXNldCwgIndoZW4gYiBjb250YWlucyBhIiwgaXRlcmF0aW9ucyk7CisgICAgCisgICAganNldC5hZGQobmV3IEludGVnZXIoc2l6ZSAtIDEpKTsgICAgLy8gYWRkIGRpZmZlcmVudCBvZGQgdmFsdWUgaW4gbWlkZGxlCisgICAgCisgICAgQ2hlY2tTcGVlZChqc2V0LCBpc2V0LCAid2hlbiBhLCBiIGFyZSBkaXNqb2ludCIsIGl0ZXJhdGlvbnMpOyAgICAgICAgCisgIH0KKyAgCisgIHZvaWQgQ2hlY2tTcGVlZChTb3J0ZWRTZXQgaXNldCwgU29ydGVkU2V0IGpzZXQsIFN0cmluZyBtZXNzYWdlLCBpbnQgaXRlcmF0aW9ucykgeworICAgIENoZWNrU3BlZWQyKGlzZXQsIGpzZXQsIG1lc3NhZ2UsIGl0ZXJhdGlvbnMpOworICAgIENoZWNrU3BlZWQzKGlzZXQsIGpzZXQsIG1lc3NhZ2UsIGl0ZXJhdGlvbnMpOworICB9CisgIAorICB2b2lkIENoZWNrU3BlZWQyKFNvcnRlZFNldCBpc2V0LCBTb3J0ZWRTZXQganNldCwgU3RyaW5nIG1lc3NhZ2UsIGludCBpdGVyYXRpb25zKSB7CisgICAgYm9vbGVhbiB4OworICAgIGJvb2xlYW4geTsKKyAgICAKKyAgICAvLyBtYWtlIHN1cmUgY29kZSBpcyBsb2FkZWQ6CisgICAgeCA9IGlzZXQuY29udGFpbnNBbGwoanNldCk7CisgICAgeSA9IFNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKGlzZXQsIFNvcnRlZFNldFJlbGF0aW9uLkNPTlRBSU5TLCBqc2V0KTsKKyAgICBpZiAoeCAhPSB5KSBlcnJsbigiRkFJTCBjb250YWlucyBjb21wYXJpc29uIik7CisgICAgCisgICAgZG91YmxlIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHsKKyAgICAgIHggfD0gaXNldC5jb250YWluc0FsbChqc2V0KTsKKyAgICB9CisgICAgZG91YmxlIG1pZGRsZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICB5IHw9IFNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKGlzZXQsIFNvcnRlZFNldFJlbGF0aW9uLkNPTlRBSU5TLCBqc2V0KTsKKyAgICB9CisgICAgZG91YmxlIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgIAorICAgIGRvdWJsZSBqdGltZSA9IChtaWRkbGUgLSBzdGFydCkvaXRlcmF0aW9uczsKKyAgICBkb3VibGUgdXRpbWUgPSAoZW5kIC0gbWlkZGxlKS9pdGVyYXRpb25zOworICAgIAorICAgIGphdmEudGV4dC5OdW1iZXJGb3JtYXQgbmYgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgIGxvZ2xuKCJUZXN0IGNvbnRhaW5zOiAiICsgbWVzc2FnZSArICI6IEphdmE6ICIgKyBqdGltZQorICAgICAgICArICIsIFV0aWxpdHk6ICIgKyB1dGltZSArICIsIHU6ajogIiArIG5mLmZvcm1hdCh1dGltZS9qdGltZSkpOworICB9CisgIAorICB2b2lkIENoZWNrU3BlZWQzKFNvcnRlZFNldCBpc2V0LCBTb3J0ZWRTZXQganNldCwgU3RyaW5nIG1lc3NhZ2UsIGludCBpdGVyYXRpb25zKSB7CisgICAgYm9vbGVhbiB4OworICAgIGJvb2xlYW4geTsKKyAgICAKKyAgICAvLyBtYWtlIHN1cmUgY29kZSBpcyBsb2FkZWQ6CisgICAgeCA9IGlzZXQuZXF1YWxzKGpzZXQpOworICAgIHkgPSBTb3J0ZWRTZXRSZWxhdGlvbi5oYXNSZWxhdGlvbihpc2V0LCBTb3J0ZWRTZXRSZWxhdGlvbi5FUVVBTFMsIGpzZXQpOworICAgIGlmICh4ICE9IHkpIGVycmxuKCJGQUlMIGVxdWFsaXR5IGNvbXBhcmlzb24iKTsKKyAgICAKKyAgICAKKyAgICBkb3VibGUgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgeCB8PSBpc2V0LmVxdWFscyhqc2V0KTsKKyAgICB9CisgICAgZG91YmxlIG1pZGRsZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICB5IHw9IFNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKGlzZXQsIFNvcnRlZFNldFJlbGF0aW9uLkVRVUFMUywganNldCk7CisgICAgfQorICAgIGRvdWJsZSBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAKKyAgICBkb3VibGUganRpbWUgPSAobWlkZGxlIC0gc3RhcnQpL2l0ZXJhdGlvbnM7CisgICAgZG91YmxlIHV0aW1lID0gKGVuZCAtIG1pZGRsZSkvaXRlcmF0aW9uczsKKyAgICAKKyAgICBqYXZhLnRleHQuTnVtYmVyRm9ybWF0IG5mID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICBsb2dsbigiVGVzdCBlcXVhbHM6ICAgIiArIG1lc3NhZ2UgKyAiOiBKYXZhOiAiICsganRpbWUKKyAgICAgICAgKyAiLCBVdGlsaXR5OiAiICsgdXRpbWUgKyAiLCB1Omo6ICIgKyBuZi5mb3JtYXQodXRpbWUvanRpbWUpKTsKKyAgfQorICAKKyAgdm9pZCBwaWNrKGludCBiaXRzLCBPYmplY3RbXSBleGFtcGxlcywgU29ydGVkU2V0IG91dHB1dCkgeworICAgIG91dHB1dC5jbGVhcigpOworICAgIGZvciAoaW50IGsgPSAwOyBrIDwgMzI7ICsraykgeworICAgICAgaWYgKCgoMTw8aykgJiBiaXRzKSAhPSAwKSBvdXRwdXQuYWRkKGV4YW1wbGVzW2tdKTsKKyAgICB9CisgIH0KKyAgCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gUkVMQVRJT05fTkFNRSA9IHsKKyAgICAiYm90aC1hcmUtbnVsbCIsCisgICAgImEtaXMtbnVsbCIsIAorICAgICJlcXVhbHMiLCAKKyAgICAiaXMtY29udGFpbmVkLWluIiwKKyAgICAiYi1pcy1udWxsIiwKKyAgICAiaXMtZGlzam9pbnRfd2l0aCIsCisgICAgImNvbnRhaW5zIiwgCisgICAgImFueSIsIH07CisgIAorICBib29sZWFuIGR1bWJIYXNSZWxhdGlvbihDb2xsZWN0aW9uIEEsIGludCBmaWx0ZXIsIENvbGxlY3Rpb24gQikgeworICAgIENvbGxlY3Rpb24gYWIgPSBuZXcgVHJlZVNldChBKTsKKyAgICBhYi5yZXRhaW5BbGwoQik7CisgICAgaWYgKGFiLnNpemUoKSA+IDAgJiYgKGZpbHRlciAmIFNvcnRlZFNldFJlbGF0aW9uLkFfQU5EX0IpID09IDApIHJldHVybiBmYWxzZTsgCisgICAgCisgICAgLy8gQSAtIEIgc2l6ZSA9PSBBLnNpemUgLSBBJkIuc2l6ZQorICAgIGlmIChBLnNpemUoKSA+IGFiLnNpemUoKSAmJiAoZmlsdGVyICYgU29ydGVkU2V0UmVsYXRpb24uQV9OT1RfQikgPT0gMCkgcmV0dXJuIGZhbHNlOyAKKyAgICAKKyAgICAvLyBCIC0gQSBzaXplID09IEIuc2l6ZSAtIEEmQi5zaXplCisgICAgaWYgKEIuc2l6ZSgpID4gYWIuc2l6ZSgpICYmIChmaWx0ZXIgJiBTb3J0ZWRTZXRSZWxhdGlvbi5CX05PVF9BKSA9PSAwKSByZXR1cm4gZmFsc2U7IAorICAgIAorICAgIAorICAgIHJldHVybiB0cnVlOworICB9ICAgIAorICAKKyAgdm9pZCBjaGVja1NldFJlbGF0aW9uKFNvcnRlZFNldCBhLCBTb3J0ZWRTZXQgYiwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkgeworICAgICAgCisgICAgICBib29sZWFuIGhhc1JlbGF0aW9uID0gU29ydGVkU2V0UmVsYXRpb24uaGFzUmVsYXRpb24oYSwgaSwgYik7CisgICAgICBib29sZWFuIGR1bWJIYXNSZWxhdGlvbiA9IGR1bWJIYXNSZWxhdGlvbihhLCBpLCBiKTsKKyAgICAgIAorICAgICAgbG9nbG4obWVzc2FnZSArICIgIiArIGhhc1JlbGF0aW9uICsgIjpcdCIgKyBhICsgIlx0IiArIFJFTEFUSU9OX05BTUVbaV0gKyAiXHQiICsgYik7CisgICAgICAKKyAgICAgIGlmIChoYXNSZWxhdGlvbiAhPSBkdW1iSGFzUmVsYXRpb24pIHsKKyAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAKKyAgICAgICAgICAgIG1lc3NhZ2UgKyAiICIgKyBkdW1iSGFzUmVsYXRpb24gKyAiOlx0IiArIGEgKyAiXHQiICsgUkVMQVRJT05fTkFNRVtpXSArICJcdCIgKyBiKTsKKyAgICAgIH0KKyAgICB9CisgICAgbG9nbG4oIiIpOworICB9CisgIAorICAvKioKKyAgICogVGVzdCB0aGUgWzpMYXRpbjpdIHN5bnRheC4KKyAgICovCisgIHB1YmxpYyB2b2lkIFRlc3RTY3JpcHRTZXQoKSB7CisgICAgCisgICAgZXhwZWN0Q29udGFpbm1lbnQoIls6TGF0aW46XSIsICJhQSIsIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXHUwMzkxXFx1MDNCMSIpKTsKKyAgICAKKyAgICBleHBlY3RDb250YWlubWVudCgiWzpHcmVlazpdIiwgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcdTAzOTFcXHUwM0IxIiksICJhQSIpOworICAgIAorICAgIC8qIEppdHRlcmJ1ZyAxNDIzICovCisgICAgZXhwZWN0Q29udGFpbm1lbnQoIltbOkNvbW1vbjpdWzpJbmhlcml0ZWQ6XV0iLCBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMDMwOTlcXFUwMDAxRDE2OVxcdTAwMDAiKSwgImFBIik7CisgICAgCisgIH0KKyAgCisgIC8qKgorICAgKiBUZXN0IHRoZSBbOkxhdGluOl0gc3ludGF4LgorICAgKi8KKyAgcHVibGljIHZvaWQgVGVzdFByb3BlcnR5U2V0KCkgeworICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgIC8vIFBhdHRlcm4sIENoYXJzIElOLCBDaGFycyBOT1QgaW4KKyAgICAgICAgCisgICAgICAgICJbOkxhdGluOl0iLAorICAgICAgICAiYUEiLAorICAgICAgICAiXHUwMzkxXHUwM0IxIiwKKyAgICAgICAgCisgICAgICAgICJbXFxwe0dyZWVrfV0iLAorICAgICAgICAiXHUwMzkxXHUwM0IxIiwKKyAgICAgICAgImFBIiwKKyAgICAgICAgCisgICAgICAgICJcXFB7IEdFTkVSQUwgQ2F0ZWdvcnkgPSB1cHBlciBjYXNlIGxldHRlciB9IiwKKyAgICAgICAgImFiYyIsCisgICAgICAgICJBQkMiLAorICAgICAgICAKKyAgICAgICAgLy8gQ29tYmluaW5nIGNsYXNzOiBAc2luY2UgSUNVIDIuMgorICAgICAgICAvLyBDaGVjayBib3RoIHN5bWJvbGljIGFuZCBudW1lcmljCisgICAgICAgICJcXHB7Y2NjPU51a3RhfSIsCisgICAgICAgICJcdTBBQkMiLAorICAgICAgICAiYWJjIiwKKyAgICAgICAgCisgICAgICAgICJcXHB7Q2Fub25pY2FsIENvbWJpbmluZyBDbGFzcyA9IDExfSIsCisgICAgICAgICJcdTA1QjEiLAorICAgICAgICAiXHUwNUIyIiwKKyAgICAgICAgCisgICAgICAgICJbOmMgYyBjID0gaW90YSBzdWJzY3JpcHQgOl0iLAorICAgICAgICAiXHUwMzQ1IiwKKyAgICAgICAgInh5eiIsCisgICAgICAgIAorICAgICAgICAvLyBCaWRpIGNsYXNzOiBAc2luY2UgSUNVIDIuMgorICAgICAgICAiXFxwe2JpZGljbGFzcz1sZWZ0dG9yaWdodH0iLAorICAgICAgICAiYWJjIiwKKyAgICAgICAgIlx1MDY3MVx1MDY3MiIsCisgICAgICAgIAorICAgICAgICAvLyBCaW5hcnkgcHJvcGVydGllczogQHNpbmNlIElDVSAyLjIKKyAgICAgICAgIlxccHtpZGVvZ3JhcGhpY30iLAorICAgICAgICAiXHU0RTBBIiwKKyAgICAgICAgIngiLAorICAgICAgICAKKyAgICAgICAgIls6bWF0aD1mYWxzZTpdIiwKKyAgICAgICAgInEpKigiLCAvLyApKGFuZCAqIHdlcmUgcmVtb3ZlZCBmcm9tIG1hdGggaW4gVW5pY29kZSA0LjAuMQorICAgICAgICAiKzw+XiIsCisgICAgICAgIAorICAgICAgICAvLyBKQiMxNzY3IFxOe30sIFxwe0FTQ0lJfQorICAgICAgICAiWzpBc2NpaTpdIiwKKyAgICAgICAgImFiY1x1MDAwMFx1MDA3RiIsCisgICAgICAgICJcdTAwODBcdTRFMDAiLAorICAgICAgICAKKyAgICAgICAgIltcXE57IGxhdGluIHNtYWxsIGxldHRlciAgYSAgfVs6bmFtZT0gbGF0aW4gc21hbGwgbGV0dGVyIHo6XV0iLAorICAgICAgICAiYXoiLAorICAgICAgICAicXJzIiwKKyAgICAgICAgCisgICAgICAgIC8vIEpCIzIwMTUKKyAgICAgICAgIls6YW55Ol0iLAorICAgICAgICAiYVxcVTAwMTBGRkZGIiwKKyAgICAgICAgIiIsCisgICAgICAgIAorICAgICAgICAiWzpudj0wLjU6XSIsCisgICAgICAgICJcdTAwQkRcdTBGMkEiLAorICAgICAgICAiXHUwMEJDIiwKKyAgICAgICAgCisgICAgICAgIC8vIEpCIzI2NTM6IEFnZQorICAgICAgICAiWzpBZ2U9MS4xOl0iLAorICAgICAgICAiXHUwM0Q2IiwgLy8gMS4xCisgICAgICAgICJcdTAzRDhcdTAzRDkiLCAvLyAzLjIKKyAgICAgICAgCisgICAgICAgICJbOkFnZT0zLjE6XSIsIAorICAgICAgICAiXFx1MTgwMFxcdTM0MDBcXFUwMDAyZjgwMCIsIAorICAgICAgICAiXFx1MDIyMFxcdTAzNGZcXHUzMGZmXFx1MzNmZlxcdWZlNzNcXFUwMDAxMDAwMFxcVTAwMDUwMDAwIiwgCisgICAgICAgIAorICAgICAgICAvLyBKQiMyMzUwOiBDYXNlX1NlbnNpdGl2ZQorICAgICAgICAiWzpDYXNlIFNlbnNpdGl2ZTpdIiwKKyAgICAgICAgIkFcdTFGRkNcXFUwMDAxMDQxMCIsCisgICAgICAgICI7XHUwMEI0XFxVMDAwMTA1MDAiLAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIC8vIFJlZ2V4IGNvbXBhdGliaWxpdHkgdGVzdAorICAgICAgICAiWy1iXSIsIC8vIGxlYWRpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgIi1iIiwKKyAgICAgICAgImFjIiwKKyAgICAgICAgCisgICAgICAgICJbXi1iXSIsIC8vIGxlYWRpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgImFjIiwKKyAgICAgICAgIi1iIiwKKyAgICAgICAgCisgICAgICAgICJbYi1dIiwgLy8gdHJhaWxpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgIi1iIiwKKyAgICAgICAgImFjIiwKKyAgICAgICAgCisgICAgICAgICJbXmItXSIsIC8vIHRyYWlsaW5nICctJyBpcyBsaXRlcmFsCisgICAgICAgICJhYyIsCisgICAgICAgICItYiIsCisgICAgICAgIAorICAgICAgICAiW2EtYi1dIiwgLy8gdHJhaWxpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgImFiLSIsCisgICAgICAgICJjPSIsCisgICAgICAgIAorICAgICAgICAiW1thLXFdJltwLXpdLV0iLCAvLyB0cmFpbGluZyAnLScgaXMgbGl0ZXJhbAorICAgICAgICAicHEtIiwKKyAgICAgICAgIm9yPSIsCisgICAgICAgIAorICAgICAgICAiW1xcc3xcXCl8OnwkfFxcPl0iLCAvLyBmcm9tIHJlZ2V4IHRlc3RzCisgICAgICAgICJzfCk6JD4iLAorICAgICAgICAiXFxhYmMiLAorICAgICAgICAKKyAgICAgICAgIltcdURDMDBjZF0iLCAvLyBKQiMyOTA2OiBpc29sYXRlZCB0cmFpbCBhdCBzdGFydAorICAgICAgICAiY2RcdURDMDAiLAorICAgICAgICAiYWJcdUQ4MDBcXFUwMDAxMDAwMCIsCisgICAgICAgIAorICAgICAgICAiW2FiXHVEODAwXSIsIC8vIEpCIzI5MDY6IGlzb2xhdGVkIHRyYWlsIGF0IHN0YXJ0CisgICAgICAgICJhYlx1RDgwMCIsCisgICAgICAgICJjZFx1REMwMFxcVTAwMDEwMDAwIiwKKyAgICAgICAgCisgICAgICAgICJbYWJcdUQ4MDBjZF0iLCAvLyBKQiMyOTA2OiBpc29sYXRlZCBsZWFkIGluIG1pZGRsZQorICAgICAgICAiYWJjZFx1RDgwMCIsCisgICAgICAgICJlZlx1REMwMFxcVTAwMDEwMDAwIiwKKyAgICAgICAgCisgICAgICAgICJbYWJcdURDMDBjZF0iLCAvLyBKQiMyOTA2OiBpc29sYXRlZCB0cmFpbCBpbiBtaWRkbGUKKyAgICAgICAgImFiY2RcdURDMDAiLAorICAgICAgICAiZWZcdUQ4MDBcXFUwMDAxMDAwMCIsCisgICAgICAgIAorICAgICAgICAiWzpebGNjYz0wOl0iLCAvLyBMZWFkIGNhbm9uaWNhbCBjbGFzcworICAgICAgICAiXHUwMzAwXHUwMzAxIiwKKyAgICAgICAgImFiY2RcdTAwYzBcdTAwYzUiLAorICAgICAgICAKKyAgICAgICAgIls6XnRjY2M9MDpdIiwgLy8gVHJhaWwgY2Fub25pY2FsIGNsYXNzCisgICAgICAgICJcdTAzMDBcdTAzMDFcdTAwYzBcdTAwYzUiLAorICAgICAgICAiYWJjZCIsCisgICAgICAgIAorICAgICAgICAiW1s6XmxjY2M9MDpdWzpedGNjYz0wOl1dIiwgLy8gTGVhZCBhbmQgdHJhaWwgY2Fub25pY2FsIGNsYXNzCisgICAgICAgICJcdTAzMDBcdTAzMDFcdTAwYzBcdTAwYzUiLAorICAgICAgICAiYWJjZCIsCisgICAgICAgIAorICAgICAgICAiW1s6XmxjY2M9MDpdLVs6XnRjY2M9MDpdXSIsIC8vIFN0dWZmIHRoYXQgc3RhcnRzIHdpdGggYW4gYWNjZW50IGJ1dCBlbmRzIHdpdGggYSBiYXNlIChub25lIHJpZ2h0IG5vdykKKyAgICAgICAgIiIsCisgICAgICAgICJhYmNkXHUwMzAwXHUwMzAxXHUwMGMwXHUwMGM1IiwKKyAgICAgICAgCisgICAgICAgICJbWzpjY2M9MDpdLVs6bGNjYz0wOl0tWzp0Y2NjPTA6XV0iLCAvLyBXZWlyZG9zLiBDb21wbGV0ZSBjYW5vbmljYWwgY2xhc3MgaXMgemVybywgYnV0IGJvdGggbGVhZCBhbmQgdHJhaWwgYXJlIG5vdAorICAgICAgICAiXHUwRjczXHUwRjc1XHUwRjgxIiwKKyAgICAgICAgImFiY2RcdTAzMDBcdTAzMDFcdTAwYzBcdTAwYzUiLAorICAgICAgICAKKyAgICAgICAgIls6QXNzaWduZWQ6XSIsCisgICAgICAgICJBXFx1RTAwMFxcdUY4RkZcXHVGREM3XFxVMDAwMTAwMDBcXFUwMDEwRkZGRCIsCisgICAgICAgICJcXHUwODg4XFx1RkREM1xcdUZGRkVcXFUwMDA1MDAwNSIsCisgICAgICAgIAorICAgIH07CisgICAgCisgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7ICAKKyAgICAgIGV4cGVjdENvbnRhaW5tZW50KERBVEFbaV0sIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICB9CisgIH0KKyAgCisgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlU2V0U3RyaW5ncygpIHsKKyAgICBVbmljb2RlU2V0IHVzZXQgPSBuZXcgVW5pY29kZVNldCgiW2F7YmN9e2NkfXBxclx1MDAwMF0iKTsKKyAgICBsb2dsbih1c2V0ICsgIiB+ICIgKyB1c2V0LmdldFJlZ2V4RXF1aXZhbGVudCgpKTsKKyAgICBTdHJpbmdbXVtdIHRlc3RTdHJpbmdzID0ge3sieCIsICJub25lIn0sCisgICAgICAgIHsiYmMiLCAiYWxsIn0sCisgICAgICAgIHsiY2RiY2EiLCAiYWxsIn0sCisgICAgICAgIHsiYSIsICJhbGwifSwKKyAgICAgICAgeyJiY3giLCAic29tZSJ9LAorICAgICAgICB7ImFiIiwgInNvbWUifSwKKyAgICAgICAgeyJhY2IiLCAic29tZSJ9LAorICAgICAgICB7ImJjZGEiLCAic29tZSJ9LAorICAgICAgICB7ImRjY2J4IiwgIm5vbmUifSwKKyAgICB9OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdFN0cmluZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgIGNoZWNrKHVzZXQsIHRlc3RTdHJpbmdzW2ldWzBdLCB0ZXN0U3RyaW5nc1tpXVsxXSk7CisgICAgfQorICB9CisgIAorICAKKyAgcHJpdmF0ZSB2b2lkIGNoZWNrKFVuaWNvZGVTZXQgdXNldCwgU3RyaW5nIHN0cmluZywgU3RyaW5nIGRlc2lyZWRTdGF0dXMpIHsKKyAgICBib29sZWFuIHNob3VsZENvbnRhaW5BbGwgPSBkZXNpcmVkU3RhdHVzLmVxdWFscygiYWxsIik7CisgICAgYm9vbGVhbiBzaG91bGRDb250YWluTm9uZSA9IGRlc2lyZWRTdGF0dXMuZXF1YWxzKCJub25lIik7CisgICAgaWYgKHVzZXQuY29udGFpbnNBbGwoc3RyaW5nKSAhPSBzaG91bGRDb250YWluQWxsKSB7CisgICAgICBlcnJsbigiY29udGFpbnNBbGwgIiArICBzdHJpbmcgKyAiIHNob3VsZCBiZSAiICsgc2hvdWxkQ29udGFpbkFsbCk7CisgICAgfSBlbHNlIHsKKyAgICAgIGxvZ2xuKCJjb250YWluc0FsbCAiICsgIHN0cmluZyArICIgPSAiICsgc2hvdWxkQ29udGFpbkFsbCk7CisgICAgfQorICAgIGlmICh1c2V0LmNvbnRhaW5zTm9uZShzdHJpbmcpICE9IHNob3VsZENvbnRhaW5Ob25lKSB7CisgICAgICBlcnJsbigiY29udGFpbnNOb25lICIgKyAgc3RyaW5nICsgIiBzaG91bGQgYmUgIiArIHNob3VsZENvbnRhaW5Ob25lKTsKKyAgICB9IGVsc2UgeworICAgICAgbG9nbG4oImNvbnRhaW5zTm9uZSAiICsgIHN0cmluZyArICIgPSAiICsgc2hvdWxkQ29udGFpbk5vbmUpOwkgICAgCQorICAgIH0KKyAgfQorICAKKyAgLyoqCisgICAqIFRlc3QgY2xvbmluZyBvZiBVbmljb2RlU2V0CisgICAqLworICBwdWJsaWMgdm9pZCBUZXN0Q2xvbmUoKSB7CisgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQoIlthYmN4eXpdIik7CisgICAgVW5pY29kZVNldCB0ID0gKFVuaWNvZGVTZXQpIHMuY2xvbmUoKTsKKyAgICBleHBlY3RDb250YWlubWVudCh0LCAiYWJjIiwgImRlZiIpOworICB9CisgIAorICAvKioKKyAgICogVGVzdCB0aGUgaW5kZXhPZigpIGFuZCBjaGFyQXQoKSBtZXRob2RzLgorICAgKi8KKyAgcHVibGljIHZvaWQgVGVzdEluZGV4T2YoKSB7CisgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgiW2EtY3gteTM1NzhdIik7CisgICAgZm9yIChpbnQgaT0wOyBpPHNldC5zaXplKCk7ICsraSkgeworICAgICAgaW50IGMgPSBzZXQuY2hhckF0KGkpOworICAgICAgaWYgKHNldC5pbmRleE9mKGMpICE9IGkpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IGNoYXJBdCgiICsgaSArICIpID0gIiArIGMgKworICAgICAgICAgICAgIiA9PiBpbmRleE9mKCkgPT4gIiArIHNldC5pbmRleE9mKGMpKTsKKyAgICAgIH0KKyAgICB9CisgICAgaW50IGMgPSBzZXQuY2hhckF0KHNldC5zaXplKCkpOworICAgIGlmIChjICE9IC0xKSB7CisgICAgICBlcnJsbigiRkFJTDogY2hhckF0KDxvdXQgb2YgcmFuZ2U+KSA9ICIgKworICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFN0cmluZy52YWx1ZU9mKGMpKSk7CisgICAgfQorICAgIGludCBqID0gc2V0LmluZGV4T2YoJ3EnKTsKKyAgICBpZiAoaiAhPSAtMSkgeworICAgICAgZXJybG4oIkZBSUw6IGluZGV4T2YoJ3EnKSA9ICIgKyBqKTsKKyAgICB9CisgIH0KKyAgCisgIHB1YmxpYyB2b2lkIFRlc3RDb250YWluc1N0cmluZygpIHsKKyAgICBVbmljb2RlU2V0IHggPSBuZXcgVW5pY29kZVNldCgiW2F7YmN9XSIpOworICAgIGlmICh4LmNvbnRhaW5zKCJhYmMiKSkgZXJybG4oIkZBSUwiKTsKKyAgfQorICAKKyAgcHVibGljIHZvaWQgVGVzdEV4aGF1c3RpdmUoKSB7CisgICAgLy8gZXhoYXVzdGl2ZSB0ZXN0cy4gU2ltdWxhdGUgVW5pY29kZVNldHMgd2l0aCBpbnRlZ2Vycy4KKyAgICAvLyBUaGF0IGdpdmVzIHVzIHZlcnkgc29saWQgdGVzdHMgKGV4Y2VwdCBmb3IgbGFyZ2UgbWVtb3J5IHRlc3RzKS4KKyAgICAKKyAgICBjaGFyIGxpbWl0ID0gKGNoYXIpMTI4OworICAgIAorICAgIGZvciAoY2hhciBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nICIgKyBpICsgIiwgIiArIGJpdHNUb1NldChpKSk7CisgICAgICBfdGVzdENvbXBsZW1lbnQoaSk7CisgICAgICAKKyAgICAgIC8vIEFTIExPTkcgQVMgV0UgQVJFIEhFUkUsIGNoZWNrIHJvdW5kdHJpcAorICAgICAgY2hlY2tSb3VuZFRyaXAoYml0c1RvU2V0KGkpKTsKKyAgICAgIAorICAgICAgZm9yIChjaGFyIGogPSAwOyBqIDwgbGltaXQ7ICsraikgeworICAgICAgICBfdGVzdEFkZChpLGopOworICAgICAgICBfdGVzdFhvcihpLGopOworICAgICAgICBfdGVzdFJldGFpbihpLGopOworICAgICAgICBfdGVzdFJlbW92ZShpLGopOworICAgICAgfQorICAgIH0KKyAgfQorICAKKyAgLyoqCisgICAqIE1ha2Ugc3VyZSBlYWNoIHNjcmlwdCBuYW1lIGFuZCBhYmJyZXZpYXRlZCBuYW1lIGNhbiBiZSB1c2VkCisgICAqIHRvIGNvbnN0cnVjdCBhIFVuaWNvZGVTZXQuCisgICAqLworICBwdWJsaWMgdm9pZCBUZXN0U2NyaXB0TmFtZXMoKSB7CisgICAgZm9yIChpbnQgaT0wOyBpPFVTY3JpcHQuQ09ERV9MSU1JVDsgKytpKSB7CisgICAgICBmb3IgKGludCBqPTA7IGo8MjsgKytqKSB7CisgICAgICAgIFN0cmluZyBwYXQgPSAiIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBTdHJpbmcgbmFtZSA9CisgICAgICAgICAgICAoaj09MCkgPyBVU2NyaXB0LmdldE5hbWUoaSkgOiBVU2NyaXB0LmdldFNob3J0TmFtZShpKTsKKyAgICAgICAgICAgIHBhdCA9ICJbOiIgKyBuYW1lICsgIjpdIjsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHBhdCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgaWYgKHBhdC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCAoaW4gVVNjcmlwdCk6IE5vIG5hbWUgZm9yIHNjcmlwdCAiICsgaSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb3VsZG4ndCBjcmVhdGUgIiArIHBhdCk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9CisgIAorICAvKioKKyAgICogVGVzdCBjbG9zdXJlIEFQSS4KKyAgICovCisgIHB1YmxpYyB2b2lkIFRlc3RDbG9zZU92ZXIoKSB7CisgICAgU3RyaW5nIENBU0UgPSBTdHJpbmcudmFsdWVPZihVbmljb2RlU2V0LkNBU0UpOworICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgIC8vIHNlbGVjdG9yLCBpbnB1dCwgb3V0cHV0CisgICAgICAgIENBU0UsCisgICAgICAgICJbYXFcdTAwREZ7QmN9e2JDfXtGaX1dIiwKKyAgICAgICAgIlthQXFRXHUwMERGXHVGQjAxe3NzfXtiY317Zml9XSIsCisgICAgICAgIAorICAgICAgICBDQVNFLAorICAgICAgICAiW1x1MDFGMV0iLCAvLyAnRFonCisgICAgICAgICJbXHUwMUYxXHUwMUYyXHUwMUYzXSIsCisgICAgICAgIAorICAgICAgICBDQVNFLAorICAgICAgICAiW1x1MUZCNF0iLAorICAgICAgICAiW1x1MUZCNHtcdTAzQUNcdTAzQjl9XSIsCisgICAgICAgIAorICAgICAgICBDQVNFLAorICAgICAgICAiW3tGXHVGQjAxfV0iLAorICAgICAgICAiW1x1RkIwM3tmZml9XSIsICAgICAgICAgICAgCisgICAgICAgIAorICAgICAgICBDQVNFLAorICAgICAgICAiW2Etel0iLCJbQS1aYS16XHUwMTdGXHUyMTJBXSIsCisgICAgICAgIENBU0UsCisgICAgICAgICJbYWJjXSIsIltBLUNhLWNdIiwKKyAgICAgICAgQ0FTRSwKKyAgICAgICAgIltBQkNdIiwiW0EtQ2EtY10iLAorICAgIH07CisgICAgCisgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICBVbmljb2RlU2V0IHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgaW50IHNlbGVjdG9yID0gSW50ZWdlci5wYXJzZUludChEQVRBW2ldKTsKKyAgICAgIFN0cmluZyBwYXQgPSBEQVRBW2krMV07CisgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzJdOworICAgICAgcy5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgIHMuY2xvc2VPdmVyKHNlbGVjdG9yKTsKKyAgICAgIHQuYXBwbHlQYXR0ZXJuKGV4cCk7CisgICAgICBpZiAocy5lcXVhbHModCkpIHsKKyAgICAgICAgbG9nbG4oIk9rOiAiICsgcGF0ICsgIi5jbG9zZU92ZXIoIiArIHNlbGVjdG9yICsgIikgPT4gIiArIGV4cCk7CisgICAgICB9IGVsc2UgeworICAgICAgICBlcnJsbigiRkFJTDogIiArIHBhdCArICIuY2xvc2VPdmVyKCIgKyBzZWxlY3RvciArICIpID0+ICIgKworICAgICAgICAgICAgcy50b1BhdHRlcm4odHJ1ZSkgKyAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gVGVzdCB0aGUgcGF0dGVybiBBUEkKKyAgICBzLmFwcGx5UGF0dGVybigiW2FiY10iLCBVbmljb2RlU2V0LkNBU0UpOworICAgIGV4cGVjdENvbnRhaW5tZW50KHMsICJhYmNBQkMiLCAiZGVmREVGIik7CisgICAgcyA9IG5ldyBVbmljb2RlU2V0KCJbXmFiY10iLCBVbmljb2RlU2V0LkNBU0UpOworICAgIGV4cGVjdENvbnRhaW5tZW50KHMsICJkZWZERUYiLCAiYWJjQUJDIik7CisgIH0KKyAgCisgIHB1YmxpYyB2b2lkIFRlc3RFc2NhcGVQYXR0ZXJuKCkgeworICAgIC8vIFRoZSBmb2xsb3dpbmcgcGF0dGVybiBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHJhbmdlICJjLWQiCisgICAgLy8gZm9yIHdoaWNoIGlzUnVsZVdoaXRlU3BhY2UoYykgb3IgaXNSdWxlV2hpdGVTcGFjZShkKSBpcyB0cnVlLgorICAgIFN0cmluZyBwYXR0ZXJuID0KKyAgICAgICJbXFx1RkVGRiBcXHUyMDBFLVxcdTIwRkYgXFx1RkZGOS1cXHVGRkZDIFxcVTAwMDFEMTczLVxcVTAwMDFEMTdBIFxcVTAwMEYwMDAwLVxcVTAwMEZGRkZEIF0iOworICAgIFN0cmluZyBleHAgPQorICAgICAgIltcXHUyMDBFLVxcdTIwRkZcXHVGRUZGXFx1RkZGOS1cXHVGRkZDXFxVMDAwMUQxNzMtXFxVMDAwMUQxN0FcXFUwMDBGMDAwMC1cXFUwMDBGRkZGRF0iOworICAgIC8vIFdlIHRlc3QgdGhpcyB3aXRoIHR3byBwYXNzZXM7IGluIHRoZSBzZWNvbmQgcGFzcyB3ZQorICAgIC8vIHByZS11bmVzY2FwZSB0aGUgcGF0dGVybi4gIFNpbmNlIFUrMjAwRSBpcyBydWxlIHdoaXRlc3BhY2UsCisgICAgLy8gdGhpcyBmYWlscyAtLSB3aGljaCBpcyB3aGF0IHdlIGV4cGVjdC4KKyAgICBmb3IgKGludCBwYXNzPTE7IHBhc3M8PTI7ICsrcGFzcykgeworICAgICAgU3RyaW5nIHBhdCA9IHBhdHRlcm47CisgICAgICBpZiAocGFzcz09MikgeworICAgICAgICBwYXQgPSBVdGlsaXR5LnVuZXNjYXBlKHBhdCk7CisgICAgICB9CisgICAgICAvLyBQYXR0ZXJuIGlzIG9ubHkgZ29vZCBmb3IgcGFzcyAxCisgICAgICBib29sZWFuIGlzUGF0dGVyblZhbGlkID0gKHBhc3M9PTEpOworICAgICAgCisgICAgICBVbmljb2RlU2V0IHNldCA9IG51bGw7CisgICAgICB0cnkgeworICAgICAgICBzZXQgPSBuZXcgVW5pY29kZVNldChwYXQpOworICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgc2V0ID0gbnVsbDsKKyAgICAgIH0KKyAgICAgIGlmICgoc2V0ICE9IG51bGwpICE9IGlzUGF0dGVyblZhbGlkKXsKKyAgICAgICAgZXJybG4oIkZBSUw6IGFwcGx5UGF0dGVybigiICsKKyAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHBhdCkgKyAiKSA9PiAiICsgc2V0KTsKKyAgICAgICAgY29udGludWU7CisgICAgICB9CisgICAgICBpZiAoc2V0ID09IG51bGwpIHsKKyAgICAgICAgY29udGludWU7CisgICAgICB9CisgICAgICBpZiAoc2V0LmNvbnRhaW5zKChjaGFyKTB4MDY0NCkpeworICAgICAgICBlcnJsbigiRkFJTDogIiArIFV0aWxpdHkuZXNjYXBlKHBhdCkgKyAiIGNvbnRhaW5zKFUrMDY2NCkiKTsKKyAgICAgIH0KKyAgICAgIAorICAgICAgU3RyaW5nIG5ld3BhdCA9IHNldC50b1BhdHRlcm4odHJ1ZSk7CisgICAgICBpZiAobmV3cGF0LmVxdWFscyhleHApKSB7CisgICAgICAgIGxvZ2xuKFV0aWxpdHkuZXNjYXBlKHBhdCkgKyAiID0+ICIgKyBuZXdwYXQpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBVdGlsaXR5LmVzY2FwZShwYXQpICsgIiA9PiAiICsgbmV3cGF0KTsKKyAgICAgIH0KKyAgICAgIAorICAgICAgZm9yIChpbnQgaT0wOyBpPHNldC5nZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigiUmFuZ2UgIik7CisgICAgICAgIHN0ci5hcHBlbmQoKGNoYXIpKDB4MzAgKyBpKSkKKyAgICAgICAgLmFwcGVuZCgiOiAiKTsKKyAgICAgICAgVVRGMTYuYXBwZW5kKHN0ciwgc2V0LmdldFJhbmdlU3RhcnQoaSkpOworICAgICAgICBzdHIuYXBwZW5kKCIgLSAiKTsKKyAgICAgICAgVVRGMTYuYXBwZW5kKHN0ciwgc2V0LmdldFJhbmdlRW5kKGkpKTsKKyAgICAgICAgU3RyaW5nIHMgPSBVdGlsaXR5LmVzY2FwZShzdHIudG9TdHJpbmcoKSArICIgKCIgKyBzZXQuZ2V0UmFuZ2VTdGFydChpKSArICIgLSAiICsKKyAgICAgICAgICAgIHNldC5nZXRSYW5nZUVuZChpKSArICIpIik7CisgICAgICAgIGlmIChzZXQuZ2V0UmFuZ2VTdGFydChpKSA8IDApIHsKKyAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGxvZ2xuKHMpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9CisgIAorICBwdWJsaWMgdm9pZCBUZXN0U3ltYm9sVGFibGUoKSB7CisgICAgLy8gTXVsdGlwbGUgdGVzdCBjYXNlcyBjYW4gYmUgc2V0IHVwIGhlcmUuICBFYWNoIHRlc3QgY2FzZQorICAgIC8vIGlzIHRlcm1pbmF0ZWQgYnkgbnVsbDoKKyAgICAvLyB2YXIsIHZhbHVlLCB2YXIsIHZhbHVlLC4uLiwgaW5wdXQgcGF0LiwgZXhwLiBvdXRwdXQgcGF0LiwgbnVsbAorICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICJ1cyIsICJhLXoiLCAiWzAtMSR1c10iLCAiWzAtMWEtel0iLCBudWxsLAorICAgICAgICAidXMiLCAiW2Etel0iLCAiWzAtMSR1c10iLCAiWzAtMVthLXpdXSIsIG51bGwsCisgICAgICAgICJ1cyIsICJcXFthXFwtelxcXSIsICJbMC0xJHVzXSIsICJbLTAxXFxbXFxdYXpdIiwgbnVsbAorICAgIH07CisgICAgCisgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyArK2kpIHsKKyAgICAgIFRva2VuU3ltYm9sVGFibGUgc3ltID0gbmV3IFRva2VuU3ltYm9sVGFibGUoKTsKKyAgICAgIAorICAgICAgLy8gU2V0IHVwIHZhcmlhYmxlcworICAgICAgd2hpbGUgKERBVEFbaSsyXSAhPSBudWxsKSB7CisgICAgICAgIHN5bS5hZGQoREFUQVtpXSwgREFUQVtpKzFdKTsKKyAgICAgICAgaSArPSAyOworICAgICAgfQorICAgICAgCisgICAgICAvLyBJbnB1dCBwYXR0ZXJuIGFuZCBleHBlY3RlZCBvdXRwdXQgcGF0dGVybgorICAgICAgU3RyaW5nIGlucGF0ID0gREFUQVtpXSwgZXhwcGF0ID0gREFUQVtpKzFdOworICAgICAgaSArPSAyOworICAgICAgCisgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgVW5pY29kZVNldCB1cyA9IG5ldyBVbmljb2RlU2V0KGlucGF0LCBwb3MsIHN5bSk7CisgICAgICAKKyAgICAgIC8vIHJlc3VsdHMKKyAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSAhPSBpbnBhdC5sZW5ndGgoKSkgeworICAgICAgICBlcnJsbigiRmFpbGVkIHRvIHJlYWQgdG8gZW5kIG9mIHN0cmluZyBcIiIKKyAgICAgICAgICAgICsgaW5wYXQgKyAiXCI6IHJlYWQgdG8gIgorICAgICAgICAgICAgKyBwb3MuZ2V0SW5kZXgoKSArICIsIGxlbmd0aCBpcyAiCisgICAgICAgICAgICArIGlucGF0Lmxlbmd0aCgpKTsKKyAgICAgIH0KKyAgICAgIAorICAgICAgVW5pY29kZVNldCB1czIgPSBuZXcgVW5pY29kZVNldChleHBwYXQpOworICAgICAgaWYgKCF1cy5lcXVhbHModXMyKSkgeworICAgICAgICBlcnJsbigiRmFpbGVkLCBnb3QgIiArIHVzICsgIiwgZXhwZWN0ZWQgIiArIHVzMik7CisgICAgICB9IGVsc2UgeworICAgICAgICBsb2dsbigiT2ssIGdvdCAiICsgdXMpOworICAgICAgfQorICAgICAgCisgICAgICAvL2NvdmVyIFVuaWNvZGUoU3RyaW5nLFBhcnNlUG9zaXRpb24sU3ltYm9sVGFibGUsaW50KQorICAgICAgUGFyc2VQb3NpdGlvbiBpbnBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgVW5pY29kZVNldCBpblNldCA9IG5ldyBVbmljb2RlU2V0KGlucGF0LCBpbnBvcywgc3ltLCBVbmljb2RlU2V0LklHTk9SRV9TUEFDRSk7CisgICAgICBVbmljb2RlU2V0IGV4cFNldCA9IG5ldyBVbmljb2RlU2V0KGV4cHBhdCk7CisgICAgICBpZiAoIWluU2V0LmVxdWFscyhleHBTZXQpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBGYWlsZWQsIGdvdCAiICsgaW5TZXQgKyAiLCBleHBlY3RlZCAiICsgZXhwU2V0KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ2xuKCJPSzogZ290ICIgKyBpblNldCk7CisgICAgICB9CisgICAgfQorICB9CisgIAorICAvKioKKyAgICogVGVzdCB0aGF0IFBvc2l4IHN0eWxlIGNoYXJhY3RlciBjbGFzc2VzIFs6ZGlnaXQ6XSwgZXRjLgorICAgKiAgIGhhdmUgdGhlIFVuaWNvZGUgZGVmaW5pdGlvbnMgZnJvbSBUUiAxOC4KKyAgICovCisgIHB1YmxpYyB2b2lkIFRlc3RQb3NpeENsYXNzZXMoKSB7CisgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGFscGhhIiwgIls6YWxwaGE6XSIsICJcXHB7QWxwaGFiZXRpY30iKTsKKyAgICBleHBlY3RFcXVhbCgiUE9TSVggbG93ZXIiLCAiWzpsb3dlcjpdIiwgIlxccHtsb3dlcmNhc2V9Iik7CisgICAgZXhwZWN0RXF1YWwoIlBPU0lYIHVwcGVyIiwgIls6dXBwZXI6XSIsICJcXHB7VXBwZXJjYXNlfSIpOworICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBwdW5jdCIsICJbOnB1bmN0Ol0iLCAiXFxwe2djPVB1bmN0dWF0aW9ufSIpOworICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBkaWdpdCIsICJbOmRpZ2l0Ol0iLCAiXFxwe2djPURlY2ltYWxOdW1iZXJ9Iik7CisgICAgZXhwZWN0RXF1YWwoIlBPU0lYIHhkaWdpdCIsICJbOnhkaWdpdDpdIiwgIltcXHB7RGVjaW1hbE51bWJlcn1cXHB7SGV4RGlnaXR9XSIpOworICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBhbG51bSIsICJbOmFsbnVtOl0iLCAiW1xccHtBbHBoYWJldGljfVxccHtEZWNpbWFsTnVtYmVyfV0iKTsKKyAgICBleHBlY3RFcXVhbCgiUE9TSVggc3BhY2UiLCAiWzpzcGFjZTpdIiwgIlxccHtXaGl0ZXNwYWNlfSIpOworICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBibGFuayIsICJbOmJsYW5rOl0iLCAiW1xccHtXaGl0ZXNwYWNlfS1bXFx1MDAwYVxcdTAwMEJcXHUwMDBjXFx1MDAwZFxcdTAwODVcXHB7TGluZVNlcGFyYXRvcn1cXHB7UGFyYWdyYXBoU2VwYXJhdG9yfV1dIik7CisgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGNudHJsIiwgIls6Y250cmw6XSIsICJcXHB7Q29udHJvbH0iKTsKKyAgICBleHBlY3RFcXVhbCgiUE9TSVggZ3JhcGgiLCAiWzpncmFwaDpdIiwgIlteXFxwe1doaXRlc3BhY2V9XFxwe0NvbnRyb2x9XFxwe1N1cnJvZ2F0ZX1cXHB7VW5hc3NpZ25lZH1dIik7CisgICAgZXhwZWN0RXF1YWwoIlBPU0lYIHByaW50IiwgIls6cHJpbnQ6XSIsICJbWzpncmFwaDpdWzpibGFuazpdLVtcXHB7Q29udHJvbH1dXSIpOworICB9CisgIAorICAvKioKKyAgICogVGVzdCB0aGF0IGZyb3plbiBjbGFzc2VzIGRpc2FsbG93IGNoYW5nZXMuIEZvciA0MjE3CisgICAqLworICBwdWJsaWMgdm9pZCBUZXN0RnJvemVuKCkgeworICAgIFVuaWNvZGVTZXQgdGVzdCA9IG5ldyBVbmljb2RlU2V0KCJbWzp3aGl0ZXNwYWNlOl1BXSIpOworICAgIHRlc3QuZnJlZXplKCk7CisgICAgY2hlY2tNb2RpZmljYXRpb24odGVzdCwgdHJ1ZSk7CisgICAgY2hlY2tNb2RpZmljYXRpb24odGVzdCwgZmFsc2UpOworICB9CisgIAorICBwdWJsaWMgdm9pZCBjaGVja01vZGlmaWNhdGlvbihVbmljb2RlU2V0IG9yaWdpbmFsLCBib29sZWFuIGlzRnJvemVuKSB7CisgICAgbWFpbjoKKyAgICAgIGZvciAoaW50IGkgPSAwOyA7KytpKSB7CisgICAgICAgIFVuaWNvZGVTZXQgdGVzdCA9IChVbmljb2RlU2V0KSAoaXNGcm96ZW4gPyBvcmlnaW5hbC5jbG9uZSgpIDogb3JpZ2luYWwuY2xvbmVBc1RoYXdlZCgpKTsKKyAgICAgICAgYm9vbGVhbiBnb3RFeGNlcHRpb24gPSB0cnVlOworICAgICAgICBib29sZWFuIGNoZWNrRXF1YWxzID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBzd2l0Y2goaSkgeworICAgICAgICAgICAgY2FzZSAwOiB0ZXN0LmFkZCgwKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6IHRlc3QuYWRkKDAsMSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOiB0ZXN0LmFkZCgiYSIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzogTGlzdCBhID0gbmV3IEFycmF5TGlzdCgpOyBhLmFkZCgiYSIpOyB0ZXN0LmFkZEFsbChhKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDQ6IHRlc3QuYWRkQWxsKCJhYiIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNTogdGVzdC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIlthYl0iKSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OiB0ZXN0LmFwcGx5SW50UHJvcGVydHlWYWx1ZSgwLDApOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNzogdGVzdC5hcHBseVBhdHRlcm4oIlthYl0iKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6IHRlc3QuYXBwbHlQYXR0ZXJuKCJbYWJdIiwgdHJ1ZSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA5OiB0ZXN0LmFwcGx5UGF0dGVybigiW2FiXSIsIDApOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTA6IHRlc3QuYXBwbHlQcm9wZXJ0eUFsaWFzKCJoZXgiLCJ0cnVlIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMTogdGVzdC5hcHBseVByb3BlcnR5QWxpYXMoImhleCIsICJ0cnVlIiwgbnVsbCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMjogdGVzdC5jbG9zZU92ZXIoVW5pY29kZVNldC5DQVNFKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDEzOiB0ZXN0LmNvbXBhY3QoKTsgY2hlY2tFcXVhbHMgPSBmYWxzZTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE0OiB0ZXN0LmNvbXBsZW1lbnQoMCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNTogdGVzdC5jb21wbGVtZW50KDAsMCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjogdGVzdC5jb21wbGVtZW50KCJhYiIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTc6IHRlc3QuY29tcGxlbWVudEFsbCgiYWIiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE4OiB0ZXN0LmNvbXBsZW1lbnRBbGwobmV3IFVuaWNvZGVTZXQoIlthYl0iKSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOTogdGVzdC5yZW1vdmUoJyAnKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDIwOiB0ZXN0LnJlbW92ZSgnICcsJ2EnKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDIxOiB0ZXN0LnJlbW92ZSgiICIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjI6IHRlc3QucmVtb3ZlQWxsKCIgYSIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjM6IHRlc3QucmVtb3ZlQWxsKG5ldyBVbmljb2RlU2V0KCJbXFwgYV0iKSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAyNDogdGVzdC5yZXRhaW4oJyAnKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI1OiB0ZXN0LnJldGFpbignICcsJ2EnKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI2OiB0ZXN0LnJldGFpbigiICIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjc6IHRlc3QucmV0YWluQWxsKCIgYSIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjg6IHRlc3QucmV0YWluQWxsKG5ldyBVbmljb2RlU2V0KCJbXFwgYV0iKSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOTogdGVzdC5zZXQoMCwxKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDMwOiB0ZXN0LnNldChuZXcgVW5pY29kZVNldCgiW2FiXSIpKTsgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6IGNvbnRpbnVlIG1haW47IC8vIHNvIHdlIGRvbid0IGtlZXAgaGF2aW5nIHRvIGNoYW5nZSB0aGUgZW5kcG9pbnQsIGFuZCBnYXBzIGFyZSBub3Qgc2tpcHBlZC4KKyAgICAgICAgICAgIGNhc2UgMzU6IHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgICAgZ290RXhjZXB0aW9uID0gZmFsc2U7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzRnJvemVuICYmICFnb3RFeGNlcHRpb24pIGVycmxuKGkgKyAiKSBhdHRlbXB0IHRvIG1vZGlmeSBmcm96ZW4gb2JqZWN0IGRpZG4ndCByZXN1bHQgaW4gYW4gZXhjZXB0aW9uIik7CisgICAgICAgIGlmICghaXNGcm96ZW4gJiYgZ290RXhjZXB0aW9uKSBlcnJsbihpICsgIikgYXR0ZW1wdCB0byBtb2RpZnkgdGhhd2VkIG9iamVjdCBkaWQgcmVzdWx0IGluIGFuIGV4Y2VwdGlvbiIpOworICAgICAgICBpZiAoY2hlY2tFcXVhbHMpIHsKKyAgICAgICAgICBpZiAodGVzdC5lcXVhbHMob3JpZ2luYWwpKSB7CisgICAgICAgICAgICBpZiAoIWlzRnJvemVuKSBlcnJsbihpICsgIikgYXR0ZW1wdCB0byBtb2RpZnkgdGhhd2VkIG9iamVjdCBkaWRuJ3QgY2hhbmdlIHRoZSBvYmplY3QiKTsKKyAgICAgICAgICB9IGVsc2UgeyAvLyB1bmVxdWFsCisgICAgICAgICAgICBpZiAoaXNGcm96ZW4pIGVycmxuKGkgKyAiKSBhdHRlbXB0IHRvIG1vZGlmeSBmcm96ZW4gb2JqZWN0IGNoYW5nZWQgdGhlIG9iamVjdCIpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICB9CisgIAorICBTdHJpbmdbXSBwcmV0dHlEYXRhID0geworICAgICAgIltcXHVEN0RFLVxcdUQ5MEMgXFx1RENCNS1cXHVERDlGXSIsIC8vIHNwZWNpYWwgY2FzZQorICAgICAgIls6YW55Ol0iLAorICAgICAgIls6d2hpdGVzcGFjZTpdIiwKKyAgICAgICJbOmxpbmVicmVhaz1BTDpdIiwKKyAgfTsKKyAgCisgIHB1YmxpYyB2b2lkIFRlc3RQcmV0dHlQcmludGluZygpIHsKKyAgICB0cnl7CisgICAgICBQcmV0dHlQcmludGVyIHBwID0gbmV3IFByZXR0eVByaW50ZXIoKTsKKyAgICAgIAorICAgICAgaW50IGkgPSAwOworICAgICAgZm9yICg7IGkgPCBwcmV0dHlEYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIFVuaWNvZGVTZXQgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHByZXR0eURhdGFbaV0pOworICAgICAgICBjaGVja1ByZXR0eVNldChwcCwgaSwgdGVzdCk7CisgICAgICB9CisgICAgICBSYW5kb20gcmFuZG9tID0gbmV3IFJhbmRvbSgwKTsKKyAgICAgIFVuaWNvZGVTZXQgdGVzdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAKKyAgICAgIC8vIFRvIGtlZXAgcnVudGltZXMgdW5kZXIgY29udHJvbCwgbWFrZSB0aGUgbnVtYmVyIG9mIHJhbmRvbSB0ZXN0IGNhc2VzCisgICAgICAvLyAgIHRvIHRyeSBkZXBlbmRzIG9uIHRoZSB0ZXN0IGZyYW1ld29yayBleGhhdXN0aXZlIHNldHRpbmcuCisgICAgICAvLyAgcGFyYW1zLmluY2x1c2lvbnMgPSA1OiAgIGRlZmF1bHQgZXhoYXVzdGl2ZSB2YWx1ZQorICAgICAgLy8gIHBhcmFtcy5pbmNsdXNpb25zID0gMTA6ICBtYXggZXhoYXVzdGl2ZSB2YWx1ZS4KKyAgICAgIGludCBpdGVyYXRpb25zID0gNTA7CisgICAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+IDUpIHsKKyAgICAgICAgaXRlcmF0aW9ucyA9IChwYXJhbXMuaW5jbHVzaW9uLTUpICogMjAwOworICAgICAgfQorICAgICAgZm9yICg7IGkgPCBpdGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgZG91YmxlIHN0YXJ0ID0gcmFuZG9tLm5leHRHYXVzc2lhbigpICogMHgxMDAwMDsKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAtIHN0YXJ0OworICAgICAgICBpZiAoc3RhcnQgPiAweDEwRkZGRikgeworICAgICAgICAgIHN0YXJ0ID0gMHgxMEZGRkY7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGVuZCA9IHJhbmRvbS5uZXh0R2F1c3NpYW4oKSAqIDB4MTAwOworICAgICAgICBpZiAoZW5kIDwgMCkgZW5kID0gLWVuZDsKKyAgICAgICAgZW5kID0gc3RhcnQgKyBlbmQ7CisgICAgICAgIGlmIChlbmQgPiAweDEwRkZGRikgeworICAgICAgICAgIGVuZCA9IDB4MTBGRkZGOworICAgICAgICB9CisgICAgICAgIHRlc3QuY29tcGxlbWVudCgoaW50KXN0YXJ0LCAoaW50KWVuZCk7CisgICAgICAgIGNoZWNrUHJldHR5U2V0KHBwLCBpLCB0ZXN0KTsKKyAgICAgIH0KKyAgICB9Y2F0Y2goUnVudGltZUV4Y2VwdGlvbiBleCl7CisgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIENvbGxhdG9yIik7CisgICAgfQorICB9CisgIAorICBwcml2YXRlIHZvaWQgY2hlY2tQcmV0dHlTZXQoUHJldHR5UHJpbnRlciBwcCwgaW50IGksIFVuaWNvZGVTZXQgdGVzdCkgeworICAgIFN0cmluZyBwcmV0dHkgPSBwcC50b1BhdHRlcm4odGVzdCk7CisgICAgVW5pY29kZVNldCByZXRyeSA9IG5ldyBVbmljb2RlU2V0KHByZXR0eSk7CisgICAgaWYgKCF0ZXN0LmVxdWFscyhyZXRyeSkpIHsKKyAgICAgIGVycmxuKGkgKyAiLiBGYWlsZWQgdGVzdDogIiArIHRlc3QgKyAiICE9ICIgKyBwcmV0dHkpOworICAgIH0gZWxzZSB7CisgICAgICBsb2dsbihpICsgIi4gV29ya2VkIGZvciAiICsgdHJ1bmNhdGUodGVzdC50b1N0cmluZygpKSArICIgPT4gIiArIHRydW5jYXRlKHByZXR0eSkpOworICAgIH0KKyAgfQorICAKKyAgcHJpdmF0ZSBTdHJpbmcgdHJ1bmNhdGUoU3RyaW5nIHN0cmluZykgeworICAgIGlmIChzdHJpbmcubGVuZ3RoKCkgPD0gMTAwKSByZXR1cm4gc3RyaW5nOworICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKDAsOTcpICsgIi4uLiI7CisgIH0KKyAgCisgIHB1YmxpYyBjbGFzcyBUb2tlblN5bWJvbFRhYmxlIGltcGxlbWVudHMgU3ltYm9sVGFibGUgeworICAgIEhhc2hNYXAgY29udGVudHMgPSBuZXcgSGFzaE1hcCgpOworICAgIAorICAgIC8qKgorICAgICAqIChOb24tU3ltYm9sVGFibGUgQVBJKSBBZGQgdGhlIGdpdmVuIHZhcmlhYmxlIGFuZCB2YWx1ZSB0bworICAgICAqIHRoZSB0YWJsZS4gIFZhcmlhYmxlIHNob3VsZCBOT1QgY29udGFpbiBsZWFkaW5nICckJy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGQoU3RyaW5nIHZhciwgU3RyaW5nIHZhbHVlKSB7CisgICAgICBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbdmFsdWUubGVuZ3RoKCldOworICAgICAgdmFsdWUuZ2V0Q2hhcnMoMCwgdmFsdWUubGVuZ3RoKCksIGJ1ZmZlciwgMCk7CisgICAgICBhZGQodmFyLCBidWZmZXIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAoTm9uLVN5bWJvbFRhYmxlIEFQSSkgQWRkIHRoZSBnaXZlbiB2YXJpYWJsZSBhbmQgdmFsdWUgdG8KKyAgICAgKiB0aGUgdGFibGUuICBWYXJpYWJsZSBzaG91bGQgTk9UIGNvbnRhaW4gbGVhZGluZyAnJCcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKFN0cmluZyB2YXIsIGNoYXJbXSBib2R5KSB7CisgICAgICBsb2dsbigiVG9rZW5TeW1ib2xUYWJsZTogYWRkIFwiIiArIHZhciArICJcIiA9PiBcIiIgKworICAgICAgICAgIG5ldyBTdHJpbmcoYm9keSkgKyAiXCIiKTsKKyAgICAgIGNvbnRlbnRzLnB1dCh2YXIsIGJvZHkpOworICAgIH0KKyAgICAKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlN5bWJvbFRhYmxlI2xvb2t1cChqYXZhLmxhbmcuU3RyaW5nKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyW10gbG9va3VwKFN0cmluZyBzKSB7CisgICAgICBsb2dsbigiVG9rZW5TeW1ib2xUYWJsZTogbG9va3VwIFwiIiArIHMgKyAiXCIgPT4gXCIiICsKKyAgICAgICAgICBuZXcgU3RyaW5nKChjaGFyW10pIGNvbnRlbnRzLmdldChzKSkgKyAiXCIiKTsKKyAgICAgIHJldHVybiAoY2hhcltdKWNvbnRlbnRzLmdldChzKTsKKyAgICB9CisgICAgCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5TeW1ib2xUYWJsZSNsb29rdXBNYXRjaGVyKGludCkKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlN5bWJvbFRhYmxlI3BhcnNlUmVmZXJlbmNlKGphdmEubGFuZy5TdHJpbmcsCisgICAgIGphdmEudGV4dC5QYXJzZVBvc2l0aW9uLCBpbnQpCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBwYXJzZVJlZmVyZW5jZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MsIGludAorICAgICAgICBsaW1pdCkgeworICAgICAgaW50IGNwOworICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICBpbnQgaTsKKyAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICBjcCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgaWYgKCFjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoY3ApKSB7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGxvZ2xuKCJUb2tlblN5bWJvbFRhYmxlOiBwYXJzZSBcIiIgKyB0ZXh0ICsgIlwiIGZyb20gIiArCisgICAgICAgICAgc3RhcnQgKyAiIHRvICIgKyBpICsKKyAgICAgICAgICAiID0+IFwiIiArIHRleHQuc3Vic3RyaW5nKHN0YXJ0LGkpICsgIlwiIik7CisgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoc3RhcnQsaSk7CisgICAgfQorICB9CisgIAorICBwdWJsaWMgdm9pZCBUZXN0U3Vycm9nYXRlKCkgeworICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgIC8vIFRoZXNlIHNob3VsZCBhbGwgYmVoYXZlIGlkZW50aWNhbGx5CisgICAgICAgICJbYWJjXFx1RDgwMFxcdURDMDBdIiwKKyAgICAgICAgIlthYmNcdUQ4MDBcdURDMDBdIiwKKyAgICAgICAgIlthYmNcXFUwMDAxMDAwMF0iLAorICAgIH07CisgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyArK2kpIHsKKyAgICAgIGxvZ2xuKCJUZXN0IHBhdHRlcm4gIiArIGkgKyAiIDoiICsgVXRpbGl0eS5lc2NhcGUoREFUQVtpXSkpOworICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChEQVRBW2ldKTsKKyAgICAgIGV4cGVjdENvbnRhaW5tZW50KHNldCwKKyAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiYWJjXFxVMDAwMTAwMDAiKSwKKyAgICAgICJcdUQ4MDA7XHVEQzAwIik7IC8vIHNwbGl0IGFwYXJ0IHN1cnJvZ2F0ZS1wYWlyCisgICAgICBpZiAoc2V0LnNpemUoKSAhPSA0KSB7CisgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKCJGQUlMOiAiICsgREFUQVtpXSArICIuc2l6ZSgpID09ICIgKyAKKyAgICAgICAgICAgIHNldC5zaXplKCkgKyAiLCBleHBlY3RlZCA0IikpOworICAgICAgfQorICAgIH0KKyAgfQorICAKKyAgcHVibGljIHZvaWQgVGVzdENvbnRhaW5zKCkgeworICAgIGludCBsaW1pdCA9IDI1NjsgLy8gY29tYmluYXRpb25zIHRvIHRlc3QKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKKyAgICAgIGxvZ2xuKCJUcnlpbmc6ICIgKyBpKTsKKyAgICAgIFVuaWNvZGVTZXQgeCA9IGJpdHNUb1NldChpKTsKKyAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGltaXQ7ICsraikgeworICAgICAgICBVbmljb2RlU2V0IHkgPSBiaXRzVG9TZXQoaik7CisgICAgICAgIGJvb2xlYW4gY29udGFpbnNOb25lID0gKGkgJiBqKSA9PSAwOworICAgICAgICBib29sZWFuIGNvbnRhaW5zQWxsID0gKGkgJiBqKSA9PSBqOworICAgICAgICBib29sZWFuIGVxdWFscyA9IGkgPT0gajsKKyAgICAgICAgaWYgKGNvbnRhaW5zTm9uZSAhPSB4LmNvbnRhaW5zTm9uZSh5KSkgeworICAgICAgICAgIHguY29udGFpbnNOb25lKHkpOyAvLyByZXBlYXQgZm9yIGRlYnVnZ2luZworICAgICAgICAgIGVycmxuKCJGQUlMRUQ6ICIgKyB4ICsgICIgY29udGFpbnNTb21lICIgKyB5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29udGFpbnNBbGwgIT0geC5jb250YWluc0FsbCh5KSkgeworICAgICAgICAgIHguY29udGFpbnNBbGwoeSk7IC8vIHJlcGVhdCBmb3IgZGVidWdnaW5nCisgICAgICAgICAgZXJybG4oIkZBSUxFRDogIiArIHggKyAgIiBjb250YWluc0FsbCAiICsgeSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVxdWFscyAhPSB4LmVxdWFscyh5KSkgeworICAgICAgICAgIHguZXF1YWxzKHkpOyAvLyByZXBlYXQgZm9yIGRlYnVnZ2luZworICAgICAgICAgIGVycmxuKCJGQUlMRUQ6ICIgKyB4ICsgICIgZXF1YWxzICIgKyB5KTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorICAKKyAgdm9pZCBfdGVzdENvbXBsZW1lbnQoaW50IGEpIHsKKyAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgVW5pY29kZVNldCB6ID0gYml0c1RvU2V0KGEpOworICAgIHouY29tcGxlbWVudCgpOworICAgIGludCBjID0gc2V0VG9CaXRzKHopOworICAgIGlmIChjICE9ICh+YSkpIHsKKyAgICAgIGVycmxuKCJGQUlMRUQ6IGFkZDogfiIgKyB4ICsgICIgIT0gIiArIHopOworICAgICAgZXJybG4oIkZBSUxFRDogYWRkOiB+IiArIGEgKyAiICE9ICIgKyBjKTsKKyAgICB9CisgICAgY2hlY2tDYW5vbmljYWxSZXAoeiwgImNvbXBsZW1lbnQgIiArIGEpOworICB9CisgIAorICB2b2lkIF90ZXN0QWRkKGludCBhLCBpbnQgYikgeworICAgIFVuaWNvZGVTZXQgeCA9IGJpdHNUb1NldChhKTsKKyAgICBVbmljb2RlU2V0IHkgPSBiaXRzVG9TZXQoYik7CisgICAgVW5pY29kZVNldCB6ID0gYml0c1RvU2V0KGEpOworICAgIHouYWRkQWxsKHkpOworICAgIGludCBjID0gc2V0VG9CaXRzKHopOworICAgIGlmIChjICE9IChhIHwgYikpIHsKKyAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKCJGQUlMRUQ6IGFkZDogIiArIHggKyAiIHwgIiArIHkgKyAiICE9ICIgKyB6KSk7CisgICAgICBlcnJsbigiRkFJTEVEOiBhZGQ6ICIgKyBhICsgIiB8ICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgfQorICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJhZGQgIiArIGEgKyAiLCIgKyBiKTsKKyAgfQorICAKKyAgdm9pZCBfdGVzdFJldGFpbihpbnQgYSwgaW50IGIpIHsKKyAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgVW5pY29kZVNldCB5ID0gYml0c1RvU2V0KGIpOworICAgIFVuaWNvZGVTZXQgeiA9IGJpdHNUb1NldChhKTsKKyAgICB6LnJldGFpbkFsbCh5KTsKKyAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICBpZiAoYyAhPSAoYSAmIGIpKSB7CisgICAgICBlcnJsbigiRkFJTEVEOiByZXRhaW46ICIgKyB4ICsgIiAmICIgKyB5ICsgIiAhPSAiICsgeik7CisgICAgICBlcnJsbigiRkFJTEVEOiByZXRhaW46ICIgKyBhICsgIiAmICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgfQorICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJyZXRhaW4gIiArIGEgKyAiLCIgKyBiKTsKKyAgfQorICAKKyAgdm9pZCBfdGVzdFJlbW92ZShpbnQgYSwgaW50IGIpIHsKKyAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgVW5pY29kZVNldCB5ID0gYml0c1RvU2V0KGIpOworICAgIFVuaWNvZGVTZXQgeiA9IGJpdHNUb1NldChhKTsKKyAgICB6LnJlbW92ZUFsbCh5KTsKKyAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICBpZiAoYyAhPSAoYSAmfiBiKSkgeworICAgICAgZXJybG4oIkZBSUxFRDogcmVtb3ZlOiAiICsgeCArICIgJn4gIiArIHkgKyAiICE9ICIgKyB6KTsKKyAgICAgIGVycmxuKCJGQUlMRUQ6IHJlbW92ZTogIiArIGEgKyAiICZ+ICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgfQorICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJyZW1vdmUgIiArIGEgKyAiLCIgKyBiKTsKKyAgfQorICAKKyAgdm9pZCBfdGVzdFhvcihpbnQgYSwgaW50IGIpIHsKKyAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgVW5pY29kZVNldCB5ID0gYml0c1RvU2V0KGIpOworICAgIFVuaWNvZGVTZXQgeiA9IGJpdHNUb1NldChhKTsKKyAgICB6LmNvbXBsZW1lbnRBbGwoeSk7CisgICAgaW50IGMgPSBzZXRUb0JpdHMoeik7CisgICAgaWYgKGMgIT0gKGEgXiBiKSkgeworICAgICAgZXJybG4oIkZBSUxFRDogY29tcGxlbWVudDogIiArIHggKyAiIF4gIiArIHkgKyAiICE9ICIgKyB6KTsKKyAgICAgIGVycmxuKCJGQUlMRUQ6IGNvbXBsZW1lbnQ6ICIgKyBhICsgIiBeICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgfQorICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJjb21wbGVtZW50ICIgKyBhICsgIiwiICsgYik7CisgIH0KKyAgCisgIC8qKgorICAgKiBDaGVjayB0aGF0IHJhbmdlcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGFuZCBub24tCisgICAqIG92ZXJsYXBwaW5nLgorICAgKi8KKyAgdm9pZCBjaGVja0Nhbm9uaWNhbFJlcChVbmljb2RlU2V0IHNldCwgU3RyaW5nIG1zZykgeworICAgIGludCBuID0gc2V0LmdldFJhbmdlQ291bnQoKTsKKyAgICBpZiAobiA8IDApIHsKKyAgICAgIGVycmxuKCJGQUlMIHJlc3VsdCBvZiAiICsgbXNnICsKKyAgICAgICAgICAiOiByYW5nZSBjb3VudCBzaG91bGQgYmUgPj0gMCBidXQgaXMgIiArCisgICAgICAgICAgbiArICIgZm9yICIgKyBVdGlsaXR5LmVzY2FwZShzZXQudG9TdHJpbmcoKSkpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpbnQgbGFzdCA9IDA7CisgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgaW50IHN0YXJ0ID0gc2V0LmdldFJhbmdlU3RhcnQoaSk7CisgICAgICBpbnQgZW5kID0gc2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB7CisgICAgICAgIGVycmxuKCJGQUlMIHJlc3VsdCBvZiAiICsgbXNnICsKKyAgICAgICAgICAgICI6IHJhbmdlICIgKyAoaSsxKSArCisgICAgICAgICAgICAiIHN0YXJ0ID4gZW5kOiAiICsgc3RhcnQgKyAiLCAiICsgZW5kICsKKyAgICAgICAgICAgICIgZm9yICIgKyBVdGlsaXR5LmVzY2FwZShzZXQudG9TdHJpbmcoKSkpOworICAgICAgfQorICAgICAgaWYgKGkgPiAwICYmIHN0YXJ0IDw9IGxhc3QpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgcmVzdWx0IG9mICIgKyBtc2cgKworICAgICAgICAgICAgIjogcmFuZ2UgIiArIChpKzEpICsKKyAgICAgICAgICAgICIgb3ZlcmxhcHMgcHJldmlvdXMgcmFuZ2U6ICIgKyBzdGFydCArICIsICIgKyBlbmQgKworICAgICAgICAgICAgIiBmb3IgIiArIFV0aWxpdHkuZXNjYXBlKHNldC50b1N0cmluZygpKSk7CisgICAgICB9CisgICAgICBsYXN0ID0gZW5kOworICAgIH0KKyAgfQorICAKKyAgLyoqCisgICAqIENvbnZlcnQgYSBiaXRtYXNrIHRvIGEgVW5pY29kZVNldC4KKyAgICovCisgIFVuaWNvZGVTZXQgYml0c1RvU2V0KGludCBhKSB7CisgICAgVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7ICsraSkgeworICAgICAgaWYgKChhICYgKDE8PGkpKSAhPSAwKSB7CisgICAgICAgIHJlc3VsdC5hZGQoKGNoYXIpaSwoY2hhcilpKTsKKyAgICAgIH0KKyAgICB9CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorICAKKyAgLyoqCisgICAqIENvbnZlcnQgYSBVbmljb2RlU2V0IHRvIGEgYml0bWFzay4gIE9ubHkgdGhlIGNoYXJhY3RlcnMKKyAgICogVSswMDAwIHRvIFUrMDAyMCBhcmUgcmVwcmVzZW50ZWQgaW4gdGhlIGJpdG1hc2suCisgICAqLworICBzdGF0aWMgaW50IHNldFRvQml0cyhVbmljb2RlU2V0IHgpIHsKKyAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyArK2kpIHsKKyAgICAgIGlmICh4LmNvbnRhaW5zKChjaGFyKWkpKSB7CisgICAgICAgIHJlc3VsdCB8PSAoMTw8aSk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgIH0KKyAgCisgIC8qKgorICAgKiBSZXR1cm4gdGhlIHJlcHJlc2VudGF0aW9uIG9mIGFuIGludmVyc2lvbiBsaXN0IGJhc2VkIFVuaWNvZGVTZXQKKyAgICogYXMgYSBwYWlycyBsaXN0LiAgUmFuZ2VzIGFyZSBsaXN0ZWQgaW4gYXNjZW5kaW5nIFVuaWNvZGUgb3JkZXIuCisgICAqIEZvciBleGFtcGxlLCB0aGUgc2V0IFthLXpBLU0zXSBpcyByZXByZXNlbnRlZCBhcyAiMzNBTWF6Ii4KKyAgICovCisgIHN0YXRpYyBTdHJpbmcgZ2V0UGFpcnMoVW5pY29kZVNldCBzZXQpIHsKKyAgICBTdHJpbmdCdWZmZXIgcGFpcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgZm9yIChpbnQgaT0wOyBpPHNldC5nZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgaW50IHN0YXJ0ID0gc2V0LmdldFJhbmdlU3RhcnQoaSk7CisgICAgICBpbnQgZW5kID0gc2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgaWYgKGVuZCA+IDB4RkZGRikgeworICAgICAgICBlbmQgPSAweEZGRkY7CisgICAgICAgIGkgPSBzZXQuZ2V0UmFuZ2VDb3VudCgpOyAvLyBTaG91bGQgYmUgdW5uZWNlc3NhcnkKKyAgICAgIH0KKyAgICAgIHBhaXJzLmFwcGVuZCgoY2hhcilzdGFydCkuYXBwZW5kKChjaGFyKWVuZCk7CisgICAgfQorICAgIHJldHVybiBwYWlycy50b1N0cmluZygpOworICB9CisgIAorICAvKioKKyAgICogVGVzdCBmdW5jdGlvbi4gTWFrZSBzdXJlIHRoYXQgdGhlIHNldHMgaGF2ZSB0aGUgcmlnaHQgcmVsYXRpb24KKyAgICovCisgIAorICB2b2lkIGV4cGVjdFJlbGF0aW9uKE9iamVjdCByZWxhdGlvbk9iaiwgT2JqZWN0IHNldDFPYmosIE9iamVjdCBzZXQyT2JqLCBTdHJpbmcgbWVzc2FnZSkgeworICAgIGludCByZWxhdGlvbiA9ICgoSW50ZWdlcikgcmVsYXRpb25PYmopLmludFZhbHVlKCk7CisgICAgVW5pY29kZVNldCBzZXQxID0gKFVuaWNvZGVTZXQpIHNldDFPYmo7CisgICAgVW5pY29kZVNldCBzZXQyID0gKFVuaWNvZGVTZXQpIHNldDJPYmo7CisgICAgCisgICAgLy8gYnktdGhlLWJ5LCBjaGVjayB0aGUgaXRlcmF0b3IKKyAgICBjaGVja1JvdW5kVHJpcChzZXQxKTsKKyAgICBjaGVja1JvdW5kVHJpcChzZXQyKTsKKyAgICAKKyAgICBib29sZWFuIGNvbnRhaW5zID0gc2V0MS5jb250YWluc0FsbChzZXQyKTsKKyAgICBib29sZWFuIGlzQ29udGFpbmVkID0gc2V0Mi5jb250YWluc0FsbChzZXQxKTsKKyAgICBib29sZWFuIGRpc2pvaW50ID0gc2V0MS5jb250YWluc05vbmUoc2V0Mik7CisgICAgYm9vbGVhbiBlcXVhbHMgPSBzZXQxLmVxdWFscyhzZXQyKTsKKyAgICAKKyAgICBVbmljb2RlU2V0IGludGVyc2VjdGlvbiA9IG5ldyBVbmljb2RlU2V0KHNldDEpLnJldGFpbkFsbChzZXQyKTsKKyAgICBVbmljb2RlU2V0IG1pbnVzMTIgPSBuZXcgVW5pY29kZVNldChzZXQxKS5yZW1vdmVBbGwoc2V0Mik7CisgICAgVW5pY29kZVNldCBtaW51czIxID0gbmV3IFVuaWNvZGVTZXQoc2V0MikucmVtb3ZlQWxsKHNldDEpOworICAgIAorICAgIC8vIHRlc3QgYmFzaWMgcHJvcGVydGllcworICAgIAorICAgIGlmIChjb250YWlucyAhPSAoaW50ZXJzZWN0aW9uLnNpemUoKSA9PSBzZXQyLnNpemUoKSkpIHsKKyAgICAgIGVycmxuKCJGQUlMIGNvbnRhaW5zMSIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorICAgIAorICAgIGlmIChjb250YWlucyAhPSAoaW50ZXJzZWN0aW9uLmVxdWFscyhzZXQyKSkpIHsKKyAgICAgIGVycmxuKCJGQUlMIGNvbnRhaW5zMiIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorICAgIAorICAgIGlmIChpc0NvbnRhaW5lZCAhPSAoaW50ZXJzZWN0aW9uLnNpemUoKSA9PSBzZXQxLnNpemUoKSkpIHsKKyAgICAgIGVycmxuKCJGQUlMIGlzQ29udGFpbmVkMSIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorICAgIAorICAgIGlmIChpc0NvbnRhaW5lZCAhPSAoaW50ZXJzZWN0aW9uLmVxdWFscyhzZXQxKSkpIHsKKyAgICAgIGVycmxuKCJGQUlMIGlzQ29udGFpbmVkMiIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorICAgIAorICAgIGlmICgoY29udGFpbnMgJiYgaXNDb250YWluZWQpICE9IGVxdWFscykgeworICAgICAgZXJybG4oIkZBSUwgZXF1YWxzIiArIHNldDEudG9QYXR0ZXJuKHRydWUpICsgIiwgIiArIHNldDIudG9QYXR0ZXJuKHRydWUpKTsKKyAgICB9CisgICAgCisgICAgaWYgKGRpc2pvaW50ICE9IChpbnRlcnNlY3Rpb24uc2l6ZSgpID09IDApKSB7CisgICAgICBlcnJsbigiRkFJTCBkaXNqb2ludCIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorICAgIAorICAgIC8vIE5vdyBzZWUgaWYgdGhlIGV4cGVjdGVkIHJlbGF0aW9uIGlzIHRydWUKKyAgICBpbnQgc3RhdHVzID0gKG1pbnVzMTIuc2l6ZSgpICE9IDAgPyA0IDogMCkKKyAgICB8IChpbnRlcnNlY3Rpb24uc2l6ZSgpICE9IDAgPyAyIDogMCkKKyAgICB8IChtaW51czIxLnNpemUoKSAhPSAwID8gMSA6IDApOworICAgIAorICAgIGlmIChzdGF0dXMgIT0gcmVsYXRpb24pIHsKKyAgICAgIGVycmxuKCJGQUlMIHJlbGF0aW9uIGluY29ycmVjdCIgKyBtZXNzYWdlCisgICAgICAgICAgKyAiOyBkZXNpcmVkID0gIiArIFJFTEFUSU9OX05BTUVbcmVsYXRpb25dCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiOyBmb3VuZCA9ICIgKyBSRUxBVElPTl9OQU1FW3N0YXR1c10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiOyBzZXQxID0gIiArIHNldDEudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIjsgc2V0MiA9ICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKQorICAgICAgKTsKKyAgICB9CisgIH0KKyAgCisgIC8qKgorICAgKiBCYXNpYyBjb25zaXN0ZW5jeSBjaGVjayBmb3IgYSBmZXcgaXRlbXMuCisgICAqIFRoYXQgdGhlIGl0ZXJhdG9yIHdvcmtzLCBhbmQgdGhhdCB3ZSBjYW4gY3JlYXRlIGEgcGF0dGVybiBhbmQKKyAgICogZ2V0IHRoZSBzYW1lIHRoaW5nIGJhY2sKKyAgICovCisgIAorICB2b2lkIGNoZWNrUm91bmRUcmlwKFVuaWNvZGVTZXQgcykgeworICAgIFN0cmluZyBwYXQgPSBzLnRvUGF0dGVybihmYWxzZSk7CisgICAgVW5pY29kZVNldCB0ID0gY29weVdpdGhJdGVyYXRvcihzLCBmYWxzZSk7CisgICAgY2hlY2tFcXVhbChzLCB0LCAiaXRlcmF0b3Igcm91bmR0cmlwIik7CisgICAgCisgICAgdCA9IGNvcHlXaXRoSXRlcmF0b3IocywgdHJ1ZSk7IC8vIHRyeSByYW5nZQorICAgIGNoZWNrRXF1YWwocywgdCwgIml0ZXJhdG9yIHJvdW5kdHJpcCIpOworICAgIAorICAgIHQgPSBuZXcgVW5pY29kZVNldChwYXQpOworICAgIGNoZWNrRXF1YWwocywgdCwgInRvUGF0dGVybihmYWxzZSkiKTsKKyAgICAKKyAgICBwYXQgPSBzLnRvUGF0dGVybih0cnVlKTsKKyAgICB0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICBjaGVja0VxdWFsKHMsIHQsICJ0b1BhdHRlcm4odHJ1ZSkiKTsKKyAgfQorICAKKyAgVW5pY29kZVNldCBjb3B5V2l0aEl0ZXJhdG9yKFVuaWNvZGVTZXQgcywgYm9vbGVhbiB3aXRoUmFuZ2UpIHsKKyAgICBVbmljb2RlU2V0IHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iocyk7CisgICAgaWYgKHdpdGhSYW5nZSkgeworICAgICAgd2hpbGUgKGl0Lm5leHRSYW5nZSgpKSB7CisgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgIHQuYWRkKGl0LnN0cmluZyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdC5hZGQoaXQuY29kZXBvaW50LCBpdC5jb2RlcG9pbnRFbmQpOworICAgICAgICB9CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGl0LmNvZGVwb2ludCA9PSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgdC5hZGQoaXQuc3RyaW5nKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0LmFkZChpdC5jb2RlcG9pbnQpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIHJldHVybiB0OworICB9CisgIAorICBib29sZWFuIGNoZWNrRXF1YWwoVW5pY29kZVNldCBzLCBVbmljb2RlU2V0IHQsIFN0cmluZyBtZXNzYWdlKSB7CisgICAgaWYgKCFzLmVxdWFscyh0KSkgeworICAgICAgZXJybG4oIkZBSUwgIiArIG1lc3NhZ2UKKyAgICAgICAgICArICI7IHNvdXJjZSA9ICIgKyBzLnRvUGF0dGVybih0cnVlKQorICAgICAgICAgICsgIjsgcmVzdWx0ID0gIiArIHQudG9QYXR0ZXJuKHRydWUpCisgICAgICApOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICAKKyAgdm9pZCBleHBlY3RFcXVhbChTdHJpbmcgbmFtZSwgU3RyaW5nIHBhdDEsIFN0cmluZyBwYXQyKSB7CisgICAgVW5pY29kZVNldCBzZXQxLCBzZXQyOworICAgIHRyeSB7CisgICAgICBzZXQxID0gbmV3IFVuaWNvZGVTZXQocGF0MSk7CisgICAgICBzZXQyID0gbmV3IFVuaWNvZGVTZXQocGF0Mik7CisgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgIGVycmxuKCJGQUlMOiBDb3VsZG4ndCBjcmVhdGUgVW5pY29kZVNldCBmcm9tIHBhdHRlcm4gZm9yIFwiIiArIG5hbWUgKyAiXCI6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGlmKCFzZXQxLmVxdWFscyhzZXQyKSkgeworICAgICAgZXJybG4oIkZBSUw6IFNldHMgYnVpbHQgZnJvbSBwYXR0ZXJucyBkaWZmZXIgZm9yIFwiIiArIG5hbWUgKyAiXCIiKTsKKyAgICB9CisgIH0KKyAgCisgIC8qKgorICAgKiBFeHBlY3QgdGhlIGdpdmVuIHNldCB0byBjb250YWluIHRoZSBjaGFyYWN0ZXJzIGluIGNoYXJzSW4gYW5kCisgICAqIHRvIG5vdCBjb250YWluIHRob3NlIGluIGNoYXJzT3V0LgorICAgKi8KKyAgdm9pZCBleHBlY3RDb250YWlubWVudChTdHJpbmcgcGF0LCBTdHJpbmcgY2hhcnNJbiwgU3RyaW5nIGNoYXJzT3V0KSB7CisgICAgVW5pY29kZVNldCBzZXQ7CisgICAgdHJ5IHsKKyAgICAgIHNldCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgIGVycmxuKCJGQUlMOiBDb3VsZG4ndCBjcmVhdGUgVW5pY29kZVNldCBmcm9tIHBhdHRlcm4gXCIiICsKKyAgICAgICAgICBwYXQgKyAiXCI6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGV4cGVjdENvbnRhaW5tZW50KHNldCwgY2hhcnNJbiwgY2hhcnNPdXQpOworICB9CisgIAorICAvKioKKyAgICogRXhwZWN0IHRoZSBnaXZlbiBzZXQgdG8gY29udGFpbiB0aGUgY2hhcmFjdGVycyBpbiBjaGFyc0luIGFuZAorICAgKiB0byBub3QgY29udGFpbiB0aG9zZSBpbiBjaGFyc091dC4KKyAgICovCisgIHZvaWQgZXhwZWN0Q29udGFpbm1lbnQoVW5pY29kZVNldCBzZXQsIFN0cmluZyBjaGFyc0luLCBTdHJpbmcgY2hhcnNPdXQpIHsKKyAgICBTdHJpbmdCdWZmZXIgYmFkID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIGlmIChjaGFyc0luICE9IG51bGwpIHsKKyAgICAgIGNoYXJzSW4gPSBVdGlsaXR5LnVuZXNjYXBlKGNoYXJzSW4pOworICAgICAgZm9yIChpbnQgaT0wOyBpPGNoYXJzSW4ubGVuZ3RoKCk7ICkgeworICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChjaGFyc0luLGkpOworICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgaWYgKCFzZXQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICBVVEYxNi5hcHBlbmQoYmFkLGMpOworICAgICAgICB9CisgICAgICB9CisgICAgICBpZiAoYmFkLmxlbmd0aCgpID4gMCkgeworICAgICAgICBlcnJsbihVdGlsaXR5LmVzY2FwZSgiRkFJTDogc2V0ICIgKyBzZXQgKyAiIGRvZXMgbm90IGNvbnRhaW4gIiArIGJhZCArCisgICAgICAgICAgICAiLCBleHBlY3RlZCBjb250YWlubWVudCBvZiAiICsgY2hhcnNJbikpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nbG4oVXRpbGl0eS5lc2NhcGUoIk9rOiBzZXQgIiArIHNldCArICIgY29udGFpbnMgIiArIGNoYXJzSW4pKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKGNoYXJzT3V0ICE9IG51bGwpIHsKKyAgICAgIGNoYXJzT3V0ID0gVXRpbGl0eS51bmVzY2FwZShjaGFyc091dCk7CisgICAgICBiYWQuc2V0TGVuZ3RoKDApOworICAgICAgZm9yIChpbnQgaT0wOyBpPGNoYXJzT3V0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQoY2hhcnNPdXQsaSk7CisgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgVVRGMTYuYXBwZW5kKGJhZCwgYyk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGlmIChiYWQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKCJGQUlMOiBzZXQgIiArIHNldCArICIgY29udGFpbnMgIiArIGJhZCArCisgICAgICAgICAgICAiLCBleHBlY3RlZCBub24tY29udGFpbm1lbnQgb2YgIiArIGNoYXJzT3V0KSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBsb2dsbihVdGlsaXR5LmVzY2FwZSgiT2s6IHNldCAiICsgc2V0ICsgIiBkb2VzIG5vdCBjb250YWluICIgKyBjaGFyc091dCkpOworICAgICAgfQorICAgIH0KKyAgfQorICAKKyAgdm9pZCBleHBlY3RQYXR0ZXJuKFVuaWNvZGVTZXQgc2V0LAorICAgICAgU3RyaW5nIHBhdHRlcm4sCisgICAgICBTdHJpbmcgZXhwZWN0ZWRQYWlycykgeworICAgIHNldC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgaWYgKCFnZXRQYWlycyhzZXQpLmVxdWFscyhleHBlY3RlZFBhaXJzKSkgeworICAgICAgZXJybG4oIkZBSUw6IGFwcGx5UGF0dGVybihcIiIgKyBwYXR0ZXJuICsKKyAgICAgICAgICAiXCIpID0+IHBhaXJzIFwiIiArCisgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZ2V0UGFpcnMoc2V0KSkgKyAiXCIsIGV4cGVjdGVkIFwiIiArCisgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZXhwZWN0ZWRQYWlycykgKyAiXCIiKTsKKyAgICB9IGVsc2UgeworICAgICAgbG9nbG4oIk9rOiAgIGFwcGx5UGF0dGVybihcIiIgKyBwYXR0ZXJuICsKKyAgICAgICAgICAiXCIpID0+IHBhaXJzIFwiIiArCisgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZ2V0UGFpcnMoc2V0KSkgKyAiXCIiKTsKKyAgICB9CisgIH0KKyAgCisgIHZvaWQgZXhwZWN0VG9QYXR0ZXJuKFVuaWNvZGVTZXQgc2V0LAorICAgICAgU3RyaW5nIGV4cFBhdCwKKyAgICAgIFN0cmluZ1tdIGV4cFN0cmluZ3MpIHsKKyAgICBTdHJpbmcgcGF0ID0gc2V0LnRvUGF0dGVybih0cnVlKTsKKyAgICBpZiAocGF0LmVxdWFscyhleHBQYXQpKSB7CisgICAgICBsb2dsbigiT2s6ICAgdG9QYXR0ZXJuKCkgPT4gXCIiICsgcGF0ICsgIlwiIik7CisgICAgfSBlbHNlIHsKKyAgICAgIGVycmxuKCJGQUlMOiB0b1BhdHRlcm4oKSA9PiBcIiIgKyBwYXQgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cFBhdCArICJcIiIpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZXhwU3RyaW5ncyA9PSBudWxsKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGJvb2xlYW4gaW4gPSB0cnVlOworICAgIGZvciAoaW50IGk9MDsgaTxleHBTdHJpbmdzLmxlbmd0aDsgKytpKSB7CisgICAgICBpZiAoZXhwU3RyaW5nc1tpXSA9PSBOT1QpIHsgLy8gc2ljOyBwb2ludGVyIGNvbXBhcmlzb24KKyAgICAgICAgaW4gPSBmYWxzZTsKKyAgICAgICAgY29udGludWU7CisgICAgICB9CisgICAgICBib29sZWFuIGNvbnRhaW5lZCA9IHNldC5jb250YWlucyhleHBTdHJpbmdzW2ldKTsKKyAgICAgIGlmIChjb250YWluZWQgPT0gaW4pIHsKKyAgICAgICAgbG9nbG4oIk9rOiAiICsgZXhwUGF0ICsgCisgICAgICAgICAgICAoY29udGFpbmVkID8gIiBjb250YWlucyB7IiA6ICIgZG9lcyBub3QgY29udGFpbiB7IikgKworICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZXhwU3RyaW5nc1tpXSkgKyAifSIpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBleHBQYXQgKyAKKyAgICAgICAgICAgIChjb250YWluZWQgPyAiIGNvbnRhaW5zIHsiIDogIiBkb2VzIG5vdCBjb250YWluIHsiKSArCisgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShleHBTdHJpbmdzW2ldKSArICJ9Iik7CisgICAgICB9CisgICAgfQorICB9CisgIAorICB2b2lkIGV4cGVjdFBhaXJzKFVuaWNvZGVTZXQgc2V0LCBTdHJpbmcgZXhwZWN0ZWRQYWlycykgeworICAgIGlmICghZ2V0UGFpcnMoc2V0KS5lcXVhbHMoZXhwZWN0ZWRQYWlycykpIHsKKyAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBwYWlyIGxpc3QgXCIiICsKKyAgICAgICAgICBVdGlsaXR5LmVzY2FwZShleHBlY3RlZFBhaXJzKSArICJcIiwgZ290IFwiIiArCisgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZ2V0UGFpcnMoc2V0KSkgKyAiXCIiKTsKKyAgICB9CisgIH0KKyAgc3RhdGljIGZpbmFsIFN0cmluZyBDaGFyc1RvVW5pY29kZVN0cmluZyhTdHJpbmcgcykgeworICAgIHJldHVybiBVdGlsaXR5LnVuZXNjYXBlKHMpOworICB9CisgIAorICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Xcml0ZUNoYXJ0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1dyaXRlQ2hhcnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTI0MWY4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Xcml0ZUNoYXJ0cy5qYXZhCkBAIC0wLDAgKzEsMzc4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIFdyaXRlQ2hhcnRzIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIHByaW50U2V0KCJbW1x1MDAwMC1cdTAwN0UgXHUzMEExLVx1MzBGQyBcdUZGNjEtXHVGRjlGXHUzMDAxXHUzMDAyXVs6S2F0YWthbmE6XVs6TWFyazpdXSIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0ZXN0U2V0ID0gIiI7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSBhcmdzID0gZ2V0QWxsU2NyaXB0cygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAvLyBFbnVtZXJhdGlvbiBlbnVtID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5zdGFydHNXaXRoKCJbIikpIHsKKyAgICAgICAgICAgICAgICB0ZXN0U2V0ID0gYXJnc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnQodGVzdFNldCwgYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFNldCA9ICIiOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludFNldChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJpbnRvdXQgZm9yICciICsgc291cmNlICsgIiciKTsKKyAgICAgICAgaW50IGNvdW50ID0gcy5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcy5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHMuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oSW50ZWdlci50b1N0cmluZyhzdGFydCwxNikgKyAiLi4iICsgSW50ZWdlci50b1N0cmluZyhlbmQsMTYpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEFsbFNjcmlwdHMoKSB7CisgICAgICAgIFNldCBzZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBpbnQgc2NyaXB0c1tdOworICAgICAgICBFbnVtZXJhdGlvbiBzb3VyY2VzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZykgc291cmNlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiW1NraXBwaW5nICIgKyBzb3VyY2UgKyAiXSIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHNvdXJjZVNjcmlwdCA9IHNjcmlwdHNbMF07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvdXJjZTogIiArIHNvdXJjZSArICI7XHRTY3JpcHRzOiAiICsgc2hvd1NjcmlwdHMoc2NyaXB0cykpOworICAgICAgICAgICAgRW51bWVyYXRpb24gdGFyZ2V0cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgIHdoaWxlKHRhcmdldHMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0cyA9PSBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBwcmlvcml0eShzY3JpcHRzWzBdKSA8IHByaW9yaXR5KHNvdXJjZVNjcmlwdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCBkb2luZyBib3RoIGRpcmVjdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJbU2tpcHBpbmcgJyIgKyBzb3VyY2UgKyAiLSIgKyB0YXJnZXQgKyAiJ10iKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHRUYXJnZXQ6ICIgKyB0YXJnZXQgKyAiO1x0U2NyaXB0czogIiArIHNob3dTY3JpcHRzKHNjcmlwdHMpKTsKKyAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiB2YXJpYW50cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB3aGlsZSh2YXJpYW50cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHNvdXJjZSArICItIiArIHRhcmdldDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWQgKz0gIi8iICsgdmFyaWFudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU0tJUFBJTkcgVkFSSUFOVCwgU0lOQ0UgSVQgQ1VSUkVOVExZIEJSRUFLUyFcdCIgKyBpZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdFx0XHRcdEFkZGluZzogJyIgKyBpZCArICInIik7CisgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoaWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSByZXN1bHRzID0gbmV3IFN0cmluZ1tzZXQuc2l6ZSgpXTsKKyAgICAgICAgc2V0LnRvQXJyYXkocmVzdWx0cyk7CisgICAgICAgIHJldHVybiByZXN1bHRzOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGludCBwcmlvcml0eShpbnQgc2NyaXB0KSB7CisgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5MQVRJTikgcmV0dXJuIC0yOworICAgICAgICByZXR1cm4gc2NyaXB0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBzaG93U2NyaXB0cyhpbnRbXSBzY3JpcHRzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdHMuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoVVNjcmlwdC5nZXROYW1lKHNjcmlwdHNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0cy50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnQoU3RyaW5nIHRlc3RTZXQsIFN0cmluZyByYXdJZCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcm9jZXNzaW5nICIgKyByYXdJZCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShyYXdJZCk7CisgICAgICAgIFN0cmluZyBpZCA9IHQuZ2V0SUQoKTsKKyAgICAgICAgCisgICAgICAgIC8vIGNsZWFuIHVwIElEcy4gT3VnaHQgdG8gYmUgQVBJIGZvciBnZXR0aW5nIHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50CisgICAgICAgIGludCBtaW51c1BvcyA9IGlkLmluZGV4T2YoJy0nKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9IGlkLnN1YnN0cmluZygwLG1pbnVzUG9zKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9IGlkLnN1YnN0cmluZyhtaW51c1BvcysxKTsKKyAgICAgICAgaW50IHNsYXNoUG9zID0gdGFyZ2V0LmluZGV4T2YoJy8nKTsKKyAgICAgICAgaWYgKHNsYXNoUG9zID49IDApIHRhcmdldCA9IHRhcmdldC5zdWJzdHJpbmcoMCxzbGFzaFBvcyk7CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayB0aGF0IHRoZSBzb3VyY2UgaXMgYSBzY3JpcHQKKyAgICAgICAgaWYgKHRlc3RTZXQuZXF1YWxzKCIiKSkgeworICAgICAgICAgICAgaW50W10gc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRkFJTEVEOiAiIAorICAgICAgICAgICAgICAgICAgICArIFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKGlkKQorICAgICAgICAgICAgICAgICAgICArICIgZG9lcyBub3QgaGF2ZSBhIHNjcmlwdCBhcyB0aGUgc291cmNlIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0U2V0ID0gIls6IiArIHNvdXJjZSArICI6XSI7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHNJZ25vcmVDYXNlKCJrYXRha2FuYSIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RTZXQgPSAiWyIgKyB0ZXN0U2V0ICsgIlx1MzBGQ10iOworICAgICAgICAgICAgICAgICAgICBwcmludFNldCh0ZXN0U2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VTZXQgPSBuZXcgVW5pY29kZVNldCh0ZXN0U2V0KTsKKworICAgICAgICAvLyBjaGVjayB0aGF0IHRoZSB0YXJnZXQgaXMgYSBzY3JpcHQKKyAgICAgICAgaW50W10gc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZSh0YXJnZXQpOworICAgICAgICBpZiAoc2NyaXB0cyA9PSBudWxsKSB7CisgICAgICAgICAgICB0YXJnZXQgPSAiWzpMYXRpbjpdIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRhcmdldCA9ICJbOiIgKyB0YXJnZXQgKyAiOl0iOworICAgICAgICB9CisgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0U2V0ID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0KTsgICAgICAgIAorICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAKKyAgICAgICAgLy9UcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleCIpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdoIHNjcmlwdAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zbGl0ZXJhdGluZyAiICsgc291cmNlU2V0LnRvUGF0dGVybih0cnVlKSAKKyAgICAgICAgICAgICsgIiB3aXRoICIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IGxlZnRPdmVyU2V0ID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0U2V0KTsKKyAgICAgICAgVW5pY29kZVNldCBwcml2YXRlVXNlID0gbmV3IFVuaWNvZGVTZXQoIls6cHJpdmF0ZSB1c2U6XSIpOworICAgICAgICAgICAgCisgICAgICAgIE1hcCBtYXAgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCB0YXJnZXRTZXRQbHVzQW55d2F5cyA9IG5ldyBVbmljb2RlU2V0KHRhcmdldFNldCk7CisgICAgICAgIHRhcmdldFNldFBsdXNBbnl3YXlzLmFkZEFsbChva0FueXdheSk7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IHNvdXJjZVNldFBsdXNBbnl3YXlzID0gbmV3IFVuaWNvZGVTZXQoc291cmNlU2V0KTsKKyAgICAgICAgc291cmNlU2V0UGx1c0FueXdheXMuYWRkQWxsKG9rQW55d2F5KTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB1c2kgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNvdXJjZVNldCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgaW50IGogPSB1c2kuY29kZXBvaW50OworICAgICAgICAgICAgLyoKKyAgICAgICAgaW50IGNvdW50ID0gc291cmNlU2V0LmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbnQgZW5kID0gc291cmNlU2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IHNvdXJjZVNldC5nZXRSYW5nZVN0YXJ0KGkpOyBqIDw9IGVuZDsgKytqKSB7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgLy8gU3RyaW5nIGZsYWcgPSAiIjsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MgPSBVVEYxNi52YWx1ZU9mKGopOworICAgICAgICAgICAgICAgIFN0cmluZyB0cyA9IHQudHJhbnNsaXRlcmF0ZShzcyk7CisgICAgICAgICAgICAgICAgY2hhciBncm91cCA9IDA7CisgICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRTZXRQbHVzQW55d2F5cy5jb250YWluc0FsbCh0cykpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHRzKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGxlZnRPdmVyU2V0LnJlbW92ZShVVEYxNi5jaGFyQXQodHMsMCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcnQgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUodHMpOworICAgICAgICAgICAgICAgIGlmICghc291cmNlU2V0UGx1c0FueXdheXMuY29udGFpbnNBbGwocnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3MuZXF1YWxzKHJ0KSkgeworICAgICAgICAgICAgICAgICAgICBncm91cCB8PSA0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIXByaXZhdGVVc2UuY29udGFpbnNOb25lKHRzKSB8fCAhcHJpdmF0ZVVzZS5jb250YWluc05vbmUocnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDE2OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbWFwLnB1dChncm91cCArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTm9ybWFsaXplci5ub3JtYWxpemUoc3MsIE5vcm1hbGl6ZXIuTkZLRCkpCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTAwMDAiICsgc3MsIAorICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPSdzJz4iICsgc3MgKyAiPGJyPjx0dD4iICsgaGV4KHNzKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiPC90dD48L3RkPjx0ZCBjbGFzcz0ndCc+IiArIHRzICsgIjxicj48dHQ+IiArIGhleCh0cykKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjwvdHQ+PC90ZD48dGQgY2xhc3M9J3InPiIgKyBydCArICI8YnI+PHR0PiIgKyBoZXgocnQpICsgIjwvdHQ+PC90ZD4iICk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgRHVhbHMKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIGludCBtYXhEdWFsID0gMjAwOworICAgICAgICAgICAgICBkdWFsOgorICAgICAgICAgICAgICAgIGZvciAoaW50IGkyID0gMDsgaTIgPCBjb3VudDsgKytpMikgeworICAgICAgICAgICAgICAgICAgICBpbnQgZW5kMiA9IHNvdXJjZVNldC5nZXRSYW5nZUVuZChpMik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGoyID0gc291cmNlU2V0LmdldFJhbmdlU3RhcnQoaTIpOyBqMiA8PSBlbmQ7ICsrajIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzczIgPSBVVEYxNi52YWx1ZU9mKGoyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0czIgPSB0LnRyYW5zbGl0ZXJhdGUoc3MyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBydDIgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUodHMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNzMTIgPSBzcyArIHNzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0czEyID0gdC50cmFuc2xpdGVyYXRlKHNzICsgc3MxMik7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcnQxMiA9IGludmVyc2UudHJhbnNsaXRlcmF0ZSh0czEyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0czEyLmVxdWFscyh0cyArIHRzMikgJiYgcnQxMi5lcXVhbHMocnQgKyBydDIpKSBjb250aW51ZTsgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLW1heER1YWwgPCAwKSBicmVhayBkdWFsOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRpb24gb2Ygd2hvbGUgZGlmZmVycyBmcm9tIHRoYXQgb2YgcGFydHMKKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gMHgxMDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXAucHV0KGdyb3VwICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShOb3JtYWxpemVyLm5vcm1hbGl6ZShzczEyLCBOb3JtYWxpemVyLkRFQ09NUF9DT01QQVQsIDApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdTAwMDAiICsgc3MxMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx0ZCBjbGFzcz0ncyc+IiArIHNzMTIgKyAiPGJyPjx0dD4iICsgaGV4KHNzMTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIjwvdHQ+PC90ZD48dGQgY2xhc3M9J3QnPiIgKyB0czEyICsgIjxicj48dHQ+IiArIGhleCh0czEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICI8L3R0PjwvdGQ+PHRkIGNsYXNzPSdyJz4iICsgcnQxMiArICI8YnI+PHR0PiIgKyBoZXgocnQxMikgKyAiPC90dD48L3RkPiIgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBsZWZ0T3ZlclNldC5yZW1vdmUoMHgwMTAwLDB4MDJGRik7IC8vIHJlbW92ZSBleHRlbmRlZCAmIElQQQorICAgICAgICAKKyAgICAgICAgLyppbnQgY291bnQgPSBsZWZ0T3ZlclNldC5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IGVuZCA9IGxlZnRPdmVyU2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGxlZnRPdmVyU2V0LmdldFJhbmdlU3RhcnQoaSk7IGogPD0gZW5kOyArK2opIHsKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAKKyAgICAgICAgdXNpLnJlc2V0KGxlZnRPdmVyU2V0KTsKKyAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGludCBqID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyB0cyA9IFVURjE2LnZhbHVlT2Yoaik7CisgICAgICAgICAgICAgICAgLy8gU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRzLCBOb3JtYWxpemVyLkRFQ09NUF9DT01QQVQsIDApOworICAgICAgICAgICAgICAgIC8vIGlmICghZGVjb21wLmVxdWFscyh0cykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBydCA9IGludmVyc2UudHJhbnNsaXRlcmF0ZSh0cyk7CisgICAgICAgICAgICAgICAgLy8gU3RyaW5nIGZsYWcgPSAiIjsKKyAgICAgICAgICAgICAgICBjaGFyIGdyb3VwID0gMHg4MDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCFzb3VyY2VTZXRQbHVzQW55d2F5cy5jb250YWluc0FsbChydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gODsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFwcml2YXRlVXNlLmNvbnRhaW5zTm9uZShydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gMTY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtYXAucHV0KGdyb3VwICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShOb3JtYWxpemVyLm5vcm1hbGl6ZSh0cywgTm9ybWFsaXplci5ORktEKSkgKyB0cywgCisgICAgICAgICAgICAgICAgICAgICI8dGQgY2xhc3M9J3MnPi08L3RkPjx0ZCBjbGFzcz0ndCc+IiArIHRzICsgIjxicj48dHQ+IiArIGhleCh0cykKKyAgICAgICAgICAgICAgICAgICAgKyAiPC90dD48L3RkPjx0ZCBjbGFzcz0ncic+IgorICAgICAgICAgICAgICAgICAgICArIHJ0ICsgIjxicj48dHQ+IiArIGhleChydCkgKyAiPC90dD48L3RkPiIpOworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKworICAgICAgICAvLyBtYWtlIGZpbGUgbmFtZSBhbmQgb3BlbgorICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSgidHJhbnNsaXRlcmF0aW9uL2NoYXJ0XyIgKyBpZC5yZXBsYWNlKCcvJywgJ18nKSArICIuaHRtbCIpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBmLmdldENhbm9uaWNhbEZpbGUoKS50b1N0cmluZygpOworICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURi04IikpOworICAgICAgICAvL291dC5wcmludCgnXHVGRUZGJyk7IC8vIEJPTQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBmaWxlbmFtZSk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0LnByaW50bG4oIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU5cIj4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8SFRNTD48SEVBRD4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8TUVUQSBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCIgaHR0cC1lcXVpdj1Db250ZW50LVR5cGU+PC9IRUFEPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0naHR0cDovL3d3dy51bmljb2RlLm9yZy9jaGFydHMvdWNhL2NoYXJ0cy5jc3MnIHR5cGU9J3RleHQvY3NzJz4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxCT0RZPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMT5UcmFuc2xpdGVyYXRpb24gU2FtcGxlcyBmb3IgJyIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkgKyAiJzwvaDE+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHA+VGhpcyBmaWxlIGlsbHVzdHJhdGVzIHRoZSB0cmFuc2xpdGVyYXRpb25zIG9mICIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkgKyAiLiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIlRoZSBzYW1wbGVzIGFyZSBtZWNoYW5pY2FsbHkgZ2VuZXJhdGVkLCBhbmQgb25seSBpbmNsdWRlIHNpbmdsZSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiZnJvbSB0aGUgc291cmNlIHNldC4gVGh1cyBpdCB3aWxsIDxpPm5vdDwvaT4gY29udGFpbiBleGFtcGxlcyB3aGVyZSB0aGUgdHJhbnNsaXRlcmF0aW9uIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiZGVwZW5kcyBvbiB0aGUgY29udGV4dCBhcm91bmQgdGhlIGNoYXJhY3Rlci4gRm9yIGEgbW9yZSBkZXRhaWxlZCAtLSBhbmQgaW50ZXJhY3RpdmUgLS0gZXhhbXBsZSwgc2VlIHRoZSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxhIGhyZWY9J2h0dHA6Ly9kZW1vLmljdS1wcm9qZWN0Lm9yZy9pY3UtYmluL3RyYW5zbGl0Jz5UcmFuc2xpdGVyYXRpb24gRGVtbzwvYT48L3A+PGhyPiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzZXQgdXAgdGhlIGhlYWRlcnMKKyAgICAgICAgICAgIGludCBjb2x1bW5Db3VudCA9IDM7CisgICAgICAgICAgICBTdHJpbmcgaGVhZGVyQmFzZSA9ICI8dGg+U291cmNlPC90aD48dGg+VGFyZ2V0PC90aD48dGg+UmV0dXJuPC90aD4iOworICAgICAgICAgICAgU3RyaW5nIGhlYWRlcnMgPSBoZWFkZXJCYXNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGNvbHVtbkNvdW50IC0gMTsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGlmIChpICE9IGNvbHVtbkNvdW50IC0gMSkgaGVhZGVycyArPSAiPHRoPiZuYnNwOzwvdGg+IjsKKyAgICAgICAgICAgICAgICBoZWFkZXJzICs9IGhlYWRlckJhc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB0YWJsZUhlYWRlciA9ICI8cD48dGFibGUgYm9yZGVyPScxJz48dHI+IiArIGhlYWRlcnMgKyAiPC90cj4iOworICAgICAgICAgICAgU3RyaW5nIHRhYmxlRm9vdGVyID0gIjwvdGFibGU+PC9wPiI7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgyPlJvdW5kIFRyaXA8L2gyPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4odGFibGVIZWFkZXIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IG1hcC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgY2hhciBsYXN0R3JvdXAgPSAwOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBjb2x1bW4gPSAwOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgY2hhciBncm91cCA9IGtleS5jaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgaWYgKGdyb3VwICE9IGxhc3RHcm91cCB8fCBjb3VudCsrID4gNTApIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEdyb3VwID0gZ3JvdXA7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC90cj4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4odGFibGVGb290ZXIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RyaW5nIHRpdGxlID0gIiI7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgJiAweDEwMCkgIT0gMCkgb3V0LnByaW50bG4oIjxocj48aDI+RHVhbHM8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgoZ3JvdXAgJiAweDgwKSAhPSAwKSBvdXQucHJpbnRsbigiPGhyPjxoMj5Db21wbGV0ZW5lc3M8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIG91dC5wcmludGxuKCI8aHI+PGgyPlJvdW5kIFRyaXA8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgMTYpICE9IDApIG91dC5wcmludGxuKCI8aDM+RXJyb3JzOiBDb250YWlucyBQcml2YXRlIFVzZSBDaGFyYWN0ZXJzPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDgpICE9IDApIG91dC5wcmludGxuKCI8aDM+UG9zc2libGUgRXJyb3JzOiBSZXR1cm4gbm90IGluIFNvdXJjZSBTZXQ8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgNCkgIT0gMCkgb3V0LnByaW50bG4oIjxoMz5PbmUtV2F5IE1hcHBpbmc6IFJldHVybiBub3QgZXF1YWwgdG8gU291cmNlPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDIpICE9IDApIG91dC5wcmludGxuKCI8aDM+RXJyb3JzOiBSZXR1cm4gbm90IGluIFNvdXJjZSBTZXQ8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgMSkgIT0gMCkgb3V0LnByaW50bG4oIjxoMz5FcnJvcnM6IFRhcmdldCBub3QgaW4gVGFyZ2V0IFNldDwvaDM+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKHRhYmxlSGVhZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZykgbWFwLmdldChrZXkpOworICAgICAgICAgICAgICAgIGlmIChjb2x1bW4rKyA9PSAwKSBvdXQucHJpbnQoIjx0cj4iKTsKKyAgICAgICAgICAgICAgICBlbHNlIG91dC5wcmludCgiPHRoPiZuYnNwOzwvdGg+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4odmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChjb2x1bW4gPT0gMykgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC90cj4iKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY29sdW1uICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC90cj4iKTsKKyAgICAgICAgICAgICAgICBjb2x1bW4gPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4odGFibGVGb290ZXIgKyAiPC9CT0RZPjwvSFRNTD4iKTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdHMuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdHMudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBva0FueXdheSA9IG5ldyBVbmljb2RlU2V0KCJbXls6TGV0dGVyOl1dIik7CisgICAgCisgICAgLyoKKyAgICAvLyB0ZXN0cyB3aGV0aGVyIGEgc3RyaW5nIGlzIGluIGEgc2V0LiBBbHNvIGNoZWNrcyBmb3IgQ29tbW9uIGFuZCBJbmhlcml0ZWQKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNJbihTdHJpbmcgcywgVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGkpKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChva0FueXdheS5jb250YWlucyhjcCkpIGNvbnRpbnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAqLworICAgIAorfQorICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZmRmZjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUcmFuc2xpdGVyYXRvciB0ZXN0cy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9BcnJheUNvbXBhcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0FycmF5Q29tcGFyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNDM1MmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9BcnJheUNvbXBhcmF0b3IuamF2YQpAQCAtMCwwICsxLDc2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworCitwdWJsaWMgY2xhc3MgQXJyYXlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb21wYXJhdG9yIENPTVBBUkFCTEUgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICByZXR1cm4gKChDb21wYXJhYmxlKW8xKS5jb21wYXJlVG8obzIpOworICAgICAgICB9IAorICAgIH07CisgICAgcHJpdmF0ZSBDb21wYXJhdG9yW10gY29tcGFyYXRvcnM7CisgICAgcHJpdmF0ZSBpbnRbXSByZW9yZGVyaW5nOworICAgIAorICAgIHB1YmxpYyBBcnJheUNvbXBhcmF0b3IgKENvbXBhcmF0b3JbXSBjb21wYXJhdG9ycywgaW50W10gcmVvcmRlcmluZykgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3JzID0gY29tcGFyYXRvcnM7CisgICAgICAgIHRoaXMucmVvcmRlcmluZyA9IHJlb3JkZXJpbmc7CisgICAgICAgIGlmICh0aGlzLnJlb3JkZXJpbmcgPT0gbnVsbCkgeworICAgICAgICAJdGhpcy5yZW9yZGVyaW5nID0gbmV3IGludFtjb21wYXJhdG9ycy5sZW5ndGhdOworICAgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCB0aGlzLnJlb3JkZXJpbmcubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgCQl0aGlzLnJlb3JkZXJpbmdbaV0gPSBpOworICAgICAgICAJfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAJaWYgKHRoaXMucmVvcmRlcmluZy5sZW5ndGggIT0gdGhpcy5jb21wYXJhdG9ycy5sZW5ndGgpIHsKKyAgICAgICAgCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjb21wYXJhdG9yIGFuZCByZW9yZGVyaW5nIGxlbmd0aHMgbXVzdCBtYXRjaCIpOworICAgICAgICAJfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBBcnJheUNvbXBhcmF0b3IgKENvbXBhcmF0b3JbXSBjb21wYXJhdG9ycykgeworICAgICAgICB0aGlzKGNvbXBhcmF0b3JzLG51bGwpOworICAgIH0KKyAgICAKKyAgICAvKiBMZXhpZ3JhcGhpYyBjb21wYXJlLiBSZXR1cm5zIHRoZSBmaXJzdCBkaWZmZXJlbmNlCisgICAgICogQHJldHVybiB6ZXJvIGlmIGVxdWFsLiBPdGhlcndpc2UgKy8tIChpKzEpIAorICAgICAqIHdoZXJlIGkgaXMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjb21wYXJhdG9yIGZpbmRpbmcgYSBkaWZmZXJlbmNlCisgICAgICogQHNlZSBqYXZhLnV0aWwuQ29tcGFyYXRvciNjb21wYXJlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhMCwgT2JqZWN0IGExKSB7CisgICAgCU9iamVjdFtdIGFyZzAgPSAoT2JqZWN0W10pIGEwOworICAgIAlPYmplY3RbXSBhcmcxID0gKE9iamVjdFtdKSBhMTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb21wYXJhdG9ycy5sZW5ndGg7ICsraikgeworICAgICAgICAJaW50IGkgPSByZW9yZGVyaW5nW2pdOworICAgICAgICAJQ29tcGFyYXRvciBjb21wID0gY29tcGFyYXRvcnNbaV07CisgICAgICAgIAlpZiAoY29tcCA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjb21wLmNvbXBhcmUoYXJnMFtpXSwgYXJnMVtpXSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDApIHJldHVybiBpKzE7CisgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBDYXRjaEV4Y2VwdGlvbkNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHJpdmF0ZSBDb21wYXJhdG9yIG90aGVyOworICAgICAgICAKKyAgICAgICAgcHVibGljIENhdGNoRXhjZXB0aW9uQ29tcGFyYXRvcihDb21wYXJhdG9yIG90aGVyKSB7CisgICAgICAgICAgICB0aGlzLm90aGVyID0gb3RoZXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxKSB0aHJvd3MgUnVudGltZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBvdGhlci5jb21wYXJlKGFyZzAsIGFyZzEpOworICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBcmcwOiAiICsgYXJnMCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBcmcxOiAiICsgYXJnMSk7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CTkYuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JORi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYjJjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CTkYuamF2YQpAQCAtMCwwICsxLDMzMiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKKworcHVibGljIGNsYXNzIEJORiB7CisgICAgcHJpdmF0ZSBNYXAgbWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIFNldCB2YXJpYWJsZXMgPSBuZXcgSGFzaFNldCgpOworICAgIHByaXZhdGUgUGljayBwaWNrID0gbnVsbDsKKyAgICBwcml2YXRlIFBpY2suVGFyZ2V0IHRhcmdldCA9IG51bGw7CisgICAgcHJpdmF0ZSBUb2tlbml6ZXIgdDsKKyAgICBwcml2YXRlIFF1b3RlciBxdW90ZXI7CisgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tOworICAgIAorICAgIHB1YmxpYyBTdHJpbmcgbmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIHRhcmdldC5uZXh0KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoKSB7CisgICAgICAgIHJldHVybiBwaWNrLmdldEludGVybmFsKDAsIG5ldyBIYXNoU2V0KCkpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICsgIndlaWdodCA9IGludGVnZXIgJyUnOyIKKyAgICArICJyYW5nZSA9ICd7JyBpbnRlZ2VyICgnLCcgaW50ZWdlcj8pPyAnfScgd2VpZ2h0KjsiCisgICAgKyAicXVvdGUgPSAnQCc7IgorICAgICsgInN0YXIgPSAnKicgd2VpZ2h0KjsiCisgICAgKyAicGx1cyA9ICcrJyB3ZWlnaHQqOyIKKyAgICArICJtYXliZSA9ICc/JyB3ZWlnaHQ/OyIKKyAgICArICJxdWFudGlmaWVyID0gcmFuZ2UgfCBzdGFyIHwgbWF5YmUgfCBwbHVzOyIKKyAgICArICJjb3JlID0gc3RyaW5nIHwgdW5pY29kZVNldCB8ICcoJyBhbHRlcm5hdGlvbiAnKSc7IgorICAgICsgInNlcXVlbmNlID0gKGNvcmUgcXVhbnRpZmllciopKzsiCisgICAgKyAiYWx0ZXJuYXRpb24gPSBzZXF1ZW5jZSAod2VpZ2h0PyAoJ3wnIHNlcXVlbmNlIHdlaWdodD8pKyk/OyIKKyAgICArICJydWxlID0gc3RyaW5nICc9JyBhbHRlcm5hdGlvbjsiOyAKKyAgICAKKyAgICAKKyAgICAqICAgICAgTWF0Y2ggMCBvciBtb3JlIHRpbWVzCisgICAgKyAgICAgIE1hdGNoIDEgb3IgbW9yZSB0aW1lcworICAgID8gICAgICBNYXRjaCAxIG9yIDAgdGltZXMKKyAgICB7bn0gICAgTWF0Y2ggZXhhY3RseSBuIHRpbWVzCisgICAge24sfSAgIE1hdGNoIGF0IGxlYXN0IG4gdGltZXMKKyAgICB7bixtfSAgTWF0Y2ggYXQgbGVhc3QgbiBidXQgbm90IG1vcmUgdGhhbiBtIHRpbWVzICAKKyAKKyAKKworICAgICovCisgICAgCisgICAgcHVibGljIEJORihSYW5kb20gcmFuZG9tLCBRdW90ZXIgcXVvdGVyKSB7CisgICAgICAgIHRoaXMucmFuZG9tID0gcmFuZG9tOworICAgICAgICB0aGlzLnF1b3RlciA9IHF1b3RlcjsKKyAgICAgICAgdCA9IG5ldyBUb2tlbml6ZXIoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIEJORiBhZGRSdWxlcyhTdHJpbmcgcnVsZXMpIHsKKyAgICAgICAgdC5zZXRTb3VyY2UocnVsZXMpOyAgICAgICAgCisgICAgICAgIHdoaWxlIChhZGRSdWxlKCkpIHsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsgLy8gZm9yIGNoYWluaW5nCisgICAgfQorICAgIAorICAgIHB1YmxpYyBCTkYgY29tcGxldGUoKSB7CisgICAgICAgIC8vIGNoZWNrIHRoYXQgdGhlIHJ1bGVzIG1hdGNoIHRoZSB2YXJpYWJsZXMsIGV4Y2VwdCBmb3IgJHJvb3QgaW4gcnVsZXMKKyAgICAgICAgU2V0IHJ1bGVTZXQgPSBtYXAua2V5U2V0KCk7CisgICAgICAgIC8vIGFkZCBhbHNvIAorICAgICAgICB2YXJpYWJsZXMuYWRkKCIkcm9vdCIpOworICAgICAgICB2YXJpYWJsZXMuYWRkQWxsKHQuZ2V0TG9va2VkVXBJdGVtcygpKTsKKyAgICAgICAgaWYgKCFydWxlU2V0LmVxdWFscyh2YXJpYWJsZXMpKSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnID0gc2hvd0RpZmYodmFyaWFibGVzLCBydWxlU2V0KTsKKyAgICAgICAgICAgIGlmIChtc2cubGVuZ3RoKCkgIT0gMCkgbXNnID0gIkVycm9yOiBNaXNzaW5nIGRlZmluaXRpb25zIGZvcjogIiArIG1zZzsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gc2hvd0RpZmYocnVsZVNldCwgdmFyaWFibGVzKTsKKyAgICAgICAgICAgIGlmICh0ZW1wLmxlbmd0aCgpICE9IDApIHRlbXAgPSAiV2FybmluZzogRGVmaW5lZCBidXQgbm90IHVzZWQ6ICIgKyB0ZW1wOworICAgICAgICAgICAgaWYgKG1zZy5sZW5ndGgoKSA9PSAwKSBtc2cgPSB0ZW1wOworICAgICAgICAgICAgZWxzZSBpZiAodGVtcC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbXNnID0gbXNnICsgIjsgIiArIHRlbXA7ICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycm9yKG1zZyk7ICAgICAgICAgICAKKyAgICAgICAgfSAKKyAgICAgICAgCisgICAgICAgIGlmICghcnVsZVNldC5lcXVhbHModmFyaWFibGVzKSkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9IHNob3dEaWZmKHZhcmlhYmxlcywgcnVsZVNldCk7CisgICAgICAgICAgICBpZiAobXNnLmxlbmd0aCgpICE9IDApIG1zZyA9ICJNaXNzaW5nIGRlZmluaXRpb25zIGZvcjogIiArIG1zZzsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gc2hvd0RpZmYocnVsZVNldCwgdmFyaWFibGVzKTsKKyAgICAgICAgICAgIGlmICh0ZW1wLmxlbmd0aCgpICE9IDApIHRlbXAgPSAiRGVmaW5lZCBidXQgbm90IHVzZWQ6ICIgKyB0ZW1wOworICAgICAgICAgICAgaWYgKG1zZy5sZW5ndGgoKSA9PSAwKSBtc2cgPSB0ZW1wOworICAgICAgICAgICAgZWxzZSBpZiAodGVtcC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbXNnID0gbXNnICsgIjsgIiArIHRlbXA7ICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycm9yKG1zZyk7ICAgICAgICAgICAKKyAgICAgICAgfSAKKyAgICAgICAgCisgICAgICAgIC8vIHJlcGxhY2UgdmFyaWFibGVzIGJ5IGRlZmluaXRpb25zCisgICAgICAgIEl0ZXJhdG9yIGl0ID0gcnVsZVNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgUGljayBleHByZXNzaW9uID0gKFBpY2spIG1hcC5nZXQoa2V5KTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IHJ1bGVTZXQuaXRlcmF0b3IoKTsgIAorICAgICAgICAgICAgaWYgKGZhbHNlICYmIGtleS5lcXVhbHMoIiRjcmxmIikpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRlYnVnIikgOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBPYmplY3Qga2V5MiA9IGl0Mi5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGtleS5lcXVhbHMoa2V5MikpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIFBpY2sgZXhwcmVzc2lvbjIgPSAoUGljaykgbWFwLmdldChrZXkyKTsKKyAgICAgICAgICAgICAgICBleHByZXNzaW9uMi5yZXBsYWNlKGtleSwgZXhwcmVzc2lvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcGljayA9IChQaWNrKSBtYXAuZ2V0KCIkcm9vdCIpOworICAgICAgICB0YXJnZXQgPSBQaWNrLlRhcmdldC5tYWtlKHBpY2ssIHJhbmRvbSwgcXVvdGVyKTsKKyAgICAgICAgLy8gVE9ETyByZW1vdmUgdGVtcCBjb2xsZWN0aW9ucworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHNob3dEaWZmKFNldCBhLCBTZXQgYikgeworICAgICAgICBTZXQgdGVtcCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIHRlbXAuYWRkQWxsKGEpOworICAgICAgICB0ZW1wLnJlbW92ZUFsbChiKTsKKyAgICAgICAgaWYgKHRlbXAuc2l6ZSgpID09IDApIHJldHVybiAiIjsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSB0ZW1wLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKCkgIT0gMCkgYnVmZmVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBlcnJvcihTdHJpbmcgbXNnKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnCisgICAgICAgICsgIlxyXG4iICsgdC50b1N0cmluZygpKTsKKyAgICB9CisgCisgICAgcHJpdmF0ZSBib29sZWFuIGFkZFJ1bGUoKSB7CisgICAgICAgIGludCB0eXBlID0gdC5uZXh0KCk7CisgICAgICAgIGlmICh0eXBlID09IFRva2VuaXplci5ET05FKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICh0eXBlICE9IFRva2VuaXplci5TVFJJTkcpIGVycm9yKCJtaXNzaW5nIHdlaWdodCIpOworICAgICAgICBTdHJpbmcgcyA9IHQuZ2V0U3RyaW5nKCk7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDAgfHwgcy5jaGFyQXQoMCkgIT0gJyQnKSBlcnJvcigibWlzc2luZyAkIGluIHZhcmlhYmxlIik7CisgICAgICAgIGlmICh0Lm5leHQoKSAhPSAnPScpIGVycm9yKCJtaXNzaW5nID0iKTsKKyAgICAgICAgaW50IHN0YXJ0Qm9keSA9IHQuaW5kZXg7CisgICAgICAgIFBpY2sgcnVsZSA9IGdldEFsdGVybmF0aW9uKCk7CisgICAgICAgIGlmIChydWxlID09IG51bGwpIGVycm9yKCJtaXNzaW5nIGV4cHJlc3Npb24iKTsKKyAgICAgICAgdC5hZGRTeW1ib2wocywgdC5nZXRTb3VyY2UoKSwgc3RhcnRCb2R5LCB0LmluZGV4KTsKKyAgICAgICAgaWYgKHQubmV4dCgpICE9ICc7JykgZXJyb3IoIm1pc3NpbmcgOyIpOyAgICAgICAKKyAgICAgICAgcmV0dXJuIGFkZFBpY2socywgcnVsZSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYWRkUGljayhTdHJpbmcgcywgUGljayBydWxlKSB7CisgICAgICAgIE9iamVjdCB0ZW1wID0gbWFwLmdldChzKTsKKyAgICAgICAgaWYgKHRlbXAgIT0gbnVsbCkgZXJyb3IoImR1cGxpY2F0ZSB2YXJpYWJsZSIpOworICAgICAgICBpZiAocnVsZS5uYW1lID09IG51bGwpIHJ1bGUubmFtZShzKTsKKyAgICAgICAgbWFwLnB1dChzLCBydWxlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBCTkYgYWRkU2V0KFN0cmluZyB2YXJpYWJsZSwgVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgaWYgKHNldCAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgYm9keSA9IHNldC50b1N0cmluZygpOworICAgICAgICAgICAgdC5hZGRTeW1ib2wodmFyaWFibGUsIGJvZHksIDAsIGJvZHkubGVuZ3RoKCkpOyAgICAgICAgCisgICAgICAgICAgICBhZGRQaWNrKHZhcmlhYmxlLCBQaWNrLmNvZGVQb2ludChzZXQpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgaW50IG1heFJlcGVhdCA9IDk5OworICAgIAorICAgIFBpY2sgcXVhbGlmeShQaWNrIGl0ZW0pIHsKKyAgICAgICAgaW50W10gd2VpZ2h0czsKKyAgICAgICAgaW50IHR5cGUgPSB0Lm5leHQoKTsKKyAgICAgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgJ0AnOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBpY2suUXVvdGUoaXRlbSk7CisgICAgICAgICAgICBjYXNlICd+JzogCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQaWNrLk1vcnBoKGl0ZW0pOworICAgICAgICAgICAgY2FzZSAnPyc6IAorICAgICAgICAgICAgICAgIGludCB3ZWlnaHQgPSBnZXRXZWlnaHQoKTsKKyAgICAgICAgICAgICAgICBpZiAod2VpZ2h0ID09IE5PX1dFSUdIVCkgd2VpZ2h0ID0gNTA7CisgICAgICAgICAgICAgICAgd2VpZ2h0cyA9IG5ldyBpbnRbXSB7MTAwLXdlaWdodCwgd2VpZ2h0fTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUGljay5yZXBlYXQoMCwgMSwgd2VpZ2h0cywgaXRlbSk7CisgICAgICAgICAgICBjYXNlICcqJzogCisgICAgICAgICAgICAgICAgd2VpZ2h0cyA9IGdldFdlaWdodHMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUGljay5yZXBlYXQoMSwgbWF4UmVwZWF0LCB3ZWlnaHRzLCBpdGVtKTsKKyAgICAgICAgICAgIGNhc2UgJysnOiAKKyAgICAgICAgICAgICAgICB3ZWlnaHRzID0gZ2V0V2VpZ2h0cygpOworICAgICAgICAgICAgICAgIHJldHVybiBQaWNrLnJlcGVhdCgxLCBtYXhSZXBlYXQsIHdlaWdodHMsIGl0ZW0pOworICAgICAgICAgICAgY2FzZSAneyc6CisgICAgICAgICAgICAgICAgaWYgKHQubmV4dCgpICE9IFRva2VuaXplci5OVU1CRVIpIGVycm9yKCJtaXNzaW5nIG51bWJlciIpOworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IChpbnQpIHQuZ2V0TnVtYmVyKCk7CisgICAgICAgICAgICAgICAgaW50IGVuZCA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHR5cGUgPSB0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSAnLCcpIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gbWF4UmVwZWF0OworICAgICAgICAgICAgICAgICAgICB0eXBlID0gdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFRva2VuaXplci5OVU1CRVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IChpbnQpdC5nZXROdW1iZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSB0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSAnfScpIGVycm9yKCJtaXNzaW5nIH0iKTsKKyAgICAgICAgICAgICAgICB3ZWlnaHRzID0gZ2V0V2VpZ2h0cygpOworICAgICAgICAgICAgICAgIHJldHVybiBQaWNrLnJlcGVhdChzdGFydCwgZW5kLCB3ZWlnaHRzLCBpdGVtKTsKKyAgICAgICAgfQorICAgICAgICB0LmJhY2t1cCgpOworICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisgICAgCisgICAgUGljayBnZXRDb3JlKCkgeworICAgICAgICBpbnQgdG9rZW4gPSB0Lm5leHQoKTsKKyAgICAgICAgaWYgKHRva2VuID09IFRva2VuaXplci5TVFJJTkcpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gdC5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChzLmNoYXJBdCgwKSA9PSAnJCcpIHZhcmlhYmxlcy5hZGQocyk7CisgICAgICAgICAgICByZXR1cm4gUGljay5zdHJpbmcocyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuID09IFRva2VuaXplci5VTklDT0RFU0VUKSB7CisgICAgICAgICAgICByZXR1cm4gUGljay5jb2RlUG9pbnQodC5nZXRVbmljb2RlU2V0KCkpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbiAhPSAnKCcpIHsKKyAgICAgICAgICAgIHQuYmFja3VwKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBQaWNrIHRlbXAgPSBnZXRBbHRlcm5hdGlvbigpOworICAgICAgICB0b2tlbiA9IHQubmV4dCgpOworICAgICAgICBpZiAodG9rZW4gIT0gJyknKSBlcnJvcigibWlzc2luZyApIik7ICAgIAorICAgICAgICByZXR1cm4gdGVtcDsgICAgCisgICAgfQorICAgIAorICAgIFBpY2sgZ2V0U2VxdWVuY2UoKSB7CisgICAgICAgIFBpY2suU2VxdWVuY2UgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgUGljayBsYXN0ID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIFBpY2sgaXRlbSA9IGdldENvcmUoKTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKGxhc3QgIT0gbnVsbCkgcmV0dXJuIGxhc3Q7CisgICAgICAgICAgICAgICAgZXJyb3IoIm1pc3NpbmcgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gcXVhbGlmeSBpdCBhcyBtYW55IHRpbWVzIGFzIHBvc3NpYmxlCisgICAgICAgICAgICBQaWNrIG9sZEl0ZW07CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgb2xkSXRlbSA9IGl0ZW07CisgICAgICAgICAgICAgICAgaXRlbSA9IHF1YWxpZnkoaXRlbSk7CisgICAgICAgICAgICB9IHdoaWxlIChpdGVtICE9IG9sZEl0ZW0pOworICAgICAgICAgICAgLy8gYWRkIGl0IGluCisgICAgICAgICAgICBpZiAobGFzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGFzdCA9IGl0ZW07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gUGljay5tYWtlU2VxdWVuY2UoKS5hbmQyKGxhc3QpOyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5hbmQyKGl0ZW0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIGZvciBzaW1wbGljaXR5LCB3ZSBqdXN0IHVzZSByZWN1cnNpdmUgZGVzY2VudAorICAgIFBpY2sgZ2V0QWx0ZXJuYXRpb24oKSB7CisgICAgICAgIFBpY2suQWx0ZXJuYXRpb24gcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgUGljayBsYXN0ID0gbnVsbDsKKyAgICAgICAgaW50IGxhc3RXZWlnaHQgPSBOT19XRUlHSFQ7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBQaWNrIHRlbXAgPSBnZXRTZXF1ZW5jZSgpOworICAgICAgICAgICAgaWYgKHRlbXAgPT0gbnVsbCkgZXJyb3IoImVtcHR5IGFsdGVybmF0aW9uIik7CisgICAgICAgICAgICBpbnQgd2VpZ2h0ID0gZ2V0V2VpZ2h0KCk7CisgICAgICAgICAgICBpZiAod2VpZ2h0ID09IE5PX1dFSUdIVCkgd2VpZ2h0ID0gMTsKKyAgICAgICAgICAgIGlmIChsYXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsYXN0ID0gdGVtcDsKKyAgICAgICAgICAgICAgICBsYXN0V2VpZ2h0ID0gd2VpZ2h0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IFBpY2subWFrZUFsdGVybmF0aW9uKCkub3IyKGxhc3RXZWlnaHQsIGxhc3QpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5vcjIod2VpZ2h0LCB0ZW1wKTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB0b2tlbiA9IHQubmV4dCgpOworICAgICAgICAgICAgaWYgKHRva2VuICE9ICd8JykgeworICAgICAgICAgICAgICAgIHQuYmFja3VwKCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChsYXN0ICE9IG51bGwpIHJldHVybiBsYXN0OworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PX1dFSUdIVCA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgIAorICAgIGludCBnZXRXZWlnaHQoKSB7ICAgICAgIAorICAgICAgICBpbnQgd2VpZ2h0OworICAgICAgICBpbnQgdG9rZW4gPSB0Lm5leHQoKTsKKyAgICAgICAgaWYgKHRva2VuICE9IFRva2VuaXplci5OVU1CRVIpIHsKKyAgICAgICAgICAgIHQuYmFja3VwKCk7CisgICAgICAgICAgICByZXR1cm4gTk9fV0VJR0hUOworICAgICAgICB9CisgICAgICAgIHdlaWdodCA9IChpbnQpdC5nZXROdW1iZXIoKTsKKyAgICAgICAgdG9rZW4gPSB0Lm5leHQoKTsKKyAgICAgICAgaWYgKHRva2VuICE9ICclJykgZXJyb3IoIm1pc3NpbmcgJSIpOworICAgICAgICByZXR1cm4gd2VpZ2h0OworICAgIH0KKyAgICAKKyAgICBpbnRbXSBnZXRXZWlnaHRzKCkgeworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCB3ZWlnaHQgPSBnZXRXZWlnaHQoKTsKKyAgICAgICAgICAgIGlmICh3ZWlnaHQgPT0gTk9fV0VJR0hUKSBicmVhazsKKyAgICAgICAgICAgIGxpc3QuYWRkKG5ldyBJbnRlZ2VyKHdlaWdodCkpOworICAgICAgICB9CisgICAgICAgIGlmIChsaXN0LnNpemUoKSA9PSAwKSByZXR1cm4gbnVsbDsKKyAgICAgICAgaW50W10gcmVzdWx0ID0gbmV3IGludFtsaXN0LnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0W2ldID0gKChJbnRlZ2VyKWxpc3QuZ2V0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRNYXhSZXBlYXQoKSB7CisgICAgICByZXR1cm4gbWF4UmVwZWF0OworICAgIH0KKworICAgIHB1YmxpYyBCTkYgc2V0TWF4UmVwZWF0KGludCBtYXhSZXBlYXQpIHsKKyAgICAgIHRoaXMubWF4UmVwZWF0ID0gbWF4UmVwZWF0OworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JhZ0Zvcm1hdHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQmFnRm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI1YTFlNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JhZ0Zvcm1hdHRlci5qYXZhCkBAIC0wLDAgKzEsMTEyOSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW1Xcml0ZXI7CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlN0cmluZ1dyaXRlcjsKK2ltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworcHVibGljIGNsYXNzIEJhZ0Zvcm1hdHRlciB7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gU0hPV19GSUxFUzsKKyAgICBzdGF0aWMgeworCWJvb2xlYW4gc2hvd0ZpbGVzID0gZmFsc2U7CisJdHJ5IHsKKwkgICAgc2hvd0ZpbGVzID0gU3lzdGVtLmdldFByb3BlcnR5KCJTSE9XX0ZJTEVTIikgIT0gbnVsbDsKKwl9CisJY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKwl9CisJU0hPV19GSUxFUyA9IHNob3dGaWxlczsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFByaW50V3JpdGVyIENPTlNPTEUgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCx0cnVlKTsKKworICAgIHByaXZhdGUgc3RhdGljIFByaW50V3JpdGVyIGxvZyA9IENPTlNPTEU7CisKKyAgICBwcml2YXRlIGJvb2xlYW4gYWJicmV2aWF0ZWQgPSBmYWxzZTsKKyAgICBwcml2YXRlIFN0cmluZyBzZXBhcmF0b3IgPSAiLCI7CisgICAgcHJpdmF0ZSBTdHJpbmcgcHJlZml4ID0gIlsiOworICAgIHByaXZhdGUgU3RyaW5nIHN1ZmZpeCA9ICJdIjsKKyAgICBwcml2YXRlIFVuaWNvZGVQcm9wZXJ0eS5GYWN0b3J5IHNvdXJjZTsKKyAgICBwcml2YXRlIFVuaWNvZGVMYWJlbCBuYW1lU291cmNlOworICAgIHByaXZhdGUgVW5pY29kZUxhYmVsIGxhYmVsU291cmNlOworICAgIHByaXZhdGUgVW5pY29kZUxhYmVsIHJhbmdlQnJlYWtTb3VyY2U7CisgICAgcHJpdmF0ZSBVbmljb2RlTGFiZWwgdmFsdWVTb3VyY2U7CisgICAgcHJpdmF0ZSBTdHJpbmcgcHJvcE5hbWUgPSAiIjsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd0NvdW50ID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2tpcE51bGxWYWx1ZXMgPSB0cnVlOworICAgIC8vcHJpdmF0ZSBib29sZWFuIHN1cHByZXNzUmVzZXJ2ZWQgPSB0cnVlOworICAgIHByaXZhdGUgYm9vbGVhbiBoZXhWYWx1ZSA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOVUxMX1ZBTFVFID0gIl9OVUxMX1ZBTFVFXyI7CisgICAgcHJpdmF0ZSBpbnQgZnVsbFRvdGFsID0gLTE7CisgICAgcHJpdmF0ZSBib29sZWFuIHNob3dUb3RhbCA9IHRydWU7CisgICAgcHJpdmF0ZSBTdHJpbmcgbGluZVNlcGFyYXRvciA9ICJcclxuIjsKKyAgICBwcml2YXRlIFRhYmJlciB0YWJiZXIgPSBuZXcgVGFiYmVyLk1vbm9UYWJiZXIoKTsKKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIFVuaWNvZGVTZXRzLCBhbmQgc2hvdyB0aGUgZGlmZmVyZW5jZXMKKyAgICAgKiBAcGFyYW0gbmFtZTEgbmFtZSBvZiBmaXJzdCBzZXQgdG8gYmUgY29tcGFyZWQKKyAgICAgKiBAcGFyYW0gc2V0MSBmaXJzdCBzZXQKKyAgICAgKiBAcGFyYW0gbmFtZTIgbmFtZSBvZiBzZWNvbmQgc2V0IHRvIGJlIGNvbXBhcmVkCisgICAgICogQHBhcmFtIHNldDIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gZm9ybWF0dGVkIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc2hvd1NldERpZmZlcmVuY2VzKAorICAgICAgICBTdHJpbmcgbmFtZTEsCisgICAgICAgIFVuaWNvZGVTZXQgc2V0MSwKKyAgICAgICAgU3RyaW5nIG5hbWUyLAorICAgICAgICBVbmljb2RlU2V0IHNldDIpIHsKKworICAgICAgICBTdHJpbmdXcml0ZXIgcmVzdWx0ID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICBzaG93U2V0RGlmZmVyZW5jZXMobmV3IFByaW50V3JpdGVyKHJlc3VsdCksbmFtZTEsc2V0MSxuYW1lMixzZXQyKTsKKyAgICAgICAgcmVzdWx0LmZsdXNoKCk7CisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0QnVmZmVyKCkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHNob3dTZXREaWZmZXJlbmNlcygKKyAgICAgICAgU3RyaW5nIG5hbWUxLAorICAgICAgICBDb2xsZWN0aW9uIHNldDEsCisgICAgICAgIFN0cmluZyBuYW1lMiwKKyAgICAgICAgQ29sbGVjdGlvbiBzZXQyKSB7CisKKyAgICAgICAgU3RyaW5nV3JpdGVyIHJlc3VsdCA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKKyAgICAgICAgc2hvd1NldERpZmZlcmVuY2VzKG5ldyBQcmludFdyaXRlcihyZXN1bHQpLCBuYW1lMSwgc2V0MSwgbmFtZTIsIHNldDIpOworICAgICAgICByZXN1bHQuZmx1c2goKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXRCdWZmZXIoKS50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNob3dTZXREaWZmZXJlbmNlcygKKyAgICAgICAgICAgIFByaW50V3JpdGVyIHB3LAorICAgICAgICAgICAgU3RyaW5nIG5hbWUxLAorICAgICAgICAgICAgVW5pY29kZVNldCBzZXQxLAorICAgICAgICAgICAgU3RyaW5nIG5hbWUyLAorICAgICAgICAgICAgVW5pY29kZVNldCBzZXQyKSB7CisgICAgCXNob3dTZXREaWZmZXJlbmNlcyhwdywgbmFtZTEsIHNldDEsIG5hbWUyLCBzZXQyLCAtMSk7CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIFVuaWNvZGVTZXRzLCBhbmQgc2hvdyB0aGUgZGlmZmVyZW5jZXMKKyAgICAgKiBAcGFyYW0gbmFtZTEgbmFtZSBvZiBmaXJzdCBzZXQgdG8gYmUgY29tcGFyZWQKKyAgICAgKiBAcGFyYW0gc2V0MSBmaXJzdCBzZXQKKyAgICAgKiBAcGFyYW0gbmFtZTIgbmFtZSBvZiBzZWNvbmQgc2V0IHRvIGJlIGNvbXBhcmVkCisgICAgICogQHBhcmFtIHNldDIgc2Vjb25kIHNldAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNob3dTZXREaWZmZXJlbmNlcygKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcsCisgICAgICAgIFN0cmluZyBuYW1lMSwKKyAgICAgICAgVW5pY29kZVNldCBzZXQxLAorICAgICAgICBTdHJpbmcgbmFtZTIsCisgICAgICAgIFVuaWNvZGVTZXQgc2V0MiwKKwkJaW50IGZsYWdzKSAKKyAgICB7CisgICAgICAgIGlmIChwdyA9PSBudWxsKSBwdyA9IENPTlNPTEU7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geyBuYW1lMSwgbmFtZTIgfTsKKworICAgICAgICBVbmljb2RlU2V0IHRlbXA7CisgICAgICAgIAorICAgICAgICBpZiAoKGZsYWdzJjEpICE9IDApIHsKKyAgICAgICAgCXRlbXAgPSBuZXcgVW5pY29kZVNldChzZXQxKS5yZW1vdmVBbGwoc2V0Mik7CisJICAgICAgICBwdy5wcmludChsaW5lU2VwYXJhdG9yKTsKKwkgICAgICAgIHB3LnByaW50KGluT3V0LmZvcm1hdChuYW1lcykpOworCSAgICAgICAgcHcucHJpbnQobGluZVNlcGFyYXRvcik7CisJICAgICAgICBzaG93U2V0TmFtZXMocHcsIHRlbXApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChmbGFncyYyKSAhPSAwKSB7CisgICAgICAgIAl0ZW1wID0gbmV3IFVuaWNvZGVTZXQoc2V0MikucmVtb3ZlQWxsKHNldDEpOworCSAgICAgICAgcHcucHJpbnQobGluZVNlcGFyYXRvcik7CisJICAgICAgICBwdy5wcmludChvdXRJbi5mb3JtYXQobmFtZXMpKTsKKwkgICAgICAgIHB3LnByaW50KGxpbmVTZXBhcmF0b3IpOworCSAgICAgICAgc2hvd1NldE5hbWVzKHB3LCB0ZW1wKTsKKwkgICAgfQorCisgICAgICAgIGlmICgoZmxhZ3MmNCkgIT0gMCkgeworCSAgICAgICAgdGVtcCA9IG5ldyBVbmljb2RlU2V0KHNldDIpLnJldGFpbkFsbChzZXQxKTsKKwkgICAgICAgIHB3LnByaW50KGxpbmVTZXBhcmF0b3IpOworCSAgICAgICAgcHcucHJpbnQoaW5Jbi5mb3JtYXQobmFtZXMpKTsKKwkgICAgICAgIHB3LnByaW50KGxpbmVTZXBhcmF0b3IpOworCSAgICAgICAgc2hvd1NldE5hbWVzKHB3LCB0ZW1wKTsKKyAgICAgICAgfQorICAgICAgICBwdy5mbHVzaCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNob3dTZXREaWZmZXJlbmNlcygKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcsCisgICAgICAgIFN0cmluZyBuYW1lMSwKKyAgICAgICAgQ29sbGVjdGlvbiBzZXQxLAorICAgICAgICBTdHJpbmcgbmFtZTIsCisgICAgICAgIENvbGxlY3Rpb24gc2V0MikgeworCisgICAgICAgIGlmIChwdyA9PSBudWxsKSBwdyA9IENPTlNPTEU7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geyBuYW1lMSwgbmFtZTIgfTsKKyAgICAgICAgLy8gZGFtbidkIGNvbGxlY3Rpb24gZG9lc24ndCBoYXZlIGEgY2xvbmUsIHNvCisgICAgICAgIC8vIHdlIGdvIHdpdGggU2V0LCBldmVuIHRob3VnaCB0aGF0CisgICAgICAgIC8vIG1heSBub3QgcHJlc2VydmUgb3JkZXIgYW5kIGR1cGxpY2F0ZXMKKyAgICAgICAgQ29sbGVjdGlvbiB0ZW1wID0gbmV3IEhhc2hTZXQoc2V0MSk7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKHNldDIpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4oaW5PdXQuZm9ybWF0KG5hbWVzKSk7CisgICAgICAgIHNob3dTZXROYW1lcyhwdywgdGVtcCk7CisKKyAgICAgICAgdGVtcC5jbGVhcigpOworICAgICAgICB0ZW1wLmFkZEFsbChzZXQyKTsKKyAgICAgICAgdGVtcC5yZW1vdmVBbGwoc2V0MSk7CisgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgcHcucHJpbnRsbihvdXRJbi5mb3JtYXQobmFtZXMpKTsKKyAgICAgICAgc2hvd1NldE5hbWVzKHB3LCB0ZW1wKTsKKworICAgICAgICB0ZW1wLmNsZWFyKCk7CisgICAgICAgIHRlbXAuYWRkQWxsKHNldDEpOworICAgICAgICB0ZW1wLnJldGFpbkFsbChzZXQyKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKGluSW4uZm9ybWF0KG5hbWVzKSk7CisgICAgICAgIHNob3dTZXROYW1lcyhwdywgdGVtcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24sIHdpdGggZWFjaCBzZXBhcmF0ZWQgYnkgdGhlIHNlcGFyYXRvci4KKyAgICAgKiBFYWNoIGl0ZW0gbXVzdCBub3QgYmUgbnVsbDsgaXRzIHRvU3RyaW5nKCkgaXMgY2FsbGVkIGZvciBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbgorICAgICAqIEBwYXJhbSBjIHNvdXJjZSBjb2xsZWN0aW9uCisgICAgICogQHJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbGlzdAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc2hvd1NldE5hbWVzKE9iamVjdCBjKSB7CisgICAgICAgIFN0cmluZ1dyaXRlciBidWZmZXIgPSBuZXcgU3RyaW5nV3JpdGVyKCk7CisgICAgICAgIFByaW50V3JpdGVyIG91dHB1dCA9IG5ldyBQcmludFdyaXRlcihidWZmZXIpOworICAgICAgICBzaG93U2V0TmFtZXMob3V0cHV0LGMpOworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24sIHdpdGggZWFjaCBzZXBhcmF0ZWQgYnkgdGhlIHNlcGFyYXRvci4KKyAgICAgKiBFYWNoIGl0ZW0gbXVzdCBub3QgYmUgbnVsbDsgaXRzIHRvU3RyaW5nKCkgaXMgY2FsbGVkIGZvciBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbgorICAgICAqIEBwYXJhbSBvdXRwdXQgZGVzdGluYXRpb24gdG8gd2hpY2ggdG8gd3JpdGUgbmFtZXMKKyAgICAgKiBAcGFyYW0gYyBzb3VyY2UgY29sbGVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNob3dTZXROYW1lcyhQcmludFdyaXRlciBvdXRwdXQsIE9iamVjdCBjKSB7CisgICAgICAgIG1haW5WaXNpdG9yLmRvQXQoYywgb3V0cHV0KTsKKyAgICAgICAgb3V0cHV0LmZsdXNoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24sIHdpdGggZWFjaCBzZXBhcmF0ZWQgYnkgdGhlIHNlcGFyYXRvci4KKyAgICAgKiBFYWNoIGl0ZW0gbXVzdCBub3QgYmUgbnVsbDsgaXRzIHRvU3RyaW5nKCkgaXMgY2FsbGVkIGZvciBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbgorICAgICAqIEBwYXJhbSBmaWxlbmFtZSBkZXN0aW5hdGlvbiB0byB3aGljaCB0byB3cml0ZSBuYW1lcworICAgICAqIEBwYXJhbSBjIHNvdXJjZSBjb2xsZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2hvd1NldE5hbWVzKFN0cmluZyBmaWxlbmFtZSwgT2JqZWN0IGMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlbmFtZSksInV0Zi04IikpOworICAgICAgICBzaG93U2V0TmFtZXMobG9nLGMpOworICAgICAgICBwdy5jbG9zZSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QWJicmV2aWF0ZWROYW1lKAorICAgICAgICBTdHJpbmcgc291cmNlLAorICAgICAgICBTdHJpbmcgcGF0dGVybiwKKyAgICAgICAgU3RyaW5nIHN1YnN0aXR1dGUpIHsKKworICAgICAgICBpbnQgbWF0Y2hFbmQgPSBOYW1lSXRlcmF0b3IuZmluZE1hdGNoaW5nRW5kKHNvdXJjZSwgcGF0dGVybik7CisgICAgICAgIGludCBzZGl2ID0gc291cmNlLmxlbmd0aCgpIC0gbWF0Y2hFbmQ7CisgICAgICAgIGludCBwZGl2ID0gcGF0dGVybi5sZW5ndGgoKSAtIG1hdGNoRW5kOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBhZGRNYXRjaGluZygKKyAgICAgICAgICAgIHNvdXJjZS5zdWJzdHJpbmcoMCwgc2RpdiksCisgICAgICAgICAgICBwYXR0ZXJuLnN1YnN0cmluZygwLCBwZGl2KSwKKyAgICAgICAgICAgIHN1YnN0aXR1dGUsCisgICAgICAgICAgICByZXN1bHQpOworICAgICAgICBhZGRNYXRjaGluZygKKyAgICAgICAgICAgIHNvdXJjZS5zdWJzdHJpbmcoc2RpdiksCisgICAgICAgICAgICBwYXR0ZXJuLnN1YnN0cmluZyhwZGl2KSwKKyAgICAgICAgICAgIHN1YnN0aXR1dGUsCisgICAgICAgICAgICByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgYWJzdHJhY3QgcHVibGljIHN0YXRpYyBjbGFzcyBSZWxhdGlvbiB7CisgICAgICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgZ2V0UmVsYXRpb24oU3RyaW5nIGEsIFN0cmluZyBiKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgTnVsbFJlbGF0aW9uIGV4dGVuZHMgUmVsYXRpb24geworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFJlbGF0aW9uKFN0cmluZyBhLCBTdHJpbmcgYikgeyByZXR1cm4gIiI7IH0KKyAgICB9CisKKyAgICBwcml2YXRlIFJlbGF0aW9uIHIgPSBuZXcgTnVsbFJlbGF0aW9uKCk7CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFJlbGF0aW9uKFJlbGF0aW9uIHIpIHsKKyAgICAgICAgdGhpcy5yID0gcjsKKyAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgIH0KKworICAgIHB1YmxpYyBSZWxhdGlvbiBnZXRSZWxhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisgICAgLyoKKyAgICAgci5nZXRSZWxhdGkgb24obGFzdCwgcykgKyBxdW90ZShzKSArICJcdCMiICsgVW5pY29kZVNldEZvcm1hdHRlci5nZXRSZXNvbHZlZE5hbWUocykKKyAgICAqLworICAgIC8qCisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgTk9fTkFNRSA9CisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbXFx1MDA4MFxcdTAwODFcXHUwMDg0XFx1MDA5OVxccHtDbn1cXHB7Q299XSIpOworICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IEhBU19OQU1FID0gbmV3IFVuaWNvZGVTZXQoTk9fTkFNRSkuY29tcGxlbWVudCgpOworICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IE5BTUVfQ0hBUkFDVEVSUyA9CisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbQS1aYS16MC05XFw8XFw+XFwtXFwgXSIpOworCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0U2V0Rm9yTmFtZShTdHJpbmcgbmFtZVBhdHRlcm4pIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBNYXRjaGVyIG0gPSBQYXR0ZXJuLmNvbXBpbGUobmFtZVBhdHRlcm4pLm1hdGNoZXIoIiIpOworICAgICAgICAvLyBjaGVjayBmb3Igbm8tbmFtZSBpdGVtcywgYW5kIGFkZCBpbiBidWxrCisgICAgICAgIG0ucmVzZXQoIjxubyBuYW1lPiIpOworICAgICAgICBpZiAobS5tYXRjaGVzKCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hZGRBbGwoTk9fTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2hlY2sgYWxsIG90aGVycworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdXNpID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihIQVNfTkFNRSk7CisgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGdldE5hbWUodXNpLmNvZGVwb2ludCk7CisgICAgICAgICAgICBpZiAobmFtZSA9PSBudWxsKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbS5yZXNldChuYW1lKTsKKyAgICAgICAgICAgIGlmIChtLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQodXNpLmNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gTm90ZTogaWYgUmVnZXggaGFkIHNvbWUgQVBJIHNvIHRoYXQgaWYgd2UgY291bGQgdGVsbCB0aGF0CisgICAgICAgIC8vIGFuIGluaXRpYWwgc3Vic3RyaW5nIGNvdWxkbid0IG1hdGNoLCBlLmcuICJDSksgSURFT0dSQVBILSIKKyAgICAgICAgLy8gdGhlbiB3ZSBjb3VsZCBvcHRpbWl6ZSBieSBza2lwcGluZyB3aG9sZSBzd2F0aGVzIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgKi8KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0TWVyZ2VSYW5nZXMoYm9vbGVhbiBpbikgeworICAgICAgICBtZXJnZVJhbmdlcyA9IGluOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRTaG93U2V0QWxzbyhib29sZWFuIGIpIHsKKyAgICAgICAgc2hvd1NldEFsc28gPSBiOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoaW50IGNvZGVQb2ludCkgeworICAgICAgICByZXR1cm4gZ2V0TmFtZSgiIiwgY29kZVBvaW50LCBjb2RlUG9pbnQpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgc2VwYXJhdG9yLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKGdldE5hbWVTb3VyY2UoKSA9PSBudWxsIHx8IGdldE5hbWVTb3VyY2UoKSA9PSBVbmljb2RlTGFiZWwuTlVMTCkgcmV0dXJuICIiOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZ2V0TmFtZShzdGFydCwgZmFsc2UpOworICAgICAgICBpZiAoc3RhcnQgPT0gZW5kKSByZXR1cm4gc2VwYXJhdG9yICsgcmVzdWx0OworICAgICAgICBTdHJpbmcgZW5kU3RyaW5nID0gZ2V0TmFtZShlbmQsIGZhbHNlKTsKKyAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA9PSAwICYmIGVuZFN0cmluZy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gc2VwYXJhdG9yOworICAgICAgICBpZiAoYWJicmV2aWF0ZWQpIGVuZFN0cmluZyA9IGdldEFiYnJldmlhdGVkTmFtZShlbmRTdHJpbmcscmVzdWx0LCJ+Iik7CisgICAgICAgIHJldHVybiBzZXBhcmF0b3IgKyByZXN1bHQgKyAiLi4iICsgZW5kU3RyaW5nOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gZ2V0TmFtZShzLCBmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOYW1lTGFiZWwgZXh0ZW5kcyBVbmljb2RlTGFiZWwgeworICAgICAgICBVbmljb2RlUHJvcGVydHkgbmFtZVByb3A7CisgICAgICAgIFVuaWNvZGVTZXQgY29udHJvbDsKKyAgICAgICAgVW5pY29kZVNldCBwcml2YXRlX3VzZTsKKyAgICAgICAgVW5pY29kZVNldCBub25jaGFyYWN0ZXI7CisgICAgICAgIFVuaWNvZGVTZXQgc3Vycm9nYXRlOworCisgICAgICAgIHB1YmxpYyBOYW1lTGFiZWwoVW5pY29kZVByb3BlcnR5LkZhY3Rvcnkgc291cmNlKSB7CisgICAgICAgICAgICBuYW1lUHJvcCA9IHNvdXJjZS5nZXRQcm9wZXJ0eSgiTmFtZSIpOworICAgICAgICAgICAgY29udHJvbCA9IHNvdXJjZS5nZXRTZXQoImdjPUNjIik7CisgICAgICAgICAgICBwcml2YXRlX3VzZSA9IHNvdXJjZS5nZXRTZXQoImdjPUNvIik7CisgICAgICAgICAgICBzdXJyb2dhdGUgPSBzb3VyY2UuZ2V0U2V0KCJnYz1DcyIpOworICAgICAgICAgICAgbm9uY2hhcmFjdGVyID0gc291cmNlLmdldFNldCgibm9uY2hhcmFjdGVyY29kZXBvaW50PXRydWUiKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFsdWUoaW50IGNvZGVQb2ludCwgYm9vbGVhbiBpc1Nob3J0KSB7CisgICAgICAgICAgICBTdHJpbmcgaGNwID0gIWlzU2hvcnQKKyAgICAgICAgICAgICAgICA/ICJVKyIgKyBVdGlsaXR5LmhleChjb2RlUG9pbnQsIDQpICsgIiAiCisgICAgICAgICAgICAgICAgOiAiIjsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBuYW1lUHJvcC5nZXRWYWx1ZShjb2RlUG9pbnQpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKQorICAgICAgICAgICAgICAgIHJldHVybiBoY3AgKyByZXN1bHQ7CisgICAgICAgICAgICBpZiAoY29udHJvbC5jb250YWlucyhjb2RlUG9pbnQpKSByZXR1cm4gIjxjb250cm9sLSIgKyBVdGlsaXR5LmhleChjb2RlUG9pbnQsIDQpICsgIj4iOworICAgICAgICAgICAgaWYgKHByaXZhdGVfdXNlLmNvbnRhaW5zKGNvZGVQb2ludCkpIHJldHVybiAiPHByaXZhdGUtdXNlLSIgKyBVdGlsaXR5LmhleChjb2RlUG9pbnQsIDQpICsgIj4iOworICAgICAgICAgICAgaWYgKG5vbmNoYXJhY3Rlci5jb250YWlucyhjb2RlUG9pbnQpKSByZXR1cm4gIjxub25jaGFyYWN0ZXItIiArIFV0aWxpdHkuaGV4KGNvZGVQb2ludCwgNCkgKyAiPiI7CisgICAgICAgICAgICBpZiAoc3Vycm9nYXRlLmNvbnRhaW5zKGNvZGVQb2ludCkpIHJldHVybiAiPHN1cnJvZ2F0ZS0iICsgVXRpbGl0eS5oZXgoY29kZVBvaW50LCA0KSArICI+IjsKKyAgICAgICAgICAgIC8vaWYgKHN1cHByZXNzUmVzZXJ2ZWQpIHJldHVybiAiIjsKKyAgICAgICAgICAgIHJldHVybiBoY3AgKyAiPHJlc2VydmVkLSIgKyBVdGlsaXR5LmhleChjb2RlUG9pbnQsIDQpICsgIj4iOworICAgICAgICB9CisKKyAgICB9CisKKyAgICAvLyByZWZhY3RvcmVkCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKGludCBjb2RlUG9pbnQsIGJvb2xlYW4gd2l0aENvZGVQb2ludCkgeworICAgIAlTdHJpbmcgcmVzdWx0ID0gZ2V0TmFtZVNvdXJjZSgpLmdldFZhbHVlKGNvZGVQb2ludCwgIXdpdGhDb2RlUG9pbnQpOworICAgICAgICByZXR1cm4gZml4TmFtZSA9PSBudWxsID8gcmVzdWx0IDogZml4TmFtZS50cmFuc2xpdGVyYXRlKHJlc3VsdCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzLCBib29sZWFuIHdpdGhDb2RlUG9pbnQpIHsKKyAgICAgICAJU3RyaW5nIHJlc3VsdCA9IGdldE5hbWVTb3VyY2UoKS5nZXRWYWx1ZShzLCBzZXBhcmF0b3IsICF3aXRoQ29kZVBvaW50KTsKKyAgICAgICAgcmV0dXJuIGZpeE5hbWUgPT0gbnVsbCA/IHJlc3VsdCA6IGZpeE5hbWUudHJhbnNsaXRlcmF0ZShyZXN1bHQpOworICAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGhleChTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gaGV4KHMsc2VwYXJhdG9yKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGhleChTdHJpbmcgcywgU3RyaW5nIHNlcGFyYXRvcikgeworICAgICAgICByZXR1cm4gVW5pY29kZUxhYmVsLkhFWC5nZXRWYWx1ZShzLCBzZXBhcmF0b3IsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgaGV4KGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBTdHJpbmcgcyA9IFV0aWxpdHkuaGV4KHN0YXJ0LDQpOworICAgICAgICBpZiAoc3RhcnQgPT0gZW5kKSByZXR1cm4gczsKKyAgICAgICAgcmV0dXJuIHMgKyAiLi4iICsgVXRpbGl0eS5oZXgoZW5kLDQpOworICAgIH0KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0VW5pY29kZVByb3BlcnR5RmFjdG9yeShVbmljb2RlUHJvcGVydHkuRmFjdG9yeSBzb3VyY2UpIHsKKyAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHkuRmFjdG9yeSBnZXRVbmljb2RlUHJvcGVydHlGYWN0b3J5KCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHNvdXJjZSA9IElDVVByb3BlcnR5RmFjdG9yeS5tYWtlKCk7CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfQorCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciAoKSB7CisgICAgfQorCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciAoVW5pY29kZVByb3BlcnR5LkZhY3Rvcnkgc291cmNlKSB7CisgICAgICAgIHNldFVuaWNvZGVQcm9wZXJ0eUZhY3Rvcnkoc291cmNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGpvaW4oT2JqZWN0IG8pIHsKKyAgICAgICAgcmV0dXJuIGxhYmVsVmlzaXRvci5qb2luKG8pOworICAgIH0KKworICAgIC8vID09PT09IFBSSVZBVEVTID09PT09CisKKyAgICBwcml2YXRlIEpvaW4gbGFiZWxWaXNpdG9yID0gbmV3IEpvaW4oKTsKKworICAgIHByaXZhdGUgYm9vbGVhbiBtZXJnZVJhbmdlcyA9IHRydWU7CisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBzaG93TGl0ZXJhbCA9IG51bGw7CisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBmaXhOYW1lID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd1NldEFsc28gPSBmYWxzZTsKKworICAgIHByaXZhdGUgUmFuZ2VGaW5kZXIgcmYgPSBuZXcgUmFuZ2VGaW5kZXIoKTsKKworICAgIHByaXZhdGUgTWVzc2FnZUZvcm1hdCBpbk91dCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJJbiB7MH0sIGJ1dCBub3QgaW4gezF9OiIpOworICAgIHByaXZhdGUgTWVzc2FnZUZvcm1hdCBvdXRJbiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJOb3QgaW4gezB9LCBidXQgaW4gezF9OiIpOworICAgIHByaXZhdGUgTWVzc2FnZUZvcm1hdCBpbkluID0gbmV3IE1lc3NhZ2VGb3JtYXQoIkluIGJvdGggezB9LCBhbmQgaW4gezF9OiIpOworCisgICAgcHJpdmF0ZSBNeVZpc2l0b3IgbWFpblZpc2l0b3IgPSBuZXcgTXlWaXNpdG9yKCk7CisKKyAgICAvKgorICAgIHByaXZhdGUgU3RyaW5nIGdldExhYmVscyhpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgU2V0IG5hbWVzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgY3AgPSBzdGFydDsgY3AgPD0gZW5kOyArK2NwKSB7CisgICAgICAgICAgICBuYW1lcy5hZGQoZ2V0TGFiZWwoY3ApKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGFiZWxWaXNpdG9yLmpvaW4obmFtZXMpOworICAgIH0KKyAgICAqLworCisgICAgcHJpdmF0ZSB2b2lkIGFkZE1hdGNoaW5nKAorICAgICAgICBTdHJpbmcgc291cmNlLAorICAgICAgICBTdHJpbmcgcGF0dGVybiwKKyAgICAgICAgU3RyaW5nIHN1YnN0aXR1dGUsCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQpIHsKKyAgICAgICAgTmFtZUl0ZXJhdG9yIG4xID0gbmV3IE5hbWVJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBOYW1lSXRlcmF0b3IgbjIgPSBuZXcgTmFtZUl0ZXJhdG9yKHBhdHRlcm4pOworICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9IG4xLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChzMSA9PSBudWxsKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgU3RyaW5nIHMyID0gbjIubmV4dCgpOworICAgICAgICAgICAgaWYgKCFmaXJzdCkKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgIik7CisgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKHMxLmVxdWFscyhzMikpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzdWJzdGl0dXRlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHMxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE51bWJlckZvcm1hdCBuZiA9CisgICAgICAgIE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgIHN0YXRpYyB7CisgICAgICAgIG5mLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBjbGFzcyBNeVZpc2l0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKKyAgICAgICAgcHJpdmF0ZSBQcmludFdyaXRlciBvdXRwdXQ7CisgICAgICAgIFN0cmluZyBjb21tZW50U2VwYXJhdG9yOworICAgICAgICBpbnQgY291bnRlcjsKKyAgICAgICAgaW50IHZhbHVlU2l6ZTsKKyAgICAgICAgaW50IGxhYmVsU2l6ZTsKKyAgICAgICAgYm9vbGVhbiBpc0h0bWw7CisgICAgICAgIGJvb2xlYW4gaW5UYWJsZSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgdG9PdXRwdXQoU3RyaW5nIHMpIHsKKyAgICAgICAgICBpZiAoaXNIdG1sKSB7CisgICAgICAgICAgICBpZiAoaW5UYWJsZSkgeworICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIjwvdGFibGU+Iik7CisgICAgICAgICAgICAgIGluVGFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiPHA+Iik7CisgICAgICAgICAgfQorICAgICAgICAgIG91dHB1dC5wcmludChzKTsKKyAgICAgICAgICBpZiAoaXNIdG1sKQorICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIjwvcD4iKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXRwdXQucHJpbnQobGluZVNlcGFyYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHRvVGFibGUoU3RyaW5nIHMpIHsKKyAgICAgICAgICBpZiAoaXNIdG1sICYmICFpblRhYmxlKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIjx0YWJsZT4iKTsKKyAgICAgICAgICAgIGluVGFibGUgPSB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICBvdXRwdXQucHJpbnQodGFiYmVyLnByb2Nlc3MocykgKyAgbGluZVNlcGFyYXRvcik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBkb0F0KE9iamVjdCBjLCBQcmludFdyaXRlciBvdXRwdXQpIHsKKyAgICAgICAgICAgIHRoaXMub3V0cHV0ID0gb3V0cHV0OworICAgICAgICAgICAgaXNIdG1sID0gdGFiYmVyIGluc3RhbmNlb2YgVGFiYmVyLkhUTUxUYWJiZXI7CisgICAgICAgICAgICBjb3VudGVyID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGFiYmVyLmNsZWFyKCk7CisgICAgICAgICAgICB0YWJiZXIuYWRkKG1lcmdlUmFuZ2VzID8gMTQgOiA2LFRhYmJlci5MRUZUKTsKKworICAgICAgICAgICAgaWYgKHByb3BOYW1lLmxlbmd0aCgpID4gMCkgdGFiYmVyLmFkZChwcm9wTmFtZS5sZW5ndGgoKSArIDIsVGFiYmVyLkxFRlQpOworCisgICAgICAgICAgICB2YWx1ZVNpemUgPSBnZXRWYWx1ZVNvdXJjZSgpLmdldE1heFdpZHRoKHNob3J0VmFsdWUpOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlZhbHVlU2l6ZTogIiArIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICBpZiAoZ2V0VmFsdWVTb3VyY2UoKSAhPSBVbmljb2RlTGFiZWwuTlVMTCkgdGFiYmVyLmFkZCh2YWx1ZVNpemUgKyAyLFRhYmJlci5MRUZUKTsgLy8gdmFsdWUKKworICAgICAgICAgICAgdGFiYmVyLmFkZCgzLFRhYmJlci5MRUZUKTsgLy8gY29tbWVudCBjaGFyYWN0ZXIKKworICAgICAgICAgICAgbGFiZWxTaXplID0gZ2V0TGFiZWxTb3VyY2UodHJ1ZSkuZ2V0TWF4V2lkdGgoc2hvcnRMYWJlbCk7CisgICAgICAgICAgICBpZiAobGFiZWxTaXplID4gMCkgdGFiYmVyLmFkZChsYWJlbFNpemUgKyAxLFRhYmJlci5MRUZUKTsgLy8gdmFsdWUKKworICAgICAgICAgICAgaWYgKG1lcmdlUmFuZ2VzICYmIHNob3dDb3VudCkgdGFiYmVyLmFkZCg1LFRhYmJlci5SSUdIVCk7CisKKyAgICAgICAgICAgIGlmIChzaG93TGl0ZXJhbCAhPSBudWxsKSB0YWJiZXIuYWRkKDQsVGFiYmVyLkxFRlQpOworICAgICAgICAgICAgLy9teVRhYmJlci5hZGQoNyxUYWJiZXIuTEVGVCk7CisKKyAgICAgICAgICAgIGNvbW1lbnRTZXBhcmF0b3IgPSAoc2hvd0NvdW50IHx8IHNob3dMaXRlcmFsICE9IG51bGwKKyAgICAgICAgICAgICAgfHwgZ2V0TGFiZWxTb3VyY2UodHJ1ZSkgIT0gVW5pY29kZUxhYmVsLk5VTEwKKyAgICAgICAgICAgICAgfHwgZ2V0TmFtZVNvdXJjZSgpICE9IFVuaWNvZGVMYWJlbC5OVUxMKQorICAgICAgICAgICAgPyAiXHQgIyIgOiAiIjsKKworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRhYmJlcjogIiArIHRhYmJlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUYWJiZXI6ICIgKyB0YWJiZXIucHJvY2VzcygiYVx0Ylx0ZFx0ZFx0Zlx0Z1x0aCIpKTsKKyAgICAgICAgICAgIGRvQXQoYyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGZvcm1hdChPYmplY3QgbykgeworICAgICAgICAgICAgU3RyaW5nV3JpdGVyIHN3ID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOworICAgICAgICAgICAgZG9BdChvKTsKKyAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc3cuZ2V0QnVmZmVyKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHB3LmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9CZWZvcmUoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChzaG93U2V0QWxzbyAmJiBjb250YWluZXIgaW5zdGFuY2VvZiBVbmljb2RlU2V0KSB7CisgICAgICAgICAgICAgIHRvT3V0cHV0KCIjIiArIGNvbnRhaW5lcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb0JldHdlZW4oT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGxhc3RJdGVtLCBPYmplY3QgbmV4dEl0ZW0pIHsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvQWZ0ZXIoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChmdWxsVG90YWwgIT0gLTEgJiYgZnVsbFRvdGFsICE9IGNvdW50ZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2hvd1RvdGFsKSB7CisgICAgICAgICAgICAgICAgICAgIHRvT3V0cHV0KCIiKTsKKyAgICAgICAgICAgICAgICAgICAgdG9PdXRwdXQoIiMgVGhlIGFib3ZlIHByb3BlcnR5IHZhbHVlIGFwcGxpZXMgdG8gIiArIG5mLmZvcm1hdChmdWxsVG90YWwtY291bnRlcikgKyAiIGNvZGUgcG9pbnRzIG5vdCBsaXN0ZWQgaGVyZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdG9PdXRwdXQoIiMgVG90YWwgY29kZSBwb2ludHM6ICIgKyBuZi5mb3JtYXQoZnVsbFRvdGFsKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZ1bGxUb3RhbCA9IC0xOworICAgICAgICAgICAgfSBlbHNlIGlmIChzaG93VG90YWwpIHsKKyAgICAgICAgICAgICAgICB0b091dHB1dCgiIik7CisgICAgICAgICAgICAgICAgdG9PdXRwdXQoIiMgVG90YWwgY29kZSBwb2ludHM6ICIgKyBuZi5mb3JtYXQoY291bnRlcikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9TaW1wbGVBdChPYmplY3QgbykgeworICAgICAgICAgICAgaWYgKG8gaW5zdGFuY2VvZiBNYXAuRW50cnkpIHsKKyAgICAgICAgICAgICAgICBNYXAuRW50cnkgb28gPSAoTWFwLkVudHJ5KW87CisgICAgICAgICAgICAgICAgT2JqZWN0IGtleSA9IG9vLmdldEtleSgpOworICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG9vLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgZG9CZWZvcmUobywga2V5KTsKKyAgICAgICAgICAgICAgICBkb0F0KGtleSk7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIlx1MjE5MiIpOworICAgICAgICAgICAgICAgIGRvQXQodmFsdWUpOworICAgICAgICAgICAgICAgIGRvQWZ0ZXIobywgdmFsdWUpOworICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobyBpbnN0YW5jZW9mIFZpc2l0b3IuQ29kZVBvaW50UmFuZ2UpIHsKKyAgICAgICAgICAgICAgICBkb0F0KChWaXNpdG9yLkNvZGVQb2ludFJhbmdlKSBvKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRoaW5nID0gby50b1N0cmluZygpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlU291cmNlKCkgPT0gVW5pY29kZUxhYmVsLk5VTEwgPyAiIiA6IGdldFZhbHVlU291cmNlKCkuZ2V0VmFsdWUodGhpbmcsICIsIiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGdldFZhbHVlU291cmNlKCkgIT0gVW5pY29kZUxhYmVsLk5VTEwpIHZhbHVlID0gIlx0OyAiICsgdmFsdWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gZ2V0TGFiZWxTb3VyY2UodHJ1ZSkgPT0gVW5pY29kZUxhYmVsLk5VTEwgPyAiIiA6IGdldExhYmVsU291cmNlKHRydWUpLmdldFZhbHVlKHRoaW5nLCAiLCIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChsYWJlbC5sZW5ndGgoKSAhPSAwKSBsYWJlbCA9ICIgIiArIGxhYmVsOworICAgICAgICAgICAgICAgIHRvVGFibGUoCisgICAgICAgICAgICAgICAgICAgIGhleCh0aGluZykKKyAgICAgICAgICAgICAgICAgICAgKyB2YWx1ZQorICAgICAgICAgICAgICAgICAgICArIGNvbW1lbnRTZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgKyBsYWJlbAorICAgICAgICAgICAgICAgICAgICArIGluc2VydExpdGVyYWwodGhpbmcpCisgICAgICAgICAgICAgICAgICAgICsgIlx0IgorICAgICAgICAgICAgICAgICAgICArIGdldE5hbWUodGhpbmcpKTsKKyAgICAgICAgICAgICAgICBjb3VudGVyKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb0F0KFZpc2l0b3IuQ29kZVBvaW50UmFuZ2UgdXNpKSB7CisgICAgICAgICAgICBpZiAoIW1lcmdlUmFuZ2VzKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSB1c2kuY29kZXBvaW50OyBjcCA8PSB1c2kuY29kZXBvaW50RW5kOyArK2NwKSB7CisgICAgICAgICAgICAgICAgICAgIHNob3dMaW5lKGNwLCBjcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZi5yZXNldCh1c2kuY29kZXBvaW50LCB1c2kuY29kZXBvaW50RW5kICsgMSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHJmLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBzaG93TGluZShyZi5zdGFydCwgcmYubGltaXQgLSAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2hvd0xpbmUoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgICAgICBTdHJpbmcgbGFiZWwgPSBnZXRMYWJlbFNvdXJjZSh0cnVlKS5nZXRWYWx1ZShzdGFydCwgc2hvcnRMYWJlbCk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZShzdGFydCwgc2hvcnRWYWx1ZSk7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gTlVMTF9WQUxVRSkgcmV0dXJuOworCisgICAgICAgICAgICBjb3VudGVyICs9IGVuZCAtIHN0YXJ0ICsgMTsKKyAgICAgICAgICAgIFN0cmluZyBwbiA9IHByb3BOYW1lOworICAgICAgICAgICAgaWYgKHBuLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBwbiA9ICJcdDsgIiArIHBuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZhbHVlU2l6ZSA+IDApIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICJcdDsgIiArIHZhbHVlOworICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJtYXh3aWR0aCBib2d1cyAiICsgdmFsdWUgKyAiLCIgKyBnZXRWYWx1ZVNvdXJjZSgpLmdldE1heFdpZHRoKHNob3J0VmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYWJlbFNpemUgPiAwKSB7CisgICAgICAgICAgICAgICAgbGFiZWwgPSAiXHQiICsgbGFiZWw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxhYmVsLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm1heHdpZHRoIGJvZ3VzICIgKyBsYWJlbCArICIsICIgKyBnZXRMYWJlbFNvdXJjZSh0cnVlKS5nZXRNYXhXaWR0aChzaG9ydExhYmVsKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBjb3VudCA9ICIiOworICAgICAgICAgICAgaWYgKG1lcmdlUmFuZ2VzICYmIHNob3dDb3VudCkgeworICAgICAgICAgICAgICAgIGlmIChlbmQgPT0gc3RhcnQpIGNvdW50ID0gIlx0IjsKKyAgICAgICAgICAgICAgICBlbHNlIGNvdW50ID0gIlx0IFsiKyBuZi5mb3JtYXQoZW5kIC0gc3RhcnQgKyAxKSsgIl0iOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRvVGFibGUoCisgICAgICAgICAgICAgICAgaGV4KHN0YXJ0LCBlbmQpCisgICAgICAgICAgICAgICAgKyBwbgorICAgICAgICAgICAgICAgICsgdmFsdWUKKyAgICAgICAgICAgICAgICArIGNvbW1lbnRTZXBhcmF0b3IKKyAgICAgICAgICAgICAgICArIGxhYmVsCisgICAgICAgICAgICAgICAgKyBjb3VudAorICAgICAgICAgICAgICAgICsgaW5zZXJ0TGl0ZXJhbChzdGFydCwgZW5kKQorICAgICAgICAgICAgICAgICsgZ2V0TmFtZSgiXHQgIiwgc3RhcnQsIGVuZCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaW5zZXJ0TGl0ZXJhbChTdHJpbmcgdGhpbmcpIHsKKyAgICAgICAgICAgIHJldHVybiAoc2hvd0xpdGVyYWwgPT0gbnVsbCA/ICIiCisgICAgICAgICAgICAgICAgOiAgIiBcdCgiICsgc2hvd0xpdGVyYWwudHJhbnNsaXRlcmF0ZSh0aGluZykgKyAiKSAiKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGluc2VydExpdGVyYWwoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgICAgICByZXR1cm4gKHNob3dMaXRlcmFsID09IG51bGwgPyAiIiA6CisgICAgICAgICAgICAgICAgIiBcdCgiICsgc2hvd0xpdGVyYWwudHJhbnNsaXRlcmF0ZShVVEYxNi52YWx1ZU9mKHN0YXJ0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKChzdGFydCAhPSBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoIi4uIiArIHNob3dMaXRlcmFsLnRyYW5zbGl0ZXJhdGUoVVRGMTYudmFsdWVPZihlbmQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIiKQorICAgICAgICAgICAgICAgICsgIikgIik7CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaW5zZXJ0TGl0ZXJhbChpbnQgY3ApIHsKKyAgICAgICAgICAgIHJldHVybiAoc2hvd0xpdGVyYWwgPT0gbnVsbCA/ICIiCisgICAgICAgICAgICAgICAgOiAgIiBcdCgiICsgc2hvd0xpdGVyYWwudHJhbnNsaXRlcmF0ZShVVEYxNi52YWx1ZU9mKGNwKSkgKyAiKSAiKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIC8qKgorICAgICAqIEl0ZXJhdGUgdGhyb3VnaCBhIHN0cmluZywgYnJlYWtpbmcgYXQgd29yZHMuCisgICAgICogQGF1dGhvciBEYXZpcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE5hbWVJdGVyYXRvciB7CisgICAgICAgIFN0cmluZyBzb3VyY2U7CisgICAgICAgIGludCBwb3NpdGlvbjsKKyAgICAgICAgaW50IHN0YXJ0OworICAgICAgICBpbnQgbGltaXQ7CisKKyAgICAgICAgTmFtZUl0ZXJhdG9yKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlOworICAgICAgICAgICAgdGhpcy5zdGFydCA9IDA7CisgICAgICAgICAgICB0aGlzLmxpbWl0ID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBGaW5kIG5leHQgd29yZCwgaW5jbHVkaW5nIHRyYWlsaW5nIHNwYWNlcworICAgICAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHdvcmQKKyAgICAgICAgICovCisgICAgICAgIFN0cmluZyBuZXh0KCkgeworICAgICAgICAgICAgaWYgKHBvc2l0aW9uID49IGxpbWl0KQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgaW50IHBvcyA9IHNvdXJjZS5pbmRleE9mKCcgJywgcG9zaXRpb24pOworICAgICAgICAgICAgaWYgKHBvcyA8IDAgfHwgcG9zID49IGxpbWl0KQorICAgICAgICAgICAgICAgIHBvcyA9IGxpbWl0OworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHNvdXJjZS5zdWJzdHJpbmcocG9zaXRpb24sIHBvcyk7CisgICAgICAgICAgICBwb3NpdGlvbiA9IHBvcyArIDE7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGludCBmaW5kTWF0Y2hpbmdFbmQoU3RyaW5nIHMxLCBTdHJpbmcgczIpIHsKKyAgICAgICAgICAgIGludCBpID0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgaiA9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAtLWk7IC8vIGRlY3JlbWVudCBib3RoIGJlZm9yZSBjYWxsaW5nIGZ1bmN0aW9uIQorICAgICAgICAgICAgICAgICAgICAtLWo7CisgICAgICAgICAgICAgICAgICAgIGlmIChzMS5jaGFyQXQoaSkgIT0gczIuY2hhckF0KGopKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9IC8vIHJ1biBvZmYgc3RhcnQKKworICAgICAgICAgICAgKytpOyAvLyBjb3VudGVyYWN0IGluY3JlbWVudAorICAgICAgICAgICAgaSA9IHMxLmluZGV4T2YoJyAnLCBpKTsgLy8gbW92ZSBmb3J3YXJkIHRvIHNwYWNlCisgICAgICAgICAgICBpZiAoaSA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gczEubGVuZ3RoKCkgLSBpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBjbGFzcyBSYW5nZUZpbmRlciB7CisgICAgICAgIGludCBzdGFydCwgbGltaXQ7CisgICAgICAgIHByaXZhdGUgaW50IHZlcnlMaW1pdDsKKyAgICAgICAgLy9TdHJpbmcgbGFiZWwsIHZhbHVlOworICAgICAgICB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICB0aGlzLmxpbWl0ID0gc3RhcnQ7CisgICAgICAgICAgICB0aGlzLnZlcnlMaW1pdCA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gbmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChsaW1pdCA+PSB2ZXJ5TGltaXQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsgLy8gc2V0IHRvIGVuZCBvZiBsYXN0CisgICAgICAgICAgICBTdHJpbmcgbGFiZWwgPSBnZXRMYWJlbFNvdXJjZShmYWxzZSkuZ2V0VmFsdWUobGltaXQsIHRydWUpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0VmFsdWUobGltaXQsIHRydWUpOworICAgICAgICAgICAgU3RyaW5nIGJyZWFrZXIgPSBnZXRSYW5nZUJyZWFrU291cmNlKCkuZ2V0VmFsdWUobGltaXQsdHJ1ZSk7CisgICAgICAgICAgICBpZiAoREVCVUcgJiYgbGltaXQgPCAweDdGKSBTeXN0ZW0ub3V0LnByaW50bG4oIkxhYmVsOiAiICsgbGFiZWwgKyAiLCBWYWx1ZTogIiArIHZhbHVlICsgIiwgQnJlYWs6ICIgKyBicmVha2VyKTsKKyAgICAgICAgICAgIGxpbWl0Kys7CisgICAgICAgICAgICBmb3IgKDsgbGltaXQgPCB2ZXJ5TGltaXQ7IGxpbWl0KyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGdldExhYmVsU291cmNlKGZhbHNlKS5nZXRWYWx1ZShsaW1pdCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHYgPSBnZXRWYWx1ZShsaW1pdCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGIgPSBnZXRSYW5nZUJyZWFrU291cmNlKCkuZ2V0VmFsdWUobGltaXQsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChERUJVRyAmJiBsaW1pdCA8IDB4N0YpIFN5c3RlbS5vdXQucHJpbnRsbigiKkxhYmVsOiAiICsgbGFiZWwgKyAiLCBWYWx1ZTogIiArIHZhbHVlICsgIiwgQnJlYWs6ICIgKyBicmVha2VyKTsKKyAgICAgICAgICAgICAgICBpZiAoIWVxdWFsVG8ocywgbGFiZWwpIHx8ICFlcXVhbFRvKHYsIHZhbHVlKSB8fCAhZXF1YWxUbyhiLCBicmVha2VyKSkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBsaW1pdCBpcyB0aGUgZmlyc3QgaXRlbSB0aGF0IGhhcyBhIGRpZmZlcmVudCBsYWJlbCB0aGFuIHNvdXJjZQorICAgICAgICAgICAgLy8gT1IsIHdlIGdvdCB0byB0aGUgZW5kLCBhbmQgbGltaXQgPT0gdmVyeUxpbWl0CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2xlYW4gZXF1YWxUbyhPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChhID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGEuZXF1YWxzKGIpOworICAgIH0KKworICAgIGJvb2xlYW4gc2hvcnRMYWJlbCA9IHRydWU7CisgICAgYm9vbGVhbiBzaG9ydFZhbHVlID0gdHJ1ZTsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJlZml4KCkgeworICAgICAgICByZXR1cm4gcHJlZml4OworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3VmZml4KCkgeworICAgICAgICByZXR1cm4gc3VmZml4OworICAgIH0KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0UHJlZml4KFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgcHJlZml4ID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFN1ZmZpeChTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIHN1ZmZpeCA9IHN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNBYmJyZXZpYXRlZCgpIHsKKyAgICAgICAgcmV0dXJuIGFiYnJldmlhdGVkOworICAgIH0KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0QWJicmV2aWF0ZWQoYm9vbGVhbiBiKSB7CisgICAgICAgIGFiYnJldmlhdGVkID0gYjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIFVuaWNvZGVMYWJlbCBnZXRMYWJlbFNvdXJjZShib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgaWYgKGxhYmVsU291cmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIE1hcCBsYWJlbE1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAvL2xhYmVsTWFwLnB1dCgiTG8iLCJMJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMdSIsIkwmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkx0IiwiTCYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTGwiLCJMJiIpOworICAgICAgICAgICAgbGFiZWxTb3VyY2UgPSBuZXcgVW5pY29kZVByb3BlcnR5LkZpbHRlcmVkUHJvcGVydHkoCisgICAgICAgICAgICAgICAgZ2V0VW5pY29kZVByb3BlcnR5RmFjdG9yeSgpLmdldFByb3BlcnR5KCJHZW5lcmFsX0NhdGVnb3J5IiksCisgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVQcm9wZXJ0eS5NYXBGaWx0ZXIobGFiZWxNYXApCisgICAgICAgICAgICApLnNldEFsbG93VmFsdWVBbGlhc0NvbGxpc2lvbnModHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhYmVsU291cmNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkZXByZWNhdGVkCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFkZEFsbChVbmljb2RlU2V0IHNvdXJjZSwgQ29sbGVjdGlvbiB0YXJnZXQpIHsKKyAgICAgICAgc291cmNlLmFkZEFsbFRvKHRhcmdldCk7CisgICAgfQorCisgICAgLy8gVVRJTElUSUVTCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIGhleCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAiW15cXHUwMDA5XFx1MDAyMC1cXHUwMDdFXFx1MDBBMC1cXHUwMEZGXSBoZXgiKTsKKworICAgIHB1YmxpYyBzdGF0aWMgQnVmZmVyZWRSZWFkZXIgb3BlblVURjhSZWFkZXIoU3RyaW5nIGRpciwgU3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gb3BlblJlYWRlcihkaXIsZmlsZW5hbWUsIlVURi04Iik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBCdWZmZXJlZFJlYWRlciBvcGVuUmVhZGVyKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShkaXIgKyBmaWxlbmFtZSk7CisgICAgICAgIGlmIChTSE9XX0ZJTEVTICYmIGxvZyAhPSBudWxsKSB7CisgICAgICAgICAgICBsb2cucHJpbnRsbigiT3BlbmluZyBGaWxlOiAiCisgICAgICAgICAgICAgICAgKyBmaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgIG5ldyBJbnB1dFN0cmVhbVJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpLAorICAgICAgICAgICAgICAgIGVuY29kaW5nKSwKKyAgICAgICAgICAgIDQqMTAyNCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBQcmludFdyaXRlciBvcGVuVVRGOFdyaXRlcihTdHJpbmcgZGlyLCBTdHJpbmcgZmlsZW5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBvcGVuV3JpdGVyKGRpcixmaWxlbmFtZSwiVVRGLTgiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFByaW50V3JpdGVyIG9wZW5Xcml0ZXIoU3RyaW5nIGRpciwgU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciArIGZpbGVuYW1lKTsKKyAgICAgICAgaWYgKFNIT1dfRklMRVMgJiYgbG9nICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvZy5wcmludGxuKCJDcmVhdGluZyBGaWxlOiAiCisgICAgICAgICAgICAgICAgKyBmaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHBhcmVudE5hbWUgPSBmaWxlLmdldFBhcmVudCgpOworICAgICAgICBpZiAocGFyZW50TmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBGaWxlIHBhcmVudCA9IG5ldyBGaWxlKHBhcmVudE5hbWUpOworICAgICAgICAgICAgcGFyZW50Lm1rZGlycygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSksCisgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nKSwKKyAgICAgICAgICAgICAgICA0KjEwMjQpKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBQcmludFdyaXRlciBnZXRMb2coKSB7CisgICAgICAgIHJldHVybiBsb2c7CisgICAgfQorICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0TG9nKFByaW50V3JpdGVyIHdyaXRlcikgeworICAgICAgICBsb2cgPSB3cml0ZXI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIHNlcGFyYXRvcjsKKyAgICB9CisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRTZXBhcmF0b3IoU3RyaW5nIHN0cmluZykgeworICAgICAgICBzZXBhcmF0b3IgPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0U2hvd0xpdGVyYWwoKSB7CisgICAgICAgIHJldHVybiBzaG93TGl0ZXJhbDsKKyAgICB9CisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRTaG93TGl0ZXJhbChUcmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRvcikgeworICAgICAgICBzaG93TGl0ZXJhbCA9IHRyYW5zbGl0ZXJhdG9yOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvLyA9PT09PSBDT05WRU5JRU5DRVMgPT09PT0KKyAgICBwcml2YXRlIGNsYXNzIEpvaW4gZXh0ZW5kcyBWaXNpdG9yIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGRlcHRoID0gMDsKKyAgICAgICAgU3RyaW5nIGpvaW4gKE9iamVjdCBvKSB7CisgICAgICAgICAgICBvdXRwdXQuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgZG9BdChvKTsKKyAgICAgICAgICAgIHJldHVybiBvdXRwdXQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb0JlZm9yZShPYmplY3QgY29udGFpbmVyLCBPYmplY3QgaXRlbSkgeworICAgICAgICAgICAgKytkZXB0aDsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQocHJlZml4KTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb0FmdGVyKE9iamVjdCBjb250YWluZXIsIE9iamVjdCBpdGVtKSB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHN1ZmZpeCk7CisgICAgICAgICAgICAtLWRlcHRoOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvQmV0d2VlbihPYmplY3QgY29udGFpbmVyLCBPYmplY3QgbGFzdEl0ZW0sIE9iamVjdCBuZXh0SXRlbSkgeworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvU2ltcGxlQXQoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChvICE9IG51bGwpIG91dHB1dC5hcHBlbmQoby50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBsYWJlbAorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0TGFiZWxTb3VyY2UoVW5pY29kZUxhYmVsIGxhYmVsKSB7CisgICAgICAgIGlmIChsYWJlbCA9PSBudWxsKSBsYWJlbCA9IFVuaWNvZGVMYWJlbC5OVUxMOworICAgICAgICBsYWJlbFNvdXJjZSA9IGxhYmVsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBOYW1lTGFibGUgcmVwcmVzZW50aW5nIHRoZSBzb3VyY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZUxhYmVsIGdldE5hbWVTb3VyY2UoKSB7CisgICAgICAgIGlmIChuYW1lU291cmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIG5hbWVTb3VyY2UgPSBuZXcgTmFtZUxhYmVsKGdldFVuaWNvZGVQcm9wZXJ0eUZhY3RvcnkoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWVTb3VyY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGxhYmVsCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXROYW1lU291cmNlKFVuaWNvZGVMYWJlbCBsYWJlbCkgeworICAgICAgICBpZiAobGFiZWwgPT0gbnVsbCkgbGFiZWwgPSBVbmljb2RlTGFiZWwuTlVMTDsKKyAgICAgICAgbmFtZVNvdXJjZSA9IGxhYmVsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlTGFiZWwgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTGFiZWwgZ2V0VmFsdWVTb3VyY2UoKSB7CisgICAgICAgIGlmICh2YWx1ZVNvdXJjZSA9PSBudWxsKSB2YWx1ZVNvdXJjZSA9IFVuaWNvZGVMYWJlbC5OVUxMOworICAgICAgICByZXR1cm4gdmFsdWVTb3VyY2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0VmFsdWUoaW50IGNwLCBib29sZWFuIHNob3J0VmFsdWUpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldFZhbHVlU291cmNlKCkuZ2V0VmFsdWUoY3AsIHNob3J0VmFsdWUpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJldHVybiBOVUxMX1ZBTFVFOworICAgICAgICBpZiAoaGV4VmFsdWUpIHJlc3VsdCA9IGhleChyZXN1bHQsICIgIik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGxhYmVsCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRWYWx1ZVNvdXJjZShVbmljb2RlTGFiZWwgbGFiZWwpIHsKKyAgICAgICAgaWYgKGxhYmVsID09IG51bGwpIGxhYmVsID0gVW5pY29kZUxhYmVsLk5VTEw7CisgICAgICAgIHZhbHVlU291cmNlID0gbGFiZWw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0VmFsdWVTb3VyY2UoU3RyaW5nIGxhYmVsKSB7CisgICAgICAgIHJldHVybiBzZXRWYWx1ZVNvdXJjZShuZXcgVW5pY29kZUxhYmVsLkNvbnN0YW50KGxhYmVsKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0cnVlIGlmIHNob3dDb3VudCBpcyB0cnVlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNTaG93Q291bnQoKSB7CisgICAgICAgIHJldHVybiBzaG93Q291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGIgdHJ1ZSB0byBzaG93IHRoZSBjb3VudAorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0U2hvd0NvdW50KGJvb2xlYW4gYikgeworICAgICAgICBzaG93Q291bnQgPSBiOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQcm9wTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHByb3BOYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFByb3BOYW1lKFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgaWYgKHN0cmluZyA9PSBudWxsKSBzdHJpbmcgPSAiIjsKKyAgICAgICAgcHJvcE5hbWUgPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGEgaGV4VmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0hleFZhbHVlKCkgeworICAgICAgICByZXR1cm4gaGV4VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGIKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldEhleFZhbHVlKGJvb2xlYW4gYikgeworICAgICAgICBoZXhWYWx1ZSA9IGI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIGZ1bGwgdG90YWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZ1bGxUb3RhbCgpIHsKKyAgICAgICAgcmV0dXJuIGZ1bGxUb3RhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gaSBzZXQgdGhlIGZ1bGwgdG90YWwKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldEZ1bGxUb3RhbChpbnQgaSkgeworICAgICAgICBmdWxsVG90YWwgPSBpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBsaW5lIHNlcGFyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGluZVNlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIGxpbmVTZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0TGluZVNlcGFyYXRvcihTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIGxpbmVTZXBhcmF0b3IgPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGVMYWJlbCByZXByZXNlbnRpbmcgdGhlIHJhbmdlIGJyZWFrIHNvdXJjZQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTGFiZWwgZ2V0UmFuZ2VCcmVha1NvdXJjZSgpIHsKKyAgICAgICAgaWYgKHJhbmdlQnJlYWtTb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgTWFwIGxhYmVsTWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIC8vIHJlZmxlY3RzIHRoZSBjb2RlIHBvaW50IHR5cGVzIG9uIHAgMjUKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTG8iLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTG0iLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTHUiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTHQiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTGwiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTW4iLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTWUiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTWMiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTmQiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTmwiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTm8iLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiWnMiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiUGQiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiUHMiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiUGUiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiUGMiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiUG8iLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiUGkiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiUGYiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiU20iLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiU2MiLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiU2siLCAiRyYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiU28iLCAiRyYiKTsKKworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJabCIsICJDZiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJacCIsICJDZiIpOworCisgICAgICAgICAgICByYW5nZUJyZWFrU291cmNlID0KKyAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIC5GaWx0ZXJlZFByb3BlcnR5KAorICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VW5pY29kZVByb3BlcnR5RmFjdG9yeSgpLmdldFByb3BlcnR5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHZW5lcmFsX0NhdGVnb3J5IiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVByb3BlcnR5Lk1hcEZpbHRlcihsYWJlbE1hcCkpCisgICAgICAgICAgICAgICAgICAgIC5zZXRBbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zKHRydWUpOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgIkNuIiwgLy8gPSBPdGhlciwgTm90IEFzc2lnbmVkIDAKKyAgICAgICAgICAgICJDYyIsIC8vID0gT3RoZXIsIENvbnRyb2wgMTUKKyAgICAgICAgICAgICJDZiIsIC8vID0gT3RoZXIsIEZvcm1hdCAxNgorICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5LlVOVVNFRCwgLy8gbWlzc2luZworICAgICAgICAgICAgIkNvIiwgLy8gPSBPdGhlciwgUHJpdmF0ZSBVc2UgMTgKKyAgICAgICAgICAgICJDcyIsIC8vID0gT3RoZXIsIFN1cnJvZ2F0ZSAxOQorICAgICAgICAgICAgKi8KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmFuZ2VCcmVha1NvdXJjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbGFiZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFJhbmdlQnJlYWtTb3VyY2UoVW5pY29kZUxhYmVsIGxhYmVsKSB7CisgICAgICAgIGlmIChsYWJlbCA9PSBudWxsKSBsYWJlbCA9IFVuaWNvZGVMYWJlbC5OVUxMOworICAgICAgICByYW5nZUJyZWFrU291cmNlID0gbGFiZWw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworCS8qKgorCSAqIEByZXR1cm4gUmV0dXJucyB0aGUgZml4TmFtZS4KKwkgKi8KKwlwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0Rml4TmFtZSgpIHsKKwkJcmV0dXJuIGZpeE5hbWU7CisJfQorCS8qKgorCSAqIEBwYXJhbSBmaXhOYW1lIFRoZSBmaXhOYW1lIHRvIHNldC4KKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXRGaXhOYW1lKFRyYW5zbGl0ZXJhdG9yIGZpeE5hbWUpIHsKKwkJdGhpcy5maXhOYW1lID0gZml4TmFtZTsKKwl9CisKKyAgICBwdWJsaWMgVGFiYmVyIGdldFRhYmJlcigpIHsKKyAgICAgICAgcmV0dXJuIHRhYmJlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRUYWJiZXIoVGFiYmVyIHRhYmJlcikgeworICAgICAgICB0aGlzLnRhYmJlciA9IHRhYmJlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc1Nob3dUb3RhbCgpIHsKKyAgICAgICAgcmV0dXJuIHNob3dUb3RhbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTaG93VG90YWwoYm9vbGVhbiBzaG93VG90YWwpIHsKKyAgICAgICAgdGhpcy5zaG93VG90YWwgPSBzaG93VG90YWw7CisgICAgfQorfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0Nhc2VJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ2FzZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFmODIyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0Nhc2VJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTU3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKy8vIGNvcGllZCBmcm9tIHRoZSBUcmFuc2xpdGVyYXRvciBkZW1vCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBJbmNyZW1lbnRhbGx5IHJldHVybnMgdGhlIHNldCBvZiBhbGwgc3RyaW5ncyB0aGF0IGNhc2UtZm9sZCB0byB0aGUgc2FtZSB2YWx1ZS4KKyAqLworcHVibGljIGNsYXNzIENhc2VJdGVyYXRvciB7CisgICAgCisgICAgLy8gdGVzdGluZyBzdHVmZgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSB0cnVlOworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0b05hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiWzpeYXNjaWk6XSBBbnktTmFtZSIpOworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0b0hleCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbOl5hc2NpaTpdIEFueS1IZXgiKTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9IZXgyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIltbXlx1MDAyMS1cdTAwN0ZdLVssXV0gQW55LUhleCIpOworICAgIAorICAgIC8vIGdsb2JhbCB0YWJsZXMgKGNvdWxkIGJlIHByZWNvbXBpbGVkKQorICAgIHByaXZhdGUgc3RhdGljIE1hcCBmcm9tQ2FzZUZvbGQgPSBuZXcgSGFzaE1hcCgpOworICAgIHByaXZhdGUgc3RhdGljIE1hcCB0b0Nhc2VGb2xkID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWF4TGVuZ3RoID0gMDsKKyAgICAKKyAgICAvLyBUaGlzIGV4Y2VwdGlvbiBsaXN0IGlzIGdlbmVyYXRlZCBvbiB0aGUgY29uc29sZSBieSB0dXJuaW5nIG9uIHRoZSBHRU5FUkFURUQgZmxhZywgCisgICAgLy8gd2hpY2ggTVVTVCBiZSBmYWxzZSBmb3Igbm9ybWFsIG9wZXJhdGlvbi4KKyAgICAvLyBPbmNlIHRoZSBsaXN0IGlzIGdlbmVyYXRlZCwgaXQgaXMgcGFzdGVkIGluIGhlcmUuCisgICAgLy8gQSBiaXQgb2YgYSBjbHVkZ2UsIGJ1dCB0aGlzIGJvb3RzdHJhcHBpbmcgaXMgdGhlIGVhc2llc3Qgd2F5IAorICAgIC8vIHRvIGdldCBhcm91bmQgY2VydGFpbiBjb21wbGljYXRpb25zIGluIHRoZSBkYXRhLgorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gR0VORVJBVEUgPSBmYWxzZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gRFVNUCA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gZXhjZXB0aW9uTGlzdCA9IHsKKyAgICAgICAgLy8gYVxOe01PRElGSUVSIExFVFRFUiBSSUdIVCBIQUxGIFJJTkd9CisgICAgICAgIHsiYVx1MDJCRSIsIkFcdTAyQkUiLCJhXHUwMkJFIix9LAorICAgICAgICAvLyBmZgorICAgICAgICB7ImZmIiwiRkYiLCJGZiIsImZGIiwiZmYiLH0sCisgICAgICAgIC8vIGZmaQorICAgICAgICB7ImZmaSIsIkZGSSIsIkZGaSIsIkZmSSIsIkZmaSIsIkZcdUZCMDEiLCJmRkkiLCJmRmkiLCJmZkkiLCJmZmkiLCJmXHVGQjAxIiwiXHVGQjAwSSIsIlx1RkIwMGkiLH0sCisgICAgICAgIC8vIGZmbAorICAgICAgICB7ImZmbCIsIkZGTCIsIkZGbCIsIkZmTCIsIkZmbCIsIkZcdUZCMDIiLCJmRkwiLCJmRmwiLCJmZkwiLCJmZmwiLCJmXHVGQjAyIiwiXHVGQjAwTCIsIlx1RkIwMGwiLH0sCisgICAgICAgIC8vIGZpCisgICAgICAgIHsiZmkiLCJGSSIsIkZpIiwiZkkiLCJmaSIsfSwKKyAgICAgICAgLy8gZmwKKyAgICAgICAgeyJmbCIsIkZMIiwiRmwiLCJmTCIsImZsIix9LAorICAgICAgICAvLyBoXE57Q09NQklOSU5HIE1BQ1JPTiBCRUxPV30KKyAgICAgICAgeyJoXHUwMzMxIiwiSFx1MDMzMSIsImhcdTAzMzEiLH0sCisgICAgICAgIC8vIGlcTntDT01CSU5JTkcgRE9UIEFCT1ZFfQorICAgICAgICB7ImlcdTAzMDciLCJJXHUwMzA3IiwiaVx1MDMwNyIsfSwKKyAgICAgICAgLy8galxOe0NPTUJJTklORyBDQVJPTn0KKyAgICAgICAgeyJqXHUwMzBDIiwiSlx1MDMwQyIsImpcdTAzMEMiLH0sCisgICAgICAgIC8vIHNzCisgICAgICAgIHsic3MiLCJTUyIsIlNzIiwiU1x1MDE3RiIsInNTIiwic3MiLCJzXHUwMTdGIiwiXHUwMTdGUyIsIlx1MDE3RnMiLCJcdTAxN0ZcdTAxN0YiLH0sCisgICAgICAgIC8vIHN0CisgICAgICAgIHsic3QiLCJTVCIsIlN0Iiwic1QiLCJzdCIsIlx1MDE3RlQiLCJcdTAxN0Z0Iix9LAorICAgICAgICAvLyB0XE57Q09NQklOSU5HIERJQUVSRVNJU30KKyAgICAgICAgeyJ0XHUwMzA4IiwiVFx1MDMwOCIsInRcdTAzMDgiLH0sCisgICAgICAgIC8vIHdcTntDT01CSU5JTkcgUklORyBBQk9WRX0KKyAgICAgICAgeyJ3XHUwMzBBIiwiV1x1MDMwQSIsIndcdTAzMEEiLH0sCisgICAgICAgIC8vIHlcTntDT01CSU5JTkcgUklORyBBQk9WRX0KKyAgICAgICAgeyJ5XHUwMzBBIiwiWVx1MDMwQSIsInlcdTAzMEEiLH0sCisgICAgICAgIC8vIFxOe01PRElGSUVSIExFVFRFUiBBUE9TVFJPUEhFfW4KKyAgICAgICAgeyJcdTAyQkNuIiwiXHUwMkJDTiIsIlx1MDJCQ24iLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNBQ1x1MDNCOSIsIlx1MDM4Nlx1MDM0NSIsIlx1MDM4Nlx1MDM5OSIsIlx1MDM4Nlx1MDNCOSIsIlx1MDM4Nlx1MUZCRSIsIlx1MDNBQ1x1MDM0NSIsIlx1MDNBQ1x1MDM5OSIsIlx1MDNBQ1x1MDNCOSIsIlx1MDNBQ1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNBRVx1MDNCOSIsIlx1MDM4OVx1MDM0NSIsIlx1MDM4OVx1MDM5OSIsIlx1MDM4OVx1MDNCOSIsIlx1MDM4OVx1MUZCRSIsIlx1MDNBRVx1MDM0NSIsIlx1MDNBRVx1MDM5OSIsIlx1MDNBRVx1MDNCOSIsIlx1MDNBRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQjFcdTAzNDIiLCJcdTAzOTFcdTAzNDIiLCJcdTAzQjFcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0IxXHUwMzQyXHUwM0I5IiwiXHUwMzkxXHUwMzQyXHUwMzQ1IiwiXHUwMzkxXHUwMzQyXHUwMzk5IiwiXHUwMzkxXHUwMzQyXHUwM0I5IiwiXHUwMzkxXHUwMzQyXHUxRkJFIiwKKyAgICAgICAgICAgICJcdTAzQjFcdTAzNDJcdTAzNDUiLCJcdTAzQjFcdTAzNDJcdTAzOTkiLCJcdTAzQjFcdTAzNDJcdTAzQjkiLCJcdTAzQjFcdTAzNDJcdTFGQkUiLCJcdTFGQjZcdTAzNDUiLAorICAgICAgICAgICAgIlx1MUZCNlx1MDM5OSIsIlx1MUZCNlx1MDNCOSIsIlx1MUZCNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCMVx1MDNCOSIsIlx1MDM5MVx1MDM0NSIsIlx1MDM5MVx1MDM5OSIsIlx1MDM5MVx1MDNCOSIsIlx1MDM5MVx1MUZCRSIsIlx1MDNCMVx1MDM0NSIsIlx1MDNCMVx1MDM5OSIsIlx1MDNCMVx1MDNCOSIsIlx1MDNCMVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I3XHUwMzQyIiwiXHUwMzk3XHUwMzQyIiwiXHUwM0I3XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjdcdTAzNDJcdTAzQjkiLCJcdTAzOTdcdTAzNDJcdTAzNDUiLCJcdTAzOTdcdTAzNDJcdTAzOTkiLCJcdTAzOTdcdTAzNDJcdTAzQjkiLCJcdTAzOTdcdTAzNDJcdTFGQkUiLAorICAgICAgICAgICAgIlx1MDNCN1x1MDM0Mlx1MDM0NSIsIlx1MDNCN1x1MDM0Mlx1MDM5OSIsIlx1MDNCN1x1MDM0Mlx1MDNCOSIsIlx1MDNCN1x1MDM0Mlx1MUZCRSIsIlx1MUZDNlx1MDM0NSIsIlx1MUZDNlx1MDM5OSIsCisgICAgICAgICAgICAiXHUxRkM2XHUwM0I5IiwiXHUxRkM2XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCN1x1MDNCOSIsIlx1MDM5N1x1MDM0NSIsIlx1MDM5N1x1MDM5OSIsIlx1MDM5N1x1MDNCOSIsIlx1MDM5N1x1MUZCRSIsIlx1MDNCN1x1MDM0NSIsIlx1MDNCN1x1MDM5OSIsIlx1MDNCN1x1MDNCOSIsIlx1MDNCN1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDMwMCIsIlx1MDM0NVx1MDMwOFx1MDMwMCIsIlx1MDM5OVx1MDMwOFx1MDMwMCIsIlx1MDNCOVx1MDMwOFx1MDMwMCIsIlx1MUZCRVx1MDMwOFx1MDMwMCIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgQUNVVEUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDMwMSIsIlx1MDM0NVx1MDMwOFx1MDMwMSIsIlx1MDM5OVx1MDMwOFx1MDMwMSIsIlx1MDNCOVx1MDMwOFx1MDMwMSIsIlx1MUZCRVx1MDMwOFx1MDMwMSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I5XHUwMzA4XHUwMzQyIiwiXHUwMzQ1XHUwMzA4XHUwMzQyIiwiXHUwMzk5XHUwMzA4XHUwMzQyIiwiXHUwM0I5XHUwMzA4XHUwMzQyIiwiXHUxRkJFXHUwMzA4XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I5XHUwMzQyIiwiXHUwMzQ1XHUwMzQyIiwiXHUwMzk5XHUwMzQyIiwiXHUwM0I5XHUwMzQyIiwiXHUxRkJFXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgUkhPfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX0KKyAgICAgICAgeyJcdTAzQzFcdTAzMTMiLCJcdTAzQTFcdTAzMTMiLCJcdTAzQzFcdTAzMTMiLCJcdTAzRjFcdTAzMTMiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzMDAiLCJcdTAzQTVcdTAzMDhcdTAzMDAiLCJcdTAzQzVcdTAzMDhcdTAzMDAiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzMDEiLCJcdTAzQTVcdTAzMDhcdTAzMDEiLCJcdTAzQzVcdTAzMDhcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDMwOFx1MDM0MiIsIlx1MDNBNVx1MDMwOFx1MDM0MiIsIlx1MDNDNVx1MDMwOFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfQorICAgICAgICB7Ilx1MDNDNVx1MDMxMyIsIlx1MDNBNVx1MDMxMyIsIlx1MDNDNVx1MDMxMyIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfVxOe0NPTUJJTklORyBHUkFWRSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzAwIiwiXHUwM0E1XHUwMzEzXHUwMzAwIiwiXHUwM0M1XHUwMzEzXHUwMzAwIiwiXHUxRjUwXHUwMzAwIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMTNcdTAzMDEiLCJcdTAzQTVcdTAzMTNcdTAzMDEiLCJcdTAzQzVcdTAzMTNcdTAzMDEiLCJcdTFGNTBcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzQyIiwiXHUwM0E1XHUwMzEzXHUwMzQyIiwiXHUwM0M1XHUwMzEzXHUwMzQyIiwiXHUxRjUwXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0M1XHUwMzQyIiwiXHUwM0E1XHUwMzQyIiwiXHUwM0M1XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0F9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDOVx1MDM0MiIsIlx1MDNBOVx1MDM0MiIsIlx1MDNDOVx1MDM0MiIsIlx1MjEyNlx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQzlcdTAzNDJcdTAzQjkiLCJcdTAzQTlcdTAzNDJcdTAzNDUiLCJcdTAzQTlcdTAzNDJcdTAzOTkiLCJcdTAzQTlcdTAzNDJcdTAzQjkiLCJcdTAzQTlcdTAzNDJcdTFGQkUiLCJcdTAzQzlcdTAzNDJcdTAzNDUiLCJcdTAzQzlcdTAzNDJcdTAzOTkiLCJcdTAzQzlcdTAzNDJcdTAzQjkiLCJcdTAzQzlcdTAzNDJcdTFGQkUiLCJcdTFGRjZcdTAzNDUiLAorICAgICAgICAgICAgIlx1MUZGNlx1MDM5OSIsIlx1MUZGNlx1MDNCOSIsIlx1MUZGNlx1MUZCRSIsIlx1MjEyNlx1MDM0Mlx1MDM0NSIsIlx1MjEyNlx1MDM0Mlx1MDM5OSIsIlx1MjEyNlx1MDM0Mlx1MDNCOSIsIlx1MjEyNlx1MDM0Mlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNDOVx1MDNCOSIsIlx1MDNBOVx1MDM0NSIsIlx1MDNBOVx1MDM5OSIsIlx1MDNBOVx1MDNCOSIsIlx1MDNBOVx1MUZCRSIsIlx1MDNDOVx1MDM0NSIsIlx1MDNDOVx1MDM5OSIsIlx1MDNDOVx1MDNCOSIsIlx1MDNDOVx1MUZCRSIsIlx1MjEyNlx1MDM0NSIsIlx1MjEyNlx1MDM5OSIsIlx1MjEyNlx1MDNCOSIsIlx1MjEyNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1N9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0NFXHUwM0I5IiwiXHUwMzhGXHUwMzQ1IiwiXHUwMzhGXHUwMzk5IiwiXHUwMzhGXHUwM0I5IiwiXHUwMzhGXHUxRkJFIiwiXHUwM0NFXHUwMzQ1IiwiXHUwM0NFXHUwMzk5IiwiXHUwM0NFXHUwM0I5IiwiXHUwM0NFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIfVxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSVdOfQorICAgICAgICB7Ilx1MDU2NVx1MDU4MiIsIlx1MDUzNVx1MDU1MiIsIlx1MDUzNVx1MDU4MiIsIlx1MDU2NVx1MDU1MiIsIlx1MDU2NVx1MDU4MiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIfQorICAgICAgICB7Ilx1MDU3NFx1MDU2NSIsIlx1MDU0NFx1MDUzNSIsIlx1MDU0NFx1MDU2NSIsIlx1MDU3NFx1MDUzNSIsIlx1MDU3NFx1MDU2NSIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgSU5JfQorICAgICAgICB7Ilx1MDU3NFx1MDU2QiIsIlx1MDU0NFx1MDUzQiIsIlx1MDU0NFx1MDU2QiIsIlx1MDU3NFx1MDUzQiIsIlx1MDU3NFx1MDU2QiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgWEVIfQorICAgICAgICB7Ilx1MDU3NFx1MDU2RCIsIlx1MDU0NFx1MDUzRCIsIlx1MDU0NFx1MDU2RCIsIlx1MDU3NFx1MDUzRCIsIlx1MDU3NFx1MDU2RCIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgTk9XfQorICAgICAgICB7Ilx1MDU3NFx1MDU3NiIsIlx1MDU0NFx1MDU0NiIsIlx1MDU0NFx1MDU3NiIsIlx1MDU3NFx1MDU0NiIsIlx1MDU3NFx1MDU3NiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZFV31cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgTk9XfQorICAgICAgICB7Ilx1MDU3RVx1MDU3NiIsIlx1MDU0RVx1MDU0NiIsIlx1MDU0RVx1MDU3NiIsIlx1MDU3RVx1MDU0NiIsIlx1MDU3RVx1MDU3NiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAwXHUwM0I5IiwiXHUxRjAwXHUwMzQ1IiwiXHUxRjAwXHUwMzk5IiwiXHUxRjAwXHUwM0I5IiwiXHUxRjAwXHUxRkJFIiwiXHUxRjA4XHUwMzQ1IiwiXHUxRjA4XHUwMzk5IiwiXHUxRjA4XHUwM0I5IiwiXHUxRjA4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDFcdTAzQjkiLCJcdTFGMDFcdTAzNDUiLCJcdTFGMDFcdTAzOTkiLCJcdTFGMDFcdTAzQjkiLCJcdTFGMDFcdTFGQkUiLCJcdTFGMDlcdTAzNDUiLCJcdTFGMDlcdTAzOTkiLCJcdTFGMDlcdTAzQjkiLCJcdTFGMDlcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDJcdTAzQjkiLCJcdTFGMDJcdTAzNDUiLCJcdTFGMDJcdTAzOTkiLCJcdTFGMDJcdTAzQjkiLCJcdTFGMDJcdTFGQkUiLCJcdTFGMEFcdTAzNDUiLCJcdTFGMEFcdTAzOTkiLCJcdTFGMEFcdTAzQjkiLCJcdTFGMEFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDNcdTAzQjkiLCJcdTFGMDNcdTAzNDUiLCJcdTFGMDNcdTAzOTkiLCJcdTFGMDNcdTAzQjkiLCJcdTFGMDNcdTFGQkUiLCJcdTFGMEJcdTAzNDUiLCJcdTFGMEJcdTAzOTkiLCJcdTFGMEJcdTAzQjkiLCJcdTFGMEJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNFx1MDNCOSIsIlx1MUYwNFx1MDM0NSIsIlx1MUYwNFx1MDM5OSIsIlx1MUYwNFx1MDNCOSIsIlx1MUYwNFx1MUZCRSIsIlx1MUYwQ1x1MDM0NSIsIlx1MUYwQ1x1MDM5OSIsIlx1MUYwQ1x1MDNCOSIsIlx1MUYwQ1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA1XHUwM0I5IiwiXHUxRjA1XHUwMzQ1IiwiXHUxRjA1XHUwMzk5IiwiXHUxRjA1XHUwM0I5IiwiXHUxRjA1XHUxRkJFIiwiXHUxRjBEXHUwMzQ1IiwiXHUxRjBEXHUwMzk5IiwiXHUxRjBEXHUwM0I5IiwiXHUxRjBEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA2XHUwM0I5IiwiXHUxRjA2XHUwMzQ1IiwiXHUxRjA2XHUwMzk5IiwiXHUxRjA2XHUwM0I5IiwiXHUxRjA2XHUxRkJFIiwiXHUxRjBFXHUwMzQ1IiwiXHUxRjBFXHUwMzk5IiwiXHUxRjBFXHUwM0I5IiwiXHUxRjBFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA3XHUwM0I5IiwiXHUxRjA3XHUwMzQ1IiwiXHUxRjA3XHUwMzk5IiwiXHUxRjA3XHUwM0I5IiwiXHUxRjA3XHUxRkJFIiwiXHUxRjBGXHUwMzQ1IiwiXHUxRjBGXHUwMzk5IiwiXHUxRjBGXHUwM0I5IiwiXHUxRjBGXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIwXHUwM0I5IiwiXHUxRjIwXHUwMzQ1IiwiXHUxRjIwXHUwMzk5IiwiXHUxRjIwXHUwM0I5IiwiXHUxRjIwXHUxRkJFIiwiXHUxRjI4XHUwMzQ1IiwiXHUxRjI4XHUwMzk5IiwiXHUxRjI4XHUwM0I5IiwiXHUxRjI4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIxXHUwM0I5IiwiXHUxRjIxXHUwMzQ1IiwiXHUxRjIxXHUwMzk5IiwiXHUxRjIxXHUwM0I5IiwiXHUxRjIxXHUxRkJFIiwiXHUxRjI5XHUwMzQ1IiwiXHUxRjI5XHUwMzk5IiwiXHUxRjI5XHUwM0I5IiwiXHUxRjI5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMlx1MDNCOSIsIlx1MUYyMlx1MDM0NSIsIlx1MUYyMlx1MDM5OSIsIlx1MUYyMlx1MDNCOSIsIlx1MUYyMlx1MUZCRSIsIlx1MUYyQVx1MDM0NSIsIlx1MUYyQVx1MDM5OSIsIlx1MUYyQVx1MDNCOSIsIlx1MUYyQVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjNcdTAzQjkiLCJcdTFGMjNcdTAzNDUiLCJcdTFGMjNcdTAzOTkiLCJcdTFGMjNcdTAzQjkiLCJcdTFGMjNcdTFGQkUiLCJcdTFGMkJcdTAzNDUiLCJcdTFGMkJcdTAzOTkiLCJcdTFGMkJcdTAzQjkiLCJcdTFGMkJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjRcdTAzQjkiLCJcdTFGMjRcdTAzNDUiLCJcdTFGMjRcdTAzOTkiLCJcdTFGMjRcdTAzQjkiLCJcdTFGMjRcdTFGQkUiLCJcdTFGMkNcdTAzNDUiLCJcdTFGMkNcdTAzOTkiLCJcdTFGMkNcdTAzQjkiLCJcdTFGMkNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjVcdTAzQjkiLCJcdTFGMjVcdTAzNDUiLCJcdTFGMjVcdTAzOTkiLCJcdTFGMjVcdTAzQjkiLCJcdTFGMjVcdTFGQkUiLCJcdTFGMkRcdTAzNDUiLCJcdTFGMkRcdTAzOTkiLCJcdTFGMkRcdTAzQjkiLCJcdTFGMkRcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI2XHUwM0I5IiwiXHUxRjI2XHUwMzQ1IiwiXHUxRjI2XHUwMzk5IiwiXHUxRjI2XHUwM0I5IiwiXHUxRjI2XHUxRkJFIiwiXHUxRjJFXHUwMzQ1IiwiXHUxRjJFXHUwMzk5IiwiXHUxRjJFXHUwM0I5IiwiXHUxRjJFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyN1x1MDNCOSIsIlx1MUYyN1x1MDM0NSIsIlx1MUYyN1x1MDM5OSIsIlx1MUYyN1x1MDNCOSIsIlx1MUYyN1x1MUZCRSIsIlx1MUYyRlx1MDM0NSIsIlx1MUYyRlx1MDM5OSIsIlx1MUYyRlx1MDNCOSIsIlx1MUYyRlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYwXHUwM0I5IiwiXHUxRjYwXHUwMzQ1IiwiXHUxRjYwXHUwMzk5IiwiXHUxRjYwXHUwM0I5IiwiXHUxRjYwXHUxRkJFIiwiXHUxRjY4XHUwMzQ1IiwiXHUxRjY4XHUwMzk5IiwiXHUxRjY4XHUwM0I5IiwiXHUxRjY4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjFcdTAzQjkiLCJcdTFGNjFcdTAzNDUiLCJcdTFGNjFcdTAzOTkiLCJcdTFGNjFcdTAzQjkiLCJcdTFGNjFcdTFGQkUiLCJcdTFGNjlcdTAzNDUiLCJcdTFGNjlcdTAzOTkiLCJcdTFGNjlcdTAzQjkiLCJcdTFGNjlcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjJcdTAzQjkiLCJcdTFGNjJcdTAzNDUiLCJcdTFGNjJcdTAzOTkiLCJcdTFGNjJcdTAzQjkiLCJcdTFGNjJcdTFGQkUiLCJcdTFGNkFcdTAzNDUiLCJcdTFGNkFcdTAzOTkiLCJcdTFGNkFcdTAzQjkiLCJcdTFGNkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjNcdTAzQjkiLCJcdTFGNjNcdTAzNDUiLCJcdTFGNjNcdTAzOTkiLCJcdTFGNjNcdTAzQjkiLCJcdTFGNjNcdTFGQkUiLCJcdTFGNkJcdTAzNDUiLCJcdTFGNkJcdTAzOTkiLCJcdTFGNkJcdTAzQjkiLCJcdTFGNkJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2NFx1MDNCOSIsIlx1MUY2NFx1MDM0NSIsIlx1MUY2NFx1MDM5OSIsIlx1MUY2NFx1MDNCOSIsIlx1MUY2NFx1MUZCRSIsIlx1MUY2Q1x1MDM0NSIsIlx1MUY2Q1x1MDM5OSIsIlx1MUY2Q1x1MDNCOSIsIlx1MUY2Q1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY1XHUwM0I5IiwiXHUxRjY1XHUwMzQ1IiwiXHUxRjY1XHUwMzk5IiwiXHUxRjY1XHUwM0I5IiwiXHUxRjY1XHUxRkJFIiwiXHUxRjZEXHUwMzQ1IiwiXHUxRjZEXHUwMzk5IiwiXHUxRjZEXHUwM0I5IiwiXHUxRjZEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY2XHUwM0I5IiwiXHUxRjY2XHUwMzQ1IiwiXHUxRjY2XHUwMzk5IiwiXHUxRjY2XHUwM0I5IiwiXHUxRjY2XHUxRkJFIiwiXHUxRjZFXHUwMzQ1IiwiXHUxRjZFXHUwMzk5IiwiXHUxRjZFXHUwM0I5IiwiXHUxRjZFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY3XHUwM0I5IiwiXHUxRjY3XHUwMzQ1IiwiXHUxRjY3XHUwMzk5IiwiXHUxRjY3XHUwM0I5IiwiXHUxRjY3XHUxRkJFIiwiXHUxRjZGXHUwMzQ1IiwiXHUxRjZGXHUwMzk5IiwiXHUxRjZGXHUwM0I5IiwiXHUxRjZGXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNzBcdTAzQjkiLCJcdTFGNzBcdTAzNDUiLCJcdTFGNzBcdTAzOTkiLCJcdTFGNzBcdTAzQjkiLCJcdTFGNzBcdTFGQkUiLCJcdTFGQkFcdTAzNDUiLCJcdTFGQkFcdTAzOTkiLCJcdTFGQkFcdTAzQjkiLCJcdTFGQkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNzRcdTAzQjkiLCJcdTFGNzRcdTAzNDUiLCJcdTFGNzRcdTAzOTkiLCJcdTFGNzRcdTAzQjkiLCJcdTFGNzRcdTFGQkUiLCJcdTFGQ0FcdTAzNDUiLCJcdTFGQ0FcdTAzOTkiLCJcdTFGQ0FcdTAzQjkiLCJcdTFGQ0FcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY3Q1x1MDNCOSIsIlx1MUY3Q1x1MDM0NSIsIlx1MUY3Q1x1MDM5OSIsIlx1MUY3Q1x1MDNCOSIsIlx1MUY3Q1x1MUZCRSIsIlx1MUZGQVx1MDM0NSIsIlx1MUZGQVx1MDM5OSIsIlx1MUZGQVx1MDNCOSIsIlx1MUZGQVx1MUZCRSIsfSwKKyAgICB9OworICAgIAorICAgIC8vIHRoaXMgaW5pdGlhbGl6ZXMgdGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZWQgdGhlIGNhc2UtZXF1aXZhbGVudHMKKworICAgIHN0YXRpYyB7CisgICAgICAgIAorICAgICAgICAvLyBHYXRoZXIgdXAgdGhlIGV4Y2VwdGlvbnMgaW4gYSBmb3JtIHdlIGNhbiB1c2UKKyAgICAgICAgCisgICAgICAgIGlmICghR0VORVJBVEUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhjZXB0aW9uTGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGV4Y2VwdGlvbiA9IGV4Y2VwdGlvbkxpc3RbaV07CisgICAgICAgICAgICAgICAgU2V0IHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGhhcyB0byBiZSBzb21lIG1ldGhvZCB0byBkbyB0aGUgZm9sbG93aW5nLCBidXQgSSBjYW4ndCBmaW5kIGl0IGluIHRoZSBjb2xsZWN0aW9ucworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZXhjZXB0aW9uLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHMuYWRkKGV4Y2VwdGlvbltqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyb21DYXNlRm9sZC5wdXQoZXhjZXB0aW9uWzBdLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gd2FsayB0aHJvdWdoIGFsbCB0aGUgY2hhcmFjdGVycywgYW5kIGF0IGV2ZXJ5IGNhc2UgZm9sZCByZXN1bHQsCisgICAgICAgIC8vIHB1dCBhIHNldCBvZiBhbGwgdGhlIGNoYXJhY3RlcnMgdGhhdCBtYXAgdG8gdGhhdCByZXN1bHQKKworICAgICAgICBib29sZWFuIGRlZmF1bHRtYXBwaW5nID0gdHJ1ZTsgLy8gZmFsc2UgZm9yIHR1cmtpc2gKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgaW50IGNhdCA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKyAgICAgICAgICAgIGlmIChjYXQgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgY2F0ID09IENoYXJhY3Rlci5QUklWQVRFX1VTRSkgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICBTdHJpbmcgbWFwcGVkID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShjcCwgZGVmYXVsdG1hcHBpbmcpOworICAgICAgICAgICAgaWYgKG1hcHBlZC5lcXVhbHMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1heExlbmd0aCA8IG1hcHBlZC5sZW5ndGgoKSkgbWF4TGVuZ3RoID0gbWFwcGVkLmxlbmd0aCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBoYXZlIGRpZmZlcmVudCBjYXNlIGZvbGRpbmcKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2V0IHMgPSAoU2V0KSBmcm9tQ2FzZUZvbGQuZ2V0KG1hcHBlZCk7CisgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICAgICAgcy5hZGQobWFwcGVkKTsgLy8gYWRkIHRoZSBjYXNlIGZvbGQgcmVzdWx0IGl0c2VsZgorICAgICAgICAgICAgICAgIGZyb21DYXNlRm9sZC5wdXQobWFwcGVkLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMuYWRkKGNwKTsKKyAgICAgICAgICAgIHRvQ2FzZUZvbGQucHV0KGNwLCBtYXBwZWQpOworICAgICAgICAgICAgdG9DYXNlRm9sZC5wdXQobWFwcGVkLCBtYXBwZWQpOyAvLyBhZGQgbWFwcGluZyB0byBzZWxmCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEVtaXQgdGhlIGZpbmFsIGRhdGEKKworICAgICAgICBpZiAoRFVNUCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtYXhMZW5ndGggPSAiICsgbWF4TGVuZ3RoKTsKKworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbmZyb21DYXNlRm9sZDoiKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gZnJvbUNhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIiArIHRvSGV4Mi50cmFuc2xpdGVyYXRlKChTdHJpbmcpa2V5KSArICI6ICIpOworICAgICAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQodG9IZXgyLnRyYW5zbGl0ZXJhdGUoKFN0cmluZylpdDIubmV4dCgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG50b0Nhc2VGb2xkOiIpOworICAgICAgICAgICAgaXQgPSB0b0Nhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSB0b0Nhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZShrZXkpICsgIjogIiArIHRvSGV4Mi50cmFuc2xpdGVyYXRlKHZhbHVlKSk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyBjb252ZXJ0IGFsbCB0aG9zZSBzZXRzIGludG8gbGluZWFyIGFycmF5cworICAgICAgICAvLyBXZSBjYW4ndCBkbyB0aGlzIGluIHBsYWNlIGluIEphdmEsIHNvIG1ha2UgYSB0ZW1wb3JhcnkgdGFyZ2V0IGFycmF5CisgICAgICAgIAorICAgICAgICAvLyBOb3RlOiBUaGlzIGNvdWxkIGJlIHRyYW5zZm9ybWVkIGludG8gYSBzaW5nbGUgYXJyYXksIHdpdGggb2Zmc2V0cyBpbnRvIGl0LgorICAgICAgICAvLyBNaWdodCBiZSBiZXN0IGNob2ljZSBpbiBDLgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1hcCBmcm9tQ2FzZUZvbGQyID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBmcm9tQ2FzZUZvbGQua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgU3RyaW5nW10gdGVtcCA9IG5ldyBTdHJpbmdbcy5zaXplKCldOworICAgICAgICAgICAgcy50b0FycmF5KHRlbXApOworICAgICAgICAgICAgZnJvbUNhc2VGb2xkMi5wdXQoa2V5LCB0ZW1wKTsKKyAgICAgICAgfQorICAgICAgICBmcm9tQ2FzZUZvbGQgPSBmcm9tQ2FzZUZvbGQyOworCisgICAgICAgIC8vIFdlIGhhdmUgcHJvY2Vzc2VkIGV2ZXJ5dGhpbmcsIHNvIHRoZSBpdGVyYXRvciB3aWxsIG5vdyB3b3JrCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgbm9ybWFsbHkgT0ZGLiAKKyAgICAgICAgLy8gSXQgaXMgaGVyZSB0byBnZW5lcmF0ZSAodW5kZXIgdGhlIEdFTkVSQVRFIGZsYWcpIHRoZSBzdGF0aWMgZXhjZXB0aW9uIGxpc3QuCisgICAgICAgIC8vIEl0IG11c3QgYmUgYXQgdGhlIHZlcnkgZW5kIG9mIGluaXRpYWxpemF0aW9uLCBzbyB0aGF0IHRoZSBpdGVyYXRvciBpcyBmdW5jdGlvbmFsLgorICAgICAgICAvLyAoZWFzaWVzdCB0byBkbyBpdCB0aGF0IHdheSkKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoR0VORVJBVEUpIHsKKworICAgICAgICAgICAgLy8gZmlyc3QgZ2V0IHNtYWxsIHNldCBvZiBpdGVtcyB0aGF0IGhhdmUgbXVsdGlwbGUgY2hhcmFjdGVycworICAgICAgICAgICAgCisgICAgICAgICAgICBTZXQgbXVsdGljaGFycyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgICAgICBpdCA9IGZyb21DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KGtleSkgPCAyKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBtdWx0aWNoYXJzLmFkZChrZXkpOworICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBub3cgd2Ugd2lsbCBnbyB0aHJvdWdoIGVhY2ggb2YgdGhlbS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2FzZUl0ZXJhdG9yIGNpID0gbmV3IENhc2VJdGVyYXRvcigpOworICAgICAgICAgICAgaXQgPSBtdWx0aWNoYXJzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGhlcmUgaXMgYSBuYXN0eSBjb21wbGljYXRpb24uIFRha2UgJ2ZmaScgbGlnYXR1cmUuIFdlCisgICAgICAgICAgICAgICAgLy8gY2FuJ3QganVzdCBjbG9zZSBpdCwgc2luY2Ugd2Ugd291bGQgbWlzcyB0aGUgY29tYmluYXRpb24KKyAgICAgICAgICAgICAgICAvLyB0aGF0IGluY2x1ZGVzIHRoZSAnZmknID0+ICJmaSIgbGlnYXR1cmUKKyAgICAgICAgICAgICAgICAvLyBzbyBmaXJzdCBkbyBhIHBhc3MgdGhyb3VnaCwgYW5kIGFkZCBzdWJzdHJpbmcgY29tYmluYXRpb25zCisgICAgICAgICAgICAgICAgLy8gd2UgY2FsbCB0aGlzIGEgJ3BhcnRpYWwgY2xvc3VyZScKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTZXQgcGFydGlhbENsb3N1cmUgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgIHBhcnRpYWxDbG9zdXJlLmFkZChrZXkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChrZXkpID4gMikgeworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBtdWx0aUl0MiA9IG11bHRpY2hhcnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG11bHRpSXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG90aGVyS2V5ID0gKFN0cmluZykgbXVsdGlJdDIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyS2V5Lmxlbmd0aCgpID49IGtleS5sZW5ndGgoKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgbm90IGNvbXBsZXRlbHkgZ2VuZXJhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB3b3JrcyBmb3IgdGhlIGFjdHVhbCBjYXNlZCBzdHVmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgc2hvdWxkIHdvcmsgZm9yIGZ1dHVyZSBjaGFyYWN0ZXJzLCBzaW5jZSB3ZSB3b24ndCBoYXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9yZSBsaWdhdHVyZXMgJiBvdGhlciBvZGRpdGllcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBrZXkuaW5kZXhPZihvdGhlcktleSwgcG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCAwKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kUG9zID0gcG9zICsgb3RoZXJLZXkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2Uga25vdyB3ZSBoYXZlIGEgcHJvcGVyIHN1YnN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyBnZXQgdGhlIGNvbWJpbmF0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNob2ljZXMgPSAoU3RyaW5nW10pIGZyb21DYXNlRm9sZC5nZXQob3RoZXJLZXkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBjaG9pY2VzLmxlbmd0aDsgKytpaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGF0Y2h3b3JrID0ga2V5LnN1YnN0cmluZygwLCBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNob2ljZXNbaWldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGtleS5zdWJzdHJpbmcoZW5kUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlhbENsb3N1cmUuYWRkKHBhdGNod29yayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIG5vdywgZm9yIGVhY2ggdGhpbmcgaW4gdGhlIHBhcnRpYWwgY2xvc3VyZSwgZ2V0IGl0cworICAgICAgICAgICAgICAgIC8vIGNhc2UgY2xvc3VyZSBhbmQgYWRkIGl0IHRvIHRoZSBmaW5hbCByZXN1bHQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU2V0IGNsb3N1cmUgPSBuZXcgVHJlZVNldCgpOyAvLyB0aGlzIHdpbGwgYmUgdGhlIHJlYWwgY2xvc3VyZQorICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHBhcnRpYWxJdCA9IHBhcnRpYWxDbG9zdXJlLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHBhcnRpYWxJdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleTIgPSAoU3RyaW5nKSBwYXJ0aWFsSXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBjaS5yZXNldChrZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjbG9zdXJlLmFkZCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBmb3JtIGNsb3N1cmUKKyAgICAgICAgICAgICAgICAgICAgLypTdHJpbmdbXSBjaG9pY2VzID0gKFN0cmluZ1tdKSBmcm9tQ2FzZUZvbGQuZ2V0KGtleTIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNpLnJlc2V0KGNob2ljZXNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAodGVtcCA9IGNpLm5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zdXJlLmFkZCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBwcmludCBpdCBvdXQsIHNvIHRoYXQgaXQgY2FuIGJlIGN1dCBhbmQgcGFzdGVkIGJhY2sgaW50byB0aGlzIGRvY3VtZW50LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IGNsb3N1cmUuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlx0Ly8gIiArIHRvTmFtZS50cmFuc2xpdGVyYXRlKGtleSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlx0e1wiIiArIHRvSGV4LnRyYW5zbGl0ZXJhdGUoa2V5KSArICJcIiwiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpaXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXCIiICsgdG9IZXgudHJhbnNsaXRlcmF0ZShpdGVtKSArICJcIiwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ9LCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vID09PT09PT09PT09PSBQUklWQVRFIENMQVNTIERBVEEgPT09PT09PT09PT09IAorICAgIAorICAgIC8vIHBpZWNlcyB0aGF0IHdlIHdpbGwgcHV0IHRvZ2V0aGVyCisgICAgLy8gaXMgbm90IGNoYW5nZWQgZHVyaW5nIGl0ZXJhdGlvbgorICAgIHByaXZhdGUgaW50IGNvdW50ID0gMDsKKyAgICBwcml2YXRlIFN0cmluZ1tdW10gdmFyaWFudHM7CisgICAgCisgICAgLy8gc3RhdGUgaW5mb3JtYXRpb24sIGNoYW5nZXMgZHVyaW5nIGl0ZXJhdGlvbgorICAgIHByaXZhdGUgYm9vbGVhbiBkb25lID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnRbXSBjb3VudHM7CisgICAgCisgICAgLy8gaW50ZXJuYWwgYnVmZmVyIGZvciBlZmZpY2llbmN5CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbmV4dEJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT0gIAorCisgICAgLyoqCisgICAgICogUmVzZXQgdG8gZGlmZmVyZW50IHNvdXJjZS4gT25jZSByZXNldCwgdGhlIGl0ZXJhdGlvbiBzdGFydHMgZnJvbSB0aGUgYmVnaW5uaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIHN0cmluZyB0byBnZXQgY2FzZSB2YXJpYW50cyBmb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIAorICAgICAgICAvLyBhbGxvY2F0ZSBhcnJheXMgdG8gc3RvcmUgcGllY2VzCisgICAgICAgIC8vIHVzaW5nIGxlbmd0aCBtaWdodCBiZSBzbGlnaHRseSB0b28gbG9uZywgYnV0IHdlIGRvbid0IGNhcmUgbXVjaAorICAgICAgICAKKyAgICAgICAgY291bnRzID0gbmV3IGludFtzb3VyY2UubGVuZ3RoKCldOworICAgICAgICB2YXJpYW50cyA9IG5ldyBTdHJpbmdbc291cmNlLmxlbmd0aCgpXVtdOworICAgICAgICAKKyAgICAgICAgLy8gd2FsayB0aHJvdWdoIHRoZSBzb3VyY2UsIGFuZCBicmVhayB1cCBpbnRvIHBpZWNlcworICAgICAgICAvLyBlYWNoIHBpZWNlIGJlY29tZXMgYW4gYXJyYXkgb2YgZXF1aXZhbGVudCB2YWx1ZXMKKyAgICAgICAgLy8gVE9ETzogY291bGQgb3B0aW1pemVkIHRoaXMgbGF0ZXIgdG8gY29hbGVzY2UgYWxsIHNpbmdsZSBzdHJpbmcgcGllY2VzCisgICAgICAgIAorICAgICAgICBTdHJpbmcgcGllY2UgPSBudWxsOworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyBpICs9IHBpZWNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGZpbmQgKmxvbmdlc3QqIG1hdGNoaW5nIHBpZWNlCisgICAgICAgICAgICBTdHJpbmcgY2FzZUZvbGQgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBleGFjdGx5IG9uZSBDUAorICAgICAgICAgICAgICAgIHBpZWNlID0gVVRGMTYudmFsdWVPZihzb3VyY2UsIGkpOworICAgICAgICAgICAgICAgIGNhc2VGb2xkID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQocGllY2UpOworICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gaSArIG1heExlbmd0aDsKKyAgICAgICAgICAgICAgICBpZiAobWF4ID4gc291cmNlLmxlbmd0aCgpKSBtYXggPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IG1heDsgaiA+IGk7IC0taikgeworICAgICAgICAgICAgICAgICAgICBwaWVjZSA9IHNvdXJjZS5zdWJzdHJpbmcoaSwgaik7CisgICAgICAgICAgICAgICAgICAgIGNhc2VGb2xkID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQocGllY2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FzZUZvbGQgIT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBpZiB3ZSBmYWlsLCBwaWNrIG9uZSBjb2RlIHBvaW50CisgICAgICAgICAgICBpZiAoY2FzZUZvbGQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHBpZWNlID0gVVRGMTYudmFsdWVPZihzb3VyY2UsIGkpOworICAgICAgICAgICAgICAgIHZhcmlhbnRzW2NvdW50KytdID0gbmV3IFN0cmluZ1tdIHtwaWVjZX07IC8vIHNpbmdsZSBpdGVtIHN0cmluZworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXJpYW50c1tjb3VudCsrXSA9IChTdHJpbmdbXSlmcm9tQ2FzZUZvbGQuZ2V0KGNhc2VGb2xkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXN0YXJ0IHRoZSBpdGVyYXRpb24gZnJvbSB0aGUgYmVnaW5uaW5nLCBidXQgd2l0aCBzYW1lIHNvdXJjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgY291bnRzW2ldID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBjYXNlIHZhcmlhbnRzLgorICAgICAqIEByZXR1cm4gbmV4dCBjYXNlIHZhcmlhbnQuIEVhY2ggdmFyaWFudCB3aWxsIGNhc2UtZm9sZCB0byB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgc291cmNlIHdpbGwuCisgICAgICogV2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGRvbmUpIHJldHVybiBudWxsOworICAgICAgICBpbnQgaTsKKyAgICAgICAgCisgICAgICAgIC8vIFRPRE8gT3B0aW1pemUgc28gd2Uga2VlcCB0aGUgcGllY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHNvIG11Y2ggY29uY2F0ZW5hdGlvbgorICAgICAgICAKKyAgICAgICAgLy8gZ2V0IHRoZSByZXN1bHQsIGEgY29uY2F0ZW5hdGlvbgorICAgICAgICAKKyAgICAgICAgbmV4dEJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBuZXh0QnVmZmVyLmFwcGVuZCh2YXJpYW50c1tpXVtjb3VudHNbaV1dKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZmluZCB0aGUgbmV4dCByaWdodCBzZXQgb2YgcGllY2VzIHRvIGNvbmNhdGVuYXRlCisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSBjb3VudC0xOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgY291bnRzW2ldKys7CisgICAgICAgICAgICBpZiAoY291bnRzW2ldIDwgdmFyaWFudHNbaV0ubGVuZ3RoKSBicmVhazsKKyAgICAgICAgICAgIGNvdW50c1tpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGlmIHdlIGdvIHRvbyBmYXIsIGJhaWwKKyAgICAgICAgCisgICAgICAgIGlmIChpIDwgMCkgeworICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXh0QnVmZmVyLnRvU3RyaW5nKCk7ICAgICAgICAgICAgCisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHRlc3QsIGp1c3QgdG8gc2VlIGhvdyB0aGUgc3R1ZmYgd29ya3MuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZXMgPSB7ImZpc3MiLCAiaFx1MDNhMyJ9OworICAgICAgICBDYXNlSXRlcmF0b3IgY2kgPSBuZXcgQ2FzZUl0ZXJhdG9yKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSB0ZXN0Q2FzZXNbaV07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdGluZzogIiArIHRvTmFtZS50cmFuc2xpdGVyYXRlKGl0ZW0pKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgY2kucmVzZXQoaXRlbSk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRvTmFtZS50cmFuc2xpdGVyYXRlKHRlbXApKTsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbDogIiArIGNvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGdlbmVyYXRlIGEgbGlzdCBvZiBhbGwgY2FzZWxlc3MgY2hhcmFjdGVycyAtLSBjaGFyYWN0ZXJzIHdob3NlCisgICAgICAgIC8vIGNhc2UgY2xvc3VyZSBpcyB0aGVtc2VsdmVzLgorCisgICAgICAgIFVuaWNvZGVTZXQgY2FzZWxlc3MgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICBjaS5yZXNldChjcCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgU3RyaW5nIGZvbGQgPSBudWxsOworICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgZm9sZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgaWYgKCsrY291bnQgPiAxKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjb3VudD09MSAmJiBmb2xkLmVxdWFscyhjcCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlbGVzcy5hZGQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhc2VsZXNzID0gIiArIGNhc2VsZXNzLnRvUGF0dGVybih0cnVlKSk7CisKKyAgICAgICAgVW5pY29kZVNldCBub3RfbGMgPSBuZXcgVW5pY29kZVNldCgiWzpebGM6XSIpOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBhID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgYS5zZXQobm90X2xjKTsKKyAgICAgICAgYS5yZW1vdmVBbGwoY2FzZWxlc3MpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIls6XmxjOl0gLSBjYXNlbGVzcyA9ICIgKyBhLnRvUGF0dGVybih0cnVlKSk7CisKKyAgICAgICAgYS5zZXQoY2FzZWxlc3MpOworICAgICAgICBhLnJlbW92ZUFsbChub3RfbGMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhc2VsZXNzIC0gWzpebGM6XSA9ICIgKyBhLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ29sbGVjdGlvblV0aWxpdGllcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ29sbGVjdGlvblV0aWxpdGllcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYTdjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEKQEAgLTAsMCArMSw1MTAgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworaW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCisvKioKKyAqIFV0aWxpdGllcyB0aGF0IG91Z2h0IHRvIGJlIG9uIGNvbGxlY3Rpb25zLCBidXQgYXJlbid0CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb2xsZWN0aW9uVXRpbGl0aWVzIHsKKwkvKioKKwkgKiBVdGlsaXR5IGxpa2UgQXJyYXlzLmFzTGlzdCgpCisJICovCisJcHVibGljIHN0YXRpYyBNYXAgYXNNYXAoT2JqZWN0W11bXSBzb3VyY2UsIE1hcCB0YXJnZXQsIGJvb2xlYW4gcmV2ZXJzZSkgeworCQlpbnQgZnJvbSA9IDAsIHRvID0gMTsKKwkJaWYgKHJldmVyc2UpIHsKKwkJCWZyb20gPSAxOyB0byA9IDA7CisJCX0KKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoOyArK2kpIHsKKyAgICAJCXRhcmdldC5wdXQoc291cmNlW2ldW2Zyb21dLCBzb3VyY2VbaV1bdG9dKTsKKyAgICAJfQorICAgIAlyZXR1cm4gdGFyZ2V0OworCX0KKwkKKwlwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gYWRkQWxsKEl0ZXJhdG9yIHNvdXJjZSwgQ29sbGVjdGlvbiB0YXJnZXQpIHsKKwkJd2hpbGUgKHNvdXJjZS5oYXNOZXh0KCkpIHsKKwkJCXRhcmdldC5hZGQoc291cmNlLm5leHQoKSk7CisJCX0KKwkJcmV0dXJuIHRhcmdldDsgLy8gZm9yIGNoYWluaW5nCisJfQorCQorCXB1YmxpYyBzdGF0aWMgaW50IHNpemUoSXRlcmF0b3Igc291cmNlKSB7CisJCWludCByZXN1bHQgPSAwOworCQl3aGlsZSAoc291cmNlLmhhc05leHQoKSkgeworCQkJc291cmNlLm5leHQoKTsKKwkJCSsrcmVzdWx0OworCQl9CisJCXJldHVybiByZXN1bHQ7CisJfQorCQorCisJcHVibGljIHN0YXRpYyBNYXAgYXNNYXAoT2JqZWN0W11bXSBzb3VyY2UpIHsKKyAgICAJcmV0dXJuIGFzTWFwKHNvdXJjZSwgbmV3IEhhc2hNYXAoKSwgZmFsc2UpOworCX0KKwkKKwkvKioKKwkgKiBVdGlsaXR5IHRoYXQgb3VnaHQgdG8gYmUgb24gTWFwCisJICovCisJcHVibGljIHN0YXRpYyBNYXAgcmVtb3ZlQWxsKE1hcCBtLCBDb2xsZWN0aW9uIGl0ZW1zVG9SZW1vdmUpIHsKKwkgICAgZm9yIChJdGVyYXRvciBpdCA9IGl0ZW1zVG9SZW1vdmUuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCSAgICAJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJICAgIAltLnJlbW92ZShpdGVtKTsKKwkgICAgfQorCSAgICByZXR1cm4gbTsKKwl9CisJCisJcHVibGljIE9iamVjdCBnZXRGaXJzdChDb2xsZWN0aW9uIGMpIHsKKwkJSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7CisJCWlmICghaXQuaGFzTmV4dCgpKSByZXR1cm4gbnVsbDsKKwkJcmV0dXJuIGl0Lm5leHQoKTsKKwl9CisJCisJcHVibGljIHN0YXRpYyBPYmplY3QgZ2V0QmVzdChDb2xsZWN0aW9uIGMsIENvbXBhcmF0b3IgY29tcCwgaW50IGRpcmVjdGlvbikgeworCQlJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsKKwkJaWYgKCFpdC5oYXNOZXh0KCkpIHJldHVybiBudWxsOworCQlPYmplY3QgYmVzdFNvRmFyID0gaXQubmV4dCgpOworCQl3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisJCQlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkJCWlmIChjb21wLmNvbXBhcmUoaXRlbSwgYmVzdFNvRmFyKSA9PSBkaXJlY3Rpb24pIHsKKwkJCQliZXN0U29GYXIgPSBpdGVtOworCQkJfQorCQl9CisJCXJldHVybiBiZXN0U29GYXI7CisJfQorCQorCXB1YmxpYyBpbnRlcmZhY2UgRmlsdGVyIHsKKwkJYm9vbGVhbiBtYXRjaGVzKE9iamVjdCBvKTsKKwl9CisKKwlwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gcmVtb3ZlQWxsKENvbGxlY3Rpb24gYywgRmlsdGVyIGYpIHsKKwkJZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlpZiAoZi5tYXRjaGVzKGl0ZW0pKSBpdC5yZW1vdmUoKTsKKwkJfQorCQlyZXR1cm4gYzsKKwl9CisJCisJcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIHJldGFpbkFsbChDb2xsZWN0aW9uIGMsIEZpbHRlciBmKSB7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJaWYgKCFmLm1hdGNoZXMoaXRlbSkpIGl0LnJlbW92ZSgpOworCQl9CisJCXJldHVybiBjOworCX0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29udGFpbnNTb21lKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIC8vIGZhc3QgcGF0aHMKKyAgICAgICAgaWYgKGEuc2l6ZSgpID09IDAgfHwgYi5zaXplKCkgPT0gMCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoYSA9PSBiKSByZXR1cm4gdHJ1ZTsgLy8gbXVzdCB0ZXN0IGFmdGVyIHNpemUgdGVzdC4KKworICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFNvcnRlZFNldCAmJiBiIGluc3RhbmNlb2YgU29ydGVkU2V0KSB7CisgICAgICAgICAgICBTb3J0ZWRTZXQgYWEgPSAoU29ydGVkU2V0KSBhOworICAgICAgICAgICAgU29ydGVkU2V0IGJiID0gKFNvcnRlZFNldCkgYjsKKyAgICAgICAgICAgIGFhLmNvbnRhaW5zQWxsKG51bGwpOworICAgICAgICAgICAgQ29tcGFyYXRvciBiYmMgPSBiYi5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBDb21wYXJhdG9yIGFhYyA9IGFhLmNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIGlmIChiYmMgPT0gbnVsbCkgeworICAgICAgICAgICAgCWlmIChhYWMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBhaSA9IGFhLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGJpID0gYmIuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgQ29tcGFyYWJsZSBhbyA9IChDb21wYXJhYmxlKSBhaS5uZXh0KCk7IC8vIHRoZXNlIGFyZSBvaywgc2luY2UgdGhlIHNpemVzIGFyZSAhPSAwCisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlbCA9IGFvLmNvbXBhcmVUbyhibyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVsIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBibyA9IChDb21wYXJhYmxlKSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChiYmMuZXF1YWxzKGEpKSB7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGJpID0gYmIuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgYW8gPSBhaS5uZXh0KCk7IC8vIHRoZXNlIGFyZSBvaywgc2luY2UgdGhlIHNpemVzIGFyZSAhPSAwCisgICAgICAgICAgICAgICAgT2JqZWN0IGJvID0gYmkubmV4dCgpOworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhYWMuY29tcGFyZShhbywgYm8pOworICAgICAgICAgICAgICAgICAgICBpZiAocmVsIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbCA+IDApICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAJZm9yIChJdGVyYXRvciBpdCA9IGEuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgIAkJaWYgKGIuY29udGFpbnMoaXQubmV4dCgpKSkgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29udGFpbnNBbGwoQ29sbGVjdGlvbiBhLCBDb2xsZWN0aW9uIGIpIHsKKyAgICAgICAgLy8gZmFzdCBwYXRocworICAgICAgICBpZiAoYSA9PSBiKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGIuc2l6ZSgpID09IDApIHJldHVybiB0cnVlOworICAgICAgICBpZiAoYS5zaXplKCkgPT0gMCkgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChhIGluc3RhbmNlb2YgU29ydGVkU2V0ICYmIGIgaW5zdGFuY2VvZiBTb3J0ZWRTZXQpIHsKKyAgICAgICAgICAgIFNvcnRlZFNldCBhYSA9IChTb3J0ZWRTZXQpIGE7CisgICAgICAgICAgICBTb3J0ZWRTZXQgYmIgPSAoU29ydGVkU2V0KSBiOworICAgICAgICAgICAgQ29tcGFyYXRvciBiYmMgPSBiYi5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBDb21wYXJhdG9yIGFhYyA9IGFhLmNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIGlmIChiYmMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChhYWMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBhaSA9IGFhLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGJpID0gYmIuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgQ29tcGFyYWJsZSBhbyA9IChDb21wYXJhYmxlKSBhaS5uZXh0KCk7IC8vIHRoZXNlIGFyZSBvaywgc2luY2UgdGhlIHNpemVzIGFyZSAhPSAwCisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlbCA9IGFvLmNvbXBhcmVUbyhibyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVsID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJpLmhhc05leHQoKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBibyA9IChDb21wYXJhYmxlKSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IChDb21wYXJhYmxlKSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChiYmMuZXF1YWxzKGEpKSB7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGJpID0gYmIuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgYW8gPSBhaS5uZXh0KCk7IC8vIHRoZXNlIGFyZSBvaywgc2luY2UgdGhlIHNpemVzIGFyZSAhPSAwCisgICAgICAgICAgICAgICAgT2JqZWN0IGJvID0gYmkubmV4dCgpOworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhYWMuY29tcGFyZShhbywgYm8pOworICAgICAgICAgICAgICAgICAgICBpZiAocmVsID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGEuY29udGFpbnNBbGwoYik7CisgICAgfQorCQorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc05vbmUoQ29sbGVjdGlvbiBhLCBDb2xsZWN0aW9uIGIpIHsKKyAgICAgICAgcmV0dXJuICFjb250YWluc1NvbWUoYSwgYik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVzZWQgZm9yIHJlc3VsdHMgb2YgZ2V0Q29udGFpbm1lbnRSZWxhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIEFMTF9FTVBUWSA9IDAsCisgICAgICAgIE5PVF9BX1NVUEVSU0VUX0IgPSAxLAorICAgICAgICBOT1RfQV9ESVNKT0lOVF9CID0gMiwKKyAgICAgICAgTk9UX0FfU1VCU0VUX0IgPSA0LAorICAgICAgICBOT1RfQV9FUVVBTFNfQiA9IE5PVF9BX1NVQlNFVF9CIHwgTk9UX0FfU1VQRVJTRVRfQiwKKyAgICAgICAgQV9QUk9QRVJfU1VCU0VUX09GX0IgPSBOT1RfQV9ESVNKT0lOVF9CIHwgTk9UX0FfU1VQRVJTRVRfQiwKKyAgICAgICAgQV9QUk9QRVJfU1VQRVJTRVRfQiA9IE5PVF9BX1NVQlNFVF9CIHwgTk9UX0FfRElTSk9JTlRfQiwKKyAgICAgICAgQV9QUk9QRVJfT1ZFUkxBUFNfQiA9IE5PVF9BX1NVQlNFVF9CIHwgTk9UX0FfRElTSk9JTlRfQiB8IE5PVF9BX1NVUEVSU0VUX0I7CisgICAgCisgICAgLyoqCisgICAgICogQXNzZXNzZXMgYWxsIHRoZSBwb3NzaWJsZSBjb250YWlubWVudCByZWxhdGlvbnMgYmV0d2VlbiBjb2xsZWN0aW9ucyBBIGFuZCBCIHdpdGggb25lIGNhbGwuPGJyPgorICAgICAqIFJldHVybnMgYW4gaW50IHdpdGggYml0cyBzZXQsIGFjY29yZGluZyB0byBhICJWZW5uIERpYWdyYW0iIHZpZXcgb2YgQSB2cyBCLjxicj4KKyAgICAgKiBOT1RfQV9TVVBFUlNFVF9COiBhIC0gYiAhPSB7fTxicj4KKyAgICAgKiBOT1RfQV9ESVNKT0lOVF9COiBhICogYiAhPSB7fSAgLy8gKiBpcyBpbnRlcnNlY3RzPGJyPgorICAgICAqIE5PVF9BX1NVQlNFVF9COiBiIC0gYSAhPSB7fTxicj4KKyAgICAgKiBUaHVzIHRoZSBiaXRzIGNhbiBiZSB1c2VkIHRvIGdldCB0aGUgZm9sbG93aW5nIHJlbGF0aW9uczo8YnI+CisgICAgICogZm9yIEFfU1VQRVJTRVRfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9TVVBFUlNFVF9CKSA9PSAwPGJyPgorICAgICAqIGZvciBBX1NVQlNFVF9CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX1NVQlNFVF9CKSA9PSAwPGJyPgorICAgICAqIGZvciBBX0VRVUFMU19CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX0VRVUFMU19CKSA9PSAwPGJyPgorICAgICAqIGZvciBBX0RJU0pPSU5UX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfRElTSk9JTlRfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9PVkVSTEFQU19CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX0RJU0pPSU5UX0IpICE9IDA8YnI+CisgICAgICovCisgICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvbnRhaW5tZW50UmVsYXRpb24oQ29sbGVjdGlvbiBhLCBDb2xsZWN0aW9uIGIpIHsKKyAgICAgICAgaWYgKGEuc2l6ZSgpID09IDApIHsKKyAgICAgICAgCXJldHVybiAoYi5zaXplKCkgPT0gMCkgPyBBTExfRU1QVFkgOiBOT1RfQV9TVVBFUlNFVF9COworICAgICAgICB9IGVsc2UgaWYgKGIuc2l6ZSgpID09IDApIHsKKyAgICAgICAgCXJldHVybiBOT1RfQV9TVUJTRVRfQjsKKyAgICAgICAgfQorICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgLy8gV0FSTklORzogb25lIG1pZ2h0IHRoaW5rIHRoYXQgdGhlIGZvbGxvd2luZyBjYW4gYmUgc2hvcnQtY2lyY3VpdGVkLCBieSBsb29raW5nIGF0CisgICAgICAgIC8vIHRoZSBzaXplcyBvZiBhIGFuZCBiLiBIb3dldmVyLCB0aGlzIHdvdWxkIGZhaWwgaW4gZ2VuZXJhbCwgd2hlcmUgYSBkaWZmZXJlbnQgY29tcGFyYXRvciBpcyBiZWluZworICAgICAgICAvLyB1c2VkIGluIHRoZSB0d28gY29sbGVjdGlvbnMuIFVuZm9ydHVuYXRlbHksIHRoZXJlIGlzIG5vIGZhaWxzYWZlIHdheSB0byB0ZXN0IGZvciB0aGF0LgorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYS5pdGVyYXRvcigpOyByZXN1bHQgIT0gNiAmJiBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICByZXN1bHQgfD0gKGIuY29udGFpbnMoaXQubmV4dCgpKSkgPyBOT1RfQV9ESVNKT0lOVF9CIDogTk9UX0FfU1VCU0VUX0I7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGIuaXRlcmF0b3IoKTsgKHJlc3VsdCAmIDMpICE9IDMgJiYgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgcmVzdWx0IHw9IChhLmNvbnRhaW5zKGl0Lm5leHQoKSkpID8gTk9UX0FfRElTSk9JTlRfQiA6IE5PVF9BX1NVUEVSU0VUX0I7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKwlwdWJsaWMgc3RhdGljIFN0cmluZyByZW1vdmUoU3RyaW5nIHNvdXJjZSwgVW5pY29kZVNldCByZW1vdmFscykgeworCQlTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCQlpbnQgY3A7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKwkJCWNwID0gVVRGMTYuY2hhckF0KHNvdXJjZSwgaSk7CisJCQlpZiAoIXJlbW92YWxzLmNvbnRhaW5zKGNwKSkgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY3ApOworCQl9CisJCXJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKwl9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJldHR5UHJpbnQoVW5pY29kZVNldCB1c2V0LCBDb21wYXJhdG9yIGNvbXAsIENvbXBhcmF0b3Igc3BhY2VDb21wYXJhdG9yLCBib29sZWFuIGNvbXByZXNzUmFuZ2VzKSB7CisgICAgICAgIEFwcGVuZGVyIHJlc3VsdCA9IG5ldyBBcHBlbmRlcihjb21wcmVzc1Jhbmdlcywgc3BhY2VDb21wYXJhdG9yKTsKKyAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgY29tcGFyaXNvbiBzZXBhcmF0ZXMgYWxsIHN0cmluZ3MsIGV2ZW4gY2Fub25pY2FsbHkgZXF1aXZhbGVudCBvbmVzCisgICAgICAgIENvbXBhcmF0b3IgY29tcDIgPSBuZXcgTXVsdGlDb21wYXJhdG9yKG5ldyBDb21wYXJhdG9yW10ge2NvbXAsIG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKHRydWUsZmFsc2UsMCl9KTsKKyAgICAgICAgU2V0IG9yZGVyaW5nID0gbmV3IFRyZWVTZXQoY29tcDIpOworICAgICAgICBmb3IgKFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IodXNldCk7IGl0Lm5leHQoKTspIHsKKyAgICAgICAgICAgIG9yZGVyaW5nLmFkZChpdC5nZXRTdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiWyIpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gb3JkZXJpbmcuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZFVuaWNvZGVTZXRJdGVtKChTdHJpbmcpIGl0Lm5leHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmZsdXNoTGFzdCgpOworICAgICAgICByZXN1bHQuYXBwZW5kKCJdIik7CisgICAgICAgIFN0cmluZyBzcmVzdWx0ID0gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIFVuaWNvZGVTZXQgZG91YmxlQ2hlY2sgPSBuZXcgVW5pY29kZVNldChzcmVzdWx0KTsKKyAgICAgICAgaWYgKCF1c2V0LmVxdWFscyhkb3VibGVDaGVjaykpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkZhaWx1cmUgdG8gcm91bmQtdHJpcCBpbiBwcmV0dHktcHJpbnQiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3Jlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQXBwZW5kZXIgeworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZmlyc3QgPSB0cnVlOworICAgICAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciB0YXJnZXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHByaXZhdGUgaW50IGZpcnN0Q29kZVBvaW50ID0gLTI7CisgICAgICAgIHByaXZhdGUgaW50IGxhc3RDb2RlUG9pbnQgPSAtMjsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGNvbXByZXNzUmFuZ2VzOworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3Igc3BhY2VDb21wOworICAgICAgICBwcml2YXRlIFN0cmluZyBsYXN0U3RyaW5nID0gIiI7CisKKyAgICAgICAgcHVibGljIEFwcGVuZGVyKGJvb2xlYW4gY29tcHJlc3NSYW5nZXMsIENvbXBhcmF0b3Igc3BhY2VDb21wKSB7CisgICAgICAgICAgICB0aGlzLmNvbXByZXNzUmFuZ2VzID0gY29tcHJlc3NSYW5nZXM7CisgICAgICAgICAgICB0aGlzLnNwYWNlQ29tcCA9IHNwYWNlQ29tcDsKKyAgICAgICAgfQorICAgICAgICBBcHBlbmRlciBhcHBlbmRVbmljb2RlU2V0SXRlbShTdHJpbmcgcykgeworICAgICAgICAgICAgaW50IGNwOworICAgICAgICAgICAgaWYgKFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbihzLCAxKSkgeworICAgICAgICAgICAgICAgIGZsdXNoTGFzdCgpOworICAgICAgICAgICAgICAgIGFkZFNwYWNlKHMpOworICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoInsiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmRRdW90ZWQoY3AgPSBVVEYxNi5jaGFyQXQocywgaSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCJ9Iik7CisgICAgICAgICAgICAgICAgbGFzdFN0cmluZyA9IHM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICghY29tcHJlc3NSYW5nZXMpCisgICAgICAgICAgICAgICAgICAgIGZsdXNoTGFzdCgpOworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIDApOworICAgICAgICAgICAgICAgIGlmIChjcCA9PSBsYXN0Q29kZVBvaW50ICsgMSkgeworICAgICAgICAgICAgICAgICAgICBsYXN0Q29kZVBvaW50ID0gY3A7IC8vIGNvbnRpbnVlIHJhbmdlCisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gc3RhcnQgcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgZmx1c2hMYXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0Q29kZVBvaW50ID0gbGFzdENvZGVQb2ludCA9IGNwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiAKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBhZGRTcGFjZShTdHJpbmcgcykgeworICAgICAgICAgICAgaWYgKGZpcnN0KSB7CisgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3BhY2VDb21wLmNvbXBhcmUocywgbGFzdFN0cmluZykgIT0gMCkgeworICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoVVRGMTYuY2hhckF0KHMsMCkpOworCSAgICAgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXIuTk9OX1NQQUNJTkdfTUFSSyB8fCB0eXBlID09IFVDaGFyYWN0ZXIuRU5DTE9TSU5HX01BUkspIHsKKwkgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgnICcpOworCSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGZsdXNoTGFzdCgpIHsKKyAgICAgICAgICAgIGlmIChsYXN0Q29kZVBvaW50ID49IDApIHsKKyAgICAgICAgICAgICAgICBhZGRTcGFjZShVVEYxNi52YWx1ZU9mKGZpcnN0Q29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0Q29kZVBvaW50ICE9IGxhc3RDb2RlUG9pbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kUXVvdGVkKGZpcnN0Q29kZVBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChmaXJzdENvZGVQb2ludCArIDEgPT0gbGFzdENvZGVQb2ludCA/ICcgJyA6ICctJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFwcGVuZFF1b3RlZChsYXN0Q29kZVBvaW50KTsKKyAgICAgICAgICAgICAgICBsYXN0U3RyaW5nID0gVVRGMTYudmFsdWVPZihsYXN0Q29kZVBvaW50KTsKKyAgICAgICAgICAgICAgICBmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSAtMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBBcHBlbmRlciBhcHBlbmRRdW90ZWQoaW50IGNvZGVQb2ludCkgeworICAgICAgICAgICAgc3dpdGNoIChjb2RlUG9pbnQpIHsKKyAgICAgICAgICAgIGNhc2UgJ1snOiAvLyBTRVRfT1BFTjoKKyAgICAgICAgICAgIGNhc2UgJ10nOiAvLyBTRVRfQ0xPU0U6CisgICAgICAgICAgICBjYXNlICctJzogLy8gSFlQSEVOOgorICAgICAgICAgICAgY2FzZSAnXic6IC8vIENPTVBMRU1FTlQ6CisgICAgICAgICAgICBjYXNlICcmJzogLy8gSU5URVJTRUNUSU9OOgorICAgICAgICAgICAgY2FzZSAnXFwnOiAvL0JBQ0tTTEFTSDoKKyAgICAgICAgICAgIGNhc2UgJ3snOgorICAgICAgICAgICAgY2FzZSAnfSc6CisgICAgICAgICAgICBjYXNlICckJzoKKyAgICAgICAgICAgIGNhc2UgJzonOgorICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIEVzY2FwZSB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNvZGVQb2ludCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQodGFyZ2V0LCBjb2RlUG9pbnQpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICBBcHBlbmRlciBhcHBlbmQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIHRhcmdldC5hcHBlbmQocyk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHRhcmdldC50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBNdWx0aUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHJpdmF0ZSBDb21wYXJhdG9yW10gY29tcGFyYXRvcnM7CisgICAgCisgICAgICAgIHB1YmxpYyBNdWx0aUNvbXBhcmF0b3IgKENvbXBhcmF0b3JbXSBjb21wYXJhdG9ycykgeworICAgICAgICAgICAgdGhpcy5jb21wYXJhdG9ycyA9IGNvbXBhcmF0b3JzOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIExleGlncmFwaGljIGNvbXBhcmUuIFJldHVybnMgdGhlIGZpcnN0IGRpZmZlcmVuY2UKKyAgICAgICAgICogQHJldHVybiB6ZXJvIGlmIGVxdWFsLiBPdGhlcndpc2UgKy8tIChpKzEpIAorICAgICAgICAgKiB3aGVyZSBpIGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY29tcGFyYXRvciBmaW5kaW5nIGEgZGlmZmVyZW5jZQorICAgICAgICAgKiBAc2VlIGphdmEudXRpbC5Db21wYXJhdG9yI2NvbXBhcmUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYXJnMCwgT2JqZWN0IGFyZzEpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29tcGFyYXRvcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gY29tcGFyYXRvcnNbaV0uY29tcGFyZShhcmcwLCBhcmcxKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPiAwKSByZXR1cm4gaSsxOworICAgICAgICAgICAgICAgIHJldHVybiAtKGkrMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIFVuaWNvZGUgc2V0IHRvIGZsYXR0ZW4gdGhlIHN0cmluZ3MuIEVnIFthYmN7ZGF9XSA9PiBbYWJjZF0KKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgZm9yIGNoYWluaW5nLgorICAgICAqIEBwYXJhbSBleGVtcGxhcjEKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisJcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGZsYXR0ZW4oVW5pY29kZVNldCBleGVtcGxhcjEpIHsKKwkJVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworCQlib29sZWFuIGdvdFN0cmluZyA9IGZhbHNlOworCQlmb3IgKFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoZXhlbXBsYXIxKTsgaXQubmV4dFJhbmdlKCk7KSB7CisJCQlpZiAoaXQuY29kZXBvaW50ID09IGl0LklTX1NUUklORykgeworCQkJCXJlc3VsdC5hZGRBbGwoaXQuc3RyaW5nKTsKKwkJCQlnb3RTdHJpbmcgPSB0cnVlOworCQkJfSBlbHNlIHsKKwkJCQlyZXN1bHQuYWRkKGl0LmNvZGVwb2ludCwgaXQuY29kZXBvaW50RW5kKTsKKwkJCX0KKwkJfQorCQlpZiAoZ290U3RyaW5nKSBleGVtcGxhcjEuc2V0KHJlc3VsdCk7CisJCXJldHVybiBleGVtcGxhcjE7CisJfQorCisJLyoqCisJICogRm9yIHByb2R1Y2luZyBmaWx0ZXJlZCBpdGVyYXRvcnMKKwkgKi8KKwlwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIEZpbHRlcmVkSXRlcmF0b3IgaW1wbGVtZW50cyBJdGVyYXRvciB7CisJCXByaXZhdGUgSXRlcmF0b3IgYmFzZUl0ZXJhdG9yOworCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgRU1QVFkgPSBuZXcgT2JqZWN0KCk7CisJCXByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCBET05FID0gbmV3IE9iamVjdCgpOworCQlwcml2YXRlIE9iamVjdCBuZXh0T2JqZWN0ID0gRU1QVFk7CisJCXB1YmxpYyBGaWx0ZXJlZEl0ZXJhdG9yIHNldChJdGVyYXRvciBiYXNlSXRlcmF0b3IpIHsKKwkJCXRoaXMuYmFzZUl0ZXJhdG9yID0gYmFzZUl0ZXJhdG9yOworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIHZvaWQgcmVtb3ZlKCkgeworCQkJdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJEb2Vzbid0IHN1cHBvcnQgcmVtb3ZhbCIpOworCQl9CisJCXB1YmxpYyBPYmplY3QgbmV4dCgpIHsKKwkJCU9iamVjdCByZXN1bHQgPSBuZXh0T2JqZWN0OworCQkJbmV4dE9iamVjdCA9IEVNUFRZOworCQkJcmV0dXJuIHJlc3VsdDsKKwkJfQkJCisJCXB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CisJCQlpZiAobmV4dE9iamVjdCA9PSBET05FKSByZXR1cm4gZmFsc2U7CisJCQlpZiAobmV4dE9iamVjdCAhPSBFTVBUWSkgcmV0dXJuIHRydWU7CisJCQl3aGlsZSAoYmFzZUl0ZXJhdG9yLmhhc05leHQoKSkgeworCQkJCW5leHRPYmplY3QgPSBiYXNlSXRlcmF0b3IubmV4dCgpOworCQkJCWlmIChpc0luY2x1ZGVkKG5leHRPYmplY3QpKSB7CisJCQkJCXJldHVybiB0cnVlOworCQkJCX0KKwkJCX0KKwkJCW5leHRPYmplY3QgPSBET05FOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCWFic3RyYWN0IHB1YmxpYyBib29sZWFuIGlzSW5jbHVkZWQoT2JqZWN0IGl0ZW0pOworCX0KKwkKKwlwdWJsaWMgc3RhdGljIGNsYXNzIFByZWZpeEl0ZXJhdG9yIGV4dGVuZHMgRmlsdGVyZWRJdGVyYXRvciB7CisJCXByaXZhdGUgU3RyaW5nIHByZWZpeDsKKwkJcHVibGljIFByZWZpeEl0ZXJhdG9yIHNldChJdGVyYXRvciBiYXNlSXRlcmF0b3IsIFN0cmluZyBwcmVmaXgpIHsKKwkJCXN1cGVyLnNldChiYXNlSXRlcmF0b3IpOworCQkJdGhpcy5wcmVmaXggPSBwcmVmaXg7CisJCQlyZXR1cm4gdGhpczsKKwkJfQorCQlwdWJsaWMgYm9vbGVhbiBpc0luY2x1ZGVkKE9iamVjdCBpdGVtKSB7CisJCQlyZXR1cm4gKChTdHJpbmcpaXRlbSkuc3RhcnRzV2l0aChwcmVmaXgpOworCQl9CisJfQorCQorCXB1YmxpYyBzdGF0aWMgY2xhc3MgUmVnZXhJdGVyYXRvciBleHRlbmRzIEZpbHRlcmVkSXRlcmF0b3IgeworCQlwcml2YXRlIE1hdGNoZXIgbWF0Y2hlcjsKKwkJcHVibGljIFJlZ2V4SXRlcmF0b3Igc2V0KEl0ZXJhdG9yIGJhc2VJdGVyYXRvciwgTWF0Y2hlciBtYXRjaGVyKSB7CisJCQlzdXBlci5zZXQoYmFzZUl0ZXJhdG9yKTsKKwkJCXRoaXMubWF0Y2hlciA9IG1hdGNoZXI7CisJCQlyZXR1cm4gdGhpczsKKwkJfQorCQlwdWJsaWMgYm9vbGVhbiBpc0luY2x1ZGVkKE9iamVjdCBpdGVtKSB7CisJCQlyZXR1cm4gbWF0Y2hlci5yZXNldCgoU3RyaW5nKWl0ZW0pLm1hdGNoZXMoKTsKKwkJfQorCX0KKworfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbXBhY3RBcnJheVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbXBhY3RBcnJheVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzdhNzYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ29tcGFjdEFycmF5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Db21wYWN0Qnl0ZUFycmF5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdENoYXJBcnJheTsKKworLyoqCisgKiBAc2luY2UgcmVsZWFzZSAyLjIKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbXBhY3RBcnJheVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayAKK3sgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgbmV3IENvbXBhY3RBcnJheVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCeXRlQXJyYXlDb3ZlcmFnZSgpIHsKKyAgICBDb21wYWN0Qnl0ZUFycmF5IGNiYSA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KCk7CisgICAgY2JhLnNldEVsZW1lbnRBdCgoY2hhcikweDUsIChieXRlKTB4ZGYpOworICAgIGNiYS5zZXRFbGVtZW50QXQoKGNoYXIpMHgxMDUsIChieXRlKTB4ZGYpOworICAgIGNiYS5zZXRFbGVtZW50QXQoKGNoYXIpMHgyMDUsIChieXRlKTB4ZGYpOworICAgIGNiYS5zZXRFbGVtZW50QXQoKGNoYXIpMHgzMDUsIChieXRlKTB4ZGYpOworICAgIENvbXBhY3RCeXRlQXJyYXkgY2JhMiA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KChieXRlKTB4ZGYpOworICAgIGlmIChjYmEuZXF1YWxzKGNiYTIpKSB7CisgICAgICAgIGVycmxuKCJ1bmVxdWFsIGJ5dGUgYXJyYXlzIGNvbXBhcmUgZXF1YWwiKTsKKyAgICB9CisgICAgQ29tcGFjdEJ5dGVBcnJheSBjYmEzID0gKENvbXBhY3RCeXRlQXJyYXkpY2JhLmNsb25lKCk7CisKKyAgICBsb2dsbigiZXF1YWxzIG51bGw6ICIgKyBjYmEuZXF1YWxzKG51bGwpKTsKKyAgICBsb2dsbigiZXF1YWxzIHNlbGY6ICIgKyBjYmEuZXF1YWxzKGNiYSkpOworICAgIGxvZ2xuKCJlcXVhbHMgY2xvbmU6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKyAgICBsb2dsbigiZXF1YWxzIGJvZ3VzOiAiICsgY2JhLmVxdWFscyhuZXcgT2JqZWN0KCkpKTsKKyAgICBsb2dsbigiaGFzaDogIiArIGNiYS5oYXNoQ29kZSgpKTsKKworICAgIGNiYS5jb21wYWN0KHRydWUpOworICAgIGNiYS5jb21wYWN0KHRydWUpOworCisgICAgY2hhcltdIHhhID0gY2JhLmdldEluZGV4QXJyYXkoKTsKKyAgICBieXRlW10gdmEgPSBjYmEuZ2V0VmFsdWVBcnJheSgpOworICAgIENvbXBhY3RCeXRlQXJyYXkgY2JhNCA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KHhhLCB2YSk7CisKKyAgICBTdHJpbmcgeHMgPSBVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcoeGEpOworICAgIFN0cmluZyB2cyA9IFV0aWxpdHkuYXJyYXlUb1JMRVN0cmluZyh2YSk7CisgICAgQ29tcGFjdEJ5dGVBcnJheSBjYmE1ID0gbmV3IENvbXBhY3RCeXRlQXJyYXkoeHMsIHZzKTsKKworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjYmE0LmVxdWFscyhjYmE1KSk7CisgICAgbG9nbG4oImVxdWFsczogIiArIGNiYS5lcXVhbHMoY2JhNCkpOworICAgIAorICAgICAgY2JhNC5jb21wYWN0KGZhbHNlKTsKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2JhNC5lcXVhbHMoY2JhNSkpOworCisgICAgY2JhNS5jb21wYWN0KHRydWUpOworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjYmE0LmVxdWFscyhjYmE1KSk7CisKKyAgICBjYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoYnl0ZSkweGRmKTsgLy8gZm9yY2UgZXhwYW5kCisgICAgbG9nbG4oIm1vZGlmaWVkIGVxdWFscyBjbG9uZTogIiArIGNiYS5lcXVhbHMoY2JhMykpOworCisgICAgY2JhMy5zZXRFbGVtZW50QXQoKGNoYXIpMHg0MDUsIChieXRlKTB4ZGYpOyAvLyBlcXVpdmFsZW50IG1vZGlmaWNhdGlvbgorICAgIGxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgbW9kaWZpZWQgY2xvbmU6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKworICAgIGNiYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoYnl0ZSkweGVlKTsgLy8gZGlmZmVyZW50IG1vZGlmaWNhdGlvbgorICAgIGxvZ2xuKCJkaWZmZXJlbnQgbW9kIGVxdWFsczogIiArIGNiYS5lcXVhbHMoY2JhMykpOworCisgICAgY2JhLmNvbXBhY3QoKTsKKyAgICBDb21wYWN0Qnl0ZUFycmF5IGNiYTYgPSAoQ29tcGFjdEJ5dGVBcnJheSljYmEuY2xvbmUoKTsKKyAgICBsb2dsbigiY2xvbmVkIGNvbXBhY3QgZXF1YWxzOiAiICsgY2JhLmVxdWFscyhjYmE2KSk7CisKKyAgICBjYmE2LnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGJ5dGUpMHhlZSk7CisgICAgbG9nbG4oIm1vZGlmaWVkIGNsb25lOiAiICsgY2JhMy5lcXVhbHMoY2JhNikpOworCisgICAgY2JhNi5zZXRFbGVtZW50QXQoKGNoYXIpMHgxMDAsIChjaGFyKTB4MTA0LCAoYnl0ZSkweGZlKTsKKyAgICBmb3IgKGludCBpID0gMHgxMDA7IGkgPCAweDEwNTsgKytpKSB7CisgICAgICAgIGNiYTMuc2V0RWxlbWVudEF0KChjaGFyKWksIChieXRlKTB4ZmUpOworICAgIH0KKyAgICBsb2dsbigiZG91YmxlIG1vZGlmaWVkOiAiICsgY2JhMy5lcXVhbHMoY2JhNikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGFyQXJyYXlDb3ZlcmFnZSgpIHsKKyAgICAvLyB2MS44IGZhaWxzIHdpdGggZXh0ZW5zaXZlIGNvbXBhY3Rpb24sIHNvIHNldCB0byBmYWxzZQorICAgIGZpbmFsIGJvb2xlYW4gRVhURU5TSVZFID0gZmFsc2U7CisKKyAgICBDb21wYWN0Q2hhckFycmF5IGNjYSA9IG5ldyBDb21wYWN0Q2hhckFycmF5KCk7CisgICAgY2NhLnNldEVsZW1lbnRBdCgoY2hhcikweDUsIChjaGFyKTB4ZGYpOworICAgIGNjYS5zZXRFbGVtZW50QXQoKGNoYXIpMHgxMDUsIChjaGFyKTB4ZGYpOworICAgIGNjYS5zZXRFbGVtZW50QXQoKGNoYXIpMHgyMDUsIChjaGFyKTB4ZGYpOworICAgIGNjYS5zZXRFbGVtZW50QXQoKGNoYXIpMHgzMDUsIChjaGFyKTB4ZGYpOworICAgIENvbXBhY3RDaGFyQXJyYXkgY2NhMiA9IG5ldyBDb21wYWN0Q2hhckFycmF5KChjaGFyKTB4ZGYpOworICAgIGlmIChjY2EuZXF1YWxzKGNjYTIpKSB7CisgICAgICAgIGVycmxuKCJ1bmVxdWFsIGNoYXIgYXJyYXlzIGNvbXBhcmUgZXF1YWwiKTsKKyAgICB9CisgICAgQ29tcGFjdENoYXJBcnJheSBjY2EzID0gKENvbXBhY3RDaGFyQXJyYXkpY2NhLmNsb25lKCk7CisKKyAgICBsb2dsbigiZXF1YWxzIG51bGw6ICIgKyBjY2EuZXF1YWxzKG51bGwpKTsKKyAgICBsb2dsbigiZXF1YWxzIHNlbGY6ICIgKyBjY2EuZXF1YWxzKGNjYSkpOworICAgIGxvZ2xuKCJlcXVhbHMgY2xvbmU6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICBsb2dsbigiZXF1YWxzIGJvZ3VzOiAiICsgY2NhLmVxdWFscyhuZXcgT2JqZWN0KCkpKTsKKyAgICBsb2dsbigiaGFzaDogIiArIGNjYS5oYXNoQ29kZSgpKTsKKworICAgIGNjYS5jb21wYWN0KEVYVEVOU0lWRSk7CisgICAgY2NhLmNvbXBhY3QoRVhURU5TSVZFKTsKKworICAgIGNoYXJbXSB4YSA9IGNjYS5nZXRJbmRleEFycmF5KCk7CisgICAgY2hhcltdIHZhID0gY2NhLmdldFZhbHVlQXJyYXkoKTsKKyAgICBDb21wYWN0Q2hhckFycmF5IGNjYTQgPSBuZXcgQ29tcGFjdENoYXJBcnJheSh4YSwgdmEpOworCisgICAgU3RyaW5nIHhzID0gVXRpbGl0eS5hcnJheVRvUkxFU3RyaW5nKHhhKTsKKyAgICBTdHJpbmcgdnMgPSBVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcodmEpOworICAgIENvbXBhY3RDaGFyQXJyYXkgY2NhNSA9IG5ldyBDb21wYWN0Q2hhckFycmF5KHhzLCB2cyk7CisKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2NhNC5lcXVhbHMoY2NhNSkpOworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTQpKTsKKworICAgIGNjYTQuY29tcGFjdChmYWxzZSk7CisgICAgbG9nbG4oImVxdWFsczogIiArIGNjYTQuZXF1YWxzKGNjYTUpKTsKKworICAgIGNjYTUuY29tcGFjdChFWFRFTlNJVkUpOworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjY2E0LmVxdWFscyhjY2E1KSk7CisKKyAgICBjY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGRmKTsgLy8gZm9yY2UgZXhwYW5kCisgICAgbG9nbG4oIm1vZGlmaWVkIGVxdWFscyBjbG9uZTogIiArIGNjYS5lcXVhbHMoY2NhMykpOworCisgICAgY2NhMy5zZXRFbGVtZW50QXQoKGNoYXIpMHg0MDUsIChjaGFyKTB4ZGYpOyAvLyBlcXVpdmFsZW50IG1vZGlmaWNhdGlvbgorICAgIGxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgbW9kaWZpZWQgY2xvbmU6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKworICAgIGNjYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGVlKTsgLy8gZGlmZmVyZW50IG1vZGlmaWNhdGlvbgorICAgIGxvZ2xuKCJkaWZmZXJlbnQgbW9kIGVxdWFsczogIiArIGNjYS5lcXVhbHMoY2NhMykpOworICAgIAorICAgIC8vIGFmdGVyIHNldEVsZW1lbnRBdCBpc0NvbXBhY3QgaXMgc2V0IHRvIGZhbHNlCisgICAgY2NhMy5jb21wYWN0KHRydWUpOworICAgIGxvZ2xuKCJkaWZmZXJlbnQgbW9kIGVxdWFsczogIiArIGNjYS5lcXVhbHMoY2NhMykpOworICAgIAorICAgIGNjYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGVlKTsgLy8gZGlmZmVyZW50IG1vZGlmaWNhdGlvbgorICAgIGxvZ2xuKCJkaWZmZXJlbnQgbW9kIGVxdWFsczogIiArIGNjYS5lcXVhbHMoY2NhMykpOworICAgICAgICAvLyBhZnRlciBzZXRFbGVtZW50QXQgaXNDb21wYWN0IGlzIHNldCB0byBmYWxzZQorICAgIGNjYTMuY29tcGFjdCgpOworICAgIGxvZ2xuKCJkaWZmZXJlbnQgbW9kIGVxdWFsczogIiArIGNjYS5lcXVhbHMoY2NhMykpOworICAgIAorICAgIC8vIHYxLjggZmFpbHMgd2l0aCBleHRlbnNpdmUgY29tcGFjdGlvbiwgYW5kIGRlZmF1bHRzIGV4dGVuc2l2ZSwgc28gZG9uJ3QgY29tcGFjdAorICAgIC8vIGNjYS5jb21wYWN0KCk7CisgICAgQ29tcGFjdENoYXJBcnJheSBjY2E2ID0gKENvbXBhY3RDaGFyQXJyYXkpY2NhLmNsb25lKCk7CisgICAgbG9nbG4oImNsb25lZCBjb21wYWN0IGVxdWFsczogIiArIGNjYS5lcXVhbHMoY2NhNikpOworCisgICAgY2NhNi5zZXRFbGVtZW50QXQoKGNoYXIpMHg0MDUsIChjaGFyKTB4ZWUpOworICAgIGxvZ2xuKCJtb2RpZmllZCBjbG9uZTogIiArIGNjYTMuZXF1YWxzKGNjYTYpKTsKKworICAgIGNjYTYuc2V0RWxlbWVudEF0KChjaGFyKTB4MTAwLCAoY2hhcikweDEwNCwgKGNoYXIpMHhmZSk7CisgICAgZm9yIChpbnQgaSA9IDB4MTAwOyBpIDwgMHgxMDU7ICsraSkgeworICAgICAgICBjY2EzLnNldEVsZW1lbnRBdCgoY2hhcilpLCAoY2hhcikweGZlKTsKKyAgICB9CisgICAgbG9nbG4oImRvdWJsZSBtb2RpZmllZDogIiArIGNjYTMuZXF1YWxzKGNjYTYpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DdXJyZW5jeVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0N1cnJlbmN5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMGE4YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DdXJyZW5jeVRlc3QuamF2YQpAQCAtMCwwICsxLDE3NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogRGVjZW1iZXIgMTggMjAwMgorKiBTaW5jZTogSUNVIDIuNAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIEN1cnJlbmN5CisgKi8KK3B1YmxpYyBjbGFzcyBDdXJyZW5jeVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEN1cnJlbmN5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IG9mIGJhc2ljIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkgeworICAgICAgICBDdXJyZW5jeSB1c2QgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiVVNEIik7CisgICAgICAgIC8qaW50IGhhc2ggPSAqL3VzZC5oYXNoQ29kZSgpOworICAgICAgICBDdXJyZW5jeSBqcHkgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiSlBZIik7CisgICAgICAgIGlmICh1c2QuZXF1YWxzKGpweSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVU0QgPT0gSlBZIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHVzZC5lcXVhbHMoImFiYyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVNEID09IChTdHJpbmcpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHVzZC5lcXVhbHMobnVsbCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVU0QgPT0gKG51bGwpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF1c2QuZXF1YWxzKHVzZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVU0QgIT0gVVNEIik7CisgICAgICAgIH0KKworICAgICAgICBMb2NhbGVbXSBhdmFpbCA9IEN1cnJlbmN5LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaWYoYXZhaWw9PW51bGwpeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEF2YWlsYWJsZUxvY2FsZXMgcmV0dXJuZWQgbnVsbCIpOworICAgICAgICB9CisKKyAgICB0cnkgeworICAgICAgdXNkLmdldE5hbWUoVUxvY2FsZS5VUywgNSwgbmV3IGJvb2xlYW5bMV0pOworICAgICAgZXJybG4oImV4cGVjdGVkIGdldE5hbWUgd2l0aCBpbnZhbGlkIHR5cGUgcGFyYW1ldGVyIHRvIHRocm93IGV4Y2VwdGlvbiIpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAJbG9nbG4oIlBBU1M6IGdldE5hbWUgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgcmVnaXN0cmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWdpc3RyYXRpb24oKSB7CisgICAgICAgIGZpbmFsIEN1cnJlbmN5IGpweSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKCJKUFkiKTsKKyAgICAgICAgZmluYWwgQ3VycmVuY3kgdXNkID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKworICAgIHRyeSB7CisgICAgICBDdXJyZW5jeS51bnJlZ2lzdGVyKG51bGwpOyAvLyBzaG91bGQgZmFpbCwgY292ZXJhZ2UKKyAgICAgIGVycmxuKCJleHBlY3RlZCB1bnJlZ2lzdGVyIG9mIG51bGwgdG8gdGhyb3cgZXhjZXB0aW9uIik7CisgICAgfQorICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgIAlsb2dsbigiUEFTUzogdW5yZWdpc3RlciBvZiBudWxsIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgIH0KKworICAgIGlmIChDdXJyZW5jeS51bnJlZ2lzdGVyKCIiKSkgeyAvLyBjb3ZlcmFnZQorICAgICAgZXJybG4oInVucmVnaXN0ZXIgYmVmb3JlIHJlZ2lzdGVyIGVycm9uZW91c2x5IHN1Y2NlZWRlZCIpOworICAgIH0KKworICAgICAgICBVTG9jYWxlIGZ1X0ZVID0gbmV3IFVMb2NhbGUoImZ1X0ZVIik7CisKKyAgICAgICAgT2JqZWN0IGtleTEgPSBDdXJyZW5jeS5yZWdpc3Rlckluc3RhbmNlKGpweSwgVUxvY2FsZS5VUyk7CisgICAgICAgIE9iamVjdCBrZXkyID0gQ3VycmVuY3kucmVnaXN0ZXJJbnN0YW5jZShqcHksIGZ1X0ZVKTsKKworICAgICAgICBDdXJyZW5jeSBudXMgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoIW51cy5lcXVhbHMoanB5KSkgeworICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICIgKyBqcHkgKyAiIGJ1dCBnb3Q6ICIgKyBudXMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gY29udmVyYWdlLCBtYWtlIHN1cmUgZGVmYXVsdCBmYWN0b3J5IHdvcmtzCisgICAgICAgIEN1cnJlbmN5IG51czEgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pOworICAgICAgICBpZiAoIW51czEuZXF1YWxzKGpweSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJleHBlY3RlZCAiICsganB5ICsgIiBidXQgZ290OiAiICsgbnVzMSk7CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IEN1cnJlbmN5LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAobG9jYWxlc1tpXS5lcXVhbHMoZnVfRlUpKSB7CisgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgIGVycmxuKCJkaWQgbm90IGZpbmQgbG9jYWxlIiArIGZ1X0ZVICsgIiBpbiBjdXJyZW5jeSBsb2NhbGVzIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIUN1cnJlbmN5LnVucmVnaXN0ZXIoa2V5MSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bmFibGUgdG8gdW5yZWdpc3RlciBjdXJyZW5jeSB1c2luZyBrZXkxIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFDdXJyZW5jeS51bnJlZ2lzdGVyKGtleTIpKSB7CisgICAgICAgICAgICBlcnJsbigidW5hYmxlIHRvIHVucmVnaXN0ZXIgY3VycmVuY3kgdXNpbmcga2V5MiIpOworICAgICAgICB9CisKKyAgICAgICAgQ3VycmVuY3kgbnVzMiA9IEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGlmICghbnVzMi5lcXVhbHModXNkKSkgeworICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICIgKyB1c2QgKyAiIGJ1dCBnb3Q6ICIgKyBudXMyKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvY2FsZXMgPSBDdXJyZW5jeS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbGVzW2ldLmVxdWFscyhmdV9GVSkpIHsKKyAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvdW5kKSB7CisgICAgICAgICAgICBlcnJsbigiZm91bmQgbG9jYWxlIiArIGZ1X0ZVICsgIiBpbiBjdXJyZW5jeSBsb2NhbGVzIGFmdGVyIHVucmVnaXN0ZXIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbmFtZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5hbWVzKCkgeworICAgICAgICAvLyBEbyBhIGJhc2ljIGNoZWNrIG9mIGdldE5hbWUoKQorICAgICAgICAvLyBVU0QgeyAiVVMkIiwgIlVTIERvbGxhciIgICAgICAgICAgICB9IC8vIDA0LzA0LzE3OTItCisgICAgICAgIFVMb2NhbGUgZW4gPSBVTG9jYWxlLkVOR0xJU0g7CisgICAgICAgIGJvb2xlYW5bXSBpc0Nob2ljZUZvcm1hdCA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBDdXJyZW5jeSB1c2QgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiVVNEIik7CisgICAgICAgIC8vIFdhcm5pbmc6IEhBUkQtQ09ERUQgTE9DQUxFIERBVEEgaW4gdGhpcyB0ZXN0LiAgSWYgaXQgZmFpbHMsIENIRUNLCisgICAgICAgIC8vIFRIRSBMT0NBTEUgREFUQSBiZWZvcmUgZGl2aW5nIGludG8gdGhlIGNvZGUuCisgICAgICAgIGlmICghbm9EYXRhKCkpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiVVNELmdldE5hbWUoU1lNQk9MX05BTUUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVVMkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2QuZ2V0TmFtZShlbiwgQ3VycmVuY3kuU1lNQk9MX05BTUUsIGlzQ2hvaWNlRm9ybWF0KSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlVTRC5nZXROYW1lKExPTkdfTkFNRSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJVUyBEb2xsYXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVzZC5nZXROYW1lKGVuLCBDdXJyZW5jeS5MT05HX05BTUUsIGlzQ2hvaWNlRm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gVE9ETyBhZGQgbW9yZSB0ZXN0cyBsYXRlcgorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAgICAgQ3VycmVuY3kgdXNkID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIlVTRCIpOworICAgICAgICBpZiAoIW5vRGF0YSgpKSB7CisgICAgICAgIGFzc2VydEVxdWFscygiVVNELmdldFN5bWJvbCgpIiwKKyAgICAgICAgICAgICAgICAiJCIsCisgICAgICAgICAgICAgICAgdXNkLmdldFN5bWJvbCgpKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbHMoIlVTRC5nZXRMb2NhbGUoKSIsCisgICAgICAgIAkJVUxvY2FsZS5ST09ULAorCQkJCXVzZC5nZXRMb2NhbGUobnVsbCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeUtleXdvcmQoKSB7CisgICAgVUxvY2FsZSBsb2NhbGUgPSBuZXcgVUxvY2FsZSgidGhfVEhAY29sbGF0aW9uPXRyYWRpdGlvbmFsO2N1cnJlbmN5PVFRUSIpOworICAgIEN1cnJlbmN5IGN1cnJlbmN5ID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICBTdHJpbmcgcmVzdWx0ID0gY3VycmVuY3kuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgaWYgKCEiUVFRIi5lcXVhbHMocmVzdWx0KSkgeworICAgICAgICBlcnJsbigiZ290IHVuZXhwZWN0ZWQgY3VycmVuY3k6ICIgKyByZXN1bHQpOworICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhSW5wdXRDb21wcmVzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhSW5wdXRDb21wcmVzc29yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFjYjEwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RhdGFJbnB1dENvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDIzNSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKKy8vaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRIYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworLy9pbXBvcnQgamF2YS51dGlsLk1hcDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogU2ltcGxlIGRhdGEgaW5wdXQgY29tcHJlc3Nvci4gTm90aGluZyBmYW5jeSwgYnV0IG11Y2ggc21hbGxlciBmb290cHJpbnQgZm9yCisgKiBpbnRzIGFuZCBtYW55IHN0cmluZ3MuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBEYXRhSW5wdXRDb21wcmVzc29yIGltcGxlbWVudHMgT2JqZWN0SW5wdXQgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIFNIT1cgPSBmYWxzZTsKKworICAgIHByaXZhdGUgT2JqZWN0SW5wdXQgZGF0YUlucHV0OworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgU3RyaW5nQnVmZmVyIHN0cmluZ0J1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgIHB1YmxpYyBEYXRhSW5wdXRDb21wcmVzc29yKE9iamVjdElucHV0IGRhdGFJbnB1dCkgeworICAgICAgICB0aGlzLmRhdGFJbnB1dCA9IGRhdGFJbnB1dDsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0YUlucHV0IGdldERhdGFJbnB1dCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhSW5wdXQoT2JqZWN0SW5wdXQgZGF0YUlucHV0KSB7CisgICAgICAgIHRoaXMuZGF0YUlucHV0ID0gZGF0YUlucHV0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHJlYWRCb29sZWFuKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5yZWFkQm9vbGVhbigpOworICAgIH0KKworICAgIHB1YmxpYyBieXRlIHJlYWRCeXRlKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5yZWFkQnl0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcmVhZFVuc2lnbmVkQnl0ZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZFVuc2lnbmVkQnl0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBkb3VibGUgcmVhZERvdWJsZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZERvdWJsZSgpOworICAgIH0KKworICAgIHB1YmxpYyBmbG9hdCByZWFkRmxvYXQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWRGbG9hdCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRGdWxseShieXRlW10gYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YUlucHV0LnJlYWRGdWxseShiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRnVsbHkoYnl0ZVtdIGIsIGludCBvZmYsIGludCBsZW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFJbnB1dC5yZWFkRnVsbHkoYiwgb2ZmLCBsZW4pOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgc2tpcEJ5dGVzKGludCBuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnNraXBCeXRlcyhuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRMaW5lKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5yZWFkTGluZSgpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgYXZhaWxhYmxlKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5hdmFpbGFibGUoKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhSW5wdXQuY2xvc2UoKTsKKyAgICB9CisgICAgcHVibGljIGludCByZWFkKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5yZWFkKCk7CisgICAgfQorICAgIHB1YmxpYyBpbnQgcmVhZChieXRlW10gYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5yZWFkKGIpOworICAgIH0KKyAgICBwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIGIsIGludCBvZmYsIGludCBsZW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZChiLCBvZmYsIGxlbik7CisgICAgfQorICAgIHB1YmxpYyBPYmplY3QgcmVhZE9iamVjdCgpIHRocm93cyBDbGFzc05vdEZvdW5kRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZE9iamVjdCgpOworICAgIH0KKyAgICBwdWJsaWMgbG9uZyBza2lwKGxvbmcgbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5za2lwKG4pOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vID09PT0gTmV3IFJvdXRpbmVzID09PT0KKworICAgIHB1YmxpYyBjaGFyIHJlYWRDaGFyKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIChjaGFyKSByZWFkVUxvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc2hvcnQgcmVhZFNob3J0KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIChzaG9ydCkgcmVhZExvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWRVbnNpZ25lZFNob3J0KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIHJlYWRVTG9uZygpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcmVhZFVTaG9ydCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoaW50KSByZWFkVUxvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWRJbnQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gKGludCkgcmVhZExvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWRVSW50KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIHJlYWRVTG9uZygpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgcmVhZENoYXJzKGludCBsZW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN0cmluZ0J1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjcCA9IChpbnQpIHJlYWRVTG9uZygpOworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHN0cmluZ0J1ZmZlciwgY3ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdHJpbmdCdWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRVVEYoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgbGVuID0gKGludCkgcmVhZFVMb25nKCk7CisgICAgICAgIHJldHVybiByZWFkQ2hhcnMobGVuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgbG9uZyByZWFkTG9uZygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBsb25nIGlucHV0ID0gcmVhZEJ5dGUoKTsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAoaW5wdXQgJiAweDdGKSA8PCBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoKGlucHV0ICYgMHg4MCkgPT0gMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIG9mZnNldCArPSA3OworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gbmVnYXRpdmUgPSAocmVzdWx0ICYgMSkgIT0gMDsgLy8gZ2V0IHNpZ24gYml0IGZyb20gdGhlIGJvdHRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgaW52ZXJ0CisgICAgICAgIHJlc3VsdCA+Pj49IDE7CisgICAgICAgIGlmIChuZWdhdGl2ZSkKKyAgICAgICAgICAgIHJlc3VsdCA9IH5yZXN1bHQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGxvbmcgcmVhZFVMb25nKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyByZXN1bHQgPSAwOworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsgLy8gcmVhZCBzZXF1ZW5jZSBvZiA3IGJpdHMsIHdpdGggdG9wIGJpdCA9IDEgZm9yCisgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgaW50IGlucHV0ID0gcmVhZEJ5dGUoKTsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAoaW5wdXQgJiAweDdGKSA8PCBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoKGlucHV0ICYgMHg4MCkgPT0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgb2Zmc2V0ICs9IDc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAgCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdIHJlYWRTdHJpbmdTZXQoQ29sbGVjdGlvbiBhdmFpbGFibGVWYWx1ZXMpCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgc2l6ZSA9IHJlYWRVSW50KCk7CisgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oInJlYWRTdHJpbmdTZXQiKTsKKyAgICAgICAgT2JqZWN0W10gdmFsdWVzTGlzdCA9IG5ldyBPYmplY3Rbc2l6ZSArIDFdOworICAgICAgICAvLyBmaXJzdCBpdGVtIGlzIG51bGwKKyAgICAgICAgU3RyaW5nIGxhc3RTdHJpbmcgPSAiIjsKKyAgICAgICAgUmVhZFBvb2wgdHJhaWxpbmdQb29sID0gbmV3IFJlYWRQb29sKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBpbnQgY29tbW9uID0gcmVhZFVJbnQoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gaW5Qb29sID0gKGNvbW1vbiAmIDEpICE9IDA7CisgICAgICAgICAgICBjb21tb24gPj4+PSAxOworICAgICAgICAgICAgaWYgKFNIT1cpIFN5c3RlbS5vdXQucHJpbnRsbihjb21tb24pOworICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnQ7CisgICAgICAgICAgICBpZiAoaW5Qb29sKSB7CisgICAgICAgICAgICAgICAgaW50IHBvb2xJbmRleCA9IHJlYWRVSW50KCk7CisgICAgICAgICAgICAgICAgaWYgKFNIT1cpIFN5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgcG9vbEluZGV4KTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gKFN0cmluZykgdHJhaWxpbmdQb29sLmdldChwb29sSW5kZXgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gcmVhZFVURigpOworICAgICAgICAgICAgICAgIHRyYWlsaW5nUG9vbC5hZGQoY3VycmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZXNMaXN0W2kgKyAxXSA9IGxhc3RTdHJpbmcgPSBsYXN0U3RyaW5nLnN1YnN0cmluZygwLCBjb21tb24pCisgICAgICAgICAgICAgICAgICAgICsgY3VycmVudDsKKyAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0XHQiICsgbGFzdFN0cmluZyk7CisgICAgICAgICAgICBpZiAoYXZhaWxhYmxlVmFsdWVzICE9IG51bGwpIGF2YWlsYWJsZVZhbHVlcy5hZGQoY3VycmVudCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlc0xpc3Q7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUmVhZFBvb2wgeworICAgICAgICBwcml2YXRlIExpc3QgdHJhaWxpbmdQb29sID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBwdWJsaWMgT2JqZWN0IGdldChpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIHJldHVybiB0cmFpbGluZ1Bvb2wuZ2V0KGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBhZGQoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIHRyYWlsaW5nUG9vbC5hZGQobyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisgICAgICogQHRocm93cyBDbGFzc05vdEZvdW5kRXhjZXB0aW9uCisgICAgICogCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdIHJlYWRDb2xsZWN0aW9uKExpbmtlZEhhc2hTZXQgYXZhaWxhYmxlVmFsdWVzKSB0aHJvd3MgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgc2l6ZSA9IHJlYWRVSW50KCk7CisgICAgICAgIE9iamVjdFtdIHZhbHVlc0xpc3QgPSBuZXcgT2JqZWN0W3NpemUgKyAxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc0xpc3RbaSArIDFdID0gcmVhZE9iamVjdCgpOworICAgICAgICB9CisgICAgICAgcmV0dXJuIHZhbHVlc0xpc3Q7CisgICAgfQorfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RhdGFPdXRwdXRDb21wcmVzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhT3V0cHV0Q29tcHJlc3Nvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhODU3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhT3V0cHV0Q29tcHJlc3Nvci5qYXZhCkBAIC0wLDAgKzEsMjE1IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uRGF0YU91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKy8vaW1wb3J0IGphdmEudXRpbC5MaW5rZWRIYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKKy8vaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBTaW1wbGUgZGF0YSBvdXRwdXQgY29tcHJlc3Nvci4gTm90aGluZyBmYW5jeSwgYnV0IG11Y2ggc21hbGxlciBmb290cHJpbnQgZm9yIGludHMgYW5kIG1hbnkgc3RyaW5ncy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIERhdGFPdXRwdXRDb21wcmVzc29yIGltcGxlbWVudHMgT2JqZWN0T3V0cHV0IHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XID0gZmFsc2U7CisKKyAgICBwcml2YXRlIE9iamVjdE91dHB1dCBkYXRhT3V0cHV0OworCisgICAgcHVibGljIERhdGFPdXRwdXRDb21wcmVzc29yKE9iamVjdE91dHB1dCBkYXRhT3V0cHV0KSB7CisgICAgICAgIHRoaXMuZGF0YU91dHB1dCA9IGRhdGFPdXRwdXQ7CisgICAgfQorCisgICAgcHVibGljIERhdGFPdXRwdXQgZ2V0RGF0YU91dHB1dCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGFPdXRwdXQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RGF0YU91dHB1dChPYmplY3RPdXRwdXQgZGF0YU91dHB1dCkgeworICAgICAgICB0aGlzLmRhdGFPdXRwdXQgPSBkYXRhT3V0cHV0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSBiKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlKGIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSBiLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlKGIsIG9mZiwgbGVuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShpbnQgYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZShiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUJvb2xlYW4oYm9vbGVhbiB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlQm9vbGVhbih2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUJ5dGUoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlKHYpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlQnl0ZXMoU3RyaW5nIHMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlcyhzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZURvdWJsZShkb3VibGUgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZURvdWJsZSh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUZsb2F0KGZsb2F0IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGVGbG9hdCh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbG9zZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQuY2xvc2UoKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgZmx1c2goKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LmZsdXNoKCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkYXRhT3V0cHV0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlT2JqZWN0KE9iamVjdCBvYmopIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGVPYmplY3Qob2JqKTsKKyAgICB9CisgICAgLy8gPT09PSBOZXcgUm91dGluZXMgPT09PQorCisgICAgcHVibGljIHZvaWQgd3JpdGVDaGFyKGludCB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB3cml0ZVVMb25nKHYpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlU2hvcnQoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHdyaXRlTG9uZyh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVVTaG9ydChpbnQgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVTG9uZyh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUludChpbnQgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVMb25nKHYpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlVUludChpbnQgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVTG9uZyh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVVURihTdHJpbmcgc3RyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB3cml0ZVVMb25nKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cikpOworICAgICAgICB3cml0ZUNoYXJzKHN0cik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVDaGFycyhTdHJpbmcgcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGNwID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgd3JpdGVVTG9uZyhjcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUxvbmcobG9uZyB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIGZsYWcgPSAwOyAvLyBwdXQgc2lnbiBiaXQgYXQgdGhlIGJvdHRvbSwgYW5kIGludmVydAorICAgICAgICBpZiAodiA8IDApIHsKKyAgICAgICAgICAgIHYgPSB+djsKKyAgICAgICAgICAgIGZsYWcgPSAxOworICAgICAgICB9CisgICAgICAgIHYgPDw9IDE7CisgICAgICAgIHYgfD0gZmxhZzsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmICgodiAmIH4weDdGTCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlKChieXRlKSB2KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlKChieXRlKSAoMHg4MEwgfCB2KSk7CisgICAgICAgICAgICB2ID4+Pj0gNzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlVUxvbmcobG9uZyB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB3aGlsZSAodHJ1ZSkgeyAvLyB3cml0ZSBzZXF1ZW5jZSBvZiA3IGJpdHMsIHdpdGggdG9wIGJpdCA9IDEgZm9yIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgaWYgKCh2ICYgfjB4N0ZMKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZGF0YU91dHB1dC53cml0ZUJ5dGUoKGJ5dGUpIHYpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0YU91dHB1dC53cml0ZUJ5dGUoKGJ5dGUpICgweDgwTCB8IHYpKTsKKyAgICAgICAgICAgIHYgPj4+PSA3OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIHZvaWQgd3JpdGVTdHJpbmdTZXQoU29ydGVkU2V0IGMsIE1hcCBvYmplY3RfaW5kZXgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oIndyaXRlU3RyaW5nU2V0Iik7CisgICAgICAgIHdyaXRlVUludChjLnNpemUoKSk7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgb2JqZWN0X2luZGV4LnB1dChudWxsLCBuZXcgSW50ZWdlcihpKyspKTsKKyAgICAgICAgV3JpdGVQb29sIHRyYWlsaW5nUG9vbCA9IG5ldyBXcml0ZVBvb2woKTsKKyAgICAgICAgaW50IHBvb2xDb3VudCA9IDA7CisgICAgICAgIFN0cmluZyBsYXN0U3RyaW5nID0gIiI7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgb2JqZWN0X2luZGV4LnB1dChzLCBuZXcgSW50ZWdlcihpKyspKTsKKyAgICAgICAgICAgIGludCBjb21tb24gPSBVbmljb2RlTWFwLmZpbmRDb21tb24obGFzdFN0cmluZywgcyk7IC8vIHJ1bmxlbmd0aCBlbmNvZGUKKyAgICAgICAgICAgIGxhc3RTdHJpbmcgPSBzOworICAgICAgICAgICAgU3RyaW5nIHBpZWNlID0gcy5zdWJzdHJpbmcoY29tbW9uKTsKKyAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oY29tbW9uKTsKKyAgICAgICAgICAgIGNvbW1vbiA8PD0gMTsKKyAgICAgICAgICAgIGludCBpblBvb2wgPSB0cmFpbGluZ1Bvb2wuZ2V0SW5kZXgocGllY2UpOworICAgICAgICAgICAgaWYgKGluUG9vbCA8IDApIHsKKyAgICAgICAgICAgICAgICB3cml0ZVVJbnQoY29tbW9uKTsKKyAgICAgICAgICAgICAgICB3cml0ZVVURihwaWVjZSk7CisgICAgICAgICAgICAgICAgdHJhaWxpbmdQb29sLnB1dChwaWVjZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHdyaXRlVUludChjb21tb24gfCAxKTsKKyAgICAgICAgICAgICAgICB3cml0ZVVJbnQoaW5Qb29sKTsKKyAgICAgICAgICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKCJcdCIgKyBpblBvb2wpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFNIT1cpIFN5c3RlbS5vdXQucHJpbnRsbigiXHRcdCIgKyBsYXN0U3RyaW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFdyaXRlUG9vbCB7CisgICAgICAgIHByaXZhdGUgTWFwIHRyYWlsaW5nUG9vbCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHByaXZhdGUgaW50IHBvb2xDb3VudCA9IDA7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIEludGVnZXIgaW5Qb29sID0gKEludGVnZXIpIHRyYWlsaW5nUG9vbC5nZXQobyk7CisgICAgICAgICAgICBpZiAoaW5Qb29sID09IG51bGwpIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiBpblBvb2wuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBwdXQoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIHRyYWlsaW5nUG9vbC5wdXQobywgbmV3IEludGVnZXIocG9vbENvdW50KyspKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB3cml0ZUNvbGxlY3Rpb24oQ29sbGVjdGlvbiBjLCBNYXAgb2JqZWN0X2luZGV4KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB3cml0ZVVJbnQoYy5zaXplKCkpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG9iamVjdF9pbmRleC5wdXQobnVsbCwgbmV3IEludGVnZXIoaSsrKSk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIE9iamVjdCBzID0gaXQubmV4dCgpOworICAgICAgICAgICAgZGF0YU91dHB1dC53cml0ZU9iamVjdChzKTsKKyAgICAgICAgICAgIGlmIChvYmplY3RfaW5kZXggIT0gbnVsbCkgb2JqZWN0X2luZGV4LnB1dChzLCBuZXcgSW50ZWdlcihpKyspKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RpZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGlmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdiMTMwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RpZmZlci5qYXZhCkBAIC0wLDAgKzEsMTcxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworLyoqIFZFUlkgQmFzaWMgRGlmZiBwcm9ncmFtLiBDb21wYXJlcyB0d28gc2VxdWVuY2VzIG9mIG9iamVjdHMgZmVkIGludG8gaXQsIGFuZAorICogbGV0cyB5b3Uga25vdyB3aGVyZSB0aGV5IGFyZSBkaWZmZXJlbnQuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqIEB2ZXJzaW9uIDEuMAorICovCisKK2ZpbmFsIHB1YmxpYyBjbGFzcyBEaWZmZXIgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9CisgICAgICAiQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdGFja1NpemUgVGhlIHNpemUgb2YgdGhlIGxhcmdlc3QgZGlmZmVyZW5jZSB5b3UgZXhwZWN0LgorICAgICAqIEBwYXJhbSBtYXRjaENvdW50IFRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCBoYXZlIHRvIGJlIHRoZSBzYW1lIHRvIGNvdW50IGFzIGEgbWF0Y2gKKyAgICAgKi8KKyAgICBwdWJsaWMgRGlmZmVyKGludCBzdGFja1NpemUsIGludCBtYXRjaENvdW50KSB7CisgICAgICAgIHRoaXMuU1RBQ0tTSVpFID0gc3RhY2tTaXplOworICAgICAgICB0aGlzLkVRVUFMU0laRSA9IG1hdGNoQ291bnQ7CisgICAgICAgIGEgPSBuZXcgT2JqZWN0W3N0YWNrU2l6ZSttYXRjaENvdW50XTsKKyAgICAgICAgYiA9IG5ldyBPYmplY3Rbc3RhY2tTaXplK21hdGNoQ291bnRdOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZCAoT2JqZWN0IGFTdHIsIE9iamVjdCBiU3RyKSB7CisgICAgICAgIGFkZEEoYVN0cik7CisgICAgICAgIGFkZEIoYlN0cik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkQSAoT2JqZWN0IGFTdHIpIHsKKyAgICAgICAgZmx1c2goKTsKKyAgICAgICAgYVthQ291bnQrK10gPSBhU3RyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEIgKE9iamVjdCBiU3RyKSB7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIGJbYkNvdW50KytdID0gYlN0cjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEFMaW5lKGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGFMaW5lICsgbWF4U2FtZSArIG9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldEEoaW50IG9mZnNldCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIGxhc3Q7CisgICAgICAgIGlmIChvZmZzZXQgPiBhVG9wLW1heFNhbWUpIHJldHVybiBuZXh0OworICAgICAgICByZXR1cm4gYVtvZmZzZXRdOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QUNvdW50KCkgeworICAgICAgICByZXR1cm4gYVRvcC1tYXhTYW1lOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QkNvdW50KCkgeworICAgICAgICByZXR1cm4gYlRvcC1tYXhTYW1lOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QkxpbmUoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gYkxpbmUgKyBtYXhTYW1lICsgb2Zmc2V0OworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgZ2V0QihpbnQgb2Zmc2V0KSB7CisgICAgICAgIGlmIChvZmZzZXQgPCAwKSByZXR1cm4gbGFzdDsKKyAgICAgICAgaWYgKG9mZnNldCA+IGJUb3AtbWF4U2FtZSkgcmV0dXJuIG5leHQ7CisgICAgICAgIHJldHVybiBiW29mZnNldF07CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2hlY2tNYXRjaChib29sZWFuIGZpbmFsUGFzcykgeworICAgICAgICAvLyBmaW5kIHRoZSBpbml0aWFsIHN0cmluZ3MgdGhhdCBhcmUgdGhlIHNhbWUKKyAgICAgICAgaW50IG1heCA9IGFDb3VudDsKKyAgICAgICAgaWYgKG1heCA+IGJDb3VudCkgbWF4ID0gYkNvdW50OworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG1heDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWFbaV0uZXF1YWxzKGJbaV0pKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBhbGwgaXRlbXMgdXAgdG8gaSBhcmUgZXF1YWwKKyAgICAgICAgbWF4U2FtZSA9IGk7CisgICAgICAgIGFUb3AgPSBiVG9wID0gbWF4U2FtZTsKKyAgICAgICAgaWYgKG1heFNhbWUgPiAwKSBsYXN0ID0gYVttYXhTYW1lLTFdOworICAgICAgICBuZXh0ID0gIiI7CisKKyAgICAgICAgaWYgKGZpbmFsUGFzcykgeworICAgICAgICAgICAgYVRvcCA9IGFDb3VudDsKKyAgICAgICAgICAgIGJUb3AgPSBiQ291bnQ7CisgICAgICAgICAgICBuZXh0ID0gIiI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYUNvdW50IC0gbWF4U2FtZSA8IEVRVUFMU0laRSB8fCBiQ291bnQgLSBtYXhTYW1lIDwgRVFVQUxTSVpFKSByZXR1cm47CisKKyAgICAgICAgLy8gbm93IHNlZSBpZiB0aGUgbGFzdCBmZXcgYSdzIG9jY3VyIGFueXdoZXJlIGluIHRoZSBiJ3MsIG9yIHZpY2UgdmVyc2EKKyAgICAgICAgaW50IG1hdGNoID0gZmluZCAoYSwgYUNvdW50LUVRVUFMU0laRSwgYUNvdW50LCBiLCBtYXhTYW1lLCBiQ291bnQpOworICAgICAgICBpZiAobWF0Y2ggIT0gLTEpIHsKKyAgICAgICAgICAgIGFUb3AgPSBhQ291bnQtRVFVQUxTSVpFOworICAgICAgICAgICAgYlRvcCA9IG1hdGNoOworICAgICAgICAgICAgbmV4dCA9IGFbYVRvcF07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbWF0Y2ggPSBmaW5kIChiLCBiQ291bnQtRVFVQUxTSVpFLCBiQ291bnQsIGEsIG1heFNhbWUsIGFDb3VudCk7CisgICAgICAgIGlmIChtYXRjaCAhPSAtMSkgeworICAgICAgICAgICAgYlRvcCA9IGJDb3VudC1FUVVBTFNJWkU7CisgICAgICAgICAgICBhVG9wID0gbWF0Y2g7CisgICAgICAgICAgICBuZXh0ID0gYltiVG9wXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoYUNvdW50ID49IFNUQUNLU0laRSB8fCBiQ291bnQgPj0gU1RBQ0tTSVpFKSB7CisgICAgICAgICAgICAvLyBmbHVzaCBzb21lIG9mIHRoZW0KKyAgICAgICAgICAgIGFDb3VudCA9IChhQ291bnQgKyBtYXhTYW1lKSAvIDI7CisgICAgICAgICAgICBiQ291bnQgPSAoYkNvdW50ICsgbWF4U2FtZSkgLyAyOworICAgICAgICAgICAgbmV4dCA9ICIiOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIENvbnZlbmllbnQgdXRpbGl0eQorICAgICAqIGZpbmRzIGEgc2VnbWVudCBvZiB0aGUgZmlyc3QgYXJyYXkgaW4gdGhlIHNlY29uZCBhcnJheS4KKyAgICAgKiBAcmV0dXJuIC0xIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHN0YXJ0IHBvc2l0aW9uIGluIGIKKyAgICAgKi8KKworICAgIHB1YmxpYyBpbnQgZmluZCAoT2JqZWN0W10gYSwgaW50IGFTdGFydCwgaW50IGFFbmQsIE9iamVjdFtdIGIsIGludCBiU3RhcnQsIGludCBiRW5kKSB7CisgICAgICAgIGludCBsZW4gPSBhRW5kIC0gYVN0YXJ0OworICAgICAgICBpbnQgYkVuZE1pbnVzID0gYkVuZCAtIGxlbjsKKyAgICAgICAgdHJ5QToKKyAgICAgICAgZm9yIChpbnQgaSA9IGJTdGFydDsgaSA8PSBiRW5kTWludXM7ICsraSkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsZW47ICsraikgeworICAgICAgICAgICAgICAgIGlmICghYltpICsgal0uZXF1YWxzKGFbYVN0YXJ0ICsgal0pKSBjb250aW51ZSB0cnlBOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGk7IC8vIHdlIGhhdmUgYSBtYXRjaCEKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBQUklWQVRFUyA9PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHZvaWQgZmx1c2goKSB7CisgICAgICAgIGlmIChhVG9wICE9IDApIHsKKyAgICAgICAgICAgIGludCBuZXdDb3VudCA9IGFDb3VudC1hVG9wOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShhLCBhVG9wLCBhLCAwLCBuZXdDb3VudCk7CisgICAgICAgICAgICBhQ291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgICAgIGFMaW5lICs9IGFUb3A7CisgICAgICAgICAgICBhVG9wID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChiVG9wICE9IDApIHsKKyAgICAgICAgICAgIGludCBuZXdDb3VudCA9IGJDb3VudC1iVG9wOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShiLCBiVG9wLCBiLCAwLCBuZXdDb3VudCk7CisgICAgICAgICAgICBiQ291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgICAgIGJMaW5lICs9IGJUb3A7CisgICAgICAgICAgICBiVG9wID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IFNUQUNLU0laRTsKKyAgICBwcml2YXRlIGludCBFUVVBTFNJWkU7CisKKyAgICBwcml2YXRlIE9iamVjdCBbXSBhOworICAgIHByaXZhdGUgT2JqZWN0IFtdIGI7CisgICAgcHJpdmF0ZSBPYmplY3QgbGFzdCA9ICIiOworICAgIHByaXZhdGUgT2JqZWN0IG5leHQgPSAiIjsKKyAgICBwcml2YXRlIGludCBhQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGJDb3VudCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgYUxpbmUgPSAxOworICAgIHByaXZhdGUgaW50IGJMaW5lID0gMTsKKyAgICBwcml2YXRlIGludCBtYXhTYW1lID0gMCwgYVRvcCA9IDAsIGJUb3AgPSAwOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaXNwbGF5TmFtZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0Rpc3BsYXlOYW1lVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMjYxMzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaXNwbGF5TmFtZVRlc3QuamF2YQpAQCAtMCwwICsxLDM5MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgRGlzcGxheU5hbWVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIFNIT1dfQUxMID0gZmFsc2U7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEaXNwbGF5TmFtZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgICAgICAKKyAgICBpbnRlcmZhY2UgRGlzcGxheU5hbWVHZXR0ZXIgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KTsKKyAgICB9CisKKyAgICBNYXBbXSBjb2RlVG9OYW1lID0gbmV3IE1hcFsxMF07CisgICAgeworICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGNvZGVUb05hbWUubGVuZ3RoOyArK2spIGNvZGVUb05hbWVba10gPSBuZXcgSGFzaE1hcCgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W10gem9uZUZvcm1hdHMgPSB7bmV3IEludGVnZXIoMCksIG5ldyBJbnRlZ2VyKDEpLCBuZXcgSW50ZWdlcigyKSwKKyAgICAgICAgbmV3IEludGVnZXIoMyksIG5ldyBJbnRlZ2VyKDQpLCBuZXcgSW50ZWdlcig1KSwgbmV3IEludGVnZXIoNiksIG5ldyBJbnRlZ2VyKDcpfTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W10gY3VycmVuY3lGb3JtYXRzID0ge25ldyBJbnRlZ2VyKEN1cnJlbmN5LlNZTUJPTF9OQU1FKSwgbmV3IEludGVnZXIoQ3VycmVuY3kuTE9OR19OQU1FKX07CisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdIE5PX0NPTlRFWFQgPSB7bnVsbH07CisgICAgCisgICAgc3RhdGljIGZpbmFsIERhdGUgSkFOMSA9IG5ldyBEYXRlKDIwMDQtMTkwMCwwLDEpOworICAgIHN0YXRpYyBmaW5hbCBEYXRlIEpVTFkxID0gbmV3IERhdGUoMjAwNC0xOTAwLDYsMSk7CisKKyAgICBTdHJpbmdbXSBjb3VudHJpZXMgPSBhZGRVbmtub3duKFVMb2NhbGUuZ2V0SVNPQ291bnRyaWVzKCksMik7CisgICAgU3RyaW5nW10gbGFuZ3VhZ2VzID0gYWRkVW5rbm93bihVTG9jYWxlLmdldElTT0xhbmd1YWdlcygpLDIpOworICAgIFN0cmluZ1tdIHpvbmVzID0gYWRkVW5rbm93bihnZXRSZWFsWm9uZUlEcygpLDUpOworICAgIFN0cmluZ1tdIHNjcmlwdHMgPSBhZGRVbmtub3duKGdldENvZGVzKG5ldyBVTG9jYWxlKCJlbiIsIlVTIiwiIiksICJTY3JpcHRzIiksNCk7CisgICAgLy8gVE9ETyBmaXggb25jZSB0aGVyZSBpcyBhIHdheSB0byBnZXQgYSBsaXN0IG9mIGFsbCBzY3JpcHQgY29kZXMKKyAgICBTdHJpbmdbXSBjdXJyZW5jaWVzID0gYWRkVW5rbm93bihnZXRDb2RlcyhuZXcgVUxvY2FsZSgiZW4iLCIiLCIiKSwgIkN1cnJlbmNpZXMiKSwzKTsKKyAgICAvLyBUT0RPIGZpeCBvbmNlIHRoZXJlIGlzIGEgd2F5IHRvIGdldCBhIGxpc3Qgb2YgYWxsIGN1cnJlbmN5IGNvZGVzCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlcygpIHsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjaGVja0xvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1tdIGdldFJlYWxab25lSURzKCkgeworICAgICAgICBTZXQgdGVtcCA9IG5ldyBUcmVlU2V0KEFycmF5cy5hc0xpc3QoVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCkpKTsKKyAgICAgICAgdGVtcC5yZW1vdmVBbGwoZ2V0QWxpYXNNYXAoKS5rZXlTZXQoKSk7CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pdGVtcC50b0FycmF5KG5ldyBTdHJpbmdbdGVtcC5zaXplKCldKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5nbGlzaCgpIHsKKyAgICAgICAgY2hlY2tMb2NhbGUoVUxvY2FsZS5FTkdMSVNIKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnJlbmNoKCkgeworICAgICAgICBjaGVja0xvY2FsZShVTG9jYWxlLkZSRU5DSCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrTG9jYWxlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGxvZ2xuKCJDaGVja2luZyAiICsgbG9jYWxlKTsKKyAgICAgICAgY2hlY2soIkxhbmd1YWdlIiwgbG9jYWxlLCBsYW5ndWFnZXMsIG51bGwsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoY29kZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNoZWNrKCJTY3JpcHQiLCBsb2NhbGUsIHNjcmlwdHMsIG51bGwsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICAvLyBUT0RPIFRoaXMgaXMga2luZGEgYSBoYWNrOyBvdWdodCB0byBiZSBkaXJlY3Qgd2F5LgorICAgICAgICAgICAgICAgIHJldHVybiBVTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoImVuXyIrY29kZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNoZWNrKCJDb3VudHJ5IiwgbG9jYWxlLCBjb3VudHJpZXMsIG51bGwsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICAvLyBUT0RPIFRoaXMgaXMga2luZGEgYSBoYWNrOyBvdWdodCB0byBiZSBkaXJlY3Qgd2F5LgorICAgICAgICAgICAgICAgIHJldHVybiBVTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KCJlbl8iK2NvZGUsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjaGVjaygiQ3VycmVuY2llcyIsIGxvY2FsZSwgY3VycmVuY2llcywgY3VycmVuY3lGb3JtYXRzLCBuZXcgRGlzcGxheU5hbWVHZXR0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgQ3VycmVuY3kgcyA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGNvZGUpOworICAgICAgICAgICAgICAgIHJldHVybiBzLmdldE5hbWUobG9jYWxlLCAoKEludGVnZXIpY29udGV4dCkuaW50VmFsdWUoKSwgbmV3IGJvb2xlYW5bMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgLy8gY29tbWVudCB0aGlzIG91dCwgYmVjYXVzZSB0aGUgem9uZSBzdHJpbmcgaW5mb3JtYXRpb24gaXMgbG9zdAorICAgICAgICAvLyB3ZSdkIGhhdmUgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMgZGlyZWN0bHkgdG8gdGVzdCB0aGVtCisKKyAgICAgICAgY2hlY2soIlpvbmVzIiwgbG9jYWxlLCB6b25lcywgem9uZUZvcm1hdHMsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIC8vIFRPRE8gcmVwbGFjZSBvbmNlIHdlIGhhdmUgcmVhbCBBUEkKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0Wm9uZVN0cmluZyhsb2NhbGUsIGNvZGUsICgoSW50ZWdlciljb250ZXh0KS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICB9CisgICAgCisgICAgTWFwIHpvbmVEYXRhID0gbmV3IEhhc2hNYXAoKTsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBnZXRab25lU3RyaW5nKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgb2xzb25JRCwgaW50IGl0ZW0pIHsKKyAgICAgICAgTWFwIGRhdGEgPSAoTWFwKXpvbmVEYXRhLmdldChsb2NhbGUpOworICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICBkYXRhID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGlmIChTSE9XX0FMTCkgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBpZiAoU0hPV19BTEwpIFN5c3RlbS5vdXQucHJpbnRsbigiem9uZXMgZm9yICIgKyBsb2NhbGUpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGFibGUgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJ6b25lU3RyaW5ncyIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJsZS5nZXRTaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN0cmluZ1NldCA9IHRhYmxlLmdldChpKTsKKyAgICAgICAgICAgICAgICAvL0lDVVJlc291cmNlQnVuZGxlIHN0cmluZ1NldCA9IHRhYmxlLmdldFdpdGhGYWxsYmFjayhTdHJpbmcudmFsdWVPZihpKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IHN0cmluZ1NldC5nZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgaWYgKFNIT1dfQUxMKSBTeXN0ZW0ub3V0LnByaW50bG4oImtleTogIiArIGtleSk7CisgICAgICAgICAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzdHJpbmdTZXQuZ2V0U2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVudHJ5ID0gc3RyaW5nU2V0LmdldFN0cmluZyhqKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFNIT1dfQUxMKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgZW50cnk6ICIgKyBlbnRyeSk7CisgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKGVudHJ5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGF0YS5wdXQoa2V5LCBsaXN0LnRvQXJyYXkobmV3IFN0cmluZ1tsaXN0LnNpemUoKV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHpvbmVEYXRhLnB1dChsb2NhbGUsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHN0cmluZ3MgPSAoU3RyaW5nW10pIGRhdGEuZ2V0KG9sc29uSUQpOworICAgICAgICBpZiAoc3RyaW5ncyA9PSBudWxsIHx8IGl0ZW0gPj0gc3RyaW5ncy5sZW5ndGgpIHJldHVybiBvbHNvbklEOworICAgICAgICByZXR1cm4gc3RyaW5nc1tpdGVtXTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZ1tdW10gem9uZXNBbGlhc2VzID0geworICAgICAgICB7IkFtZXJpY2EvQXRrYSIsICJBbWVyaWNhL0F0a2EifSwKKyAgICAgICAgeyJBbWVyaWNhL0Vuc2VuYWRhIiwgIkFtZXJpY2EvRW5zZW5hZGEifSwKKyAgICAgICAgeyJBbWVyaWNhL0ZvcnRfV2F5bmUiLCAiQW1lcmljYS9Gb3J0X1dheW5lIn0sCisgICAgICAgIHsiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpcyIsICJBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIn0sCisgICAgICAgIHsiQW1lcmljYS9LZW50dWNreS9Mb3Vpc3ZpbGxlIiwgIkFtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZSJ9LAorICAgICAgICB7IkFtZXJpY2EvS25veF9JTiIsICJBbWVyaWNhL0tub3hfSU4ifSwKKyAgICAgICAgeyJBbWVyaWNhL1BvcnRvX0FjcmUiLCAiQW1lcmljYS9Qb3J0b19BY3JlIn0sCisgICAgICAgIHsiQW1lcmljYS9Sb3NhcmlvIiwgIkFtZXJpY2EvUm9zYXJpbyJ9LAorICAgICAgICB7IkFtZXJpY2EvU2hpcHJvY2siLCAiQW1lcmljYS9TaGlwcm9jayJ9LAorICAgICAgICB7IkFtZXJpY2EvVmlyZ2luIiwgIkFtZXJpY2EvVmlyZ2luIn0sCisgICAgICAgIHsiQW50YXJjdGljYS9Tb3V0aF9Qb2xlIiwgIkFudGFyY3RpY2EvU291dGhfUG9sZSJ9LAorICAgICAgICB7IkFyY3RpYy9Mb25neWVhcmJ5ZW4iLCAiQXJjdGljL0xvbmd5ZWFyYnllbiJ9LAorICAgICAgICB7IkFzaWEvQXNoa2hhYmFkIiwgIkFzaWEvQXNoa2hhYmFkIn0sCisgICAgICAgIHsiQXNpYS9DaHVuZ2tpbmciLCAiQXNpYS9DaHVuZ2tpbmcifSwKKyAgICAgICAgeyJBc2lhL0RhY2NhIiwgIkFzaWEvRGFjY2EifSwKKyAgICAgICAgeyJBc2lhL0lzdGFuYnVsIiwgIkFzaWEvSXN0YW5idWwifSwKKyAgICAgICAgeyJBc2lhL01hY2FvIiwgIkFzaWEvTWFjYW8ifSwKKyAgICAgICAgeyJBc2lhL1RlbF9Bdml2IiwgIkFzaWEvVGVsX0F2aXYifSwKKyAgICAgICAgeyJBc2lhL1RoaW1idSIsICJBc2lhL1RoaW1idSJ9LAorICAgICAgICB7IkFzaWEvVWp1bmdfUGFuZGFuZyIsICJBc2lhL1VqdW5nX1BhbmRhbmcifSwKKyAgICAgICAgeyJBc2lhL1VsYW5fQmF0b3IiLCAiQXNpYS9VbGFuX0JhdG9yIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL0FDVCIsICJBdXN0cmFsaWEvQUNUIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL0NhbmJlcnJhIiwgIkF1c3RyYWxpYS9DYW5iZXJyYSJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9MSEkiLCAiQXVzdHJhbGlhL0xISSJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9OU1ciLCAiQXVzdHJhbGlhL05TVyJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9Ob3J0aCIsICJBdXN0cmFsaWEvTm9ydGgifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvUXVlZW5zbGFuZCIsICJBdXN0cmFsaWEvUXVlZW5zbGFuZCJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9Tb3V0aCIsICJBdXN0cmFsaWEvU291dGgifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvVGFzbWFuaWEiLCAiQXVzdHJhbGlhL1Rhc21hbmlhIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL1ZpY3RvcmlhIiwgIkF1c3RyYWxpYS9WaWN0b3JpYSJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9XZXN0IiwgIkF1c3RyYWxpYS9XZXN0In0sCisgICAgICAgIHsiQXVzdHJhbGlhL1lhbmNvd2lubmEiLCAiQXVzdHJhbGlhL1lhbmNvd2lubmEifSwKKyAgICAgICAgeyJCcmF6aWwvQWNyZSIsICJCcmF6aWwvQWNyZSJ9LAorICAgICAgICB7IkJyYXppbC9EZU5vcm9uaGEiLCAiQnJhemlsL0RlTm9yb25oYSJ9LAorICAgICAgICB7IkJyYXppbC9FYXN0IiwgIkJyYXppbC9FYXN0In0sCisgICAgICAgIHsiQnJhemlsL1dlc3QiLCAiQnJhemlsL1dlc3QifSwKKyAgICAgICAgeyJDU1Q2Q0RUIiwgIkNTVDZDRFQifSwKKyAgICAgICAgeyJDYW5hZGEvQXRsYW50aWMiLCAiQ2FuYWRhL0F0bGFudGljIn0sCisgICAgICAgIHsiQ2FuYWRhL0NlbnRyYWwiLCAiQ2FuYWRhL0NlbnRyYWwifSwKKyAgICAgICAgeyJDYW5hZGEvRWFzdC1TYXNrYXRjaGV3YW4iLCAiQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIn0sCisgICAgICAgIHsiQ2FuYWRhL0Vhc3Rlcm4iLCAiQ2FuYWRhL0Vhc3Rlcm4ifSwKKyAgICAgICAgeyJDYW5hZGEvTW91bnRhaW4iLCAiQ2FuYWRhL01vdW50YWluIn0sCisgICAgICAgIHsiQ2FuYWRhL05ld2ZvdW5kbGFuZCIsICJDYW5hZGEvTmV3Zm91bmRsYW5kIn0sCisgICAgICAgIHsiQ2FuYWRhL1BhY2lmaWMiLCAiQ2FuYWRhL1BhY2lmaWMifSwKKyAgICAgICAgeyJDYW5hZGEvU2Fza2F0Y2hld2FuIiwgIkNhbmFkYS9TYXNrYXRjaGV3YW4ifSwKKyAgICAgICAgeyJDYW5hZGEvWXVrb24iLCAiQ2FuYWRhL1l1a29uIn0sCisgICAgICAgIHsiQ2hpbGUvQ29udGluZW50YWwiLCAiQ2hpbGUvQ29udGluZW50YWwifSwKKyAgICAgICAgeyJDaGlsZS9FYXN0ZXJJc2xhbmQiLCAiQ2hpbGUvRWFzdGVySXNsYW5kIn0sCisgICAgICAgIHsiQ3ViYSIsICJDdWJhIn0sCisgICAgICAgIHsiRVNUIiwgIkVTVCJ9LAorICAgICAgICB7IkVTVDVFRFQiLCAiRVNUNUVEVCJ9LAorICAgICAgICB7IkVneXB0IiwgIkVneXB0In0sCisgICAgICAgIHsiRWlyZSIsICJFaXJlIn0sCisgICAgICAgIHsiRXRjL0dNVCswIiwgIkV0Yy9HTVQrMCJ9LAorICAgICAgICB7IkV0Yy9HTVQtMCIsICJFdGMvR01ULTAifSwKKyAgICAgICAgeyJFdGMvR01UMCIsICJFdGMvR01UMCJ9LAorICAgICAgICB7IkV0Yy9HcmVlbndpY2giLCAiRXRjL0dyZWVud2ljaCJ9LAorICAgICAgICB7IkV0Yy9Vbml2ZXJzYWwiLCAiRXRjL1VuaXZlcnNhbCJ9LAorICAgICAgICB7IkV0Yy9adWx1IiwgIkV0Yy9adWx1In0sCisgICAgICAgIHsiRXVyb3BlL05pY29zaWEiLCAiRXVyb3BlL05pY29zaWEifSwKKyAgICAgICAgeyJFdXJvcGUvVGlyYXNwb2wiLCAiRXVyb3BlL1RpcmFzcG9sIn0sCisgICAgICAgIHsiR0IiLCAiR0IifSwKKyAgICAgICAgeyJHQi1FaXJlIiwgIkdCLUVpcmUifSwKKyAgICAgICAgeyJHTVQiLCAiR01UIn0sCisgICAgICAgIHsiR01UKzAiLCAiR01UKzAifSwKKyAgICAgICAgeyJHTVQtMCIsICJHTVQtMCJ9LAorICAgICAgICB7IkdNVDAiLCAiR01UMCJ9LAorICAgICAgICB7IkdyZWVud2ljaCIsICJHcmVlbndpY2gifSwKKyAgICAgICAgeyJIU1QiLCAiSFNUIn0sCisgICAgICAgIHsiSG9uZ2tvbmciLCAiSG9uZ2tvbmcifSwKKyAgICAgICAgeyJJY2VsYW5kIiwgIkljZWxhbmQifSwKKyAgICAgICAgeyJJcmFuIiwgIklyYW4ifSwKKyAgICAgICAgeyJJc3JhZWwiLCAiSXNyYWVsIn0sCisgICAgICAgIHsiSmFtYWljYSIsICJKYW1haWNhIn0sCisgICAgICAgIHsiSmFwYW4iLCAiSmFwYW4ifSwKKyAgICAgICAgeyJLd2FqYWxlaW4iLCAiS3dhamFsZWluIn0sCisgICAgICAgIHsiTGlieWEiLCAiTGlieWEifSwKKyAgICAgICAgeyJNU1QiLCAiTVNUIn0sCisgICAgICAgIHsiTVNUN01EVCIsICJNU1Q3TURUIn0sCisgICAgICAgIHsiTWV4aWNvL0JhamFOb3J0ZSIsICJNZXhpY28vQmFqYU5vcnRlIn0sCisgICAgICAgIHsiTWV4aWNvL0JhamFTdXIiLCAiTWV4aWNvL0JhamFTdXIifSwKKyAgICAgICAgeyJNZXhpY28vR2VuZXJhbCIsICJNZXhpY28vR2VuZXJhbCJ9LAorICAgICAgICB7Ik1pZGVhc3QvUml5YWRoODciLCAiTWlkZWFzdC9SaXlhZGg4NyJ9LAorICAgICAgICB7Ik1pZGVhc3QvUml5YWRoODgiLCAiTWlkZWFzdC9SaXlhZGg4OCJ9LAorICAgICAgICB7Ik1pZGVhc3QvUml5YWRoODkiLCAiTWlkZWFzdC9SaXlhZGg4OSJ9LAorICAgICAgICB7Ik5aIiwgIk5aIn0sCisgICAgICAgIHsiTlotQ0hBVCIsICJOWi1DSEFUIn0sCisgICAgICAgIHsiTmF2YWpvIiwgIk5hdmFqbyJ9LAorICAgICAgICB7IlBSQyIsICJQUkMifSwKKyAgICAgICAgeyJQU1Q4UERUIiwgIlBTVDhQRFQifSwKKyAgICAgICAgeyJQYWNpZmljL1NhbW9hIiwgIlBhY2lmaWMvU2Ftb2EifSwKKyAgICAgICAgeyJQb2xhbmQiLCAiUG9sYW5kIn0sCisgICAgICAgIHsiUG9ydHVnYWwiLCAiUG9ydHVnYWwifSwKKyAgICAgICAgeyJST0MiLCAiUk9DIn0sCisgICAgICAgIHsiUk9LIiwgIlJPSyJ9LAorICAgICAgICB7IlNpbmdhcG9yZSIsICJTaW5nYXBvcmUifSwKKyAgICAgICAgeyJTeXN0ZW1WL0FTVDQiLCAiU3lzdGVtVi9BU1Q0In0sCisgICAgICAgIHsiU3lzdGVtVi9BU1Q0QURUIiwgIlN5c3RlbVYvQVNUNEFEVCJ9LAorICAgICAgICB7IlN5c3RlbVYvQ1NUNiIsICJTeXN0ZW1WL0NTVDYifSwKKyAgICAgICAgeyJTeXN0ZW1WL0NTVDZDRFQiLCAiU3lzdGVtVi9DU1Q2Q0RUIn0sCisgICAgICAgIHsiU3lzdGVtVi9FU1Q1IiwgIlN5c3RlbVYvRVNUNSJ9LAorICAgICAgICB7IlN5c3RlbVYvRVNUNUVEVCIsICJTeXN0ZW1WL0VTVDVFRFQifSwKKyAgICAgICAgeyJTeXN0ZW1WL0hTVDEwIiwgIlN5c3RlbVYvSFNUMTAifSwKKyAgICAgICAgeyJTeXN0ZW1WL01TVDciLCAiU3lzdGVtVi9NU1Q3In0sCisgICAgICAgIHsiU3lzdGVtVi9NU1Q3TURUIiwgIlN5c3RlbVYvTVNUN01EVCJ9LAorICAgICAgICB7IlN5c3RlbVYvUFNUOCIsICJTeXN0ZW1WL1BTVDgifSwKKyAgICAgICAgeyJTeXN0ZW1WL1BTVDhQRFQiLCAiU3lzdGVtVi9QU1Q4UERUIn0sCisgICAgICAgIHsiU3lzdGVtVi9ZU1Q5IiwgIlN5c3RlbVYvWVNUOSJ9LAorICAgICAgICB7IlN5c3RlbVYvWVNUOVlEVCIsICJTeXN0ZW1WL1lTVDlZRFQifSwKKyAgICAgICAgeyJUdXJrZXkiLCAiVHVya2V5In0sCisgICAgICAgIHsiVUNUIiwgIlVDVCJ9LAorICAgICAgICB7IlVTL0FsYXNrYSIsICJVUy9BbGFza2EifSwKKyAgICAgICAgeyJVUy9BbGV1dGlhbiIsICJVUy9BbGV1dGlhbiJ9LAorICAgICAgICB7IlVTL0FyaXpvbmEiLCAiVVMvQXJpem9uYSJ9LAorICAgICAgICB7IlVTL0NlbnRyYWwiLCAiVVMvQ2VudHJhbCJ9LAorICAgICAgICB7IlVTL0Vhc3QtSW5kaWFuYSIsICJVUy9FYXN0LUluZGlhbmEifSwKKyAgICAgICAgeyJVUy9FYXN0ZXJuIiwgIlVTL0Vhc3Rlcm4ifSwKKyAgICAgICAgeyJVUy9IYXdhaWkiLCAiVVMvSGF3YWlpIn0sCisgICAgICAgIHsiVVMvSW5kaWFuYS1TdGFya2UiLCAiVVMvSW5kaWFuYS1TdGFya2UifSwKKyAgICAgICAgeyJVUy9NaWNoaWdhbiIsICJVUy9NaWNoaWdhbiJ9LAorICAgICAgICB7IlVTL01vdW50YWluIiwgIlVTL01vdW50YWluIn0sCisgICAgICAgIHsiVVMvUGFjaWZpYyIsICJVUy9QYWNpZmljIn0sCisgICAgICAgIHsiVVMvUGFjaWZpYy1OZXciLCAiVVMvUGFjaWZpYy1OZXcifSwKKyAgICAgICAgeyJVUy9TYW1vYSIsICJVUy9TYW1vYSJ9LAorICAgICAgICB7IlVUQyIsICJVVEMifSwKKyAgICAgICAgeyJVbml2ZXJzYWwiLCAiVW5pdmVyc2FsIn0sCisgICAgICAgIHsiVy1TVSIsICJXLVNVIn0sCisgICAgICAgIHsiWnVsdSIsICJadWx1In0sCisgICAgICAgIHsiQUNUIiwgIkFDVCJ9LAorICAgICAgICB7IkFFVCIsICJBRVQifSwKKyAgICAgICAgeyJBR1QiLCAiQUdUIn0sCisgICAgICAgIHsiQVJUIiwgIkFSVCJ9LAorICAgICAgICB7IkFTVCIsICJBU1QifSwKKyAgICAgICAgeyJCRVQiLCAiQkVUIn0sCisgICAgICAgIHsiQlNUIiwgIkJTVCJ9LAorICAgICAgICB7IkNBVCIsICJDQVQifSwKKyAgICAgICAgeyJDTlQiLCAiQ05UIn0sCisgICAgICAgIHsiQ1NUIiwgIkNTVCJ9LAorICAgICAgICB7IkNUVCIsICJDVFQifSwKKyAgICAgICAgeyJFQVQiLCAiRUFUIn0sCisgICAgICAgIHsiRUNUIiwgIkVDVCJ9LAorICAgICAgICB7IklFVCIsICJJRVQifSwKKyAgICAgICAgeyJJU1QiLCAiSVNUIn0sCisgICAgICAgIHsiSlNUIiwgIkpTVCJ9LAorICAgICAgICB7Ik1JVCIsICJNSVQifSwKKyAgICAgICAgeyJORVQiLCAiTkVUIn0sCisgICAgICAgIHsiTlNUIiwgIk5TVCJ9LAorICAgICAgICB7IlBMVCIsICJQTFQifSwKKyAgICAgICAgeyJQTlQiLCAiUE5UIn0sCisgICAgICAgIHsiUFJUIiwgIlBSVCJ9LAorICAgICAgICB7IlBTVCIsICJQU1QifSwKKyAgICAgICAgeyJTU1QiLCAiU1NUIn0sCisgICAgICAgIHsiVlNUIiwgIlZTVCJ9LAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBIYWNrIHRvIGdldCBjb2RlIGxpc3QKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gZ2V0Q29kZXMoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyB0YWJsZU5hbWUpIHsKKyAgICAgICAgLy8gVE9ETyByZW1vdmUgVWdseSBIYWNrCisgICAgICAgIC8vIGdldCBzdHVmZgorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRhYmxlID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjayh0YWJsZU5hbWUpOworICAgICAgICAvLyBjb3B5IGludG8gYXJyYXkKKyAgICAgICAgQXJyYXlMaXN0IHN0dWZmID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGtleXMgPSB0YWJsZS5nZXRLZXlzKCk7IGtleXMuaGFzTW9yZUVsZW1lbnRzKCk7KSB7CisgICAgICAgICAgICBzdHVmZi5hZGQoa2V5cy5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSByZXN1bHQgPSBuZXcgU3RyaW5nW3N0dWZmLnNpemUoKV07CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pIHN0dWZmLnRvQXJyYXkocmVzdWx0KTsKKyAgICAgICAgLy9yZXR1cm4gbmV3IFN0cmluZ1tdIHsiTGF0biIsICJDeXJsIn07CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHR3byB1bmtub3duIHN0cmluZ3MsIGp1c3QgdG8gbWFrZSBzdXJlIHRoZXkgZ2V0IHBhc3NlZCB0aHJvdWdoIHdpdGhvdXQgY29sbGlkaW5nCisgICAgICogQHBhcmFtIHN0cmluZ3MKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBhZGRVbmtub3duKFN0cmluZ1tdIHN0cmluZ3MsIGludCBsZW4pIHsKKyAgICAgICAgU3RyaW5nW10gcmVzdWx0ID0gbmV3IFN0cmluZ1tzdHJpbmdzLmxlbmd0aCArIDJdOworICAgICAgICByZXN1bHRbMF0gPSAieDF1bmtub3duIi5zdWJzdHJpbmcoMCxsZW4pOworICAgICAgICByZXN1bHRbMV0gPSAieTFua25vd24iLnN1YnN0cmluZygwLGxlbik7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3RyaW5ncywwLHJlc3VsdCwyLHN0cmluZ3MubGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgTWFwIGJvZ3VzWm9uZXMgPSBudWxsOworICAgIAorICAgIHByaXZhdGUgTWFwIGdldEFsaWFzTWFwKCkgeworICAgICAgICBpZiAoYm9ndXNab25lcyA9PSBudWxsKSB7CisgICAgICAgICAgICBib2d1c1pvbmVzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgem9uZXNBbGlhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYm9ndXNab25lcy5wdXQoem9uZXNBbGlhc2VzW2ldWzBdLCB6b25lc0FsaWFzZXNbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBib2d1c1pvbmVzOworICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrKFN0cmluZyB0eXBlLCBVTG9jYWxlIGxvY2FsZSwgCisgICAgICBTdHJpbmdbXSBjb2RlcywgT2JqZWN0W10gY29udGV4dExpc3QsIERpc3BsYXlOYW1lR2V0dGVyIGdldHRlcikgeworICAgICAgICBpZiAoY29udGV4dExpc3QgPT0gbnVsbCkgY29udGV4dExpc3QgPSBOT19DT05URVhUOworICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGNvbnRleHRMaXN0Lmxlbmd0aDsgKytrKSBjb2RlVG9OYW1lW2tdLmNsZWFyKCk7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29kZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIFN0cmluZyBjb2RlID0gY29kZXNbal07CisgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGNvbnRleHRMaXN0Lmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGNvbnRleHQgPSBjb250ZXh0TGlzdFtrXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGdldHRlci5nZXQobG9jYWxlLCBjb2RlLCBjb250ZXh0KTsKKyAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSBudWxsIHx8IG5hbWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJOdWxsIG9yIFplcm8tTGVuZ3RoIERpc3BsYXkgTmFtZVx0IiArIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0KCIgKyAoKGNvbnRleHQgIT0gbnVsbCkgPyBjb250ZXh0IDogIiIpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICI6XHQiICsgbG9jYWxlICsgIiBbIiArIGxvY2FsZS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkVOR0xJU0gpICsgIl0iCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBjb2RlICsgIiBbIiArIGdldHRlci5nZXQoVUxvY2FsZS5FTkdMSVNILCBjb2RlLCBjb250ZXh0KSArICJdIgorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIG90aGVyQ29kZSA9IChTdHJpbmcpIGNvZGVUb05hbWVba10uZ2V0KG5hbWUpOworICAgICAgICAgICAgICAgIGlmIChvdGhlckNvZGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJEaXNwbGF5IE5hbWVzIGNvbGxpZGUgZm9yXHQiICsgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0KCIgKyAoKGNvbnRleHQgIT0gbnVsbCkgPyBjb250ZXh0IDogIiIpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICI6XHQiICsgbG9jYWxlICsgIiBbIiArIGxvY2FsZS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkVOR0xJU0gpICsgIl0iCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBjb2RlICsgIiBbIiArIGdldHRlci5nZXQoVUxvY2FsZS5FTkdMSVNILCBjb2RlLCBjb250ZXh0KSArICJdIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQmICIgKyBvdGhlckNvZGUgKyAiIFsiICsgZ2V0dGVyLmdldChVTG9jYWxlLkVOR0xJU0gsIG90aGVyQ29kZSwgY29udGV4dCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0PT4gIiArIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjb2RlVG9OYW1lW2tdLnB1dChuYW1lLCBjb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFNIT1dfQUxMKSBsb2dsbigKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgCisgICAgICAgICAgICAgICAgICAgICAgICArICIgKCIgKyAoKGNvbnRleHQgIT0gbnVsbCkgPyBjb250ZXh0IDogIiIpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBsb2NhbGUgKyAiIFsiICsgbG9jYWxlLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuRU5HTElTSCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0IiArIGNvZGUgKyAiWyIgKyBnZXR0ZXIuZ2V0KFVMb2NhbGUuRU5HTElTSCwgY29kZSwgY29udGV4dCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0PT4gIiArIG5hbWUgCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRWxhcHNlZFRpbWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9FbGFwc2VkVGltZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDZjM2RlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRWxhcHNlZFRpbWVyLmphdmEKQEAgLTAsMCArMSwxMDYgQEAKKy8vCisvLyAgRWxhcHNlZFRpbWVyLmphdmEKKy8vCisvLyAgQ3JlYXRlZCBieSBTdGV2ZW4gUi4gTG9vbWlzIG9uIDExLzExLzIwMDUuCisvLyAgQ29weXJpZ2h0IDIwMDUtMjAwNiBJQk0uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CisKKworLyoqCisgKiBTaW1wbGUgc3RvcHdhdGNoIHRpbWVyLgorICogVXNhZ2U6ICAgeyBFbGFwc2VkVGltZXIgZXQgPSBuZXcgRWxhcHNlZFRpbWVyKCk7IAorICogICAgICAgICAgICBkb19zb21lX3N0dWZmOyAgCisgKiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSXQgdG9vayAiICsgZXQgKyAiIHRvIGRvIHN0dWZmLiIpOyB9CisgKgorICogQWR2YW5jZWQ6ICAgeyBFbGFwc2VkVGltZXIgZXQgPSBuZXcgRWxhcHNlZFRpbWVyKCJUaGluZzIncyB0aW1lOiB7MH0iKTsgIC8vIG1lc3NhZ2Vmb3JtYXQgcGF0dGVybgorICogICAgICAgICAgICBkb190aGluZ18yKCk7ICAKKyAqICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGV0LnRvU3RyaW5nKCkpOyB9CisgKgorICogTW9yZSBhZHZhbmNlZDogIE51bWJlckZvcm1hdCBhbmQvb3IgTWVzc2FnZUZvcm1hdCBjYW4gYmUgcHJvdmlkZWQgaW4gdGhlIGNvbnN0cnVjdG9yCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBFbGFwc2VkVGltZXIgeworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHByaW50IHRoZSBlbGFzcGVkIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZWxhcHNlZFRpbWUobG9uZyBzdGFydCwgbG9uZyBlbmQpIHsKKyAgICAgICAgcmV0dXJuIGRpZmZUaW1lKGdldEZvcm1hdCgpLCBzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBlbGFwc2VkVGltZShsb25nIHN0YXJ0KSB7CisgICAgICAgIHJldHVybiBkaWZmVGltZShnZXRGb3JtYXQoKSwgc3RhcnQsIFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisgICAgCisgICAgLy8gY2xhc3MKKworICAgIHByaXZhdGUgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICBwcml2YXRlIE51bWJlckZvcm1hdCBteUR1cmF0aW9uRm9ybWF0ID0gbnVsbDsKKyAgICBwcml2YXRlIE1lc3NhZ2VGb3JtYXQgbXlNc2dGb3JtYXQgPSBudWxsOworCisgICAgcHVibGljIEVsYXBzZWRUaW1lcigpIHsgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIEVsYXBzZWRUaW1lcihNZXNzYWdlRm9ybWF0IGFNc2dGbXQpIHsKKyAgICAgICAgbXlNc2dGb3JtYXQgPSBhTXNnRm10OworICAgIH0KKworICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoTnVtYmVyRm9ybWF0IGFOdW1GbXQpIHsKKyAgICAgICAgbXlEdXJhdGlvbkZvcm1hdCA9IGFOdW1GbXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoTWVzc2FnZUZvcm1hdCBhTXNnRm10LCBOdW1iZXJGb3JtYXQgYU51bUZtdCkgeworICAgICAgICBteU1zZ0Zvcm1hdCA9IGFNc2dGbXQ7CisgICAgICAgIG15RHVyYXRpb25Gb3JtYXQgPSBhTnVtRm10OworICAgIH0KKworICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgbXlNc2dGb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRWxhcHNlZFRpbWVyKFN0cmluZyBwYXR0ZXJuLCBOdW1iZXJGb3JtYXQgYU51bUZtdCkgeworICAgICAgICBteU1zZ0Zvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4pOworICAgICAgICBteUR1cmF0aW9uRm9ybWF0ID0gYU51bUZtdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGVsYXBzZWQgdGltZSBpbiBzZWNvbmRzIHNpbmNlIG9iamVjdCBjcmVhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgdG9TdHJpbmcoKSB7IAorICAgICAgICBsb25nIGVuZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgU3RyaW5nIGR1cmF0aW9uID0gZGlmZlRpbWUobXlEdXJhdGlvbkZvcm1hdCwgc3RhcnRUaW1lLCBlbmRUaW1lKTsKKyAgICAgICAgaWYobXlNc2dGb3JtYXQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGR1cmF0aW9uOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG15TXNnRm9ybWF0LmZvcm1hdChuZXcgT2JqZWN0W10ge2R1cmF0aW9ufSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ0Zvcm1hdCA9IG51bGw7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEZvcm1hdCgpIHsKKyAgICAgICAgaWYoZ0Zvcm1hdCA9PSBudWxsKSB7CisgICAgICAgICAgICBnRm9ybWF0ID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnRm9ybWF0OyAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGRpZmZUaW1lKE51bWJlckZvcm1hdCBmbXQsIGxvbmcgc3RhcnQsIGxvbmcgZW5kKSB7CisgICAgICAgIGlmKGZtdD09bnVsbCkgeworICAgICAgICAgICAgZm10ID0gZ2V0Rm9ybWF0KCk7CisgICAgICAgIH0KKyAgICAgICAgc3luY2hyb25pemVkKGZtdCkgeworICAgICAgICAgICAgbG9uZyBhZ2UgPSBlbmQgLSBzdGFydDsKKyAgICAgICAgICAgIGRvdWJsZSBkaWZmID0gKGRvdWJsZSlhZ2U7CisgICAgICAgICAgICBkaWZmID0gZGlmZi8oZG91YmxlKTEwMDAuMDsgLy8gbWlsbGlzIHBlciBzZWNvbmQKKyAgICAgICAgICAgIHJldHVybiBmbXQuZm9ybWF0KGRpZmYpOworICAgICAgICB9CisgICAgfSAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0VxdWF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0VxdWF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2IwMzUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRXF1YXRvci5qYXZhCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK3B1YmxpYyBpbnRlcmZhY2UgRXF1YXRvciB7CisgICAgLyoqCisgICAgICAqIENvbXBhcmF0b3IgZnVuY3Rpb24uIElmIG92ZXJyaWRkZW4sIG11c3QgaGFuZGxlIGNhc2Ugb2YgbnVsbCwKKyAgICAgICogYW5kIGNvbXBhcmUgYW55IHR3byBvYmplY3RzIHRoYXQgY291bGQgYmUgY29tcGFyZWQuCisgICAgICAqIE11c3Qgb2JleSBub3JtYWwgcnVsZXMgb2Ygc3ltbWV0cnk6IGE9YiA9PiBiPWEKKyAgICAgICogYW5kIHRyYW5zaXRpdml0eTogYT1iICYgYj1jID0+IGE9YikKKyAgICAgICogQHBhcmFtIGEKKyAgICAgICogQHBhcmFtIGIKKyAgICAgICogQHJldHVybiB0cnVlIGlmIGEgYW5kIGIgYXJlIGVxdWFsCisgICAgICAqLworICAgICBwdWJsaWMgYm9vbGVhbiBpc0VxdWFsKE9iamVjdCBhLCBPYmplY3QgYik7CisKKyAgICAvKioKKyAgICAgKiBNdXN0IG9iZXkgbm9ybWFsIHJ1bGVzOiBhPWIgPT4gZ2V0SGFzaENvZGUoYSk9Z2V0SGFzaENvZGUoYikKKyAgICAgKiBAcGFyYW0gb2JqZWN0CisgICAgICogQHJldHVybiBhIGhhc2ggY29kZSBmb3IgdGhlIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SGFzaENvZGUoT2JqZWN0IG9iamVjdCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRmlsZVV0aWxpdGllcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRmlsZVV0aWxpdGllcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YzU4ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9GaWxlVXRpbGl0aWVzLmphdmEKQEAgLTAsMCArMSw4MSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBGaWxlVXRpbGl0aWVzIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kRmlsZShTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBlbmNvZGluZywgUHJpbnRXcml0ZXIgb3V0cHV0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgIAlhcHBlbmRGaWxlKGZpbGVuYW1lLCBlbmNvZGluZywgb3V0cHV0LCBudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZEZpbGUoU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcsIFByaW50V3JpdGVyIG91dHB1dCwgU3RyaW5nW10gcmVwbGFjZW1lbnRMaXN0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IEJhZ0Zvcm1hdHRlci5vcGVuUmVhZGVyKCIiLCBmaWxlbmFtZSwgZW5jb2RpbmcpOworICAgICAgICAvKgorICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IChlbmNvZGluZyA9PSBVVEY4X1VOSVggfHwgZW5jb2RpbmcgPT0gVVRGOF9XSU5ET1dTKSA/IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMsICJVVEY4IikgOiAgbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcyk7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzciwgMzIqMTAyNCk7CisgICAgICAgICovCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IGJyLnJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudExpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgcmVwbGFjZW1lbnRMaXN0Lmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICAJCWxpbmUgPSByZXBsYWNlKGxpbmUsIHJlcGxhY2VtZW50TGlzdFtpXSwgcmVwbGFjZW1lbnRMaXN0W2krMV0pOworICAgICAgICAgICAgCX0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKGxpbmUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgYWxsIG9jY3VyYW5jZXMgb2YgcGllY2Ugd2l0aCByZXBsYWNlbWVudCwgYW5kIHJldHVybnMgbmV3IFN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHBpZWNlLCBTdHJpbmcgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsIHx8IHNvdXJjZS5sZW5ndGgoKSA8IHBpZWNlLmxlbmd0aCgpKSByZXR1cm4gc291cmNlOworICAgIAlpbnQgcG9zID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHBvcyA9IHNvdXJjZS5pbmRleE9mKHBpZWNlLCBwb3MpOworICAgICAgICAgICAgaWYgKHBvcyA8IDApIHJldHVybiBzb3VyY2U7CisgICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2Uuc3Vic3RyaW5nKDAscG9zKSArIHJlcGxhY2VtZW50ICsgc291cmNlLnN1YnN0cmluZyhwb3MgKyBwaWVjZS5sZW5ndGgoKSk7CisgICAgICAgICAgICBwb3MgKz0gcmVwbGFjZW1lbnQubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmdbXVtdIHJlcGxhY2VtZW50cykgeworICAgICAgICByZXR1cm4gcmVwbGFjZShzb3VyY2UsIHJlcGxhY2VtZW50cywgcmVwbGFjZW1lbnRzLmxlbmd0aCk7CisgICAgfSAgICAKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZ1tdW10gcmVwbGFjZW1lbnRzLCBpbnQgY291bnQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBzb3VyY2UgPSByZXBsYWNlKHNvdXJjZSwgcmVwbGFjZW1lbnRzW2ldWzBdLCByZXBsYWNlbWVudHNbaV1bMV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfSAgICAKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZ1tdW10gcmVwbGFjZW1lbnRzLCBib29sZWFuIHJldmVyc2UpIHsKKyAgICAgICAgaWYgKCFyZXZlcnNlKSByZXR1cm4gcmVwbGFjZShzb3VyY2UsIHJlcGxhY2VtZW50cyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVwbGFjZW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBzb3VyY2UgPSByZXBsYWNlKHNvdXJjZSwgcmVwbGFjZW1lbnRzW2ldWzFdLCByZXBsYWNlbWVudHNbaV1bMF0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGFuY2hvcml6ZShTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBzb3VyY2UudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpLnJlcGxhY2VBbGwoIlteXFxwe0x9XFxwe059XSsiLCAiXyIpOworICAgICAgICBpZiAocmVzdWx0LmVuZHNXaXRoKCJfIikpIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCxyZXN1bHQubGVuZ3RoKCktMSk7CisgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiXyIpKSByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDEpOworICAgIAlyZXR1cm4gcmVzdWx0OworICAgIH0KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VCaW5hcnlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VCaW5hcnlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UwYTZmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVUJpbmFyeVRlc3QuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVQmluYXJ5OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFRyaWUuIFRlc3RzIGhlcmUgd2lsbCBiZSBzaW1wbGUsIHNpbmNlIGJvdGggQ2hhclRyaWUgYW5kIAorKiBJbnRUcmllIGFyZSB2ZXJ5IHNpbWlsYXIgYW5kIGFyZSBoZWF2aWx5IHVzZWQgaW4gb3RoZXIgcGFydHMgb2YgSUNVNEouCisqIENvZGVzIHVzaW5nIFRyaWVzIGFyZSBleHBlY3RlZCB0byBoYXZlIGRldGFpbGVkIHRlc3RzLgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEgSmFuIDAxIDIwMDIKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgSUNVQmluYXJ5VGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreyAKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICovCisgICAgcHVibGljIElDVUJpbmFyeVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdbXSkgCisgICAgeworICAgICAgICBJQ1VCaW5hcnlUZXN0IHRlc3QgPSBuZXcgSUNVQmluYXJ5VGVzdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRlc3QuZXJybG4oIkVycm9yIHRlc3RpbmcgaWN1YmluYXJ5dGVzdCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RpbmcgdGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUgVHJpZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVhZEhlYWRlcigpIAorICAgIHsKKyAgICAgICAgYnl0ZSBmb3JtYXRpZFtdID0gezEsIDIsIDMsIDR9OworICAgICAgICBieXRlIGFycmF5W10gPSB7CisgICAgICAgICAgICAvLyBoZWFkZXIgc2l6ZQorICAgICAgICAgICAgMCwgMHgxOCwgCisgICAgICAgICAgICAvLyBtYWdpYyBudW1iZXJzCisgICAgICAgICAgICAoYnl0ZSkweGRhLCAweDI3LCAKKyAgICAgICAgICAgIC8vIHNpemUKKyAgICAgICAgICAgIDAsIDAsIAorICAgICAgICAgICAgLy8gcmVzZXJ2ZWQgd29yZAorICAgICAgICAgICAgMCwgMCwgCisgICAgICAgICAgICAvLyBiaWdlbmRpYW4KKyAgICAgICAgICAgIDEsIAorICAgICAgICAgICAgLy8gY2hhcnNldCAKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAvLyBjaGFyc2l6ZQorICAgICAgICAgICAgMiwgCisgICAgICAgICAgICAvLyByZXNlcnZlZCBieXRlCisgICAgICAgICAgICAwLCAKKyAgICAgICAgICAgIC8vIGRhdGEgZm9ybWF0IGlkCisgICAgICAgICAgICAxLCAyLCAzLCA0LAorICAgICAgICAgICAgLy8gZGF0YVZlcnNpb24KKyAgICAgICAgICAgIDEsIDIsIDMsIDQsCisgICAgICAgICAgICAvLyB1bmljb2RlVmVyc2lvbgorICAgICAgICAgICAgMywgMiwgMCwgMAorICAgICAgICB9OworICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbSBpbnB1dHN0cmVhbSA9IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShhcnJheSk7CisgICAgICAgIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgYXV0aGVudGljYXRlIAorICAgICAgICAgICAgICAgID0gbmV3IElDVUJpbmFyeS5BdXRoZW50aWNhdGUoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvblswXSA9PSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgLy8gY2hlY2sgZnVsbCBkYXRhIHZlcnNpb24KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0c3RyZWFtLCBmb3JtYXRpZCwgYXV0aGVudGljYXRlKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogTGVuaWVudCBhdXRoZW50aWNhdGUgb2JqZWN0IHNob3VsZCBwYXNzIElDVUJpbmFyeS5yZWFkSGVhZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm8gcmVzdHJpY3Rpb24gdG8gdGhlIGRhdGEgdmVyc2lvbgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXRzdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0c3RyZWFtLCBmb3JtYXRpZCwgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IE51bGwgYXV0aGVudGljYXRlIG9iamVjdCBzaG91bGQgcGFzcyBJQ1VCaW5hcnkucmVhZEhlYWRlciIpOworICAgICAgICB9CisgICAgICAgIC8vIGxlbmllbnQgZGF0YSB2ZXJzaW9uCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dHN0cmVhbS5yZXNldCgpOworICAgICAgICAgICAgSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRzdHJlYW0sIGZvcm1hdGlkLCBhdXRoZW50aWNhdGUpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiBMZW5pZW50IGF1dGhlbnRpY2F0ZSBvYmplY3Qgc2hvdWxkIHBhc3MgSUNVQmluYXJ5LnJlYWRIZWFkZXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjaGFuZ2luZyB0aGUgdmVyc2lvbiB0byBhbiBpbmNvcnJlY3Qgb25lLCBleHBlY3RpbmcgZmFpbHVyZQorICAgICAgICBhcnJheVsxNl0gPSAyOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXRzdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0c3RyZWFtLCBmb3JtYXRpZCwgYXV0aGVudGljYXRlKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IEludmFsaWQgdmVyc2lvbiBudW1iZXIgc2hvdWxkIG5vdCBwYXNzIGF1dGhlbnRpY2F0ZSBvYmplY3QiKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IElDVUJpbmFyeS5yZWFkSGVhZGVyIHdpdGggaW52YWxpZCB2ZXJzaW9uIG51bWJlciBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1Yjc5MTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKQEAgLTAsMCArMSwzNTkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QgdGVzdCA9IG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZmVyZW5jZXMoKSB7CisgICAgICAgLy8gUmVzb3VyY2VCdW5kbGUgcmIgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKCJ0aCIpOworICAgICAgICAvL2xvZ2xuKCJnb3QgcmI6IiArIHJiKTsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBudWxsOworICAgICAgICBieXRlW10gYmluYXJ5RGF0YSA9IG51bGw7Ly8oYnl0ZVtdKXJiLmdldE9iamVjdCgiJSVDb2xsYXRpb25CaW4iKTsKKyAgICAgICAgT2JqZWN0IGNvbEVsZW0gPSByYi5nZXRPYmplY3QoImNvbGxhdGlvbnMiKTsKKyAgICAgICAgaWYoY29sRWxlbSBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgT2JqZWN0W11bXSBjb2xFbGVtQXJyID0gKE9iamVjdFtdW10pY29sRWxlbTsKKyAgICAgICAgICAgIGlmKCgoU3RyaW5nKWNvbEVsZW1BcnJbMF1bMF0pLmVxdWFscygiJSVDb2xsYXRpb25CaW4iKSl7ICAgCisgICAgICAgICAgICAgICBiaW5hcnlEYXRhID0gKGJ5dGVbXSkgY29sRWxlbUFyclswXVsxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJnb3QgYmluYXJ5RGF0YTogIiArIGJpbmFyeURhdGEgKyAiIGxlbmd0aDogIiArIChiaW5hcnlEYXRhID09IG51bGwgPyAwIDogYmluYXJ5RGF0YS5sZW5ndGgpKTsKKyAgICAgICAgT2JqZWN0W10gc3RyaW5nQXJyYXlEYXRhID0gKE9iamVjdFtdKXJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICAvL1N0cmluZ1tdIGNvbGxhdGlvbkRhdGEgPSBuZXcgU3RyaW5nW10geworICAgICAgICAgLy8gICAoU3RyaW5nKXN0cmluZ0FycmF5RGF0YVswXSwKKyAgICAgICAgIC8vICAgKFN0cmluZylzdHJpbmdBcnJheURhdGFbMF0KKyAgICAgICAgLy99OworICAgICAgICBsb2dsbigiZ290IHN0cmluZ0RhdGE6ICIgKyBzdHJpbmdBcnJheURhdGEgKyAiIGxlbmd0aDogIiArIHN0cmluZ0FycmF5RGF0YS5sZW5ndGgpOworICAgICAgICBsb2dsbigiZ290IHN0cmluZ0RhdGFFbGVtZW50OiAiICsgc3RyaW5nQXJyYXlEYXRhWzBdICsgIiBsZW5ndGg6ICIgKyBzdHJpbmdBcnJheURhdGEubGVuZ3RoKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImdvdCBzZGVlOiAiICsgY29sbGF0aW9uRGF0YVswXSk7CisgICAgICAgIC8vICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hhciBkYXRhIGxlbmd0aDogIiArIHN0cmluZ0FycmF5RGF0YS5sZW5ndGgoKSk7CisgICAgfQorICAgCisgICBTdHJpbmcgc2ltcGxlQWxpYXMgICA9ICJPcGVuIjsKKworICAgT2JqZWN0W11bXSB6b25lVGVzdHMgPSAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBEYXlsaWdodCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhczEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW91bnRhaW4gU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTVNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiBEYXlsaWdodCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNRFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlbnZlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhczIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgIE9iamVjdFtdIHpvbmVTdHJpbmdzID0gbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBEVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3MgQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgT2JqZWN0W10gdGVzdEdldFN0cmluZ0J5SW5kZXhBbGlhc2luZyA9ICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICBPYmplY3RbXVtdIHRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nID0gbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMFBTVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBTVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczFQYWNpZmljU3RhbmRhcmRUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMlBEVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBEVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczNMb3NBbmdlbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gYXJyYXlFcXVhbHMoT2JqZWN0W11bXSBzMSwgT2JqZWN0W11bXSBzMil7CisgICAgICAgIGJvb2xlYW4gaXNFcXVhbCA9IHRydWU7CisgICAgICAgIGlmKHMxLmxlbmd0aCAhPSBzMi5sZW5ndGgpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpPHMxLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGlmKHMxW2ldIGluc3RhbmNlb2YgT2JqZWN0W11bXSAmJgorICAgICAgICAgICAgICAgczJbaV0gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICBpZighYXJyYXlFcXVhbHMoKE9iamVjdFtdW10pczFbaV0sKE9iamVjdFtdW10pIHMyW2ldKSl7CisgICAgICAgICAgICAgICAgICAgaXNFcXVhbCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNlIGlmIChzMVtpXSBpbnN0YW5jZW9mIE9iamVjdFtdICYmCisgICAgICAgICAgICAgICAgICAgICAgczJbaV0gaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlFcXVhbHMoczFbaV0sczJbaV0pKXsKKyAgICAgICAgICAgICAgICAgICAgaXNFcXVhbCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfWVsc2UgaWYoczFbaV0gaW5zdGFuY2VvZiBPYmplY3QgJiYgczJbaV0gaW5zdGFuY2VvZiBPYmplY3QpeworICAgICAgICAgICAgICAgaWYoIXMxW2ldLmVxdWFscyhzMltpXSkpeworICAgICAgICAgICAgICAgICAgIGlzRXF1YWwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICBpc0VxdWFsID0gZmFsc2U7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpc0VxdWFsOworICAgIH0KKyAgICAKKyAgICAvKiAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxpYXNlcygpeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3RhbGlhc2VzIik7CisgICAgICAgIC8vcmIuZ2V0T2JqZWN0KCJDb2xsYXRpb25FbGVtZW50cyIpOworICAgICAgICBTdHJpbmcgczEgPSByYi5nZXRTdHJpbmcoInNpbXBsZWFsaWFzIik7CisgICAgICAgIGlmKHMxLmVxdWFscyhzaW1wbGVBbGlhcykpeworICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3QgbyA9IG51bGw7CisgICAgICAgICAgICAvLyB0ZXN0IGFsaWFzaW5nIHRocm91Z2ggYW5vdGhlciBhbGlhcworICAgICAgICAgICAgczEgPSByYi5nZXRTdHJpbmcoInJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHVrID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJ1ayIpOworICAgICAgICAgICAgaWYodWsgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgICAgIG8gPSAoKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSl1aykuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL3N0YW5kYXJkIik7CisgICAgICAgICAgICAgICAgaWYobyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICBPYmplY3RbXVtdIHZhbCA9IChPYmplY3RbXVtdKSBvOworICAgICAgICAgICAgICAgICAgICBpZihzMS5lcXVhbHModmFsWzFdWzFdKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciByZWZlcmVuY2luZ2FsaWFzIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgY29sbGF0aW9ucyByZXNvdXJjZSBvZiB1ayBidW5kbGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBPYmplY3QgYW5vdGhlcmFsaWFzID0gcmIuZ2V0T2JqZWN0KCJhbm90aGVyYWxpYXMiKTsKKyAgICAgICAgICAgIGlmKGFub3RoZXJhbGlhcyBpbnN0YW5jZW9mIE9iamVjdFtdW10mJiBvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgaWYoYXJyYXlFcXVhbHMoKE9iamVjdFtdW10pbywgKE9iamVjdFtdW10pYW5vdGhlcmFsaWFzKSl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIGFub3RoZXJhbGlhcyIpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgYW5vdGhlcmFsaWFzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgYW5vdGhlcmFsaWFzIGluIFRlc3RBbGlhcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbyA9ICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKXVrKS5nZXRPYmplY3QoImNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgIE9iamVjdCBvMSA9IHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICAgICAgaWYobzEgaW5zdGFuY2VvZiBPYmplY3RbXVtdJiYgbyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgIGlmKGFycmF5RXF1YWxzKChPYmplY3RbXVtdKW8sIChPYmplY3RbXVtdKW8xKSl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIENvbGxhdGlvbkVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBjb2xsYXRpb25zIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgY29sbGF0aW9ucyBpbiBUZXN0QWxpYXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIE9iamVjdCBvMSA9IHJiLmdldE9iamVjdCgiem9uZVRlc3RzIik7CisgICAgICAgIGlmKG8xIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICBpZihhcnJheUVxdWFscyh6b25lVGVzdHMsIChPYmplY3RbXVtdKW8xKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igem9uZVRlc3RzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3Igem9uZVRlc3RzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3Igem9uZVRlc3QgaW4gVGVzdEFsaWFzIik7CisgICAgICAgIH0KKyAgICAgICAgbzEgPSByYi5nZXRPYmplY3QoInpvbmVTdHJpbmdzIik7CisgICAgICAgIGlmKG8xIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgaWYoVXRpbGl0eS5hcnJheUVxdWFscyh6b25lU3RyaW5ncywgKE9iamVjdFtdKW8xKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igem9uZVN0cmluZ3MiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB6b25lU3RyaW5ncyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIHpvbmVTdHJpbmdzIGluIFRlc3RBbGlhcyIpOworICAgICAgICB9CisgICAgICAgIG8xID0gcmIuZ2V0T2JqZWN0KCJ0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIik7CisgICAgICAgIGlmKG8xIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgaWYoVXRpbGl0eS5hcnJheUVxdWFscyh0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLCAoT2JqZWN0W10pbzEpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgdGVzdEdldFN0cmluZ0J5SW5kZXhBbGlhc2luZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcgaW4gVGVzdEFsaWFzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG8xID0gcmIuZ2V0T2JqZWN0KCJ0ZXN0R2V0U3RyaW5nQnlLZXlBbGlhc2luZyIpOworICAgICAgICBpZihvMSBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgaWYoYXJyYXlFcXVhbHModGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmcsIChPYmplY3RbXVtdKW8xKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgdGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmciKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlLZXlBbGlhc2luZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIHRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nIGluIFRlc3RBbGlhcyIpOworICAgICAgICB9CisgICAgICAgIC8qIHNob3VsZCBub3QgZ2V0IGFuIGV4Y2VwdGlvbgorICAgICAgICByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwiZnJfQkUiKTsKKyAgICAgICAgT2JqZWN0IG8gPSByYi5nZXRPYmplY3QoIlNwZWxsb3V0UnVsZXMiKTsKKyAgICAgICAgaWYobyBpbnN0YW5jZW9mIFN0cmluZyl7CisgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIik7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIGZyX0JFIFNwZWxsb3V0UnVsZXMiKTsKKyAgICAgICAgfQorICAgICAgICByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwiemhfVFciKTsKKyAgICAgICAgbyA9IHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICBPYmplY3RbXVtdIGFyciA9IChPYmplY3RbXVtdKW87CisgICAgICAgICAgICBpZigoKFN0cmluZylhcnJbMF1bMF0pPT0gImRlZmF1bHQiKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgemhfVFcgY29sbGF0aW9ucyIpOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0IGZvciBjb2xsYXRpb25zIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIH0KKyAgICAqLworICAgIC8qCisgICAgcHVibGljIHZvaWQgVGVzdENpcmN1bGFyQWxpYXNlcygpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3RjaXJjdWxhcmFsaWFzIik7CisgICAgICAgICAgICByYi5nZXRPYmplY3QoImFhYSIpOworICAgICAgICB9Y2F0Y2goamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGlmKGUudG9TdHJpbmcoKS5pbmRleE9mKCJpcmN1bGFyIik9PS0xKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIEV4Y2VwdGlvbiBmb3IgY2lyY3VsYXIgYWxpYXNlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgRXhjZXB0aW9uIGZvciBjaXJjdWxhciBhbGlhc2VzIik7CisgICAgfSovCisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0T2JqZWN0V2l0aEZhbGxiYWNrKCl7CisgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwidGVfSU4iKTsKKyAgICAgICAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVTGlzdFJlc291cmNlQnVuZGxlKXsKKyAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBpbHJiID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYnVuZGxlOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJLZXlzL2NvbGxhdGlvbiIpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoIkNPTExBVElPTiIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgdHlwZSA9IChTdHJpbmcpIGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJUeXBlcy9jb2xsYXRpb24vZGlyZWN0Iik7CisgICAgICAgICAgICBpZighdHlwZS5lcXVhbHMoIkRJUkVDVCIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3JtIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUuIik7CisgICAgICAgIH0KKworICAgICAgICB0cnl7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUxID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJkZV9fUEhPTkVCT09LIik7CisgICAgICAgICAgICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBpbHJiID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYnVuZGxlMTsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaWxyYi5nZXRPYmplY3RXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvY29sbGF0aW9uL2RlZmF1bHQiKTsKKyAgICAgICAgICAgICAgICBpZigha2V5LmVxdWFscygicGhvbmVib29rIikpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUuIik7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIik7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICAKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlMSA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwiZnJfRlIiKTsKKyAgICAgICAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVTGlzdFJlc291cmNlQnVuZGxlKXsKKyAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBpbHJiID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYnVuZGxlMTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpbHJiLmdldE9iamVjdFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9kZWZhdWx0Iik7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscygic3RhbmRhcmQiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRPYmplY3RXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUuIik7CisgICAgICAgIH0gCisgICAgICAgIAorICAgICAgICBidW5kbGUxID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJlc19FUyIpOworICAgICAgICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGlscmIgPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGUxOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJzdGFuZGFyZCIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgbmtleSA9ICJjb2xsYXRpb25zLyIgKyBrZXk7CisgICAgICAgICAgICBPYmplY3QgbyA9IGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKG5rZXkpOworICAgICAgICAgICAgaWYobyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgIGlmKCEoKFN0cmluZykgKChPYmplY3RbXVtdKW8pWzBdWzBdKS5lcXVhbHMoIiUlQ29sbGF0aW9uQmluIikpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG9iamVjdCBmb3IgIisgbmtleSk7IAorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBvYmplY3QgZm9yICIrIG5rZXkpOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG9iamVjdCBmb3IgIisgbmtleSk7IAorICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgYnVuZGxlLiIpOworICAgICAgICB9ICAgICAgICAKKyAgICB9Ki8KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVByb3BlcnR5RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUHJvcGVydHlGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3NzI0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVByb3BlcnR5RmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsNDE3IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKworLyoqCisgKiBQcm92aWRlcyBhIGdlbmVyYWwgaW50ZXJmYWNlIGZvciBVbmljb2RlIFByb3BlcnRpZXMsIGFuZAorICogZXh0cmFjdGluZyBzZXRzIGJhc2VkIG9uIHRob3NlIHZhbHVlcy4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworCitwdWJsaWMgY2xhc3MgSUNVUHJvcGVydHlGYWN0b3J5IGV4dGVuZHMgVW5pY29kZVByb3BlcnR5LkZhY3RvcnkgeworICAgICAgICAKKyAgICBzdGF0aWMgY2xhc3MgSUNVUHJvcGVydHkgZXh0ZW5kcyBVbmljb2RlUHJvcGVydHkgeworICAgICAgICAgICAgcHJvdGVjdGVkIGludCBwcm9wRW51bSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICAgICAgCisgICAgICAgICAgICBwcm90ZWN0ZWQgSUNVUHJvcGVydHkoU3RyaW5nIHByb3BOYW1lLCBpbnQgcHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICBzZXROYW1lKHByb3BOYW1lKTsKKyAgICAgICAgICAgICAgICB0aGlzLnByb3BFbnVtID0gcHJvcEVudW07CisgICAgICAgICAgICAgICAgc2V0VHlwZShpbnRlcm5hbEdldFByb3BlcnR5VHlwZShwcm9wRW51bSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sZWFuIHNob3duRXhjZXB0aW9uID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgX2dldFZhbHVlKGludCBjb2RlUG9pbnQpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiBTdHJpbmcgdGVtcCA9IFVDaGFyYWN0ZXIuZ2V0QWdlKGNvZGVQb2ludCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLmVxdWFscygiMC4wLjAuMCIpKSByZXR1cm4gInVuYXNzaWduZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXAuZW5kc1dpdGgoIi4wLjAiKSkgcmV0dXJuIHRlbXAuc3Vic3RyaW5nKDAsdGVtcC5sZW5ndGgoKS00KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci5nZXRNaXJyb3IoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBU0VfRk9MRElORzogcmV0dXJuIFVDaGFyYWN0ZXIuZm9sZENhc2UoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLHRydWUpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0SVNPQ29tbWVudChjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRTogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0TmFtZShjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfQ0FTRV9GT0xESU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLmZvbGRDYXNlKGNvZGVQb2ludCx0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfVVBQRVJDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlRJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCksbnVsbCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOiByZXR1cm4gVUNoYXJhY3Rlci5nZXROYW1lMV8wKGNvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GQzogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GS0M6IHJldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTkZLRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GQzogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkMpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GRDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkQpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GS0M6IHJldHVybiBTdHJpbmcudmFsdWVPZihOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLQykuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIGlzTkZLRDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktEKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgaXNMb3dlcmNhc2U6IHJldHVybiBTdHJpbmcudmFsdWVPZihVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNILFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIGlzVXBwZXJjYXNlOiByZXR1cm4gU3RyaW5nLnZhbHVlT2YoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc1RpdGxlY2FzZTogcmV0dXJuIFN0cmluZy52YWx1ZU9mKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLG51bGwpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc0Nhc2Vmb2xkZWQ6IHJldHVybiBTdHJpbmcudmFsdWVPZihVQ2hhcmFjdGVyLmZvbGRDYXNlKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSx0cnVlKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgaXNDYXNlZDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVudW1WYWx1ZSA9IC0xOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNvZGVQb2ludCwgcHJvcEVudW0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudW1WYWx1ZSA+PSAwKSB2YWx1ZSA9IGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sZW51bVZhbHVlLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2hvd25FeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZhaWw6ICIgKyBnZXROYW1lKCkgKyAiLCAiICsgSW50ZWdlci50b0hleFN0cmluZyhjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bkV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IFN0cmluZy52YWx1ZU9mKGVudW1WYWx1ZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5ET1VCTEVfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIG51bSA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAobnVtID09IFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSkgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcobnVtKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogRml4IEhBQ0sgLS0gQVBJIGRlZmljaWVudAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWVBbGlhcyBudWxsIGlmIHVudXNlZC4KKyAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZUVudW0gLTEgaWYgdW51c2VkCisgICAgICAgICAgICAgKiBAcGFyYW0gbmFtZUNob2ljZQorICAgICAgICAgICAgICogQHJldHVybgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRGaXhlZFZhbHVlQWxpYXMoU3RyaW5nIHZhbHVlQWxpYXMsIGludCB2YWx1ZUVudW0sIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtID49IFVQcm9wZXJ0eS5TVFJJTkdfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVDaG9pY2UgIT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORykgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPHN0cmluZz4iOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcEVudW0gPj0gVVByb3BlcnR5LkRPVUJMRV9TVEFSVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZUNob2ljZSAhPSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICI8bnVtYmVyPiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZUFsaWFzICE9IG51bGwgJiYgIXZhbHVlQWxpYXMuZXF1YWxzKCI8aW50ZWdlcj4iKSkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZUVudW0gPSBmaXhlZEdldFByb3BlcnR5VmFsdWVFbnVtKHByb3BFbnVtLHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZXNlIGFyZSBkZWZpbmVkIGJhZGx5LCB0aGVyZSBtYXkgYmUgbm8gbm9ybWFsIChsb25nKSBuYW1lLgorICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIAorICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLCB2YWx1ZUVudW0sIG5hbWVDaG9pY2UpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAvLyBIQUNLIHRyeSBvdGhlciBuYW1lY2hvaWNlCisgICAgICAgICAgICAgICAgaWYgKG5hbWVDaG9pY2UgPT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORykgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLHZhbHVlRW51bSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPGludGVnZXI+IjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnQgZml4ZWRHZXRQcm9wZXJ0eVZhbHVlRW51bShpbnQgcHJvcEVudW0sIFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocHJvcEVudW0sIHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnBhcnNlSW50KHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHN0YXRpYyBNYXAgZml4U2tlbGV0b24gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUoaW50IHByb3BFbnVtLCBpbnQgdmFsdWVFbnVtLCBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sdmFsdWVFbnVtLG5hbWVDaG9pY2UpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3VmFsdWUgPSAoU3RyaW5nKSBmaXhTa2VsZXRvbi5nZXQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuSk9JTklOR19HUk9VUCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcmVndWxhcml6ZShuZXdWYWx1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXhTa2VsZXRvbi5wdXQodmFsdWUsIG5ld1ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmFsdWU7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgTGlzdCBfZ2V0TmFtZUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYWxpYXMgPSBTdHJpbmdfRXh0cmFzLmdldChwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgaWYgKGFsaWFzID09IG51bGwpIGFsaWFzID0gQmluYXJ5X0V4dHJhcy5nZXQocHJvcEVudW0pOworICAgICAgICAgICAgICAgIGlmIChhbGlhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShhbGlhcywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoZ2V0Rml4ZWRQcm9wZXJ0eU5hbWUocHJvcEVudW0sIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLlNIT1JUKSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGdldEZpeGVkUHJvcGVydHlOYW1lKHByb3BFbnVtLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXRGaXhlZFByb3BlcnR5TmFtZShpbnQgcHJvcE5hbWUsIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKHByb3BFbnVtLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGUgTWFwIGNjY0hhY2sgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgYm9vbGVhbiBuZWVkQ2NjSGFjayA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPT0gVVByb3BlcnR5LkFHRSkgeworICAgICAgICAgICAgICAgICAgICBhZGRBbGxVbmlxdWUobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFzc2lnbmVkIiwiMS4xIiwiMi4wIiwiMi4xIiwiMy4wIiwiMy4xIiwiMy4yIiwiNC4wIn0sCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChCaW5hcnlfRXh0cmFzLmlzSW5SYW5nZShwcm9wRW51bSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BFbnVtID0gVVByb3BlcnR5LkJJTkFSWV9TVEFSVDsgLy8gSEFDSworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgICAgIGludCBlbmQgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUocHJvcEVudW0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPD0gZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhbGlhcyA9IGdldEZpeGVkVmFsdWVBbGlhcyhudWxsLCBpLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhbGlhczIgPSBnZXRGaXhlZFZhbHVlQWxpYXMobnVsbCwgaSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsaWFzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcyA9IGFsaWFzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxpYXMgPT0gbnVsbCAmJiBwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcyA9IFN0cmluZy52YWx1ZU9mKGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkQ2NjSGFjayAmJiBwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeyAvLyBIQUNLCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NjSGFjay5wdXQoYWxpYXMsIFN0cmluZy52YWx1ZU9mKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKHByb3BlcnR5QWxpYXMgKyAiXHQiICsgaSArICI6XHQiICsgYWxpYXMpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGFsaWFzLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5lZWRDY2NIYWNrID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFsaWFzID0gZ2V0Rml4ZWRWYWx1ZUFsaWFzKG51bGwsIC0xLFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoYWxpYXMsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRWYWx1ZUFsaWFzZXMoU3RyaW5nIHZhbHVlQWxpYXMsIExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtID09IFVQcm9wZXJ0eS5BR0UpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKHZhbHVlQWxpYXMsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoY2NjSGFjay5nZXQodmFsdWVBbGlhcyksIHJlc3VsdCk7IC8vIGFkZCBudW1iZXIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGdldEZpeGVkVmFsdWVBbGlhcyh2YWx1ZUFsaWFzLCAtMSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShnZXRGaXhlZFZhbHVlQWxpYXModmFsdWVBbGlhcywgLTEsIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlVuaWNvZGVQcm9wZXJ0eVNvdXJjZSNnZXRQcm9wZXJ0eVR5cGUoKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIGludCBpbnRlcm5hbEdldFByb3BlcnR5VHlwZShpbnQgcHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQkxPQ0s6IAorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TQ1JJUFQ6IAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5DQVRBTE9HOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVU5JQ09ERV8xX05BTUU6IAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5NSVNDOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9GT0xESU5HOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0NBU0VfRk9MRElORzogCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5USVRMRUNBU0VfTUFQUElORzogCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfU1RSSU5HOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuQklOQVJZX1NUQVJUKSByZXR1cm4gVW5pY29kZVByb3BlcnR5LlVOS05PV047CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5CSU5BUlk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9TVEFSVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FWFRFTkRFRF9CSU5BUlk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FTlVNRVJBVEVEOworICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5ET1VCTEVfU1RBUlQpIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfRU5VTUVSQVRFRDsKKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuRE9VQkxFX0xJTUlUKSByZXR1cm4gVW5pY29kZVByb3BlcnR5Lk5VTUVSSUM7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LlNUUklOR19TVEFSVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FWFRFTkRFRF9OVU1FUklDOworICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQpIHJldHVybiBVbmljb2RlUHJvcGVydHkuU1RSSU5HOworICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfU1RSSU5HOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuVW5pY29kZVByb3BlcnR5I2dldFZlcnNpb24oKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIF9nZXRWZXJzaW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyp7CisgICAgICAgICAgICBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW15bOkNuOl0tWzpEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50Ol1dIikpOworICAgICAgICB9Ki8KKworCisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBPdGhlciBNaXNzaW5nIEZ1bmN0aW9uczoKKyAgICAgICAgICAgIEV4cGFuZHNfT25fTkZDCisgICAgICAgICAgICBFeHBhbmRzX09uX05GRAorICAgICAgICAgICAgRXhwYW5kc19Pbl9ORktDCisgICAgICAgICAgICBFeHBhbmRzX09uX05GS0QKKyAgICAgICAgICAgIENvbXBvc2l0aW9uX0V4Y2x1c2lvbgorICAgICAgICAgICAgRGVjb21wb3NpdGlvbl9NYXBwaW5nCisgICAgICAgICAgICBGQ19ORktDX0Nsb3N1cmUKKyAgICAgICAgICAgIElTT19Db21tZW50CisgICAgICAgICAgICBORkNfUXVpY2tfQ2hlY2sKKyAgICAgICAgICAgIE5GRF9RdWlja19DaGVjaworICAgICAgICAgICAgTkZLQ19RdWlja19DaGVjaworICAgICAgICAgICAgTkZLRF9RdWlja19DaGVjaworICAgICAgICAgICAgU3BlY2lhbF9DYXNlX0NvbmRpdGlvbgorICAgICAgICAgICAgVW5pY29kZV9SYWRpY2FsX1N0cm9rZQorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgICBzdGF0aWMgZmluYWwgTmFtZXMgQmluYXJ5X0V4dHJhcyA9IG5ldyBOYW1lcyhVUHJvcGVydHkuQklOQVJZX0xJTUlULAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJpc05GQyIsICJpc05GRCIsICJpc05GS0MiLCAiaXNORktEIiwKKyAgICAgICAgICAgICJpc0xvd2VyY2FzZSIsICJpc1VwcGVyY2FzZSIsICJpc1RpdGxlY2FzZSIsICJpc0Nhc2Vmb2xkZWQiLCAiaXNDYXNlZCIsCisgICAgICAgIH0pOworCisgICAgICAgIHN0YXRpYyBmaW5hbCBOYW1lcyBTdHJpbmdfRXh0cmFzID0gbmV3IE5hbWVzKFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgInRvTkZDIiwgInRvTkZEIiwgInRvTkZLQyIsICJ0b05LRkQiLAorICAgICAgICB9KTsKKworICAgICAgICBzdGF0aWMgZmluYWwgaW50CisgICAgICAgICAgICBpc05GQyA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQsCisgICAgICAgICAgICBpc05GRCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMSwKKyAgICAgICAgICAgIGlzTkZLQyA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMiwKKyAgICAgICAgICAgIGlzTkZLRCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMywKKyAgICAgICAgICAgIGlzTG93ZXJjYXNlID0gVVByb3BlcnR5LkJJTkFSWV9MSU1JVCs0LAorICAgICAgICAgICAgaXNVcHBlcmNhc2UgPSBVUHJvcGVydHkuQklOQVJZX0xJTUlUKzUsCisgICAgICAgICAgICBpc1RpdGxlY2FzZSA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrNiwKKyAgICAgICAgICAgIGlzQ2FzZWZvbGRlZCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrNywKKyAgICAgICAgICAgIGlzQ2FzZWQgPSBVUHJvcGVydHkuQklOQVJZX0xJTUlUKzgsCisKKyAgICAgICAgICAgIE5GQyAgPSBVUHJvcGVydHkuU1RSSU5HX0xJTUlULAorICAgICAgICAgICAgTkZEICA9IFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQrMSwKKyAgICAgICAgICAgIE5GS0MgPSBVUHJvcGVydHkuU1RSSU5HX0xJTUlUKzIsCisgICAgICAgICAgICBORktEID0gVVByb3BlcnR5LlNUUklOR19MSU1JVCszCisgICAgICAgICAgICA7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIElDVVByb3BlcnR5RmFjdG9yeSgpIHsKKyAgICAgICAgICAgIENvbGxlY3Rpb24gYyA9IGdldEludGVybmFsQXZhaWxhYmxlUHJvcGVydHlBbGlhc2VzKG5ldyBBcnJheUxpc3QoKSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBhZGQoZ2V0SW50ZXJuYWxQcm9wZXJ0eSgoU3RyaW5nKWl0Lm5leHQoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyBJQ1VQcm9wZXJ0eUZhY3Rvcnkgc2luZ2xldG9uID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIElDVVByb3BlcnR5RmFjdG9yeSBtYWtlKCkgeworICAgICAgICAgICAgaWYgKHNpbmdsZXRvbiAhPSBudWxsKSByZXR1cm4gc2luZ2xldG9uOworICAgICAgICAgICAgc2luZ2xldG9uID0gbmV3IElDVVByb3BlcnR5RmFjdG9yeSgpOworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZXRvbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIExpc3QgZ2V0SW50ZXJuYWxBdmFpbGFibGVQcm9wZXJ0eUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGludFtdW10gcmFuZ2VzID0geworICAgICAgICAgICAgICAgIHtVUHJvcGVydHkuQklOQVJZX1NUQVJULCAgICBVUHJvcGVydHkuQklOQVJZX0xJTUlUfSwKKyAgICAgICAgICAgICAgICB7VVByb3BlcnR5LklOVF9TVEFSVCwgICAgICAgVVByb3BlcnR5LklOVF9MSU1JVH0sCisgICAgICAgICAgICAgICAge1VQcm9wZXJ0eS5ET1VCTEVfU1RBUlQsICAgIFVQcm9wZXJ0eS5ET1VCTEVfTElNSVR9LAorICAgICAgICAgICAgICAgIHtVUHJvcGVydHkuU1RSSU5HX1NUQVJULCAgICBVUHJvcGVydHkuU1RSSU5HX0xJTUlUfSwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSByYW5nZXNbaV1bMF07IGogPCByYW5nZXNbaV1bMV07ICsraikgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYWxpYXMgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShqLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5LmFkZFVuaXF1ZShhbGlhcywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuY29udGFpbnMoYWxpYXMpKSByZXN1bHQuYWRkKGFsaWFzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKFN0cmluZ19FeHRyYXMuZ2V0TmFtZXMoKSk7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKEJpbmFyeV9FeHRyYXMuZ2V0TmFtZXMoKSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgCisgICAgICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHkgZ2V0SW50ZXJuYWxQcm9wZXJ0eShTdHJpbmcgcHJvcGVydHlBbGlhcykgeworICAgICAgICAgICAgaW50IHByb3BFbnVtOworICAgICAgICAgICAgbWFpbjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zc2libGVJdGVtID0gQmluYXJ5X0V4dHJhcy5nZXQocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxlSXRlbSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3BFbnVtID0gcG9zc2libGVJdGVtOworICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwb3NzaWJsZUl0ZW0gPSBTdHJpbmdfRXh0cmFzLmdldChwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zc2libGVJdGVtID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvcEVudW0gPSBwb3NzaWJsZUl0ZW07CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb3BFbnVtID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eUVudW0ocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IElDVVByb3BlcnR5KHByb3BlcnR5QWxpYXMsIHByb3BFbnVtKTsKKyAgICAgICAgfQorIAorICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5Vbmljb2RlUHJvcGVydHlTb3VyY2UjZ2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykKKyAgICAgICAgICovCisgICAgLy8gVE9ETyBmaWxlIGJ1ZyBvbiBnZXRQcm9wZXJ0eVZhbHVlTmFtZSBmb3IgQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcyAgCisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOYW1lcyB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZXM7CisgICAgICAgIHByaXZhdGUgaW50IGJhc2U7CisgICAgICAgIHB1YmxpYyBOYW1lcyhpbnQgYmFzZSwgU3RyaW5nW10gbmFtZXMpIHsKKyAgICAgICAgICAgIHRoaXMuYmFzZSA9IGJhc2U7CisgICAgICAgICAgICB0aGlzLm5hbWVzID0gbmFtZXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBnZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5lcXVhbHNJZ25vcmVDYXNlKG5hbWVzW2ldKSkgcmV0dXJuIGJhc2UgKyBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBudW1iZXIpIHsKKyAgICAgICAgICAgIG51bWJlciAtPSBiYXNlOworICAgICAgICAgICAgaWYgKG51bWJlciA8IDAgfHwgbmFtZXMubGVuZ3RoIDw9IG51bWJlcikgcmV0dXJuIG51bGw7CisgICAgICAgICAgICByZXR1cm4gbmFtZXNbbnVtYmVyXTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0luUmFuZ2UoaW50IG51bWJlcikgeworICAgICAgICAgICAgbnVtYmVyIC09IGJhc2U7CisgICAgICAgICAgICByZXR1cm4gKDAgPD0gbnVtYmVyICYmIG51bWJlciA8IG5hbWVzLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIExpc3QgZ2V0TmFtZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gQXJyYXlzLmFzTGlzdChuYW1lcyk7CisgICAgICAgIH0KKyAgICB9Cit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VSZXNvdXJjZUJ1bmRsZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzQ3YzEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKQEAgLTAsMCArMSwxMDc3IEBACisvLyMjaGVhZGVyCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmV0LlVSTDsKK2ltcG9ydCBqYXZhLm5ldC5VUkxDb25uZWN0aW9uOworaW1wb3J0IGphdmEubmV0LkphclVSTENvbm5lY3Rpb247CisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisvLyNlbHNlCisvLyMjaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlcjsKKy8vI2VuZGlmCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLmphci5KYXJFbnRyeTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb247CisKKworcHVibGljIGZpbmFsIGNsYXNzIElDVVJlc291cmNlQnVuZGxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDbGFzc0xvYWRlciB0ZXN0TG9hZGVyID0gSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmNsYXNzLmdldENsYXNzTG9hZGVyKCk7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVUZXN0IHRlc3QgPSBuZXcgSUNVUmVzb3VyY2VCdW5kbGVUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRSZXNvdXJjZXMoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAJLy8gSXQgZG9lcyBub3Qgd29yayB3ZWxsIGluIGVjbGlwc2UgcGx1Zy1pbiB0ZXN0IGJlY2F1c2Ugb2YgY2xhc3MgbG9hZGVyIGNvbmZpZ3VyYXRpb24/PworICAgICAgICAJLy8gRm9yIG5vdywgc3BlY2lmeSByZXNvdXJjZSBwYXRoIGV4cGxpY2l0bHkgaW4gdGhpcyB0ZXN0IGNhc2UKKyAgICAgICAgICAgIC8vRW51bWVyYXRpb24gZW4gPSB0ZXN0TG9hZGVyLmdldFJlc291cmNlcygiTUVUQS1JTkYiKTsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGVuID0gdGVzdExvYWRlci5nZXRSZXNvdXJjZXMoImNvbS5pYm0uaWN1LmRldi5kYXRhIik7CisgICAgICAgICAgICBmb3IoO2VuLmhhc01vcmVFbGVtZW50cygpOykgeworICAgICAgICAgICAgICAgIFVSTCB1cmwgPSAoVVJMKWVuLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKHVybCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgcmVzb3VyY2UgZGF0YSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFVSTENvbm5lY3Rpb24gYyA9IHVybC5vcGVuQ29ubmVjdGlvbigpOworCisgICAgICAgICAgICAgICAgaWYgKGMgaW5zdGFuY2VvZiBKYXJVUkxDb25uZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIEphclVSTENvbm5lY3Rpb24gamMgPSAoSmFyVVJMQ29ubmVjdGlvbiljOworICAgICAgICAgICAgICAgICAgICBKYXJFbnRyeSBqZSA9IGpjLmdldEphckVudHJ5KCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJqYXIgZW50cnk6ICIgKyBqZS50b1N0cmluZygpKTsgCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBjLmdldElucHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJpbnB1dCBzdHJlYW06Iik7CisgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIHIgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpOworICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihyKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICgobGluZSA9IGJyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgICIgKyArK24gKyAiOiAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTZWN1cml0eUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgbG9hZCByZXNvdXJjZSBkYXRhOiAiICsgZXgpOworICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgfWNhdGNoKE51bGxQb2ludGVyRXhjZXB0aW9uIGV4KSB7CisgICAgICAgIC8vIHRocm93biBieSBpYm0gMS40LjIgd2luZG93cyBqdm0gc2VjdXJpdHkgbWFuYWdlcgorICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHJlc291cmNlIGRhdGE6ICIgKyBleCk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIisgZXgpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNvdXJjZUJ1bmRsZVdyYXBwZXIoKXsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhvbGlkYXlCdW5kbGUiLCAiZGFfREsiKTsKKyAgICAgICAgT2JqZWN0IG8gPSBidW5kbGUuZ2V0T2JqZWN0KCJob2xpZGF5cyIpOworICAgICAgICBpZihvIGluc3RhbmNlb2YgSG9saWRheVtdICl7CisgICAgICAgICAgICBsb2dsbigid3JhcHBlciBtZWNoYW5pc20gd29ya3MgZm9yIFdlZWtlbmQgZGF0YSIpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBXZWVrZW5kIGRhdGEiKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiYm9ndXMiKTsKKyAgICAgICAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVUmVzb3VyY2VCdW5kbGUgJiYgYnVuZGxlLmdldFVMb2NhbGUoKS5lcXVhbHMoImVuX1VTIikpeworICAgICAgICAgICAgbG9nbG4oIndyYXBwZXIgbWVjaGFuaXNtIHdvcmtzIGZvciBib2d1cyBsb2NhbGUiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigid3JhcHBlciBtZWNoYW5pc20gZmFpbGVkIGZvciBib2d1cyBsb2NhbGUuIik7CisgICAgICAgIH0KKworICAgICAgICB0cnl7CisgICAgICAgICAgICBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImJvZ3VzIiwgImJvZ3VzIik7CisgICAgICAgICAgICBpZihidW5kbGUhPW51bGwpeworICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGxvZ2xuKCJnb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkIzODc5KCl7CisgICAgICAgIC8vIHRoaXMgdGVzdHMgdGVzdHMgbG9hZGluZyBvZiByb290IGJ1bmRsZSB3aGVuIGEgcmVzb3VyY2UgYnVuZGxlCisgICAgICAgIC8vIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgcmVxdWVzdGVkCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCBVTG9jYWxlLmdldERlZmF1bHQoKS50b1N0cmluZygpLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgICAgIGlmKGJ1bmRsZT09bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgdGhlIHJlc291cmNlIGJ1bmRsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgdGVzdCBkYXRhOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0T3BlbigpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiZW5fVVNfUE9TSVgiKTsKKworICAgICAgICBpZihidW5kbGU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgdGhlIHJlc291cmNlIGJ1bmRsZSIpOworICAgICAgICB9CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgb2JqID0gIGJ1bmRsZS5nZXQoIk51bWJlclBhdHRlcm5zIik7CisKKyAgICAgICAgaW50IHNpemUgPSBvYmouZ2V0U2l6ZSgpOworICAgICAgICBpbnQgdHlwZSA9IG9iai5nZXRUeXBlKCk7CisgICAgICAgIGlmKHR5cGUgPT0gSUNVUmVzb3VyY2VCdW5kbGUuQVJSQVkpeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViOworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8c2l6ZTsgaSsrKXsKKyAgICAgICAgICAgICAgICBzdWIgPSBvYmouZ2V0KGkpOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID1zdWIuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgaWYodGVtcC5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gZ2V0IHRoZSBpdGVtcyBmcm9tIE51bWJlclBhdHRlcm5zIGFycmF5IGluIGJ1bmRsZTogIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGUuZ2V0VUxvY2FsZSgpLmdldEJhc2VOYW1lKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiXCIiK3ByZXR0aWZ5KHRlbXApKyJcIiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IGJ1bmRsZS5nZXRTdHJpbmdBcnJheSgiTnVtYmVyUGF0dGVybnMiKTsKKyAgICAgICAgaWYoc2l6ZSE9c3RyaW5ncy5sZW5ndGgpeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBnZXQgdGhlIGl0ZW1zIGZyb20gTnVtYmVyUGF0dGVybnMgYXJyYXkgaW4gYnVuZGxlOiAiKworICAgICAgICAgICAgICAgICAgICBidW5kbGUuZ2V0VUxvY2FsZSgpLmdldEJhc2VOYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIG9iaiA9ICBidW5kbGUuZ2V0KCJOdW1iZXJFbGVtZW50cyIpOworCisgICAgICAgICAgICBzaXplID0gb2JqLmdldFNpemUoKTsKKyAgICAgICAgICAgIHR5cGUgPSBvYmouZ2V0VHlwZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBJQ1VSZXNvdXJjZUJ1bmRsZS5BUlJBWSl7CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViOworICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPHNpemU7IGkrKyl7CisgICAgICAgICAgICAgICAgICAgIHN1YiA9IG9iai5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID1zdWIuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHRlbXAubGVuZ3RoKCk9PTApeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBnZXQgdGhlIGl0ZW1zIGZyb20gTnVtYmVyUGF0dGVybnMgYXJyYXkgaW4gYnVuZGxlOiAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGUuZ2V0VUxvY2FsZSgpLmdldEJhc2VOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJcIiIrcHJldHRpZnkodGVtcCkrIlwiIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoYnVuZGxlPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIHRoZSByZXNvdXJjZSBidW5kbGUiKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCAiZW5fVVNfUE9TSVgiKTsKKyAgICAgICAgaWYoYnVuZGxlPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgbG9hZCB0aGUgc3RyZWFtIik7CisgICAgICAgIH0KKyAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgIm15X3ZlcnlfdmVyeV92ZXJ5X2xvbmdfYm9ndXNfYnVuZGxlIik7CisgICAgICAgIGlmKCFidW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscyhVTG9jYWxlLmdldERlZmF1bHQoKSkpeworICAgICAgICAgICAgZXJybG4oIlVSZXNvdXJjZUJ1bmRsZSBkaWQgbm90IGxvYWQgdGhlIGRlZmF1bHQgYnVuZGxlIHdoZW4gYnVuZGxlIHdhcyBub3QgZm91bmQiKTsKKyAgICAgICAgfQorCisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWNUeXBlcygpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCAidGVzdHR5cGVzIiwgdGVzdExvYWRlcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHRlc3QgZGF0YTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiYWJjXHUwMDAwZGVmIjsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoInplcm90ZXN0Iik7CisgICAgICAgICAgICBpZighZXhwZWN0ZWQuZXF1YWxzKHN1Yi5nZXRTdHJpbmcoKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBrZXkgemVyb3Rlc3QgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHlleHBsaWNpdHN0cmluZyIpOworICAgICAgICAgICAgZXhwZWN0ZWQgPSIiOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhzdWIuZ2V0U3RyaW5nKCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3Iga2V5IGVtcHR5ZXhwbGljaXRzdHJpbmcgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHlzdHJpbmciKTsKKyAgICAgICAgICAgIGV4cGVjdGVkID0iIjsKKyAgICAgICAgICAgIGlmKCFleHBlY3RlZC5lcXVhbHMoc3ViLmdldFN0cmluZygpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzdHJpbmcgZm9yIGtleSBlbXB0eXN0cmluZyBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gMTIzOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgib25laHVuZHJlZHR3ZW50eXRocmVlIik7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9c3ViLmdldEludCgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2YWx1ZSBmb3Iga2V5IG9uZWh1bmRyZWR0d2VudHl0aHJlZSBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eWludCIpOworICAgICAgICAgICAgZXhwZWN0ZWQ9MDsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1zdWIuZ2V0SW50KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgaW50IHZhbHVlIGZvciBrZXkgZW1wdHlpbnQgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBidW5kbGUuZ2V0KCJvbmUiKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1zdWIuZ2V0SW50KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgaW50IHZhbHVlIGZvciBrZXkgb25lIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSAtMTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoIm1pbnVzb25lIik7CisgICAgICAgICAgICBpbnQgZ290ID0gc3ViLmdldEludCgpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPWdvdCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmFsdWUgZm9yIGtleSBtaW51c29uZSBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHBlY3RlZCA9IDB4RkZGRkZGRjsKKyAgICAgICAgICAgIGdvdCA9IHN1Yi5nZXRVSW50KCk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9Z290KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2YWx1ZSBmb3Iga2V5IG1pbnVzb25lIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSAxOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgicGx1c29uZSIpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPXN1Yi5nZXRJbnQoKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmFsdWUgZm9yIGtleSBtaW51c29uZSBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBpbnRbXSBleHBlY3RlZCA9IG5ldyBpbnRbXXsgMSwgMiwgMywgLTMsIDQsIDUsIDYsIDcgfSAgIDsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoImludGVnZXJhcnJheSIpOworICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlFcXVhbHMoZXhwZWN0ZWQsc3ViLmdldEludFZlY3RvcigpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmVjdG9yIHZhbHVlIGZvciBrZXkgaW50ZWdlcmFycmF5IGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1YiA9IGJ1bmRsZS5nZXQoImVtcHR5aW50diIpOworICAgICAgICAgICAgZXhwZWN0ZWQgPSBuZXcgaW50WzBdOworICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlFcXVhbHMoZXhwZWN0ZWQsc3ViLmdldEludFZlY3RvcigpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmVjdG9yIHZhbHVlIGZvciBrZXkgZW1wdHlpbnR2IGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoImJpbmFyeXRlc3QiKTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgZ290ID0gc3ViLmdldEJpbmFyeSgpOworICAgICAgICAgICAgaWYoZ290LnJlbWFpbmluZygpIT0xNSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIHRoZSBiaW5hcnkgQnl0ZUJ1ZmZlciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8IGdvdC5yZW1haW5pbmcoKTsgaSsrKXsKKyAgICAgICAgICAgICAgICBieXRlIGIgPSBnb3QuZ2V0KCk7CisgICAgICAgICAgICAgICAgaWYoYiE9aSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGJpbmFyeSBidWZmZXIgYXQgaW5kZXg6ICIraSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHliaW4iKTsKKyAgICAgICAgICAgIGdvdCA9IHN1Yi5nZXRCaW5hcnkoKTsKKyAgICAgICAgICAgIGlmKGdvdC5yZW1haW5pbmcoKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIHRoZSBlbXB0eWJpbiBCeXRlQnVmZmVyIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eWFycmF5Iik7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gc3ViLmdldEtleSgpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoImVtcHR5YXJyYXkiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc3ViLmdldFNpemUoKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoIm1lbnUiKTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBzdWIuZ2V0S2V5KCk7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscygibWVudSIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGtleSBmb3IgbWVudSBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIxID0gc3ViLmdldCgiZmlsZSIpOworICAgICAgICAgICAga2V5ID0gc3ViMS5nZXRLZXkoKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJmaWxlIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQga2V5IGZvciBmaWxlIGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YjIgPSBzdWIxLmdldCgib3BlbiIpOworICAgICAgICAgICAga2V5ID0gc3ViMi5nZXRLZXkoKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJvcGVuIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQga2V5IGZvciBmaWxlIGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHN1YjIuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBpZighdmFsdWUuZXF1YWxzKCJPcGVuIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGtleSBmb3Igb2VuIGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHl0YWJsZSIpOworICAgICAgICAgICAga2V5ID0gc3ViLmdldEtleSgpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoImVtcHR5dGFibGUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc3ViLmdldFNpemUoKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgibWVudSIpLmdldCgiZmlsZSIpOworICAgICAgICAgICAgaW50IHNpemUgPSBzdWIuZ2V0U2l6ZSgpOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkOworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8c2l6ZTsgaSsrKXsKKyAgICAgICAgICAgICAgICBzdWIxID0gc3ViLmdldChpKTsKKworICAgICAgICAgICAgICAgIHN3aXRjaChpKXsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiZXhpdCI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAib3BlbiI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAic2F2ZSI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0iIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGdvdCA9IHN1YjEuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhnb3QpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgYXQgaW5kZXgiK2krIi4gRXhwZWN0ZWQ6ICIrZXhwZWN0ZWQrIiBHb3Q6ICIrZ290KTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkdvdCB0aGUgZXhwZWN0ZWQga2V5IGF0IGluZGV4OiAiK2kpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFRlc3RDYXNleworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIFRlc3RDYXNlKFN0cmluZyBrZXksIGludCB2YWx1ZSl7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VGFibGUzMigpeworICAgICAgICBUZXN0Q2FzZVtdIGFyciA9IG5ldyBUZXN0Q2FzZVtdeworICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAib29vb29vb29vb29vb29vb28iLCAwICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICJvb29vb29vb29vb29vb29vMSIsIDEgKSwKKyAgICAgICAgICBuZXcgVGVzdENhc2UgICggIm9vb29vb29vb29vb29vbzFvIiwgMiApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAib28xMW9vbzFvb28xMTExMW8iLCAyNTE1MCApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAib28xMW9vbzFvb28xMTExMTEiLCAyNTE1MSApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAibzExMTExMTExMTExMTExMTEiLCA2NTUzNSApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb29vb29vb29vb28iLCA2NTUzNiApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb28xMW8xMW9vbzEiLCA2NTk2OSApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb28xMW8xMW9vMW8iLCA2NTk3MCApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb28xMTFvbzExMTEiLCA2NTk5OSApCisgICAgICAgIH07CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3R0YWJsZTMyIiwgdGVzdExvYWRlcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgbG9hZCByZXNvdXJjZSBkYXRhOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGJ1bmRsZS5nZXRUeXBlKCkhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCB0aGUgY29ycmVjdCB0eXBlIGZvciBidW5kbGUgdGVzdHRhYmxlMzIiKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9YnVuZGxlLmdldFNpemUoKTsKKyAgICAgICAgaWYoc2l6ZSE9NjYwMDApeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBnZXQgdGhlIGNvcnJlY3Qgc2l6ZSBmb3IgYnVuZGxlIHRlc3R0YWJsZTMyIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpID0wOyBpPHNpemU7IGkrKyl7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpdGVtID0gYnVuZGxlLmdldChpKTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpdGVtLmdldEtleSgpOworICAgICAgICAgICAgaW50IHBhcnNlZE51bWJlciA9IHBhcnNlVGFibGUzMktleShrZXkpOworICAgICAgICAgICAgaW50IG51bWJlcj0tMTsKKyAgICAgICAgICAgIHN3aXRjaChpdGVtLmdldFR5cGUoKSl7CisgICAgICAgICAgICAgICAgY2FzZSBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkc6CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0ZW0uZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IFVURjE2LmNoYXJBdCh2YWx1ZSwwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBJQ1VSZXNvdXJjZUJ1bmRsZS5JTlQ6CisgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IGl0ZW0uZ2V0SW50KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJHb3QgdW5leHBlY3RlZCByZXNvdXJjZSB0eXBlIGluIHRlc3R0YWJsZTMyIik7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG51bWJlciE9cGFyc2VkTnVtYmVyKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgZXhwZWN0ZWQgdmFsdWUgaW4gdGVzdHR5cGVzMzIgZm9yIGtleSIrCisgICAgICAgICAgICAgICAgICAgICAga2V5KyIuIEV4cGVjdGVkOiAiK3BhcnNlZE51bWJlcisiIEdvdDoiK251bWJlcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGk9MDtpPGFyci5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBhcnJbaV0ua2V5OworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXRlbSA9IGJ1bmRsZS5nZXQoZXhwZWN0ZWQpOworICAgICAgICAgICAgaW50IG51bWJlcj0wOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IGl0ZW0uZ2V0S2V5KCk7CisgICAgICAgICAgICBpbnQgcGFyc2VkTnVtYmVyID0gcGFyc2VUYWJsZTMyS2V5KGtleSk7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQga2V5LiBFeHBlY3RlZDogIitleHBlY3RlZCsiIEdvdDoiK2tleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzd2l0Y2goaXRlbS5nZXRUeXBlKCkpeworICAgICAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuU1RSSU5HOgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBpdGVtLmdldFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBVVEYxNi5jaGFyQXQodmFsdWUsMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLklOVDoKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gaXRlbS5nZXRJbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIHJlc291cmNlIHR5cGUgaW4gdGVzdHRhYmxlMzIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYobnVtYmVyIT1wYXJzZWROdW1iZXIpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCB2YWx1ZSBpbiB0ZXN0dHlwZXMzMiBmb3Iga2V5IisKKyAgICAgICAgICAgICAgICAgICAgICBrZXkrIi4gRXhwZWN0ZWQ6ICIrcGFyc2VkTnVtYmVyKyIgR290OiIrbnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgIHBhcnNlVGFibGUzMktleShTdHJpbmcga2V5KSB7CisgICAgICAgIGludCBudW1iZXI7CisgICAgICAgIGNoYXIgYzsKKworICAgICAgICBudW1iZXI9MDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8a2V5Lmxlbmd0aCgpOyBpKyspeworICAgICAgICAgICAgYyA9IGtleS5jaGFyQXQoaSk7CisgICAgICAgICAgICBudW1iZXI8PD0xOworICAgICAgICAgICAgaWYoYz09JzEnKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyfD0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFsaWFzZXMoKXsKKyAgICAgICBTdHJpbmcgc2ltcGxlQWxpYXMgICA9ICJPcGVuIjsKKworICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmNyZWF0ZUJ1bmRsZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsIHRlc3RMb2FkZXIpOworICAgICAgIGlmIChyYiA9PSBudWxsKSB7CisgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgdGVzdGFsaWFzZXMgZGF0YSIpOworICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoInNpbXBsZWFsaWFzIik7CisgICAgICAgIFN0cmluZyBzMSA9IHN1Yi5nZXRTdHJpbmcoInNpbXBsZWFsaWFzIik7CisgICAgICAgIGlmKHMxLmVxdWFscyhzaW1wbGVBbGlhcykpeworICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3RhbGlhc2VzIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgICAgICAgICBzdWIgPSByYi5nZXQoIm5vbmV4aXN0aW5nIik7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIG5vbmV4aXN0aW5nIik7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciBub25leGlzdGluZyBhbGlhcyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsdGVzdExvYWRlcik7CisgICAgICAgICAgICBzdWIgPSByYi5nZXQoInJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJIYW5pIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciByZWZlcmVuY2luZ2FsaWFzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3RhbGlhc2VzIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgICAgIHN1YiA9IHJiLmdldCgiYm91bmRhcmllcyIpOworICAgICAgICAgICAgU3RyaW5nIHdvcmQgPSBzdWIuZ2V0U3RyaW5nKCJ3b3JkIik7CisKKyAgICAgICAgICAgIGlmKHdvcmQuZXF1YWxzKCJ3b3JkX2phLmJyayIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIGJvdW5kYXJpZXMvd29yZCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB0eXBlIGZvciBib3VuZGFyaWVzL3dvcmQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiMSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVzdGFsaWFzZXMiLHRlc3RMb2FkZXIpOworICAgICAgICAgICAgaWYocmIxIT1yYil7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhY2hpbmcgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCJDYWNoaW5nIG9mIHJlc291cmNlIGJ1bmRsZSBwYXNzZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1YiA9IHJiMS5nZXQoInRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nIiApOworCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXQoIktleUFsaWFzMFBTVCIpLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIEtleUFsaWFzMFBTVCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIEtleUFsaWFzMFBTVCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoIktleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIEtleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBLZXlBbGlhczFQYWNpZmljU3RhbmRhcmRUaW1lIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoIktleUFsaWFzMlBEVCIpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJQRFQiKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgS2V5QWxpYXMyUERUIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgS2V5QWxpYXMyUERUIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygiS2V5QWxpYXMzTG9zQW5nZWxlcyIpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJMb3MgQW5nZWxlcyIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciBLZXlBbGlhczNMb3NBbmdlbGVzLiBHb3Q6ICIrczEpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIEtleUFsaWFzM0xvc0FuZ2VsZXMuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgc3ViID0gcmIuZ2V0KCJ0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIiApOworICAgICAgICAgICAgczEgPSBzdWIuZ2V0U3RyaW5nKDApOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMC4gR290OiAiK3MxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzAuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoMSk7CisgICAgICAgICAgICBpZihzMS5lcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzEiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygyKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiUERUIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMiIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoMyk7CisgICAgICAgICAgICBpZihzMS5lcXVhbHMoIkxvcyBBbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMy4gR290OiAiK3MxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzMuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgc3ViID0gcmIuZ2V0KCJ0ZXN0QWxpYXNUb1RyZWUiICk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnVmID0gc3ViLmdldCgic3RhbmRhcmQiKS5nZXQoIiUlQ29sbGF0aW9uQmluIikuZ2V0QmluYXJ5KCk7CisgICAgICAgICAgICBpZihidWY9PW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciAlJUNvbGxhdGlvbkJpbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHNob3VsZCBub3QgZ2V0IGFuIGV4Y2VwdGlvbgorICAgICAgICByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9SQk5GX0JBU0VfTkFNRSwiZnJfQkUiKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHJiLmdldFN0cmluZygiU3BlbGxvdXRSdWxlcyIpOworICAgICAgICBpZihzdHIgIT1udWxsIHx8IHN0ci5sZW5ndGgoKT4wKXsKKyAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgZnJfQkUgU3BlbGxvdXRSdWxlcyIpOworICAgICAgICB9CisgICAgICAgIHJiID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsInpoX1RXIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICBpZihiICE9IG51bGwpeworICAgICAgICAgICAgaWYoYi5nZXQoMCkuZ2V0S2V5KCkuZXF1YWxzKCAiZGVmYXVsdCIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgemhfVFcgY29sbGF0aW9ucyIpOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0IGZvciBjb2xsYXRpb25zIik7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxpYXMoKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgJSVBTElBUyIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIml3X0lMIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSByYi5nZXQoIk51bWJlclBhdHRlcm5zIik7CisgICAgICAgIGlmKGIgIT0gbnVsbCl7CisgICAgICAgICAgICBpZihiLmdldFNpemUoKT4wKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiJSVBTElBUyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCIlJUFMSUFTIG1lY2hhbmlzbSBmYWlsZWQgZm9yIGl3X0lMIGNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiJSVBTElBUyBtZWNoYW5pc20gZmFpbGVkIGZvciBpd19JTCIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RYUGF0aEFsaWFzKCl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVfSU4iLHRlc3RMb2FkZXIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiID0gcmIuZ2V0KCJhbGlhc0NsaWVudCIpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYi5nZXRTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIGV4cFJlc3VsdD0gImNvcnJlY3QiOyAKKworICAgICAgICBpZighcmVzdWx0LmVxdWFscyhleHBSZXN1bHQpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBYUGF0aCBzdHlsZSBhbGlhcyIpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGMgPSByYi5nZXQoInJvb3RBbGlhc0NsaWVudCIpOworICAgICAgICAgICAgcmVzdWx0ID0gYy5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGV4cFJlc3VsdCA9ICJjb3JyZWN0IjsgCisgICAgICAgICAgICBpZighcmVzdWx0LmVxdWFscyhleHBSZXN1bHQpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgWFBhdGggc3R5bGUgYWxpYXMgZm9yIHJvb3RBbGlhc0NsaWVudCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCByb290QWxpYXNDbGllbnQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2lyY3VsYXJBbGlhc2VzKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsdGVzdExvYWRlcik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoImFhYSIpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gc3ViLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCBleHBlY3RlZCBleGNlcHRpb24gZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHJlc291cmNlIGRhdGE6ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFdpdGhGYWxsYmFjaygpeworICAgICAgICAvKgorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPShJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlX0lOIik7CisgICAgICAgIFN0cmluZyBrZXkgPSBidW5kbGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJLZXlzL2NvbGxhdGlvbiIpOworICAgICAgICBpZigha2V5LmVxdWFscygiQ09MTEFUSU9OIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0eXBlID0gYnVuZGxlLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiVHlwZXMvY29sbGF0aW9uL2RpcmVjdCIpOworICAgICAgICBpZighdHlwZS5lcXVhbHMoIkRJUkVDVCIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvcm0gZ2V0U3RyaW5nV2l0aEZhbGxiYWNrIG1ldGhvZC4iKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICBTdHJpbmcga2V5ID0gbnVsbDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsVUxvY2FsZS5jYW5vbmljYWxpemUoImRlX19QSE9ORUJPT0siKSk7CisKKyAgICAgICAgICAgIGlmKCFidW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscygiZGUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGtleSA9IGJ1bmRsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvY29sbGF0aW9uL2RlZmF1bHQiKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJwaG9uZWJvb2siKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKworCisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCJmcl9GUiIpOworICAgICAgICBrZXkgPSBidW5kbGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgICAgaWYoIWtleS5lcXVhbHMoInN0YW5kYXJkIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICB9CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsImZyX0ZSIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIxID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIiKTsKKyAgICAgICAgU3RyaW5nIGRlZmF1bHRDYWwgPSBiMS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImRlZmF1bHQiKTsKKyAgICAgICAgaWYoIWRlZmF1bHRDYWwuZXF1YWxzKCJncmVnb3JpYW4iKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGRlZmF1bHQgY2FsZW5kYXIgc3RyaW5nOiBFeHBlY3RlZDogZ3JlZ29yaWFuLCBHb3Q6ICIrZGVmYXVsdENhbCk7CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYjIgPSBiMS5nZXRXaXRoRmFsbGJhY2soZGVmYXVsdENhbCk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIzID0gYjIuZ2V0V2l0aEZhbGxiYWNrKCJtb250aE5hbWVzIik7CisgICAgICAgIFN0cmluZyBkZWZhdWx0Q29udGV4dCA9IGIzLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiZGVmYXVsdCIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiNCA9IGIzLmdldFdpdGhGYWxsYmFjayhkZWZhdWx0Q29udGV4dCk7CisgICAgICAgIFN0cmluZyBkZWZhdWx0V2lkdGggID0gYjQuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJkZWZhdWx0Iik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGI1ID0gYjQuZ2V0V2l0aEZhbGxiYWNrKGRlZmF1bHRXaWR0aCk7CisgICAgICAgIGlmKGI1LmdldFNpemUoKSE9MTIpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzaXplIGZvciB0aGUgZGVmYXVsdCBtb250aE5hbWVzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09MTEFUSU9OX1JFU05BTUUgPSAiY29sbGF0aW9ucyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTExBVElPTl9LRVlXT1JEID0gImNvbGxhdGlvbiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfTkFNRSA9ICJkZWZhdWx0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RBTkRBUkRfTkFNRSA9ICJzdGFuZGFyZCI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5d29yZFZhbHVlcygpeworICAgICAgICBTdHJpbmcga3dWYWxzW107CisgICAgICAgIGJvb2xlYW4gZm91bmRTdGFuZGFyZCA9IGZhbHNlOworICAgICAgICBpbnQgbjsKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0aW5nIGNvbGxhdGlvbiB2YWx1ZXM6Iik7CisgICAgICAgIGt3VmFscyA9IElDVVJlc291cmNlQnVuZGxlLmdldEtleXdvcmRWYWx1ZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsQ09MTEFUSU9OX1JFU05BTUUpOworICAgICAgICBmb3Iobj0wO248a3dWYWxzLmxlbmd0aDtuKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKG5ldyBJbnRlZ2VyKG4pLnRvU3RyaW5nKCkgKyAiOiAiICsga3dWYWxzW25dKTsKKyAgICAgICAgICAgIGlmKERFRkFVTFRfTkFNRS5lcXVhbHMoa3dWYWxzW25dKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRLZXl3b3JkVmFsdWVzIGZvciBjb2xsYXRpb24gcmV0dXJuZWQgJ2RlZmF1bHQnIGluIHRoZSBsaXN0LiIpOworICAgICAgICAgICAgfSBlbHNlIGlmKFNUQU5EQVJEX05BTUUuZXF1YWxzKGt3VmFsc1tuXSkpIHsKKyAgICAgICAgICAgICAgICBpZihmb3VuZFN0YW5kYXJkID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kU3RhbmRhcmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiZm91bmQgJ3N0YW5kYXJkJyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciAtICdzdGFuZGFyZCcgaXMgaW4gdGhlIGtleXdvcmQgbGlzdCB0d2ljZSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZihmb3VuZFN0YW5kYXJkID09IGZhbHNlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgLSAnc3RhbmRhcmQnIHdhcyBub3QgaW4gdGhlIGNvbGxhdGlvbiB0cmVlIGFzIGEga2V5d29yZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCInc3RhbmRhcmQnIHdhcyBmb3VuZCBhcyBhIGNvbGxhdGlvbiBrZXl3b3JkLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZURpc3BsYXlOYW1lcygpIHsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWhhc0xvY2FsaXplZENvdW50cnlGb3IoVUxvY2FsZS5FTkdMSVNILCBsb2NhbGVzW2ldKSl7CisgICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgZ2V0IGxvY2FsaXplZCBjb3VudHJ5IGZvciAiKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKCFoYXNMb2NhbGl6ZWRMYW5ndWFnZUZvcihVTG9jYWxlLkVOR0xJU0gsIGxvY2FsZXNbaV0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCBsb2NhbGl6ZWQgbGFuZ3VhZ2UgZm9yICIrIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWhhc0xvY2FsaXplZENvdW50cnlGb3IobG9jYWxlc1tpXSwgbG9jYWxlc1tpXSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgZ2V0IGxvY2FsaXplZCBjb3VudHJ5IGZvciAiKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICBoYXNMb2NhbGl6ZWRDb3VudHJ5Rm9yKGxvY2FsZXNbaV0sIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWhhc0xvY2FsaXplZExhbmd1YWdlRm9yKGxvY2FsZXNbaV0sIGxvY2FsZXNbaV0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCBsb2NhbGl6ZWQgbGFuZ3VhZ2UgZm9yICIrIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbihsb2NhbGVzW2ldICsgIlx0IiArIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICJcdCIgKyBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKGxvY2FsZXNbaV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGFzTG9jYWxpemVkTGFuZ3VhZ2VGb3IoVUxvY2FsZSBsb2NhbGUsIFVMb2NhbGUgb3RoZXJMb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmcgPSBvdGhlckxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgbG9jYWxpemVkVmVyc2lvbiA9IG90aGVyTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShsb2NhbGUpOworICAgICAgICByZXR1cm4gIWxhbmcuZXF1YWxzKGxvY2FsaXplZFZlcnNpb24pOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGFzTG9jYWxpemVkQ291bnRyeUZvcihVTG9jYWxlIGxvY2FsZSwgVUxvY2FsZSBvdGhlckxvY2FsZSkgeworICAgICAgICBTdHJpbmcgY291bnRyeSA9IG90aGVyTG9jYWxlLmdldENvdW50cnkoKTsKKyAgICAgICAgaWYgKGNvdW50cnkuZXF1YWxzKCIiKSkgcmV0dXJuIHRydWU7CisgICAgICAgIFN0cmluZyBsb2NhbGl6ZWRWZXJzaW9uID0gb3RoZXJMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkobG9jYWxlKTsKKyAgICAgICAgcmV0dXJuICFjb3VudHJ5LmVxdWFscyhsb2NhbGl6ZWRWZXJzaW9uKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnVuY3Rpb25hbEVxdWl2YWxlbnQoKXsKKyAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZXMgPSB7CisgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhdmFpbCAgIGxvY2FsZSAgICAgICAgICBlcXVpdgorICAgICAgICAgICAgICAiZiIsICAgICJkZV9VU19DQUxJRk9STklBIiwgICAgICAgICAgICAiZGUiLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9UV0Bjb2xsYXRpb249c3Ryb2tlIiwgICAgICAiemhAY29sbGF0aW9uPXN0cm9rZSIsCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0NOQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJ6aCIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX0NOQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJ6aCIsIC8qIHNob3VsZCBiZSAnVCcgd2hlbiB2YWxpZFN1YkxvY2FsZXMgd29ya3MgKi8KKyAgICAgICAgICAgICAgInQiLCAgICAiemhfSEtAY29sbGF0aW9uPXBpbnlpbiIsICAgICAgInpoIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfSEtAY29sbGF0aW9uPXN0cm9rZSIsICAgICAgInpoQGNvbGxhdGlvbj1zdHJva2UiLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9ISyIsICAiemhAY29sbGF0aW9uPXN0cm9rZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX01PIiwgICJ6aEBjb2xsYXRpb249c3Ryb2tlIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdfU1RST0tFIiwgICJ6aEBjb2xsYXRpb249c3Ryb2tlIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdfU1RST0tFQGNvbGxhdGlvbj1iaWc1aGFuIiwgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0NOQGNhbGVuZGFyPWphcGFuZXNlIiwgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgImRlQGNhbGVuZGFyPWphcGFuZXNlIiwgICAgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX1RXQGNvbGxhdGlvbj1iaWc1aGFuIiwgICAgInpoQGNvbGxhdGlvbj1iaWc1aGFuIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdAY29sbGF0aW9uPWdiMjMxMmhhbiIsICJ6aEBjb2xsYXRpb249Z2IyMzEyaGFuIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfQ05AY29sbGF0aW9uPWJpZzVoYW4iLCAgICAiemhAY29sbGF0aW9uPWJpZzVoYW4iLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9DTkBjb2xsYXRpb249Z2IyMzEyaGFuIiwgInpoQGNvbGxhdGlvbj1nYjIzMTJoYW4iLAorICAgICAgICAgICAgICAidCIsICAgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsICAgICAgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoQGNvbGxhdGlvbj1nYjIzMTJoYW4iLCAgICAiemhAY29sbGF0aW9uPWdiMjMxMmhhbiIsCisgICAgICAgICAgICAgICJ0IiwgICAgImhpX0lOQGNvbGxhdGlvbj1kaXJlY3QiLCAgICAgICJoaUBjb2xsYXRpb249ZGlyZWN0IiwKKyAgICAgICAgICAgICAgInQiLCAgICAiaGlAY29sbGF0aW9uPXN0YW5kYXJkIiwgICAgICAiaGkiLAorICAgICAgICAgICAgICAidCIsICAgICJoaUBjb2xsYXRpb249ZGlyZWN0IiwgICAgICAiaGlAY29sbGF0aW9uPWRpcmVjdCIsCisgICAgICAgICAgICAgICJmIiwgICAgImhpX0FVQGNvbGxhdGlvbj1kaXJlY3Q7Y3VycmVuY3k9Q0hGO2NhbGVuZGFyPWJ1ZGRoaXN0IiwgICAiaGlAY29sbGF0aW9uPWRpcmVjdCIsCisgICAgICAgICAgICAgICJmIiwgICAgImhpX0FVQGNvbGxhdGlvbj1zdGFuZGFyZDtjdXJyZW5jeT1DSEY7Y2FsZW5kYXI9YnVkZGhpc3QiLCAgICJoaSIsCisgICAgICAgICAgICAgICJ0IiwgICAgImRlX0RFQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJkZSIsIC8qIGJ1ZyA0NTgyIHRlc3RzICovCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0RFX0JPTk5AY29sbGF0aW9uPXBpbnlpbiIsICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgIm5sIiwgICAgICAgICAgICAgICAgICAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgInQiLCAgICAibmxfTkwiLCAgICAgICAgICAgICAgICAgICAgICAgInJvb3QiLAorICAgICAgICAgICAgICAiZiIsICAgICJubF9OTF9FRVhUIiwgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICJ0IiwgICAgIm5sQGNvbGxhdGlvbj1zdHJva2UiLCAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgInQiLCAgICAibmxfTkxAY29sbGF0aW9uPXN0cm9rZSIsICAgICAgInJvb3QiLAorICAgICAgICAgICAgICAiZiIsICAgICJubF9OTF9FRVhUQGNvbGxhdGlvbj1zdHJva2UiLCAicm9vdCIsCSAgCisgICAgICAgICAgIH07CisKKyAgICAgICBTdHJpbmcgRl9TVFIgPSAiZiI7CisgICAgICAgU3RyaW5nIFRfU1RSID0gInQiOworICAgICAgIGJvb2xlYW4gaXNBdmFpbFtdID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgaW50IGk7CisKKyAgICAgICBsb2dsbigiVGVzdGluZyBmdW5jdGlvbmFsIGVxdWl2YWxlbnRzLi4uIik7CisgICAgICAgZm9yKGk9MDtpPHRlc3RDYXNlcy5sZW5ndGg7aSs9MykgeworICAgICAgICAgICBib29sZWFuIGV4cGVjdEF2YWlsID0gVF9TVFIuZXF1YWxzKHRlc3RDYXNlc1tpKzBdKTsKKyAgICAgICAgICAgVUxvY2FsZSBpbkxvY2FsZSA9IG5ldyBVTG9jYWxlKHRlc3RDYXNlc1tpKzFdKTsKKyAgICAgICAgICAgVUxvY2FsZSBleHBlY3RMb2NhbGUgPSBuZXcgVUxvY2FsZSh0ZXN0Q2FzZXNbaSsyXSk7CisKKyAgICAgICAgICAgbG9nbG4obmV3IEludGVnZXIoaS8zKS50b1N0cmluZygpICsgIjogIiArIG5ldyBCb29sZWFuKGV4cGVjdEF2YWlsKS50b1N0cmluZygpICsgIlx0XHQiICsKKyAgICAgICAgICAgICAgICAgICBpbkxvY2FsZS50b1N0cmluZygpICsgIlx0XHQiICsgZXhwZWN0TG9jYWxlLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgIFVMb2NhbGUgZXF1aXZMb2NhbGUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSxDT0xMQVRJT05fUkVTTkFNRSwKKyAgICAgICAgICAgICAgICAgICBDT0xMQVRJT05fS0VZV09SRCwgaW5Mb2NhbGUsIGlzQXZhaWwpOworICAgICAgICAgICBib29sZWFuIGdvdEF2YWlsID0gaXNBdmFpbFswXTsKKworICAgICAgICAgICBpZigoZ290QXZhaWwhPWV4cGVjdEF2YWlsKSB8fCAhZXF1aXZMb2NhbGUuZXF1YWxzKGV4cGVjdExvY2FsZSkpIHsKKyAgICAgICAgICAgICAgIGVycmxuKG5ldyBJbnRlZ2VyKGkvMykudG9TdHJpbmcoKSArICI6ICBFcnJvciwgZXhwZWN0ZWQgIEVxdWl2PSIgKyBuZXcgQm9vbGVhbihleHBlY3RBdmFpbCkudG9TdHJpbmcoKSArICJcdFx0IiArCisgICAgICAgICAgICAgICAgICAgICAgIGluTG9jYWxlLnRvU3RyaW5nKCkgKyAiXHRcdC0tPiAiICsgZXhwZWN0TG9jYWxlLnRvU3RyaW5nKCkgKyAiLCAgYnV0IGdvdCAiICsgbmV3IEJvb2xlYW4oZ290QXZhaWwpLnRvU3RyaW5nKCkgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgICBlcXVpdkxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVycm9yIGNvbmRpdGlvbnM6Iik7CisgICAgICAgdHJ5IHsKKyAgICAgICAgICAgVUxvY2FsZSBlcXVpdkxvY2FsZSA9IElDVVJlc291cmNlQnVuZGxlLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCAiY2FsZW5kYXIiLAorICAgICAgICAgICAgICAiY2FsZW5kYXIiLCBuZXcgVUxvY2FsZSgiYXJfRUdAY2FsZW5kYXI9aXNsYW1pYyIpLCBuZXcgYm9vbGVhblsxXSk7CisgICAgICAgICAgIGVycmxuKCJFcnI6IGV4cGVjdGVkIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiIpOworICAgICAgIH0gY2F0Y2ggKCBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gdCApIHsKKyAgICAgICAgICAgbG9nbG4oImV4cGVjdGVkIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBjYXVnaHQgKFBBU1MpOiAiICsgdC50b1N0cmluZygpKTsKKyAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vcndlZ2lhbigpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgIm5vX05PX05ZIik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoIkNvdW50cmllcyIpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gc3ViLmdldFN0cmluZygiTk8iKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiTm9yZWciKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oImdvdCBleHBlY3RlZCBvdXRwdXQgIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGVycmxuKCJDYXVnaHQgYW4gdW5leHBlY3RlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQxMDIoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJvb3QgPShJQ1VSZXNvdXJjZUJ1bmRsZSkgSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInJvb3QiKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHQgPSBudWxsOyAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB0ID0gcm9vdC5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyL2lzbGFtaWMtY2l2aWwvQW1QbU1hcmtlcnMiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2Vjb25kIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LiBIb3cgZGlkIGl0IGdldCBoZXJlP1xuIik7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB0ID0gcm9vdC5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyL2lzbGFtaWMtY2l2aWwvZXJhcy9hYmJyZXZpYXRlZC8wL21pa2ltYXVzL3BlcmEiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2Vjb25kIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LiBIb3cgZGlkIGl0IGdldCBoZXJlP1xuIik7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHQhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJ0IGlzIG5vdCBudWxsISIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDTERSU3R5bGVBbGlhc2VzKCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgU3RyaW5nW11leHBlY3RzID0gbmV3IFN0cmluZ1tdIHsgIiIsICJhNDEiLCAiYTEyIiwgImEwMyIsICJhcjQiIH07CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgQ0xEUiBzdHlsZSBhbGlhc2VzLi4uLi4uXG4iKTsKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwgInRlX0lOX1JFVklTRUQiLHRlc3RMb2FkZXIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBhbGlhcyA9IHJiLmdldCgiYSIpOworCisgICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPCA1IDsgaSsrKSB7CisgICAgICAgICAgU3RyaW5nIHJlc291cmNlPSJhIitpOworICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGEgPSAoKElDVVJlc291cmNlQnVuZGxlKWFsaWFzKS5nZXRXaXRoRmFsbGJhY2socmVzb3VyY2UpOworICAgICAgICAgIHJlc3VsdCA9IGEuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgaWYocmVzdWx0LmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgICAgZXJybG4oIkNMRFIgc3R5bGUgYWxpYXNlcyBmYWlsZWQgcmVzb3VyY2Ugd2l0aCBuYW1lICIrcmVzb3VyY2UrInJlc291cmNlLCBleHAgIitleHBlY3RzW2ldICsiICwgZ290ICIgKyByZXN1bHQpOyAKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyBnZXRMU1N0cmluZyhpbnQgc3RhdHVzKXsKKyAgICAgICAgc3dpdGNoKHN0YXR1cyl7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuICJGUk9NX0ZBTExCQUNLIjsKKyAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUOgorICAgICAgICAgICAgICAgIHJldHVybiAiRlJPTV9ERUZBVUxUIjsKKyAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZST01fUk9PVCI7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLkZST01fTE9DQUxFOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZST01fTE9DQUxFIjsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuICJVTktOT1dOIjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9hZGluZ1N0YXR1cygpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ5aV9JTCIpOworICAgICAgICBpbnQgc3RhdHVzID0gYnVuZGxlLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fREVGQVVMVCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9ICAgICAgICAKKyAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiZW9fREUiKTsKKyAgICAgICAgc3RhdHVzID0gYnVuZGxlLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0speworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9hZGluZyBzdGF0dXMuIEV4cGVjdGVkICIrIGdldExTU3RyaW5nKElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0spIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgdG8gdmVyaWZ5IGxvYWRpbmcgc3RhdHVzIG9mIGdldChTdHJpbmcpIik7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInRlX0lOIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGNvdW50cmllcyA9IGJ1bmRsZS5nZXQoIkNvdW50cmllcyIpOworICAgICAgICBzdGF0dXMgPWNvdW50cmllcy5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGF1eEV4ZW1wbGFyID0gYnVuZGxlLmdldCgiQXV4RXhlbXBsYXJDaGFyYWN0ZXJzIik7CisgICAgICAgIHN0YXR1cyA9IGF1eEV4ZW1wbGFyLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9IAorICAgICAgICAqLworICAgICAgICBsb2dsbigiVGVzdCB0byB2ZXJpZnkgbG9hZGluZyBzdGF0dXMgb2YgZ2V0KGludCkiKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbXMgPSBidW5kbGUuZ2V0KCJNZWFzdXJlbWVudFN5c3RlbSIpOworICAgICAgICBzdGF0dXMgPSBtcy5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX1JPT1QpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9hZGluZyBzdGF0dXMuIEV4cGVjdGVkICIrIGdldExTU3RyaW5nKElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCkgCisgICAgICAgICAgICAgICAgICAgICsgIiBHb3Q6ICIgKyBnZXRMU1N0cmluZyhzdGF0dXMpKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBsb2dsbigiVGVzdCB0byB2ZXJpZnkgbG9hZGluZyBzdGF0dXMgb2YgZ2V0d2l0aEZhbGxiYWNrIik7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwgInNoX1lVIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGVtcCA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImEvYTIiKTsKKyAgICAgICAgc3RhdHVzID0gdGVtcC5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0xPQ0FMRSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9MT0NBTEUpIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0KKyAgICAgICAgdGVtcCA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImEvYTEiKTsKKyAgICAgICAgc3RhdHVzID0gdGVtcC5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9CisgICAgICAgIHRlbXAgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJhL2E0Iik7CisgICAgICAgIHN0YXR1cyA9IHRlbXAuZ2V0TG9hZGluZ1N0YXR1cygpOworICAgICAgICBpZihzdGF0dXMgIT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX1JPT1QpIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGU7CisgICAgICAgIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgaWYgKGJ1bmRsZSA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSBudWxsOworICAgICAgICBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZiAoYnVuZGxlID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oIlVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShVTG9jYWxlKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oImNvdmVyYWdlIikgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRlIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIGNsYXNzIFN0dWIgZXh0ZW5kcyBVUmVzb3VyY2VCdW5kbGV7CisgICAgICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkge3JldHVybiBVTG9jYWxlLlJPT1Q7fQorICAgICAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCB2b2lkIHNldExvYWRpbmdTdGF0dXMoaW50IG5ld1N0YXR1cykge30KKyAgICAgICAgICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRLZXlzKCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlR2V0T2JqZWN0KFN0cmluZyBrZXkpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgIH0KKyAgICAgICAgU3R1YiBzdHViID0gbmV3IFN0dWIoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3R1Yi5nZXRMb2NhbGUoKS5lcXVhbHMoVUxvY2FsZS5ST09ULnRvTG9jYWxlKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJVUmVzb3VyY2VCdW5kbGUuZ2V0TG9jbGFlKExvY2FsZSkgc2hvdWxkIGRlbGVnYXRlIHRvIChVTG9jYWxlKSIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKYXZhVUxvY2FsZUJ1bmRsZUxvYWRpbmcoKXsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lPSJjb20uaWJtLmljdS5kZXYuZGF0YS5yZXNvdXJjZXMuVGVzdERhdGFFbGVtZW50cyI7CisgICAgICAgIFN0cmluZyBsb2NOYW1lID0gImVuX0xhdG5fVVMiOworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NOYW1lLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgU3RyaW5nIGZyb21Sb290ID0gYnVuZGxlLmdldFN0cmluZygiZnJvbV9yb290Iik7CisgICAgICAgIGlmKCFmcm9tUm9vdC5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIHJvb3QiKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3IgZnJvbV9yb290Iik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGZyb21FbiA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW4iKTsKKyAgICAgICAgaWYoIWZyb21Fbi5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzdHJpbmcgZm9yIGZyb21fZW4iKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnJvbUVuTGF0biA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW5fTGF0biIpOworICAgICAgICBpZighZnJvbUVuTGF0bi5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX0xhdG4iKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3IgZnJvbV9lbl9MYXRuIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGZyb21FbkxhdG5VcyA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW5fTGF0bl9VUyIpOworICAgICAgICBpZighZnJvbUVuTGF0blVzLmVxdWFscygiVGhpcyBkYXRhIGNvbWVzIGZyb20gZW5fTGF0bl9VUyIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBmcm9tX2VuX0xhdG5fVVMiKTsKKyAgICAgICAgfQorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlMSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbmV3IFVMb2NhbGUobG9jTmFtZSksIHRlc3RMb2FkZXIpOworICAgICAgICBpZighYnVuZGxlMS5lcXVhbHMoYnVuZGxlKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGJ1bmRsZSBmb3IgIitiYXNlTmFtZSArIi4iK2xvY05hbWUpOworICAgICAgICB9CisgICAgICAgIGlmKGJ1bmRsZTEhPWJ1bmRsZSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBsb2FkIHRoZSBidW5kbGUgZnJvbSBjYWNoZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlMiA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgImVuX0lOIiwgdGVzdExvYWRlcik7CisgICAgICAgIGlmKCFidW5kbGUyLmdldExvY2FsZSgpLnRvU3RyaW5nKCkuZXF1YWxzKCJlbiIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZmFsbGJhY2sgbG9jYWxlLiBFeHBlY3RlZDogZW4gR290OiAiK2J1bmRsZTIuZ2V0TG9jYWxlKCkudG9TdHJpbmcoKSk7ICAgIAorICAgICAgICB9CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUzID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCAidGVfSU4iLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgaWYoIWJ1bmRsZTMuZ2V0TG9jYWxlKCkudG9TdHJpbmcoKS5lcXVhbHMoInRlIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBmYWxsYmFjayBsb2NhbGUuIEV4cGVjdGVkOiB0ZSBHb3Q6ICIrYnVuZGxlMi5nZXRMb2NhbGUoKS50b1N0cmluZygpKTsgICAgCisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLWV4aXN0ZW50IGJ1bmRsZSAuLiBzaG91bGQgcmV0dXJuIGRlZmF1bHQKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGRlZmF1bHRCdW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsICJoaV9JTiIsIHRlc3RMb2FkZXIpOworICAgICAgICBVTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgaWYoIWRlZmF1bHRCdW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscyhkZWZhdWx0TG9jYWxlKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGRlZmF1bHQgYnVuZGxlIGZvciBub24tZXhpc3RlbnQgYnVuZGxlIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLWV4aXN0ZW50IGJ1bmRsZSwgbm9uLWV4aXN0ZW50IGRlZmF1bHQgbG9jYWxlCisgICAgICAgIC8vIHNvIHJldHVybiB0aGUgcm9vdCBidW5kbGUuCisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgcm9vdCA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgImhpX0lOIiwgdGVzdExvYWRlcik7CisgICAgICAgIGlmKCFyb290LmdldFVMb2NhbGUoKS50b1N0cmluZygpLmVxdWFscygiIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSByb290IGJ1bmRsZSBmb3Igbm9uLWV4aXN0ZW50IGRlZmF1bHQgYnVuZGxlIGZvciBub24tZXhpc3RlbnQgYnVuZGxlIik7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICAvL3Jlc2V0IHRoZSBkZWZhdWx0CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgRW51bWVyYXRpb24ga2V5cyA9IGJ1bmRsZS5nZXRLZXlzKCk7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIHdoaWxlKGtleXMuaGFzTW9yZUVsZW1lbnRzKCkpeworICAgICAgICAgICAgbG9nbG4oImtleTogIisga2V5cy5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICBpZihpIT00KXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGtleXM6IGdvdCAiICsgaSArICIsIGV4cGVjdGVkIDQiKTsKKyAgICAgICAgfQorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlNCA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwiZnJfTGF0bl9GUiIsIHRlc3RMb2FkZXIpOworICAgICAgICBpZihidW5kbGU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBsb2FkIGJ1bmRsZSBmcl9MYXRuX0ZSIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEFsaWFzRmFsbGJhY2soKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVUxvY2FsZSBsb2MgPSBuZXcgVUxvY2FsZSgiZW5fVVMiKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGxvYyk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiMSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSliLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvaGVicmV3L21vbnRoTmFtZXMvZm9ybWF0L2FiYnJldmlhdGVkIik7CisgICAgICAgICAgICBpZihiMSE9bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oImxvYWRlZCBkYXRhIGZvciBhYmJyZXZpYXRlZCBtb250aCBuYW1lczogIisgYjEuZ2V0S2V5KCkpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkZhaWxlZCB0byBsb2FkIGRhdGEgZm9yIGFiYnJldmlhdGVkIG1vbnRoIG5hbWVzIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlMjE2ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTAwOCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVU5vdGlmaWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUldMb2NrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5LZXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLlNlcnZpY2VMaXN0ZW5lcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuU2ltcGxlRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5Mb2NhbGVLZXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLklDVVJlc291cmNlQnVuZGxlRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5FdmVudExpc3RlbmVyOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkTWFwOworCitwdWJsaWMgY2xhc3MgSUNVU2VydmljZVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIElDVVNlcnZpY2VUZXN0IHRlc3QgPSBuZXcgSUNVU2VydmljZVRlc3QoKTsKKyAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBscm1zZyhTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgIHJldHVybiBtZXNzYWdlICsgIiBsaHM6ICIgKyBsaHMgKyAiIHJoczogIiArIHJoczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtQm9vbGVhbihTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiB2YWwpIHsKKyAgICBtc2cobWVzc2FnZSwgdmFsID8gTE9HIDogRVJSLCAhdmFsLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtRXF1YWwoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgbXNnKGxybXNnKG1lc3NhZ2UsIGxocywgcmhzKSwgKGxocyA9PSBudWxsID8gcmhzID09IG51bGwgOiBsaHMuZXF1YWxzKHJocykpID8gTE9HIDogRVJSLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtSWRlbnRpY2FsKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgbXNnKGxybXNnKG1lc3NhZ2UsIGxocywgcmhzKSwgbGhzID09IHJocyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29uZmlybUlkZW50aWNhbChTdHJpbmcgbWVzc2FnZSwgaW50IGxocywgaW50IHJocykgeworICAgIG1zZyhtZXNzYWdlICsgIiBsaHM6ICIgKyBsaHMgKyAiIHJoczogIiArIHJocywgbGhzID09IHJocyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBVTG9jYWxlIGFzIHRoZSBsb2NhbGUsIHRoZSBkZWZhdWx0IGNvbGxhdG9yIGZvcgorICAgICAqIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8gc29ydCB0aGUgZGlzcGxheSBuYW1lcywgYW5kIG51bGwgZm9yCisgICAgICogdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhsb2NhbGUsIGNvbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8KKyAgICAgKiBzb3J0IHRoZSBkaXNwbGF5IG5hbWVzLCBhbmQgbnVsbCBmb3IgdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICByZXR1cm4gc2VydmljZS5nZXREaXNwbGF5TmFtZXMobG9jYWxlLCBjb2wsIG51bGwpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0CisgICAgICogdXNlcyB0aGUgZGVmYXVsdCBjb2xsYXRvciBmb3IgdGhlIGxvY2FsZSBhcyB0aGUgY29tcGFyYXRvciB0bworICAgICAqIHNvcnQgdGhlIGRpc3BsYXkgbmFtZXMuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIG1hdGNoSUQpIHsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSwgY29sLCBtYXRjaElEKTsKKyAgICB9CisKKyAgICAvLyB1c2UgbG9jYWxlIGtleXMKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdFNlcnZpY2UgZXh0ZW5kcyBJQ1VTZXJ2aWNlIHsKKyAgICAgICAgcHVibGljIFRlc3RTZXJ2aWNlKCkgeworICAgICAgICAgICAgc3VwZXIoIlRlc3QgU2VydmljZSIpOworICAgICAgICB9CisKKyAgICBwdWJsaWMgS2V5IGNyZWF0ZUtleShTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIExvY2FsZUtleS5jcmVhdGVXaXRoQ2Fub25pY2FsRmFsbGJhY2soaWQsIG51bGwpOyAvLyBubyBmYWxsYmFjayBsb2NhbGUKKyAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAvLyBjcmVhdGUgYSBzZXJ2aWNlIHVzaW5nIGxvY2FsZSBrZXlzLAorICAgIElDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBUZXN0U2VydmljZSgpOworCisgICAgICAgIGxvZ2xuKCJzZXJ2aWNlIG5hbWU6IiArIHNlcnZpY2UuZ2V0TmFtZSgpKTsKKworICAgIC8vIHJlZ2lzdGVyIGFuIG9iamVjdCB3aXRoIG9uZSBsb2NhbGUsCisgICAgLy8gc2VhcmNoIGZvciBhbiBvYmplY3Qgd2l0aCBhIG1vcmUgc3BlY2lmaWMgbG9jYWxlCisgICAgLy8gc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgb2JqZWN0CisgICAgSW50ZWdlciBzaW5nbGV0b24wID0gbmV3IEludGVnZXIoMCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24wLCAiZW5fVVMiKTsKKyAgICBPYmplY3QgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0ZPTyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEpIGVuX1VTX0ZPTyAtPiBlbl9VUyIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKyAgICAvLyByZWdpc3RlciBhIG5ldyBvYmplY3Qgd2l0aCB0aGUgbW9yZSBzcGVjaWZpYyBsb2NhbGUKKyAgICAvLyBzZWFyY2ggZm9yIGFuIG9iamVjdCB3aXRoIHRoYXQgbG9jYWxlCisgICAgLy8gc2hvdWxkIHJldHVybiB0aGUgbmV3IG9iamVjdAorICAgIEludGVnZXIgc2luZ2xldG9uMSA9IG5ldyBJbnRlZ2VyKDEpOworICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3Qoc2luZ2xldG9uMSwgImVuX1VTX0ZPTyIpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19GT08iKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIyKSBlbl9VU19GT08gLT4gZW5fVVNfRk9PIiwgcmVzdWx0LCBzaW5nbGV0b24xKTsKKworICAgIC8vIHNlYXJjaCBmb3IgYW4gb2JqZWN0IHRoYXQgZmFsbHMgYmFjayB0byB0aGUgZmlyc3QgcmVnaXN0ZXJlZCBsb2NhbGUKKyAgICByZXN1bHQgPSBzZXJ2aWNlLmdldCgiZW5fVVNfQkFSIik7CisgICAgY29uZmlybUlkZW50aWNhbCgiMykgZW5fVVNfQkFSIC0+IGVuX1VTIiwgcmVzdWx0LCBzaW5nbGV0b24wKTsKKworICAgIC8vIGdldCBhIGxpc3Qgb2YgdGhlIGZhY3Rvcmllcywgc2hvdWxkIGJlIHR3bworICAgIExpc3QgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCI0KSBmYWN0b3J5IHNpemUiLCBmYWN0b3JpZXMuc2l6ZSgpLCAyKTsKKworICAgIC8vIHJlZ2lzdGVyIGEgbmV3IG9iamVjdCB3aXRoIHlldCBhbm90aGVyIGxvY2FsZQorICAgIC8vIG9yaWdpbmFsIGZhY3RvcnkgbGlzdCBpcyB1bmNoYW5nZWQKKyAgICBJbnRlZ2VyIHNpbmdsZXRvbjIgPSBuZXcgSW50ZWdlcigyKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KHNpbmdsZXRvbjIsICJlbiIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjUpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDIpOworCisgICAgLy8gc2VhcmNoIGZvciBhbiBvYmplY3Qgd2l0aCB0aGUgbmV3IGxvY2FsZQorICAgIC8vIHN0YWNrIG9mIGZhY3RvcmllcyBpcyBub3cgZW4sIGVuX1VTX0ZPTywgZW5fVVMKKyAgICAvLyBzZWFyY2ggZm9yIGVuX1VTIHNob3VsZCBzdGlsbCBmaW5kIGVuX1VTIG9iamVjdAorICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCI2KSBlbl9VU19CQVIgLT4gZW5fVVMiLCByZXN1bHQsIHNpbmdsZXRvbjApOworCisgICAgLy8gcmVnaXN0ZXIgYSBuZXcgb2JqZWN0IHdpdGggYW4gb2xkIGlkLCBzaG91bGQgaGlkZSBlYXJsaWVyIGZhY3RvcnkgdXNpbmcgdGhpcyBpZCwgYnV0IGxlYXZlIGl0IHRoZXJlCisgICAgSW50ZWdlciBzaW5nbGV0b24zID0gbmV3IEludGVnZXIoMyk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZW5fVVMiKTsKKyAgICBmYWN0b3JpZXMgPSBzZXJ2aWNlLmZhY3RvcmllcygpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjkpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDQpOworCisgICAgLy8gc2hvdWxkIGdldCBkYXRhIGZyb20gdGhhdCBuZXcgZmFjdG9yeQorICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIxMCkgZW5fVVNfQkFSIC0+ICgzKSIsIHJlc3VsdCwgc2luZ2xldG9uMyk7CisKKyAgICAvLyByZW1vdmUgbmV3IGZhY3RvcnkKKyAgICAvLyBzaG91bGQgaGF2ZSBmZXdlciBmYWN0b3JpZXMgYWdhaW4KKyAgICBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KWZhY3Rvcmllcy5nZXQoMCkpOworICAgIGZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisgICAgY29uZmlybUlkZW50aWNhbCgiMTEpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDMpOworCisgICAgLy8gc2hvdWxkIGdldCBvcmlnaW5hbCBkYXRhIGFnYWluIGFmdGVyIHJlbW92ZSBmYWN0b3J5CisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0JBUiIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEyKSBlbl9VU19CQVIgLT4gMCIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKyAgICAvLyBzaG91bGRuJ3QgZmluZCB1bnJlZ2lzdGVyZWQgaWRzCisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoImZvbyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEzKSBmb28gLT4gbnVsbCIsIHJlc3VsdCwgbnVsbCk7CisKKyAgICAvLyBzaG91bGQgZmluZCBub24tY2Fub25pY2FsIHN0cmluZ3MKKyAgICBTdHJpbmdbXSByZXN1bHRJRCA9IG5ldyBTdHJpbmdbMV07CisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoIkVOX3VzX2ZPbyIsIHJlc3VsdElEKTsKKyAgICBjb25maXJtRXF1YWwoIjE0KSBmaW5kIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX1VTX0ZPTyIpOworCisgICAgLy8gc2hvdWxkIGJlIGFibGUgdG8gcmVnaXN0ZXIgbm9uLWNhbm9uaWNhbCBzdHJpbmdzIGFuZCBnZXQgdGhlbSBjYW5vbmljYWxpemVkCisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZU5fY2FfZFVkZSIpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJFbl9DYV9EdURlIiwgcmVzdWx0SUQpOworICAgIGNvbmZpcm1FcXVhbCgiMTUpIHJlZ2lzdGVyIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX0NBX0RVREUiKTsKKworICAgIC8vIHNob3VsZCBiZSBhYmxlIHRvIHJlZ2lzdGVyIGludmlzaWJsZSBmYWN0b3JpZXMsIHRoZXNlIHdpbGwgbm90CisgICAgLy8gYmUgdmlzaWJsZSBieSBkZWZhdWx0LCBidXQgaWYgeW91IGtub3cgdGhlIHNlY3JldCBwYXNzd29yZCB5b3UKKyAgICAvLyBjYW4gc3RpbGwgYWNjZXNzIHRoZXNlIHNlcnZpY2VzLi4uCisgICAgSW50ZWdlciBzaW5nbGV0b240ID0gbmV3IEludGVnZXIoNCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b240LCAiZW5fVVNfQkFSIiwgZmFsc2UpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIxNykgZ2V0IGludmlzaWJsZSIsIHJlc3VsdCwgc2luZ2xldG9uNCk7CisKKyAgICAvLyBzaG91bGQgbm90IGJlIGFibGUgdG8gbG9jYXRlIGludmlzaWJsZSBzZXJ2aWNlcworICAgIFNldCBpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICBjb25maXJtQm9vbGVhbigiMTgpIGZpbmQgaW52aXNpYmxlIiwgIWlkcy5jb250YWlucygiZW5fVVNfQkFSIikpOworCisgICAgc2VydmljZS5yZXNldCgpOworICAgIC8vIGFuIGFub255bW91cyBmYWN0b3J5IHRoYW4gaGFuZGxlcyBhbGwgaWRzCisgICAgeworICAgICAgICBGYWN0b3J5IGZhY3RvcnkgPSBuZXcgRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShrZXkuY3VycmVudElEKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpIHsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShmYWN0b3J5KTsKKworICAgICAgICAvLyBhbm9ueW1vdXMgZmFjdG9yeSB3aWxsIHN0aWxsIGhhbmRsZSB0aGUgaWQKKyAgICAgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoVUxvY2FsZS5VUy50b1N0cmluZygpKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCIyMSkgbG9jYWxlIiwgcmVzdWx0LCBVTG9jYWxlLlVTKTsKKworICAgICAgICAvLyBzdGlsbCBub3JtYWxpemVzIGlkCisgICAgICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJFTl9VU19CQVIiKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCIyMikgbG9jYWxlIiwgcmVzdWx0LCBuZXcgVUxvY2FsZSgiZW5fVVNfQkFSIikpOworCisgICAgICAgIC8vIHdlIGNhbiBvdmVycmlkZSBmb3IgcGFydGljdWxhciBpZHMKKyAgICAgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZW5fVVNfQkFSIik7CisgICAgICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICAgICAgY29uZmlybUlkZW50aWNhbCgiMjMpIG92ZXJyaWRlIHN1cGVyIiwgcmVzdWx0LCBzaW5nbGV0b24zKTsKKworICAgIH0KKworICAgIC8vIGVtcHR5IHNlcnZpY2Ugc2hvdWxkIG5vdCByZWNvZ25pemUgYW55dGhpbmcKKyAgICBzZXJ2aWNlLnJlc2V0KCk7CisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTIik7CisgICAgY29uZmlybUlkZW50aWNhbCgiMjQpIGVtcHR5IiwgcmVzdWx0LCBudWxsKTsKKworICAgIC8vIGNyZWF0ZSBhIGN1c3RvbSBtdWx0aXBsZSBrZXkgZmFjdG9yeQorICAgIHsKKyAgICAgICAgU3RyaW5nW10geGlkcyA9IHsgImVuX1VTX1ZBTExFWV9HSVJMIiwKKyAgICAgICAgICAgICAgICAgICJlbl9VU19WQUxMRVlfQk9ZIiwKKyAgICAgICAgICAgICAgICAgICJlbl9VU19TVVJGRVJfR0FMIiwKKyAgICAgICAgICAgICAgICAgICJlbl9VU19TVVJGRVJfRFVERSIKKyAgICAgICAgfTsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RMb2NhbGVLZXlGYWN0b3J5KHhpZHMsICJMYXRlciIpKTsKKyAgICB9CisKKyAgICAvLyBpdGVyYXRlIG92ZXIgdGhlIHZpc3VhbCBpZHMgcmV0dXJuZWQgYnkgdGhlIG11bHRpcGxlIGZhY3RvcnkKKyAgICB7CisgICAgICAgIFNldCB2aWRzID0gc2VydmljZS5nZXRWaXNpYmxlSURzKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSB2aWRzLml0ZXJhdG9yKCk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgIGxvZ2xuKCIgICIgKyBpZCArICIgLS0+ICIgKyBzZXJ2aWNlLmdldChpZCkpOworICAgICAgICB9CisgICAgICAgIC8vIGZvdXIgdmlzaWJsZSBpZHMKKyAgICAgICAgY29uZmlybUlkZW50aWNhbCgiMjUpIHZpc2libGUgaWRzIiwgY291bnQsIDQpOworICAgIH0KKworICAgIC8vIGl0ZXJhdGUgb3ZlciB0aGUgZGlzcGxheSBuYW1lcworICAgIHsKKyAgICAgICAgTWFwIGRpZHMgPSBnZXREaXNwbGF5TmFtZXMoc2VydmljZSwgVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGRpZHMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgKytjb3VudDsKKyAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgbG9nbG4oIiAgIiArIGUuZ2V0S2V5KCkgKyAiIC0tID4gIiArIGUuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gZm91ciBkaXNwbGF5IG5hbWVzLCBpbiBnZXJtYW4KKyAgICAgICAgY29uZmlybUlkZW50aWNhbCgiMjYpIGRpc3BsYXkgbmFtZXMiLCBjb3VudCwgNCk7CisgICAgfQorCisgICAgLy8gbm8gdmFsaWQgZGlzcGxheSBuYW1lCisgICAgY29uZmlybUlkZW50aWNhbCgiMjcpIGdldCBkaXNwbGF5IG5hbWUiLCBzZXJ2aWNlLmdldERpc3BsYXlOYW1lKCJlbl9VU19WQUxMRVlfR0VFSyIpLCBudWxsKTsKKworICAgIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lKCJlbl9VU19TVVJGRVJfRFVERSIsIFVMb2NhbGUuVVMpOworICAgICAgICBjb25maXJtRXF1YWwoIjI4KSBnZXQgZGlzcGxheSBuYW1lIiwgbmFtZSwgIkVuZ2xpc2ggKFVuaXRlZCBTdGF0ZXMsIFNVUkZFUl9EVURFKSIpOworICAgIH0KKworICAgIC8vIHJlZ2lzdGVyIGFub3RoZXIgbXVsdGlwbGUgZmFjdG9yeQorICAgIHsKKyAgICAgICAgU3RyaW5nW10geGlkcyA9IHsKKyAgICAgICAgImVuX1VTX1NVUkZFUiIsICJlbl9VU19TVVJGRVJfR0FMIiwgImVuX1VTX1NJTElDT04iLCAiZW5fVVNfU0lMSUNPTl9HRUVLIgorICAgICAgICB9OworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgVGVzdExvY2FsZUtleUZhY3RvcnkoeGlkcywgIlJhZCBkdWRlIikpOworICAgIH0KKworICAgIC8vIHRoaXMgdGltZSwgd2UgaGF2ZSBzZXZlbiBkaXNwbGF5IG5hbWVzCisgICAgICAgIC8vIFJhZCBkdWRlJ3Mgc3VyZmVyIGdhbCAncmVwbGFjZXMnIGxhdGVyJ3Mgc3VyZmVyIGdhbAorICAgIHsKKyAgICAgICAgTWFwIGRpZHMgPSBnZXREaXNwbGF5TmFtZXMoc2VydmljZSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBkaWRzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICsrY291bnQ7CisgICAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgIGxvZ2xuKCIgICIgKyBlLmdldEtleSgpICsgIiAtLT4gIiArIGUuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2V2ZW4gZGlzcGxheSBuYW1lcywgaW4gc3BhbmlzaAorICAgICAgICBjb25maXJtSWRlbnRpY2FsKCIyOSkgZGlzcGxheSBuYW1lcyIsIGNvdW50LCA3KTsKKyAgICB9CisKKyAgICAvLyB3ZSBzaG91bGQgZ2V0IHRoZSBkaXNwbGF5IG5hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgYWN0dWFsIGlkCisgICAgLy8gcmV0dXJuZWQgYnkgdGhlIGlkIHdlIHVzZWQuCisgICAgeworICAgICAgICBTdHJpbmdbXSBhY3R1YWxJRCA9IG5ldyBTdHJpbmdbMV07CisgICAgICAgIFN0cmluZyBpZCA9ICJlbl91c19zdXJmZXJfZ2FsIjsKKyAgICAgICAgU3RyaW5nIGdhbCA9IChTdHJpbmcpc2VydmljZS5nZXQoaWQsIGFjdHVhbElEKTsKKyAgICAgICAgaWYgKGdhbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImFjdHVhbCBpZDogIiArIGFjdHVhbElEWzBdKTsKKyAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZShhY3R1YWxJRFswXSwgVUxvY2FsZS5VUyk7CisgICAgICAgIGxvZ2xuKCJmb3VuZCBhY3R1YWw6ICIgKyBnYWwgKyAiIHdpdGggZGlzcGxheSBuYW1lOiAiICsgZGlzcGxheU5hbWUpOworICAgICAgICBjb25maXJtQm9vbGVhbigiMzApIGZvdW5kIGRpc3BsYXkgbmFtZSBmb3IgYWN0dWFsIiwgZGlzcGxheU5hbWUgIT0gbnVsbCk7CisKKyAgICAgICAgZGlzcGxheU5hbWUgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lKGlkLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgbG9nbG4oImZvdW5kIHF1ZXJ5OiAiICsgZ2FsICsgIiB3aXRoIGRpc3BsYXkgbmFtZTogIiArIGRpc3BsYXlOYW1lKTsKKyAgICAgICAgLy8gdGhpcyBpcyBubyBsb25nZXIgYSBidWcsIHdlIHdhbnQgdG8gcmV0dXJuIGRpc3BsYXkgbmFtZXMgZm9yIGFueXRoaW5nCisgICAgICAgIC8vIHRoYXQgYSBmYWN0b3J5IGhhbmRsZXMuICBzaW5jZSB3ZSBoYW5kbGUgaXQsIHdlIHNob3VsZCByZXR1cm4gYSBkaXNwbGF5CisgICAgICAgIC8vIG5hbWUuICBzZWUgamIzNTQ5CisgICAgICAgIC8vIGNvbmZpcm1Cb29sZWFuKCIzMSkgZm91bmQgZGlzcGxheSBuYW1lIGZvciBxdWVyeSIsIGRpc3BsYXlOYW1lID09IG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICBlcnJsbigiMzApIHNlcnZpY2UgY291bGQgbm90IGZpbmQgZW50cnkgZm9yICIgKyBpZCk7CisgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgJ2R1ZGUnIGZhY3RvcnksIHNpbmNlIGl0IG92ZXJyaWRlcyBlbl9VU19TVVJGRVIuCisgICAgICAgIGlkID0gImVuX1VTX1NVUkZFUl9CT1pPIjsKKyAgICAgICAgU3RyaW5nIGJvem8gPSAoU3RyaW5nKXNlcnZpY2UuZ2V0KGlkLCBhY3R1YWxJRCk7CisgICAgICAgIGlmIChib3pvICE9IG51bGwpIHsKKyAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZShhY3R1YWxJRFswXSwgVUxvY2FsZS5VUyk7CisgICAgICAgIGxvZ2xuKCJmb3VuZCBhY3R1YWw6ICIgKyBib3pvICsgIiB3aXRoIGRpc3BsYXkgbmFtZTogIiArIGRpc3BsYXlOYW1lKTsKKyAgICAgICAgY29uZmlybUJvb2xlYW4oIjMyKSBmb3VuZCBkaXNwbGF5IG5hbWUgZm9yIGFjdHVhbCIsIGRpc3BsYXlOYW1lICE9IG51bGwpOworCisgICAgICAgIGRpc3BsYXlOYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZShpZCwgVUxvY2FsZS5VUyk7CisgICAgICAgIGxvZ2xuKCJmb3VuZCBhY3R1YWw6ICIgKyBib3pvICsgIiB3aXRoIGRpc3BsYXkgbmFtZTogIiArIGRpc3BsYXlOYW1lKTsKKyAgICAgICAgLy8gc2VlIGFib3ZlIGFuZCBqYjM1NDkKKyAgICAgICAgLy8gY29uZmlybUJvb2xlYW4oIjMzKSBmb3VuZCBkaXNwbGF5IG5hbWUgZm9yIHF1ZXJ5IiwgZGlzcGxheU5hbWUgPT0gbnVsbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIGVycmxuKCIzMikgc2VydmljZSBjb3VsZCBub3QgZmluZCBlbnRyeSBmb3IgIiArIGlkKTsKKyAgICAgICAgfQorCisgICAgICAgICAgICBjb25maXJtQm9vbGVhbigiMzQpIGlzIGRlZmF1bHQgIiwgIXNlcnZpY2UuaXNEZWZhdWx0KCkpOworICAgIH0KKworICAgICAgICAvKgorICAgICAgLy8gZGlzYWxsb3cgaGlkaW5nIGZvciBub3cKKworICAgICAgLy8gaGlkaW5nIGZhY3Rvcnkgc2hvdWxkIG9ic2N1cmUgJ3N1YmxvY2FsZXMnCisgICAgICB7CisgICAgICBTdHJpbmdbXSB4aWRzID0geworICAgICAgImVuX1VTX1ZBTExFWSIsICJlbl9VU19TSUxJQ09OIgorICAgICAgfTsKKyAgICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBUZXN0SGlkaW5nRmFjdG9yeSh4aWRzLCAiaGlkaW5nIikpOworICAgICAgfQorCisgICAgICB7CisgICAgICBNYXAgZGlkcyA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKCk7CisgICAgICBJdGVyYXRvciBpdGVyID0gZGlkcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICBpbnQgY291bnQgPSAwOworICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICArK2NvdW50OworICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgIGxvZ2xuKCIgICIgKyBlLmdldEtleSgpICsgIiAtLSA+ICIgKyBlLmdldFZhbHVlKCkpOworICAgICAgfQorICAgICAgY29uZmlybUlkZW50aWNhbCgiMzUpIGhpZGluZyBmYWN0b3J5IiwgY291bnQsIDUpOworICAgICAgfQorICAgICAgICAqLworCisgICAgeworICAgICAgICBTZXQgeGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgICAgICBJdGVyYXRvciBpdGVyID0geGlkcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgU3RyaW5nIHhpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgIGxvZ2xuKHhpZCArICI/ICAiICsgc2VydmljZS5nZXQoeGlkKSk7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigidmFsbGV5Z2lybD8gICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfVkFMTEVZX0dJUkwiKSk7CisgICAgICAgIGxvZ2xuKCJ2YWxsZXlib3k/ICAgIiArIHNlcnZpY2UuZ2V0KCJlbl9VU19WQUxMRVlfQk9ZIikpOworICAgICAgICBsb2dsbigidmFsbGV5ZHVkZT8gICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfVkFMTEVZX0RVREUiKSk7CisgICAgICAgIGxvZ2xuKCJzdXJmZXJnaXJsPyAgIiArIHNlcnZpY2UuZ2V0KCJlbl9VU19TVVJGRVJfR0lSTCIpKTsKKyAgICB9CisKKyAgICAvLyByZXNvdXJjZSBidW5kbGUgZmFjdG9yeS4KKyAgICBzZXJ2aWNlLnJlc2V0KCk7CisgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobmV3IElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSgpKTsKKworICAgIC8vIGxpc3QgYWxsIG9mIHRoZSByZXNvdXJjZXMKKyAgICB7CisgICAgICAgICAgICBsb2dsbigiYWxsIHZpc2libGUgaWRzOiAiICsgc2VydmljZS5nZXRWaXNpYmxlSURzKCkpOworICAgICAgICAgICAgLyoKKyAgICAgICAgICBTZXQgeGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJ7Iik7CisgICAgICAgICAgYm9vbGVhbiBub3RmaXJzdCA9IGZhbHNlOworICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSB4aWRzLml0ZXJhdG9yKCk7CisgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgU3RyaW5nIHhpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgaWYgKG5vdGZpcnN0KSB7CisgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgIG5vdGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgYnVmLmFwcGVuZCh4aWQpOworICAgICAgICAgIH0KKyAgICAgICAgICBidWYuYXBwZW5kKCJ9Iik7CisgICAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgKi8KKyAgICB9CisKKyAgICAgICAgLy8gbGlzdCBvbmx5IHRoZSByZXNvdXJjZXMgZm9yIGVzLCBkZWZhdWx0IGxvY2FsZQorICAgICAgICAvLyBzaW5jZSB3ZSdyZSB1c2luZyB0aGUgZGVmYXVsdCBLZXksIG9ubHkgImVzIiBpcyBtYXRjaGVkCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJ2aXNpYmxlIGlkcyBmb3IgZXMgbG9jYWxlOiAiICsgc2VydmljZS5nZXRWaXNpYmxlSURzKCJlcyIpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxpc3Qgb25seSB0aGUgc3BhbmlzaCBkaXNwbGF5IG5hbWVzIGZvciBlcywgc3BhbmlzaCBjb2xsYXRpb24gb3JkZXIKKyAgICAgICAgLy8gc2luY2Ugd2UncmUgdXNpbmcgdGhlIGRlZmF1bHQgS2V5LCBvbmx5ICJlcyIgaXMgbWF0Y2hlZAorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiZGlzcGxheSBuYW1lczogIiArIGdldERpc3BsYXlOYW1lcyhzZXJ2aWNlLCBuZXcgVUxvY2FsZSgiZXMiKSwgImVzIikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbGlzdCB0aGUgZGlzcGxheSBuYW1lcyBpbiByZXZlcnNlIG9yZGVyCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJkaXNwbGF5IG5hbWVzIGluIHJldmVyc2Ugb3JkZXI6ICIgKworICAgICAgICAgICAgICAgICAgc2VydmljZS5nZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5VUywgbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLVN0cmluZy5DQVNFX0lOU0VOU0lUSVZFX09SREVSLmNvbXBhcmUoKFN0cmluZylsaHMsIChTdHJpbmcpcmhzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgfQorCisgICAgLy8gZ2V0IGFsbCB0aGUgZGlzcGxheSBuYW1lcyBvZiB0aGVzZSByZXNvdXJjZXMKKyAgICAvLyB0aGlzIHNob3VsZCBiZSBmYXN0IHNpbmNlIHRoZSBkaXNwbGF5IG5hbWVzIHdlcmUgY2FjaGVkLgorICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzZXJ2aWNlIGRpc3BsYXkgbmFtZXMgZm9yIGRlX0RFIik7CisgICAgICAgIE1hcCBuYW1lcyA9IGdldERpc3BsYXlOYW1lcyhzZXJ2aWNlLCBuZXcgVUxvY2FsZSgiZGVfREUiKSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJ7Iik7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBuYW1lcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICBFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpZS5nZXRLZXkoKTsKKyAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZyllLmdldFZhbHVlKCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICAgIiArIG5hbWUgKyAiIC0tPiAiICsgaWQpOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIlxufSIpOworICAgICAgICBsb2dsbihidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgICAgIENhbGlmb3JuaW9MYW5ndWFnZUZhY3RvcnkgY2FsaWZhY3RvcnkgPSBuZXcgQ2FsaWZvcm5pb0xhbmd1YWdlRmFjdG9yeSgpOworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShjYWxpZmFjdG9yeSk7CisgICAgLy8gZ2V0IGFsbCB0aGUgZGlzcGxheSBuYW1lcyBvZiB0aGVzZSByZXNvdXJjZXMKKyAgICB7CisgICAgICAgICAgICBsb2dsbigiY2FsaWZvcm5pbyBsYW5ndWFnZSBmYWN0b3J5Iik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJ7Iik7CisgICAgICAgICAgICBTdHJpbmdbXSBpZE5hbWVzID0geworICAgICAgICAgICAgICAgIENhbGlmb3JuaW9MYW5ndWFnZUZhY3RvcnkuY2FsaWZvcm5pbywKKyAgICAgICAgQ2FsaWZvcm5pb0xhbmd1YWdlRmFjdG9yeS52YWxsZXksCisgICAgICAgIENhbGlmb3JuaW9MYW5ndWFnZUZhY3Rvcnkuc3VyZmVyLAorICAgICAgICBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5LmdlZWsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkTmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWROYW1lID0gaWROYW1lc1tpXTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcbiAgLS0tICIgKyBpZE5hbWUgKyAiIC0tLSIpOworICAgICAgICAgICAgICAgIE1hcCBuYW1lcyA9IGdldERpc3BsYXlOYW1lcyhzZXJ2aWNlLCBuZXcgVUxvY2FsZShpZE5hbWUpKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbmFtZXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpZS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZyllLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICAgICIgKyBuYW1lICsgIiAtLT4gIiArIGlkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiXG59Iik7CisgICAgICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvLyB0ZXN0IG5vdGlmaWNhdGlvbgorICAgIC8vIHNpbXBsZSByZWdpc3RyYXRpb24KKyAgICB7CisgICAgICAgICAgICBsb2dsbigic2ltcGxlIHJlZ2lzdHJhdGlvbiBub3RpZmljYXRpb24iKTsKKyAgICAgICAgSUNVTG9jYWxlU2VydmljZSBscyA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCk7CisgICAgICAgIFNlcnZpY2VMaXN0ZW5lciBsMSA9IG5ldyBTZXJ2aWNlTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwcml2YXRlIGludCBuOworICAgICAgICAgICAgcHVibGljIHZvaWQgc2VydmljZUNoYW5nZWQoSUNVU2VydmljZSBzKSB7CisgICAgICAgICAgICBsb2dsbigibGlzdGVuZXIgMSByZXBvcnQgIiArIG4rKyArICIgc2VydmljZSBjaGFuZ2VkOiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGxzLmFkZExpc3RlbmVyKGwxKTsKKyAgICAgICAgU2VydmljZUxpc3RlbmVyIGwyID0gbmV3IFNlcnZpY2VMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHByaXZhdGUgaW50IG47CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBzZXJ2aWNlQ2hhbmdlZChJQ1VTZXJ2aWNlIHMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJsaXN0ZW5lciAyIHJlcG9ydCAiICsgbisrICsgIiBzZXJ2aWNlIGNoYW5nZWQ6ICIgKyBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgbHMuYWRkTGlzdGVuZXIobDIpOworICAgICAgICBsb2dsbigicmVnaXN0ZXJpbmcgZm9vLi4uICIpOworICAgICAgICBscy5yZWdpc3Rlck9iamVjdCgiRm9vIiwgImVuX0ZPTyIpOworICAgICAgICBsb2dsbigicmVnaXN0ZXJpbmcgYmFyLi4uICIpOworICAgICAgICBscy5yZWdpc3Rlck9iamVjdCgiQmFyIiwgImVuX0JBUiIpOworICAgICAgICBsb2dsbigiZ2V0dGluZyBmb28uLi4iKTsKKyAgICAgICAgbG9nbG4oKFN0cmluZylscy5nZXQoImVuX0ZPTyIpKTsKKyAgICAgICAgbG9nbG4oInJlbW92aW5nIGxpc3RlbmVyIDIuLi4iKTsKKyAgICAgICAgbHMucmVtb3ZlTGlzdGVuZXIobDIpOworICAgICAgICBsb2dsbigicmVnaXN0ZXJpbmcgYmF6Li4uIik7CisgICAgICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJCYXoiLCAiZW5fQkFaIik7CisgICAgICAgIGxvZ2xuKCJyZW1vdmluZyBsaXN0ZW5lciAxIik7CisgICAgICAgIGxzLnJlbW92ZUxpc3RlbmVyKGwxKTsKKyAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJ1cnAuLi4iKTsKKyAgICAgICAgbHMucmVnaXN0ZXJPYmplY3QoIkJ1cnAiLCAiZW5fQlVSUCIpOworCisgICAgICAgIC8vIHNob3VsZCBvbmx5IGdldCBvbmUgbm90aWZpY2F0aW9uIGV2ZW4gaWYgcmVnaXN0ZXIgbXVsdGlwbGUgdGltZXMKKyAgICAgICAgbG9nbG4oIi4uLiB0cnlpbmcgbXVsdGlwbGUgcmVnaXN0cmF0aW9uIik7CisgICAgICAgIGxzLmFkZExpc3RlbmVyKGwxKTsKKyAgICAgICAgbHMuYWRkTGlzdGVuZXIobDEpOworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMSk7CisgICAgICAgIGxzLmFkZExpc3RlbmVyKGwyKTsKKyAgICAgICAgbHMucmVnaXN0ZXJPYmplY3QoIkZvbyIsICJlbl9GT08iKTsKKyAgICAgICAgbG9nbG4oIi4uLiByZWdpc3RlcmVkIGZvbyIpOworCisgICAgICAgIC8vIHNpbmNlIGluIGEgc2VwYXJhdGUgdGhyZWFkLCB3ZSBjYW4gY2FsbGJhY2sgYW5kIG5vdCBkZWFkbG9jaworICAgICAgICBTZXJ2aWNlTGlzdGVuZXIgbDMgPSBuZXcgU2VydmljZUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHJpdmF0ZSBpbnQgbjsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNlcnZpY2VDaGFuZ2VkKElDVVNlcnZpY2UgcykgeworICAgICAgICAgICAgbG9nbG4oImxpc3RlbmVyIDMgcmVwb3J0ICIgKyBuKysgKyAiIHNlcnZpY2UgY2hhbmdlZC4uLiIpOworICAgICAgICAgICAgaWYgKHMuZ2V0KCJlbl9CT0lOSyIpID09IG51bGwpIHsgLy8gZG9uJ3QgcmVjdXJzZSBvbiBvdXJzZWx2ZXMhISEKKyAgICAgICAgICAgICAgICBsb2dsbigicmVnaXN0ZXJpbmcgYm9pbmsuLi4iKTsKKyAgICAgICAgICAgICAgICBzLnJlZ2lzdGVyT2JqZWN0KCJib2luayIsICJlbl9CT0lOSyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMyk7CisgICAgICAgIGxvZ2xuKCJyZWdpc3RlcmluZyBib28uLi4iKTsKKyAgICAgICAgbHMucmVnaXN0ZXJPYmplY3QoIkJvbyIsICJlbl9CT08iKTsKKyAgICAgICAgbG9nbG4oIi4uLmRvbmUiKTsKKworICAgICAgICB0cnkgeworICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBUZXN0TG9jYWxlS2V5RmFjdG9yeSBleHRlbmRzIExvY2FsZUtleUZhY3RvcnkgeworICAgIHByb3RlY3RlZCBmaW5hbCBTZXQgaWRzOworICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgZmFjdG9yeUlEOworCisgICAgcHVibGljIFRlc3RMb2NhbGVLZXlGYWN0b3J5KFN0cmluZ1tdIGlkcywgU3RyaW5nIGZhY3RvcnlJRCkgeworICAgICAgICAgICAgc3VwZXIoVklTSUJMRSwgZmFjdG9yeUlEKTsKKworICAgICAgICB0aGlzLmlkcyA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChuZXcgSGFzaFNldChBcnJheXMuYXNMaXN0KGlkcykpKTsKKyAgICAgICAgICAgIHRoaXMuZmFjdG9yeUlEID0gZmFjdG9yeUlEICsgIjogIjsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIGxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnlJRCArIGxvYy50b1N0cmluZygpOworICAgIH0KKworICAgIHByb3RlY3RlZCBTZXQgZ2V0U3VwcG9ydGVkSURzKCkgeworICAgICAgICAgICAgcmV0dXJuIGlkczsKKyAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgIC8vIERpc2FsbG93IGhpZGluZyBmb3Igbm93IHNpbmNlIGl0IGNhdXNlcyBnbmFybHkgcHJvYmxlbXMsIGxpa2UKKyAgICAgIC8vIGhvdyBkbyB5b3UgbG9jYWxpemUgdGhlIGhpZGRlbiAoYnV0IHN0aWxsIGV4cG9ydGVkKSBuYW1lcy4KKworICAgICAgc3RhdGljIGNsYXNzIFRlc3RIaWRpbmdGYWN0b3J5IGltcGxlbWVudHMgSUNVU2VydmljZS5GYWN0b3J5IHsKKyAgICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmdbXSBpZHM7CisgICAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIGZhY3RvcnlJRDsKKworICAgICAgcHVibGljIFRlc3RIaWRpbmdGYWN0b3J5KFN0cmluZ1tdIGlkcykgeworICAgICAgdGhpcyhpZHMsICJIaWRpbmciKTsKKyAgICAgIH0KKworICAgICAgcHVibGljIFRlc3RIaWRpbmdGYWN0b3J5KFN0cmluZ1tdIGlkcywgU3RyaW5nIGZhY3RvcnlJRCkgeworICAgICAgdGhpcy5pZHMgPSAoU3RyaW5nW10paWRzLmNsb25lKCk7CisKKyAgICAgIGlmIChmYWN0b3J5SUQgPT0gbnVsbCB8fCBmYWN0b3J5SUQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgdGhpcy5mYWN0b3J5SUQgPSAiIjsKKyAgICAgIH0gZWxzZSB7CisgICAgICB0aGlzLmZhY3RvcnlJRCA9IGZhY3RvcnlJRCArICI6ICI7CisgICAgICB9CisgICAgICB9CisKKyAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgIGlmIChMb2NhbGVVdGlsaXR5LmlzRmFsbGJhY2tPZihpZHNbaV0sIGtleS5jdXJyZW50SUQoKSkpIHsKKyAgICAgIHJldHVybiBmYWN0b3J5SUQgKyBrZXkuY2Fub25pY2FsSUQoKTsKKyAgICAgIH0KKyAgICAgIH0KKyAgICAgIHJldHVybiBudWxsOworICAgICAgfQorCisgICAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpIHsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKSB7CisgICAgICBTdHJpbmcgaWQgPSBpZHNbaV07CisgICAgICBJdGVyYXRvciBpdGVyID0gcmVzdWx0LmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgIGlmIChMb2NhbGVVdGlsaXR5LmlzRmFsbGJhY2tPZihpZCwgKFN0cmluZylpdGVyLm5leHQoKSkpIHsKKyAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICB9CisgICAgICB9CisgICAgICByZXN1bHQucHV0KGlkLCB0aGlzKTsKKyAgICAgIH0KKyAgICAgIH0KKworICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICByZXR1cm4gZmFjdG9yeUlEICsgbmV3IFVMb2NhbGUoaWQpLmdldERpc3BsYXlOYW1lKGxvY2FsZSk7CisgICAgICB9CisgICAgICB9CisgICAgKi8KKworICAgIHN0YXRpYyBjbGFzcyBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IHsKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjYWxpZm9ybmlvID0gImVuX1VTX0NBIjsKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWxsZXkgPSBjYWxpZm9ybmlvICsgIl9WQUxMRVkiOworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHN1cmZlciA9IGNhbGlmb3JuaW8gKyAiX1NVUkZFUiI7CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2VlayA9IGNhbGlmb3JuaW8gKyAiX0dFRUsiOworICAgICAgICBwdWJsaWMgc3RhdGljIFNldCBzdXBwb3J0ZWRJRHM7CisgICAgICAgIHN0YXRpYyB7CisgICAgICAgICAgICBIYXNoU2V0IHJlc3VsdCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZU5hbWVTZXQoKSk7CisgICAgICAgIHJlc3VsdC5hZGQoY2FsaWZvcm5pbyk7CisgICAgICAgIHJlc3VsdC5hZGQodmFsbGV5KTsKKyAgICAgICAgcmVzdWx0LmFkZChzdXJmZXIpOworICAgICAgICByZXN1bHQuYWRkKGdlZWspOworICAgICAgICAgICAgc3VwcG9ydGVkSURzID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHJlc3VsdCk7CisgICAgICAgIH0KKworICAgIHB1YmxpYyBTZXQgZ2V0U3VwcG9ydGVkSURzKCkgeworICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRlZElEczsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIHByZWZpeCA9ICIiOworICAgICAgICBTdHJpbmcgc3VmZml4ID0gIiI7CisgICAgICAgIFN0cmluZyBscyA9IGxvY2FsZS50b1N0cmluZygpOworICAgICAgICBpZiAoTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoY2FsaWZvcm5pbywgbHMpKSB7CisgICAgICAgIGlmIChscy5lcXVhbHNJZ25vcmVDYXNlKHZhbGxleSkpIHsKKyAgICAgICAgICAgIHByZWZpeCA9ICJMaWtlLCB5b3Uga25vdywgaXQncyBzbyB0b3RhbGx5ICI7CisgICAgICAgIH0gZWxzZSBpZiAobHMuZXF1YWxzSWdub3JlQ2FzZShzdXJmZXIpKSB7CisgICAgICAgICAgICBwcmVmaXggPSAiRHVkZSwgaXRzICI7CisgICAgICAgIH0gZWxzZSBpZiAobHMuZXF1YWxzSWdub3JlQ2FzZShnZWVrKSkgeworICAgICAgICAgICAgcHJlZml4ID0gIkknZCBlc3RpbWF0ZSBpdCdzIGFwcHJveGltYXRlbHkgIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByZWZpeCA9ICJIdWg/ICBNYXliZSAiOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKGNhbGlmb3JuaW8sIGlkKSkgeworICAgICAgICBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSh2YWxsZXkpKSB7CisgICAgICAgICAgICBzdWZmaXggPSAibGlrZSB0aGUgVmFsbGV5LCB5b3Uga25vdz8gIExldCdzIGdvIHRvIHRoZSBtYWxsISI7CisgICAgICAgIH0gZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZShzdXJmZXIpKSB7CisgICAgICAgICAgICBzdWZmaXggPSAidGltZSB0byBoaXQgdGhvc2UgZ25hcmx5IHdhdmVzLCBEdWRlISEhIjsKKyAgICAgICAgfSBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKGdlZWspKSB7CisgICAgICAgICAgICBzdWZmaXggPSAiYWxsIHN5c3RlbXMgZ28uICBULU1pbnVzIDksIDgsIDcuLi4iOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3VmZml4ID0gIk5vIEhhYmxhIEVuZ2xhaXMiOworICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIHN1ZmZpeCA9IHN1cGVyLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHByZWZpeCArIHN1ZmZpeDsKKyAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZSgpIHsKKyAgICBJQ1VMb2NhbGVTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgidGVzdCBsb2NhbGUiKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KCJyb290IiwgVUxvY2FsZS5ST09UKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KCJnZXJtYW4iLCAiZGUiKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KCJnZXJtYW5fR2VybWFueSIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgiamFwYW5lc2UiLCAiamEiKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KCJqYXBhbmVzZV9KYXBhbiIsIFVMb2NhbGUuSkFQQU4pOworCisgICAgT2JqZWN0IHRhcmdldCA9IHNlcnZpY2UuZ2V0KCJkZV9VUyIpOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIFVMb2NhbGUgZGUgPSBuZXcgVUxvY2FsZSgiZGUiKTsKKyAgICAgICAgVUxvY2FsZSBkZV9VUyA9IG5ldyBVTG9jYWxlKCJkZV9VUyIpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgMiIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCBMb2NhbGVLZXkuS0lORF9BTlkpOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyAzIiwgImdlcm1hbiIsIHRhcmdldCk7CisKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMsIDEyMzQpOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyA0IiwgImdlcm1hbiIsIHRhcmdldCk7CisKKyAgICAgICAgVUxvY2FsZVtdIGFjdHVhbFJldHVybiA9IG5ldyBVTG9jYWxlWzFdOworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUywgYWN0dWFsUmV0dXJuKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIDUiLCAiZ2VybWFuIiwgdGFyZ2V0KTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIDYiLCBhY3R1YWxSZXR1cm5bMF0sIGRlKTsKKworICAgICAgICBhY3R1YWxSZXR1cm5bMF0gPSBudWxsOworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUywgTG9jYWxlS2V5LktJTkRfQU5ZLCBhY3R1YWxSZXR1cm4pOworICAgICAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgNyIsIGFjdHVhbFJldHVyblswXSwgZGUpOworCisgICAgICAgIGFjdHVhbFJldHVyblswXSA9IG51bGw7CisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCAxMjM0LCBhY3R1YWxSZXR1cm4pOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyA4IiwgImdlcm1hbiIsIHRhcmdldCk7CisgICAgICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyA5IiwgYWN0dWFsUmV0dXJuWzBdLCBkZSk7CisKKyAgICAgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgib25lL2RlX1VTIiwgZGVfVVMsIDEpOworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KCJ0d28vZGVfVVMiLCBkZV9VUywgMik7CisKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMsIDEpOworICAgICAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMga2luZCAxIiwgIm9uZS9kZV9VUyIsIHRhcmdldCk7CisKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMsIDIpOworICAgICAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMga2luZCAyIiwgInR3by9kZV9VUyIsIHRhcmdldCk7CisKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMpOworICAgICAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMga2luZCAzIiwgImdlcm1hbiIsIHRhcmdldCk7CisKKyAgICAgICAgTG9jYWxlS2V5IGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKCJlbiIsIG51bGwsIDEyMzQpOworICAgICAgICBsb2dsbigibGtleSBwcmVmaXg6ICIgKyBsa2V5LnByZWZpeCgpKTsKKyAgICAgICAgbG9nbG4oImxrZXkgZGVzY3JpcHRvcjogIiArIGxrZXkuY3VycmVudERlc2NyaXB0b3IoKSk7CisgICAgICAgIGxvZ2xuKCJsa2V5IGN1cnJlbnQgbG9jYWxlOiAiICsgbGtleS5jdXJyZW50TG9jYWxlKCkpOworCisgICAgICAgIGxrZXkuZmFsbGJhY2soKTsKKyAgICAgICAgbG9nbG4oImxrZXkgZGVzY3JpcHRvciAyOiAiICsgbGtleS5jdXJyZW50RGVzY3JpcHRvcigpKTsKKworICAgICAgICBsa2V5LmZhbGxiYWNrKCk7CisgICAgICAgIGxvZ2xuKCJsa2V5IGRlc2NyaXB0b3IgMzogIiArIGxrZXkuY3VycmVudERlc2NyaXB0b3IoKSk7CisKKyAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldCgiemFfUFBQIik7CisgICAgY29uZmlybUVxdWFsKCJ0ZXN0IHphcHBwIiwgInJvb3QiLCB0YXJnZXQpOworCisgICAgVUxvY2FsZSBsb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5KQVBBTkVTRSk7CisgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoInphX1BQUCIpOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCB3aXRoIGphIGxvY2FsZSIsICJqYXBhbmVzZSIsIHRhcmdldCk7CisKKyAgICBTZXQgaWRzID0gc2VydmljZS5nZXRWaXNpYmxlSURzKCk7CisgICAgZm9yIChJdGVyYXRvciBpdGVyID0gaWRzLml0ZXJhdG9yKCk7IGl0ZXIuaGFzTmV4dCgpOykgeworICAgICAgICBsb2dsbigiaWQ6ICIgKyBpdGVyLm5leHQoKSk7CisgICAgfQorCisgICAgVUxvY2FsZS5zZXREZWZhdWx0KGxvYyk7CisgICAgaWRzID0gc2VydmljZS5nZXRWaXNpYmxlSURzKCk7CisgICAgZm9yIChJdGVyYXRvciBpdGVyID0gaWRzLml0ZXJhdG9yKCk7IGl0ZXIuaGFzTmV4dCgpOykgeworICAgICAgICBsb2dsbigiaWQ6ICIgKyBpdGVyLm5leHQoKSk7CisgICAgfQorCisgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoInphX1BQUCIpOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCB3aXRoIGVuIGxvY2FsZSIsICJyb290IiwgdGFyZ2V0KTsKKworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IHNlcnZpY2UuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgY29uZmlybUlkZW50aWNhbCgidGVzdCBhdmFpbGFibGUgbG9jYWxlcyIsIGxvY2FsZXMubGVuZ3RoLCA2KTsKKyAgICAgICAgbG9nbG4oImxvY2FsZXM6ICIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxvZygiXG4gIFsiICsgaSArICJdICIgKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiICIpOworCisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkoKSk7CisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KFVMb2NhbGUuSkFQQU4pOworCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgICAgIExpc3QgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBmYWN0b3JpZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJbIiArIG4rKyArICJdICIgKyBpdGVyLm5leHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBsaXN0IG9ubHkgdGhlIGVuZ2xpc2ggZGlzcGxheSBuYW1lcyBmb3IgZXMsIGluIHJldmVyc2Ugb3JkZXIKKyAgICAgICAgLy8gc2luY2Ugd2UncmUgdXNpbmcgbG9jYWxlIGtleXMsIHdlIHNob3VsZCBnZXQgYWxsIGFuZCBvbmx5IHRoZSBlcyBsb2NhbGVzCisgICAgICAgIC8vIGhtbW0sIHRoZSBkZWZhdWx0IHRvU3RyaW5nIGZ1bmN0aW9uIGRvZXNuJ3QgcHJpbnQgaW4gc29ydGVkIG9yZGVyIGZvciBUcmVlTWFwCisgICAgICAgIHsKKyAgICAgICAgICAgIFNvcnRlZE1hcCBtYXAgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhVTG9jYWxlLlVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLVN0cmluZy5DQVNFX0lOU0VOU0lUSVZFX09SREVSLmNvbXBhcmUoKFN0cmluZylsaHMsIChTdHJpbmcpcmhzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVzIik7CisKKyAgICAgICAgICAgIGxvZ2xuKCJlcyBkaXNwbGF5IG5hbWVzIGluIHJldmVyc2Ugb3JkZXIgIiArIG1hcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0V3JhcEZhY3RvcnkoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBncmVldGluZyA9ICJIZWxsbyBUaGVyZSI7CisgICAgICAgIGZpbmFsIFN0cmluZyBncmVldGluZ0lEID0gImdyZWV0aW5nIjsKKworICAgICAgICBJQ1VTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgSUNVU2VydmljZSgid3JhcCIpOworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KGdyZWV0aW5nLCBncmVldGluZ0lEKTsKKworICAgICAgICBsb2dsbigidGVzdCBvbmU6ICIgKyBzZXJ2aWNlLmdldChncmVldGluZ0lEKSk7CisKKyAgICAgICAgY2xhc3MgV3JhcEZhY3RvcnkgaW1wbGVtZW50cyBGYWN0b3J5IHsKKyAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgICAgIGlmIChrZXkuY3VycmVudElEKCkuZXF1YWxzKGdyZWV0aW5nSUQpKSB7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdCBwcmV2aW91cyA9IHNlcnZpY2UuZ2V0S2V5KGtleSwgbnVsbCwgdGhpcyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQSBkaWZmZXJlbnQgZ3JlZXRpbmc6IFwiIiArIHByZXZpb3VzICsgIlwiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoImdyZWV0aW5nIiwgdGhpcyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAid3JhcCAnIiArIGlkICsgIiciOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBXcmFwRmFjdG9yeSgpKTsKKworICAgICAgICBjb25maXJtRXF1YWwoIndyYXAgdGVzdDogIiwgc2VydmljZS5nZXQoZ3JlZXRpbmdJRCksICJBIGRpZmZlcmVudCBncmVldGluZzogXCIiICsgZ3JlZXRpbmcgKyAiXCIiKTsKKyAgICB9CisKKyAgICAvLyBtaXNjIGNvdmVyYWdlIHRlc3RzCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgIC8vIEtleQorICAgIEtleSBrZXkgPSBuZXcgS2V5KCJmb29iYXIiKTsKKyAgICBsb2dsbigiSUQ6ICIgKyBrZXkuaWQoKSk7CisgICAgbG9nbG4oImNhbm9uaWNhbElEOiAiICsga2V5LmNhbm9uaWNhbElEKCkpOworICAgIGxvZ2xuKCJjdXJyZW50SUQ6ICIgKyBrZXkuY3VycmVudElEKCkpOworICAgIGxvZ2xuKCJoYXMgZmFsbGJhY2s6ICIgKyBrZXkuZmFsbGJhY2soKSk7CisKKyAgICAvLyBTaW1wbGVGYWN0b3J5CisgICAgT2JqZWN0IG9iaiA9IG5ldyBPYmplY3QoKTsKKyAgICBTaW1wbGVGYWN0b3J5IHNmID0gbmV3IFNpbXBsZUZhY3Rvcnkob2JqLCAib2JqZWN0Iik7CisgICAgdHJ5IHsKKyAgICAgICAgc2YgPSBuZXcgU2ltcGxlRmFjdG9yeShudWxsLCBudWxsKTsKKyAgICAgICAgZXJybG4oImRpZG4ndCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICB9CisgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKCJ0aHJldyB3cm9uZyBleGNlcHRpb24iICsgZSk7CisgICAgfQorICAgIGxvZ2xuKHNmLmdldERpc3BsYXlOYW1lKCJvYmplY3QiLCBudWxsKSk7CisKKyAgICAvLyBJQ1VTZXJ2aWNlCisgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVVNlcnZpY2UoKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShzZik7CisKKyAgICB0cnkgeworICAgICAgICBzZXJ2aWNlLmdldChudWxsLCBudWxsKTsKKyAgICAgICAgZXJybG4oImRpZG4ndCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbG9nbG4oIk9LOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgIH0KKyAgICAgICAgLyoKKyAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgZXJybG4oInRocmV3IHdyb25nIGV4Y2VwdGlvbiIgKyBlKTsKKyAgICAgIH0KKyAgICAgICAgKi8KKyAgICB0cnkgeworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShudWxsKTsKKyAgICAgICAgZXJybG4oImRpZG4ndCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbG9nbG4oIk9LOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oInRocmV3IHdyb25nIGV4Y2VwdGlvbiIgKyBlKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KG51bGwpOworICAgICAgICBlcnJsbigiZGlkbid0IHRocm93IGV4Y2VwdGlvbiIpOworICAgIH0KKyAgICBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJsbigidGhyZXcgd3JvbmcgZXhjZXB0aW9uIiArIGUpOworICAgIH0KKworICAgIGxvZ2xuKCJvYmplY3QgaXM6ICIgKyBzZXJ2aWNlLmdldCgib2JqZWN0IikpOworCisgICAgbG9nbG4oInN0YXRzOiAiICsgc2VydmljZS5zdGF0cygpKTsKKworICAgIC8vIElDVVJXTG9jaworCisgICAgSUNVUldMb2NrIHJ3bG9jayA9IG5ldyBJQ1VSV0xvY2soKTsKKyAgICByd2xvY2suYWNxdWlyZVJlYWQoKTsKKyAgICByd2xvY2sucmVsZWFzZVJlYWQoKTsKKworICAgIHJ3bG9jay5hY3F1aXJlV3JpdGUoKTsKKyAgICByd2xvY2sucmVsZWFzZVdyaXRlKCk7CisgICAgbG9nbG4oInN0YXRzOiAiICsgcndsb2NrLmdldFN0YXRzKCkpOworICAgIGxvZ2xuKCJzdGF0czogIiArIHJ3bG9jay5jbGVhclN0YXRzKCkpOworICAgIHJ3bG9jay5hY3F1aXJlUmVhZCgpOworICAgIHJ3bG9jay5yZWxlYXNlUmVhZCgpOworICAgIHJ3bG9jay5hY3F1aXJlV3JpdGUoKTsKKyAgICByd2xvY2sucmVsZWFzZVdyaXRlKCk7CisgICAgbG9nbG4oInN0YXRzOiAiICsgcndsb2NrLmdldFN0YXRzKCkpOworCisgICAgdHJ5IHsKKyAgICAgICAgcndsb2NrLnJlbGVhc2VSZWFkKCk7CisgICAgICAgIGVycmxuKCJubyBlcnJvciB0aHJvd24iKTsKKyAgICB9CisgICAgY2F0Y2ggKElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICByd2xvY2sucmVsZWFzZVdyaXRlKCk7CisgICAgICAgIGVycmxuKCJubyBlcnJvciB0aHJvd24iKTsKKyAgICB9CisgICAgY2F0Y2ggKElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisKKyAgICAgICAgLy8gSUNVTG9jYWxlU2VydmljZQorCisgICAgLy8gTG9jYWxlS2V5CisKKyAgICAvLyBMb2NhbGVLZXkgbGtleSA9IExvY2FsZUtleS5jcmVhdGUoImVuX1VTIiwgImphX0pQIik7CisgICAgLy8gbGtleSA9IExvY2FsZUtleS5jcmVhdGUobnVsbCwgbnVsbCk7CisgICAgTG9jYWxlS2V5IGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKCJlbl9VUyIsICJqYV9KUCIpOworICAgICAgICBsb2dsbigibGtleTogIiArIGxrZXkpOworCisgICAgICAgIGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKG51bGwsIG51bGwpOworICAgICAgICBsb2dsbigibGtleSBmcm9tIG51bGwsbnVsbDogIiArIGxrZXkpOworCisgICAgLy8gTG9jYWxlS2V5RmFjdG9yeQorICAgIExvY2FsZUtleUZhY3RvcnkgbGtmID0gbmV3IExLRlN1YmNsYXNzKGZhbHNlKTsKKyAgICAgICAgbG9nbG4oImxrZjogIiArIGxrZik7CisgICAgbG9nbG4oIm9iajogIiArIGxrZi5jcmVhdGUobGtleSwgbnVsbCkpOworICAgIGxvZ2xuKGxrZi5nZXREaXNwbGF5TmFtZSgiZm9vIiwgbnVsbCkpOworICAgIGxvZ2xuKGxrZi5nZXREaXNwbGF5TmFtZSgiYmFyIiwgbnVsbCkpOworICAgIGxrZi51cGRhdGVWaXNpYmxlSURzKG5ldyBIYXNoTWFwKCkpOworCisgICAgTG9jYWxlS2V5RmFjdG9yeSBpbnZpc2libGVMS0YgPSBuZXcgTEtGU3ViY2xhc3MoZmFsc2UpOworICAgIGxvZ2xuKCJvYmo6ICIgKyBpbnZpc2libGVMS0YuY3JlYXRlKGxrZXksIG51bGwpKTsKKyAgICBsb2dsbihpbnZpc2libGVMS0YuZ2V0RGlzcGxheU5hbWUoImZvbyIsIG51bGwpKTsKKyAgICBsb2dsbihpbnZpc2libGVMS0YuZ2V0RGlzcGxheU5hbWUoImJhciIsIG51bGwpKTsKKyAgICBpbnZpc2libGVMS0YudXBkYXRlVmlzaWJsZUlEcyhuZXcgSGFzaE1hcCgpKTsKKworICAgIC8vIFJlc291cmNlQnVuZGxlRmFjdG9yeQorICAgIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSByYmYgPSBuZXcgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5KCk7CisgICAgbG9nbG4oIlJCOiAiICsgcmJmLmNyZWF0ZShsa2V5LCBudWxsKSk7CisKKyAgICAvLyBJQ1VOb3RpZmllcgorICAgIElDVU5vdGlmaWVyIG5mID0gbmV3IElDVU5TdWJjbGFzcygpOworICAgIHRyeSB7CisgICAgICAgIG5mLmFkZExpc3RlbmVyKG51bGwpOworICAgICAgICBlcnJsbigiYWRkZWQgbnVsbCBsaXN0ZW5lciIpOworICAgIH0KKyAgICBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJsbigiZ290IHdyb25nIGV4Y2VwdGlvbiIpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIG5mLmFkZExpc3RlbmVyKG5ldyBXcm9uZ0xpc3RlbmVyKCkpOworICAgICAgICBlcnJsbigiYWRkZWQgd3JvbmcgbGlzdGVuZXIiKTsKKyAgICB9CisgICAgY2F0Y2ggKElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKCJnb3Qgd3JvbmcgZXhjZXB0aW9uIik7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgbmYucmVtb3ZlTGlzdGVuZXIobnVsbCk7CisgICAgICAgIGVycmxuKCJyZW1vdmVkIG51bGwgbGlzdGVuZXIiKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oImdvdCB3cm9uZyBleGNlcHRpb24iKTsKKyAgICB9CisKKyAgICBuZi5yZW1vdmVMaXN0ZW5lcihuZXcgTXlMaXN0ZW5lcigpKTsKKyAgICBuZi5ub3RpZnlDaGFuZ2VkKCk7CisgICAgbmYuYWRkTGlzdGVuZXIobmV3IE15TGlzdGVuZXIoKSk7CisgICAgbmYucmVtb3ZlTGlzdGVuZXIobmV3IE15TGlzdGVuZXIoKSk7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIE15TGlzdGVuZXIgaW1wbGVtZW50cyBFdmVudExpc3RlbmVyIHsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgV3JvbmdMaXN0ZW5lciBpbXBsZW1lbnRzIEV2ZW50TGlzdGVuZXIgeworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBJQ1VOU3ViY2xhc3MgZXh0ZW5kcyBJQ1VOb3RpZmllciB7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgICAgIHJldHVybiBsIGluc3RhbmNlb2YgTXlMaXN0ZW5lcjsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBub3QgdXNlZCwganVzdCBuZWVkZWQgdG8gaW1wbGVtZW50IGFic3RyYWN0IGJhc2UKKyAgICAgICAgcHVibGljIHZvaWQgbm90aWZ5TGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgTEtGU3ViY2xhc3MgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICBMS0ZTdWJjbGFzcyhib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgc3VwZXIodmlzaWJsZSA/IFZJU0lCTEUgOiBJTlZJU0lCTEUpOworICAgIH0KKworICAgIHByb3RlY3RlZCBTZXQgZ2V0U3VwcG9ydGVkSURzKCkgeworICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLkVNUFRZX1NFVDsKKyAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVU2VydmljZVRlc3RTYW1wbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0U2FtcGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFhYWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0U2FtcGxlLmphdmEKQEAgLTAsMCArMSwyMTggQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudExpc3RlbmVyOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkTWFwOworCitwdWJsaWMgY2xhc3MgSUNVU2VydmljZVRlc3RTYW1wbGUgeworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgSGVsbG9TZXJ2aWNlQ2xpZW50IGNsaWVudCA9IG5ldyBIZWxsb1NlcnZpY2VDbGllbnQoKTsKKworICAgICAgICBUaHJlYWQgdCA9IG5ldyBIZWxsb1VwZGF0ZVRocmVhZCgpOworICAgICAgICB0LnN0YXJ0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LmpvaW4oKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZG9uZSIpOworICAgICAgICBpZihjbGllbnQ9PW51bGwpeworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBjbGFzcyB0aGF0IGRpc3BsYXlzIHRoZSBjdXJyZW50IG5hbWVzIGluIHRoZSBIZWxsbyBzZXJ2aWNlLgorICAgICAqIEVhY2ggdGltZSB0aGUgc2VydmljZSBjaGFuZ2VzLCBpdCByZWRpc3BsYXlzIHRoZSBuYW1lcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgSGVsbG9TZXJ2aWNlQ2xpZW50IGltcGxlbWVudHMgSGVsbG9TZXJ2aWNlLkhlbGxvU2VydmljZUxpc3RlbmVyIHsKKworICAgICAgICBIZWxsb1NlcnZpY2VDbGllbnQoKSB7CisgICAgICAgICAgICBIZWxsb1NlcnZpY2UuYWRkTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBkaXNwbGF5KCk7CisgICAgICAgIH0KKworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIHdpbGwgYmUgY2FsbGVkIGluIHRoZSBub3RpZmljYXRpb24gdGhyZWFkIG9mCisgICAgICAgICAqIElDVU5vdGlmaWVyLiAgSUNVTm90aWZpZXIgY291bGQgc3Bhd24gYSAobm9uLWRhZW1vbikgdGhyZWFkCisgICAgICAgICAqIGZvciBlYWNoIGxpc3RlbmVyLCBzbyB0aGF0IGltcG9saXRlIGxpc3RlbmVycyB3b3VsZG4ndCBob2xkCisgICAgICAgICAqIHVwIG5vdGlmaWNhdGlvbiwgYnV0IHJpZ2h0IG5vdyBpdCBkb2Vzbid0LiAgSW5zdGVhZCwgYWxsCisgICAgICAgICAqIG5vdGlmaWNhdGlvbnMgYXJlIGRlbGl2ZXJlZCBvbiB0aGUgbm90aWZpY2F0aW9uIHRocmVhZC4KKyAgICAgICAgICogU2luY2UgdGhhdCdzIGEgZGFlbW9uIHRocmVhZCwgYSBub3RpZmljYXRpb24gbWlnaHQgbm90CisgICAgICAgICAqIGNvbXBsZXRlIGJlZm9yZSBtYWluIHRlcm1pbmF0ZXMuICAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGhlbGxvU2VydmljZUNoYW5nZWQoKSB7CisgICAgICAgICAgICBkaXNwbGF5KCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgZGlzcGxheSgpIHsKKyAgICAgICAgICAgIE1hcCBuYW1lcyA9IEhlbGxvU2VydmljZS5nZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRpc3BsYXlpbmcgIiArIG5hbWVzLnNpemUoKSArICIgbmFtZXMuIik7CisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbmFtZXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgRW50cnkgZW50cnkgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lID0gKFN0cmluZyllbnRyeS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBIZWxsb1NlcnZpY2Ugc2VydmljZSA9IEhlbGxvU2VydmljZS5nZXQoKFN0cmluZyllbnRyeS5nZXRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZGlzcGxheU5hbWUgKyAiIHNheXMgIiArIHNlcnZpY2UuaGVsbG8oKSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDUwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi0tLS0iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgdGhyZWFkIHRvIHVwZGF0ZSB0aGUgc2VydmljZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgSGVsbG9VcGRhdGVUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworICAgICAgICBTdHJpbmdbXVtdIHVwZGF0ZXMgPSB7CisgICAgICAgICAgICB7ICJIZXkiLCAiZW5fVVNfSU5GT1JNQUwiIH0sCisgICAgICAgICAgICB7ICJIYWxsbyIsICJkZV9ERV9JTkZPUk1BTCIgfSwKKyAgICAgICAgICAgIHsgIllvISIsICJlbl9VU19DQUxJRk9STklBX0lORk9STUFMIiB9LAorICAgICAgICAgICAgeyAiQ2hpIEZhbmxlIE1hPyIsICJ6aF9fSU5GT1JNQUwiIH0sCisgICAgICAgICAgICB7ICJNdW5jaCBtdW5jaC4uLiBCdXJnZXI/IiwgImVuIiB9LAorICAgICAgICAgICAgeyAiU25pZmYiLCAiZnIiIH0sCisgICAgICAgICAgICB7ICJUb25nWmhpISBNYW9aZURvbmcgU2lYaWFuZyBXYW4gU3VpISIsICJ6aF9DTiIgfSwKKyAgICAgICAgICAgIHsgIkJpZXI/IEphISIsICJkZSIgfSwKKyAgICAgICAgfTsKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1cGRhdGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDUwMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIEhlbGxvU2VydmljZS5yZWdpc3Rlcih1cGRhdGVzW2ldWzBdLCBuZXcgVUxvY2FsZSh1cGRhdGVzW2ldWzFdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIHNlcnZpY2UgdGhhdCB3cmFwcyBhbiBJQ1Ugc2VydmljZSBpbiBvcmRlciB0byBleHBvcnQgY3VzdG9tIEFQSSBhbmQKKyAgICAgKiBub3RpZmljYXRpb24uIFRoZSBzZXJ2aWNlIGp1c3QgaW1wbGVtZW50cyAnaGVsbG8nLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBIZWxsb1NlcnZpY2UgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBJQ1VTZXJ2aWNlIHJlZ2lzdHJ5OworICAgICAgICBwcml2YXRlIFN0cmluZyBuYW1lOworICAgIAorICAgICAgICBwcml2YXRlIEhlbGxvU2VydmljZShTdHJpbmcgbmFtZSkgeyAKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7IAorICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgaGVsbG8gc2VydmljZS4uLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBoZWxsbygpIHsgCisgICAgICAgICAgICByZXR1cm4gbmFtZTsgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7IAorICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCkgKyAiOiAiICsgbmFtZTsgCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlZmVycmVkIGluaXQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBJQ1VTZXJ2aWNlIHJlZ2lzdHJ5KCkgeworICAgICAgICAgICAgaWYgKHJlZ2lzdHJ5ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpbml0UmVnaXN0cnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyeTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGluaXRSZWdpc3RyeSgpIHsKKyAgICAgICAgICAgIHJlZ2lzdHJ5ID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyB3ZSBhbHJlYWR5IHZlcmlmeSBpbiBvdXIgd3JhcHBlciBBUElzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIHZvaWQgbm90aWZ5TGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAoKEhlbGxvU2VydmljZUxpc3RlbmVyKWwpLmhlbGxvU2VydmljZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgCisgICAgICAgICAgICAvLyBpbml0aWFsaXplCisgICAgICAgICAgICBkb1JlZ2lzdGVyKCJIZWxsbyIsICJlbiIpOworICAgICAgICAgICAgZG9SZWdpc3RlcigiQm9uam91ciIsICJmciIpOworICAgICAgICAgICAgZG9SZWdpc3RlcigiTmkgSGFvIiwgInpoX0NOIik7CisgICAgICAgICAgICBkb1JlZ2lzdGVyKCJHdXRlbiBUYWciLCAiZGUiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQSBjdXN0b20gbGlzdGVuZXIgZm9yIGNoYW5nZXMgdG8gdGhpcyBzZXJ2aWNlLiAgV2UgZG9uJ3QgbmVlZCB0bworICAgICAgICAgKiBwb2ludCB0byB0aGUgc2VydmljZSBzaW5jZSBpdCBpcyBkZWZpbmVkIGJ5IHRoaXMgY2xhc3MgYW5kIG5vdAorICAgICAgICAgKiBhbiBvYmplY3QuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBIZWxsb1NlcnZpY2VMaXN0ZW5lciBleHRlbmRzIEV2ZW50TGlzdGVuZXIgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaGVsbG9TZXJ2aWNlQ2hhbmdlZCgpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUeXBlLXNhZmUgbm90aWZpY2F0aW9uIGZvciB0aGlzIHNlcnZpY2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgYWRkTGlzdGVuZXIoSGVsbG9TZXJ2aWNlTGlzdGVuZXIgbCkgeworICAgICAgICAgICAgcmVnaXN0cnkoKS5hZGRMaXN0ZW5lcihsKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVHlwZS1zYWZlIG5vdGlmaWNhdGlvbiBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZUxpc3RlbmVyKEhlbGxvU2VydmljZUxpc3RlbmVyIGwpIHsKKyAgICAgICAgICAgIHJlZ2lzdHJ5KCkucmVtb3ZlTGlzdGVuZXIobCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFR5cGUtc2FmZSBhY2Nlc3MgdG8gdGhlIHNlcnZpY2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIEhlbGxvU2VydmljZSBnZXQoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gKEhlbGxvU2VydmljZSlyZWdpc3RyeSgpLmdldChpZCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBTZXQgZ2V0VmlzaWJsZUlEcygpIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyeSgpLmdldFZpc2libGVJRHMoKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIE1hcCBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZXMocmVnaXN0cnkoKSwgbG9jYWxlKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmVnaXN0ZXIgYSBuZXcgaGVsbG8gc3RyaW5nIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihTdHJpbmcgaGVsbG9TdHJpbmcsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBpZiAoaGVsbG9TdHJpbmcgPT0gbnVsbCB8fCBsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9SZWdpc3RlcihoZWxsb1N0cmluZywgbG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZG9SZWdpc3RlcihTdHJpbmcgaGVsbG8sIFN0cmluZyBpZCkgeworICAgICAgICAgICAgcmVnaXN0cnkoKS5yZWdpc3Rlck9iamVjdChuZXcgSGVsbG9TZXJ2aWNlKGhlbGxvKSwgaWQpOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0CisgICAgICAgICAqIHVzZXMgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8KKyAgICAgICAgICogc29ydCB0aGUgZGlzcGxheSBuYW1lcywgYW5kIG51bGwgZm9yIHRoZSBtYXRjaElELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBTb3J0ZWRNYXAgZ2V0RGlzcGxheU5hbWVzKElDVVNlcnZpY2Ugc2VydmljZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICByZXR1cm4gc2VydmljZS5nZXREaXNwbGF5TmFtZXMobG9jYWxlLCBjb2wsIG51bGwpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVU2VydmljZVRocmVhZFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUaHJlYWRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYxNjNjOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUaHJlYWRUZXN0LmphdmEKQEAgLTAsMCArMSw0ODIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdExvZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLlNpbXBsZUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkTWFwOworCitwdWJsaWMgY2xhc3MgSUNVU2VydmljZVRocmVhZFRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIFBSSU5UU1RBVFMgPSBmYWxzZTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBJQ1VTZXJ2aWNlVGhyZWFkVGVzdCB0ZXN0ID0gbmV3IElDVVNlcnZpY2VUaHJlYWRUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworCisgICAgICAgIC8vIGdldAorICAgICAgICAvLyBnZXR2aXNpYmxlaWRzCisgICAgICAgIC8vIGdldGRpc3BsYXluYW1lKGxvY2FsZSkKKyAgICAgICAgLy8gZmFjdG9yaWVzCisgICAgCisgICAgICAgIC8vIHJlZ2lzdGVyRmFjdG9yeQorICAgICAgICAvLyB1bnJlZ2lzdGVyRmFjdG9yeQorCisgICAgICAgIC8vIDEpIGNvbmN1cnJlbnQgYWNjZXNzCisgICAgICAgIC8vIDIpIGFjY2VzcyB3aGlsZSBmYWN0b3JpZXMgY2hhbmdlCisgICAgICAgIC8vIDMpIGl0ZXJhdGlvbiB3aGlsZSBmYWN0b3JpZXMgY2hhbmdlCisgICAgICAgIC8vIDQpIGNvbmN1cnJlbnQgY29uZmxpY3RpbmcgYWNjZXNzCisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gY291bnRyaWVzID0geworICAgICAgICAiYWIiLCAiYmMiLCAiY2QiLCAiZGUiLCAiZWYiLCAiZmciLCAiZ2giLCAiamkiLCAiaWoiLCAiamsiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBsYW5ndWFnZXMgPSB7CisgICAgICAgICIiLCAiWlkiLCAiWVgiLCAiWFciLCAiV1YiLCAiVlUiLCAiVVQiLCAiVFMiLCAiU1IiLCAiUlEiLCAiUVAiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSB2YXJpYW50cyA9IHsKKyAgICAgICAgIiIsICIiLCAiIiwgIkdPTEQiLCAiU0lMVkVSIiwgIkJST05aRSIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVGVzdEZhY3RvcnkgZXh0ZW5kcyBTaW1wbGVGYWN0b3J5IHsKKyAgICAgICAgVGVzdEZhY3RvcnkoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICBzdXBlcihuZXcgVUxvY2FsZShpZCksIGlkLCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgcmV0dXJuICh2aXNpYmxlICYmIGlkLmVxdWFscyh0aGlzLmlkKSkgPyAiKCIgKyBsb2NhbGUudG9TdHJpbmcoKSArICIpICIgKyBpZCA6IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuICJGYWN0b3J5XyIgKyBpZDsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0CisgICAgICogdXNlcyB0aGUgZGVmYXVsdCBjb2xsYXRvciBmb3IgdGhlIGxvY2FsZSBhcyB0aGUgY29tcGFyYXRvciB0bworICAgICAqIHNvcnQgdGhlIGRpc3BsYXkgbmFtZXMsIGFuZCBudWxsIGZvciB0aGUgbWF0Y2hJRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBDb2xsYXRvciBjb2w7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9IAorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGlmIG5vIGNvbGxhdG9yIHJlc291cmNlcywgd2UgY2FuJ3QgY29sbGF0ZQorICAgICAgICAgICAgY29sID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXREaXNwbGF5TmFtZXMobG9jYWxlLCBjb2wsIG51bGwpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBSYW5kb20gciA9IG5ldyBSYW5kb20oKTsgLy8gdGhpcyBpcyBhIG11bHRpIHRocmVhZCB0ZXN0LCBjYW4ndCAndW5yYW5kb21pemUnIAorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldENMVigpIHsKKyAgICAgICAgU3RyaW5nIGMgPSBjb3VudHJpZXNbci5uZXh0SW50KGNvdW50cmllcy5sZW5ndGgpXTsKKyAgICAgICAgU3RyaW5nIGwgPSBsYW5ndWFnZXNbci5uZXh0SW50KGxhbmd1YWdlcy5sZW5ndGgpXTsKKyAgICAgICAgU3RyaW5nIHYgPSB2YXJpYW50c1tyLm5leHRJbnQodmFyaWFudHMubGVuZ3RoKV07CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlKGMsIGwsIHYpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBXQUlUID0gdHJ1ZTsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIEdPID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBUSU1FID0gNTAwMDsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBydW5UaHJlYWRzKCkgeworICAgICAgICBydW5UaHJlYWRzKFRJTUUpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBydW5UaHJlYWRzKGxvbmcgdGltZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgR08gPSB0cnVlOworICAgICAgICAgICAgV0FJVCA9IGZhbHNlOworCisgICAgICAgICAgICBUaHJlYWQuc2xlZXAodGltZSk7CisKKyAgICAgICAgICAgIFdBSVQgPSB0cnVlOworICAgICAgICAgICAgR08gPSBmYWxzZTsKKworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDMwMCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBUZXN0VGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbmFtZTsKKyAgICAgICAgcHJvdGVjdGVkIElDVVNlcnZpY2Ugc2VydmljZTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBsb25nIGRlbGF5OworICAgICAgICBwcm90ZWN0ZWQgZmluYWwgVGVzdExvZyBsb2c7CisKKyAgICAgICAgcHVibGljIFRlc3RUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWUgKyAiICI7CisgICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlOworICAgICAgICAgICAgdGhpcy5kZWxheSA9IGRlbGF5OworICAgICAgICAgICAgdGhpcy5sb2cgPSBuZXcgRGVsZWdhdGluZ0xvZyhsb2cpOworICAgICAgICAgICAgdGhpcy5zZXREYWVtb24odHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICB3aGlsZSAoV0FJVCkgeworICAgICAgICAgICAgICAgIFRocmVhZC55aWVsZCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdoaWxlIChHTykgeworICAgICAgICAgICAgICAgICAgICBpdGVyYXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWxheSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcChkZWxheSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAgcHVibGljIGJvb2xlYW4gbG9nZ2luZygpIHsKKyAgICAgICAgICByZXR1cm4gbG9nICE9IG51bGw7CisgICAgICAgICAgfQorCisgICAgICAgICAgcHVibGljIHZvaWQgbG9nKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICBpZiAobG9nZ2luZygpKSB7CisgICAgICAgICAgbG9nLmxvZyhuYW1lICsgbXNnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgcHVibGljIHZvaWQgbG9nbG4oU3RyaW5nIG1zZykgeworICAgICAgICAgIGlmIChsb2dnaW5nKCkpIHsKKyAgICAgICAgICBsb2cubG9nbG4obmFtZSArIG1zZyk7CisgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIHB1YmxpYyB2b2lkIGVycihTdHJpbmcgbXNnKSB7CisgICAgICAgICAgaWYgKGxvZ2dpbmcoKSkgeworICAgICAgICAgIGxvZy5lcnIobmFtZSArIG1zZyk7CisgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIHB1YmxpYyB2b2lkIGVycmxuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICBpZiAobG9nZ2luZygpKSB7CisgICAgICAgICAgbG9nLmVycmxuKG5hbWUgKyBtc2cpOworICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICBwdWJsaWMgdm9pZCB3YXJuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICBpZiAobG9nZ2luZygpKSB7CisgICAgICAgICAgbG9nLmluZm8obmFtZSArIG1zZyk7CisgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIHB1YmxpYyB2b2lkIHdhcm5sbihTdHJpbmcgbXNnKSB7CisgICAgICAgICAgaWYgKGxvZ2dpbmcoKSkgeworICAgICAgICAgIGxvZy5pbmZvbG4obmFtZSArIG1zZyk7CisgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgUmVnaXN0ZXJGYWN0b3J5VGhyZWFkIGV4dGVuZHMgVGVzdFRocmVhZCB7CisgICAgICAgIFJlZ2lzdGVyRmFjdG9yeVRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIlJFRyAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworICAgICAgICAgICAgRmFjdG9yeSBmID0gbmV3IFRlc3RGYWN0b3J5KGdldENMVigpKTsKKyAgICAgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KGYpOworICAgICAgICAgICAgbG9nLmxvZ2xuKGYudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVW5yZWdpc3RlckZhY3RvcnlUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKyAgICAgICAgcHJpdmF0ZSBSYW5kb20gcjsKKyAgICAgICAgTGlzdCBmYWN0b3JpZXM7CisKKyAgICAgICAgVW5yZWdpc3RlckZhY3RvcnlUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHN1cGVyKCJVTlJFRyAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisgICAgICAgIAorICAgICAgICAgICAgciA9IG5ldyBSYW5kb20oKTsKKyAgICAgICAgICAgIGZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBpdGVyYXRlKCkgeworICAgICAgICAgICAgaW50IHMgPSBmYWN0b3JpZXMuc2l6ZSgpOworICAgICAgICAgICAgaWYgKHMgPT0gMCkgeworICAgICAgICAgICAgICAgIGZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBuID0gci5uZXh0SW50KHMpOworICAgICAgICAgICAgICAgIEZhY3RvcnkgZiA9IChGYWN0b3J5KWZhY3Rvcmllcy5yZW1vdmUobik7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBzdWNjZXNzID0gc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeShmKTsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oImZhY3Rvcnk6ICIgKyBmICsgKHN1Y2Nlc3MgPyAiIHN1Y2NlZWRlZC4iIDogIiAqKiogZmFpbGVkLiIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBVbnJlZ2lzdGVyRmFjdG9yeUxpc3RUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKyAgICAgICAgRmFjdG9yeVtdIGZhY3RvcmllczsKKyAgICAgICAgaW50IG47CisKKyAgICAgICAgVW5yZWdpc3RlckZhY3RvcnlMaXN0VGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIEZhY3RvcnlbXSBmYWN0b3JpZXMsIFRlc3RMb2cgbG9nKSB7CisgICAgICAgICAgICBzdXBlcigiVU5SRUcgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworICAgICAgICAKKyAgICAgICAgICAgIHRoaXMuZmFjdG9yaWVzID0gZmFjdG9yaWVzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgICAgIGlmIChuIDwgZmFjdG9yaWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIEZhY3RvcnkgZiA9IGZhY3Rvcmllc1tuKytdOworICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VjY2VzcyA9IHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoZik7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKCJmYWN0b3J5OiAiICsgZiArIChzdWNjZXNzID8gIiBzdWNjZWVkZWQuIiA6ICIgKioqIGZhaWxlZC4iKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHN0YXRpYyBjbGFzcyBHZXRWaXNpYmxlVGhyZWFkIGV4dGVuZHMgVGVzdFRocmVhZCB7CisgICAgICAgIEdldFZpc2libGVUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHN1cGVyKCJWSVMgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgICAgIFNldCBpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBpZHMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGludCBuID0gMTA7CisgICAgICAgICAgICB3aGlsZSAoLS1uID49IDAgJiYgaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIE9iamVjdCByZXN1bHQgPSBzZXJ2aWNlLmdldChpZCk7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKCJpdGVyOiAiICsgbiArICIgaWQ6ICIgKyBpZCArICIgcmVzdWx0OiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBHZXREaXNwbGF5VGhyZWFkIGV4dGVuZHMgVGVzdFRocmVhZCB7CisgICAgICAgIFVMb2NhbGUgbG9jYWxlOworCisgICAgICAgIEdldERpc3BsYXlUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgVUxvY2FsZSBsb2NhbGUsIFRlc3RMb2cgbG9nKSB7CisgICAgICAgICAgICBzdXBlcigiRElTICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKworICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworICAgICAgICAgICAgTWFwIG5hbWVzID0gZ2V0RGlzcGxheU5hbWVzKHNlcnZpY2UsbG9jYWxlKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBuYW1lcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBpbnQgbiA9IDEwOworICAgICAgICAgICAgd2hpbGUgKC0tbiA+PSAwICYmIGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZG5hbWUgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZyllLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IHJlc3VsdCA9IHNlcnZpY2UuZ2V0KGlkKTsKKworICAgICAgICAgICAgICAgIC8vIE5vdGU6IElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb24gaXMgdGhyb3duIGJ5IHRoZSBjb2RlCisgICAgICAgICAgICAgICAgLy8gYmVsb3cgb24gSUJNIEpSRTUgZm9yIEFJWCA2NGJpdC4gIEZvciBzb21lIHJlYXNvbiwgY29udmVydGluZworICAgICAgICAgICAgICAgIC8vIGludCB0byBTdHJpbmcgb3V0IG9mIHRoaXMgc3RhdGVtZW50IHJlc29sdmVzIHRoZSBpc3N1ZS4KKworICAgICAgICAgICAgICAgIC8vbG9nLmxvZ2xuKCIgaXRlcjogIiArIG4gKyAKKyAgICAgICAgICAgICAgICBTdHJpbmcgbnVtID0gSW50ZWdlci50b1N0cmluZyhuKTsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIiBpdGVyOiAiICsgbnVtICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgZG5hbWU6ICIgKyBkbmFtZSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlkOiAiICsgaWQgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiByZXN1bHQ6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEdldFRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBwcml2YXRlIFN0cmluZ1tdIGFjdHVhbElEOworCisgICAgICAgIEdldFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIkdFVCAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisKKyAgICAgICAgICAgIGFjdHVhbElEID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBnZXRDTFYoKTsKKyAgICAgICAgICAgIE9iamVjdCBvID0gc2VydmljZS5nZXQoaWQsIGFjdHVhbElEKTsKKyAgICAgICAgICAgIGlmIChvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIiBpZDogIiArIGlkICsgIiBhY3R1YWw6ICIgKyBhY3R1YWxJRFswXSArICIgcmVzdWx0OiAiICsgbyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgR2V0TGlzdFRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZ1tdIGxpc3Q7CisgICAgICAgIHByaXZhdGUgaW50IG47CisKKyAgICAgICAgR2V0TGlzdFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBTdHJpbmdbXSBsaXN0LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIkdFVEwgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworCisgICAgICAgICAgICB0aGlzLmxpc3QgPSBsaXN0OworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgICAgIGlmICgtLW4gPCAwKSB7CisgICAgICAgICAgICAgICAgbiA9IGxpc3QubGVuZ3RoIC0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBpZCA9IGxpc3Rbbl07CisgICAgICAgICAgICBPYmplY3QgbyA9IHNlcnZpY2UuZ2V0KGlkKTsKKyAgICAgICAgICAgIGxvZy5sb2dsbigiIGlkOiAiICsgaWQgKyAiIHJlc3VsdDogIiArIG8pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcmV0dXJuIGEgY29sbGVjdGlvbiBvZiB1bmlxdWUgZmFjdG9yaWVzLCBtaWdodCBiZSBmZXdlciB0aGFuIHJlcXVlc3RlZAorICAgIENvbGxlY3Rpb24gZ2V0RmFjdG9yeUNvbGxlY3Rpb24oaW50IHJlcXVlc3RlZCkgeworICAgICAgICBTZXQgbG9jYWxlcyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVxdWVzdGVkOyArK2kpIHsKKyAgICAgICAgICAgIGxvY2FsZXMuYWRkKGdldENMVigpKTsKKyAgICAgICAgfQorICAgICAgICBMaXN0IGZhY3RvcmllcyA9IG5ldyBBcnJheUxpc3QobG9jYWxlcy5zaXplKCkpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gbG9jYWxlcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGZhY3Rvcmllcy5hZGQobmV3IFRlc3RGYWN0b3J5KChTdHJpbmcpaXRlci5uZXh0KCkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yaWVzOworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJGYWN0b3JpZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeSgoRmFjdG9yeSlpdGVyLm5leHQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJQ1VTZXJ2aWNlIHN0YWJsZVNlcnZpY2UoKSB7CisgICAgICAgIGlmIChzdGFibGVTZXJ2aWNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN0YWJsZVNlcnZpY2UgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgpOworICAgICAgICAgICAgcmVnaXN0ZXJGYWN0b3JpZXMoc3RhYmxlU2VydmljZSwgZ2V0RmFjdG9yeUNvbGxlY3Rpb24oNTApKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhYmxlU2VydmljZTsKKyAgICB9CisgICAgcHJpdmF0ZSBJQ1VTZXJ2aWNlIHN0YWJsZVNlcnZpY2U7CisKKyAgICAvLyBydW4gbXVsdGlwbGUgZ2V0IG9uIGEgc3RhYmxlIHNlcnZpY2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDBfQ29uY3VycmVudEdldCgpIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgICAgIG5ldyBHZXRUaHJlYWQoIlsiICsgSW50ZWdlci50b1N0cmluZyhpKSArICJdIiwgIHN0YWJsZVNlcnZpY2UoKSwgMCwgdGhpcykuc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBydW5UaHJlYWRzKCk7CisgICAgICAgIGlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc3RhYmxlU2VydmljZS5zdGF0cygpKTsKKyAgICB9CisKKyAgICAvLyBydW4gbXVsdGlwbGUgZ2V0VmlzaWJsZUlEIG9uIGEgc3RhYmxlIHNlcnZpY2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDFfQ29uY3VycmVudEdldFZpc2libGUoKSB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgICAgICBuZXcgR2V0VmlzaWJsZVRocmVhZCgiWyIgKyBJbnRlZ2VyLnRvU3RyaW5nKGkpICsgIl0iLCAgc3RhYmxlU2VydmljZSgpLCAwLCB0aGlzKS5zdGFydCgpOworICAgICAgICB9CisgICAgICAgIHJ1blRocmVhZHMoKTsKKyAgICAgICAgaWYgKFBSSU5UU1RBVFMpIFN5c3RlbS5vdXQucHJpbnRsbihzdGFibGVTZXJ2aWNlLnN0YXRzKCkpOworICAgIH0KKworICAgIC8vIHJ1biBtdWx0aXBsZSBnZXREaXNwbGF5TmFtZSBvbiBhIHN0YWJsZSBzZXJ2aWNlCisgICAgcHVibGljIHZvaWQgVGVzdDAyX0NvbmN1cnJlbnRHZXREaXNwbGF5KCkgeworICAgICAgICBTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IHsKKyAgICAgICAgICAgICJlbiIsICJlcyIsICJkZSIsICJmciIsICJ6aCIsICJpdCIsICJubyIsICJzdiIKKyAgICAgICAgfTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxvY2FsZU5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlID0gbG9jYWxlTmFtZXNbaV07CisgICAgICAgICAgICBuZXcgR2V0RGlzcGxheVRocmVhZCgiWyIgKyBsb2NhbGUgKyAiXSIsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWJsZVNlcnZpY2UoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUobG9jYWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKyAgICAgICAgcnVuVGhyZWFkcygpOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHN0YWJsZVNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorCisgICAgLy8gcnVuIHJlZ2lzdGVyL3VucmVnaXN0ZXIgb24gYSBzZXJ2aWNlCisgICAgcHVibGljIHZvaWQgVGVzdDAzX0NvbmN1cnJlbnRSZWdVbnJlZygpIHsKKyAgICAgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyArK2kpIHsKKyAgICAgICAgICAgIG5ldyBSZWdpc3RlckZhY3RvcnlUaHJlYWQoIlsiICsgaSArICJdIiwgc2VydmljZSwgMCwgdGhpcykuc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDU7ICsraSkgeworICAgICAgICAgICAgbmV3IFVucmVnaXN0ZXJGYWN0b3J5VGhyZWFkKCJbIiArIGkgKyAiXSIsIHNlcnZpY2UsIDAsIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKyAgICAgICAgcnVuVGhyZWFkcygpOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3QwNF9XaXRoZXJpbmdTZXJ2aWNlKCkgeworICAgICAgICBJQ1VTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgpOworCisgICAgICAgIENvbGxlY3Rpb24gZmMgPSBnZXRGYWN0b3J5Q29sbGVjdGlvbig1MCk7CisgICAgICAgIHJlZ2lzdGVyRmFjdG9yaWVzKHNlcnZpY2UsIGZjKTsKKworICAgICAgICBGYWN0b3J5W10gZmFjdG9yaWVzID0gKEZhY3RvcnlbXSlmYy50b0FycmF5KG5ldyBGYWN0b3J5W2ZjLnNpemUoKV0pOworICAgICAgICBDb21wYXJhdG9yIGNvbXAgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGhzLnRvU3RyaW5nKCkuY29tcGFyZVRvKHJocy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICBBcnJheXMuc29ydChmYWN0b3JpZXMsIGNvbXApOworCisgICAgICAgIG5ldyBHZXRUaHJlYWQoIiIsIHNlcnZpY2UsIDAsIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIG5ldyBVbnJlZ2lzdGVyRmFjdG9yeUxpc3RUaHJlYWQoIiIsIHNlcnZpY2UsIDMsIGZhY3RvcmllcywgdGhpcykuc3RhcnQoKTsKKworICAgICAgICBydW5UaHJlYWRzKDIwMDApOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorICAgIAorICAgIC8vICJhbGwgaGVsbCBicmVha3MgbG9vc2UiCisgICAgLy8gb25lIHJlZ2lzdGVyIGFuZCBvbmUgdW5yZWdpc3RlciB0aHJlYWQsIGRlbGF5IDUwMG1zCisgICAgLy8gdHdvIGRpc3BsYXkgdGhyZWFkcyB3aXRoIGRpZmZlcmVudCBsb2NhbGVzLCBkZWxheSA1MDBtczsKKyAgICAvLyBvbmUgdmlzaWJsZSBpZCB0aHJlYWQsIGRlbGF5IDUwbXMKKyAgICAvLyBmaWZ0ZWVuIGdldCB0aHJlYWRzLCBkZWxheSAwCisgICAgLy8gcnVuIGZvciB0ZW4gc2Vjb25kcworICAgIHB1YmxpYyB2b2lkIFRlc3QwNV9Db25jdXJyZW50RXZlcnl0aGluZygpIHsKKyAgICAgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKTsKKworICAgICAgICBuZXcgUmVnaXN0ZXJGYWN0b3J5VGhyZWFkKCIiLCBzZXJ2aWNlLCA1MDAsIHRoaXMpLnN0YXJ0KCk7CisKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICAgICAgICAgIG5ldyBHZXRUaHJlYWQoIlsiICsgSW50ZWdlci50b1N0cmluZyhpKSArICJdIiwgc2VydmljZSwgMCwgdGhpcykuc3RhcnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIG5ldyBHZXRWaXNpYmxlVGhyZWFkKCIiLCAgc2VydmljZSwgNTAsIHRoaXMpLnN0YXJ0KCk7CisKKyAgICAgICAgU3RyaW5nW10gbG9jYWxlTmFtZXMgPSB7CisgICAgICAgICAgICAiZW4iLCAiZGUiCisgICAgICAgIH07CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsb2NhbGVOYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZSA9IGxvY2FsZU5hbWVzW2ldOworICAgICAgICAgICAgbmV3IEdldERpc3BsYXlUaHJlYWQoIlsiICsgbG9jYWxlICsgIl0iLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFibGVTZXJ2aWNlKCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUobG9jYWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKworICAgICAgICBuZXcgVW5yZWdpc3RlckZhY3RvcnlUaHJlYWQoIiIsIHNlcnZpY2UsIDUwMCwgdGhpcykuc3RhcnQoKTsKKworICAgICAgICAvLyB5b3dlZWUhISEKKyAgICAgICAgcnVuVGhyZWFkcygxMDAwMCk7CisgICAgICAgIGlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc2VydmljZS5zdGF0cygpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9MUlVNYXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9MUlVNYXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUwYTdjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xSVU1hcFRlc3QuamF2YQpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5MUlVNYXA7CisKK3B1YmxpYyBjbGFzcyBMUlVNYXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBMUlVNYXBUZXN0IHRlc3QgPSBuZXcgTFJVTWFwVGVzdCgpOworICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TFJVTWFwKCkgeworICAgICAgICAvLyBEZWZhdWx0IHNpemUgLSBtYXggNjQKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgTFJVTWFwIHdpdGggdGhlIGRlZmF1bHQgc2l6ZSIpOworICAgICAgICBMUlVNYXAgbWFwID0gbmV3IExSVU1hcCgpOworICAgICAgICBleGVjdXRlKG1hcCwgNjQpOworCisgICAgICAgIC8vIG1heCBzaXplIC0gMTYKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgTFJVTWFwIHdpdGggaW5pdGlhbC9tYXggc2l6ZSAtIDQvMTYiKTsKKyAgICAgICAgbWFwID0gbmV3IExSVU1hcCg0LCAxNik7CisgICAgICAgIGV4ZWN1dGUobWFwLCAxNik7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4ZWN1dGUoTFJVTWFwIG1hcCwgaW50IG1heFNpemUgLyogbWF4U2l6ZSA+IDYgKi8pIHsKKyAgICAgICAgSW50ZWdlciBudW07CisgICAgICAgIFN0cmluZyBudW1TdHI7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4U2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBudW0gPSBuZXcgSW50ZWdlcihpKTsKKyAgICAgICAgICAgIG51bVN0ciA9IG51bS50b1N0cmluZygpOworICAgICAgICAgICAgbWFwLnB1dChudW1TdHIsIG51bSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIGZpcnN0IGtleS92YWx1ZSBzaG91bGQgYmUgcmVtb3ZlZCwgYmVjYXVzZQorICAgICAgICAvLyB3ZSBhbHJlYWR5IHB1dCA2NSBlbnRyaWVzCisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjAiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbnRyeSAnMCcgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICcwJyBpcyBzdGlsbCBhdmFpbGFibGUuIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gQWNjZXNzIHRoZSBzZWNvbmQgZW50cnkgJzEnLCB3aGljaCBpcyBjdXJyZW50bHkKKyAgICAgICAgLy8gdGhlIGVsZGVzdC4KKyAgICAgICAgbnVtID0gKEludGVnZXIpbWFwLmdldCgiMSIpOworICAgICAgICBpZiAobnVtID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgZWxkZXN0IGVudHJ5ICcxJyB3YXMgcmVtb3ZlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogVGhlIGVsZGVzdCBlbnRyeSAnMScgaXMgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIC8vIFB1dCBhbm90aGVyIGVudHJ5IC0gYmVjYXVzZSB0aGUgZW50cnkgJzEnIHdhcworICAgICAgICAvLyBhY2Nlc3NlZCBhYm92ZSwgdGhlIGVudHJ5ICcyJyBpcyB0aGUgZWxkZXN0IGFuZAorICAgICAgICAvLyBwdXR0aW5nIG5ldyBlbnRyeSBzaG91bGQgcmVtb3ZlIHRoZSBlbnRyeS4KKyAgICAgICAgbnVtID0gbmV3IEludGVnZXIobWF4U2l6ZSArIDEpOworICAgICAgICBtYXAucHV0KG51bS50b1N0cmluZygpLCBudW0pOworICAgICAgICBudW0gPSAoSW50ZWdlciltYXAuZ2V0KCIyIik7CisgICAgICAgIGlmIChudW0gPT0gbnVsbCkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBUaGUgZW50cnkgJzInIHdhcyByZW1vdmVkLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbnRyeSAnMicgaXMgc3RpbGwgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIC8vIFRoZSBlbnRyeSAnMycgaXMgdGhlIGVsZGVzdCBmb3Igbm93LgorICAgICAgICBib29sZWFuIGIgPSBtYXAuY29udGFpbnNLZXkoIjMiKTsKKyAgICAgICAgaWYgKGIpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogVGhlIGVsZGVzdCBlbnRyeSAnMycgaXMgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbGRlc3QgZW50cnkgJzMnIHdhcyByZW1vdmVkLiIpOworICAgICAgICB9CisgICAgICAgIC8vIGNvbnRhbnNLZXkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGFjY2VzcyBvcmRlcgorICAgICAgICBudW0gPSBuZXcgSW50ZWdlcihtYXhTaXplICsgMik7CisgICAgICAgIG1hcC5wdXQobnVtLnRvU3RyaW5nKCksIG51bSk7CisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjMiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbnRyeSAnMycgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICczJyBpcyBzdGlsbCBhdmFpbGFibGUuIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gUHV0dGluZyBleGlzdGluZyBlbnRyeSB3aXRoIG5ldyB2YWx1ZQorICAgICAgICBudW0gPSAoSW50ZWdlciltYXAucHV0KCI0IiwgbmV3IEludGVnZXIoLTQpKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICc0JyBubyBsb25nZXIgZXhpc3RzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bS5pbnRWYWx1ZSgpICE9IDQpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgdmFsdWUgZm9yICc0JyB3YXMgbm90IDQiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaGUgZW50cnkgJzUnIGlzIHRoZSBlbGRlc3QgZm9yIG5vdywgYmVjYXVzZQorICAgICAgICAvLyB0aGUgZW50cnkgJzQnIHdhcyB1cGRhdGVkIGFib3ZlLgorICAgICAgICBudW0gPSBuZXcgSW50ZWdlcihtYXhTaXplICsgMyk7CisgICAgICAgIG1hcC5wdXQobnVtLnRvU3RyaW5nKCksIG51bSk7CisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjUiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbnRyeSAnNScgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICc1JyBpcyBzdGlsbCBhdmFpbGFibGUuIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ2xlYXIgdGhlIG1hcAorICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICAgICAgbnVtID0gKEludGVnZXIpbWFwLmdldCgiNiIpOworICAgICAgICBpZiAobnVtID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogVGhlIGVudHJ5ICc2JyB3YXMgcmVtb3ZlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgZW50cnkgJzYnIGlzIHN0aWxsIGF2YWlsYWJsZS4iKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlQWxpYXNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NhbGVBbGlhc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzU1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlQWxpYXNUZXN0LmphdmEKQEAgLTAsMCArMSwyMzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qCisgKiBOZXcgYWRkZWQsIDIwMDUtNS0xMCBbVGVycnkvU0dMXQorICogTWFqb3IgbW9kaWZpY2F0aW9uIGJ5IFJhbQorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIExvY2FsZUFsaWFzVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVTG9jYWxlW11bXSBfTE9DQUxFUyA9IHsKKworICAgICAgICAgICAge25ldyBVTG9jYWxlKCJlbiIsICJSSCIpLCBuZXcgVUxvY2FsZSgiZW4iLCAiWlciKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImluIiksIG5ldyBVTG9jYWxlKCJpZCIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiaW4iLCAiSUQiKSwgbmV3IFVMb2NhbGUoImlkIiwgIklEIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJpdyIpLCBuZXcgVUxvY2FsZSgiaGUiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoIml3IiwgIklMIiksIG5ldyBVTG9jYWxlKCJoZSIsICJJTCIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiamkiKSwgbmV3IFVMb2NhbGUoInlpIil9LAorICAgICAgICAgICAgCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImVuIiwgIkJVIiksIG5ldyBVTG9jYWxlKCJlbiIsICJNTSIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiRFkiKSwgbmV3IFVMb2NhbGUoImVuIiwgIkJKIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJlbiIsICJIViIpLCBuZXcgVUxvY2FsZSgiZW4iLCAiQkYiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImVuIiwgIk5IIiksIG5ldyBVTG9jYWxlKCJlbiIsICJWVSIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiVFAiKSwgbmV3IFVMb2NhbGUoImVuIiwgIlRMIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJlbiIsICJaUiIpLCBuZXcgVUxvY2FsZSgiZW4iLCAiQ0QiKX0KKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBfTE9DQUxFX05VTUJFUiA9IF9MT0NBTEVTLmxlbmd0aDsKKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlW10gYXZhaWxhYmxlID0gbnVsbDsKKyAgICBwcml2YXRlIEhhc2hNYXAgYXZhaWxhYmxlTWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVTG9jYWxlIF9ERUZBVUxUX0xPQ0FMRSA9IFVMb2NhbGUuVVM7CisgICAgCisgICAgcHVibGljIExvY2FsZUFsaWFzVGVzdCgpeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl7CisgICAgICAgIGF2YWlsYWJsZSA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxhdmFpbGFibGUubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBhdmFpbGFibGVNYXAucHV0KGF2YWlsYWJsZVtpXS50b1N0cmluZygpLCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBMb2NhbGVBbGlhc1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDYWxlbmRhcigpIHsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KF9ERUZBVUxUX0xPQ0FMRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxfTE9DQUxFX05VTUJFUjsgaSsrKSB7CisgICAgICAgICAgICBVTG9jYWxlIG9sZExvYyA9IF9MT0NBTEVTW2ldWzBdOworICAgICAgICAgICAgVUxvY2FsZSBuZXdMb2MgPSBfTE9DQUxFU1tpXVsxXTsKKyAgICAgICAgICAgIGlmKGF2YWlsYWJsZU1hcC5nZXQoX0xPQ0FMRVNbaV1bMV0pPT1udWxsKXsKKyAgICAgICAgICAgICAgICBsb2dsbihfTE9DQUxFU1tpXVsxXSsiIGlzIG5vdCBhdmFpbGFibGUuIFNraXBwaW5nISIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ2FsZW5kYXIgYzEgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShvbGRMb2MpOworICAgICAgICAgICAgQ2FsZW5kYXIgYzIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShuZXdMb2MpOworICAgICAgICAgICAgYzEuc2V0VGltZShjMi5nZXRUaW1lKCkpOworICAgICAgICAgICAgLy9UZXN0IGZ1bmN0aW9uICJnZXRGaXJzdERheU9mV2VlayIKKyAgICAvLyAgICAgICAgaW50IGZpcnN0RGF5T2ZXZWVrMSA9IGMxLmdldEZpcnN0RGF5T2ZXZWVrKCk7CisgICAgLy8gICAgICAgIGludCBmaXJzdERheU9mV2VlazIgPSBjMi5nZXRGaXJzdERheU9mV2VlaygpOworICAgIC8vICAgICAgICBpZiAoZmlyc3REYXlPZldlZWsxICE9IGZpcnN0RGF5T2ZXZWVrMikgeworICAgIC8vICAgICAgICAgICAgdGhpcy5sb2dsbigiQ2FsZW5kYXIoZ2V0Rmlyc3REYXlPZldlZWspIG9sZDoiCisgICAgLy8gICAgICAgICAgICAgICAgICAgICtmaXJzdERheU9mV2VlazErIiAgIG5ldzoiK2ZpcnN0RGF5T2ZXZWVrMik7CisgICAgLy8gICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgLy8gICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3QgZnVuY3Rpb24gImdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkiCisgICAgICAgICAgICBVTG9jYWxlIGwxID0gYzEuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgICAgIFVMb2NhbGUgbDIgPSBjMi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICAgICAgaWYgKCFuZXdMb2MuZXF1YWxzKGwxKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhclRlc3Q6IG5ld0xvYyE9bDE6IG5ld0xvYz0gIituZXdMb2MgKyIgbDE9ICIrbDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFsMS5lcXVhbHMobDIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyVGVzdDogbDEhPWwyOiBsMT0gIitsMSArIiBsMj0gIitsMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZighYzEuZXF1YWxzKGMyKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyVGVzdDogYzEhPWMyLiAgbmV3TG9jPSAiK25ld0xvYyArIiBvbGRMb2M9ICIrb2xkTG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJDYWxlbmRhcihnZXRMb2NhbGUpIG9sZDoiK2wxKyIgICBuZXc6IitsMik7ICAgIAorICAgICAgICB9CisKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgIFRlc3REYXRlRm9ybWF0KCkgeworICAgICAgICBVTG9jYWxlIGRlZkxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoX0RFRkFVTFRfTE9DQUxFKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPF9MT0NBTEVfTlVNQkVSOyBpKyspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgb2xkTG9jID0gX0xPQ0FMRVNbaV1bMF07CisgICAgICAgICAgICBVTG9jYWxlIG5ld0xvYyA9IF9MT0NBTEVTW2ldWzFdOworICAgICAgICAgICAgaWYoYXZhaWxhYmxlTWFwLmdldChfTE9DQUxFU1tpXVsxXSk9PW51bGwpeworICAgICAgICAgICAgICAgIGxvZ2xuKF9MT0NBTEVTW2ldWzFdKyIgaXMgbm90IGF2YWlsYWJsZS4gU2tpcHBpbmchIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmMSA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgb2xkTG9jKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYyID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBuZXdMb2MpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3QgZnVuY3Rpb24gImdldExvY2FsZSIKKyAgICAgICAgICAgIFVMb2NhbGUgbDEgPSBkZjEuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgICAgIFVMb2NhbGUgbDIgPSBkZjIuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgICAgIGlmICghbmV3TG9jLmVxdWFscyhsMSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGF0ZUZvcm1hdFRlc3Q6IG5ld0xvYyE9bDE6IG5ld0xvYz0gIituZXdMb2MgKyIgbDE9ICIrbDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFsMS5lcXVhbHMobDIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXRUZXN0OiBsMSE9bDI6IGwxPSAiK2wxICsiIGwyPSAiK2wyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZGYxLmVxdWFscyhkZjIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXRUZXN0OiBkZjEhPWRmMjogbmV3TG9jPSAiK25ld0xvYyArIiBvbGRMb2M9ICIrb2xkTG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMubG9nbG4oIkRhdGVGb3JtYXQoZ2V0TG9jYWxlKSBvbGQ6IitsMSsiICAgbmV3OiIrbDIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3QgZnVuY3Rpb24gImZvcm1hdCIKKyAgICAvLyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKTsKKyAgICAvLyAgICAgICAgU3RyaW5nIGQxID0gZGYxLmZvcm1hdChkKTsKKyAgICAvLyAgICAgICAgU3RyaW5nIGQyID0gZGYyLmZvcm1hdChkKTsKKyAgICAvLyAgICAgICAgaWYgKCFkMS5lcXVhbHMoZDIpKSB7CisgICAgLy8gICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgLy8gICAgICAgIH0KKyAgICAvLyAgICAgICAgdGhpcy5sb2dsbigiRGF0ZUZvcm1hdChmb3JtYXQpIG9sZDoiK2QxKyIgICBuZXc6IitkMik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdGlvbigpIHsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KF9ERUZBVUxUX0xPQ0FMRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxfTE9DQUxFX05VTUJFUjsgaSsrKSB7CisgICAgICAgICAgICBVTG9jYWxlIG9sZExvYyA9IF9MT0NBTEVTW2ldWzBdOworICAgICAgICAgICAgVUxvY2FsZSBuZXdMb2MgPSBfTE9DQUxFU1tpXVsxXTsKKyAgICAgICAgICAgIGlmKGF2YWlsYWJsZU1hcC5nZXQoX0xPQ0FMRVNbaV1bMV0pPT1udWxsKXsKKyAgICAgICAgICAgICAgICBsb2dsbihfTE9DQUxFU1tpXVsxXSsiIGlzIG5vdCBhdmFpbGFibGUuIFNraXBwaW5nISIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ29sbGF0b3IgYzEgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShvbGRMb2MpOworICAgICAgICAgICAgQ29sbGF0b3IgYzIgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXdMb2MpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWMxLmVxdWFscyhjMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uVGVzdDogYzEhPWMyOiBuZXdMb2M9ICIrbmV3TG9jICsiIG9sZExvYz0gIitvbGRMb2MpOworICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgbG9nbG4oIkNvbGxhdGlvbiBvbGQ6IitvbGRMb2MrIiAgIG5ldzoiK25ld0xvYyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVMb2NhbGUoKSB7CisgICAgICAgIFVMb2NhbGUgZGVmTG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChfREVGQVVMVF9MT0NBTEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8X0xPQ0FMRV9OVU1CRVI7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisgICAgICAgICAgICBpZihhdmFpbGFibGVNYXAuZ2V0KF9MT0NBTEVTW2ldWzFdKT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oX0xPQ0FMRVNbaV1bMV0rIiBpcyBub3QgYXZhaWxhYmxlLiBTa2lwcGluZyEiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVMb2NhbGUgdWwxID0gbmV3IFVMb2NhbGUob2xkTG9jLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgVUxvY2FsZSB1bDIgPSBuZXcgVUxvY2FsZShuZXdMb2MudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuYW1lMSA9IHVsMS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUyID0gdWwyLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICBpZiAoIW5hbWUxLmVxdWFscyhuYW1lMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmFtZTEhPW5hbWUyLiBuYW1lMSA9ICIgKyBuYW1lMSArIiBuYW1lMiA9ICIgK25hbWUyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJVTG9jYWxlKGdldERpc3BsYXlOYW1lKSBvbGQ6IituYW1lMSsiICAgbmV3OiIrbmFtZTIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KF9ERUZBVUxUX0xPQ0FMRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxfTE9DQUxFX05VTUJFUjsgaSsrKSB7CisgICAgICAgICAgICBVTG9jYWxlIG9sZExvYyA9IF9MT0NBTEVTW2ldWzBdOworICAgICAgICAgICAgVUxvY2FsZSBuZXdMb2MgPSBfTE9DQUxFU1tpXVsxXTsKKworICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8YXZhaWxhYmxlLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgIFN0cmluZyBvbGRDb3VudHJ5ID0gb2xkTG9jLmdldERpc3BsYXlDb3VudHJ5KGF2YWlsYWJsZVtqXSk7CisgICAgICAgICAgICAgICBTdHJpbmcgbmV3Q291bnRyeSA9IG5ld0xvYy5nZXREaXNwbGF5Q291bnRyeShhdmFpbGFibGVbal0pOworICAgICAgICAgICAgICAgU3RyaW5nIG9sZExhbmcgPSBvbGRMb2MuZ2V0RGlzcGxheUxhbmd1YWdlKGF2YWlsYWJsZVtqXSk7CisgICAgICAgICAgICAgICBTdHJpbmcgbmV3TGFuZyA9IG5ld0xvYy5nZXREaXNwbGF5TGFuZ3VhZ2UoYXZhaWxhYmxlW2pdKTsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgLy8gaXMgIHRoZXJlICBkaXNwbGF5IG5hbWUgZm9yIHRoZSBjdXJyZW50IGNvdW50cnkgSUQgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIGlmKCFuZXdDb3VudHJ5LmVxdWFscyhuZXdMb2MuZ2V0Q291bnRyeSgpKSl7CisgICAgICAgICAgICAgICAgICAgaWYoIW9sZENvdW50cnkuZXF1YWxzKG5ld0NvdW50cnkpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImdldENvdW50cnkoKSBmYWlsZWQgZm9yICIrIG9sZExvYyArIiBvbGRDb3VudHJ5PSAiKyBwcmV0dGlmeShvbGRDb3VudHJ5KSArIiBuZXdDb3VudHJ5ID0gIitwcmV0dGlmeShuZXdDb3VudHJ5KSsgIiBpbiBkaXNwbGF5IGxvY2FsZSAiKyBhdmFpbGFibGVbal0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgLy90aGVyZSBpcyBhIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGN1cnJlbnQgbGFuZyBJRCAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgaWYoIW5ld0xhbmcuZXF1YWxzKG5ld0xvYy5nZXRMYW5ndWFnZSgpKSl7CisgICAgICAgICAgICAgICAgICAgaWYoIW9sZExhbmcuZXF1YWxzKG5ld0xhbmcpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImdldExhbmd1YWdlKCkgZmFpbGVkIGZvciAiICsgb2xkTG9jICsgIiBvbGRMYW5nID0gIisgcHJldHRpZnkob2xkTGFuZykgKyIgbmV3TGFuZyA9ICIrcHJldHRpZnkobmV3TGFuZykrICIgaW4gZGlzcGxheSBsb2NhbGUgIisgYXZhaWxhYmxlW2pdLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VVJlc291cmNlQnVuZGxlKCkgeworICAgICAgICBVTG9jYWxlIGRlZkxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoX0RFRkFVTFRfTE9DQUxFKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPF9MT0NBTEVfTlVNQkVSOyBpKyspIHsKKyAgICAgICAgICAgIGlmKGF2YWlsYWJsZU1hcC5nZXQoX0xPQ0FMRVNbaV1bMV0pPT1udWxsKXsKKyAgICAgICAgICAgICAgICBsb2dsbihfTE9DQUxFU1tpXVsxXSsiIGlzIG5vdCBhdmFpbGFibGUuIFNraXBwaW5nISIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgdXJiMSA9IG51bGw7CisgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgdXJiMiA9IG51bGw7CisgICAgICAgICAgICAKKyAgICAJICAgIHVyYjEgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgb2xkTG9jKTsKKyAgICAJICAgIHVyYjIgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbmV3TG9jKTsKKyAgICAgICAgICAgIFVMb2NhbGUgbDEgPSB1cmIxLmdldFVMb2NhbGUoKTsKKyAgICAgICAgICAgIFVMb2NhbGUgbDIgPSB1cmIyLmdldFVMb2NhbGUoKTsgICAgICAgIAorICAgICAgICAgICAgaWYgKCFuZXdMb2MuZXF1YWxzKGwxKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSZXNvdXJjZUJ1bmRsZVRlc3Q6IG5ld0xvYyE9bDE6IG5ld0xvYz0gIituZXdMb2MgKyIgbDE9ICIrbDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFsMS5lcXVhbHMobDIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJlc291cmNlQnVuZGxlVGVzdDogbDEhPWwyOiBsMT0gIitsMSArIiBsMj0gIitsMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLmxvZ2xuKCJVUmVzb3VyY2VCdW5kbGUgb2xkOiIrbDErIiAgIG5ldzoiK2wyKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xvY2FsZURhdGFUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NhbGVEYXRhVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzYTU2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NhbGVEYXRhVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjg0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Mb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIExvY2FsZURhdGFUZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgTG9jYWxlRGF0YVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVUxvY2FsZVtdIGF2YWlsYWJsZUxvY2FsZXMgPSBudWxsOworICAgIAorICAgIHB1YmxpYyBMb2NhbGVEYXRhVGVzdCgpeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl7CisgICAgICAgIGF2YWlsYWJsZUxvY2FsZXMgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFBhcGVyU2l6ZSgpeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgYXZhaWxhYmxlTG9jYWxlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IGF2YWlsYWJsZUxvY2FsZXNbaV07CisgICAgICAgICAgICBMb2NhbGVEYXRhLlBhcGVyU2l6ZSBwYXBlclNpemUgPSBMb2NhbGVEYXRhLmdldFBhcGVyU2l6ZShsb2NhbGUpOworICAgICAgICAgICAgLy8gc2tpcCB0ZXN0aW5nIG9mICJpbiIgLi4gZGVwcmVjYXRlZCBjb2RlIGZvciBJbmRvbmVzaWFuCisgICAgICAgICAgICBTdHJpbmcgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgaWYobGFuZy5lcXVhbHMoImluIikpeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYobG9jYWxlLnRvU3RyaW5nKCkuaW5kZXhPZigiX1VTIikgPj0gMCl7CisgICAgICAgICAgICAgICAgaWYocGFwZXJTaXplLmdldEhlaWdodCgpIT0gMjc5IHx8IHBhcGVyU2l6ZS5nZXRXaWR0aCgpICE9IDIxNiApeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUGFwZXJTaXplIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9jYWxlICIrIGxvY2FsZSsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZCBoZWlnaHQ6IDI3OSB3aWR0aDogMjE2LiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290IGhlaWdodDogIitwYXBlclNpemUuZ2V0SGVpZ2h0KCkrIiB3aWR0aDogIitwYXBlclNpemUuZ2V0V2lkdGgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlBhcGVyU2l6ZSByZXR1cm5lZCB0aGUgZXhwZWN0ZWQgdmFsdWVzIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgaWYocGFwZXJTaXplLmdldEhlaWdodCgpIT0gMjk3IHx8IHBhcGVyU2l6ZS5nZXRXaWR0aCgpICE9IDIxMCApeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUGFwZXJTaXplIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9jYWxlICIrIGxvY2FsZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQgaGVpZ2h0OiAyOTcgd2lkdGg6IDIxMC4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIEdvdCBoZWlnaHQ6ICIrcGFwZXJTaXplLmdldEhlaWdodCgpICsiIHdpZHRoOiAiK3BhcGVyU2l6ZS5nZXRXaWR0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlBhcGVyU2l6ZSByZXR1cm5lZCB0aGUgZXhwZWN0ZWQgdmFsdWVzIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RNZWFzdXJlbWVudFN5c3RlbSgpeworICAgICAgICBmb3IoaW50IGk9MDsgaTxhdmFpbGFibGVMb2NhbGVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gYXZhaWxhYmxlTG9jYWxlc1tpXTsKKyAgICAgICAgICAgIExvY2FsZURhdGEuTWVhc3VyZW1lbnRTeXN0ZW0gbXMgPSBMb2NhbGVEYXRhLmdldE1lYXN1cmVtZW50U3lzdGVtKGxvY2FsZSk7CisgICAgICAgICAgICAvLyBza2lwIHRlc3Rpbmcgb2YgImluIiAuLiBkZXByZWNhdGVkIGNvZGUgZm9yIEluZG9uZXNpYW4KKyAgICAgICAgICAgIFN0cmluZyBsYW5nID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICBpZihsYW5nLmVxdWFscygiaW4iKSl7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGxvY2FsZS50b1N0cmluZygpLmluZGV4T2YoIl9VUyIpID49IDApeworICAgICAgICAgICAgICAgIGlmKG1zID09IExvY2FsZURhdGEuTWVhc3VyZW1lbnRTeXN0ZW0uVVMpeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBtZWFzdXJlbWVudCBzeXN0ZW0gZm9yIGxvY2FsZTogIiArIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgbWVhc3VyZW1lbnQgc3lzdGVtIGZvciBsb2NhbGU6ICIrIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgaWYobXMgPT0gTG9jYWxlRGF0YS5NZWFzdXJlbWVudFN5c3RlbS5TSSl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIG1lYXN1cmVtZW50IHN5c3RlbSBmb3IgbG9jYWxlOiAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBtZWFzdXJlbWVudCBzeXN0ZW0gZm9yIGxvY2FsZTogIisgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEJ1bmRsZSB0b2dldGhlciBhIFVuaWNvZGVTZXQgKG9mIGV4cGVtcGxhcnMpIGFuZCBTY3JpcHRDb2RlIGNvbWJpbmF0aW9uLgorICAgIC8vICAgV2Uga2VlcCBhIHNldCBvZiBjb21iaW5hdGlvbnMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiB0ZXN0ZWQsIHRvCisgICAgLy8gICBhdm9pZCByZXBlYXRlZCAodGltZSBjb25zdW1pbmcpIHJldGVzdGluZyBvZiB0aGUgc2FtZSBkYXRhLgorICAgIC8vICAgSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgbXVzdCBiZSB3ZWxsIGJlaGF2ZWQgYXMgbWVtYmVycyBvZiBhIHNldC4KKyAgICBzdGF0aWMgY2xhc3MgRXhlbXBsYXJHcm91cCB7CisgICAgICAgIHByaXZhdGUgaW50W10gc2NzOworICAgICAgICBwcml2YXRlIFVuaWNvZGVTZXQgc2V0OworICAgICAgICAKKyAgICAgICAgRXhlbXBsYXJHcm91cChVbmljb2RlU2V0IHMsIGludFtdIHNjcmlwdENvZGVzKSB7CisgICAgICAgICAgICBzZXQgPSBzOworICAgICAgICAgICAgc2NzID0gc2NyaXB0Q29kZXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgIGludCBoYXNoID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxzY3MubGVuZ3RoICYmIGk8NDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaGFzaCA9IChoYXNoPDw4KStzY3NbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gaGFzaDsKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIEV4ZW1wbGFyR3JvdXAgbyA9IChFeGVtcGxhckdyb3VwKW90aGVyOworICAgICAgICAgICAgYm9vbGVhbiByID0gQXJyYXlzLmVxdWFscyhzY3MsIG8uc2NzKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIHNldC5lcXVhbHMoby5zZXQpOworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeGVtcGxhclNldCgpeworICAgICAgICBIYXNoU2V0ICB0ZXN0ZWRFeGVtcGxhcnMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBpbnQgZXF1YWxDb3VudCA9IDA7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBhdmFpbGFibGVMb2NhbGVzW2ldOworICAgICAgICAgICAgaW50W10gc2NyaXB0Q29kZXMgPSBVU2NyaXB0LmdldENvZGUobG9jYWxlKTsKKyAgICAgICAgICAgIGlmIChzY3JpcHRDb2Rlcz09bnVsbCkgeworICAgICAgICAgICAgICAgIC8vIEkgaGF0ZSB0aGUgSkRLJ3Mgc29sdXRpb24gZm9yIGRlcHJlY2F0ZWQgbGFuZ3VhZ2UgY29kZXMuCisgICAgICAgICAgICAgICAgLy8gV2h5IGRvZXMgdGhlIExvY2FsZSBjb25zdHJ1Y3RvciBjaGFuZ2UgdGhlIHN0cmluZyBJIHBhc3NlZCB0byBpdCA/CisgICAgICAgICAgICAgICAgLy8gc3VjaCBhIGJyb2tlbiBoYWNrICEhISEhCisgICAgICAgICAgICAgICAgLy8gc28gaW4gZWZmZWN0IEkgY2FuIG5ldmVyIHRlc3QgdGhlIHNjcmlwdCBjb2RlIGZvciBJbmRvbmVzaWFuIDooCisgICAgICAgICAgICAgICAgaWYobG9jYWxlLnRvU3RyaW5nKCkuaW5kZXhPZigoImluIikpPDApeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRDb2RlIHJldHVybmVkIG51bGwgZm9yIGxvY2FsZTogIiArIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZXhlbXBsYXJTZXRzW10gPSBuZXcgVW5pY29kZVNldFsyXTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazwyOyArK2spIHsgICAvLyBmb3IgY2FzaW5nIG9wdGlvbiBpbiAobm9ybWFsLCBjYXNlSW5zZW5zaXRpdmUpCisgICAgICAgICAgICAgICAgaW50IG9wdGlvbiA9IChrPT0wKSA/IDAgOiBVbmljb2RlU2V0LkNBU0U7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBleGVtcGxhclNldCA9IExvY2FsZURhdGEuZ2V0RXhlbXBsYXJTZXQobG9jYWxlLCBvcHRpb24pOworICAgICAgICAgICAgICAgIGV4ZW1wbGFyU2V0c1trXSA9IGV4ZW1wbGFyU2V0OworICAgICAgICAgICAgICAgIEV4ZW1wbGFyR3JvdXAgZXhHcnAgPSBuZXcgRXhlbXBsYXJHcm91cChleGVtcGxhclNldCwgc2NyaXB0Q29kZXMpOworICAgICAgICAgICAgICAgIGlmICghdGVzdGVkRXhlbXBsYXJzLmNvbnRhaW5zKGV4R3JwKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0ZWRFeGVtcGxhcnMuYWRkKGV4R3JwKTsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldFtdIHNldHMgPSBuZXcgVW5pY29kZVNldFtzY3JpcHRDb2Rlcy5sZW5ndGhdOworICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIFVuaWNvZGVTZXRzIGZvciB0aGUgc2NyaXB0CisgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqIDwgc2NyaXB0Q29kZXMubGVuZ3RoOyBqKyspeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0c1tqXSA9IG5ldyBVbmljb2RlU2V0KCJbOiIgKyBVU2NyaXB0LmdldFNob3J0TmFtZShzY3JpcHRDb2Rlc1tqXSkgKyAiOl0iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBib29sZWFuIGV4aXN0c0luU2NyaXB0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdGVyID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihleGVtcGxhclNldCk7CisgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGUgb3ZlciB0aGUgCisgICAgICAgICAgICAgICAgICAgIHdoaWxlICghZXhpc3RzSW5TY3JpcHQgJiYgaXRlci5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXIuY29kZXBvaW50ICE9IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzZXRzLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2V0c1tqXS5jb250YWlucyhpdGVyLmNvZGVwb2ludCwgaXRlci5jb2RlcG9pbnRFbmQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0c0luU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzZXRzLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2V0c1tqXS5jb250YWlucyhpdGVyLnN0cmluZykpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RzSW5TY3JpcHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYoZXhpc3RzSW5TY3JpcHQgPT0gZmFsc2UpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkV4ZW1wbGFyU2V0IGNvbnRhaW5tZW50IGZhaWxlZCBmb3IgbG9jYWxlIDogIisgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZXhwZW5zaXZlLCBzbyBvbmx5IGRvIGl0IGlmIGl0IHdpbGwgYmUgdmlzaWJsZQorICAgICAgICAgICAgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLnRvU3RyaW5nKCkgKyAiIGV4ZW1wbGFyICIgKyBleGVtcGxhclNldHNbMF0pOworICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZS50b1N0cmluZygpICsgIiBleGVtcGxhcihjYXNlLWZvbGRlZCkgIiArIGV4ZW1wbGFyU2V0c1sxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnRUcnVlKGxvY2FsZS50b1N0cmluZygpICsgIiBjYXNlLWZvbGRlZCBpcyBhIHN1cGVyc2V0IiwKKyAgICAgICAgICAgICAgICAgICAgZXhlbXBsYXJTZXRzWzFdLmNvbnRhaW5zQWxsKGV4ZW1wbGFyU2V0c1swXSkpOworICAgICAgICAgICAgaWYgKGV4ZW1wbGFyU2V0c1sxXS5lcXVhbHMoZXhlbXBsYXJTZXRzWzBdKSkgeworICAgICAgICAgICAgICAgICsrZXF1YWxDb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBOb3RlOiBUaGUgY2FzZS1mb2xkZWQgc2V0IHNob3VsZCBzb21ldGltZXMgYmUgYSBzdHJpY3Qgc3VwZXJzZXQKKyAgICAgICAgLy8gYW5kIHNvbWV0aW1lcyBiZSBlcXVhbC4KKyAgICAgICAgYXNzZXJ0VHJ1ZSgiY2FzZS1mb2xkZWQgaXMgc29tZXRpbWVzIGEgc3RyaWN0IHN1cGVyc2V0LCBhbmQgc29tZXRpbWVzIGVxdWFsIiwKKyAgICAgICAgICAgICAgICAgICBlcXVhbENvdW50ID4gMCAmJiBlcXVhbENvdW50IDwgYXZhaWxhYmxlTG9jYWxlcy5sZW5ndGgpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhlbXBsYXJTZXQyKCl7CisgICAgICAgIGludCBlcXVhbENvdW50ID0gMDsKKyAgICAgICAgSGFzaFNldCAgdGVzdGVkRXhlbXBsYXJzID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8YXZhaWxhYmxlTG9jYWxlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IGF2YWlsYWJsZUxvY2FsZXNbaV07CisgICAgICAgICAgICBMb2NhbGVEYXRhIGxkID0gTG9jYWxlRGF0YS5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgaW50W10gc2NyaXB0Q29kZXMgPSBVU2NyaXB0LmdldENvZGUobG9jYWxlKTsKKyAgICAgICAgICAgIGlmIChzY3JpcHRDb2Rlcz09bnVsbCkgeworICAgICAgICAgICAgICAgIGlmKGxvY2FsZS50b1N0cmluZygpLmluZGV4T2YoKCJpbiIpKTwwKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0Q29kZSByZXR1cm5lZCBudWxsIGZvciBsb2NhbGU6ICIrIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZXhlbXBsYXJTZXRzW10gPSBuZXcgVW5pY29kZVNldFs0XTsKKworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPDI7ICsraykgeyAgLy8gZm9yIGNhc2luZyBvcHRpb24gaW4gKG5vcm1hbCwgdW5jYXNlZCkKKyAgICAgICAgICAgICAgICBpbnQgb3B0aW9uID0gKGs9PTApID8gMCA6IFVuaWNvZGVTZXQuQ0FTRTsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGg9MDsgaDwyOyArK2gpeyAgCisgICAgICAgICAgICAgICAgICAgIGludCB0eXBlID0gKGg9PTApID8gTG9jYWxlRGF0YS5FU19TVEFOREFSRCA6IExvY2FsZURhdGEuRVNfQVVYSUxJQVJZOworCisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgZXhlbXBsYXJTZXQgPSBsZC5nZXRFeGVtcGxhclNldChvcHRpb24sIHR5cGUpOworICAgICAgICAgICAgICAgICAgICBleGVtcGxhclNldHNbayoyK2hdID0gZXhlbXBsYXJTZXQ7CisKKyAgICAgICAgICAgICAgICAgICAgRXhlbXBsYXJHcm91cCBleEdycCA9IG5ldyBFeGVtcGxhckdyb3VwKGV4ZW1wbGFyU2V0LCBzY3JpcHRDb2Rlcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdGVkRXhlbXBsYXJzLmNvbnRhaW5zKGV4R3JwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGVkRXhlbXBsYXJzLmFkZChleEdycCk7CisgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0W10gc2V0cyA9IG5ldyBVbmljb2RlU2V0W3NjcmlwdENvZGVzLmxlbmd0aF07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIFVuaWNvZGVTZXRzIGZvciB0aGUgc2NyaXB0CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgaiA8IHNjcmlwdENvZGVzLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRzW2pdID0gbmV3IFVuaWNvZGVTZXQoIls6IiArIFVTY3JpcHQuZ2V0U2hvcnROYW1lKHNjcmlwdENvZGVzW2pdKSArICI6XSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBleGlzdHNJblNjcmlwdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGUgb3ZlciB0aGUgCisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWV4aXN0c0luU2NyaXB0ICYmIGl0ZXIubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlci5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzZXRzLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldHNbal0uY29udGFpbnMoaXRlci5jb2RlcG9pbnQsIGl0ZXIuY29kZXBvaW50RW5kKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RzSW5TY3JpcHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8c2V0cy5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZXRzW2pdLmNvbnRhaW5zKGl0ZXIuc3RyaW5nKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RzSW5TY3JpcHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogSG93IHRvIHZlcmlmeSBMb2NhbGVEYXRhLkVTX0FVWElMSUFSWSA/Pz8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGV4aXN0c0luU2NyaXB0ID09IGZhbHNlICYmIGggPT0gMCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkV4ZW1wbGFyU2V0IGNvbnRhaW5tZW50IGZhaWxlZCBmb3IgbG9jYWxlLG9wdGlvbix0eXBlIDogIisgbG9jYWxlICsgIiwgIiArIG9wdGlvbiArICIsICIgKyB0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZXhwZW5zaXZlLCBzbyBvbmx5IGRvIGl0IGlmIGl0IHdpbGwgYmUgdmlzaWJsZQorICAgICAgICAgICAgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLnRvU3RyaW5nKCkgKyAiIGV4ZW1wbGFyKEVTX1NUQU5EQVJEKSIgKyBleGVtcGxhclNldHNbMF0pOworICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZS50b1N0cmluZygpICsgIiBleGVtcGxhcihFU19BVVhJTElBUlkpICIgKyBleGVtcGxhclNldHNbMV0pOworICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZS50b1N0cmluZygpICsgIiBleGVtcGxhcihjYXNlLWZvbGRlZCxFU19TVEFOREFSRCkgIiArIGV4ZW1wbGFyU2V0c1syXSk7CisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLnRvU3RyaW5nKCkgKyAiIGV4ZW1wbGFyKGNhc2UtZm9sZGVkLEVTX0FVWElMSUFSWSkgIiArIGV4ZW1wbGFyU2V0c1szXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnRUcnVlKGxvY2FsZS50b1N0cmluZygpICsgIiBjYXNlLWZvbGRlZCBpcyBhIHN1cGVyc2V0IiwKKyAgICAgICAgICAgICAgICAgICAgZXhlbXBsYXJTZXRzWzJdLmNvbnRhaW5zQWxsKGV4ZW1wbGFyU2V0c1swXSkpOworICAgICAgICAgICAgYXNzZXJ0VHJ1ZShsb2NhbGUudG9TdHJpbmcoKSArICIgY2FzZS1mb2xkZWQgaXMgYSBzdXBlcnNldCIsCisgICAgICAgICAgICAgICAgICAgIGV4ZW1wbGFyU2V0c1szXS5jb250YWluc0FsbChleGVtcGxhclNldHNbMV0pKTsKKyAgICAgICAgICAgIGlmIChleGVtcGxhclNldHNbMl0uZXF1YWxzKGV4ZW1wbGFyU2V0c1swXSkpIHsKKyAgICAgICAgICAgICAgICArK2VxdWFsQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZXhlbXBsYXJTZXRzWzNdLmVxdWFscyhleGVtcGxhclNldHNbMV0pKSB7CisgICAgICAgICAgICAgICAgKytlcXVhbENvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIE5vdGU6IFRoZSBjYXNlLWZvbGRlZCBzZXQgc2hvdWxkIHNvbWV0aW1lcyBiZSBhIHN0cmljdCBzdXBlcnNldAorICAgICAgICAvLyBhbmQgc29tZXRpbWVzIGJlIGVxdWFsLgorICAgICAgICBhc3NlcnRUcnVlKCJjYXNlLWZvbGRlZCBpcyBzb21ldGltZXMgYSBzdHJpY3Qgc3VwZXJzZXQsIGFuZCBzb21ldGltZXMgZXF1YWwiLAorICAgICAgICAgICAgICAgIGVxdWFsQ291bnQgPiAwICYmIGVxdWFsQ291bnQgPCBhdmFpbGFibGVMb2NhbGVzLmxlbmd0aCAqIDIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKXsKKyAgICAgICAgTG9jYWxlRGF0YSBsZCA9IExvY2FsZURhdGEuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYm9vbGVhbiB0ID0gbGQuZ2V0Tm9TdWJzdGl0dXRlKCk7CisgICAgICAgIGxkLnNldE5vU3Vic3RpdHV0ZSh0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJMb2NhbGVEYXRhIGdldC9zZXQgTm9TdWJzdGl0dXRlIiwKKyAgICAgICAgICAgICAgICB0LAorICAgICAgICAgICAgICAgIGxkLmdldE5vU3Vic3RpdHV0ZSgpKTsKKyAgICAKKyAgICAgICAgbG9nbG4obGQuZ2V0RGVsaW1pdGVyKExvY2FsZURhdGEuUVVPVEFUSU9OX1NUQVJUKSk7CisgICAgICAgIGxvZ2xuKGxkLmdldERlbGltaXRlcihMb2NhbGVEYXRhLlFVT1RBVElPTl9FTkQpKTsKKyAgICAgICAgbG9nbG4obGQuZ2V0RGVsaW1pdGVyKExvY2FsZURhdGEuQUxUX1FVT1RBVElPTl9TVEFSVCkpOworICAgICAgICBsb2dsbihsZC5nZXREZWxpbWl0ZXIoTG9jYWxlRGF0YS5BTFRfUVVPVEFUSU9OX0VORCkpOyAgICAJCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9ja2FibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xvY2thYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUzNTliYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xvY2thYmxlLmphdmEKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKKy8qKgorICogUHJvdmlkZXMgYSBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIGNvbnRyb2xsaW5nIGFjY2Vzcywgd2l0aG91dCByZXF1aXJpbmcgdGhhdCBhIGNsYXNzIGJlIGltbXV0YWJsZS4KKyAqIE9uY2UgbG9ja2VkLCBhbiBvYmplY3QgY2FuIG5ldmVyIGJlIHVubG9ja2VkLCBzbyBpdCBpcyB0aHJlYWQtc2FmZSBmcm9tIHRoYXQgcG9pbnQgb253YXJkLgorICogVGhlIGltcGxlbWVudGF0aW9uIG9mIGJvdGggbWV0aG9kcyBtdXN0IGJlIHN5bmNocm9uaXplZC4KKyAqIE9uY2UgdGhlIG9iamVjdCBoYXMgYmVlbiBsb2NrZWQsIGl0IG11c3QgZ3VhcmFudGVlIHRoYXQgbm8gY2hhbmdlcyBjYW4gYmUgbWFkZSB0byBpdC4KKyAqIEFueSBhdHRlbXB0IHRvIGFsdGVyIGl0IG11c3QgcmFpc2UgYW4gVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZXhjZXB0aW9uLgorICogVGhpcyBtZWFucyB0aGF0IHdoZW4gdGhlIG9iamVjdCByZXR1cm5zIGludGVybmFsIG9iamVjdHMsCisgKiBvciBpZiBhbnlvbmUgaGFzIHJlZmVyZW5jZXMgdG8gdGhvc2UgaW50ZXJuYWwgb2JqZWN0cywgdGhhdCB0aG9zZSBpbnRlcm5hbCBvYmplY3RzIG11c3QgZWl0aGVyIGJlIGltbXV0YWJsZSwKKyAqIG9yIG11c3QgYWxzbyByYWlzZSBleGNlcHRpb25zIGlmIGFueSBhdHRlbXB0IHRvIG1vZGlmeSB0aGVtIGlzIG1hZGUuIE9mIGNvdXJzZSwgdGhlIG9iamVjdCBjYW4gcmV0dXJuIGNsb25lcworICogb2YgaW50ZXJuYWwgb2JqZWN0cywgc2luY2UgdGhvc2UgYXJlIHNhZmUuICogQGF1dGhvciBkYXZpcworICovCitwdWJsaWMgaW50ZXJmYWNlIExvY2thYmxlIGV4dGVuZHMgQ2xvbmVhYmxlIHsKKwkvKioKKwkgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG9iamVjdCBoYXMgYmVlbiBsb2NrZWQgb3Igbm90LgorCSAqLworCXB1YmxpYyBib29sZWFuIGlzTG9ja2VkKCk7CisJLyoqCisJICogTG9ja3MgdGhlIG9iamVjdC4KKwkgKiBAcmV0dXJuIHRoZSBvYmplY3QgaXRzZWxmLgorCSAqLworCXB1YmxpYyBPYmplY3QgbG9jaygpOworCS8qKgorCSAqIFByb3ZpZGVzIGZvciB0aGUgY2xvbmUgb3BlcmF0aW9uLiBBbnkgY2xvbmUgaXMgaW5pdGlhbGx5IHVubG9ja2VkLgorCSAqLworCXB1YmxpYyBPYmplY3QgY2xvbmUoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9QaWNrLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9QaWNrLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q1ZmUzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1BpY2suamF2YQpAQCAtMCwwICsxLDc5MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CisKK2Fic3RyYWN0IHB1YmxpYyBjbGFzcyBQaWNrIHsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgCisgICAgLy8gZm9yIHVzaW5nIHRvIGdldCBzdHJpbmdzCisgICAgCisgICAgc3RhdGljIGNsYXNzIFRhcmdldCB7CisgICAgICAgIHByaXZhdGUgUGljayBwaWNrOworICAgICAgICBwcml2YXRlIFJhbmRvbSByYW5kb207CisgICAgICAgIHByaXZhdGUgUXVvdGVyIHF1b3RlcjsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGFyZ2V0IG1ha2UoUGljayBwaWNrLCBSYW5kb20gcmFuZG9tLCBRdW90ZXIgcXVvdGVyKSB7CisgICAgICAgICAgICBUYXJnZXQgcmVzdWx0ID0gbmV3IFRhcmdldCgpOworICAgICAgICAgICAgcmVzdWx0LnBpY2sgPSBwaWNrOworICAgICAgICAgICAgcmVzdWx0LnJhbmRvbSA9IHJhbmRvbTsKKyAgICAgICAgICAgIHJlc3VsdC5xdW90ZXIgPSBxdW90ZXI7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgbmV4dCgpIHsKKyAgICAgICAgICAgIHF1b3Rlci5jbGVhcigpOworICAgICAgICAgICAgcGljay5hZGRUbyh0aGlzKTsKKyAgICAgICAgICAgIHJldHVybiBnZXQoKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KCkgeworICAgICAgICAgICAgcmV0dXJuIHF1b3Rlci50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgdm9pZCBjb3B5U3RhdGUoVGFyZ2V0IG90aGVyKSB7CisgICAgICAgICAgICByYW5kb20gPSBvdGhlci5yYW5kb207CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGNsZWFyKCkgeworICAgICAgICAgICAgcXVvdGVyLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnQgbGVuZ3RoKCkgeworICAgICAgICAgICAgcmV0dXJuIHF1b3Rlci5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFRhcmdldCBhcHBlbmQoaW50IGNvZGVwb2ludCkgeworICAgICAgICAgICAgcXVvdGVyLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgYXBwZW5kKFN0cmluZyBzKSB7CisgICAgICAgICAgICBxdW90ZXIuYXBwZW5kKHMpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgLy8gbXVzdCByZXR1cm4gdmFsdWUgYmV0d2VlbiAwIChpbmMpIGFuZCAxIChleGMpCisgICAgICAgIHByaXZhdGUgZG91YmxlIG5leHREb3VibGUoKSB7CisgICAgICAgICAgICByZXR1cm4gcmFuZG9tLm5leHREb3VibGUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGZvciBCdWlsZGluZworICAgIAorICAgIHB1YmxpYyBQaWNrIHJlcGxhY2UoU3RyaW5nIHRvUmVwbGFjZSwgUGljayByZXBsYWNlbWVudCkgeworICAgICAgIFJlcGxhY2VyIHZpc2l0b3IgPSBuZXcgUmVwbGFjZXIodG9SZXBsYWNlLCByZXBsYWNlbWVudCk7CisgICAgICAgcmV0dXJuIHZpc2l0KHZpc2l0b3IpOworICAgIH0KKworICAgIHB1YmxpYyBQaWNrIG5hbWUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgUGljay5TZXF1ZW5jZSBtYWtlU2VxdWVuY2UoKSB7CisgICAgICAgIHJldHVybiBuZXcgU2VxdWVuY2UoKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrLkFsdGVybmF0aW9uIG1ha2VBbHRlcm5hdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbHRlcm5hdGlvbigpOworICAgIH0KKyAgICAvKgorICAgIHN0YXRpYyBwdWJsaWMgUGljay5TZXF1ZW5jZSBhbmQoT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTZXF1ZW5jZSgpLmFuZDIoaXRlbSk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5TZXF1ZW5jZSBhbmQoT2JqZWN0W10gaXRlbXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTZXF1ZW5jZSgpLmFuZDIoaXRlbXMpOworICAgIH0KKyAgICBzdGF0aWMgcHVibGljIFBpY2suQWx0ZXJuYXRpb24gb3IoaW50IGl0ZW1XZWlnaHQsIE9iamVjdCBpdGVtKSB7CisgICAgICAgIHJldHVybiBuZXcgQWx0ZXJuYXRpb24oKS5vcjIoaXRlbVdlaWdodCwgaXRlbSk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5BbHRlcm5hdGlvbiBvcihPYmplY3RbXSBpdGVtcykgeworICAgICAgICByZXR1cm4gbmV3IEFsdGVybmF0aW9uKCkub3IyKDEsIGl0ZW1zKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrLkFsdGVybmF0aW9uIG9yKGludCBpdGVtV2VpZ2h0LCBPYmplY3RbXSBpdGVtcykgeworICAgICAgICByZXR1cm4gbmV3IEFsdGVybmF0aW9uKCkub3IyKGl0ZW1XZWlnaHQsIGl0ZW1zKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrLkFsdGVybmF0aW9uIG9yKGludFtdIGl0ZW1XZWlnaHRzLCBPYmplY3RbXSBpdGVtcykgeworICAgICAgICByZXR1cm4gbmV3IEFsdGVybmF0aW9uKCkub3IyKGl0ZW1XZWlnaHRzLCBpdGVtcyk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgUGljayBtYXliZShpbnQgcGVyY2VudCwgT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBlYXQoMCwgMSwgbmV3IGludFtdezEwMC1wZXJjZW50LCBwZXJjZW50fSwgaXRlbSk7CisgICAgICAgIC8vcmV0dXJuIFBpY2sub3IoMS4wLXBlcmNlbnQsIE5PVEhJTkcpLm9yMihwZXJjZW50LCBpdGVtKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrIHJlcGVhdChpbnQgbWluQ291bnQsIGludCBtYXhDb3VudCwgaW50IGl0ZW1XZWlnaHRzLCBPYmplY3QgaXRlbSkgeworICAgICAgICByZXR1cm4gbmV3IFJlcGVhdChtaW5Db3VudCwgbWF4Q291bnQsIGl0ZW1XZWlnaHRzLCBpdGVtKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBQaWNrIGNvZGVQb2ludChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ29kZVBvaW50KG5ldyBVbmljb2RlU2V0KHNvdXJjZSkpOworICAgIH0KKyAgICAqLworICAgIAorICAgIHN0YXRpYyBwdWJsaWMgUGljayByZXBlYXQoaW50IG1pbkNvdW50LCBpbnQgbWF4Q291bnQsIGludFtdIGl0ZW1XZWlnaHRzLCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBlYXQobWluQ291bnQsIG1heENvdW50LCBpdGVtV2VpZ2h0cywgaXRlbSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgUGljayBjb2RlUG9pbnQoVW5pY29kZVNldCBzb3VyY2UpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2RlUG9pbnQoc291cmNlKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrIHN0cmluZyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIHJldHVybiBuZXcgTGl0ZXJhbChzb3VyY2UpOworICAgIH0KKyAgICAvKgorICAgIHN0YXRpYyBwdWJsaWMgUGljayB1bnF1b3RlZChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIHJldHVybiBuZXcgTGl0ZXJhbChzb3VyY2UpOworICAgIH0KKyAgICBzdGF0aWMgcHVibGljIFBpY2sgc3RyaW5nKGludCBtaW5MZW5ndGgsIGludCBtYXhMZW5ndGgsIFBpY2sgaXRlbSkgeworICAgICAgICByZXR1cm4gbmV3IE1vcnBoKGl0ZW0sIG1pbkxlbmd0aCwgbWF4TGVuZ3RoKTsKKyAgICB9CisgICAgKi8KKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKTsKKyAgICAvLyBJbnRlcm5hbHMKKyAgIAorICAgIHByb3RlY3RlZCBTdHJpbmcgbmFtZTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBhZGRUbyhUYXJnZXQgdGFyZ2V0KTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2VxdWVuY2UgZXh0ZW5kcyBMaXN0UGljayB7CisgICAgICAgIHB1YmxpYyBTZXF1ZW5jZSBhbmQyIChQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIGFkZEludGVybmFsKG5ldyBQaWNrW10ge2l0ZW19KTsgLy8gd2UgZG9uJ3QgY2FyZSBhYm91dCBwZXJmCisgICAgICAgICAgICByZXR1cm4gdGhpczsgLy8gZm9yIGNoYWluaW5nCisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFNlcXVlbmNlIGFuZDIgKFBpY2tbXSBpdGVtcykgeworICAgICAgICAgICAgYWRkSW50ZXJuYWwoaXRlbXMpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpdGVtc1tpXS5hZGRUbyh0YXJnZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjaGVja05hbWUobmFtZSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCIkIikpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQgPSBpbmRlbnQoZGVwdGgpICsgcmVzdWx0ICsgIlNFUSgiOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdCArPSAiLCAiOworICAgICAgICAgICAgICAgIHJlc3VsdCArPSBpdGVtc1tpXS5nZXRJbnRlcm5hbChkZXB0aCsxLCBhbHJlYWR5U2Vlbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgKz0gIikiOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBrZWVwIHByaXZhdGUKKyAgICAgICAgcHJpdmF0ZSBTZXF1ZW5jZSgpIHt9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBpbnB1dCwgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgaW50IG9yaWdpbmFsSW5kZXggPSBwLmluZGV4OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghaXRlbXNbaV0ubWF0Y2goaW5wdXQsIHApKSB7CisgICAgICAgICAgICAgICAgICAgIHAuaW5kZXggPSBvcmlnaW5hbEluZGV4OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIGNoZWNrTmFtZShTdHJpbmcgbmFtZSwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgIGlmIChuYW1lID09IG51bGwpIHJldHVybiAiIjsKKyAgICAgICAgaWYgKGFscmVhZHlTZWVuLmNvbnRhaW5zKG5hbWUpKSByZXR1cm4gbmFtZTsKKyAgICAgICAgYWxyZWFkeVNlZW4uYWRkKG5hbWUpOworICAgICAgICByZXR1cm4gInsiICsgbmFtZSArICI9fSI7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBBbHRlcm5hdGlvbiBleHRlbmRzIExpc3RQaWNrIHsKKyAgICAgICAgcHJpdmF0ZSBXZWlnaHRlZEluZGV4IHdlaWdodGVkSW5kZXggPSBuZXcgV2VpZ2h0ZWRJbmRleCgwKTsKKyAgICAgICAgICAgCisgICAgICAgIHB1YmxpYyBBbHRlcm5hdGlvbiBvcjIgKFBpY2tbXSBuZXdJdGVtcykgeworICAgICAgICAgICAgcmV0dXJuIG9yMigxLCBuZXdJdGVtcyk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIEFsdGVybmF0aW9uIG9yMiAoaW50IGl0ZW1XZWlnaHQsIFBpY2sgaXRlbSkgeworICAgICAgICAgICAgcmV0dXJuIG9yMihpdGVtV2VpZ2h0LCBuZXcgUGlja1tdIHtpdGVtfSk7IC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgcGVyZgorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBBbHRlcm5hdGlvbiBvcjIgKGludCBpdGVtV2VpZ2h0LCBQaWNrW10gbmV3SXRlbXMpIHsKKyAgICAgICAgICAgIGludFtdIGl0ZW1XZWlnaHRzID0gbmV3IGludFtuZXdJdGVtcy5sZW5ndGhdOworICAgICAgICAgICAgQXJyYXlzLmZpbGwoaXRlbVdlaWdodHMsaXRlbVdlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gb3IyKGl0ZW1XZWlnaHRzLCBuZXdJdGVtcyk7IC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgcGVyZgorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBBbHRlcm5hdGlvbiBvcjIgKGludFtdIGl0ZW1XZWlnaHRzLCBQaWNrW10gbmV3SXRlbXMpIHsKKyAgICAgICAgICAgIGlmIChuZXdJdGVtcy5sZW5ndGggIT0gaXRlbVdlaWdodHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIm9yIGxlbmd0aHMgbXVzdCBiZSBlcXVhbDogIiArIG5ld0l0ZW1zLmxlbmd0aCArICIgIT0gIiArIGl0ZW1XZWlnaHRzLmxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgIC8vIGludCBsYXN0TGVuID0gdGhpcy5pdGVtcy5sZW5ndGg7CisgICAgICAgICAgICBhZGRJbnRlcm5hbChuZXdJdGVtcyk7CisgICAgICAgICAgICB3ZWlnaHRlZEluZGV4LmFkZChpdGVtV2VpZ2h0cyk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsgLy8gZm9yIGNoYWluaW5nCisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkgeworICAgICAgICAgICAgaXRlbXNbd2VpZ2h0ZWRJbmRleC50b0luZGV4KHRhcmdldC5uZXh0RG91YmxlKCkpXS5hZGRUbyh0YXJnZXQpOworICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGNoZWNrTmFtZShuYW1lLCBhbHJlYWR5U2Vlbik7CisgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0c1dpdGgoIiQiKSkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IGluZGVudChkZXB0aCkgKyByZXN1bHQgKyAiT1IoIjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHQgKz0gIiwgIjsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gaXRlbXNbaV0uZ2V0SW50ZXJuYWwoZGVwdGgrMSwgYWxyZWFkeVNlZW4pICsgIi8iICsgd2VpZ2h0ZWRJbmRleC53ZWlnaHRzW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICIpIjsKKyAgICAgICAgfQorICAgICAgICAvLyBrZWVwIHByaXZhdGUKKyAgICAgICAgcHJpdmF0ZSBBbHRlcm5hdGlvbigpIHt9CisgICAgICAgIC8vIHRha2UgZmlyc3QgbWF0Y2hpbmcgb3B0aW9uCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBpbnB1dCwgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3ZWlnaHRlZEluZGV4LndlaWdodHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocC5pc0ZhaWx1cmUodGhpcyxpKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLm1hdGNoKGlucHV0LCBwKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcC5zZXRGYWlsdXJlKHRoaXMsIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBpbmRlbnQoaW50IGRlcHRoKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiXHJcbiI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVwdGg7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBSZXBlYXQgZXh0ZW5kcyBJdGVtUGljayB7CisgICAgICAgIFdlaWdodGVkSW5kZXggd2VpZ2h0ZWRJbmRleDsKKyAgICAgICAgaW50IG1pbkNvdW50ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICBwcml2YXRlIFJlcGVhdChpbnQgbWluQ291bnQsIGludCBtYXhDb3VudCwgaW50W10gaXRlbVdlaWdodHMsIFBpY2sgaXRlbSkgeworICAgICAgICAgICAgc3VwZXIoaXRlbSk7CisgICAgICAgICAgICB3ZWlnaHRlZEluZGV4ID0gbmV3IFdlaWdodGVkSW5kZXgobWluQ291bnQpLmFkZChtYXhDb3VudC1taW5Db3VudCsxLCBpdGVtV2VpZ2h0cyk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBSZXBlYXQoaW50IG1pbkNvdW50LCBpbnQgbWF4Q291bnQsIGludCBpdGVtV2VpZ2h0LCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIHN1cGVyKGl0ZW0pOworICAgICAgICAgICAgd2VpZ2h0ZWRJbmRleCA9IG5ldyBXZWlnaHRlZEluZGV4KG1pbkNvdW50KS5hZGQobWF4Q291bnQtbWluQ291bnQrMSwgaXRlbVdlaWdodCk7CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgcHJpdmF0ZSBSZXBlYXQoaW50IG1pbkNvdW50LCBpbnQgbWF4Q291bnQsIE9iamVjdCBpdGVtKSB7CisgICAgICAgICAgICB0aGlzLml0ZW0gPSBjb252ZXJ0KGl0ZW0pOworICAgICAgICAgICAgd2VpZ2h0ZWRJbmRleCA9IG5ldyBXZWlnaHRlZEluZGV4KG1pbkNvdW50KS5hZGQobWF4Q291bnQtbWluQ291bnQrMSwgMSk7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkgeworICAgICAgICAgICAgLy9pbnQgY291bnQgOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHdlaWdodGVkSW5kZXgudG9JbmRleCh0YXJnZXQubmV4dERvdWJsZSgpKTsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGl0ZW0uYWRkVG8odGFyZ2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY2hlY2tOYW1lKG5hbWUsIGFscmVhZHlTZWVuKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiJCIpKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0ID0gaW5kZW50KGRlcHRoKSArIHJlc3VsdCArICJSRVBFQVQoIiArIHdlaWdodGVkSW5kZXgKKyAgICAgICAgICAgICsgIjsgIisgaXRlbS5nZXRJbnRlcm5hbChkZXB0aCsxLCBhbHJlYWR5U2VlbikgCisgICAgICAgICAgICArICIpIjsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIG1hdGNoIGxvbmdlc3QsIGUuZy4gdXAgdG8ganVzdCBiZWZvcmUgYSBmYWlsdXJlCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBpbnB1dCwgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgaW50IGJlc3RNYXRjaCA9IHAuaW5kZXg7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3ZWlnaHRlZEluZGV4LndlaWdodHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocC5pc0ZhaWx1cmUodGhpcyxpKSkgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKCFpdGVtLm1hdGNoKGlucHV0LCBwKSkgeworICAgICAgICAgICAgICAgICAgICBwLnNldEZhaWx1cmUodGhpcyxpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBiZXN0TWF0Y2ggPSBwLmluZGV4OworICAgICAgICAgICAgICAgIGNvdW50Kys7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY291bnQgPj0gbWluQ291bnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFRPRE8gZml4IGZhaWx1cmUKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDb2RlUG9pbnQgZXh0ZW5kcyBGaW5hbFBpY2sgeworICAgICAgICBwcml2YXRlIFVuaWNvZGVTZXQgc291cmNlOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBDb2RlUG9pbnQoVW5pY29kZVNldCBzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoc291cmNlLmNoYXJBdChwaWNrKHRhcmdldC5yYW5kb20sMCxzb3VyY2Uuc2l6ZSgpLTEpKSk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gbWF0Y2goU3RyaW5nIHMsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChzLCBwLmluZGV4KTsKKyAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGFpbnMoY3ApKSB7CisgICAgICAgICAgICAgICAgcC5pbmRleCArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcC5zZXRNYXgoImNvZGVQb2ludCIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjaGVja05hbWUobmFtZSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCIkIikpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgTW9ycGggZXh0ZW5kcyBJdGVtUGljayB7CisgICAgICAgIE1vcnBoKFBpY2sgaXRlbSkgeworICAgICAgICAgICAgc3VwZXIoaXRlbSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbGFzdFZhbHVlID0gbnVsbDsKKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgYWRkQnVmZmVyID0gVGFyZ2V0Lm1ha2UodGhpcywgbnVsbCwgbmV3IFF1b3Rlci5SdWxlUXVvdGVyKCkpOworICAgICAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtZXJnZUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPUFlfTkVXID0gMCwgQ09QWV9CT1RIID0gMSwgQ09QWV9MQVNUID0gMywgU0tJUCA9IDQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUFTVF9TS0lQID0gNDsKKyAgICAgICAgLy8gZ2l2ZSB3ZWlnaHRzIHRvIHRoZSBhYm92ZS4gbWFrZSBzdXJlIHdlIGRlbGV0ZSBhYm91dCB0aGUgc2FtZSBhcyB3ZSBpbnNlcnQKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgV2VpZ2h0ZWRJbmRleCBjaG9pY2UgPSBuZXcgV2VpZ2h0ZWRJbmRleCgwKQorICAgICAgICAgICAgLmFkZChuZXcgaW50W10gezEwLCAxMCwgMTAwLCAxMH0pOworICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkgeworICAgICAgICAgICAgLy8gZ2V0IGNvbnRlbnRzIGludG8gc2VwYXJhdGUgYnVmZmVyCisgICAgICAgICAgICBhZGRCdWZmZXIuY29weVN0YXRlKHRhcmdldCk7CisgICAgICAgICAgICBhZGRCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIGl0ZW0uYWRkVG8oYWRkQnVmZmVyKTsKKyAgICAgICAgICAgIFN0cmluZyBuZXdWYWx1ZSA9IGFkZEJ1ZmZlci5nZXQoKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJPbGQ6ICIgKyBsYXN0VmFsdWUgKyAiLCBOZXc6IiArIG5ld1ZhbHVlKTsKKworICAgICAgICAgICAgLy8gaWYgbm90IGZpcnN0IG9uZSwgbWVyZ2Ugd2l0aCBvbGQKKyAgICAgICAgICAgIGlmIChsYXN0VmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1lcmdlQnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpbnQgbGFzdEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgbmV3SW5kZXggPSAwOworICAgICAgICAgICAgICAgIC8vIHRoZSBuZXcgbGVuZ3RoIGlzIGEgcmFuZG9tIHZhbHVlIGJldHdlZW4gb2xkIGFuZCBuZXcuCisgICAgICAgICAgICAgICAgaW50IG5ld0xlbkxpbWl0ID0gKGludCkgcGljayh0YXJnZXQucmFuZG9tLCBsYXN0VmFsdWUubGVuZ3RoKCksIG5ld1ZhbHVlLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAobWVyZ2VCdWZmZXIubGVuZ3RoKCkgPCBuZXdMZW5MaW1pdAorICAgICAgICAgICAgICAgICAgJiYgbmV3SW5kZXggPCBuZXdWYWx1ZS5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgJiYgbGFzdEluZGV4IDwgbGFzdFZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gY2hvaWNlLnRvSW5kZXgodGFyZ2V0Lm5leHREb3VibGUoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09IENPUFlfTkVXIHx8IGMgPT0gQ09QWV9CT1RIIHx8IGMgPT0gU0tJUCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3SW5kZXggPSBnZXRDaGFyKG5ld1ZhbHVlLCBuZXdJbmRleCwgbWVyZ2VCdWZmZXIsIGMgPCBMRUFTVF9TS0lQKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXJnZUJ1ZmZlci5sZW5ndGgoKSA+PSBuZXdMZW5MaW1pdCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gQ09QWV9MQVNUIHx8IGMgPT0gQ09QWV9CT1RIIHx8IGMgPT0gU0tJUCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gZ2V0Q2hhcihsYXN0VmFsdWUsIGxhc3RJbmRleCwgbWVyZ2VCdWZmZXIsIGMgPCBMRUFTVF9TS0lQKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG1lcmdlQnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0VmFsdWUgPSBuZXdWYWx1ZTsKKyAgICAgICAgICAgIHRhcmdldC5hcHBlbmQobmV3VmFsdWUpOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlc3VsdDogIiArIG5ld1ZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjaGVja05hbWUobmFtZSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCIkIikpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gaW5kZW50KGRlcHRoKSArIHJlc3VsdCArICJNT1JQSCgiCisgICAgICAgICAgICAgICAgKyBpdGVtLmdldEludGVybmFsKGRlcHRoKzEsIGFscmVhZHlTZWVuKQorICAgICAgICAgICAgICAgICsgIikiOworICAgICAgICB9CisKKyAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgKiBAc2VlIFBpY2sjbWF0Y2goamF2YS5sYW5nLlN0cmluZywgUGljay5Qb3NpdGlvbikKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBpbnB1dCwgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIEFkZCBjaGFyYWN0ZXIgaWYgd2UgY2FuCisgICAgICovCisgICAgc3RhdGljIGludCBnZXRDaGFyKFN0cmluZyBuZXdWYWx1ZSwgaW50IG5ld0luZGV4LCBTdHJpbmdCdWZmZXIgbWVyZ2VCdWZmZXIsIGJvb2xlYW4gY29weSkgeworICAgICAgICBpZiAobmV3SW5kZXggPj0gbmV3VmFsdWUubGVuZ3RoKCkpIHJldHVybiBuZXdJbmRleDsKKyAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KG5ld1ZhbHVlLG5ld0luZGV4KTsKKyAgICAgICAgaWYgKGNvcHkpIFVURjE2LmFwcGVuZChtZXJnZUJ1ZmZlciwgY3ApOworICAgICAgICByZXR1cm4gbmV3SW5kZXggKyBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgIH0KKworICAgIC8qICAgCisgICAgICAgICAgICAvLyBxdW90ZWQgYWRkCisgICAgICAgICAgICBhcHBlbmRRdW90ZWQodGFyZ2V0LCBhZGRCdWZmZXIudG9TdHJpbmcoKSwgcXVvdGVCdWZmZXIpOworICAgICAgICAgICAgLy8gZml4IGJ1ZmZlcnMKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzd2FwVGVtcCA9IGFkZEJ1ZmZlcjsKKyAgICAgICAgICAgIGFkZEJ1ZmZlciA9IHNvdXJjZTsKKyAgICAgICAgICAgIHNvdXJjZSA9IHN3YXBUZW1wOworICAgICAgICB9CisgICAgfQorICAgICovCisKKworICAgIHN0YXRpYyBjbGFzcyBRdW90ZSBleHRlbmRzIEl0ZW1QaWNrIHsKKyAgICAgICAgUXVvdGUoUGljayBpdGVtKSB7CisgICAgICAgICAgICBzdXBlcihpdGVtKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBhZGRUbyhUYXJnZXQgdGFyZ2V0KSB7CisgICAgICAgICAgICB0YXJnZXQucXVvdGVyLnNldFF1b3RpbmcodHJ1ZSk7CisgICAgICAgICAgICBpdGVtLmFkZFRvKHRhcmdldCk7CisgICAgICAgICAgICB0YXJnZXQucXVvdGVyLnNldFF1b3RpbmcoZmFsc2UpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgcywgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGNoZWNrTmFtZShuYW1lLCBhbHJlYWR5U2Vlbik7CisgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0c1dpdGgoIiQiKSkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiBpbmRlbnQoZGVwdGgpICsgcmVzdWx0ICsgIlFVT1RFKCIgKyBpdGVtLmdldEludGVybmFsKGRlcHRoKzEsIGFscmVhZHlTZWVuKQorICAgICAgICAgICAgICAgICsgIikiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIExpdGVyYWwgZXh0ZW5kcyBGaW5hbFBpY2sgeworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIG5hbWU7ICAgICAKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIHByaXZhdGUgTGl0ZXJhbChTdHJpbmcgc291cmNlKSB7ICAKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IHNvdXJjZTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBhZGRUbyhUYXJnZXQgdGFyZ2V0KSB7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKG5hbWUpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBpbnB1dCwgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgaW50IGxlbiA9IG5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAoaW5wdXQucmVnaW9uTWF0Y2hlcyhwLmluZGV4LCBuYW1lLCAwLCBsZW4pKSB7CisgICAgICAgICAgICAgICAgcC5pbmRleCArPSBsZW47CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwLnNldE1heCgibGl0ZXJhbCIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIHJldHVybiAiJyIgKyBuYW1lICsgIiciOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUG9zaXRpb24geworICAgICAgICBwdWJsaWMgQXJyYXlMaXN0IGZhaWx1cmVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBwdWJsaWMgaW50IGluZGV4OworICAgICAgICBwdWJsaWMgaW50IG1heEludDsKKyAgICAgICAgcHVibGljIFN0cmluZyBtYXhUeXBlOworICAgICAgICBwdWJsaWMgdm9pZCBzZXRNYXgoU3RyaW5nIHR5cGUpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBtYXhJbnQpIHsKKyAgICAgICAgICAgICAgICBtYXhUeXBlID0gdHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuICJpbmRleDsgIiArIGluZGV4CisgICAgICAgICAgICAgICAgKyAiLCBtYXhJbnQ6IiArIG1heEludAorICAgICAgICAgICAgICAgICsgIiwgbWF4VHlwZTogIiArIG1heFR5cGU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEJBRCA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEdPT0QgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0ZhaWx1cmUoUGljayBwaWNrLCBpbnQgaXRlbSkgeworICAgICAgICAgICAgQXJyYXlMaXN0IHZhbCA9IChBcnJheUxpc3QpZmFpbHVyZXMuZ2V0KGluZGV4KTsKKyAgICAgICAgICAgIGlmICh2YWwgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgU2V0IHNldCA9IChTZXQpdmFsLmdldChpdGVtKTsKKyAgICAgICAgICAgIGlmIChzZXQgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuICFzZXQuY29udGFpbnMocGljayk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgc2V0RmFpbHVyZShQaWNrIHBpY2ssIGludCBpdGVtKSB7CisgICAgICAgICAgICBBcnJheUxpc3QgdmFsID0gKEFycmF5TGlzdClmYWlsdXJlcy5nZXQoaW5kZXgpOworICAgICAgICAgICAgaWYgKHZhbCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdmFsID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgIGZhaWx1cmVzLnNldChpbmRleCwgdmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFNldCBzZXQgPSAoU2V0KXZhbC5nZXQoaXRlbSk7CisgICAgICAgICAgICBpZiAoc2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzZXQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIHZhbC5zZXQoaXRlbSwgc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldC5hZGQocGljayk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFBpY2sgTk9USElORyA9IG5ldyBOb3RoaW5nKCk7CisgICAgCisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBOb3RoaW5nIGV4dGVuZHMgRmluYWxQaWNrIHsKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkge30KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gbWF0Y2goU3RyaW5nIGlucHV0LCBQb3NpdGlvbiBwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZW50KGRlcHRoKSArICJcdTAwRjgiOworICAgICAgICB9CisgICAgfQorICAgICovCisgICAgCisgICAgLy8gaW50ZXJtZWRpYXRlcworICAgIAorICAgIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBWaXNpdG9yIHsKKyAgICAgICAgU2V0IGFscmVhZHkgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAvLyBOb3RlOiBlYWNoIHZpc2l0b3Igc2hvdWxkIHJldHVybiB0aGUgUGljayB0aGF0IHdpbGwgcmVwbGFjZSBhIChvciBhIGl0c2VsZikKKyAgICAgICAgYWJzdHJhY3QgUGljayBoYW5kbGUoUGljayBhKTsKKyAgICAgICAgYm9vbGVhbiBhbHJlYWR5RW50ZXJlZChQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gYWxyZWFkeS5jb250YWlucyhpdGVtKTsKKyAgICAgICAgICAgIGFscmVhZHkuYWRkKGl0ZW0pOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgYWxyZWFkeS5jbGVhcigpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBhYnN0cmFjdCBQaWNrIHZpc2l0KFZpc2l0b3IgdmlzaXRvcik7CisgICAgCisgICAgc3RhdGljIGNsYXNzIFJlcGxhY2VyIGV4dGVuZHMgVmlzaXRvciB7CisgICAgICAgIFN0cmluZyB0b1JlcGxhY2U7CisgICAgICAgIFBpY2sgcmVwbGFjZW1lbnQ7CisgICAgICAgIFJlcGxhY2VyKFN0cmluZyB0b1JlcGxhY2UsIFBpY2sgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgIHRoaXMudG9SZXBsYWNlID0gdG9SZXBsYWNlOworICAgICAgICAgICAgdGhpcy5yZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBQaWNrIGhhbmRsZShQaWNrIGEpIHsKKyAgICAgICAgICAgIGlmICh0b1JlcGxhY2UuZXF1YWxzKGEubmFtZSkpIHsKKyAgICAgICAgICAgICAgICBhID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgfQorICAgIH0KKworICAgIGFic3RyYWN0IHByaXZhdGUgc3RhdGljIGNsYXNzIEZpbmFsUGljayBleHRlbmRzIFBpY2sgeworICAgICAgICBwdWJsaWMgUGljayB2aXNpdChWaXNpdG9yIHZpc2l0b3IpIHsKKyAgICAgICAgICAgIHJldHVybiB2aXNpdG9yLmhhbmRsZSh0aGlzKTsKKyAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIEl0ZW1QaWNrIGV4dGVuZHMgUGljayB7CisgICAgICAgcHJvdGVjdGVkIFBpY2sgaXRlbTsKKyAgICAgICAKKyAgICAgICBJdGVtUGljayAoUGljayBpdGVtKSB7CisgICAgICAgICAgIHRoaXMuaXRlbSA9IGl0ZW07CisgICAgICAgfQorICAgICAgIAorICAgICAgIHB1YmxpYyBQaWNrIHZpc2l0KFZpc2l0b3IgdmlzaXRvcikgeworICAgICAgICAgICBQaWNrIHJlc3VsdCA9IHZpc2l0b3IuaGFuZGxlKHRoaXMpOworICAgICAgICAgICBpZiAodmlzaXRvci5hbHJlYWR5RW50ZXJlZCh0aGlzKSkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgaWYgKGl0ZW0gIT0gbnVsbCkgaXRlbSA9IGl0ZW0udmlzaXQodmlzaXRvcik7CisgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgIH0KKyAgIAorICAgIHByaXZhdGUgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIExpc3RQaWNrIGV4dGVuZHMgUGljayB7CisgICAgICAgIHByb3RlY3RlZCBQaWNrW10gaXRlbXMgPSBuZXcgUGlja1swXTsKKyAgICAgICAgCisgICAgICAgIFBpY2sgc2ltcGxpZnkoKSB7CisgICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMSkgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09IDEpIHJldHVybiBpdGVtc1swXTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVtcy5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBQaWNrIGdldExhc3QoKSB7CisgICAgICAgICAgICByZXR1cm4gaXRlbXNbaXRlbXMubGVuZ3RoLTFdOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzZXRMYXN0KFBpY2sgbmV3T25lKSB7CisgICAgICAgICAgICBpdGVtc1tpdGVtcy5sZW5ndGgtMV0gPSBuZXdPbmU7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBhZGRJbnRlcm5hbChQaWNrW10gb2JqcykgeworICAgICAgICAgICAgaW50IGxhc3RMZW4gPSBpdGVtcy5sZW5ndGg7CisgICAgICAgICAgICBpdGVtcyA9IHJlYWxsb2MoaXRlbXMsIGl0ZW1zLmxlbmd0aCArIG9ianMubGVuZ3RoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Jqcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGl0ZW1zW2xhc3RMZW4gKyBpXSA9IG9ianNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgUGljayB2aXNpdChWaXNpdG9yIHZpc2l0b3IpIHsKKyAgICAgICAgICAgIFBpY2sgcmVzdWx0ID0gdmlzaXRvci5oYW5kbGUodGhpcyk7CisgICAgICAgICAgICBpZiAodmlzaXRvci5hbHJlYWR5RW50ZXJlZCh0aGlzKSkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpdGVtc1tpXSA9IGl0ZW1zW2ldLnZpc2l0KHZpc2l0b3IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTaW1wbGUgY2xhc3MgdG8gZGlzdHJpYnV0ZSBhIG51bWJlciBiZXR3ZWVuIDAgKGluY2x1c2l2ZSkgYW5kIDEgKGV4Y2x1c2l2ZSkgYW1vbmcKKyAgICAgKiBhIG51bWJlciBvZiBpbmRpY2VzLCB3aGVyZSBlYWNoIGluZGV4IGlzIHdlaWdodGVkLgorICAgICAqIEl0ZW0gd2VpZ2h0cyBtYXkgYmUgemVybywgYnV0IGNhbm5vdCBiZSBuZWdhdGl2ZS4KKyAgICAgKiBAYXV0aG9yIERhdmlzCisgICAgICovCisgICAgLy8gQXMgaW4gb3RoZXIgY2FzZSwgd2UgdXNlIGFuIGFycmF5IGZvciBydW50aW1lIHNwZWVkOyBkb24ndCBjYXJlIGFib3V0IGJ1aWxkc3BlZWQuCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBXZWlnaHRlZEluZGV4IHsKKyAgICAgICAgcHJpdmF0ZSBpbnRbXSB3ZWlnaHRzID0gbmV3IGludFswXTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbWluQ291bnQgPSAwOworICAgICAgICBwcml2YXRlIGRvdWJsZSB0b3RhbDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBXZWlnaHRlZEluZGV4KGludCBtaW5Db3VudCkgeworICAgICAgICAgICAgdGhpcy5taW5Db3VudCA9IG1pbkNvdW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgV2VpZ2h0ZWRJbmRleCBhZGQoaW50IGNvdW50LCBpbnQgaXRlbVdlaWdodHMpIHsKKyAgICAgICAgICAgIGlmIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBpbnRbXSBuZXdXZWlnaHRzID0gbmV3IGludFtjb3VudF07CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1XZWlnaHRzIDwgMSkgaXRlbVdlaWdodHMgPSAxOworICAgICAgICAgICAgICAgIEFycmF5cy5maWxsKG5ld1dlaWdodHMsIDAsIGNvdW50LCBpdGVtV2VpZ2h0cyk7CisgICAgICAgICAgICAgICAgYWRkKDEsIG5ld1dlaWdodHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFdlaWdodGVkSW5kZXggYWRkKGludFtdIG5ld1dlaWdodHMpIHsKKyAgICAgICAgICAgIHJldHVybiBhZGQobmV3V2VpZ2h0cy5sZW5ndGgsIG5ld1dlaWdodHMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgV2VpZ2h0ZWRJbmRleCBhZGQoaW50IG1heENvdW50LCBpbnRbXSBuZXdXZWlnaHRzKSB7CisgICAgICAgICAgICBpZiAobmV3V2VpZ2h0cyA9PSBudWxsKSBuZXdXZWlnaHRzID0gbmV3IGludFtdezF9OworICAgICAgICAgICAgaW50IG9sZExlbiA9IHdlaWdodHMubGVuZ3RoOworICAgICAgICAgICAgaWYgKG1heENvdW50IDwgbmV3V2VpZ2h0cy5sZW5ndGgpIG1heENvdW50ID0gbmV3V2VpZ2h0cy5sZW5ndGg7CisgICAgICAgICAgICB3ZWlnaHRzID0gKGludFtdKSByZWFsbG9jKHdlaWdodHMsIHdlaWdodHMubGVuZ3RoICsgbWF4Q291bnQpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShuZXdXZWlnaHRzLCAwLCB3ZWlnaHRzLCBvbGRMZW4sIG5ld1dlaWdodHMubGVuZ3RoKTsKKyAgICAgICAgICAgIGludCBsYXN0V2VpZ2h0ID0gd2VpZ2h0c1tvbGRMZW4gKyBuZXdXZWlnaHRzLmxlbmd0aC0xXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBvbGRMZW4gKyBuZXdXZWlnaHRzLmxlbmd0aDsgaSA8IG1heENvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICB3ZWlnaHRzW2ldID0gbGFzdFdlaWdodDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvdGFsID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2VpZ2h0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh3ZWlnaHRzW2ldIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigib25seSBwb3NpdGl2ZSB3ZWlnaHRzOiAiICsgaSk7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB3ZWlnaHRzW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUT0RPLCBtYWtlIHRoaXMgbW9yZSBlZmZpY2llbnQKKyAgICAgICAgcHVibGljIGludCB0b0luZGV4KGRvdWJsZSB6ZXJvVG9PbmUpIHsKKyAgICAgICAgICAgIGRvdWJsZSB3ZWlnaHQgPSB6ZXJvVG9PbmUqdG90YWw7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB3ZWlnaHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgd2VpZ2h0IC09IHdlaWdodHNbaV07CisgICAgICAgICAgICAgICAgaWYgKHdlaWdodCA8PSAwKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpICsgbWluQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWluQ291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgIT0gMCkgcmVzdWx0ICs9ICIsIjsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gIjAiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3ZWlnaHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSAhPSAwKSByZXN1bHQgKz0gIiwiOworICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3ZWlnaHRzW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIFBpY2sgY29udmVydChPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBQaWNrKSByZXR1cm4gKFBpY2spb2JqOworICAgICAgICByZXR1cm4gbmV3IExpdGVyYWwob2JqLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICB9CisgICAgKi8KKyAgICAvLyBVc2VmdWwgc3RhdGljcworICAgIAorICAgIHN0YXRpYyBwdWJsaWMgaW50IHBpY2soUmFuZG9tIHJhbmRvbSwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHJldHVybiBzdGFydCArIChpbnQpKHJhbmRvbS5uZXh0RG91YmxlKCkgKiAoZW5kICsgMSAtIHN0YXJ0KSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgZG91YmxlIHBpY2soUmFuZG9tIHJhbmRvbSwgZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kKSB7CisgICAgICAgIHJldHVybiBzdGFydCArIChyYW5kb20ubmV4dERvdWJsZSgpICogKGVuZCArIDEgLSBzdGFydCkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGJvb2xlYW4gcGljayhSYW5kb20gcmFuZG9tLCBkb3VibGUgcGVyY2VudCkgeworICAgICAgICByZXR1cm4gcmFuZG9tLm5leHREb3VibGUoKSA8PSBwZXJjZW50OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGludCBwaWNrKFJhbmRvbSByYW5kb20sIFVuaWNvZGVTZXQgcykgeworICAgICAgICByZXR1cm4gcy5jaGFyQXQocGljayhyYW5kb20sIDAscy5zaXplKCktMSkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBwaWNrKFJhbmRvbSByYW5kb20sIFN0cmluZ1tdIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gc291cmNlW3BpY2socmFuZG9tLCAwLCBzb3VyY2UubGVuZ3RoLTEpXTsKKyAgICB9CisgICAgCisgICAgLy8gdGhlc2UgdXRpbGl0aWVzIHJlYWxseSBvdWdodCB0byBiZSBpbiBKYXZhCisgICAgCitwdWJsaWMgc3RhdGljIGRvdWJsZVtdIHJlYWxsb2MoZG91YmxlW10gc291cmNlLCBpbnQgbmV3U2l6ZSkgeworICAgIGRvdWJsZVtdIHRlbXAgPSBuZXcgZG91YmxlW25ld1NpemVdOworICAgIGlmIChuZXdTaXplID4gc291cmNlLmxlbmd0aCkgbmV3U2l6ZSA9IHNvdXJjZS5sZW5ndGg7CisgICAgaWYgKG5ld1NpemUgIT0gMCkgU3lzdGVtLmFycmF5Y29weShzb3VyY2UsMCx0ZW1wLDAsbmV3U2l6ZSk7CisgICAgcmV0dXJuIHRlbXA7Cit9CisgICAgCitwdWJsaWMgc3RhdGljIGludFtdIHJlYWxsb2MoaW50W10gc291cmNlLCBpbnQgbmV3U2l6ZSkgeworICAgIGludFtdIHRlbXAgPSBuZXcgaW50W25ld1NpemVdOworICAgIGlmIChuZXdTaXplID4gc291cmNlLmxlbmd0aCkgbmV3U2l6ZSA9IHNvdXJjZS5sZW5ndGg7CisgICAgaWYgKG5ld1NpemUgIT0gMCkgU3lzdGVtLmFycmF5Y29weShzb3VyY2UsMCx0ZW1wLDAsbmV3U2l6ZSk7CisgICAgcmV0dXJuIHRlbXA7Cit9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBQaWNrW10gcmVhbGxvYyhQaWNrW10gc291cmNlLCBpbnQgbmV3U2l6ZSkgeworICAgICAgICBQaWNrW10gdGVtcCA9IG5ldyBQaWNrW25ld1NpemVdOworICAgICAgICBpZiAobmV3U2l6ZSA+IHNvdXJjZS5sZW5ndGgpIG5ld1NpemUgPSBzb3VyY2UubGVuZ3RoOworICAgICAgICBpZiAobmV3U2l6ZSAhPSAwKSBTeXN0ZW0uYXJyYXljb3B5KHNvdXJjZSwwLHRlbXAsMCxuZXdTaXplKTsKKyAgICAgICAgcmV0dXJuIHRlbXA7CisgICAgfQorICAgIAorICAgIC8vIHRlc3QgdXRpbGl0aWVzCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhcHBlbmQoU3RyaW5nQnVmZmVyIHRhcmdldCwgU3RyaW5nIHRvQWRkLCBTdHJpbmdCdWZmZXIgcXVvdGVCdWZmZXIpIHsKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUodGFyZ2V0LCAoaW50KS0xLCB0cnVlLCBmYWxzZSwgcXVvdGVCdWZmZXIpOyAvLyBjbG9zZSBwcmV2aW91cyBxdW90ZQorICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXCIiICsgdG9BZGQgKyAiXCIiKTsKKyAgICAgICAgdGFyZ2V0LmFwcGVuZCh0b0FkZCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhcHBlbmRRdW90ZWQoU3RyaW5nQnVmZmVyIHRhcmdldCwgU3RyaW5nIHRvQWRkLCBTdHJpbmdCdWZmZXIgcXVvdGVCdWZmZXIpIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlwiIiArIHRvQWRkICsgIlwiIik7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHRhcmdldCwgdG9BZGQsIGZhbHNlLCBmYWxzZSwgcXVvdGVCdWZmZXIpOworICAgIH0KKworICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBNYXRjaEhhbmRsZXIgeworICAgICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoYW5kbGVTdHJpbmcoU3RyaW5nIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpOworICAgICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoYW5kbGVTZXF1ZW5jZShTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCk7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGhhbmRsZUFsdGVybmF0aW9uKFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0KTsKKyAgICAgICAgICAgIAorICAgIH0KKyAgICAqLworICAgIC8qCisgICAgLy8gcmVkaXN0cmlidXRlcyByYW5kb20gdmFsdWUKKyAgICAvLyB2YWx1ZXMgYXJlIHN0aWxsIGJldHdlZW4gMCBhbmQgMSwgYnV0IHdpdGggYSBkaWZmZXJlbnQgZGlzdHJpYnV0aW9uCisgICAgcHVibGljIGludGVyZmFjZSBTcHJlYWQgeworICAgICAgICBwdWJsaWMgZG91YmxlIHNwcmVhZChkb3VibGUgdmFsdWUpOworICAgIH0KKyAgICAKKyAgICAvLyBnaXZlIHRoZSB3ZWlnaHQgZm9yIHRoZSBoaWdoIGVuZC4KKyAgICAvLyB2YWx1ZXMgYXJlIGxpbmVhcmx5IHNjYWxlZCBhY2NvcmRpbmcgdG8gdGhlIHdlaWdodC4KKyAgICBzdGF0aWMgcHVibGljIGNsYXNzIFNpbXBsZVNwcmVhZCBpbXBsZW1lbnRzIFNwcmVhZCB7CisgICAgICAgIHN0YXRpYyBmaW5hbCBTcHJlYWQgRkxBVCA9IG5ldyBTaW1wbGVTcHJlYWQoMS4wKTsKKyAgICAgICAgYm9vbGVhbiBmbGF0ID0gZmFsc2U7CisgICAgICAgIGRvdWJsZSBhYSwgYmIsIGNjOworICAgICAgICBwdWJsaWMgU2ltcGxlU3ByZWFkKGRvdWJsZSBtYXhXZWlnaHQpIHsgICAKKyAgICAgICAgICAgIGlmIChtYXhXZWlnaHQgPiAwLjk5OSAmJiBtYXhXZWlnaHQgPCAxLjAwMSkgeworICAgICAgICAgICAgICAgIGZsYXQgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsgCisgICAgICAgICAgICAgICAgZG91YmxlIHEgPSAobWF4V2VpZ2h0IC0gMS4wKTsKKyAgICAgICAgICAgICAgICBhYSA9IC0xL3E7CisgICAgICAgICAgICAgICAgYmIgPSAxLyhxKnEpOworICAgICAgICAgICAgICAgIGNjID0gKDIuMCtxKS9xOworICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgZG91YmxlIHNwcmVhZChkb3VibGUgdmFsdWUpIHsKKyAgICAgICAgICAgIGlmIChmbGF0KSByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICB2YWx1ZSA9IGFhICsgTWF0aC5zcXJ0KGJiICsgY2MqdmFsdWUpOworICAgICAgICAgICAgaWYgKHZhbHVlIDwgMC4wKSByZXR1cm4gMC4wOyAgICAvLyBjYXRjaCBtYXRoIGdvcnAKKyAgICAgICAgICAgIGlmICh2YWx1ZSA+PSAxLjApIHJldHVybiAxLjA7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBpbnQgcGljayhTcHJlYWQgc3ByZWFkLCBSYW5kb20gcmFuZG9tLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHN0YXJ0ICsgKGludCkoc3ByZWFkLnNwcmVhZChyYW5kb20ubmV4dERvdWJsZSgpKSAqIChlbmQgKyAxIC0gc3RhcnQpKTsKKyAgICB9CisgICAgCisgICAqLworICAgIAorCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUXVvdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9RdW90ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGQ2YWIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUXVvdGVyLmphdmEKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUXVvdGVyIHsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gcXVvdGluZyA9IGZhbHNlOworICAgIHByb3RlY3RlZCBTdHJpbmdCdWZmZXIgb3V0cHV0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIAorICAgIHB1YmxpYyB2b2lkIHNldFF1b3RpbmcoYm9vbGVhbiB2YWx1ZSkgeworICAgICAgICBxdW90aW5nID0gdmFsdWU7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzUXVvdGluZygpIHsKKyAgICAgICAgcmV0dXJuIHF1b3Rpbmc7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgeworICAgICAgICBxdW90aW5nID0gZmFsc2U7CisgICAgICAgIG91dHB1dC5zZXRMZW5ndGgoMCk7CisgICAgfQorICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gb3V0cHV0Lmxlbmd0aCgpOworICAgIH0KKyAgICBwdWJsaWMgUXVvdGVyIGFwcGVuZChTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBRdW90ZXIgYXBwZW5kKGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCkpOworICAgIH0KKyAgICAvLyB3YXJuaW5nLCBhbGxvd3MgYWNjZXNzIHRvIGludGVybmFscworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHNldFF1b3RpbmcoZmFsc2UpOyAvLyBmaW5pc2ggcXVvdGluZworICAgICAgICByZXR1cm4gb3V0cHV0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgc3RhbmRhcmQgSUNVIHJ1bGUgcXVvdGluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUnVsZVF1b3RlciBleHRlbmRzIFF1b3RlciB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHF1b3RlQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBwdWJsaWMgdm9pZCBzZXRRdW90aW5nKGJvb2xlYW4gdmFsdWUpIHsKKyAgICAgICAgICAgIGlmIChxdW90aW5nID09IHZhbHVlKSByZXR1cm47CisgICAgICAgICAgICBpZiAocXVvdGluZykgeyAvLyBzdG9wIHF1b3RpbmcKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShvdXRwdXQsIChpbnQpLTEsIHRydWUsIGZhbHNlLCBxdW90ZUJ1ZmZlcik7IC8vIGNsb3NlIHByZXZpb3VzIHF1b3RlCisgICAgICAgICAgICB9CisgICAgICAgICAgICBxdW90aW5nID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFF1b3RlciBhcHBlbmQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJcIiIgKyBzICsgIlwiIik7CisgICAgICAgICAgICBpZiAocXVvdGluZykgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKG91dHB1dCwgcywgZmFsc2UsIGZhbHNlLCBxdW90ZUJ1ZmZlcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQocyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9SZWxhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUmVsYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTJlOGE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUmVsYXRpb24uamF2YQpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogTWFyayBEYXZpcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKKy8qKgorICogQSBSZWxhdGlvbiBpcyBhIHNldCBvZiBtYXBwaW5ncyBmcm9tIGtleXMgdG8gdmFsdWVzLgorICogVW5saWtlIE1hcCwgdGhlcmUgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgYSBzaW5nbGUgdmFsdWUgcGVyIGtleS4KKyAqIFRoZSBNYXAtbGlrZSBBUElzIHJldHVybiBjb2xsZWN0aW9ucyBmb3IgdmFsdWVzLgorICogQGF1dGhvciBtZWRhdmlzCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgUmVsYXRpb24geworICAgIHByaXZhdGUgTWFwIG07CisgICAgcHJpdmF0ZSBDb2xsZWN0aW9uRmFjdG9yeSBzdWJjb2xsZWN0aW9uOworCisgICAgcHVibGljIFJlbGF0aW9uKE1hcCBtYWluTWFwLCBDb2xsZWN0aW9uRmFjdG9yeSBzdWJjb2xsZWN0aW9uKSB7CisgICAgICAgIG0gPSBtYWluTWFwOworICAgICAgICBpZiAoc3ViY29sbGVjdGlvbiA9PSBudWxsKSBzdWJjb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb25NYWtlcihudWxsKTsKKyAgICAgICAgdGhpcy5zdWJjb2xsZWN0aW9uID0gc3ViY29sbGVjdGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgbS5jbGVhcigpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0tleShPYmplY3Qga2V5KSB7CisgICAgICAgIHJldHVybiBtLmNvbnRhaW5zS2V5KGtleSk7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zVmFsdWUoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHJldHVybiBtLmNvbnRhaW5zVmFsdWUodmFsdWUpOworICAgIH0KKyAgICBwdWJsaWMgU2V0IGVudHJ5U2V0KCkgeworICAgICAgICByZXR1cm4gbS5lbnRyeVNldCgpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICByZXR1cm4gbS5lcXVhbHMob2JqKTsKKyAgICB9CisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIG0uaGFzaENvZGUoKTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKyAgICAgICAgcmV0dXJuIG0uaXNFbXB0eSgpOworICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0IHJlbW92ZShPYmplY3Qga2V5KSB7CisgICAgICAgIHJldHVybiBtLnJlbW92ZShrZXkpOworICAgIH0KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIHJldHVybiBtLnNpemUoKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIG0udG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHVibGljIFNldCBrZXlTZXQoKSB7CisgICAgICAgIHJldHVybiBtLmtleVNldCgpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIGFkZEFsbChSZWxhdGlvbiB0KSB7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSB0LmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBhZGQoa2V5LCB0LmdldChrZXkpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIHB1YmxpYyBDb2xsZWN0aW9uIHZhbHVlcygpIHsKKyAgICAgICAgcmV0dXJuIG0udmFsdWVzKCk7CisgICAgfQorICAgIHB1YmxpYyBDb2xsZWN0aW9uIGdldChPYmplY3Qga2V5LCBDb2xsZWN0aW9uIG91dHB1dCkgeworICAgICAgICBvdXRwdXQuYWRkQWxsKChDb2xsZWN0aW9uKW0uZ2V0KGtleSkpOworICAgICAgICByZXR1cm4gb3V0cHV0OworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBhZGQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIENvbGxlY3Rpb24gbyA9IChDb2xsZWN0aW9uKSBtLmdldChrZXkpOworICAgICAgICBpZiAobyA9PSBudWxsKSBtLnB1dChrZXksIG8gPSBzdWJjb2xsZWN0aW9uLm1ha2UoKSk7CisgICAgICAgIG8uYWRkKHZhbHVlKTsKKyAgICB9CisgICAgcHVibGljIEl0ZXJhdG9yIGl0ZXJhdG9yKCkgeworICAgICAgICByZXR1cm4gbS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgIH0KKyAgICBwdWJsaWMgaW50ZXJmYWNlIENvbGxlY3Rpb25GYWN0b3J5IHsKKyAgICAgICAgQ29sbGVjdGlvbiBtYWtlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBqdXN0IHRlbXBvcmFyeSwgYW5kIG1heSBjaGFuZ2UhIQorICAgICAqIEBhdXRob3IgbWVkYXZpcworICAgICAqCisgICAgICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAgICAgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbGxlY3Rpb25NYWtlciBpbXBsZW1lbnRzIENvbGxlY3Rpb25GYWN0b3J5IHsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFTSCA9IDAsIFRSRUUgPSAxOworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3IgY29tcGFyYXRvciA9IG51bGw7CisgICAgICAgIHByaXZhdGUgaW50IHR5cGUgPSBIQVNIOworCisgICAgICAgIHB1YmxpYyBDb2xsZWN0aW9uTWFrZXIoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbGxlY3Rpb25NYWtlcihDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbGxlY3Rpb24gbWFrZSgpIHsKKyAgICAgICAgICAgIGlmIChjb21wYXJhdG9yICE9IG51bGwpIHJldHVybiBuZXcgVHJlZVNldChjb21wYXJhdG9yKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gSEFTSCkgcmV0dXJuIG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICBlbHNlIHJldHVybiBuZXcgVHJlZVNldCgpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1NvcnRlZEJhZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvU29ydGVkQmFnLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcwZTcxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1NvcnRlZEJhZy5qYXZhCkBAIC0wLDAgKzEsMTQyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBNYXJrIERhdmlzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqL3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisKKy8qKgorICogQSBjb2xsZWN0aW9uIHRoYXQgaXMgbGlrZSBhIHNvcnRlZCBzZXQsIGV4Y2VwdCB0aGF0IGl0IGFsbG93cworICogbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBjb21wYXJlIGFzIGVxdWFsCisgKiBAYXV0aG9yIG1lZGF2aXMKKyAqLworLy8gVE9ETyByZXBsYWNlIHVzZSBvZiBTZXQgd2l0aCBhIGNvbGxlY3Rpb24gdGhhdCB0YWtlcyBhbiBFcXVhdG9yCitwdWJsaWMgY2xhc3MgU29ydGVkQmFnIGltcGxlbWVudHMgQ29sbGVjdGlvbiB7CisgICAgLyoqCisgICAgICogQSBtYXAgb2Ygc2V0cywgd2hlcmUgZWFjaCBjb3JyZXNwb25kcyB0byBvbmUgc29ydGVkIGVsZW1lbnQuCisgICAgICogVGhlIHNldHMgYXJlIG5ldmVyIGVtcHR5CisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgbTsKKyAgICBwcml2YXRlIGludCBzaXplOworCisgICAgcHVibGljIFNvcnRlZEJhZyhDb21wYXJhdG9yIGMpIHsKKyAgICAgICAgbSA9IG5ldyBUcmVlTWFwKGMpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBhZGQoT2JqZWN0IHMpIHsKKyAgICAgICAgU2V0IG8gPSAoU2V0KW0uZ2V0KHMpOworICAgICAgICBpZiAobyA9PSBudWxsKSB7CisgICAgICAgICAgICBvID0gbmV3IEhhc2hTZXQoMSk7CisgICAgICAgICAgICBtLnB1dChzLG8pOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gby5hZGQocyk7CisgICAgICAgIGlmIChyZXN1bHQpIHNpemUrKzsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcHVibGljIEl0ZXJhdG9yIGl0ZXJhdG9yKCkgeworICAgICAgICByZXR1cm4gbmV3IE15SXRlcmF0b3IoKTsKKyAgICB9CisgICAgc3RhdGljIEl0ZXJhdG9yIEVNUFRZX0lURVJBVE9SID0gbmV3IEhhc2hTZXQoKS5pdGVyYXRvcigpOworICAgIHByaXZhdGUgY2xhc3MgTXlJdGVyYXRvciBpbXBsZW1lbnRzIEl0ZXJhdG9yIHsKKyAgICAgICAgcHJpdmF0ZSBJdGVyYXRvciBtYXBJdGVyYXRvciA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgcHJpdmF0ZSBJdGVyYXRvciBzZXRJdGVyYXRvciA9IG51bGw7CisKKyAgICAgICAgcHJpdmF0ZSBNeUl0ZXJhdG9yKCkgeworICAgICAgICAgICAgbWFwSXRlcmF0b3IgPSBtLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBzZXRJdGVyYXRvciA9IGdldFNldEl0ZXJhdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBJdGVyYXRvciBnZXRTZXRJdGVyYXRvcigpIHsKKyAgICAgICAgICAgIGlmICghbWFwSXRlcmF0b3IuaGFzTmV4dCgpKSByZXR1cm4gRU1QVFlfSVRFUkFUT1I7CisgICAgICAgICAgICByZXR1cm4gKChTZXQpbS5nZXQobWFwSXRlcmF0b3IubmV4dCgpKSkuaXRlcmF0b3IoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworICAgICAgICAgICAgcmV0dXJuIHNldEl0ZXJhdG9yLmhhc05leHQoKSB8fCBtYXBJdGVyYXRvci5oYXNOZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBuZXh0KCkgeworICAgICAgICAgICAgaWYgKCFzZXRJdGVyYXRvci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvciA9IGdldFNldEl0ZXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc2V0SXRlcmF0b3IubmV4dCgpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIG0uY2xlYXIoKTsKKyAgICB9CisgICAgcHVibGljIGludCBzaXplKCkgeworICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKyAgICAgICAgcmV0dXJuIHNpemUgPT0gMDsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoT2JqZWN0IG8pIHsKKyAgICAgICAgU2V0IHNldCA9IChTZXQpbS5nZXQobyk7CisgICAgICAgIGlmIChzZXQgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc2V0LmNvbnRhaW5zKG8pOworICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0W10gdG9BcnJheSgpIHsKKyAgICAgICAgcmV0dXJuIHRvQXJyYXkobmV3IE9iamVjdFtzaXplXSk7CisgICAgfQorICAgIHB1YmxpYyBPYmplY3RbXSB0b0FycmF5KE9iamVjdFtdIGEpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGl0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIGFbY291bnQrK10gPSBpdC5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGE7CisgICAgfQorICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGphdmEudXRpbC5Db2xsZWN0aW9uI3JlbW92ZShqYXZhLmxhbmcuT2JqZWN0KQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHJlbW92ZShPYmplY3QgbykgeworICAgICAgICBTZXQgc2V0ID0gKFNldCltLmdldChvKTsKKyAgICAgICAgaWYgKHNldCA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghc2V0LnJlbW92ZShvKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoc2V0LnNpemUoKSA9PSAwKSBtLnJlbW92ZShvKTsKKyAgICAgICAgc2l6ZS0tOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNBbGwoQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBpZiAoIWNvbnRhaW5zKGl0Lm5leHQoKSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gYWRkQWxsKENvbGxlY3Rpb24gYykgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgaWYgKGFkZChpdC5uZXh0KCkpKSByZXN1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIHJlbW92ZUFsbChDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOyApIHsKKyAgICAgICAgICAgIGlmIChyZW1vdmUoaXQubmV4dCgpKSkgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiByZXRhaW5BbGwoQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIC8vIFdBUk5JTkc6IHRoaXMgbWF5IG5vdCB3b3JrIGlmIHRoZSBjb21wYXJhdG9yIGRvZXMgbm90IGRpc3Rpbmd1aXNoCisgICAgICAgIC8vIGFsbCBpdGVtcyB0aGF0IGFyZSBlcXVhbHMoKS4KKyAgICAgICAgU2V0IHN0dWZmVG9SZW1vdmUgPSBuZXcgSGFzaFNldCgpOyAvLyBoYXZlIHRvIGRvIHRoaXMgc2luY2UgaXRlcmF0b3IgbWF5IG5vdCBhbGxvdyByZW1vdmFsIQorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOyApIHsKKyAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKCFjLmNvbnRhaW5zKGl0ZW0pKSBzdHVmZlRvUmVtb3ZlLmFkZChpdGVtKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVtb3ZlQWxsKHN0dWZmVG9SZW1vdmUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1N0cmluZ1Rva2VuaXplclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1N0cmluZ1Rva2VuaXplclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTQyNDYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvU3RyaW5nVG9rZW5pemVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTQyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFN0cmluZ1Rva2VuaXplciBjbGFzcworKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2Ugb2N0IDI2IDIwMDIKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nVG9rZW5pemVyVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7IAorICAgICAgLy8gY29uc3RydWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIAorICAgICAgLyoqCisgICAgICAqIENvbnN0cnVjdG9yCisgICAgICAqLworICAgICAgcHVibGljIFN0cmluZ1Rva2VuaXplclRlc3QoKQorICAgICAgeworICAgICAgfQorICAKKyAgICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyBjb25zdHJ1Y3RvcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0b3JzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAidGhpc1x0aXNcbmFccnN0cmluZ1xmdGVzdGluZ1x0U3RyaW5nVG9rZW5pemVyXG5jb25zdHJ1Y3RvcnMhIjsKKyAgICAgICAgU3RyaW5nIGRlbGltaXRlciA9ICIgXHRcblxyXGYiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHsidGhpcyIsICJpcyIsICJhIiwgInN0cmluZyIsICJ0ZXN0aW5nIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdHJpbmdUb2tlbml6ZXIiLCAiY29uc3RydWN0b3JzISJ9OworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgZGVmYXVsdHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIpOworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3RkZWxpbWl0ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ZGVsaW1pdGVycmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgIFVuaWNvZGVTZXQgZGVsaW1pdGVyc2V0ID0gbmV3IFVuaWNvZGVTZXQoIlsiICsgZGVsaW1pdGVyICsgIl0iLCBmYWxzZSk7CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdGRlbGltaXRlcnNldCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXJzZXQpOworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3RkZWxpbWl0ZXJzZXRyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmICghKGRlZmF1bHRzdC5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtpXSkgCisgICAgICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtpXSkKKyAgICAgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVycmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2ldKQorICAgICAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJzZXQubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbaV0pCisgICAgICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnNldHJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtpXSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHdpdGggZGVmYXVsdCBkZWxpbWl0ZXIgZ2l2ZXMgd3JvbmcgcmVzdWx0cyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZXhwZWN0ZWQxW10gPSB7InRoaXMiLCAiXHQiLCAiaXMiLCAiXG4iLCAiYSIsICJcciIsICJzdHJpbmciLCAiXGYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0aW5nIiwgIlx0IiwgIlN0cmluZ1Rva2VuaXplciIsICJcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cnVjdG9ycyEifTsKKyAgICAgICAgc3RkZWxpbWl0ZXJyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyLCB0cnVlKTsKKyAgICAgICAgc3RkZWxpbWl0ZXJzZXRyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyc2V0LCB0cnVlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZDEubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoIShzdGRlbGltaXRlcnJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZDFbaV0pCisgICAgICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnNldHJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZDFbaV0pKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB3aXRoIGRlZmF1bHQgZGVsaW1pdGVyIGFuZCBkZWxpbWl0ZXIgdG9rZW5zIGdpdmVzIHdyb25nIHJlc3VsdHMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdGRlbGltaXRlciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCAoU3RyaW5nKW51bGwpOworICAgICAgICBzdGRlbGltaXRlcnJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCAoU3RyaW5nKW51bGwsIGZhbHNlKTsKKyAgICAgICAgZGVsaW1pdGVyc2V0ID0gbnVsbDsKKyAgICAgICAgc3RkZWxpbWl0ZXJzZXQgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyc2V0KTsKKyAgICAgICAgc3RkZWxpbWl0ZXJzZXRyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyc2V0LCBmYWxzZSk7CisgICAgICAgIAorICAgICAgICBpZiAoIShzdGRlbGltaXRlci5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpCisgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVycmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikKKyAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJzZXQubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKQorICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnNldHJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpKSkgeworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHdpdGggbnVsbCBkZWxpbWl0ZXIgZ2l2ZXMgd3JvbmcgcmVzdWx0cyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBkZWxpbWl0ZXIgPSAiIjsKKyAgICAgICAgc3RkZWxpbWl0ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgc3RkZWxpbWl0ZXJyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyLCBmYWxzZSk7CisgICAgICAgIGRlbGltaXRlcnNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIHN0ZGVsaW1pdGVyc2V0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcnNldCk7CisgICAgICAgIHN0ZGVsaW1pdGVyc2V0cmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcnNldCwgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKCEoc3RkZWxpbWl0ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKQorICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpCisgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyc2V0Lm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikKKyAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJzZXRyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB3aXRoIGVtcHR5IGRlbGltaXRlciBnaXZlcyB3cm9uZyByZXN1bHRzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZWZhdWx0c3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKG51bGwpOworICAgICAgICAgICAgZXJybG4oIm51bGwgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBDb25zdHJ1Y3RvciB3aXRoIG51bGwgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdGRlbGltaXRlciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobnVsbCwgZGVsaW1pdGVyKTsKKyAgICAgICAgICAgIGVycmxuKCJudWxsIHN0cmluZyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogQ29uc3RydWN0b3Igd2l0aCBudWxsIHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgc3RkZWxpbWl0ZXJyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKG51bGwsIGRlbGltaXRlciwgZmFsc2UpOworICAgICAgICAgICAgZXJybG4oIm51bGwgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBDb25zdHJ1Y3RvciB3aXRoIG51bGwgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdGRlbGltaXRlcnNldCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobnVsbCwgZGVsaW1pdGVyc2V0KTsKKyAgICAgICAgICAgIGVycmxuKCJudWxsIHN0cmluZyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogQ29uc3RydWN0b3Igd2l0aCBudWxsIHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgc3RkZWxpbWl0ZXJzZXRyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKG51bGwsIGRlbGltaXRlcnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgICAgICBlcnJsbigibnVsbCBzdHJpbmcgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IENvbnN0cnVjdG9yIHdpdGggbnVsbCBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyBzdXBwbGVtZW50YXJ5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnkoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJibXAgc3RyaW5nIFx1ZDgwMCB3aXRoIGEgdW5tYXRjaGVkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIiOworICAgICAgICBTdHJpbmcgZGVsaW1pdGVyID0gIlx1ZDgwMFx1ZGMwMCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0ge3N0cn07CisgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFswXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBwYXJzaW5nIFwiIiArIFV0aWxpdHkuaGV4KHN0cikgKyAiXCIiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHRva2VucyBleGNlZWRlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIGRlbGltaXRlciA9ICJcdWQ4MDAiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQxW10gPSB7ImJtcCBzdHJpbmcgIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHdpdGggYSB1bm1hdGNoZWQgc3Vycm9nYXRlIGNoYXJhY3RlciJ9OworICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB3aGlsZSAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZDFbaSArK10pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHBhcnNpbmcgXCIiICsgVXRpbGl0eS5oZXgoc3RyKSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgdG9rZW5zIGV4Y2VlZGVkIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0ciA9ICJzdHJpbmcgXHVkODAwXHVkYzAwIHdpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIiOworICAgICAgICBkZWxpbWl0ZXIgPSAiXHVkODAwIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkMltdID0ge3N0cn07CisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZDJbMF0pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgcGFyc2luZyBcIiIgKyBVdGlsaXR5LmhleChzdHIpICsgIlwiIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB0b2tlbnMgZXhjZWVkZWQgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAKKyAgICAgICAgZGVsaW1pdGVyID0gIlx1ZDgwMFx1ZGMwMCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZDNbXSA9IHsic3RyaW5nICIsICIgd2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciJ9OworICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgaSA9IDA7CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkM1tpICsrXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgcGFyc2luZyBcIiIgKyBVdGlsaXR5LmhleChzdHIpICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB0b2tlbnMgZXhjZWVkZWQgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RyID0gIlx1ZDgwMCBcdWQ4MDBcdWRjMDAgXHVkODAwIFx1ZDgwMFx1ZGMwMCI7CisgICAgICAgIGRlbGltaXRlciA9ICJcdWQ4MDAiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ0W10gPSB7IiBcdWQ4MDBcdWRjMDAgIiwgIiBcdWQ4MDBcdWRjMDAifTsKKyAgICAgICAgaSA9IDA7CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkNFtpICsrXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgcGFyc2luZyBcIiIgKyBVdGlsaXR5LmhleChzdHIpICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB0b2tlbnMgZXhjZWVkZWQgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZGVsaW1pdGVyID0gIlx1ZDgwMFx1ZGMwMCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZDVbXSA9IHsiXHVkODAwICIsICIgXHVkODAwICJ9OworICAgICAgICBpID0gMDsKKyAgICAgICAgd2hpbGUgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWQ1W2kgKytdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBwYXJzaW5nIFwiIiArIFV0aWxpdHkuaGV4KHN0cikgKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHRva2VucyBleGNlZWRlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAKKyAgICAgIC8qKgorICAgICAgKiBUZXN0aW5nIG5leHQgYXBpCisgICAgICAqLworICAgICAgcHVibGljIHZvaWQgVGVzdE5leHROb25EZWxpbWl0ZXJUb2tlbigpCisgICAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiICAsICAxIDIgMyAgQUhISEhIISA1LjUgNiA3ICAgICwgICAgICAgIDhcbiI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0geyIsIiwgIjEiLCAiMiIsICIzIiwgIkFISEhISCEiLCAiNS41IiwgIjYiLCAiNyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCIsICI4XG4ifTsKKyAgICAgICAgU3RyaW5nIGRlbGltaXRlciA9ICIgIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmdUb2tlbml6ZXIgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIGludCBjdXJydG9rZW4gPSAwOworICAgICAgICB3aGlsZSAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtjdXJydG9rZW5dKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciB0b2tlbiBtaXNtYXRjaCwgZXhwZWN0ZWQgIiArIGV4cGVjdGVkW2N1cnJ0b2tlbl0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycnRva2VuICsrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGN1cnJ0b2tlbiAhPSBleHBlY3RlZC5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGNvcnJlY3QgbnVtYmVyIG9mIHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKCIiLCBkZWxpbWl0ZXIpOworICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiRW1wdHkgc3RyaW5nIHNob3VsZCBub3QgaGF2ZSBhbnkgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRva2VuaXplci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZXJybG4oIkVtcHR5IHN0cmluZyBzaG91bGQgbm90IGhhdmUgYW55IHRva2VucyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IGVtcHR5IHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcigiLCAsIiwgIiwgIik7CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgd2l0aCBvbmx5IGRlbGltaXRlcnMgc2hvdWxkIG5vdCBoYXZlIGFueSB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgdG9rZW5pemVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHdpdGggb25seSBkZWxpbWl0ZXJzIHNob3VsZCBub3QgaGF2ZSBhbnkgdG9rZW5zIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogU3RyaW5nIHdpdGggb25seSBkZWxpbWl0ZXJzIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcigicSwgLCIsICIsICIpOworICAgICAgICBpZiAoIXRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZyB0aGF0IGRvZXMgbm90IGJlZ2luIHdpdGggZGVsaW1pdGVycyBzaG91bGQgaGF2ZSBzb21lIHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKCJxIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgdGhhdCBkb2VzIG5vdCBiZWdpbiB3aXRoIGRlbGltaXRlcnMgc2hvdWxkIGhhdmUgc29tZSB0b2tlbnMiKTsKKyAgICAgICAgfSAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRva2VuaXplci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZXJybG4oIlN0cmluZyBoYXMgb25seSBvbmUgdG9rZW4iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBTdHJpbmcgd2l0aCBvbmx5IG9uZSB0b2tlbiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKG51bGwsIGRlbGltaXRlcik7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nVG9rZW5pemVyIGNvbnN0cnVjdGVkIHdpdGggbnVsbCBzb3VyY2Ugc2hvdWxkIHRocm93IGEgbnVsbHBvaW50ZXJleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBTdHJpbmdUb2tlbml6ZXIgY29uc3RydWN0ZWQgd2l0aCBudWxsIHNvdXJjZSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCAicSIpOworICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpKSB7CisgICAgICAgICAgICBlcnJsbigiU2hvdWxkIGhhdmUgcmVjZWl2ZWQgdGhlIHNhbWUgc3RyaW5nIHdoZW4gdGhlcmUgYXJlIG5vIGRlbGltaXRlcnMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgamF2YSBjb21wYXRpYmlsaXR5LCBleGNlcHQgd2Ugc3VwcG9ydCBzdXJyb2dhdGVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROb0NvYWxlc2NlKCkgeworICAgICAgICBTdHJpbmcgc3RyID0gIlRoaXMgaXMgICBhIHRlc3RccnRvIHNlZSBpZlxud2hpdGVzcGFjZSBpcyBoYW5kbGVkIFxuXHIgdW51c3VhbGx5XHJcbiBieSBvdXIgdG9rZW5pemVyXG5cblxuISEhcGx1cyBzb21lIG90aGVyIG9kZCBvbmVzIGxpa2UgXHR0YWJcdHRhYlx0dGFiXG5hbmQgZm9ybVxmZmVlZFxmZm9vLlxuIjsKKyAgICAgICAgU3RyaW5nIGRlbGltcyA9ICIgXHRcblxyXGZcdWQ4MDBcdWRjMDAiOworCisgICAgICAgIGphdmEudXRpbC5TdHJpbmdUb2tlbml6ZXIganQgPSBuZXcgamF2YS51dGlsLlN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltcywgdHJ1ZSk7CisgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyIGl0ID0gbmV3IGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1zLCB0cnVlKTsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICB3aGlsZSAoanQuaGFzTW9yZVRva2VucygpICYmIGl0Lmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJbIiArIFN0cmluZy52YWx1ZU9mKG4rKykgKyAiXSIsIGp0Lm5leHRUb2tlbigpLCBpdC5uZXh0VG9rZW4oKSk7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0RmFsc2UoImphdmEgdG9rZW5pemVyIGhhcyBubyBtb3JlIHRva2VucyIsIGp0Lmhhc01vcmVUb2tlbnMoKSk7CisgICAgICAgIGFzc2VydEZhbHNlKCJpY3UgdG9rZW5pemVyIGhhcyBubyBtb3JlIHRva2VucyIsIGl0Lmhhc01vcmVUb2tlbnMoKSk7CisKKyAgICAgICAgU3RyaW5nIHN1ciA9ICJFdmVuXHVkODAwXHVkYzAwIHdvcmtzLlxuXG4iOworICAgICAgICBpdCA9IG5ldyBjb20uaWJtLmljdS51dGlsLlN0cmluZ1Rva2VuaXplcihzdXIsIGRlbGltcywgdHJ1ZSk7IC8vIG5vIGNvYWxlc2NlCisgICAgICAgIGFzc2VydEVxdWFscygic3VyMSIsIGl0Lm5leHRUb2tlbigpLCAiRXZlbiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoInN1cjIiLCBpdC5uZXh0VG9rZW4oKSwgIlx1ZDgwMFx1ZGMwMCIpOworICAgICAgICBhc3NlcnRFcXVhbHMoInN1cjMiLCBpdC5uZXh0VG9rZW4oKSwgIiAiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJzdXI0IiwgaXQubmV4dFRva2VuKCksICJ3b3Jrcy4iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJzdXI1IiwgaXQubmV4dFRva2VuKCksICJcbiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoInN1cjYiLCBpdC5uZXh0VG9rZW4oKSwgIlxuIik7CisgICAgICAgIGFzc2VydEZhbHNlKCJzdXI3IiwgaXQuaGFzTW9yZVRva2VucygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRlc3RpbmcgbmV4dCBhcGkKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROZXh0RGVsaW1pdGVyVG9rZW4oKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICIgICwgIDEgMiAzICBBSEhISEghIDUuNSA2IDcgICAgLCAgICAgICAgOFxuIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkW10gPSB7IiAgIiwgIiwiLCAiICAiLCAiMSIsICIgIiwgIjIiLCAiICIsICIzIiwgIiAgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFISEhISCEiLCAiICIsICI1LjUiLCAiICIsICI2IiwgIiAiLCAiNyIsICIgICAgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiLCAiICAgICAgICAiLCAiOFxuIn07CisgICAgICAgIFN0cmluZyBkZWxpbWl0ZXIgPSAiICI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIsIHRydWUsIHRydWUpOworCisgICAgICAgIGludCBjdXJydG9rZW4gPSAwOworICAgICAgICB3aGlsZSAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtjdXJydG9rZW5dKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciB0b2tlbiBtaXNtYXRjaCwgZXhwZWN0ZWQgIiArIGV4cGVjdGVkW2N1cnJ0b2tlbl0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycnRva2VuICsrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGN1cnJ0b2tlbiAhPSBleHBlY3RlZC5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGNvcnJlY3QgbnVtYmVyIG9mIHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKCIiLCBkZWxpbWl0ZXIsIHRydWUpOworICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiRW1wdHkgc3RyaW5nIHNob3VsZCBub3QgaGF2ZSBhbnkgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRva2VuaXplci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZXJybG4oIkVtcHR5IHN0cmluZyBzaG91bGQgbm90IGhhdmUgYW55IHRva2VucyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IEVtcHR5IHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcigiLCAsIiwgIiwgIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGlmICghdG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHdpdGggb25seSBkZWxpbWl0ZXJzIHNob3VsZCBoYXZlIHRva2VucyB3aGVuIGRlbGltaXRlciBpcyB0cmVhdGVkIGFzIHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKCIsICwiKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZyB3aXRoIG9ubHkgZGVsaW1pdGVycyBzaG91bGQgcmV0dXJuIGl0c2VsZiB3aGVuIGRlbGltaXRlciBpcyB0cmVhdGVkIGFzIHRva2VucyIpOworICAgICAgICB9CisKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcigicSwgLCIsICIsICIsIHRydWUsIHRydWUpOworICAgICAgICAKKyAgICAgICAgaWYgKCF0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgc2hvdWxkIGhhdmUgc29tZSB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscygicSIpIAorICAgICAgICAgICAgfHwgIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscygiLCAsIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgdG9rZW5zIGRvIG5vdCBtYXRjaCBleHBlY3RlZCByZXN1bHRzIik7CisgICAgICAgIH0gCisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobnVsbCwgZGVsaW1pdGVyLCB0cnVlKTsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdUb2tlbml6ZXIgY29uc3RydWN0ZWQgd2l0aCBudWxsIHNvdXJjZSBzaG91bGQgdGhyb3cgYSBudWxscG9pbnRlcmV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFN0cmluZ1Rva2VuaXplciBjb25zdHJ1Y3RlZCB3aXRoIG51bGwgc291cmNlIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsICJxIiwgdHJ1ZSk7CisgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTaG91bGQgaGF2ZSByZWNpZXZlZCB0aGUgc2FtZSBzdHJpbmcgd2hlbiB0aGVyZSBhcmUgbm8gZGVsaW1pdGVycyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RpbmcgY291bnQgdG9rZW5zCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvdW50VG9rZW5zKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAidGhpc1x0aXNcbmFccnN0cmluZ1xmdGVzdGluZ1x0U3RyaW5nVG9rZW5pemVyXG5jb25zdHJ1Y3RvcnMhIjsKKyAgICAgICAgU3RyaW5nIGRlbGltaXRlciA9ICIgXHRcblxyXGYiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHsidGhpcyIsICJpcyIsICJhIiwgInN0cmluZyIsICJ0ZXN0aW5nIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdHJpbmdUb2tlbml6ZXIiLCAiY29uc3RydWN0b3JzISJ9OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRyZXR1cm5bXSA9IHsidGhpcyIsICJcdCIsICJpcyIsICJcbiIsICJhIiwgIlxyIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmciLCAiXGYiLCAidGVzdGluZyIsICJcdCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RyaW5nVG9rZW5pemVyIiwgIlxuIiwgImNvbnN0cnVjdG9ycyEifTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdHJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIsIHRydWUpOworICAgICAgICBpZiAoc3QuY291bnRUb2tlbnMoKSAhPSBleHBlY3RlZC5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VudFRva2VucyBmYWlsZWQgZm9yIG5vbi1kZWxpbWl0ZXIgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0cmV0dXJuLmNvdW50VG9rZW5zKCkgIT0gZXhwZWN0ZWRyZXR1cm4ubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bnRUb2tlbnMgZmFpbGVkIGZvciBkZWxpbWl0ZXIgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmICghc3QubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbaV0pCisgICAgICAgICAgICAgICAgfHwgc3QuY291bnRUb2tlbnMoKSAhPSBleHBlY3RlZC5sZW5ndGggLSBpIC0gMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VudFRva2VucyBkZWZhdWx0IGRlbGltaXRlciBnaXZlcyB3cm9uZyByZXN1bHRzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZHJldHVybi5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmICghc3RyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRyZXR1cm5baV0pCisgICAgICAgICAgICAgICAgfHwgc3RyZXR1cm4uY291bnRUb2tlbnMoKSAhPSBleHBlY3RlZHJldHVybi5sZW5ndGggLSBpIC0gMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VudFRva2VucyB3aXRoIGRlZmF1bHQgZGVsaW1pdGVyIGFuZCBkZWxpbWl0ZXIgdG9rZW5zIGdpdmVzIHdyb25nIHJlc3VsdHMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE5leHQgdG9rZW4gd2l0aCBuZXcgZGVsaW1pdGVycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROZXh0TmV3RGVsaW1pdGVycygpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gImFiYzBkZWYxZ2hpMmprbDNtbm80cHFyMHN0dTF2d3gyeXphM2JjZDRlZmcwaGlqMWtsbTJub3AzcXJzNHR1diI7CisgICAgICAgIFN0cmluZyBkZWxpbWl0ZXJbXSA9IHsiMCIsICIxIiwgIjIiLCAiMyIsICI0In07CisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdW10gPSB7eyJhYmMiLCAicHFyIiwgImVmZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiZGVmIiwgInN0dSIsICJoaWoifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImdoaSIsICJ2d3giLCAia2xtIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJqa2wiLCAieXphIiwgIm5vcCJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibW5vIiwgImJjZCIsICJxcnMifQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIpOworICAgICAgICBpbnQgc2l6ZSA9IGV4cGVjdGVkWzBdLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGRlbGltaXRlci5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0Lm5leHRUb2tlbihkZWxpbWl0ZXJbal0pLmVxdWFscyhleHBlY3RlZFtqXVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIm5leHRUb2tlbigpIHdpdGggZGVsaW1pdGVycyBlcnJvciAiICsgaSArICIgIiArIGopOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3QuY291bnRUb2tlbnMoKSAhPSBleHBlY3RlZFtqXS5sZW5ndGggLSBpKSB7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VudFRva2VucygpIGFmdGVyIG5leHRUb2tlbigpIHdpdGggZGVsaW1pdGVycyBlcnJvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBpICsgIiAiICsgaik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyKTsKKyAgICAgICAgU3RyaW5nIGRlbGltaXRlcjFbXSA9IHsiMCIsICIyIiwgIjQifTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkMVtdID0geyJhYmMiLCAiZGVmMWdoaSIsICJqa2wzbW5vIiwgInBxciIsICJzdHUxdnd4IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieXphM2JjZCIsICJlZmciLCAiaGlqMWtsbSIsICJub3AzcXJzIiwgInR1diJ9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkMS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmICghc3QubmV4dFRva2VuKGRlbGltaXRlcjFbaSAlIGRlbGltaXRlcjEubGVuZ3RoXSkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQxW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0VG9rZW4oKSB3aXRoIGRlbGltaXRlcnMgZXJyb3IgIiArIGkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0NDIzKCkKKyAgICB7CisgICAgICAgIC8vIGJ1ZyA0NDIzOiAgYSBiYWQgaW50ZXJhY3Rpb24gYmV0d2VlbiBjb3VudFRva2VucygpIGFuZCBoYXNNb3JlVG9rZW5zKCkuCisgICAgICAgIC8vCisgICAgICAgIFN0cmluZyBzMSA9ICJUaGlzIGlzIGEgdGVzdCI7CisgICAgICAgIFN0cmluZ1Rva2VuaXplciB0enIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHMxKTsKKyAgICAgICAgaW50ICB0b2tlbkNvdW50ID0gMDsKKyAgICAgICAgCisgICAgICAgIGludCB0ID0gdHpyLmNvdW50VG9rZW5zKCk7CisgICAgICAgIGlmICh0IT0gNCkgeworICAgICAgICAgICAgZXJybG4oInR6ci5jb3VudFRva2VucygpIHJldHVybmVkICIgKyB0ICsgIi4gIEV4cGVjdGVkIDQiKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAodHpyLmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgU3RyaW5nICB0b2sgPSB0enIubmV4dFRva2VuKCk7CisgICAgICAgICAgICBpZiAodG9rLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9rZW4gd2l0aCBsZW5ndGggPT0gMCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdG9rZW5Db3VudCsrOworICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbkNvdW50ICE9IDQpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHRva2VucyBmb3VuZCA9ICIgKyB0b2tlbkNvdW50KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gUHJlY29tcHV0ZWQgdG9rZW5zIGFycmF5cyBjYW4gZ3Jvdy4gIENoZWNrIGZvciBlZGdlIGNhc2VzIGFyb3VuZAorICAgICAgICAvLyAgYm91bmRhcnkgd2hlcmUgZ3Jvd3RoIGlzIGZvcmNlZC4gIEFycmF5IGdyb3dzIGluIGluY3JlbWVudHMgb2YgMTAwIHRva2Vucy4KKyAgICAgICAgU3RyaW5nIHMyID0gIiI7CisgICAgICAgIGZvciAoaW50IGk9MTsgaTwyNTA7IGkrKykgeworICAgICAgICAgICAgczIgPSBzMiArICIgIiArIGk7CisgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIgdHpiID0gbmV3IFN0cmluZ1Rva2VuaXplcihzMik7CisgICAgICAgICAgICBpbnQgdDIgPSB0emIuY291bnRUb2tlbnMoKTsKKyAgICAgICAgICAgIGlmICh0MiAhPSBpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInR6Yi5jb3VudFRva2VucygpIHJldHVybmVkICIgKyB0ICsgIi4gIEV4cGVjdGVkICIgKyBpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgICAgIHdoaWxlICh0emIuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRvayA9IHR6Yi5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICBqKys7CisgICAgICAgICAgICAgICAgaWYgKHRvay5lcXVhbHMoSW50ZWdlci50b1N0cmluZyhqKSkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHRva2VuIHN0cmluZy4gIEV4cGVjdGVkIFwiIiArIGogKyAiXCIsIGdvdCBcIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRvayArICJcIi4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGogIT0gaSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyBudW1iZXIgb2YgdG9rZW5zLiAgRXhwZWN0ZWQgIiArIGkgKyAiLiAgR290ICIgKyBqCisgICAgICAgICAgICAgICAgICAgICAgICArICIuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdW50VG9rZW5zTm9Db2FsZXNjZSgpIHsKKyAgICAgICAgLy8gaml0dGVyYnVnIDUyMDcKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJcIlwiIjsKKyAgICAgICAgU3RyaW5nIGRlbCA9ICJcIiI7CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWwsIHRydWUpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICBTdHJpbmcgdCA9IHN0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgbG9nbG4oIlsiICsgY291bnQgKyAiXSAnIiArIHQgKyAiJyIpOworICAgICAgICAgICAgKytjb3VudDsKKwl9CisgICAgICAgIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbCwgdHJ1ZSk7CisgICAgICAgIGludCBuY291bnQgPSBzdC5jb3VudFRva2VucygpOworICAgICAgICBpbnQgeGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKHN0Lmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgU3RyaW5nIHQgPSBzdC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIHhjb3VudCArICJdICciICsgdCArICInIik7CisgICAgICAgICAgICArK3hjb3VudDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gbmNvdW50IHx8IGNvdW50ICE9IHhjb3VudCkgeworICAgICAgICAgICAgZXJybG4oImluY29uc2lzdGVudCBjb3VudHMgIiArIGNvdW50ICsgIiwgIiArIG5jb3VudCArICIsICIgKyB4Y291bnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplclRlc3QgdGVzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXJUZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICAgICAgLy8gdGVzdC5UZXN0Q2FzZUNvbXBhcmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RhYmJlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGFiYmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTAxYmQxOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RhYmJlci5qYXZhCkBAIC0wLDAgKzEsMjIzIEBACisKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVGFiYmVyIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTEVGVCA9IDAsIENFTlRFUiA9IDEsIFJJR0hUID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBBTElHTk1FTlRfTkFNRVMgPSB7IkxlZnQiLCAiQ2VudGVyIiwgIlJpZ2h0In07CisgICAgCisgICAgLyoqCisgICAgICogUmVwZWF0cyBhIHN0cmluZyBuIHRpbWVzCisgICAgICogQHBhcmFtIHNvdXJjZQorICAgICAqIEBwYXJhbSB0aW1lcworICAgICAqLworICAgIC8vIFRPRE8gLSBvcHRpbWl6ZSByZXBlYXRzIHVzaW5nIGRvdWJsaW5nPworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGVhdChTdHJpbmcgc291cmNlLCBpbnQgdGltZXMpIHsKKyAgICAgICAgaWYgKHRpbWVzIDw9IDApIHJldHVybiAiIjsKKyAgICAgICAgaWYgKHRpbWVzID09IDEpIHJldHVybiBzb3VyY2U7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoOyB0aW1lcyA+IDA7IC0tdGltZXMpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgcHJvY2VzcyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBsYXN0UG9zID0gMDsKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBsYXN0UG9zIDwgc291cmNlLmxlbmd0aCgpOyArK2NvdW50KSB7CisgICAgICAgICAgICBpbnQgcG9zID0gc291cmNlLmluZGV4T2YoJ1x0JywgbGFzdFBvcyk7CisgICAgICAgICAgICBpZiAocG9zIDwgMCkgcG9zID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgcHJvY2Vzc19maWVsZChjb3VudCwgc291cmNlLCBsYXN0UG9zLCBwb3MsIHJlc3VsdCk7CisgICAgICAgICAgICBsYXN0UG9zID0gcG9zKzE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHByZWZpeCArIHJlc3VsdC50b1N0cmluZygpICsgcG9zdGZpeDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgcHJlZml4ID0gIiI7CisgICAgcHJpdmF0ZSBTdHJpbmcgcG9zdGZpeCA9ICIiOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHByb2Nlc3NfZmllbGQoaW50IGNvdW50LCBTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nQnVmZmVyIG91dHB1dCk7CisgICAgCisgICAgcHVibGljIFRhYmJlciBjbGVhcigpIHsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNb25vVGFiYmVyIGV4dGVuZHMgVGFiYmVyIHsKKyAgICAgICAgaW50IG1pbkdhcCA9IDA7CisgICAgCisgICAgICAgIHByaXZhdGUgTGlzdCBzdG9wcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgcHJpdmF0ZSBMaXN0IHR5cGVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAKKyAgICAgICAgcHVibGljIFRhYmJlciBjbGVhcigpIHsKKyAgICAgICAgICAgIHN0b3BzLmNsZWFyKCk7CisgICAgICAgICAgICB0eXBlcy5jbGVhcigpOworICAgICAgICAgICAgbWluR2FwID0gMDsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RvcHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSBidWZmZXIuYXBwZW5kKCI7ICIpOworICAgICAgICAgICAgICAgIGJ1ZmZlcgorICAgICAgICAgICAgICAgIC5hcHBlbmQoQUxJR05NRU5UX05BTUVTWygoSW50ZWdlcil0eXBlcy5nZXQoaSkpLmludFZhbHVlKCldKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIiwiKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoc3RvcHMuZ2V0KGkpKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgdGFiIHN0b3AgYW5kIGhvdyB0byBhbGlnbiB0aGUgdGV4dCBVUCBUTyB0aGF0IHN0b3AKKyAgICAgICAgICogQHBhcmFtIHRhYlBvcworICAgICAgICAgKiBAcGFyYW0gdHlwZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE1vbm9UYWJiZXIgYWRkQWJzb2x1dGUoaW50IHRhYlBvcywgaW50IHR5cGUpIHsKKyAgICAgICAgICAgIHN0b3BzLmFkZChuZXcgSW50ZWdlcih0YWJQb3MpKTsKKyAgICAgICAgICAgIHR5cGVzLmFkZChuZXcgSW50ZWdlcih0eXBlKSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQWRkcyByZWxhdGl2ZSB0YWIgc3RvcCBhbmQgaG93IHRvIGFsaWduIHRoZSB0ZXh0IFVQIFRPIHRoYXQgc3RvcAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFRhYmJlciBhZGQoaW50IGZpZWxkV2lkdGgsIGJ5dGUgdHlwZSkgeworICAgICAgICAgICAgaW50IGxhc3QgPSBnZXRTdG9wKHN0b3BzLnNpemUoKS0xKTsKKyAgICAgICAgICAgIHN0b3BzLmFkZChuZXcgSW50ZWdlcihsYXN0ICsgZmllbGRXaWR0aCkpOworICAgICAgICAgICAgdHlwZXMuYWRkKG5ldyBJbnRlZ2VyKHR5cGUpKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldFN0b3AoaW50IGZpZWxkTnVtYmVyKSB7CisgICAgICAgICAgICBpZiAoZmllbGROdW1iZXIgPCAwKSByZXR1cm4gMDsKKyAgICAgICAgICAgIGlmIChmaWVsZE51bWJlciA+PSBzdG9wcy5zaXplKCkpIGZpZWxkTnVtYmVyID0gc3RvcHMuc2l6ZSgpIC0gMTsKKyAgICAgICAgICAgIHJldHVybiAoKEludGVnZXIpc3RvcHMuZ2V0KGZpZWxkTnVtYmVyKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgaW50IGdldFR5cGUoaW50IGZpZWxkTnVtYmVyKSB7CisgICAgICAgICAgICBpZiAoZmllbGROdW1iZXIgPCAwKSByZXR1cm4gTEVGVDsKKyAgICAgICAgICAgIGlmIChmaWVsZE51bWJlciA+PSBzdG9wcy5zaXplKCkpIHJldHVybiBMRUZUOworICAgICAgICAgICAgcmV0dXJuICgoSW50ZWdlcil0eXBlcy5nZXQoZmllbGROdW1iZXIpKS5pbnRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIHB1YmxpYyBTdHJpbmcgcHJvY2VzcyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IGxhc3RQb3MgPSAwOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoY291bnQgPSAwOyBsYXN0UG9zIDwgc291cmNlLmxlbmd0aCgpICYmIGNvdW50IDwgc3RvcHMuc2l6ZSgpOyBjb3VudCsrKSB7CisgICAgICAgICAgICAgICAgaW50IHBvcyA9IHNvdXJjZS5pbmRleE9mKCdcdCcsIGxhc3RQb3MpOworICAgICAgICAgICAgICAgIGlmIChwb3MgPCAwKSBwb3MgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBpZWNlID0gc291cmNlLnN1YnN0cmluZyhsYXN0UG9zLCBwb3MpOworICAgICAgICAgICAgICAgIGludCBzdG9wUG9zID0gZ2V0U3RvcChjb3VudCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA8IHN0b3BQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXQoIiAiLCBzdG9wUG9zIC0gcmVzdWx0Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gZml4IHR5cGUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwaWVjZSk7CisgICAgICAgICAgICAgICAgbGFzdFBvcyA9IHBvcysxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxhc3RQb3MgPCBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcobGFzdFBvcykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBwcm9jZXNzX2ZpZWxkKGludCBjb3VudCwgU3RyaW5nIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKyAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgIGludCBzdGFydFBvcyA9IGdldFN0b3AoY291bnQtMSk7CisgICAgICAgICAgICBpbnQgZW5kUG9zID0gZ2V0U3RvcChjb3VudCkgLSBtaW5HYXA7CisgICAgICAgICAgICBpbnQgdHlwZSA9IGdldFR5cGUoY291bnQpOworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBMRUZUOiAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBSSUdIVDogCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zID0gZW5kUG9zIC0gcGllY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0VOVEVSOiAKKyAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3MgPSAoc3RhcnRQb3MgKyBlbmRQb3MgLSBwaWVjZS5sZW5ndGgoKSArIDEpLzI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgZ2FwID0gc3RhcnRQb3MgLSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAoY291bnQgIT0gMCAmJiBnYXAgPCBtaW5HYXApIGdhcCA9IG1pbkdhcDsKKyAgICAgICAgICAgIGlmIChnYXAgPiAwKSBvdXRwdXQuYXBwZW5kKHJlcGVhdCgiICIsIGdhcCkpOworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChwaWVjZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVGFiYmVyIE5VTExfVEFCQkVSID0gbmV3IFRhYmJlcigpIHsKKyAgICAgICAgcHVibGljIHZvaWQgcHJvY2Vzc19maWVsZChpbnQgY291bnQsIFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgICAgICBpZiAoY291bnQgPiAwKSBvdXRwdXQuYXBwZW5kKCAiXHQiKTsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoc291cmNlLnN1YnN0cmluZyhzdGFydCwgbGltaXQpKTsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBIVE1MVGFiYmVyIGV4dGVuZHMgVGFiYmVyIHsKKyAgICAgICAgcHJpdmF0ZSBMaXN0IHBhcmFtZXRlcnMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIHNldFByZWZpeCgiPHRyPiIpOworICAgICAgICAgICAgc2V0UG9zdGZpeCgiPC90cj4iKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBzZXRQYXJhbWV0ZXJzKGludCBjb3VudCwgU3RyaW5nIHBhcmFtcykgeworICAgICAgICAJd2hpbGUgKGNvdW50ID49IHBhcmFtZXRlcnMuc2l6ZSgpKSBwYXJhbWV0ZXJzLmFkZChudWxsKTsKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuc2V0KGNvdW50LHBhcmFtcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NfZmllbGQoaW50IGNvdW50LCBTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nQnVmZmVyIG91dHB1dCkgeworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgiPHRkIik7CisgICAgICAgICAgICBTdHJpbmcgcGFyYW1zID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IHBhcmFtZXRlcnMuc2l6ZSgpKSBwYXJhbXMgPSAoU3RyaW5nKSBwYXJhbWV0ZXJzLmdldChjb3VudCk7CisgICAgICAgICAgICBpZiAocGFyYW1zICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChwYXJhbXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgiPiIpOworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCkpOworICAgICAgICAgICAgLy8gVE9ETyBRdW90ZSBzdHJpbmcKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoIjwvdGQ+Iik7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQb3N0Zml4KCkgeworICAgICAgICByZXR1cm4gcG9zdGZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFByZWZpeCgpIHsKKyAgICAgICAgcmV0dXJuIHByZWZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIFRhYmJlciBzZXRQb3N0Zml4KFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgcG9zdGZpeCA9IHN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBUYWJiZXIgc2V0UHJlZml4KFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgcHJlZml4ID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgVGFiYmVyIGFkZChpbnQgaSwgYnl0ZSBsZWZ0MikgeworICAgICAgICAvLyBkb2VzIG5vdGhpbmcgdW5sZXNzIG92ZXJyaWRkZW4KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVjZDMzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDQyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBvdGhlciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJWZXJzaW9uSW5mb1Rlc3QiLAorICAgICAgICAgICAgLy8gIklDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QiLAorICAgICAgICAgICAgLy8gdGhlc2UgdGVzdHMgZmFpbCBzaW5jZSB0aGVyZSBpcyBubyBJQ1VMb2NhbGVEYXRhLmphciB0byBzdXBwb3J0IGl0CisgICAgICAgICAgICAvLyBJQ1VSZXNvdXJlQnVuZGxlVGVzdCBzdXBlcmNlZGVzIHRoZSBJQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0CisgICAgICAgICAgICAiSUNVUmVzb3VyY2VCdW5kbGVUZXN0IiwKKyAgICAgICAgICAgICJDb21wYWN0QXJyYXlUZXN0IiwKKyAgICAgICAgICAgICJTdHJpbmdUb2tlbml6ZXJUZXN0IiwKKyAgICAgICAgICAgICJDdXJyZW5jeVRlc3QiLAorICAgICAgICAgICAgIlV0aWxpdHlUZXN0IiwKKyAgICAgICAgICAgICJUcmllVGVzdCIsCisgICAgICAgICAgICAiTG9jYWxlRGF0YVRlc3QiLAorICAgICAgICAgICAgIlVMb2NhbGVUZXN0IiwKKyAgICAgICAgICAgICJMb2NhbGVBbGlhc1Rlc3QiCisgICAgICAgIH0sCisgICAgICAgICAgICAgICJUZXN0IG1pc2NlbGxhbmVvdXMgcHVibGljIHV0aWxpdGllcyIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlV0aWwiOworfQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCTkYuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCTkYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzIzYzg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJORi5qYXZhCkBAIC0wLDAgKzEsMjQ0IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKKy8vVE9ETyBpbnRlZ3JhdGUgdGhpcyBpbnRvIHRoZSB0ZXN0IGZyYW1ld29yaworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitwdWJsaWMgY2xhc3MgVGVzdEJORiB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHRlc3RSdWxlcyA9IHsKKyAgICAgICAgIiRyb290ID0gW2FiXXszfTsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gW2FiXXszLH07IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IFthYl17Myw1fTsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gW2FiXSo7IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IFthYl0/OyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBbYWJdKzsiLAorICAgICAgICAKKyAgICAgICAgIiR1cyA9IFthLXpdOyIgKworICAgICAgICAiJHJvb3QgPSBbMC05JHVzXTsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gYSAkZm9vIGI/IDI1JSBlbmQgMzAlIHwgJGZvbyA1MCU7XHJcbiIgKworICAgICAgICAiJGZvbyA9IGN7MSw1fSAyMCU7IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IFthLXpdezEsNX1+OyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBbYS16XXs1fX47IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9ICdcXCcgKHUgfCBVMDAxMCB8IFUwMDAgJGhleCkgJGhleHs0fSA7XHJcbiIgKworICAgICAgICAiJGhleCA9IFswLTlBLUZhLWZdOyIsCisgICAgfTsKKyAgICAgICAgCisgICAgc3RhdGljIFN0cmluZyB1bmljb2RlU2V0Qk5GID0gIiIgKworICAgICIkcm9vdCA9ICRsZWFmIHwgJ1snICRzICRyb290MiAkcyAnXScgO1xyXG4iICsKKyAgICAiJHJvb3QyID0gJGxlYWYgfCAnWycgJHMgJHJvb3QzICRzICddJyB8ICgkcm9vdDMgJHMgKCRvcCAkcm9vdDMgJHMpezAsM30pIDtcclxuIiArCisgICAgIiRyb290MyA9ICRsZWFmIHwgJ1snICRzICRyb290NCAkcyAnXScgfCAoJHJvb3Q0ICRzICgkb3AgJHJvb3Q0ICRzKXswLDN9KSA7XHJcbiIgKworICAgICIkcm9vdDQgPSAkbGVhZiB8ICgkbGVhZiAkcyAoJG9wICRsZWFmICRzKXswLDN9KSA7XHJcbiIgKworICAgICIkb3AgPSAoKCcmJyB8ICctJykgJHMpPyA3MCU7IiArCisgICAgIiRsZWFmID0gJ1snICRzICRsaXN0ICRzICddJyB8ICRwcm9wO1xyXG4iICsKKyAgICAiJGxpc3QgPSAoJGNoYXIgJHMgKCctJyAkcyAkY2hhciAkcyk/IDMwJSl7MSw1fSA7XHJcbiIgKworICAgICIkcHJvcCA9ICdcXCcgKHAgfCBQKSAneycgJHMgJHByb3BOYW1lICRzICd9JyB8ICdbOicgJ14nPyAkcyAkcHJvcE5hbWUgJHMgJzpdJztcclxuIiArCisgICAgIiRuZWVkc1F1b3RlID0gW1xcLVxcXVs6d2hpdGVzcGFjZTpdWzpjb250cm9sOl1dIDtcclxuIiArCisgICAgIiRjaGFyID0gW1tcXHUwMDAwLVxcVTAwMDEwRkZGRl0tJG5lZWRzUXVvdGVdIHwgJHF1b3RlZCA7XHJcbiIgKworICAgICIkcXVvdGVkID0gJ1xcJyAoJ3UnIHwgJ1UwMDEwJyB8ICdVMDAwJyAkaGV4KSAkaGV4ezR9IDtcclxuIiArCisgICAgIiRoZXggPSBbMC05QS1GYS1mXTtcclxuIiArCisgICAgIiRzID0gJyAnPyAyMCU7XHJcbiIgKworICAgICIkcHJvcE5hbWUgPSAod2hpdGVzcGFjZSB8IHdzKSB8ICh1cHBlcmNhc2UgfCB1YykgfCAobG93ZXJjYXNlIHwgbGMpIHwgJGNhdGVnb3J5O1xyXG4iICsKKyAgICAiJGNhdGVnb3J5ID0gKChnZW5lcmFsIHwgZ2MpICRzICc9JyAkcyk/ICRjYXR2YWx1ZTtcclxuIiArCisgICAgIiRjYXR2YWx1ZSA9IChDIHwgT3RoZXIgfCBDYyB8IENvbnRyb2wgfCBDZiB8IEZvcm1hdCB8IENuIHwgVW5hc3NpZ25lZCB8IEwgfCBMZXR0ZXIpO1xyXG4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdGVzdFRva2VuaXplcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RSdWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGVzdEJORih0ZXN0UnVsZXNbaV0sIG51bGwsIDIwKTsgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlc3RCTkYodW5pY29kZVNldEJORiwgbnVsbCwgMjApOworICAgICAgICAvL3Rlc3RQYXJzZXIoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgdGVzdEJORihTdHJpbmcgcnVsZXMsIFVuaWNvZGVTZXQgY2hhcnMsIGludCBjb3VudCkgeworICAgICAgICBCTkYgYm5mID0gbmV3IEJORihuZXcgUmFuZG9tKDApLCBuZXcgUXVvdGVyLlJ1bGVRdW90ZXIoKSkKKyAgICAgICAgLmFkZFNldCgiJGNoYXJzIiwgY2hhcnMpCisgICAgICAgIC5hZGRSdWxlcyhydWxlcykKKyAgICAgICAgLmNvbXBsZXRlKCk7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCTkYiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJ1bGVzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJuZi5nZXRJbnRlcm5hbCgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSArICI6ICIgKyBibmYubmV4dCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgdGVzdE1hbnVhbCgpIHsKKyAgICAgICAgUGljayBwID0gUGljay5tYXliZSg3NSxQaWNrLnVucXVvdGVkKCJhIikpOworICAgICAgICB0ZXN0T3IocCwgMSk7CisgICAgICAgIHAgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsiIiwgImEiLCAiYmIiLCAiY2NjIn0pOworICAgICAgICB0ZXN0T3IocCwgMyk7CisgICAgICAgIHAgPSBQaWNrLnJlcGVhdCgzLCA1LCBuZXcgaW50W117MjAsIDMwLCAyMH0sICJhIik7CisgICAgICAgIHRlc3RPcihwLCA1KTsgICAgICAgIAorICAgICAgICBwID0gUGljay5jb2RlUG9pbnQoIlthLWNlXSIpOworICAgICAgICB0ZXN0Q29kZVBvaW50cyhwKTsgICAgICAgIAorICAgICAgICBwID0gUGljay5jb2RlUG9pbnQoIlthLWNlXSIpOworICAgICAgICB0ZXN0Q29kZVBvaW50cyhwKTsgICAgICAgIAorICAgICAgICBwID0gUGljay5zdHJpbmcoMiwgOCwgcCk7CisgICAgICAgIHRlc3RPcihwLDEwKTsKKyAgICAgICAgCisgICAgICAgIHAgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsiIiwgImEiLCAiYmIiLCAiY2NjIn0pOworICAgICAgICBwID0gUGljay5hbmQocCkuYW5kMihwKS5hbmQyKCImIik7CisgICAgICAgIHRlc3RNYXRjaChwLCAiYWJiJiIpOworICAgICAgICB0ZXN0TWF0Y2gocCwgImJiYSIpOworICAgICAgICAKKyAgICAgICAgLy8gdGVzdEVuZ2xpc2goKTsgICAgICAgIAorICAgIH0KKyAgICAqLworICAgIAorICAgIHN0YXRpYyB2b2lkIHRlc3RNYXRjaChQaWNrIHAsIFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgUGljay5Qb3NpdGlvbiBwcCA9IG5ldyBQaWNrLlBvc2l0aW9uKCk7CisgICAgICAgIGJvb2xlYW4gdmFsdWUgPSBwLm1hdGNoKHNvdXJjZSwgcHApOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdGNoOiAiICsgdmFsdWUgKyAiLCAiICsgcHApOyAgICAgIAorICAgIH0KKyAgICAvKgorICAgIHN0YXRpYyB2b2lkIHRlc3RQYXJzZXIoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQaWNrLlRhcmdldCB0YXJnZXQgPSBuZXcgUGljay5UYXJnZXQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYWRkUnVsZShydWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2sKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ291bnRzIHsKKyAgICAgICAgaW50W10gY291bnRzOyAgICAgICAKKyAgICAgICAgQ291bnRzKGludCBtYXgpIHsKKyAgICAgICAgICAgIGNvdW50cyA9IG5ldyBpbnRbbWF4KzFdOworICAgICAgICB9CisgICAgICAgIHZvaWQgaW5jKGludCBpbmRleCkgeworICAgICAgICAgICAgY291bnRzW2luZGV4XSsrOworICAgICAgICB9CisgICAgICAgIHZvaWQgc2hvdygpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJpbnRpbmcgQ291bnRzIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChjb3VudHNbaV0gPT0gMCkgY29udGludWU7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiOiAiICsgY291bnRzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgIiRzID0gJyAnOyIsCisgICAgICAgICIkbm91biA9IGRvZyB8IGhvdXNlIHwgZ292ZXJubWVudCB8IHdhbGwgfCBzdHJlZXQgfCB6ZWJyYTsiLAorICAgICAgICAiJGFkamVjdGl2ZSA9IHJlZCB8IGdsb3Jpb3VzIHwgc2ltcGxlIHwgbmFzdHkgfCBoZWF2eSB8IGNsZWFuOyIsCisgICAgICAgICIkYXJ0aWNsZSA9IHF1aWNrbHkgfCBvZGRseSB8IHNpbGVudGx5IHwgYm9sZGx5OyIsCisgICAgICAgICIkYWRqZWN0aXZlUGhyYXNlID0gKCRhZHZlcmIgJHMpPyA1MCUgJGFkamVjdGl2ZSogMCUgMzAlIDIwJSAxMCU7IiwKKyAgICAgICAgIiRub3VuUGhyYXNlID0gJGFydGljbGVzICRzICgkYWRqZWN0aXZlUGhyYXNlICRzKT8gMzAlICRub3VuOyIsCisgICAgICAgICIkdmVyYiA9IGdvZXMgfCBmaXNoZXMgfCB3YWxrcyB8IHNsZWVwczsiLAorICAgICAgICAiJHR2ZXJiID0gY2FycmllcyB8IGxpZnRzIHwgb3ZlcnR1cm5zIHwgaGl0cyB8IGp1bXBzIG9uOyIsCisgICAgICAgICIkY29wdWxhID0gaXMgMzAlIHwgc2VlbXMgMTAlOyIsCisgICAgICAgICIkc2VudGVuY2UxID0gJG5vdW5QaHJhc2UgJHMgJHZlcmIgJHMgKCRzICRhZHZlcmIpPyAzMCU7IiwKKyAgICAgICAgIiRzZW50ZW5jZTIgPSAkbm91blBocmFzZSAkcyAkdHZlcmIgJHMgJG5vdW5QaHJhc2UgKCRzICRhZHZlcmIpPyAzMCU7IiwKKyAgICAgICAgIiRzZW50ZW5jZTMgPSAkbm91blBocmFzZSAkcyAkY29wdWxhICRzICRhZGplY3RpdmVQaHJhc2U7IiwKKyAgICAgICAgIiRjb25qID0gYnV0IHwgYW5kIHwgb3I7IiwKKyAgICAgICAgIiRzZW50ZW5jZTQgPSAkc2VudGVuY2UxIHwgJHNlbnRlbmNlMiB8ICRzZW50ZW5jZTMgMjAlIHwgJHNlbnRlbmNlNCAkY29uaiAkc2VudGVuY2U0IDIwJTsiLAorICAgICAgICAiJHNlbnRlbmNlID0gJHNlbnRlbmNlNCAnLic7In07CisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RFbmdsaXNoKCkgeworICAgICAgICBQaWNrIHMgPSBQaWNrLnVucXVvdGVkKCIgIik7CisgICAgICAgIFBpY2sgdmVyYnMgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsiZ29lcyIsICJmaXNoZXMiLCAid2Fsa3MiLCAic2xlZXBzIn0pOworICAgICAgICBQaWNrIHRyYW5zaXRpdmUgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsiY2FycmllcyIsICJsaWZ0cyIsICJvdmVydHVybnMiLCAiaGl0cyIsICJqdW1wcyBvbiJ9KTsKKyAgICAgICAgUGljayBub3VucyA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyJkb2ciLCAiaG91c2UiLCAiZ292ZXJubWVudCIsICJ3YWxsIiwgInN0cmVldCIsICJ6ZWJyYSJ9KTsKKyAgICAgICAgUGljayBhZGplY3RpdmVzID0gUGljay5vcihuZXcgU3RyaW5nW117InJlZCIsICJnbG9yaW91cyIsICJzaW1wbGUiLCAibmFzdHkiLCAiaGVhdnkiLCAiY2xlYW4ifSk7CisgICAgICAgIFBpY2sgYXJ0aWNsZXMgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsidGhlIiwgImEifSk7CisgICAgICAgIFBpY2sgYWR2ZXJicyA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyJxdWlja2x5IiwgIm9kZGx5IiwgInNpbGVudGx5IiwgImJvbGRseSJ9KTsKKyAgICAgICAgUGljayBhZGplY3RpdmVQaHJhc2UgPSBQaWNrLmFuZCgwLjUsIFBpY2suYW5kKGFkdmVyYnMpLmFuZDIocykpLmFuZDIoYWRqZWN0aXZlcyk7CisgICAgICAgIFBpY2sgbm91blBocmFzZSA9IFBpY2suYW5kKGFydGljbGVzKS5hbmQyKHMpCisgICAgICAgICAgICAuYW5kMigwLjMsIFBpY2suYW5kKGFkamVjdGl2ZVBocmFzZSkuYW5kMihzKSkKKyAgICAgICAgICAgIC5hbmQyKG5vdW5zKTsKKyAgICAgICAgUGljayBjb3B1bGEgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsiaXMiLCAic2VlbXMifSk7CisgICAgICAgIFBpY2sgc2VudGVuY2UxID0gUGljay5hbmQobm91blBocmFzZSkuYW5kMihzKS5hbmQyKHZlcmJzKQorICAgICAgICAgICAgLmFuZDIoMC4zLCBQaWNrLmFuZChzKS5hbmQyKGFkdmVyYnMpKS5uYW1lKCJzMSIpOworICAgICAgICBQaWNrIHNlbnRlbmNlMiA9IFBpY2suYW5kKG5vdW5QaHJhc2UpLmFuZDIocykuYW5kMih0cmFuc2l0aXZlKS5hbmQyKHMpLmFuZDIobm91blBocmFzZSkKKyAgICAgICAgICAgIC5hbmQyKDAuMywgUGljay5hbmQocykuYW5kMihhZHZlcmJzKSkubmFtZSgiczIiKTsKKyAgICAgICAgUGljayBzZW50ZW5jZTMgPSBQaWNrLmFuZChub3VuUGhyYXNlKS5hbmQyKHMpLmFuZDIoY29wdWxhKS5hbmQyKHMpLmFuZDIoYWRqZWN0aXZlUGhyYXNlKS5uYW1lKCJzMyIpOworICAgICAgICBQaWNrIGNvbmogPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsiLCBidXQiLCAiLCBhbmQiLCAiLCBvciJ9KTsKKyAgICAgICAgUGljayBmb3J3YXJkID0gUGljay51bnF1b3RlZCgiZm9yd2FyZCIpOworICAgICAgICBQaWNrIHBhaXIgPSBQaWNrLmFuZChmb3J3YXJkKS5hbmQyKGNvbmopLmFuZDIocykuYW5kMihmb3J3YXJkKS5uYW1lKCJwYXJ0Iik7CisgICAgICAgIFBpY2sgc2VudGVuY2VCYXNlID0gUGljay5vcihzZW50ZW5jZTEpLm9yMihzZW50ZW5jZTIpLm9yMihzZW50ZW5jZTMpLm9yMigwLjY2NjYsIHBhaXIpLm5hbWUoInNlbnRlbmNlIik7CisgICAgICAgIHNlbnRlbmNlQmFzZS5yZXBsYWNlKGZvcndhcmQsIHNlbnRlbmNlQmFzZSk7CisgICAgICAgIFBpY2sgc2VudGVuY2UgPSBQaWNrLmFuZChzZW50ZW5jZUJhc2UpLmFuZDIoUGljay51bnF1b3RlZCgiLiIpKTsKKyAgICAgICAgUGljay5UYXJnZXQgdGFyZ2V0ID0gUGljay5UYXJnZXQubWFrZShzZW50ZW5jZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTA7ICsraSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiOiAiICsgdGFyZ2V0Lm5leHQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0T3IoUGljayBwLCBpbnQgY291bnQpIHsKKyAgICAgICAgUGljay5UYXJnZXQgdGFyZ2V0ID0gUGljay5UYXJnZXQubWFrZShwKTsKKyAgICAgICAgQ291bnRzIGNvdW50cyA9IG5ldyBDb3VudHMoY291bnQgKyAxMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IHRhcmdldC5uZXh0KCk7CisgICAgICAgICAgICBjb3VudHMuaW5jKHMubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIGNvdW50cy5zaG93KCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGVzdENvZGVQb2ludHMoUGljayBwKSB7CisgICAgICAgIFBpY2suVGFyZ2V0IHRhcmdldCA9IFBpY2suVGFyZ2V0Lm1ha2UocCk7CisgICAgICAgIENvdW50cyBjb3VudHMgPSBuZXcgQ291bnRzKDEyOCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSB0YXJnZXQubmV4dCgpOworICAgICAgICAgICAgY291bnRzLmluYyhzLmNoYXJBdCgwKSk7CisgICAgICAgIH0KKyAgICAgICAgY291bnRzLnNob3coKTsKKyAgICB9CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRSYW5kb21zKCkgeworICAgICAgICBCTkYgYm5mID0gbmV3IEJORihuZXcgUmFuZG9tKDApLCBuZXcgUXVvdGVyLlJ1bGVRdW90ZXIoKSkKKyAgICAgICAgLmFkZFJ1bGVzKCJbYS16XXsyLDV9IikuY29tcGxldGUoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGJuZi5uZXh0KCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSArICIpXHQiICsgdGVtcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHRlc3RUb2tlbml6ZXIoKSB7CisgICAgICAgIFRva2VuaXplciB0ID0gbmV3IFRva2VuaXplcigpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gc2FtcGxlcyA9IHsiYSdiJ2MgZCAjYWJjXHIgZSIsICInYSAnMTIzIDMyMSIsIAorICAgICAgICAgICAgIlxcXFwiLCAiYSdiIiwgImEnIiwgImFiYyBkZWYlP2doaSIsICIlIiwgImEiLCAiXFwgYSIsICJhJycnJ2IifTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzYW1wbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0LnNldFNvdXJjZShzYW1wbGVzW2ldKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbnB1dDogIiArIHQuZ2V0U291cmNlKCkpOworICAgICAgICAgICAgaW50IHR5cGUgPSAwOworICAgICAgICAgICAgd2hpbGUgKHR5cGUgIT0gVG9rZW5pemVyLkRPTkUpIHsKKyAgICAgICAgICAgICAgICB0eXBlID0gdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQudG9TdHJpbmcodHlwZSwgZmFsc2UpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworfQorCisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJhZ0Zvcm1hdHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJhZ0Zvcm1hdHRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkOTk2NjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0QmFnRm9ybWF0dGVyLmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCisvLyBUT0RPIGludGVncmF0ZSB0aGlzIGludG8gdGhlIHRlc3QgZnJhbWV3b3JrCisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8vIFRPRE8gY2hhbmdlIHRvIHVzZSB0ZXN0IGZyYW1ld29yaworcHVibGljIGNsYXNzIFRlc3RCYWdGb3JtYXR0ZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCB2b2lkIGdlbmVyYXRlUHJvcGVydHlBbGlhc2VzKGJvb2xlYW4gc2hvd1ZhbHVlcykgeworICAgICAgICBnZW5lcmF0ZVByb3BlcnR5QWxpYXNlcyhzaG93VmFsdWVzLCBJQ1VQcm9wZXJ0eUZhY3RvcnkubWFrZSgpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIHZvaWQgZ2VuZXJhdGVQcm9wZXJ0eUFsaWFzZXMoYm9vbGVhbiBzaG93VmFsdWVzLCBVbmljb2RlUHJvcGVydHkuRmFjdG9yeSB1cHMpIHsKKyAgICAgICAgQ29sbGF0b3Igb3JkZXIgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIFRyZWVTZXQgcHJvcHMgPSBuZXcgVHJlZVNldChvcmRlcik7CisgICAgICAgIFRyZWVTZXQgdmFsdWVzID0gbmV3IFRyZWVTZXQob3JkZXIpOworICAgICAgICBCYWdGb3JtYXR0ZXIgYmYgPSBuZXcgQmFnRm9ybWF0dGVyKCk7CisgICAgICAgIHByb3BzLmFkZEFsbCh1cHMuZ2V0QXZhaWxhYmxlTmFtZXMoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSBVbmljb2RlUHJvcGVydHkuQklOQVJZOyBpIDwgVW5pY29kZVByb3BlcnR5LkxJTUlUX1RZUEU7ICsraSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFVuaWNvZGVQcm9wZXJ0eS5nZXRUeXBlTmFtZShpKSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHByb3BzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHByb3BBbGlhcyA9IChTdHJpbmcpaXQubmV4dCgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSB1cCA9IHVwcy5nZXRQcm9wZXJ0eShwcm9wQWxpYXMpOworICAgICAgICAgICAgICAgIGludCB0eXBlID0gdXAuZ2V0VHlwZSgpOworICAgICAgICAgICAgICAgIGlmICh0eXBlICE9IGkpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocHJvcEFsaWFzICsgIlx0IiArIGJmLmpvaW4odXAuZ2V0TmFtZUFsaWFzZXMoKSkpOworICAgICAgICAgICAgICAgIGlmICghc2hvd1ZhbHVlcykgY29udGludWU7CisgICAgICAgICAgICAgICAgdmFsdWVzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gVW5pY29kZVByb3BlcnR5Lk5VTUVSSUMgfHwgdHlwZSA9PSBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWFwIHVtID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICAgICAgICAgICAgICAgICAgdW0ucHV0QWxsKHVwKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHVtLnRvU3RyaW5nKG5ldyBOdW1iZXJDb21wYXJhdG9yKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhbHVlcy5jbGVhcigpOworICAgICAgICAgICAgICAgIHZhbHVlcy5hZGRBbGwodXAuZ2V0QXZhaWxhYmxlVmFsdWVzKCkpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IHZhbHVlcy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdDIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZUFsaWFzID0gKFN0cmluZylpdDIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlx0IiArIGJmLmpvaW4odmFsdWVBbGlhcyArICJcdCIgKyB1cC5nZXRWYWx1ZUFsaWFzZXModmFsdWVBbGlhcykpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIE51bWJlckNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBpZiAobzEgPT0gbzIpIHJldHVybiAwOworICAgICAgICAgICAgaWYgKG8xID09IG51bGwpIHJldHVybiAxOworICAgICAgICAgICAgaWYgKG8yID09IG51bGwpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGRvdWJsZSBuMSA9IERvdWJsZS5wYXJzZURvdWJsZSgoU3RyaW5nKW8xKTsKKyAgICAgICAgICAgIGRvdWJsZSBuMiA9IERvdWJsZS5wYXJzZURvdWJsZSgoU3RyaW5nKW8yKTsKKyAgICAgICAgICAgIHJldHVybiBuMSA8IG4yID8gLTEgOiBuMSA+IG4yID8gMSA6IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy9yZWFkQ2hhcmFjdGVycygpOworICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5IHByb3AgPSBJQ1VQcm9wZXJ0eUZhY3RvcnkubWFrZSgpLmdldFByb3BlcnR5KCJDYW5vbmljYWxjb21iaW5pbmdjbGFzcyIpOworICAgICAgICAgICAgcHJvcC5nZXRBdmFpbGFibGVWYWx1ZXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2VuZXJhdGVQcm9wZXJ0eUFsaWFzZXModHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEJhZ0Zvcm1hdHRlciBiZiA9IG5ldyBCYWdGb3JtYXR0ZXIoKTsKKworICAgICAgICAgICAgVW5pY29kZVNldCB1cyA9IG5ldyBVbmljb2RlU2V0KCJbOmdjPW5kOl0iKTsgIAorICAgICAgICAgICAgQmFnRm9ybWF0dGVyLkNPTlNPTEUucHJpbnRsbigiWzpnYz1uZDpdIik7CisgICAgICAgICAgICBiZi5zaG93U2V0TmFtZXMoQmFnRm9ybWF0dGVyLkNPTlNPTEUsdXMpOworCisgICAgICAgICAgICB1cyA9IG5ldyBVbmljb2RlU2V0KCJbOm51bWVyaWNfdmFsdWU9MjpdIik7ICAKKyAgICAgICAgICAgIEJhZ0Zvcm1hdHRlci5DT05TT0xFLnByaW50bG4oIls6bnVtZXJpY192YWx1ZT0yOl0iKTsKKyAgICAgICAgICAgIGJmLnNob3dTZXROYW1lcyhCYWdGb3JtYXR0ZXIuQ09OU09MRSx1cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHVzID0gbmV3IFVuaWNvZGVTZXQoIls6bnVtZXJpY190eXBlPW51bWVyaWM6XSIpOyAgIAorICAgICAgICAgICAgQmFnRm9ybWF0dGVyLkNPTlNPTEUucHJpbnRsbigiWzpudW1lcmljX3R5cGU9bnVtZXJpYzpdIik7CisgICAgICAgICAgICBiZi5zaG93U2V0TmFtZXMoQmFnRm9ybWF0dGVyLkNPTlNPTEUsdXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBVbmljb2RlUHJvcGVydHkuRmFjdG9yeSB1cHMgPSBJQ1VQcm9wZXJ0eUZhY3RvcnkubWFrZSgpOworICAgICAgICAgICAgdXMgPSB1cHMuZ2V0U2V0KCJnYz1tbiIsIG51bGwsIG51bGwpOyAKKyAgICAgICAgICAgIEJhZ0Zvcm1hdHRlci5DT05TT0xFLnByaW50bG4oImdjPW1uIik7CisgICAgICAgICAgICBiZi5zaG93U2V0TmFtZXMoQmFnRm9ybWF0dGVyLkNPTlNPTEUsIHVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHRydWUpIHJldHVybjsKKyAgICAgICAgICAgIC8vc2hvd05hbWVzKCJOYW1lIiwgIi4qTUFSSy4qIik7CisgICAgICAgICAgICAvL3Nob3dOYW1lcygiTkZEIiwgImEuKyIpOworICAgICAgICAgICAgLy9zaG93TmFtZXMoIk5GRCIsIGZhbHNlKTsKKyAgICAgICAgICAgIC8vc2hvd05hbWVzKCJMb3dlcmNhc2VfTWFwcGluZyIsIGZhbHNlKTsKKyAgICAgICAgICAgIC8vVGVzdFVuaWNvZGVQcm9wZXJ0eVNvdXJjZS50ZXN0KHRydWUpOworICAgICAgICAgICAgLy9zaG93TmFtZXMoIi4qXFwgXFwtLioiKTsKKworCisgICAgICAgICAgICAvL2NoZWNrSFRNTCgpOworICAgICAgICAgICAgLy90ZXN0SXNSVEwoKTsKKyAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3RUb2tlbml6ZXIudGVzdCgpOworICAgICAgICAgICAgLy9SYW5kb21Db2xsYXRvci5nZW5lcmF0ZSgiY29sbGF0aW9uVGVzdC50eHQiLCBudWxsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0UGljay50ZXN0KCk7CisgICAgICAgICAgICAvL3ByaW50UmFuZG9tcygpOworICAgICAgICAgICAgLy9pZiAodHJ1ZSkgcmV0dXJuOworICAgICAgICAgICAgLy90ZXN0TG9jYWxlcygpOworICAgICAgICAgICAgLy9pZiAodHJ1ZSkgcmV0dXJuOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIFRlc3RDb2xsYXRvciB0YyA9IG5ldyBUZXN0Q29sbGF0b3IoKTsKKyAgICAgICAgICAgIHRjLnRlc3QoUnVsZUJhc2VkQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSwxMDAwKTsKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgICAgICAgICAgICAgIHNiLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICByYy5uZXh0UnVsZShzYik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVuZCIpOworICAgICAgIH0KKworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCB0ZXN0TG9jYWxlcygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIFNldCBzID0gbmV3IFRyZWVTZXQoQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSBsb2NhbGVzW2ldLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICBTdHJpbmcgZGxhbmcgPSBsb2NhbGVzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpOworICAgICAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBsb2NhbGVzW2ldLmdldENvdW50cnkoKTsKKyAgICAgICAgICAgIFN0cmluZyBkY291bnRyeSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheUNvdW50cnkoKTsKKyAgICAgICAgICAgIGlmIChjb3VudHJ5LmVxdWFscygiIikpIGNvbnRpbnVlOworICAgICAgICAgICAgcy5hZGQoIiIKKyAgICAgICAgICAgICAgICArICJcdCIgKyBkY291bnRyeSAKKyAgICAgICAgICAgICAgICArICJcdCIgKyBjb3VudHJ5IAorICAgICAgICAgICAgICAgICsgIlx0IiArIGRsYW5nCisgICAgICAgICAgICAgICAgKyAiXHQiICsgbGFuZyAKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgLy9Db2xsZWN0aW9uRm9ybWF0dGVyIGNmID0gbmV3IENvbGxlY3Rpb25Gb3JtYXR0ZXIoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBCYWdGb3JtYXR0ZXIub3BlblVURjhXcml0ZXIoIiIsICJjb3VudHJpZXMudHh0Iik7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBwdy5wcmludGxuKGl0Lm5leHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcHcuY2xvc2UoKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoKKyAgICAgKiBVc2UgdGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdG8gcm91bmQgZ2V0IGEgcm91bmRpbmcgdmFsdWUuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBMT0cxMCA9IE1hdGgubG9nKDEwKTsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdXNlU2lnbmlmaWNhbnREaWdpdHMoZG91YmxlIHZhbHVlLCBpbnQgZGlnaXRzKSB7CisgICAgICAgIGRvdWJsZSBsb2cxMCA9IE1hdGgubG9nKHZhbHVlKS9MT0cxMDsgLy8gbG9nW2VdCisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBSVEwgPSBuZXcgVW5pY29kZVNldCgiW1s6TDpdJltbOmJpZGkgY2xhc3M9UjpdWzpiaWRpIGNsYXNzPUFMOl1dXSIpOworICAgIAorICAgIHN0YXRpYyBib29sZWFuIGlzUlRMKExvY2FsZSBsb2MpIHsgICAgICAgIAorICAgICAgICAvLyBpbiAyLjggd2UgY2FuIHVzZSB0aGUgZXhlbXBsYXIgY2hhcmFjdGVycywgYnV0IGZvciAyLjYgd2UgaGF2ZSB0byB3b3JrIGFyb3VuZCBpdAorICAgICAgICBpbnRbXSBzY3JpcHRzID0gVVNjcmlwdC5nZXRDb2RlKGxvYyk7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpCisgICAgICAgICAgICAuYXBwbHlJbnRQcm9wZXJ0eVZhbHVlKFVQcm9wZXJ0eS5TQ1JJUFQsIHNjcmlwdHMgPT0gbnVsbCA/IFVTY3JpcHQuTEFUSU4gOiBzY3JpcHRzWzBdKQorICAgICAgICAgICAgLnJldGFpbkFsbChSVEwpLnNpemUoKSAhPSAwOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCB0ZXN0SXNSVEwoKSB7CisgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBTZXQgcyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgcy5hZGQoKGlzUlRMKGxvY2FsZXNbaV0pID8gIlIgIiA6ICJMICIpICsgbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICBJdGVyYXRvciBpdCA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGl0Lm5leHQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgdG9IVE1MID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorICAgICAgICAiYW55LWh0bWwiLCAgICAgICAgCisgICAgICAgICAgICAiJzwnID4gJyZsdDsnIDsiICsKKyAgICAgICAgICAgICInJicgPiAnJmFtcDsnIDsiICsKKyAgICAgICAgICAgICInPicgPiAnJmd0OycgOyIgKworICAgICAgICAgICAgIidcIicgPiAnJnF1b3Q7JyA7ICIsCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBmcm9tSFRNTCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgImh0bWwtYW55IiwgICAgICAgIAorICAgICAgICAgICAgIic8JyA8ICcmJ1tsTF1bVHRdJzsnIDsiICsKKyAgICAgICAgICAgICInJicgPCAnJidbYUFdW21NXVtwUF0nOycgOyIgKworICAgICAgICAgICAgIic+JyA8ICcmJ1tnR11bdFRdJzsnIDsiICsKKyAgICAgICAgICAgICInXCInIDwgJyYnW3FRXVt1VV1bb09dW3RUXSc7JyA7ICIsCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAKKyAgICBzdGF0aWMgdm9pZCBjaGVja0hUTUwoKSB7CisgICAgICAgIFN0cmluZyBmb28gPSAiJiBuIDwgYiA8IFwiYWJcIiI7CisgICAgICAgIFN0cmluZyBmaWkgPSB0b0hUTUwudHJhbnNsaXRlcmF0ZShmb28pOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluOiAiICsgZm9vKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvdXQ6ICIgKyBmaWkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluKjogIiArIGZyb21IVE1MLnRyYW5zbGl0ZXJhdGUoZmlpKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSU4qOiAiICsgZnJvbUhUTUwudHJhbnNsaXRlcmF0ZShmaWkudG9VcHBlckNhc2UoKSkpOworICAgIH0KKyAgICAvKgorICAgIHN0YXRpYyB2b2lkIHNob3dOYW1lcyhTdHJpbmcgcHJvcEFsaWFzLCBib29sZWFuIG1hdGNoZXMpIHsKKyAgICAgICAgQmFnRm9ybWF0dGVyIGJmID0gbmV3IEJhZ0Zvcm1hdHRlcigpOworICAgICAgICBVbmljb2RlU2V0IHN0dWZmOworICAgICAgICBzdHVmZiA9IG5ldyBVbmljb2RlUHJvcGVydHlTb3VyY2UuSUNVKCkKKyAgICAgICAgICAgIC5zZXRQcm9wZXJ0eUFsaWFzKHByb3BBbGlhcykKKyAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVNldChtYXRjaGVzLCBudWxsKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJmLnNob3dTZXROYW1lcyhwcm9wQWxpYXMgKyAiIHdpdGggIiArIG1hdGNoZXMsIHN0dWZmKSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHNob3dOYW1lcyhTdHJpbmcgcHJvcEFsaWFzLCBTdHJpbmcgcGF0dGVybikgeworICAgICAgICBCYWdGb3JtYXR0ZXIgYmYgPSBuZXcgQmFnRm9ybWF0dGVyKCk7CisgICAgICAgIFVuaWNvZGVTZXQgc3R1ZmY7CisgICAgICAgIHN0dWZmID0gbmV3IFVuaWNvZGVQcm9wZXJ0eVNvdXJjZS5JQ1UoKQorICAgICAgICAgICAgLnNldFByb3BlcnR5QWxpYXMocHJvcEFsaWFzKQorICAgICAgICAgICAgLmdldFByb3BlcnR5U2V0KFBhdHRlcm4uY29tcGlsZShwYXR0ZXJuKS5tYXRjaGVyKCIiKSwgbnVsbCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihiZi5zaG93U2V0TmFtZXMocHJvcEFsaWFzICsgIndpdGggIiArIHBhdHRlcm4sIHN0dWZmKSk7CisgICAgfQorICAgICovCit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdERhdGFfZW4uanBwIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdERhdGFfZW4uanBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxMmY5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGF0YV9lbi5qcHAKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxpc3RSZXNvdXJjZUJ1bmRsZTsKKy8qCisgKiBFY2xpcHNlIGV4cGVjdHMgdGhlIGphdmEgZmlsZXMgaW4gYSBwYWNrYWdlLWxpa2UgZGlyZWN0b3J5IHN0cnVjdHVyZSB0byBoYXZlIGEgcGFja2FnZSBkZWNsYXJhdGlvbiBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLgorICogVG8gZm9vbCBFY2xpcHNlIHRoaXMgZmlsZSBoYXMgYW4gImpwcCIgZXh0ZW5zaW9uLiBUaGUgYW50IGJ1aWxkIHNjcmlwdCBjb3BpZXMgdGhpcyBmaWxlIHRvIHRoZSBkZWZhdWx0IHBhY2thZ2UgYW5kIHJlbmFtZXMgaXQKKyAqIGJlZm9yZSBidWlsZGluZy4KKyAqLyAKKy8qKgorICogQGF1dGhvciByYW0KKyAqLworCitwdWJsaWMgY2xhc3MgVGVzdERhdGFfZW4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHB1YmxpYyBUZXN0RGF0YV9lbigpIHsKKyAgICAgICAgCisgIH0KKyAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgImFhYSIsCisgICAgICAgICAgICAgICAgICJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWIiLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAiYWFiIiwKKyAgICAgICAgICAgICAgICAgICJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWMiLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAiYWFjIiwKKyAgICAgICAgICAgICAgICAgICJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWEiLAorICAgICAgICAgICAgICB9IAorICB9OworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpeworICAgICAgcmV0dXJuIGRhdGE7CisgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REZWZhdWx0UGFja2FnZUxvYWRpbmcuanBwIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZy5qcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMxMmRkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REZWZhdWx0UGFja2FnZUxvYWRpbmcuanBwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKy8qCisgKiBFY2xpcHNlIGV4cGVjdHMgdGhlIGphdmEgZmlsZXMgaW4gYSBwYWNrYWdlLWxpa2UgZGlyZWN0b3J5IHN0cnVjdHVyZSB0byBoYXZlIGEgcGFja2FnZSBkZWNsYXJhdGlvbiBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLgorICogVG8gZm9vbCBFY2xpcHNlIHRoaXMgZmlsZSBoYXMgYW4gImpwcCIgZXh0ZW5zaW9uLiBUaGUgYW50IGJ1aWxkIHNjcmlwdCBjb3BpZXMgdGhpcyBmaWxlIHRvIHRoZSBkZWZhdWx0IHBhY2thZ2UgYW5kIHJlbmFtZXMgaXQKKyAqIGJlZm9yZSBidWlsZGluZy4KKyAqLyAKKy8qKgorICogQGF1dGhvciByYW0KKyAqLworcHVibGljIGNsYXNzIFRlc3REZWZhdWx0UGFja2FnZUxvYWRpbmcgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKKyAgICAgICAgbmV3IFRlc3REZWZhdWx0UGFja2FnZUxvYWRpbmcoKS5ydW4oYXJncyk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNvdXJjZUJ1bmRsZUxvYWRpbmcoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiVGVzdERhdGEiLCAiZW4iKTsKKyAgICAgICAgICAgIFN0cmluZyBhYWEgPSBidW5kbGUuZ2V0U3RyaW5nKCJhYWEiKTsKKyAgICAgICAgICAgIGlmKCFhYWEuZXF1YWxzKCJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWIiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBkYXRhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgbG9hZCBkYXRhICIrZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzRmlsZUxvYWRpbmcoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiIiwgInRlIik7CisgICAgICAgICAgICBTdHJpbmcgYWFhID0gYnVuZGxlLmdldFN0cmluZygic3RyaW5nX29ubHlfaW5fdGUiKTsKKyAgICAgICAgICAgIGlmKCFhYWEuZXF1YWxzKCJURSIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGRhdGEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBsb2FkIGRhdGEgIitleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjM3NjcoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tLmlibS5pY3UuZGV2LmRhdGEuVGVzdERhdGEiLCAiYmdlIik7CisgICAgICAgICAgICBTdHJpbmcgYWFhID0gYnVuZGxlLmdldFN0cmluZygic3RyaW5nX29ubHlfaW5fdGUiKTsKKyAgICAgICAgICAgIGlmKCFhYWEuZXF1YWxzKCJURSIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGRhdGEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgOiAiICsgYnVuZGxlLmdldFVMb2NhbGUoKS5nZXROYW1lKCkpOworICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGxvYWQgZGF0YSAiK2V4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0VXRpbGl0aWVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0VXRpbGl0aWVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc3ZTNkMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RVdGlsaXRpZXMuamF2YQpAQCAtMCwwICsxLDQ3MCBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RCb2lsZXJwbGF0ZTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNvbGxlY3Rpb25VdGlsaXRpZXM7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK3B1YmxpYyBjbGFzcyBUZXN0VXRpbGl0aWVzIGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHN0YXRpYyBmaW5hbCBpbnQgTElNSVQgPSAweDE1OyAvLyBsaW1pdCB0byBtYWtlIHRlc3RpbmcgbW9yZSByZWFsaXN0aWMgaW4gdGVybXMgb2YgY29sbGlzaW9ucworICAgIHN0YXRpYyBmaW5hbCBpbnQgSVRFUkFUSU9OUyA9IDEwMDAwMDA7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gU0hPV19QUk9HUkVTUyA9IGZhbHNlOworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0VXRpbGl0aWVzKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBVbmljb2RlTWFwIG1hcDEgPSBuZXcgVW5pY29kZU1hcCgpOworICAgIE1hcCBtYXAyID0gbmV3IEhhc2hNYXAoKTsKKyAgICBNYXAgbWFwMyA9IG5ldyBUcmVlTWFwKCk7CisgICAgU29ydGVkU2V0IGxvZyA9IG5ldyBUcmVlU2V0KCk7CisgICAgc3RhdGljIFN0cmluZ1tdIFRFU1RfVkFMVUVTID0ge251bGwsICJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiJ9OworICAgIHN0YXRpYyBSYW5kb20gcmFuZG9tID0gbmV3IFJhbmRvbSgxMjM0NSk7CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVuaWNvZGVNYXAoKSB7CisgICAgICAgIHJhbmRvbS5zZXRTZWVkKDEyMzQ1KTsKKyAgICAgICAgLy8gZG8gcmFuZG9tIGNoYW5nZSB0byBib3RoLCB0aGVuIGNvbXBhcmUKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBhZ2FpbnN0IEhhc2hNYXAiKTsKKyAgICAgICAgZm9yIChpbnQgY291bnRlciA9IDA7IGNvdW50ZXIgPCBJVEVSQVRJT05TOyArK2NvdW50ZXIpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHJhbmRvbS5uZXh0SW50KExJTUlUKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFRFU1RfVkFMVUVTW3JhbmRvbS5uZXh0SW50KFRFU1RfVkFMVUVTLmxlbmd0aCldOworICAgICAgICAgICAgU3RyaW5nIGxvZ2xpbmUgPSBVdGlsaXR5LmhleChzdGFydCkgKyAiXHQiICsgdmFsdWU7CisgICAgICAgICAgICBpZiAoU0hPV19QUk9HUkVTUykgbG9nbG4oY291bnRlciArICJcdCIgKyBsb2dsaW5lKTsKKyAgICAgICAgICAgIGxvZy5hZGQobG9nbGluZSk7CisgICAgICAgICAgICBpZiAoREVCVUcgJiYgY291bnRlciA9PSAxNDQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBkZWJ1ZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWFwMS5wdXQoc3RhcnQsIHZhbHVlKTsKKyAgICAgICAgICAgIG1hcDIucHV0KG5ldyBJbnRlZ2VyKHN0YXJ0KSwgdmFsdWUpOworICAgICAgICAgICAgY2hlY2soY291bnRlcik7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tOZXh0KExJTUlUKTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJTZXR0aW5nIEdlbmVyYWwgQ2F0ZWdvcnkiKTsKKyAgICAgICAgbWFwMSA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgICAgIG1hcDIgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICBmb3IgKGludCBjcCA9IDA7IGNwIDw9IFNFVF9MSU1JVDsgKytjcCkgeworICAgICAgICAgICAgICBpbnQgZW51bVZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNwLCBwcm9wRW51bSk7CisgICAgICAgICAgICAgIC8vaWYgKGVudW1WYWx1ZSA8PSAwKSBjb250aW51ZTsgLy8gZm9yIHNtYWxsZXIgc2V0CisgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sZW51bVZhbHVlLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgbWFwMS5wdXQoY3AsIHZhbHVlKTsKKyAgICAgICAgICAgICAgbWFwMi5wdXQobmV3IEludGVnZXIoY3ApLCB2YWx1ZSk7CisgICAgICAgIH0gICAgICAgCisgICAgICAgIGNoZWNrTmV4dChJbnRlZ2VyLk1BWF9WQUxVRSk7CisKKworICAgICAgICBsb2dsbigiQ29tcGFyaW5nIEdlbmVyYWwgQ2F0ZWdvcnkiKTsKKyAgICAgICAgY2hlY2soLTEpOworICAgICAgICBsb2dsbigiQ29tcGFyaW5nIFZhbHVlcyIpOworICAgICAgICBTZXQgdmFsdWVzMSA9IChTZXQpIG1hcDEuZ2V0QXZhaWxhYmxlVmFsdWVzKG5ldyBUcmVlU2V0KCkpOworICAgICAgICBTZXQgdmFsdWVzMiA9IG5ldyBUcmVlU2V0KG1hcDIudmFsdWVzKCkpOworICAgICAgICBTZXQgdGVtcDsKKyAgICAgICAgaWYgKCFUZXN0Qm9pbGVycGxhdGUudmVyaWZ5U2V0c0lkZW50aWNhbCh0aGlzLCB2YWx1ZXMxLCB2YWx1ZXMyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSGFsdGluZyIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJDb21wYXJpbmcgU2V0cyIpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gdmFsdWVzMS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBsb2dsbih2YWx1ZSA9PSBudWxsID8gIm51bGwiIDogdmFsdWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHNldDEgPSBtYXAxLmdldFNldCh2YWx1ZSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHNldDIgPSBUZXN0Qm9pbGVycGxhdGUuZ2V0U2V0KG1hcDIsIHZhbHVlKTsKKyAgICAgICAgICAgIGlmICghVGVzdEJvaWxlcnBsYXRlLnZlcmlmeVNldHNJZGVudGljYWwodGhpcywgc2V0MSwgc2V0MikpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJIYWx0aW5nIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIAorICAgICAgICBsb2dsbigiR2V0dGluZyBTY3JpcHRzIik7CisgICAgICAgIFVuaWNvZGVNYXAgc2NyaXB0cyA9IElDVVByb3BlcnR5RmFjdG9yeS5tYWtlKCkuZ2V0UHJvcGVydHkoInNjcmlwdCIpLmdldFVuaWNvZGVNYXBfaW50ZXJuYWwoKTsKKyAgICAgICAgVW5pY29kZU1hcC5Db21wb3NlciBjb21wb3NlciA9IG5ldyBVbmljb2RlTWFwLkNvbXBvc2VyKCkgeworCQkJcHVibGljIE9iamVjdCBjb21wb3NlKGludCBjb2RlUG9pbnQsIE9iamVjdCBhLCBPYmplY3QgYikgeworCQkJCXJldHVybiBhLnRvU3RyaW5nKCkgKyAiXyIgKyBiLnRvU3RyaW5nKCk7CisJCQl9ICAgICAgIAkKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJUcnlpbmcgQ29tcG9zZSIpOworICAgICAgICBVbmljb2RlTWFwIGNvbXBvc2VkID0gKChVbmljb2RlTWFwKXNjcmlwdHMuY2xvbmVBc1RoYXdlZCgpKS5jb21wb3NlV2l0aChtYXAxLCBjb21wb3Nlcik7CisgICAgICAgIE9iamVjdCBsYXN0ID0gIiI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMHgxMEZGRkY7ICsraSkgeworICAgICAgICAJT2JqZWN0IGNvbXAgPSBjb21wb3NlZC5nZXRWYWx1ZShpKTsKKyAgICAgICAgCU9iamVjdCBnYyA9IG1hcDEuZ2V0VmFsdWUoaSk7CisgICAgICAgIAlPYmplY3Qgc2MgPSBzY3JpcHRzLmdldFZhbHVlKGkpOworICAgICAgICAJaWYgKCFjb21wLmVxdWFscyhjb21wb3Nlci5jb21wb3NlKGksIGdjLCBzYykpKSB7CisgICAgICAgIAkJZXJybG4oIkZhaWxlZCBjb21wb3NlIGF0OiAiICsgaSk7CisgICAgICAgIAl9CisgICAgICAgIAlpZiAoIWxhc3QuZXF1YWxzKGNvbXApKSB7CisgICAgICAgIAkJbG9nbG4oVXRpbGl0eS5oZXgoaSkgKyAiXHQiICsgY29tcCk7CisgICAgICAgIAkJbGFzdCA9IGNvbXA7CisgICAgICAgIAl9CisgICAgICAgIH0KKworICAgICAgICAvLyBjaGVjayBib2lsZXJwbGF0ZQorICAgICAgICBMaXN0IGFyZ0xpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGFyZ0xpc3QuYWRkKCJUZXN0TWFpbiIpOworICAgICAgICBpZiAocGFyYW1zLm5vdGhyb3cpIGFyZ0xpc3QuYWRkKCItbm90aHJvdyIpOworICAgICAgICBpZiAocGFyYW1zLnZlcmJvc2UpIGFyZ0xpc3QuYWRkKCItdmVyYm9zZSIpOworICAgICAgICBTdHJpbmdbXSBhcmdzID0gbmV3IFN0cmluZ1thcmdMaXN0LnNpemUoKV07CisgICAgICAgIGFyZ0xpc3QudG9BcnJheShhcmdzKTsKKyAgICAgICAgbmV3IFVuaWNvZGVNYXBCb2lsZXJwbGF0ZSgpLnJ1bihhcmdzKTsKKyAgICAgICAgIC8vIFRPRE86IHRoZSBmb2xsb3dpbmcgaXMgbm90IGJlaW5nIHJlYWNoZWQKKyAgICAgICAgbmV3IFVuaWNvZGVTZXRCb2lsZXJwbGF0ZSgpLnJ1bihhcmdzKTsgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsZWN0aW9uVXRpbGl0eVNwZWVkKCkgeworICAgICAgICBIYXNoU2V0IGhzMSA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIEhhc2hTZXQgaHMyID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaW50IHNpemUgPSAxMDAwMDA7CisgICAgICAgIGludCBpdGVyYXRpb25zID0gMTAwOworICAgICAgICBTdHJpbmcgcHJlZml4ID0gImFiY2RlIjsKKyAgICAgICAgU3RyaW5nIHBvc3RmaXggPSAiYWJjZGUiOworICAgICAgICBpbnQgc3RhcnQxID0gMDsgLy8gMSBmb3Igc29tZSwgMCBmb3IgYWxsCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArPSAyKSBoczEuYWRkKHByZWZpeCArIFN0cmluZy52YWx1ZU9mKGkpICsgcG9zdGZpeCk7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDE7IGkgPCBzaXplOyBpICs9IDIpIGhzMi5hZGQocHJlZml4ICsgU3RyaW5nLnZhbHVlT2YoaSkgKyBwb3N0Zml4KTsKKyAgICAgICAgVHJlZVNldCB0czEgPSBuZXcgVHJlZVNldChoczEpOworICAgICAgICBUcmVlU2V0IHRzMiA9IG5ldyBUcmVlU2V0KGhzMik7CisgICAgICAgIENvbGxlY3Rpb25VdGlsaXRpZXMuY29udGFpbnNBbGwoaHMxLCBoczIpOworICAgICAgICBDb2xsZWN0aW9uVXRpbGl0aWVzLmNvbnRhaW5zQWxsKHRzMSwgdHMyKTsKKyAgICAgICAgbG9uZyBzdGFydCwgZW5kOworICAgICAgICBib29sZWFuIHRlbXAgPSBmYWxzZTsKKyAgICAgICAgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHRlbXAgPSBDb2xsZWN0aW9uVXRpbGl0aWVzLmNvbnRhaW5zQWxsKGhzMSwgaHMyKTsKKyAgICAgICAgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGxvZ2xuKHRlbXAgKyAiICIgKyAoZW5kIC0gc3RhcnQpLzEwMDAuMCk7CisgICAgICAgIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB0ZW1wID0gQ29sbGVjdGlvblV0aWxpdGllcy5jb250YWluc0FsbCh0czEsIHRzMik7CisgICAgICAgIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBsb2dsbih0ZW1wICsgIiAiICsgKGVuZCAtIHN0YXJ0KS8xMDAwLjApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGVjdGlvblV0aWxpdGllcygpIHsKKwkJU3RyaW5nW11bXSB0ZXN0ID0ge3siYSIsICJjIiwgImUiLCAiZyIsICJoIiwgInoifSwgeyJiIiwgImQiLCAiZiIsICJoIiwgIncifSwgeyAiYSIsICJiIiB9LCB7ICJhIiwgImQiIH0sIHsiZCJ9LCB7fX07IC8vIAorICAgICAgICBpbnQgcmVzdWx0TWFzayA9IDA7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgdGVzdC5sZW5ndGg7ICsraSkgeworCQkJQ29sbGVjdGlvbiBhID0gbmV3IFRyZWVTZXQoQXJyYXlzLmFzTGlzdCh0ZXN0W2ldKSk7CisJCQlmb3IgKGludCBqID0gMDsgaiA8IHRlc3QubGVuZ3RoOyArK2opIHsKKwkJCQlDb2xsZWN0aW9uIGIgPSBuZXcgVHJlZVNldChBcnJheXMuYXNMaXN0KHRlc3Rbal0pKTsKKwkJCQlpbnQgcmVsYXRpb24gPSBDb2xsZWN0aW9uVXRpbGl0aWVzLmdldENvbnRhaW5tZW50UmVsYXRpb24oYSwgYik7CisgICAgICAgICAgICAgICAgcmVzdWx0TWFzayB8PSAoMSA8PCByZWxhdGlvbik7CisJCQkJc3dpdGNoIChyZWxhdGlvbikgeworCQkJCWNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5BTExfRU1QVFk6CisJCQkJCWNoZWNrQ29udGFpbm1lbnQoYS5zaXplKCkgPT0gMCAmJiBiLnNpemUoKSA9PSAwLCBhLCByZWxhdGlvbiwgYik7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9TVVBFUlNFVF9COgorCQkJCQljaGVja0NvbnRhaW5tZW50KGEuc2l6ZSgpID09IDAgJiYgYi5zaXplKCkgIT0gMCwgYSwgcmVsYXRpb24sIGIpOworCQkJCQlicmVhazsKKwkJCQljYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfRElTSk9JTlRfQjoKKwkJCQkJY2hlY2tDb250YWlubWVudChhLmVxdWFscyhiKSAmJiBhLnNpemUoKSAhPSAwLCBhLCByZWxhdGlvbiwgYik7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9TVUJTRVRfQjoKKwkJCQkJY2hlY2tDb250YWlubWVudChhLnNpemUoKSAhPSAwICYmIGIuc2l6ZSgpID09IDAsIGEsIHJlbGF0aW9uLCBiKTsKKwkJCQkJYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLkFfUFJPUEVSX1NVQlNFVF9PRl9COgorICAgICAgICAgICAgICAgICAgICBjaGVja0NvbnRhaW5tZW50KGIuY29udGFpbnNBbGwoYSkgJiYgIWEuZXF1YWxzKGIpLCBhLCByZWxhdGlvbiwgYik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9FUVVBTFNfQjoKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tDb250YWlubWVudCghQ29sbGVjdGlvblV0aWxpdGllcy5jb250YWluc1NvbWUoYSwgYikgJiYgYS5zaXplKCkgIT0gMCAmJiBiLnNpemUoKSAhPSAwLCBhLCByZWxhdGlvbiwgYik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5BX1BST1BFUl9TVVBFUlNFVF9COgorICAgICAgICAgICAgICAgICAgICBjaGVja0NvbnRhaW5tZW50KGEuY29udGFpbnNBbGwoYikgJiYgIWEuZXF1YWxzKGIpLCBhLCByZWxhdGlvbiwgYik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLkFfUFJPUEVSX09WRVJMQVBTX0I6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29udGFpbm1lbnQoIWIuY29udGFpbnNBbGwoYSkgJiYgIWEuY29udGFpbnNBbGwoYikgJiYgQ29sbGVjdGlvblV0aWxpdGllcy5jb250YWluc1NvbWUoYSwgYiksIGEsIHJlbGF0aW9uLCBiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKwkJCQl9CisJCQl9CisJCX0KKyAgICAgICAgaWYgKHJlc3VsdE1hc2sgIT0gMHhGRikgeworICAgICAgICAgICAgU3RyaW5nIG1pc3NpbmcgPSAiIjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgKytpKSB7CisgICAgICAgICAgICAJaWYgKChyZXN1bHRNYXNrICYgKDEgPDwgaSkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1pc3NpbmcubGVuZ3RoKCkgIT0gMCkgbWlzc2luZyArPSAiLCAiOworICAgICAgICAgICAgICAgICAgICBtaXNzaW5nICs9IFJlbGF0aW9uTmFtZVtpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbigiTm90IGFsbCBDb250YWlubWVudFJlbGF0aW9ucyBjaGVja2VkOiAiICsgbWlzc2luZyk7CisgICAgICAgIH0KKwl9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gUmVsYXRpb25OYW1lID0geyJBTExfRU1QVFkiLAorICAgIAkJIk5PVF9BX1NVUEVSU0VUX0IiLAorICAgICAgICAgICAgIk5PVF9BX0RJU0pPSU5UX0IiLAorICAgICAgICAgICAgIk5PVF9BX1NVQlNFVF9CIiwKKyAgICAgICAgICAgICJBX1BST1BFUl9TVUJTRVRfT0ZfQiIsCisgICAgICAgICAgICAiQV9QUk9QRVJfRElTSk9JTlRfQiIsCisgICAgICAgICAgICAiQV9QUk9QRVJfU1VQRVJTRVRfQiIsCisgICAgICAgICAgICAiQV9QUk9QRVJfT1ZFUkxBUFNfQiJ9OworCisgICAgLyoqCisJICogIAorCSAqLworCXByaXZhdGUgdm9pZCBjaGVja0NvbnRhaW5tZW50KGJvb2xlYW4gYywgQ29sbGVjdGlvbiBhLCBpbnQgcmVsYXRpb24sIENvbGxlY3Rpb24gYikgeworCQlpZiAoIWMpIHsKKwkJCWVycmxuKCJGYWlscyByZWxhdGlvbjogIiArIGEgKyAiIFx0IiArIFJlbGF0aW9uTmFtZVtyZWxhdGlvbl0gKyAiIFx0IiArIGIpOworICAgICAgICB9CQkKKwl9CisKKwlwcml2YXRlIHZvaWQgY2hlY2tOZXh0KGludCBsaW1pdCkgeworICAgICAgICBsb2dsbigiQ29tcGFyaW5nIG5leHRSYW5nZSIpOworICAgICAgICBVbmljb2RlTWFwLk1hcEl0ZXJhdG9yIG1pID0gbmV3IFVuaWNvZGVNYXAuTWFwSXRlcmF0b3IobWFwMSk7CisgICAgICAgIE1hcCBtYXAzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgd2hpbGUgKG1pLm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICBsb2dsbihVdGlsaXR5LmhleChtaS5jb2RlcG9pbnQpICsgIi4uIiArIFV0aWxpdHkuaGV4KG1pLmNvZGVwb2ludEVuZCkgKyAiID0+ICIgKyBtaS52YWx1ZSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gbWkuY29kZXBvaW50OyBpIDw9IG1pLmNvZGVwb2ludEVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPj0gbGltaXQpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIG1hcDMucHV0KG5ldyBJbnRlZ2VyKGkpLCBtaS52YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tNYXAobWFwMiwgbWFwMyk7CisgICAgICAgIAorICAgICAgICBsb2dsbigiQ29tcGFyaW5nIG5leHQiKTsKKyAgICAgICAgbWkucmVzZXQoKTsKKyAgICAgICAgbWFwMyA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIE9iamVjdCBsYXN0VmFsdWUgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIHdoaWxlIChtaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGlmICghVW5pY29kZU1hcC5hcmVFcXVhbChsYXN0VmFsdWUsIG1pLnZhbHVlKSkgeworICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiQ2hhbmdlOiAiICsgVXRpbGl0eS5oZXgobWkuY29kZXBvaW50KSArICIgPT4gIiArIG1pLnZhbHVlKTsKKyAgICAgICAgICAgICAgICBsYXN0VmFsdWUgPSBtaS52YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtaS5jb2RlcG9pbnQgPj0gbGltaXQpIGNvbnRpbnVlOworICAgICAgICAgICAgbWFwMy5wdXQobmV3IEludGVnZXIobWkuY29kZXBvaW50KSwgbWkudmFsdWUpOworICAgICAgICB9CisgICAgICAgIGNoZWNrTWFwKG1hcDIsIG1hcDMpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjaGVjayhpbnQgY291bnRlcikgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IExJTUlUOyArK2kpIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZTEgPSBtYXAxLmdldFZhbHVlKGkpOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlMiA9IG1hcDIuZ2V0KG5ldyBJbnRlZ2VyKGkpKTsKKyAgICAgICAgICAgIGlmICghVW5pY29kZU1hcC5hcmVFcXVhbCh2YWx1ZTEsIHZhbHVlMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihjb3VudGVyICsgIiBEaWZmZXJlbmNlIGF0ICIgKyBVdGlsaXR5LmhleChpKQorICAgICAgICAgICAgICAgICAgICAgKyAiXHQgVW5pY29kZU1hcDogIiArIHZhbHVlMQorICAgICAgICAgICAgICAgICAgICAgKyAiXHQgSGFzaE1hcDogIiArIHZhbHVlMik7CisgICAgICAgICAgICAgICAgZXJybG4oIlVuaWNvZGVNYXA6ICIgKyBtYXAxKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiTG9nOiAiICsgVGVzdEJvaWxlcnBsYXRlLnNob3cobG9nKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkhhc2hNYXA6ICIgKyBUZXN0Qm9pbGVycGxhdGUuc2hvdyhtYXAyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBjaGVja01hcChNYXAgbTEsIE1hcCBtMikgeworICAgICAgICBpZiAobTEuZXF1YWxzKG0yKSkgcmV0dXJuOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTZXQgbTFlbnRyaWVzID0gbTEuZW50cnlTZXQoKTsKKyAgICAgICAgU2V0IG0yZW50cmllcyA9IG0yLmVudHJ5U2V0KCk7CisgICAgICAgIGdldEVudHJpZXMoIlxyXG5JbiBGaXJzdCwgYW5kIG5vdCBTZWNvbmQiLCBtMWVudHJpZXMsIG0yZW50cmllcywgYnVmZmVyLCAyMCk7CisgICAgICAgIGdldEVudHJpZXMoIlxyXG5JbiBTZWNvbmQsIGFuZCBub3QgRmlyc3QiLCBtMmVudHJpZXMsIG0xZW50cmllcywgYnVmZmVyLCAyMCk7CisgICAgICAgIGVycmxuKGJ1ZmZlci50b1N0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIENvbXBhcmF0b3IgRU5UUllfQ09NUEFSQVRPUiA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIGlmIChvMSA9PSBvMikgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAobzEgPT0gbnVsbCkgcmV0dXJuIC0xOworICAgICAgICAgICAgaWYgKG8yID09IG51bGwpIHJldHVybiAxOworICAgICAgICAgICAgTWFwLkVudHJ5IGEgPSAoTWFwLkVudHJ5KSBvMTsKKyAgICAgICAgICAgIE1hcC5FbnRyeSBiID0gKE1hcC5FbnRyeSkgbzI7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gY29tcGFyZTIoYS5nZXRLZXkoKSwgYi5nZXRLZXkoKSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZTIoYS5nZXRWYWx1ZSgpLCBiLmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50IGNvbXBhcmUyKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBpZiAobzEgPT0gbzIpIHJldHVybiAwOworICAgICAgICAgICAgaWYgKG8xID09IG51bGwpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGlmIChvMiA9PSBudWxsKSByZXR1cm4gMTsKKyAgICAgICAgICAgIHJldHVybiAoKENvbXBhcmFibGUpbzEpLmNvbXBhcmVUbyhvMik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgcHJpdmF0ZSB2b2lkIGdldEVudHJpZXMoU3RyaW5nIHRpdGxlLCBTZXQgbTFlbnRyaWVzLCBTZXQgbTJlbnRyaWVzLCBTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgbGltaXQpIHsKKyAgICAgICAgU2V0IG0xX20yID0gbmV3IFRyZWVTZXQoRU5UUllfQ09NUEFSQVRPUik7CisgICAgICAgIG0xX20yLmFkZEFsbChtMWVudHJpZXMpOworICAgICAgICBtMV9tMi5yZW1vdmVBbGwobTJlbnRyaWVzKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCh0aXRsZSArICI6ICIgKyBtMV9tMi5zaXplKCkgKyAiXHJcbiIpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbTFfbTIuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgaWYgKGxpbWl0LS0gPCAwKSByZXR1cm47CisgICAgICAgICAgICBNYXAuRW50cnkgZW50cnkgPSAoTWFwLkVudHJ5KSBpdC5uZXh0KCk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGVudHJ5LmdldEtleSgpKS5hcHBlbmQoIiA9PiAiKQorICAgICAgICAgICAgIC5hcHBlbmQoZW50cnkuZ2V0VmFsdWUoKSkuYXBwZW5kKCJcclxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBTRVRfTElNSVQgPSAweDEwRkZGRjsKKyAgICBzdGF0aWMgZmluYWwgaW50IENIRUNLX0xJTUlUID0gMHhGRkZGOworICAgIHN0YXRpYyBmaW5hbCBOdW1iZXJGb3JtYXQgcGYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgc3RhdGljIGZpbmFsIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lKCkgeworICAgICAgICBkb3VibGUgaGFzaFRpbWUsIHVtVGltZSwgaWN1VGltZSwgdHJlZVRpbWU7CisgICAgICAgIHVtVGltZSA9IGNoZWNrU2V0VGltZSgyMCwgMCk7CisgICAgICAgIGhhc2hUaW1lID0gY2hlY2tTZXRUaW1lKDIwLCAxKTsKKyAgICAgICAgbG9nbG4oIlBlcmNlbnRhZ2U6ICIgKyBwZi5mb3JtYXQoaGFzaFRpbWUvdW1UaW1lKSk7CisgICAgICAgIHRyZWVUaW1lID0gY2hlY2tTZXRUaW1lKDIwLCAzKTsKKyAgICAgICAgbG9nbG4oIlBlcmNlbnRhZ2U6ICIgKyBwZi5mb3JtYXQodHJlZVRpbWUvdW1UaW1lKSk7CisgICAgICAgIC8vbG9nbG4obWFwMS50b1N0cmluZygpKTsKKyAgICAgICAgCisgICAgICAgIHVtVGltZSA9IGNoZWNrR2V0VGltZSgxMDAwLCAwKTsKKyAgICAgICAgaGFzaFRpbWUgPSBjaGVja0dldFRpbWUoMTAwMCwgMSk7CisgICAgICAgIGxvZ2xuKCJQZXJjZW50YWdlOiAiICsgcGYuZm9ybWF0KGhhc2hUaW1lL3VtVGltZSkpOworICAgICAgICBpY3VUaW1lID0gY2hlY2tHZXRUaW1lKDEwMDAsIDIpOworICAgICAgICBsb2dsbigiUGVyY2VudGFnZTogIiArIHBmLmZvcm1hdChpY3VUaW1lL3VtVGltZSkpOworICAgICAgICB0cmVlVGltZSA9IGNoZWNrR2V0VGltZSgxMDAwLCAzKTsKKyAgICAgICAgbG9nbG4oIlBlcmNlbnRhZ2U6ICIgKyBwZi5mb3JtYXQodHJlZVRpbWUvdW1UaW1lKSk7CisgICAgfQorICAgIAorICAgIGludCBwcm9wRW51bSA9IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZOworICAgIAorICAgIGRvdWJsZSBjaGVja1NldFRpbWUoaW50IGl0ZXJhdGlvbnMsIGludCB0eXBlKSB7CisgICAgICAgIF9jaGVja1NldFRpbWUoMSx0eXBlKTsKKyAgICAgICAgZG91YmxlIHJlc3VsdCA9IF9jaGVja1NldFRpbWUoaXRlcmF0aW9ucywgdHlwZSk7CisgICAgICAgIGxvZ2xuKCh0eXBlID09IDAgPyAiVW5pY29kZU1hcCIgOiB0eXBlID09IDEgPyAiSGFzaE1hcCIgOiB0eXBlID09IDIgPyAiSUNVIiA6ICJUcmVlTWFwIikgKyAiXHQiICsgbmYuZm9ybWF0KHJlc3VsdCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBkb3VibGUgX2NoZWNrU2V0VGltZShpbnQgaXRlcmF0aW9ucywgaW50IHR5cGUpIHsKKyAgICAgICAgbWFwMSA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgICAgIG1hcDIgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBTeXN0ZW0uZ2MoKTsKKyAgICAgICAgZG91YmxlIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaXRlcmF0aW9uczsgKytqKQorICAgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gU0VUX0xJTUlUOyArK2NwKSB7CisgICAgICAgICAgICBpbnQgZW51bVZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNwLCBwcm9wRW51bSk7CisgICAgICAgICAgICBpZiAoZW51bVZhbHVlIDw9IDApIGNvbnRpbnVlOyAvLyBmb3Igc21hbGxlciBzZXQKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sZW51bVZhbHVlLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgIHN3aXRjaCh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIDA6IG1hcDEucHV0KGNwLCB2YWx1ZSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOiBtYXAyLnB1dChuZXcgSW50ZWdlcihjcCksIHZhbHVlKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDM6IG1hcDMucHV0KG5ldyBJbnRlZ2VyKGNwKSwgdmFsdWUpOyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkb3VibGUgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHJldHVybiAoZW5kLXN0YXJ0KS8xMDAwL2l0ZXJhdGlvbnM7CisgICAgfQorICAgIAorICAgIGRvdWJsZSBjaGVja0dldFRpbWUoaW50IGl0ZXJhdGlvbnMsIGludCB0eXBlKSB7CisgICAgICAgIF9jaGVja0dldFRpbWUoMSx0eXBlKTsKKyAgICAgICAgZG91YmxlIHJlc3VsdCA9IF9jaGVja0dldFRpbWUoaXRlcmF0aW9ucywgdHlwZSk7CisgICAgICAgIGxvZ2xuKCh0eXBlID09IDAgPyAiVW5pY29kZU1hcCIgOiB0eXBlID09IDEgPyAiSGFzaE1hcCIgOiB0eXBlID09IDIgPyAiSUNVIiA6ICJUcmVlTWFwIikgKyAiXHQiICsgbmYuZm9ybWF0KHJlc3VsdCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBkb3VibGUgX2NoZWNrR2V0VGltZShpbnQgaXRlcmF0aW9ucywgaW50IHR5cGUpIHsKKyAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgIGRvdWJsZSBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGl0ZXJhdGlvbnM7ICsraikKKyAgICAgICAgICBmb3IgKGludCBjcCA9IDA7IGNwIDwgQ0hFQ0tfTElNSVQ7ICsrY3ApIHsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSAwOiBtYXAxLmdldFZhbHVlKGNwKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6IG1hcDIuZ2V0KG5ldyBJbnRlZ2VyKGNwKSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGludCBlbnVtVmFsdWUgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY3AsIHByb3BFbnVtKTsKKyAgICAgICAgICAgICAgICAvL2lmIChlbnVtVmFsdWUgPD0gMCkgY29udGludWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wRW51bSxlbnVtVmFsdWUsIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgMzogbWFwMy5nZXQobmV3IEludGVnZXIoY3ApKTsgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICByZXR1cm4gKGVuZC1zdGFydCkvMTAwMC9pdGVyYXRpb25zOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgVW5pY29kZU1hcEJvaWxlcnBsYXRlIGV4dGVuZHMgVGVzdEJvaWxlcnBsYXRlIHsKKworICAgICAgICAvKiAKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Qm9pbGVycGxhdGUjX2hhc1NhbWVCZWhhdmlvcihqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gX2hhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIC8vIHdlIGFyZSBwcmV0dHkgY29uZmlkZW50IGluIHRoZSBlcXVhbHMgbWV0aG9kLCBzbyB3b24ndCBib3RoZXIgd2l0aCB0aGlzIHJpZ2h0IG5vdy4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Qm9pbGVycGxhdGUjX2NyZWF0ZVRlc3RPYmplY3QoKQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gX2FkZFRlc3RPYmplY3QoTGlzdCBsaXN0KSB7CisgICAgICAgICAgICBpZiAobGlzdC5zaXplKCkgPiAzMCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgVW5pY29kZU1hcCByZXN1bHQgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1MDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gcmFuZG9tLm5leHRJbnQoMjUpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFRFU1RfVkFMVUVTW3JhbmRvbS5uZXh0SW50KFRFU1RfVkFMVUVTLmxlbmd0aCldOworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoc3RhcnQsIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpc3QuYWRkKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgU3RyaW5nQm9pbGVycGxhdGUgZXh0ZW5kcyBUZXN0Qm9pbGVycGxhdGUgeworCisgICAgICAgIC8qIAorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RCb2lsZXJwbGF0ZSNfaGFzU2FtZUJlaGF2aW9yKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgLy8gd2UgYXJlIHByZXR0eSBjb25maWRlbnQgaW4gdGhlIGVxdWFscyBtZXRob2QsIHNvIHdvbid0IGJvdGhlciB3aXRoIHRoaXMgcmlnaHQgbm93LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RCb2lsZXJwbGF0ZSNfY3JlYXRlVGVzdE9iamVjdCgpCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfYWRkVGVzdE9iamVjdChMaXN0IGxpc3QpIHsKKyAgICAgICAgICAgIGlmIChsaXN0LnNpemUoKSA+IDMxKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcilyYW5kb20ubmV4dEludCgweEZGKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsaXN0LmFkZChyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgVW5pY29kZVNldEJvaWxlcnBsYXRlIGV4dGVuZHMgVGVzdEJvaWxlcnBsYXRlIHsKKworICAgICAgICAvKiAKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Qm9pbGVycGxhdGUjX2hhc1NhbWVCZWhhdmlvcihqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gX2hhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIC8vIHdlIGFyZSBwcmV0dHkgY29uZmlkZW50IGluIHRoZSBlcXVhbHMgbWV0aG9kLCBzbyB3b24ndCBib3RoZXIgd2l0aCB0aGlzIHJpZ2h0IG5vdy4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Qm9pbGVycGxhdGUjX2NyZWF0ZVRlc3RPYmplY3QoKQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gX2FkZFRlc3RPYmplY3QoTGlzdCBsaXN0KSB7CisgICAgICAgICAgICBpZiAobGlzdC5zaXplKCkgPiAzMikgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1MDsgKytpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChyYW5kb20ubmV4dEludCgxMDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpc3QuYWRkKHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGV4dFRyaWVNYXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXh0VHJpZU1hcFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2IyMzBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGV4dFRyaWVNYXBUZXN0LmphdmEKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVGV4dFRyaWVNYXA7CisKK3B1YmxpYyBjbGFzcyBUZXh0VHJpZU1hcFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFNVTiA9IG5ldyBJbnRlZ2VyKDEpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgTU9OID0gbmV3IEludGVnZXIoMik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBUVUUgPSBuZXcgSW50ZWdlcigzKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFdFRCA9IG5ldyBJbnRlZ2VyKDQpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgVEhVID0gbmV3IEludGVnZXIoNSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBGUkkgPSBuZXcgSW50ZWdlcig2KTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFNBVCA9IG5ldyBJbnRlZ2VyKDcpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBGT08gPSBuZXcgSW50ZWdlcigtMSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBCQVIgPSBuZXcgSW50ZWdlcigtMik7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBURVNUREFUQSA9IHsKKyAgICAgICAgeyJTdW5kYXkiLCBTVU59LAorICAgICAgICB7Ik1vbmRheSIsIE1PTn0sCisgICAgICAgIHsiVHVlc2RheSIsIFRVRX0sCisgICAgICAgIHsiV2VkbmVzZGF5IiwgV0VEfSwKKyAgICAgICAgeyJUaHVyc2RheSIsIFRIVX0sCisgICAgICAgIHsiRnJpZGF5IiwgRlJJfSwKKyAgICAgICAgeyJTYXR1cmRheSIsIFNBVH0sCisgICAgICAgIHsiU3VuIiwgU1VOfSwKKyAgICAgICAgeyJNb24iLCBNT059LAorICAgICAgICB7IlR1ZSIsIFRVRX0sCisgICAgICAgIHsiV2VkIiwgV0VEfSwKKyAgICAgICAgeyJUaHUiLCBUSFV9LAorICAgICAgICB7IkZyaSIsIEZSSX0sCisgICAgICAgIHsiU2F0IiwgU0FUfSwKKyAgICAgICAgeyJTIiwgU1VOfSwKKyAgICAgICAgeyJNIiwgTU9OfSwKKyAgICAgICAgeyJUIiwgVFVFfSwKKyAgICAgICAgeyJXIiwgV0VEfSwKKyAgICAgICAgeyJUIiwgVEhVfSwKKyAgICAgICAgeyJGIiwgRlJJfSwKKyAgICAgICAgeyJTIiwgU0FUfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIFRFU1RDQVNFUyA9IHsKKyAgICAgICAgeyJTdW5kYXkiLCBTVU4sIFNVTn0sCisgICAgICAgIHsic3VuZGF5IiwgbnVsbCwgU1VOfSwKKyAgICAgICAgeyJNbyIsIE1PTiwgTU9OfSwKKyAgICAgICAgeyJtbyIsIG51bGwsIE1PTn0sCisgICAgICAgIHsiVGh1cnNkYXkgRnJpZGF5IiwgVEhVLCBUSFV9LAorICAgICAgICB7IlQiLCBUSFUsIFRIVX0sCisgICAgICAgIHsiVEVTVCIsIFRIVSwgVEhVfSwKKyAgICAgICAgeyJTVU4iLCBTQVQsIFNVTn0sCisgICAgICAgIHsic3VwZXIiLCBudWxsLCBTQVR9LAorICAgICAgICB7Ik5PIiwgbnVsbCwgbnVsbH0KKyAgICB9OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBUZXh0VHJpZU1hcFRlc3QgdGVzdCA9IG5ldyBUZXh0VHJpZU1hcFRlc3QoKTsKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VTZW5zaXRpdmUoKSB7CisgICAgICAgIFRleHRUcmllTWFwIG1hcCA9IG5ldyBUZXh0VHJpZU1hcChmYWxzZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVEVTVERBVEEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG1hcC5wdXQoKFN0cmluZylURVNUREFUQVtpXVswXSwgVEVTVERBVEFbaV1bMV0pOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlRlc3QgZm9yIGdldChTdHJpbmcpIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVEVTVENBU0VTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBtYXAuZ2V0KChTdHJpbmcpVEVTVENBU0VTW2ldWzBdKTsKKyAgICAgICAgICAgIGlmICghZXFsKHZhbHVlLCBURVNUQ0FTRVNbaV1bMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgc2VhcmNoIHJlc3VsdHMgLSBFeHBlY3RlZDoiICsgVEVTVENBU0VTW2ldWzFdICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJUZXN0IGZvciBnZXQoU3RyaW5nLCBpbnQpIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZXh0QnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRFU1RDQVNFUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGV4dEJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykgeworICAgICAgICAgICAgICAgIHRleHRCdWYuYXBwZW5kKCdYJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0QnVmLmFwcGVuZChURVNUQ0FTRVNbaV1bMF0pOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gbWFwLmdldCh0ZXh0QnVmLnRvU3RyaW5nKCksIGkpOworICAgICAgICAgICAgaWYgKCFlcWwodmFsdWUsIFRFU1RDQVNFU1tpXVsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW52YWxpZCBzZWFyY2ggcmVzdWx0cyAtIEV4cGVjdGVkOiIgKyBURVNUQ0FTRVNbaV1bMV0gKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkIGR1cGxpY2F0ZWQgZW50cnkKKyAgICAgICAgT2JqZWN0IHByZXYgPSBtYXAucHV0KCJTdW5kYXkiLCBGT08pOworICAgICAgICBpZiAoIWVxbChwcmV2LCBTVU4pKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIHByZXZpb3VzIHZhbHVlIG9mIGR1cGxpY2F0ZWQgZW50cnkgaXMgbm90IHZhbGlkIC0gRXhwZWN0ZWQ6IiArIFNVTiArICIgQWN0dWFsOiIgKyBwcmV2KTsKKyAgICAgICAgfQorICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHZhbHVlIGlzIHVwZGF0ZWQKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gbWFwLmdldCgiU3VuZGF5Iik7CisgICAgICAgIGlmICghZXFsKHZhbHVlLCBGT08pKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIG1hcCB2YWx1ZSBpcyBub3QgdmFsaWQgLSBFeHBlY3RlZDoiICsgRk9PICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCBkdXBsaWNhdGVkIGVudHJ5IHdpdGggZGlmZmVyZW50IGNhc2luZworICAgICAgICBwcmV2ID0gbWFwLnB1dCgic3VuZGF5IiwgQkFSKTsKKyAgICAgICAgaWYgKCFlcWwocHJldiwgbnVsbCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgdmFsdWUgc2hvdWxkIGJlIG5ldyBpbiB0aGUgdHJpZSBtYXAgLSBFeHBlY3RlZDpudWxsIiArICIgQWN0dWFsOiIgKyBwcmV2KTsKKyAgICAgICAgfQorICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHZhbHVlIGlzIHZhbGlkCisgICAgICAgIHZhbHVlID0gbWFwLmdldCgic3VuZGF5Iik7CisgICAgICAgIGlmICghZXFsKHZhbHVlLCBCQVIpKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIG1hcCB2YWx1ZSBpcyBub3QgdmFsaWQgLSBFeHBlY3RlZDoiICsgQkFSICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VJbnNlbnNpdGl2ZSgpIHsKKyAgICAgICAgVGV4dFRyaWVNYXAgbWFwID0gbmV3IFRleHRUcmllTWFwKHRydWUpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRFU1REQVRBLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBtYXAucHV0KChTdHJpbmcpVEVTVERBVEFbaV1bMF0sIFRFU1REQVRBW2ldWzFdKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJUZXN0IGZvciBnZXQoU3RyaW5nKSIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRFU1RDQVNFUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gbWFwLmdldCgoU3RyaW5nKVRFU1RDQVNFU1tpXVswXSk7CisgICAgICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgVEVTVENBU0VTW2ldWzJdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIHNlYXJjaCByZXN1bHRzIC0gRXhwZWN0ZWQ6IiArIFRFU1RDQVNFU1tpXVsyXSArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJUZXN0IGZvciBnZXQoU3RyaW5nLCBpbnQpIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZXh0QnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRFU1RDQVNFUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGV4dEJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykgeworICAgICAgICAgICAgICAgIHRleHRCdWYuYXBwZW5kKCdYJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0QnVmLmFwcGVuZChURVNUQ0FTRVNbaV1bMF0pOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gbWFwLmdldCh0ZXh0QnVmLnRvU3RyaW5nKCksIGkpOworICAgICAgICAgICAgaWYgKCFlcWwodmFsdWUsIFRFU1RDQVNFU1tpXVsyXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW52YWxpZCBzZWFyY2ggcmVzdWx0cyAtIEV4cGVjdGVkOiIgKyBURVNUQ0FTRVNbaV1bMl0gKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkIGR1cGxpY2F0ZWQgZW50cnkKKyAgICAgICAgT2JqZWN0IHByZXYgPSBtYXAucHV0KCJTdW5kYXkiLCBGT08pOworICAgICAgICBpZiAoIWVxbChwcmV2LCBTVU4pKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIHByZXZpb3VzIHZhbHVlIG9mIGR1cGxpY2F0ZWQgZW50cnkgaXMgbm90IHZhbGlkIC0gRXhwZWN0ZWQ6IiArIFNVTiArICIgQWN0dWFsOiIgKyBwcmV2KTsKKyAgICAgICAgfQorICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHZhbHVlIGlzIHVwZGF0ZWQKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gbWFwLmdldCgiU3VuZGF5Iik7CisgICAgICAgIGlmICghZXFsKHZhbHVlLCBGT08pKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIG1hcCB2YWx1ZSBpcyBub3QgdmFsaWQgLSBFeHBlY3RlZDoiICsgRk9PICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCBkdXBsaWNhdGVkIGVudHJ5IHdpdGggZGlmZmVyZW50IGNhc2luZworICAgICAgICBwcmV2ID0gbWFwLnB1dCgic3VuZGF5IiwgQkFSKTsKKyAgICAgICAgaWYgKCFlcWwocHJldiwgRk9PKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSB2YWx1ZSBzaG91bGQgYmUgbmV3IGluIHRoZSB0cmllIG1hcCAtIEV4cGVjdGVkOiIgKyBGT08gKyAiIEFjdHVhbDoiICsgcHJldik7CisgICAgICAgIH0KKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB2YWx1ZSBpcyB1cGRhdGVkCisgICAgICAgIHZhbHVlID0gbWFwLmdldCgic3VuZGF5Iik7CisgICAgICAgIGlmICghZXFsKHZhbHVlLCBCQVIpKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIG1hcCB2YWx1ZSBpcyBub3QgdmFsaWQgLSBFeHBlY3RlZDoiICsgQkFSICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGVxbChPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgICBpZiAobzEgPT0gbnVsbCB8fCBvMiA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAobzEgPT0gbnVsbCAmJiBvMiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG8xLmVxdWFscyhvMik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVG9rZW5pemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Ub2tlbml6ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWQ2YWI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVG9rZW5pemVyLmphdmEKQEAgLTAsMCArMSwzMjIgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitwdWJsaWMgY2xhc3MgVG9rZW5pemVyIHsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHNvdXJjZTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBwcm90ZWN0ZWQgbG9uZyBudW1iZXI7CisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXQgdW5pY29kZVNldCA9IG51bGw7CisgICAgcHJvdGVjdGVkIGludCBpbmRleDsKKyAgICBib29sZWFuIGJhY2tlZHVwID0gZmFsc2U7CisgICAgcHJvdGVjdGVkIGludCBsYXN0SW5kZXggPSAtMTsKKyAgICBwcm90ZWN0ZWQgaW50IG5leHRJbmRleDsKKyAgICBpbnQgbGFzdFZhbHVlID0gQkFDS0VEVVBfVE9PX0ZBUjsKKyAgICBUb2tlblN5bWJvbFRhYmxlIHN5bWJvbFRhYmxlID0gbmV3IFRva2VuU3ltYm9sVGFibGUoKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIKKyAgICAgICAgUVVPVEUgPSAnXCcnLAorICAgICAgICBCU0xBU0ggPSAnXFwnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgUVVPVEVSUyA9IG5ldyBVbmljb2RlU2V0KCkuYWRkKFFVT1RFKS5hZGQoQlNMQVNIKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IFdISVRFU1BBQ0UgPSBuZXcgVW5pY29kZVNldCgiWyIgKworICAgICAgICAiXFx1MDAwOS1cXHUwMDBEXFx1MDAyMFxcdTAwODVcXHUyMDBFXFx1MjAwRlxcdTIwMjhcXHUyMDI5IiArCisgICAgICAgICJdIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBTWU5UQVggPSBuZXcgVW5pY29kZVNldCgiWyIgKworICAgICAgICAiXFx1MDAyMS1cXHUwMDJGXFx1MDAzQS1cXHUwMDQwXFx1MDA1Qi1cXHUwMDYwXFx1MDA3Qi1cXHUwMDdFIiArCisgICAgICAgICJcXHUwMEExLVxcdTAwQTdcXHUwMEE5XFx1MDBBQi1cXHUwMEFDXFx1MDBBRSIgKworICAgICAgICAiXFx1MDBCMC1cXHUwMEIxXFx1MDBCNlxcdTAwQjdcXHUwMEJCXFx1MDBCRlxcdTAwRDdcXHUwMEY3IiArCisgICAgICAgICJcXHUyMDEwLVxcdTIwMjdcXHUyMDMwLVxcdTIwNUVcXHUyMTkwLVxcdTJCRkYiICsKKyAgICAgICAgIlxcdTMwMDFcXHUzMDAzXFx1MzAwOC1cXHUzMDIwXFx1MzAzMCIgKworICAgICAgICAiXFx1RkQzRVxcdUZEM0ZcXHVGRTQ1XFx1RkU0NiIgKworICAgICAgICAiXSIpLnJlbW92ZUFsbChRVU9URVJTKS5yZW1vdmUoJyQnKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IE5FV0xJTkUgPSBuZXcgVW5pY29kZVNldCgiW1xcdTAwMEFcXHUwMDBEXFx1MDA4NVxcdTIwMjhcXHUyMDI5XSIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgREVDSU1BTCA9IG5ldyBVbmljb2RlU2V0KCJbOk5kOl0iKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IE5PTl9TVFJJTkcgPSBuZXcgVW5pY29kZVNldCgpCisgICAgICAgIC5hZGRBbGwoV0hJVEVTUEFDRSkKKyAgICAgICAgLmFkZEFsbChTWU5UQVgpOworICAgICAgICAgICAKKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCB3aGl0ZVNwYWNlID0gV0hJVEVTUEFDRTsKKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBzeW50YXggPSBTWU5UQVg7CisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IG5vbl9zdHJpbmcgPSBOT05fU1RSSU5HOworCisgICAgcHJpdmF0ZSB2b2lkIGZpeFNldHMoKSB7CisgICAgICAgIGlmIChzeW50YXguY29udGFpbnNTb21lKFFVT1RFUlMpIHx8IHN5bnRheC5jb250YWluc1NvbWUod2hpdGVTcGFjZSkpIHsKKyAgICAgICAgICAgIHN5bnRheCA9ICgoVW5pY29kZVNldClzeW50YXguY2xvbmUoKSkucmVtb3ZlQWxsKFFVT1RFUlMpLnJlbW92ZUFsbCh3aGl0ZVNwYWNlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAod2hpdGVTcGFjZS5jb250YWluc1NvbWUoUVVPVEVSUykpIHsKKyAgICAgICAgICAgIHdoaXRlU3BhY2UgPSAoKFVuaWNvZGVTZXQpd2hpdGVTcGFjZS5jbG9uZSgpKS5yZW1vdmVBbGwoUVVPVEVSUyk7CisgICAgICAgIH0KKyAgICAgICAgbm9uX3N0cmluZyA9IG5ldyBVbmljb2RlU2V0KHN5bnRheCkKKyAgICAgICAgICAgIC5hZGRBbGwod2hpdGVTcGFjZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBUb2tlbml6ZXIgc2V0U291cmNlKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CisgICAgICAgIHRoaXMuaW5kZXggPSAwOworICAgICAgICByZXR1cm4gdGhpczsgLy8gZm9yIGNoYWluaW5nCisgICAgfQorICAgIAorICAgIHB1YmxpYyBUb2tlbml6ZXIgc2V0SW5kZXgoaW50IGluZGV4KSB7CisgICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDsKKyAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAKKyAgICAgICAgRE9ORSA9IC0xLCAKKyAgICAgICAgTlVNQkVSID0gLTIsIAorICAgICAgICBTVFJJTkcgPSAtMywgCisgICAgICAgIFVOSUNPREVTRVQgPSAtNCwgCisgICAgICAgIFVOVEVSTUlOQVRFRF9RVU9URSA9IC01LAorICAgICAgICBCQUNLRURVUF9UT09fRkFSID0gLTY7CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludAorICAgICAgICBGSVJTVCA9IDAsCisgICAgICAgIElOX05VTUJFUiA9IDEsCisgICAgICAgIElOX1NQQUNFID0gMiwKKyAgICAgICAgQUZURVJfUVVPVEUgPSAzLCAgICAvLyB3YXJuaW5nOiBvcmRlciBpcyBpbXBvcnRhbnQgZm9yIHN3aXRjaCBzdGF0ZW1lbnQKKyAgICAgICAgSU5fU1RSSU5HID0gNCwgCisgICAgICAgIEFGVEVSX0JTTEFTSCA9IDUsIAorICAgICAgICBJTl9RVU9URSA9IDY7CisgICAKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKGludCB0eXBlLCBib29sZWFuIGJhY2tlZHVwQmVmb3JlKSB7CisgICAgICAgIFN0cmluZyBzID0gYmFja2VkdXAgPyAiQCIgOiAiKiI7CisgICAgICAgIHN3aXRjaCh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIERPTkU6IAorICAgICAgICAgICAgICAgIHJldHVybiBzKyJEb25lIitzOworICAgICAgICAgICAgY2FzZSBCQUNLRURVUF9UT09fRkFSOgorICAgICAgICAgICAgICAgIHJldHVybiBzKyJJbGxlZ2FsIEJhY2t1cCIrczsKKyAgICAgICAgICAgIGNhc2UgVU5URVJNSU5BVEVEX1FVT1RFOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gcysiVW50ZXJtaW5hdGVkIFF1b3RlPSIgKyBnZXRTdHJpbmcoKSArIHM7CisgICAgICAgICAgICBjYXNlIFNUUklORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gcysicz0iICsgZ2V0U3RyaW5nKCkgKyBzOworICAgICAgICAgICAgY2FzZSBOVU1CRVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHMrIm49IiArIGdldE51bWJlcigpICsgczsKKyAgICAgICAgICAgIGNhc2UgVU5JQ09ERVNFVDoKKyAgICAgICAgICAgICAgICByZXR1cm4gcysibj0iICsgZ2V0VW5pY29kZVNldCgpICsgczsgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gcysiYz0iICsgdXNmLmdldE5hbWUodHlwZSx0cnVlKSArIHM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQmFnRm9ybWF0dGVyIHVzZiA9IG5ldyBCYWdGb3JtYXR0ZXIoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBiYWNrdXAoKSB7CisgICAgICAgIGlmIChiYWNrZWR1cCkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFja3VwIHRvbyBmYXIiKTsKKyAgICAgICAgYmFja2VkdXAgPSB0cnVlOworICAgICAgICBuZXh0SW5kZXggPSBpbmRleDsKKyAgICAgICAgaW5kZXggPSBsYXN0SW5kZXg7CisgICAgfQorICAgIAorICAgIC8qCisgICAgcHVibGljIGludCBuZXh0MigpIHsKKyAgICAgICAgYm9vbGVhbiBiYWNrZWR1cEJlZm9yZSA9IGJhY2tlZHVwOworICAgICAgICBpbnQgcmVzdWx0ID0gbmV4dCgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odG9TdHJpbmcocmVzdWx0LCBiYWNrZWR1cEJlZm9yZSkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gICAgCisgICAgKi8KKyAgICAKKyAgICBwdWJsaWMgaW50IG5leHQoKSB7CisgICAgICAgIGlmIChiYWNrZWR1cCkgeworICAgICAgICAgICAgYmFja2VkdXAgPSBmYWxzZTsKKyAgICAgICAgICAgIGluZGV4ID0gbmV4dEluZGV4OworICAgICAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgY3AgPSAwOworICAgICAgICBib29sZWFuIGluQ29tbWVudCA9IGZhbHNlOworICAgICAgICAvLyBjbGVhbiBvZmYgYW55IGxlYWRpbmcgd2hpdGVzcGFjZSBvciBjb21tZW50cworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKGluZGV4ID49IHNvdXJjZS5sZW5ndGgoKSkgcmV0dXJuIGxhc3RWYWx1ZSA9IERPTkU7CisgICAgICAgICAgICBjcCA9IG5leHRDaGFyKCk7CisgICAgICAgICAgICBpZiAoaW5Db21tZW50KSB7CisgICAgICAgICAgICAgICAgaWYgKE5FV0xJTkUuY29udGFpbnMoY3ApKSBpbkNvbW1lbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGNwID09ICcjJykgaW5Db21tZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICghd2hpdGVTcGFjZS5jb250YWlucyhjcCkpIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHJlY29yZCB0aGUgbGFzdCBpbmRleCBpbiBjYXNlIHdlIGhhdmUgdG8gYmFja3VwCisgICAgICAgIGxhc3RJbmRleCA9IGluZGV4OworICAgICAgICAKKyAgICAgICAgaWYgKGNwID09ICdbJykgeworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihpbmRleC0xKTsKKyAgICAgICAgICAgIHVuaWNvZGVTZXQgPSBuZXcgVW5pY29kZVNldChzb3VyY2UscG9zLHN5bWJvbFRhYmxlKTsKKyAgICAgICAgICAgIGluZGV4ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICByZXR1cm4gbGFzdFZhbHVlID0gVU5JQ09ERVNFVDsKKyAgICAgICAgfQorICAgICAgICAvLyBnZXQgc3ludGF4IGNoYXJhY3RlcgorICAgICAgICBpZiAoc3ludGF4LmNvbnRhaW5zKGNwKSkgcmV0dXJuIGxhc3RWYWx1ZSA9IGNwOworICAgICAgICAKKyAgICAgICAgLy8gZ2V0IG51bWJlciwgaWYgdGhlcmUgaXMgb25lCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldFR5cGUoY3ApID09IENoYXJhY3Rlci5ERUNJTUFMX0RJR0lUX05VTUJFUikgeworICAgICAgICAgICAgbnVtYmVyID0gVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoY3ApOworICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY3AgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldFR5cGUoY3ApICE9IENoYXJhY3Rlci5ERUNJTUFMX0RJR0lUX05VTUJFUikgeworICAgICAgICAgICAgICAgICAgICBpbmRleCAtPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOyAvLyBCQUNLVVAhCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBudW1iZXIgKj0gMTA7CisgICAgICAgICAgICAgICAgbnVtYmVyICs9IFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBsYXN0VmFsdWUgPSAgTlVNQkVSOworICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGludCBzdGF0dXMgPSBJTl9TVFJJTkc7CisgICAgICAgIG1haW46CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICAgICAgICAgIGNhc2UgQUZURVJfUVVPVEU6IC8vIGNoZWNrIGZvciBkb3VibGUgJyc/CisgICAgICAgICAgICAgICAgICAgIGlmIChjcCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgUVVPVEUpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gSU5fUVVPVEU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBPVEhFUldJU0UgRkFMTCBUSFJPVUdIISEhCisgICAgICAgICAgICAgICAgY2FzZSBJTl9TVFJJTkc6IAorICAgICAgICAgICAgICAgICAgICBpZiAoY3AgPT0gUVVPVEUpIHN0YXR1cyA9IElOX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjcCA9PSBCU0xBU0gpIHN0YXR1cyA9IEFGVEVSX0JTTEFTSDsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobm9uX3N0cmluZy5jb250YWlucyhjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IC09IFVURjE2LmdldENoYXJDb3VudChjcCk7IC8vIEJBQ0tVUCEKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBVVEYxNi5hcHBlbmQoYnVmZmVyLGNwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBJTl9RVU9URToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IFFVT1RFKSBzdGF0dXMgPSBBRlRFUl9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBVVEYxNi5hcHBlbmQoYnVmZmVyLGNwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBBRlRFUl9CU0xBU0g6CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChjcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbic6IGNwID0gJ1xuJzsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdyJzogY3AgPSAnXHInOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOiBjcCA9ICdcdCc7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsY3ApOworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBJTl9TVFJJTkc7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludGVybmFsIEVycm9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gc291cmNlLmxlbmd0aCgpKSBicmVhazsKKyAgICAgICAgICAgIGNwID0gbmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdHVzID4gSU5fU1RSSU5HKSByZXR1cm4gbGFzdFZhbHVlID0gVU5URVJNSU5BVEVEX1FVT1RFOworICAgICAgICByZXR1cm4gbGFzdFZhbHVlID0gIFNUUklORzsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzdHJpbmcoMCxpbmRleCkgKyAiJCQkIiArIHNvdXJjZS5zdWJzdHJpbmcoaW5kZXgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgbG9uZyBnZXROdW1iZXIoKSB7CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFVuaWNvZGVTZXQoKSB7CisgICAgICAgIHJldHVybiB1bmljb2RlU2V0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBuZXh0Q2hhcigpIHsKKyAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHNvdXJjZSxpbmRleCk7CisgICAgICAgIGluZGV4ICs9IFVURjE2LmdldENoYXJDb3VudChjcCk7CisgICAgICAgIHJldHVybiBjcDsKKyAgICB9CisgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNvdXJjZSgpIHsKKyAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9CisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0U3ludGF4KCkgeworICAgICAgICByZXR1cm4gc3ludGF4OworICAgIH0KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRXaGl0ZVNwYWNlKCkgeworICAgICAgICByZXR1cm4gd2hpdGVTcGFjZTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgc2V0U3ludGF4KFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIHN5bnRheCA9IHNldDsKKyAgICAgICAgZml4U2V0cygpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBzZXRXaGl0ZVNwYWNlKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIHdoaXRlU3BhY2UgPSBzZXQ7CisgICAgICAgIGZpeFNldHMoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFNldCBnZXRMb29rZWRVcEl0ZW1zKCkgeworICAgICAgICByZXR1cm4gc3ltYm9sVGFibGUuaXRlbXNMb29rZWRVcDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkU3ltYm9sKFN0cmluZyB2YXIsIFN0cmluZyB2YWx1ZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgLy8gdGhlIGxpbWl0IGlzIGFmdGVyIHRoZSAnOycsIHNvIHJlbW92ZSBpdAorICAgICAgICAtLWxpbWl0OworICAgICAgICBjaGFyW10gYm9keSA9IG5ldyBjaGFyW2xpbWl0IC0gc3RhcnRdOworICAgICAgICB2YWx1ZS5nZXRDaGFycyhzdGFydCwgbGltaXQsIGJvZHksIDApOworICAgICAgICBzeW1ib2xUYWJsZS5hZGQodmFyLCBib2R5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGNsYXNzIFRva2VuU3ltYm9sVGFibGUgaW1wbGVtZW50cyBTeW1ib2xUYWJsZSB7CisgICAgICAgIE1hcCBjb250ZW50cyA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIFNldCBpdGVtc0xvb2tlZFVwID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBhZGQoU3RyaW5nIHZhciwgY2hhcltdIGJvZHkpIHsKKyAgICAgICAgICAgIC8vIHN0YXJ0IGZyb20gMSB0byBhdm9pZCB0aGUgJAorICAgICAgICAgICAgY29udGVudHMucHV0KHZhci5zdWJzdHJpbmcoMSksIGJvZHkpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGUjbG9va3VwKGphdmEubGFuZy5TdHJpbmcpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhcltdIGxvb2t1cChTdHJpbmcgcykgeworICAgICAgICAgICAgaXRlbXNMb29rZWRVcC5hZGQoJyQnICsgcyk7CisgICAgICAgICAgICByZXR1cm4gKGNoYXJbXSljb250ZW50cy5nZXQocyk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGUjbG9va3VwTWF0Y2hlcihpbnQpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlN5bWJvbFRhYmxlI3BhcnNlUmVmZXJlbmNlKGphdmEubGFuZy5TdHJpbmcsIGphdmEudGV4dC5QYXJzZVBvc2l0aW9uLCBpbnQpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHBhcnNlUmVmZXJlbmNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgY3A7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQodGV4dCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKCFjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoY3ApKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhzdGFydCxpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9Cit9CisKKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmFuc2xpdGVyYXRvclV0aWxpdGllcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJhbnNsaXRlcmF0b3JVdGlsaXRpZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTZkMjhkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJhbnNsaXRlcmF0b3JVdGlsaXRpZXMuamF2YQpAQCAtMCwwICsxLDE1MiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKKworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdG9yVXRpbGl0aWVzIHsKKwlwdWJsaWMgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKwkKKwlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJUcmFuc2xpdGVyYXRvckZyb21GaWxlKFN0cmluZyBkaXIsIFN0cmluZyBpZCkgeworCQl0cnkgeworCQkJU3RyaW5nIGZpbGVuYW1lID0gaWQucmVwbGFjZSgnLScsICdfJykgKyAgIi50eHQiOworCQkJU3RyaW5nIHJ1bGVzID0gZ2V0RmlsZUNvbnRlbnRzKGRpciwgZmlsZW5hbWUpOworCQkJVHJhbnNsaXRlcmF0b3IgdDsKKwkJCWludCBwb3MgPSBpZC5pbmRleE9mKCctJyk7CisJCQlTdHJpbmcgcmlkOworCQkJaWYgKHBvcyA8IDApIHsKKwkJCQlyaWQgPSBpZCArICItQW55IjsKKwkJCQlpZCA9ICJBbnktIiArIGlkOworCQkJfSBlbHNlIHsKKwkJCQlyaWQgPSBpZC5zdWJzdHJpbmcocG9zKzEpICsgIi0iICsgaWQuc3Vic3RyaW5nKDAsIHBvcyk7CisJCQl9CisJCQl0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKGlkLCBydWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisJCQlUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKGlkKTsKKwkJCVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UodCk7CisKKwkJCS8qU3RyaW5nIHRlc3QgPSAiXHUwNDlBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDlCIjsKKwkJCVN5c3RlbS5vdXQucHJpbnRsbih0LnRyYW5zbGl0ZXJhdGUodGVzdCkpOworCQkJdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkKTsKKwkJCVN5c3RlbS5vdXQucHJpbnRsbih0LnRyYW5zbGl0ZXJhdGUodGVzdCkpOworCQkJKi8KKworCQkJdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcyhyaWQsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKwkJCVRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIocmlkKTsKKwkJCVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UodCk7CisJCQlpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJlZCBuZXcgVHJhbnNsaXRlcmF0b3I6ICIgKyBpZCArICIsICIgKyByaWQpOworCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJdGhyb3cgKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbikgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3Qgb3BlbiAiICsgZGlyICsgIiwgIiArIGlkKS5pbml0Q2F1c2UoZSk7CisvLyNlbHNlCisvLyMjICAgICAgICB0aHJvdyAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKSBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW4ndCBvcGVuICIgKyBkaXIgKyAiLCAiICsgaWQrIiAiKyBlLmdldE1lc3NhZ2UoKSk7CisvLyNlbmRpZgorCQl9CisJfQorCisJLyoqCisJICogCisJICovCisJcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RmlsZUNvbnRlbnRzKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCUJ1ZmZlcmVkUmVhZGVyIGJyID0gQmFnRm9ybWF0dGVyLm9wZW5VVEY4UmVhZGVyKGRpciwgZmlsZW5hbWUpOworLy8jZWxzZQorLy8jIyAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBUZXN0VXRpbC5vcGVuVVRGOFJlYWRlcihkaXIsIGZpbGVuYW1lKTsKKy8vI2VuZGlmIAorCQlTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCQl3aGlsZSAodHJ1ZSkgeworCQkJU3RyaW5nIGxpbmUgPSBici5yZWFkTGluZSgpOworCQkJaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisJCQlpZiAobGluZS5sZW5ndGgoKSA+IDAgJiYgbGluZS5jaGFyQXQoMCkgPT0gJ1x1RkVGRicpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsKKwkJCWJ1ZmZlci5hcHBlbmQobGluZSkuYXBwZW5kKCJcclxuIik7CisJCX0KKwkJYnIuY2xvc2UoKTsKKwkJcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgCisJfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJBU0VfUlVMRVMgPQorCSAgICAiOjogKGhleC1hbnkveG1sKTsiICsKKwkgICAgIjo6IChoZXgtYW55L3htbDEwKTsiICsgCisJICAJIic8JyA+ICcmbHQ7JyA7IiArCisJICAgICInPCcgPCAnJidbbExdW1R0XSc7JyA7IiArCisJICAgICInJicgPiAnJmFtcDsnIDsiICsKKwkgICAgIicmJyA8ICcmJ1thQV1bbU1dW3BQXSc7JyA7IiArCisJICAgICInPicgPCAnJidbZ0ddW3RUXSc7JyA7IiArCisJICAgICInXCInIDwgJyYnW3FRXVt1VV1bb09dW3RUXSc7JyA7ICIgKworCSAgICAiJycgPCAnJidbYUFdW3BQXVtvT11bc1NdJzsnIDsgIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT05URU5UX1JVTEVTID0KKyAgICAgICAgIic+JyA+ICcmZ3Q7JyA7IjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIVE1MX1JVTEVTID0gQkFTRV9SVUxFUyArIENPTlRFTlRfUlVMRVMgKyAKKyAgICAJIidcIicgPiAnJnF1b3Q7JyA7ICI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSFRNTF9SVUxFU19DT05UUk9MUyA9IEhUTUxfUlVMRVMgKyAKKyAgICAJIjo6IFtbOkM6XVs6WjpdWzp3aGl0ZXNwYWNlOl1bOkRlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQ6XV0gaGV4L3VuaWNvZGUgOyAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhUTUxfUlVMRVNfQVNDSUkgPSBIVE1MX1JVTEVTICsgCisgICAgCSI6OiBbWzpDOl1bOl5BU0NJSTpdXSBhbnktaGV4L3htbCA7ICI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgWE1MX1JVTEVTID0gSFRNTF9SVUxFUyArCisJICAgICInJyA+ICcmYXBvczsnIDsgIgorOworICAgIAorICAgIC8qCitUaGUgYW1wZXJzYW5kIGNoYXJhY3RlciAoJikgYW5kIHRoZSBsZWZ0IGFuZ2xlIGJyYWNrZXQgKDwpIE1VU1QgTk9UIGFwcGVhciAKKworaW4gdGhlaXIgbGl0ZXJhbCBmb3JtLCBleGNlcHQgd2hlbiB1c2VkIGFzIG1hcmt1cCBkZWxpbWl0ZXJzLCBvciB3aXRoaW4gYSAKKworY29tbWVudCwgYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uLCBvciBhIENEQVRBIHNlY3Rpb24uIElmIHRoZXkgYXJlIG5lZWRlZCAKKworZWxzZXdoZXJlLCB0aGV5IE1VU1QgYmUgZXNjYXBlZCB1c2luZyBlaXRoZXIgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBvciAKKwordGhlIHN0cmluZ3MgIiZhbXA7IiBhbmQgIiZsdDsiIHJlc3BlY3RpdmVseS4gVGhlIHJpZ2h0IGFuZ2xlIGJyYWNrZXQgKD4pIE1BWSAKKworYmUgcmVwcmVzZW50ZWQgdXNpbmcgdGhlIHN0cmluZyAiJmd0OyIsIGFuZCBNVVNULCBmb3IgY29tcGF0aWJpbGl0eSwgYmUgCisKK2VzY2FwZWQgdXNpbmcgZWl0aGVyICImZ3Q7IiBvciBhIGNoYXJhY3RlciByZWZlcmVuY2Ugd2hlbiBpdCBhcHBlYXJzIGluIHRoZSBzdHJpbmcgCisKKyJdXT4iIGluIGNvbnRlbnQsIHdoZW4gdGhhdCBzdHJpbmcgaXMgbm90IG1hcmtpbmcgdGhlIGVuZCBvZiBhIENEQVRBIHNlY3Rpb24uCisKK0luIHRoZSBjb250ZW50IG9mIGVsZW1lbnRzLCBjaGFyYWN0ZXIgZGF0YSBpcyBhbnkgc3RyaW5nIG9mIGNoYXJhY3RlcnMgd2hpY2ggZG9lcyAKKworbm90IGNvbnRhaW4gdGhlIHN0YXJ0LWRlbGltaXRlciBvZiBhbnkgbWFya3VwIGFuZCBkb2VzIG5vdCBpbmNsdWRlIHRoZSAKKworQ0RBVEEtc2VjdGlvbi1jbG9zZSBkZWxpbWl0ZXIsICJdXT4iLiBJbiBhIENEQVRBIHNlY3Rpb24sIGNoYXJhY3RlciBkYXRhIGlzIAorCithbnkgc3RyaW5nIG9mIGNoYXJhY3RlcnMgbm90IGluY2x1ZGluZyB0aGUgQ0RBVEEtc2VjdGlvbi1jbG9zZSBkZWxpbWl0ZXIsIAorCisiXV0+Ii4KKworVG8gYWxsb3cgYXR0cmlidXRlIHZhbHVlcyB0byBjb250YWluIGJvdGggc2luZ2xlIGFuZCBkb3VibGUgcXVvdGVzLCB0aGUgCisKK2Fwb3N0cm9waGUgb3Igc2luZ2xlLXF1b3RlIGNoYXJhY3RlciAoJykgTUFZIGJlIHJlcHJlc2VudGVkIGFzICImYXBvczsiLCBhbmQgCisKK3RoZSBkb3VibGUtcXVvdGUgY2hhcmFjdGVyICgiKSBhcyAiJnF1b3Q7Ii4KKworCisgICAgICovCisgICAgCisJcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciB0b1hNTCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKwkiYW55LXhtbCIsIFhNTF9SVUxFUywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisJcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBmcm9tWE1MID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorCSJ4bWwtYW55IiwgWE1MX1JVTEVTLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKwlwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIHRvSFRNTCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKwkiYW55LWh0bWwiLCBIVE1MX1JVTEVTLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKwlwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIHRvSFRNTENvbnRyb2wgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisJCQkiYW55LWh0bWwiLCBIVE1MX1JVTEVTX0NPTlRST0xTLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKwlwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIHRvSFRNTEFzY2lpID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorCQkJImFueS1odG1sIiwgSFRNTF9SVUxFU19BU0NJSSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisJcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBmcm9tSFRNTCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKwkiaHRtbC1hbnkiLCBIVE1MX1JVTEVTLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyaWVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmllVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmMWI2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmllVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTczIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVCdWlsZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW50VHJpZUJ1aWxkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFRyaWUuIFRlc3RzIGhlcmUgd2lsbCBiZSBzaW1wbGUsIHNpbmNlIGJvdGggQ2hhclRyaWUgYW5kIAorKiBJbnRUcmllIGFyZSB2ZXJ5IHNpbWlsYXIgYW5kIGFyZSBoZWF2aWx5IHVzZWQgaW4gb3RoZXIgcGFydHMgb2YgSUNVNEouCisqIENvZGVzIHVzaW5nIFRyaWVzIGFyZSBleHBlY3RlZCB0byBoYXZlIGRldGFpbGVkIHRlc3RzLgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEgSmFuIDAxIDIwMDIKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVHJpZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayAKK3sgCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICogQ29uc3RydWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBUcmllVGVzdCgpCisgICAgeworICAgIH0KKyAgICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKSAKKyAgICB7CisgICAgICAgIFRyaWVUZXN0IHRlc3QgPSBuZXcgVHJpZVRlc3QoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0ZXN0LmVycmxuKCJFcnJvciB0ZXN0aW5nIHRyaWV0ZXN0Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFZhbHVlcyBmb3Igc2V0dGluZyBwb3NzaWJseSBvdmVybGFwcGluZywgb3V0LW9mLW9yZGVyIHJhbmdlcyBvZiB2YWx1ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBTZXRSYW5nZSAKKyAgICB7CisgICAgICAgIFNldFJhbmdlKGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgdmFsdWUsIGJvb2xlYW4gb3ZlcndyaXRlKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICB0aGlzLm92ZXJ3cml0ZSA9IG92ZXJ3cml0ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHN0YXJ0LCBsaW1pdDsKKyAgICAgICAgaW50IHZhbHVlOworICAgICAgICBib29sZWFuIG92ZXJ3cml0ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmFsdWVzIGZvciB0ZXN0aW5nOgorICAgICAqIHZhbHVlIGlzIHNldCBmcm9tIHRoZSBwcmV2aW91cyBib3VuZGFyeSdzIGxpbWl0IHRvIGJlZm9yZQorICAgICAqIHRoaXMgYm91bmRhcnkncyBsaW1pdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIENoZWNrUmFuZ2UgCisgICAgeworICAgICAgICBDaGVja1JhbmdlKGludCBsaW1pdCwgaW50IHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBsaW1pdDsKKyAgICAgICAgaW50IHZhbHVlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBzdG9yYWdlSG9sZGVyCisgICAgeworICAgICAgICBkb3VibGUgYm9ndXM7IC8vIG5lZWRlZCBmb3IgYWxpZ2luaW5nIHRoZSBzdG9yYWdlCisgICAgICAgIGJ5dGUgc3RvcmFnZVtdID0gbmV3IGJ5dGVbMTAwMDAwMDBdOworICAgIH0KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBfdGVzdEZvbGRlZFZhbHVlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgVHJpZUJ1aWxkZXIuRGF0YU1hbmlwdWxhdGUgIAorICAgIHsKKyAgICAgICAgcHVibGljIF90ZXN0Rm9sZGVkVmFsdWUoSW50VHJpZUJ1aWxkZXIgYnVpbGRlcikKKyAgICAgICAgeworICAgICAgICAgICAgbV9idWlsZGVyXyA9IGJ1aWxkZXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGVkVmFsdWUoaW50IHN0YXJ0LCBpbnQgb2Zmc2V0KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZm9sZGVkVmFsdWUgPSAwOworICAgICAgICAgICAgaW50IGxpbWl0ID0gc3RhcnQgKyAweDQwMDsKKyAgICAgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gbV9idWlsZGVyXy5nZXRWYWx1ZShzdGFydCk7CisgICAgICAgICAgICAgICAgaWYgKG1fYnVpbGRlcl8uaXNJblplcm9CbG9jayhzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gVHJpZUJ1aWxkZXIuREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZm9sZGVkVmFsdWUgfD0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICsrIHN0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAoZm9sZGVkVmFsdWUgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAob2Zmc2V0IDw8IDE2KSB8IGZvbGRlZFZhbHVlOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIEludFRyaWVCdWlsZGVyIG1fYnVpbGRlcl87CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIF90ZXN0Rm9sZGluZ09mZnNldCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgVHJpZS5EYXRhTWFuaXB1bGF0ZSAKKyAgICB7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGluZ09mZnNldChpbnQgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZSA+Pj4gMTY7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgX3Rlc3RFbnVtVmFsdWUgZXh0ZW5kcyBUcmllSXRlcmF0b3IKKyAgICB7CisgICAgICAgIHB1YmxpYyBfdGVzdEVudW1WYWx1ZShUcmllIGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKGRhdGEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgaW50IGV4dHJhY3QoaW50IHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWUgXiAweDU1NTU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0VHJpZUl0ZXJhdGlvbihJbnRUcmllIHRyaWUsIENoZWNrUmFuZ2UgY2hlY2tSYW5nZXNbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudENoZWNrUmFuZ2VzKSAKKyAgICB7CisgICAgICAgIC8vIHdyaXRlIGEgc3RyaW5nCisgICAgICAgIGludCBjb3VudFZhbHVlcyA9IDA7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgdmFsdWVzW10gPSBuZXcgaW50WzMwXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudENoZWNrUmFuZ2VzOyArKyBpKSB7CisgICAgICAgICAgICBpbnQgYyA9IGNoZWNrUmFuZ2VzW2ldLmxpbWl0OworICAgICAgICAgICAgaWYgKGMgIT0gMCkgeworICAgICAgICAgICAgICAgIC0tIGM7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHMsIGMpOworICAgICAgICAgICAgICAgIHZhbHVlc1tjb3VudFZhbHVlcyArK10gPSBjaGVja1Jhbmdlc1tpXS52YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgbGltaXQgPSBzLmxlbmd0aCgpOworICAgICAgICAvLyB0cnkgZm9yd2FyZAorICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUocCA8IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChzLCBwKTsKKyAgICAgICAgICAgIHAgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgaW50IHZhbHVlID0gdHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZXNbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigid3JvbmcgdmFsdWUgZnJvbSBVVFJJRV9ORVhUKFUrIiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoYykgKyAiKTogMHgiIAorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZSkgKyAiIGluc3RlYWQgb2YgMHgiCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlc1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gdW5saWtlIHRoZSBjIHZlcnNpb24gbGVhZCBpcyAwIGlmIGMgaXMgbm9uLXN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgIGNoYXIgbGVhZCA9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoYyk7CisgICAgICAgICAgICBjaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoYyk7IAorICAgICAgICAgICAgaWYgKGxlYWQgPT0gMCAKKyAgICAgICAgICAgICAgICA/IHRyYWlsICE9IHMuY2hhckF0KHAgLSAxKSAKKyAgICAgICAgICAgICAgICA6ICFVVEYxNi5pc0xlYWRTdXJyb2dhdGUobGVhZCkgCisgICAgICAgICAgICAgICAgICB8fCAhVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkgfHwgbGVhZCAhPSBzLmNoYXJBdChwIC0gMikgCisgICAgICAgICAgICAgICAgICB8fCB0cmFpbCAhPSBzLmNoYXJBdChwIC0gMSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigid3JvbmcgKGxlYWQsIHRyYWlsKSBmcm9tIFVUUklFX05FWFQoVSsiIAorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVhZCAhPSAwKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSB0cmllLmdldExlYWRWYWx1ZShsZWFkKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHRyaWUuZ2V0VHJhaWxWYWx1ZSh2YWx1ZSwgdHJhaWwpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB0cmllLmdldFN1cnJvZ2F0ZVZhbHVlKGxlYWQsIHRyYWlsKQorICAgICAgICAgICAgICAgICAgICAmJiB2YWx1ZSAhPSB2YWx1ZXNbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIndyb25nIHZhbHVlIGZyb20gZ2V0dGluZyBzdXBwbGVtZW50YXJ5ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgInZhbHVlcyAoVSsiIAorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoYykgKyAiKTogMHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZSkgKyAiIGluc3RlYWQgb2YgMHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZXNbaV0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICArKyBpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBfdGVzdFRyaWVSYW5nZXMoU2V0UmFuZ2Ugc2V0UmFuZ2VzW10sIGludCBjb3VudFNldFJhbmdlcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGVja1JhbmdlIGNoZWNrUmFuZ2VzW10sIGludCBjb3VudENoZWNrUmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsYXRpbjFMaW5lYXIpIAorICAgIHsKKyAgICAgICAgSW50VHJpZUJ1aWxkZXIgbmV3VHJpZSA9IG5ldyBJbnRUcmllQnVpbGRlcihudWxsLCAyMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUmFuZ2VzWzBdLnZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Jhbmdlc1swXS52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbjFMaW5lYXIpOworICAgIAorICAgICAgICAvLyBzZXQgdmFsdWVzIGZyb20gc2V0UmFuZ2VzW10KKyAgICAgICAgYm9vbGVhbiBvayA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRTZXRSYW5nZXM7ICsrIGkpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHNldFJhbmdlc1tpXS5zdGFydDsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IHNldFJhbmdlc1tpXS5saW1pdDsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IHNldFJhbmdlc1tpXS52YWx1ZTsKKyAgICAgICAgICAgIGJvb2xlYW4gb3ZlcndyaXRlID0gc2V0UmFuZ2VzW2ldLm92ZXJ3cml0ZTsKKyAgICAgICAgICAgIGlmICgobGltaXQgLSBzdGFydCkgPT0gMSAmJiBvdmVyd3JpdGUpIHsKKyAgICAgICAgICAgICAgICBvayAmPSBuZXdUcmllLnNldFZhbHVlKHN0YXJ0LCB2YWx1ZSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgb2sgJj0gbmV3VHJpZS5zZXRSYW5nZShzdGFydCwgbGltaXQsIHZhbHVlLCBvdmVyd3JpdGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgIGVycmxuKCJzZXR0aW5nIHZhbHVlcyBpbnRvIGEgdHJpZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB2ZXJpZnkgdGhhdCBhbGwgdGhlc2UgdmFsdWVzIGFyZSBpbiB0aGUgbmV3IFRyaWUKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudENoZWNrUmFuZ2VzOyArKyBpKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBjaGVja1Jhbmdlc1tpXS5saW1pdDsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IGNoZWNrUmFuZ2VzW2ldLnZhbHVlOworICAgIAorICAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbmV3VHJpZS5nZXRWYWx1ZShzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIm5ld1RyaWUgW1UrIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHN0YXJ0KSArICJdPT0weCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhuZXdUcmllLmdldFZhbHVlKHN0YXJ0KSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgSW50VHJpZSB0cmllID0gbmV3VHJpZS5zZXJpYWxpemUobmV3IF90ZXN0Rm9sZGVkVmFsdWUobmV3VHJpZSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgX3Rlc3RGb2xkaW5nT2Zmc2V0KCkpOworICAgIAorICAgICAgICAvLyB0ZXN0IGxpbmVhciBMYXRpbi0xIHJhbmdlIGZyb20gdXRyaWVfZ2V0RGF0YSgpCisgICAgICAgIGlmIChsYXRpbjFMaW5lYXIpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRDaGVja1JhbmdlcyAmJiBzdGFydCA8PSAweGZmOyArKyBpKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gY2hlY2tSYW5nZXNbaV0ubGltaXQ7CisgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gY2hlY2tSYW5nZXNbaV0udmFsdWU7CisgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQgJiYgc3RhcnQgPD0gMHhmZikgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gdHJpZS5nZXRMYXRpbjFMaW5lYXJWYWx1ZSgoY2hhcilzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbnRUcmllLmdldExhdGluMUxpbmVhclZhbHVlW1UrIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhzdGFydCkgKyAiXT09MHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZS5nZXRMYXRpbjFMaW5lYXJWYWx1ZSgoY2hhcikgc3RhcnQpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArKyBzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGxhdGluMUxpbmVhciAhPSB0cmllLmlzTGF0aW4xTGluZWFyKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0cmllIHNlcmlhbGl6YXRpb24gZGlkIG5vdCBwcmVzZXJ2ZSAiCisgICAgICAgICAgICAgICAgICArICJMYXRpbi0xLWxpbmVhcml0eSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHZlcmlmeSB0aGF0IGFsbCB0aGVzZSB2YWx1ZXMgYXJlIGluIHRoZSBzZXJpYWxpemVkIFRyaWUKKyAgICAgICAgc3RhcnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50Q2hlY2tSYW5nZXM7ICsrIGkpIHsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGNoZWNrUmFuZ2VzW2ldLmxpbWl0OworICAgICAgICAgICAgaW50IHZhbHVlID0gY2hlY2tSYW5nZXNbaV0udmFsdWU7CisgICAgCisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gMHhkODAwKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IDB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUyID0gdHJpZS5nZXRCTVBWYWx1ZSgoY2hhcilzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzZXJpYWxpemVkIHRyaWUuZ2V0Qk1QVmFsdWUoVSsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoc3RhcnQpICsgIiA9PSAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUyKSArICIgaW5zdGVhZCBvZiAweCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKXN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUyID0gdHJpZS5nZXRMZWFkVmFsdWUoKGNoYXIpc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IHZhbHVlMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzZXJpYWxpemVkIHRyaWUuZ2V0TGVhZFZhbHVlKFUrIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHN0YXJ0KSArICIgPT0gMHgiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlMikgKyAiIGluc3RlYWQgb2YgMHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUyID0gdHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShzdGFydCk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IHZhbHVlMikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigic2VyaWFsaXplZCB0cmllLmdldENvZGVQb2ludFZhbHVlKFUrIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoc3RhcnQpICsgIik9PTB4IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlMikgKyAiIGluc3RlYWQgb2YgMHgiIAorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gZW51bWVyYXRlIGFuZCB2ZXJpZnkgYWxsIHJhbmdlcworICAgICAgICAKKyAgICAgICAgaW50IGVudW1SYW5nZXMgPSAxOworICAgICAgICBUcmllSXRlcmF0b3IgaXRlciAgPSBuZXcgX3Rlc3RFbnVtVmFsdWUodHJpZSk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICB3aGlsZSAoaXRlci5uZXh0KHJlc3VsdCkpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnQgIT0gY2hlY2tSYW5nZXNbZW51bVJhbmdlcyAtMV0ubGltaXQgCisgICAgICAgICAgICAgICAgfHwgcmVzdWx0LmxpbWl0ICE9IGNoZWNrUmFuZ2VzW2VudW1SYW5nZXNdLmxpbWl0CisgICAgICAgICAgICAgICAgfHwgKHJlc3VsdC52YWx1ZSBeIDB4NTU1NSkgIT0gY2hlY2tSYW5nZXNbZW51bVJhbmdlc10udmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidXRyaWVfZW51bSgpIGRlbGl2ZXJzIHdyb25nIHJhbmdlIFtVKyIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSArICIuLlUrIiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LmxpbWl0KSArICJdLjB4IiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnZhbHVlIF4gMHg1NTU1KSAKKyAgICAgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiBbVSsiCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoZWNrUmFuZ2VzW2VudW1SYW5nZXMgLTFdLmxpbWl0KSAKKyAgICAgICAgICAgICAgICAgICAgICArICIuLlUrIiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2hlY2tSYW5nZXNbZW51bVJhbmdlc10ubGltaXQpIAorICAgICAgICAgICAgICAgICAgICAgICsgIl0uMHgiIAorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjaGVja1Jhbmdlc1tlbnVtUmFuZ2VzXS52YWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW51bVJhbmdlcyArKzsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB0ZXN0IGxpbmVhciBMYXRpbi0xIHJhbmdlCisgICAgICAgIGlmICh0cmllLmlzTGF0aW4xTGluZWFyKCkpIHsKKyAgICAgICAgICAgIGZvciAoc3RhcnQgPSAwOyBzdGFydCA8IDB4MTAwOyArKyBzdGFydCkgeworICAgICAgICAgICAgICAgIGlmICh0cmllLmdldExhdGluMUxpbmVhclZhbHVlKChjaGFyKXN0YXJ0KSAKKyAgICAgICAgICAgICAgICAgICAgIT0gdHJpZS5nZXRMZWFkVmFsdWUoKGNoYXIpc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0cmllLmdldExhdGluMUxpbmVhclZhbHVlW1UrIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoc3RhcnQpICsgIl09MHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmllLmdldExhdGluMUxpbmVhclZhbHVlKChjaGFyKXN0YXJ0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGluc3RlYWQgb2YgMHgiIAorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZS5nZXRMZWFkVmFsdWUoKGNoYXIpc3RhcnQpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIF90ZXN0VHJpZUl0ZXJhdGlvbih0cmllLCBjaGVja1JhbmdlcywgY291bnRDaGVja1Jhbmdlcyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBfdGVzdFRyaWVSYW5nZXMyKFNldFJhbmdlIHNldFJhbmdlc1tdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnRTZXRSYW5nZXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrUmFuZ2UgY2hlY2tSYW5nZXNbXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50Q2hlY2tSYW5nZXMpIAorICAgIHsKKyAgICAgICAgX3Rlc3RUcmllUmFuZ2VzKHNldFJhbmdlcywgY291bnRTZXRSYW5nZXMsIGNoZWNrUmFuZ2VzLCBjb3VudENoZWNrUmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgX3Rlc3RUcmllUmFuZ2VzKHNldFJhbmdlcywgY291bnRTZXRSYW5nZXMsIGNoZWNrUmFuZ2VzLCBjb3VudENoZWNrUmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBfdGVzdFRyaWVSYW5nZXM0KFNldFJhbmdlIHNldFJhbmdlc1tdLCBpbnQgY291bnRTZXRSYW5nZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tSYW5nZSBjaGVja1Jhbmdlc1tdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnRDaGVja1JhbmdlcykgCisgICAgeworICAgICAgICBfdGVzdFRyaWVSYW5nZXMyKHNldFJhbmdlcywgY291bnRTZXRSYW5nZXMsIGNoZWNrUmFuZ2VzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudENoZWNrUmFuZ2VzKTsKKyAgICB9CisgICAgCisgICAgLy8gdGVzdCBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKiAKKyAgICAgKiBzZXQgY29uc2VjdXRpdmUgcmFuZ2VzLCBldmVuIHdpdGggdmFsdWUgMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNldFJhbmdlIHNldFJhbmdlczFbXT17CisgICAgICAgIG5ldyBTZXRSYW5nZSgwLCAgICAgIDB4MjAsICAgICAgIDAsICAgICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgyMCwgICAweGE3LCAgICAgICAweDEyMzQsIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4YTcsICAgMHgzNDAwLCAgICAgMCwgICAgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDM0MDAsIDB4OWZhNiwgICAgIDB4NjE2MiwgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHg5ZmE2LCAweGRhOWUsICAgICAweDMxMzIsIGZhbHNlKSwKKyAgICAgICAgLy8gdHJ5IHRvIGRpc3J1cHQgX3Rlc3RGb2xkaW5nT2Zmc2V0MTYoKQorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhkYWRhLCAweGVlZWUsICAgICAweDg3ZmYsIGZhbHNlKSwgCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGVlZWUsIDB4MTExMTEsICAgIDEsICAgICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgxMTExMSwgMHg0NDQ0NCwgICAweDYxNjIsIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4NDQ0NDQsIDB4NjAwMDMsICAgMCwgICAgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGYwMDAzLCAweGYwMDA0LCAgIDB4ZiwgICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhmMDAwNCwgMHhmMDAwNiwgICAweDEwLCAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZjAwMDYsIDB4ZjAwMDcsICAgMHgxMSwgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGYwMDA3LCAweGYwMDIwLCAgIDB4MTIsICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhmMDAyMCwgMHgxMTAwMDAsICAwLCAgICAgIGZhbHNlKQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2hlY2tSYW5nZSBjaGVja1JhbmdlczFbXT17CisgICAgICAgIG5ldyBDaGVja1JhbmdlKDAsICAgICAgMCksIC8vIGR1bW15IHN0YXJ0IHJhbmdlIHRvIG1ha2UgX3Rlc3RFbnVtUmFuZ2UoKSBzaW1wbGVyCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MjAsICAgMCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4YTcsICAgMHgxMjM0KSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgzNDAwLCAwKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHg5ZmE2LCAweDYxNjIpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGRhOWUsIDB4MzEzMiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZGFkYSwgMCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZWVlZSwgMHg4N2ZmKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgxMTExMSwxKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHg0NDQ0NCwweDYxNjIpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGYwMDAzLDApLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGYwMDA0LDB4ZiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZjAwMDYsMHgxMCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZjAwMDcsMHgxMSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZjAwMjAsMHgxMiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MTEwMDAwLCAwKQorICAgIH07CisgICAgCisgICAgLyoqIAorICAgICAqIHNldCBzb21lIGludGVyZXN0aW5nIG92ZXJsYXBwaW5nIHJhbmdlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNldFJhbmdlIHNldFJhbmdlczJbXT17CisgICAgICAgIG5ldyBTZXRSYW5nZSgweDIxLCAgIDB4N2YsICAgICAgIDB4NTU1NSwgdHJ1ZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDJmODAwLDB4MmZlZGMsICAgIDB4N2EsICAgdHJ1ZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDcyLCAgIDB4ZGQsICAgICAgIDMsICAgICAgdHJ1ZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGRkLCAgIDB4ZGUsICAgICAgIDQsICAgICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgyZjk4NywweDJmYTk4LCAgICA1LCAgICAgIHRydWUpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgyZjc3NywweDJmODMzLCAgICAwLCAgICAgIHRydWUpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgyZjkwMCwweDJmZmVlLCAgICAxLCAgICAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MmZmZWUsMHgyZmZlZiwgICAgMiwgICAgICB0cnVlKQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2hlY2tSYW5nZSBjaGVja1JhbmdlczJbXT17CisgICAgICAgIC8vIGR1bW15IHN0YXJ0IHJhbmdlIHRvIG1ha2UgX3Rlc3RFbnVtUmFuZ2UoKSBzaW1wbGVyCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDAsICAgICAgMCksICAgICAgIAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDIxLCAgIDApLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDcyLCAgIDB4NTU1NSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZGQsICAgMyksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZGUsICAgNCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MmY4MzMsMCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MmY5ODcsMHg3YSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MmZhOTgsNSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MmZlZGMsMHg3YSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MmZmZWUsMSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MmZmZWYsMiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MTEwMDAwLCAwKQorICAgIH07CisgICAgCisgICAgLyoqIAorICAgICAqIHVzZSBhIG5vbi16ZXJvIGluaXRpYWwgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTZXRSYW5nZSBzZXRSYW5nZXMzW109eworICAgICAgICBuZXcgU2V0UmFuZ2UoMHgzMSwgICAweGE0LCAgIDEsICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDM0MDAsIDB4Njc4OSwgMiwgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MzAwMDAsMHgzNDU2Nyw5LCAgdHJ1ZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDQ1Njc4LDB4NTY3ODksMywgIHRydWUpCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBDaGVja1JhbmdlIGNoZWNrUmFuZ2VzM1tdPXsKKyAgICAgICAgLy8gZHVtbXkgc3RhcnQgcmFuZ2UsIGFsc28gY2FycmllcyB0aGUgaW5pdGlhbCB2YWx1ZQorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgwLCAgICAgIDkpLCAgCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MzEsICAgOSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4YTQsICAgMSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MzQwMCwgOSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4Njc4OSwgMiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4NDU2NzgsOSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4NTY3ODksMyksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MTEwMDAwLDkpCisgICAgfTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW50VHJpZSgpIAorICAgIHsKKyAgICAgICAgX3Rlc3RUcmllUmFuZ2VzNChzZXRSYW5nZXMxLCBzZXRSYW5nZXMxLmxlbmd0aCwgY2hlY2tSYW5nZXMxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1JhbmdlczEubGVuZ3RoKTsKKyAgICAgICAgX3Rlc3RUcmllUmFuZ2VzNChzZXRSYW5nZXMyLCBzZXRSYW5nZXMyLmxlbmd0aCwgY2hlY2tSYW5nZXMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1JhbmdlczIubGVuZ3RoKTsgCisgICAgICAgIF90ZXN0VHJpZVJhbmdlczQoc2V0UmFuZ2VzMywgc2V0UmFuZ2VzMy5sZW5ndGgsIGNoZWNrUmFuZ2VzMywgCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tSYW5nZXMzLmxlbmd0aCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDaGFyVmFsdWVzKCkKKyAgICB7CisgICAgICAgIENoYXJUcmllIHRyaWUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgIHRyaWUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS5tX3RyaWVfOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBjcmVhdGluZyB1Y2hhcmFjdGVyIHRyaWUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAweEZGRkY7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChpIDwgMHhGRiAKKyAgICAgICAgICAgICAgICAmJiB0cmllLmdldEJNUFZhbHVlKChjaGFyKWkpIAorICAgICAgICAgICAgICAgICAgICAhPSB0cmllLmdldExhdGluMUxpbmVhclZhbHVlKChjaGFyKWkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZvciBsYXRpbiAxIGNvZGVwb2ludCwgZ2V0Qk1QVmFsdWUgc2hvdWxkIGJlIHRoZSBzYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAiYXMgZ2V0TGF0aW4xTGluZWFyVmFsdWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0cmllLmdldEJNUFZhbHVlKChjaGFyKWkpICE9IHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRm9yIEJNUCBjb2RlcG9pbnQsIGdldEJNUFZhbHVlIHNob3VsZCBiZSB0aGUgc2FtZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgImFzIGdldENvZGVwb2ludFZhbHVlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MTAwMDA7IGkgPCAweDEwZmZmZjsgaSArKykgeworICAgICAgICAgICAgY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShpKTsKKyAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShpKTsKKyAgICAgICAgICAgIGNoYXIgdmFsdWUgPSB0cmllLmdldENvZGVQb2ludFZhbHVlKGkpOworICAgICAgICAgICAgaWYgKHZhbHVlICE9IHRyaWUuZ2V0U3Vycm9nYXRlVmFsdWUobGVhZCwgdHJhaWwpIHx8CisgICAgICAgICAgICAgICAgdmFsdWUgIT0gdHJpZS5nZXRUcmFpbFZhbHVlKHRyaWUuZ2V0TGVhZFZhbHVlKGxlYWQpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZvciBOb24tQk1QIGNvZGVwb2ludHMsIGdldFN1cnJvZ2F0ZVZhbHVlIHNob3VsZCBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgKyAidGhlIHNhbWUgcyBnZXRDb2RlcG9pbnRWYWx1ZSBhbmQgZ2V0VHJhaWxWYWx1ZSIpOworICAgICAgICAgICAgfSAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBEdW1teUdldEZvbGRpbmdPZmZzZXQgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRlIHsKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOyAvKiBuZXZlciBnZXQgbm9uLWluaXRpYWxWYWx1ZSBkYXRhIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RHVtbXlDaGFyVHJpZSgpIHsKKyAgICAgICAgQ2hhclRyaWUgdHJpZTsKKyAgICAgICAgZmluYWwgaW50IGluaXRpYWxWYWx1ZT0weDMxMywgbGVhZFVuaXRWYWx1ZT0weGFmZmU7IAorICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIGludCBjOworICAgICAgICB0cmllPW5ldyBDaGFyVHJpZShpbml0aWFsVmFsdWUsIGxlYWRVbml0VmFsdWUsIG5ldyBEdW1teUdldEZvbGRpbmdPZmZzZXQoKSk7CisKKyAgICAgICAgLyogdGVzdCB0aGF0IGFsbCBjb2RlIHBvaW50cyBoYXZlIGluaXRpYWxWYWx1ZSAqLworICAgICAgICBmb3IoYz0wOyBjPD0weDEwZmZmZjsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZT10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAgICAgaWYodmFsdWUhPWluaXRpYWxWYWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyVHJpZS9kdW1teS5nZXRDb2RlUG9pbnRWYWx1ZShjKShVKyIraGV4KGMpKyIpPTB4IitoZXgodmFsdWUpKyIgaW5zdGVhZCBvZiAweCIraGV4KGluaXRpYWxWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogdGVzdCB0aGF0IHRoZSBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzIGhhdmUgbGVhZFVuaXRWYWx1ZSAqLworICAgICAgICBmb3IoYz0weGQ4MDA7IGM8PTB4ZGJmZjsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZT10cmllLmdldExlYWRWYWx1ZSgoY2hhciljKTsKKyAgICAgICAgICAgIGlmKHZhbHVlIT1sZWFkVW5pdFZhbHVlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJUcmllL2R1bW15LmdldExlYWRWYWx1ZShjKShVKyIraGV4KGMpKyIpPTB4IitoZXgodmFsdWUpKyIgaW5zdGVhZCBvZiAweCIraGV4KGxlYWRVbml0VmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3REdW1teUludFRyaWUoKSB7CisgICAgICAgIEludFRyaWUgdHJpZTsKKyAgICAgICAgZmluYWwgaW50IGluaXRpYWxWYWx1ZT0weDAxMjM0NTY3LCBsZWFkVW5pdFZhbHVlPTB4ODlhYmNkZWY7IAorICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIGludCBjOworICAgICAgICB0cmllPW5ldyBJbnRUcmllKGluaXRpYWxWYWx1ZSwgbGVhZFVuaXRWYWx1ZSwgbmV3IER1bW15R2V0Rm9sZGluZ09mZnNldCgpKTsKKworICAgICAgICAvKiB0ZXN0IHRoYXQgYWxsIGNvZGUgcG9pbnRzIGhhdmUgaW5pdGlhbFZhbHVlICovCisgICAgICAgIGZvcihjPTA7IGM8PTB4MTBmZmZmOyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICBpZih2YWx1ZSE9aW5pdGlhbFZhbHVlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkludFRyaWUvZHVtbXkuZ2V0Q29kZVBvaW50VmFsdWUoYykoVSsiK2hleChjKSsiKT0weCIraGV4KHZhbHVlKSsiIGluc3RlYWQgb2YgMHgiK2hleChpbml0aWFsVmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIHRlc3QgdGhhdCB0aGUgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0cyBoYXZlIGxlYWRVbml0VmFsdWUgKi8KKyAgICAgICAgZm9yKGM9MHhkODAwOyBjPD0weGRiZmY7ICsrYykgeworICAgICAgICAgICAgdmFsdWU9dHJpZS5nZXRMZWFkVmFsdWUoKGNoYXIpYyk7CisgICAgICAgICAgICBpZih2YWx1ZSE9bGVhZFVuaXRWYWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbnRUcmllL2R1bW15LmdldExlYWRWYWx1ZShjKShVKyIraGV4KGMpKyIpPTB4IitoZXgodmFsdWUpKyIgaW5zdGVhZCBvZiAweCIraGV4KGxlYWRVbml0VmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VMb2NhbGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9VTG9jYWxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNzZhZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9VTG9jYWxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTMwNyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogSmFudWFyeSAxNCAyMDA0CisqIFNpbmNlOiBJQ1UgMi44CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisKK3B1YmxpYyBjbGFzcyBVTG9jYWxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVUxvY2FsZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhbGVuZGFyKCkgeworICAgICAgICAvLyBUT0RPIFRoZSBDYWxlbmRhckZhY3RvcnkgbWVjaGFuaXNtIGlzIG5vdCBwdWJsaWMsCisgICAgICAgIC8vIHNvIHdlIGNhbid0IHRlc3QgaXQgeWV0LiAgSWYgaXQgYmVjb21lcyBwdWJsaWMsCisgICAgICAgIC8vIGVuYWJsZSB0aGlzIGNvZGUuCisKKyAgICAgICAgLy8gY2xhc3MgQ0ZhY3RvcnkgaW1wbGVtZW50cyBDYWxlbmRhckZhY3RvcnkgeworICAgICAgICAvLyAgICAgTG9jYWxlIGxvYzsKKyAgICAgICAgLy8gICAgIENhbGVuZGFyIHByb3RvOworICAgICAgICAvLyAgICAgcHVibGljIENGYWN0b3J5KExvY2FsZSBsb2NhbGUsIENhbGVuZGFyIHByb3RvdHlwZSkgeworICAgICAgICAvLyAgICAgICAgIGxvYyA9IGxvY2FsZTsKKyAgICAgICAgLy8gICAgICAgICBwcm90byA9IHByb3RvdHlwZTsKKyAgICAgICAgLy8gICAgIH0KKyAgICAgICAgLy8gICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLy8gICAgICAgICAvLyBpZ25vcmUgdHogLS0gbm90IHJlbGV2YW50IHRvIHRoaXMgdGVzdAorICAgICAgICAvLyAgICAgICAgIHJldHVybiBsb2NhbGUuZXF1YWxzKGxvYykgPworICAgICAgICAvLyAgICAgICAgICAgICAoQ2FsZW5kYXIpIHByb3RvLmNsb25lKCkgOiBudWxsOworICAgICAgICAvLyAgICAgfQorICAgICAgICAvLyAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgLy8gICAgICAgICByZXR1cm4gIkNGYWN0b3J5IjsKKyAgICAgICAgLy8gICAgIH0KKyAgICAgICAgLy8gfTsKKworICAgICAgICBjaGVja1NlcnZpY2UoImVuX1VTX0JST09LTFlOIiwgbmV3IFNlcnZpY2VGYWNhZGUoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENhbGVuZGFyLmdldEluc3RhbmNlKHJlcSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIH0sIG51bGwsIG5ldyBSZWdpc3RyYXIoKSB7CisgICAgICAgICAgICAgICAgLy8gICAgIHB1YmxpYyBPYmplY3QgcmVnaXN0ZXIoVUxvY2FsZSBsb2MsIE9iamVjdCBwcm90b3R5cGUpIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgIENGYWN0b3J5IGYgPSBuZXcgQ0ZhY3RvcnkobG9jLCAoQ2FsZW5kYXIpIHByb3RvdHlwZSk7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gQ2FsZW5kYXIucmVnaXN0ZXIoZiwgbG9jKTsKKyAgICAgICAgICAgICAgICAvLyAgICAgfQorICAgICAgICAgICAgICAgIC8vICAgICBwdWJsaWMgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrZXkpIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJldHVybiBDYWxlbmRhci51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgICAgICAgICAgLy8gICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIC8vIEN1cnJlbmN5IGdldExvY2FsZSBBUEkgaXMgb2Jzb2xldGUgaW4gMy4yLiAgU2luY2UgaXQgbm93IHJldHVybnMgVUxvY2FsZS5ST09ULAorICAgIC8vIGFuZCB0aGlzIGlzIG5vdCBlcXVhbCB0byB0aGUgcmVxdWVzdGVkIGxvY2FsZSB6aF9UV19UQUlQRUksIHRoZQorICAgIC8vIGNoZWNrU2VydmljZSBjYWxsIHdvdWxkIGFsd2F5cyBmYWlsLiAgU28gd2Ugbm93IG9taXQgdGhlIHRlc3QuCisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3koKSB7CisgICAgICAgIGNoZWNrU2VydmljZSgiemhfVFdfVEFJUEVJIiwgbmV3IFNlcnZpY2VGYWNhZGUoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEN1cnJlbmN5LmdldEluc3RhbmNlKHJlcSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgbnVsbCwgbmV3IFJlZ2lzdHJhcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCByZWdpc3RlcihVTG9jYWxlIGxvYywgT2JqZWN0IHByb3RvdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEN1cnJlbmN5LnJlZ2lzdGVySW5zdGFuY2UoKEN1cnJlbmN5KSBwcm90b3R5cGUsIGxvYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3VycmVuY3kudW5yZWdpc3RlcihrZXkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgfQorICAgICovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnJlYWtJdGVyYXRvcigpIHsKKyAgICAgICAgY2hlY2tTZXJ2aWNlKCJqYV9KUF9PU0FLQSIsIG5ldyBTZXJ2aWNlRmFjYWRlKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKFVMb2NhbGUgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShyZXEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIG51bGwsIG5ldyBSZWdpc3RyYXIoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgcmVnaXN0ZXIoVUxvY2FsZSBsb2MsIE9iamVjdCBwcm90b3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCcmVha0l0ZXJhdG9yKSBwcm90b3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYywgQnJlYWtJdGVyYXRvci5LSU5EX1dPUkQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IudW5yZWdpc3RlcihrZXkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdG9yKCkgeworICAgICAgICBjaGVja1NlcnZpY2UoImphX0pQX1lPS09IQU1BIiwgbmV3IFNlcnZpY2VGYWNhZGUoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbGxhdG9yLmdldEluc3RhbmNlKHJlcSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgbnVsbCwgbmV3IFJlZ2lzdHJhcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCByZWdpc3RlcihVTG9jYWxlIGxvYywgT2JqZWN0IHByb3RvdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbGxhdG9yLnJlZ2lzdGVySW5zdGFuY2UoKENvbGxhdG9yKSBwcm90b3R5cGUsIGxvYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29sbGF0b3IudW5yZWdpc3RlcihrZXkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXQoKSB7CisgICAgICAgIGNoZWNrU2VydmljZSgiZGVfQ0hfWlVSSUNIIiwgbmV3IFNlcnZpY2VGYWNhZGUoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgcmVxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCBuZXcgU3Vib2JqZWN0KCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGdldChPYmplY3QgcGFyZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChTaW1wbGVEYXRlRm9ybWF0KSBwYXJlbnQpLmdldERhdGVGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LCBudWxsKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TnVtYmVyRm9ybWF0KCkgeworICAgICAgICBjbGFzcyBORmFjdG9yeSBleHRlbmRzIFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IHByb3RvOworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGU7CisgICAgICAgICAgICBwdWJsaWMgTkZhY3RvcnkoVUxvY2FsZSBsb2MsIE51bWJlckZvcm1hdCBmbXQpIHsKKyAgICAgICAgICAgICAgICBzdXBlcihsb2MpOworICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jOworICAgICAgICAgICAgICAgIHRoaXMucHJvdG8gPSBmbXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUZvcm1hdChVTG9jYWxlIGxvYywgaW50IGZvcm1hdFR5cGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKE51bWJlckZvcm1hdCkgKGxvY2FsZS5lcXVhbHMobG9jKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90by5jbG9uZSgpIDogbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjaGVja1NlcnZpY2UoImZyX0ZSX05JQ0UiLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKHJlcSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgbmV3IFN1Ym9iamVjdCgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IHBhcmVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoRGVjaW1hbEZvcm1hdCkgcGFyZW50KS5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwgbmV3IFJlZ2lzdHJhcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgcmVnaXN0ZXIoVUxvY2FsZSBsb2MsIE9iamVjdCBwcm90b3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBORmFjdG9yeSBmID0gbmV3IE5GYWN0b3J5KGxvYywgKE51bWJlckZvcm1hdCkgcHJvdG90eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyRm9ybWF0LnJlZ2lzdGVyRmFjdG9yeShmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJGb3JtYXQudW5yZWdpc3RlcihrZXkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0VUxvY2FsZUtleXdvcmRzKCkgeworICAgICAgICBVTG9jYWxlIHVsb2MgPSBuZXcgVUxvY2FsZSgiZW5fTGF0bl9VUyIpOworICAgICAgICB1bG9jID0gdWxvYy5zZXRLZXl3b3JkVmFsdWUoIkZvbyIsICJGb29WYWx1ZSIpOworICAgICAgICBpZiAoISJlbl9MYXRuX1VTQGZvbz1Gb29WYWx1ZSIuZXF1YWxzKHVsb2MuZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byBhZGQgZm9vIGtleXdvcmQsIGdvdDogIiArIHVsb2MuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICB1bG9jID0gdWxvYy5zZXRLZXl3b3JkVmFsdWUoIkJhciIsICJCYXJWYWx1ZSIpOworICAgICAgICBpZiAoISJlbl9MYXRuX1VTQGJhcj1CYXJWYWx1ZTtmb289Rm9vVmFsdWUiLmVxdWFscyh1bG9jLmdldE5hbWUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsZWQgdG8gYWRkIGJhciBrZXl3b3JkLCBnb3Q6ICIgKyB1bG9jLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgdWxvYyA9IHVsb2Muc2V0S2V5d29yZFZhbHVlKCJCQVIiLCAiTmV3QmFyVmFsdWUiKTsKKyAgICAgICAgaWYgKCEiZW5fTGF0bl9VU0BiYXI9TmV3QmFyVmFsdWU7Zm9vPUZvb1ZhbHVlIi5lcXVhbHModWxvYy5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIGNoYW5nZSBiYXIga2V5d29yZCwgZ290OiAiICsgdWxvYy5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHVsb2MgPSB1bG9jLnNldEtleXdvcmRWYWx1ZSgiQmFSIiwgbnVsbCk7CisgICAgICAgIGlmICghImVuX0xhdG5fVVNAZm9vPUZvb1ZhbHVlIi5lcXVhbHModWxvYy5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIGRlbGV0ZSBiYXIga2V5d29yZCwgZ290OiAiICsgdWxvYy5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHVsb2MgPSB1bG9jLnNldEtleXdvcmRWYWx1ZShudWxsLCBudWxsKTsKKyAgICAgICAgaWYgKCEiZW5fTGF0bl9VUyIuZXF1YWxzKHVsb2MuZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byBkZWxldGUgYWxsIGtleXdvcmRzLCBnb3Q6ICIgKyB1bG9jLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PSBJbmZyYXN0cnVjdHVyZSA9PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gbG9jYWxlIElEcy4gIElmIHRoZXkgYXJlIGVxdWFsLCByZXR1cm4gMC4gIElmIGBzdHJpbmcnCisgICAgICogc3RhcnRzIHdpdGggYHByZWZpeCcgcGx1cyBhbiBhZGRpdGlvbmFsIGVsZW1lbnQsIHRoYXQgaXMsIHN0cmluZyA9PQorICAgICAqIHByZWZpeCArICdfJyArIHgsIHRoZW4gcmV0dXJuIDEuICBPdGhlcndpc2UgcmV0dXJuIGEgdmFsdWUgPCAwLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgbG9jY21wKFN0cmluZyBzdHJpbmcsIFN0cmluZyBwcmVmaXgpIHsKKyAgICAgICAgaW50IHNsZW4gPSBzdHJpbmcubGVuZ3RoKCksCisgICAgICAgICAgICBwbGVuID0gcHJlZml4Lmxlbmd0aCgpOworICAgICAgICAvKiAncm9vdCcgaXMgImxlc3MgdGhhbiIgZXZlcnl0aGluZyAqLworICAgICAgICBpZiAocHJlZml4LmVxdWFscygicm9vdCIpKSB7CisgICAgICAgICAgICByZXR1cm4gc3RyaW5nLmVxdWFscygicm9vdCIpID8gMCA6IDE7CisgICAgICAgIH0KKyAgICAgICAgLy8gT04gSkFWQSAob25seSAtLSBub3Qgb24gQyAtLSBzb21lb25lIGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nKQorICAgICAgICAvLyBjb25zaWRlciAiIiB0byBiZSBhbiBhbHRlcm5hdGUgbmFtZSBmb3IgInJvb3QiLgorICAgICAgICBpZiAocGxlbiA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gc2xlbiA9PSAwID8gMCA6IDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzdHJpbmcuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gLTE7IC8qIG1pc21hdGNoICovCisgICAgICAgIGlmIChzbGVuID09IHBsZW4pIHJldHVybiAwOworICAgICAgICBpZiAoc3RyaW5nLmNoYXJBdChwbGVuKSA9PSAnXycpIHJldHVybiAxOworICAgICAgICByZXR1cm4gLTI7IC8qIGZhbHNlIG1hdGNoLCBlLmcuICJlbl9VU1giIGNtcCAiZW5fVVMiICovCisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHJlcXVlc3RlZCBsb2NhbGVzLCBhbmQgcmVwb3J0IHByb2JsZW1zLgorICAgICAqIFRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSBleHBlY3RlZCByZWxhdGlvbnNoaXBzIGJldHdlZW4gcmVxdWVzdGVkCisgICAgICogYW5kIHZhbGlkIChleHBSZXFWYWxpZCkgYW5kIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCAoZXhwVmFsaWRBY3R1YWwpLgorICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICogImd0IiBzdHJpY3RseSBncmVhdGVyIHRoYW4sIGUuZy4sIGVuX1VTID4gZW4KKyAgICAgKiAiZ2UiIGdyZWF0ZXIgb3IgZXF1YWwsICAgICAgZS5nLiwgZW4gPj0gZW4KKyAgICAgKiAiZXEiIGVxdWFsLCAgICAgICAgICAgICAgICAgZS5nLiwgZW4gPT0gZW4KKyAgICAgKi8KKyAgICB2b2lkIGNoZWNrbG9jcyhTdHJpbmcgbGFiZWwsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlcSwKKyAgICAgICAgICAgICAgICAgICBMb2NhbGUgdmFsaWRMb2MsCisgICAgICAgICAgICAgICAgICAgTG9jYWxlIGFjdHVhbExvYywKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwUmVxVmFsaWQsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFZhbGlkQWN0dWFsKSB7CisgICAgICAgIFN0cmluZyB2YWxpZCA9IHZhbGlkTG9jLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBhY3R1YWwgPSBhY3R1YWxMb2MudG9TdHJpbmcoKTsKKyAgICAgICAgaW50IHJlcVZhbGlkID0gbG9jY21wKHJlcSwgdmFsaWQpOworICAgICAgICBpbnQgdmFsaWRBY3R1YWwgPSBsb2NjbXAodmFsaWQsIGFjdHVhbCk7CisgICAgYm9vbGVhbiByZXFPSyA9IChleHBSZXFWYWxpZC5lcXVhbHMoImd0IikgJiYgcmVxVmFsaWQgPiAwKSB8fAorICAgICAgICAoZXhwUmVxVmFsaWQuZXF1YWxzKCJnZSIpICYmIHJlcVZhbGlkID49IDApIHx8CisgICAgICAgIChleHBSZXFWYWxpZC5lcXVhbHMoImVxIikgJiYgcmVxVmFsaWQgPT0gMCk7CisgICAgYm9vbGVhbiB2YWxPSyA9IChleHBWYWxpZEFjdHVhbC5lcXVhbHMoImd0IikgJiYgdmFsaWRBY3R1YWwgPiAwKSB8fAorICAgICAgICAoZXhwVmFsaWRBY3R1YWwuZXF1YWxzKCJnZSIpICYmIHZhbGlkQWN0dWFsID49IDApIHx8CisgICAgICAgIChleHBWYWxpZEFjdHVhbC5lcXVhbHMoImVxIikgJiYgdmFsaWRBY3R1YWwgPT0gMCk7CisgICAgICAgIGlmIChyZXFPSyAmJiB2YWxPSykgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgbGFiZWwgKyAiOyByZXE9IiArIHJlcSArICIsIHZhbGlkPSIgKyB2YWxpZCArCisgICAgICAgICAgICAgICAgICAiLCBhY3R1YWw9IiArIGFjdHVhbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxhYmVsICsgIjsgcmVxPSIgKyByZXEgKyAiLCB2YWxpZD0iICsgdmFsaWQgKworICAgICAgICAgICAgICAgICAgIiwgYWN0dWFsPSIgKyBhY3R1YWwgKworICAgICAgICAgIChyZXFPSyA/ICIiIDogIlxuICByZXEgISIgKyBleHBSZXFWYWxpZCArICIgdmFsaWQiKSArCisgICAgICAgICAgKHZhbE9LID8gIiIgOiAiXG4gIHZhbCAhIiArIGV4cFZhbGlkQWN0dWFsICsgIiBhY3R1YWwiKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcmZhY2UgdXNlZCBieSBjaGVja1NlcnZpY2UgZGVmaW5pbmcgYSBwcm90b2NvbCB0byBjcmVhdGUgYW4KKyAgICAgKiBvYmplY3QsIGdpdmVuIGEgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKi8KKyAgICBpbnRlcmZhY2UgU2VydmljZUZhY2FkZSB7CisgICAgICAgIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXF1ZXN0ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVyZmFjZSB1c2VkIGJ5IGNoZWNrU2VydmljZSBkZWZpbmluZyBhIHByb3RvY29sIHRvIGdldCBhCisgICAgICogY29udGFpbmVkIHN1Ym9iamVjdCwgZ2l2ZW4gaXRzIHBhcmVudCBvYmplY3QuCisgICAgICovCisgICAgaW50ZXJmYWNlIFN1Ym9iamVjdCB7CisgICAgICAgIE9iamVjdCBnZXQoT2JqZWN0IHBhcmVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJmYWNlIHVzZWQgYnkgY2hlY2tTZXJ2aWNlIGRlZmluaW5nIGEgcHJvdG9jb2wgdG8gcmVnaXN0ZXIKKyAgICAgKiBhbmQgdW5yZWdpc3RlciBhIHNlcnZpY2Ugb2JqZWN0IHByb3RvdHlwZS4KKyAgICAgKi8KKyAgICBpbnRlcmZhY2UgUmVnaXN0cmFyIHsKKyAgICAgICAgT2JqZWN0IHJlZ2lzdGVyKFVMb2NhbGUgbG9jLCBPYmplY3QgcHJvdG90eXBlKTsKKyAgICAgICAgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZSByZWZsZWN0aW9uIHRvIGNhbGwgZ2V0TG9jYWxlKCkgb24gdGhlIGdpdmVuIG9iamVjdCB0bworICAgICAqIGRldGVybWluZSBib3RoIHRoZSB2YWxpZCBhbmQgdGhlIGFjdHVhbCBsb2NhbGUuICBWZXJpZnkgdGhlc2UKKyAgICAgKiBmb3IgY29ycmVjdG5lc3MuCisgICAgICovCisgICAgdm9pZCBjaGVja09iamVjdChTdHJpbmcgcmVxdWVzdGVkTG9jYWxlLCBPYmplY3Qgb2JqLAorICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFJlcVZhbGlkLCBTdHJpbmcgZXhwVmFsaWRBY3R1YWwpIHsKKyAgICAgICAgQ2xhc3NbXSBwYXJhbXMgPSBuZXcgQ2xhc3NbXSB7IFVMb2NhbGUuVHlwZS5jbGFzcyB9OworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gb2JqLmdldENsYXNzKCk7CisgICAgICAgICAgICBNZXRob2QgZ2V0TG9jYWxlID0gY2xzLmdldE1ldGhvZCgiZ2V0TG9jYWxlIiwgcGFyYW1zKTsKKyAgICAgICAgICAgIFVMb2NhbGUgdmFsaWQgPSAoVUxvY2FsZSkgZ2V0TG9jYWxlLmludm9rZShvYmosIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZS5WQUxJRF9MT0NBTEUgfSk7CisgICAgICAgICAgICBVTG9jYWxlIGFjdHVhbCA9IChVTG9jYWxlKSBnZXRMb2NhbGUuaW52b2tlKG9iaiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgfSk7CisgICAgICAgICAgICBjaGVja2xvY3MoY2xzLmdldE5hbWUoKSwgcmVxdWVzdGVkTG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgIHZhbGlkLnRvTG9jYWxlKCksIGFjdHVhbC50b0xvY2FsZSgpLAorICAgICAgICAgICAgICAgICAgICAgIGV4cFJlcVZhbGlkLCBleHBWYWxpZEFjdHVhbCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYWtlIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucyBfc3BlY2lmaWNfIC0tIGRvIG5vdAorICAgICAgICAvLyBjYXRjaChFeGNlcHRpb24pLCBzaW5jZSB0aGF0IHdpbGwgY2F0Y2ggdGhlIGV4Y2VwdGlvbgorICAgICAgICAvLyB0aGF0IGVycmxuIHRocm93cy4KKyAgICAgICAgY2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUxKSB7CisgICAgICAgIC8vIG5vIGxvbmdlciBhbiBlcnJvciwgQ3VycmVuY3kgaGFzIG5vIGdldExvY2FsZQorICAgICAgICAgICAgLy8gZXJybG4oIkZBSUw6IHJlZmxlY3Rpb24gZmFpbGVkOiAiICsgZTEpOworICAgICAgICB9IGNhdGNoKFNlY3VyaXR5RXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogcmVmbGVjdGlvbiBmYWlsZWQ6ICIgKyBlMik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlMykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHJlZmxlY3Rpb24gZmFpbGVkOiAiICsgZTMpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlNCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHJlZmxlY3Rpb24gZmFpbGVkOiAiICsgZTQpOworICAgICAgICB9IGNhdGNoKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZTUpIHsKKyAgICAgICAgLy8gbm8gbG9uZ2VyIGFuIGVycm9yLCBDdXJyZW5jeSBoYXMgbm8gZ2V0TG9jYWxlCisgICAgICAgICAgICAvLyBlcnJsbigiRkFJTDogcmVmbGVjdGlvbiBmYWlsZWQ6ICIgKyBlNSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvcnJlY3QgZ2V0TG9jYWxlKCkgYmVoYXZpb3IgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlLgorICAgICAqIEBwYXJhbSByZXF1ZXN0ZWRMb2NhbGUgdGhlIGxvY2FsZSB0byByZXF1ZXN0LiAgVGhpcyBNVVNUIEJFCisgICAgICogRkFLRS4gIEluIG90aGVyIHdvcmRzLCBpdCBzaG91bGQgYmUgc29tZXRoaW5nIGxpa2UKKyAgICAgKiBlbl9VU19GQUtFVkFSSUFOVCBzbyB0aGlzIG1ldGhvZCBjYW4gdmVyaWZ5IGNvcnJlY3QgZmFsbGJhY2sKKyAgICAgKiBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0gc3ZjIGEgZmFjdG9yeSBvYmplY3QgdGhhdCBjYW4gY3JlYXRlIHRoZSBvYmplY3QgdG8gYmUKKyAgICAgKiB0ZXN0ZWQuICBUaGlzIGlzbid0IG5lY2Vzc2FyeSBoZXJlIChvbmUgY291bGQganVzdCBwYXNzIGluIHRoZQorICAgICAqIG9iamVjdCkgYnV0IGlzIHJlcXVpcmVkIGZvciB0aGUgb3ZlcmxvYWQgb2YgdGhpcyBtZXRob2QgdGhhdAorICAgICAqIHRha2VzIGEgUmVnaXN0cmFyLgorICAgICAqLworICAgIHZvaWQgY2hlY2tTZXJ2aWNlKFN0cmluZyByZXF1ZXN0ZWRMb2NhbGUsIFNlcnZpY2VGYWNhZGUgc3ZjKSB7CisgICAgICAgIGNoZWNrU2VydmljZShyZXF1ZXN0ZWRMb2NhbGUsIHN2YywgbnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBjb3JyZWN0IGdldExvY2FsZSgpIGJlaGF2aW9yIGZvciB0aGUgZ2l2ZW4gc2VydmljZS4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdGVkTG9jYWxlIHRoZSBsb2NhbGUgdG8gcmVxdWVzdC4gIFRoaXMgTVVTVCBCRQorICAgICAqIEZBS0UuICBJbiBvdGhlciB3b3JkcywgaXQgc2hvdWxkIGJlIHNvbWV0aGluZyBsaWtlCisgICAgICogZW5fVVNfRkFLRVZBUklBTlQgc28gdGhpcyBtZXRob2QgY2FuIHZlcmlmeSBjb3JyZWN0IGZhbGxiYWNrCisgICAgICogYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHN2YyBhIGZhY3Rvcnkgb2JqZWN0IHRoYXQgY2FuIGNyZWF0ZSB0aGUgb2JqZWN0IHRvIGJlCisgICAgICogdGVzdGVkLgorICAgICAqIEBwYXJhbSBzdWIgYW4gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgYSBzdWJvYmplY3QKKyAgICAgKiB3aGljaCBzaG91bGQgYWxzbyBiZSB0ZXN0ZWQuICBNYXkgYmUgbnVsbC4KKyAgICAgKiBAcGFyYW0gcmVnIGFuIG9iamVjdCB0aGF0IHN1cHBsaWVzIHRoZSByZWdpc3RyYXRpb24gYW5kCisgICAgICogdW5yZWdpc3RyYXRpb24gZnVuY3Rpb25hbGl0eSB0byBiZSB0ZXN0ZWQuICBNYXkgYmUgbnVsbC4KKyAgICAgKi8KKyAgICB2b2lkIGNoZWNrU2VydmljZShTdHJpbmcgcmVxdWVzdGVkTG9jYWxlLCBTZXJ2aWNlRmFjYWRlIHN2YywKKyAgICAgICAgICAgICAgICAgICAgICBTdWJvYmplY3Qgc3ViLCBSZWdpc3RyYXIgcmVnKSB7CisgICAgICAgIFVMb2NhbGUgcmVxID0gbmV3IFVMb2NhbGUocmVxdWVzdGVkTG9jYWxlKTsKKyAgICAgICAgT2JqZWN0IG9iaiA9IHN2Yy5jcmVhdGUocmVxKTsKKyAgICAgICAgY2hlY2tPYmplY3QocmVxdWVzdGVkTG9jYWxlLCBvYmosICJndCIsICJnZSIpOworICAgICAgICBpZiAoc3ViICE9IG51bGwpIHsKKyAgICAgICAgICAgIE9iamVjdCBzdWJvYmogPSBzdWIuZ2V0KG9iaik7CisgICAgICAgICAgICBjaGVja09iamVjdChyZXF1ZXN0ZWRMb2NhbGUsIHN1Ym9iaiwgImd0IiwgImdlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZyAhPSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiSW5mbzogUmVnaXN0ZXJpbmcgc2VydmljZSIpOworICAgICAgICAgICAgT2JqZWN0IGtleSA9IHJlZy5yZWdpc3RlcihyZXEsIG9iaik7CisgICAgICAgICAgICBPYmplY3Qgb2JqUmVnID0gc3ZjLmNyZWF0ZShyZXEpOworICAgICAgICAgICAgY2hlY2tPYmplY3QocmVxdWVzdGVkTG9jYWxlLCBvYmpSZWcsICJlcSIsICJlcSIpOworICAgICAgICAgICAgaWYgKHN1YiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IHN1Ym9iaiA9IHN1Yi5nZXQob2JqKTsKKyAgICAgICAgICAgICAgICAvLyBBc3N1bWUgc3Vib2JqZWN0cyBkb24ndCBjb21lIGZyb20gc2VydmljZXMsIHNvCisgICAgICAgICAgICAgICAgLy8gdGhlaXIgbWV0YWRhdGEgc2hvdWxkIGJlIHN0cnVjdHVyZWQgbm9ybWFsbHkuCisgICAgICAgICAgICAgICAgY2hlY2tPYmplY3QocmVxdWVzdGVkTG9jYWxlLCBzdWJvYmosICJndCIsICJnZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIkluZm86IFVucmVnaXN0ZXJpbmcgc2VydmljZSIpOworICAgICAgICAgICAgaWYgKCFyZWcudW5yZWdpc3RlcihrZXkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVucmVnaXN0ZXIgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBPYmplY3Qgb2JqVW5yZWcgPSBzdmMuY3JlYXRlKHJlcSk7CisgICAgICAgICAgICBjaGVja09iamVjdChyZXF1ZXN0ZWRMb2NhbGUsIG9ialVucmVnLCAiZ3QiLCAiZ2UiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9DQUxFX1NJWkUgPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gcmF3RGF0YTIgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgLyogbGFuZ3VhZ2UgY29kZSAqLworICAgICAgICB7ICAgImVuIiwgICAiZnIiLCAgICJjYSIsICAgImVsIiwgICAibm8iLCAgICJ6aCIsICAgImRlIiwgICAiZXMiLCAgImphIiAgICB9LAorICAgICAgICAvKiBzY3JpcHQgY29kZSAqLworICAgICAgICB7ICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJIYW5zIiwgIiIsICIiLCAiIiAgfSwKKyAgICAgICAgLyogY291bnRyeSBjb2RlICovCisgICAgICAgIHsgICAiVVMiLCAgICJGUiIsICAgIkVTIiwgICAiR1IiLCAgICJOTyIsICAgIkNOIiwgIkRFIiwgIiIsICJKUCIgICAgfSwKKyAgICAgICAgLyogdmFyaWFudCBjb2RlICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJOWSIsICAgIiIsICIiLCAiIiwgIiIgICAgICB9LAorICAgICAgICAvKiBmdWxsIG5hbWUgKi8KKyAgICAgICAgeyAgICJlbl9VUyIsICAgICJmcl9GUiIsICAgICJjYV9FUyIsCisgICAgICAgICAgICAiZWxfR1IiLCAgICAibm9fTk9fTlkiLCAiemhfSGFuc19DTiIsCisgICAgICAgICAgICAiZGVfREVAY29sbGF0aW9uPXBob25lYm9vayIsICJlc0Bjb2xsYXRpb249dHJhZGl0aW9uYWwiLCAgImphX0pQQGNhbGVuZGFyPWphcGFuZXNlIiB9LAorICAgICAgICAvKiBJU08tMyBsYW5ndWFnZSAqLworICAgICAgICB7ICAgImVuZyIsICAiZnJhIiwgICJjYXQiLCAgImVsbCIsICAibm9yIiwgICJ6aG8iLCAiZGV1IiwgInNwYSIsICJqcG4iICAgfSwKKyAgICAgICAgLyogSVNPLTMgY291bnRyeSAqLworICAgICAgICB7ICAgIlVTQSIsICAiRlJBIiwgICJFU1AiLCAgIkdSQyIsICAiTk9SIiwgICJDSE4iLCAiREVVIiwgIiIsICJKUE4iICAgfSwKKyAgICAgICAgLyogTENJRCAqLworICAgICAgICB7ICAgIjQwOSIsICI0MGMiLCAiNDAzIiwgIjQwOCIsICI4MTQiLCAgIjgwNCIsICI0MDciLCAiYSIsICI0MTEiICAgICB9LAorCisgICAgICAgIC8qIGRpc3BsYXkgbGFuZ3VhZ2UgKEVuZ2xpc2gpICovCisgICAgICAgIHsgICAiRW5nbGlzaCIsICAiRnJlbmNoIiwgICAiQ2F0YWxhbiIsICJHcmVlayIsICAgICJOb3J3ZWdpYW4iLCAiQ2hpbmVzZSIsICJHZXJtYW4iLCAiU3BhbmlzaCIsICJKYXBhbmVzZSIgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBzY3JpcHQgY29kZSAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiU2ltcGxpZmllZCBIYW4iLCAiIiwgIiIsICIiICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgY291bnRyeSAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICJVbml0ZWQgU3RhdGVzIiwgICAgIkZyYW5jZSIsICAgIlNwYWluIiwgICJHcmVlY2UiLCAgICJOb3J3YXkiLCAiQ2hpbmEiLCAiR2VybWFueSIsICIiLCAiSmFwYW4iICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgdmFyaWFudCAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIk5ZIiwgICIiLCAiIiwgIiIsICIiICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgbmFtZSAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICJFbmdsaXNoIChVbml0ZWQgU3RhdGVzKSIsICJGcmVuY2ggKEZyYW5jZSkiLCAiQ2F0YWxhbiAoU3BhaW4pIiwKKyAgICAgICAgICAgICJHcmVlayAoR3JlZWNlKSIsICJOb3J3ZWdpYW4gKE5vcndheSwgTlkpIiwgIkNoaW5lc2UgKFNpbXBsaWZpZWQgSGFuLCBDaGluYSkiLAorICAgICAgICAgICAgIkdlcm1hbiAoR2VybWFueSwgQ29sbGF0aW9uPVBob25lYm9vayBPcmRlcikiLCAiU3BhbmlzaCAoQ29sbGF0aW9uPVRyYWRpdGlvbmFsKSIsICJKYXBhbmVzZSAoSmFwYW4sIENhbGVuZGFyPUphcGFuZXNlIENhbGVuZGFyKSIgfSwKKworICAgICAgICAvKiBkaXNwbGF5IGxhbmd1YWdlIChGcmVuY2gpICovCisgICAgICAgIHsgICAiYW5nbGFpcyIsICAiZnJhblxcdTAwRTdhaXMiLCAgICJjYXRhbGFuIiwgImdyZWMiLCAgICAibm9ydlxcdTAwRTlnaWVuIiwgICAgImNoaW5vaXMiLCAiYWxsZW1hbmQiLCAiZXNwYWdub2wiLCAiamFwb25haXMiICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IHNjcmlwdCBjb2RlIChGcmVuY2gpICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIkhhbnMiLCAiIiwgIiIsICIiICAgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBjb3VudHJ5IChGcmVuY2gpICovCisgICAgICAgIHsgICAiXFx1MDBDOXRhdHMtVW5pcyIsICAgICJGcmFuY2UiLCAgICJFc3BhZ25lIiwgICJHclxcdTAwRThjZSIsICAgIk5vcnZcXHUwMEU4Z2UiLCAgICAiQ2hpbmUiLCAiQWxsZW1hZ25lIiwgIiIsICJKYXBvbiIgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSB2YXJpYW50IChGcmVuY2gpICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJOWSIsICAgIiIsICIiLCAiIiwgIiIgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBuYW1lIChGcmVuY2gpICovCisgICAgICAgIHsgICAiYW5nbGFpcyAoXFx1MDBDOXRhdHMtVW5pcykiLCAiZnJhblxcdTAwRTdhaXMgKEZyYW5jZSkiLCAiY2F0YWxhbiAoRXNwYWduZSkiLAorICAgICAgICAgICAgImdyZWMgKEdyXFx1MDBFOGNlKSIsICJub3J2XFx1MDBFOWdpZW4gKE5vcnZcXHUwMEU4Z2UsIE5ZKSIsICAiY2hpbm9pcyAoSGFucywgQ2hpbmUpIiwKKyAgICAgICAgICAgICJhbGxlbWFuZCAoQWxsZW1hZ25lLCBPcmRvbm5hbmNlbWVudD1PcmRyZSBkZSBsJ2FubnVhaXJlKSIsICJlc3BhZ25vbCAoT3Jkb25uYW5jZW1lbnQ9T3JkcmUgdHJhZGl0aW9ubmVsKSIsICJqYXBvbmFpcyAoSmFwb24sIENhbGVuZHJpZXI9Q2FsZW5kcmllciBqYXBvbmFpcykiIH0sCisKKyAgICAgICAgLyogZGlzcGxheSBsYW5ndWFnZSAoQ2F0YWxhbikgKi8KKyAgICAgICAgeyAgICJhbmdsXFx1MDBFOHMiLCAiZnJhbmNcXHUwMEU4cyIsICJjYXRhbFxcdTAwRTAiLCAiZ3JlYyIsICAibm9ydWVjIiwgInhpblxcdTAwRTlzIiwgImFsZW1hbnkiLCAiZXNwYW55b2wiLCAiamFwb25cXHUwMEU4cyIgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBzY3JpcHQgY29kZSAoQ2F0YWxhbikgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiSGFucyIsICIiLCAiIiwgIiIgICAgICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IGNvdW50cnkgKENhdGFsYW4pICovCisgICAgICAgIHsgICAiRXN0YXRzIFVuaXRzIiwgIkZyYW5cXHUwMEU3YSIsICJFc3BhbnlhIiwgICJHclxcdTAwRThjaWEiLCAiTm9ydWVnYSIsICAiWGluYSIsICJBbGVtYW55YSIsICIiLCAiSmFwXFx1MDBGMyIgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSB2YXJpYW50IChDYXRhbGFuKSAqLworICAgICAgICB7ICAgIiIsICIiLCAiIiwgICAgICAgICAgICAgICAgICAgICIiLCAiTlkiLCAgICAiIiwgIiIsICIiLCAiIiAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IG5hbWUgKENhdGFsYW4pICovCisgICAgICAgIHsgICAiYW5nbFxcdTAwRThzIChFc3RhdHMgVW5pdHMpIiwgImZyYW5jXFx1MDBFOHMgKEZyYW5cXHUwMEU3YSkiLCAiY2F0YWxcXHUwMEUwIChFc3BhbnlhKSIsCisgICAgICAgICAgICAiZ3JlYyAoR3JcXHUwMEU4Y2lhKSIsICJub3J1ZWMgKE5vcnVlZ2EsIE5ZKSIsICJ4aW5cXHUwMEU5cyAoSGFucywgWGluYSkiLAorICAgICAgICAgICAgImFsZW1hbnkgKEFsZW1hbnlhLCBDT0xMQVRJT049UEhPTkVCT09LKSIsICJlc3BhbnlvbCAoQ09MTEFUSU9OPVRSQURJVElPTkFMKSIsICJqYXBvblxcdTAwRThzIChKYXBcXHUwMEYzLCBDQUxFTkRBUj1KQVBBTkVTRSkiIH0sCisKKyAgICAgICAgLyogZGlzcGxheSBsYW5ndWFnZSAoR3JlZWspICovCisgICAgICAgIHsKKyAgICAgICAgICAgICJcXHUwMzkxXFx1MDNiM1xcdTAzYjNcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNiMVxcdTAzYmJcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzlhXFx1MDNiMVxcdTAzYzRcXHUwM2IxXFx1MDNiYlxcdTAzYjFcXHUwM2JkXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzk1XFx1MDNiYlxcdTAzYmJcXHUwM2I3XFx1MDNiZFxcdTAzYjlcXHUwM2JhXFx1MDNhYyIsCisgICAgICAgICAgICAiXFx1MDM5ZFxcdTAzYmZcXHUwM2MxXFx1MDNiMlxcdTAzYjdcXHUwM2IzXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzlBXFx1MDNCOVxcdTAzQkRcXHUwM0I1XFx1MDNCNlxcdTAzQjlcXHUwM0JBXFx1MDNBQyIsCisgICAgICAgICAgICAiXFx1MDM5M1xcdTAzQjVcXHUwM0MxXFx1MDNCQ1xcdTAzQjFcXHUwM0JEXFx1MDNCOVxcdTAzQkFcXHUwM0FDIiwKKyAgICAgICAgICAgICJcXHUwMzk5XFx1MDNDM1xcdTAzQzBcXHUwM0IxXFx1MDNCRFxcdTAzQjlcXHUwM0JBXFx1MDNBQyIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzQjFcXHUwM0MwXFx1MDNDOVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMiCisgICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgc2NyaXB0IGNvZGUgKEdyZWVrKSAqLworICAgICAgICB7ICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJIYW5zIiwgIiIsICIiLCAiIiAgICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgY291bnRyeSAoR3JlZWspICovCisgICAgICAgIHsKKyAgICAgICAgICAgICJcXHUwMzk3XFx1MDNiZFxcdTAzYzlcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2I1XFx1MDNjMiBcXHUwM2EwXFx1MDNiZlxcdTAzYmJcXHUwM2I5XFx1MDNjNFxcdTAzYjVcXHUwM2FmXFx1MDNiNVxcdTAzYzIiLAorICAgICAgICAgICAgIlxcdTAzOTNcXHUwM2IxXFx1MDNiYlxcdTAzYmJcXHUwM2FmXFx1MDNiMSIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzYzNcXHUwM2MwXFx1MDNiMVxcdTAzYmRcXHUwM2FmXFx1MDNiMSIsCisgICAgICAgICAgICAiXFx1MDM5NVxcdTAzYmJcXHUwM2JiXFx1MDNhY1xcdTAzYjRcXHUwM2IxIiwKKyAgICAgICAgICAgICJcXHUwMzlkXFx1MDNiZlxcdTAzYzFcXHUwM2IyXFx1MDNiN1xcdTAzYjNcXHUwM2FmXFx1MDNiMSIsCisgICAgICAgICAgICAiXFx1MDM5QVxcdTAzQUZcXHUwM0JEXFx1MDNCMSIsCisgICAgICAgICAgICAiXFx1MDM5M1xcdTAzQjVcXHUwM0MxXFx1MDNCQ1xcdTAzQjFcXHUwM0JEXFx1MDNBRlxcdTAzQjEiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzQjFcXHUwM0MwXFx1MDNDOVxcdTAzQkRcXHUwM0FGXFx1MDNCMSIKKyAgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSB2YXJpYW50IChHcmVlaykgKi8KKyAgICAgICAgeyAgICIiLCAiIiwgIiIsICIiLCAiTlkiLCAiIiwgIiIsICIiLCAiIiAgICB9LCAvKiBUT0RPOiBjdXJyZW50bHkgdGhlcmUgaXMgbm8gdHJhbnNsYXRpb24gZm9yIE5ZIGluIEdyZWVrIGZpeCB0aGlzIHRlc3Qgd2hlbiB3ZSBoYXZlIGl0ICovCisgICAgICAgIC8qIGRpc3BsYXkgbmFtZSAoR3JlZWspICovCisgICAgICAgIHsKKyAgICAgICAgICAgICJcXHUwMzkxXFx1MDNiM1xcdTAzYjNcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIChcXHUwMzk3XFx1MDNiZFxcdTAzYzlcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2I1XFx1MDNjMiBcXHUwM2EwXFx1MDNiZlxcdTAzYmJcXHUwM2I5XFx1MDNjNFxcdTAzYjVcXHUwM2FmXFx1MDNiNVxcdTAzYzIpIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNiMVxcdTAzYmJcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIChcXHUwMzkzXFx1MDNiMVxcdTAzYmJcXHUwM2JiXFx1MDNhZlxcdTAzYjEpIiwKKyAgICAgICAgICAgICJcXHUwMzlhXFx1MDNiMVxcdTAzYzRcXHUwM2IxXFx1MDNiYlxcdTAzYjFcXHUwM2JkXFx1MDNiOVxcdTAzYmFcXHUwM2FjIChcXHUwMzk5XFx1MDNjM1xcdTAzYzBcXHUwM2IxXFx1MDNiZFxcdTAzYWZcXHUwM2IxKSIsCisgICAgICAgICAgICAiXFx1MDM5NVxcdTAzYmJcXHUwM2JiXFx1MDNiN1xcdTAzYmRcXHUwM2I5XFx1MDNiYVxcdTAzYWMgKFxcdTAzOTVcXHUwM2JiXFx1MDNiYlxcdTAzYWNcXHUwM2I0XFx1MDNiMSkiLAorICAgICAgICAgICAgIlxcdTAzOWRcXHUwM2JmXFx1MDNjMVxcdTAzYjJcXHUwM2I3XFx1MDNiM1xcdTAzYjlcXHUwM2JhXFx1MDNhYyAoXFx1MDM5ZFxcdTAzYmZcXHUwM2MxXFx1MDNiMlxcdTAzYjdcXHUwM2IzXFx1MDNhZlxcdTAzYjEsIE5ZKSIsCisgICAgICAgICAgICAiXFx1MDM5QVxcdTAzQjlcXHUwM0JEXFx1MDNCNVxcdTAzQjZcXHUwM0I5XFx1MDNCQVxcdTAzQUMgKEhhbnMsIFxcdTAzOUFcXHUwM0FGXFx1MDNCRFxcdTAzQjEpIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNCNVxcdTAzQzFcXHUwM0JDXFx1MDNCMVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMgKFxcdTAzOTNcXHUwM0I1XFx1MDNDMVxcdTAzQkNcXHUwM0IxXFx1MDNCRFxcdTAzQUZcXHUwM0IxLCBDT0xMQVRJT049UEhPTkVCT09LKSIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzQzNcXHUwM0MwXFx1MDNCMVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMgKENPTExBVElPTj1UUkFESVRJT05BTCkiLAorICAgICAgICAgICAgIlxcdTAzOTlcXHUwM0IxXFx1MDNDMFxcdTAzQzlcXHUwM0JEXFx1MDNCOVxcdTAzQkFcXHUwM0FDIChcXHUwMzk5XFx1MDNCMVxcdTAzQzBcXHUwM0M5XFx1MDNCRFxcdTAzQUZcXHUwM0IxLCBDQUxFTkRBUj1KQVBBTkVTRSkiCisgICAgICAgIH0KKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFTkdMSVNIID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJFTkNIID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FUQUxBTiA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdSRUVLID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9SV0VHSUFOID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFORyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNDUklQVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENUUlkgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWQVIgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQU1FID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFORzMgPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVFJZMyA9IDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExDSUQgPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETEFOR19FTiA9IDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERTQ1JJUFRfRU4gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQ1RSWV9FTiA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEVkFSX0VOID0gMTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEROQU1FX0VOID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERMQU5HX0ZSID0gMTM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERTQ1JJUFRfRlIgPSAxNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRENUUllfRlIgPSAxNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFZBUl9GUiA9IDE2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETkFNRV9GUiA9IDE3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETEFOR19DQSA9IDE4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEU0NSSVBUX0NBID0gMTk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERDVFJZX0NBID0gMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERWQVJfQ0EgPSAyMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRE5BTUVfQ0EgPSAyMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRExBTkdfRUwgPSAyMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFNDUklQVF9FTCA9IDI0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQ1RSWV9FTCA9IDI1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEVkFSX0VMID0gMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEROQU1FX0VMID0gMjc7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWNHZXR0ZXJzKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgQmFzaWMgR2V0dGVyc1xuIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBMT0NBTEVfU0laRTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgdGVzdExvY2FsZT0ocmF3RGF0YTJbTkFNRV1baV0pOworICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgIisgdGVzdExvY2FsZSsiLi4uLi5cbiIpOworCisgICAgICAgICAgICBTdHJpbmcgbGFuZyA9VUxvY2FsZS5nZXRMYW5ndWFnZSh0ZXN0TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICgwICE9bGFuZy5jb21wYXJlVG8ocmF3RGF0YTJbTEFOR11baV0pKSAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgTGFuZ3VhZ2UgY29kZSBtaXNtYXRjaDogIitsYW5nKyIgdmVyc3VzICIrICByYXdEYXRhMltMQU5HXVtpXSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBjdHJ5PVVMb2NhbGUuZ2V0Q291bnRyeSh0ZXN0TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICgwICE9Y3RyeS5jb21wYXJlVG8ocmF3RGF0YTJbQ1RSWV1baV0pKSAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgQ291bnRyeSBjb2RlIG1pc21hdGNoOiAiK2N0cnkrIiB2ZXJzdXMgIisgIHJhd0RhdGEyW0NUUlldW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHZhcj1VTG9jYWxlLmdldFZhcmlhbnQodGVzdExvY2FsZSk7CisgICAgICAgICAgICBpZiAoMCAhPXZhci5jb21wYXJlVG8ocmF3RGF0YTJbVkFSXVtpXSkpICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiICBWYXJpYW50IGNvZGUgbWlzbWF0Y2g6ICIrdmFyKyIgdmVyc3VzICIrICByYXdEYXRhMltWQVJdW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBVTG9jYWxlLmdldE5hbWUodGVzdExvY2FsZSk7CisgICAgICAgICAgICBpZiAoMCAhPW5hbWUuY29tcGFyZVRvKHJhd0RhdGEyW05BTUVdW2ldKSkgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCIgIE5hbWUgbWlzbWF0Y2g6ICIrbmFtZSsiIHZlcnN1cyAiKyAgcmF3RGF0YTJbTkFNRV1baV0pOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJlZml4ZXMoKSB7CisgICAgICAgIC8vIFBPU0lYIGlkcyBhcmUgbm8gbG9uZ2VyIGhhbmRsZWQgYnkgZ2V0TmFtZSwgc28gUE9TSVggZmFpbHVyZXMgYXJlIGlnbm9yZWQKKyAgICAgICAgZmluYWwgU3RyaW5nIFtdW10gdGVzdERhdGEgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgIC8qIG51bGwgY2Fub25pY2FsaXplKCkgY29sdW1uIG1lYW5zICJleHBlY3Qgc2FtZSBhcyBnZXROYW1lKCkiICovCisgICAgICAgICAgICB7InN2IiwgIiIsICJGSSIsICJBTCIsICJzdi1maS1hbCIsICJzdl9GSV9BTCIsIG51bGx9LAorICAgICAgICAgICAgeyJlbiIsICIiLCAiR0IiLCAiIiwgImVuLWdiIiwgImVuX0dCIiwgbnVsbH0sCisgICAgICAgICAgICB7ImktaGFra2EiLCAiIiwgIk1UIiwgIlhFTVhJSkEiLCAiaS1oYWtrYV9NVF9YRU1YSUpBIiwgImktaGFra2FfTVRfWEVNWElKQSIsIG51bGx9LAorICAgICAgICAgICAgeyJpLWhha2thIiwgIiIsICJDTiIsICIiLCAiaS1oYWtrYV9DTiIsICJpLWhha2thX0NOIiwgbnVsbH0sCisgICAgICAgICAgICB7ImktaGFra2EiLCAiIiwgIk1YIiwgIiIsICJJLWhha2thX01YIiwgImktaGFra2FfTVgiLCBudWxsfSwKKyAgICAgICAgICAgIHsieC1rbGluZ29uIiwgIiIsICJVUyIsICJTQU5KT1NFIiwgIlgtS0xJTkdPTl91c19TQU5KT1NFIiwgIngta2xpbmdvbl9VU19TQU5KT1NFIiwgbnVsbH0sCisKKyAgICAgICAgICAgIHsibXIiLCAiIiwgIiIsICIiLCAibXIudXRmOCIsICJtci51dGY4IiwgIm1yIn0sCisgICAgICAgICAgICB7ImRlIiwgIiIsICJUViIsICIiLCAiZGUtdHYua29pOHIiLCAiZGVfVFYua29pOHIiLCAiZGVfVFYifSwKKyAgICAgICAgICAgIHsieC1waWdsYXRpbiIsICIiLCAiTUwiLCAiIiwgIngtcGlnbGF0aW5fTUwuTUJFIiwgIngtcGlnbGF0aW5fTUwuTUJFIiwgIngtcGlnbGF0aW5fTUwifSwgIC8qIE11bHRpYnl0ZSBFbmdsaXNoICovCisgICAgICAgICAgICB7ImktY2hlcm9rZWUiLCAiIiwiVVMiLCAiIiwgImktQ2hlcm9rZWVfVVMudXRmNyIsICJpLWNoZXJva2VlX1VTLnV0ZjciLCAiaS1jaGVyb2tlZV9VUyJ9LAorICAgICAgICAgICAgeyJ4LWZpbGZsaSIsICIiLCAiTVQiLCAiRklMRkxBIiwgIngtZmlsZmxpX01UX0ZJTEZMQS5nYi0xODAzMCIsICJ4LWZpbGZsaV9NVF9GSUxGTEEuZ2ItMTgwMzAiLCAieC1maWxmbGlfTVRfRklMRkxBIn0sCisgICAgICAgICAgICB7Im5vIiwgIiIsICJOTyIsICJOWV9CIiwgIm5vLW5vLW55LnV0ZjMyQEIiLCAibm9fTk9fTlkudXRmMzJAQiIsICJub19OT19OWV9CIn0sCisgICAgICAgICAgICB7Im5vIiwgIiIsICJOTyIsICJCIiwgICJuby1uby51dGYzMkBCIiwgIm5vX05PLnV0ZjMyQEIiLCAibm9fTk9fQiJ9LAorICAgICAgICAgICAgeyJubyIsICIiLCAiIiwgICAiTlkiLCAibm9fX255IiwgIm5vX19OWSIsIG51bGx9LAorICAgICAgICAgICAgeyJubyIsICIiLCAiIiwgICAiTlkiLCAibm9AbnkiLCAibm9AbnkiLCAibm9fX05ZIn0sCisgICAgICAgICAgICB7ImVsIiwgIkxhdG4iLCAiIiwgIiIsICJlbC1sYXRuIiwgImVsX0xhdG4iLCBudWxsfSwKKyAgICAgICAgICAgIHsiZW4iLCAiQ3lybCIsICJSVSIsICIiLCAiZW4tY3lybC1ydSIsICJlbl9DeXJsX1JVIiwgbnVsbH0sCisgICAgICAgICAgICB7InpoIiwgIkhhbnQiLCAiVFciLCAiU1RST0tFIiwgInpoLWhhbnRfVFdfU1RST0tFIiwgInpoX0hhbnRfVFdfU1RST0tFIiwgbnVsbH0sCisgICAgICAgICAgICB7InFxIiwgIlFxcXEiLCAiUVEiLCAiUVEiLCAicXFfUXFxcV9RUV9RUSIsICJxcV9RcXFxX1FRX1FRIiwgbnVsbH0sCisgICAgICAgICAgICB7InFxIiwgIlFxcXEiLCAiIiwgIlFRIiwgInFxX1FxcXFfX1FRIiwgInFxX1FxcXFfX1FRIiwgbnVsbH0sCisgICAgICAgICAgICB7IjEyIiwgIjM0NTYiLCAiNzgiLCAiOTAiLCAiMTJfMzQ1Nl83OF85MCIsICIxMl8zNDU2Xzc4XzkwIiwgbnVsbH0sIC8qIHRvdGFsIGdhcmJhZ2UgKi8KKworICAgICAgICAgICAgLy8gb2RkIGNhc2VzCisgICAgICAgICAgICB7IiIsICIiLCAiIiwgIiIsICJARk9PPWJhciIsICJAZm9vPWJhciIsIG51bGx9LAorICAgICAgICAgICAgeyIiLCAiIiwgIiIsICIiLCAiX0BGT089YmFyIiwgIkBmb289YmFyIiwgbnVsbH0sCisgICAgICAgICAgICB7IiIsICIiLCAiIiwgIiIsICJfX0BGT089YmFyIiwgIkBmb289YmFyIiwgbnVsbH0sCisgICAgICAgICAgICB7IiIsICIiLCAiIiwgIkZPTyIsICJfX2Zvb0BGT089YmFyIiwgIl9fRk9PQGZvbz1iYXIiLCBudWxsfSwgLy8gd2UgaGF2ZSBzb21lIG9mIHRoZXNlIHByZWZpeGVzCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIGxvYywgYnVmLGJ1ZjE7CisgICAgICAgIGZpbmFsIFN0cmluZyBbXSB0ZXN0VGl0bGVzID0geworICAgICAgICAgICAgIlVMb2NhbGUuZ2V0TGFuZ3VhZ2UoKSIsCisgICAgICAgICAgICAiVUxvY2FsZS5nZXRTY3JpcHQoKSIsCisgICAgICAgICAgICAiVUxvY2FsZS5nZXRDb3VudHJ5KCkiLAorICAgICAgICAgICAgIlVMb2NhbGUuZ2V0VmFyaWFudCgpIiwKKyAgICAgICAgICAgICJuYW1lIiwKKyAgICAgICAgICAgICJVTG9jYWxlLmdldE5hbWUoKSIsCisgICAgICAgICAgICAiY2Fub25pY2FsaXplKCkiLAorICAgICAgICB9OworICAgICAgICBVTG9jYWxlIHVsb2M7CisKKyAgICAgICAgZm9yKGludCByb3c9MDtyb3c8dGVzdERhdGEubGVuZ3RoO3JvdysrKSB7CisgICAgICAgICAgICBsb2MgPSB0ZXN0RGF0YVtyb3ddW05BTUVdOworICAgICAgICAgICAgbG9nbG4oIlRlc3QgIyIrcm93KyI6ICIrbG9jKTsKKworICAgICAgICAgICAgdWxvYyA9IG5ldyBVTG9jYWxlKGxvYyk7CisKKyAgICAgICAgICAgIGZvcihpbnQgbj0wO248PShOQU1FKzIpO24rKykgeworICAgICAgICAgICAgICAgIGlmKG49PU5BTUUpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgc3dpdGNoKG4pIHsKKyAgICAgICAgICAgICAgICBjYXNlIExBTkc6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldExhbmd1YWdlKGxvYyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZjEgPSB1bG9jLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBTQ1JJUFQ6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldFNjcmlwdChsb2MpOworICAgICAgICAgICAgICAgICAgICBidWYxID0gdWxvYy5nZXRTY3JpcHQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIENUUlk6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldENvdW50cnkobG9jKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmMSA9IHVsb2MuZ2V0Q291bnRyeSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgVkFSOgorICAgICAgICAgICAgICAgICAgICBidWYgID0gVUxvY2FsZS5nZXRWYXJpYW50KGxvYyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZjEgPSBidWY7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBOQU1FKzE6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldE5hbWUobG9jKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmMSA9IHVsb2MuZ2V0TmFtZSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgTkFNRSsyOgorICAgICAgICAgICAgICAgICAgICBidWYgPSBVTG9jYWxlLmNhbm9uaWNhbGl6ZShsb2MpOworICAgICAgICAgICAgICAgICAgICBidWYxID0gVUxvY2FsZS5jcmVhdGVDYW5vbmljYWwobG9jKS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYnVmID0gIioqPz8iOworICAgICAgICAgICAgICAgICAgICBidWYxID0gYnVmOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxvZ2xuKCIjIityb3crIjogIit0ZXN0VGl0bGVzW25dKyIgb24gIitsb2MrIjogLT4gWyIrYnVmKyJdIik7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSB0ZXN0RGF0YVtyb3ddW25dOworICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZCA9PSBudWxsICYmIG4gPT0gKE5BTUUrMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0RGF0YVtyb3ddW05BTUUrMV07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWdub3JlIFBPU0lYIGZhaWx1cmVzIGluIGdldE5hbWUsIHdlIGRvbid0IHNwZWMgYmVoYXZpb3IgaW4gdGhpcyBjYXNlCisgICAgICAgICAgICAgICAgaWYgKG4gPT0gTkFNRSsxICYmCisgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZC5pbmRleE9mKCcuJykgIT0gLTEgfHwKKyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLmluZGV4T2YoJ0AnKSAhPSAtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYoYnVmLmNvbXBhcmVUbyhleHBlY3RlZCkhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIiMiK3JvdysiOiAiK3Rlc3RUaXRsZXNbbl0rIiBvbiAiK2xvYysiOiAtPiBbIitidWYrIl0gKGV4cGVjdGVkICciK2V4cGVjdGVkKyInISkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYnVmMS5jb21wYXJlVG8oZXhwZWN0ZWQpIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIjIityb3crIjogIit0ZXN0VGl0bGVzW25dKyIgb24gVUxvY2FsZSBvYmplY3QgIitsb2MrIjogLT4gWyIrYnVmMSsiXSAoZXhwZWN0ZWQgJyIrZXhwZWN0ZWQrIichKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RPYnNvbGV0ZU5hbWVzKCl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gdGVzdHMgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgIC8qIGxvY2FsZSwgbGFuZ3VhZ2UzLCBsYW5ndWFnZTIsIENvdW50cnkzLCBjb3VudHJ5MiAqLworICAgICAgICAgICAgeyAiZW5nX1VTQSIsICJlbmciLCAiZW4iLCAiVVNBIiwgIlVTIiB9LAorICAgICAgICAgICAgeyAia29rIiwgICJrb2siLCAia29rIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJpbiIsICAiaW5kIiwgImluIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJpZCIsICAiaW5kIiwgImlkIiwgIiIsICIiIH0sIC8qIE5PIGFsaWFzaW5nICovCisgICAgICAgICAgICB7ICJzaCIsICAic3JwIiwgInNoIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJ6el9GWCIsICAiIiwgInp6IiwgIkZYWCIsICJGWCIgfSwKKyAgICAgICAgICAgIHsgInp6X1JPIiwgICIiLCAienoiLCAiUk9VIiwgIlJPIiB9LAorICAgICAgICAgICAgeyAienpfVFAiLCAgIiIsICJ6eiIsICJUTVAiLCAiVFAiIH0sCisgICAgICAgICAgICB7ICJ6el9UTCIsICAiIiwgInp6IiwgIlRMUyIsICJUTCIgfSwKKyAgICAgICAgICAgIHsgInp6X1pSIiwgICIiLCAienoiLCAiWkFSIiwgIlpSIiB9LAorICAgICAgICAgICAgeyAienpfRlhYIiwgICIiLCAienoiLCAiRlhYIiwgIkZYIiB9LCAvKiBubyBhbGlhc2luZy4gRG9lc24ndCBnbyB0byBQUyhQU0UpLiAqLworICAgICAgICAgICAgeyAienpfUk9NIiwgICIiLCAienoiLCAiUk9VIiwgIlJPIiB9LAorICAgICAgICAgICAgeyAienpfUk9VIiwgICIiLCAienoiLCAiUk9VIiwgIlJPIiB9LAorICAgICAgICAgICAgeyAienpfWkFSIiwgICIiLCAienoiLCAiWkFSIiwgIlpSIiB9LAorICAgICAgICAgICAgeyAienpfVE1QIiwgICIiLCAienoiLCAiVE1QIiwgIlRQIiB9LAorICAgICAgICAgICAgeyAienpfVExTIiwgICIiLCAienoiLCAiVExTIiwgIlRMIiB9LAorICAgICAgICAgICAgeyAibWx0X1BTRSIsICJtbHQiLCAibXQiLCAiUFNFIiwgIlBTIiB9LAorICAgICAgICAgICAgeyAiaXciLCAiaGViIiwgIml3IiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJqaSIsICJ5aWQiLCAiamkiLCAiIiwgIiIgfSwKKyAgICAgICAgICAgIHsgImp3IiwgImphdyIsICJqdyIsICIiLCAiIiB9LAorICAgICAgICAgICAgeyAic2giLCAic3JwIiwgInNoIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICIiLCAiIiwgIiIsICIiLCAiIiB9CisgICAgICAgIH07CisKKyAgICAgICAgZm9yKGludCBpPTA7aTx0ZXN0cy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSB0ZXN0c1tpXVswXTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKiBUZXN0aW5nIDogIisgbG9jYWxlKTsKKyAgICAgICAgICAgIFN0cmluZyBidWZmLCBidWZmMTsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyAgPSBuZXcgVUxvY2FsZShsb2NhbGUpOworCisgICAgICAgICAgICBidWZmID0gVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UobG9jYWxlKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYuY29tcGFyZVRvKHRlc3RzW2ldWzFdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzFdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNMYW5ndWFnZSgiK2xvY2FsZSsiKT09IitidWZmKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmZjEgPSB1bG9jLmdldElTTzNMYW5ndWFnZSgpOworICAgICAgICAgICAgaWYoYnVmZjEuY29tcGFyZVRvKHRlc3RzW2ldWzFdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzFdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNMYW5ndWFnZSgiK2xvY2FsZSsiKT09IitidWZmKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmZiA9IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UobG9jYWxlKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYuY29tcGFyZVRvKHRlc3RzW2ldWzJdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bMl0pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0TGFuZ3VhZ2UoIitsb2NhbGUrIik9PSIrYnVmZik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1ZmYgPSBVTG9jYWxlLmdldElTTzNDb3VudHJ5KGxvY2FsZSk7CisgICAgICAgICAgICBpZihidWZmLmNvbXBhcmVUbyh0ZXN0c1tpXVszXSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzNdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iK2J1ZmYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBidWZmMSA9IHVsb2MuZ2V0SVNPM0NvdW50cnkoKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYxLmNvbXBhcmVUbyh0ZXN0c1tpXVszXSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzNdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iK2J1ZmYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBidWZmID0gVUxvY2FsZS5nZXRDb3VudHJ5KGxvY2FsZSk7CisgICAgICAgICAgICBpZihidWZmLmNvbXBhcmVUbyh0ZXN0c1tpXVs0XSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVTG9jYWxlLmdldENvdW50cnkoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bNF0pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0Q291bnRyeSgiK2xvY2FsZSsiKT09IitidWZmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChVTG9jYWxlLmdldExhbmd1YWdlKCJpd19JTCIpLmNvbXBhcmVUbyggVUxvY2FsZS5nZXRMYW5ndWFnZSgiaGVfSUwiKSk9PTApIHsKKyAgICAgICAgICAgIGVycmxuKCJoZSxpdyBVTG9jYWxlLmdldExhbmd1YWdlIG1pc21hdGNoIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgYnVmZiA9IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UoImtva19JTiIpOworICAgICAgICBpZihidWZmLmNvbXBhcmVUbygia29rIikhPTApeworICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuZ2V0TGFuZ3VhZ2UoXCJrb2tcIikgZmFpbGVkLiBFeHBlY3RlZDoga29rIEdvdDogIitidWZmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2Fub25pY2FsaXphdGlvbigpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtddGVzdENhc2VzID0gbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICB7ICJjYV9FU19QUkVFVVJPIiwgImNhX0VTX1BSRUVVUk8iLCAiY2FfRVNAY3VycmVuY3k9RVNQIiB9LAorICAgICAgICAgICAgeyAiZGVfQVRfUFJFRVVSTyIsICJkZV9BVF9QUkVFVVJPIiwgImRlX0FUQGN1cnJlbmN5PUFUUyIgfSwKKyAgICAgICAgICAgIHsgImRlX0RFX1BSRUVVUk8iLCAiZGVfREVfUFJFRVVSTyIsICJkZV9ERUBjdXJyZW5jeT1ERU0iIH0sCisgICAgICAgICAgICB7ICJkZV9MVV9QUkVFVVJPIiwgImRlX0xVX1BSRUVVUk8iLCAiZGVfTFVAY3VycmVuY3k9RVVSIiB9LAorICAgICAgICAgICAgeyAiZWxfR1JfUFJFRVVSTyIsICJlbF9HUl9QUkVFVVJPIiwgImVsX0dSQGN1cnJlbmN5PUdSRCIgfSwKKyAgICAgICAgICAgIHsgImVuX0JFX1BSRUVVUk8iLCAiZW5fQkVfUFJFRVVSTyIsICJlbl9CRUBjdXJyZW5jeT1CRUYiIH0sCisgICAgICAgICAgICB7ICJlbl9JRV9QUkVFVVJPIiwgImVuX0lFX1BSRUVVUk8iLCAiZW5fSUVAY3VycmVuY3k9SUVQIiB9LAorICAgICAgICAgICAgeyAiZXNfRVNfUFJFRVVSTyIsICJlc19FU19QUkVFVVJPIiwgImVzX0VTQGN1cnJlbmN5PUVTUCIgfSwKKyAgICAgICAgICAgIHsgImV1X0VTX1BSRUVVUk8iLCAiZXVfRVNfUFJFRVVSTyIsICJldV9FU0BjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICB7ICJmaV9GSV9QUkVFVVJPIiwgImZpX0ZJX1BSRUVVUk8iLCAiZmlfRklAY3VycmVuY3k9RklNIiB9LAorICAgICAgICAgICAgeyAiZnJfQkVfUFJFRVVSTyIsICJmcl9CRV9QUkVFVVJPIiwgImZyX0JFQGN1cnJlbmN5PUJFRiIgfSwKKyAgICAgICAgICAgIHsgImZyX0ZSX1BSRUVVUk8iLCAiZnJfRlJfUFJFRVVSTyIsICJmcl9GUkBjdXJyZW5jeT1GUkYiIH0sCisgICAgICAgICAgICB7ICJmcl9MVV9QUkVFVVJPIiwgImZyX0xVX1BSRUVVUk8iLCAiZnJfTFVAY3VycmVuY3k9TFVGIiB9LAorICAgICAgICAgICAgeyAiZ2FfSUVfUFJFRVVSTyIsICJnYV9JRV9QUkVFVVJPIiwgImdhX0lFQGN1cnJlbmN5PUlFUCIgfSwKKyAgICAgICAgICAgIHsgImdsX0VTX1BSRUVVUk8iLCAiZ2xfRVNfUFJFRVVSTyIsICJnbF9FU0BjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICB7ICJpdF9JVF9QUkVFVVJPIiwgIml0X0lUX1BSRUVVUk8iLCAiaXRfSVRAY3VycmVuY3k9SVRMIiB9LAorICAgICAgICAgICAgeyAibmxfQkVfUFJFRVVSTyIsICJubF9CRV9QUkVFVVJPIiwgIm5sX0JFQGN1cnJlbmN5PUJFRiIgfSwKKyAgICAgICAgICAgIHsgIm5sX05MX1BSRUVVUk8iLCAibmxfTkxfUFJFRVVSTyIsICJubF9OTEBjdXJyZW5jeT1OTEciIH0sCisgICAgICAgICAgICB7ICJwdF9QVF9QUkVFVVJPIiwgInB0X1BUX1BSRUVVUk8iLCAicHRfUFRAY3VycmVuY3k9UFRFIiB9LAorICAgICAgICAgICAgeyAiZGVfX1BIT05FQk9PSyIsICJkZV9fUEhPTkVCT09LIiwgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siIH0sCisgICAgICAgICAgICB7ICJlbl9HQl9FVVJPIiwgImVuX0dCX0VVUk8iLCAiZW5fR0JAY3VycmVuY3k9RVVSIiB9LAorICAgICAgICAgICAgeyAiZW5fR0JARVVSTyIsIG51bGwsICJlbl9HQkBjdXJyZW5jeT1FVVIiIH0sIC8qIFBPU0lYIElEICovCisgICAgICAgICAgICB7ICJlc19fVFJBRElUSU9OQUwiLCAiZXNfX1RSQURJVElPTkFMIiwgImVzQGNvbGxhdGlvbj10cmFkaXRpb25hbCIgfSwKKyAgICAgICAgICAgIHsgImhpX19ESVJFQ1QiLCAiaGlfX0RJUkVDVCIsICJoaUBjb2xsYXRpb249ZGlyZWN0IiB9LAorICAgICAgICAgICAgeyAiamFfSlBfVFJBRElUSU9OQUwiLCAiamFfSlBfVFJBRElUSU9OQUwiLCAiamFfSlBAY2FsZW5kYXI9amFwYW5lc2UiIH0sCisgICAgICAgICAgICB7ICJ0aF9USF9UUkFESVRJT05BTCIsICJ0aF9USF9UUkFESVRJT05BTCIsICJ0aF9USEBjYWxlbmRhcj1idWRkaGlzdCIgfSwKKyAgICAgICAgICAgIHsgInpoX1RXX1NUUk9LRSIsICJ6aF9UV19TVFJPS0UiLCAiemhfVFdAY29sbGF0aW9uPXN0cm9rZSIgfSwKKyAgICAgICAgICAgIHsgInpoX19QSU5ZSU4iLCAiemhfX1BJTllJTiIsICJ6aEBjb2xsYXRpb249cGlueWluIiB9LAorICAgICAgICAgICAgeyAiemhAY29sbGF0aW9uPXBpbnlpbiIsICJ6aEBjb2xsYXRpb249cGlueWluIiwgInpoQGNvbGxhdGlvbj1waW55aW4iIH0sCisgICAgICAgICAgICB7ICJ6aF9DTkBjb2xsYXRpb249cGlueWluIiwgInpoX0NOQGNvbGxhdGlvbj1waW55aW4iLCAiemhfQ05AY29sbGF0aW9uPXBpbnlpbiIgfSwKKyAgICAgICAgICAgIHsgInpoX0NOX0NBQGNvbGxhdGlvbj1waW55aW4iLCAiemhfQ05fQ0FAY29sbGF0aW9uPXBpbnlpbiIsICJ6aF9DTl9DQUBjb2xsYXRpb249cGlueWluIiB9LAorICAgICAgICAgICAgeyAiZW5fVVNfUE9TSVgiLCAiZW5fVVNfUE9TSVgiLCAiZW5fVVNfUE9TSVgiIH0sCisgICAgICAgICAgICB7ICJoeV9BTV9SRVZJU0VEIiwgImh5X0FNX1JFVklTRUQiLCAiaHlfQU1fUkVWSVNFRCIgfSwKKyAgICAgICAgICAgIHsgIm5vX05PX05ZIiwgIm5vX05PX05ZIiwgIm5vX05PX05ZIiAvKiBub3Q6ICJubl9OTyIgW2FsYW4gSUNVMy4wXSAqLyB9LAorICAgICAgICAgICAgeyAibm9AbnkiLCBudWxsLCAibm9fX05ZIiAvKiBub3Q6ICJubiIgW2FsYW4gSUNVMy4wXSAqLyB9LCAvKiBQT1NJWCBJRCAqLworICAgICAgICAgICAgeyAibm8tbm8udXRmMzJAQiIsIG51bGwsICJub19OT19CIiAvKiBub3Q6ICJuYl9OT19CIiBbYWxhbiBJQ1UzLjBdICovIH0sIC8qIFBPU0lYIElEICovCisgICAgICAgICAgICB7ICJxei1xekBFdXJvIiwgbnVsbCwgInF6X1FaQGN1cnJlbmN5PUVVUiIgfSwgLyogcXotcXogdXNlcyBwcml2YXRlIHVzZSBpc28gY29kZXMgKi8KKyAgICAgICAgICAgIHsgImVuLUJPT05UIiwgImVuX0JPT05UIiwgImVuX19CT09OVCIgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICB7ICJkZS0xOTAxIiwgImRlXzE5MDEiLCAiZGVfXzE5MDEiIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgeyAiZGUtMTkwNiIsICJkZV8xOTA2IiwgImRlX18xOTA2IiB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInNyLVNQLUN5cmwiLCAic3JfU1BfQ1lSTCIsICJzcl9DeXJsX0NTIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInNyLVNQLUxhdG4iLCAic3JfU1BfTEFUTiIsICJzcl9MYXRuX0NTIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInNyX1lVX0NZUklMTElDIiwgInNyX1lVX0NZUklMTElDIiwgInNyX0N5cmxfQ1MiIH0sIC8qIExpbnV4IG5hbWUgKi8KKyAgICAgICAgICAgIHsgInV6LVVaLUN5cmwiLCAidXpfVVpfQ1lSTCIsICJ1el9DeXJsX1VaIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInV6LVVaLUxhdG4iLCAidXpfVVpfTEFUTiIsICJ1el9MYXRuX1VaIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInpoLUNIUyIsICJ6aF9DSFMiLCAiemhfSGFucyIgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICB7ICJ6aC1DSFQiLCAiemhfQ0hUIiwgInpoX0hhbnQiIH0sIC8qIC5ORVQgbmFtZSBUaGlzIG1heSBjaGFuZ2UgYmFjayB0byB6aF9IYW50ICovCisKKyAgICAgICAgICAgIC8qIHBvc2l4IGJlaGF2aW9yIHRoYXQgdXNlZCB0byBiZSBwZXJmb3JtZWQgYnkgZ2V0TmFtZSAqLworICAgICAgICAgICAgeyAibXIudXRmOCIsIG51bGwsICJtciIgfSwKKyAgICAgICAgICAgIHsgImRlLXR2LmtvaThyIiwgbnVsbCwgImRlX1RWIiB9LAorICAgICAgICAgICAgeyAieC1waWdsYXRpbl9NTC5NQkUiLCBudWxsLCAieC1waWdsYXRpbl9NTCIgfSwKKyAgICAgICAgICAgIHsgImktY2hlcm9rZWVfVVMudXRmNyIsIG51bGwsICJpLWNoZXJva2VlX1VTIiB9LAorICAgICAgICAgICAgeyAieC1maWxmbGlfTVRfRklMRkxBLmdiLTE4MDMwIiwgbnVsbCwgIngtZmlsZmxpX01UX0ZJTEZMQSIgfSwKKyAgICAgICAgICAgIHsgIm5vLW5vLW55LnV0ZjhAQiIsIG51bGwsICJub19OT19OWV9CIiAvKiBub3Q6ICJubl9OTyIgW2FsYW4gSUNVMy4wXSAqLyB9LCAvKiBAIGlnbm9yZWQgdW5sZXNzIHZhcmlhbnQgaXMgZW1wdHkgKi8KKworICAgICAgICAgICAgLyogZmxlc2hpbmcgb3V0IGNhbm9uaWNhbGl6YXRpb24gKi8KKyAgICAgICAgICAgIC8qIHNvcnQga2V5d29yZHMsICc7JyBpcyBzZXBhcmF0b3Igc28gbm90IHByZXNlbnQgYXQgZW5kIGluIGNhbm9uaWNhbCBmb3JtICovCisgICAgICAgICAgICB7ICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGN1cnJlbmN5PUVVUjtjYWxlbmRhcj1KYXBhbmVzZTsiLCAiZW5fSGFudF9JTF9WQUxMRVlfR0lSTEBjYWxlbmRhcj1KYXBhbmVzZTtjdXJyZW5jeT1FVVIiLCAiZW5fSGFudF9JTF9WQUxMRVlfR0lSTEBjYWxlbmRhcj1KYXBhbmVzZTtjdXJyZW5jeT1FVVIiIH0sCisgICAgICAgICAgICAvKiBhbHJlYWR5LWNhbm9uaWNhbCBpZHMgYXJlIG5vdCBjaGFuZ2VkICovCisgICAgICAgICAgICB7ICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIsICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIsICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIgfSwKKyAgICAgICAgICAgIC8qIFBSRV9FVVJPIGFuZCBFVVJPIGNvbnZlcnNpb25zIGRvbid0IGFmZmVjdCBvdGhlciBrZXl3b3JkcyAqLworICAgICAgICAgICAgLyogbm90IGluIHNwZWMKKyAgICAgICAgICAgICAgIHsgImVzX0VTX1BSRUVVUk9AQ0FMZW5kYXI9SmFwYW5lc2UiLCAiZXNfRVNfUFJFRVVST0BjYWxlbmRhcj1KYXBhbmVzZSIsICJlc19FU0BjYWxlbmRhcj1KYXBhbmVzZTtjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICAgICB7ICJlc19FU19FVVJPQFNIT1VUPXppcGVlZGVlZG9vZGFoIiwgImVzX0VTX0VVUk9Ac2hvdXQ9emlwZWVkZWVkb29kYWgiLCAiZXNfRVNAY3VycmVuY3k9RVVSO3Nob3V0PXppcGVlZGVlZG9vZGFoIiB9LAorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qIGN1cnJlbmN5IGtleXdvcmQgb3ZlcnJpZGVzIFBSRV9FVVJPIGFuZCBFVVJPIGN1cnJlbmN5ICovCisgICAgICAgICAgICAvKiBub3QgaW4gc3BlYworICAgICAgICAgICAgICAgeyAiZXNfRVNfUFJFRVVST0BjdXJyZW5jeT1FVVIiLCAiZXNfRVNfUFJFRVVST0BjdXJyZW5jeT1FVVIiLCAiZXNfRVNAY3VycmVuY3k9RVVSIiB9LAorICAgICAgICAgICAgICAgeyAiZXNfRVNfRVVST0BjdXJyZW5jeT1FU1AiLCAiZXNfRVNfRVVST0BjdXJyZW5jeT1FU1AiLCAiZXNfRVNAY3VycmVuY3k9RVNQIiB9LAorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qIG5vcndlZ2lhbiBpcyBqdXN0IHRvbyB3ZWlyZCwgaWYgd2UgaGFuZGxlIHRoaW5ncyBpbiB0aGVpciBmdWxsIGdlbmVyYWxpdHkgKi8KKyAgICAgICAgICAgIC8qIHRoaXMgaXMgYSBuZWdhdGl2ZSB0ZXN0IHRvIHNob3cgdGhhdCB3ZSBETyBOT1QgaGFuZGxlICdsYW5nPW5vLHZhcj1OWScgc3BlY2lhbGx5LiAqLworICAgICAgICAgICAgeyAibm8tSGFudC1HQl9OWUBjdXJyZW5jeT0kJCQiLCAibm9fSGFudF9HQl9OWUBjdXJyZW5jeT0kJCQiLCAibm9fSGFudF9HQl9OWUBjdXJyZW5jeT0kJCQiIC8qIG5vdDogIm5uX0hhbnRfR0JAY3VycmVuY3k9JCQkIiBbYWxhbiBJQ1UzLjBdICovIH0sCisKKyAgICAgICAgICAgIC8qIHRlc3QgY2FzZXMgcmVmbGVjdGluZyBpbnRlcm5hbCByZXNvdXJjZSBidW5kbGUgdXNhZ2UgKi8KKyAgICAgICAgICAgIC8qIHJvb3QgaXMganVzdCBhIGxhbmd1YWdlICovCisgICAgICAgICAgICB7ICJyb290QGt3PWZvbyIsICJyb290QGt3PWZvbyIsICJyb290QGt3PWZvbyIgfSwKKyAgICAgICAgICAgIC8qIGxldmVsIDIgY2Fub25pY2FsaXphdGlvbiBzaG91bGQgbm90IHRvdWNoIGJhc2VuYW1lIHdoZW4gdGhlcmUgYXJlIGtleXdvcmRzIGFuZCBpdCBpcyBudWxsICovCisgICAgICAgICAgICB7ICJAY2FsZW5kYXI9Z3JlZ29yaWFuIiwgIkBjYWxlbmRhcj1ncmVnb3JpYW4iLCAiQGNhbGVuZGFyPWdyZWdvcmlhbiIgfSwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IoaW50IGkgPSAwOyBpPCB0ZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZSA9IHRlc3RDYXNlc1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSB0ZXN0Q2FzZVswXTsKKyAgICAgICAgICAgIFN0cmluZyBsZXZlbDFFeHBlY3RlZCA9IHRlc3RDYXNlWzFdOworICAgICAgICAgICAgU3RyaW5nIGxldmVsMkV4cGVjdGVkID0gdGVzdENhc2VbMl07CisKKyAgICAgICAgICAgIGlmIChsZXZlbDFFeHBlY3RlZCAhPSBudWxsKSB7IC8vIG51bGwgbWVhbnMgd2UgaGF2ZSBubyBleHBlY3RhdGlvbnMgZm9yIGhvdyB0aGlzIGNhc2UgaXMgaGFuZGxlZAorICAgICAgICAgICAgICAgIFN0cmluZyBsZXZlbDEgPSBVTG9jYWxlLmdldE5hbWUoc291cmNlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWxldmVsMS5lcXVhbHMobGV2ZWwxRXhwZWN0ZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVTG9jYWxlLmdldE5hbWUgZXJyb3IgZm9yOiAnIiArIHNvdXJjZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICInIGV4cGVjdGVkOiAnIiArIGxldmVsMUV4cGVjdGVkICsgIicgYnV0IGdvdDogJyIgKyBsZXZlbDEgKyAiJyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJVbG9jYWxlLmdldE5hbWUgZm9yOiAnIiArIHNvdXJjZSArICInIHJldHVybmVkOiAnIiArIGxldmVsMSArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiVUxvY2FsZS5nZXROYW1lIHNraXBwZWQ6ICciICsgc291cmNlICsgIiciKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxldmVsMkV4cGVjdGVkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGV2ZWwyID0gVUxvY2FsZS5jYW5vbmljYWxpemUoc291cmNlKTsKKyAgICAgICAgICAgICAgICBpZighbGV2ZWwyLmVxdWFscyhsZXZlbDJFeHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVUxvY2FsZS5nZXROYW1lIGVycm9yIGZvcjogJyIgKyBzb3VyY2UgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiJyBleHBlY3RlZDogJyIgKyBsZXZlbDJFeHBlY3RlZCArICInIGJ1dCBnb3Q6ICciICsgbGV2ZWwyICsgIiciKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiVWxvY2FsZS5jYW5vbmljYWxpemUgZm9yOiAnIiArIHNvdXJjZSArICInIHJldHVybmVkOiAnIiArIGxldmVsMiArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiVUxvY2FsZS5jYW5vbmljYWxpemUgc2tpcHBlZDogJyIgKyBzb3VyY2UgKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldEF2YWlsYWJsZSgpeworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZihsb2NhbGVzLmxlbmd0aDwxMCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGNvcnJlY3QgcmVzdWx0IGZyb20gZ2V0QXZhaWxhYmxlTG9jYWxlcyIpOworICAgICAgICB9CisgICAgICAgIGlmKCFsb2NhbGVzW2xvY2FsZXMubGVuZ3RoLTFdLmVxdWFscygiemhfSGFudF9UVyIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzcGxheU5hbWVzKCkgeworICAgICAgICAvLyBjb25zaXN0ZW5jeSBjaGVjaywgYWxzbyBjaGVjayB0aGF0IGFsbCBkYXRhIGlzIGF2YWlsYWJsZQorICAgICAgICB7CisgICAgICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZSBsID0gbG9jYWxlc1tpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGwuZ2V0RGlzcGxheU5hbWUoKTsKKworICAgICAgICAgICAgICAgIGxvZ2xuKGwgKyAiIC0tPiAiICsgbmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIGwuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5HRVJNQU4pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCAiICsgbC5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkZSQU5DRSkpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbC5nZXREaXNwbGF5TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc2NyaXB0ID0gbC5nZXREaXNwbGF5U2NyaXB0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBsLmdldERpc3BsYXlDb3VudHJ5KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSBsLmdldERpc3BsYXlWYXJpYW50KCk7CisKKyAgICAgICAgICAgICAgICBjaGVja05hbWUobmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBkbCA9IGxvY2FsZXNbal07CisKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGwuZ2V0RGlzcGxheU5hbWUoZGwpOworICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSA9IGwuZ2V0RGlzcGxheUxhbmd1YWdlKGRsKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0ID0gbC5nZXREaXNwbGF5U2NyaXB0KGRsKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9IGwuZ2V0RGlzcGxheUNvdW50cnkoZGwpOworICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0gbC5nZXREaXNwbGF5VmFyaWFudChkbCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja05hbWUobmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHNwb3QgY2hlY2sKKyAgICAgICAgeworICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZS5VUywgVUxvY2FsZS5HRVJNQU5ZLCBVTG9jYWxlLkZSQU5DRQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geworICAgICAgICAgICAgICAgICJDaGluZXNlIChDaGluYSkiLCAiQ2hpbmVzaXNjaCAoQ2hpbmEpIiwgImNoaW5vaXMgKENoaW5lKSIKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IG5ldyBVTG9jYWxlKCJ6aF9DTiIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBsb2NhbGUuZ2V0RGlzcGxheU5hbWUobG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFuYW1lc1tpXS5lcXVhbHMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICciICsgbmFtZXNbaV0gKyAiJyBidXQgZ290ICciICsgbmFtZSArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrTmFtZShTdHJpbmcgbmFtZSwgU3RyaW5nIGxhbmd1YWdlLCBTdHJpbmcgc2NyaXB0LCBTdHJpbmcgY291bnRyeSwgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgaWYgKGxhbmd1YWdlLmxlbmd0aCgpID4gMCAmJiBuYW1lLmluZGV4T2YobGFuZ3VhZ2UpID09IC0xKSB7CisgICAgICAgICAgICBlcnJsbigibmFtZSAnIiArIG5hbWUgKyAiJyBkb2VzIG5vdCBjb250YWluIGxhbmd1YWdlICciICsgbGFuZ3VhZ2UgKyAiJyIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzY3JpcHQubGVuZ3RoKCkgPiAwICYmIG5hbWUuaW5kZXhPZihzY3JpcHQpID09IC0xKSB7CisgICAgICAgICAgICBlcnJsbigibmFtZSAnIiArIG5hbWUgKyAiJyBkb2VzIG5vdCBjb250YWluIHNjcmlwdCAnIiArIHNjcmlwdCArICInIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50cnkubGVuZ3RoKCkgPiAwICYmIG5hbWUuaW5kZXhPZihjb3VudHJ5KSA9PSAtMSkgeworICAgICAgICAgICAgZXJybG4oIm5hbWUgJyIgKyBuYW1lICsgIicgZG9lcyBub3QgY29udGFpbiBjb3VudHJ5ICciICsgY291bnRyeSArICInIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPiAwICYmIG5hbWUuaW5kZXhPZih2YXJpYW50KSA9PSAtMSkgeworICAgICAgICAgICAgZXJybG4oIm5hbWUgJyIgKyBuYW1lICsgIicgZG9lcyBub3QgY29udGFpbiB2YXJpYW50ICciICsgdmFyaWFudCArICInIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICB7CisgICAgICAgICAgICAvL0NvdmVyIGRpc3BsYXlYWFgKKyAgICAgICAgICAgIGludCBpLCBqOworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZUlEPSJ6aF9DTiI7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudDsKKyAgICAgICAgICAgIGxvZ2xuKCJDb3ZlcmluZyBBUElzIHdpdGggc2lnbmF0dXJlIGRpc3BsYXlYWFgoU3RyaW5nLCBTdHJpbmcpIik7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgTE9DQUxFX1NJWkU7IGkrKykgeworICAgICAgICAgICAgICAgIC8vbG9jYWxlSUQgU3RyaW5nCisgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RMb2NhbGU9KHJhd0RhdGEyW05BTUVdW2ldKTsKKworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nICIrIHRlc3RMb2NhbGUrIi4uLi4uIik7CisgICAgICAgICAgICAgICAgbmFtZSA9IFVMb2NhbGUuZ2V0RGlzcGxheU5hbWUobG9jYWxlSUQsIHRlc3RMb2NhbGUpOworICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UobG9jYWxlSUQsIHRlc3RMb2NhbGUpOworICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChsb2NhbGVJRCwgdGVzdExvY2FsZSk7CisgICAgICAgICAgICAgICAgY291bnRyeSA9IFVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkobG9jYWxlSUQsIHRlc3RMb2NhbGUpOworICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBVTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KGxvY2FsZUlELCB0ZXN0TG9jYWxlKTsKKworICAgICAgICAgICAgICAgIGlmICghY2hlY2tOYW1lKG5hbWUsIGxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nbG4oIkNvdmVyaW5nIEFQSXMgd2l0aCBzaWduYXR1cmUgZGlzcGxheVhYWChTdHJpbmcsIFVMb2NhbGUpXG4iKTsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBMT0NBTEVfU0laRTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RMb2NhbGU9KHJhd0RhdGEyW05BTUVdW2pdKTsKKyAgICAgICAgICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKHRlc3RMb2NhbGUpOworCisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgIisgdGVzdExvY2FsZSsiLi4uLi4iKTsKKyAgICAgICAgICAgICAgICBuYW1lID0gVUxvY2FsZS5nZXREaXNwbGF5TmFtZShsb2NhbGVJRCwgbG9jKTsKKyAgICAgICAgICAgICAgICBsYW5ndWFnZSA9IFVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKGxvY2FsZUlELCBsb2MpOworICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChsb2NhbGVJRCwgbG9jKTsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeShsb2NhbGVJRCwgbG9jKTsKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudChsb2NhbGVJRCwgbG9jKTsKKworICAgICAgICAgICAgICAgIGlmICghY2hlY2tOYW1lKG5hbWUsIGxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBVTG9jYWxlIGxvYzEgPSBuZXcgVUxvY2FsZSgiZW5fVVNfQlJPT0tMWU4iKTsKKyAgICAgICAgVUxvY2FsZSBsb2MyID0gbmV3IFVMb2NhbGUoImVuIiwiVVMiLCJCUk9PS0xZTiIpOworICAgICAgICBpZiAoIWxvYzIuZXF1YWxzKGxvYzEpKXsKKyAgICAgICAgICAgIGVycmxuKCJVTG9jYWxlLlVMb2NhbGUoU3RyaW5nIGEsIFN0cmluZyBiLCBTdHJpbmcgYykiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVUxvY2FsZSBsb2MzID0gbmV3IFVMb2NhbGUoImVuX1VTIik7CisgICAgICAgIFVMb2NhbGUgbG9jNCA9IG5ldyBVTG9jYWxlKCJlbiIsIlVTIik7CisgICAgICAgIGlmICghbG9jNC5lcXVhbHMobG9jMykpeworICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIpIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFVMb2NhbGUgbG9jNSA9IChVTG9jYWxlKSBsb2M0LmNsb25lKCk7CisgICAgICAgIGlmICghbG9jNS5lcXVhbHMobG9jNCkpeworICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuY2xvbmUgc2hvdWxkIGdldCB0aGUgc2FtZSBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICAgICAgVUxvY2FsZS5nZXRJU09Db3VudHJpZXMoKTsJLy8gVG8gY2hlY2sgdGhlIHJlc3VsdCA/IQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYW1CbSgpIHsKKyAgICAgICAgLy8gImJhbSIgc2hvdWxkbid0IGJlIHRoZXJlIHNpbmNlIHRoZSBvZmZpY2lhbCBjb2RlIGlzICdibScKKyAgICAgICAgU3RyaW5nW10gaXNvTGFuZ3VhZ2VzID0gVUxvY2FsZS5nZXRJU09MYW5ndWFnZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpc29MYW5ndWFnZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgiYmFtIi5lcXVhbHMoaXNvTGFuZ3VhZ2VzW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCBiYW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpID4gMCAmJiBpc29MYW5ndWFnZXNbaV0uY29tcGFyZVRvKGlzb0xhbmd1YWdlc1tpLTFdKSA8PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImxhbmd1YWdlIGxpc3Qgb3V0IG9mIG9yZGVyOiAnIiArIGlzb0xhbmd1YWdlc1tpXSArICIgPD0gIiArIGlzb0xhbmd1YWdlc1tpLTFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5S2V5d29yZCgpIHsKKyAgICAgICAgLy9wcmVwYXJlIHRlc3RpbmcgZGF0YQorICAgICAgICBpbml0SGFzaHRhYmxlKCk7CisgICAgICAgIFN0cmluZ1tdIGRhdGEgPSB7ImVuX1VTQGNvbGxhdGlvbj1kaXJlY3Q7Y2FsZW5kYXI9aXNsYW1pYy1jaXZpbCIsCisgICAgICAgICAgICAgInpoX0hhbnNAY29sbGF0aW9uPXBpbnlpbjtjYWxlbmRhcj1jaGluZXNlIiwKKyAgICAgICAgICAgICAiZm9vX0Jhcl9CQVpAY29sbGF0aW9uPXRyYWRpdGlvbmFsO2NhbGVuZGFyPWJ1ZGRoaXN0In07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlSUQgPSBkYXRhW2ldOworICAgICAgICAgICAgbG9nbG4oIiIpOworICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgbG9jYWxlICIgKyBsb2NhbGVJRCArICIgLi4uIik7CisgICAgICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKGxvY2FsZUlEKTsKKworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBsb2MuZ2V0S2V5d29yZHMoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IFVMb2NhbGUuZ2V0S2V5d29yZHMobG9jYWxlSUQpOworICAgICAgICAgICAgLy9pdCBhbmQgaXQyIGFyZSBub3QgZXF1YWwgaGVyZS4gTm8gd2F5IHRvIHZlcmlmeSB0aGVpciBlcXVpdmFsZW5jZSB5ZXQuCisgICAgICAgICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZylpdC5uZXh0KCk7CisKKyAgICAgICAgICAgICAgICAvL1RvIHZlcmlmeSBkaXNwbGF5IG9mIEtleXdvcmQKKyAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IHRoZSBhYm92ZSBrZXkgaW4gRW5nbGlzaAorICAgICAgICAgICAgICAgIFN0cmluZyBzMCA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoa2V5KTsgLy9kaXNwbGF5IGluIGRlZmF1bHQgbG9jYWxlCisgICAgICAgICAgICAgICAgU3RyaW5nIHMxID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZChrZXksIFVMb2NhbGUuVVMpOworICAgICAgICAgICAgICAgIFN0cmluZyBzMiA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoa2V5LCAiZW5fVVMiKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4gKCJGQUlMOiBvbmUgb2YgdGhlIGdldERpc3BsYXlLZXl3b3JkIG1ldGhvZHMgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhoWzBdLmdldChrZXkpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkxvY2FsZSAiICsgbG9jYWxlSUQgKyAiIGdldERpc3BsYXlLZXl3b3JkIGZvciBrZXk6ICIgKyBrZXkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGluIEVuZ2xpc2ggZXhwZWN0ZWQgXCIiICsgaFswXS5nZXQoa2V5KSArICJcIiBzYXcgXCIiICsgczEgKyAiXCIgaW5zdGVhZCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogZ2V0RGlzcGxheUtleXdvcmQgZm9yIGtleTogIiArIGtleSArICIgaW4gRW5nbGlzaCBnb3QgIiArIHMxKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IHRoZSBrZXkgaW4gUy1DaGluZXNlCisgICAgICAgICAgICAgICAgczEgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKGtleSwgVUxvY2FsZS5DSElOQSk7CisgICAgICAgICAgICAgICAgczIgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKGtleSwgInpoX0hhbnMiKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4gKCJvbmUgb2YgdGhlIGdldERpc3BsYXlLZXl3b3JkIG1ldGhvZHMgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhoWzFdLmdldChrZXkpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkxvY2FsZSAiICsgbG9jYWxlSUQgKyAiIGdldERpc3BsYXlLZXl3b3JkIGZvciBrZXk6ICIgKyBrZXkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGluIENoaW5lc2UgZXhwZWN0ZWQgXCIiICsgaFsxXS5nZXQoa2V5KSArICJcIiBzYXcgXCIiICsgczEgKyAiXCIgaW5zdGVhZCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogZ2V0RGlzcGxheUtleXdvcmQgZm9yIGtleTogIiArIGtleSArICIgaW4gQ2hpbmVzZSBnb3QgIiArIHMxKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvL1RvIHZlcmlmeSBkaXNwbGF5IG9mIEtleXdvcmQgdmFsdWVzCisgICAgICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBsb2MuZ2V0S2V5d29yZFZhbHVlKGtleSk7CisgICAgICAgICAgICAgICAgLy8gZGlzcGxheSB0eXBlIGluIEVuZ2xpc2gKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MwID0gbG9jLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoa2V5KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MxID0gbG9jLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoa2V5LCBVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MyID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXksICJlbl9VUyIpOworICAgICAgICAgICAgICAgIFN0cmluZyBzczMgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUobG9jYWxlSUQsIGtleSwgVUxvY2FsZS5VUyk7CisgICAgICAgICAgICAgICAgaWYgKCFzczEuZXF1YWxzKHNzMikgfHwgIXNzMS5lcXVhbHMoc3MzKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbiAoIkZBSUw6IG9uZSBvZiB0aGUgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSBtZXRob2RzIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzczEuZXF1YWxzKGhbMF0uZ2V0KHR5cGUpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIiBMb2NhbGUgIiArIGxvY2FsZUlEICsgIiBnZXREaXNwbGF5S2V5d29yZFZhbHVlIGZvciBrZXk6ICIgKyBrZXkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGluIEVuZ2xpc2ggZXhwZWN0ZWQgXCIiICsgaFswXS5nZXQodHlwZSkgKyAiXCIgc2F3IFwiIiArIHNzMSArICJcIiBpbnN0ZWFkIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnZXREaXNwbGF5S2V5d29yZFZhbHVlIGZvciBrZXk6ICIgKyBrZXkgKyAiIGluIEVuZ2xpc2ggZ290ICIgKyBzczEpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGRpc3BsYXkgdHlwZSBpbiBDaGluZXNlCisgICAgICAgICAgICAgICAgc3MwID0gbG9jLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoa2V5KTsKKyAgICAgICAgICAgICAgICBzczEgPSBsb2MuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShrZXksIFVMb2NhbGUuQ0hJTkEpOworICAgICAgICAgICAgICAgIHNzMiA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5LCAiemhfSGFucyIpOworICAgICAgICAgICAgICAgIHNzMyA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5LCBVTG9jYWxlLkNISU5BKTsKKyAgICAgICAgICAgICAgICBpZiAoIXNzMS5lcXVhbHMoc3MyKSB8fCAhc3MxLmVxdWFscyhzczMpKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbiAoIm9uZSBvZiB0aGUgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSBtZXRob2RzIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzczEuZXF1YWxzKGhbMV0uZ2V0KHR5cGUpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkxvY2FsZSAiICsgbG9jYWxlSUQgKyAiIGdldERpc3BsYXlLZXl3b3JkVmFsdWUgZm9yIGtleTogIiArIGtleSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW4gQ2hpbmVzZSBleHBlY3RlZCBcIiIgKyBoWzFdLmdldCh0eXBlKSArICJcIiBzYXcgXCIiICsgc3MxICsgIlwiIGluc3RlYWQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdldERpc3BsYXlLZXl3b3JkVmFsdWUgZm9yIGtleTogIiArIGtleSArICIgaW4gQ2hpbmVzZSBnb3QgIiArIHNzMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBpbml0SGFzaHRhYmxlKCkgeworICAgICAgICBoWzBdID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBoWzFdID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgICAgIC8vZGlzcGxheSBpbiBFbmdsaXNoCisgICAgICAgIGhbMF0ucHV0KCJjb2xsYXRpb24iLCAiQ29sbGF0aW9uIik7CisgICAgICAgIGhbMF0ucHV0KCJjYWxlbmRhciIsICJDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiY3VycmVuY3kiLCAiQ3VycmVuY3kiKTsKKyAgICAgICAgaFswXS5wdXQoInBob25lYm9vayIsICJQaG9uZWJvb2sgT3JkZXIiKTsKKyAgICAgICAgaFswXS5wdXQoInBpbnlpbiIsICJQaW55aW4gT3JkZXIiKTsKKyAgICAgICAgaFswXS5wdXQoInRyYWRpdGlvbmFsIiwgIlRyYWRpdGlvbmFsIik7CisgICAgICAgIGhbMF0ucHV0KCJzdHJva2UiLCAiU3Ryb2tlIE9yZGVyIik7CisgICAgICAgIGhbMF0ucHV0KCJkaXJlY3QiLCAiRGlyZWN0IE9yZGVyIik7CisgICAgICAgIGhbMF0ucHV0KCJqYXBhbmVzZSIsICJKYXBhbmVzZSBDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiYnVkZGhpc3QiLCAiQnVkZGhpc3QgQ2FsZW5kYXIiKTsKKyAgICAgICAgaFswXS5wdXQoImlzbGFtaWMiLCAiSXNsYW1pYyBDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiaXNsYW1pYy1jaXZpbCIsICJJc2xhbWljLUNpdmlsIENhbGVuZGFyIiApOworICAgICAgICBoWzBdLnB1dCgiaGVicmV3IiwgIkhlYnJldyBDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiY2hpbmVzZSIsICJDaGluZXNlIENhbGVuZGFyIik7CisgICAgICAgIGhbMF0ucHV0KCJncmVnb3JpYW4iLCAiR3JlZ29yaWFuIENhbGVuZGFyIiApOworCisgICAgICAgIC8vZGlzcGxheSBpbiBTLUNoaW5lc2UKKyAgICAgICAgaFsxXS5wdXQoImNvbGxhdGlvbiIsICJcdTVCRjlcdTcxNjciKTsKKyAgICAgICAgaFsxXS5wdXQoImNhbGVuZGFyIiwgIlx1NjVFNVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiY3VycmVuY3kiLCAiXHU4RDI3XHU1RTAxIik7CisgICAgICAgIGhbMV0ucHV0KCJkaXJlY3QiLCAiXHU5ODdBXHU1RThGIik7CisgICAgICAgIGhbMV0ucHV0KCJwaG9uZWJvb2siLCAiXHU3NTM1XHU4QkREXHU3QzNGXHU5ODdBXHU1RThGIik7CisgICAgICAgIGhbMV0ucHV0KCJwaW55aW4iLCAiXHU2MkZDXHU5N0YzXHU5ODdhXHU1ZThmIik7CisgICAgICAgIGhbMV0ucHV0KCJzdHJva2UiLCAiXHU3QjE0XHU1MjEyXHU5ODdBXHU1RThGIik7CisgICAgICAgIGhbMV0ucHV0KCJ0cmFkaXRpb25hbCIsICJcdTRGMjBcdTdFREZcdTUzODZcdTZDRDUiKTsKKyAgICAgICAgaFsxXS5wdXQoImphcGFuZXNlIiwgIlx1NjVFNVx1NjcyQ1x1NjVFNVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiYnVkZGhpc3QiLCAiXHU0RjVCXHU2NTU5XHU2NUU1XHU1Mzg2Iik7CisgICAgICAgIGhbMV0ucHV0KCJpc2xhbWljIiwgIlx1NEYwQVx1NjVBRlx1NTE3MFx1NjVFNVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiaXNsYW1pYy1jaXZpbCIsICJcdTRGMEFcdTY1QUZcdTUxNzBcdTVFMENcdTU0MDlcdTY3NjVcdTUzODYiKTsKKyAgICAgICAgaFsxXS5wdXQoImhlYnJldyIsICJcdTVFMENcdTRGMkZcdTY3NjVcdTY1RTVcdTUzODYiKTsKKyAgICAgICAgaFsxXS5wdXQoImNoaW5lc2UiLCAiXHU1MTlDXHU1Mzg2Iik7CisgICAgICAgIGhbMV0ucHV0KCJncmVnb3JpYW4iLCAiXHU1MTZDXHU1Mzg2Iik7CisgICAgfQorCisgICAgLy9IYXNodGFibGVzIGZvciBzdG9yaW5nIGV4cGVjdGVkIGRpc3BsYXkgb2Yga2V5cy90eXBlcyBvZiBsb2NhbGUgaW4gRW5nbGlzaCBhbmQgQ2hpbmVzZQorICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZVtdIGggPSBuZXcgSGFzaHRhYmxlWzJdOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBQ0NFUFRfTEFOR1VBR0VfVEVTVFNbXVtdICA9ICB7CisgICAgLyojICAgICAgcmVzdWx0ICBmYWxsYmFjaz8gKi8KKyAgICAvKjAqLyB7ICJtdF9NVCIsICJmYWxzZSIgfSwKKyAgICAvKjEqLyB7ICJlbiIsICJmYWxzZSIgfSwKKyAgICAvKjIqLyB7ICJlbiIsICJ0cnVlIiB9LCAvLyBmZWxsIGJhY2sgZnJvbSBlbi16enogdG8gZW4KKyAgICAvKjMqLyB7ICBudWxsLCAidHJ1ZSIgfSwKKyAgICAvKjQqLyB7ICAiZXMiLCAiZmFsc2UiIH0sIAorICAgIC8qNSovIHsgImRlIiwgImZhbHNlIiB9fTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNDRVBUX0xBTkdVQUdFX0hUVFBbXSA9IHsgCisgICAgICAgICAgICAgICAgICAgIC8qMCovICJtdC1tdCwgamE7cT0wLjc2LCBlbi11cztxPTAuOTUsIGVuO3E9MC45MiwgZW4tZ2I7cT0wLjg5LCBmcjtxPTAuODcsIGl1LWNhO3E9MC44NCwgaXU7cT0wLjgyLCBqYS1qcDtxPTAuNzksIG10O3E9MC45NywgZGUtZGU7cT0wLjc0LCBkZTtxPTAuNzEsIGVzO3E9MC42OCwgaXQtaXQ7cT0wLjY2LCBpdDtxPTAuNjMsIHZpLXZuO3E9MC42MSwgdmk7cT0wLjU4LCBubC1ubDtxPTAuNTUsIG5sO3E9MC41MywgdGgtdGgtdHJhZGl0aW9uYWw7cT0uMDEiLAorICAgICAgICAgICAgICAgICAgICAvKjEqLyAiamE7cT0wLjUsIGVuO3E9MC44LCB0bGgiLAorICAgICAgICAgICAgICAgICAgICAvKjIqLyAiZW4tenp6LCBkZS1seDtxPTAuOCIsCisgICAgICAgICAgICAgICAgICAgIC8qMyovICJtZ2EtaWU7cT0wLjksIHRsaCIsCisgICAgICAgICAgICAgICAgICAgIC8qNCovICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgLyo1Ki8gImRlO3E9LjksIGZyO3E9LjksIHh4eC15eXksIHNyO3E9LjgifTsKKyAgICAKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWNjZXB0TGFuZ3VhZ2UoKSB7CisgICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgKEFDQ0VQVF9MQU5HVUFHRV9IVFRQLmxlbmd0aCk7IGkrKykgeworICAgICAgICAgICAgQm9vbGVhbiBleHBlY3RCb29sZWFuID0gbmV3IEJvb2xlYW4oQUNDRVBUX0xBTkdVQUdFX1RFU1RTW2ldWzFdKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RMb2NhbGU9QUNDRVBUX0xBTkdVQUdFX1RFU1RTW2ldWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgIGxvZ2xuKCIjIiArIGkgKyAiOiBleHBlY3Rpbmc6ICIgKyBleHBlY3RMb2NhbGUgKyAiICgiICsgZXhwZWN0Qm9vbGVhbiArICIpIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gcltdID0geyBmYWxzZSB9OworICAgICAgICAgICAgVUxvY2FsZSBuID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShBQ0NFUFRfTEFOR1VBR0VfSFRUUFtpXSwgcik7CisgICAgICAgICAgICBpZigobj09bnVsbCkmJihleHBlY3RMb2NhbGUhPW51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInJlc3VsdCB3YXMgbnVsbCEgbGluZSAjIiArIGkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKChuPT1udWxsKSYmKGV4cGVjdExvY2FsZT09bnVsbCkpIHx8IChuLnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdExvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBsb2NhbGU6IE9LLiIgKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICIgKyBleHBlY3RMb2NhbGUgKyAiIGJ1dCBnb3QgIiArIG4udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RCb29sZWFuLmVxdWFscyhuZXcgQm9vbGVhbihyWzBdKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGJvb2w6IE9LLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiYm9vbDogbm90IE9LLCB3YXMgIiArIG5ldyBCb29sZWFuKHJbMF0pLnRvU3RyaW5nKCkgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RCb29sZWFuLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVUxvY2FsZVtdIFN0cmluZ1RvVUxvY2FsZUFycmF5KFN0cmluZyBhY2NlcHRMYW5ndWFnZUxpc3QpeworICAgICAgICAvL2ZvbGxvd2luZyBjb2RlIGlzIGNvcGllZCBmcm9tIAorICAgICAgICAvL1VMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoU3RyaW5nIGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZVtdIGF2YWlsYWJsZUxvY2FsZXMsIGJvb2xlYW5bXSBmYWxsYmFjaykKKyAgICAgICAgY2xhc3MgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICAgICAgcHJpdmF0ZSBkb3VibGUgcTsKKyAgICAgICAgICAgIHByaXZhdGUgZG91YmxlIHNlcmlhbDsKKyAgICAgICAgICAgIHB1YmxpYyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKGRvdWJsZSB0aGVxLCBpbnQgdGhlc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgcSA9IHRoZXE7CisgICAgICAgICAgICAgICAgc2VyaWFsID0gdGhlc2VyaWFsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIG90aGVyID0gKFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEpIG87CisgICAgICAgICAgICAgICAgaWYocSA+IG90aGVyLnEpIHsgLy8gcmV2ZXJzZSAtIHRvIHNvcnQgaW4gZGVzY2VuZGluZyBvcmRlcgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHEgPCBvdGhlci5xKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzZXJpYWwgPCBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihzZXJpYWwgPiBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8vIHNhbWUgb2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gMXN0OiBwYXJzZSBvdXQgdGhlIGFjY2VwdExhbmd1YWdlTGlzdCBpbnRvIGFuIGFycmF5CisgICAgICAgIAorICAgICAgICBUcmVlTWFwIG1hcCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5sZW5ndGgoKTsKKyAgICAgICAgaW50IG47CisgICAgICAgIGludCBsYXN0PS0xOworICAgICAgICBmb3Iobj0wO248bDtuKyspIHsKKyAgICAgICAgICAgIGludCBpdGVtRW5kID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LmluZGV4T2YoJywnLG4pOworICAgICAgICAgICAgaWYoaXRlbUVuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgIGl0ZW1FbmQgPSBsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHBhcmFtRW5kID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LmluZGV4T2YoJzsnLG4pOworICAgICAgICAgICAgZG91YmxlIHEgPSAxLjA7CisgCisgICAgICAgICAgICBpZigocGFyYW1FbmQgIT0gLTEpICYmIChwYXJhbUVuZCA8IGl0ZW1FbmQpKSB7CisgICAgICAgICAgICAgICAgLyogc2VtaWNvbG9uICg7KSBpcyBjbG9zZXIgdGhhbiBlbmQgKCwpICovCisgICAgICAgICAgICAgICAgaW50IHQgPSBwYXJhbUVuZCArIDE7CisgICAgICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzU3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpPT0ncScpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNTcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSc9JykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc1NwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcodCxpdGVtRW5kKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIHEgPSBEb3VibGUucGFyc2VEb3VibGUodmFsKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gbmZlKSB7CisgICAgICAgICAgICAgICAgICAgIHEgPSAxLjA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBxID0gMS4wOyAvL2RlZmF1bHQKKyAgICAgICAgICAgICAgICBwYXJhbUVuZCA9IGl0ZW1FbmQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBsb2MgPSBhY2NlcHRMYW5ndWFnZUxpc3Quc3Vic3RyaW5nKG4scGFyYW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgIGludCBzZXJpYWwgPSBtYXAuc2l6ZSgpOworICAgICAgICAgICAgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBlbnRyeSA9IG5ldyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKHEsc2VyaWFsKTsKKyAgICAgICAgICAgIG1hcC5wdXQoZW50cnksIG5ldyBVTG9jYWxlKFVMb2NhbGUuY2Fub25pY2FsaXplKGxvYykpKTsgLy8gc29ydCBpbiByZXZlcnNlIG9yZGVyLi4gICAxLjAsIDAuOSwgMC44IC4uIGV0YworICAgICAgICAgICAgbiA9IGl0ZW1FbmQ7IC8vIGdldCBuZXh0IGl0ZW0uIChuKysgd2lsbCBza2lwIG92ZXIgZGVsaW1pdGVyKQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyAyLiBwdWxsIG91dCB0aGUgbWFwIAorICAgICAgICBVTG9jYWxlIGFjY2VwdExpc3RbXSA9IChVTG9jYWxlW10pbWFwLnZhbHVlcygpLnRvQXJyYXkobmV3IFVMb2NhbGVbbWFwLnNpemUoKV0pOworICAgICAgICByZXR1cm4gYWNjZXB0TGlzdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEFjY2VwdExhbmd1YWdlMigpIHsKKyAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCAoQUNDRVBUX0xBTkdVQUdFX0hUVFAubGVuZ3RoKTsgaSsrKSB7CisgICAgICAgICAgICBCb29sZWFuIGV4cGVjdEJvb2xlYW4gPSBuZXcgQm9vbGVhbihBQ0NFUFRfTEFOR1VBR0VfVEVTVFNbaV1bMV0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdExvY2FsZT1BQ0NFUFRfTEFOR1VBR0VfVEVTVFNbaV1bMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgbG9nbG4oIiMiICsgaSArICI6IGV4cGVjdGluZzogIiArIGV4cGVjdExvY2FsZSArICIgKCIgKyBleHBlY3RCb29sZWFuICsgIikiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiByW10gPSB7IGZhbHNlIH07CisgICAgICAgICAgICBVTG9jYWxlIG4gPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKFN0cmluZ1RvVUxvY2FsZUFycmF5KEFDQ0VQVF9MQU5HVUFHRV9IVFRQW2ldKSwgcik7CisgICAgICAgICAgICBpZigobj09bnVsbCkmJihleHBlY3RMb2NhbGUhPW51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInJlc3VsdCB3YXMgbnVsbCEgbGluZSAjIiArIGkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKChuPT1udWxsKSYmKGV4cGVjdExvY2FsZT09bnVsbCkpIHx8IChuLnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdExvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBsb2NhbGU6IE9LLiIgKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICIgKyBleHBlY3RMb2NhbGUgKyAiIGJ1dCBnb3QgIiArIG4udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RCb29sZWFuLmVxdWFscyhuZXcgQm9vbGVhbihyWzBdKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGJvb2w6IE9LLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiYm9vbDogbm90IE9LLCB3YXMgIiArIG5ldyBCb29sZWFuKHJbMF0pLnRvU3RyaW5nKCkgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RCb29sZWFuLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjM5NjIoKXsKKyAgICAgICAgVUxvY2FsZSBsb2MgPSBuZXcgVUxvY2FsZSgiZGVfQ0giKTsKKyAgICAgICAgU3RyaW5nIGRpc3AgPSBsb2MuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5HRVJNQU4pOworICAgICAgICBpZighZGlzcC5lcXVhbHMoIkRldXRzY2ggKFNjaHdlaXopIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBkaXNwbGF5IG5hbWUgZm9yIGRlX0NIIGxvY2FsZS4gR290OiAiKyBwcmV0dGlmeShkaXNwKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlTGFiZWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVMYWJlbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNzVkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlTGFiZWwuamF2YQpAQCAtMCwwICsxLDU2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBVbmljb2RlTGFiZWwgeworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgZ2V0VmFsdWUoaW50IGNvZGVwb2ludCwgYm9vbGVhbiBpc1Nob3J0KTsKKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKFN0cmluZyBzLCBTdHJpbmcgc2VwYXJhdG9yLCBib29sZWFuIHdpdGhDb2RlUG9pbnQpIHsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMSkgeyAvLyBvcHRpbWl6ZSBzaW1wbGUgY2FzZQorICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlKHMuY2hhckF0KDApLCB3aXRoQ29kZVBvaW50KTsgCisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocyxpKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHNiLmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICAgICAgc2IuYXBwZW5kKGdldFZhbHVlKGNwLCB3aXRoQ29kZVBvaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0TWF4V2lkdGgoYm9vbGVhbiBpc1Nob3J0KSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBIZXggZXh0ZW5kcyBVbmljb2RlTGFiZWwgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlcG9pbnQsIGJvb2xlYW4gaXNTaG9ydCkgeworICAgICAgICAgICAgaWYgKGlzU2hvcnQpIHJldHVybiBVdGlsaXR5LmhleChjb2RlcG9pbnQsNCk7CisgICAgICAgICAgICByZXR1cm4gIlUrIiArIFV0aWxpdHkuaGV4KGNvZGVwb2ludCw0KTsKKyAgICAgICAgfSAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb25zdGFudCBleHRlbmRzIFVuaWNvZGVMYWJlbCB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlOworICAgICAgICBwdWJsaWMgQ29uc3RhbnQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgdmFsdWUgPSAiIjsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlcG9pbnQsIGJvb2xlYW4gaXNTaG9ydCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TWF4V2lkdGgoYm9vbGVhbiBpc1Nob3J0KSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoKCk7ICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlTGFiZWwgTlVMTCA9IG5ldyBDb25zdGFudCgiIik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlTGFiZWwgSEVYID0gbmV3IEhleCgpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDRkNjU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZU1hcC5qYXZhCkBAIC0wLDAgKzEsOTE0IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0OworaW1wb3J0IGphdmEuaW8uRGF0YU91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRnJlZXphYmxlOworLyoqCisgKiBDbGFzcyBmb3IgbWFwcGluZyBVbmljb2RlIGNoYXJhY3RlcnMgdG8gdmFsdWVzCisgKiBNdWNoIHNtYWxsZXIgc3RvcmFnZSB0aGFuIHVzaW5nIEhhc2hNYXAsIGFuZCBtdWNoIGZhc3RlciBhbmQgbW9yZSBjb21wYWN0IHRoYW4KKyAqIGEgbGlzdCBvZiBVbmljb2RlU2V0cy4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVW5pY29kZU1hcCBpbXBsZW1lbnRzIENsb25lYWJsZSwgRnJlZXphYmxlLCBFeHRlcm5hbGl6YWJsZSB7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gQVNTRVJUSU9OUyA9IGZhbHNlOworICAgIHN0YXRpYyBmaW5hbCBsb25nIEdST1dUSF9QRVJDRU5UID0gMjAwOyAvLyAxMDAgaXMgbm8gZ3Jvd3RoIQorICAgIHN0YXRpYyBmaW5hbCBsb25nIEdST1dUSF9HQVAgPSAxMDsgLy8gZXh0cmEgYnVtcCEKKworICAgIHByaXZhdGUgaW50IGxlbmd0aDsKKyAgICAvLyB0d28gcGFyYWxsZWwgYXJyYXlzIHRvIHNhdmUgbWVtb3J5LiBXaXNoIEphdmEgaGFkIHN0cnVjdHMuCisgICAgcHJpdmF0ZSBpbnRbXSB0cmFuc2l0aW9uczsKKyAgICBwcml2YXRlIE9iamVjdFtdIHZhbHVlczsKKyAgICAKKyAgICBwcml2YXRlIExpbmtlZEhhc2hTZXQgYXZhaWxhYmxlVmFsdWVzID0gbmV3IExpbmtlZEhhc2hTZXQoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHN0YWxlQXZhaWxhYmxlVmFsdWVzOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBlcnJvck9uUmVzZXQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBsb2NrZWQ7CisgICAgcHJpdmF0ZSBpbnQgbGFzdEluZGV4OworICAgIAorICAgIHsgY2xlYXIoKTsgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlTWFwIGNsZWFyKCkgeworICAgICAgICBpZiAobG9ja2VkKSB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGxvY2tlZCBvYmplY3QiKTsKKyAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgdHJhbnNpdGlvbnMgPSBuZXcgaW50W10gezAsMHgxMTAwMDAsMCwwLDAsMCwwLDAsMCwwfTsKKyAgICAgICAgdmFsdWVzID0gbmV3IE9iamVjdFsxMF07CisgICAgICAgIAorICAgICAgICBhdmFpbGFibGVWYWx1ZXMuY2xlYXIoKTsKKyAgICAgICAgc3RhbGVBdmFpbGFibGVWYWx1ZXMgPSBmYWxzZTsKKworICAgICAgICBlcnJvck9uUmVzZXQgPSBmYWxzZTsKKyAgICAgICAgbGFzdEluZGV4ID0gMDsKKyAgICAJcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qIEJvaWxlcnBsYXRlICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVW5pY29kZU1hcCB0aGF0ID0gKFVuaWNvZGVNYXApIG90aGVyOworICAgICAgICAgICAgaWYgKGxlbmd0aCAhPSB0aGF0Lmxlbmd0aCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25zW2ldICE9IHRoYXQudHJhbnNpdGlvbnNbaV0pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIWFyZUVxdWFsKHZhbHVlc1tpXSwgdGhhdC52YWx1ZXNbaV0pKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEhhc2hDb2RlKE9iamVjdCBvKSB7CisgICAgCXJldHVybiBvLmhhc2hDb2RlKCk7CisgICAgCS8vZXF1YXRvci5nZXRIYXNoQ29kZQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gYXJlRXF1YWwoT2JqZWN0IGEgLCBPYmplY3QgYikgeworICAgIAlpZiAoYSA9PSBiKSByZXR1cm4gdHJ1ZTsKKyAgICAJaWYgKGEgPT0gbnVsbCB8fCBiID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAJcmV0dXJuIGEuZXF1YWxzKGIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpbnQgcmVzdWx0ID0gbGVuZ3RoOworICAgICAgICAvLyBUT0RPIG1pZ2h0IHdhbnQgdG8gYWJicmV2aWF0ZSB0aGlzIGZvciBzcGVlZC4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQgPSAzNypyZXN1bHQgKyB0cmFuc2l0aW9uc1tpXTsKKyAgICAgICAgICAgIHJlc3VsdCA9IDM3KnJlc3VsdCArIGdldEhhc2hDb2RlKHZhbHVlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgY2xvbmUuIFdhcm5pbmcsIGFzIHdpdGggQ29sbGVjdGlvbnMsIGRvZXMgbm90IGRvIGRlZXAgY2xvbmUuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZUFzVGhhd2VkKCkgeworICAgICAgICBVbmljb2RlTWFwIHRoYXQgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICB0aGF0Lmxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgdGhhdC50cmFuc2l0aW9ucyA9IChpbnRbXSkgdHJhbnNpdGlvbnMuY2xvbmUoKTsKKyAgICAgICAgdGhhdC52YWx1ZXMgPSAoT2JqZWN0W10pIHZhbHVlcy5jbG9uZSgpOworICAgICAgICB0aGF0LmF2YWlsYWJsZVZhbHVlcyA9IG5ldyBMaW5rZWRIYXNoU2V0KGF2YWlsYWJsZVZhbHVlcyk7CisgICAgICAgIHRoYXQubG9ja2VkID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0aGF0OworICAgIH0KKyAgICAKKyAgICAvKiBmb3IgaW50ZXJuYWwgY29uc2lzdGVuY3kgY2hlY2tpbmcgKi8KKyAgICAKKyAgICB2b2lkIF9jaGVja0ludmFyaWFudHMoKSB7CisgICAgICAgIGlmIChsZW5ndGggPCAyCisgICAgICAgICAgfHwgbGVuZ3RoID4gdHJhbnNpdGlvbnMubGVuZ3RoCisgICAgICAgICAgfHwgdHJhbnNpdGlvbnMubGVuZ3RoICE9IHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YXJpYW50IGZhaWxlZDogTGVuZ3RocyBiYWQiKTsKKyAgICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuZ3RoLTE7ICsraSkgeworICAgICAgICAgICAgaWYgKGFyZUVxdWFsKHZhbHVlc1tpLTFdLCB2YWx1ZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YXJpYW50IGZhaWxlZDogdmFsdWVzIHNoYXJlZCBhdCAiIAorICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBVdGlsaXR5LmhleChpLTEpICsgIjogPCIgKyB2YWx1ZXNbaS0xXSArICI+IgorICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBVdGlsaXR5LmhleChpKSArICI6IDwiICsgdmFsdWVzW2ldICsgIj4iCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRyYW5zaXRpb25zWzBdICE9IDAgfHwgdHJhbnNpdGlvbnNbbGVuZ3RoLTFdICE9IDB4MTEwMDAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhcmlhbnQgZmFpbGVkOiBib3VuZHMgc2V0IHdyb25nIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICBpZiAodHJhbnNpdGlvbnNbaS0xXSA+PSB0cmFuc2l0aW9uc1tpXSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFyaWFudCBmYWlsZWQ6IG5vdCBtb25vdG9uaWMiCisgICAgICAgICAgICAgICAgKyAiXHQiICsgVXRpbGl0eS5oZXgoaS0xKSArICI6ICIgKyB0cmFuc2l0aW9uc1tpLTFdCisgICAgICAgICAgICAgICAgKyAiXHQiICsgVXRpbGl0eS5oZXgoaSkgKyAiOiAiICsgdHJhbnNpdGlvbnNbaV0KKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kcyBhbiBpbmRleCBzdWNoIHRoYXQgaW52ZXJzaW9uTGlzdFtpXSA8PSBjb2RlcG9pbnQgPCBpbnZlcnNpb25MaXN0W2krMV0KKyAgICAgKiBBc3N1bWVzIHRoYXQgMCA8PSBjb2RlcG9pbnQgPD0gMHgxMEZGRkYKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiB0aGUgaW5kZXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBfZmluZEluZGV4KGludCBjKSB7CisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCBoaSA9IGxlbmd0aCAtIDE7CisgICAgICAgIGludCBpID0gKGxvICsgaGkpID4+PiAxOworICAgICAgICAvLyBpbnZhcmlhbnQ6IGMgPj0gbGlzdFtsb10KKyAgICAgICAgLy8gaW52YXJpYW50OiBjIDwgbGlzdFtoaV0KKyAgICAgICAgd2hpbGUgKGkgIT0gbG8pIHsKKyAgICAgICAgICAgIGlmIChjIDwgdHJhbnNpdGlvbnNbaV0pIHsKKyAgICAgICAgICAgICAgICBoaSA9IGk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgPSAobG8gKyBoaSkgPj4+IDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFTU0VSVElPTlMpIF9jaGVja0ZpbmQoYywgbG8pOworICAgICAgICByZXR1cm4gbG87CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBfY2hlY2tGaW5kKGludCBjb2RlcG9pbnQsIGludCB2YWx1ZSkgeworICAgICAgICBpbnQgb3RoZXIgPSBfX2ZpbmRJbmRleChjb2RlcG9pbnQpOworICAgICAgICBpZiAob3RoZXIgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFyaWFudCBmYWlsZWQ6IGJpbmFyeSBzZWFyY2giCisgICAgICAgICAgICAgICAgKyAiXHQiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50KSArICI6ICIgKyB2YWx1ZQorICAgICAgICAgICAgICAgICsgIlx0c2hvdWxkIGJlOiAiICsgb3RoZXIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IF9fZmluZEluZGV4KGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgLy8gVE9ETyB1c2UgYmluYXJ5IHNlYXJjaAorICAgICAgICBmb3IgKGludCBpID0gbGVuZ3RoLTE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uc1tpXSA8PSBjb2RlcG9pbnQpIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIFRyeSBpbmRleGVkIGxvb2t1cAorICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFNISUZUID0gODsKKyAgICBpbnRbXSBzdGFydHMgPSBuZXcgaW50WzB4MTBGRkZGPj5TSElGVF07IC8vIGxvd2VzdCB0cmFuc2l0aW9uIGluZGV4IHdoZXJlIGNvZGVwb2ludD4+eCBjYW4gYmUgZm91bmQKKyAgICBib29sZWFuIHN0YXJ0c1ZhbGlkID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnQgZmluZEluZGV4KGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgaWYgKCFzdGFydHNWYWxpZCkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gbGVuZ3RoLTE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgaWYgKHRyYW5zaXRpb25zW2ldIDw9IGNvZGVwb2ludCkgcmV0dXJuIGk7CisgICAgICAgfQorICAgICAgIHJldHVybiAwOworICAgfQorICAgKi8KKyAgIAorICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgaXRlbXMgZnJvbSBpbmRleCB0aHJvdWdoIGluZGV4K2NvdW50LTEuCisgICAgICogTG9naWNhbGx5IHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGFycmF5cy4KKyAgICAgKiBAcGFyYW0gaW5kZXgKKyAgICAgKiBAcGFyYW0gY291bnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgX3JlbW92ZUF0KGludCBpbmRleCwgaW50IGNvdW50KSB7CisgICAgICAgIGZvciAoaW50IGkgPSBpbmRleCArIGNvdW50OyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRyYW5zaXRpb25zW2ktY291bnRdID0gdHJhbnNpdGlvbnNbaV07CisgICAgICAgICAgICB2YWx1ZXNbaS1jb3VudF0gPSB2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoIC09IGNvdW50OworICAgIH0KKyAgICAvKioKKyAgICAgKiBBZGQgYSBnYXAgZnJvbSBpbmRleCB0byBpbmRleCtjb3VudC0xLgorICAgICAqIFRoZSB2YWx1ZXMgdGhlcmUgYXJlIHVuZGVmaW5lZCwgYW5kIG11c3QgYmUgc2V0LgorICAgICAqIExvZ2ljYWxseSBncm93cyBhcnJheXMgdG8gYWNjb21vZGF0ZS4gQWN0dWFsIGdyb3d0aCBpcyBsaW1pdGVkCisgICAgICogQHBhcmFtIGluZGV4CisgICAgICogQHBhcmFtIGNvdW50CisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIF9pbnNlcnRHYXBBdChpbnQgaW5kZXgsIGludCBjb3VudCkgeworICAgICAgICBpbnQgbmV3TGVuZ3RoID0gbGVuZ3RoICsgY291bnQ7CisgICAgICAgIGludFtdIG9sZHRyYW5zaXRpb25zID0gdHJhbnNpdGlvbnM7CisgICAgICAgIE9iamVjdFtdIG9sZHZhbHVlcyA9IHZhbHVlczsKKyAgICAgICAgaWYgKG5ld0xlbmd0aCA+IHRyYW5zaXRpb25zLmxlbmd0aCkgeworICAgICAgICAgICAgaW50IGFsbG9jYXRpb24gPSAoaW50KSAoR1JPV1RIX0dBUCArIChuZXdMZW5ndGggKiBHUk9XVEhfUEVSQ0VOVCkgLyAxMDApOworICAgICAgICAgICAgdHJhbnNpdGlvbnMgPSBuZXcgaW50W2FsbG9jYXRpb25dOworICAgICAgICAgICAgdmFsdWVzID0gbmV3IE9iamVjdFthbGxvY2F0aW9uXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZXg7ICsraSkgeworICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW2ldID0gb2xkdHJhbnNpdGlvbnNbaV07CisgICAgICAgICAgICAgICAgdmFsdWVzW2ldID0gb2xkdmFsdWVzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBmb3IgKGludCBpID0gbGVuZ3RoIC0gMTsgaSA+PSBpbmRleDsgLS1pKSB7CisgICAgICAgICAgICB0cmFuc2l0aW9uc1tpK2NvdW50XSA9IG9sZHRyYW5zaXRpb25zW2ldOworICAgICAgICAgICAgdmFsdWVzW2krY291bnRdID0gb2xkdmFsdWVzW2ldOworICAgICAgICB9CisgICAgICAgIGxlbmd0aCA9IG5ld0xlbmd0aDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXNzb2NpYXRlcyBjb2RlIHBvaW50IHdpdGggdmFsdWUuIFJlbW92ZXMgYW55IHByZXZpb3VzIGFzc29jaWF0aW9uLgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZU1hcCBfcHV0KGludCBjb2RlcG9pbnQsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICAvLyBXYXJuaW5nOiBiYXNlSW5kZXggaXMgYW4gaW52YXJpYW50OyBtdXN0CisgICAgICAgIC8vIGJlIGRlZmluZWQgc3VjaCB0aGF0IHRyYW5zaXRpb25zW2Jhc2VJbmRleF0gPCBjb2RlcG9pbnQKKyAgICAgICAgLy8gYXQgZW5kIG9mIHRoaXMgcm91dGluZS4KKyAgICAgICAgaW50IGJhc2VJbmRleDsKKyAgICAgICAgaWYgKHRyYW5zaXRpb25zW2xhc3RJbmRleF0gPD0gY29kZXBvaW50IAorICAgICAgICAgICYmIGNvZGVwb2ludCA8IHRyYW5zaXRpb25zW2xhc3RJbmRleCsxXSkgeworICAgICAgICAgICAgYmFzZUluZGV4ID0gbGFzdEluZGV4OworICAgICAgICB9IGVsc2UgeyAKKyAgICAgICAgICAgIGJhc2VJbmRleCA9IF9maW5kSW5kZXgoY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGltaXRJbmRleCA9IGJhc2VJbmRleCArIDE7CisgICAgICAgIC8vIGNhc2VzIGFyZSAoYSkgdmFsdWUgaXMgYWxyZWFkeSBzZXQKKyAgICAgICAgaWYgKGFyZUVxdWFsKHZhbHVlc1tiYXNlSW5kZXhdLCB2YWx1ZSkpIHJldHVybiB0aGlzOworICAgICAgICBpZiAobG9ja2VkKSB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGxvY2tlZCBvYmplY3QiKTsKKyAgICAgICAgaWYgKGVycm9yT25SZXNldCAmJiB2YWx1ZXNbYmFzZUluZGV4XSAhPSBudWxsKSB7CisgICAgICAgIAl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJBdHRlbXB0IHRvIHJlc2V0IHZhbHVlIGZvciAiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50KQorICAgICAgICAJCQkrICIgd2hlbiB0aGF0IGlzIGRpc2FsbG93ZWQuIE9sZDogIiArIHZhbHVlc1tiYXNlSW5kZXhdICsgIjsgTmV3OiAiICsgdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gYWRqdXN0IHRoZSBhdmFpbGFibGUgdmFsdWVzCisgICAgICAgIHN0YWxlQXZhaWxhYmxlVmFsdWVzID0gdHJ1ZTsKKyAgICAgICAgYXZhaWxhYmxlVmFsdWVzLmFkZCh2YWx1ZSk7IC8vIGFkZCBpZiBub3QgdGhlcmUgYWxyZWFkeSAgICAgIAorCisgICAgICAgIGludCBiYXNlQ1AgPSB0cmFuc2l0aW9uc1tiYXNlSW5kZXhdOworICAgICAgICBpbnQgbGltaXRDUCA9IHRyYW5zaXRpb25zW2xpbWl0SW5kZXhdOworICAgICAgICAvLyB3ZSBub3cgc3RhcnQgd2Fsa2luZyB0aHJvdWdoIHRoZSBkaWZmZXJlbmNlIGNhc2UsCisgICAgICAgIC8vIGJhc2VkIG9uIHdoZXRoZXIgd2UgYXJlIGF0IHRoZSBzdGFydCBvciBlbmQgb2YgcmFuZ2UKKyAgICAgICAgLy8gYW5kIHdoZXRoZXIgdGhlIHJhbmdlIGlzIGEgc2luZ2xlIGNoYXJhY3RlciBvciBtdWx0aXBsZQorICAgICAgICAKKyAgICAgICAgaWYgKGJhc2VDUCA9PSBjb2RlcG9pbnQpIHsKKyAgICAgICAgICAgIC8vIENBU0U6IEF0IHZlcnkgc3RhcnQgb2YgcmFuZ2UKKyAgICAgICAgICAgIGJvb2xlYW4gY29ubmVjdHNXaXRoUHJldmlvdXMgPSAKKyAgICAgICAgICAgICAgICBiYXNlSW5kZXggIT0gMCAmJiBhcmVFcXVhbCh2YWx1ZSwgdmFsdWVzW2Jhc2VJbmRleC0xXSk7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGltaXRDUCA9PSBjb2RlcG9pbnQgKyAxKSB7CisgICAgICAgICAgICAgICAgLy8gQ0FTRTogU2luZ2xlIGNvZGVwb2ludCByYW5nZQorICAgICAgICAgICAgICAgIGJvb2xlYW4gY29ubmVjdHNXaXRoRm9sbG93aW5nID0KKyAgICAgICAgICAgICAgICAgICAgYmFzZUluZGV4IDwgbGVuZ3RoIC0gMSAmJiBhcmVFcXVhbCh2YWx1ZSwgdmFsdWVzW2xpbWl0SW5kZXhdKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoY29ubmVjdHNXaXRoUHJldmlvdXMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQTFhIGNvbm5lY3RzIHdpdGggcHJldmlvdXMgJiBmb2xsb3dpbmcsIHNvIHJlbW92ZSBpbmRleAorICAgICAgICAgICAgICAgICAgICBpZiAoY29ubmVjdHNXaXRoRm9sbG93aW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlQXQoYmFzZUluZGV4LCAyKTsKKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlQXQoYmFzZUluZGV4LCAxKTsgLy8gZXh0ZW5kIHByZXZpb3VzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLS1iYXNlSW5kZXg7IC8vIGZpeCB1cAorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29ubmVjdHNXaXRoRm9sbG93aW5nKSB7CisgICAgICAgICAgICAgICAgICAgIF9yZW1vdmVBdChiYXNlSW5kZXgsIDEpOyAvLyBleHRlbmQgZm9sbG93aW5nIGJhY2t3YXJkcworICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uc1tiYXNlSW5kZXhdID0gY29kZXBvaW50OyAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBkb2Vzbid0IGNvbm5lY3Qgb24gZWl0aGVyIHNpZGUsIGp1c3QgcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2Jhc2VJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbm5lY3RzV2l0aFByZXZpb3VzKSB7ICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQS4xOiBzdGFydCBvZiBtdWx0aSBjb2RlcG9pbnQgcmFuZ2UKKyAgICAgICAgICAgIC8vIGlmIGNvbm5lY3RzCisgICAgICAgICAgICAgICAgKyt0cmFuc2l0aW9uc1tiYXNlSW5kZXhdOyAvLyBleHRlbmQgcHJldmlvdXMKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGluc2VydCBuZXcgdHJhbnNpdGlvbgorICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW2Jhc2VJbmRleF0gPSBjb2RlcG9pbnQrMTsgLy8gZml4IGZvbGxvd2luZyByYW5nZQorICAgICAgICAgICAgICAgIF9pbnNlcnRHYXBBdChiYXNlSW5kZXgsIDEpOworICAgICAgICAgICAgICAgIHZhbHVlc1tiYXNlSW5kZXhdID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnNbYmFzZUluZGV4XSA9IGNvZGVwb2ludDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChsaW1pdENQID09IGNvZGVwb2ludCArIDEpIHsKKyAgICAgICAgICAgIC8vIENBU0U6IGF0IGVuZCBvZiByYW5nZSAgICAgICAgCisgICAgICAgICAgICAvLyBpZiBjb25uZWN0cywganVzdCBiYWNrIHVwIHJhbmdlCisgICAgICAgICAgICBib29sZWFuIGNvbm5lY3RzV2l0aEZvbGxvd2luZyA9CisgICAgICAgICAgICAgICAgYmFzZUluZGV4IDwgbGVuZ3RoIC0gMSAmJiBhcmVFcXVhbCh2YWx1ZSwgdmFsdWVzW2xpbWl0SW5kZXhdKTsKKworICAgICAgICAgICAgaWYgKGNvbm5lY3RzV2l0aEZvbGxvd2luZykgeworICAgICAgICAgICAgICAgIC0tdHJhbnNpdGlvbnNbbGltaXRJbmRleF07IAorICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgX2luc2VydEdhcEF0KGxpbWl0SW5kZXgsIDEpOworICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW2xpbWl0SW5kZXhdID0gY29kZXBvaW50OworICAgICAgICAgICAgICAgIHZhbHVlc1tsaW1pdEluZGV4XSA9IHZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQ0FTRTogaW4gbWlkZGxlIG9mIHJhbmdlCisgICAgICAgICAgICAvLyBpbnNlcnQgZ2FwLCB0aGVuIHNldCB0aGUgbmV3IHJhbmdlCisgICAgICAgICAgICBfaW5zZXJ0R2FwQXQoKytiYXNlSW5kZXgsMik7CisgICAgICAgICAgICB0cmFuc2l0aW9uc1tiYXNlSW5kZXhdID0gY29kZXBvaW50OworICAgICAgICAgICAgdmFsdWVzW2Jhc2VJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHRyYW5zaXRpb25zW2Jhc2VJbmRleCsxXSA9IGNvZGVwb2ludCArIDE7CisgICAgICAgICAgICB2YWx1ZXNbYmFzZUluZGV4KzFdID0gdmFsdWVzW2Jhc2VJbmRleC0xXTsgLy8gY29weSBsb3dlciByYW5nZSB2YWx1ZXMKKyAgICAgICAgfQorICAgICAgICBsYXN0SW5kZXggPSBiYXNlSW5kZXg7IC8vIHN0b3JlIGZvciBuZXh0IHRpbWUKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHByaXZhdGUgVW5pY29kZU1hcCBfcHV0QWxsKGludCBzdGFydENvZGVQb2ludCwgaW50IGVuZENvZGVQb2ludCwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydENvZGVQb2ludDsgaSA8PSBlbmRDb2RlUG9pbnQ7ICsraSkgeworICAgICAgICAgICAgX3B1dChpLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNvZGVwb2ludCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgcHV0KGludCBjb2RlcG9pbnQsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAoY29kZXBvaW50IDwgMCB8fCBjb2RlcG9pbnQgPiAweDEwRkZGRikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiByYW5nZTogIiArIGNvZGVwb2ludCk7CisgICAgICAgIH0KKyAgICAgICAgX3B1dChjb2RlcG9pbnQsIHZhbHVlKTsKKyAgICAgICAgaWYgKEFTU0VSVElPTlMpIF9jaGVja0ludmFyaWFudHMoKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIC8qKgorICAgICAqIEFkZHMgYnVuY2ggbycgY29kZXBvaW50czsgb3RoZXJ3aXNlIGxpa2UgcHV0LgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnRzCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgcHV0QWxsKFVuaWNvZGVTZXQgY29kZXBvaW50cywgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIC8vIFRPRE8gb3B0aW1pemUKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihjb2RlcG9pbnRzKTsKKyAgICAgICAgd2hpbGUgKGl0Lm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICBfcHV0QWxsKGl0LmNvZGVwb2ludCwgaXQuY29kZXBvaW50RW5kLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZHMgYnVuY2ggbycgY29kZXBvaW50czsgb3RoZXJ3aXNlIGxpa2UgYWRkLgorICAgICAqIEBwYXJhbSBzdGFydENvZGVQb2ludAorICAgICAqIEBwYXJhbSBlbmRDb2RlUG9pbnQKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU1hcCBwdXRBbGwoaW50IHN0YXJ0Q29kZVBvaW50LCBpbnQgZW5kQ29kZVBvaW50LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgaWYgKHN0YXJ0Q29kZVBvaW50IDwgMCB8fCBlbmRDb2RlUG9pbnQgPiAweDEwRkZGRikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiByYW5nZTogIgorICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RhcnRDb2RlUG9pbnQpICsgIi4uIiArIFV0aWxpdHkuaGV4KGVuZENvZGVQb2ludCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE8gb3B0aW1pemUKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0Q29kZVBvaW50OyBpIDw9IGVuZENvZGVQb2ludDsgKytpKSB7CisgICAgICAgICAgICBfcHV0KGksIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgLyoqCisgICAgICogQWRkIGFsbCB0aGUgKG1haW4pIHZhbHVlcyBmcm9tIGEgVW5pY29kZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSBwcm9wIHRoZSBwcm9wZXJ0eSB0byBhZGQgdG8gdGhlIG1hcAorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTWFwIHB1dEFsbChVbmljb2RlUHJvcGVydHkgcHJvcCkgeworICAgICAgICAvLyBUT0RPIG9wdGltaXplCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIF9wdXQoaSwgcHJvcC5nZXRWYWx1ZShpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGFsbCB0aGUgKG1haW4pIHZhbHVlcyBmcm9tIGEgVW5pY29kZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSBwcm9wIHRoZSBwcm9wZXJ0eSB0byBhZGQgdG8gdGhlIG1hcAorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTWFwIHB1dEFsbChVbmljb2RlTWFwIHByb3ApIHsKKyAgICAgICAgLy8gVE9ETyBvcHRpbWl6ZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICBfcHV0KGksIHByb3AuZ2V0VmFsdWUoaSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY3VycmVudGx5IHVubWFwcGVkIFVuaWNvZGUgY29kZSBwb2ludHMgdG8gdGhlIGdpdmVuIHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gc2V0CisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgc2V0TWlzc2luZyhPYmplY3QgdmFsdWUpIHsKKyAgICAJLy8gZmFzdCBwYXRoLCBpZiB2YWx1ZSBub3QgeWV0IHByZXNlbnQKKyAgICAJaWYgKCFnZXRBdmFpbGFibGVWYWx1ZXMoKS5jb250YWlucyh2YWx1ZSkpIHsKKyAgICAgICAgCXN0YWxlQXZhaWxhYmxlVmFsdWVzID0gdHJ1ZTsKKwkgICAgCWF2YWlsYWJsZVZhbHVlcy5hZGQodmFsdWUpOworCSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworCSAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gPT0gbnVsbCkgdmFsdWVzW2ldID0gdmFsdWU7CisJICAgICAgICB9CisJICAgICAgICByZXR1cm4gdGhpczsKKwkgICAgfSBlbHNlIHsKKwkgICAgCXJldHVybiBwdXRBbGwoZ2V0U2V0KG51bGwpLCB2YWx1ZSk7CisJICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2V0IGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIHZhbHVlLiBEZXBvc2l0cyBpbnRvCisgICAgICogcmVzdWx0IGlmIGl0IGlzIG5vdCBudWxsLiBSZW1lbWJlciB0byBjbGVhciBpZiB5b3UganVzdCB3YW50CisgICAgICogdGhlIG5ldyB2YWx1ZXMuCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHBhcmFtIHJlc3VsdAorICAgICAqIEByZXR1cm4gcmVzdWx0CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0U2V0KE9iamVjdCB2YWx1ZSwgVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aCAtIDE7ICsraSkgeworICAgICAgICAgICAgaWYgKGFyZUVxdWFsKHZhbHVlLCB2YWx1ZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh0cmFuc2l0aW9uc1tpXSwgdHJhbnNpdGlvbnNbaSsxXS0xKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRTZXQoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHJldHVybiBnZXRTZXQodmFsdWUsbnVsbCk7CisgICAgfQorCisgICAgcHVibGljIFVuaWNvZGVTZXQga2V5U2V0KCkgeworICAgICAgICByZXR1cm4gZ2V0U2V0KG51bGwsbnVsbCkuY29tcGxlbWVudCgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy4gRGVwb3NpdHMgZWFjaCBub24tbnVsbCB2YWx1ZSBpbnRvCisgICAgICogcmVzdWx0LiBDcmVhdGVzIHJlc3VsdCBpZiBpdCBpcyBudWxsLiBSZW1lbWJlciB0byBjbGVhciByZXN1bHQgaWYKKyAgICAgKiB5b3UgYXJlIG5vdCBhcHBlbmRpbmcgdG8gZXhpc3RpbmcgY29sbGVjdGlvbi4KKyAgICAgKiBAcGFyYW0gcmVzdWx0CisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGVjdGlvbiBnZXRBdmFpbGFibGVWYWx1ZXMoQ29sbGVjdGlvbiByZXN1bHQpIHsKKyAgICAJaWYgKHN0YWxlQXZhaWxhYmxlVmFsdWVzKSB7CisgICAgCQkvLyBjb2xsZWN0IGFsbCB0aGUgY3VycmVudCB2YWx1ZXMKKyAgICAJCS8vIHJldGFpbiB0aGVtIGluIHRoZSBhdmFpbGFibGVWYWx1ZXMKKyAgICAJCVNldCB0ZW1wID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSAhPSBudWxsKSB0ZW1wLmFkZCh2YWx1ZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXZhaWxhYmxlVmFsdWVzLnJldGFpbkFsbCh0ZW1wKTsKKyAgICAgICAgICAgIHN0YWxlQXZhaWxhYmxlVmFsdWVzID0gZmFsc2U7CisgICAgCX0KKyAgICAJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KGF2YWlsYWJsZVZhbHVlcy5zaXplKCkpOworICAgICAgICByZXN1bHQuYWRkQWxsKGF2YWlsYWJsZVZhbHVlcyk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZAorICAgICAqLworICAgIHB1YmxpYyBDb2xsZWN0aW9uIGdldEF2YWlsYWJsZVZhbHVlcygpIHsKKyAgICAgICAgcmV0dXJuIGdldEF2YWlsYWJsZVZhbHVlcyhudWxsKTsKKyAgICB9CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gY29kZSBwb2ludC4KKyAgICAgKiBSZXR1cm5zIG51bGwsIGlmIHRoZXJlIGlzIG5vIHN1Y2ggdmFsdWUuCisgICAgICogQHBhcmFtIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRWYWx1ZShpbnQgY29kZXBvaW50KSB7CisgICAgICAgIGlmIChjb2RlcG9pbnQgPCAwIHx8IGNvZGVwb2ludCA+IDB4MTBGRkZGKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIHJhbmdlOiAiICsgY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWVzW19maW5kSW5kZXgoY29kZXBvaW50KV07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoYW5nZSBhIG5ldyBzdHJpbmcgZnJvbSB0aGUgc291cmNlIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIG1hcHBpbmdzLiBGb3IgZWFjaCBjb2RlIHBvaW50IGNwLCBpZiBnZXRWYWx1ZShjcCkgaXMgbnVsbCwgYXBwZW5kIHRoZSBjaGFyYWN0ZXIsIG90aGVyd2lzZSBhcHBlbmQgZ2V0VmFsdWUoY3ApLnRvU3RyaW5nKCkKKyAgICAgKiBAcGFyYW0gc291cmNlCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZm9sZChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHNvdXJjZSwgaSk7CisgICAgICAgICAgT2JqZWN0IG1SZXN1bHQgPSBnZXRWYWx1ZShjcCk7CisgICAgICAgICAgaWYgKG1SZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChtUmVzdWx0KTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY3ApOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICB9CisgICAgCisgICAgcHVibGljIGludGVyZmFjZSBDb21wb3NlciB7CisgICAgCU9iamVjdCBjb21wb3NlKGludCBjb2RlUG9pbnQsIE9iamVjdCBhLCBPYmplY3QgYik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlTWFwIGNvbXBvc2VXaXRoKFVuaWNvZGVNYXAgb3RoZXIsIENvbXBvc2VyIGNvbXBvc2VyKSB7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAJCU9iamVjdCB2MSA9IGdldFZhbHVlKGkpOworICAgIAkJT2JqZWN0IHYyID0gb3RoZXIuZ2V0VmFsdWUoaSk7CisgICAgCQlPYmplY3QgdjMgPSBjb21wb3Nlci5jb21wb3NlKGksIHYxLCB2Mik7CisgICAgCQlpZiAodjEgIT0gdjMgJiYgKHYxID09IG51bGwgfHwgIXYxLmVxdWFscyh2MykpKSBwdXQoaSwgdjMpOworICAgIAl9CisgICAgCXJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVW5pY29kZU1hcCBjb21wb3NlV2l0aChVbmljb2RlU2V0IHNldCwgT2JqZWN0IHZhbHVlLCBDb21wb3NlciBjb21wb3NlcikgeworICAgIAlmb3IgKFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsgaXQubmV4dCgpOykgeworICAgIAkJaW50IGkgPSBpdC5jb2RlcG9pbnQ7CisgICAgCQlPYmplY3QgdjEgPSBnZXRWYWx1ZShpKTsKKyAgICAJCU9iamVjdCB2MyA9IGNvbXBvc2VyLmNvbXBvc2UoaSwgdjEsIHZhbHVlKTsKKyAgICAJCWlmICh2MSAhPSB2MyAmJiAodjEgPT0gbnVsbCB8fCAhdjEuZXF1YWxzKHYzKSkpIHB1dChpLCB2Myk7CisgICAgCX0KKyAgICAJcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvbGxvdyB0aGUgc3R5bGUgdXNlZCBieSBVbmljb2RlU2V0SXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1hcEl0ZXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb2RlcG9pbnQ7CisgICAgICAgIHB1YmxpYyBpbnQgY29kZXBvaW50RW5kOworICAgICAgICBwdWJsaWMgT2JqZWN0IHZhbHVlOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlTWFwIG1hcDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaW5kZXg7CisgICAgICAgIHByaXZhdGUgaW50IHN0YXJ0UmFuZ2U7CisgICAgICAgIHByaXZhdGUgaW50IGVuZFJhbmdlOworICAgICAgICBwcml2YXRlIE9iamVjdCBsYXN0VmFsdWU7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTWFwSXRlcmF0b3IoVW5pY29kZU1hcCBtYXApIHsKKyAgICAgICAgICAgIHJlc2V0KG1hcCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm90ZTogbGVuZ3RoIG9mIDIgbWVhbnMgezAsIDExMDAwMH0uIE9ubHkgd2FudCB0byBpbmRleCB1cCB0byAwIQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBuZXh0UmFuZ2UoKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1hcC5sZW5ndGggLSAxKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZSA9IG1hcC52YWx1ZXNbaW5kZXhdOworICAgICAgICAgICAgY29kZXBvaW50ID0gc3RhcnRSYW5nZSA9IG1hcC50cmFuc2l0aW9uc1tpbmRleCsrXTsKKyAgICAgICAgICAgIGNvZGVwb2ludEVuZCA9IGVuZFJhbmdlID0gbWFwLnRyYW5zaXRpb25zW2luZGV4XSAtIDE7IC8vIC0xIHRvIG1ha2UgbGltaXQgaW50byBlbmQKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIG5leHQoKSB7CisgICAgICAgICAgICBpZiAoc3RhcnRSYW5nZSA+IGVuZFJhbmdlKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIioqKiIgKyBVdGlsaXR5LmhleChzdGFydFJhbmdlKSArICIuLiIgKyBVdGlsaXR5LmhleChlbmRSYW5nZSkpOworICAgICAgICAgICAgICAgIGlmICghbmV4dFJhbmdlKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAvLyBpbmRleCBub3cgcG9pbnRzIEFGVEVSIHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UKKyAgICAgICAgICAgICAgICBsYXN0VmFsdWUgPSBtYXAudmFsdWVzW2luZGV4LTFdOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIqKioiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50KSArICIuLiIgKyBVdGlsaXR5LmhleChjb2RlcG9pbnRFbmQpICsgIiA9PiAiICsgbGFzdFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlID0gbGFzdFZhbHVlOworICAgICAgICAgICAgY29kZXBvaW50ID0gY29kZXBvaW50RW5kID0gc3RhcnRSYW5nZSsrOyAvLyBzZXQgdG8gZmlyc3QsIGFuZCBpdGVyYXRlCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBNYXBJdGVyYXRvciByZXNldCgpIHsKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgICAgIHN0YXJ0UmFuZ2UgPSAwOworICAgICAgICAgICAgZW5kUmFuZ2UgPSAtMTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBNYXBJdGVyYXRvciByZXNldChVbmljb2RlTWFwIG1hcCkgeworICAgICAgICAgICAgdGhpcy5tYXAgPSBtYXA7CisgICAgICAgICAgICByZXR1cm4gcmVzZXQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gdG9TdHJpbmcobnVsbCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoQ29tcGFyYXRvciBjb2xsZWN0ZWQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsgICAgICAgCisgICAgICAgIGlmIChjb2xsZWN0ZWQgPT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gdmFsdWVzW2ldOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSB0cmFuc2l0aW9uc1tpXTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gdHJhbnNpdGlvbnNbaSsxXS0xOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoVXRpbGl0eS5oZXgoc3RhcnQpKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gZW5kKSByZXN1bHQuYXBwZW5kKCIuLiIpCisgICAgICAgICAgICAgICAgLmFwcGVuZChVdGlsaXR5LmhleChlbmQpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJcdD0+ICIpCisgICAgICAgICAgICAgICAgLmFwcGVuZCh2YWx1ZXNbaV0gPT0gbnVsbCA/ICJudWxsIiA6IHZhbHVlc1tpXS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIlxyXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFNldCBzZXQgPSAoU2V0KSBnZXRBdmFpbGFibGVWYWx1ZXMobmV3IFRyZWVTZXQoY29sbGVjdGVkKSk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2V0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBzID0gZ2V0U2V0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIlx0PT4gIikKKyAgICAgICAgICAgICAgICAuYXBwZW5kKHMudG9QYXR0ZXJuKHRydWUpKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIlxyXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCS8qKgorCSAqIEByZXR1cm4gUmV0dXJucyB0aGUgZXJyb3JPblJlc2V0LgorCSAqLworCXB1YmxpYyBib29sZWFuIGdldEVycm9yT25SZXNldCgpIHsKKwkJcmV0dXJuIGVycm9yT25SZXNldDsKKwl9CisJLyoqCisJICogQHBhcmFtIGVycm9yT25SZXNldCBUaGUgZXJyb3JPblJlc2V0IHRvIHNldC4KKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXRFcnJvck9uUmVzZXQoYm9vbGVhbiBlcnJvck9uUmVzZXQpIHsKKwkJdGhpcy5lcnJvck9uUmVzZXQgPSBlcnJvck9uUmVzZXQ7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5Mb2NrYWJsZSNpc0xvY2tlZCgpCisJICovCisJcHVibGljIGJvb2xlYW4gaXNGcm96ZW4oKSB7CisJCS8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKKwkJcmV0dXJuIGxvY2tlZDsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkxvY2thYmxlI2xvY2soKQorCSAqLworCXB1YmxpYyBPYmplY3QgZnJlZXplKCkgeworCQlsb2NrZWQgPSB0cnVlOworCQlyZXR1cm4gdGhpczsKKwl9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUdfV1JJVEUgPSBmYWxzZTsKKyAgICAKKyAgICAvLyBUT0RPIEZpeCB0byBzZXJpYWxpemUgbW9yZSB0aGFuIGp1c3Qgc3RyaW5ncy4KKyAgICAvLyBPbmx5IGlmIGFsbCB0aGUgaXRlbXMgYXJlIHN0cmluZ3Mgd2lsbCB3ZSBkbyB0aGUgZm9sbG93aW5nIGNvbXByZXNzaW9uCisgICAgLy8gT3RoZXJ3aXNlIHdlJ2xsIGp1c3QgdXNlIEphdmEgU2VyaWFsaXphdGlvbiwgYnVsa3kgYXMgaXQgaXMKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQxKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBEYXRhT3V0cHV0Q29tcHJlc3NvciBzYyA9IG5ldyBEYXRhT3V0cHV0Q29tcHJlc3NvcihvdXQxKTsKKyAgICAgICAgLy8gaWYgYWxsIG9iamVjdHMgYXJlIHN0cmluZ3MKKyAgICAgICAgQ29sbGVjdGlvbiBhdmFpbGFibGVWYWx1ZXMgPSBnZXRBdmFpbGFibGVWYWx1ZXMoKTsKKyAgICAgICAgYm9vbGVhbiBhbGxTdHJpbmdzID0gYWxsQXJlU3RyaW5nKGF2YWlsYWJsZVZhbHVlcyk7CisgICAgICAgIHNjLndyaXRlQm9vbGVhbihhbGxTdHJpbmdzKTsKKyAgICAgICAgTWFwIG9iamVjdF9pbmRleCA9IG5ldyBMaW5rZWRIYXNoTWFwKCk7CisgICAgICAgIGlmIChhbGxBcmVTdHJpbmcoYXZhaWxhYmxlVmFsdWVzKSkgeworICAgICAgICAgICAgc2Mud3JpdGVTdHJpbmdTZXQobmV3IFRyZWVTZXQoYXZhaWxhYmxlVmFsdWVzKSwgb2JqZWN0X2luZGV4KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNjLndyaXRlQ29sbGVjdGlvbihhdmFpbGFibGVWYWx1ZXMsIG9iamVjdF9pbmRleCk7ICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBzYy53cml0ZVVJbnQobGVuZ3RoKTsKKyAgICAgICAgaW50IGxhc3RUcmFuc2l0aW9uID0gLTE7CisgICAgICAgIGludCBsYXN0VmFsdWVOdW1iZXIgPSAwOworICAgICAgICBpZiAoREVCVUdfV1JJVEUpIFN5c3RlbS5vdXQucHJpbnRsbigiVHJhbnMgY291bnQ6ICIgKyBsZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgdmFsdWVOdW1iZXIgPSAoKEludGVnZXIpb2JqZWN0X2luZGV4LmdldCh2YWx1ZXNbaV0pKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zOiAiICsgdHJhbnNpdGlvbnNbaV0gKyAiLFx0IiArIHZhbHVlTnVtYmVyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGRlbHRhVHJhbnNpdGlvbiA9IHRyYW5zaXRpb25zW2ldIC0gbGFzdFRyYW5zaXRpb247CisgICAgICAgICAgICBsYXN0VHJhbnNpdGlvbiA9IHRyYW5zaXRpb25zW2ldOworICAgICAgICAgICAgaW50IGRlbHRhVmFsdWVOdW1iZXIgPSB2YWx1ZU51bWJlciAtIGxhc3RWYWx1ZU51bWJlcjsKKyAgICAgICAgICAgIGxhc3RWYWx1ZU51bWJlciA9IHZhbHVlTnVtYmVyOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZWx0YVZhbHVlTnVtYmVyIDw8PSAxOyAvLyBtYWtlIHJvb20gZm9yIG9uZSBiaXQKKyAgICAgICAgICAgIGJvb2xlYW4gY2FuQ29tYmluZSA9IGRlbHRhVHJhbnNpdGlvbiA9PSAxOworICAgICAgICAgICAgaWYgKGNhbkNvbWJpbmUpIGRlbHRhVmFsdWVOdW1iZXIgfD0gMTsKKyAgICAgICAgICAgIHNjLndyaXRlSW50KGRlbHRhVmFsdWVOdW1iZXIpOworICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oImRlbHRhVmFsdWVOdW1iZXI6ICIgKyBkZWx0YVZhbHVlTnVtYmVyKTsKKyAgICAgICAgICAgIGlmICghY2FuQ29tYmluZSkgeworICAgICAgICAgICAgCXNjLndyaXRlVUludChkZWx0YVRyYW5zaXRpb24pOyAgICAgICAgICAgCQorICAgICAgICAgICAgCWlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJkZWx0YVRyYW5zaXRpb246ICIgKyBkZWx0YVRyYW5zaXRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNjLmZsdXNoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGFsbEFyZVN0cmluZyhDb2xsZWN0aW9uIGF2YWlsYWJsZVZhbHVlczIpIHsKKyAgICAgICAgLy9pZiAodHJ1ZSkgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYXZhaWxhYmxlVmFsdWVzMi5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBpZiAoIShpdC5uZXh0KCkgaW5zdGFuY2VvZiBTdHJpbmcpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluMSkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YUlucHV0Q29tcHJlc3NvciBzYyA9IG5ldyBEYXRhSW5wdXRDb21wcmVzc29yKGluMSk7CisgICAgICAgIGJvb2xlYW4gYWxsU3RyaW5ncyA9IHNjLnJlYWRCb29sZWFuKCk7CisgICAgICAgIE9iamVjdFtdIHZhbHVlc0xpc3Q7CisgICAgICAgIGF2YWlsYWJsZVZhbHVlcyA9IG5ldyBMaW5rZWRIYXNoU2V0KCk7CisgICAgICAgIGlmIChhbGxTdHJpbmdzKSB7CisgICAgICAgICAgICB2YWx1ZXNMaXN0ID0gc2MucmVhZFN0cmluZ1NldChhdmFpbGFibGVWYWx1ZXMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFsdWVzTGlzdCA9IHNjLnJlYWRDb2xsZWN0aW9uKGF2YWlsYWJsZVZhbHVlcyk7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gc2MucmVhZFVJbnQoKTsKKyAgICAgICAgdHJhbnNpdGlvbnMgPSBuZXcgaW50W2xlbmd0aF07CisgICAgICAgIGlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJUcmFucyBjb3VudDogIiArIGxlbmd0aCk7CisgICAgICAgIHZhbHVlcyA9IG5ldyBPYmplY3RbbGVuZ3RoXTsKKyAgICAgICAgaW50IGN1cnJlbnRUcmFuc2l0aW9uID0gLTE7CisgICAgICAgIGludCBjdXJyZW50VmFsdWUgPSAwOworICAgICAgICBpbnQgZGVsdGFUcmFuc2l0aW9uOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgdGVtcCA9IHNjLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIGlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJkZWx0YVZhbHVlTnVtYmVyOiAiICsgdGVtcCk7CisgICAgICAgICAgICBib29sZWFuIGNvbWJpbmVkID0gKHRlbXAgJiAxKSAhPSAwOworICAgICAgICAgICAgdGVtcCA+Pj0gMTsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IHZhbHVlc0xpc3RbY3VycmVudFZhbHVlICs9IHRlbXBdOworICAgICAgICAgICAgaWYgKCFjb21iaW5lZCkgeworICAgICAgICAgICAgICAgIGRlbHRhVHJhbnNpdGlvbiA9IHNjLnJlYWRVSW50KCk7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oImRlbHRhVHJhbnNpdGlvbjogIiArIGRlbHRhVHJhbnNpdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlbHRhVHJhbnNpdGlvbiA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cmFuc2l0aW9uc1tpXSA9IGN1cnJlbnRUcmFuc2l0aW9uICs9IGRlbHRhVHJhbnNpdGlvbjsgLy8gZGVsdGEgdmFsdWUKKyAgICAgICAgICAgIGlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuczogIiArIHRyYW5zaXRpb25zW2ldICsgIixcdCIgKyBjdXJyZW50VmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgc3RhdGljIGludCBmaW5kQ29tbW9uKFN0cmluZyBsYXN0LCBTdHJpbmcgcykgeworICAgICAgICBpbnQgbWluTGVuID0gTWF0aC5taW4obGFzdC5sZW5ndGgoKSwgcy5sZW5ndGgoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWluTGVuOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChsYXN0LmNoYXJBdChpKSAhPSBzLmNoYXJBdChpKSkgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1pbkxlbjsKKyAgICB9CisKKworLy8gICAgLyoqCisvLyAgICAgKiBAcGFyYW0gc2MKKy8vICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vICAgICAqIAorLy8gICAgICovCisvLyAgICBwcml2YXRlIHZvaWQgc2hvd1NpemUoU3RyaW5nIHRpdGxlLCBPYmplY3RPdXRwdXQgb3V0LCBTdHJlYW1Db21wcmVzc29yIHNjKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgIHNjLnNob3dTaXplKHRoaXMsIHRpdGxlLCBvdXQpOworLy8gICAgfQorLy8gICAgLy9wdWJsaWMgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgcHVibGljIHN0YXRpYyBjbGFzcyBTdHJlYW1Db21wcmVzc29yIHsKKy8vICAgIAl0cmFuc2llbnQgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlWzFdOworLy8gICAgICAgIHRyYW5zaWVudCBTdHJpbmdCdWZmZXIgc3RyaW5nQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworLy8gICAgICAgIAorLy8gICAgICAgIHRyYW5zaWVudCBieXRlW10gcmVhZFdyaXRlQnVmZmVyID0gbmV3IGJ5dGVbOF07CisvLyAgICAgICAgaW50IHBvc2l0aW9uID0gMDsKKy8vICAgICAgICBEYXRhT3V0cHV0IG91dDsKKy8vICAgICAgICBEYXRhSW5wdXQgaW47CisvLworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIEZvcm1hdCBpczoKKy8vICAgICAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLyAgICAgICAgICovCisvLyAgICAgICAgcHVibGljIHZvaWQgd3JpdGVJbnQoaW50IGkpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisvLyAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPT0gcmVhZFdyaXRlQnVmZmVyLmxlbmd0aCkgeworLy8gICAgICAgICAgICAgICAgCW91dC53cml0ZShyZWFkV3JpdGVCdWZmZXIpOworLy8gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gMDsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgCWlmICgoaSAmIH4weDdGKSA9PSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQnVmZmVyW3Bvc2l0aW9uKytdID0gKGJ5dGUpaTsKKy8vICAgICAgICAgICAgICAgICAgICBicmVhazsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgIHJlYWRXcml0ZUJ1ZmZlcltwb3NpdGlvbisrXSA9IChieXRlKSgweDgwIHwgaSk7CisvLyAgICAgICAgICAgICAgICBpID4+Pj0gNzsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vCQkvKioKKy8vCQkgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLwkJICogCisvLwkJICovCisvLwkJcHVibGljIGludCByZWFkTkludChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkJaW50IHJlc3VsdCA9IHJlYWRJbnQoaW4pOworLy8gICAgICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gKHJlc3VsdCAmIDEpICE9IDA7CisvLyAgICAgICAgICAgIHJlc3VsdCA+Pj49IDE7CisvLyAgICAgICAgICAgIGlmIChuZWdhdGl2ZSkgcmVzdWx0ID0gfnJlc3VsdDsKKy8vICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKy8vCQl9CisvLwkJLyoqCisvLwkJICogQHRocm93cyBJT0V4Y2VwdGlvbgorLy8JCSAqIAorLy8JCSAqLworLy8JCXB1YmxpYyB2b2lkIHdyaXRlTkludChpbnQgaW5wdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIGludCBmbGFnID0gMDsKKy8vICAgICAgICAgICAgaWYgKGlucHV0IDwgMCkgeworLy8gICAgICAgICAgICAgICAgaW5wdXQgPSB+aW5wdXQ7CisvLyAgICAgICAgICAgICAgICBmbGFnID0gMTsKKy8vICAgICAgICAgICAgfQorLy8JCQlpbnB1dCA9IChpbnB1dCA8PCAxKSB8IGZsYWc7CisvLwkJCXdyaXRlSW50KG91dCwgaW5wdXQpOworLy8JCX0KKy8vCQkvKioKKy8vCQkgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLwkJICogCisvLwkJICovCisvLwkJcHVibGljIHZvaWQgZmx1c2goKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgICAgICBvdXQud3JpdGUocmVhZFdyaXRlQnVmZmVyKTsKKy8vICAgICAgICAgICAgcG9zaXRpb24gPSAwOworLy8JCX0KKy8vICAgICAgICAKKy8vICAgICAgICBpbnQgcmVhZFBvc2l0aW9uID0gcmVhZFdyaXRlQnVmZmVyLmxlbmd0aDsKKy8vICAgICAgICAKKy8vCQlwdWJsaWMgaW50IHJlYWRJbnQoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworLy8gICAgICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKy8vICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKy8vICAgICAgICAgICAgICAgIGlmIChyZWFkUG9zaXRpb24gPT0gcmVhZFdyaXRlQnVmZmVyLmxlbmd0aCkgeworLy8gICAgICAgICAgICAgICAgCWluLnJlYWQocmVhZFdyaXRlQnVmZmVyKTsKKy8vICAgICAgICAgICAgICAgICAgICByZWFkUG9zaXRpb24gPSAwOworLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgLy9pbi5yZWFkKGJ1ZmZlcik7CisvLyAgICAgICAgICAgICAgICBpbnQgaW5wdXQgPSByZWFkV3JpdGVCdWZmZXJbcmVhZFBvc2l0aW9uKytdOyAvLyBidWZmZXJbMF07CisvLyAgICAgICAgICAgICAgICByZXN1bHQgfD0gKGlucHV0ICYgMHg3RikgPDwgb2Zmc2V0OworLy8gICAgICAgICAgICAgICAgaWYgKChpbnB1dCAmIDB4ODApID09IDApIHsKKy8vICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDc7CisvLyAgICAgICAgICAgIH0gIAorLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLyoqCisvLyAgICAgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgorLy8gICAgICAgICAqIAorLy8gICAgICAgICAqLworLy8gICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlU3RyaW5nKFN0cmluZyBzKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgICAgICB3cml0ZUludChVVEYxNi5jb3VudENvZGVQb2ludChzKSk7CisvLyAgICAgICAgICAgIHdyaXRlQ29kZVBvaW50cyhzKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgLyoqCisvLwkJICogCisvLwkJICovCisvLwkJcHJpdmF0ZSB2b2lkIHdyaXRlQ29kZVBvaW50cyhTdHJpbmcgcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkJaW50IGNwID0gMDsKKy8vICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKy8vICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworLy8gICAgICAgICAgICAgICAgd3JpdGVJbnQoY3ApOworLy8gICAgICAgICAgICB9CisvLwkJfQorLy8JCS8qKgorLy8gICAgICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vICAgICAgICAgKiAKKy8vICAgICAgICAgKi8KKy8vICAgICAgICBwdWJsaWMgU3RyaW5nIHJlYWRTdHJpbmcoKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgICAgICBpbnQgbGVuID0gcmVhZEludChpbik7CisvLyAgICAgICAgICAgIHJldHVybiByZWFkQ29kZVBvaW50cyhpbiwgbGVuKTsKKy8vICAgICAgICB9CisvLwkJLyoqCisvLwkJICogCisvLwkJICovCisvLwkJcHJpdmF0ZSBTdHJpbmcgcmVhZENvZGVQb2ludHMoaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkJc3RyaW5nQnVmZmVyLnNldExlbmd0aCgwKTsKKy8vICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworLy8gICAgICAgICAgICAJaW50IGNwID0gcmVhZEludChpbik7CisvLyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoc3RyaW5nQnVmZmVyLCBjcCk7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgcmV0dXJuIHN0cmluZ0J1ZmZlci50b1N0cmluZygpOworLy8JCX0KKy8vCQkvKioKKy8vCQkgKiBAcGFyYW0gdGhpcworLy8JCSAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vCQkgKiAKKy8vCQkgKi8KKy8vCQlwcml2YXRlIHZvaWQgc2hvd1NpemUoVW5pY29kZU1hcCBtYXAsIFN0cmluZyB0aXRsZSwgT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkgICAgb3V0LmZsdXNoKCk7CisvLwkJCVN5c3RlbS5vdXQucHJpbnRsbih0aXRsZSArICI6ICIgKyAobWFwLmRlYnVnT3V0LnNpemUoKSArIHBvc2l0aW9uKSk7CisvLwkJfQorLy8gICAgfQorfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJiNDBkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eS5qYXZhCkBAIC0wLDAgKzEsMTE2NyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uU3RyaW5nV3JpdGVyOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Db2xsZWN0aW9uVXRpbGl0aWVzLkludmVyc2VNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ29sbGVjdGlvblV0aWxpdGllcy5PYmplY3RNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFVuaWNvZGVQcm9wZXJ0eSBleHRlbmRzIFVuaWNvZGVMYWJlbCB7CisKKyAgcHVibGljIHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgcHVibGljIHN0YXRpYyBTdHJpbmcgQ0hFQ0tfTkFNRSA9ICJGQ19ORktDX0Nsb3N1cmUiOworCisgIHB1YmxpYyBzdGF0aWMgaW50IENIRUNLX1ZBTFVFID0gMHgwMzdBOworCisgIHByaXZhdGUgU3RyaW5nIG5hbWU7CisKKyAgcHJpdmF0ZSBTdHJpbmcgZmlyc3ROYW1lQWxpYXMgPSBudWxsOworCisgIHByaXZhdGUgaW50IHR5cGU7CisKKyAgcHJpdmF0ZSBNYXAgdmFsdWVUb0ZpcnN0VmFsdWVBbGlhcyA9IG51bGw7CisKKyAgLyoKKyAgIE5hbWU6IFVuaWNvZGVfMV9OYW1lCisgICBOYW1lOiBJU09fQ29tbWVudAorICAgTmFtZTogTmFtZQorICAgTmFtZTogVW5pY29kZV8xX05hbWUKKyAgICoKKyAgICovCisKKyAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IDAsIEJJTkFSWSA9IDIsIEVYVEVOREVEX0JJTkFSWSA9IDMsIEVOVU1FUkFURUQgPSA0LCBFWFRFTkRFRF9FTlVNRVJBVEVEID0gNSwgQ0FUQUxPRyA9IDYsIEVYVEVOREVEX0NBVEFMT0cgPSA3LCBNSVNDID0gOCwgRVhURU5ERURfTUlTQyA9IDksIFNUUklORyA9IDEwLAorICAgICAgRVhURU5ERURfU1RSSU5HID0gMTEsIE5VTUVSSUMgPSAxMiwgRVhURU5ERURfTlVNRVJJQyA9IDEzLCBTVEFSVF9UWVBFID0gMiwgTElNSVRfVFlQRSA9IDE0LCBFWFRFTkRFRF9NQVNLID0gMSwgQ09SRV9NQVNLID0gfkVYVEVOREVEX01BU0ssIEJJTkFSWV9NQVNLID0gKDEgPDwgQklOQVJZKSB8ICgxIDw8IEVYVEVOREVEX0JJTkFSWSksCisgICAgICBTVFJJTkdfTUFTSyA9ICgxIDw8IFNUUklORykgfCAoMSA8PCBFWFRFTkRFRF9TVFJJTkcpLCBTVFJJTkdfT1JfTUlTQ19NQVNLID0gKDEgPDwgU1RSSU5HKSB8ICgxIDw8IEVYVEVOREVEX1NUUklORykgfCAoMSA8PCBNSVNDKSB8ICgxIDw8IEVYVEVOREVEX01JU0MpLAorICAgICAgRU5VTUVSQVRFRF9PUl9DQVRBTE9HX01BU0sgPSAoMSA8PCBFTlVNRVJBVEVEKSB8ICgxIDw8IEVYVEVOREVEX0VOVU1FUkFURUQpIHwgKDEgPDwgQ0FUQUxPRykgfCAoMSA8PCBFWFRFTkRFRF9DQVRBTE9HKTsKKworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBUWVBFX05BTUVTID0geyAiVW5rbm93biIsICJVbmtub3duIiwgIkJpbmFyeSIsICJFeHRlbmRlZCBCaW5hcnkiLCAiRW51bWVyYXRlZCIsICJFeHRlbmRlZCBFbnVtZXJhdGVkIiwgIkNhdGFsb2ciLCAiRXh0ZW5kZWQgQ2F0YWxvZyIsICJNaXNjZWxsYW5lb3VzIiwKKyAgICAgICJFeHRlbmRlZCBNaXNjZWxsYW5lb3VzIiwgIlN0cmluZyIsICJFeHRlbmRlZCBTdHJpbmciLCAiTnVtZXJpYyIsICJFeHRlbmRlZCBOdW1lcmljIiwgfTsKKworICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRUeXBlTmFtZShpbnQgcHJvcFR5cGUpIHsKKyAgICByZXR1cm4gVFlQRV9OQU1FU1twcm9wVHlwZV07CisgIH0KKworICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgcmV0dXJuIG5hbWU7CisgIH0KKworICBwdWJsaWMgZmluYWwgaW50IGdldFR5cGUoKSB7CisgICAgcmV0dXJuIHR5cGU7CisgIH0KKworICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc1R5cGUoaW50IG1hc2spIHsKKyAgICByZXR1cm4gKCgxIDw8IHR5cGUpICYgbWFzaykgIT0gMDsKKyAgfQorCisgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHNldE5hbWUoU3RyaW5nIHN0cmluZykgeworICAgIGlmIChzdHJpbmcgPT0gbnVsbCkKKyAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk5hbWUgbXVzdCBub3QgYmUgbnVsbCIpOworICAgIG5hbWUgPSBzdHJpbmc7CisgIH0KKworICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBzZXRUeXBlKGludCBpKSB7CisgICAgdHlwZSA9IGk7CisgIH0KKworICBwdWJsaWMgU3RyaW5nIGdldFZlcnNpb24oKSB7CisgICAgcmV0dXJuIF9nZXRWZXJzaW9uKCk7CisgIH0KKworICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlcG9pbnQpIHsKKyAgICBpZiAoREVCVUcgJiYgQ0hFQ0tfVkFMVUUgPT0gY29kZXBvaW50ICYmIENIRUNLX05BTUUuZXF1YWxzKGdldE5hbWUoKSkpIHsKKyAgICAgIFN0cmluZyB2YWx1ZSA9IF9nZXRWYWx1ZShjb2RlcG9pbnQpOworICAgICAgU3lzdGVtLm91dC5wcmludGxuKGdldE5hbWUoKSArICIoIiArIFV0aWxpdHkuaGV4KGNvZGVwb2ludCkgKyAiKToiICsgKGdldFR5cGUoKSA9PSBTVFJJTkcgPyBVdGlsaXR5LmhleCh2YWx1ZSkgOiB2YWx1ZSkpOworICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICByZXR1cm4gX2dldFZhbHVlKGNvZGVwb2ludCk7CisgIH0KKworICAvL3B1YmxpYyBTdHJpbmcgZ2V0VmFsdWUoaW50IGNvZGVwb2ludCwgYm9vbGVhbiBpc1Nob3J0KSB7CisgIC8vCXJldHVybiBnZXRWYWx1ZShjb2RlcG9pbnQpOworICAvL30KKworICBwdWJsaWMgTGlzdCBnZXROYW1lQWxpYXNlcyhMaXN0IHJlc3VsdCkgeworICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgcmV0dXJuIF9nZXROYW1lQWxpYXNlcyhyZXN1bHQpOworICB9CisKKyAgcHVibGljIExpc3QgZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzLCBMaXN0IHJlc3VsdCkgeworICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgcmVzdWx0ID0gX2dldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzLCByZXN1bHQpOworICAgIGlmICghcmVzdWx0LmNvbnRhaW5zKHZhbHVlQWxpYXMpKSB7IC8vIEZJWCAmJiB0eXBlIDwgTlVNRVJJQyAKKyAgICAgIHJlc3VsdCA9IF9nZXRWYWx1ZUFsaWFzZXModmFsdWVBbGlhcywgcmVzdWx0KTsgLy8gZm9yIGRlYnVnZ2luZworICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW50ZXJuYWwgZXJyb3I6ICIgKyBnZXROYW1lKCkgKyAiIGRvZXNuJ3QgY29udGFpbiAiICsgdmFsdWVBbGlhcyArICI6ICIgKyBuZXcgQmFnRm9ybWF0dGVyKCkuam9pbihyZXN1bHQpKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorCisgIHB1YmxpYyBMaXN0IGdldEF2YWlsYWJsZVZhbHVlcyhMaXN0IHJlc3VsdCkgeworICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgcmV0dXJuIF9nZXRBdmFpbGFibGVWYWx1ZXMocmVzdWx0KTsKKyAgfQorCisgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgX2dldFZlcnNpb24oKTsKKworICBwcm90ZWN0ZWQgYWJzdHJhY3QgU3RyaW5nIF9nZXRWYWx1ZShpbnQgY29kZXBvaW50KTsKKworICBwcm90ZWN0ZWQgYWJzdHJhY3QgTGlzdCBfZ2V0TmFtZUFsaWFzZXMoTGlzdCByZXN1bHQpOworCisgIHByb3RlY3RlZCBhYnN0cmFjdCBMaXN0IF9nZXRWYWx1ZUFsaWFzZXMoU3RyaW5nIHZhbHVlQWxpYXMsIExpc3QgcmVzdWx0KTsKKworICBwcm90ZWN0ZWQgYWJzdHJhY3QgTGlzdCBfZ2V0QXZhaWxhYmxlVmFsdWVzKExpc3QgcmVzdWx0KTsKKworICAvLyBjb252ZW5pZW5jZXMKKyAgcHVibGljIGZpbmFsIExpc3QgZ2V0TmFtZUFsaWFzZXMoKSB7CisgICAgcmV0dXJuIGdldE5hbWVBbGlhc2VzKG51bGwpOworICB9CisKKyAgcHVibGljIGZpbmFsIExpc3QgZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgcmV0dXJuIGdldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzLCBudWxsKTsKKyAgfQorCisgIHB1YmxpYyBmaW5hbCBMaXN0IGdldEF2YWlsYWJsZVZhbHVlcygpIHsKKyAgICByZXR1cm4gZ2V0QXZhaWxhYmxlVmFsdWVzKG51bGwpOworICB9CisKKyAgcHVibGljIGZpbmFsIFN0cmluZyBnZXRWYWx1ZShpbnQgY29kZXBvaW50LCBib29sZWFuIGdldFNob3J0ZXN0KSB7CisgICAgU3RyaW5nIHJlc3VsdCA9IGdldFZhbHVlKGNvZGVwb2ludCk7CisgICAgaWYgKHR5cGUgPj0gTUlTQyB8fCByZXN1bHQgPT0gbnVsbCB8fCAhZ2V0U2hvcnRlc3QpCisgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBnZXRGaXJzdFZhbHVlQWxpYXMocmVzdWx0KTsKKyAgfQorCisgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0Rmlyc3ROYW1lQWxpYXMoKSB7CisgICAgaWYgKGZpcnN0TmFtZUFsaWFzID09IG51bGwpIHsKKyAgICAgIGZpcnN0TmFtZUFsaWFzID0gKFN0cmluZykgZ2V0TmFtZUFsaWFzZXMoKS5nZXQoMCk7CisgICAgfQorICAgIHJldHVybiBmaXJzdE5hbWVBbGlhczsKKyAgfQorCisgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0Rmlyc3RWYWx1ZUFsaWFzKFN0cmluZyB2YWx1ZSkgeworICAgIGlmICh2YWx1ZVRvRmlyc3RWYWx1ZUFsaWFzID09IG51bGwpCisgICAgICBfZ2V0Rmlyc3RWYWx1ZUFsaWFzQ2FjaGUoKTsKKyAgICByZXR1cm4gKFN0cmluZykgdmFsdWVUb0ZpcnN0VmFsdWVBbGlhcy5nZXQodmFsdWUpOworICB9CisKKyAgcHJpdmF0ZSB2b2lkIF9nZXRGaXJzdFZhbHVlQWxpYXNDYWNoZSgpIHsKKyAgICBtYXhWYWx1ZVdpZHRoID0gMDsKKyAgICBtYXhGaXJzdFZhbHVlQWxpYXNXaWR0aCA9IDA7CisgICAgdmFsdWVUb0ZpcnN0VmFsdWVBbGlhcyA9IG5ldyBIYXNoTWFwKDEpOworICAgIEl0ZXJhdG9yIGl0ID0gZ2V0QXZhaWxhYmxlVmFsdWVzKCkuaXRlcmF0b3IoKTsKKyAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICBTdHJpbmcgZmlyc3QgPSAoU3RyaW5nKSBnZXRWYWx1ZUFsaWFzZXModmFsdWUpLmdldCgwKTsKKyAgICAgIGlmIChmaXJzdCA9PSBudWxsKSB7IC8vIGludGVybmFsIGVycm9yCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlZhbHVlIG5vdCBpbiB2YWx1ZSBhbGlhc2VzOiAiICsgdmFsdWUpOworICAgICAgfQorICAgICAgaWYgKERFQlVHICYmIENIRUNLX05BTUUuZXF1YWxzKGdldE5hbWUoKSkpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGaXJzdCBBbGlhczogIiArIGdldE5hbWUoKSArICI6ICIgKyB2YWx1ZSArICIgPT4gIiArIGZpcnN0ICsgbmV3IEJhZ0Zvcm1hdHRlcigpLmpvaW4oZ2V0VmFsdWVBbGlhc2VzKHZhbHVlKSkpOworICAgICAgfQorICAgICAgdmFsdWVUb0ZpcnN0VmFsdWVBbGlhcy5wdXQodmFsdWUsIGZpcnN0KTsKKyAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA+IG1heFZhbHVlV2lkdGgpIHsKKyAgICAgICAgbWF4VmFsdWVXaWR0aCA9IHZhbHVlLmxlbmd0aCgpOworICAgICAgfQorICAgICAgaWYgKGZpcnN0Lmxlbmd0aCgpID4gbWF4Rmlyc3RWYWx1ZUFsaWFzV2lkdGgpIHsKKyAgICAgICAgbWF4Rmlyc3RWYWx1ZUFsaWFzV2lkdGggPSBmaXJzdC5sZW5ndGgoKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBwcml2YXRlIGludCBtYXhWYWx1ZVdpZHRoID0gLTE7CisKKyAgcHJpdmF0ZSBpbnQgbWF4Rmlyc3RWYWx1ZUFsaWFzV2lkdGggPSAtMTsKKworICBwdWJsaWMgaW50IGdldE1heFdpZHRoKGJvb2xlYW4gZ2V0U2hvcnRlc3QpIHsKKyAgICBpZiAobWF4VmFsdWVXaWR0aCA8IDApCisgICAgICBfZ2V0Rmlyc3RWYWx1ZUFsaWFzQ2FjaGUoKTsKKyAgICBpZiAoZ2V0U2hvcnRlc3QpCisgICAgICByZXR1cm4gbWF4Rmlyc3RWYWx1ZUFsaWFzV2lkdGg7CisgICAgcmV0dXJuIG1heFZhbHVlV2lkdGg7CisgIH0KKworICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTZXQoU3RyaW5nIHByb3BlcnR5VmFsdWUpIHsKKyAgICByZXR1cm4gZ2V0U2V0KHByb3BlcnR5VmFsdWUsIG51bGwpOworICB9CisKKyAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFBhdHRlcm5NYXRjaGVyIG1hdGNoZXIpIHsKKyAgICByZXR1cm4gZ2V0U2V0KG1hdGNoZXIsIG51bGwpOworICB9CisKKyAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFN0cmluZyBwcm9wZXJ0eVZhbHVlLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgIHJldHVybiBnZXRTZXQobmV3IFNpbXBsZU1hdGNoZXIocHJvcGVydHlWYWx1ZSwgaXNUeXBlKFNUUklOR19PUl9NSVNDX01BU0spID8gbnVsbCA6IFBST1BFUlRZX0NPTVBBUkFUT1IpLCByZXN1bHQpOworICB9CisKKyAgcHJpdmF0ZSBVbmljb2RlTWFwIHVuaWNvZGVNYXAgPSBudWxsOworCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVOVVNFRCA9ICI/PyI7CisKKyAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFBhdHRlcm5NYXRjaGVyIG1hdGNoZXIsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgaWYgKHJlc3VsdCA9PSBudWxsKQorICAgICAgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICBpZiAoaXNUeXBlKFNUUklOR19PUl9NSVNDX01BU0spKSB7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlKGkpOworICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiBtYXRjaGVyLm1hdGNoZXModmFsdWUpKSB7CisgICAgICAgICAgcmVzdWx0LmFkZChpKTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgTGlzdCB0ZW1wID0gbmV3IEFycmF5TGlzdCgxKTsgLy8gdG8gYXZvaWQgcmVhbGxvY2F0aW5nLi4uCisgICAgVW5pY29kZU1hcCB1bSA9IGdldFVuaWNvZGVNYXBfaW50ZXJuYWwoKTsKKyAgICBJdGVyYXRvciBpdCA9IHVtLmdldEF2YWlsYWJsZVZhbHVlcyhudWxsKS5pdGVyYXRvcigpOworICAgIG1haW46IHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgIFN0cmluZyB2YWx1ZSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgIEl0ZXJhdG9yIGl0MiA9IGdldFZhbHVlQWxpYXNlcyh2YWx1ZSwgdGVtcCkuaXRlcmF0b3IoKTsKKyAgICAgIHdoaWxlIChpdDIuaGFzTmV4dCgpKSB7CisgICAgICAgIFN0cmluZyB2YWx1ZTIgPSAoU3RyaW5nKSBpdDIubmV4dCgpOworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVmFsdWVzOiIgKyB2YWx1ZTIpOworICAgICAgICBpZiAobWF0Y2hlci5tYXRjaGVzKHZhbHVlMikgfHwgbWF0Y2hlci5tYXRjaGVzKHRvU2tlbGV0b24odmFsdWUyKSkpIHsKKyAgICAgICAgICB1bS5nZXRTZXQodmFsdWUsIHJlc3VsdCk7CisgICAgICAgICAgY29udGludWUgbWFpbjsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyoKKyAgIHB1YmxpYyBVbmljb2RlU2V0IGdldE1hdGNoU2V0KFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICBhZGRBbGwobWF0Y2hJdGVyYXRvciwgcmVzdWx0KTsKKyAgIHJldHVybiByZXN1bHQ7CisgICB9CisKKyAgIHB1YmxpYyB2b2lkIHNldE1hdGNoU2V0KFVuaWNvZGVTZXQgc2V0KSB7CisgICBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgfQorICAgKi8KKworICAvKioKKyAgICogVXRpbGl0eSBmb3IgZGVidWdnaW5nCisgICAqLworICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTdGFjaygpIHsKKyAgICBFeGNlcHRpb24gZSA9IG5ldyBFeGNlcHRpb24oKTsKKyAgICBTdHJpbmdXcml0ZXIgc3cgPSBuZXcgU3RyaW5nV3JpdGVyKCk7CisgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOworICAgIGUucHJpbnRTdGFja1RyYWNlKHB3KTsKKyAgICBwdy5mbHVzaCgpOworICAgIHJldHVybiAiU2hvd2luZyBTdGFjayB3aXRoIGZha2UgIiArIHN3LmdldEJ1ZmZlcigpLnRvU3RyaW5nKCk7CisgIH0KKworICAvLyBUT0RPIHVzZSB0aGlzIGluc3RlYWQgb2YgcGxhaW4gc3RyaW5ncworICBwdWJsaWMgc3RhdGljIGNsYXNzIE5hbWUgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgc2tlbGV0b25DYWNoZTsKKworICAgIHByaXZhdGUgU3RyaW5nIHNrZWxldG9uOworCisgICAgcHJpdmF0ZSBTdHJpbmcgcHJldHR5OworCisgICAgcHVibGljIGZpbmFsIGludCBSQVcgPSAwLCBUSVRMRSA9IDEsIE5PUk1BTCA9IDI7CisKKyAgICBwdWJsaWMgTmFtZShTdHJpbmcgbmFtZSwgaW50IHN0eWxlKSB7CisgICAgICBpZiAobmFtZSA9PSBudWxsKQorICAgICAgICBuYW1lID0gIiI7CisgICAgICBpZiAoc3R5bGUgPT0gUkFXKSB7CisgICAgICAgIHNrZWxldG9uID0gcHJldHR5ID0gbmFtZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHByZXR0eSA9IHJlZ3VsYXJpemUobmFtZSwgc3R5bGUgPT0gVElUTEUpOworICAgICAgICBza2VsZXRvbiA9IHRvU2tlbGV0b24ocHJldHR5KTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgbykgeworICAgICAgcmV0dXJuIHNrZWxldG9uLmNvbXBhcmVUbygoKE5hbWUpIG8pLnNrZWxldG9uKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgIHJldHVybiBza2VsZXRvbi5lcXVhbHMoKChOYW1lKSBvKS5za2VsZXRvbik7CisgICAgfQorCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgIHJldHVybiBza2VsZXRvbi5oYXNoQ29kZSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICByZXR1cm4gcHJldHR5OworICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIG1hcAorICAgKi8KKyAgcHVibGljIFVuaWNvZGVNYXAgZ2V0VW5pY29kZU1hcCgpIHsKKyAgICByZXR1cm4gZ2V0VW5pY29kZU1hcChmYWxzZSk7CisgIH0KKworICAvKioKKyAgICogQHJldHVybiB0aGUgdW5pY29kZSBtYXAKKyAgICovCisgIHB1YmxpYyBVbmljb2RlTWFwIGdldFVuaWNvZGVNYXAoYm9vbGVhbiBnZXRTaG9ydGVzdCkgeworICAgIGlmICghZ2V0U2hvcnRlc3QpCisgICAgICByZXR1cm4gKFVuaWNvZGVNYXApIGdldFVuaWNvZGVNYXBfaW50ZXJuYWwoKS5jbG9uZUFzVGhhd2VkKCk7CisgICAgVW5pY29kZU1hcCByZXN1bHQgPSBuZXcgVW5pY29kZU1hcCgpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgIC8vaWYgKERFQlVHICYmIGkgPT0gMHg0MSkgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiXHQiICsgZ2V0VmFsdWUoaSkpOworICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0VmFsdWUoaSwgdHJ1ZSk7CisgICAgICByZXN1bHQucHV0KGksIHZhbHVlKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorCisgIC8qKgorICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIG1hcAorICAgKi8KKyAgcHJvdGVjdGVkIFVuaWNvZGVNYXAgZ2V0VW5pY29kZU1hcF9pbnRlcm5hbCgpIHsKKyAgICBpZiAodW5pY29kZU1hcCA9PSBudWxsKQorICAgICAgdW5pY29kZU1hcCA9IF9nZXRVbmljb2RlTWFwKCk7CisgICAgcmV0dXJuIHVuaWNvZGVNYXA7CisgIH0KKworICBwcm90ZWN0ZWQgVW5pY29kZU1hcCBfZ2V0VW5pY29kZU1hcCgpIHsKKyAgICBVbmljb2RlTWFwIHJlc3VsdCA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgSGFzaE1hcCBteUludGVybiA9IG5ldyBIYXNoTWFwKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgLy9pZiAoREVCVUcgJiYgaSA9PSAweDQxKSBTeXN0ZW0ub3V0LnByaW50bG4oaSArICJcdCIgKyBnZXRWYWx1ZShpKSk7CisgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZShpKTsKKyAgICAgIFN0cmluZyBpVmFsdWUgPSAoU3RyaW5nKSBteUludGVybi5nZXQodmFsdWUpOworICAgICAgaWYgKGlWYWx1ZSA9PSBudWxsKQorICAgICAgICBteUludGVybi5wdXQodmFsdWUsIGlWYWx1ZSA9IHZhbHVlKTsKKyAgICAgIHJlc3VsdC5wdXQoaSwgaVZhbHVlKTsKKyAgICB9CisgICAgaWYgKERFQlVHKSB7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgIC8vaWYgKERFQlVHICYmIGkgPT0gMHg0MSkgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiXHQiICsgZ2V0VmFsdWUoaSkpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZShpKTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdFZhbHVlID0gKFN0cmluZykgcmVzdWx0LmdldFZhbHVlKGkpOworICAgICAgICBpZiAoIXZhbHVlLmVxdWFscyhyZXN1bHRWYWx1ZSkpIHsKKyAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiVmFsdWUgZmFpbHVyZSBhdDogIiArIFV0aWxpdHkuaGV4KGkpKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBpZiAoREVCVUcgJiYgQ0hFQ0tfTkFNRS5lcXVhbHMoZ2V0TmFtZSgpKSkgeworICAgICAgU3lzdGVtLm91dC5wcmludGxuKGdldE5hbWUoKSArICI6XHQiICsgZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiXHQiICsgZ2V0VmVyc2lvbigpKTsKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihnZXRTdGFjaygpKTsKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHQpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyoqCisgICAqIFJlYWxseSBvdWdodCB0byBjcmVhdGUgYSBDb2xsZWN0aW9uIFVuaXF1ZUxpc3QsIHRoYXQgZm9yY2VzIHVuaXF1ZW5lc3MuIEJ1dCBmb3Igbm93Li4uCisgICAqLworICBwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gYWRkVW5pcXVlKE9iamVjdCBvYmosIENvbGxlY3Rpb24gcmVzdWx0KSB7CisgICAgaWYgKG9iaiAhPSBudWxsICYmICFyZXN1bHQuY29udGFpbnMob2JqKSkKKyAgICAgIHJlc3VsdC5hZGQob2JqKTsKKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyoqCisgICAqIFV0aWxpdHkgZm9yIG1hbmFnaW5nIHByb3BlcnR5ICYgbm9uLXN0cmluZyB2YWx1ZSBhbGlhc2VzCisgICAqLworICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbXBhcmF0b3IgUFJPUEVSVFlfQ09NUEFSQVRPUiA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgcmV0dXJuIGNvbXBhcmVOYW1lcygoU3RyaW5nKSBvMSwgKFN0cmluZykgbzIpOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogVXRpbGl0eSBmb3IgbWFuYWdpbmcgcHJvcGVydHkgJiBub24tc3RyaW5nIHZhbHVlIGFsaWFzZXMKKyAgICoKKyAgICovCisgIC8vIFRPRE8gb3B0aW1pemUKKyAgcHVibGljIHN0YXRpYyBib29sZWFuIGVxdWFsTmFtZXMoU3RyaW5nIGEsIFN0cmluZyBiKSB7CisgICAgaWYgKGEgPT0gYikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhID09IG51bGwpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRvU2tlbGV0b24oYSkuZXF1YWxzKHRvU2tlbGV0b24oYikpOworICB9CisKKyAgLyoqCisgICAqIFV0aWxpdHkgZm9yIG1hbmFnaW5nIHByb3BlcnR5ICYgbm9uLXN0cmluZyB2YWx1ZSBhbGlhc2VzCisgICAqLworICAvLyBUT0RPIG9wdGltaXplCisgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmVOYW1lcyhTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKyAgICBpZiAoYSA9PSBiKQorICAgICAgcmV0dXJuIDA7CisgICAgaWYgKGEgPT0gbnVsbCkKKyAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoYiA9PSBudWxsKQorICAgICAgcmV0dXJuIDE7CisgICAgcmV0dXJuIHRvU2tlbGV0b24oYSkuY29tcGFyZVRvKHRvU2tlbGV0b24oYikpOworICB9CisKKyAgLyoqCisgICAqIFV0aWxpdHkgZm9yIG1hbmFnaW5nIHByb3BlcnR5ICYgbm9uLXN0cmluZyB2YWx1ZSBhbGlhc2VzCisgICAqLworICAvLyBUT0RPIGFjY291bnQgZm9yIHNwZWNpYWwgbmFtZXMsIHRpYmV0YW4sIGhhbmd1bAorICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1NrZWxldG9uKFN0cmluZyBzb3VyY2UpIHsKKyAgICBpZiAoc291cmNlID09IG51bGwpCisgICAgICByZXR1cm4gbnVsbDsKKyAgICBTdHJpbmdCdWZmZXIgc2tlbGV0b25CdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgYm9vbGVhbiBnb3RPbmUgPSBmYWxzZTsKKyAgICAvLyByZW1vdmUgc3BhY2VzLCAnXycsICctJworICAgIC8vIHdlIGNhbiBkbyB0aGlzIHdpdGggY2hhciwgc2luY2Ugbm8gc3Vycm9nYXRlcyBhcmUgaW52b2x2ZWQKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgIGlmIChpID4gMCAmJiAoY2ggPT0gJ18nIHx8IGNoID09ICcgJyB8fCBjaCA9PSAnLScpKSB7CisgICAgICAgIGdvdE9uZSA9IHRydWU7CisgICAgICB9IGVsc2UgeworICAgICAgICBjaGFyIGNoMiA9IENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCk7CisgICAgICAgIGlmIChjaDIgIT0gY2gpIHsKKyAgICAgICAgICBnb3RPbmUgPSB0cnVlOworICAgICAgICAgIHNrZWxldG9uQnVmZmVyLmFwcGVuZChjaDIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHNrZWxldG9uQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgaWYgKCFnb3RPbmUpCisgICAgICByZXR1cm4gc291cmNlOyAvLyBhdm9pZCBzdHJpbmcgY3JlYXRpb24KKyAgICByZXR1cm4gc2tlbGV0b25CdWZmZXIudG9TdHJpbmcoKTsKKyAgfQorCisgIC8vIGdldCB0aGUgbmFtZSBza2VsZXRvbgorICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b05hbWVTa2VsZXRvbihTdHJpbmcgc291cmNlKSB7CisgICAgaWYgKHNvdXJjZSA9PSBudWxsKQorICAgICAgcmV0dXJuIG51bGw7CisgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAvLyByZW1vdmUgc3BhY2VzLCBtZWRpYWwgJy0nCisgICAgLy8gd2UgY2FuIGRvIHRoaXMgd2l0aCBjaGFyLCBzaW5jZSBubyBzdXJyb2dhdGVzIGFyZSBpbnZvbHZlZAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgIGNoYXIgY2ggPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgaWYgKCgnMCcgPD0gY2ggJiYgY2ggPD0gJzknKSB8fCAoJ0EnIDw9IGNoICYmIGNoIDw9ICdaJykgfHwgY2ggPT0gJzwnIHx8IGNoID09ICc+JykgeworICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKyAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJyAnKSB7CisgICAgICAgIC8vIGRvbid0IGNvcHkgZXZlcgorICAgICAgfSBlbHNlIGlmIChjaCA9PSAnLScpIHsKKyAgICAgICAgLy8gb25seSBjb3B5IG5vbi1tZWRpYWxzIEFORCB0cmFpbGluZyBPLUUKKyAgICAgICAgaWYgKDAgPT0gaSB8fCBpID09IHNvdXJjZS5sZW5ndGgoKSAtIDEgfHwgc291cmNlLmNoYXJBdChpIC0gMSkgPT0gJyAnIHx8IHNvdXJjZS5jaGFyQXQoaSArIDEpID09ICcgJworICAgICAgICAgICAgfHwgKGkgPT0gc291cmNlLmxlbmd0aCgpIC0gMiAmJiBzb3VyY2UuY2hhckF0KGkgLSAxKSA9PSAnTycgJiYgc291cmNlLmNoYXJBdChpICsgMSkgPT0gJ0UnKSkgeworICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqKioqIEVYQ0VQVElPTiAiICsgc291cmNlKTsKKyAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBvdGhlcndpc2UgZG9uJ3QgY29weQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBOYW1lIENoYXI6IFUrIiArIFV0aWxpdHkuaGV4KGNoKSArICIsICIgKyBjaCk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgfQorCisgIC8qKgorICAgKiBUaGVzZSByb3V0aW5lcyB1c2UgdGhlIEphdmEgZnVuY3Rpb25zLCBiZWNhdXNlIHRoZXkgb25seSBuZWVkIHRvIGFjdCBvbiBBU0NJSQorICAgKiBDaGFuZ2VzIHNwYWNlLCAtIGludG8gXywgaW5zZXJ0cyBfIGJldHdlZW4gbG93ZXIgYW5kIFVQUEVSLgorICAgKi8KKyAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVndWxhcml6ZShTdHJpbmcgc291cmNlLCBib29sZWFuIHRpdGxlY2FzZVN0YXJ0KSB7CisgICAgaWYgKHNvdXJjZSA9PSBudWxsKQorICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICAvKmlmIChzb3VyY2UuZXF1YWxzKCJub0JyZWFrIikpIHsgLy8gSEFDSworICAgICBpZiAodGl0bGVjYXNlU3RhcnQpIHJldHVybiAiTm9CcmVhayI7CisgICAgIHJldHVybiBzb3VyY2U7CisgICAgIH0KKyAgICAgKi8KKyAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIGludCBsYXN0Q2F0ID0gLTE7CisgICAgYm9vbGVhbiBoYXZlRmlyc3RDYXNlZCA9IHRydWU7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgY2hhciBjID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgIGlmIChjID09ICcgJyB8fCBjID09ICctJyB8fCBjID09ICdfJykgeworICAgICAgICBjID0gJ18nOworICAgICAgICBoYXZlRmlyc3RDYXNlZCA9IHRydWU7CisgICAgICB9CisgICAgICBpZiAoYyA9PSAnPScpCisgICAgICAgIGhhdmVGaXJzdENhc2VkID0gdHJ1ZTsKKyAgICAgIGludCBjYXQgPSBDaGFyYWN0ZXIuZ2V0VHlwZShjKTsKKyAgICAgIGlmIChsYXN0Q2F0ID09IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSICYmIGNhdCA9PSBDaGFyYWN0ZXIuVVBQRVJDQVNFX0xFVFRFUikgeworICAgICAgICByZXN1bHQuYXBwZW5kKCdfJyk7CisgICAgICB9CisgICAgICBpZiAoaGF2ZUZpcnN0Q2FzZWQgJiYgKGNhdCA9PSBDaGFyYWN0ZXIuTE9XRVJDQVNFX0xFVFRFUiB8fCBjYXQgPT0gQ2hhcmFjdGVyLlRJVExFQ0FTRV9MRVRURVIgfHwgY2F0ID09IENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKSkgeworICAgICAgICBpZiAodGl0bGVjYXNlU3RhcnQpIHsKKyAgICAgICAgICBjID0gQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpOworICAgICAgICB9CisgICAgICAgIGhhdmVGaXJzdENhc2VkID0gZmFsc2U7CisgICAgICB9CisgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgbGFzdENhdCA9IGNhdDsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICB9CisKKyAgLyoqCisgICAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNvbXBhcmluZyBjb2RlcG9pbnQgdG8gc3RyaW5nIHdpdGhvdXQKKyAgICogZ2VuZXJhdGluZyBuZXcgc3RyaW5nLgorICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAqIEBwYXJhbSBvdGhlcgorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGVwb2ludCBlcXVhbHMgdGhlIHN0cmluZworICAgKi8KKyAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIGVxdWFscyhpbnQgY29kZXBvaW50LCBTdHJpbmcgb3RoZXIpIHsKKyAgICBpZiAob3RoZXIubGVuZ3RoKCkgPT0gMSkgeworICAgICAgcmV0dXJuIGNvZGVwb2ludCA9PSBvdGhlci5jaGFyQXQoMCk7CisgICAgfQorICAgIGlmIChvdGhlci5sZW5ndGgoKSA9PSAyKSB7CisgICAgICByZXR1cm4gb3RoZXIuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZXBvaW50KSk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8qKgorICAgKiBVdGlsaXR5IHRoYXQgc2hvdWxkIGJlIG9uIFVuaWNvZGVTZXQKKyAgICogQHBhcmFtIHNvdXJjZQorICAgKiBAcGFyYW0gcmVzdWx0CisgICAqLworICBzdGF0aWMgcHVibGljIHZvaWQgYWRkQWxsKFVuaWNvZGVTZXRJdGVyYXRvciBzb3VyY2UsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgd2hpbGUgKHNvdXJjZS5uZXh0UmFuZ2UoKSkgeworICAgICAgaWYgKHNvdXJjZS5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICByZXN1bHQuYWRkKHNvdXJjZS5zdHJpbmcpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0LmFkZChzb3VyY2UuY29kZXBvaW50LCBzb3VyY2UuY29kZXBvaW50RW5kKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICAvKioKKyAgICogUmVhbGx5IG91Z2h0IHRvIGNyZWF0ZSBhIENvbGxlY3Rpb24gVW5pcXVlTGlzdCwgdGhhdCBmb3JjZXMgdW5pcXVlbmVzcy4gQnV0IGZvciBub3cuLi4KKyAgICovCisgIHB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiBhZGRBbGxVbmlxdWUoQ29sbGVjdGlvbiBzb3VyY2UsIENvbGxlY3Rpb24gcmVzdWx0KSB7CisgICAgZm9yIChJdGVyYXRvciBpdCA9IHNvdXJjZS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICBhZGRVbmlxdWUoaXQubmV4dCgpLCByZXN1bHQpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyoqCisgICAqIFJlYWxseSBvdWdodCB0byBjcmVhdGUgYSBDb2xsZWN0aW9uIFVuaXF1ZUxpc3QsIHRoYXQgZm9yY2VzIHVuaXF1ZW5lc3MuIEJ1dCBmb3Igbm93Li4uCisgICAqLworICBwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gYWRkQWxsVW5pcXVlKE9iamVjdFtdIHNvdXJjZSwgQ29sbGVjdGlvbiByZXN1bHQpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7ICsraSkgeworICAgICAgYWRkVW5pcXVlKHNvdXJjZVtpXSwgcmVzdWx0KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorCisgIHN0YXRpYyBwdWJsaWMgY2xhc3MgRmFjdG9yeSB7CisgICAgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIE1hcCBjYW5vbmljYWxOYW1lcyA9IG5ldyBUcmVlTWFwKCk7CisKKyAgICBNYXAgc2tlbGV0b25OYW1lcyA9IG5ldyBUcmVlTWFwKCk7CisKKyAgICBNYXAgcHJvcGVydHlDYWNoZSA9IG5ldyBIYXNoTWFwKDEpOworCisgICAgcHVibGljIGZpbmFsIEZhY3RvcnkgYWRkKFVuaWNvZGVQcm9wZXJ0eSBzcCkgeworICAgICAgY2Fub25pY2FsTmFtZXMucHV0KHNwLmdldE5hbWUoKSwgc3ApOworICAgICAgTGlzdCBjID0gc3AuZ2V0TmFtZUFsaWFzZXMobmV3IEFycmF5TGlzdCgxKSk7CisgICAgICBJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsKKyAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgc2tlbGV0b25OYW1lcy5wdXQodG9Ta2VsZXRvbigoU3RyaW5nKSBpdC5uZXh0KCkpLCBzcCk7CisgICAgICB9CisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVByb3BlcnR5IGdldFByb3BlcnR5KFN0cmluZyBwcm9wZXJ0eUFsaWFzKSB7CisgICAgICByZXR1cm4gKFVuaWNvZGVQcm9wZXJ0eSkgc2tlbGV0b25OYW1lcy5nZXQodG9Ta2VsZXRvbihwcm9wZXJ0eUFsaWFzKSk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0QXZhaWxhYmxlTmFtZXMoKSB7CisgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlTmFtZXMobnVsbCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0QXZhaWxhYmxlTmFtZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgICAgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgIEl0ZXJhdG9yIGl0ID0gY2Fub25pY2FsTmFtZXMua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgYWRkVW5pcXVlKGl0Lm5leHQoKSwgcmVzdWx0KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0QXZhaWxhYmxlTmFtZXMoaW50IHByb3BlcnR5VHlwZU1hc2spIHsKKyAgICAgIHJldHVybiBnZXRBdmFpbGFibGVOYW1lcyhwcm9wZXJ0eVR5cGVNYXNrLCBudWxsKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgTGlzdCBnZXRBdmFpbGFibGVOYW1lcyhpbnQgcHJvcGVydHlUeXBlTWFzaywgTGlzdCByZXN1bHQpIHsKKyAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgICAgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgIEl0ZXJhdG9yIGl0ID0gY2Fub25pY2FsTmFtZXMua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSBwcm9wZXJ0eSA9IGdldFByb3BlcnR5KGl0ZW0pOworICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcm9wZXJ0aWVzOiAiICsgaXRlbSArICIsIiArIHByb3BlcnR5LmdldFR5cGUoKSk7CisgICAgICAgIGlmICghcHJvcGVydHkuaXNUeXBlKHByb3BlcnR5VHlwZU1hc2spKSB7CisgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIk1hc2tpbmc6ICIgKyBwcm9wZXJ0eS5nZXRUeXBlKCkgKyAiLCIgKyBwcm9wZXJ0eVR5cGVNYXNrKTsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBhZGRVbmlxdWUocHJvcGVydHkuZ2V0TmFtZSgpLCByZXN1bHQpOworICAgICAgfQorICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBJbnZlcnNlUGF0dGVybk1hdGNoZXIgaW52ZXJzZU1hdGNoZXIgPSBuZXcgSW52ZXJzZVBhdHRlcm5NYXRjaGVyKCk7CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgaXM6CisgICAgICogICAgcHJvcG5hbWUgKCc9JyB8ICchPScpIHByb3B2YWx1ZSAoICd8JyBwcm9wVmFsdWUgKSoKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTZXQoU3RyaW5nIHByb3BBbmRWYWx1ZSwgUGF0dGVybk1hdGNoZXIgbWF0Y2hlciwgVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgIGludCBlcXVhbFBvcyA9IHByb3BBbmRWYWx1ZS5pbmRleE9mKCc9Jyk7CisgICAgICBTdHJpbmcgcHJvcCA9IHByb3BBbmRWYWx1ZS5zdWJzdHJpbmcoMCwgZXF1YWxQb3MpOworICAgICAgU3RyaW5nIHZhbHVlID0gcHJvcEFuZFZhbHVlLnN1YnN0cmluZyhlcXVhbFBvcyArIDEpOworICAgICAgYm9vbGVhbiBuZWdhdGl2ZSA9IGZhbHNlOworICAgICAgaWYgKHByb3AuZW5kc1dpdGgoIiEiKSkgeworICAgICAgICBwcm9wID0gcHJvcC5zdWJzdHJpbmcoMCwgcHJvcC5sZW5ndGgoKSAtIDEpOworICAgICAgICBuZWdhdGl2ZSA9IHRydWU7CisgICAgICB9CisgICAgICBwcm9wID0gcHJvcC50cmltKCk7CisgICAgICBVbmljb2RlUHJvcGVydHkgdXAgPSBnZXRQcm9wZXJ0eShwcm9wKTsKKyAgICAgIGlmIChtYXRjaGVyID09IG51bGwpIHsKKyAgICAgICAgbWF0Y2hlciA9IG5ldyBTaW1wbGVNYXRjaGVyKHZhbHVlLCB1cC5pc1R5cGUoU1RSSU5HX09SX01JU0NfTUFTSykgPyBudWxsIDogUFJPUEVSVFlfQ09NUEFSQVRPUik7CisgICAgICB9CisgICAgICBpZiAobmVnYXRpdmUpIHsKKyAgICAgICAgaW52ZXJzZU1hdGNoZXIuc2V0KG1hdGNoZXIpOworICAgICAgICBtYXRjaGVyID0gaW52ZXJzZU1hdGNoZXI7CisgICAgICB9CisgICAgICByZXR1cm4gdXAuZ2V0U2V0KG1hdGNoZXIuc2V0KHZhbHVlKSwgcmVzdWx0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTZXQoU3RyaW5nIHByb3BBbmRWYWx1ZSwgUGF0dGVybk1hdGNoZXIgbWF0Y2hlcikgeworICAgICAgcmV0dXJuIGdldFNldChwcm9wQW5kVmFsdWUsIG1hdGNoZXIsIG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNldChTdHJpbmcgcHJvcEFuZFZhbHVlKSB7CisgICAgICByZXR1cm4gZ2V0U2V0KHByb3BBbmRWYWx1ZSwgbnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIFN5bWJvbFRhYmxlIGdldFN5bWJvbFRhYmxlKFN0cmluZyBwcmVmaXgpIHsKKyAgICAgIHJldHVybiBuZXcgUHJvcGVydHlTeW1ib2xUYWJsZShwcmVmaXgpOworICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgTXlYU3ltYm9sVGFibGUgZXh0ZW5kcyBVbmljb2RlU2V0LlhTeW1ib2xUYWJsZSB7CisgICAgICBwdWJsaWMgYm9vbGVhbiBhcHBseVByb3BlcnR5QWxpYXMoU3RyaW5nIHByb3BlcnR5TmFtZSwgU3RyaW5nIHByb3BlcnR5VmFsdWUsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgIGlmIChmYWxzZSkKKyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocHJvcGVydHlOYW1lICsgIj0iICsgcHJvcGVydHlWYWx1ZSk7CisgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSBwcm9wID0gZ2V0UHJvcGVydHkocHJvcGVydHlOYW1lKTsKKyAgICAgICAgaWYgKHByb3AgPT0gbnVsbCkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5jbGVhcigpOworICAgICAgICBVbmljb2RlU2V0IHggPSBwcm9wLmdldFNldChwcm9wZXJ0eVZhbHVlLCByZXN1bHQpOworICAgICAgICByZXR1cm4geC5zaXplKCkgIT0gMDsKKyAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldC5YU3ltYm9sVGFibGUgZ2V0WFN5bWJvbFRhYmxlKCkgeworICAgICAgcmV0dXJuIG5ldyBNeVhTeW1ib2xUYWJsZSgpOworICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgUHJvcGVydHlTeW1ib2xUYWJsZSBpbXBsZW1lbnRzIFN5bWJvbFRhYmxlIHsKKyAgICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAgIHByaXZhdGUgU3RyaW5nIHByZWZpeDsKKworICAgICAgUmVnZXhNYXRjaGVyIHJlZ2V4TWF0Y2hlciA9IG5ldyBSZWdleE1hdGNoZXIoKTsKKworICAgICAgUHJvcGVydHlTeW1ib2xUYWJsZShTdHJpbmcgcHJlZml4KSB7CisgICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OworICAgICAgfQorCisgICAgICBwdWJsaWMgY2hhcltdIGxvb2t1cChTdHJpbmcgcykgeworICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdCgiICsgcHJlZml4ICsgIilMb29raW5nIHVwICIgKyBzKTsKKyAgICAgICAgLy8gZW5zdXJlLCBhZ2FpbiwgdGhhdCBwcmVmaXggbWF0Y2hlcworICAgICAgICBpbnQgc3RhcnQgPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgIGlmICghcy5yZWdpb25NYXRjaGVzKHRydWUsIDAsIHByZWZpeCwgMCwgc3RhcnQpKQorICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIGludCBwb3MgPSBzLmluZGV4T2YoJzonLCBzdGFydCk7CisgICAgICAgIGlmIChwb3MgPCAwKSB7IC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogbWlzc2luZyA9OiAiICsgcyArICJcclxuIik7CisgICAgICAgIH0KKyAgICAgICAgVW5pY29kZVByb3BlcnR5IHByb3AgPSBnZXRQcm9wZXJ0eShzLnN1YnN0cmluZyhzdGFydCwgcG9zKSk7CisgICAgICAgIGlmIChwcm9wID09IG51bGwpIHsKKyAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIFByb3BlcnR5IGluOiAiICsgcyArICJcclxuVXNlICIgKyBzaG93U2V0KGdldEF2YWlsYWJsZU5hbWVzKCkpKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdmFsdWUgPSBzLnN1YnN0cmluZyhwb3MgKyAxKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQ7CisgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCJcdTAwQUIiKSkgeyAvLyByZWdleCEKKyAgICAgICAgICBzZXQgPSBwcm9wLmdldFNldChyZWdleE1hdGNoZXIuc2V0KHZhbHVlLnN1YnN0cmluZygxLCB2YWx1ZS5sZW5ndGgoKSAtIDEpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgc2V0ID0gcHJvcC5nZXRTZXQodmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlmIChzZXQuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJFbXB0eSBQcm9wZXJ0eS1WYWx1ZSBpbjogIiArIHMgKyAiXHJcblVzZSAiICsgc2hvd1NldChwcm9wLmdldEF2YWlsYWJsZVZhbHVlcygpKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHQoIiArIHByZWZpeCArICIpUmV0dXJuaW5nICIgKyBzZXQudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgcmV0dXJuIHNldC50b1BhdHRlcm4odHJ1ZSkudG9DaGFyQXJyYXkoKTsgLy8gcmVhbGx5IHVnbHkKKyAgICAgIH0KKworICAgICAgcHJpdmF0ZSBTdHJpbmcgc2hvd1NldChMaXN0IGxpc3QpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoIlsiKTsKKyAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBsaXN0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICBpZiAoIWZpcnN0KQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOworICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIl0iKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgfQorCisgICAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICB9CisKKyAgICAgIHB1YmxpYyBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHQoIiArIHByZWZpeCArICIpUGFyc2luZyA8IiArIHRleHQuc3Vic3RyaW5nKHBvcy5nZXRJbmRleCgpLCBsaW1pdCkgKyAiPiIpOworICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgaW50IHZlcnlTdGFydCA9IHN0YXJ0OworICAgICAgICAvLyBlbnN1cmUgdGhhdCBpdCBzdGFydHMgd2l0aCAncHJlZml4JworICAgICAgICBpZiAoIXRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgcHJlZml4LCAwLCBwcmVmaXgubGVuZ3RoKCkpKQorICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBzdGFydCArPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgIC8vIG5vdyBzZWUgaWYgaXQgaXMgb2YgdGhlIGZvcm0gaWRlbnRpZmllcjppZGVudGlmaWVyCisgICAgICAgIGludCBpID0gZ2V0SWRlbnRpZmllcih0ZXh0LCBzdGFydCwgbGltaXQpOworICAgICAgICBpZiAoaSA9PSBzdGFydCkKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgU3RyaW5nIHByb3AgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgaSk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9ICJ0cnVlIjsKKyAgICAgICAgaWYgKGkgPCBsaW1pdCkgeworICAgICAgICAgIGlmICh0ZXh0LmNoYXJBdChpKSA9PSAnOicpIHsKKyAgICAgICAgICAgIGludCBqOworICAgICAgICAgICAgaWYgKHRleHQuY2hhckF0KGkgKyAxKSA9PSAnXHUwMEFCJykgeyAvLyByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgaiA9IHRleHQuaW5kZXhPZignXHUwMEJCJywgaSArIDIpICsgMTsgLy8gaW5jbHVkZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICAgICAgICBpZiAoaiA8PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgaiA9IGdldElkZW50aWZpZXIodGV4dCwgaSArIDEsIGxpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlID0gdGV4dC5zdWJzdHJpbmcoaSArIDEsIGopOworICAgICAgICAgICAgaSA9IGo7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHQoIiArIHByZWZpeCArICIpUGFyc2VkIDwiICsgcHJvcCArICI+PTwiICsgdmFsdWUgKyAiPiIpOworICAgICAgICByZXR1cm4gcHJlZml4ICsgcHJvcCArICI6IiArIHZhbHVlOworICAgICAgfQorCisgICAgICBwcml2YXRlIGludCBnZXRJZGVudGlmaWVyKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdEdldElEIDwiICsgdGV4dC5zdWJzdHJpbmcoc3RhcnQsIGxpbWl0KSArICI+Iik7CisgICAgICAgIGludCBjcCA9IDA7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGxpbWl0OyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgICBpZiAoIWNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjcCkgJiYgY3AgIT0gJy4nKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHRHb3RJRCA8IiArIHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBpKSArICI+Iik7CisgICAgICAgIHJldHVybiBpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRmlsdGVyZWRQcm9wZXJ0eSBleHRlbmRzIFVuaWNvZGVQcm9wZXJ0eSB7CisgICAgcHJpdmF0ZSBVbmljb2RlUHJvcGVydHkgcHJvcGVydHk7CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nRmlsdGVyIGZpbHRlcjsKKworICAgIHByb3RlY3RlZCBVbmljb2RlU2V0SXRlcmF0b3IgbWF0Y2hJdGVyYXRvciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IobmV3IFVuaWNvZGVTZXQoMCwgMHgxMEZGRkYpKTsKKworICAgIHByb3RlY3RlZCBIYXNoTWFwIGJhY2ttYXA7CisKKyAgICBib29sZWFuIGFsbG93VmFsdWVBbGlhc0NvbGxpc2lvbnMgPSBmYWxzZTsKKworICAgIHB1YmxpYyBGaWx0ZXJlZFByb3BlcnR5KFVuaWNvZGVQcm9wZXJ0eSBwcm9wZXJ0eSwgU3RyaW5nRmlsdGVyIGZpbHRlcikgeworICAgICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5OworICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZ0ZpbHRlciBnZXRGaWx0ZXIoKSB7CisgICAgICByZXR1cm4gZmlsdGVyOworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHkgc2V0RmlsdGVyKFN0cmluZ0ZpbHRlciBmaWx0ZXIpIHsKKyAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyOworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgTGlzdCB0ZW1wID0gbmV3IEFycmF5TGlzdCgxKTsKKworICAgIHB1YmxpYyBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgIHJldHVybiBmaWx0ZXIuYWRkVW5pcXVlKHByb3BlcnR5LmdldEF2YWlsYWJsZVZhbHVlcyh0ZW1wKSwgcmVzdWx0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgTGlzdCBfZ2V0TmFtZUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgIHJldHVybiBmaWx0ZXIuYWRkVW5pcXVlKHByb3BlcnR5LmdldE5hbWVBbGlhc2VzKHRlbXApLCByZXN1bHQpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgX2dldFZhbHVlKGludCBjb2RlcG9pbnQpIHsKKyAgICAgIHJldHVybiBmaWx0ZXIucmVtYXAocHJvcGVydHkuZ2V0VmFsdWUoY29kZXBvaW50KSk7CisgICAgfQorCisgICAgcHVibGljIExpc3QgX2dldFZhbHVlQWxpYXNlcyhTdHJpbmcgdmFsdWVBbGlhcywgTGlzdCByZXN1bHQpIHsKKyAgICAgIGlmIChiYWNrbWFwID09IG51bGwpIHsKKyAgICAgICAgYmFja21hcCA9IG5ldyBIYXNoTWFwKDEpOworICAgICAgICB0ZW1wLmNsZWFyKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gcHJvcGVydHkuZ2V0QXZhaWxhYmxlVmFsdWVzKHRlbXApLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICBTdHJpbmcgbWFwcGVkSXRlbSA9IGZpbHRlci5yZW1hcChpdGVtKTsKKyAgICAgICAgICBpZiAoYmFja21hcC5nZXQobWFwcGVkSXRlbSkgIT0gbnVsbCAmJiAhYWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9ucykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRmlsdGVyIG1ha2VzIHZhbHVlcyBjb2xsaWRlISAiICsgaXRlbSArICIsICIgKyBtYXBwZWRJdGVtKTsKKyAgICAgICAgICB9CisgICAgICAgICAgYmFja21hcC5wdXQobWFwcGVkSXRlbSwgaXRlbSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHZhbHVlQWxpYXMgPSAoU3RyaW5nKSBiYWNrbWFwLmdldCh2YWx1ZUFsaWFzKTsKKyAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgIHJldHVybiBmaWx0ZXIuYWRkVW5pcXVlKHByb3BlcnR5LmdldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzLCB0ZW1wKSwgcmVzdWx0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIF9nZXRWZXJzaW9uKCkgeworICAgICAgcmV0dXJuIHByb3BlcnR5LmdldFZlcnNpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0FsbG93VmFsdWVBbGlhc0NvbGxpc2lvbnMoKSB7CisgICAgICByZXR1cm4gYWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9uczsKKyAgICB9CisKKyAgICBwdWJsaWMgRmlsdGVyZWRQcm9wZXJ0eSBzZXRBbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zKGJvb2xlYW4gYikgeworICAgICAgYWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9ucyA9IGI7CisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgU3RyaW5nRmlsdGVyIGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIHJlbWFwKFN0cmluZyBvcmlnaW5hbCk7CisKKyAgICBwdWJsaWMgZmluYWwgTGlzdCBhZGRVbmlxdWUoQ29sbGVjdGlvbiBzb3VyY2UsIExpc3QgcmVzdWx0KSB7CisgICAgICBpZiAocmVzdWx0ID09IG51bGwpCisgICAgICAgIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICBJdGVyYXRvciBpdCA9IHNvdXJjZS5pdGVyYXRvcigpOworICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICBVbmljb2RlUHJvcGVydHkuYWRkVW5pcXVlKHJlbWFwKChTdHJpbmcpIGl0Lm5leHQoKSksIHJlc3VsdCk7CisgICAgICB9CisgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvKgorICAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICB0cnkgeworICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTaG91bGQgbmV2ZXIgaGFwcGVuLiIpOworICAgICB9CisgICAgIH0KKyAgICAgKi8KKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTWFwRmlsdGVyIGV4dGVuZHMgU3RyaW5nRmlsdGVyIHsKKyAgICBwcml2YXRlIE1hcCB2YWx1ZU1hcDsKKworICAgIHB1YmxpYyBNYXBGaWx0ZXIoTWFwIHZhbHVlTWFwKSB7CisgICAgICB0aGlzLnZhbHVlTWFwID0gdmFsdWVNYXA7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZW1hcChTdHJpbmcgb3JpZ2luYWwpIHsKKyAgICAgIE9iamVjdCBjaGFuZ2VkID0gdmFsdWVNYXAuZ2V0KG9yaWdpbmFsKTsKKyAgICAgIHJldHVybiBjaGFuZ2VkID09IG51bGwgPyBvcmlnaW5hbCA6IChTdHJpbmcpIGNoYW5nZWQ7CisgICAgfQorCisgICAgcHVibGljIE1hcCBnZXRNYXAoKSB7CisgICAgICByZXR1cm4gdmFsdWVNYXA7CisgICAgfQorICB9CisKKyAgcHVibGljIGludGVyZmFjZSBQYXR0ZXJuTWF0Y2hlciBleHRlbmRzIE9iamVjdE1hdGNoZXIgeworICAgIHB1YmxpYyBQYXR0ZXJuTWF0Y2hlciBzZXQoU3RyaW5nIHBhdHRlcm4pOworICB9CisKKyAgcHVibGljIHN0YXRpYyBjbGFzcyBJbnZlcnNlUGF0dGVybk1hdGNoZXIgZXh0ZW5kcyBJbnZlcnNlTWF0Y2hlciBpbXBsZW1lbnRzIFBhdHRlcm5NYXRjaGVyIHsKKyAgICBQYXR0ZXJuTWF0Y2hlciBvdGhlcjsKKworICAgIHB1YmxpYyBQYXR0ZXJuTWF0Y2hlciBzZXQoUGF0dGVybk1hdGNoZXIgdG9JbnZlcnNlKSB7CisgICAgICBvdGhlciA9IHRvSW52ZXJzZTsKKyAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXMoT2JqZWN0IHZhbHVlKSB7CisgICAgICByZXR1cm4gIW90aGVyLm1hdGNoZXModmFsdWUpOworICAgIH0KKworICAgIHB1YmxpYyBQYXR0ZXJuTWF0Y2hlciBzZXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgIG90aGVyLnNldChwYXR0ZXJuKTsKKyAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2ltcGxlTWF0Y2hlciBpbXBsZW1lbnRzIFBhdHRlcm5NYXRjaGVyIHsKKyAgICBDb21wYXJhdG9yIGNvbXBhcmF0b3I7CisKKyAgICBTdHJpbmcgcGF0dGVybjsKKworICAgIHB1YmxpYyBTaW1wbGVNYXRjaGVyKFN0cmluZyBwYXR0ZXJuLCBDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXMoT2JqZWN0IHZhbHVlKSB7CisgICAgICBpZiAoY29tcGFyYXRvciA9PSBudWxsKQorICAgICAgICByZXR1cm4gcGF0dGVybi5lcXVhbHModmFsdWUpOworICAgICAgcmV0dXJuIGNvbXBhcmF0b3IuY29tcGFyZShwYXR0ZXJuLCB2YWx1ZSkgPT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgUGF0dGVybk1hdGNoZXIgc2V0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICB9CisKKyAgcHVibGljIHN0YXRpYyBjbGFzcyBSZWdleE1hdGNoZXIgaW1wbGVtZW50cyBVbmljb2RlUHJvcGVydHkuUGF0dGVybk1hdGNoZXIgeworICAgIHByaXZhdGUgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXIgbWF0Y2hlcjsKKworICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHkuUGF0dGVybk1hdGNoZXIgc2V0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICBtYXRjaGVyID0gUGF0dGVybi5jb21waWxlKHBhdHRlcm4pLm1hdGNoZXIoIiIpOworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlcyhPYmplY3QgdmFsdWUpIHsKKyAgICAgIG1hdGNoZXIucmVzZXQodmFsdWUudG9TdHJpbmcoKSk7CisgICAgICByZXR1cm4gbWF0Y2hlci5tYXRjaGVzKCk7CisgICAgfQorICB9CisKKyAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBCYXNlUHJvcGVydHkgZXh0ZW5kcyBVbmljb2RlUHJvcGVydHkgeworICAgIHByb3RlY3RlZCBMaXN0IHByb3BlcnR5QWxpYXNlcyA9IG5ldyBBcnJheUxpc3QoMSk7CisKKyAgICBwcm90ZWN0ZWQgTWFwIHRvVmFsdWVBbGlhc2VzOworCisgICAgcHJvdGVjdGVkIFN0cmluZyB2ZXJzaW9uOworCisgICAgcHVibGljIEJhc2VQcm9wZXJ0eSBzZXRNYWluKFN0cmluZyBhbGlhcywgU3RyaW5nIHNob3J0QWxpYXMsIGludCBwcm9wZXJ0eVR5cGUsIFN0cmluZyB2ZXJzaW9uKSB7CisgICAgICBzZXROYW1lKGFsaWFzKTsKKyAgICAgIHNldFR5cGUocHJvcGVydHlUeXBlKTsKKyAgICAgIHByb3BlcnR5QWxpYXNlcy5hZGQoc2hvcnRBbGlhcyk7CisgICAgICBwcm9wZXJ0eUFsaWFzZXMuYWRkKGFsaWFzKTsKKyAgICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb247CisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIF9nZXRWZXJzaW9uKCkgeworICAgICAgcmV0dXJuIHZlcnNpb247CisgICAgfQorCisgICAgcHVibGljIExpc3QgX2dldE5hbWVBbGlhc2VzKExpc3QgcmVzdWx0KSB7CisgICAgICBhZGRBbGxVbmlxdWUocHJvcGVydHlBbGlhc2VzLCByZXN1bHQpOworICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFzZVByb3BlcnR5IGFkZFZhbHVlQWxpYXNlcyhTdHJpbmdbXVtdIHZhbHVlQW5kQWx0ZXJuYXRlcywgYm9vbGVhbiBlcnJvcklmQ2FudCkgeworICAgICAgaWYgKHRvVmFsdWVBbGlhc2VzID09IG51bGwpCisgICAgICAgIF9maXhWYWx1ZUFsaWFzZXMoKTsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVBbmRBbHRlcm5hdGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgdmFsdWVBbmRBbHRlcm5hdGVzWzBdLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgYWRkVmFsdWVBbGlhcyh2YWx1ZUFuZEFsdGVybmF0ZXNbaV1bMF0sIHZhbHVlQW5kQWx0ZXJuYXRlc1tpXVtqXSwgZXJyb3JJZkNhbnQpOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRWYWx1ZUFsaWFzKFN0cmluZyB2YWx1ZSwgU3RyaW5nIHZhbHVlQWxpYXMsIGJvb2xlYW4gZXJyb3JJZkNhbnQpIHsKKyAgICAgIExpc3QgcmVzdWx0ID0gKExpc3QpIHRvVmFsdWVBbGlhc2VzLmdldCh2YWx1ZSk7CisgICAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgIWVycm9ySWZDYW50KQorICAgICAgICByZXR1cm47CisgICAgICBhZGRVbmlxdWUodmFsdWUsIHJlc3VsdCk7CisgICAgICBhZGRVbmlxdWUodmFsdWVBbGlhcywgcmVzdWx0KTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgTGlzdCBfZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzLCBMaXN0IHJlc3VsdCkgeworICAgICAgaWYgKHRvVmFsdWVBbGlhc2VzID09IG51bGwpCisgICAgICAgIF9maXhWYWx1ZUFsaWFzZXMoKTsKKyAgICAgIExpc3QgYSA9IChMaXN0KSB0b1ZhbHVlQWxpYXNlcy5nZXQodmFsdWVBbGlhcyk7CisgICAgICBpZiAoYSAhPSBudWxsKQorICAgICAgICBhZGRBbGxVbmlxdWUoYSwgcmVzdWx0KTsKKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgX2ZpeFZhbHVlQWxpYXNlcygpIHsKKyAgICAgIGlmICh0b1ZhbHVlQWxpYXNlcyA9PSBudWxsKQorICAgICAgICB0b1ZhbHVlQWxpYXNlcyA9IG5ldyBIYXNoTWFwKDEpOworICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGdldEF2YWlsYWJsZVZhbHVlcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gaXQubmV4dCgpOworICAgICAgICBMaXN0IHJlc3VsdDsKKyAgICAgICAgX2Vuc3VyZVZhbHVlSW5BbGlhc2VzKHZhbHVlKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBfZW5zdXJlVmFsdWVJbkFsaWFzZXMoT2JqZWN0IHZhbHVlKSB7CisgICAgICBMaXN0IHJlc3VsdCA9IChMaXN0KSB0b1ZhbHVlQWxpYXNlcy5nZXQodmFsdWUpOworICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKQorICAgICAgICB0b1ZhbHVlQWxpYXNlcy5wdXQodmFsdWUsIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSkpOworICAgICAgYWRkVW5pcXVlKHZhbHVlLCByZXN1bHQpOworICAgIH0KKworICAgIHB1YmxpYyBCYXNlUHJvcGVydHkgc3dhcEZpcnN0MlZhbHVlQWxpYXNlcygpIHsKKyAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSB0b1ZhbHVlQWxpYXNlcy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgIExpc3QgbGlzdCA9IChMaXN0KSB0b1ZhbHVlQWxpYXNlcy5nZXQoaXQubmV4dCgpKTsKKyAgICAgICAgaWYgKGxpc3Quc2l6ZSgpIDwgMikKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgT2JqZWN0IGZpcnN0ID0gbGlzdC5nZXQoMCk7CisgICAgICAgIGxpc3Quc2V0KDAsIGxpc3QuZ2V0KDEpKTsKKyAgICAgICAgbGlzdC5zZXQoMSwgZmlyc3QpOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgIH0KKworICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIFNpbXBsZVByb3BlcnR5IGV4dGVuZHMgQmFzZVByb3BlcnR5IHsKKyAgICBMaXN0IHZhbHVlczsKKworICAgIHB1YmxpYyBTaW1wbGVQcm9wZXJ0eSBhZGROYW1lKFN0cmluZyBhbGlhcykgeworICAgICAgcHJvcGVydHlBbGlhc2VzLmFkZChhbGlhcyk7CisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU2ltcGxlUHJvcGVydHkgc2V0VmFsdWVzKFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICBfYWRkVG9WYWx1ZXModmFsdWVBbGlhcywgbnVsbCk7CisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU2ltcGxlUHJvcGVydHkgc2V0VmFsdWVzKFN0cmluZ1tdIHZhbHVlQWxpYXNlcywgU3RyaW5nW10gYWx0ZXJuYXRlVmFsdWVBbGlhc2VzKSB7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlQWxpYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAodmFsdWVBbGlhc2VzW2ldLmVxdWFscyhVTlVTRUQpKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBfYWRkVG9WYWx1ZXModmFsdWVBbGlhc2VzW2ldLCBhbHRlcm5hdGVWYWx1ZUFsaWFzZXMgIT0gbnVsbCA/IGFsdGVybmF0ZVZhbHVlQWxpYXNlc1tpXSA6IG51bGwpOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIFNpbXBsZVByb3BlcnR5IHNldFZhbHVlcyhMaXN0IHZhbHVlQWxpYXNlcykgeworICAgICAgdGhpcy52YWx1ZXMgPSBuZXcgQXJyYXlMaXN0KHZhbHVlQWxpYXNlcyk7CisgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gdGhpcy52YWx1ZXMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICBfYWRkVG9WYWx1ZXMoKFN0cmluZykgaXQubmV4dCgpLCBudWxsKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgIGlmICh2YWx1ZXMgPT0gbnVsbCkKKyAgICAgICAgX2ZpbGxWYWx1ZXMoKTsKKyAgICAgIHJlc3VsdC5hZGRBbGwodmFsdWVzKTsKKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgX2ZpbGxWYWx1ZXMoKSB7CisgICAgICBMaXN0IG5ld3ZhbHVlcyA9IChMaXN0KSBnZXRVbmljb2RlTWFwX2ludGVybmFsKCkuZ2V0QXZhaWxhYmxlVmFsdWVzKG5ldyBBcnJheUxpc3QoKSk7CisgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbmV3dmFsdWVzLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgX2FkZFRvVmFsdWVzKChTdHJpbmcpIGl0Lm5leHQoKSwgbnVsbCk7CisgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF9hZGRUb1ZhbHVlcyhTdHJpbmcgaXRlbSwgU3RyaW5nIGFsaWFzKSB7CisgICAgICBpZiAodmFsdWVzID09IG51bGwpCisgICAgICAgIHZhbHVlcyA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICBpZiAodG9WYWx1ZUFsaWFzZXMgPT0gbnVsbCkKKyAgICAgICAgX2ZpeFZhbHVlQWxpYXNlcygpOworICAgICAgYWRkVW5pcXVlKGl0ZW0sIHZhbHVlcyk7CisgICAgICBfZW5zdXJlVmFsdWVJbkFsaWFzZXMoaXRlbSk7CisgICAgICBhZGRWYWx1ZUFsaWFzKGl0ZW0sIGFsaWFzLCB0cnVlKTsKKyAgICB9CisgICAgLyogICAgICAgIHB1YmxpYyBTdHJpbmcgX2dldFZlcnNpb24oKSB7CisgICAgIHJldHVybiB2ZXJzaW9uOworICAgICB9CisgICAgICovCisgIH0KKworICBwdWJsaWMgc3RhdGljIGNsYXNzIFVuaWNvZGVNYXBQcm9wZXJ0eSBleHRlbmRzIEJhc2VQcm9wZXJ0eSB7CisgICAgLyoKKyAgICAgKiBFeGFtcGxlIG9mIHVzYWdlOgorICAgICAqIG5ldyBVbmljb2RlUHJvcGVydHkuVW5pY29kZU1hcFByb3BlcnR5KCkgeworICAgICB7CisgICAgIHVuaWNvZGVNYXAgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICB1bmljb2RlTWFwLnNldEVycm9yT25SZXNldCh0cnVlKTsKKyAgICAgdW5pY29kZU1hcC5wdXQoMHhELCAiQ1IiKTsKKyAgICAgdW5pY29kZU1hcC5wdXQoMHhBLCAiTEYiKTsKKyAgICAgVW5pY29kZVByb3BlcnR5IGNhdCA9IGdldFByb3BlcnR5KCJHZW5lcmFsX0NhdGVnb3J5Iik7CisgICAgIFVuaWNvZGVTZXQgdGVtcCA9IGNhdC5nZXRTZXQoIkxpbmVfU2VwYXJhdG9yIikKKyAgICAgLmFkZEFsbChjYXQuZ2V0U2V0KCJQYXJhZ3JhcGhfU2VwYXJhdG9yIikpCisgICAgIC5hZGRBbGwoY2F0LmdldFNldCgiQ29udHJvbCIpKQorICAgICAuYWRkQWxsKGNhdC5nZXRTZXQoIkZvcm1hdCIpKQorICAgICAucmVtb3ZlKDB4RCkucmVtb3ZlKDB4QSkucmVtb3ZlKDB4MjAwQykucmVtb3ZlKDB4MjAwRCk7CisgICAgIHVuaWNvZGVNYXAucHV0QWxsKHRlbXAsICJDb250cm9sIik7CisgICAgIFVuaWNvZGVTZXQgZ3JhcGhlbWVFeHRlbmQgPSBnZXRQcm9wZXJ0eSgiR3JhcGhlbWVfRXh0ZW5kIikuZ2V0U2V0KCJ0cnVlIik7CisgICAgIHVuaWNvZGVNYXAucHV0QWxsKGdyYXBoZW1lRXh0ZW5kLCJFeHRlbmQiKTsKKyAgICAgVW5pY29kZVByb3BlcnR5IGhhbmd1bCA9IGdldFByb3BlcnR5KCJIYW5ndWxfU3lsbGFibGVfVHlwZSIpOworICAgICB1bmljb2RlTWFwLnB1dEFsbChoYW5ndWwuZ2V0U2V0KCJMIiksIkwiKTsKKyAgICAgdW5pY29kZU1hcC5wdXRBbGwoaGFuZ3VsLmdldFNldCgiViIpLCJWIik7CisgICAgIHVuaWNvZGVNYXAucHV0QWxsKGhhbmd1bC5nZXRTZXQoIlQiKSwiVCIpOworICAgICB1bmljb2RlTWFwLnB1dEFsbChoYW5ndWwuZ2V0U2V0KCJMViIpLCJMViIpOworICAgICB1bmljb2RlTWFwLnB1dEFsbChoYW5ndWwuZ2V0U2V0KCJMVlQiKSwiTFZUIik7CisgICAgIHVuaWNvZGVNYXAuc2V0TWlzc2luZygiT3RoZXIiKTsKKyAgICAgfQorICAgICB9LnNldE1haW4oIkdyYXBoZW1lX0NsdXN0ZXJfQnJlYWsiLCAiR0NCIiwgVW5pY29kZVByb3BlcnR5LkVOVU1FUkFURUQsIHZlcnNpb24pCisgICAgICovCisgICAgcHJvdGVjdGVkIFVuaWNvZGVNYXAgdW5pY29kZU1hcDsKKworICAgIHB1YmxpYyBVbmljb2RlTWFwUHJvcGVydHkgc2V0KFVuaWNvZGVNYXAgbWFwKSB7CisgICAgICB1bmljb2RlTWFwID0gbWFwOworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBfZ2V0VmFsdWUoaW50IGNvZGVwb2ludCkgeworICAgICAgcmV0dXJuIChTdHJpbmcpIHVuaWNvZGVNYXAuZ2V0VmFsdWUoY29kZXBvaW50KTsKKyAgICB9CisKKyAgICAvKgkJcHJvdGVjdGVkIExpc3QgX2dldFZhbHVlQWxpYXNlcyhTdHJpbmcgdmFsdWVBbGlhcywgTGlzdCByZXN1bHQpIHsKKyAgICAgaWYgKCF1bmljb2RlTWFwLmdldEF2YWlsYWJsZVZhbHVlcygpLmNvbnRhaW5zKHZhbHVlQWxpYXMpKSByZXR1cm4gcmVzdWx0OworICAgICByZXN1bHQuYWRkKHZhbHVlQWxpYXMpOworICAgICByZXR1cm4gcmVzdWx0OyAvLyBubyBvdGhlciBhbGlhc2VzCisgICAgIH0KKyAgICAgKi9wcm90ZWN0ZWQgTGlzdCBfZ2V0QXZhaWxhYmxlVmFsdWVzKExpc3QgcmVzdWx0KSB7CisgICAgICByZXR1cm4gKExpc3QpIHVuaWNvZGVNYXAuZ2V0QXZhaWxhYmxlVmFsdWVzKHJlc3VsdCk7CisgICAgfQorICB9Cit9CisvLyNlbmRpZgorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlUHJvcGVydHlTb3VyY2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eVNvdXJjZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNWI2MmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlUHJvcGVydHlTb3VyY2UuamF2YQpAQCAtMCwwICsxLDMyMSBAQAorCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CisKKworLyoqCisgKiBQcm92aWRlcyBhIGdlbmVyYWwgaW50ZXJmYWNlIGZvciBVbmljb2RlIFByb3BlcnRpZXMsIGFuZAorICogZXh0cmFjdGluZyBzZXRzIGJhc2VkIG9uIHRob3NlIHZhbHVlcy4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisgICAgCisgICAgcHJvdGVjdGVkIFN0cmluZyBwcm9wZXJ0eUFsaWFzOworICAgIHByb3RlY3RlZCBpbnQgbmFtZUNob2ljZSA9IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkc7CisgICAgcHJvdGVjdGVkIFN0cmluZ0ZpbHRlciBmaWx0ZXIgPSBuZXcgU3RyaW5nRmlsdGVyKCk7CisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXRJdGVyYXRvciBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihuZXcgVW5pY29kZVNldCgwLDB4MTBGRkZGKSk7CisgICAgCisgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKGludCBjb2RlcG9pbnQpOworICAgIGFic3RyYWN0IHB1YmxpYyBTZXQgZ2V0QXZhaWxhYmxlUHJvcGVydHlBbGlhc2VzKFNldCByZXN1bHQpOworICAgIGFic3RyYWN0IHB1YmxpYyBTZXQgZ2V0QXZhaWxhYmxlUHJvcGVydHlWYWx1ZUFsaWFzZXMoU2V0IHJlc3VsdCk7CisKKyAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5QWxpYXMoaW50IG5hbWVDaG9pY2UpOworICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZUFsaWFzKFN0cmluZyB2YWx1ZUFsaWFzLCBpbnQgbmFtZUNob2ljZSk7CisgICAgCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5U291cmNlIHJlc3VsdCA9IChVbmljb2RlUHJvcGVydHlTb3VyY2Upc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIHJlc3VsdC5maWx0ZXIgPSAoU3RyaW5nRmlsdGVyKWZpbHRlci5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsgICAgICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlNob3VsZCBuZXZlciBoYXBwZW4uIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSBzZXRQcm9wZXJ0eUFsaWFzKFN0cmluZyBwcm9wZXJ0eUFsaWFzKSB7CisgICAgICAgIHRoaXMucHJvcGVydHlBbGlhcyA9IHByb3BlcnR5QWxpYXM7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5QWxpYXMoKSB7CisgICAgICAgIHJldHVybiBwcm9wZXJ0eUFsaWFzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gZXF1YWxzKGludCBjb2RlcG9pbnQsIFN0cmluZyBvdGhlcikgeworICAgICAgICBpZiAob3RoZXIubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgcmV0dXJuIGNvZGVwb2ludCA9PSBvdGhlci5jaGFyQXQoMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG90aGVyLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRQcm9wZXJ0eVNldChib29sZWFuIGNoYXJFcXVhbHNWYWx1ZSwgVW5pY29kZVNldCByZXN1bHQpeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIG1hdGNoSXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgd2hpbGUgKG1hdGNoSXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBmaWx0ZXIucmVtYXAoZ2V0UHJvcGVydHlWYWx1ZShtYXRjaEl0ZXJhdG9yLmNvZGVwb2ludCkpOworICAgICAgICAgICAgaWYgKGVxdWFscyhtYXRjaEl0ZXJhdG9yLmNvZGVwb2ludCwgdmFsdWUpID09IGNoYXJFcXVhbHNWYWx1ZSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQobWF0Y2hJdGVyYXRvci5jb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0UHJvcGVydHlTZXQoU3RyaW5nIHByb3BlcnR5VmFsdWUsIFVuaWNvZGVTZXQgcmVzdWx0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBtYXRjaEl0ZXJhdG9yLnJlc2V0KCk7CisgICAgICAgIHdoaWxlIChtYXRjaEl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZmlsdGVyLnJlbWFwKGdldFByb3BlcnR5VmFsdWUobWF0Y2hJdGVyYXRvci5jb2RlcG9pbnQpKTsKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlLmVxdWFscyh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKG1hdGNoSXRlcmF0b3IuY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRQcm9wZXJ0eVNldChNYXRjaGVyIG1hdGNoZXIsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgbWF0Y2hJdGVyYXRvci5yZXNldCgpOworICAgICAgICB3aGlsZSAobWF0Y2hJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGZpbHRlci5yZW1hcChnZXRQcm9wZXJ0eVZhbHVlKG1hdGNoSXRlcmF0b3IuY29kZXBvaW50KSk7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChtYXRjaGVyLm1hdGNoZXModmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChtYXRjaEl0ZXJhdG9yLmNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludGVyZmFjZSBNYXRjaGVyIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlcyhTdHJpbmcgdmFsdWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE5hbWVDaG9pY2UoKSB7CisgICAgICAgIHJldHVybiBuYW1lQ2hvaWNlOworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHlTb3VyY2Ugc2V0TmFtZUNob2ljZShpbnQgY2hvaWNlKSB7CisgICAgICAgIG5hbWVDaG9pY2UgPSBjaG9pY2U7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFN0cmluZ0ZpbHRlciBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVtYXAoU3RyaW5nIG9yaWdpbmFsKSB7CisgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWw7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU2hvdWxkIG5ldmVyIGhhcHBlbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1hcEZpbHRlciBleHRlbmRzIFN0cmluZ0ZpbHRlciB7CisgICAgICAgIE1hcCB2YWx1ZU1hcDsKKyAgICAgICAgcHVibGljIFN0cmluZyByZW1hcChTdHJpbmcgb3JpZ2luYWwpIHsKKyAgICAgICAgICAgIE9iamVjdCBjaGFuZ2VkID0gdmFsdWVNYXAuZ2V0KG9yaWdpbmFsKTsKKyAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID09IG51bGwgPyBvcmlnaW5hbCA6IChTdHJpbmcpIGNoYW5nZWQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE1hcCBnZXRNYXAoKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVNYXA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTWFwRmlsdGVyIHNldE1hcChNYXAgbWFwKSB7CisgICAgICAgICAgICB2YWx1ZU1hcCA9IG1hcDsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIHB1YmxpYyBjbGFzcyBJQ1UgZXh0ZW5kcyBVbmljb2RlUHJvcGVydHlTb3VyY2UgeworICAgICAgICBwcm90ZWN0ZWQgaW50IHByb3BFbnVtID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgICAgIHsKKyAgICAgICAgICAgIG1hdGNoSXRlcmF0b3IgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbXls6Q246XS1bOkRlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQ6XV0iKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHlTb3VyY2Ugc2V0UHJvcGVydHlBbGlhcyhTdHJpbmcgcHJvcGVydHlBbGlhcykgeworICAgICAgICAgICAgc3VwZXIuc2V0UHJvcGVydHlBbGlhcyhwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgIGludCBleHRyYVBvc2l0aW9uID0gRXh0cmFzLmluZGV4T2YocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICBpZiAoZXh0cmFQb3NpdGlvbiA+PSAwKSB7CisgICAgICAgICAgICAgICAgcHJvcEVudW0gPSBFWFRSQV9TVEFSVCArIGV4dHJhUG9zaXRpb247CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByb3BFbnVtID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eUVudW0ocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShpbnQgY29kZVBvaW50KSB7CisgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgaW50IGVudW1WYWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjb2RlUG9pbnQsIHByb3BFbnVtKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wRW51bSxlbnVtVmFsdWUsIChpbnQpbmFtZUNob2ljZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LkRPVUJMRV9MSU1JVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcoVUNoYXJhY3Rlci5nZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIC8vIFRPRE86IEZpeCBIQUNLIC0tIEFQSSBkZWZpY2llbnQKKyAgICAgICAgICAgIH0gZWxzZSBzd2l0Y2gocHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5BR0U6IHJldHVybiBVQ2hhcmFjdGVyLmdldEFnZShjb2RlUG9pbnQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9NSVJST1JJTkdfR0xZUEg6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIuZ2V0TWlycm9yKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBU0VfRk9MRElORzogcmV0dXJuIFVDaGFyYWN0ZXIuZm9sZENhc2UoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLHRydWUpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LklTT19DT01NRU5UOiByZXR1cm4gVUNoYXJhY3Rlci5nZXRJU09Db21tZW50KGNvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFX01BUFBJTkc6IHJldHVybiBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNILFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRTogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0TmFtZShjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9DQVNFX0ZPTERJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIuZm9sZENhc2UoY29kZVBvaW50LHRydWUpKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfTE9XRVJDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9VUFBFUkNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5USVRMRUNBU0VfTUFQUElORzogcmV0dXJuIFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLG51bGwpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOiByZXR1cm4gVUNoYXJhY3Rlci5nZXROYW1lMV8wKGNvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVVBQRVJDQVNFX01BUFBJTkc6IHJldHVybiBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKExvY2FsZS5FTkdMSVNILFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgY2FzZSBORkM6IHJldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgICAgICBjYXNlIE5GRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIGNhc2UgTkZLQzogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgICAgICBjYXNlIE5GS0Q6IHJldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGZpbmFsIExpc3QgRXh0cmFzID0gQXJyYXlzLmFzTGlzdChuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIk5GQyIsICJORkQiLCAiTkZLQyIsICJOS0ZEIgorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgICAgICBORkMgID0gMHg4MDAwLAorICAgICAgICAgICAgTkZEICA9IDB4ODAwMSwKKyAgICAgICAgICAgIE5GS0MgPSAweDgwMDIsCisgICAgICAgICAgICBORktEID0gMHg4MDAzLAorICAgICAgICAgICAgRVhUUkFfU1RBUlQgPSBORkMsCisgICAgICAgICAgICBFWFRSQV9MSU1JVCA9IE5GS0QrMTsKKworICAgICAgICBzdGF0aWMgZmluYWwgaW50W11bXSByYW5nZXMgPSB7CisgICAgICAgICAgICB7VVByb3BlcnR5LkJJTkFSWV9TVEFSVCwgICAgVVByb3BlcnR5LkJJTkFSWV9MSU1JVH0sCisgICAgICAgICAgICB7VVByb3BlcnR5LklOVF9TVEFSVCwgICAgICAgVVByb3BlcnR5LklOVF9MSU1JVH0sCisgICAgICAgICAgICB7VVByb3BlcnR5LkRPVUJMRV9TVEFSVCwgICAgVVByb3BlcnR5LkRPVUJMRV9MSU1JVH0sCisgICAgICAgICAgICB7VVByb3BlcnR5LlNUUklOR19TVEFSVCwgICAgVVByb3BlcnR5LlNUUklOR19MSU1JVH0sCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFNldCBnZXRBdmFpbGFibGVQcm9wZXJ0eUFsaWFzZXMoU2V0IHJlc3VsdCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gcmFuZ2VzW2ldWzBdOyBqIDwgcmFuZ2VzW2ldWzFdOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShqLCBuYW1lQ2hvaWNlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFkZEFsbChFeHRyYXMpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTZXQgZ2V0QXZhaWxhYmxlUHJvcGVydHlWYWx1ZUFsaWFzZXMoU2V0IHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgeworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgaW50IGVuZCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoZ2V0Rml4ZWRWYWx1ZUFsaWFzKG51bGwsIGksbmFtZUNob2ljZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChnZXRGaXhlZFZhbHVlQWxpYXMobnVsbCwgLTEsbmFtZUNob2ljZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB2YWx1ZUFsaWFzIG51bGwgaWYgdW51c2VkLgorICAgICAgICAgKiBAcGFyYW0gdmFsdWVFbnVtIC0xIGlmIHVudXNlZAorICAgICAgICAgKiBAcGFyYW0gbmFtZUNob2ljZQorICAgICAgICAgKiBAcmV0dXJuIHRoZSBhbGlhcworICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0Rml4ZWRWYWx1ZUFsaWFzKFN0cmluZyB2YWx1ZUFsaWFzLCBpbnQgdmFsdWVFbnVtLCBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAgICAgaWYgKHByb3BFbnVtID49IFVQcm9wZXJ0eS5TVFJJTkdfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIjxzdHJpbmc+IjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcEVudW0gPj0gVVByb3BlcnR5LkRPVUJMRV9TVEFSVCkgeworICAgICAgICAgICAgICAgIHJldHVybiAiPGRvdWJsZT4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZhbHVlQWxpYXMgIT0gbnVsbCAmJiAhdmFsdWVBbGlhcy5lcXVhbHMoIjxpbnRlZ2VyPiIpKSB7CisgICAgICAgICAgICAgICAgdmFsdWVFbnVtID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlRW51bShwcm9wRW51bSx2YWx1ZUFsaWFzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLCB2YWx1ZUVudW0sIG5hbWVDaG9pY2UpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgLy8gdHJ5IG90aGVyIG5hbWVjaG9pY2UKKyAgICAgICAgICAgIHJlc3VsdCA9IGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sdmFsdWVFbnVtLAorICAgICAgICAgICAgICAgIG5hbWVDaG9pY2UgPT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyA/IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLlNIT1JUIDogVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gIjxpbnRlZ2VyPiI7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZml4ZWRHZXRQcm9wZXJ0eVZhbHVlTmFtZShpbnQgcHJvcEVudW0sIGludCB2YWx1ZUVudW0sIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLHZhbHVlRW51bSxuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5QWxpYXMoaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IEVYVFJBX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKHByb3BFbnVtLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKUV4dHJhcy5nZXQocHJvcEVudW0tRVhUUkFfU1RBUlQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlQWxpYXMoU3RyaW5nIHZhbHVlQWxpYXMsIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0Rml4ZWRWYWx1ZUFsaWFzKHZhbHVlQWxpYXMsIC0xLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBUT0RPIGZpbGUgYnVnIG9uIGdldFByb3BlcnR5VmFsdWVOYW1lIGZvciBDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzCisKKyAgICBwdWJsaWMgU3RyaW5nRmlsdGVyIGdldEZpbHRlcigpIHsKKyAgICAgICAgcmV0dXJuIGZpbHRlcjsKKyAgICB9CisKKworICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHlTb3VyY2Ugc2V0RmlsdGVyKFN0cmluZ0ZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBhZGRBbGwoVW5pY29kZVNldEl0ZXJhdG9yIHNvdXJjZSwgVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgd2hpbGUgKHNvdXJjZS5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKHNvdXJjZS5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc291cmNlLnN0cmluZyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc291cmNlLmNvZGVwb2ludCwgc291cmNlLmNvZGVwb2ludEVuZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0TWF0Y2hTZXQoVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBhZGRBbGwobWF0Y2hJdGVyYXRvciwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWF0Y2hTZXQoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgbWF0Y2hJdGVyYXRvciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1V0aWxpdHlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9VdGlsaXR5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiYTU3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9VdGlsaXR5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMjMzIEBACisvLyMjaGVhZGVyCisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBNYXJjaCA4IDIwMDMKKyogU2luY2U6IElDVSAyLjYKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnZhbGlkRm9ybWF0RXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CeXRlQXJyYXlXcmFwcGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FzZUluc2Vuc2l0aXZlU3RyaW5nOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBUZXN0IG9mIGludGVybmFsIFV0aWxpdHkgY2xhc3MKKyAqLworcHVibGljIGNsYXNzIFV0aWxpdHlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVdGlsaXR5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5lc2NhcGUoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBpbnB1dCA9CisgICAgICAgICAgICAiU2NoXFx1MDBmNm5lcyBBdXRvOiBcXHUyMGFjIDExMjQwLlxcZlByaXZhdGVzIFplaWNoZW46IFxcVTAwMTAyMzQ1XFxlXFxjQ1xcbiBcXHgxYlxceHsyNjNhfSI7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIGV4cGVjdCA9IAorICAgICAgICAgICAgIlNjaFx1MDBGNm5lcyBBdXRvOiBcdTIwQUMgMTEyNDAuXHUwMDBDUHJpdmF0ZXMgWmVpY2hlbjogXHVEQkM4XHVERjQ1XHUwMDFCXHUwMDAzXDAxMiBcdTAwMUJcdTI2M0EiOworCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBVdGlsaXR5LnVuZXNjYXBlKGlucHV0KTsKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVdGlsaXR5LnVuZXNjYXBlKCkgcmV0dXJuZWQgIiArIHJlc3VsdCArICIsIGV4cC4gIiArIGV4cGVjdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEZvcm1hdCgpCisgICAgeworICAgICAgICBTdHJpbmcgZGF0YVtdID0geworICAgICAgICAgICAgInRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2ciLAorICAgICAgICAgICAgLy8gcmVzdWx0IG9mIHRoaXMgY29udmVyc2lvbiB3aWxsIGV4Y2VlZCB0aGUgb3JpZ2luYWwgbGVuZ3RoIGFuZAorICAgICAgICAgICAgLy8gY2F1c2UgYSBuZXdsaW5lIHRvIGJlIGluc2VydGVkCisgICAgICAgICAgICAidGVzdGluZyBzcGFjZSAsIHF1b3RhdGlvbnMgXCIiLAorICAgICAgICAgICAgInRlc3Rpbmcgd2VpcmQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIFx1ZDgwMFx1ZGMwMCIsCisgICAgICAgICAgICAidGVzdGluZyBjb250cm9sIGNoYXJhY3RlcnMgXHUwMDAxIGFuZCBsaW5lIGJyZWFraW5nISEgXG4gYXJlIHdlIGRvbmUgeWV0PyIKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdFtdID0geworICAgICAgICAgICAgIiAgICAgICAgXCJ0aGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nXCIiLAorICAgICAgICAgICAgIiAgICAgICAgXCJ0ZXN0aW5nIHNwYWNlICwgcXVvdGF0aW9ucyBcXDA0MlwiIiwKKyAgICAgICAgICAgICIgICAgICAgIFwidGVzdGluZyB3ZWlyZCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgXFx1RDgwMFxcdURDMDBcIiIsCisgICAgICAgICAgICAiICAgICAgICBcInRlc3RpbmcgY29udHJvbCBjaGFyYWN0ZXJzIFxcMDAxIGFuZCBsaW5lIGJyZWFraW5nISEgXFxuIGFyZSB3ZSBkb25lIHllXCIrIgorICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LkxJTkVfU0VQQVJBVE9SICsgIiAgICAgICAgXCJ0P1wiIgorICAgICAgICB9OworICAgICAgICBTdHJpbmcgcmVzdWx0MVtdID0geworICAgICAgICAgICAgIlwidGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZ1wiIiwKKyAgICAgICAgICAgICJcInRlc3Rpbmcgc3BhY2UgLCBxdW90YXRpb25zIFxcMDQyXCIiLAorICAgICAgICAgICAgIlwidGVzdGluZyB3ZWlyZCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgXFx1RDgwMFxcdURDMDBcIiIsCisgICAgICAgICAgICAiXCJ0ZXN0aW5nIGNvbnRyb2wgY2hhcmFjdGVycyBcXDAwMSBhbmQgbGluZSBicmVha2luZyEhIFxcbiBhcmUgd2UgZG9uZSB5ZXQ/XCIiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdEZvclNvdXJjZShcIiIgKyBkYXRhW2ldICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2ldLCBVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShkYXRhW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQxRm9yU291cmNlKFwiIiArIGRhdGFbaV0gKyAiXCIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxW2ldLCBVdGlsaXR5LmZvcm1hdDFGb3JTb3VyY2UoZGF0YVtpXSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RIaWdoQml0KCkKKyAgICB7CisgICAgICAgIGludCBkYXRhW10gPSB7LTEsIC0xMjc2LCAwLCAweEZGRkYsIDB4MTIzNH07CisgICAgICAgIGJ5dGUgcmVzdWx0W10gPSB7LTEsIC0xLCAtMSwgMTUsIDEyfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKFV0aWxpdHkuaGlnaEJpdChkYXRhW2ldKSAhPSByZXN1bHRbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogSGlnaGVzdCBiaXQgb2YgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoZGF0YVtpXSkgKyAiIHNob3VsZCBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgKyByZXN1bHRbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlVW5zaWduZWQoKQorICAgIHsKKyAgICAgICAgaW50IGRhdGFbXSA9IHswLCAxLCAweDhmZmZmZmZmLCAtMSwgSW50ZWdlci5NQVhfVkFMVUUsIAorICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIuTUlOX1ZBTFVFLCAyMzQyNDIzLCAtMjM0MjQyM307CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZGF0YS5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoZGF0YVtpXSwgZGF0YVtqXSkgCisgICAgICAgICAgICAgICAgICAgICE9IGNvbXBhcmVMb25nVW5zaWduZWQoZGF0YVtpXSwgZGF0YVtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFVuc2lnbmVkIGNvbXBhcmlzb24gZmFpbGVkIHdpdGggIiArIGRhdGFbaV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgZGF0YVtpICsgMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBpbmRlbmRzIHRvIHRlc3QgdGhlIHV0aWxpdHkgY2xhc3MgQnl0ZUFycmF5V3JhcHBlcgorICAgIC8vIFNlZW1zIHRoYXQgdGhlIGNsYXNzIGlzIHNvbWV3aGF0IGluY29tcGxldGUsIGZvciBleGFtcGxlCisgICAgLy8gICAgICAtIGdldEhhc2hDb2RlKE9iamVjdCkgaXMgd2VpcmQKKyAgICAvLyAgICAgIC0gUGF0dGVybk1hdGNoIGZlYXR1cmUoc2VhcmNoIHBhcnQgb2YgYXJyYXkgd2l0aGluIHRoZSB3aG9sZSBvbmUpIGxhY2tzCisgICAgcHVibGljIHZvaWQgVGVzdEJ5dGVBcnJheVdyYXBwZXIoKQorICAgIHsKKyAgICAgICAgYnl0ZVtdIGJhID0gezB4MDAsIDB4MDEsIDB4MDJ9OworICAgICAgICBieXRlW10gYmIgPSB7MHgwMCwgMHgwMSwgMHgwMiwgLTF9OworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgamF2YS5uaW8uQnl0ZUJ1ZmZlciBidWZmZXIgPSBqYXZhLm5pby5CeXRlQnVmZmVyLndyYXAoYmEpOworLy8jZWxzZQorLy8jIyAgICAgICAgY29tLmlibS5pY3UuaW1wbC5CeXRlQnVmZmVyIGJ1ZmZlciA9IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlci53cmFwKGJhKTsKKy8vI2VuZGlmCisgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIgeCA9IG5ldyBCeXRlQXJyYXlXcmFwcGVyKGJ1ZmZlcik7CisgICAgICAgIAorICAgICAgICBCeXRlQXJyYXlXcmFwcGVyIHkgPSBuZXcgQnl0ZUFycmF5V3JhcHBlcihiYSwgMyk7CisgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIgeiA9IG5ldyBCeXRlQXJyYXlXcmFwcGVyKGJiLCAzKTsKKworICAgICAgICAKKyAgICAgICAgaWYgKCF5LnRvU3RyaW5nKCkuZXF1YWxzKCIwMCAwMSAwMiIpKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0ZXN0IHRvU3RyaW5nIDogRmFpbGVkISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0IGVxdWFsaXR5CisgICAgICAgIGlmICgheC5lcXVhbHMoeSkgfHwgIXguZXF1YWxzKHopKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRlc3QgKG9wZXJhdG9yID09KTogRmFpbGVkISIpOworICAgICAgICBpZiAoeC5oYXNoQ29kZSgpIT15Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogaWRlbnRpY2FsIG9iamVjdHMgaGF2ZSBkaWZmZXJlbnQgaGFzaCBjb2Rlcy4iKTsKKworICAgICAgICAvLyB0ZXN0IG5vbi1lcXVhbGl0eQorICAgICAgICB5ID0gbmV3IEJ5dGVBcnJheVdyYXBwZXIoYmIsIDQpOworICAgICAgICBpZiAoeC5lcXVhbHMoeSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogdGVzdCAob3BlcmF0b3IgIT0pOiBGYWlsZWQhIik7CisKKyAgICAgICAgLy8gdGVzdCBzaWduIG9mIHVuZXF1YWwgY29tcGFyaXNvbgorICAgICAgICBpZiAoKHguY29tcGFyZVRvKHkpID4gMCkgIT0gKHkuY29tcGFyZVRvKHgpIDwgMCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb21wYXJpc29ucyBub3Qgb3Bwb3NpdGUgc2lnbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUxvbmdVbnNpZ25lZChpbnQgeCwgaW50IHkpCisgICAgeworICAgICAgICBsb25nIHgxID0geCAmIDB4RkZGRkZGRkZsOworICAgICAgICBsb25nIHkxID0geSAmIDB4RkZGRkZGRkZsOworICAgICAgICBpZiAoeDEgPCB5MSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHgxID4geTEpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZVNldCgpeworICAgICAgICBTdHJpbmdbXSBhcnJheSA9IG5ldyBTdHJpbmdbXXsiYSIsICJiIiwgImMiLCAie2RlfSJ9OworICAgICAgICBMaXN0IGxpc3QgPSBBcnJheXMuYXNMaXN0KGFycmF5KTsKKyAgICAgICAgU2V0IGFzZXQgPSBuZXcgSGFzaFNldChsaXN0KTsKKyAgICAgICAgbG9nbG4oIiAqKiogVGhlIHNvdXJjZSBzZXQncyBzaXplIGlzOiAiICsgYXNldC5zaXplKCkpOworICAgIC8vVGhlIHNpemUgcmVhZHMgNAorICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICBzZXQuYWRkQWxsKGFzZXQpOworICAgICAgICBsb2dsbigiICoqKiBBZnRlciBhZGRBbGwsIHRoZSBVbmljb2RlU2V0IHNpemUgaXM6ICIgKyBzZXQuc2l6ZSgpKTsKKyAgICAvL1RoZSBzaXplIHNob3VsZCBhbHNvIHJlYWQgNCwgYnV0IDAgaXMgc2VlbiBpbnN0ZWFkCisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QXNzZXJ0KCl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBc3NlcnQuYXNzcnQoZmFsc2UpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFzc2VydC5hc3NydChmYWxzZSkiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChlLmdldE1lc3NhZ2UoKS5lcXVhbHMoImFzc2VydCBmYWlsZWQiKSkgeworICAgICAgICAgICAgCWxvZ2xuKCJBc3NlcnQuYXNzcnQoZmFsc2UpIHdvcmtzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQXNzZXJ0LmFzc3J0KGZhbHNlKSByZXR1cm5lZCAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBc3NlcnQuYXNzcnQoIkFzc2VydCBtZXNzYWdlIiwgZmFsc2UpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFzc2VydC5hc3NydChmYWxzZSkiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChlLmdldE1lc3NhZ2UoKS5lcXVhbHMoImFzc2VydCAnQXNzZXJ0IG1lc3NhZ2UnIGZhaWxlZCIpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFzc2VydC5hc3NydChmYWxzZSkgd29ya3MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBBc3NlcnQuYXNzcnQoZmFsc2UpIHJldHVybmVkICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEFzc2VydC5mYWlsKCJBc3NlcnQgbWVzc2FnZSIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFzc2VydC5mYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoZS5nZXRNZXNzYWdlKCkuZXF1YWxzKCJmYWlsdXJlICdBc3NlcnQgbWVzc2FnZSciKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBc3NlcnQuZmFpbCB3b3JrcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFzc2VydC5mYWlsIHJldHVybmVkICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEFzc2VydC5mYWlsKG5ldyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCkpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFzc2VydC5mYWlsIHdpdGggYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiQXNzZXJ0LmZhaWwgd29ya3MiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZUluc2Vuc2l0aXZlU3RyaW5nKCkgeworICAgIAlDYXNlSW5zZW5zaXRpdmVTdHJpbmcgc3RyMSA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoIlRoSXMgaXMgQSB0RXN0Iik7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBzdHIyID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZygiVGhpcyBJUyBhIHRlc3QiKTsKKyAgICAgICAgaWYgKCFzdHIxLmVxdWFscyhzdHIyKQorICAgICAgICAgICAgfHwgIXN0cjEudG9TdHJpbmcoKS5lcXVhbHMoc3RyMS5nZXRTdHJpbmcoKSkKKyAgICAgICAgICAgIHx8IHN0cjEudG9TdHJpbmcoKS5lcXVhbHMoc3RyMi50b1N0cmluZygpKSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHN0cjEoIitzdHIxKyIpICE9IHN0cjIoIitzdHIyKyIpIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WYXJpYWJsZVJlcGxhY2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WYXJpYWJsZVJlcGxhY2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFjYjFiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WYXJpYWJsZVJlcGxhY2VyLmphdmEKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDtpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCitwdWJsaWMgY2xhc3MgVmFyaWFibGVSZXBsYWNlciB7CisJLy8gc2ltcGxlIGltcGxlbWVudGF0aW9uIGZvciBub3cKKwlwcml2YXRlIENvbXBhcmF0b3IgYzsKKwlwcml2YXRlIE1hcCBtID0gbmV3IFRyZWVNYXAoQ29sbGVjdGlvbnMucmV2ZXJzZU9yZGVyKCkpOworCQorCS8vIFRPRE8gLSBmaXggdG8gZG8gc3RyZWFtcyBhbHNvLCBjbGVhbiB1cCBpbXBsZW1lbnRhdGlvbgorCQorCXB1YmxpYyBWYXJpYWJsZVJlcGxhY2VyIGFkZChTdHJpbmcgdmFyaWFibGUsIFN0cmluZyB2YWx1ZSkgeworCQltLnB1dCh2YXJpYWJsZSwgdmFsdWUpOworCQlyZXR1cm4gdGhpczsKKwl9CisJcHVibGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UpIHsKKwkJU3RyaW5nIG9sZFNvdXJjZTsKKwkJZG8geworCQkJb2xkU291cmNlID0gc291cmNlOworCQkJZm9yIChJdGVyYXRvciBpdCA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJCVN0cmluZyB2YXJpYWJsZSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKwkJCQlTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSBtLmdldCh2YXJpYWJsZSk7CisJCQkJc291cmNlID0gcmVwbGFjZUFsbChzb3VyY2UsIHZhcmlhYmxlLCB2YWx1ZSk7CisJCQl9CisJCX0gd2hpbGUgKCFzb3VyY2UuZXF1YWxzKG9sZFNvdXJjZSkpOworCQlyZXR1cm4gc291cmNlOworCX0KKwlwdWJsaWMgU3RyaW5nIHJlcGxhY2VBbGwoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlKSB7CisJCXdoaWxlICh0cnVlKSB7CisJCQlpbnQgcG9zID0gc291cmNlLmluZGV4T2Yoa2V5KTsKKwkJCWlmIChwb3MgPCAwKSByZXR1cm4gc291cmNlOworCQkJc291cmNlID0gc291cmNlLnN1YnN0cmluZygwLHBvcykgKyB2YWx1ZSArIHNvdXJjZS5zdWJzdHJpbmcocG9zK2tleS5sZW5ndGgoKSk7CisJCX0KKwl9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1ZlcnNpb25JbmZvVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmVyc2lvbkluZm9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmJiNmI3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1ZlcnNpb25JbmZvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzI1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFZlcnNpb25JbmZvCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMSBNYXJjaCAwMSAyMDAyCisqLworcHVibGljIGZpbmFsIGNsYXNzIFZlcnNpb25JbmZvVGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreyAKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvVGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKSAKKyAgICB7CisgICAgICAgIFZlcnNpb25JbmZvVGVzdCB0ZXN0ID0gbmV3IFZlcnNpb25JbmZvVGVzdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRlc3QuZXJybG4oIkVycm9yIHRlc3RpbmcgVmVyc2lvbkluZm8iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoYXQgdGhlIGluc3RhbnRpYXRpb24gd29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9JTlZBTElEX1NUUklOR18ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgCVZlcnNpb25JbmZvIHZlcnNpb24gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKElOU1RBTkNFX0lOVkFMSURfU1RSSU5HX1tpXSk7CisgICAgICAgICAgICAgICAgZXJybG4oIlwiIiArIElOU1RBTkNFX0lOVkFMSURfU1RSSU5HX1tpXSArIAorICAgICAgICAgICAgICAgICAgICAgICJcIiBzaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgCWxvZ2xuKCJQQVNTOiBcIiIgKyBJTlNUQU5DRV9JTlZBTElEX1NUUklOR19baV0gKyAKKyAgICAgICAgICAgICAgICAgICAgICAiXCIgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9WQUxJRF9TVFJJTkdfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAlWZXJzaW9uSW5mbyB2ZXJzaW9uID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoSU5TVEFOQ0VfVkFMSURfU1RSSU5HX1tpXSk7CisgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiXCIiICsgSU5TVEFOQ0VfVkFMSURfU1RSSU5HX1tpXSArIAorICAgICAgICAgICAgICAgICAgICAgICJcIiBzaG91bGQgcHJvZHVjZSBhbiB2YWxpZCB2ZXJzaW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9JTlZBTElEX0lOVF8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgCVZlcnNpb25JbmZvIHZlcnNpb24gPSBnZXRJbnN0YW5jZShJTlNUQU5DRV9JTlZBTElEX0lOVF9baV0pOworICAgICAgICAgICAgICAgIGVycmxuKCJpbnZhbGlkIGludHMgc2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAlsb2dsbigiUEFTUzogXCIiICsgSU5TVEFOQ0VfSU5WQUxJRF9JTlRfW2ldICsgCisgICAgICAgICAgICAgICAgCSAgIlwiIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5TVEFOQ0VfVkFMSURfSU5UXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAJVmVyc2lvbkluZm8gdmVyc2lvbiA9IGdldEluc3RhbmNlKElOU1RBTkNFX1ZBTElEX0lOVF9baV0pOworICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInZhbGlkIGludHMgc2hvdWxkIG5vdCBwcm9kdWNlIGFuIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhhdCB0aGUgY29tcGFyaXNvbiB3b3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9OT1RfRVFVQUxfU1RSSU5HXy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baV0pOworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjIgPSAKKyAgICAgICAgICAgICAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9OT1RfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHYxLmNvbXBhcmVUbyh2MikgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baV0gKyAiIHNob3VsZCBub3QgZXF1YWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9OT1RfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9OT1RfRVFVQUxfSU5UXy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSBnZXRJbnN0YW5jZShDT01QQVJFX05PVF9FUVVBTF9JTlRfW2ldKTsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYyID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHYxLmNvbXBhcmVUbyh2MikgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKENPTVBBUkVfTk9UX0VRVUFMX0lOVF9baV0gKyAiIHNob3VsZCBub3QgZXF1YWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tpICsgMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9FUVVBTF9TVFJJTkdfLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYxID0gCisgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShDT01QQVJFX0VRVUFMX1NUUklOR19baV0pOworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjIgPSAKKyAgICAgICAgICAgICAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2kgKyAxXSk7CisgICAgICAgICAgICBpZiAodjEuY29tcGFyZVRvKHYyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2ldICsgIiBzaG91bGQgZXF1YWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2kgKyAxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDT01QQVJFX0VRVUFMX0lOVF8ubGVuZ3RoIC0gMTsgaSArKykgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSBnZXRJbnN0YW5jZShDT01QQVJFX0VRVUFMX0lOVF9baV0pOworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjIgPSBnZXRJbnN0YW5jZShDT01QQVJFX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAgICAgICAgIGlmICh2MS5jb21wYXJlVG8odjIpICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihDT01QQVJFX0VRVUFMX0lOVF9baV0gKyAiIHNob3VsZCBlcXVhbCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBDT01QQVJFX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfTEVTU18ubGVuZ3RoIC0gMTsgaSArKykgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShDT01QQVJFX0xFU1NfW2ldKTsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYyID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9MRVNTX1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHYxLmNvbXBhcmVUbyh2MikgPj0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKENPTVBBUkVfTEVTU19baV0gKyAiIHNob3VsZCBiZSBsZXNzIHRoYW4gIiArIAorICAgICAgICAgICAgICAgICAgICAgIENPTVBBUkVfTEVTU19baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh2Mi5jb21wYXJlVG8odjEpIDw9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihDT01QQVJFX0xFU1NfW2kgKyAxXSArICIgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9MRVNTX1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGF0IHRoZSBnZXR0ZXIgZnVuY3Rpb24gd29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0dGVyKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgR0VUX1NUUklOR18ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBWZXJzaW9uSW5mbyB2ID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoR0VUX1NUUklOR19baV0pOworICAgICAgICAgICAgaWYgKHYuZ2V0TWFqb3IoKSAhPSBHRVRfUkVTVUxUX1tpIDw8IDJdIHx8CisgICAgICAgICAgICAgICAgdi5nZXRNaW5vcigpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMV0gfHwKKyAgICAgICAgICAgICAgICB2LmdldE1pbGxpKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSB8fAorICAgICAgICAgICAgICAgIHYuZ2V0TWljcm8oKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDNdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oR0VUX1NUUklOR19baV0gKyAiIHNob3VsZCByZXR1cm4gbWFqb3I9IiArIAorICAgICAgICAgICAgICAgICAgICAgIEdFVF9SRVNVTFRfW2kgPDwgMl0gKyAiIG1pbm9yPSIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDFdICsgIiBtaWxsaT0iICsgCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSArICIgbWljcm89IiArCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAzXSk7ICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHYgPSBnZXRJbnN0YW5jZShHRVRfSU5UX1tpXSk7CisgICAgICAgICAgICBpZiAodi5nZXRNYWpvcigpICE9IEdFVF9SRVNVTFRfW2kgPDwgMl0gfHwKKyAgICAgICAgICAgICAgICB2LmdldE1pbm9yKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAxXSB8fAorICAgICAgICAgICAgICAgIHYuZ2V0TWlsbGkoKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDJdIHx8CisgICAgICAgICAgICAgICAgdi5nZXRNaWNybygpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgM10pIHsKKyAgICAgICAgICAgICAgICBlcnJsbihHRVRfU1RSSU5HX1tpXSArICIgc2hvdWxkIHJldHVybiBtYWpvcj0iICsgCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9baSA8PCAyXSArICIgbWlub3I9IiArIAorICAgICAgICAgICAgICAgICAgICAgIEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMV0gKyAiIG1pbGxpPSIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDJdICsgIiBtaWNybz0iICsKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDNdKTsgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdG9TdHJpbmcoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3R0b1N0cmluZygpIAorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUT1NUUklOR19TVFJJTkdfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKFRPU1RSSU5HX1NUUklOR19baV0pOworICAgICAgICAgICAgaWYgKCF2LnRvU3RyaW5nKCkuZXF1YWxzKFRPU1RSSU5HX1JFU1VMVF9baV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvU3RyaW5nKCkgZm9yICIgKyBUT1NUUklOR19TVFJJTkdfW2ldICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBzaG91bGQgcHJvZHVjZSAiICsgVE9TVFJJTkdfUkVTVUxUX1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ID0gZ2V0SW5zdGFuY2UoVE9TVFJJTkdfSU5UX1tpXSk7CisgICAgICAgICAgICBpZiAoIXYudG9TdHJpbmcoKS5lcXVhbHMoVE9TVFJJTkdfUkVTVUxUX1tpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9TdHJpbmcoKSBmb3IgIiArIFRPU1RSSU5HX0lOVF9baV0gKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIHNob3VsZCBwcm9kdWNlICIgKyBUT1NUUklOR19SRVNVTFRfW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBpbnQgYXJyYXkgdmVyc2lvbmluZm8gY3JlYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRJbnN0YW5jZShpbnQgZGF0YVtdKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChkYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShkYXRhWzBdKTsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoZGF0YVswXSwgZGF0YVsxXSk7CisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbM10pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBpbnN0YW5jZSBkYXRhCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOU1RBTkNFX0lOVkFMSURfU1RSSU5HX1tdID0geworICAgICAgICAiYSIsCisgICAgICAgICItMSIsCisgICAgICAgICItMS4wIiwKKyAgICAgICAgIi0xLjAuMCIsCisgICAgICAgICItMS4wLjAuMCIsCisgICAgICAgICIwLi0xIiwKKyAgICAgICAgIjAuMC4tMSIsCisgICAgICAgICIwLjAuMC4tMSIsCisgICAgICAgICIyNTYiLAorICAgICAgICAiMjU2LjAiLAorICAgICAgICAiMjU2LjAuMCIsCisgICAgICAgICIyNTYuMC4wLjAiLAorICAgICAgICAiMC4yNTYiLAorICAgICAgICAiMC4wLjI1NiIsCisgICAgICAgICIwLjAuMC4yNTYiLAorICAgICAgICAiMS4yLjMuNC41IgorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOU1RBTkNFX1ZBTElEX1NUUklOR19bXSA9IHsKKyAgICAgICAgIjI1NSIsCisgICAgICAgICIyNTUuMjU1IiwKKyAgICAgICAgIjI1NS4yNTUuMjU1IiwKKyAgICAgICAgIjI1NS4yNTUuMjU1LjI1NSIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlNUQU5DRV9JTlZBTElEX0lOVF9bXVtdID0geworICAgICAgICB7LTF9LAorICAgICAgICB7LTEsIDB9LAorICAgICAgICB7LTEsIDAsIDB9LAorICAgICAgICB7LTEsIDAsIDAsIDB9LAorICAgICAgICB7MCwgLTF9LAorICAgICAgICB7MCwgMCwgLTF9LAorICAgICAgICB7MCwgMCwgMCwgLTF9LAorICAgICAgICB7MjU2fSwKKyAgICAgICAgezI1NiwgMH0sCisgICAgICAgIHsyNTYsIDAsIDB9LAorICAgICAgICB7MjU2LCAwLCAwLCAwfSwKKyAgICAgICAgezAsIDI1Nn0sCisgICAgICAgIHswLCAwLCAyNTZ9LAorICAgICAgICB7MCwgMCwgMCwgMjU2fSwKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlNUQU5DRV9WQUxJRF9JTlRfW11bXSA9IHsKKyAgICAgICAgezI1NX0sCisgICAgICAgIHsyNTUsIDI1NX0sCisgICAgICAgIHsyNTUsIDI1NSwgMjU1fSwKKyAgICAgICAgezI1NSwgMjU1LCAyNTUsIDI1NX0KKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgY29tcGFyZSBkYXRhCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19bXSA9IHsKKyAgICAgICAgIjIuMC4wLjAiLCAiMy4wLjAuMCIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX05PVF9FUVVBTF9JTlRfW11bXSA9IHsKKyAgICAgICAgezIsIDAsIDAsIDB9LCB7MywgMCwgMCwgMH0KKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QQVJFX0VRVUFMX1NUUklOR19bXSA9IHsKKyAgICAgICAgIjIuMC4wLjAiLCAiMi4wLjAiLCAiMi4wIiwgIjIiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9FUVVBTF9JTlRfW11bXSA9IHsKKyAgICAgICAgezJ9LCB7MiwgMH0sIHsyLCAwLCAwfSwgezIsIDAsIDAsIDB9ICAgIAorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTVBBUkVfTEVTU19bXSA9IHsKKyAgICAgICAgIjAiLCAiMC4wLjAuMSIsICIwLjAuMSIsICIwLjEiLCAiMSIsICIyIiwgIjIuMSIsICIyLjEuMSIsICIyLjEuMS4xIgorICAgIH07CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBHZXR0ZXIgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBHRVRfU1RSSU5HX1tdID0geworICAgICAgICAiMCIsCisgICAgICAgICIxLjEiLAorICAgICAgICAiMi4xLjI1NSIsCisgICAgICAgICIzLjEuMjU1LjEwMCIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHRVRfSU5UX1tdW10gPSB7CisgICAgICAgIHswfSwKKyAgICAgICAgezEsIDF9LAorICAgICAgICB7MiwgMSwgMjU1fSwKKyAgICAgICAgezMsIDEsIDI1NSwgMTAwfQorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdFVF9SRVNVTFRfW10gPSB7CisgICAgICAgIDAsIDAsIDAsIDAsCisgICAgICAgIDEsIDEsIDAsIDAsCisgICAgICAgIDIsIDEsIDI1NSwgMCwKKyAgICAgICAgMywgMSwgMjU1LCAxMDAKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdG9TdHJpbmcgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUT1NUUklOR19TVFJJTkdfW10gPSB7CisgICAgICAgICIwIiwKKyAgICAgICAgIjEuMSIsCisgICAgICAgICIyLjEuMjU1IiwKKyAgICAgICAgIjMuMS4yNTUuMTAwIiAgICAKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT1NUUklOR19JTlRfW11bXSA9IHsKKyAgICAgICAgezB9LAorICAgICAgICB7MSwgMX0sCisgICAgICAgIHsyLCAxLCAyNTV9LAorICAgICAgICB7MywgMSwgMjU1LCAxMDB9CisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVE9TVFJJTkdfUkVTVUxUX1tdID0geworICAgICAgICAiMC4wLjAuMCIsCisgICAgICAgICIxLjEuMC4wIiwKKyAgICAgICAgIjIuMS4yNTUuMCIsCisgICAgICAgICIzLjEuMjU1LjEwMCIgICAgCisgICAgfTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WaXNpdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WaXNpdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JjZGEwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Zpc2l0b3IuamF2YQpAQCAtMCwwICsxLDEzMSBAQAorCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVmlzaXRvciB7CisgICAgCisgICAgcHVibGljIHZvaWQgZG9BdChPYmplY3QgaXRlbSkgeworICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIENvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIGRvQXQoKENvbGxlY3Rpb24pIGl0ZW0pOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIGRvQXQoKE1hcCkgaXRlbSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdFtdKSB7CisgICAgICAgICAgICBkb0F0KChPYmplY3RbXSkgaXRlbSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIFVuaWNvZGVTZXQpIHsKKyAgICAgICAgICAgIGRvQXQoKFVuaWNvZGVTZXQpIGl0ZW0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9TaW1wbGVBdChpdGVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgY291bnQoT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gKChDb2xsZWN0aW9uKSBpdGVtKS5zaXplKCk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICgoTWFwKSBpdGVtKS5zaXplKCk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdFtdKSB7CisgICAgICAgICAgICByZXR1cm4gKChPYmplY3RbXSkgaXRlbSkubGVuZ3RoOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBVbmljb2RlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gKChVbmljb2RlU2V0KSBpdGVtKS5zaXplKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGJveGluZworICAgIAorICAgIHB1YmxpYyB2b2lkIGRvQXQoaW50IG8pIHsKKyAgICAgICAgZG9TaW1wbGVBdChuZXcgSW50ZWdlcihvKSk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGRvQXQoZG91YmxlIG8pIHsKKyAgICAgICAgZG9TaW1wbGVBdChuZXcgRG91YmxlKG8pKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgZG9BdChjaGFyIG8pIHsKKyAgICAgICAgZG9TaW1wbGVBdChuZXcgQ2hhcmFjdGVyKG8pKTsKKyAgICB9CisgICAgCisgICAgLy8gZm9yIHN1YmNsYXNzaW5nCisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgZG9BdCAoQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIGlmIChjLnNpemUoKSA9PSAwKSBkb0JlZm9yZShjLCBudWxsKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIGJvb2xlYW4gZmlyc3QgPSB0cnVlOworICAgICAgICBPYmplY3QgbGFzdCA9IG51bGw7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKGZpcnN0KSB7CisgICAgICAgICAgICAgICAgZG9CZWZvcmUoYywgaXRlbSk7CisgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZG9CZXR3ZWVuKGMsIGxhc3QsIGl0ZW0pOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgIGRvQXQobGFzdD1pdGVtKTsKKyAgICAgICAgfQorICAgICAgICBkb0FmdGVyKGMsIGxhc3QpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGRvQXQgKE1hcCBjKSB7CisgICAgICAgIGRvQXQoYy5lbnRyeVNldCgpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBkb0F0IChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgaWYgKGMuc2l6ZSgpID09IDApIGRvQmVmb3JlKGMsIG51bGwpOworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGMpOworICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgT2JqZWN0IGxhc3QgPSBudWxsOworICAgICAgICBPYmplY3QgaXRlbTsKKyAgICAgICAgQ29kZVBvaW50UmFuZ2UgY3ByMCA9IG5ldyBDb2RlUG9pbnRSYW5nZSgpOworICAgICAgICBDb2RlUG9pbnRSYW5nZSBjcHIxID0gbmV3IENvZGVQb2ludFJhbmdlKCk7CisgICAgICAgIENvZGVQb2ludFJhbmdlIGNwcjsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKGl0Lm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgICAgICBpdGVtID0gaXQuc3RyaW5nOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjcHIgPSBsYXN0ID09IGNwcjAgPyBjcHIxIDogY3ByMDsgICAvLyBtYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcnJpZGUgbGFzdAorICAgICAgICAgICAgICAgIGNwci5jb2RlcG9pbnQgPSBpdC5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgY3ByLmNvZGVwb2ludEVuZCA9IGl0LmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgICAgICBpdGVtID0gY3ByOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWZpcnN0KSB7CisgICAgICAgICAgICAgICAgZG9CZWZvcmUoYywgaXRlbSk7CisgICAgICAgICAgICAgICAgZmlyc3QgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb0JldHdlZW4oYywgbGFzdCwgaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb0F0KGxhc3QgPSBpdGVtKTsKKyAgICAgICAgfQorICAgICAgICBkb0FmdGVyKGMsIGxhc3QpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBkb0F0IChPYmplY3RbXSBjKSB7CisgICAgICAgIGRvQmVmb3JlKGMsIGMubGVuZ3RoID09IDAgPyBudWxsIDogY1swXSk7CisgICAgICAgIE9iamVjdCBsYXN0ID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSBkb0JldHdlZW4oYywgbGFzdCwgY1tpXSk7CisgICAgICAgICAgICBkb0F0KGxhc3QgPSBjW2ldKTsKKyAgICAgICAgfQorICAgICAgICBkb0FmdGVyKGMsIGxhc3QpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvZGVQb2ludFJhbmdleworICAgICAgICBwdWJsaWMgaW50IGNvZGVwb2ludCwgY29kZXBvaW50RW5kOworICAgIH0KKyAgICAKKyAgICAvLyA9PT09PSBNVVNUIEJFIE9WRVJSSURFTiA9PT09PQorICAgIAorICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIGRvQmVmb3JlKE9iamVjdCBjb250YWluZXIsIE9iamVjdCBpdGVtKTsKKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgdm9pZCBkb0JldHdlZW4oT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGxhc3RJdGVtLCBPYmplY3QgbmV4dEl0ZW0pOworICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIGRvQWZ0ZXIoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGl0ZW0pOyAgIAorICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIGRvU2ltcGxlQXQoT2JqZWN0IG8pOworICAgIAorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1hFcXVpdmFsZW5jZUNsYXNzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9YRXF1aXZhbGVuY2VDbGFzcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ZDk4NGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9YRXF1aXZhbGVuY2VDbGFzcy5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworcHVibGljIGNsYXNzIFhFcXVpdmFsZW5jZUNsYXNzIHsKKwkKKwkvLyBxdWljayB0ZXN0CisJc3RhdGljIHB1YmxpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCQlYRXF1aXZhbGVuY2VDbGFzcyBmb28xID0gbmV3IFhFcXVpdmFsZW5jZUNsYXNzKCJOT05FIik7CisJCVN0cmluZ1tdW10gdGVzdHMgPSB7eyJiIiwiYTEifSwgeyJiIiwgImMifSwgeyJhMSIsICJjIn0sIHsiZCIsICJlIn0sIHsiZSIsICJmIn0sIHsiYyIsICJkIn19OworCQlmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIHRlc3RzW2ldWzBdICsgIiwgIiArIHRlc3RzW2ldWzFdKTsKKwkJCWZvbzEuYWRkKHRlc3RzW2ldWzBdLCB0ZXN0c1tpXVsxXSwgbmV3IEludGVnZXIoaSkpOworCQkJZm9yIChJdGVyYXRvciBpdCA9IGZvbzEuZ2V0RXhwbGljaXRJdGVtcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCQlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlx0IiArIGl0ZW0gICsgIjtcdCIgKyBmb28xLmdldFNhbXBsZShpdGVtKSArICI7XHQiICsgZm9vMS5nZXRFcXVpdmFsZW5jZXMoaXRlbSkpOworCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiXHRcdCIgKyBmb28xLmdldFJlYXNvbnMoaXRlbSwgZm9vMS5nZXRTYW1wbGUoaXRlbSkpKTsKKwkJCX0KKwkJfQorCX0KKwkKKwlwcml2YXRlIE1hcCB0b1BhcnRpdGlvblNldCA9IG5ldyBIYXNoTWFwKCk7CisJcHJpdmF0ZSBNYXAgb2JqX29ial9yZWFzb25zID0gbmV3IEhhc2hNYXAoKTsKKwlwcml2YXRlIE9iamVjdCBkZWZhdWx0UmVhc29uOworCQorCS8qKgorCSAqIGVtcHR5LCBhcyBpZiBqdXN0IGNyZWF0ZWQKKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MgY2xlYXIoT2JqZWN0IGRlZmF1bHRSZWFzb24pIHsKKwkJdG9QYXJ0aXRpb25TZXQuY2xlYXIoKTsKKwkJb2JqX29ial9yZWFzb25zLmNsZWFyKCk7CisJCXRoaXMuZGVmYXVsdFJlYXNvbiA9IGRlZmF1bHRSZWFzb247CisJCXJldHVybiB0aGlzOworCX0KKwkKKwkvKioKKwkgKiBDcmVhdGUgY2xhc3Mgd2l0aCBjb21wYXJhdG9yLCBhbmQgZGVmYXVsdCByZWFzb24uCisJICoKKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MoT2JqZWN0IGRlZmF1bHRSZWFzb24pIHsKKwkJdGhpcy5kZWZhdWx0UmVhc29uID0gZGVmYXVsdFJlYXNvbjsKKwl9CisJCisJLyoqCisJICogQWRkIHR3byBlcXVpdmFsZW50IGl0ZW1zLCB3aXRoIE5PX1JFQVNPTiBmb3IgdGhlIHJlYXNvbi4KKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MgYWRkKE9iamVjdCBhLCBPYmplY3QgYikgeworCQlyZXR1cm4gYWRkKGEsYixudWxsKTsKKwl9CisJCisJLyoqCisJICogQWRkIHR3byBlcXVpdmFsZW50IGl0ZW1zLCBwbHVzIGEgcmVhc29uLiBUaGUgcmVhc29uIGlzIG9ubHkgdXNlZCBmb3IgZ2V0UmVhc29ucworCSAqLworCXB1YmxpYyBYRXF1aXZhbGVuY2VDbGFzcyBhZGQoT2JqZWN0IGEsIE9iamVjdCBiLCBPYmplY3QgcmVhc29uKSB7CisJCWlmIChhLmVxdWFscyhiKSkgcmV0dXJuIHRoaXM7CisJCWlmIChyZWFzb24gPT0gbnVsbCkgcmVhc29uID0gZGVmYXVsdFJlYXNvbjsKKwkJYWRkUmVhc29uKGEsYixyZWFzb24pOworCQlhZGRSZWFzb24oYixhLHJlYXNvbik7CisJCVNldCBhUGFydGl0aW9uU2V0ID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGEpOworCQlTZXQgYlBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChiKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgeworCQkJaWYgKGJQYXJ0aXRpb25TZXQgPT0gbnVsbCkgeyAvLyBib3RoIG51bGwsIHNldCB1cCBiU2V0CisJCQkJYlBhcnRpdGlvblNldCA9IG5ldyBIYXNoU2V0KCk7CisJCQkJYlBhcnRpdGlvblNldC5hZGQoYik7CisJCQkJdG9QYXJ0aXRpb25TZXQucHV0KGIsIGJQYXJ0aXRpb25TZXQpOwkJCQkKKwkJCX0KKwkJCWJQYXJ0aXRpb25TZXQuYWRkKGEpOworCQkJdG9QYXJ0aXRpb25TZXQucHV0KGEsIGJQYXJ0aXRpb25TZXQpOwkJCQkKKwkJfSBlbHNlIGlmIChiUGFydGl0aW9uU2V0ID09IG51bGwpIHsgLy8gYVNldCBpcyBub3QgbnVsbCwgYlNldCBudWxsCisJCQlhUGFydGl0aW9uU2V0LmFkZChiKTsKKwkJCXRvUGFydGl0aW9uU2V0LnB1dChiLCBhUGFydGl0aW9uU2V0KTsJCQkJCQkJCisJCX0gZWxzZSBpZiAoYVBhcnRpdGlvblNldCAhPSBiUGFydGl0aW9uU2V0KSB7ICAvLyBib3RoIG5vbi1udWxsLCBub3QgZXF1YWwsIG1lcmdlLiAgRXF1YWxpdHkgY2hlY2sgb2sgaGVyZQorCQkJYVBhcnRpdGlvblNldC5hZGRBbGwoYlBhcnRpdGlvblNldCk7CisJCQkvLyByZW1hcCBldmVyeSB4IHRoYXQgaGFkIHggPT4gYlBhcnRpdGlvblNldAorCQkJZm9yIChJdGVyYXRvciBpdCA9IGJQYXJ0aXRpb25TZXQuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJCXRvUGFydGl0aW9uU2V0LnB1dChpdC5uZXh0KCksIGFQYXJ0aXRpb25TZXQpOwkKKwkJCX0KKwkJfQorCQlyZXR1cm4gdGhpczsKKwl9CisJCisJLyoqCisJICogQWRkIGFsbCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgb3RoZXIgY2xhc3MKKwkgKgorCSAqLworCXB1YmxpYyBYRXF1aXZhbGVuY2VDbGFzcyBhZGRBbGwoWEVxdWl2YWxlbmNlQ2xhc3Mgb3RoZXIpIHsKKwkJLy8gRm9yIG5vdywgZG9lcyB0aGUgc2ltcGxlLCBub3Qgb3B0aW1pemVkIHZlcnNpb24KKwkJZm9yIChJdGVyYXRvciBpdCA9IG90aGVyLm9ial9vYmpfcmVhc29ucy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3QgYSA9IGl0Lm5leHQoKTsKKwkJCU1hcCBvYmpfcmVhc29ucyA9IChNYXApIG90aGVyLm9ial9vYmpfcmVhc29ucy5nZXQoYSk7CisJCQlmb3IgKEl0ZXJhdG9yIGl0MiA9IG9ial9yZWFzb25zLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Mi5oYXNOZXh0KCk7KSB7CisJCQkJT2JqZWN0IGIgPSBpdDIubmV4dCgpOworCQkJCVNldCByZWFzb25zID0gKFNldCkgb2JqX3JlYXNvbnMuZ2V0KGIpOworCQkJCWZvciAoSXRlcmF0b3IgaXQzID0gcmVhc29ucy5pdGVyYXRvcigpOyBpdDMuaGFzTmV4dCgpOykgeworCQkJCQlPYmplY3QgcmVhc29uID0gaXQzLm5leHQoKTsKKwkJCQkJYWRkKGEsIGIsIHJlYXNvbik7CisJCQkJfQorCQkJfQorCQl9CisJCXJldHVybiB0aGlzOworCX0KKwkKKwkvKioKKwkgKiAKKwkgKi8KKwlwcml2YXRlIHZvaWQgYWRkUmVhc29uKE9iamVjdCBhLCBPYmplY3QgYiwgT2JqZWN0IHJlYXNvbikgeworCQlNYXAgb2JqX3JlYXNvbnMgPSAoTWFwKSBvYmpfb2JqX3JlYXNvbnMuZ2V0KGEpOworCQlpZiAob2JqX3JlYXNvbnMgPT0gbnVsbCkgb2JqX29ial9yZWFzb25zLnB1dChhLCBvYmpfcmVhc29ucyA9IG5ldyBIYXNoTWFwKCkpOworCQlTZXQgcmVhc29ucyA9IChTZXQpIG9ial9yZWFzb25zLmdldChiKTsKKwkJaWYgKHJlYXNvbnMgPT0gbnVsbCkgb2JqX3JlYXNvbnMucHV0KGIsIHJlYXNvbnMgPSBuZXcgSGFzaFNldCgpKTsKKwkJcmVhc29ucy5hZGQocmVhc29uKTsKKwl9CisKKwkvKioKKwkgKiBSZXR1cm5zIGEgc2V0IG9mIGFsbCB0aGUgZXhwbGljaXQgaXRlbXMgaW4gdGhlIGVxdWl2YWxlbmNlIHNldC4gKEFueSBub24tZXhwbGljaXQgaXRlbXMgb25seQorCSAqIGhhdmUgdGhlbXNlbHZlcyBhcyBlcXVpdmFsZW5jZXMuKQorCSAqCisJICovCisJcHVibGljIFNldCBnZXRFeHBsaWNpdEl0ZW1zKCkgeworCQlyZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHRvUGFydGl0aW9uU2V0LmtleVNldCgpKTsKKwl9CisJCisJLyoqCisJICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2V0IG9mIGFsbCB0aGUgZXF1aXZhbGVudCBvYmplY3RzCisJICoKKwkgKi8KKwlwdWJsaWMgU2V0IGdldEVxdWl2YWxlbmNlcyhPYmplY3QgYSkgeworCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgeyAvLyBtYW51ZmFjdHVyZSBhbiBlcXVpdmFsZW5jZQorCQkJYVBhcnRpdGlvblNldCA9IG5ldyBIYXNoU2V0KCk7CisJCQlhUGFydGl0aW9uU2V0LmFkZChhKTsgCisJCX0KKwkJcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChhUGFydGl0aW9uU2V0KTsKKwl9CisJCisJcHVibGljIFNldCBnZXRFcXVpdmFsZW5jZVNldHMoKSB7CisJCVNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworCQlmb3IgKEl0ZXJhdG9yIGl0ID0gdG9QYXJ0aXRpb25TZXQua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlTZXQgcGFydGl0aW9uID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGl0ZW0pOworCQkJcmVzdWx0LmFkZChDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQocGFydGl0aW9uKSk7CisJCX0KKwkJcmV0dXJuIHJlc3VsdDsJCisJfQorCS8qKgorCSAqIHJldHVybnMgdHJ1ZSBpZmYgYSBpcyBlcXVpdmFsZW50IHRvIGIgKG9yIGEuZXF1YWxzIGIpCisJICoKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0VxdWl2YWxlbnQoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisJCWlmIChhLmVxdWFscyhiKSkgcmV0dXJuIHRydWU7CisJCVNldCBhUGFydGl0aW9uU2V0ID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGEpOworCQlpZiAoYVBhcnRpdGlvblNldCA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisJCXJldHVybiBhUGFydGl0aW9uU2V0LmNvbnRhaW5zKGIpOworCX0KKwkKKwkvKioKKwkgKiBHZXRzIGEgc2FtcGxlIG9iamVjdCBpbiB0aGUgZXF1aXZhbGVuY2Ugc2V0IGZvciBhLiAKKwkgKgorCSAqLworCXB1YmxpYyBPYmplY3QgZ2V0U2FtcGxlKE9iamVjdCBhKSB7CisJCVNldCBhUGFydGl0aW9uU2V0ID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGEpOworCQlpZiAoYVBhcnRpdGlvblNldCA9PSBudWxsKSByZXR1cm4gYTsgLy8gc2luZ2xldG9uCisJCXJldHVybiBhUGFydGl0aW9uU2V0Lml0ZXJhdG9yKCkubmV4dCgpOworCX0KKwkKKwlwdWJsaWMgaW50ZXJmYWNlIEZpbHRlciB7CisJCWJvb2xlYW4gbWF0Y2hlcyhPYmplY3Qgbyk7CisJfQorCQorCXB1YmxpYyBPYmplY3QgZ2V0U2FtcGxlKE9iamVjdCBhLCBGaWx0ZXIgZikgeworCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgcmV0dXJuIGE7IC8vIHNpbmdsZXRvbgorCQlmb3IgKEl0ZXJhdG9yIGl0ID0gYVBhcnRpdGlvblNldC5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3Qgb2JqID0gaXQubmV4dCgpOworCQkJaWYgKGYubWF0Y2hlcyhvYmopKSByZXR1cm4gb2JqOworCQl9CisJCXJldHVybiBhOworCX0KKworCS8qKgorCSAqIGdldHMgdGhlIHNldCBvZiBhbGwgdGhlIHNhbXBsZXMsIG9uZSBmcm9tIGVhY2ggZXF1aXZhbGVuY2UgY2xhc3MuIAorCSAqCisJICovCisJcHVibGljIFNldCBnZXRTYW1wbGVzKCkgeworCQlTZXQgc2VlbkFscmVhZHkgPSBuZXcgSGFzaFNldCgpOworCQlTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKwkJZm9yIChJdGVyYXRvciBpdCA9IHRvUGFydGl0aW9uU2V0LmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJaWYgKHNlZW5BbHJlYWR5LmNvbnRhaW5zKGl0ZW0pKSBjb250aW51ZTsKKwkJCVNldCBwYXJ0aXRpb24gPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoaXRlbSk7CisJCQlyZXN1bHQuYWRkKHBhcnRpdGlvbi5pdGVyYXRvcigpLm5leHQoKSk7CisJCQlzZWVuQWxyZWFkeS5hZGRBbGwocGFydGl0aW9uKTsKKwkJfQorCQlyZXR1cm4gcmVzdWx0OworCX0KKwkKKworCS8qKgorCSAqIFJldHVybnMgYSBsaXN0IG9mIGxpc3RzLiBFYWNoIHN1Ymxpc3QgaXMgaW4gdGhlIGZvcm0gW3JlYXNvbnMsIG9iaiwgcmVhc29ucywgb2JqLC4uLiwgcmVhc29uc10KKwkgKiB3aGVyZSBlYWNoIHJlYXNvbnMgaXMgYSBzZXQgb2YgcmVhc29ucyB0byBnbyBmcm9tIG9uZSBvYmogdG8gdGhlIG5leHQuPGJyPgorCSAqIFJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBjb25uZWN0aW9uLgorCSAqLworCXB1YmxpYyBMaXN0IGdldFJlYXNvbnMoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisJCS8vIHVzZSBkdW1iIGFsZ29yaXRobSBmb3IgZ2V0dGluZyBzaG9ydGVzdCBwYXRoCisJCS8vIGRvbid0IGJvdGhlciB3aXRoIG9wdGltaXphdGlvbgorCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJU2V0IGJQYXJ0aXRpb25TZXQgPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoYik7CisJCQorCQkvLyBzZWUgaWYgdGhleSBjb25uZWN0CisJCWlmIChhUGFydGl0aW9uU2V0ID09IG51bGwgfHwgYlBhcnRpdGlvblNldCA9PSBudWxsIHx8IGFQYXJ0aXRpb25TZXQgIT0gYlBhcnRpdGlvblNldCB8fCBhLmVxdWFscyhiKSkgcmV0dXJuIG51bGw7CisJCQorCQlBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKwkJbGlzdC5hZGQoYSk7CisJCUFycmF5TGlzdCBsaXN0cyA9IG5ldyBBcnJheUxpc3QoKTsKKwkJbGlzdHMuYWRkKGxpc3QpOworCisJCS8vIHRoaXMgd2lsbCBjb250YWluIHRoZSByZXN1bHRzCisJCUxpc3QgZm91bmRMaXN0cyA9IG5ldyBBcnJheUxpc3QoKTsKKwkJU2V0IHNhd0xhc3RUaW1lID0gbmV3IEhhc2hTZXQoKTsKKwkJc2F3TGFzdFRpbWUuYWRkKGEpOworCQkKKwkJLy8gZWFjaCB0aW1lLCB3ZSBleHRlbmQgdGhlIGxpc3RzIGJ5IG9uZSAoYWRkaW5nIG11bHRpcGxlIG90aGVyIGxpc3RzKQorCQl3aGlsZSAoZm91bmRMaXN0cy5zaXplKCkgPT0gMCkgeworCQkJQXJyYXlMaXN0IGV4dGVuZGVkTGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKwkJCVNldCBzYXdUaGlzVGltZSA9IG5ldyBIYXNoU2V0KCk7CisJCQlmb3IgKEl0ZXJhdG9yIGl0ID0gbGlzdHMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJCUFycmF5TGlzdCBsaXN0YSA9IChBcnJheUxpc3QpIGl0Lm5leHQoKTsKKwkJCQlPYmplY3QgbGFzdCA9IGxpc3RhLmdldChsaXN0YS5zaXplKCktMSk7CisJCQkJTWFwIG9ial9yZWFzb25zID0gKE1hcCkgb2JqX29ial9yZWFzb25zLmdldChsYXN0KTsKKwkJCQlmb3IgKEl0ZXJhdG9yIGl0MiA9IG9ial9yZWFzb25zLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Mi5oYXNOZXh0KCk7KSB7CisJCQkJCU9iamVjdCBpdGVtID0gaXQyLm5leHQoKTsKKwkJCQkJaWYgKHNhd0xhc3RUaW1lLmNvbnRhaW5zKGl0ZW0pKSB7CisJCQkJCQljb250aW51ZTsgLy8gc2tpcCBzaW5jZSB3ZSBoYXZlIHNob3J0ZXIKKwkJCQkJfQorCQkJCQlzYXdUaGlzVGltZS5hZGQoaXRlbSk7CisJCQkJCVNldCByZWFzb25zID0gKFNldCkgb2JqX3JlYXNvbnMuZ2V0KGl0ZW0pOworCQkJCQlBcnJheUxpc3QgbGlzdGEyID0gKEFycmF5TGlzdClsaXN0YS5jbG9uZSgpOworCQkJCQlsaXN0YTIuYWRkKHJlYXNvbnMpOworCQkJCQlsaXN0YTIuYWRkKGl0ZW0pOworCQkJCQlleHRlbmRlZExpc3QuYWRkKGxpc3RhMik7CisJCQkJCWlmIChpdGVtLmVxdWFscyhiKSkgeworCQkJCQkJLy8gcmVtb3ZlIGZpcnN0IGFuZCBsYXN0CisJCQkJCQlBcnJheUxpc3QgZm91bmQgPSAoQXJyYXlMaXN0KWxpc3RhMi5jbG9uZSgpOworCQkJCQkJZm91bmQucmVtb3ZlKDApOworCQkJCQkJZm91bmQucmVtb3ZlKGZvdW5kLnNpemUoKS0xKTsKKwkJCQkJCWZvdW5kTGlzdHMuYWRkKGZvdW5kKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWxpc3RzID0gZXh0ZW5kZWRMaXN0OworCQkJc2F3TGFzdFRpbWUuYWRkQWxsKHNhd1RoaXNUaW1lKTsKKwkJfQorCQlyZXR1cm4gZm91bmRMaXN0czsKKwl9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvWEVxdWl2YWxlbmNlTWFwLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9YRXF1aXZhbGVuY2VNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWMwYzRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvWEVxdWl2YWxlbmNlTWFwLmphdmEKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworLyoqCisgKiBFdmVyeXRoaW5nIHRoYXQgbWFwcyB0byB0aGUgc2FtZSB2YWx1ZSBpcyBwYXJ0IG9mIHRoZSBzYW1lIGVxdWl2YWxlbmNlIGNsYXNzCisgKiBAYXV0aG9yIGRhdmlzCisgKgorICovCitwdWJsaWMgY2xhc3MgWEVxdWl2YWxlbmNlTWFwIHsKKwlIYXNoTWFwIHNvdXJjZV90YXJnZXQgPSBuZXcgSGFzaE1hcCgpOworCUhhc2hNYXAgdGFyZ2V0X3NvdXJjZVNldCA9IG5ldyBIYXNoTWFwKCk7CisJSGFzaE1hcCBzb3VyY2VfU2V0ID0gbmV3IEhhc2hNYXAoKTsKKwlwdWJsaWMgWEVxdWl2YWxlbmNlTWFwIGNsZWFyKCkgeworCQlzb3VyY2VfdGFyZ2V0LmNsZWFyKCk7CisJCXRhcmdldF9zb3VyY2VTZXQuY2xlYXIoKTsKKwkJc291cmNlX1NldC5jbGVhcigpOworCQlyZXR1cm4gdGhpczsKKwl9CisJcHVibGljIFhFcXVpdmFsZW5jZU1hcCBhZGQoT2JqZWN0IHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworCQlPYmplY3Qgb3RoZXJUYXJnZXQgPSBzb3VyY2VfdGFyZ2V0LmdldChzb3VyY2UpOworCQlpZiAob3RoZXJUYXJnZXQgIT0gbnVsbCkgeworCQkJaWYgKG90aGVyVGFyZ2V0LmVxdWFscyh0YXJnZXQpKSByZXR1cm4gdGhpczsKKwkJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlNhbWUgc291cmNlIG1hcHBpbmcgdG8gZGlmZmVyZW50IHRhcmdldHM6ICIKKwkJCQkJKyBzb3VyY2UgKyAiID0+ICIgKyBvdGhlclRhcmdldCArICIgJiAiICsgdGFyZ2V0KTsKKwkJfQorCQlzb3VyY2VfdGFyZ2V0LnB1dChzb3VyY2UsIHRhcmdldCk7CisJCVNldCBzID0gKFNldCkgdGFyZ2V0X3NvdXJjZVNldC5nZXQodGFyZ2V0KTsKKwkJaWYgKHMgPT0gbnVsbCkgdGFyZ2V0X3NvdXJjZVNldC5wdXQodGFyZ2V0LCBzID0gbmV3IEhhc2hTZXQoKSk7CisJCXMuYWRkKHNvdXJjZSk7CisJCXNvdXJjZV9TZXQucHV0KHNvdXJjZSwgcyk7CisJCXJldHVybiB0aGlzOworCX0KKwlwdWJsaWMgU2V0IGdldEVxdWl2YWxlbmNlcyAoT2JqZWN0IHNvdXJjZSkgeworCQlTZXQgcyA9IChTZXQpIHNvdXJjZV9TZXQuZ2V0KHNvdXJjZSk7CisJCWlmIChzID09IG51bGwpIHJldHVybiBudWxsOworCQlyZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHMpOworCX0KKwlwdWJsaWMgYm9vbGVhbiBhcmVFcXVpdmFsZW50IChPYmplY3Qgc291cmNlMSwgT2JqZWN0IHNvdXJjZTIpIHsKKwkJU2V0IHMgPSAoU2V0KSBzb3VyY2VfU2V0LmdldChzb3VyY2UxKTsKKwkJaWYgKHMgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworCQlyZXR1cm4gcy5jb250YWlucyhzb3VyY2UyKTsKKwl9CisJcHVibGljIE9iamVjdCBnZXRUYXJnZXQoT2JqZWN0IHNvdXJjZSkgeworCQlyZXR1cm4gc291cmNlX3RhcmdldC5nZXQoc291cmNlKTsKKwl9CisJcHVibGljIFNldCBnZXRTb3VyY2VzKE9iamVjdCB0YXJnZXQpIHsKKwkJU2V0IHMgPSAoU2V0KSB0YXJnZXRfc291cmNlU2V0LmdldCh0YXJnZXQpOworCQlyZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHMpOworCX0KKwlwdWJsaWMgSXRlcmF0b3IgaXRlcmF0b3IoKSB7CisJCU15SXRlcmF0b3IgcmVzdWx0ID0gbmV3IE15SXRlcmF0b3IoKTsKKwkJcmVzdWx0LnRhcmdldF9zb3VyY2VTZXRfaXRlcmF0b3IgPSB0YXJnZXRfc291cmNlU2V0LmtleVNldCgpLml0ZXJhdG9yKCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCXB1YmxpYyBpbnQgc2l6ZSgpIHsKKwkJcmV0dXJuIHRhcmdldF9zb3VyY2VTZXQuc2l6ZSgpOworCX0KKwlwcml2YXRlIGNsYXNzIE15SXRlcmF0b3IgaW1wbGVtZW50cyBJdGVyYXRvciB7CisJCXByaXZhdGUgSXRlcmF0b3IgdGFyZ2V0X3NvdXJjZVNldF9pdGVyYXRvcjsKKwkJcHVibGljIHZvaWQgcmVtb3ZlKCkgeworCQkJdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsKKwkJCXJldHVybiB0YXJnZXRfc291cmNlU2V0X2l0ZXJhdG9yLmhhc05leHQoKTsKKwkJfQorCQlwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisJCQlyZXR1cm4gZ2V0U291cmNlcyh0YXJnZXRfc291cmNlU2V0X2l0ZXJhdG9yLm5leHQoKSk7CisJCX0JCQorCX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9tYW5pZmVzdC5jbGRydXRpbC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvbWFuaWZlc3QuY2xkcnV0aWwuc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2U3ZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvbWFuaWZlc3QuY2xkcnV0aWwuc3R1YgpAQCAtMCwwICsxLDE0IEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NsYXNzLVBhdGg6IHV0aWxpdGllcy5qYXIKK01haW4tQ2xhc3M6IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwKKworTmFtZTogY29tL2libS9pY3UvCitTcGVjaWZpY2F0aW9uLVRpdGxlOiBVdGlsaXRpZXMgZm9yIENMRFIgCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDMuNAorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IFV0aWxpdGllcyBmb3IgQ0xEUgorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMy40LjAKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ6IGNvbS5pYm0KK0NvcHlyaWdodC1JbmZvOiBDb3B5cmlnaHQgKGMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitTZWFsZWQ6IGZhbHNlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWExMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YQpAQCAtMCwwICsxLDI3NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgMTUgMjAwMgorKiBTaW5jZTogSUNVIDIuNAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2w7CisKKy8qKgorICogQSBjb21tYW5kLWxpbmUgb3B0aW9uLiAgQSBVT3B0aW9uIHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhbiBvcHRpb24KKyAqIGFuZCB3aGV0aGVyIG9yIG5vdCBpdCB0YWtlcyBhbiBhcmd1bWVudC4gIEl0IGlzIGEgbXV0YWJsZSBvYmplY3QKKyAqIHRoYXQgbGF0ZXIgY29udGFpbnMgdGhlIG9wdGlvbiBhcmd1bWVudCwgaWYgYW55LCBhbmQgYSBib29sZWFuCisgKiBmbGFnIHN0YXRpbmcgd2hldGhlciB0aGUgb3B0aW9uIHdhcyBzZWVuIG9yIG5vdC4KKyAqCisgKiBUaGUgc3RhdGljIG1ldGhvZCBwYXJzZUFyZ3MoKSB0YWtlcyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUKKyAqIGFyZ3VtZW50cyBhbmQgYW4gYXJyYXkgb2YgVU9wdGlvbnMgYW5kIHBhcnNlcyB0aGUgY29tbWFuZC1saW5lCisgKiBhcmd1bWVudHMuCisgKgorICogVGhpcyBkZWxpYmVyYXRlbHkgcmVzZW1ibGVzIHRoZSBpY3U0YyBmaWxlIHVvcHRpb24uW2NoXS4KKyAqLworcHVibGljIGNsYXNzIFVPcHRpb24geworCisgICAgLy8gRGVsaWJlcmF0ZWQgcHVibGljIGRhdGEgbWVtYmVycworICAgIHB1YmxpYyBTdHJpbmcgIGxvbmdOYW1lOworICAgIHB1YmxpYyBTdHJpbmcgIHZhbHVlOworICAgIHB1YmxpYyBGbiAgICAgIG9wdGlvbkZuOworICAgIHB1YmxpYyBPYmplY3QgIGNvbnRleHQ7CisgICAgcHVibGljIGNoYXIgICAgc2hvcnROYW1lOworICAgIHB1YmxpYyBpbnQgICAgIGhhc0FyZzsKKyAgICBwdWJsaWMgYm9vbGVhbiBkb2VzT2NjdXI7CisKKyAgICAvLyBWYWx1ZXMgb2YgaGFzQXJnCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9fQVJHICAgICAgID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSRVFVSVJFU19BUkcgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9QVElPTkFMX0FSRyA9IDI7CisKKyAgICAvLyBBbmFsb2cgb2YgVU9wdGlvbkZuLiAgV2UgZG9uJ3QgcGFzcyBpbiB0aGUgY29udGV4dCBiZWNhdXNlIHRoZQorICAgIC8vIGZ1bmN0b3IgY2FuIGdldCBpdCBmcm9tIHRoZSBVT3B0aW9uLgorICAgIHB1YmxpYyBpbnRlcmZhY2UgRm4geworICAgICAgICBpbnQgaGFuZGxlKFVPcHRpb24gb3B0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVT3B0aW9uIHdpdGggdGhlIGdpdmVuIGF0dHJpYnV0ZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIGNyZWF0ZShTdHJpbmcgYUxvbmdOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGFTaG9ydE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoYXNBcmd1bWVudCkgeworICAgICAgICByZXR1cm4gbmV3IFVPcHRpb24oYUxvbmdOYW1lLCBhU2hvcnROYW1lLCBoYXNBcmd1bWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVU9wdGlvbiB3aXRoIHRoZSBnaXZlbiBhdHRyaWJ1dGVzLgorICAgICAqIFN5bm9ueW0gZm9yIGNyZWF0ZSgpLCBmb3IgQyBjb21wYXRpYmlsaXR5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBERUYoU3RyaW5nIGFMb25nTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYVNob3J0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoYXNBcmd1bWVudCkgeworICAgICAgICByZXR1cm4gY3JlYXRlKGFMb25nTmFtZSwgYVNob3J0TmFtZSwgaGFzQXJndW1lbnQpOworICAgIH0KKworICAgIC8vIFN0YW5kYXJkIGNhbm5lZCBvcHRpb25zLiAgVGhlc2UgY3JlYXRlIGEgbmV3IG9iamVjdCB3aGVuCisgICAgLy8gY2FsbGVkLiAgU2luY2UgdGhlIFVPcHRpb24gb2JqZWN0IGlzIG11dGFibGUsIHdlIGNhbm5vdCB1c2UKKyAgICAvLyBzdGF0aWMgZmluYWwgaW5zdGFuY2VzLgorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBIRUxQX0goKSAgICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoImhlbHAiLCAnaCcsIE5PX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gSEVMUF9RVUVTVElPTl9NQVJLKCkgeyByZXR1cm4gY3JlYXRlKCJoZWxwIiwgJz8nLCBOT19BUkcpOyB9CisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIFZFUkJPU0UoKSAgICAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgidmVyYm9zZSIsICd2JywgTk9fQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBRVUlFVCgpICAgICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoInF1aWV0IiwgJ3EnLCBOT19BUkcpOyB9CisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIFZFUlNJT04oKSAgICAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgidmVyc2lvbiIsICdWJywgTk9fQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBDT1BZUklHSFQoKSAgICAgICAgICB7IHJldHVybiBjcmVhdGUoImNvcHlyaWdodCIsICdjJywgTk9fQVJHKTsgfQorCisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIERFU1RESVIoKSAgICAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgiZGVzdGRpciIsICdkJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBTT1VSQ0VESVIoKSAgICAgICAgICB7IHJldHVybiBjcmVhdGUoInNvdXJjZWRpciIsICdzJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBFTkNPRElORygpICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoImVuY29kaW5nIiwgJ2UnLCBSRVFVSVJFU19BUkcpOyB9CisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIElDVURBVEFESVIoKSAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgiaWN1ZGF0YWRpciIsICdpJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBQQUNLQUdFX05BTUUoKSAgICAgICB7IHJldHVybiBjcmVhdGUoInBhY2thZ2UtbmFtZSIsICdwJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBCVU5ETEVfTkFNRSgpICAgICAgICB7IHJldHVybiBjcmVhdGUoImJ1bmRsZS1uYW1lIiwgJ2InLCBSRVFVSVJFU19BUkcpOyB9CisKKyAgICAvKioKKyAgICAgKiBKYXZhIENvbW1hbmQgbGluZSBhcmd1bWVudCBwYXJzZXIuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBhcmd2W10gY29tbWFuZCBsaW5lIGFuZCBhIGRlc2NyaXB0aW9uIG9mCisgICAgICogdGhlIHByb2dyYW0ncyBvcHRpb25zIGluIGZvcm0gb2YgYW4gYXJyYXkgb2YgVU9wdGlvbiBzdHJ1Y3R1cmVzLgorICAgICAqIEVhY2ggVU9wdGlvbiBkZWZpbmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0cmluZyBhbmQgYSBjaGFyYWN0ZXIpCisgICAgICogZm9yIG9wdGlvbnMgbGlrZSAiLS1mb28iIGFuZCAiLWYiLgorICAgICAqCisgICAgICogRWFjaCBvcHRpb24gaXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5vdCB0YWtlIGFuIGFyZ3VtZW50LAorICAgICAqIHJlcXVpcmVzIG9uZSwgb3Igb3B0aW9uYWxseSB0YWtlcyBvbmUuIFRoZSBhcmd1bWVudCBtYXkgZm9sbG93IGluCisgICAgICogdGhlIHNhbWUgYXJndltdIGVudHJ5IGZvciBzaG9ydCBvcHRpb25zLCBvciBpdCBtYXkgYWx3YXlzIGZvbGxvdworICAgICAqIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeS4KKyAgICAgKgorICAgICAqIEFuIGFyZ3VtZW50IGlzIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeSBmb3IgYm90aCBsb25nIGFuZCBzaG9ydCBuYW1lCisgICAgICogb3B0aW9ucywgZXhjZXB0IGl0IGlzIHRha2VuIGZyb20gZGlyZWN0bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgICAgICogaXRzIG93biBhcmd2W10gZW50cnkgaWYgdGhlcmUgYXJlIGNoYXJhY3RlcnMgZm9sbG93aW5nIHRoZSBvcHRpb24gbGV0dGVyLgorICAgICAqIEFuIGFyZ3VtZW50IGluIGl0cyBvd24gYXJndltdIGVudHJ5IG11c3Qgbm90IGJlZ2luIHdpdGggYSAnLScKKyAgICAgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0c2VsZi4gVGhlcmUgaXMgbm8gcmVzdHJpY3Rpb24gb2YgdGhlCisgICAgICogYXJndW1lbnQgZm9ybWF0IGlmIGl0IGlzIHBhcnQgb2YgdGhlIHNob3J0IG5hbWUgb3B0aW9ucydzIGFyZ3ZbXSBlbnRyeS4KKyAgICAgKgorICAgICAqIFRoZSBhcmd1bWVudCBpcyBzdG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogVU9wdGlvbiBlbnRyeSwgYW5kIHRoZSBkb2VzT2NjdXIgZmllbGQgaXMgc2V0IHRvIDEgaWYgdGhlIG9wdGlvbgorICAgICAqIGlzIGZvdW5kIGF0IGFsbC4KKyAgICAgKgorICAgICAqIFNob3J0IG5hbWUgb3B0aW9ucyB3aXRob3V0IGFyZ3VtZW50cyBjYW4gYmUgY29sbGFwc2VkIGludG8gYSBzaW5nbGUKKyAgICAgKiBhcmd2W10gZW50cnkuIEFmdGVyIGFuIG9wdGlvbiBsZXR0ZXIgdGFrZXMgYW4gYXJndW1lbnQsIGZvbGxvd2luZworICAgICAqIGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJndW1lbnQuCisgICAgICoKKyAgICAgKiBJZiB0aGUgc2FtZSBvcHRpb24gaXMgZm91bmQgc2V2ZXJhbCB0aW1lcywgdGhlbiB0aGUgbGFzdAorICAgICAqIGFyZ3VtZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEZvciBlYWNoIG9wdGlvbiwgYSBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkLiBUaGlzIGNvdWxkIGJlIHVzZWQKKyAgICAgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRpcGxlIHRpbWVzIGFuZCBhbGwgYXJndW1lbnRzIGFyZSB0bworICAgICAqIGJlIGNvbGxlY3RlZC4KKyAgICAgKgorICAgICAqIEFsbCBvcHRpb25zIGFyZSByZW1vdmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYuIElmIHRoZSBwYXJzZXIKKyAgICAgKiBpcyBzdWNjZXNzZnVsLCB0aGVuIGl0IHJldHVybnMgdGhlIG51bWJlciBvZiByZW1haW5pbmcgbm9uLW9wdGlvbgorICAgICAqIHN0cmluZ3MuICAoVW5saWtlIEMsIHRoZSBKYXZhIGFyZ3ZbXSBhcnJheSBkb2VzIE5PVCBjb250YWluCisgICAgICogdGhlIHByb2dyYW0gbmFtZSBpbiBhcmd2WzBdLikKKyAgICAgKgorICAgICAqIEFuIG9wdGlvbiAiLS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhpcworICAgICAqIHJlbWFpbnMgaW4gdGhlIGFyZ3ZbXSBhcnJheS4KKyAgICAgKgorICAgICAqIEFuIG9wdGlvbiBzdHJpbmcgIi0iIGFsb25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgorICAgICAqCisgICAgICogSWYgYW4gb3B0aW9uIGlzIG5vdCByZWNvZ25pemVkIG9yIGFuIGFyZ3VtZW50IG1pc3NpbmcsIHRoZW4KKyAgICAgKiB0aGUgcGFyc2VyIHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXggb2YgdGhlIGFyZ3ZbXSBlbnRyeQorICAgICAqIHdoZXJlIHRoZSBlcnJvciB3YXMgZGV0ZWN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJndiB0aGlzIHBhcmFtZXRlciBpcyBtb2RpZmllZAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgYXJndW1lbnQgaW4gYXJndltdIHRvIGV4YW1pbmUuICBNdXN0IGJlCisgICAgICogMC4uYXJndi5sZW5ndGgtMS4gIEFyZ3VtZW50cyBmcm9tIDAuLnN0YXJ0LTEgYXJlIGlnbm9yZWQuCisgICAgICogQHBhcmFtIG9wdGlvbnMgdGhpcyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgdW5wcm9jZXNzZWQgYXJndW1lbnRzIGluIGFyZ3ZbXSwgaW5jbHVkaW5nCisgICAgICogYXJndW1lbnRzIDAuLnN0YXJ0LTEuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VBcmdzKFN0cmluZyBhcmd2W10sIGludCBzdGFydCwgVU9wdGlvbiBvcHRpb25zW10pIHsKKyAgICAgICAgU3RyaW5nIGFyZzsKKyAgICAgICAgaW50IGk9c3RhcnQsIHJlbWFpbmluZz1zdGFydDsKKyAgICAgICAgY2hhciBjOworICAgICAgICBib29sZWFuIHN0b3BPcHRpb25zPWZhbHNlOworCisgICAgICAgIHdoaWxlKGk8YXJndi5sZW5ndGgpIHsKKyAgICAgICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICAgICAgaWYoIXN0b3BPcHRpb25zICYmIGFyZy5sZW5ndGgoKT4xICYmIGFyZy5jaGFyQXQoMCk9PSctJykgeworICAgICAgICAgICAgICAgIC8qIHByb2Nlc3MgYW4gb3B0aW9uICovCisgICAgICAgICAgICAgICAgYz1hcmcuY2hhckF0KDEpOworICAgICAgICAgICAgICAgIFVPcHRpb24gb3B0aW9uPW51bGw7CisgICAgICAgICAgICAgICAgYXJnPWFyZy5zdWJzdHJpbmcoMik7CisgICAgICAgICAgICAgICAgaWYoYz09Jy0nKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHByb2Nlc3MgYSBsb25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgICAgICBpZihhcmcubGVuZ3RoKCk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0b3AgcHJvY2Vzc2luZyBvcHRpb25zIGFmdGVyICItLSIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BPcHRpb25zPXRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWFyY2ggZm9yIHRoZSBvcHRpb24gc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0aW9ucy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbnNbal0ubG9uZ05hbWUgIT0gbnVsbCAmJiBhcmcuZXF1YWxzKG9wdGlvbnNbal0ubG9uZ05hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1vcHRpb25zW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb249PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBvcHRpb24gbWF0Y2hlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbmtub3duIG9wdGlvbiAiICsgYXJndltpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uZG9lc09jY3VyPXRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbi5oYXNBcmchPU5PX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYgYW55ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaSsxPGFyZ3YubGVuZ3RoICYmICEoYXJndltpKzFdLmxlbmd0aCgpPjEgJiYgYXJndltpKzFdLmNoYXJBdCgwKT09Jy0nKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKG9wdGlvbi5oYXNBcmc9PVJFUVVJUkVTX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGVyZSBpcyBubyBhcmd1bWVudCwgYnV0IG9uZSBpcyByZXF1aXJlZDogcmV0dXJuIHdpdGggZXJyb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk9wdGlvbiAiICsgYXJndltpXSArICIgbGFja3MgcmVxdWlyZWQgYXJndW1lbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIG9uZSBvciBtb3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc2VhcmNoIGZvciB0aGUgb3B0aW9uIGxldHRlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPG9wdGlvbnMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjPT1vcHRpb25zW2pdLnNob3J0TmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9uc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1hdGNoZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5rbm93biBvcHRpb24gJyIgKyBjICsgIicgaW4gIiArIGFyZ3ZbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRvZXNPY2N1cj10cnVlOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb24uaGFzQXJnIT1OT19BUkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwYXJzZSB0aGUgYXJndW1lbnQgZm9yIHRoZSBvcHRpb24sIGlmIGFueSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFyZy5sZW5ndGgoKSE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dpbmcgaW4gdGhlIHNhbWUgYXJndltdICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZT1hcmc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRvIG5vdCBwcm9jZXNzIHRoZSByZXN0IG9mIHRoaXMgYXJnIGFzIG9wdGlvbiBsZXR0ZXJzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihpKzE8YXJndi5sZW5ndGggJiYgIShhcmd2W2krMV0ubGVuZ3RoKCk+MSAmJiBhcmd2W2krMV0uY2hhckF0KDApPT0nLScpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFyZ3VtZW50IGluIHRoZSBuZXh0IGFyZ3ZbXSwgYW5kIHRoZXJlIGlzIG5vdCBhbiBvcHRpb24gaW4gdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlPWFyZ3ZbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBicmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93IHRoYXQgKmFyZz09MCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0aW9uLmhhc0FyZz09UkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBidXQgb25lIGlzIHJlcXVpcmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiT3B0aW9uIC0iICsgYyArICIgbGFja3MgcmVxdWlyZWQgYXJndW1lbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbmV4dCBvcHRpb24gbGV0dGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmcubGVuZ3RoKCk9PTApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgYz1hcmcuY2hhckF0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgYXJnPWFyZy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZihvcHRpb24hPW51bGwgJiYgb3B0aW9uLm9wdGlvbkZuIT1udWxsICYmIG9wdGlvbi5vcHRpb25Gbi5oYW5kbGUob3B0aW9uKTwwKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBvcHRpb24gZnVuY3Rpb24gd2FzIGNhbGxlZCBhbmQgcmV0dXJuZWQgYW4gZXJyb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk9wdGlvbiBoYW5kbGVyIGZhaWxlZCBmb3IgIiArIGFyZ3ZbaV0pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIGdvIHRvIG5leHQgYXJndltdICovCisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBtb3ZlIGEgbm9uLW9wdGlvbiB1cCBpbiBhcmd2W10gKi8KKyAgICAgICAgICAgICAgICBhcmd2W3JlbWFpbmluZysrXT1hcmc7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZW1haW5pbmc7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHRoZSBkZWZhdWx0IHRvIGJlIHNldCBpbiBhbiBvcHRpb24gbGlzdC4KKyAgICAgKiBAcGFyYW0gcworICAgICAqIEByZXR1cm4gdGhpcworICAgICAqL3B1YmxpYyBVT3B0aW9uIHNldERlZmF1bHQoU3RyaW5nIHMpIHsKKyAgICAgICAgdmFsdWUgPSBzOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW50IG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBwYXJzZUFyZ3MoU3RyaW5nIGFyZ3ZbXSwgVU9wdGlvbiBvcHRpb25zW10pIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlQXJncyhhcmd2LCAwLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVPcHRpb24oU3RyaW5nIGFMb25nTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgY2hhciBhU2hvcnROYW1lLAorICAgICAgICAgICAgICAgICAgICBpbnQgaGFzQXJndW1lbnQpIHsKKyAgICAgICAgbG9uZ05hbWUgPSBhTG9uZ05hbWU7CisgICAgICAgIHNob3J0TmFtZSA9IGFTaG9ydE5hbWU7CisgICAgICAgIGhhc0FyZyA9IGhhc0FyZ3VtZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93IGFuIGV4Y2VwdGlvbiBpbmRpY2F0aW5nIGEgc3ludGF4IGVycm9yLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgc3ludGF4RXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRXJyb3IgaW4gYXJndW1lbnQgbGlzdDogIiArIG1lc3NhZ2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L21iY3MvQklHNVRvb2wuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L21iY3MvQklHNVRvb2wuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDBlNjM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvbWJjcy9CSUc1VG9vbC5qYXZhCkBAIC0wLDAgKzEsMzI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEJJRzVUb29sCisgKgorICogICAgVGhpcyB0b29sIHByb2R1Y2VzIHRoZSBjaGFyYWN0ZXIgdXNhZ2UgZnJlcXVlbmN5IHN0YXRpc3RpY3MgZm9yIHRoZSBCaWc1CisgKiAgICBDaGluZXNlIGNoYXJzZXQsIGZvciB1c2UgYnkgdGhlIElDVSBjaGFyc2V0IGRldGVjdG9ycy4KKyAqCisgKiAgICB1c2FnZTogIGphdmEgQklHNVRvb2wgWy1kXSBbZGlyZWN0b3J5IHBhdGhdCisgKgorICogICAgICAgIC1kOiAgIFByb2R1Y2UgdGhlIGRhdGEgaW4gYSBmb3JtIHRvIGJlIGV4cG9ydGVkIHRvIHRoZSBJQ1UgaW1wbGVtZW50YXRpb24KKyAqICAgICAgICAgICAgICBEZWZhdWx0IGlzIHRvIHByb2R1Y2UgYW4gaW5mb3JtYXRpdmUgZHVtcC4KKyAqICAgICAgICAgICAgICAKKyAqICAgICAgICAtc2ppcyBEbyBTaGlmdF9KSVMuICBUaGUgc3RydWN0dXJlIG9mIHNqaXMgaXMgdmVyeSBzaW1pbGFyIHRvIEJpZzUuCisgKgorICogICAgICAgIGRpcmVjdG9yeSBwYXRoCisgKiAgICAgICAgICAgICAgU291cmNlIGRpcmVjdG9yeSBmb3IgdGhlIHRleHQgZmlsZXMgdG8gYmUgYW5hbHl6ZWQuCisgKiAgICAgICAgICAgICAgQWxsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG11c3QgYmUgaW4gdGhlIEJpZzUgZW5jb2RpbmcuCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY2hhcnNldGRldC5tYmNzOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworCitwdWJsaWMgY2xhc3MgQklHNVRvb2wgeworCisgICAgLy8gVGhlIGZpbGUgYnVmZmVyIGFuZCBmaWxlIGRhdGEgbGVuZ3RoIG5lZWQgdG8gYmUgb3V0IGluIGNsYXNzIG1lbWJlciB2YXJpYWJsZXMKKyAgICAvLyAgc28gdGhhdCB0aGUgY29kZSBsaWZ0ZWQgZnJvbSBjaGFyU2V0IGRldGVjdGlvbiBmb3Igc2Nhbm5pbmcgdGhlIG11bHRpLWJ5dGUgY2hhcnMKKyAgICAvLyAgY2FuIHNlZSB0aGVtIGNvbnZlbmllbnRseS4KKyAgICBieXRlIFtdICAgIGJ1ZiA9IG5ldyBieXRlWzEwMDAwMDBdOworICAgIGludCAgICAgICAgZmlsZVNpemU7CisKKyAgICBib29sZWFuICAgIG9wdGlvbl9kID0gZmFsc2U7ICAgIC8vIGRhdGEgb3B0aW9uLiAgUHJvZHVjZSBleHBvcnRhYmxlIGRhdGEKKyAgICBib29sZWFuICAgIG9wdGlvbl92ID0gdHJ1ZTsgICAgIC8vIHZlcmJvc2UgaW5mb3JtYWlvbmFsIG91dHB1dC4KKyAgICBib29sZWFuICAgIHNqaXMgICAgID0gZmFsc2U7ICAgIC8vIFRydWUgaWYgaW5wdXQgdGV4dCBmaWxlcyBhcmUgU2hpZnRfSklTIGVuY29kZWQuCisKKworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBCSUc1VG9vbCAgVGhpcyA9IG5ldyBCSUc1VG9vbCgpOworICAgICAgICBUaGlzLk1haW4oYXJncyk7CisgICAgfQorCisKKworICAgIHZvaWQgTWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIC8vCisgICAgICAgIC8vICAgQ29tbWFuZCBMaW5lIE9wdGlvbiBIYW5kbGluZworICAgICAgICAvLworICAgICAgICBTdHJpbmcgICAgIGRpck5hbWUgID0gbnVsbDsKKyAgICAgICAgZm9yIChpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGFyZ3NbaV0uZXF1YWxzKCItZCIpKSB7CisgICAgICAgICAgICAgICAgb3B0aW9uX2QgPSB0cnVlOworICAgICAgICAgICAgICAgIG9wdGlvbl92ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5lcXVhbHMoIi1zamlzIikpIHsKKyAgICAgICAgICAgICAgICBzamlzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzW2ldLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5yZWNvZ25pemVkIG9wdGlvbjogIiArIGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkaXJOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkaXJOYW1lID0gYXJnc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbnJlY29nbml6ZWQgb3B0aW9uOiAiICsgZGlyTmFtZSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkaXJOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGRpck5hbWUgPSAiLiI7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyAgVmVyaWZ5IHRoYXQgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkgZXhpc3RzLgorICAgICAgICAvLworICAgICAgICBGaWxlIGRpciA9IG5ldyBGaWxlKGRpck5hbWUpOworICAgICAgICBpZiAoZGlyLmlzRGlyZWN0b3J5KCkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiXCIiICsgZGlyTmFtZSArICJcIiBpcyBub3QgYSBkaXJlY3RvcnkiKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgfQorICAgICAgICBwcm9jZXNzRGlyKGRpcik7CisgICAgICAgIAorICAgIH0KKworICAgIC8vCisgICAgLy8gQ29sbGVjdCBzdGF0aXN0aWNzIGZyb20gYWxsIG9yZGluYXJ5IGZpbGVzIGluIGEgc3BlY2lmaWVkIGRpcmVjdG9yeS4KKyAgICAvLworICAgIHZvaWQgcHJvY2Vzc0RpcihGaWxlIGRpcikgeworICAgICAgICBpbnQgICAgICB0b3RhbE1iY3NDaGFycyAgPSAwOworICAgICAgICBIYXNoTWFwICBtID0gbmV3IEhhc2hNYXAoMTAwMDApOworICAgICAgICBpbnQgICAgICBpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihkaXIuZ2V0TmFtZSgpKTsKKyAgICAgICAgRmlsZVtdIGZpbGVzID0gZGlyLmxpc3RGaWxlcygpOworICAgICAgICBmb3IgKGk9MDsgaTxmaWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoZmlsZXNbaV0uaXNGaWxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGVTaXplID0gaXMucmVhZChidWYpOworICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmaWxlc1tpXS5nZXRQYXRoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBmaWxlU2l6ZSArICIgYnl0ZXMuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWRDaGFyIGljaGFyID0gbmV3IGl0ZXJhdGVkQ2hhcigpOworICAgICAgICAgICAgICAgICAgICBpbnQgZmlsZUNoYXJzICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBmaWxlTWJjc0NoYXJzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVycnMgICAgICAgICAgPSAwOworCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0Q2hhcihpY2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpY2hhci5lcnJvciA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUNoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlID4gMjU1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1iY3NDaGFycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsTWJjc0NoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlIDw9IDI1NSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtlZXAgb2NjdXJlbmNlIHN0YXRpc3RpY3MgZm9yIHRoZSBzaW5nbGUgYnl0ZSByYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gIEZyZXF1ZW5jeSBvZiBvY2N1cmVuY2Ugc3RhdGlzdGljcyBhcmUgYWNjdW11bGF0ZWQgaW4gYSBtYXAuCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAga2V5RWwgPSBuZXcgQ2hFbChpY2hhci5jaGFyVmFsdWUsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAgdmFsRWwgPSAoQ2hFbCltLmdldChrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsRWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucHV0KGtleUVsLCBrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsRWwgPSBrZXlFbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbEVsLm9jY3VyZW5jZXMrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZUNoYXJzICAgICArICIgQ2hhcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZU1iY3NDaGFycyArICIgbWJjcyBDaGFycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBlcnJzICAgICAgICAgICsgIiBlcnJvcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uOiIgKyBlKTsKKworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIFdlJ3ZlIHByb2Nlc3NlZCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMuCisgICAgICAgIC8vICAgICBzb3J0IGFuZCBkdW1wIG91dCB0aGUgZnJlcXVlbmN5IHN0YXRpc3RpY3MuCisgICAgICAgIC8vCisgICAgICAgIE9iamVjdCBbXSBlbmNvdW50ZXJlZENoYXJzID0gbS52YWx1ZXMoKS50b0FycmF5KCk7CisgICAgICAgIEFycmF5cy5zb3J0KGVuY291bnRlcmVkQ2hhcnMpOworICAgICAgICBpbnQgY3VtdWxhdGl2ZUNoYXJzID0gMDsKKyAgICAgICAgaW50IGN1bXVsYXRpdmVQZXJjZW50ID0gMDsKKyAgICAgICAgaWYgKG9wdGlvbl92KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiMgPGNoYXIgY29kZT4gPG9jY3VyZW5jZXM+ICA8Q3VtdWxhdGl2ZSAlPiIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8ZW5jb3VudGVyZWRDaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIENoRWwgYyA9IChDaEVsKWVuY291bnRlcmVkQ2hhcnNbaV07CisgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZUNoYXJzICs9IGMub2NjdXJlbmNlczsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlUGVyY2VudCA9IGN1bXVsYXRpdmVDaGFycyoxMDAvdG90YWxNYmNzQ2hhcnM7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiICAgIiArIEludGVnZXIudG9IZXhTdHJpbmcoYy5jaGFyQ29kZSkgKyAiICAgICAgICAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBjLm9jY3VyZW5jZXMgKyAiICAgICAgICAgIiArIGN1bXVsYXRpdmVQZXJjZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob3B0aW9uX2QpIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgIE91dHB1dCB0aGUgbGlzdCBvZiBjaGFyYWN0ZXJzIGZvcm1hdHRlZCBmb3IgcGFzdGluZyBpbnRvIGEKKyAgICAgICAgICAgIC8vICAgICBKYXZhIHNvdXJjZSBjb2RlIGFycmF5IGluaXRpYWxpemVyLgorICAgICAgICAgICAgLy8gICAgIFJlc29ydCBpbnRvIG9yZGVyIGJhc2VkIG9uIHRoZSBjaGFyYWN0ZXIgY29kZSB2YWx1ZSwgbm90CisgICAgICAgICAgICAvLyAgICAgIG9uIGZyZXF1ZW5jeSBvZiBvY2N1cmVuY2UuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgTGlzdCAgY2hhckxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPDEwMCAmJiBjdW11bGF0aXZlUGVyY2VudDw1MDsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ2hFbCBjID0gKENoRWwpZW5jb3VudGVyZWRDaGFyc1tpXTsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlQ2hhcnMgKz0gYy5vY2N1cmVuY2VzOworICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVQZXJjZW50ID0gY3VtdWxhdGl2ZUNoYXJzKjEwMC90b3RhbE1iY3NDaGFyczsKKyAgICAgICAgICAgICAgICBjaGFyTGlzdC5hZGQobmV3IEludGVnZXIoYy5jaGFyQ29kZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgT2JqZWN0IFtdIHNvcnRlZENoYXJzID0gY2hhckxpc3QudG9BcnJheSgpOworICAgICAgICAgICAgQXJyYXlzLnNvcnQoc29ydGVkQ2hhcnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICAgeyIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8c29ydGVkQ2hhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoaSklMTAgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4gICAgICAgICAgICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBjcCA9ICgoSW50ZWdlcilzb3J0ZWRDaGFyc1tpXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8KKyAgICAvLyAgVGhpcyBpcyBhIGxpdHRsZSBjbGFzcyBjb250YWluaW5nIGEKKyAgICAvLyAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciB2YWx1ZSBhbmQgYW4gb2NjdXJlbmNlIGNvdW50IGZvciB0aGF0IGNoYXIuCisgICAgLy8gIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBrZXB0IGluIHRoZSBjb2xsZWN0aW9uIHRoYXQgYWNjdW11bGF0ZXMgc3RhdGlzdGljcworICAgIC8vCisgICAgLy8gIFdBUk5JTkc6ICB0aGlzIGNsYXNzJ3MgbmF0dXJhbCBvcmRlcmluZyAoZnJvbSBDb21wYXJhYmxlKSBhbmQgZXF1YWxzKCkKKyAgICAvLyAgICAgICAgICAgIGFyZSBpbmNvbnNpc3RlbnQuCisKKyAgICBzdGF0aWMgY2xhc3MgQ2hFbCBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICBpbnQgY2hhckNvZGU7CisgICAgICAgIGludCBvY2N1cmVuY2VzOworCisgICAgICAgIENoRWwoaW50IGMsIGludCBvKSB7CisgICAgICAgICAgICBjaGFyQ29kZSA9IGM7CisgICAgICAgICAgICBvY2N1cmVuY2VzID0gbzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVxdWFscyBuZWVkcyB0byB3b3JrIHdpdGggYSBtYXAsIHdpdGggdGhlIGNoYXJDb2RlIGFzIHRoZSBrZXkuCisgICAgICAgIC8vICAgRm9yIGluc2VydGlvbi9sb29rdXAsIHdlIGNhcmUgYWJvdXQgdGhlIGNoYXIgY29kZSBvbmx5LCBub3QgdGhlIG9jY3VyZW5jZSBjb3VudC4KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICAgICAgQ2hFbCBvID0gKENoRWwpb3RoZXI7CisgICAgICAgICAgICByZXR1cm4gby5jaGFyQ29kZSA9PSB0aGlzLmNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSGFzaGNvZGUgbmVlZHMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGVxdWFscworICAgICAgICAvLyAgIFdlJ3JlIHVzaW5nIHRoaXMgaW4gYSBoYXNoTWFwIQorICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2Ugd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgdGhlIHJlc3VsdHMgYnkgZnJlcXVlbmN5IG9mIG9jY3VyZW5jZQorICAgICAgICAvLyAgIENvbXBhcmUgYmFja3dhcmRzLiAgV2Ugd2FudCBtb3N0IGZyZXF1ZW50IGNoYXJzIGZpcnN0LgorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIENoRWwgbyA9IChDaEVsKW90aGVyOworICAgICAgICAgICAgcmV0dXJuICh0aGlzLm9jY3VyZW5jZXM+IG8ub2NjdXJlbmNlcz8gLTEgOgorICAgICAgICAgICAgICAgICAgICh0aGlzLm9jY3VyZW5jZXM9PW8ub2NjdXJlbmNlcz8gIDAgOiAxKSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vCisgICAgLy8gaXRlcmF0ZWRDaGFyIGlzIGNvcGllZCBhbmQgc2xpZ2h0bHkgaGFja2VkIGZyb20gdGhlIHNpbWlsYXIgY2Fsc3MgaW4gQ2hhcnNldFJlY29nX21iY3MKKyAgICAvLyAgICAgICAgICAgICAgUHVsbHMgb3V0IG9uZSBsb2dpY2FsIGNoYXIgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiBFVUMgZW5jb2RpbmcuCisgICAgLy8KKyAgICBjbGFzcyBpdGVyYXRlZENoYXIgeworICAgICAgICBpbnQgICAgICAgICAgICAgY2hhclZhbHVlID0gMDsgICAgICAgICAgICAgLy8gVGhlIGNoYXIgdmFsdWUgaXMgYSB2YWx1ZSBmcm9tIHRoZSBlbmNvZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgSXQncyBtZWFuaW5nIGlzIG5vdCB3ZWxsIGRlZmluZWQsIG90aGVyIHRoYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZGlmZmVyZW50IGVuY29kaW5ncworICAgICAgICBpbnQgICAgICAgICAgICAgaW5kZXggICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgIG5leHRJbmRleCA9IDA7CisgICAgICAgIGJvb2xlYW4gICAgICAgICBlcnJvciAgICAgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgIGRvbmUgICAgICA9IGZhbHNlOworCisgICAgICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICBjaGFyVmFsdWUgPSAwOworICAgICAgICAgICAgaW5kZXggICAgID0gLTE7CisgICAgICAgICAgICBuZXh0SW5kZXggPSAwOworICAgICAgICAgICAgZXJyb3IgICAgID0gZmFsc2U7CisgICAgICAgICAgICBkb25lICAgICAgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuZXh0Qnl0ZSgpIHsKKyAgICAgICAgICAgIGlmIChuZXh0SW5kZXggPj0gZmlsZVNpemUpIHsKKyAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgYnl0ZVZhbHVlID0gKGludClidWZbbmV4dEluZGV4KytdICYgMHgwMGZmOworICAgICAgICAgICAgcmV0dXJuIGJ5dGVWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQpIHsKKyAgICAgICAgaXQuaW5kZXggPSBpdC5uZXh0SW5kZXg7CisgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgIGludCBmaXJzdEJ5dGUgID0gMDsKKyAgICAgICAgaW50IHNlY29uZEJ5dGUgPSAwOworCisgICAgICAgIGJ1aWxkQ2hhcjogeworICAgICAgICAgICAgZmlyc3RCeXRlID0gaXQuY2hhclZhbHVlID0gaXQubmV4dEJ5dGUoKTsKKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7CisgICAgICAgICAgICAgICAgLy8gUmFuIG9mZiB0aGUgZW5kIG9mIHRoZSBpbnB1dCBkYXRhCisgICAgICAgICAgICAgICAgaXQuZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8PSAweDAwODAgfHwKKyAgICAgICAgICAgICAgICAgICAgKHNqaXMgJiYgZmlyc3RCeXRlPj0weDAwYTAgJiYgZmlyc3RCeXRlPCAweDAwZTApIHx8CisgICAgICAgICAgICAgICAgICAgIChzamlzICYmIGZpcnN0Qnl0ZT49MHgwMGZkICYmIGZpcnN0Qnl0ZTw9MHgwMGZmKSkgeworICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBieXRlIGNoYXIKKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZSgpOworICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisKKyAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlIDwgIDB4NDAgfHwKKyAgICAgICAgICAgICAgICBzZWNvbmRCeXRlID09IDB4MDA3ZiB8fAorICAgICAgICAgICAgICAgIHNlY29uZEJ5dGUgPT0gMHgwMGZmIHx8CisgICAgICAgICAgICAgICAgc2ppcyAmJiBzZWNvbmRCeXRlID49IDB4MDBmZCkgeworICAgICAgICAgICAgICAgICAgICBpdC5lcnJvciA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpdC5lcnJvcikgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3IgIiArIEludGVnZXIudG9IZXhTdHJpbmcoZmlyc3RCeXRlKSArICIgIiArIEludGVnZXIudG9IZXhTdHJpbmcoc2Vjb25kQnl0ZSkpOworICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgICByZXR1cm4gKGl0LmRvbmUgPT0gZmFsc2UpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvbWJjcy9FVUNUb29sLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9tYmNzL0VVQ1Rvb2wuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmFmZjI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvbWJjcy9FVUNUb29sLmphdmEKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBldWNfdG9vbAorICoKKyAqICAgIFRoaXMgdG9vbCBwcm9kdWNlcyB0aGUgY2hhcmFjdGVyIHVzYWdlIGZyZXF1ZW5jeSBzdGF0aXN0aWNzIGZvciB0aGUgRVVDIGZhbWlseQorICogICAgb2YgY2hhcnNldHMsIGZvciB1c2UgYnkgdGhlIElDVSBjaGFyc2V0IGRldGVjdG9ycy4KKyAqCisgKiAgICB1c2FnZTogIGphdmEgZXVjX3Rvb2wgWy1kXSBbZGlyZWN0b3J5IHBhdGhdCisgKgorICogICAgICAgIC1kOiAgIFByb2R1Y2UgdGhlIGRhdGEgaW4gYSBmb3JtIHRvIGJlIGV4cG9ydGVkIHRvIHRoZSBJQ1UgaW1wbGVtZW50YXRpb24KKyAqICAgICAgICAgICAgICBEZWZhdWx0IGlzIHRvIHByb2R1Y2UgYW4gaW5mb3JtYXRpdmUgZHVtcC4KKyAqCisgKiAgICAgICAgZGlyZWN0b3J5IHBhdGgKKyAqICAgICAgICAgICAgICBTb3VyY2UgZGlyZWN0b3J5IGZvciB0aGUgZmlsZXMgdG8gYmUgYW5hbHl6ZWQuCisgKiAgICAgICAgICAgICAgRGVmYXVsdCBpcyB0aGUgY3VycmVudCBkaXJlY3RvcnkuCisgKiAgICAgICAgICAgICAgVGhlcmUgc2hvdWxkIGJlIHRocmVlIHN1YmRpcmVjdG9yaWVzIHVuZGVyIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LCBvbmUKKyAqICAgICAgICAgICAgICBlYWNoIGZvciBFVUNfSlAsIEVVQ19DTiBhbmQgRVVDX0tSLiAgV2l0aGluIGVhY2ggb2YgdGhlc2Ugc3ViZGlyZWN0b3JpZXMKKyAqICAgICAgICAgICAgICBzaG91bGQgYmUgdGV4dCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGVuY29kaW5nLgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQubWJjczsKKworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIEVVQ1Rvb2wgeworCisgICAgLy8gVGhlIGZpbGUgYnVmZmVyIGFuZCBmaWxlIGRhdGEgbGVuZ3RoIG5lZWQgdG8gYmUgb3V0IGluIGNsYXNzIG1lbWJlciB2YXJpYWJsZXMKKyAgICAvLyAgc28gdGhhdCB0aGUgY29kZSBsaWZ0ZWQgZnJvbSBjaGFyU2V0IGRldGVjdGlvbiBmb3Igc2Nhbm5pbmcgdGhlIG11bHRpLWJ5dGUgY2hhcnMKKyAgICAvLyAgY2FuIHNlZSB0aGVtIGNvbnZlbmllbnRseS4KKyAgICBieXRlIFtdICAgIGJ1ZiA9IG5ldyBieXRlWzEwMDAwMDBdOworICAgIGludCAgICAgICAgZmlsZVNpemU7CisKKyAgICBib29sZWFuICAgIG9wdGlvbl9kID0gZmFsc2U7ICAgIC8vIGRhdGEgb3B0aW9uLiAgUHJvZHVjZSBleHBvcnRhYmxlIGRhdGEKKyAgICBib29sZWFuICAgIG9wdGlvbl92ID0gdHJ1ZTsgICAgIC8vIHZlcmJvc2UgaW5mb3JtYWlvbmFsIG91dHB1dC4KKworCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIEVVQ1Rvb2wgIFRoaXMgPSBuZXcgRVVDVG9vbCgpOworICAgICAgICBUaGlzLk1haW4oYXJncyk7CisgICAgfQorCisKKworICAgIHZvaWQgTWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIC8vCisgICAgICAgIC8vICAgQ29tbWFuZCBMaW5lIE9wdGlvbiBIYW5kbGluZworICAgICAgICAvLworICAgICAgICBTdHJpbmcgICAgIGRpck5hbWUgID0gIi4iOworICAgICAgICBmb3IgKGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5lcXVhbHMoIi1kIikpIHsKKyAgICAgICAgICAgICAgICBvcHRpb25fZCA9IHRydWU7CisgICAgICAgICAgICAgICAgb3B0aW9uX3YgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzW2ldLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5yZWNvbmdpemVkIG9wdGlvbjogIiArIGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRpck5hbWUgPSBhcmdzW2ldOworICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIFZlcmlmeSB0aGF0IHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGV4aXN0cy4KKyAgICAgICAgLy8KKyAgICAgICAgRmlsZSBkaXIgPSBuZXcgRmlsZShkaXJOYW1lKTsKKyAgICAgICAgaWYgKGRpci5pc0RpcmVjdG9yeSgpID09IGZhbHNlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlwiIiArIGRpck5hbWUgKyAiXCIgaXMgbm90IGEgZGlyZWN0b3J5Iik7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgtMSk7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyAgRG8gZWFjaCBzdWJkaXJlY3Rvcnkgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuICBUaGVyZSBzaG91bGQgYmUKKyAgICAgICAgLy8gICAgb25lIHBlciBlYWNoIGVuY29kaW5nIC0gZXVjLWtyLCBldWMtY24sIGV1Yy1qcAorICAgICAgICAvLworICAgICAgICBGaWxlW10gZGlycyAgPSBkaXIubGlzdEZpbGVzKCk7CisgICAgICAgIGZvciAoaT0wOyBpPGRpcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChkaXJzW2ldLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtID0gZGlyc1tpXS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKG5hbS5lcXVhbHNJZ25vcmVDYXNlKCJDVlMiKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvY2Vzc0RpcihkaXJzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vCisgICAgLy8gQ29sbGVjdCBzdGF0aXN0aWNzIGZyb20gYWxsIG9yZGluYXJ5IGZpbGVzIGluIGEgc3BlY2lmaWVkIGRpcmVjdG9yeS4KKyAgICAvLworICAgIHZvaWQgcHJvY2Vzc0RpcihGaWxlIGRpcikgeworICAgICAgICBpbnQgICAgICB0b3RhbE1iY3NDaGFycyAgPSAwOworICAgICAgICBIYXNoTWFwICBtID0gbmV3IEhhc2hNYXAoMTAwMDApOworICAgICAgICBpbnQgICAgICBpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihkaXIuZ2V0TmFtZSgpKTsKKyAgICAgICAgRmlsZVtdIGZpbGVzID0gZGlyLmxpc3RGaWxlcygpOworICAgICAgICBmb3IgKGk9MDsgaTxmaWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoZmlsZXNbaV0uaXNGaWxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGVTaXplID0gaXMucmVhZChidWYpOworICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmaWxlc1tpXS5nZXRQYXRoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBmaWxlU2l6ZSArICIgYnl0ZXMuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWRDaGFyIGljaGFyID0gbmV3IGl0ZXJhdGVkQ2hhcigpOworICAgICAgICAgICAgICAgICAgICBpbnQgZmlsZUNoYXJzICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBmaWxlTWJjc0NoYXJzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVycnMgICAgICAgICAgPSAwOworCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0Q2hhcihpY2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpY2hhci5lcnJvciA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUNoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlID4gMjU1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1iY3NDaGFycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsTWJjc0NoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlIDw9IDI1NSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtlZXAgb2NjdXJlbmNlIHN0YXRpc3RpY3MgZm9yIHRoZSBzaW5nbGUgYnl0ZSByYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gIEZyZXF1ZW5jeSBvZiBvY2N1cmVuY2Ugc3RhdGlzdGljcyBhcmUgYWNjdW11bGF0ZWQgaW4gYSBtYXAuCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAga2V5RWwgPSBuZXcgQ2hFbChpY2hhci5jaGFyVmFsdWUsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAgdmFsRWwgPSAoQ2hFbCltLmdldChrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsRWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucHV0KGtleUVsLCBrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsRWwgPSBrZXlFbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbEVsLm9jY3VyZW5jZXMrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZUNoYXJzICAgICArICIgQ2hhcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZU1iY3NDaGFycyArICIgbWJjcyBDaGFycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBlcnJzICAgICAgICAgICsgIiBlcnJvcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uOiIgKyBlKTsKKworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIFdlJ3ZlIHByb2Nlc3NlZCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMuCisgICAgICAgIC8vICAgICBzb3J0IGFuZCBkdW1wIG91dCB0aGUgZnJlcXVlbmN5IHN0YXRpc3RpY3MuCisgICAgICAgIC8vCisgICAgICAgIE9iamVjdCBbXSBlbmNvdW50ZXJlZENoYXJzID0gbS52YWx1ZXMoKS50b0FycmF5KCk7CisgICAgICAgIEFycmF5cy5zb3J0KGVuY291bnRlcmVkQ2hhcnMpOworICAgICAgICBpbnQgY3VtdWxhdGl2ZUNoYXJzID0gMDsKKyAgICAgICAgaW50IGN1bXVsYXRpdmVQZXJjZW50ID0gMDsKKyAgICAgICAgaWYgKG9wdGlvbl92KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiMgPGNoYXIgY29kZT4gPG9jY3VyZW5jZXM+ICA8Q3VtdWxhdGl2ZSAlPiIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8ZW5jb3VudGVyZWRDaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIENoRWwgYyA9IChDaEVsKWVuY291bnRlcmVkQ2hhcnNbaV07CisgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZUNoYXJzICs9IGMub2NjdXJlbmNlczsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlUGVyY2VudCA9IGN1bXVsYXRpdmVDaGFycyoxMDAvdG90YWxNYmNzQ2hhcnM7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiICAgIiArIEludGVnZXIudG9IZXhTdHJpbmcoYy5jaGFyQ29kZSkgKyAiICAgICAgICAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBjLm9jY3VyZW5jZXMgKyAiICAgICAgICAgIiArIGN1bXVsYXRpdmVQZXJjZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob3B0aW9uX2QpIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgIE91dHB1dCB0aGUgbGlzdCBvZiBjaGFyYWN0ZXJzIGZvcm1hdHRlZCBmb3IgcGFzdGluZyBpbnRvIGEKKyAgICAgICAgICAgIC8vICAgICBKYXZhIHNvdXJjZSBjb2RlIGFycmF5IGluaXRpYWxpemVyLgorICAgICAgICAgICAgLy8gICAgIFJlc29ydCBpbnRvIG9yZGVyIGJhc2VkIG9uIHRoZSBjaGFyYWN0ZXIgY29kZSB2YWx1ZSwgbm90CisgICAgICAgICAgICAvLyAgICAgIG9uIGZyZXF1ZW5jeSBvZiBvY2N1cmVuY2UuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgTGlzdCAgY2hhckxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPDEwMCAmJiBjdW11bGF0aXZlUGVyY2VudDw1MDsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ2hFbCBjID0gKENoRWwpZW5jb3VudGVyZWRDaGFyc1tpXTsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlQ2hhcnMgKz0gYy5vY2N1cmVuY2VzOworICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVQZXJjZW50ID0gY3VtdWxhdGl2ZUNoYXJzKjEwMC90b3RhbE1iY3NDaGFyczsKKyAgICAgICAgICAgICAgICBjaGFyTGlzdC5hZGQobmV3IEludGVnZXIoYy5jaGFyQ29kZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgT2JqZWN0IFtdIHNvcnRlZENoYXJzID0gY2hhckxpc3QudG9BcnJheSgpOworICAgICAgICAgICAgQXJyYXlzLnNvcnQoc29ydGVkQ2hhcnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICAgeyIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8c29ydGVkQ2hhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoaSklMTAgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4gICAgICAgICAgICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBjcCA9ICgoSW50ZWdlcilzb3J0ZWRDaGFyc1tpXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8KKyAgICAvLyAgVGhpcyBpcyBhIGxpdHRsZSBjbGFzcyBjb250YWluaW5nIGEKKyAgICAvLyAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciB2YWx1ZSBhbmQgYW4gb2NjdXJlbmNlIGNvdW50IGZvciB0aGF0IGNoYXIuCisgICAgLy8gIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBrZXB0IGluIHRoZSBjb2xsZWN0aW9uIHRoYXQgYWNjdW11bGF0ZXMgc3RhdGlzdGljcworICAgIC8vCisgICAgLy8gIFdBUk5JTkc6ICB0aGlzIGNsYXNzJ3MgbmF0dXJhbCBvcmRlcmluZyAoZnJvbSBDb21wYXJhYmxlKSBhbmQgZXF1YWxzKCkKKyAgICAvLyAgICAgICAgICAgIGFyZSBpbmNvbnNpc3RlbnQuCisKKyAgICBzdGF0aWMgY2xhc3MgQ2hFbCBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICBpbnQgY2hhckNvZGU7CisgICAgICAgIGludCBvY2N1cmVuY2VzOworCisgICAgICAgIENoRWwoaW50IGMsIGludCBvKSB7CisgICAgICAgICAgICBjaGFyQ29kZSA9IGM7CisgICAgICAgICAgICBvY2N1cmVuY2VzID0gbzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVxdWFscyBuZWVkcyB0byB3b3JrIHdpdGggYSBtYXAsIHdpdGggdGhlIGNoYXJDb2RlIGFzIHRoZSBrZXkuCisgICAgICAgIC8vICAgRm9yIGluc2VydGlvbi9sb29rdXAsIHdlIGNhcmUgYWJvdXQgdGhlIGNoYXIgY29kZSBvbmx5LCBub3QgdGhlIG9jY3VyZW5jZSBjb3VudC4KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICAgICAgQ2hFbCBvID0gKENoRWwpb3RoZXI7CisgICAgICAgICAgICByZXR1cm4gby5jaGFyQ29kZSA9PSB0aGlzLmNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSGFzaGNvZGUgbmVlZHMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGVxdWFscworICAgICAgICAvLyAgIFdlJ3JlIHVzaW5nIHRoaXMgaW4gYSBoYXNoTWFwIQorICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2Ugd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgdGhlIHJlc3VsdHMgYnkgZnJlcXVlbmN5IG9mIG9jY3VyZW5jZQorICAgICAgICAvLyAgIENvbXBhcmUgYmFja3dhcmRzLiAgV2Ugd2FudCBtb3N0IGZyZXF1ZW50IGNoYXJzIGZpcnN0LgorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIENoRWwgbyA9IChDaEVsKW90aGVyOworICAgICAgICAgICAgcmV0dXJuICh0aGlzLm9jY3VyZW5jZXM+IG8ub2NjdXJlbmNlcz8gLTEgOgorICAgICAgICAgICAgICAgICAgICh0aGlzLm9jY3VyZW5jZXM9PW8ub2NjdXJlbmNlcz8gIDAgOiAxKSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vCisgICAgLy8gaXRlcmF0ZWRDaGFyIGlzIGNvcGllZCBhbmQgc2xpZ2h0bHkgaGFja2VkIGZyb20gdGhlIHNpbWlsYXIgY2Fsc3MgaW4gQ2hhcnNldFJlY29nX21iY3MKKyAgICAvLyAgICAgICAgICAgICAgUHVsbHMgb3V0IG9uZSBsb2dpY2FsIGNoYXIgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiBFVUMgZW5jb2RpbmcuCisgICAgLy8KKyAgICBjbGFzcyBpdGVyYXRlZENoYXIgeworICAgICAgICBpbnQgICAgICAgICAgICAgY2hhclZhbHVlID0gMDsgICAgICAgICAgICAgLy8gVGhlIGNoYXIgdmFsdWUgaXMgYSB2YWx1ZSBmcm9tIHRoZSBlbmNvZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgSXQncyBtZWFuaW5nIGlzIG5vdCB3ZWxsIGRlZmluZWQsIG90aGVyIHRoYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZGlmZmVyZW50IGVuY29kaW5ncworICAgICAgICBpbnQgICAgICAgICAgICAgaW5kZXggICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgIG5leHRJbmRleCA9IDA7CisgICAgICAgIGJvb2xlYW4gICAgICAgICBlcnJvciAgICAgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgIGRvbmUgICAgICA9IGZhbHNlOworCisgICAgICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICBjaGFyVmFsdWUgPSAwOworICAgICAgICAgICAgaW5kZXggICAgID0gLTE7CisgICAgICAgICAgICBuZXh0SW5kZXggPSAwOworICAgICAgICAgICAgZXJyb3IgICAgID0gZmFsc2U7CisgICAgICAgICAgICBkb25lICAgICAgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuZXh0Qnl0ZSgpIHsKKyAgICAgICAgICAgIGlmIChuZXh0SW5kZXggPj0gZmlsZVNpemUpIHsKKyAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgYnl0ZVZhbHVlID0gKGludClidWZbbmV4dEluZGV4KytdICYgMHgwMGZmOworICAgICAgICAgICAgcmV0dXJuIGJ5dGVWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQpIHsKKyAgICAgICAgaXQuaW5kZXggPSBpdC5uZXh0SW5kZXg7CisgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgIGludCBmaXJzdEJ5dGUgID0gMDsKKyAgICAgICAgaW50IHNlY29uZEJ5dGUgPSAwOworICAgICAgICBpbnQgdGhpcmRCeXRlICA9IDA7CisgICAgICAgIGludCBmb3VydGhCeXRlID0gMDsKKworICAgICAgICBidWlsZENoYXI6IHsKKyAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IGl0LmNoYXJWYWx1ZSA9IGl0Lm5leHRCeXRlKCk7CisgICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMCkgeworICAgICAgICAgICAgICAgIC8vIFJhbiBvZmYgdGhlIGVuZCBvZiB0aGUgaW5wdXQgZGF0YQorICAgICAgICAgICAgICAgIGl0LmRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPD0gMHg4ZCkgeworICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBieXRlIGNoYXIKKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZSgpOworICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisKKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPj0gMHhBMSAmJiBmaXJzdEJ5dGUgPD0gMHhmZSkgeworICAgICAgICAgICAgICAgIC8vIFR3byBieXRlIENoYXIKKyAgICAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA8IDB4YTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID09IDB4OGUpIHsKKyAgICAgICAgICAgICAgICAvLyBDb2RlIFNldCAyLgorICAgICAgICAgICAgICAgIC8vICAgSW4gRVVDLUpQLCB0b3RhbCBjaGFyIHNpemUgaXMgMiBieXRlcywgb25seSBvbmUgYnl0ZSBvZiBhY3R1YWwgY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICAvLyAgIEluIEVVQy1UVywgdG90YWwgY2hhciBzaXplIGlzIDQgYnl0ZXMsIHRocmVlIGJ5dGVzIGNvbnRyaWJ1dGUgdG8gY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IHdoaWNoIHdlJ3ZlIGdvdC4KKyAgICAgICAgICAgICAgICAvLyBUcmVhdCBpdCBsaWtlIEVVQy1KUC4gIElmIHRoZSBkYXRhIHJlYWxseSB3YXMgRVVDLVRXLCB0aGUgZm9sbG93aW5nIHR3bworICAgICAgICAgICAgICAgIC8vICAgYnl0ZXMgd2lsbCBsb29rIGxpa2UgYSB3ZWxsIGZvcm1lZCAyIGJ5dGUgY2hhci4KKyAgICAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA8IDB4YTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gMHg4ZikgeworICAgICAgICAgICAgICAgIC8vIENvZGUgc2V0IDMuCisgICAgICAgICAgICAgICAgLy8gVGhyZWUgYnl0ZSB0b3RhbCBjaGFyIHNpemUsIHR3byBieXRlcyBvZiBhY3R1YWwgY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICB0aGlyZEJ5dGUgICAgPSBpdC5uZXh0Qnl0ZSgpOworICAgICAgICAgICAgICAgIGl0LmNoYXJWYWx1ZSA9IChpdC5jaGFyVmFsdWUgPDwgOCkgfCB0aGlyZEJ5dGU7CisgICAgICAgICAgICAgICAgaWYgKHRoaXJkQnl0ZSA8IDB4YTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGlmIChpdC5lcnJvcikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciAiICsgSW50ZWdlci50b0hleFN0cmluZyhmaXJzdEJ5dGUpICsgIiAiICsgSW50ZWdlci50b0hleFN0cmluZyhzZWNvbmRCeXRlKQorICAgICAgICAgICAgICAgICAgICArICIgIiArICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRoaXJkQnl0ZSkgKyAiICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGZvdXJ0aEJ5dGUpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGl0LmRvbmUgPT0gZmFsc2UpOworICAgIH0KK30KKworCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9DaGVja2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0NoZWNrZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2EzMGJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9DaGVja2VyLmphdmEKQEAgLTAsMCArMSwxODQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzICAgICAgICAgICAgKgorICogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5jaGFyc2V0ZGV0LnNiY3M7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBDaGVja2VyIGltcGxlbWVudHMgTkdyYW1QYXJzZXIuTkdyYW1QYXJzZXJDbGllbnQKK3sKKyAgICBwcml2YXRlIE5HcmFtTGlzdCBuZ3JhbXM7CisgICAgcHJpdmF0ZSBpbnQgdG90YWxOR3JhbXM7CisgICAgcHJpdmF0ZSBpbnQgdG90YWxIaXRzOworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGxhbmd1YWdlOworICAgIHByaXZhdGUgU3RyaW5nIGVuY29kaW5nOworICAgIAorICAgIHByaXZhdGUgaW50W10gaGlzdG9ncmFtOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJVRkZFUl9TSVpFID0gMTAyNDsKKyAgICAKKyAgICBwcml2YXRlIGNoYXJbXSBidWZmZXI7CisgICAgcHJpdmF0ZSBpbnQgYnVmSW5kZXg7CisgICAgcHJpdmF0ZSBpbnQgYnVmTWF4OworCisgICAgcHJpdmF0ZSBOR3JhbVBhcnNlciBwYXJzZXI7CisKKyAgICAvKioKKyAgICAgKiBUT0RPIFRoaXMgc2hvdWxkIHRha2UgY3VtdWxhdGl2ZSBwZXJjZW50IGFuZCB0aGUgbmFtZS4uLgorICAgICAqLworICAgIHB1YmxpYyBDaGVja2VyKE5HcmFtTGlzdCBsaXN0LCBJbnB1dEZpbGUgZGF0YUZpbGUpCisgICAgeworICAgICAgICBuZ3JhbXMgPSBsaXN0OworICAgICAgICBuZ3JhbXMuc2V0TWFwcGVyKGRhdGFGaWxlKTsKKyAgICAgICAgCisgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2VOYW1lKGRhdGFGaWxlLmdldEZpbGVuYW1lKCkpOworICAgICAgICBlbmNvZGluZyA9IGRhdGFGaWxlLmdldEVuY29kaW5nKCk7CisgICAgICAgIAorICAgICAgICBidWZmZXIgPSBuZXcgY2hhcltCVUZGRVJfU0laRV07CisgICAgICAgIHBhcnNlciA9IG5ldyBOR3JhbVBhcnNlcih0aGlzKTsKKyAgICAgICAgcmVzZXRDb3VudHMoKTsKKyAgICAgICAgCisgICAgICAgIGhpc3RvZ3JhbSA9IG5ldyBpbnRbMTAwXTsKKyAgICAgICAgcmVzZXRIaXN0b2dyYW0oKTsKKyAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVOR3JhbShTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgTkdyYW1MaXN0Lk5HcmFtIG5ncmFtID0gbmdyYW1zLmdldChrZXkpOworICAgICAgICAKKyAgICAgICAgdG90YWxOR3JhbXMgKz0gMTsKKyAgICAgICAgCisgICAgICAgIGlmIChuZ3JhbSAhPSBudWxsKSB7CisgICAgICAgICAgICB0b3RhbEhpdHMgKz0gMTsKKyAgICAgICAgICAgIC8vbmdyYW0uaW5jcmVtZW50UmVmQ291bnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVzZXRDb3VudHMoKQorICAgIHsKKyAgICAgICAgYnVmSW5kZXggPSAwOworICAgICAgICB0b3RhbE5HcmFtcyA9IHRvdGFsSGl0cyA9IDA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXNldEhpc3RvZ3JhbSgpCisgICAgeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgMTAwOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGhpc3RvZ3JhbVtpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZXhjZXB0aW9uRXJyb3IoRXhjZXB0aW9uIGUpCisgICAgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImlvRXJyb3I6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBsYW5ndWFnZU5hbWUoU3RyaW5nIGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpbGVuYW1lLnN1YnN0cmluZygwLCBmaWxlbmFtZS5pbmRleE9mKCcuJykpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gbmV4dEJ1ZmZlcihJbnB1dEZpbGUgaW5wdXRGaWxlKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJ1Zk1heCA9IGlucHV0RmlsZS5yZWFkKGJ1ZmZlcik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBidWZNYXggPSAtMTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkVycm9yKGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGJ1ZkluZGV4ID0gMDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBidWZNYXggPj0gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQnVmZmVyKCkKKyAgICB7CisgICAgICAgIHJlc2V0Q291bnRzKCk7CisgICAgICAgIHBhcnNlci5yZXNldCgpOworICAgICAgICBwYXJzZXIucGFyc2UoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGNoYXIgbmV4dENoYXIoKQorICAgIHsKKyAgICAgICAgaWYgKGJ1ZkluZGV4ID49IGJ1Zk1heCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBidWZmZXJbYnVmSW5kZXgrK107CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRNYXBwZXIoSW5wdXRGaWxlIGZpbGUpCisgICAgeworICAgICAgICBuZ3JhbXMuc2V0TWFwcGVyKGZpbGUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGNoZWNrQnVmZmVyKGNoYXJbXSB0aGVCdWZmZXIsIGludCBjaGFyQ291bnQpCisgICAgeworICAgICAgICBidWZmZXIgPSB0aGVCdWZmZXI7CisgICAgICAgIGJ1Zk1heCA9IGNoYXJDb3VudDsKKyAgICAgICAgCisgICAgICAgIHBhcnNlQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdG90YWxIaXRzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjaGVjayhJbnB1dEZpbGUgZGF0YUZpbGUpCisgICAgeworICAgICAgICBpbnQgbWluSGlzdCA9IDEwMSwgbWF4SGlzdCA9IC0xOworICAgICAgICAKKyAgICAgICAgZGF0YUZpbGUub3BlbigpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGRhdGFGaWxlbmFtZSA9IGRhdGFGaWxlLmdldEZpbGVuYW1lKCk7CisgICAgICAgIFN0cmluZyBmaWxlRW5jb2RpbmcgPSBkYXRhRmlsZS5nZXRFbmNvZGluZygpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxhbmd1YWdlICsgIigiICsgZW5jb2RpbmcgKyAiKSBzdGF0cywgIiArIGxhbmd1YWdlTmFtZShkYXRhRmlsZW5hbWUpICsgIigiICsgZmlsZUVuY29kaW5nICsgIikgZGF0YToiKTsKKyAgICAgICAgCisgICAgICAgIHNldE1hcHBlcihkYXRhRmlsZSk7CisgICAgICAgIHJlc2V0SGlzdG9ncmFtKCk7CisKKyAgICAgICAgd2hpbGUgKG5leHRCdWZmZXIoZGF0YUZpbGUpKSB7CisgICAgICAgICAgICBwYXJzZUJ1ZmZlcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkb3VibGUgcGVyY2VudEhpdHMgPSAoZG91YmxlKSB0b3RhbEhpdHMgLyB0b3RhbE5HcmFtcyAqIDEwMC4wOworICAgICAgICAgICAgaW50IHBoID0gKGludCkgcGVyY2VudEhpdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwaCA8IG1pbkhpc3QpIHsKKyAgICAgICAgICAgICAgICBtaW5IaXN0ID0gcGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwaCA+IG1heEhpc3QpIHsKKyAgICAgICAgICAgICAgICBtYXhIaXN0ID0gcGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGhpc3RvZ3JhbVtwaF0gKz0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yKGludCBwaCA9IG1pbkhpc3Q7IHBoIDw9IG1heEhpc3Q7IHBoICs9IDEpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwaCArICJcdCIgKyBoaXN0b2dyYW1bcGhdKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICBkYXRhRmlsZS5jbG9zZSgpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvSW5wdXRGaWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0lucHV0RmlsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZDk3M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0lucHV0RmlsZS5qYXZhCkBAIC0wLDAgKzEsMTc1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY2hhcnNldGRldC5zYmNzOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcmFjdGVyQ29kaW5nRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldDsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RpbmdFcnJvckFjdGlvbjsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIElucHV0RmlsZSBpbXBsZW1lbnRzIE5HcmFtTGlzdC5OR3JhbUtleU1hcHBlcgoreworCisgICAgcHJpdmF0ZSBGaWxlIGZpbGU7CisgICAgcHJpdmF0ZSBGaWxlSW5wdXRTdHJlYW0gZmlsZVN0cmVhbTsKKyAgICBwcml2YXRlIElucHV0U3RyZWFtUmVhZGVyIGlucHV0U3RyZWFtOworCisgICAgcHJpdmF0ZSBDaGFyc2V0IGNoYXJzZXQ7CisgICAgcHJpdmF0ZSBDaGFyc2V0RGVjb2RlciBkZWNvZGVyOworICAgIHByaXZhdGUgQ2hhcnNldEVuY29kZXIgZW5jb2RlcjsKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gdmlzdWFsT3JkZXI7CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGV4Y2VwdGlvbkVycm9yKEV4Y2VwdGlvbiBlKQorICAgIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJpb0Vycm9yOiAiICsgZS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgSW5wdXRGaWxlKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nLCBib29sZWFuIHZpc3VhbCkKKyAgICB7CisgICAgICAgIGZpbGUgPSBuZXcgRmlsZShmaWxlbmFtZSk7CisgICAgICAgIHNldEVuY29kaW5nKGVuY29kaW5nKTsKKyAgICAgICAgdmlzdWFsT3JkZXIgPSB2aXN1YWw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIG9wZW4oKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbGVTdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOyAgICAgICAgICAKKyAgICAgICAgICAgIGlucHV0U3RyZWFtID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpbGVTdHJlYW0sICJVVEY4Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBleGNlcHRpb25FcnJvcihlKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgZmlsZVN0cmVhbS5jbG9zZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZG9uJ3QgcmVhbGx5IGNhcmUgaWYgdGhpcyBmYWlscy4uLgorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmlsZW5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpbGUuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhcmVudCgpCisgICAgeworICAgICAgICByZXR1cm4gZmlsZS5nZXRQYXJlbnQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaWxlLmdldFBhdGgoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCByZWFkKGNoYXJbXSBidWZmZXIpCisgICAgeworICAgICAgICBpbnQgY2hhcnNSZWFkID0gLTE7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY2hhcnNSZWFkID0gaW5wdXRTdHJlYW0ucmVhZChidWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXhjZXB0aW9uRXJyb3IoZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjaGFyc1JlYWQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldEVuY29kaW5nKFN0cmluZyBlbmNvZGluZykKKyAgICB7CisgICAgICAgIGNoYXJzZXQgPSBDaGFyc2V0LmZvck5hbWUoZW5jb2RpbmcpOworICAgICAgICBkZWNvZGVyID0gY2hhcnNldC5uZXdEZWNvZGVyKCk7CisgICAgICAgIGVuY29kZXIgPSBjaGFyc2V0Lm5ld0VuY29kZXIoKTsKKyAgICAgICAgCisgICAgICAgIGVuY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgICAgICBlbmNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgIAorICAgICAgICBkZWNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKyAgICAgICAgZGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldEVuY29kaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjaGFyc2V0LmRpc3BsYXlOYW1lKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGdldFZpc3VhbE9yZGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB2aXN1YWxPcmRlcjsKKyAgICB9CisgICAgCisgICAgcHVibGljIE9iamVjdCBtYXBLZXkoU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIGJ5dGVbXSBieXRlcyA9IGVuY29kZShrZXkudG9DaGFyQXJyYXkoKSk7CisgICAgICAgIGludCBsZW5ndGggICA9IGtleS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHZhbHVlICAgID0gMDsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgYiA9IDA7IGIgPCBsZW5ndGg7IGIgKz0gMSkgeworICAgICAgICAgICAgdmFsdWUgPDw9IDg7CisgICAgICAgICAgICB2YWx1ZSArPSAoYnl0ZXNbYl0gJiAweEZGKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW50ZWdlcih2YWx1ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZW5jb2RlKGNoYXJbXSBjaGFycykKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggICAgPSBjaGFycy5sZW5ndGg7CisgICAgICAgIENoYXJCdWZmZXIgY2IgPSBDaGFyQnVmZmVyLndyYXAoY2hhcnMpOworICAgICAgICBCeXRlQnVmZmVyIGJiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJiID0gZW5jb2Rlci5lbmNvZGUoY2IpOworICAgICAgICB9IGNhdGNoIChDaGFyYWN0ZXJDb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZG9uJ3QgZXhwZWN0IHRvIGdldCBhbnkgZXhjZXB0aW9ucyBpbiBub3JtYWwgdXNhZ2UuLi4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJiLmFycmF5KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjaGFyW10gZGVjb2RlKGJ5dGVbXSBieXRlcykKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggICAgPSBieXRlcy5sZW5ndGg7CisgICAgICAgIEJ5dGVCdWZmZXIgYmIgPSBCeXRlQnVmZmVyLndyYXAoYnl0ZXMpOworICAgICAgICBDaGFyQnVmZmVyIGNiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNiID0gZGVjb2Rlci5kZWNvZGUoYmIpOworICAgICAgICB9IGNhdGNoIChDaGFyYWN0ZXJDb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZG9uJ3QgZXhwZWN0IHRvIGdldCBhbnkgZXhjZXB0aW9ucyBpbiBub3JtYWwgdXNhZ2UuLi4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2IuYXJyYXkoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL05HcmFtTGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9OR3JhbUxpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjg1ODQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9OR3JhbUxpc3QuamF2YQpAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgICAgICAgICAgICAqCisgKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQuc2JjczsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgTkdyYW1MaXN0Cit7CisgICAgcHVibGljIGludGVyZmFjZSBOR3JhbUtleU1hcHBlcgorICAgIHsKKyAgICAgICAgT2JqZWN0IG1hcEtleShTdHJpbmcga2V5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBOR3JhbSBpbXBsZW1lbnRzIENvbXBhcmFibGUKKyAgICB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlOworICAgICAgICBwcml2YXRlIGludCByZWZDb3VudDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBOR3JhbShTdHJpbmcgdGhlVmFsdWUsIGludCB0aGVSZWZDb3VudCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFsdWUgICAgPSB0aGVWYWx1ZTsKKyAgICAgICAgICAgIHJlZkNvdW50ID0gdGhlUmVmQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBOR3JhbShTdHJpbmcgdGhlVmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXModGhlVmFsdWUsIDEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTkdyYW0oTkdyYW0gb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMob3RoZXIuZ2V0VmFsdWUoKSwgb3RoZXIuZ2V0UmVmQ291bnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0VmFsdWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0UmVmQ291bnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcmVmQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCB2b2lkIGluY3JlbWVudFJlZkNvdW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVmQ291bnQgKz0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTm90ZTogVGhpcyBtYWtlcyBoaWdoZXIgcmVmQ291bnRzIGNvbWUgKmJlZm9yZSogbG93ZXIgcmVmQ291bnRzLi4uCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKQorICAgICAgICB7CisgICAgICAgICAgICBOR3JhbSBuZyA9IChOR3JhbSkgbzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG5nLmdldFJlZkNvdW50KCkgLSByZWZDb3VudDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVHJlZU1hcCBuZ3JhbXM7CisgICAgcHJvdGVjdGVkIGludCB0b3RhbE5HcmFtczsKKyAgICBwcm90ZWN0ZWQgaW50IHVuaXF1ZU5HcmFtczsKKworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgTl9HUkFNX1NJWkUgPSAzOworICAgIAorICAgIHByaXZhdGUgTkdyYW1LZXlNYXBwZXIga2V5TWFwcGVyOworCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIE5HcmFtTGlzdChOR3JhbUtleU1hcHBlciB0aGVNYXBwZXIpCisgICAgeworICAgICAgICBrZXlNYXBwZXIgPSB0aGVNYXBwZXI7CisgICAgICAgIAorICAgICAgICBuZ3JhbXMgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICB0b3RhbE5HcmFtcyA9IHVuaXF1ZU5HcmFtcyA9IDA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldE1hcHBlcihOR3JhbUtleU1hcHBlciBuR3JhbUtleU1hcHBlcikKKyAgICB7CisgICAgICAgIGtleU1hcHBlciA9IG5HcmFtS2V5TWFwcGVyOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTkdyYW0gZ2V0KE9iamVjdCBtYXBwZWRLZXkpCisgICAgeworICAgICAgICByZXR1cm4gKE5HcmFtKSBuZ3JhbXMuZ2V0KG1hcHBlZEtleSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBOR3JhbSBnZXQoU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIE9iamVjdCBtYXBwZWRLZXkgPSBrZXlNYXBwZXIubWFwS2V5KGtleSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0KG1hcHBlZEtleSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgT2JqZWN0IG1hcHBlZEtleSA9IGtleU1hcHBlci5tYXBLZXkoa2V5KTsKKyAgICAgICAgTkdyYW0gbmdyYW0gPSBnZXQobWFwcGVkS2V5KTsKKyAgICAgICAgCisgICAgICAgIHRvdGFsTkdyYW1zICs9IDE7CisgICAgICAgIAorICAgICAgICBpZiAobmdyYW0gPT0gbnVsbCkgeworICAgICAgICAgICAgdW5pcXVlTkdyYW1zICs9IDE7CisgICAgICAgICAgICBuZ3JhbXMucHV0KG1hcHBlZEtleSwgbmV3IE5HcmFtKGtleSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbmdyYW0uaW5jcmVtZW50UmVmQ291bnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGVjdGlvbiB2YWx1ZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ncmFtcy52YWx1ZXMoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxlY3Rpb24ga2V5cygpCisgICAgeworICAgICAgICByZXR1cm4gbmdyYW1zLmtleVNldCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldFRvdGFsTkdyYW1zKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0b3RhbE5HcmFtczsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRVbmlxdWVOR3JhbXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVuaXF1ZU5HcmFtczsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL05HcmFtUGFyc2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL05HcmFtUGFyc2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBmN2IzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvTkdyYW1QYXJzZXIuamF2YQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQuc2JjczsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIE5HcmFtUGFyc2VyCit7CisKKyAgICBwdWJsaWMgaW50ZXJmYWNlIE5HcmFtUGFyc2VyQ2xpZW50CisgICAgeworICAgICAgICBjaGFyIG5leHRDaGFyKCk7CisgICAgICAgIHZvaWQgaGFuZGxlTkdyYW0oU3RyaW5nIGtleSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBX05VTEwgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBX0FEREMgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBX0FERFMgPSAyOworICAgIAorICAgIC8qCisgICAgICogQ2hhcmFjdGVyIGNsYXNzZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDX0lHTk9SRSA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ19MRVRURVIgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENfUFVOQ1QgID0gMjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU19TVEFSVCAgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTX0xFVFRFUiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNfUFVOQ1QgID0gMjsKKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBTdGF0ZUVudHJ5CisgICAgeworICAgICAgICBwcml2YXRlIGludCBuZXdTdGF0ZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgYWN0aW9uOworICAgICAgICAKKyAgICAgICAgU3RhdGVFbnRyeShpbnQgdGhlU3RhdGUsIGludCB0aGVBY3Rpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ld1N0YXRlID0gdGhlU3RhdGU7CisgICAgICAgICAgICBhY3Rpb24gICA9IHRoZUFjdGlvbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXROZXdTdGF0ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRBY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWN0aW9uOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RhdGVFbnRyeVtdW10gc3RhdGVUYWJsZSA9IHsKKyAgICAgICAgICAgIHtuZXcgU3RhdGVFbnRyeShTX1NUQVJULCAgQV9OVUxMKSwgbmV3IFN0YXRlRW50cnkoU19MRVRURVIsIEFfQUREQyksIG5ldyBTdGF0ZUVudHJ5KFNfUFVOQ1QsICBBX0FERFMpfSwKKyAgICAgICAgICAgIHtuZXcgU3RhdGVFbnRyeShTX0xFVFRFUiwgQV9OVUxMKSwgbmV3IFN0YXRlRW50cnkoU19MRVRURVIsIEFfQUREQyksIG5ldyBTdGF0ZUVudHJ5KFNfUFVOQ1QsICBBX0FERFMpfSwKKyAgICAgICAgICAgIHtuZXcgU3RhdGVFbnRyeShTX1BVTkNULCAgQV9OVUxMKSwgbmV3IFN0YXRlRW50cnkoU19MRVRURVIsIEFfQUREQyksIG5ldyBTdGF0ZUVudHJ5KFNfUFVOQ1QsICBBX05VTEwpfQorICAgIH07CisKKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IE5fR1JBTV9TSVpFID0gMzsKKyAgICAKKyAgICBwcml2YXRlIGNoYXJbXSBsZXR0ZXJzID0gbmV3IGNoYXJbTl9HUkFNX1NJWkVdOworICAgIHByaXZhdGUgaW50IGxldHRlckNvdW50OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgbGV0dGVyU2V0ID0gbmV3IFVuaWNvZGVTZXQoIls6bGV0dGVyOl0iKTsKKworICAgIHByaXZhdGUgTkdyYW1QYXJzZXJDbGllbnQgY2xpZW50OworCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIE5HcmFtUGFyc2VyKE5HcmFtUGFyc2VyQ2xpZW50IHRoZUNsaWVudCkKKyAgICB7CisgICAgICAgIGNsaWVudCA9IHRoZUNsaWVudDsKKyAgICAgICAgbGV0dGVyQ291bnQgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRDbGllbnQoTkdyYW1QYXJzZXJDbGllbnQgdGhlQ2xpZW50KQorICAgIHsKKyAgICAgICAgY2xpZW50ID0gdGhlQ2xpZW50OworICAgIH0KKyAgICAKKyAgICAvLyBUT0RPIElzIHRoaXMgZ29vZCBlbm91Z2gsIG9yIGFyZSB0aGVyZSBvdGhlciBDX0lHTk9SRSBjaGFyYWN0ZXJzPworICAgIC8vIFRPRE8gQ291bGQgdGhpcyBtYWtlIExhdGluIGxldHRlcnMgQ19QVU5DVCBmb3Igbm9uLUxhdGluIHNjcmlwdHM/CisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckNsYXNzKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPT0gJ1wnJyB8fCBjaCA9PSAnXHVGRUZGJykgeworICAgICAgICAgICAgcmV0dXJuIENfSUdOT1JFOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobGV0dGVyU2V0LmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgcmV0dXJuIENfTEVUVEVSOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gQ19QVU5DVDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbGV0dGVyQ291bnQgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRMZXR0ZXIoY2hhciBsZXR0ZXIpCisgICAgeworICAgICAgICAvLyBzb21ld2hhdCBjbGV2ZXIgc3R1ZmYgZ29lcyBoZXJlLi4uICAgICAgICAKKyAgICAgICAgbGV0dGVyc1tsZXR0ZXJDb3VudCsrXSA9IGxldHRlcjsKKyAgICAgICAgCisgICAgICAgIGlmIChsZXR0ZXJDb3VudCA+PSBOX0dSQU1fU0laRSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IG5ldyBTdHJpbmcobGV0dGVycyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNsaWVudC5oYW5kbGVOR3JhbShrZXkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsZXR0ZXJDb3VudCA9IE5fR1JBTV9TSVpFIC0gMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGV0dGVyQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGxldHRlcnNbaV0gPSBsZXR0ZXJzW2kgKyAxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwYXJzZSgpCisgICAgeworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgc3RhdGUgPSAwOworCisgICAgICAgIC8vIHRoaXMgaXMgd2hlcmUgdGhlIGNsZXZlciBzdHVmZiBnb2VzLi4uCisgICAgICAgIHdoaWxlICgoY2ggPSBjbGllbnQubmV4dENoYXIoKSkgIT0gMCkgeworICAgICAgICAgICAgaW50IGNoYXJDbGFzcyA9IGdldENoYXJDbGFzcyhjaCk7CisgICAgICAgICAgICBTdGF0ZUVudHJ5IGVudHJ5ID0gc3RhdGVUYWJsZVtzdGF0ZV1bY2hhckNsYXNzXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RhdGUgPSBlbnRyeS5nZXROZXdTdGF0ZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LmdldEFjdGlvbigpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgY2FzZSBBX0FEREM6CisgICAgICAgICAgICAgICAgYWRkTGV0dGVyKENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBBX0FERFM6CisgICAgICAgICAgICAgICAgYWRkTGV0dGVyKCcgJyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAgICBjYXNlIEFfTlVMTDoKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFkZExldHRlcignICcpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvU3RhdGlzdGljc1Rvb2wuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvU3RhdGlzdGljc1Rvb2wuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjRkNzYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9TdGF0aXN0aWNzVG9vbC5qYXZhCkBAIC0wLDAgKzEsNDMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyAgICAgICAgICAgICoKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY2hhcnNldGRldC5zYmNzOworCisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBTdGF0aXN0aWNzVG9vbCBpbXBsZW1lbnRzIE5HcmFtUGFyc2VyLk5HcmFtUGFyc2VyQ2xpZW50LCBOR3JhbUxpc3QuTkdyYW1LZXlNYXBwZXIKK3sKKyAgICAvKiBUT0RPIE1ha2UgdGhpcyB1c2FnZSBzdHJpbmcgbW9yZSBzYW5lLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyB1c2FnZVN0cmluZyA9IAorICAgICAgICAiXG5Vc2FnZTogU3RhdGlzdGljc1Rvb2wgW09QVElPTlNdIFtGSUxFU11cblxuIiArCisgICAgICAgICJUaGlzIHByb2dyYW0gd2lsbCByZWFkIGluIGEgVW5pY29kZSB0ZXh0IGZpbGUgb2YgdGV4dCBpbiBhIHBhcnRpY3VsYXIgbGFuZ3VhZ2VcbiIgKworICAgICAgICAiYW5kIGNvbXB1dGUgdGhlIHN0YXRpc3RpY3MgbmVlZGVkIHRvIGRldGVjdGVkIHRoYXQgbGFuZ3VhZ2UgYW5kIGNoYXJhY3RlciBzZXQuXG4gIiArCisgICAgICAgICJPcHRpb25zOlxuIiArCisgICAgICAgICItZSAgICAgICBzcGVjaWZ5IHRoZSB0YXJnZXQgZW5jb2RpbmdcbiIgKworICAgICAgICAiLWggb3IgLT8gcHJpbnQgdGhpcyB1c2FnZSB0ZXh0LlxuIiArCisgICAgICAgICItdiAgICAgICBhbHNvIGdlbmVyYXRlIHN0YXRpc3RpY3MgZm9yIHZpc3VhbCBvcmRlci5cbiIgKworICAgICAgICAiLWwgICAgICAgb25seSBnZW5lcmF0ZSBzdGF0aXN0aWNzIGZvciBsb2dpY2FsIG9yZGVyIChjYW5jZWwgLXYpLiIgKworICAgICAgICAiLWMgICAgICAgcnVuIHRoZSBjaGVja2VyLlxuIiArCisgICAgICAgICItdCAgICAgICBydW4gdGhlIGVuY29kaW5nIHRlc3QuXG4iICsKKyAgICAgICAgImV4YW1wbGU6IGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXQuU3RhdGlzdGljc1Rvb2wgLWUgODg1OS0xIFNwYW5pc2gudHh0IjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVUZGRVJfU0laRSA9IDEwMjQ7CisgICAgCisgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyOworICAgIHByaXZhdGUgaW50IGJ1ZkluZGV4OworICAgIHByaXZhdGUgaW50IGJ1Zk1heDsKKworICAgIHByaXZhdGUgSW5wdXRGaWxlIGlucHV0RmlsZTsKKyAgICAKKyAgICBwcml2YXRlIE5HcmFtTGlzdCBuZ3JhbXM7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIGFsbEJ5dGVzID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MDAsIChieXRlKSAweDAxLCAoYnl0ZSkgMHgwMiwgKGJ5dGUpIDB4MDMsIChieXRlKSAweDA0LCAoYnl0ZSkgMHgwNSwgKGJ5dGUpIDB4MDYsIChieXRlKSAweDA3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MDgsIChieXRlKSAweDA5LCAoYnl0ZSkgMHgwQSwgKGJ5dGUpIDB4MEIsIChieXRlKSAweDBDLCAoYnl0ZSkgMHgwRCwgKGJ5dGUpIDB4MEUsIChieXRlKSAweDBGLAorICAgICAgICAgICAgKGJ5dGUpIDB4MTAsIChieXRlKSAweDExLCAoYnl0ZSkgMHgxMiwgKGJ5dGUpIDB4MTMsIChieXRlKSAweDE0LCAoYnl0ZSkgMHgxNSwgKGJ5dGUpIDB4MTYsIChieXRlKSAweDE3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MTgsIChieXRlKSAweDE5LCAoYnl0ZSkgMHgxQSwgKGJ5dGUpIDB4MUIsIChieXRlKSAweDFDLCAoYnl0ZSkgMHgxRCwgKGJ5dGUpIDB4MUUsIChieXRlKSAweDFGLAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIxLCAoYnl0ZSkgMHgyMiwgKGJ5dGUpIDB4MjMsIChieXRlKSAweDI0LCAoYnl0ZSkgMHgyNSwgKGJ5dGUpIDB4MjYsIChieXRlKSAweDI3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MjgsIChieXRlKSAweDI5LCAoYnl0ZSkgMHgyQSwgKGJ5dGUpIDB4MkIsIChieXRlKSAweDJDLCAoYnl0ZSkgMHgyRCwgKGJ5dGUpIDB4MkUsIChieXRlKSAweDJGLAorICAgICAgICAgICAgKGJ5dGUpIDB4MzAsIChieXRlKSAweDMxLCAoYnl0ZSkgMHgzMiwgKGJ5dGUpIDB4MzMsIChieXRlKSAweDM0LCAoYnl0ZSkgMHgzNSwgKGJ5dGUpIDB4MzYsIChieXRlKSAweDM3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MzgsIChieXRlKSAweDM5LCAoYnl0ZSkgMHgzQSwgKGJ5dGUpIDB4M0IsIChieXRlKSAweDNDLCAoYnl0ZSkgMHgzRCwgKGJ5dGUpIDB4M0UsIChieXRlKSAweDNGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NDAsIChieXRlKSAweDQxLCAoYnl0ZSkgMHg0MiwgKGJ5dGUpIDB4NDMsIChieXRlKSAweDQ0LCAoYnl0ZSkgMHg0NSwgKGJ5dGUpIDB4NDYsIChieXRlKSAweDQ3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NDgsIChieXRlKSAweDQ5LCAoYnl0ZSkgMHg0QSwgKGJ5dGUpIDB4NEIsIChieXRlKSAweDRDLCAoYnl0ZSkgMHg0RCwgKGJ5dGUpIDB4NEUsIChieXRlKSAweDRGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NTAsIChieXRlKSAweDUxLCAoYnl0ZSkgMHg1MiwgKGJ5dGUpIDB4NTMsIChieXRlKSAweDU0LCAoYnl0ZSkgMHg1NSwgKGJ5dGUpIDB4NTYsIChieXRlKSAweDU3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NTgsIChieXRlKSAweDU5LCAoYnl0ZSkgMHg1QSwgKGJ5dGUpIDB4NUIsIChieXRlKSAweDVDLCAoYnl0ZSkgMHg1RCwgKGJ5dGUpIDB4NUUsIChieXRlKSAweDVGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4N0IsIChieXRlKSAweDdDLCAoYnl0ZSkgMHg3RCwgKGJ5dGUpIDB4N0UsIChieXRlKSAweDdGLAorICAgICAgICAgICAgKGJ5dGUpIDB4ODAsIChieXRlKSAweDgxLCAoYnl0ZSkgMHg4MiwgKGJ5dGUpIDB4ODMsIChieXRlKSAweDg0LCAoYnl0ZSkgMHg4NSwgKGJ5dGUpIDB4ODYsIChieXRlKSAweDg3LAorICAgICAgICAgICAgKGJ5dGUpIDB4ODgsIChieXRlKSAweDg5LCAoYnl0ZSkgMHg4QSwgKGJ5dGUpIDB4OEIsIChieXRlKSAweDhDLCAoYnl0ZSkgMHg4RCwgKGJ5dGUpIDB4OEUsIChieXRlKSAweDhGLAorICAgICAgICAgICAgKGJ5dGUpIDB4OTAsIChieXRlKSAweDkxLCAoYnl0ZSkgMHg5MiwgKGJ5dGUpIDB4OTMsIChieXRlKSAweDk0LCAoYnl0ZSkgMHg5NSwgKGJ5dGUpIDB4OTYsIChieXRlKSAweDk3LAorICAgICAgICAgICAgKGJ5dGUpIDB4OTgsIChieXRlKSAweDk5LCAoYnl0ZSkgMHg5QSwgKGJ5dGUpIDB4OUIsIChieXRlKSAweDlDLCAoYnl0ZSkgMHg5RCwgKGJ5dGUpIDB4OUUsIChieXRlKSAweDlGLAorICAgICAgICAgICAgKGJ5dGUpIDB4QTAsIChieXRlKSAweEExLCAoYnl0ZSkgMHhBMiwgKGJ5dGUpIDB4QTMsIChieXRlKSAweEE0LCAoYnl0ZSkgMHhBNSwgKGJ5dGUpIDB4QTYsIChieXRlKSAweEE3LAorICAgICAgICAgICAgKGJ5dGUpIDB4QTgsIChieXRlKSAweEE5LCAoYnl0ZSkgMHhBQSwgKGJ5dGUpIDB4QUIsIChieXRlKSAweEFDLCAoYnl0ZSkgMHhBRCwgKGJ5dGUpIDB4QUUsIChieXRlKSAweEFGLAorICAgICAgICAgICAgKGJ5dGUpIDB4QjAsIChieXRlKSAweEIxLCAoYnl0ZSkgMHhCMiwgKGJ5dGUpIDB4QjMsIChieXRlKSAweEI0LCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4QjYsIChieXRlKSAweEI3LAorICAgICAgICAgICAgKGJ5dGUpIDB4QjgsIChieXRlKSAweEI5LCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4QkIsIChieXRlKSAweEJDLCAoYnl0ZSkgMHhCRCwgKGJ5dGUpIDB4QkUsIChieXRlKSAweEJGLAorICAgICAgICAgICAgKGJ5dGUpIDB4QzAsIChieXRlKSAweEMxLCAoYnl0ZSkgMHhDMiwgKGJ5dGUpIDB4QzMsIChieXRlKSAweEM0LCAoYnl0ZSkgMHhDNSwgKGJ5dGUpIDB4QzYsIChieXRlKSAweEM3LAorICAgICAgICAgICAgKGJ5dGUpIDB4QzgsIChieXRlKSAweEM5LCAoYnl0ZSkgMHhDQSwgKGJ5dGUpIDB4Q0IsIChieXRlKSAweENDLCAoYnl0ZSkgMHhDRCwgKGJ5dGUpIDB4Q0UsIChieXRlKSAweENGLAorICAgICAgICAgICAgKGJ5dGUpIDB4RDAsIChieXRlKSAweEQxLCAoYnl0ZSkgMHhEMiwgKGJ5dGUpIDB4RDMsIChieXRlKSAweEQ0LCAoYnl0ZSkgMHhENSwgKGJ5dGUpIDB4RDYsIChieXRlKSAweEQ3LAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RhdGlzdGljc1Rvb2woKQorICAgIHsKKyAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbQlVGRkVSX1NJWkVdOworICAgICAgICAKKyAgICAgICAgYnVmZmVyWzBdID0gJyAnOworICAgICAgICBidWZJbmRleCA9IDA7CisgICAgICAgIGJ1Zk1heCA9IDE7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHVzYWdlU3RyaW5nKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBleGNlcHRpb25FcnJvcihFeGNlcHRpb24gZSkKKyAgICB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiaW9FcnJvcjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgbmV4dEJ1ZmZlcihJbnB1dEZpbGUgaW5wdXRGaWxlKQorICAgIHsKKyAgICAgICAgYnVmSW5kZXggPSAwOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGlucHV0RmlsZS5yZWFkKGJ1ZmZlcik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjaGFyIG5leHRDaGFyKCkKKyAgICB7CisgICAgICAgIGlmIChidWZJbmRleCA+PSBidWZNYXgpIHsKKyAgICAgICAgICAgIGJ1Zk1heCA9IG5leHRCdWZmZXIoaW5wdXRGaWxlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGJ1Zk1heCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYnVmZmVyW2J1ZkluZGV4KytdOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVOR3JhbShTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgbmdyYW1zLnB1dChrZXkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgT2JqZWN0IG1hcEtleShTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGtleTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBOR3JhbUxpc3QgZHVtcE5HcmFtcygpCisgICAgeworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBpbnB1dEZpbGUuZ2V0UGF0aCgpOworICAgICAgICBpbnQgZXh0ZW5zaW9uID0gZmlsZW5hbWUubGFzdEluZGV4T2YoIi4iKTsKKyAgICAgICAgU3RyaW5nIG91dHB1dEZpbGVOYW1lID0gZmlsZW5hbWUuc3Vic3RyaW5nKDAsIGV4dGVuc2lvbikgKyAiLnJhdyIgKyBmaWxlbmFtZS5zdWJzdHJpbmcoZXh0ZW5zaW9uKTsKKyAgICAgICAgUHJpbnRTdHJlYW0gb3V0cHV0OworICAgICAgICBkb3VibGUgY3VtdWxhdGl2ZSA9IDA7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0cHV0ID0gbmV3IFByaW50U3RyZWFtKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dHB1dEZpbGVOYW1lKSwgdHJ1ZSwgIlVURjgiKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI/IENvdWxkIG5vdCBvcGVuICIgKyBvdXRwdXRGaWxlTmFtZSArICIgZm9yIHdyaXRpbmcuIik7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGlucHV0RmlsZS5nZXRGaWxlbmFtZSgpICsgIjogIiArIG5ncmFtcy5nZXRVbmlxdWVOR3JhbXMoKSArICIvIiArIG5ncmFtcy5nZXRUb3RhbE5HcmFtcygpKTsKKyAgICAgICAgCisgICAgICAgIEFycmF5TGlzdCBhcnJheSA9IG5ldyBBcnJheUxpc3QobmdyYW1zLnZhbHVlcygpKTsKKyAgICAgICAgCisgICAgICAgIENvbGxlY3Rpb25zLnNvcnQoYXJyYXkpOworICAgICAgICAKKyAgICAgICAgTkdyYW1MaXN0IHN0YXRzID0gbmV3IE5HcmFtTGlzdChpbnB1dEZpbGUpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgdG90YWxOR3JhbXMgPSBuZ3JhbXMuZ2V0VG90YWxOR3JhbXMoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBhcnJheS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7IGNvdW50ICs9IDEpIHsKKyAgICAgICAgICAgIE5HcmFtTGlzdC5OR3JhbSBuZ3JhbSAgPSAoTkdyYW1MaXN0Lk5HcmFtKSBpdC5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBuZ3JhbS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgaW50IHJlZkNvdW50ID0gbmdyYW0uZ2V0UmVmQ291bnQoKTsKKyAgICAgICAgICAgIGRvdWJsZSByYXRpbyAgPSAoZG91YmxlKSByZWZDb3VudCAvIHRvdGFsTkdyYW1zICogMTAwLjA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGN1bXVsYXRpdmUgKz0gcmF0aW87CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRPRE8gY2hlY2sgc2hvdWxkIGJlIGNvdW50IDwgbWF4ICYmIGN1bXVsYXRpdmUgPCBtYXhQZXJjZW50CisgICAgICAgICAgICBpZiAoY291bnQgPCA2NCkgeworICAgICAgICAgICAgICAgIHN0YXRzLnB1dCh2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKHZhbHVlICsgIlx0IiArIHJlZkNvdW50ICsgIlx0IiArIHJhdGlvICsgIiVcdCIgKyBjdW11bGF0aXZlICsgIiUiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LmNsb3NlKCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gc3RhdHM7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZVN0YXRpc3RpY3MoQXJyYXlMaXN0IGtleUxpc3QsIGJvb2xlYW4gdmlzdWFsKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gaW5wdXRGaWxlLmdldFBhdGgoKTsKKyAgICAgICAgaW50IGV4dGVuc2lvbiA9IGZpbGVuYW1lLmxhc3RJbmRleE9mKCIuIik7CisgICAgICAgIFN0cmluZyBvdXRwdXRGaWxlTmFtZSA9IGZpbGVuYW1lLnN1YnN0cmluZygwLCBleHRlbnNpb24pICsgIi0iICsgaW5wdXRGaWxlLmdldEVuY29kaW5nKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc3VhbD8gIi12aXN1YWwuZGF0IiA6ICIuZGF0Iik7CisgICAgICAgIFByaW50U3RyZWFtIG91dHB1dDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdXRwdXQgPSBuZXcgUHJpbnRTdHJlYW0oCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0RmlsZU5hbWUpLCB0cnVlLCAiQVNDSUkiKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI/IENvdWxkIG5vdCBvcGVuICIgKyBvdXRwdXRGaWxlTmFtZSArICIgZm9yIHdyaXRpbmcuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludCgiICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBrZXlMaXN0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgaSArPSAxKSB7CisgICAgICAgICAgICBJbnRlZ2VyIG5ncmFtID0gKEludGVnZXIpIGl0Lm5leHQoKTsKKyAgICAgICAgCisgICAgICAgICAgICBpZiAoaSAlIDE2ID09IDApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlxuICAgICAgICAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIweCIgKyBVdGlsaXR5LmhleChuZ3JhbS5pbnRWYWx1ZSgpLCA2KSArICIsICIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigiXG4gICAgfTtcbiIpOworICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogR2VuZXJhdGUgdGhlIGJ5dGUgbWFwCisgICAgICAgICAqLworICAgICAgICBjaGFyW10gdW5pY29kZXMgPSBpbnB1dEZpbGUuZGVjb2RlKGFsbEJ5dGVzKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGIgPSAwOyBiIDwgMjU2OyBiICs9IDEpIHsKKyAgICAgICAgICAgIGNoYXIgdW5pY29kZSAgPSB1bmljb2Rlc1tiXTsKKyAgICAgICAgICAgIGludCBjaGFyQ2xhc3MgPSBOR3JhbVBhcnNlci5nZXRDaGFyQ2xhc3ModW5pY29kZSk7CisgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChjaGFyQ2xhc3MpIHsKKyAgICAgICAgICAgIGNhc2UgTkdyYW1QYXJzZXIuQ19MRVRURVI6CisgICAgICAgICAgICAgICAgdW5pY29kZXNbYl0gPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UodW5pY29kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAgICAgICAgY2FzZSBOR3JhbVBhcnNlci5DX1BVTkNUOgorICAgICAgICAgICAgICAgIHVuaWNvZGVzW2JdID0gJyAnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgTkdyYW1QYXJzZXIuQ19JR05PUkU6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHVuaWNvZGVzW2JdID0gJ1wwJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYnl0ZVtdIGJ5dGVNYXAgPSBpbnB1dEZpbGUuZW5jb2RlKHVuaWNvZGVzKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludCgiICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geyIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgYiA9IDA7IGIgPCAyNTY7IGIgKz0gMSkgeworICAgICAgICAgICAgaWYgKGIgJSA4ID09IDApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlxuICAgICAgICAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIoYnl0ZSkgMHgiICsgVXRpbGl0eS5oZXgoYnl0ZU1hcFtiXSAmIDB4RkYsIDIpICsgIiwgIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCJcbiAgICB9OyIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTkdyYW1MaXN0IGNvbGxlY3RTdGF0aXN0aWNzKElucHV0RmlsZSBmaWxlKQorICAgIHsKKyAgICAgICAgaWYgKCFmaWxlLm9wZW4oKSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlucHV0RmlsZSA9IGZpbGU7CisgICAgICAgIAorICAgICAgICBOR3JhbVBhcnNlciBwYXJzZXIgPSBuZXcgTkdyYW1QYXJzZXIodGhpcyk7CisgICAgICAgIAorICAgICAgICBuZ3JhbXMgPSBuZXcgTkdyYW1MaXN0KHRoaXMpOworICAgICAgICBwYXJzZXIucGFyc2UoKTsKKyAgICAgICAgCisgICAgICAgIGZpbGUuY2xvc2UoKTsKKyAgICAgICAgCisgICAgICAgIE5HcmFtTGlzdCBzdGF0cyAgICA9IGR1bXBOR3JhbXMoKTsKKyAgICAgICAgQXJyYXlMaXN0IHN0YXRLZXlzID0gbmV3IEFycmF5TGlzdChzdGF0cy5rZXlzKCkpOworICAgICAgICAKKyAgICAgICAgQ29sbGVjdGlvbnMuc29ydChzdGF0S2V5cyk7CisgICAgICAgIHdyaXRlU3RhdGlzdGljcyhzdGF0S2V5cywgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKGlucHV0RmlsZS5nZXRWaXN1YWxPcmRlcigpKSB7CisgICAgICAgICAgICBBcnJheUxpc3QgcmV2ZXJzZWQgPSBuZXcgQXJyYXlMaXN0KHN0YXRLZXlzLnNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzdGF0S2V5cy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgSW50ZWdlciBrZXkgPSAoSW50ZWdlcikgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGludCBrID0ga2V5LmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaW50IHIgPSAwOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlIChrICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgciA9IChyIDw8IDgpIHwgKGsgJiAweEZGKTsKKyAgICAgICAgICAgICAgICAgICAgayA+Pj0gODsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmV2ZXJzZWQuYWRkKG5ldyBJbnRlZ2VyKHIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ29sbGVjdGlvbnMuc29ydChyZXZlcnNlZCk7CisgICAgICAgICAgICB3cml0ZVN0YXRpc3RpY3MocmV2ZXJzZWQsIHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gc3RhdHM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBMaXN0IGxpc3QgPSBBcnJheXMuYXNMaXN0KGFyZ3MpOworICAgICAgICBJbnB1dEZpbGVbXSBpbnB1dF9maWxlcyA9IG5ldyBJbnB1dEZpbGVbYXJncy5sZW5ndGhdOworICAgICAgICBpbnQgZmlsZV9jb3VudCA9IDA7CisgICAgICAgIFN0cmluZyBlbmNvZGluZyA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gcnVuX2NoZWNrZXIgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBlbmNvZGluZ190ZXN0ID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gdmlzdWFsX29yZGVyID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbGlzdC5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7IC8qYW55dGhpbmc/Ki8pIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItdiIpKSB7CisgICAgICAgICAgICAgICAgdmlzdWFsX29yZGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWwiKSkgeworICAgICAgICAgICAgICAgIHZpc3VhbF9vcmRlciA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItYyIpKSB7CisgICAgICAgICAgICAgICAgcnVuX2NoZWNrZXIgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItdCIpKSB7CisgICAgICAgICAgICAgICAgZW5jb2RpbmdfdGVzdCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1lIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6IG1pc3NpbmcgZW5jb2RpbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCEgKGFyZy5lcXVhbHMoIi1oIikgfHwgYXJnLmVxdWFscygiLT8iKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdW5rbm93biBvcHRpb24gIiArIGFyZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlucHV0X2ZpbGVzW2ZpbGVfY291bnQrK10gPSBuZXcgSW5wdXRGaWxlKGFyZywgZW5jb2RpbmcsIHZpc3VhbF9vcmRlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZihmaWxlX2NvdW50ID09IDApeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdGhlcmUgYXJlIG5vIGZpbGVzIHRvIHByb2Nlc3MuIik7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdGF0aXN0aWNzVG9vbCB0b29sID0gbmV3IFN0YXRpc3RpY3NUb29sKCk7CisgICAgICAgIENoZWNrZXJbXSBjaGVja2VycyAgPSBuZXcgQ2hlY2tlcltmaWxlX2NvdW50XTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBmaWxlX2NvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIElucHV0RmlsZSBmaWxlID0gaW5wdXRfZmlsZXNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNoZWNrZXJzW2ldID0gbmV3IENoZWNrZXIodG9vbC5jb2xsZWN0U3RhdGlzdGljcyhmaWxlKSwgZmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoZWNrZXJzCisgICAgICAgICAqLworICAgICAgICBpZiAocnVuX2NoZWNrZXIpIHsKKyAgICAgICAgICAgIGZvcihpbnQgYyA9IDA7IGMgPCBmaWxlX2NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgICAgICBDaGVja2VyIGNoZWNrZXIgPSBjaGVja2Vyc1tjXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IoaW50IGYgPSAwOyBmIDwgZmlsZV9jb3VudDsgZiArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrZXIuY2hlY2soaW5wdXRfZmlsZXNbZl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogRGV0ZWN0aW9uIHRlc3QKKyAgICAgICAgICovCisgICAgICAgIGlmIChlbmNvZGluZ190ZXN0KSB7CisgICAgICAgICAgICBjaGFyW10gYnVmZmVyICAgPSBuZXcgY2hhclsxMjhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRldGVjdGlvbiB0ZXN0Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGYgPSAwOyBmIDwgZmlsZV9jb3VudDsgZiArPSAxKSB7CisgICAgICAgICAgICAgICAgSW5wdXRGaWxlIGZpbGUgPSBpbnB1dF9maWxlc1tmXTsKKyAgICAgICAgICAgICAgICBpbnRbXSBoaXN0b2dyYW0gPSBuZXcgaW50W2ZpbGVfY291bnRdOworICAgICAgICAgICAgICAgIGludCBjaGFyQ291bnQsIG1pc3NlcyA9IDA7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZpbGUuZ2V0RmlsZW5hbWUoKSArICIoIiArIGZpbGUuZ2V0RW5jb2RpbmcoKSArICIpOiIpOworICAgICAgICAgICAgICAgIGZpbGUub3BlbigpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgZmlsZV9jb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrZXJzW2NdLnNldE1hcHBlcihmaWxlKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGZvciBlYWNoIGJ1ZmZlcgorICAgICAgICAgICAgICAgIC8vICAgICBmb3IgZWFjaCBjaGVja2VyCisgICAgICAgICAgICAgICAgLy8gICAgICAgICBjYWxsIGNoZWNrQnVmZmVyLCBzYXZlIHNjb3JlCisgICAgICAgICAgICAgICAgLy8gICAgIGZpbmQgaGlnaGVzdCBzY29yZSwgdXBkYXRlIGhpc3RvZ3JhbSBmb3IgdGhhdCBjaGVja2VyCisgICAgICAgICAgICAgICAgLy8gc2hvdyBjaGVja2VyIGhpc3RvZ3JhbQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlICgoY2hhckNvdW50ID0gZmlsZS5yZWFkKGJ1ZmZlcikpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpbnRbXSBzY29yZXMgPSBuZXcgaW50W2ZpbGVfY291bnRdOworICAgICAgICAgICAgICAgICAgICBpbnQgYmVzdEZpdCA9IC0xLCBtYXhTY29yZSA9IDA7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IGZpbGVfY291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmVzW2NdID0gY2hlY2tlcnNbY10uY2hlY2tCdWZmZXIoYnVmZmVyLCBjaGFyQ291bnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IGZpbGVfY291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjb3JlID0gc2NvcmVzW2NdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcmUgPiBtYXhTY29yZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFNjb3JlID0gc2NvcmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVzdEZpdCA9IGM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChiZXN0Rml0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpc3RvZ3JhbVtiZXN0Rml0XSArPSAxOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXNzZXMgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IGZpbGVfY291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAiICsgY2hlY2tlcnNbY10uZ2V0TGFuZ3VhZ2UoKSArICI6ICIgKyBoaXN0b2dyYW1bY10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobWlzc2VzID4gMCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICBOT05FOiAiICsgbWlzc2VzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NvbXByZXNzaW9uL0NvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjRmZDdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NvbXByZXNzaW9uL0NvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IuamF2YQpAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY29tcHJlc3Npb247CisKKworLyoqCisgKiBVdGlsaXR5IGNsYXNzIHRvIGdlbmVyYXRlIHRoZSB0YWJsZXMgdXNlZCBieSB0aGUgU0NTVSBpbnRlcmZhY2UgYW5kCisgKiB0aGUgVW5pY29kZUNvbXByZXNzb3IgY2xhc3MuCisgKgorICogQGF1dGhvciBTdGVwaGVuIEYuIEJvb3RoCisgKiBAdmVyc2lvbiAxLjAgMDggTWFyIDk5CisgKi8KK2NsYXNzIENvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IKK3sKKyAgICAvLyBkdXBsaWNhdGUgb2YgY29uc3RhbnRzIGluIFNDU1UKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgTEFUSU5JTkRFWCAgICAgICAgICAgICAgICAgID0gMHhGOTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IElQQUVYVEVOU0lPTklOREVYICAgICAgICAgICA9IDB4RkE7CisgICAgZmluYWwgc3RhdGljIGludCBHUkVFS0lOREVYICAgICAgICAgICAgICAgICAgPSAweEZCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgQVJNRU5JQU5JTkRFWCAgICAgICAgICAgICAgID0gMHhGQzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEhJUkFHQU5BSU5ERVggICAgICAgICAgICAgICA9IDB4RkQ7CisgICAgZmluYWwgc3RhdGljIGludCBLQVRBS0FOQUlOREVYICAgICAgICAgICAgICAgPSAweEZFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgSEFMRldJRFRIS0FUQUtBTkFJTkRFWCAgICAgID0gMHhGRjsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORVggICAgICAgICAgICAgICAgICAgID0gMHgwQjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNSRVNFUlZFRCAgICAgICAgICAgICAgICAgICA9IDB4MEM7ICAvLyByZXNlcnZlZCB2YWx1ZQorICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFVSAgICAgICAgICAgICAgICAgICAgID0gMHgwRTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0VVICAgICAgICAgICAgICAgICAgICA9IDB4MEY7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTAgICAgICAgICAgICAgICAgICAgICA9IDB4MDE7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUxICAgICAgICAgICAgICAgICAgICAgPSAweDAyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMiAgICAgICAgICAgICAgICAgICAgID0gMHgwMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTMgICAgICAgICAgICAgICAgICAgICA9IDB4MDQ7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU0ICAgICAgICAgICAgICAgICAgICAgPSAweDA1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNSAgICAgICAgICAgICAgICAgICAgID0gMHgwNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTYgICAgICAgICAgICAgICAgICAgICA9IDB4MDc7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU3ICAgICAgICAgICAgICAgICAgICAgPSAweDA4OworCisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMCAgICAgICAgICAgICAgICAgICAgPSAweDEwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTEgICAgICAgICAgICAgICAgICAgID0gMHgxMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UyICAgICAgICAgICAgICAgICAgICA9IDB4MTI7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMyAgICAgICAgICAgICAgICAgICAgPSAweDEzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTQgICAgICAgICAgICAgICAgICAgID0gMHgxNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U1ICAgICAgICAgICAgICAgICAgICA9IDB4MTU7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNiAgICAgICAgICAgICAgICAgICAgPSAweDE2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTcgICAgICAgICAgICAgICAgICAgID0gMHgxNzsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTAgICAgICAgICAgICAgICAgICAgID0gMHgxODsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUxICAgICAgICAgICAgICAgICAgICA9IDB4MTk7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMiAgICAgICAgICAgICAgICAgICAgPSAweDFBOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTMgICAgICAgICAgICAgICAgICAgID0gMHgxQjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU0ICAgICAgICAgICAgICAgICAgICA9IDB4MUM7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNSAgICAgICAgICAgICAgICAgICAgPSAweDFEOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTYgICAgICAgICAgICAgICAgICAgID0gMHgxRTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU3ICAgICAgICAgICAgICAgICAgICA9IDB4MUY7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gVW5pY29kZSBtb2RlIHRhZ3MKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMCAgICAgICAgICAgICAgICAgICAgPSAweEUwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTEgICAgICAgICAgICAgICAgICAgID0gMHhFMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UyICAgICAgICAgICAgICAgICAgICA9IDB4RTI7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMyAgICAgICAgICAgICAgICAgICAgPSAweEUzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTQgICAgICAgICAgICAgICAgICAgID0gMHhFNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U1ICAgICAgICAgICAgICAgICAgICA9IDB4RTU7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNiAgICAgICAgICAgICAgICAgICAgPSAweEU2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTcgICAgICAgICAgICAgICAgICAgID0gMHhFNzsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTAgICAgICAgICAgICAgICAgICAgID0gMHhFODsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUxICAgICAgICAgICAgICAgICAgICA9IDB4RTk7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMiAgICAgICAgICAgICAgICAgICAgPSAweEVBOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTMgICAgICAgICAgICAgICAgICAgID0gMHhFQjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU0ICAgICAgICAgICAgICAgICAgICA9IDB4RUM7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNSAgICAgICAgICAgICAgICAgICAgPSAweEVEOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTYgICAgICAgICAgICAgICAgICAgID0gMHhFRTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU3ICAgICAgICAgICAgICAgICAgICA9IDB4RUY7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVRVU9URVUgICAgICAgICAgICAgICAgICAgICA9IDB4RjA7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FWCAgICAgICAgICAgICAgICAgICAgPSAweEYxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVVJFU0VSVkVEICAgICAgICAgICAgICAgICAgID0gMHhGMjsgIC8vIHJlc2VydmVkIHZhbHVlCisKKyAgICBmaW5hbCBzdGF0aWMgaW50IEJMT0NLU0laRSA9IDB4RkY7CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgdGhlIHRhYmxlIHVzZWQgYXMgc09mZnNldFRhYmxlIGluIFNDU1UuCisgICAgICogVGhpcyB0YWJsZSBjb250YWlucyBwcmVmb3JtZWQgaW5kaWNlcyBzbyB3ZSBjYW4gZG8gYXJyYXkgbG9va3VwcyAKKyAgICAgKiBpbnN0ZWFkIG9mIGNhbGN1bGF0aW9ucyBmb3Igc3BlZWQgZHVyaW5nIGRlY29tcHJlc3Npb24uCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcHJpbnRPZmZzZXRUYWJsZSgpCisgICAgeworICAgICAgICBpbnQgICAgIGkgICAgICAgICAgID0gMDsKKyAgICBpbnQgW10gICAgb2Zmc2V0VGFibGUgPSBuZXcgaW50IFsgQkxPQ0tTSVpFICsgMSBdOworCisgICAgICAgIC8vIDB4MDAgaXMgcmVzZXJ2ZWQKKworICAgICAgICAvLyBoYWxmIGJsb2NrcyBmcm9tIFUrMDA4MCB0byBVKzMzODAKKyAgICAgICAgZm9yKCBpID0gMHgwMTsgaSA8IDB4Njg7IGkrKyApCisgICAgICAgICAgICBvZmZzZXRUYWJsZVtpXSA9IGkgKiAweDgwOworICAgIAorICAgICAgICAvLyBoYWxmIGJsb2NrcyBmcm9tIFUrRTAwMCB0byBVK0ZGODAKKyAgICAgICAgZm9yKCBpID0gMHg2ODsgaSA8IDB4QTg7IGkrKyApCisgICAgICAgICAgICBvZmZzZXRUYWJsZVtpXSA9IChpICogMHg4MCkgKyAweEFDMDA7CisgICAgCisgICAgICAgIC8vIDB4QTguLjB4RjggaXMgcmVzZXJ2ZWQKKyAKKyAgICAgICAgb2Zmc2V0VGFibGVbIExBVElOSU5ERVggXSA9IDB4MDBDMDsKKyAgICAgICAgb2Zmc2V0VGFibGVbIElQQUVYVEVOU0lPTklOREVYIF0gPSAweDAyNTA7CisgICAgICAgIG9mZnNldFRhYmxlWyBHUkVFS0lOREVYIF0gPSAweDAzNzA7CisgICAgICAgIG9mZnNldFRhYmxlWyBBUk1FTklBTklOREVYIF0gPSAweDA1MzA7CisgICAgICAgIG9mZnNldFRhYmxlWyBISVJBR0FOQUlOREVYIF0gPSAweDMwNDA7CisgICAgICAgIG9mZnNldFRhYmxlWyBLQVRBS0FOQUlOREVYIF0gPSAweDMwQTA7CisgICAgICAgIG9mZnNldFRhYmxlWyBIQUxGV0lEVEhLQVRBS0FOQUlOREVYIF0gPSAweEZGNjA7CisKKyAgICAgICAgLy8gZHVtcCB0aGUgZ2VuZXJhdGVkIHRhYmxlCisgICAgU3lzdGVtLm91dC5wcmludGxuKCJzdGF0aWMgaW50IFtdIHNPZmZzZXRUYWJsZSA9IHsiKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgb2Zmc2V0VGFibGUubGVuZ3RoIC0gMTsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhvZmZzZXRUYWJsZVtpXSkKKyAgICAgICAgICAgICAgICAgKyAiLCAiKTsKKyAgICAgICAgZm9yKGkgPSBvZmZzZXRUYWJsZS5sZW5ndGggLSAxOyBpIDwgb2Zmc2V0VGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9mZnNldFRhYmxlW2ldKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYXRlIHRoZSB0YWJsZSB1c2VkIGFzIHNTaW5nbGVUYWdUYWJsZSBpbiBVbmljb2RlQ29tcHJlc3Nvci4KKyAgICAgKiBUaGlzIHRhYmxlIGNvbnRhaW5zIGJvb2xlYW4gdmFsdWVzIGluZGljYXRpbmcgaWYgYSBieXRlIGlzIGEKKyAgICAgKiBzaW5nbGUtYnl0ZSBtb2RlIHRhZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBwcmludFNpbmdsZVRhZ1RhYmxlKCkKKyAgICB7CisgICAgICAgIGludCAgICAgICAgaSAgICAgICAgICAgICAgPSAwOworICAgIGJvb2xlYW4gW10gc2luZ2xlVGFnVGFibGUgPSBuZXcgYm9vbGVhbiAgWyBCTE9DS1NJWkUgKyAxIF07CisKKyAgICAgICAgZm9yKCBpID0gMHgwMDsgaSA8PSBCTE9DS1NJWkU7IGkrKyApIHsKKyAgICAgICAgICAgIHN3aXRjaCggaSApIHsKKyAgICAgICAgCisgICAgICAgIGNhc2UgU1FVT1RFVTogIGNhc2UgU0NIQU5HRVU6IAorICAgICAgICBjYXNlIFNERUZJTkVYOiBjYXNlIFNSRVNFUlZFRDoKKyAgICAgICAgY2FzZSBTUVVPVEUwOiAgY2FzZSBTUVVPVEUxOiAgCisgICAgICAgIGNhc2UgU1FVT1RFMjogIGNhc2UgU1FVT1RFMzoKKyAgICAgICAgY2FzZSBTUVVPVEU0OiAgY2FzZSBTUVVPVEU1OiAgCisgICAgICAgIGNhc2UgU1FVT1RFNjogIGNhc2UgU1FVT1RFNzoKKyAgICAgICAgY2FzZSBTQ0hBTkdFMDogY2FzZSBTQ0hBTkdFMTogCisgICAgICAgIGNhc2UgU0NIQU5HRTI6IGNhc2UgU0NIQU5HRTM6CisgICAgICAgIGNhc2UgU0NIQU5HRTQ6IGNhc2UgU0NIQU5HRTU6IAorICAgICAgICBjYXNlIFNDSEFOR0U2OiBjYXNlIFNDSEFOR0U3OgorICAgICAgICBjYXNlIFNERUZJTkUwOiBjYXNlIFNERUZJTkUxOiAKKyAgICAgICAgY2FzZSBTREVGSU5FMjogY2FzZSBTREVGSU5FMzoKKyAgICAgICAgY2FzZSBTREVGSU5FNDogY2FzZSBTREVGSU5FNTogCisgICAgICAgIGNhc2UgU0RFRklORTY6IGNhc2UgU0RFRklORTc6CisgICAgICAgIHNpbmdsZVRhZ1RhYmxlW2ldID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgIHNpbmdsZVRhZ1RhYmxlW2ldID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gZHVtcCB0aGUgZ2VuZXJhdGVkIHRhYmxlCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzU2luZ2xlVGFnVGFibGUgPSB7Iik7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHNpbmdsZVRhZ1RhYmxlLmxlbmd0aCAtIDE7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc2luZ2xlVGFnVGFibGVbaV0gKyAiLCAiKTsKKyAgICAgICAgZm9yKGkgPSBzaW5nbGVUYWdUYWJsZS5sZW5ndGggLSAxOyBpIDwgc2luZ2xlVGFnVGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHNpbmdsZVRhZ1RhYmxlW2ldKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifTsiKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgdGhlIHRhYmxlIHVzZWQgYXMgc1VuaWNvZGVUYWdUYWJsZSBpbiAKKyAgICAgKiBUaGlzIHRhYmxlIGNvbnRhaW5zIGJvb2xlYW4gdmFsdWVzIGluZGljYXRpbmcgaWYgYSBieXRlIGlzIGEKKyAgICAgKiB1bmljb2RlIG1vZGUgdGFnLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHByaW50VW5pY29kZVRhZ1RhYmxlKCkKKyAgICB7CisgICAgICAgIGludCAgICAgICAgaSAgICAgICAgICAgICAgID0gMDsKKyAgICBib29sZWFuIFtdIHVuaWNvZGVUYWdUYWJsZSA9IG5ldyBib29sZWFuICBbIEJMT0NLU0laRSArIDEgXTsKKworICAgICAgICBmb3IoIGkgPSAweDAwOyBpIDw9IEJMT0NLU0laRTsgaSsrICkgeworICAgICAgICAgICAgc3dpdGNoKCBpICkgeworICAgICAgICBjYXNlIFVRVU9URVU6ICBjYXNlIFVERUZJTkVYOiAKKyAgICAgICAgY2FzZSBVUkVTRVJWRUQ6CisgICAgICAgIGNhc2UgVUNIQU5HRTA6IGNhc2UgVUNIQU5HRTE6IAorICAgICAgICBjYXNlIFVDSEFOR0UyOiBjYXNlIFVDSEFOR0UzOgorICAgICAgICBjYXNlIFVDSEFOR0U0OiBjYXNlIFVDSEFOR0U1OiAKKyAgICAgICAgY2FzZSBVQ0hBTkdFNjogY2FzZSBVQ0hBTkdFNzoKKyAgICAgICAgY2FzZSBVREVGSU5FMDogY2FzZSBVREVGSU5FMTogCisgICAgICAgIGNhc2UgVURFRklORTI6IGNhc2UgVURFRklORTM6CisgICAgICAgIGNhc2UgVURFRklORTQ6IGNhc2UgVURFRklORTU6IAorICAgICAgICBjYXNlIFVERUZJTkU2OiBjYXNlIFVERUZJTkU3OgorICAgICAgICB1bmljb2RlVGFnVGFibGVbaV0gPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgdW5pY29kZVRhZ1RhYmxlW2ldID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gZHVtcCB0aGUgZ2VuZXJhdGVkIHRhYmxlCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzVW5pY29kZVRhZ1RhYmxlID0geyIpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCB1bmljb2RlVGFnVGFibGUubGVuZ3RoIC0gMTsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCh1bmljb2RlVGFnVGFibGVbaV0gKyAiLCAiKTsKKyAgICAgICAgZm9yKGkgPSB1bmljb2RlVGFnVGFibGUubGVuZ3RoIC0gMTsgaSA8IHVuaWNvZGVUYWdUYWJsZS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQodW5pY29kZVRhZ1RhYmxlW2ldKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifTsiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJndikKKyAgICB7CisgICAgICAgIHByaW50T2Zmc2V0VGFibGUoKTsKKyAgICAgICAgcHJpbnRTaW5nbGVUYWdUYWJsZSgpOworICAgICAgICBwcmludFVuaWNvZGVUYWdUYWJsZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI0YTNlYzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Rvb2wgdXNlZCB0byByZWJ1aWxkIHRhYmxlcyB1c2VkIGJ5IHRoZSBVbmljb2RlIGNvbXByZXNzaW9uIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MTY1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9BUElEYXRhLmphdmEKQEAgLTAsMCArMSwxNDggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBSZXByZXNlbnQgYSBmaWxlIG9mIEFQSUluZm8gcmVjb3Jkcy4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLnppcC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgQVBJRGF0YSB7CisgICAgaW50IHZlcnNpb247CisgICAgU3RyaW5nIG5hbWU7CisgICAgU3RyaW5nIGJhc2U7CisgICAgVHJlZVNldCBzZXQ7CisKKyAgICBzdGF0aWMgQVBJRGF0YSByZWFkKEJ1ZmZlcmVkUmVhZGVyIGJyLCBib29sZWFuIGludGVybmFsKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBUElEYXRhIGRhdGEgPSBuZXcgQVBJRGF0YSgpOworCisgICAgICAgICAgICBkYXRhLnZlcnNpb24gPSBJbnRlZ2VyLnBhcnNlSW50KEFQSUluZm8ucmVhZFRva2VuKGJyKSk7IC8vIHZlcnNpb24KKyAgICAgICAgICAgIGlmIChkYXRhLnZlcnNpb24gPiBBUElJbmZvLlZFUlNJT04pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJkYXRhIHZlcnNpb24gIiArIGRhdGEudmVyc2lvbiArICIgaXMgbmV3ZXIgdGhhbiBjdXJyZW50IHZlcnNpb24gKCIgKyBBUElJbmZvLlZFUlNJT04gKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0YS5uYW1lID0gQVBJSW5mby5yZWFkVG9rZW4oYnIpOworICAgICAgICAgICAgZGF0YS5iYXNlID0gQVBJSW5mby5yZWFkVG9rZW4oYnIpOyAvLyBiYXNlCisgICAgICAgICAgICBici5yZWFkTGluZSgpOworCisgICAgICAgICAgICBkYXRhLnNldCA9IG5ldyBUcmVlU2V0KEFQSUluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICBmb3IgKEFQSUluZm8gaW5mbyA9IG5ldyBBUElJbmZvKCk7IGluZm8ucmVhZChicik7IGluZm8gPSBuZXcgQVBJSW5mbygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGludGVybmFsIHx8ICFpbmZvLmlzSW50ZXJuYWwoKSkgeworICAgICAgICAgICAgICAgICAgICBkYXRhLnNldC5hZGQoaW5mbyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJyZWFkICIgKyBkYXRhLnNldC5zaXplKCkgKyAiIHJlY29yZChzKSIpOworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiZXJyb3IgcmVhZGluZyBhcGkgZGF0YSIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgQVBJRGF0YSByZWFkKEZpbGUgZmlsZSwgYm9vbGVhbiBpbnRlcm5hbCkgeworICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBmaWxlLmdldE5hbWUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGlzOworICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuemlwIikpIHsKKyAgICAgICAgICAgICAgICBaaXBGaWxlIHpmID0gbmV3IFppcEZpbGUoZmlsZSk7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZW50cnlFbnVtID0gemYuZW50cmllcygpOworICAgICAgICAgICAgICAgIGlmIChlbnRyeUVudW0uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgWmlwRW50cnkgZW50cnkgPSAoWmlwRW50cnkpZW50cnlFbnVtLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlzID0gemYuZ2V0SW5wdXRTdHJlYW0oZW50cnkpOworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IGhhbmRsZSBvbmUhISEKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oInppcCBmaWxlIGlzIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuZ3oiKSkgeworICAgICAgICAgICAgICAgICAgICBpcyA9IG5ldyBHWklQSW5wdXRTdHJlYW0oaXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcyk7CisgICAgICAgICAgICByZXR1cm4gcmVhZChuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKSwgaW50ZXJuYWwpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oImVycm9yIGdldHRpbmcgaW5mbyBzdHJlYW06ICIgKyBmaWxlTmFtZSk7CisgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICB0aHJvdyByZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBBUElEYXRhIHJlYWQoU3RyaW5nIGZpbGVOYW1lLCBib29sZWFuIGludGVybmFsKSB7CisgICAgICAgIHJldHVybiByZWFkKG5ldyBGaWxlKGZpbGVOYW1lKSwgaW50ZXJuYWwpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHN0YW5hbWVzID0geyAiZHJhZnQiLCAic3RhYmxlIiwgImRlcHJlY2F0ZWQiLCAib2Jzb2xldGUiLCAiaW50ZXJuYWwiIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gY2F0bmFtZXMgPSB7ICJjbGFzc2VzIiwgImZpZWxkcyIsICJjb25zdHJ1Y3RvcnMiLCAibWV0aG9kcyIgfTsKKworICAgIHB1YmxpYyB2b2lkIHByaW50U3RhdHMoUHJpbnRXcml0ZXIgcHcpIHsKKyAgICAgICAgLy8gY2xhc3NlcywgbWV0aG9kcywgZmllbGRzCisgICAgICAgIC8vIGRyYWZ0LCBzdGFibGUsIG90aGVyCisKKyAgICAgICAgaW50W10gc3RhdHMgPSBuZXcgaW50W2NhdG5hbWVzLmxlbmd0aCAqIHN0YW5hbWVzLmxlbmd0aF07CisKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEFQSUluZm8gaW5mbyA9IChBUElJbmZvKWl0ZXIubmV4dCgpOworCisgICAgICAgICAgICBpZiAoaW5mby5pc1B1YmxpYygpIHx8IGluZm8uaXNQcm90ZWN0ZWQoKSkgeworICAgICAgICAgICAgICAgIGludCBzdGEgPSBpbmZvLmdldFZhbChBUElJbmZvLlNUQSk7CisgICAgICAgICAgICAgICAgaW50IGNhdCA9IGluZm8uZ2V0VmFsKEFQSUluZm8uQ0FUKTsKKyAgICAgICAgICAgICAgICBzdGF0c1tjYXQgKiBzdGFuYW1lcy5sZW5ndGggKyBzdGFdICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgdHQgPSAwOworICAgICAgICBmb3IgKGludCBjYXQgPSAwOyBjYXQgPCBjYXRuYW1lcy5sZW5ndGg7ICsrY2F0KSB7CisgICAgICAgICAgICBwdy5wcmludGxuKGNhdG5hbWVzW2NhdF0pOworICAgICAgICAgICAgaW50IHQgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgc3RhID0gMDsgc3RhIDwgc3RhbmFtZXMubGVuZ3RoOyArK3N0YSkgeworICAgICAgICAgICAgICAgIGludCB2ID0gc3RhdHNbY2F0ICogc3RhbmFtZXMubGVuZ3RoICsgc3RhXTsKKyAgICAgICAgICAgICAgICB0ICs9IHY7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiICAgIiArIHN0YW5hbWVzW3N0YV0gKyAiOiAiICsgdik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0dCArPSB0OworICAgICAgICAgICAgcHcucHJpbnRsbigidG90YWw6ICIgKyB0KTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgICAgICBwdy5wcmludGxuKCJ0b3RhbCBhcGlzOiAiICsgdHQpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisKKyAgICAgICAgYm9vbGVhbiBpbnRlcm5hbCA9IGZhbHNlOworICAgICAgICBTdHJpbmcgcGF0aCA9ICJzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy8iOworCisgICAgICAgIFN0cmluZyBmbiA9ICJpY3U0ajM0MS5hcGkuZ3oiOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgYXJncyA9IG5ldyBTdHJpbmdbXSB7ICItZmlsZSIsIGZuIH07CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1wYXRoOiIpKSB7CisgICAgICAgICAgICAgICAgcGF0aCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWludGVybmFsOiIpKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWwgPSBhcmdzWysraV0udG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkgPT0gJ3QnOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItZmlsZSIpKSB7CisgICAgICAgICAgICAgICAgZm4gPSBhcmdzWysraV07CisKKyAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShwYXRoLCBmbik7CisgICAgICAgICAgICAgICAgcmVhZChmLGludGVybmFsKS5wcmludFN0YXRzKHB3KTsKKyAgICAgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJSW5mby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJSW5mby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZjVjYzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9BUElJbmZvLmphdmEKQEAgLTAsMCArMSw1MTggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBSZXByZXNlbnRzIHRoZSBBUEkgaW5mb3JtYXRpb24gb24gYSBkb2MgZWxlbWVudC4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK2NsYXNzIEFQSUluZm8geworICAgIC8vIHZlcnNpb24gaWQgZm9yIHRoZSBmb3JtYXQgb2YgdGhlIEFQSUluZm8gZGF0YQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkVSU0lPTiA9IDI7CisKKyAgICAvLyBwdWJsaWMga2V5cyBhbmQgdmFsdWVzIGZvciBxdWVyaWVzIG9uIGluZm8KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQSA9IDAsIFNUQV9EUkFGVCA9IDAsIFNUQV9TVEFCTEUgPSAxLCBTVEFfREVQUkVDQVRFRCA9IDIsIFNUQV9PQlNPTEVURSA9IDMsIFNUQV9JTlRFUk5BTCA9IDQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVklTID0gMSwgVklTX1BBQ0tBR0UgPSAwLCBWSVNfUFVCTElDPSAxLCBWSVNfUFJPVEVDVEVEID0gMiwgVklTX1BSSVZBVEUgPSAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUSyA9IDIsIFNUS19TVEFUSUMgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZJTiA9IDMsIEZJTl9GSU5BTCA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lOID0gNCwgU1lOX1NZTkNIUk9OSVpFRCA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUJTID0gNSwgQUJTX0FCU1RSQUNUID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVQgPSA2LCBDQVRfQ0xBU1MgPSAwLCBDQVRfRklFTEQgPSAxLCBDQVRfQ09OU1RSVUNUT1IgPSAyLCBDQVRfTUVUSE9EID0gMzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQUsgPSA3OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENMUyA9IDg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFNID0gOTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSUcgPSAxMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWEMgPSAxMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU1fVFlQRVMgPSAxMTsKKworICAgIC8vIHRoZSBzZXBhcmF0b3IgYmV0d2VlbiB0b2tlbnMgaW4gdGhlIGRhdGEgZmlsZQorICAgIHB1YmxpYyBpbnRbXSBtYXNrcyA9IHsgMHg3LCAweDMsIDB4MSwgMHgxLCAweDEsIDB4MSwgMHgzIH07CisgICAgcHVibGljIGludFtdIHNoaWZ0cyA9IHsgMCwgMywgNSwgNiwgNywgOCwgOSB9OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIFNFUCA9ICc7JzsKKworICAgIC8vIEludGVybmFsIFN0YXRlCisgICAgcHJpdmF0ZSBpbnQgICAgaW5mbzsgLy8gaW5mb3JtYXRpb24gYWJvdXQgbnVtZXJpYyB2YWx1ZXMgcGFja2VkIGludG8gYW4gaW50IGFzIHZhcmlhYmxlLWxlbmd0aCBuaWJibGVzCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFjayA9ICIiOyAvLyBwYWNrYWdlCisgICAgcHJpdmF0ZSBTdHJpbmcgY2xzICA9ICIiOyAgLy8gZW5jbG9zaW5nIGNsYXNzCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZSA9ICIiOyAvLyBuYW1lCisgICAgcHJpdmF0ZSBTdHJpbmcgc2lnICA9ICIiOyAgLy8gc2lnbmF0dXJlLCBjbGFzczogaW5oZXJpdGFuY2UsIG1ldGhvZDogc2lnbmF0dXJlLCBmaWVsZDogdHlwZSwgY29uc3Q6IHNpZ25hdHVyZQorICAgIHByaXZhdGUgU3RyaW5nIGV4YyAgPSAiIjsgIC8vIHRocm93cworCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuICgoKHBhY2suaGFzaENvZGUoKSA8PCAzKSBeIGNscy5oYXNoQ29kZSgpKSA8PCAzKSBeIG5hbWUuaGFzaENvZGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworICAgICAgICBpZiAocmhzID09IHRoaXMpIHJldHVybiB0cnVlOworICAgICAgICBpZiAocmhzID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEFQSUluZm8gdGhhdCA9IChBUElJbmZvKXJoczsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmluZm8gPT0gdGhhdC5pbmZvICYmCisgICAgICAgICAgICAgICAgdGhpcy5wYWNrLmVxdWFscyh0aGF0LnBhY2spICYmCisgICAgICAgICAgICAgICAgdGhpcy5jbHMuZXF1YWxzKHRoYXQuY2xzKSAmJgorICAgICAgICAgICAgICAgIHRoaXMubmFtZS5lcXVhbHModGhhdC5uYW1lKSAmJgorICAgICAgICAgICAgICAgIHRoaXMuc2lnLmVxdWFscyh0aGF0LnNpZykgJiYKKyAgICAgICAgICAgICAgICB0aGlzLmV4Yy5lcXVhbHModGhhdC5leGMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RHJhZnQoKSB7IHNldFR5cGUoU1RBLCBTVEFfRFJBRlQpOyB9CisgICAgcHVibGljIHZvaWQgc2V0U3RhYmxlKCkgeyBzZXRUeXBlKFNUQSwgU1RBX1NUQUJMRSk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXREZXByZWNhdGVkKCkgeyBzZXRUeXBlKFNUQSwgU1RBX0RFUFJFQ0FURUQpOyB9CisgICAgcHVibGljIHZvaWQgc2V0T2Jzb2xldGUoKSB7IHNldFR5cGUoU1RBLCBTVEFfT0JTT0xFVEUpOyB9CisgICAgcHVibGljIHZvaWQgc2V0SW50ZXJuYWwoKSB7IHNldFR5cGUoU1RBLCBTVEFfSU5URVJOQUwpOyB9CisgICAgcHVibGljIHZvaWQgc2V0UGFja2FnZSgpIHsgc2V0VHlwZShWSVMsIFZJU19QQUNLQUdFKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldFB1YmxpYygpIHsgc2V0VHlwZShWSVMsIFZJU19QVUJMSUMpOyB9CisgICAgcHVibGljIHZvaWQgc2V0UHJvdGVjdGVkKCkgeyBzZXRUeXBlKFZJUywgVklTX1BST1RFQ1RFRCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRQcml2YXRlKCkgeyBzZXRUeXBlKFZJUywgVklTX1BSSVZBVEUpOyB9CisgICAgcHVibGljIHZvaWQgc2V0U3RhdGljKCkgeyBzZXRUeXBlKFNUSywgU1RLX1NUQVRJQyk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRGaW5hbCgpIHsgc2V0VHlwZShGSU4sIEZJTl9GSU5BTCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRTeW5jaHJvbml6ZWQoKSB7IHNldFR5cGUoU1lOLCBTWU5fU1lOQ0hST05JWkVEKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldEFic3RyYWN0KCkgeyBzZXRUeXBlKEFCUywgQUJTX0FCU1RSQUNUKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldENsYXNzKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0NMQVNTKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldEZpZWxkKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0ZJRUxEKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldENvbnN0cnVjdG9yKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0NPTlNUUlVDVE9SKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldE1ldGhvZCgpIHsgc2V0VHlwZShDQVQsIENBVF9NRVRIT0QpOyB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYWNrYWdlKFN0cmluZyB2YWwpIHsgc2V0VHlwZShQQUssIHZhbCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRDbGFzc05hbWUoU3RyaW5nIHZhbCkgeyBzZXRUeXBlKENMUywgdmFsKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIHZhbCkgeyBzZXRUeXBlKE5BTSwgdmFsKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldFNpZ25hdHVyZShTdHJpbmcgdmFsKSB7IHNldFR5cGUoU0lHLCB2YWwpOyB9CisgICAgcHVibGljIHZvaWQgc2V0RXhjZXB0aW9ucyhTdHJpbmcgdmFsKSB7IHNldFR5cGUoRVhDLCB2YWwpOyB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RyYWZ0KCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX0RSQUZUOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNTdGFibGUoKSB7IHJldHVybiBnZXRWYWwoU1RBKSA9PSBTVEFfU1RBQkxFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNEZXByZWNhdGVkKCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX0RFUFJFQ0FURUQ7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc09ic29sZXRlKCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX09CU09MRVRFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNJbnRlcm5hbCgpIHsgcmV0dXJuIGdldFZhbChTVEEpID09IFNUQV9JTlRFUk5BTDsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzUGFja2FnZSgpIHsgcmV0dXJuIGdldFZhbChWSVMpID09IFZJU19QQUNLQUdFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNQdWJsaWMoKSB7IHJldHVybiBnZXRWYWwoVklTKSA9PSBWSVNfUFVCTElDOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNQcm90ZWN0ZWQoKSB7IHJldHVybiBnZXRWYWwoVklTKSA9PSBWSVNfUFJPVEVDVEVEOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNQcml2YXRlKCkgeyByZXR1cm4gZ2V0VmFsKFZJUykgPT0gVklTX1BSSVZBVEU7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1N0YXRpYygpIHsgcmV0dXJuIGdldFZhbChTVEspID09IFNUS19TVEFUSUM7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0ZpbmFsKCkgeyByZXR1cm4gZ2V0VmFsKEZJTikgPT0gRklOX0ZJTkFMOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNTeW5jaHJvbml6ZWQoKSB7IHJldHVybiBnZXRWYWwoU1lOKSA9PSBTWU5fU1lOQ0hST05JWkVEOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNBYnN0cmFjdCgpIHsgcmV0dXJuIGdldFZhbChBQlMpID09IEFCU19BQlNUUkFDVDsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzQ2xhc3MoKSB7IHJldHVybiBnZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1M7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0ZpZWxkKCkgeyByZXR1cm4gZ2V0VmFsKENBVCkgPT0gQ0FUX0ZJRUxEOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNDb25zdHJ1Y3RvcigpIHsgcmV0dXJuIGdldFZhbChDQVQpID09IENBVF9DT05TVFJVQ1RPUjsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzTWV0aG9kKCkgeyByZXR1cm4gZ2V0VmFsKENBVCkgPT0gQ0FUX01FVEhPRDsgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQYWNrYWdlTmFtZSgpIHsgcmV0dXJuIGdldChQQUssIHRydWUpOyB9CisgICAgcHVibGljIFN0cmluZyBnZXRDbGFzc05hbWUoKSB7IHJldHVybiBnZXQoQ0xTLCB0cnVlKTsgfQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsgcmV0dXJuIGdldChOQU0sIHRydWUpOyB9CisgICAgcHVibGljIFN0cmluZyBnZXRTaWduYXR1cmUoKSB7IHJldHVybiBnZXQoU0lHLCB0cnVlKTsgfQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXhjZXB0aW9ucygpIHsgcmV0dXJuIGdldChFWEMsIHRydWUpOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGludGVnZXIgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCB0eXBlLiAgVGhlIHR5cGUKKyAgICAgKiBtdXN0IGJlIG9uZSBvZiB0aGUgZGVmaW5lZCB0eXBlIG5hbWVzLiAgVGhlIHJldHVybiB2YWx1ZQorICAgICAqIHdpbGwgYmUgb25lIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGZvciB0aGF0IHR5cGUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRWYWwoaW50IHR5cCkgeworICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgcmV0dXJuIChpbmZvID4+PiBzaGlmdHNbdHlwXSkgJiBtYXNrc1t0eXBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3RyaW5nIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgdHlwZS4gIFRoZSB0eXBlCisgICAgICogbXVzdCBiZSBvbmUgb2YgdGhlIGRlZmluZWQgdHlwZSBuYW1lcy4gIFRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiB3aWxsIGJlIG9uZSBvZiBjb3JyZXNwb25kaW5nIHZhbHVlcyBmb3IgdGhhdCB0eXBlLiAgQnJpZWYKKyAgICAgKiBzaG91bGQgYmUgdHJ1ZSBmb3Igd3JpdGluZyBkYXRhIGZpbGVzLCBmYWxzZSBmb3IgcHJlc2VudGluZworICAgICAqIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCB0eXAsIGJvb2xlYW4gYnJpZWYpIHsKKyAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBicmllZiA/IHNob3J0TmFtZXNbdHlwXSA6IG5hbWVzW3R5cF07CisgICAgICAgIGlmICh2YWxzID09IG51bGwpIHsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwKSB7CisgICAgICAgICAgICBjYXNlIFBBSzogcmV0dXJuIHBhY2s7CisgICAgICAgICAgICBjYXNlIENMUzogcmV0dXJuIGNsczsKKyAgICAgICAgICAgIGNhc2UgTkFNOiByZXR1cm4gbmFtZTsKKyAgICAgICAgICAgIGNhc2UgU0lHOiByZXR1cm4gc2lnOworICAgICAgICAgICAgY2FzZSBFWEM6IHJldHVybiBleGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IHZhbCA9IChpbmZvID4+PiBzaGlmdHNbdHlwXSkgJiBtYXNrc1t0eXBdOworICAgICAgICByZXR1cm4gdmFsc1t2YWxdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbnVtZXJpYyB2YWx1ZSBmb3IgdGhlIHR5cGUuICBUaGUgdmFsdWUgc2hvdWxkIGJlIGEKKyAgICAgKiB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlLiAgT25seSB0aGUgbG93ZXIgdHdvIGJpdHMKKyAgICAgKiBvZiB0aGUgdmFsdWUgYXJlIHVzZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VHlwZShpbnQgdHlwLCBpbnQgdmFsKSB7CisgICAgICAgIHZhbGlkYXRlVHlwZSh0eXApOworICAgICAgICBpbmZvICY9IH4obWFza3NbdHlwXSA8PCBzaGlmdHNbdHlwXSk7CisgICAgICAgIGluZm8gfD0gKHZhbCZtYXNrc1t0eXBdKSA8PCBzaGlmdHNbdHlwXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHN0cmluZyB2YWx1ZSBmb3IgdGhlIHR5cGUuICBGb3IgbnVtZXJpYyB0eXBlcywKKyAgICAgKiB0aGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nIGluICdicmllZicgZm9ybWF0LiAgRm9yCisgICAgICogbm9uLW51bWVyaWMgdHlwZXMsIHRoZSB2YWx1ZSBjYW4gYmUgYW55CisgICAgICogc3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRUeXBlKGludCB0eXAsIFN0cmluZyB2YWwpIHsKKyAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBzaG9ydE5hbWVzW3R5cF07CisgICAgICAgIGlmICh2YWxzID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh2YWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHZhbCA9ICIiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgIGNhc2UgUEFLOiBwYWNrID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0xTOiBjbHMgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBOQU06IG5hbWUgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBTSUc6IHNpZyA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVYQzogZXhjID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKHZhbHNbaV0pKSB7CisgICAgICAgICAgICAgICAgaW5mbyAmPSB+KG1hc2tzW3R5cF0gPDwgc2hpZnRzW3R5cF0pOworICAgICAgICAgICAgICAgIGluZm8gfD0gaSA8PCBzaGlmdHNbdHlwXTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bnJlY29nbml6ZWQgdmFsdWUgJyIgKyB2YWwgKyAiJyBmb3IgdHlwZSAnIiArIHR5cGVOYW1lc1t0eXBdICsgIiciKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgaW5mb3JtYXRpb24gb3V0IGFzIGEgc2luZ2xlIGxpbmUgaW4gYnJpZWYgZm9ybWF0LgorICAgICAqIElmIHRoZXJlIGFyZSBJTyBlcnJvcnMsIHRocm93cyBhIFJ1bnRpbWVFeGNlcHRpb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgd3JpdGVsbihCdWZmZXJlZFdyaXRlciB3KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9UWVBFUzsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBnZXQoaSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3LndyaXRlKFNFUCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJTyBFcnJvciIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGEgcmVjb3JkIGZyb20gdGhlIGlucHV0IGFuZCBpbml0aWFsaXplIHRoaXMgQVBJSW5mby4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzZnVsZSwgZmFsc2UgaWYgRU9GLCBvdGhlcndpc2UgdGhyb3cKKyAgICAgKiBhIFJ1bnRpbWVFeGNlcHRpb24uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVhZChCdWZmZXJlZFJlYWRlciByKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoOyBpIDwgTlVNX1RZUEVTOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzZXRUeXBlKGksIHJlYWRUb2tlbihyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByLnJlYWRMaW5lKCk7IC8vIHN3YWxsb3cgbGluZSBlbmQgc2VxdWVuY2UKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeyAvLyBhc3N1bWUgaWYgZmlyc3QgcmVhZCByZXR1cm5zIGVycm9yLCB3ZSBoYXZlIHJlYWNoZWQgZW5kIG9mIGlucHV0CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJTyBFcnJvciIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIG9uZSB0b2tlbiBmcm9tIGlucHV0LCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4gYnkKKyAgICAgKiBBUElJbmZvLiAgVGhyb3dzIElPRXhjZXB0aW9uIGlmIEVPRiBpcyBlbmNvdW50ZXJlZCBiZWZvcmUgdGhlCisgICAgICogdG9rZW4gaXMgY29tcGxldGUgKGkuZS4gYmVmb3JlIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyIGlzCisgICAgICogZW5jb3VudGVyZWQpIG9yIGlmIHRoZSB0b2tlbiBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZgorICAgICAqIDI1NSBjaGFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkVG9rZW4oQnVmZmVyZWRSZWFkZXIgcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyWzI1Nl07CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yICg7IGkgPCBidWYubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjID0gci5yZWFkKCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSBTRVApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZltpXSA9IChjaGFyKWM7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJ1bnRlcm1pbmF0ZWQgdG9rZW4iICsgbmV3IFN0cmluZyhidWYpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgMCwgaSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29tcGFyYXRvciBmb3IgQVBJSW5mby4gIFRoaXMgY29tcGFyZXMgcGFja2FnZXMsIGNsYXNzL25hbWUKKyAgICAgKiAoYXMgdGhlIGluZm8gcmVwcmVzZW50cyBhIGNsYXNzIG9yIG90aGVyIG9iamVjdCksIGNhdGVnb3J5LCBuYW1lLAorICAgICAqIGFuZCBzaWduYXR1cmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDb21wYXJhdG9yIGRlZmF1bHRDb21wYXJhdG9yKCkgeworICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGMgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICBBUElJbmZvIGxoaSA9IChBUElJbmZvKWxoczsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyByaGkgPSAoQVBJSW5mbylyaHM7CisgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBsaGkucGFjay5jb21wYXJlVG8ocmhpLnBhY2spOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTID8gbGhpLm5hbWUgOiBsaGkuY2xzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlVG8ocmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IHJoaS5uYW1lIDogcmhpLmNscyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLm5hbWUuY29tcGFyZVRvKHJoaS5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgY29tcGFyZXMgdHdvIEFQSUluZm9zIGJ5IHBhY2thZ2UsIGNsYXNzL25hbWUsIGNhdGVnb3J5LCBuYW1lLCBhbmQgdGhlbiBpZgorICAgICAqIHRoZSBBUElJbmZvIGRvZXMgbm90IHJlcHJlc2VudCBhIGNsYXNzLCBieSBzaWduYXR1cmUuICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuCisgICAgICogdGhpcyBhbmQgdGhlIGRlZmF1bHQgY29tcGFyYXRvciBpcyB0aGF0IEFQSUluZm9zIHJlcHJlc2VudGluZyBjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogZXF1YWwgcmVnYXJkbGVzcyBvZiB0aGVpciBzaWduYXR1cmVzICh3aGljaCByZXByZXNlbnQgaW5oZXJpdGFuY2UgZm9yIGNsYXNzZXMpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjaGFuZ2VkQ29tcGFyYXRvcigpIHsKKyAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyBsaGkgPSAoQVBJSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgIEFQSUluZm8gcmhpID0gKEFQSUluZm8pcmhzOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IGxoaS5uYW1lIDogbGhpLmNscykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29tcGFyZVRvKHJoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLmdldFZhbChDQVQpLSByaGkuZ2V0VmFsKENBVCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5uYW1lLmNvbXBhcmVUbyhyaGkubmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCAmJiBsaGkuZ2V0VmFsKENBVCkgIT0gQ0FUX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaWduYXR1cmUgY2hhbmdlIG9uIGZpZWxkcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGhpLmdldFZhbChDQVQpICE9IENBVF9GSUVMRCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5zaWcuY29tcGFyZVRvKHJoaS5zaWcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBjb21wYXJlcyB0d28gQVBJSW5mb3MgYnkgcGFja2FnZSwgdGhlbiBzb3J0cyBjbGFzc2VzIGJlZm9yZSBub24tY2xhc3NlcywgdGhlbgorICAgICAqIGJ5IGNsYXNzL25hbWUsIGNhdGVnb3J5LCBuYW1lLCBhbmQgc2lnbmF0dXJlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjbGFzc0ZpcnN0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyBsaGkgPSAoQVBJSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgIEFQSUluZm8gcmhpID0gKEFQSUluZm8pcmhzOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGxjbHMgPSBsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTOworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiByY2xzID0gcmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxjbHMgPT0gcmNscyA/IDAgOiAobGNscyA/IC0xIDogMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGNscyA/IGxoaS5uYW1lIDogbGhpLmNscykuY29tcGFyZVRvKHJjbHMgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkubmFtZS5jb21wYXJlVG8ocmhpLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwICYmICFsY2xzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLnNpZy5jb21wYXJlVG8ocmhpLnNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgZGF0YSBpbiByZXBvcnQgZm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHByaW50KFByaW50V3JpdGVyIHB3LCBib29sZWFuIGRldGFpbCwgYm9vbGVhbiBodG1sKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gcmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBvZiBpY3UgcGFja2FnZXMgZnJvbSB0aGUgcGFyYW0gc3RyaW5nCisgICAgICAgIC8vIGZvcnR1bmF0ZWx5LCBhbGwgdGhlIHBhY2thZ2VzIGhhdmUgNCBjaGFycyAobGFuZywgbWF0aCwgdGV4dCwgdXRpbCkuCisgICAgICAgIFN0cmluZyB4c2lnID0gc2lnOworICAgICAgICBpZiAoIWRldGFpbCkgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nIElDVVBBQ0sgPSAiY29tLmlibS5pY3UuIjsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0YnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaWcubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICAgICAgaW50IG4gPSBzaWcuaW5kZXhPZihJQ1VQQUNLLCBpKTsKKyAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0YnVmLmFwcGVuZChzaWcuc3Vic3RyaW5nKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRidWYuYXBwZW5kKHNpZy5zdWJzdHJpbmcoaSwgbikpOworICAgICAgICAgICAgICAgIGkgPSBuICsgSUNVUEFDSy5sZW5ndGgoKSArIDU7IC8vIHRyYWlsaW5nICd4eHh4LicKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhzaWcgPSB0YnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBjb25zdHJ1Y3Qgc2lnbmF0dXJlCisgICAgICAgIGZvciAoaW50IGkgPSBTVEE7IGkgPCBDQVQ7ICsraSkgeyAvLyBpbmNsdWRlIHN0YXR1cworICAgICAgICAgICAgU3RyaW5nIHMgPSBnZXQoaSwgZmFsc2UpOworICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCAmJiBzLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChodG1sICYmIHMuaW5kZXhPZigiaW50ZXJuYWwiKSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCI8c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiPC9zcGFuPiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocyk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgdmFsID0gZ2V0VmFsKENBVCk7CisgICAgICAgIHN3aXRjaCAodmFsKSB7CisgICAgICAgIGNhc2UgQ0FUX0NMQVNTOgorICAgICAgICAgICAgaWYgKHNpZy5pbmRleE9mKCJleHRlbmRzIikgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJpbnRlcmZhY2UgIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoImNsYXNzICIpOworICAgICAgICAgICAgfQorICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICBidWYuYXBwZW5kKCI8aT4iKTsKKyAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNscy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGNscyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnLicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgYnVmLmFwcGVuZCgiPC9pPiIpOworICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGV0YWlsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2lnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ0FUX0ZJRUxEOgorICAgICAgICAgICAgYnVmLmFwcGVuZCh4c2lnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobmFtZSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENBVF9NRVRIT0Q6CisgICAgICAgIGNhc2UgQ0FUX0NPTlNUUlVDVE9SOgorICAgICAgICAgICAgaW50IG4gPSB4c2lnLmluZGV4T2YoJygnKTsKKyAgICAgICAgICAgIGlmIChuID4gMCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoeHNpZy5zdWJzdHJpbmcoMCwgbikpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbiA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIjxpPiIgKyBuYW1lICsgIjwvaT4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZCh4c2lnLnN1YnN0cmluZyhuKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHB3LnByaW50KGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwcmludGxuKFByaW50V3JpdGVyIHB3LCBib29sZWFuIGRldGFpbCwgYm9vbGVhbiBodG1sKSB7CisgICAgICAgIHByaW50KHB3LCBkZXRhaWwsIGh0bWwpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdHlwZU5hbWVzID0geworICAgICAgICAic3RhdHVzIiwgInZpc2liaWxpdHkiLCAic3RhdGljIiwgImZpbmFsIiwgInN5bmNocm9uaXplZCIsCisgICAgICAgICJhYnN0cmFjdCIsICJjYXRlZ29yeSIsICJwYWNrYWdlIiwgImNsYXNzIiwgIm5hbWUiLCAic2lnbmF0dXJlIgorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXRUeXBlVmFsTmFtZShpbnQgdHlwLCBpbnQgdmFsKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gbmFtZXNbdHlwXVt2YWxdOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBuYW1lcyA9IHsKKyAgICAgICAgeyAiKGRyYWZ0KSAgICAgIiwgIihzdGFibGUpICAgICIsICIoZGVwcmVjYXRlZCkiLCAiKG9ic29sZXRlKSAgIiwgIippbnRlcm5hbCogICIgfSwKKyAgICAgICAgeyAicGFja2FnZSIsICJwdWJsaWMiLCAicHJvdGVjdGVkIiwgInByaXZhdGUiIH0sCisgICAgICAgIHsgIiIsICJzdGF0aWMiIH0sCisgICAgICAgIHsgIiIsICJmaW5hbCIgfSwKKyAgICAgICAgeyAiIiwgInN5bmNocm9uaXplZCIgfSwKKyAgICAgICAgeyAiIiwgImFic3RyYWN0IiB9LAorICAgICAgICB7ICJjbGFzcyIsICJmaWVsZCIsICJjb25zdHJ1Y3RvciIsICJtZXRob2QiICB9LAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gc2hvcnROYW1lcyA9IHsKKyAgICAgICAgeyAiRFIiLCAiU1QiLCAiRFAiLCAiT0IiLCAiSU4iIH0sCisgICAgICAgIHsgIlBLIiwgIlBCIiwgIlBUIiwgIlBSIiB9LAorICAgICAgICB7ICJOUyIsICJTVCIgfSwKKyAgICAgICAgeyAiTkYiLCAiRk4iIH0sCisgICAgICAgIHsgIk5TIiwgIlNZIiB9LAorICAgICAgICB7ICJOQSIsICJBQiIgfSwKKyAgICAgICAgeyAiTCIsICJGIiwgIkMiLCAiTSIgfSwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHZhbGlkYXRlVHlwZShpbnQgdHlwKSB7CisgICAgICAgIGlmICh0eXAgPCAwIHx8IHR5cCA+IE5VTV9UWVBFUykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIHR5cGUgaW5kZXg6ICIgKyB0eXApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGdldChOQU0sIHRydWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrQVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja0FQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YTY1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja0FQSS5qYXZhCkBAIC0wLDAgKzEsMTAyNyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKy8qKgorICogR2VuZXJhdGUgYSBsaXN0IG9mIElDVSdzIHB1YmxpYyBBUElzLCBzb3J0ZWQgYnkgcXVhbGlmaWVkIG5hbWUgYW5kIHNpZ25hdHVyZQorICogcHVibGljIEFQSXMgYXJlIGFsbCBub24taW50ZXJuYWwsIG5vbi1wYWNrYWdlIGFwaXMgaW4gY29tLmlibS5pY3UuW2xhbmd8bWF0aHx0ZXh0fHV0aWxdLgorICogRm9yIGVhY2ggQVBJLCBsaXN0CisgKiAtIHB1YmxpYywgcGFja2FnZSwgcHJvdGVjdGVkLCBvciBwcml2YXRlIChQQiBQSyBQVCBQUikKKyAqIC0gc3RhdGljIG9yIG5vbi1zdGF0aWMgKFNUSyBOU1QpCisgKiAtIGZpbmFsIG9yIG5vbi1maW5hbCAoRk4gTkYpCisgKiAtIHN5bmNocm9uaXplZCBvciBub24tc3luY2hyb25pemVkIChTWU4gTlNZKQorICogLSBzdGFibGUsIGRyYWZ0LCBkZXByZWNhdGVkLCBvYnNvbGV0ZSAoU1QgRFIgRFAgT0IpCisgKiAtIGFic3RyYWN0IG9yIG5vbi1hYnN0cmFjdCAoQUIgTkEpCisgKiAtIGNvbnN0cnVjdG9yLCBtZW1iZXIsIGZpZWxkIChDIE0gRikKKyAqCisgKiBSZXF1aXJlcyBKREsgMS40LjIgb3IgbGF0ZXIKKyAqIAorICogU2FtcGxlIGludm9jYXRpb246CisgKiBjOi9qMnNkazEuNC4yL2Jpbi9qYXZhZG9jIAorICogICAtY2xhc3NwYXRoIGM6L2pkMnNrMS40LjIvbGliL3Rvb2xzLmphciAKKyAqICAgLWRvY2xldCBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkNoZWNrQVBJIAorICogICAtZG9jbGV0cGF0aCBjOi9kb3VnL2N2c3Byb2ovaWN1NGovc3JjIAorICogICAtc291cmNlcGF0aCBjOi9lY2xpcHNlMi4xL3dvcmtzcGFjZTIvaWN1NGovc3JjIAorICogICAtY29tcGFyZSBjOi9kb3VnL2N2c3Byb2ovaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvYXBpMl82XzEudHh0IAorICogICAtb3V0cHV0IGZvbyAKKyAqICAgY29tLmlibS5pY3UudGV4dAorICoKKyAqIHRvZG86IHNlcGFyYXRlIGdlbmVyYXRpb24gb2YgZGF0YSBmaWxlcyAod2hpY2ggcmVxdWlyZXMgdGFnbGV0KSBmcm9tIAorICogY29tcGFyaXNvbiBhbmQgcmVwb3J0IGdlbmVyYXRpb24gKHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgaXQpCisgKiB0b2RvOiBwcm92aWRlIGNvbW1hbmQtbGluZSBjb250cm9sIG9mIGZpbHRlcnMgb2Ygd2hpY2ggc3ViY2xhc3Nlcy9wYWNrYWdlcyB0byBwcm9jZXNzCisgKiB0b2RvOiByZWNvcmQgZnVsbCBpbmhlcml0YW5jZSBoZWlyYXJjaHksIG5vdCBqdXN0IGltbWVkaWF0ZSBpbmhlcml0YW5jZSAKKyAqIHRvZG86IGFsbG93IGZvciBhbGlhc2luZyBjb21wYXJpc29ucyAoZm9yY2UgKHBrZy4pKmNsYXNzIHRvIGJlIHRyZWF0ZWQgYXMgdGhvdWdoIGl0IAorICogd2VyZSBpbiBhIGRpZmZlcmVudCBwa2cvY2xhc3MgaGVpcmFyY2h5IChmYWNpbGl0YXRlcyBjb21wYXJpc29uIG9mIGljdTRqIGFuZCBqYXZhKQorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGNvbS5zdW4uamF2YWRvYy4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIENoZWNrQVBJIHsKKyAgICBSb290RG9jIHJvb3Q7CisgICAgU3RyaW5nIGNvbXBhcmU7IC8vIGZpbGUKKyAgICBTdHJpbmcgY29tcGFyZU5hbWU7CisgICAgVHJlZVNldCBjb21wYXJlU2V0OworICAgIFRyZWVTZXQgcmVzdWx0czsKKyAgICBib29sZWFuIGh0bWw7CisgICAgU3RyaW5nIHNyY05hbWUgPSAiQ3VycmVudCI7IC8vIGRlZmF1bHQgc291cmNlIG5hbWUKKyAgICBTdHJpbmcgb3V0cHV0OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0ZJTEVfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTRVAgPSAnOyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBID0gMCwgU1RBX0RSQUZUID0gMCwgU1RBX1NUQUJMRSA9IDEsIFNUQV9ERVBSRUNBVEVEID0gMiwgU1RBX09CU09MRVRFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVklTID0gMSwgVklTX1BBQ0tBR0UgPSAwLCBWSVNfUFVCTElDPSAxLCBWSVNfUFJPVEVDVEVEID0gMiwgVklTX1BSSVZBVEUgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEsgPSAyLCBTVEtfU1RBVElDID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklOID0gMywgRklOX0ZJTkFMID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1lOID0gNCwgU1lOX1NZTkNIUk9OSVpFRCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFCUyA9IDUsIEFCU19BQlNUUkFDVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBVCA9IDYsIENBVF9DTEFTUyA9IDAsIENBVF9GSUVMRCA9IDEsIENBVF9DT05TVFJVQ1RPUiA9IDIsIENBVF9NRVRIT0QgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQQUsgPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTFMgPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQU0gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSUcgPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDID0gMTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5VTV9UWVBFUyA9IDExOworCisgICAgc3RhdGljIGFic3RyYWN0IGNsYXNzIEFQSUluZm8geworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFZhbChpbnQgdHlwKTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyBnZXQoaW50IHR5cCwgYm9vbGVhbiBicmllZik7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlKEJ1ZmZlcmVkV3JpdGVyIHcsIGJvb2xlYW4gYnJpZWYsIGJvb2xlYW4gaHRtbCwgYm9vbGVhbiBkZXRhaWwpOworICAgIH0KKyAgICAgICAgCisgICAgZmluYWwgc3RhdGljIGNsYXNzIEluZm8gZXh0ZW5kcyBBUElJbmZvIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgICAgaW5mbzsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcGFjazsgLy8gcGFja2FnZQorICAgICAgICBwcml2YXRlIFN0cmluZyBjbHM7IC8vIGVuY2xvc2luZyBjbGFzcworICAgICAgICBwcml2YXRlIFN0cmluZyBuYW1lOyAvLyBuYW1lCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHNpZzsgIC8vIHNpZ25hdHVyZSwgY2xhc3M6IGluaGVyaXRhbmNlLCBtZXRob2Q6IHNpZ25hdHVyZSwgZmllbGQ6IHR5cGUsIGNvbnN0OiBzaWduYXR1cmUKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZXhjOyAgLy8gdGhyb3dzIAorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRWYWwoaW50IHR5cCkgeworICAgICAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgICAgICByZXR1cm4gKGluZm8gPj4gKHR5cCoyKSkgJiAweDM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChpbnQgdHlwLCBib29sZWFuIGJyaWVmKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBicmllZiA/IHNob3J0TmFtZXNbdHlwXSA6IG5hbWVzW3R5cF07CisgICAgICAgICAgICBpZiAodmFscyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBBSzogcmV0dXJuIHBhY2s7CisgICAgICAgICAgICAgICAgY2FzZSBDTFM6IHJldHVybiBjbHM7CisgICAgICAgICAgICAgICAgY2FzZSBOQU06IHJldHVybiBuYW1lOworICAgICAgICAgICAgICAgIGNhc2UgU0lHOiByZXR1cm4gc2lnOworICAgICAgICAgICAgICAgIGNhc2UgRVhDOiByZXR1cm4gZXhjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB2YWwgPSAoaW5mbyA+PiAodHlwKjIpKSAmIDB4MzsKKyAgICAgICAgICAgIHJldHVybiB2YWxzW3ZhbF07CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0VHlwZShpbnQgdHlwLCBpbnQgdmFsKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgICAgIGluZm8gJj0gfigweDMgPDwgKHR5cCoyKSk7CisgICAgICAgICAgICBpbmZvIHw9ICh2YWwmMHgzKSA8PCAodHlwICogMik7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0VHlwZShpbnQgdHlwLCBTdHJpbmcgdmFsKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBzaG9ydE5hbWVzW3R5cF07CisgICAgICAgICAgICBpZiAodmFscyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBBSzogcGFjayA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDTFM6IGNscyA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOQU06IG5hbWUgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU0lHOiBzaWcgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRVhDOiBleGMgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSh2YWxzW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBpbmZvICY9IH4oMHgzIDw8ICh0eXAqMikpOworICAgICAgICAgICAgICAgICAgICBpbmZvIHw9IGkgPDwgKHR5cCoyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidW5yZWNvZ25pemVkIHZhbHVlICciICsgdmFsICsgIicgZm9yIHR5cGUgJyIgKyB0eXBlTmFtZXNbdHlwXSArICInIik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShCdWZmZXJlZFdyaXRlciB3LCBib29sZWFuIGJyaWVmLCBib29sZWFuIGh0bWwsIGJvb2xlYW4gZGV0YWlsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChicmllZikgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9UWVBFUzsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGdldChpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShTRVApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBvZiBpY3UgcGFja2FnZXMgZnJvbSB0aGUgcGFyYW0gc3RyaW5nCisgICAgICAgICAgICAgICAgICAgIC8vIGZvcnR1bmF0ZWx5LCBhbGwgdGhlIHBhY2thZ2VzIGhhdmUgNCBjaGFycyAobGFuZywgbWF0aCwgdGV4dCwgdXRpbCkuCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB4c2lnID0gc2lnOworICAgICAgICAgICAgICAgICAgICBpZiAoIWRldGFpbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIElDVVBBQ0sgPSAiY29tLmlibS5pY3UuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpZy5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IHNpZy5pbmRleE9mKElDVVBBQ0ssIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2lnLnN1YnN0cmluZyhpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHNpZy5zdWJzdHJpbmcoaSwgbikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBuICsgSUNVUEFDSy5sZW5ndGgoKSArIDU7IC8vIHRyYWlsaW5nICd4eHh4LicKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhzaWcgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBzaWduYXR1cmUKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IFNUQTsgaSA8IENBVDsgKytpKSB7IC8vIGluY2x1ZGUgc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGdldChpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyAhPSBudWxsICYmIHMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gU1RBKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJygnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgnKScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUocyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGludCB2YWwgPSBnZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDQVRfQ0xBU1M6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2lnLmluZGV4T2YoImV4dGVuZHMiKSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoImludGVyZmFjZSAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiY2xhc3MgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2xzLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoY2xzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCcuJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIENBVF9GSUVMRDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoeHNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCcgJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDQVRfTUVUSE9EOgorICAgICAgICAgICAgICAgICAgICBjYXNlIENBVF9DT05TVFJVQ1RPUjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0geHNpZy5pbmRleE9mKCcoJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHhzaWcuc3Vic3RyaW5nKDAsIG4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCcgJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoeHNpZy5zdWJzdHJpbmcobikpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiSU8gRXJyb3IiKTsKKyAgICAgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiByZWFkKEJ1ZmZlcmVkUmVhZGVyIHIpIHsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCBOVU1fVFlQRVM7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBzZXRUeXBlKGksIHJlYWRUb2tlbihyKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHIucmVhZExpbmUoKTsgLy8gc3dhbGxvdyBsaW5lIGVuZCBzZXF1ZW5jZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7IC8vIGFzc3VtZSBpZiBmaXJzdCByZWFkIHJldHVybnMgZXJyb3IsIHdlIGhhdmUgcmVhY2hlZCBlbmQgb2YgaW5wdXQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oIklPIEVycm9yIik7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlYWQoUHJvZ3JhbUVsZW1lbnREb2MgZG9jKSB7CisKKyAgICAgICAgICAgIC8vIERvYy4gbmFtZQorICAgICAgICAgICAgLy8gRG9jLiBpc0ZpZWxkLCBpc01ldGhvZCwgaXNDb25zdHJ1Y3RvciwgaXNDbGFzcywgaXNJbnRlcmZhY2UKKyAgICAgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBjb250YWluaW5nQ2xhc3MsIGNvbnRhaW5pbmdQYWNrYWdlCisgICAgICAgICAgICAvLyBQcm9ncmFtRWxlbWVudERvYy4gaXNQdWJsaWMsIGlzUHJvdGVjdGVkLCBpc1ByaXZhdGUsIGlzUGFja2FnZVByaXZhdGUKKyAgICAgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBpc1N0YXRpYywgaXNGaW5hbAorICAgICAgICAgICAgLy8gTWVtYmVyRG9jLmlzU3ludGhldGljCisgICAgICAgICAgICAvLyBFeGVjdXRhYmxlTWVtYmVyRG9jIGlzU3luY2hyb25pemVkLCBzaWduYXR1cmUKKyAgICAgICAgICAgIC8vIFR5cGUudG9TdHJpbmcoKSAvLyBlLmcuICJTdHJpbmdbXVtdIgorICAgICAgICAgICAgLy8gQ2xhc3NEb2MuaXNBYnN0cmFjdCwgc3VwZXJDbGFzcywgaW50ZXJmYWNlcywgZmllbGRzLCBtZXRob2RzLCBjb25zdHJ1Y3RvcnMsIGlubmVyQ2xhc3NlcworICAgICAgICAgICAgLy8gRmllbGREb2MgdHlwZQorICAgICAgICAgICAgLy8gQ29uc3RydWN0b3JEb2MgcXVhbGlmaWVkTmFtZQorICAgICAgICAgICAgLy8gTWV0aG9kRG9jIGlzQWJzdHJhY3QsIHJldHVyblR5cGUKKworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzdGF0dXMKKyAgICAgICAgICAgIHNldFR5cGUoU1RBLCB0YWdTdGF0dXMoZG9jKSk7CisKKyAgICAgICAgICAgIC8vIHZpc2liaWxpdHkKKyAgICAgICAgICAgIGlmIChkb2MuaXNQdWJsaWMoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoVklTLCBWSVNfUFVCTElDKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jLmlzUHJvdGVjdGVkKCkpIHsKKyAgICAgICAgICAgICAgICBzZXRUeXBlKFZJUywgVklTX1BST1RFQ1RFRCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1ByaXZhdGUoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoVklTLCBWSVNfUFJJVkFURSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgaXMgcGFja2FnZQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzdGF0aWMKKyAgICAgICAgICAgIGlmIChkb2MuaXNTdGF0aWMoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoU1RLLCBTVEtfU1RBVElDKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBpcyBub24tc3RhdGljCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGZpbmFsCisgICAgICAgICAgICBpZiAoZG9jLmlzRmluYWwoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoRklOLCBGSU5fRklOQUwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1maW5hbAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB0eXBlCisgICAgICAgICAgICBpZiAoZG9jLmlzRmllbGQoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoQ0FULCBDQVRfRklFTEQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNNZXRob2QoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoQ0FULCBDQVRfTUVUSE9EKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jLmlzQ29uc3RydWN0b3IoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoQ0FULCBDQVRfQ09OU1RSVUNUT1IpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShDQVQsIENBVF9DTEFTUyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNldFR5cGUoUEFLLCBkb2MuY29udGFpbmluZ1BhY2thZ2UoKS5uYW1lKCkpOworICAgICAgICAgICAgc2V0VHlwZShDTFMsIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpIHx8IChkb2MuY29udGFpbmluZ0NsYXNzKCkgPT0gbnVsbCkpID8gIiIgOiBkb2MuY29udGFpbmluZ0NsYXNzKCkubmFtZSgpKTsKKyAgICAgICAgICAgIHNldFR5cGUoTkFNLCBkb2MubmFtZSgpKTsKKworICAgICAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIEZpZWxkRG9jKSB7CisgICAgICAgICAgICAgICAgRmllbGREb2MgZmRvYyA9IChGaWVsZERvYylkb2M7CisgICAgICAgICAgICAgICAgc2V0VHlwZShTSUcsIGZkb2MudHlwZSgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MgaW5zdGFuY2VvZiBDbGFzc0RvYykgeworICAgICAgICAgICAgICAgIENsYXNzRG9jIGNkb2MgPSAoQ2xhc3NEb2MpZG9jOworCisgICAgICAgICAgICAgICAgaWYgKGNkb2MuaXNDbGFzcygpICYmIGNkb2MuaXNBYnN0cmFjdCgpKSB7IC8vIGludGVyZmFjZXMgYXJlIGFic3RyYWN0IGJ5IGRlZmF1bHQsIGRvbid0IG1hcmsgdGhlbSBhcyBhYnN0cmFjdAorICAgICAgICAgICAgICAgICAgICBzZXRUeXBlKEFCUywgQUJTX0FCU1RSQUNUKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGlmIChjZG9jLmlzQ2xhc3MoKSkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJleHRlbmRzICIpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGNkb2Muc3VwZXJjbGFzcygpLnF1YWxpZmllZE5hbWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIENsYXNzRG9jW10gaW1wID0gY2RvYy5pbnRlcmZhY2VzKCk7CisgICAgICAgICAgICAgICAgaWYgKGltcCAhPSBudWxsICYmIGltcC5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiaW1wbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGltcC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaW1wW2ldLnF1YWxpZmllZE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0VHlwZShTSUcsIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRXhlY3V0YWJsZU1lbWJlckRvYyBlbWRvYyA9IChFeGVjdXRhYmxlTWVtYmVyRG9jKWRvYzsKKyAgICAgICAgICAgICAgICBpZiAoZW1kb2MuaXNTeW5jaHJvbml6ZWQoKSkgeworICAgICAgICAgICAgICAgICAgICBzZXRUeXBlKFNZTiwgU1lOX1NZTkNIUk9OSVpFRCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIE1ldGhvZERvYykgeworICAgICAgICAgICAgICAgICAgICBNZXRob2REb2MgbWRvYyA9IChNZXRob2REb2MpZG9jOworICAgICAgICAgICAgICAgICAgICBpZiAobWRvYy5pc0Fic3RyYWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoQUJTLCBBQlNfQUJTVFJBQ1QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoU0lHLCBtZG9jLnJldHVyblR5cGUoKS50b1N0cmluZygpICsgZW1kb2Muc2lnbmF0dXJlKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdG9yCisgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoU0lHLCBlbWRvYy5zaWduYXR1cmUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBkZWZhdWx0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbXBhcmF0b3IgYyA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyBsaGkgPSAoSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBJbmZvIHJoaSA9IChJbmZvKXJoczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBsaGkucGFjay5jb21wYXJlVG8ocmhpLnBhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKGxoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyBsaGkubmFtZSA6IGxoaS5jbHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlVG8ocmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IHJoaS5uYW1lIDogcmhpLmNscyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5nZXRWYWwoQ0FUKS0gcmhpLmdldFZhbChDQVQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5uYW1lLmNvbXBhcmVUbyhyaGkubmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIENvbXBhcmF0b3IgY2hhbmdlZENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGMgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gbGhpID0gKEluZm8pbGhzOworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyByaGkgPSAoSW5mbylyaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTID8gbGhpLm5hbWUgOiBsaGkuY2xzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29tcGFyZVRvKHJoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkubmFtZS5jb21wYXJlVG8ocmhpLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwICYmIGxoaS5nZXRWYWwoQ0FUKSAhPSBDQVRfQ0xBU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIENvbXBhcmF0b3IgY2xhc3NGaXJzdENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGMgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gbGhpID0gKEluZm8pbGhzOworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyByaGkgPSAoSW5mbylyaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbGNscyA9IGxoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiByY2xzID0gcmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsY2xzID09IHJjbHMgPyAwIDogKGxjbHMgPyAtMSA6IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGNscyA/IGxoaS5uYW1lIDogbGhpLmNscykuY29tcGFyZVRvKHJjbHMgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5nZXRWYWwoQ0FUKS0gcmhpLmdldFZhbChDQVQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLm5hbWUuY29tcGFyZVRvKHJoaS5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDAgJiYgIWxjbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLnNpZy5jb21wYXJlVG8ocmhpLnNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHR5cGVOYW1lcyA9IHsKKyAgICAgICAgICAgICJzdGF0dXMiLCAidmlzaWJpbGl0eSIsICJzdGF0aWMiLCAiZmluYWwiLCAic3luY2hyb25pemVkIiwgCisgICAgICAgICAgICAiYWJzdHJhY3QiLCAiY2F0ZWdvcnkiLCAicGFja2FnZSIsICJjbGFzcyIsICJuYW1lIiwgInNpZ25hdHVyZSIKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIG5hbWVzID0geworICAgICAgICAgICAgeyAiZHJhZnQgICAgICIsICJzdGFibGUgICAgIiwgImRlcHJlY2F0ZWQiLCAib2Jzb2xldGUgICIgfSwKKyAgICAgICAgICAgIHsgInBhY2thZ2UiLCAicHVibGljIiwgInByb3RlY3RlZCIsICJwcml2YXRlIiB9LAorICAgICAgICAgICAgeyAiIiwgInN0YXRpYyIgfSwKKyAgICAgICAgICAgIHsgIiIsICJmaW5hbCIgfSwKKyAgICAgICAgICAgIHsgIiIsICJzeW5jaHJvbml6ZWQiIH0sCisgICAgICAgICAgICB7ICIiLCAiYWJzdHJhY3QiIH0sCisgICAgICAgICAgICB7ICJjbGFzcyIsICJmaWVsZCIsICJjb25zdHJ1Y3RvciIsICJtZXRob2QiICB9LAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHNob3J0TmFtZXMgPSB7CisgICAgICAgICAgICB7ICJEUiIsICJTVCIsICJEUCIsICJPQiIgfSwKKyAgICAgICAgICAgIHsgIlBLIiwgIlBCIiwgIlBUIiwgIlBSIiB9LAorICAgICAgICAgICAgeyAiTlMiLCAiU1QiIH0sCisgICAgICAgICAgICB7ICJORiIsICJGTiIgfSwKKyAgICAgICAgICAgIHsgIk5TIiwgIlNZIiB9LAorICAgICAgICAgICAgeyAiTkEiLCAiQUIiIH0sCisgICAgICAgICAgICB7ICJMIiwgIkYiLCAiQyIsICJNIiB9LAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHZhbGlkYXRlVHlwZShpbnQgdHlwKSB7CisgICAgICAgICAgICBpZiAodHlwIDwgMCB8fCB0eXAgPiBOVU1fVFlQRVMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJiYWQgdHlwZSBpbmRleDogIiArIHR5cCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldChOQU0sIHRydWUpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIERlbHRhSW5mbyBleHRlbmRzIEFQSUluZm8geworICAgICAgICBwcml2YXRlIEluZm8gYTsKKyAgICAgICAgcHJpdmF0ZSBJbmZvIGI7CisKKyAgICAgICAgRGVsdGFJbmZvKEluZm8gYSwgSW5mbyBiKSB7CisgICAgICAgICAgICB0aGlzLmEgPSBhOworICAgICAgICAgICAgdGhpcy5iID0gYjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VmFsKGludCB0eXApIHsKKyAgICAgICAgICAgIHJldHVybiBhLmdldFZhbCh0eXApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoaW50IHR5cCwgYm9vbGVhbiBicmllZikgeworICAgICAgICAgICAgcmV0dXJuIGEuZ2V0KHR5cCwgYnJpZWYpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoQnVmZmVyZWRXcml0ZXIgdywgYm9vbGVhbiBicmllZiwgYm9vbGVhbiBodG1sLCBib29sZWFuIGRldGFpbCkgeworICAgICAgICAgICAgYS53cml0ZSh3LCBicmllZiwgaHRtbCwgZGV0YWlsKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPGJyPiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGIud3JpdGUodywgYnJpZWYsIGh0bWwsIGRldGFpbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGEuZ2V0KE5BTSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBvcHRpb25MZW5ndGgoU3RyaW5nIG9wdGlvbikgeworICAgICAgICBpZiAob3B0aW9uLmVxdWFscygiLWh0bWwiKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLW5hbWUiKSkgeworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLW91dHB1dCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItY29tcGFyZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gc3RhcnQoUm9vdERvYyByb290KSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hlY2tBUEkocm9vdCkucnVuKCk7CisgICAgfQorCisgICAgQ2hlY2tBUEkoUm9vdERvYyByb290KSB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3Q7CisKKyAgICAgICAgLy8gICAgICB0aGlzLmNvbXBhcmUgPSAiYzovZG91Zy9jdnNwcm9qL2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2FwaTJfOC50eHQiOworCisgICAgICAgIFN0cmluZ1tdW10gb3B0aW9ucyA9IHJvb3Qub3B0aW9ucygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHQgPSBvcHRpb25zW2ldWzBdOworICAgICAgICAgICAgaWYgKG9wdC5lcXVhbHMoIi1odG1sIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmh0bWwgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItbmFtZSIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zcmNOYW1lID0gb3B0aW9uc1tpXVsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLW91dHB1dCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5vdXRwdXQgPSBvcHRpb25zW2ldWzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItY29tcGFyZSIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5jb21wYXJlID0gb3B0aW9uc1tpXVsxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb21wYXJlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gVVJMIHVybCA9IG5ldyBVUkwoY29tcGFyZSk7CisgICAgICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoY29tcGFyZSk7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOworICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcyk7CisgICAgICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKworICAgICAgICAgICAgICAgIC8vIHJlYWQgaGVhZGVyIGxpbmUKKyAgICAgICAgICAgICAgICBpbnQgdmVyc2lvbiA9IEludGVnZXIucGFyc2VJbnQocmVhZFRva2VuKGJyKSk7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdmVyc2lvbiBpZiB3ZSBjaGFuZ2UgaXQgbGF0ZXIsIHByb2JhYmx5IGNhbiBqdXN0IHJlYnVpbGQgdGhvdWdoCisgICAgICAgICAgICAgICAgdGhpcy5jb21wYXJlTmFtZSA9IHJlYWRUb2tlbihicik7CisgICAgICAgICAgICAgICAgYnIucmVhZExpbmUoKTsKKworICAgICAgICAgICAgICAgIC8vIHJlYWQgZGF0YQorICAgICAgICAgICAgICAgIHRoaXMuY29tcGFyZVNldCA9IG5ldyBUcmVlU2V0KEluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgZm9yIChJbmZvIGluZm8gPSBuZXcgSW5mbygpOyBpbmZvLnJlYWQoYnIpOyBpbmZvID0gbmV3IEluZm8oKSkgeworICAgICAgICAgICAgICAgICAgICBjb21wYXJlU2V0LmFkZChpbmZvKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oImVycm9yIHJlYWRpbmcgIiArIGNvbXBhcmUpOworICAgICAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgICAgICB0aHJvdyByZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJlc3VsdHMgPSBuZXcgVHJlZVNldChJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBydW4oKSB7CisgICAgICAgIGRvRG9jcyhyb290LmNsYXNzZXMoKSk7CisKKyAgICAgICAgT3V0cHV0U3RyZWFtIG9zID0gU3lzdGVtLm91dDsKKyAgICAgICAgaWYgKG91dHB1dCAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG9zID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQnVmZmVyZWRXcml0ZXIgYncgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG9zdyA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3MsICJVVEYtOCIpOworICAgICAgICAgICAgYncgPSBuZXcgQnVmZmVyZWRXcml0ZXIob3N3KTsKKworICAgICAgICAgICAgaWYgKGNvbXBhcmVTZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIHdyaXRpbmcgZGF0YSBmaWxlCisgICAgICAgICAgICAgICAgYncud3JpdGUoU3RyaW5nLnZhbHVlT2YoREFUQV9GSUxFX1ZFUlNJT04pICsgU0VQKTsgLy8gaGVhZGVyIHZlcnNpb24KKyAgICAgICAgICAgICAgICBidy53cml0ZShzcmNOYW1lICsgU0VQKTsgLy8gc291cmNlIG5hbWUKKyAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKHJlc3VsdHMsIGJ3LCB0cnVlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB3cml0aW5nIGNvbXBhcmlzb24gaW5mbworICAgICAgICAgICAgICAgIFRyZWVTZXQgcmVtb3ZlZCA9IChUcmVlU2V0KWNvbXBhcmVTZXQuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICByZW1vdmVkLnJlbW92ZUFsbChyZXN1bHRzKTsKKworICAgICAgICAgICAgICAgIFRyZWVTZXQgYWRkZWQgPSAoVHJlZVNldClyZXN1bHRzLmNsb25lKCk7CisgICAgICAgICAgICAgICAgYWRkZWQucmVtb3ZlQWxsKGNvbXBhcmVTZXQpOworCisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhZGRlZC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHJpID0gcmVtb3ZlZC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIEFycmF5TGlzdCBjaGFuZ2VkID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgIENvbXBhcmF0b3IgYyA9IEluZm8uY2hhbmdlZENvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJbmZvIGEgPSBudWxsLCByID0gbnVsbDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoYWkuaGFzTmV4dCgpICYmIHJpLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBudWxsKSBhID0gKEluZm8pYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAociA9PSBudWxsKSByID0gKEluZm8pcmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gYy5jb21wYXJlKGEsIHIpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkLmFkZChuZXcgRGVsdGFJbmZvKGEsIHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBudWxsOyBhaS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBudWxsOyByaS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFkZGVkID0gc3RyaXBBbmRSZXNvcnQoYWRkZWQpOworICAgICAgICAgICAgICAgIHJlbW92ZWQgPSBzdHJpcEFuZFJlc29ydChyZW1vdmVkKTsKKworICAgICAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSA9ICJJQ1U0SiBBUEkgQ29tcGFyaXNvbjogIiArIHNyY05hbWUgKyAiIHdpdGggIiArIGNvbXBhcmVOYW1lOworCisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTlwiPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8aHRtbD4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhlYWQ+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjx0aXRsZT4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUodGl0bGUpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPC90aXRsZT4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGJvZHk+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGgxPiIpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSh0aXRsZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2gxPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoci8+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIlJlbW92ZWQgZnJvbSAiICsgY29tcGFyZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPC9oMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChyZW1vdmVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhyZW1vdmVkLCBidywgZmFsc2UsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8cD4obm8gQVBJIHJlbW92ZWQpPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhyLz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGgyPiIpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiQ2hhbmdlZCBpbiAiICsgc3JjTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKGNoYW5nZWQsIGJ3LCBmYWxzZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPHA+KG5vIEFQSSBjaGFuZ2VkKTwvcD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoci8+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIkFkZGVkIGluICIgKyBzcmNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjwvaDI+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoYWRkZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKGFkZGVkLCBidywgZmFsc2UsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8cD4obm8gQVBJIGFkZGVkKTwvcD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhyLz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPHA+PGk+Q29udGVudHMgZ2VuZXJhdGVkIGJ5IENoZWNrQVBJIHRvb2wuPGJyLz5Db3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24sIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9pPjwvcD4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPC9ib2R5PiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2h0bWw+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiQ29tcGFyaW5nICIgKyBzcmNOYW1lICsgIiB3aXRoICIgKyBjb21wYXJlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIj09PSBSZW1vdmVkIGZyb20gIiArIGNvbXBhcmVOYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVtb3ZlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZVJlc3VsdHMocmVtb3ZlZCwgYncsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIihubyBBUEkgcmVtb3ZlZCkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPT09IENoYW5nZWQgaW4gIiArIHNyY05hbWUgKyAiID09PSIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhjaGFuZ2VkLCBidywgZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCIobm8gQVBJIGNoYW5nZWQpIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIj09PSBBZGRlZCBpbiAiICsgc3JjTmFtZSArICIgPT09Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFkZGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhhZGRlZCwgYncsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIihubyBBUEkgYWRkZWQpIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYncuY2xvc2UoKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsgYncuY2xvc2UoKTsgfSBjYXRjaCAoSU9FeGNlcHRpb24gZTIpIHt9CisgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oIndyaXRlIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRG9jcyhQcm9ncmFtRWxlbWVudERvY1tdIGRvY3MpIHsKKyAgICAgICAgaWYgKGRvY3MgIT0gbnVsbCAmJiBkb2NzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGRvRG9jKGRvY3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRG9jKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoaWdub3JlKGRvYykpIHJldHVybjsKKworICAgICAgICBpZiAoZG9jLmlzQ2xhc3MoKSB8fCBkb2MuaXNJbnRlcmZhY2UoKSkgeworICAgICAgICAgICAgQ2xhc3NEb2MgY2RvYyA9IChDbGFzc0RvYylkb2M7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5maWVsZHMoKSk7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5jb25zdHJ1Y3RvcnMoKSk7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5tZXRob2RzKCkpOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MuaW5uZXJDbGFzc2VzKCkpOworICAgICAgICB9CisKKyAgICAgICAgSW5mbyBpbmZvID0gbmV3IEluZm8oKTsKKyAgICAgICAgaWYgKGluZm8ucmVhZChkb2MpKSB7CisgICAgICAgICAgICByZXN1bHRzLmFkZChpbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpZ25vcmUoUHJvZ3JhbUVsZW1lbnREb2MgZG9jKSB7CisgICAgICAgIGlmIChkb2MgPT0gbnVsbCkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MuaXNQcml2YXRlKCkgfHwgZG9jLmlzUGFja2FnZVByaXZhdGUoKSkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckRvYyAmJiAoKENvbnN0cnVjdG9yRG9jKWRvYykuaXNTeW50aGV0aWMoKSkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MucXVhbGlmaWVkTmFtZSgpLmluZGV4T2YoIi5taXNjIikgIT0gLTEpIHJldHVybiB0cnVlOworICAgICAgICBUYWdbXSB0YWdzID0gZG9jLnRhZ3MoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAodGFnS2luZEluZGV4KHRhZ3NbaV0ua2luZCgpKSA9PSBJTlRFUk5BTCkgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB3cml0ZVJlc3VsdHMoQ29sbGVjdGlvbiBjLCBCdWZmZXJlZFdyaXRlciB3LCBib29sZWFuIGJyaWVmLCBib29sZWFuIGh0bWwsIGJvb2xlYW4gZGV0YWlsKSB7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZyBwYWNrID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGNsYXMgPSBudWxsOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEFQSUluZm8gaW5mbyA9IChBUElJbmZvKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGJyaWVmKSB7CisgICAgICAgICAgICAgICAgaW5mby53cml0ZSh3LCBicmllZiwgZmFsc2UsIGRldGFpbCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwID0gaW5mby5nZXQoUEFLLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmVxdWFscyhwYWNrKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbGFzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjxoMz5QYWNrYWdlICIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUocCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIlBhY2thZ2UgIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCc6Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwYWNrID0gcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXMgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uZ2V0VmFsKENBVCkgIT0gQ0FUX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGluZm8uZ2V0KENMUywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKGNsYXMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsYXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8bGk+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXMgPSBuYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiICAgICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8bGk+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLndyaXRlKHcsIGJyaWVmLCBodG1sLCBkZXRhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC9saT4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ud3JpdGUodywgYnJpZWYsIGh0bWwsIGRldGFpbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJJT0V4Y2VwdGlvbiAiICsgZS5nZXRNZXNzYWdlKCkgKyAiIHdyaXRpbmcgIiArIGluZm8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoY2xhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocGFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHJlYWRUb2tlbihCdWZmZXJlZFJlYWRlciByKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbMjU2XTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBmb3IgKDsgaSA8IGJ1Zi5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaW50IGMgPSByLnJlYWQoKTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJ1bmV4cGVjdGVkIEVPRiIpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjID09IFNFUCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmW2ldID0gKGNoYXIpYzsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBidWYubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oInVudGVybWluYXRlZCB0b2tlbiIgKyBuZXcgU3RyaW5nKGJ1ZikpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmLCAwLCBpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBUcmVlU2V0IHN0cmlwQW5kUmVzb3J0KFRyZWVTZXQgdCkgeworICAgICAgICBzdHJpcENsYXNzSW5mbyh0KTsKKyAgICAgICAgVHJlZVNldCByID0gbmV3IFRyZWVTZXQoSW5mby5jbGFzc0ZpcnN0Q29tcGFyYXRvcigpKTsKKyAgICAgICAgci5hZGRBbGwodCk7CisgICAgICAgIHJldHVybiByOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgc3RyaXBDbGFzc0luZm8oQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIC8vIGMgaXMgc29ydGVkIHdpdGggY2xhc3MgaW5mbyBmaXJzdAorICAgICAgICBJdGVyYXRvciBpdGVyID0gYy5pdGVyYXRvcigpOworICAgICAgICBTdHJpbmcgY25hbWUgPSBudWxsOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEluZm8gaW5mbyA9IChJbmZvKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGNscyA9IGluZm8uZ2V0KENMUywgdHJ1ZSk7CisgICAgICAgICAgICBpZiAoY25hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChjbmFtZS5lcXVhbHMoY2xzKSkgeworICAgICAgICAgICAgICAgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY25hbWUgPSBudWxsOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGlmIChpbmZvLmdldFZhbChDQVQpID09IENBVF9DTEFTUykgeworICAgICAgICAgICAgICAgIGNuYW1lID0gaW5mby5nZXQoTkFNLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCB0YWdTdGF0dXMoZmluYWwgRG9jIGRvYykgeworICAgICAgICBjbGFzcyBSZXN1bHQgeworICAgICAgICAgICAgaW50IHJlcyA9IC0xOworICAgICAgICAgICAgdm9pZCBzZXQoaW50IHZhbCkgeyBpZiAocmVzICE9IC0xKSB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiYmFkIGRvYzogIiArIGRvYyk7IHJlcyA9IHZhbDsgfQorICAgICAgICAgICAgaW50IGdldCgpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigid2FybmluZzogbm8gdGFnIGZvciAiICsgZG9jKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBUYWdbXSB0YWdzID0gZG9jLnRhZ3MoKTsKKyAgICAgICAgUmVzdWx0IHJlc3VsdCA9IG5ldyBSZXN1bHQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUYWcgdGFnID0gdGFnc1tpXTsKKworICAgICAgICAgICAgU3RyaW5nIGtpbmQgPSB0YWcua2luZCgpOworICAgICAgICAgICAgaW50IGl4ID0gdGFnS2luZEluZGV4KGtpbmQpOworCisgICAgICAgICAgICBzd2l0Y2ggKGl4KSB7CisgICAgICAgICAgICBjYXNlIElOVEVSTkFMOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoLTIpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERSQUZUOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoU1RBX0RSQUZUKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBTVEFCTEU6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldChTVEFfU1RBQkxFKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBERVBSRUNBVEVEOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoU1RBX0RFUFJFQ0FURUQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIE9CU09MRVRFOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoU1RBX09CU09MRVRFKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBTSU5DRToKKyAgICAgICAgICAgIGNhc2UgRVhDRVBUSU9OOgorICAgICAgICAgICAgY2FzZSBWRVJTSU9OOgorICAgICAgICAgICAgY2FzZSBVTktOT1dOOgorICAgICAgICAgICAgY2FzZSBBVVRIT1I6CisgICAgICAgICAgICBjYXNlIFNFRToKKyAgICAgICAgICAgIGNhc2UgUEFSQU06CisgICAgICAgICAgICBjYXNlIFJFVFVSTjoKKyAgICAgICAgICAgIGNhc2UgVEhST1dTOgorICAgICAgICAgICAgY2FzZSBTRVJJQUw6CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oInVua25vd24gaW5kZXggIiArIGl4ICsgIiBmb3IgdGFnOiAiICsga2luZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTktOT1dOID0gLTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVEVSTkFMID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFJBRlQgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFCTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSU5DRSA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFUFJFQ0FURUQgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVRIT1IgPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUUgPSA2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWRVJTSU9OID0gNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUEFSQU0gPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVRVUk4gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUSFJPV1MgPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT0JTT0xFVEUgPSAxMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDRVBUSU9OID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFUklBTCA9IDEzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHRhZ0tpbmRJbmRleChTdHJpbmcga2luZCkgeworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0YWdLaW5kcyA9IHsKKyAgICAgICAgICAgICJAaW50ZXJuYWwiLCAiQGRyYWZ0IiwgIkBzdGFibGUiLCAiQHNpbmNlIiwgIkBkZXByZWNhdGVkIiwgIkBhdXRob3IiLCAiQHNlZSIsICJAdmVyc2lvbiIsCisgICAgICAgICAgICAiQHBhcmFtIiwgIkByZXR1cm4iLCAiQHRocm93cyIsICJAb2Jzb2xldGUiLCAiQGV4Y2VwdGlvbiIsICJAc2VyaWFsIgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFnS2luZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChraW5kLmVxdWFscyh0YWdLaW5kc1tpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVU5LTk9XTjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja1RhZ3MuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrVGFncy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiYjQzNWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja1RhZ3MuamF2YQpAQCAtMCwwICsxLDQyMSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworLyoqCisgKiBUaGlzIGlzIGEgdG9vbCB0byBjaGVjayB0aGUgdGFncyBvbiBJQ1U0SiBmaWxlcy4gIEluIHBhcnRpY3VsYXIsIHdlJ3JlIGxvb2tpbmcgZm9yOgorICoKKyAqIC0gbWV0aG9kcyB0aGF0IGhhdmUgbm8gdGFncworICogLSBjdXN0b20gdGFnczogQGRyYWZ0LCBAc3RhYmxlLCBAaW50ZXJuYWw/CisgKiAtIHN0YW5kYXJkIHRhZ3M6IEBzaW5jZSwgQGRlcHJlY2F0ZWQKKyAqCisgKiBTeW50YXggb2YgdGFnczoKKyAqICdAZHJhZnQgSUNVIFguWC5YJworICogJ0BzdGFibGUgSUNVIFguWC5YJworICogJ0BpbnRlcm5hbCcKKyAqICdAc2luY2UgIChkb24ndCB1c2UpJworICogJ0BvYnNvbGV0ZSBJQ1UgWC5YLlgnCisgKiAnQGRlcHJlY2F0ZWQgdG8gYmUgcmVtb3ZlZCBpbiBJQ1UgWC5YLiBbVXNlIC4uLl0nCisgKgorICogZmxhZ3MgbmFtZXMgb2YgY2xhc3NlcyBhbmQgdGhlaXIgbWVtYmVycyB0aGF0IGhhdmUgbm8gdGFncyBvciBpbmNvcnJlY3Qgc3ludGF4LgorICoKKyAqIFJlcXVpcmVzIEpESyAxLjQgb3IgbGF0ZXIKKyAqCisgKiBVc2UgYnVpbGQueG1sICdjaGVja3RhZ3MnIGFudCB0YXJnZXQsIG9yCisgKiBydW4gZnJvbSBkaXJlY3RvcnkgY29udGFpbmluZyBDaGVja1RhZ3MuY2xhc3MgYXMgZm9sbG93czoKKyAqIGphdmFkb2MgLWNsYXNzcGF0aCAke0pBVkFfSE9NRX0vbGliL3Rvb2xzLmphciAtZG9jbGV0IENoZWNrVGFncyAtc291cmNlcGF0aCAke0lDVTRKX3NyY30gW3BhY2thZ2VuYW1lc10KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBjb20uc3VuLmphdmFkb2MuKjsKKworcHVibGljIGNsYXNzIENoZWNrVGFncyB7CisgICAgUm9vdERvYyByb290OworICAgIGJvb2xlYW4gbG9nOworICAgIGJvb2xlYW4gYnJpZWY7CisgICAgYm9vbGVhbiBpc1Nob3J0OworICAgIERvY1N0YWNrIHN0YWNrID0gbmV3IERvY1N0YWNrKCk7CisKKyAgICBjbGFzcyBEb2NOb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaGVhZGVyOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gcHJpbnRlZDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIHJlcG9ydEVycm9yOworICAgICAgICBwcml2YXRlIGludCBlcnJvckNvdW50OworCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KFN0cmluZyBoZWFkZXIsIGJvb2xlYW4gcmVwb3J0RXJyb3IpIHsKKyAgICAgICAgICAgIHRoaXMuaGVhZGVyID0gaGVhZGVyOworICAgICAgICAgICAgdGhpcy5wcmludGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLmVycm9yQ291bnQgPSAwOworICAgICAgICAgICAgdGhpcy5yZXBvcnRFcnJvciA9IHJlcG9ydEVycm9yOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gaGVhZGVyICsKKyAgICAgICAgICAgICAgICAiIHByaW50ZWQ6ICIgKyBwcmludGVkICsKKyAgICAgICAgICAgICAgICAiIHJlcG9ydEVycm9yOiAiICsgcmVwb3J0RXJyb3IgKworICAgICAgICAgICAgICAgICIgZXJyb3JDb3VudDogIiArIGVycm9yQ291bnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjbGFzcyBEb2NTdGFjayB7CisgICAgICAgIHByaXZhdGUgRG9jTm9kZVtdIHN0YWNrOworICAgICAgICBwcml2YXRlIGludCBpbmRleDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIG5ld2xpbmU7CisKKyAgICAgICAgcHVibGljIHZvaWQgcHVzaChTdHJpbmcgaGVhZGVyLCBib29sZWFuIHJlcG9ydEVycm9yKSB7CisgICAgICAgICAgICBpZiAoc3RhY2sgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0YWNrID0gbmV3IERvY05vZGVbNV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSBzdGFjay5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgRG9jTm9kZVtdIHRlbXAgPSBuZXcgRG9jTm9kZVtzdGFjay5sZW5ndGggKiAyXTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdGFjaywgMCwgdGVtcCwgMCwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBzdGFjayA9IHRlbXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0YWNrW2luZGV4XSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RhY2tbaW5kZXhdID0gbmV3IERvY05vZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICBTeXN0ZW0ub3V0LnByaW50bG4oInJlc2V0IFsiICsgaW5kZXggKyAiXSBoZWFkZXI6ICIgKyBoZWFkZXIgKyAiIHJlcG9ydDogIiArIHJlcG9ydEVycm9yKTsKKyAgICAgICAgICAgIHN0YWNrW2luZGV4KytdLnJlc2V0KGhlYWRlciwgcmVwb3J0RXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcG9wKCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsKKworICAgICAgICAgICAgaW50IGVjID0gc3RhY2tbaW5kZXhdLmVycm9yQ291bnQ7IC8vIGluZGV4IGFscmVhZHkgZGVjcmVtZW50ZWQKKyAgICAgICAgICAgIGlmIChlYyA+IDAgfHwgaW5kZXggPT0gMCkgeyAvLyBhbHdheXMgcmVwb3J0IGZvciBvdXRlcm1vc3QgZWxlbWVudAorICAgICAgICAgICAgICAgIGlmIChzdGFja1tpbmRleF0ucmVwb3J0RXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0KCIoIiArIGVjICsgKGVjID09IDEgPyAiIGVycm9yIiA6ICIgZXJyb3JzIikgKyAiKSIsIGZhbHNlLCB0cnVlLCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gcHJvcGFnYXRlIHRvIHBhcmVudAorICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2tbaW5kZXgtMV0uZXJyb3JDb3VudCArPSBlYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOyAvLyBhbHdheXMgc2luY2Ugd2UgYWx3YXlzIHJlcG9ydCBudW1iZXIgb2YgZXJyb3JzCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBvdXRwdXQoU3RyaW5nIG1zZywgYm9vbGVhbiBlcnJvciwgYm9vbGVhbiBuZXdsaW5lKSB7CisgICAgICAgICAgICBvdXRwdXQobXNnLCBlcnJvciwgbmV3bGluZSwgaW5kZXgtMSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIG91dHB1dChTdHJpbmcgbXNnLCBib29sZWFuIGVycm9yLCBib29sZWFuIG5ld2xpbmUsIGludCBpeCkgeworICAgICAgICAgICAgRG9jTm9kZSBsYXN0ID0gc3RhY2tbaXhdOworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgbGFzdC5lcnJvckNvdW50ICs9IDE7CisJICAgIH0KKworICAgICAgICAgICAgYm9vbGVhbiBzaG93ID0gIWJyaWVmIHx8IGxhc3QucmVwb3J0RXJyb3I7CisgICAgICAgICAgICAvLyBib29sZWFuIG5vbXNnID0gc2hvdyAmJiBicmllZiAmJiBlcnJvcjsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+Pj4gIiArIGxhc3QgKyAiIGVycm9yOiAiICsgZXJyb3IgKyAiIHNob3c6ICIgKyBzaG93ICsgIiBub21zZzogIiArIG5vbXNnKTsKKworICAgICAgICAgICAgaWYgKHNob3cpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNTaG9ydCB8fCAoYnJpZWYgJiYgZXJyb3IpKSB7CisgICAgICAgICAgICAgICAgICAgIG1zZyA9IG51bGw7IC8vIG51a2UgZXJyb3IgbWVzc2FnZXMgaWYgd2UncmUgYnJpZWYsIGp1c3QgcmVwb3J0IGhlYWRlcnMgYW5kIHRvdGFscworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBpeDspIHsKKyAgICAgICAgICAgICAgICAgICAgRG9jTm9kZSBuID0gc3RhY2tbaV07CisgICAgICAgICAgICAgICAgICAgIGlmIChuLnByaW50ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtc2cgIT0gbnVsbCB8fCAhbGFzdC5wcmludGVkKSB7IC8vIHNpbmNlIGluZGV4ID4gMCBsYXN0IGlzIG5vdCBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubmV3bGluZSAmJiBpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV3bGluZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChuLmhlYWRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICBuLnByaW50ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdsaW5lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG1zZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSAwICYmIHRoaXMubmV3bGluZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIqKiogIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChtc2cpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5uZXdsaW5lID0gbmV3bGluZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzdGFydChSb290RG9jIHJvb3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGVja1RhZ3Mocm9vdCkucnVuKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBpbnQgb3B0aW9uTGVuZ3RoKFN0cmluZyBvcHRpb24pIHsKKyAgICAgICAgaWYgKG9wdGlvbi5lcXVhbHMoIi1sb2ciKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLWJyaWVmIikpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi1zaG9ydCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBDaGVja1RhZ3MoUm9vdERvYyByb290KSB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3Q7CisKKyAgICAgICAgU3RyaW5nW11bXSBvcHRpb25zID0gcm9vdC5vcHRpb25zKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG9wdCA9IG9wdGlvbnNbaV1bMF07CisgICAgICAgICAgICBpZiAob3B0LmVxdWFscygiLWxvZyIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5sb2cgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItYnJpZWYiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuYnJpZWYgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItc2hvcnQiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuaXNTaG9ydCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sZWFuIHJ1bigpIHsKKyAgICAgICAgZG9Eb2NzKHJvb3QuY2xhc3NlcygpLCAiUGFja2FnZSIsIHRydWUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHRhZ0tpbmRzID0geworICAgICAgICAiQGludGVybmFsIiwgIkBkcmFmdCIsICJAc3RhYmxlIiwgIkBzaW5jZSIsICJAZGVwcmVjYXRlZCIsICJAYXV0aG9yIiwgIkBzZWUiLCAiQHZlcnNpb24iLAorICAgICAgICAiQHBhcmFtIiwgIkByZXR1cm4iLCAiQHRocm93cyIsICJAb2Jzb2xldGUiLCAiQGV4Y2VwdGlvbiIsICJAc2VyaWFsIiwgIkBwcm92aXNpb25hbCIKKyAgICB9OworCisgICAgc3RhdGljIGZpbmFsIGludCBVTktOT1dOID0gLTE7CisgICAgc3RhdGljIGZpbmFsIGludCBJTlRFUk5BTCA9IDA7CisgICAgc3RhdGljIGZpbmFsIGludCBEUkFGVCA9IDE7CisgICAgc3RhdGljIGZpbmFsIGludCBTVEFCTEUgPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0lOQ0UgPSAzOworICAgIHN0YXRpYyBmaW5hbCBpbnQgREVQUkVDQVRFRCA9IDQ7CisgICAgc3RhdGljIGZpbmFsIGludCBBVVRIT1IgPSA1OworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VFID0gNjsKKyAgICBzdGF0aWMgZmluYWwgaW50IFZFUlNJT04gPSA3OworICAgIHN0YXRpYyBmaW5hbCBpbnQgUEFSQU0gPSA4OworICAgIHN0YXRpYyBmaW5hbCBpbnQgUkVUVVJOID0gOTsKKyAgICBzdGF0aWMgZmluYWwgaW50IFRIUk9XUyA9IDEwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgT0JTT0xFVEUgPSAxMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IEVYQ0VQVElPTiA9IDEyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VSSUFMID0gMTM7CisgICAgc3RhdGljIGZpbmFsIGludCBQUk9WSVNJT05BTCA9IDE0OworCisgICAgc3RhdGljIGludCB0YWdLaW5kSW5kZXgoU3RyaW5nIGtpbmQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdLaW5kcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGtpbmQuZXF1YWxzKHRhZ0tpbmRzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBVTktOT1dOOworICAgIH0KKworICAgIGJvb2xlYW4gbmV3bGluZSA9IGZhbHNlOworCisgICAgdm9pZCBvdXRwdXQoU3RyaW5nIG1zZywgYm9vbGVhbiBlcnJvciwgYm9vbGVhbiBuZXdsaW5lKSB7CisgICAgICAgIHN0YWNrLm91dHB1dChtc2csIGVycm9yLCBuZXdsaW5lKTsKKyAgICB9CisKKyAgICB2b2lkIGxvZygpIHsKKyAgICAgICAgb3V0cHV0KG51bGwsIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgdm9pZCBsb2dsbigpIHsKKyAgICAgICAgb3V0cHV0KG51bGwsIGZhbHNlLCB0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGxvZyhTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgdm9pZCBsb2dsbihTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIGZhbHNlLCB0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGVycihTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIHRydWUsIGZhbHNlKTsKKyAgICB9CisKKyAgICB2b2lkIGVycmxuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgb3V0cHV0KG1zZywgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgdm9pZCB0YWdFcnIoVGFnIHRhZykgeworICAgICAgICAvLyBUYWcucG9zaXRpb24oKSByZXF1aXJlcyBKREsgMS40LCBidWlsZC54bWwgdGVzdHMgZm9yIHRoaXMKKyAgICAgICAgZXJybG4odGFnLnRvU3RyaW5nKCkgKyAiIFsiICsgdGFnLnBvc2l0aW9uKCkgKyAiXSIpOworICAgIH0KKworICAgIHZvaWQgZG9Eb2NzKFByb2dyYW1FbGVtZW50RG9jW10gZG9jcywgU3RyaW5nIGhlYWRlciwgYm9vbGVhbiByZXBvcnRFcnJvcikgeworICAgICAgICBpZiAoZG9jcyAhPSBudWxsICYmIGRvY3MubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgc3RhY2sucHVzaChoZWFkZXIsIHJlcG9ydEVycm9yKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGRvRG9jKGRvY3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhY2sucG9wKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGRvRG9jKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoZG9jICE9IG51bGwgJiYgKGRvYy5pc1B1YmxpYygpIHx8IGRvYy5pc1Byb3RlY3RlZCgpKQorICAgICAgICAgICAgJiYgIShkb2MgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckRvYyAmJiAoKENvbnN0cnVjdG9yRG9jKWRvYykuaXNTeW50aGV0aWMoKSkpIHsKKworICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseSwgaW4gSkRLIDEuNC4xIE1lbWJlckRvYy5pc1N5bnRoZXRpYyBpcyBub3QgcHJvcGVybHkgaW1wbGVtZW50ZWQgZm9yCisgICAgICAgICAgICAvLyBzeW50aGV0aWMgY29uc3RydWN0b3JzLiAgU28geW91J2xsIGhhdmUgdG8gbGl2ZSB3aXRoIHNwdXJpb3VzIGVycm9ycyBvciAnaW1wbGVtZW50JworICAgICAgICAgICAgLy8gdGhlIHN5bnRoZXRpYyBjb25zdHJ1Y3RvcnMuLi4KKworICAgICAgICAgICAgYm9vbGVhbiBpc0NsYXNzID0gZG9jLmlzQ2xhc3MoKSB8fCBkb2MuaXNJbnRlcmZhY2UoKTsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXI7CisgICAgICAgICAgICBpZiAoIWlzU2hvcnQgfHwgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIGhlYWRlciA9ICItLS0gIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaGVhZGVyID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBoZWFkZXIgKz0gKGlzQ2xhc3MgPyBkb2MucXVhbGlmaWVkTmFtZSgpIDogZG9jLm5hbWUoKSk7CisgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgRXhlY3V0YWJsZU1lbWJlckRvYykgeworICAgICAgICAgICAgICAgIGhlYWRlciArPSAoKEV4ZWN1dGFibGVNZW1iZXJEb2MpZG9jKS5mbGF0U2lnbmF0dXJlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlzU2hvcnQgfHwgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIGhlYWRlciArPSAiIC0tLSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFjay5wdXNoKGhlYWRlciwgaXNDbGFzcyk7CisgICAgICAgICAgICBpZiAobG9nKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gcmVjdXJzZSA9IGRvVGFncyhkb2MpOworICAgICAgICAgICAgaWYgKHJlY3Vyc2UgJiYgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIENsYXNzRG9jIGNkb2MgPSAoQ2xhc3NEb2MpZG9jOworICAgICAgICAgICAgICAgIGRvRG9jcyhjZG9jLmZpZWxkcygpLCAiRmllbGRzIiwgIWJyaWVmKTsKKyAgICAgICAgICAgICAgICBkb0RvY3MoY2RvYy5jb25zdHJ1Y3RvcnMoKSwgIkNvbnN0cnVjdG9ycyIsICFicmllZik7CisgICAgICAgICAgICAgICAgZG9Eb2NzKGNkb2MubWV0aG9kcygpLCAiTWV0aG9kcyIsICFicmllZik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiBzdWJlbGVtZW50cyBvZiB0aGlzIGRvYyBzaG91bGQgYmUgY2hlY2tlZCAqLworICAgIGJvb2xlYW4gZG9UYWdzKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBUYWdbXSB0YWdzID0gZG9jLnRhZ3MoKTsKKyAgICAgICAgYm9vbGVhbiBmb3VuZFJlcXVpcmVkVGFnID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZm91bmREcmFmdFRhZyA9IGZhbHNlOworCWJvb2xlYW4gZm91bmRQcm92aXNpb25hbFRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIGZvdW5kRGVwcmVjYXRlZFRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIGZvdW5kT2Jzb2xldGVUYWcgPSBmYWxzZTsKKwlib29sZWFuIGZvdW5kSW50ZXJuYWxUYWcgPSBmYWxzZTsKKwlib29sZWFuIGZvdW5kU3RhYmxlVGFnID0gZmFsc2U7CisJYm9vbGVhbiByZXRhaW5BbGwgPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRhZyB0YWcgPSB0YWdzW2ldOworCisgICAgICAgICAgICBTdHJpbmcga2luZCA9IHRhZy5raW5kKCk7CisgICAgICAgICAgICBpbnQgaXggPSB0YWdLaW5kSW5kZXgoa2luZCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoaXgpIHsKKyAgICAgICAgICAgIGNhc2UgVU5LTk9XTjoKKyAgICAgICAgICAgICAgICBlcnJsbigidW5rbm93biBraW5kOiAiICsga2luZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgSU5URVJOQUw6CisgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisJCWZvdW5kSW50ZXJuYWxUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERSQUZUOgorICAgICAgICAgICAgICAgIGZvdW5kUmVxdWlyZWRUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvdW5kRHJhZnRUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICh0YWcudGV4dCgpLmluZGV4T2YoIklDVSAyLjgiKSAhPSAtMSAmJgorCQkgICAgdGFnLnRleHQoKS5pbmRleE9mKCIocmV0YWluIikgPT0gLTEpIHsgLy8gY2F0Y2ggYm90aCByZXRhaW4gYW5kIHJldGFpbkFsbAorICAgICAgICAgICAgICAgICAgICB0YWdFcnIodGFnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YWcudGV4dCgpLmluZGV4T2YoIklDVSIpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwkJcmV0YWluQWxsIHw9ICh0YWcudGV4dCgpLmluZGV4T2YoIihyZXRhaW5BbGwpIikgIT0gLTEpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisJICAgIGNhc2UgUFJPVklTSU9OQUw6CisJCWZvdW5kUHJvdmlzaW9uYWxUYWcgPSB0cnVlOworCQlicmVhazsKKworICAgICAgICAgICAgY2FzZSBERVBSRUNBVEVEOgorICAgICAgICAgICAgICAgIGZvdW5kRGVwcmVjYXRlZFRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKHRhZy50ZXh0KCkuaW5kZXhPZigiSUNVIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZFJlcXVpcmVkVGFnID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgT0JTT0xFVEU6CisgICAgICAgICAgICAgICAgaWYgKHRhZy50ZXh0KCkuaW5kZXhPZigiSUNVIikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0YWdFcnIodGFnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm91bmRPYnNvbGV0ZVRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU1RBQkxFOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSB0YWcudGV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSAhPSAwICYmIHRleHQuaW5kZXhPZigiSUNVIikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisJCSAgICBmb3VuZFN0YWJsZVRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNJTkNFOgorICAgICAgICAgICAgICAgIHRhZ0Vycih0YWcpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIEVYQ0VQVElPTjoKKyAgICAgICAgICAgICAgICBsb2dsbigiWW91IHJlYWxseSBvdWdodCB0byB1c2UgQHRocm93cywgeW91IGtub3cuLi4gOi0pIik7CisKKyAgICAgICAgICAgIGNhc2UgQVVUSE9SOgorICAgICAgICAgICAgY2FzZSBTRUU6CisgICAgICAgICAgICBjYXNlIFBBUkFNOgorICAgICAgICAgICAgY2FzZSBSRVRVUk46CisgICAgICAgICAgICBjYXNlIFRIUk9XUzoKKyAgICAgICAgICAgIGNhc2UgU0VSSUFMOgorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFZFUlNJT046CisgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZXJybG4oInVua25vd24gaW5kZXg6ICIgKyBpeCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmb3VuZFJlcXVpcmVkVGFnKSB7CisgICAgICAgICAgICBlcnJsbigibWlzc2luZyByZXF1aXJlZCB0YWcgWyIgKyBkb2MucG9zaXRpb24oKSArICJdIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvdW5kSW50ZXJuYWxUYWcgJiYgIWZvdW5kRGVwcmVjYXRlZFRhZykgeworICAgICAgICAgICAgZXJybG4oImludGVybmFsIHRhZyBtaXNzaW5nIGRlcHJlY2F0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZm91bmREcmFmdFRhZyAmJiAhKGZvdW5kRGVwcmVjYXRlZFRhZyB8fCBmb3VuZFByb3Zpc2lvbmFsVGFnKSkgeworICAgICAgICAgICAgZXJybG4oImRyYWZ0IHRhZyBtaXNzaW5nIGRlcHJlY2F0ZWQgb3IgcHJvdmlzaW9uYWwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZm91bmRPYnNvbGV0ZVRhZyAmJiAhZm91bmREZXByZWNhdGVkVGFnKSB7CisgICAgICAgICAgICBlcnJsbigib2Jzb2xldGUgdGFnIG1pc3NpbmcgZGVwcmVjYXRlZCIpOworICAgICAgICB9CisJaWYgKGZvdW5kU3RhYmxlVGFnICYmIGZvdW5kRGVwcmVjYXRlZFRhZykgeworCSAgICBsb2dsbigic3RhYmxlIGRlcHJlY2F0ZWQiKTsKKwl9CisKKwlyZXR1cm4gIXJldGFpbkFsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9Db2RlTWFuZ2xlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQ29kZU1hbmdsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTY4ZDFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQ29kZU1hbmdsZXIuamF2YQpAQCAtMCwwICsxLDg0MSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVuYW1lRmlsdGVyOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisvLyBpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CisKKy8qKgorICogQSBzaW1wbGUgZmFjaWxpdHkgZm9yIGFkZGluZyBDLWxpa2UgcHJlcHJvY2Vzc2luZyB0byAuamF2YSBmaWxlcy4KKyAqIFRoaXMgb25seSB1bmRlcnN0YW5kcyBhIHN1YnNldCBvZiB0aGUgQyBwcmVwcm9jZXNzaW5nIHN5bnRheC4KKyAqIEl0cyB1c2VkIHRvIG1hbmFnZSBmaWxlcyB0aGF0IHdpdGggb25seSBzbWFsbCBkaWZmZXJlbmNlcyBjYW4gYmUKKyAqIGNvbXBpbGVkIGZvciBkaWZmZXJlbnQgSlZNcy4gIFRoaXMgY2hhbmdlcyBmaWxlcyBpbiBwbGFjZSwgCisgKiBjb21tZW50aW5nIG91dCBsaW5lcyBiYXNlZCBvbiB0aGUgY3VycmVudCBmbGFnIHNldHRpbmdzLgorICovCitwdWJsaWMgY2xhc3MgQ29kZU1hbmdsZXIgeworICAgIHByaXZhdGUgRmlsZSBpbmRpcjsgICAgICAgIC8vIHJvb3Qgb2YgaW5wdXQKKyAgICBwcml2YXRlIEZpbGUgb3V0ZGlyOyAgICAgICAvLyByb290IG9mIG91dHB1dAorICAgIHByaXZhdGUgU3RyaW5nIHN1ZmZpeDsgICAgIC8vIHN1ZmZpeCB0byBwcm9jZXNzLCBkZWZhdWx0ICcuanBwJworICAgIHByaXZhdGUgYm9vbGVhbiByZWN1cnNlOyAgIC8vIHRydWUgaWYgcmVjdXJzZSBvbiBkaXJlY3RvcmllcworICAgIHByaXZhdGUgYm9vbGVhbiBmb3JjZTsgICAgIC8vIHRydWUgaWYgZm9yY2UgcmVwcm9jZXNzIG9mIGZpbGVzCisgICAgcHJpdmF0ZSBib29sZWFuIGNsZWFuOyAgICAgLy8gdHJ1ZSBpZiBvdXRwdXQgaXMgdG8gYmUgY2xlYW5lZAorICAgIHByaXZhdGUgYm9vbGVhbiB0aW1lc3RhbXA7IC8vIHRydWUgaWYgd2UgcmVhZC93cml0ZSB0aW1lc3RhbXAKKyAgICBwcml2YXRlIEhhc2hNYXAgbWFwOyAgICAgICAvLyBkZWZpbmVzCisgICAgcHJpdmF0ZSBBcnJheUxpc3QgbmFtZXM7ICAgLy8gZmlsZXMvZGlyZWN0b3JpZXMgdG8gcHJvY2VzcworICAgIHByaXZhdGUgU3RyaW5nIGhlYWRlcjsgICAgIC8vIHNvcnRlZCBsaXN0IG9mIGRlZmluZXMgcGFzc2VkIGluCisKKyAgICBwcml2YXRlIGJvb2xlYW4gdmVyYm9zZTsgLy8gdHJ1ZSBpZiB3ZSBlbWl0IGRlYnVnIG91dHB1dAorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElHTk9SRV9QUkVGSVggPSAiLy8jIyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUl9QUkVGSVggPSAiLy8jI2hlYWRlciI7CisKKy8vICAgICBzdGF0aWMgZmluYWwgUGF0dGVybiBwYXQgPSBQYXR0ZXJuLmNvbXBpbGUoCisvLyAgICAgICAgICIoP2kpXihcXHMqKD86Ly8rKT8/XFxzKikjKGlmZGVmXFxzfGlmbmRlZlxcc3xlbHNlfGVuZGlmfHVuZGVmXFxzfGRlZmluZVxcc3xpZlxcc3xlbGlmXFxzKVxccyooLiopJCIpOworLy8gICAgIC8vIHN0YXRpYyBmaW5hbCBQYXR0ZXJuIHBhdDIgPSBQYXR0ZXJuLmNvbXBpbGUoIihbXj0hXSspXFxzKihbIT1dPz0pPz9cXHMqKFxcdyspIik7CisvLyAgICAgc3RhdGljIGZpbmFsIFBhdHRlcm4gcGF0MiA9IFBhdHRlcm4uY29tcGlsZSgiXFxzKihcXHcrKVxccyooWyE9XT89KT8/XFxzKihbXlxcc10/LiokKSIpOworLy8gICAgIHN0YXRpYyBmaW5hbCBQYXR0ZXJuIHBhdDMgPSBQYXR0ZXJuLmNvbXBpbGUoIl4oXFxzKi8vIyMpLioiKTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKy8vICAgICAgICAgdGVzdCgpOworICAgICAgICBuZXcgQ29kZU1hbmdsZXIoYXJncykucnVuKCk7CisgICAgfQorCisvLyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB0ZXN0KCkgeworLy8gICAgICAgICB0ZXN0UGF0KCk7CisvLyAgICAgICAgIHRlc3RQYXQyKCk7CisvLyAgICAgICAgIHRlc3RQYXQzKCk7CisvLyAgICAgfQorLy8gICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdGVzdFBhdCgpIHsKKy8vICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0ZXN0IHBhdCIpOworLy8gICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKy8vICAgICAgICAgICAgICIiLAorLy8gICAgICAgICAgICAgIiAiLAorLy8gICAgICAgICAgICAgIiNlbmRpZiIsCisvLyAgICAgICAgICAgICAiIyBlbmRpZiIsCisvLyAgICAgICAgICAgICAiI0VORElGIiwKKy8vICAgICAgICAgICAgICIjZU5kSWYiLAorLy8gICAgICAgICAgICAgIi8vI2VuZGlmIiwKKy8vICAgICAgICAgICAgICIvLyAjZW5kaWYiLAorLy8gICAgICAgICAgICAgIi8vICMgZW5kaWYiLAorLy8gICAgICAgICAgICAgIiAgLy8gICNpZmRlZiBmb28iLAorLy8gICAgICAgICAgICAgIiAgLy8gICNpZm5kZWYgZm9vIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjZWxzZSIsCisvLyAgICAgICAgICAgICAiICAvLyAgI2VuZGlmIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjdW5kZWYgZm9vIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjZGVmaW5lIGZvbyBiYXIiLAorLy8gICAgICAgICAgICAgIiAgLy8gICNpZiBmb28gPT0gYmFyIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjZWxpZiBiYXIgIT0gYmF6IiwKKy8vICAgICAgICAgfTsKKy8vICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworLy8gICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgicGF0ICciICsgdGVzdHNbaV0gKyAiJyAtLT4gIik7CisvLyAgICAgICAgICAgICBNYXRjaGVyIG0gPSBwYXQubWF0Y2hlcih0ZXN0c1tpXSk7CisvLyAgICAgICAgICAgICBpZiAobS5maW5kKCkpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgbS5ncm91cCgxKSArICInICciICsgbS5ncm91cCgyKSArICInICciICsgbS5ncm91cCgzKSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJkdWcgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIFN0cmluZ1tdIHJlcyA9IG5ldyBTdHJpbmdbM107CisvLyAgICAgICAgICAgICBpZiAocGF0TWF0Y2godGVzdHNbaV0sIHJlcykpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgcmVzWzBdICsgIicgJyIgKyByZXNbMV0gKyAiJyAnIiArIHJlc1syXSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKy8vICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHRlc3RQYXQyKCkgeworLy8gICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInRlc3QgcGF0MiIpOworLy8gICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKy8vICAgICAgICAgICAgICIiLAorLy8gICAgICAgICAgICAgIiAiLAorLy8gICAgICAgICAgICAgInRlc3QiLAorLy8gICAgICAgICAgICAgIiB0ZXN0IiwKKy8vICAgICAgICAgICAgICJ0ZXN0ICIsCisvLyAgICAgICAgICAgICAiIHRlc3QgIiwKKy8vICAgICAgICAgICAgICIgdGVzdCA9PSIsCisvLyAgICAgICAgICAgICAiICE9IiwKKy8vICAgICAgICAgICAgICIgIT1mb28iLAorLy8gICAgICAgICAgICAgImZvbz09YmFyIiwKKy8vICAgICAgICAgICAgICJmb28gPT1iYXIiLAorLy8gICAgICAgICAgICAgImZvbz09IGJhciIsCisvLyAgICAgICAgICAgICAiZm9vID09IGJhciIsCisvLyAgICAgICAgICAgICAiZm9vIGJhciBiYXosIHdvbXBmIiwKKy8vICAgICAgICAgICAgICJmb289YmFyPWJheiwgd29tcGYgYSBsb28iLAorLy8gICAgICAgICB9OworLy8gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJwYXQgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIE1hdGNoZXIgbTIgPSBwYXQyLm1hdGNoZXIodGVzdHNbaV0pOworLy8gICAgICAgICAgICAgaWYgKG0yLmZpbmQoKSkgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJyIgKyBtMi5ncm91cCgxKSArICInICciICsgbTIuZ3JvdXAoMikgKyAiJyAnIiArIG0yLmdyb3VwKDMpICsgIiciKTsKKy8vICAgICAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkaWRuJ3QgbWF0Y2giKTsKKy8vICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImR1ZyAnIiArIHRlc3RzW2ldICsgIicgLS0+ICIpOworLy8gICAgICAgICAgICAgU3RyaW5nW10gcmVzID0gbmV3IFN0cmluZ1szXTsKKy8vICAgICAgICAgICAgIGlmIChwYXQyTWF0Y2godGVzdHNbaV0sIHJlcykpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgcmVzWzBdICsgIicgJyIgKyByZXNbMV0gKyAiJyAnIiArIHJlc1syXSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKy8vICAgICB9CisvLyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB0ZXN0UGF0MygpIHsKKy8vICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0ZXN0IHBhdDMiKTsKKy8vICAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisvLyAgICAgICAgICAgICAiIiwKKy8vICAgICAgICAgICAgICIgIiwKKy8vICAgICAgICAgICAgICIgLy8jIiwKKy8vICAgICAgICAgICAgICIgLyMjIiwKKy8vICAgICAgICAgICAgICIvLyMjIiwKKy8vICAgICAgICAgICAgICIgLy8jIyIsCisvLyAgICAgICAgICAgICAiIC8vIyMvLyIsCisvLyAgICAgICAgICAgICAiIC8vLy8vIyMiLAorLy8gICAgICAgICB9OworLy8gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJwYXQgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIE1hdGNoZXIgbSA9IHBhdDMubWF0Y2hlcih0ZXN0c1tpXSk7CisvLyAgICAgICAgICAgICBpZiAobS5maW5kKCkpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgbS5ncm91cCgxKSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJkdWcgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIFN0cmluZyBtYXRjaCA9IHBhdDNNYXRjaCh0ZXN0c1tpXSk7CisvLyAgICAgICAgICAgICBpZiAobWF0Y2ggIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJyIgKyBtYXRjaCArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2UgPSAiVXNhZ2U6XG4iICsKKyAgICAgICAgIiAgICBDb2RlTWFuZ2xlciBbZmxhZ3NdIGZpbGUuLi4gZGlyLi4uIEBhcmdmaWxlLi4uIFxuIiArCisgICAgICAgICItaW5bZGlyXSBwYXRoICAgICAgICAgIC0gcm9vdCBkaXJlY3Rvcnkgb2YgaW5wdXQgZmlsZXMsIG90aGVyd2lzZSB1c2UgY3VycmVudCBkaXJlY3RvcnlcbiIgKworICAgICAgICAiLW91dFtkaXJdIHBhdGggICAgICAgICAtIHJvb3QgZGlyZWN0b3J5IG9mIG91dHB1dCBmaWxlcywgb3RoZXJ3aXNlIHVzZSBpbnB1dCBkaXJlY3RvcnlcbiIgKworICAgICAgICAiLXNbdWZmaXhdIHN0cmluZyAgICAgICAtIHN1ZmZpeCBvZiBpbnB1dGZpbGVzIHRvIHByb2Nlc3MsIG90aGVyd2lzZSB1c2UgJy5qYXZhJyAoZGlyZWN0b3JpZXMgb25seSlcbiIgKworICAgICAgICAiLWNbbGVhbl0gICAgICAgICAgICAgICAtIHJlbW92ZSBhbGwgY29udHJvbCBmbGFncyBmcm9tIGNvZGUgb24gb3V0cHV0IChkb2VzIG5vdCBwcm9jZWVkIGlmIG92ZXJ3cml0aW5nKVxuIiArCisgICAgICAgICItcltlY3Vyc2VdICAgICAgICAgICAgIC0gaWYgcHJlc2VudCwgcmVjdXJzaXZlbHkgcHJvY2VzcyBzdWJkaXJlY3Rvcmllc1xuIiArCisgICAgICAgICItZltvcmNlXSAgICAgICAgICAgICAgIC0gZm9yY2UgcmVwcm9jZXNzaW5nIG9mIGZpbGVzIGV2ZW4gaWYgdGltZXN0YW1wIGFuZCBoZWFkZXJzIG1hdGNoXG4iICsKKyAgICAgICAgIi10W2ltZXN0YW1wXSAgICAgICAgICAgLSBleHBlY3Qvd3JpdGUgdGltZXN0YW1wIGluIGhlYWRlclxuIiArCisgICAgICAgICItZE5BTUVbPVZBTFVFXSAgICAgICAgIC0gZGVmaW5lIE5BTUUgd2l0aCBvcHRpb25hbCB2YWx1ZSBWQUxVRVxuIiArCisgICAgICAgICIgIChvciAtZCBOQU1FWz1WQUxVRV0pXG4iICsKKyAgICAgICAgIi1oZWxwICAgICAgICAgICAgICAgICAgLSBwcmludCB0aGlzIHVzYWdlIG1lc3NhZ2UgYW5kIGV4aXQuXG4iICsKKyAgICAgICAgIlxuIiArCisgICAgICAgICJGb3IgZmlsZSBhcmd1bWVudHMsIG91dHB1dCAnLmphdmEnIGZpbGVzIHVzaW5nIHRoZSBzYW1lIHBhdGgvbmFtZSB1bmRlciB0aGUgb3V0cHV0IGRpcmVjdG9yeS5cbiIgKworICAgICAgICAiRm9yIGRpcmVjdG9yeSBhcmd1bWVudHMsIHByb2Nlc3MgYWxsIGZpbGVzIHdpdGggdGhlIGRlZmluZWQgc3VmZml4IGluIHRoZSBkaXJlY3RvcnkuXG4iICsKKyAgICAgICAgIiAgKGlmIHJlY3Vyc2luZywgZG8gdGhlIHNhbWUgZm9yIGFsbCBmaWxlcyByZWN1cnNpdmVseSB1bmRlciBlYWNoIGRpcmVjdG9yeSlcbiIgKworICAgICAgICAiRm9yIEBhcmdmaWxlIGFyZ3VtZW50cywgcmVhZCB0aGUgc3BlY2lmaWVkIHRleHQgZmlsZSAoc3RyaXAgdGhlICdAJyksIGFuZCBwcm9jZXNzIGVhY2ggbGluZSBvZiB0aGF0IGZpbGUgYXMgXG4iICsKKyAgICAgICAgImFuIGFyZ3VtZW50LlxuIiArCisgICAgICAgICJcbiIgKworICAgICAgICAiRGlyZWN0aXZlcyBhcmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4iICsKKyAgICAgICAgIiAgI2lmZGVmLCAjaWZuZGVmLCAjZWxzZSwgI2VuZGlmLCAjaWYsICNlbGlmLCAjZGVmaW5lLCAjdW5kZWZcbiIgKworICAgICAgICAiVGhlc2UgbWF5IG9wdGlvbmFsbHkgYmUgcHJlY2VlZGVkIGJ5IHdoaXRlc3BhY2Ugb3IgLy8uXG4iICsKKyAgICAgICAgIiNpZiwgI2VsaWYgYXJncyBhcmUgb2YgdGhlIGZvcm0gJ2tleSA9PSB2YWx1ZScgb3IgJ2tleSAhPSB2YWx1ZScuXG4iICsKKyAgICAgICAgIk9ubHkgZXhhY3QgY2hhcmFjdGVyIG1hdGNoIGtleSB3aXRoIHZhbHVlIGlzIHBlcmZvcm1lZC5cbiIgKworICAgICAgICAiI2RlZmluZSBhcmdzIGFyZSAna2V5IFs9PV0gdmFsdWUnLCB0aGUgJz09JyBpcyBvcHRpb25hbC5cbiI7CisKKyAgICBDb2RlTWFuZ2xlcihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIG5hbWVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBzdWZmaXggPSAiLmphdmEiOworICAgICAgICBjbGVhbiA9IGZhbHNlOworICAgICAgICB0aW1lc3RhbXAgPSBmYWxzZTsKKworICAgICAgICBTdHJpbmcgaW5uYW1lID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIG91dG5hbWUgPSBudWxsOworICAgICAgICBib29sZWFuIHByb2Nlc3NBcmdzID0gdHJ1ZTsKKyAgICAgICAgU3RyaW5nIGFyZyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIGlmICgiLS0iLmVxdWFscyhhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NBcmdzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzQXJncyAmJiBhcmcuY2hhckF0KDApID09ICctJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1pbiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbm5hbWUgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1vdXQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0bmFtZSA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gYXJnLnN1YnN0cmluZygyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXggPSBpZC5pbmRleE9mKCc9Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IGlkLnN1YnN0cmluZyhpeCsxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygwLGl4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5wdXQoaWQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1zIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLXIiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVjdXJzZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1mIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItdCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItaCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHVzYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBzdG9wIGJlZm9yZSBwcm9jZXNzaW5nIGFyZ3VtZW50cywgc28gd2Ugd2lsbCBkbyBub3RoaW5nCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi12IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdW5yZWNvZ25pemVkIGFyZ3VtZW50ICciICsgYXJnICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbih1c2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGFyZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLmNoYXJBdCgwKSA9PSAnQCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgYXJnZmlsZSA9IG5ldyBGaWxlKGFyZy5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ2ZpbGUuZXhpc3RzKCkgJiYgIWFyZ2ZpbGUuaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihuZXcgRmlsZUlucHV0U3RyZWFtKGFyZ2ZpbGUpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGFyZ3MubGVuZ3RoOyArK3gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKGFyZ3NbeF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAobGluZSA9IGJyLnJlYWRMaW5lKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA+IDAgJiYgbGluZS5jaGFyQXQoMCkgIT0gJyMnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigiYWRkaW5nIGFyZ3VtZW50OiAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQobGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IChTdHJpbmdbXSlsaXN0LnRvQXJyYXkobmV3IFN0cmluZ1tsaXN0LnNpemUoKV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImVycm9yIHJlYWRpbmcgYXJnIGZpbGU6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lcy5hZGQoYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnID0gIkVycm9yOiBhcmd1bWVudCAnIiArIGFyZyArICInIG1pc3NpbmcgdmFsdWUiOworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKG1zZyk7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4odXNhZ2UpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihtc2cpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHVzZXJuYW1lID0gU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLmRpciIpOworICAgICAgICBpZiAoaW5uYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGlubmFtZSA9IHVzZXJuYW1lOworICAgICAgICB9IGVsc2UgaWYgKCEoaW5uYW1lLnN0YXJ0c1dpdGgoIlxcIikgfHwgaW5uYW1lLnN0YXJ0c1dpdGgoIi8iKSkpIHsKKyAgICAgICAgICAgIGlubmFtZSA9IHVzZXJuYW1lICsgRmlsZS5zZXBhcmF0b3IgKyBpbm5hbWU7CisgICAgICAgIH0KKyAgICAgICAgaW5kaXIgPSBuZXcgRmlsZShpbm5hbWUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5kaXIgPSBpbmRpci5nZXRDYW5vbmljYWxGaWxlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGNvbnRpbnVlLCBidXQgbW9zdCBsaWtlbHkgd2UnbGwgZmFpbCBsYXRlcgorICAgICAgICB9CisgICAgICAgIGlmICghaW5kaXIuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklucHV0IGRpcmVjdG9yeSAnIiArIGluZGlyLmdldEFic29sdXRlUGF0aCgpICsgIicgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgIH0gZWxzZSBpZiAoIWluZGlyLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklucHV0IHBhdGggJyIgKyBpbmRpci5nZXRBYnNvbHV0ZVBhdGgoKSArICInIGlzIG5vdCBhIGRpcmVjdG9yeS4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJpbmRpcjogIiArIGluZGlyLmdldEFic29sdXRlUGF0aCgpKTsKKworICAgICAgICBpZiAob3V0bmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICBvdXRuYW1lID0gaW5uYW1lOworICAgICAgICB9IGVsc2UgaWYgKCEob3V0bmFtZS5zdGFydHNXaXRoKCJcXCIpIHx8IG91dG5hbWUuc3RhcnRzV2l0aCgiLyIpKSkgeworICAgICAgICAgICAgb3V0bmFtZSA9IHVzZXJuYW1lICsgRmlsZS5zZXBhcmF0b3IgKyBvdXRuYW1lOworICAgICAgICB9CisgICAgICAgIG91dGRpciA9IG5ldyBGaWxlKG91dG5hbWUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0ZGlyID0gb3V0ZGlyLmdldENhbm9uaWNhbEZpbGUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gY29udGludWUsIGJ1dCBtb3N0IGxpa2VseSB3ZSdsbCBmYWlsIGxhdGVyCisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvdXRkaXIuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk91dHB1dCBkaXJlY3RvcnkgJyIgKyBvdXRkaXIuZ2V0QWJzb2x1dGVQYXRoKCkgKyAiJyBkb2VzIG5vdCBleGlzdC4iKTsKKyAgICAgICAgfSBlbHNlIGlmICghb3V0ZGlyLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk91dHB1dCBwYXRoICciICsgb3V0ZGlyLmdldEFic29sdXRlUGF0aCgpICsgIicgaXMgbm90IGEgZGlyZWN0b3J5LiIpOworICAgICAgICB9CisgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oIm91dGRpcjogIiArIG91dGRpci5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICAgICAgaWYgKGNsZWFuICYmIHN1ZmZpeC5lcXVhbHMoIi5qYXZhIikpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKG91dGRpci5nZXRDYW5vbmljYWxQYXRoKCkuZXF1YWxzKGluZGlyLmdldENhbm9uaWNhbFBhdGgoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2Fubm90IHVzZSAnY2xlYW4nIHRvIG92ZXJ3cml0ZSAuamF2YSBmaWxlcyBpbiBzYW1lIGRpcmVjdG9yeSB0cmVlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oInBvc3NpYmxlIG92ZXJ3cml0ZSwgZXJyb3I6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2Fubm90IHVzZSAnY2xlYW4nIHRvIG92ZXJyd3JpdGUgLmphdmEgZmlsZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChuYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG5hbWVzLmFkZCgiLiIpOworICAgICAgICB9CisKKyAgICAgICAgVHJlZU1hcCBzb3J0ID0gbmV3IFRyZWVNYXAoU3RyaW5nLkNBU0VfSU5TRU5TSVRJVkVfT1JERVIpOworICAgICAgICBzb3J0LnB1dEFsbChtYXApOworICAgICAgICBJdGVyYXRvciBpdGVyID0gc29ydC5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgTWFwLkVudHJ5IGUgPSAoTWFwLkVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChlLmdldEtleSgpKTsKKyAgICAgICAgICAgIFN0cmluZyB2ID0gKFN0cmluZyllLmdldFZhbHVlKCk7CisgICAgICAgICAgICBpZiAodiAhPSBudWxsICYmIHYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnPScpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaGVhZGVyID0gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCBydW4oKSB7CisgICAgICAgIHJldHVybiBwcm9jZXNzKCIiLCAoU3RyaW5nW10pbmFtZXMudG9BcnJheShuZXcgU3RyaW5nW25hbWVzLnNpemUoKV0pKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHByb2Nlc3MoU3RyaW5nIHBhdGgsIFN0cmluZ1tdIGZpbGVuYW1lcykgeworICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJwYXRoOiAnIiArIHBhdGggKyAiJyIpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigibmFtZSAiICsgaSArICIgb2YgIiArIGZpbGVuYW1lcy5sZW5ndGggKyAiOiAnIiArIGZpbGVuYW1lc1tpXSArICInIik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHBhdGggKyBmaWxlbmFtZXNbaV07CisgICAgICAgICAgICBGaWxlIGZpbiA9IG5ldyBGaWxlKGluZGlyLCBuYW1lKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZmluID0gZmluLmdldENhbm9uaWNhbEZpbGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWZpbi5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRmlsZSAiICsgZmluLmdldEFic29sdXRlUGF0aCgpICsgIiBkb2VzIG5vdCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmaW4uaXNGaWxlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJwcm9jZXNzaW5nIGZpbGU6ICciICsgZmluLmdldEFic29sdXRlUGF0aCgpICsgIiciKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb25hbWU7CisgICAgICAgICAgICAgICAgaW50IGl4ID0gbmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBvbmFtZSA9IG5hbWUuc3Vic3RyaW5nKDAsIGl4KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvbmFtZSA9IG5hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9uYW1lICs9ICIuamF2YSI7CisgICAgICAgICAgICAgICAgRmlsZSBmb3V0ID0gbmV3IEZpbGUob3V0ZGlyLCBvbmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NGaWxlKGZpbiwgZm91dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigicmVjdXJzaW5nIG9uIGRpcmVjdG9yeSAnIiArIGZpbi5nZXRBYnNvbHV0ZVBhdGgoKSArICInIik7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5wYXRoID0gIi4iLmVxdWFscyhuYW1lKSA/IHBhdGggOiBwYXRoICsgZmluLmdldE5hbWUoKSArIEZpbGUuc2VwYXJhdG9yOworICAgICAgICAgICAgICAgIGNvdW50ICs9IHByb2Nlc3MobnBhdGgsIGZpbi5saXN0KGZpbHRlcikpOyAvLyByZWN1cnNpdmUgY2FsbAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIGZpbmFsIEZpbGVuYW1lRmlsdGVyIGZpbHRlciA9IG5ldyBGaWxlbmFtZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGRpciwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShkaXIsIG5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiAoZi5pc0ZpbGUoKSAmJiBuYW1lLmVuZHNXaXRoKHN1ZmZpeCkpIHx8IChmLmlzRGlyZWN0b3J5KCkgJiYgcmVjdXJzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICBwdWJsaWMgYm9vbGVhbiBwcm9jZXNzRmlsZShGaWxlIGluZmlsZSwgRmlsZSBvdXRmaWxlKSB7CisgICAgICAgIEZpbGUgYmFja3VwID0gbnVsbDsKKworICAgICAgICBjbGFzcyBTdGF0ZSB7CisgICAgICAgICAgICBpbnQgbGM7CisgICAgICAgICAgICBTdHJpbmcgbGluZTsKKyAgICAgICAgICAgIGJvb2xlYW4gZW1pdCA9IHRydWU7CisgICAgICAgICAgICBib29sZWFuIHRyaXBwZWQ7CisgICAgICAgICAgICBwcml2YXRlIFN0YXRlIG5leHQ7CisKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICJsaW5lICIgKyBsYyAKKyAgICAgICAgICAgICAgICAgICAgKyAiOiAnIiArIGxpbmUgCisgICAgICAgICAgICAgICAgICAgICsgIicgKGVtaXQ6ICIgKyBlbWl0IAorICAgICAgICAgICAgICAgICAgICArICIgdHJpcHBlZDogIiArIHRyaXBwZWQgCisgICAgICAgICAgICAgICAgICAgICsgIikiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIHRyaXAoYm9vbGVhbiB0cmlwKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0cmlwcGVkICYgdHJpcCkgeworICAgICAgICAgICAgICAgICAgICB0cmlwcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgZW1pdCA9IG5leHQgIT0gbnVsbCA/IG5leHQuZW1pdCA6IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZW1pdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgU3RhdGUgcHVzaChpbnQgbGMsIFN0cmluZyBsaW5lLCBib29sZWFuIHRyaXApIHsKKyAgICAgICAgICAgICAgICB0aGlzLmxjID0gbGM7CisgICAgICAgICAgICAgICAgdGhpcy5saW5lID0gbGluZTsKKyAgICAgICAgICAgICAgICBTdGF0ZSByZXQgPSBuZXcgU3RhdGUoKTsKKyAgICAgICAgICAgICAgICByZXQubmV4dCA9IHRoaXM7CisgICAgICAgICAgICAgICAgcmV0LmVtaXQgPSB0aGlzLmVtaXQgJiB0cmlwOworICAgICAgICAgICAgICAgIHJldC50cmlwcGVkID0gdHJpcDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdGF0ZSBwb3AoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgSGFzaE1hcCBvbGRNYXAgPSBudWxsOworICAgICAgICAKKyAgICAgICAgbG9uZyBvdXRNb2RUaW1lID0gMDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgUHJpbnRTdHJlYW0gb3V0c3RyZWFtID0gbnVsbDsKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGluc3RyZWFtID0gbmV3IEZpbGVJbnB1dFN0cmVhbShpbmZpbGUpOworCisgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciByZWFkZXIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKGluc3RyZWFtKSk7CisgICAgICAgICAgICBpbnQgbGMgPSAwOworICAgICAgICAgICAgU3RhdGUgc3RhdGUgPSBuZXcgU3RhdGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgd2hpbGUgKChsaW5lID0gcmVhZGVyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAobGMgPT0gMCkgeyAvLyBjaGVjayBhbmQgd3JpdGUgaGVhZGVyIGZvciBvdXRwdXQgZmlsZSBpZiBuZWVkZWQKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBoYXNIZWFkZXIgPSBsaW5lLnN0YXJ0c1dpdGgoSEVBREVSX1BSRUZJWCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXNIZWFkZXIgJiYgIWZvcmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGV4cGVjdExhc3RNb2RpZmllZCA9ICgoaW5maWxlLmxhc3RNb2RpZmllZCgpICsgOTk5KS8xMDAwKSoxMDAwOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGhlYWRlcmxpbmUgPSBIRUFERVJfUFJFRklYICsgJyAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGltZXN0YW1wID8gU3RyaW5nLnZhbHVlT2YoZXhwZWN0TGFzdE1vZGlmaWVkKSA6ICIiKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICcgJyArIGhlYWRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcmxpbmUgPSBoZWFkZXJsaW5lLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lLmVxdWFscyhoZWFkZXJsaW5lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oIm5vIGNoYW5nZXMgbmVjZXNzYXJ5IHRvICIgKyBpbmZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbm90aGluZyB0byBkbworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgb2xkIGhlYWRlcjogICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgIT0gZXhwZWN0ZWQ6ICIgKyBoZWFkZXJsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBvdXRwdXQgZmlsZSBkaXJlY3Rvcnkgc3RydWN0dXJlCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdXRwbmFtZSA9IG91dGZpbGUuZ2V0UGFyZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvdXRwbmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIG91dHAgPSBuZXcgRmlsZShvdXRwbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShvdXRwLmV4aXN0cygpIHx8IG91dHAubWtkaXJzKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeTogJyIgKyBvdXRwbmFtZSArICInIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UncmUgb3ZlcndyaXRpbmcsIHVzZSBhIHRlbXBvcmFyeSBmaWxlCisgICAgICAgICAgICAgICAgICAgIGlmIChzdWZmaXguZXF1YWxzKCIuamF2YSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSBvdXRmaWxlOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRmaWxlID0gRmlsZS5jcmVhdGVUZW1wRmlsZShvdXRmaWxlLmdldE5hbWUoKSwgbnVsbCwgb3V0ZmlsZS5nZXRQYXJlbnRGaWxlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgb3V0TW9kVGltZSA9ICgob3V0ZmlsZS5sYXN0TW9kaWZpZWQoKSs5OTkpLzEwMDApKjEwMDA7IC8vIHJvdW5kIHVwCisgICAgICAgICAgICAgICAgICAgIG91dHN0cmVhbSA9IG5ldyBQcmludFN0cmVhbShuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRmaWxlKSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBoZWFkZXJsaW5lID0gSEVBREVSX1BSRUZJWCArICcgJyArIAorICAgICAgICAgICAgICAgICAgICAgICAgKHRpbWVzdGFtcCA/IFN0cmluZy52YWx1ZU9mKG91dE1vZFRpbWUpIDogIiIpCisgICAgICAgICAgICAgICAgICAgICAgICArICcgJyArIGhlYWRlcjsKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVybGluZSA9IGhlYWRlcmxpbmUudHJpbSgpOworICAgICAgICAgICAgICAgICAgICBvdXRzdHJlYW0ucHJpbnRsbihoZWFkZXJsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigiaGVhZGVyOiAiICsgaGVhZGVybGluZSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlzY2FyZCB0aGUgb2xkIGhlYWRlciBpZiB3ZSBoYWQgb25lLCBvdGhlcndpc2UgbWF0Y2ggdGhpcyBsaW5lIGxpa2UgYW55IG90aGVyCisgICAgICAgICAgICAgICAgICAgIGlmIChoYXNIZWFkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbGM7IC8vIG1hcmsgYXMgaGF2aW5nIHJlYWQgYSBsaW5lIHNvIHdlIG5ldmVyIHJlZXhlY3V0ZSB0aGlzIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSByZXMgPSBuZXcgU3RyaW5nWzNdOworICAgICAgICAgICAgICAgIGlmIChwYXRNYXRjaChsaW5lLCByZXMpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsZWFkID0gcmVzWzBdOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gcmVzWzFdOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gcmVzWzJdOworCisvLyAgICAgICAgICAgICAgICAgTWF0Y2hlciBtID0gcGF0Lm1hdGNoZXIobGluZSk7CisvLyAgICAgICAgICAgICAgICAgaWYgKG0uZmluZCgpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsZWFkID0gbS5ncm91cCgxKTsKKy8vICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IG0uZ3JvdXAoMikudG9Mb3dlckNhc2UoKS50cmltKCk7CisvLyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSBtLmdyb3VwKDMpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigiZGlyZWN0aXZlOiAiICsgbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBrZXk6ICciICsga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyB2YWw6ICciICsgdmFsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgIiArIHN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5lcXVhbHMoImlmZGVmIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGUucHVzaChsYywgbGluZSwgbWFwLmdldCh2YWwpICE9IG51bGwpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5lcXVhbHMoImlmbmRlZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlLnB1c2gobGMsIGxpbmUsIG1hcC5nZXQodmFsKSA9PSBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuZXF1YWxzKCJlbHNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnRyaXAodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LmVxdWFscygiZW5kaWYiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuZXF1YWxzKCJ1bmRlZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRNYXAgPSAoSGFzaE1hcCltYXAuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnJlbW92ZSh2YWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyAjZGVmaW5lLCAjaWYsICNlbGlmCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0Mk1hdGNoKHZhbCwgcmVzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkyID0gcmVzWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbmVxID0gIiE9Ii5lcXVhbHMocmVzWzFdKTsgLy8gb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsMiA9IHJlc1syXTsKKworLy8gICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hlciBtMiA9IHBhdDIubWF0Y2hlcih2YWwpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0yLmZpbmQoKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkyID0gbTIuZ3JvdXAoMSkudHJpbSgpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbmVxID0gIiE9Ii5lcXVhbHMobTIuZ3JvdXAoMikpOyAvLyBvcHRpb25hbAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwyID0gbTIuZ3JvdXAoMykudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oInZhbDI6ICciICsgdmFsMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgbmVxOiAnIiArIG5lcSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicga2V5MjogJyIgKyBrZXkyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkuZXF1YWxzKCJpZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGUucHVzaChsYywgbGluZSwgdmFsMi5lcXVhbHMobWFwLmdldChrZXkyKSkgIT0gbmVxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5lcXVhbHMoImVsaWYiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS50cmlwKHZhbDIuZXF1YWxzKG1hcC5nZXQoa2V5MikpICE9IG5lcSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuZXF1YWxzKCJkZWZpbmUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZE1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkTWFwID0gKEhhc2hNYXApbWFwLmNsb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAucHV0KGtleTIsIHZhbDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghY2xlYW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxjKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxlYWQuZXF1YWxzKCIvLyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0c3RyZWFtLnByaW50KCIvLyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhsZWFkLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHN0cmVhbS5wcmludGxuKGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxjKys7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZvdW5kID0gcGF0M01hdGNoKGxpbmUpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gaGFzSWdub3JlID0gZm91bmQgIT0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCA9PSBoYXNJZ25vcmUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmVtaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhmb3VuZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gSUdOT1JFX1BSRUZJWCArIGxpbmU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0lnbm9yZSAmJiAhZm91bmQuZXF1YWxzKElHTk9SRV9QUkVGSVgpKSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBJR05PUkVfUFJFRklYICsgbGluZS5zdWJzdHJpbmcoZm91bmQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICBtID0gcGF0My5tYXRjaGVyKGxpbmUpOworLy8gICAgICAgICAgICAgICAgIGJvb2xlYW4gaGFzSWdub3JlID0gbS5maW5kKCk7CisvLyAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmVtaXQgPT0gaGFzSWdub3JlKSB7CisvLyAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5lbWl0KSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5zdWJzdHJpbmcobS5ncm91cCgxKS5sZW5ndGgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gSUdOT1JFX1BSRUZJWCArIGxpbmU7CisvLyAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0lnbm9yZSAmJiAhbS5ncm91cCgxKS5lcXVhbHMoSUdOT1JFX1BSRUZJWCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgbGluZSA9IElHTk9SRV9QUkVGSVggKyBsaW5lLnN1YnN0cmluZyhtLmdyb3VwKDEpLmxlbmd0aCgpKTsKKy8vICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFjbGVhbiB8fCBzdGF0ZS5lbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHN0cmVhbS5wcmludGxuKGxpbmUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS5wb3AoKTsKKyAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdW5jbG9zZWQgZGlyZWN0aXZlKHMpOiIpOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKHN0YXRlKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlICgoc3RhdGUgPSBzdGF0ZS5wb3AoKSkgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgaW4gZmlsZTogIiArIG91dGZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICBpZiAob2xkTWFwICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbWFwID0gb2xkTWFwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXRzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIGluc3RyZWFtLmNsb3NlKCk7CisKKyAgICAgICAgICAgIGlmIChiYWNrdXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChiYWNrdXAuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXRmaWxlLnJlbmFtZVRvKGJhY2t1cCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0aW1lc3RhbXApIHsKKyAgICAgICAgICAgICAgICBvdXRmaWxlLnNldExhc3RNb2RpZmllZChvdXRNb2RUaW1lKTsgLy8gc3luY2ggd2l0aCB0aW1lc3RhbXAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG9sZE1hcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbWFwID0gb2xkTWFwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIHNhbWUgb3BlcmF0aW9uIGFzIG1hdGNoaW5nIG9uIHBhdC4gIG9uIGV4aXQKKyAgICAgKiBsZWFkS2V5VmFsdWUgY29udGFpbnMgdGhlIHRocmVlIHN0cmluZ3MgbGVhZCwga2V5LCBhbmQgdmFsdWUuCisgICAgICogJ2xlYWQnIGlzIHRoZSBwb3J0aW9uIGJlZm9yZSB0aGUgI2lmZGVmIGRpcmVjdGl2ZS4gICdrZXknIGlzCisgICAgICogdGhlIGRpcmVjdGl2ZS4gICd2YWx1ZScgaXMgdGhlIHBvcnRpb24gYWZ0ZXIgdGhlIGRpcmVjdGl2ZS4gIGlmCisgICAgICogdGhlcmUgaXMgYSBtYXRjaCwgcmV0dXJuIHRydWUsIGVsc2UgcmV0dXJuIGZhbHNlLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHBhdE1hdGNoKFN0cmluZyBsaW5lLCBTdHJpbmdbXSBsZWFkS2V5VmFsdWUpIHsKKy8vICAgICAgIGZpbmFsIFBhdHRlcm4gcGF0ID0gUGF0dGVybi5jb21waWxlKAorLy8gICAgICAgICAiKD9pKV4oXFxzKig/Oi8vKyk/P1xccyopIyhpZmRlZlxcc3xpZm5kZWZcXHN8ZWxzZXxlbmRpZnx1bmRlZlxcc3xkZWZpbmVcXHN8aWZcXHN8ZWxpZlxccylcXHMqKC4qKSQiKTsKKworICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFsaW5lLmVuZHNXaXRoKCJcbiIpKSB7CisgICAgICAgICAgICBsaW5lID0gbGluZSArICdcbic7CisgICAgICAgIH0KKyAgICAgICAgaW50IG1hcmsgPSAwOworICAgICAgICBpbnQgc3RhdGUgPSAwOworICAgICAgICBsb29wOiBmb3IgKGludCBpID0gMDsgaSA8IGxpbmUubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gbGluZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgICAgICBjYXNlIDA6IC8vIGF0IHN0YXJ0IG9mIGxpbmUsIGhhdmVuJ3Qgc2VlbiBhbnl0aGluZyBidXQgd2hpdGVzcGFjZSB5ZXQKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJykgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy8nKSB7IHN0YXRlID0gMTsgY29udGludWU7IH0KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSA0OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgMTogLy8gaGF2ZSBzZWVuIGEgc2luZ2xlIHNsYXNoIGFmdGVyIHN0YXJ0IG9mIGxpbmUKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIHsgc3RhdGUgPSAyOyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgMjogLy8gaGF2ZSBzZWVuIHR3byBvciBtb3JlIHNsYXNoZXMKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInKSB7IHN0YXRlID0gMzsgY29udGludWU7IH0KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSA0OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgMzogLy8gaGF2ZSBzZWVuIGEgc3BhY2UgYWZ0ZXIgdHdvIG9yIG1vcmUgc2xhc2hlcworICAgICAgICAgICAgICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSA0OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgNDogLy8gaGF2ZSBzZWVuIGEgJyMnIAorICAgICAgICAgICAgICAgIGxlYWRLZXlWYWx1ZVswXSA9IGxpbmUuc3Vic3RyaW5nKG1hcmssIGktMSk7CisgICAgICAgICAgICAgICAgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgeyBtYXJrID0gaTsgc3RhdGUgPSA1OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgNTogLy8gYW4gYXNjaWkgY2hhciBmb2xsb3dlZCB0aGUgJyMnCisgICAgICAgICAgICAgICAgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IGxpbmUuc3Vic3RyaW5nKG1hcmssIGkpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChrZXkuZXF1YWxzKCJpZmRlZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJpZm5kZWYiKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAga2V5LmVxdWFscygiZWxzZSIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJlbmRpZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJ1bmRlZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJkZWZpbmUiKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAga2V5LmVxdWFscygiaWYiKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAga2V5LmVxdWFscygiZWxpZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZWFkS2V5VmFsdWVbMV0gPSBrZXk7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXJrID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gNjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXRlID09IDYpIHsKKyAgICAgICAgICAgIGxlYWRLZXlWYWx1ZVsyXSA9IGxpbmUuc3Vic3RyaW5nKG1hcmssIGxpbmUubGVuZ3RoKCkpLnRyaW0oKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbmV2ZXIgcmVhY2hlZCwgZG9lcyB0aGUgY29tcGlsZXIga25vdyB0aGlzPworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gc2FtZSBvcGVyYXRpb24gYXMgbWF0Y2hpbmcgb24gcGF0Mi4gIG9uIGV4aXQKKyAgICAgKiBrZXlSZWxWYWx1ZSBjb250YWlucyB0aGUgdGhyZWUgc3RyaW5ncyBrZXksIHJlbCwgYW5kIHZhbHVlLgorICAgICAqICdrZXknIGlzIHRoZSBwb3J0aW9uIGJlZm9yZSB0aGUgcmVsYXRpb24gKG9yIGZpbmFsIHdvcmQpLiAgJ3JlbCcgaXMKKyAgICAgKiB0aGUgcmVsYXRpb24sIGlmIHByZXNlbnQsIGVpdGhlciA9PSBvciAhPS4gICd2YWx1ZScgaXMgdGhlIGZpbmFsCisgICAgICogd29yZC4gIGlmIHRoZXJlIGlzIGEgbWF0Y2gsIHJldHVybiB0cnVlLCBlbHNlIHJldHVybiBmYWxzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgYm9vbGVhbiBwYXQyTWF0Y2goU3RyaW5nIGxpbmUsIFN0cmluZ1tdIGtleVJlbFZhbCkgeworLy8gICAgICAgZmluYWwgUGF0dGVybiBwYXQyID0gUGF0dGVybi5jb21waWxlKCIoW149IV0rKVxccyooWyE9XT89KT8/XFxzKihcXHcrKSIpOworLy8gaG1tbSwgdGhpcyBwYXR0ZXJuIGRvZXNuJ3QgbG9vayByaWdodC4gIGEgcGF0dGVybiBjb25zaXN0aW5nIG9mICdhYmNkJyBzaG91bGQKKy8vIHJldHVybiB7ImFiY2QiLCAiIiwgIiJ9IGJ1dCBpdCBsb29rcyBsaWtlIGl0IHJldHVybnMgeyIiLCAiIiwgImFiY2QifS4KKworICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAga2V5UmVsVmFsWzBdID0ga2V5UmVsVmFsWzFdID0ga2V5UmVsVmFsWzJdID0gIiI7CisgICAgICAgIGludCBtYXJrID0gMDsKKyAgICAgICAgaW50IHN0YXRlID0gMDsKKyAgICAgICAgbG9vcDogZm9yIChpbnQgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGxpbmUuY2hhckF0KGkpOworICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkgeworICAgICAgICAgICAgY2FzZSAwOiAvLyBzYXcgYmVnaW5uaW5nIG9yIHNwYWNlLCBubyByZWwgeWV0CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoYyA9PSAnIScgfHwgYyA9PSAnPScpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdGUgPSAxOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY2FzZSAxOiAvLyBzYXcgc3RhcnQgb2YgYSB3b3JkCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJyEnIHx8IGMgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBjYXNlIDI6IC8vIHNhdyBlbmQgb2Ygd29yZCwgYW5kIHNwYWNlCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnIScgfHwgYyA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAga2V5UmVsVmFsWzBdID0gbGluZS5zdWJzdHJpbmcoMCwgaS0xKS50cmltKCk7CisgICAgICAgICAgICAgICAgbWFyayA9IGk7CisgICAgICAgICAgICAgICAgc3RhdGUgPSA0OworICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICBjYXNlIDM6IC8vIHNhdyBlbmQgb2Ygd29yZCwgYW5kICchJyBvciAnPScKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAga2V5UmVsVmFsWzBdID0gbGluZS5zdWJzdHJpbmcoMCwgaS0xKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIGtleVJlbFZhbFsxXSA9IGxpbmUuc3Vic3RyaW5nKGktMSwgaSsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWFyayA9IGkrMTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgY2FzZSAwOiAKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZm91bmQgbm90aGluZworICAgICAgICBjYXNlIDE6IAorICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBrZXlSZWxWYWxbMF0gPSBsaW5lLnRyaW0oKTsgYnJlYWs7IC8vIGZvdW5kIG9ubHkgYSB3b3JkCisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZm91bmQgYSB3b3JkIGFuZCAnIScgb3IgJz0iIHRoZW4gZW5kIG9mIGxpbmUsIGluY29tcGxldGUKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAga2V5UmVsVmFsWzJdID0gbGluZS5zdWJzdHJpbmcobWFyaykudHJpbSgpOyBicmVhazsgLy8gZm91bmQgYSB3b3JkLCBwb3NzaWJsZSByZWwsIGFuZCB3aG8ga25vd3Mgd2hhdAorICAgICAgICBkZWZhdWx0OiAKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIHBhdDNNYXRjaChTdHJpbmcgbGluZSkgeworICAgICAgICBpbnQgc3RhdGUgPSAwOworICAgICAgICBsb29wOiBmb3IgKGludCBpID0gMDsgaSA8IGxpbmUubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gbGluZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBzd2l0Y2goc3RhdGUpIHsKKyAgICAgICAgICAgIGNhc2UgMDogaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy8nKSB7IHN0YXRlID0gMTsgY29udGludWU7IH0KKyAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGlmIChjID09ICcvJykgeyBzdGF0ZSA9IDI7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSAzOyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyMnKSByZXR1cm4gbGluZS5zdWJzdHJpbmcoMCwgaSsxKTsKKyAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgICAgICAKKy8vICAgICAgIGZpbmFsIFBhdHRlcm4gcGF0MyA9IFBhdHRlcm4uY29tcGlsZSgiXihcXHMqLy8jIykuKiIpOworICAgICAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0RlcHJlY2F0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0RlcHJlY2F0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzBmN2ZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvRGVwcmVjYXRvci5qYXZhCkBAIC0wLDAgKzEsMTkzIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVuYW1lRmlsdGVyOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5yZWdleC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgRGVwcmVjYXRvciB7CisgICAgcHJpdmF0ZSBib29sZWFuIHVuZGVwOworICAgIHByaXZhdGUgaW50IGxvZzsKKworICAgIERlcHJlY2F0b3IoYm9vbGVhbiB1bmRlcCwgaW50IGxvZykgeworICAgICAgICB0aGlzLnVuZGVwID0gdW5kZXA7CisgICAgICAgIHRoaXMubG9nID0gbG9nOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3RyaW5nIHNyY1BhdGggPSBudWxsOworICAgICAgICBTdHJpbmcgZHN0UGF0aCA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gdW5kZXAgPSBmYWxzZTsKKworICAgICAgICBpbnQgbG9nID0gMTsKKyAgICAgICAgYm9vbGVhbiBoZWxwID0gZmFsc2U7CisgICAgICAgIFN0cmluZ0J1ZmZlciBlcnIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItc3JjIikpIHsKKyAgICAgICAgICAgICAgICBzcmNQYXRoID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItZHN0IikpIHsKKyAgICAgICAgICAgICAgICBkc3RQYXRoID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItdW5kZXAiKSkgeworICAgICAgICAgICAgICAgIHVuZGVwID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWhlbHAiKSkgeworICAgICAgICAgICAgICAgIGhlbHAgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItc2lsZW50IikpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSAwOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbG9nIikpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSAyOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbG9nZmlsZXMiKSkgeworICAgICAgICAgICAgICAgIGxvZyA9IDM7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi12ZXJib3NlIikpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSA0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnIuYXBwZW5kKCJcbnVucmVjb2duaXplZCBhcmd1bWVudDogIiArIGFyZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBGaWxlIHNyY0RpciA9IG51bGw7CisgICAgICAgIEZpbGUgZHN0RGlyID0gbnVsbDsKKworICAgICAgICBpZiAoc3JjUGF0aCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnIuYXBwZW5kKCJcbnNyYyBtdXN0IGJlIGRlZmluZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNyY0RpciA9IG5ldyBGaWxlKHNyY1BhdGgpOworICAgICAgICAgICAgaWYgKCEoc3JjRGlyLmV4aXN0cygpICYmIHNyY0Rpci5pc0RpcmVjdG9yeSgpKSkgeworICAgICAgICAgICAgICAgIGVyci5hcHBlbmQoIlxuc3JjIG11c3QgYmUgYW4gZXhpc3RpbmcgZGlyZWN0b3J5OiAnIiArIHNyY1BhdGggKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkc3RQYXRoID09IG51bGwpIHsKKyAgICAgICAgICAgIGVyci5hcHBlbmQoIlxuZHN0IG11c3QgYmUgZGVmaW5lZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZHN0RGlyID0gbmV3IEZpbGUoZHN0UGF0aCk7CisgICAgICAgICAgICBpZiAoIWRzdERpci5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIGlmICghZHN0RGlyLm1rZGlycygpKSB7CisgICAgICAgICAgICAgICAgICAgIGVyci5hcHBlbmQoIlxudW5hYmxlIHRvIGNyZWF0ZSBkc3Q6ICciICsgZHN0UGF0aCArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICghZHN0RGlyLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICBlcnIuYXBwZW5kKCJcbmRzdCBleGlzdHMgYnV0IGlzIG5vdCBkaXJlY3Rvcnk6ICciICsgZHN0UGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGVscCB8fCBlcnIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBpZiAoIWhlbHApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiAiICsgZXJyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAobG9nID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3JjOiAiICsgc3JjRGlyLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkc3Q6ICIgKyBkc3REaXIuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInVuZGVwOiAiICsgdW5kZXApOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQuZmx1c2goKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbmV3IERlcHJlY2F0b3IodW5kZXAsIGxvZykucHJvY2VzcyhzcmNEaXIsIGRzdERpcik7CisKKyAgICAgICAgICAgIGlmIChsb2cgPiAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkb25lIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5mbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVuZXhwZWN0ZWQgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworICAgICAgICBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KTsKKyAgICAgICAgcHcucHJpbnRsbigiVXNhZ2U6IERlcHJlY2F0b3IgLXNyYyBwYXRoIC1kc3QgcGF0aCBbLWhlbHBdIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgLXNyYyBwYXRoIDogdGhlIHJvb3Qgb2YgdGhlIHRyZWUgb2YgZmlsZXMgdG8gd29yayBvbiIpOworICAgICAgICBwdy5wcmludGxuKCIgIC1kc3QgcGF0aCA6IHRoZSByb290IG9mIHRoZSB0cmVlIHRvIHB1dCB0aGUgcmVzdWx0aW5nIGZpbGVzIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgLWhlbHAgICAgIDogcHJpbnQgdGhpcyB1c2FnZSBtZXNzYWdlIGFuZCBleGl0LCBkb2luZyBub3RoaW5nIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgLXVuZGVwICAgIDogcmVtb3ZlIGRlcHJlY2F0aW9uIHRhZ3MgaWYgcHJlc2VudCAoZGVmYXVsdCBmYWxzZSkiKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKCIgIEFkZCBvciByZW1vdmUgd2FybmluZyBkZXByZWNhdGlvbnMgZm9yIElDVSBAZHJhZnQgYW5kIEBpbnRlcm5hbCBBUElzIik7CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBzdG9wbGlzdCA9ICIhQ1ZTIjsKKyAgICBzdGF0aWMgZmluYWwgRmlsZW5hbWVGaWx0ZXIgZmYgPSBuZXcgRmlsZW5hbWVGaWx0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHQoRmlsZSBkaXIsIFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUuZW5kc1dpdGgoIi5qYXZhIikpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGlmIChuZXcgRmlsZShkaXIsIG5hbWUpLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3BsaXN0LmluZGV4T2YoIiEiK25hbWUpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICB2b2lkIHByb2Nlc3MoRmlsZSBzcmNEaXIsIEZpbGUgZHN0RGlyKSB7CisgICAgICAgIEZpbGVbXSBmaWxlcyA9IHNyY0Rpci5saXN0RmlsZXMoZmYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBGaWxlIGYgPSBmaWxlc1tpXTsKKyAgICAgICAgICAgIEZpbGUgZCA9IG5ldyBGaWxlKGRzdERpciwgZi5nZXROYW1lKCkpOworICAgICAgICAgICAgaWYgKGYuaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgIGlmICghZC5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWQubWtkaXIoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeTogIiArIGQuZ2V0UGF0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZC5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiZmlsZSBhbHJlYWR5IGV4aXN0cyBidXQgaXMgbm90IGRpcmVjdG9yeTogIiArIGQuZ2V0UGF0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsb2cgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicHJvY2VzcyBkaXI6ICIgKyBmLmdldFBhdGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb2Nlc3MoZiwgZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByb2Nlc3NGaWxlKGYsIGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyBAIGRlcHJlY2F0ZWQKKyAqKiogQGRlcHJlY2F0ZWQKKyAqKiAqKiAqKiBAZGVwcmVjYXRlZAorICAgICovCisgICAgc3RhdGljIGZpbmFsIFBhdHRlcm4gcGF0ID0gUGF0dGVybi5jb21waWxlKCJeW1xccypdKkBcXHMqZGVwcmVjYXRlZC4qIik7CisKKyAgICB2b2lkIHByb2Nlc3NGaWxlKEZpbGUgc3JjRmlsZSwgRmlsZSBkc3RGaWxlKSB7CisgICAgICAgIGlmIChsb2cgPiAyKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInByb2Nlc3MgJyIgKyBzcmNGaWxlLmdldFBhdGgoKSArICInIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIobmV3IEZpbGVJbnB1dFN0cmVhbShzcmNGaWxlKSkpOworICAgICAgICAgICAgaW50IG4gPSAwOworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKGxpbmUgPSByLnJlYWRMaW5lKCkpKSB7CisgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgICAgIE1hdGNoZXIgbSA9IHBhdC5tYXRjaGVyKGxpbmUpOworICAgICAgICAgICAgICAgIGlmIChtLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9nID4gMykgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFN0cmluZy52YWx1ZU9mKG4pICsgIjogIiArIGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgci5jbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5mbHVzaCgpOworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJjYXVnaHQgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9HYXRoZXJBUElEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9HYXRoZXJBUElEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVjMmViOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0dhdGhlckFQSURhdGEuamF2YQpAQCAtMCwwICsxLDQ0MCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogR2VuZXJhdGUgYSBsaXN0IG9mIElDVSdzIHB1YmxpYyBBUElzLCBzb3J0ZWQgYnkgcXVhbGlmaWVkIG5hbWUgYW5kIHNpZ25hdHVyZQorICogcHVibGljIEFQSXMgYXJlIGFsbCBub24taW50ZXJuYWwsIG5vbi1wYWNrYWdlIGFwaXMgaW4gY29tLmlibS5pY3UuW2xhbmd8bWF0aHx0ZXh0fHV0aWxdLgorICogRm9yIGVhY2ggQVBJLCBsaXN0CisgKiAtIHB1YmxpYywgcGFja2FnZSwgcHJvdGVjdGVkLCBvciBwcml2YXRlIChQQiBQSyBQVCBQUikKKyAqIC0gc3RhdGljIG9yIG5vbi1zdGF0aWMgKFNUSyBOU1QpCisgKiAtIGZpbmFsIG9yIG5vbi1maW5hbCAoRk4gTkYpCisgKiAtIHN5bmNocm9uaXplZCBvciBub24tc3luY2hyb25pemVkIChTWU4gTlNZKQorICogLSBzdGFibGUsIGRyYWZ0LCBkZXByZWNhdGVkLCBvYnNvbGV0ZSAoU1QgRFIgRFAgT0IpCisgKiAtIGFic3RyYWN0IG9yIG5vbi1hYnN0cmFjdCAoQUIgTkEpCisgKiAtIGNvbnN0cnVjdG9yLCBtZW1iZXIsIGZpZWxkIChDIE0gRikKKyAqCisgKiBSZXF1aXJlcyBKREsgMS40LjIgb3IgbGF0ZXIKKyAqIAorICogU2FtcGxlIGNvbXBpbGF0aW9uOgorICogYzovZG91Zy9qYXZhL2pkazEuNC4yL2J1aWxkL3dpbmRvd3MtaTU4Ni9iaW4vamF2YWMgKi5qYXZhCisgKgorICogU2FtcGxlIGV4ZWN1dGlvbgorICogYzovajJzZGsxLjQuMi9iaW4vamF2YWRvYworICogICAtY2xhc3NwYXRoIGM6L2pkMnNrMS40LjIvbGliL3Rvb2xzLmphciAKKyAqICAgLWRvY2xldCBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEKKyAqICAgLWRvY2xldHBhdGggYzovZG91Zy9jdnNwcm9qL2ljdTRqL3NyYyAKKyAqICAgLXNvdXJjZXBhdGggYzovZG91Zy9jdnNwcm9qL2ljdTRqL3NyYyAKKyAqICAgLW5hbWUgIklDVTRKIDMuMCIKKyAqICAgLW91dHB1dCBpY3U0ajMwLmFwaQorICogICAtZ3ppcAorICogICAtc291cmNlIDEuNAorICogICBjb20uaWJtLmljdS5sYW5nIGNvbS5pYm0uaWN1Lm1hdGggY29tLmlibS5pY3UudGV4dCBjb20uaWJtLmljdS51dGlsCisgKgorICogdG9kbzogcHJvdmlkZSBjb21tYW5kLWxpbmUgY29udHJvbCBvZiBmaWx0ZXJzIG9mIHdoaWNoIHN1YmNsYXNzZXMvcGFja2FnZXMgdG8gcHJvY2VzcworICogdG9kbzogcmVjb3JkIGZ1bGwgaW5oZXJpdGFuY2UgaGVpcmFyY2h5LCBub3QganVzdCBpbW1lZGlhdGUgaW5oZXJpdGFuY2UgCisgKiB0b2RvOiBhbGxvdyBmb3IgYWxpYXNpbmcgY29tcGFyaXNvbnMgKGZvcmNlIChwa2cuKSpjbGFzcyB0byBiZSB0cmVhdGVkIGFzIHRob3VnaCBpdCAKKyAqICAgICAgIHdlcmUgaW4gYSBkaWZmZXJlbnQgcGtnL2NsYXNzIGhlaXJhcmNoeSAoZmFjaWxpdGF0ZXMgY29tcGFyaXNvbiBvZiBpY3U0aiBhbmQgamF2YSkKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKKy8vIHN0YW5kYXJkIHJlbGVhc2Ugc2RrIHdvbid0IHdvcmssIG5lZWQgaW50ZXJuYWwgYnVpbGQgdG8gZ2V0IGFjY2VzcyB0byBqYXZhZG9jCitpbXBvcnQgY29tLnN1bi5qYXZhZG9jLio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5yZWdleC4qOworaW1wb3J0IGphdmEudXRpbC56aXAuR1pJUE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuemlwLlppcEVudHJ5OworaW1wb3J0IGphdmEudXRpbC56aXAuWmlwT3V0cHV0U3RyZWFtOworCitwdWJsaWMgY2xhc3MgR2F0aGVyQVBJRGF0YSB7CisgICAgUm9vdERvYyByb290OworICAgIFRyZWVTZXQgcmVzdWx0czsKKyAgICBTdHJpbmcgc3JjTmFtZSA9ICJDdXJyZW50IjsgLy8gZGVmYXVsdCBzb3VyY2UgbmFtZQorICAgIFN0cmluZyBvdXRwdXQ7IC8vIG5hbWUgb2Ygb3V0cHV0IGZpbGUgdG8gd3JpdGUKKyAgICBTdHJpbmcgYmFzZTsgLy8gc3RyaXAgdGhpcyBwcmVmaXgKKyAgICBQYXR0ZXJuIHBhdDsKKyAgICBib29sZWFuIHppcDsKKyAgICBib29sZWFuIGd6aXA7CisgICAgYm9vbGVhbiBpbnRlcm5hbDsKKworICAgIHB1YmxpYyBzdGF0aWMgaW50IG9wdGlvbkxlbmd0aChTdHJpbmcgb3B0aW9uKSB7CisgICAgICAgIGlmIChvcHRpb24uZXF1YWxzKCItbmFtZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItb3V0cHV0IikpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi1iYXNlIikpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi1maWx0ZXIiKSkgeworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLXppcCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItZ3ppcCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItaW50ZXJuYWwiKSkgeworCSAgICByZXR1cm4gMTsKKwl9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzdGFydChSb290RG9jIHJvb3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBHYXRoZXJBUElEYXRhKHJvb3QpLnJ1bigpOworICAgIH0KKworICAgIEdhdGhlckFQSURhdGEoUm9vdERvYyByb290KSB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3Q7CisKKyAgICAgICAgU3RyaW5nW11bXSBvcHRpb25zID0gcm9vdC5vcHRpb25zKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG9wdCA9IG9wdGlvbnNbaV1bMF07CisgICAgICAgICAgICBpZiAob3B0LmVxdWFscygiLW5hbWUiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuc3JjTmFtZSA9IG9wdGlvbnNbaV1bMV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIi1vdXRwdXQiKSkgeworICAgICAgICAgICAgICAgIHRoaXMub3V0cHV0ID0gb3B0aW9uc1tpXVsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLWJhc2UiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuYmFzZSA9IG9wdGlvbnNbaV1bMV07IC8vIHNob3VsZCBub3QgaW5jbHVkZSAnLicKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLWZpbHRlciIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5wYXQgPSBQYXR0ZXJuLmNvbXBpbGUob3B0aW9uc1tpXVsxXSwgUGF0dGVybi5DQVNFX0lOU0VOU0lUSVZFKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLXppcCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy56aXAgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItZ3ppcCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5nemlwID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLWludGVybmFsIikpIHsKKwkJdGhpcy5pbnRlcm5hbCA9IHRydWU7CisJICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdHMgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBydW4oKSB7CisgICAgICAgIGRvRG9jcyhyb290LmNsYXNzZXMoKSk7CisKKyAgICAgICAgT3V0cHV0U3RyZWFtIG9zID0gU3lzdGVtLm91dDsKKyAgICAgICAgaWYgKG91dHB1dCAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmICh6aXApIHsKKyAgICAgICAgICAgICAgICAgICAgWmlwT3V0cHV0U3RyZWFtIHpvcyA9IG5ldyBaaXBPdXRwdXRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0ICsgIi56aXAiKSk7CisgICAgICAgICAgICAgICAgICAgIHpvcy5wdXROZXh0RW50cnkobmV3IFppcEVudHJ5KG91dHB1dCkpOworICAgICAgICAgICAgICAgICAgICBvcyA9IHpvczsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGd6aXApIHsKKyAgICAgICAgICAgICAgICAgICAgb3MgPSBuZXcgR1pJUE91dHB1dFN0cmVhbShuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXQgKyAiLmd6IikpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9zID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQnVmZmVyZWRXcml0ZXIgYncgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG9zdyA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3MsICJVVEYtOCIpOworICAgICAgICAgICAgYncgPSBuZXcgQnVmZmVyZWRXcml0ZXIob3N3KTsKKworICAgICAgICAgICAgLy8gd3JpdGluZyBkYXRhIGZpbGUKKyAgICAgICAgICAgIGJ3LndyaXRlKFN0cmluZy52YWx1ZU9mKEFQSUluZm8uVkVSU0lPTikgKyBBUElJbmZvLlNFUCk7IC8vIGhlYWRlciB2ZXJzaW9uCisgICAgICAgICAgICBidy53cml0ZShzcmNOYW1lICsgQVBJSW5mby5TRVApOyAvLyBzb3VyY2UgbmFtZQorICAgICAgICAgICAgYncud3JpdGUoKGJhc2UgPT0gbnVsbCA/ICIiIDogYmFzZSkgKyBBUElJbmZvLlNFUCk7IC8vIGJhc2UKKyAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhyZXN1bHRzLCBidyk7CisgICAgICAgICAgICBidy5jbG9zZSgpOyAvLyBzaG91bGQgZmx1c2gsIGNsb3NlIGFsbCwgZXRjCisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7IGJ3LmNsb3NlKCk7IH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUyKSB7fQorICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ3cml0ZSBlcnJvcjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0RvY3MoUHJvZ3JhbUVsZW1lbnREb2NbXSBkb2NzKSB7CisgICAgICAgIGlmIChkb2NzICE9IG51bGwgJiYgZG9jcy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRvY3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBkb0RvYyhkb2NzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0RvYyhQcm9ncmFtRWxlbWVudERvYyBkb2MpIHsKKyAgICAgICAgaWYgKGlnbm9yZShkb2MpKSByZXR1cm47CisKKyAgICAgICAgaWYgKGRvYy5pc0NsYXNzKCkgfHwgZG9jLmlzSW50ZXJmYWNlKCkpIHsKKyAgICAgICAgICAgIENsYXNzRG9jIGNkb2MgPSAoQ2xhc3NEb2MpZG9jOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MuZmllbGRzKCkpOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MuY29uc3RydWN0b3JzKCkpOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MubWV0aG9kcygpKTsKKyAgICAgICAgICAgIGRvRG9jcyhjZG9jLmlubmVyQ2xhc3NlcygpKTsKKyAgICAgICAgfQorCisgICAgICAgIEFQSUluZm8gaW5mbyA9IGNyZWF0ZUluZm8oZG9jKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0cy5hZGQoaW5mbyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaWdub3JlKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoZG9jID09IG51bGwpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZG9jLmlzUHJpdmF0ZSgpIHx8IGRvYy5pc1BhY2thZ2VQcml2YXRlKCkpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgQ29uc3RydWN0b3JEb2MgJiYgKChDb25zdHJ1Y3RvckRvYylkb2MpLmlzU3ludGhldGljKCkpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZG9jLnF1YWxpZmllZE5hbWUoKS5pbmRleE9mKCIubWlzYyIpICE9IC0xKSB7IAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtaXNjOiAiICsgZG9jLnF1YWxpZmllZE5hbWUoKSk7IHJldHVybiB0cnVlOyAKKyAgICAgICAgfQorCWlmICghaW50ZXJuYWwpIHsgLy8gZGVidWcKKwkgICAgVGFnW10gdGFncyA9IGRvYy50YWdzKCk7CisJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworCQlpZiAodGFnS2luZEluZGV4KHRhZ3NbaV0ua2luZCgpKSA9PSBJTlRFUk5BTCkgeyByZXR1cm4gdHJ1ZTsgfQorCSAgICB9CisJfQorICAgICAgICBpZiAocGF0ICE9IG51bGwgJiYgKGRvYy5pc0NsYXNzKCkgfHwgZG9jLmlzSW50ZXJmYWNlKCkpKSB7CisgICAgICAgICAgICBpZiAoIXBhdC5tYXRjaGVyKGRvYy5uYW1lKCkpLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHdyaXRlUmVzdWx0cyhDb2xsZWN0aW9uIGMsIEJ1ZmZlcmVkV3JpdGVyIHcpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBBUElJbmZvIGluZm8gPSAoQVBJSW5mbylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGluZm8ud3JpdGVsbih3KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHRyaW1CYXNlKFN0cmluZyBhcmcpIHsKKyAgICAgICAgaWYgKGJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgbiA9IGFyZy5pbmRleE9mKGJhc2UpOyBuICE9IC0xOyBuID0gYXJnLmluZGV4T2YoYmFzZSwgbikpIHsKKyAgICAgICAgICAgICAgICBhcmcgPSBhcmcuc3Vic3RyaW5nKDAsIG4pICsgYXJnLnN1YnN0cmluZyhuK2Jhc2UubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBhcmc7CisgICAgfQorCisgICAgcHVibGljIEFQSUluZm8gY3JlYXRlSW5mbyhQcm9ncmFtRWxlbWVudERvYyBkb2MpIHsKKworICAgICAgICAvLyBEb2MuIG5hbWUKKyAgICAgICAgLy8gRG9jLiBpc0ZpZWxkLCBpc01ldGhvZCwgaXNDb25zdHJ1Y3RvciwgaXNDbGFzcywgaXNJbnRlcmZhY2UKKyAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGNvbnRhaW5pbmdDbGFzcywgY29udGFpbmluZ1BhY2thZ2UKKyAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGlzUHVibGljLCBpc1Byb3RlY3RlZCwgaXNQcml2YXRlLCBpc1BhY2thZ2VQcml2YXRlCisgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBpc1N0YXRpYywgaXNGaW5hbAorICAgICAgICAvLyBNZW1iZXJEb2MuaXNTeW50aGV0aWMKKyAgICAgICAgLy8gRXhlY3V0YWJsZU1lbWJlckRvYyBpc1N5bmNocm9uaXplZCwgc2lnbmF0dXJlCisgICAgICAgIC8vIFR5cGUudG9TdHJpbmcoKSAvLyBlLmcuICJTdHJpbmdbXVtdIgorICAgICAgICAvLyBDbGFzc0RvYy5pc0Fic3RyYWN0LCBzdXBlckNsYXNzLCBpbnRlcmZhY2VzLCBmaWVsZHMsIG1ldGhvZHMsIGNvbnN0cnVjdG9ycywgaW5uZXJDbGFzc2VzCisgICAgICAgIC8vIEZpZWxkRG9jIHR5cGUKKyAgICAgICAgLy8gQ29uc3RydWN0b3JEb2MgcXVhbGlmaWVkTmFtZQorICAgICAgICAvLyBNZXRob2REb2MgaXNBYnN0cmFjdCwgcmV0dXJuVHlwZQorCisgICAgICAgIEFQSUluZm8gaW5mbyA9IG5ldyBBUElJbmZvKCk7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc3RhdHVzCisgICAgICAgIGluZm8uc2V0VHlwZShBUElJbmZvLlNUQSwgdGFnU3RhdHVzKGRvYykpOworCisgICAgICAgIC8vIHZpc2liaWxpdHkKKyAgICAgICAgaWYgKGRvYy5pc1B1YmxpYygpKSB7CisgICAgICAgICAgICBpbmZvLnNldFB1YmxpYygpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1Byb3RlY3RlZCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldFByb3RlY3RlZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1ByaXZhdGUoKSkgeworICAgICAgICAgICAgaW5mby5zZXRQcml2YXRlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIHBhY2thZ2UKKyAgICAgICAgfQorCisgICAgICAgIC8vIHN0YXRpYworICAgICAgICBpZiAoZG9jLmlzU3RhdGljKCkpIHsKKyAgICAgICAgICAgIGluZm8uc2V0U3RhdGljKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1zdGF0aWMKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsCisgICAgICAgIGlmIChkb2MuaXNGaW5hbCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldEZpbmFsKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1maW5hbAorICAgICAgICB9CisKKyAgICAgICAgLy8gdHlwZQorICAgICAgICBpZiAoZG9jLmlzRmllbGQoKSkgeworICAgICAgICAgICAgaW5mby5zZXRGaWVsZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc01ldGhvZCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldE1ldGhvZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc0NvbnN0cnVjdG9yKCkpIHsKKyAgICAgICAgICAgIGluZm8uc2V0Q29uc3RydWN0b3IoKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpKSB7CisgICAgICAgICAgICBpbmZvLnNldENsYXNzKCk7CisgICAgICAgIH0KKworICAgICAgICBpbmZvLnNldFBhY2thZ2UodHJpbUJhc2UoZG9jLmNvbnRhaW5pbmdQYWNrYWdlKCkubmFtZSgpKSk7CisgICAgICAgIGluZm8uc2V0Q2xhc3NOYW1lKChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpIHx8IChkb2MuY29udGFpbmluZ0NsYXNzKCkgPT0gbnVsbCkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICA/ICIiIAorICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRyaW1CYXNlKGRvYy5jb250YWluaW5nQ2xhc3MoKS5uYW1lKCkpKTsKKyAgICAgICAgaW5mby5zZXROYW1lKHRyaW1CYXNlKGRvYy5uYW1lKCkpKTsKKyAgICAKKyAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIEZpZWxkRG9jKSB7CisgICAgICAgICAgICBGaWVsZERvYyBmZG9jID0gKEZpZWxkRG9jKWRvYzsKKyAgICAgICAgICAgIGluZm8uc2V0U2lnbmF0dXJlKHRyaW1CYXNlKGZkb2MudHlwZSgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2MgaW5zdGFuY2VvZiBDbGFzc0RvYykgeworICAgICAgICAgICAgQ2xhc3NEb2MgY2RvYyA9IChDbGFzc0RvYylkb2M7CisKKyAgICAgICAgICAgIGlmIChjZG9jLmlzQ2xhc3MoKSAmJiBjZG9jLmlzQWJzdHJhY3QoKSkgeyAKKyAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIGFyZSBhYnN0cmFjdCBieSBkZWZhdWx0LCBkb24ndCBtYXJrIHRoZW0gYXMgYWJzdHJhY3QKKyAgICAgICAgICAgICAgICBpbmZvLnNldEFic3RyYWN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpZiAoY2RvYy5pc0NsYXNzKCkpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJleHRlbmRzICIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2RvYy5zdXBlcmNsYXNzKCkucXVhbGlmaWVkTmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENsYXNzRG9jW10gaW1wID0gY2RvYy5pbnRlcmZhY2VzKCk7CisgICAgICAgICAgICBpZiAoaW1wICE9IG51bGwgJiYgaW1wLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoImltcGxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGltcC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGltcFtpXS5xdWFsaWZpZWROYW1lKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZm8uc2V0U2lnbmF0dXJlKHRyaW1CYXNlKGJ1Zi50b1N0cmluZygpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFeGVjdXRhYmxlTWVtYmVyRG9jIGVtZG9jID0gKEV4ZWN1dGFibGVNZW1iZXJEb2MpZG9jOworICAgICAgICAgICAgaWYgKGVtZG9jLmlzU3luY2hyb25pemVkKCkpIHsKKyAgICAgICAgICAgICAgICBpbmZvLnNldFN5bmNocm9uaXplZCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgTWV0aG9kRG9jKSB7CisgICAgICAgICAgICAgICAgTWV0aG9kRG9jIG1kb2MgPSAoTWV0aG9kRG9jKWRvYzsKKyAgICAgICAgICAgICAgICBpZiAobWRvYy5pc0Fic3RyYWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5mby5zZXRBYnN0cmFjdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmZvLnNldFNpZ25hdHVyZSh0cmltQmFzZShtZG9jLnJldHVyblR5cGUoKS50b1N0cmluZygpICsgZW1kb2Muc2lnbmF0dXJlKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gY29uc3RydWN0b3IKKyAgICAgICAgICAgICAgICBpbmZvLnNldFNpZ25hdHVyZSh0cmltQmFzZShlbWRvYy5zaWduYXR1cmUoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluZm87CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgdGFnU3RhdHVzKGZpbmFsIERvYyBkb2MpIHsKKyAgICAgICAgY2xhc3MgUmVzdWx0IHsKKyAgICAgICAgICAgIGludCByZXMgPSAtMTsKKyAgICAgICAgICAgIHZvaWQgc2V0KGludCB2YWwpIHsgCisgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09IEFQSUluZm8uU1RBX0RFUFJFQ0FURUQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9rIHRvIGhhdmUgYm90aCBhICdzdGFuZGFyZCcgdGFnIGFuZCBkZXByZWNhdGVkCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzICE9IEFQSUluZm8uU1RBX0RFUFJFQ0FURUQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGFscmVhZHkgbm90IGRlcHJlY2F0ZWQsIHRoaXMgaXMgYW4gZXJyb3IKKwkJCVN5c3RlbS5lcnIucHJpbnRsbigiYmFkIGRvYzogIiArIGRvYyArICIgYm90aDogIiArIEFQSUluZm8uZ2V0VHlwZVZhbE5hbWUoQVBJSW5mby5TVEEsIHJlcykgKyAiIGFuZDogIiArIEFQSUluZm8uZ2V0VHlwZVZhbE5hbWUoQVBJSW5mby5TVEEsIHZhbCkpOyAKKwkJCXJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBvayB0byByZXBsYWNlIHdpdGggbmV3IHRhZworICAgICAgICAgICAgICAgIHJlcyA9IHZhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBnZXQoKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIndhcm5pbmc6IG5vIHRhZyBmb3IgIiArIGRvYyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGFnW10gdGFncyA9IGRvYy50YWdzKCk7CisgICAgICAgIFJlc3VsdCByZXN1bHQgPSBuZXcgUmVzdWx0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGFnIHRhZyA9IHRhZ3NbaV07CisKKyAgICAgICAgICAgIFN0cmluZyBraW5kID0gdGFnLmtpbmQoKTsKKyAgICAgICAgICAgIGludCBpeCA9IHRhZ0tpbmRJbmRleChraW5kKTsKKworICAgICAgICAgICAgc3dpdGNoIChpeCkgeworICAgICAgICAgICAgY2FzZSBJTlRFUk5BTDoKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KGludGVybmFsID8gQVBJSW5mby5TVEFfSU5URVJOQUwgOiAtMik7IC8vIC0yIGZvciBsZWdhY3kgY29tcGF0aWJpbGl0eQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERSQUZUOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoQVBJSW5mby5TVEFfRFJBRlQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNUQUJMRToKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KEFQSUluZm8uU1RBX1NUQUJMRSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgREVQUkVDQVRFRDoKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KEFQSUluZm8uU1RBX0RFUFJFQ0FURUQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIE9CU09MRVRFOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoQVBJSW5mby5TVEFfT0JTT0xFVEUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNJTkNFOgorICAgICAgICAgICAgY2FzZSBFWENFUFRJT046CisgICAgICAgICAgICBjYXNlIFZFUlNJT046CisgICAgICAgICAgICBjYXNlIFVOS05PV046CisgICAgICAgICAgICBjYXNlIEFVVEhPUjoKKyAgICAgICAgICAgIGNhc2UgU0VFOgorICAgICAgICAgICAgY2FzZSBQQVJBTToKKyAgICAgICAgICAgIGNhc2UgUkVUVVJOOgorICAgICAgICAgICAgY2FzZSBUSFJPV1M6CisgICAgICAgICAgICBjYXNlIFNFUklBTDoKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigidW5rbm93biBpbmRleCAiICsgaXggKyAiIGZvciB0YWc6ICIgKyBraW5kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAtMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5URVJOQUwgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEUkFGVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQUJMRSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNJTkNFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVQUkVDQVRFRCA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVVEhPUiA9IDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFRSA9IDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFZFUlNJT04gPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQQVJBTSA9IDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJFVFVSTiA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRIUk9XUyA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPQlNPTEVURSA9IDExOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT04gPSAxMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VSSUFMID0gMTM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgdGFnS2luZEluZGV4KFN0cmluZyBraW5kKSB7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHRhZ0tpbmRzID0geworICAgICAgICAgICAgIkBpbnRlcm5hbCIsICJAZHJhZnQiLCAiQHN0YWJsZSIsICJAc2luY2UiLCAiQGRlcHJlY2F0ZWQiLCAiQGF1dGhvciIsICJAc2VlIiwgIkB2ZXJzaW9uIiwKKyAgICAgICAgICAgICJAcGFyYW0iLCAiQHJldHVybiIsICJAdGhyb3dzIiwgIkBvYnNvbGV0ZSIsICJAZXhjZXB0aW9uIiwgIkBzZXJpYWwiCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdLaW5kcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGtpbmQuZXF1YWxzKHRhZ0tpbmRzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBVTktOT1dOOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVUpES0NvbXBhcmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVUpES0NvbXBhcmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTEwYmE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvSUNVSkRLQ29tcGFyZS5qYXZhCkBAIC0wLDAgKzEsNzg1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQ29tcGFyZSBJQ1U0SiBhbmQgSkRLIEFQSVMuCisgKgorICogVE9ETzogY29tcGFyZSBwcm90ZWN0ZWQgQVBJcy4gIFJlZmxlY3Rpb24gb24gQ2xhc3MgYWxsb3dzIHlvdQorICogdG8gZWl0aGVyIGdldCBhbGwgaW5oZXJpdGVkIG1ldGhvZHMgd2l0aCBwdWJsaWMgYWNjZXNzLCBvciBnZXQgbWV0aG9kcworICogb24gdGhlIHBhcnRpY3VsYXIgY2xhc3Mgd2l0aCBhbnkgYWNjZXNzLCBidXQgbm8gd2F5IHRvIGdldCBhbGwKKyAqIGluaGVyaXRlZCBtZXRob2RzIHdpdGggYW55IGFjY2Vzcy4gIEdvIGZpZ3VyZS4KKyAqLworcHVibGljIGNsYXNzIElDVUpES0NvbXBhcmUgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAvLyBzZXQgdXAgZGVmYXVsdHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1NyY1ByZWZpeCA9ICJqYXZhLiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtUcmdQcmVmaXggPSAiY29tLmlibS5pY3UuIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBrUGFpckluZm8gPSB7CisgICAgICAgICJsYW5nLkNoYXJhY3Rlci9VQ2hhcmFjdGVyIiwKKyAgICAgICAgImxhbmcuQ2hhcmFjdGVyJFVuaWNvZGVCbG9jay9VQ2hhcmFjdGVyJFVuaWNvZGVCbG9jayIsCisgICAgICAgICJ0ZXh0LkJyZWFrSXRlcmF0b3IiLAorICAgICAgICAidGV4dC5Db2xsYXRvciIsCisgICAgICAgICJ0ZXh0LkRhdGVGb3JtYXQiLAorICAgICAgICAidGV4dC5EYXRlRm9ybWF0U3ltYm9scyIsCisgICAgICAgICJ0ZXh0LkRlY2ltYWxGb3JtYXQiLAorICAgICAgICAidGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyIsCisgICAgICAgICJ0ZXh0LkZvcm1hdC9VRm9ybWF0IiwKKyAgICAgICAgInRleHQuTWVzc2FnZUZvcm1hdCIsCisgICAgICAgICJ0ZXh0Lk51bWJlckZvcm1hdCIsCisgICAgICAgICJ0ZXh0LlNpbXBsZURhdGVGb3JtYXQiLAorICAgICAgICAidXRpbC5DYWxlbmRhciIsCisgICAgICAgICJ1dGlsLkN1cnJlbmN5IiwKKyAgICAgICAgInV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIiLAorICAgICAgICAidXRpbC5TaW1wbGVUaW1lWm9uZSIsCisgICAgICAgICJ1dGlsLlRpbWVab25lIiwKKyAgICAgICAgInV0aWwuTG9jYWxlL1VMb2NhbGUiLAorICAgICAgICAidXRpbC5SZXNvdXJjZUJ1bmRsZS9VUmVzb3VyY2VCdW5kbGUiLAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBrSWdub3JlID0gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgImxhbmcuQ2hhcmFjdGVyIDxpbml0PiBjaGFyVmFsdWUgY29tcGFyZVRvIE1BWF9WQUxVRSBNSU5fVkFMVUUgVFlQRSIsCisgICAgICAgICJsYW5nLkNoYXJhY3RlciRVbmljb2RlQmxvY2sgU1VSUk9HQVRFU19BUkVBIiwKKyAgICAgICAgInV0aWwuQ2FsZW5kYXIgRklFTERfQ09VTlQiLAorICAgICAgICAidXRpbC5HcmVnb3JpYW5DYWxlbmRhciBGSUVMRF9DT1VOVCIsCisgICAgICAgICJ1dGlsLlNpbXBsZVRpbWVab25lIFNUQU5EQVJEX1RJTUUgVVRDX1RJTUUgV0FMTF9USU1FIiwKKyAgICB9OworCisgICAgcHJpdmF0ZSBQcmludFdyaXRlciBwdzsKKyAgICBwcml2YXRlIFN0cmluZyBzcmNQcmVmaXg7CisgICAgcHJpdmF0ZSBTdHJpbmcgdHJnUHJlZml4OworICAgIHByaXZhdGUgQ2xhc3NbXSBjbGFzc1BhaXJzOworICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZVBhaXJzOworICAgIHByaXZhdGUgU3RyaW5nW10gaWdub3JlOworICAgIHByaXZhdGUgYm9vbGVhbiBzd2FwOworICAgIHByaXZhdGUgYm9vbGVhbiBzaWduYXR1cmU7CisKKyAgICAvLyBjYWxsIFN5c3RlbS5leGl0IHdpdGggbm9uLXplcm8gaWYgdGhlcmUgd2VyZSBzb21lIG1pc3NpbmcgQVBJcworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3lzdGVtLmV4aXQoZG9NYWluKGFyZ3MpKTsKKyAgICB9CisKKyAgICAvLyByZXR1cm4gbm9uLXplcm8gaWYgdGhlcmUgd2VyZSBzb21lIG1pc3NpbmcgQVBJcworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRvTWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIElDVUpES0NvbXBhcmUgcCA9IG5ldyBJQ1VKREtDb21wYXJlKCk7CisgICAgICAgIHAuc2V0T3V0cHV0V3JpdGVyKG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KSk7CisgICAgICAgIHAuc2V0dXAoYXJncyk7CisgICAgICAgIHJldHVybiBwLnByb2Nlc3MoKTsKKyAgICB9CisKKyAgICAvLyBzZXR0ZXJzCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0T3V0cHV0V3JpdGVyKFByaW50V3JpdGVyIHB3KSB7CisgICAgICAgIHRoaXMucHcgPSBwdzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0U3JjUHJlZml4KFN0cmluZyBzcmNQcmVmaXgpIHsKKyAgICAgICAgdGhpcy5zcmNQcmVmaXggPSBzcmNQcmVmaXg7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBJQ1VKREtDb21wYXJlIHNldFRyZ1ByZWZpeChTdHJpbmcgdHJnUHJlZml4KSB7CisgICAgICAgIHRoaXMudHJnUHJlZml4ID0gdHJnUHJlZml4OworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXRDbGFzc1BhaXJzKENsYXNzW10gY2xhc3NQYWlycykgeworICAgICAgICB0aGlzLmNsYXNzUGFpcnMgPSBjbGFzc1BhaXJzOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXROYW1lUGFpcnMoU3RyaW5nW10gbmFtZVBhaXJzKSB7CisgICAgICAgIHRoaXMubmFtZVBhaXJzID0gbmFtZVBhaXJzOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXRJZ25vcmUoU3RyaW5nW10gaWdub3JlKSB7CisgICAgICAgIHRoaXMuaWdub3JlID0gaWdub3JlOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXRTd2FwKGJvb2xlYW4gc3dhcCkgeworICAgICAgICB0aGlzLnN3YXAgPSBzd2FwOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXR1cChTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFN0cmluZyBuYW1lbGlzdCA9IG51bGw7CisgICAgICAgIFN0cmluZyBpZ25vcmVsaXN0ID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItc3dhcCIpKSB7CisgICAgICAgICAgICAgICAgc3dhcCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1zcmNQcmVmaXg6IikpIHsKKyAgICAgICAgICAgICAgICBzcmNQcmVmaXggPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgaWYgKCFzcmNQcmVmaXguZW5kc1dpdGgoIi4iKSkgeworICAgICAgICAgICAgICAgICAgICBzcmNQcmVmaXggKz0gJy4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLXRyZ1ByZWZpeDoiKSkgeworICAgICAgICAgICAgICAgIHRyZ1ByZWZpeCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICBpZiAoIXRyZ1ByZWZpeC5lbmRzV2l0aCgiLiIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyZ1ByZWZpeCArPSAnLic7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbmFtZXM6IikpIHsKKyAgICAgICAgICAgICAgICBuYW1lbGlzdCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWlnbm9yZToiKSkgeworICAgICAgICAgICAgICAgIGlnbm9yZWxpc3QgPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAiICsgYXJnKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaWdub3JlbGlzdCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoaWdub3JlbGlzdC5jaGFyQXQoMCkgPT0gJ0AnKSB7IC8vIGEgZmlsZSBjb250YWluaW5nIGlnbm9yZWluZm8KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBBcnJheUxpc3QgbmwgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKG5hbWVsaXN0LnN1YnN0cmluZygxKSk7CisgICAgICAgICAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOworICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlzKTsKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAobGluZSA9IGJyLnJlYWRMaW5lKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBubC5hZGQobGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWdub3JlID0gKFN0cmluZ1tdKW5sLnRvQXJyYXkobmV3IFN0cmluZ1tubC5zaXplKCldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgbGlzdCBvZiBpZ25vcmVpbmZvIHNlcGFyYXRlZCBieSBzZW1pY29sb25zCisgICAgICAgICAgICAgICAgaWdub3JlID0gaWdub3JlbGlzdC5zcGxpdCgiXFxzKjtcXHMqIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobmFtZWxpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBudWxsOworICAgICAgICAgICAgaWYgKG5hbWVsaXN0LmNoYXJBdCgwKSA9PSAnQCcpIHsgLy8gYSBmaWxlCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQXJyYXlMaXN0IG5sID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShuYW1lbGlzdC5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmKTsKKyAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcyk7CisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKGxpbmUgPSBici5yZWFkTGluZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmwuYWRkKGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5hbWVzID0gKFN0cmluZ1tdKW5sLnRvQXJyYXkobmV3IFN0cmluZ1tubC5zaXplKCldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgbGlzdCBvZiBuYW1lcyBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucworICAgICAgICAgICAgICAgIG5hbWVzID0gbmFtZWxpc3Quc3BsaXQoIlxccyo7XFxzKiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcm9jZXNzUGFpckluZm8obmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgcHcuZmx1c2goKTsKKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc1BhaXJJbmZvKFN0cmluZ1tdIG5hbWVzKSB7CisgICAgICAgIEFycmF5TGlzdCBjbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgQXJyYXlMaXN0IG5sID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgU3RyaW5nIHNyY05hbWUgPSBzcmNQcmVmaXg7CisgICAgICAgICAgICBTdHJpbmcgdHJnTmFtZSA9IHRyZ1ByZWZpeDsKKworICAgICAgICAgICAgaW50IG4gPSBuYW1lLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgIGlmIChuID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3JjTmFtZSArPSBuYW1lOworICAgICAgICAgICAgICAgIHRyZ05hbWUgKz0gbmFtZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNyY1N1ZmZpeCA9IG5hbWUuc3Vic3RyaW5nKDAsIG4pLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdHJnU3VmZml4ID0gbmFtZS5zdWJzdHJpbmcobisxKS50cmltKCk7CisgICAgICAgICAgICAgICAgaW50IGp4ID0gc3JjU3VmZml4Lmxlbmd0aCgpKzE7CisgICAgICAgICAgICAgICAgaW50IGl4ID0gdHJnU3VmZml4Lmxlbmd0aCgpKzE7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGp4ID0gc3JjU3VmZml4Lmxhc3RJbmRleE9mKCcuJywgangtMSk7CisgICAgICAgICAgICAgICAgICAgIGl4ID0gdHJnU3VmZml4Lmxhc3RJbmRleE9mKCcuJywgaXgtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNyY05hbWUgKz0gc3JjU3VmZml4OworICAgICAgICAgICAgICAgIHRyZ05hbWUgKz0gc3JjU3VmZml4LnN1YnN0cmluZygwLCBqeCsxKSArIHRyZ1N1ZmZpeDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBqYyA9IENsYXNzLmZvck5hbWUoc3JjTmFtZSk7CisgICAgICAgICAgICAgICAgQ2xhc3MgaWMgPSBDbGFzcy5mb3JOYW1lKHRyZ05hbWUpOworICAgICAgICAgICAgICAgIGNsLmFkZChpYyk7CisgICAgICAgICAgICAgICAgY2wuYWRkKGpjKTsKKyAgICAgICAgICAgICAgICBubC5hZGQoaWMuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICBubC5hZGQoamMuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJjYW4ndCBsb2FkIGNsYXNzOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNsYXNzUGFpcnMgPSAoQ2xhc3NbXSljbC50b0FycmF5KG5ldyBDbGFzc1tjbC5zaXplKCldKTsKKyAgICAgICAgbmFtZVBhaXJzID0gKFN0cmluZ1tdKW5sLnRvQXJyYXkobmV3IFN0cmluZ1tubC5zaXplKCldKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRsbihTdHJpbmcgcykgeworICAgICAgICBpZiAocHcgIT0gbnVsbCkgcHcucHJpbnRsbihzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZmx1c2goKSB7CisgICAgICAgIGlmIChwdyAhPSBudWxsKSBwdy5mbHVzaCgpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcHJvY2VzcygpIHsKKyAgICAgICAgLy8gc2V0IGRlZmF1bHRzCisgICAgICAgIGlmIChzcmNQcmVmaXggPT0gbnVsbCkgeworICAgICAgICAgICAgc3JjUHJlZml4ID0ga1NyY1ByZWZpeDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cmdQcmVmaXggPT0gbnVsbCkgeworICAgICAgICAgICAgdHJnUHJlZml4ID0ga1RyZ1ByZWZpeDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGNsYXNzUGFpcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgcHJvY2Vzc1BhaXJJbmZvKGtQYWlySW5mbyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaWdub3JlID09IG51bGwpIHsKKyAgICAgICAgICAgIGlnbm9yZSA9IGtJZ25vcmU7CisgICAgICAgIH0KKworICAgICAgICBwcmludGxuKCJJQ1UgYW5kIEphdmEgQVBJIENvbXBhcmlzb24iKTsKKyAgICAgICAgU3RyaW5nIElDVV9WRVJTSU9OID0gInVua25vd24iOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZSgiY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbyIpOworICAgICAgICAgICAgRmllbGQgZmxkID0gY2xzLmdldEZpZWxkKCJJQ1VfVkVSU0lPTiIpOworICAgICAgICAgICAgSUNVX1ZFUlNJT04gPSBmbGQuZ2V0KG51bGwpLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbigiY2FuJ3QgZ2V0IFZlcnNpb25JbmZvOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHByaW50bG4oIklDVSBWZXJzaW9uICIgKyBJQ1VfVkVSU0lPTik7CisgICAgICAgIHByaW50bG4oIkpESyBWZXJzaW9uICIgKyBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpKTsKKworICAgICAgICBpbnQgZXJyb3JDb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2xhc3NQYWlycy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoc3dhcCkgeworICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50ICs9IGNvbXBhcmUoY2xhc3NQYWlyc1tpKzFdLCBjbGFzc1BhaXJzW2ldKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50ICs9IGNvbXBhcmUoY2xhc3NQYWlyc1tpXSwgY2xhc3NQYWlyc1tpKzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiYmV0d2VlbiAiICsgbmFtZVBhaXJzW2ldICsgIiBhbmQgIiArIG5hbWVQYWlyc1tpKzFdKTsKKyAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIGVycm9yQ291bnQgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3JDb3VudDsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgTW9yQyB7CisgICAgICAgIHByaXZhdGUgTWV0aG9kIG1yZWY7CisgICAgICAgIHByaXZhdGUgQ29uc3RydWN0b3IgY3JlZjsKKworICAgICAgICBNb3JDKE1ldGhvZCBtKSB7CisgICAgICAgICAgICBtcmVmID0gbTsKKyAgICAgICAgfQorCisgICAgICAgIE1vckMoQ29uc3RydWN0b3IgYykgeworICAgICAgICAgICAgY3JlZiA9IGM7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0TW9kaWZpZXJzKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/IGNyZWYuZ2V0TW9kaWZpZXJzKCkgOiBtcmVmLmdldE1vZGlmaWVycygpOworICAgICAgICB9CisKKyAgICAgICAgQ2xhc3MgZ2V0UmV0dXJuVHlwZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtcmVmID09IG51bGwgPyB2b2lkLmNsYXNzIDogbXJlZi5nZXRSZXR1cm5UeXBlKCk7CisgICAgICAgIH0KKworICAgICAgICBDbGFzc1tdIGdldFBhcmFtZXRlclR5cGVzKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/IGNyZWYuZ2V0UGFyYW1ldGVyVHlwZXMoKSA6IG1yZWYuZ2V0UGFyYW1ldGVyVHlwZXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/ICI8aW5pdD4iIDogbXJlZi5nZXROYW1lKCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZ2V0U2lnbmF0dXJlKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/IGNyZWYudG9TdHJpbmcoKSA6IG1yZWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IGNvbXBhcmUoQ2xhc3MgY2xhc3MxLCBDbGFzcyBjbGFzczIpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgbjEgPSBjbGFzczEuZ2V0TmFtZSgpOworICAgICAgICBTdHJpbmcgbjIgPSBjbGFzczIuZ2V0TmFtZSgpOworCisgICAgICAgIHByaW50bG4oIlxuY29tcGFyZSAiICsgbjEgKyAiIDw+ICIgKyBuMik7CisKKyAgICAgICAgTW9yQ1tdIGNvbnNzMSA9IGdldE1vckNBcnJheShjbGFzczEuZ2V0Q29uc3RydWN0b3JzKCkpOworICAgICAgICBNb3JDW10gY29uc3MyID0gZ2V0TW9yQ0FycmF5KGNsYXNzMi5nZXRDb25zdHJ1Y3RvcnMoKSk7CisKKyAgICAgICAgTWFwIGNtYXAxID0gZ2V0TWV0aG9kTWFwKGNvbnNzMSk7CisgICAgICAgIE1hcCBjbWFwMiA9IGdldE1ldGhvZE1hcChjb25zczIpOworCisgICAgICAgIE1vckNbXSBtZXRoczEgPSBnZXRNb3JDQXJyYXkoY2xhc3MxLmdldE1ldGhvZHMoKSk7CisgICAgICAgIE1vckNbXSBtZXRoczIgPSBnZXRNb3JDQXJyYXkoY2xhc3MyLmdldE1ldGhvZHMoKSk7CisKKyAgICAgICAgTWFwIG1hcDEgPSBnZXRNZXRob2RNYXAobWV0aHMxKTsKKyAgICAgICAgTWFwIG1hcDIgPSBnZXRNZXRob2RNYXAobWV0aHMyKTsKKworICAgICAgICBGaWVsZFtdIGZpZWxkczEgPSBjbGFzczEuZ2V0RmllbGRzKCk7CisgICAgICAgIEZpZWxkW10gZmllbGRzMiA9IGNsYXNzMi5nZXRGaWVsZHMoKTsKKworICAgICAgICBTZXQgc2V0MSA9IGdldEZpZWxkU2V0KGZpZWxkczEpOworICAgICAgICBTZXQgc2V0MiA9IGdldEZpZWxkU2V0KGZpZWxkczIpOworCisgICAgICAgIE1hcCBkaWZmQ29uc3MgPSBkaWZmTWV0aG9kTWFwcyhjbWFwMiwgY21hcDEpOworICAgICAgICBNYXAgZGlmZk1ldGhzID0gZGlmZk1ldGhvZE1hcHMobWFwMiwgbWFwMSk7CisgICAgICAgIFNldCBkaWZmRmllbGRzID0gZGlmZkZpZWxkU2V0cyhzZXQyLCBzZXQxKTsKKworICAgICAgICBkaWZmQ29uc3MgPSByZW1vdmVJZ25vcmVkKG4yLCBkaWZmQ29uc3MpOworICAgICAgICBkaWZmTWV0aHMgPSByZW1vdmVJZ25vcmVkKG4yLCBkaWZmTWV0aHMpOworICAgICAgICBkaWZmRmllbGRzID0gcmVtb3ZlSWdub3JlZChuMiwgZGlmZkZpZWxkcyk7CisKKyAgICAgICAgaW50IHJlc3VsdCA9IGRpZmZDb25zcy5zaXplKCkgKyBkaWZmTWV0aHMuc2l6ZSgpICsgZGlmZkZpZWxkcy5zaXplKCk7CisgICAgICAgIGlmIChyZXN1bHQgPiAwICYmIHB3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIlB1YmxpYyBBUEkgaW4gIiArIG4yICsgIiBidXQgbm90IGluICIgKyBuMSk7CisgICAgICAgICAgICBpZiAoZGlmZkNvbnNzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJDT05TVFJVQ1RPUlMiKTsKKyAgICAgICAgICAgICAgICBkdW1wTWV0aG9kTWFwKGRpZmZDb25zcywgcHcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRpZmZNZXRocy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiTUVUSE9EUyIpOworICAgICAgICAgICAgICAgIGR1bXBNZXRob2RNYXAoZGlmZk1ldGhzLCBwdyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGlmZkZpZWxkcy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiRklFTERTIik7CisgICAgICAgICAgICAgICAgZHVtcEZpZWxkU2V0KGRpZmZGaWVsZHMsIHB3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZsdXNoKCk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBmaW5hbCBjbGFzcyBNZXRob2RSZWNvcmQgeworICAgICAgICBNb3JDW10gb3ZlcnJpZGVzOworCisgICAgICAgIE1ldGhvZFJlY29yZChNb3JDIG0pIHsKKyAgICAgICAgICAgIG92ZXJyaWRlcyA9IG5ldyBNb3JDW10geyBtIH07CisgICAgICAgIH0KKworICAgICAgICBNZXRob2RSZWNvcmQoTW9yQ1tdIG1zKSB7CisgICAgICAgICAgICBvdmVycmlkZXMgPSBtczsKKyAgICAgICAgfQorCisgICAgICAgIE1ldGhvZFJlY29yZCBjb3B5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBNZXRob2RSZWNvcmQoKE1vckNbXSlvdmVycmlkZXMuY2xvbmUoKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG92ZXJyaWRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChvdmVycmlkZXNbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGVzLmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgYWRkKE1vckMgbSkgeworICAgICAgICAgICAgTW9yQ1tdIHRlbXAgPSBuZXcgTW9yQ1tvdmVycmlkZXMubGVuZ3RoICsgMV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG92ZXJyaWRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHRlbXBbaV0gPSBvdmVycmlkZXNbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wW292ZXJyaWRlcy5sZW5ndGhdID0gbTsKKyAgICAgICAgICAgIG92ZXJyaWRlcyA9IHRlbXA7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlbW92ZShpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIGludCBpID0gaW5kZXg7CisgICAgICAgICAgICB3aGlsZSAob3ZlcnJpZGVzW2ldICE9IG51bGwgJiYgaSA8IG92ZXJyaWRlcy5sZW5ndGgtMSkgeworICAgICAgICAgICAgICAgIG92ZXJyaWRlc1tpXSA9IG92ZXJyaWRlc1tpKzFdOworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG92ZXJyaWRlc1tpXSA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiBhIGNhbGwgdG8gYSBtZXRob2QgY2FuIGJlIGhhbmRsZWQgYnkgYSBjYWxsIHRvIHQsIHJlbW92ZSB0aGUKKyAgICAgICAgLy8gbWV0aG9kIGZyb20gb3VyIGxpc3QsIGFuZCByZXR1cm4gdHJ1ZQorICAgICAgICBib29sZWFuIHJlbW92ZU92ZXJyaWRkZW4oTW9yQyB0KSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgd2hpbGUgKGkgPCBvdmVycmlkZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgTW9yQyBtID0gb3ZlcnJpZGVzW2ldOworICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChoYW5kbGVzKHQsIG0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJlbW92ZShpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJlbW92ZSBhbGwgbWV0aG9kcyBoYW5kbGVkIGJ5IGFueSBtZXRob2Qgb2YgbXIKKyAgICAgICAgYm9vbGVhbiByZW1vdmVPdmVycmlkZGVuKE1ldGhvZFJlY29yZCBtcikgeworICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbXIub3ZlcnJpZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgTW9yQyB0ID0gbXIub3ZlcnJpZGVzW2ldOworICAgICAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBhcyB0aGUgdGFyZ2V0IHJlY29yZCBzaG91bGQgbm90IGhhdmUgYmVlbiBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZW1vdmVPdmVycmlkZGVuKHQpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVidWdtc2coTW9yQyB0LCBNb3JDIG0sIFN0cmluZyBtc2cpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKHQuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobXNnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICAgIik7CisgICAgICAgICAgICB0b1N0cmluZyh0LCBidWYpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4gICAiKTsKKyAgICAgICAgICAgIHRvU3RyaW5nKG0sIGJ1Zik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVzKE1vckMgdCwgTW9yQyBtKSB7CisgICAgICAgICAgICAvLyByZWxldmFudCBtb2RpZmllcnMgbXVzdCBtYXRjaAorICAgICAgICAgICAgaWYgKCh0LmdldE1vZGlmaWVycygpICYgTU9EX01BU0spICE9IChtLmdldE1vZGlmaWVycygpICYgTU9EX01BU0spKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBkZWJ1Z21zZyh0LCBtLCAibW9kaWZpZXIgbWlzbWF0Y2giKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIENsYXNzIHRyID0gcGFpckNsYXNzRXF1aXZhbGVudCh0LmdldFJldHVyblR5cGUoKSk7CisgICAgICAgICAgICBDbGFzcyBtciA9IHBhaXJDbGFzc0VxdWl2YWxlbnQobS5nZXRSZXR1cm5UeXBlKCkpOworICAgICAgICAgICAgaWYgKCFhc3NpZ25hYmxlRnJvbShtciwgdHIpKSB7IC8vIHQgcmV0dXJuIHR5cGUgbXVzdCBiZSBzYW1lIG9yIG5hcnJvd2VyIHRoYW4gbQorICAgICAgICAgICAgICAgIGlmIChERUJVRykgZGVidWdtc2codCwgbSwgInJldHVybiB2YWx1ZSBtaXNtYXRjaCIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENsYXNzW10gdHRzID0gdC5nZXRQYXJhbWV0ZXJUeXBlcygpOworICAgICAgICAgICAgQ2xhc3NbXSBtdHMgPSBtLmdldFBhcmFtZXRlclR5cGVzKCk7CisgICAgICAgICAgICBpZiAodHRzLmxlbmd0aCAhPSBtdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBkZWJ1Z21zZyh0LCBtLCAicGFyYW0gY291bnQgbWlzbWF0Y2giKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgdGMgPSBwYWlyQ2xhc3NFcXVpdmFsZW50KHR0c1tpXSk7CisgICAgICAgICAgICAgICAgQ2xhc3MgbWMgPSBwYWlyQ2xhc3NFcXVpdmFsZW50KG10c1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFhc3NpZ25hYmxlRnJvbSh0YywgbWMpKSB7IC8vIG0gcGFyYW0gbXVzdCBiZSBzYW1lIG9yIG5hcnJvd2VyIHRoYW4gdAorICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIGRlYnVnbXNnKHQsIG0sICJwYXJhbWV0ZXIgIiArIGkgKyAiIG1pc21hdGNoLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHRzW2ldLmdldE5hbWUoKSArICIgbm90IGFzc2lnbmFibGUgZnJvbSAiICsgbXRzW2ldLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHRvU3RyaW5nKE1vckMgbSwgU3RyaW5nQnVmZmVyIGJ1ZikgeworICAgICAgICAgICAgaW50IG1vZCA9IG0uZ2V0TW9kaWZpZXJzKCk7CisgICAgICAgICAgICBpZiAobW9kICE9IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKE1vZGlmaWVyLnRvU3RyaW5nKG1vZCkgKyAiICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lT2YobS5nZXRSZXR1cm5UeXBlKCkpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobS5nZXROYW1lKCkpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiKCIpOworICAgICAgICAgICAgQ2xhc3NbXSBwdHlwZXMgPSBtLmdldFBhcmFtZXRlclR5cGVzKCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHB0eXBlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChqID4gMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWVPZihwdHlwZXNbal0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyknKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgYnVmLmFwcGVuZChvdmVycmlkZXNbMF0uZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3ZlcnJpZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgTW9yQyBtID0gb3ZlcnJpZGVzW2ldOworICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICAgIik7CisgICAgICAgICAgICAgICAgdG9TdHJpbmcobSwgYnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG5hbWVPZihDbGFzcyBjKSB7CisgICAgICAgIGlmIChjLmlzQXJyYXkoKSkgeworICAgICAgICAgICAgcmV0dXJuIG5hbWVPZihjLmdldENvbXBvbmVudFR5cGUoKSkgKyAiW10iOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBuYW1lID0gYy5nZXROYW1lKCk7CisgICAgICAgIHJldHVybiBuYW1lLnN1YnN0cmluZyhuYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKTsKKyAgICB9CisKKyAgICBzdGF0aWMgTW9yQ1tdIGdldE1vckNBcnJheShDb25zdHJ1Y3RvcltdIGNvbnMpIHsKKyAgICAgICAgTW9yQ1tdIHJlc3VsdCA9IG5ldyBNb3JDW2NvbnMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgY29ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0W2ldID0gbmV3IE1vckMoY29uc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBzdGF0aWMgTW9yQ1tdIGdldE1vckNBcnJheShNZXRob2RbXSBtZXRocykgeworICAgICAgICBNb3JDW10gcmVzdWx0ID0gbmV3IE1vckNbbWV0aHMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbWV0aHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IG5ldyBNb3JDKG1ldGhzW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgTWFwIGdldE1ldGhvZE1hcChNb3JDW10gbWV0aHMpIHsKKyAgICAgICAgTWFwIHJlc3VsdCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWV0aHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIE1vckMgbSA9IG1ldGhzW2ldOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IG0uZ2V0TmFtZSgpOworICAgICAgICAgICAgTWV0aG9kUmVjb3JkIG1yID0gKE1ldGhvZFJlY29yZClyZXN1bHQuZ2V0KGtleSk7CisgICAgICAgICAgICBpZiAobXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1yID0gbmV3IE1ldGhvZFJlY29yZChtKTsKKyAgICAgICAgICAgICAgICByZXN1bHQucHV0KGtleSwgbXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtci5hZGQobSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcE1ldGhvZE1hcChNYXAgbSwgUHJpbnRXcml0ZXIgcHcpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IG0uZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGR1bXBNZXRob2RSZWNvcmQoKE1ldGhvZFJlY29yZCkoKE1hcC5FbnRyeSlpdGVyLm5leHQoKSkuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcHcuZmx1c2goKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcE1ldGhvZFJlY29yZChNZXRob2RSZWNvcmQgbXIpIHsKKyAgICAgICAgcHcucHJpbnRsbihtci50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgTWFwIGRpZmZNZXRob2RNYXBzKE1hcCBtMSwgTWFwIG0yKSB7CisgICAgICAgIC8vIGdldCBhbGwgdGhlIG1ldGhvZHMgaW4gbTEgdGhhdCBhcmVuJ3QgbWVudGlvbmVkIGluIG0yIGF0IGFsbAorICAgICAgICBNYXAgcmVzdWx0ID0gKE1hcCkoKFRyZWVNYXApbTEpLmNsb25lKCk7CisgICAgICAgIHJlc3VsdC5rZXlTZXQoKS5yZW1vdmVBbGwobTIua2V5U2V0KCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgTWFwIHJlbW92ZUlnbm9yZWQoU3RyaW5nIG5hbWUsIE1hcCBtMSkgeworICAgICAgICBpZiAoaWdub3JlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBtMTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKHNyY1ByZWZpeCkpIHsKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZyhzcmNQcmVmaXgubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIG5hbWUgKz0gIiAiOyAvLyB0byBhdm9pZCBhY2NpZGVudGFsIHByZWZpeCBvZiBuZXN0ZWQgY2xhc3MgbmFtZQorCisgICAgICAgIC8vIHBydW5lIGlnbm9yZSBsaXN0IHRvIHJlbGV2YW50IGl0ZW1zCisgICAgICAgIEFycmF5TGlzdCBpbCA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWdub3JlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGlnbm9yZVtpXTsKKyAgICAgICAgICAgIGlmIChzLnN0YXJ0c1dpdGgobmFtZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWwuYWRkKHMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbTE7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBNYXAgcmVzdWx0ID0gbmV3IFRyZWVNYXAoKChUcmVlTWFwKW0xKS5jb21wYXJhdG9yKCkpOworICAgICAgICByZXN1bHQucHV0QWxsKG0xKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHJlc3VsdC5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIGxvb3A6IHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgTWFwLkVudHJ5IGUgPSAoTWFwLkVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZS5nZXRLZXkoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWwuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWcgPSAoU3RyaW5nKWlsLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaWcuaW5kZXhPZigiICIgKyBrZXkpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUgbG9vcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIFNldCByZW1vdmVJZ25vcmVkKFN0cmluZyBuYW1lLCBTZXQgczEpIHsKKyAgICAgICAgaWYgKGlnbm9yZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gczE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChzcmNQcmVmaXgpKSB7CisgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoc3JjUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgICAgICBuYW1lICs9ICIgIjsgLy8gdG8gYXZvaWQgYWNjaWRlbnRhbCBwcmVmaXggb2YgbmVzdGVkIGNsYXNzIG5hbWUKKworICAgICAgICAvLyBwcnVuZSBpZ25vcmUgbGlzdCB0byByZWxldmFudCBpdGVtcworICAgICAgICBBcnJheUxpc3QgaWwgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlnbm9yZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBpZ25vcmVbaV07CisgICAgICAgICAgICBpZiAocy5zdGFydHNXaXRoKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWwgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlsLmFkZChzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaWwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHMxOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgU2V0IHJlc3VsdCA9IChTZXQpKChUcmVlU2V0KXMxKS5jbG9uZSgpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gcmVzdWx0Lml0ZXJhdG9yKCk7CisgICAgICAgIGxvb3A6IHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgZmllbGRuYW1lID0ga2V5LnN1YnN0cmluZygwLCBrZXkuaW5kZXhPZignICcpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWwuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWcgPSAoU3RyaW5nKWlsLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaWcuaW5kZXhPZigiICIgKyBmaWVsZG5hbWUpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUgbG9vcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbltdW10gYXNzaWdubWVudE1hcCA9IHsKKyAgICAgICAgLy8gYm9vbCAgIGNoYXIgICBieXRlICBzaG9ydCAgICBpbnQgICBsb25nICBmbG9hdCBkb3VibGUgICB2b2lkCisgICAgICAgIHsgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBib29sZWFuCisgICAgICAgIHsgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBjaGFyCisgICAgICAgIHsgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBieXRlCisgICAgICAgIHsgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBzaG9ydAorICAgICAgICB7IGZhbHNlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfSwgLy8gaW50CisgICAgICAgIHsgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBsb25nCisgICAgICAgIHsgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCBmYWxzZSwgIHRydWUsIGZhbHNlLCBmYWxzZSB9LCAvLyBmbG9hdAorICAgICAgICB7IGZhbHNlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgZmFsc2UgfSwgLy8gZG91YmxlCisgICAgICAgIHsgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAgdHJ1ZSB9LCAvLyB2b2lkCisgICAgfTsKKworICAgIHN0YXRpYyBmaW5hbCBDbGFzc1tdIHByaW1zID0geworICAgICAgICBib29sZWFuLmNsYXNzLCBjaGFyLmNsYXNzLCBieXRlLmNsYXNzLCBzaG9ydC5jbGFzcywKKyAgICAgICAgaW50LmNsYXNzLCBsb25nLmNsYXNzLCBmbG9hdC5jbGFzcywgZG91YmxlLmNsYXNzLCB2b2lkLmNsYXNzCisgICAgfTsKKworICAgIHN0YXRpYyBpbnQgcHJpbUluZGV4KENsYXNzIGNscykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByaW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoY2xzID09IHByaW1zW2ldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiY291bGQgbm90IGZpbmQgcHJpbWl0aXZlIGNsYXNzOiAiICsgY2xzKTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbGVhbiBhc3NpZ25hYmxlRnJvbShDbGFzcyBsaHMsIENsYXNzIHJocykgeworICAgICAgICBpZiAobGhzID09IHJocykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxocy5pc1ByaW1pdGl2ZSgpKSB7CisgICAgICAgICAgICBpZiAoIXJocy5pc1ByaW1pdGl2ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxoc3ggPSBwcmltSW5kZXgobGhzKTsKKyAgICAgICAgICAgIGludCByaHN4ID0gcHJpbUluZGV4KHJocyk7CisgICAgICAgICAgICByZXR1cm4gYXNzaWdubWVudE1hcFtsaHN4XVtyaHN4XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGhzLmlzQXNzaWduYWJsZUZyb20ocmhzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyB0b1N0cmluZyhGaWVsZCBmKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKGYuZ2V0TmFtZSgpKTsKKyAgICAgICAgaW50IG1vZCA9IGYuZ2V0TW9kaWZpZXJzKCkgJiBNT0RfTUFTSzsKKyAgICAgICAgaWYgKG1vZCAhPSAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIgIiArIE1vZGlmaWVyLnRvU3RyaW5nKG1vZCkpOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgU3RyaW5nIG4gPSBwYWlyRXF1aXZhbGVudChmLmdldFR5cGUoKS5nZXROYW1lKCkpOworICAgICAgICBuID0gbi5zdWJzdHJpbmcobi5sYXN0SW5kZXhPZignLicpICsgMSk7CisgICAgICAgIGJ1Zi5hcHBlbmQobik7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFNldCBnZXRGaWVsZFNldChGaWVsZFtdIGZzKSB7CisgICAgICAgIFNldCBzZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBzZXQuYWRkKHRvU3RyaW5nKGZzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICBzdGF0aWMgU2V0IGRpZmZGaWVsZFNldHMoU2V0IHMxLCBTZXQgczIpIHsKKyAgICAgICAgU2V0IHJlc3VsdCA9IChTZXQpKChUcmVlU2V0KXMxKS5jbG9uZSgpOworICAgICAgICByZXN1bHQucmVtb3ZlQWxsKHMyKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcEZpZWxkU2V0KFNldCBzLCBQcmludFdyaXRlciBwdykgeworICAgICAgICBJdGVyYXRvciBpdGVyID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oaXRlci5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorCisgICAgLy8gZ2l2ZW4gYSB0YXJnZXQgc3RyaW5nLCBpZiBpdCBtYXRjaGVzIHRoZSBmaXJzdCBvZiBvbmUgb2Ygb3VyIHBhaXJzLCByZXR1cm4gdGhlIHNlY29uZAorICAgIC8vIG9yIHZpY2UtdmVyc2EgaWYgc3dhcCBpcyB0cnVlCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFpckVxdWl2YWxlbnQoU3RyaW5nIHRhcmdldCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVQYWlycy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgaWYgKHN3YXApIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhuYW1lUGFpcnNbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVQYWlyc1tpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuZXF1YWxzKG5hbWVQYWlyc1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVQYWlyc1tpKzFdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKworICAgIHByaXZhdGUgQ2xhc3MgcGFpckNsYXNzRXF1aXZhbGVudChDbGFzcyB0YXJnZXQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGFzc1BhaXJzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhjbGFzc1BhaXJzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc1BhaXJzW2krMV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IE1PRF9NQVNLID0gfihNb2RpZmllci5GSU5BTHxNb2RpZmllci5TWU5DSFJPTklaRUR8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZXIuVk9MQVRJTEV8TW9kaWZpZXIuVFJBTlNJRU5UfE1vZGlmaWVyLk5BVElWRSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9JQ1VUYWdsZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVVRhZ2xldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZWFmYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9JQ1VUYWdsZXQuamF2YQpAQCAtMCwwICsxLDI5MyBAQAorLy8jI2hlYWRlciAgVkVSU0lPTl8xLjUKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBQcmVwcm9jZXNzIHdpdGggY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Db2RlTWFuZ2xlciB0byBnZW5lcmF0ZQorICogZWl0aGVyIGEgSkRLIDEuNCBvciBKREsgMS41IHZlcnNpb24uICBGb3IgdGhlIDEuNSB2ZXJzaW9uLCBkZWZpbmUKKyAqIFZFUlNJT05fMS41LgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGNvbS5zdW4uamF2YWRvYy4qOworaW1wb3J0IGNvbS5zdW4udG9vbHMuZG9jbGV0cy4qOworLy8jaWZkZWYgVkVSU0lPTl8xLjUKKworaW1wb3J0IGNvbS5zdW4udG9vbHMuZG9jbGV0cy5pbnRlcm5hbC50b29sa2l0LnRhZ2xldHMuKjsKK2ltcG9ydCBjb20uc3VuLnRvb2xzLmRvY2xldHMuaW50ZXJuYWwudG9vbGtpdC50YWdsZXRzLlRhZ2xldDsKKworLy8gamRrIDEuNSBjb250YWlucyBib3RoIGNvbS5zdW4udG9vbHMuZG9jbGV0cy5UYWdsZXQgYW5kCisvLyBjb20uc3VuLnRvb2xzLmRvY2xldHMuaW50ZXJuYWwudG9vbGtpdC50YWdsZXRzLlRhZ2xldC4KKy8vIFRoZWlyIHJlZ2lzdHJhdGlvbiBjb2RlIGNhc3RzIHRvIHRoZSBzZWNvbmQsIG5vdCB0aGUgZmlyc3QsIGFuZCB0aGUKKy8vIHNlY29uZCBkb2Vzbid0IGltcGxlbWVudCB0aGUgZmlyc3QsIHNvIGlmIHlvdSBqdXN0IGltcGxlbWVudCB0aGUKKy8vIGZpcnN0LCB5b3UgZGllLgorLy8jZW5kaWYKKworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIElDVVRhZ2xldCBpbXBsZW1lbnRzIFRhZ2xldCB7CisgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBuYW1lOworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgbWFzazsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfRklFTEQgPSAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfQ09OU1RSVUNUT1IgPSAyOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfTUVUSE9EID0gNDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX09WRVJWSUVXID0gODsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX1BBQ0tBR0UgPSAxNjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX1RZUEUgPSAzMjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX0lOTElORSA9IDY0OworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19ERUZBVUxUID0gMHgwMDNmOyAvLyBubyBpbmxpbmUKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX1ZBTElEID0gMHgwMDdmOyAvLyBpbmNsdWRlcyBpbmxpbmUKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICBJQ1VJbnRlcm5hbFRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKyAgICAgICAgSUNVRHJhZnRUYWdsZXQucmVnaXN0ZXIodGFnbGV0cyk7CisgICAgICAgIElDVVN0YWJsZVRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKy8vI2lmbmRlZiBWRVJTSU9OXzEuNQorLy8jIyAgICAgICAgSUNVRGVwcmVjYXRlZFRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKy8vI2VuZGlmCisgICAgICAgIElDVVByb3Zpc2lvbmFsVGFnbGV0LnJlZ2lzdGVyKHRhZ2xldHMpOworICAgICAgICBJQ1VPYnNvbGV0ZVRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKyAgICAgICAgSUNVSWdub3JlVGFnbGV0LnJlZ2lzdGVyKHRhZ2xldHMpOworICAgIH0KKworICAgIHByb3RlY3RlZCBJQ1VUYWdsZXQoU3RyaW5nIG5hbWUsIGludCBtYXNrKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIHRoaXMubWFzayA9IG1hc2sgJiBNQVNLX1ZBTElEOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGluRmllbGQoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfRklFTEQpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaW5Db25zdHJ1Y3RvcigpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19DT05TVFJVQ1RPUikgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpbk1ldGhvZCgpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19NRVRIT0QpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaW5PdmVydmlldygpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19PVkVSVklFVykgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpblBhY2thZ2UoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfUEFDS0FHRSkgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpblR5cGUoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfVFlQRSkgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0lubGluZVRhZygpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19JTkxJTkUpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgcmV0dXJuIHRhZy50ZXh0KCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWdbXSB0YWdzKSB7CisgICAgICAgIGlmICh0YWdzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0YWdzLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIlNob3VsZCBub3QgaGF2ZSBtb3JlIHRoYW4gb25lIElDVSB0YWcgcGVyIGVsZW1lbnQ6XG4iOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBtc2cgKz0gIiAgWyIgKyBpICsgIl0gIiArIHRhZ3NbaV0gKyAiXG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKG1zZyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ3MubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0b1N0cmluZyh0YWdzWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisvLyNpZmRlZiBWRVJTSU9OXzEuNQorCisgICAgcHVibGljIFRhZ2xldE91dHB1dCBnZXRUYWdsZXRPdXRwdXQoVGFnIHRhZywgVGFnbGV0V3JpdGVyIHdyaXRlcikgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7CisJVGFnbGV0T3V0cHV0IG91dCA9IHdyaXRlci5nZXRUYWdsZXRPdXRwdXRJbnN0YW5jZSgpOworCW91dC5zZXRPdXRwdXQodG9TdHJpbmcodGFnKSk7CisJcmV0dXJuIG91dDsKKyAgICB9CisKKyAgICBwdWJsaWMgVGFnbGV0T3V0cHV0IGdldFRhZ2xldE91dHB1dChEb2MgaG9sZGVyLCBUYWdsZXRXcml0ZXIgd3JpdGVyKSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAJVGFnbGV0T3V0cHV0IG91dCA9IHdyaXRlci5nZXRUYWdsZXRPdXRwdXRJbnN0YW5jZSgpOworCVRhZ1tdIHRhZ3MgPSBob2xkZXIudGFncyhnZXROYW1lKCkpOworCWlmICh0YWdzLmxlbmd0aCA9PSAwKSB7CisJICAgIHJldHVybiBudWxsOworCX0KKyAJb3V0LnNldE91dHB1dCh0b1N0cmluZyh0YWdzWzBdKSk7CisgCXJldHVybiBvdXQ7CisgICAgfQorLy8jZW5kaWYKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIFNUQVRVUyA9ICI8ZHQ+PGI+U3RhdHVzOjwvYj48L2R0PiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVUludGVybmFsVGFnbGV0IGV4dGVuZHMgSUNVVGFnbGV0IHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAiaW50ZXJuYWwiOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICAgICAgdGFnbGV0cy5wdXQoTkFNRSwgbmV3IElDVUludGVybmFsVGFnbGV0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJQ1VJbnRlcm5hbFRhZ2xldCgpIHsKKyAgICAgICAgICAgIHN1cGVyKE5BTUUsIE1BU0tfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPjxlbT5JbnRlcm5hbDwvZW0+LiA8Zm9udCBjb2xvcj0ncmVkJz5UaGlzIEFQSSBpcyA8ZW0+SUNVIGludGVybmFsIG9ubHk8L2VtPi48L2ZvbnQ+PC9kZD4iOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VEcmFmdFRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gImRyYWZ0IjsKKworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KE5BTUUsIG5ldyBJQ1VEcmFmdFRhZ2xldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSUNVRHJhZnRUYWdsZXQoKSB7CisgICAgICAgICAgICBzdXBlcihOQU1FLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHRhZy50ZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXYXJuaW5nOiBlbXB0eSBkcmFmdCB0YWciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPkRyYWZ0ICIgKyB0YWcudGV4dCgpICsgIi48L2RkPiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVVN0YWJsZVRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gInN0YWJsZSI7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKE1hcCB0YWdsZXRzKSB7CisgICAgICAgICAgICB0YWdsZXRzLnB1dChOQU1FLCBuZXcgSUNVU3RhYmxlVGFnbGV0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJQ1VTdGFibGVUYWdsZXQoKSB7CisgICAgICAgICAgICBzdXBlcihOQU1FLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHRhZy50ZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU1RBVFVTICsgIjxkZD5TdGFibGUgIiArIHRleHQgKyAiLjwvZGQ+IjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNUQVRVUyArICI8ZGQ+U3RhYmxlLjwvZGQ+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKy8vI2lmbmRlZiBWRVJTSU9OXzEuNQorLy8jIworLy8jIyAgICAvKgorLy8jIyAgICAgKiBzaWdoLCBpbiBKREsgMS41IHdlIGNhbid0IG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBkZXByZWNhdGVkIHRhZ2xldAorLy8jIyAgICAgKiBzbyBlYXNpbHkuICBJJ20gbm90IGltcHJlc3NlZCB3aXRoIHRoZSBqYXZhZG9jIGNvZGUuCisvLyMjICAgICAqLworLy8jIyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVURlcHJlY2F0ZWRUYWdsZXQgZXh0ZW5kcyBJQ1VUYWdsZXQgeworLy8jIyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAiZGVwcmVjYXRlZCI7CisvLyMjCisvLyMjICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKy8vIyMJICAgIHRhZ2xldHMucmVtb3ZlKE5BTUUpOyAvLyBvdmVycmlkZSBzdGFuZGFyZCBkZXByZWNhdGVkIHRhZ2xldAorLy8jIyAgICAgICAgICAgIHRhZ2xldHMucHV0KE5BTUUsIG5ldyBJQ1VEZXByZWNhdGVkVGFnbGV0KCkpOworLy8jIyAgICAgICAgfQorLy8jIworLy8jIyAgICAgICAgcHJpdmF0ZSBJQ1VEZXByZWNhdGVkVGFnbGV0KCkgeworLy8jIyAgICAgICAgICAgIHN1cGVyKE5BTUUsIE1BU0tfREVGQVVMVCk7CisvLyMjICAgICAgICB9CisvLyMjCisvLyMjICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKy8vIyMgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisvLyMjICAgICAgICAgICAgU3RyaW5nIHRleHQgPSB0YWcudGV4dCgpOworLy8jIyAgICAgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisvLyMjICAgICAgICAgICAgaW50IGZpcnN0ID0gYmkuZmlyc3QoKTsKKy8vIyMgICAgICAgICAgICBpbnQgbmV4dCA9IGJpLm5leHQoKTsKKy8vIyMgICAgICAgICAgICBpZiAoZmlyc3QgPT0gLTEgfHwgbmV4dCA9PSAtMSkgeworLy8jIyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldhcm5pbmc6IGJhZCBkZXByZWNhdGVkIHRhZyAnIiArIHRleHQgKyAiJyIpOworLy8jIyAgICAgICAgICAgICAgICByZXR1cm4gIjxkZD48ZW0+Tm90ZTwvZW0+LiAiICsgdGV4dCArICI8L2RkPiI7CisvLyMjICAgICAgICAgICAgfSBlbHNlIHsKKy8vIyMgICAgICAgICAgICAgICAgaWYgKCJUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4iLmVxdWFscyh0ZXh0KSkgeworLy8jIyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisvLyMjICAgICAgICAgICAgICAgIH0KKy8vIyMgICAgICAgICAgICAgICAgcmV0dXJuICI8ZGQ+PGVtPk5vdGUsICIgKyB0ZXh0LnN1YnN0cmluZyhmaXJzdCwgbmV4dCkgKyAiPC9lbT4uICIgKyB0ZXh0LnN1YnN0cmluZyhuZXh0KSArICI8L2RkPiI7CisvLyMjICAgICAgICAgICAgfQorLy8jIyAgICAgICAgfQorLy8jIyAgICB9CisvLyNlbmRpZgorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VQcm92aXNpb25hbFRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gInByb3Zpc2lvbmFsIjsKKworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKwkgICAgdGFnbGV0cy5yZW1vdmUoTkFNRSk7IC8vIG92ZXJyaWRlIHN0YW5kYXJkIGRlcHJlY2F0ZWQgdGFnbGV0CisgICAgICAgICAgICB0YWdsZXRzLnB1dChOQU1FLCBuZXcgSUNVUHJvdmlzaW9uYWxUYWdsZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIElDVVByb3Zpc2lvbmFsVGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoTkFNRSwgTUFTS19ERUZBVUxUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoVGFnIHRhZykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVU9ic29sZXRlVGFnbGV0IGV4dGVuZHMgSUNVVGFnbGV0IHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAib2Jzb2xldGUiOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICAgICAgdGFnbGV0cy5wdXQoTkFNRSwgbmV3IElDVU9ic29sZXRlVGFnbGV0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJQ1VPYnNvbGV0ZVRhZ2xldCgpIHsKKyAgICAgICAgICAgIHN1cGVyKE5BTUUsIE1BU0tfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gdGFnLnRleHQoKTsKKyAgICAgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisgICAgICAgICAgICBpbnQgZmlyc3QgPSBiaS5maXJzdCgpOworICAgICAgICAgICAgaW50IG5leHQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZmlyc3QgPSBuZXh0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPjxlbT5PYnNvbGV0ZS48L2VtPiA8Zm9udCBjb2xvcj0ncmVkJz5XaWxsIGJlIHJlbW92ZWQgaW4gIiArIHRleHQuc3Vic3RyaW5nKGZpcnN0LCBuZXh0KSArICI8L2ZvbnQ+LiAiICsgdGV4dC5zdWJzdHJpbmcobmV4dCkgKyAiPC9kZD4iOworCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVUlnbm9yZVRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIElDVVRhZ2xldCBzaW5nbGV0b247CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKE1hcCB0YWdsZXRzKSB7CisgICAgICAgICAgICBpZiAoc2luZ2xldG9uID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGV0b24gPSBuZXcgSUNVSWdub3JlVGFnbGV0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0YWdsZXRzLnB1dCgiYnVnIiwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KCJ0ZXN0Iiwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KCJzdW1tYXJ5Iiwgc2luZ2xldG9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSUNVSWdub3JlVGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoIi5pZ25vcmUiLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL1JFQURNRS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzN2YxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SRUFETUUudHh0CkBAIC0wLDAgKzEsOTUgQEAKK0NvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitVc2luZyB0aGUgR2F0aGVyQVBJRGF0YSBhbmQgUmVwb3J0QVBJIHRvb2xzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXNlIHR3byB0b29scyBhcmUgdXNlZCB0b2dldGhlciB0byBnZW5lcmF0ZSByZXBvcnRzIGFib3V0IGNoYW5nZXMgaW4KK3N1cHBvcnRlZCBBUEkgYmV0d2VlbiB2ZXJzaW9ucyBvZiBJQ1U0Si4KKworCitHYXRoZXJBUElEYXRhIAorCitHYXRoZXJBUElEYXRhIHVzZXMgamF2YWRvYyB0byBwcm9jZXNzIHRoZSBJQ1U0SiBzb3VyY2UgZmlsZXMgYW5kCitnZW5lcmF0ZSBhIGZpbGUgbGlzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVibGljIEFQSSwgaW5jbHVkaW5nCit0aGUgSUNVNEogc3RhdHVzIChkcmFmdCwgc3RhYmxlLCBkZXByZWNhdGVkLCBvYnNvbGV0ZSkuICBJdCBleGNsdWRlcworcHJpdmF0ZSBBUEksIEFQSSBtYXJrZWQgQGludGVybmFsLiAgVGhlIGZpbGUgaXMgd3JpdHRlbiBhcyB0ZXh0LCBzbyBpdAoraXMgaHVtYW4tcmVhZGFibGUsIGJ1dCBpdCBpcyBhIGJpdCB2ZXJib3NlLiAgVG8gc2F2ZSBzcGFjZSwgdGhlIGZpbGUKK2NhbiBiZSB6aXAnZCBvciBnemlwJ2QgKHVzaW5nIGZsYWdzIHBhc3NlZCB0byB0aGUgdG9vbCksIHdoaWNoIHdpbGwKK3JlZHVjZSB0aGUgc2l6ZSBieSBhYm91dCBhIGZhY3RvciBvZiAxMC4KKworR2F0aGVyQVBJRGF0YSByZXF1aXJlcyBqYXZhZG9jIGFuZCBpcyBjdXJyZW50bHkgYmFzZWQgb24gc3VuIGpkaworMS40LjIuICBKYXZhRG9jIGlzIGludGVybmFsIChJIGJlbGlldmUpIHNvIHlvdSBuZWVkIGEgcmVmZXJlbmNlIGp2bQorZnJvbSBTdW4gdG8gY29tcGlsZSB0aGUgdG9vbCwgYnV0IGl0IGNhbiBiZSBydW4gYWdhaW5zdCBhbnkgMS40IEpESworKGF0IGxlYXN0LCB0aG9zZSBmcm9tIFN1bikuICBJbnN0cnVjdGlvbnMgaW4gdGhlIHNvdXJjZSBmaWxlIHNob3cgaG93CitpdCBjYW4gYmUgaW52b2tlZC4KKworR2F0aGVyQVBJRGF0YSBzaG91bGQgYmUgcGFzc2VkIGFsbCB0aGUgcGFja2FnZXMgdGhhdCBuZWVkIHJlcG9ydGluZy4KK0N1cnJlbnRseSwgcHVibGljIGFwaSBpcyBvbmx5IGluIHRoZSBsYW5nLCBtYXRoLCB0ZXh0LCBhbmQgdXRpbAorc3VicGFja2FnZXMgb2YgY29tLmlibS5pY3UuCisKKworUmVwb3J0QVBJIAorCitSZXBvcnRBUEkgdGFrZXMgdHdvIGFwaSBmaWxlcyBnZW5lcmF0ZWQgYnkgR2F0aGVyQVBJRGF0YSBhbmQgcmVwb3J0cworb24gcmVtb3ZhbHMsIGNoYW5nZXMsIGFuZCBhZGRpdGlvbnMgdG8gdGhlIEFQSS4gIEl0IGRvZXMgdGhpcyBieQorY29tcGFyaW5nIHRoZSBBUEkgaW5mb3JtYXRpb24gaW4gdGhlIHR3byBBUEkgZmlsZXMuICBXaGVuIG5ldyBjbGFzc2VzCithcmUgYWRkZWQsIG9ubHkgdGhlIGNsYXNzIGlzIGxpc3RlZCwgbm90IGl0cyBlbnRpcmUgQVBJLCBhbmQgc2ltaWxhcmx5Cit3aGVuIGEgY2xhc3MgaXMgZGVsZXRlZC4gIFdoZW4gQVBJcyB3aXRoIHRoZSBzYW1lIG5hbWUgYW5kIHNpZ25hdHVyZQorYXJlIGNoYW5nZWQgKHZpc2liaWxpdHksIHN0YXR1cywgaW5oZXJpdGFuY2UpIHRoZXNlIGNoYW5nZXMgYXJlIGxpc3RlZAorYnkgc2hvd2luZyB0aGUgb2xkIGFuZCBuZXcgdmVyc2lvbnMgb2YgdGhlIEFQSS4KKworUmVwb3J0QVBJIGlzIG5vdCBwYXJ0aWN1bGFybHkgc21hcnQsIGFuZCBpbiBwYXJ0aWN1bGFyLCBkb2VzIG5vdCBrbm93CithYm91dCBpbmhlcml0ZWQgQVBJLiAgU28gZm9yIGV4YW1wbGUsIG1vdmluZyBwdWJsaWMgQVBJIGZyb20gYSBjbGFzcwordG8gYSBiYXNlIGNsYXNzIGlzIHJlcG9ydGVkIGFzIGEgZGVsZXRpb24gb2YgQVBJIGZyb20gdGhlIG9yaWdpbmFsCitjbGFzcywgZXZlbiB0aG91Z2ggdGhlIGVmZmVjdGl2ZSBBUEkgb24gdGhlIG9yaWdpbmFsIGNsYXNzIGlzCit1bmNoYW5nZWQgYnkgdGhpcy4KKworUmVwb3J0QVBJIGFsc28gZG9lcyBub3Qga25vdyBhYm91dCBKYXZhIGNsYXNzIGZpbGVzLCBzbyBmb3IgZXhhbXBsZSBpdAorY2Fubm90IGJlIHVzZWQgdG8gY29tcGFyZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXIgYWdhaW5zdAoramF2YS5sYW5nLkNoYXJhY3Rlci4gIFRoaXMgbWlnaHQgYmUgcHJvdmlkZWQgaW4gYSBsYXRlciByZWxlYXNlLgorCitGb3IgdGhlc2UgcmVhc29ucywgaW4gZ2VuZXJhbCBpdCBpcyBiZXN0IHRvIGNvbXBhcmUgdHdvIHN1Y2Nlc3NpdmUKK3ZlcnNpb25zIG9mIElDVTRKIGFnYWluc3QgZWFjaCBvdGhlciwgcmF0aGVyIHRoYW4gcmFkaWNhbGx5IGRpZmZlcmVudAordmVyc2lvbnMuICBBIGxhcmdlIG51bWJlciBvZiBjaGFuZ2VzIGNhbiBzaG93IHVwLCBtYW55IG9mIHdoaWNoIG1pZ2h0CitmYWxsIGludG8gdGhlc2UgJ2lubm9jdW91cycgY2F0ZWdvcmllcy4KKworUmVwb3J0QVBJIGNhbiBnZW5lcmF0ZSBlaXRoZXIgcGxhaW4gdGV4dCBvciBodG1sIHJlcG9ydHMuICBTaW5jZSBpdAorb25seSByZXF1aXJlcyB0aGUgZGF0YSBmaWxlcyBhbmQgZG9lcyBub3QgcmVseSBvbiBKYXZhRG9jLCBpdCBpcyBtb3JlCitzdHJhaWdodGZvcndhcmQgdG8gaW52b2tlLgorCitSZXBvcnRBUEkgdXNlcyB0aGUgZmlsZSBleHRlbnNpb24gdG8gZGV0ZXJtaW5lIGhvdyB0byB1bmNvbXByZXNzIHRoZQorYXBpIGRhdGEgZmlsZXMuICBJdCBleHBlY3RzICcuemlwJyBmb3IgZmlsZXMgdGhhdCBoYXZlIGJlZW4gY29tcHJlc3NlZAordXNpbmcgemlwLCBhbmQgJy5neicgZm9yIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGNvbXByZXNzZWQgdXNpbmcgZ3ppcC4KK1RoZSBHYXRoZXJBUElEYXRhIHV0aWxpdHkgYXV0b21hdGljYWxseSBhcHBlbmRzIHRoZXNlIGV4dGVuc2lvbnMgd2hlbgorY29tcHJlc3Npb24gaXMgdXNlZC4KKworQVBJIERhdGEgRmlsZXMKKworQVBJIERhdGEgZmlsZXMgZm9yIElDVTRKIDIuOCBhbmQgMy4wIGFyZSBpbiB0aGlzIGRpcmVjdG9yeS4gIFRoZQoraW50ZW50IGlzIHRvIHN0b3JlIGRhdGEgZmlsZXMgZm9yIGVhY2ggcmVsZWFzZSB2ZXJzaW9uIG9mIElDVTRKLCB0bworZmFjaWxpdGF0ZSBjb21wYXJpc29uIHVzaW5nIHRoZSBSZXBvcnRBUEkgdG9vbC4gIE9mIGNvdXJzZSwgdGhleSBjYW4KK2Fsd2F5cyBiZSByZWdlbmVyYXRlZCB1c2luZyB0aGUgR2VuZXJhdGVBUEkgYW5kIHRoZSBzb3VyY2VzIG9mIGEKK3BhcnRpY3VsYXIgSUNVNEogcmVsZWFzZS4KKworVGhlIGZvcm1hdCBvZiB0aGUgQVBJIGRhdGEgZmlsZSBpcyBzdHJhaWdodGZvcndhcmQuICBUaGUgZmlyc3QgbGluZSBvZgordGhlIGZpbGUgaXMgdGhlIGhlYWRlciwgc3VjY2Vzc2l2ZSBsaW5lcyBhcmUgdGhlIGFwaSBpbmZvcm1hdGlvbi4KK0VhY2ggbGluZSBjb25zaXN0cyBvZiBhIG51bWJlciBvZiB0b2tlbnMsIGVhY2ggZm9sbG93ZWQgYnkgYQorc2VtaS1jb2xvbiAoaW5jdWRpbmcgdGhlIGxhc3QgdG9rZW4gb24gdGhlIGxpbmUpLgorCitUaGUgaGVhZGVyIGxpbmUgY29udGFpbnMgdGhlIHZlcnNpb24gbnVtYmVyLCB0aGUgJ25hbWUnIG9mIHRoZSB2ZXJzaW9uCitvZiBJQ1U0SiByZXByZXNlbnRlZCBieSB0aGUgZmlsZSwgYW5kIGEgJ2Jhc2UgZGlyZWN0b3J5JyBmaWVsZAorKGN1cnJlbnRseSBub3QgZnVsbHkgaW1wbGVtZW50ZWQpLgorCitUaGUgZm9sbG93aW5nIGxpbmVzIGNvbnRhaW4gZGF0YSBnZW5lcmF0ZWQgYnkgdGhlIEFQSUluZm8gY2xhc3MsIG9uZQorbGluZSBwZXIgY2xhc3Mgb3IgbWV0aG9kLiAgVGhlIHRva2VucyBhcmUgc3RhdHVzLCB2aXNpYmlsaXR5LCBzdGF0aWMsCitmaW5hbCwgc3luY2hyb25pemVkLCBhYnN0cmFjdCwgdHlwZSwgcGFja2FnZSwgY29udGFpbmluZyBjbGFzcywgbmFtZSwKK2FuZCAnc2lnbmF0dXJlJyAod2hpY2ggdmFyaWVzIGJ5IHRoZSB0eXBlIG9mIG9iamVjdCkuICBGb3IgY2xhc3NlcywKK3RoZSAnc2lnbmF0dXJlJyBpcyB0aGUgaW1tZWRpYXRlIGluaGVyaXRhbmNlIG9mIHRoZSBjbGFzcy4gIEZvcgorZmllbGRzLCB0aGUgJ3NpZ25hdHVyZScgaXMgdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiAgRm9yIG1ldGhvZHMsIHRoZQorJ3NpZ25hdHVyZScgaXMgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZS4gQWxsIGZpZWxkcyBhcmUgYWx3YXlzIHByZXNlbnQuCisKK0ZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIEFQSUluZm8uamF2YS4KKworLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvUmVwb3J0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SZXBvcnRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTE1NmYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvUmVwb3J0QVBJLmphdmEKQEAgLTAsMCArMSw0ODYgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBDb21wYXJlIHR3byBBUEkgZmlsZXMgKGdlbmVyYXRlZCBieSBHYXRoZXJBUElEYXRhKSBhbmQgZ2VuZXJhdGUgYSByZXBvcnQKKyAqIG9uIHRoZSBkaWZmZXJlbmNlcy4KKyAqCisgKiBTYW1wbGUgaW52b2NhdGlvbjoKKyAqIGphdmEgLW9sZDogaWN1NGoyOC5hcGkuemlwIC1uZXc6IGljdTRqMzAuYXBpIC1odG1sIC1vdXQ6IGljdTRqX2NvbXBhcmVfMjhfMzAuaHRtbAorICoKKyAqIFRPRE86CisgKiAtIG1ha2UgJ2NoYW5nZWQgYXBpcycgc21hcnRlciAtIGRldGVjdCBtZXRob2QgcGFyYW1ldGVyIG9yIHJldHVybiB0eXBlIGNoYW5nZQorICogICBmb3IgdGhpcywgdGhlIHNlcXVlbnRpYWwgc2VhcmNoIHRocm91Z2ggbWV0aG9kcyBvcmRlcmVkIGJ5IHNpZ25hdHVyZSB3b24ndCBkby4KKyAqICAgICBXZSBuZWVkIHRvIGdhdGhlciBhbGwgYWRkZWQgYW5kIHJlbW92ZWQgb3ZlcmxvYWRzIGZvciBhIG1ldGhvZCwgYW5kIHRoZW4KKyAqICAgICBjb21wYXJlIGFsbCBhZGRlZCBhZ2FpbnN0IGFsbCByZW1vdmVkIGluIG9yZGVyIHRvIGlkZW50aWZ5IHRoaXMga2luZCBvZgorICogICAgIGNoYW5nZS4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS50ZXh0Lio7CisKK3B1YmxpYyBjbGFzcyBSZXBvcnRBUEkgeworICAgIEFQSURhdGEgb2xkRGF0YTsKKyAgICBBUElEYXRhIG5ld0RhdGE7CisgICAgYm9vbGVhbiBodG1sOworICAgIFN0cmluZyBvdXRwdXRGaWxlOworCisgICAgVHJlZVNldCBhZGRlZDsKKyAgICBUcmVlU2V0IHJlbW92ZWQ7CisgICAgVHJlZVNldCBwcm9tb3RlZDsKKyAgICBUcmVlU2V0IG9ic29sZXRlZDsKKyAgICBBcnJheUxpc3QgY2hhbmdlZDsKKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBEZWx0YUluZm8gZXh0ZW5kcyBBUElJbmZvIHsKKyAgICAgICAgQVBJSW5mbyBhZGRlZDsKKyAgICAgICAgQVBJSW5mbyByZW1vdmVkOworCisgICAgICAgIERlbHRhSW5mbyhBUElJbmZvIGFkZGVkLCBBUElJbmZvIHJlbW92ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkZWQgPSBhZGRlZDsKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlZCA9IHJlbW92ZWQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFZhbChpbnQgdHlwKSB7CisgICAgICAgICAgICByZXR1cm4gYWRkZWQuZ2V0VmFsKHR5cCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChpbnQgdHlwLCBib29sZWFuIGJyaWVmKSB7CisgICAgICAgICAgICByZXR1cm4gYWRkZWQuZ2V0KHR5cCwgYnJpZWYpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcHJpbnQoUHJpbnRXcml0ZXIgcHcsIGJvb2xlYW4gZGV0YWlsLCBib29sZWFuIGh0bWwpIHsKKyAgICAgICAgICAgIHB3LnByaW50KCIgICAgIik7CisgICAgICAgICAgICByZW1vdmVkLnByaW50KHB3LCBkZXRhaWwsIGh0bWwpOworICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L2JyPiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIi0tPiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFkZGVkLnByaW50KHB3LCBkZXRhaWwsIGh0bWwpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmcgb2xkRmlsZSA9IG51bGw7CisgICAgICAgIFN0cmluZyBuZXdGaWxlID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIG91dEZpbGUgPSBudWxsOworICAgICAgICBib29sZWFuIGh0bWwgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBpbnRlcm5hbCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1vbGQ6IikpIHsKKyAgICAgICAgICAgICAgICBvbGRGaWxlID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbmV3OiIpKSB7CisgICAgICAgICAgICAgICAgbmV3RmlsZSA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW91dDoiKSkgeworICAgICAgICAgICAgICAgIG91dEZpbGUgPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1odG1sIikpIHsKKyAgICAgICAgICAgICAgICBodG1sID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWludGVybmFsIikpIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBuZXcgUmVwb3J0QVBJKG9sZEZpbGUsIG5ld0ZpbGUsIGludGVybmFsKS53cml0ZVJlcG9ydChvdXRGaWxlLCBodG1sLCBpbnRlcm5hbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgIHdoaWxlIHRoZSBib3RoIGFyZSBtZXRob2RzIGFuZCB0aGUgY2xhc3MgYW5kIG1ldGhvZCBuYW1lcyBhcmUgdGhlIHNhbWUsIGNvbGxlY3QKKyAgICAgIG92ZXJsb2Fkcy4gIHdoZW4geW91IGhpdCBhIG5ldyBtZXRob2Qgb3IgY2xhc3MsIGNvbXBhcmUgdGhlIG92ZXJsb2FkcworICAgICAgbG9va2luZyBmb3IgdGhlIHNhbWUgIyBvZiBwYXJhbXMgYW5kIHNpbXBsZSBwYXJhbSBjaGFuZ2VzLiAgaWRlYWxseQorICAgICAgdGhlcmUgYXJlIGp1c3QgYSBmZXcuCisKKyAgICAgIFN0cmluZyBvbGRBID0gbnVsbDsKKyAgICAgIFN0cmluZyBvbGRSID0gbnVsbDsKKyAgICAgIGlmICghYS5pc01ldGhvZCgpKSB7CisgICAgICByZW1vdmUgYW5kIGNvbnRpbnVlCisgICAgICB9CisgICAgICBTdHJpbmcgYW0gPSBhLmdldENsYXNzTmFtZSgpICsgIi4iICsgYS5nZXROYW1lKCk7CisgICAgICBTdHJpbmcgcm0gPSByLmdldENsYXNzTmFtZSgpICsgIi4iICsgci5nZXROYW1lKCk7CisgICAgICBpbnQgY29tcCA9IGFtLmNvbXBhcmUocm0pOworICAgICAgaWYgKGNvbXAgPT0gMCAmJiBhLmlzTWV0aG9kKCkgJiYgci5pc01ldGhvZCgpKQorCisgICAgKi8KKworICAgIFJlcG9ydEFQSShTdHJpbmcgb2xkRmlsZSwgU3RyaW5nIG5ld0ZpbGUsIGJvb2xlYW4gaW50ZXJuYWwpIHsKKyAgICAgICAgdGhpcyhBUElEYXRhLnJlYWQob2xkRmlsZSwgaW50ZXJuYWwpLCBBUElEYXRhLnJlYWQobmV3RmlsZSwgaW50ZXJuYWwpKTsKKyAgICB9CisKKyAgICBSZXBvcnRBUEkoQVBJRGF0YSBvbGREYXRhLCBBUElEYXRhIG5ld0RhdGEpIHsKKyAgICAgICAgdGhpcy5vbGREYXRhID0gb2xkRGF0YTsKKyAgICAgICAgdGhpcy5uZXdEYXRhID0gbmV3RGF0YTsKKworICAgICAgICByZW1vdmVkID0gKFRyZWVTZXQpb2xkRGF0YS5zZXQuY2xvbmUoKTsKKyAgICAgICAgcmVtb3ZlZC5yZW1vdmVBbGwobmV3RGF0YS5zZXQpOworCisgICAgICAgIGFkZGVkID0gKFRyZWVTZXQpbmV3RGF0YS5zZXQuY2xvbmUoKTsKKyAgICAgICAgYWRkZWQucmVtb3ZlQWxsKG9sZERhdGEuc2V0KTsKKworICAgICAgICBjaGFuZ2VkID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBJdGVyYXRvciBhaSA9IGFkZGVkLml0ZXJhdG9yKCk7CisgICAgICAgIEl0ZXJhdG9yIHJpID0gcmVtb3ZlZC5pdGVyYXRvcigpOworICAgICAgICBDb21wYXJhdG9yIGMgPSBBUElJbmZvLmNoYW5nZWRDb21wYXJhdG9yKCk7CisKKyAgICAgICAgQXJyYXlMaXN0IGFtcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgQXJyYXlMaXN0IHJtcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0cHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisKKyAgICAgICAgQVBJSW5mbyBhID0gbnVsbCwgciA9IG51bGw7CisgICAgICAgIHdoaWxlICgoYSAhPSBudWxsIHx8IGFpLmhhc05leHQoKSkgJiYgKHIgIT0gbnVsbCB8fCByaS5oYXNOZXh0KCkpKSB7CisgICAgICAgICAgICBpZiAoYSA9PSBudWxsKSBhID0gKEFQSUluZm8pYWkubmV4dCgpOworICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgciA9IChBUElJbmZvKXJpLm5leHQoKTsKKworICAgICAgICAgICAgU3RyaW5nIGFtID0gYS5nZXRDbGFzc05hbWUoKSArICIuIiArIGEuZ2V0TmFtZSgpOworICAgICAgICAgICAgU3RyaW5nIHJtID0gci5nZXRDbGFzc05hbWUoKSArICIuIiArIHIuZ2V0TmFtZSgpOworICAgICAgICAgICAgaW50IGNvbXAgPSBhbS5jb21wYXJlVG8ocm0pOworICAgICAgICAgICAgaWYgKGNvbXAgPT0gMCAmJiBhLmlzTWV0aG9kKCkgJiYgci5pc01ldGhvZCgpKSB7IC8vIGNvbGxlY3Qgb3ZlcmxvYWRzCisgICAgICAgICAgICAgICAgYW1zLmFkZChhKTsgYSA9IG51bGw7CisgICAgICAgICAgICAgICAgcm1zLmFkZChyKTsgciA9IG51bGw7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghYW1zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIHNpbXBsZXN0IGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICBpZiAoYW1zLnNpemUoKSA9PSAxICYmIHJtcy5zaXplKCkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkLmFkZChuZXcgRGVsdGFJbmZvKChBUElJbmZvKWFtcy5nZXQoMCksIChBUElJbmZvKXJtcy5nZXQoMCkpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBkYW5nLCB3aGF0IHRvIGRvIG5vdz8KKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogbW9kaWZ5IGRlbHRhaW5mbyB0byBkZWFsIHdpdGggbGlzdHMgb2YgYWRkZWQgYW5kIHJlbW92ZWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYW1zLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcm1zLmNsZWFyKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjLmNvbXBhcmUoYSwgcik7CisgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgIGEgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPiAwKSB7CisgICAgICAgICAgICAgICAgciA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNoYW5nZWQuYWRkKG5ldyBEZWx0YUluZm8oYSwgcikpOworICAgICAgICAgICAgICAgIGEgPSBudWxsOworICAgICAgICAgICAgICAgIHIgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbm93IGNsZWFuIHVwIGFkZGVkIGFuZCByZW1vdmVkIGJ5IGNsZWFuaW5nIG91dCB0aGUgY2hhbmdlZCBtZW1iZXJzCisgICAgICAgIEl0ZXJhdG9yIGNpID0gY2hhbmdlZC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoY2kuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBEZWx0YUluZm8gZGkgPSAoRGVsdGFJbmZvKWNpLm5leHQoKTsKKyAgICAgICAgICAgIGFkZGVkLnJlbW92ZShkaS5hZGRlZCk7CisgICAgICAgICAgICByZW1vdmVkLnJlbW92ZShkaS5yZW1vdmVkKTsKKyAgICAgICAgfQorCisgICAgICAgIFNldCB0ZW1wQWRkZWQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICB0ZW1wQWRkZWQuYWRkQWxsKG5ld0RhdGEuc2V0KTsKKyAgICAgICAgdGVtcEFkZGVkLnJlbW92ZUFsbChyZW1vdmVkKTsKKyAgICAgICAgVHJlZVNldCBjaGFuZ2VkQWRkZWQgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgICAgICBjaGFuZ2VkQWRkZWQuYWRkQWxsKHRlbXBBZGRlZCk7CisKKyAgICAgICAgU2V0IHRlbXBSZW1vdmVkID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgdGVtcFJlbW92ZWQuYWRkQWxsKG9sZERhdGEuc2V0KTsKKyAgICAgICAgdGVtcFJlbW92ZWQucmVtb3ZlQWxsKGFkZGVkKTsKKyAgICAgICAgVHJlZVNldCBjaGFuZ2VkUmVtb3ZlZCA9IG5ldyBUcmVlU2V0KEFQSUluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgICAgIGNoYW5nZWRSZW1vdmVkLmFkZEFsbCh0ZW1wUmVtb3ZlZCk7CisKKyAgICAgICAgcHJvbW90ZWQgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgICAgICBvYnNvbGV0ZWQgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgICAgICBhaSA9IGNoYW5nZWRBZGRlZC5pdGVyYXRvcigpOworICAgICAgICByaSA9IGNoYW5nZWRSZW1vdmVkLml0ZXJhdG9yKCk7CisgICAgICAgIGEgPSByID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKChhICE9IG51bGwgfHwgYWkuaGFzTmV4dCgpKSAmJiAociAhPSBudWxsIHx8IHJpLmhhc05leHQoKSkpIHsKKyAgICAgICAgICAgIGlmIChhID09IG51bGwpIGEgPSAoQVBJSW5mbylhaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAociA9PSBudWxsKSByID0gKEFQSUluZm8pcmkubmV4dCgpOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGMuY29tcGFyZShhLCByKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgICAgICAgICAgYSA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA+IDApIHsKKyAgICAgICAgICAgICAgICByID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGNoYW5nZSA9IHN0YXR1c0NoYW5nZShhLCByKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hhbmdlID4gMCkgeworICAgICAgICAgICAgICAgICAgICBwcm9tb3RlZC5hZGQoYSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG9ic29sZXRlZC5hZGQoYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGEgPSBudWxsOworICAgICAgICAgICAgICAgIHIgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYWRkZWQgPSBzdHJpcEFuZFJlc29ydChhZGRlZCk7CisgICAgICAgIHJlbW92ZWQgPSBzdHJpcEFuZFJlc29ydChyZW1vdmVkKTsKKyAgICAgICAgcHJvbW90ZWQgPSBzdHJpcEFuZFJlc29ydChwcm9tb3RlZCk7CisgICAgICAgIG9ic29sZXRlZCA9IHN0cmlwQW5kUmVzb3J0KG9ic29sZXRlZCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgc3RhdHVzQ2hhbmdlKEFQSUluZm8gbGhzLCBBUElJbmZvIHJocykgeyAvLyBuZXcuIG9sZAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEFQSUluZm8uTlVNX1RZUEVTOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChsaHMuZ2V0KGksIHRydWUpLmVxdWFscyhyaHMuZ2V0KGksIHRydWUpKSA9PSAoaSA9PSBBUElJbmZvLlNUQSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgbHN0YXR1cyA9IGxocy5nZXRWYWwoQVBJSW5mby5TVEEpOworICAgICAgICBpZiAobHN0YXR1cyA9PSBBUElJbmZvLlNUQV9PQlNPTEVURSB8fCBsc3RhdHVzID09IEFQSUluZm8uU1RBX0RFUFJFQ0FURUQgfHwgbHN0YXR1cyA9PSBBUElJbmZvLlNUQV9JTlRFUk5BTCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiB3cml0ZVJlcG9ydChTdHJpbmcgb3V0RmlsZSwgYm9vbGVhbiBodG1sLCBib29sZWFuIGludGVybmFsKSB7CisgICAgICAgIE91dHB1dFN0cmVhbSBvcyA9IFN5c3RlbS5vdXQ7CisgICAgICAgIGlmIChvdXRGaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcHcgPSBuZXcgUHJpbnRXcml0ZXIobmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3MsICJVVEYtOCIpKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOyAvLyBVVEYtOCBzaG91bGQgYWx3YXlzIGJlIHN1cHBvcnRlZAorICAgICAgICB9CisKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eSIpOworICAgICAgICBTdHJpbmcgeWVhciA9IGZtdC5mb3JtYXQobmV3IERhdGUoKSk7CisgICAgICAgIFN0cmluZyB0aXRsZSA9ICJJQ1U0SiBBUEkgQ29tcGFyaXNvbjogIiArIG9sZERhdGEubmFtZSArICIgd2l0aCAiICsgbmV3RGF0YS5uYW1lOworICAgICAgICBTdHJpbmcgaW5mbyA9ICJDb250ZW50cyBnZW5lcmF0ZWQgYnkgUmVwb3J0QVBJIHRvb2wgb24gIiArIG5ldyBEYXRlKCkudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKEMpICIgKyB5ZWFyICsgIiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTlwiPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGh0bWw+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aGVhZD4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8dGl0bGU+IiArIHRpdGxlICsgIjwvdGl0bGU+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8IS0tIENvcHlyaWdodCAiICsgeWVhciArICIsIElCTSwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gLS0+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8L2hlYWQ+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8Ym9keT4iKTsKKworICAgICAgICAgICAgcHcucHJpbnRsbigiPGgxPiIgKyB0aXRsZSArICI8L2gxPiIpOworCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHIvPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGgyPlJlbW92ZWQgZnJvbSAiICsgb2xkRGF0YS5uYW1lICsiPC9oMj4iKTsKKyAgICAgICAgICAgIGlmIChyZW1vdmVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMocmVtb3ZlZCwgcHcsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPHA+KG5vIEFQSSByZW1vdmVkKTwvcD4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGhyLz4iKTsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5XaXRoZHJhd24sIERlcHJlY2F0ZWQsIG9yIE9ic29sZXRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIjwvaDI+Iik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5EZXByZWNhdGVkIG9yIE9ic29sZXRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIjwvaDI+Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2Jzb2xldGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMob2Jzb2xldGVkLCBwdywgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8cD4obm8gQVBJIG9ic29sZXRlZCk8L3A+Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoci8+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDI+Q2hhbmdlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiAob2xkLCBuZXcpPC9oMj4iKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMoY2hhbmdlZCwgcHcsIHRydWUsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8cD4obm8gQVBJIGNoYW5nZWQpPC9wPiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHIvPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGgyPlByb21vdGVkIHRvIHN0YWJsZSBpbiAiICsgbmV3RGF0YS5uYW1lICsgIjwvaDI+Iik7CisgICAgICAgICAgICBpZiAocHJvbW90ZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhwcm9tb3RlZCwgcHcsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPHA+KG5vIEFQSSBwcm9tb3RlZCk8L3A+Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoci8+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDI+QWRkZWQgaW4gIiArIG5ld0RhdGEubmFtZSArICI8L2gyPiIpOworICAgICAgICAgICAgaWYgKGFkZGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMoYWRkZWQsIHB3LCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxwPihubyBBUEkgYWRkZWQpPC9wPiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHIvPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPHA+PGk+PGZvbnQgc2l6ZT1cIi0xXCI+IiArIGluZm8gKyAiPGJyLz4iICsgY29weXJpZ2h0ICsgIjwvZm9udD48L2k+PC9wPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPC9ib2R5PiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPC9odG1sPiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHcucHJpbnRsbih0aXRsZSk7CisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBSZW1vdmVkIGZyb20gIiArIG9sZERhdGEubmFtZSArICIgPT09Iik7CisgICAgICAgICAgICBpZiAocmVtb3ZlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHJlbW92ZWQsIHB3LCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIobm8gQVBJIHJlbW92ZWQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBXaXRoZHJhd24sIERlcHJlY2F0ZWQsIG9yIE9ic29sZXRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPT09IERlcHJlY2F0ZWQgb3IgT2Jzb2xldGVkIGluICIgKyBuZXdEYXRhLm5hbWUgKyAiID09PSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9ic29sZXRlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKG9ic29sZXRlZCwgcHcsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIihubyBBUEkgb2Jzb2xldGVkKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI9PT0gQ2hhbmdlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiAob2xkLCBuZXcpID09PSIpOworICAgICAgICAgICAgaWYgKGNoYW5nZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhjaGFuZ2VkLCBwdywgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIobm8gQVBJIGNoYW5nZWQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBQcm9tb3RlZCB0byBzdGFibGUgaW4gIiArIG5ld0RhdGEubmFtZSArICIgPT09Iik7CisgICAgICAgICAgICBpZiAocHJvbW90ZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhwcm9tb3RlZCwgcHcsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIihubyBBUEkgcHJvbW90ZWQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBBZGRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgIGlmIChhZGRlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKGFkZGVkLCBwdywgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiKG5vIEFQSSBhZGRlZCkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgcHcucHJpbnRsbihpbmZvKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oY29weXJpZ2h0KTsKKyAgICAgICAgfQorICAgICAgICBwdy5jbG9zZSgpOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHByaW50UmVzdWx0cyhDb2xsZWN0aW9uIGMsIFByaW50V3JpdGVyIHB3LCBib29sZWFuIGh0bWwsIGJvb2xlYW4gaXNDaGFuZ2VkQVBJcykgeworICAgICAgICBJdGVyYXRvciBpdGVyID0gYy5pdGVyYXRvcigpOworICAgICAgICBTdHJpbmcgcGFjayA9IG51bGw7CisgICAgICAgIFN0cmluZyBjbGFzID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBBUElJbmZvIGluZm8gPSAoQVBJSW5mbylpdGVyLm5leHQoKTsKKworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lID0gaW5mby5nZXRQYWNrYWdlTmFtZSgpOworICAgICAgICAgICAgaWYgKCFwYWNrYWdlTmFtZS5lcXVhbHMocGFjaykpIHsKKyAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2xhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L3VsPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChwYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8aDM+UGFja2FnZSAiICsgcGFja2FnZU5hbWUgKyAiPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnQoIjx1bD4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAocGFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJQYWNrYWdlICIgKyBwYWNrYWdlTmFtZSArICI6Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKworICAgICAgICAgICAgICAgIHBhY2sgPSBwYWNrYWdlTmFtZTsKKyAgICAgICAgICAgICAgICBjbGFzID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFpbmZvLmlzQ2xhc3MoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBpbmZvLmdldENsYXNzTmFtZSgpOworICAgICAgICAgICAgICAgIGlmICghY2xhc3NOYW1lLmVxdWFscyhjbGFzKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsYXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2xhcyA9IGNsYXNzTmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIjxsaT4iKTsKKyAgICAgICAgICAgICAgICBpbmZvLnByaW50KHB3LCBpc0NoYW5nZWRBUElzLCBodG1sKTsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L2xpPiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbmZvLnByaW50bG4ocHcsIGlzQ2hhbmdlZEFQSXMsIGh0bWwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgIGlmIChjbGFzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L3VsPiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFRyZWVTZXQgc3RyaXBBbmRSZXNvcnQoVHJlZVNldCB0KSB7CisgICAgICAgIHN0cmlwQ2xhc3NJbmZvKHQpOworICAgICAgICBUcmVlU2V0IHIgPSBuZXcgVHJlZVNldChBUElJbmZvLmNsYXNzRmlyc3RDb21wYXJhdG9yKCkpOworICAgICAgICByLmFkZEFsbCh0KTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzdHJpcENsYXNzSW5mbyhDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgLy8gYyBpcyBzb3J0ZWQgd2l0aCBjbGFzcyBpbmZvIGZpcnN0CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZyBjbmFtZSA9IG51bGw7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgQVBJSW5mbyBpbmZvID0gKEFQSUluZm8paXRlci5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gaW5mby5nZXRDbGFzc05hbWUoKTsKKyAgICAgICAgICAgIGlmIChjbmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGNuYW1lLmVxdWFscyhjbGFzc05hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjbmFtZSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5mby5pc0NsYXNzKCkpIHsKKyAgICAgICAgICAgICAgICBjbmFtZSA9IGluZm8uZ2V0TmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvU3dhdERlcHJlY2F0ZWQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL1N3YXREZXByZWNhdGVkLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZlYmU2MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL1N3YXREZXByZWNhdGVkLmphdmEKQEAgLTAsMCArMSwzMzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK3B1YmxpYyBjbGFzcyBTd2F0RGVwcmVjYXRlZCB7CisgICAgcHJpdmF0ZSBGaWxlIHNyY0ZpbGU7CisgICAgcHJpdmF0ZSBGaWxlIGRzdEZpbGU7CisgICAgcHJpdmF0ZSBpbnQgbWF4TGVuZ3RoID0gODU7CisgICAgcHJpdmF0ZSBTdHJpbmcgc3JjUHJlZml4OworICAgIHByaXZhdGUgU3RyaW5nIGRzdFByZWZpeDsKKyAgICBwcml2YXRlIFN0cmluZyBzcmNUYWc7CisgICAgcHJpdmF0ZSBTdHJpbmcgdHJnVGFnOworICAgIHByaXZhdGUgYm9vbGVhbiBvdmVyd3JpdGU7CisgICAgcHJpdmF0ZSBpbnQgdmVyYm9zaXR5OworICAgIHByaXZhdGUgaW50IGNjOyAvLyBjaGFuZ2VkIGZpbGUgY291bnQKKyAgICBwcml2YXRlIGJvb2xlYW4gaW5QbGFjZTsKKyAgICBwcml2YXRlIFN0cmluZyBjb3B5WWVhcjsKKworICAgIHByaXZhdGUgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBGaWxlbmFtZUZpbHRlciBmZiA9IG5ldyBGaWxlbmFtZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGRpciwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKG5ldyBGaWxlKGRpciwgbmFtZSkuaXNEaXJlY3RvcnkoKSAmJiAhIkNWUyIuZXF1YWxzKG5hbWUpKSB8fAorICAgICAgICAgICAgICAgICAgICAoIW5hbWUuZXF1YWxzKCJTd2F0RGVwcmVjYXRlZC5qYXZhIikgJiYgbmFtZS5lbmRzV2l0aCgiLmphdmEiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFN0cmluZyBzcmMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIik7CisgICAgICAgIFN0cmluZyBkc3QgPSBzcmM7CisgICAgICAgIGJvb2xlYW4gZGVwID0gdHJ1ZTsKKyAgICAgICAgYm9vbGVhbiBvdnIgPSBmYWxzZTsKKyAgICAgICAgaW50IHZyYiA9IDE7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1zcmMiKSkgeworICAgICAgICAgICAgICAgICAgICBzcmMgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kc3QiKSkgeworICAgICAgICAgICAgICAgICAgICBkc3QgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kZXAiKSkgeworICAgICAgICAgICAgICAgICAgICBkZXAgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLXByb3YiKSkgeworICAgICAgICAgICAgICAgICAgICBkZXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLW92ZXJ3cml0ZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIG92ciA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1zaWxlbnQiKSkgeyAvLyBubyBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgdnJiID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLXF1aWV0IikpIHsgLy8gb3V0cHV0IHBhcmFtZXRlcnMgYW5kIGNvdW50IG9mIGNoYW5nZWQgZmlsZXMgKGRlZmF1bHQpCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDE7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmcuZXF1YWxzKCItdmVyYm9zZSIpKSB7IC8vIG91dHB1dCBuYW1lcyBvZiBtb2RpZmllZCBmaWxlcworICAgICAgICAgICAgICAgICAgICB2cmIgPSAyOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLW5vaXN5IikpIHsgLy8gb3V0cHV0IG5hbWVzIG9mIGZpbGVzIG5vdCBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgICB2cmIgPSAzOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLWNvcHlkZWJ1ZyIpKSB7IC8vIG91dHB1dCBjb3B5cmlnaHQgZGVidWdnaW5nCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kZWJ1ZyIpKSB7IC8vIG91dHB1dCBhbGwgZGVidWdnaW5nCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbmV3IFN3YXREZXByZWNhdGVkKHNyYywgZHN0LCBkZXAsIG92ciwgdnJiKS5ydW4oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3dhdERlcHJlY2F0ZWQoU3RyaW5nIHNyYywgU3RyaW5nIGRzdCwgYm9vbGVhbiBkZXAsIGJvb2xlYW4gb3ZlcndyaXRlLCBpbnQgdmVyYm9zaXR5KSB7CisgICAgICAgIHRoaXMuc3JjRmlsZSA9IG5ldyBGaWxlKHNyYyk7CisgICAgICAgIHRoaXMuZHN0RmlsZSA9IG5ldyBGaWxlKGRzdCk7CisgICAgICAgIHRoaXMub3ZlcndyaXRlID0gb3ZlcndyaXRlOworICAgICAgICB0aGlzLnZlcmJvc2l0eSA9IHZlcmJvc2l0eTsKKyAgICAgICAgdGhpcy5jb3B5WWVhciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5IikuZm9ybWF0KG5ldyBEYXRlKCkpOworCisgICAgICAgIHRoaXMuc3JjVGFnID0gIkBkZXByZWNhdGVkIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4iOworICAgICAgICB0aGlzLnRyZ1RhZyA9ICJAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iOworICAgICAgICBpZiAoIWRlcCkgeworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBzcmNUYWc7CisgICAgICAgICAgICBzcmNUYWcgPSB0cmdUYWc7CisgICAgICAgICAgICB0cmdUYWcgPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0aGlzLnNyY1ByZWZpeCA9IHNyY0ZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpOworICAgICAgICAgICAgdGhpcy5kc3RQcmVmaXggPSBkc3RGaWxlLmdldENhbm9uaWNhbFBhdGgoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5pblBsYWNlID0gc3JjUHJlZml4LmVxdWFscyhkc3RQcmVmaXgpOworICAgICAgICB0aGlzLmNjID0gMDsKKworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDEpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oInJlcGxhY2luZyAnIiArIHNyY1RhZyArICInIik7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgICAgIHdpdGggJyIgKyB0cmdUYWcgKyAiJyIpOworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiICAgICBzb3VyY2U6ICciICsgc3JjUHJlZml4ICsgIiciKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oImRlc3RpbmF0aW9uOiAnIiArIGRzdFByZWZpeCArICInIik7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgIG92ZXJ3cml0ZTogIiArIG92ZXJ3cml0ZSk7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgIHZlcmJvc2l0eTogIiArIHZlcmJvc2l0eSk7CisgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICBpZiAoIXNyY0ZpbGUuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJmaWxlICIgKyBzcmNGaWxlLmdldFBhdGgoKSArICIgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgIH0KKyAgICAgICAgZG9MaXN0KHNyY0ZpbGUpOworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDEpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oImNoYW5nZWQgIiArIGNjICsgIiBmaWxlKHMpIik7CisgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZG9MaXN0KEZpbGUgZmlsZSkgeworICAgICAgICBTdHJpbmdbXSBmaWxlbmFtZXMgPSBmaWxlLmxpc3QoZmYpOworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDUpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oZmlsZS5nZXRQYXRoKCkpOworICAgICAgICAgICAgZHVtcExpc3QoZmlsZW5hbWVzKTsKKyAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKGZpbGUsIGZpbGVuYW1lc1tpXSk7CisgICAgICAgICAgICBpZiAoZi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgZG9MaXN0KGYpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRmlsZShmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NGaWxlKEZpbGUgaW5GaWxlKSB7CisgICAgICAgIEZpbGUgYmFrRmlsZSA9IG51bGw7CisgICAgICAgIEZpbGUgb2xkRmlsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgaW5QYXRoID0gaW5GaWxlLmdldENhbm9uaWNhbFBhdGgoKTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gNSkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oInByb2Nlc3NGaWxlOiAiICsgaW5QYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIG91dFBhdGggPSBkc3RQcmVmaXggKyBpblBhdGguc3Vic3RyaW5nKHNyY1ByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZShvdXRQYXRoKTsKKworICAgICAgICAgICAgRmlsZSB0bXBGaWxlID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChvdXRGaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFvdmVyd3JpdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIm5vIHBlcm1pc3Npb24gdG8gb3ZlcndyaXRlIGZpbGU6ICIgKyBvdXRQYXRoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBiYWtGaWxlID0gb3V0RmlsZTsKKyAgICAgICAgICAgICAgICAgICAgdG1wRmlsZSA9IEZpbGUuY3JlYXRlVGVtcEZpbGUoaW5GaWxlLmdldE5hbWUoKSwgbnVsbCwgaW5GaWxlLmdldFBhcmVudEZpbGUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0bXBGaWxlID0gb3V0RmlsZTsKKyAgICAgICAgICAgICAgICBGaWxlIHBhcmVudCA9IHRtcEZpbGUuZ2V0UGFyZW50RmlsZSgpOworICAgICAgICAgICAgICAgIHBhcmVudC5ta2RpcnMoKTsKKyAgICAgICAgICAgICAgICB0bXBGaWxlLmNyZWF0ZU5ld0ZpbGUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHRtcFBhdGggPSB0bXBGaWxlLmdldFBhdGgoKTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gNSkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oInRtcEZpbGU6ICIgKyB0bXBQYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGluRmlsZSk7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW0gb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbSh0bXBGaWxlKTsKKworICAgICAgICAgICAgUHJpbnRTdHJlYW0gcHMgPSBuZXcgUHJpbnRTdHJlYW0ob3MpOworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKSk7CisKKyAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgaW50IG4gPSAwOworICAgICAgICAgICAgaW50IHRjID0gMDsKKyAgICAgICAgICAgIGJvb2xlYW4gZGVidWcgPSBmYWxzZTsKKyAgICAgICAgICAgIHdoaWxlIChudWxsICE9IChsaW5lID0gYnIucmVhZExpbmUoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBpbnQgdGVtcCA9IGxpbmUuaW5kZXhPZigiQGRlcHJlY2F0ZWQiKTsKKyAgICAgICAgICAgICAgICBpbnQgaXggPSBsaW5lLmluZGV4T2Yoc3JjVGFnKTsKKy8vICAgICAgICAgICAgICAgICBpZiAodGVtcCAhPSAtMSAmJiBpeCA9PSAtMSkgeworLy8gICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcgPT0gZmFsc2UpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnID0gdHJ1ZTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oImZpbGU6ICIgKyBuYW1lKTsKKy8vICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJbIiArIG4gKyAiXSAiICsgbGluZSk7CisvLyAgICAgICAgICAgICAgICAgICAgIHB3LmZsdXNoKCk7CisvLyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zaXR5ID49IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIlsiICsgbiArICJdICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLGl4KSArIHRyZ1RhZzsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICsrdGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuIDwgMjApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3dhdCBjb3B5cmlnaHRzIGluIHRoZSBmaXJzdCAyMCBsaW5lcyB3aGlsZSB3ZSdyZSBhdCBpdAorICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigib3B5cmlnaHQiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmxpbmUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPT0gNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJbIiArIG4gKyAiXSAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCItMjAwIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgaXgpICsgIi0iICsgY29weVllYXIgKyBsaW5lLnN1YnN0cmluZyhpeCs1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCItIDIwMCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGl4KSArICItIiArIGNvcHlZZWFyICsgbGluZS5zdWJzdHJpbmcoaXgrNik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigiLTE5OSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGl4KSArICItIiArIGNvcHlZZWFyICsgbGluZS5zdWJzdHJpbmcoaXgrNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZihjb3B5WWVhcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBub3RoaW5nIG5lZWRzIGNoYW5naW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCIyMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBpeCs0KSArICItIiArIGNvcHlZZWFyICsgbGluZS5zdWJzdHJpbmcoaXgrNCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigiMTk5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgaXgrNCkgKyAiLSIgKyBjb3B5WWVhciArIGxpbmUuc3Vic3RyaW5nKGl4KzQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChmYWxzZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChubGluZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2l0eSA+PSA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIiAgLS0+ICIgKyBubGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBubGluZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcy5wcmludGxuKGxpbmUpOworICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBzLmZsdXNoKCk7CisgICAgICAgICAgICBpcy5jbG9zZSgpOworICAgICAgICAgICAgb3MuY2xvc2UoKTsKKworICAgICAgICAgICAgaWYgKHRjID09IDApIHsgLy8gbm90aGluZyBjaGFuZ2VkLCBmb3JnZXQgdGhpcyBmaWxlCisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2l0eSA+PSAzKSB7CisgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIm5vIGNoYW5nZXMgaW4gZmlsZTogIiArIGluUGF0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghdG1wRmlsZS5kZWxldGUoKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigidW5hYmxlIHRvIGRlbGV0ZSB1bm5lZWRlZCB0ZW1wb3JhcnkgZmlsZTogIiArIHRtcFBhdGgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGJha0ZpbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChiYWtGaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgICAgIGJha0ZpbGUuZGVsZXRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghdG1wRmlsZS5yZW5hbWVUbyhiYWtGaWxlKSkgeworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJ3YXJuaW5nOiBjb3VsZG4ndCByZW5hbWUgdGVtcCBmaWxlIHRvOiAiICsgb3V0UGF0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRGaWxlLnNldExhc3RNb2RpZmllZChpbkZpbGUubGFzdE1vZGlmaWVkKCkpOworCisgICAgICAgICAgICBpZiAodmVyYm9zaXR5ID49IDIpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKGluUGF0aCk7CisgICAgICAgICAgICAgICAgcHcuZmx1c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgcHcuZmx1c2goKTsKKyAgICAgICAgfQorCisgICAgICAgICsrY2M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZHVtcExpc3QoU3RyaW5nW10gbmFtZXMpIHsKKyAgICAgICAgaWYgKG5hbWVzID09IG51bGwpIHsKKyAgICAgICAgICAgIHB3LnByaW50KCJudWxsIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdy5wcmludCgieyIpOworICAgICAgICAgICAgaW50IGxjID0gMDsKKyAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgIHB3LnByaW50KCIgICAgIik7CisgICAgICAgICAgICAgICAgbGMgPSA0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbmFtZXNbaV07CisgICAgICAgICAgICAgICAgaW50IG5sID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAobGMgKyBubCA+IG1heExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIHB3LnByaW50KCIgICAgIik7CisgICAgICAgICAgICAgICAgICAgIGxjID0gNDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHcucHJpbnQobmFtZSk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgbGMgKz0gbmwgKyAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdy5wcmludCgifSAiKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMjguYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGoyOC5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk1ZjUyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMjguYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojc3MmExZTUxOTViYmRjZDJhYzVmZGY3MTUzYWY3MWNhMGE5ZGQ5MzQxMThiZmJkYjE3YTQzODhjNGUzYWY2ZGEKK3NpemUgMTk1NjYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzAuYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozMC5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk5ZGIxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzAuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmQ3OWZjYWMxN2UzMjVhMDE5YTUyZmZkZmI4ZTFmZGQ4ZWNhNDA3OWZhZjA1MTQ5YTg3MTA3NTFkNzc5MzRhNzMKK3NpemUgMjA2NzIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzIuYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozMi5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA5OWMwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzIuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjUzNWUwNWY2NjI0ZjM3MmZkMjQxYjFmMmU1ZDRmZWI5MGNjZmY1ZmRhZjczMmViMGRmNTJhY2FjOWY1ZDFmMjkKK3NpemUgMjE0MTYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQuYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNC5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVjMjdkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmY4MDc4NDNhYzVmYjhiMzJhOWI3ZjEzYTg5Nzc5ZDNhYTcxMjUyMWE5YzM1ZDIzYzIzNTJiYzc4MzVlZTkwNTAKK3NpemUgMjMxMDMKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQxLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQxLmFwaS5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDcyNjE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDEuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjA0NGYyNDg4M2Y1NTM2MWJmNGQ3OGU2MzE5MWYxNjAwZDY0NDUzYjc0MDVmOTM5NzhmYmU2M2E1NzIyZmUxYjMKK3NpemUgMjMxMDYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQyLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQyLmFwaS5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2M5NzQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDIuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmY3NmY1MTRmZDEzNDRhNDIxNmIyNDAzNDVkYmYxZTkzNjI1ZTdhM2M5ZjQwYzllNzU5Mzk5NTRjMTk1MjY0NjIKK3NpemUgMjMxMzQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQzLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQzLmFwaS5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGRhZDhmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDMuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjNhZjYwYTU1YjljZGM5NDM5NTI4MzJmN2ExNDJlYWVhYzIxYzUxZDRiMTZmYjJjZjk3NzI0NDU1MzI0OGZkMDgKK3NpemUgMjMxMzIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvSU1FVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9JTUVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYxMjM1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvSU1FVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWU7CisKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YXguc3dpbmcuQm94OworaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEZpZWxkOworaW1wb3J0IGphdmF4LnN3aW5nLldpbmRvd0NvbnN0YW50czsKKworcHVibGljIGNsYXNzIElNRVRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBTdHJpbmcgc2FtcGxlVGV4dCA9ICJUaGlzIGlzIGEgc2FtcGxlXG50byBwdXQgaW50byB0aGUgZmllbGQuIjsKKyAgICBSZWN0YW5nbGUgbG9jID0gbmV3IFJlY3RhbmdsZSgxMDAsIDEwMCwgMzAwLCAzMDApOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgKytpKSB7CisgICAgICAgIEpGcmFtZSBqZiA9IG5ldyBKRnJhbWUoIlRlc3QgV2luZG93ICIgKyBpKTsKKyAgICAgICAgamYuc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9uKFdpbmRvd0NvbnN0YW50cy5ESVNQT1NFX09OX0NMT1NFKTsKKyAgICAgICAgQm94IGJveCA9IEJveC5jcmVhdGVWZXJ0aWNhbEJveCgpOworICAgICAgICBib3guYWRkKG5ldyBKVGV4dEZpZWxkKHNhbXBsZVRleHQpKTsKKyAgICAgICAgYm94LmFkZChuZXcgSlRleHRGaWVsZChzYW1wbGVUZXh0KSk7CisgICAgICAgIGpmLmdldENvbnRlbnRQYW5lKCkuYWRkKGJveCk7CisgICAgICAgIGpmLnNldEJvdW5kcyhsb2MpOworICAgICAgICAKKyAgICAgICAgamYuc2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGxvYy54ICs9IDUwOworICAgICAgICBsb2MueSArPSA1MDsKKyAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9CZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0JlbmdhbGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWJhYTQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9CZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwyMTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEJlbmdhbGlJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBCRU5HQUxJID0gbmV3IExvY2FsZSgiYm4iLCAiSU4iKTsKKworICAgIHB1YmxpYyBCZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKEJFTkdBTEksICJCZW5nYWxpIik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBrZXlib2FyZE1hcDsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSBzdWJzdGl0dXRpb25UYWJsZTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gam9pbldpdGhOdWt0YTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gbnVrdGFGb3JtOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSAgeworICAgIGlmIChrZXlib2FyZE1hcCA9PSBudWxsKSB7CisgICAgICAgIGtleWJvYXJkTWFwID0gbmV3IGNoYXJbXSB7CisgICAgICAgIC8qIDAwICovICdcdTAwMDAnLAorICAgICAgICAvKiAwMSAqLyAnXHUwMDAxJywKKyAgICAgICAgLyogMDIgKi8gJ1x1MDAwMicsCisgICAgICAgIC8qIDAzICovICdcdTAwMDMnLAorICAgICAgICAvKiAwNCAqLyAnXHUwMDA0JywKKyAgICAgICAgLyogMDUgKi8gJ1x1MDAwNScsCisgICAgICAgIC8qIDA2ICovICdcdTAwMDYnLAorICAgICAgICAvKiAwNyAqLyAnXHUwMDA3JywKKyAgICAgICAgLyogMDggKi8gJ1x1MDAwOCcsCisgICAgICAgIC8qIDA5ICovICdcdTAwMDknLAorICAgICAgICAvKiAwQSAqLyAnXDAxMicsCisgICAgICAgIC8qIDBCICovICdcdTAwMEInLAorICAgICAgICAvKiAwQyAqLyAnXHUwMDBDJywKKyAgICAgICAgLyogMEQgKi8gJ1wwMTUnLAorICAgICAgICAvKiAwRSAqLyAnXHUwMDBFJywKKyAgICAgICAgLyogMEYgKi8gJ1x1MDAwRicsCisgICAgICAgIC8qIDEwICovICdcdTAwMTAnLAorICAgICAgICAvKiAxMSAqLyAnXHUwMDExJywKKyAgICAgICAgLyogMTIgKi8gJ1x1MDAxMicsCisgICAgICAgIC8qIDEzICovICdcdTAwMTMnLAorICAgICAgICAvKiAxNCAqLyAnXHUwMDE0JywKKyAgICAgICAgLyogMTUgKi8gJ1x1MDAxNScsCisgICAgICAgIC8qIDE2ICovICdcdTAwMTYnLAorICAgICAgICAvKiAxNyAqLyAnXHUwMDE3JywKKyAgICAgICAgLyogMTggKi8gJ1x1MDAxOCcsCisgICAgICAgIC8qIDE5ICovICdcdTAwMTknLAorICAgICAgICAvKiAxQSAqLyAnXHUwMDFBJywKKyAgICAgICAgLyogMUIgKi8gJ1x1MDAxQicsCisgICAgICAgIC8qIDFDICovICdcdTAwMUMnLAorICAgICAgICAvKiAxRCAqLyAnXHUwMDFEJywKKyAgICAgICAgLyogMUUgKi8gJ1x1MDAxRScsCisgICAgICAgIC8qIDFGICovICdcdTAwMUYnLAorICAgICAgICAvKiAyMCAqLyAnXHUwMDIwJywKKyAgICAgICAgLyogMjEgKi8gJ1x1RkZGRicsICAgLy8gJyEnCisgICAgICAgIC8qIDIyICovICdcdTA5QTAnLCAgIC8vICciJworICAgICAgICAvKiAyMyAqLyAnXHVGRjAwJywgICAvLyAnIycKKyAgICAgICAgLyogMjQgKi8gJ1x1RkYwMScsICAgLy8gJyQnCisgICAgICAgIC8qIDI1ICovICdcdUZGMDInLCAgIC8vICclJworICAgICAgICAvKiAyNiAqLyAnXHVGRjA0JywgICAvLyAnJicKKyAgICAgICAgLyogMjcgKi8gJ1x1MDk5RicsICAgLy8gJycnCisgICAgICAgIC8qIDI4ICovICdcdTAwMjgnLCAgIC8vICcoJworICAgICAgICAvKiAyOSAqLyAnXHUwMDI5JywgICAvLyAnKScKKyAgICAgICAgLyogMkEgKi8gJ1x1RkYwNScsICAgLy8gJyonCisgICAgICAgIC8qIDJCICovICdcdTA5OEInLCAgIC8vICcrJworICAgICAgICAvKiAyQyAqLyAnXHUwMDJDJywgICAvLyAnLCcKKyAgICAgICAgLyogMkQgKi8gJ1x1MDAyRCcsICAgLy8gJy0nCisgICAgICAgIC8qIDJFICovICdcdTAwMkUnLCAgIC8vICcuJworICAgICAgICAvKiAyRiAqLyAnXHUwOURGJywgICAvLyAnLycKKyAgICAgICAgLyogMzAgKi8gJ1x1MDlFNicsICAgLy8gJzAnCisgICAgICAgIC8qIDMxICovICdcdTA5RTcnLCAgIC8vICcxJworICAgICAgICAvKiAzMiAqLyAnXHUwOUU4JywgICAvLyAnMicKKyAgICAgICAgLyogMzMgKi8gJ1x1MDlFOScsICAgLy8gJzMnCisgICAgICAgIC8qIDM0ICovICdcdTA5RUEnLCAgIC8vICc0JworICAgICAgICAvKiAzNSAqLyAnXHUwOUVCJywgICAvLyAnNScKKyAgICAgICAgLyogMzYgKi8gJ1x1MDlFQycsICAgLy8gJzYnCisgICAgICAgIC8qIDM3ICovICdcdTA5RUQnLCAgIC8vICc3JworICAgICAgICAvKiAzOCAqLyAnXHUwOUVFJywgICAvLyAnOCcKKyAgICAgICAgLyogMzkgKi8gJ1x1MDlFRicsICAgLy8gJzknCisgICAgICAgIC8qIDNBICovICdcdTA5OUInLCAgIC8vICc6JworICAgICAgICAvKiAzQiAqLyAnXHUwOTlBJywgICAvLyAnOycKKyAgICAgICAgLyogM0MgKi8gJ1x1MDlCNycsICAgLy8gJzwnCisgICAgICAgIC8qIDNEICovICdcdTA5QzMnLCAgIC8vICc9JworICAgICAgICAvKiAzRSAqLyAnXHUwOTY0JywgICAvLyAnPicgIChEZXZhbmFnYXJpIGRhbmRhKQorICAgICAgICAvKiAzRiAqLyAnXHUwOUFGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1RkZGRicsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTA5OTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHVGRkZGJywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MDlBMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTA5ODUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwOTg2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MDk4NycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTA5ODknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwOUFCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MDk5OCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdUZGRkYnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwOTk2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MDlBNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTA5QjYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHVGRkZGJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MDlBNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTA5OUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwOTk0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MDk4OCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTA5OEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwOThBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MDk5OScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdUZGRkYnLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwOTkwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MDk4MScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTA5QUQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHVGRkZGJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MDlBMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdUZGRkYnLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwOUJDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkYwMycsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTA5ODMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHVGRkZGJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MDlDQicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTA5QUMnLCAgIC8vICdiJyAodGhpcyBpcyBhIEJBIGluc3RlYWQgb2YgYSBWQSkKKyAgICAgICAgLyogNjMgKi8gJ1x1MDlBRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTA5Q0QnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwOUJFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MDlCRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTA5QzEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwOUFBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MDk5NycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTA5QjAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwOTk1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MDlBNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTA5QjgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwOUIyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MDlBNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTA5OUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwOUNDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MDlDMCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTA5QzcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwOUMyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MDlCOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTA5QTgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwOUM4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MDk4MicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTA5QUMnLCAgIC8vICd5JyAodGhpcyBpcyBhbHNvIGEgQkEuLi4pCisgICAgICAgIC8qIDdBICovICdcdUZGRkYnLCAgIC8vICd6JworICAgICAgICAvKiA3QiAqLyAnXHUwOUEyJywgICAvLyAneycKKyAgICAgICAgLyogN0MgKi8gJ1x1RkZGRicsICAgLy8gJ3wnCisgICAgICAgIC8qIDdEICovICdcdTA5OUUnLCAgIC8vICd9JworICAgICAgICAvKiA3RSAqLyAnXHVGRkZGJywgICAvLyAnficKKyAgICAgICAgLyogN0YgKi8gJ1x1MDA3RicgICAgLy8gJ38nCisgICAgICAgIH07CisKKyAgICAgICAgY2hhcltdIFJBX1NVQiA9IHsnXHUwOUNEJywgJ1x1MDlCMCd9OworICAgICAgICBjaGFyW10gUkFfU1VQID0geydcdTA5QjAnLCAnXHUwOUNEJ307CisgICAgICAgIGNoYXJbXSBDT05KX0pBX05ZQSA9IHsnXHUwOTlDJywgJ1x1MDlDRCcsICdcdTA5OUUnfTsKKyAgICAgICAgY2hhcltdIENPTkpfVEFfUkEgPSB7J1x1MDlBNCcsICdcdTA5Q0QnLCAnXHUwOUIwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwOTk1JywgJ1x1MDlDRCcsICdcdTA5QjcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU0hBX1JBID0geydcdTA5QjYnLCAnXHUwOUNEJywgJ1x1MDlCMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCLCBSQV9TVVAsIENPTkpfSkFfTllBLCBDT05KX1RBX1JBLCBDT05KX0tBX1NTQSwgQ09OSl9TSEFfUkEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEgc2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgIC8vIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBhcyBkZWZpbmVkIGluIElTQ0lJOTEKKyAgICAgICAgY2hhciBMRVRURVJfSSAgICAgICAgICAgICAgPSAnXHUwOTg3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSUkgICAgICAgICAgICAgPSAnXHUwOTg4JzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SICAgICAgPSAnXHUwOThCJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERBICAgICAgICAgICAgPSAnXHUwOUExJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERIQSAgICAgICAgICAgPSAnXHUwOUEyJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0kgICAgICAgICAgPSAnXHUwOUJGJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0lJICAgICAgICAgPSAnXHUwOUMwJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUiAgPSAnXHUwOUMzJzsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgcmVwbGFjZSB0aGUgYWJvdmUgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBOdWt0YS4gVGhlc2UKKyAgICAgICAgLy8gYXJlIGRlZmluZWQgaW4gb25lIHRvIG9uZSBjb3JyZXNwb25kZW5jZSBvcmRlci4KKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MICAgICAgPSAnXHUwOThDJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MTCAgICAgPSAnXHUwOUUxJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SUiAgICAgPSAnXHUwOUUwJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERESEEgICAgICAgICAgPSAnXHUwOURDJzsKKyAgICAgICAgY2hhciBMRVRURVJfUkhBICAgICAgICAgICAgPSAnXHUwOUREJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTCAgPSAnXHUwOUUyJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTEwgPSAnXHUwOUUzJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUlIgPSAnXHUwOUM0JzsKKworICAgICAgICBqb2luV2l0aE51a3RhID0gbmV3IGNoYXJbXSB7CisgICAgICAgIExFVFRFUl9JLAorICAgICAgICBMRVRURVJfSUksCisgICAgICAgIExFVFRFUl9WT0NBTElDX1IsCisgICAgICAgIExFVFRFUl9EREEsCisgICAgICAgIExFVFRFUl9EREhBLAorICAgICAgICBWT1dFTF9TSUdOX0ksCisgICAgICAgIFZPV0VMX1NJR05fSUksCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19SCisgICAgICAgIH07CisgICAgCisgICAgICAgIG51a3RhRm9ybSA9IG5ldyBjaGFyW10geworICAgICAgICBMRVRURVJfVk9DQUxJQ19MLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19MTCwKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfUlIsCisgICAgICAgIExFVFRFUl9ERERIQSwKKyAgICAgICAgTEVUVEVSX1JIQSwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX0wsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19MTCwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX1JSCisgICAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgam9pbldpdGhOdWt0YSwgbnVrdGFGb3JtLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0RldmFuYWdhcmlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzUxZTU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIERldmFuYWdhcmlJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBERVZBTkFHQVJJID0gbmV3IExvY2FsZSgiaGkiLCAiSU4iKTsKKworICAgIHB1YmxpYyBEZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKERFVkFOQUdBUkksICJEZXZhbmFnYXJpIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBqb2luV2l0aE51a3RhOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBudWt0YUZvcm07CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpICB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHUwOTBEJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MDkyMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRjAxJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkYwMicsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGMDQnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwOTFGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjA1JywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MDkwQicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTA5MkYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwOTY2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MDk2NycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTA5NjgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwOTY5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MDk2QScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTA5NkInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwOTZDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MDk2RCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTA5NkUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwOTZGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MDkxQicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTA5MUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwOTM3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MDk0MycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdTA5NjQnLCAgIC8vICc+JworICAgICAgICAvKiAzRiAqLyAnXHUwOTVGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1MDk0NScsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTA5MTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHUwOTM0JywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MDkyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTA5MDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwOTA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MDkwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTA5MDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwOTJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MDkxOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdTA5MzEnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwOTE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MDkyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTA5MzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwOTMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MDkyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTA5MUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwOTE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MDkwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTA5MEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwOTBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MDkxOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdTA5MjknLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwOTEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MDkwMScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTA5MkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHUwOTBFJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MDkyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdTA5NDknLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwOTNDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkYwMycsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTA5MDMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHUwOTRBJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MDk0QicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTA5MzUnLCAgIC8vICdiJworICAgICAgICAvKiA2MyAqLyAnXHUwOTJFJywgICAvLyAnYycKKyAgICAgICAgLyogNjQgKi8gJ1x1MDk0RCcsICAgLy8gJ2QnCisgICAgICAgIC8qIDY1ICovICdcdTA5M0UnLCAgIC8vICdlJworICAgICAgICAvKiA2NiAqLyAnXHUwOTNGJywgICAvLyAnZicKKyAgICAgICAgLyogNjcgKi8gJ1x1MDk0MScsICAgLy8gJ2cnCisgICAgICAgIC8qIDY4ICovICdcdTA5MkEnLCAgIC8vICdoJworICAgICAgICAvKiA2OSAqLyAnXHUwOTE3JywgICAvLyAnaScKKyAgICAgICAgLyogNkEgKi8gJ1x1MDkzMCcsICAgLy8gJ2onCisgICAgICAgIC8qIDZCICovICdcdTA5MTUnLCAgIC8vICdrJworICAgICAgICAvKiA2QyAqLyAnXHUwOTI0JywgICAvLyAnbCcKKyAgICAgICAgLyogNkQgKi8gJ1x1MDkzOCcsICAgLy8gJ20nCisgICAgICAgIC8qIDZFICovICdcdTA5MzInLCAgIC8vICduJworICAgICAgICAvKiA2RiAqLyAnXHUwOTI2JywgICAvLyAnbycKKyAgICAgICAgLyogNzAgKi8gJ1x1MDkxQycsICAgLy8gJ3AnCisgICAgICAgIC8qIDcxICovICdcdTA5NEMnLCAgIC8vICdxJworICAgICAgICAvKiA3MiAqLyAnXHUwOTQwJywgICAvLyAncicKKyAgICAgICAgLyogNzMgKi8gJ1x1MDk0NycsICAgLy8gJ3MnCisgICAgICAgIC8qIDc0ICovICdcdTA5NDInLCAgIC8vICd0JworICAgICAgICAvKiA3NSAqLyAnXHUwOTM5JywgICAvLyAndScKKyAgICAgICAgLyogNzYgKi8gJ1x1MDkyOCcsICAgLy8gJ3YnCisgICAgICAgIC8qIDc3ICovICdcdTA5NDgnLCAgIC8vICd3JworICAgICAgICAvKiA3OCAqLyAnXHUwOTAyJywgICAvLyAneCcKKyAgICAgICAgLyogNzkgKi8gJ1x1MDkyQycsICAgLy8gJ3knCisgICAgICAgIC8qIDdBICovICdcdTA5NDYnLCAgIC8vICd6JworICAgICAgICAvKiA3QiAqLyAnXHUwOTIyJywgICAvLyAneycKKyAgICAgICAgLyogN0MgKi8gJ1x1MDkxMScsICAgLy8gJ3wnCisgICAgICAgIC8qIDdEICovICdcdTA5MUUnLCAgIC8vICd9JworICAgICAgICAvKiA3RSAqLyAnXHUwOTEyJywgICAvLyAnficKKyAgICAgICAgLyogN0YgKi8gJ1x1MDA3RicgICAgLy8gJ38nCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIHRoZSBjaGFyYWN0ZXIgc3Vic3RpdHV0aW9ucyBmb3IgdGhlIG1ldGEgY2hhcmFjdGVycy4KKyAgICAgICAgY2hhcltdIFJBX1NVQiA9IHsnXHUwOTREJywgJ1x1MDkzMCd9OworICAgICAgICBjaGFyW10gUkFfU1VQID0geydcdTA5MzAnLCAnXHUwOTREJ307CisgICAgICAgIGNoYXJbXSBDT05KX0pBX05ZQSA9IHsnXHUwOTFDJywgJ1x1MDk0RCcsICdcdTA5MUUnfTsKKyAgICAgICAgY2hhcltdIENPTkpfVEFfUkEgPSB7J1x1MDkyNCcsICdcdTA5NEQnLCAnXHUwOTMwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwOTE1JywgJ1x1MDk0RCcsICdcdTA5MzcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU0hBX1JBID0geydcdTA5MzYnLCAnXHUwOTREJywgJ1x1MDkzMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCLCBSQV9TVVAsIENPTkpfSkFfTllBLCBDT05KX1RBX1JBLCBDT05KX0tBX1NTQSwgQ09OSl9TSEFfUkEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEgc2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgIC8vIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBhcyBkZWZpbmVkIGluIElTQ0lJOTEKKyAgICAgICAgY2hhciBTSUdOX0NBTkRSQUJJTkRVICAgICAgPSAnXHUwOTAxJzsKKyAgICAgICAgY2hhciBMRVRURVJfSSAgICAgICAgICAgICAgPSAnXHUwOTA3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSUkgICAgICAgICAgICAgPSAnXHUwOTA4JzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SICAgICAgPSAnXHUwOTBCJzsKKyAgICAgICAgY2hhciBMRVRURVJfS0EgICAgICAgICAgICAgPSAnXHUwOTE1JzsKKyAgICAgICAgY2hhciBMRVRURVJfS0hBICAgICAgICAgICAgPSAnXHUwOTE2JzsKKyAgICAgICAgY2hhciBMRVRURVJfR0EgICAgICAgICAgICAgPSAnXHUwOTE3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSkEgICAgICAgICAgICAgPSAnXHUwOTFDJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERBICAgICAgICAgICAgPSAnXHUwOTIxJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERIQSAgICAgICAgICAgPSAnXHUwOTIyJzsKKyAgICAgICAgY2hhciBMRVRURVJfUEhBICAgICAgICAgICAgPSAnXHUwOTJCJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0kgICAgICAgICAgPSAnXHUwOTNGJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0lJICAgICAgICAgPSAnXHUwOTQwJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUiAgPSAnXHUwOTQzJzsKKyAgICAgICAgY2hhciBEQU5EQSAgICAgICAgICAgICAgICAgPSAnXHUwOTY0JzsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgcmVwbGFjZSB0aGUgYWJvdmUgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBOdWt0YS4gVGhlc2UKKyAgICAgICAgLy8gYXJlIGRlZmluZWQgaW4gb25lIHRvIG9uZSBjb3JyZXNwb25kZW5jZSBvcmRlci4KKyAgICAgICAgY2hhciBTSUdOX09NICAgICAgICAgICAgICAgPSAnXHUwOTUwJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MICAgICAgPSAnXHUwOTBDJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MTCAgICAgPSAnXHUwOTYxJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SUiAgICAgPSAnXHUwOTYwJzsKKyAgICAgICAgY2hhciBMRVRURVJfUUEgICAgICAgICAgICAgPSAnXHUwOTU4JzsKKyAgICAgICAgY2hhciBMRVRURVJfS0hIQSAgICAgICAgICAgPSAnXHUwOTU5JzsKKyAgICAgICAgY2hhciBMRVRURVJfR0hIQSAgICAgICAgICAgPSAnXHUwOTVBJzsKKyAgICAgICAgY2hhciBMRVRURVJfWkEgICAgICAgICAgICAgPSAnXHUwOTVCJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERESEEgICAgICAgICAgPSAnXHUwOTVDJzsKKyAgICAgICAgY2hhciBMRVRURVJfUkhBICAgICAgICAgICAgPSAnXHUwOTVEJzsKKyAgICAgICAgY2hhciBMRVRURVJfRkEgICAgICAgICAgICAgPSAnXHUwOTVFJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTCAgPSAnXHUwOTYyJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTEwgPSAnXHUwOTYzJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUlIgPSAnXHUwOTQ0JzsKKyAgICAgICAgY2hhciBTSUdOX0FWQUdSQUhBICAgICAgICAgPSAnXHUwOTNEJzsKKworICAgICAgICBqb2luV2l0aE51a3RhID0gbmV3IGNoYXJbXSB7CisgICAgICAgIFNJR05fQ0FORFJBQklORFUsCisgICAgICAgIExFVFRFUl9JLAorICAgICAgICBMRVRURVJfSUksCisgICAgICAgIExFVFRFUl9WT0NBTElDX1IgLAorICAgICAgICBMRVRURVJfS0EsCisgICAgICAgIExFVFRFUl9LSEEsCisgICAgICAgIExFVFRFUl9HQSwKKyAgICAgICAgTEVUVEVSX0pBLAorICAgICAgICBMRVRURVJfRERBLAorICAgICAgICBMRVRURVJfRERIQSwKKyAgICAgICAgTEVUVEVSX1BIQSwKKyAgICAgICAgVk9XRUxfU0lHTl9JLAorICAgICAgICBWT1dFTF9TSUdOX0lJLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfUiwKKyAgICAgICAgREFOREEKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgbnVrdGFGb3JtID0gbmV3IGNoYXJbXSB7CisgICAgICAgIFNJR05fT00sCisgICAgICAgIExFVFRFUl9WT0NBTElDX0wsCisgICAgICAgIExFVFRFUl9WT0NBTElDX0xMLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19SUiwKKyAgICAgICAgTEVUVEVSX1FBLAorICAgICAgICBMRVRURVJfS0hIQSwKKyAgICAgICAgTEVUVEVSX0dISEEsCisgICAgICAgIExFVFRFUl9aQSwKKyAgICAgICAgTEVUVEVSX0REREhBLAorICAgICAgICBMRVRURVJfUkhBLAorICAgICAgICBMRVRURVJfRkEsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19MLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfTEwsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19SUiwKKyAgICAgICAgU0lHTl9BVkFHUkFIQQorICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgam9pbldpdGhOdWt0YSwgbnVrdGFGb3JtLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0Rpc3BsYXlOYW1lcy5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EaXNwbGF5TmFtZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGU1YjFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EaXNwbGF5TmFtZXMucHJvcGVydGllcwpAQCAtMCwwICsxLDE4IEBACisjCisjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIworIyBEZWZhdWx0IElucHV0IG1ldGhvZCBkaXNwbGF5IG5hbWVzIGZvciBJbmRpYyBpbnB1dCBtZXRob2RzCisjCisKK0Rpc3BsYXlOYW1lLkJlbmdhbGkgICAgID0gQmVuZ2FsaSBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLkRldmFuYWdhcmkgID0gRGV2YW5hZ2FyaSBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLkd1amFyYXRpICAgID0gR3VqYXJhdGkgSW5wdXQgTWV0aG9kCitEaXNwbGF5TmFtZS5HdXJtdWtoaSAgICA9IEd1cm11a2hpIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuS2FubmFkYSAgICAgPSBLYW5uYWRhIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuTWFsYXlhbGFtICAgPSBNYWxheWFsYW0gSW5wdXQgTWV0aG9kCitEaXNwbGF5TmFtZS5Pcml5YSAgICAgICA9IE9yaXlhIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuVGFtaWwgICAgICAgPSBUYW1pbCBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLlRlbHVndSAgICAgID0gVGVsdWd1IElucHV0IE1ldGhvZApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9HdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9HdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMzFlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0d1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEd1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yIGV4dGVuZHMgSW5kaWNJTURlc2NyaXB0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgR1VKQVJBVEkgPSBuZXcgTG9jYWxlKCJndSIsICJJTiIpOworCisgICAgcHVibGljIEd1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKEdVSkFSQVRJLCAiR3VqYXJhdGkiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdTBBOEQnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQUEwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGMDEnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAyJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwNCcsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBBOUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDUnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQThCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEFBRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBBRTYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQUU3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEFFOCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBBRTknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQUVBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEFFQicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBBRUMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQUVEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEFFRScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBBRUYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQTlCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEE5QScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBBQjcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQUMzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSkKKyAgICAgICAgLyogM0YgKi8gJ1x1RkZGRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdTBBQzUnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQTkzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1RkZGRicsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBBQTMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQTg1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEE4NicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBBODcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQTg5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MEFBQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTBBOTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHVGRkZGJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MEE5NicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTBBQTUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwQUI2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEFCMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTBBQTcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwQTlEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEE5NCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBBODgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQThGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEE4QScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBBOTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHVGRkZGJywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEE5MCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTBBODEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwQUFEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1RkZGRicsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTBBQTEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHUwQUM5JywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1MEFCQycsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGMDMnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQTgzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1RkZGRicsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBBQ0InLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQUI1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MEFBRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBBQ0QnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQUJFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEFCRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBBQzEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQUFBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MEE5NycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBBQjAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQTk1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEFBNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBBQjgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQUIyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MEFBNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBBOUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQUNDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEFDMCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBBQzcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQUMyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEFCOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBBQTgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQUM4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEE4MicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTBBQUMnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHVGRkZGJywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MEFBMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdTBBOTEnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQTlFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1RkZGRicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MEFDRCcsICdcdTBBQjAnfTsKKyAgICAgICAgY2hhcltdIFJBX1NVUCA9IHsnXHUwQUIwJywgJ1x1MEFDRCd9OworICAgICAgICBjaGFyW10gQ09OSl9KQV9OWUEgPSB7J1x1MEE5QycsICdcdTBBQ0QnLCAnXHUwQTlFJ307CisgICAgICAgIGNoYXJbXSBDT05KX1RBX1JBID0geydcdTBBQTQnLCAnXHUwQUNEJywgJ1x1MEFCMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MEE5NScsICdcdTBBQ0QnLCAnXHUwQUI3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NIQV9SQSA9IHsnXHUwQUI2JywgJ1x1MEFDRCcsICdcdTBBQjAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgUkFfU1VQLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIG51bGwsIG51bGwsIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTBiM2JhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9HdXJtdWtoaUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMjAyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBHdXJtdWtoaUlucHV0TWV0aG9kRGVzY3JpcHRvciBleHRlbmRzIEluZGljSU1EZXNjcmlwdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIEdVUk1VS0hJID0gbmV3IExvY2FsZSgicGEiLCAiSU4iKTsgLy8gcGEgPSBQdW5qYWJpCisKKyAgICBwdWJsaWMgR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoR1VSTVVLSEksICJHdXJtdWtoaSIpOyAKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGpvaW5XaXRoTnVrdGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIG51a3RhRm9ybTsKKworICAgIHByb3RlY3RlZCBJbmRpY0lucHV0TWV0aG9kSW1wbCBnZXRJbXBsKCkgeworICAgIGlmIChrZXlib2FyZE1hcCA9PSBudWxsKSB7CisgICAgICAgIGtleWJvYXJkTWFwID0gbmV3IGNoYXJbXSB7CisgICAgICAgIC8qIDAwICovICdcdTAwMDAnLAorICAgICAgICAvKiAwMSAqLyAnXHUwMDAxJywKKyAgICAgICAgLyogMDIgKi8gJ1x1MDAwMicsCisgICAgICAgIC8qIDAzICovICdcdTAwMDMnLAorICAgICAgICAvKiAwNCAqLyAnXHUwMDA0JywKKyAgICAgICAgLyogMDUgKi8gJ1x1MDAwNScsCisgICAgICAgIC8qIDA2ICovICdcdTAwMDYnLAorICAgICAgICAvKiAwNyAqLyAnXHUwMDA3JywKKyAgICAgICAgLyogMDggKi8gJ1x1MDAwOCcsCisgICAgICAgIC8qIDA5ICovICdcdTAwMDknLAorICAgICAgICAvKiAwQSAqLyAnXDAxMicsCisgICAgICAgIC8qIDBCICovICdcdTAwMEInLAorICAgICAgICAvKiAwQyAqLyAnXHUwMDBDJywKKyAgICAgICAgLyogMEQgKi8gJ1wwMTUnLAorICAgICAgICAvKiAwRSAqLyAnXHUwMDBFJywKKyAgICAgICAgLyogMEYgKi8gJ1x1MDAwRicsCisgICAgICAgIC8qIDEwICovICdcdTAwMTAnLAorICAgICAgICAvKiAxMSAqLyAnXHUwMDExJywKKyAgICAgICAgLyogMTIgKi8gJ1x1MDAxMicsCisgICAgICAgIC8qIDEzICovICdcdTAwMTMnLAorICAgICAgICAvKiAxNCAqLyAnXHUwMDE0JywKKyAgICAgICAgLyogMTUgKi8gJ1x1MDAxNScsCisgICAgICAgIC8qIDE2ICovICdcdTAwMTYnLAorICAgICAgICAvKiAxNyAqLyAnXHUwMDE3JywKKyAgICAgICAgLyogMTggKi8gJ1x1MDAxOCcsCisgICAgICAgIC8qIDE5ICovICdcdTAwMTknLAorICAgICAgICAvKiAxQSAqLyAnXHUwMDFBJywKKyAgICAgICAgLyogMUIgKi8gJ1x1MDAxQicsCisgICAgICAgIC8qIDFDICovICdcdTAwMUMnLAorICAgICAgICAvKiAxRCAqLyAnXHUwMDFEJywKKyAgICAgICAgLyogMUUgKi8gJ1x1MDAxRScsCisgICAgICAgIC8qIDFGICovICdcdTAwMUYnLAorICAgICAgICAvKiAyMCAqLyAnXHUwMDIwJywKKyAgICAgICAgLyogMjEgKi8gJ1x1MEEwRCcsICAgLy8gJyEnCisgICAgICAgIC8qIDIyICovICdcdTBBMjAnLCAgIC8vICciJworICAgICAgICAvKiAyMyAqLyAnXHVGRjAwJywgICAvLyAnIycKKyAgICAgICAgLyogMjQgKi8gJ1x1RkZGRicsICAgLy8gJyQnCisgICAgICAgIC8qIDI1ICovICdcdUZGRkYnLCAgIC8vICclJworICAgICAgICAvKiAyNiAqLyAnXHVGRkZGJywgICAvLyAnJicKKyAgICAgICAgLyogMjcgKi8gJ1x1MEExRicsICAgLy8gJycnCisgICAgICAgIC8qIDI4ICovICdcdTAwMjgnLCAgIC8vICcoJworICAgICAgICAvKiAyOSAqLyAnXHUwMDI5JywgICAvLyAnKScKKyAgICAgICAgLyogMkEgKi8gJ1x1RkZGRicsICAgLy8gJyonCisgICAgICAgIC8qIDJCICovICdcdTBBMEInLCAgIC8vICcrJworICAgICAgICAvKiAyQyAqLyAnXHUwMDJDJywgICAvLyAnLCcKKyAgICAgICAgLyogMkQgKi8gJ1x1MDAyRCcsICAgLy8gJy0nCisgICAgICAgIC8qIDJFICovICdcdTAwMkUnLCAgIC8vICcuJworICAgICAgICAvKiAyRiAqLyAnXHUwQTJGJywgICAvLyAnLycKKyAgICAgICAgLyogMzAgKi8gJ1x1MEE2NicsICAgLy8gJzAnCisgICAgICAgIC8qIDMxICovICdcdTBBNjcnLCAgIC8vICcxJworICAgICAgICAvKiAzMiAqLyAnXHUwQTY4JywgICAvLyAnMicKKyAgICAgICAgLyogMzMgKi8gJ1x1MEE2OScsICAgLy8gJzMnCisgICAgICAgIC8qIDM0ICovICdcdTBBNkEnLCAgIC8vICc0JworICAgICAgICAvKiAzNSAqLyAnXHUwQTZCJywgICAvLyAnNScKKyAgICAgICAgLyogMzYgKi8gJ1x1MEE2QycsICAgLy8gJzYnCisgICAgICAgIC8qIDM3ICovICdcdTBBNkQnLCAgIC8vICc3JworICAgICAgICAvKiAzOCAqLyAnXHUwQTZFJywgICAvLyAnOCcKKyAgICAgICAgLyogMzkgKi8gJ1x1MEE2RicsICAgLy8gJzknCisgICAgICAgIC8qIDNBICovICdcdTBBMUInLCAgIC8vICc6JworICAgICAgICAvKiAzQiAqLyAnXHUwQTFBJywgICAvLyAnOycKKyAgICAgICAgLyogM0MgKi8gJ1x1MEEzNycsICAgLy8gJzwnCisgICAgICAgIC8qIDNEICovICdcdTBBNDMnLCAgIC8vICc9JworICAgICAgICAvKiAzRSAqLyAnXHUwOTY0JywgICAvLyAnPicgIChEZXZhbmFnYXJpIGRhbmRhKQorICAgICAgICAvKiAzRiAqLyAnXHUwQTVGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1MEE0NScsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTBBMTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHUwQTM0JywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MEEyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTBBMDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwQTA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MEEwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTBBMDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwQTJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MEExOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdTBBMzEnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwQTE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MEEyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTBBMzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwQTMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MEEyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTBBMUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwQTE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MEEwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTBBMEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwQTBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MEExOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdTBBMjknLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwQTEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MEEwMScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTBBMkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHUwQTBFJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MEEyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdTBBNDknLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwQTNDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkZGRicsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTBBMDMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHUwQTRBJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MEE0QicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTBBMzUnLCAgIC8vICdiJworICAgICAgICAvKiA2MyAqLyAnXHUwQTJFJywgICAvLyAnYycKKyAgICAgICAgLyogNjQgKi8gJ1x1MEE0RCcsICAgLy8gJ2QnCisgICAgICAgIC8qIDY1ICovICdcdTBBM0UnLCAgIC8vICdlJworICAgICAgICAvKiA2NiAqLyAnXHUwQTNGJywgICAvLyAnZicKKyAgICAgICAgLyogNjcgKi8gJ1x1MEE0MScsICAgLy8gJ2cnCisgICAgICAgIC8qIDY4ICovICdcdTBBMkEnLCAgIC8vICdoJworICAgICAgICAvKiA2OSAqLyAnXHUwQTE3JywgICAvLyAnaScKKyAgICAgICAgLyogNkEgKi8gJ1x1MEEzMCcsICAgLy8gJ2onCisgICAgICAgIC8qIDZCICovICdcdTBBMTUnLCAgIC8vICdrJworICAgICAgICAvKiA2QyAqLyAnXHUwQTI0JywgICAvLyAnbCcKKyAgICAgICAgLyogNkQgKi8gJ1x1MEEzOCcsICAgLy8gJ20nCisgICAgICAgIC8qIDZFICovICdcdTBBMzInLCAgIC8vICduJworICAgICAgICAvKiA2RiAqLyAnXHUwQTI2JywgICAvLyAnbycKKyAgICAgICAgLyogNzAgKi8gJ1x1MEExQycsICAgLy8gJ3AnCisgICAgICAgIC8qIDcxICovICdcdTBBNEMnLCAgIC8vICdxJworICAgICAgICAvKiA3MiAqLyAnXHUwQTQwJywgICAvLyAncicKKyAgICAgICAgLyogNzMgKi8gJ1x1MEE0NycsICAgLy8gJ3MnCisgICAgICAgIC8qIDc0ICovICdcdTBBNDInLCAgIC8vICd0JworICAgICAgICAvKiA3NSAqLyAnXHUwQTM5JywgICAvLyAndScKKyAgICAgICAgLyogNzYgKi8gJ1x1MEEyOCcsICAgLy8gJ3YnCisgICAgICAgIC8qIDc3ICovICdcdTBBNDgnLCAgIC8vICd3JworICAgICAgICAvKiA3OCAqLyAnXHUwQTcwJywgICAvLyAneCcgKEd1cm11a2hpIFRJUFBJIHJhdGhlciB0aGFuIEJJTkRJKQorICAgICAgICAvKiA3OSAqLyAnXHUwQTJDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MEE0NicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBBMjInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHUwQTExJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEExRScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBBMTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBBNEQnLCAnXHUwQTMwJ307CisKKyAgICAgICAgc3Vic3RpdHV0aW9uVGFibGUgPSBuZXcgY2hhcltdW10geworICAgICAgICBSQV9TVUIKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEgc2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgIC8vIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBhcyBkZWZpbmVkIGluIElTQ0lJOTEKKyAgICAgICAgY2hhciBMRVRURVJfS0hBICAgICAgICAgICAgPSAnXHUwQTE2JzsKKyAgICAgICAgY2hhciBMRVRURVJfR0EgICAgICAgICAgICAgPSAnXHUwQTE3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSkEgICAgICAgICAgICAgPSAnXHUwQTFDJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERBICAgICAgICAgICAgPSAnXHUwQTIxJzsKKyAgICAgICAgY2hhciBMRVRURVJfUEhBICAgICAgICAgICAgPSAnXHUwQTJCJzsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgcmVwbGFjZSB0aGUgYWJvdmUgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBOdWt0YS4gVGhlc2UKKyAgICAgICAgLy8gYXJlIGRlZmluZWQgaW4gb25lIHRvIG9uZSBjb3JyZXNwb25kZW5jZSBvcmRlci4KKyAgICAgICAgLy8gTk9URTogdGhlIGluc2NyaXB0IGtleWJvYXJkIGRvYy4gbGlzdHMgYSBLQSArIE5VS1RBIGFuZCBhIERESEEgKyBOVUtUQQorICAgICAgICAvLyBuZWl0aGVyIG9mIHdoaWNoIHNlZW0gdG8gaGF2ZSBVbmljb2RlIGNvZGUgcG9pbnRzLi4uCisgICAgICAgIGNoYXIgTEVUVEVSX0tISEEgICAgICAgICAgID0gJ1x1MEE1OSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0dISEEgICAgICAgICAgID0gJ1x1MEE1QSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1pBICAgICAgICAgICAgID0gJ1x1MEE1Qic7CisgICAgICAgIGNoYXIgTEVUVEVSX1JSQSAgICAgICAgICAgID0gJ1x1MEE1Qyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0ZBICAgICAgICAgICAgID0gJ1x1MEE1RSc7CisKKyAgICAgICAgam9pbldpdGhOdWt0YSA9IG5ldyBjaGFyW10geworICAgICAgICBMRVRURVJfS0hBLAorICAgICAgICBMRVRURVJfR0EsCisgICAgICAgIExFVFRFUl9KQSwKKyAgICAgICAgTEVUVEVSX0REQSwKKyAgICAgICAgTEVUVEVSX1BIQQorICAgICAgICB9OworICAgIAorICAgICAgICBudWt0YUZvcm0gPSBuZXcgY2hhcltdIHsKKyAgICAgICAgTEVUVEVSX0tISEEsCisgICAgICAgIExFVFRFUl9HSEhBLAorICAgICAgICBMRVRURVJfWkEsCisgICAgICAgIExFVFRFUl9SUkEsCisgICAgICAgIExFVFRFUl9GQQorICAgICAgICB9OworICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2RJbXBsKGtleWJvYXJkTWFwLCBqb2luV2l0aE51a3RhLCBudWt0YUZvcm0sIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJTURlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJTURlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzM4MGI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9JbmRpY0lNRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kOworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBJbmRpY0lNRGVzY3JpcHRvciBpbXBsZW1lbnRzIElucHV0TWV0aG9kRGVzY3JpcHRvciB7CisgICAgcHJpdmF0ZSBmaW5hbCBMb2NhbGUgbG9jYWxlOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG5hbWU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJTURlc2NyaXB0b3IoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIG5hbWUpIHsKKyAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgIH0KKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBJbmRpY0lucHV0TWV0aG9kSW1wbCBnZXRJbXBsKCk7CisKKyAgICBwdWJsaWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGVbXSB7IGxvY2FsZSB9OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc0R5bmFtaWNMb2NhbGVMaXN0KCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdHJpbmcgZ2V0SW5wdXRNZXRob2REaXNwbGF5TmFtZShMb2NhbGUgaW5wdXRMb2NhbGUsIExvY2FsZSBkaXNwbGF5TGFuZ3VhZ2UpIHsKKyAgICB0cnkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLkRpc3BsYXlOYW1lcyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TGFuZ3VhZ2UpOworICAgICAgICByZXR1cm4gcmIuZ2V0U3RyaW5nKCJEaXNwbGF5TmFtZS4iICsgbmFtZSk7CisgICAgfQorICAgIGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisgICAgfQorCisgICAgcHVibGljIEltYWdlIGdldElucHV0TWV0aG9kSWNvbihMb2NhbGUgaW5wdXRMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIElucHV0TWV0aG9kIGNyZWF0ZUlucHV0TWV0aG9kKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZChsb2NhbGUsIGdldEltcGwoKSk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICByZXR1cm4gbmFtZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSW5wdXRNZXRob2QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJbnB1dE1ldGhvZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzM2FhMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSW5wdXRNZXRob2QuamF2YQpAQCAtMCwwICsxLDkyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEuYXd0LkFXVEV2ZW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2Q7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kQ29udGV4dDsKK2ltcG9ydCBqYXZhLmxhbmcuQ2hhcmFjdGVyLlN1YnNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIFRoaXMgc3R1YiBkZWxlZ2F0ZXMgdG8gdGhlIHNpbXBsZXIgSW5kaWNJbnB1dE1ldGhvZEltcGwuCisgKi8KK2NsYXNzIEluZGljSW5wdXRNZXRob2QgaW1wbGVtZW50cyBJbnB1dE1ldGhvZCB7CisgICAgcHJpdmF0ZSBJbmRpY0lucHV0TWV0aG9kSW1wbCBpbXBsOworICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZTsKKyAgICAKKyAgICBJbmRpY0lucHV0TWV0aG9kKExvY2FsZSB0aGVMb2NhbGUsIEluZGljSW5wdXRNZXRob2RJbXBsIHRoZUltcGxlbWVudGF0aW9uKSB7CisgICAgICAgIGxvY2FsZSA9IHRoZUxvY2FsZTsKKyAgICAgICAgaW1wbCA9IHRoZUltcGxlbWVudGF0aW9uOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRJbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0IGNvbnRleHQpIHsKKyAgICAgICAgaW1wbC5zZXRJbnB1dE1ldGhvZENvbnRleHQoY29udGV4dCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscyh0aGlzLmxvY2FsZS5nZXRMYW5ndWFnZSgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0Q2hhcmFjdGVyU3Vic2V0cyhTdWJzZXRbXSBzdWJzZXRzKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29tcG9zaXRpb25FbmFibGVkKGJvb2xlYW4gZW5hYmxlKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQ29tcG9zaXRpb25FbmFibGVkKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWNvbnZlcnQoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGhpcyBpbnB1dCBtZXRob2QgZG9lcyBub3QgcmVjb252ZXJ0LiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoRXZlbnQoQVdURXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgS2V5RXZlbnQpIHsKKyAgICAgICAgICAgIEtleUV2ZW50IGtleUV2ZW50ID0gKEtleUV2ZW50KSBldmVudDsKKyAgICAgICAgICAgIGlmIChldmVudC5nZXRJRCgpID09IEtleUV2ZW50LktFWV9UWVBFRCkgeworICAgICAgICAgICAgICAgIGltcGwuaGFuZGxlS2V5VHlwZWQoa2V5RXZlbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBub3RpZnlDbGllbnRXaW5kb3dDaGFuZ2UoUmVjdGFuZ2xlIGJvdW5kcykgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGl2YXRlKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlYWN0aXZhdGUoYm9vbGVhbiBpc1RlbXBvcmFyeSkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhpZGVXaW5kb3dzKCkgeworICAgIH0KKyAgCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTm90aWZ5KCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGVuZENvbXBvc2l0aW9uKCkgeworICAgICAgICBpbXBsLmVuZENvbXBvc2l0aW9uKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGlzcG9zZSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldENvbnRyb2xPYmplY3QoKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJbnB1dE1ldGhvZEltcGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJbnB1dE1ldGhvZEltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWU0ZjMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9JbmRpY0lucHV0TWV0aG9kSW1wbC5qYXZhCkBAIC0wLDAgKzEsNDM5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZENvbnRleHQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JbnB1dE1ldGhvZEV2ZW50OworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRIaXRJbmZvOworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2NsYXNzIEluZGljSW5wdXRNZXRob2RJbXBsIHsKKyAgICAKKyAgICBwcm90ZWN0ZWQgY2hhcltdIEtCRF9NQVA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTVUJTVElUVVRJT05fQkFTRSA9ICdcdWZmMDAnOworCisgICAgLy8gSW5kZXhlZCBieSBtYXAgdmFsdWUgLSBTVUJTVElUVVRJT05fQkFTRQorICAgIHByb3RlY3RlZCBjaGFyW11bXSBTVUJTVElUVVRJT05fVEFCTEU7CisKKyAgICAvLyBJbnZhbGlkIGNoYXJhY3Rlci4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIElOVkFMSURfQ0hBUiAgICAgICAgICAgICAgPSAnXHVmZmZmJzsKKworICAgIC8vIFVubWFwcGVkIHZlcnNpb25zIG9mIHNvbWUgaW50ZXJlc3RpbmcgY2hhcmFjdGVycy4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtFWV9TSUdOX1ZJUkFNQSAgICAgICAgICAgPSAnXHUwMDY0JzsgLy8gb3IganVzdCAnZCc/PworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgS0VZX1NJR05fTlVLVEEgICAgICAgICAgICA9ICdcdTAwNWQnOyAgLy8gb3IganVzdCAnXSc/PworCisgICAgLy8gVHdvIHN1Y2NlZWRpbmcgdmlyYW1hcyBhcmUgcmVwbGFjZWQgYnkgb25lIHZpcmFtYSBhbmQgb25lIFpXTkouCisgICAgLy8gVmlyYW0gZm9sbG93ZWQgYnkgTnVrdGEgaXMgcmVwbGFjZWQgYnkgb25lIFZJUkFNQSBhbmQgb25lIFpXSgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgWldKICAgICAgICAgICAgICAgICAgICAgICA9ICdcdTIwMGQnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgWldOSiAgICAgICAgICAgICAgICAgICAgICA9ICdcdTIwMGMnOworICAgIAorICAgIC8vIEJhY2tzcGFjZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQkFDS1NQQUNFICAgICAgICAgICAgICAgICA9ICdcdTAwMDgnOworCisgICAgLy8gU29ydGVkIGxpc3Qgb2YgY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgZm9sbG93ZWQgYnkgTnVrdGEKKyAgICBwcm90ZWN0ZWQgY2hhcltdIEpPSU5fV0lUSF9OVUtUQTsKKyAgICAKKyAgICAvLyBOdWt0YSBmb3JtIG9mIHRoZSBhYm92ZSBjaGFyYWN0ZXJzCisgICAgcHJvdGVjdGVkIGNoYXJbXSBOVUtUQV9GT1JNOworICAgICAgICAKKyAgICBwcml2YXRlIGludCBsb2cyOworICAgIHByaXZhdGUgaW50IHBvd2VyOworICAgIHByaXZhdGUgaW50IGV4dHJhOworCisgICAgLy8gY2FjaGVkIFRleHRIaXRJbmZvLiBPbmx5IG9uZSB0eXBlIG9mIFRleHRIaXRJbmZvIGlzIHJlcXVpcmVkLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRleHRIaXRJbmZvIFpFUk9fVFJBSUxJTkdfSElUX0lORk8gPSBUZXh0SGl0SW5mby50cmFpbGluZygwKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaW4gdGhlIEpPSU5fV0lUSF9OVUtUQSBhcnJheS4KKyAgICAgKiBJZiBjaGFyYWN0ZXIgaXMgbm90IGZvdW5kLCAtMSBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBudWt0YUluZGV4KGNoYXIgY2gpIHsKKyAgICAgICAgaWYgKEpPSU5fV0lUSF9OVUtUQSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBwcm9iZSA9IHBvd2VyOworICAgICAgICBpbnQgaW5kZXggPSAwOworCisgICAgICAgIGlmIChKT0lOX1dJVEhfTlVLVEFbZXh0cmFdIDw9IGNoKSB7CisgICAgICAgICAgICBpbmRleCA9IGV4dHJhOworICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgd2hpbGUgKHByb2JlID4gKDEgPDwgMCkpIHsKKyAgICAgICAgICAgIHByb2JlID4+PSAxOworCisgICAgICAgICAgICBpZiAoSk9JTl9XSVRIX05VS1RBW2luZGV4ICsgcHJvYmVdIDw9IGNoKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gcHJvYmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoSk9JTl9XSVRIX05VS1RBW2luZGV4XSAhPSBjaCkgeworICAgICAgICAgICAgaW5kZXggPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZXF1aXZhbGVudCBjaGFyYWN0ZXIgZm9yIGhpbmRpIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb3JpZ2luYWxDaGFyIFRoZSBvcmlnaW5hbCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIGdldE1hcHBlZENoYXIoY2hhciBvcmlnaW5hbENoYXIpIHsKKyAgICAgICAgaWYgKG9yaWdpbmFsQ2hhciA8PSBLQkRfTUFQLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIEtCRF9NQVBbb3JpZ2luYWxDaGFyXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG9yaWdpbmFsQ2hhcjsKKyAgICB9CisgICAgCisgICAgLy8gQXJyYXkgdXNlZCB0byBob2xkIHRoZSB0ZXh0IHRvIGJlIHNlbnQuCisgICAgLy8gSWYgdGhlIGxhc3QgY2hhcmFjdGVyIHdhcyBub3QgY29tbWl0dGVkIGl0IGlzIHN0b3JlZCBpbiB0ZXh0WzBdLgorICAgIC8vIFRoZSB2YXJpYWJsZSB0b3RhbENoYXJzIGdpdmUgYW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIHRoZSBsYXN0CisgICAgLy8gY2hhcmFjdGVyIHdhcyBjb21taXR0ZWQgb3Igbm90LiBJZiBhdCBhbnkgdGltZSAoIGJ1dCBub3Qgd2l0aGluIGEKKyAgICAvLyBhIGNhbGwgdG8gZGlzcGF0Y2hFdmVudCApIHRvdGFsQ2hhcnMgaXMgbm90IGVxdWFsIHRvIDAgKCBpdCBjYW4KKyAgICAvLyBvbmx5IGJlIDEgb3RoZXJ3aXNlICkgdGhlIGxhc3QgY2hhcmFjdGVyIHdhcyBub3QgY29tbWl0dGVkLgorICAgIHByaXZhdGUgY2hhciBbXSB0ZXh0ID0gbmV3IGNoYXJbNF07CisKKyAgICAvLyB0aGlzIGlzIGFsd2F5cyAwIGJlZm9yZSBhbmQgYWZ0ZXIgY2FsbCB0byBkaXNwYXRjaEV2ZW50LiBUaGlzIGNoYXJhY3RlciBhc3N1bWVzCisgICAgLy8gc2lnbmlmaWNhbmNlIG9ubHkgd2l0aGluIGEgY2FsbCB0byBkaXNwYXRjaEV2ZW50LgorICAgIHByaXZhdGUgaW50IGNvbW1pdHRlZENoYXJzID0gMDsvLyBudW1iZXIgb2YgY29tbWl0dGVkIGNoYXJhY3RlcnMKKworICAgIC8vIHRoZSB0b3RhbCB2YWxpZCBjaGFyYWN0ZXJzIGluIHZhcmlhYmxlIHRleHQgY3VycmVudGx5LgorICAgIHByaXZhdGUgaW50IHRvdGFsQ2hhcnMgPSAwOy8vbnVtYmVyIG9mIHRvdGFsIGNoYXJhY3RlcnMgKCBjb21taXR0ZWQgKyBjb21wb3NlZCApCisKKyAgICBwcml2YXRlIGJvb2xlYW4gbGFzdENoYXJXYXNWaXJhbWEgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIElucHV0TWV0aG9kQ29udGV4dCBjb250ZXh0OworCisgICAgLy8KKyAgICAvLyBGaW5kcyB0aGUgaGlnaCBiaXQgYnkgYmluYXJ5IHNlYXJjaGluZworICAgIC8vIHRocm91Z2ggdGhlIGJpdHMgaW4gbi4KKyAgICAvLworICAgIHByaXZhdGUgc3RhdGljIGJ5dGUgaGlnaEJpdChpbnQgbikgeworICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTMyOworICAgICAgICB9CisKKyAgICAgICAgYnl0ZSBiaXQgPSAwOworCisgICAgICAgIGlmIChuID49IDEgPDwgMTYpIHsKKyAgICAgICAgICAgIG4gPj49IDE2OworICAgICAgICAgICAgYml0ICs9IDE2OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA4KSB7CisgICAgICAgICAgICBuID4+PSA4OworICAgICAgICAgICAgYml0ICs9IDg7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDQpIHsKKyAgICAgICAgICAgIG4gPj49IDQ7CisgICAgICAgICAgICBiaXQgKz0gNDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMikgeworICAgICAgICAgICAgbiA+Pj0gMjsKKyAgICAgICAgICAgIGJpdCArPSAyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAxKSB7CisgICAgICAgICAgICBuID4+PSAxOworICAgICAgICAgICAgYml0ICs9IDE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYml0OworICAgIH0KKworICAgIEluZGljSW5wdXRNZXRob2RJbXBsKGNoYXJbXSBrZXlib2FyZE1hcCwgY2hhcltdIGpvaW5XaXRoTnVrdGEsIGNoYXJbXSBudWt0YUZvcm0sIAorICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlKSB7CisgICAgICAgIEtCRF9NQVAgPSBrZXlib2FyZE1hcDsKKyAgICAgICAgSk9JTl9XSVRIX05VS1RBID0gam9pbldpdGhOdWt0YTsKKyAgICAgICAgTlVLVEFfRk9STSA9IG51a3RhRm9ybTsKKyAgICAgICAgU1VCU1RJVFVUSU9OX1RBQkxFID0gc3Vic3RpdHV0aW9uVGFibGU7CisgICAgICAgIAorICAgICAgICBpZiAoSk9JTl9XSVRIX05VS1RBICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBsb2cyID0gaGlnaEJpdChKT0lOX1dJVEhfTlVLVEEubGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcG93ZXIgPSAxIDw8IGxvZzI7CisgICAgICAgICAgICBleHRyYSA9IEpPSU5fV0lUSF9OVUtUQS5sZW5ndGggLSBwb3dlcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvd2VyID0gZXh0cmEgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICB2b2lkIHNldElucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhvZENvbnRleHQgY29udGV4dCkgeworICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OworICAgIH0KKyAgICAKKyAgICB2b2lkIGhhbmRsZUtleVR5cGVkKEtleUV2ZW50IGtldmVudCkgeworICAgICAgICBjaGFyIGtleUNoYXIgPSBrZXZlbnQuZ2V0S2V5Q2hhcigpOworICAgICAgICBjaGFyIGN1cnJlbnRDaGFyID0gZ2V0TWFwcGVkQ2hhcihrZXlDaGFyKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZSBFeHBsaWNpdCBhbmQgU29mdCBIYWxhbnRhIGNhc2UuCisgICAgICAgIGlmICggbGFzdENoYXJXYXNWaXJhbWEgKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGtleUNoYXIpIHsKKyAgICAgICAgICAgIGNhc2UgS0VZX1NJR05fTlVLVEE6CisgICAgICAgICAgICAgICAgY3VycmVudENoYXIgPSBaV0o7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtFWV9TSUdOX1ZJUkFNQToKKyAgICAgICAgICAgICAgICBjdXJyZW50Q2hhciA9IFpXTko7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgfS8vZW5kU3dpdGNoCisgICAgICAgIH0vL2VuZGlmCisKKyAgICAgICAgaWYgKGN1cnJlbnRDaGFyID09IElOVkFMSURfQ0hBUikgeworICAgICAgICAgICAga2V2ZW50LmNvbnN1bWUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjdXJyZW50Q2hhciA9PSBCQUNLU1BBQ0UpIHsKKyAgICAgICAgICAgIGxhc3RDaGFyV2FzVmlyYW1hID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0b3RhbENoYXJzID4gMCkgeworICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSBjb21taXR0ZWRDaGFycyA9IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoa2V5Q2hhciA9PSBLRVlfU0lHTl9OVUtUQSkgeworICAgICAgICAgICAgaW50IG51a3RhSW5kZXggPSBudWt0YUluZGV4KHRleHRbMF0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobnVrdGFJbmRleCAhPSAtMSkgeworICAgICAgICAgICAgICAgIHRleHRbMF0gPSBOVUtUQV9GT1JNW251a3RhSW5kZXhdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB0aGUgbGFzdCBjaGFyYWN0ZXIgd2FzIGNvbW1pdHRlZCwgY29tbWl0IGp1c3QgTnVrdGEuCisgICAgICAgICAgICAgICAgLy8gTm90ZSA6IHRoZSBsYXN0Q2hhciBtdXN0IGhhdmUgYmVlbiBjb21taXR0ZWQgaWYgaXQgaXMgbm90IG9uZSBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBjaGFyYWN0ZXJzIHdoaWNoIGNvbWJpbmUgd2l0aCBudWt0YS4KKyAgICAgICAgICAgICAgICAvLyB0aGUgc3RhdGUgbXVzdCBiZSB0b3RhbENoYXJzID0gY29tbWl0dGVkQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIHRleHRbdG90YWxDaGFycysrXSA9IGN1cnJlbnRDaGFyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjb21taXR0ZWRDaGFycyArPSAxOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IG51a3RhSW5kZXggPSBudWt0YUluZGV4KGN1cnJlbnRDaGFyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG51a3RhSW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvLyBDb21taXQgZXZlcnl0aGluZyBidXQgY3VycmVudENoYXIKKyAgICAgICAgICAgICAgICB0ZXh0W3RvdGFsQ2hhcnMrK10gPSBjdXJyZW50Q2hhcjsKKyAgICAgICAgICAgICAgICBjb21taXR0ZWRDaGFycyA9IHRvdGFsQ2hhcnMtMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRDaGFyID49IFNVQlNUSVRVVElPTl9CQVNFKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBzdWIgPSBTVUJTVElUVVRJT05fVEFCTEVbY3VycmVudENoYXIgLSBTVUJTVElUVVRJT05fQkFTRV07CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN1YiwgMCwgdGV4dCwgdG90YWxDaGFycywgc3ViLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgKz0gc3ViLmxlbmd0aDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0ZXh0W3RvdGFsQ2hhcnMrK10gPSBjdXJyZW50Q2hhcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY29tbWl0dGVkQ2hhcnMgPSB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBQ0lUZXh0IGFUZXh0ID0gbmV3IEFDSVRleHQoIHRleHQsIDAsIHRvdGFsQ2hhcnMsIGNvbW1pdHRlZENoYXJzICk7CisgICAgICAgIGludCBjb21wb3NlZENoYXJMZW5ndGggPSB0b3RhbENoYXJzIC0gY29tbWl0dGVkQ2hhcnM7CisgICAgICAgIFRleHRIaXRJbmZvIGNhcmV0PW51bGwsdmlzaWJsZVBvc2l0aW9uPW51bGw7CisgICAgICAgIHN3aXRjaCggY29tcG9zZWRDaGFyTGVuZ3RoICkgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIHZpc2libGVQb3NpdGlvbiA9IGNhcmV0ID0gWkVST19UUkFJTElOR19ISVRfSU5GTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLy8gVGhlIGNvZGUgc2hvdWxkIG5vdCByZWFjaCBoZXJlLiBUaGVyZSBpcyBubyBjYXNlIHdoZXJlIHRoZXJlIGNhbiBiZQorICAgICAgICAgICAgICAgIC8vIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyIHBlbmRpbmcuCisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBjb250ZXh0LmRpc3BhdGNoSW5wdXRNZXRob2RFdmVudChJbnB1dE1ldGhvZEV2ZW50LklOUFVUX01FVEhPRF9URVhUX0NIQU5HRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXR0ZWRDaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmICh0b3RhbENoYXJzID09IDApIHsKKyAgICAgICAgICAgIHRleHRbMF0gPSBJTlZBTElEX0NIQVI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXh0WzBdID0gdGV4dFt0b3RhbENoYXJzIC0gMV07Ly8gbWFrZSB0ZXh0WzBdIGhvbGQgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxhc3RDaGFyV2FzVmlyYW1hID0gIGtleUNoYXIgPT0gS0VZX1NJR05fVklSQU1BICYmICFsYXN0Q2hhcldhc1ZpcmFtYTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHRvdGFsQ2hhcnMgLT0gY29tbWl0dGVkQ2hhcnM7CisgICAgICAgIGNvbW1pdHRlZENoYXJzID0gMDsKKyAgICAgICAgLy8gc3RhdGUgbm93IHRleHRbMF0gPSBsYXN0IGNoYXJhY3RlcgorICAgICAgICAvLyB0b3RhbENoYXJzID0gKCBsYXN0IGNoYXJhY3RlciBjb21taXR0ZWQgKT8gMCA6IDE7CisgICAgICAgIC8vIGNvbW1pdHRlZENoYXJzID0gMDsKKworICAgICAgICBrZXZlbnQuY29uc3VtZSgpOy8vIHByZXZlbnQgY2xpZW50IGZyb20gZ2V0dGluZyB0aGlzIGV2ZW50LgorICAgIH0KKworICAgIHZvaWQgZW5kQ29tcG9zaXRpb24oKSB7CisgICAgICAgIGlmKCB0b3RhbENoYXJzICE9IDAgKSB7Ly8gaWYgc29tZSBjaGFyYWN0ZXIgaXMgbm90IGNvbW1pdHRlZC4KKyAgICAgICAgICAgIEFDSVRleHQgYVRleHQgPSBuZXcgQUNJVGV4dCggdGV4dCwgMCwgdG90YWxDaGFycywgdG90YWxDaGFycyApOworICAgICAgICAgICAgY29udGV4dC5kaXNwYXRjaElucHV0TWV0aG9kRXZlbnQoIElucHV0TWV0aG9kRXZlbnQuSU5QVVRfTUVUSE9EX1RFWFRfQ0hBTkdFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVRleHQsIHRvdGFsQ2hhcnMsIG51bGwsIG51bGwgKTsKKyAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSBjb21taXR0ZWRDaGFycyA9IDA7CisgICAgICAgICAgICB0ZXh0WzBdID0gSU5WQUxJRF9DSEFSOworICAgICAgICAgICAgbGFzdENoYXJXYXNWaXJhbWEgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBjdXN0b20gQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIC0tIG11Y2ggbGlnaHR3ZWlnaHQgc2luY2UgY3VycmVudGx5IHRoZXJlIGlzIG5vCisgICAgLy8gYXR0cmlidXRlIGRlZmluZWQgb24gdGhlIHRleHQgYmVpbmcgZ2VuZXJhdGVkIGJ5IHRoZSBpbnB1dCBtZXRob2QuCisgICAgcHJpdmF0ZSBjbGFzcyBBQ0lUZXh0IGltcGxlbWVudHMgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAgICAgcHJpdmF0ZSBjaGFyIFtdIHRleHQgPSBudWxsOworICAgICAgICBwcml2YXRlIGludCBjb21taXR0ZWQgPSAwOworICAgICAgICBwcml2YXRlIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgQUNJVGV4dCggY2hhciBbXSBjaEFycmF5LCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBpbnQgY29tbWl0dGVkICkgeworICAgICAgICAgICAgdGhpcy50ZXh0ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgICAgIHRoaXMuY29tbWl0dGVkID0gY29tbWl0dGVkOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSggY2hBcnJheSwgb2Zmc2V0LCB0ZXh0LCAwLCBsZW5ndGggKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoYXJhY3Rlckl0ZXJhdG9yIG1ldGhvZHMuCisgICAgICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkgeworICAgICAgICAgICAgcmV0dXJuIF9zZXRJbmRleCggMCApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgbGFzdCgpIHsKKyAgICAgICAgICAgIGlmKCB0ZXh0Lmxlbmd0aCA9PSAwICkgeworICAgICAgICAgICAgICAgIHJldHVybiBfc2V0SW5kZXgoIHRleHQubGVuZ3RoICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gX3NldEluZGV4KCB0ZXh0Lmxlbmd0aCAtIDEgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIGN1cnJlbnQoKSB7CisgICAgICAgICAgICBpZiggaW5kZXggPT0gdGV4dC5sZW5ndGggKQorICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgcmV0dXJuIHRleHRbaW5kZXhdOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmKCBpbmRleCA9PSB0ZXh0Lmxlbmd0aCApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBfc2V0SW5kZXgoIGluZGV4ICsgMSApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKSB7CisgICAgICAgICAgICBpZiggaW5kZXggPT0gMCApCisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICByZXR1cm4gX3NldEluZGV4KCBpbmRleCAtIDEgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwb3NpdGlvbikgeworICAgICAgICAgICAgaWYoIHBvc2l0aW9uIDwgMCB8fCBwb3NpdGlvbiA+IHRleHQubGVuZ3RoICkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBfc2V0SW5kZXgoIHBvc2l0aW9uICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQUNJVGV4dCBjbG9uZSA9IChBQ0lUZXh0KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IgbWV0aG9kcy4KKyAgICAgICAgcHVibGljIGludCBnZXRSdW5TdGFydCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleCA+PSBjb21taXR0ZWQgPyBjb21taXR0ZWQgOiAwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRSdW5TdGFydChBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlIGF0dHJpYnV0ZSkgeworICAgICAgICAgICAgcmV0dXJuIChpbmRleCA+PSBjb21taXR0ZWQgJiYKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPT0gVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKSA/IGNvbW1pdHRlZCA6IDA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KFNldCBhdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICByZXR1cm4gKGluZGV4ID49IGNvbW1pdHRlZCAmJgorICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLmNvbnRhaW5zKFRleHRBdHRyaWJ1dGUuSU5QVVRfTUVUSE9EX1VOREVSTElORSkpID8gY29tbWl0dGVkIDogMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UnVuTGltaXQoKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXggPCBjb21taXR0ZWQgPyBjb21taXR0ZWQgOiB0ZXh0Lmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UnVuTGltaXQoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW5kZXggPCBjb21taXR0ZWQgJiYgCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSA9PSBUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9VTkRFUkxJTkUpID8gY29tbWl0dGVkIDogdGV4dC5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KFNldCBhdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICByZXR1cm4gKGluZGV4IDwgY29tbWl0dGVkICYmCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMuY29udGFpbnMoVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKSkgPyBjb21taXR0ZWQgOiB0ZXh0Lmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBNYXAgZ2V0QXR0cmlidXRlcygpIHsKKyAgICAgICAgICAgIEhhc2h0YWJsZSByZXN1bHQgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gY29tbWl0dGVkICYmIGNvbW1pdHRlZCA8IHRleHQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9VTkRFUkxJTkUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfTE9XX09ORV9QSVhFTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBjb21taXR0ZWQgJiYgCisgICAgICAgICAgICAgICAgY29tbWl0dGVkIDwgdGV4dC5sZW5ndGggJiYKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPT0gVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKSB7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfTE9XX09ORV9QSVhFTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFNldCBnZXRBbGxBdHRyaWJ1dGVLZXlzKCkgeworICAgICAgICAgICAgSGFzaFNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgaWYgKGNvbW1pdHRlZCA8IHRleHQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9VTkRFUkxJTkUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kcworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIGFsd2F5cyBjYWxsZWQgd2l0aCB2YWxpZCBpICggMCA8IGkgPD0gdGV4dC5sZW5ndGggKQorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBjaGFyIF9zZXRJbmRleCggaW50IGkgKSB7CisgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICBpZiggaSA9PSB0ZXh0Lmxlbmd0aCApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0ZXh0W2ldOworICAgICAgICB9CisKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0thbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvS2FubmFkYUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkODExMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0thbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgS2FubmFkYUlucHV0TWV0aG9kRGVzY3JpcHRvciBleHRlbmRzIEluZGljSU1EZXNjcmlwdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIEtBTk5BREEgPSBuZXcgTG9jYWxlKCJrbiIsICJJTiIpOworCisgICAgcHVibGljIEthbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoS0FOTkFEQSwgIkthbm5hZGEiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQ0EwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGRkYnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAxJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwMycsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBDOUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDQnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQzhCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MENBRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBDRTYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQ0U3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MENFOCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBDRTknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQ0VBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MENFQicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBDRUMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQ0VEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MENFRScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBDRUYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQzlCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEM5QScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBDQjcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQ0MzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1RkZGRicsICAgLy8gJz4nCisgICAgICAgIC8qIDNGICovICdcdUZGRkYnLCAgIC8vICc/JworICAgICAgICAvKiA0MCAqLyAnXHVGRkZGJywgICAvLyAnQCcKKyAgICAgICAgLyogNDEgKi8gJ1x1MEM5MycsICAgLy8gJ0EnCisgICAgICAgIC8qIDQyICovICdcdUZGRkYnLCAgIC8vICdCJworICAgICAgICAvKiA0MyAqLyAnXHUwQ0EzJywgICAvLyAnQycKKyAgICAgICAgLyogNDQgKi8gJ1x1MEM4NScsICAgLy8gJ0QnCisgICAgICAgIC8qIDQ1ICovICdcdTBDODYnLCAgIC8vICdFJworICAgICAgICAvKiA0NiAqLyAnXHUwQzg3JywgICAvLyAnRicKKyAgICAgICAgLyogNDcgKi8gJ1x1MEM4OScsICAgLy8gJ0cnCisgICAgICAgIC8qIDQ4ICovICdcdTBDQUInLCAgIC8vICdIJworICAgICAgICAvKiA0OSAqLyAnXHUwQzk4JywgICAvLyAnSScKKyAgICAgICAgLyogNEEgKi8gJ1x1MENCMScsICAgLy8gJ0onCisgICAgICAgIC8qIDRCICovICdcdTBDOTYnLCAgIC8vICdLJworICAgICAgICAvKiA0QyAqLyAnXHUwQ0E1JywgICAvLyAnTCcKKyAgICAgICAgLyogNEQgKi8gJ1x1MENCNicsICAgLy8gJ00nCisgICAgICAgIC8qIDRFICovICdcdTBDQjMnLCAgIC8vICdOJworICAgICAgICAvKiA0RiAqLyAnXHUwQ0E3JywgICAvLyAnTycKKyAgICAgICAgLyogNTAgKi8gJ1x1MEM5RCcsICAgLy8gJ1AnCisgICAgICAgIC8qIDUxICovICdcdTBDOTQnLCAgIC8vICdRJworICAgICAgICAvKiA1MiAqLyAnXHUwQzg4JywgICAvLyAnUicKKyAgICAgICAgLyogNTMgKi8gJ1x1MEM4RicsICAgLy8gJ1MnCisgICAgICAgIC8qIDU0ICovICdcdTBDOEEnLCAgIC8vICdUJworICAgICAgICAvKiA1NSAqLyAnXHUwQzk5JywgICAvLyAnVScKKyAgICAgICAgLyogNTYgKi8gJ1x1RkZGRicsICAgLy8gJ1YnCisgICAgICAgIC8qIDU3ICovICdcdTBDOTAnLCAgIC8vICdXJworICAgICAgICAvKiA1OCAqLyAnXHVGRkZGJywgICAvLyAnWCcKKyAgICAgICAgLyogNTkgKi8gJ1x1MENBRCcsICAgLy8gJ1knCisgICAgICAgIC8qIDVBICovICdcdTBDOEUnLCAgIC8vICdaJworICAgICAgICAvKiA1QiAqLyAnXHUwQ0ExJywgICAvLyAnWycKKyAgICAgICAgLyogNUMgKi8gJ1x1RkZGRicsICAgLy8gJ1wnCisgICAgICAgIC8qIDVEICovICdcdUZGRkYnLCAgIC8vICddJyAgKGRhbmRhIC0gbm90IHNob3duIG9uIElOU0NSSVBUIGNoYXJ0KQorICAgICAgICAvKiA1RSAqLyAnXHVGRjAyJywgICAvLyAnXicKKyAgICAgICAgLyogNUYgKi8gJ1x1MEM4MycsICAgLy8gJ18nCisgICAgICAgIC8qIDYwICovICdcdTBDQ0EnLCAgIC8vICdgJworICAgICAgICAvKiA2MSAqLyAnXHUwQ0NCJywgICAvLyAnYScKKyAgICAgICAgLyogNjIgKi8gJ1x1MENCNScsICAgLy8gJ2InCisgICAgICAgIC8qIDYzICovICdcdTBDQUUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwQ0NEJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MENCRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBDQkYnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwQ0MxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MENBQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTBDOTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwQ0IwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEM5NScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBDQTQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwQ0I4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MENCMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTBDQTYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwQzlDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MENDQycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBDQzAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwQ0M3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MENDMicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBDQjknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwQ0E4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MENDOCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBDODInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwQ0FDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MENDNicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBDQTInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHVGRkZGJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEM5RScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBDOTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBDQ0QnLCAnXHUwQ0IwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0pBX05ZQSA9IHsnXHUwQzlDJywgJ1x1MENDRCcsICdcdTBDOUUnfTsKKyAgICAgICAgY2hhcltdIENPTkpfVEFfUkEgPSB7J1x1MENBNCcsICdcdTBDQ0QnLCAnXHUwQ0IwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwQzk1JywgJ1x1MENDRCcsICdcdTBDQjcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU0hBX1JBID0geydcdTBDQjYnLCAnXHUwQ0NEJywgJ1x1MENCMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIG51bGwsIG51bGwsIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvTWFsYXlhbGFtSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL01hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkOTM0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL01hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBNYWxheWFsYW1JbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBNQUxBWUFMQU0gPSBuZXcgTG9jYWxlKCJtbCIsICJJTiIpOworCisgICAgcHVibGljIE1hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihNQUxBWUFMQU0sICJNYWxheWFsYW0iKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisgICAgCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHVGRkZGJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MEQyMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRkZGJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkZGRicsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGRkYnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwRDFGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjAxJywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MEQwQicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTBEMkYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwRDY2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MEQ2NycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTBENjgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwRDY5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MEQ2QScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTBENkInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwRDZDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MEQ2RCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTBENkUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwRDZGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MEQxQicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTBEMUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwRDM3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MEQ0MycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdUZGRkYnLCAgIC8vICc+JworICAgICAgICAvKiAzRiAqLyAnXHVGRkZGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1RkZGRicsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTBEMTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHUwRDM0JywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MEQyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTBEMDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwRDA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MEQwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTBEMDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwRDJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MEQxOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdTBEMzEnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwRDE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MEQyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTBEMzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwRDMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MEQyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTBEMUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwRDE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MEQwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTBEMEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwRDBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MEQxOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdUZGRkYnLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwRDEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1RkZGRicsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTBEMkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHUwRDBFJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MEQyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdUZGRkYnLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHVGRkZGJywgICAvLyAnXScgKG51a3RhIC0gbm8gVW5pY29kZSBjb2RlIHZhbHVlKQorICAgICAgICAvKiA1RSAqLyAnXHVGRkZGJywgICAvLyAnXicKKyAgICAgICAgLyogNUYgKi8gJ1x1MEQwMycsICAgLy8gJ18nCisgICAgICAgIC8qIDYwICovICdcdTBENEEnLCAgIC8vICdgJworICAgICAgICAvKiA2MSAqLyAnXHUwRDRCJywgICAvLyAnYScKKyAgICAgICAgLyogNjIgKi8gJ1x1MEQzNScsICAgLy8gJ2InCisgICAgICAgIC8qIDYzICovICdcdTBEMkUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwRDREJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MEQzRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBEM0YnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwRDQxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MEQyQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTBEMTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwRDMwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEQxNScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBEMjQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwRDM4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MEQzMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTBEMjYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwRDFDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MEQ0QycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBENDAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwRDQ3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MEQ0MicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBEMzknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwRDI4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MEQ0OCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBEMDInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwRDJDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MEQ0NicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBEMjInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHVGRkZGJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEQxRScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBEMTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBENEQnLCAnXHUwRDMwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwRDE1JywgJ1x1MEQ0RCcsICdcdTBEMzcnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgQ09OSl9LQV9TU0EKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgbnVsbCwgbnVsbCwgc3Vic3RpdHV0aW9uVGFibGUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmJhYTFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9Pcml5YUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBPcml5YUlucHV0TWV0aG9kRGVzY3JpcHRvciBleHRlbmRzIEluZGljSU1EZXNjcmlwdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIE9SSVlBID0gbmV3IExvY2FsZSgib3IiLCAiSU4iKTsKKworICAgIHB1YmxpYyBPcml5YUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihPUklZQSwgIk9yaXlhIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBqb2luV2l0aE51a3RhOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBudWt0YUZvcm07CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQjIwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGMDEnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAyJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwNCcsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBCMUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDUnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQjBCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEI1RicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBCNjYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQjY3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEI2OCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBCNjknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQjZBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEI2QicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBCNkMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQjZEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEI2RScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBCNkYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQjFCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEIxQScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBCMzcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQjQzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nIChEZXZhbmFnYXJpIGRhbmRhKQorICAgICAgICAvKiAzRiAqLyAnXHUwQjJGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1RkZGRicsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTBCMTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHVGRkZGJywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MEIyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTBCMDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwQjA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MEIwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTBCMDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwQjJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MEIxOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdUZGRkYnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwQjE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MEIyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTBCMzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwQjMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MEIyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTBCMUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwQjE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MEIwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTBCMEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwQjBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MEIxOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdUZGRkYnLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwQjEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MEIwMScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTBCMkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHVGRkZGJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MEIyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdUZGRkYnLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwQjNDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkYwMycsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTBCMDMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHVGRkZGJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MEI0QicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTBCMkMnLCAgIC8vICdiJyAodmEsIGJ1dCBubyBVbmljb2RlIGNvZGUgcG9pbnQsIHVzZWQgYmEgaW5zdGVhZCkKKyAgICAgICAgLyogNjMgKi8gJ1x1MEIyRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBCNEQnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQjNFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEIzRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBCNDEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQjJBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MEIxNycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBCMzAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQjE1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEIyNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBCMzgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQjMyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MEIyNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBCMUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQjRDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEI0MCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBCNDcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQjQyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEIzOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBCMjgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQjQ4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEIwMicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTBCMkMnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHVGRkZGJywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MEIyMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdUZGRkYnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQjFFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1RkZGRicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MEI0RCcsICdcdTBCMzAnfTsKKyAgICAgICAgY2hhcltdIFJBX1NVUCA9IHsnXHUwQjMwJywgJ1x1MEI0RCd9OworICAgICAgICBjaGFyW10gQ09OSl9KQV9OWUEgPSB7J1x1MEIxQycsICdcdTBCNEQnLCAnXHUwQjFFJ307CisgICAgICAgIGNoYXJbXSBDT05KX1RBX1JBID0geydcdTBCMjQnLCAnXHUwQjREJywgJ1x1MEIzMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MEIxNScsICdcdTBCNEQnLCAnXHUwQjM3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NIQV9SQSA9IHsnXHUwQjM2JywgJ1x1MEI0RCcsICdcdTBCMzAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgUkFfU1VQLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5IE51a3RhIHNob3VsZCBiZSByZXBsYWNlZAorICAgICAgICAvLyBieSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgYXMgZGVmaW5lZCBpbiBJU0NJSTkxCisgICAgICAgIGNoYXIgTEVUVEVSX0kgICAgICAgICAgICAgID0gJ1x1MEIwNyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0lJICAgICAgICAgICAgID0gJ1x1MEIwOCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUiAgICAgID0gJ1x1MEIwQic7CisgICAgICAgIGNoYXIgTEVUVEVSX0REQSAgICAgICAgICAgID0gJ1x1MEIyMSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0RESEEgICAgICAgICAgID0gJ1x1MEIyMic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JICAgICAgICAgID0gJ1x1MEIzRic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JSSAgICAgICAgID0gJ1x1MEI0MCc7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHJlcGxhY2UgdGhlIGFib3ZlIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEuIFRoZXNlCisgICAgICAgIC8vIGFyZSBkZWZpbmVkIGluIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2Ugb3JkZXIuCisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTCAgICAgID0gJ1x1MEIwQyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTEwgICAgID0gJ1x1MEI2MSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUlIgICAgID0gJ1x1MEI2MCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1JSQSAgICAgICAgICAgID0gJ1x1MEI1Qyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1JIQSAgICAgICAgICAgID0gJ1x1MEI1RCc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0wgID0gJ1x1MEI2Mic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0xMID0gJ1x1MEI2Myc7CisKKyAgICAgICAgam9pbldpdGhOdWt0YSA9IG5ldyBjaGFyW10geworICAgICAgICBMRVRURVJfVk9DQUxJQ19SICwKKyAgICAgICAgTEVUVEVSX0ksCisgICAgICAgIExFVFRFUl9JSSwKKyAgICAgICAgTEVUVEVSX0REQSwKKyAgICAgICAgTEVUVEVSX0RESEEsCisgICAgICAgIFZPV0VMX1NJR05fSSwKKyAgICAgICAgVk9XRUxfU0lHTl9JSQorICAgICAgICB9OworICAgIAorICAgICAgICBudWt0YUZvcm0gPSBuZXcgY2hhcltdIHsKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfUlIsCisgICAgICAgIExFVFRFUl9WT0NBTElDX0wsCisgICAgICAgIExFVFRFUl9WT0NBTElDX0xMLAorICAgICAgICBMRVRURVJfUlJBLAorICAgICAgICBMRVRURVJfUkhBLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfTCwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX0xMCisgICAgICAgIH07CisgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgam9pbldpdGhOdWt0YSwgbnVrdGFGb3JtLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RhbWlsSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RhbWlsSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFmYTEyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvVGFtaWxJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgVGFtaWxJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBUQU1JTCA9IG5ldyBMb2NhbGUoInRhIiwgIklOIik7CisKKyAgICBwdWJsaWMgVGFtaWxJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoVEFNSUwsICJUYW1pbCIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHVGRkZGJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkZGRicsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGRkYnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRkZGJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwMCcsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBCOUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDEnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHVGRkZGJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEJBRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBCRTYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQkU3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEJFOCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBCRTknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQkVBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEJFQicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBCRUMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQkVEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEJFRScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBCRUYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHVGRkZGJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEI5QScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBCQjcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHVGRkZGJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSkKKyAgICAgICAgLyogM0YgKi8gJ1x1RkZGRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdUZGRkYnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQjkzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1MEJCNCcsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBCQTMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQjg1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEI4NicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBCODcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQjg5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1RkZGRicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdUZGRkYnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHUwQkIxJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1RkZGRicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdUZGRkYnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHVGRkZGJywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEJCMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdUZGRkYnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHVGRkZGJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEI5NCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBCODgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQjhGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEI4QScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBCOTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHUwQkE5JywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEI5MCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdUZGRkYnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHVGRkZGJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1MEI4RScsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdUZGRkYnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHVGRkZGJywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1RkZGRicsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGRkYnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQjgzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1MEJDQScsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBCQ0InLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQkI1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MEJBRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBCQ0QnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQkJFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEJCRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBCQzEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQkFBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1RkZGRicsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBCQjAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQjk1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEJBNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBCQjgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQkIyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1RkZGRicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBCOUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQkNDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEJDMCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBCQzcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQkMyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEJCOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBCQTgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQkM4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEI4MicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdUZGRkYnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHUwQkM2JywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1RkZGRicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdUZGRkYnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQjlFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1MEI5MicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwQjk1JywgJ1x1MEJDRCcsICdcdTBCQjcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU1NBX1JBID0geydcdTBCQjcnLCAnXHUwQkNEJywgJ1x1MEJCMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgQ09OSl9LQV9TU0EsIENPTkpfU1NBX1JBCisgICAgICAgIH07CisgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIG51bGwsIG51bGwsIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvVGVsdWd1SW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxZjI2YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUZWx1Z3VJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBURUxVR1UgPSBuZXcgTG9jYWxlKCJ0ZSIsICJJTiIpOworCisgICAgcHVibGljIFRlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihURUxVR1UsICJUZWx1Z3UiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQzIwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGRkYnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAxJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwMycsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBDMUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDQnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQzBCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEMyRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBDNjYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQzY3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEM2OCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBDNjknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQzZBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEM2QicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBDNkMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQzZEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEM2RScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBDNkYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQzFCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEMxQScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBDMzcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQzQzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSAtIG5vdCBzaG93biBvbiBJTlNDUklQVCBjaGFydCkKKyAgICAgICAgLyogM0YgKi8gJ1x1RkZGRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdUZGRkYnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQzEzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1RkZGRicsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBDMjMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQzA1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEMwNicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBDMDcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQzA5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MEMyQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTBDMTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHUwQzMxJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MEMxNicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTBDMjUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwQzM2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEMzMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTBDMjcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwQzFEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEMxNCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBDMDgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQzBGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEMwQScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBDMTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHVGRkZGJywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEMxMCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTBDMDEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwQzJEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1MEMwRScsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTBDMjEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHVGRkZGJywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1RkZGRicsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGMDInLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQzAzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1MEM0QScsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBDNEInLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQzM1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MEMyRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBDNEQnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQzNFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEMzRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBDNDEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQzJBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MEMxNycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBDMzAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQzE1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEMyNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBDMzgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQzMyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MEMyNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBDMUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQzRDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEM0MCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBDNDcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQzQyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEMzOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBDMjgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQzQ4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEMwMicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTBDMkMnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHUwQzQ2JywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MEMyMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdUZGRkYnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQzFFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1MEMxMicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MEM0RCcsICdcdTBDMzAnfTsKKyAgICAgICAgY2hhcltdIENPTkpfSkFfTllBID0geydcdTBDMUMnLCAnXHUwQzREJywgJ1x1MEMxRSd9OworICAgICAgICBjaGFyW10gQ09OSl9UQV9SQSA9IHsnXHUwQzI0JywgJ1x1MEM0RCcsICdcdTBDMzAnfTsKKyAgICAgICAgY2hhcltdIENPTkpfS0FfU1NBID0geydcdTBDMTUnLCAnXHUwQzREJywgJ1x1MEMzNyd9OworICAgICAgICBjaGFyW10gQ09OSl9TSEFfUkEgPSB7J1x1MEMzNicsICdcdTBDNEQnLCAnXHUwQzMwJ307CisKKyAgICAgICAgc3Vic3RpdHV0aW9uVGFibGUgPSBuZXcgY2hhcltdW10geworICAgICAgICBSQV9TVUIsIENPTkpfSkFfTllBLCBDT05KX1RBX1JBLCBDT05KX0tBX1NTQSwgQ09OSl9TSEFfUkEKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2RJbXBsKGtleWJvYXJkTWFwLCBudWxsLCBudWxsLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9tYW5pZmVzdC5zdHViCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwNWNjZjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL21hbmlmZXN0LnN0dWIKQEAgLTAsMCArMSwxNCBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCisKK05hbWU6IGNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYworU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIEluZGljIElNRQorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAxLjAKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQk0KK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBJQ1UgSW5kaWMgSU1FCitJbXBsZW1lbnRhdGlvbi1WZXJzaW9uOiAxLjAKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ6IGNvbS5pYm0KK0NvcHlyaWdodC1JbmZvOiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0V4dGVuc2lvbi1OYW1lOiBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL3NlcnZpY2VzL2phdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3IgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL3NlcnZpY2VzL2phdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFlNWIxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvc2VydmljZXMvamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kRGVzY3JpcHRvcgpAQCAtMCwwICsxLDkgQEAKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5CZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuRGV2YW5hZ2FyaUlucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLkd1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5LYW5uYWRhSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuTWFsYXlhbGFtSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5UYW1pbElucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLlRlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvci5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvci5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZmE0MTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyMCBAQAorIworIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMKKyMgRGVmYXVsdCBtZXNzYWdlcyBmb3IgdGhlIElDVSB0cmFuc2xpdGVyYXRvciBpbnB1dCBtZXRob2QuCisjCisKK25hbWU9SUNVIFRyYW5zbGl0ZXJhdG9yCit0aXRsZT1JQ1UgVHJhbnNsaXRlcmF0b3IgSW5wdXQgTWV0aG9kCitzdGFydD1QbGVhc2Ugd2FpdCwgbG9hZGluZyB0cmFuc2xpdGVyYXRvcnMKK2FjdGl2ZUVycm9yPURpc3BhdGNoIG1ldGhvZCBjYWxsZWQgd2hpbGUgdGhlIElNRSB3YXMgaW5hY3RpdmUKK2Rpc3Bvc2VkRXJyb3I9RGlzcGF0Y2ggY2FsbGVkIGFmdGVyIElNRSB3YXMgZGlzcG9zZWQKK2lucHV0RXJyb3I9RGlzcGF0Y2ggY2FsbGVkIHdpdGhvdXQgYW4gSW5wdXRFdmVudAorYWN0aXZhdGVFcnJvcj1JTUUgaXMgYWxyZWFkeSBhY3RpdmUKK2RlYWN0aXZhdGVFcnJvcj1JTUUgaXMgYWxyZWFkeSBkZWFjdGl2YXRlZAoraGlkZUVycm9yPUNhbm5vdCBoaWRlIElNRSB3aGlsZSBhY3RpdmUKK2Rpc3Bvc2VFcnJvcj1DYW5ub3QgZGlzcG9zZSBJTUUgd2hpbGUgYWN0aXZlCittdWx0aXBsZURpc3Bvc2VFcnJvcj1JTUUgaXMgYWxyZWFkeSBkaXNwb3NlZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NlNWJmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5qYXZhCkBAIC0wLDAgKzEsNjkwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS50cmFuc2xpdDsKKworaW1wb3J0IGphdmEuYXd0LkFXVEV2ZW50OworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CitpbXBvcnQgamF2YS5hd3QuV2luZG93OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LklucHV0RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSW5wdXRNZXRob2RFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRIaXRJbmZvOworaW1wb3J0IGphdmEuYXd0LmltLklucHV0TWV0aG9kSGlnaGxpZ2h0OworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZDsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2RDb250ZXh0OworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkU3RyaW5nOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgamF2YXguc3dpbmcuSkNvbWJvQm94OworaW1wb3J0IGphdmF4LnN3aW5nLkpMYWJlbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KTGlzdDsKK2ltcG9ydCBqYXZheC5zd2luZy5MaXN0Q2VsbFJlbmRlcmVyOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKKworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QgaW1wbGVtZW50cyBJbnB1dE1ldGhvZCB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHVzZXNBdHRhY2hlZElNRSgpIHsKKyAgICAvLyB3ZSdyZSBpbiB0aGUgZXh0IGRpcmVjdG9yeSBzbyBwZXJtaXNzaW9ucyBhcmUgbm90IGFuIGlzc3VlCisgICAgU3RyaW5nIG9zID0gU3lzdGVtLmdldFByb3BlcnR5KCJvcy5uYW1lIik7CisgICAgaWYgKG9zICE9IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIG9zLmluZGV4T2YoIldpbmRvd3MiKSA9PSAtMTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIHRydWUgaWYgU29sYXJpcyBzdHlsZTsgZmFsc2UgaWYgUEMgc3R5bGUsIGFzc3VtZSBBcHBsZSB1c2VzIFBDIHN0eWxlIGZvciBub3cKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGF0dGFjaGVkU3RhdHVzV2luZG93ID0gdXNlc0F0dGFjaGVkSU1FKCk7CisKKyAgICAvLyB0aGUgc2hhcmVkIHN0YXR1cyB3aW5kb3cKKyAgICBwcml2YXRlIHN0YXRpYyBXaW5kb3cgc3RhdHVzV2luZG93OworCisgICAgLy8gY3VycmVudCBvciBsYXN0IG93bmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZCBzdGF0dXNXaW5kb3dPd25lcjsKKworICAgIC8vIGNhY2hlIGxvY2F0aW9uIGxpbWl0cyBmb3IgYXR0YWNoZWQKKyAgICBwcml2YXRlIHN0YXRpYyBSZWN0YW5nbGUgYXR0YWNoZWRMaW1pdHM7CisKKyAgICAvLyBjb252ZW5pZW5jZSBvZiBhY2Nlc3MsIHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICBwcml2YXRlIHN0YXRpYyBKQ29tYm9Cb3ggY2hvaWNlczsKKworICAgIC8vCisgICAgLy8gcGVyLWluc3RhbmNlIHN0YXRlCisgICAgLy8KKworICAgIC8vIGlmIHdlJ3JlIGF0dGFjaGVkLCB0aGUgc3RhdHVzIHdpbmRvdyBmb2xsb3dzIHRoZSBjbGllbnQgd2luZG93CisgICAgcHJpdmF0ZSBQb2ludCBhdHRhY2hlZExvY2F0aW9uOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdpZDsKKworICAgIHByaXZhdGUgaW50IGlkID0gZ2lkKys7CisKKyAgICBJbnB1dE1ldGhvZENvbnRleHQgaW1jOworICAgIHByaXZhdGUgYm9vbGVhbiBlbmFibGVkID0gdHJ1ZTsKKworICAgIHByaXZhdGUgaW50IHNlbGVjdGVkSW5kZXggPSAtMTsgLy8gaW5kZXggaW4gSkNvbWJvQm94IGNvcnJlc3BvbmRpbmcgdG8gb3VyIHRyYW5zbGl0ZXJhdG9yCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRvcjsKKyAgICBwcml2YXRlIGludCBkZXNpcmVkQ29udGV4dDsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZVN0cmluZyByZXBsYWNlYWJsZVRleHQ7CisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleDsKKworICAgIC8vIGRlYnVnZ2luZworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gVFJBQ0VfRVZFTlQgPSBmYWxzZTsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFRSQUNFX01FU1NBR0VTID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBUUkFDRV9CVUZGRVIgPSBmYWxzZTsKKworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kKCkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPGNvbnN0cnVjdG9yPiIpOworCisgICAgICAgIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVwbGFjZWFibGVUZXh0ID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKGJ1ZmZlcik7CisgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkdW1wU3RhdHVzKFN0cmluZyBtc2cpIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIigiICsgdGhpcyArICIpICIgKyBtc2cpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldElucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhvZENvbnRleHQgY29udGV4dCkgeworICAgIGluaXRTdGF0dXNXaW5kb3coY29udGV4dCk7CisKKyAgICBpbWMgPSBjb250ZXh0OworICAgIGltYy5lbmFibGVDbGllbnRXaW5kb3dOb3RpZmljYXRpb24odGhpcywgYXR0YWNoZWRTdGF0dXNXaW5kb3cpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdFN0YXR1c1dpbmRvdyhJbnB1dE1ldGhvZENvbnRleHQgY29udGV4dCkgeworICAgIGlmIChzdGF0dXNXaW5kb3cgPT0gbnVsbCkgeworICAgICAgICBTdHJpbmcgdGl0bGU7CisgICAgICAgICAgICB0cnkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLnRyYW5zbGl0LlRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgICAgICAgICAgdGl0bGUgPSByYi5nZXRTdHJpbmcoInRpdGxlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG0pIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvciByZXNvdXJjZXMgbWlzc2luZzogIiArIG0pOworICAgICAgICAgICAgICAgIHRpdGxlID0gIlRyYW5zbGl0ZXJhdG9yIElucHV0IE1ldGhvZCI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFdpbmRvdyBzdyA9IGNvbnRleHQuY3JlYXRlSW5wdXRNZXRob2RXaW5kb3codGl0bGUsIGZhbHNlKTsKKworICAgICAgICAvLyBnZXQgYWxsIHRoZSBJQ1UgVHJhbnNsaXRlcmF0b3JzCisgICAgICAgIEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgVHJlZVNldCB0eXBlcyA9IG5ldyBUcmVlU2V0KG5ldyBMYWJlbENvbXBhcmF0b3IoKSk7CisKKyAgICAgICAgd2hpbGUoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgIFN0cmluZyBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoaWQpOworICAgICAgICBKTGFiZWwgbGFiZWwgPSBuZXcgSkxhYmVsKG5hbWUpOworICAgICAgICBsYWJlbC5zZXROYW1lKGlkKTsKKyAgICAgICAgdHlwZXMuYWRkKGxhYmVsKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFkZCB0aGUgdHJhbnNsaXRlcmF0b3JzIHRvIHRoZSBjb21ibyBib3gKKworICAgICAgICBjaG9pY2VzID0gbmV3IEpDb21ib0JveCh0eXBlcy50b0FycmF5KCkpOworICAgICAgIAorICAgICAgICBjaG9pY2VzLnNldEVkaXRhYmxlKGZhbHNlKTsKKyAgICAgICAgY2hvaWNlcy5zZXRTZWxlY3RlZEluZGV4KDApOworICAgICAgICBjaG9pY2VzLnNldFJlbmRlcmVyKG5ldyBOYW1lUmVuZGVyZXIoKSk7CisgICAgICAgIGNob2ljZXMuc2V0QWN0aW9uQ29tbWFuZCgidHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgCisgICAgICAgIGNob2ljZXMuYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChzdGF0dXNXaW5kb3dPd25lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzV2luZG93T3duZXIuc3RhdHVzV2luZG93QWN0aW9uKGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBzdy5hZGQoY2hvaWNlcyk7CisgICAgICAgIHN3LnBhY2soKTsKKworICAgICAgICBEaW1lbnNpb24gc2QgPSBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U2NyZWVuU2l6ZSgpOworICAgICAgICBEaW1lbnNpb24gd2QgPSBzdy5nZXRTaXplKCk7CisgICAgICAgIGlmIChhdHRhY2hlZFN0YXR1c1dpbmRvdykgeworICAgICAgICBhdHRhY2hlZExpbWl0cyA9IG5ldyBSZWN0YW5nbGUoMCwgMCwgc2Qud2lkdGggLSB3ZC53aWR0aCwgc2QuaGVpZ2h0IC0gd2QuaGVpZ2h0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgc3cuc2V0TG9jYXRpb24oc2Qud2lkdGggLSB3ZC53aWR0aCwKKyAgICAgICAgICAgICAgICAgICBzZC5oZWlnaHQgLSB3ZC5oZWlnaHQgLSAyNSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN5bmNocm9uaXplZCAoVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5jbGFzcykgeworICAgICAgICBpZiAoc3RhdHVzV2luZG93ID09IG51bGwpIHsKKyAgICAgICAgICAgIHN0YXR1c1dpbmRvdyA9IHN3OworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHN0YXR1c1dpbmRvd0FjdGlvbihBY3Rpb25FdmVudCBlKSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI+PnN0YXR1cyB3aW5kb3cgYWN0aW9uIik7CisgICAgSkNvbWJvQm94IGNiID0gKEpDb21ib0JveCllLmdldFNvdXJjZSgpOworICAgIGludCBzaSA9IGNiLmdldFNlbGVjdGVkSW5kZXgoKTsKKyAgICBpZiAoc2kgIT0gc2VsZWN0ZWRJbmRleCkgeyAvLyBvdGhlcndpc2UsIHdlIGRvbid0IG5lZWQgdG8gY2hhbmdlCisgICAgICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygic3RhdHVzIHdpbmRvdyBhY3Rpb24gb2xkSW5kZXg6ICIgKyBzZWxlY3RlZEluZGV4ICsgIiBuZXdJbmRleDogIiArIHNpKTsKKyAgICAgICAgCisgICAgICAgIHNlbGVjdGVkSW5kZXggPSBzaTsKKworICAgICAgICBKTGFiZWwgaXRlbSA9IChKTGFiZWwpY2IuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gY29uc3RydWN0IHRoZSBhY3R1YWwgdHJhbnNsaXRlcmF0b3IKKyAgICAgICAgLy8gY29tbWl0IGFueSB0ZXh0IHRoYXQgbWF5IGJlIHByZXNlbnQgZmlyc3QKKyAgICAgICAgY29tbWl0QWxsKCk7CisKKyAgICAgICAgdHJhbnNsaXRlcmF0b3IgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpdGVtLmdldE5hbWUoKSk7CisgICAgICAgIGRlc2lyZWRDb250ZXh0ID0gdHJhbnNsaXRlcmF0b3IuZ2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKTsKKworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIjw8c3RhdHVzIHdpbmRvdyBhY3Rpb24iKTsKKyAgICB9CisKKyAgICAvLyBqYXZhIGhhcyBubyBwaW4gdG8gcmVjdGFuZ2xlIGZ1bmN0aW9uPworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgcGluKFBvaW50IHAsIFJlY3RhbmdsZSByKSB7CisgICAgaWYgKHAueCA8IHIueCkgeyBwLnggPSByLng7IH0gZWxzZSBpZiAocC54ID4gci54ICsgci53aWR0aCkgeyBwLnggPSByLnggKyByLndpZHRoOyB9CisgICAgaWYgKHAueSA8IHIueSkgeyBwLnkgPSByLnk7IH0gZWxzZSBpZiAocC55ID4gci55ICsgci5oZWlnaHQpIHsgcC55ID0gci55ICsgci5oZWlnaHQ7IH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBub3RpZnlDbGllbnRXaW5kb3dDaGFuZ2UoUmVjdGFuZ2xlIGxvY2F0aW9uKSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI+Pm5vdGlmeSBjbGllbnQgd2luZG93IGNoYW5nZTogIiArIGxvY2F0aW9uKTsKKyAgICBzeW5jaHJvbml6ZWQgKFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuY2xhc3MpIHsKKyAgICAgICAgaWYgKHN0YXR1c1dpbmRvd093bmVyID09IHRoaXMpIHsKKyAgICAgICAgaWYgKGxvY2F0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIHN0YXR1c1dpbmRvdy5zZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF0dGFjaGVkTG9jYXRpb24gPSBuZXcgUG9pbnQobG9jYXRpb24ueCwgbG9jYXRpb24ueSArIGxvY2F0aW9uLmhlaWdodCk7CisgICAgICAgICAgICBwaW4oYXR0YWNoZWRMb2NhdGlvbiwgYXR0YWNoZWRMaW1pdHMpOworICAgICAgICAgICAgc3RhdHVzV2luZG93LnNldExvY2F0aW9uKGF0dGFjaGVkTG9jYXRpb24pOworICAgICAgICAgICAgc3RhdHVzV2luZG93LnNldFZpc2libGUodHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIjw8bm90aWZ5IGNsaWVudCB3aW5kb3cgY2hhbmdlOiAiICsgbG9jYXRpb24pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGl2YXRlKCkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPj5hY3RpdmF0ZSIpOworCisgICAgICAgIHN5bmNocm9uaXplZCAoVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5jbGFzcykgeworICAgICAgICBpZiAoc3RhdHVzV2luZG93T3duZXIgIT0gdGhpcykgeworICAgICAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoInNldFN0YXR1c1dpbmRvd093bmVyIGZyb206ICIgKyBzdGF0dXNXaW5kb3dPd25lciArICIgdG86ICIgKyB0aGlzKTsKKworICAgICAgICBzdGF0dXNXaW5kb3dPd25lciA9IHRoaXM7CisgICAgICAgIGlmIChhdHRhY2hlZFN0YXR1c1dpbmRvdyAmJiBhdHRhY2hlZExvY2F0aW9uICE9IG51bGwpIHsgLy8gd2lsbCBiZSBudWxsIGJlZm9yZSBmaXJzdCBjaGFuZ2Ugbm90aWZpY2F0aW9uCisgICAgICAgICAgICBzdGF0dXNXaW5kb3cuc2V0TG9jYXRpb24oYXR0YWNoZWRMb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgY2hvaWNlcy5zZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPT0gLTEgPyBjaG9pY2VzLmdldFNlbGVjdGVkSW5kZXgoKSA6IHNlbGVjdGVkSW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgY2hvaWNlcy5zZXRGb3JlZ3JvdW5kKENvbG9yLkJMQUNLKTsKKyAgICAgICAgc3RhdHVzV2luZG93LnNldFZpc2libGUodHJ1ZSk7CisgICAgfQorICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPDxhY3RpdmF0ZSIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkZWFjdGl2YXRlKGJvb2xlYW4gaXNUZW1wb3JhcnkpIHsKKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIj4+ZGVhY3RpdmF0ZSIgKyAoaXNUZW1wb3JhcnkgPyAiICh0ZW1wb3JhcnkpIiA6ICIiKSk7CisgICAgaWYgKCFpc1RlbXBvcmFyeSkgeworICAgICAgICBzeW5jaHJvbml6ZWQoVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5jbGFzcykgeworICAgICAgICBjaG9pY2VzLnNldEZvcmVncm91bmQoQ29sb3IuTElHSFRfR1JBWSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI8PGRlYWN0aXZhdGUiICsgKGlzVGVtcG9yYXJ5ID8gIiAodGVtcG9yYXJ5KSIgOiAiIikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBoaWRlV2luZG93cygpIHsKKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIj4+aGlkZVdpbmRvd3MiKTsKKyAgICBzeW5jaHJvbml6ZWQgKFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuY2xhc3MpIHsKKyAgICAgICAgaWYgKHN0YXR1c1dpbmRvd093bmVyID09IHRoaXMpIHsKKyAgICAgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCJoaWRpbmciKTsKKyAgICAgICAgc3RhdHVzV2luZG93LnNldFZpc2libGUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPDxoaWRlV2luZG93cyIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBzZXRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0Q2hhcmFjdGVyU3Vic2V0cyhDaGFyYWN0ZXIuU3Vic2V0W10gc3Vic2V0cykgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlY29udmVydCgpIHsKKyAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVOb3RpZnkoKSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCIqKnJlbW92ZU5vdGlmeSIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBlbmRDb21wb3NpdGlvbigpIHsKKyAgICBjb21taXRBbGwoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkaXNwb3NlKCkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiKipkaXNwb3NlIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBPYmplY3QgZ2V0Q29udHJvbE9iamVjdCgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldENvbXBvc2l0aW9uRW5hYmxlZChib29sZWFuIGVuYWJsZSkgeworICAgIGVuYWJsZWQgPSBlbmFibGU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNDb21wb3NpdGlvbkVuYWJsZWQoKSB7CisgICAgcmV0dXJuIGVuYWJsZWQ7CisgICAgfQorCisgICAgLy8gZGVidWdnaW5nCisgICAgcHJpdmF0ZSBTdHJpbmcgZXZlbnRJbmZvKEFXVEV2ZW50IGV2ZW50KSB7CisgICAgU3RyaW5nIGluZm8gPSBldmVudC50b1N0cmluZygpOworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgaW50IGluZGV4MSA9IGluZm8uaW5kZXhPZigiWyIpOworICAgIGludCBpbmRleDIgPSBpbmZvLmluZGV4T2YoIiwiLCBpbmRleDEpOworICAgIGJ1Zi5hcHBlbmQoaW5mby5zdWJzdHJpbmcoaW5kZXgxKzEsIGluZGV4MikpOworCisgICAgaW5kZXgxID0gaW5mby5pbmRleE9mKCJdIG9uICIpOworICAgIGluZGV4MiA9IGluZm8uaW5kZXhPZigiWyIsIGluZGV4MSk7CisgICAgaWYgKGluZGV4MiAhPSAtMSkgeworICAgICAgICBpbnQgaW5kZXgzID0gaW5mby5sYXN0SW5kZXhPZigiLiIsIGluZGV4Mik7CisgICAgICAgIGlmIChpbmRleDMgPCBpbmRleDEgKyA0KSB7CisgICAgICAgIGluZGV4MyA9IGluZGV4MSArIDQ7CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiIG9uICIpOworICAgICAgICBidWYuYXBwZW5kKGluZm8uc3Vic3RyaW5nKGluZGV4MysxLCBpbmRleDIpKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoRXZlbnQoQVdURXZlbnQgZXZlbnQpIHsKKyAgICBmaW5hbCBpbnQgTU9ESUZJRVJTID0gCisgICAgICAgIElucHV0RXZlbnQuQ1RSTF9NQVNLIHwgCisgICAgICAgIElucHV0RXZlbnQuTUVUQV9NQVNLIHwgCisgICAgICAgIElucHV0RXZlbnQuQUxUX01BU0sgfCAKKyAgICAgICAgSW5wdXRFdmVudC5BTFRfR1JBUEhfTUFTSzsKKworICAgIHN3aXRjaCAoZXZlbnQuZ2V0SUQoKSkgeworICAgIGNhc2UgTW91c2VFdmVudC5NT1VTRV9QUkVTU0VEOgorICAgICAgICBpZiAoZW5hYmxlZCkgeworICAgICAgICBpZiAoVFJBQ0VfRVZFTlQpIFN5c3RlbS5vdXQucHJpbnRsbigiVElNOiAiICsgZXZlbnRJbmZvKGV2ZW50KSk7CisgICAgICAgIC8vIHdlJ2xsIGdldCB0aGlzIGV2ZW4gaWYgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nLCBjYW4gd2UgcmVseSBvbiB0aGUgY29tcG9uZW50PworICAgICAgICAvLyBjb21taXRBbGwoKTsgLy8gZG9uJ3QgYWxsb3cgZXZlbiBjbGlja3Mgd2l0aGluIG91ciBvd24gZWRpdCBhcmVhCisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEtleUV2ZW50LktFWV9UWVBFRDogeworICAgICAgICBpZiAoZW5hYmxlZCkgeworICAgICAgICBLZXlFdmVudCBrZSA9IChLZXlFdmVudClldmVudDsKKyAgICAgICAgaWYgKFRSQUNFX0VWRU5UKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRJTTogIiArIGV2ZW50SW5mbyhrZSkpOworICAgICAgICBpZiAoKGtlLmdldE1vZGlmaWVycygpICYgTU9ESUZJRVJTKSAhPSAwKSB7CisgICAgICAgICAgICBjb21taXRBbGwoKTsgLy8gYXNzdW1lIGEgY29tbWFuZCwgbGV0IGl0IGdvIHRocm91Z2gKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChoYW5kbGVUeXBlZChrZS5nZXRLZXlDaGFyKCkpKSB7CisgICAgICAgICAgICBrZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gYnJlYWs7CisKKyAgICBjYXNlIEtleUV2ZW50LktFWV9QUkVTU0VEOiB7CisgICAgICAgIGlmIChlbmFibGVkKSB7CisgICAgICAgIEtleUV2ZW50IGtlID0gKEtleUV2ZW50KWV2ZW50OworICAgICAgICBpZiAoVFJBQ0VfRVZFTlQpIFN5c3RlbS5vdXQucHJpbnRsbigiVElNOiAiICsgZXZlbnRJbmZvKGtlKSk7CisgICAgICAgIGlmIChoYW5kbGVQcmVzc2VkKGtlLmdldEtleUNvZGUoKSkpIHsKKyAgICAgICAgICAgIGtlLmNvbnN1bWUoKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfSBicmVhazsKKworICAgIGNhc2UgS2V5RXZlbnQuS0VZX1JFTEVBU0VEOiB7CisgICAgICAgIC8vIHRoaXMgd29uJ3QgYXV0b3JlcGVhdCwgd2hpY2ggaXMgYmV0dGVyIGZvciB0b2dnbGUgYWN0aW9ucworICAgICAgICBLZXlFdmVudCBrZSA9IChLZXlFdmVudClldmVudDsKKyAgICAgICAgaWYgKGtlLmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19TUEFDRSAmJiBrZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgc2V0Q29tcG9zaXRpb25FbmFibGVkKCFlbmFibGVkKTsKKyAgICAgICAgfQorICAgIH0gYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQorCisgICAgLyoqIFdpcGUgY2xlYW4gKi8KKyAgICBwcml2YXRlIHZvaWQgcmVzZXQoKSB7CisgICAgYnVmZmVyLmRlbGV0ZSgwLCBidWZmZXIubGVuZ3RoKCkpOworICAgIGluZGV4LmNvbnRleHRTdGFydCA9IGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LnN0YXJ0ID0gaW5kZXgubGltaXQgPSAwOworICAgIH0KKworICAgIC8vIGNvbW1pdHRlZH1jb250ZXh0LWNvbXBvc2VkfGNvbXBvc2VkCisgICAgLy8gICAgICAgICAgXiAgICAgICBeICAgICAgICBeCisgICAgLy8gICAgICAgICBjYyAgICAgc3RhcnQgICAgY3R4TGltCisKKyAgICBwcml2YXRlIHZvaWQgdHJhY2VCdWZmZXIoU3RyaW5nIG1zZywgaW50IGNjLCBpbnQgb2ZmKSB7CisgICAgaWYgKFRSQUNFX0JVRkZFUikgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKG1zZyArICI6ICciICsgYnVmZmVyLnN1YnN0cmluZygwLCBjYykgKyAnfScgKworICAgICAgICAgICAgICAgYnVmZmVyLnN1YnN0cmluZyhjYywgaW5kZXguc3RhcnQpICsgJy0nICsKKyAgICAgICAgICAgICAgIGJ1ZmZlci5zdWJzdHJpbmcoaW5kZXguc3RhcnQsIGluZGV4LmNvbnRleHRMaW1pdCkgKyAnfCcgKworICAgICAgICAgICAgICAgYnVmZmVyLnN1YnN0cmluZyhpbmRleC5jb250ZXh0TGltaXQpICsgJ1wnJykpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGUoYm9vbGVhbiBmbHVzaCkgeworICAgIGludCBsZW4gPSBidWZmZXIubGVuZ3RoKCk7CisgICAgU3RyaW5nIHRleHQgPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICBBdHRyaWJ1dGVkU3RyaW5nIGFzID0gbmV3IEF0dHJpYnV0ZWRTdHJpbmcodGV4dCk7CisKKyAgICBpbnQgY2MsIG9mZjsKKyAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgb2ZmID0gaW5kZXguY29udGV4dExpbWl0IC0gbGVuOyAvLyB3aWxsIGJlIG5lZ2F0aXZlCisgICAgICAgIGNjID0gaW5kZXguc3RhcnQgPSBpbmRleC5saW1pdCA9IGluZGV4LmNvbnRleHRMaW1pdCA9IGxlbjsKKyAgICB9IGVsc2UgeworICAgICAgICBjYyA9IGluZGV4LnN0YXJ0ID4gZGVzaXJlZENvbnRleHQgPyBpbmRleC5zdGFydCAtIGRlc2lyZWRDb250ZXh0IDogMDsKKyAgICAgICAgb2ZmID0gaW5kZXguY29udGV4dExpbWl0IC0gY2M7CisgICAgfQorCisgICAgaWYgKGluZGV4LnN0YXJ0IDwgbGVuKSB7CisgICAgICAgIGFzLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9ISUdITElHSFQsIAorICAgICAgICAgICAgICAgIElucHV0TWV0aG9kSGlnaGxpZ2h0LlNFTEVDVEVEX1JBV19URVhUX0hJR0hMSUdIVCwKKyAgICAgICAgICAgICAgICBpbmRleC5zdGFydCwgbGVuKTsKKyAgICB9CisgICAgCisgICAgaW1jLmRpc3BhdGNoSW5wdXRNZXRob2RFdmVudChJbnB1dE1ldGhvZEV2ZW50LklOUFVUX01FVEhPRF9URVhUX0NIQU5HRUQsCisgICAgICAgICAgICAgICAgICAgICBhcy5nZXRJdGVyYXRvcigpLAorICAgICAgICAgICAgICAgICAgICAgY2MsCisgICAgICAgICAgICAgICAgICAgICBUZXh0SGl0SW5mby5sZWFkaW5nKG9mZiksCisgICAgICAgICAgICAgICAgICAgICBudWxsKTsKKworICAgIHRyYWNlQnVmZmVyKCJ1cGRhdGUiLCBjYywgb2ZmKTsKKworICAgIGlmIChjYyA+IDApIHsKKyAgICAgICAgYnVmZmVyLmRlbGV0ZSgwLCBjYyk7CisgICAgICAgIGluZGV4LnN0YXJ0IC09IGNjOworICAgICAgICBpbmRleC5saW1pdCAtPSBjYzsKKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0IC09IGNjOworICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlQ2FyZXQoKSB7CisgICAgaW1jLmRpc3BhdGNoSW5wdXRNZXRob2RFdmVudChJbnB1dE1ldGhvZEV2ZW50LkNBUkVUX1BPU0lUSU9OX0NIQU5HRUQsCisgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgIFRleHRIaXRJbmZvLmxlYWRpbmcoaW5kZXguY29udGV4dExpbWl0KSwKKyAgICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgIHRyYWNlQnVmZmVyKCJ1cGRhdGVDYXJldCIsIDAsIGluZGV4LmNvbnRleHRMaW1pdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjYXJldFRvU3RhcnQoKSB7CisgICAgaWYgKGluZGV4LmNvbnRleHRMaW1pdCA+IGluZGV4LnN0YXJ0KSB7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LmxpbWl0ID0gaW5kZXguc3RhcnQ7CisgICAgICAgIHVwZGF0ZUNhcmV0KCk7CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjYXJldFRvTGltaXQoKSB7CisgICAgaWYgKGluZGV4LmNvbnRleHRMaW1pdCA8IGJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgPSBpbmRleC5saW1pdCA9IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICAgICAgdXBkYXRlQ2FyZXQoKTsKKyAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNhcmV0VG93YXJkc1N0YXJ0KCkgeworICAgIGludCBidWZwb3MgPSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgaWYgKGJ1ZnBvcyA+IGluZGV4LnN0YXJ0KSB7CisgICAgICAgIC0tYnVmcG9zOworICAgICAgICBpZiAoYnVmcG9zID4gaW5kZXguc3RhcnQgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcykpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKGJ1ZmZlci5jaGFyQXQoYnVmcG9zLTEpKSkgeworICAgICAgICAtLWJ1ZnBvczsKKyAgICAgICAgfQorICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgPSBpbmRleC5saW1pdCA9IGJ1ZnBvczsKKyAgICAgICAgdXBkYXRlQ2FyZXQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBjb21taXRBbGwoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY2FyZXRUb3dhcmRzTGltaXQoKSB7CisgICAgaW50IGJ1ZnBvcyA9IGluZGV4LmNvbnRleHRMaW1pdDsKKyAgICBpZiAoYnVmcG9zIDwgYnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICsrYnVmcG9zOworICAgICAgICBpZiAoYnVmcG9zIDwgYnVmZmVyLmxlbmd0aCgpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChidWZwb3MpKSAmJgorICAgICAgICBVQ2hhcmFjdGVyLmlzSGlnaFN1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcy0xKSkpIHsKKyAgICAgICAgKytidWZwb3M7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0ID0gaW5kZXgubGltaXQgPSBidWZwb3M7CisgICAgICAgIHVwZGF0ZUNhcmV0KCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gY29tbWl0QWxsKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkJhY2tzcGFjZSgpIHsKKyAgICByZXR1cm4gaW5kZXguY29udGV4dExpbWl0ID4gMDsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gYmFja3NwYWNlKCkgeworICAgIGludCBidWZwb3MgPSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgaWYgKGJ1ZnBvcyA+IDApIHsKKyAgICAgICAgaW50IGxpbWl0ID0gYnVmcG9zOworICAgICAgICAtLWJ1ZnBvczsKKyAgICAgICAgaWYgKGJ1ZnBvcyA+IDAgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcykpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKGJ1ZmZlci5jaGFyQXQoYnVmcG9zLTEpKSkgeworICAgICAgICAtLWJ1ZnBvczsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVmcG9zIDwgaW5kZXguc3RhcnQpIHsKKyAgICAgICAgaW5kZXguc3RhcnQgPSBidWZwb3M7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0ID0gaW5kZXgubGltaXQgPSBidWZwb3M7CisgICAgICAgIGRvRGVsZXRlKGJ1ZnBvcywgbGltaXQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjYW5EZWxldGUoKSB7CisgICAgcmV0dXJuIGluZGV4LmNvbnRleHRMaW1pdCA8IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gZGVsZXRlKCkgeworICAgIGludCBidWZwb3MgPSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgaWYgKGJ1ZnBvcyA8IGJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICBpbnQgbGltaXQgPSBidWZwb3MgKyAxOworICAgICAgICBpZiAobGltaXQgPCBidWZmZXIubGVuZ3RoKCkgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0hpZ2hTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChsaW1pdC0xKSkgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGxpbWl0KSkpIHsKKyAgICAgICAgKytsaW1pdDsKKyAgICAgICAgfQorICAgICAgICBkb0RlbGV0ZShidWZwb3MsIGxpbWl0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9EZWxldGUoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICBidWZmZXIuZGVsZXRlKHN0YXJ0LCBsaW1pdCk7CisgICAgdXBkYXRlKGZhbHNlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY29tbWl0QWxsKCkgeworICAgIGlmIChidWZmZXIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIGJvb2xlYW4gYXRTdGFydCA9IGluZGV4LnN0YXJ0ID09IGluZGV4LmNvbnRleHRMaW1pdDsKKyAgICAgICAgYm9vbGVhbiBkaWRDb252ZXJ0ID0gYnVmZmVyLmxlbmd0aCgpID4gaW5kZXguc3RhcnQ7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LmxpbWl0ID0gYnVmZmVyLmxlbmd0aCgpOworICAgICAgICB0cmFuc2xpdGVyYXRvci5maW5pc2hUcmFuc2xpdGVyYXRpb24ocmVwbGFjZWFibGVUZXh0LCBpbmRleCk7CisgICAgICAgIGlmIChhdFN0YXJ0KSB7CisgICAgICAgIGluZGV4LnN0YXJ0ID0gaW5kZXgubGltaXQgPSBpbmRleC5jb250ZXh0TGltaXQgPSAwOworICAgICAgICB9CisgICAgICAgIHVwZGF0ZSh0cnVlKTsKKyAgICAgICAgcmV0dXJuIGRpZENvbnZlcnQ7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2xlYXJBbGwoKSB7CisgICAgaW50IGxlbiA9IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICBpZiAobGVuID4gMCkgeworICAgICAgICBpZiAobGVuID4gaW5kZXguc3RhcnQpIHsKKyAgICAgICAgYnVmZmVyLmRlbGV0ZShpbmRleC5zdGFydCwgbGVuKTsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGUodHJ1ZSk7CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpbnNlcnQoY2hhciBjKSB7CisgICAgdHJhbnNsaXRlcmF0b3IudHJhbnNsaXRlcmF0ZShyZXBsYWNlYWJsZVRleHQsIGluZGV4LCBjKTsKKyAgICB1cGRhdGUoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBlZGl0aW5nKCkgeworICAgIHJldHVybiBidWZmZXIubGVuZ3RoKCkgPiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBiaWcgcHJvYmxlbSBpcyB0aGF0IGZyb20gcmVsZWFzZSB0byByZWxlYXNlIHN3aW5nIGNoYW5nZXMgaG93IGl0CisgICAgICogaGFuZGxlcyBzb21lIGNoYXJhY3RlcnMgbGlrZSB0YWIgYW5kIGJhY2tzcGFjZS4gIFNvbWV0aW1lcyBpdCBoYW5kbGVzCisgICAgICogdGhlbSBhcyBrZXlUeXBlZCBldmVudHMsIGFuZCBzb21ldGltZXMgaXQgaGFuZGxlcyB0aGVtIGFzIGtleVByZXNzZWQKKyAgICAgKiBldmVudHMuICBJZiB5b3Ugd2FudCB0byBhbGxvdyB0aGUgZXZlbnQgdG8gZ28gdGhyb3VnaCBzbyBzd2luZyBoYW5kbGVzCisgICAgICogaXQsIHlvdSBoYXZlIHRvIGFsbG93IG9uZSBvciB0aGUgb3RoZXIgdG8gZ28gdGhyb3VnaC4gIElmIHlvdSBkb24ndCB3YW50CisgICAgICogdGhlIGV2ZW50IHRvIGdvIHRocm91Z2ggc28geW91IGNhbiBoYW5kbGUgaXQsIHlvdSBoYXZlIHRvIHN0b3AgdGhlCisgICAgICogZXZlbnQgYm90aCBwbGFjZXMuCisgICAgICogQHJldHVybiB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgd2FzIGhhbmRsZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaGFuZGxlVHlwZWQoY2hhciBjaCkgeworICAgIGlmIChlbmFibGVkKSB7CisgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgY2FzZSAnXGInOiBpZiAoZWRpdGluZygpKSByZXR1cm4gYmFja3NwYWNlKCk7IGJyZWFrOworICAgICAgICBjYXNlICdcdCc6IGlmIChlZGl0aW5nKCkpIHsgcmV0dXJuIGNvbW1pdEFsbCgpOyB9IGJyZWFrOworICAgICAgICBjYXNlICdcdTAwMWInOiBpZiAoZWRpdGluZygpKSB7IGNsZWFyQWxsKCk7IHJldHVybiB0cnVlOyB9IGJyZWFrOworICAgICAgICBjYXNlICdcdTAwN2YnOiBpZiAoZWRpdGluZygpKSByZXR1cm4gZGVsZXRlKCk7IGJyZWFrOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gaW5zZXJ0KGNoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFuZGxlIGtleVByZXNzZWQgZXZlbnRzLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBoYW5kbGVQcmVzc2VkKGludCBjb2RlKSB7CisgICAgaWYgKGVuYWJsZWQgJiYgZWRpdGluZygpKSB7CisgICAgICAgIHN3aXRjaCAoY29kZSkgeworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1BBR0VfVVA6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfVVA6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfS1BfVVA6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfSE9NRToKKyAgICAgICAgY2FyZXRUb1N0YXJ0KCk7IHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1BBR0VfRE9XTjoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0tQX0RPV046CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfRU5EOgorICAgICAgICBjYXJldFRvTGltaXQoKTsgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19LUF9MRUZUOgorICAgICAgICByZXR1cm4gY2FyZXRUb3dhcmRzU3RhcnQoKTsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19LUF9SSUdIVDoKKyAgICAgICAgcmV0dXJuIGNhcmV0VG93YXJkc0xpbWl0KCk7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfQkFDS19TUEFDRTogCisgICAgICAgIHJldHVybiBjYW5CYWNrc3BhY2UoKTsgLy8gdW5mb3J0dW5hdGVseSwgaW4gMS41IHN3aW5nIGhhbmRsZXMgdGhpcyBpbiBrZXlQcmVzc2VkIGluc3RlYWQgb2Yga2V5VHlwZWQKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ERUxFVEU6IAorICAgICAgICByZXR1cm4gY2FuRGVsZXRlKCk7IC8vIHRoaXMgdG9vPworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1RBQjoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19FTlRFUjoKKyAgICAgICAgcmV0dXJuIGNvbW1pdEFsbCgpOyAvLyBzbyB3ZSdsbCBuZXZlciBoYW5kbGUgVktfVEFCIGluIGtleVR5cGVkCisgICAgICAgIAorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1NISUZUOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0NPTlRST0w6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfQUxUOgorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGlnbm9yZSB0aGVzZSB1bmxlc3MgYSBrZXkgdHlwZWQgZXZlbnQgZ2V0cyBnZW5lcmF0ZWQKKyAgICAgICAgZGVmYXVsdDogCisgICAgICAgIC8vIGJ5IGRlZmF1bHQsIGxldCBlZGl0b3IgaGFuZGxlIGl0LCBhbmQgd2UnbGwgYXNzdW1lIHRoYXQgaXQgd2lsbCB0ZWxsIHVzCisgICAgICAgIC8vIHRvIGVuZENvbXBvc2l0aW9uIGlmIGl0IGRvZXMgYW55dGhpbmcgZnVua3kgd2l0aCwgZS5nLiwgZnVuY3Rpb24ga2V5cy4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgIGZpbmFsIFN0cmluZ1tdIG5hbWVzID0geyAKKyAgICAgICAgImFsaWNlIiwgImJpbGwiLCAiY2FycmllIiwgImRvdWciLCAiZWxlbmEiLCAiZnJhbmsiLCAiZ2VydGllIiwgImhvd2llIiwgImluZ3JpZCIsICJqb2huIiAKKyAgICB9OworCisgICAgaWYgKGlkIDwgbmFtZXMubGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBuYW1lc1tpZF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG5hbWVzW2lkXSArICItIiArIChpZC9uYW1lcy5sZW5ndGgpOworICAgIH0KKyAgICB9Cit9CisKK2NsYXNzIE5hbWVSZW5kZXJlciBleHRlbmRzIEpMYWJlbCBpbXBsZW1lbnRzIExpc3RDZWxsUmVuZGVyZXIgeworCisgICAgcHVibGljIENvbXBvbmVudCBnZXRMaXN0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KAorICAgICAgICBKTGlzdCBsaXN0LAorICAgICAgICBPYmplY3QgdmFsdWUsCisgICAgICAgIGludCBpbmRleCwKKyAgICAgICAgYm9vbGVhbiBpc1NlbGVjdGVkLAorICAgICAgICBib29sZWFuIGNlbGxIYXNGb2N1cykgeworCisgICAgICAgIFN0cmluZyBzID0gKChKTGFiZWwpdmFsdWUpLmdldFRleHQoKTsKKyAgICAgICAgc2V0VGV4dChzKTsKKworICAgICAgICBpZiAoaXNTZWxlY3RlZCkgeworICAgICAgICAgICAgc2V0QmFja2dyb3VuZChsaXN0LmdldFNlbGVjdGlvbkJhY2tncm91bmQoKSk7CisgICAgICAgICAgICBzZXRGb3JlZ3JvdW5kKGxpc3QuZ2V0U2VsZWN0aW9uRm9yZWdyb3VuZCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldEJhY2tncm91bmQobGlzdC5nZXRCYWNrZ3JvdW5kKCkpOworICAgICAgICAgICAgc2V0Rm9yZWdyb3VuZChsaXN0LmdldEZvcmVncm91bmQoKSk7CisgICAgICAgIH0KKworICAgICAgICBzZXRFbmFibGVkKGxpc3QuaXNFbmFibGVkKCkpOworICAgICAgICBzZXRGb250KGxpc3QuZ2V0Rm9udCgpKTsKKyAgICAgICAgc2V0T3BhcXVlKHRydWUpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Cit9CisKK2NsYXNzIExhYmVsQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3Qgb2JqMSwgT2JqZWN0IG9iajIpIHsKKyAgICAgICAgQ29sbGF0b3IgY29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICByZXR1cm4gY29sbGF0b3IuY29tcGFyZSgoKEpMYWJlbClvYmoxKS5nZXRUZXh0KCksICgoSkxhYmVsKW9iajIpLmdldFRleHQoKSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmoxKSB7CisgICAgICAgIHJldHVybiB0aGlzLmVxdWFscyhvYmoxKTsKKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNTc1ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUudHJhbnNsaXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5JbWFnZTsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2Q7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kRGVzY3JpcHRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvKioKKyogVGhlIFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2REZXNjcmlwdG9yIGNsYXNzIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhpcyBwYWNrYWdlCisqIGFzIGFuIGlucHV0IG1ldGhvZCBlZGl0b3IuCisqLworCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZERlc2NyaXB0b3IgaW1wbGVtZW50cyBJbnB1dE1ldGhvZERlc2NyaXB0b3IgeworCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSByYiA9IG51bGw7CisKKyAgICAvKioKKyAgICAqIENyZWF0ZXMgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRSB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGxlZCBieSB0aGUKKyAgICAqIEpWTSB3aGVuIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUgaXMgc2VsZWN0ZWQgZnJvbSB0aGUgaW5wdXQgbWV0aG9kIGxpc3QuCisgICAgKgorICAgICogQHJldHVybiBJbnB1dE1ldGhvZCBUaGUgVHJhbnNsaXRlcmF0b3IgSU1FIG9iamVjdC4KKyAgICAqLworICAgIHB1YmxpYyBJbnB1dE1ldGhvZCBjcmVhdGVJbnB1dE1ldGhvZCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gbmV3IFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QoKTsKKyAgICB9CisgIAorICAgIC8qKgorICAgICogR2V0IHRoZSBsaXN0IG9mIGxvY2FsZXMgdGhhdCB0aGlzIElNRSBzdXBwb3J0cy4KKyAgICAqCisgICAgKiBAcmV0dXJuIExvY2FsZVtdIFRoaXMgd2lsbCBhbHdheXMgaGF2ZSBvbmUgbG9jYWxlLiBCeSBkZWZhdWx0CisgICAgKiAgICAgICAgICAgICAgICAgIHdlIGp1c3QgcmV0dXJuIHRoZSBjdXJyZW50IGxvY2FsZS4gVGhlcmVmb3JlCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUgd29ya3MgaW4gYWxsIGxvY2FsZXMuCisgICAgKi8KKyAgICAvLyB1c2UgdGhlIGN1cnJlbnQgYWN0aXZlIGxvY2FsZQorICAgIHB1YmxpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gbmV3IExvY2FsZVtdIHtMb2NhbGUuZ2V0RGVmYXVsdCgpfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRoZSBUcmFuc2xpdGVyYXRvciBJTUUgZG9lcyBub3Qgc3VwcG9ydCBkeW5hbWljIGxvY2FsZXMuIFRoZSBUcmFuc2xpdGVyYXRvcgorICAgICogSU1FJ3MgZnVuY3Rpb25hbGl0eSBkb2VzIG5vdCBkZXBlbmQgdXBvbiBhbnkgbG9jYWxlLgorICAgICoKKyAgICAqIEByZXR1cm4gYm9vbGVhbiBUaGlzIHdpbGwgYWx3YXlzIGJlIGZhbHNlLgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzRHluYW1pY0xvY2FsZUxpc3QoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIE9idGFpbiB0aGUgbG9jYWxpemVkIG5hbWUgb2YgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRQorICAgICoKKyAgICAqIEBwYXJhbSBpbnB1dExvY2FsZSB0aGUgcmVxdWVzdGVkIGlucHV0IG1ldGhvZCBsb2NhbGUKKyAgICAqIEBwYXJhbSBkaXNwbGF5TGFuZ3VhZ2UgVGhlIHJlcXVlc3RlZCB0cmFuc2xhdGlvbiBvZiB0aGUgVHJhbnNsaXRlcmF0b3IgSU1FCisgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbmFtZSBmb3IgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRQorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJbnB1dE1ldGhvZERpc3BsYXlOYW1lKExvY2FsZSBpbnB1dExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGRpc3BsYXlMYW5ndWFnZSkgeworICAgICAgICBTdHJpbmcgbmFtZSA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJiID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLmljdS5kZXYudG9vbC5pbWUudHJhbnNsaXQuVHJhbnNsaXRlcmF0b3IiLCBkaXNwbGF5TGFuZ3VhZ2UpOworICAgICAgICAgICAgbmFtZSA9IHJiLmdldFN0cmluZygibmFtZSIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gbSkgeworICAgICAgICAgICAgLy8gdXNlIGEgaGFyZGNvZGVkIHZhbHVlCisgICAgICAgICAgICBuYW1lID0gIlRyYW5zbGl0ZXJhdG9yIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgaWNvbiBmb3IgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICoKKyAgICAqIEBwYXJhbSBpbnB1dExvY2FsZSAoVGhpcyBpcyBpZ25vcmVkKS4KKyAgICAqCisgICAgKiBAcmV0dXJuIEltYWdlIFRoaXMgd2lsbCBhbHdheXMgYmUgbnVsbC4KKyAgICAqLworICAgIHB1YmxpYyBJbWFnZSBnZXRJbnB1dE1ldGhvZEljb24oTG9jYWxlIGlucHV0TG9jYWxlKSB7CisgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L21hbmlmZXN0LnN0dWIgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L21hbmlmZXN0LnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdlMzE5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvbWFuaWZlc3Quc3R1YgpAQCAtMCwwICsxLDExIEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NyZWF0ZWQtQnk6IDEuMCAoSUJNIENvcnBvcmF0aW9uKQorRXh0ZW5zaW9uLU5hbWU6IGNvbS5pYm0uaWN1LmRldi50b29sLmltZS50cmFuc2xpdAorSW1wbGVtZW50YXRpb24tVmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDEuMAorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBUcmFuc2xpdGVyYXRvciBJTUUKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQk0KK1NwZWNpZmljYXRpb24tVmVyc2lvbjogMS4wCitTcGVjaWZpY2F0aW9uLVRpdGxlOiBJQ1UgVHJhbnNsaXRlcmF0b3IgSU1FCisKK05hbWU6IGNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9zZXJ2aWNlcy9qYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9zZXJ2aWNlcy9qYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMzU5NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L3NlcnZpY2VzL2phdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3IKQEAgLTAsMCArMSw3IEBACisjCisjCisjIGZ1bGx5LXF1YWxpZmllZCBuYW1lIG9mIHRoZSBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yCisjIGltcGxlbWVudGF0aW9uIGNsYXNzCisjCisKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS50cmFuc2xpdC5UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2luZGV4L0luZGV4R2VuZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW5kZXgvSW5kZXhHZW5lcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDIyM2YxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2luZGV4L0luZGV4R2VuZXJhdG9yLmphdmEKQEAgLTAsMCArMSw4NSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbmRleDsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIEluZGV4R2VuZXJhdG9yIHsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmcgc3RvcGxpc3QgPSAiLGNoYXIucmVzLEN1cnJlbmN5RGF0YS5yZXMsaW52dWNhLnJlcyxsaW5lLnJlcyxsaW5lX3RoLnJlcyxwbmFtZXMucmVzLHJlc19pbmRleC5yZXMsc2VudC5yZXMsdGl0bGUucmVzLHVjYWRhdGEucmVzLHVjYXNlLnJlcyx1aWRuYS5yZXMsdW5hbWVzLnJlcyx1bm9ybS5yZXMsdXByb3BzLnJlcyx3b3JkLnJlcyx3b3JkX2phLnJlcyx3b3JkX1BPU0lYLnJlcyx3b3JkX3RoLnJlcyI7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisJaWYgKGFyZ3MubGVuZ3RoIDwgMSkgeworCSAgICB1c2FnZSgidG9vIGZldyBhcmd1bWVudHMiKTsKKwl9CisKKwlGaWxlIGluRGlyID0gbmV3IEZpbGUoYXJnc1swXSk7CisJaWYgKCFpbkRpci5pc0RpcmVjdG9yeSgpIHx8ICFpbkRpci5leGlzdHMoKSkgeworCSAgICB1c2FnZSgiZmlyc3QgYXJndW1lbnQgJyIgKyBpbkRpciArICInIG11c3QgYmUgZXhpc3RpbmcgZGlyZWN0b3J5Iik7CisJfQorCisJRmlsZSBvdXREaXIgPSBpbkRpcjsKKwlpZiAoYXJncy5sZW5ndGggPiAxKSB7CisJICAgIG91dERpciA9IG5ldyBGaWxlKGFyZ3NbMV0pOworCSAgICBpZiAoIW91dERpci5pc0RpcmVjdG9yeSgpIHx8ICFvdXREaXIuZXhpc3RzKCkpIHsKKwkJdXNhZ2UoInNlY29uZCBhcmd1bWVudCBtdXN0IGJlIGV4aXN0aW5nIGRpcmVjdG9yeSIpOworCSAgICB9CisJfQorCisJU2V0IG5hbWVzID0gbmV3IFRyZWVTZXQoKTsKKwlGaWxlW10gZmlsZXMgPSBpbkRpci5saXN0RmlsZXMoKTsKKwlpZiAoZmlsZXMgIT0gbnVsbCkgeworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKXsKKwkJaWYgKCFmaWxlc1tpXS5pc0RpcmVjdG9yeSgpKSB7CisJCSAgICBTdHJpbmcgbmFtZSA9ICIsIiArIGZpbGVzW2ldLmdldE5hbWUoKTsgLy8gYWRkICcsJyB0byBnZXQgZXhhY3QgbWF0Y2gKKwkJICAgIGlmIChuYW1lLmVuZHNXaXRoKCIucmVzIikgJiYgc3RvcGxpc3QuaW5kZXhPZihuYW1lKSA9PSAtMSkgeworCQkJbmFtZXMuYWRkKG5hbWUuc3Vic3RyaW5nKDEsIG5hbWUubGFzdEluZGV4T2YoJy4nKSkpOyAvLyAxIHRvIHRyaW0gb2ZmICcsJworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisJICAgIAorCURhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuVVMpOworCURhdGVGb3JtYXQgY29weWZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCInIyBDb3B5cmlnaHQgKEMpICd5eXl5JyBJQk0gSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4nIik7CisKKwl0cnkgeworCSAgICBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZShvdXREaXIsICJyZXNfaW5kZXgudHh0Iik7CisJICAgIFByaW50V3JpdGVyIHB3ID0gbmV3IFByaW50V3JpdGVyKG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgRmlsZVdyaXRlcihvdXRGaWxlKSkpOworCSAgICBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisJICAgIHB3LnByaW50bG4oIiMgR2VuZXJhdGVkIGJ5ICIgKyBJbmRleEdlbmVyYXRvci5jbGFzcy5nZXROYW1lKCkgKyAiIG9uICIgKyBmbXQuZm9ybWF0KG5vdykpOworCSAgICBwdy5wcmludGxuKCIjIGZyb20gY29udGVudHMgb2YgIiArIGluRGlyLmdldENhbm9uaWNhbFBhdGgoKSk7CisJICAgIHB3LnByaW50bG4oY29weWZtdC5mb3JtYXQobm93KSk7CisJICAgIEl0ZXJhdG9yIGkgPSBuYW1lcy5pdGVyYXRvcigpOworCSAgICB3aGlsZSAoaS5oYXNOZXh0KCkpIHsKKwkJcHcucHJpbnRsbihpLm5leHQoKSk7CisJICAgIH0KKwkgICAgaW50IGNvdW50ID0gbmFtZXMuc2l6ZSgpOworCSAgICBwdy5wcmludGxuKCIjIEZvdW5kICIgKyBjb3VudCArICIgZmlsZXMiKTsKKwkgICAgcHcucHJpbnRsbigiIyBFbmQgb2YgZmlsZSIpOworCSAgICBpZiAoY291bnQgPT0gMCkgeworCQlTeXN0ZW0uZXJyLnByaW50bG4oIldhcm5pbmc6IG1hdGNoZWQgbm8gZmlsZXMiKTsKKwkgICAgfSAKKwkgICAgcHcuY2xvc2UoKTsKKwl9CisJY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKwkgICAgdXNhZ2UoZS5nZXRNZXNzYWdlKCkpOworCX0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHVzYWdlKFN0cmluZyBtc2cpIHsKKwlpZiAobXNnICE9IG51bGwpIHsKKwkgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogIiArIG1zZyk7CisJfQorCVN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6IEluZGV4R2VuZXJhdG9yIGluRGlyIG91dERpciIpOworCVN5c3RlbS5vdXQucHJpbnRsbigiICBpbkRpciBpcyBhbiBleGlzdGluZyBkaXJlY3Rvcnkgd2hvc2UgbG9jYWxlLWJhc2VkIHJlc291cmNlcyBhcmUgdG8gYmUgZW51bWVyYXRlZCIpOworCVN5c3RlbS5vdXQucHJpbnRsbigiICBvdXREaXIgaXMgYW4gZXhpc3RpbmcgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSByZXNfaW5kZXgudHh0IGZpbGUgd2lsbCBiZSBwbGFjZWQiKTsKKwl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJVc2FnZSIpOworICAgIH0KK30KKwkKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQXJhYmljQ2hhcmFjdGVyRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9BcmFiaWNDaGFyYWN0ZXJEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVkYmMzZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQXJhYmljQ2hhcmFjdGVyRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworcHVibGljIGNsYXNzIEFyYWJpY0NoYXJhY3RlckRhdGEKK3sKKyAgICBwdWJsaWMgY2xhc3MgUmVjb3JkCisgICAgeworICAgICAgICBwdWJsaWMgaW50IGdldENvZGVQb2ludCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb2RlUG9pbnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0R2VuZXJhbENhdGVnb3J5KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGdlbmVyYWxDYXRlZ29yeTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXREZWNvbXBvc2l0aW9uVHlwZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkZWNvbXBvc2l0aW9uVHlwZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREZWNvbXBvc2l0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRlY29tcG9zaXRpb247CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgUmVjb3JkKGludCBjaGFyYWN0ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvZGVQb2ludCAgICAgICAgID0gY2hhcmFjdGVyOworICAgICAgICAgICAgZ2VuZXJhbENhdGVnb3J5ICAgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2hhcmFjdGVyKTsKKyAgICAgICAgICAgIGRlY29tcG9zaXRpb25UeXBlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNoYXJhY3RlciwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAoZGVjb21wb3NpdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5GSU5BTDoKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JTklUSUFMOgorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklTT0xBVEVEOgorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk1FRElBTDoKKyAgICAgICAgICAgICAgICBkZWNvbXBvc2l0aW9uID0gTm9ybWFsaXplci5jb21wb3NlKFVDaGFyYWN0ZXIudG9TdHJpbmcoY2hhcmFjdGVyKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuQ0FOT05JQ0FMOgorICAgICAgICAgICAgICAgIGRlY29tcG9zaXRpb24gPSBOb3JtYWxpemVyLmRlY29tcG9zZShVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoYXJhY3RlciksIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBkZWNvbXBvc2l0aW9uID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgY29kZVBvaW50OworICAgICAgICBwcml2YXRlIGludCBnZW5lcmFsQ2F0ZWdvcnk7CisgICAgICAgIHByaXZhdGUgaW50IGRlY29tcG9zaXRpb25UeXBlOworICAgICAgICBwcml2YXRlIFN0cmluZyBkZWNvbXBvc2l0aW9uOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIEFyYWJpY0NoYXJhY3RlckRhdGEoaW50IGNoYXJDb3VudCkKKyAgICB7CisgICAgICAgIHJlY29yZHMgPSBuZXcgUmVjb3JkW2NoYXJDb3VudF07CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBhZGQoaW50IGNoYXJhY3RlcikKKyAgICB7CisgICAgICAgIHJlY29yZHNbcmVjb3JkSW5kZXgrK10gPSBuZXcgUmVjb3JkKGNoYXJhY3Rlcik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBSZWNvcmQgZ2V0UmVjb3JkKGludCBpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gcmVjb3Jkcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVjb3Jkc1tpbmRleF07CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgY291bnRSZWNvcmRzKCkKKyAgICB7CisgICAgICAgIHJldHVybiByZWNvcmRzLmxlbmd0aDsKKyAgICB9CisgCisgICAgLy8gVE9ETzogZG8gd2UgbmVlZCB0byBjaGFuZ2UgdGhpcyB0byB1c2UgVW5pY29kZVNldEl0ZXJhdG9yPworICAgIC8vIFRoYXQgd2lsbCBtZWFuIG5vdCBrbm93aW5nIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB1bnRpbAorICAgIC8vIGFmdGVyIHRoZSBpdGVyYXRpb24gaXMgZG9uZSwgc28gd2UnZCBoYXZlIHRvIHVzZSBhIHZlY3RvcgorICAgIC8vIHRvIGhvbGQgdGhlIFJlY29yZHMgYXQgZmlyc3QgYW5kIGNvcHkgaXQgdG8gYW4gYXJyYXkKKyAgICAvLyB3aGVuIHdlJ3JlIGRvbmUuLi4gICAKKyAgICBwdWJsaWMgc3RhdGljIEFyYWJpY0NoYXJhY3RlckRhdGEgZmFjdG9yeShVbmljb2RlU2V0IGNoYXJhY3RlclNldCkKKyAgICB7CisgICAgICAgIGludCBjaGFyQ291bnQgPSBjaGFyYWN0ZXJTZXQuc2l6ZSgpOworICAgICAgICBBcmFiaWNDaGFyYWN0ZXJEYXRhIGRhdGEgPSBuZXcgQXJhYmljQ2hhcmFjdGVyRGF0YShjaGFyQ291bnQpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFyQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgZGF0YS5hZGQoY2hhcmFjdGVyU2V0LmNoYXJBdChpKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFJlY29yZFtdIHJlY29yZHM7CisgICAgcHJpdmF0ZSBpbnQgcmVjb3JkSW5kZXggPSAwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9BcmFiaWNTaGFwaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0FyYWJpY1NoYXBpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGQ2NWUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9BcmFiaWNTaGFwaW5nLmphdmEKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKKworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmcgeworCisgICAgLy8gYXJhYmljICAgc2hhcGluZyB0eXBlIGNvZGUKKworICAgIC8vIHNoYXBpbmcgYml0IG1hc2tzCisgICAgc3RhdGljIGZpbmFsIGludCBNQVNLX1NIQVBFX1JJR0hUICAgPSAxOyAvLyBpZiB0aGlzIGJpdCBzZXQsIHNoYXBlcyB0byByaWdodAorICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19TSEFQRV9MRUZUID0gMjsgICAvLyBpZiB0aGlzIGJpdCBzZXQsIHNoYXBlcyB0byBsZWZ0CisgICAgc3RhdGljIGZpbmFsIGludCBNQVNLX1RSQU5TUEFSRU5UICAgPSA0OyAvLyBpZiB0aGlzIGJpdCBzZXQsIGlzIHRyYW5zcGFyZW50IChpZ25vcmUgb3RoZXIgYml0cykKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BU0tfTk9TSEFQRSAgID0gODsgLy8gaWYgdGhpcyBiaXQgc2V0LCBkb24ndCBzaGFwZSB0aGlzIGNoYXIsIGkuZS4gdGF0d2VlbAorCisgICAgLy8gc2hhcGluZyB2YWx1ZXMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUxVRV9OT05FID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUxVRV9SSUdIVCA9IE1BU0tfU0hBUEVfUklHSFQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfTEVGVCA9IE1BU0tfU0hBUEVfTEVGVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUxVRV9EVUFMID0gTUFTS19TSEFQRV9SSUdIVCB8IE1BU0tfU0hBUEVfTEVGVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUxVRV9UUkFOU1BBUkVOVCA9IE1BU0tfVFJBTlNQQVJFTlQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfTk9TSEFQRV9EVUFMID0gTUFTS19OT1NIQVBFIHwgVkFMVUVfRFVBTDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUxVRV9OT1NIQVBFX05PTkUgPSBNQVNLX05PU0hBUEU7CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRTaGFwZVR5cGUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCB0dCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSk7CisgICAgICAgIAorICAgICAgICBzd2l0Y2godHQpIHsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5KT0lOX0NBVVNJTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZBTFVFX05PU0hBUEVfRFVBTDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5MRUZUX0pPSU5JTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZBTFVFX0xFRlQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5SSUdIVF9KT0lOSU5HOgorICAgICAgICAgICAgICAgIHJldHVybiBWQUxVRV9SSUdIVDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkRVQUxfSk9JTklORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gVkFMVUVfRFVBTDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlRSQU5TUEFSRU5UOgorICAgICAgICAgICAgICAgIHJldHVybiBWQUxVRV9UUkFOU1BBUkVOVDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5OT05fSk9JTklORzoKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZBTFVFX05PU0hBUEVfTk9ORTsgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIENoYXJzIGluIGxvZ2ljYWwgb3JkZXIuCisgICAgICogbGVmdFR5cGUgaXMgc2hhcGluZyBjb2RlIG9mIGNoYXIgdG8gbG9naWNhbCBsZWZ0IG9mIHJhbmdlCisgICAgICogcmlnaHRUeXBlIGlzIHNoYXBpbmcgY29kZSBvZiBjaGFyIHRvIGxvZ2ljYWwgcmlnaHQgb2YgcmFuZ2UKKyAgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzaGFwZShjaGFyW10gY2hhcnMsIGludCBsZWZ0VHlwZSwgaW50IHJpZ2h0VHlwZSwgQ2xhc3NUYWJsZSBpc29sQ2xhc3NUYWJsZSkgeworICAgICAgICAvLyBpdGVyYXRlIGluIGxvZ2ljYWwgb3JkZXIgZnJvbSBsZWZ0IHRvIHJpZ2h0CisgICAgICAgIC8vCisgICAgICAgIC8vIHRoZSBlZmZlY3RpdmUgcmlnaHQgY2hhciBpcyB0aGUgbW9zdCByZWNlbnRseSBlbmNvdW50ZXJlZAorICAgICAgICAvLyBub24tdHJhbnNwYXJlbnQgY2hhcgorICAgICAgICAvLworICAgICAgICAvLyBmb3VyIGJvb2xlYW4gc3RhdGVzOgorICAgICAgICAvLyAgIHRoZSBlZmZlY3RpdmUgcmlnaHQgY2hhciBzaGFwZXMKKyAgICAgICAgLy8gICB0aGUgZWZmZWN0aXZlIHJpZ2h0IGNoYXIgY2F1c2VzIHJpZ2h0IHNoYXBpbmcKKyAgICAgICAgLy8gICB0aGUgY3VycmVudCBjaGFyIHNoYXBlcworICAgICAgICAvLyAgIHRoZSBjdXJyZW50IGNoYXIgY2F1c2VzIGxlZnQgc2hhcGluZworICAgICAgICAvLworICAgICAgICAvLyBpZiBib3RoIGNhdXNlIHNoYXBpbmcsIHRoZW4KKyAgICAgICAgLy8gICByaWdodCArPSAyIChpc29sYXRlIHRvIGluaXRpYWwsIG9yIGZpbmFsIHRvIG1lZGlhbCkKKyAgICAgICAgLy8gICBjdXIgKz0gMSAoaXNvbGF0ZSB0byBmaW5hbCkKKworICAgICAgICAvLyBlcm4gaXMgZWZmZWN0aXZlIHJpZ2h0IGxvZ2ljYWwgaW5kZXgKKyAgICAgICAgaW50IGVybiA9IC0xOworCisgICAgICAgIGJvb2xlYW4gcmlnaHRTaGFwZXMgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiByaWdodENhdXNlcyA9IChyaWdodFR5cGUgJiBNQVNLX1NIQVBFX0xFRlQpICE9IDA7CisKKyAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBjaGFycy5sZW5ndGg7IG4rKykgeworICAgICAgICAgICAgY2hhciBjID0gY2hhcnNbbl07CisgICAgICAgICAgICBpbnQgdCA9IGdldFNoYXBlVHlwZShjKTsKKworICAgICAgICAgICAgaWYgKCh0ICYgTUFTS19UUkFOU1BBUkVOVCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sZWFuIGN1clNoYXBlcyA9ICh0ICYgTUFTS19OT1NIQVBFKSA9PSAwOworICAgICAgICAgICAgYm9vbGVhbiBjdXJDYXVzZXMgPSAodCAmIE1BU0tfU0hBUEVfUklHSFQpICE9IDA7CisKKyAgICAgICAgICAgIGlmIChyaWdodENhdXNlcyAmJiBjdXJDYXVzZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocmlnaHRTaGFwZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNbZXJuXSArPSAyOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChjdXJTaGFwZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNbbl0gPSAoY2hhcikgKGlzb2xDbGFzc1RhYmxlLmdldEdseXBoQ2xhc3NJRChjKSArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN1clNoYXBlcykgeworICAgICAgICAgICAgICAgICAgICBjaGFyc1tuXSA9IChjaGFyKSBpc29sQ2xhc3NUYWJsZS5nZXRHbHlwaENsYXNzSUQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByaWdodFNoYXBlcyA9IGN1clNoYXBlczsKKyAgICAgICAgICAgIHJpZ2h0Q2F1c2VzID0gKHQgJiBNQVNLX1NIQVBFX0xFRlQpICE9IDA7CisgICAgICAgICAgICBlcm4gPSBuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJpZ2h0U2hhcGVzICYmIHJpZ2h0Q2F1c2VzICYmIChsZWZ0VHlwZSAmIE1BU0tfU0hBUEVfUklHSFQpICE9IDApIHsKKyAgICAgICAgICAgIGNoYXJzW2Vybl0gKz0gMjsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQnVpbGRNaXJyb3JpbmdUYWJsZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQnVpbGRNaXJyb3JpbmdUYWJsZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjVjMTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9CdWlsZE1pcnJvcmluZ1RhYmxlcy5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgQnVpbGRNaXJyb3JpbmdUYWJsZXMgZXh0ZW5kcyBNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgQnVpbGRNaXJyb3JpbmdUYWJsZXMoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZHVtcChTdHJpbmcgbmFtZSwgaW50W10gYXJyYXksIGludCBsZW5ndGgsIGludCB2YWx1ZXNQZXJMaW5lKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxpbmUgPSBuZXcgU3RyaW5nQnVmZmVyKCIgICAgIik7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigiY29uc3QgTEVVbmljb2RlMzIgRGVmYXVsdENoYXJNYXBwZXI6OiIgKyBuYW1lICsgIltdID0geyIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaSA+IDAgJiYgaSAlIHZhbHVlc1BlckxpbmUgPT0gMCkgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludGxuKGxpbmUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgbGluZS5zZXRMZW5ndGgoNCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBsaW5lLmFwcGVuZCgiMHgiICsgVXRpbGl0eS5oZXgoYXJyYXlbaV0sIDQpKTsKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKCIsICIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGxpbmUuc2V0TGVuZ3RoKGxpbmUubGVuZ3RoKCkgLSAyKTsKKyAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4obGluZS50b1N0cmluZygpKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIn07XG4iKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVNaXJyb3JlZERhdGFGaWxlKFN0cmluZyBmaWxlbmFtZSkKKyAgICB7CisgICAgICAgIFVuaWNvZGVTZXQgbWlycm9yZWQgPSBuZXcgVW5pY29kZVNldCgiW1xccHtCaWRpX01pcnJvcmVkfV0iKTsKKyAgICAgICAgaW50IGNvdW50ID0gbWlycm9yZWQuc2l6ZSgpOworICAgICAgICBpbnRbXSBjaGFycyAgID0gbmV3IGludFtjb3VudF07CisgICAgICAgIGludFtdIG1pcnJvcnMgPSBuZXcgaW50W2NvdW50XTsKKyAgICAgICAgaW50IHRvdGFsID0gMDsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlcmUgYXJlICIgKyBjb3VudCArICIgbWlycm9yZWQgY2hhcmFjdGVycy4iKTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBtaXJyb3JlZC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpbnQgbSAgPSBVQ2hhcmFjdGVyLmdldE1pcnJvcihjaCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjaCAhPSBtKSB7CisgICAgICAgICAgICAgICAgY2hhcnNbdG90YWxdID0gY2ggJiAweEZGRkY7CisgICAgICAgICAgICAgICAgbWlycm9yc1t0b3RhbCsrXSA9IG0gJiAweEZGRkY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlcmUgYXJlICIgKyB0b3RhbCArICIgY2hhcmFjdGVycyB3aXRoIGEgZGlmZmVyZW50IG1pcnJvci5cbiIpOworICAgICAgICAKKyAgICAgICAgb3BlbkZpbGUoZmlsZW5hbWUpOworICAgICAgICB3cml0ZUhlYWRlcihudWxsLCBpbmNsdWRlRmlsZXMpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGR1bXAoIm1pcnJvcmVkQ2hhcnMiLCBjaGFycywgdG90YWwsIDgpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICBkdW1wKCJzcmFoQ2Rlcm9ycmltIiwgbWlycm9ycywgdG90YWwsIDgpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oImNvbnN0IGxlX2ludDMyIERlZmF1bHRDaGFyTWFwcGVyOjptaXJyb3JlZENoYXJzQ291bnQgPSAiICsgdG90YWwgKyAiO1xuIik7CisKKyAgICAgICAgd3JpdGVUcmFpbGVyKCk7CisgICAgICAgIGNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgaW5jbHVkZUZpbGVzW10gPSB7IkxFVHlwZXMuaCIsICJEZWZhdWx0Q2hhck1hcHBlci5oIn07CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIEJ1aWxkTWlycm9yaW5nVGFibGVzIGJtdCA9IG5ldyBCdWlsZE1pcnJvcmluZ1RhYmxlcygpOworICAgICAgICAKKyAgICAgICAgYm10LndyaXRlTWlycm9yZWREYXRhRmlsZSgiTWlycm9yZWRDaGFyRGF0YS5jcHAiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0Nhbm9uR1NVQkJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2Fub25HU1VCQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NDhlMmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0Nhbm9uR1NVQkJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDUyMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIEBhdXRob3IgRXJpYyBNYWRlcgorICoKKyAqIE5vdGVzOgorICogCisgKiBUaGUgcHJvcGVydHkgXHB7RGVjb21wb3NpdGlvbl9UeXBlPUNhbm9uaWNhbH0gd2lsbCBtYXRjaCBhbGwgY2hhcmFjdGVycyB3aXRoIGEgY2Fub25pY2FsCisgKiBkZWNvbXBvc2l0aW9uLgorICoKKyAqIFNvICJbW1xccHtMYXRpbn1cXHB7R3JlZWt9XFxwe0N5cmlsbGljfV0gJiBbXFxwe0RlY29tcG9zaXRpb25fVHlwZT1DYW5vbmljYWx9XV0iCisgKiB3aWxsIG1hdGNoIGFsbCBMYXRpbiwgR3JlZWsgYW5kIEN5cmlsbGljIGNoYXJhY3RlcnMgd2l0aCBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLgorICogCisgKiBBcmUgdGhlc2UgdGhyZWUgc2NyaXB0cyBlbm91Z2g/IERvIHdlIHdhbnQgdG8gY29sbGVjdCB0aGVtIGFsbCBhdCBvbmNlIGFuZCBkaXN0cmlidXRlIGJ5IHNjcmlwdCwKKyAqIG9yIHByb2Nlc3MgdGhlbSBvbmUgc2NyaXB0IGF0IGEgdGltZS4gSXQncyBwcm9iYWJseSBhIGdvb2QgaWRlYSB0byBidWlsZCBhIHNpbmdsZSB0YWJsZSBmb3IKKyAqIGhvd2V2ZXIgbWFueSBzY3JpcHRzIHRoZXJlIGFyZS4KKyAqIAorICogSXQgbWlnaHQgYmUgYmV0dGVyIHRvIGNvbGxlY3QgYWxsIHRoZSBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGFuZCBqdXN0CisgKiBzb3J0IHRoZW0gaW50byBob3dldmVyIG1hbnkgc2NyaXB0cyB0aGVyZSBhcmUuLi4gdW5sZXNzIHdlJ2xsIGdldCBjaGFyYWN0ZXJzIGluIENPTU1PTj8/PworICovCitwdWJsaWMgY2xhc3MgQ2Fub25HU1VCQnVpbGRlcgoreworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGNvbnZlcnRBcmFiaWNTdHJpbmcoaW50IHR5cGUsIGludCBsaWdhdHVyZSwgU3RyaW5nIGRlY29tcCwgQ2xhc3NUYWJsZSBpc29sQ2xhc3NUYWJsZSkKKyAgICB7CisgICAgICAgIGludCBsZWZ0VHlwZSAgPSBBcmFiaWNTaGFwaW5nLlZBTFVFX05PTkU7CisgICAgICAgIGludCByaWdodFR5cGUgPSBBcmFiaWNTaGFwaW5nLlZBTFVFX05PTkU7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JU09MQVRFRDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5GSU5BTDoKKyAgICAgICAgICAgICAgICByaWdodFR5cGUgPSBBcmFiaWNTaGFwaW5nLlZBTFVFX0xFRlQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JTklUSUFMOgorICAgICAgICAgICAgICAgIGxlZnRUeXBlID0gQXJhYmljU2hhcGluZy5WQUxVRV9SSUdIVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk1FRElBTDoKKyAgICAgICAgICAgICAgIHJpZ2h0VHlwZSA9IEFyYWJpY1NoYXBpbmcuVkFMVUVfTEVGVDsKKyAgICAgICAgICAgICAgIGxlZnRUeXBlICA9IEFyYWJpY1NoYXBpbmcuVkFMVUVfUklHSFQ7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgcmV0dXJuIGRlY29tcCArIFVDaGFyYWN0ZXIudG9TdHJpbmcobGlnYXR1cmUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjaGFyW10gY2hhcnMgPSBkZWNvbXAudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgICAgCisgICAgICAgIEFyYWJpY1NoYXBpbmcuc2hhcGUoY2hhcnMsIGxlZnRUeXBlLCByaWdodFR5cGUsIGlzb2xDbGFzc1RhYmxlKTsKKyAgCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGNoYXJzKSArIFVDaGFyYWN0ZXIudG9TdHJpbmcobGlnYXR1cmUpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBidWlsZEFyYWJpY0NvbnRleHR1YWxGb3JtcyhBcmFiaWNDaGFyYWN0ZXJEYXRhIGRhdGEsIENsYXNzVGFibGUgaW5pdENsYXNzVGFibGUsIENsYXNzVGFibGUgbWVkaUNsYXNzVGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NUYWJsZSBmaW5hQ2xhc3NUYWJsZSwgQ2xhc3NUYWJsZSBpc29sQ2xhc3NUYWJsZSkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIkZpbmRpbmcgQXJhYmljIGNvbnRleHR1YWwgZm9ybXMuLi4gIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEuY291bnRSZWNvcmRzKCk7IGkgKz0gMSkgeworICAgICAgICAgICAgQXJhYmljQ2hhcmFjdGVyRGF0YS5SZWNvcmQgcmVjb3JkID0gZGF0YS5nZXRSZWNvcmQoaSk7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wb3NpdGlvbiA9IHJlY29yZC5nZXREZWNvbXBvc2l0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkZWNvbXBvc2l0aW9uICE9IG51bGwgJiYgZGVjb21wb3NpdGlvbi5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgaW50IGNvbnRleHR1YWwgPSByZWNvcmQuZ2V0Q29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgaW50IGlzb2xhdGVkICAgPSBVVEYxNi5jaGFyQXQocmVjb3JkLmdldERlY29tcG9zaXRpb24oKSwgMCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlY29yZC5nZXREZWNvbXBvc2l0aW9uVHlwZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklOSVRJQUw6CisgICAgICAgICAgICAgICAgICAgIGluaXRDbGFzc1RhYmxlLmFkZE1hcHBpbmcoaXNvbGF0ZWQsIGNvbnRleHR1YWwpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuTUVESUFMOgorICAgICAgICAgICAgICAgICAgICBtZWRpQ2xhc3NUYWJsZS5hZGRNYXBwaW5nKGlzb2xhdGVkLCBjb250ZXh0dWFsKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuRklOQUw6CisgICAgICAgICAgICAgICAgICAgZmluYUNsYXNzVGFibGUuYWRkTWFwcGluZyhpc29sYXRlZCwgY29udGV4dHVhbCk7CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSVNPTEFURUQ6CisgICAgICAgICAgICAgICAgICAgaXNvbENsYXNzVGFibGUuYWRkTWFwcGluZyhpc29sYXRlZCwgY29udGV4dHVhbCk7CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgLy8gaXNzdWUgc29tZSBlcnJvciBtZXNzYWdlPworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lLiIpOworICAgIH0KKworICAgIHN0YXRpYyBMaWdhdHVyZVRyZWUgYnVpbGRBcmFiaWNMaWdhdHVyZVRyZWUoQXJhYmljQ2hhcmFjdGVyRGF0YSBkYXRhLCBDbGFzc1RhYmxlIGlzb2xDbGFzc1RhYmxlKQorICAgIHsKKyAgICAgICAgTGlnYXR1cmVUcmVlIGNvbnRleHR1YWxUcmVlID0gbmV3IExpZ2F0dXJlVHJlZSgpOworICAgICAgICBpbnQgbGlnYXR1cmVDb3VudCA9IDA7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJCdWlsZGluZyBBcmFiaWMgbGlnYXR1cmUgdHJlZS4uLiAiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5jb3VudFJlY29yZHMoKTsgaSArPSAxKSB7CisgICAgICAgICAgICBBcmFiaWNDaGFyYWN0ZXJEYXRhLlJlY29yZCByZWNvcmQgPSBkYXRhLmdldFJlY29yZChpKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXBvc2l0aW9uID0gcmVjb3JkLmdldERlY29tcG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRlY29tcG9zaXRpb24gIT0gbnVsbCAmJiBkZWNvbXBvc2l0aW9uLmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgICAgIGludCBsaWdhdHVyZSAgID0gcmVjb3JkLmdldENvZGVQb2ludCgpOworICAgICAgICAgICAgICAgIGludCBkZWNvbXBUeXBlID0gcmVjb3JkLmdldERlY29tcG9zaXRpb25UeXBlKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3dpdGNoIChkZWNvbXBUeXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkZJTkFMOgorICAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JTklUSUFMOgorICAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5NRURJQUw6CisgICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklTT0xBVEVEOgorICAgICAgICAgICAgICAgICAgICBjb250ZXh0dWFsVHJlZS5pbnNlcnQoY29udmVydEFyYWJpY1N0cmluZyhkZWNvbXBUeXBlLCBsaWdhdHVyZSwgZGVjb21wb3NpdGlvbiwgaXNvbENsYXNzVGFibGUpKTsKKyAgICAgICAgICAgICAgICAgICAgbGlnYXR1cmVDb3VudCArPSAxOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkNBTk9OSUNBTDoKKyAgICAgICAgICAgICAgICAgICAgLy9jYW5ub25pY2FsVHJlZS5pbnNlcnQoZGVjb21wb3NpdGlvbiArIFVDaGFyYWN0ZXIudG9TdHJpbmcobGlnYXR1cmUpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGlnYXR1cmVDb3VudCArICIgbGlnYXR1cmVzLiIpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNvbnRleHR1YWxUcmVlOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFNJTVBMRV9HTFlQSCA9IDE7CisgICAgc3RhdGljIGZpbmFsIGludCBMSUdBVFVSRV9HTFlQSCA9IDI7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVJLX0dMWVBIID0gMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IENPTVBPTkVOVF9HTFlQSCA9IDQ7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBjYXRlZ29yeUNsYXNzTWFwW10gPSB7CisgICAgMCwgICAgICAgICAgICAgIC8vIFVOQVNTSUdORUQKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gVVBQRVJDQVNFX0xFVFRFUgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBMT1dFUkNBU0VfTEVUVEVSCisgICAgU0lNUExFX0dMWVBILCAgIC8vIFRJVExFQ0FTRV9MRVRURVIKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gTU9ESUZJRVJfTEVUVEVSCisgICAgU0lNUExFX0dMWVBILCAgIC8vIE9USEVSX0xFVFRFUgorICAgIE1BUktfR0xZUEgsICAgICAvLyBOT05fU1BBQ0lOR19NQVJLCisgICAgTUFSS19HTFlQSCwgICAgIC8vIEVOQ0xPU0lOR19NQVJLID8/CisgICAgTUFSS19HTFlQSCwgICAgIC8vIENPTUJJTklOR19TUEFDSU5HX01BUksgPz8KKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gREVDSU1BTF9OVU1CRVIKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gTEVUVEVSX05VTUJFUgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBPVEhFUl9OVU1CRVI7CisgICAgMCwgICAgICAgICAgICAgIC8vIFNQQUNFX1NFUEFSQVRPUgorICAgIDAsICAgICAgICAgICAgICAvLyBMSU5FX1NFUEFSQVRPUgorICAgIDAsICAgICAgICAgICAgICAvLyBQQVJBR1JBUEhfU0VQQVJBVE9SCisgICAgMCwgICAgICAgICAgICAgIC8vIENPTlRST0wKKyAgICAwLCAgICAgICAgICAgICAgLy8gRk9STUFUCisgICAgMCwgICAgICAgICAgICAgIC8vIFBSSVZBVEVfVVNFCisgICAgMCwgICAgICAgICAgICAgIC8vIFNVUlJPR0FURQorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBEQVNIX1BVTkNUVUFUSU9OCisgICAgU0lNUExFX0dMWVBILCAgIC8vIFNUQVJUX1BVTkNUVUFUSU9OCisgICAgU0lNUExFX0dMWVBILCAgIC8vIEVORF9QVU5DVFVBVElPTgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBDT05ORUNUT1JfUFVOQ1RVQVRJT04KKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gT1RIRVJfUFVOQ1RVQVRJT04KKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gTUFUSF9TWU1CT0w7CisgICAgU0lNUExFX0dMWVBILCAgIC8vIENVUlJFTkNZX1NZTUJPTAorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBNT0RJRklFUl9TWU1CT0wKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gT1RIRVJfU1lNQk9MCisgICAgU0lNUExFX0dMWVBILCAgIC8vIElOSVRJQUxfUFVOQ1RVQVRJT04KKyAgICBTSU1QTEVfR0xZUEggICAgLy8gRklOQUxfUFVOQ1RVQVRJT04KKyAgICB9OworCisgICAgc3RhdGljIGludCBnZXRHbHlwaENsYXNzKEFyYWJpY0NoYXJhY3RlckRhdGEuUmVjb3JkIHJlY29yZCkKKyAgICB7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSByZWNvcmQuZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICAKKyAgICAgICAgaWYgKGRlY29tcCAhPSBudWxsICYmIGRlY29tcC5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIHJldHVybiBMSUdBVFVSRV9HTFlQSDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNhdGVnb3J5Q2xhc3NNYXBbcmVjb3JkLmdldEdlbmVyYWxDYXRlZ29yeSgpXTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgYWRkQXJhYmljR2x5cGhDbGFzc2VzKEFyYWJpY0NoYXJhY3RlckRhdGEgZGF0YSwgQ2xhc3NUYWJsZSBjbGFzc1RhYmxlKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiQWRkaW5nIEFyYWJpYyBnbHlwaCBjbGFzc2VzLi4uICIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmNvdW50UmVjb3JkcygpOyBpICs9IDEpIHsKKyAgICAgICAgICAgIEFyYWJpY0NoYXJhY3RlckRhdGEuUmVjb3JkIHJlY29yZCA9IGRhdGEuZ2V0UmVjb3JkKGkpOworICAgICAgICAgICAgY2xhc3NUYWJsZS5hZGRNYXBwaW5nKHJlY29yZC5nZXRDb2RlUG9pbnQoKSwgZ2V0R2x5cGhDbGFzcyhyZWNvcmQpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lLiIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGJ1aWxkQXJhYmljVGFibGVzKFNjcmlwdExpc3Qgc2NyaXB0TGlzdCwgRmVhdHVyZUxpc3QgZmVhdHVyZUxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb29rdXBMaXN0IGxvb2t1cExpc3QsIENsYXNzVGFibGUgY2xhc3NUYWJsZSkgeworICAgICAgICAvLyBUT0RPOiBNaWdodCB3YW50IHRvIGhhdmUgdGhlIGxpZ2F0dXJlIHRhYmxlIGJ1aWxkZXIgZXhwbGljaXRseSBjaGVjayBmb3IgbGlnYXR1cmVzCisgICAgICAgIC8vIHdoaWNoIHN0YXJ0IHdpdGggc3BhY2UgYW5kIHRhdHdlZWwgcmF0aGVyIHRoYW4gcHVsbGluZyB0aGVtIG91dCBoZXJlLi4uCisgICAgICAgIFVuaWNvZGVTZXQgYXJhYmljQmxvY2sgICA9IG5ldyBVbmljb2RlU2V0KCJbW1xccHtibG9jaz1BcmFiaWN9XSAmIFtbOkNmOl1bOlBvOl1bOlNvOl1bOk1uOl1bOk5kOl1bOkxtOl1dXSIpOworICAgICAgICBVbmljb2RlU2V0IG9kZExpZ2F0dXJlcyAgPSBuZXcgVW5pY29kZVNldCgiW1xcdUZDNUUtXFx1RkM2M1xcdUZDRjItXFx1RkNGNFxcdUZFNzAtXFx1RkU3Rl0iKTsKKyAgICAgICAgVW5pY29kZVNldCBhcmFiaWNMZXR0ZXJzID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7QXJhYmljfV0iKTsKKyAgICAgICAgQXJhYmljQ2hhcmFjdGVyRGF0YSBhcmFiaWNEYXRhID0gQXJhYmljQ2hhcmFjdGVyRGF0YS5mYWN0b3J5KGFyYWJpY0xldHRlcnMuYWRkQWxsKGFyYWJpY0Jsb2NrKS5yZW1vdmVBbGwob2RkTGlnYXR1cmVzKSk7CisKKyAgICAgICAgYWRkQXJhYmljR2x5cGhDbGFzc2VzKGFyYWJpY0RhdGEsIGNsYXNzVGFibGUpOworICAgICAgICAKKyAgICAgICAgQ2xhc3NUYWJsZSBpbml0Q2xhc3NUYWJsZSA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgICAgIENsYXNzVGFibGUgbWVkaUNsYXNzVGFibGUgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgICAgICBDbGFzc1RhYmxlIGZpbmFDbGFzc1RhYmxlID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICAgICAgQ2xhc3NUYWJsZSBpc29sQ2xhc3NUYWJsZSA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgICAgIAorICAgICAgICBidWlsZEFyYWJpY0NvbnRleHR1YWxGb3JtcyhhcmFiaWNEYXRhLCBpbml0Q2xhc3NUYWJsZSwgbWVkaUNsYXNzVGFibGUsIGZpbmFDbGFzc1RhYmxlLCBpc29sQ2xhc3NUYWJsZSk7CisgICAgICAgIGlzb2xDbGFzc1RhYmxlLnNuYXBzaG90KCk7CisgICAgICAgIExpZ2F0dXJlVHJlZSBsaWdhVHJlZSA9IGJ1aWxkQXJhYmljTGlnYXR1cmVUcmVlKGFyYWJpY0RhdGEsIGlzb2xDbGFzc1RhYmxlKTsKKworICAgICAgICBMaWdhdHVyZVRyZWVXYWxrZXIgbGlnYVdhbGtlciA9IG5ldyBMaWdhdHVyZVRyZWVXYWxrZXIoKTsKKworICAgICAgICBsaWdhVHJlZS53YWxrKGxpZ2FXYWxrZXIpOworICAgICAgICAKKyAgICAgICAgTG9va3VwIGluaXRMb29rdXAsIG1lZGlMb29rdXAsIGZpbmFMb29rdXAsIGxpZ2FMb29rdXA7CisgICAgICAgIAorICAgICAgICBpbml0TG9va3VwID0gbmV3IExvb2t1cChMb29rdXAuR1NTVF9TaW5nbGUsIDApOworICAgICAgICBpbml0TG9va3VwLmFkZFN1YnRhYmxlKGluaXRDbGFzc1RhYmxlKTsKKyAgICAgICAgCisgICAgICAgIG1lZGlMb29rdXAgPSBuZXcgTG9va3VwKExvb2t1cC5HU1NUX1NpbmdsZSwgMCk7CisgICAgICAgIG1lZGlMb29rdXAuYWRkU3VidGFibGUobWVkaUNsYXNzVGFibGUpOworICAgICAgICAKKyAgICAgICAgZmluYUxvb2t1cCA9IG5ldyBMb29rdXAoTG9va3VwLkdTU1RfU2luZ2xlLCAwKTsKKyAgICAgICAgZmluYUxvb2t1cC5hZGRTdWJ0YWJsZShmaW5hQ2xhc3NUYWJsZSk7CisgICAgICAgIAorICAgICAgICBsaWdhTG9va3VwID0gbmV3IExvb2t1cChMb29rdXAuR1NTVF9MaWdhdHVyZSwgTG9va3VwLkxGX0lnbm9yZU1hcmtzKTsKKyAgICAgICAgbGlnYUxvb2t1cC5hZGRTdWJ0YWJsZShsaWdhV2Fsa2VyKTsKKyAgICAgICAgCisgICAgICAgIEZlYXR1cmUgaW5pdCA9IG5ldyBGZWF0dXJlKCJpbml0Iik7CisgICAgICAgIEZlYXR1cmUgbWVkaSA9IG5ldyBGZWF0dXJlKCJtZWRpIik7CisgICAgICAgIEZlYXR1cmUgZmluYSA9IG5ldyBGZWF0dXJlKCJmaW5hIik7CisgICAgICAgIEZlYXR1cmUgbGlnYSA9IG5ldyBGZWF0dXJlKCJsaWdhIik7CisgICAgICAgIAorICAgICAgICBpbml0LmFkZExvb2t1cChsb29rdXBMaXN0LmFkZExvb2t1cChpbml0TG9va3VwKSk7CisgICAgICAgIG1lZGkuYWRkTG9va3VwKGxvb2t1cExpc3QuYWRkTG9va3VwKG1lZGlMb29rdXApKTsKKyAgICAgICAgZmluYS5hZGRMb29rdXAobG9va3VwTGlzdC5hZGRMb29rdXAoZmluYUxvb2t1cCkpOworICAgICAgICBsaWdhLmFkZExvb2t1cChsb29rdXBMaXN0LmFkZExvb2t1cChsaWdhTG9va3VwKSk7CisgICAgICAgIAorICAgICAgICBmZWF0dXJlTGlzdC5hZGRGZWF0dXJlKGluaXQpOworICAgICAgICBmZWF0dXJlTGlzdC5hZGRGZWF0dXJlKG1lZGkpOworICAgICAgICBmZWF0dXJlTGlzdC5hZGRGZWF0dXJlKGZpbmEpOworICAgICAgICBmZWF0dXJlTGlzdC5hZGRGZWF0dXJlKGxpZ2EpOworICAgICAgICAKKyAgICAgICAgc2NyaXB0TGlzdC5hZGRGZWF0dXJlKCJhcmFiIiwgIihkZWZhdWx0KSIsIGluaXQpOworICAgICAgICBzY3JpcHRMaXN0LmFkZEZlYXR1cmUoImFyYWIiLCAiKGRlZmF1bHQpIiwgbWVkaSk7CisgICAgICAgIHNjcmlwdExpc3QuYWRkRmVhdHVyZSgiYXJhYiIsICIoZGVmYXVsdCkiLCBmaW5hKTsKKyAgICAgICAgc2NyaXB0TGlzdC5hZGRGZWF0dXJlKCJhcmFiIiwgIihkZWZhdWx0KSIsIGxpZ2EpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGJ1aWxkTGlnYXR1cmVUcmVlKENhbm9uaWNhbENoYXJhY3RlckRhdGEgZGF0YSwgaW50IHNjcmlwdCwgTGlnYXR1cmVUcmVlIGxpZ2F0dXJlVHJlZSkKKyAgICB7CisgICAgICAgIGludCBsaWdhdHVyZUNvdW50ID0gMDsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImJ1aWxkaW5nIGNvbXBvc2l0aW9uIGxpZ2F0dXJlIHRyZWUgZm9yICIgKyBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KSArICIuLi4gIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEuY291bnRSZWNvcmRzKHNjcmlwdCk7IGkgKz0gMSkgeworICAgICAgICAgICAgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YS5SZWNvcmQgcmVjb3JkID0gZGF0YS5nZXRSZWNvcmQoc2NyaXB0LCBpKTsKKyAgICAgICAgICAgIFN0cmluZyBjb21wb3NlZCA9IFVDaGFyYWN0ZXIudG9TdHJpbmcocmVjb3JkLmdldENvbXBvc2VkQ2hhcmFjdGVyKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBlID0gMDsgZSA8IHJlY29yZC5jb3VudEVxdWl2YWxlbnRzKCk7IGUgKz0gMSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBlcXVpdmFsZW50ID0gcmVjb3JkLmdldEVxdWl2YWxlbnQoZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbGlnYXR1cmVUcmVlLmluc2VydChlcXVpdmFsZW50ICsgY29tcG9zZWQpOworICAgICAgICAgICAgICAgIGxpZ2F0dXJlQ291bnQgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxpZ2F0dXJlQ291bnQgKyAiIGxpZ2F0dXJlcy4iKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBEZWNvbXBUYWJsZVtdIGJ1aWxkRGVjb21wVGFibGVzKENhbm9uaWNhbENoYXJhY3RlckRhdGEgZGF0YSwgaW50IHNjcmlwdCkKKyAgICB7CisgICAgICAgIGludCBtYXhEZWNvbXBDb3VudCA9IGRhdGEuZ2V0TWF4RXF1aXZhbGVudHMoc2NyaXB0KTsKKyAgICAgICAgRGVjb21wVGFibGVbXSBkZWNvbXBUYWJsZXMgPSBuZXcgRGVjb21wVGFibGVbbWF4RGVjb21wQ291bnRdOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiQnVpbGRpbmcgZGVjb21wb3NpdG9uIHRhYmxlcyBmb3IgIiArIFVTY3JpcHQuZ2V0TmFtZShzY3JpcHQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLi4uIHRvdGFsIGRlY29tcG9zaXRpb25zOiAiICsgZGF0YS5jb3VudFJlY29yZHMoc2NyaXB0KSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICIsIG1heDogIiArIG1heERlY29tcENvdW50ICsgIi4uLiIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhEZWNvbXBDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBEZWNvbXBUYWJsZSB0YWJsZSA9IG5ldyBEZWNvbXBUYWJsZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCByID0gMDsgciA8IGRhdGEuY291bnRSZWNvcmRzKHNjcmlwdCk7IHIgKz0gMSkgeworICAgICAgICAgICAgICAgIENhbm9uaWNhbENoYXJhY3RlckRhdGEuUmVjb3JkIHJlY29yZCA9IGRhdGEuZ2V0UmVjb3JkKHNjcmlwdCwgcik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHJlY29yZC5jb3VudEVxdWl2YWxlbnRzKCkgPiBpKSB7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlLmFkZChyZWNvcmQuZ2V0Q29tcG9zZWRDaGFyYWN0ZXIoKSwgcmVjb3JkLmdldEVxdWl2YWxlbnQoaSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb21wVGFibGVzW2ldID0gdGFibGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIERvbmUuIik7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVjb21wVGFibGVzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludFtdIGJ1aWxkTG9va3VwcyhDYW5vbmljYWxDaGFyYWN0ZXJEYXRhIGRhdGEsIExvb2t1cExpc3QgbG9va3VwTGlzdCwgaW50IHNjcmlwdCkKKyAgICB7CisgICAgICAgIGludFtdIGxvb2t1cHMgPSBuZXcgaW50WzJdOworICAgICAgICAKKyAgICAgICAgRGVjb21wVGFibGVbXSBkZWNvbXBUYWJsZXMgPSBidWlsZERlY29tcFRhYmxlcyhkYXRhLCBzY3JpcHQpOworICAgICAgICAKKyAgICAgICAgTGlnYXR1cmVUcmVlIGNvbXBUcmVlID0gbmV3IExpZ2F0dXJlVHJlZSgpOworICAgICAgICAKKyAgICAgICAgYnVpbGRMaWdhdHVyZVRyZWUoZGF0YSwgc2NyaXB0LCBjb21wVHJlZSk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgCisgICAgICAgIExpZ2F0dXJlVHJlZVdhbGtlciBjb21wV2Fsa2VyID0gbmV3IExpZ2F0dXJlVHJlZVdhbGtlcigpOworICAgICAgICAKKyAgICAgICAgY29tcFRyZWUud2Fsayhjb21wV2Fsa2VyKTsKKyAgICAgICAgCisgICAgICAgIExvb2t1cCBjb21wTG9va3VwLCBkY21wTG9va3VwOworICAgICAgICAvL2ludCBjb21wTG9va3VwSW5kZXgsIGRjbXBMb29rdXBJbmRleDsKKyAgICAgICAgCisgICAgICAgIGNvbXBMb29rdXAgPSBuZXcgTG9va3VwKExvb2t1cC5HU1NUX0xpZ2F0dXJlLCAwKTsKKyAgICAgICAgY29tcExvb2t1cC5hZGRTdWJ0YWJsZShjb21wV2Fsa2VyKTsKKyAgICAgICAgCisgICAgICAgIGRjbXBMb29rdXAgPSBuZXcgTG9va3VwKExvb2t1cC5HU1NUX011bHRpcGxlLCAwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXBUYWJsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGRjbXBMb29rdXAuYWRkU3VidGFibGUoZGVjb21wVGFibGVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9va3Vwc1swXSA9IGxvb2t1cExpc3QuYWRkTG9va3VwKGNvbXBMb29rdXApOworICAgICAgICBsb29rdXBzWzFdID0gbG9va3VwTGlzdC5hZGRMb29rdXAoZGNtcExvb2t1cCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbG9va3VwczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFkZExvb2t1cHMoRmVhdHVyZSBmZWF0dXJlLCBpbnRbXSBsb29rdXBzKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb29rdXBzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBmZWF0dXJlLmFkZExvb2t1cChsb29rdXBzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIEhlYnJldyBtYXJrIG9yZGVyIHRha2VuIGZyb20gdGhlIFNCTCBIZWJyZXcgRm9udCBtYW51YWwKKyAgICAgKiBBcmFiaWMgbWFyayBvcmRlciBwZXIgVGhvbWFzIE1pbG86IGhhbXphIDwgc2hhZGRhIDwgY29tYmluaW5nX2FsZWYgPCBzdWt1biwgdm93ZWxfbWFya3MgPCBtYWRkYSA8IHF1cidhbmljX21hcmtzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDbGFzc1RhYmxlIGJ1aWxkQ29tYmluaW5nQ2xhc3NUYWJsZSgpCisgICAgeworICAgICAgICBVbmljb2RlU2V0IG1hcmtTZXQgPSBuZXcgVW5pY29kZVNldCgiW1xcUHtDYW5vbmljYWxDb21iaW5pbmdDbGFzcz0wfV0iKTsKKyAgICAgICAgQ2xhc3NUYWJsZSBleGNlcHRpb25zID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICAgICAgQ2xhc3NUYWJsZSBjb21iaW5pbmdDbGFzc2VzID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICAgICAgaW50IG1hcmtDb3VudCA9IG1hcmtTZXQuc2l6ZSgpOworICAgICAgICAKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVDMSwgIDEwKTsgLy8gUG9pbnQgU2hpbiBEb3QKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVDMiwgIDExKTsgLy8gUG9pbnQgU2luIERvdAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUJDLCAgMjEpOyAvLyBQb2ludCBEYWdlc2ggb3IgTWFwaXEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCRiwgIDIzKTsgLy8gUG9pbnQgUmFmZQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUI5LCAgMjcpOyAvLyBQb2ludCBIb2xhbQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwMzIzLCAyMjApOyAvLyBDb21iLiBEb3QgQmVsb3cgKGxvdyBwdW5jdHVtKQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTkxLCAyMjApOyAvLyBBY2NlbnQgRXRuYWh0YQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTk2LCAyMjApOyAvLyBBY2NlbnQgVGlwZWhhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OUIsIDIyMCk7IC8vIEFjY2VudCBUZXZpcgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUEzLCAyMjApOyAvLyBBY2NlbnQgTXVuYWgKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBNCwgMjIwKTsgLy8gQWNjZW50IE1haGFwYWtoCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTUsIDIyMCk7IC8vIEFjY2VudCBNZXJraGEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBNiwgMjIwKTsgLy8gQWNjZW50IE1lcmtoYSBLZWZ1bGEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBNywgMjIwKTsgLy8gQWNjZW50IERhcmdhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QUEsIDIyMCk7IC8vIEFjY2VudCBZZXJhaCBCZW4gWW9tbworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUIwLCAyMjApOyAvLyBQb2ludCBTaGV2YQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUIxLCAyMjApOyAvLyBQb2ludCBIYXRhZiBTZWdvbAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUIyLCAyMjApOyAvLyBQb2ludCBIYXRhZiBQYXRhaAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUIzLCAyMjApOyAvLyBQb2ludCBIYXRhZiBRYW1hdHMKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCNCwgMjIwKTsgLy8gUG9pbnQgSGlyaXEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCNSwgMjIwKTsgLy8gUG9pbnQgVHNlcmUKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCNiwgMjIwKTsgLy8gUG9pbnQgU2Vnb2wKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCNywgMjIwKTsgLy8gUG9pbnQgUGF0YWgKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCOCwgMjIwKTsgLy8gUG9pbnQgUWFtYXRzCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QkIsIDIyMCk7IC8vIFBvaW50IFF1YnV0cworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUJELCAyMjApOyAvLyBQb2ludCBNZXRlZworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTlBLCAyMjIpOyAvLyBBY2NlbnQgWWV0aXYKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBRCwgMjIyKTsgLy8gQWNjZW50IERlaGkKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVDNCwgMjMwKTsgLy8gTWFyayBVcHBlciBEb3QgKGhpZ2ggcHVuY3R1bSkKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5MywgMjMwKTsgLy8gQWNjZW50IFNoYWxzaGVsZXQKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5NCwgMjMwKTsgLy8gQWNjZW50IFphcWVmIFFhdGFuCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTUsIDIzMCk7IC8vIEFjY2VudCBaYXFlZiBHYWRvbAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTk3LCAyMzApOyAvLyBBY2NlbnQgUmV2aWEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5OCwgMjMwKTsgLy8gQWNjZW50IFphcnFhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OUYsIDIzMCk7IC8vIEFjY2VudCBRYXJuZXkgUGFyYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTlFLCAyMzApOyAvLyBBY2NlbnQgR2Vyc2hheWltCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OUQsIDIzMCk7IC8vIEFjY2VudCBHZXJlc2ggTXVxZGFtCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OUMsIDIzMCk7IC8vIEFjY2VudCBHZXJlc2gKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5MiwgMjMwKTsgLy8gQWNjZW50IFNlZ29sdGEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBMCwgMjMwKTsgLy8gQWNjZW50IFRlbGlzaGEgR2Vkb2xhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QUMsIDIzMCk7IC8vIEFjY2VudCBJbHV5CisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTgsIDIzMCk7IC8vIEFjY2VudCBRYWRtYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUFCLCAyMzApOyAvLyBBY2NlbnQgT2xlCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QUYsIDIzMCk7IC8vIE1hcmsgTWFzb3JhIENpcmNsZQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUExLCAyMzApOyAvLyBBY2NlbnQgUGF6ZXIKKyAgICAgIC8vZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDMwNywgMjMwKTsgLy8gTWFyayBOdW1iZXIvTWFzb3JhIERvdAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUFFLCAyMzIpOyAvLyBBY2NlbnQgWmlub3IKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBOSwgMjMyKTsgLy8gQWNjZW50IFRlbGlzaGEgUWV0YW5hCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTksIDIzMik7IC8vIEFjY2VudCBQYXNodGEKKyAgICAgICAgCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTUsICAyNyk7IC8vIEFSQUJJQyBIQU1aQSBCRUxPVworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjU0LCAgMjcpOyAvLyBBUkFCSUMgSEFNWkEgQUJPVkUKKworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjUxLCAgMjgpOyAvLyBBUkFCSUMgU0hBRERBCisKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1NiwgIDI5KTsgLy8gQVJBQklDIFNVQlNDUklQVCBBTEVGCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NzAsICAyOSk7IC8vIEFSQUJJQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxFRgorCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NEQsICAzMCk7IC8vIEFSQUJJQyBLQVNSQVRBTgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjUwLCAgMzApOyAvLyBBUkFCSUMgS0FTUkEKKworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjUyLCAgMzEpOyAvLyBBUkFCSUMgU1VLVU4KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDZFMSwgIDMxKTsgLy8gQVJBQklDIFNNQUxMIEhJR0ggRE9UTEVTUyBIRUFEIE9GIEtIQUgKKworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjRCLCAgMzEpOyAvLyBBUkFCSUMgRkFUSEFUQU4KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY0QywgIDMxKTsgLy8gQVJBQklDIERBTU1BVEFOCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NEUsICAzMSk7IC8vIEFSQUJJQyBGQVRIQQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjRGLCAgMzEpOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1NywgIDMxKTsgLy8gQVJBQklDIElOVkVSVEVEIERBTU1BCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTgsICAzMSk7IC8vIEFSQUJJQyBNQVJLIE5PT04gR0hVTk5BCisKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1MywgIDMyKTsgLy8gQVJBQklDIE1BRERBSCBBQk9WRQorICAgICAgICAKKyAgICAgICAgZXhjZXB0aW9ucy5zbmFwc2hvdCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXJrQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50IG1hcmsgPSBtYXJrU2V0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIGludCBtYXJrQ2xhc3MgPSBleGNlcHRpb25zLmdldEdseXBoQ2xhc3NJRChtYXJrKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1hcmtDbGFzcyA9PSAwKSB7CisgICAgICAgICAgICAgICAgbWFya0NsYXNzID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhtYXJrKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29tYmluaW5nQ2xhc3Nlcy5hZGRNYXBwaW5nKG1hcmssIG1hcmtDbGFzcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNvbWJpbmluZ0NsYXNzZXMuc25hcHNob3QoKTsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmluZ0NsYXNzZXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBidWlsZERlY29tcFRhYmxlcyhTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICAvLyBGOTAwIC0gRkFGRiBhcmUgY29tcGF0aWJpbGl0eSBpZGVvZ3JhcGhzLiBUaGV5IGFsbCBkZWNvbXBvc2UgdG8gYSBzaW5nbGUgb3RoZXIgY2hhcmFjdGVyLCBhbmQgY2FuIGJlIGlnbm9yZWQuCisgICAgICAgIFVuaWNvZGVTZXQgZGVjb21wU2V0ID0gbmV3IFVuaWNvZGVTZXQoIltbW1xcUHtIYW5ndWx9XSAmIFtcXHB7RGVjb21wb3NpdGlvblR5cGU9Q2Fub25pY2FsfV1dIC0gW1x1RjkwMC1cdUZBRkZdXSIpOworICAgICAgICBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhIGRhdGEgPSBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhLmZhY3RvcnkoZGVjb21wU2V0KTsKKyAgICAgICAgQ2xhc3NUYWJsZSBjbGFzc1RhYmxlID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICAgICAgCisgICAgICAgIExvb2t1cExpc3QgIGxvb2t1cExpc3QgID0gbmV3IExvb2t1cExpc3QoKTsKKyAgICAgICAgRmVhdHVyZUxpc3QgZmVhdHVyZUxpc3QgPSBuZXcgRmVhdHVyZUxpc3QoKTsKKyAgICAgICAgU2NyaXB0TGlzdCAgc2NyaXB0TGlzdCAgPSBuZXcgU2NyaXB0TGlzdCgpOworCisgICAgICAgIC8vIGJ1aWxkIGNvbW1vbiwgaW5oZXJpdGVkIGxvb2t1cHMuLi4KKy8vICAgICAgICBpbnRbXSBjb21tb25Mb29rdXBzID0gYnVpbGRMb29rdXBzKGRhdGEsIGxvb2t1cExpc3QsIFVTY3JpcHQuQ09NTU9OKTsKKy8vICAgICAgICBpbnRbXSBpbmhlcml0ZWRMb29rdXBzID0gYnVpbGRMb29rdXBzKGRhdGEsIGxvb2t1cExpc3QsIFVTY3JpcHQuSU5IRVJJVEVEKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjcmlwdCA9IDA7IHNjcmlwdCA8IFVTY3JpcHQuQ09ERV9MSU1JVDsgc2NyaXB0ICs9IDEpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGJpdCBsYW1lLCBidXQgaXQncyB0aGUgb25seSB3YXkgSSBjYW4gdGhpbmsgb2YKKyAgICAgICAgICAgIC8vIHRvIG1ha2UgdGhpcyB3b3JrIHcvbyBrbm93aW5nIHRoZSB2YWx1ZXMgb2YgQ09NTU9OIGFuZCBJTkhFUklURUQuLi4KKyAgICAgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5DT01NT04gfHwgc2NyaXB0ID09IFVTY3JpcHQuSU5IRVJJVEVEIHx8CisgICAgICAgICAgICAgICAgZGF0YS5nZXRNYXhFcXVpdmFsZW50cyhzY3JpcHQpID09IDApIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50W10gbG9va3VwcyA9IGJ1aWxkTG9va3VwcyhkYXRhLCBsb29rdXBMaXN0LCBzY3JpcHQpOworCisgICAgICAgICAgICBGZWF0dXJlIGNjbXAgPSBuZXcgRmVhdHVyZSgiY2NtcCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBhZGRMb29rdXBzKGNjbXAsIGxvb2t1cHMpOworLy8gICAgICAgICAgICBhZGRMb29rdXBzKGNjbXAsIGNvbW1vbkxvb2t1cHMpOworLy8gICAgICAgICAgICBhZGRMb29rdXBzKGNjbXAsIGluaGVyaXRlZExvb2t1cHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmZWF0dXJlTGlzdC5hZGRGZWF0dXJlKGNjbXApOworICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzY3JpcHRUYWcgPSBUYWdVdGlsaXRpZXMudGFnTGFiZWwoVVNjcmlwdC5nZXRTaG9ydE5hbWUoc2NyaXB0KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNjcmlwdExpc3QuYWRkRmVhdHVyZShzY3JpcHRUYWcsICIoZGVmYXVsdCkiLCBjY21wKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNjcmlwdCA9PSBVU2NyaXB0LkFSQUJJQykgeworICAgICAgICAgICAgICAgIGJ1aWxkQXJhYmljVGFibGVzKHNjcmlwdExpc3QsIGZlYXR1cmVMaXN0LCBsb29rdXBMaXN0LCBjbGFzc1RhYmxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmVhdHVyZUxpc3QuZmluYWxpemVGZWF0dXJlTGlzdCgpOworICAgICAgICAKKyAgICAgICAgQ2xhc3NUYWJsZSBtYXJrQ2xhc3NUYWJsZSA9IGJ1aWxkQ29tYmluaW5nQ2xhc3NUYWJsZSgpOworICAgICAgICAKKyAgICAgICAgR1NVQldyaXRlciBnc3ViV3JpdGVyID0gbmV3IEdTVUJXcml0ZXIoIkNhbm9uIiwgc2NyaXB0TGlzdCwgZmVhdHVyZUxpc3QsIGxvb2t1cExpc3QpOworICAgICAgICBHREVGV3JpdGVyIGdkZWZXcml0ZXIgPSBuZXcgR0RFRldyaXRlcigiQ2Fub24iLCBjbGFzc1RhYmxlLCBtYXJrQ2xhc3NUYWJsZSk7CisgICAgICAgIFN0cmluZ1tdIGluY2x1ZGVGaWxlcyA9IHsiTEVUeXBlcy5oIiwgIkNhbm9uU2hhcGluZy5oIn07ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIExpZ2F0dXJlTW9kdWxlV3JpdGVyIHdyaXRlciA9IG5ldyBMaWdhdHVyZU1vZHVsZVdyaXRlcigpOworICAgICAgICAKKyAgICAgICAgd3JpdGVyLm9wZW5GaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgd3JpdGVyLndyaXRlSGVhZGVyKG51bGwsIGluY2x1ZGVGaWxlcyk7CisgICAgICAgIHdyaXRlci53cml0ZVRhYmxlKGdzdWJXcml0ZXIpOworICAgICAgICB3cml0ZXIud3JpdGVUYWJsZShnZGVmV3JpdGVyKTsKKyAgICAgICAgd3JpdGVyLndyaXRlVHJhaWxlcigpOworICAgICAgICB3cml0ZXIuY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBidWlsZERlY29tcFRhYmxlcyhhcmdzWzBdKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0Nhbm9uaWNhbENoYXJhY3RlckRhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZDg3ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0Nhbm9uaWNhbENoYXJhY3RlckRhdGEuamF2YQpAQCAtMCwwICsxLDIxNiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2Fub25pY2FsSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitwdWJsaWMgY2xhc3MgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YQoreworICAgIHByaXZhdGUgc3RhdGljIGludCBUSFJFU0hPTEQgPSA0OworICAgIAorICAgIHB1YmxpYyBjbGFzcyBSZWNvcmQKKyAgICB7CisgICAgICAgIC8vIFRPRE86IG1pZ2h0IHdhbnQgdG8gc2F2ZSBhcnJheXMgb2YgQ2hhcjMyJ3MgcmF0aGVyIHRoYW4gVVRGMTYgc3RyaW5ncy4uLgorICAgICAgICBSZWNvcmQoaW50IGNoYXJhY3RlciwgaW50IHNjcmlwdCkKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGNoYXIzMiA9IFVDaGFyYWN0ZXIudG9TdHJpbmcoY2hhcmFjdGVyKTsKKyAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGl0ZXJhdG9yID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKGNoYXIzMik7CisgICAgICAgICAgICBWZWN0b3IgZXF1aXZzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjb21wb3NlZCA9IGNoYXJhY3RlcjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChTdHJpbmcgZXF1aXYgPSBpdGVyYXRvci5uZXh0KCk7IGVxdWl2ICE9IG51bGw7IGVxdWl2ID0gaXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgLy8gU2tpcCBhbGwgZXF1aXZhbGVudHMgb2YgbGVuZ3RoIDE7IGl0J3MgZWl0aGVyIHRoZSBvcmlnaW5hbAorICAgICAgICAgICAgICAgIC8vIGNoYXJhY2V0ZXIgb3Igc29tZXRoaW5nIGxpa2UgQW5nc3Ryb20gZm9yIEEtUmluZywgd2hpY2ggd2UgZG9uJ3QgY2FyZSBhYm91dAorICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChlcXVpdikgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIGVxdWl2cy5hZGQoZXF1aXYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IG5FcXVpdmFsZW50cyA9IGVxdWl2cy5zaXplKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChuRXF1aXZhbGVudHMgPiBtYXhFcXVpdmFsZW50c1tzY3JpcHRdKSB7CisgICAgICAgICAgICAgICAgbWF4RXF1aXZhbGVudHNbc2NyaXB0XSA9IG5FcXVpdmFsZW50czsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5FcXVpdmFsZW50cyA+IDApIHsKKyAgICAgICAgICAgICAgICBlcXVpdmFsZW50cyA9IG5ldyBTdHJpbmdbbkVxdWl2YWxlbnRzXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobkVxdWl2YWxlbnRzID4gVEhSRVNIT0xEKSB7CisgICAgICAgICAgICAgICAgICAgIGR1bXBFcXVpdmFsZW50cyhjaGFyYWN0ZXIsIGVxdWl2cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNvcnRFcXVpdmFsZW50cyhlcXVpdmFsZW50cywgZXF1aXZzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRDb21wb3NlZENoYXJhY3RlcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wb3NlZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBjb3VudEVxdWl2YWxlbnRzKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVxdWl2YWxlbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGVxdWl2YWxlbnRzLmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldEVxdWl2YWxlbnRzKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGVxdWl2YWxlbnRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEVxdWl2YWxlbnQoaW50IGluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXF1aXZhbGVudHMgPT0gbnVsbCB8fCBpbmRleCA8IDAgfHwgaW5kZXggPj0gZXF1aXZhbGVudHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBlcXVpdmFsZW50c1tpbmRleF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCBkdW1wRXF1aXZhbGVudHMoaW50IGNoYXJhY3RlciwgVmVjdG9yIGVxdWl2cykKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGNvdW50ID0gZXF1aXZzLnNpemUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuaGV4KGNoYXJhY3RlciwgNikgKyAiIC0gIiArIGNvdW50ICsgIjoiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGVxdWl2ID0gKFN0cmluZykgZXF1aXZzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBpbnQgY29kZVBvaW50cyA9IFVURjE2LmNvdW50Q29kZVBvaW50KGVxdWl2KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IGNvZGVQb2ludHM7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChVdGlsaXR5LmhleChVVEYxNi5jaGFyQXQoZXF1aXYsIGMpLCA2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tcG9zZWQ7CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gZXF1aXZhbGVudHMgPSBudWxsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSgpCisgICAgeworICAgICAgICAvLyBub3RoaW5nIHRvIGRvLi4uCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgY2hhcmFjdGVyKQorICAgIHsKKyAgICAgICAgaW50IHNjcmlwdCA9IFVTY3JpcHQuZ2V0U2NyaXB0KGNoYXJhY3Rlcik7CisgICAgICAgIFZlY3RvciByZWNvcmRWZWN0b3IgPSByZWNvcmRWZWN0b3JzW3NjcmlwdF07CisgICAgICAgIAorICAgICAgICBpZiAocmVjb3JkVmVjdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlY29yZFZlY3RvciA9IHJlY29yZFZlY3RvcnNbc2NyaXB0XSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVjb3JkVmVjdG9yLmFkZChuZXcgUmVjb3JkKGNoYXJhY3Rlciwgc2NyaXB0KSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0TWF4RXF1aXZhbGVudHMoaW50IHNjcmlwdCkKKyAgICB7CisgICAgICAgIGlmIChzY3JpcHQgPCAwIHx8IHNjcmlwdCA+PSBVU2NyaXB0LkNPREVfTElNSVQpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbWF4RXF1aXZhbGVudHNbc2NyaXB0XTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFJlY29yZCBnZXRSZWNvcmQoaW50IHNjcmlwdCwgaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKHNjcmlwdCA8IDAgfHwgc2NyaXB0ID49IFVTY3JpcHQuQ09ERV9MSU1JVCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFZlY3RvciByZWNvcmRWZWN0b3IgPSByZWNvcmRWZWN0b3JzW3NjcmlwdF07CisgICAgICAgIAorICAgICAgICBpZiAocmVjb3JkVmVjdG9yID09IG51bGwgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHJlY29yZFZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gKFJlY29yZCkgcmVjb3JkVmVjdG9yLmVsZW1lbnRBdChpbmRleCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgY291bnRSZWNvcmRzKGludCBzY3JpcHQpCisgICAgeworICAgICAgICBpZiAoc2NyaXB0IDwgMCB8fCBzY3JpcHQgPj0gVVNjcmlwdC5DT0RFX0xJTUlUIHx8CisgICAgICAgICAgICByZWNvcmRWZWN0b3JzW3NjcmlwdF0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZWNvcmRWZWN0b3JzW3NjcmlwdF0uc2l6ZSgpOworICAgIH0KKyAKKyAgICBwdWJsaWMgc3RhdGljIENhbm9uaWNhbENoYXJhY3RlckRhdGEgZmFjdG9yeShVbmljb2RlU2V0IGNoYXJhY3RlclNldCkKKyAgICB7CisgICAgICAgIGludCBjaGFyQ291bnQgPSBjaGFyYWN0ZXJTZXQuc2l6ZSgpOworICAgICAgICBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhIGRhdGEgPSBuZXcgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSgpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGVyZSBhcmUgIiArIGNoYXJDb3VudCArICIgY2hhcmFjdGVycyB3aXRoIGEgY2Fub25pY2FsIGRlY29tcG9zaXRpb24uIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYXJDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBkYXRhLmFkZChjaGFyYWN0ZXJTZXQuY2hhckF0KGkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvbXBhcmVFcXVpdmFsZW50cyhTdHJpbmcgYSwgU3RyaW5nIGIpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gVVRGMTYuY291bnRDb2RlUG9pbnQoYSkgLSBVVEYxNi5jb3VudENvZGVQb2ludChiKTsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBhLmNvbXBhcmVUbyhiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICAvLworICAgIC8vIFN0cmFpZ2h0IGluc2VydGlvbiBzb3J0IGZyb20gS251dGggdm9sLiBJSUksIHBnLiA4MQorICAgIC8vCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzb3J0RXF1aXZhbGVudHMoU3RyaW5nW10gZXF1aXZhbGVudHMsIFZlY3RvciB1bnNvcnRlZCkKKyAgICB7CisgICAgICAgIGludCBuRXF1aXZhbGVudHMgPSBlcXVpdmFsZW50cy5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBlID0gMDsgZSA8IG5FcXVpdmFsZW50czsgZSArPSAxKSB7CisgICAgICAgICAgICBTdHJpbmcgdiA9IChTdHJpbmcpIHVuc29ydGVkLmVsZW1lbnRBdChlKTsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGkgPSBlIC0gMTsgaSA+PSAwOyBpIC09IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAoY29tcGFyZUVxdWl2YWxlbnRzKHYsIGVxdWl2YWxlbnRzW2ldKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBlcXVpdmFsZW50c1tpICsgMV0gPSBlcXVpdmFsZW50c1tpXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXF1aXZhbGVudHNbaSArIDFdID0gdjsKKyAgICAgICB9CisgICAgfQorICAgICAgICAgICAgCisgICAgcHJpdmF0ZSBWZWN0b3IgcmVjb3JkVmVjdG9yc1tdID0gbmV3IFZlY3RvcltVU2NyaXB0LkNPREVfTElNSVRdOworICAgIHByaXZhdGUgaW50IG1heEVxdWl2YWxlbnRzW10gPSBuZXcgaW50W1VTY3JpcHQuQ09ERV9MSU1JVF07CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2xhc3NUYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DbGFzc1RhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhiYWUwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2xhc3NUYWJsZS5qYXZhCkBAIC0wLDAgKzEsMjM3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGNsYXNzIENsYXNzVGFibGUgaW1wbGVtZW50cyBMb29rdXBTdWJ0YWJsZQoreworICAgIHN0YXRpYyBjbGFzcyBDbGFzc0VudHJ5CisgICAgeworICAgICAgICBwcml2YXRlIGludCBnbHlwaElEOworICAgICAgICBwcml2YXRlIGludCBjbGFzc0lEOworICAgICAgICAKKyAgICAgICAgcHVibGljIENsYXNzRW50cnkoaW50IGdseXBoSUQsIGludCBjbGFzc0lEKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmdseXBoSUQgPSBnbHlwaElEOworICAgICAgICAgICAgdGhpcy5jbGFzc0lEID0gY2xhc3NJRDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRHbHlwaElEKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGdseXBoSUQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Q2xhc3NJRCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjbGFzc0lEOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhDbGFzc0VudHJ5IHRoYXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmdseXBoSUQgLSB0aGF0LmdseXBoSUQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFN0cmFpZ2h0IGluc2VydGlvbiBzb3J0IGZyb20gS251dGggdm9sLiBJSUksIHBnLiA4MQorICAgICAgICAvLworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgc29ydChDbGFzc0VudHJ5W10gdGFibGUsIFZlY3RvciB1bnNvcnRlZCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgZSA9IDA7IGUgPCB0YWJsZS5sZW5ndGg7IGUgKz0gMSkgeworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgICAgIENsYXNzRW50cnkgdiA9IChDbGFzc0VudHJ5KSB1bnNvcnRlZC5lbGVtZW50QXQoZSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSBlIC0gMTsgaSA+PSAwOyBpIC09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHYuY29tcGFyZVRvKHRhYmxlW2ldKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICB0YWJsZVtpICsgMV0gPSB0YWJsZVtpXTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0YWJsZVtpICsgMV0gPSB2OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGludCBzZWFyY2goQ2xhc3NFbnRyeVtdIHRhYmxlLCBpbnQgZ2x5cGhJRCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGxvZzIgPSBVdGlsaXR5LmhpZ2hCaXQodGFibGUubGVuZ3RoKTsKKyAgICAgICAgICAgIGludCBwb3dlciA9IDEgPDwgbG9nMjsKKyAgICAgICAgICAgIGludCBleHRyYSA9IHRhYmxlLmxlbmd0aCAtIHBvd2VyOworICAgICAgICAgICAgaW50IHByb2JlID0gcG93ZXI7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworCisgICAgICAgICAgICBpZiAodGFibGVbZXh0cmFdLmdseXBoSUQgPD0gZ2x5cGhJRCkgeworICAgICAgICAgICAgICBpbmRleCA9IGV4dHJhOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAocHJvYmUgPiAoMSA8PCAwKSkgeworICAgICAgICAgICAgICAgIHByb2JlID4+PSAxOworCisgICAgICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgcHJvYmVdLmdseXBoSUQgPD0gZ2x5cGhJRCkgeworICAgICAgICAgICAgICAgICAgICBpbmRleCArPSBwcm9iZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleF0uZ2x5cGhJRCA9PSBnbHlwaElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENsYXNzUmFuZ2VSZWNvcmQKKyAgICB7CisgICAgICAgIHByaXZhdGUgaW50IHN0YXJ0R2x5cGhJRDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZW5kR2x5cGhJRDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgY2xhc3NJRDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDbGFzc1JhbmdlUmVjb3JkKGludCBzdGFydEdseXBoSUQsIGludCBlbmRHbHlwaElELCBpbnQgY2xhc3NJRCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5zdGFydEdseXBoSUQgPSBzdGFydEdseXBoSUQ7CisgICAgICAgICAgICB0aGlzLmVuZEdseXBoSUQgPSBlbmRHbHlwaElEOworICAgICAgICAgICAgdGhpcy5jbGFzc0lEID0gY2xhc3NJRDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoVXRpbGl0eS5oZXgoc3RhcnRHbHlwaElELCA2KSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgLSAiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoVXRpbGl0eS5oZXgoZW5kR2x5cGhJRCwgNikpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiAiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjbGFzc0lEKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShzdGFydEdseXBoSUQpOworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShlbmRHbHlwaElEKTsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoY2xhc3NJRCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBWZWN0b3IgY2xhc3NNYXA7CisgICAgcHJpdmF0ZSBDbGFzc0VudHJ5W10gY2xhc3NUYWJsZTsKKyAgICBwcml2YXRlIGludCBzbmFwc2hvdFNpemU7CisgICAgCisgICAgcHVibGljIENsYXNzVGFibGUoKQorICAgIHsKKyAgICAgICAgdGhpcy5jbGFzc01hcCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdGhpcy5jbGFzc1RhYmxlID0gbnVsbDsKKyAgICAgICAgdGhpcy5zbmFwc2hvdFNpemUgPSAtMTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZE1hcHBpbmcoaW50IGNoYXJJRCwgaW50IGNsYXNzSUQpCisgICAgeworICAgICAgICBDbGFzc0VudHJ5IGVudHJ5ID0gbmV3IENsYXNzRW50cnkoY2hhcklELCBjbGFzc0lEKTsKKyAgICAgICAgCisgICAgICAgIGNsYXNzTWFwLmFkZEVsZW1lbnQoZW50cnkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRNYXBwaW5nKGludCBzdGFydENoYXJJRCwgaW50IGVuZENoYXJJRCwgaW50IGNsYXNzSUQpCisgICAgeworICAgICAgICBmb3IgKGludCBjaGFySUQgPSBzdGFydENoYXJJRDsgY2hhcklEIDw9IGVuZENoYXJJRDsgY2hhcklEICs9IDEpIHsKKyAgICAgICAgICAgIGFkZE1hcHBpbmcoY2hhcklELCBjbGFzc0lEKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEdseXBoQ2xhc3NJRChpbnQgZ2x5cGhJRCkKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IENsYXNzRW50cnkuc2VhcmNoKGNsYXNzVGFibGUsIGdseXBoSUQpOworICAgICAgICAKKyAgICAgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBjbGFzc1RhYmxlW2luZGV4XS5nZXRDbGFzc0lEKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzbmFwc2hvdCgpCisgICAgeworICAgICAgICBpZiAoc25hcHNob3RTaXplICE9IGNsYXNzTWFwLnNpemUoKSkgeworICAgICAgICAgICAgc25hcHNob3RTaXplID0gY2xhc3NNYXAuc2l6ZSgpOworICAgICAgICAgICAgY2xhc3NUYWJsZSA9IG5ldyBDbGFzc0VudHJ5W3NuYXBzaG90U2l6ZV07CisKKyAgICAgICAgICAgIENsYXNzRW50cnkuc29ydChjbGFzc1RhYmxlLCBjbGFzc01hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVDbGFzc1RhYmxlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgc25hcHNob3QoKTsKKyAgICAgICAgCisgICAgICAgIFZlY3RvciBjbGFzc1JhbmdlcyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgaW50IHN0YXJ0SW5kZXggPSAwOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBjbGFzc1RhYmxlLmxlbmd0aCkgeworICAgICAgICAgICAgaW50IHN0YXJ0SUQgPSBjbGFzc1RhYmxlW3N0YXJ0SW5kZXhdLmdldEdseXBoSUQoKTsKKyAgICAgICAgICAgIGludCBjbGFzc0lEID0gY2xhc3NUYWJsZVtzdGFydEluZGV4XS5nZXRDbGFzc0lEKCk7CisgICAgICAgICAgICBpbnQgbmV4dElEID0gc3RhcnRJRDsKKyAgICAgICAgICAgIGludCBlbmRJRCA9IHN0YXJ0SUQ7CisgICAgICAgICAgICBpbnQgZW5kSW5kZXg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoZW5kSW5kZXggPSBzdGFydEluZGV4OyBlbmRJbmRleCA8IGNsYXNzVGFibGUubGVuZ3RoOyBlbmRJbmRleCArPSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKGNsYXNzVGFibGVbZW5kSW5kZXhdLmdldEdseXBoSUQoKSAhPSBuZXh0SUQgfHwKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NUYWJsZVtlbmRJbmRleF0uZ2V0Q2xhc3NJRCgpICE9IGNsYXNzSUQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGVuZElEID0gbmV4dElEOworICAgICAgICAgICAgICAgIG5leHRJRCArPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2xhc3NJRCAhPSAwKSB7CisgICAgICAgICAgICAgICAgQ2xhc3NSYW5nZVJlY29yZCByYW5nZSA9IG5ldyBDbGFzc1JhbmdlUmVjb3JkKHN0YXJ0SUQsIGVuZElELCBjbGFzc0lEKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjbGFzc1Jhbmdlcy5hZGRFbGVtZW50KHJhbmdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RhcnRJbmRleCA9IGVuZEluZGV4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDIpOyAgICAgICAgICAgICAgICAgICAgLy8gdGFibGUgZm9ybWF0ID0gMiAoY2xhc3MgcmFuZ2VzKQorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGNsYXNzUmFuZ2VzLnNpemUoKSk7ICAgLy8gY2xhc3MgcmFuZ2UgY291bnQKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2xhc3NSYW5nZXMuc2l6ZSgpOyBpICs9IDEpIHsKKyAgICAgICAgICAgIENsYXNzUmFuZ2VSZWNvcmQgcmFuZ2UgPSAoQ2xhc3NSYW5nZVJlY29yZCkgY2xhc3NSYW5nZXMuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICByYW5nZS53cml0ZSh3cml0ZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVMb29rdXBTdWJ0YWJsZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIGludCBzaW5nbGVTdWJzdGl0dXRpb25zQmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICBpbnQgY292ZXJhZ2VUYWJsZUluZGV4OworICAgICAgICAKKyAgICAgICAgc25hcHNob3QoKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMik7IC8vIGZvcm1hdCAyOiBTcGVjaWZpZWQgb3V0cHV0IGdseXBoIGluZGljZXMKKyAgICAgICAgY292ZXJhZ2VUYWJsZUluZGV4ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7IC8vIG9mZnNldCB0byBjb3ZlcmFnZSB0YWJsZSAoZml4ZWQgbGF0ZXIpCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoY2xhc3NUYWJsZS5sZW5ndGgpOyAvLyBudW1iZXIgb2YgZ2x5cGhJRHMgaW4gc3Vic3RpdHV0aW9uIGFycmF5CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNsYXNzVGFibGUubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoY2xhc3NUYWJsZVtpXS5nZXRDbGFzc0lEKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGNvdmVyYWdlVGFibGVJbmRleCwgc2luZ2xlU3Vic3RpdHV0aW9uc0Jhc2UpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDEpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGNsYXNzVGFibGUubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2xhc3NUYWJsZS5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShjbGFzc1RhYmxlW2ldLmdldEdseXBoSUQoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgCisgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9EZWNvbXBUYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9EZWNvbXBUYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZjUxZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0RlY29tcFRhYmxlLmphdmEKQEAgLTAsMCArMSwxODQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBAYXV0aG9yIE93bmVyCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIERlY29tcFRhYmxlIGltcGxlbWVudHMgTG9va3VwU3VidGFibGUKK3sKKyAgICBzdGF0aWMgY2xhc3MgRGVjb21wRW50cnkKKyAgICB7CisgICAgICAgIHByaXZhdGUgaW50IGNvbXBvc2VkOworICAgICAgICBwcml2YXRlIGludFtdIGRlY29tcDsKKyAgICAgICAgCisgICAgICAgIERlY29tcEVudHJ5KGludCBjb21wb3NlZENoYXIsIFN0cmluZyBkZWNvbXBvc2l0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZGVjb21wQ291bnQgPSBVVEYxNi5jb3VudENvZGVQb2ludChkZWNvbXBvc2l0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29tcG9zZWQgPSBjb21wb3NlZENoYXI7CisgICAgICAgICAgICBkZWNvbXAgPSBuZXcgaW50W2RlY29tcENvdW50XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IG91dCA9IDAsIGNwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpbiA9IDA7IGluIDwgZGVjb21wb3NpdGlvbi5sZW5ndGgoKTsgaW4gKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KGRlY29tcG9zaXRpb24sIGluKTsKKyAgICAgICAgICAgICAgICBkZWNvbXBbb3V0KytdID0gY3A7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Q29tcG9zZWRDaGFyYWN0ZXIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29tcG9zZWQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnRbXSBnZXREZWNvbXBvc2l0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRlY29tcDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXREZWNvbXBvc2l0aW9uQ291bnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGVjb21wLmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXREZWNvbXBvc2VkQ2hhcmFjdGVyKGludCBpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaSA+PSAwICYmIGkgPCBkZWNvbXAubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29tcFtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhEZWNvbXBFbnRyeSB0aGF0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb3NlZCAtIHRoYXQuY29tcG9zZWQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFN0cmFpZ2h0IGluc2VydGlvbiBzb3J0IGZyb20gS251dGggdm9sLiBJSUksIHBnLiA4MQorICAgICAgICAvLworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgc29ydChEZWNvbXBFbnRyeVtdIHRhYmxlLCBWZWN0b3IgZGVjb21wVmVjdG9yKQorICAgICAgICB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRhYmxlLmxlbmd0aDsgaiArPSAxKSB7CisgICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICAgRGVjb21wRW50cnkgdiA9IChEZWNvbXBFbnRyeSkgZGVjb21wVmVjdG9yLmVsZW1lbnRBdChqKTsKKworICAgICAgICAgICAgICAgIGZvciAoaSA9IGogLSAxOyBpID49IDA7IGkgLT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodi5jb21wYXJlVG8odGFibGVbaV0pID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHRhYmxlW2kgKyAxXSA9IHRhYmxlW2ldOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRhYmxlW2kgKyAxXSA9IHY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBWZWN0b3IgZGVjb21wVmVjdG9yOworICAgIHByaXZhdGUgRGVjb21wRW50cnlbXSBkZWNvbXBFbnRyaWVzOworICAgIHByaXZhdGUgaW50IHNuYXBzaG90U2l6ZTsKKyAgICAKKyAgICBwdWJsaWMgRGVjb21wVGFibGUoKQorICAgIHsKKyAgICAgICAgZGVjb21wVmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICBkZWNvbXBFbnRyaWVzID0gbnVsbDsKKyAgICAgICAgc25hcHNob3RTaXplID0gLTE7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgY29tcG9zZWQsIFN0cmluZyBkZWNvbXBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgRGVjb21wRW50cnkgZW50cnkgPSBuZXcgRGVjb21wRW50cnkoY29tcG9zZWQsIGRlY29tcG9zaXRpb24pOworICAgICAgICAKKyAgICAgICAgZGVjb21wVmVjdG9yLmFkZEVsZW1lbnQoZW50cnkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldENvbXBvc2VkQ2hhcmFjdGVyKGludCBpKQorICAgIHsKKyAgICAgICAgaWYgKGkgPCAwIHx8IGkgPiBkZWNvbXBFbnRyaWVzLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVjb21wRW50cmllc1tpXS5nZXRDb21wb3NlZENoYXJhY3RlcigpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldERlY29tcG9zaXRpb25Db3VudChpbnQgaSkKKyAgICB7CisgICAgICAgIGlmIChpIDwgMCB8fCBpID4gZGVjb21wRW50cmllcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRlY29tcEVudHJpZXNbaV0uZ2V0RGVjb21wb3NpdGlvbkNvdW50KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGhhc0VudHJpZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRlY29tcFZlY3Rvci5zaXplKCkgPiAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc25hcHNob3QoKQorICAgIHsKKyAgICAgICAgaWYgKHNuYXBzaG90U2l6ZSAhPSBkZWNvbXBWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICBzbmFwc2hvdFNpemUgPSBkZWNvbXBWZWN0b3Iuc2l6ZSgpOworICAgICAgICAgICAgZGVjb21wRW50cmllcyA9IG5ldyBEZWNvbXBFbnRyeVtzbmFwc2hvdFNpemVdOworICAgICAgICAgICAgRGVjb21wRW50cnkuc29ydChkZWNvbXBFbnRyaWVzLCBkZWNvbXBWZWN0b3IpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVMb29rdXBTdWJ0YWJsZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIHNuYXBzaG90KCk7CisgICAgICAgIAorICAgICAgICBpbnQgbXVsdGlwbGVTdWJzdGl0dXRpb25zQmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICBpbnQgY292ZXJhZ2VUYWJsZUluZGV4LCBzZXF1ZW5jZU9mZnNldEluZGV4OworICAgICAgICBpbnQgc2VxdWVuY2VDb3VudCA9IGRlY29tcEVudHJpZXMubGVuZ3RoOworICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgxKTsgLy8gZm9ybWF0ID0gMQorICAgICAgICAKKyAgICAgICAgY292ZXJhZ2VUYWJsZUluZGV4ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7IC8vIGNvdmVyYWdlIHRhYmxlIG9mZnNldCAoZml4ZWQgbGF0ZXIpCisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKHNlcXVlbmNlQ291bnQpOworICAgICAgICAKKyAgICAgICAgc2VxdWVuY2VPZmZzZXRJbmRleCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICBmb3IgKGludCBzID0gMDsgcyA8IHNlcXVlbmNlQ291bnQ7IHMgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgLy8gb2Zmc2V0IHRvIHNlcXVlbmNlIHRhYmxlIChmaXhlZCBsYXRlcik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHMgPSAwOyBzIDwgc2VxdWVuY2VDb3VudDsgcyArPSAxKSB7CisgICAgICAgICAgICBEZWNvbXBFbnRyeSBlbnRyeSA9IGRlY29tcEVudHJpZXNbc107CisgICAgICAgICAgICBpbnQgZGVjb21wQ291bnQgPSBlbnRyeS5nZXREZWNvbXBvc2l0aW9uQ291bnQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChzZXF1ZW5jZU9mZnNldEluZGV4KyssIG11bHRpcGxlU3Vic3RpdHV0aW9uc0Jhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGRlY29tcENvdW50KTsgLy8gZ2x5cGhDb3VudAorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBnID0gMDsgZyA8IGRlY29tcENvdW50OyBnICs9IDEpIHsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGVudHJ5LmdldERlY29tcG9zZWRDaGFyYWN0ZXIoZykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB3cml0ZSBhIGZvcm1hdCAxIGNvdmVyYWdlIHRhYmxlCisgICAgICAgIHdyaXRlci5maXhPZmZzZXQoY292ZXJhZ2VUYWJsZUluZGV4LCBtdWx0aXBsZVN1YnN0aXR1dGlvbnNCYXNlKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgxKTsgLy8gZm9ybWF0ID0gMQorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKHNlcXVlbmNlQ291bnQpOyAgLy8gZ2x5cGhDb3VudAorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzZXF1ZW5jZUNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZGVjb21wRW50cmllc1tpXS5nZXRDb21wb3NlZENoYXJhY3RlcigpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRmVhdHVyZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9GZWF0dXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FjZjg3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRmVhdHVyZS5qYXZhCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK2NsYXNzIEZlYXR1cmUgZXh0ZW5kcyBUYWdnZWRSZWNvcmQKK3sKKyAgICBwcml2YXRlIGludFtdIGxvb2t1cEluZGljZXM7CisgICAgcHJpdmF0ZSBpbnQgbG9va3VwQ291bnQ7CisgICAgcHJpdmF0ZSBpbnQgZmVhdHVyZUluZGV4OworICAgIAorICAgIHB1YmxpYyBGZWF0dXJlKFN0cmluZyB0aGVGZWF0dXJlVGFnKQorICAgIHsKKyAgICAgICAgc3VwZXIodGhlRmVhdHVyZVRhZyk7CisgICAgICAgIAorICAgICAgICBsb29rdXBJbmRpY2VzID0gbmV3IGludFsxMF07CisgICAgICAgIGxvb2t1cENvdW50ID0gMDsKKyAgICAgICAgZmVhdHVyZUluZGV4ID0gLTE7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZExvb2t1cChpbnQgdGhlTG9va3VwSW5kZXgpCisgICAgeworICAgICAgICBpZiAobG9va3VwQ291bnQgPj0gbG9va3VwSW5kaWNlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGludFtdIG5ld0xvb2t1cEluZGljZXMgPSBuZXcgaW50W2xvb2t1cEluZGljZXMubGVuZ3RoICsgNV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobG9va3VwSW5kaWNlcywgMCwgbmV3TG9va3VwSW5kaWNlcywgMCwgbG9va3VwSW5kaWNlcy5sZW5ndGgpOworICAgICAgICAgICAgbG9va3VwSW5kaWNlcyA9IG5ld0xvb2t1cEluZGljZXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvb2t1cEluZGljZXNbbG9va3VwQ291bnRdID0gdGhlTG9va3VwSW5kZXg7CisgICAgICAgIGxvb2t1cENvdW50ICs9IDE7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlRmVhdHVyZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7ICAgICAgLy8gZmVhdHVyZVBhcmFtcyAobXVzdCBiZSBOVUxMKQorICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsb29rdXBDb3VudCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvb2t1cENvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEobG9va3VwSW5kaWNlc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRGZWF0dXJlSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZlYXR1cmVJbmRleDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0RmVhdHVyZUluZGV4KGludCBpbmRleCkKKyAgICB7CisgICAgICAgIGZlYXR1cmVJbmRleCA9IGluZGV4OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0ZlYXR1cmVMaXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0ZlYXR1cmVMaXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdlNjFkNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRmVhdHVyZUxpc3QuamF2YQpAQCAtMCwwICsxLDc3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworcHVibGljIGNsYXNzIEZlYXR1cmVMaXN0Cit7CisgICAgCisgICAgcHJpdmF0ZSBGZWF0dXJlW10gZmVhdHVyZXM7CisgICAgcHJpdmF0ZSBpbnQgZmVhdHVyZUNvdW50OworICAgIAorICAgIHB1YmxpYyBGZWF0dXJlTGlzdCgpCisgICAgeworICAgICAgICBmZWF0dXJlcyA9IG5ldyBGZWF0dXJlWzEwXTsKKyAgICAgICAgZmVhdHVyZUNvdW50ID0gMDsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZEZlYXR1cmUoRmVhdHVyZSBmZWF0dXJlKQorICAgIHsKKyAgICAgICAgaWYgKGZlYXR1cmVDb3VudCA+PSBmZWF0dXJlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIEZlYXR1cmVbXSBuZXdGZWF0dXJlcyA9IG5ldyBGZWF0dXJlW2ZlYXR1cmVzLmxlbmd0aCArIDVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZlYXR1cmVzLCAwLCBuZXdGZWF0dXJlcywgMCwgZmVhdHVyZXMubGVuZ3RoKTsKKyAgICAgICAgICAgIGZlYXR1cmVzID0gbmV3RmVhdHVyZXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZlYXR1cmVzW2ZlYXR1cmVDb3VudCsrXSA9IGZlYXR1cmU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGZpbmFsaXplRmVhdHVyZUxpc3QoKQorICAgIHsKKyAgICAgICAgVGFnZ2VkUmVjb3JkLnNvcnQoZmVhdHVyZXMsIGZlYXR1cmVDb3VudCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZlYXR1cmVDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBmZWF0dXJlc1tpXS5zZXRGZWF0dXJlSW5kZXgoaSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVGZWF0dXJldExpc3QoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJ3cml0aW5nIGZlYXR1cmUgbGlzdC4uLiIpOworICAgICAgICAKKyAgICAgICAgaW50IGZlYXR1cmVMaXN0QmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShmZWF0dXJlQ291bnQpOworICAgICAgICAKKyAgICAgICAgaW50IGZlYXR1cmVSZWNvcmRPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmVhdHVyZUNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIFN0cmluZyB0YWcgPSBmZWF0dXJlc1tpXS5nZXRUYWcoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICciICsgdGFnICsgIiciKTsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZVRhZyh0YWcpOworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmZWF0dXJlQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgLy8gZml4IHRoZSBvZmZzZXQgaW4gdGhlIGZlYXR1cmVSZWNvcmRBcnJheS4KKyAgICAgICAgICAgIC8vIFRoZSAiKzIiIHNraXBzIG92ZXIgdGhlIHRhZyBhbmQgdGhlICIrMyIKKyAgICAgICAgICAgIC8vIHNraXBzIHRvIHRoZSBuZXh0IGZlYXR1cmVSZWNvcmQgZW50cnkKKyAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQoZmVhdHVyZVJlY29yZE9mZnNldCArIDIsIGZlYXR1cmVMaXN0QmFzZSk7CisgICAgICAgICAgICBmZWF0dXJlUmVjb3JkT2Zmc2V0ICs9IDM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZlYXR1cmVzW2ldLndyaXRlRmVhdHVyZSh3cml0ZXIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9HREVGV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0dERUZXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWMxM2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9HREVGV3JpdGVyLmphdmEKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKKworCisKK2NsYXNzIEdERUZXcml0ZXIgZXh0ZW5kcyBPcGVuVHlwZVRhYmxlV3JpdGVyCit7CisgICAgQ2xhc3NUYWJsZSBjbGFzc1RhYmxlOworICAgIENsYXNzVGFibGUgbWFya0NsYXNzVGFibGU7CisgICAgU3RyaW5nIHNjcmlwdE5hbWU7CisgICAgCisgICAgcHVibGljIEdERUZXcml0ZXIoU3RyaW5nIHNjcmlwdE5hbWUsIENsYXNzVGFibGUgY2xhc3NUYWJsZSwgQ2xhc3NUYWJsZSBtYXJrQ2xhc3NUYWJsZSkKKyAgICB7CisgICAgICAgIHN1cGVyKDEwMjQpOworICAgICAgICB0aGlzLmNsYXNzVGFibGUgICAgID0gY2xhc3NUYWJsZTsKKyAgICAgICAgdGhpcy5tYXJrQ2xhc3NUYWJsZSA9IG1hcmtDbGFzc1RhYmxlOworICAgICAgICB0aGlzLnNjcmlwdE5hbWUgICAgID0gc2NyaXB0TmFtZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVUYWJsZShQcmludFN0cmVhbSBvdXRwdXQpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIHNjcmlwdE5hbWUgKyAiIEdERUYgdGFibGUuLi4iKTsKKyAgICAgICAgCisgICAgICAgIC8vIDB4MDAwMTAwMCAoZml4ZWQxKSB2ZXJzaW9uIG51bWJlcgorICAgICAgICB3cml0ZURhdGEoMHgwMDAxKTsKKyAgICAgICAgd3JpdGVEYXRhKDB4MDAwMCk7CisgICAgICAgIAorICAgICAgICBpbnQgY2xhc3NEZWZPZmZzZXQgPSBnZXRPdXRwdXRJbmRleCgpOworICAgICAgICB3cml0ZURhdGEoMCk7IC8vIGdseXBoQ2xhc3NEZWZPZmZzZXQgKHdpbGwgZml4IGxhdGVyKTsKKyAgICAgICAgd3JpdGVEYXRhKDApOyAvLyBhdHRhY2hMaXN0T2Zmc2V0CisgICAgICAgIHdyaXRlRGF0YSgwKTsgLy8gbGlnQ2FyZXRMaXN0T2Zmc2V0CisgICAgICAgIHdyaXRlRGF0YSgwKTsgLy8gbWFya0F0dGFjaENsYXNzRGVmT2Zmc2V0CisgICAgICAgIAorICAgICAgICBmaXhPZmZzZXQoY2xhc3NEZWZPZmZzZXQrKywgMCk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgZ2x5cGggY2xhc3MgZGVmaW5pdGlvbiB0YWJsZS4uLiIpOworICAgICAgICBjbGFzc1RhYmxlLndyaXRlQ2xhc3NUYWJsZSh0aGlzKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNraXAgb3ZlciBhdHRhY2hMaXN0T2Zmc2V0LCBsaWdDYXJldExpc3RPZmZzZXQKKyAgICAgICAgY2xhc3NEZWZPZmZzZXQgKz0gMjsKKyAgICAgICAgCisgICAgICAgIGlmIChtYXJrQ2xhc3NUYWJsZSAhPSBudWxsKSB7CisgICAgICAgICAgICBmaXhPZmZzZXQoY2xhc3NEZWZPZmZzZXQsIDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgbWFyayBhdHRhY2ggY2xhc3MgZGVmaW5pdGlvbiB0YWJsZS4uLiIpOworICAgICAgICAgICAgbWFya0NsYXNzVGFibGUud3JpdGVDbGFzc1RhYmxlKHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgb3V0cHV0LnByaW50KCJjb25zdCBsZV91aW50OCAiKTsKKyAgICAgICAgb3V0cHV0LnByaW50KHNjcmlwdE5hbWUpOworICAgICAgICBvdXRwdXQucHJpbnRsbigiU2hhcGluZzo6Z2x5cGhEZWZpbml0aW9uVGFibGVbXSA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGR1bXBUYWJsZShvdXRwdXQsIDgpOworICAgICAgICBvdXRwdXQucHJpbnRsbigifTtcbiIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvR1NVQldyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9HU1VCV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZmY2YzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvR1NVQldyaXRlci5qYXZhCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CisKKworcHVibGljIGNsYXNzIEdTVUJXcml0ZXIgZXh0ZW5kcyBPcGVuVHlwZVRhYmxlV3JpdGVyCit7CisgICAgcHJpdmF0ZSBTY3JpcHRMaXN0IHNjcmlwdExpc3Q7CisgICAgcHJpdmF0ZSBGZWF0dXJlTGlzdCBmZWF0dXJlTGlzdDsKKyAgICBwcml2YXRlIExvb2t1cExpc3QgbG9va3VwTGlzdDsKKyAgICBwcml2YXRlIFN0cmluZyBzY3JpcHROYW1lOworICAgIAorICAgIHB1YmxpYyBHU1VCV3JpdGVyKFN0cmluZyB0aGVTY3JpcHROYW1lLCBTY3JpcHRMaXN0IHRoZVNjcmlwdExpc3QsIEZlYXR1cmVMaXN0IHRoZUZlYXR1cmVMaXN0LAorICAgICAgICAgICAgICAgICAgICAgIExvb2t1cExpc3QgdGhlTG9va3VwTGlzdCkKKyAgICB7CisgICAgICAgIHN1cGVyKDEwMjQpOworICAgICAgICAKKyAgICAgICAgc2NyaXB0TGlzdCAgPSB0aGVTY3JpcHRMaXN0OworICAgICAgICBmZWF0dXJlTGlzdCA9IHRoZUZlYXR1cmVMaXN0OworICAgICAgICBsb29rdXBMaXN0ICA9IHRoZUxvb2t1cExpc3Q7CisgICAgICAgIHNjcmlwdE5hbWUgID0gdGhlU2NyaXB0TmFtZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVUYWJsZShQcmludFN0cmVhbSBvdXRwdXQpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIndyaXRpbmcgIiArIHNjcmlwdE5hbWUgKyAiIEdTVUIgdGFibGUuLi4iKTsKKyAgICAgICAgCisgICAgICAgIC8vIDB4MDAwMTAwMDAgKGZpeGVkMSkgdmVyc2lvbiBudW1iZXIKKyAgICAgICAgd3JpdGVEYXRhKDB4MDAwMSk7CisgICAgICAgIHdyaXRlRGF0YSgweDAwMDApOworICAgICAgICAKKyAgICAgICAgaW50IGxpc3RPZmZzZXQgPSBnZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgd3JpdGVEYXRhKDApOyAvLyBzY3JpcHQgbGlzdCBvZmZzZXQgKGZpeGVkIGxhdGVyKQorICAgICAgICB3cml0ZURhdGEoMCk7IC8vIGZlYXR1cmUgbGlzdCBvZmZzZXQgKGZpeGVkIGxhdGVyKQorICAgICAgICB3cml0ZURhdGEoMCk7IC8vIGxvb2t1cCBsaXN0IG9mZnNldCAoZml4ZWQgbGF0ZXIpCisgICAgICAgIAorICAgICAgICBmaXhPZmZzZXQobGlzdE9mZnNldCsrLCAwKTsKKyAgICAgICAgc2NyaXB0TGlzdC53cml0ZVNjcmlwdExpc3QodGhpcyk7CisgICAgICAgIAorICAgICAgICBmaXhPZmZzZXQobGlzdE9mZnNldCsrLCAwKTsKKyAgICAgICAgZmVhdHVyZUxpc3Qud3JpdGVGZWF0dXJldExpc3QodGhpcyk7CisgICAgICAgIAorICAgICAgICBmaXhPZmZzZXQobGlzdE9mZnNldCsrLCAwKTsKKyAgICAgICAgbG9va3VwTGlzdC53cml0ZUxvb2t1cExpc3QodGhpcyk7CisKKyAgICAgICAgb3V0cHV0LnByaW50KCJjb25zdCBsZV91aW50OCAiKTsKKyAgICAgICAgb3V0cHV0LnByaW50KHNjcmlwdE5hbWUpOworICAgICAgICBvdXRwdXQucHJpbnRsbigiU2hhcGluZzo6Z2x5cGhTdWJzdGl0dXRpb25UYWJsZVtdID0geyIpOworICAgICAgICAKKyAgICAgICAgZHVtcFRhYmxlKG91dHB1dCwgOCk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCJ9O1xuIik7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGFuZ3VhZ2VEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xhbmd1YWdlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2MmI5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xhbmd1YWdlRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIEFwciA0LCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBob2xkcyB0aGUgbGlzdCBvZiBsYW5ndWFnZXMuCisgKiAKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICovCitwdWJsaWMgY2xhc3MgTGFuZ3VhZ2VEYXRhIGV4dGVuZHMgVGFnVmFsdWVEYXRhCit7CisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZWNvcmQKKyAgICB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHRhZzsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBSZWNvcmQoU3RyaW5nIHRhZywgU3RyaW5nIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMudGFnID0gdGFnOworICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyB0YWcoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFnOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIG5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBsYWJlbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBUYWdVdGlsaXRpZXMudGFnTGFiZWwodGFnKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBtYWtlVGFnKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIFRhZ1V0aWxpdGllcy5tYWtlVGFnKHRhZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogVGhpcyBpcyB0ZW1wb3JhcnkgZGF0YSB1bnRpbCB0aGVyZSBpcyBzb21lIHJlc29sdXRpb24gYmV0d2VlbgorICAgICAqIHRoZSBPcGVuVHlwZSBsYW5ndWFnZSBzeXN0ZW0gdGFncyBhbmQgdGhlIElTTyBhbmQgUkZDIHN0YW5kYXJkcy4uLgorICAgICAqLworICAgIHByaXZhdGUgUmVjb3JkW10gbGFuZ3VhZ2VzID0KKyAgICB7CisgICAgICAgIG5ldyBSZWNvcmQoIiIsICAgICJudWxsIiksCisgICAgICAgIG5ldyBSZWNvcmQoIkFSQSIsICJBcmFiaWMiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiQVNNIiwgIkFzc2FtZXNlIiksCisgICAgICAgIG5ldyBSZWNvcmQoIkJFTiIsICJCZW5nYWxpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIkZBUiIsICJGYXJzaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJHVUoiLCAiR3VqYXJhdGkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiSElOIiwgIkhpbmRpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIklXUiIsICJIZWJyZXciKSwKKyAgICAgICAgbmV3IFJlY29yZCgiSklJIiwgIllpZGRpc2giKSwKKyAgICAgICAgbmV3IFJlY29yZCgiSkFOIiwgIkphcGFuZXNlIiksCisgICAgICAgIG5ldyBSZWNvcmQoIktBTiIsICJLYW5uYWRhIiksCisgICAgICAgIG5ldyBSZWNvcmQoIktPSyIsICJLb25rYW5pIiksCisgICAgICAgIG5ldyBSZWNvcmQoIktPUiIsICJLb3JlYW4iKSwKKyAgICAgICAgbmV3IFJlY29yZCgiS1NIIiwgIkthc2htaXJpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIk1BTCIsICJNYWxheWFsYW0gKFRyYWRpdGlvbmFsKSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJNQVIiLCAiTWFyYXRoaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJNTFIiLCAiTWFsYXlhbGFtIChSZWZvcm1lZCkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiTU5JIiwgIk1hbmlwdXJpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIk9SSSIsICJPcml5YSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJTQU4iLCAiU2Fuc2NyaXQiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiU05EIiwgIlNpbmRoaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJTTkgiLCAiU2luaGFsZXNlIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlNZUiIsICJTeXJpYWMiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiVEFNIiwgIlRhbWlsIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlRFTCIsICJUZWx1Z3UiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiVEhBIiwgIlRoYWkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiVVJEIiwgIlVyZHUiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiWkhQIiwgIkNoaW5lc2UgKFBob25ldGljKSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJaSFMiLCAiQ2hpbmVzZSAoU2ltcGxpZmllZCkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiWkhUIiwgIkNoaW5lc2UgKFRyYWRpdGlvbmFsKSIpCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIGludCBtaW5MYW5ndWFnZSA9IDA7CisgICAgcHJpdmF0ZSBpbnQgbWF4TGFuZ3VhZ2UgPSBtaW5MYW5ndWFnZSArIGxhbmd1YWdlcy5sZW5ndGggLSAxOworICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0TWluVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1pbkxhbmd1YWdlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE1heFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtYXhMYW5ndWFnZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRUYWcoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlIDwgbWluTGFuZ3VhZ2UgfHwgdmFsdWUgPiBtYXhMYW5ndWFnZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsYW5ndWFnZXNbdmFsdWUgLSBtaW5MYW5ndWFnZV0udGFnKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGFnTGFiZWwoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlIDwgbWluTGFuZ3VhZ2UgfHwgdmFsdWUgPiBtYXhMYW5ndWFnZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsYW5ndWFnZXNbdmFsdWUgLSBtaW5MYW5ndWFnZV0ubGFiZWwoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBtYWtlVGFnKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA8IG1pbkxhbmd1YWdlIHx8IHZhbHVlID4gbWF4TGFuZ3VhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzW3ZhbHVlIC0gbWluTGFuZ3VhZ2VdLm1ha2VUYWcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKGludCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPCBtaW5MYW5ndWFnZSB8fCB2YWx1ZSA+IG1heExhbmd1YWdlKSB7CisgICAgICAgICAgICByZXR1cm4gIihVTktOT1dOKSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsYW5ndWFnZXNbdmFsdWUgLSBtaW5MYW5ndWFnZV0ubmFtZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVFbnRyeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZUVudHJ5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UwNmEzNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVFbnRyeS5qYXZhCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGNsYXNzIExpZ2F0dXJlRW50cnkKK3sKKyAgICBwcml2YXRlIGludFtdIGNvbXBvbmVudENoYXJzOworICAgIHByaXZhdGUgaW50IGxpZ2F0dXJlOworICAgIAorICAgIHB1YmxpYyBMaWdhdHVyZUVudHJ5KGludCBsaWdhdHVyZSwgaW50W10gY29tcG9uZW50Q2hhcnMsIGludCBjb21wb25lbnRDb3VudCkKKyAgICB7CisgICAgICAgIHRoaXMuY29tcG9uZW50Q2hhcnMgPSBuZXcgaW50W2NvbXBvbmVudENvdW50XTsKKyAgICAgICAgdGhpcy5saWdhdHVyZSA9IGxpZ2F0dXJlOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGNvbXBvbmVudENoYXJzLCAwLCB0aGlzLmNvbXBvbmVudENoYXJzLCAwLCBjb21wb25lbnRDb3VudCk7Cit9CisgICAgCisgICAgcHVibGljIGludCBnZXRDb21wb25lbnRDb3VudCgpCisgICAgeworICAgICAgICByZXR1cm4gY29tcG9uZW50Q2hhcnMubGVuZ3RoOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldENvbXBvbmVudENoYXIoaW50IGNvbXBvbmVudEluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbXBvbmVudENoYXJzW2NvbXBvbmVudEluZGV4XTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRMaWdhdHVyZSgpCisgICAgeworICAgICAgICByZXR1cm4gbGlnYXR1cmU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZU1vZHVsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZU1vZHVsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNTIwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlTW9kdWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK3B1YmxpYyBjbGFzcyBMaWdhdHVyZU1vZHVsZVdyaXRlciBleHRlbmRzIE1vZHVsZVdyaXRlcgoreworICAgIHB1YmxpYyBMaWdhdHVyZU1vZHVsZVdyaXRlcigpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFibGUoT3BlblR5cGVUYWJsZVdyaXRlciB0YWJsZVdyaXRlcikKKyAgICB7CisgICAgICAgIHRhYmxlV3JpdGVyLndyaXRlVGFibGUob3V0cHV0KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZVRyZWUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVUcmVlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZmMjYwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVUcmVlLmphdmEKQEAgLTAsMCArMSwyNDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uV3JpdGVyOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK3B1YmxpYyBjbGFzcyBMaWdhdHVyZVRyZWUKK3sKKyAgICBzdGF0aWMgY2xhc3MgTGlnbm9kZQorICAgIHsKKyAgICAgICAgaW50IHRhcmdldDsKKyAgICAgICAgaW50IGxpZ2F0dXJlID0gLTE7CisgICAgICAgIExpZ25vZGVbXSBzdWJub2RlcyA9IG51bGw7CisKKyAgICAgICAgTGlnbm9kZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCA9IC0xOworICAgICAgICB9CisKKyAgICAgICAgTGlnbm9kZShpbnQgdGFyZ2V0KQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNNYXRjaCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsaWdhdHVyZSAhPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBnZXRMaWdhdHVyZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsaWdhdHVyZTsKKyAgICAgICAgfQorCisgICAgICAgIExpZ25vZGUgc3Vibm9kZShpbnQgYykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN1Ym5vZGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGVuID0gc3Vibm9kZXMubGVuZ3RoOworCisgICAgICAgICAgICAgICAgaWYgKGMgPD0gc3Vibm9kZXNbbGVuIC0gMV0udGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHQgPSBzdWJub2Rlc1tpXS50YXJnZXQ7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ID4gYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodCA9PSBjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1Ym5vZGVzW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBsaWdhdHVyZVN0cmluZyhpbnRbXSBjaGFycykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBjaGFycy5sZW5ndGggLSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiArICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFV0aWxpdHkuaGV4KGNoYXJzW2ldLCA2KSk7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiID0+ICIgKyBVdGlsaXR5LmhleChjaGFyc1tsZW5dLCA2KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBpbnNlcnQoaW50W10gY2hhcnMsIGludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGMgPSBjaGFyc1tpbmRleF07CisgICAgICAgICAgICBpbnQgbGVuID0gY2hhcnMubGVuZ3RoOworCisgICAgICAgICAgICBpZiAobGVuID09IGluZGV4ICsgMSkgeworICAgICAgICAgICAgICAgIGlmIChsaWdhdHVyZSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImlnbm9yaW5nIGxpZ2F0dXJlICIgKyBsaWdhdHVyZVN0cmluZyhjaGFycykgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogYWxyZWFkeSBoYXZlICIgKyBVdGlsaXR5LmhleChsaWdhdHVyZSwgNikpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxpZ2F0dXJlID0gYzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdWJub2RlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3Vibm9kZXMgPSBuZXcgTGlnbm9kZVsxXTsKKyAgICAgICAgICAgICAgICBzdWJub2Rlc1swXSA9IG5ldyBMaWdub2RlKGMpOworICAgICAgICAgICAgICAgIHN1Ym5vZGVzWzBdLmluc2VydChjaGFycywgaW5kZXggKyAxKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Vibm9kZXMubGVuZ3RoOyBpICs9IDEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgdCA9IHN1Ym5vZGVzW2ldLnRhcmdldDsKKworICAgICAgICAgICAgICAgICAgICBpZiAodCA9PSBjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWJub2Rlc1tpXS5pbnNlcnQoY2hhcnMsIGluZGV4ICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodCA+IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgTGlnbm9kZVtdIG5ub2RlcyA9IG5ldyBMaWdub2RlW3N1Ym5vZGVzLmxlbmd0aCArIDFdOworCisgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3Vibm9kZXMsIDAsIG5ub2RlcywgMCwgaSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbm5vZGVzW2ldID0gbmV3IExpZ25vZGUoYyk7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA8IHN1Ym5vZGVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN1Ym5vZGVzLCBpLCBubm9kZXMsIGkgKyAxLCBzdWJub2Rlcy5sZW5ndGggLSBpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzdWJub2RlcyA9IG5ub2RlczsKKworICAgICAgICAgICAgICAgIHN1Ym5vZGVzW2ldLmluc2VydChjaGFycywgaW5kZXggKyAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgd2FsayhUcmVlV2Fsa2VyIHdhbGtlcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRhcmdldCAhPSAtMSkgeworICAgICAgICAgICAgICAgIHdhbGtlci5kb3duKHRhcmdldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzdWJub2RlcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdWJub2Rlcy5sZW5ndGg7IGkgKz0gMSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHN1Ym5vZGVzW2ldLndhbGsod2Fsa2VyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaWdhdHVyZSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHdhbGtlci5saWdhdHVyZShsaWdhdHVyZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB3YWxrZXIudXAoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgaW5kID0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsKKworICAgICAgICAvKgorICAgICAgICAgKiBXcml0ZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gdG8gdywgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGluZGVudGF0aW9uIGxldmVsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgZHVtcChXcml0ZXIgdywgaW50IGluZGVudCkKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHRhYiA9IGluZC5zdWJzdHJpbmcoMCwgTWF0aC5taW4oaW5kZW50LCBpbmQubGVuZ3RoKCkpKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3LndyaXRlKHRhYik7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKFV0aWxpdHkuaGV4KHRhcmdldCwgNikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobGlnYXR1cmUgIT0gLTEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCIgLS0+ICIpOworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKFV0aWxpdHkuaGV4KGxpZ2F0dXJlLCA2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHcud3JpdGUoIlxuIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHN1Ym5vZGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSh0YWIpOworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCJ7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50ICs9IDQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN1Ym5vZGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWJub2Rlc1tpXS5kdW1wKHcsIGluZGVudCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUodGFiKTsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgifVxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHJpdmF0ZSBMaWdub2RlIHJvb3QgPSBuZXcgTGlnbm9kZSgpOworICAgIAorICAgIHB1YmxpYyBMaWdhdHVyZVRyZWUoKQorICAgIHsKKyAgICAgICAgLy8gYW55dGhpbmc/CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnRbXSB0b0ludEFycmF5KFN0cmluZyBzKQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gVVRGMTYuY291bnRDb2RlUG9pbnQocyk7CisgICAgICAgIGludFtdIHJlc3VsdCA9IG5ldyBpbnRbY291bnRdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaW5zZXJ0KFN0cmluZyBzdHJpbmcpCisgICAgeworICAgICAgICByb290Lmluc2VydCh0b0ludEFycmF5KHN0cmluZyksIDApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoaW50W10gY2hhcnMpCisgICAgeworICAgICAgICByb290Lmluc2VydChjaGFycywgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdhbGsoVHJlZVdhbGtlciB3YWxrZXIpCisgICAgeworICAgICAgICByb290LndhbGsod2Fsa2VyKTsKKyAgICAgICAgd2Fsa2VyLmRvbmUoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZHVtcCgpCisgICAgeworICAgICAgICBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KTsKKyAgICAgICAgCisgICAgICAgIHJvb3QuZHVtcChwdywgMCk7CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZVRyZWVXYWxrZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVUcmVlV2Fsa2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY1ZTJkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVUcmVlV2Fsa2VyLmphdmEKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK3B1YmxpYyBjbGFzcyBMaWdhdHVyZVRyZWVXYWxrZXIgZXh0ZW5kcyBUcmVlV2Fsa2VyIGltcGxlbWVudHMgTG9va3VwU3VidGFibGUKK3sKKyAgICBwcm90ZWN0ZWQgaW50W10gY29tcG9uZW50Q2hhcnM7CisgICAgcHJvdGVjdGVkIGludCBjb21wb25lbnRDb3VudDsKKyAgICBwcm90ZWN0ZWQgaW50IGxhc3RGaXJzdENvbXBvbmVudDsKKworICAgIHByb3RlY3RlZCBWZWN0b3IgbGlnYXR1cmVTZXRzOworICAgIHByb3RlY3RlZCBWZWN0b3IgbGlnYXR1cmVTZXQ7CisgICAgCisgICAgcHVibGljIExpZ2F0dXJlVHJlZVdhbGtlcigpCisgICAgeworICAgICAgICBjb21wb25lbnRDaGFycyA9IG5ldyBpbnRbMzBdOworICAgICAgICBjb21wb25lbnRDb3VudCA9IDA7CisgICAgICAgIGxhc3RGaXJzdENvbXBvbmVudCA9IC0xOworICAgICAgICBsaWdhdHVyZVNldCA9IG51bGw7CisgICAgICAgIGxpZ2F0dXJlU2V0cyA9IG5ldyBWZWN0b3IoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkb3duKGludCBjaCkKKyAgICB7CisgICAgICAgIGNvbXBvbmVudENoYXJzW2NvbXBvbmVudENvdW50XSA9IGNoOworICAgICAgICBjb21wb25lbnRDb3VudCArPSAxOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHVwKCkKKyAgICB7CisgICAgICAgIGlmIChjb21wb25lbnRDb3VudCA+IDApIHsKKyAgICAgICAgICAgIGNvbXBvbmVudENvdW50IC09IDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBsaWdhdHVyZShpbnQgbGlnKQorICAgIHsKKyAgICAgICAgaW50IGZpcnN0Q29tcG9uZW50ID0gY29tcG9uZW50Q2hhcnNbMF07CisKKyAgICAgICAgaWYgKGxhc3RGaXJzdENvbXBvbmVudCAhPSBmaXJzdENvbXBvbmVudCkgeworICAgICAgICAgICAgaWYgKGxpZ2F0dXJlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsaWdhdHVyZVNldHMuYWRkRWxlbWVudChsaWdhdHVyZVNldCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpZ2F0dXJlU2V0ID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgbGFzdEZpcnN0Q29tcG9uZW50ID0gZmlyc3RDb21wb25lbnQ7CisgICAgICAgIH0KKworICAgICAgICBsaWdhdHVyZVNldC5hZGRFbGVtZW50KG5ldyBMaWdhdHVyZUVudHJ5KGxpZywgY29tcG9uZW50Q2hhcnMsIGNvbXBvbmVudENvdW50KSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZG9uZSgpCisgICAgeworICAgICAgICBpZiAobGlnYXR1cmVTZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgbGlnYXR1cmVTZXRzLmFkZEVsZW1lbnQobGlnYXR1cmVTZXQpOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCBpbnQgZmlyc3RDb21wb25lbnRDaGFyKGludCBsaWdhdHVyZVNldEluZGV4KQorICAgIHsKKyAgICAgICAgVmVjdG9yIGxpZ2F0dXJlU2V0ID0gKFZlY3RvcikgbGlnYXR1cmVTZXRzLmVsZW1lbnRBdChsaWdhdHVyZVNldEluZGV4KTsKKyAgICAgICAgTGlnYXR1cmVFbnRyeSBmaXJzdEVudHJ5ID0gKExpZ2F0dXJlRW50cnkpIGxpZ2F0dXJlU2V0LmVsZW1lbnRBdCgwKTsKKworICAgICAgICByZXR1cm4gZmlyc3RFbnRyeS5nZXRDb21wb25lbnRDaGFyKDApOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlQ292ZXJhZ2VUYWJsZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIGludCBsaWdhdHVyZVNldENvdW50ID0gbGlnYXR1cmVTZXRzLnNpemUoKTsKKworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDEpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxpZ2F0dXJlU2V0Q291bnQpOworCisgICAgICAgIGZvciAoaW50IHNldCA9IDA7IHNldCA8IGxpZ2F0dXJlU2V0Q291bnQ7IHNldCArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGZpcnN0Q29tcG9uZW50Q2hhcihzZXQpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUxvb2t1cFN1YnRhYmxlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgaW50IGNvdmVyYWdlT2Zmc2V0LCBsaWdhdHVyZVNldE9mZnNldCwgbGlnYXR1cmVUYWJsZU9mZnNldDsKKyAgICAgICAgaW50IGxpZ2F0dXJlU3Vic3RpdHV0aW9uQmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICBpbnQgbGlnYXR1cmVTZXRDb3VudCA9IGxpZ2F0dXJlU2V0cy5zaXplKCk7CisgICAgICAgIAorICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgdGFibGVOYW1lICsgIi4uLiIpOworCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMSk7ICAgLy8gc3Vic3RGb3JtYXQKKyAgICAgICAgCisgICAgICAgIGNvdmVyYWdlT2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7ICAgLy8gY292ZXJhZ2VUYWJsZU9mZnNldCAod2lsbCBmaXggbGF0ZXIpCisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxpZ2F0dXJlU2V0Q291bnQpOworCisgICAgICAgIGxpZ2F0dXJlU2V0T2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIGZvciAoaW50IHNldCA9IDA7IHNldCA8IGxpZ2F0dXJlU2V0Q291bnQ7IHNldCArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAgLy8gbGlnYXR1cmVTZXQgb2Zmc2V0IC0gd2lsbCBmaXggbGF0ZXIKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2V0ID0gMDsgc2V0IDwgbGlnYXR1cmVTZXRDb3VudDsgc2V0ICs9IDEpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoVXRpbGl0eS5oZXgoZmlyc3RDb21wb25lbnRDaGFyKHNldCksIDYpICsgIjogIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZlY3RvciBsaWdhdHVyZVNldCA9IChWZWN0b3IpIGxpZ2F0dXJlU2V0cy5lbGVtZW50QXQoc2V0KTsKKyAgICAgICAgICAgIGludCBsaWdhdHVyZUNvdW50ID0gbGlnYXR1cmVTZXQuc2l6ZSgpOworICAgICAgICAgICAgaW50IGxpZ2F0dXJlU2V0QWRkcmVzcyA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGlnYXR1cmVDb3VudCArICIgbGlnYXR1cmVzLiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGxpZ2F0dXJlU2V0T2Zmc2V0KyssIGxpZ2F0dXJlU3Vic3RpdHV0aW9uQmFzZSk7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxpZ2F0dXJlQ291bnQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsaWdhdHVyZVRhYmxlT2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgICAgICBmb3IgKGludCBsaWcgPSAwOyBsaWcgPCBsaWdhdHVyZUNvdW50OyBsaWcgKz0gMSkgeworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7ICAvLyBsaWdhdHVyZVRhYmxlT2Zmc2V0ICh3aWxsIGZpeCBsYXRlcikKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgbGlnID0gMDsgbGlnIDwgbGlnYXR1cmVDb3VudDsgbGlnICs9IDEpIHsKKyAgICAgICAgICAgICAgICBMaWdhdHVyZUVudHJ5IGVudHJ5ID0gKExpZ2F0dXJlRW50cnkpIGxpZ2F0dXJlU2V0LmVsZW1lbnRBdChsaWcpOworICAgICAgICAgICAgICAgIGludCBjb21wb25lbnRDb3VudCA9IGVudHJ5LmdldENvbXBvbmVudENvdW50KCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChsaWdhdHVyZVRhYmxlT2Zmc2V0KyssIGxpZ2F0dXJlU2V0QWRkcmVzcyk7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShlbnRyeS5nZXRMaWdhdHVyZSgpKTsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGNvbXBvbmVudENvdW50KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjb21wID0gMTsgY29tcCA8IGNvbXBvbmVudENvdW50OyBjb21wICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShlbnRyeS5nZXRDb21wb25lbnRDaGFyKGNvbXApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdyaXRlci5maXhPZmZzZXQoY292ZXJhZ2VPZmZzZXQsIGxpZ2F0dXJlU3Vic3RpdHV0aW9uQmFzZSk7IAorICAgICAgICB3cml0ZUNvdmVyYWdlVGFibGUod3JpdGVyKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmNhMzAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXAuamF2YQpAQCAtMCwwICsxLDg5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworcHVibGljIC8qYWJzdHJhY3QqLyBjbGFzcyBMb29rdXAKK3sKKyAgICBwcml2YXRlIGludCBsb29rdXBUeXBlOworICAgIHByaXZhdGUgaW50IGxvb2t1cEZsYWdzOworICAgIHByaXZhdGUgTG9va3VwU3VidGFibGVbXSBzdWJ0YWJsZXM7CisgICAgcHJpdmF0ZSBpbnQgc3VidGFibGVDb3VudDsKKyAgICAKKyAgICAvLyBMb29rdXAgZmxhZ3MKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMRl9SZXNlcnZlZEJpdCAgICAgICAgICA9IDB4MDAwMTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMRl9JZ25vcmVCYXNlR2x5cGhzICAgICA9IDB4MDAwMjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMRl9JZ25vcmVMaWdhdHVyZXMgICAgICA9IDB4MDAwNDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMRl9JZ25vcmVNYXJrcyAgICAgICAgICA9IDB4MDAwODsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMRl9SZXNlcnZlZE1hc2sgICAgICAgICA9IDB4MDBGMDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMRl9NYXJrQXR0YWNoVHlwZU1hc2sgICA9IDB4RkYwMDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMRl9NYXJrQXR0YWNoVHlwZVNoaWZ0ICA9IDg7CisgICAgCisgICAgLy8gR1NVQiBsb29rdXAgdHlwZXMKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHU1NUX1NpbmdsZSAgICAgICAgICA9IDE7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1NTVF9NdWx0aXBsZSAgICAgICAgPSAyOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdTU1RfQWx0ZXJuYXRlICAgICAgID0gMzsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHU1NUX0xpZ2F0dXJlICAgICAgICA9IDQ7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1NTVF9Db250ZXh0ICAgICAgICAgPSA1OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdTU1RfQ2hhaW5pbmdDb250ZXh0ID0gNjsKKworICAgIC8vIEdQT1MgbG9va3VwIHR5cGVzCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9TaW5nbGUgICAgICAgICAgPSAxOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfUGFpciAgICAgICAgICAgID0gMjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX0N1cnNpdmUgICAgICAgICA9IDM7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9NYXJrVG9CYXNlICAgICAgPSA0OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfTWFya1RvTGlnYXR1cmUgID0gNTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX01hcmtUb01hcmsgICAgICA9IDY7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9Db250ZXh0ICAgICAgICAgPSA3OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfQ2hhaW5pbmdDb250ZXh0ID0gODsKKyAgICAKKyAgICBwdWJsaWMgTG9va3VwKGludCB0aGVMb29rdXBUeXBlLCBpbnQgdGhlTG9va3VwRmxhZ3MpCisgICAgeworICAgICAgICBsb29rdXBUeXBlID0gdGhlTG9va3VwVHlwZTsKKyAgICAgICAgbG9va3VwRmxhZ3MgPSB0aGVMb29rdXBGbGFnczsKKyAgICAgICAgCisgICAgICAgIHN1YnRhYmxlcyA9IG5ldyBMb29rdXBTdWJ0YWJsZVsxMF07CisgICAgICAgIHN1YnRhYmxlQ291bnQgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRTdWJ0YWJsZShMb29rdXBTdWJ0YWJsZSBzdWJ0YWJsZSkKKyAgICB7CisgICAgICAgIGlmIChzdWJ0YWJsZUNvdW50ID49IHN1YnRhYmxlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIExvb2t1cFN1YnRhYmxlW10gbmV3U3VidGFibGVzID0gbmV3IExvb2t1cFN1YnRhYmxlW3N1YnRhYmxlcy5sZW5ndGggKyA1XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdWJ0YWJsZXMsIDAsIG5ld1N1YnRhYmxlcywgMCwgc3VidGFibGVzLmxlbmd0aCk7CisgICAgICAgICAgICBzdWJ0YWJsZXMgPSBuZXdTdWJ0YWJsZXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN1YnRhYmxlc1tzdWJ0YWJsZUNvdW50XSA9IHN1YnRhYmxlOworICAgICAgICBzdWJ0YWJsZUNvdW50ICs9IDE7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlTG9va3VwKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgaW50IGxvb2t1cEJhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEobG9va3VwVHlwZSk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEobG9va3VwRmxhZ3MpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKHN1YnRhYmxlQ291bnQpOworICAgICAgICAKKyAgICAgICAgaW50IHN1YnRhYmxlT2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN1YnRhYmxlQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdWJ0YWJsZUNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQoc3VidGFibGVPZmZzZXQrKywgbG9va3VwQmFzZSk7CisgICAgICAgICAgICBzdWJ0YWJsZXNbaV0ud3JpdGVMb29rdXBTdWJ0YWJsZSh3cml0ZXIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwTGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXBMaXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RlNTcxMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwTGlzdC5qYXZhCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGNsYXNzIExvb2t1cExpc3QKK3sKKyAgICBwcml2YXRlIExvb2t1cFtdIGxvb2t1cHM7CisgICAgcHJpdmF0ZSBpbnQgbG9va3VwQ291bnQ7CisgICAgCisgICAgcHVibGljIExvb2t1cExpc3QoKQorICAgIHsKKyAgICAgICAgbG9va3VwcyA9IG5ldyBMb29rdXBbMTBdOworICAgICAgICBsb29rdXBDb3VudCA9IDA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgYWRkTG9va3VwKExvb2t1cCBsb29rdXApCisgICAgeworICAgICAgICBpZiAobG9va3VwQ291bnQgPj0gbG9va3Vwcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIExvb2t1cFtdIG5ld0xvb2t1cHMgPSBuZXcgTG9va3VwW2xvb2t1cHMubGVuZ3RoICsgNV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobG9va3VwcywgMCwgbmV3TG9va3VwcywgMCwgbG9va3Vwcy5sZW5ndGgpOworICAgICAgICAgICAgbG9va3VwcyA9IG5ld0xvb2t1cHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvb2t1cHNbbG9va3VwQ291bnRdID0gbG9va3VwOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxvb2t1cENvdW50Kys7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlTG9va3VwTGlzdChPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigid3JpdGluZyBsb29rdXAgbGlzdC4uLiIpOworICAgICAgICAKKyAgICAgICAgaW50IGxvb2t1cExpc3RCYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxvb2t1cENvdW50KTsKKyAgICAgICAgCisgICAgICAgIGludCBsb29rdXBPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9va3VwQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgLy8gT2Zmc2V0IHRvIGxvb2t1cCAoZml4ZWQgbGF0ZXIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvb2t1cENvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQobG9va3VwT2Zmc2V0KyssIGxvb2t1cExpc3RCYXNlKTsKKyAgICAgICAgICAgIGxvb2t1cHNbaV0ud3JpdGVMb29rdXAod3JpdGVyKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cFN1YnRhYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cFN1YnRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFiMDE0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwU3VidGFibGUuamF2YQpAQCAtMCwwICsxLDE2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBpbnRlcmZhY2UgTG9va3VwU3VidGFibGUKK3sKKyAgICB2b2lkIHdyaXRlTG9va3VwU3VidGFibGUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTW9kdWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L01vZHVsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NGViMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L01vZHVsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CisKK3B1YmxpYyBjbGFzcyBNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgTW9kdWxlV3JpdGVyKCkKKyAgICB7CisgICAgICAgIHdyb3RlRGVmaW5lID0gZmFsc2U7CisgICAgICAgIG91dHB1dCA9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgb3BlbkZpbGUoU3RyaW5nIG91dHB1dEZpbGVOYW1lKSB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBvdXRwdXQgPSBuZXcgUHJpbnRTdHJlYW0oCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0RmlsZU5hbWUpKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI/IENvdWxkIG5vdCBvcGVuICIgKyBvdXRwdXRGaWxlTmFtZSArICIgZm9yIHdyaXRpbmcuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgd3JvdGVEZWZpbmUgPSBmYWxzZTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nIG1vZHVsZSAiICsgb3V0cHV0RmlsZU5hbWUgKyAiLi4uIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVIZWFkZXIoU3RyaW5nIGRlZmluZSwgU3RyaW5nW10gaW5jbHVkZUZpbGVzKQorICAgIHsKKyAgICAgICAgd3JpdGVIZWFkZXIoZGVmaW5lLCBpbmNsdWRlRmlsZXMsIG51bGwpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUhlYWRlcihTdHJpbmcgZGVmaW5lLCBTdHJpbmdbXSBpbmNsdWRlRmlsZXMsIFN0cmluZyBicmllZikKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0ID0gbmV3IE1lc3NhZ2VGb3JtYXQobW9kdWxlSGVhZGVyKTsKKyAgICAgICAgT2JqZWN0IGFyZ3NbXSA9IHtuZXcgRGF0ZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSl9OworCisgICAgICAgIG91dHB1dC5wcmludChmb3JtYXQuZm9ybWF0KGFyZ3MpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChkZWZpbmUgIT0gbnVsbCkgeworICAgICAgICAgICAgd3JvdGVEZWZpbmUgPSB0cnVlOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIjaWZuZGVmICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oZGVmaW5lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIjZGVmaW5lICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oZGVmaW5lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGluY2x1ZGVGaWxlcyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluY2x1ZGVGaWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiI2luY2x1ZGUgXCIiKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoaW5jbHVkZUZpbGVzW2ldKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGJyaWVmICE9IG51bGwpIHsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChicmllZik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKG1vZHVsZUJlZ2luKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRyYWlsZXIoKSB7CisgICAgICAgIG91dHB1dC5wcmludChtb2R1bGVUcmFpbGVyKTsKKyAgICAgICAgCisgICAgICAgIGlmICh3cm90ZURlZmluZSkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIiNlbmRpZiIpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbG9zZUZpbGUoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZS4iKTsKKyAgICAgICAgb3V0cHV0LmNsb3NlKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gd3JvdGVEZWZpbmU7CisgICAgCisgICAgcHJvdGVjdGVkIFByaW50U3RyZWFtIG91dHB1dDsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIG1vZHVsZUhlYWRlciA9CisgICAgICAgICIvKlxuIiArCisgICAgICAgICIgKlxuIiArCisgICAgICAgICIgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LXswLGRhdGUseXl5eX0uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4iICsKKyAgICAgICAgIiAqXG4iICsKKyAgICAgICAgIiAqIFdBUk5JTkc6IFRISVMgRklMRSBJUyBNQUNISU5FIEdFTkVSQVRFRC4gRE8gTk9UIEhBTkQgRURJVCBJVCBVTkxFU1NcbiIgKworICAgICAgICAiICogWU9VIFJFQUxMWSBLTk9XIFdIQVQgWU9VJydSRSBET0lORy5cbiIgKworICAgICAgICAiICpcbiIgKworICAgICAgICAiICogR2VuZXJhdGVkIG9uOiB7MCxkYXRlLE1NL2RkL3l5eXkgaGg6bW06c3MgYSB6fVxuIiArCisgICAgICAgICIgKi9cbiIgKworICAgICAgICAiXG4iOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgbW9kdWxlQmVnaW4gPSAiVV9OQU1FU1BBQ0VfQkVHSU5cbiI7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBtb2R1bGVUcmFpbGVyID0gIlVfTkFNRVNQQUNFX0VORFxuIjsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9PcGVuVHlwZVRhYmxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L09wZW5UeXBlVGFibGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTZkODMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9PcGVuVHlwZVRhYmxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworYWJzdHJhY3QgY2xhc3MgT3BlblR5cGVUYWJsZVdyaXRlcgoreworICAgIHN0YXRpYyBjbGFzcyBPcGVuVHlwZVRhYmxlRHVtcGVyCisgICAgeworICAgICAgICBwcml2YXRlIHNob3J0W10gdGFibGU7CisgICAgICAgIHByaXZhdGUgaW50IHRhYmxlTGVuZ3RoOworICAgICAgICAKKyAgICAgICAgT3BlblR5cGVUYWJsZUR1bXBlcihzaG9ydFtdIGRhdGEsIGludCBvdXRwdXRJbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgdGFibGUgPSBkYXRhOworICAgICAgICAgICAgdGFibGVMZW5ndGggPSBvdXRwdXRJbmRleDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGxlbmd0aCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZUxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhcHBlbmRWYWx1ZShTdHJpbmdCdWZmZXIgbGluZSwgaW50IGluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBzaG9ydCB2YWx1ZSA9IHRhYmxlW2luZGV4XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGluZS5hcHBlbmQoIjB4Iik7CisgICAgICAgICAgICBsaW5lLmFwcGVuZChVdGlsaXR5LmhleCgodmFsdWUgPj4gOCkgJiAweEZGLCAyKSk7CisgICAgICAgICAgICBsaW5lLmFwcGVuZCgiLCAiKTsKKworICAgICAgICAgICAgbGluZS5hcHBlbmQoIjB4Iik7CisgICAgICAgICAgICBsaW5lLmFwcGVuZChVdGlsaXR5LmhleCh2YWx1ZSAmIDB4RkYsIDIpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZHVtcFRhYmxlKFByaW50U3RyZWFtIG91dHB1dCwgaW50IHZhbHVlc1BlckxpbmUpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBsaW5lID0gbmV3IFN0cmluZ0J1ZmZlcigiICAgICIpOyAvLyBmb3VyIHNwYWNlcworICAgICAgICAgICAgaW50IG1heEluZGV4ID0gbGVuZ3RoKCk7CisgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhJbmRleDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIGkgJSB2YWx1ZXNQZXJMaW5lID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50bG4obGluZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZS5zZXRMZW5ndGgoNCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBhcHBlbmRWYWx1ZShsaW5lLCBpKTsKKyAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBsaW5lLnNldExlbmd0aChsaW5lLmxlbmd0aCgpIC0gMik7CisgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50bG4obGluZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgICAgIAorICAgIHByb3RlY3RlZCBzaG9ydFtdIGRhdGE7CisgICAgcHJvdGVjdGVkIGludCBvdXRwdXRJbmRleDsKKworICAgIHB1YmxpYyBPcGVuVHlwZVRhYmxlV3JpdGVyKGludCBpbml0aWFsQnVmZmVyU2l6ZSkKKyAgICB7CisgICAgICAgIGRhdGEgPSBuZXcgc2hvcnRbaW5pdGlhbEJ1ZmZlclNpemVdOworICAgICAgICBvdXRwdXRJbmRleCA9IDA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBPcGVuVHlwZVRhYmxlV3JpdGVyKCkKKyAgICB7CisgICAgICAgIHRoaXMoMTAyNCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0T3V0cHV0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG91dHB1dEluZGV4OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZURhdGEoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKG91dHB1dEluZGV4ID49IGRhdGEubGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBzaG9ydFtdIG5ld0RhdGEgPSBuZXcgc2hvcnRbZGF0YS5sZW5ndGggKyA1MTJdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGEsIDAsIG5ld0RhdGEsIDAsIGRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGF0YSA9IG5ld0RhdGE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRhdGFbb3V0cHV0SW5kZXhdID0gKHNob3J0KSB2YWx1ZTsKKyAgICAgICAgb3V0cHV0SW5kZXggKz0gMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVUYWcoU3RyaW5nIHRhZykKKyAgICB7CisgICAgICAgIGNoYXJbXSBjaGFyQXJyYXkgPSB7J1wwJywgJ1wwJywgJ1wwJywgJ1wwJ307CisgICAgICAgIGludCBtYXggPSBNYXRoLm1pbih0YWcubGVuZ3RoKCksIDQpOworICAgICAgICAKKyAgICAgICAgdGFnLmdldENoYXJzKDAsIG1heCwgY2hhckFycmF5LCAwKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlRGF0YSgoKGNoYXJBcnJheVswXSAmIDB4RkYpIDw8IDgpICsgKGNoYXJBcnJheVsxXSAmIDB4RkYpKTsKKyAgICAgICAgd3JpdGVEYXRhKCgoY2hhckFycmF5WzJdICYgMHhGRikgPDwgOCkgKyAoY2hhckFycmF5WzNdICYgMHhGRikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBmaXhPZmZzZXQoaW50IG9mZnNldCwgaW50IGJhc2UpCisgICAgeworICAgICAgICAvLyAqIDIgdG8gY29udmVydCBmcm9tIHNob3J0IHRvIGJ5dGUgaW5kZXgKKyAgICAgICAgZGF0YVtvZmZzZXRdID0gKHNob3J0KSAoKG91dHB1dEluZGV4IC0gYmFzZSkgKiAyKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZHVtcFRhYmxlKFByaW50U3RyZWFtIG91dHB1dCwgaW50IHZhbHVlc1BlckxpbmUpCisgICAgeworICAgICAgICBPcGVuVHlwZVRhYmxlRHVtcGVyIGR1bXBlciA9IG5ldyBPcGVuVHlwZVRhYmxlRHVtcGVyKGRhdGEsIG91dHB1dEluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGR1bXBlci5kdW1wVGFibGUob3V0cHV0LCB2YWx1ZXNQZXJMaW5lKTsKKyAgICB9CisgICAgCisgICAgYWJzdHJhY3QgcHVibGljIHZvaWQgd3JpdGVUYWJsZShQcmludFN0cmVhbSBvdXRwdXQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9PcGVuVHlwZVRhZ0J1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvT3BlblR5cGVUYWdCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNlMTExYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvT3BlblR5cGVUYWdCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwyMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqLworcHVibGljIGNsYXNzIE9wZW5UeXBlVGFnQnVpbGRlcgoreworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIHRhYmxlVGFncyA9IHsKKyAgICAgICAgImFjbnQiLAorICAgICAgICAiYXZhciIsCisgICAgICAgICJCQVNFIiwKKyAgICAgICAgImJkYXQiLAorICAgICAgICAiYmhlZCIsCisgICAgICAgICJibG9jIiwKKyAgICAgICAgImJzbG4iLAorICAgICAgICAiQ0ZGICIsCisgICAgICAgICJjbWFwIiwKKyAgICAgICAgImN2YXIiLAorICAgICAgICAiY3Z0ICIsCisgICAgICAgICJEU0lHIiwKKyAgICAgICAgIkVCRFQiLAorICAgICAgICAiRUJMQyIsCisgICAgICAgICJFQlNDIiwKKyAgICAgICAgImZkc2MiLAorICAgICAgICAiZmVhdCIsCisgICAgICAgICJmbXR4IiwKKyAgICAgICAgImZwZ20iLAorICAgICAgICAiZnZhciIsCisgICAgICAgICJnYXNwIiwKKyAgICAgICAgIkdERUYiLAorICAgICAgICAiZ2x5ZiIsCisgICAgICAgICJHUE9TIiwKKyAgICAgICAgIkdTVUIiLAorICAgICAgICAiZ3ZhciIsCisgICAgICAgICJoZG14IiwKKyAgICAgICAgImhlYWQiLAorICAgICAgICAiaGhlYSIsCisgICAgICAgICJobXR4IiwKKyAgICAgICAgImhzdHkiLAorICAgICAgICAianVzdCIsCisgICAgICAgICJKU1RGIiwKKyAgICAgICAgImtlcm4iLAorICAgICAgICAibGNhciIsCisgICAgICAgICJsb2NhIiwKKyAgICAgICAgIkxUU0giLAorICAgICAgICAibWF4cCIsCisgICAgICAgICJtb3J0IiwKKyAgICAgICAgIm1vcngiLAorICAgICAgICAibmFtZSIsCisgICAgICAgICJvcGJkIiwKKyAgICAgICAgIk9TLzIiLAorICAgICAgICAiUENMVCIsCisgICAgICAgICJwb3N0IiwKKyAgICAgICAgInByZXAiLAorICAgICAgICAicHJvcCIsCisgICAgICAgICJ0cmFrIiwKKyAgICAgICAgIlZETVgiLAorICAgICAgICAidmhlYSIsCisgICAgICAgICJ2bXR4IiwKKyAgICAgICAgIlZPUkciLAorICAgICAgICAiWmFwZiIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gZmVhdHVyZVRhZ3MgPSB7CisgICAgICAgICJhYWx0IiwKKyAgICAgICAgImFidmYiLAorICAgICAgICAiYWJ2bSIsCisgICAgICAgICJhYnZzIiwKKyAgICAgICAgImFmcmMiLAorICAgICAgICAiYWtobiIsCisgICAgICAgICJibHdmIiwKKyAgICAgICAgImJsd20iLAorICAgICAgICAiYmx3cyIsCisgICAgICAgICJjYWx0IiwKKyAgICAgICAgImNhc2UiLAorICAgICAgICAiY2NtcCIsCisgICAgICAgICJjbGlnIiwKKyAgICAgICAgImNwc3AiLAorICAgICAgICAiY3N3aCIsCisgICAgICAgICJjdXJzIiwKKyAgICAgICAgImMyc2MiLAorICAgICAgICAiYzJwYyIsCisgICAgICAgICJkaXN0IiwKKyAgICAgICAgImRsaWciLAorICAgICAgICAiZG5vbSIsCisgICAgICAgICJleHB0IiwKKyAgICAgICAgImZhbHQiLAorICAgICAgICAiZmluMiIsCisgICAgICAgICJmaW4zIiwKKyAgICAgICAgImZpbmEiLAorICAgICAgICAiZnJhYyIsCisgICAgICAgICJmd2lkIiwKKyAgICAgICAgImhhbGYiLAorICAgICAgICAiaGFsbiIsCisgICAgICAgICJoYWx0IiwKKyAgICAgICAgImhpc3QiLAorICAgICAgICAiaGtuYSIsCisgICAgICAgICJobGlnIiwKKyAgICAgICAgImhuZ2wiLAorICAgICAgICAiaHdpZCIsCisgICAgICAgICJpbml0IiwKKyAgICAgICAgImlzb2wiLAorICAgICAgICAiaXRhbCIsCisgICAgICAgICJqYWx0IiwKKyAgICAgICAgImpwNzgiLAorICAgICAgICAianA4MyIsCisgICAgICAgICJqcDkwIiwKKyAgICAgICAgImtlcm4iLAorICAgICAgICAibGZiZCIsCisgICAgICAgICJsaWdhIiwKKyAgICAgICAgImxqbW8iLAorICAgICAgICAibG51bSIsCisgICAgICAgICJsb2NsIiwKKyAgICAgICAgIm1hcmsiLAorICAgICAgICAibWVkMiIsCisgICAgICAgICJtZWRpIiwKKyAgICAgICAgIm1ncmsiLAorICAgICAgICAibWttayIsCisgICAgICAgICJtc2V0IiwKKyAgICAgICAgIm5hbHQiLAorICAgICAgICAibmxjayIsCisgICAgICAgICJudWt0IiwKKyAgICAgICAgIm51bXIiLAorICAgICAgICAib251bSIsCisgICAgICAgICJvcGJkIiwKKyAgICAgICAgIm9yZG4iLAorICAgICAgICAib3JubSIsCisgICAgICAgICJwYWx0IiwKKyAgICAgICAgInBjYXAiLAorICAgICAgICAicG51bSIsCisgICAgICAgICJwcmVmIiwKKyAgICAgICAgInByZXMiLAorICAgICAgICAicHN0ZiIsCisgICAgICAgICJwc3RzIiwKKyAgICAgICAgInB3aWQiLAorICAgICAgICAicXdpZCIsCisgICAgICAgICJyYW5kIiwKKyAgICAgICAgInJsaWciLAorICAgICAgICAicnBoZiIsCisgICAgICAgICJydGJkIiwKKyAgICAgICAgInJ0bGEiLAorICAgICAgICAicnVieSIsCisgICAgICAgICJzYWx0IiwKKyAgICAgICAgInNpbmYiLAorICAgICAgICAic2l6ZSIsCisgICAgICAgICJzbWNwIiwKKyAgICAgICAgInNtcGwiLAorICAgICAgICAic3MwMSIsCisgICAgICAgICJzczAyIiwKKyAgICAgICAgInNzMDMiLAorICAgICAgICAic3MwNCIsCisgICAgICAgICJzczA1IiwKKyAgICAgICAgInNzMDYiLAorICAgICAgICAic3MwNyIsCisgICAgICAgICJzczA4IiwKKyAgICAgICAgInNzMDkiLAorICAgICAgICAic3MxMCIsCisgICAgICAgICJzczExIiwKKyAgICAgICAgInNzMTIiLAorICAgICAgICAic3MxMyIsCisgICAgICAgICJzczE0IiwKKyAgICAgICAgInNzMTUiLAorICAgICAgICAic3MxNiIsCisgICAgICAgICJzczE3IiwKKyAgICAgICAgInNzMTgiLAorICAgICAgICAic3MxOSIsCisgICAgICAgICJzczIwIiwKKyAgICAgICAgInN1YnMiLAorICAgICAgICAic3VwcyIsCisgICAgICAgICJzd3NoIiwKKyAgICAgICAgInRpdGwiLAorICAgICAgICAidGptbyIsCisgICAgICAgICJ0bmFtIiwKKyAgICAgICAgInRudW0iLAorICAgICAgICAidHJhZCIsCisgICAgICAgICJ0d2lkIiwKKyAgICAgICAgInVuaWMiLAorICAgICAgICAidmFsdCIsCisgICAgICAgICJ2YXR1IiwKKyAgICAgICAgInZlcnQiLAorICAgICAgICAidmhhbCIsCisgICAgICAgICJ2am1vIiwKKyAgICAgICAgInZrbmEiLAorICAgICAgICAidmtybiIsCisgICAgICAgICJ2cGFsIiwKKyAgICAgICAgInZydDIiLAorICAgICAgICAiemVybyIKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyB0YWdMYWJlbChTdHJpbmcgdGFnKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIHVwcGVyVGFnID0gdGFnLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHVwcGVyVGFnLmxlbmd0aCgpOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSB1cHBlclRhZy5jaGFyQXQoaSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICgoY2ggPCAnQScgfHwgY2ggPiAnWicpICYmIChjaCA8ICcwJyB8fCBjaCA+ICc5JykpIHsKKyAgICAgICAgICAgICAgICBjaCA9ICdfJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBkdW1wVGFncyhTdHJpbmcgZW51bU5hbWUsIFN0cmluZ1tdIHRhZ3MpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVudW0gTEUiICsgZW51bU5hbWUgKyAiVGFncyB7Iik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIFN0cmluZyB0YWcgPSB0YWdzW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICBMRV8iICsgdGFnTGFiZWwodGFnKSArICJfIiArIGVudW1OYW1lLnRvVXBwZXJDYXNlKCkgKworICAgICAgICAgICAgICAgICJfVEFHID0gIiArIFRhZ1V0aWxpdGllcy5tYWtlVGFnKHRhZykgKyAiVUwiICsKKyAgICAgICAgICAgICAgICAoaSA9PSB0YWdzLmxlbmd0aCAtIDE/ICIgIiA6ICIsIikgKyAiIC8qICciICsgdGFnICsgIicgKi8iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ9OyIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgZHVtcFRhZ3MoIlRhYmxlIiwgdGFibGVUYWdzKTsKKyAgICAgICAgZHVtcFRhZ3MoIkZlYXR1cmUiLCBmZWF0dXJlVGFncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHREYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdERhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODZhYWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHREYXRhLmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEudXRpbC4qOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitwdWJsaWMgY2xhc3MgU2NyaXB0RGF0YSBleHRlbmRzIFRhZ1ZhbHVlRGF0YQoreworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUmVjb3JkCisgICAgeworICAgICAgICBwcml2YXRlIGludCBzdGFydENoYXI7CisgICAgICAgIHByaXZhdGUgaW50IGVuZENoYXI7CisgICAgICAgIHByaXZhdGUgaW50IHNjcmlwdENvZGU7CisgICAgICAgIAorICAgICAgICBSZWNvcmQoKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBub3RoaW5nPworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBSZWNvcmQoaW50IHRoZUNoYXIsIGludCB0aGVTY3JpcHRDb2RlKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzKHRoZUNoYXIsIHRoZUNoYXIsIHRoZVNjcmlwdENvZGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBSZWNvcmQoaW50IHRoZVN0YXJ0Q2hhciwgaW50IHRoZUVuZENoYXIsIGludCB0aGVTY3JpcHRDb2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdGFydENoYXIgPSB0aGVTdGFydENoYXI7CisgICAgICAgICAgICBlbmRDaGFyID0gdGhlRW5kQ2hhcjsKKyAgICAgICAgICAgIHNjcmlwdENvZGUgPSB0aGVTY3JpcHRDb2RlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IHN0YXJ0Q2hhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdGFydENoYXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZW5kQ2hhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBlbmRDaGFyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IHNjcmlwdENvZGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc2NyaXB0Q29kZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oUmVjb3JkIHRoYXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0Q2hhciAtIHRoYXQuc3RhcnRDaGFyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJbIiArICBVdGlsaXR5LmhleChzdGFydENoYXIsIDYpICsgIi4uIiArCisgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgoZW5kQ2hhciwgNikgKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICBVU2NyaXB0LmdldFNob3J0TmFtZShzY3JpcHRDb2RlKS50b0xvd2VyQ2FzZSgpICsgIlNjcmlwdENvZGVdIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBUT0RPOiBFeGNlcHRpb25zIGNvdWxkIGJlIGdlbmVyYXRlZCBhbGdvcml0aG1pY2FsbHkKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUYWdFeGNlcHRpb24KKyAgICB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGljdVRhZzsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgb3RUYWc7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgVGFnRXhjZXB0aW9uKFN0cmluZyBpY3UsIFN0cmluZyBvdCkKKyAgICAgICAgeworICAgICAgICAgICAgaWN1VGFnID0gaWN1OworICAgICAgICAgICAgb3RUYWcgID0gb3Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SUNVVGFnKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGljdVRhZzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRPVFRhZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBvdFRhZzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBUT0RPOiBzaG9ydCBuYW1lIGxvbmdlciB0aGFuIGxvbmcgbmFtZSwgcmVwbGFjZSByZXBlYXRlZCBjaGFycyB3LyBzcGFjZS4uLgorICAgIHByaXZhdGUgU2NyaXB0RGF0YS5UYWdFeGNlcHRpb24gZXhjZXB0aW9uc1tdID0geworICAgICAgICAgICAgbmV3IFNjcmlwdERhdGEuVGFnRXhjZXB0aW9uKCJsYW9vIiwgImxhbyAiKSwKKyAgICAgICAgICAgIG5ldyBTY3JpcHREYXRhLlRhZ0V4Y2VwdGlvbigibmtvbyIsICJua28gIiksIC8vIE5ldyBjb2RlIGZyb20gSVNPIDE1OTI0LCBub3Qgc3VyZSB0aGlzIHdpbGwgYmUgT1QgdGFnCisgICAgICAgICAgICBuZXcgU2NyaXB0RGF0YS5UYWdFeGNlcHRpb24oInZhaWkiLCAidmFpICIpLCAvLyBOZXcgY29kZSBmcm9tIElTTyAxNTkyNCwgbm90IHN1cmUgdGhpcyB3aWxsIGJlIE9UIHRhZworICAgICAgICAgICAgbmV3IFNjcmlwdERhdGEuVGFnRXhjZXB0aW9uKCJ5aWlpIiwgInlpICAiKQorICAgICAgICB9OworICAgICAgICAKKyAgICAKKyAgICAvLyBUT0RPOiBiaW5hcnkgc2VhcmNoIHRoZSBleGNlcHRpb25zIGxpc3Q/CisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0RXhjZXB0aW9uKFN0cmluZyBpY3UpCisgICAgeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZXhjZXB0aW9ucy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbnNbaV0uZ2V0SUNVVGFnKCkuZXF1YWxzKGljdSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uc1tpXS5nZXRPVFRhZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gaWN1OworICAgIH0KKyAgICAgICAgCisgICAgLy8KKyAgICAvLyBTdHJhaWdodCBpbnNlcnRpb24gc29ydCBmcm9tIEtudXRoIHZvbC4gSUlJLCBwZy4gODEKKyAgICAvLworICAgIHByaXZhdGUgdm9pZCBzb3J0KCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgZlJlY29yZHMubGVuZ3RoOyBqICs9IDEpIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgUmVjb3JkIHYgPSBmUmVjb3Jkc1tqXTsKKworICAgICAgICAgICAgZm9yIChpID0gaiAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKHYuY29tcGFyZVRvKGZSZWNvcmRzW2ldKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZSZWNvcmRzW2kgKyAxXSA9IGZSZWNvcmRzW2ldOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmUmVjb3Jkc1tpICsgMV0gPSB2OworICAgICAgICB9CisgICAgfQorCisgICAgU2NyaXB0RGF0YSgpCisgICAgeworICAgICAgICBpbnQgY29tbW9uU2NyaXB0ID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlRW51bShVUHJvcGVydHkuU0NSSVBULCAiQ09NTU9OIik7CisgICAgICAgIGludCBzY3JpcHRDb3VudDsKKyAgICAgICAgVmVjdG9yIHJ2ID0gbmV3IFZlY3RvcigpOworICAgICAgICAKKyAgICAgICAgZk1pblNjcmlwdCAgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LlNDUklQVCk7CisgICAgICAgIGZNYXhTY3JpcHQgID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5TQ1JJUFQpOworICAgICAgICBzY3JpcHRDb3VudCA9IGZNYXhTY3JpcHQgLSBmTWluU2NyaXB0ICsgMTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29sbGVjdGluZyBzY3JpcHQgZGF0YSBmb3IgIiArIHNjcmlwdENvdW50ICsgIiBzY3JpcHRzLi4uIik7CisgICAgICAgIAorICAgICAgICBmU2NyaXB0TmFtZXMgPSBuZXcgU3RyaW5nW3NjcmlwdENvdW50XTsKKyAgICAgICAgZlNjcmlwdFRhZ3MgID0gbmV3IFN0cmluZ1tzY3JpcHRDb3VudF07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY3JpcHQgPSBmTWluU2NyaXB0OyBzY3JpcHQgPD0gZk1heFNjcmlwdDsgc2NyaXB0ICs9IDEpIHsKKyAgICAgICAgICAgIGZTY3JpcHROYW1lc1tzY3JpcHQgLSBmTWluU2NyaXB0XSA9IFVTY3JpcHQuZ2V0TmFtZShzY3JpcHQpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgICAgICBmU2NyaXB0VGFnc1tzY3JpcHQgLSBmTWluU2NyaXB0XSAgPSBVU2NyaXB0LmdldFNob3J0TmFtZShzY3JpcHQpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzY3JpcHQgIT0gY29tbW9uU2NyaXB0KSB7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBzY3JpcHRTZXQgID0gbmV3IFVuaWNvZGVTZXQoIlxccHsiICsgZlNjcmlwdFRhZ3Nbc2NyaXB0IC0gZk1pblNjcmlwdF0gKyAifSIpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2NyaXB0U2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgICAgICAgICBSZWNvcmQgcmVjb3JkID0gbmV3IFJlY29yZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCwgc2NyaXB0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHJ2LmFkZEVsZW1lbnQocmVjb3JkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZSZWNvcmRzID0gbmV3IFJlY29yZFtydi5zaXplKCldOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydi5zaXplKCk7IGkgKz0gMSkgeworICAgICAgICAgICAgZlJlY29yZHNbaV0gPSAoUmVjb3JkKSBydi5lbGVtZW50QXQoaSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29sbGVjdGVkICIgKyBydi5zaXplKCkgKyAiIHJlY29yZHMuIFNvcnRpbmcuLi4iKTsKKyAgICAgICAgc29ydCgpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lLiIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE1pblZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTWluU2NyaXB0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE1heFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTWF4U2NyaXB0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldFJlY29yZENvdW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUmVjb3Jkcy5sZW5ndGg7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGFnKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA+PSBmTWluU2NyaXB0ICYmIHZhbHVlIDw9IGZNYXhTY3JpcHQpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRFeGNlcHRpb24oZlNjcmlwdFRhZ3NbdmFsdWUgLSBmTWluU2NyaXB0XSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAienl5eCI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGFnTGFiZWwoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID49IGZNaW5TY3JpcHQgJiYgdmFsdWUgPD0gZk1heFNjcmlwdCkgeworICAgICAgICAgICAgcmV0dXJuIGZTY3JpcHRUYWdzW3ZhbHVlIC0gZk1pblNjcmlwdF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAienl5eCI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgbWFrZVRhZyhpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPj0gZk1pblNjcmlwdCAmJiB2YWx1ZSA8PSBmTWF4U2NyaXB0KSB7CisgICAgICAgICAgICBTdHJpbmcgdGFnID0gZ2V0RXhjZXB0aW9uKGZTY3JpcHRUYWdzW3ZhbHVlIC0gZk1pblNjcmlwdF0pOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gVGFnVXRpbGl0aWVzLm1ha2VUYWcodGFnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAiMHgwMDAwMDAwMCI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA+PSBmTWluU2NyaXB0ICYmIHZhbHVlIDw9IGZNYXhTY3JpcHQpIHsKKyAgICAgICAgICAgIHJldHVybiBmU2NyaXB0TmFtZXNbdmFsdWUgLSBmTWluU2NyaXB0XTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuICJDT01NT04iOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUmVjb3JkIGdldFJlY29yZChpbnQgaW5kZXgpCisgICAgeworICAgICAgICBpZiAoZlJlY29yZHMgIT0gbnVsbCAmJiBpbmRleCA8IGZSZWNvcmRzLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGZSZWNvcmRzW2luZGV4XTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IGZNaW5TY3JpcHQ7CisgICAgcHJpdmF0ZSBpbnQgZk1heFNjcmlwdDsKKyAgICBwcml2YXRlIFN0cmluZyBmU2NyaXB0TmFtZXNbXTsKKyAgICBwcml2YXRlIFN0cmluZyBmU2NyaXB0VGFnc1tdOworICAgIHByaXZhdGUgUmVjb3JkIGZSZWNvcmRzW107Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdElETW9kdWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdElETW9kdWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmYxYzA2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0SURNb2R1bGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBjbGFzcyBTY3JpcHRJRE1vZHVsZVdyaXRlciBleHRlbmRzIFNjcmlwdE1vZHVsZVdyaXRlcgoreworICAgIHB1YmxpYyBTY3JpcHRJRE1vZHVsZVdyaXRlcihTY3JpcHREYXRhIHNjcmlwdERhdGEsIExhbmd1YWdlRGF0YSBsYW5ndWFnZURhdGEpCisgICAgeworICAgICAgICBzdXBlcihzY3JpcHREYXRhLCBsYW5ndWFnZURhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlU2NyaXB0SGVhZGVyKFN0cmluZyBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIGludCBtaW5TY3JpcHQgPSBzY3JpcHREYXRhLmdldE1pblZhbHVlKCk7CisgICAgICAgIGludCBtYXhTY3JpcHQgPSBzY3JpcHREYXRhLmdldE1heFZhbHVlKCk7CisgICAgICAgIGludCB2ZXJNYWpvciAgPSBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi5nZXRNYWpvcigpOworICAgICAgICBpbnQgdmVyTWlub3IgID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWlub3IoKTsKKyAgICAgICAgCisgICAgICAgIG9wZW5GaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgd3JpdGVIZWFkZXIoIl9fTEVTQ1JJUFRTX0giLCBpbmNsdWRlRmlsZXMsIHNjcmlwdEJyaWVmKTsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KHNjcmlwdFByZWFtYmxlKTsKKyAgICAgICAgT2JqZWN0IGFyZ3NbXSA9IHtuZXcgSW50ZWdlcih2ZXJNYWpvciksIG5ldyBJbnRlZ2VyKHZlck1pbm9yKX07CisKKyAgICAgICAgb3V0cHV0LnByaW50bG4oZm9ybWF0LmZvcm1hdChhcmdzKSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY3JpcHQgPSBtaW5TY3JpcHQ7IHNjcmlwdCA8PSBtYXhTY3JpcHQ7IHNjcmlwdCArPSAxKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChzY3JpcHREYXRhLmdldFRhZ0xhYmVsKHNjcmlwdCkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCJTY3JpcHRDb2RlID0gIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzY3JpcHQgPCAxMCkgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0KTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCIsIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCk7CisgICAgICAgIG91dHB1dC5wcmludCgiICAgIHNjcmlwdENvZGVDb3VudCA9ICIpOworICAgICAgICBvdXRwdXQucHJpbnRsbihtYXhTY3JpcHQgLSBtaW5TY3JpcHQgKyAxKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKHBvc3RhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRyYWlsZXIoKTsKKyAgICAgICAgY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlTGFuZ3VhZ2VIZWFkZXIoU3RyaW5nIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgaW50IG1pbkxhbmd1YWdlID0gbGFuZ3VhZ2VEYXRhLmdldE1pblZhbHVlKCk7CisgICAgICAgIGludCBtYXhMYW5ndWFnZSA9IGxhbmd1YWdlRGF0YS5nZXRNYXhWYWx1ZSgpOworICAgICAgICBpbnQgdmVyTWFqb3IgICAgPSBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi5nZXRNYWpvcigpOworICAgICAgICBpbnQgdmVyTWlub3IgICAgPSBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi5nZXRNaW5vcigpOworICAgICAgICAKKyAgICAgICAgb3BlbkZpbGUoZmlsZU5hbWUpOworICAgICAgICB3cml0ZUhlYWRlcigiX19MRUxBTkdVQUdFU19IIiwgaW5jbHVkZUZpbGVzLCBsYW5ndWFnZUJyaWVmKTsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KGxhbmd1YWdlUHJlYW1ibGUpOworICAgICAgICBPYmplY3QgYXJnc1tdID0ge25ldyBJbnRlZ2VyKHZlck1ham9yKSwgbmV3IEludGVnZXIodmVyTWlub3IpfTsKKworICAgICAgICBvdXRwdXQucHJpbnRsbihmb3JtYXQuZm9ybWF0KGFyZ3MpKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGxhbmd1YWdlID0gbWluTGFuZ3VhZ2U7IGxhbmd1YWdlIDw9IG1heExhbmd1YWdlOyBsYW5ndWFnZSArPSAxKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChsYW5ndWFnZURhdGEuZ2V0VGFnTGFiZWwobGFuZ3VhZ2UpLnRvTG93ZXJDYXNlKCkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCJMYW5ndWFnZUNvZGUgPSAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxhbmd1YWdlIDwgMTApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KGxhbmd1YWdlKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCIsIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCk7CisgICAgICAgIG91dHB1dC5wcmludCgiICAgIGxhbmd1YWdlQ29kZUNvdW50ID0gIik7CisgICAgICAgIG91dHB1dC5wcmludGxuKG1heExhbmd1YWdlIC0gbWluTGFuZ3VhZ2UgKyAxKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKHBvc3RhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRyYWlsZXIoKTsKKyAgICAgICAgY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGluY2x1ZGVGaWxlcyA9IHsiTEVUeXBlcy5oIn07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHNjcmlwdFByZWFtYmxlID0gCisgICAgIi8qKlxuIiArCisgICAgIiAqIENvbnN0YW50cyBmb3IgVW5pY29kZSBzY3JpcHQgdmFsdWVzLCBnZW5lcmF0ZWQgdXNpbmdcbiIgKworICAgICIgKiBJQ1U0SicncyA8Y29kZT5VU2NyaXB0PC9jb2RlPiBjbGFzcy5cbiIgKworICAgICIgKlxuIiArCisgICAgIiAqIEBkcmFmdCBJQ1UgezB9LnsxfVxuIiArCisgICAgIiAqL1xuIiArCisgICAgIlxuIiArCisgICAgImVudW0gU2NyaXB0Q29kZXMgJ3snIjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgc2NyaXB0QnJpZWYgPQorICAgICIvKipcbiIgKworICAgICIgKiBcXGZpbGVcbiIgKyAKKyAgICAiICogXFxicmllZiBDKysgQVBJOiBDb25zdGFudHMgZm9yIFVuaWNvZGUgc2NyaXB0IHZhbHVlc1xuIiArCisgICAgIiAqL1xuIiArCisgICAgIlxuIjsKKworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBsYW5ndWFnZVByZWFtYmxlID0gCisgICAgIi8qKlxuIiArCisgICAgIiAqIEEgcHJvdmlzaW9uYWwgbGlzdCBvZiBsYW5ndWFnZSBjb2Rlcy4gRm9yIG5vdyxcbiIgKworICAgICIgKiB0aGlzIGlzIGp1c3QgYSBsaXN0IG9mIGxhbmd1YWdlcyB3aGljaCB0aGUgTGF5b3V0RW5naW5lXG4iICsKKyAgICAiICogc3VwcG9ydHMuXG4iICsKKyAgICAiICpcbiIgKworICAgICIgKiBAZHJhZnQgSUNVIHswfS57MX1cbiIgKworICAgICIgKi9cbiIgKworICAgICJcbiIgKworICAgICJlbnVtIExhbmd1YWdlQ29kZXMgJ3snIjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbGFuZ3VhZ2VCcmllZiA9CisgICAgICAgICIvKipcbiIgKworICAgICAgICAiICogXFxmaWxlXG4iICsgCisgICAgICAgICIgKiBcXGJyaWVmIEMrKyBBUEk6IExpc3Qgb2YgbGFuZ3VhZ2UgY29kZXMgZm9yIExheW91dEVuZ2luZVxuIiArCisgICAgICAgICIgKi9cbiIgKworICAgICAgICAiXG4iOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHBvc3RhbWJsZSA9CisgICAgIn07XG4iOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRMaXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE2MjZlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TGlzdC5qYXZhCkBAIC0wLDAgKzEsMjAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworcHVibGljIGNsYXNzIFNjcmlwdExpc3QKK3sKKyAgICBzdGF0aWMgY2xhc3MgTGFuZ1N5c1JlY29yZCBleHRlbmRzIFRhZ2dlZFJlY29yZAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBGZWF0dXJlW10gZmVhdHVyZXM7CisgICAgICAgIHByaXZhdGUgaW50IGZlYXR1cmVDb3VudDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBMYW5nU3lzUmVjb3JkKFN0cmluZyB0aGVMYW5ndWFnZVRhZykKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIodGhlTGFuZ3VhZ2VUYWcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmZWF0dXJlcyA9IG5ldyBGZWF0dXJlWzEwXTsKKyAgICAgICAgICAgIGZlYXR1cmVDb3VudCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZEZlYXR1cmUoRmVhdHVyZSBmZWF0dXJlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmVhdHVyZUNvdW50ID4gZmVhdHVyZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgRmVhdHVyZVtdIG5ld0ZlYXR1cmVzID0gbmV3IEZlYXR1cmVbZmVhdHVyZXMubGVuZ3RoICsgNV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmZWF0dXJlcywgMCwgbmV3RmVhdHVyZXMsIDAsIGZlYXR1cmVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgZmVhdHVyZXMgPSBuZXdGZWF0dXJlczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmVhdHVyZXNbZmVhdHVyZUNvdW50KytdID0gZmVhdHVyZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlTGFuZ1N5c1JlY29yZChPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICAgICAgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgICAgICAvLyBsb29rdXBPcmRlciAobXVzdCBiZSBOVUxMKQorICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgweEZGRkYpOyAvLyByZXFGZWF0dXJlSW5kZXggKDB4RkZGRiBtZWFucyBub25lKQorICAgICAgICAgICAgCisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGZlYXR1cmVDb3VudCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmVhdHVyZUNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGZlYXR1cmVzW2ldLmdldEZlYXR1cmVJbmRleCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgU2NyaXB0UmVjb3JkIGV4dGVuZHMgVGFnZ2VkUmVjb3JkCisgICAgeworICAgICAgICBwcml2YXRlIExhbmdTeXNSZWNvcmRbXSBsYW5nU3lzUmVjb3JkczsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbGFuZ1N5c0NvdW50OworICAgICAgICAKKyAgICAgICAgcHVibGljIFNjcmlwdFJlY29yZChTdHJpbmcgdGhlU2NyaXB0VGFnKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcih0aGVTY3JpcHRUYWcpOworICAgICAgICAgICAgbGFuZ1N5c1JlY29yZHMgPSBuZXcgTGFuZ1N5c1JlY29yZFsxMF07CisgICAgICAgICAgICBsYW5nU3lzQ291bnQgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTGFuZ1N5c1JlY29yZCBmaW5kTGFuZ1N5c1JlY29yZChTdHJpbmcgbGFuZ3VhZ2VUYWcpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGFuZ1N5c0NvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBMYW5nU3lzUmVjb3JkIGxhbmdTeXNSZWNvcmQgPSBsYW5nU3lzUmVjb3Jkc1tpXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobGFuZ1N5c1JlY29yZC5nZXRUYWcoKS5lcXVhbHMobGFuZ3VhZ2VUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYW5nU3lzUmVjb3JkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxhbmdTeXNDb3VudCA+PSBsYW5nU3lzUmVjb3Jkcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBMYW5nU3lzUmVjb3JkW10gbmV3TGFuZ1N5c1JlY29yZHMgPSBuZXcgTGFuZ1N5c1JlY29yZFtsYW5nU3lzQ291bnQgKyA1XTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxhbmdTeXNSZWNvcmRzLCAwLCBuZXdMYW5nU3lzUmVjb3JkcywgMCwgbGFuZ1N5c1JlY29yZHMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBsYW5nU3lzUmVjb3JkcyA9IG5ld0xhbmdTeXNSZWNvcmRzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBMYW5nU3lzUmVjb3JkIG5ld0xhbmdTeXNSZWNvcmQgPSBuZXcgTGFuZ1N5c1JlY29yZChsYW5ndWFnZVRhZyk7CisgICAgICAgICAgICBsYW5nU3lzUmVjb3Jkc1tsYW5nU3lzQ291bnRdID0gbmV3TGFuZ1N5c1JlY29yZDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGFuZ1N5c0NvdW50ICs9IDE7CisgICAgICAgICAgICByZXR1cm4gbmV3TGFuZ1N5c1JlY29yZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGVTY3JpcHRSZWNvcmQoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFRhZ2dlZFJlY29yZC5zb3J0KGxhbmdTeXNSZWNvcmRzLCBsYW5nU3lzQ291bnQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc2NyaXB0VGFibGVCYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgICAgICBpbnQgZmlyc3RMYW5nU3lzID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgLy8gZGVmYXVsdCBsYW5nU3lzIG9mZnNldCAoZml4ZWQgbGF0ZXIpCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsYW5nU3lzUmVjb3Jkc1swXS5nZXRUYWcoKS5lcXVhbHMoIihkZWZhdWx0KSIpKSB7CisgICAgICAgICAgICAgICAgZmlyc3RMYW5nU3lzID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsYW5nU3lzQ291bnQgLSBmaXJzdExhbmdTeXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGFuZ1N5c09mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gZmlyc3RMYW5nU3lzOyBpIDwgbGFuZ1N5c0NvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVUYWcobGFuZ1N5c1JlY29yZHNbaV0uZ2V0VGFnKCkpOworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChmaXJzdExhbmdTeXMgPiAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIChkZWZhdWx0KSIpOworICAgICAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQoc2NyaXB0VGFibGVCYXNlLCBzY3JpcHRUYWJsZUJhc2UpOworICAgICAgICAgICAgICAgIGxhbmdTeXNSZWNvcmRzWzBdLndyaXRlTGFuZ1N5c1JlY29yZCh3cml0ZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gZmlyc3RMYW5nU3lzOyBpIDwgbGFuZ1N5c0NvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICAvLyBmaXggdGhlIG9mZnNldCBpbiB0aGUgbGFuZ1N5c1JlY29yZEFycmF5LgorICAgICAgICAgICAgICAgIC8vIFRoZSAiKzIiIHNraXBzIG92ZXIgdGhlIHRhZyBhbmQgdGhlICIrMyIKKyAgICAgICAgICAgICAgICAvLyBza2lwcyB0byB0aGUgbmV4dCBsYW5nU3lzUmVjb3JkIGVudHJ5CisgICAgICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChsYW5nU3lzT2Zmc2V0ICsgMiwgc2NyaXB0VGFibGVCYXNlKTsKKyAgICAgICAgICAgICAgICBsYW5nU3lzT2Zmc2V0ICs9IDM7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICciICsgbGFuZ1N5c1JlY29yZHNbaV0uZ2V0VGFnKCkgKyAiJyIpOworICAgICAgICAgICAgICAgIGxhbmdTeXNSZWNvcmRzW2ldLndyaXRlTGFuZ1N5c1JlY29yZCh3cml0ZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU2NyaXB0UmVjb3JkW10gc2NyaXB0UmVjb3JkczsKKyAgICBwcml2YXRlIGludCBzY3JpcHRDb3VudDsKKyAgICAKKyAgICBwdWJsaWMgU2NyaXB0TGlzdCgpCisgICAgeworICAgICAgICBzY3JpcHRSZWNvcmRzID0gbmV3IFNjcmlwdFJlY29yZFsxMF07CisgICAgICAgIHNjcmlwdENvdW50ID0gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBMYW5nU3lzUmVjb3JkIGZpbmRMYW5nU3lzUmVjb3JkKFN0cmluZyBzY3JpcHRUYWcsIFN0cmluZyBsYW5ndWFnZVRhZykKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2NyaXB0Q291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgU2NyaXB0UmVjb3JkIHNjcmlwdFJlY29yZCA9IHNjcmlwdFJlY29yZHNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzY3JpcHRSZWNvcmQuZ2V0VGFnKCkuZXF1YWxzKHNjcmlwdFRhZykpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHNjcmlwdFJlY29yZC5maW5kTGFuZ1N5c1JlY29yZChsYW5ndWFnZVRhZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChzY3JpcHRDb3VudCA+PSBzY3JpcHRSZWNvcmRzLmxlbmd0aCkgeworICAgICAgICAgICAgU2NyaXB0UmVjb3JkW10gbmV3U2NyaXB0UmVjb3JkcyA9IG5ldyBTY3JpcHRSZWNvcmRbc2NyaXB0Q291bnQgKyA1XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzY3JpcHRSZWNvcmRzLCAwLCBuZXdTY3JpcHRSZWNvcmRzLCAwLCBzY3JpcHRSZWNvcmRzLmxlbmd0aCk7CisgICAgICAgICAgICBzY3JpcHRSZWNvcmRzID0gbmV3U2NyaXB0UmVjb3JkczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU2NyaXB0UmVjb3JkIG5ld1NjcmlwdFJlY29yZCA9IG5ldyBTY3JpcHRSZWNvcmQoc2NyaXB0VGFnKTsKKyAgICAgICAgc2NyaXB0UmVjb3Jkc1tzY3JpcHRDb3VudF0gPSBuZXdTY3JpcHRSZWNvcmQ7CisgICAgICAgIAorICAgICAgICBzY3JpcHRDb3VudCArPSAxOworICAgICAgICByZXR1cm4gbmV3U2NyaXB0UmVjb3JkLmZpbmRMYW5nU3lzUmVjb3JkKGxhbmd1YWdlVGFnKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkRmVhdHVyZShTdHJpbmcgc2NyaXB0VGFnLCBTdHJpbmcgbGFuZ3VhZ2VUYWcsIEZlYXR1cmUgZmVhdHVyZSkKKyAgICB7CisgICAgICAgIExhbmdTeXNSZWNvcmQgbGFuZ1N5c1JlY29yZCA9IGZpbmRMYW5nU3lzUmVjb3JkKHNjcmlwdFRhZywgbGFuZ3VhZ2VUYWcpOworICAgICAgICAKKyAgICAgICAgbGFuZ1N5c1JlY29yZC5hZGRGZWF0dXJlKGZlYXR1cmUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVNjcmlwdExpc3QoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIndyaXRpbmcgc2NyaXB0IGxpc3QuLi4iKTsKKyAgICAgICAgCisgICAgICAgIGludCBzY3JpcHRMaXN0QmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgVGFnZ2VkUmVjb3JkLnNvcnQoc2NyaXB0UmVjb3Jkcywgc2NyaXB0Q291bnQpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKHNjcmlwdENvdW50KTsKKyAgICAgICAgCisgICAgICAgIGludCBzY3JpcHRSZWNvcmRPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2NyaXB0Q291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlVGFnKHNjcmlwdFJlY29yZHNbaV0uZ2V0VGFnKCkpOworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzY3JpcHRDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICAvLyBmaXggdGhlIG9mZnNldCBpbiB0aGUgc2NyaXB0UmVjb3JkQXJyYXkuCisgICAgICAgICAgICAvLyBUaGUgIisyIiBza2lwcyBvdmVyIHRoZSB0YWcgYW5kIHRoZSAiKzMiCisgICAgICAgICAgICAvLyBza2lwcyB0byB0aGUgbmV4dCBzY3JpcHRSZWNvcmQgZW50cnkKKyAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQoc2NyaXB0UmVjb3JkT2Zmc2V0ICsgMiwgc2NyaXB0TGlzdEJhc2UpOworICAgICAgICAgICAgc2NyaXB0UmVjb3JkT2Zmc2V0ICs9IDM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgc2NyaXB0ICciICsgc2NyaXB0UmVjb3Jkc1tpXS5nZXRUYWcoKSArICInOiIpOworICAgICAgICAgICAgc2NyaXB0UmVjb3Jkc1tpXS53cml0ZVNjcmlwdFJlY29yZCh3cml0ZXIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TW9kdWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdE1vZHVsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxY2FkNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdE1vZHVsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitwdWJsaWMgY2xhc3MgU2NyaXB0TW9kdWxlV3JpdGVyIGV4dGVuZHMgTW9kdWxlV3JpdGVyCit7CisgICAgcHVibGljIFNjcmlwdE1vZHVsZVdyaXRlcihTY3JpcHREYXRhIHRoZVNjcmlwdERhdGEsIExhbmd1YWdlRGF0YSB0aGVMYW5ndWFnZURhdGEpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgICAgICAKKyAgICAgICAgc2NyaXB0RGF0YSA9IHRoZVNjcmlwdERhdGE7CisgICAgICAgIGxhbmd1YWdlRGF0YSA9IHRoZUxhbmd1YWdlRGF0YTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU2NyaXB0RGF0YSBzY3JpcHREYXRhOworICAgIHByb3RlY3RlZCBMYW5ndWFnZURhdGEgbGFuZ3VhZ2VEYXRhOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TmFtZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TmFtZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGM3MTdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHROYW1lQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGNsYXNzIFNjcmlwdE5hbWVCdWlsZGVyCit7CisgICAgLyoKKyAgICAgKiBUaGlzIHRvb2wgYnVpbGRzIHRoZSBzY3JpcHQgcmVsYXRlZCBoZWFkZXIgZmlsZXMgYW5kIGRhdGEgdGFibGVzIG5lZWRlZCBieQorICAgICAqIHRoZSBJQ1UgTGF5b3V0RW5naW5lLiBCeSB1c2luZyB0aGUgSUNVNEogaW50ZXJmYWNlcyB0byBhY2Nlc3MgdGhlIHNjcmlwdAorICAgICAqIGluZm9ybWF0aW9uLCB3ZSBjYW4gYmUgc3VyZSB0aGF0IHRoZSBkYXRhIHdyaXR0ZW4gYnkgdGhpcyB0b29sIGlzIGluIHN5bmNoCisgICAgICogd2l0aCBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIFNjcmlwdERhdGEgc2NyaXB0RGF0YSA9IG5ldyBTY3JpcHREYXRhKCk7CisgICAgICAgIExhbmd1YWdlRGF0YSBsYW5ndWFnZURhdGEgPSBuZXcgTGFuZ3VhZ2VEYXRhKCk7CisgICAgICAgIAorICAgICAgICBTY3JpcHRJRE1vZHVsZVdyaXRlciBzY3JpcHRJRE1vZHVsZVdyaXRlciA9IG5ldyBTY3JpcHRJRE1vZHVsZVdyaXRlcihzY3JpcHREYXRhLCBsYW5ndWFnZURhdGEpOworICAgICAgICAKKyAgICAgICAgc2NyaXB0SURNb2R1bGVXcml0ZXIud3JpdGVTY3JpcHRIZWFkZXIoIkxFU2NyaXB0cy5oIik7CisgICAgICAgIHNjcmlwdElETW9kdWxlV3JpdGVyLndyaXRlTGFuZ3VhZ2VIZWFkZXIoIkxFTGFuZ3VhZ2VzLmgiKTsKKyAgICAgICAgCisgICAgICAgIFNjcmlwdFRhZ01vZHVsZVdyaXRlciBzY3JpcHRUYWdNb2R1bGVXcml0ZXIgPSBuZXcgU2NyaXB0VGFnTW9kdWxlV3JpdGVyKHNjcmlwdERhdGEsIGxhbmd1YWdlRGF0YSk7CisgICAgICAgIAorICAgICAgICBzY3JpcHRUYWdNb2R1bGVXcml0ZXIud3JpdGVTY3JpcHRUYWdzKCJTY3JpcHRBbmRMYW5ndWFnZVRhZ3MiKTsKKyAgICAgICAgCisgICAgICAgIFNjcmlwdFJ1bk1vZHVsZVdyaXRlciBzY3JpcHRSdW5Nb2R1bGVXcml0ZXIgPSBuZXcgU2NyaXB0UnVuTW9kdWxlV3JpdGVyKHNjcmlwdERhdGEpOworICAgICAgICAKKyAgICAgICAgc2NyaXB0UnVuTW9kdWxlV3JpdGVyLndyaXRlU2NyaXB0UnVucygiU2NyaXB0UnVuRGF0YS5jcHAiKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRSdW5Nb2R1bGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0UnVuTW9kdWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFhOTZlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0UnVuTW9kdWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGNsYXNzIFNjcmlwdFJ1bk1vZHVsZVdyaXRlciBleHRlbmRzIFNjcmlwdE1vZHVsZVdyaXRlcgoreworICAgIHB1YmxpYyBTY3JpcHRSdW5Nb2R1bGVXcml0ZXIoU2NyaXB0RGF0YSB0aGVTY3JpcHREYXRhKQorICAgIHsKKyAgICAgICAgc3VwZXIodGhlU2NyaXB0RGF0YSwgbnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlU2NyaXB0UnVucyhTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICBpbnQgbWluU2NyaXB0ICAgPSBzY3JpcHREYXRhLmdldE1pblZhbHVlKCk7CisgICAgICAgIGludCBtYXhTY3JpcHQgICA9IHNjcmlwdERhdGEuZ2V0TWF4VmFsdWUoKTsKKyAgICAgICAgaW50IHJlY29yZENvdW50ID0gc2NyaXB0RGF0YS5nZXRSZWNvcmRDb3VudCgpOworICAgICAgICAKKyAgICAgICAgb3BlbkZpbGUoZmlsZU5hbWUpOworICAgICAgICB3cml0ZUhlYWRlcihudWxsLCBpbmNsdWRlRmlsZXMpOworICAgICAgICBvdXRwdXQucHJpbnRsbihwcmVhbWJsZSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCByZWNvcmQgPSAwOyByZWNvcmQgPCByZWNvcmRDb3VudDsgcmVjb3JkICs9IDEpIHsKKyAgICAgICAgICAgIGludCBzY3JpcHQgPSBzY3JpcHREYXRhLmdldFJlY29yZChyZWNvcmQpLnNjcmlwdENvZGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgezB4Iik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoVXRpbGl0eS5oZXgoc2NyaXB0RGF0YS5nZXRSZWNvcmQocmVjb3JkKS5zdGFydENoYXIoKSwgNikpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIsIDB4Iik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoVXRpbGl0eS5oZXgoc2NyaXB0RGF0YS5nZXRSZWNvcmQocmVjb3JkKS5lbmRDaGFyKCksIDYpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiLCAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChzY3JpcHREYXRhLmdldFRhZyhzY3JpcHQpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiU2NyaXB0Q29kZX0iKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgocmVjb3JkID09IHJlY29yZENvdW50IC0gMSkgPyAiICIgOiAiLCIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgLy8gIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihzY3JpcHREYXRhLmdldE5hbWUoc2NyaXB0KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKHBvc3RhbWJsZSk7CisgICAgICAgIAorICAgICAgICBpbnQgcG93ZXIgPSAxIDw8IFV0aWxpdHkuaGlnaEJpdChyZWNvcmRDb3VudCk7CisgICAgICAgIGludCBleHRyYSA9IHJlY29yZENvdW50IC0gcG93ZXI7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnQoImxlX2ludDMyIFNjcmlwdFJ1bjo6c2NyaXB0UmVjb3Jkc1Bvd2VyID0gMHgiKTsKKyAgICAgICAgb3V0cHV0LnByaW50KFV0aWxpdHkuaGV4KHBvd2VyLCA0KSk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCI7Iik7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50KCJsZV9pbnQzMiBTY3JpcHRSdW46OnNjcmlwdFJlY29yZHNFeHRyYSA9IDB4Iik7CisgICAgICAgIG91dHB1dC5wcmludChVdGlsaXR5LmhleChleHRyYSwgNCkpOworICAgICAgICBvdXRwdXQucHJpbnRsbigiOyIpOworCisgICAgICAgIFZlY3RvcltdIHNjcmlwdFJhbmdlT2Zmc2V0cyA9IG5ldyBWZWN0b3JbbWF4U2NyaXB0IC0gbWluU2NyaXB0ICsgMV07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY3JpcHQgPSBtaW5TY3JpcHQ7IHNjcmlwdCA8PSBtYXhTY3JpcHQ7IHNjcmlwdCArPSAxKSB7CisgICAgICAgICAgICBzY3JpcHRSYW5nZU9mZnNldHNbc2NyaXB0IC0gbWluU2NyaXB0XSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgcmVjb3JkID0gMDsgcmVjb3JkIDwgcmVjb3JkQ291bnQ7IHJlY29yZCArPSAxKSB7CisgICAgICAgICAgICBzY3JpcHRSYW5nZU9mZnNldHNbc2NyaXB0RGF0YS5nZXRSZWNvcmQocmVjb3JkKS5zY3JpcHRDb2RlKCkgLSBtaW5TY3JpcHRdLmFkZEVsZW1lbnQobmV3IEludGVnZXIocmVjb3JkKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY3JpcHQgPSBtaW5TY3JpcHQ7IHNjcmlwdCA8PSBtYXhTY3JpcHQ7IHNjcmlwdCArPSAxKSB7CisgICAgICAgICAgICBWZWN0b3Igb2Zmc2V0cyA9IHNjcmlwdFJhbmdlT2Zmc2V0c1tzY3JpcHQgLSBtaW5TY3JpcHRdOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoImxlX2ludDE2ICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KHNjcmlwdERhdGEuZ2V0VGFnKHNjcmlwdCkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIlNjcmlwdFJhbmdlc1tdID0geyIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IG9mZnNldCA9IDA7IG9mZnNldCA8IG9mZnNldHMuc2l6ZSgpOyBvZmZzZXQgKz0gMSkgeworICAgICAgICAgICAgICAgIEludGVnZXIgaSA9IChJbnRlZ2VyKSBvZmZzZXRzLmVsZW1lbnRBdChvZmZzZXQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dHB1dC5wcmludChpLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiLCAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIi0xIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihwb3N0YW1ibGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigibGVfaW50MTYgKlNjcmlwdFJ1bjo6c2NyaXB0UmFuZ2VPZmZzZXRzW10gPSB7Iik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY3JpcHQgPSBtaW5TY3JpcHQ7IHNjcmlwdCA8PSBtYXhTY3JpcHQ7IHNjcmlwdCArPSAxKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChzY3JpcHREYXRhLmdldFRhZyhzY3JpcHQpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiU2NyaXB0UmFuZ2VzIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0ID09IG1heFNjcmlwdD8gIiAgIiA6ICIsICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIvLyAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKHNjcmlwdERhdGEuZ2V0TmFtZShzY3JpcHQpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4ocG9zdGFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVHJhaWxlcigpOworICAgICAgICBjbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gaW5jbHVkZUZpbGVzID0geyJMRVR5cGVzLmgiLCAiTEVTY3JpcHRzLmgiLCAiU2NyaXB0UnVuLmgifTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgcHJlYW1ibGUgPSAKKyAgICAiXG4iICsKKyAgICAiU2NyaXB0UmVjb3JkIFNjcmlwdFJ1bjo6c2NyaXB0UmVjb3Jkc1tdID0geyI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHBvc3RhbWJsZSA9CisgICAgIn07XG4iOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0VGFnTW9kdWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdFRhZ01vZHVsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkNzdmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdFRhZ01vZHVsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBjbGFzcyBTY3JpcHRUYWdNb2R1bGVXcml0ZXIgZXh0ZW5kcyBTY3JpcHRNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgU2NyaXB0VGFnTW9kdWxlV3JpdGVyKFNjcmlwdERhdGEgdGhlU2NyaXB0RGF0YSwgTGFuZ3VhZ2VEYXRhIHRoZUxhbmd1YWdlRGF0YSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRoZVNjcmlwdERhdGEsIHRoZUxhbmd1YWdlRGF0YSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZVRhZ1ZhbHVlSGVhZGVyKFRhZ1ZhbHVlRGF0YSBkYXRhLCBTdHJpbmcga2luZCkKKyAgICB7CisgICAgICAgIGludCBtaW4gPSBkYXRhLmdldE1pblZhbHVlKCk7CisgICAgICAgIGludCBtYXggPSBkYXRhLmdldE1heFZhbHVlKCk7CisKKyAgICAgICAgZm9yIChpbnQgdmFsdWUgPSBtaW47IHZhbHVlIDw9IG1heDsgdmFsdWUgKz0gMSkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KCJjb25zdCBMRVRhZyAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChkYXRhLmdldFRhZ0xhYmVsKHZhbHVlKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoa2luZCk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlRhZyA9ICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGRhdGEubWFrZVRhZyh2YWx1ZSkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCI7IC8qICciKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChkYXRhLmdldFRhZyh2YWx1ZSkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCInICgiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChkYXRhLmdldE5hbWUodmFsdWUpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCIpICovIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVIZWFkZXJGaWxlKFN0cmluZyBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIG9wZW5GaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgd3JpdGVIZWFkZXIoIl9fU0NSSVBUQU5ETEFOR1VBR0VTX0giLCBoSW5jbHVkZXMsIGhQcmVhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRhZ1ZhbHVlSGVhZGVyKHNjcmlwdERhdGEsICJTY3JpcHQiKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKGhTY3JpcHRQb3N0YW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUYWdWYWx1ZUhlYWRlcihsYW5ndWFnZURhdGEsICJMYW5ndWFnZSIpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oaFBvc3RhbWJsZSk7CisgICAgICAgIGNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVUYWdWYWx1ZUNQUChUYWdWYWx1ZURhdGEgZGF0YSwgU3RyaW5nIGtpbmQpCisgICAgeworICAgICAgICBpbnQgbWluID0gZGF0YS5nZXRNaW5WYWx1ZSgpOworICAgICAgICBpbnQgbWF4ID0gZGF0YS5nZXRNYXhWYWx1ZSgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgdmFsdWUgPSBtaW47IHZhbHVlIDw9IG1heDsgdmFsdWUgKz0gMSkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZGF0YS5nZXRUYWdMYWJlbCh2YWx1ZSkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGtpbmQpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCJUYWciKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgodmFsdWUgPT0gbWF4PyAiICIgOiAiLCIpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiIC8qICciKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChkYXRhLmdldFRhZyh2YWx1ZSkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCInICgiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChkYXRhLmdldE5hbWUodmFsdWUpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCIpICovIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVDUFBGaWxlKFN0cmluZyBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIG9wZW5GaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgd3JpdGVIZWFkZXIobnVsbCwgY3BwSW5jbHVkZXMpOworICAgICAgICBvdXRwdXQucHJpbnRsbihjcHBQcmVhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRhZ1ZhbHVlQ1BQKHNjcmlwdERhdGEsICJTY3JpcHQiKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKGNwcFNjcmlwdFBvc3RhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRhZ1ZhbHVlQ1BQKGxhbmd1YWdlRGF0YSwgIkxhbmd1YWdlIik7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihjcHBQb3N0YW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUcmFpbGVyKCk7CisgICAgICAgIGNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVNjcmlwdFRhZ3MoU3RyaW5nIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgd3JpdGVIZWFkZXJGaWxlKGZpbGVOYW1lICsgIi5oIik7CisgICAgICAgIHdyaXRlQ1BQRmlsZShmaWxlTmFtZSArICIuY3BwIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gaEluY2x1ZGVzID0geyJMRVR5cGVzLmgifTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBoUHJlYW1ibGUgPSAKKyAgICAiLyoqXG4iICsKKyAgICAiICogXFxmaWxlXG4iICsKKyAgICAiICogXFxpbnRlcm5hbFxuIiArCisgICAgIiAqL1xuIiArCisgICAgIlxuIjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaFNjcmlwdFBvc3RhbWJsZSA9CisgICAgIlxuIiArCisgICAgImNvbnN0IExFVGFnIG51bGxTY3JpcHRUYWcgPSAweDAwMDAwMDAwOyAvKiAnJyAgICAgKE5VTEwpICovXG4iICsKKyAgICAiXG4iOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBoUG9zdGFtYmxlID0KKyAgICAiXG4iICsKKyAgICAiXG4iICsKKyAgICAiVV9OQU1FU1BBQ0VfRU5EXG4iICsKKyAgICAiI2VuZGlmIjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBjcHBJbmNsdWRlcyA9CisgICAgICAgIHsiTEVUeXBlcy5oIiwgIlNjcmlwdEFuZExhbmd1YWdlVGFncy5oIiwgIk9wZW5UeXBlTGF5b3V0RW5naW5lLmgifTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3BwUHJlYW1ibGUgPSAKKyAgICAiY29uc3QgTEVUYWcgT3BlblR5cGVMYXlvdXRFbmdpbmU6OnNjcmlwdFRhZ3NbXSA9IHsiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcHBTY3JpcHRQb3N0YW1ibGUgPQorICAgICJ9O1xuIiArCisgICAgIlxuIiArCisgICAgImNvbnN0IExFVGFnIE9wZW5UeXBlTGF5b3V0RW5naW5lOjpsYW5ndWFnZVRhZ3NbXSA9IHsiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcHBQb3N0YW1ibGUgPQorICAgICJ9O1xuIjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NoYXBpbmdUeXBlQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TaGFwaW5nVHlwZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmQ0MjdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TaGFwaW5nVHlwZUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDczIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFNoYXBpbmdUeXBlQnVpbGRlciBleHRlbmRzIE9wZW5UeXBlVGFibGVXcml0ZXIKK3sKKyAgICBwcml2YXRlIENsYXNzVGFibGUgY2xhc3NUYWJsZTsKKyAgICAKKyAgICBwdWJsaWMgU2hhcGluZ1R5cGVCdWlsZGVyKCkKKyAgICB7CisgICAgICAgIGNsYXNzVGFibGUgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhYmxlKFByaW50U3RyZWFtIG91dHB1dCkKKyAgICB7CisgICAgICAgIGNsYXNzVGFibGUud3JpdGVDbGFzc1RhYmxlKHRoaXMpOworICAgICAgICBvdXRwdXQucHJpbnRsbigiY29uc3QgbGVfdWludDggQXJhYmljU2hhcGluZzo6c2hhcGluZ1R5cGVUYWJsZVtdID0geyIpOworICAgICAgICAKKyAgICAgICAgZHVtcFRhYmxlKG91dHB1dCwgOCk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCJ9O1xuIik7CisgICAgfQorICAgIAorICAgIC8vIFRPRE86IFRoZSBVbmljb2RlU2V0IGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBCTVAgYmVjYXVzZSB0aGUgQ2xhc3NUYWJsZSBkYXRhIHN0cnVjdHVyZSBjYW4KKyAgICAvLyBvbmx5IGhhbmRsZSAxNi1iaXQgZW50cmllcy4gVGhpcyBpcyBwcm9iYWJseSBPSyBhcyBsb25nIGFzIHRoZXJlIGFyZW4ndCBhbnkgam9pbmluZyBzY3JpcHRzCisgICAgLy8gb3V0c2lkZSBvZiB0aGUgQk1QLi4uCisgICAgcHVibGljIHZvaWQgYnVpbGRTaGFwaW5nVHlwZXMoU3RyaW5nIGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgVW5pY29kZVNldCBzaGFwaW5nVHlwZXMgPSBuZXcgVW5pY29kZVNldCgiW1tcXFB7Sm9pbmluZ19UeXBlPU5vbl9Kb2luaW5nfV0gJiBbXFx1MDAwMC1cXHVGRkZGXV0iKTsKKyAgICAgICAgaW50IGNvdW50ID0gc2hhcGluZ1R5cGVzLnNpemUoKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlcmUgYXJlICIgKyBjb3VudCArICIgY2hhcmFjdGVycyB3aXRoIGEgam9pbmluZyB0eXBlLiIpOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIGludCBjaCA9IHNoYXBpbmdUeXBlcy5jaGFyQXQoaSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNsYXNzVGFibGUuYWRkTWFwcGluZyhjaCwgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNoLCBVUHJvcGVydHkuSk9JTklOR19UWVBFKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIExpZ2F0dXJlTW9kdWxlV3JpdGVyIHdyaXRlciA9IG5ldyBMaWdhdHVyZU1vZHVsZVdyaXRlcigpOworICAgICAgICBTdHJpbmdbXSBpbmNsdWRlRmlsZXMgPSB7IkxFVHlwZXMuaCIsICJBcmFiaWNTaGFwaW5nLmgifTsgICAgICAgIAorICAgICAgICAKKyAgICAgICAgd3JpdGVyLm9wZW5GaWxlKGZpbGVuYW1lKTsKKyAgICAgICAgd3JpdGVyLndyaXRlSGVhZGVyKG51bGwsIGluY2x1ZGVGaWxlcyk7CisgICAgICAgIHdyaXRlci53cml0ZVRhYmxlKHRoaXMpOworICAgICAgICB3cml0ZXIud3JpdGVUcmFpbGVyKCk7CisgICAgICAgIHdyaXRlci5jbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIFNoYXBpbmdUeXBlQnVpbGRlciBzdGIgPSBuZXcgU2hhcGluZ1R5cGVCdWlsZGVyKCk7CisgICAgICAgIAorICAgICAgICBzdGIuYnVpbGRTaGFwaW5nVHlwZXMoYXJnc1swXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdVdGlsaXRpZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnVXRpbGl0aWVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg0MTY2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnVXRpbGl0aWVzLmphdmEKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBBcHIgMTQsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiAgVGhpcyBjbGFzcyBjb250YWlucyB1dGlsaXR5IG1ldGhvZHMgZm9yIGRlYWxpbmcgd2l0aAorICogZm91ci1sZXR0ZXIgdGFncy4KKyAqIAorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBUYWdVdGlsaXRpZXMKK3sKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBtYWtlVGFnKFN0cmluZyB0YWcpCisgICAgeworICAgICAgICBpZiAodGFnID09IG51bGwgfHwgdGFnLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAiMHgwMDAwMDAwMCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCB0YWdWYWx1ZSA9IDA7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkgKz0gMSkgeworICAgICAgICAgICAgdGFnVmFsdWUgPDw9IDg7CisgICAgICAgICAgICB0YWdWYWx1ZSArPSAoaW50KSAoKGkgPCB0YWcubGVuZ3RoKCk/IHRhZy5jaGFyQXQoaSkgOiAnICcpICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAiMHgiICsgVXRpbGl0eS5oZXgodGFnVmFsdWUsIDgpOworICAgIH0KKyAgICAKKy8vICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG1ha2VUYWdPbGQoU3RyaW5nIHRhZykKKy8vICAgIHsKKy8vICAgICAgICBpZiAodGFnID09IG51bGwgfHwgdGFnLmxlbmd0aCgpID09IDApIHsKKy8vICAgICAgICAgICAgcmV0dXJuICIweDAwMDAwMDAwIjsKKy8vICAgICAgICB9CisvLyAgICAgICAgCisvLyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoIkxFX01BS0VfVEFHKCIpOworLy8gICAgICAgIAorLy8gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSArPSAxKSB7CisvLyAgICAgICAgICAgIGlmIChpID4gMCkgeworLy8gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAKKy8vICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXCcnKTsKKy8vICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpIDwgdGFnLmxlbmd0aCgpPyB0YWcuY2hhckF0KGkpIDogJyAnKTsKKy8vICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXCcnKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgCisvLyAgICAgICAgcmVzdWx0LmFwcGVuZCgiKSIpOworLy8gICAgICAgIAorLy8gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsgCisvLyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdGFnTGFiZWwoU3RyaW5nIHRhZykKKyAgICB7CisgICAgICAgIGlmICh0YWcgPT0gbnVsbCB8fCB0YWcubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0YWcudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnVmFsdWVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ1ZhbHVlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MTc1Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ1ZhbHVlRGF0YS5qYXZhCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVGFnVmFsdWVEYXRhCit7CisgICAgYWJzdHJhY3QgcHVibGljIGludCBnZXRNaW5WYWx1ZSgpOworICAgIGFic3RyYWN0IHB1YmxpYyBpbnQgZ2V0TWF4VmFsdWUoKTsKKyAgICAKKyAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldE5hbWUoaW50IHZhbHVlKTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldFRhZyhpbnQgdmFsdWUpOworICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgZ2V0VGFnTGFiZWwoaW50IHZhbHVlKTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIG1ha2VUYWcoaW50IHZhbHVlKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnZ2VkUmVjb3JkLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ2dlZFJlY29yZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxOGMwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ2dlZFJlY29yZC5qYXZhCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitwdWJsaWMgY2xhc3MgVGFnZ2VkUmVjb3JkCit7CisgICAgcHJpdmF0ZSBTdHJpbmcgdGFnOworICAgICAgICAKKyAgICBwdWJsaWMgVGFnZ2VkUmVjb3JkKFN0cmluZyB0aGVUYWcpCisgICAgeworICAgICAgICB0YWcgPSB0aGVUYWc7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhZygpCisgICAgeworICAgICAgICByZXR1cm4gdGFnOworICAgIH0KKyAgICAgICAgCisgICAgLy8KKyAgICAvLyBTdHJhaWdodCBpbnNlcnRpb24gc29ydCBmcm9tIEtudXRoIHZvbC4gSUlJLCBwZy4gODEKKyAgICAvLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KFRhZ2dlZFJlY29yZFtdIHRhYmxlLCBpbnQgY291bnQpCisgICAgeworICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IGNvdW50OyBqICs9IDEpIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgVGFnZ2VkUmVjb3JkIHYgPSB0YWJsZVtqXTsKKyAgICAgICAgICAgIFN0cmluZyB2VGFnID0gdi5nZXRUYWcoKTsKKworICAgICAgICAgICAgZm9yIChpID0gaiAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKHZUYWcuY29tcGFyZVRvKHRhYmxlW2ldLmdldFRhZygpKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRhYmxlW2kgKyAxXSA9IHRhYmxlW2ldOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0YWJsZVtpICsgMV0gPSB2OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IHNlYXJjaChUYWdnZWRSZWNvcmRbXSB0YWJsZSwgaW50IGNvdW50LCBTdHJpbmcgdGFnKQorICAgIHsKKyAgICAgICAgaW50IGxvZzIgPSBVdGlsaXR5LmhpZ2hCaXQoY291bnQpOworICAgICAgICBpbnQgcG93ZXIgPSAxIDw8IGxvZzI7CisgICAgICAgIGludCBleHRyYSA9IGNvdW50IC0gcG93ZXI7CisgICAgICAgIGludCBwcm9iZSA9IHBvd2VyOworICAgICAgICBpbnQgaW5kZXggPSAwOworCisgICAgICAgIGlmICh0YWJsZVtleHRyYV0uZ2V0VGFnKCkuY29tcGFyZVRvKHRhZykgPD0gMCkgeworICAgICAgICAgICAgaW5kZXggPSBleHRyYTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChwcm9iZSA+ICgxIDw8IDApKSB7CisgICAgICAgICAgICBwcm9iZSA+Pj0gMTsKKworICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgcHJvYmVdLmdldFRhZygpLmNvbXBhcmVUbyh0YWcpIDw9IDApIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBwcm9iZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh0YWJsZVtpbmRleF0uZ2V0VGFnKCkuZXF1YWxzKHRhZykpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9Cit9CisgICAgCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlDaGFyYWN0ZXJDbGFzc2VzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlDaGFyYWN0ZXJDbGFzc2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ5OTM3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaUNoYXJhY3RlckNsYXNzZXMuamF2YQpAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMDksIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworCitwdWJsaWMgY2xhc3MgVGhhaUNoYXJhY3RlckNsYXNzZXMKK3sKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT04gICAgPSAgMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT04gICAgPSAgMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT0EgICAgPSAgMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT0QgICAgPSAgMzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMVk8gPSAgNDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGVjEgICAgPSAgNTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGVjIgICAgPSAgNjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGVjMgICAgPSAgNzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCVjEgICAgPSAgODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCVjIgICAgPSAgOTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCREkgPSAxMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT04gICAgPSAxMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBRDEgICAgPSAxMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBRDIgICAgPSAxMzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBRDMgICAgPSAxNDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOSUsgICAgPSAxNTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBVjEgICAgPSAxNjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBVjIgICAgPSAxNzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBVjMgICAgPSAxODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjQ291bnQgPSAxOTsKKworICAgIC8vIEluZGV4ZWQgYnkgdW5pY29kZSAtICdcdTBFMDAnCisgICAgLy8gRklYTUU6IE1TIEZvbnRzIC0gU2hvdWxkIDBFMkUgaGFzIG5vIGFzY2VuZGVyIChpdCBkb2VzIGluIFdUIGZvbnQpCisgICAgLy8gRklYTUU6IE1TIEZvbnRzIC0gMEU0NyAoTUFJVEFJS0hVKSBhbmQgMEU0RCAoTklLSEFISVQpIG9ubHkgaGF2ZSB2b3dlbCBmb3JtcworICAgIC8vIEZJWE1FOiBNUyBGb250cyAtIDBFNEUgKFlBTUFLS0FOKSBvbmx5IGhhcyBvbmUgZm9ybQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjbGFzc1RhYmxlW10gPSB7CisgICAgLy8gICAgICAgMCAgICAxICAgIDIgICAgMyAgICA0ICAgIDUgICAgNiAgICA3ICAgIDggICAgOSAgICBBICAgIEIgICAgQyAgICBEICAgIEUgICAgRgorICAgIC8vICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvKjBFMDAqLyBOT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPRCwgQ09ELCBDT0QsIAorICAgIC8qMEUxMCovIENPRCwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT0EsIENPTiwgQ09BLCBDT04sIENPQSwgCisgICAgLyowRTIwKi8gQ09OLCBDT04sIENPTiwgQ09OLCBGVjMsIENPTiwgRlYzLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgTk9OLCAKKyAgICAvKjBFMzAqLyBGVjEsIEFWMiwgRlYxLCBGVjEsIEFWMSwgQVYzLCBBVjIsIEFWMywgQlYxLCBCVjIsIEJESSwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIAorICAgIC8qMEU0MCovIExWTywgTFZPLCBMVk8sIExWTywgTFZPLCBGVjIsIE5PTiwgQUQyLCBUT04sIFRPTiwgVE9OLCBUT04sIEFEMSwgTklLLCBBRDMsIE5PTiwgCisgICAgLyowRTUwKi8gTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBjbGFzc05hbWVzID0KKyAgICB7CisgICAgICAgICJOT04iLAorICAgICAgICAiQ09OIiwKKyAgICAgICAgIkNPQSIsCisgICAgICAgICJDT0QiLAorICAgICAgICAiTFZPIiwKKyAgICAgICAgIkZWMSIsCisgICAgICAgICJGVjIiLAorICAgICAgICAiRlYzIiwKKyAgICAgICAgIkJWMSIsCisgICAgICAgICJCVjIiLAorICAgICAgICAiQkRJIiwKKyAgICAgICAgIlRPTiIsCisgICAgICAgICJBRDEiLAorICAgICAgICAiQUQyIiwKKyAgICAgICAgIkFEMyIsCisgICAgICAgICJOSUsiLAorICAgICAgICAiQVYxIiwKKyAgICAgICAgIkFWMiIsCisgICAgICAgICJBVjMiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgcGFpclRhYmxlW11bXSA9IHsKKyAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAvLyAgTiAgICBDICAgIEMgICAgQyAgICBMICAgIEYgICAgRiAgICBGICAgIEIgICAgQiAgICBCICAgIFQgICAgQSAgICBBICAgIEEgICAgTiAgICBBICAgIEEgICAgQQorICAgICAgLy8gIE8gICAgTyAgICBPICAgIE8gICAgViAgICBWICAgIFYgICAgViAgICBWICAgIFYgICAgRCAgICBPICAgIEQgICAgRCAgICBEICAgIEkgICAgViAgICBWICAgIFYKKyAgICAgIC8vICBOICAgIE4gICAgQSAgICBEICAgIE8gICAgMSAgICAyICAgIDMgICAgMSAgICAyICAgIEkgICAgTiAgICAxICAgIDIgICAgMyAgICBLICAgIDEgICAgMiAgICAzCisgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLypOT04qLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQ09OKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ0EnLCAnQycsICdDJywgJ0MnLCAnRScsICdFJywgJ0UnLCAnQycsICdFJywgJ0MnLCAnQycsICdDJ30sCisvKkNPQSovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdBJywgJ0MnLCAnQycsICdDJywgJ0YnLCAnRicsICdGJywgJ0QnLCAnRicsICdEJywgJ0QnLCAnRCd9LAorLypDT0QqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnQScsICdIJywgJ0gnLCAnSCcsICdFJywgJ0UnLCAnRScsICdDJywgJ0UnLCAnQycsICdDJywgJ0MnfSwKKy8qTFZPKi8geydTJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdTJywgJ1MnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkZWMSovIHsnUycsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypGVjIqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qRlYzKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdBJywgJ1MnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkJWMSovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ0UnLCAnRScsICdSJywgJ1InLCAnRScsICdSJywgJ1InLCAnUid9LAorLypCVjIqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdFJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQkRJKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKlRPTiovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ0knLCAnQScsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypBRDEqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQUQyKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkFEMyovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypOSUsqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdHJywgJ0cnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQVYxKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnRycsICdHJywgJ1InLCAnUicsICdHJywgJ1InLCAnUicsICdSJ30sCisvKkFWMiovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ0cnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypBVjMqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdHJywgJ1InLCAnRycsICdSJywgJ1InLCAnUicsICdSJywgJ1InfQorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDaGFyQ2xhc3MoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBjaGFyQ2xhc3MgPSBOT047CisgICAgICAgIAorICAgICAgICBpZiAoY2ggPj0gJ1x1MEUwMCcgJiYgY2ggPD0gJ1x1MEU1QicpIHsKKyAgICAgICAgICAgIGNoYXJDbGFzcyA9IGNsYXNzVGFibGVbY2ggLSAnXHUwRTAwJ107CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjaGFyQ2xhc3M7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldENsYXNzTmFtZShpbnQgY2xhc3NJRCkKKyAgICB7CisgICAgICAgIGlmIChjbGFzc0lEIDwgMCB8fCBjbGFzc0lEID49IGNDb3VudCkgeworICAgICAgICAgICAgcmV0dXJuICIqKioiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2xhc3NOYW1lc1tjbGFzc0lEXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjaGFyIGdldFBhaXJBY3Rpb24oaW50IHByZXZDbGFzcywgaW50IGN1cnJDbGFzcykKKyAgICB7CisgICAgICAgIGlmIChwcmV2Q2xhc3MgPCAwIHx8IHByZXZDbGFzcyA+PSBjQ291bnQgfAorICAgICAgICAgICAgY3VyckNsYXNzIDwgMCB8fCBjdXJyQ2xhc3MgPj0gY0NvdW50KSB7CisgICAgICAgICAgICByZXR1cm4gJ0EnOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHBhaXJUYWJsZVtwcmV2Q2xhc3NdW2N1cnJDbGFzc107CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjbGFzc1RhYmxlSGVhZGVyID0KKyJjb25zdCBsZV91aW50OCBUaGFpU2hhcGluZzo6Y2xhc3NUYWJsZVtdID0ge1xuIiArCisiICAgIC8vICAgICAgIDAgICAgMSAgICAyICAgIDMgICAgNCAgICA1ICAgIDYgICAgNyAgICA4ICAgIDkgICAgQSAgICBCICAgIEMgICAgRCAgICBFICAgIEZcbiIgKworIiAgICAvLyAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIjsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVDbGFzc1RhYmxlKFByaW50U3RyZWFtIG91dHB1dCkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIldyaXRpbmcgY2xhc3MgdGFibGUuLi4iKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludChjbGFzc1RhYmxlSGVhZGVyKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoY2hhciBjaCA9ICdcdTBFMDAnOyBjaCA8PSAnXHUwRTVCJzsgY2ggKz0gMSkgeworICAgICAgICAgICAgaW50IGNoYXJDbGFzcyA9IGdldENoYXJDbGFzcyhjaCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICgoY2ggJiAweDAwMEYpID09IDApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlxuICAgIC8qIiArIFV0aWxpdHkuaGV4KGNoLCA0KSArICIqLyAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KGdldENsYXNzTmFtZShjaGFyQ2xhc3MpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNoIDwgJ1x1MEU1QicpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiXG59O1xuXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgZG9uZS4iKTsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU5MTA2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGUuamF2YQpAQCAtMCwwICsxLDIwNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMDksIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIFRoYWlTdGF0ZVRhYmxlCit7CisgICAgc3RhdGljIFZlY3RvciBzdGF0ZVRhYmxlID0gbnVsbDsKKyAgICBzdGF0aWMgaW50IG5leHRTdGF0ZSA9IDA7CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IG5ld1N0YXRlKCkKKyAgICB7CisgICAgICAgIFRoYWlTdGF0ZVRyYW5zaXRpb25bXSBzdGF0ZVJvdyA9IG5ldyBUaGFpU3RhdGVUcmFuc2l0aW9uW1RoYWlDaGFyYWN0ZXJDbGFzc2VzLmNDb3VudF07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmNDb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICBzdGF0ZVJvd1tjXSA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRlVGFibGUuYWRkRWxlbWVudChzdGF0ZVJvdyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV4dFN0YXRlKys7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW4gaXNMZWdhbEhlcmUoaW50IHN0YXRlLCBjaGFyIHBhaXJBY3Rpb24pCisgICAgeworICAgICAgICBzd2l0Y2ggKHBhaXJBY3Rpb24pIHsKKyAgICAgICAgY2FzZSAnQSc6CisgICAgICAgICAgICByZXR1cm4gc3RhdGUgPT0gMDsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgY2FzZSAnRCc6CisgICAgICAgIGNhc2UgJ0UnOgorICAgICAgICBjYXNlICdGJzoKKyAgICAgICAgY2FzZSAnRyc6CisgICAgICAgIGNhc2UgJ0gnOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgY2FzZSAnUyc6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYm9vbGVhbiBjb21wb3Nlc1dpdGhBbnl0aGluZyhpbnQgY2hhckNsYXNzKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5jQ291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgY2hhciBhY3Rpb24gPSBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5nZXRQYWlyQWN0aW9uKGNoYXJDbGFzcywgYyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChhY3Rpb24gPj0gJ0MnICYmIGFjdGlvbiA8PSAnSScpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyB2b2lkIGZpeE5leHRTdGF0ZXMoKQorICAgIHsKKyAgICAgICAgVGhhaVN0YXRlVHJhbnNpdGlvbltdIGdyb3VuZFN0YXRlID0gKFRoYWlTdGF0ZVRyYW5zaXRpb25bXSkgc3RhdGVUYWJsZS5lbGVtZW50QXQoMCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzID0gMTsgcyA8IHN0YXRlVGFibGUuc2l6ZSgpOyBzICs9IDEpIHsKKyAgICAgICAgICAgIFRoYWlTdGF0ZVRyYW5zaXRpb25bXSBzdGF0ZSA9IChUaGFpU3RhdGVUcmFuc2l0aW9uW10pIHN0YXRlVGFibGUuZWxlbWVudEF0KHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmNDb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgVGhhaVN0YXRlVHJhbnNpdGlvbiB0cmFuc2l0aW9uID0gc3RhdGVbY107CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb24uZ2V0TmV4dFN0YXRlKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLnNldE5leHRTdGF0ZShncm91bmRTdGF0ZVtjXS5nZXROZXh0U3RhdGUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBhZGRTdGF0ZShpbnQgcHJldkNsYXNzLCBpbnQgcHJldlByZXZDbGFzcykKKyAgICB7CisgICAgICAgIGludCBzdGF0ZSA9IG5ld1N0YXRlKCk7CisgICAgICAgIFRoYWlTdGF0ZVRyYW5zaXRpb25bXSBzdGF0ZVJvdyA9IChUaGFpU3RhdGVUcmFuc2l0aW9uW10pIHN0YXRlVGFibGUuZWxlbWVudEF0KHN0YXRlKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgVGhhaUNoYXJhY3RlckNsYXNzZXMuY0NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgIGNoYXIgcGFpckFjdGlvbiA9IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmdldFBhaXJBY3Rpb24ocHJldkNsYXNzLCBjKTsKKyAgICAgICAgICAgIGludCBuZXh0U3RhdGUgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKHBhaXJBY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgJ0cnOgorICAgICAgICAgICAgICAgIGlmIChwcmV2Q2xhc3MgPT0gVGhhaUNoYXJhY3RlckNsYXNzZXMuTklLICYmCisgICAgICAgICAgICAgICAgICAgIHByZXZQcmV2Q2xhc3MgPT0gVGhhaUNoYXJhY3RlckNsYXNzZXMuQVYxKSB7CisgICAgICAgICAgICAgICAgICAgIHBhaXJBY3Rpb24gPSAnUic7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2UHJldkNsYXNzICE9IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLkNPQSkgeworICAgICAgICAgICAgICAgICAgICBwYWlyQWN0aW9uID0gJ0MnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgJ0UnOgorICAgICAgICAgICAgICAgIGlmIChwcmV2UHJldkNsYXNzID09IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLkNPQSkgeworICAgICAgICAgICAgICAgICAgICBwYWlyQWN0aW9uID0gJ0YnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgIGlmIChwcmV2Q2xhc3MgPT0gVGhhaUNoYXJhY3RlckNsYXNzZXMuVE9OICYmCisgICAgICAgICAgICAgICAgICAgIChwcmV2UHJldkNsYXNzIDwgVGhhaUNoYXJhY3RlckNsYXNzZXMuQ09OIHx8CisgICAgICAgICAgICAgICAgICAgICBwcmV2UHJldkNsYXNzID4gVGhhaUNoYXJhY3RlckNsYXNzZXMuQ09EKSkgeworICAgICAgICAgICAgICAgICAgICBwYWlyQWN0aW9uID0gJ1MnOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHBhaXJBY3Rpb24gPSAnQSc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGMgIT0gcHJldkNsYXNzICYmIGlzTGVnYWxIZXJlKHN0YXRlLCBwYWlyQWN0aW9uKSAmJiBjb21wb3Nlc1dpdGhBbnl0aGluZyhjKSkgeworICAgICAgICAgICAgICAgIG5leHRTdGF0ZSA9IGFkZFN0YXRlKGMsIHByZXZDbGFzcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0YXRlUm93W2NdID0gbmV3IFRoYWlTdGF0ZVRyYW5zaXRpb24obmV4dFN0YXRlLCBwYWlyQWN0aW9uKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0YXRlOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMKKyAgICB7CisgICAgICAgIHN0YXRlVGFibGUgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgYWRkU3RhdGUoVGhhaUNoYXJhY3RlckNsYXNzZXMuTk9OLCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5OT04pOworICAgICAgICAgICAgCisgICAgICAgIGZpeE5leHRTdGF0ZXMoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBUaGFpU3RhdGVUcmFuc2l0aW9uIGdldFRyYW5zaXRpb24oaW50IHN0YXRlLCBpbnQgY3VyckNsYXNzKQorICAgIHsKKyAgICAgICAgVGhhaVN0YXRlVHJhbnNpdGlvbltdIHJvdyA9IChUaGFpU3RhdGVUcmFuc2l0aW9uW10pIHN0YXRlVGFibGUuZWxlbWVudEF0KHN0YXRlKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByb3dbY3VyckNsYXNzXTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgaGVhZGVyMCA9CisiY29uc3QgVGhhaVNoYXBpbmc6OlN0YXRlVHJhbnNpdGlvbiBUaGFpU2hhcGluZzo6dGhhaVN0YXRlVGFibGVbXVtUaGFpU2hhcGluZzo6Y2xhc3NDb3VudF0gPSB7IjsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBoZWFkZXIxID0KKyIgICAgLy8rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIjsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBoZWFkZXIyID0KKyIgICAgLy98ICAgICAgICAgTiAgICAgICAgIEMgICAgICAgICBDICAgICAgICAgQyAgICAgICAgIEwgICAgICAgICBGICAgICAgICAgRiAgICAgICAgIEYgICAgICAgICBCICAgICAgICAgQiAgICAgICAgIEIgICAgICAgICBUICAgICAgICAgQSAgICAgICAgIEEgICAgICAgICBBICAgICAgICAgTiAgICAgICAgIEEgICAgICAgICBBICAgICAgICAgQSAgICB8XG4iICsKKyIgICAgLy98ICAgICAgICAgTyAgICAgICAgIE8gICAgICAgICBPICAgICAgICAgTyAgICAgICAgIFYgICAgICAgICBWICAgICAgICAgViAgICAgICAgIFYgICAgICAgICBWICAgICAgICAgViAgICAgICAgIEQgICAgICAgICBPICAgICAgICAgRCAgICAgICAgIEQgICAgICAgICBEICAgICAgICAgSSAgICAgICAgIFYgICAgICAgICBWICAgICAgICAgViAgICB8XG4iICsKKyIgICAgLy98ICAgICAgICAgTiAgICAgICAgIE4gICAgICAgICBBICAgICAgICAgRCAgICAgICAgIE8gICAgICAgICAxICAgICAgICAgMiAgICAgICAgIDMgICAgICAgICAxICAgICAgICAgMiAgICAgICAgIEkgICAgICAgICBOICAgICAgICAgMSAgICAgICAgIDIgICAgICAgICAzICAgICAgICAgSyAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMyAgICB8IjsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVTdGF0ZVRhYmxlKFByaW50U3RyZWFtIG91dHB1dCkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIldyaXRpbmcgc3RhdGUgdGFibGUuLi4iKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKGhlYWRlcjApOworICAgICAgICBvdXRwdXQucHJpbnRsbihoZWFkZXIxKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oaGVhZGVyMik7CisgICAgICAgIG91dHB1dC5wcmludGxuKGhlYWRlcjEpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc3RhdGUgPSAwOyBzdGF0ZSA8IHN0YXRlVGFibGUuc2l6ZSgpOyBzdGF0ZSArPSAxKSB7CisgICAgICAgICAgICBUaGFpU3RhdGVUcmFuc2l0aW9uW10gcm93ID0gKFRoYWlTdGF0ZVRyYW5zaXRpb25bXSkgc3RhdGVUYWJsZS5lbGVtZW50QXQoc3RhdGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAgICAvKiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3RhdGUgPCAxMCkgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiMCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc3RhdGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiovIHsiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5jQ291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgIHJvd1tjXS53cml0ZShvdXRwdXQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChjIDwgVGhhaUNoYXJhY3RlckNsYXNzZXMuY0NvdW50IC0gMSkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIn0iKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3RhdGUgPCBzdGF0ZVRhYmxlLnNpemUoKSAtIDEpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigifTtcbiIpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgZG9uZS4iKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGQwNGUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDI2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAwOSwgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK3B1YmxpYyBjbGFzcyBUaGFpU3RhdGVUYWJsZUJ1aWxkZXIKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKQorICAgIHsKKyAgICAgICAgVGhhaVN0YXRlVGFibGVNb2R1bGVXcml0ZXIgd3JpdGVyID0gbmV3IFRoYWlTdGF0ZVRhYmxlTW9kdWxlV3JpdGVyKCk7CisgICAgICAgIAorICAgICAgICB3cml0ZXIub3BlbkZpbGUoYXJnc1swXSk7CisgICAgICAgIHdyaXRlci53cml0ZVRhYmxlcygpOworICAgICAgICB3cml0ZXIuY2xvc2VGaWxlKCk7CisgICAgICAgIAorICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGVNb2R1bGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGVNb2R1bGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmY5YTBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZU1vZHVsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDA5LCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBjbGFzcyBUaGFpU3RhdGVUYWJsZU1vZHVsZVdyaXRlciBleHRlbmRzIE1vZHVsZVdyaXRlcgoreworICAgIHB1YmxpYyBUaGFpU3RhdGVUYWJsZU1vZHVsZVdyaXRlcigpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFibGVzKCkKKyAgICB7CisgICAgICAgIHdyaXRlSGVhZGVyKG51bGwsIGluY2x1ZGVGaWxlcyk7CisgICAgICAgIAorICAgICAgICBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy53cml0ZUNsYXNzVGFibGUob3V0cHV0KTsKKyAgICAgICAgVGhhaVN0YXRlVGFibGUud3JpdGVTdGF0ZVRhYmxlKG91dHB1dCk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRyYWlsZXIoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBpbmNsdWRlRmlsZXMgPSB7IkxFVHlwZXMuaCIsICJUaGFpU2hhcGluZy5oIn07Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDA1ZWIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMDksIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CisKK3B1YmxpYyBjbGFzcyBUaGFpU3RhdGVUcmFuc2l0aW9uCit7CisgICAgaW50IG5leHRTdGF0ZTsKKyAgICBjaGFyIGFjdGlvbjsKKyAgICAgICAgCisgICAgcHVibGljIFRoYWlTdGF0ZVRyYW5zaXRpb24oaW50IG5leHRTdGF0ZSwgY2hhciBhY3Rpb24pCisgICAgeworICAgICAgICB0aGlzLm5leHRTdGF0ZSA9IG5leHRTdGF0ZTsKKyAgICAgICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE5leHRTdGF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbmV4dFN0YXRlOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0QWN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhY3Rpb247CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXROZXh0U3RhdGUoaW50IG5ld05leHRTdGF0ZSkKKyAgICB7CisgICAgICAgIG5leHRTdGF0ZSA9IG5ld05leHRTdGF0ZTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldEFjdGlvbihjaGFyIG5ld0FjdGlvbikKKyAgICB7CisgICAgICAgIGFjdGlvbiA9IG5ld0FjdGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAoKG5leHRTdGF0ZSA8IDEwKSA/ICIwIiA6ICIiKSArIG5leHRTdGF0ZSArICIvIiArIGFjdGlvbiArICIgIjsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGUoUHJpbnRTdHJlYW0gb3V0cHV0KQorICAgIHsKKyAgICAgICAgb3V0cHV0LnByaW50KCJ7Iik7CisgICAgICAgIAorICAgICAgICBpZiAobmV4dFN0YXRlIDwgMTApIHsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiICIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnQobmV4dFN0YXRlKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludCgiLCB0Iik7CisgICAgICAgIG91dHB1dC5wcmludChhY3Rpb24pOworICAgICAgICBvdXRwdXQucHJpbnQoIn0iKTsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RyZWVXYWxrZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVHJlZVdhbGtlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllYzQ0NzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RyZWVXYWxrZXIuamF2YQpAQCAtMCwwICsxLDE5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmVlV2Fsa2VyCit7CisgICAgYWJzdHJhY3Qgdm9pZCBkb3duKGludCBjaCk7CisgICAgYWJzdHJhY3Qgdm9pZCB1cCgpOworICAgIGFic3RyYWN0IHZvaWQgbGlnYXR1cmUoaW50IGxpZyk7CisgICAgYWJzdHJhY3Qgdm9pZCBkb25lKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0FycmF5RW51bWVyYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQXJyYXlFbnVtZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU3N2MwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0FycmF5RW51bWVyYXRpb24uamF2YQpAQCAtMCwwICsxLDg3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGZpbmFsIGNsYXNzIEFycmF5RW51bWVyYXRpb24gaW1wbGVtZW50cyBFbnVtZXJhdGlvbiB7CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihPYmplY3RbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IGFycmF5OworICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oYnl0ZVtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IEJ5dGUoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihjaGFyW10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBuZXcgT2JqZWN0W2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRoaXMuYXJyYXlbaV0gPSBuZXcgQ2hhcmFjdGVyKGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oc2hvcnRbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBTaG9ydChhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKGludFtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IEludGVnZXIoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihmbG9hdFtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IEZsb2F0KGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oZG91YmxlW10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBuZXcgT2JqZWN0W2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRoaXMuYXJyYXlbaV0gPSBuZXcgRG91YmxlKGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaGFzTW9yZUVsZW1lbnRzKCkgeworICAgICAgICAgcmV0dXJuIHBvc2l0aW9uIDwgbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBuZXh0RWxlbWVudCgpIHsKKyAgICAgICAgaWYgKHBvc2l0aW9uIDwgbGltaXQpCisgICAgICAgICAgICByZXR1cm4gYXJyYXlbcG9zaXRpb24rK107CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRocm93IG5ldyBqYXZhLnV0aWwuTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigpOworICAgIH0KKyAgICAvLyBwcml2YXRlcworICAgIHByaXZhdGUgT2JqZWN0W10gYXJyYXk7CisgICAgcHJpdmF0ZSBpbnQgcG9zaXRpb24gPSAwOworICAgIHByaXZhdGUgaW50IGxpbWl0ID0gMDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc5ZWM1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ2FsY3VsYXRlQ1JDMzIuamF2YQpAQCAtMCwwICsxLDg2IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEubWF0aC4qOworCisvKgorICogIFRoZSBjb2RlIGlzIGZyb20gIGh0dHA6Ly93d3cudGhlb3JlbS5jb20vamF2YS9DUkMzMi5qYXZhCisgKiBDYWxjdWxhdGVzIHRoZSBDUkMzMiAtIDMyIGJpdCBDeWNsaWNhbCBSZWR1bmRhbmN5IENoZWNrCisgKiA8UD4gVGhpcyBjaGVjayBpcyB1c2VkIGluIG51bWVyb3VzIHN5c3RlbXMgdG8gdmVyaWZ5IHRoZSBpbnRlZ3JpdHkKKyAqIG9mIGluZm9ybWF0aW9uLiAgSXQncyBhbHNvIHVzZWQgYXMgYSBoYXNoaW5nIGZ1bmN0aW9uLiAgVW5saWtlIGEgcmVndWxhcgorICogY2hlY2tzdW0sIGl0J3Mgc2Vuc2l0aXZlIHRvIHRoZSBvcmRlciBvZiB0aGUgY2hhcmFjdGVycy4KKyAqIEl0IHByb2R1Y2VzIGEgMzIgYml0CisgKiAKKyAqIEBhdXRob3IgTWljaGFlbCBMZWN1eWVyIChtamxAdGhlb3JlbS5jb20pCisgKiBAdmVyc2lvbiAxLjEgQXVndXN0IDExLCAxOTk4CisgKi8KKyAKKy8qIElDVSBpcyBub3QgZW5kaWFuIHBvcnRhYmxlLCBiZWNhdXNlIElDVSBkYXRhIGdlbmVyYXRlZCBvbiBiaWcgZW5kaWFuIG1hY2hpbmVzIGNhbiBiZQorICogcG9ydGVkIHRvIGJpZyBlbmRpYW4gbWFjaGluZXMgYnV0IG5vdCB0byBsaXR0bGUgZW5kaWFuIG1hY2hpbmVzIGFuZCB2aWNlIHZlcnNhLiBUaGUgCisgKiBjb252ZXJzaW9uIGlzIG5vdCBwb3J0YWJsZSBhY3Jvc3MgcGxhdGZvcm1zIHdpdGggZGlmZmVyZW50IGVuZGlhbmVzcy4gCisgKi8KKyAKK3B1YmxpYyBjbGFzcyBDYWxjdWxhdGVDUkMzMiB7CisgICAgc3RhdGljIGludCBDUkNUYWJsZVtdOworICAgIHN0YXRpYyBpbnQgY3JjOworCisgICAgc3RhdGljIHZvaWQgYnVpbGRDUkNUYWJsZSgpIHsKKyAgICAgICAgZmluYWwgaW50IENSQzMyX1BPTFlOT01JQUwgPSAweEVEQjg4MzIwOworICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgaW50IGNyYzsKKyAgICAgICAgQ1JDVGFibGUgPSBuZXcgaW50WzI1Nl07CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8PSAyNTU7IGkrKykgeworICAgICAgICAgICAgY3JjID0gaTsKKyAgICAgICAgICAgIGZvciAoaiA9IDg7IGogPiAwOyBqLS0pIHsKKyAgICAgICAgICAgICAgICBpZiAoKGNyYyAmIDEpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY3JjID0gKGNyYyA+Pj4gMSkgXiBDUkMzMl9QT0xZTk9NSUFMOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNyYyA+Pj49IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgQ1JDVGFibGVbaV0gPSBjcmM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wdXRlQ1JDMzIoU3RyaW5nIGJ1ZmZlcikgeworICAgICAgICByZXR1cm4gY29tcHV0ZUNSQzMyKGJ1ZmZlciwgMHhGRkZGRkZGRik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcHV0ZUNSQzMyKGJ5dGUgYnVmZmVyW10pIHsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVDUkMzMihidWZmZXIsIDB4RkZGRkZGRkYpOworICAgIH0KKyAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXB1dGVDUkMzMihTdHJpbmcgYnVmZmVyLCBpbnQgY3JjKXsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVDUkMzMihidWZmZXIuZ2V0Qnl0ZXMoKSwgY3JjKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wdXRlQ1JDMzIoYnl0ZSBidWZmZXJbXSwgaW50IGNyYykgeworICAgICAgICByZXR1cm4gY29tcHV0ZUNSQzMyKGJ1ZmZlciwgMCwgYnVmZmVyLmxlbmd0aCwgY3JjKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wdXRlQ1JDMzIoYnl0ZSBidWZmZXJbXSwgaW50IHN0YXJ0LCBpbnQgY291bnQsIGludCBsYXN0Y3JjKXsKKyAgICAgICAgYnVpbGRDUkNUYWJsZSgpOyAgCisgICAgICAgIGludCB0ZW1wMSwgdGVtcDI7CisgICAgICAgIGludCBpID0gc3RhcnQ7CisgICAgICAgIGNyYyA9IGxhc3RjcmM7CisgICAgICAKKyAgICAgICAgd2hpbGUgKGNvdW50LS0gIT0gMCl7CisgICAgICAgICAgICB0ZW1wMSA9IGNyYyA+Pj4gODsKKyAgICAgICAgICAgIGJ5dGUgcyA9IGJ1ZmZlcltpKytdOworICAgICAgICAgICAgdGVtcDIgPSBDUkNUYWJsZVsoY3JjIF5zKSAmIDB4RkZdOworICAgICAgICAgICAgY3JjID0gdGVtcDEgXiB0ZW1wMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY3JjOworICAgIH0KKworICAgIHB1YmxpYyBieXRlIFtdIHRvQnl0ZXMoKSB7CisgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihuZXcgSW50ZWdlcihjcmMpLnRvU3RyaW5nKCkpLnRvQnl0ZUFycmF5KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db2xsYXRpb25JdGVtLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbGxhdGlvbkl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NmYzZTQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db2xsYXRpb25JdGVtLmphdmEKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCisKKy8qKgorICogQSBDb2xsYXRpb25JdGVtIHJlcHJlc2VudHMgYSBzaW5nbGUgZW50cnkgaW4gYSBjb2xsYXRpb24gc2VxdWVuY2UuCisgKi8KK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25JdGVtIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gT1BfQ0hBUlMgPSB7Jz0nLCAnPCcsICc7JywgJywnLCAnJicgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gU1BFQ0lBTF9DSEFSUyA9IHsgJyYnLCAnQCcgLCAnPScsICc8JywgJzsnLCAnLCcgfTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklNQVJZID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUNPTkRBUlkgPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUlRJQVJZID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklSU1QgPSA0OworICAgIHB1YmxpYyBpbnQgb3A7CisgICAgcHVibGljIFN0cmluZyBpdGVtOworICAgIHB1YmxpYyBTdHJpbmcgZXhwYW5zaW9uOworICAgIHB1YmxpYyBTdHJpbmcgY29tbWVudDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdGlvbkl0ZW0gRk9SV0FSRCA9IG5ldyBDb2xsYXRpb25JdGVtKE5PTkUsICIiKSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiAiIjsgfQorICAgIH07CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRpb25JdGVtIEJBQ0tXQVJEID0gbmV3IENvbGxhdGlvbkl0ZW0oTk9ORSwgIiIpIHsKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuICJAIjsgfQorICAgIH07CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkl0ZW0oU3RyaW5nIGl0ZW0pIHsKKyAgICAgICAgdGhpcy5vcCA9IEZJUlNUOworICAgICAgICB0aGlzLml0ZW0gPSBjbGVhblN0cmluZyhpdGVtKTsKKyAgICAgICAgdGhpcy5leHBhbnNpb24gPSAiIjsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkl0ZW0oaW50IG9wLCBTdHJpbmcgaXRlbSkgeworICAgICAgICB0aGlzKG9wLCBpdGVtLCBudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkl0ZW0oaW50IG9wLCBTdHJpbmcgaXRlbSwgU3RyaW5nIGV4cGFuc2lvbikgeworICAgICAgICB0aGlzLm9wID0gTWF0aC5hYnMob3ApOworICAgICAgICBpZiAodGhpcy5vcCA+IFRFUlRJQVJZKSB0aGlzLm9wID0gVEVSVElBUlk7CisgICAgICAgIHRoaXMuaXRlbSA9IGNsZWFuU3RyaW5nKFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZShpdGVtKSk7CisgICAgICAgIHRoaXMuZXhwYW5zaW9uID0gY2xlYW5TdHJpbmcoUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKGV4cGFuc2lvbikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRDb21tZW50KFN0cmluZyBjb21tZW50KSB7CisgICAgICAgIHRoaXMuY29tbWVudCA9IGNvbW1lbnQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIGlmIChleHBhbnNpb24ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuICIiK09QX0NIQVJTW29wXStpdGVtOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICImIitleHBhbnNpb24rT1BfQ0hBUlNbb3BdK2l0ZW07CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgY2xlYW5TdHJpbmcoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiAiIjsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHNvdXJjZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgZmluYWwgY2hhciBjID0gcmVzdWx0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgoYyA9PSAnQCcpIHx8IChjID09ICdcdCcpIHx8IChjID09ICdcbicpCisgICAgICAgICAgICAgICAgICAgIHx8IChjID09ICdcZicpIHx8IChjID09J1xyJykgfHwgKGMgPT0gJ1wwMTMnKQorICAgICAgICAgICAgICAgICAgICB8fCAoKGMgPD0gJ1x1MDAyRicpICYmIChjID49ICdcdTAwMjAnKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgKChjIDw9ICdcdTAwM0YnKSAmJiAoYyA+PSAnXHUwMDNBJykpCisgICAgICAgICAgICAgICAgICAgIHx8ICgoYyA8PSAnXHUwMDYwJykgJiYgKGMgPj0gJ1x1MDA1QicpKQorICAgICAgICAgICAgICAgICAgICB8fCAoKGMgPD0gJ1x1MDA3RScpICYmIChjID49ICdcdTAwN0InKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA8IHJlc3VsdC5sZW5ndGgoKS0xKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcXCIgKyBjIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcmVzdWx0LnN1YnN0cmluZyhpKzEpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcXCIgKyBjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpICs9IDI7IC8vc2tpcCB0aGUgdHdvIGNoYXJhY3RlcnMgd2UgaW5zZXJ0ZWQKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBhcmFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllZjcwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBhcmFibGUuamF2YQpAQCAtMCwwICsxLDE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK3B1YmxpYyBpbnRlcmZhY2UgQ29tcGFyYWJsZSB7CisgICAgLyoqCisgICAgICAgIHJldHVybnMgMCBpZiBvYmplY3RzIGFyZSBlcXVhbCwgLTEgaWYgYSBpcyBsZXNzIHRoYW4gYiwgMSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgYik7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBhcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMjM3Y2MzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhdG9yLmphdmEKQEAgLTAsMCArMSwxNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitwdWJsaWMgaW50ZXJmYWNlIENvbXBhcmF0b3IgeworICAgIC8qKgorICAgICAgICByZXR1cm5zIDAgaWYgb2JqZWN0cyBhcmUgZXF1YWwsIC0xIGlmIGEgaXMgbGVzcyB0aGFuIGIsIDEgb3RoZXJ3aXNlLgorICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYik7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBsZXhUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBsZXhUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGMyODdlMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGxleFRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDY2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQSBDb21wbGV4VHJhbnNpdGlvbiBpcyBjb25jZXB0dWFsbHkgYSBzaW5nbGUgdHJhbnNpdGlvbiB0aGF0CisgKiBjb25zdW1lcyBtdWx0aXBsZSBpbnB1dCBjaGFyYWN0ZXJzLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ29tcGxleFRyYW5zaXRpb24gaW1wbGVtZW50cyBMZXguVHJhbnNpdGlvbiB7CisgICAgICAgIC8vdGhlIHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQgYnkgc3ViY2xhc3NlcyBpbmRpY2F0aW5nIHRoYXQKKyAgICAgICAgLy90aGUgdHJhbnNpdGlvbiB3YXMgc3VjY2Vzc2Z1bGwuICBUaGlzIHZhbHVlIGlzIHRoZW4KKyAgICAgICAgLy9kaXNjYXJkZWQgYW5kIHRoZSB2YWx1ZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yCisgICAgICAgIC8vaXMgdGhlbiByZXR1cm5lZCB0byB0aGUgY2FsbGVyLgorICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNVQ0NFU1MgPSBMZXguRU5EX09GX0ZJTEUgLSAxOworICAgIHByaXZhdGUgaW50IHN1Y2Nlc3M7ICAgIC8vdmFsdWUgdG8gcmV0dXJuIGlmIHN1Y2Nlc3NmdWxsCisgICAgcHJpdmF0ZSBMZXggcGFyc2VyOyAgICAgLy90aGUgcGFyc2VyIHVzZWQgZm9yIHRoaXMgdHJhbnNpdGlvbgorICAgICAgICAKKyAgICBwdWJsaWMgQ29tcGxleFRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgdGhpcy5zdWNjZXNzID0gc3VjY2VzczsKKyAgICAgICAgdGhpcy5wYXJzZXIgPSBuZXcgTGV4KG51bGwpOworICAgICAgICAvL3RoaXMucGFyc2VyLmRlYnVnKHRydWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGRvQWN0aW9uKGludCBjLCBQdXNoYmFja1JlYWRlciBpbnB1dCwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW5wdXQudW5yZWFkKGMpOworICAgICAgICBwYXJzZXIuc2V0U3RhdGVzKGdldFN0YXRlcygpKTsKKyAgICAgICAgcGFyc2VyLnNldElucHV0KGlucHV0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIGhhbmRsZVN1Y2Nlc3MocGFyc2VyLCBidWZmZXIpOworICAgICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGhhbmRsZUZhaWx1cmUocGFyc2VyLCBidWZmZXIpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgICAgICAvL2NhbGxlZCBhZnRlciBhIHN1Y2Nlc3NmdWwgcGFyc2UKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTdWNjZXNzKExleCBwYXJzZXIsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHBhcnNlci5hcHBlbmREYXRhVG8ob3V0cHV0KTsKKyAgICB9CisgICAgCisgICAgICAgIC8vY2FsbGVkIGFmdGVyIGEgZmFpbGVkIHBhcnNlCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlRmFpbHVyZShMZXggcGFyc2VyLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgfQorICAgIAorICAgICAgICAvL3N1YmNsYXNzZXMgc2hvdWxkIHJldHVybiB0aGUgc3RhdGVzIHRvIHVzZSB0byBwYXJzZSB0aGlzCisgICAgICAgIC8vdHJhbnNpdGlvbgorICAgIHByb3RlY3RlZCBhYnN0cmFjdCBMZXguVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCk7CisKKyAgICBwdWJsaWMgQ29tcGxleFRyYW5zaXRpb24gZGVidWcoYm9vbGVhbiBkZWJ1ZykgeworICAgICAgICBwYXJzZXIuZGVidWcoZGVidWcpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbXBsZXhUcmFuc2l0aW9uIGRlYnVnKGJvb2xlYW4gZGVidWcsIFN0cmluZyB0YWcpIHsKKyAgICAgICAgcGFyc2VyLmRlYnVnKGRlYnVnLCB0YWcpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRBbGxKYXZhTG9jYWxlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0QWxsSmF2YUxvY2FsZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYTBkZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0QWxsSmF2YUxvY2FsZXMuamF2YQpAQCAtMCwwICsxLDk1IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorCitUaGUgQ29udmVydEphdmFMb2NhbGUgYXBwbGljYXRpb24gY29udmVydHMgamF2YSBsb2NhbGVzIHRvIAorSmF2YSBhbmQgSUNVIExvY2FsZSBmaWxlcy4gIEl0J3MgdXNhZ2UgaXMgYXMgZm9sbG93cworCisgICAgQ29udmVydEphdmFMb2NhbGUgWy0xMV0gWy0xMl0gWy1pY3VdIGxvY2FsZS4uLgorCitVc2FnZQorCistMTEKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluIAorICAgIEphdmEgMS4xLnggbG9jYWxlIGZvcm1hdC4KKyAgICAKKy0xMgorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4KKyAgICBKYXZhIDEuMi54IGxvY2FsZSBmb3JtYXQuICBJZiBhbiBvdXRwdXQgZm9ybWF0CisgICAgaXMgbm90IHNwZWNpZmllZCwgLTEyIGlzIHRoZSBkZWZhdWx0LgorICAgIAorLWljdQorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4KKyAgICBJQ1UgbG9jYWxlIGZvcm1hdC4KKworbG9jYWxlCisgICAgVGhlIGxvY2FsZSB0byBjb252ZXJ0CisKKworKi8KKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwdWJsaWMgY2xhc3MgQ29udmVydEFsbEphdmFMb2NhbGVzIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXcgQ29udmVydEFsbEphdmFMb2NhbGVzKGFyZ3MpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbmtub3duIGVycm9yOiAiK3QpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb252ZXJ0QWxsSmF2YUxvY2FsZXMoU3RyaW5nIGFyZ3NJbltdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgcGFja2FnZU5hbWUgPSBhcmdzSW5bMF07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgaXMgdGhlIHBhY2thZ2VuYW1lIDogIitwYWNrYWdlTmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgY2xhc3NuYW1lID0gcGFja2FnZU5hbWUrIi5Mb2NhbGUiOworICAgICAgICAgICAgLy9jbGFzc25hbWUuY29uY2F0KCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgaXMgdGhlIGNsYXNzbmFtZSA6ICIrY2xhc3NuYW1lKTsKKyAgICAgICAgICAvKiAgQ2xhc3MgY2wgPSBDbGFzcy5mb3JOYW1lKGNsYXNzbmFtZSk7CisgICAgICAgICAgICBDbGFzc1tdIHBhcmFtTGlzdD1udWxsOworICAgICAgICAgICAgTWV0aG9kIGd2bCA9IGNsLmdldE1ldGhvZCgiZ2V0QXZhaWxhYmxlTG9jYWxlcyIsIHBhcmFtTGlzdCk7CisgICAgICAgICAgICBPYmplY3RbXSBwYXJhbXMgPSBuZXcgT2JqZWN0W117IiJ9OworICAgICAgICAgICAgZ3ZsLmludm9rZShudWxsLHBhcmFtcyk7Ki8KKyAgICAgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvY2FsZXMgPSBqYXZhLnV0aWwuTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsvLyhMb2NhbGVbXSlndmwuaW52b2tlKG51bGwscGFyYW1zKTs7CisgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbG9jYWxlTmFtZSA9IGxvY2FsZXNbaV0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXSBhcmdzID0geyItcGFja2FnZSIscGFja2FnZU5hbWUsIi1pY3UiLCBsb2NhbGVOYW1lfTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbnZlcnRpbmcgIitsb2NhbGVOYW1lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmaW5hbCBGaWxlT3V0cHV0U3RyZWFtIG91dEZpbGUgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShsb2NhbGVOYW1lICsgIi50eHQiKTsKKyAgICAgICAgICAgICAgICBmaW5hbCBQcmludFN0cmVhbSBvdXQgPSBuZXcgUHJpbnRTdHJlYW0ob3V0RmlsZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbmV3IENvbnZlcnRKYXZhTG9jYWxlKGFyZ3MsIG91dCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbnZlcnRpbmcgcm9vdCBsb2NhbGUiKTsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFyZ3MgPSB7Ii1wYWNrYWdlIixwYWNrYWdlTmFtZSwiLWljdSIsInJvb3QifTsKKyAgICAgICAgICAgIGZpbmFsIEZpbGVPdXRwdXRTdHJlYW0gb3V0RmlsZSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKCJyb290LnR4dCIpOworICAgICAgICAgICAgZmluYWwgUHJpbnRTdHJlYW0gb3V0ID0gbmV3IFByaW50U3RyZWFtKG91dEZpbGUsIHRydWUpOworICAgICAgICAgICAgbmV3IENvbnZlcnRKYXZhTG9jYWxlKGFyZ3MsIG91dCk7CisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbmV4cGVjdGVkIElPIGVycm9yIik7CisgICAgICAgIH1jYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZDIxM2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YQpAQCAtMCwwICsxLDE2NSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhpcyBnZW5lcmF0ZWQgY29tbWVudCBlZGl0IHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZSAidHlwZWNvbW1lbnQiOgorICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+VGVtcGxhdGVzLgorICogVG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBjcmVhdGlvbiBvZiB0eXBlIGNvbW1lbnRzIGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBDb252ZXJ0SUNVTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF8xMSA9IChieXRlKTB4MDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfMTIgPSAoYnl0ZSkweDAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX0lDVSA9IChieXRlKTB4MDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfUEFDS0FHRSA9IChieXRlKTB4MDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfQlVORExFID0gKGJ5dGUpMHgxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9VTktOT1dOID0gKGJ5dGUpMHg4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9PUFRJT05TW10gPSB7CisgICAgICAgICItMTEiLCAKKyAgICAgICAgIi0xMiIsIAorICAgICAgICAiLWljdSIsCisgICAgICAgICItcGFja2FnZSIsCisgICAgICAgICItYnVuZGxlLW5hbWUiCisgICAgfTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXcgQ29udmVydElDVUxpc3RSZXNvdXJjZUJ1bmRsZShhcmdzLCBTeXN0ZW0ub3V0KTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5rbm93biBlcnJvcjogIit0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29udmVydElDVUxpc3RSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYXJnc1tdLCBQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgcHJvY2VzcyhhcmdzLCBvdXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzKFN0cmluZyBhcmdzW10sIFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzaG9ydCBvcHRpb25zID0gaWRlbnRpZnlPcHRpb25zKGFyZ3MpOworICAgICAgICBpZiAoKGFyZ3MubGVuZ3RoIDwgMSkgfHwgKChvcHRpb25zICYgT1BUX1VOS05PV04pICE9IDApKSB7CisgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgcGFja2FnZW5hbWUgPSBudWxsOworICAgICAgICAgICAgU3RyaW5nIGJ1bmRsZU5hbWUgPSBudWxsOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgLy9maW5hbCBTdHJpbmcgdGhpc0FyZyA9IGFyZ3NbaV07CisKKyAgICAgICAgICAgICAgICBpZihhcmdzW2ldLmVxdWFsc0lnbm9yZUNhc2UoIi1wYWNrYWdlIikpeworICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICBwYWNrYWdlbmFtZSA9IGFyZ3NbaV07CisgICAgICAgICAgICAgICAgfWVsc2UgaWYoYXJnc1tpXS5lcXVhbHNJZ25vcmVDYXNlKCItaWN1IikpeworICAgICAgICAgICAgICAgIH1lbHNlIGlmICghYXJnc1tpXS5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlTmFtZSA9IGFyZ3NbaV07CisgICAgICAgICAgICAgICAgfWVsc2UgaWYoYXJnc1tpXS5lcXVhbHNJZ25vcmVDYXNlKCItYnVuZGxlLW5hbWUiKSl7CisgICAgICAgICAgICAgICAgICAgIGJ1bmRsZU5hbWUgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluYWwgSGFzaHRhYmxlIGRhdGEgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbG9jYWxlRWxlbWVudHMgPSBwYWNrYWdlbmFtZQorICAgICAgICAgICAgICAgICAgICArIChTdHJpbmcpKChidW5kbGVOYW1lICE9IG51bGwpID8gIi4iKyBidW5kbGVOYW1lIDogIi5Mb2NhbGVFbGVtZW50cyIgKQorICAgICAgICAgICAgICAgICAgICArIChTdHJpbmcpKChsb2NhbGVOYW1lICE9IG51bGwpID8gIl8iKyBsb2NhbGVOYW1lIDogIiIpOworCisgICAgICAgICAgIC8vIGZpbmFsIFN0cmluZyBEYXRlRm9ybWF0Wm9uZURhdGEgPSBwYWNrYWdlbmFtZSsiLkRhdGVGb3JtYXRab25lRGF0YSIgKworICAgICAgICAgICAvLyAgICAgICAgIChTdHJpbmcpKChsb2NhbGVOYW1lICE9IG51bGwpID8gIl8iK2xvY2FsZU5hbWUgOiAiIik7CisKKyAgICAgICAgICAgIGFkZExvY2FsZURhdGEobG9jYWxlRWxlbWVudHMsIGRhdGEpOworICAgICAgICAgICAgLy9hZGRMb2NhbGVEYXRhKERhdGVGb3JtYXRab25lRGF0YSwgZGF0YSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGU7CisgICAgICAgICAgICBpZihsb2NhbGVOYW1lPT1udWxsKXsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGVGcm9tU3RyaW5nKCJyb290Iik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGVGcm9tU3RyaW5nKGxvY2FsZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzExKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbmV3IEphdmExTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF8xMikgIT0gMCkgeworICAgICAgICAgICAgICAgIG5ldyBKYXZhTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9JQ1UpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgbmV3IElDVTNMb2NhbGVXcml0ZXIoZ2V0QnVuZGxlKGxvY2FsZUVsZW1lbnRzKSxvdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBMaXN0UmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlKGZpbmFsIFN0cmluZyBidW5kbGVDbGFzc05hbWUpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgQ2xhc3MgYnVuZGxlQ2xhc3MgPSBDbGFzcy5mb3JOYW1lKGJ1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICBmaW5hbCBMaXN0UmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKExpc3RSZXNvdXJjZUJ1bmRsZSlidW5kbGVDbGFzcy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgcmV0dXJuIGJ1bmRsZTsKKworICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ291bGQgbm90IGZpbmQgYnVuZGxlIGNsYXNzIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBjcmVhdGUgYnVuZGxlIGluc3RhbmNlIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBjcmVhdGUgYnVuZGxlIGluc3RhbmNlIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGFkZExvY2FsZURhdGEoZmluYWwgU3RyaW5nIGJ1bmRsZUNsYXNzTmFtZSwgZmluYWwgSGFzaHRhYmxlIGRhdGEpIHsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gZ2V0QnVuZGxlKGJ1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgIEVudW1lcmF0aW9uIGtleXMgPSBidW5kbGUuZ2V0S2V5cygpOworICAgICAgICB3aGlsZShrZXlzLmhhc01vcmVFbGVtZW50cygpKXsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBrZXlzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgbyA9IGJ1bmRsZS5nZXRPYmplY3Qoa2V5KTsKKyAgICAgICAgICAgIGRhdGEucHV0KGtleSwgbyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHByaW50VXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVXNhZ2U6IENvbnZlcnRJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgWy0xMV0gWy0xMl0gWy1pY3VdIFstcGFja2FnZV0gPHBhY2thZ2UgbmFtZT4gWy1idW5kbGUtbmFtZV0gPGJ1bmRsZSBuYW1lPiBsb2NhbGVOYW1lIik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc2hvcnQgaWRlbnRpZnlPcHRpb25zKFN0cmluZ1tdIG9wdGlvbnMpIHsKKyAgICAgICAgc2hvcnQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBvcHRpb25zLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICBTdHJpbmcgb3B0aW9uID0gb3B0aW9uc1tqXTsKKyAgICAgICAgICAgIGlmIChvcHRpb24uc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBvcHRpb25SZWNvZ25pemVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yIChzaG9ydCBpID0gMDsgaSA8IFVTRVJfT1BUSU9OUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoVVNFUl9PUFRJT05TW2ldLmVxdWFscyhvcHRpb24pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gKHNob3J0KSgxIDw8IGkpOworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uUmVjb2duaXplZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIW9wdGlvblJlY29nbml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IE9QVF9VTktOT1dOOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGVGcm9tU3RyaW5nKGZpbmFsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIGlmIChsb2NhbGVOYW1lID09IG51bGwpIHJldHVybiBuZXcgTG9jYWxlKCIiLCAiIiwgIiIpOworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsb2NhbGVOYW1lOworICAgICAgICBTdHJpbmcgY291bnRyeSA9ICIiOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IG5keCA9IGxhbmd1YWdlLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRKYXZhTG9jYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRKYXZhTG9jYWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2U0MWVmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEphdmFMb2NhbGUuamF2YQpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKworVGhlIENvbnZlcnRKYXZhTG9jYWxlIGFwcGxpY2F0aW9uIGNvbnZlcnRzIGphdmEgbG9jYWxlcyB0byAKK0phdmEgYW5kIElDVSBMb2NhbGUgZmlsZXMuICBJdCdzIHVzYWdlIGlzIGFzIGZvbGxvd3MKKworICAgIENvbnZlcnRKYXZhTG9jYWxlIFstMTFdIFstMTJdIFstaWN1XSBbLXBhY2thZ2VdIGxvY2FsZS4uLgorCitVc2FnZQorCistMTEKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluIAorICAgIEphdmEgMS4xLnggbG9jYWxlIGZvcm1hdC4KKyAgICAKKy0xMgorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4KKyAgICBKYXZhIDEuMi54IGxvY2FsZSBmb3JtYXQuICBJZiBhbiBvdXRwdXQgZm9ybWF0CisgICAgaXMgbm90IHNwZWNpZmllZCwgLTEyIGlzIHRoZSBkZWZhdWx0LgorICAgIAorLWljdQorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4KKyAgICBJQ1UgbG9jYWxlIGZvcm1hdC4KKworbG9jYWxlCisgICAgVGhlIGxvY2FsZSB0byBjb252ZXJ0CisKKworKi8KKworcHVibGljIGNsYXNzIENvbnZlcnRKYXZhTG9jYWxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF8xMSA9IChieXRlKTB4MDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfMTIgPSAoYnl0ZSkweDAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX0lDVSA9IChieXRlKTB4MDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfUEFDS0FHRSA9IChieXRlKTB4MDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfVU5LTk9XTiA9IChieXRlKTB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfT1BUSU9OU1tdID0geworICAgICAgICAiLTExIiwgCisgICAgICAgICItMTIiLCAKKyAgICAgICAgIi1pY3UiLAorICAgICAgICAiLXBhY2thZ2UiCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSB0YWdzID0geworICAgICAgICAiTG9jYWxlU3RyaW5nIiwKKyAgICAgICAgIkxvY2FsZUlEIiwKKyAgICAgICAgIlNob3J0TGFuZ3VhZ2UiLAorICAgICAgICAiU2hvcnRDb3VudHJ5IiwKKyAgICAgICAgIkxhbmd1YWdlcyIsCisgICAgICAgICJDb3VudHJpZXMiLAorICAgICAgICAiTW9udGhOYW1lcyIsCisgICAgICAgICJNb250aEFiYnJldmlhdGlvbnMiLAorICAgICAgICAiRGF5TmFtZXMiLAorICAgICAgICAiRGF5QWJicmV2aWF0aW9ucyIsCisgICAgICAgICJBbVBtTWFya2VycyIsCisgICAgICAgICJFcmFzIiwKKyAgICAgICAgIk51bWJlclBhdHRlcm5zIiwKKyAgICAgICAgIk51bWJlckVsZW1lbnRzIiwKKyAgICAgICAgIkN1cnJlbmN5RWxlbWVudHMiLAorICAgICAgICAiRGF0ZVRpbWVQYXR0ZXJucyIsCisgICAgICAgICJEYXRlVGltZUVsZW1lbnRzIiwgICAKKyAgICAgICAgImNvbGxhdGlvbnMiLAorICAgICAgICAiem9uZVN0cmluZ3MiLAorICAgICAgICAibG9jYWxQYXR0ZXJuQ2hhcnMiLAorICAgIH07CisKKworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmV3IENvbnZlcnRKYXZhTG9jYWxlKGFyZ3MsIFN5c3RlbS5vdXQpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbmtub3duIGVycm9yOiAiK3QpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb252ZXJ0SmF2YUxvY2FsZShTdHJpbmcgYXJnc1tdLCBQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgcHJvY2VzcyhhcmdzLCBvdXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzKFN0cmluZyBhcmdzW10sIFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzaG9ydCBvcHRpb25zID0gaWRlbnRpZnlPcHRpb25zKGFyZ3MpOworICAgICAgICBpZiAoKGFyZ3MubGVuZ3RoIDwgMSkgfHwgKChvcHRpb25zICYgT1BUX1VOS05PV04pICE9IDApKSB7CisgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgcGFja2FnZW5hbWUgPSBudWxsOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoYXJnc1tpXS5lcXVhbHNJZ25vcmVDYXNlKCItcGFja2FnZSIpKXsKKyAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgcGFja2FnZW5hbWUgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKGFyZ3NbaV0uZXF1YWxzSWdub3JlQ2FzZSgiLWljdSIpKXsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoIWFyZ3NbaV0uc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU5hbWUgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsIEhhc2h0YWJsZSBkYXRhID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIGxvY2FsZUVsZW1lbnRzOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRhdGVGb3JtYXRab25lRGF0YTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYobG9jYWxlTmFtZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICBpZighbG9jYWxlTmFtZS5lcXVhbHMoInJvb3QiKSl7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZUVsZW1lbnRzID0gcGFja2FnZW5hbWUrIi5Mb2NhbGVFbGVtZW50cyIgKyJfIitsb2NhbGVOYW1lOworICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0Wm9uZURhdGEgPSBwYWNrYWdlbmFtZSsiLkRhdGVGb3JtYXRab25lRGF0YSIgKyAiXyIrbG9jYWxlTmFtZTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlRWxlbWVudHMgPSBwYWNrYWdlbmFtZSsiLkxvY2FsZUVsZW1lbnRzIjsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdFpvbmVEYXRhID0gcGFja2FnZW5hbWUrIi5EYXRlRm9ybWF0Wm9uZURhdGEiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGRMb2NhbGVEYXRhKGxvY2FsZUVsZW1lbnRzLCBkYXRhKTsKKyAgICAgICAgICAgIGFkZExvY2FsZURhdGEoZGF0ZUZvcm1hdFpvbmVEYXRhLCBkYXRhKTsKKyAgICAgICAgICAgIGZpbmFsIExvY2FsZSBsb2NhbGUgPSBsb2NhbGVGcm9tU3RyaW5nKGxvY2FsZU5hbWUpOworICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzExKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbmV3IEphdmExTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF8xMikgIT0gMCkgeworICAgICAgICAgICAgICAgIG5ldyBKYXZhTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9JQ1UpICE9IDApIHsKKyAgICAgICAgICAgICAgICBuZXcgSUNVTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhZGRMb2NhbGVEYXRhKGZpbmFsIFN0cmluZyBidW5kbGVDbGFzc05hbWUsIGZpbmFsIEhhc2h0YWJsZSBkYXRhKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBDbGFzcyBidW5kbGVDbGFzcyA9IENsYXNzLmZvck5hbWUoYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIGZpbmFsIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChSZXNvdXJjZUJ1bmRsZSlidW5kbGVDbGFzcy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0IHJlc291cmNlID0gYnVuZGxlLmdldE9iamVjdCh0YWdzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXQodGFnc1tpXSwgcmVzb3VyY2UpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ291bGQgbm90IGZpbmQgYnVuZGxlIGNsYXNzIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBjcmVhdGUgYnVuZGxlIGluc3RhbmNlIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBjcmVhdGUgYnVuZGxlIGluc3RhbmNlIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRVc2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogQ29udmVydEphdmFMb2NhbGUgWy0xMV0gWy0xMl0gWy1pY3VdIFstcGFja2FnZV0gPHBhY2thZ2UgbmFtZT4gbG9jYWxlTmFtZSIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHNob3J0IGlkZW50aWZ5T3B0aW9ucyhTdHJpbmdbXSBvcHRpb25zKSB7CisgICAgICAgIHNob3J0IHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgb3B0aW9ucy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgU3RyaW5nIG9wdGlvbiA9IG9wdGlvbnNbal07CisgICAgICAgICAgICBpZiAob3B0aW9uLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gb3B0aW9uUmVjb2duaXplZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoc2hvcnQgaSA9IDA7IGkgPCBVU0VSX09QVElPTlMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVTRVJfT1BUSU9OU1tpXS5lcXVhbHMob3B0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IChzaG9ydCkoMSA8PCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblJlY29nbml6ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25SZWNvZ25pemVkKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSBPUFRfVU5LTk9XTjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlRnJvbVN0cmluZyhmaW5hbCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBpZiAobG9jYWxlTmFtZSA9PSBudWxsKSByZXR1cm4gbmV3IExvY2FsZSgiIiwgIiIsICIiKTsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlTmFtZTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0TG9jYWxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0TG9jYWxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwYWRhOWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRMb2NhbGVUZXN0LmphdmEKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCisvKgorCitDb252ZXJ0UE9TSVhMb2NhbGUgWy0xMV0gWy0xMl0gWy1pY3VdIFstaWN1Ml0gbG9jYWxlRGF0YUZpbGUgW2NoYXJNYXBGaWxlIC4uLl0KKworKi8KKworcHVibGljIGNsYXNzIENvbnZlcnRMb2NhbGVUZXN0IHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisvKgorICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxjb2xsYXRpb25UZXN0LnR4dCIKKyAgICAgICAgfSApOyAgICAKKyAKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXGNvbGxhdGlvblRlc3QyLnR4dCIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSApOworCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi1pY3UiLCAiLUxDX01FU1NBR0VTIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcVml2bng0My5pYm0iLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcaWJtMTEyOS0yLVVuaUNvZGUuY2htIiwKKyAgICAgICAgfSApOworLyogICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGVuX1VTIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKy8qICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLTEyIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcUE9TSVhMb2NhbGVzXFxmaV9GSSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSk7CisKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLTEyIiwgImVuX0JFIiwgCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXEVOQkVXSU4uSUJNIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElibTEyNTIuY2htIiwKKyAgICAgICAgfSk7CisKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLTEyIiwgInZpX1ZOIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcVml2bng0My5pYm0iLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcaWJtMTEyOS0yLVVuaUNvZGUuY2htIiwKKyAgICAgICAgfSk7CisKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsICJmcl9GUiIsIAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGZyX0ZSIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwgImZvX0ZPIiwgCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZm9fRk8iLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworKi8KKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsICJmcl9MVSIsIAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGZyX0xVIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKy8qCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi1pY3UiLCAiZGVfTFUiLCAKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcUE9TSVhMb2NhbGVzXFxkZV9MVSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSk7CisqLworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRQT1NJWExvY2FsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0UE9TSVhMb2NhbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOTJjMzIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0UE9TSVhMb2NhbGUuamF2YQpAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKworVGhlIENvbnZlcnRQT1NJWExvY2FsZSBhcHBsaWNhdGlvbiBjb252ZXJ0cyBQT1NJWCBsb2NhbGUgZmlsZXMgdG8gCitKYXZhIGFuZCBJQ1UgTG9jYWxlIGZpbGVzLiAgSXQncyB1c2FnZSBpcyBhcyBmb2xsb3dzCisKKyAgICBDb252ZXJ0UE9TSVhMb2NhbGUgCisgICAgICAgIFstTENfQ1RZUEVdCisgICAgICAgIFstTENfVElNRV0KKyAgICAgICAgWy1MQ19OVU1FUklDXSAKKyAgICAgICAgWy1MQ19NT05FVEFSWV0gCisgICAgICAgIFstTENfTUVTU0FHRVNdIAorICAgICAgICBbLTExXSAKKyAgICAgICAgWy0xMl0gCisgICAgICAgIFstaWN1XQorICAgICAgICBbLWljdTJdCisgICAgICAgIGxvY2FsZU5hbWUKKyAgICAgICAgbG9jYWxlRGF0YUZpbGUgCisgICAgICAgIFtjaGFyTWFwRmlsZSAuLi5dCisgICAgICAgIAorVGhlIGFwcGxpY2F0aW9uIGlzIGludm9rZWQgd2l0aCBvcHRpb25zIHNwZWNpZnlpbmcgdGhlIGZvcm1hdChzKSBvZgordGhlIGxvY2FsZSBmaWxlKHMpIHRvIGdlbmVyYXRlIGFzIHdlbGwgYXMgdGhlIFBPU0lYIGxvY2FsZSBmaWxlIGFuZAorY2hhcmFjdGVyIG1hcHBpbmcgZmlsZXMuCisKK1VzYWdlCisKKy1MQ19DVFlQRQorICAgIElmIHRoZSAtTENfQ1RZUEUgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlCisgICAgZm9sbG93aW5nIGl0ZW1zIGFyZSBhZGRlZCB0byB0aGUgbG9jYWxlIGlmIHRoZXkKKyAgICBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOiB1cHBlciwgbG93ZXIsIGFscGhhLCBkaWdpdCwgCisgICAgc3BhY2UsIGNudHJsLCBwdW5jdCwgZ3JhcGgsIHByaW50LCB4ZGlnaXQsIGJsYW5rLCAKKyAgICB0b3VwcGVyLCB0b2xvd2VyLgorICAgIAorPENPREU+LUxDX1RJTUUKKyAgICBJZiB0aGUgLUxDX1RJTUUgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZworICAgIGl0ZW1zIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgUE9TSVggc291cmNlOgorICAgIGFiZGF5LCBkYXksIGFibW9uLCBtb24sIGRfdF9mbXQsIGRfZnRtLCB0X2ZtdCwgYW1fcG0sCisgICAgdF9mbXRfYW1wbSwgZXJhLCBlcmFfeWVhciwgZXJhX2RfZm10LCBhbHRfZGlnaXRzLgorICAgIAorLUxDX05VTUVSSUMKKyAgICBJZiB0aGUgLUxDX05VTUVSSUMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZworICAgIGl0ZW1zIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOgorICAgIGRlY2ltYWxfcG9pbnQsIHRob3VzYW5kc19zZXAsIGdyb3VwaW5nCisKKy1MQ19NT05FVEFSWQorICAgIElmIHRoZSAtTENfTU9ORVRBUlkgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZworICAgIGl0ZW1zIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOgorICAgIGludF9jdXJyX3N5bWJvbCwgY3VycmVuY3lfc3ltYm9sLCBtb25fZGVjaW1hbF9wb2ludCwKKyAgICBtb25fdGhvdXNhbmRzX3NlcCwgbW9uX2dyb3VwaW5nLCBwb3NpdGl2ZV9zaWduLCAKKyAgICBuZWdhdGl2ZV9zaWduLCBpbnRfZnJhY19kaWdpdHMsIGZyYWNfZGlnaXRzLCBwX2NzX3ByZWNlZGVzLAorICAgIHBfc2VwX2J5X3NwYWNlLCBuX2NzX3ByZWNlZGVzLCBuX3NlcF9ieV9zcGFjZSwgcF9zaWduX3Bvc24uCisKKy1MQ19NRVNTQUdFUworICAgIElmIHRoZSAtTENfTUVTU0FHRVMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlCisgICAgZm9sbG93aW5nIGl0ZW1zIGFyZSBhZGRlZCB0byB0aGUgbG9jYWxlIGlmIHRoZXkKKyAgICBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOiB5ZXNleHByLCBub2V4cHIKKworLTExCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbiAKKyAgICBKYXZhIDEuMS54IGxvY2FsZSBmb3JtYXQuCisgICAgCistMTIKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSmF2YSAxLjIueCBsb2NhbGUgZm9ybWF0LiAgSWYgYW4gb3V0cHV0IGZvcm1hdAorICAgIGlzIG5vdCBzcGVjaWZpZWQsIC0xMiBpcyB0aGUgZGVmYXVsdC4KKyAgICAKKy1pY3UKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSUNVIGxvY2FsZSBmb3JtYXQuCisKK2xvY2FsZU5hbWUKKyAgICBUaGUgbmFtZSBvZiB0aGUgbG9jYWxlIGluIHRoZSBsb2NhbGVEYXRhRmlsZS4gIEV4LiAgZW5fVVMuCisKK2xvY2FsZURhdGFGaWxlCisgICAgVGhlIGxvY2FsZURhdGFGaWxlIHBhdGggaXMgcmVxdWlyZWQgYW5kIHNwZWNpZmllcyB0aGUgcGF0aCAKKyAgICB0byB0aGUgbG9jYWxlIGRhdGEgZmlsZS4gIElmIGEgImNvcHkiIGRpcmVjdGl2ZSBpcyBlbmNvdW50ZXJlZCAKKyAgICB3aGlsZSBwcm9jZXNzaW5nIHRoZSBsb2NhbGVEYXRhRmlsZSwgQ29udmVydFBPU0lYTG9jYWxlIHdpbGwgbG9vaworICAgIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgbG9jYWxlRGF0YUZpbGUgZm9yIGFkZGl0aW9uYWwKKyAgICBQT1NJWCBsb2NhbGUgZGF0YSBmaWxlcy4gIEZpbGVzIG11c3QgYmUgaW4gdGhlIFBPU0lYIGZvcm1hdAorICAgIHNwZWNpZmllZCBpbiBJU08vSUVDIDk5NDUtIHdpdGggZXhjZXB0aW9ucyBub3RlZCBiZWxvdy4gIEV4YWN0bHkKKyAgICBvbmUgbG9jYWxlRGF0YUZpbGUgbXVzdCBiZSBzcGVjaWZpZWQuCisgICAgCitjaGFyTWFwRmlsZQorICAgIFplcm8gb3IgbW9yZSBjaGFyYWN0ZXIgbWFwcGluZyBmaWxlcyBtYXkgYmUgc3BlY2lmaWVkLiAgY2hhck1hcEZpbGVzIGFyZSB1c2VkCisgICAgdG8gbWFwIHN5bWJvbHMgaW4gdGhlIGxvY2FsZURhdGFGaWxlIHRvIFVuaWNvZGUgdmFsdWVzLiAgVGhleSBhcmUgcHJvY2Vzc2VkCisgICAgYXMgZm9sbG93cy4gIENvbnZlcnRQT1NJWExvY2FsZSBzZWFyY2hzIGZvciBhIGxpbmUgY29udGFpbmluZyBvbmx5IHRoZQorICAgIHdvcmQgIkNIQVJNQVAiIGFuZCByZWFkcyBzeW1ib2wgbWFwcGluZ3MgdW50aWwgaXQgcmVhY2hlcyBhIGxpbmUKKyAgICBjb250YWluaW5nIG9ubHkgdGhlIHdvcmRzICJFTkQgQ0hBUk1BUCIuICBTeW1ib2wgbWFwcGluZ3MgaGF2ZQorICAgIHRoZSBmb3JtICI8U1lNQk9MPiA8VWhoaGg+IiB3aGVyZSAiPFNZTUJPTD4iIGlzIGFueSBzeW1ib2wgdmFsaWQKKyAgICBpbiBhIGxvY2FsZURhdGFGaWxlIGFuZCAiaGhoaCIgaXMgZm91ciBoZXhpZGVjaW1hbCBkaWdpdHMgcmVwcmVzZW50aW5nCisgICAgdGhlIFVuaWNvZGUgdmFsdWUgZm9yIHRoYXQgc3ltYm9sLiAgU3Vycm9nYXRlIHBhaXJzIGFyZSBub3Qgc3VwcG9ydGVkCisgICAgaW4gY2hhck1hcEZpbGVzLiBBbiBleGFtcGxlIGNoYXJNYXBGaWxlIG1pZ2h0IGNvbnRhaW4gdGhlIGZvbGxvd2luZzoKKworICAgICAgICBDSEFSTUFQCisgICAgICAgIDxTVEFSVF9PRl9URVhUPiAgICAgICA8VTAwMDI+CisgICAgICAgIDxFPiAgICAgICAgICAgICAgICAgICA8VTAwNDU+CisgICAgICAgIDxxPiAgICAgICAgICAgICAgICAgICA8VTAwNzE+CisgICAgICAgIEVORCBDSEFSTUFQCisKKyAgICBzcGVjaWZ5aW5nIHRoYXQgdGhlIHN5bWJvbCA8U1RBUlRfT0ZfVEVYVD4gc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IAorICAgIHRoZSBVbmljb2RlIHZhbHVlIG9mIDB4MDAwMiB3aGVyZXZlciBpdCBvY2N1cnMuCisgICAgCisgICAgV2hlbiBtdWx0aXBsZSBjaGFyTWFwRmlsZXMgYXJlIHNwZWNpZmllZCwgbWFwcGluZ3MgaW4gZmlsZXMgbGlzdGVkIAorICAgIGxhdGVyIHRha2UgcHJlY2VkZW5jZSBvdmVyIGVhcmxpZXIgb25lcy4KKworCitDb252ZXJzaW9uIHRvIElDVSBhbmQgSmF2YToKKworY29sbGF0aW9ucworICAgIENvbnZlcnRlZCBmcm9tIHRoZSBMQ19DT0xMQVRFIHNlY3Rpb24uICBUaGUgIi4uLiIgZGlyZWN0aXZlIGlzIGlnbm9yZWQuCisgICAgVGhlICJyZXBsYWNlLWFmdGVyIiBkaXJlY3RpdmUgaXMgaWdub3JlZC4KKworQ3VycmVuY3lFbGVtZW50cworICAgIGVsZW1lbnQgMCBpcyBzZXQgdG8gY3VycmVuY3lfc3ltYm9sCisgICAgZWxlbWVudCAxIGlzIHNldCB0byBpbnRfY3Vycl9zeW1ib2wKKyAgICBlbGVtZW50IDIgaXMgc2V0IHRvIG1vbl9kZWNpbWFsX3BvaW50CisgICAgQWxsIG90aGVyIGVsZW1lbnRzIGRlZmF1bHQuCisgICAgCitOdW1iZXJFbGVtZW50cworICAgIGVsZW1lbnQgMCBpcyBzZXQgdG8gZGVjaW1hbF9wb2ludAorICAgIGVsZW1lbnQgMSBpcyBzZXQgdG8gdGhvdXNhbmRzX3NlcAorCitNb250aE5hbWVzIGlzIHNldCB0byBtb24KKworTW9udGhBYmJyZXZpYXRpb25zIGlzIHNldCB0byBhYm1vbgorCitEYXlOYW1lcyBpcyBzZXQgdG8gZGF5CisKK0RheUFiYnJldmlhdGlvbnMgaXMgc2V0IHRvIGFiZGF5CisKK0FtUG1NYXJrZXJzIGlzIHNldCB0byBhbV9wbQorCitEYXRlVGltZVBhdHRlcm5zCisgICAgZWxlbWVudHMgMCB0aHJvdWdoIDMgYXJlIHNldCB0byB0X2ZtdF9hbXBtIHdpdGggdGhlIHBhdHRlcm5zIGNvbnZlcnRlZAorICAgIGVsZW1lbnRzIDQgdGhyb3VnaCA3IGFyZSBzZXQgdG8gZF9mbXQgd2l0aCB0aGUgcGF0dGVybnMgY29udmVydGVkCisKKworQWRpdGlvbiBQT1NJWCBkYXRhIG1heSBiZSBpbmNsdWRlZCBpbiB0aGUgTG9jYWxlIGFzIGZvbGxvd3M6CisKK0xDX1RZUEUgCisgICAgVGhpcyBzZWN0aW9uIGlzIGlnbm9yZWQgdW5sZXNzIHRoZSAtTENfQ1RZUEUgb3B0aW9uIGlzCisgICAgc3BlY2lmaWVkLiAgSWYgdGhlIC1MQ19DVFlQRSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUKKyAgICBmb2xsb3dpbmcgaXRlbXMgYXJlIGFkZGVkIHRvIHRoZSBsb2NhbGUgaWYgdGhleQorICAgIGFyZSBwcmVzZW50IGluIHRoZSBzb3VyY2U6IHVwcGVyLCBsb3dlciwgYWxwaGEsIGRpZ2l0LCAKKyAgICBzcGFjZSwgY250cmwsIHB1bmN0LCBncmFwaCwgcHJpbnQsIHhkaWdpdCwgYmxhbmssIAorICAgIHRvdXBwZXIsIHRvbG93ZXIuCisKK0xDX01FU1NBR0VTCisgICAgCitMQ19NT05FVEFSWQorICAgIAorTENfTlVNRVJJQworCitMQ19USU1FCisgICAgSWYgdGhlIC1MQ19USU1FIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcKKyAgICBpdGVtcyB3aWxsIGJlIGluY2x1ZGVkIGlmIHRoZXkgYXJlIHByZXNlbnQgaW4gdGhlIHNvdXJjZToKKyAgICBhYmRheSwgZGF5LCBhYm1vbiwgbW9uLCBkX3RfZm10LCBkX2Z0bSwgdF9mbXQsIGFtX3BtLAorICAgIHRfZm10X2FtcG0sIGVyYSwgZXJhX3llYXIsIGVyYV9kX2ZtdCwgYWx0X2RpZ2l0cy4KKworTENfQ09MTEFURQorICAgIENvbnZlcnRlZCB0byBjb2xsYXRpb25zIGluIHRoZSByZXNvdXJjZSBmaWxlLgorICAgIAorICAgIAorKi8KKworcHVibGljIGNsYXNzIENvbnZlcnRQT1NJWExvY2FsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0xDX0NUWVBFID0gMHgwMDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0xDX1RJTUUgPSAweDAwMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfTENfTlVNRVJJQyA9IDB4MDA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9MQ19NT05FVEFSWSA9IDB4MDA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9MQ19NRVNTQUdFUyA9IDB4MDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF8xMSA9IDB4MDIwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF8xMiA9IDB4MDQwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9JQ1UgPSAweDA4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfSUNVMiA9IDB4MTAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9SQVcgPSAweDIwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfVU5LTk9XTiA9IDB4NDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9PUFRJT05TW10gPSB7CisgICAgICAgICItTENfQ1RZUEUiLCAKKyAgICAgICAgIi1MQ19USU1FIiwgCisgICAgICAgICItTENfTlVNRVJJQyIsIAorICAgICAgICAiLUxDX01PTkVUQVJZIiwKKyAgICAgICAgIi1MQ19NRVNTQUdFUyIsCisgICAgICAgICItMTEiLCAKKyAgICAgICAgIi0xMiIsIAorICAgICAgICAiLWljdSIsIAorICAgICAgICAiLWljdTIiLCAKKyAgICAgICAgIi1SQVciLAorICAgICAgICAiLWVuYyIsCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfQ09OVkVSVCA9IChzaG9ydCkoT1BUX0xDX0NUWVBFIHwgT1BUX0xDX1RJTUUgCisgICAgICAgICAgICB8IE9QVF9MQ19OVU1FUklDIHwgT1BUX0xDX01PTkVUQVJZIHwgT1BUX0xDX01FU1NBR0VTKTsKKyAgICAKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBkYXRhOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmV3IENvbnZlcnRQT1NJWExvY2FsZShhcmdzKTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIHQucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVua25vd24gZXJyb3I6ICIrdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIENvbnZlcnRQT1NJWExvY2FsZShTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHByb2Nlc3MoYXJncyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAgICAgICAgIC8vfX0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcHJvY2VzcyhTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHNob3J0IG9wdGlvbnMgPSBpZGVudGlmeU9wdGlvbnMoYXJncyk7CisgICAgICAgIFN0cmluZyBlbmM9bnVsbDsKKyAgICAgICAgaWYgKChhcmdzLmxlbmd0aCA8IDIpIHx8ICgob3B0aW9ucyAmIE9QVF9VTktOT1dOKSAhPSAwKSkgeworICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgVmVjdG9yIG1hcEZpbGVzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBudWxsOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIHRoaXNBcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIGlmICh0aGlzQXJnLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgICAgICBpZih0aGlzQXJnLnN0YXJ0c1dpdGgoIi1lbmMiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmMgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZUZyb21TdHJpbmcodGhpc0FyZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gdGhpc0FyZzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXBGaWxlcy5hZGRFbGVtZW50KHRoaXNBcmcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGVuYz09bnVsbCl7CisgICAgICAgICAgICAgICAgZW5jPSJEZWZhdWx0IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZmlsZU5hbWUgPT0gbnVsbCkgfHwgKGxvY2FsZSA9PSBudWxsKSB8fCAob3B0aW9ucyA9PSAwKSkgeworICAgICAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgUG9zaXhDaGFyTWFwIG1hcCA9IG5ldyBQb3NpeENoYXJNYXAoKTsKKyAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiBlbnVtZXIgPSBtYXBGaWxlcy5lbGVtZW50cygpOworICAgICAgICAgICAgICAgIHdoaWxlIChlbnVtZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1hcEZpbGUgPSAoU3RyaW5nKWVudW1lci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkxvY2FsZTogIitsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkxvYWRpbmcgY2hhcmFjdGVyIG1hcCBmaWxlOiAiK21hcEZpbGUpOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmxvYWQobmV3IEZpbGUobWFwRmlsZSksZW5jKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvciBsb2FkaW5nIG1hcCBmaWxlOiAiK21hcEZpbGUrIiAgIitlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRmlsZSBza2lwcGVkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG1hcCk7CisgICAgICAgICAgICAgICAgRmlsZSBkYXRhRmlsZSA9IG5ldyBGaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkxvY2FsZSBkaXJlY3Rvcnk6ICIrZGF0YUZpbGUuZ2V0UGFyZW50KCkpOworICAgICAgICAgICAgICAgIFBPU0lYTG9jYWxlUmVhZGVyIHJlYWRlciA9IG5ldyBQT1NJWExvY2FsZVJlYWRlcihkYXRhRmlsZS5nZXRQYXJlbnQoKSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlBhcnNpbmcgZmlsZTogIitkYXRhRmlsZS5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGEgPSByZWFkZXIucGFyc2UoZGF0YUZpbGUuZ2V0TmFtZSgpLCAoYnl0ZSkob3B0aW9ucyAmIE9QVF9DT05WRVJUKSk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ29udmVydGluZy4uLi4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzExKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSmF2YTFMb2NhbGVXcml0ZXIoU3lzdGVtLm91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfMTIpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBKYXZhTG9jYWxlV3JpdGVyKFN5c3RlbS5vdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUX0lDVSkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxvY2FsZVdyaXRlcihTeXN0ZW0ub3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9JQ1UyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVMkxvY2FsZVdyaXRlcihTeXN0ZW0ub3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9SQVcpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMb2NhbGVXcml0ZXIoU3lzdGVtLm91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludFVzYWdlKCkgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBDb252ZXJ0UE9TSVhMb2NhbGUgWy1MQ19DVFlQRV0gWy1MQ19USU1FXSIrCisgICAgICAgICAgICAiIFstTENfTlVNRVJJQ10gWy1MQ19NT05FVEFSWV0gWy1MQ19NRVNTQUdFU10gWy0xMV0gWy0xMl0gWy1pY3VdIisgCisgICAgICAgICAgICAiIGxvY2FsZU5hbWUgbG9jYWxlRGF0YUZpbGUgW2NoYXJNYXBGaWxlIC4uLl0iKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzaG9ydCBpZGVudGlmeU9wdGlvbnMoU3RyaW5nW10gb3B0aW9ucykgeworICAgICAgICBzaG9ydCByZXN1bHQgPSAwOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBvcHRpb25zW2pdOworICAgICAgICAgICAgaWYgKG9wdGlvbi5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIG9wdGlvblJlY29nbml6ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNob3J0IGkgPSAwOyBpIDwgVVNFUl9PUFRJT05TLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVU0VSX09QVElPTlNbaV0uZXF1YWxzKG9wdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoc2hvcnQpKDEgPDwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25SZWNvZ25pemVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghb3B0aW9uUmVjb2duaXplZCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gT1BUX1VOS05PV047CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZUZyb21TdHJpbmcoZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlTmFtZTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ0AnKTsKKyAgICAgICAgaWYobmR4PjApeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgICAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VPTFRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRU9MVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxYmRmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VPTFRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworCisKKy8qKgorICogVGhpcyB0cmFuc2l0aW9uIHBhcnNlcyBhbiBlbmQtb2YtbGluZSBzZXF1ZW5jZS4gIFRoZSBjb21tZW50IGNoYXJhY3RlcgorICogY2FuIGJlIHNldCB0byBhbiBhcmJpdHJhcnkgY2hhcmFjdGVyLCBidXQgaXQgaXMgc2hhcmVkIGdsb2JhbGx5LgorICogQSBjb21tZW50IG1heSBvbmx5IG9jY3VyIGFmdGVyIGFuIGVuZC1vZi1saW5lLgorICogRU9MIDo9IDxFT0Y+IHwgPEVPTF9DSEFSUz4gWyA8RU9MX1NFR01FTlQ+IF0qCisgKiBFT0xfU0VHTUVOVCA6PSA8RU9MX0NIQVJTPiB8IDxTUEFDRV9DSEFSUz4gfCA8Q09NTUVOVD4KKyAqIFNQQUNFX0NIQVJTIDo9ICIgXHQiOworICogRU9MX0NIQVJTID0gIlxyXG5cdTIwMjhcdTIwMjkiOworICogQ09NTUVOVF9TVFJJTkcgOj0gPENPTU1FTlRfQ0hBUj4gPENPTU1FTlRfQk9EWT4KKyAqIENPTU1FTlRfQ0hBUiA9ICIjIjsKKyAqIENPTU1FTlRfQk9EWSA9IFsgfjxFT0Y+ICYgfjxFT0xfQ0hBUlM+IF0qCisgKi8KK3B1YmxpYyBjbGFzcyBFT0xUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVPTF9DSEFSUyA9ICJcZlxyXG5cdTIwMjhcdTIwMjkiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBERUZBVUxUX0NPTU1FTlRfQ0hBUiA9ICcjJzsKKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgQ09NTUVOVF9DSEFSID0gREVGQVVMVF9DT01NRU5UX0NIQVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBFT0xUcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBFT0xUcmFuc2l0aW9uKFNVQ0NFU1MpOworICAgIAorICAgICAgICAvKiogUmVzdG9yZSB0aGUgY29tbWVudCBjaGFyYWN0ZXIgdG8gdGhlIGRlZmF1bHQgdmFsdWUgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBjaGFyIHNldERlZmF1bHRDb21tZW50Q2hhcigpIHsKKyAgICAgICAgcmV0dXJuIHNldENvbW1lbnRDaGFyKERFRkFVTFRfQ09NTUVOVF9DSEFSKTsKKyAgICB9CisgICAgCisgICAgICAgIC8qKiBTZXQgYSBuZXcgY29tbWVudCBjaGFyYWN0ZXIgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBjaGFyIHNldENvbW1lbnRDaGFyKGNoYXIgYykgeworICAgICAgICBjaGFyIHJlc3VsdCA9IENPTU1FTlRfQ0hBUjsKKyAgICAgICAgQ09NTUVOVF9DSEFSID0gYzsKKyAgICAgICAgc3RhdGVzID0gbnVsbDsgIC8vZmx1c2ggc3RhdGVzCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFT0xUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIChFT0xfQ0hBUlMuaW5kZXhPZigoY2hhciljKSA+PSAwIHx8IENPTU1FTlRfQ0hBUj09Yyk7CisgICAgfQorICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKGdldENsYXNzKCkpIHsKKyAgICAgICAgICAgIGlmIChzdGF0ZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vY2FjaGUgdGhlIHN0YXRlcyBzbyB0aGV5IGNhbiBiZSBzaGFyZWQuICBUaGlzIHN0YXRlcworICAgICAgICAgICAgICAgIC8vbmVlZCB0byBiZSBmbHVzaGVkIGFuZCByZWJ1aWx0IHdoZW4gdGhlIGNvbW1lbnQKKyAgICAgICAgICAgICAgICAvL2NoYXJhY3RlciBjaGFuZ2VzLgorICAgICAgICAgICAgICAgIHN0YXRlcyA9IG5ldyBMZXguVHJhbnNpdGlvbltdW10geworICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMDogCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKENPTU1FTlRfQ0hBUiwgTGV4LklHTk9SRV9DT05TVU1FLCAtMiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTcGFjZVRyYW5zaXRpb24uU1BBQ0VfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIFNVQ0NFU1MpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTF9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfQ09OU1VNRSwgLTIpCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXM7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZpbmFsIGludCBUT0tFTiA9IDE7CisgICAgICAgICAgICBmaW5hbCBpbnQgRU9GID0gMjsKKyAgICAgICAgICAgIGZpbmFsIGludCBFT0wgPSAzOworICAgICAgICAgICAgZmluYWwgaW50IFJBTkdFID0gNDsKKyAgICAgICAgICAgIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7eyAKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKEVPRiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBTeW1ib2xUcmFuc2l0aW9uKFRPS0VOKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFNwYWNlVHJhbnNpdGlvbigwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFJhbmdlVHJhbnNpdGlvbihSQU5HRSksCisgICAgICAgICAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgMCkKKyAgICAgICAgICAgIH19OworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiXG48TlVMTD4gMHgxMjQzICNoZWxsbyAga2RzalxuIjsKKyAgICAgICAgICAgIFN0cmluZ1JlYWRlciBzciA9IG5ldyBTdHJpbmdSZWFkZXIodGV4dCk7CisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciBwciA9IG5ldyBQdXNoYmFja1JlYWRlcihzcik7CisgICAgICAgICAgICBMZXggcGFyc2VyID0gbmV3IExleChzdGF0ZXMsIHByKTsKKyAgICAgICAgICAgIHBhcnNlci5kZWJ1Zyh0cnVlKTsKKyAgICAgICAgICAgIHBhcnNlci5kZWJ1Zyh0cnVlKTsKKyAgICAgICAgICAgIGludCBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gRU9MKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnNlci5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgIHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgd2hpbGUocz09VE9LRU4peworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFyc2VyLmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBwYXJzZXIubmV4dFRva2VuKCk7ICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Fc2NhcGVUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VzY2FwZVRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMmRiYWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Fc2NhcGVUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQW4gZXNjYXBlIHRyYW5zaXRpb24gcGFyc2VzIGEgUE9TSVggZXNjYXBlIHNlcXVlbmNlLiAgQW4gZXNjYXBlCisgKiBzZXF1ZW5jZSBjYW4gYmUgYSBoZXgsIG9jdGFsLCBvciBkZWNpbWFsIGNvbnN0YW50LCBvciBhbiBlc2NhcGVkCisgKiBjaGFyYWN0ZXIuICBUaGUgcmVzdWx0YW50IHZhbHVlIGlzIEFMV0FZUyBvbiBieXRlIGxvbmcuICBMb25nZXIKKyAqIGVzY2FwZWQgdmFsdWVzIChpZS5ceEZGNjMpIG92ZXJmbG93IGFuZCBhcmUgdHJ1bmNhdGVkLiAgQW4gZXNjYXBlCisgKiBjaGFyYWN0ZXIgZm9sbG93ZWQgYnkgYW4gRU9MIHNlcXVlbmNlIGlzIHNpbGVudGx5IGVhdGVuLgorICovCitwdWJsaWMgY2xhc3MgRXNjYXBlVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVzY2FwZVRyYW5zaXRpb24gR0xPQkFMID0gbmV3IEVzY2FwZVRyYW5zaXRpb24oU1VDQ0VTUyk7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgREVGQVVMVF9FU0NBUEVfQ0hBUiA9ICdcXCc7CisgICAgcHVibGljIHN0YXRpYyBjaGFyIEVTQ0FQRV9DSEFSID0gREVGQVVMVF9FU0NBUEVfQ0hBUjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDSU1BTCA9IDE7ICAgLy9kZWNpbWFsIGVzY2FwZSBzZXF1ZW5jZSB3YXMgcGFyc2VkCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9DVEFMID0gMjsgICAgIC8vb2N0YWwgZXNjYXBlIHNlcXVlbmNlIHdhcyBwYXJzZWQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVYID0gMzsgICAgICAgLy9oZXggZXNjYXBlIHNlcXVlbmNlIHdhcyBwYXJzZWQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVNDQVBFID0gNDsgICAgLy9jaGFyYWN0ZXIgZXNjYXBlIHNlcXVlbmNlIHdhcyBwYXJzZWQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRU9MID0gNTsgICAgICAgLy9hbiBlc2NhcGUgY2hhcmFjdGVyIGZvbGxvd2VkIGJ5IEVPRiBlYXRlbgorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBPQ1RBTF9DSEFSUyA9ICIwMTIzNDU2NyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFQ0lNQUxfQ0hBUlMgPSAiMDEyMzQ1Njc4OSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFWF9DSEFSUyA9ICIwMTIzNDU2Nzg5YWJjZGVmQUJDREVGIjsKKyAgICAKKyAgICAgICAgLyoqIFNldCB0aGUgZXNjYXBlIGNoYXJhY3RlciB0byB0aGUgZGVmYXVsdCAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIGNoYXIgc2V0RGVmYXVsdEVzY2FwZUNoYXIoKSB7CisgICAgICAgIHJldHVybiBzZXRFc2NhcGVDaGFyKERFRkFVTFRfRVNDQVBFX0NIQVIpOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqIFNldCB0aGUgZXNjYXBlIGNoYXJhY3RlciAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIGNoYXIgc2V0RXNjYXBlQ2hhcihjaGFyIGMpIHsKKyAgICAgICAgY2hhciByZXN1bHQgPSBFU0NBUEVfQ0hBUjsKKyAgICAgICAgRVNDQVBFX0NIQVIgPSBjOworICAgICAgICB0aGVTdGF0ZXMgPSBudWxsOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRXNjYXBlVHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KK30KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiBFU0NBUEVfQ0hBUiA9PSAoY2hhciljOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqIENvbnZlcnQgdGhlIGFjY2VwdGVkIHRleHQgaW50byB0aGUgYXBwcm9wcmlhdGUgdW5pY29kZSBjaGFyYWN0ZXIgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTdWNjZXNzKExleCBwYXJzZXIsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN3aXRjaCAocGFyc2VyLmdldFN0YXRlKCkpIHsKKyAgICAgICAgY2FzZSBERUNJTUFMOgorICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgoY2hhcilwYXJzZXIuZGF0YUFzTnVtYmVyKDEwKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPQ1RBTDoKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoKGNoYXIpcGFyc2VyLmRhdGFBc051bWJlcig4KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBIRVg6CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKChjaGFyKXBhcnNlci5kYXRhQXNOdW1iZXIoMTYpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEVTQ0FQRToKKyAgICAgICAgICAgIHBhcnNlci5hcHBlbmREYXRhVG8ob3V0cHV0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEVPTDoKKyAgICAgICAgICAgIC8vc2lsZW50bHkgZWF0IHRoZSBFT0wgY2hhcmFjdGVycworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvL3Nob3VsZCBuZXZlciBnZXQgaGVyZQorICAgICAgICAgICAgdGhyb3cgbmV3IExleC5QYXJzZUV4Y2VwdGlvbigiSW50ZXJuYWwgZXJyb3IgcGFyc2luZyBlc2NhcGUgc2VxdWVuY2UiKTsKKy8vICAgICAgICAgIHBhcnNlci5hcHBlbmREYXRhVG8ob3V0cHV0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgLyoqIHJldHVybiB0aGUgc3RhdGVzIGZvciB0aGlzIHRyYW5zYWN0aW9uICovCisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAoZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgaWYgKHRoZVN0YXRlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy9jYWNoZSB0aGUgc3RhdGVzIHNvIHRoZXkgY2FuIGJlIHNoYXJlZC4gIFRoZXkgbXVzdAorICAgICAgICAgICAgICAgIC8vYmUgcmVidWlsdCB3aGVuIHRoZSBlc2NhcGUgY2hhcmFjdGVyIGlzIGNoYW5nZWQuCisgICAgICAgICAgICAgICAgdGhlU3RhdGVzID0gbmV3IExleC5UcmFuc2l0aW9uW11bXSB7CisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oRVNDQVBFX0NIQVIsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImlsbGVnYWwgZXNjYXBlIGNoYXJhY3RlciIpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKE9DVEFMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJ2QnLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJ3gnLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihPQ1RBTF9DSEFSUywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTQpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihFU0NBUEVfQ0hBUiwgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgRVNDQVBFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIEVTQ0FQRSkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDI6IGhleAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKEhFWCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oSEVYX0NIQVJTLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgSEVYKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMzogZGVjaW1hbAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKERFQ0lNQUwpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKERFQ0lNQUxfQ0hBUlMsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBERUNJTUFMKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgNDogb2N0YWwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihPQ1RBTCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oT0NUQUxfQ0hBUlMsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC00KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBPQ1RBTCkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGVTdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIExleC5UcmFuc2l0aW9uW11bXSB0aGVTdGF0ZXMgPSBudWxsOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHt7IAorICAgICAgICAgICAgICAgIG5ldyBFc2NhcGVUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJiYWQgdGVzdCBpbnB1dCIpCisgICAgICAgICAgICB9fTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIlxcZDEwMFxceEFmXFxcXFxcNzc3XFxcblxcMTIzXFx4MjAyOFxceDIwMjkiOworICAgICAgICAgICAgU3RyaW5nUmVhZGVyIHNyID0gbmV3IFN0cmluZ1JlYWRlcih0ZXh0KTsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHByID0gbmV3IFB1c2hiYWNrUmVhZGVyKHNyKTsKKyAgICAgICAgICAgIExleCBwYXJzZXIgPSBuZXcgTGV4KHN0YXRlcywgcHIpOworICAgICAgICAgICAgLy9wYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgICAgICAgICBpbnQgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IFNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFyc2VyLmdldFN0YXRlKCkpOworICAgICAgICAgICAgICAgIHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVTJMb2NhbGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVMkxvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEyNmE0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVTJMb2NhbGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgSUNVMkxvY2FsZVdyaXRlciBleHRlbmRzIExvY2FsZVdyaXRlciB7CisgICAgcHVibGljIElDVTJMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHN1cGVyKG91dCk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319Cit9CisgICAgcHVibGljIElDVTJMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgc3VwZXIob3V0LCBlcnIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBvcGVuKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcHJpbnQobG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBwcmludGxuKCIgeyIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50KCIgeyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodmFsdWUpOworICAgICAgICBwcmludGxuKCIgfSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSkgeworICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oInsiKTsKKyAgICAgICAgfQorICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBwcmludFN0cmluZyh2YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgT2JqZWN0IG8pIHsKKyAgICAgICAgaWYgKCJjb2xsYXRpb25zIi5lcXVhbHModGFnKSkgeworICAgICAgICAgICAgd3JpdGVUYWdnZWQodGFnLChPYmplY3RbXVtdKW8pOworICAgICAgICB9IGVsc2UgaWYgKCEobyBpbnN0YW5jZW9mIENvbGxhdGlvbkl0ZW1bXSkpIHsKKyAgICAgICAgICAgIHN1cGVyLndyaXRlKHRhZywgbyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBDb2xsYXRpb25JdGVtW10gaXRlbXMgPSAoQ29sbGF0aW9uSXRlbVtdKW87CisgICAgICAgICAgICBpZihpdGVtc1swXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgcHJpbnQoIlNlcXVlbmNlIik7CisgICAgICAgICAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZihpdGVtc1tpXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludFJ1bGVTdHJpbmcoaXRlbXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0uY29tbWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiVG8oMzApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCIvLyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oaXRlbXNbaV0uY29tbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIE9iamVjdFtdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKChTdHJpbmcpdmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUobnVsbCwgdmFsdWVbaV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGNsb3NlKCkgeworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKSB7CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFc2NhcGVDaGFyKGZpbmFsIGNoYXIgYykgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRFc2NhcGVDaGFyKCkgeworICAgICAgICByZXR1cm4gIlxcdSI7CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVM0xvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1UzTG9jYWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEyZmM4YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVM0xvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMjE0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgSUNVM0xvY2FsZVdyaXRlciBleHRlbmRzIExvY2FsZVdyaXRlciB7CisgICAgcHVibGljIElDVTNMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHN1cGVyKG91dCk7CisgICAgfQorICAgIHByaXZhdGUgTGlzdFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgcHJvdGVjdGVkIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50KGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgcHJpbnRsbigiIHsiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgfQorICAgIHB1YmxpYyBJQ1UzTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgcHVibGljIElDVTNMb2NhbGVXcml0ZXIoTGlzdFJlc291cmNlQnVuZGxlIGJ1bmRsZSxQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICBzdXBlcihvdXQsIGVycik7CisgICAgICAgIHRoaXMuYnVuZGxlID0gYnVuZGxlOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZShMb2NhbGUgbG9jYWxlKXsKKyAgICAgICAgb3Blbihsb2NhbGUpOworICAgICAgICBFbnVtZXJhdGlvbiBrZXlzID0gYnVuZGxlLmdldEtleXMoKTsKKyAgICAgICAgd2hpbGUoa2V5cy5oYXNNb3JlRWxlbWVudHMoKSl7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykga2V5cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgT2JqZWN0IG8gPSBidW5kbGUuZ2V0T2JqZWN0KGtleSk7CisgICAgICAgICAgICB3cml0ZShrZXksIG8pOworICAgICAgICB9CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBrZXksIE9iamVjdCBvKXsKKyAgICAgICAgaWYoa2V5IT1udWxsKSBwcmludChrZXkpOworICAgICAgICBpZihvIGluc3RhbmNlb2YgU3RyaW5nKXsKKyAgICAgICAgICAgIHdyaXRlKChTdHJpbmcpIG8pOworICAgICAgICB9ZWxzZSBpZiggbyBpbnN0YW5jZW9mIEludGVnZXJbXSl7CisgICAgICAgICAgICB3cml0ZSgoSW50ZWdlcltdKSBvKTsKKyAgICAgICAgfWVsc2UgaWYobyBpbnN0YW5jZW9mIGJ5dGVbXSl7CisgICAgICAgICAgICB3cml0ZSgoYnl0ZVtdKSBvKTsKKyAgICAgICAgfWVsc2UgaWYobyBpbnN0YW5jZW9mIEludGVnZXIpeworICAgICAgICAgICAgd3JpdGUoKEludGVnZXIpIG8pOworICAgICAgICB9ZWxzZSBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICB3cml0ZSgoT2JqZWN0W11bXSkgbyk7CisgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICB3cml0ZSgoT2JqZWN0W10pIG8pOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyBzdHIpeworICAgICAgICBwcmludCgieyIpOworICAgICAgICBwcmludFN0cmluZyhzdHIpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKEludGVnZXJbXSBvKXsKKyAgICAgICAgcHJpbnRsbigiOmludHZlY3RvciB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgaWYobyE9bnVsbCl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgby5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgcHJpbnQob1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCIgfSIpOyAgIAorICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyB0b0hleChieXRlIGIpeworICAgICAgICBpbnQgaSA9KGludCkoKGNoYXIpIChiICYgMHhGRikpOworICAgICAgICBTdHJpbmcgdGVtcCA9IEludGVnZXIudG9IZXhTdHJpbmcoaSk7ICAgIAorICAgICAgICBpZih0ZW1wLmxlbmd0aCgpPDIpeworICAgICAgICAgICAgcmV0dXJuICIwIit0ZW1wOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHJldHVybiB0ZW1wOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShieXRlW10gbyl7CisgICAgICAgIHByaW50KCI6YmlueyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgIGlmKG8hPW51bGwpeworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8IG8ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIHByaW50KHRvSGV4KG9baV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIiB9Iik7IAorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShJbnRlZ2VyIG8peworICAgICAgICBwcmludCgiOmludCB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgaWYobyE9bnVsbCl7CisgICAgICAgICAgICBwcmludChvLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoT2JqZWN0W10gbyl7CisgICAgICAgIFN0cmluZyBrZXkgPSBudWxsOworICAgICAgICBwcmludGxuKCI6YXJyYXkgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPG8ubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBpZihvW2ldIGluc3RhbmNlb2YgU3RyaW5nKXsKKyAgICAgICAgICAgICAgICBwcmludFN0cmluZygoU3RyaW5nKW9baV0pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgd3JpdGUoa2V5LG9baV0pOyAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoT2JqZWN0W11bXSBvKXsKKyAgICAgICAgLy9TdHJpbmcga2V5ID0gbnVsbDsKKyAgICAgICAgcHJpbnRsbigiOnRhYmxlIHsiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCBvLmxlbmd0aDtpKyspeworCisgICAgICAgICAgICBpZihvW2ldWzFdIGluc3RhbmNlb2YgU3RyaW5nKXsKKyAgICAgICAgICAgICAgICBwcmludCgoU3RyaW5nKSBvW2ldWzBdKTsKKyAgICAgICAgICAgICAgICBwcmludCgieyIpOworICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKChTdHJpbmcpIG9baV1bMV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHdyaXRlKChTdHJpbmcpIG9baV1bMF0sIG9baV1bMV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gICAKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCIgfSIpOworICAgIH0KKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLy8gT25seSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHN1cGVyIGNsYXNzIAorICAgIC8vLyBub3QgcmVxdWlyZWQgb3RoZXJ3aXNlCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAKKyAgICAvLy8vLy8vIEJFR0lOIC8vLy8vLy8vLy8vLy8vLy8vLworICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludCgiIHsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgCisKKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSkgeworICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oInsiKTsKKyAgICAgICAgfQorICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBwcmludFN0cmluZyh2YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUyRChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZShudWxsLCB2YWx1ZVtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBPYmplY3RbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgoU3RyaW5nKXZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZSh2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8gRU5EIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgLy8gc3VwZXIuY2xvc2VGaWxlSGFuZGxlKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1VMb2NhbGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVTG9jYWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTQ1YzAwYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIElDVUxvY2FsZVdyaXRlciBleHRlbmRzIExvY2FsZVdyaXRlciB7CisgICAgcHVibGljIElDVUxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgc3VwZXIob3V0KTsKKyAgICB9CisgICAgcHVibGljIElDVUxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICBzdXBlcihvdXQsIGVycik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIG9wZW4oTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBwcmludChsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIHByaW50bG4oIiB7Iik7CisgICAgICAgIGluZGVudCgpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBPYmplY3QgbykgeworICAgICAgICBpZiAoImNvbGxhdGlvbnMiLmVxdWFscyh0YWcpKSB7CisgICAgICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgd3JpdGVUYWdnZWQodGFnLChPYmplY3RbXVtdKW8pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICB3cml0ZSh0YWcsKFN0cmluZylvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICghKG8gaW5zdGFuY2VvZiBDb2xsYXRpb25JdGVtW10pKSB7CisgICAgICAgICAgICBzdXBlci53cml0ZSh0YWcsIG8pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ29sbGF0aW9uSXRlbVtdIGl0ZW1zID0gKENvbGxhdGlvbkl0ZW1bXSlvOworICAgICAgICAgICAgaWYoaXRlbXNbMF0hPW51bGwpeworICAgICAgICAgICAgcHJpbnQoIlNlcXVlbmNlIik7CisgICAgICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZihpdGVtc1tpXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKGl0ZW1zW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0uY29tbWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJUbygzMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiLy8iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oaXRlbXNbaV0uY29tbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50KCIgeyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodmFsdWUpOworICAgICAgICBwcmludGxuKCIgfSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZUludFZlY3RvcihTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSkgeworICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgICAgICBwcmludGxuKCI6aW50dmVjdG9yIHsgIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCI6aW50dmVjdG9yeyIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHByaW50VW5xdW90ZWRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdIHZhbHVlKSB7CisgICAgICAgIGlmKHRhZyAhPW51bGwgJiYgdGFnLmVxdWFscygiRGF0ZVRpbWVFbGVtZW50cyIpKXsKKyAgICAgICAgICAgIHdyaXRlSW50VmVjdG9yKHRhZyx2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludCh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCJ7Iik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUobnVsbCwgdmFsdWVbaV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgT2JqZWN0W11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUoKFN0cmluZyl2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGNsb3NlKCkgeworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAvLyBzdXBlci5jbG9zZUZpbGVIYW5kbGUoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKSB7CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmExTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmExTG9jYWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2Y3MmVjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YTFMb2NhbGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgSmF2YTFMb2NhbGVXcml0ZXIgZXh0ZW5kcyBMb2NhbGVXcml0ZXIgeworICAgIHB1YmxpYyBKYXZhMUxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgc3VwZXIob3V0KTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KKyAgICB9CisgICAgCisgICAgcHVibGljIEphdmExTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGUoTG9jYWxlIGxvY2FsZSwgSGFzaHRhYmxlIGxvY2FsZURhdGEpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEhhc2h0YWJsZSB0ZW1wID0gbmV3IE5ldXRyYWxUb0oxQ29udmVydGVyKGxvY2FsZSkuY29udmVydChsb2NhbGVEYXRhKTsKKyAgICAgICAgICAgIHN1cGVyLndyaXRlKGxvY2FsZSwgdGVtcCk7CisgICAgICAgIH0gY2F0Y2ggKExvY2FsZUNvbnZlcnRlci5Db252ZXJzaW9uRXJyb3IgZSkgeworICAgICAgICAgICAgZXJyLnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBvcGVuKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcHJpbnQoSEVBREVSMSk7CisgICAgICAgIHByaW50KGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgcHJpbnQoSEVBREVSMik7CisgICAgICAgIHByaW50KGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgcHJpbnRsbihIRUFERVIzKTsKKyAgICAgICAgaW5kZW50KDMpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgIHByaW50KCIsICIpOworICAgICAgICBwcmludFN0cmluZyh2YWx1ZSk7CisgICAgICAgIHByaW50bG4oIiB9LCIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnRsbigiIik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJuZXcgU3RyaW5nW10geyIpOworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBwcmludFN0cmluZyh2YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUyRChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdW10geyIpOworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCJ7Iik7CisgICAgICAgICAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHZhbHVlW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludFN0cmluZyh2YWx1ZVtpXVtqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCJ9LCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdW10geyIpOworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB3cml0ZSh2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0ZGVudCgzKTsKKyAgICAgICAgcHJpbnQoRk9PVEVSKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBhcHBlbmRFc2NhcGVkQ2hhcihjaGFyIGMsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHsKKyAgICAgICAgaWYgKGMgPCAnXHUwMDIwJyB8fCBjID09ICciJyB8fCBjID09ICdcXCcpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDA3MDApID4+IDZdKTsgLy8gSEVYX0RJR0lUIHdvcmtzIGZvciBvY3RhbAorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDcwKSA+PiAzXSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwMDcpXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdXBlci5hcHBlbmRFc2NhcGVkQ2hhcihjLCBidWZmZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gIisiOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSMSA9IAorICAgICAgICAgICAgInBhY2thZ2UgamF2YS50ZXh0LnJlc291cmNlcztcbiIrCisgICAgICAgICAgICAicHVibGljIGNsYXNzIExvY2FsZUVsZW1lbnRzXyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUjIgPSAKKyAgICAgICAgICAgICIgZXh0ZW5kcyBMb2NhbGVEYXRhIHtcbiIrCisgICAgICAgICAgICAiICAgIHB1YmxpYyBMb2NhbGVFbGVtZW50c18iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRUFERVIzID0gCisgICAgICAgICIoKSB7XG4iKworICAgICAgICAiICAgICAgICBzdXBlci5pbml0KHRhYmxlKTtcbiIrCisgICAgICAgICIgICAgfVxuIisKKyAgICAgICAgIiAgICBzdGF0aWMgU3RyaW5nIHRhYmxlIFtdPSI7CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT09URVIgPSAKKyAgICAgICAgIiAgICB9XG4iKworICAgICAgICAifSI7CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmFMb2NhbGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YUxvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUwMmM4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmFMb2NhbGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgSmF2YUxvY2FsZVdyaXRlciBleHRlbmRzIExvY2FsZVdyaXRlciB7CisgICAgcHVibGljIEphdmFMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHN1cGVyKG91dCk7CisgICAgfQorICAgIHB1YmxpYyBKYXZhTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50bG4oSEVBREVSKTsKKyAgICAgICAgaW5kZW50KDMpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBPYmplY3QgbykgeworICAgICAgICBpZiAoImNvbGxhdGlvbnMiLmVxdWFscyh0YWcpKSB7CisgICAgICAgICAgICAgd3JpdGVUYWdnZWQodGFnLChPYmplY3RbXVtdKW8pOworICAgICAgICB9IGVsc2UgaWYgKCEobyBpbnN0YW5jZW9mIENvbGxhdGlvbkl0ZW1bXSkpIHsKKyAgICAgICAgICAgIHN1cGVyLndyaXRlKHRhZywgbyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBDb2xsYXRpb25JdGVtW10gaXRlbXMgPSAoQ29sbGF0aW9uSXRlbVtdKW87CisgICAgICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgICAgIHByaW50U3RyaW5nKCJjb2xsYXRpb25zIik7CisgICAgICAgICAgICBwcmludGxuKCIsICIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKGl0ZW1zW2ldIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcoaXRlbXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5jb21tZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCIrIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJUbygzMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiLy8iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oaXRlbXNbaV0uY29tbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKCIrIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludGxuKCJcIlwiIik7CisgICAgICAgICAgICBwcmludGxuKCIgfSwiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnQoIiwgIik7CisgICAgICAgIHByaW50U3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpbnRsbigiIH0sIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCIiKTsKKyAgICAgICAgfQorICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXSB7Iik7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKHZhbHVlW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZTJEKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJuZXcgU3RyaW5nW11bXSB7Iik7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50bG4oInsiKTsKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdmFsdWVbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKHZhbHVlW2ldW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJuZXcgU3RyaW5nW11bXSB7Iik7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIE9iamVjdFtdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJuZXcgU3RyaW5nW11bXSB7Iik7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKChTdHJpbmcpdmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgY2xvc2UoKSB7CisgICAgICAgIG91dGRlbnQoMyk7CisgICAgICAgIHByaW50KEZPT1RFUik7CisgICAgICAgIHByaW50bG4oIiIpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGFwcGVuZEVzY2FwZWRDaGFyKGNoYXIgYywgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoYyA8ICdcdTAwMjAnIHx8IGMgPT0gJyInIHx8IGMgPT0gJ1xcJykgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDcwMCkgPj4gNl0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwNzApID4+IDNdKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDAwNyldKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN1cGVyLmFwcGVuZEVzY2FwZWRDaGFyKGMsIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKSB7CisgICAgICAgIHJldHVybiAiKyI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRUFERVIgPSAKKyAgICAgICAgInBhY2thZ2UgamF2YS50ZXh0LnJlc291cmNlcztcbiIrCisgICAgICAgICJpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTtcbiIrCisgICAgICAgICJwdWJsaWMgY2xhc3MgVGVzdExvY2FsZUVsZW1lbnRzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHtcbiIrCisgICAgICAgICIgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7XG4iKworICAgICAgICAiICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geyI7CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT09URVIgPSAKKyAgICAgICAgIiAgICAgICAgfTtcbiIrCisgICAgICAgICIgICAgfVxuIisKKyAgICAgICAgIn0iOworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MZXguamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTGV4LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmY3ZWM1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTGV4LmphdmEKQEAgLTAsMCArMSw0MTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBIExleCBpcyBhIHN0YXRlIG1hY2hpbmUuICBUcmFuc2l0aW9ucyBjYW4gYmUgYWN0aXZhdGVkCisgKiBhcmJpdHJhcmlseSBhbmQgY2FuIGNvbnN1bWUgYXJiaXRyYXJ5IGFtb3VudHMgb2YgdGV4dC4KKyAqIEEgdHJhbnNpdGlvbiBzaW1wbHkgc2F5cyBpdCBjYW4gY29uc3VtZSB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAqIGFuZCByZXR1cm5zIHRoZSBzdGF0ZSB0aGF0IHRoZSBtYWNoaW5lIHNob3VsZCB0cmFuc2l0aW9uIGludG8uCisgKiBTdGF0ZXMgdGhhdCBhcmUgPiAwIGFyZSBmaW5hbCBzdGF0ZXMgYW5kIGNhdXNlIHRoZSBuZXh0VG9rZW4KKyAqIHJvdXRpbmUgdG8gcmV0dXJuIGEgdmFsdWUuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBMZXggeworICAgIHByaXZhdGUgVHJhbnNpdGlvbltdW10gc3RhdGVzOyAgLy9maW5hbAorICAgIHByaXZhdGUgUHVzaGJhY2tSZWFkZXIgaW5wdXQ7ICAgLy9maW5hbAorICAgIHByaXZhdGUgaW50IHN0YXRlOworICAgIHByaXZhdGUgU3RyaW5nIGRhdGE7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdCdWZmZXIgZGF0YUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZGVidWdNZXNzYWdlc09uOworICAgIHByaXZhdGUgU3RyaW5nIGRlYnVnVGFnOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVORF9PRl9GSUxFID0gSW50ZWdlci5NQVhfVkFMVUU7CisKKyAgICAgICAgLyoqIENvbnN0cnVjdCBhIG5ldyBtYWNoaW5lLiAgTk9URTogc2V0SW5wdXQgbXVzdCBiZQorICAgICAgICAgKiBjYWxsZWQgYmVmb3JlIG5leHRUb2tlbiBpcyBjYWxsZWQgKi8KKyAgICBwdWJsaWMgTGV4KGZpbmFsIFRyYW5zaXRpb25bXVtdIHN0YXRlcykgeworICAgICAgICB0aGlzLnN0YXRlcyA9IHN0YXRlczsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisvL319Cit9CisKKyAgICAgICAgLyoqIENvbnN0cnVjdCBhIG5ldyBtYWNoaW5lLiAqLworICAgIHB1YmxpYyBMZXgoZmluYWwgVHJhbnNpdGlvbltdW10gc3RhdGVzSW4sIGZpbmFsIFB1c2hiYWNrUmVhZGVyIGlucHV0SW4pIHsKKyAgICAgICAgc3RhdGVzID0gc3RhdGVzSW47CisgICAgICAgIGlucHV0ID0gaW5wdXRJbjsKKyAgICB9CisKKyAgICAgICAgLyoqIFJldHVybiB0aGUgY3VycmVudCBzdGF0ZSAqLworICAgIHB1YmxpYyBpbnQgZ2V0U3RhdGUoKSB7CisgICAgICAgIHJldHVybiBzdGF0ZTsKKyAgICB9CisKKyAgICAgICAgLyoqIFJldHVybiB0aGUgZGF0YSByZXN1bHRpbmcgZnJvbSB0aGUgbGFzdCBjYWxsIHRvIG5leHRUb2tlbiAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGF0YSgpIHsKKyAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkgeworICAgICAgICAgICAgZGF0YSA9IGRhdGFCdWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisgICAgCisgICAgICAgIC8qKiBSZXR1cm4gdGhlIGlucHV0IHJlYWRlciB1c2VkIGJ5IHRoaXMgbWFjaGluZSAqLworICAgIHB1YmxpYyBQdXNoYmFja1JlYWRlciBnZXRJbnB1dCgpIHsKKyAgICAgICAgcmV0dXJuIGlucHV0OworICAgIH0KKworICAgICAgICAvKiogc2V0IHRoZSBpbnB1dCByZWFkZXIgdXNlZCBieSB0aGlzIG1hY2hpbmUgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbnB1dChQdXNoYmFja1JlYWRlciBpbnB1dCkgeworICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7CisgICAgfQorCisgICAgICAgIC8qKiBSZXR1cm4gdGhlIHN0YXRlcyB1c2VkIGJ5IHRoaXMgbWFjaGluZSAqLworICAgIHB1YmxpYyBUcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U3RhdGVzKFRyYW5zaXRpb25bXVtdIHN0YXRlcykgeworICAgICAgICB0aGlzLnN0YXRlcyA9IHN0YXRlczsKKyAgICB9CisKKyAgICAgICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGVxdWFscyB0aGUKKyAgICAgICAgICogc3RyaW5nIHJldHVybmVkIGJ5IGdldERhdGEoKS4gIFRoaXMgcm91dGluZQorICAgICAgICAgKiBtYXkgYmUgZmFzdGVyIHRoYW4gY2FsbGluZyBnZXREYXRhIGJlY2F1c2UKKyAgICAgICAgICogaXQgZG9lcyBub3QgY3JlYXRlIGEgc3RyaW5nIG9uIHRoZSBoZWFwLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkYXRhRXF1YWxzKGZpbmFsIFN0cmluZyBvdGhlcikgeworICAgICAgICBpZiAoZGF0YSAhPSBudWxsKSB7CisgICAgICAgICAgICAvL2lmIGRhdGFCdWZmZXIgaGFzIGFscmVhZHkgYmVlbiBjb252ZXJ0ZWQgdG8KKyAgICAgICAgICAgIC8vYSBzdHJpbmcsIGp1c3QgY29tcGFyZSB0aGUgc3RyaW5ncy4KKyAgICAgICAgICAgIHJldHVybiBkYXRhLmVxdWFscyhvdGhlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAob3RoZXIubGVuZ3RoKCkgIT0gZGF0YUJ1ZmZlci5sZW5ndGgoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZmluYWwgaW50IGxlbiA9IGRhdGFCdWZmZXIubGVuZ3RoKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKG90aGVyLmNoYXJBdChpKSAhPSBkYXRhQnVmZmVyLmNoYXJBdChpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBBcHBlbmQgdGhlIGRhdGEgcmV0dXJuZWQgZnJvbSBnZXREYXRhKCkgdG8gdGhlCisgICAgICAgICAqIHNwZWNpZmllZCBTdHJpbmdCdWZmZXIuICBUaGlzIHJvdXRpbmUgYXZvaWRzCisgICAgICAgICAqIHRoZSBjcmVhdGlvbiBvZiBhIFN0cmluZyBvbiB0aGUgaGVhcC4KKyAgICAgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kRGF0YVRvKFN0cmluZ0J1ZmZlciBidWZmZXIpIHsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChkYXRhQnVmZmVyLnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBkYXRhIHJldHVybmVkIGJ5IGdldERhdGEoKQorICAgICAgICAgKiBzdGFydHMgd2l0aCB0aGUgc3BlY2lmaWVkIHN0cmluZy4gIFRoaXMgcm91dGluZSBhdm9pZHMKKyAgICAgICAgICogdGhlIGNyZWF0aW9uIG9mIGEgU3RyaW5nIG9uIHRoZSBoZWFwLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkYXRhU3RhcnRzV2l0aChTdHJpbmcgcykgeworICAgICAgICBpZiAoZGF0YUJ1ZmZlci5sZW5ndGgoKSA8IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZpbmFsIGludCBzTGVuZ3RoID0gcy5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc0xlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGRhdGFCdWZmZXIuY2hhckF0KGkpICE9IHMuY2hhckF0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQ29udmVydCB0aGUgY29udGVudHMgb2YgdGhlIGRhdGEgYnVmZmVyIHRvIGFuIGludGVnZXIKKyAgICAgICAgICogb2YgdGhlIHNwZWNpZmllZCByYWRpeAorICAgICAgICAgKi8KKyAgICBwdWJsaWMgaW50IGRhdGFBc051bWJlcihpbnQgcmFkaXgpIHsKKyAgICAgICAgaW50IHZhbHVlID0gMDsKKyAgICAgICAgZmluYWwgaW50IGxlbiA9IGRhdGFCdWZmZXIubGVuZ3RoKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWUqcmFkaXggKyBDaGFyYWN0ZXIuZGlnaXQoZGF0YUJ1ZmZlci5jaGFyQXQoaSksIHJhZGl4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogR2V0IHRoZSBuZXh0IHRva2VuIGZyb20gdGhlIGlucHV0IHN0cmVhbS4gIFRoZQorICAgICAgICAgKiBkYXRhQnVmZmVyIGlzIGNsZWFyZWQgYW5kIHRoZSBzdGF0ZSBpcyBzZXQgdG8gemVybyBiZWZvcmUKKyAgICAgICAgICogcGFyc2luZyBiZWdpbnMuICBQYXJzaW5nIGNvbnRpbnVlcyB1bnRpbCBhIHN0YXRlCisgICAgICAgICAqIGdyZWF0ZXIgb2YgZXF1YWwgdG8gMCBzIHJlYWNoZWQgb3IgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgICAgICAgICogQWZ0ZXIgZWFjaCBub24tdGVybWluYWwgdHJhbnNpdGlvbiwgdGhlIHN0YXRlIG1hY2hpbmUgCisgICAgICAgICAqIHdhbGtzIHRocm91Z2ggYWxsIHRoZSB0cmFuc2l0aW9ucywgaW4gb3JkZXIsIGZvciB0aGUgY3VycmVudAorICAgICAgICAgKiBzdGF0ZSB1bnRpbCBpdCBmaW5kcyBvbmUgdGhhdCB3aWxsIGFjY2VwdCB0aGUgY3VycmVudAorICAgICAgICAgKiBpbnB1dCBjaGFyYWN0ZXIgYW5kIHRoZW4gY2FsbHMgZG9BY3Rpb24gb24gdGhhdCB0cmFuc2l0aW9uLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHRUb2tlbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN0YXRlID0gMDsKKyAgICAgICAgZGF0YUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgaW50IGMgPSBpbnB1dC5yZWFkKCk7CisgICAgICAgICAgICBmaW5hbCBUcmFuc2l0aW9uW10gdHJhbnNpdGlvbiA9IHN0YXRlc1stc3RhdGVdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0cmFuc2l0aW9uLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25baV0uYWNjZXB0cyhjKSkgeworICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigic3RhdGVbIisgLXN0YXRlKyJdLnRyYW5zaXRpb25bIitpKyJdIG9uICIrYysiICAnIisoY2hhciljKyInIHRvIHN0YXRlWyIpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHRyYW5zaXRpb25baV0uZG9BY3Rpb24oYywgaW5wdXQsIGRhdGFCdWZmZXIpOworICAgICAgICAgICAgICAgICAgICAvL3ByaW50bG4oIiIgKyAtc3RhdGUgKyAiXSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKHN0YXRlIDw9IDApOworICAgICAgICBkYXRhID0gbnVsbDsgICAgLy9kdW1wIHRoZSBjYWNoZWQgZGF0YSBzdHJpbmcKKyAgICAgICAgcmV0dXJuIHN0YXRlOworICAgIH0KKworICAgICAgICAvKiogCisgICAgICAgICAqIEdldCB0aGUgbmV4dCB0b2tlbiBhbmQgdGhyb3cgYW4gYWNjZXB0aW9uIGlmCisgICAgICAgICAqIHRoZSBzdGF0ZSBtYWNoaW5lIGlzIG5vdCBpbiB0aGUgc3BlY2lmaWVkIHN0YXRlLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhY2NlcHQoZmluYWwgaW50IG5lZWRlZFN0YXRlKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAobmVlZGVkU3RhdGUgIT0gbmV4dFRva2VuKCkpIHsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlID0gbmV3IEV4Y2VwdGlvbigpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiVW5leHBlY3RlZCB0b2tlbiAtICIrZ2V0RGF0YSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdldCB0aGUgbmV4dCB0b2tlbiBhbmQgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZQorICAgICAgICAgKiBzdGF0ZSBtYWNoaW5lIGlzIG5vdCBpbiB0aGUgc3BlY2lmaWVkIHN0YXRlIGFuZCB0aGUKKyAgICAgICAgICogdmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF0YSgpIGRvZXMgbm90IG1hdGNoIHRoZSAKKyAgICAgICAgICogc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhY2NlcHQoZmluYWwgaW50IG5lZWRlZFN0YXRlLCBmaW5hbCBTdHJpbmcgbmVlZGVkVmFsdWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGFjY2VwdChuZWVkZWRTdGF0ZSk7CisgICAgICAgIGlmICghZGF0YUVxdWFscyhuZWVkZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlID0gbmV3IEV4Y2VwdGlvbigpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiVW5leHBlY3RlZCB0b2tlbiAtICIrZ2V0RGF0YSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlYnVnKGJvb2xlYW4gZGVidWdNZXNzYWdlc09uKSB7CisgICAgICAgIHRoaXMuZGVidWdNZXNzYWdlc09uID0gZGVidWdNZXNzYWdlc09uOworICAgICAgICBkZWJ1Z1RhZyA9IG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGRlYnVnKGJvb2xlYW4gZGVidWdNZXNzYWdlc09uLCBTdHJpbmcgdGFnKSB7CisgICAgICAgIHRoaXMuZGVidWdNZXNzYWdlc09uID0gZGVidWdNZXNzYWdlc09uOworICAgICAgICB0aGlzLmRlYnVnVGFnID0gdGFnOworICAgIH0KKyAgICAKKy8qICBwcml2YXRlIHZvaWQgcHJpbnQoU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKGRlYnVnTWVzc2FnZXNPbikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludGxuKFN0cmluZyBzKSB7CisgICAgICAgIGlmIChkZWJ1Z01lc3NhZ2VzT24pIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKyIgIDwiK2RlYnVnVGFnKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBpbnRlcmZhY2UgZm9yIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMuIAorICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgVHJhbnNpdGlvbiB7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHRyYW5zaXRpb24gY2FuIGFjY2VwdCB0aGUgY3VycmVudCBpbnB1dAorICAgICAgICAgKiBjaGFyYWN0ZXIuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBlcmZvcm0gdGhlIHRyYW5zaXRpb24uCisgICAgICAgICAqIEBwYXJhbSBjIHRoZSBjdXJyZW50IGlucHV0IGNoYXJhY3RlcgorICAgICAgICAgKiBAcGFyYW0gaW5wdXQgdGhlIGN1cnJlbnQgaW5wdXQgc3RyZWFtLCBtaW51cyB0aGUgY3VycmVudCBpbnB1dCBjaGFyYWN0ZXIKKyAgICAgICAgICogQHBhcmFtIGJ1ZmZlciB0aGUgY3VycmVudCBvdXRwdXQgYnVmZmVyCisgICAgICAgICAqIEByZXR1cm4gdGhlIHN0YXRlIHRoZSBtYWNoaW5lIHNob3VsZCBiZSBpbiBuZXh0CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGRvQWN0aW9uKGludCBjLCBQdXNoYmFja1JlYWRlciBpbnB1dCwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uOworICAgIH0KKworICAgICAgICAvKiBjb25zdGFudHMgZm9yIEJhc2VUcmFuc2l0aW9ucyAqLworICAgICAgICAvKiogRG9uJ3QgY29weSB0aGUgY3VycmVudCBjaGFyYWN0ZXIgdG8gdGhlIG91dHB1dCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBJR05PUkUgPSAweDAxOworICAgICAgICAvKiogQXBwZW5kIHRoZSBjdXJyZW50IGNoYXJhY3RlciB0byB0aGUgb3V0cHV0ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEFDQ1VNVUxBVEUgPSAweDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQlVGRkVSX01BU0sgPSAweDAxOworCisgICAgICAgIC8qKiBSZW1vdmUgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGZyb20gdGhlIGlucHV0IHN0cmVhbSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBDT05TVU1FID0gMHgwMDsKKyAgICAgICAgLyoqIFJldHVybiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgdG8gdGhlIGlucHV0IHN0cmVhbSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBQVVRCQUNLID0gMHgxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIElOUFVUX01BU0sgPSAweDEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIAorICAgICAgICAgICAgQUNDVU1VTEFURV9DT05TVU1FID0gKGJ5dGUpKEFDQ1VNVUxBVEUgfCBDT05TVU1FKSwKKyAgICAgICAgICAgIElHTk9SRV9DT05TVU1FID0gKGJ5dGUpKElHTk9SRSB8IENPTlNVTUUpLAorICAgICAgICAgICAgQUNDVU1VTEFURV9QVVRCQUNLID0gKGJ5dGUpKEFDQ1VNVUxBVEUgfCBQVVRCQUNLKSwKKyAgICAgICAgICAgIElHTk9SRV9QVVRCQUNLID0gKGJ5dGUpKElHTk9SRSB8IFBVVEJBQ0spOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmb3Igc2ltcGxlIHRyYW5zaXRpb24gY2xhc3NlcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgQmFzZVRyYW5zaXRpb24gaW1wbGVtZW50cyBUcmFuc2l0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGFkZFRvQnVmZmVyOworICAgICAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gdW5yZWFkSW5wdXQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG5leHQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgdHJhbnNpdGlvbi4gIE9uIGV4ZWN1dGlvbiwgdGhlIAorICAgICAgICAgKiBzcGVjaWZpZWQgYWN0aW9uIGlzIHBlcmZvcm1lZCBhbmQgdGhlCisgICAgICAgICAqIHNwZWNpZmllZCBzdGF0ZSBpcyByZXR1cm5lZC4KKyAgICAgICAgICogQHBhcmFtIGFjdGlvbiB0aGUgYWN0aW9ucyB0byBwZXJmb3JtIHRvIHRoZSAKKyAgICAgICAgICogaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzLgorICAgICAgICAgKiBAcGFyYW0gbmV4dCB0aGUgbmV4dCBzdGF0ZSB0aGUgbWFjaGluZSBzaG91bGQKKyAgICAgICAgICogbW92ZSBpbnRvCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQmFzZVRyYW5zaXRpb24oYnl0ZSBhY3Rpb24sIGludCBuZXh0KSB7CisgICAgICAgICAgICB0aGlzLmFkZFRvQnVmZmVyID0gKGFjdGlvbiAmIEJVRkZFUl9NQVNLKSA9PSBBQ0NVTVVMQVRFOworICAgICAgICAgICAgdGhpcy51bnJlYWRJbnB1dCA9IChhY3Rpb24gJiBJTlBVVF9NQVNLKSA9PSBQVVRCQUNLOworICAgICAgICAgICAgdGhpcy5uZXh0ID0gbmV4dDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBhY2NlcHRzKGludCBjKTsKKyAgICAgICAgcHVibGljIGludCBkb0FjdGlvbihmaW5hbCBpbnQgYywgCisgICAgICAgICAgICAgICAgZmluYWwgUHVzaGJhY2tSZWFkZXIgaW5wdXQsIAorICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYWRkVG9CdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHVucmVhZElucHV0KSB7CisgICAgICAgICAgICAgICAgaW5wdXQudW5yZWFkKGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgZW5kLW9mLWZpbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFT0ZUcmFuc2l0aW9uIGV4dGVuZHMgQmFzZVRyYW5zaXRpb24geworICAgICAgICBwdWJsaWMgRU9GVHJhbnNpdGlvbigpIHsKKyAgICAgICAgICAgIHRoaXMoSUdOT1JFX0NPTlNVTUUsIEVORF9PRl9GSUxFKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgRU9GVHJhbnNpdGlvbihpbnQgbmV4dCkgeworICAgICAgICAgICAgdGhpcyhJR05PUkVfQ09OU1VNRSwgbmV4dCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIEVPRlRyYW5zaXRpb24oYnl0ZSBhY3Rpb24sIGludCBuZXh0KSB7CisgICAgICAgICAgICBzdXBlcihhY3Rpb24sIG5leHQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IGFueXRoaW5nLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRGVmYXVsdFRyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHB1YmxpYyBEZWZhdWx0VHJhbnNpdGlvbihieXRlIGFjdGlvbiwgaW50IG5leHRTdGF0ZSkgeworICAgICAgICAgICAgc3VwZXIoYWN0aW9uLCBuZXh0U3RhdGUpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IGFueSBjaGFyYWN0ZXJzIGluIHRoZSBzcGVjaWZpZWQgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgU3RyaW5nVHJhbnNpdGlvbiBleHRlbmRzIEJhc2VUcmFuc2l0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgY2hhcnM7CisgICAgICAgIHB1YmxpYyBTdHJpbmdUcmFuc2l0aW9uKFN0cmluZyBjaGFycywgYnl0ZSBhY3Rpb24sIGludCBuZXh0U3RhdGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGFjdGlvbiwgbmV4dFN0YXRlKTsKKyAgICAgICAgICAgIHRoaXMuY2hhcnMgPSBjaGFyczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMuaW5kZXhPZigoY2hhciljKSAhPSAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBvbmx5IHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgQ2hhclRyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgY2hhciBjOworICAgICAgICBwdWJsaWMgQ2hhclRyYW5zaXRpb24oY2hhciBjLCBieXRlIGFjdGlvbiwgaW50IG5leHRTdGF0ZSkgeworICAgICAgICAgICAgc3VwZXIoYWN0aW9uLCBuZXh0U3RhdGUpOworICAgICAgICAgICAgdGhpcy5jID0gYzsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5jID09IChjaGFyKWM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgYW55dGhpbmcsIGJ1dCB0aHJvdyB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBhZnRlcgorICAgICAqIHBlcmZvcm1pbmcgdGhlIHNwZWNpZmllZCBhY3Rpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEV4Y2VwdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgSU9FeGNlcHRpb24gZTsKKyAgICAgICAgcHVibGljIEV4Y2VwdGlvblRyYW5zaXRpb24oSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgc3VwZXIoSUdOT1JFX1BVVEJBQ0ssIEVORF9PRl9GSUxFKTsgLy9zdGF0ZSBpcyBpZ25vcmVkCisgICAgICAgIH0KKyAgICAgICAgcHVibGljIEV4Y2VwdGlvblRyYW5zaXRpb24oYnl0ZSBhY3Rpb24sIElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGFjdGlvbiwgRU5EX09GX0ZJTEUpOyAvL3N0YXRlIGlzIGlnbm9yZWQKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgZmluYWwgaW50IGRvQWN0aW9uKGZpbmFsIGludCBjLCAKKyAgICAgICAgICAgICAgICBmaW5hbCBQdXNoYmFja1JlYWRlciBpbnB1dCwgCisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHN1cGVyLmRvQWN0aW9uKGMsIGlucHV0LCBidWZmZXIpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGJhc2UgY2xhc3MgZm9yIHBhcnNlIGV4Y2VwdGlvbnMuICBFeGNlcHRpb25zCisgICAgICAgICAqIHJlc3VsdGluZyBmcm9tIHBhcnNpbmcgZXJyb3JzIHNob3VsZCBiZSBzdWJjbGFzc2VzIG9mIHRoaXMKKyAgICAgICAgICogY2xhc3MuCisgICAgICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUGFyc2VFeGNlcHRpb24gZXh0ZW5kcyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgcmVhc29uOworICAgICAgICBwdWJsaWMgUGFyc2VFeGNlcHRpb24oKSB7CisgICAgICAgICAgICB0aGlzLnJlYXNvbiA9ICJ1bmtvd24iOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBQYXJzZUV4Y2VwdGlvbihTdHJpbmcgcmVhc29uKSB7CisgICAgICAgICAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlYXNvbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBhbnl0aGluZywgZXhlY3V0ZSBhcyBJR05PUkVfUFVUQkFDSywgYW5kIHRocm93CisgICAgICogYSBQYXJzZUV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbWVzc2FnZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uIGltcGxlbWVudHMgVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHJlYXNvbjsKKyAgICAgICAgcHVibGljIFBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbihTdHJpbmcgcmVhc29uKSB7CisgICAgICAgICAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgZmluYWwgaW50IGRvQWN0aW9uKGZpbmFsIGludCBjLCAKKyAgICAgICAgICAgICAgICBmaW5hbCBQdXNoYmFja1JlYWRlciBpbnB1dCwgCisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGlucHV0LnVucmVhZCgoY2hhciljKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbihyZWFzb24pOworICAgICAgICB9CisgICAgfQorCisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKy8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTGluZUNoYXJOdW1iZXJSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTGluZUNoYXJOdW1iZXJSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MTQ1Y2FkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MaW5lQ2hhck51bWJlclJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQSBMaW5lQ2hhck51bWJlclJlYWRlciBpcyBhIEJ1ZmZlcmVkUmVhZGVyIHRoYXQKKyAqIGtlZXBzIHRyYWNrIG9mIHRoZSBsaW5lIG51bWJlciBhbmQgY2hhcmFjdGVyIG9mZnNldAorICogb24gdGhhdCBsaW5lIG9mIHRoZSBjdXJyZW50IGlucHV0IHN0cmVhbS4KKyAqLworcHVibGljIGNsYXNzIExpbmVDaGFyTnVtYmVyUmVhZGVyIGV4dGVuZHMgQnVmZmVyZWRSZWFkZXIgeworICAgIHByaXZhdGUgaW50IGxpbmVOdW1iZXIgPSAwOworICAgIHByaXZhdGUgaW50IGNoYXJOdW1iZXIgPSAwOworICAgIHByaXZhdGUgaW50IG1hcmtlZExpbmVOdW1iZXI7CisgICAgcHJpdmF0ZSBpbnQgbWFya2VkQ2hhck51bWJlcjsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2tpcExGOworCisgICAgcHVibGljIExpbmVDaGFyTnVtYmVyUmVhZGVyKFJlYWRlciBpbikgeworICAgICAgICBzdXBlcihpbik7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319Cit9CisKKyAgICBwdWJsaWMgTGluZUNoYXJOdW1iZXJSZWFkZXIoUmVhZGVyIGluLCBpbnQgc3opIHsKKyAgICAgICAgc3VwZXIoaW4sIHN6KTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldExpbmVOdW1iZXIoKSB7CisgICAgICAgIHJldHVybiBsaW5lTnVtYmVyOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0Q2hhck51bWJlcigpIHsKKyAgICAgICAgcmV0dXJuIGNoYXJOdW1iZXI7CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICBpbnQgYyA9IHN1cGVyLnJlYWQoKTsKKyAgICAgICAgICAgIGNoYXJOdW1iZXIrKzsKKyAgICAgICAgICAgIGlmIChza2lwTEYpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nKSBjID0gc3VwZXIucmVhZCgpOworICAgICAgICAgICAgICAgIHNraXBMRiA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlICdccic6CisgICAgICAgICAgICAgICAgc2tpcExGID0gdHJ1ZTsKKyAgICAgICAgICAgIGNhc2UgJ1xuJzogICAgICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgIGNhc2UgJ1x1MjAyOCc6ICAgICAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICBjYXNlICdcdTIwMjknOiAgICAgIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKKyAgICAgICAgICAgICAgICBjaGFyTnVtYmVyID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gJ1xuJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkKGNoYXIgY2J1ZltdLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIGludCBuID0gc3VwZXIucmVhZChjYnVmLCBvZmYsIGxlbik7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBvZmY7IGkgPCBvZmYgKyBsZW47IGkrKykgeworICAgICAgICAgICAgICAgIGludCBjID0gY2J1ZltpXTsKKyAgICAgICAgICAgICAgICBjaGFyTnVtYmVyKys7CisgICAgICAgICAgICAgICAgaWYgKHNraXBMRikgeworICAgICAgICAgICAgICAgICAgICBza2lwTEYgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ1xyJzoKKyAgICAgICAgICAgICAgICAgICAgc2tpcExGID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjYXNlICdcbic6ICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICBjYXNlICdcdTIwMjgnOiAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICAgICAgY2FzZSAnXHUyMDI5JzogIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyKys7CisgICAgICAgICAgICAgICAgICAgIGNoYXJOdW1iZXIgPSAwOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZWFkTGluZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgU3RyaW5nIGwgPSBzdXBlci5yZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGwgIT0gbnVsbCkKKyAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKKyAgICAgICAgICAgIGNoYXJOdW1iZXIgPSAwOworICAgICAgICAgICAgc2tpcExGID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBtYXhTa2lwQnVmZmVyU2l6ZSA9IDgxOTI7CisKKyAgICBwcml2YXRlIGNoYXIgc2tpcEJ1ZmZlcltdID0gbnVsbDsKKworICAgIHB1YmxpYyBsb25nIHNraXAobG9uZyBuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgbm4gPSAoaW50KSBNYXRoLm1pbihuLCBtYXhTa2lwQnVmZmVyU2l6ZSk7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgaWYgKChza2lwQnVmZmVyID09IG51bGwpIHx8IChza2lwQnVmZmVyLmxlbmd0aCA8IG5uKSkKKyAgICAgICAgICAgIHNraXBCdWZmZXIgPSBuZXcgY2hhcltubl07CisgICAgICAgICAgICBsb25nIHIgPSBuOworICAgICAgICAgICAgd2hpbGUgKHIgPiAwKSB7CisgICAgICAgICAgICBpbnQgbmMgPSByZWFkKHNraXBCdWZmZXIsIDAsIG5uKTsKKyAgICAgICAgICAgIGlmIChuYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHIgLT0gbmM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbiAtIHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtYXJrKGludCByZWFkQWhlYWRMaW1pdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICBzdXBlci5tYXJrKHJlYWRBaGVhZExpbWl0KTsKKyAgICAgICAgICAgIG1hcmtlZExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAgICAgICAgICAgbWFya2VkQ2hhck51bWJlciA9IGNoYXJOdW1iZXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgc3VwZXIucmVzZXQoKTsKKyAgICAgICAgICAgIGxpbmVOdW1iZXIgPSBtYXJrZWRMaW5lTnVtYmVyOworICAgICAgICAgICAgY2hhck51bWJlciA9IG1hcmtlZENoYXJOdW1iZXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTG9jYWxlQ29udmVydGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZUNvbnZlcnRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4Y2M1YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZUNvbnZlcnRlci5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgTG9jYWxlQ29udmVydGVyIHsKKyAgICBwdWJsaWMgSGFzaHRhYmxlIGNvbnZlcnQoSGFzaHRhYmxlIHRhYmxlKSB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKyAgICAgICAgSGFzaHRhYmxlIHJlc3VsdCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgY29udmVydChyZXN1bHQsIHRhYmxlKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgY29udmVydChIYXNodGFibGUgcmVzdWx0LCBIYXNodGFibGUgc291cmNlKSB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKyAgICAgICAgRW51bWVyYXRpb24gZW51bWVyID0gc291cmNlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGVudW1lci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZW51bWVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgZGF0YSA9IHNvdXJjZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIHJlc3VsdC5wdXQoa2V5LCBkYXRhKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbnZlcnNpb25FcnJvciBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgICAgIHB1YmxpYyBDb252ZXJzaW9uRXJyb3IoKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDb252ZXJzaW9uRXJyb3IoU3RyaW5nIHJlYXNvbikgeworICAgICAgICAgICAgc3VwZXIocmVhc29uKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ2OWU2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsNDk5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworLyoqCisgKiBBIExvY2FsZVdyaXRlciB0YWtlcyBsb2NhbGUgZGF0YSBpbiBzdGFuZGFyZCBmb3JtIGFuZAorICogd3JpdGVzIGl0IHRvIHN0YW5kYXJkIG91dHB1dCBpbiBhIGZvcm0gc3VpdGFibGUgZm9yCisgKiBsb2FkaW5nIHByb2dyYW1hdGljYWxseS4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIExvY2FsZVdyaXRlciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOREVOVF9DSEFSUyA9IAorICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIrCisgICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIisKKyAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRU9MX0NIQVJTW10gPSB7J1xyJywgJ1xuJywgJ1x1MjAyOCcsICdcdTIwMjknfTsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOREVOVF9TSVpFID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0xJTkVfTEVOR1RIID0gODA7CisgICAgcHJpdmF0ZSBpbnQgaW5kZW50TGV2ZWw7CisgICAgcHJpdmF0ZSBTdHJpbmcgaW5kZW50U3RyaW5nOworICAgIHByaXZhdGUgYm9vbGVhbiBuZWVkc0luZGVudDsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nQnVmZmVyIGxpbmVCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgcHJpdmF0ZSBpbnQgbGluZUxlbmd0aDsKKyAgICBwcm90ZWN0ZWQgUHJpbnRTdHJlYW0gb3V0OworICAgIHByb3RlY3RlZCBQcmludFN0cmVhbSBlcnI7CisgICAgLy9maW5hbCBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZSggICJjbnZMb2MudHh0Iik7CisgICAgLy9GaWxlT3V0cHV0U3RyZWFtIG91dEZpbGVTdHJlYW07CisgICAgLy9CdWZmZXJlZFdyaXRlciBvdXRCdWZXcml0ZTsKKyAgICAvL1ByaW50V3JpdGVyIG15T3V0OworICAgIAorICAgIHB1YmxpYyBMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHRoaXMub3V0ID0gb3V0OworICAgICAgICB0aGlzLmVyciA9IG91dDsKKyAgICAvKiAgICB0cnl7CisgICAgICAgICAgICBvdXRGaWxlLmNhbldyaXRlKCk7CisgICAgICAgICAgICBvdXRGaWxlU3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSk7CisgICAgICAgICAgICBvdXRCdWZXcml0ZSA9IG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG91dEZpbGVTdHJlYW0sIlVURjgiKSk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBjYXRjaChqYXZhLmlvLklPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbmNvZGluZyB1bnN1cHBvcnRlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgKi8gIAorICAgIH0KKyAgICBwdWJsaWMgTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHRoaXMub3V0ID0gb3V0OworICAgICAgICB0aGlzLmVyciA9IGVycjsKKyAgICAgICAgLyoKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgb3V0RmlsZS5jYW5Xcml0ZSgpOworICAgICAgICAgICAgb3V0RmlsZVN0cmVhbSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpOworICAgICAgICAgICAgb3V0QnVmV3JpdGUgPSBuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihvdXRGaWxlU3RyZWFtLCJVVEY4IikpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goamF2YS5pby5JT0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5jb2RpbmcgdW5zdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAqLyAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoTG9jYWxlIGxvY2FsZSwgSGFzaHRhYmxlIGxvY2FsZURhdGEpIHsKKyAgICAgICAgb3Blbihsb2NhbGUpOworICAgICAgICAgICAgLy9zb3J0IHRoZSBrZXkgc28gdGhlIHRhZ3MgYXJlIGluIG9yZGVyIGluIHRoZSByZXNvdXJjZSBmaWxlCisgICAgICAgIFNvcnRlZFZlY3RvciBvcmRlciA9IG5ldyBTb3J0ZWRWZWN0b3IobG9jYWxlRGF0YS5rZXlzKCksIG5ldyBTb3J0ZWRWZWN0b3IuU3RyaW5nQ29tcGFyYXRvcigpKTsKKyAgICAgICAgRW51bWVyYXRpb24gZSA9IG9yZGVyLmVsZW1lbnRzKCk7CisgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcga2V5ID0gKFN0cmluZyllLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBmaW5hbCBPYmplY3QgZGF0YSA9IGxvY2FsZURhdGEuZ2V0KGtleSk7CisgICAgICAgICAgICBpZiAoaXNEdXBsaWNhdGVPZkluaGVyaXRlZFZhbHVlKGxvY2FsZSwga2V5LCBkYXRhKSkgeworICAgICAgICAgICAgICAgcHJpbnRsbigiLy8vKiBEaXNjYXJkaW5nIGR1cGxpY2F0ZSBkYXRhIGZvciB0YWc6ICIra2V5KyIgKi8iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgd3JpdGUoa2V5LCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgIAorICAgICAgICBjbG9zZSgpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIGNsb3NlRmlsZUhhbmRsZSgpeworICAgICAgICAgdHJ5eworICAgICAgICAgICAgb3V0QnVmV3JpdGUuY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChqYXZhLmlvLklPRXhjZXB0aW9uIGV4Y3ApeworICAgICAgICAgICAgb3V0LnByaW50bG4oImNvdWxkIG5vdCBjbG9zZSB0aGUgb3V0cHV0IGZpbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBPYmplY3QgbykgeworICAgICAgICBpZiAobyBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgd3JpdGUodGFnLCAoU3RyaW5nKW8pOworICAgICAgICB9IGVsc2UgaWYgKG8gaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgd3JpdGUodGFnLCAoU3RyaW5nW10pIG8pOworICAgICAgICB9IGVsc2UgaWYgKG8gaW5zdGFuY2VvZiBTdHJpbmdbXVtdKSB7CisgICAgICAgICAgICB3cml0ZSh0YWcsIChTdHJpbmdbXVtdKW8pOworICAgICAgICB9IGVsc2UgaWYgKG8gaW5zdGFuY2VvZiBPYmplY3RbXSkgeworICAgICAgICAgICAgT2JqZWN0W10gZGF0YSA9IChPYmplY3RbXSlvOworICAgICAgICAgICAgU3RyaW5nW10gdGVtcCA9IG5ldyBTdHJpbmdbZGF0YS5sZW5ndGhdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgdGVtcFtpXSA9IGRhdGFbaV0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdyaXRlKHRhZywgdGVtcCk7CisgICAgICAgIH0gZWxzZSBpZiAobyBpbnN0YW5jZW9mIE9iamVjdFtdW10pIHsKKyAgICAgICAgICAgIE9iamVjdFtdW10gZGF0YSA9IChPYmplY3RbXVtdKW87CisgICAgICAgICAgICBTdHJpbmdbXVtdIHRlbXAgPSBuZXcgU3RyaW5nW2RhdGEubGVuZ3RoXVtdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgdGVtcFtpXSA9IG5ldyBTdHJpbmdbZGF0YVtpXS5sZW5ndGhdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVtcFtpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICB0ZW1wW2ldW2pdID0gZGF0YVtpXVtqXS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdyaXRlKHRhZywgdGVtcCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3cml0ZSh0YWcsIG8udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgaWYgKHZhbHVlWzBdLmxlbmd0aCA+IDIpIHsKKyAgICAgICAgICAgICAgICB3cml0ZTJEKHRhZywgdmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB3cml0ZVRhZ2dlZCh0YWcsIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdyaXRlVGFnZ2VkKHRhZywgdmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmcgdmFsdWUpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdIHZhbHVlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCB3cml0ZTJEKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGNsb3NlKCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCk7CisKKyAgICBwcm90ZWN0ZWQgdm9pZCB0YWJUbyhpbnQgcG9zKSB7CisgICAgICAgIGlmIChwb3MgPiBsaW5lTGVuZ3RoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gbGluZUxlbmd0aDsgaSA8IHBvczsgaSsrKSB7CisgICAgICAgICAgICAgICAgcHJpbnQoIiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvKgorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVG9GaWxlKFN0cmluZyBzdHIpeworICAgICAgICAgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICAgICBvdXRCdWZXcml0ZS53cml0ZShwcmVwZW5kRXNjKHN0cikpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKGphdmEuaW8uSU9FeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiQ291bGQgbm90IHdyaXRlIHRvIGZpbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHByaW50KFN0cmluZyB2YWwpIHsKKyAgICAgICAgaWYgKG5lZWRzSW5kZW50KSB7CisgICAgICAgICAgICBvdXQucHJpbnQoaW5kZW50U3RyaW5nKTsKKyAgICAgICAgICAgIC8vd3JpdGVUb0ZpbGUoaW5kZW50U3RyaW5nKTsKKyAgICAgICAgICAgIGxpbmVMZW5ndGggKz0gaW5kZW50U3RyaW5nLmxlbmd0aCgpOworICAgICAgICAgICAgbmVlZHNJbmRlbnQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdHZhbCA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWwpOworICAgICAgICBpZih0dmFsLmxlbmd0aCgpIDwgdmFsLmxlbmd0aCgpKXsKKyAgICAgICAgICAgIHR2YWw9cHJlcGVuZEVzYyh0dmFsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodHZhbCAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXQucHJpbnQocHJlcGVuZEVzYyh0dmFsKSk7CisgICAgICAgICAgICAvL3dyaXRlVG9GaWxlKHR2YWwpOworICAgICAgICAgICAgaW50IGxlbiA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEVPTF9DSEFSUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGxlbiA9IE1hdGgubWF4KGxlbiwgdHZhbC5sYXN0SW5kZXhPZihFT0xfQ0hBUlNbaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZW4gPT0gMCkgeworICAgICAgICAgICAgICAgIGxpbmVMZW5ndGggKz0gdHZhbC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGluZUxlbmd0aCA9IHR2YWwubGVuZ3RoKCkgLSBsZW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIFN0cmluZyBwcmVwZW5kRXNjKFN0cmluZyBzdHIpeworICAgICAgICBTdHJpbmdCdWZmZXIgbXlTdHIgPSAgbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IoaW50IGk9MDtpPHN0ci5sZW5ndGgoKTtpKyspeworICAgICAgICAgICAgY2hhciBjaCA9IHN0ci5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZihjaCA+IDB4MDA3ZiB8fCBjaCA8IDB4MDAyMCl7CisgICAgICAgICAgICAgICAgaWYoY2ghPTB4MDAwOSl7CisgICAgICAgICAgICAgICAgICAgIG15U3RyLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgICAgIG15U3RyLmFwcGVuZCh0b0hleFN0cmluZyhjaCwxNiw0KSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIG15U3RyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZXsKKyAgICAgICAgICAgICAgICBteVN0ci5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBteVN0ci50b1N0cmluZygpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHRvSGV4U3RyaW5nKGNoYXIgY2gsIGludCByYWRpeCwgaW50IHBhZCl7CisgICAgICAgIGZpbmFsIGludCBNQVhfRElHSVRTID0gMTA7CisgICAgICAgIGludCBsZW5ndGggPSAwOworICAgICAgICBjaGFyIGJ1ZmZlcltdID0gbmV3IGNoYXJbMTBdOworICAgICAgICBpbnQgbnVtID0gMDsKKyAgICAgICAgaW50IGRpZ2l0OworICAgICAgICBpbnQgajsKKyAgICAgICAgY2hhciB0ZW1wOworICAgICAgICBpbnQgaSA9IChpbnQpY2g7CisgICAgICAgIGRveworICAgICAgICAgICAgZGlnaXQgPSAoaW50KShpICUgcmFkaXgpOworICAgICAgICAgICAgYnVmZmVyW2xlbmd0aCsrXT0oY2hhcikoZGlnaXQ8PTk/KDB4MDAzMCtkaWdpdCk6KDB4MDAzMCtkaWdpdCs3KSk7CisgICAgICAgICAgICBpPShpL3JhZGl4KTsKKyAgICAgICAgfXdoaWxlKGk+MCk7CisKKyAgICAgICAgd2hpbGUgKGxlbmd0aCA8IHBhZCl7ICAgCisgICAgICAgICAgICBidWZmZXJbbGVuZ3RoKytdID0gIDB4MDAzMDsvKnplcm8gcGFkZGluZyAqLworICAgICAgICB9CisgICAgICAgIC8qIG51bGwgdGVybWluYXRlIHRoZSBidWZmZXIgKi8KKyAgICAgICAgaWYobGVuZ3RoPE1BWF9ESUdJVFMpeworICAgICAgICAgICAgYnVmZmVyW2xlbmd0aF0gPSAgMHgwMDAwOworICAgICAgICB9CisgICAgICAgIG51bT0gKHBhZD49bGVuZ3RoKSA/IHBhZCA6bGVuZ3RoOworICAgICAgICAgICAgICAKKyAgICAgICAgLyogUmV2ZXJzZXMgdGhlIHN0cmluZyAqLworICAgICAgICBmb3IgKGogPSAwOyBqIDwgKG51bSAvIDIpOyBqKyspeworICAgICAgICAgICAgdGVtcCA9IGJ1ZmZlclsobGVuZ3RoLTEpIC0gal07CisgICAgICAgICAgICBidWZmZXJbKGxlbmd0aC0xKSAtIGpdID0gYnVmZmVyW2pdOworICAgICAgICAgICAgYnVmZmVyW2pdID0gdGVtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmZmVyLDAsbGVuZ3RoKTsKKyAgICB9CisgICAgICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByaW50bG4oU3RyaW5nIHZhbCkgeworICAgICAgICBwcmludCh2YWwpOworICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICAvL3dyaXRlVG9GaWxlKCJcbiIpOworICAgICAgICBsaW5lTGVuZ3RoID0gMDsKKyAgICAgICAgbmVlZHNJbmRlbnQgPSB0cnVlOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHByaW50U3RyaW5nKFN0cmluZyB2YWwpIHsKKyAgICAgICAgaWYgKHZhbCAhPSBudWxsKSB7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGxpbmVCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICBmaW5hbCBpbnQgc2l6ZSA9IHZhbC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKHZhbC5jaGFyQXQoaSkpOworICAgICAgICAgICAgICAgIC8qaWYgKCFhcHBlbmQodmFsLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4obGluZUJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICAgICAgfSovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgcHJpbnQobGluZUJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50KCJcIlwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBib29sZWFuIGlzU3BlY2lhbENoYXIoY2hhciBjaCl7CisgICAgICAgICAgICAgICAgIAorICAgICAgICBpZigoKCgoY2gpIDw9IDB4MDAyRikgJiYgKChjaCkgPj0gMHgwMDIwKSkgfHwgCisgICAgICAgICAgKCgoY2gpIDw9IDB4MDAzRikgJiYgKChjaCkgPj0gMHgwMDNBKSkgfHwgCisgICAgICAgICAgKCgoY2gpIDw9IDB4MDA2MCkgJiYgKChjaCkgPj0gMHgwMDVCKSkgfHwgCisgICAgICAgICAgKCgoY2gpIDw9IDB4MDA3RSkgJiYgKChjaCkgPj0gMHgwMDdEKSkgfHwgCisgICAgICAgICAgKGNoKSA9PSAweDAwN0IpKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHByaW50UnVsZVN0cmluZyhTdHJpbmcgc3JjKXsKKyAgICAgU3RyaW5nIHZhbCA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZShzcmMpOworICAgICBpZiAodmFsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgbGluZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBzaXplID0gdmFsLmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gdmFsLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZihjaD09J1xcJyl7IC8vZXNjYXBlIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgaWYoKChpKzEpIDwgdmFsLmxlbmd0aCgpKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMyID0gdmFsLmNoYXJBdChpKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsQ2hhcihjMikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzY2FwZSB0aGUgZXNjYXBlIGFuZCBlc2NhcGUgdGhlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChjMik7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSB0aGUgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvdWJsZSBlc2NhcGUgdGhlIGVzY2FwZSBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGlmKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgIHByaW50KGxpbmVCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludCgiXCJcIiIpOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHByaW50VW5xdW90ZWRTdHJpbmcoU3RyaW5nIHZhbCkgeworICAgICAgICAgaWYgKHZhbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgbGluZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgLy9saW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgICBmaW5hbCBpbnQgc2l6ZSA9IHZhbC5sZW5ndGgoKTsKKyAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICBhcHBlbmQodmFsLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgIC8qaWYgKCFhcHBlbmQodmFsLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZChnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4obGluZUJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgICAgICAgfSovCisgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgLy9saW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgICBwcmludChsaW5lQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgcHJpbnQoIiIpOworICAgICAgICAgfQorICAgICB9ICAgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXBwZW5kKGZpbmFsIGNoYXIgYykgeworICAgICAgICBib29sZWFuIGVzY2FwZSA9IGlzRXNjYXBlQ2hhcihjKTsKKyAgICAgICAgaWYgKGVzY2FwZSkgeworICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIoYywgbGluZUJ1ZmZlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGxpbmVMZW5ndGggKyBsaW5lQnVmZmVyLmxlbmd0aCgpIDwgTUFYX0xJTkVfTEVOR1RIKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFc2NhcGVDaGFyKGZpbmFsIGNoYXIgYykgeworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAnIic6CisgICAgICAgIGNhc2UgJ1xcJzoKKyAgICAgICAgY2FzZSAnXG4nOgorICAgICAgICBjYXNlICdccic6CisgICAgICAgIGNhc2UgJ1x1MjAyOCc6CisgICAgICAgIGNhc2UgJ1x1MjAyOSc6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAoYyA8ICcgJykgfHwgKGMgPiAweDA3Rik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hhciBjLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmKGM+PTB4MjAgJiYgYyA8IDB4N2YpeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGdldEVzY2FwZUNoYXIoKSk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSAoKGludCljKSAmIDB4RkZGRjsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyh2YWx1ZSAmIDB4RjAwMCkgPj4gMTJdKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyh2YWx1ZSAmIDB4MEYwMCkgPj4gOF0pOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKHZhbHVlICYgMHgwMEYwKSA+PiA0XSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsodmFsdWUgJiAweDAwMEYpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRFc2NhcGVDaGFyKCkgeworICAgICAgICByZXR1cm4gIlxcdSI7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIGluZGVudCgpIHsKKyAgICAgICAgaW5kZW50KDEpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbmRlbnQoaW50IGFtb3VudCkgeworICAgICAgICBpbmRlbnRMZXZlbCArPSBhbW91bnQ7CisgICAgICAgIGluZGVudFN0cmluZyA9IElOREVOVF9DSEFSUy5zdWJzdHJpbmcoMCwgaW5kZW50TGV2ZWwqSU5ERU5UX1NJWkUpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBvdXRkZW50KCkgeworICAgICAgICBvdXRkZW50KDEpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBvdXRkZW50KGludCBhbW91bnQpIHsKKyAgICAgICAgaW5kZW50TGV2ZWwgLT0gYW1vdW50OworICAgICAgICBpbmRlbnRTdHJpbmcgPSBJTkRFTlRfQ0hBUlMuc3Vic3RyaW5nKDAsIGluZGVudExldmVsKklOREVOVF9TSVpFKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2hhcltdIEhFWF9ESUdJVCA9IHsnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNicsJzcnLAorICAgICAgICAgICAgICAgICAgICAgJzgnLCc5JywnQScsJ0InLCdDJywnRCcsJ0UnLCdGJ307CisKKyAgICAvKiogUmV0dXJuIHRydWUgaWYgdGhlIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIHRhZyBpcyB0aGUgc2FtZQorICAgICAqIGFzIHRoZSB2YWx1ZSBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IGZvciB0aGF0IHRhZyAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0R1cGxpY2F0ZU9mSW5oZXJpdGVkVmFsdWUoZmluYWwgTG9jYWxlIGxvYywgU3RyaW5nIHRhZywgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIFJlc291cmNlQnVuZGxlIHBhcmVudEJ1bmRsZSA9IGdldFBhcmVudEJ1bmRsZShsb2MpOworICAgICAgICAgICAgaWYgKHBhcmVudEJ1bmRsZSA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBPYmplY3QgcGFyZW50VmFsdWUgPSBwYXJlbnRCdW5kbGUuZ2V0T2JqZWN0KHRhZyk7CisgICAgICAgICAgICBpZiAoIW9iamVjdHNBcmVFcXVhbCh2YWx1ZSwgcGFyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIG9iamVjdHNBcmVFcXVhbChmaW5hbCBPYmplY3QgaXRlbSwgZmluYWwgT2JqZWN0IHBhcmVudEl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBPYmplY3RbXSAmJiBwYXJlbnRJdGVtIGluc3RhbmNlb2YgT2JqZWN0W10pIHsKKyAgICAgICAgICAgIHJldHVybiBhcnJheXNBcmVFcXVhbCgoT2JqZWN0W10paXRlbSwgKE9iamVjdFtdKXBhcmVudEl0ZW0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZXF1YWxzKHBhcmVudEl0ZW0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBhcnJheXNBcmVFcXVhbChmaW5hbCBPYmplY3RbXSBpdGVtLCBmaW5hbCBPYmplY3RbXSBwYXJlbnRJdGVtKSB7CisgICAgICAgIGJvb2xlYW4gbWF0Y2hlcyA9IGl0ZW0ubGVuZ3RoID09IHBhcmVudEl0ZW0ubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW0ubGVuZ3RoICYmIG1hdGNoZXM7IGkrKykgeworICAgICAgICAgICAgbWF0Y2hlcyA9IG9iamVjdHNBcmVFcXVhbChpdGVtW2ldLCBwYXJlbnRJdGVtW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWF0Y2hlczsKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50QnVuZGxlKGZpbmFsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyB4ID0gbG9jLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBmaW5hbCBpbnQgbmR4ID0geC5sYXN0SW5kZXhPZignXycpOworICAgICAgICAgICAgaWYgKG5keCA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIHBhcmVudExvY05hbWUgPSB4LnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICAgICAgICAgIGZpbmFsIExvY2FsZSBwYXJlbnRMb2MgPSBsb2NhbGVGcm9tU3RyaW5nKHBhcmVudExvY05hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlci5teUxvY2FsZUVsZW1lbnRzIiwgcGFyZW50TG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgU3RyaW5nIHJlcGxhY2VtZW50KSB7CisgICAgICAgIGlmICh0YXJnZXQuZXF1YWxzKHJlcGxhY2VtZW50KSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgbGFzdE5keCA9IDA7CisgICAgICAgICAgICBpbnQgbmR4ID0gc291cmNlLmluZGV4T2YodGFyZ2V0KTsKKyAgICAgICAgICAgIHdoaWxlIChuZHggPj0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlLnN1YnN0cmluZyhsYXN0TmR4LCBuZHgpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgICAgICBuZHggKz0gdGFyZ2V0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGxhc3ROZHggPSBuZHg7CisgICAgICAgICAgICAgICAgbmR4ID0gc291cmNlLmluZGV4T2YodGFyZ2V0LCBuZHgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKGxhc3ROZHgpKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBMb2NhbGUgbG9jYWxlRnJvbVN0cmluZyhmaW5hbCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsb2NhbGVOYW1lOworICAgICAgICBTdHJpbmcgY291bnRyeSA9ICIiOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IG5keCA9IGxhbmd1YWdlLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9OZXV0cmFsVG9KMUNvbnZlcnRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9OZXV0cmFsVG9KMUNvbnZlcnRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMwMjNjNDFkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTmV1dHJhbFRvSjFDb252ZXJ0ZXIuamF2YQpAQCAtMCwwICsxLDIwMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBOZXV0cmFsVG9KMUNvbnZlcnRlciBleHRlbmRzIExvY2FsZUNvbnZlcnRlciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29udmVyc2lvbiB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHByb3BOYW1lOworICAgICAgICBwcml2YXRlIGludCBuZHg7CisgICAgICAgIHByb3RlY3RlZCBDb252ZXJzaW9uKCkgeworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb252ZXJzaW9uKFN0cmluZyBwcm9wTmFtZSkgeworICAgICAgICAgICAgdGhpcy5wcm9wTmFtZSA9IHByb3BOYW1lOworICAgICAgICAgICAgdGhpcy5uZHggPSAtMTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQ29udmVyc2lvbihTdHJpbmcgcHJvcE5hbWUsIGludCBuZHgpIHsKKyAgICAgICAgICAgIHRoaXMucHJvcE5hbWUgPSBwcm9wTmFtZTsKKyAgICAgICAgICAgIHRoaXMubmR4ID0gbmR4OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcE5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gcHJvcE5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBjb252ZXJ0KEhhc2h0YWJsZSBzb3VyY2UpIHRocm93cyBDb252ZXJzaW9uRXJyb3IgeworICAgICAgICAgICAgT2JqZWN0IHNvdXJjZURhdGEgPSBzb3VyY2UuZ2V0KHByb3BOYW1lKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VEYXRhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChzb3VyY2VEYXRhIGluc3RhbmNlb2YgU3RyaW5nW10pIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlRGF0YSA9ICgoU3RyaW5nW10pc291cmNlRGF0YSlbbmR4XTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZURhdGEgaW5zdGFuY2VvZiBTdHJpbmdbXVtdKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZURhdGEgPSAoKFN0cmluZ1tdW10pc291cmNlRGF0YSlbbmR4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc291cmNlRGF0YSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKXNvdXJjZURhdGE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZURhdGEgaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGRhdGEgPSAoU3RyaW5nW10pc291cmNlRGF0YTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHJlc3VsdC5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkYXRhW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29udmVyc2lvbkVycm9yKCJjb3VsZCBub3QgY29udmVydCB0YWc6ICIrcHJvcE5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29sbGF0aW9uQ29udmVyc2lvbiBleHRlbmRzIENvbnZlcnNpb24geworICAgICAgICBwdWJsaWMgU3RyaW5nIGNvbnZlcnQoSGFzaHRhYmxlIHNvdXJjZSkgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisgICAgICAgICAgICBPYmplY3RbXVtdIGVsZW1lbnRzID0gKE9iamVjdFtdW10pc291cmNlLmdldCgiY29sbGF0aW9ucyIpOworICAgICAgICAgICAgQ29sbGF0aW9uSXRlbVtdIGl0ZW1zID0gKENvbGxhdGlvbkl0ZW1bXSllbGVtZW50c1syXVsxXTsKKyAgICAgICAgICAgIGlmIChpdGVtcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXRlbXNbaV0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpdGVtc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDb252ZXJzaW9uW10gY29udmVyc2lvbnMgPSB7CisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJMb2NhbGVTdHJpbmciKSwgLypsb2NhbGUgaWQgYmFzZWQgb24gaXNvIGNvZGVzKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkxvY2FsZUlEIiksIC8qV2luZG93cyBpZCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJTaG9ydExhbmd1YWdlIiksIC8qaXNvLTMgYWJicmV2IGxhbmcgbmFtZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJTaG9ydENvdW50cnkiKSwgLyppc28tMyBhYmJyZXYgY291bnRyeSBuYW1lKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkxhbmd1YWdlcyIpLCAvKmxhbmd1YWdlIG5hbWVzKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkNvdW50cmllcyIpLCAvKmNvdW50cnkgbmFtZXMqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMCksIC8qamFudWFyeSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwxKSwgLypmZWJydWFyeSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwyKSwgLyptYXJjaCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwzKSwgLyphcHJpbCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiw0KSwgLyptYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsNSksIC8qanVuZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiw2KSwgLypqdWx5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDcpLCAvKmF1Z3VzdCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiw4KSwgLypzZXB0ZW1iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsOSksIC8qb2N0b2JlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwxMCksIC8qbm92ZW1iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMTEpLCAvKmRlY2VtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDEyKSwgLyptb250aCAxMyBpZiBhcHBsaWNhYmxlKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMCksIC8qYWJiIGphbnVhcnkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwxKSwgLyphYmIgZmVicnVhcnkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwyKSwgLyphYmIgbWFyY2gqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwzKSwgLyphYmIgYXByaWwqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiw0KSwgLyphYmIgbWF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsNSksIC8qYWJiIGp1bmUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiw2KSwgLyphYmIganVseSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDcpLCAvKmFiYiBhdWd1c3QqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiw4KSwgLyphYmIgc2VwdGVtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsOSksIC8qYWJiIG9jdG9iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwxMCksIC8qYWJiIG5vdmVtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMTEpLCAvKmFiYiBkZWNlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDEyKSwgLyphYmIgbW9udGggMTMgaWYgYXBwbGljYWJsZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsMCksIC8qTW9uZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiwxKSwgLypUdWVzZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiwyKSwgLypXZWRuZXNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDMpLCAvKlRodXJzZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiw0KSwgLypGcmlkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDUpLCAvKlNhdHVyZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiw2KSwgLypTdW5kYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsMCksIC8qYWJiIE1vbmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiwxKSwgLyphYmIgVHVlc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiwyKSwgLyphYmIgV2VkbmVzZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDMpLCAvKmFiYiBUaHVyc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiw0KSwgLyphYmIgRnJpZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDUpLCAvKmFiYiBTYXR1cmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiw2KSwgLyphYmIgU3VuZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkFtUG1NYXJrZXJzIiwwKSwgLyphbSBtYXJrZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiQW1QbU1hcmtlcnMiLDEpLCAvKnBtIG1hcmtlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJFcmFzIiksLyplcmEgc3RyaW5ncyovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJQYXR0ZXJucyIsMCksIC8qZGVjaW1hbCBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlclBhdHRlcm5zIiwxKSwgLypjdXJyZW5jeSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlclBhdHRlcm5zIiwyKSwgLypwZXJjZW50IHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDApLCAvKmRlY2ltYWwgc2VwYXJhdG9yKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiwxKSwgLypncm91cCAodGhvdXNhbmRzKSBzZXBhcmF0b3IqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDIpLCAvKmxpc3Qgc2VwYXJhdG9yKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiwzKSwgLypwZXJjZW50IHNpZ24qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDQpLCAvKm5hdGl2ZSAwIGRpZ2l0Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiw1KSwgLypwYXR0ZXJuIGRpZ2l0Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiw2KSwgLyptaW51cyBzaWduKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiw3KSwgLypleHBvbmVudGlhbCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJDdXJyZW5jeUVsZW1lbnRzIiwwKSwgLypsb2NhbCBjdXJyZW5jeSBzeW1ib2wqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiQ3VycmVuY3lFbGVtZW50cyIsMSksIC8qaW50bCBjdXJyZW5jeSBzeW1ib2wqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiQ3VycmVuY3lFbGVtZW50cyIsMiksIC8qbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsMCksIC8qZnVsbCB0aW1lIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsMSksIC8qbG9uZyB0aW1lIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsMiksIC8qbWVkaXVtIHRpbWUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiwzKSwgLypzaG9ydCB0aW1lIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsNCksIC8qZnVsbCBkYXRlIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsNSksIC8qbG9uZyBkYXRlIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsNiksIC8qbWVkaXVtIGRhdGUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiw3KSwgLypzaG9ydCBkYXRlIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsOCksIC8qZGF0ZS10aW1lIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVFbGVtZW50cyIsOSksIC8qZmlyc3QgZGF5IG9mIHdlZWsqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVFbGVtZW50cyIsMTApLCAvKm1pbiBkYXlzIGluIGZpcnN0IHdlZWsqLworICAgICAgICBuZXcgQ29sbGF0aW9uQ29udmVyc2lvbigpLCAvKmNvbGxhdGlvbiBvcmRlciovCisgICAgfTsKKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGU7CisgICAgcHJpdmF0ZSBMb2NhbGUgcGFyZW50TG9jYWxlOworICAgIHByaXZhdGUgUmVzb3VyY2VCdW5kbGUgZGVmYXVsdERhdGE7CisKKyAgICBwdWJsaWMgTmV1dHJhbFRvSjFDb252ZXJ0ZXIoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgIAorICAgICAgICBpbnQgbmR4ID0gbGFuZ3VhZ2UuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBsYW5ndWFnZS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIiIuZXF1YWxzKGNvdW50cnkpKSB7CisgICAgICAgICAgICBsYW5ndWFnZSA9ICIiOworICAgICAgICAgICAgdmFyaWFudCA9ICIiOworICAgICAgICB9IGVsc2UgaWYgKCIiLmVxdWFscyh2YXJpYW50KSkgeworICAgICAgICAgICAgY291bnRyeSA9ICIiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwYXJlbnRMb2NhbGUgPSBuZXcgTG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTsKKyAgICAgICAgZGVmYXVsdERhdGEgPQorICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXIubXlMb2NhbGVFbGVtZW50cyIsIHBhcmVudExvY2FsZSk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworLy99fQorfQorICAgIAorICAgIC8qKiBjb252ZXJ0IHRoZSBzb3VyY2UgdGFibGUgdG8gdGhlIHJlc3VsdCAqLworICAgIHByb3RlY3RlZCB2b2lkIGNvbnZlcnQoSGFzaHRhYmxlIHJlc3VsdCwgSGFzaHRhYmxlIHNvdXJjZSkgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisgICAgICAgIFZlY3RvciBsb2NhbGVFbGVtZW50cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb252ZXJzaW9ucy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZmluYWwgQ29udmVyc2lvbiBjb252ID0gY29udmVyc2lvbnNbaV07CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbmV3VmFsdWUgPSBjb252LmNvbnZlcnQoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9jYWxlRWxlbWVudHMuYWRkRWxlbWVudChuZXdWYWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvY2FsZUVsZW1lbnRzLmFkZEVsZW1lbnQoZGVmYXVsdERhdGEuZ2V0T2JqZWN0KGNvbnYuZ2V0UHJvcE5hbWUoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlc3VsdC5wdXQoIkxvY2FsZUVsZW1lbnRzIiwgbG9jYWxlRWxlbWVudHMpOworICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworLy99fQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUE9TSVhMb2NhbGVSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUE9TSVhMb2NhbGVSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTEzNjcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9QT1NJWExvY2FsZVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsNDA3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBQT1NJWExvY2FsZVJlYWRlciB7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbG9jYWxlRGF0YVBhdGg7CisgICAgcHJpdmF0ZSBmaW5hbCBMb2NhbGUgbG9jYWxlOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHX1RPS0VOID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRVBBUkFUT1JfVE9LRU4gPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVPTF9UT0tFTiA9IDM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRU9GX1RPS0VOID0gNDsKKworICAgICAgICAvL3RoZXNlIHN0YXRlcyBhcmUgdXNlZCB0byBwYXJzZSB0aGUgYnVsayBvZiB0aGUKKyAgICAgICAgLy9pbnB1dCBmaWxlLiAgVGhleSB0cmFuc2xhdGUgZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgICAgIC8vYW5kIHN5bW9saWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgaW5saW5lLgorICAgIHN0YXRpYyBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gZGF0YVN0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IHN0YXJ0CisgICAgICAgICAgICBuZXcgU3BhY2VUcmFuc2l0aW9uKDApLAorICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignOycsIExleC5JR05PUkVfQ09OU1VNRSwgU0VQQVJBVE9SX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJywnLCBMZXguSUdOT1JFX0NPTlNVTUUsIFNFUEFSQVRPUl9UT0tFTiksCisgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0xfVE9LRU4pLAorICAgICAgICAgICAgbmV3IFRva2VuVHJhbnNpdGlvbihUQUdfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKEVPRl9UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigidW5leHBlY3RlZCBjaGFyYWN0ZXJzIikKKyAgICAgICAgfQorICAgIH07CisKKyAgICBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIExDU3RhdGVzID0geworICAgICAgICB7IC8vc3RhdGUgMDogc3RhcnQKKyAgICAgICAgICAgIG5ldyBTcGFjZVRyYW5zaXRpb24oMCksCisgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0xfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKEVPRl9UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICB9LAorICAgICAgICB7ICAgLy9ncmFiIGZpcnN0IHdvcmQKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTcGFjZVRyYW5zaXRpb24uU1BBQ0VfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgVEFHX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xUcmFuc2l0aW9uLkVPTF9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCBUQUdfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFRBR19UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICB9CisgICAgfTsKKworICAgIHB1YmxpYyBQT1NJWExvY2FsZVJlYWRlcihmaW5hbCBTdHJpbmcgbG9jYWxlRGF0YVBhdGgsIGZpbmFsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVEYXRhUGF0aCA9IGxvY2FsZURhdGFQYXRoOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisvL319Cit9CisgICAgCisgICAgcHVibGljIEhhc2h0YWJsZSBwYXJzZShTdHJpbmcgZmlsZU5hbWUsIGJ5dGUgZmxhZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBIYXNodGFibGUgdGFibGUgPSBwYXJzZU5hdGl2ZShmaWxlTmFtZSk7CisgICAgICAgICAgICBIYXNodGFibGUgcmVzdWx0ID0gbmV3IFBvc2l4VG9OZXV0cmFsQ29udmVydGVyKGZsYWdzLCBsb2NhbGUsZmlsZU5hbWUpLmNvbnZlcnQodGFibGUpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoTG9jYWxlQ29udmVydGVyLkNvbnZlcnNpb25FcnJvciBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkludGVybmFsIGVycm9yIGNvbnZlcnRpbmcgbG9jYWxlIGRhdGEiKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBIYXNodGFibGUgcGFyc2VOYXRpdmUoU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjaGFyIG9sZEVzY2FwZUNoYXIgPSBFc2NhcGVUcmFuc2l0aW9uLnNldERlZmF1bHRFc2NhcGVDaGFyKCk7CisgICAgICAgIGNoYXIgb2xkQ29tbWVudENoYXIgPSBFT0xUcmFuc2l0aW9uLnNldERlZmF1bHRDb21tZW50Q2hhcigpOworICAgICAgICBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExpbmVDaGFyTnVtYmVyUmVhZGVyIGxpbmVzID0gbmV3IExpbmVDaGFyTnVtYmVyUmVhZGVyKAorICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVSZWFkZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZShsb2NhbGVEYXRhUGF0aCwgZmlsZU5hbWUpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApOworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcmVhZGVyID0gbmV3IFB1c2hiYWNrUmVhZGVyKGxpbmVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9TaG92ZSBhIG5ld2xpbmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLiAgVGhpcyBoYXMgdGhlIGFmZmVjdCBvZiBhbGxvd2luZworICAgICAgICAgICAgLy90aGUgZmlsZSB0byBzdGFydCB3aXRoIGEgY29tbWVudCwgc2luY2UgdGhlIHBhcnNlciBvbmx5IGFsbG93cyBjb21tZW50cyBhcyAKKyAgICAgICAgICAgIC8vcGFydCBvZiBhbiBFT0wKKyAgICAgICAgICAgIHJlYWRlci51bnJlYWQoJ1xuJyk7CisKKyAgICAgICAgICAgIFN0cmluZyBzZWN0aW9uVGFnID0gc2Vla0xDKHJlYWRlcik7CisgICAgICAgICAgICB3aGlsZSAoc2VjdGlvblRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VTZWN0aW9uKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKExleC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1IgcGFyc2luZzogIitlLnJlYXNvbik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgICAgTGluZTogIitsaW5lcy5nZXRMaW5lTnVtYmVyKCkpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIiAgICAgICAgIGNoYXI6ICIrbGluZXMuZ2V0Q2hhck51bWJlcigpKTsKKyAgICAgICAgICAgICAgICAgICAgc2Vla0VORChyZWFkZXIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlNraXBwZWQgdG8gbGluZTogIisobGluZXMuZ2V0TGluZU51bWJlcigpKzEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VjdGlvblRhZyA9IHNlZWtMQyhyZWFkZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5zZXRFc2NhcGVDaGFyKG9sZEVzY2FwZUNoYXIpOworICAgICAgICAgICAgRU9MVHJhbnNpdGlvbi5zZXRDb21tZW50Q2hhcihvbGRDb21tZW50Q2hhcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhYmxlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VTZWN0aW9uKEhhc2h0YWJsZSB0YWJsZSwgUHVzaGJhY2tSZWFkZXIgcmVhZGVyLCBTdHJpbmcgc2VjdGlvblRhZykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19DVFlQRSIpKSB7CisgICAgICAgICAgICBwYXJzZUNUWVBFKHRhYmxlLCByZWFkZXIpOworICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19DT0xMQVRFIikpIHsKKyAgICAgICAgICAgIHBhcnNlQ09MTEFURSh0YWJsZSwgcmVhZGVyKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfTU9ORVRBUlkiKSkgeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfTlVNRVJJQyIpKSB7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19USU1FIikpIHsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH0gZWxzZSBpZiAoc2VjdGlvblRhZy5lcXVhbHMoIkxDX01FU1NBR0VTIikpIHsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19NRUFTVVJFTUVOVCIpKXsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19BRERSRVNTIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX1BBUEVSIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX05BTUUiKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfSURFTlRJRklDQVRJT04iKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfVEVMRVBIT05FIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgICAgIAorICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVucmVjb2duaXNlZCBzZWN0aW9uOiIrc2VjdGlvblRhZyk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRlZmF1bHQgcGFyc2luZyBhcHBsaWVkLiIpOworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgUHVzaGJhY2tSZWFkZXIgY3JlYXRlUGFyc2VySW5wdXQoU3RyaW5nIGxvY2FsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFB1c2hiYWNrUmVhZGVyIHJlYWRlciA9IG5ldyBQdXNoYmFja1JlYWRlcigKKyAgICAgICAgICAgIG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZVJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGUobG9jYWxlRGF0YVBhdGgsIGxvY2FsZU5hbWUpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICApOworICAgICAgICAvL1Nob3ZlIGEgbmV3bGluZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUuICBUaGlzIGhhcyB0aGUgYWZmZWN0IG9mIGFsbG93aW5nCisgICAgICAgIC8vdGhlIGZpbGUgdG8gc3RhcnQgd2l0aCBhIGNvbW1lbnQsIHNpbmNlIHRoZSBwYXJzZXIgb25seSBhbGxvd3MgY29tbWVudHMgYXMgCisgICAgICAgIC8vcGFydCBvZiBhbiBFT0wKKyAgICAgICAgcmVhZGVyLnVucmVhZCgnXG4nKTsKKyAgICAgICAgcmV0dXJuIHJlYWRlcjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgc2Vla0xDKFB1c2hiYWNrUmVhZGVyIHJlYWRlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTGV4IHAgPSBuZXcgTGV4KExDU3RhdGVzLCByZWFkZXIpOworICAgICAgICBmaW5hbCBTdHJpbmcgTEMgPSAiTENfIjsKKyAgICAgICAgaW50IHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICB3aGlsZSAoKHMgIT0gRU9GX1RPS0VOKSkgeworICAgICAgICAgICAgaWYgKHMgPT0gVEFHX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgaWYgKHAuZGF0YVN0YXJ0c1dpdGgoTEMpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YWcgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKHMgIT0gRU9MX1RPS0VOICYmIHMgIT0gRU9GX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhZzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAuZGF0YUVxdWFscygiZXNjYXBlX2NoYXIiKSkgeworICAgICAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gVEFHX1RPS0VOIHx8IHAuZ2V0RGF0YSgpLmxlbmd0aCgpICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBlc2NhcGVfY2hhciA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5zZXRFc2NhcGVDaGFyKGVzY2FwZV9jaGFyLmNoYXJBdCgwKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIGluIGVzY2FwZV9jaGFyIGRpcmVjdGl2ZS4gIERpcmVjdGl2ZSBpZ25vcmVkLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwLmRhdGFFcXVhbHMoImNvbW1lbnRfY2hhciIpKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4gfHwgcC5nZXREYXRhKCkubGVuZ3RoKCkgIT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbW1lbnRfY2hhciA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29tbWVudF9jaGFyLmxlbmd0aCgpID4gMCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU9MVHJhbnNpdGlvbi5zZXRDb21tZW50Q2hhcihjb21tZW50X2NoYXIuY2hhckF0KDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3IgaW4gZXNjYXBlX2NoYXIgZGlyZWN0aXZlLiAgRGlyZWN0aXZlIGlnbm9yZWQuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gc2Vla0VORChQdXNoYmFja1JlYWRlciByZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExleCBwID0gbmV3IExleChMQ1N0YXRlcywgcmVhZGVyKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIEVORCA9ICJFTkQiOworICAgICAgICBpbnQgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgIHdoaWxlICgocyAhPSBFT0ZfVE9LRU4pKSB7CisgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICBpZiAocC5kYXRhU3RhcnRzV2l0aChFTkQpKSB7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChzICE9IEVPTF9UT0tFTiAmJiBzICE9IEVPRl9UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQ1RZUEUoSGFzaHRhYmxlIHRhYmxlLCBQdXNoYmFja1JlYWRlciByZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExleCBwID0gbmV3IExleChkYXRhU3RhdGVzLCByZWFkZXIpOworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICBpZiAoKHMgPT0gVEFHX1RPS0VOKSAmJiBwLmRhdGFFcXVhbHMoImNvcHkiKSkgeworICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgIHBhcnNlQ29weSgiTENfQ1RZUEUiLCBwLmdldERhdGEoKSwgdGFibGUpOworICAgICAgICAgICAgcC5hY2NlcHQoRU9MX1RPS0VOKTsKKyAgICAgICAgICAgIHAuYWNjZXB0KFRBR19UT0tFTiwgIkVORCIpOworICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOLCAiTENfQ1RZUEUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlICgocyA9PSBUQUdfVE9LRU4pICYmICFwLmRhdGFFcXVhbHMoIkVORCIpKSB7ICAKKyAgICAgICAgICAgICAgICAvL0lHTk9SRSB0aGUgQ1RZUEUgZGVmaW5pdGlvbiAuLi4gd2UgZG9udCBuZWVkIGl0CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgIHRlbXAuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIHAuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgcC5hcHBlbmREYXRhVG8odGVtcCk7CisgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHMgPT0gU0VQQVJBVE9SX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgIHAuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIHAuYXBwZW5kRGF0YVRvKHRlbXApOworICAgICAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHMgIT0gRU9MX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogQ291bGQgbm90IHBhcnNlIHRoZSBVbmV4cGVjdGVkIHRva2VuOiBFeHBlY3RpbmcgRU9MIGdvdCAiK3MpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlLnB1dChrZXksIHRlbXAudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOLCAiTENfQ1RZUEUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VDb3B5KFN0cmluZyBzZWN0aW9uLCBTdHJpbmcgdG9Db3B5LCBIYXNodGFibGUgdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhciBvbGRFc2NhcGVDaGFyID0gRXNjYXBlVHJhbnNpdGlvbi5zZXREZWZhdWx0RXNjYXBlQ2hhcigpOworICAgICAgICBjaGFyIG9sZENvbW1lbnRDaGFyID0gRU9MVHJhbnNpdGlvbi5zZXREZWZhdWx0Q29tbWVudENoYXIoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHJlYWRlciA9IGNyZWF0ZVBhcnNlcklucHV0KHRvQ29weSk7CisgICAgICAgICAgICBTdHJpbmcgdGFnID0gc2Vla0xDKHJlYWRlcik7CisgICAgICAgICAgICB3aGlsZSAodGFnICE9IG51bGwgJiYgIXNlY3Rpb24uZXF1YWxzKHRhZykpIHsKKyAgICAgICAgICAgICAgICB0YWcgPSBzZWVrTEMocmVhZGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHBhcnNlU2VjdGlvbih0LCByZWFkZXIsIHNlY3Rpb24pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvL2hleSB7amZ9IC0gaXMgdGhpcyBhbiBlcnJvcj8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIEVzY2FwZVRyYW5zaXRpb24uc2V0RXNjYXBlQ2hhcihvbGRFc2NhcGVDaGFyKTsKKyAgICAgICAgICAgIEVPTFRyYW5zaXRpb24uc2V0Q29tbWVudENoYXIob2xkQ29tbWVudENoYXIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZUxDKEhhc2h0YWJsZSB0LCBQdXNoYmFja1JlYWRlciByZWFkZXIsIFN0cmluZyBzZWN0aW9uVGFnKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBMZXggaW5wdXQgPSBuZXcgTGV4KGRhdGFTdGF0ZXMsIHJlYWRlcik7CisgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICBpZiAoaW5wdXQuZGF0YUVxdWFscygiY29weSIpKSB7CisgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgIHBhcnNlQ29weShzZWN0aW9uVGFnLCBpbnB1dC5nZXREYXRhKCksIHQpOyAgICAgICAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlICgoaW5wdXQuZ2V0U3RhdGUoKSA9PSBUQUdfVE9LRU4pICYmICFpbnB1dC5kYXRhRXF1YWxzKCJFTkQiKSkgeyAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICBWZWN0b3IgdmFsdWVzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgIHZhbHVlcy5hZGRFbGVtZW50KHRlbXApOworICAgICAgICAgICAgICAgIHdoaWxlIChpbnB1dC5uZXh0VG9rZW4oKSA9PSBTRVBBUkFUT1JfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFkZEVsZW1lbnQodmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodmFsdWVzLnNpemUoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gZGF0YSA9IG5ldyBTdHJpbmdbdmFsdWVzLnNpemUoKV07CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5jb3B5SW50byhkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgdC5wdXQobGFiZWwsIGRhdGEpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHQucHV0KGxhYmVsLCB2YWx1ZXMuZWxlbWVudEF0KDApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGlucHV0LmdldFN0YXRlKCkgIT0gRU9MX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXh0cmFuZW91cyB0ZXh0IGFmdGVyIGxhYmVsOiAiICtsYWJlbCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOLCBzZWN0aW9uVGFnKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VDT0xMQVRFKEhhc2h0YWJsZSB0YWJsZSwgUHVzaGJhY2tSZWFkZXIgcmVhZGVyKSAKKyAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFBvc2l4Q2hhck1hcCBtYXAgPSBuZXcgUG9zaXhDaGFyTWFwKFN5bWJvbFRyYW5zaXRpb24uZ2V0Q2hhck1hcCgpKTsKKyAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG1hcCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMZXggaW5wdXQgPSBuZXcgTGV4KGRhdGFTdGF0ZXMsIHJlYWRlcik7CisgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIgYnVpbGRlciA9IG5ldyBQb3NpeENvbGxhdGlvbkJ1aWxkZXIobWFwKTsKKworICAgICAgICAgICAgaW50IHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IEVPTF9UT0tFTikgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gVEFHX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgaWYgKGlucHV0LmRhdGFFcXVhbHMoIkVORCIpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiVU5ERUZJTkVEIikpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBVbmRlZmluZWQgY2hhcmFjdGVycyB3aWxsIHNvcnQgbGFzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyAhPSBFT0ZfVE9LRU4gJiYgcyAhPSBFT0xfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiY29weSIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vY29weSBjb2xsYXRpb24gcnVsZXMgZnJvbSBhbm90aGVyIGxvY2FsZQorICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRvQ29weSA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlQ29weSgiTENfQ09MTEFURSIsIHRvQ29weSwgdGFibGUpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvcHlpbmcgY29sbGF0aW9uIHJ1bGVzIGZyb20gIit0b0NvcHkrIi4uLiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiLi4uIikpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9maWxsIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHRoZSBuZXh0IGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogRWxsaXBzaXMgbm90IHN1cHBvcnRlZCBpbiBjb2xsYXRpb24gcnVsZXMuIik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgIExpbmUgaWdub3JlZCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygicmVwbGFjZS1hZnRlciIpKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IFJlcGxhY2UtYWZ0ZXIgbm90IHN1cHBvcnRlZCBpbiBjb2xsYXRpb24gcnVsZXMuIik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgIFNraXBwaW5nIHVudGlsIG5leHQgcmVwbGFjZS1lbmQuIik7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMgIT0gRU9GX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4gJiYgaW5wdXQuZGF0YUVxdWFscygicmVwbGFjZS1lbmQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJjb2xsYXRpbmctZWxlbWVudCIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vU2V2ZXJhbCBjaGFyYWN0ZXJzIHNob3VsZCBzb3J0IGFzIGEgc2luZ2xlIGVsZW1lbnQuCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOyAgICAvL2dldCB0aGUgc3ltYm9sCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4sICJmcm9tIik7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOyAgICAvL2dldCB0aGUgZXhwYW5zaW9uCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5kZWZpbmVDb250cmFjdGlvbihrZXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJjb2xsYXRpbmctc3ltYm9sIikpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9kZWZpbmUgYSB3ZWlnaHQgc3ltYm9sLiAgVGhpcyBzeW1ib2wgZG9lcyBub3QgcmVwcmVzZW50IGEgY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAvL0l0J3Mgb25seSB1c2VkIGZvciBjb21wYXJpc29uIHB1cnBvc2VzLiAgV2UgZGVmaW5lIHRoZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgLy92YWx1ZSBmb3IgdGhpcyBjaGFyYWN0ZXIgdG8gYmUgaW4gdGhlIHByaXZhdGUgYXJlYSBzaW5jZSBvdXIKKyAgICAgICAgICAgICAgICAgICAgLy9jb2xsYXRpb24gc3R1ZmYgZG9lc24ndCBzb3J0IHRoYXQgYXJlYS4KKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuZGVmaW5lV2VpZ2h0U3ltYm9sKGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygib3JkZXJfc3RhcnQiKSkgeworICAgICAgICAgICAgICAgICAgICBWZWN0b3IgdGVtcFZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgLy9zdGFydCByZWFkaW5nIGNvbGxhdGlvbiBvcmRlcmluZyBydWxlcy4gCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICB0ZW1wVmVjdG9yLmFkZEVsZW1lbnQoaW5wdXQuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyA9PSBTRVBBUkFUT1JfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFZlY3Rvci5hZGRFbGVtZW50KGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gb3JkZXJfc3RhcnQgPSBuZXcgU3RyaW5nW3RlbXBWZWN0b3Iuc2l6ZSgpXTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFZlY3Rvci5jb3B5SW50byhvcmRlcl9zdGFydCk7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlLnB1dCgic29ydF9vcmRlciIsIG9yZGVyX3N0YXJ0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoIm9yZGVyX2VuZCIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vYnVpbGQgYSBsaXN0IG9mIG9yZGVyZWQgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBTb3J0ZWRWZWN0b3Igb3JkZXIgPSBidWlsZGVyLmdldFNvcnRPcmRlcigpOworICAgICAgICAgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZVtdIHJ1bGVTb3VyY2UgPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZVtvcmRlci5zaXplKCldOworICAgICAgICAgICAgICAgICAgICBvcmRlci5jb3B5SW50byhydWxlU291cmNlKTsgLy9jb3B5IGludG8gYW4gYXJyYXkgc28gd2UgY2FuIGFkZCBpdCB0byB0aGUgb3V0cHV0IHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAvL3RoaXMgaXMgb25seSBmb3IgaW5mb3JtYXRpb24gcHVycG9zZXMgc28gd2UgY2FuIHJldHJpZXZlIHRoZSBzb3VyY2Ugb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbGxhdGlvbkl0ZW1zIHdpdGggdGhlIHdlaWdodHMgaWYgd2Ugd2FudCB0aGVtIGxhdGVyCisgICAgICAgICAgICAgICAgICAgIHRhYmxlLnB1dCgicG9zaXhfc29ydF9ydWxlcyIsIHJ1bGVTb3VyY2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vYWRkIGEgY29sbGF0aW9uIGl0ZW0gdG8gdGhlIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hZGRSdWxlKGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMgPT0gVEFHX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL3dlJ3JlIGV4cGVjdGluZyB3ZWlnaHRzIGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYWRkV2VpZ2h0KGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBTRVBBUkFUT1JfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTiwgIkxDX0NPTExBVEUiKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChtYXAuZ2V0UGFyZW50KCkpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4Q2hhck1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENoYXJNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZWNiMjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENoYXJNYXAuamF2YQpAQCAtMCwwICsxLDQ5NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK3B1YmxpYyBjbGFzcyBQb3NpeENoYXJNYXAgeworICAgIHByaXZhdGUgSGFzaHRhYmxlIHRhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGJhY2tUYWJsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBQb3NpeENoYXJNYXAgcGFyZW50TWFwOworICAgIHByaXZhdGUgU3RyaW5nIGVuY29kaW5nOworICAgIAorICAgIHB1YmxpYyBQb3NpeENoYXJNYXAoKSB7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBQb3NpeENoYXJNYXAoUG9zaXhDaGFyTWFwIHBhcmVudCkgeworICAgICAgICBwYXJlbnRNYXAgPSBwYXJlbnQ7CisgICAgfQorCisgICAgcHVibGljIFBvc2l4Q2hhck1hcChTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHRoaXMobmV3IEZpbGVSZWFkZXIoZmlsZU5hbWUpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwKFN0cmluZyBwYXRoTmFtZSwgU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB0aGlzKG5ldyBGaWxlUmVhZGVyKG5ldyBGaWxlKHBhdGhOYW1lLCBmaWxlTmFtZSkpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwKFJlYWRlciBpbnB1dFJlYWRlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9hZChuZXcgQnVmZmVyZWRSZWFkZXIoaW5wdXRSZWFkZXIpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFBvc2l4Q2hhck1hcCBnZXRQYXJlbnQoKSB7CisgICAgICAgIHJldHVybiBwYXJlbnRNYXA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldFBhcmVudChQb3NpeENoYXJNYXAgcGFyZW50KSB7CisgICAgICAgIHBhcmVudE1hcCA9IHBhcmVudDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBsb2FkKFN0cmluZyBwYXRoTmFtZSwgU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb2FkKG5ldyBGaWxlKHBhdGhOYW1lLCBmaWxlTmFtZSksIiIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBsb2FkKFN0cmluZyBwYXRoTmFtZSwgU3RyaW5nIGZpbGVOYW1lLCBTdHJpbmcgZW5jKXRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgbG9hZChuZXcgRmlsZShwYXRoTmFtZSwgZmlsZU5hbWUpLGVuYyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGxvYWQoRmlsZSBmaWxlLCBTdHJpbmcgZW5jKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBlbmNvZGluZyA9ZW5jOworICAgICAgICBsb2FkKG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgRmlsZVJlYWRlcihmaWxlKSkpOworICAgIH0KKyAgICAvKiBUaGlzIG1hcCBtdXN0IGJlIGluIEFTQ0VORElORyBPUkRFUiBPRiBUSEUgRVNDQVBFIENPREUgKi8KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBjaGFyW10gVU5FU0NBUEVfTUFQID0geworICAgICAgICAvKiIgICAweDIyLCAweDIyICovCisgICAgICAgIC8qJyAgIDB4MjcsIDB4MjcgKi8KKyAgICAgICAgLyo/ICAgMHgzRiwgMHgzRiAqLworICAgICAgICAvKlwgICAweDVDLCAweDVDICovCisgICAgICAgIC8qYSovIDB4NjEsIDB4MDcsCisgICAgICAgIC8qYiovIDB4NjIsIDB4MDgsCisgICAgICAgIC8qZiovIDB4NjYsIDB4MGMsCisgICAgICAgIC8qbiovIDB4NkUsIDB4MGEsCisgICAgICAgIC8qciovIDB4NzIsIDB4MGQsCisgICAgICAgIC8qdCovIDB4NzQsIDB4MDksCisgICAgICAgIC8qdiovIDB4NzYsIDB4MGIKKyAgICB9OworICAgICAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFuIGVzY2FwZSB0byBhIDMyLWJpdCBjb2RlIHBvaW50IHZhbHVlLiAgV2UgYXR0ZW1wdAorICAgICAqIHRvIHBhcmFsbGVsIHRoZSBpY3U0YyB1bmVzYWNwZUF0KCkgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIG9mZnNldDE2IGFuIGFycmF5IGNvbnRhaW5pbmcgb2Zmc2V0IHRvIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiA8ZW0+YWZ0ZXI8L2VtPiB0aGUgYmFja3NsYXNoLiAgVXBvbiByZXR1cm4gb2Zmc2V0MTZbMF0gd2lsbAorICAgICAqIGJlIHVwZGF0ZWQgdG8gcG9pbnQgYWZ0ZXIgdGhlIGVzY2FwZSBzZXF1ZW5jZS4KKyAgICAgKiBAcmV0dXJuIGNoYXJhY3RlciB2YWx1ZSBmcm9tIDAgdG8gMTBGRkZGLCBvciAtMSBvbiBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB1bmVzY2FwZUF0KFN0cmluZyBzLCBpbnRbXSBvZmZzZXQxNikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgaW50IG1pbkRpZyA9IDA7CisgICAgICAgIGludCBtYXhEaWcgPSAwOworICAgICAgICBpbnQgYml0c1BlckRpZ2l0ID0gNDsKKyAgICAgICAgaW50IGRpZzsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgLyogQ2hlY2sgdGhhdCBvZmZzZXQgaXMgaW4gcmFuZ2UgKi8KKyAgICAgICAgaW50IG9mZnNldCA9IG9mZnNldDE2WzBdOworICAgICAgICBpbnQgbGVuZ3RoID0gcy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ID49IGxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyogRmV0Y2ggZmlyc3QgVUNoYXIgYWZ0ZXIgJ1xcJyAqLworICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgIG9mZnNldCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisKKyAgICAgICAgLyogQ29udmVydCBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgZXNjYXBlcyAqLworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAndSc6CisgICAgICAgICAgICBtaW5EaWcgPSBtYXhEaWcgPSA0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ1UnOgorICAgICAgICAgICAgbWluRGlnID0gbWF4RGlnID0gODsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd4JzoKKyAgICAgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgICAgICBtYXhEaWcgPSAyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBkaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIDgpOworICAgICAgICAgICAgaWYgKGRpZyA+PSAwKSB7CisgICAgICAgICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSAzOworICAgICAgICAgICAgICAgIG4gPSAxOyAvKiBBbHJlYWR5IGhhdmUgZmlyc3Qgb2N0YWwgZGlnaXQgKi8KKyAgICAgICAgICAgICAgICBiaXRzUGVyRGlnaXQgPSAzOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRpZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChtaW5EaWcgIT0gMCkgeworICAgICAgICAgICAgd2hpbGUgKG9mZnNldCA8IGxlbmd0aCAmJiBuIDwgbWF4RGlnKSB7CisgICAgICAgICAgICAgICAgLy8gVEVNUE9SQVJZCisgICAgICAgICAgICAgICAgLy8gVE9ETzogUmVzdG9yZSB0aGUgY2hhcjMyLWJhc2VkIGNvZGUgd2hlbiBVQ2hhcmFjdGVyLmRpZ2l0CisgICAgICAgICAgICAgICAgLy8gaXMgd29ya2luZyAoQnVnIDY2KS4KKworICAgICAgICAgICAgICAgIC8vYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICAgICAgICAgIC8vZGlnID0gVUNoYXJhY3Rlci5kaWdpdChjLCAoYml0c1BlckRpZ2l0ID09IDMpID8gOCA6IDE2KTsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBkaWcgPSBDaGFyYWN0ZXIuZGlnaXQoKGNoYXIpYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgICAgICAgICAgaWYgKGRpZyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgPDwgYml0c1BlckRpZ2l0KSB8IGRpZzsKKyAgICAgICAgICAgICAgICAvL29mZnNldCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgKytvZmZzZXQ7CisgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG4gPCBtaW5EaWcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBDb252ZXJ0IEMtc3R5bGUgZXNjYXBlcyBpbiB0YWJsZSAqLworICAgICAgICBmb3IgKGk9MDsgaTxVTkVTQ0FQRV9NQVAubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpZiAoYyA9PSBVTkVTQ0FQRV9NQVBbaV0pIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICByZXR1cm4gVU5FU0NBUEVfTUFQW2krMV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPCBVTkVTQ0FQRV9NQVBbaV0pIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIElmIG5vIHNwZWNpYWwgZm9ybXMgYXJlIHJlY29nbml6ZWQsIHRoZW4gY29uc2lkZXIKKyAgICAgICAgICogdGhlIGJhY2tzbGFzaCB0byBnZW5lcmljYWxseSBlc2NhcGUgdGhlIG5leHQgY2hhcmFjdGVyLiAqLworICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhbGwgZXNjYXBlcyBpbiBhIGdpdmVuIHN0cmluZyB1c2luZyB1bmVzY2FwZUF0KCkuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gaW52YWxpZCBlc2NhcGUgaXMKKyAgICAgKiBzZWVuLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHVuZXNjYXBlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbMV07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gaTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IHVuZXNjYXBlQXQocywgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlc2NhcGUgc2VxdWVuY2UgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5zdWJzdHJpbmcoaS0xLCBNYXRoLm1pbihpKzgsIHMubGVuZ3RoKCkpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGUpOworICAgICAgICAgICAgICAgIGkgPSBwb3NbMF07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxvYWQoUmVhZGVyIGlucHV0UmVhZGVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBQb3NpeENoYXJNYXAgb2xkTWFwID0gU3ltYm9sVHJhbnNpdGlvbi5nZXRDaGFyTWFwKCk7CisgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChudWxsKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIGludCBUT0tFTiA9IDE7CisgICAgICAgICAgICBmaW5hbCBpbnQgRU9GID0gMjsKKyAgICAgICAgICAgIGZpbmFsIGludCBFT0wgPSAzOworICAgICAgICAgICAgZmluYWwgaW50IFJBTkdFID0gNDsKKyAgICAgICAgICAgIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMxID0geworICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAwOiBzdGFydAorICAgICAgICAgICAgICAgICAgICBuZXcgU3BhY2VUcmFuc2l0aW9uKDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0wpLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oRU9GKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsgICAvL2dyYWIgZmlyc3Qgd29yZAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU3BhY2VUcmFuc2l0aW9uLlNQQUNFX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIFRPS0VOKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIFRPS0VOKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFRPS0VOKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzMiA9IHsKKyAgICAgICAgICAgICAgICB7ICAgLy9UaGVzZSBzdGF0ZXMgb25seSByZXR1cm4gPHN5bWJvbHM+LiAgQWxsCisgICAgICAgICAgICAgICAgICAgIC8vb3RoZXIgdGV4dCBpcyBpZ25vcmVkLgorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oRU9GKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgU3BhY2VUcmFuc2l0aW9uKDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgUmFuZ2VUcmFuc2l0aW9uKFJBTkdFKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAwKQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIGlucHV0ID0gbmV3IFB1c2hiYWNrUmVhZGVyKGlucHV0UmVhZGVyKTsKKyAgICAgICAgICAgIExleCBwID0gbmV3IExleChzdGF0ZXMxLCBpbnB1dCk7CisgICAgICAgICAgICBpbnQgc3RhdGU7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgfSB3aGlsZSAoKHN0YXRlICE9IEVPRikgJiYgIXAuZGF0YUVxdWFscygiQ0hBUk1BUCIpKTsKKyAgICAgICAgICAgIHAuYWNjZXB0KEVPTCk7CisgICAgICAgICAgICBpZiAoc3RhdGUgIT0gRU9GICkgeworICAgICAgICAgICAgICAgIHAgPSBuZXcgTGV4KHN0YXRlczIsIGlucHV0KTsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHN0YXRlICE9IEVPRiApIHsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHAuZGF0YUVxdWFscygiRU5EQ0hBUk1BUCIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHN0YXRlID09IEVPTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYocC5kYXRhRXF1YWxzKCJFTkRDSEFSTUFQIikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRhdGEgPSB1bmVzY2FwZShwLmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXJ0c1dpdGgoIjxVIikgfHwgZGF0YS5zdGFydHNXaXRoKCIjVSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG51bURhdGEgPSBkYXRhLnN1YnN0cmluZygyLGRhdGEubGVuZ3RoKCktMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0ID0gSW50ZWdlci5wYXJzZUludChudW1EYXRhLCAxNik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lTWFwcGluZyhrZXksICIiKyhjaGFyKWRpZ2l0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKGRhdGEuc3RhcnRzV2l0aCgiXFx4IikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBlbmNEYXRhID0gbmV3IGJ5dGVbMTAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtID0gaGV4VG9CeXRlKGRhdGEsZW5jRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHREYXRhID0gbmV3IFN0cmluZyhlbmNEYXRhLDAsbnVtLGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVNYXBwaW5nKGtleSx0RGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVNYXBwaW5nKGtleSxieXRlVG9DaGFyKGRhdGEsZW5jb2RpbmcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleT1wLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGNvbWUgaGVyZSBvbmx5IGlmIHRoZXJlIGlzIGEgcmFuZ2UgdHJhbnNpdGlvbgorICAgICAgICAgICAgICAgICAgICAgaWYoIHN0YXRlID09UkFOR0UpeworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYmVnaW4gPSBrZXk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBlbmQgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRhdGEgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGVuY0RhdGEgPSBuZXcgYnl0ZVs2XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW0gPSBoZXhUb0J5dGUoZGF0YSxlbmNEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0RGF0YSA9IG5ldyBTdHJpbmcoZW5jRGF0YSwwLG51bSxlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nVmFsOworICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gdmFsID0gZ2V0SW50KGJlZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBiZWdpblJhbmdlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRSYW5nZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gZ2V0SW50KChTdHJpbmcpdGFibGUuZ2V0KGJlZ2luKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW5SYW5nZSA9IHZhbFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBnZXRJbnQoZW5kKTsgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBnZXRJbnQoKFN0cmluZyl0YWJsZS5nZXQoZW5kKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kUmFuZ2UgPSB2YWxbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nVmFsID0ga2V5LnN1YnN0cmluZygwLHZhbFswXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXQgPSAoaW50KShjaGFyKXREYXRhLmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKGJlZ2luUmFuZ2UgPD0gZW5kUmFuZ2UpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZU1hcHBpbmcoKHN0cmluZ1ZhbCtiZWdpblJhbmdlKyI+IiksIiIrKGNoYXIpZGlnaXQrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW5SYW5nZSsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBrZXk9cC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvL3N0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEVPRkV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBTeW1ib2xUcmFuc2l0aW9uLnNldENoYXJNYXAob2xkTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgaW50W10gZ2V0SW50KFN0cmluZyBkYXRhKXsKKyAgICAgICAgaWYoZGF0YSA9PSBudWxsKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIGludCBpPTA7CisgICAgICAgIGludFtdIHJldFZhbCA9IG5ldyBpbnRbMl07CisgICAgICAgIGludCBsZW4gPWRhdGEubGVuZ3RoKCk7CisgICAgICAgIHdoaWxlKGk8IGxlbil7CisgICAgICAgICAgICBpZigoZGF0YS5jaGFyQXQoaSkpLTB4MzAgPCAoMHgzOS0weDMwKSl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgaWYoaSA8IGxlbil7CisgICAgICAgICAgICBTdHJpbmcgc3ViID1kYXRhLnN1YnN0cmluZyhpLGxlbi0xKTsKKyAgICAgICAgICAgIHJldFZhbFswXSA9aTsKKyAgICAgICAgICAgIHJldFZhbFsxXT1JbnRlZ2VyLnBhcnNlSW50KHN1YiwxMCk7CisgICAgICAgICAgICByZXR1cm4gcmV0VmFsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICBwdWJsaWMgaW50IGhleFRvQnl0ZShTdHJpbmcgZGF0YSwgYnl0ZVtdIHJldHZhbCl7CisgICAgICAgIFN0cmluZyB0RGF0YSA9IGRhdGE7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIGZvcihpPTA7aSA8IGRhdGEubGVuZ3RoKCkvNDsgaSsrKXsKKyAgICAgICAgICAgIGlmKHREYXRhLmNoYXJBdCgwKT09J1xcJyAmJiB0RGF0YS5jaGFyQXQoMSk9PSd4Jyl7CisgICAgICAgICAgICAgICAgU3RyaW5nIG51bURhdGEgPSB0RGF0YS5zdWJzdHJpbmcoMiw0KTsKKyAgICAgICAgICAgICAgICByZXR2YWxbaV0gPSAoYnl0ZSkgSW50ZWdlci5wYXJzZUludChudW1EYXRhLDE2KTsKKyAgICAgICAgICAgICAgICB0RGF0YSA9IHREYXRhLnN1YnN0cmluZyg0LHREYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgcmV0dXJuIGk7CisgICAgfSAgCisgICAgcHVibGljIFN0cmluZyBieXRlVG9DaGFyKFN0cmluZyBkYXRhLCBTdHJpbmcgZW5jb2RpbmcpIAorICAgICAgICB0aHJvd3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbnsKKyAgICAgICAgCisgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlW2RhdGEubGVuZ3RoKCldOworICAgICAgICBmb3IoaW50IGk9MDsgaTxkYXRhLmxlbmd0aCgpOyBpKyspeworICAgICAgICAgICAgY2hhciBjaCA9IGRhdGEuY2hhckF0KGkpOworICAgICAgICAgICAgaWYoY2ggPiAweEZGKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQnl0ZXMgaW4gdGhlIHN0cmluZyBhcmUgZ3JlYXRlciB0aGFuIDB4RkYiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ5dGVzW2ldID0gKGJ5dGUpIGNoOyAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnl0ZXMsZW5jb2RpbmcpOworICAgIH0gICAgICAKKyAgICBwdWJsaWMgdm9pZCBkZWZpbmVNYXBwaW5nKFN0cmluZyBmcm9tLCBTdHJpbmcgdG8pIHsKKyAgICAgICAgdGFibGUucHV0KGZyb20sIHRvKTsKKyAgICAgICAgYmFja1RhYmxlID0gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB1bmRlZmluZU1hcHBpbmcoU3RyaW5nIGZyb20pIHsKKyAgICAgICAgdGFibGUucmVtb3ZlKGZyb20pOworICAgICAgICBiYWNrVGFibGUgPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHN3YXAoKSB7CisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgRW51bWVyYXRpb24gZW51bWVyID0gdGFibGUua2V5cygpOworICAgICAgICB3aGlsZSAoZW51bWVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllbnVtZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIFN0cmluZyBjb2RlID0gKFN0cmluZyl0YWJsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIG5ld0tleSA9IHRvU3ltYm9sKGNvZGUpOworICAgICAgICAgICAgU3RyaW5nIG5ld0NvZGUgPSB0b0xpdGVyYWwoa2V5KTsKKyAgICAgICAgICAgIFN0cmluZyBwcmV2Q29kZSA9IChTdHJpbmcpbmV3VGFibGUuZ2V0KG5ld0tleSk7CisgICAgICAgICAgICBpZiAocHJldkNvZGUgPT0gbnVsbCB8fCBwcmV2Q29kZS5jb21wYXJlVG8obmV3Q29kZSkgPiAwKSB7CisgICAgICAgICAgICAgICAgbmV3VGFibGUucHV0KG5ld0tleSwgbmV3Q29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGFibGUgPSBuZXdUYWJsZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgdG9MaXRlcmFsKFN0cmluZyBjb2RlKSB7CisgICAgICAgIFN0cmluZyBkYXRhID0gY29kZS5zdWJzdHJpbmcoMixjb2RlLmxlbmd0aCgpLTEpOworICAgICAgICBpbnQgZGlnaXQgPSBJbnRlZ2VyLnBhcnNlSW50KGRhdGEsIDE2KTsKKyAgICAgICAgcmV0dXJuICIiICsgKGNoYXIpZGlnaXQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHRvU3ltYm9sKFN0cmluZyBjb2RlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBlc2NhcGVCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGVzY2FwZUJ1ZmZlci5hcHBlbmQoIj4iKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb2RlLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9ICgoaW50KWNvZGUuY2hhckF0KGkpKSAmIDB4RkZGRjsKKyAgICAgICAgICAgIHdoaWxlICgodmFsdWUgPiAwKSB8fCAoZXNjYXBlQnVmZmVyLmxlbmd0aCgpIDwgNSkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGRpZ2l0ID0gQ2hhcmFjdGVyLmZvckRpZ2l0KHZhbHVlICUgMTYsIDE2KTsKKyAgICAgICAgICAgICAgICBlc2NhcGVCdWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA+Pj0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlc2NhcGVCdWZmZXIuYXBwZW5kKCJVPCIpOworICAgICAgICBlc2NhcGVCdWZmZXIucmV2ZXJzZSgpOworICAgICAgICByZXR1cm4gZXNjYXBlQnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGR1bXAoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBlc2NhcGVCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEVudW1lcmF0aW9uIGVudW1lciA9IHRhYmxlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGVudW1lci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZW51bWVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBTdHJpbmcgY29kZSA9IChTdHJpbmcpdGFibGUuZ2V0KGtleSk7CisgICAgICAgICAgICBvdXQucHJpbnQoa2V5KTsKKyAgICAgICAgICAgIG91dC5wcmludCgiICAgICAgIDxVIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvZGUubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9ICgoaW50KWNvZGUuY2hhckF0KGkpKSAmIDB4RkZGRjsKKyAgICAgICAgICAgICAgICBlc2NhcGVCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIHdoaWxlICgodmFsdWUgPiAwKSB8fCAoZXNjYXBlQnVmZmVyLmxlbmd0aCgpIDwgNCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBkaWdpdCA9IENoYXJhY3Rlci5mb3JEaWdpdCh2YWx1ZSAlIDE2LCAxNik7CisgICAgICAgICAgICAgICAgICAgIGVzY2FwZUJ1ZmZlci5hcHBlbmQoZGlnaXQpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA+Pj0gNDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXNjYXBlQnVmZmVyLnJldmVyc2UoKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoZXNjYXBlQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIj4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgbWFwS2V5KGZpbmFsIFN0cmluZyBrZXkpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IChTdHJpbmcpdGFibGUuZ2V0KGtleSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHBhcmVudE1hcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcGFyZW50TWFwLm1hcEtleShrZXkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBrZXk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBiYWNrbWFwVmFsdWUoZmluYWwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGlmIChiYWNrVGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgYmFja1RhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgRW51bWVyYXRpb24gZW51bWVyID0gdGFibGUua2V5cygpOworICAgICAgICAgICAgd2hpbGUgKGVudW1lci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWVudW1lci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSAoU3RyaW5nKXRhYmxlLmdldChrZXkpOworICAgICAgICAgICAgICAgIGJhY2tUYWJsZS5wdXQodmFsLCBrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAoU3RyaW5nKWJhY2tUYWJsZS5nZXQodmFsdWUpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChwYXJlbnRNYXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBhcmVudE1hcC5iYWNrbWFwVmFsdWUodmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBrZXlzKCkgeworICAgICAgICByZXR1cm4gdGFibGUua2V5cygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZWxlbWVudHMoKSB7CisgICAgICAgIHJldHVybiB0YWJsZS5lbGVtZW50cygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQb3NpeENoYXJNYXAgbWFwMSA9IG5ldyBQb3NpeENoYXJNYXAoCisgICAgICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwcyIsCisgICAgICAgICAgICAgICAgIklCTS0xMTI5LlVQTUFQMTAwLnR4dCIpOworICAgICAgICAgICAgbWFwMS5zd2FwKCk7CisgICAgICAgICAgICBtYXAxLmR1bXAoU3lzdGVtLm91dCk7CisgICAgICAgIAorICAgICAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG1hcDEpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7IFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgICAgIC8vUG9zaXhDaGFyTWFwIG1hcCA9IG5ldyBQb3NpeENoYXJNYXAoIkM6XFxwcm9qZWN0c1xcZGF0YVxcSVNPLTg4NTktMS5odG1sIik7CisgICAgICAgICAgICBQb3NpeENoYXJNYXAgbWFwID0gbmV3IFBvc2l4Q2hhck1hcCgKKyAgICAgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzIiwKKyAgICAgICAgICAgICAgICAiaWJtMTEyOS50eHQiKTsKKyAgICAgICAgICAgIG1hcC5kdW1wKFN5c3RlbS5vdXQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4Q29sbGF0aW9uQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENvbGxhdGlvbkJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMTM5ZmZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENvbGxhdGlvbkJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDM5NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworaW1wb3J0IGphdmEudXRpbC4qOworCitjbGFzcyBQb3NpeENvbGxhdGlvbkJ1aWxkZXIgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfV0VJR0hUUyA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9DT01QT1NJVElPTiA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG5leHRDaGFyTnVtYmVyID0gMTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB3ZWlnaHRTeW1ib2xzID0gbmV3IEhhc2h0YWJsZSgpOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGNvbnRyYWN0aW9ucyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBydWxlcyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBwcml2YXRlIENvbGxhdGlvblJ1bGUgbGFzdFJ1bGUgPSBudWxsOworICAgIHByaXZhdGUgUG9zaXhDaGFyTWFwIG1hcDsKKyAgICBwcml2YXRlIFNvcnRlZFZlY3RvciBvcmRlcjsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgRklSU1RfV0VJR0hUX0NIQVIgPSAweDAwMDBGN0ZGOworICAgIHByaXZhdGUgaW50IG5leHRXZWlnaHRDaGFyID0gRklSU1RfV0VJR0hUX0NIQVI7CisgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlIGlnbm9yZVJ1bGU7ICAgLy9ydWxlIGZvciB0aGUgY29sbGF0aW5nLXN5bWJvbCBJR05PUkUKKyAgICAKKyAgICBwdWJsaWMgY2xhc3MgQ29sbGF0aW9uUnVsZSB7CisgICAgICAgIGludCBjaGFyTnVtYmVyOworICAgICAgICBTdHJpbmcgdmFsdWU7CisgICAgICAgIGludCBuZXh0V2VpZ2h0ID0gMDsKKyAgICAgICAgU3RyaW5nW10gd2VpZ2h0U291cmNlID0gbmV3IFN0cmluZ1tNQVhfV0VJR0hUU107CisgICAgICAgIGludCB3ZWlnaHRbXVtdID0gbnVsbDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNvdXJjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDb2xsYXRpb25SdWxlKFN0cmluZyBzeW1ib2wpIHsKKyAgICAgICAgICAgIGNoYXJOdW1iZXI9IG5leHRDaGFyTnVtYmVyKys7CisgICAgICAgICAgICB2YWx1ZSA9IHN5bWJvbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYX1dFSUdIVFM7IGkrKykgeworICAgICAgICAgICAgICAgIHdlaWdodFNvdXJjZVtpXSA9IHN5bWJvbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQobWFwLmJhY2ttYXBWYWx1ZShzeW1ib2wpKTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIlx0XHQiKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIENvbGxhdGlvblJ1bGUoQ29sbGF0aW9uUnVsZSBvdGhlciwgaW50IGNvbXBvc2l0aW9uKSB7CisgICAgICAgICAgICBjaGFyTnVtYmVyID0gb3RoZXIuY2hhck51bWJlcjsKKyAgICAgICAgICAgIHZhbHVlID0gb3RoZXIudmFsdWU7CisgICAgICAgICAgICBuZXh0V2VpZ2h0ID0gb3RoZXIubmV4dFdlaWdodDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYX1dFSUdIVFM7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSBvdGhlci53ZWlnaHRTb3VyY2VbaV07CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSA+IGNvbXBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHdlaWdodFNvdXJjZVtpXSA9ICIiK3NvdXJjZS5jaGFyQXQoY29tcG9zaXRpb24pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdlaWdodFNvdXJjZVtpXSA9IHZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorIAorICAgICAgIC8vSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgbXlUcmFuc2xpdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiPFUjIyMwPiIpOworICAgICAgICBwdWJsaWMgdm9pZCBhZGRXZWlnaHQoU3RyaW5nIHN5bWJvbCkgeworICAgICAgICAgLy8gICBSZXBsYWNlYWJsZVN0cmluZyB0U3ltYm9sID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHN5bWJvbCk7CisgICAgICAgICAgIC8vIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0U3ltYm9sKTsKKyAgICAgICAgICAgICAgICAvL2xpbWl0IHRoZSBzaXplIG9mIGEgc2luZ2xlIHdlaWdodAorICAgICAgICAgICAgc3ltYm9sID0gdW5lc2NhcGUoc3ltYm9sKTsgICAgCisgICAgICAgICAgICBpZiAoc3ltYm9sLmxlbmd0aCgpID4gTUFYX0NPTVBPU0lUSU9OKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBXZWlnaHRzIG9mIGNvbXBvc2l0aW9uIGdyZWF0ZXIgdGhhbiAiK01BWF9DT01QT1NJVElPTisiIHdlcmUgdHJ1bmNhdGVkLiIpOworICAgICAgICAgICAgICAgIHN5bWJvbCA9IHN5bWJvbC5zdWJzdHJpbmcoMCwgTUFYX0NPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2xpbWl0IHRoZSBudW1iZXIgb2Ygd2VpZ2h0cworICAgICAgICAgICAgaWYgKG5leHRXZWlnaHQgPCBNQVhfV0VJR0hUUykgeworICAgICAgICAgICAgICAgIGlmIChuZXh0V2VpZ2h0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKCI7Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3ltYm9sLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChtYXAuYmFja21hcFZhbHVlKCIiK3N5bWJvbC5jaGFyQXQoaSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2VpZ2h0U291cmNlW25leHRXZWlnaHQrK10gPSBzeW1ib2w7CisgICAgICAgICAgICAgICAgd2VpZ2h0ID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoQ29sbGF0aW9uUnVsZSBvdGhlcikgeworICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpIHJldHVybiBjb21wYXJlKGlnbm9yZVJ1bGUpOworICAgICAgICAgICAgcmVzb2x2ZVdlaWdodHMoKTsKKyAgICAgICAgICAgIG90aGVyLnJlc29sdmVXZWlnaHRzKCk7CisgICAgICAgICAgICBpbnQgY29tcGFyZVNpemUgPSBNYXRoLm1pbihnZXRTaXplKCksIG90aGVyLmdldFNpemUoKSk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNvbXBhcmVTaXplOyBqKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9XRUlHSFRTOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZmYgPSB3ZWlnaHRbal1baV0gLSBvdGhlci53ZWlnaHRbal1baV07CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWZmIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0oaSsxKTsKKyAgICAgICAgICAgICAgICAgICAgfSBpZiAoZGlmZiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpKzE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZ2V0U2l6ZSgpIC0gb3RoZXIuZ2V0U2l6ZSgpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTXVsdGlXZWlnaHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U2l6ZSgpID4gMTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgaW50IGdldFNpemUoKSB7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHdlaWdodFNvdXJjZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHNpemUgPSBNYXRoLm1heChzaXplLCB3ZWlnaHRTb3VyY2VbaV0ubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHNpemU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbGxhdGlvblJ1bGUgZ2V0Q29tcG9uZW50KGludCBuZHgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ29sbGF0aW9uUnVsZSh0aGlzLCBuZHgpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTeW1ib2woKSB7CisgICAgICAgICAgICBTdHJpbmcgbmV3VmFsdWUgPSBpc0NvbnRyYWN0aW9uKCk7CisgICAgICAgICAgICBpZiAobmV3VmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBpc1dlaWdodFN5bWJvbCgpOworICAgICAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U291cmNlKCkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGlzQ29udHJhY3Rpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZyljb250cmFjdGlvbnMuZ2V0KHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFN0cmluZyBpc1dlaWdodFN5bWJvbCgpIHsKKyAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKXdlaWdodFN5bWJvbHMuZ2V0KHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQ29sbGF0aW9uUnVsZSBzZWVrc1RvUnVsZSgpIHsKKyAgICAgICAgICAgIENvbGxhdGlvblJ1bGUgY29tcDsKKyAgICAgICAgICAgIGlmIChnZXRTaXplKCkgPD0gMSkgeworICAgICAgICAgICAgICAgIGNvbXAgPSB0aGlzOyAgICAvL3NhdmUgYW4gb2JqZWN0IGNyZWF0aW9uCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvbXAgPSBnZXRDb21wb25lbnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbmR4ID0gb3JkZXIuaW5kZXhPZihjb21wKTsKKyAgICAgICAgICAgIGlmIChuZHggPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlIGV4cDsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGV4cCA9IChDb2xsYXRpb25SdWxlKW9yZGVyLmVsZW1lbnRBdChuZHgtLSk7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAobmR4ID4gMCAmJiBleHAuZ2V0U2l6ZSgpID4gMSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4cDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEV4cGFuc2lvbigpIHsKKyAgICAgICAgICAgIGlmIChnZXRTaXplKCkgPD0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZXhwYW5zaW9uID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZ2V0U2l6ZSgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZSBjb21wID0gZ2V0Q29tcG9uZW50KGopOworICAgICAgICAgICAgICAgICAgICBpbnQgbmR4ID0gb3JkZXIuaW5kZXhPZihjb21wKTsKKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZSBleHA7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cCA9IChDb2xsYXRpb25SdWxlKW9yZGVyLmVsZW1lbnRBdChuZHgtLSk7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5keCA+PSAwICYmIGV4cC5nZXRTaXplKCkgPiAxKTsKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uLmFwcGVuZChleHAuZ2V0U3ltYm9sKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZXhwYW5zaW9uLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UudG9TdHJpbmcoKTsKKy8qICAgICAgICAgIHJlc29sdmVXZWlnaHRzKCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgYnVmLmFwcGVuZChjaGFyTnVtYmVyKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmFsdWUpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgYnVmLmFwcGVuZChnZXRTeW1ib2woKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBidWYuYXBwZW5kKChpc1dlaWdodFN5bWJvbCgpICE9IG51bGwpPyJXIjoiICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfV0VJR0hUUzsgaSsrKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCh3ZWlnaHRTb3VyY2VbaV0pOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZ2V0U2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJbICIpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgTUFYX1dFSUdIVFM7IGorKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgdyA9IHdlaWdodFtpXVtqXTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCh3KTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCddJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisqLworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgdm9pZCByZXNvbHZlV2VpZ2h0cygpIHsKKyAgICAgICAgICAgIGlmICh3ZWlnaHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHdlaWdodCA9IG5ldyBpbnRbTUFYX0NPTVBPU0lUSU9OXVtNQVhfV0VJR0hUU107CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfV0VJR0hUUzsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzeW1ib2wgPSB3ZWlnaHRTb3VyY2Vbal07CisgICAgICAgICAgICAgICAgICAgIGlmIChzeW1ib2wubGVuZ3RoKCkgPD0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0WzBdW2pdID0gb3JkaW5hbGl0eU9mKHN5bWJvbCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzeW1ib2wubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHN5bWJvbC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0W2ldW2pdID0gb3JkaW5hbGl0eU9mKCIiK2MpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBQb3NpeENvbGxhdGlvbkJ1aWxkZXIoUG9zaXhDaGFyTWFwIG1hcCkgeworICAgICAgICB0aGlzLm1hcCA9IG1hcDsKKyAgICAgICAgU3RyaW5nIGlnbm9yZVN5bWJvbCA9IGRlZmluZVdlaWdodFN5bWJvbCgiSUdOT1JFIik7CisgICAgICAgIGlnbm9yZVJ1bGUgPSBuZXcgQ29sbGF0aW9uUnVsZShpZ25vcmVTeW1ib2wpOworICAgICAgICBydWxlcy5wdXQoaWdub3JlU3ltYm9sLCBpZ25vcmVSdWxlKTsKKyAgICAgICAgbGFzdFJ1bGUgPSBpZ25vcmVSdWxlOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKy8vfX0KK30KKworICAgIHB1YmxpYyBTdHJpbmcgZGVmaW5lV2VpZ2h0U3ltYm9sKFN0cmluZyBzeW1ib2wpIHsKKyAgICAgICAgb3JkZXIgPSBudWxsOworICAgICAgICBTdHJpbmcgYyA9IG5leHRGcmVlV2VpZ2h0Q2hhcigpOworICAgICAgICBtYXAuZGVmaW5lTWFwcGluZyhzeW1ib2wsIGMpOworICAgICAgICB3ZWlnaHRTeW1ib2xzLnB1dChjLCBzeW1ib2wpOworICAgICAgICB3ZWlnaHRTeW1ib2xzLnB1dChzeW1ib2wsIGMpOworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBkZWZpbmVDb250cmFjdGlvbihTdHJpbmcgc3ltYm9sLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgb3JkZXIgPSBudWxsOworICAgICAgICBTdHJpbmcgYyA9IG5leHRGcmVlV2VpZ2h0Q2hhcigpOworICAgICAgICBtYXAuZGVmaW5lTWFwcGluZyhzeW1ib2wsIGMpOworICAgICAgICBjb250cmFjdGlvbnMucHV0KGMsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIG5leHRGcmVlV2VpZ2h0Q2hhcigpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9ICIiOworICAgICAgICBTdHJpbmcgbWFwcGVkU291cmNlOworICAgICAgICBkbyB7CisgICAgICAgICAgICByZXN1bHQgPSAiIisoY2hhciluZXh0V2VpZ2h0Q2hhci0tOworICAgICAgICAgICAgbWFwcGVkU291cmNlID0gbWFwLmJhY2ttYXBWYWx1ZShyZXN1bHQpOworICAgICAgICB9IHdoaWxlIChyZXN1bHQgIT0gbWFwcGVkU291cmNlKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgLyoqCisgICAgICogdW5lc2NhcGUgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdCA8VSMjIyM+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdW5lc2NhcGUoU3RyaW5nIHNyYyl7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBtYXhEaWcgPSA0OworICAgICAgICBpZihzcmMgPT0gbnVsbCl7CisgICAgICAgICAgICByZXR1cm4gc3JjOworICAgICAgICB9CisgICAgICAgIGludCBzcmNMZW49IHNyYy5sZW5ndGgoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c3JjTGVuO2krKyl7CisgICAgICAgICAgICBjaGFyIGMgPSBzcmMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYoYyA9PSAnPCcpeworICAgICAgICAgICAgICAgaWYoc3JjTGVuID4gaSsxKXsKKyAgICAgICAgICAgICAgICAgICBjaGFyIGMyID0gc3JjLmNoYXJBdCgrK2kpOworICAgICAgICAgICAgICAgICAgIGlmKGMyID09ICdVJyAmJiAoaSttYXhEaWcrMSk8IHNyY0xlbil7CisgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiggc3JjLmNoYXJBdChpK21heERpZyk9PSAnPicpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdWJTdHIgPSBzcmMuc3Vic3RyaW5nKGksaSttYXhEaWcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlciB2YWwgPSBJbnRlZ2VyLnZhbHVlT2Yoc3ViU3RyLDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcikgdmFsLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Y2F0Y2goTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ViU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArPSBtYXhEaWc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYzIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3JjLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBUaGUgZXNjYXBlIHNlcXVlbmNlIGlzIG5vdCB0ZXJtaW5hdGVkIGF0ICIgKyBpICsiIGluIHN0cmluZzogIiArIHNyYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICBwdWJsaWMgaW50IG9yZGluYWxpdHlPZihTdHJpbmcgc3ltYm9sKSB7CisvLyAgICAgICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgbmV3VHJhbnNsaXQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoKTsKKy8vICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyB0U3ltYm9sID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHN5bWJvbCk7CisvLyAgICAgICAgbmV3VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0U3ltYm9sKTsKKyAgICAgICAgc3ltYm9sID0gdW5lc2NhcGUoc3ltYm9sKTsKKyAgICAgICAgQ29sbGF0aW9uUnVsZSB3ID0gKENvbGxhdGlvblJ1bGUpcnVsZXMuZ2V0KHN5bWJvbCk7CisgICAgICAgIGlmICh3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiB3LmNoYXJOdW1iZXI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50KCJFUlJPUjogV2VpZ2h0IHN5bWJvbCBub3QgZm91bmQ6ICIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgc3ltYm9sLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBzeW1ib2wuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoIlxcdSIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoSEVYX0RJR0lUWyhjICYgMHgwRjAwMCkgPj4gMTJdKTsgLy8gSEVYX0RJR0lUIHdvcmtzIGZvciBvY3RhbAorICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoSEVYX0RJR0lUWyhjICYgMHgwRjAwKSA+PiA4XSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50KEhFWF9ESUdJVFsoYyAmIDB4MDBGMCkgPj4gNF0pOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihIRVhfRElHSVRbKGMgJiAweDAwMEYpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIiAgICAgICBXZWlnaHQgZ2l2ZW4gbWF4aW11bSBwb3NzaWJsZSB2YWx1ZS4iKTsKKyAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgfQorICAgIH0KKy8vICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIG15VHJhbnNsaXQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoIjxVIyMjMD4iKTsKKyAgICBwdWJsaWMgdm9pZCBhZGRSdWxlKFN0cmluZyBzeW1ib2wpIHsKKyAgLy8gICAgICBSZXBsYWNlYWJsZVN0cmluZyB0U3ltYm9sID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHN5bWJvbCk7CisgICAvLyAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRTeW1ib2wpOworICAgICAgICBzeW1ib2wgPSB1bmVzY2FwZShzeW1ib2wpOworICAgICAgICBpZiAoc3ltYm9sLmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBVbmRlZmluZWQgZWxlbWVudCAnIitzeW1ib2wrIicuICBjb2xsYXRpbmctc3ltYm9sIGdlbmVyYXRlZC4iKTsKKyAgICAgICAgICAgIHN5bWJvbCA9IGRlZmluZVdlaWdodFN5bWJvbChzeW1ib2wpOworICAgICAgICB9CisgICAgCisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgbGFzdFJ1bGUgPSBuZXcgQ29sbGF0aW9uUnVsZShzeW1ib2wpOworICAgICAgICBydWxlcy5wdXQoc3ltYm9sLCBsYXN0UnVsZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZFJ1bGUoQ29sbGF0aW9uUnVsZSBydWxlKSB7CisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgbGFzdFJ1bGUgPSBydWxlOworICAgICAgICBydWxlcy5wdXQocnVsZS52YWx1ZSwgcnVsZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZFdlaWdodChTdHJpbmcgd2VpZ2h0KSB7CisgICAgICAgIGlmICh3ZWlnaHQubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAvL2NoZWNrIHRvIHNlZSBpZiBpdCdzIGEgYm9ndXMgd2VpZ2h0IHN5bWJvbC4KKyAgICAgICAgICAgIHdlaWdodCA9IG1hcC5tYXBLZXkod2VpZ2h0KTsKKyAgICAgICAgfQorICAgICAgICBvcmRlciA9IG51bGw7CisgICAgICAgIGxhc3RSdWxlLmFkZFdlaWdodCh3ZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRSdWxlcygpIHsKKyAgICAgICAgcmV0dXJuIHJ1bGVzLmVsZW1lbnRzKCk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvciBnZXRTb3J0T3JkZXIoKSB7CisgICAgICAgIGlmIChvcmRlciA9PSBudWxsKSB7CisgICAgICAgICAgICBvcmRlciA9IG5ldyBTb3J0ZWRWZWN0b3IoCisgICAgICAgICAgICAgICAgbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShmaW5hbCBPYmplY3QgaSwgZmluYWwgT2JqZWN0IGopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIENvbGxhdGlvblJ1bGUgbzEgPSAoQ29sbGF0aW9uUnVsZSlpOworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgQ29sbGF0aW9uUnVsZSBvMiA9IChDb2xsYXRpb25SdWxlKWo7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvMSAhPW51bGwgJiYgbzIgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiB3MSA9IG8xLmlzV2VpZ2h0U3ltYm9sKCkgIT0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIHcyID0gbzIuaXNXZWlnaHRTeW1ib2woKSAhPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NvcnQgd2VpZ2h0cyBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3MSAmJiAhdzIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXcxICYmIHcyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvMS5jb21wYXJlKG8yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICAgICAgb3JkZXIuYWRkRWxlbWVudHMocnVsZXMuZWxlbWVudHMoKSk7CisgICAgICAgICAgICAgICAgLy9yZW1vdmUgd2VpZ2h0IHN5bWJvbHMgZnJvbSB0aGUgbGlzdAorICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb3JkZXIuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlIHIgPSAoQ29sbGF0aW9uUnVsZSlvcmRlci5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKHIuaXNXZWlnaHRTeW1ib2woKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9yZGVyLnJlbW92ZUVsZW1lbnRzKDAsIGkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvcmRlcjsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2hhcltdIEhFWF9ESUdJVCA9IHsnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNicsJzcnLAorICAgICAgICAgICAgICAgICAgICAgJzgnLCc5JywnQScsJ0InLCdDJywnRCcsJ0UnLCdGJ307CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKy8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhUb05ldXRyYWxDb252ZXJ0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhUb05ldXRyYWxDb252ZXJ0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOWNiMGI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeFRvTmV1dHJhbENvbnZlcnRlci5qYXZhCkBAIC0wLDAgKzEsMTA1NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBQb3NpeFRvTmV1dHJhbENvbnZlcnRlciBleHRlbmRzIExvY2FsZUNvbnZlcnRlciB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX0NUWVBFICAgICAgICAgICA9IDB4MDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX1RJTUUgICAgICAgICAgICA9IDB4MDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX05VTUVSSUMgICAgICAgICA9IDB4MDQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX01PTkVUQVJZICAgICAgICA9IDB4MDg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX01FU1NBR0VTICAgICAgICA9IDB4MTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX01FQVNVUkVNRU5UICAgICA9IDB4MTE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX0FERFJFU1MgICAgICAgICA9IDB4MTI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX1BBUEVSICAgICAgICAgICA9IDB4MTM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX05BTUUgICAgICAgICAgICA9IDB4MTQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX0lERU5USUZJQ0FUSU9OICA9IDB4MTU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX1RFTEVQSE9ORSAgICAgICA9IDB4MTY7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIG1hc2tzID0geyAKKyAgICAgICAgTENfQ1RZUEUsIExDX1RJTUUsIExDX05VTUVSSUMsIExDX01PTkVUQVJZLCBMQ19NRVNTQUdFUywKKyAgICAgICAgTENfTUVBU1VSRU1FTlQsTENfQUREUkVTUyxMQ19QQVBFUixMQ19OQU1FLExDX0lERU5USUZJQ0FUSU9OLAorICAgICAgICBMQ19URUxFUEhPTkUKKyAgICAgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gcHJvcHMgPSB7CisgICAgICAgIC8vTENfQ1RZUEUKKyAgICAgICAgeyAKKyAgICAgICAgICAgICJ1cHBlciIsICJsb3dlciIsICJhbHBoYSIsICJkaWdpdCIsICJzcGFjZSIsICJjbnRybCIsIAorICAgICAgICAgICAgInB1bmN0IiwgImdyYXBoIiwgInByaW50IiwgInhkaWdpdCIsICJibGFuayIsIAorICAgICAgICAgICAgInRvdXBwZXIiLCAidG9sb3dlciIgCisgICAgICAgIH0sCisgICAgICAgIC8vTENfVElNRQorICAgICAgICB7CisgICAgICAgICAgICAiYWJkYXkiLCAiZGF5IiwgImFibW9uIiwgIm1vbiIsICJkX3RfZm10IiwgImRfZnRtIiwgInRfZm10IiwgCisgICAgICAgICAgICAiYW1fcG0iLCAidF9mbXRfYW1wbSIsICJlcmEiLCAiZXJhX3llYXIiLCAiZXJhX2RfZm10IiwgImFsdF9kaWdpdHMiCisgICAgICAgIH0sCisgICAgICAgIC8vTENfTlVNRVJJQworICAgICAgICB7CisgICAgICAgICAgICAiZGVjaW1hbF9wb2ludCIsICJ0aG91c2FuZHNfc2VwIiwgImdyb3VwaW5nIgorICAgICAgICB9LAorICAgICAgICAvL0xDX01PTkVUQVJZCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnRfY3Vycl9zeW1ib2wiLCAiY3VycmVuY3lfc3ltYm9sIiwgIm1vbl9kZWNpbWFsX3BvaW50IiwKKyAgICAgICAgICAgICJtb25fdGhvdXNhbmRzX3NlcCIsICJtb25fZ3JvdXBpbmciLCAicG9zaXRpdmVfc2lnbiIsCisgICAgICAgICAgICAibmVnYXRpdmVfc2lnbiIsICJpbnRfZnJhY19kaWdpdHMiLCAiZnJhY19kaWdpdHMiLCAicF9jc19wcmVjZWRlcyIsCisgICAgICAgICAgICAicF9zZXBfYnlfc3BhY2UiLCAibl9jc19wcmVjZWRlcyIsICJuX3NlcF9ieV9zcGFjZSIsICJwX3NpZ25fcG9zbiIsCisgICAgICAgIH0sCisgICAgICAgIC8vTENfTUVTU0FHRVMKKyAgICAgICAgeworICAgICAgICAgICAgInllc2V4cHIiLCAibm9leHByIgorICAgICAgICB9LAorICAgICAgICAgICAKKyAgICAgICAgLy9MQ19NRUFTVVJFTUVOVAorICAgICAgICB7CisgICAgICAgICAgICJtZWFzdXJlbWVudCIKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19BRERSRVNTCisgICAgICAgIHsKKyAgICAgICAgICAgImNvcHkiLCJwb3N0YWxfZm10IiwiY291bnRyeV9uYW1lIiwiY291bnRyeV9wb3N0IiwKKyAgICAgICAgICAgImNvdW50cnlfYWIyIiwiY291bnRyeV9hYjMiLCJjb3VudHJ5X251bSIsImNvdW50cnlfY2FyIiwKKyAgICAgICAgICAgImNvdW50cnlfaXNibiIsImxhbmdfbmFtZSIsImxhbmdfYWIiLCJsYW5nX3Rlcm0iLCJsYW5nX2xpYiIKKyAgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICAvL0xDX1BBUEVSCisgICAgICAgIHsKKyAgICAgICAgICAgICJoZWlnaHQiLCJ3aWR0aCIsImNvcHkiCisgICAgICAgIH0sCisgICAgICAgIC8vTENfTkFNRSAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgICJjb3B5IiwibmFtZV9mbXQiLCJuYW1lX2dlbiIsIm5hbWVfbWlzcyIsIm5hbWVfbXIiLCJuYW1lX21ycyIsIm5hbWVfbXMiICAKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19JREVOVElGSUNBVElPTgorICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiLCJzb3VyY2UiLCJhZGRyZXNzIiwiY29udGFjdCIsImVtYWlsIiwidGVsIiwiZmF4IiwibGFuZ3VhZ2UiLAorICAgICAgICAgICAgInRlcnJpdG9yeSIsInJldmlzaW9uICIsImRhdGUiICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19URUxFUEhPTkUKKyAgICAgICAgeworICAgICAgICAgICAgImNvcHkiLCJ0ZWxfaW50X2ZtdCIsInRlbF9kb21fZm10IiwiaW50X3NlbGVjdCIsImludF9wcmVmaXgiIAorICAgICAgICB9LAorICAgICAgICAKKyAgICAgICAgICAgIAorICAgIH07CisgICAgcHJpdmF0ZSBmaW5hbCBieXRlIGZsYWdzOworICAgIHByaXZhdGUgZmluYWwgTG9jYWxlIGxvY2FsZTsKKyAgICBwcml2YXRlIGZpbmFsIExvY2FsZSBwYXJlbnRMb2NhbGU7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgc2ZpbGVOYW1lOworICAgIHB1YmxpYyBQb3NpeFRvTmV1dHJhbENvbnZlcnRlcihieXRlIGZsYWdzLCBmaW5hbCBMb2NhbGUgbG9jYWxlLGZpbmFsIFN0cmluZyBmaWxlTmFtZSkgeworICAgICAgICB0aGlzLmZsYWdzID0gZmxhZ3M7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICB0aGlzLnNmaWxlTmFtZT1maWxlTmFtZTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgY291bnRyeSA9IGxvY2FsZS5nZXRDb3VudHJ5KCk7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgIAorICAgICAgICBpbnQgbmR4ID0gbGFuZ3VhZ2UuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBsYW5ndWFnZS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIiIuZXF1YWxzKGNvdW50cnkpKSB7CisgICAgICAgICAgICBsYW5ndWFnZSA9ICIiOworICAgICAgICAgICAgdmFyaWFudCA9ICIiOworICAgICAgICB9IGVsc2UgaWYgKCIiLmVxdWFscyh2YXJpYW50KSkgeworICAgICAgICAgICAgY291bnRyeSA9ICIiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwYXJlbnRMb2NhbGUgPSBuZXcgTG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisvL319CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgY29udmVydChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKSAKKyAgICAgICAgICAgIHRocm93cyBDb252ZXJzaW9uRXJyb3IgeworLy8gICAgICAgIGNvbnZlcnRNRVNTQUdFUyhyZXN1bHQsc291cmNlKTsKKyAgICAgICAgd3JpdGVQb3NpeENvbXBEYXRhKHJlc3VsdCxzb3VyY2UpOworICAgICAgICBjb252ZXJ0TUVBU1VSRU1FTlQocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0Q09VTlRSWU5VTUJFUihyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRDT1VOVFJZSVNCTk5VTUJFUihyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRMQU5HVUFHRUxJQihyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRQQVBFUlNJWkUocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0TU9ORVRBUlkocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0TlVNRVJJQyhyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRUSU1FKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydENPTExBVEUocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1hc2tzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKGZsYWdzICYgbWFza3NbaV0pICE9IDApIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHByb3BzW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBwcm9wID0gcHJvcHNbaV1bal07CisgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCB2YWwgPSBzb3VyY2UuZ2V0KHByb3ApOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIHByb3AsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIFN0cmluZ1tdW10gY2xvbmUyREFycihTdHJpbmdbXVtdc3RyMkRhcnJheSl7CisgICAgICAgIFN0cmluZ1tdW10gbmV3U3RyMkRBcnIgPSBuZXcgU3RyaW5nW3N0cjJEYXJyYXkubGVuZ3RoXVtzdHIyRGFycmF5WzBdLmxlbmd0aF07IAorICAgICAgICBmb3IoaW50IGk9MDsgaTxzdHIyRGFycmF5Lmxlbmd0aDtpKyspeworICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8c3RyMkRhcnJheVtpXS5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICBuZXdTdHIyREFycltpXVtqXSA9IG5ldyBTdHJpbmcoc3RyMkRhcnJheVtpXVtqXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ld1N0cjJEQXJyOyAgICAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyBPYmplY3RbXVtdIGNsb25lMkRBcnIoT2JqZWN0W11bXXN0cjJEYXJyYXkpeworICAgICAgICBPYmplY3RbXVtdIG5ld1N0cjJEQXJyID0gbmV3IE9iamVjdFtzdHIyRGFycmF5Lmxlbmd0aF1bc3RyMkRhcnJheVswXS5sZW5ndGhdOyAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c3RyMkRhcnJheS5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHN0cjJEYXJyYXlbaV0ubGVuZ3RoO2orKyl7CisgICAgICAgICAgICAgICAgbmV3U3RyMkRBcnJbaV1bal0gPSAoT2JqZWN0KShuZXcgU3RyaW5nKChTdHJpbmcpc3RyMkRhcnJheVtpXVtqXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXdTdHIyREFycjsgICAgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZVBvc2l4Q29tcERhdGEoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7ICAgICAgICAKKyAgICAgICAgY29udmVydE1FU1NBR0VTKHJlc3VsdCxzb3VyY2UpOworICAgICAgICBjb252ZXJ0SURFTlRJRklDQVRJT04ocmVzdWx0LHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnROQU1FRk9STUFUKHJlc3VsdCxzb3VyY2UpOworICAgICAgICBjb252ZXJ0QUREUkVTU0ZPUk1BVChyZXN1bHQsc291cmNlKTsKKyAgICAgICAgY29udmVydFRFTEVQSE9ORUZPUk1BVChyZXN1bHQsc291cmNlKTsKKyAgICB9CisKKworICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TUVTU0FHRVMoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX01FU1NBR0VTID0gKFN0cmluZ1tdW10pIGdldERlZmF1bHQoIk1lc3NhZ2VzIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gbXlNZXNzYWdlcyA9IGNsb25lMkRBcnIoREVGQVVMVF9NRVNTQUdFUyk7CisKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJ5ZXNleHByIik7CisgICAgICAgIAorICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICAgbXlNZXNzYWdlc1swXVsxXSAgPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibm9leHByIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlNZXNzYWdlc1sxXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJ5ZXNzdHIiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU1lc3NhZ2VzWzJdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5vc3RyIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlNZXNzYWdlc1szXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiTWVzc2FnZXMiLG15TWVzc2FnZXMpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydElERU5USUZJQ0FUSU9OKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9NRVNTQUdFUyA9IChTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJJZGVudGlmaWNhdGlvbiIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15SWRlbnRpZmljYXRpb24gPSBjbG9uZTJEQXJyKERFRkFVTFRfTUVTU0FHRVMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgidGl0bGUiKTsKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblswXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJzb3VyY2UiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzFdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImFkZHJlc3MiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzJdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImNvbnRhY3QiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzNdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImVtYWlsIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvbls0XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJ0ZWwiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bNV1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImZheCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bNl1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibGFuZ3VhZ2UiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzddWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInRlcnJpdG9yeSIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bOF1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiYXVkaWVuY2UiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzldWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJhcHBsaWNhdGlvbiIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMTBdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiYWJicmV2aWF0aW9uIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsxMV1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgicmV2aXNpb24iKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzEyXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJkYXRlIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsxM11bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIklkZW50aWZpY2F0aW9uIixteUlkZW50aWZpY2F0aW9uKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnROQU1FRk9STUFUKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9NRVNTQUdFUyA9IChTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJOYW1lRm9ybWF0Iik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gbXlOYW1lRm9ybWF0ID0gY2xvbmUyREFycihERUZBVUxUX01FU1NBR0VTKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX21yIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzJdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfbWlzcyIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TmFtZUZvcm1hdFszXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX21zIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzZdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfbXJzIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzRdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfZ2VuZGVyIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzFdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfZm10Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgdmFsdWUgPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzBdWzFdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIk5hbWVGb3JtYXQiLG15TmFtZUZvcm1hdCk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0QUREUkVTU0ZPUk1BVChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfTUVTU0FHRVMgPSAoU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiQWRkcmVzc0Zvcm1hdCIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15QWRkcmVzc0Zvcm1hdCA9KCBjbG9uZTJEQXJyKERFRkFVTFRfTUVTU0FHRVMpKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJwb3N0YWxfZm10Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgdmFsdWUgPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICAgICAgbXlBZGRyZXNzRm9ybWF0WzBdWzFdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIkFkZHJlc3NGb3JtYXQiLG15QWRkcmVzc0Zvcm1hdCk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0VEVMRVBIT05FRk9STUFUKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9NRVNTQUdFUyA9IChTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJUZWxlcGhvbmVGb3JtYXQiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBteVRlbGVwaG9uZUZvcm1hdCA9IGNsb25lMkRBcnIoREVGQVVMVF9NRVNTQUdFUyk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgidGVsX2ludF9mbXQiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICB2YWx1ZSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgICAgICBteVRlbGVwaG9uZUZvcm1hdFswXVsxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiZG9tX2ZtdCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIHZhbHVlID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgICAgIG15VGVsZXBob25lRm9ybWF0WzFdWzFdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJpbnRfc2VsZWN0Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlUZWxlcGhvbmVGb3JtYXRbMl1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiaW50X3ByZWZpeCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15VGVsZXBob25lRm9ybWF0WzNdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiVGVsZXBob25lRm9ybWF0IixteVRlbGVwaG9uZUZvcm1hdCk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TU9ORVRBUlkoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSkgeworICAgICAgICBmaW5hbCBTdHJpbmdbXSBERUZBVUxUX0NVUlJFTkNZX0VMRU1FTlRTID0gKFN0cmluZ1tdKWdldERlZmF1bHQoIkN1cnJlbmN5RWxlbWVudHMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gZWxlbWVudHMgPSAoU3RyaW5nW10pREVGQVVMVF9DVVJSRU5DWV9FTEVNRU5UUy5jbG9uZSgpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImN1cnJlbmN5X3N5bWJvbCIpOworICAgICAgICAvL1JlcGxhY2VhYmxlIHRlbXAgPSBuZXcgUmVwbGFjZWFibGUodmFsdWUpOworICAgICAgIAorICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgZWxlbWVudHNbMF0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJpbnRfY3Vycl9zeW1ib2wiKTsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVsZW1lbnRzWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpc291cmNlLmdldCgibW9uX2RlY2ltYWxfcG9pbnQiKTsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVsZW1lbnRzWzJdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiQ3VycmVuY3lFbGVtZW50cyIsIGVsZW1lbnRzKTsKKyAgICB9CisgICAgCisKKyAgICBwcml2YXRlIHZvaWQgY29udmVydE1FQVNVUkVNRU5UKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9NRUFTVVJFTUVOVCA9KFN0cmluZylnZXREZWZhdWx0KCJNZWFzdXJlbWVudCIpOworICAgICAgICBTdHJpbmcgZWxlbWVudHMgPSAoU3RyaW5nKURFRkFVTFRfTUVBU1VSRU1FTlQ7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgibWVhc3VyZW1lbnQiKTsKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgaWYodmFsdWUuZXF1YWxzKCIxIikpCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSAiTWV0cmljIjsKKyAgICAgICAgICAgIGVsc2UgaWYodmFsdWUuZXF1YWxzKCIyIikpCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSAiQW1lcmljYW4iOworICAgICAgICAgICAgZWxzZSBpZih2YWx1ZS5lcXVhbHMoIjMiKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50cyA9ICJPdGhlciI7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiTWVhc3VyZW1lbnQiLGVsZW1lbnRzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRDT1VOVFJZTlVNQkVSIChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nIERFRkFVTFRfQ09VTlRSWU5VTUJFUiA9KFN0cmluZylnZXREZWZhdWx0KCJDb3VudHJ5TnVtYmVyIik7CisgICAgICAgIFN0cmluZyBlbGVtZW50cyA9IChTdHJpbmcpREVGQVVMVF9DT1VOVFJZTlVNQkVSOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoImNvdW50cnlfbnVtIik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiQ291bnRyeU51bWJlciIsZWxlbWVudHMpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydENPVU5UUllJU0JOTlVNQkVSIChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nIERFRkFVTFRfQ09VTlRSWU5VTUJFUiA9KFN0cmluZylnZXREZWZhdWx0KCJDb3VudHJ5SVNCTk51bWJlciIpOworICAgICAgICBTdHJpbmcgZWxlbWVudHMgPSBuZXcgU3RyaW5nKChTdHJpbmcpREVGQVVMVF9DT1VOVFJZTlVNQkVSKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJjb3VudHJ5X251bSIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBlbGVtZW50cyA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIkNvdW50cnlJU0JOTnVtYmVyIixlbGVtZW50cyk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TEFOR1VBR0VMSUIgKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9MQU5HVUFHRUxJQiA9KFN0cmluZylnZXREZWZhdWx0KCJMYW5ndWFnZUxpYnJhcnlVc2UiKTsKKyAgICAgICAgU3RyaW5nIGVsZW1lbnRzID1uZXcgU3RyaW5nKCAoU3RyaW5nKURFRkFVTFRfTEFOR1VBR0VMSUIpOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoImxhbmdfbGliIik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiTGFuZ3VhZ2VMaWJyYXJ5VXNlIixlbGVtZW50cyk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0UEFQRVJTSVpFIChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBERUZBVUxUX1BBUEVSU0laRT0oU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiUGFwZXJTaXplIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gZWxlbWVudHM9Y2xvbmUyREFycihERUZBVUxUX1BBUEVSU0laRSk7CisgICAgICAgIFN0cmluZyB2YWx1ZT0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJoZWlnaHQiKTsKKyAgICAgICAgaWYgKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzWzBdWzFdPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9ICAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJ3aWR0aCIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBlbGVtZW50c1sxXVsxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnRzWzJdWzFdPShTdHJpbmcpIm1tIjsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIlBhcGVyU2l6ZSIsZWxlbWVudHMpOworICAgIH0KKyAgICAKKyAgIC8qIHByaXZhdGUgdm9pZCBjb252ZXJ0SURFTlRJRklDQVRJT04oZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX0lERU5USUZJQ0FUSU9OID0oU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiSWRlbnRpZmljYXRpb24iKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBlbGVtZW50cyA9IChTdHJpbmdbXVtdKURFRkFVTFRfSURFTlRJRklDQVRJT04uY2xvYW5lKCk7CisgICAgICAgIAorICAgIH0qLworICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TlVNRVJJQyhmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKSB7CisgICAgICAgIC8vQnVpbGQgTnVtYmVyRWxlbWVudHMgZGF0YSBhcnJheQorICAgICAgICBmaW5hbCBTdHJpbmdbXSBERUZBVUxUX05VTUJFUl9FTEVNRU5UUyA9IChTdHJpbmdbXSlnZXREZWZhdWx0KCJOdW1iZXJFbGVtZW50cyIpOworICAgICAgICAvL1NldCBuZXcgbnVtYmVyIGVsZW1lbnRzIHRvIGEgY29weSBvZiB0aGUgZGVmYXVsdCB2YWx1ZSBmcm9tIHRoZSBwYXJlbnQuCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVsZW1lbnRzID0gKFN0cmluZ1tdKURFRkFVTFRfTlVNQkVSX0VMRU1FTlRTLmNsb25lKCk7CisgICAgICAgIC8vcHV0IGRlY2ltYWwgc2VwZXJhdG9yIGludG8gdGhlIE51bWJlckVsZW1lbnRzIGFycmF5CisgICAgICAgIFN0cmluZyBkZWNpbWFsUG9pbnQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImRlY2ltYWxfcG9pbnQiKTsKKyAgICAgICAgaWYgKGRlY2ltYWxQb2ludCAhPSBudWxsKSB7IC8vaWYgd2UgaGF2ZSBhIFBPU0lYIHZhbHVlLCBzdG9tcCBvbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgZWxlbWVudHNbMF0gPSBkZWNpbWFsUG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICAvL3B1dCB0aG91c2FuZHMgc2VwZXJhdG9yIGludG8gdGhlIE51bWJlckVsZW1lbnRzIGFycmF5CisgICAgICAgIFN0cmluZyB0aG91c2FuZHNTZXAgPSAoU3RyaW5nKXNvdXJjZS5nZXQoInRob3VzYW5kc19zZXAiKTsKKyAgICAgICAgaWYgKHRob3VzYW5kc1NlcCAhPSBudWxsKSB7IC8vaWYgd2UgaGF2ZSBhIFBPU0lYIHZhbHVlLCBzdG9tcCBvbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgZWxlbWVudHNbMV0gPSB0aG91c2FuZHNTZXA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vQWRkIE51bWJlckVsZW1lbnRzIHRvIHJlc3VsdAorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiTnVtYmVyRWxlbWVudHMiLCBlbGVtZW50cyk7CisKKyAgICAgICAgLy91c2UgY2Fub25pY2FsIGRlY2ltYWwgYW5kIHRob3VzYW5kcyBzZXBlcmF0b3JzIGZvciBwYXR0ZXJucworICAgICAgICBkZWNpbWFsUG9pbnQgPSAiLiI7CisgICAgICAgIHRob3VzYW5kc1NlcCA9ICIsIjsKKyAgICAgICAgCisgICAgICAgIC8vTnVtYmVyUGF0dGVybnMKKyAgICAgICAgZmluYWwgU3RyaW5nW10gREVGQVVMVF9OVU1CRVJfUEFUVEVSTlMgPSAoU3RyaW5nW10pZ2V0RGVmYXVsdCgiTnVtYmVyUGF0dGVybnMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gcGF0dGVybnMgPSAoU3RyaW5nW10pREVGQVVMVF9OVU1CRVJfUEFUVEVSTlMuY2xvbmUoKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuRGlnaXQgPSBlbGVtZW50c1s1XTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9EaWdpdCA9IGVsZW1lbnRzWzRdOworICAgICAgICBmaW5hbCBTdHJpbmcgbmVnYXRpdmVTaWduID0gZWxlbWVudHNbNl07CisgICAgICAgIGZpbmFsIFN0cmluZyBwZXJjZW50U2lnbiA9IGVsZW1lbnRzWzNdOworCisgICAgICAgIFN0cmluZyBncm91cGluZ1N0cmluZzsKKyAgICAgICAgT2JqZWN0IGdyb3VwaW5nT2JqID0gc291cmNlLmdldCgiZ3JvdXBpbmciKTsKKyAgICAgICAgYm9vbGVhbiBpc1N0ckFycmF5ID0gZ3JvdXBpbmdPYmogaW5zdGFuY2VvZiBTdHJpbmdbXTsKKyAgICAgICAgaWYgKGlzU3RyQXJyYXkpIHsKKyAgICAgICAgICAgIGdyb3VwaW5nU3RyaW5nID0gKChTdHJpbmdbXSlncm91cGluZ09iailbMF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBncm91cGluZ1N0cmluZyA9IChTdHJpbmcpZ3JvdXBpbmdPYmo7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChncm91cGluZ1N0cmluZyA9PSBudWxsKSB7CisgICAgICAgICAgICBwYXR0ZXJuc1swXSA9IHJlcGxhY2UocGF0dGVybnNbMF0sIGVsZW1lbnRzWzBdLCAiPERFQ0lNQUw+Iik7CisgICAgICAgICAgICBwYXR0ZXJuc1swXSA9IHJlcGxhY2UocGF0dGVybnNbMF0sIGVsZW1lbnRzWzFdLCAiPFRIT1VTQU5EPiIpOworICAgICAgICAgICAgcGF0dGVybnNbMF0gPSByZXBsYWNlKHBhdHRlcm5zWzBdLCAiPERFQ0lNQUw+IiwgZGVjaW1hbFBvaW50KTsKKyAgICAgICAgICAgIHBhdHRlcm5zWzBdID0gcmVwbGFjZShwYXR0ZXJuc1swXSwgIjxUSE9VU0FORD4iLCB0aG91c2FuZHNTZXApOworCisgICAgICAgICAgICBwYXR0ZXJuc1syXSA9IHJlcGxhY2UocGF0dGVybnNbMl0sIGVsZW1lbnRzWzFdLCAiPFRIT1VTQU5EPiIpOworICAgICAgICAgICAgcGF0dGVybnNbMl0gPSByZXBsYWNlKHBhdHRlcm5zWzJdLCAiPFRIT1VTQU5EPiIsIHRob3VzYW5kc1NlcCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIGdyb3VwaW5nOgorICAgICAgICAgICAgICogRGVmaW5lcyB0aGUgc2l6ZSBvZiBlYWNoIGdyb3VwIG9mIGRpZ2l0cyBpbiBmb3JtYXR0ZWQgbW9uZXRhcnkgCisgICAgICAgICAgICAgKiBxdWFudGl0aWVzLiBUaGUgb3BlcmFuZCBmb3IgdGhlIGdyb3VwaW5nIGtleXdvcmQgY29uc2lzdHMgb2YgYSAKKyAgICAgICAgICAgICAqIHNlcXVlbmNlIG9mIHNlbWljb2xvbi1zZXBhcmF0ZWQgaW50ZWdlcnMuIEVhY2ggaW50ZWdlciBzcGVjaWZpZXMgdGhlIAorICAgICAgICAgICAgICogbnVtYmVyIG9mIGRpZ2l0cyBpbiBhIGdyb3VwLiBUaGUgaW5pdGlhbCBpbnRlZ2VyIGRlZmluZXMgdGhlIHNpemUgb2YgCisgICAgICAgICAgICAgKiB0aGUgZ3JvdXAgaW1tZWRpYXRlbHkgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwgZGVsaW1pdGVyLiAKKyAgICAgICAgICAgICAqIFRoZSBmb2xsb3dpbmcgaW50ZWdlcnMgZGVmaW5lIHN1Y2NlZWRpbmcgZ3JvdXBzIHRvIHRoZSBsZWZ0IG9mIHRoZSAKKyAgICAgICAgICAgICAqIHByZXZpb3VzIGdyb3VwLiBJZiB0aGUgbGFzdCBpbnRlZ2VyIGlzIG5vdCAtMSwgdGhlIHNpemUgb2YgdGhlIAorICAgICAgICAgICAgICogcHJldmlvdXMgZ3JvdXAgKGlmIGFueSkgaXMgdXNlZCByZXBlYXRlZGx5IGZvciB0aGUgcmVtYWluZGVyIG9mIHRoZSAKKyAgICAgICAgICAgICAqIGRpZ2l0cy4gSWYgdGhlIGxhc3QgaW50ZWdlciBpcyAtMSwgbm8gZnVydGhlciBncm91cGluZyBpcyBwZXJmb3JtZWQuCisgICAgICAgICAgICAgKiBHcm91cGluZyBWYWx1ZSAgICBGb3JtYXR0ZWQgVmFsdWUKKyAgICAgICAgICAgICAqICAgMzstMSAgICAgICAgICAgICAgIDEyMzQ1Nic3ODkKKyAgICAgICAgICAgICAqICAgMyAgICAgICAgICAgICAgICAgIDEyMyc0NTYnNzg5CisgICAgICAgICAgICAgKiAgIDM7MjstMSAgICAgICAgICAgICAxMjM0JzU2Jzc4OQorICAgICAgICAgICAgICogICAzOzIgICAgICAgICAgICAgICAgMTInMzQnNTYnNzg5CisgICAgICAgICAgICAgKiAgIC0xICAgICAgICAgICAgICAgICAxMjM0NTY3ODkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgLy9mb3IgYSBncm91cGluZyBvZiA1CisgICAgICAgICAgICAvLyM8dGhvdXNhbmRzU2VwPiMjIyMwPGRlY2ltYWxQb2ludD4jIyMjIworICAgICAgICAgICAgZmluYWwgU3RyaW5nQnVmZmVyIHBhdHRlcm4gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgc2VtaUNvbG9uSW5kZXggPSBncm91cGluZ1N0cmluZy5pbmRleE9mKCc7JykgOworICAgICAgICAgICAgaW50IGdyb3VwaW5nID0gMDsKKyAgICAgICAgICAgIGlmKHNlbWlDb2xvbkluZGV4IDwgMCApeworICAgICAgICAgICAgICAgIGdyb3VwaW5nID0gSW50ZWdlci5wYXJzZUludChncm91cGluZ1N0cmluZyk7ICAgIAorICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQodGhvdXNhbmRzU2VwKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gTWF0aC5tYXgoMSwgZ3JvdXBpbmcgLSAxKTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChwYXR0ZXJuRGlnaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCh6ZXJvRGlnaXQpOworICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKGRlY2ltYWxQb2ludCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IE1hdGgubWF4KDEsIGdyb3VwaW5nIC0gMSk7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAvKiAgICBpbnQgcHJldkluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICBpbnRbXSBncm91cGluZ3MgPSBuZXcgaW50WzRdOworICAgICAgICAgICAgICAgIGludCBqID0wOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPGdyb3VwaW5nU3RyaW5nLmxlbmd0aCgpOyBpKyspeworICAgICAgICAgICAgICAgICAgICBpZihncm91cGluZ1N0cmluZy5jaGFyQXQoaSk9PSc7Jyl7CisgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ3NbaisrXSA9IEludGVnZXIucGFyc2VJbnQoZ3JvdXBpbmdTdHJpbmcuc3Vic3RyaW5nKHByZXZJbmRleCxpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2SW5kZXggPSBpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IGotMSA7aTwtMTsgaS0tKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZ3JvdXBpbmdzW2ldID09IC0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHApOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiB1bmltcGxlbWVudGVkIHBhdHRlcm4gcGFyc2VyLiBQYXR0ZXJuOiAiICsgZ3JvdXBpbmdTdHJpbmcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVyblN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHBhdHRlcm5zWzBdID0gcGF0dGVyblN0cmluZyArICI7IiArIG5lZ2F0aXZlU2lnbiArIHBhdHRlcm5TdHJpbmc7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhdHRlcm4uc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGF0dGVybkRpZ2l0KTsKKyAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHRob3VzYW5kc1NlcCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gTWF0aC5tYXgoMSwgZ3JvdXBpbmcgLSAxKTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCh6ZXJvRGlnaXQpOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGVyY2VudFNpZ24pOyAgICAgICAgICAgIAorICAgICAgICAgICAgcGF0dGVybnNbMl0gPSBwYXR0ZXJuLnRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgLy8gZmluYWwgU3RyaW5nW10gY3VycmVuY3lFbGVtZW50cyA9ICgoU3RyaW5nW10pZ2V0RGVmYXVsdCgiQ3VycmVuY3lFbGVtZW50cyIpKTsKKyAgICAgICAgICAgIFN0cmluZyBjdXJyZW5jeV9zeW1ib2wgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImN1cnJlbmN5X3N5bWJvbCIpOworICAgICAgICAgICAgY3VycmVuY3lfc3ltYm9sID0gKGN1cnJlbmN5X3N5bWJvbCAhPSBudWxsKSA/IGN1cnJlbmN5X3N5bWJvbCA6IChTdHJpbmcpc291cmNlLmdldCgiaW50X2N1cnJfc3ltYm9sIik7CisgICAgICAgICAgICBjdXJyZW5jeV9zeW1ib2wgPSAoY3VycmVuY3lfc3ltYm9sICE9IG51bGwpID8gY3VycmVuY3lfc3ltYm9sIDogIiI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBtb25fZGVjaW1hbF9wb2ludCA9IChTdHJpbmcpc291cmNlLmdldCgibW9uX2RlY2ltYWxfcG9pbnQiKTsKKyAgICAgICAgICAgIG1vbl9kZWNpbWFsX3BvaW50ID0gKG1vbl9kZWNpbWFsX3BvaW50ICE9IG51bGwpID8gbW9uX2RlY2ltYWxfcG9pbnQgOiAiIjsKKworICAgICAgICAgICAgU3RyaW5nIG1vbl90aG91c2FuZHNfc2VwID0gKFN0cmluZylzb3VyY2UuZ2V0KCJtb25fdGhvdXNhbmRzX3NlcCIpOworICAgICAgICAgICAgbW9uX3Rob3VzYW5kc19zZXAgPSAobW9uX3Rob3VzYW5kc19zZXAgIT0gbnVsbCkgPyBtb25fdGhvdXNhbmRzX3NlcCA6ICIiOworCisgICAgICAgICAgICBTdHJpbmcgbW9uX2dyb3VwaW5nX3N0cmluZzsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBtb25fZ3JvdXBpbmc6CisgICAgICAgICAgICAgKiAKKyAgICAgICAgICAgICAqIFNwZWNpZmllcyBhIHN0cmluZyB0aGF0IGRlZmluZXMgdGhlIHNpemUgb2YgZWFjaCBncm91cCBvZiBkaWdpdHMgCisgICAgICAgICAgICAgKiBpbiBmb3JtYXR0ZWQgbW9uZXRhcnkgcXVhbnRpdGllcy4gVGhlIG9wZXJhbmQgZm9yIHRoZSAKKyAgICAgICAgICAgICAqIG1vbl9ncm91cGluZyBrZXl3b3JkIGNvbnNpc3RzIG9mIGEgc2VxdWVuY2Ugb2YgCisgICAgICAgICAgICAgKiBzZW1pY29sb24tc2VwYXJhdGVkIGludGVnZXJzLiBFYWNoIGludGVnZXIgc3BlY2lmaWVzIHRoZSBudW1iZXIgCisgICAgICAgICAgICAgKiBvZiBkaWdpdHMgaW4gYSBncm91cC4gVGhlIGluaXRpYWwgaW50ZWdlciBkZWZpbmVzIHRoZSBzaXplIG9mIHRoZQorICAgICAgICAgICAgICogZ3JvdXAgaW1tZWRpYXRlbHkgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwgZGVsaW1pdGVyLiAKKyAgICAgICAgICAgICAqIFRoZSBmb2xsb3dpbmcgaW50ZWdlcnMgZGVmaW5lIHN1Y2NlZWRpbmcgZ3JvdXBzIHRvIHRoZSBsZWZ0IG9mIAorICAgICAgICAgICAgICogdGhlIHByZXZpb3VzIGdyb3VwLiBJZiB0aGUgbGFzdCBpbnRlZ2VyIGlzIG5vdCAtMSwgdGhlIHNpemUgb2YgCisgICAgICAgICAgICAgKiB0aGUgcHJldmlvdXMgZ3JvdXAgKGlmIGFueSkgaXMgcmVwZWF0ZWRseSB1c2VkIGZvciB0aGUgcmVtYWluZGVyIAorICAgICAgICAgICAgICogb2YgdGhlIGRpZ2l0cy4gSWYgdGhlIGxhc3QgaW50ZWdlciBpcyAtMSwgbm8gZnVydGhlciBncm91cGluZyBpcyAKKyAgICAgICAgICAgICAqIHBlcmZvcm1lZC4KKyAgICAgICAgICAgICAqIAorICAgICAgICAgICAgICogVmFsdWUgICAgRm9ybWF0dGVkIFZhbHVlCisgICAgICAgICAgICAgKiAgMzstMSAgICAxMjM0NTYnNzg5CisgICAgICAgICAgICAgKiAgMyAgICAgICAxMjMnNDU2Jzc4OQorICAgICAgICAgICAgICogIDM7MjstMSAgMTIzNCc1Nic3ODkKKyAgICAgICAgICAgICAqICAzOzIgICAgIDEyJzM0JzU2Jzc4OQorICAgICAgICAgICAgICogICAtMSAgICAgMTIzNDU2Nzg5IAorICAgICAgICAgICAgICovIAorICAgICAgICAgICAgZmluYWwgT2JqZWN0IG1vbkdyb3VwaW5nT2JqID0gc291cmNlLmdldCgibW9uX2dyb3VwaW5nIik7CisgICAgICAgICAgICBpZiAobW9uR3JvdXBpbmdPYmogaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgICAgIG1vbl9ncm91cGluZ19zdHJpbmcgPSAoKFN0cmluZ1tdKW1vbkdyb3VwaW5nT2JqKVswXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbW9uX2dyb3VwaW5nX3N0cmluZyA9IChTdHJpbmcpbW9uR3JvdXBpbmdPYmo7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaW5hbCBpbnQgbW9uX2dyb3VwaW5nID0gKG1vbl9ncm91cGluZ19zdHJpbmcgPT0gbnVsbCkgPyBncm91cGluZyA6IEludGVnZXIucGFyc2VJbnQobW9uX2dyb3VwaW5nX3N0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBmcmFjX2RpZ2l0c19zdHJpbmcgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImZyYWNfZGlnaXRzIik7CisgICAgICAgICAgICBmaW5hbCBpbnQgZnJhY19kaWdpdHMgPSAoZnJhY19kaWdpdHNfc3RyaW5nID09IG51bGwpID8gbW9uX2dyb3VwaW5nIDogSW50ZWdlci5wYXJzZUludChmcmFjX2RpZ2l0c19zdHJpbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgcG9zaXRpdmVfc2lnbiA9IChTdHJpbmcpc291cmNlLmdldCgicG9zaXRpdmVfc2lnbiIpOworICAgICAgICAgICAgcG9zaXRpdmVfc2lnbiA9IChwb3NpdGl2ZV9zaWduICE9IG51bGwpID8gcG9zaXRpdmVfc2lnbiA6ICIiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbmVnYXRpdmVfc2lnbiA9IChTdHJpbmcpc291cmNlLmdldCgibmVnYXRpdmVfc2lnbiIpOworICAgICAgICAgICAgbmVnYXRpdmVfc2lnbiA9IChuZWdhdGl2ZV9zaWduICE9IG51bGwpID8gbmVnYXRpdmVfc2lnbiA6ICIiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgcF9zaWduX3Bvc24gPSAoU3RyaW5nKXNvdXJjZS5nZXQoInBfc2lnbl9wb3NuIik7CisgICAgICAgICAgICBwX3NpZ25fcG9zbiA9IChwX3NpZ25fcG9zbiAhPSBudWxsKSA/IHBfc2lnbl9wb3NuIDogIiI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuX3NpZ25fcG9zbiA9IChTdHJpbmcpc291cmNlLmdldCgibl9zaWduX3Bvc24iKTsKKyAgICAgICAgICAgIG5fc2lnbl9wb3NuID0gKG5fc2lnbl9wb3NuICE9IG51bGwpID8gbl9zaWduX3Bvc24gOiAiIjsKKworICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBwX2NzX3ByZWNlZGVzID0gISIwIi5lcXVhbHMoc291cmNlLmdldCgicF9jc19wcmVjZWRlcyIpKTsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBwX3NlcF9ieV9zcGFjZSA9IChTdHJpbmcpc291cmNlLmdldCgicF9zZXBfYnlfc3BhY2UiKTsKKyAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gbl9jc19wcmVjZWRlcyA9ICEiMCIuZXF1YWxzKHNvdXJjZS5nZXQoIm5fY3NfcHJlY2VkZXMiKSk7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbl9zZXBfYnlfc3BhY2UgPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm5fc2VwX2J5X3NwYWNlIik7CisKKyAgICAgICAgICAgIHBhdHRlcm4uc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgCisvKiAgICAgICAgICAgIAorICAgICAgICAgICAgcGF0dGVybnNbMV0gPQorICAgICAgICAgICAgICAgIGNyZWF0ZVBhdHRlcm5TdHJpbmcoY3VycmVuY3lfc3ltYm9sLCBtb25fZGVjaW1hbF9wb2ludCwgbW9uX3Rob3VzYW5kc19zZXAsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIHBvc2l0aXZlX3NpZ24sIHBfY3NfcHJlY2VkZXMsIHBfc2VwX2J5X3NwYWNlLCBwX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpCisgICAgICAgICAgICAgICAgKyAiOyIKKyAgICAgICAgICAgICAgICArIGNyZWF0ZVBhdHRlcm5TdHJpbmcoY3VycmVuY3lfc3ltYm9sLCBtb25fZGVjaW1hbF9wb2ludCwgbW9uX3Rob3VzYW5kc19zZXAsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlX3NpZ24sIG5fY3NfcHJlY2VkZXMsIG5fc2VwX2J5X3NwYWNlLCBuX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpOworKi8KKyAgICAgICAgICAgIAorLyogICAgICAgICAgICBwYXR0ZXJuc1sxXSA9CisgICAgICAgICAgICAgICAgY3JlYXRlUGF0dGVyblN0cmluZyhjdXJyZW5jeV9zeW1ib2wsICIuIiwgIiwiLCBtb25fZ3JvdXBpbmcsIGZyYWNfZGlnaXRzLAorICAgICAgICAgICAgICAgICAgICBwb3NpdGl2ZV9zaWduLCBwX2NzX3ByZWNlZGVzLCBwX3NlcF9ieV9zcGFjZSwgcF9zaWduX3Bvc24sIHBhdHRlcm5EaWdpdCwgemVyb0RpZ2l0KQorICAgICAgICAgICAgICAgICsgIjsiCisgICAgICAgICAgICAgICAgKyBjcmVhdGVQYXR0ZXJuU3RyaW5nKGN1cnJlbmN5X3N5bWJvbCwgIi4iLCAiLCIsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlX3NpZ24sIG5fY3NfcHJlY2VkZXMsIG5fc2VwX2J5X3NwYWNlLCBuX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpOworKi8KKyAgICAgICAgICAgIHBhdHRlcm5zWzFdID0KKyAgICAgICAgICAgICAgICBjcmVhdGVQYXR0ZXJuU3RyaW5nKCIuIiwgIiwiLCBtb25fZ3JvdXBpbmcsIGZyYWNfZGlnaXRzLAorICAgICAgICAgICAgICAgICAgICBwb3NpdGl2ZV9zaWduLCBwX2NzX3ByZWNlZGVzLCBwX3NlcF9ieV9zcGFjZSwgcF9zaWduX3Bvc24sIHBhdHRlcm5EaWdpdCwgemVyb0RpZ2l0KQorICAgICAgICAgICAgICAgICsgIjsiCisgICAgICAgICAgICAgICAgKyBjcmVhdGVQYXR0ZXJuU3RyaW5nKCIuIiwgIiwiLCBtb25fZ3JvdXBpbmcsIGZyYWNfZGlnaXRzLAorICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZV9zaWduLCBuX2NzX3ByZWNlZGVzLCBuX3NlcF9ieV9zcGFjZSwgbl9zaWduX3Bvc24sIHBhdHRlcm5EaWdpdCwgemVyb0RpZ2l0KTsKKworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJOdW1iZXJQYXR0ZXJucyIsIHBhdHRlcm5zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHJvdXRpbmUgY3JlYXRlcyBjdXJyZW5jeSBmb3JtYXRzIGZyb20gYWxsIHRoZSBwb3NpeCBzdHVmZi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjcmVhdGVQYXR0ZXJuU3RyaW5nKFN0cmluZyBkZWNpbWFsLCBTdHJpbmcgdGhvdXNhbmRzLCBpbnQgZ3JvdXBpbmcsIGludCBmcmFjRGlnaXRzLAorICAgICAgICAgICAgU3RyaW5nIHNpZ24sIGJvb2xlYW4gcHJlY2VlZHMsIFN0cmluZyBzZXBfYnlfc3BhY2UsIFN0cmluZyBzaWduX3Bvc24sIFN0cmluZyBkaWdpdCwKKyAgICAgICAgICAgIFN0cmluZyByZXF1aXJlZERpZ2l0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZpbmFsIFN0cmluZyBjdXJyZW5jeSA9ICJcdTAwQTQiOworICAgICAgICBpZiAoIjIiLmVxdWFscyhzZXBfYnlfc3BhY2UpICYmICgiIi5lcXVhbHMoY3VycmVuY3kpIHx8ICIiLmVxdWFscyhzaWduKSkpIHsKKyAgICAgICAgICAgIHNlcF9ieV9zcGFjZSA9ICIwIjsKKyAgICAgICAgfQorICAgICAgICBpZiAoIjEiLmVxdWFscyhzZXBfYnlfc3BhY2UpICYmICIiLmVxdWFscyhjdXJyZW5jeSkpIHsKKyAgICAgICAgICAgIHNlcF9ieV9zcGFjZSA9ICIwIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nIHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yID0gKCIyIi5lcXVhbHMoc2VwX2J5X3NwYWNlKSkgPyAiICIgOiAiIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIHF1YW50aXR5X2N1cnJlbmN5X3NlcGVyYXRvciA9ICgiMSIuZXF1YWxzKHNlcF9ieV9zcGFjZSkpID8gIiAiIDogIiI7CisgICAgICAgIAorICAgICAgICBpZiAoIjAiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCIxIi5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgIGlmIChwcmVjZWVkcykgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChwcmVjZWVkcykgeworICAgICAgICAgICAgaWYgKCIzIi5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGN1cnJlbmN5KTsKKyAgICAgICAgICAgIGlmICgiNCIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ24pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChxdWFudGl0eV9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICB9ICAgICAgIAorICAgICAgICAKKyAgICAgICAgYnVmZmVyLmFwcGVuZChkaWdpdCk7CisgICAgICAgIGlmIChncm91cGluZyA+IDApIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGhvdXNhbmRzKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBncm91cGluZy0xOyBpID4gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChkaWdpdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyLmFwcGVuZChyZXF1aXJlZERpZ2l0KTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChkZWNpbWFsKTsKKyAgICAgICAgaWYgKGZyYWNEaWdpdHMgPiAwKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gZnJhY0RpZ2l0cy0xOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocmVxdWlyZWREaWdpdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFwcmVjZWVkcykgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChxdWFudGl0eV9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgaWYgKCIxIi5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCIzIi5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGN1cnJlbmN5KTsKKyAgICAgICAgICAgIGlmICgiNCIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ24pOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgIAorICAgICAgICBpZiAoIjIiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCIwIi5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnKScpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0VElNRShIYXNodGFibGUgcmVzdWx0LCBIYXNodGFibGUgc291cmNlKSB7CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJEYXlOYW1lcyIsIHNvdXJjZS5nZXQoImRheSIpKTsKKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIkRheUFiYnJldmlhdGlvbnMiLCBzb3VyY2UuZ2V0KCJhYmRheSIpKTsKKyAgICAgICAgU3RyaW5nW10gdGVtcCA9IChTdHJpbmdbXSlzb3VyY2UuZ2V0KCJhbV9wbSIpOworICAgICAgICBpZiAodGVtcCAhPSBudWxsKSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXSBkZWZhdWx0QU1QTSA9IChTdHJpbmdbXSlnZXREZWZhdWx0KCJBbVBtTWFya2VycyIpOworICAgICAgICAgICAgaWYgKCIiLmVxdWFscyh0ZW1wWzBdKSkgdGVtcFswXSA9IGRlZmF1bHRBTVBNWzBdOworICAgICAgICAgICAgaWYgKCIiLmVxdWFscyh0ZW1wWzFdKSkgdGVtcFsxXSA9IGRlZmF1bHRBTVBNWzFdOworICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIkFtUG1NYXJrZXJzIiwgdGVtcCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlbXAgPSAoU3RyaW5nW10pc291cmNlLmdldCgibW9uIik7CisgICAgICAgIGlmICh0ZW1wICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vYWRkIGVtcHR5IDEzdGggbW9udGgKKyAgICAgICAgICAgIFN0cmluZ1tdIG5ld1RlbXAgPSBuZXcgU3RyaW5nWzEzXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGVtcCwgMCwgbmV3VGVtcCwgMCwgMTIpOworICAgICAgICAgICAgbmV3VGVtcFsxMl0gPSAiIjsKKyAgICAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJNb250aE5hbWVzIiwgbmV3VGVtcCk7CisgICAgICAgIH0KKyAgICAgICAgdGVtcCA9IChTdHJpbmdbXSlzb3VyY2UuZ2V0KCJhYm1vbiIpOworICAgICAgICBpZiAodGVtcCAhPSBudWxsKSB7CisgICAgICAgICAgICAvL2FkZCBlbXB0eSAxM3RoIG1vbnRoCisgICAgICAgICAgICBTdHJpbmdbXSBuZXdUZW1wID0gbmV3IFN0cmluZ1sxM107CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXAsIDAsIG5ld1RlbXAsIDAsIDEyKTsKKyAgICAgICAgICAgIG5ld1RlbXBbMTJdID0gIiI7CisgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiTW9udGhBYmJyZXZpYXRpb25zIiwgbmV3VGVtcCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZpbmFsIFN0cmluZyB0X2ZtdF9hbXBtID0gKFN0cmluZylzb3VyY2UuZ2V0KCJ0X2ZtdF9hbXBtIik7CisgICAgICAgIGZpbmFsIFN0cmluZyB0X2ZtdCA9IChTdHJpbmcpc291cmNlLmdldCgidF9mbXQiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGRfdF9mbXQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImRfdF9mbXQiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGRfZm10ID0gKFN0cmluZylzb3VyY2UuZ2V0KCJkX2ZtdCIpOworICAgICAgICBmaW5hbCBTdHJpbmcgbmxsZGF0ZSA9IChTdHJpbmcpc291cmNlLmdldCgibmxsZGF0ZSIpOyAgIC8vbm9uLXN0YW5kYXJkIElCTSB0aGluZworICAgICAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nIERFRkFVTFRfREFURVRJTUVfRUxFTUVOVFNbXSA9IChTdHJpbmdbXSlnZXREZWZhdWx0KCJEYXRlVGltZVBhdHRlcm5zIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVsZW1lbnRzID0gKFN0cmluZ1tdKURFRkFVTFRfREFURVRJTUVfRUxFTUVOVFMuY2xvbmUoKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIFhfcGF0dGVybiA9IGVsZW1lbnRzWzNdOworICAgICAgICBmaW5hbCBTdHJpbmcgeF9wYXR0ZXJuID0gZWxlbWVudHNbN107CisgICAgICAgIGZpbmFsIFN0cmluZyBjX3BhdHRlcm4gPSBlbGVtZW50c1s0XSArICIgIiArIGVsZW1lbnRzWzBdOworICAgICAgICAKKyAgICAgICAgZWxlbWVudHNbMF0gPSAodF9mbXRfYW1wbSAhPSBudWxsICYmIHRfZm10X2FtcG0ubGVuZ3RoKCkgPiAwKSA/IHRfZm10X2FtcG0gOiB0X2ZtdDsKKyAgICAgICAgZWxlbWVudHNbMV0gPSAodF9mbXQgIT0gbnVsbCkgPyB0X2ZtdCA6IHRfZm10X2FtcG07CisgICAgICAgIGVsZW1lbnRzWzJdID0gKHRfZm10ICE9IG51bGwpID8gdF9mbXQgOiB0X2ZtdF9hbXBtOworICAgICAgICBlbGVtZW50c1szXSA9ICh0X2ZtdCAhPSBudWxsKSA/IHRfZm10IDogdF9mbXRfYW1wbTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBsb25naXNoRGF0ZUZvcm1hdCA9IChubGxkYXRlICE9IG51bGwpID8gbmxsZGF0ZSA6IGRfZm10OworICAgICAgICBpZiAoZF90X2ZtdCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAodF9mbXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vdHJ5IHRvIGJ1aWxkIGEgZGV0YWlsZWQgZGF0YSBmb3JtYXQgYnkgdGFraW5nIHRoZSAKKyAgICAgICAgICAgICAgICAvL2RhdGUtdGltZSBmb3JtYXQgYW5kIHJlbW92aW5nIHRoZSB0aW1lIHBvcnRpb24KKyAgICAgICAgICAgICAgICBpbnQgbmR4ID0gZF90X2ZtdC5pbmRleE9mKHRfZm10KTsKKyAgICAgICAgICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5keCA8IChkX3RfZm10Lmxlbmd0aCgpIC0gdF9mbXQubGVuZ3RoKCkpLzIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzWzhdID0gInswfSB7MX0iOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gcmVwbGFjZShkX3RfZm10LCB0X2ZtdCwgIiIpOworICAgICAgICAgICAgICAgICAgICBsb25naXNoRGF0ZUZvcm1hdCA9IHJlcGxhY2UobG9uZ2lzaERhdGVGb3JtYXQsICIlWiIsICIiKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2lzaERhdGVGb3JtYXQgPSByZXBsYWNlKGxvbmdpc2hEYXRlRm9ybWF0LCAiICAiLCAiICIpOworICAgICAgICAgICAgICAgICAgICBsb25naXNoRGF0ZUZvcm1hdCA9IHJlcGxhY2UobG9uZ2lzaERhdGVGb3JtYXQsICIgICIsICIgIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChsb25naXNoRGF0ZUZvcm1hdC5jaGFyQXQoMCkgPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb25naXNoRGF0ZUZvcm1hdCA9IGxvbmdpc2hEYXRlRm9ybWF0LnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsb25naXNoRGF0ZUZvcm1hdC50cmltKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsZW1lbnRzWzRdID0gbG9uZ2lzaERhdGVGb3JtYXQ7CisgICAgICAgIGVsZW1lbnRzWzVdID0gZF90X2ZtdDsKKyAgICAgICAgZWxlbWVudHNbNl0gPSAobmxsZGF0ZSAhPSBudWxsKSA/IG5sbGRhdGUgOiBkX2ZtdDsKKyAgICAgICAgZWxlbWVudHNbN10gPSBkX2ZtdDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudHNbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVsZW1lbnRzW2ldID0gY29udmVydEZvcm1hdHMoZWxlbWVudHNbaV0sIFhfcGF0dGVybiwgeF9wYXR0ZXJuLCBjX3BhdHRlcm4pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50c1tpXSA9IERFRkFVTFRfREFURVRJTUVfRUxFTUVOVFNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIkRhdGVUaW1lUGF0dGVybnMiLCBlbGVtZW50cyk7CisgICAgfQorICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgY29udmVydEZvcm1hdHMoU3RyaW5nIHBhdHRlcm4sIFN0cmluZyBYX3BhdHRlcm4sIAorICAgICAgICAgICAgU3RyaW5nIHhfcGF0dGVybiwgU3RyaW5nIGNfcGF0dGVybikgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRwYXR0ZXJuID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHBhdHRlcm4pOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBib29sZWFuIHNpbmdsZURpZ2l0ID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHBhdHRlcm4ubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gdHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgIT0gJyUnKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2luZ2xlRGlnaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgYyA9IHRwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiRUVFIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0EnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJFRUVFIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2InOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNTU0iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk1NTU0iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnYyc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY19wYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6ICAgLy8qKiBoZXkge2pmfSAtIHRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIGNlbnR1cnkgb25seS4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiWVlZWSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdkJzoKKyAgICAgICAgICAgICAgICAgICAgaWYoc2luZ2xlRGlnaXQgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJkIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiZGQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdEJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgibW0vZGQveXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnZSc6CisgICAgICAgICAgICAgICAgICAgIGlmKHNpbmdsZURpZ2l0ID09IHRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiZCIpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImRkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk1NTSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdIJzoKKyAgICAgICAgICAgICAgICAgICAgaWYoc2luZ2xlRGlnaXQgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJIIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiSEgiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgaWYoc2luZ2xlRGlnaXQgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJoIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiaGgiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdqJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiREREIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ20nOgorICAgICAgICAgICAgICAgICAgICBpZihzaW5nbGVEaWdpdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk0iKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNTSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk1NIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ00nOgorICAgICAgICAgICAgICAgICAgICBpZihzaW5nbGVEaWdpdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIm0iKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJtbSIpOworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICduJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAncCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImFhIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3InOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvbnZlcnRGb3JtYXRzKCIlSTolTTolUyAlcCIsIFhfcGF0dGVybiwgeF9wYXR0ZXJuLCBjX3BhdHRlcm4pKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUyc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInNzIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcdCcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdUJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb252ZXJ0Rm9ybWF0cygiJUk6JU06JVMiLCBYX3BhdHRlcm4sIHhfcGF0dGVybiwgY19wYXR0ZXJuKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1UnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ3dyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICd3JzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiRSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdXJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgid3ciKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAneCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeF9wYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnWCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoWF9wYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAneSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInl5Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1knOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ5eXl5Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1onOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ6Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJyUnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIlIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJy4nOgorICAgICAgICAgICAgICAgICAgICBjaGFyIGMxID0gdHBhdHRlcm4uY2hhckF0KGkrMSk7CisgICAgICAgICAgICAgICAgICAgIGlmKGMxPT0nMScpeworICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlRGlnaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnJScpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY29udmVydENPTExBVEUoSGFzaHRhYmxlIHJlc3VsdCwgSGFzaHRhYmxlIHNvdXJjZSkgeworICAgICAgICBTdHJpbmdbXSBzb3J0T3JkZXIgPSAoU3RyaW5nW10pc291cmNlLmdldCgic29ydF9vcmRlciIpOyAgICAKKyAgICAgICAgZmluYWwgT2JqZWN0W11bXSBERUZBVUxUX0NPTExBVElPTj0oT2JqZWN0W11bXSkgZ2V0RGVmYXVsdCgiY29sbGF0aW9ucyIpOworICAgICAgICBmaW5hbCBPYmplY3RbXVtdIGVsZW1lbnRzPShPYmplY3RbXVtdKWNsb25lMkRBcnIoREVGQVVMVF9DT0xMQVRJT04pOyAgICAgICAgCisgICAgICAgIGlmIChzb3J0T3JkZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCEiZm9yd2FyZCIuZXF1YWxzKHNvcnRPcmRlclswXSkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBVbnN1cHBvcnRlZCBwcmltYXJ5IHNvcnQgb3JkZXI6ICIrc29ydE9yZGVyWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzb3J0T3JkZXIubGVuZ3RoID09IDIgJiYgISJmb3J3YXJkIi5lcXVhbHMoc29ydE9yZGVyWzFdKSAmJiAhImJhY2t3YXJkIi5lcXVhbHMoc29ydE9yZGVyWzFdKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IFVuc3VwcG9ydGVkIHNlY29uZGFyeSBzb3J0IG9yZGVyOiAiK3NvcnRPcmRlclsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc29ydE9yZGVyLmxlbmd0aCA9PSAzICYmICEiZm9yd2FyZCIuZXF1YWxzKHNvcnRPcmRlclsyXSkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBVbnN1cHBvcnRlZCB0ZXJ0aWFyeSBzb3J0IG9yZGVyOiAiK3NvcnRPcmRlclsyXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc29ydE9yZGVyLmxlbmd0aCA+IDMpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IFNvcnQgbGV2ZWxzIG9mIG9yZGVyIGdyZWF0ZXIgdGhhbiB0aHJlZSBpZ25vcmVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZVtdIHJ1bGVTb3VyY2UgPSAKKyAgICAgICAgICAgIChQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZVtdKXNvdXJjZS5nZXQoInBvc2l4X3NvcnRfcnVsZXMiKTsKKworICAgICAgICBpZiAocnVsZVNvdXJjZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy9hbGxvY2F0ZSBhIGxpc3Qgb2YgY29sbGF0aW9uSXRlbXMuICBBZGQgYW4gZXh0cmEgZW50cnkgZm9yIHNlY29uZGFyeSBvcmRlcmluZworICAgICAgICAgICAgQ29sbGF0aW9uSXRlbVtdIHJ1bGVzID0gbmV3IENvbGxhdGlvbkl0ZW1bcnVsZVNvdXJjZS5sZW5ndGgrMV07CisgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZSBwcmV2UnVsZSA9IG51bGw7CisgICAgICAgICAgICAgICAgLy9hZGQgYWxsIHRoZSBydWxlcyBmb3Igbm9uLWV4cGFuZGluZyBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBuZHggPSAwOyBuZHggPCBydWxlU291cmNlLmxlbmd0aDsgbmR4KyspIHsKKyAgICAgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZSBydWxlID0gcnVsZVNvdXJjZVtuZHhdOworICAgICAgICAgICAgICAgICAgICAvL2FkZCBub24tZXhwYW5kaW5nIGNoYXJhY3RlcnMgdG8gdGhlIHNvcnQgbGlzdAorICAgICAgICAgICAgICAgIGlmIChydWxlLmdldFNpemUoKSA8PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWZmOworICAgICAgICAgICAgICAgICAgICBpZiAocHJldlJ1bGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9pZiBpdCdzIHRoZSBmaXJzdCBydWxlLCBkb24ndCBjb21wYXJlIHRvIGFueXRoaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgLy9zZWVrIGJhY2sgc28gaXQgY2FuIGJlIGFwcGVuZGVkIHRvIHRoZSBkZWZhdWx0IHJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXSA9IG5ldyBDb2xsYXRpb25JdGVtKHJ1bGUuZ2V0U3ltYm9sKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9jb21wYXJlIHRvIHByZXZpb3VzIGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBwcmV2UnVsZS5jb21wYXJlKHJ1bGUpOworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0gPSBuZXcgQ29sbGF0aW9uSXRlbShkaWZmLCBydWxlLmdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBydWxlc1tpKytdLnNldENvbW1lbnQocnVsZS5nZXRTb3VyY2UoKSk7CisgICAgICAgICAgICAgICAgICAgIHByZXZSdWxlID0gcnVsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9hZGQgcnVsZXMgZm9yIGV4cGFuZGluZyBjaGFyYWN0ZXJzCisgICAgICAgICAgICBTdHJpbmcgcHJldlNlZWsgPSBudWxsOworICAgICAgICAgICAgcHJldlJ1bGUgPSBudWxsOworICAgICAgICAgICAgZm9yIChpbnQgbmR4ID0gMDsgbmR4IDwgcnVsZVNvdXJjZS5sZW5ndGg7IG5keCsrKSB7CisgICAgICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGUgcnVsZSA9IHJ1bGVTb3VyY2VbbmR4XTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZS5nZXRTaXplKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2ZpbmQgb3V0IHdoYXQgdGhpcyBjaGFyYWN0ZXIgZXhwYW5kcyB0bworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc2VlayA9IHJ1bGUuZ2V0RXhwYW5zaW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2Vlay5lcXVhbHMocHJldlNlZWspKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pZiBpdCdzIG5vdCB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGVuIHNlZWsgdG8gdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgZXhwYW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9hbmQgY29tcGFyZSB0byB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZSBzZWVrUnVsZSA9IHJ1bGUuc2Vla3NUb1J1bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldID0gbmV3IENvbGxhdGlvbkl0ZW0oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZWtSdWxlLmNvbXBhcmUocnVsZSksIHJ1bGUuZ2V0U3ltYm9sKCksIHJ1bGUuZ2V0RXhwYW5zaW9uKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJldlNlZWsgPSBzZWVrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXZSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2l0IGV4cGFuZHMgdG8gdGhlIHNhbWUgY2hhcmFjdGVycyBhcyB0aGUgcHJldmlvdXMgZXhwYW5zaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc28gY29tcGFyZSB0byB0aGUgcHJldmlvdXMgZXhwYW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXSA9IG5ldyBDb2xsYXRpb25JdGVtKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2UnVsZS5jb21wYXJlKHJ1bGUpLCBydWxlLmdldFN5bWJvbCgpLCBwcmV2UnVsZS5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9UaGUgdW5saWtlbHkgY2FzZSB0aGF0IHRoZSBmaXJzdCBjaGFyYWN0ZXIgd2lsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYmUgYW4gZXhwYW5kaW5nIGNoYXJhY3Rlci4uLkkgZG9uJ3QgdGhpbmsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RoaXMgaXMgZXZlbiBwb3NzaWJsZS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0gPSBuZXcgQ29sbGF0aW9uSXRlbShydWxlLmdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBydWxlc1tpKytdLnNldENvbW1lbnQocnVsZS5nZXRTb3VyY2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZXZSdWxlID0gcnVsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzb3J0T3JkZXIubGVuZ3RoPjAgJiYgImJhY2t3YXJkIi5lcXVhbHMoc29ydE9yZGVyWzBdKSkgeworICAgICAgICAgICAgICAgIGVsZW1lbnRzWzFdWzFdID0gInRydWUiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50c1sxXVsxXSA9ICJmYWxzZSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbGVtZW50c1syXVsxXT0oT2JqZWN0KXJ1bGVzOworICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgImNvbGxhdGlvbnMiLCBlbGVtZW50cyk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgdm9pZCByZXN1bHRQdXQoSGFzaHRhYmxlIHJlc3VsdFRhYmxlLCBTdHJpbmcgdGFnLCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybjsKKyAgICAgICAgcmVzdWx0VGFibGUucHV0KHRhZywgdmFsdWUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIE9iamVjdCBnZXREZWZhdWx0KFN0cmluZyBkZXNpcmVkUmVzb3VyY2UpIHsKKyAgICAgICAgcmV0dXJuIGdldFBhcmVudEJ1bmRsZSgpLmdldE9iamVjdChkZXNpcmVkUmVzb3VyY2UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIGdldFBhcmVudEJ1bmRsZSgpIHsKKyAgICAgICAgcmV0dXJuIFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyLm15TG9jYWxlRWxlbWVudHMiLCBwYXJlbnRMb2NhbGUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIFN0cmluZyByZXBsYWNlbWVudCkgeworICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhyZXBsYWNlbWVudCkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IGxhc3ROZHggPSAwOworICAgICAgICAgICAgaW50IG5keCA9IHNvdXJjZS5pbmRleE9mKHRhcmdldCk7CisgICAgICAgICAgICB3aGlsZSAobmR4ID49IDApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcobGFzdE5keCwgbmR4KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICAgICAgbmR4ICs9IHRhcmdldC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBsYXN0TmR4ID0gbmR4OworICAgICAgICAgICAgICAgIG5keCA9IHNvdXJjZS5pbmRleE9mKHRhcmdldCwgbmR4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlLnN1YnN0cmluZyhsYXN0TmR4KSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisvL3t7REVDTEFSRV9DT05UUk9MUworLy99fQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUXVvdGVUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1F1b3RlVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwZjg3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1F1b3RlVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIFF1b3RlVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1b3RlVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgUXVvdGVUcmFuc2l0aW9uKFNVQ0NFU1MpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIFNUUklOR19DSEFSID0gJyInOworICAgIAorICAgIHB1YmxpYyBRdW90ZVRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIFNUUklOR19DSEFSID09IChjaGFyKWM7CisgICAgfQorICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCkgeworICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0geworICAgICAgICB7IC8vc3RhdGUgMDogCisgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKFNUUklOR19DSEFSLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJpbGxlZ2FsIGNoYXJhY3RlciBpbiBxdW90ZWQgc3RyaW5nIikKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKFNUUklOR19DSEFSLCBMZXguSUdOT1JFX0NPTlNVTUUsIFNVQ0NFU1MpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0yKSwKKyAgICAgICAgICAgIG5ldyBFc2NhcGVUcmFuc2l0aW9uKC0xKSwKKyAgICAgICAgICAgIG5ldyBTeW1ib2xUcmFuc2l0aW9uKC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigtMiksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMjogZmFpbHVyZSBmcm9tIGVvZgorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVudGVybWluYXRlZCBzdHJpbmciKQorICAgICAgICB9CisgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7eyAKKyAgICAgICAgICAgICAgICBuZXcgUXVvdGVUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJiYWQgdGVzdCBpbnB1dCIpCisgICAgICAgICAgICB9fTsKKyAgICAgICAgICAgIEVzY2FwZVRyYW5zaXRpb24uc2V0RXNjYXBlQ2hhcignLycpOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiXCJoZWxsbzxcIi8+Pi9kMzJ3b3JsZFwiXCI8b25lPi9cbjx0d28+XCIiOworICAgICAgICAgICAgU3RyaW5nUmVhZGVyIHNyID0gbmV3IFN0cmluZ1JlYWRlcih0ZXh0KTsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHByID0gbmV3IFB1c2hiYWNrUmVhZGVyKHNyKTsKKyAgICAgICAgICAgIExleCBwYXJzZXIgPSBuZXcgTGV4KHN0YXRlcywgcHIpOworICAgICAgICAgICAgLy9wYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgICAgICAgICBpbnQgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IFNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFyc2VyLmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUmFuZ2VUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1JhbmdlVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI3MGEwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1JhbmdlVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworCitwdWJsaWMgY2xhc3MgUmFuZ2VUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUmFuZ2VUcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBSYW5nZVRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkFOR0VfQ0hBUlMgPSAiLi4uIjsKKyAgICBwdWJsaWMgUmFuZ2VUcmFuc2l0aW9uKGludCBzdWNjZXNzKXsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpeworICAgICAgICByZXR1cm4gUkFOR0VfQ0hBUlMuaW5kZXhPZigoY2hhciljKSA+PTA7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW11nZXRTdGF0ZXMoKXsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcz0geworCisgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihSQU5HRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBzcGFjZSBjaGFyYWN0ZXIiKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihSQU5HRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgU1VDQ0VTUykKKyAgICAgICAgfSwKKyAgICB9OworfQorICAgICAgICAgICAgCisgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Tb3J0ZWRWZWN0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU29ydGVkVmVjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzkyYjUxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU29ydGVkVmVjdG9yLmphdmEKQEAgLTAsMCArMSwzNTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworLyoqCisgICAgSW1wbGVtZW50cyBhIHNvcnRlZCB2ZWN0b3IuIFlvdSBjYW4gYWRkIGFueXRoaW5nIHRvIGl0OyB3aGVuIHlvdSBhY2Nlc3MgYW55IGVsZW1lbnQsIGl0IHNvcnRzCisgICAgdGhlIGFycmF5IGludGVybmFsbHkgd2hlbiBuZWNlc3NhcnkuCisgICAgPHA+QSBDb21wYXJhdG9yIGlzIHVzZWQgdG8gY29tcGFyZSB0aGUgZWxlbWVudHMsIGFsbG93aW5nIGFyYml0cmFyeSBvcmRlcmluZ3MuCisgICAgSWYgbm8gQ29tcGFyYXRvciBpcyBzdXBwbGllZCwgdGhlbiBvbmUgaXMgY29uc3RydWN0ZWQgYmFzZWQgb24gdGhlIHR5cGUKKyAgICBvZiB0aGUgZmlyc3QgZWxlbWVudCBhZGRlZC4gT25seSBOdW1iZXJzIGFuZCBDb21wYXJhYmxlcyBhcmUgaGFuZGxlZC4KKyAgICA8cD5EdXBsaWNhdGVzIGFyZSBhbGxvd2VkLgorKi8KK2ZpbmFsIHB1YmxpYyBjbGFzcyBTb3J0ZWRWZWN0b3IgeworICAgIC8qKgorICAgICAgICBDb3BpZXMgZWxlbWVudHMgb2YgdmVjdG9yLCBlbnVtZXJhdGlvbiBvciBhcnJheQorICAgICAgICBOb3RlOiB0aGUgb2JqZWN0cyBpbiB0aGUgc291cmNlIGFyZSBOT1QgY2xvbmVkLgorICAgICAgICBEbyBub3QgY2hhbmdlIHRoZW0gb3IgdGhlIHNvcnRpbmcgd2lsbCBiZSBpbnZhbGlkLgorICAgICovCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihPYmplY3RbXSBuZXdWYWx1ZXMsIENvbXBhcmF0b3IgY29tcGFyYXRvcikgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKy8vfX0KK30KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoVmVjdG9yIG5ld1ZhbHVlcywgQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihFbnVtZXJhdGlvbiBuZXdWYWx1ZXMsIENvbXBhcmF0b3IgY29tcGFyYXRvcikgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoT2JqZWN0W10gbmV3VmFsdWVzKSB7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9yID0gY29tcGFyYXRvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKFZlY3RvciBuZXdWYWx1ZXMpIHsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKEVudW1lcmF0aW9uIG5ld1ZhbHVlcykgeworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEFkZHMgb25lIGVsZW1lbnQuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRFbGVtZW50KE9iamVjdCBlbGVtZW50KSB7CisgICAgICAgIGlmIChjb3VudCA+PSBkYXRhQXJyYXkubGVuZ3RoKSBzZXRDYXBhY2l0eShjb3VudCoyICsgMTcpOworICAgICAgICBkYXRhQXJyYXlbY291bnQrK10gPSBlbGVtZW50OworICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEFkZHMgbXVsdGlwbGUgZWxlbWVudHMuIEZhc3RlciB0aGFuIGFkZGluZyBvbmUgYXQgYSB0aW1lLgorICAgICovCisgICAgcHVibGljIHZvaWQgYWRkRWxlbWVudHMoT2JqZWN0W10gbmV3VmFsdWVzKSB7CisgICAgICAgIGludCBuZXdDb3VudCA9IGNvdW50ICsgbmV3VmFsdWVzLmxlbmd0aDsKKyAgICAgICAgaWYgKG5ld0NvdW50ID4gZGF0YUFycmF5Lmxlbmd0aCkgc2V0Q2FwYWNpdHkobmV3Q291bnQpOworICAgICAgICBmb3IgKGludCBpID0gY291bnQ7IGkgPCBuZXdDb3VudDsgKytpKQorICAgICAgICAgICAgZGF0YUFycmF5W2ldID0gbmV3VmFsdWVzW2ktY291bnRdOworICAgICAgICBjb3VudCA9IG5ld0NvdW50OworICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRWxlbWVudHMoVmVjdG9yIG5ld1ZhbHVlcykgeworICAgICAgICBpbnQgbmV3Q291bnQgPSBjb3VudCArIG5ld1ZhbHVlcy5zaXplKCk7CisgICAgICAgIGlmIChuZXdDb3VudCA+IGRhdGFBcnJheS5sZW5ndGgpIHNldENhcGFjaXR5KG5ld0NvdW50KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IGNvdW50OyBpIDwgbmV3Q291bnQ7ICsraSkKKyAgICAgICAgICAgIGRhdGFBcnJheVtpXSA9IG5ld1ZhbHVlcy5lbGVtZW50QXQoaS1jb3VudCk7CisgICAgICAgIGNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRFbGVtZW50cyhFbnVtZXJhdGlvbiBuZXdWYWx1ZXMpIHsKKyAgICAgICAgd2hpbGUgKG5ld1ZhbHVlcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgYWRkRWxlbWVudChuZXdWYWx1ZXMubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgUmVtb3ZlcyBlbGVtZW50cyBhdCBpbmRpY2VzID49IHN0YXJ0SW5kZXggYW5kIDwgZW5kSW5kZXgKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUVsZW1lbnRzKGludCBzdGFydEluZGV4LCBpbnQgZW5kSW5kZXgpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGFBcnJheSxlbmRJbmRleCxkYXRhQXJyYXksc3RhcnRJbmRleCxjb3VudCAtIGVuZEluZGV4KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IGNvdW50IC0gKGVuZEluZGV4IC0gc3RhcnRJbmRleCk7IGkgPCBjb3VudDsrK2kpCisgICAgICAgICAgICBkYXRhQXJyYXlbaV0gPSBudWxsOyAgIC8vIGZyZWUgdXAgc3RvcmFnZQorICAgICAgICBjb3VudCAtPSAoZW5kSW5kZXggLSBzdGFydEluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgU2V0cyBjb21wYXJhdG9yCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb21wYXJhdG9yKENvbXBhcmF0b3IgY29tcGFyYXRvcikgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIENvbXBhcmF0b3IgZ2V0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgaWYgKGNvbXBhcmF0b3IgPT0gbnVsbCkgdmFsaWRhdGVDb21wYXJhdG9yKCk7CisgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEdldHMgc2l6ZSwgdGhlIGFjdHVhbCBudW1iZXIgb2YgZWxlbWVudHMuCisgICAgKi8KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgR2V0cyBjYXBhY2l0eSwgdGhlIG51bWJlciBvZiBlbGVtZW50cyB5b3UgY2FuIGhhdmUgd2l0aG91dCBncm93aW5nIHRoZSBhcnJheS4KKyAgICAqLworICAgIHB1YmxpYyBpbnQgY2FwYWNpdHkoKSB7CisgICAgICAgIHJldHVybiBkYXRhQXJyYXkubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAgICBTZXRzIGNhcGFjaXR5LCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHlvdSBjYW4gaGF2ZSB3aXRob3V0IGdyb3dpbmcgdGhlIGFycmF5LgorICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FwYWNpdHkoaW50IG5ld1NpemUpIHsKKyAgICAgICAgT2JqZWN0W10gdGVtcCA9IG5ldyBPYmplY3RbbmV3U2l6ZV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGF0YUFycmF5LCAwLCB0ZW1wLCAwLCBNYXRoLm1pbihjb3VudCxuZXdTaXplKSk7CisgICAgICAgIGRhdGFBcnJheSA9IHRlbXA7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIFRyaW1zIHRoZSBhcnJheS4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHRyaW1Ub1NpemUoKSB7CisgICAgICAgIHNldENhcGFjaXR5KGNvdW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgR2V0cyB0aGUgZWxlbWVudCBhdCB0aGUgaW5kZXgKKyAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZWxlbWVudEF0IChpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICBpZiAoaW5kZXggPj0gY291bnQpIHJldHVybiBkYXRhQXJyYXlbZGF0YUFycmF5Lmxlbmd0aF07CisgICAgICAgIHJldHVybiBkYXRhQXJyYXlbaW5kZXhdOworICAgIH0KKworICAgIC8qKgorICAgICAgICBTZWVzIHdoZXRoZXIgdGhlIHZlY3RvciBjb250YWlucyB0aGUgb2JqZWN0CisgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyAoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGludCBpbmRleCA9IGluZGV4T2YodmFsdWUpOworICAgICAgICByZXR1cm4gKGluZGV4ID49IDAgJiYgY29tcGFyYXRvci5jb21wYXJlKHZhbHVlLGRhdGFBcnJheVtpbmRleF0pID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAgICBHZXRzIGFuIGVudW1lcmF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZWxlbWVudHMoKSB7CisgICAgICAgIGlmICghaXNWYWxpZCkgdmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBBcnJheUVudW1lcmF0aW9uKGRhdGFBcnJheSwwLGNvdW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb3B5SW50byhPYmplY3RbXSB0b0ZpbGwpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGFBcnJheSwwLHRvRmlsbCwwLHRvRmlsbC5sZW5ndGgpOworICAgIH0KKworICAgIC8qKgorICAgICAgICBGaW5kcyBmaXJzdCBpbmRleCB3aG9zZSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc2VhcmNoVmFsdWUKKyAgICAgICAgSWYgdGhlcmUgYXJlIG5vbmUsIHJldHVybnMgLTEKKyAgICAqLworICAgIHB1YmxpYyBpbnQgaW5kZXhPZihPYmplY3Qgc2VhcmNoVmFsdWUpCisgICAgeworICAgICAgICBpZiAoIWlzVmFsaWQpIHZhbGlkYXRlKCk7CisgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXg7CisgICAgICAgIGlmICgwIDw9IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2F1eFN0YXJ0XSkpIHsKKyAgICAgICAgICAgIGluZGV4ICs9IGF1eFN0YXJ0OworICAgICAgICB9CisgICAgICAgIC8vIHZlcnkgZmFzdCwgY29tcGxldGVseSB1bnJvbGxlZCBiaW5hcnkgc2VhcmNoCisgICAgICAgIC8vIGVhY2ggY2FzZSBkZWxpYmVyYXRlbHkgZmFsbHMgdGhyb3VnaCB0byB0aGUgbmV4dAorICAgICAgICBzd2l0Y2ggKHBvd2VyKSB7CisgICAgICAgIGNhc2UgMzE6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwMDAwMF0pKSBpbmRleCAtPSAweDQwMDAwMDAwOworICAgICAgICBjYXNlIDMwOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwMDAwMDBdKSkgaW5kZXggLT0gMHgyMDAwMDAwMDsKKyAgICAgICAgY2FzZSAyOTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDAwMDAwXSkpIGluZGV4IC09IDB4MTAwMDAwMDA7CisKKyAgICAgICAgY2FzZSAyODogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMDAwMDBdKSkgaW5kZXggLT0gMHg4MDAwMDAwOworICAgICAgICBjYXNlIDI3OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwMDAwMF0pKSBpbmRleCAtPSAweDQwMDAwMDA7CisgICAgICAgIGNhc2UgMjY6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwMDAwXSkpIGluZGV4IC09IDB4MjAwMDAwMDsKKyAgICAgICAgY2FzZSAyNTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDAwMDBdKSkgaW5kZXggLT0gMHgxMDAwMDAwOworCisgICAgICAgIGNhc2UgMjQ6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MDAwMDBdKSkgaW5kZXggLT0gMHg4MDAwMDA7CisgICAgICAgIGNhc2UgMjM6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwMDBdKSkgaW5kZXggLT0gMHg0MDAwMDA7CisgICAgICAgIGNhc2UgMjI6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwMDBdKSkgaW5kZXggLT0gMHgyMDAwMDA7CisgICAgICAgIGNhc2UgMjE6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDAwMDBdKSkgaW5kZXggLT0gMHgxMDAwMDA7CisKKyAgICAgICAgY2FzZSAyMDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMDAwXSkpIGluZGV4IC09IDB4ODAwMDA7CisgICAgICAgIGNhc2UgMTk6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwMF0pKSBpbmRleCAtPSAweDQwMDAwOworICAgICAgICBjYXNlIDE4OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwMDBdKSkgaW5kZXggLT0gMHgyMDAwMDsKKyAgICAgICAgY2FzZSAxNzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDAwXSkpIGluZGV4IC09IDB4MTAwMDA7CisKKyAgICAgICAgY2FzZSAxNjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMDBdKSkgaW5kZXggLT0gMHg4MDAwOworICAgICAgICBjYXNlIDE1OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwMF0pKSBpbmRleCAtPSAweDQwMDA7CisgICAgICAgIGNhc2UgMTQ6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwXSkpIGluZGV4IC09IDB4MjAwMDsKKyAgICAgICAgY2FzZSAxMzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDBdKSkgaW5kZXggLT0gMHgxMDAwOworCisgICAgICAgIGNhc2UgMTI6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MDBdKSkgaW5kZXggLT0gMHg4MDA7CisgICAgICAgIGNhc2UgMTE6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDBdKSkgaW5kZXggLT0gMHg0MDA7CisgICAgICAgIGNhc2UgMTA6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDBdKSkgaW5kZXggLT0gMHgyMDA7CisgICAgICAgIGNhc2UgIDk6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDBdKSkgaW5kZXggLT0gMHgxMDA7CisKKyAgICAgICAgY2FzZSAgODogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwXSkpIGluZGV4IC09IDB4ODA7CisgICAgICAgIGNhc2UgIDc6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MF0pKSBpbmRleCAtPSAweDQwOworICAgICAgICBjYXNlICA2OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjBdKSkgaW5kZXggLT0gMHgyMDsKKyAgICAgICAgY2FzZSAgNTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwXSkpIGluZGV4IC09IDB4MTA7CisKKyAgICAgICAgY2FzZSAgNDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDhdKSkgaW5kZXggLT0gODsKKyAgICAgICAgY2FzZSAgMzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDRdKSkgaW5kZXggLT0gNDsKKyAgICAgICAgY2FzZSAgMjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDJdKSkgaW5kZXggLT0gMjsKKyAgICAgICAgY2FzZSAgMTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDFdKSkgaW5kZXggLT0gMTsKKworICAgICAgICBjYXNlICAwOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4XSkpIGluZGV4IC09IDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09IHByaXZhdGVzID09PT09PT09PT09PT09PT09PQorICAgIC8qKiBPbmx5IGNhbGwgaWYgY29tcGFyYXRvciBpcyBudWxsCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdmFsaWRhdGVDb21wYXJhdG9yKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0IHRyaWFsID0gZGF0YUFycmF5WzBdOworICAgICAgICAgICAgaWYgKHRyaWFsIGluc3RhbmNlb2YgRmxvYXQgfHwgdHJpYWwgaW5zdGFuY2VvZiBEb3VibGUpIHsKKyAgICAgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IERvdWJsZUNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJpYWwgaW5zdGFuY2VvZiBJbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBJbnRlZ2VyQ29tcGFyYXRvcigpOworICAgICAgICAgICAgfSBlbHNlIGlmICh0cmlhbCBpbnN0YW5jZW9mIE51bWJlcikgeworICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgTG9uZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJpYWwgaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IFN0cmluZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBDb21wYXJhYmxlQ29tcGFyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30gLy8gbGVhdmUgbnVsbAorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZSgpIHsKKyAgICAgICAgaWYgKGlzVmFsaWQpIHJldHVybjsKKyAgICAgICAgLy8gaWYgdGhlIENvbXBhcmF0b3IgaXMgbnVsbCwgdGhlbiBwaWNrIGEgcmVhc29uYWJsZSBvbmUKKyAgICAgICAgaWYgKGNvbXBhcmF0b3IgPT0gbnVsbCkgdmFsaWRhdGVDb21wYXJhdG9yKCk7CisKKyAgICAgICAgLy8gZGV0ZXJtaW5lIHNlYXJjaCBwYXJhbWV0ZXJzCisKKyAgICAgICAgLy8gZmluZCBsZWFzdCBwb3dlciBvZiAyIGdyZWF0ZXIgdGhhbiBjb3VudAorICAgICAgICBmb3IgKHBvd2VyID0gZXhwMi5sZW5ndGgtMTsgcG93ZXIgPiAwICYmIGNvdW50IDwgZXhwMltwb3dlcl07IHBvd2VyLS0pIHt9CisKKyAgICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBzdGFydGluZyBwb2ludAorICAgICAgICBpZiAoZXhwMltwb3dlcl0gIT0gY291bnQpIHsKKyAgICAgICAgICAgIGF1eFN0YXJ0ID0gY291bnQgLSBleHAyW3Bvd2VyXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF1eFN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBzdGFydEluZGV4ID0gZXhwMltwb3dlcl0tMTsKKworICAgICAgICAvLyBzaGVsbCBzb3J0LiBMYXRlciwgbWFrZSB0aGlzIGEgUXVpY2tTb3J0CisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCB1cCA9IGNvdW50LTE7CisgICAgICAgIGZvciAoaW50IHN0ZXAgPSB1cCAtIGxvICsgMTsgc3RlcCA+IDE7KSB7CisgICAgICAgICAgICBpZiAoc3RlcCA8IDUpCisgICAgICAgICAgICAgICAgc3RlcCA9IDE7CisgICAgICAgICAgICBlbHNlIHN0ZXAgPSAoNSAqIHN0ZXAgLSAxKSAvIDExOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHVwIC0gc3RlcDsgaSA+PSBsbzsgLS1pKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IHRlbXAgPSBkYXRhQXJyYXlbaV07CisgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgZm9yIChqID0gaSArIHN0ZXA7IGogPD0gdXAgJiYgMCA+IGNvbXBhcmF0b3IuY29tcGFyZShkYXRhQXJyYXlbal0sdGVtcCk7IGogKz0gc3RlcCkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUFycmF5W2otc3RlcF0gPSBkYXRhQXJyYXlbal07CisgICAgICAgICAgICAgICAgZGF0YUFycmF5W2otc3RlcF0gPSB0ZW1wOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlzVmFsaWQgPSB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgT2JqZWN0W10gZGF0YUFycmF5ID0gbmV3IE9iamVjdFsxNl07CisgICAgcHJpdmF0ZSBDb21wYXJhdG9yIGNvbXBhcmF0b3I7CisgICAgcHJpdmF0ZSBpbnQgY291bnQgPSAwOworICAgIHByaXZhdGUgYm9vbGVhbiBpc1ZhbGlkID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnQgYXV4U3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRJbmRleDsKKyAgICBwcml2YXRlIGludCBwb3dlcjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZXhwMltdID0geworICAgICAgICAweDEsIDB4MiwgMHg0LCAweDgsCisgICAgICAgIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsCisgICAgICAgIDB4MTAwLCAweDIwMCwgMHg0MDAsIDB4ODAwLAorICAgICAgICAweDEwMDAsIDB4MjAwMCwgMHg0MDAwLCAweDgwMDAsCisgICAgICAgIDB4MTAwMDAsIDB4MjAwMDAsIDB4NDAwMDAsIDB4ODAwMDAsCisgICAgICAgIDB4MTAwMDAwLCAweDIwMDAwMCwgMHg0MDAwMDAsIDB4ODAwMDAwLAorICAgICAgICAweDEwMDAwMDAsIDB4MjAwMDAwMCwgMHg0MDAwMDAwLCAweDgwMDAwMDAsCisgICAgICAgIDB4MTAwMDAwMDAsIDB4MjAwMDAwMDAsIDB4NDAwMDAwMDB9OworCisgICAgLy8gVXRpbGl0eSBDbGFzc2VzCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIExvbmdDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIGxvbmcgYWEgPSAoKE51bWJlcilhKS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgIGxvbmcgYmIgPSAoKE51bWJlciliKS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgIHJldHVybiAoYWEgPCBiYiA/IC0xIDogYWEgPiBiYiA/IDEgOiAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgSW50ZWdlckNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgcmV0dXJuICgoKE51bWJlcilhKS5pbnRWYWx1ZSgpIC0gKChOdW1iZXIpYikuaW50VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIERvdWJsZUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgZG91YmxlIGFhID0gKChOdW1iZXIpYSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGRvdWJsZSBiYiA9ICgoTnVtYmVyKWIpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICByZXR1cm4gKGFhIDwgYmIgPyAtMSA6IGFhID4gYmIgPyAxIDogMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIENvbXBhcmFibGVDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKENvbXBhcmFibGUpYSkuY29tcGFyZVRvKGIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHJpbmdDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKFN0cmluZylhKS5jb21wYXJlVG8oKFN0cmluZyliKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworLy99fQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NwYWNlVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TcGFjZVRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YmRjYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TcGFjZVRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKKworcHVibGljIGNsYXNzIFNwYWNlVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNwYWNlVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgU3BhY2VUcmFuc2l0aW9uKFNVQ0NFU1MpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNQQUNFX0NIQVJTID0gIiBcdCI7CisgICAgCisgICAgcHVibGljIFNwYWNlVHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICByZXR1cm4gU1BBQ0VfQ0hBUlMuaW5kZXhPZigoY2hhciljKSA+PSAwOworICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNQQUNFX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJpbGxlZ2FsIHNwYWNlIGNoYXJhY3RlciIpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNQQUNFX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBTVUNDRVNTKQorICAgICAgICB9LAorICAgIH07CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1N5bWJvbFRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3ltYm9sVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkYjIwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1N5bWJvbFRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDk2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBTeW1ib2xUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHByaXZhdGUgc3RhdGljIFBvc2l4Q2hhck1hcCBtYXBwaW5nID0gbmV3IFBvc2l4Q2hhck1hcCgpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3ltYm9sVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgU3ltYm9sVHJhbnNpdGlvbihTVUNDRVNTKTsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0Q2hhck1hcChQb3NpeENoYXJNYXAgbWFwcGluZ0luKSB7CisgICAgICAgIG1hcHBpbmcgPSBtYXBwaW5nSW47CisgICAgICAgIGlmIChtYXBwaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIG1hcHBpbmcgPSBuZXcgUG9zaXhDaGFyTWFwKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFBvc2l4Q2hhck1hcCBnZXRDaGFyTWFwKCkgeworICAgICAgICByZXR1cm4gbWFwcGluZzsKKyAgICB9CisKKyAgICBwdWJsaWMgU3ltYm9sVHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICByZXR1cm4gJzwnID09IChjaGFyKWM7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVN1Y2Nlc3MoTGV4IHBhcnNlciwgU3RyaW5nQnVmZmVyIG91dHB1dCkgeworICAgICAgICBTdHJpbmcgdGV4dCA9IHBhcnNlci5nZXREYXRhKCk7CisgICAgICAgIFN0cmluZyBtYXBwZWRUZXh0ID0gbWFwcGluZy5tYXBLZXkodGV4dCk7CisgICAgICAgIGlmIChtYXBwZWRUZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQobWFwcGVkVGV4dCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHRleHQpOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKGdldENsYXNzKCkpIHsKKyAgICAgICAgICAgIGlmIChzdGF0ZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0YXRlcyA9IG5ldyBMZXguVHJhbnNpdGlvbltdW10geworICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMDogCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCc8JywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImlsbGVnYWwgY2hhcmFjdGVycyBpbiBzeW1ib2wiKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJy8nLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCc+JywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgLTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKC0zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignPicsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJy8nLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBlc2NhcGUgY2hhcmFjdGVyIGluIHN5bWJvbCIpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAzOiBmYWlsdXJlCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigidW5leHBlY3RlZCBlbmQgb2YgbGluZS9maWxlIikKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlczsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0ge3sgCisgICAgICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKCksCisgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImJhZCB0ZXN0IGlucHV0IikKKyAgICAgICAgICAgIH19OworICAgICAgICAgICAgLy9TdHJpbmcgdGV4dCA9ICI8Q0FQSVRBTD48XCI8PjwvLz48ViU+PE42PjxDWVJJTExJQz4iOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiPFU+PFM+PEQ+ICI7CisgICAgICAgICAgICBTdHJpbmdSZWFkZXIgc3IgPSBuZXcgU3RyaW5nUmVhZGVyKHRleHQpOworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcHIgPSBuZXcgUHVzaGJhY2tSZWFkZXIoc3IpOworICAgICAgICAgICAgTGV4IHBhcnNlciA9IG5ldyBMZXgoc3RhdGVzLCBwcik7CisgICAgICAgICAgICAvL3BhcnNlci5kZWJ1Zyh0cnVlKTsKKyAgICAgICAgICAgIGludCBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJzZXIuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Ub2tlblRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvVG9rZW5UcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjIzMzU5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvVG9rZW5UcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCisKK3B1YmxpYyBjbGFzcyBUb2tlblRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBUb2tlblRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFRva2VuVHJhbnNpdGlvbihTVUNDRVNTKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVBBUkFUT1JfQ0hBUlMgPSAiOyIgKyBTcGFjZVRyYW5zaXRpb24uU1BBQ0VfQ0hBUlM7CisgICAgCisgICAgcHVibGljIFRva2VuVHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KK30KKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiAoYyA+IDApICYmIAorICAgICAgICAgICAgIUVPTFRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykgJiYgCisgICAgICAgICAgICAhU3BhY2VUcmFuc2l0aW9uLkdMT0JBTC5hY2NlcHRzKGMpICYmICAKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAoU0VQQVJBVE9SX0NIQVJTLmluZGV4T2YoKGNoYXIpYykgPCAwKSB8fAorICAgICAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykgfHwKKyAgICAgICAgICAgICAgICBRdW90ZVRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykgfHwKKyAgICAgICAgICAgICAgICBFc2NhcGVUcmFuc2l0aW9uLkdMT0JBTC5hY2NlcHRzKGMpCisgICAgICAgICAgICApOworICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IFF1b3RlVHJhbnNpdGlvbigtMSksIAorICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIC0yKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTRVBBUkFUT1JfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgLTMpLAorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKC00KSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IFF1b3RlVHJhbnNpdGlvbigtMSksIAorICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIFNVQ0NFU1MpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNFUEFSQVRPUl9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCBTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAyOiBmYWlsdXJlIC0gdW5leHBlY3RlZCBFT0wKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bmV4cGVjdGVkIEVPTCBpbiB0b2tlbiIpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAzOiBmYWlsdXJlCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigidW5leHBlY3RlZCBzZXBlcmF0b3IgY2hhcmFjdGVyIGluIHRva2VuIikKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDQ6IGZhaWx1cmUKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bmV4cGVjdGVkIEVPRiBpbiB0b2tlbiIpCisgICAgICAgIH0sCisgICAgfTsKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvWExJRkYySUNVQ29udmVydGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1hMSUZGMklDVUNvbnZlcnRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhODc4MTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1hMSUZGMklDVUNvbnZlcnRlci5qYXZhCkBAIC0wLDAgKzEsMTE3NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudG9vbC5VT3B0aW9uOworaW1wb3J0IG9yZy53M2MuZG9tLkRvY3VtZW50OworaW1wb3J0IG9yZy53M2MuZG9tLk5vZGU7CitpbXBvcnQgb3JnLnczYy5kb20uTmFtZWROb2RlTWFwOworaW1wb3J0IG9yZy53M2MuZG9tLk5vZGVMaXN0OworaW1wb3J0IG9yZy54bWwuc2F4LkVycm9ySGFuZGxlcjsKK2ltcG9ydCBvcmcueG1sLnNheC5JbnB1dFNvdXJjZTsKK2ltcG9ydCBvcmcueG1sLnNheC5TQVhFeGNlcHRpb247CitpbXBvcnQgb3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YXgueG1sLnBhcnNlcnMuRG9jdW1lbnRCdWlsZGVyOworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLkRvY3VtZW50QnVpbGRlckZhY3Rvcnk7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBYTElGRjJJQ1VDb252ZXJ0ZXIgeworICAgIAorICAgIC8qKgorICAgICAqIFRoZXNlIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggZ2V0T3B0aW9ucygpLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUxQMSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFTFAyID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09VUkNFRElSID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVTVERJUiA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRBUkdFVE9OTFkgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1VSQ0VPTkxZID0gNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFLRV9TT1VSQ0VfUk9PVCA9IDY7CisgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVU9wdGlvbltdIG9wdGlvbnMgPSBuZXcgVU9wdGlvbltdIHsKKyAgICAgICAgVU9wdGlvbi5IRUxQX0goKSwKKyAgICAgICAgVU9wdGlvbi5IRUxQX1FVRVNUSU9OX01BUksoKSwKKyAgICAgICAgVU9wdGlvbi5TT1VSQ0VESVIoKSwKKyAgICAgICAgVU9wdGlvbi5ERVNURElSKCksCisgICAgICAgIFVPcHRpb24uY3JlYXRlKCJ0YXJnZXQtb25seSIsICd0JywgVU9wdGlvbi5PUFRJT05BTF9BUkcpLAorICAgICAgICBVT3B0aW9uLmNyZWF0ZSgic291cmNlLW9ubHkiLCAnYycsIFVPcHRpb24uT1BUSU9OQUxfQVJHKSwKKyAgICAgICAgVU9wdGlvbi5jcmVhdGUoIm1ha2Utc291cmNlLXJvb3QiLCAncicsIFVPcHRpb24uTk9fQVJHKQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJPT1QgICAgICAgICAgICA9ICJyb290IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVTVFlQRSAgICAgICAgID0gInJlc3R5cGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSRVNOQU1FICAgICAgICAgPSAicmVzbmFtZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFlFUyAgICAgICAgICAgICA9ICJ5ZXMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOTyAgICAgICAgICAgICAgPSAibm8iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUUkFOU0xBVEUgICAgICAgPSAidHJhbnNsYXRlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQk9EWSAgICAgICAgICAgID0gImJvZHkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBHUk9VUFMgICAgICAgICAgPSAiZ3JvdXAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFUyAgICAgICAgICAgPSAiZmlsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRSQU5TVU5JVCAgICAgICA9ICJ0cmFucy11bml0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQklOVU5JVCAgICAgICAgID0gImJpbi11bml0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQklOU09VUkNFICAgICAgID0gImJpbi1zb3VyY2UiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUUyAgICAgICAgICAgICAgPSAidHMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBPUklHSU5BTCAgICAgICAgPSAib3JpZ2luYWwiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTT1VSQ0VMQU5HVUFHRSAgPSAic291cmNlLWxhbmd1YWdlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFSR0VUTEFOR1VBR0UgID0gInRhcmdldC1sYW5ndWFnZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBUkdFVCAgICAgICAgICA9ICJ0YXJnZXQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTT1VSQ0UgICAgICAgICAgPSAic291cmNlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9URSAgICAgICAgICAgID0gIm5vdGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBYTUxMQU5HICAgICAgICAgPSAieG1sOmxhbmciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFICAgICAgICAgICAgPSAiZmlsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOVFZFQ1RPUiAgICAgICA9ICJpbnR2ZWN0b3IiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBUlJBWVMgICAgICAgICAgPSAiYXJyYXkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTVFJJTkdTICAgICAgICAgPSAic3RyaW5nIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQklOICAgICAgICAgICAgID0gImJpbiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOVFMgICAgICAgICAgICA9ICJpbnQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUJMRSAgICAgICAgICAgPSAidGFibGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTVBPUlQgICAgICAgICAgPSAiaW1wb3J0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSFJFRiAgICAgICAgICAgID0gImhyZWYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBFWFRFUk5BTEZJTEUgICAgPSAiZXh0ZXJuYWwtZmlsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOVEVSTkFMRklMRSAgICA9ICJpbnRlcm5hbC1maWxlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUxUVFJBTlMgICAgICAgID0gImFsdC10cmFucyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENSQyAgICAgICAgICAgICA9ICJjcmMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBTElBUyAgICAgICAgICAgPSAiYWxpYXMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBMSU5FU0VQICAgICAgICAgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImxpbmUuc2VwYXJhdG9yIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJPTSAgICAgICAgICAgICA9ICJcdUZFRkYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDSEFSU0VUICAgICAgICAgPSAiVVRGLTgiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVOQlJBQ0UgICAgICAgPSAieyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENMT1NFQlJBQ0UgICAgICA9ICJ9IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09MT04gICAgICAgICAgID0gIjoiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01NQSAgICAgICAgICAgPSAiLCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFFVT1RFICAgICAgICAgICA9ICJcIiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTU1FTlRTVEFSVCAgICA9ICIvKioiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01NRU5URU5EICAgICAgPSAiICovIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHICAgICAgICAgICAgID0gIiAqIEAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01NRU5UTUlERExFICAgPSAiICogIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BBQ0UgICAgICAgICAgID0gIiAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTkRFTlQgICAgICAgICAgPSAiICAgICI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVNUFRZICAgICAgICAgICA9ICIiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJRCAgICAgICAgICAgICAgPSAiaWQiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgWExJRkYySUNVQ29udmVydGVyIGNudiA9IG5ldyBYTElGRjJJQ1VDb252ZXJ0ZXIoKTsKKyAgICAgICAgY252LnByb2Nlc3NBcmdzKGFyZ3MpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyAgICBzb3VyY2VEaXIgICAgICA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmcgICAgZmlsZU5hbWUgICAgICAgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nICAgIGRlc3REaXIgICAgICAgID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gICB0YXJnZXRPbmx5ICAgICA9IGZhbHNlOworICAgIHByaXZhdGUgU3RyaW5nICAgIHRhcmdldEZpbGVOYW1lID0gbnVsbDsgCisgICAgcHJpdmF0ZSBib29sZWFuICAgbWFrZVNvdXJjZVJvb3QgPSBmYWxzZTsKKyAgICBwcml2YXRlIFN0cmluZyAgICBzb3VyY2VGaWxlTmFtZSA9IG51bGw7CisgICAgcHJpdmF0ZSBib29sZWFuICAgc291cmNlT25seSAgICAgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc0FyZ3MoU3RyaW5nW10gYXJncykgeworICAgICAgICBpbnQgcmVtYWluaW5nQXJnYyA9IDA7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHJlbWFpbmluZ0FyZ2MgPSBVT3B0aW9uLnBhcnNlQXJncyhhcmdzLCBvcHRpb25zKTsKKyAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiAiKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgfQorICAgICAgICBpZihhcmdzLmxlbmd0aD09MCB8fCBvcHRpb25zW0hFTFAxXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1tIRUxQMl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIGlmKHJlbWFpbmluZ0FyZ2M9PTApeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogRWl0aGVyIHRoZSBmaWxlIG5hbWUgdG8gYmUgcHJvY2Vzc2VkIGlzIG5vdCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZWQgb3IgdGhlIGl0IGlzIHNwZWNpZmllZCBhZnRlciB0aGUgLXQvLWMgXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcHRpb24gd2hpY2ggaGFzIGFuIG9wdGlvbmFsIGFyZ3VtZW50LiBUcnkgcmVhcnJhbmdpbmcgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIG9wdGlvbnMuIik7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIGlmKG9wdGlvbnNbU09VUkNFRElSXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIHNvdXJjZURpciA9IG9wdGlvbnNbU09VUkNFRElSXS52YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBpZihvcHRpb25zW0RFU1RESVJdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgZGVzdERpciA9IG9wdGlvbnNbREVTVERJUl0udmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgaWYob3B0aW9uc1tUQVJHRVRPTkxZXS5kb2VzT2NjdXIpeworICAgICAgICAgICAgdGFyZ2V0T25seSA9IHRydWU7CisgICAgICAgICAgICB0YXJnZXRGaWxlTmFtZSA9IG9wdGlvbnNbVEFSR0VUT05MWV0udmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgaWYob3B0aW9uc1tTT1VSQ0VPTkxZXS5kb2VzT2NjdXIpeworICAgICAgICAgICAgc291cmNlT25seSA9IHRydWU7CisgICAgICAgICAgICBzb3VyY2VGaWxlTmFtZSA9IG9wdGlvbnNbU09VUkNFT05MWV0udmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKG9wdGlvbnNbTUFLRV9TT1VSQ0VfUk9PVF0uZG9lc09jY3VyKXsKKyAgICAgICAgICAgIG1ha2VTb3VyY2VSb290ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZihkZXN0RGlyPT1udWxsKXsKKyAgICAgICAgICAgIGRlc3REaXIgPSAiLiI7CisgICAgICAgIH0KKyAgICAgICAgaWYoc291cmNlT25seSA9PSB0cnVlICYmIHRhcmdldE9ubHkgPT0gdHJ1ZSl7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIi0tc291cmNlLW9ubHkgYW5kIC0tdGFyZ2V0LW9ubHkgYXJlIHNwZWNpZmllZC4gUGxlYXNlIGNoZWNrIHRoZSBhcmd1bWVudHMgYW5kIHRyeSBhZ2Fpbi4iKTsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVtYWluaW5nQXJnYzsgaSsrKSB7CisgICAgICAgICAgICBpbnQgbGFzdEluZGV4ID0gYXJnc1tpXS5sYXN0SW5kZXhPZihGaWxlLnNlcGFyYXRvciwgYXJnc1tpXS5sZW5ndGgoKSkgKyAxOyAvKiBhZGQgMSB0byBza2lwIHBhc3QgdGhlIHNlcGFyYXRvciAqLworICAgICAgICAgICAgZmlsZU5hbWUgPSBhcmdzW2ldLnN1YnN0cmluZyhsYXN0SW5kZXgsIGFyZ3NbaV0ubGVuZ3RoKCkpOworICAgICAgICAgICAgU3RyaW5nIHhtbGZpbGVOYW1lID0gZ2V0RnVsbFBhdGgoZmFsc2UsYXJnc1tpXSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlByb2Nlc3NpbmcgZmlsZTogIit4bWxmaWxlTmFtZSk7CisgICAgICAgICAgICBjcmVhdGVSQih4bWxmaWxlTmFtZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHVzYWdlKCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVXNhZ2U6IFhMSUZGMklDVUNvbnZlcnRlciBbT1BUSU9OU10gW0ZJTEVTXVxuXG4iKworICAgICAgICAgICAgIlRoaXMgcHJvZ3JhbSBpcyB1c2VkIHRvIGNvbnZlcnQgWExJRkYgZmlsZXMgdG8gSUNVIFJlc291cmNlQnVuZGxlIFRYVCBmaWxlcy5cbiIrCisgICAgICAgICAgICAiUGxlYXNlIHJlZmVyIHRvIHRoZSBmb2xsb3dpbmcgb3B0aW9ucy4gT3B0aW9ucyBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZlLlxuIisKKyAgICAgICAgICAgICJPcHRpb25zOlxuIisKKyAgICAgICAgICAgICItcyBvciAtLXNvdXJjZWRpciAgICAgICAgICBzb3VyY2UgZGlyZWN0b3J5IGZvciBmaWxlcyBmb2xsb3dlZCBieSBwYXRoLCBkZWZhdWx0IGlzIGN1cnJlbnQgZGlyZWN0b3J5LlxuIiArCisgICAgICAgICAgICAiLWQgb3IgLS1kZXN0ZGlyICAgICAgICAgICAgZGVzdGluYXRpb24gZGlyZWN0b3J5LCBmb2xsb3dlZCBieSB0aGUgcGF0aCwgZGVmYXVsdCBpcyBjdXJyZW50IGRpcmVjdG9yeS5cbiIgKworICAgICAgICAgICAgIi1oIG9yIC0/IG9yIC0taGVscCAgICAgICAgIHRoaXMgdXNhZ2UgdGV4dC5cbiIrCisgICAgICAgICAgICAiLXQgb3IgLS10YXJnZXQtb25seSAgICAgICAgb25seSBnZW5lcmF0ZSB0aGUgdGFyZ2V0IGxhbmd1YWdlIHR4dCBmaWxlLCBmb2xsb3dlZCBieSBvcHRpb25hbCBvdXRwdXQgZmlsZSBuYW1lLlxuIiArCisgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fubm90IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAtLXNvdXJjZS1vbmx5LlxuIisKKyAgICAgICAgICAgICItYyBvciAtLXNvdXJjZS1vbmx5ICAgICAgICBvbmx5IGdlbmVyYXRlIHRoZSBzb3VyY2UgbGFuZ3VhZ2UgYnVuZGxlIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIG91dHB1dCBmaWxlIG5hbWUuXG4iKworICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbm5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggLS10YXJnZXQtb25seS5cbiIrCisgICAgICAgICAgICAiLXIgb3IgLS1tYWtlLXNvdXJjZS1yb290ICAgcHJvZHVjZSByb290IGJ1bmRsZSBmcm9tIHNvdXJjZSBlbGVtZW50cy5cbiIgKworICAgICAgICAgICAgImV4YW1wbGU6IGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlci5YTElGRjJJQ1VDb252ZXJ0ZXIgLXQgPG9wdGlvbmFsIGFyZ3VtZW50PiAtcyB4eHggLWQgeXl5IG15UmVzb3VyY2VzLnhsZiIpOworICAgICAgICBTeXN0ZW0uZXhpdCgtMSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGdldEZ1bGxQYXRoKGJvb2xlYW4gZmlsZVR5cGUsIFN0cmluZyBmTmFtZSl7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIGludCBsYXN0SW5kZXgxID0gZk5hbWUubGFzdEluZGV4T2YoRmlsZS5zZXBhcmF0b3IsIGZOYW1lLmxlbmd0aCgpKSArIDE7IC8qYWRkIDEgdG8gc2tpcCBwYXN0IHRoZSBzZXBhcmF0b3IqLworICAgICAgICBpbnQgbGFzdEluZGV4MiA9IGZOYW1lLmxhc3RJbmRleE9mKCcuJywgZk5hbWUubGVuZ3RoKCkpOworICAgICAgICBpZiAoZmlsZVR5cGUgPT0gdHJ1ZSkgeworICAgICAgICAgICAgaWYobGFzdEluZGV4MiA9PSAtMSl7CisgICAgICAgICAgICAgICAgZk5hbWUgPSBmTmFtZS50cmltKCkgKyAiLnR4dCI7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBpZighZk5hbWUuc3Vic3RyaW5nKGxhc3RJbmRleDIpLmVxdWFsc0lnbm9yZUNhc2UoIi50eHQiKSl7CisgICAgICAgICAgICAgICAgICAgIGZOYW1lID0gIGZOYW1lLnN1YnN0cmluZyhsYXN0SW5kZXgxLGxhc3RJbmRleDIpICsgIi50eHQiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkZXN0RGlyICE9IG51bGwgJiYgZk5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0ciA9IGRlc3REaXIgKyBGaWxlLnNlcGFyYXRvciArIGZOYW1lLnRyaW0oKTsgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0ciA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKSArIEZpbGUuc2VwYXJhdG9yICsgZk5hbWUudHJpbSgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYobGFzdEluZGV4MiA9PSAtMSl7CisgICAgICAgICAgICAgICAgZk5hbWUgPSBmTmFtZS50cmltKCkgKyAiLnhsZiI7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBpZighZk5hbWUuc3Vic3RyaW5nKGxhc3RJbmRleDIpLmVxdWFsc0lnbm9yZUNhc2UoIi54bWwiKSAmJiBmTmFtZS5zdWJzdHJpbmcobGFzdEluZGV4MikuZXF1YWxzSWdub3JlQ2FzZSgiLnhsZiIpKXsKKyAgICAgICAgICAgICAgICAgICAgZk5hbWUgPSBmTmFtZS5zdWJzdHJpbmcobGFzdEluZGV4MSxsYXN0SW5kZXgyKSArICIueGxmIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzb3VyY2VEaXIgIT0gbnVsbCAmJiBmTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RyID0gc291cmNlRGlyICsgRmlsZS5zZXBhcmF0b3IgKyBmTmFtZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdEluZGV4MSA+IDApIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBmTmFtZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RyID0gU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLmRpciIpICsgRmlsZS5zZXBhcmF0b3IgKyBmTmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RyOworICAgIH0gICAKKworICAgIC8qCisgICAgICogVXRpbGl0eSBtZXRob2QgdG8gdHJhbnNsYXRlIGEgU3RyaW5nIGZpbGVuYW1lIHRvIFVSTC4gIAorICAgICAqCisgICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgbm90IG5lY2Vzc2FyaWx5IHByb3ZlbiB0byBnZXQgdGhlIAorICAgICAqIGNvcnJlY3QgVVJMIGZvciBldmVyeSBwb3NzaWJsZSBraW5kIG9mIGZpbGVuYW1lOyBpdCBzaG91bGQgCisgICAgICogYmUgaW1wcm92ZWQuICBJdCBoYW5kbGVzIHRoZSBtb3N0IGNvbW1vbiBjYXNlcyB0aGF0IHdlJ3ZlIAorICAgICAqIGVuY291bnRlcmVkIHdoZW4gcnVubmluZyBDb25mb3JtYW5jZSB0ZXN0cyBvbiBYYWxhbi4KKyAgICAgKiBBbHNvIG5vdGUsIHRoaXMgbWV0aG9kIGRvZXMgbm90IGhhbmRsZSBvdGhlciBub24tZmlsZToKKyAgICAgKiBmbGF2b3JzIG9mIFVSTHMgYXQgYWxsLgorICAgICAqCisgICAgICogSWYgdGhlIG5hbWUgaXMgbnVsbCwgcmV0dXJuIG51bGwuCisgICAgICogSWYgdGhlIG5hbWUgc3RhcnRzIHdpdGggYSBjb21tb24gVVJJIHNjaGVtZSAobmFtZWx5IHRoZSBvbmVzIAorICAgICAqIGZvdW5kIGluIHRoZSBleGFtcGxlcyBvZiBSRkMyMzk2KSwgdGhlbiBzaW1wbHkgcmV0dXJuIHRoZSAKKyAgICAgKiBuYW1lIGFzLWlzICh0aGUgYXNzdW1wdGlvbiBpcyB0aGF0IGl0J3MgYWxyZWFkeSBhIFVSTCkKKyAgICAgKiBPdGhlcndpc2Ugd2UgYXR0ZW1wdCAoY2hlYXBseSkgdG8gY29udmVydCB0byBhIGZpbGU6Ly8vIFVSTC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZmlsZW5hbWVUb1VSTChTdHJpbmcgZmlsZW5hbWUpeworICAgICAgICAvLyBudWxsIGJlZ2V0cyBudWxsIC0gc29tZXRoaW5nIGxpa2UgdGhlIGNvbW11dGF0aXZlIHByb3BlcnR5CisgICAgICAgIGlmIChudWxsID09IGZpbGVuYW1lKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9uJ3QgdHJhbnNsYXRlIGEgc3RyaW5nIHRoYXQgYWxyZWFkeSBsb29rcyBsaWtlIGEgVVJMCisgICAgICAgIGlmIChmaWxlbmFtZS5zdGFydHNXaXRoKCJmaWxlOiIpCisgICAgICAgICAgICB8fCBmaWxlbmFtZS5zdGFydHNXaXRoKCJodHRwOiIpCisgICAgICAgICAgICB8fCBmaWxlbmFtZS5zdGFydHNXaXRoKCJmdHA6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoImdvcGhlcjoiKQorICAgICAgICAgICAgfHwgZmlsZW5hbWUuc3RhcnRzV2l0aCgibWFpbHRvOiIpCisgICAgICAgICAgICB8fCBmaWxlbmFtZS5zdGFydHNXaXRoKCJuZXdzOiIpCisgICAgICAgICAgICB8fCBmaWxlbmFtZS5zdGFydHNXaXRoKCJ0ZWxuZXQ6IikKKyAgICAgICAgICAgKXsKKyAgICAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZTsKKyAgICAgICAgICAgfQorICAgICAgICAKKworICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShmaWxlbmFtZSk7CisgICAgICAgIFN0cmluZyB0bXAgPSBudWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICAvLyBUaGlzIG5vcm1hbGx5IGdpdmVzIGEgYmV0dGVyIHBhdGgKKyAgICAgICAgICAgIHRtcCA9IGYuZ2V0Q2Fub25pY2FsUGF0aCgpOworICAgICAgICB9Y2F0Y2ggKElPRXhjZXB0aW9uIGlvZSl7CisgICAgICAgICAgICAvLyBCdXQgdGhpcyBjYW4gYmUgdXNlZCBhcyBhIGJhY2t1cCwgZm9yIGNhc2VzIAorICAgICAgICAgICAgLy8gIHdoZXJlIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCBldGMuCisgICAgICAgICAgICB0bXAgPSBmLmdldEFic29sdXRlUGF0aCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVVJMcyBtdXN0IGV4cGxpY2l0bHkgdXNlIG9ubHkgZm9yd2FyZCBzbGFzaGVzCisgICAgICAgIGlmIChGaWxlLnNlcGFyYXRvckNoYXIgPT0gJ1xcJykgeworICAgICAgICAgICAgdG1wID0gdG1wLnJlcGxhY2UoJ1xcJywgJy8nKTsKKyAgICAgICAgfQorICAgICAgICAvLyBOb3RlIHRoZSBwcmVzdW1wdGlvbiB0aGF0IGl0J3MgYSBmaWxlIHJlZmVyZW5jZQorICAgICAgICAvLyBFbnN1cmUgd2UgaGF2ZSB0aGUgY29ycmVjdCBudW1iZXIgb2Ygc2xhc2hlcyBhdCB0aGUgCisgICAgICAgIC8vICBzdGFydDogd2UgYWx3YXlzIHdhbnQgMyAvLy8gaWYgaXQncyBhYnNvbHV0ZQorICAgICAgICAvLyAgKHdoaWNoIHdlIHNob3VsZCBoYXZlIGZvcmNlZCBhYm92ZSkKKyAgICAgICAgaWYgKHRtcC5zdGFydHNXaXRoKCIvIikpeworICAgICAgICAgICAgcmV0dXJuICJmaWxlOi8vIiArIHRtcDsKKyAgICAgICAgfQorICAgICAgICBlbHNleworICAgICAgICAgICAgcmV0dXJuICJmaWxlOi8vLyIgKyB0bXA7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBib29sZWFuIGlzWG1sTGFuZyAoU3RyaW5nIGxhbmcpeworCisgICAgICAgIGludCBzdWZmaXg7CisgICAgICAgIGNoYXIgYzsKKyAgICAgICAgCisgICAgICAgIGlmIChsYW5nLmxlbmd0aCAoKSA8IDIpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgYyA9IGxhbmcuY2hhckF0KDEpOworICAgICAgICBpZiAoYyA9PSAnLScpIHsgICAgICAgIAorICAgICAgICAgICAgYyA9IGxhbmcuY2hhckF0KDApOworICAgICAgICAgICAgaWYgKCEoYyA9PSAnaScgfHwgYyA9PSAnSScgfHwgYyA9PSAneCcgfHwgYyA9PSAnWCcpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWZmaXggPSAxOworICAgICAgICB9IGVsc2UgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgeworICAgICAgICAgICAgYyA9IGxhbmcuY2hhckF0KDApOworICAgICAgICAgICAgaWYgKCEoKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3VmZml4ID0gMjsKKyAgICAgICAgfSBlbHNleworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChzdWZmaXggPCBsYW5nLmxlbmd0aCAoKSkgeworICAgICAgICAgICAgYyA9IGxhbmcuY2hhckF0KHN1ZmZpeCk7CisgICAgICAgICAgICBpZiAoYyAhPSAnLScpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKCsrc3VmZml4IDwgbGFuZy5sZW5ndGggKCkpIHsKKyAgICAgICAgICAgICAgICBjID0gbGFuZy5jaGFyQXQoc3VmZml4KTsKKyAgICAgICAgICAgICAgICBpZiAoISgoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8IChjID49ICdBJyAmJiBjIDw9ICdaJykpKXsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAgKChsYW5nLmxlbmd0aCgpID09IHN1ZmZpeCkgJiYgKGMgIT0gJy0nKSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjcmVhdGVSQihTdHJpbmcgeG1sZmlsZU5hbWUpIHsKKyAgICAgICAKKyAgICAgICAgU3RyaW5nIHVybHMgPSBmaWxlbmFtZVRvVVJMKHhtbGZpbGVOYW1lKTsKKyAgICAgICAgRG9jdW1lbnRCdWlsZGVyRmFjdG9yeSBkZmFjdG9yeSA9IERvY3VtZW50QnVpbGRlckZhY3RvcnkubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgZGZhY3Rvcnkuc2V0TmFtZXNwYWNlQXdhcmUodHJ1ZSk7CisgICAgICAgIGRmYWN0b3J5LnNldFZhbGlkYXRpbmcodHJ1ZSk7CisgICAgICAgIERvY3VtZW50IGRvYyA9IG51bGw7CisgICAgICAgIAorICAgICAgICBFcnJvckhhbmRsZXIgbnVsbEhhbmRsZXIgPSBuZXcgRXJyb3JIYW5kbGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2FybmluZyhTQVhQYXJzZUV4Y2VwdGlvbiBlKSB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGVycm9yKFNBWFBhcnNlRXhjZXB0aW9uIGUpIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVGhlIFhMSUZGIGRvY3VtZW50IGlzIGludmFsaWQsIHBsZWFzZSBjaGVjayBpdCBmaXJzdDogIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJMaW5lICIrZS5nZXRMaW5lTnVtYmVyKCkrIiwgQ29sdW1uICIrZS5nZXRDb2x1bW5OdW1iZXIoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGZhdGFsRXJyb3IoU0FYUGFyc2VFeGNlcHRpb24gZSkgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEb2N1bWVudEJ1aWxkZXIgZG9jQnVpbGRlciA9IGRmYWN0b3J5Lm5ld0RvY3VtZW50QnVpbGRlcigpOworICAgICAgICAgICAgZG9jQnVpbGRlci5zZXRFcnJvckhhbmRsZXIobnVsbEhhbmRsZXIpOworICAgICAgICAgICAgZG9jID0gZG9jQnVpbGRlci5wYXJzZShuZXcgSW5wdXRTb3VyY2UodXJscykpOworICAgICAgICAgICAgCisgICAgICAgICAgICBOb2RlTGlzdCBubGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShGSUxFUyk7CisgICAgICAgICAgICBpZihubGlzdC5nZXRMZW5ndGgoKT4xKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiTXVsdGlwbGUgPGZpbGU+IGVsZW1lbnRzIGluIHRoZSBYTElGRiBmaWxlIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBnZXQgdGhlIHZhbHVlIG9mIHNvdXJjZS1sYW5ndWFnZSBhdHRyaWJ1dGUKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2VMYW5nID0gZ2V0TGFuZ3VhZ2VOYW1lKGRvYywgU09VUkNFTEFOR1VBR0UpOworICAgICAgICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSBvZiB0YXJnZXQtbGFuZ3VhZ2UgYXR0cmlidXRlCisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0TGFuZyA9IGdldExhbmd1YWdlTmFtZShkb2MsIFRBUkdFVExBTkdVQUdFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gZ2V0IHRoZSBsaXN0IG9mIDxzb3VyY2U+IGVsZW1lbnRzCisgICAgICAgICAgICBOb2RlTGlzdCBzb3VyY2VMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKFNPVVJDRSk7CisgICAgICAgICAgICAvLyBnZXQgdGhlIGxpc3Qgb2YgdGFyZ2V0IGVsZW1lbnRzCisgICAgICAgICAgICBOb2RlTGlzdCB0YXJnZXRMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKFRBUkdFVCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSB4bGlmZiBmaWxlIGhhcyBzb3VyY2UgZWxlbWVudHMgaW4gbXVsdGlwbGUgbGFuZ3VhZ2VzCisgICAgICAgICAgICAvLyB0aGUgc291cmNlLWxhbmd1YWdlIHZhbHVlIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB4bWw6bGFuZyB2YWx1ZXMKKyAgICAgICAgICAgIC8vIG9mIGFsbCB0aGUgc291cmNlIGVsZW1lbnRzLgorICAgICAgICAgICAgU3RyaW5nIHhtbFNyY0xhbmcgPSBjaGVja0xhbmdBdHRyaWJ1dGUoc291cmNlTGlzdCwgc291cmNlTGFuZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSB4bGlmZiBmaWxlIGhhcyB0YXJnZXQgZWxlbWVudHMgaW4gbXVsdGlwbGUgbGFuZ3VhZ2VzCisgICAgICAgICAgICAvLyB0aGUgdGFyZ2V0LWxhbmd1YWdlIHZhbHVlIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB4bWw6bGFuZyB2YWx1ZXMKKyAgICAgICAgICAgIC8vIG9mIGFsbCB0aGUgdGFyZ2V0IGVsZW1lbnRzLgorICAgICAgICAgICAgU3RyaW5nIHhtbFRhcmdldExhbmcgPSBjaGVja0xhbmdBdHRyaWJ1dGUodGFyZ2V0TGlzdCwgdGFyZ2V0TGFuZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgUmVzb3VyY2UgbGlua2VkIGxpc3Qgd2hpY2ggd2lsbCBob2xkIHRoZQorICAgICAgICAgICAgLy8gc291cmNlIGFuZCB0YXJnZXQgYnVuZGxlcyBhZnRlciBwYXJzaW5nCisgICAgICAgICAgICBSZXNvdXJjZVtdIHNldCA9IG5ldyBSZXNvdXJjZVsyXTsKKyAgICAgICAgICAgIHNldFswXSA9IG5ldyBSZXNvdXJjZVRhYmxlKCk7CisgICAgICAgICAgICBzZXRbMV0gPSBuZXcgUmVzb3VyY2VUYWJsZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBsZW5pZW50IGV4dHJhY3Rpb24gb2Ygc291cmNlIGxhbmd1YWdlCisgICAgICAgICAgICBpZihtYWtlU291cmNlUm9vdCA9PSB0cnVlKXsgCisgICAgICAgICAgICAgICAgc2V0WzBdLm5hbWUgPSBST09UOworICAgICAgICAgICAgfWVsc2UgaWYoc291cmNlTGFuZyE9bnVsbCl7CisgICAgICAgICAgICAgICAgc2V0WzBdLm5hbWUgPSBzb3VyY2VMYW5nLnJlcGxhY2UoJy0nLCdfJyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBpZih4bWxTcmNMYW5nICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICBzZXRbMF0ubmFtZSA9IHhtbFNyY0xhbmcucmVwbGFjZSgnLScsJ18nKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogQ291bGQgbm90IGZpZ3VyZSBvdXQgdGhlIHNvdXJjZSBsYW5ndWFnZSBvZiB0aGUgZmlsZS4gUGxlYXNlIGNoZWNrIHRoZSBYTElGRiBmaWxlLiIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBsZW5pZW50IGV4dHJhY3Rpb24gb2YgdGhlIHRhcmdldCBsYW5ndWFnZQorICAgICAgICAgICAgaWYodGFyZ2V0TGFuZyE9bnVsbCl7CisgICAgICAgICAgICAgICAgc2V0WzFdLm5hbWUgPSB0YXJnZXRMYW5nLnJlcGxhY2UoJy0nLCdfJyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBpZih4bWxUYXJnZXRMYW5nIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgc2V0WzFdLm5hbWUgPSB4bWxUYXJnZXRMYW5nLnJlcGxhY2UoJy0nLCdfJyk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogQ291bGQgbm90IGZpZ3VyZSBvdXQgdGhlIHRhcmdldCBsYW5ndWFnZSBvZiB0aGUgZmlsZS4gUHJvZHVjaW5nIHNvdXJjZSBidW5kbGUgb25seS4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgaWYgYW55IDxhbHQtdHJhbnM+IGVsZW1lbnRzIGFyZSBwcmVzZW50CisgICAgICAgICAgICBOb2RlTGlzdCBhbHRUcmFucyA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShBTFRUUkFOUyk7CisgICAgICAgICAgICBpZihhbHRUcmFucy5nZXRMZW5ndGgoKT4wKXsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IDxhbHQtdHJhbnM+IGVsZW1lbnRzIGluIGZvdW5kLiBJZ25vcmluZyBhbGwgPGFsdC10cmFucz4gZWxlbWVudHMuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGdldCBhbGwgdGhlIGdyb3VwIGVsZW1lbnRzCisgICAgICAgICAgICBOb2RlTGlzdCBsaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKEdST1VQUyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHByb2Nlc3MgdGhlIGZpcnN0IGdyb3VwIGVsZW1lbnQuIFRoZSBmaXJzdCBncm91cCBlbGVtZW50IGlzIAorICAgICAgICAgICAgLy8gdGhlIGJhc2UgdGFibGUgdGhhdCBtdXN0IGJlIHBhcnNlZCByZWN1cnNpdmVseQorICAgICAgICAgICAgcGFyc2VUYWJsZShsaXN0Lml0ZW0oMCksIHNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdyaXRlIG91dCB0aGUgYnVuZGxlCisgICAgICAgICAgICB3cml0ZVJlc291cmNlKHNldCwgeG1sZmlsZU5hbWUpOworICAgICAgICAgfQorICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIHNlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiAiICsgc2UudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZVJlc291cmNlKFJlc291cmNlW10gc2V0LCBTdHJpbmcgeG1sZmlsZU5hbWUpeworICAgICAgICBpZih0YXJnZXRPbmx5PT1mYWxzZSl7CisgICAgICAgICAgICB3cml0ZVJlc291cmNlKHNldFswXSwgeG1sZmlsZU5hbWUsIHNvdXJjZUZpbGVOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBpZihzb3VyY2VPbmx5ID09IGZhbHNlKXsKKyAgICAgICAgICAgIGlmKHRhcmdldE9ubHk9PXRydWUgJiYgc2V0WzFdLm5hbWUgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlRoZSAiKyB4bWxmaWxlTmFtZSArIiBkb2VzIG5vdCBjb250YWluIHRyYW5zbGF0aW9uXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHNldFsxXS5uYW1lICE9IG51bGwpeworICAgICAgICAgICAgICAgIHdyaXRlUmVzb3VyY2Uoc2V0WzFdLCB4bWxmaWxlTmFtZSwgdGFyZ2V0RmlsZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZVJlc291cmNlKFJlc291cmNlIHNldCwgU3RyaW5nIHNvdXJjZUZpbGVOYW1lLCBTdHJpbmcgdGFyZ2V0RmlsZU5hbWUpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIG91dHB1dEZpbGVOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIGlmKHRhcmdldEZpbGVOYW1lICE9IG51bGwpeworICAgICAgICAgICAgICAgIG91dHB1dEZpbGVOYW1lID0gZGVzdERpcitGaWxlLnNlcGFyYXRvcit0YXJnZXRGaWxlTmFtZSsiLnR4dCI7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBvdXRwdXRGaWxlTmFtZSA9IGRlc3REaXIrRmlsZS5zZXBhcmF0b3Irc2V0Lm5hbWUrIi50eHQiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBmaWxlID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0RmlsZU5hbWUpOworICAgICAgICAgICAgQnVmZmVyZWRPdXRwdXRTdHJlYW0gd3JpdGVyID0gbmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtKGZpbGUpOworCisgICAgICAgICAgICB3cml0ZUhlYWRlcih3cml0ZXIsc291cmNlRmlsZU5hbWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL05vdyBzdGFydCB3cml0aW5nIHRoZSByZXNvdXJjZTsKKyAgICAgICAgICAgIFJlc291cmNlIGN1cnJlbnQgPSBzZXQ7CisgICAgICAgICAgICB3aGlsZShjdXJyZW50IT1udWxsKXsKKyAgICAgICAgICAgICAgICBjdXJyZW50LndyaXRlKHdyaXRlciwgMCwgZmFsc2UpOworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3cml0ZXIuZmx1c2goKTsKKyAgICAgICAgICAgIHdyaXRlci5jbG9zZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gaWUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1IgOiIgKyBpZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBnZXRMYW5ndWFnZU5hbWUoRG9jdW1lbnQgZG9jLCBTdHJpbmcgbGFuZyl7CisgICAgICAgIGlmKGRvYyE9bnVsbCl7CisgICAgICAgICAgICBOb2RlTGlzdCBsaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKEZJTEUpOworICAgICAgICAgICAgTm9kZSBub2RlID0gbGlzdC5pdGVtKDApOworICAgICAgICAgICAgTmFtZWROb2RlTWFwIGF0dHIgPSBub2RlLmdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgIE5vZGUgb3JpZyA9IGF0dHIuZ2V0TmFtZWRJdGVtKGxhbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihvcmlnICE9IG51bGwpeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gb3JpZy5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBOb2RlTGlzdCBncm91cExpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoR1JPVVBTKTsKKyAgICAgICAgICAgICAgICBOb2RlIGdyb3VwID0gZ3JvdXBMaXN0Lml0ZW0oMCk7CisgICAgICAgICAgICAgICAgTmFtZWROb2RlTWFwIGdyb3VwQXR0ID0gZ3JvdXAuZ2V0QXR0cmlidXRlcygpOworICAgICAgICAgICAgICAgIE5vZGUgaWQgPSBncm91cEF0dC5nZXROYW1lZEl0ZW0oSUQpOworICAgICAgICAgICAgICAgIGlmKGlkIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkVmFsID0gaWQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZighbmFtZS5lcXVhbHMoaWRWYWwpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV0FSTklORzogVGhlIGlkIHZhbHVlICE9IGxhbmd1YWdlIG5hbWUuICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGVhc2UgY29tcGFyZSB0aGUgb3V0cHV0IHdpdGggdGhlIG9yaWduYWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklDVSBSZXNvdXJjZUJ1bmRsZSBiZWZvcmUgcHJvY2VlZGluZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZighaXNYbWxMYW5nKG5hbWUpKXsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJUaGUgYXR0cmlidXRlICIrIGxhbmcgKyAiPVwiIisgbmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgb2YgPGZpbGU+IGVsZW1lbnQgZG9lcyBub3Qgc2F0aXNmeSBSRkMgMTc2NiBjb25kaXRpb25zLiIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBuYW1lOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvLyBjaGVjayBpZiB0aGUgeGxpZmYgZmlsZSBpcyB0cmFuc2xhdGVkIGludG8gbXVsdGlwbGUgbGFuZ3VhZ2VzCisgICAgLy8gVGhlIFhMSUZGIHNwZWNpZmljYXRpb24gYWxsb3dzIGZvciBzaW5nbGUgPHRhcmdldD4gZWxlbWVudAorICAgIC8vIGFzIHRoZSBjaGlsZCBvZiA8dHJhbnMtdW5pdD4gYnV0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSAKKyAgICAvLyA8dGFyZ2V0PiBlbGVtZW50IG1heSBkaWZmZXJlbnQgYWNyb3NzIDx0cmFucy11bml0PiBlbGVtZW50cworICAgIC8vIGNoZWNrIGZvciBpdC4gU2ltaWxhciBpcyB0aGUgY2FzZSB3aXRoIDxzb3VyY2U+IGVsZW1lbnRzCisgICAgcHJpdmF0ZSBTdHJpbmcgY2hlY2tMYW5nQXR0cmlidXRlKE5vZGVMaXN0IGxpc3QsIFN0cmluZyBvcmlnTmFtZSl7CisgICAgICAgIFN0cmluZyBvbGRMYW5nTmFtZT1vcmlnTmFtZTsKKyAgICAgICAgZm9yKGludCBpID0gMCA7aTxsaXN0LmdldExlbmd0aCgpOyBpKyspeworICAgICAgICAgICAgTm9kZSBub2RlID0gbGlzdC5pdGVtKGkpOworICAgICAgICAgICAgTmFtZWROb2RlTWFwIGF0dHIgPSBub2RlLmdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgIE5vZGUgbGFuZyA9IGF0dHIuZ2V0TmFtZWRJdGVtKFhNTExBTkcpOworICAgICAgICAgICAgU3RyaW5nIGxhbmdOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIC8vIHRoZSB0YXJnZXQgZWxlbWVudCBzaG91bGQgYWx3YXlzIGNvbnRhaW4geG1sOmxhbmcgYXR0cmlidXRlCisgICAgICAgICAgICBpZihsYW5nPT1udWxsICl7CisgICAgICAgICAgICAgICAgaWYob3JpZ05hbWU9PW51bGwpeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVuY291bnRlcmVkIDx0YXJnZXQ+IGVsZW1lbnQgd2l0aG91dCB4bWw6bGFuZyBhdHRyaWJ1dGUuIFBsZWFzZSBmaXggdGhlIGJlbG93IGVsZW1lbnQgaW4gdGhlIFhMSUZGIGZpbGUuXG4iKyBub2RlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgtMSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGxhbmdOYW1lID0gb3JpZ05hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbGFuZ05hbWUgPSBsYW5nLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihvbGRMYW5nTmFtZSE9bnVsbCAmJiBsYW5nTmFtZSE9bnVsbCAmJiAhbGFuZ05hbWUuZXF1YWxzKG9sZExhbmdOYW1lKSl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlRoZSA8dHJhbnMtdW5pdD4gZWxlbWVudHMgbXVzdCBiZSBiaWxpbmd1YWwsIG11bHRpbGluZ3VhbCB0cmFubGF0aW9ucyBub3Qgc3VwcG9ydGVkLiB4bWw6bGFuZyA9ICIgKyBvbGRMYW5nTmFtZSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5kIHhtbDpsYW5nID0gIiArIGxhbmdOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9sZExhbmdOYW1lID0gbGFuZ05hbWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9sZExhbmdOYW1lOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNleworICAgICAgICBTdHJpbmdbXSBub3RlID0gbmV3IFN0cmluZ1syMF07CisgICAgICAgIGludCBub3RlTGVuID0gMDsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZTsKKyAgICAgICAgU3RyaW5nIGNvbW1lbnQ7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBSZXNvdXJjZSBuZXh0OworICAgICAgICBwdWJsaWMgU3RyaW5nIGVzY2FwZVN5bnRheENoYXJzKFN0cmluZyB2YWwpeworICAgICAgICAgICAgLy8gZXNjYXBlIHRoZSBlbWJlZGRlZCBxdW90ZXMKKyAgICAgICAgICAgIGNoYXJbXSBzdHIgPSB2YWwudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxzdHIubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RyW2ldKXsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnXHUwMDIyJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyk7IC8vYXBwZW5kIGJhY2tzbGFzaAorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzdHJbaV0pOworICAgICAgICAgICAgICAgIH0gICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd2hpbGUobmV4dCE9bnVsbCl7CisgICAgICAgICAgICAgICAgbmV4dC53cml0ZSh3cml0ZXIsIG51bUluZGVudCsxLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGVJbmRlbnQoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgbnVtSW5kZW50OyBpKyspeworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlcixJTkRFTlQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIFN0cmluZyB2YWx1ZSl7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IHZhbHVlLmdldEJ5dGVzKENIQVJTRVQpOworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZShieXRlcywgMCwgYnl0ZXMubGVuZ3RoKTsKKyAgICAgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGVDb21tZW50cyhPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50KXsKKyAgICAgICAgICAgIGlmKGNvbW1lbnQhPW51bGwgfHwgdHJhbnNsYXRlICE9IG51bGwgfHwgbm90ZUxlbiA+IDApeworICAgICAgICAgICAgICAgIC8vIHByaW50IHRoZSBzdGFydCBvZiB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENPTU1FTlRTVEFSVCtMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBwcmludCBjb21tZW50IGlmIGFueQorICAgICAgICAgICAgICAgIGlmKGNvbW1lbnQhPW51bGwpeworICAgICAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ09NTUVOVE1JRERMRSk7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgY29tbWVudCk7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgTElORVNFUCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHByaW50IHRoZSB0cmFuc2xhdGUgYXR0cmlidXRlIGlmIGFueQorICAgICAgICAgICAgICAgIGlmKHRyYW5zbGF0ZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBUQUcrVFJBTlNMQVRFK1NQQUNFKTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCB0cmFuc2xhdGUpOworICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIExJTkVTRVApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBwcmludCBub3RlIGVsZW1lbnRzIGlmIGFueQorICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPG5vdGVMZW47IGkrKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKG5vdGVbaV0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBUQUcrTk9URStTUEFDRStub3RlW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgTElORVNFUCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gdGVybWluYXRlIHRoZSBjb21tZW50CisgICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ09NTUVOVEVORCtMSU5FU0VQKTsKKyAgICAgICAgICAgIH0gICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlU3RyaW5nIGV4dGVuZHMgUmVzb3VyY2V7CisgICAgICAgIFN0cmluZyB2YWw7CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3cml0ZUNvbW1lbnRzKHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIGlmKGJhcmU9PXRydWUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUhPW51bGwpeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQmFyZSBvcHRpb24gaXMgc2V0IHRvIHRydWUgYnV0IHRoZSByZXNvdXJjZSBoYXMgYSBuYW1lISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsUVVPVEUrZXNjYXBlU3ludGF4Q2hhcnModmFsKStRVU9URSk7IAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBuYW1lK0NPTE9OK1NUUklOR1MrIE9QRU5CUkFDRSArIFFVT1RFICsgZXNjYXBlU3ludGF4Q2hhcnModmFsKSArIFFVT1RFKyBDTE9TRUJSQUNFICsgTElORVNFUCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUFsaWFzIGV4dGVuZHMgUmVzb3VyY2V7CisgICAgICAgIFN0cmluZyB2YWw7CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3cml0ZUNvbW1lbnRzKHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gICgobmFtZT09bnVsbCk/IEVNUFRZOiBuYW1lKStDT0xPTitBTElBUysgT1BFTkJSQUNFK1FVT1RFK2VzY2FwZVN5bnRheENoYXJzKHZhbCkrUVVPVEUrQ0xPU0VCUkFDRTsKKyAgICAgICAgICAgIGlmKGJhcmU9PXRydWUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUhPW51bGwpeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQmFyZSBvcHRpb24gaXMgc2V0IHRvIHRydWUgYnV0IHRoZSByZXNvdXJjZSBoYXMgYSBuYW1lISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsbGluZSk7IAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBsaW5lK0xJTkVTRVApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VJbnQgZXh0ZW5kcyBSZXNvdXJjZXsKKyAgICAgICAgU3RyaW5nIHZhbDsKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdyaXRlQ29tbWVudHMod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSAgKChuYW1lPT1udWxsKT8gRU1QVFk6IG5hbWUpK0NPTE9OK0lOVFMrIE9QRU5CUkFDRSArIHZhbCArQ0xPU0VCUkFDRTsKKyAgICAgICAgICAgIGlmKGJhcmU9PXRydWUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUhPW51bGwpeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQmFyZSBvcHRpb24gaXMgc2V0IHRvIHRydWUgYnV0IHRoZSByZXNvdXJjZSBoYXMgYSBuYW1lISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsbGluZSk7IAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBsaW5lK0xJTkVTRVApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VCaW5hcnkgZXh0ZW5kcyBSZXNvdXJjZXsKKyAgICAgICAgU3RyaW5nIGludGVybmFsOworICAgICAgICBTdHJpbmcgZXh0ZXJuYWw7CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3cml0ZUNvbW1lbnRzKHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIGlmKGludGVybmFsPT1udWxsKXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGluZSA9ICgobmFtZT09bnVsbCkgPyBFTVBUWSA6IG5hbWUpK0NPTE9OK0lNUE9SVCsgT1BFTkJSQUNFK1FVT1RFK2V4dGVybmFsK1FVT1RFK0NMT1NFQlJBQ0UgKyAoKGJhcmU9PXRydWUpID8gIEVNUFRZIDogTElORVNFUCk7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBsaW5lKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gKChuYW1lPT1udWxsKSA/IEVNUFRZIDogbmFtZSkrQ09MT04rQklOKyBPUEVOQlJBQ0UraW50ZXJuYWwrQ0xPU0VCUkFDRSsgKChiYXJlPT10cnVlKSA/ICBFTVBUWSA6IExJTkVTRVApOworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlcixsaW5lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VJbnRWZWN0b3IgZXh0ZW5kcyBSZXNvdXJjZXsKKyAgICAgICAgUmVzb3VyY2VJbnQgZmlyc3Q7CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3cml0ZUNvbW1lbnRzKHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgbmFtZStDT0xPTitJTlRWRUNUT1IrT1BFTkJSQUNFK0xJTkVTRVApOworICAgICAgICAgICAgbnVtSW5kZW50Kys7CisgICAgICAgICAgICBSZXNvdXJjZUludCBjdXJyZW50ID0gKFJlc291cmNlSW50KSBmaXJzdDsKKyAgICAgICAgICAgIHdoaWxlKGN1cnJlbnQgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgLy9jdXJyZW50LndyaXRlKHdyaXRlciwgbnVtSW5kZW50LCB0cnVlKTsKKyAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBjdXJyZW50LnZhbCk7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDT01NQStMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gKFJlc291cmNlSW50KSBjdXJyZW50Lm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBudW1JbmRlbnQtLTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ0xPU0VCUkFDRStMSU5FU0VQKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlVGFibGUgZXh0ZW5kcyBSZXNvdXJjZXsKKyAgICAgICAgUmVzb3VyY2UgZmlyc3Q7CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3cml0ZUNvbW1lbnRzKHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgbmFtZStDT0xPTitUQUJMRStPUEVOQlJBQ0UrTElORVNFUCk7CisgICAgICAgICAgICBudW1JbmRlbnQrKzsKKyAgICAgICAgICAgIFJlc291cmNlIGN1cnJlbnQgPSBmaXJzdDsKKyAgICAgICAgICAgIHdoaWxlKGN1cnJlbnQgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgY3VycmVudC53cml0ZSh3cml0ZXIsIG51bUluZGVudCwgZmFsc2UpOworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBudW1JbmRlbnQtLTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ0xPU0VCUkFDRStMSU5FU0VQKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlQXJyYXkgZXh0ZW5kcyBSZXNvdXJjZXsKKyAgICAgICAgUmVzb3VyY2UgZmlyc3Q7CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3cml0ZUNvbW1lbnRzKHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgbmFtZStDT0xPTitBUlJBWVMrT1BFTkJSQUNFK0xJTkVTRVApOworICAgICAgICAgICAgbnVtSW5kZW50Kys7CisgICAgICAgICAgICBSZXNvdXJjZSBjdXJyZW50ID0gZmlyc3Q7CisgICAgICAgICAgICB3aGlsZShjdXJyZW50ICE9IG51bGwpeworICAgICAgICAgICAgICAgIGN1cnJlbnQud3JpdGUod3JpdGVyLCBudW1JbmRlbnQsIHRydWUpOworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ09NTUErTElORVNFUCk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG51bUluZGVudC0tOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDTE9TRUJSQUNFK0xJTkVTRVApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGdldEF0dHJpYnV0ZVZhbHVlKE5vZGUgc05vZGUsIFN0cmluZyBhdHRyaWJOYW1lKXsKKyAgICAgICAgU3RyaW5nIHZhbHVlPW51bGw7CisgICAgICAgIE5vZGUgbm9kZSA9IHNOb2RlOworCisgICAgICAgIE5hbWVkTm9kZU1hcCBhdHRyaWJ1dGVzID0gbm9kZS5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgIE5vZGUgYXR0ciA9IGF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKGF0dHJpYk5hbWUpOworICAgICAgICBpZihhdHRyIT1udWxsKXsKKyAgICAgICAgICAgIHZhbHVlID0gYXR0ci5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlUmVzb3VyY2VTdHJpbmcoTm9kZSBub2RlLCBSZXNvdXJjZVN0cmluZ1tdIHNldCl7CisgICAgICAgIFJlc291cmNlU3RyaW5nIGN1cnJlbnRTb3VyY2U7CisgICAgICAgIFJlc291cmNlU3RyaW5nIGN1cnJlbnRUYXJnZXQ7CisgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAgc2V0WzBdOworICAgICAgICBjdXJyZW50VGFyZ2V0ID0gIHNldFsxXTsKKyAgICAgICAgU3RyaW5nIHJlc05hbWUgICA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU05BTUUpOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgVFJBTlNMQVRFKTsKKyAgICAgICAgCisgICAgICAgIC8vIGxvb3AgdG8gcGlja3VwIDxzb3VyY2U+LCA8bm90ZT4gYW5kIDx0YXJnZXQ+IGVsZW1lbnRzCisgICAgICAgIGZvcihOb2RlIHRyYW5zVW5pdCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyB0cmFuc1VuaXQhPW51bGw7IHRyYW5zVW5pdCA9IHRyYW5zVW5pdC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSB0cmFuc1VuaXQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gdHJhbnNVbml0LmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGNvbW1lbnQKKyAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9ICBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSB0cmFuc1VuaXQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZiggdHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoU09VUkNFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IHZhbHVlcworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5hbWUgPSBjdXJyZW50VGFyZ2V0Lm5hbWUgPSByZXNOYW1lOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLnZhbCA9IGN1cnJlbnRUYXJnZXQudmFsID0gdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS50cmFuc2xhdGUgPSBjdXJyZW50VGFyZ2V0LnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIG5vdGUgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPQorICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhUQVJHRVQpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0YXJnZXQgZWxlbWVudCByZXBsYWNlIGl0CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQudmFsID0gdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwYXJzZVJlc291cmNlSW50KE5vZGUgbm9kZSwgUmVzb3VyY2VJbnRbXSBzZXQpeworICAgICAgICBSZXNvdXJjZUludCBjdXJyZW50U291cmNlOworICAgICAgICBSZXNvdXJjZUludCBjdXJyZW50VGFyZ2V0OworICAgICAgICBjdXJyZW50U291cmNlID0gIHNldFswXTsKKyAgICAgICAgY3VycmVudFRhcmdldCA9ICBzZXRbMV07CisgICAgICAgIFN0cmluZyByZXNOYW1lICAgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNOQU1FKTsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFRSQU5TTEFURSk7CisgICAgICAgIC8vIGxvb3AgdG8gcGlja3VwIDxzb3VyY2U+LCA8bm90ZT4gYW5kIDx0YXJnZXQ+IGVsZW1lbnRzCisgICAgICAgIGZvcihOb2RlIHRyYW5zVW5pdCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyB0cmFuc1VuaXQhPW51bGw7IHRyYW5zVW5pdCA9IHRyYW5zVW5pdC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSB0cmFuc1VuaXQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gdHJhbnNVbml0LmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGNvbW1lbnQKKyAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9ICBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSB0cmFuc1VuaXQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZiggdHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoU09VUkNFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IHZhbHVlcworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5hbWUgPSBjdXJyZW50VGFyZ2V0Lm5hbWUgPSByZXNOYW1lOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLnRyYW5zbGF0ZSA9IGN1cnJlbnRUYXJnZXQudHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLnZhbCA9IGN1cnJlbnRUYXJnZXQudmFsID0gdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIG5vdGUgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPQorICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhUQVJHRVQpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0YXJnZXQgZWxlbWVudCByZXBsYWNlIGl0CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQudmFsID0gdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VSZXNvdXJjZUFsaWFzKE5vZGUgbm9kZSwgUmVzb3VyY2VBbGlhc1tdIHNldCl7CisgICAgICAgIFJlc291cmNlQWxpYXMgY3VycmVudFNvdXJjZTsKKyAgICAgICAgUmVzb3VyY2VBbGlhcyBjdXJyZW50VGFyZ2V0OworICAgICAgICBjdXJyZW50U291cmNlID0gIHNldFswXTsKKyAgICAgICAgY3VycmVudFRhcmdldCA9ICBzZXRbMV07CisgICAgICAgIFN0cmluZyByZXNOYW1lICAgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNOQU1FKTsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFRSQU5TTEFURSk7CisgICAgICAgIC8vIGxvb3AgdG8gcGlja3VwIDxzb3VyY2U+LCA8bm90ZT4gYW5kIDx0YXJnZXQ+IGVsZW1lbnRzCisgICAgICAgIGZvcihOb2RlIHRyYW5zVW5pdCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyB0cmFuc1VuaXQhPW51bGw7IHRyYW5zVW5pdCA9IHRyYW5zVW5pdC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSB0cmFuc1VuaXQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gdHJhbnNVbml0LmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGNvbW1lbnQKKyAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9ICBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSB0cmFuc1VuaXQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZiggdHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoU09VUkNFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IHZhbHVlcworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5hbWUgPSBjdXJyZW50VGFyZ2V0Lm5hbWUgPSByZXNOYW1lOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLnRyYW5zbGF0ZSA9IGN1cnJlbnRUYXJnZXQudHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLnZhbCA9IGN1cnJlbnRUYXJnZXQudmFsID0gdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIG5vdGUgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPQorICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhUQVJHRVQpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0YXJnZXQgZWxlbWVudCByZXBsYWNlIGl0CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQudmFsID0gdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgcGFyc2VSZXNvdXJjZUJpbmFyeShOb2RlIG5vZGUsIFJlc291cmNlQmluYXJ5W10gc2V0KXsKKyAgICAgICAgUmVzb3VyY2VCaW5hcnkgY3VycmVudFNvdXJjZTsKKyAgICAgICAgUmVzb3VyY2VCaW5hcnkgY3VycmVudFRhcmdldDsKKyAgICAgICAgY3VycmVudFNvdXJjZSA9ICBzZXRbMF07CisgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAgc2V0WzFdOworCisgICAgICAgIC8vIGxvb3AgdG8gcGlja3VwIDxzb3VyY2U+LCA8bm90ZT4gYW5kIDx0YXJnZXQ+IGVsZW1lbnRzCisgICAgICAgIGZvcihOb2RlIHRyYW5zVW5pdCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyB0cmFuc1VuaXQhPW51bGw7IHRyYW5zVW5pdCA9IHRyYW5zVW5pdC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSB0cmFuc1VuaXQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gdHJhbnNVbml0LmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGNvbW1lbnQKKyAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9ICBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSB0cmFuc1VuaXQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZiggdHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoQklOU09VUkNFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIGxvb3AgdG8gcGlja3VwIGludGVybmFsLWZpbGUvZXh0ZW5hbC1maWxlIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBub3RlIHZhbHVlcworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoSU5URVJOQUxGSUxFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgdGFyZ2V0IGVsZW1lbnQgcmVwbGFjZSBpdAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3JjID0gZ2V0QXR0cmlidXRlVmFsdWUodHJhbnNVbml0LCBDUkMpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy92ZXJpZnkgdGhhdCB0aGUgYmluYXJ5IHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBDUkMKKyAgICAgICAgICAgICAgICAgICAgaWYoSW50ZWdlci5wYXJzZUludChjcmMsIDEwKSAhPSBDYWxjdWxhdGVDUkMzMi5jb21wdXRlQ1JDMzIodmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBDUkMgdmFsdWUgaW5jb3JyZWN0ISBQbGVhc2UgY2hlY2suIik7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5pbnRlcm5hbCA9IGN1cnJlbnRTb3VyY2UuaW50ZXJuYWw9IHZhbHVlOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhFWFRFUk5BTEZJTEUpKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gZ2V0QXR0cmlidXRlVmFsdWUodHJhbnNVbml0LCBIUkVGKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5leHRlcm5hbCA9IGN1cnJlbnRTb3VyY2UuZXh0ZXJuYWwgPSBmaWxlTmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgcGFyc2VUcmFuc1VuaXQoTm9kZSBub2RlLCBSZXNvdXJjZVtdIHNldCl7CisKKyAgICAgICAgU3RyaW5nIGF0dHJUeXBlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTVFlQRSk7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBUUkFOU0xBVEUpOworICAgICAgICBpZihhdHRyVHlwZT09bnVsbCB8fCBhdHRyVHlwZS5lcXVhbHMoU1RSSU5HUykpeworICAgICAgICAgICAgUmVzb3VyY2VTdHJpbmdbXSBzdHJpbmdzID0gbmV3IFJlc291cmNlU3RyaW5nWzJdOworICAgICAgICAgICAgc3RyaW5nc1swXSA9IG5ldyBSZXNvdXJjZVN0cmluZygpOworICAgICAgICAgICAgc3RyaW5nc1sxXSA9IG5ldyBSZXNvdXJjZVN0cmluZygpOworICAgICAgICAgICAgcGFyc2VSZXNvdXJjZVN0cmluZyhub2RlLCBzdHJpbmdzKTsKKyAgICAgICAgICAgIHN0cmluZ3NbMF0udHJhbnNsYXRlID0gc3RyaW5nc1sxXS50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgICAgICBzZXRbMF0gPSBzdHJpbmdzWzBdOworICAgICAgICAgICAgc2V0WzFdID0gc3RyaW5nc1sxXTsKKyAgICAgICAgfWVsc2UgaWYoYXR0clR5cGUuZXF1YWxzKElOVFMpKXsKKyAgICAgICAgICAgIFJlc291cmNlSW50W10gaW50cyA9IG5ldyBSZXNvdXJjZUludFsyXTsKKyAgICAgICAgICAgIGludHNbMF0gPSBuZXcgUmVzb3VyY2VJbnQoKTsKKyAgICAgICAgICAgIGludHNbMV0gPSBuZXcgUmVzb3VyY2VJbnQoKTsKKyAgICAgICAgICAgIHBhcnNlUmVzb3VyY2VJbnQobm9kZSwgaW50cyk7CisgICAgICAgICAgICBpbnRzWzBdLnRyYW5zbGF0ZSA9IGludHNbMV0udHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICAgICAgc2V0WzBdID0gaW50c1swXTsKKyAgICAgICAgICAgIHNldFsxXSA9IGludHNbMV07CisgICAgICAgIH1lbHNlIGlmKGF0dHJUeXBlLmVxdWFscyhBTElBUykpeworICAgICAgICAgICAgUmVzb3VyY2VBbGlhc1tdIGludHMgPSBuZXcgUmVzb3VyY2VBbGlhc1syXTsKKyAgICAgICAgICAgIGludHNbMF0gPSBuZXcgUmVzb3VyY2VBbGlhcygpOworICAgICAgICAgICAgaW50c1sxXSA9IG5ldyBSZXNvdXJjZUFsaWFzKCk7CisgICAgICAgICAgICBwYXJzZVJlc291cmNlQWxpYXMobm9kZSwgaW50cyk7CisgICAgICAgICAgICBpbnRzWzBdLnRyYW5zbGF0ZSA9IGludHNbMV0udHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICAgICAgc2V0WzBdID0gaW50c1swXTsKKyAgICAgICAgICAgIHNldFsxXSA9IGludHNbMV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VCaW5Vbml0KE5vZGUgbm9kZSwgUmVzb3VyY2VbXSBzZXQpeworICAgICAgICBSZXNvdXJjZUJpbmFyeVtdIGJpbnMgPSBuZXcgUmVzb3VyY2VCaW5hcnlbMl07CisgICAgICAgIGJpbnNbMF0gPSBuZXcgUmVzb3VyY2VCaW5hcnkoKTsKKyAgICAgICAgYmluc1sxXSA9IG5ldyBSZXNvdXJjZUJpbmFyeSgpOworICAgICAgICBSZXNvdXJjZSBjdXJyZW50U291cmNlID0gYmluc1swXTsKKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFRhcmdldCA9IGJpbnNbMV07CisgICAgICAgIFN0cmluZyByZXNOYW1lICAgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNOQU1FKTsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFRSQU5TTEFURSk7CisgICAgICAgIGN1cnJlbnRUYXJnZXQubmFtZSA9IGN1cnJlbnRTb3VyY2UubmFtZSA9IHJlc05hbWU7CisgICAgICAgIGN1cnJlbnRTb3VyY2UudHJhbnNsYXRlID0gY3VycmVudFRhcmdldC50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgIGZvcihOb2RlIGNoaWxkID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IGNoaWxkICE9IG51bGw7IGNoaWxkID0gY2hpbGQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gY2hpbGQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gY2hpbGQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9IGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IGNoaWxkLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYodHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoQklOU09VUkNFKSl7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlUmVzb3VyY2VCaW5hcnkoY2hpbGQsIGJpbnMpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5vdGUgPSAgY2hpbGQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9IG5vdGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldFswXSA9IGJpbnNbMF07CisgICAgICAgIHNldFsxXSA9IGJpbnNbMV07CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZUFycmF5KE5vZGUgbm9kZSwgUmVzb3VyY2VbXSBzZXQpeworICAgICAgICBpZihzZXRbMF09PW51bGwpeworICAgICAgICAgICAgc2V0WzBdID0gbmV3IFJlc291cmNlQXJyYXkoKTsKKyAgICAgICAgICAgIHNldFsxXSA9IG5ldyBSZXNvdXJjZUFycmF5KCk7CisgICAgICAgIH0KKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFNvdXJjZSA9IHNldFswXTsKKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFRhcmdldCA9IHNldFsxXTsKKyAgICAgICAgU3RyaW5nIHJlc05hbWUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNOQU1FKTsKKyAgICAgICAgY3VycmVudFNvdXJjZS5uYW1lID0gY3VycmVudFRhcmdldC5uYW1lID0gcmVzTmFtZTsKKyAgICAgICAgYm9vbGVhbiBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGZvcihOb2RlIGNoaWxkID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IGNoaWxkICE9IG51bGw7IGNoaWxkID0gY2hpbGQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gY2hpbGQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gY2hpbGQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9IGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IGNoaWxkLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYodHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoVFJBTlNVTklUKSl7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlW10gbmV4dCA9IG5ldyBSZXNvdXJjZVsyXTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VUcmFuc1VuaXQoY2hpbGQsIG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZihpc0ZpcnN0PT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZUFycmF5KSBjdXJyZW50U291cmNlKS5maXJzdCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFRhcmdldCkuZmlyc3QgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gKChSZXNvdXJjZUFycmF5KSBjdXJyZW50U291cmNlKS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9ICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFRhcmdldCkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5leHQgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5uZXh0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgbmV4dCBwb2ludGVycworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9IGN1cnJlbnRTb3VyY2UubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub3RlID0gIGNoaWxkLmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPSBub3RlOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKEJJTlVOSVQpKXsKKyAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VbXSBuZXh0ID0gbmV3IFJlc291cmNlWzJdOworICAgICAgICAgICAgICAgICAgICBwYXJzZUJpblVuaXQoY2hpbGQsIG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZihpc0ZpcnN0PT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZUFycmF5KSBjdXJyZW50U291cmNlKS5maXJzdCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFRhcmdldCkuZmlyc3QgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gKChSZXNvdXJjZUFycmF5KSBjdXJyZW50U291cmNlKS5maXJzdC5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gKChSZXNvdXJjZUFycmF5KSBjdXJyZW50VGFyZ2V0KS5maXJzdC5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uZXh0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubmV4dCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIG5leHQgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSBjdXJyZW50U291cmNlLm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5uZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBwYXJzZUludFZlY3RvcihOb2RlIG5vZGUsIFJlc291cmNlW10gc2V0KXsKKyAgICAgICAgaWYoc2V0WzBdPT1udWxsKXsKKyAgICAgICAgICAgIHNldFswXSA9IG5ldyBSZXNvdXJjZUludFZlY3RvcigpOworICAgICAgICAgICAgc2V0WzFdID0gbmV3IFJlc291cmNlSW50VmVjdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFNvdXJjZSA9IHNldFswXTsKKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFRhcmdldCA9IHNldFsxXTsKKyAgICAgICAgU3RyaW5nIHJlc05hbWUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNOQU1FKTsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsVFJBTlNMQVRFKTsKKyAgICAgICAgY3VycmVudFNvdXJjZS5uYW1lID0gY3VycmVudFRhcmdldC5uYW1lID0gcmVzTmFtZTsKKyAgICAgICAgY3VycmVudFNvdXJjZS50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgIGJvb2xlYW4gaXNGaXJzdCA9IHRydWU7CisgICAgICAgIGZvcihOb2RlIGNoaWxkID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IGNoaWxkICE9IG51bGw7IGNoaWxkID0gY2hpbGQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gY2hpbGQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gY2hpbGQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9IGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IGNoaWxkLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYodHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoVFJBTlNVTklUKSl7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlW10gbmV4dCA9IG5ldyBSZXNvdXJjZVsyXTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VUcmFuc1VuaXQoY2hpbGQsIG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZihpc0ZpcnN0PT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkb3duIGNhc3Qgc2hvdWxkIGJlIHNhZmUgLi4gaWYgbm90IHNvbWV0aGluZyBpcyB0ZXJyaWJseSB3cm9uZyEhCisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VJbnRWZWN0b3IpIGN1cnJlbnRTb3VyY2UpLmZpcnN0ID0gKFJlc291cmNlSW50KW5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VJbnRWZWN0b3IpIGN1cnJlbnRUYXJnZXQpLmZpcnN0ID0gKFJlc291cmNlSW50KSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gKChSZXNvdXJjZUludFZlY3RvcikgY3VycmVudFNvdXJjZSkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAoKFJlc291cmNlSW50VmVjdG9yKSBjdXJyZW50VGFyZ2V0KS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmV4dCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5leHQgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHBvaW50ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gY3VycmVudFNvdXJjZS5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5vdGUgPSAgY2hpbGQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9IG5vdGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBwYXJzZVRhYmxlKE5vZGUgbm9kZSwgUmVzb3VyY2VbXSBzZXQpeworICAgICAgICBpZihzZXRbMF09PW51bGwpeworICAgICAgICAgICAgc2V0WzBdID0gbmV3IFJlc291cmNlVGFibGUoKTsKKyAgICAgICAgICAgIHNldFsxXSA9IG5ldyBSZXNvdXJjZVRhYmxlKCk7CisgICAgICAgIH0KKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFNvdXJjZSA9IHNldFswXTsKKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFRhcmdldCA9IHNldFsxXTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyByZXNOYW1lID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTTkFNRSk7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLFRSQU5TTEFURSk7CisgICAgICAgIGlmKHJlc05hbWUhPW51bGwgJiYgY3VycmVudFNvdXJjZS5uYW1lPT1udWxsICYmIGN1cnJlbnRUYXJnZXQubmFtZT09bnVsbCl7CisgICAgICAgICAgICBjdXJyZW50U291cmNlLm5hbWUgPSBjdXJyZW50VGFyZ2V0Lm5hbWUgPSByZXNOYW1lOworICAgICAgICB9CisgICAgICAgIGN1cnJlbnRUYXJnZXQudHJhbnNsYXRlID0gY3VycmVudFNvdXJjZS50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGlzRmlyc3QgPSB0cnVlOworICAgICAgICBmb3IoTm9kZSBjaGlsZCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyBjaGlsZCAhPSBudWxsOyBjaGlsZCA9IGNoaWxkLmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IGNoaWxkLmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGNoaWxkLmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSBjaGlsZC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKEdST1VQUykpeworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVtdIG5leHQgPSBuZXcgUmVzb3VyY2VbMl07CisgICAgICAgICAgICAgICAgICAgIHBhcnNlR3JvdXAoY2hpbGQsIG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZihpc0ZpcnN0PT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkb3duIGNhc3Qgc2hvdWxkIGJlIHNhZmUgLi4gaWYgbm90IHNvbWV0aGluZyBpcyB0ZXJyaWJseSB3cm9uZyEhCisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFNvdXJjZSkuZmlyc3QgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRUYXJnZXQpLmZpcnN0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9ICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFNvdXJjZSkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRUYXJnZXQpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uZXh0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubmV4dCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIG5leHQgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSBjdXJyZW50U291cmNlLm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5uZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoVFJBTlNVTklUKSl7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlW10gbmV4dCA9IG5ldyBSZXNvdXJjZVsyXTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VUcmFuc1VuaXQoY2hpbGQsIG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZihpc0ZpcnN0PT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkb3duIGNhc3Qgc2hvdWxkIGJlIHNhZmUgLi4gaWYgbm90IHNvbWV0aGluZyBpcyB0ZXJyaWJseSB3cm9uZyEhCisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFNvdXJjZSkuZmlyc3QgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRUYXJnZXQpLmZpcnN0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9ICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFNvdXJjZSkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRUYXJnZXQpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uZXh0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubmV4dCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIG5leHQgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSBjdXJyZW50U291cmNlLm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5uZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbm90ZSA9ICBjaGlsZC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0gbm90ZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhCSU5VTklUKSl7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlW10gbmV4dCA9IG5ldyBSZXNvdXJjZVsyXTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VCaW5Vbml0KGNoaWxkLCBuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXNGaXJzdD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZG93biBjYXN0IHNob3VsZCBiZSBzYWZlIC4uIGlmIG5vdCBzb21ldGhpbmcgaXMgdGVycmlibHkgd3JvbmchIQorICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRTb3VyY2UpLmZpcnN0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50VGFyZ2V0KS5maXJzdCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRTb3VyY2UpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50VGFyZ2V0KS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmV4dCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5leHQgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHBvaW50ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gY3VycmVudFNvdXJjZS5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VHcm91cChOb2RlIG5vZGUsIFJlc291cmNlW10gc2V0KXsKKworICAgICAgICAvLyBmaWd1cmUgb3V0IHdoYXQga2luZCBvZiBncm91cCB0aGlzIGlzCisgICAgICAgIFN0cmluZyByZXNUeXBlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTVFlQRSk7CisgICAgICAgIGlmKHJlc1R5cGUuZXF1YWxzKEFSUkFZUykpeworICAgICAgICAgICAgcGFyc2VBcnJheShub2RlLCBzZXQpOworICAgICAgICB9ZWxzZSBpZiggcmVzVHlwZS5lcXVhbHMoVEFCTEUpKXsKKyAgICAgICAgICAgIHBhcnNlVGFibGUobm9kZSwgc2V0KTsKKyAgICAgICAgfWVsc2UgaWYoIHJlc1R5cGUuZXF1YWxzKElOVFZFQ1RPUikpeworICAgICAgICAgICAgcGFyc2VJbnRWZWN0b3Iobm9kZSwgc2V0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIHByaXZhdGUgdm9pZCB3cml0ZUxpbmUoT3V0cHV0U3RyZWFtIHdyaXRlciwgU3RyaW5nIGxpbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IGxpbmUuZ2V0Qnl0ZXMoQ0hBUlNFVCk7CisgICAgICAgICAgICB3cml0ZXIud3JpdGUoYnl0ZXMsIDAsIGJ5dGVzLmxlbmd0aCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVIZWFkZXIoT3V0cHV0U3RyZWFtIHdyaXRlciwgU3RyaW5nIGZpbGVOYW1lKXsKKyAgICAgICAgd3JpdGVCT00od3JpdGVyKTsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPW5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIiArIExJTkVTRVApOworICAgICAgICBidWZmZXIuYXBwZW5kKCIvLyAqIiArIExJTkVTRVApOworICAgICAgICBidWZmZXIuYXBwZW5kKCIvLyAqIFRvb2w6IGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlci5YTElGRjJJQ1VDb252ZXJ0ZXIuamF2YSIgKyBMSU5FU0VQKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLy8gKiBEYXRlICYgVGltZTogIiArIGMuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsgKGMuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArIGMuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgKyAiICIgKyBjLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKyBDT0xPTiArIGMuZ2V0KENhbGVuZGFyLk1JTlVURSkrIExJTkVTRVApOworICAgICAgICBidWZmZXIuYXBwZW5kKCIvLyAqIFNvdXJjZSBGaWxlOiAiICsgZmlsZU5hbWUgKyBMSU5FU0VQKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLy8gKiIgKyBMSU5FU0VQKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBidWZmZXIuYXBwZW5kKCIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiICsgTElORVNFUCk7CisgICAgICAgIHdyaXRlTGluZSh3cml0ZXIsIGJ1ZmZlci50b1N0cmluZygpKTsKKworICAgIH0KKyAgICAKKyAgICBwcml2YXRlICB2b2lkIHdyaXRlQk9NKE91dHB1dFN0cmVhbSBidWZmZXIpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IEJPTS5nZXRCeXRlcyhDSEFSU0VUKTsKKyAgICAgICAgICAgIGJ1ZmZlci53cml0ZShieXRlcywgMCwgYnl0ZXMubGVuZ3RoKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL21hbmlmZXN0LnhsaWZmLnN0dWIgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL21hbmlmZXN0LnhsaWZmLnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFmZjE4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbWFuaWZlc3QueGxpZmYuc3R1YgpAQCAtMCwwICsxLDE0IEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NsYXNzLVBhdGg6IGljdTRqLmphcgorTWFpbi1DbGFzczogY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbAorCitOYW1lOiBjb20vaWJtL2ljdS8KK1NwZWNpZmljYXRpb24tVGl0bGU6IFhMSUZGIHRvIElDVSBjb252ZXJzaW9uIHRvb2wKK1NwZWNpZmljYXRpb24tVmVyc2lvbjogMy40CitTcGVjaWZpY2F0aW9uLVZlbmRvcjogSUNVCitJbXBsZW1lbnRhdGlvbi1UaXRsZTogWExJRkYgdG8gSUNVIENvbnZlcnRlcgorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMy40LjAKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ6IGNvbS5pYm0KK0NvcHlyaWdodC1JbmZvOiBDb3B5cmlnaHQgKGMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitTZWFsZWQ6IGZhbHNlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL215TG9jYWxlRWxlbWVudHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbXlMb2NhbGVFbGVtZW50cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM3NGE0N2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL215TG9jYWxlRWxlbWVudHMuamF2YQpAQCAtMCwwICsxLDU3OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICoKKyAqIFRhYmxlIG9mIEphdmEgc3VwcGxpZWQgc3RhbmRhcmQgbG9jYWxlIGVsZW1lbnRzCisgKgorICogYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgamF2YSBMb2NhbGVUb29sIExvY2FsZUVsZW1lbnRzLmphdmEKKyAqCisgKiBEYXRlIENyZWF0ZWQ6IFdlZCBBdWcgMjEgMTU6NDc6NTcgIDE5OTYKKyAqCisgKiAgICAgTG9jYWxlIEVsZW1lbnRzIGFuZCBQYXR0ZXJuczogIGxhc3QgdXBkYXRlIDEwLzIzLzk2CisgKgorICoKKyAqLworCisvLyBXQVJOSU5HIDogdGhlIGZvcm1hdCBvZiB0aGlzIGZpbGUgd2lsbCBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSEKKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgbXlMb2NhbGVFbGVtZW50cyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIExpc3RSZXNvdXJjZUJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiTG9jYWxlU3RyaW5nIiwgImVuX1VTIiB9LCAvLyBsb2NhbGUgaWQgYmFzZWQgb24gaXNvIGNvZGVzCisgICAgICAgICAgICB7ICJMb2NhbGVJRCIsICIwNDA5IiB9LCAvLyBXaW5kb3dzIGlkCisgICAgICAgICAgICB7ICJTaG9ydExhbmd1YWdlIiwgImVuZyIgfSwgLy8gaXNvLTMgYWJicmV2IGxhbmcgbmFtZQorICAgICAgICAgICAgeyAiU2hvcnRDb3VudHJ5IiwgIlVTQSIgfSwgLy8gaXNvLTMgYWJicmV2IGNvdW50cnkgbmFtZQorICAgICAgICAgICAgeyAiTGFuZ3VhZ2VzIiwgLy8gbGFuZ3VhZ2UgbmFtZXMKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW11bXSB7CisgICAgICAgICAgICAgICAgICAgIHsgImFiIiwgIkFia2hhemlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYWEiLCAiQWZhciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYWYiLCAiQWZyaWthYW5zIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzcSIsICJBbGJhbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYW0iLCAiQW1oYXJpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYXIiLCAiQXJhYmljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJoeSIsICJBcm1lbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYXMiLCAiQXNzYW1lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImF5IiwgIkF5bWFyYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYXoiLCAiQXplcmJhaWphbmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJhIiwgIkJhc2hraXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImV1IiwgIkJhc3F1ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYm4iLCAiQmVuZ2FsaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZHoiLCAiQmh1dGFuaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYmgiLCAiQmloYXJpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiaSIsICJCaXNsYW1hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiciIsICJCcmV0b24iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJnIiwgIkJ1bGdhcmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibXkiLCAiQnVybWVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYmUiLCAiQnllbG9ydXNzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrbSIsICJDYW1ib2RpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImNhIiwgIkNhdGFsYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInpoIiwgIkNoaW5lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImNvIiwgIkNvcnNpY2FuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJociIsICJDcm9hdGlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiY3MiLCAiQ3plY2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImRhIiwgIkRhbmlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmwiLCAiRHV0Y2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImVuIiwgIkVuZ2xpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImVvIiwgIkVzcGVyYW50byIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZXQiLCAiRXN0b25pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImZvIiwgIkZhZXJvZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmaiIsICJGaWppIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmaSIsICJGaW5uaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmciIsICJGcmVuY2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImZ5IiwgIkZyaXNpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImdsIiwgIkdhbGljaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrYSIsICJHZW9yZ2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZGUiLCAiR2VybWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJlbCIsICJHcmVlayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia2wiLCAiR3JlZW5sYW5kaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImduIiwgIkd1YXJhbmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImd1IiwgIkd1amFyYXRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJoYSIsICJIYXVzYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaXciLCAiSGVicmV3IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJoaSIsICJIaW5kaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaHUiLCAiSHVuZ2FyaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpcyIsICJJY2VsYW5kaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImluIiwgIkluZG9uZXNpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImlhIiwgIkludGVybGluZ3VhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpZSIsICJJbnRlcmxpbmd1ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaWsiLCAiSW51cGlhayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZ2EiLCAiSXJpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIml0IiwgIkl0YWxpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImphIiwgIkphcGFuZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJqdyIsICJKYXZhbmVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia24iLCAiS2FubmFkYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia3MiLCAiS2FzaG1pcmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtrIiwgIkthemFraCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicnciLCAiS2lueWFyd2FuZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImt5IiwgIktpcmdoaXoiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInJuIiwgIktpcnVuZGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtvIiwgIktvcmVhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia3UiLCAiS3VyZGlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibG8iLCAiTGFvdGhpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImxhIiwgIkxhdGluIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJsdiIsICJMYXR2aWFuIChMZXR0aXNoKSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibG4iLCAiTGluZ2FsYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibHQiLCAiTGl0aHVhbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibWsiLCAiTWFjZWRvbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibWciLCAiTWFsYWdhc3kiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1zIiwgIk1hbGF5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtbCIsICJNYWxheWFsYW0iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm10IiwgIk1hbHRlc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1pIiwgIk1hb3JpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtciIsICJNYXJhdGhpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtbyIsICJNb2xkYXZpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1uIiwgIk1vbmdvbGlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmEiLCAiTmF1cnUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5lIiwgIk5lcGFsaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibm8iLCAiTm9yd2VnaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJvYyIsICJPY2NpdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJvciIsICJPcml5YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAib20iLCAiT3JvbW8gKEFmYW4pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJwcyIsICJQYXNodG8gKFB1c2h0bykiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImZhIiwgIlBlcnNpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInBsIiwgIlBvbGlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicHQiLCAiUG9ydHVndWVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicGEiLCAiUHVuamFiaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicXUiLCAiUXVlY2h1YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicm0iLCAiUmhhZXRvLVJvbWFuY2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInJvIiwgIlJvbWFuaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJydSIsICJSdXNzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzbSIsICJTYW1vYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNnIiwgIlNhbmdybyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2EiLCAiU2Fuc2tyaXQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImdkIiwgIlNjb3RzIEdhZWxpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3IiLCAiU2VyYmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2giLCAiU2VyYm8tQ3JvYXRpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInN0IiwgIlNlc290aG8iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRuIiwgIlNldHN3YW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzbiIsICJTaG9uYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2QiLCAiU2luZGhpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzaSIsICJTaW5naGFsZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzcyIsICJTaXN3YXRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzayIsICJTbG92YWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNsIiwgIlNsb3ZlbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic28iLCAiU29tYWxpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJlcyIsICJTcGFuaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzdSIsICJTdW5kYW5lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInN3IiwgIlN3YWhpbGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInN2IiwgIlN3ZWRpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRsIiwgIlRhZ2Fsb2ciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRnIiwgIlRhamlrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0YSIsICJUYW1pbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidHQiLCAiVGF0YXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRlIiwgIlRlbHVndSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGgiLCAiVGhhaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYm8iLCAiVGliZXRhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGkiLCAiVGlncmlueWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRvIiwgIlRvbmdhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0cyIsICJUc29uZ2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRyIiwgIlR1cmtpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRrIiwgIlR1cmttZW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInR3IiwgIlR3aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidWsiLCAiVWtyYWluaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ1ciIsICJVcmR1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ1eiIsICJVemJlayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidmkiLCAiVmlldG5hbWVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidm8iLCAiVm9sYXB1ayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiY3kiLCAiV2Vsc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIndvIiwgIldvbG9mIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ4aCIsICJYaG9zYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiamkiLCAiWWlkZGlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAieW8iLCAiWW9ydWJhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ6dSIsICJadWx1IiB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkNvdW50cmllcyIsIC8vIGNvdW50cnkgbmFtZXMKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW11bXSB7CisgICAgICAgICAgICAgICAgICAgIHsgIkFGIiwgIkFmZ2hhbmlzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBTCIsICJBbGJhbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJEWiIsICJBbGdlcmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBRCIsICJBbmRvcnJhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBTyIsICJBbmdvbGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFJIiwgIkFuZ3VpbGxhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBUiIsICJBcmdlbnRpbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFNIiwgIkFybWVuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFXIiwgIkFydWJhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBVSIsICJBdXN0cmFsaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFUIiwgIkF1c3RyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFaIiwgIkF6ZXJiYWlqYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJTIiwgIkJhaGFtYXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJIIiwgIkJhaHJhaW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJEIiwgIkJhbmdsYWRlc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJCIiwgIkJhcmJhZG9zIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCWSIsICJCZWxhcnVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCRSIsICJCZWxnaXVtIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCWiIsICJCZWxpemUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJKIiwgIkJlbmluIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCTSIsICJCZXJtdWRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCVCIsICJCaHV0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJPIiwgIkJvbGl2aWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJBIiwgIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJXIiwgIkJvdHN3YW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCUiIsICJCcmF6aWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJOIiwgIkJydW5laSBEYXJ1c3NhbGFtIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCRyIsICJCdWxnYXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkYiLCAiQnVya2luYSBGYXNvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCSSIsICJCdXJ1bmRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLSCIsICJDYW1ib2RpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ00iLCAiQ2FtZXJvb24iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNBIiwgIkNhbmFkYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ1YiLCAiQ2FwZSBWZXJkZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0YiLCAiQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJURCIsICJDaGFkIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDTCIsICJDaGlsZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ04iLCAiQ2hpbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNPIiwgIkNvbG9tYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLTSIsICJDb21vcm9zIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDRyIsICJDb25nbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ1IiLCAiQ29zdGEgUmljYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0kiLCAiQ290ZSBEJ2l2b2lyZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSFIiLCAiQ3JvYXRpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ1UiLCAiQ3ViYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ1kiLCAiQ3lwcnVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDWiIsICJDemVjaCBSZXB1YmxpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiREsiLCAiRGVubWFyayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiREoiLCAiRGppYm91dGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRNIiwgIkRvbWluaWNhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJETyIsICJEb21pbmljYW4gUmVwdWJsaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRQIiwgIkVhc3QgVGltb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVDIiwgIkVjdWFkb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVHIiwgIkVneXB0IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTViIsICJFbCBTYWx2YWRvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR1EiLCAiRXF1YXRvcmlhbCBHdWluZWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVSIiwgIkVyaXRyZWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVFIiwgIkVzdG9uaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVUIiwgIkV0aGlvcGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJGSiIsICJGaWppIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJGSSIsICJGaW5sYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJGUiIsICJGcmFuY2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdGIiwgIkZyZW5jaCBHdWlhbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBGIiwgIkZyZW5jaCBQb2x5bmVzaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRGIiwgIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR0EiLCAiR2Fib24iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdNIiwgIkdhbWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR0UiLCAiR2VvcmdpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiREUiLCAiR2VybWFueSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR0giLCAiR2hhbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdSIiwgIkdyZWVjZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR1AiLCAiR3VhZGVsb3VwZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR1QiLCAiR3VhdGVtYWxhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHTiIsICJHdWluZWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdXIiwgIkd1aW5lYS1CaXNzYXUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdZIiwgIkd1eWFuYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSFQiLCAiSGFpdGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkhOIiwgIkhvbmR1cmFzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJISyIsICJIb25nIEtvbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkhVIiwgIkh1bmdhcnkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklTIiwgIkljZWxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklOIiwgIkluZGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJRCIsICJJbmRvbmVzaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklSIiwgIklyYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklRIiwgIklyYXEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklFIiwgIklyZWxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklMIiwgIklzcmFlbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSVQiLCAiSXRhbHkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkpNIiwgIkphbWFpY2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkpQIiwgIkphcGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJKTyIsICJKb3JkYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktaIiwgIkthemFraHN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktFIiwgIktlbnlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLSSIsICJLaXJpYmF0aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS1AiLCAiTm9ydGggS29yZWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktSIiwgIlNvdXRoIEtvcmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLVyIsICJLdXdhaXQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktHIiwgIkt5cmd5enN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxBIiwgIkxhb3MiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxWIiwgIkxhdHZpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTEIiLCAiTGViYW5vbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTFMiLCAiTGVzb3RobyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTFIiLCAiTGliZXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTFkiLCAiTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTEkiLCAiTGllY2h0ZW5zdGVpbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTFQiLCAiTGl0aHVhbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMVSIsICJMdXhlbWJvdXJnIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNSyIsICJNYWNlZG9uaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1HIiwgIk1hZGFnYXNjYXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1ZIiwgIk1hbGF5c2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNTCIsICJNYWxpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNVCIsICJNYWx0YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVEiLCAiTWFydGluaXF1ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVIiLCAiTWF1cml0YW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVUiLCAiTWF1cml0aXVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJZVCIsICJNYXlvdHRlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNWCIsICJNZXhpY28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkZNIiwgIk1pY3JvbmVzaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1EIiwgIk1vbGRvdmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1DIiwgIk1vbmFjbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTU4iLCAiTW9uZ29saWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1TIiwgIk1vbnRzZXJyYXQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1BIiwgIk1vcm9jY28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1aIiwgIk1vemFtYmlxdWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1NIiwgIk15YW5tYXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5BIiwgIk5hbWliaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5QIiwgIk5lcGFsIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOTCIsICJOZXRoZXJsYW5kcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQU4iLCAiTmV0aGVybGFuZHMgQW50aWxsZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5DIiwgIk5ldyBDYWxlZG9uaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5aIiwgIk5ldyBaZWFsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOSSIsICJOaWNhcmFndWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5FIiwgIk5pZ2VyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJORyIsICJOaWdlcmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOVSIsICJOaXVlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOTyIsICJOb3J3YXkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk9NIiwgIk9tYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBLIiwgIlBha2lzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQQSIsICJQYW5hbWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBHIiwgIlBhcHVhIE5ldyBHdWluZWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBZIiwgIlBhcmFndWF5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQRSIsICJQZXJ1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQSCIsICJQaGlsaXBwaW5lcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEwiLCAiUG9sYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQVCIsICJQb3J0dWdhbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUFIiLCAiUHVlcnRvIFJpY28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlFBIiwgIlFhdGFyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJSTyIsICJSb21hbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJSVSIsICJSdXNzaWFuIEZlZGVyYXRpb24iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlJXIiwgIlJ3YW5kYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0EiLCAiU2F1ZGkgQXJhYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTTiIsICJTZW5lZ2FsIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTUCIsICJTZXJiaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNDIiwgIlNleWNoZWxsZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNMIiwgIlNpZXJyYSBMZW9uZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0ciLCAiU2luZ2Fwb3JlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTSyIsICJTbG92YWtpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0kiLCAiU2xvdmVuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNPIiwgIlNvbWFsaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlpBIiwgIlNvdXRoIEFmcmljYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRVMiLCAiU3BhaW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxLIiwgIlNyaSBMYW5rYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0QiLCAiU3VkYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNSIiwgIlN1cmluYW1lIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTWiIsICJTd2F6aWxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNFIiwgIlN3ZWRlbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0giLCAiU3dpdHplcmxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNZIiwgIlN5cmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUVyIsICJUYWl3YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRKIiwgIlRhamlraXN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRaIiwgIlRhbnphbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUSCIsICJUaGFpbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEciLCAiVG9nbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEsiLCAiVG9rZWxhdSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVE8iLCAiVG9uZ2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRUIiwgIlRyaW5pZGFkIGFuZCBUb2JhZ28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlROIiwgIlR1bmlzaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRSIiwgIlR1cmtleSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVE0iLCAiVHVya21lbmlzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJVRyIsICJVZ2FuZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVBIiwgIlVrcmFpbmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFFIiwgIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHQiIsICJVbml0ZWQgS2luZ2RvbSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVVMiLCAiVW5pdGVkIFN0YXRlcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVVkiLCAiVXJ1Z3VheSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVVoiLCAiVXpiZWtpc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVlUiLCAiVmFudWF0dSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVkEiLCAiVmF0aWNhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVkUiLCAiVmVuZXp1ZWxhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJWTiIsICJWaWV0IE5hbSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVkciLCAiQnJpdGlzaCBWaXJnaW4gSXNsYW5kcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVkkiLCAiVS5TLiBWaXJnaW4gSXNsYW5kcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRUgiLCAiV2VzdGVybiBTYWhhcmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIllFIiwgIlllbWVuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJZVSIsICJZdWdvc2xhdmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJaUiIsICJaYWlyZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWk0iLCAiWmFtYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJaVyIsICJaaW1iYWJ3ZSIgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICIlJUVVUk8iLCAiRXVybyIgfSwgLy8gRXVybyB2YXJpYW50IGRpc3BsYXkgbmFtZQorICAgICAgICAgICAgeyAiTG9jYWxlTmFtZVBhdHRlcm5zIiwKKyAgICAgICAgICAgICAgICAvKiBGb3JtYXRzIGZvciB0aGUgZGlzcGxheSBuYW1lIG9mIGEgbG9jYWxlLCBmb3IgYSBsaXN0IG9mCisgICAgICAgICAgICAgICAgICogaXRlbXMsIGFuZCBmb3IgY29tcG9zaW5nIHR3byBpdGVtcyBpbiBhIGxpc3QgaW50byBvbmUgaXRlbS4KKyAgICAgICAgICAgICAgICAgKiBUaGUgbGlzdCBwYXR0ZXJucyBhcmUgdXNlZCBpbiB0aGUgdmFyaWFudCBuYW1lIGFuZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgKiBmdWxsIGRpc3BsYXkgbmFtZS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgICAiezAsY2hvaWNlLDAjfDEjezF9fDIjezF9ICh7Mn0pfSIsIC8vIERpc3BsYXkgbmFtZQorICAgICAgICAgICAgICAgICAgICAiezAsY2hvaWNlLDAjfDEjezF9fDIjezF9LHsyfXwzI3sxfSx7Mn0sezN9fSIsIC8vIExpc3QKKyAgICAgICAgICAgICAgICAgICAgInswfSx7MX0iIC8vIExpc3QgY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiTW9udGhOYW1lcyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiSmFudWFyeSIsIC8vIGphbnVhcnkKKyAgICAgICAgICAgICAgICAgICAgIkZlYnJ1YXJ5IiwgLy8gZmVicnVhcnkKKyAgICAgICAgICAgICAgICAgICAgIk1hcmNoIiwgLy8gbWFyY2gKKyAgICAgICAgICAgICAgICAgICAgIkFwcmlsIiwgLy8gYXByaWwKKyAgICAgICAgICAgICAgICAgICAgIk1heSIsIC8vIG1heQorICAgICAgICAgICAgICAgICAgICAiSnVuZSIsIC8vIGp1bmUKKyAgICAgICAgICAgICAgICAgICAgIkp1bHkiLCAvLyBqdWx5CisgICAgICAgICAgICAgICAgICAgICJBdWd1c3QiLCAvLyBhdWd1c3QKKyAgICAgICAgICAgICAgICAgICAgIlNlcHRlbWJlciIsIC8vIHNlcHRlbWJlcgorICAgICAgICAgICAgICAgICAgICAiT2N0b2JlciIsIC8vIG9jdG9iZXIKKyAgICAgICAgICAgICAgICAgICAgIk5vdmVtYmVyIiwgLy8gbm92ZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIkRlY2VtYmVyIiwgLy8gZGVjZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIiIgLy8gbW9udGggMTMgaWYgYXBwbGljYWJsZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJNb250aEFiYnJldmlhdGlvbnMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIkphbiIsIC8vIGFiYiBqYW51YXJ5CisgICAgICAgICAgICAgICAgICAgICJGZWIiLCAvLyBhYmIgZmVicnVhcnkKKyAgICAgICAgICAgICAgICAgICAgIk1hciIsIC8vIGFiYiBtYXJjaAorICAgICAgICAgICAgICAgICAgICAiQXByIiwgLy8gYWJiIGFwcmlsCisgICAgICAgICAgICAgICAgICAgICJNYXkiLCAvLyBhYmIgbWF5CisgICAgICAgICAgICAgICAgICAgICJKdW4iLCAvLyBhYmIganVuZQorICAgICAgICAgICAgICAgICAgICAiSnVsIiwgLy8gYWJiIGp1bHkKKyAgICAgICAgICAgICAgICAgICAgIkF1ZyIsIC8vIGFiYiBhdWd1c3QKKyAgICAgICAgICAgICAgICAgICAgIlNlcCIsIC8vIGFiYiBzZXB0ZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIk9jdCIsIC8vIGFiYiBvY3RvYmVyCisgICAgICAgICAgICAgICAgICAgICJOb3YiLCAvLyBhYmIgbm92ZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIkRlYyIsIC8vIGFiYiBkZWNlbWJlcgorICAgICAgICAgICAgICAgICAgICAiIiAvLyBhYmIgbW9udGggMTMgaWYgYXBwbGljYWJsZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJEYXlOYW1lcyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiU3VuZGF5IiwgLy8gU3VuZGF5CisgICAgICAgICAgICAgICAgICAgICJNb25kYXkiLCAvLyBNb25kYXkKKyAgICAgICAgICAgICAgICAgICAgIlR1ZXNkYXkiLCAvLyBUdWVzZGF5CisgICAgICAgICAgICAgICAgICAgICJXZWRuZXNkYXkiLCAvLyBXZWRuZXNkYXkKKyAgICAgICAgICAgICAgICAgICAgIlRodXJzZGF5IiwgLy8gVGh1cnNkYXkKKyAgICAgICAgICAgICAgICAgICAgIkZyaWRheSIsIC8vIEZyaWRheQorICAgICAgICAgICAgICAgICAgICAiU2F0dXJkYXkiIC8vIFNhdHVyZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkRheUFiYnJldmlhdGlvbnMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIlN1biIsIC8vIGFiYiBTdW5kYXkKKyAgICAgICAgICAgICAgICAgICAgIk1vbiIsIC8vIGFiYiBNb25kYXkKKyAgICAgICAgICAgICAgICAgICAgIlR1ZSIsIC8vIGFiYiBUdWVzZGF5CisgICAgICAgICAgICAgICAgICAgICJXZWQiLCAvLyBhYmIgV2VkbmVzZGF5CisgICAgICAgICAgICAgICAgICAgICJUaHUiLCAvLyBhYmIgVGh1cnNkYXkKKyAgICAgICAgICAgICAgICAgICAgIkZyaSIsIC8vIGFiYiBGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIlNhdCIgLy8gYWJiIFNhdHVyZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkFtUG1NYXJrZXJzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJBTSIsIC8vIGFtIG1hcmtlcgorICAgICAgICAgICAgICAgICAgICAiUE0iIC8vIHBtIG1hcmtlcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJFcmFzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgLy8gZXJhIHN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgIkJDIiwgCisgICAgICAgICAgICAgICAgICAgICJBRCIgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIk51bWJlclBhdHRlcm5zIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICIjLCMjMC4jIyM7LSMsIyMwLiMjIyIsIC8vIGRlY2ltYWwgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiJCMsIyMwLjAwOygkIywjIzAuMDApIiwgLy8gY3VycmVuY3kgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiIywjIzAlIiAvLyBwZXJjZW50IHBhdHRlcm4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiTnVtYmVyRWxlbWVudHMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIi4iLCAvLyBkZWNpbWFsIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAiLCIsIC8vIGdyb3VwICh0aG91c2FuZHMpIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAiOyIsIC8vIGxpc3Qgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICIlIiwgLy8gcGVyY2VudCBzaWduCisgICAgICAgICAgICAgICAgICAgICIwIiwgLy8gbmF0aXZlIDAgZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgIiMiLCAvLyBwYXR0ZXJuIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICItIiwgLy8gbWludXMgc2lnbgorICAgICAgICAgICAgICAgICAgICAiRSIsIC8vIGV4cG9uZW50aWFsCisgICAgICAgICAgICAgICAgICAgICJcdTIwMzAiLCAvLyBwZXIgbWlsbGUKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxZSIsIC8vIGluZmluaXR5CisgICAgICAgICAgICAgICAgICAgICJcdWZmZmQiIC8vIE5hTgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJDdXJyZW5jeUVsZW1lbnRzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICIkIiwgLy8gbG9jYWwgY3VycmVuY3kgc3ltYm9sCisgICAgICAgICAgICAgICAgICAgICJVU0QiLCAvLyBpbnRsIGN1cnJlbmN5IHN5bWJvbAorICAgICAgICAgICAgICAgICAgICAiLiIgLy8gbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiRGF0ZVRpbWVQYXR0ZXJucyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiaDptbTpzcyAnbycnJydjbG9jaycgYSB6IiwgLy8gZnVsbCB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgImg6bW06c3MgYSB6IiwgLy8gbG9uZyB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgImg6bW06c3MgYSIsIC8vIG1lZGl1bSB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgImg6bW0gYSIsIC8vIHNob3J0IHRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiRUVFRSwgTU1NTSBkLCB5eXl5IiwgLy8gZnVsbCBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIk1NTU0gZCwgeXl5eSIsIC8vIGxvbmcgZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJkZC1NTU0teXkiLCAvLyBtZWRpdW0gZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJNL2QveXkiLCAvLyBzaG9ydCBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgInsxfSB7MH0iIC8vIGRhdGUtdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkRhdGVUaW1lRWxlbWVudHMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIjEiLCAvLyBmaXJzdCBkYXkgb2Ygd2VlaworICAgICAgICAgICAgICAgICAgICAiMSIgLy8gbWluIGRheXMgaW4gZmlyc3Qgd2VlaworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJjb2xsYXRpb25zIixuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVmVyc2lvbiIsIjEuMCJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJPdmVyaWRlIiwiZmFsc2UifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiU2VxdWVuY2UiLCIifQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiTWVhc3VyZW1lbnQiICwiIn0sCisgICAgICAgICAgICB7ICJDb3VudHJ5TnVtYmVyIiAsICIifSwKKyAgICAgICAgICAgIHsgIkNvdW50cnlJU0JOTnVtYmVyIiAsICIifSwKKyAgICAgICAgICAgIHsgIkxhbmd1YWdlTGlicmFyeVVzZSIgLCAiIn0sCisgICAgICAgICAgICB7ICJQYXBlclNpemUiLCBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkhlaWdodCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiV2lkdGgiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlVuaXRzIiwgIiJ9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgIAorICAgICAgICAgICAgeyAiTWVzc2FnZXMiICwgbmV3IFN0cmluZ1tdW10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Illlc0V4cHJlc3Npb24iLCIifSwgLyogeWVzIGV4cHJlc3Npb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJOb0V4cHJlc3Npb24iLCIifSwgIC8qIG5vIGV4cHJlc3Npb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJZZXNTdHIiLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTm9TdHIiLCAiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiQWRkcmVzc0Zvcm1hdCIsIG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiUG9zdGFsRm9ybWF0IiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIHsiTmFtZUZvcm1hdCIsIG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ik5hbWVQYXR0ZXJuIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJHZW5lcmFsU2FsdXRhaW9uIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiU2hvcnRTYWx1dGF0aW9uTXIiLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJTaG9ydFNhbHV0YXRpb25NaXNzIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJTaG9ydFNhbHV0YXRpb25NcnMiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkxvbmdTYWx1dGF0aW9uTXIiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkxvbmdTYWx1dGF0aW9uTWlzcyIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTG9uZ1NhbHV0YXRpb25NcnMiLCIifQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIAorICAgICAgICAgICAgeyAiSWRlbnRpZmljYXRpb24iLCBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJUaXRsZSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlNvdXJjZSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkFkZHJlc3MiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJDb250YWN0IiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiRW1haWwiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJUZWxlcGhvbmUiLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiRmF4IiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ikxhbmd1YWdlIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVGVycml0b3J5IiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiQXVkaWVuY2UiLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiQXBwbGljYXRpb24iLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiQWJicmV2aWF0aW9uIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlJldmlzaW9uIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkRhdGUiLCIifQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiVGVsZXBob25lRm9ybWF0IiwgbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiSW50ZXJuYXRpb25hbEZvcm1hdCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkRvbWVzdGljRm9ybWF0IiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiSW50ZXJuYXRpb25hbERpYWxDb2RlIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiSW50ZXJuYXRpb25hbFByZWZpeCIsIiJ9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgIAorICAgICAgICB9OworICAgIH0KK30KKyAgICAgICAgICAgIAorICAgICAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL0J1aWxkRGljdGlvbmFyeUZpbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL0J1aWxkRGljdGlvbmFyeUZpbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZjYzMTY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvQnVpbGREaWN0aW9uYXJ5RmlsZS5qYXZhCkBAIC0wLDAgKzEsODcwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5yYmJpOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Db21wYWN0Qnl0ZUFycmF5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK3B1YmxpYyBjbGFzcyBCdWlsZERpY3Rpb25hcnlGaWxlIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKQorICAgICAgICAgICAgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBhcmdzWzBdOworICAgICAgICBTdHJpbmcgZW5jb2RpbmcgPSAiIjsKKyAgICAgICAgU3RyaW5nIG91dHB1dEZpbGUgPSAiIjsKKyAgICAgICAgU3RyaW5nIGxpc3RpbmdGaWxlID0gIiI7CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDIpCisgICAgICAgICAgICBlbmNvZGluZyA9IGFyZ3NbMV07CisKKyAgICAgICAgaWYoYXJncy5sZW5ndGggPj0gMykKKyAgICAgICAgICAgIG91dHB1dEZpbGUgPSBhcmdzWzJdOworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSA0KQorICAgICAgICAgICAgbGlzdGluZ0ZpbGUgPSBhcmdzWzNdOworCisgICAgICAgIEJ1aWxkRGljdGlvbmFyeUZpbGUgZGljdGlvbmFyeSA9IG5ldyBCdWlsZERpY3Rpb25hcnlGaWxlKCk7CisgICAgICAgIGRpY3Rpb25hcnkuYnVpbGQoZmlsZW5hbWUsIGVuY29kaW5nKTsKKworICAgICAgICBEYXRhT3V0cHV0U3RyZWFtIG91dCA9IG51bGw7CisgICAgICAgIGlmIChvdXRwdXRGaWxlLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIG91dCA9IG5ldyBEYXRhT3V0cHV0U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dHB1dEZpbGUpKTsKKyAgICAgICAgICAgIGRpY3Rpb25hcnkud3JpdGVEaWN0aW9uYXJ5RmlsZShvdXQpOworICAgICAgICB9CisKKyAgICAgICAgUHJpbnRXcml0ZXIgbGlzdGluZyA9IG51bGw7CisgICAgICAgIGlmIChsaXN0aW5nRmlsZS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBsaXN0aW5nID0gbmV3IFByaW50V3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIobmV3IEZpbGVPdXRwdXRTdHJlYW0obGlzdGluZ0ZpbGUpLCAiVW5pY29kZUxpdHRsZSIpKTsKKyAgICAgICAgICAgIGRpY3Rpb25hcnkucHJpbnRXb3JkTGlzdCgiIiwgMCwgbGlzdGluZyk7CisgICAgICAgICAgICBsaXN0aW5nLmNsb3NlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgQnVpbGREaWN0aW9uYXJ5RmlsZSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBidWlsZChTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBlbmNvZGluZykKKyAgICAgICAgICAgIHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpbGUgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGVuYW1lKTsKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaW47CisgICAgICAgIGlmIChlbmNvZGluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgaW4gPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlsZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpbGUsIGVuY29kaW5nKTsKKworICAgICAgICBidWlsZENvbHVtbk1hcChpbik7CisKKyAgICAgICAgZmlsZSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZW5hbWUpOworICAgICAgICBpZiAoZW5jb2RpbmcubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgICAgIGluID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpbGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbiA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaWxlLCBlbmNvZGluZyk7CisKKyAgICAgICAgYnVpbGRTdGF0ZVRhYmxlKGluKTsKKy8vcHJpbnRUYWJsZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGJ1aWxkQ29sdW1uTWFwKElucHV0U3RyZWFtUmVhZGVyIGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworU3lzdGVtLm91dC5wcmludGxuKCJCdWlsZGluZyBjb2x1bW4gbWFwLi4uIik7CisgICAgICAgIFVuaWNvZGVTZXQgY2hhcnNJbkZpbGUgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBpbnQgYyA9IGluLnJlYWQoKTsKK2ludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgd2hpbGUgKGMgPj0gMCkgeworKyt0b3RhbENoYXJzOyBpZiAodG90YWxDaGFycyA+IDAgJiYgdG90YWxDaGFycyAlIDUwMDAgPT0gMCkgU3lzdGVtLm91dC5wcmludGxuKCJSZWFkICIgKyB0b3RhbENoYXJzICsgIiBjaGFyYWN0ZXJzLi4uIik7CisgICAgICAgICAgICBpZiAoYyA+ICcgJykKKyAgICAgICAgICAgICAgICBjaGFyc0luRmlsZS5hZGQoKGNoYXIpYyk7CisgICAgICAgICAgICBjID0gaW4ucmVhZCgpOworICAgICAgICB9CisvLyAgICAgICAgVGVzdC5kZWJ1Z1ByaW50bG4oY2hhcnNJbkZpbGUudG9TdHJpbmcoKSk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXBSZXZlcnNlTWFwID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB0ZW1wUmV2ZXJzZU1hcC5hcHBlbmQoJyAnKTsKKworICAgICAgICBjb2x1bW5NYXAgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgpOworICAgICAgICBpbnQgbiA9IGNoYXJzSW5GaWxlLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgYnl0ZSBwID0gMTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgY2hhciBzdGFydCA9IChjaGFyKSBjaGFyc0luRmlsZS5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgY2hhciBlbmQgPSAoY2hhcikgY2hhcnNJbkZpbGUuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSBzdGFydDsgY2ggPD0gZW5kOyBjaCsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbHVtbk1hcC5lbGVtZW50QXQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoKSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb2x1bW5NYXAuc2V0RWxlbWVudEF0KENoYXJhY3Rlci50b1VwcGVyQ2FzZShjaCksIENoYXJhY3Rlci50b1VwcGVyQ2FzZShjaCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCk7CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk1hcC5zZXRFbGVtZW50QXQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoKSwgQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKTsKKyAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB0ZW1wUmV2ZXJzZU1hcC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorLy9TeXN0ZW0ub3V0LnByaW50bG4oIkNvbXBhY3RpbmcuLi4iKTsKKyAgICAgICAgY29sdW1uTWFwLmNvbXBhY3QoKTsKKworLy9TeXN0ZW0ub3V0LnByaW50bG4odGVtcFJldmVyc2VNYXAudG9TdHJpbmcoKSk7CisgICAgICAgIHJldmVyc2VDb2x1bW5NYXAgPSBuZXcgY2hhcltwXTsKKyAgICAgICAgVXRpbGl0eS5nZXRDaGFycyh0ZW1wUmV2ZXJzZU1hcCwgMCwgcCwgcmV2ZXJzZUNvbHVtbk1hcCwgMCk7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0b3RhbCBjb2x1bW5zID0gIiArIHApOworICAgICAgICBudW1Db2xzID0gcDsKKyAgICAgICAgbnVtQ29sR3JvdXBzID0gKG51bUNvbHMgPj4gNSkgKyAxOworCisvKgorc2hvcnRbXSBpbmRleCA9IGNvbHVtbk1hcC5nZXRJbmRleEFycmF5KCk7CitTeXN0ZW0ub3V0LnByaW50bG4oIkluZGV4OiIpOworZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleC5sZW5ndGg7IGkrKykgeworaWYgKGkgJSAxNiA9PSAwKSB7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK1N5c3RlbS5vdXQucHJpbnQoIiAgICAiICsgSW50ZWdlci50b0hleFN0cmluZyhpICogMTI4KSArICI6Iik7Cit9CitTeXN0ZW0ub3V0LnByaW50KCJcdCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGluZGV4W2ldKSk7Cit9CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK2J5dGVbXSBkYXRhID0gY29sdW1uTWFwLmdldFN0cmluZ0FycmF5KCk7CitTeXN0ZW0ub3V0LnByaW50KCJWYWx1ZXM6Iik7Citmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKK2lmIChpICUgMTYgPT0gMCkgeworU3lzdGVtLm91dC5wcmludGxuKCk7CitTeXN0ZW0ub3V0LnByaW50KCIgICAgIiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiOiIpOworfQoraWYgKGRhdGFbaV0gPT0gMCkKK1N5c3RlbS5vdXQucHJpbnQoIlx0LiIpOworZWxzZQorU3lzdGVtLm91dC5wcmludCgiXHQiICsgSW50ZWdlci50b1N0cmluZyhkYXRhW2ldKSk7Cit9CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyovCisgICAgfQorCisgICAgcHVibGljIHZvaWQgYnVpbGRTdGF0ZVRhYmxlKElucHV0U3RyZWFtUmVhZGVyIGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBWZWN0b3IgdGVtcFRhYmxlID0gbmV3IFZlY3RvcigpOworICAgICAgICB0ZW1wVGFibGUuYWRkRWxlbWVudChuZXcgaW50W251bUNvbHMgKyAxXSk7CisgICAgICAgIGludCBzdGF0ZSA9IDA7CisKKyAgICAgICAgaW50IGMgPSBpbi5yZWFkKCk7CisgICAgICAgIGludFtdIHJvdyA9IG51bGw7CisgICAgICAgIGludCBjaGFyc0luV29yZCA9IDA7CisgICAgICAgIHdoaWxlIChjID49IDApIHsKKyAgICAgICAgICAgIGNoYXJzSW5Xb3JkKys7CisgICAgICAgICAgICBzaG9ydCBjb2x1bW4gPSBjb2x1bW5NYXAuZWxlbWVudEF0KChjaGFyKWMpOworCisgICAgICAgICAgICByb3cgPSAoaW50W10pKHRlbXBUYWJsZS5lbGVtZW50QXQoc3RhdGUpKTsKKyAgICAgICAgICAgIGlmIChjb2x1bW4gIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChyb3dbY29sdW1uXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJvd1tjb2x1bW5dID0gdGVtcFRhYmxlLnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgKytyb3dbbnVtQ29sc107CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKHRlbXBUYWJsZS5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICB0ZW1wVGFibGUuYWRkRWxlbWVudChuZXcgaW50W251bUNvbHMgKyAxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSByb3dbY29sdW1uXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAocm93WzBdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHJvd1swXSA9IC0xOworICAgICAgICAgICAgICAgICAgICArK3Jvd1tudW1Db2xzXTsKKyAgICAgICAgICAgICAgICAgICAgdW5pcXVlV29yZHMrKzsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxVbmlxdWVXb3JkQ2hhcnMgKz0gY2hhcnNJbldvcmQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRvdGFsV29yZHMrKzsKK2lmICh0b3RhbFdvcmRzICUgNTAwMCA9PSAwKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWQgIiArIHRvdGFsV29yZHMgKyAiIHdvcmRzLCAiICsgdGVtcFRhYmxlLnNpemUoKSArICIgcm93cy4uLiIpOworICAgICAgICAgICAgICAgIGNoYXJzSW5Xb3JkID0gMDsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjID0gaW4ucmVhZCgpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0ZSAhPSAwKSB7CisgICAgICAgICAgICByb3cgPSAoaW50W10pKHRlbXBUYWJsZS5lbGVtZW50QXQoc3RhdGUpKTsKKyAgICAgICAgICAgIGlmIChyb3dbMF0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByb3dbMF0gPSAtMTsKKyAgICAgICAgICAgICAgICB1bmlxdWVXb3JkcysrOworICAgICAgICAgICAgICAgIHRvdGFsVW5pcXVlV29yZENoYXJzICs9IGNoYXJzSW5Xb3JkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdG90YWxXb3JkcysrOworICAgICAgICB9CisKKyAgICAgICAgY29tcHJlc3ModGVtcFRhYmxlKTsKKworICAgICAgICB0YWJsZSA9IG5ldyBzaG9ydFtudW1Db2xzICogdGVtcFRhYmxlLnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICByb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgIHRhYmxlW2kgKiBudW1Db2xzICsgal0gPSAoc2hvcnQpcm93W2pdOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNvbXByZXNzKFZlY3RvciB0ZW1wVGFibGUpIHsKK1N5c3RlbS5vdXQucHJpbnRsbigiQmVmb3JlIGNvbXByZXNzaW9uOiIpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiByb3dzID0gIiArIHRlbXBUYWJsZS5zaXplKCkpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiBjb2x1bW5zID0gIiArIG51bUNvbHMpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiBjZWxscyA9ICIgKyB0ZW1wVGFibGUuc2l6ZSgpICogbnVtQ29scyk7CisgICAgICAgIGRlbGV0ZUR1cGxpY2F0ZVJvd3ModGVtcFRhYmxlKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiQWZ0ZXIgcmVtb3ZpbmcgZHVwbGljYXRlIHJvd3M6Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIHJvd3MgPSAiICsgdGVtcFRhYmxlLnNpemUoKSk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNvbHVtbnMgPSAiICsgbnVtQ29scyk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNlbGxzID0gIiArIHRlbXBUYWJsZS5zaXplKCkgKiBudW1Db2xzKTsKKyAgICAgICAgc3RhY2tSb3dzKHRlbXBUYWJsZSk7CitpZiAodGVtcFRhYmxlLnNpemUoKSA+IDMyNzY3KSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUb28gbWFueSByb3dzIGluIHRhYmxlISIpOworU3lzdGVtLm91dC5wcmludGxuKCJBZnRlciBkb3VibGluZyB1cCBvbiByb3dzOiIpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiByb3dzID0gIiArIHRlbXBUYWJsZS5zaXplKCkpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiBjb2x1bW5zID0gIiArIG51bUNvbHMpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiBjZWxscyA9ICIgKyB0ZW1wVGFibGUuc2l6ZSgpICogbnVtQ29scyk7CisgICAgfQorCisvKgorZXhwZXJpbWVudGFsLi4uCisgICAgcHJpdmF0ZSB2b2lkIGRlbGV0ZUR1cGxpY2F0ZVJvd3MoVmVjdG9yIHRlbXBUYWJsZSkgeworICAgICAgICBpbnRbXSByb3dOdW1NYXAgPSBuZXcgaW50W3RlbXBUYWJsZS5zaXplKCldOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IGk7CisKKyAgICAgICAgaW50IG5leHRDbGFzcyA9IG51bUNvbHM7CisgICAgICAgIGludCBjdXJyZW50Q2xhc3M7CisgICAgICAgIGludCBsYXN0Q2xhc3M7CisgICAgICAgIGJvb2xlYW4gc3BsaXQ7CisgICAgICAgIGludFtdIHJvdzEsIHJvdzIsIHRlbXBSb3c7CisgICAgICAgIGludCB0ZW1wQ2F0OworCisgICAgICAgIGRvIHsKK1N5c3RlbS5vdXQucHJpbnRsbigiTWFraW5nIGEgcGFzcyAoIiArIG5leHRDbGFzcyArICIgY2xhc3NlcykuLi4iKTsKKyAgICAgICAgICAgIGN1cnJlbnRDbGFzcyA9IDA7CisgICAgICAgICAgICBsYXN0Q2xhc3MgPSBuZXh0Q2xhc3M7CisgICAgICAgICAgICB3aGlsZSAoY3VycmVudENsYXNzIDwgbmV4dENsYXNzKSB7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgIGN1cnJlbnRDbGFzcyA9ICIgKyBjdXJyZW50Q2xhc3MpOworICAgICAgICAgICAgICAgIHNwbGl0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcm93MSA9IHJvdzIgPSBudWxsOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBSb3dbbnVtQ29sc10gPT0gY3VycmVudENsYXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm93MSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93MSA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93MiA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocm93MVtqXSA9PSAwKSAhPSAocm93MltqXSA9PSAwKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocm93MVtqXSA9PSAtMSkgIT0gKHJvdzJbal0gPT0gLTEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cyW251bUNvbHNdID0gbmV4dENsYXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocm93MVtqXSAhPSAwICYmIHJvdzJbal0gIT0gMCAmJiByb3cxW2pdICE9IC0xCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiByb3cyW2pdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQocm93MVtqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wQ2F0ID0gdGVtcFJvd1tudW1Db2xzXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChyb3cyW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wQ2F0ICE9IHRlbXBSb3dbbnVtQ29sc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cyW251bUNvbHNdID0gbmV4dENsYXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwbGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3BsaXQpCisgICAgICAgICAgICAgICAgICAgICsrbmV4dENsYXNzOworICAgICAgICAgICAgICAgICsrY3VycmVudENsYXNzOworLy9TeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAobGFzdENsYXNzICE9IG5leHRDbGFzcyk7CisKKyAgICAgICAgaW50W10gcmVwcmVzZW50YXRpdmVzID0gbmV3IGludFtuZXh0Q2xhc3NdOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHRlbXBUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgdGVtcFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKHJlcHJlc2VudGF0aXZlc1t0ZW1wUm93W251bUNvbHNdXSA9PSAwKQorICAgICAgICAgICAgICAgIHJlcHJlc2VudGF0aXZlc1t0ZW1wUm93W251bUNvbHNdXSA9IGk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcm93TnVtTWFwW2ldID0gcmVwcmVzZW50YXRpdmVzW3RlbXBSb3dbbnVtQ29sc11dOworICAgICAgICB9CitTeXN0ZW0ub3V0LnByaW50bG4oIlJlbnVtYmVyaW5nLi4uIik7CisKKyAgICAgICAgLy8gcmVudW1iZXIgYWxsIHJlbWFpbmluZyByb3dzCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKHJvd051bU1hcFtpXSAhPSBpKQorICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5zZXRFbGVtZW50QXQobnVsbCwgaSk7CisgICAgICAgIGludCBuZXdSb3dOdW0gPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGlmICh0ZW1wVGFibGUuZWxlbWVudEF0KGkpICE9IG51bGwpCisgICAgICAgICAgICAgICAgcm93TnVtTWFwW2ldID0gbmV3Um93TnVtKys7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKHRlbXBUYWJsZS5lbGVtZW50QXQoaSkgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICByb3dOdW1NYXBbaV0gPSByb3dOdW1NYXBbcm93TnVtTWFwW2ldXTsKKworICAgICAgICBmb3IgKGludCBpID0gdGVtcFRhYmxlLnNpemUoKSAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICB0ZW1wUm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAodGVtcFJvdyA9PSBudWxsKQorICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBSb3dbal0gIT0gLTEpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUm93W2pdID0gcm93TnVtTWFwW2pdOworICAgICAgICAgICAgfQorICAgICAgICB9CisvL2ZvciAoaW50IGkgPSAxOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKSByb3dOdW1NYXBbaV0gPSBpOyBpbnQgbmV3Um93TnVtID0gcm93TnVtTWFwLmxlbmd0aDsKKyAgICB9CisqLworCisgICAgcHJpdmF0ZSB2b2lkIGRlbGV0ZUR1cGxpY2F0ZVJvd3MoVmVjdG9yIHRlbXBUYWJsZSkgeworICAgICAgICBWZWN0b3Igd29yayA9IChWZWN0b3IpKHRlbXBUYWJsZS5jbG9uZSgpKTsKKyAgICAgICAgYm9vbGVhbiBkaWREZWxldGVSb3cgPSB0cnVlOworCisgICAgICAgIFZlY3RvciB0ZW1wTWFwcGluZyA9IG5ldyBWZWN0b3Iod29yay5zaXplKCkpOworICAgICAgICBpbnRbXSBtYXBwaW5nID0gbmV3IGludFt3b3JrLnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFwcGluZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbWFwcGluZ1tpXSA9IGk7CisgICAgICAgICAgICB0ZW1wTWFwcGluZy5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKGkpKTsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuW10gdGJkID0gbmV3IGJvb2xlYW5bd29yay5zaXplKCldOworCisgICAgICAgIHdoaWxlIChkaWREZWxldGVSb3cpIHsKK1N5c3RlbS5vdXQucHJpbnRsbigiICIgKyB3b3JrLnNpemUoKSArICIgcm93cy4uLiIpOworaW50IGRlbGV0ZWRSb3dzID0gMDsKKyAgICAgICAgICAgIGRpZERlbGV0ZVJvdyA9IGZhbHNlOworCisgICAgICAgICAgICBzb3J0VGFibGUod29yaywgdGVtcE1hcHBpbmcsIG1hcHBpbmcsIDEsIHdvcmsuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd29yay5zaXplKCkgLSAxOyApIHsKK1N5c3RlbS5vdXQucHJpbnQoIkRlbGV0aW5nLCBpbnNwZWN0aW5nIHJvdyAiICsgaSArICIsIGRlbGV0ZWQgIiArIGRlbGV0ZWRSb3dzICsgIiByb3dzLi4uXHIiKTsKKyAgICAgICAgICAgICAgICBpbnQgcm93VG9EZWxldGUgPSAoKEludGVnZXIpKHRlbXBNYXBwaW5nLmVsZW1lbnRBdChpICsgMSkpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGludCByb3dUb01hcFRvID0gKChJbnRlZ2VyKSh0ZW1wTWFwcGluZy5lbGVtZW50QXQoaSkpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGlmIChjb21wYXJlUm93cygoaW50W10pd29yay5lbGVtZW50QXQoaSksIChpbnRbXSl3b3JrLmVsZW1lbnRBdChpICsgMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmcpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGJkW3Jvd1RvRGVsZXRlXSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5zZXRFbGVtZW50QXQobnVsbCwgcm93VG9EZWxldGUpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGJkW21hcHBpbmdbcm93VG9NYXBUb11dKQorICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZ1tyb3dUb01hcFRvXSA9IG1hcHBpbmdbbWFwcGluZ1tyb3dUb01hcFRvXV07CisgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdbcm93VG9EZWxldGVdID0gbWFwcGluZ1tyb3dUb01hcFRvXTsKKyAgICAgICAgICAgICAgICAgICAgZGlkRGVsZXRlUm93ID0gdHJ1ZTsKK2RlbGV0ZWRSb3dzKys7CisgICAgICAgICAgICAgICAgICAgIHdvcmsucmVtb3ZlRWxlbWVudEF0KGkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcucmVtb3ZlRWxlbWVudEF0KGkgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1hcHBpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAodGJkW2ldICYmIHRiZFttYXBwaW5nW2ldXSkKKyAgICAgICAgICAgICAgICAgICAgbWFwcGluZ1tpXSA9IG1hcHBpbmdbbWFwcGluZ1tpXV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgZGVjcmVtZW50QnkgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1hcHBpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pCisgICAgICAgICAgICAgICAgZGVjcmVtZW50QnkrKzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtYXBwaW5nW2ldIC09IGRlY3JlbWVudEJ5OworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFwcGluZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHRiZFtpXSkKKyAgICAgICAgICAgICAgICBtYXBwaW5nW2ldID0gbWFwcGluZ1ttYXBwaW5nW2ldXTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gdGVtcFRhYmxlLnNpemUoKSAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICBpZiAodGJkW2ldKQorICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnRbXSByb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICAgICAgcm93W2pdID0gKHJvd1tqXSA9PSAtMSkgPyAtMSA6IG1hcHBpbmdbcm93W2pdXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzb3J0VGFibGUoVmVjdG9yIHRhYmxlLCBWZWN0b3IgdGVtcE1hcHBpbmcsIGludFtdIG1hcHBpbmcsIGludCBzdGFydCwgaW50IGVuZCkgeworU3lzdGVtLm91dC5wcmludCgiU29ydGluZyAoIiArIHN0YXJ0ICsgIiwgIiArIGVuZCArICIpLi4uXHIiKTsKKyAgICAgICAgaWYgKHN0YXJ0ICsgMSA+PSBlbmQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ICsgMTAgPj0gZW5kKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnQgKyAxOyBpIDwgZW5kOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnRbXSByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIEludGVnZXIgdGVtcE1hcCA9IChJbnRlZ2VyKXRlbXBNYXBwaW5nLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgICAgICAgICBmb3IgKGogPSBpIC0gMTsgaiA+PSBzdGFydDsgai0tKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlUm93cygoaW50W10pdGFibGUuZWxlbWVudEF0KGopLCByb3csIG1hcHBpbmcpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaiksIGogKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBNYXBwaW5nLnNldEVsZW1lbnRBdCgoSW50ZWdlcil0ZW1wTWFwcGluZy5lbGVtZW50QXQoaiksIGogKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnNldEVsZW1lbnRBdChyb3csIGogKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBNYXBwaW5nLnNldEVsZW1lbnRBdCh0ZW1wTWFwLCBqICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaiA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlLnNldEVsZW1lbnRBdChyb3csIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KHRlbXBNYXAsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgYm91bmRhcnlQb3MgPSAoc3RhcnQgKyBlbmQpIC8gMjsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgYm9vbGVhbiBhbGxUaGVTYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgIGludCBmaXJzdERpZmZlcmVudCA9IDA7CisKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpbnRbXSBib3VuZGFyeSA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoYm91bmRhcnlQb3MpOworICAgICAgICAgICAgICAgIGkgPSBzdGFydDsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGVuZCAtIDE7CisgICAgICAgICAgICAgICAgaW50W10gcm93ID0gbnVsbDsKKyAgICAgICAgICAgICAgICBieXRlIGNvbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCBqKSB7CisgICAgICAgICAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDw9IGogJiYgY29tcGFyZVJvd3Mocm93LCBib3VuZGFyeSwgbWFwcGluZykgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgY29tcFJlc3VsdCA9IGNvbXBhcmVSb3dzKHJvdywgYm91bmRhcnksIG1hcHBpbmcpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA8PSBqICYmIChjb21wUmVzdWx0ID49IDApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tcFJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsVGhlU2FtZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0RGlmZmVyZW50ID0gajsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGotLTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wUmVzdWx0ID0gY29tcGFyZVJvd3Mocm93LCBib3VuZGFyeSwgbWFwcGluZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPD0gaikgeworICAgICAgICAgICAgICAgICAgICAgICAgcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnNldEVsZW1lbnRBdCh0YWJsZS5lbGVtZW50QXQoaSksIGopOworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KHJvdywgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgdGVtcCA9IHRlbXBNYXBwaW5nLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBNYXBwaW5nLnNldEVsZW1lbnRBdCh0ZW1wTWFwcGluZy5lbGVtZW50QXQoaSksIGopOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KHRlbXAsIGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpIDw9IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhbGxUaGVTYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBib3VuZGFyeVBvcyA9IGZpcnN0RGlmZmVyZW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gd2hpbGUgKGkgPD0gc3RhcnQpOworICAgICAgICAgICAgc29ydFRhYmxlKHRhYmxlLCB0ZW1wTWFwcGluZywgbWFwcGluZywgc3RhcnQsIGkpOworICAgICAgICAgICAgc29ydFRhYmxlKHRhYmxlLCB0ZW1wTWFwcGluZywgbWFwcGluZywgaSwgZW5kKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYnl0ZSBjb21wYXJlUm93cyhpbnRbXSByb3cxLCBpbnRbXSByb3cyLCBpbnRbXSBtYXBwaW5nKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKSB7CisgICAgICAgICAgICBpbnQgYzEgPSAocm93MVtpXSA9PSAtMSkgPyAtMSA6IG1hcHBpbmdbcm93MVtpXV07CisgICAgICAgICAgICBpbnQgYzIgPSAocm93MltpXSA9PSAtMSkgPyAtMSA6IG1hcHBpbmdbcm93MltpXV07CisgICAgICAgICAgICBpZiAoYzEgPCBjMikKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBlbHNlIGlmIChjMSA+IGMyKQorICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHByaXZhdGUgaW50W10gYnVpbGRSb3dJbmRleChWZWN0b3IgdGVtcFRhYmxlKSB7CisgICAgICAgIGludFtdIHRlbXBSb3dJbmRleCA9IG5ldyBpbnRbdGVtcFRhYmxlLnNpemUoKV07CisgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleCA9IG5ldyBzaG9ydFt0ZW1wVGFibGUuc2l6ZSgpXTsKKyAgICAgICAgVmVjdG9yIHRlbXBSb3dJbmRleEZsYWdzID0gbmV3IFZlY3RvcigpOworICAgICAgICByb3dJbmRleFNoaWZ0cyA9IG5ldyBieXRlW3RlbXBUYWJsZS5zaXplKCldOworCisgICAgICAgIC8vIGJ1aWxkIHRoZSByb3cgaW5kZXguICBFYWNoIGVudHJ5IGluIHRoZSByb3cgaW5kZXggc3RhcnRzIG91dCByZWZlcnJpbmcKKyAgICAgICAgLy8gdG8gdGhlIG9yaWdpbmFsIHJvdyAoc28gaXQgZG9lc24ndCBhY3R1YWxseSBkbyBhbnkgbWFwcGluZyksIGFuZCB3ZSBzZXQKKyAgICAgICAgLy8gdXAgdGhlIGluZGV4IGZsYWdzIHRvIHNob3cgd2hpY2ggY2VsbHMgaW4gdGhlIHJvdyBhcmUgcG9wdWxhdGVkCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICB0ZW1wUm93SW5kZXhbaV0gPSBpOworCisgICAgICAgICAgICBpbnRbXSByb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmIChyb3dbbnVtQ29sc10gPT0gMSAmJiByb3dbMF0gPT0gMCkgeworICAgICAgICAgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAocm93W2pdID09IDApCisgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICByb3dJbmRleEZsYWdzSW5kZXhbaV0gPSAoc2hvcnQpKC1qKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludFtdIGZsYWdzID0gbmV3IGludFtudW1Db2xHcm91cHNdOworICAgICAgICAgICAgICAgIGludCBuZXh0RmxhZyA9IDE7CisgICAgICAgICAgICAgICAgaW50IGNvbEdyb3VwID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykgeworICAgICAgICAgICAgICAgICAgICBpZiAocm93W2pdICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBmbGFnc1tjb2xHcm91cF0gfD0gbmV4dEZsYWc7CisgICAgICAgICAgICAgICAgICAgIG5leHRGbGFnIDw8PSAxOworICAgICAgICAgICAgICAgICAgICBpZiAobmV4dEZsYWcgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytjb2xHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRGbGFnID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2xHcm91cCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChqIDwgdGVtcFJvd0luZGV4RmxhZ3Muc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoKEludGVnZXIpdGVtcFJvd0luZGV4RmxhZ3MuZWxlbWVudEF0KGopKS5pbnRWYWx1ZSgpID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnc1tjb2xHcm91cF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrY29sR3JvdXA7CisgICAgICAgICAgICAgICAgICAgICAgICArK2o7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sR3JvdXAgPj0gbnVtQ29sR3JvdXBzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbEdyb3VwICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xHcm91cCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcm93SW5kZXhGbGFnc0luZGV4W2ldID0gKHNob3J0KShqIC0gY29sR3JvdXApOworICAgICAgICAgICAgICAgIHdoaWxlIChjb2xHcm91cCA8IG51bUNvbEdyb3VwcykgeworICAgICAgICAgICAgICAgICAgICB0ZW1wUm93SW5kZXhGbGFncy5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKGZsYWdzW2NvbEdyb3VwXSkpOworICAgICAgICAgICAgICAgICAgICArK2NvbEdyb3VwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByb3dJbmRleEZsYWdzID0gbmV3IGludFt0ZW1wUm93SW5kZXhGbGFncy5zaXplKCldOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4RmxhZ3MubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dJbmRleEZsYWdzW2ldID0gKChJbnRlZ2VyKXRlbXBSb3dJbmRleEZsYWdzLmVsZW1lbnRBdChpKSkuaW50VmFsdWUoKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIGNvbHVtbiBncm91cHMgPSAiICsgbnVtQ29sR3JvdXBzKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiU2l6ZSBvZiByb3dJbmRleEZsYWdzID0gIiArIHJvd0luZGV4RmxhZ3MubGVuZ3RoKTsKKworICAgICAgICByZXR1cm4gdGVtcFJvd0luZGV4OworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzdGFja1Jvd3MoVmVjdG9yIHRlbXBUYWJsZSkgeworLyoKK1N5c3RlbS5vdXQucHJpbnQoIlJvdzpcdCIpOworZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspCitTeXN0ZW0ub3V0LnByaW50KHJldmVyc2VDb2x1bW5NYXBbaV0gKyAiXHQiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKK1N5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhpKSArICI6XHQiKTsKK2ludFtdIHJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworZm9yIChpbnQgaiA9IDA7IGogPCByb3cubGVuZ3RoOyBqKyspCitpZiAocm93W2pdICE9IDApIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhyb3dbal0pICsgIlx0Iik7CitlbHNlIFN5c3RlbS5vdXQucHJpbnQoIi5cdCIpOworU3lzdGVtLm91dC5wcmludGxuKCk7Cit9CisqLworCisgICAgICAgIGludFtdIHRlbXBSb3dJbmRleCA9IGJ1aWxkUm93SW5kZXgodGVtcFRhYmxlKTsKKyAgICAgICAgYm9vbGVhbltdIHRiZCA9IG5ldyBib29sZWFuW3RlbXBUYWJsZS5zaXplKCldOworCisgICAgICAgIC8vIG5vdyB3ZSBhY3R1YWxseSBnbyB0aHJvdWdoIGFuZCBzdGFjayByb3dzIHRvZ2V0aGVyCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAodGJkW2ldKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworU3lzdGVtLm91dC5wcmludCgiU3RhY2tpbmcsIGluc3BlY3Rpbmcgcm93ICIgKyBpICsgIi4uLlxyIik7CisvL1N5c3RlbS5vdXQucHJpbnRsbigiU3RhY2tpbmcsIGluc3BlY3Rpbmcgcm93ICIgKyBpICsgIi4uLiIpOworCisgICAgICAgICAgICBpbnRbXSBkZXN0Um93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisKKyAgICAgICAgICAgIGJvb2xlYW5bXSB0ZW1wRmxhZ3MgPSBuZXcgYm9vbGVhbltudW1Db2xzXTsKKyAgICAgICAgICAgIGJvb2xlYW5bXSBmaWxsZWRDZWxscyA9IG5ldyBib29sZWFuW251bUNvbHNdOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspCisgICAgICAgICAgICAgICAgZmlsbGVkQ2VsbHNbal0gPSBkZXN0Um93W2pdICE9IDA7CisKKyAgICAgICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgZGVzdFJvd1tudW1Db2xzXSA8IG51bUNvbHMgJiYgaiA8IHRlbXBUYWJsZS5zaXplKCk7IGorKykgeworICAgICAgICAgICAgICAgIGlmICh0YmRbal0pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaW50W10gc3JjUm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaik7CisgICAgICAgICAgICAgICAgaWYgKHNyY1Jvd1tudW1Db2xzXSArIGRlc3RSb3dbbnVtQ29sc10gPiBudW1Db2xzKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGludCBtYXhMZWZ0U2hpZnQgPSAtOTk5OworICAgICAgICAgICAgICAgIGludCBtYXhSaWdodFNoaWZ0ID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IG51bUNvbHM7IGsrKykgeworICAgICAgICAgICAgICAgICAgICB0ZW1wRmxhZ3Nba10gPSBzcmNSb3dba10gIT0gMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBGbGFnc1trXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heExlZnRTaGlmdCA9PSAtOTk5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heExlZnRTaGlmdCA9IC1rOworICAgICAgICAgICAgICAgICAgICAgICAgbWF4UmlnaHRTaGlmdCA9IChudW1Db2xzIC0gMSkgLSBrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IHNoaWZ0OworICAgICAgICAgICAgICAgIGZvciAoc2hpZnQgPSBtYXhMZWZ0U2hpZnQ7IHNoaWZ0IDw9IG1heFJpZ2h0U2hpZnQ7IHNoaWZ0KyspIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGs7CisgICAgICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBudW1Db2xzOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wRmxhZ3Nba10gJiYgZmlsbGVkQ2VsbHNbayArIHNoaWZ0XSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoayA+PSBudW1Db2xzKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzaGlmdCA8PSBtYXhSaWdodFNoaWZ0KSB7CisvL1N5c3RlbS5vdXQucHJpbnRsbigiUGFja2luZyByb3cgIiArIGogKyAiIGludG8gcm93ICIgKyBpICsgIiB3aXRoIHNoaWZ0ID0gIiArIHNoaWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBudW1Db2xzOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wRmxhZ3Nba10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsZWRDZWxsc1trICsgc2hpZnRdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Um93W2sgKyBzaGlmdF0gPSBzcmNSb3dba107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytkZXN0Um93W251bUNvbHNdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRiZFtqXSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSb3dJbmRleFtqXSA9IGk7CisgICAgICAgICAgICAgICAgICAgIHJvd0luZGV4U2hpZnRzW2pdID0gKGJ5dGUpc2hpZnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgd2Ugc3F1ZWV6ZSBvdXQgYWxsIHRoZSBkZWxldGVkIHJvd3MKKyAgICAgICAgaW50IGRlY3JlbWVudEJ5ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wUm93SW5kZXgubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghdGJkW2ldKQorICAgICAgICAgICAgICAgIHRlbXBSb3dJbmRleFtpXSAtPSBkZWNyZW1lbnRCeTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICArK2RlY3JlbWVudEJ5OworICAgICAgICB9CisgICAgICAgIHJvd0luZGV4ID0gbmV3IHNob3J0W3RlbXBSb3dJbmRleC5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gdGVtcFJvd0luZGV4Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICBpZiAodGJkW2ldKSB7CisgICAgICAgICAgICAgICAgcm93SW5kZXhbaV0gPSAoc2hvcnQpKHRlbXBSb3dJbmRleFt0ZW1wUm93SW5kZXhbaV1dKTsKKyAgICAgICAgICAgICAgICB0ZW1wVGFibGUucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJvd0luZGV4W2ldID0gKHNob3J0KXRlbXBSb3dJbmRleFtpXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludFRhYmxlKCkgeworICAgICAgICBzaG9ydCBjZWxsOworICAgICAgICBpbnQgcG9wdWxhdGVkQ2VsbHMgPSAwOworLyoKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb25jZXB0dWFsIHRhYmxlOiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBSb3c6ICAgYSAgIGIgICBjICAgZCAgIGUgICBmICAgZyAgIGggICBpICAgaiAgIGsgICBsICAgbSAgIG4iCisgICAgICAgICAgICAgICAgKyAiICAgbyAgIHAgICBxICAgciAgIHMgICB0ICAgdSAgIHYgICB3ICAgeCAgIHkgICB6ICAgJyAgICMiKTsKKworICAgICAgICBib29sZWFuW10gcm93UHJpbnRGbGFncyA9IG5ldyBib29sZWFuW3Jvd0luZGV4Lmxlbmd0aF07CisgICAgICAgIHByaW50Q29uY2VwdHVhbFRhYmxlKCIiLCAwLCByb3dQcmludEZsYWdzKTsKKyovCisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29uY2VwdHVhbCB0YWJsZToiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIFJvdzoiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXZlcnNlQ29sdW1uTWFwLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgIiArIHJldmVyc2VDb2x1bW5NYXBbaV0pOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXgubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgcHJpbnROdW1iZXIoaSwgNCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6Iik7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICBwcmludE51bWJlcihhdChpLCBqKSwgNCk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCdcbicpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkludGVybmFsbHkgc3RvcmVkIHRhYmxlOiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgUm93OiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJldmVyc2VDb2x1bW5NYXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAiICsgcmV2ZXJzZUNvbHVtbk1hcFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGkgJSBudW1Db2xzID09IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICBwcmludE51bWJlcihpIC8gbnVtQ29scywgNCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2VsbCA9IHRhYmxlW2ldOworICAgICAgICAgICAgaWYgKGNlbGwgIT0gMCkKKyAgICAgICAgICAgICAgICBwb3B1bGF0ZWRDZWxscysrOworICAgICAgICAgICAgcHJpbnROdW1iZXIoY2VsbCwgNCk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCdcbicpOworCitTeXN0ZW0ub3V0LnByaW50bG4oIlJvdyBpbmRleDoiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXgubGVuZ3RoOyBpKyspIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAiICsgaSArICIgLT4gIiArIHJvd0luZGV4W2ldKTsKKyAgICBpZiAocm93SW5kZXhGbGFnc0luZGV4W2ldIDwgMCkKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLCBmbGFncyA9ICIgKyBJbnRlZ2VyLnRvQmluYXJ5U3RyaW5nKCgxIDw8ICgtcm93SW5kZXhGbGFnc0luZGV4W2ldKSkpICsgIiAoIiArIHJvd0luZGV4RmxhZ3NJbmRleFtpXSk7CisgICAgZWxzZQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIsIGZsYWdzID0gIiArIEludGVnZXIudG9CaW5hcnlTdHJpbmcocm93SW5kZXhGbGFnc1tyb3dJbmRleEZsYWdzSW5kZXhbaV1dKSArICIgKCIgKyByb3dJbmRleEZsYWdzSW5kZXhbaV0pOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKSwgc2hpZnQgPSAiICsgcm93SW5kZXhTaGlmdHNbaV0pOworfQorLyoKKyAgICAgICAgaW50IHRoZW9yZXRpY2FsTWluUm93cyA9IHBvcHVsYXRlZENlbGxzIC8gbnVtQ29sczsKKyAgICAgICAgaWYgKHBvcHVsYXRlZENlbGxzICUgbnVtQ29scyAhPSAwKQorICAgICAgICAgICAgdGhlb3JldGljYWxNaW5Sb3dzKys7CisgICAgICAgIGludCBvbmVDZWxsUm93cyA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZG91YmxlIHRlbXAgPSBNYXRoLmxvZyhyb3dJbmRleEZsYWdzW2ldKSAvIE1hdGgubG9nKDIpOworICAgICAgICAgICAgaWYgKHRlbXAgPT0gKGludCl0ZW1wKQorICAgICAgICAgICAgICAgIG9uZUNlbGxSb3dzKys7CisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oJ1xuJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgd29yZHMgaW4gaW5wdXQgPSAiICsgdG90YWxXb3Jkcyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgdW5pcXVlIHdvcmRzID0gIiArIHVuaXF1ZVdvcmRzICsgIiwgY29tcHJpc2luZyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsVW5pcXVlV29yZENoYXJzICsgIiBjaGFyYWN0ZXJzXG4iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgcG9wdWxhdGVkIGNlbGxzID0gIiArIHBvcHVsYXRlZENlbGxzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCBudW1iZXIgb2YgY2VsbHMgPSAiICsgKHRhYmxlLmxlbmd0aCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlc2lkZW5jeSA9ICIgKyAoKGZsb2F0KXBvcHVsYXRlZENlbGxzIC8gdGFibGUubGVuZ3RoICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmF0aW8gb2YgcG9wdWxhdGVkIGNlbGxzIHRvIHVuaXF1ZS13b3JkIGNoYXJhY3RlcnMgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICgoZmxvYXQpcG9wdWxhdGVkQ2VsbHMgLyB0b3RhbFVuaXF1ZVdvcmRDaGFycyAqIDEwMCkgKyAnJScpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJhdGlvIG9mIHRvdGFsIGNlbGxzIHRvIHVuaXF1ZS13b3JkIGNoYXJhY3RlcnMgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICgoZmxvYXQpdGFibGUubGVuZ3RoIC8gdG90YWxVbmlxdWVXb3JkQ2hhcnMgKiAxMDApICsgJyUnKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2Ygcm93cyA9ICIgKyAodGFibGUubGVuZ3RoIC8gbnVtQ29scykpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZW9yZXRpY2FsIG1pbmltdW0gbnVtYmVyIG9mIHJvd3MgPSAiICsgdGhlb3JldGljYWxNaW5Sb3dzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYXRpbyBvZiBudW1iZXIgb2Ygcm93cyB0byB0aGVvcmV0aWNhbCBtaW5pbXVtID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoKGZsb2F0KSh0YWJsZS5sZW5ndGggLyBudW1Db2xzKSAvIHRoZW9yZXRpY2FsTWluUm93cyAqIDEwMCkgKyAnJScpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiBjb25jZXB0dWFsIHJvd3MgPSAiICsgcm93SW5kZXgubGVuZ3RoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb25jZXB0dWFsIHJvd3Mgd2l0aCBvbmx5IG9uZSBwb3B1bGF0ZWQgY2VsbCA9ICIgKyBvbmVDZWxsUm93cyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmF0aW8gb2Ygb25lLWNlbGwgcm93cyB0byB0b3RhbCBjb25jZXB0dWFsIHJvd3MgPSAiICsgKCgoZmxvYXQpb25lQ2VsbFJvd3MpCisgICAgICAgICAgICAgICAgICAgICAgICAvIHJvd0luZGV4Lmxlbmd0aCAqIDEwMCkgKyAnJScpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgbnVtYmVyIG9mIHBvcHVsYXRlZCBjZWxscyBpbiBtdWx0aS1jZWxsIHJvd3MgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICgoZmxvYXQpKHBvcHVsYXRlZENlbGxzIC0gb25lQ2VsbFJvd3MpIC8gKHJvd0luZGV4Lmxlbmd0aCAtIG9uZUNlbGxSb3dzKSkpOworCisgICAgICAgIGludCBzdG9yYWdlVXNlZCA9IHRhYmxlLmxlbmd0aCAqIDIgKyByb3dJbmRleC5sZW5ndGggKiAyCisgICAgICAgICAgICAgICAgICAgICAgICArIHJvd0luZGV4RmxhZ3MubGVuZ3RoICogNCArIHJvd0luZGV4U2hpZnRzLmxlbmd0aDsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCBudW1iZXIgb2YgYnl0ZXMgaW4gdGFibGUgKGluY2x1ZGluZyBpbmRleGVzKSA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZVVzZWQpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIG9mIG92ZXJoZWFkIHBlciB1bmlxdWUtd29yZCBjaGFyYWN0ZXIgPSAiICsgKChkb3VibGUpKHN0b3JhZ2VVc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAtICh0b3RhbFVuaXF1ZVdvcmRDaGFycyAqIDIpKSAvIHRvdGFsVW5pcXVlV29yZENoYXJzKSk7CisqLworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludENvbmNlcHR1YWxUYWJsZShTdHJpbmcgaW5pdGlhbFN0cmluZywgaW50IHN0YXRlLCBib29sZWFuW10gZmxhZ3MpIHsKKyAgICAgICAgaWYgKGluaXRpYWxTdHJpbmcubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicm9vdDoiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGluaXRpYWxTdHJpbmcgKyAnOicpOworCisgICAgICAgIGlmICghZmxhZ3Nbc3RhdGVdKSB7CisgICAgICAgICAgICBmbGFnc1tzdGF0ZV0gPSB0cnVlOworICAgICAgICAgICAgcHJpbnROdW1iZXIoc3RhdGUsIDQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspCisgICAgICAgICAgICAgICAgcHJpbnROdW1iZXIoYXQoc3RhdGUsIGkpLCA0KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisKKyAgICAgICAgaW50IG5leHRTdGF0ZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgIG5leHRTdGF0ZSA9IGF0KHN0YXRlLCBpKTsKKyAgICAgICAgICAgIGlmIChuZXh0U3RhdGUgPiAwICYmICFmbGFnc1tuZXh0U3RhdGVdKSB7CisgICAgICAgICAgICAgICAgcHJpbnROdW1iZXIobmV4dFN0YXRlLCA0KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6Iik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspCisgICAgICAgICAgICAgICAgICAgIHByaW50TnVtYmVyKGF0KG5leHRTdGF0ZSwgaiksIDQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKSB7CisgICAgICAgICAgICBuZXh0U3RhdGUgPSBhdChzdGF0ZSwgaSk7CisgICAgICAgICAgICBpZiAobmV4dFN0YXRlID4gMCAmJiAhZmxhZ3NbbmV4dFN0YXRlXSkgeworICAgICAgICAgICAgICAgIGNoYXIgbmV4dENoYXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRTdGF0ZSA9PSAyNykKKyAgICAgICAgICAgICAgICAgICAgbmV4dENoYXIgPSAnICc7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAobmV4dFN0YXRlID09IDI2KQorICAgICAgICAgICAgICAgICAgICBuZXh0Q2hhciA9ICdcJyc7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXh0Q2hhciA9IChjaGFyKShpICsgJ2EnKTsKKyAgICAgICAgICAgICAgICBmbGFnc1tuZXh0U3RhdGVdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBwcmludENvbmNlcHR1YWxUYWJsZShpbml0aWFsU3RyaW5nICsgbmV4dENoYXIsIG5leHRTdGF0ZSwgZmxhZ3MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50V29yZExpc3QoU3RyaW5nIHBhcnRpYWxXb3JkLCBpbnQgc3RhdGUsIFByaW50V3JpdGVyIG91dCkKKyAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChzdGF0ZSA9PSAtMSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnRpYWxXb3JkKTsKKyAgICAgICAgICAgIGlmIChvdXQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihwYXJ0aWFsV29yZCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChhdChzdGF0ZSwgaSkgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRXb3JkTGlzdChwYXJ0aWFsV29yZCArIHJldmVyc2VDb2x1bW5NYXBbaV0sIGF0KHN0YXRlLCBpKSwgb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB3cml0ZURpY3Rpb25hcnlGaWxlKERhdGFPdXRwdXRTdHJlYW0gb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBvdXQud3JpdGVJbnQoMCk7ICAgIC8vIHZlcnNpb24gbnVtYmVyCisKKyAgICAgICAgY2hhcltdIGNvbHVtbk1hcEluZGV4ZXMgPSBjb2x1bW5NYXAuZ2V0SW5kZXhBcnJheSgpOworICAgICAgICBvdXQud3JpdGVJbnQoY29sdW1uTWFwSW5kZXhlcy5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbHVtbk1hcEluZGV4ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVTaG9ydCgoc2hvcnQpY29sdW1uTWFwSW5kZXhlc1tpXSk7CisgICAgICAgIGJ5dGVbXSBjb2x1bW5NYXBWYWx1ZXMgPSBjb2x1bW5NYXAuZ2V0VmFsdWVBcnJheSgpOworICAgICAgICBvdXQud3JpdGVJbnQoY29sdW1uTWFwVmFsdWVzLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29sdW1uTWFwVmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlQnl0ZSgoYnl0ZSljb2x1bW5NYXBWYWx1ZXNbaV0pOworCisgICAgICAgIG91dC53cml0ZUludChudW1Db2xzKTsKKyAgICAgICAgb3V0LndyaXRlSW50KG51bUNvbEdyb3Vwcyk7CisKKyAgICAgICAgb3V0LndyaXRlSW50KHJvd0luZGV4Lmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXgubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVTaG9ydChyb3dJbmRleFtpXSk7CisKKyAgICAgICAgb3V0LndyaXRlSW50KHJvd0luZGV4RmxhZ3NJbmRleC5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4RmxhZ3NJbmRleC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZVNob3J0KHJvd0luZGV4RmxhZ3NJbmRleFtpXSk7CisgICAgICAgIG91dC53cml0ZUludChyb3dJbmRleEZsYWdzLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFncy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZUludChyb3dJbmRleEZsYWdzW2ldKTsKKworICAgICAgICBvdXQud3JpdGVJbnQocm93SW5kZXhTaGlmdHMubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleFNoaWZ0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZUJ5dGUocm93SW5kZXhTaGlmdHNbaV0pOworCisgICAgICAgIG91dC53cml0ZUludCh0YWJsZS5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhYmxlLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlU2hvcnQodGFibGVbaV0pOworCisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludE51bWJlcihpbnQgeCwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZyBzID0gU3RyaW5nLnZhbHVlT2YoeCk7CisgICAgICAgIGlmICh3aWR0aCA+IHMubGVuZ3RoKCkpCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHNwYWNlcy5zdWJzdHJpbmcoMCwgd2lkdGggLSBzLmxlbmd0aCgpKSk7CisgICAgICAgIGlmICh4ICE9IDApCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCcuJyk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHNob3J0IGF0KGludCByb3csIGNoYXIgY2gpIHsKKyAgICAgICAgaW50IGNvbCA9IGNvbHVtbk1hcC5lbGVtZW50QXQoY2gpOworICAgICAgICByZXR1cm4gYXQocm93LCBjb2wpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBzaG9ydCBhdChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIGlmIChjZWxsSXNQb3B1bGF0ZWQocm93LCBjb2wpKQorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsQXQocm93SW5kZXhbcm93XSwgY29sICsgcm93SW5kZXhTaGlmdHNbcm93XSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjZWxsSXNQb3B1bGF0ZWQoaW50IHJvdywgaW50IGNvbCkgeworICAgICAgICBpZiAocm93SW5kZXhGbGFnc0luZGV4W3Jvd10gPCAwKQorICAgICAgICAgICAgcmV0dXJuIGNvbCA9PSAtcm93SW5kZXhGbGFnc0luZGV4W3Jvd107CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGZsYWdzID0gcm93SW5kZXhGbGFnc1tyb3dJbmRleEZsYWdzSW5kZXhbcm93XSArIChjb2wgPj4gNSldOworICAgICAgICAgICAgcmV0dXJuIChmbGFncyAmICgxIDw8IChjb2wgJiAweDFmKSkpICE9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIHNob3J0IGludGVybmFsQXQoaW50IHJvdywgaW50IGNvbCkgeworICAgICAgICByZXR1cm4gdGFibGVbcm93ICogbnVtQ29scyArIGNvbF07CisgICAgfQorCisgICAgcHJpdmF0ZSBDb21wYWN0Qnl0ZUFycmF5IGNvbHVtbk1hcCA9IG51bGw7CisgICAgcHJpdmF0ZSBjaGFyW10gcmV2ZXJzZUNvbHVtbk1hcCA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgbnVtQ29sczsKKyAgICBwcml2YXRlIGludCBudW1Db2xHcm91cHM7CisgICAgcHJpdmF0ZSBzaG9ydFtdIHRhYmxlID0gbnVsbDsKKyAgICBwcml2YXRlIHNob3J0W10gcm93SW5kZXggPSBudWxsOworICAgIHByaXZhdGUgaW50W10gcm93SW5kZXhGbGFncyA9IG51bGw7CisgICAgcHJpdmF0ZSBzaG9ydFtdIHJvd0luZGV4RmxhZ3NJbmRleCA9IG51bGw7CisgICAgcHJpdmF0ZSBieXRlW10gcm93SW5kZXhTaGlmdHMgPSBudWxsOworCisgICAgcHJpdmF0ZSBpbnQgdG90YWxXb3JkcyA9IDA7CisgICAgcHJpdmF0ZSBpbnQgdW5pcXVlV29yZHMgPSAwOworICAgIHByaXZhdGUgaW50IHRvdGFsVW5pcXVlV29yZENoYXJzID0gMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzcGFjZXMgPSAiICAgICAgIjsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvcmVhZG1lLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9yZWFkbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjYyYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvcmVhZG1lLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiCisgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorICA8dGl0bGU+UkVBRE1FIEZvciBSQkJJIFRvb2xzPC90aXRsZT4KKzwhLS0gQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgICAgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy0tPgorPC9oZWFkPgorPGJvZHk+Cis8aDM+V2hhdCBBcmUgVGhlc2UgVG9vbHM/PC9oMz4KK1RoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIHR3byB0b29scywgV3JpdGVUYWJsZXNUb0ZpbGVzLCB3aGljaCBjb252ZXJ0cwordGhlIEphdmEmbmJzcDsgQnJlYWtJdGVyYXRvcnMgaW50byAuYnJrIGZpbGVzIGZvciBJQ1U0QywgYW5kCitCdWlsZERpY3Rpb25hcnlGaWxlLCB3aGljaCBidWlsZHMgdGhlIGJpbmFyeSB0aGUgVGhhaSB3b3JkIGJyZWFrCitkaWN0aW9uYXJ5IGZyb20gYSBVbmljb2RlIHRleHQgZmlsZSBjb250YWluaW5nIGEgbGlzdCBvZiBUaGFpIHdvcmRzLgorVGhlIHJlc3Qgb2YgdGhpcyBkb2N1bWVudCBkZXNjcmliZXMgaG93IHRvIHVzZSB0aGVzZSB0b29scy48YnI+Cis8aDM+SG93IFRvIEJ1aWxkIFRoZSBJQ1U0QyBCcmVha0l0ZXJhdG9yIEZpbGVzPC9oMz4KK1RoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNvZGUgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkIGZvciBJQ1U0SiwgYW5kCit0aGVuIHBvcnRlZCB0byBJQ1U0Qy4gRm9yIHZhcmlvdXMgcmVhc29ucywgdGhlIGNvZGUgd2hpY2ggY29tcGlsZWQgdGhlCitzdGF0ZSB0YWJsZXMgZnJvbSB0aGUgcnVsZSB0ZXh0IHdhcyBoYXJkIHRvIHBvcnQuIEluc3RlYWQgdGhlCitXcml0ZVRhYmxlc1RvRmlsZXMgdG9vbCB3YXMgd2lydHRlbiB0byByZWFkIGluIHRoZSBKYXZhIGRhdGEgYW5kIHdyaXRlCit0aGUgLmJyayBmaWxlcyB3aGljaCBJQ1U0QyByZWFkcy4gTGF0ZXIgdGhlIFJCQkkgY29kZSB3YXMgcmUtd3JpdHRlbgorZm9yIElDVTRDLCBpbmNsdWRpbmcgdGhlIGFiaWxpdHkgdG8gY29tcGlsZSB0aGUgc3RhdGUgdGFibGVzIGZyb20gcnVsZXMKK3N0b3JlZCBpbiB0ZXh0IGZpbGVzLiBUaGlzIG1lYW5zIHRoYXQgdGhlIFdyaXRlVGFibGVzVG9GaWxlcyB0b29sIGlzCitub3cgb2Jzb2xldGUuPGJyPgorPGJyPgorPGgzPkhvdyBUbyBCdWlsZCBUaGUgVGhhaSBXb3JkIEJyZWFrIERpY3Rpb25hcnk8L2gzPgorVGhlIFRoYWkgd29yZCBiZXJhayBjb2RlIHdhcyBkZXZlbG9wZWQgb3JpZ2luYWxseSBmb3IgSUNVNEosIGFuZCB0aGVuCitwb3J0ZWQgdG8gSUNVNEMgLSB0aGUgZGljdGlvbmFyeSBidWlsZGVyIHRvb2wgd2FzIG5ldmVyIHBvcnRlZCwgc28geW91CitoYXZlIHRvIHVzZSB0aGUgSmF2YSB0b29sIHRvIGJ1aWxkIHRoZSBkaWN0aW9uYXJ5IGZpbGUgZm9yIElDVTRDLiBPbgordGhlIG90aGVyIGhhbmQsIGFsbCBvZiB0aGUgcmVzdCBvZiB0aGUgSUNVIGxvY2FsZSBkYXRhIHdhcyBkZXZlbG9wZWQKK29yaWdpbmFsbHkgZm9yCitJQ1U0QywgYW5kIGEgdG9vbCB3YXMgd3JpdHRlbiB0byBjb3ZlcnQgdGhlIElDVTRDIGxvY2FsZSBkYXRhIHRvIEphdmEKK3Jlc291cmNlIGJ1bmRsZXMgZm9yIHVzZSBieSBJQ1U0Si4gQ29uc2VxdWVudGx5LCB0aGUgcHJvY2VzcyBvZgorYnVpbGRpbmcgdGhlIFRoYWkKK3dvcmQgYnJlYWsgZGljdGlvbmFyeSBmb3IgSUNVNEMgYW5kCitJQ1U0SiBpcyBhIGJpdCBjb252b2x1dGVkLiBIZXJlIGFyZSB0aGUgc3RlcHM6PGJyPgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKzxvbD4KKyAgPGxpPkRvd25sb2FkIGFuZCBidWlsZCBib3RoIElDVTRDIGFuZCBJQ1U0SiBvbiBhIDxzcGFuCisgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+QmlnIEVuZGlhbjwvc3Bhbj4gbWFjaGluZS48YnI+CisgIDwvbGk+CisgIDxsaT5SdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIGxpbmUgdG8gYnVpbGQgdGhlIFRoYWkgZGljdGlvbmFyeSBmaWxlOjxicj4KK2phdmEgLWNsYXNzcGF0aCAkaWN1NGpfcm9vdC9jbGFzc2VzCitjb20uaWJtLmljdS5kZXYudG9vbC5yYmJpLkJ1aWxkRGljdGlvbmFyeUZpbGUKKyRpY3U0al9yb290L3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aGFpNi51Y3MgVW5pY29kZQorJGljdV9yb290L3NvcnVjZS9kYXRhL2Jya2l0ci90aGFpX2RpY3QuYnJrPC9saT4KKyAgPGxpPlJlYnVpbGQgdGhlIElDVTRDIHJlc291cmNlcy48L2xpPgorICA8bGk+UmVidWlsZCB0aGUgSUNVNEogSUNVTG9jYWxlRGF0YS5qYXIgZmlsZS4gKFNlZSA8YQorIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3JlYWRtZS5odG1sIj50aGUgSUNVNEogcmVhZG1lIGZpbGU8L2E+IGZvcgoraW5zdHJ1Y3Rpb25zKTwvbGk+CisgIDxsaT5Nb3ZlIElDVUxvY2FsZURhdGEuamFyIGZyb20gJGljdV9yb290L3NvdXJjZS9kYXRhL2xvY2FsZXMvamF2YSB0bworJGljdTRqX3Jvb3Qvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YTwvbGk+CisgIDxsaT5CdWlsZCBJQ1U0SidzIF9yZXNvdXJjZXMgdGFyZ2V0IHRvIHVuamFyIHRoZSBuZXcgZmlsZXMuPGJyPgorICA8L2xpPgorPC9vbD4KKzwvZGl2PgorSW4gdGhlIGFib3ZlLCAkaWN1X3Jvb3QgaXMgdGhlIHJvb3Qgb2YgeW91ciBJQ1U0QyBzb3VyY2UgdHJlZSwgZm9yCitleGFtcGxlCisifi9kZXYvaWN1IiBhbmQgJGljdTRqX3Jvb3QgaXMgdGhlIHJvb3Qgb2YgeW91ciBJQ1U0SiBzb3VyY2UgdHJlZSwgZm9yCitleGFtcGxlICJ+L2Rldi9pY3U0aiIuPGJyPgorPGJyPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVDaGVja2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvc2VyaWFsaXphYmxlL1NlcmlhbGl6YWJsZUNoZWNrZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2UxZDNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVDaGVja2VyLmphdmEKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVJMSGFuZGxlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuU2VyaWFsaXphYmxlVGVzdDsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubGFuZy5DbGFzczsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5GaWVsZDsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5Nb2RpZmllcjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKy8qKgorICogVGhpcyBjbGFzcyBleGFtaW5lcyBhbGwgdGhlIGNsYXNzZXMgaW4gYSBKYXIgZmlsZSBvciBhIGRpcmVjdG9yeQorICogYW5kIGxpc3RzIGFsbCB0aG9zZSBjbGFzc2VzIHRoYXQgaW1wbGVtZW50IDxjb2RlPlNlcmlhbGl6YWJsZTwvY29kZT4uIEl0IGFsc28gY2hlY2tzCisgKiB0byBtYWtlIHN1cmUgdGhhdCB0aG9zZSBjbGFzc2VzIGhhdmUgdGhlIDxjb2RlPnNlcmlhbFZlcnNpb25VSUQ8L2NvZGU+CisgKiBmaWVsZCBkZWZpbmUuCisgKiAKKyAqLworcHVibGljIGNsYXNzIFNlcmlhbGl6YWJsZUNoZWNrZXIgaW1wbGVtZW50cyBVUkxIYW5kbGVyLlVSTFZpc2l0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBDbGFzcyBzZXJpYWxpemFibGU7CisgICAgLy9wcml2YXRlIHN0YXRpYyBDbGFzcyB0aHJvd2FibGU7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aCA9IG51bGw7CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIHdyaXRlOworICAgIAorICAgIHB1YmxpYyBTZXJpYWxpemFibGVDaGVja2VyKFN0cmluZyBwYXRoKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXRoID0gcGF0aDsKKyAgICAgICAgCisgICAgICAgIGlmIChwYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgIEZpbGUgZGlyID0gbmV3IEZpbGUocGF0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghZGlyLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgZGlyLm1rZGlycygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIHRyeSB7ICAgIAorICAgICAgICAgICAgc2VyaWFsaXphYmxlID0gQ2xhc3MuZm9yTmFtZSgiamF2YS5pby5TZXJpYWxpemFibGUiKTsKKyAgICAgICAgICAgIC8vdGhyb3dhYmxlICAgID0gQ2xhc3MuZm9yTmFtZSgiamF2YS5sYW5nLlRocm93YWJsZSIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gd2UncmUgaW4gZGVlcCB0cm91YmxlLi4uCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldvb3BzISBDYW4ndCBnZXQgY2xhc3MgaW5mbyBmb3IgU2VyaWFsaXphYmxlIGFuZCBUaHJvd2FibGUuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlRmlsZShTdHJpbmcgY2xhc3NOYW1lLCBieXRlIGJ5dGVzW10pCisgICAgeworICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShwYXRoICsgRmlsZS5zZXBhcmF0b3IgKyBjbGFzc05hbWUgKyAiLmRhdCIpOworICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIHN0cmVhbTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RyZWFtLndyaXRlKGJ5dGVzKTsKKyAgICAgICAgICAgIHN0cmVhbS5jbG9zZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIC0gY2FuJ3Qgd3JpdGUgZmlsZSEiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB2aXNpdChTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgaW50IGl4ID0gc3RyLmxhc3RJbmRleE9mKCIuY2xhc3MiKTsKKyAgICAgICAgCisgICAgICAgIGlmIChpeCA+PSAwKSB7CisgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gImNvbS5pYm0uaWN1IiArIHN0ci5zdWJzdHJpbmcoMCwgaXgpLnJlcGxhY2UoJy8nLCAnLicpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBTa2lwIHRoaW5ncyBpbiBjb20uaWJtLmljdS5kZXY7IHRoZXkncmUgbm90IHJlbGV2YW50LgorICAgICAgICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKCJjb20uaWJtLmljdS5kZXYuIikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgYyA9IENsYXNzLmZvck5hbWUoY2xhc3NOYW1lKTsKKyAgICAgICAgICAgICAgICBpbnQgICBtID0gYy5nZXRNb2RpZmllcnMoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoc2VyaWFsaXphYmxlLmlzQXNzaWduYWJsZUZyb20oYykgLyomJgorICAgICAgICAgICAgICAgICAgICAoISB0aHJvd2FibGUuaXNBc3NpZ25hYmxlRnJvbShjKSB8fCBjLmdldERlY2xhcmVkRmllbGRzKCkubGVuZ3RoID4gMCkqLykgeworICAgICAgICAgICAgICAgICAgICBGaWVsZCB1aWQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGNsYXNzTmFtZSArICIgKCIgKyBNb2RpZmllci50b1N0cmluZyhtKSArICIpIC0gIik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgdWlkID0gYy5nZXREZWNsYXJlZEZpZWxkKCJzZXJpYWxWZXJzaW9uVUlEIik7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJubyBzZXJpYWxWZXJzaW9uVUlEIC0gIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChNb2RpZmllci5pc1B1YmxpYyhtKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyIGhhbmRsZXIgPSBTZXJpYWxpemFibGVUZXN0LmdldEhhbmRsZXIoY2xhc3NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBvYmplY3RzT3V0W10gPSBoYW5kbGVyLmdldFRlc3RPYmplY3RzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG9iamVjdHNJbltdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnl0ZU91dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb3V0ID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShieXRlT3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQud3JpdGVPYmplY3Qob2JqZWN0c091dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlT3V0LmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVyb3Igd3JpdGluZyB0ZXN0IG9iamVjdHM6IiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoY2xhc3NOYW1lLCBieXRlT3V0LnRvQnl0ZUFycmF5KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbSBieXRlSW4gPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZU91dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBpbiA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShieXRlSW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdHNJbiA9IChPYmplY3RbXSkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlSW4uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIHJlYWRpbmcgdGVzdCBvYmplY3RzOiIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG9iamVjdHNJbi5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISBoYW5kbGVyLmhhc1NhbWVCZWhhdmlvcihvYmplY3RzSW5baV0sIG9iamVjdHNPdXRbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT2JqZWN0ICIgKyBpICsgIiBmYWlsZWQgYmVoYXZpb3IgdGVzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFzc2VkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoInRlc3QgcGFzc2VkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBPSyB0byBub3QgaGF2ZSB0ZXN0cyBmb3IgYWJzdHJhY3QgY2xhc3Nlcy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIE1vZGlmaWVyLmlzQWJzdHJhY3QobSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgibm8gdGVzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIHByb2Nlc3NpbmcgIiArIGNsYXNzTmFtZSArICI6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgTGlzdCBhcmdMaXN0ID0gQXJyYXlzLmFzTGlzdChhcmdzKTsKKyAgICAgICAgU3RyaW5nIHBhdGggPSBudWxsOworICAgICAgICAKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGFyZ0xpc3QuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOyAvKmFueXRoaW5nPyovKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYXJnLmVxdWFscygiLXciKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0aCA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1pc3NpbmcgZGlyZWN0b3J5IG5hbWUgb24gLXcgY29tbWFuZC4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIAorICAgIAorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vVVJMIGphclVSTCAgPSBuZXcgVVJMKCJqYXI6ZmlsZTovZGV2L2VjbGlwc2Uvd29ya3NwYWNlL2ljdTRqL2ljdTRqLmphciEvY29tL2libS9pY3UiKTsKKyAgICAgICAgICAgICAgICAgICAgLy9VUkwgZmlsZVVSTCA9IG5ldyBVUkwoImZpbGU6L2Rldi9lY2xpcHNlL3dvcmtzcGFjZS9pY3U0ai9jbGFzc2VzL2NvbS9pYm0vaWN1Iik7CisgICAgICAgICAgICAgICAgICAgIFVSTCB1cmwgPSBuZXcgVVJMKGFyZyk7CisgICAgICAgICAgICAgICAgICAgIFVSTEhhbmRsZXIgaGFuZGxlciAgPSBVUkxIYW5kbGVyLmdldCh1cmwpOworICAgICAgICAgICAgICAgICAgICBTZXJpYWxpemFibGVDaGVja2VyIGNoZWNrZXIgPSBuZXcgU2VyaWFsaXphYmxlQ2hlY2tlcihwYXRoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2hlY2tpbmcgY2xhc3NlcyBmcm9tICIgKyBhcmcgKyAiOiIpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLmd1aWRlKGNoZWNrZXIsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIHByb2Nlc3NpbmcgVVJMIFwiIiArIGFyZyArICJcIiAtICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RpbWVzY2FsZS9DYWxjdWxhdGVMaW1pdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvQ2FsY3VsYXRlTGltaXRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ0YjAzMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvQ2FsY3VsYXRlTGltaXRzLmphdmEKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnRpbWVzY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlOworCisvKioKKyAqIFRoaXMgY2xhc3MgY2FsY3VsYXRlcyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMgd2hpY2ggY2FuIGJlCisgKiB1c2VkIGFzIGFyZ3VtZW50cyB0byA8Y29kZT50b0xvbmc8L2NvZGU+IGFuZCA8Y29kZT5mcm9tPC9jb2RlPi4KKyAqIAorICogTk9URTogSWYgeW91IGNoYW5nZSB0aGUgd2F5IGluIHdoaWNoIHRoZXNlIHZhbHVlcyBhcmUgY2FsY3VsYXRlZCwgaXQKKyAqIG1heSBiZSBuZWNlc3NhcnkgdG8gZGlzYWJsZSB0byA8Y29kZT50b1JhbmdlQ2hlY2soKTwvY29kZT4gYW5kCisgKiA8Y29kZT5mcm9tUmFuZ2VDaGVjaygpPC9jb2RlPiBtZXRob2RzIGluIHRoZSA8Y29kZT5Vbml2ZXJzYWxUaW1lU2NhbGU8L2NvZGU+CisgKiBmb3IgYWxsIG9mIHRoZSBjYWxjdWxhdGlvbnMgdG8gcnVuIHdpdGhvdXQgdGhyb3dpbmcgYW4gZXJyb3IuCisgKiAKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGUKKyAqIAorICogQGRyYWZ0IElDVSAzLjIKKyAqLworcHVibGljIGNsYXNzIENhbGN1bGF0ZUxpbWl0cyB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBDYWxjdWxhdGVMaW1pdHMoKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBmaXJzdCBjYWxjdWxhdGVzIHRoZSA8Y29kZT5mcm9tPC9jb2RlPiBsaW1pdHMgYnkKKyAgICAgKiBwYXNzaW5nIDxjb2RlPkxvbmcuTUlOX1ZBTFVFPC9jb2RlPiBhbmQgPGNvZGU+TG9uZy5NQVhfVkFMVUU8L2NvZGU+IHRvCisgICAgICogdGhlIChpbnRlcm5hbCkgPGNvZGU+dG9CaWdEZWNpbWFsVHJ1bmMoKTwvY29kZT4gbWV0aG9kLiBBbnkgdmFsdWVzIG91dHNpZGUKKyAgICAgKiBvZiB0aGUgcmFuZ2Ugb2YgYSA8Y29kZT5sb25nPC9jb2RlPiBhcmUgcGlubmVkLgorICAgICAqIAorICAgICAqIFRoZSBtaW1pbXVtIGFuZCBtYXhpbXVtIHZhbHVlcyBmb3IgPGNvZGU+dG9Mb25nPC9jb2RlPiBhcmUgY2FsdWxhdGVkIGJ5IHBhc3NpbmcKKyAgICAgKiB0aGUgbWluIGFuZCBtYXggdmFsdWVzIGNhbGN1bGF0ZWQgYWJvdmUgdG8gPGNvZGU+QmlnRGVjaW1hbEZyb20oKTwvY29kZT4uIEJlY2F1c2UKKyAgICAgKiB0aGlzIG1ldGhvZCB3aWxsIHJvdW5kLCB0aGUgcmV0dXJuZWQgdmFsdWVzIGFyZSBhZGp1c3RlZCB0byB0YWtlIHRoaXMgaW50byBhY2NvdW50LgorICAgICAqIAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGUKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYXJncyAtIHRoZSBjb21tYW5kIGxpbmUgYXJ1Z21lbnRzCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgVGltZVpvbmUgdXRjID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodXRjLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm10ID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswfUwsIHsxfUwsIHsyfUwsIHszfUwiKTsgICAgICAgIAorICAgICAgICBCaWdEZWNpbWFsIHVuaXZlcnNhbE1pbiA9IG5ldyBCaWdEZWNpbWFsKExvbmcuTUlOX1ZBTFVFKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml2ZXJzYWxNYXggPSBuZXcgQmlnRGVjaW1hbChMb25nLk1BWF9WQUxVRSk7CisgICAgICAgIE9iamVjdCBsaW1pdEFyZ3NbXSA9IHtudWxsLCBudWxsLCBudWxsLCBudWxsfTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5UbywgRnJvbSBsaW1pdHM6Iik7CisgICAgICAgIAorICAgICAgICAvLyBmcm9tIGxpbWl0cworICAgICAgICBmb3IoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICBCaWdEZWNpbWFsIG1pbiA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyh1bml2ZXJzYWxNaW4sIHNjYWxlKS5tYXgodW5pdmVyc2FsTWluKTsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgbWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbFRydW5jKHVuaXZlcnNhbE1heCwgc2NhbGUpLm1pbih1bml2ZXJzYWxNYXgpOworICAgICAgICAgICAgbG9uZyBtaW5Mb25nICAgPSBtaW4ubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICBsb25nIG1heExvbmcgICA9IG1heC5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGltaXRBcmdzWzJdID0gbWluLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsaW1pdEFyZ3NbM10gPSBtYXgudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgLy8gdG8gbGltaXRzCisgICAgICAgICAgICBCaWdEZWNpbWFsIG1pblRydW5jICAgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20obWluLCBzY2FsZSk7CisgICAgICAgICAgICBCaWdEZWNpbWFsIG1heFRydW5jICAgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20obWF4LCBzY2FsZSk7CisgICAgICAgICAgICBCaWdEZWNpbWFsIG1pblJlc2lkdWUgPSBtaW5UcnVuYy5zdWJ0cmFjdCh1bml2ZXJzYWxNaW4pOworICAgICAgICAgICAgQmlnRGVjaW1hbCBtYXhSZXNpZHVlID0gdW5pdmVyc2FsTWF4LnN1YnRyYWN0KG1heFRydW5jKTsKKyAgICAgICAgICAgIGxvbmcgdW5pdHMgICAgICAgICAgICA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlVOSVRTX1ZBTFVFKTsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgaGFsZiAgICAgICA9IG5ldyBCaWdEZWNpbWFsKHVuaXRzID09IDE/IDA6IHVuaXRzIC8gMiAtIDEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtaW4gPSBtaW5UcnVuYy5zdWJ0cmFjdChtaW5SZXNpZHVlLm1pbihoYWxmKSk7CisgICAgICAgICAgICBtYXggPSBtYXhUcnVuYy5hZGQobWF4UmVzaWR1ZS5taW4oaGFsZikpOworICAgICAgICAgICAgbGltaXRBcmdzWzBdID0gbWluLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsaW1pdEFyZ3NbMV0gPSBtYXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQobGltaXRBcmdzKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHJvdW5kLXRyaXAgdGVzdCB0aGUgZnJvbSBsaW1pdHMKKyAgICAgICAgICAgIGlmKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20obWluTG9uZywgc2NhbGUpLCBzY2FsZSkgIT0gbWluTG9uZykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT09QUzogbWluIGRpZG4ndCByb3VuZCB0cmlwISIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKG1heExvbmcsIHNjYWxlKSwgc2NhbGUpICE9IG1heExvbmcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9PUFM6IG1heCBkaWRuJ3Qgcm91bmQgdHJpcCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHRvIGxpbWl0cyBjb252ZXJ0IHRvIHRoZSBmcm9tIGxpbWl0cworICAgICAgICAgICAgaWYoVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhtaW4ubG9uZ1ZhbHVlKCksIHNjYWxlKSAhPSBtaW5Mb25nKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPT1BTOiB0b0xvbmcodG9NaW4pICE9IGZyb21NaW4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhtYXgubG9uZ1ZhbHVlKCksIHNjYWxlKSAhPSBtYXhMb25nKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPT1BTOiB0b0xvbmcodG9NYXgpICE9IGZyb21NYXgiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvRXBvY2hPZmZzZXRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0Vwb2NoT2Zmc2V0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YTk0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0Vwb2NoT2Zmc2V0cy5qYXZhCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50aW1lc2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisKKy8qKgorICogVGhpcyB0b29sIGNhbGN1bGF0ZXMgdGhlIG51bWVyaWMgdmFsdWVzIG9mIHRoZSBlcG9jaCBvZmZzZXRzCisgKiB1c2VkIGluIFVuaXZlcnNhbFRpbWVTY2FsZS4KKyAqIAorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZQorICogCisgKkBkcmFmdCBJQ1UgMy4yIAorICovCitwdWJsaWMgY2xhc3MgRXBvY2hPZmZzZXRzCit7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBFcG9jaE9mZnNldHMoKQorICAgIHsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHRpY2tzICAgICAgICA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBtaWNyb3NlY29uZHMgPSB0aWNrcyAqIDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWlsbGlzZWNvbmRzID0gbWljcm9zZWNvbmRzICogMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlY29uZHMgICAgICA9IG1pbGxpc2Vjb25kcyAqIDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBtaW51dGVzICAgICAgPSBzZWNvbmRzICogNjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBob3VycyAgICAgICAgPSBtaW51dGVzICogNjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBkYXlzICAgICAgICAgPSBob3VycyAqIDI0OworICAgIC8vIEphdmEgbWVhc3VyZXMgdGltZSBpbiBtaWxsaXNlY29uZHMsIG5vdCBpbiAxMDBucyB0aWNrcy4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGphdmFEYXlzICAgICA9IGRheXMgLyBtaWxsaXNlY29uZHM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXVtdIGVwb2NoRGF0ZXMgPSB7CisgICAgICAgICAgICB7ICAgMSwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxfSwKKyAgICAgICAgICAgIHsxOTcwLCBDYWxlbmRhci5KQU5VQVJZLCAgIDF9LAorICAgICAgICAgICAgezE2MDEsIENhbGVuZGFyLkpBTlVBUlksICAgMX0sCisgICAgICAgICAgICB7MTkwNCwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxfSwKKyAgICAgICAgICAgIHsyMDAxLCBDYWxlbmRhci5KQU5VQVJZLCAgIDF9LAorICAgICAgICAgICAgezE4OTksIENhbGVuZGFyLkRFQ0VNQkVSLCAzMX0sCisgICAgICAgICAgICB7MTkwMCwgQ2FsZW5kYXIuTUFSQ0gsICAgICAxfQorICAgIH07CisgICAgCisgICAgLyoqCisgICAgICogVGhlIDxjb2RlPm1haW4oKTwvY29kZT4gbWV0aG9kIGNhbGN1bGF0ZXMgdGhlIGVwb2NoIG9mZnNldHMgdXNlZCBieSB0aGUKKyAgICAgKiA8Y29kZT5Vbml2ZXJzYWxUaW1lU2NhbGU8L2NvZGU+IGNsYXNzLgorICAgICAqIAorICAgICAqIFRoZSBjYWxjdWxhdGlvbnMgYXJlIGRvbmUgdXNpbmcgYW4gSUNVIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QuIFRoZSBmaXJzdCBzdGVwIGlzCisgICAgICogdG8gY2FsY3VsYXRlIHRoZSBVbml2ZXJzYWwgVGltZSBTY2FsZSdzIGVwb2NoIGRhdGUuIFRoZW4gdGhlIGVwb2NoIG9mZnNldHMgYXJlIGNhbGN1bGF0ZWQKKyAgICAgKiBieSBjYWxjdWxhdGluZyBlYWNoIGVwb2NoIGRhdGUsIHN1YnRyYWN0aW5nIHRoZSB1bml2ZXJzYWwgZXBvY2ggZGF0ZSBmcm9tIGl0LCBhbmQgY29udmVydGluZworICAgICAqIHRoYXQgdmFsdWUgdG8gdGlja3MuCisgICAgICogCisgICAgICogQHBhcmFtIGFyZ3MgLSB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBUaW1lWm9uZSB1dGMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpOworCisgICAgICAgIC8vIEppdHRlcmJ1ZyA1MjExOiAuTmV0IFN5c3RlbS5EYXRlVGltZSB1c2VzIHRoZSBwcm9sZXB0aWMgY2FsZW5kYXIsCisgICAgICAgIC8vIHdoaWxlIElDVSBieSBkZWZhdWx0IHVzZXMgdGhlIEp1bGlhbiBjYWxlbmRhciBiZWZvcmUgMTU4Mi4KKyAgICAgICAgLy8gT3JpZ2luYWwgY29kZTogQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodXRjLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIFVzZSBhIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgZm9yIDAwMDFBRCBhbmQgbGF0ZXIgYnkgc2V0dGluZworICAgICAgICAvLyB0aGUgR3JlZ29yaWFuIGNoYW5nZSBkYXRlIGJlZm9yZSAwMDAxQUQgd2l0aCBhIHZhbHVlCisgICAgICAgIC8vIHRoYXQgaXMgc2FmZWx5IGJlZm9yZSB0aGF0IGRhdGUgYnkgYW55IG1lYXN1cmUsIGkuZS4sCisgICAgICAgIC8vIG1vcmUgdGhhbiA3MTkxNjQgZGF5cyBiZWZvcmUgMTk3MC4KKyAgICAgICAgbG9uZyBiZWZvcmUwMDAxQUQgPSAtMTAwMDAwMCAqIGphdmFEYXlzOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodXRjLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoYmVmb3JlMDAwMUFEKSk7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiezAsIGRhdGUsIGZ1bGx9IHswLCB0aW1lLCBmdWxsfSA9IHsxfSIpOworICAgICAgICBPYmplY3QgYXJndW1lbnRzW10gPSB7Y2FsLCBudWxsfTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXBvY2ggb2Zmc2V0czoiKTsKKyAgICAgICAgCisgICAgICAgIC8vIEphbnVhcnkgMSwgMDAwMSAwMDowMDowMCBpcyB0aGUgdW5pdmVyc2FsIGVwb2NoIGRhdGUuLi4KKyAgICAgICAgY2FsLnNldCgxLCBDYWxlbmRhci5KQU5VQVJZLCAxLCAwLCAwLCAwKTsKKworICAgICAgICBsb25nIHVuaXZlcnNhbEVwb2NoID0gY2FsLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBlcG9jaERhdGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBpbnRbXSBkYXRlID0gZXBvY2hEYXRlc1tpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FsLnNldChkYXRlWzBdLCBkYXRlWzFdLCBkYXRlWzJdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9uZyBtaWxsaXMgPSBjYWwuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGFyZ3VtZW50c1sxXSA9IExvbmcudG9TdHJpbmcoKG1pbGxpcyAtIHVuaXZlcnNhbEVwb2NoKSAqIG1pbGxpc2Vjb25kcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvR2VuZXJhdGVDVGltZVNjYWxlRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RpbWVzY2FsZS9HZW5lcmF0ZUNUaW1lU2NhbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FhNWI5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvR2VuZXJhdGVDVGltZVNjYWxlRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50aW1lc2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGU7CisKKy8qKgorICogVGhpcyBjbGFzcyBwcmludHMgb3V0IHRoZSBpbml0aWFsaXplcnMgbmVlZGVkIHRvIGluaXRpYWxpemUKKyAqIHRoZSB0aW1lIHNjYWxlIGRhdGEgaW4gdGhlIEMgdmVyc2lvbiBvZiA8Y29kZT5Vbml2ZXJzYWxUaW1lU2NhbGU8L2NvZGU+LgorICogCisgKiBJdCBqdXN0IGNhbGxzIDxjb2RlPmdldFRpbWVTY2FsZVZhbHVlKCk8L2NvZGU+IGZvciBhbGwgZmllbGRzIGFuZCBwcmludHMKKyAqIHRoZSBpbml0aWFsaXplcnMuIEJlY2F1c2Ugc29tZSBDIGNvbXBpbGVycyBjYW4ndCBjb21waWxlIGEgbGl0ZXJhbCBjb25zdGFudCBmb3IKKyAqIHRoZSBtaW5pbXVtIGFuZCAvIG9yIG1heGltdW0gdmFsdWVzIG9mIGFuIDxjb2RlPmludDY0X3Q8L2NvZGU+LCB0aGlzIGNvZGUgd2lsbAorICogcHJpbnQgPGNvZGU+VV9JTlQ2NF9NSU48L2NvZGU+IG9yIDxjb2RlPlVfSU5UNjRfTUFYPC9jb2RlPiBmb3IgdGhlc2UgdmFsdWVzLgorICogCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlCisgKiAKKyAqIEBkcmFmdCBJQ1UgMy4yCisgKi8KK3B1YmxpYyBjbGFzcyBHZW5lcmF0ZUNUaW1lU2NhbGVEYXRhCit7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBHZW5lcmF0ZUNUaW1lU2NhbGVEYXRhKCkKKyAgICB7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyB0aWNrcyAgICAgICAgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWljcm9zZWNvbmRzID0gdGlja3MgKiAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbGxpc2Vjb25kcyA9IG1pY3Jvc2Vjb25kcyAqIDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZWNvbmRzICAgICAgPSBtaWxsaXNlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWludXRlcyAgICAgID0gc2Vjb25kcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgaG91cnMgICAgICAgID0gbWludXRlcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZGF5cyAgICAgICAgID0gaG91cnMgKiAyNDsKKworICAgIC8qCisgICAgICogUmV0dXJucyA8Y29kZT5TdHJpbmc8L2NvZGU+IHRoYXQgaXMgYSBsaXRlcmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiB2YWx1ZS4KKyAgICAgKiBUaGlzIHdpbGwgZWl0aGVyIGJlIGEgY2FsbCB0byB0aGUgPGNvZGU+SU5UNjRfQygpPC9jb2RlPiBtYWNybywgb3IgdGhlIGNvbnN0YW50CisgICAgICogPGNvZGU+VV9JTlQ2NF9NSU48L2NvZGU+IG9yIDxVX0lOVDY0X01BWD4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIG1pbk1heEZpbHRlcihsb25nIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID09IExvbmcuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gIlVfSU5UNjRfTUlOIjsKKyAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSBMb25nLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuICJVX0lOVDY0X01BWCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAiSU5UNjRfQygiICsgTG9uZy50b1N0cmluZyh2YWx1ZSkgKyAiKSI7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHByaW50cyB0aGUgQyBpbml0aWFsaXplcnMgZm9yIHRoZSB0aW1lIHNjYWxlIGRhdGEuCisgICAgICogCisgICAgICogQHBhcmFtIGFyZ3MgLSB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworICAgICAqIAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGUKKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCIneyd7MH0sIHsxfSwgezJ9LCB7M30sIHs0fSwgezV9LCB7Nn0sIHs3fSwgezh9LCB7OX0sIHsxMH19LCIpOworICAgICAgICBPYmplY3QgY2FyZ3NbXSA9IHtudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsfTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5DIGRhdGE6Iik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyB1bml0cyA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlVOSVRTX1ZBTFVFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHVuaXRzID09IHRpY2tzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAidGlja3MiOworICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0cyA9PSBtaWNyb3NlY29uZHMpIHsKKyAgICAgICAgICAgICAgICBjYXJnc1swXSA9ICJtaWNyb3NlY29uZHMiOworICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0cyA9PSBtaWxsaXNlY29uZHMpIHsKKyAgICAgICAgICAgICAgICBjYXJnc1swXSA9ICJtaWxsaXNlY29uZHMiOworICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0cyA9PSBzZWNvbmRzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAic2Vjb25kcyI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHVuaXRzID09IG1pbnV0ZXMpIHsKKyAgICAgICAgICAgICAgICBjYXJnc1swXSA9ICJtaW51dGVzIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5pdHMgPT0gaG91cnMpIHsKKyAgICAgICAgICAgICAgICBjYXJnc1swXSA9ICJob3VycyI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHVuaXRzID09IGRheXMpIHsKKyAgICAgICAgICAgICAgICBjYXJnc1swXSA9ICJkYXlzIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAiSU5UNjRfQygiICsgTG9uZy50b1N0cmluZyh1bml0cykgKyAiKSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhcmdzWzFdICA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5FUE9DSF9PRkZTRVRfVkFMVUUpKTsKKyAgICAgICAgICAgIGNhcmdzWzJdICA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01JTl9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbM10gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkZST01fTUFYX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1s0XSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVE9fTUlOX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1s1XSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVE9fTUFYX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1s2XSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRVBPQ0hfT0ZGU0VUX1BMVVNfMV9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbN10gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkVQT0NIX09GRlNFVF9NSU5VU18xX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1s4XSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVU5JVFNfUk9VTkRfVkFMVUUpKTsKKyAgICAgICAgICAgIGNhcmdzWzldICA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5NSU5fUk9VTkRfVkFMVUUpKTsKKyAgICAgICAgICAgIGNhcmdzWzEwXSA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfUk9VTkRfVkFMVUUpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQoY2FyZ3MpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Tb3VyY2VTZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Tb3VyY2VTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzNlOTg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1NvdXJjZVNldC5qYXZhCkBAIC0wLDAgKzEsMTA5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMjkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqICAgMDYvMjYvMjAwMiAgYWxpdSAgICAgICAgTW92ZWQgdG8gY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0OworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0LlVuaWNvZGVTZXRDbG9zdXJlOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogQ2xhc3MgdGhhdCBnZW5lcmF0ZXMgc291cmNlIHNldCBpbmZvcm1hdGlvbiBmb3IgYSB0cmFuc2xpdGVyYXRvci4KKyAqIAorICogVG8gcnVuLCB1c2U6CisgKiAKKyAqICAgamF2YSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5Tb3VyY2VTZXQgTGF0aW4tS2F0YWthbmEgTkZEIGxvd2VyCisgKiAKKyAqIE91dHB1dCBpcyBwcm9kdWNlZCBpbiB0aGUgY29tbWFuZCBjb25zb2xlLCBhbmQgYSBmaWxlIHdpdGggbW9yZSBkZXRhaWwgaXMgYWxzbyB3cml0dGVuLgorICogCisgKiBUbyBzZWUgaWYgaXQgd29ya3MsIHVzZToKKyAqIAorICogICBqYXZhIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0LlRyYW5zbGl0ZXJhdG9yVGVzdCAtdiAtbm90aHJvdyBUZXN0SW5jcmVtZW50YWxQcm9ncmVzcworICogCisgKiBhbmQKKyAqICAKKyAqICAgamF2YSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdC5EZW1vCisgKi8KK3B1YmxpYyBjbGFzcyBTb3VyY2VTZXQgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIC8vIENvbXB1dGUgYW5kIGRpc3BsYXkgdGhlIHNvdXJjZSBzZXRzIGZvciBhbGwgc3lzdGVtCisgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRvcnMuCisgICAgICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVJRHMoKTsgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIElEID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIHNob3dTb3VyY2VTZXQoSUQsIE5vcm1hbGl6ZXIuTk9ORSwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVXNhZ2U6IElEIFtORktEIHwgTkZEXSBbbG93ZXJdCisgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbSA9IE5vcm1hbGl6ZXIuTk9ORTsKKyAgICAgICAgICAgIGJvb2xlYW4gbG93ZXJGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJnc1sxXS5lcXVhbHNJZ25vcmVDYXNlKCJORkQiKSkgeworICAgICAgICAgICAgICAgICAgICBtID0gTm9ybWFsaXplci5ORkQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzFdLmVxdWFsc0lnbm9yZUNhc2UoIk5GS0QiKSkgeworICAgICAgICAgICAgICAgICAgICBtID0gTm9ybWFsaXplci5ORktEOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDMpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJnc1syXS5lcXVhbHNJZ25vcmVDYXNlKCJsb3dlciIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvd2VyRmlyc3QgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMykgeworICAgICAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzaG93U291cmNlU2V0KGFyZ3NbMF0sIG0sIGxvd2VyRmlyc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgc2hvd1NvdXJjZVNldChTdHJpbmcgSUQsIE5vcm1hbGl6ZXIuTW9kZSBtLCBib29sZWFuIGxvd2VyRmlyc3QpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKCJVbmljb2RlU2V0Q2xvc3VyZS50eHQiKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZi5nZXRDYW5vbmljYWxGaWxlKCkudG9TdHJpbmcoKTsKKyAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlbmFtZSksICJVVEYtOCIpKTsKKyAgICAgICAgb3V0LnByaW50KCdcdUZFRkYnKTsgLy8gQk9NCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIGZpbGVuYW1lKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgc2hvd1NvdXJjZVNldEF1eCh0LCBtLCBsb3dlckZpcnN0LCB0cnVlKTsKKyAgICAgICAgc2hvd1NvdXJjZVNldEF1eCh0LmdldEludmVyc2UoKSwgbSwgbG93ZXJGaXJzdCwgZmFsc2UpOworICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFByaW50V3JpdGVyIG91dDsKKyAgICAKKyAgICBzdGF0aWMgdm9pZCBzaG93U291cmNlU2V0QXV4KFRyYW5zbGl0ZXJhdG9yIHQsIE5vcm1hbGl6ZXIuTW9kZSBtLCBib29sZWFuIGxvd2VyRmlyc3QsIGJvb2xlYW4gZm9yd2FyZCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VTZXQgPSB0LmdldFNvdXJjZVNldCgpOworICAgICAgICBpZiAobSAhPSBOb3JtYWxpemVyLk5PTkUgfHwgbG93ZXJGaXJzdCkgeworICAgICAgICAgICAgVW5pY29kZVNldENsb3N1cmUuY2xvc2Uoc291cmNlU2V0LCBtLCBsb3dlckZpcnN0KTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odC5nZXRJRCgpICsgIjogIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VTZXQudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiMgTUlOSU1BTCBGSUxURVIgR0VORVJBVEVEIEZPUjogIiArIHQuZ2V0SUQoKSArIChmb3J3YXJkID8gIiIgOiAiIFJFVkVSU0UiKSk7CisgICAgICAgIG91dC5wcmludGxuKCI6OiAiIAorICAgICAgICAgICAgKyAoZm9yd2FyZCA/ICIiIDogIiggIikgCisgICAgICAgICAgICArIHNvdXJjZVNldC50b1BhdHRlcm4odHJ1ZSkgCisgICAgICAgICAgICArIChmb3J3YXJkID8gIiIgOiAiICkiKQorICAgICAgICAgICAgKyAiIDsiKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiMgVW5pY29kZTogIiArIHNvdXJjZVNldC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgb3V0LnByaW50bG4oKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCB1c2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogSUQgWyBORkR8TkZLRCBbbG93ZXJdIF0iKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1RyYW5zLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVHJhbnMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNGQ0M2QyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1RyYW5zLmphdmEKQEAgLTAsMCArMSwxNDAgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHRvIHRoZSBJQ1U0SiB0cmFuc2xpdGVyYXRvcnMuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBUcmFucyB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgYm9vbGVhbiBpc0hUTUwgPSBmYWxzZTsKKyAgICAgICAgaW50IHBvcyA9IDA7CisKKyAgICAgICAgU3RyaW5nIHRyYW5zTmFtZSA9IG51bGw7IC8vIGZpcnN0IHVudGFnZ2VkIHN0cmluZyBpcyB0aGlzCisgICAgICAgIFN0cmluZyBpblRleHQgPSBudWxsOyAvLyBhbGwgb3RoZXIgdW50YWdnZWQgc3RyaW5ncyBhcmUgdGhpcworICAgICAgICBTdHJpbmcgaW5OYW1lID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIG91dE5hbWUgPSBudWxsOworCisgICAgICAgIHdoaWxlIChwb3MgPCBhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgaWYgKGFyZ3NbcG9zXS5lcXVhbHMoIi1odG1sIikpIHsKKyAgICAgICAgICAgICAgICBpc0hUTUwgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzW3Bvc10uZXF1YWxzKCItaSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCsrcG9zID09IGFyZ3MubGVuZ3RoKSB1c2FnZSgpOworICAgICAgICAgICAgICAgIGluTmFtZSA9IGFyZ3NbcG9zXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1twb3NdLmVxdWFscygiLW8iKSkgeworICAgICAgICAgICAgICAgIGlmICgrK3BvcyA9PSBhcmdzLmxlbmd0aCkgdXNhZ2UoKTsKKyAgICAgICAgICAgICAgICBvdXROYW1lID0gYXJnc1twb3NdOworICAgICAgICAgICAgfSBlbHNlIGlmICh0cmFuc05hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyYW5zTmFtZSA9IGFyZ3NbcG9zXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGluVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGluVGV4dCA9IGFyZ3NbcG9zXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpblRleHQgPSBpblRleHQgKyAiICIgKyBhcmdzW3Bvc107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgKytwb3M7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5UZXh0ICE9IG51bGwgJiYgaW5OYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zTmFtZSk7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGluID0gbnVsbDsKKyAgICAgICAgaWYgKGluTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIobmV3IEZpbGVJbnB1dFN0cmVhbShpbk5hbWUpLCAiVVRGOCIpKTsKKyAgICAgICAgfQorICAgICAgICBQcmludFdyaXRlciBvdXQgPSBudWxsOworICAgICAgICBpZiAob3V0TmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbShvdXROYW1lKSwgIlVURjgiKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnModHJhbnMsIGluVGV4dCwgaW4sIG91dCwgaXNIVE1MKTsKKyAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdHJhbnMoVHJhbnNsaXRlcmF0b3IgdHJhbnMsIFN0cmluZyBpblRleHQsCisgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4sIFByaW50V3JpdGVyIG91dCwgYm9vbGVhbiBpc0hUTUwpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGJvb2xlYW4gaW5UYWcgPSBmYWxzZTsgLy8gSWYgdHJ1ZSwgd2UgYXJlIHdpdGhpbiBhIDx0YWc+CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChpblRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxpbmUgPSBpblRleHQ7CisgICAgICAgICAgICAgICAgaW5UZXh0ID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaW4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxpbmUgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzSFRNTCkgeworICAgICAgICAgICAgICAgIC8vIFBhc3MgdGFncyBiZXR3ZWVuIDwgYW5kID4gdW5jaGFuZ2VkCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBpbnQgcmlnaHQgPSAtMTsKKyAgICAgICAgICAgICAgICBpZiAoaW5UYWcpIHsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSBsaW5lLmluZGV4T2YoJz4nKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSBsaW5lLmxlbmd0aCgpLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChsaW5lLnN1YnN0cmluZygwLCByaWdodCsxKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCIqUzoiICsgbGluZS5zdWJzdHJpbmcoMCwgcmlnaHQrMSkpOworICAgICAgICAgICAgICAgICAgICBpblRhZyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgIGludCBsZWZ0ID0gbGluZS5pbmRleE9mKCc8JywgcmlnaHQrMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0IDwgbGluZS5sZW5ndGgoKS0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCh0cmFucy50cmFuc2xpdGVyYXRlKGxpbmUuc3Vic3RyaW5nKHJpZ2h0KzEpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlQ6IiArIGxpbmUuc3Vic3RyaW5nKHJpZ2h0KzEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0cmFuc2xpdGVyYXRlZCBzZWdtZW50IHJpZ2h0KzEuLmxlZnQtMQorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHRyYW5zLnRyYW5zbGl0ZXJhdGUobGluZS5zdWJzdHJpbmcocmlnaHQrMSwgbGVmdCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlQ6IiArIGxpbmUuc3Vic3RyaW5nKHJpZ2h0KzEsIGxlZnQpKTsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSBsaW5lLmluZGV4T2YoJz4nLCBsZWZ0KzEpOworICAgICAgICAgICAgICAgICAgICBpZiAocmlnaHQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpblRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGxpbmUuc3Vic3RyaW5nKGxlZnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTOiIgKyBsaW5lLnN1YnN0cmluZyhsZWZ0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGxpbmUuc3Vic3RyaW5nKGxlZnQsIHJpZ2h0KzEpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlM6IiArIGxpbmUuc3Vic3RyaW5nKGxlZnQsIHJpZ2h0KzEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGluZSA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gdHJhbnMudHJhbnNsaXRlcmF0ZShsaW5lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKGxpbmUpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEVtaXQgdXNhZ2UgYW5kIGRpZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCB1c2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVc2FnZTogamF2YSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5UcmFucyBbLWh0bWxdIDx0cmFucz4gKCA8aW5wdXQ+IHwgLWkgPGluZmlsZT4pIFsgLW8gPG91dGZpbGU+IF0iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8dHJhbnM+ICAgTmFtZSBvZiB0cmFuc2xpdGVyYXRvciIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjxpbnB1dD4gICBUZXh0IHRvIHRyYW5zbGl0ZXJhdGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8aW5maWxlPiAgTmFtZSBvZiBpbnB1dCBmaWxlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPG91dGZpbGU+IE5hbWUgb2Ygb3V0cHV0IGZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItaHRtbCAgICAgT25seSB0cmFuc2xpdGVyYXRlIHRleHQgb3V0c2lkZSBvZiA8dGFncz4iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbnB1dCBtYXkgY29tZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgb3IgYSBmaWxlLlxuIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT3VwdXQgbWF5IGdvIHRvIHN0ZG91dCBvciBhIGZpbGUuXG4iKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1VuaWNvZGVTZXRDbG9zZU92ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc2VPdmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg5YjRhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc2VPdmVyLmphdmEKQEAgLTAsMCArMSw0NjYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBGZWJydWFyeSAxMSAyMDAzCisqIFNpbmNlOiBJQ1UgMi42CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogVGhpcyBjbGFzcyBwcm9kdWNlcyB0aGUgZGF0YSB0YWJsZXMgdXNlZCBieSB0aGUgY2xvc2VPdmVyKCkgbWV0aG9kCisgKiBvZiBVbmljb2RlU2V0LgorICoKKyAqIFdoZW5ldmVyIHRoZSBVbmljb2RlIGRhdGFiYXNlIGNoYW5nZXMsIHRoaXMgdG9vbCBtdXN0IGJlIHJlLXJ1bgorICogKEFGVEVSIHRoZSBkYXRhIGZpbGUocykgdW5kZXJseWluZyBJQ1U0SiBhcmUgdWRwYXRlZCkuCisgKgorICogVGhlIG91dHB1dCBvZiB0aGlzIHRvb2wgc2hvdWxkIHRoZW4gYmUgcGFzdGVkIGludG8gdGhlIGFwcHJvcHJpYXRlCisgKiBmaWxlczoKKyAqCisgKiBJQ1U0SjogY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0LmphdmEKKyAqIElDVTRDOiAvaWN1L3NvdXJjZS9jb21tb24vdW5pc2V0LmNwcAorICovCitjbGFzcyBVbmljb2RlU2V0Q2xvc2VPdmVyIHsKKworICAgIC8vIE91ciBvdXRwdXQgZmlsZXMKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIEpBVkFfT1VUICAgICAgICAgID0gInRvX1VuaWNvZGVTZXQuamF2YSI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBKQVZBX0NIQVJQUk9QX09VVCA9ICJ0b19VQ2hhcmFjdGVyUHJvcGVydHkuamF2YSI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDX1NFVF9PVVQgICAgICAgICA9ICJ0b191bmlzZXQuY3BwIjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENfVUNIQVJfT1VUICAgICAgID0gInRvX3VjaGFyLmMiOworCisgICAgLy8gU291cmNlIGNvZGUgImRvIG5vdCBlZGl0IiB3YXJuaW5nCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBXQVJOSU5HID0gIk1BQ0hJTkUtR0VORVJBVEVEOyBVbmljb2RlIHZlcnNpb24gIiArCisgICAgICAgIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKSArCisgICAgICAgICI7IERPIE5PVCBFRElUOyBTZWUgIiArCisgICAgICAgIFVuaWNvZGVTZXRDbG9zZU92ZXIuY2xhc3MuZ2V0TmFtZSgpOworCisgICAgLy8gQ2FzZSBmb2xkaW5nIG9wdGlvbnMgZmxhZy4gIFRoaXMgbXVzdCBjb3JyZXNwb25kIHRvIHRoZSBvcHRpb25zCisgICAgLy8gdXNlZCBpbiBVbmljb2RlU2V0LmNsb3NlT3ZlcigpIGluIEphdmEgYW5kIEMrKy4KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUZBVUxUX0NBU0VfTUFQID0gdHJ1ZTsgLy8gZmFsc2UgZm9yIFR1cmtpc2gKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhpcyB0b29sIHdpbGwgZ2VuZXJhdGUgc2V2ZXJhbCBvdXRwdXQgZmlsZXMuICBFYWNoIGlzIG5hbWVkIGFjY29yZGluZyIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInRoZSB0YXJnZXQgZmlsZS4gIEZvciBleGFtcGxlLCB0aGUgY29udGVudHMgb2YgdG9fVW5pY29kZVNldC5qYXZhIHNob3VsZCIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImJlIHBhc3RlZCBpbnRvIFVuaWNvZGVTZXQuamF2YS4iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisKKyAgICAgICAgZ2VuZXJhdGVDYXNlRGF0YSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG1hcCBvZiBTdHJpbmcgPT4gU2V0LiAgVGhlIFN0cmluZyBpbiB0aGlzIGNhc2UgaXMgYQorICAgICAqIGZvbGRlZCBzdHJpbmcgZm9yIHdoaWNoCisgICAgICogVUNoYXJhY3Rlci5mb2xkQ2FzZShmb2xkZWQuIERFRkFVTFRfQ0FTRV9NQVApLmVxdWFscyhmb2xkZWQpLgorICAgICAqIFRoZSBTZXQgY29udGFpbnMgYWxsIHNpbmdsZS1jaGFyYWN0ZXIgc3RyaW5ncyB4IGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXIuZm9sZENhc2UoeCwgREVGQVVMVF9DQVNFX01BUCkuZXF1YWxzKGZvbGRlZCksIGFzCisgICAgICogd2VsbCBhcyBmb2xkZWQgaXRzZWxmLgorICAgICAqLworICAgIHN0YXRpYyBNYXAgY3JlYXRlQ2FzZUZvbGRFcXVpdmFsZW5jeUNsYXNzZXMoKSB7CisgICAgICAgIE1hcCBlcXVpdkNsYXNzZXMgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICBpbnQgY2F0ID0gVUNoYXJhY3Rlci5nZXRUeXBlKGkpOworICAgICAgICAgICAgaWYgKGNhdCA9PSBDaGFyYWN0ZXIuVU5BU1NJR05FRCB8fCBjYXQgPT0gQ2hhcmFjdGVyLlBSSVZBVEVfVVNFKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgU3RyaW5nIGZvbGRlZCA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIERFRkFVTFRfQ0FTRV9NQVApOworICAgICAgICAgICAgaWYgKGZvbGRlZC5lcXVhbHMoY3ApKSBjb250aW51ZTsKKworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgaGF2ZSBkaWZmZXJlbnQgY2FzZSBmb2xkaW5nLiAgQWRkCisgICAgICAgICAgICAvLyB0aGUgY29kZSBwb2ludCBhbmQgaXRzIGZvbGRlZCBlcXVpdmFsZW50IGludG8gdGhlCisgICAgICAgICAgICAvLyBlcXVpdmFsZW5jeSBjbGFzcy4KKyAgICAgICAgICAgIFRyZWVTZXQgcyA9IChUcmVlU2V0KSBlcXVpdkNsYXNzZXMuZ2V0KGZvbGRlZCk7CisgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgICAgICAgICAgcy5hZGQoZm9sZGVkKTsgLy8gYWRkIHRoZSBjYXNlIGZvbGQgcmVzdWx0IGl0c2VsZgorICAgICAgICAgICAgICAgIGVxdWl2Q2xhc3Nlcy5wdXQoZm9sZGVkLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMuYWRkKGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXF1aXZDbGFzc2VzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFuYWx5emUgdGhlIGNhc2UgZm9sZCBlcXVpdmFsZW5jeSBjbGFzc2VzLiAgQnJlYWsgdGhlbSBpbnRvIHR3bworICAgICAqIGdyb3VwczogJ3BhaXJzJywgYW5kICdub25wYWlycycuICBDcmVhdGUgYSB0YWxseSBvZiB0aGUgbGVuZ3RoCisgICAgICogY29uZmlndXJhdGlvbnMgb2YgdGhlIG5vbnBhaXJzLgorICAgICAqCisgICAgICogTGVuZ3RoIGNvbmZpZ3VyYXRpb25zIG9mIGVxdWl2YWxlbmN5IGNsYXNzZXMsIGFzIG9mIFVuaWNvZGUKKyAgICAgKiAzLjIuICBNb3N0IG9mIHRoZSBjbGFzc2VzICg4MyUpIGhhdmUgdHdvIHNpbmdsZSBjb2RlcG9pbnRzLgorICAgICAqIEhlcmUgIjExMjoyOCIgbWVhbnMgdGhlcmUgYXJlIDI4IGVxdWl2YWxlbmN5IGNsYXNzZXMgd2l0aCAyCisgICAgICogc2luZ2xlIGNvZGVwb2ludHMgYW5kIG9uZSBzdHJpbmcgb2YgbGVuZ3RoIDIuCisgICAgICoKKyAgICAgKiAxMTo2NTYKKyAgICAgKiAxMTE6MTYKKyAgICAgKiAxMTExOjMKKyAgICAgKiAxMTI6MjgKKyAgICAgKiAxMTM6MgorICAgICAqIDEyOjMxCisgICAgICogMTM6MTIKKyAgICAgKiAyMjozOAorICAgICAqCisgICAgICogTm90ZTogVGhpcyBtZXRob2QgZG9lcyBub3QgY291bnQgdGhlIGZyZXF1ZW5jaWVzIG9mIHRoZQorICAgICAqIGRpZmZlcmVudCBsZW5ndGggY29uZmlndXJhdGlvbnMgKGFzIHNob3duIGFib3ZlIGFmdGVyICc6Jyk7IGl0CisgICAgICogbWVyZWx5IHJlY29yZHMgd2hpY2ggY29uZmlndXJhdGlvbnMgb2NjdXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFpcnMgQWNjdW11bGF0ZSBlcXVpdmFsZW5jeSBjbGFzc2VzIHRoYXQgY29uc2lzdCBvZgorICAgICAqIGV4YWN0bHkgdHdvIGNvZGVwb2ludHMgaGVyZS4gIFRoaXMgaXMgODMrJSBvZiB0aGUgY2xhc3Nlcy4KKyAgICAgKiBFLmcuLCB7ImEiLCAiQSJ9LgorICAgICAqIEBwYXJhbSBub25wYWlycyBBY2N1bXVsYXRlIG90aGVyIGVxdWl2YWxlbmN5IGNsYXNzZXMgaGVyZSwgYXMKKyAgICAgKiBsaXN0cyBvZiBzdHJpbmdzLiAgRSxnLCB7InN0IiwgIlx1RkIwNSIsICJcdUZCMDYifS4KKyAgICAgKiBAcGFyYW0gbGVuZ3RocyBBY2N1bXVsYXRlIGEgbGlzdCBvZiB1bmlxdWUgbGVuZ3RoIHN0cnVjdHVyZXMsCisgICAgICogbm90IGluY2x1ZGluZyBwYWlycy4gIEVhY2ggbGVuZ3RoIHN0cnVjdHVyZSBpcyByZXByZXNlbnRlZCBieSBhCisgICAgICogc3RyaW5nIG9mIGRpZ2l0cy4gIFRoZSBkaWdpdCBzdHJpbmcgIjEyIiBtZWFucyB0aGUgZXF1aXZhbGVuY3kKKyAgICAgKiBjbGFzcyBjb250YWlucyBhIHNpbmdsZSBjb2RlIHBvaW50IGFuZCBhIHN0cmluZyBvZiBsZW5ndGggMi4KKyAgICAgKiBUeXBpY2FsIGNvbnRlbnRzIG9mICdsZW5ndGhzJzogeyAiMTExIiwgIjExMTEiLCAiMTEyIiwKKyAgICAgKiAiMTEzIiwgIjEyIiwgIjEzIiwgIjIyIiB9LiAgTm90ZSB0aGUgYWJzZW5jZSBvZiAiMTEiLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGFuYWx5emVDYXNlRGF0YShNYXAgZXF1aXZDbGFzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcGFpcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciBub25wYWlycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIGxlbmd0aHMpIHsKKyAgICAgICAgSXRlcmF0b3IgaSA9IG5ldyBUcmVlU2V0KGVxdWl2Q2xhc3Nlcy5rZXlTZXQoKSkuaXRlcmF0b3IoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgd2hpbGUgKGkuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gaS5uZXh0KCk7CisgICAgICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKFNldCkgZXF1aXZDbGFzc2VzLmdldChrZXkpKTsKKyAgICAgICAgICAgIGlmICh2LnNpemUoKSA9PSAyKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGEgPSAoU3RyaW5nKSB2LmVsZW1lbnRBdCgwKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IChTdHJpbmcpIHYuZWxlbWVudEF0KDEpOworICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCgpID09IDEgJiYgYi5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIHBhaXJzLmFwcGVuZChhKS5hcHBlbmQoYik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgcGFpcnMgYXJlIGluY2x1ZGVkIGluICdsZW5ndGhzJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZ1tdIGEgPSBuZXcgU3RyaW5nW3Yuc2l6ZSgpXTsKKyAgICAgICAgICAgIHYudG9BcnJheShhKTsKKyAgICAgICAgICAgIG5vbnBhaXJzLmFkZChhKTsKKyAgICAgICAgICAgIC8vaW50IHNpbmdsZUNvdW50ID0gMDsKKyAgICAgICAgICAgIC8vaW50IHN0cmluZ0NvdW50ID0gMDsKKyAgICAgICAgICAgIC8vIE1ha2UgYSBzdHJpbmcgb2YgdGhlIGxlbmd0aHMsIGUuZy4sICIxMTEiIG1lYW5zIDMKKyAgICAgICAgICAgIC8vIHNpbmdsZSBjb2RlIHBvaW50czsgIjEzIiBtZWFucyBhIHNpbmdsZSBjb2RlIHBvaW50CisgICAgICAgICAgICAvLyBhbmQgYSBzdHJpbmcgb2YgbGVuZ3RoIDMuCisgICAgICAgICAgICB2LmNsZWFyKCk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8YS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIHYuYWRkKG5ldyBJbnRlZ2VyKGFbal0ubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENvbGxlY3Rpb25zLnNvcnQodik7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHYuc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFN0cmluZy52YWx1ZU9mKHYuZWxlbWVudEF0KGopKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWxlbmd0aHMuY29udGFpbnMoYnVmLnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgbGVuZ3Rocy5hZGQoYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgZ2VuZXJhdGVDYXNlRGF0YSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgTWFwIGVxdWl2Q2xhc3NlcyA9IGNyZWF0ZUNhc2VGb2xkRXF1aXZhbGVuY3lDbGFzc2VzKCk7CisKKyAgICAgICAgLy8gQWNjdW11bGF0ZSBlcXVpdmFsZW5jeSBjbGFzc2VzIHRoYXQgY29uc2lzdCBvZiBleGFjdGx5CisgICAgICAgIC8vIHR3byBjb2RlcG9pbnRzIGhlcmUuICBUaGlzIGlzIDgzKyUgb2YgdGhlIGNsYXNzZXMuCisgICAgICAgIC8vIEUuZy4sIHsiYSIsICJBIn0uCisgICAgICAgIFN0cmluZ0J1ZmZlciBwYWlycyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBBY2N1bXVsYXRlIG90aGVyIGVxdWl2YWxlbmN5IGNsYXNzZXMgaGVyZSwgYXMgbGlzdHMKKyAgICAgICAgLy8gb2Ygc3RyaW5ncy4gIEUsZywgeyJzdCIsICJcdUZCMDUiLCAiXHVGQjA2In0uCisgICAgICAgIFZlY3RvciBub25wYWlycyA9IG5ldyBWZWN0b3IoKTsgLy8gY29udGFpbnMgU3RyaW5nW10KKyAgICAgICAgVmVjdG9yIGxlbmd0aHMgPSBuZXcgVmVjdG9yKCk7IC8vICIxMTEiLCAiMTIiLCAiMjIiLCBldGMuCisKKyAgICAgICAgYW5hbHl6ZUNhc2VEYXRhKGVxdWl2Q2xhc3NlcywgcGFpcnMsIG5vbnBhaXJzLCBsZW5ndGhzKTsKKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gRW1pdCBKYXZhIHNvdXJjZQorICAgICAgICBQcmludFN0cmVhbSBvdXQgPSBuZXcgUHJpbnRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0oSkFWQV9PVVQpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBKQVZBX09VVCk7CisKKyAgICAgICAgb3V0LnByaW50bG4oIiAgICAvLyAiICsgV0FSTklORyk7CisgICAgICAgIG91dC5wcmludGxuKCIgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENBU0VfUEFJUlMgPSIpOworICAgICAgICBvdXQucHJpbnRsbihVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShwYWlycy50b1N0cmluZygpKSArICI7Iik7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIG91dC5wcmludGxuKCIgICAgLy8gIiArIFdBUk5JTkcpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gQ0FTRV9OT05QQUlSUyA9IHsiKTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPG5vbnBhaXJzLnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBhID0gKFN0cmluZ1tdKSBub25wYWlycy5lbGVtZW50QXQoaik7CisgICAgICAgICAgICBvdXQucHJpbnQoIiAgICAgICAgeyIpOworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPGEubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICBpZiAoayAhPSAwKSBvdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50KFV0aWxpdHkuZm9ybWF0MUZvclNvdXJjZShhW2tdKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigifSwiKTsKKyAgICAgICAgfQorICAgICAgICBvdXQucHJpbnRsbigiICAgIH07Iik7CisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIEVtaXQgQysrIHNvdXJjZQorCisgICAgICAgIC8vIEluIEMrKywgdGhlIHBhaXJzIGFyZSBhZ2FpbiBlbWl0dGVkIGluIGFuIGFycmF5LCBidXQgdGhpcworICAgICAgICAvLyBhcnJheSBpcyB0aGUgZmluYWwgcmVwcmVzZW50YXRpb24gZm9ybSAtLSBpdCB3aWxsIG5vdCBiZQorICAgICAgICAvLyByZXByb2Nlc3NlZCBpbnRvIGEgaGFzaC4gIEl0IHdpbGwgYmUgYmluYXJ5IHNlYXJjaGVkIGJ5CisgICAgICAgIC8vIGxvb2tpbmcgYXQgdGhlIGV2ZW4gZWxlbWVudHMgWzBdLCBbMl0sIFs0XSwgZXRjLiwgYW5kCisgICAgICAgIC8vIGlnbm9yaW5nIHRoZSBvZGQgZWxlbWVudHMuICBUaGUgZXZlbiBlbGVtZW50cyBtdXN0IGNvbnRhaW4KKyAgICAgICAgLy8gdGhlIGZvbGRlZCBtZW1iZXJzIG9mIHRoZSBwYWlycy4gIFRoYXQgaXMsIGluIHRoZSBwYWlyCisgICAgICAgIC8vIHsnQScsICdhJ30sIHRoZSBldmVuIGVsZW1lbnQgbXVzdCBiZSAnYScsIG5vdCAnQScuICBUaGVuIGEKKyAgICAgICAgLy8gY29kZSBwb2ludCB0byBiZSBsb2NhdGVkIGlzIGZpcnN0IGZvbGRlZCAoJ1knID0+ICd5JykgdGhlbgorICAgICAgICAvLyBpdCBiaW5hcnkgc2VhcmNoZWQgYWdhaW5zdCBbMF09J0EnLCBbMl09J0InLCBldGMuICBXaGVuIGEKKyAgICAgICAgLy8gbWF0Y2ggaXMgZm91bmQgYXQgaywgdGhlIHBhaXIgaXMgW2tdLCBbaysxXS4KKworICAgICAgICBvdXQgPSBuZXcgUHJpbnRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0oQ19TRVRfT1VUKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgQ19TRVRfT1VUKTsKKworICAgICAgICAvLyBTb3J0IHRoZSBwYWlycy4gIFRoZXkgbXVzdCBiZSBvcmRlcmVkIGJ5IHRoZSBmb2xkZWQgZWxlbWVudC4KKyAgICAgICAgLy8gU3RvcmUgdGhlc2UgYXMgdHdvLWNoYXJhY3RlciBzdHJpbmdzLCB3aXRoIGNoYXJBdCgwKSBiZWluZworICAgICAgICAvLyB0aGUgZm9sZGVkIG1lbWJlciBvZiB0aGUgcGFpci4KKyAgICAgICAgVHJlZVNldCBzb3J0UGFpcnMgPSBuZXcgVHJlZVNldChuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKChpbnQpICgoU3RyaW5nKSBhKS5jaGFyQXQoMCkpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgKChpbnQpICgoU3RyaW5nKSBiKS5jaGFyQXQoMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGFpcnMubGVuZ3RoKCk7IGkrPTIpIHsKKyAgICAgICAgICAgIFN0cmluZyBhID0gU3RyaW5nLnZhbHVlT2YocGFpcnMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIFN0cmluZyBiID0gU3RyaW5nLnZhbHVlT2YocGFpcnMuY2hhckF0KGkrMSkpOworICAgICAgICAgICAgU3RyaW5nIGZvbGRlZCA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoYSwgREVGQVVMVF9DQVNFX01BUCk7CisgICAgICAgICAgICBpZiAoYS5lcXVhbHMoZm9sZGVkKSkgeworICAgICAgICAgICAgICAgIHNvcnRQYWlycy5hZGQoYSArIGIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzb3J0UGFpcnMuYWRkKGIgKyBhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEVtaXQgdGhlIHBhaXJzCisgICAgICAgIG91dC5wcmludGxuKCIvLyAiICsgV0FSTklORyk7CisgICAgICAgIG91dC5wcmludGxuKCJzdGF0aWMgY29uc3QgVUNoYXIgQ0FTRV9QQUlSU1tdID0geyIpOworICAgICAgICBJdGVyYXRvciBpdCA9IHNvcnRQYWlycy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChuKysgPCA1ICYmIGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIC8vb3V0LnByaW50KChpbnQpIHMuY2hhckF0KDApICsgIiwiICsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgKGludCkgcy5jaGFyQXQoMSkgKyAiLCIpOworICAgICAgICAgICAgICAgIG91dC5wcmludCgiMHgiICsgVXRpbGl0eS5oZXgocy5jaGFyQXQoMCkpICsgIiwweCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgocy5jaGFyQXQoMSkpICsgIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oIn07Iik7CisgICAgICAgIG91dC5wcmludGxuKCk7CisKKyAgICAgICAgLy8gVGhlIG5vbi1wYWlycyBhcmUgZW5jb2RlZCBpbiB0aGUgZm9sbG93aW5nIHdheS4gIEFsbCB0aGUKKyAgICAgICAgLy8gc2luZ2xlIGNvZGVwb2ludHMgaW4gZWFjaCBjbGFzcyBhcmUgZ3JvdXBlZCB0b2dldGhlcgorICAgICAgICAvLyBmb2xsb3dlZCBieSBhIHplcm8uICBUaGVuIGVhY2ggbXVsdGktY2hhcmFjdGVyIHN0cmluZyBpcworICAgICAgICAvLyBhZGRlZCwgZm9sbG93ZWQgYnkgYSB6ZXJvLiAgRmluYWxseSwgYW5vdGhlciB6ZXJvIGlzIGFkZGVkLgorICAgICAgICAvLyBTb21lIGV4YW1wbGVzOgorICAgICAgICAvLyAgeyJpUSIsICJSIn0gICAgICAgICAgID0+ICBbICdSJywgMCwgJ2knLCAnUScsIDAsIDAgXQorICAgICAgICAvLyAgeyJTIiwgIkQiLCAiRiIsICJHIn0gID0+ICBbICdTJywgJ0QnLCAnRicsICdHJywgMCwgMCBdCisgICAgICAgIC8vICB7ImpXIiwgImpZIn0gICAgICAgICAgPT4gIFsgMCwgJ2onLCAnVycsIDAsICdqJywgJ1knLCAwLCAwIF0KKyAgICAgICAgLy8gVGhlIGVuZC1yZXN1bHQgaXMgYSBzaG9ydCwgZmxhdCBhcnJheSBvZiBVQ2hhciB2YWx1ZXMgdGhhdAorICAgICAgICAvLyBjYW4gYmUgdXNlZCB0byBpbml0aWFsaXplIGEgVUNoYXJbXSBhcnJheSBpbiBDLgorICAgICAgICAKKyAgICAgICAgaW50IG1heExlbiA9IDA7IC8vIE1heGltdW0gZW5jb2RlZCBsZW5ndGggb2YgYW55IGNsYXNzLCBpbmNsdWRpbmcgemVyb3MKKyAgICAgICAgb3V0LnByaW50bG4oIi8vICIgKyBXQVJOSU5HKTsKKyAgICAgICAgb3V0LnByaW50bG4oInN0YXRpYyBjb25zdCBDYXNlRXF1aXZDbGFzcyBDQVNFX05PTlBBSVJTW10gPSB7Iik7CisgICAgICAgIGZvciAoaW50IGo9MDsgajxub25wYWlycy5zaXplKCk7ICsraikgeworICAgICAgICAgICAgaW50IGxlbiA9IDA7CisgICAgICAgICAgICBTdHJpbmdbXSBhID0gKFN0cmluZ1tdKSBub25wYWlycy5lbGVtZW50QXQoaik7CisgICAgICAgICAgICBvdXQucHJpbnQoIiAgICB7Iik7CisgICAgICAgICAgICAvLyBFbWl0IHNpbmdsZSBjb2RlIHBvaW50cworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPGEubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICBpZiAoYVtrXS5sZW5ndGgoKSAhPSAxKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAvL291dC5wcmludCgoaW50KSBhW2tdLmNoYXJBdCgwKSArICIsIik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50KCIweCIrVXRpbGl0eS5oZXgoYVtrXS5jaGFyQXQoMCkpICsgIiwiKTsKKyAgICAgICAgICAgICAgICArK2xlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludCgiMCwgICIpOyAvLyBFbmQgb2Ygc2luZ2xlIGNvZGUgcG9pbnRzCisgICAgICAgICAgICArK2xlbjsKKyAgICAgICAgICAgIC8vIEVtaXQgbXVsdGktY2hhcmFjdGVyIHN0cmluZ3MKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazxhLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFba10ubGVuZ3RoKCkgPT0gMSkgY29udGludWU7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbT0wOyBtPGFba10ubGVuZ3RoKCk7ICsrbSkgeworICAgICAgICAgICAgICAgICAgICAvL291dC5wcmludCgoaW50KSBhW2tdLmNoYXJBdChtKSArICIsIik7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludCgiMHgiK1V0aWxpdHkuaGV4KGFba10uY2hhckF0KG0pKSArICIsIik7CisgICAgICAgICAgICAgICAgICAgICsrbGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjAsICIpOyAvLyBFbmQgb2Ygc3RyaW5nCisgICAgICAgICAgICAgICAgKytsZW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiMH0sIik7IC8vIEVuZCBvZiBlcXVpdmFsZW5jeSBjbGFzcworICAgICAgICAgICAgKytsZW47CisgICAgICAgICAgICBpZiAobGVuID4gbWF4TGVuKSBtYXhMZW4gPSBsZW47CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oIn07Iik7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBDYXNlRXF1aXZDbGFzcyBkYXRhIGNhbiBmaXQuCisgICAgICAgIGlmIChtYXhMZW4gPiA4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiTXVzdCBhZGp1c3QgQ2FzZUVxdWl2Q2xhc3MgdG8gYWNjb21vZGF0ZSAiICsgbWF4TGVuICsgIiBVQ2hhcnMiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFsc28gbWFrZSBzdXJlIHRoYXQgd2UgY2FuIG1hcCBpbnRvIHRoaXMgYXJyYXkgdXNpbmcgYQorICAgICAgICAvLyBDb21wYWN0Qnl0ZUFycmF5LiAgV2UgY291bGQgZG8gdGhpcyBjaGVjayBhYm92ZSwgYnV0IHdlCisgICAgICAgIC8vIGtlZXAgaXQgaGVyZSwgYWRqYWNlbnQgdG8gdGhlIG1heExlbiBjaGVjay4gIFdlIHVzZSBvbmUKKyAgICAgICAgLy8gdmFsdWUgKC0xID09IDI1NSkgdG8gaW5kaWNhdGUgIm5vIHZhbHVlLiIKKyAgICAgICAgaWYgKG5vbnBhaXJzLnNpemUoKSA+IDI1NSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlRvbyBtYW55IENBU0VfTk9OUEFJUlMgYXJyYXkgZWxlbWVudHMgdG8gYmUgaW5kZXhlZCBieSBhIENvbXBhY3RCeXRlQXJyYXkiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBDYXNlLXVuaXF1ZSBzZXQ6ICBBbGwgY2hhcmFjdGVycyBjIGZvciB3aGljaCBjbG9zZU92ZXIoYyk9PWMuCisKKyAgICAgICAgLy8gVVBEQVRFOiBJbnN0ZWFkIG9mIHVzaW5nIHRoaXMsIHdlJ3JlIHVzaW5nIHRoZSByZWxhdGVkCisgICAgICAgIC8vIG5vdGlvbiBvZiBDYXNlX1NlbnNpdGl2ZS4gIFNlZSBiZWxvdy4gIE5vdGUgdGhhdAorICAgICAgICAvLyBDYXNlX1NlbnNpdGl2ZSAhPSBeQ2FzZV9VbmlxdWUuCisKKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IGNhc2VVbmlxdWUgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICAgICAgaWYgKGVxdWl2Q2xhc3Nlcy5nZXQoVUNoYXJhY3Rlci5mb2xkQ2FzZShjcCwgREVGQVVMVF9DQVNFX01BUCkpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZVVuaXF1ZS5hZGQoaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gb3V0LnByaW50bG4oImNhc2VVbmlxdWUgPSAiICsgY2FzZVVuaXF1ZS50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisKKyAgICAgICAgVW5pY29kZVNldCBjYXNlU2Vuc2l0aXZlID0gZ2V0Q2FzZVNlbnNpdGl2ZSgpOworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiY2FzZVNlbnNpdGl2ZSA9ICIgKyBjYXNlU2Vuc2l0aXZlLnRvUGF0dGVybih0cnVlKSk7CisKKyAgICAgICAgLy8gTm93IGZvciBDLCBlbWl0IGFuIGFycmF5IG9mIHJhbmdlcworICAgICAgICBvdXQgPSBuZXcgUHJpbnRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0oQ19VQ0hBUl9PVVQpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBDX1VDSEFSX09VVCk7CisKKyAgICAgICAgb3V0LnByaW50bG4oIi8qICIgKyBXQVJOSU5HICsgIiAqLyIpOworICAgICAgICBlbWl0VUNoYXJSYW5nZXNBcnJheShvdXQsIGNhc2VTZW5zaXRpdmUsICJDQVNFX1NFTlNJVElWRV9SQU5HRVMiKTsKKworICAgICAgICAvLyBGb3IgSmF2YSwgZW1pdCBhIHN0cmluZyB3aXRoIHRoZSByYW5nZXMgKGVhY2ggcGFpciBvZiBjaGFycworICAgICAgICAvLyBpbiB0aGUgc3RyaW5nIGlzIGEgcmFuZ2UpLgorICAgICAgICBvdXQgPSBuZXcgUHJpbnRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0oSkFWQV9DSEFSUFJPUF9PVVQpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBKQVZBX0NIQVJQUk9QX09VVCk7CisgICAgICAgIG91dC5wcmludGxuKCIgICAgLy8gIiArIFdBUk5JTkcpOworICAgICAgICBlbWl0UmFuZ2VzU3RyaW5nKG91dCwgY2FzZVNlbnNpdGl2ZSwgIkNBU0VfU0VOU0lUSVZFX1JBTkdFUyIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGUgc2V0IG9mIGNhc2Utc2Vuc2l0aXZlIGNoYXJhY3RlcnMuICBUaGVzZSBhcmUgY2hhcmFjdGVycworICAgICAqIHRoYXQgcGFydGljaXBhdGUgaW4gYW55IGNhc2UgbWFwcGluZyBvcGVyYXRpb24gYXMgYSBzb3VyY2Ugb3IKKyAgICAgKiBhcyBhIG1lbWJlciBvZiBhIHRhcmdldCBzdHJpbmcuCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTZXQgZ2V0Q2FzZVNlbnNpdGl2ZSgpIHsKKyAgICAgICAgVW5pY29kZVNldCBjYXNlU2Vuc2l0aXZlID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5VUzsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0VGl0bGVJbnN0YW5jZShsb2MpOworICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8PSAweDEwRkZGRjsgKytjKSB7CisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPDQ7ICsraikgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gbnVsbDsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IHMgPSBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvYywgY3ApOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6IHMgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvYywgY3ApOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDI6IHMgPSBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGxvYywgY3AsIGJpKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiBzID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShjcCwgREVGQVVMVF9DQVNFX01BUCk7IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKGNwKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2M7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazxzLmxlbmd0aCgpOyBrKz1VVEYxNi5nZXRDaGFyQ291bnQoY2MpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYyA9IFVURjE2LmNoYXJBdChzLCBrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmUuYWRkKGNjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8Y3AubGVuZ3RoKCk7IGsrPVVURjE2LmdldENoYXJDb3VudChjYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNjID0gVVRGMTYuY2hhckF0KGNwLCBrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmUuYWRkKGNjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEFsc28gZG8gdGhlIHNpbmdsZS1jb2RlcG9pbnQgQVBJLiAgVGhpcyBzaG91bGRuJ3QgYWRkIGFueQorICAgICAgICAgICAgLy8gY29kZSBwb2ludHMsIGJ1dCB3ZSBkbyBpdCBmb3IgY29tcGxldGVuZXNzLgorICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPDQ7ICsraikgeworICAgICAgICAgICAgICAgIGludCBkID0gMDsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IGQgPSBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6IGQgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGMpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDI6IGQgPSBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGMpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDM6IGQgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKGMsIERFRkFVTFRfQ0FTRV9NQVApOyBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGQgIT0gYykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWNhc2VTZW5zaXRpdmUuY29udGFpbnMoYykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICFjYXNlU2Vuc2l0aXZlLmNvbnRhaW5zKGQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldhcm5pbmc6IGNvZGUgcG9pbnQgIiArIGMgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGQgKyAiIGNyZWF0ZWQgTkVXIE1BUFBJTkciKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZm9yIENhc2VfU2Vuc2l0aXZlIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2FzZVNlbnNpdGl2ZS5hZGQoYyk7CisgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmUuYWRkKGQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2FzZVNlbnNpdGl2ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIFVuaWNvZGVTZXQsIGVtaXQgaXQgYXMgYW4gYXJyYXkgb2YgVUNoYXIgcGFpcnMuICBFYWNoCisgICAgICogcGFpciB3aWxsIGJlIHRoZSBzdGFydC9lbmQgb2YgYSByYW5nZS4gIENvZGUgcG9pbnRzID49IFUrMTAwMDAKKyAgICAgKiB3aWxsIGJlIHJlcHJlc2VudGVkIGFzIHN1cnJvZ2F0ZSBwYWlycy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBlbWl0VUNoYXJSYW5nZXNBcnJheShQcmludFN0cmVhbSBvdXQsIFVuaWNvZGVTZXQgc2V0LCBTdHJpbmcgaWQpIHsKKyAgICAgICAgLy8gU3RvcmUgdGhlIHBhaXJzIGluIGEgU3RyaW5nQnVmZmVyLiAgVGhpcyBoYW5kbGVzIHN1cnJvZ2F0ZQorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNldC5nZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1Ziwgc2V0LmdldFJhbmdlU3RhcnQoaSkpOworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1Ziwgc2V0LmdldFJhbmdlRW5kKGkpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBFbWl0IHRoZSBwYWlycworICAgICAgICBvdXQucHJpbnRsbigic3RhdGljIGNvbnN0IFVDaGFyICIgKyBpZCArICJbXSA9IHsiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGJ1Zi5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIGZvciAoaW50IG49MDsgbisrPDEwICYmIGk8YnVmLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjB4IiArIFV0aWxpdHkuaGV4KGJ1Zi5jaGFyQXQoaSksIDQpICsgJywnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oIn07Iik7CisgICAgICAgIG91dC5wcmludGxuKCIjZGVmaW5lICIgKyBpZCArICJfTEVOR1RIIChzaXplb2YoIiArIGlkICsKKyAgICAgICAgICAgICAgICAgICAgIikvc2l6ZW9mKCIgKyBpZCArICJbMF0pKSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgVW5pY29kZVNldCwgZW1pdCBpdCBhcyBhIEphdmEgc3RyaW5nLiAgVGhlIG1vc3QgZWNvbm9taWNhbAorICAgICAqIGZvcm1hdCBpcyBub3QgdGhlIHBhdHRlcm4sIGJ1dCBpbnN0ZWFkIGEgcGFpcnMgbGlzdCwgd2l0aCBlYWNoCisgICAgICogcmFuZ2UgcGFpciByZXByZXNlbnRlZCBhcyB0d28gYWRqYWNlbnQgY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBlbWl0UmFuZ2VzU3RyaW5nKFByaW50U3RyZWFtIG91dCwgVW5pY29kZVNldCBzZXQsIFN0cmluZyBpZCkgeworICAgICAgICAvLyBTdG9yZSB0aGUgcGFpcnMgaW4gYSBTdHJpbmdCdWZmZXIuICBUaGlzIGhhbmRsZXMgc3Vycm9nYXRlCisgICAgICAgIC8vIHJlcHJlc2VudGF0aW9uLgorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8c2V0LmdldFJhbmdlQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBzZXQuZ2V0UmFuZ2VTdGFydChpKSk7CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBzZXQuZ2V0UmFuZ2VFbmQoaSkpOworICAgICAgICB9CisgICAgICAgIC8vIEVtaXQgdGhlIHBhaXJzCisgICAgICAgIG91dC5wcmludGxuKCIgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nICIgKyBpZCArICIgPSIpOworICAgICAgICBvdXQucHJpbnRsbihVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShidWYudG9TdHJpbmcoKSkgKyAiOyIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc3VyZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1VuaWNvZGVTZXRDbG9zdXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWUxOTIwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc3VyZS5qYXZhCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworLy9pbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8vIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0LlVuaWNvZGVTZXRDbG9zdXJlCisvLyBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdC5UcmFuc2xpdGVyYXRvclRlc3QKKworcHVibGljIGNsYXNzIFVuaWNvZGVTZXRDbG9zdXJlIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgZm9vID0gICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MUZGNi1cdTFGRkRcdTIwMDAtXHUyMDAxXHUyMTI2XSIpOworICAgICAgICAKKyAgICAgICAgdGVzdCgpOworICAgICAgICBpZihmb289PW51bGwpe30KKyAgICAgICAgCisgICAgICAgIC8qIFRoZSBmb2xsb3dpbmcgaXMgc3VwZXJjZWRlZCBieSBBbGFuJ3MgdG9vbAorICAgICAgICAKKyAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoIlVuaWNvZGVTZXRDbG9zdXJlLnR4dCIpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBmLmdldENhbm9uaWNhbEZpbGUoKS50b1N0cmluZygpOworICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURi04IikpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIGZpbGVuYW1lKTsKKyAgICAgICAgb3V0LnByaW50KCdcdUZFRkYnKTsgLy8gQk9NCisgICAgICAgIAorICAgICAgICBnZW5lcmF0ZVNldHMoIkxhdGluLUthdGFrYW5hIiwgdHJ1ZSwgTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULCB0cnVlLAorIlsnLC5hLXp+XHUwMERGXHUwMEU2XHUwMEYwXHUwMEY4XHUwMEZFXHUwMkJFXHUwMzAwLVx1MDM0RVx1MDM2MC1cdTAzNjJcdTA0ODMtXHUwNDg2XHUwNTkxLVx1MDVBMVx1MDVBMy1cdTA1QjlcdTA1QkItXHUwNUJEXHUwNUJGXHUwNUMxLVx1MDVDMlx1MDVDNFx1MDY0Qi1cdTA2NTVcdTA2NzBcdTA2RDYtXHUwNkRDXHUwNkRGLVx1MDZFNFx1MDZFNy1cdTA2RThcdTA2RUEtXHUwNkVEXHUwNzExXHUwNzMwLVx1MDc0QVx1MDdBNi1cdTA3QjBcdTA5MDEtXHUwOTAyXHUwOTNDXHUwOTQxLVx1MDk0OFx1MDk0RFx1MDk1MS1cdTA5NTRcdTA5NjItXHUwOTYzXHUwOTgxXHUwOUJDXHUwOUMxLVx1MDlDNFx1MDlDRFx1MDlFMi1cdTA5RTNcdTBBMDJcdTBBM0NcdTBBNDEtXHUwQTQyXHUwQTQ3LVx1MEE0OFx1MEE0Qi1cdTBBNERcdTBBNzAtXHUwQTcxXHUwQTgxLVx1MEE4Mlx1MEFCQ1x1MEFDMS1cdTBBQzVcdTBBQzctXHUwQUM4XHUwQUNEXHUwQjAxXHUwQjNDXHUwQjNGXHUwQjQxLVx1MEI0M1x1MEI0RFx1MEI1Nlx1MEI4Mlx1MEJDMFx1MEJDRFx1MEMzRS1cdTBDNDBcdTBDNDYtXHUwQzQ4XHUwQzRBLVx1MEM0RFx1MEM1NS1cdTBDNTZcdTBDQkZcdTBDQzZcdTBDQ0MtXHUwQ0NEXHUwRDQxLVx1MEQ0M1x1MEQ0RFx1MERDQVx1MEREMi1cdTBERDRcdTBERDZcdTBFMzFcdTBFMzQtXHUwRTNBXHUwRTQ3LVx1MEU0RVx1MEVCMVx1MEVCNC1cdTBFQjlcdTBFQkItXHUwRUJDXHUwRUM4LVx1MEVDRFx1MEYxOC1cdTBGMTlcdTBGMzVcdTBGMzdcdTBGMzlcdTBGNzEtXHUwRjdFXHUwRjgwLVx1MEY4NFx1MEY4Ni1cdTBGODdcdTBGOTAtXHUwRjk3XHUwRjk5LVx1MEZCQ1x1MEZDNlx1MTAyRC1cdTEwMzBcdTEwMzJcdTEwMzYtXHUxMDM3XHUxMDM5XHUxMDU4LVx1MTA1OVx1MTdCNy1cdTE3QkRcdTE3QzZcdTE3QzktXHUxN0QzXHUxOEE5XHUyMEQwLVx1MjBEQ1x1MjBFMVx1MzAyQS1cdTMwMkZcdUZCMUVcdUZFMjAtXHVGRTIzXFxVMDAwMUQxNjctXFxVMDAwMUQxNjlcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQURdIgorICAgICAgICApOworICAgICAgICBnZW5lcmF0ZVNldHMoIkxhdGluLUthdGFrYW5hIiwgZmFsc2UsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgZmFsc2UsCisiW35cdTMwMDEtXHUzMDAyXHUzMEExLVx1MzBBQlx1MzBBRFx1MzBBRlx1MzBCMVx1MzBCM1x1MzBCNVx1MzBCN1x1MzBCOVx1MzBCQlx1MzBCRFx1MzBCRlx1MzBDMVx1MzBDMy1cdTMwQzRcdTMwQzZcdTMwQzhcdTMwQ0EtXHUzMENGXHUzMEQyXHUzMEQ1XHUzMEQ4XHUzMERCXHUzMERFLVx1MzBGM1x1MzBGNS1cdTMwRjZcdTMwRkMtXHUzMEZEXSIKKyAgICAgICAgKTsKKyAgICAgICAgCisgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICBpZiAodHJ1ZSkgcmV0dXJuOyAvLyBza2lwIHRoZSBzdHVmZiB3ZSd2ZSBkb25lIGFscmVhZHkKKyAgICAgICAgCisgICAgICAgIGdlbmVyYXRlU2V0cygiQ3lyaWxsaWMtTGF0aW4iLCB0cnVlLCBOb3JtYWxpemVyLkRFQ09NUCwgZmFsc2UsCisgICAgICAgICAgICAiW1x1MDQwMlx1MDQwNC1cdTA0MDZcdTA0MDgtXHUwNDBCXHUwNDBGLVx1MDQxOFx1MDQxQS1cdTA0MzhcdTA0M0EtXHUwNDRGXHUwNDUyXHUwNDU0LVx1MDQ1Nlx1MDQ1OC1cdTA0NUJcdTA0NUZcdTA0OTAtXHUwNDk1XHUwNDk4LVx1MDQ5OVx1MDRENC1cdTA0RDVcdTA0RDgtXHUwNEQ5XSIKKyAgICAgICAgKTsKKyAgICAgICAgZ2VuZXJhdGVTZXRzKCJMYXRpbi1DeXJpbGxpYyIsIGZhbHNlLCBOb3JtYWxpemVyLkRFQ09NUCwgZmFsc2UsCisgICAgICAgICAgICAiW0EtWmEtelx1MDBDNlx1MDBFNlx1MDExMC1cdTAxMTFcdTAxOEZcdTAyNTlcdTAyQjktXHUwMkJBXSIKKyAgICAgICAgKTsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGdlbmVyYXRlU2V0cyhTdHJpbmcgbGFiZWwsIGJvb2xlYW4gZm9yd2FyZCwgCisgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0LCBTdHJpbmcgcnVsZXMpIHsKKyAgICAgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQocnVsZXMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkdlbmVyYXRpbmcgIiArIGxhYmVsICsgKGZvcndhcmQgPyAiIiA6ICIgQkFDS1dBUkQiKSk7CisgICAgICAgIGNsb3NlKHMsIG0sIGxvd2VyRmlyc3QpOworICAgICAgICBvdXQucHJpbnRsbigiIyBNSU5JTUFMIEZJTFRFUiBHRU5FUkFURUQgRk9SOiAiICsgbGFiZWwgKyAoZm9yd2FyZCA/ICIiIDogIiBCQUNLV0FSRCIpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjo6ICIgCisgICAgICAgICAgICArIChmb3J3YXJkID8gIiIgOiAiKCAiKSAKKyAgICAgICAgICAgICsgcy50b1BhdHRlcm4odHJ1ZSkgCisgICAgICAgICAgICArIChmb3J3YXJkID8gIiIgOiAiICkiKQorICAgICAgICAgICAgKyAiIDsiKTsKKyAgICAgICAgb3V0LnByaW50bG4oKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlVuaWNvZGU6ICIgKyBzLnRvUGF0dGVybihmYWxzZSkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbGVhbiBHRU5FUkFURSA9IGZhbHNlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKCJUZXN0VW5pY29kZVNldENsb3N1cmUudHh0Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGYuZ2V0Q2Fub25pY2FsRmlsZSgpLnRvU3RyaW5nKCk7CisgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCAiVVRGLTgiKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgZmlsZW5hbWUpOworICAgICAgICBvdXQucHJpbnQoJ1x1RkVGRicpOyAvLyBCT00KKyAgICAgICAgCisgICAgICAgIEdFTkVSQVRFID0gdHJ1ZTsKKyAgICAgICAgdGVzdCgiWzpEZXZhbmFnYXJpOl0iKTsKKyAgICAgICAgLyoKKyAgICAgICAgdGVzdCgiW1x1MDBFMEJjXSIpOworICAgICAgICB0ZXN0KCJbbV0iKTsKKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgTm9ybWFsaXplci5Nb2RlW10gdGVzdE1vZGVzID0geworICAgICAgICBOb3JtYWxpemVyLk5PTkUsIE5vcm1hbGl6ZXIuTkZELCBOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplci5ORktELCBOb3JtYWxpemVyLk5GS0N9OworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBtb2RlTmFtZXMgPSB7CisgICAgICAgICJOb05GIiwgIk5GRCIsICJORkMiLCAiTkZLRCIsICJORktDIn07CisgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuW10gdGVzdENhc2VzID0geworICAgICAgICBmYWxzZSwgdHJ1ZX07CisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNhc2VOYW1lcyA9IHsKKyAgICAgICAgIm5vTG93ZXIiLCAibG93ZXIifTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdGVzdChTdHJpbmcgdGVzdFN0cikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVuaWNvZGVTZXQgb3JpZ2luYWwgPSBuZXcgVW5pY29kZVNldCh0ZXN0U3RyKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdGluZyBDbG9zdXJlIG9mOiAiICsgb3JpZ2luYWwudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlRlc3RpbmcgQ2xvc3VyZSBvZjogIiArIG9yaWdpbmFsLnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICBVbmljb2RlU2V0IHJhdyA9IG5ldyBVbmljb2RlU2V0KG9yaWdpbmFsKTsKKyAgICAgICAgb3JpZ2luYWwuY29tcGxlbWVudCgpOworICAgICAgICBvcmlnaW5hbC5jb21wbGVtZW50KCk7CisgICAgICAgIGlmICghcmF3LmVxdWFscyhvcmlnaW5hbCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJFcXVhbHM6IiArIG9yaWdpbmFsLnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1dyaXRlciBzd0xvZyA9IG51bGw7CisgICAgICAgIFByaW50V3JpdGVyIGxvZyA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgIHN3TG9nID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICAgICAgbG9nID0gbmV3IFByaW50V3JpdGVyKHN3TG9nKTsKKyAgICAgICAgICAgIGxvZy5wcmludGxuKCJzdGF0aWMgVW5pY29kZVNldFtdW10gVU5DSEFOR0VEID0geyIpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIGxvZy5wcmludGxuKCIgICAgeyIpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0TW9kZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRlc3QgPSBuZXcgVW5pY29kZVNldChvcmlnaW5hbCk7CisgICAgICAgICAgICAgICAgY2xvc2UodGVzdCwgdGVzdE1vZGVzW2pdLCB0ZXN0Q2FzZXNbaV0pOworICAgICAgICAgICAgICAgIGlmIChHRU5FUkFURSkgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiXHRuZXcgVW5pY29kZVNldChcIiIgKyBnZW5lcmF0ZWRTZXQudG9QYXR0ZXJuKHRydWUpICsgIlwiKSwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gY2FzZU5hbWVzW2ldICArICIsICIgKyBtb2RlTmFtZXNbal0gOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsYWJlbCk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4obGFiZWwgKyAiOiAiICsgdGVzdC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgICAgICAgICB0ZXN0LnJlbW92ZUFsbChvcmlnaW5hbCk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJcdE5vIERpZmZlcmVuY2UgZnJvbSBvcmlnaW5hbCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJcdERpZmZlcmVuY2UgPSAiICsgdGVzdC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LmZsdXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIGxvZy5wcmludGxuKCIgICAgfSwiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChHRU5FUkFURSkgeworICAgICAgICAgICAgbG9nLnByaW50bG4oIn07Iik7CisgICAgICAgICAgICBvdXQucHJpbnQoc3dMb2cuZ2V0QnVmZmVyKCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLkRFQ09NUCwgZmFsc2UpOworICAgICAgICAgICAgcHJpbnQoIk5GRCIsIHRlc3QpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLk5PX09QLCB0cnVlKTsKKyAgICAgICAgICAgIHByaW50KCJMb3dlciIsIHRlc3QpOworCisgICAgICAgICAgICB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLkNPTVBPU0UsIGZhbHNlKTsKKyAgICAgICAgICAgIHByaW50KCJORkMiLCB0ZXN0KTsKKworICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULCBmYWxzZSk7CisgICAgICAgICAgICBwcmludCgiTkZLRCIsIHRlc3QpOworCisgICAgICAgICAgICB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLkNPTVBPU0VfQ09NUEFULCBmYWxzZSk7CisgICAgICAgICAgICBwcmludCgiTkZLQyIsIHRlc3QpOworICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUHJpbnRXcml0ZXIgb3V0OworICAgIAorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50KFN0cmluZyBsYWJlbCwgVW5pY29kZVNldCB0ZXN0KSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsYWJlbCk7CisgICAgICAgIG91dC5wcmludGxuKGxhYmVsICsgIjogIiArIHRlc3QudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgfQorICAgICovCisgICAgCisgICAgLy8gZHVtYiwgc2xvdyBpbXBsZW1lbnRhdGlvbnMKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE5GVG9TdHJpbmcgaW1wbGVtZW50cyBDaGFyMzJUb1N0cmluZyB7CisgICAgICAgIE5vcm1hbGl6ZXIuTW9kZSBtb2RlOworICAgICAgICBib29sZWFuIGxvd2VyRmlyc3Q7CisgICAgICAgIAorICAgICAgICBORlRvU3RyaW5nKE5vcm1hbGl6ZXIuTW9kZSBtLCBib29sZWFuIGxvd2VyRmlyc3QpIHsKKyAgICAgICAgICAgIG1vZGUgPSBtOworICAgICAgICAgICAgdGhpcy5sb3dlckZpcnN0ID0gbG93ZXJGaXJzdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoaW50IGNwKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gVVRGMTYudmFsdWVPZihjcCk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc291cmNlOworICAgICAgICAgICAgaWYgKGxvd2VyRmlyc3QpIHJlc3VsdCA9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLlVTLCByZXN1bHQpOworICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplci5ub3JtYWxpemUocmVzdWx0LCBtb2RlKTsKKyAgICAgICAgICAgIGlmIChsb3dlckZpcnN0KSByZXN1bHQgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5VUywgcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuZXF1YWxzKHNvdXJjZSkpIHJldHVybiBudWxsOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgCisgICAgLyoqIFJldHVybnMgYSBtYXBwaW5nIGZyb20gY2hhcjMyIHRvIGEgc3RyaW5nLiBJZiB0aGVyZSBpcyBubyBjaGFuZ2UsCisgICAgICogbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICAgCisgICAgaW50ZXJmYWNlIENoYXIzMlRvU3RyaW5nIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoaW50IGNwKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2xlYW4gRkFTVCA9IHRydWU7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGNsb3NlKFVuaWNvZGVTZXQgcywgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCkgeworICAgICAgICBDaGFyMzJUb1N0cmluZyBmID0gbmV3IE5GVG9TdHJpbmcobSwgbG93ZXJGaXJzdCk7CisgICAgICAgIGlmIChGQVNUKSB7CisgICAgICAgICAgICBpbnQgbW07CisgICAgICAgICAgICBmb3IgKG1tID0gMDsgOyArK21tKSBpZiAobSA9PSB0ZXN0TW9kZXNbbW1dKSBicmVhazsgLy8gZmluZCBtb2RlCisgICAgICAgICAgICBjbG9zZTIocywgZiwgbG93ZXJGaXJzdCA/IDEgOiAwLCBtbSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2xvc2UocywgZik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjbG9zZShVbmljb2RlU2V0IHMsIENoYXIzMlRvU3RyaW5nIGYpIHsKKyAgICAgICAgaWYgKEdFTkVSQVRFKSBnZW5lcmF0ZWRTZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSAweDEwRkZGRjsgKytjcCkgeworICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQpIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL2lmIChjcCA9PSAnXHUwMGU3JykgeworICAgICAgICAgICAgICAvLyAgU3lzdGVtLm91dC5wcmludGxuKCJkZWJ1ZyIpOworICAgICAgICAgICAgLy99CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZi5nZXQoY3ApOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChHRU5FUkFURSkgeworICAgICAgICAgICAgICAgIGdlbmVyYXRlZFNldC5hZGQoY3ApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFjb250YWluc1NvbWUocywgcmVzdWx0KSkgY29udGludWU7CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGNsb3NlMihVbmljb2RlU2V0IHMsIENoYXIzMlRvU3RyaW5nIGYsIGludCBsYywgaW50IG1vZGUpIHsKKyAgICAgICAgVW5pY29kZVNldCB1bmNoYW5nZWQgPSBuZXcgVW5pY29kZVNldCgpOyAvLyBVTkNIQU5HRURbbGNdW21vZGVdOworICAgICAgICBpbnQgY291bnQgPSB1bmNoYW5nZWQuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHVuY2hhbmdlZC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHVuY2hhbmdlZC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGNwID0gc3RhcnQ7IGNwIDw9IGVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmLmdldChjcCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTb21ldGhpbmcgd3JvbmcgLS0gc2hvdWxkIG5ldmVyIGhhcHBlbiIpOworICAgICAgICAgICAgICAgIGlmICghY29udGFpbnNTb21lKHMsIHJlc3VsdCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHMuYWRkKGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0W11bXSBVTkNIQU5HRUQgPSB7CisgICAgICAgIHsgLy8gXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzEtXHUxRkM0XHUxRkM2LVx1MUZEM1x1MUZENi1cdTFGREJcdTFGREQtXHUxRkVGXHUxRkYyLVx1MUZGNAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MUZGNi1cdTFGRkRcdTIwMDAtXHUyMDAxXHUyMTI2XSIpLAorICAgICAgICAvLyBcdTIxMkEtXHUyMTJCXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDBDMC1cdTAwQzVcdTAwQzctXHUwMENGXHUwMEQxLVx1MDBENlx1MDBEOS1cdTAwRERcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDEwRlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0VcdTAxNDMtXHUwMTQ4XHUwMTRDLVx1MDE1MVx1MDE1NC1cdTAxNjVcdTAxNjgtXHUwMTdFXHUwMUEwLVx1MDFBMVx1MDFBRi1cdTAxQjBcdTAxQ0QtXHUwMURDXHUwMURFLVx1MDFFM1x1MDFFNi1cdTAxRjBcdTAxRjQtXHUwMUY1XHUwMUY4LVx1MDIxQlx1MDIxRS1cdTAyMUZcdTAyMjYtXHUwMjMzXHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDRcdTAzNzRcdTAzN0VcdTAzODUtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM5MFx1MDNBQS1cdTAzQjBcdTAzQ0EtXHUwM0NFXHUwM0QzLVx1MDNENFx1MDQwMC1cdTA0MDFcdTA0MDNcdTA0MDdcdTA0MEMtXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUwLVx1MDQ1MVx1MDQ1M1x1MDQ1N1x1MDQ1Qy1cdTA0NUVcdTA0NzYtXHUwNDc3XHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDNcdTA0RDYtXHUwNEQ3XHUwNERBLVx1MDRERlx1MDRFMi1cdTA0RTdcdTA0RUEtXHUwNEY1XHUwNEY4LVx1MDRGOVx1MDYyMi1cdTA2MjZcdTA2QzBcdTA2QzJcdTA2RDNcdTA5MjlcdTA5MzFcdTA5MzRcdTA5NTgtXHUwOTVGXHUwOUNCLVx1MDlDQ1x1MDlEQy1cdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjQ4XHUwQjRCLVx1MEI0Q1x1MEI1Qy1cdTBCNURcdTBCOTRcdTBCQ0EtXHUwQkNDXHUwQzQ4XHUwQ0MwXHUwQ0M3LVx1MENDOFx1MENDQS1cdTBDQ0JcdTBENEEtXHUwRDRDXHUwRERBXHUwRERDLVx1MERERVx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEwMjZcdTFFMDAtXHUxRTk5XHUxRTlCXHUxRUEwLVx1MUVGOVx1MUYwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMxLVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNlx1MjEyQS1cdTIxMkJcdTIxOUEtXHUyMTlCXHUyMUFFXHUyMUNELVx1MjFDRlx1MjIwNFx1MjIwOVx1MjIwQ1x1MjIyNFx1MjIyNlx1MjI0MVx1MjI0NFx1MjI0N1x1MjI0OVx1MjI2MFx1MjI2Mlx1MjI2RC1cdTIyNzFcdTIyNzQtXHUyMjc1XHUyMjc4LVx1MjI3OVx1MjI4MC1cdTIyODFcdTIyODQtXHUyMjg1XHUyMjg4LVx1MjI4OVx1MjJBQy1cdTIyQUZcdTIyRTAtXHUyMkUzXHUyMkVBLVx1MjJFRFx1MjMyOS1cdTIzMkFcdTMwNENcdTMwNEVcdTMwNTBcdTMwNTJcdTMwNTRcdTMwNTZcdTMwNThcdTMwNUFcdTMwNUNcdTMwNUVcdTMwNjBcdTMwNjJcdTMwNjVcdTMwNjdcdTMwNjlcdTMwNzAtXHUzMDcxXHUzMDczLVx1MzA3NFx1MzA3Ni1cdTMwNzdcdTMwNzktXHUzMDdBXHUzMDdDLVx1MzA3RFx1MzA5NFx1MzA5RVx1MzBBQ1x1MzBBRVx1MzBCMFx1MzBCMlx1MzBCNFx1MzBCNlx1MzBCOFx1MzBCQVx1MzBCQ1x1MzBCRVx1MzBDMFx1MzBDMlx1MzBDNVx1MzBDN1x1MzBDOVx1MzBEMC1cdTMwRDFcdTMwRDMtXHUzMEQ0XHUzMEQ2LVx1MzBEN1x1MzBEOS1cdTMwREFcdTMwREMtXHUzMEREXHUzMEY0XHUzMEY3LVx1MzBGQVx1MzBGRVx1QUMwMC1cdUQ3QTNcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVdIiksCisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbXHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDRcdTAzNzRcdTAzN0VcdTAzODdcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3Nlx1MEY3OFx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MUY3MVx1MUY3M1x1MUY3NVx1MUY3N1x1MUY3OVx1MUY3Qlx1MUY3RFx1MUZCQlx1MUZCRVx1MUZDOVx1MUZDQlx1MUZEM1x1MUZEQlx1MUZFM1x1MUZFQlx1MUZFRS1cdTFGRUZcdTFGRjlcdTFGRkJcdTFGRkRcdTIwMDAtXHUyMDAxXHUyMTI2XHUyMTJBLVx1MjEyQlx1MjMyOS1cdTIzMkFcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVdIiksCisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbXHUwMEEwXHUwMEE4XHUwMEFBXHUwMEFGXHUwMEIyLVx1MDBCNVx1MDBCOC1cdTAwQkFcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBDNVx1MDBDNy1cdTAwQ0ZcdTAwRDEtXHUwMEQ2XHUwMEQ5LVx1MDBERFx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzItXHUwMTM3XHUwMTM5LVx1MDE0MFx1MDE0My1cdTAxNDlcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0ZcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDNC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUEtXHUwM0IwXHUwM0NBLVx1MDNDRVx1MDNEMC1cdTAzRDZcdTAzRjAtXHUwM0YyXHUwNDAwLVx1MDQwMVx1MDQwM1x1MDQwN1x1MDQwQy1cdTA0MEVcdTA0MTlcdTA0MzlcdTA0NTAtXHUwNDUxXHUwNDUzXHUwNDU3XHUwNDVDLVx1MDQ1RVx1MDQ3Ni1cdTA0NzdcdTA0QzEtXHUwNEMyXHUwNEQwLVx1MDREM1x1MDRENi1cdTA0RDdcdTA0REEtXHUwNERGXHUwNEUyLVx1MDRFN1x1MDRFQS1cdTA0RjVcdTA0RjgtXHUwNEY5XHUwNTg3XHUwNjIyLVx1MDYyNlx1MDY3NS1cdTA2NzhcdTA2QzBcdTA2QzJcdTA2RDNcdTA5MjlcdTA5MzFcdTA5MzRcdTA5NTgtXHUwOTVGXHUwOUNCLVx1MDlDQ1x1MDlEQy1cdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjQ4XHUwQjRCLVx1MEI0Q1x1MEI1Qy1cdTBCNURcdTBCOTRcdTBCQ0EtXHUwQkNDXHUwQzQ4XHUwQ0MwXHUwQ0M3LVx1MENDOFx1MENDQS1cdTBDQ0JcdTBENEEtXHUwRDRDXHUwRERBXHUwRERDLVx1MERERVx1MEUzM1x1MEVCM1x1MEVEQy1cdTBFRERcdTBGMENcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc5XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMDI2XHUxRTAwLVx1MUU5Qlx1MUVBMC1cdTFFRjlcdTFGMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZFXHUyMDAwLVx1MjAwQVx1MjAxMVx1MjAxN1x1MjAyNC1cdTIwMjZcdTIwMkZcdTIwMzMtXHUyMDM0XHUyMDM2LVx1MjAzN1x1MjAzQ1x1MjAzRVx1MjA0OC1cdTIwNDlcdTIwNzBcdTIwNzQtXHUyMDhFXHUyMEE4XHUyMTAwLVx1MjEwM1x1MjEwNS1cdTIxMDdcdTIxMDktXHUyMTEzXHUyMTE1LVx1MjExNlx1MjExOS1cdTIxMURcdTIxMjAtXHUyMTIyXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzFcdTIxMzMtXHUyMTM5XHUyMTUzLVx1MjE3Rlx1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDRDXHUzMDRFXHUzMDUwXHUzMDUyXHUzMDU0XHUzMDU2XHUzMDU4XHUzMDVBXHUzMDVDXHUzMDVFXHUzMDYwXHUzMDYyXHUzMDY1XHUzMDY3XHUzMDY5XHUzMDcwLVx1MzA3MVx1MzA3My1cdTMwNzRcdTMwNzYtXHUzMDc3XHUzMDc5LVx1MzA3QVx1MzA3Qy1cdTMwN0RcdTMwOTRcdTMwOUItXHUzMDlDXHUzMDlFXHUzMEFDXHUzMEFFXHUzMEIwXHUzMEIyXHUzMEI0XHUzMEI2XHUzMEI4XHUzMEJBXHUzMEJDXHUzMEJFXHUzMEMwXHUzMEMyXHUzMEM1XHUzMEM3XHUzMEM5XHUzMEQwLVx1MzBEMVx1MzBEMy1cdTMwRDRcdTMwRDYtXHUzMEQ3XHUzMEQ5LVx1MzBEQVx1MzBEQy1cdTMwRERcdTMwRjRcdTMwRjctXHUzMEZBXHUzMEZFXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUFDMDAtXHVEN0EzXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVdIiksCisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbXHUwMEEwXHUwMEE4XHUwMEFBXHUwMEFGXHUwMEIyLVx1MDBCNVx1MDBCOC1cdTAwQkFcdTAwQkMtXHUwMEJFXHUwMTMyLVx1MDEzM1x1MDEzRi1cdTAxNDBcdTAxNDlcdTAxN0ZcdTAxQzQtXHUwMUNDXHUwMUYxLVx1MDFGM1x1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4NVx1MDM4N1x1MDNEMC1cdTAzRDZcdTAzRjAtXHUwM0YyXHUwNTg3XHUwNjc1LVx1MDY3OFx1MDk1OC1cdTA5NUZcdTA5REMtXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI1Qy1cdTBCNURcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3OVx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MUU5QS1cdTFFOUJcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGQkJcdTFGQkQtXHUxRkMxXHUxRkM5XHUxRkNCXHUxRkNELVx1MUZDRlx1MUZEM1x1MUZEQlx1MUZERC1cdTFGREZcdTFGRTNcdTFGRUJcdTFGRUQtXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZELVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIyMkMtXHUyMjJEXHUyMjJGLVx1MjIzMFx1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNEVBXHUyRTlGXHUyRUYzXHUyRjAwLVx1MkZENVx1MzAwMFx1MzAzNlx1MzAzOC1cdTMwM0FcdTMwOUItXHUzMDlDXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMUYtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFMzAtXHVGRTQ0XHVGRTQ5LVx1RkU1Mlx1RkU1NC1cdUZFNjZcdUZFNjgtXHVGRTZCXHVGRTcwLVx1RkU3Mlx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMDEtXHVGRjVFXHVGRjYxLVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENcdUZGRTAtXHVGRkU2XHVGRkU4LVx1RkZFRV0iKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBCMi1cdTAwQjNcdTAwQjVcdTAwQjlcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwREVcdTAxMDBcdTAxMDJcdTAxMDRcdTAxMDZcdTAxMDhcdTAxMEFcdTAxMENcdTAxMEVcdTAxMTBcdTAxMTJcdTAxMTRcdTAxMTZcdTAxMThcdTAxMUFcdTAxMUNcdTAxMUVcdTAxMjBcdTAxMjJcdTAxMjRcdTAxMjZcdTAxMjhcdTAxMkFcdTAxMkNcdTAxMkVcdTAxMzAtXHUwMTMyXHUwMTM0XHUwMTM2XHUwMTM5XHUwMTNCXHUwMTNEXHUwMTNGXHUwMTQxXHUwMTQzXHUwMTQ1XHUwMTQ3XHUwMTRBXHUwMTRDXHUwMTRFXHUwMTUwXHUwMTUyXHUwMTU0XHUwMTU2XHUwMTU4XHUwMTVBXHUwMTVDXHUwMTVFXHUwMTYwXHUwMTYyXHUwMTY0XHUwMTY2XHUwMTY4XHUwMTZBXHUwMTZDXHUwMTZFXHUwMTcwXHUwMTcyXHUwMTc0XHUwMTc2XHUwMTc4LVx1MDE3OVx1MDE3Qlx1MDE3RFx1MDE3Rlx1MDE4MS1cdTAxODJcdTAxODRcdTAxODYtXHUwMTg3XHUwMTg5LVx1MDE4Qlx1MDE4RS1cdTAxOTFcdTAxOTMtXHUwMTk0XHUwMTk2LVx1MDE5OFx1MDE5Qy1cdTAxOURcdTAxOUYtXHUwMUEwXHUwMUEyXHUwMUE0XHUwMUE2LVx1MDFBN1x1MDFBOVx1MDFBQ1x1MDFBRS1cdTAxQUZcdTAxQjEtXHUwMUIzXHUwMUI1XHUwMUI3LVx1MDFCOFx1MDFCQ1x1MDFDNC1cdTAxQ0RcdTAxQ0ZcdTAxRDFcdTAxRDNcdTAxRDVcdTAxRDdcdTAxRDlcdTAxREJcdTAxREVcdTAxRTBcdTAxRTJcdTAxRTRcdTAxRTZcdTAxRThcdTAxRUFcdTAxRUNcdTAxRUVcdTAxRjEtXHUwMUY0XHUwMUY2LVx1MDFGOFx1MDFGQVx1MDFGQ1x1MDFGRVx1MDIwMFx1MDIwMlx1MDIwNFx1MDIwNlx1MDIwOFx1MDIwQVx1MDIwQ1x1MDIwRVx1MDIxMFx1MDIxMlx1MDIxNFx1MDIxNlx1MDIxOFx1MDIxQVx1MDIxQ1x1MDIxRVx1MDIyMlx1MDIyNFx1MDIyNlx1MDIyOFx1MDIyQVx1MDIyQ1x1MDIyRVx1MDIzMFx1MDIzMlx1MDM0NVx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzhGXHUwMzkxLVx1MDNBMVx1MDNBMy1cdTAzQUJcdTAzQzJcdTAzRDAtXHUwM0QxXHUwM0Q1LVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQ2MFx1MDQ2Mlx1MDQ2NFx1MDQ2Nlx1MDQ2OFx1MDQ2QVx1MDQ2Q1x1MDQ2RVx1MDQ3MFx1MDQ3Mlx1MDQ3NFx1MDQ3Nlx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMVx1MDRDM1x1MDRDN1x1MDRDQlx1MDREMFx1MDREMlx1MDRENFx1MDRENlx1MDREOFx1MDREQVx1MDREQ1x1MDRERVx1MDRFMFx1MDRFMlx1MDRFNFx1MDRFNlx1MDRFOFx1MDRFQVx1MDRFQ1x1MDRFRVx1MDRGMFx1MDRGMlx1MDRGNFx1MDRGOFx1MDUzMS1cdTA1NTZcdTA5RjhcdTBGMkEtXHUwRjMzXHUxMzdDXHUxRTAwXHUxRTAyXHUxRTA0XHUxRTA2XHUxRTA4XHUxRTBBXHUxRTBDXHUxRTBFXHUxRTEwXHUxRTEyXHUxRTE0XHUxRTE2XHUxRTE4XHUxRTFBXHUxRTFDXHUxRTFFXHUxRTIwXHUxRTIyXHUxRTI0XHUxRTI2XHUxRTI4XHUxRTJBXHUxRTJDXHUxRTJFXHUxRTMwXHUxRTMyXHUxRTM0XHUxRTM2XHUxRTM4XHUxRTNBXHUxRTNDXHUxRTNFXHUxRTQwXHUxRTQyXHUxRTQ0XHUxRTQ2XHUxRTQ4XHUxRTRBXHUxRTRDXHUxRTRFXHUxRTUwXHUxRTUyXHUxRTU0XHUxRTU2XHUxRTU4XHUxRTVBXHUxRTVDXHUxRTVFXHUxRTYwXHUxRTYyXHUxRTY0XHUxRTY2XHUxRTY4XHUxRTZBXHUxRTZDXHUxRTZFXHUxRTcwXHUxRTcyXHUxRTc0XHUxRTc2XHUxRTc4XHUxRTdBXHUxRTdDXHUxRTdFXHUxRTgwXHUxRTgyXHUxRTg0XHUxRTg2XHUxRTg4XHUxRThBXHUxRThDXHUxRThFXHUxRTkwXHUxRTkyXHUxRTk0XHUxRTlCXHUxRUEwXHUxRUEyXHUxRUE0XHUxRUE2XHUxRUE4XHUxRUFBXHUxRUFDXHUxRUFFXHUxRUIwXHUxRUIyXHUxRUI0XHUxRUI2XHUxRUI4XHUxRUJBXHUxRUJDXHUxRUJFXHUxRUMwXHUxRUMyXHUxRUM0XHUxRUM2XHUxRUM4XHUxRUNBXHUxRUNDXHUxRUNFXHUxRUQwXHUxRUQyXHUxRUQ0XHUxRUQ2XHUxRUQ4XHUxRURBXHUxRURDXHUxRURFXHUxRUUwXHUxRUUyXHUxRUU0XHUxRUU2XHUxRUU4XHUxRUVBXHUxRUVDXHUxRUVFXHUxRUYwXHUxRUYyXHUxRUY0XHUxRUY2XHUxRUY4XHUxRjA4LVx1MUYwRlx1MUYxOC1cdTFGMURcdTFGMjgtXHUxRjJGXHUxRjM4LVx1MUYzRlx1MUY0OC1cdTFGNERcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUZcdTFGNjgtXHUxRjZGXHUxRjg4LVx1MUY4Rlx1MUY5OC1cdTFGOUZcdTFGQTgtXHUxRkFGXHUxRkI4LVx1MUZCQ1x1MUZCRVx1MUZDOC1cdTFGQ0NcdTFGRDgtXHUxRkRCXHUxRkU4LVx1MUZFQ1x1MUZGOC1cdTFGRkNcdTIwNzBcdTIwNzQtXHUyMDc5XHUyMDgwLVx1MjA4OVx1MjEyNlx1MjEyQS1cdTIxMkJcdTIxNTMtXHUyMTVFXHUyMTYwLVx1MjE3Rlx1MjE4MS1cdTIxODNcdTI0NjAtXHUyNDY4XHUyNDc0LVx1MjQ3Q1x1MjQ4OC1cdTI0OTBcdTI0QjYtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHVGRjIxLVx1RkYzQVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBCMi1cdTAwQjNcdTAwQjVcdTAwQjlcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwREVcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDExMFx1MDExMi1cdTAxMjZcdTAxMjgtXHUwMTMyXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0ZcdTAxNDFcdTAxNDMtXHUwMTQ4XHUwMTRBXHUwMTRDLVx1MDE1Mlx1MDE1NC1cdTAxNjZcdTAxNjgtXHUwMTdGXHUwMTgxLVx1MDE4Mlx1MDE4NFx1MDE4Ni1cdTAxODdcdTAxODktXHUwMThCXHUwMThFLVx1MDE5MVx1MDE5My1cdTAxOTRcdTAxOTYtXHUwMTk4XHUwMTlDLVx1MDE5RFx1MDE5Ri1cdTAxQTJcdTAxQTRcdTAxQTYtXHUwMUE3XHUwMUE5XHUwMUFDXHUwMUFFLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMURDXHUwMURFLVx1MDFFNFx1MDFFNi1cdTAyMUNcdTAyMUUtXHUwMjFGXHUwMjIyXHUwMjI0XHUwMjI2LVx1MDIzM1x1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ1XHUwMzc0XHUwMzdFXHUwMzg1LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0IwXHUwM0MyXHUwM0NBLVx1MDNDRVx1MDNEMC1cdTAzRDFcdTAzRDMtXHUwM0Q2XHUwM0RBXHUwM0RDXHUwM0RFXHUwM0UwXHUwM0UyXHUwM0U0XHUwM0U2XHUwM0U4XHUwM0VBXHUwM0VDXHUwM0VFXHUwM0YwLVx1MDNGMlx1MDNGNC1cdTAzRjVcdTA0MDAtXHUwNDJGXHUwNDM5XHUwNDUwLVx1MDQ1MVx1MDQ1M1x1MDQ1N1x1MDQ1Qy1cdTA0NUVcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzYtXHUwNDc4XHUwNDdBXHUwNDdDXHUwNDdFXHUwNDgwXHUwNDhDXHUwNDhFXHUwNDkwXHUwNDkyXHUwNDk0XHUwNDk2XHUwNDk4XHUwNDlBXHUwNDlDXHUwNDlFXHUwNEEwXHUwNEEyXHUwNEE0XHUwNEE2XHUwNEE4XHUwNEFBXHUwNEFDXHUwNEFFXHUwNEIwXHUwNEIyXHUwNEI0XHUwNEI2XHUwNEI4XHUwNEJBXHUwNEJDXHUwNEJFXHUwNEMxLVx1MDRDM1x1MDRDN1x1MDRDQlx1MDREMC1cdTA0RDRcdTA0RDYtXHUwNEQ4XHUwNERBLVx1MDRFMFx1MDRFMi1cdTA0RThcdTA0RUEtXHUwNEY1XHUwNEY4LVx1MDRGOVx1MDUzMS1cdTA1NTZcdTA2MjItXHUwNjI2XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwOUY4XHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBGMkEtXHUwRjMzXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3Nlx1MEY3OFx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MTAyNlx1MTM3Q1x1MUUwMC1cdTFFOTlcdTFFOUJcdTFFQTAtXHUxRUY5XHUxRjAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzEtXHUxRkM0XHUxRkM2LVx1MUZEM1x1MUZENi1cdTFGREJcdTFGREQtXHUxRkVGXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkRcdTIwMDAtXHUyMDAxXHUyMDcwXHUyMDc0LVx1MjA3OVx1MjA4MC1cdTIwODlcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTUzLVx1MjE1RVx1MjE2MC1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjQ2OFx1MjQ3NC1cdTI0N0NcdTI0ODgtXHUyNDkwXHUyNEI2LVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1MzA0Q1x1MzA0RVx1MzA1MFx1MzA1Mlx1MzA1NFx1MzA1Nlx1MzA1OFx1MzA1QVx1MzA1Q1x1MzA1RVx1MzA2MFx1MzA2Mlx1MzA2NVx1MzA2N1x1MzA2OVx1MzA3MC1cdTMwNzFcdTMwNzMtXHUzMDc0XHUzMDc2LVx1MzA3N1x1MzA3OS1cdTMwN0FcdTMwN0MtXHUzMDdEXHUzMDk0XHUzMDlFXHUzMEFDXHUzMEFFXHUzMEIwXHUzMEIyXHUzMEI0XHUzMEI2XHUzMEI4XHUzMEJBXHUzMEJDXHUzMEJFXHUzMEMwXHUzMEMyXHUzMEM1XHUzMEM3XHUzMEM5XHUzMEQwLVx1MzBEMVx1MzBEMy1cdTMwRDRcdTMwRDYtXHUzMEQ3XHUzMEQ5LVx1MzBEQVx1MzBEQy1cdTMwRERcdTMwRjRcdTMwRjctXHUzMEZBXHUzMEZFXHVBQzAwLVx1RDdBM1x1RjkwMC1cdUZBMERcdUZBMTBcdUZBMTJcdUZBMTUtXHVGQTFFXHVGQTIwXHVGQTIyXHVGQTI1LVx1RkEyNlx1RkEyQS1cdUZBMkRcdUZCMURcdUZCMUZcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkI0RVx1RkYyMS1cdUZGM0FcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQjItXHUwMEIzXHUwMEI1XHUwMEI5XHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMTAwXHUwMTAyXHUwMTA0XHUwMTA2XHUwMTA4XHUwMTBBXHUwMTBDXHUwMTBFXHUwMTEwXHUwMTEyXHUwMTE0XHUwMTE2XHUwMTE4XHUwMTFBXHUwMTFDXHUwMTFFXHUwMTIwXHUwMTIyXHUwMTI0XHUwMTI2XHUwMTI4XHUwMTJBXHUwMTJDXHUwMTJFXHUwMTMwLVx1MDEzMlx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzQlx1MDEzRFx1MDEzRlx1MDE0MVx1MDE0M1x1MDE0NVx1MDE0N1x1MDE0QVx1MDE0Q1x1MDE0RVx1MDE1MFx1MDE1Mlx1MDE1NFx1MDE1Nlx1MDE1OFx1MDE1QVx1MDE1Q1x1MDE1RVx1MDE2MFx1MDE2Mlx1MDE2NFx1MDE2Nlx1MDE2OFx1MDE2QVx1MDE2Q1x1MDE2RVx1MDE3MFx1MDE3Mlx1MDE3NFx1MDE3Nlx1MDE3OC1cdTAxNzlcdTAxN0JcdTAxN0RcdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMFx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUFGXHUwMUIxLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMUNEXHUwMUNGXHUwMUQxXHUwMUQzXHUwMUQ1XHUwMUQ3XHUwMUQ5XHUwMURCXHUwMURFXHUwMUUwXHUwMUUyXHUwMUU0XHUwMUU2XHUwMUU4XHUwMUVBXHUwMUVDXHUwMUVFXHUwMUYxLVx1MDFGNFx1MDFGNi1cdTAxRjhcdTAxRkFcdTAxRkNcdTAxRkVcdTAyMDBcdTAyMDJcdTAyMDRcdTAyMDZcdTAyMDhcdTAyMEFcdTAyMENcdTAyMEVcdTAyMTBcdTAyMTJcdTAyMTRcdTAyMTZcdTAyMThcdTAyMUFcdTAyMUNcdTAyMUVcdTAyMjJcdTAyMjRcdTAyMjZcdTAyMjhcdTAyMkFcdTAyMkNcdTAyMkVcdTAyMzBcdTAyMzJcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NVx1MDM3NFx1MDM3RVx1MDM4Ni1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzhGXHUwMzkxLVx1MDNBMVx1MDNBMy1cdTAzQUJcdTAzQzJcdTAzRDAtXHUwM0QxXHUwM0Q1LVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQ2MFx1MDQ2Mlx1MDQ2NFx1MDQ2Nlx1MDQ2OFx1MDQ2QVx1MDQ2Q1x1MDQ2RVx1MDQ3MFx1MDQ3Mlx1MDQ3NFx1MDQ3Nlx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMVx1MDRDM1x1MDRDN1x1MDRDQlx1MDREMFx1MDREMlx1MDRENFx1MDRENlx1MDREOFx1MDREQVx1MDREQ1x1MDRERVx1MDRFMFx1MDRFMlx1MDRFNFx1MDRFNlx1MDRFOFx1MDRFQVx1MDRFQ1x1MDRFRVx1MDRGMFx1MDRGMlx1MDRGNFx1MDRGOFx1MDUzMS1cdTA1NTZcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MDlGOFx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEzN0NcdTFFMDBcdTFFMDJcdTFFMDRcdTFFMDZcdTFFMDhcdTFFMEFcdTFFMENcdTFFMEVcdTFFMTBcdTFFMTJcdTFFMTRcdTFFMTZcdTFFMThcdTFFMUFcdTFFMUNcdTFFMUVcdTFFMjBcdTFFMjJcdTFFMjRcdTFFMjZcdTFFMjhcdTFFMkFcdTFFMkNcdTFFMkVcdTFFMzBcdTFFMzJcdTFFMzRcdTFFMzZcdTFFMzhcdTFFM0FcdTFFM0NcdTFFM0VcdTFFNDBcdTFFNDJcdTFFNDRcdTFFNDZcdTFFNDhcdTFFNEFcdTFFNENcdTFFNEVcdTFFNTBcdTFFNTJcdTFFNTRcdTFFNTZcdTFFNThcdTFFNUFcdTFFNUNcdTFFNUVcdTFFNjBcdTFFNjJcdTFFNjRcdTFFNjZcdTFFNjhcdTFFNkFcdTFFNkNcdTFFNkVcdTFFNzBcdTFFNzJcdTFFNzRcdTFFNzZcdTFFNzhcdTFFN0FcdTFFN0NcdTFFN0VcdTFFODBcdTFFODJcdTFFODRcdTFFODZcdTFFODhcdTFFOEFcdTFFOENcdTFFOEVcdTFFOTBcdTFFOTJcdTFFOTRcdTFFOUJcdTFFQTBcdTFFQTJcdTFFQTRcdTFFQTZcdTFFQThcdTFFQUFcdTFFQUNcdTFFQUVcdTFFQjBcdTFFQjJcdTFFQjRcdTFFQjZcdTFFQjhcdTFFQkFcdTFFQkNcdTFFQkVcdTFFQzBcdTFFQzJcdTFFQzRcdTFFQzZcdTFFQzhcdTFFQ0FcdTFFQ0NcdTFFQ0VcdTFFRDBcdTFFRDJcdTFFRDRcdTFFRDZcdTFFRDhcdTFFREFcdTFFRENcdTFFREVcdTFFRTBcdTFFRTJcdTFFRTRcdTFFRTZcdTFFRThcdTFFRUFcdTFFRUNcdTFFRUVcdTFFRjBcdTFFRjJcdTFFRjRcdTFFRjZcdTFFRjhcdTFGMDgtXHUxRjBGXHUxRjE4LVx1MUYxRFx1MUYyOC1cdTFGMkZcdTFGMzgtXHUxRjNGXHUxRjQ4LVx1MUY0RFx1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2OC1cdTFGNkZcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGODgtXHUxRjhGXHUxRjk4LVx1MUY5Rlx1MUZBOC1cdTFGQUZcdTFGQjgtXHUxRkJDXHUxRkJFXHUxRkM4LVx1MUZDQ1x1MUZEM1x1MUZEOC1cdTFGREJcdTFGRTNcdTFGRTgtXHUxRkVDXHUxRkVFLVx1MUZFRlx1MUZGOC1cdTFGRkRcdTIwMDAtXHUyMDAxXHUyMDcwXHUyMDc0LVx1MjA3OVx1MjA4MC1cdTIwODlcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTUzLVx1MjE1RVx1MjE2MC1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMzI5LVx1MjMyQVx1MjQ2MC1cdTI0NjhcdTI0NzQtXHUyNDdDXHUyNDg4LVx1MjQ5MFx1MjRCNi1cdTI0RUFcdTI3NzYtXHUyNzdFXHUyNzgwLVx1Mjc4OFx1Mjc4QS1cdTI3OTJcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVcdUZGMjEtXHVGRjNBXFxVMDAwMTAzNEFcXFUwMDAxMDQwMC1cXFUwMDAxMDQyNVxcVTAwMDFEMTY1LVxcVTAwMDFEMTY2XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJdIiksCisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbQS1aXHUwMEEwXHUwMEE4XHUwMEFBXHUwMEFGXHUwMEIyLVx1MDBCNVx1MDBCOC1cdTAwQkFcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwREVcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDExMFx1MDExMi1cdTAxMjZcdTAxMjgtXHUwMTM3XHUwMTM5LVx1MDE0MVx1MDE0My1cdTAxNEFcdTAxNEMtXHUwMTUyXHUwMTU0LVx1MDE2Nlx1MDE2OC1cdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUIzXHUwMUI1XHUwMUI3LVx1MDFCOFx1MDFCQ1x1MDFDNC1cdTAxRENcdTAxREUtXHUwMUU0XHUwMUU2LVx1MDIxQ1x1MDIxRS1cdTAyMUZcdTAyMjJcdTAyMjRcdTAyMjYtXHUwMjMzXHUwMkIwLVx1MDJCOFx1MDJEOC1cdTAyRERcdTAyRTAtXHUwMkU0XHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDVcdTAzNzRcdTAzN0FcdTAzN0VcdTAzODQtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzQjBcdTAzQzJcdTAzQ0EtXHUwM0NFXHUwM0QwLVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQzOVx1MDQ1MC1cdTA0NTFcdTA0NTNcdTA0NTdcdTA0NUMtXHUwNDVFXHUwNDYwXHUwNDYyXHUwNDY0XHUwNDY2XHUwNDY4XHUwNDZBXHUwNDZDXHUwNDZFXHUwNDcwXHUwNDcyXHUwNDc0XHUwNDc2LVx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMS1cdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDAtXHUwNEQ0XHUwNEQ2LVx1MDREOFx1MDREQS1cdTA0RTBcdTA0RTItXHUwNEU4XHUwNEVBLVx1MDRGNVx1MDRGOC1cdTA0RjlcdTA1MzEtXHUwNTU2XHUwNTg3XHUwNjIyLVx1MDYyNlx1MDY3NS1cdTA2NzhcdTA2QzBcdTA2QzJcdTA2RDNcdTA5MjlcdTA5MzFcdTA5MzRcdTA5NTgtXHUwOTVGXHUwOUNCLVx1MDlDQ1x1MDlEQy1cdTA5RERcdTA5REZcdTA5RjhcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjQ4XHUwQjRCLVx1MEI0Q1x1MEI1Qy1cdTBCNURcdTBCOTRcdTBCQ0EtXHUwQkNDXHUwQzQ4XHUwQ0MwXHUwQ0M3LVx1MENDOFx1MENDQS1cdTBDQ0JcdTBENEEtXHUwRDRDXHUwRERBXHUwRERDLVx1MERERVx1MEUzM1x1MEVCM1x1MEVEQy1cdTBFRERcdTBGMENcdTBGMkEtXHUwRjMzXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3OVx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MTAyNlx1MTM3Q1x1MUUwMC1cdTFFOUJcdTFFQTAtXHUxRUY5XHUxRjAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQzRcdTFGQzYtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERC1cdTFGRUZcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyMkMtXHUyMjJEXHUyMjJGLVx1MjIzMFx1MjI0MVx1MjI0NFx1MjI0N1x1MjI0OVx1MjI2MFx1MjI2Mlx1MjI2RC1cdTIyNzFcdTIyNzQtXHUyMjc1XHUyMjc4LVx1MjI3OVx1MjI4MC1cdTIyODFcdTIyODQtXHUyMjg1XHUyMjg4LVx1MjI4OVx1MjJBQy1cdTIyQUZcdTIyRTAtXHUyMkUzXHUyMkVBLVx1MjJFRFx1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHUyRTlGXHUyRUYzXHUyRjAwLVx1MkZENVx1MzAwMFx1MzAzNlx1MzAzOC1cdTMwM0FcdTMwNENcdTMwNEVcdTMwNTBcdTMwNTJcdTMwNTRcdTMwNTZcdTMwNThcdTMwNUFcdTMwNUNcdTMwNUVcdTMwNjBcdTMwNjJcdTMwNjVcdTMwNjdcdTMwNjlcdTMwNzAtXHUzMDcxXHUzMDczLVx1MzA3NFx1MzA3Ni1cdTMwNzdcdTMwNzktXHUzMDdBXHUzMDdDLVx1MzA3RFx1MzA5NFx1MzA5Qi1cdTMwOUNcdTMwOUVcdTMwQUNcdTMwQUVcdTMwQjBcdTMwQjJcdTMwQjRcdTMwQjZcdTMwQjhcdTMwQkFcdTMwQkNcdTMwQkVcdTMwQzBcdTMwQzJcdTMwQzVcdTMwQzdcdTMwQzlcdTMwRDAtXHUzMEQxXHUzMEQzLVx1MzBENFx1MzBENi1cdTMwRDdcdTMwRDktXHUzMERBXHUzMERDLVx1MzBERFx1MzBGNFx1MzBGNy1cdTMwRkFcdTMwRkVcdTMxMzEtXHUzMThFXHUzMTkyLVx1MzE5Rlx1MzIwMC1cdTMyMUNcdTMyMjAtXHUzMjQzXHUzMjYwLVx1MzI3Qlx1MzI4MC1cdTMyQjBcdTMyQzAtXHUzMkNCXHUzMkQwLVx1MzJGRVx1MzMwMC1cdTMzNzZcdTMzN0ItXHUzM0REXHUzM0UwLVx1MzNGRVx1QUMwMC1cdUQ3QTNcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMURcdUZCMUYtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFMzAtXHVGRTQ0XHVGRTQ5LVx1RkU1Mlx1RkU1NC1cdUZFNjZcdUZFNjgtXHVGRTZCXHVGRTcwLVx1RkU3Mlx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMDEtXHVGRjVFXHVGRjYxLVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENcdUZGRTAtXHVGRkU2XHVGRkU4LVx1RkZFRVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMTAwXHUwMTAyXHUwMTA0XHUwMTA2XHUwMTA4XHUwMTBBXHUwMTBDXHUwMTBFXHUwMTEwXHUwMTEyXHUwMTE0XHUwMTE2XHUwMTE4XHUwMTFBXHUwMTFDXHUwMTFFXHUwMTIwXHUwMTIyXHUwMTI0XHUwMTI2XHUwMTI4XHUwMTJBXHUwMTJDXHUwMTJFXHUwMTMwLVx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzQlx1MDEzRFx1MDEzRi1cdTAxNDFcdTAxNDNcdTAxNDVcdTAxNDdcdTAxNDktXHUwMTRBXHUwMTRDXHUwMTRFXHUwMTUwXHUwMTUyXHUwMTU0XHUwMTU2XHUwMTU4XHUwMTVBXHUwMTVDXHUwMTVFXHUwMTYwXHUwMTYyXHUwMTY0XHUwMTY2XHUwMTY4XHUwMTZBXHUwMTZDXHUwMTZFXHUwMTcwXHUwMTcyXHUwMTc0XHUwMTc2XHUwMTc4LVx1MDE3OVx1MDE3Qlx1MDE3RFx1MDE3Rlx1MDE4MS1cdTAxODJcdTAxODRcdTAxODYtXHUwMTg3XHUwMTg5LVx1MDE4Qlx1MDE4RS1cdTAxOTFcdTAxOTMtXHUwMTk0XHUwMTk2LVx1MDE5OFx1MDE5Qy1cdTAxOURcdTAxOUYtXHUwMUEwXHUwMUEyXHUwMUE0XHUwMUE2LVx1MDFBN1x1MDFBOVx1MDFBQ1x1MDFBRS1cdTAxQUZcdTAxQjEtXHUwMUIzXHUwMUI1XHUwMUI3LVx1MDFCOFx1MDFCQ1x1MDFDNC1cdTAxQ0RcdTAxQ0ZcdTAxRDFcdTAxRDNcdTAxRDVcdTAxRDdcdTAxRDlcdTAxREJcdTAxREVcdTAxRTBcdTAxRTJcdTAxRTRcdTAxRTZcdTAxRThcdTAxRUFcdTAxRUNcdTAxRUVcdTAxRjEtXHUwMUY0XHUwMUY2LVx1MDFGOFx1MDFGQVx1MDFGQ1x1MDFGRVx1MDIwMFx1MDIwMlx1MDIwNFx1MDIwNlx1MDIwOFx1MDIwQVx1MDIwQ1x1MDIwRVx1MDIxMFx1MDIxMlx1MDIxNFx1MDIxNlx1MDIxOFx1MDIxQVx1MDIxQ1x1MDIxRVx1MDIyMlx1MDIyNFx1MDIyNlx1MDIyOFx1MDIyQVx1MDIyQ1x1MDIyRVx1MDIzMFx1MDIzMlx1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ1XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOEZcdTAzOTEtXHUwM0ExXHUwM0EzLVx1MDNBQlx1MDNDMlx1MDNEMC1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzZcdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzFcdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDBcdTA0RDJcdTA0RDRcdTA0RDZcdTA0RDhcdTA0REFcdTA0RENcdTA0REVcdTA0RTBcdTA0RTJcdTA0RTRcdTA0RTZcdTA0RThcdTA0RUFcdTA0RUNcdTA0RUVcdTA0RjBcdTA0RjJcdTA0RjRcdTA0RjhcdTA1MzEtXHUwNTU2XHUwNTg3XHUwNjc1LVx1MDY3OFx1MDk1OC1cdTA5NUZcdTA5REMtXHUwOUREXHUwOURGXHUwOUY4XHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI1Qy1cdTBCNURcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzlcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEzN0NcdTFFMDBcdTFFMDJcdTFFMDRcdTFFMDZcdTFFMDhcdTFFMEFcdTFFMENcdTFFMEVcdTFFMTBcdTFFMTJcdTFFMTRcdTFFMTZcdTFFMThcdTFFMUFcdTFFMUNcdTFFMUVcdTFFMjBcdTFFMjJcdTFFMjRcdTFFMjZcdTFFMjhcdTFFMkFcdTFFMkNcdTFFMkVcdTFFMzBcdTFFMzJcdTFFMzRcdTFFMzZcdTFFMzhcdTFFM0FcdTFFM0NcdTFFM0VcdTFFNDBcdTFFNDJcdTFFNDRcdTFFNDZcdTFFNDhcdTFFNEFcdTFFNENcdTFFNEVcdTFFNTBcdTFFNTJcdTFFNTRcdTFFNTZcdTFFNThcdTFFNUFcdTFFNUNcdTFFNUVcdTFFNjBcdTFFNjJcdTFFNjRcdTFFNjZcdTFFNjhcdTFFNkFcdTFFNkNcdTFFNkVcdTFFNzBcdTFFNzJcdTFFNzRcdTFFNzZcdTFFNzhcdTFFN0FcdTFFN0NcdTFFN0VcdTFFODBcdTFFODJcdTFFODRcdTFFODZcdTFFODhcdTFFOEFcdTFFOENcdTFFOEVcdTFFOTBcdTFFOTJcdTFFOTRcdTFFOUEtXHUxRTlCXHUxRUEwXHUxRUEyXHUxRUE0XHUxRUE2XHUxRUE4XHUxRUFBXHUxRUFDXHUxRUFFXHUxRUIwXHUxRUIyXHUxRUI0XHUxRUI2XHUxRUI4XHUxRUJBXHUxRUJDXHUxRUJFXHUxRUMwXHUxRUMyXHUxRUM0XHUxRUM2XHUxRUM4XHUxRUNBXHUxRUNDXHUxRUNFXHUxRUQwXHUxRUQyXHUxRUQ0XHUxRUQ2XHUxRUQ4XHUxRURBXHUxRURDXHUxRURFXHUxRUUwXHUxRUUyXHUxRUU0XHUxRUU2XHUxRUU4XHUxRUVBXHUxRUVDXHUxRUVFXHUxRUYwXHUxRUYyXHUxRUY0XHUxRUY2XHUxRUY4XHUxRjA4LVx1MUYwRlx1MUYxOC1cdTFGMURcdTFGMjgtXHUxRjJGXHUxRjM4LVx1MUYzRlx1MUY0OC1cdTFGNERcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUZcdTFGNjgtXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjg4LVx1MUY4Rlx1MUY5OC1cdTFGOUZcdTFGQTgtXHUxRkFGXHUxRkI4LVx1MUZDMVx1MUZDOC1cdTFGQ0ZcdTFGRDNcdTFGRDgtXHUxRkRCXHUxRkRELVx1MUZERlx1MUZFM1x1MUZFOC1cdTFGRUZcdTFGRjgtXHUxRkZFXHUyMDAwLVx1MjAwQVx1MjAxMVx1MjAxN1x1MjAyNC1cdTIwMjZcdTIwMkZcdTIwMzMtXHUyMDM0XHUyMDM2LVx1MjAzN1x1MjAzQ1x1MjAzRVx1MjA0OC1cdTIwNDlcdTIwNzBcdTIwNzQtXHUyMDhFXHUyMEE4XHUyMTAwLVx1MjEwM1x1MjEwNS1cdTIxMDdcdTIxMDktXHUyMTEzXHUyMTE1LVx1MjExNlx1MjExOS1cdTIxMURcdTIxMjAtXHUyMTIyXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzFcdTIxMzMtXHUyMTM5XHUyMTUzLVx1MjE3Rlx1MjE4MS1cdTIxODNcdTIyMkMtXHUyMjJEXHUyMjJGLVx1MjIzMFx1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHUyRTlGXHUyRUYzXHUyRjAwLVx1MkZENVx1MzAwMFx1MzAzNlx1MzAzOC1cdTMwM0FcdTMwOUItXHUzMDlDXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMUYtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFMzAtXHVGRTQ0XHVGRTQ5LVx1RkU1Mlx1RkU1NC1cdUZFNjZcdUZFNjgtXHVGRTZCXHVGRTcwLVx1RkU3Mlx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMDEtXHVGRjVFXHVGRjYxLVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENcdUZGRTAtXHVGRkU2XHVGRkU4LVx1RkZFRVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorICAgICAgICB9LAorICAgIH07CisgICAgKi8KKworICAgIAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGdlbmVyYXRlZFNldDsKKyAgICAKKyAgICAvLyBUaGVzZSBzaG91bGQgYm90aCBiZSBwdWJsaWMsIGFuZCBvbiB0aGUgcmVzcGVjdGl2ZSBjbGFzc2VzCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFkZEFsbChVbmljb2RlU2V0IHMsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzdHIsaSk7CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zU29tZShVbmljb2RlU2V0IHMsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzdHIsaSk7CisgICAgICAgICAgICBpZiAocy5jb250YWlucyhjcCkpIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1dyaXRlSW5kaWNDaGFydHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Xcml0ZUluZGljQ2hhcnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg3ZmQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Xcml0ZUluZGljQ2hhcnRzLmphdmEKQEAgLTAsMCArMSwzNTcgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhpcyBnZW5lcmF0ZWQgY29tbWVudCBlZGl0IHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZSAidHlwZWNvbW1lbnQiOgorICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+VGVtcGxhdGVzLgorICogVG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBjcmVhdGlvbiBvZiB0eXBlIGNvbW1lbnRzIGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24uN0YKKyAqLworcHVibGljIGNsYXNzIFdyaXRlSW5kaWNDaGFydHMgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpeworICAgICAgICB3cml0ZUlJQ2hhcnRzKCk7CisgICAgfQorICAgCisgICAgCisgICAgc3RhdGljIFN0cmluZyBoZWFkZXIgPSAgIjxodG1sPlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8aGVhZD48bWV0YSBodHRwLWVxdWl2PVwiQ29udGVudC1UeXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiPiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgSW50ZXItSW5kaWMgVHJhbnNsaXRlcmF0aW9uIENvbXBhcmlzb24gY2hhcnQiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPC9oZWFkPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDxib2R5IGJnY29sb3I9I0ZGRkZGRj5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgIDx0YWJsZSBib3JkZXI9MSB3aWR0aD0xMDAlID5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0cj5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5JbnRlci1JbmRpYzwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+TGF0aW48L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPkRldmFuYWdhcmk8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPkJlbmdhbGk8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPkd1cm11a2hpPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5HdWphcmF0aTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+T3JpeWE8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPlRhbWlsPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5UZWx1Z3U8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPkthbm5hZGE8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPk1hbGF5YWxhbTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8L3RyPlxuIjsKKyAgICBzdGF0aWMgU3RyaW5nIGZvb3RlciA9ICAiICAgICAgICAgIDwvdGFibGU+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPC9ib2R5PlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvaHRtbD5cbiI7CisgICAgICAgICAgICAgICAgICAgCisgICAgc3RhdGljIFVuaWNvZGVTZXQgZGV2YSA9IG5ldyBVbmljb2RlU2V0KCJbOmRldmE6XSIpOyAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBiZW5nID0gbmV3IFVuaWNvZGVTZXQoIls6YmVuZzpdIik7CisgICAgc3RhdGljIFVuaWNvZGVTZXQgZ3VqciA9IG5ldyBVbmljb2RlU2V0KCJbOmd1anI6XSIpOworICAgIHN0YXRpYyBVbmljb2RlU2V0IGd1cnUgPSBuZXcgVW5pY29kZVNldCgiWzpndXJ1Ol0iKTsKKyAgICBzdGF0aWMgVW5pY29kZVNldCBvcnlhID0gbmV3IFVuaWNvZGVTZXQoIls6b3J5YTpdIik7CisgICAgc3RhdGljIFVuaWNvZGVTZXQgdGFtbCA9IG5ldyBVbmljb2RlU2V0KCJbOnRhbWw6XSIpOworICAgIHN0YXRpYyBVbmljb2RlU2V0IHRlbHUgPSBuZXcgVW5pY29kZVNldCgiWzp0ZWx1Ol0iKTsKKyAgICBzdGF0aWMgVW5pY29kZVNldCBrbmRhID0gbmV3IFVuaWNvZGVTZXQoIls6a25kYTpdIik7IAorICAgIHN0YXRpYyBVbmljb2RlU2V0IG1seW0gPSBuZXcgVW5pY29kZVNldCgiWzptbHltOl0iKTsgICAgICAgICAgICAgICAgICAgICAgCisgICAgc3RhdGljIFVuaWNvZGVTZXQgaW50ZXI9IG5ldyBVbmljb2RlU2V0KCJbXHVFMDAwLVx1RTA4Ml0iKTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVJSUNoYXJ0cygpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLUJlbmdhbGkiKTsgICAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLUd1cm11a2hpIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLUd1amFyYXRpIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0NCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLU9yaXlhIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0NSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLVRhbWlsIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0NiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLVRlbHVndSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDcgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1LYW5uYWRhIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0OCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLU1hbGF5YWxhbSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDkgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1EZXZhbmFnYXJpIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MTAgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1MYXRpbiIpOworICAgICAgICAgICAgLy9Vbmljb2RlU2V0SXRlcmF0b3Igc0l0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGRldmEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IoaW50IGk9MHgwMDtpPD0weDgwO2krKyl7CisgICAgICAgICAgICAgICBTdHJpbmdbXSBhcnIgPSAgbmV3IFN0cmluZ1sxMF07CisgICAgICAgICAgICAgICBhcnJbMF09VVRGMTYudmFsdWVPZihpKyAweEUwMDApOworICAgICAgICAgICAgICAgdGFibGUucHV0KFVURjE2LnZhbHVlT2YoaSksYXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG9zID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbSgiY29tcGFyaXNvbi1jaGFydC5odG1sIiksIlVURi04Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG9zLndyaXRlKGhlYWRlcik7CisKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDksMHgwOTAwLDEpOworICAgICAgICAgICAgd3JpdGVJSUNoYXJ0cyh0MSwweDA5ODAsMik7ICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDIsMHgwQTAwLDMpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDMsMHgwQTgwLDQpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDQsMHgwQjAwLDUpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDUsMHgwQjgwLDYpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDYsMHgwYzAwLDcpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDcsMHgwQzgwLDgpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDgsMHgwRDAwLDkpOyAKKworICAgICAgICAgICAgZm9yKGludCBpPTB4MDA7aTw9MHg4MDtpKyspeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSAoU3RyaW5nW10pdGFibGUuZ2V0KFVURjE2LnZhbHVlT2YoaSkpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JpdGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGs9MTtrPHRlbXAubGVuZ3RoICYmIHRlbXBba10hPW51bGw7aysrKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHRlbXBba10sMCkpLmluZGV4T2YoInVuYXNzaWduZWQiKTwwIHx8CisgICAgICAgICAgICAgICAgICAgICAgIHRlbXBba10uaW5kZXhPZigiOlVOQVNTSUdORUQiKTwwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZih3cml0ZSl7CisgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgIDx0cj5cbiIpOworICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajx0ZW1wLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcFtqXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmYWxsYmFjaz1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVuYXNzaWduZWQ9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1bm1hcHBlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY29uc3VtZWQgPWZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSB0ZW1wW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0ZW1wW2pdLmluZGV4T2YoIjpGQUxMQkFDSyIpPj0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gdGVtcFtqXS5zdWJzdHJpbmcoMCx0ZW1wW2pdLmluZGV4T2YoIjoiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPXRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSNGRkZGMDAgYWxpZ249Y2VudGVyIHRpdGxlPVwiIisrIlwiPiIrc3RyKyI8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0uaW5kZXhPZigiOlVOQVNTSUdORUQiKT49MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHRlbXBbal0uc3Vic3RyaW5nKDAsdGVtcFtqXS5pbmRleE9mKCI6IikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmFzc2lnbmVkPXRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0uaW5kZXhPZigiOlVOTUFQUEVEIik+PTApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0ZW1wW2pdLnN1YnN0cmluZygwLHRlbXBbal0uaW5kZXhPZigiOiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5tYXBwZWQ9dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcFtqXS5pbmRleE9mKCI6Q09OU1VNRUQiKT49MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHRlbXBbal0uc3Vic3RyaW5nKDAsdGVtcFtqXS5pbmRleE9mKCI6IikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1lZD10cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbmFtZUJ1Zj1uZXcgU3RyaW5nQnVmZmVyKCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgZj0wOyBmPHN0ci5sZW5ndGgoKTtmKyspeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihmPjApeyBuYW1lQnVmLmFwcGVuZCgiKyIpO30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUJ1Zi5hcHBlbmQoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0cixmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZUJ1Zi50b1N0cmluZygpOyAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZhbGxiYWNrKXsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZShVVEYxNi5jaGFyQXQoc3RyLDApKS5pbmRleE9mKCJ1bmFzc2lnbmVkIik+MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkICB3aWR0aD05JSBiZ2NvbG9yPSNCQkJCRkYgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9I0JCQkJGRiBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIHN0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYodW5tYXBwZWQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIGJnY29sb3I9I0ZGOTk5OSBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIiZuYnNwPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKHVuYXNzaWduZWQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZShVVEYxNi5jaGFyQXQoc3RyLDApKS5pbmRleE9mKCJ1bmFzc2lnbmVkIik+MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9IzAwRkZGRiBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIiZuYnNwPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgd2lkdGg9OSUgYmdjb2xvcj0jMDBGRkZGIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+Iisgc3RyKyI8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihjb25zdW1lZCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZShVVEYxNi5jaGFyQXQoc3RyLDApKS5pbmRleE9mKCJ1bmFzc2lnbmVkIik+MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9I0ZGRkY1NSBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIiZuYnNwPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgd2lkdGg9OSUgYmdjb2xvcj0jRkZGRjU1IGFsaWduPWNlbnRlciB0aXRsZT1cIiIrIiIrIlwiPiIrIiZuYnNwPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5pbmRleE9mKCJwcml2YXRlIikhPS0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSB0MTAudHJhbnNsaXRlcmF0ZShzdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9I0ZGQkJCQiAgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIXMuZXF1YWxzKHN0cikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSAgYmdjb2xvcj0jQ0NFRUREIGFsaWduPWNlbnRlcj4iK3MgKyI8L3RkPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgd2lkdGg9OSUgYmdjb2xvcj0jQ0NFRUREIGFsaWduPWNlbnRlcj4mbmJzcDs8L3RkPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIHN0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgPHRkIHdpZHRoPTklID4mbmJzcDwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICA8L3RyPlxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgb3Mud3JpdGUoZm9vdGVyKTsKKyAgICAgICAgICAgIG9zLmNsb3NlKCk7CisgICAgICAgIH1jYXRjaCggRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVDaGFydHMoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1CZW5nYWxpIik7ICAgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1HdXJtdWtoaSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1HdWphcmF0aSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1Pcml5YSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1UYW1pbCIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDYgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1UZWx1Z3UiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ3ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtS2FubmFkYSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1NYWxheWFsYW0iKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ5ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtRGV2YW5hZ2FyaSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1VuaWNvZGVTZXRJdGVyYXRvciBzSXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoZGV2YSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaT0weDA5MDA7aTw9MHgwOTdGO2krKyl7CisgICAgICAgICAgICAgICBTdHJpbmdbXSBhcnIgPSAgbmV3IFN0cmluZ1sxMF07CisgICAgICAgICAgICAgICBhcnJbMF09VVRGMTYudmFsdWVPZigoaSYweEZGKSArIDB4RTAwMCk7CisgICAgICAgICAgICAgICB0YWJsZS5wdXQoVVRGMTYudmFsdWVPZihpKSxhcnIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBPdXRwdXRTdHJlYW1Xcml0ZXIgb3MgPSBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG5ldyBGaWxlT3V0cHV0U3RyZWFtKCJjb21wYXJpc29uLWNoYXJ0Lmh0bWwiKSwiVVRGLTgiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3Mud3JpdGUoaGVhZGVyKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0MSxiZW5nLDEpOyAgICAgICAgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0MixndXJ1LDIpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQzLGd1anIsMyk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDQsb3J5YSw0KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0NSx0YW1sLDUpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ2LHRlbHUsNik7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDcsa25kYSw3KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0OCxtbHltLDgpOyAKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgd3JpdGVDaGFydHModDksMHgwOTAwLDEpOworICAgICAgICAgICAgd3JpdGVDaGFydHModDEsMHgwOTgwLDIpOyAgICAgICAgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0MiwweDBBMDAsMyk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDMsMHgwQTgwLDQpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ0LDB4MEIwMCw1KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0NSwweDBCODAsNik7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDYsMHgwYzAwLDcpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ3LDB4MEM4MCw4KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0OCwweDBEMDAsOSk7IAorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDksMHgwOTAwLDEpOworICAgICAgICAgICAgd3JpdGVJSUNoYXJ0cyh0MSwweDA5ODAsMik7ICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDIsMHgwQTAwLDMpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDMsMHgwQTgwLDQpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDQsMHgwQjAwLDUpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDUsMHgwQjgwLDYpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDYsMHgwYzAwLDcpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDcsMHgwQzgwLDgpOyAKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDgsMHgwRDAwLDkpOyAKKyAgICAgICAgICAgIGZvcihpbnQgaT0weDA5MDA7aTw9MHgwOTdGO2krKyl7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gdGVtcCA9IChTdHJpbmdbXSl0YWJsZS5nZXQoVVRGMTYudmFsdWVPZihpKSk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiB3cml0ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvcihpbnQgaz0xO2s8dGVtcC5sZW5ndGg7aysrKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHRlbXBba10sMCkpLmluZGV4T2YoInVuYXNzaWduZWQiKTwwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZih3cml0ZSl7CisgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgIDx0cj5cbiIpOworICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajx0ZW1wLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcFtqXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmYWxsYmFjaz1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVtcFtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0ZW1wW2pdLmluZGV4T2YoIjpGQUxMQkFDSyIpPj0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gdGVtcFtqXS5zdWJzdHJpbmcoMCx0ZW1wW2pdLmluZGV4T2YoIjoiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPXRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSNGRkZGMDAgYWxpZ249Y2VudGVyIHRpdGxlPVwiIisrIlwiPiIrc3RyKyI8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0ciwwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZmFsbGJhY2speworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIGJnY29sb3I9I0JCQkJGRiBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIHN0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuaW5kZXhPZigidW5hc3NpZ25lZCIpIT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYmdjb2xvcj0jQ0NDQ0NDIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+IisiJm5ic3A8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5pbmRleE9mKCJwcml2YXRlIikhPS0xKXsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSNGRkJCQkIgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyBzdHIrIjxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgIDx0ZD4mbmJzcDwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICA8L3RyPlxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgb3Mud3JpdGUoZm9vdGVyKTsKKyAgICAgICAgICAgIG9zLmNsb3NlKCk7CisgICAgICAgIH1jYXRjaCggRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgSGFzaHRhYmxlIHRhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworICAgIHN0YXRpYyBTdHJpbmcgZ2V0S2V5KGludCBjcCl7CisgICAgICAgIGludCBkZWx0YSA9IGNwICYgMHhGRjsKKyAgICAgICAgZGVsdGEtPSAoZGVsdGE+MHg3Zik/IDB4ODAgOiAwOworICAgICAgICAvL2RlbHRhKz0weDA5MDA7CisgICAgICAgIHJldHVybiBVVEYxNi52YWx1ZU9mKGRlbHRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlQ2hhcnRzKFRyYW5zbGl0ZXJhdG9yIHRyYW5zLCBpbnQgc3RhcnQsIGludCBpbmRleCl7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciBpbnZlcnNlID0gdHJhbnMuZ2V0SW52ZXJzZSgpOworICAgICAgICBmb3IoaW50IGk9MDtpPD0weDdmO2krKyl7CisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKHN0YXJ0K2kpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gaW52ZXJzZS50cmFuc2xpdGVyYXRlKGNwKTsKKyAgICAgICAgICAgIFN0cmluZyBzMiA9IHRyYW5zLnRyYW5zbGl0ZXJhdGUoczEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdbXSBhcnIgPSAoU3RyaW5nW10pdGFibGUuZ2V0KGdldEtleShzdGFydCtpKSk7CisgICAgICAgICAgICBpZihjcC5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczE7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczEgKyAiOkZBTExCQUNLIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVJSUNoYXJ0cyhUcmFuc2xpdGVyYXRvciB0cmFucyxpbnQgc3RhcnQsIGludCBpbmRleCl7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciBpbnZlcnNlID0gdHJhbnMuZ2V0SW52ZXJzZSgpOworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoaW50ZXIpOworICAgICAgICAKKyAgICAgICAgd2hpbGUoaXRlci5uZXh0KCkpeworICAgICAgICAgICAgU3RyaW5nIGNwID1VVEYxNi52YWx1ZU9mKGl0ZXIuY29kZXBvaW50KTsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9IHRyYW5zLnRyYW5zbGl0ZXJhdGUoY3ApOworICAgICAgICAgICAgU3RyaW5nIHMyID0gaW52ZXJzZS50cmFuc2xpdGVyYXRlKHMxKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGFyciA9IChTdHJpbmdbXSl0YWJsZS5nZXQoVVRGMTYudmFsdWVPZihpdGVyLmNvZGVwb2ludCYweEZGKSk7CisgICAgICAgICAgICBpZihjcC5lcXVhbHMoczEpKXsKKyAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gVVRGMTYudmFsdWVPZihzdGFydCsoKChieXRlKWl0ZXIuY29kZXBvaW50KSYweEZGKSkrIjpVTkFTU0lHTkVEIjsKKyAgICAgICAgICAgIH1lbHNlIGlmKGNwLmVxdWFscyhzMikpeworICAgICAgICAgICAgICAgIGFycltpbmRleF0gPSBzMTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHMxLmVxdWFscyhzMikpeworICAgICAgICAgICAgICAgIGlmKHMxLmVxdWFscygiIikpeworICAgICAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gVVRGMTYudmFsdWVPZihzdGFydCsoKChieXRlKWl0ZXIuY29kZXBvaW50KSYweEZGKSkrIjpDT05TVU1FRCI7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGFycltpbmRleF0gPSBzMSsgIjpGQUxMQkFDSyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNleworICAgICAgICAgICAgICAgIGlmKHMyLmVxdWFscygiIikpeworICAgICAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gVVRGMTYudmFsdWVPZihzdGFydCsoKChieXRlKWl0ZXIuY29kZXBvaW50KSYweEZGKSkrIjpDT05TVU1FRCI7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGFycltpbmRleF0gPSBzMSsgIjpGQUxMQkFDSyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZUNoYXJ0cyhUcmFuc2xpdGVyYXRvciB0cmFucywgVW5pY29kZVNldCB0YXJnZXQsIGludCBpbmRleCl7CisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB0SXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IodGFyZ2V0KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSA9IHRyYW5zLmdldEludmVyc2UoKTsKKyAgICAgICAgd2hpbGUodEl0ZXIubmV4dCgpKXsKKyAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YodEl0ZXIuY29kZXBvaW50KTsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9IGludmVyc2UudHJhbnNsaXRlcmF0ZShjcCk7CisgICAgICAgICAgICBTdHJpbmcgczIgPSB0cmFucy50cmFuc2xpdGVyYXRlKHMxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10gYXJyID0gKFN0cmluZ1tdKXRhYmxlLmdldChnZXRLZXkodEl0ZXIuY29kZXBvaW50KSk7CisgICAgICAgICAgICBpZihjcC5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gY3A7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gY3AgKyAiOkZBTExCQUNLIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2R1bXBJQ1VydWxlcy5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZHVtcElDVXJ1bGVzLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YmZkNWViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2R1bXBJQ1VydWxlcy5iYXQKQEAgLTAsMCArMSw0ODMgQEAKK0ByZW0gPSAnLS0qLVBlcmwtKi0tCitAZWNobyBvZmYKK2lmICIlT1MlIiA9PSAiV2luZG93c19OVCIgZ290byBXaW5OVAorcGVybCAteCAtUyAiJTAiICUxICUyICUzICU0ICU1ICU2ICU3ICU4ICU5Citnb3RvIGVuZG9mcGVybAorOldpbk5UCitwZXJsIC14IC1TICIlMCIgJSoKK2lmIE5PVCAiJUNPTVNQRUMlIiA9PSAiJVN5c3RlbVJvb3QlXHN5c3RlbTMyXGNtZC5leGUiIGdvdG8gZW5kb2ZwZXJsCitpZiAlZXJyb3JsZXZlbCUgPT0gOTAwOSBlY2hvIFlvdSBkbyBub3QgaGF2ZSBQZXJsIGluIHlvdXIgUEFUSC4KK2dvdG8gZW5kb2ZwZXJsCitAcmVtICc7CisjIXBlcmwKKyNsaW5lIDE0CisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyMgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworIyBUaGlzIHBlcmwgc2NyaXB0IGNyZWF0ZXMgSUNVIHRyYW5zbGl0ZXJhdG9yIGRhdGEgZmlsZXMsIHRoYXQgbGl2ZQorIyBpbiBpY3UvZGF0YSwgZnJvbSBJQ1U0SiBVVEY4IHRyYW5zbGl0ZXJhdG9yIGRhdGEgZmlsZXMsIGluCisjIGljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvLgorIworIyBUaGUgdHJhbnNmb3JtYXRpb24gdGhhdCBpcyBkb25lIGlzIHZlcnkgbWluaW1hbC4gIFRoZSBzY3JpcHQgYXNzdW1lcworIyB0aGF0IHRoZSBpbnB1dCBmaWxlcyB1c2Ugb25seSAjIGNvbW1lbnRzCisjIGFuZCB0aGF0IHRoZXkgZm9sbG93IGEgcmlnaWQgZm9ybWF0LgorIworIyBUaGUgb3V0cHV0IGZpbGVzIGFyZSBuYW1lZCBhY2NvcmRpbmcgdG8gSUNVIGNvbnZlbnRpb25zIChzZWUgTkFNRV9NQVAKKyMgYmVsb3cpIGFuZCBjcmVhdGVkIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIFRoZXkgc2hvdWxkIGJlIG1hbnVhbGx5CisjIGNoZWNrZWQgYW5kIHRoZW4gY29waWVkIGludG8gdGhlIGljdS9kYXRhL3RyYW5saXQgZGlyZWN0b3J5LgorIyBBbiBJQ1UgYnVpbGQgbXVzdAorIyB0aGVuIGJlIGluaXRpYXRlZCwgYW5kIHRoZSBzdGFuZGFyZCBzdWl0ZSBvZiBJQ1UgdHJhbnNsaXRlcmF0b3IgdGVzdHMKKyMgc2hvdWxkIGJlIHJ1biBhZnRlciB0aGF0LgorIworIyBBbGFuIExpdSA1LzE5LzAwIDIvMjcvMDEKKwordXNlIEdldG9wdDo6TG9uZzsKK3VzZSBzdHJpY3Q7CisKK3VzZSB2YXJzIHF3KCVVU0VEX0ZJTEVTKTsKKworbXkgJERJUiA9ICIuLi8uLi8uLi9pbXBsL2RhdGEiOworbXkgJElEID0gJyc7CisKK0dldE9wdGlvbnMoJ2Rpcj1zJyA9PiBcJERJUiwKKyAgICAgICAgICAgJ2lkPXMnID0+IFwkSUQsCisgICAgICAgICAgICc8PicgPT4gXCZ1c2FnZSkgfHwgZGllOworCit1c2FnZSgpIGlmIChAQVJHVik7CisKK215ICRJRCA9fiBzLy0vXy87CitpZiAoISAtZCAkRElSKSB7CisgICAgcHJpbnQgU1RERVJSICIkRElSIGlzIG5vdCBhIGRpcmVjdG9yeVxuIjsKKyAgICB1c2FnZSgpOworfQorCitzdWIgdXNhZ2UgeworICAgIG15ICRtZSA9ICQwOworICAgICRtZSA9fiBzfC4rWy9cXF18fDsKKyAgICBwcmludCAiVXNhZ2U6ICRtZSBbLWRpciA8ZGlyPl0gWy1pZCA8aWQ+XVxuIjsKKyAgICBwcmludCAiIC0tZGlyIDxkaXI+IFNwZWNpZnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZVxuIjsKKyAgICBwcmludCAiICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yXyoudHh0IGZpbGVzXG4iOworICAgIHByaW50ICIgLS1pZCA8aWQ+ICAgU3BlY2lmeSBhIHNpbmdsZSBJRCB0byB0cmFuc2Zvcm0sIGUuZy5cbiI7CisgICAgcHJpbnQgIiAgICAgICAgICAgICBGdWxsd2lkdGgtSGFsZndpZHRoXG4iOworICAgIGV4aXQoMSk7Cit9CisKK215ICRKQVZBX09OTFkgPSAnLSc7CisKK215ICRPVVRESVIgPSAiaWN1NGMiOworbWtkaXIoJE9VVERJUiwwNzc3KTsKKworIyBNYXBwaW5nIGZyb20gSmF2YSBmaWxlIG5hbWVzIHRvIElDVSBmaWxlIG5hbWVzCisjIENvbnN0cmFpbnRzIG9uIElDVTRDIGZpbGUgbmFtZTogaWN1ZHQyMGJfCisjIHwtLTkgKHByZWZpeCktLS18LS0tMTgobmFtZSB3aXRoIGRpc3Rpbmd1aXNoZXIsZS5nLiAidF8iICktLS0tfAorIyAgLS00ICgiLiIrZXh0biktLXwgPSAzMSBjaGFyYWN0ZXJzIHRvdGFsLgorIyBUaGF0IGlzLCBtdXN0IGhhdmUgbGVuZ3RoKCVOQU1FX01BUHt4fSkgPD0gMTYKKworbXkgJE1BWF9JQ1U0Q19GSUxFTkFNRV9MRU4gPSAxODsKKworIyAtLSBISVNUT1JZIC0tIElmIG5vdCBtYXJrZWQsIHRoZW4gcHJlIDIuMi4KKyMgICAgICAgICAgICAgICBBbGwgSW50ZXJJbmRpYyBhcmUgcHJlIDIuMi4KKyMgQW55X0FjY2VudHMKKyMgQW55X1B1Ymxpc2hpbmcKKyMgQXJhYmljX0xhdGluICAgICAgICAgICAqIDIuMgorIyBDeXJpbGxpY19MYXRpbgorIyBGdWxsd2lkdGhfSGFsZndpZHRoCisjIEdyZWVrX0xhdGluCisjIEdyZWVrX0xhdGluX1VOR0VHTiAgICAgKiAyLjIgKG1vdmVkIGZyb20gZWwudHh0KQorIyBIYW5fTGF0aW4gICAgICAgICAgICAgICogMi4yCisjIEhhbl9MYXRpbl9EZWZpbml0aW9uICAgKiAyLjIKKyMgSGFuX0xhdGluX0VESUNUICAgICAgICAqIDIuMiBKIG9ubHkKKyMgSGVicmV3X0xhdGluICAgICAgICAgICAqIDIuMgorIyBIaXJhZ2FuYV9LYXRha2FuYQorIyBIaXJhZ2FuYV9MYXRpbgorIyBMYXRpbl9KYW1vCisjIExhdGluX0thdGFrYW5hCisjIFRoYWlMb2dpY2FsX0xhdGluICAgICAgKiAyLjIgSiBvbmx5CisjIFRoYWlfVGhhaUxvZ2ljYWwgICAgICAgKiAyLjIgSiBvbmx5CisjIFRoYWlfVGhhaVNlbWkgICAgICAgICAgKiAyLjIgSiBvbmx5CisKK215ICVOQU1FX01BUCA9ICgKKyAgICAgIyBBbiBJQ1UgbmFtZSBvZiAiIiBtZWFucyB0aGUgSUNVIG5hbWUgPT0gdGhlIElECisKKyAgICAgIyBXZSBmaWx0ZXIgbmFtZXMgYmFzZWQgb24gd2hhdCBpcyBpbiB1c2UgaW4gdGhlIGluZGV4IGZpbGUuCisKKyAgICAgIyBGbGFnIGEgcnVsZSBhcyBKQVZBX09OTFkgaWYgaXQgZXhpc3RzIGFuZCB3ZSB1c2UgaXQgaW4gSmF2YSwKKyAgICAgIyBidXQgd2UgZG9uJ3QgdXNlIGl0IGluIEMuCisKKyAgICAgIyBVc2Ugb2ZmaWNpYWwgc2NyaXB0IGFiYnJldmlhdGlvbnMgd2hlcmUgcG9zc2libGUuCisKKyAgICMgfC4uLi4uLi4uLi4uLi4ufCAgICAgICAgICAgfC4uLi4uLi4uLi4uLi4ufCAgICAgICAgICAgICAKKyAgICMgMTIzNDU2Nzg5MDEyMzQ1NiAgICAgICAgICAgMTIzNDU2Nzg5MDEyMzQ1NgorICAgICBBbnlfQWNjZW50cyAgICAgICAgICAgID0+ICIiLAorICAgICBBbnlfUHVibGlzaGluZyAgICAgICAgID0+ICIiLAorICAgICBDeXJpbGxpY19MYXRpbiAgICAgICAgID0+ICJDeXJsX0xhdG4iLAorICAgICBGdWxsd2lkdGhfSGFsZndpZHRoICAgID0+ICJGV2lkdGhfSFdpZHRoIiwKKyAgICAgR3JlZWtfTGF0aW4gICAgICAgICAgICA9PiAiR3Jla19MYXRuIiwKKyAgICAgSGlyYWdhbmFfS2F0YWthbmEgICAgICA9PiAiSGlyYV9LYW5hIiwKKyAgICAgSGlyYWdhbmFfTGF0aW4gICAgICAgICA9PiAiSGlyYV9MYXRuIiwKKyAgICAgTGF0aW5fSmFtbyAgICAgICAgICAgICA9PiAiTGF0bl9KYW1vIiwKKyAgICAgTGF0aW5fS2F0YWthbmEgICAgICAgICA9PiAiTGF0bl9LYW5hIiwKKworICAgICBBcmFiaWNfTGF0aW4gICAgICAgICAgID0+ICJBcmFiX0xhdG4iLAorICAgICBHcmVla19MYXRpbl9VTkdFR04gICAgID0+ICJHcmVrX0xhdG5fVU5HRUdOIiwKKyAgICAgSGFuX0xhdGluICAgICAgICAgICAgICA9PiAiSGFuaV9MYXRuIiwKKyAgICAgSGFuX0xhdGluX0RlZmluaXRpb24gICA9PiAiSGFuaV9MYXRuX0RlZiIsCisgICAgIEhhbl9MYXRpbl9FRElDVCAgICAgICAgPT4gIkhhbmlfTGF0bl9FRElDVCIsCisgICAgIEhlYnJld19MYXRpbiAgICAgICAgICAgPT4gIkhlYnJfTGF0biIsCisgICAgIFRoYWlMb2dpY2FsX0xhdGluICAgICAgPT4gJEpBVkFfT05MWSwgIyAiVGhhaUxvZ19MYXRuIiwKKyAgICAgVGhhaV9UaGFpTG9naWNhbCAgICAgICA9PiAkSkFWQV9PTkxZLCAjICJUaGFpX1RoYWlMb2ciLAorICAgICBUaGFpX1RoYWlTZW1pICAgICAgICAgID0+ICRKQVZBX09OTFksICMgIlRoYWlfVGhhaVNlbWkiLAorCisgICAgIEludGVySW5kaWNfQmVuZ2FsaSAgICAgPT4gIkludGVySW5kaWNfQmVuZyIsCisgICAgIEludGVySW5kaWNfRGV2YW5hZ2FyaSAgPT4gIkludGVySW5kaWNfRGV2YSIsCisgICAgIEludGVySW5kaWNfR3VqYXJhdGkgICAgPT4gIkludGVySW5kaWNfR3VqciIsCisgICAgIEludGVySW5kaWNfR3VybXVraGkgICAgPT4gIkludGVySW5kaWNfR3VydSIsCisgICAgIEludGVySW5kaWNfS2FubmFkYSAgICAgPT4gIkludGVySW5kaWNfS25kYSIsCisgICAgIEludGVySW5kaWNfTGF0aW4gICAgICAgPT4gIkludGVySW5kaWNfTGF0biIsCisgICAgIEludGVySW5kaWNfTWFsYXlhbGFtICAgPT4gIkludGVySW5kaWNfTWx5bSIsCisgICAgIEludGVySW5kaWNfT3JpeWEgICAgICAgPT4gIkludGVySW5kaWNfT3J5YSIsCisgICAgIEludGVySW5kaWNfVGFtaWwgICAgICAgPT4gIkludGVySW5kaWNfVGFtbCIsCisgICAgIEludGVySW5kaWNfVGVsdWd1ICAgICAgPT4gIkludGVySW5kaWNfVGVsdSIsCisKKyAgICAgQmVuZ2FsaV9JbnRlckluZGljICAgICA9PiAiQmVuZ19JbnRlckluZGljIiwKKyAgICAgRGV2YW5hZ2FyaV9JbnRlckluZGljICA9PiAiRGV2YV9JbnRlckluZGljIiwKKyAgICAgR3VqYXJhdGlfSW50ZXJJbmRpYyAgICA9PiAiR3Vqcl9JbnRlckluZGljIiwKKyAgICAgR3VybXVraGlfSW50ZXJJbmRpYyAgICA9PiAiR3VydV9JbnRlckluZGljIiwKKyAgICAgS2FubmFkYV9JbnRlckluZGljICAgICA9PiAiS25kYV9JbnRlckluZGljIiwKKyAgICAgTGF0aW5fSW50ZXJJbmRpYyAgICAgICA9PiAiTGF0bl9JbnRlckluZGljIiwKKyAgICAgTWFsYXlhbGFtX0ludGVySW5kaWMgICA9PiAiTWx5bV9JbnRlckluZGljIiwKKyAgICAgT3JpeWFfSW50ZXJJbmRpYyAgICAgICA9PiAiT3J5YV9JbnRlckluZGljIiwKKyAgICAgVGFtaWxfSW50ZXJJbmRpYyAgICAgICA9PiAiVGFtbF9JbnRlckluZGljIiwKKyAgICAgVGVsdWd1X0ludGVySW5kaWMgICAgICA9PiAiVGVsdV9JbnRlckluZGljIiwKKyAgICAgCisgICAgIEhhbl9QaW55aW4gICAgICAgICAgICAgPT4gJEpBVkFfT05MWSwKKyAgICAgS2FuamlfRW5nbGlzaCAgICAgICAgICA9PiAkSkFWQV9PTkxZLAorICAgICBLYW5qaV9PblJvbWFqaSAgICAgICAgID0+ICRKQVZBX09OTFksCisgICAgIAorICAgICBMYXRpbl9OdW1lcmljUGlueWluICAgID0+ICJMYXRuX05QaW55biIsCisgICAgIFRvbmVfRGlnaXQgICAgICAgICAgICAgPT4gIlRvbmVfRGlnaXQiLAorICAgICBIYW5fU3BhY2VkaGFuICAgICAgICAgID0+ICJIYW5pX1NwSGFuIiwKKyAgICAgKTsKKworbXkgKCR4LCR4LCR4LCR4LCR4LCRUSElTX1lFQVIpID0gbG9jYWx0aW1lKCk7CiskVEhJU19ZRUFSICs9IDE5MDA7CisKKyMgSGVhZGVyIGJsb2NrcyBvZiB0ZXh0IHdyaXR0ZW4gYXQgc3RhcnQgb2YgSUNVIG91dHB1dCBmaWxlcworbXkgJEhFQURFUjEgPSA8PEVORDsKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIENvcHlyaWdodCAoYykgMTk5OS0kVEhJU19ZRUFSLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisvLyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRISVMgSVMgQSBNQUNISU5FLUdFTkVSQVRFRCBGSUxFCitFTkQKK215ICRIRUFERVIyID0gPDxFTkQ7CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFTkQKKworbXkgJFRPT0wgPSAkMDsKKworIyBDb252ZXJ0IHRoZSBpbmRleCBmaXJzdDsgdGhpcyB0ZWxscyB1cyB3aGljaCBydWxlIGZpbGVzIGFyZSBpbiB1c2UuCitjb252ZXJ0SW5kZXgoKTsKKworIyBwcmludCAiSW4gdXNlOlxuIiwgam9pbigiXG4iLCBzb3J0IGtleXMoJVVTRURfRklMRVMpKSwgIlxuIjsKKworIyBJdGVyYXRlIG92ZXIgYWxsIEphdmEgUkJUIHJ1bGUgZmlsZXMKK2ZvcmVhY2ggKDwkRElSL1RyYW5zbGl0ZXJhdG9yXyoudHh0PikgeworICAgIG5leHQgaWYgKC9+JC8pOyAjIElnbm9yZSBlbWFjcyBiYWNrdXBzCisgICAgbmV4dCBpZiAoL19pbmRleFwudHh0JC8pOyAjIFRoZSBpbmRleCBmaWxlIHdhcyBwcm9jZXNzZWQgYWJvdmUKKyAgICAjIFNlbGVjdCBlaXRoZXIgdGhlIGNvbW1hbmQtbGluZSBhcmcsIGlmIHRoZXJlIHdhcyBvbmUsIG9yCisgICAgIyBhbnkgZmlsZXMgbWVudGlvbmVkIGluIHRoZSBpbmRleC4KKyAgICBteSAkbGVhZiA9ICRfOworICAgICRsZWFmID1+IHN8LitbL1xcXXx8OworICAgIGlmICgoJElEICYmICRsZWFmID1+IC8kSUQvKSB8fCBleGlzdHMgJFVTRURfRklMRVN7JGxlYWZ9KSB7CisgICAgICAgIG15ICgkb3V0LCAkaWQpID0gY29udmVydEZpbGVOYW1lKCRfKTsKKyAgICAgICAgaWYgKCRvdXQpIHsKKyAgICAgICAgICAgIGlmICgkb3V0IGVxICRKQVZBX09OTFkpIHsKKyAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIioqKiAkaWQgc2tpcHBlZDogSmF2YSBvbmx5ICoqKlxuIjsKKyAgICAgICAgICAgICAgICBuZXh0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlsZSgkaWQsICRfLCAkb3V0KTsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKCEkSUQpIHsKKyAgICAgICAgcHJpbnQgIioqKiAkbGVhZiBza2lwcGVkOiBub3QgaW4gdXNlICoqKlxuIjsKKyAgICB9Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29udmVydCBhIEphdmEgZmlsZSBuYW1lIHRvIEMKKyMgUGFyYW06IEphdmEgZmlsZSBuYW1lIG9mIHRoZSBmb3JtIG18VHJhbnNsaXRlcmF0b3JfKC4rKVwudXRmOFwudHh0JHwKKyMgUmV0dXJuOiBBIEMgZmlsZSBuYW1lIChlLmcuLCBsZGV2YW4udHh0KSBvciB0aGUgZW1wdHkgc3RyaW5nLAorIyAgaWYgdGhlcmUgaXMgbm8gbWFwcGluZywgb3IgJEpBVkFfT05MWSBpZiB0aGUgZ2l2ZW4gZmlsZSBpc24ndAorIyAgaW50ZW5kZWQgdG8gYmUgaW5jb3Jwb3JhdGVkIGludG8gQy4KK3N1YiBjb252ZXJ0RmlsZU5hbWUgeworICAgIGxvY2FsICRfID0gc2hpZnQ7CisgICAgbXkgJGlkOworICAgIGlmIChtfFRyYW5zbGl0ZXJhdG9yXyguKylcLnV0ZjhcLnR4dCR8IHx8CisgICAgICAgIG18VHJhbnNsaXRlcmF0b3JfKC4rKVwudHh0JHwpIHsKKyAgICAgICAgJGlkID0gJDE7CisgICAgfSBlbHNlIHsgZGllICJDYW4ndCBwYXJzZSBKYXZhIGZpbGUgbmFtZSAkXyI7IH0KKyAgICBpZiAoIWV4aXN0cyAkTkFNRV9NQVB7JGlkfSkgeworICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SOiAkaWQgbm90IGluIG1hcDsgcGxlYXNlIHVwZGF0ZSAkMFxuIjsKKyAgICAgICAgcmV0dXJuICcnOworICAgIH0KKyAgICBteSAkb3V0ID0gJE5BTUVfTUFQeyRpZH07CisgICAgaWYgKCRvdXQgZXEgJycpIHsKKyAgICAgICAgJG91dCA9ICRpZDsKKyAgICB9CisgICAgaWYgKCRvdXQgbmUgJEpBVkFfT05MWSkgeworICAgICAgICAkb3V0ID0gJ3RfJyAuICRvdXQ7CisgICAgfQorICAgIGlmIChsZW5ndGgoJG91dCkgPiAkTUFYX0lDVTRDX0ZJTEVOQU1FX0xFTikgeworICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SOiBJQ1U0QyBmaWxlIG5hbWUgXCIkb3V0XCIgdG9vIGxvbmc7IHBsZWFzZSB1cGRhdGUgJDBcbiI7CisgICAgICAgIHJldHVybiAnJzsKKyAgICB9CisgICAgcmV0dXJuICgkb3V0LCAkaWQpOworfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvbnZlcnQgdGhlIGluZGV4IGZpbGUgZnJvbSBKYXZhIHRvIEMgZm9ybWF0CitzdWIgY29udmVydEluZGV4IHsKKyAgICBteSAkSkFWQV9JTkRFWCA9ICJUcmFuc2xpdGVyYXRvcl9pbmRleC50eHQiOworICAgIG15ICRDX0lOREVYID0gInRyYW5zbGl0X2luZGV4LnR4dCI7CisgICAgb3BlbihKQVZBX0lOREVYLCAiJERJUi8kSkFWQV9JTkRFWCIpIG9yIGRpZTsKKyAgICBvcGVuKENfSU5ERVgsICI+JE9VVERJUi8kQ19JTkRFWCIpIG9yIGRpZTsKKyAgICAKKyAgICBoZWFkZXIoXCpDX0lOREVYLCAkSkFWQV9JTkRFWCk7CisgICAgCisgICAgcHJpbnQgQ19JTkRFWCA8PEVORDsKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIE4uQi46IFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgbWVjaGFuaWNhbGx5IGZyb20gdGhlCisvLyBjb3JyZXNwb25kaW5nIElDVTRKIGZpbGUsIHdoaWNoIGlzIHRoZSBtYXN0ZXIgZmlsZSB0aGF0IHJlY2VpdmVzCisvLyBwcmltYXJ5IHVwZGF0ZXMuICBUaGUgY29sb24tZGVsaW1pdGVkIGZpZWxkcyBoYXZlIGJlZW4gc3BsaXQgaW50bworLy8gc2VwYXJhdGUgc3RyaW5ncy4gIEZvciAnZmlsZScgYW5kICdpbnRlcm5hbCcgbGluZXMsIHRoZSBlbmNvZGluZworLy8gZmllbGQgaGFzIGJlZW4gZGVsZXRlZCwgc2luY2UgdGhlIGVuY29kaW5nIGlzIHByb2Nlc3NlZCBhdCBidWlsZAorLy8gdGltZSBpbiBJQ1U0Qy4gIENlcnRhaW4gbGFyZ2UgcnVsZSBzZXRzIG5vdCBpbnRlbmRlZCBmb3IgZ2VuZXJhbAorLy8gdXNlIGhhdmUgYmVlbiBjb21tZW50ZWQgb3V0IHdpdGggdGhlIG5vdGF0aW9uICJKYXZhIG9ubHkiLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCit0cmFuc2xpdF9pbmRleCB7CisgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9ySURzIHsKK0VORAorICAgICAgICAKKyAgICB3aGlsZSAoPEpBVkFfSU5ERVg+KSB7CisgICAgICAgICMgaWdub3JlIENWUyBrZXl3b3JkIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgbmV4dCBpZiAvXCQoU291cmNlfFJldmlzaW9ufERhdGUpLzsKKworICAgICAgICAjIHdlIGhhdmUgcHJpbnRlZCBvdXQgdGhlIGNvcHlyaWdodCBpbmZvIC4uLiBpZ25vcmUgb25lIGluIEphdmEgdmVyc2lvbgorICAgICAgICBuZXh0IGlmIC9Db3B5cmlnaHQvIDsKKyAgICAgICAgbmV4dCBpZiAvQ29ycG9yYXRpb24vOworCisgICAgICAgICMgQ29tbWVudHM7IGNoYW5nZSAjIHRvIC8vCisgICAgICAgIGlmIChzfF4oXHMqKVwjfCQxLy98KSB7CisgICAgICAgICAgICBwcmludCBDX0lOREVYOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICAjIEJsYW5rIGxpbmVzCisgICAgICAgIGlmICghL1xTLykgeworICAgICAgICAgICAgcHJpbnQgQ19JTkRFWDsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgIyBDb250ZW50IGxpbmVzCisgICAgICAgIGNob21wOworICAgICAgICBteSAkcHJlZml4ID0gJyc7CisgICAgICAgICNyZXBsYWNlIFxwIHdpdGggXFxwCisgICAgICAgICRfPX4gcy9cXHAvXFxcXHAvZzsKKyAgICAgICAgbXkgQGEgPSBzcGxpdCgnOicsICRfKTsKKyAgICAgICAgaWYgKCRhWzFdIGVxICdmaWxlJyB8fCAkYVsxXSBlcSAnaW50ZXJuYWwnKSB7CisgICAgICAgICAgICAjIENvbnZlcnQgdGhlIGZpbGUgbmFtZQorICAgICAgICAgICAgbXkgJGlkOworICAgICAgICAgICAgIyBSZWNvcmQgZmlsZSBuYW1lcyBpbiB1c2UKKyAgICAgICAgICAgICRVU0VEX0ZJTEVTeyRhWzJdfSA9IDE7CisgICAgICAgICAgICAoJGFbMl0sICRpZCkgPSBjb252ZXJ0RmlsZU5hbWUoJGFbMl0pOworICAgICAgICAgICAgaWYgKCRhWzJdIGVxICRKQVZBX09OTFkpIHsKKyAgICAgICAgICAgICAgICAkcHJlZml4ID0gJy8vIEphdmEgb25seTogJzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgIyBEZWxldGUgdGhlIGVuY29kaW5nIGZpZWxkCisgICAgICAgICAgICBzcGxpY2UoQGEsIDMsIDEpOworICAgICAgICB9IGVsc2lmICgkYVsxXSBlcSAnYWxpYXMnKSB7CisgICAgICAgICAgICAjIFBhZCBvdXQgd2l0aCBleHRyYSBibGFuayBmaWVsZHMgdG8gbWFrZSB0aGUKKyAgICAgICAgICAgICMgMi1kIGFycmF5IHNxdWFyZQorICAgICAgICAgICAgcHVzaCBAYSwgIiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkaWUgIkNhbid0IHBhcnNlICRfIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCBDX0lOREVYCisgICAgICAgICAgICAkcHJlZml4LCAieyAiLAorICAgICAgICAgICAgam9pbigiLCAiLCBtYXAoIlwiJF9cIiIsIEBhKSksCisgICAgICAgICAgICAiIH0sXG4iOworICAgIH0KKworICAgIHByaW50IENfSU5ERVggPDxFTkQ7CisgIH0KK30KK0VORAorCisgICAgY2xvc2UoQ19JTkRFWCk7CisgICAgY2xvc2UoSkFWQV9JTkRFWCk7CisgICAgcHJpbnQgU1RERVJSICIkSkFWQV9JTkRFWCAtPiAkQ19JTkRFWFxuIjsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBPdXRwdXQgYSBoZWFkZXIKKyMgUGFyYW06IEZpbGVoYW5kbGUKK3N1YiBoZWFkZXIgeworICAgIG15ICRvdXQgPSBzaGlmdDsKKyAgICBteSAkaW4gPSBzaGlmdDsKKyAgICBwcmludCAkb3V0ICRIRUFERVIxOworICAgIHByaW50ICRvdXQgIi8vIFRvb2w6ICRUT09MXG4vLyBTb3VyY2U6ICRpblxuIjsKKyAgICBwcmludCAkb3V0ICIvLyBEYXRlOiAiLCBzY2FsYXIgbG9jYWx0aW1lLCAiXG4iOworICAgIHByaW50ICRvdXQgJEhFQURFUjI7CisgICAgcHJpbnQgJG91dCAiXG4iOworfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFByb2Nlc3Mgb25lIGZpbGUKKyMgUGFyYW06IElELCBlLmcuIEZ1bGx3aWR0aC1IYWxmd2lkdGgKKyMgUGFyYW06IEphdmEgaW5wdXQgZmlsZSBuYW1lLCBlLmcuCisjICBmOi9pY3U0ai9zcmMvY29tL2libS90ZXh0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9GdWxsd2lkdGhfSGFsZndpZHRoLnV0ZjgudHh0CisjIFBhcmFtOiBJQ1Ugb3V0cHV0IGZpbGUgbmFtZSwgZS5nLiBmdWxsaGFsZgorc3ViIGZpbGUgeworICAgIG15ICRpZCA9IHNoaWZ0OworICAgIG15ICRJTiA9IHNoaWZ0OworICAgIG15ICRvdXQgPSBzaGlmdDsKKworICAgIG15ICRPVVQgPSAiJG91dC50eHQiOworCisgICAgIyBTaG93IGlucHV0IHNpemUuIFNob3cgb3V0cHV0IHNpemUgbGF0ZXIgLS0gdXNlZnVsIGZvciBxdWljayBzYW5pdHkgY2hlY2suCisgICAgcHJpbnQgIiRpZCAoIiwgLXMgJElOLCAiKSAtPiAkT1VUICgiOworCisgICAgIyBPcGVuIGZpbGUsIHdyaXRlIFVURjggbWFya2VyLCBjbG9zZSBpdCwgYW5kIHJlb3BlbiBpbiB0ZXh0IG1vZGUKKyAgICBvcGVuKE9VVCwgIj4kT1VURElSLyRPVVQiKSBvciBkaWU7CisgICAgYmlubW9kZSBPVVQ7ICAgICAgICAjIE11c3QgZG8gdGhpcyBzbyB3ZSBjYW4gd3JpdGUgb3VyIFVURjggbWFya2VyCisgICAgcHJpbnQgT1VUIHBhY2soIkMzIiwgMHhFRiwgMHhCQiwgMHhCRik7ICMgV3JpdGUgVVRGOCBtYXJrZXIKKyAgICBjbG9zZShPVVQpOworCisgICAgb3BlbihPVVQsICI+PiRPVVRESVIvJE9VVCIpIG9yIGRpZTsKKyAgICBwcmludCBPVVQgIiAvLyAtKi0gQ29kaW5nOiB1dGYtODsgLSotXG4iOworCisgICAgaGVhZGVyKFwqT1VULCAkSU4pOworICAgIHByaW50IE9VVCAiLy8gJGlkXG4iOworICAgIHByaW50IE9VVCAiXG4iOworICAgIHByaW50IE9VVCAiJG91dCB7XG4iOworICAgIHByaW50IE9VVCAiICBSdWxlIHtcbiI7CisKKyAgICBvcGVuKElOLCAkSU4pIG9yIGRpZTsKKyAgICBiaW5tb2RlIElOOyAgICAgICAgICAgICAgICAgIyBJTiBpcyBhIFVURjggZmlsZQorCisgICAgbXkgJGZpcnN0ID0gMTsKKyAgICBteSAkQk9NID0gcGFjaygiQzMiLCAyMzksIDE4NywgMTkxKTsgIyBhIFVURjggYnl0ZSBvcmRlciBtYXJrCisKKyAgICAjIFByb2Nlc3MgZWFjaCBsaW5lIGJ5IGNoYW5naW5nICMgY29tbWVudHMgdG8gLy8gY29tbWVudHMKKyAgICAjIGFuZCB0YWtpbmcgb3RoZXIgdGV4dCBhbmQgZW5jbG9zaW5nIGl0IGluIGRvdWJsZSBxdW90ZXMKKyAgICB3aGlsZSAoPElOPikgeworICAgICAgICBteSAkcmF3ID0gJF87CisgICAgICAgICMgaWdub3JlIENWUyBrZXl3b3JkIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgbmV4dCBpZiAvXCQoU291cmNlfFJldmlzaW9ufERhdGUpLzsKKworICAgICAgICAjIHdlIGhhdmUgcHJpbnRlZCBvdXQgdGhlIGNvcHlyaWdodCBpbmZvIC4uLiBpZ25vcmUgb25lIGluIEphdmEgdmVyc2lvbgorICAgICAgICBuZXh0IGlmIC9Db3B5cmlnaHQvIDsKKyAgICAgICAgbmV4dCBpZiAvQ29ycG9yYXRpb24vOworCisgICAgICAgICMgTG9vayBmb3IgYW5kIGRlbGV0ZSBCT00KKyAgICAgICAgaWYgKCRmaXJzdCkgeworICAgICAgICAgICAgcy9eJEJPTS8vOworICAgICAgICAgICAgJGZpcnN0ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgICMgQ2xlYW4gdGhlIGVvbCBqdW5rIHVwCisgICAgICAgIHMvW1x4MERceDBBXSskLy87CisKKyAgICAgICAgIyBJZiB0aGVyZSBpcyBhIHRyYWlsaW5nIGJhY2tzbGFzaCwgdGhlbiBkZWxldGUgaXQgLS0gd2UgZG9uJ3QKKyAgICAgICAgIyBuZWVkIGxpbmUgY29udGludWF0aW9uIGluIEMsIHNpbmNlIGFkamFjZW50IHN0cmluZ3MgYXJlCisgICAgICAgICMgY29uY2F0ZW5hdGVkLiAgQ291bnQgdHJhaWxpbmcgYmFja3NsYXNoZXM7IGlmIHRoZXkgYXJlIG9kZCwKKyAgICAgICAgIyBvbmUgaXMgdHJhaWxpbmcuCisgICAgICAgIGlmIChtfChcXCspJHwpIHsKKyAgICAgICAgICAgIGlmICgobGVuZ3RoKCQxKSAlIDIpID09IDEpIHsKKyAgICAgICAgICAgICAgICBzfFxcJHx8OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgIyBUcmFuc2Zvcm0gZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgICAgIGhpZGVFc2NhcGVzKCk7CisKKyAgICAgICAgaWYgKC9eKFxzKikoXCMuKikkLykgeworICAgICAgICAgICAgIyBDb21tZW50LW9ubHkgbGluZQorICAgICAgICAgICAgbXkgKCR3aGl0ZSwgJGNtdCkgPSAoJDEsICQyKTsKKyAgICAgICAgICAgICRjbXQgPX4gc3xcI3wvL3w7CisgICAgICAgICAgICAkXyA9ICR3aGl0ZSAuICRjbXQ7CisKKyAgICAgICAgfSBlbHNpZiAoIS9cUy8pIHsKKyAgICAgICAgICAgICMgQmxhbmsgbGluZSAtLSBsZWF2ZSBhcy1pcworCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAjIFJlbW92ZSBzaW5nbGUtcXVvdGVkIG1hdHRlciAKKyAgICAgICAgICAgIG15IEBxdW90ZXM7CisgICAgICAgICAgICBteSAkbnF1b3RlcyA9IDA7CisgICAgICAgICAgICBteSAkeCA9ICRfOworICAgICAgICAgICAgd2hpbGUgKHMvXihbXlwnXSopKFwnW15cJ10qXCcpLyQxPDx4JG5xdW90ZXM+Pi8pIHsKKyAgICAgICAgICAgICAgICBwdXNoIEBxdW90ZXMsICQyOworICAgICAgICAgICAgICAgICsrJG5xdW90ZXM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICMgRXh0cmFjdCBjb21tZW50CisgICAgICAgICAgICBteSAkY210ID0gJyc7CisgICAgICAgICAgICBpZiAoc3xcIyguKil8fCkgeworICAgICAgICAgICAgICAgICRjbXQgPSAnLy8nIC4gJDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICMgQWRkIHF1b3RlcworICAgICAgICAgICAgc3xeKFxzKikoXFMuKj8pKFxzKikkfCQxXCIkMlwiJDN8OworCisgICAgICAgICAgICAjIFJlc3RvcmUgc2luZ2xlLXF1b3RlZCBtYXR0ZXIKKyAgICAgICAgICAgIGZvciAobXkgJGk9MDsgJGk8JG5xdW90ZXM7ICsrJGkpIHsKKyAgICAgICAgICAgICAgICBzfDw8eCRpPj58JHF1b3Rlc1skaV18OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjIFJlc3RvcmUgY29tbWVudAorICAgICAgICAgICAgJF8gLj0gJGNtdDsKKyAgICAgICAgfQorCisgICAgICAgICMgUmVzdG9yZSBlc2NhcGVkIGNoYXJhY3RlcnMKKyAgICAgICAgcmVzdG9yZUVzY2FwZXMoKTsKKworICAgICAgICBwcmludCBPVVQgJF8sICJcbiI7CisgICAgfQorCisgICAgIyBGaW5pc2ggdXAKKyAgICBjbG9zZShJTik7CisgICAgcHJpbnQgT1VUICIgIH1cbiI7CisgICAgcHJpbnQgT1VUICJ9XG4iOworICAgIGNsb3NlKE9VVCk7CisKKyAgICAjIFdyaXRlIG91dHB1dCBmaWxlIHNpemUgZm9yIHNhbml0eSBjaGVjaworICAgIHByaW50IC1zICIkT1VURElSLyRPVVQiLCAiKVxuIjsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworc3ViIGhpZGVFc2NhcGVzIHsKKyAgICAjIFRyYW5zZm9ybSBlc2NhcGVkIGNoYXJhY3RlcnMKKyAgICBzfFxcXFx8PDxicz4+fGc7ICMgRE8gVEhJUyBGSVJTVCBUcmFuc2Zvcm0gYmFja3NsYXNoZXMKKyAgICBzfFxcdShbYS16QS1aMC05XXs0fSl8PDx1JDE+PnxnOyAjIFRyYW5zZm9ybSBVbmljb2RlIGVzY2FwZXMKKyAgICBzfFxcXCJ8PDxkcT4+fGc7ICMgVHJhbnNmb3JtIGJhY2tzbGFzaCBkb3VibGUgcXVvdGUKKyAgICBzfFxcXCd8PDxzcT4+fGc7ICMgVHJhbnNmb3JtIGJhY2tzbGFzaCBzaW5nbGUgcXVvdGUKKyAgICBzfFxcXCN8PDxsYj4+fGc7ICMgVHJhbnNmb3JtIGJhY2tzbGFzaCBwb3VuZAorICAgIHN8XFwoLil8PDxxJDE+PnxnOyAjIFRyYW5zZm9ybSBiYWNrc2xhc2ggZXNjYXBlcworfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitzdWIgcmVzdG9yZUVzY2FwZXMgeworICAgICMgUmVzdG9yZSBlc2NhcGVkIGNoYXJhY3RlcnMKKyAgICBzfDw8YnM+PnxcXFxcfGc7CisgICAgc3w8PGRxPj58XFxcXFxcXCJ8ZzsKKyAgICBzfDw8c3E+PnxcXFxcXFxcJ3xnOworICAgIHN8PDxsYj4+fFxcXFxcXFwjfGc7CisgICAgc3w8PHEoLik+PnxcXFxcXFwkMXxnOworICAgIHN8PDx1MDAwMD4+fFxcXFx1MDAwMHxnOyAjIERvdWJsZSBlc2NhcGUgVSswMDAwCisgICAgc3w8PHUoLi4uLik+PnxcXHUkMXxnOworfQorCitfX0VORF9fCis6ZW5kb2ZwZXJsCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmJhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9nZW5JbmRleEZpbHRlcnMuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4MTEzMTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmJhdApAQCAtMCwwICsxLDEyMSBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCitAcmVtID0gJy0tKi1QZXJsLSotLQorQGVjaG8gb2ZmCitpZiAiJU9TJSIgPT0gIldpbmRvd3NfTlQiIGdvdG8gV2luTlQKK3BlcmwgLVcgLXggLVMgIiUwIiAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQorZ290byBlbmRvZnBlcmwKKzpXaW5OVAorcGVybCAtVyAteCAtUyAiJTAiICUqCitpZiBOT1QgIiVDT01TUEVDJSIgPT0gIiVTeXN0ZW1Sb290JVxzeXN0ZW0zMlxjbWQuZXhlIiBnb3RvIGVuZG9mcGVybAoraWYgJWVycm9ybGV2ZWwlID09IDkwMDkgZWNobyBZb3UgZG8gbm90IGhhdmUgUGVybCBpbiB5b3VyIFBBVEguCitnb3RvIGVuZG9mcGVybAorQHJlbSAnOworIyFwZXJsCisjbGluZSAxNAorCisjIFRoaXMgcGVybCBzY3JpcHQgdXBkYXRlcyB0aGUgZmlsdGVycyBpbiB0aGUgdHJhbnNsaXRlcmF0b3IgaW5kZXggZmlsZS4KKyMgSXQgZG9lcyBzbyBpbiBhIGR1bWIgd2F5OgorIworIyAgTGF0aW4tWCAgIE5GRCBsb3dlcgorIyAgWC1MYXRpbiAgIE5GRAorIworIyBGb3IgdHJhbnNsaXRlcmF0b3JzIHVzaW5nIE5GS0QsIG9yIG5vdCB1c2luZyBMb3dlciBpbiB0aGlzIHdheSwgeW91CisjIHdpbGwgaGF2ZSB0byBoYW5kLWVkaXQgdGhlIGluZGV4IGZpbGUuCisjCisjIFRoaXMgc2NyaXB0IHdyaXRlcyBhIG5ldyBpbmRleCBmaWxlLiAgVGhlIG5ldyBmaWxlIGhhcyB0byB0aGVuIGJlCisjIGhhbmQtZWRpdGVkIGFuZCBjaGVja2VkIGJlZm9yZSB1c2U7IGl0IGNvbnRhaW5zIGNvbW1lbnRzIGluZGljYXRpbmcKKyMgb2xkIGxpbmVzIHRoYXQgd2VyZSByZXBsYWNlZC4KKyMKKyMgQWxhbiBMaXUgMTEvMjkvMDEKKwordXNlIEdldG9wdDo6TG9uZzsKKworbXkgJERJUiA9ICIuLi8uLi90ZXh0L3Jlc291cmNlcyI7CitteSAkQ0xBU1NFUyA9ICIuLi8uLi8uLi8uLi8uLi9jbGFzc2VzIjsKKworI0dldE9wdGlvbnMoJ2Rpcj1zJyA9PiBcJERJUiwKKyMgICAgICAgICAgICdpZD1zJyA9PiBcJElELAorIyAgICAgICAgICAgJzw+JyA9PiBcJnVzYWdlKSB8fCBkaWU7CisKKyN1c2FnZSgpIGlmIChAQVJHVik7CisKKyMkSUQgPX4gcy8tL18vOworaWYgKCEgLWQgJERJUikgeworICAgIHByaW50IFNUREVSUiAiJERJUiBpcyBub3QgYSBkaXJlY3RvcnlcbiI7CisgICAgdXNhZ2UoKTsKK30KKworI3N1YiB1c2FnZSB7CisjICAgIG15ICRtZSA9ICQwOworIyAgICAkbWUgPX4gc3wuK1svXFxdfHw7CisjICAgIHByaW50ICJVc2FnZTogJG1lIFstZGlyIDxkaXI+XSBbLWlkIDxpZD5dXG4iOworIyAgICBwcmludCAiIC0tZGlyIDxkaXI+IFNwZWNpZnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZVxuIjsKKyMgICAgcHJpbnQgIiAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvcl8qLnR4dCBmaWxlc1xuIjsKKyMgICAgcHJpbnQgIiAtLWlkIDxpZD4gICBTcGVjaWZ5IGEgc2luZ2xlIElEIHRvIHRyYW5zZm9ybSwgZS5nLlxuIjsKKyMgICAgcHJpbnQgIiAgICAgICAgICAgICBGdWxsd2lkdGgtSGFsZndpZHRoXG4iOworIyAgICBkaWU7CisjfQorCitjb252ZXJ0SW5kZXgoKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb252ZXJ0IHRoZSBpbmRleCBmaWxlIGZyb20gSmF2YSB0byBDIGZvcm1hdAorIyBBc3N1bWUgbGluZXMgYXJlIG9mIHRoZSBmb3JtOgorIyAgIDxJRD46YWxpYXM6PEZJTFRFUj47PFJFTUFJTkRFUj4KKyMgPFJFTUFJTkRFUj4gY2FuIGJlCisjICAgTG93ZXI7TkZYOy4uLgorIyAgIE5GWDtMb3dlcjsuLi4KKyMgICBORlg7Li4uCitzdWIgY29udmVydEluZGV4IHsKKyAgICAkSU4gPSAiVHJhbnNsaXRlcmF0b3JfaW5kZXgudHh0IjsKKyAgICAkT1VUID0gIiRJTi5uZXciOworICAgIG9wZW4oSU4sICIkRElSLyRJTiIpIG9yIGRpZTsKKyAgICBvcGVuKE9VVCwgIj4kRElSLyRPVVQiKSBvciBkaWU7CisgICAgCisgICAgd2hpbGUgKDxJTj4pIHsKKyAgICAgICAgIyBMb29rIGZvciBsaW5lcyB0aGF0IGFyZSBhbGlhc2VzIHdpdGggTkYqCisgICAgICAgIGlmICgvXihbXjpdKyk6YWxpYXM6KFxbLis/KTtccyooKE5GW15cc10qPylccyo7LispJC9pKSB7CisgICAgICAgICAgICBteSAkaWQgPSAkMTsKKyAgICAgICAgICAgIG15ICRvbGRzZXQgPSAkMjsKKyAgICAgICAgICAgIG15ICRyZW1haW5kZXIgPSAkMzsKKyAgICAgICAgICAgIG15ICRORlhEID0gJDQ7CisgICAgICAgICAgICBteSAkbG93ZXIgPSAnJzsKKyAgICAgICAgICAgICMgQ2hlY2sgZm9yIExvd2VyCisgICAgICAgICAgICAjIElmIGl0IGNvbWVzIGJlZm9yZSBORiogdGhlbiBhZGp1c3QgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgIGlmICgvXihbXjpdKyk6YWxpYXM6KFxbLis/KTtccyooTG93ZXJccyo7LispJC9pKSB7CisgICAgICAgICAgICAgICAgJGxvd2VyID0gJ2xvd2VyJzsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoKCQyKSA8IGxlbmd0aCgkb2xkc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAkb2xkc2V0ID0gJDI7CisgICAgICAgICAgICAgICAgICAgICRyZW1haW5kZXIgPSAkMzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludCBTVERFUlIgIiRpZCAkTkZYRCAkbG93ZXJcbiI7CisgICAgICAgICAgICBteSAkc2V0ID0gZ2V0U291cmNlU2V0KCRpZCwgJE5GWEQsICRsb3dlcik7CisgICAgICAgICAgICAkXyA9ICIkaWQ6YWxpYXM6JHNldDskcmVtYWluZGVyXG4iOworICAgICAgICB9CisgICAgICAgIHByaW50IE9VVDsKKyAgICB9CisKKyAgICBjbG9zZShJTik7CisgICAgY2xvc2UoT1VUKTsKKyAgICBwcmludCBTVERFUlIgIldyb3RlICRESVIvJE9VVFxuIjsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBHZXQgdGhlIHNvdXJjZSBzZXQgKGNhbGwgb3V0IHRvIEphdmEpLCBvcHRpb25hbGx5IHdpdGggYSBjbG9zdXJlLgorc3ViIGdldFNvdXJjZVNldCB7CisgICAgbXkgJElEID0gc2hpZnQ7CisgICAgbXkgJE5GWEQgPSBzaGlmdDsKKyAgICBteSAkbG93ZXIgPSBzaGlmdDsKKyAgICBteSAkc2V0ID0gYGphdmEgLWNsYXNzcGF0aCAkQ0xBU1NFUyBjb20uaWJtLnRvb2xzLnRyYW5zbGl0LmdlbkluZGV4RmlsdGVycyAkSUQgJE5GWEQgJGxvd2VyYDsKKyAgICBjaG9tcCgkc2V0KTsKKyAgICAkc2V0OworfQorCitfX0VORF9fCis6ZW5kb2ZwZXJsCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2E5NmQzZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9nZW5JbmRleEZpbHRlcnMuamF2YQpAQCAtMCwwICsxLDY5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMS0yMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAxMS8yOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQWRqdW5jdCBjbGFzcyB0byBnZXRJbmRleEZpbHRlcnMuYmF0LiAgSnVzdCBnZW5lcmF0ZXMgc291cmNlIHNldHMKKyAqIGFuZCB0aGVpciBjbG9zdXJlcy4KKyAqCisgKiBVc2FnZTogSUQgWyBORkR8TkZLRCBbbG93ZXJdIF0KKyAqCisgKiAgIGphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0LmdlbkluZGV4RmlsdGVycworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXRpbi1HcmVlayBORkQgbG93ZXIKKyAqCisgKiBUaGUgJ05GRCd8J05GS0QnIGFuZCAnbG93ZXInIGFyZ3MgYXJlIG9wdGlvbmFsLCBidXQgJ2xvd2VyJyBjYW4KKyAqIG9ubHkgYmUgc3BlY2lmaWVkIGlmICdORkQnIG9yICdORktEJyBpcy4KKyAqCisgKiBETyBOT1QgQ0hBTkdFIE9VVFBVVCBGT1JNQVQuICBUaGlzIHRvb2wncyBvdXRwdXQgaXMgcmVhZCBieSBhIFBlcmwKKyAqIHNjcmlwdC4KKyAqLworcHVibGljIGNsYXNzIGdlbkluZGV4RmlsdGVycyB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBOb3JtYWxpemVyLk1vZGUgbSA9IE5vcm1hbGl6ZXIuTk9ORTsKKyAgICAgICAgYm9vbGVhbiBsb3dlckZpcnN0ID0gZmFsc2U7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAyKSB7CisgICAgICAgICAgICBpZiAoYXJnc1sxXS5lcXVhbHNJZ25vcmVDYXNlKCJORkQiKSkgeworICAgICAgICAgICAgICAgIG0gPSBOb3JtYWxpemVyLk5GRDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHNJZ25vcmVDYXNlKCJORktEIikpIHsKKyAgICAgICAgICAgICAgICBtID0gTm9ybWFsaXplci5ORktEOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAzKSB7CisgICAgICAgICAgICBpZiAoYXJnc1syXS5lcXVhbHNJZ25vcmVDYXNlKCJsb3dlciIpKSB7CisgICAgICAgICAgICAgICAgbG93ZXJGaXJzdCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMykgeworICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgfQorICAgICAgICBzaG93U291cmNlU2V0KGFyZ3NbMF0sIG0sIGxvd2VyRmlyc3QpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNob3dTb3VyY2VTZXQoU3RyaW5nIElELCBOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICBVbmljb2RlU2V0IHNvdXJjZVNldCA9IHQuZ2V0U291cmNlU2V0KCk7CisgICAgICAgIGlmIChtICE9IE5vcm1hbGl6ZXIuTk9ORSB8fCBsb3dlckZpcnN0KSB7CisgICAgICAgICAgICBVbmljb2RlU2V0Q2xvc3VyZS5jbG9zZShzb3VyY2VTZXQsIG0sIGxvd2VyRmlyc3QpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2VTZXQudG9QYXR0ZXJuKHRydWUpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCB1c2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogSUQgWyBORkR8TkZLRCBbbG93ZXJdIF0iKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLmJhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpYy5iYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTcyOTNiMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpYy5iYXQKQEAgLTAsMCArMSwyMSBAQAorUkVNIC8qKgorUkVNICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK1JFTSAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCitSRU0gKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorUkVNICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK1JFTSAqLworCitAZWNobyBvZmYKK1JFTSBUaGlzIHNjcmlwdCBpcyBhIFdpbmRvd3MgbGF1bmNoZXIgZm9yIHRoZSBpbmRpYy5wbCBzY3JpcHQuICBGb3IgdGhpcworUkVNIHRvIHdvcmssIHRoZSBwZXJsIGV4ZWN1dGFibGUgbXVzdCBiZSBvbiB0aGUgcGF0aC4gIFdlIHJlY29tbWVuZAorUkVNIHRoZSBBY3RpdmVTdGF0ZSBidWlsZDsgc2VlIGh0dHA6Ly93d3cuYWN0aXZlc3RhdGUuY29tLiAgU2VlIHRoZQorUkVNIHR6LnBsIHNjcmlwdCBpdHNlbGYgZm9yIG1vcmUgZG9jdW1lbnRhdGlvbi4KKworaWYgIiVPUyUiID09ICJXaW5kb3dzX05UIiBnb3RvIFdpbk5UCitwZXJsIC13IC14IGluZGljLnBsICUxICUyICUzICU0ICU1ICU2ICU3ICU4ICU5Citnb3RvIGVuZAorOldpbk5UCitwZXJsIC13IC14IGluZGljLnBsICUqCitpZiBOT1QgIiVDT01TUEVDJSIgPT0gIiVTeXN0ZW1Sb290JVxzeXN0ZW0zMlxjbWQuZXhlIiBnb3RvIGVuZAoraWYgJWVycm9ybGV2ZWwlID09IDkwMDkgZWNobyBZb3UgZG8gbm90IGhhdmUgUGVybCBpbiB5b3VyIFBBVEguCis6ZW5kCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMucGwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQ2MTRiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpYy5wbApAQCAtMCwwICsxLDY2MiBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisKKyMhcGVybAorCisjIFVzYWdlIC0gJDAgPHJlbWFwIGZpbGU+CisjICBlLmcuIC0gaW5kaWMgaW5kaWMudHh0CisjIFRoZSBpbnB1dCBmaWxlIHNob3VsZCBiZSBhIHN1YnNldCBvZiB0aGUgVW5pY29kZSBkYXRhIGZpbGUgY29udGFpbmluZworIyB0aGUgYmxvY2tzIG9mIGludGVyZXN0LgorIworIyBUaGUgcmVtYXAgZmlsZSBzaG91bGQgaGF2ZSBsaW5lcyBvZiB0aGUgZm9ybQorIyAiXHUwRDAxPlx1MEQwMjsiCisjIGluY2x1ZGluZyB0aGUgcXVvdGVzLiAgVGhlc2Ugd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBzYXlpbmcgdGhhdCB0aGUKKyMgdW5kZWZpbmVkIGNvZGUgcG9pbnQgVStEMDEgKGRlcml2ZWQgdmlhIG1hcHBpbmcgZnJvbSBJbnRlckluZGljKQorIyBjYW4gYmUgcmVtYXBwZWQgdG8gVStEMDIuCisjIAorIyBUaGUgcHVycG9zZSBvZiB0aGlzIHNjcmlwdCBpcyB0byBwcm9jZXNzIHRoZSBJbmRpYyBzY3JpcHQgZGF0YSBpbnRvCisjIGEgZm9ybSB1c2FibGUgYnkgdGhlIEluZGljVHJhbnNsaXRlcmF0b3IsIHRoYXQgaXMsIHRoZSBJbmRpYy1JbmRpYworIyB0cmFuc2xpdGVyYXRvci4gIFRoZSB0cmFuc2xpdGVyYXRvciBuZWVkcyB0d28gdGhpbmdzOiBBIG1hcHBpbmcgb2YKKyMgdGhlIGNvZGUgcG9pbnRzIGluIGNvbW1vbiwgYW5kIGEgbGlzdCBvZiB0aGUgZXhjZXB0aW9ucy4KKworIyBBc3N1bWUgd2UgYXJlIGxvY2F0ZWQgaW4gaWN1NGovc3JjL2NvbS9pYm0vdG9vbHMvdHJhbnNsaXQvLgorIyBXZSB3YW50IHRoZSBVbmljb2RlIERCIGluIGljdTRqL3NyYy9kYXRhL3VuaWNvZGUvLgorJFVOSUNPREVfREIgPSAiLi4vLi4vLi4vLi4vZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLnR4dCI7CiskRVhDRVBUSU9OU19GSUxFID0gc2hpZnQ7CisKKyMgQXNzdW1lIHdlIGFyZSBsb2NhdGVkIGluIGljdTRqL3NyYy9jb20vaWJtL3Rvb2xzL3RyYW5zbGl0Ly4KKyMgV2Ugd2FudCB0byBvdXRwdXQgZmlsZXMgdG8gaWN1NGovc3JjL2NvbS9pYm0vdGV4dC9yZXNvdXJjZXMvLgorIyBPdXRwdXQgZGlyZWN0b3J5CiskT1VURElSID0gIi4uLy4uL3RleHQvcmVzb3VyY2VzIjsKKworIyBUaGUgdGVtcGxhdGUgZmlsZSBzaG91bGQgY29udGFpbiBqYXZhIGNvZGUgdGhhdCBjYW4gYmUgdXNlZAorIyB0byBnZW5lcmF0ZSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciByZXNvdXJjZSBmaWxlcy4gIFRoZSB0ZW1wbGF0ZQorIyBzaG91bGQgY29udGFpbiB0aGUgZm9sbG93aW5nIGVtYmVkZGVkIHN5bWJvbHMsIHdoaWNoIHRoaXMgc2NyaXB0CisjIHdpbGwgcmVwbGFjZToKKyMgJFRPT0wgLSBuYW1lIG9mIGdlbmVyYXRpbmcgdG9vbAorIyAkREFURSAtIGRhdGUgb2YgZ2VuZXJhdGlvbgorIyAkU0NSSVBURlJPTSAtIG5hbWUgb2Ygc291cmNlIHNjcmlwdAorIyAkU0NSSVBUVE8gLSBuYW1lIG9mIHRhcmdldCBzY3JpcHQKKyMgJFJVTEVTIC0gcnVsZXMKKyRSQlRfVEVNUExBVEUgPSAncmJ0VGVtcGxhdGUudHh0JzsKKworIyBOYW1lIG9mIHRoaXMgdG9vbCBpbiBnZW5lcmF0ZWQgUkJUIGZpbGVzCiskUkJUX0dFTl9UT09MID0gJ2ljdTRqL3NyYy9jb20vaWJtL3Rvb2xzL3RyYW5zbGl0L2luZGljLnBsJzsKKworJERVTVAgPSAwOyAjIElmIDEsIGR1bXAgb3V0IGludGVybmFsIGRhdGEKKworJERPX0hFVVJJU1RJQ19SRU1BUCA9IDA7ICMgSWYgMSwgZG8gYXV0b21hdGljIGhldXJpc3RpYyByZW1hcHBpbmcKKyRET19ERUNPTVBfUkVNQVAgPSAwOyAjIElmIDEsIGRvIGRlY29tcCByZW1hcHBpbmcKKworb3BlbihVTklDT0RFX0RCKTsKK3doaWxlICg8VU5JQ09ERV9EQj4pIHsKKyAgICBuZXh0IGlmIChtfF4wWzAtOF18KTsgIyBTa2lwIHVwIHRvIERldmFuYWdhcmkgYmxvY2sgKDA5MDApCisgICAgbGFzdCBpZiAobXxeMERbOC1GXXxpKTsgIyBCYWlsIG91dCBhZnRlciBNYWxheWFtIGJsb2NrICgwRDAwKQorICAgICMgMEQzOTtNQUxBWUFMQU0gTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisgICAgbXkgQGRhdGEgPSBzcGxpdCgvOy8pOworICAgIG15ICRmdWxsQ29kZSA9IGhleCgkZGF0YVswXSk7ICMgZS5nLiwgMHgwOTNGCisgICAgbXkgJGNvZGUgPSAkZnVsbENvZGUgJiAweDdGOyAjIGUuZy4sIDB4M0YKKyAgICBteSAoJHNjcmlwdCwgJG5hbWUpID0gKCRkYXRhWzFdID1+IC8oXHcrKVxzKyguKykvKTsKKyAgICBkaWUgIkNhbid0IHBhcnNlICRfIiB1bmxlc3MgKCRuYW1lKTsKKyAgICAjIGUuZy4sICRjb2RlLyRzY3JpcHQvJG5hbWUgPSAzRi9NQUxBWUFMQU0vVk9XRUwgU0lHTiBJCisKKyAgICAjIFRpdGxlY2FzZSB0aGUgc2NyaXB0CisgICAgJHNjcmlwdCA9IHVjZmlyc3QobGMoJHNjcmlwdCkpOworCisgICAgIyBGaXggYSBjb3VwbGUgaW5jb25zaXN0ZW5jaWVzIGluIHRoZSAzLjAgZGF0YQorICAgICMgUkVWSVNJVDogSXMgdGhpcyBva2F5IHRvIGRvPworICAgIGlmICgkRE9fSEVVUklTVElDX1JFTUFQKSB7CisgICAgICAgIGlmICgkc2NyaXB0IGVxICdHdWphcmF0aScgJiYgJGNvZGUgPj0gNSAmJiAkY29kZSA8PSAweDE0KSB7CisgICAgICAgICAgICAkbmFtZSA9fiBzL15WT1dFTC9MRVRURVIvOworICAgICAgICB9CisgICAgfQorCisgICAgIyBLZWVwIHRyYWNrIG9mIGFsbCBzY3JpcHQgbmFtZXMgd2UgZW5jb3VudGVyLiAgV2UgYWxzbyBub3RlIHRoZQorICAgICMgYmFzZSBvZiB0aGUgYmxvY2suCisgICAgbXkgJGJhc2UgPSAkZnVsbENvZGUgJiB+MHg3RjsgIyBlLmcuLCAweDkwMDsKKyAgICBpZiAoZXhpc3RzICRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSkgeworICAgICAgICBkaWUgIlNjcmlwdCBiYXNlIG1pc21hdGNoIGZvciAkc2NyaXB0OiAkYmFzZSB2cy4gJFNDUklQVF9UT19CQVNFeyRzY3JpcHR9IgorICAgICAgICAgICAgaWYgKCRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSBuZSAkYmFzZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJFNDUklQVF9UT19CQVNFeyRzY3JpcHR9ID0gJGJhc2U7CisgICAgfQorCisgICAgIyBCdWlsZCB1cCBhIG1hcHBpbmcgYnkgbmFtZS4gIEZvciBlYWNoIG5hbWUsIGtlZXAgYSBoYXNoIGtleWVkIGJ5CisgICAgIyBjb2RlIHBvaW50LiAgRm9yIGVhY2ggY29kZSBwb2ludCwga2VlcCBhbiBhcnJheSBvZiBzY3JpcHQgbmFtZXMuCisgICAgIyBBbHNvIGtlZXAgYSB0b3RhbCB1c2UgY291bnQgZm9yIGVhY2ggbmFtZS4KKyAgICBwdXNoIEB7JE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXskY29kZX19LCAkc2NyaXB0OworICAgICsrJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXtjb3VudH07CisKKyAgICAjIEJ1aWxkIGEgbWFwIHRoYXQgbG9va3MgbGlrZSB0aGlzOgorICAgICMgJFNDUklQVF9OQU1FX1RPX0NPREV7PHNjcmlwdD59ezxuYW1lPn0gPSA8Y29kZT4KKyAgICAjIG9yIHVuZGVmIGlmIHRoZXJlIGlzIG5vIG1hcHBpbmcuCisgICAgJFNDUklQVF9OQU1FX1RPX0NPREV7JHNjcmlwdH17JG5hbWV9ID0gJGNvZGU7CisKKyAgICAjIEJ1aWxkIGEgbWFwIHRoYXQgbG9va3MgbGlrZSB0aGlzOgorICAgICRTQ1JJUFRfQ09ERV9UT19OQU1FeyRzY3JpcHR9eyRjb2RlfSA9ICRuYW1lOworCisgICAgIyBBbmQgYSBtYXAgZnJvbSB0aGUgZnVsbENvZGUgcG9pbnQgdG8gdGhlIG5hbWUKKyAgICAkRlVMTENPREVfVE9fTkFNRXskZnVsbENvZGV9ID0gJG5hbWU7CisKKyAgICAjIE1hcCBjb2RlICgwLi43RikgdG8gbmFtZS4gIFRoaXMgaXMgdXN1YWxseSBhIDEtMSBtYXBwaW5nLCBidXQKKyAgICAjIGlzIDEtbiBpbiBhIGZldyBjYXNlcy4KKyAgICBpZiAoZXhpc3RzICRDT0RFX1RPX05BTUV7JGNvZGV9KSB7CisgICAgICAgIGlmICgkbmFtZSBuZSAkQ09ERV9UT19OQU1FeyRjb2RlfSkgeworICAgICAgICAgICAgIyBGb3IgbXVsdGlwbGUgbmFtZXMgb24gYSBjb2RlIG9mZnNldCwgdXNlIHRoZSBmb3JtYXQKKyAgICAgICAgICAgICMgKGEvYiksIChhL2IvYyksIGV0Yy4KKyAgICAgICAgICAgIGxvY2FsICRfID0gJENPREVfVE9fTkFNRXskY29kZX07CisgICAgICAgICAgICBpZiAobXxeXCh8KSB7CisgICAgICAgICAgICAgICAgaWYgKCFtfFtcKFwpL10kbmFtZVtcKFwpL118KSB7CisgICAgICAgICAgICAgICAgICAgIHN8XCkkfC8kbmFtZVwpfDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRfID0gIigkXy8kbmFtZSkiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJENPREVfVE9fTkFNRXskY29kZX0gPSAkXzsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgICRDT0RFX1RPX05BTUV7JGNvZGV9ID0gJG5hbWU7CisgICAgfQorfQorY2xvc2UoVU5JQ09ERV9EQik7CisKKyMgUmVhZCBhbmQgcGFyc2UgdGhlIG1hbnVhbCByZW1hcHBpbmcgZmlsZS4gIFRoaXMgY29udGFpbnMgbGluZXMKKyMgb2YgdGhlIGZvcm06CisKKyMgfCJcdTA5NTY+XHUwOTQ4OyIgIC8vIEFJIExlbmd0aCBNYXJrIC0+IERldmFuYWdhcmkgVm93ZWwgU2lnbiBBSSAKKworIyBUaGUgbGVmdCBoYW5kIHNpZGUgY29udGFpbnMgYSBub24tZXhpc3RlbnQgZnVsbCBjb2RlIHZhbHVlLiAgSXQKKyMgc2hvdWxkIGJlIGEgc2luZ2xlIHZhbHVlLiAgVGhlIHJpZ2h0IGhhbmQgc2lkZSBjb250YWlucyBvbmUgb3IgbW9yZQorIyByZWFsIGZ1bGwgY29kZSB2YWx1ZXMuICBUaGUgaWRlYSBpcyB0aGF0IHdoZW4gYSBtYXBwaW5nIGZyb20gYW5vdGhlcgorIyBzY3JpcHQgZW5kcyB1cCBhdCB0aGUgbm9uLWV4aXN0ZW50IGNvZGUgcG9pbnQgb24gdGhlIGxlZnQsIHRoZQorIyBzZXF1ZW5jZSBvbiB0aGUgcmlnaHQgc2hvdWxkIGJlIHN1YnN0aXR1dGVkLiAgSW4gdGhpcyBleGFtcGxlLAorIyBEZXZhbmFnYXJpIGhhcyBubyBBSSBMZW5ndGggTWFyay4gIFNvLCBpZiB0cmFuc2xpdGVyYXRpbmcgZnJvbQorIyBPcml5YSwgdGhlbiB0aGUgY2hhcmFjdGVyIDBCNTYgKE9yaXlhIEFJIExlbmd0aCBNYXJrKSB3aWxsIHJlbWFwIHRvCisjIHRoZSBub24tZXhpc3RlbnQgMDk1NiwgYW5kIHRoYXQgcmVtYXBzIHRvIDA5NDgsIG91ciBjaG9zZW4KKyMgRGV2YW5hZ2FyaSBlcXVpdmFsZW50LiAgRm9yIG91ciBwdXJwb3NlcywgdGhlIGxlZnQgaGFuZCBzaWRlIHNob3VsZAorIyBiZSB0YWtlbiB0byBtZWFuIGl0cyBlcXVpdmFsZW50IHBvaW50IGluIHRoZSBJbnRlckluZGljIHJhbmdlLiAgSW4KKyMgdGhpcyBleGFtcGxlLCB3aGF0IGl0IHJlYWxseSBzYXlzIGlzIEUwNTY+MDk0OCBpbiB0aGUKKyMgSW50ZXJJbmRpYy1EZXZhbmFnYXJpIHRyYW5zbGl0ZXJhdG9yLgorCitpZiAoJEVYQ0VQVElPTlNfRklMRSkgeworICAgIG9wZW4oRVhDRVBUSU9OU19GSUxFKSBvciBkaWU7CisgICAgd2hpbGUgKDxFWENFUFRJT05TX0ZJTEU+KSB7CisgICAgICAgIGlmIChtfF5ccypcIihbXlwiXSo/KVwifCkgeworICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKKyAgICAgICAgICAgICRfID0gJDE7CisgICAgICAgICAgICBpZiAoL14oLiopPiguKik7JC8pIHsKKyAgICAgICAgICAgICAgICBteSAoJHJhd0Zyb20sICRyYXdUbykgPSAoJDEsICQyKTsKKyAgICAgICAgICAgICAgICBteSBAZnJvbSA9IHBhcnNlVW5pY29kZUVzY2FwZSgkcmF3RnJvbSk7CisgICAgICAgICAgICAgICAgbXkgQHRvID0gcGFyc2VVbmljb2RlRXNjYXBlKCRyYXdUbyk7CisgICAgICAgICAgICAgICAgbXkgJGZyb20gPSBoZXhBcnJheShAZnJvbSk7CisgICAgICAgICAgICAgICAgIyBTb21lIGVudHJpZXMgbG9vayBsaWtlIHRoaXM6CisgICAgICAgICAgICAgICAgIyB8Ilx1MDk1NT5cdTA5NTU7IgorICAgICAgICAgICAgICAgICMgdGhlc2UgZG8gbm90aGluZzsgaWdub3JlIHRoZW0uCisgICAgICAgICAgICAgICAgaWYgKGludEFycmF5c0VxdWFsKFxAZnJvbSwgXEB0bykpIHsKKyAgICAgICAgICAgICAgICAgICAgI3ByaW50IFNUREVSUiAiSWdub3JpbmcgTk9PUCByZW1hcCBvZiAkZnJvbVxuIjsKKyAgICAgICAgICAgICAgICB9IGVsc2lmIChleGlzdHMgJEVYQ0VQVElPTlN7JGZyb219KSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRVJST1IgaW4gJEVYQ0VQVElPTlNfRklMRSAtIER1cGxpY2F0ZSByZW1hcCBlbnRyaWVzIGZvciAkZnJvbVxuIjsKKyAgICAgICAgICAgICAgICB9IGVsc2lmIChzY2FsYXIgQGZyb20gPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRVJST1IgaW4gJEVYQ0VQVElPTlNfRklMRSAtIElnbm9yaW5nIG11bHRpY2hhciByZW1hcDogIiwgaGV4QXJyYXkoQGZyb20pLCAiLT4iLCBoZXhBcnJheShAdG8pLCAiXG4iOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgIyBDaGVjayB0aGlzIGZvciB2YWxpZGl0eS4gIEZ1bGwgY29kZSBvbiB0aGUgbGVmdAorICAgICAgICAgICAgICAgICAgICAjIHNob3VsZCBOT1QgZXhpc3QuICBGdWxsIGNvZGUgc2VxIG9uIHRoZSByaWdodCBzaG91bGQuCisgICAgICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJEZVTExDT0RFX1RPX05BTUV7JGZyb21bMF19KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBJbnZhbGlkIHJlbWFwOyBsZWZ0IHNpZGUgZGVmaW5lZDogIiwgaGV4QXJyYXkoQGZyb20pLCAiLT4iLCBoZXhBcnJheShAdG8pLCAiXG4iOworICAgICAgICAgICAgICAgICAgICB9IGVsc2lmIChncmVwKCEgZXhpc3RzICRGVUxMQ09ERV9UT19OQU1FeyRffSwgQHRvKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUiBpbiAkRVhDRVBUSU9OU19GSUxFIC0gSW52YWxpZCByZW1hcDsgcmlnaHQgc2lkZSB1bmRlZmluZWQ6ICIsIGhleEFycmF5KEBmcm9tKSwgIi0+IiwgaGV4QXJyYXkoQHRvKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRFWENFUFRJT05TeyRmcm9tWzBdfSA9IFxAdG87CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeyBkaWUgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBDYW4ndCBwYXJzZSBcIiRfXCIgaW4gbGluZSAkbGluZSI7IH0KKyAgICAgICAgfQorICAgIH0KKyAgICBjbG9zZShFWENFUFRJT05TX0ZJTEUpOworICAgIHByaW50IFNUREVSUiAiJEVYQ0VQVElPTlNfRklMRTogTG9hZGVkICIsIHNjYWxhciBrZXlzICVFWENFUFRJT05TLCAiIHJlbWFwcGluZ3NcbiI7Cit9CisKK2lmICgkRE9fREVDT01QX1JFTUFQKSB7CisgICAgIyBSZWFkIHRoZSBOYW1lc0xpc3QudHh0IGZpbGUuICBUaGlzIGNvbnRhaW5zIGRlY29tcG9zaXRpb24gZGF0YS4KKyAgICAjIEdhdGhlciB0aGVzZSBpbnRvICVERUNPTVAsIHdoaWNoIG1hcHMgYSBuYW1lIHRvIG4xLm4yLi4uLCB3aGVyZSBuMQorICAgICMgZXRjLiBhcmUgZGVjb21wb3NlZCBuYW1lcy4gIEUuZy4gJERFQ09NUHsnTEVUVEVSIFJSQSd9IC0+ICdMRVRURVIKKyAgICAjIFJBLlNJR04gTlVLVEEnLiAgVGhlcmUgbWF5IGJlIGRpZmZlcmVudCBtYXBwaW5ncyBpbiBkaWZmZXJlbnQgc2NyaXB0CisgICAgIyBibG9ja3MgKExFVFRFUiBSUkEgaXMgbWFwcGVkIGRpZmZlcmVudGx5IGluIERldmFuYWdhcmkgYW5kIEJlbmdhbGkpLAorICAgICMgaW4gd2hpY2ggY2FzZSB0aGUgbmFtZSBnb2VzIGludG8gJURFQ09NUF9NSVNNQVRDSCwgYW5kIGlzIHJlbW92ZWQKKyAgICAjIGZyb20gJURFQ09NUC4KKyAgICAkTkFNRVMgPSAiTmFtZXNMaXN0LnR4dCI7CisgICAgb3BlbihOQU1FUyk7CisgICAgd2hpbGUgKDxOQU1FUz4pIHsKKyAgICAgICAgIyBTa2lwIHRvIHN0YXJ0IG9mIERFVkFOQUdBUkkgYmxvY2sKKyAgICAgICAgbGFzdCBpZiAoL15cQFxAXHMrMDkwMC8pOworICAgIH0KKyAgICB3aGlsZSAoPE5BTUVTPikgeworICAgICAgICAjIENvbnRpbnVlIHVudGlsIHN0YXJ0IG9mIFNJTkhBTEEgYmxvY2sKKyAgICAgICAgbGFzdCBpZiAoL15cQFxAXHMrMEQ4MC8pOworICAgICAgICBpZiAoL14oWzAtOUEtWl17NH0pL2kpIHsKKyAgICAgICAgICAgICRjb2RlID0gJDE7CisgICAgICAgIH0gZWxzaWYgKC9eXHMrOlxzKiguKykvKSB7CisgICAgICAgICAgICAjIFdlJ3ZlIGZvdW5kIGEgbWFwcGluZyBvZiB0aGUgZm9ybToKKyAgICAgICAgICAgICMgMDkyOSAgICBERVZBTkFHQVJJIExFVFRFUiBOTk5BCisgICAgICAgICAgICAjICAgICAqIGZvciB0cmFuc2NyaWJpbmcgRHJhdmlkaWFuIGFsdmVvbGFyIG4KKyAgICAgICAgICAgICMgICAgIDogMDkyOCAwOTNDCisgICAgICAgICAgICBteSAkZnJvbSA9ICRGVUxMQ09ERV9UT19OQU1Fe2hleCgkY29kZSl9OworICAgICAgICAgICAgbXkgQHRvID0gbWFwKCRGVUxMQ09ERV9UT19OQU1Fe2hleCgkXyl9LCBzcGxpdCgvXHMrLywgJDEpKTsKKyAgICAgICAgICAgIGlmIChleGlzdHMgJERFQ09NUHskZnJvbX0pIHsKKyAgICAgICAgICAgICAgICBteSAkYXJlZiA9ICRERUNPTVB7JGZyb219OworICAgICAgICAgICAgICAgIGlmIChqb2luKCIuIiwgQCRhcmVmKSBuZSBqb2luKCIuIiwgQHRvKSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SOiBEZWNvbXAgbWlzbWF0Y2ggZm9yICRmcm9tXG4iOworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIiAgICAgOiAkZnJvbSA9ICIsIGpvaW4oIi4iLCBAJGFyZWYpLCAiXG4iOworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIiAgICAgOiAkZnJvbSA9ICIsIGpvaW4oIi4iLCBAdG8pLCAiXG4iOworICAgICAgICAgICAgICAgICAgICAkREVDT01QX01JU01BVENIeyRmcm9tfSA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkREVDT01QeyRmcm9tfSA9IFxAdG87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgY2xvc2UoTkFNRVMpOworICAgICMgUmVtb3ZlIG1pc21hdGNoZXMKKyAgICBmb3JlYWNoIChrZXlzICVERUNPTVBfTUlTTUFUQ0gpIHsKKyAgICAgICAgZGVsZXRlICRERUNPTVB7JF99OworICAgIH0KKyAgICBpZiAoJERVTVApIHsKKyAgICAgICAgZm9yZWFjaCAoa2V5cyAlREVDT01QKSB7CisgICAgICAgICAgICBwcmludCAiJF8gPSAiLCBqb2luKCIgKyAiLCBAeyRERUNPTVB7JF99fSksICJcbiI7CisgICAgICAgIH0KKyAgICB9Cit9CisKKyMgQ291bnQgdGhlIHRvdGFsIG51bWJlciBvZiBzY3JpcHRzCisKKyRTQ1JJUFRfQ09VTlQgPSBzY2FsYXIga2V5cyAlU0NSSVBUX1RPX0JBU0U7CisjcHJpbnQgam9pbigiXG4iLCBzb3J0IGtleXMgJVNDUklQVF9UT19CQVNFKSwgIlxuIjsKKworIyBEdW1wIG91dCB0aGUgJU5BTUVfQ09ERV9UT19TQ1JJUFRTIG1hcC4KKworaWYgKCREVU1QKSB7CisgICAgcHJpbnQgIlxuQlkgTkFNRTpcbiI7CisgICAgZm9yZWFjaCBteSAkcGFzcyAoKDEsIDIpKSB7CisgICAgICAgIHByaW50ICJcbkJZIE5BTUUgLSBTSU5HTEVUT05TOlxuIiBpZiAoJHBhc3MgZXEgMik7CisgICAgICAgIGZvcmVhY2ggbXkgJG5hbWUgKHNvcnQga2V5cyAlTkFNRV9DT0RFX1RPX1NDUklQVFMpIHsKKyAgICAgICAgICAgIGlmICgkcGFzcyBlcSAxKSB7CisgICAgICAgICAgICAgICAgbmV4dCBpZiAoMSA+PSAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9e2NvdW50fSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5leHQgaWYgKDEgPCAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9e2NvdW50fSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludCAiJG5hbWU6IjsKKyAgICAgICAgICAgIG15ICRocmVmID0gJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfTsKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJGNvZGUgKHNvcnQgeyRhIDw9PiAkYn0ga2V5cyAlJGhyZWYpIHsKKyAgICAgICAgICAgICAgICBuZXh0IGlmICgkY29kZSBlcSAnY291bnQnKTsKKyAgICAgICAgICAgICAgICBteSAkYXJlZiA9ICRocmVmLT57JGNvZGV9OworICAgICAgICAgICAgICAgIHByaW50ICIgIiwgaGV4MigkY29kZSksICIgKCIsIGZvcm1hdFNjcmlwdExpc3QoJGFyZWYpLCAiKSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludCAiXG4iOworICAgICAgICB9CisgICAgfQorfQorCisjIENyZWF0ZSBzb21lIHRyYW5zbGl0ZXJhdG9ycywgYmFzZWQgb24gdGhlIHNjcmlwdHMgYW5kIHRoZSAlTkFNRV9DT0RFX1RPX1NDUklQVFMKKyMgbWFwLiAgT25seSB1c2UgJU5BTUVfQ09ERV9UT19TQ1JJUFRTIGVudHJpZXMgd2l0aCBhIGNvdW50IG9mIDIgb3IgbW9yZSwgdGhhdCBpcywKKyMgbmFtZXMgdGhhdCBvY2N1ciBpbiB0d28gb3IgbW9yZSBzY3JpcHRzLiAgRm9yIHRob3NlIHNjcmlwdHMgd2hlcmUKKyMgdGhlIG5hbWVzIG9jY3VyLCBtYXAgYm90aCB1cCB0byB0aGUgSW50ZXJJbmRpYyByYW5nZSwgYW5kIGRvd24gdG8KKyMgdGhlIHRhcmdldCBzY3JpcHQuCisKKyRJTlRFUklORElDID0gMHhFMDAwOworJElOVEVSSU5ESUNfRVhUUkEgPSAweEUwODA7CiskSU5URVJJTkRJQ19FWFRSQV9ORVhUID0gJElOVEVSSU5ESUNfRVhUUkE7CisKKyMgRm9yIGVhY2ggc2NyaXB0LCBjcmVhdGUgYSBoYXNoLiAgVGhlIGhhc2ggaGFzIGEga2V5IGZvciBlYWNoCisjIGNvZGUgcG9pbnQsIGVpdGhlciB3aXRoaW4gaXRzIGJsb2NrLCBvciBpbiB0aGUgSW50ZXJJbmRpYyBibG9jay4KKyMgdGhlIHZhbHVlIG9mIHRoZSBrZXkgaXMgdGhlIG1hcHBpbmcuCisKKyMgVGhlIHNjcmlwdCBoYXNoZXMgYXJlIG5hbWVkICVERVZBTkFHQVJJLCBldGMuLCBhbmQgcmVmZXJlbmNlZAorIyB3aXRoIHN5bWJvbGljIHJlZnMuCisKK0BSRU1BUCA9ICgncy9cYlNIT1JUXHMrLy9pJywKKyAgICAgICAgICAncy9cYkNBTkRSQVxzKy8vaScsCisgICAgICAgICAgJ3MvXGJRQSQvS0EvaScsCisgICAgICAgICAgJ3MvXGJLSEhBJC9LSEEvaScsCisgICAgICAgICAgJ3MvXGJHSEhBJC9HQS9pJywKKyAgICAgICAgICAncy9cYlpBJC9KQS9pJywKKyAgICAgICAgICAncy9cYkZBJC9QSEEvaScsCisgICAgICAgICAgJ3MvXGJWQSQvQkEvaScsCisgICAgICAgICAgJ3MvXGJOTk5BJC9OQS9pJywKKyAgICAgICAgICAncy9cYlJSQSQvUkEvaScsCisgICAgICAgICAgJ3MvXGJMTExBJC9MTEEvaScsCisgICAgICAgICAgJ3MvXGJMTExBJC9MQS9pJywKKyAgICAgICAgICAncy9cYkxMQSQvTEEvaScsCisgICAgICAgICAgJ3MvXkEoLikgTEVOR1RIIE1BUkskL1ZPV0VMIFNJR04gQSQxL2knLAorICAgICAgICAgICdzL0NBTkRSQUJJTkRVL0JJTkRJL2knLAorICAgICAgICAgICdzL0JJTkRJL0NBTkRSQUJJTkRVL2knLAorICAgICAgICAgICk7CisKKyMgRG8gdGhpcyBzbyB3ZSBzZWUgemVybyBjb3VudHM6Citmb3JlYWNoIG15ICRyZW1hcCAoQFJFTUFQKSB7ICRSRU1BUHskcmVtYXB9ID0gMDsgfQorCisjIFRoaXMgbG9vcCBpdGVyYXRlcyBvdmVyIHRoZSBuYW1lcyBpbiB0aGUgTkFNRV9DT0RFX1RPX1NDUklQVFMgaGFzaC4KKyMgVGhlc2UgbmFtZXMgYXJlIHRoaW5ncyBsaWtlICJMRVRURVIgTk5OQSIuICBGb3IgZWFjaCBuYW1lLCBpdCB0aGVuCisjIGNyZWF0ZXMgc2NyaXB0IG1hcHBpbmdzIHVwIHRvIHRoZSBJbnRlckluZGljIGFyZWEsIGFuZCBiYWNrIGRvd24KKyMgdG8gdGhlIHNjcmlwdCBhcmVhcy4gIElmIGEgbmFtZSBtYXBzIHRvIG1vcmUgdGhhbiBvbmUgb2Zmc2V0LAorIyB0aGVuIGl0IHVzZXMgdGhlIEludGVySW5kaWMgZXh0cmEgcmFuZ2UuICBFaXRoZXIgd2F5LCBpdCBwaWNrcworIyBhIHNpbmdsZSBJbnRlckluZGljIHBvaW50LCBlaXRoZXIgYW4gb2Zmc2V0IHBvaW50IG9yIHNvbWV0aGluZyBpbgorIyB0aGUgZXh0cmEgcmFuZ2UsIGFuZCBtYXBzIHVwIGFuZCBkb3duIGZyb20gdGhhdCBwb2ludC4KK2ZvcmVhY2ggbXkgJG5hbWUgKHNvcnQga2V5cyAlTkFNRV9DT0RFX1RPX1NDUklQVFMpIHsKKyAgICBuZXh0IGlmICgxID49ICROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX17Y291bnR9KTsKKyAgICBteSAkaHJlZiA9ICROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX07CisgICAgIyBDb3VudCB0aGUgbnVtYmVyIG9mIGRpZmZlcmVudCBjb2RlcyBhc3NpZ25lZCB0byB0aGlzIG5hbWUuCisgICAgIyBVc3VhbGx5IDEsIGJ1dCAyIGZvciBhIGhhbmRmdWwgb2YgbmFtZXMuCisgICAgbXkgJGNvZGVDb3VudCA9IChrZXlzICV7JE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfX0pIC0gMTsgIyBsZXNzIDE6IHtjb3VudH0KKyAgICAjIElmICRjb2RlQ291bnQgaXMgMSwgdGhlbiBtYXAgZGlyZWN0bHkgdXAgdG8gdGhlICRJTlRFUklORElDCisgICAgIyBiYXNlLiAgSWYgJGNvZGVDb3VudCBpcyAyLCB0aGVuIG1hcCBpbnRvIHVudXNlZCBzcG90cyBzdGFydGluZworICAgICMgYXQgJElOVEVSSU5ESUNfRVhUUkEuCisgICAgbXkgJGludGVySW5kaWNDb2RlOworICAgIGlmICgkY29kZUNvdW50ID4gMSkgeworICAgICAgICAjIE1hcCBpbnRvIHRoZSBJbnRlckluZGljIGV4dHJhIHJhbmdlCisgICAgICAgICRpbnRlckluZGljQ29kZSA9ICRJTlRFUklORElDX0VYVFJBX05FWFQrKzsKKyAgICB9CisgICAgbXkgJXNlZW47CisgICAgZm9yZWFjaCBteSAkY29kZSAoc29ydCB7JGEgbmUgJ2NvdW50JyAmJiAkYiBuZSAnY291bnQnICYmICRhIDw9PiAkYn0ga2V5cyAlJGhyZWYpIHsKKyAgICAgICAgbmV4dCBpZiAoJGNvZGUgZXEgJ2NvdW50Jyk7CisgICAgICAgIG15ICRhcmVmID0gJGhyZWYtPnskY29kZX07ICMgUmVmIHRvIGFycmF5IG9mIHNjcmlwdHMKKyAgICAgICAgaWYgKCRjb2RlQ291bnQgPT0gMSkgeworICAgICAgICAgICAgIyBNYXAgZGlyZWN0bHkKKyAgICAgICAgICAgICRpbnRlckluZGljQ29kZSA9ICRJTlRFUklORElDICsgJGNvZGU7CisgICAgICAgIH0KKyAgICAgICAgIyBLZWVwIHRyYWNrIG9mIHRoZSBuYW1lcyBvZiB0aGUgZXh0cmEgSW50ZXJJbmRpYyBwb2ludHMKKyAgICAgICAgJElOVEVSSU5ESUNfTkFNRV9UT19GVUxMQ09ERXskbmFtZX0gPSAkaW50ZXJJbmRpY0NvZGU7CisKKyAgICAgICAgZm9yZWFjaCBteSAkc2NyIChAJGFyZWYpIHsKKyAgICAgICAgICAgICRzZWVueyRzY3J9ID0gMTsKKyAgICAgICAgICAgIG15ICRmdWxsQ29kZSA9ICRTQ1JJUFRfVE9fQkFTRXskc2NyfSArICRjb2RlOworICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlfSA9IGhleDQoJGludGVySW5kaWNDb2RlKSAuICI7IC8vICRuYW1lIjsKKyAgICAgICAgICAgICQgeyRzY3J9eyRpbnRlckluZGljQ29kZX0gPSBoZXg0KCRmdWxsQ29kZSkgLiAiOyAvLyAkbmFtZSI7CisgICAgICAgIH0KKyAgICB9CisgICAgIyBOb3cgaGFuZGxlIEludGVySW5kaWMtPlNjcmlwdCB1bm1hcHBlZCBwb2ludHMuICBGb3IgZWFjaCBuYW1lLAorICAgICMgc29tZSBvZiB0aGUgc2NyaXB0cyB3aWxsIGJlIGxlZnQgb3V0IC0tIHdpbGwgaGF2ZSBubyBtYXBwaW5ncworICAgICMgdG8gdGhhdCBuYW1lLiAgRm9yIHRoZXNlIHNjcmlwdHMsIHdlIGNhbiBlaXRoZXIgbGVhdmUgdGhlbQorICAgICMgdW5tYXBwZWQgKHNvIHRoZSBJbnRlckluZGljLT5Mb2NhbCBtYXBwaW5nIGlzIGVtcHR5KSwgb3IKKyAgICAjIHRyeSB0byByZW1hcC4KKyB1bm1hcHBlZFNjcmlwdDoKKyAgICBmb3JlYWNoIG15ICRzY3IgKGtleXMgJVNDUklQVF9UT19CQVNFKSB7CisgICAgICAgIG5leHQgaWYgKCRzZWVueyRzY3J9KTsKKworICAgICAgICBpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgICAgICAgICAgIyBUcnkgdG8gcmVtYXAgdGhyb3VnaCB0aGUga25vd24gZXF1aXZhbGVuY2VzIGluIG91cgorICAgICAgICAgICAgIyByZW1hcHBpbmcgdGFibGUKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJHJlbWFwUkUgKEBSRU1BUCkgeworICAgICAgICAgICAgICAgIGxvY2FsICRfID0gJG5hbWU7CisgICAgICAgICAgICAgICAgaWYgKGV2YWwoJHJlbWFwUkUpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJFNDUklQVF9OQU1FX1RPX0NPREV7JHNjcn17JF99KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkIHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXg0KCRTQ1JJUFRfVE9fQkFTRXskc2NyfSArICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRffSkgLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyAvLyBSRU1BUDogJG5hbWUgLT4gJF8iOworICAgICAgICAgICAgICAgICAgICAgICAgKyskUkVNQVB7JHJlbWFwUkV9OworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCB1bm1hcHBlZFNjcmlwdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICMgVHJ5IHRvIHJlbWFwIHRocm91Z2ggdGhlIGZpbGUuICBUaGlzIGNvbnRhaW5zIHJlbWFwcGluZ3Mgb2YKKyAgICAgICAgIyB0aGUgZm9ybSAwOTkxLT4wOTkzLiAgVGhhdCBpcywgaXQgY29udGFpbnMgbG9jYWwgcmVtYXBwaW5ncworICAgICAgICAjIHRoYXQgd2UgY2FuIHN1YnN0aXR1dGUgYW5kIHRyeSBhZ2FpbiB3aXRoLgorICAgICAgICAjfEdVUk1VS0hJLUludGVySW5kaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICN8Ly8gMEEwMj47IC8vIFVOTUFQUEVEIElOVEVSTkFMOiBTSUdOIEJJTkRJCisgICAgICAgICN8SW50ZXJJbmRpYy1HVVJNVUtISSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgI3wvLyBFMDAxPjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IFNJR04gQ0FORFJBQklORFUKKyAgICAgICAgI3wiXHUwQTAxPlx1MEEwMjsiCisgICAgICAgICMgSW4gdGhpcyBleGFtcGxlLCB0aGUgcmVtYXBwaW5nIHRlbGxzIHVzIHRoYXQgdGhlIG5vbi1leGlzdGVudAorICAgICAgICAjIGNoYXJhY3RlciBBMDEgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZXF1aXZhbGVudCB0byB0aGUgcmVhbAorICAgICAgICAjIGNoYXJhY3RlciBBMDIuCisgICAgICAgICMgV2UgaW1wbGVtZW50IHRoaXMgYnkgYWRkaW5nIHR3byBtYXBwaW5nczsgb25lIGZyb20KKyAgICAgICAgIyB0aGUgSW50ZXJJbmRpYyBlcXVpdmFsZW50IG9mIEEwMSwgdGhhdCBpcywgRTAwMSwgdG8gQTAyLAorICAgICAgICAjIGFuZCBvbmUgZnJvbSBBMDIsIHdoaWNoIG90aGVyd2lzZSBoYXMgbm8gbWFwcGluZywgdG8gRTAwMS4KKyAgICAgICAgaWYgKCRFWENFUFRJT05TX0ZJTEUgJiYgJGludGVySW5kaWNDb2RlIDwgJElOVEVSSU5ESUNfRVhUUkEpIHsKKyAgICAgICAgICAgICMgVHJ5IHRvIG1hcCB0aGlzIEludGVySW5kaWMgY2hhcmFjdGVyIGJhY2sgdG8gYSB0aGUgc3BvdAorICAgICAgICAgICAgIyBpdCB3b3VsZCBvY2N1cHkgaW4gdGhpcyBzY3JpcHQgaWYgaXQgaGFkIGEgbWFwcGluZy4KKyAgICAgICAgICAgIG15ICRjb2RlID0gJGludGVySW5kaWNDb2RlICYgMHg3RjsKKyAgICAgICAgICAgIG15ICRwc2V1ZG9GdWxsQ29kZSA9ICRTQ1JJUFRfVE9fQkFTRXskc2NyfSArICRjb2RlOworICAgICAgICAgICAgaWYgKGV4aXN0cyAkRVhDRVBUSU9OU3skcHNldWRvRnVsbENvZGV9KSB7CisgICAgICAgICAgICAgICAgbXkgJGZ1bGxDb2RlQXJyYXkgPSAkRVhDRVBUSU9OU3skcHNldWRvRnVsbENvZGV9OworICAgICAgICAgICAgICAgIG15ICRjb21tZW50OworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGMgKEAkZnVsbENvZGVBcnJheSkgeworICAgICAgICAgICAgICAgICAgICAkY29tbWVudCAuPSAiLiIgaWYgKCRjb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgJGNvbW1lbnQgLj0gJEZVTExDT0RFX1RPX05BTUV7JGN9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkY29tbWVudCA9ICI7IC8vIFJFTUFQICgkRVhDRVBUSU9OU19GSUxFKTogIiAuCisgICAgICAgICAgICAgICAgICAgIGhleDQoJHBzZXVkb0Z1bGxDb2RlKSAuICI+IiAuIGhleEFycmF5KEAkZnVsbENvZGVBcnJheSkgLiAiID0gIiAuCisgICAgICAgICAgICAgICAgICAgICRDT0RFX1RPX05BTUV7JGNvZGV9IC4gIj4iIC4gJGNvbW1lbnQ7CisgICAgICAgICAgICAgICAgJCB7JHNjcn17JGludGVySW5kaWNDb2RlfSA9IGhleEFycmF5KEAkZnVsbENvZGVBcnJheSkgLiAkY29tbWVudDsKKyAgICAgICAgICAgICAgICBpZiAoc2NhbGFyIEAkZnVsbENvZGVBcnJheSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJCB7JHNjcn17JGZ1bGxDb2RlQXJyYXktPlswXX0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVGhlcmUncyBhbHJlYWR5IGEgcHJvcGVyIG1hcHBpbmc7IG5vIG5lZWQgdG8gZmlsbAorICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiByZXZlcnNlCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkIHskc2NyfXskZnVsbENvZGVBcnJheS0+WzBdfSA9IGhleDQoJGludGVySW5kaWNDb2RlKSAuICRjb21tZW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5leHQgdW5tYXBwZWRTY3JpcHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAkU0NSSVBUX0ZVTExDT0RFX1RPX0lTX1VOTUFQUEVEeyRzY3J9eyRpbnRlckluZGljQ29kZX0gPSAxOworICAgICAgICBsb2NhbCAkXyA9ICI7IC8vIFVOTUFQUEVEIEludGVySW5kaWMtJHNjcjogJG5hbWUiOworICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfQ09ERV9UT19OQU1FeyRzY3J9eyRpbnRlckluZGljQ29kZSAmIDB4N0Z9KSB7CisgICAgICAgICAgICBteSAkZnVsbENvZGUgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAoJGludGVySW5kaWNDb2RlICYgMHg3Rik7CisgICAgICAgICAgICAkXyAuPSAiICgiIC4gaGV4NCgkZnVsbENvZGUpIC4gIiA9ICIgLiAkRlVMTENPREVfVE9fTkFNRXskZnVsbENvZGV9IC4gIikiOworICAgICAgICB9CisgICAgICAgICQgeyRzY3J9eyRpbnRlckluZGljQ29kZX0gPSAkXzsKKyAgICB9Cit9CisKKyMgQWRkIGluIHVubWFwcGVkIGVudHJpZXMgZm9yIGVhY2ggc2NyaXB0Citmb3JlYWNoIG15ICRzY3IgKGtleXMgJVNDUklQVF9UT19CQVNFKSB7CisgICAgbXkgJGJhc2UgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn07CisgdW5tYXBwZWRJbnQ6CisgICAgZm9yZWFjaCBteSAkY29kZSAoa2V5cyAleyRTQ1JJUFRfQ09ERV9UT19OQU1FeyRzY3J9fSkgeworICAgICAgICBteSAkZnVsbENvZGUgPSAkY29kZSArICRiYXNlOworICAgICAgICBuZXh0IGlmIChleGlzdHMgJCB7JHNjcn17JGZ1bGxDb2RlfSk7CisgICAgICAgIG15ICRuYW1lID0gJFNDUklQVF9DT0RFX1RPX05BTUV7JHNjcn17JGNvZGV9OworCisgICAgICAgIGlmICgkRE9fSEVVUklTVElDX1JFTUFQKSB7CisgICAgICAgICAgICBmb3JlYWNoIG15ICRyZW1hcFJFIChAUkVNQVApIHsKKyAgICAgICAgICAgICAgICBsb2NhbCAkXyA9ICRuYW1lOworICAgICAgICAgICAgICAgIGlmIChldmFsKCRyZW1hcFJFKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRJTlRFUklORElDX05BTUVfVE9fRlVMTENPREV7JF99KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkIHskc2NyfXskZnVsbENvZGV9ID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXg0KCRJTlRFUklORElDX05BTUVfVE9fRlVMTENPREV7JF99KSAuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IC8vIFJFTUFQOiAkbmFtZSAtPiAkXyI7CisgICAgICAgICAgICAgICAgICAgICAgICArKyRSRU1BUHskcmVtYXBSRX07CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IHVubWFwcGVkSW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgIyBOb3cgdHJ5IHRoZSBkZWNvbXAgdGFibGUKKyAgICAgICAgaWYgKCRET19ERUNPTVBfUkVNQVAgJiYgZXhpc3RzICRERUNPTVB7JG5hbWV9KSB7CisgICAgICAgICAgICBteSAkeDsKKyAgICAgICAgICAgIG15ICRjbXQgPSAiOyAvLyBERUNPTVA6ICRuYW1lIC0+ICI7CisgICAgICAgICAgICBmb3JlYWNoIG15ICRuIChAeyRERUNPTVB7JG5hbWV9fSkgeworICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJFNDUklQVF9OQU1FX1RPX0NPREV7JHNjcn17JG59KSB7CisgICAgICAgICAgICAgICAgICAgICR4IC49IGhleDQoJFNDUklQVF9UT19CQVNFeyRzY3J9ICsgJFNDUklQVF9OQU1FX1RPX0NPREV7JHNjcn17JG59KTsKKyAgICAgICAgICAgICAgICAgICAgJGNtdCAuPSAkbiAuICIgKyAiOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICRjbXQgPSAwOworICAgICAgICAgICAgICAgICAgICBsYXN0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkY210KSB7CisgICAgICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlfSA9ICR4IC4gJGNtdDsKKyAgICAgICAgICAgICAgICBuZXh0IHVubWFwcGVkSW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJFNDUklQVF9GVUxMQ09ERV9UT19JU19VTk1BUFBFRHskc2NyfXskZnVsbENvZGV9ID0gMTsKKyAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlfSA9ICI7IC8vIFVOTUFQUEVEICRzY3ItSW50ZXJJbmRpYzogJG5hbWUiOworICAgIH0KK30KKworIyBHVVIKKyMgRTAwQj47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBMRVRURVIgVk9DQUxJQyBSICJcdTBBMEI+XHUwQTMwXHUwQTNGOyIKKyMgRTAwQz47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBMRVRURVIgVk9DQUxJQyBMICJcdTBBMEM+XHUwQTA3OyIKKyMgRTAwRD47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBMRVRURVIgQ0FORFJBIEUgIlx1MEEwRD5cdTBBMTA7IgorIyBFMDExPjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IExFVFRFUiBDQU5EUkEgTyAiXHUwQTExPlx1MEExNDsiCisjIEUwMzc+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIFNTQSAiXHUwQTM3Plx1MEEzNjsiCisjIEUwNDU+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogVk9XRUwgU0lHTiBDQU5EUkEgRSAiXHUwQTQ1Plx1MEE0ODsiCisjIEUwNDk+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogVk9XRUwgU0lHTiBDQU5EUkEgTyAiXHUwQTQ5Plx1MEE0QzsiCisjIEZpeCBRQSB0b28KKworIyBEdW1wIG91dCBzY3JpcHQgbWFwcworZm9yZWFjaCBteSAkc2NyIChzb3J0IGtleXMgJVNDUklQVF9UT19CQVNFKSB7CisgICAgIyMgbmV4dCB1bmxlc3MgKCRzY3IgZXEgJ1RFTFVHVScpOyAjIERlYnVnZ2luZworICAgIG15IEBydWxlczsKKyAgICBteSAkZmxhZyA9IDE7CisgICAgZm9yZWFjaCBteSAkZnVsbENvZGUgKHNvcnQgeyRhIDw9PiAkYn0ga2V5cyAleyRzY3J9KSB7CisgICAgICAgIGlmICgkZmxhZyAmJiAkZnVsbENvZGUgPj0gJElOVEVSSU5ESUMpIHsKKyAgICAgICAgICAgICMgV2UgaGF2ZSB0aGUgY29tcGxldGUgPHNjcj4tSW50ZXJJbmRpYyBydWxlczsgZHVtcAorICAgICAgICAgICAgIyB0aGVtIG91dC4KKyAgICAgICAgICAgIGdlbmVyYXRlUkJUKCRzY3IsICJJbnRlckluZGljIiwgXEBydWxlcywgJE9VVERJUik7CisgICAgICAgICAgICBAcnVsZXMgPSAoKTsKKyAgICAgICAgICAgICRmbGFnID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfRlVMTENPREVfVE9fSVNfVU5NQVBQRUR7JHNjcn17JGZ1bGxDb2RlfSkgeworICAgICAgICAgICAgcHVzaCBAcnVsZXMsICIvLyAiIC4gaGV4NCgkZnVsbENvZGUpIC4gIj4iIC4gJCB7JHNjcn17JGZ1bGxDb2RlfTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2ggQHJ1bGVzLCBoZXg0KCRmdWxsQ29kZSkgLiAiPiIgLiAkIHskc2NyfXskZnVsbENvZGV9OworICAgICAgICB9CisgICAgfQorICAgICMgTm93IGdlbmVyYXRlIHRoZSBJbnRlckluZGljLTxzY3I+IHJ1bGVzLgorICAgIGdlbmVyYXRlUkJUKCJJbnRlckluZGljIiwgJHNjciwgXEBydWxlcywgJE9VVERJUik7CisKKyMgICAgcHJpbnQgIiRzY3ItSW50ZXJJbmRpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CisjICAgIG15ICRmbGFnID0gMTsKKyMgICAgZm9yZWFjaCBteSAkZnVsbENvZGUgKHNvcnQgeyRhIDw9PiAkYn0ga2V5cyAleyRzY3J9KSB7CisjICAgICAgICBpZiAoJGZsYWcgJiYgJGZ1bGxDb2RlID49ICRJTlRFUklORElDKSB7CisjICAgICAgICAgICAgcHJpbnQgIkludGVySW5kaWMtJHNjciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CisjICAgICAgICAgICAgJGZsYWcgPSAwOworIyAgICAgICAgfQorIyAgICAgICAgaWYgKGV4aXN0cyAkU0NSSVBUX0ZVTExDT0RFX1RPX0lTX1VOTUFQUEVEeyRzY3J9eyRmdWxsQ29kZX0pIHsKKyMgICAgICAgICAgICBwcmludCAiLy8gIiwgaGV4NCgkZnVsbENvZGUpLCAiPiIsICQgeyRzY3J9eyRmdWxsQ29kZX0sICJcbiI7CisjICAgICAgICB9IGVsc2UgeworIyAgICAgICAgICAgIHByaW50IGhleDQoJGZ1bGxDb2RlKSwgIj4iLCAkIHskc2NyfXskZnVsbENvZGV9LCAiXG4iOworIyAgICAgICAgfQorIyAgICB9Cit9CisKKyMgTGlzdCBzdWNjZXNzZnVsIHJlbWFwcGluZ3MKK2lmICgkRE9fSEVVUklTVElDX1JFTUFQKSB7CisgICAgZm9yZWFjaCBteSAkcmVtYXAgKHNvcnQga2V5cyAlUkVNQVApIHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJSRU1BUCAiLCAkUkVNQVB7JHJlbWFwfSwgIiB4ICRyZW1hcFxuIjsKKyAgICB9Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNVQlJPVVRJTkVTCisKKyMgUmV0dXJuIGEgbGlzdGluZyBvZiBhbiBhcnJheSBvZiBzY3JpcHRzCisjIFBhcmFtOiBhcnJheSByZWYKK3N1YiBmb3JtYXRTY3JpcHRMaXN0IHsKKyAgICBteSAkYXJlZiA9IHNoaWZ0OworICAgIGlmICgkU0NSSVBUX0NPVU5UID09IEAkYXJlZikgeworICAgICAgICByZXR1cm4gImFsbCI7CisgICAgfSBlbHNpZiAoKCRTQ1JJUFRfQ09VTlQgLSAzKSA8PSBAJGFyZWYpIHsKKyAgICAgICAgbXkgJHMgPSAiYWxsIGJ1dCI7CisgICAgICAgIG15ICV0ZW1wOworICAgICAgICBmb3JlYWNoIChAJGFyZWYpIHsgJHRlbXB7JF99ID0gMTsgfQorICAgICAgICBmb3JlYWNoIChzb3J0IGtleXMgJVNDUklQVF9UT19CQVNFKSB7CisgICAgICAgICAgICAkcyAuPSAiICRfIiB1bmxlc3MgZXhpc3RzICR0ZW1weyRffTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHM7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGpvaW4oIiAiLCBAJGFyZWYpOworICAgIH0KK30KKworIyBGb3JtYXQgYXMgJTAyWCBoZXgKK3N1YiBoZXgyIHsKKyAgICBzcHJpbnRmKCIlMDJYIiwgJF9bMF0pOworfQorCisjIEZvcm1hdCBhcyAlMDRYIGhleAorc3ViIGhleDQgeworICAgIHNwcmludGYoIlxcdSUwNFgiLCAkX1swXSk7Cit9CisKKyMgRm9ybWF0IGFuIGFycmF5IGFzICUwNFggaGV4LCBkZWxpbWl0ZWQgYnkgIi4icworc3ViIGhleEFycmF5IHsKKyAgICBqb2luKCIiLCBtYXAgeyBoZXg0KCRfKTsgfSBAXyk7Cit9CisKKyMgUGFyc2UgYSBzdHJpbmcgb2YgdGhlIGZvcm0gIlx1MEQwMSIgdG8gYW4gYXJyYXkgb2YgaW50ZWdlcnMuCisjIE11c3QgT05MWSBjb250YWluIGVzY2FwZXMuCisjIFJldHVybiB0aGUgYXJyYXkuCitzdWIgcGFyc2VVbmljb2RlRXNjYXBlIHsKKyAgICBsb2NhbCAkXyA9IHNoaWZ0OworICAgIG15ICRvcmlnID0gJF87CisgICAgbXkgQHJlc3VsdDsKKyAgICB3aGlsZSAobGVuZ3RoKCRfKSkgeworICAgICAgICBpZiAoL15cXHUoWzAtOWEtZl17NH0pKC4qKS9pKSB7CisgICAgICAgICAgICBwdXNoIEByZXN1bHQsIGhleCgkMSk7CisgICAgICAgICAgICAkXyA9ICQyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZSBVbmljb2RlIGVzY2FwZSAkb3JpZ1xuIjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoMCA9PSBAcmVzdWx0KSB7CisgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgVW5pY29kZSBlc2NhcGUgJG9yaWdcbiI7ICAgICAgICAKKyAgICB9CisgICAgQHJlc3VsdDsKK30KKworIyBSZXR1cm4gMSBpZiB0aGUgdHdvIGFycmF5cyBvZiBpbnRzIGFyZSBlcXVhbC4KKyMgUGFyYW06IHJlZiB0byBhcnJheSBvZiBpbnRzCisjIFBhcmFtOiByZWYgdG8gYXJyYXkgb2YgaW50cworc3ViIGludEFycmF5c0VxdWFsIHsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRiID0gc2hpZnQ7CisgICAgaWYgKHNjYWxhciBAJGEgPT0gc2NhbGFyIEAkYikgeworICAgICAgICBmb3IgKG15ICRpPTA7ICRpPEAkYTsgKyskaSkgeworICAgICAgICAgICAgaWYgKCRhLT5bJGldICE9ICRiLT5bJGldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisjIEdpdmVuIGEgcnVsZSwgcG9zc2libHkgd2l0aCB0cmFpbGluZyAvLyBjb21tZW50LAorIyBxdW90ZSB0aGUgcnVsZSBwYXJ0IGFuZCBhZGQgYSB0cmFpbGluZyAiKyIgYWZ0ZXIKKyMgaXQuCitzdWIgcXVvdGVSdWxlIHsKKyAgICBteSAkY210OworICAgICRjbXQgPSAkMSBpZiAoc3woXHMqLy8uKil8fCk7ICMgaXNvbGF0ZSB0cmFpbGluZyAvLyBjb21tZW50CisgICAgcy9eKC4qOykvXCIkMVwiKy87CisgICAgcy8kLyRjbXQvOworICAgICRfOworfQorCisjIEdpdmVuIHRoZSBuYW1lIG9mIHRoZSBzb3VyY2Ugc2NyaXB0LCBuYW1lIG9mIHRoZSB0YXJnZXQgc2NyaXB0LAorIyBhbmQgYXJyYXkgb2YgcnVsZSBzdHJpbmdzLCByZXR1cm4gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgc291cmNlCisjIGZvciBhIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGZpbGUuCisjIFBhcmFtOiBzb3VyY2Ugc2NyaXB0IG5hbWUKKyMgUGFyYW06IHRhcmdldCBzY3JpcHQgbmFtZQorIyBQYXJhbTogcmVmIHRvIGFycmF5IG9mIHJ1bGVzLiAgVGhlc2UgcnVsZXMgYXJlIHVucXVvdGVkLCB3aXRob3V0CisjICBjb25jYXRlbmF0b3JzIGJldHdlZW4gdGhlbSwgYnV0IGRvIGhhdmUgdHJhaWxpbmcgJzsnIHNlcGFyYXRvcnMuCisjIFBhcmFtOiBuYW1lIG9mIG91dHB1dCBkaXJlY3RvcnkKK3N1YiBnZW5lcmF0ZVJCVCB7CisgICAgIyAkVE9PTCAtIG5hbWUgb2YgZ2VuZXJhdGluZyB0b29sCisgICAgIyAkREFURSAtIGRhdGUgb2YgZ2VuZXJhdGlvbgorICAgICMgJFNDUklQVEZST00gLSBuYW1lIG9mIHNvdXJjZSBzY3JpcHQKKyAgICAjICRTQ1JJUFRUTyAtIG5hbWUgb2YgdGFyZ2V0IHNjcmlwdAorICAgICMgJFJVTEVTIC0gcnVsZXMKKyAgICBteSAoJHNvdXJjZSwgJHRhcmdldCwgJHJ1bGVzLCAkb3V0ZGlyKSA9IEBfOworICAgIG15ICR0ZXh0OworICAgICRvdXRkaXIgPX4gc3xbL1xcXSR8fDsgIyBEZWxldGUgdHJhaWxpbmcgLyBvciBcCisgICAgbXkgJE9VVCA9ICIkb3V0ZGlyL1RyYW5zbGl0ZXJhdGlvblJ1bGVfJHtzb3VyY2V9XyR0YXJnZXQuamF2YSI7CisgICAgb3BlbihSQlRfVEVNUExBVEUpIG9yIGRpZTsKKyAgICBvcGVuKE9VVCwgIj4kT1VUIikgb3IgZGllOworICAgIHdoaWxlICg8UkJUX1RFTVBMQVRFPikgeworICAgICAgICB3aGlsZSAoL1wkKFtBLVphLXowLTldKykvKSB7CisgICAgICAgICAgICBteSAkdGFnID0gJDE7CisgICAgICAgICAgICBteSAkc3ViOworICAgICAgICAgICAgaWYgKCR0YWcgZXEgJ1RPT0wnKSB7CisgICAgICAgICAgICAgICAgJHN1YiA9ICRSQlRfR0VOX1RPT0w7CisgICAgICAgICAgICB9IGVsc2lmICgkdGFnIGVxICdEQVRFJykgeworICAgICAgICAgICAgICAgICRzdWIgPSBsb2NhbHRpbWU7CisgICAgICAgICAgICB9IGVsc2lmICgkdGFnIGVxICdTQ1JJUFRGUk9NJykgeworICAgICAgICAgICAgICAgICRzdWIgPSAkc291cmNlOworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnU0NSSVBUVE8nKSB7CisgICAgICAgICAgICAgICAgJHN1YiA9ICR0YXJnZXQ7CisgICAgICAgICAgICB9IGVsc2lmICgkdGFnIGVxICdSVUxFUycpIHsKKyAgICAgICAgICAgICAgICAjIEdldCBhbnkgd2hpdGVzcGFjZS1vbmx5IGluZGVudCBvZmYgdGhlIGZyb250IG9mIHRoaXMgdGFnCisgICAgICAgICAgICAgICAgbXkgJGluZGVudDsKKyAgICAgICAgICAgICAgICAkaW5kZW50ID0gJDEgaWYgKC9eKFxzKylcJCR0YWcvKTsKKworICAgICAgICAgICAgICAgICMgVGhlIHJ1bGVzIGluIHRoZSBhcnJheSBhcmUgbm90IHF1b3RlZC4gIFdlIG5lZWQgdG8gcXVvdGUKKyAgICAgICAgICAgICAgICAjIHRoZW0gYW5kIGFkZCAnKycgb3BlcmF0b3JzIGJldHdlZW4gdGhlbS4gIFdlIGRvIE5PVCBuZWVkCisgICAgICAgICAgICAgICAgIyB0byBhZGQgJzsnIHNlcGFyYXRvcnMuICBXZSBETyBuZWVkIHRvIHNlcGFyYXRlIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgIyAvLyBjb21tZW50cyBhbmQgaGFuZGxlIHRoZW0uCisgICAgICAgICAgICAgICAgJHN1YiA9IGpvaW4oIlxuJGluZGVudCIsIG1hcCgmcXVvdGVSdWxlLCBAJHJ1bGVzKSkgLgorICAgICAgICAgICAgICAgICAgICAiXG4kaW5kZW50XCJcIiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRVJST1IgaW4gJFJCVF9URU1QTEFURTogVW5rbm93biB0YWcgJHRhZ1xuIjsKKyAgICAgICAgICAgICAgICAkc3ViID0gIltFUlJPUjpVbmtub3duIHRhZyBcJCR0YWddIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMvXCQkdGFnLyRzdWIvOworICAgICAgICB9CisgICAgICAgIHByaW50IE9VVDsKKyAgICB9CisgICAgY2xvc2UoT1VUKTsKKyAgICBjbG9zZShSQlRfVEVNUExBVEUpOworICAgIHByaW50IFNUREVSUiAiV3JpdHRlbjogJE9VVFxuIjsKK30KKworX19FTkRfXwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljRXhjZXB0aW9ucy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWNFeGNlcHRpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZDI2ZGQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljRXhjZXB0aW9ucy50eHQKQEAgLTAsMCArMSwzNzcgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiBSZXNlcnZlZCBpbiBhbGwgOSBzY3JpcHRzICovCisKKy8qCisgICBUaGVzZSBjb2RlcG9pbnRzIGFyZSBtYXJrZWQgUkVTRVJWRUQgaW4gYWxsIDkgaW5kaWMgc2NyaXB0cy4KKyAgIFRoZXJlIHNob3VsZCBub3QgYmUgYW55IHRyYW5zbGl0ZXJhdGlvbiB3b3JrIG9uIHRoZXNlIGNvZGVwb2ludHMsIAorICAgaWYgdGhleSBhcmUgZXZlciBlbmNvdW50ZXJlZC4gIElnbm9yZSB0aGVzZSBjb2RlcG9pbnRzLgorCisgICBDb21tb24gcmVzZXJ2ZWQgY29kZXBvaW50cyBpbiBBTEwgOSBzY3JpcHRzIDogKG9mZnNldCkKKyAgIDAwLCAwNCwgCisgICAzQSwgM0IsIAorICAgNEUsIDRGLCAKKyAgIDdCLCA3QywgN0QsIDdFLCA3RgorKi8KKworLyogU2NyaXB0LXNwZWNpZmljICovCisvKgorICAgVGhlc2UgY29kZXBvaW50cyBhcmUgc3BlY2lmaWMgdG8gdGhlaXIgcmVzcGVjdGl2ZSBzY3JpcHQuCisgICBUcmFuc2xpdGVyYXRpb24gb2YgdGhlc2UgY29kZXBvaW50cyBmcm9tIG9uZSBzY3JpcHQgdG8gYW5vdGhlciBpcyBtZWFuaW5nbGVzcy4KKworICAgRm9yIGV4YW1wbGUsCisgICAgICBcdTBCNzAgKE9yaXlhKSBhbmQgXHUwQkYwIChUYW1pbCkgYXJlIG5vbi1yZXNlcnZlZCBjb2RlcG9pbnRzIHdpdGhpbiBlYWNoIHNjcmlwdC4KKyAgICAgIE9uIHRyYW5zbGl0ZXJhdGluZyBcdTBCNzAgZnJvbSBPcml5YSB0byBUYW1pbCwgd2Ugd2lsbCBnZXQgXHUwQkYwLgorICAgICAgQnV0IFx1MEI3MCBpbiBPcml5YSByZXByZXNlbnRzIElTU0hBUiwgd2hlcmVhcyBcdTBCRjAgaW4gVGFtaWwgcmVwcmVzZW50cyBOVU1CRVIgVEVOLgorCisgICBcdTA5NzAgRGV2YW5hZ2FyaSBhYmJyZXZpYXRpb24gc2lnbgorCisgICBcdTA5RjAgQmVuZ2FsaSBsZXR0ZXIgUkEgd2l0aCBtaWRkbGUgZGlhZ29uYWwgKEFzc2FtZXNlKQorICAgXHUwOUYxIEJlbmdhbGkgbGV0dGVyIFJBIHdpdGggbG93ZXIgZGlhZ29uYWwgCisgICAgICAgICAgKD1CZW5nYWxpIGxldHRlciBWQSB3aXRoIGxvd2VyIGRpYWdvbmFsLCBBc3NhbWVzZSkKKyAgIFx1MDlGMiBCZW5nYWxpIHJ1cGVlIG1hcmsKKyAgIFx1MDlGMyBCZW5nYWxpIHJ1cGVlIHNpZ24KKyAgIFx1MDlGNCBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciBvbmUKKyAgIFx1MDlGNSBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciB0d28KKyAgIFx1MDlGNiBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciB0aHJlZQorICAgXHUwOUY3IEJlbmdhbGkgY3VycmVuY3kgbnVtZXJhdG9yIGZvdXIKKyAgIFx1MDlGOCBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciBvbmUgbGVzcyB0aGFuIHRoZSBkZW5vbWluYXRvcgorICAgXHUwOUY5IEJlbmdhbGkgY3VycmVuY3kgZGVub21pbmF0b3Igc2l4dGVlbgorICAgXHUwOUZBIEJlbmdhbGkgaXNzaGFyCisKKyAgIFx1MEE3MCBHdXJtdWtoaSB0aXBwaSAobmFzYWxpemF0aW9uKQorICAgXHUwQTcxIEd1cm11a2hpIGFkZGFrIChkb3VibGVzIGZvbGxvd2luZyBjb25zb25hbnQpCisgICBcdTBBNzIgR3VybXVraGkgaXJpIChiYXNlIGZvciB2b3dlbHMpCisgICBcdTBBNzMgR3VybXVraGkgdXJhIChiYXNlIGZvciB2b3dlbHMpCisgICBcdTBBNzQgR3VybXVraGkgZWsgb25rYXIgKEdvZCBpcyBPbmUpCisKKyAgIFx1MEI3MCBPcml5YSBpc3NoYXIKKworICAgXHUwQkYwIFRhbWlsIG51bWJlciB0ZW4KKyAgIFx1MEJGMSBUYW1pbCBudW1iZXIgb25lIGh1bmRyZWQKKyAgIFx1MEJGMiBUYW1pbCBudW1iZXIgb25lIHRob3VzYW5kCisqLworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogIE5PVEUgOiA8dW5rbm93bj4gY29kZSB3aWxsIG1hcCBiYWNrIHRvIGl0c2VsZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICB0aWxsIHdlIGZpbmQgYSBnb29kIG1hdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRGV2YW5hZ2FyaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwOTU1Plx1MDk1NTsiICAvLyA8dW5rbm93bj4gTGVuZ3RoIE1hcmsgLSBLYW5uYWRhIChcdTBDRDUpLCBUZWx1Z3UgKFx1MEM1NSkKKyJcdTA5NTY+XHUwOTQ4OyIgIC8vIEFJIExlbmd0aCBNYXJrIC0+IERldmFuYWdhcmkgVm93ZWwgU2lnbiBBSQorIlx1MDk1Nz5cdTA5NEM7IiAgLy8gQVUgTGVuZ3RoIE1hcmsgLT4gRGV2YW5hZ2FyaSBWb3dlbCBTaWduIEFVCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBCZW5nYWxpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTA5OEQ+XHUwOThEOyIgIC8vIDx1bmtub3duPiBpbmRlcGVuZGVudCB2b3dlbCBDYW5kcmEgRQorIlx1MDk4RT5cdTA5OEY7IiAgLy8gTGV0dGVyIFNob3J0IEUgLT4gTGV0dGVyIEUKKyJcdTA5OTE+XHUwOTkzOyIgIC8vIExldHRlciBDYW5kcmEgTyAtPiBMZXR0ZXIgTworIlx1MDk5Mj5cdTA5OTM7IiAgLy8gTGV0dGVyIFNob3J0IE8gLT4gTGV0dGVyIE8KKyJcdTA5QTk+XHUwOUE4OyIgIC8vIExldHRlciBOTk5BIC0+IExldHRlciBOQQorIlx1MDlCMT5cdTA5QjA7IiAgLy8gTGV0dGVyIFJSQSAtPiBMZXR0ZXIgUkEKKyJcdTA5QjM+XHUwOUIyOyIgIC8vIExldHRlciBMTEEgLT4gTGV0dGVyIExBCisiXHUwOUI0Plx1MDlCMjsiICAvLyBMZXR0ZXIgTExMQSAtPiBMZXR0ZXIgTEEKKyJcdTA5QjU+XHUwOUFDOyIgIC8vIExldHRlciBWQSAtPiBMZXR0ZXIgQkEKKyJcdTA5QkQ+XHUwOUJEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MDlDNT5cdTA5Qzc7IiAgLy8gVm93ZWwgQ2FuZHJhIEUgLT4gVm93ZWwgRQorIlx1MDlDNj5cdTA5Qzc7IiAgLy8gVm93ZWwgU2hvcnQgRSAtPiBWb3dlbCBFCisiXHUwOUM5Plx1MDlDQjsiICAvLyBWb3dlbCBDYW5kcmEgTyAtPiBWb3dlbCBPCisiXHUwOUNBPlx1MDlDQjsiICAvLyBWb3dlbCBTaG9ydCBPIC0+IFZvd2VsIE8KKyJcdTA5RDA+XHUwOUQwOyIgIC8vIDx1bmtub3duPiBPTSAtIERldmFuYWdhcmkgKFx1MDk1MCksIEd1amFyYXRpIChcdTBBRDApCisiXHUwOUQxPlx1MDlEMTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MDlEMj5cdTA5RDI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTA5RDM+XHUwOUQzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwOUQ0Plx1MDlENDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MDlENT5cdTA5RDU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwOUQ2Plx1MDlDODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBCZW5nYWxpIFZvd2VsIFNpZ24gQUkKKyJcdTA5RDg+XHUwOTk1OyIgIC8vIExldHRlciBRQSAtPiBMZXR0ZXIgS0EKKyJcdTA5RDk+XHUwOTk2OyIgIC8vIExldHRlciBLSEhBIC0+IExldHRlciBLSEEKKyJcdTA5REE+XHUwOTk3OyIgIC8vIExldHRlciBHSEhBIC0+IExldHRlciBHQQorIlx1MDlEQj5cdTA5OUM7IiAgLy8gTGV0dGVyIFpBIC0+IExldHRlciBKQQorIlx1MDlERT5cdTA5QUI7IiAgLy8gTGV0dGVyIEZBIC0+IExldHRlciBQSEEKKyJcdTA5RTQ+XHUwOUU0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTA5RTU+XHUwOUU1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBHdXJtdWtoaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTBBMDE+XHUwQTAyOyIKKyJcdTBBMDM+XHUwQTAzOyIgIC8vIDx1bmtub3duPiBTaWduIFZpc2FyZ2EgLSBEZXZhbmFnYXJpIChcdTA5MDMpICYgdGhlIHJlc3QKKyJcdTBBMEI+XHUwQTMwXHUwQTNGOyIKKyJcdTBBMEM+XHUwQTA3OyIKKyJcdTBBMEQ+XHUwQTEwOyIKKyJcdTBBMEU+XHUwQTBGOyIKKyJcdTBBMTE+XHUwQTE0OyIKKyJcdTBBMTI+XHUwQTEzOyIKKyJcdTBBMjk+XHUwQTI4OyIKKyJcdTBBMzE+XHUwQTMwOyIKKyJcdTBBMzQ+XHUwQTMzOyIKKyJcdTBBMzc+XHUwQTM2OyIKKyJcdTBBM0Q+XHUwQTNEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MEE0Mz5cdTBBNDM7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgUiAtIERldmFuYWdhcmkgKFx1MDk0MykKKyJcdTBBNDQ+XHUwQTQ0OyIgIC8vIDx1bmtub3duPiBWb2NhbGljIFJSIC0gRGV2YW5hZ2FyaSAoXHUwOTQ0KQorIlx1MEE0NT5cdTBBNDg7IgorIlx1MEE0Nj5cdTBBNDc7IgorIlx1MEE0OT5cdTBBNEM7IgorIlx1MEE0QT5cdTBBNEI7IgorIlx1MEE1MD5cdTBBNTA7IiAgLy8gPHVua25vd24+IE9NIC0gRGV2YW5hZ2FyaSAoXHUwOTUwKSwgR3VqYXJhdGkgKFx1MEFEMCkKKyJcdTBBNTE+XHUwQTUxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQTUyPlx1MEE1MjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MEE1Mz5cdTBBNTM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBBNTQ+XHUwQTU0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQTU1Plx1MEE1NTsiICAvLyA8dW5rbm93bj4gTGVuZ3RoIE1hcmsgLSBLYW5uYWRhIChcdTBDRDUpLCBUZWx1Z3UgKFx1MEM1NSkKKyJcdTBBNTY+XHUwQTQ4OyIgIC8vIEFJIExlbmd0aCBNYXJrIC0+IEd1cm11a2hpIFZvd2VsIFNpZ24gQUkKKyJcdTBBNTc+XHUwQTRDOyIgIC8vIEFVIExlbmd0aCBNYXJrIC0+IEd1cm11a2hpIFZvd2VsIFNpZ24gQVUKKyJcdTBBNTg+XHUwQTE1XHUwQTNDOyIKKyJcdTBBNUQ+XHUwQTIyXHUwQTNDOyIgIC8vIExldHRlciBSSEEgLT4gR3VybXVraGkgbGV0dGVyIGRkaGEgKFx1MEEyMikgKyBudWt0YSAoXHUwQTNDKQorIlx1MEE1Rj5cdTBBMkY7IgorIlx1MEE2MD5cdTBBMzBcdTBBM0Y7IgorIlx1MEE2MT5cdTBBMDhcdTBBM0M7IgorIlx1MEE2Mj5cdTBBM0ZcdTBBM0M7IgorIlx1MEE2Mz5cdTBBNDBcdTBBM0M7IgorIlx1MEE2ND5cdTBBNjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEE2NT5cdTBBNjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEd1amFyYXRpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyJcdTBBOEM+XHUwQUIyXHUwQUMzOyIKKyJcdTBBOEU+XHUwQThEOyIKKyJcdTBBOTI+XHUwQTkxOyIKKyJcdTBBQTk+XHUwQUE4OyIKKyJcdTBBQjE+XHUwQUIwOyIKKyJcdTBBQjQ+XHUwQUIzOyIKKyJcdTBBQzY+XHUwQUM1OyIKKyJcdTBBQ0E+XHUwQUM5OyIKKyJcdTBBRDE+XHUwQUQxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQUQyPlx1MEFEMjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MEFEMz5cdTBBRDM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBBRDQ+XHUwQUQ0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQUQ1Plx1MEFENTsiICAvLyA8dW5rbm93bj4gTGVuZ3RoIE1hcmsgLSBLYW5uYWRhIChcdTBDRDUpLCBUZWx1Z3UgKFx1MEM1NSkKKyJcdTBBRDY+XHUwQUM4OyIgIC8vIEFJIExlbmd0aCBNYXJrIC0+IEd1amFyYXRpIFZvd2VsIFNpZ24gQUkKKyJcdTBBRDc+XHUwQUNDOyIgIC8vIEFVIExlbmd0aCBNYXJrIC0+IEd1amFyYXRpIFZvd2VsIFNpZ24gQVUKKyJcdTBBRDg+XHUwQTk1XHUwQUJDOyIKKyJcdTBBRDk+XHUwQTk2XHUwQUJDOyIKKyJcdTBBREE+XHUwQTk3XHUwQUJDOyIKKyJcdTBBREI+XHUwQTlDXHUwQUJDOyIKKyJcdTBBREM+XHUwQUExXHUwQUJDOyIKKyJcdTBBREQ+XHUwQUEyXHUwQUJDOyIKKyJcdTBBREU+XHUwQUFCXHUwQUJDOyIKKyJcdTBBREY+XHUwQUFGXHUwQUJDOyIKKyJcdTBBRTE+XHUwQUIyXHUwQUMzOyIKKyJcdTBBRTI+XHUwQUJGXHUwQUJDOyIKKyJcdTBBRTM+XHUwQUMwXHUwQUJDOyIKKyJcdTBBRTQ+XHUwQUU0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBBRTU+XHUwQUU1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBPcml5YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisiXHUwQjBEPlx1MEIwRjsiCisiXHUwQjBFPlx1MEIwRjsiCisiXHUwQjExPlx1MEIxMzsiCisiXHUwQjEyPlx1MEIxMzsiCisiXHUwQjI5Plx1MEIyODsiCisiXHUwQjMxPlx1MEIzMDsiCisiXHUwQjM0Plx1MEIzMzsiCisiXHUwQjM1Plx1MEIyQzsiICAvLyBMZXR0ZXIgVkEgLT4gT3JpeWEgTGV0dGVyIEJBCisiXHUwQjQ0Plx1MEI0M1x1MEIzQzsiCisiXHUwQjQ1Plx1MEI0NzsiCisiXHUwQjQ2Plx1MEI0NzsiCisiXHUwQjQ5Plx1MEI0QjsiCisiXHUwQjRBPlx1MEI0QjsiCisiXHUwQjUwPlx1MEIxM1x1MEIwMTsiCisiXHUwQjUxPlx1MEI1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEI1Mj5cdTBCNTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBCNTM+XHUwQjUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQjU0Plx1MEI1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEI1NT5cdTBCNTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQjU4Plx1MEIxNVx1MEIzQzsiCisiXHUwQjU5Plx1MEIxNlx1MEIzQzsiCisiXHUwQjVBPlx1MEIxN1x1MEIzQzsiCisiXHUwQjVCPlx1MEIxQ1x1MEIzQzsiCisiXHUwQjVFPlx1MEIyQlx1MEIzQzsiCisiXHUwQjYyPlx1MEI1Nlx1MEIzQzsiCisiXHUwQjYzPlx1MEI1N1x1MEIzQzsiCisiXHUwQjY0Plx1MEI2NDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQjY1Plx1MEI2NTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogVGFtaWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwQjgxPlx1MEI4MTsiICAvLyA8dW5rbm93bj4gQ2FuZHJhYmluZHUgLSBEZXZhbmFnYXJpIChcdTA5MDEpICxldGMKKyJcdTBCOEI+XHUwQkIwXHUwQkJGOyIKKyJcdTBCOEM+XHUwQjg3OyIKKyJcdTBCOEQ+XHUwQjg2OyIKKyJcdTBCOTE+XHUwQjg2OyIKKyJcdTBCOTY+XHUwQjk1OyIKKyJcdTBCOTc+XHUwQjk1OyIKKyJcdTBCOTg+XHUwQjk1OyIKKyJcdTBCOUI+XHUwQjlBOyIKKyJcdTBCOUQ+XHUwQjlBOyIKKyJcdTBCQTA+XHUwQjlGOyIKKyJcdTBCQTE+XHUwQjlGOyIKKyJcdTBCQTI+XHUwQjlGOyIKKyJcdTBCQTU+XHUwQkE0OyIKKyJcdTBCQTY+XHUwQkE0OyIKKyJcdTBCQTc+XHUwQkE0OyIKKyJcdTBCQUI+XHUwQkFBOyIKKyJcdTBCQUM+XHUwQkFBOyIKKyJcdTBCQUQ+XHUwQkFBOyIKKyJcdTBCQjY+XHUwQkI3OyIKKyJcdTBCQkM+XHUwQkJDOyIgIC8vIDx1bmtub3duPiBOdWt0YQorIlx1MEJCRD5cdTBCQkQ7IiAgLy8gPHVua25vd24+IFNpZ24gQXZhZ3JhaGEgLSBEZXZhbmFnYXJpIChcdTA5M0QpCisiXHUwQkMzPlx1MEJDRFx1MEJCMFx1MEJCRjsiCisiXHUwQkM0Plx1MEJDRFx1MEJCMFx1MEJCRjsiCisiXHUwQkM1Plx1MEJCRTsiCisiXHUwQkM5Plx1MEJCRTsiCisiXHUwQkQwPlx1MEI5M1x1MEJBRVx1MEJDRDsiCisiXHUwQkQxPlx1MEJEMTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEJEMj5cdTBCRDI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBCRDM+XHUwQkQzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQkQ0Plx1MEJENDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEJENT5cdTBCRDU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQkQ2Plx1MEJDODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBUYW1pbCBWb3dlbCBTaWduIEFJCisiXHUwQkQ4Plx1MEI5NTsiCisiXHUwQkQ5Plx1MEI5NTsiCisiXHUwQkRBPlx1MEI5NTsiCisiXHUwQkRCPlx1MEI5QzsiCisiXHUwQkRDPlx1MEI5RjsiCisiXHUwQkREPlx1MEI5RjsiCisiXHUwQkRFPlx1MEJBQTsiCisiXHUwQkRGPlx1MEJBRjsiCisiXHUwQkUwPlx1MEJCMFx1MEJCRjsiCisiXHUwQkUxPlx1MEI4ODsiCisiXHUwQkUyPlx1MEJFMjsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBMIC0gRGV2YW5hZ2FyaSAoXHUwOTYyKQorIlx1MEJFMz5cdTBCRTM7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgTEwgLSBEZXZhbmFnYXJpIChcdTA5NjMpCisiXHUwQkU0Plx1MEJFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQkU1Plx1MEJFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorIlx1MEJFNj5cdTAwMzA7IiAgLy8gWkVSTyAtIERpZ2l0IFpFUk8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRlbHVndSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MEMwRD5cdTBDMEU7IgorIlx1MEMxMT5cdTBDMTI7IgorIlx1MEMyOT5cdTBDMjg7IgorIlx1MEMzND5cdTBDMzM7IgorIlx1MEMzQz5cdTBDM0M7IiAgLy8gPHVua25vd24+IE51a3RhCisiXHUwQzNEPlx1MEMzRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTBDNDU+XHUwQzQ2OyIKKyJcdTBDNDk+XHUwQzRBOyIKKyJcdTBDNTA+XHUwQzEzXHUwQzAyOyIKKyJcdTBDNTE+XHUwQzUxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQzUyPlx1MEM1MjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MEM1Mz5cdTBDNTM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBDNTQ+XHUwQzU0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQzU3Plx1MEM0QzsiCisiXHUwQzU4Plx1MEMxNTsiCisiXHUwQzU5Plx1MEMxNjsiCisiXHUwQzVBPlx1MEMxNzsiCisiXHUwQzVCPlx1MEMxQzsiCisiXHUwQzVDPlx1MEMyMTsiCisiXHUwQzVEPlx1MEMyMjsiCisiXHUwQzVFPlx1MEMyQjsiCisiXHUwQzVGPlx1MEMyRjsiCisiXHUwQzYyPlx1MEMzRjsiCisiXHUwQzYzPlx1MEM0MDsiCisiXHUwQzY0Plx1MEM2NDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQzY1Plx1MEM2NTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogS2FubmFkYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwQzgxPlx1MEM4MjsiCisiXHUwQzhEPlx1MEM4RTsiCisiXHUwQzkxPlx1MEM5MjsiCisiXHUwQ0E5Plx1MENBODsiCisiXHUwQ0I0Plx1MENCMzsiCisiXHUwQ0JDPlx1MENCQzsiICAvLyA8dW5rbm93bj4gTnVrdGEKKyJcdTBDQkQ+XHUwQ0JEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MENDNT5cdTBDQzY7IgorIlx1MENDOT5cdTBDQ0E7IgorIlx1MENEMD5cdTBDOTNcdTBDODI7IgorIlx1MENEMT5cdTBDRDE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBDRDI+XHUwQ0QyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwQ0QzPlx1MENEMzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MENEND5cdTBDRDQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBDRDc+XHUwQ0NDOyIKKyJcdTBDRDg+XHUwQzk1OyIKKyJcdTBDRDk+XHUwQzk2OyIKKyJcdTBDREE+XHUwQzk3OyIKKyJcdTBDREI+XHUwQzlDOyIKKyJcdTBDREM+XHUwQ0ExOyIKKyJcdTBDREQ+XHUwQ0EyOyIKKyJcdTBDREY+XHUwQ0FGOyIKKyJcdTBDRTI+XHUwQ0JGOyIKKyJcdTBDRTM+XHUwQ0MwOyIKKyJcdTBDRTQ+XHUwQ0U0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBDRTU+XHUwQ0U1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBNYWxheWFsYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTBEMDE+XHUwRDAyOyIKKyJcdTBEMEQ+XHUwRDA2OyIKKyJcdTBEMTE+XHUwRDEzOyIKKyJcdTBEMjk+XHUwRDI4OyIKKyJcdTBEM0M+XHUwRDNDOyIgIC8vIDx1bmtub3duPiBOdWt0YQorIlx1MEQzRD5cdTBEM0Q7IiAgLy8gPHVua25vd24+IFNpZ24gQXZhZ3JhaGEgLSBEZXZhbmFnYXJpIChcdTA5M0QpCisiXHUwRDQ0Plx1MEQ0NDsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBSUiAtIERldmFuYWdhcmkgKFx1MDk0NCkKKyJcdTBENDU+XHUwRDNFOyIKKyJcdTBENDk+XHUwRDRCOyIKKyJcdTBENTA+XHUwRDUwOyIgIC8vIDx1bmtub3duPiBPTSAtIERldmFuYWdhcmkgKFx1MDk1MCksIEd1amFyYXRpIChcdTBBRDApCisiXHUwRDUxPlx1MEQ1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEQ1Mj5cdTBENTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBENTM+XHUwRDUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwRDU0Plx1MEQ1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEQ1NT5cdTBENTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwRDU2Plx1MEQ0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBNYWxheWFsYW0gVm93ZWwgU2lnbiBBSQorIlx1MEQ1OD5cdTBEMTU7IgorIlx1MEQ1OT5cdTBEMTY7IgorIlx1MEQ1QT5cdTBEMTc7IgorIlx1MEQ1Qj5cdTBEMUM7IgorIlx1MEQ1Qz5cdTBEMjE7IgorIlx1MEQ1RD5cdTBEMjI7IgorIlx1MEQ1RT5cdTBEMkI7IgorIlx1MEQ1Rj5cdTBEMkY7IgorIlx1MEQ2Mj5cdTBENjI7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgTCAtIERldmFuYWdhcmkgKFx1MDk2MikKKyJcdTBENjM+XHUwRDYzOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIExMIC0gRGV2YW5hZ2FyaSAoXHUwOTYzKQorIlx1MEQ2ND5cdTBENjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEQ2NT5cdTBENjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9yYnRUZW1wbGF0ZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvcmJ0VGVtcGxhdGUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA1NDliYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvcmJ0VGVtcGxhdGUudHh0CkBAIC0wLDAgKzEsMjYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogPiBUSElTIEZJTEUgV0FTIE1BQ0hJTkUgR0VORVJBVEVEIDwKKyogPiAgICAgICBETyBOT1QgRURJVCBCWSBIQU5EICAgICAgIDwKKyogPiAgICAgIFJVTiBUT09MIFRPIFJFR0VORVJBVEUgICAgIDwKKyogVG9vbDogJFRPT0wKKyogQ3JlYXRpb24gZGF0ZTogJERBVEUKKyovCitwYWNrYWdlIGNvbS5pYm0udGV4dC5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0aW9uUnVsZV8kU0NSSVBURlJPTV8kU0NSSVBUVE8gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBMaXN0UmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIlJ1bGUiLAorICAgICAgICAgICAgICAkUlVMRVMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvdmFyc3ViLmJhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC92YXJzdWIuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkMzQyYzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvdmFyc3ViLmJhdApAQCAtMCwwICsxLDgxIEBACisjLyoqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKi8KKworQHJlbSA9ICctLSotUGVybC0qLS0KK0BlY2hvIG9mZgoraWYgIiVPUyUiID09ICJXaW5kb3dzX05UIiBnb3RvIFdpbk5UCitwZXJsIC14IC1TICIlMCIgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkKK2dvdG8gZW5kb2ZwZXJsCis6V2luTlQKK3BlcmwgLXggLVMgIiUwIiAlKgoraWYgTk9UICIlQ09NU1BFQyUiID09ICIlU3lzdGVtUm9vdCVcc3lzdGVtMzJcY21kLmV4ZSIgZ290byBlbmRvZnBlcmwKK2lmICVlcnJvcmxldmVsJSA9PSA5MDA5IGVjaG8gWW91IGRvIG5vdCBoYXZlIFBlcmwgaW4geW91ciBQQVRILgorZ290byBlbmRvZnBlcmwKK0ByZW0gJzsKKyMhcGVybAorI2xpbmUgMTQKKworIyBVc2FnZTogcGVybCB2YXJzdWIuYmF0IFstbnwtbnJdIDxpbmZpbGU+IDxvdXRmaWxlPgorIworIyBTdWJzdGl0dXRlcyB2YXJpYWJsZXMgaW50byBydWxlcyBhbmQgZGVsZXRlcyB2YXJpYWJsZSBkZWZpbml0aW9uCisjIHN0YXRlbWVudHMuICBWYXJpYWJsZXMgdGhhdCBleHBhbmQgdG8gVW5pY29kZVNldHMgYXJlIE5PVAorIyBzdWJzdGl0dXRlZC4KKyMKKyMgIC1uICAgQWZ0ZXJ3YXJkcywgcnVuIG5hdGl2ZTJhc2NpaSAtZW5jb2RpbmcgVVRGOAorIyAgLW5yICBBZnRlcndhcmRzLCBydW4gbmF0aXZlMmFzY2lpIC1lbmNvZGluZyBVVEY4IC1yZXZlcnNlCisKKyROMkEgPSAwOworCiskSU4gPSBzaGlmdDsKK2lmICgkSU4gPX4gL14tbi8pIHsKKyAgICAkTjJBID0gMTsKKyAgICAkTjJBb3B0aW9uID0gKCRJTiBlcSAnLW5yJykgPyAiIC1yZXZlcnNlICIgOiAiIjsKKyAgICAkSU4gPSBzaGlmdDsKK30KKyRPVVQgPSBzaGlmdDsKKworaWYgKCEoJElOICYmICRPVVQpKSB7CisgICAgZGllICJVc2FnZTogJDAgWy1ufC1ucl0gPGluZmlsZT4gPG91dGZpbGU+IjsKK30KKworb3BlbihJTikgb3IgZGllICJDYW4ndCBvcGVuICRJTjogJCEiOworb3BlbihPVVQsICI+JE9VVCIpIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkT1VUOiAkISI7CisKK3doaWxlICg8SU4+KSB7CisgICAgaWYgKC9eXHMqXCQoW2EtekEtWjAtOV9dKylccyo9XHMqKFteO1wjXSspXHMqO1xzKihcIy4qKT8kLykgeworICAgICAgICAjIFRoaXMgbG9va3MgbGlrZSBhIHZhcmlhYmxlIGRlZmluaXRpb24KKyAgICAgICAgbXkgKCR2YXIsICRkZWYpID0gKCQxLCAkMik7CisgICAgICAgICMgRG9uJ3Qgc3Vic3RpdHV0ZSBVbmljb2RlU2V0IHZhcnMKKyAgICAgICAgaWYgKCRkZWYgIX4gL15cWy8pIHsKKyAgICAgICAgICAgIGlmIChleGlzdHMgJFZBUnskdmFyfSkgeworICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRXJyb3I6IER1cGxpY2F0ZSBkZWZpbml0aW9uIG9mICR2YXJcbiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRWQVJ7JHZhcn0gPSAkZGVmOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAjIERvIHZhcmlhYmxlIHN1YnN0aXR1dGlvbnMsIGFuZCBvdXRwdXQgbGluZQorICAgIGZvcmVhY2ggbXkgJHZhciAoa2V5cyAlVkFSKSB7CisgICAgICAgIG15ICRkZWYgPSAkVkFSeyR2YXJ9OworICAgICAgICBzL1wkJHZhclxiLyRkZWYvZzsKKyAgICB9CisgICAgcHJpbnQgT1VUOworfQorCitjbG9zZShPVVQpOworY2xvc2UoSU4pOworCitpZiAoJE4yQSkgeworICAgIGBuYXRpdmUyYXNjaWkgLWVuY29kaW5nIFVURjggJE4yQW9wdGlvbiAkT1VUICRPVVQubmF0aXZlMmFzY2lpYDsKKyAgICB1bmxpbmsgJE9VVDsKKyAgICByZW5hbWUgIiRPVVQubmF0aXZlMmFzY2lpIiwgJE9VVDsKK30KKworX19FTkRfXworOmVuZG9mcGVybApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQXNzZXJ0LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Bc3NlcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDhiMTEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQXNzZXJ0LmphdmEKQEAgLTAsMCArMSwyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLy8gMS4zIGNvbXBhdGliaWxpdHkgbGF5ZXIKK3B1YmxpYyBjbGFzcyBBc3NlcnQgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmYWlsKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGZhaWwoZS50b1N0cmluZygpKTsgLy8gY2FuJ3Qgd3JhcCBleGNlcHRpb25zIGluIGpkayAxLjMKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIGZhaWwoU3RyaW5nIG1zZykgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJmYWlsdXJlICciICsgbXNnICsgIiciKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFzc3J0KGJvb2xlYW4gdmFsKSB7CisgICAgICAgIGlmICghdmFsKSB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJhc3NlcnQgZmFpbGVkIik7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NydChTdHJpbmcgbXNnLCBib29sZWFuIHZhbCkgeworICAgICAgICBpZiAoIXZhbCkgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiYXNzZXJ0ICciICsgbXNnICsgIicgZmFpbGVkIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YjJlODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEKQEAgLTAsMCArMSwzNzkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIDxwPkJpbmFyeSBPcmRlcmVkIENvbXByZXNzaW9uIGZvciBVbmljb2RlPC9wPgorICogCisgKiA8cD5Vc2VycyBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byByZWFkIHRoZSBJQ1UgcGFwZXIgb24gCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb2NzL3BhcGVycy9iaW5hcnlfb3JkZXJlZF9jb21wcmVzc2lvbl9mb3JfdW5pY29kZS5odG1sIj4KKyAqIEJPQ1U8L2E+IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVzZSB0aGlzIGNsYXNzLjwvcD4KKyAqIAorICogPHA+Qk9DVSBpcyB1c2VkIHRvIGNvbXByZXNzIHVuaWNvZGUgdGV4dCBpbnRvIGEgc3RyZWFtIG9mIHVuc2lnbmVkCisgKiBieXRlcy4gIEZvciBtYW55IGtpbmRzIG9mIHRleHQgdGhlIGNvbXByZXNzaW9uIGNvbXBhcmVzIGZhdm9yYWJseQorICogdG8gVVRGLTgsIGFuZCBmb3Igc29tZSBraW5kcyBvZiB0ZXh0IChzdWNoIGFzIENKSykgaXQgZG9lcyBiZXR0ZXIuCisgKiBUaGUgcmVzdWx0aW5nIGJ5dGVzIHdpbGwgY29tcGFyZSBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgb3JpZ2luYWwKKyAqIGNvZGUgcG9pbnRzLiAgVGhlIGJ5dGUgc3RyZWFtIGRvZXMgbm90IGNvbnRhaW4gdGhlIHZhbHVlcyAwLCAxLCBvcgorICogMi48L3A+CisgKiAKKyAqIDxwPk9uZSBleGFtcGxlIG9mIGEgdXNlIG9mIEJPQ1UgaXMgaW4ge0BsaW5rIAorICogY29tLmlibS5pY3UudGV4dC5Db2xsYXRvciNnZXRDb2xsYXRpb25LZXkoU3RyaW5nKX0gZm9yIGEgUnVsZUJhc2VkQ29sbGF0b3Igb2JqZWN0IHdpdGggCisgKiBjb2xsYXRpb24gc3RyZW5ndGggSURFTlRJQ0FMLiBUaGUgcmVzdWx0IENvbGxhdGlvbktleSB3aWxsIGNvbnNpc3Qgb2YgdGhlIAorICogY29sbGF0aW9uIG9yZGVyIG9mIHRoZSBzb3VyY2Ugc3RyaW5nIGZvbGxvd2VkIGJ5IHRoZSBCT0NVIHJlc3VsdCBvZiB0aGUgCisgKiBzb3VyY2Ugc3RyaW5nLiAKKyAqIDwvcD4gCisgKgorICogPHA+VW5saWtlIGEgVVRGIGVuY29kaW5nLCBCT0NVLWNvbXByZXNzZWQgdGV4dCBpcyBub3Qgc3VpdGFibGUgZm9yCisgKiByYW5kb20gYWNjZXNzLjwvcD4KKyAqIAorICogPHA+TWV0aG9kOiBTbG9wZSBEZXRlY3Rpb248YnI+IFJlbWVtYmVyIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50CisgKiAoaW5pdGlhbCAwKS4gIEZvciBlYWNoIGNvZGUgcG9pbnQgaW4gdGhlIHN0cmluZywgZW5jb2RlIHRoZQorICogZGlmZmVyZW5jZSB3aXRoIHRoZSBwcmV2aW91cyBvbmUuICBTaW1pbGFyIHRvIGEgVVRGLCB0aGUgbGVuZ3RoIG9mCisgKiB0aGUgYnl0ZSBzZXF1ZW5jZSBpcyBlbmNvZGVkIGluIHRoZSBsZWFkIGJ5dGVzLiAgVW5saWtlIGEgVVRGLCB0aGUKKyAqIHRyYWlsIGJ5dGUgdmFsdWVzIG1heSBvdmVybGFwIHdpdGggbGVhZC9zaW5nbGUgYnl0ZSB2YWx1ZXMuICBUaGUKKyAqIHNpZ25lZG5lc3Mgb2YgdGhlIGRpZmZlcmVuY2UgbXVzdCBiZSBlbmNvZGVkIGFzIHRoZSBtb3N0CisgKiBzaWduaWZpY2FudCBwYXJ0LjwvcD4KKyAqCisgKiA8cD5XZSBlbmNvZGUgZGlmZmVyZW5jZXMgd2l0aCBmZXcgYnl0ZXMgaWYgdGhlaXIgYWJzb2x1dGUgdmFsdWVzCisgKiBhcmUgc21hbGwuICBGb3IgY29ycmVjdCBvcmRlcmluZywgd2UgbXVzdCB0cmVhdCB0aGUgZW50aXJlIHZhbHVlCisgKiByYW5nZSAtMTBmZmZmLi4rMTBmZmZmIGluIGFzY2VuZGluZyBvcmRlciwgd2hpY2ggZm9yYmlkcyBlbmNvZGluZworICogdGhlIHNpZ24gYW5kIHRoZSBhYnNvbHV0ZSB2YWx1ZSBzZXBhcmF0ZWx5LiBJbnN0ZWFkLCB3ZSBzcGxpdCB0aGUKKyAqIGxlYWQgYnl0ZSByYW5nZSBpbiB0aGUgbWlkZGxlIGFuZCBlbmNvZGUgbm9uLW5lZ2F0aXZlIHZhbHVlcyBnb2luZworICogdXAgYW5kIG5lZ2F0aXZlIHZhbHVlcyBnb2luZyBkb3duLjwvcD4KKyAqCisgKiA8cD5Gb3IgdmVyeSBzbWFsbCBhYnNvbHV0ZSB2YWx1ZXMsIHRoZSBkaWZmZXJlbmNlIGlzIGFkZGVkIHRvIGEKKyAqIG1pZGRsZSBieXRlIHZhbHVlIGZvciBzaW5nbGUtYnl0ZSBlbmNvZGVkIGRpZmZlcmVuY2VzLiAgRm9yCisgKiBzb21ld2hhdCBsYXJnZXIgYWJzb2x1dGUgdmFsdWVzLCB0aGUgZGlmZmVyZW5jZSBpcyBkaXZpZGVkIGJ5IHRoZQorICogbnVtYmVyIG9mIGJ5dGUgdmFsdWVzIGF2YWlsYWJsZSwgdGhlIG1vZHVsbyBpcyB1c2VkIGZvciBvbmUgdHJhaWwKKyAqIGJ5dGUsIGFuZCB0aGUgcmVtYWluZGVyIGlzIGFkZGVkIHRvIGEgbGVhZCBieXRlIGF2b2lkaW5nIHRoZQorICogc2luZ2xlLWJ5dGUgcmFuZ2UuICBGb3IgbGFyZ2UgYWJzb2x1dGUgdmFsdWVzLCB0aGUgZGlmZmVyZW5jZSBpcworICogc2ltaWxhcmx5IGVuY29kZWQgaW4gdGhyZWUgYnl0ZXMuIChTeW4gV2VlLCBJIG5lZWQgZXhhbXBsZXMKKyAqIGhlcmUuKTwvcD4KKyAqCisgKiA8cD5CT0NVIGRvZXMgbm90IHVzZSBieXRlIHZhbHVlcyAwLCAxLCBvciAyLCBidXQgdXNlcyBhbGwgb3RoZXIKKyAqIGJ5dGUgdmFsdWVzIGZvciBsZWFkIGFuZCBzaW5nbGUgYnl0ZXMsIHNvIHRoYXQgdGhlIG1pZGRsZSByYW5nZSBvZgorICogc2luZ2xlIGJ5dGVzIGlzIGFzIGxhcmdlIGFzIHBvc3NpYmxlLjwvcD4KKyAqCisgKiA8cD5Ob3RlIHRoYXQgdGhlIGxlYWQgYnl0ZSByYW5nZXMgb3ZlcmxhcCBzb21lLCBidXQgdGhhdCB0aGUKKyAqIHNlcXVlbmNlcyBhcyBhIHdob2xlIGFyZSB3ZWxsIG9yZGVyZWQuIEkuZS4sIGV2ZW4gaWYgdGhlIGxlYWQgYnl0ZQorICogaXMgdGhlIHNhbWUgZm9yIHNlcXVlbmNlcyBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGhlIHRyYWlsIGJ5dGVzCisgKiBlc3RhYmxpc2ggY29ycmVjdCBvcmRlci4gIEl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGVuY29kZSBzbGlnaHRseQorICogbGFyZ2VyIHJhbmdlcyBmb3IgZWFjaCBsZW5ndGggKD4xKSBieSBzdWJ0cmFjdGluZyB0aGUgbG93ZXIgYm91bmQKKyAqIG9mIHRoZSByYW5nZS4gSG93ZXZlciwgdGhhdCB3b3VsZCBhbHNvIHNsb3cgZG93biB0aGUgY2FsY3VsYXRpb24uCisgKiAoU3luIFdlZSwgbmVlZCBhbiBleGFtcGxlKS48L3A+CisgKgorICogPHA+Rm9yIHRoZSBhY3R1YWwgc3RyaW5nIGVuY29kaW5nLCBhbiBvcHRpbWl6YXRpb24gbW92ZXMgdGhlCisgKiBwcmV2aW91cyBjb2RlIHBvaW50IHZhbHVlIHRvIHRoZSBtaWRkbGUgb2YgaXRzIFVuaWNvZGUgc2NyaXB0IGJsb2NrCisgKiB0byBtaW5pbWl6ZSB0aGUgZGlmZmVyZW5jZXMgaW4gc2FtZS1zY3JpcHQgdGV4dCBydW5zLiAgKFN5biBXZWUsCisgKiBuZWVkIGFuIGV4YW1wbGUuKTwvcD4KKyAqCisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHNpbmNlIHJlbGVhc2UgMi4yLCBNYXkgM3JkIDIwMDIKKyAqIEBkcmFmdCAyLjIgCisgKi8KK3B1YmxpYyBjbGFzcyBCT0NVIAoreyAgICAgIAorICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxwPkVuY29kZSB0aGUgY29kZSBwb2ludHMgb2YgYSBzdHJpbmcgYXMgYSBzZXF1ZW5jZSBvZiBieXRlcywKKyAgICAgKiBwcmVzZXJ2aW5nIGxleGljYWwgb3JkZXIuPC9wPgorICAgICAqIDxwPlRoZSBtaW5pbXVtIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUgY29tcHJlc3Npb24gY2FuIGJlIAorICAgICAqIHByZWZsaWdodGVkIGJ5IGdldENvbXByZXNzaW9uTGVuZ3RoKFN0cmluZykuPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzb3VyY2UKKyAgICAgKiBAcGFyYW0gYnVmZmVyIG91dHB1dCBidWZmZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHN0YXJ0IHdyaXRpbmcgdG8KKyAgICAgKiBAcmV0dXJuIGVuZCBvZmZzZXQgd2hlcmUgdGhlIHdyaXRpbmcgc3RvcHBlZAorICAgICAqIEBzZWUgI2dldENvbXByZXNzaW9uTGVuZ3RoKFN0cmluZykKKyAgICAgKiBAZXhjZXB0aW9uIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgc2l6ZSBvZiBidWZmZXIgaXMgCisgICAgICogICAgICAgICAgICB0b28gc21hbGwgZm9yIHRoZSBvdXRwdXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcHJlc3MoU3RyaW5nIHNvdXJjZSwgYnl0ZSBidWZmZXJbXSwgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICBpbnQgcHJldiA9IDA7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzb3VyY2UpOworICAgICAgICBpbnQgY29kZXBvaW50ID0gaXRlcmF0b3IubmV4dENvZGVQb2ludCgpOworICAgICAgICB3aGlsZSAoY29kZXBvaW50ICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpZiAocHJldiA8IDB4NGUwMCB8fCBwcmV2ID49IDB4YTAwMCkgeworICAgICAgICAgICAgICAgIHByZXYgPSAocHJldiAmIH4weDdmKSAtIFNMT1BFX1JFQUNIX05FR18xXzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmloYW4gVSs0ZTAwLi5VKzlmYTU6CisgICAgICAgICAgICAgICAgLy8gZG91YmxlLWJ5dGVzIGRvd24gZnJvbSB0aGUgdXBwZXIgZW5kCisgICAgICAgICAgICAgICAgcHJldiA9IDB4OWZmZiAtIFNMT1BFX1JFQUNIX1BPU18yXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBvZmZzZXQgPSB3cml0ZURpZmYoY29kZXBvaW50IC0gcHJldiwgYnVmZmVyLCBvZmZzZXQpOworICAgICAgICAgICAgcHJldiA9IGNvZGVwb2ludDsKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IGl0ZXJhdG9yLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2Zmc2V0OworICAgIH0KKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mICBieXRlcyB0aGF0IGNvbXByZXNzKCkgd291bGQgd3JpdGUuCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIEJPQ1UgcmVzdWx0IAorICAgICAqIEBzZWUgI2NvbXByZXNzKFN0cmluZywgYnl0ZVtdLCBpbnQpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29tcHJlc3Npb25MZW5ndGgoU3RyaW5nIHNvdXJjZSkgCisgICAgeworICAgICAgICBpbnQgcHJldiA9IDA7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSAgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNvdXJjZSk7CisgICAgICAgIGludCBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgIHdoaWxlIChjb2RlcG9pbnQgIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGlmIChwcmV2IDwgMHg0ZTAwIHx8IHByZXYgPj0gMHhhMDAwKSB7CisgICAgICAgICAgICAgICAgcHJldiA9IChwcmV2ICYgfjB4N2YpIC0gU0xPUEVfUkVBQ0hfTkVHXzFfOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFVuaWhhbiBVKzRlMDAuLlUrOWZhNToKKyAgICAgICAgICAgICAgICAvLyBkb3VibGUtYnl0ZXMgZG93biBmcm9tIHRoZSB1cHBlciBlbmQKKyAgICAgICAgICAgICAgICBwcmV2ID0gMHg5ZmZmIC0gU0xPUEVfUkVBQ0hfUE9TXzJfOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IGl0ZXJhdG9yLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIHJlc3VsdCArPSBsZW5ndGhPZkRpZmYoY29kZXBvaW50IC0gcHJldik7CisgICAgICAgICAgICBwcmV2ID0gY29kZXBvaW50OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gcHVibGljIHNldHRlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLy8gcHVibGljIGdldHRlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgCisgICAgLy8gcHVibGljIG90aGVyIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKiAKKyAgICAgKiBEbyBub3QgdXNlIGJ5dGUgdmFsdWVzIDAsIDEsIDIgYmVjYXVzZSB0aGV5IGFyZSBzZXBhcmF0b3JzIGluIHNvcnQga2V5cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfTUlOXyA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX01BWF8gPSAweGZmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9NSURETEVfID0gMHg4MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfVEFJTF9DT1VOVF8gPSBTTE9QRV9NQVhfIC0gU0xPUEVfTUlOXyArIDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX01BWF9CWVRFU18gPSA0OworCisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGxlYWQgYnl0ZXM6CisgICAgICogMSAgICAgICAgbWlkZGxlIGJ5dGUgZm9yIDAKKyAgICAgKiAyKjgwPTE2MCBzaW5nbGUgYnl0ZXMgZm9yICE9MAorICAgICAqIDIqNDI9ODQgIGZvciBkb3VibGUtYnl0ZSB2YWx1ZXMKKyAgICAgKiAyKjM9NiAgICBmb3IgMy1ieXRlIHZhbHVlcworICAgICAqIDIqMT0yICAgIGZvciA0LWJ5dGUgdmFsdWVzCisgICAgICoKKyAgICAgKiBUaGUgc3VtIG11c3QgYmUgPD1TTE9QRV9UQUlMX0NPVU5ULgorICAgICAqCisgICAgICogV2h5IHRoZXNlIG51bWJlcnM/CisgICAgICogLSBUaGVyZSBzaG91bGQgYmUgPj0xMjggc2luZ2xlLWJ5dGUgdmFsdWVzIHRvIGNvdmVyIDEyOC1ibG9ja3MKKyAgICAgKiAgIHdpdGggc21hbGwgc2NyaXB0cy4KKyAgICAgKiAtIFRoZXJlIHNob3VsZCBiZSA+PTIwOTAyIHNpbmdsZS9kb3VibGUtYnl0ZSB2YWx1ZXMgdG8gY292ZXIgVW5paGFuLgorICAgICAqIC0gSXQgaGVscHMgQ0pLIEV4dGVuc2lvbiBCIHNvbWUgaWYgdGhlcmUgYXJlIDMtYnl0ZSB2YWx1ZXMgdGhhdCBjb3ZlcgorICAgICAqICAgdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlbSBhbmQgVW5paGFuLgorICAgICAqICAgVGhpcyBhbHNvIGhlbHBzIHRvIGp1bXAgYW1vbmcgZGlzdGFudCBwbGFjZXMgaW4gdGhlIEJNUC4KKyAgICAgKiAtIEZvdXItYnl0ZSB2YWx1ZXMgYXJlIG5lY2Vzc2FyeSB0byBjb3ZlciB0aGUgcmVzdCBvZiBVbmljb2RlLgorICAgICAqCisgICAgICogU3ltbWV0cmljYWwgbGVhZCBieXRlIGNvdW50cyBhcmUgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIFdpdGggYW4gZXF1YWwgZGlzdHJpYnV0aW9uIG9mIGV2ZW4gYW5kIG9kZCBkaWZmZXJlbmNlcyB0aGVyZSBpcyBhbHNvCisgICAgICogbm8gYWR2YW50YWdlIHRvIGFzeW1tZXRyaWNhbCBsZWFkIGJ5dGUgY291bnRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9TSU5HTEVfID0gODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX0xFQURfMl8gPSA0MjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfTEVBRF8zXyA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX0xFQURfNF8gPSAxOworCisgICAgLyoqIAorICAgICAqIFRoZSBkaWZmZXJlbmNlIHZhbHVlIHJhbmdlIGZvciBzaW5nbGUtYnl0ZXJzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9QT1NfMV8gPSBTTE9QRV9TSU5HTEVfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9ORUdfMV8gPSAoLVNMT1BFX1NJTkdMRV8pOworCisgICAgLyoqIAorICAgICAqIFRoZSBkaWZmZXJlbmNlIHZhbHVlIHJhbmdlIGZvciBkb3VibGUtYnl0ZXJzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9QT1NfMl8gPSAKKyAgICAgICAgU0xPUEVfTEVBRF8yXyAqIFNMT1BFX1RBSUxfQ09VTlRfICsgU0xPUEVfTEVBRF8yXyAtIDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1JFQUNIX05FR18yXyA9ICgtU0xPUEVfUkVBQ0hfUE9TXzJfIC0gMSk7CisKKyAgICAvKiogCisgICAgICogVGhlIGRpZmZlcmVuY2UgdmFsdWUgcmFuZ2UgZm9yIDMtYnl0ZXJzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9QT1NfM18gPSBTTE9QRV9MRUFEXzNfIAorICAgICAgICAqIFNMT1BFX1RBSUxfQ09VTlRfIAorICAgICAgICAqIFNMT1BFX1RBSUxfQ09VTlRfIAorICAgICAgICArIChTTE9QRV9MRUFEXzNfIC0gMSkKKyAgICAgICAgKiBTTE9QRV9UQUlMX0NPVU5UXyArCisgICAgICAgIChTTE9QRV9UQUlMX0NPVU5UXyAtIDEpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9ORUdfM18gPSAoLVNMT1BFX1JFQUNIX1BPU18zXyAtIDEpOworCisgICAgLyoqIAorICAgICAqIFRoZSBsZWFkIGJ5dGUgc3RhcnQgdmFsdWVzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9TVEFSVF9QT1NfMl8gPSBTTE9QRV9NSURETEVfIAorICAgICAgICArIFNMT1BFX1NJTkdMRV8gKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9TVEFSVF9QT1NfM18gPSBTTE9QRV9TVEFSVF9QT1NfMl8gCisgICAgICAgICsgU0xPUEVfTEVBRF8yXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU1RBUlRfTkVHXzJfID0gU0xPUEVfTUlERExFXyArIAorICAgICAgICBTTE9QRV9SRUFDSF9ORUdfMV87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1NUQVJUX05FR18zXyA9IFNMT1BFX1NUQVJUX05FR18yXworICAgICAgICAtIFNMT1BFX0xFQURfMl87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIHByaXZhdGUgdG8gcHJldmVudCBpbml0aWFsaXphdGlvbgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIEJPQ1UoKQorICAgIHsKKyAgICB9ICAgICAgICAgICAgCisgICAgLy8vQ0xPVkVSOk9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIGRpdmlzaW9uIGFuZCBtb2R1bG8gd2l0aCBuZWdhdGl2ZSBudW1lcmF0b3JzCisgICAgICogeWllbGRzIG5lZ2F0aXZlIG1vZHVsbyByZXN1bHRzIGFuZCBxdW90aWVudHMgdGhhdCBhcmUgb25lIG1vcmUgdGhhbgorICAgICAqIHdoYXQgd2UgbmVlZCBoZXJlLgorICAgICAqIEBwYXJhbSBudW1iZXIgd2hpY2ggb3BlcmF0aW9ucyBhcmUgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIGZhY3RvciB0aGUgZmFjdG9yIHRvIHVzZSBmb3IgZGl2aXNpb24KKyAgICAgKiBAcmV0dXJuIChyZXN1bHQgb2YgZGl2aXNpb24pIDw8IDMyIHwgbW9kdWxvIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZ2V0TmVnRGl2TW9kKGludCBudW1iZXIsIGludCBmYWN0b3IpIAorICAgIHsKKyAgICAgICAgaW50IG1vZHVsbyA9IG51bWJlciAlIGZhY3RvcjsgCisgICAgICAgIGxvbmcgcmVzdWx0ID0gbnVtYmVyIC8gZmFjdG9yOworICAgICAgICBpZiAobW9kdWxvIDwgMCkgeyAKKyAgICAgICAgICAgIC0tIHJlc3VsdDsgCisgICAgICAgICAgICBtb2R1bG8gKz0gZmFjdG9yOyAKKyAgICAgICAgfSAKKyAgICAgICAgcmV0dXJuIChyZXN1bHQgPDwgMzIpIHwgbW9kdWxvOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRW5jb2RlIG9uZSBkaWZmZXJlbmNlIHZhbHVlIC0weDEwZmZmZi4uKzB4MTBmZmZmIGluIDEuLjMgYnl0ZXMsCisgICAgICogcHJlc2VydmluZyBsZXhpY2FsIG9yZGVyCisgICAgICogQHBhcmFtIGRpZmYKKyAgICAgKiBAcGFyYW0gYnVmZmVyIGJ5dGUgYnVmZmVyIHRvIGFwcGVuZCB0bworICAgICAqIEBwYXJhbSBvZmZzZXQgdG8gdGhlIGJ5dGUgYnVmZmVyIHRvIHN0YXJ0IGFwcGVuZGluZworICAgICAqIEByZXR1cm4gZW5kIG9mZnNldCB3aGVyZSB0aGUgYXBwZW5kaW5nIHN0b3BzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHdyaXRlRGlmZihpbnQgZGlmZiwgYnl0ZSBidWZmZXJbXSwgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfMV8pIHsKKyAgICAgICAgICAgIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18xXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKytdID0gKGJ5dGUpKFNMT1BFX01JRERMRV8gKyBkaWZmKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18yXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKytdID0gKGJ5dGUpKFNMT1BFX1NUQVJUX1BPU18yXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmIC8gU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9NSU5fICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXykpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpZmYgPD0gU0xPUEVfUkVBQ0hfUE9TXzNfKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDJdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXykpOworICAgICAgICAgICAgICAgIGRpZmYgLz0gU0xPUEVfVEFJTF9DT1VOVF87CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDFdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXykpOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpKFNMT1BFX1NUQVJUX1BPU18zXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmIC8gU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgM10gPSAoYnl0ZSkoU0xPUEVfTUlOXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pOworICAgICAgICAgICAgICAgIGRpZmYgLz0gU0xPUEVfVEFJTF9DT1VOVF87CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldF0gPSAoYnl0ZSkoU0xPUEVfTUlOXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgZGlmZiAvPSBTTE9QRV9UQUlMX0NPVU5UXzsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgMV0gPSAoYnl0ZSkoU0xPUEVfTUlOXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpU0xPUEVfTUFYXzsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsb25nIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgIGludCBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzJfKSB7CisgICAgICAgICAgICAgICAgZGlmZiA9IChpbnQpKGRpdmlzaW9uID4+IDMyKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9TVEFSVF9ORUdfMl8gKyBkaWZmKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18zXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgICAgIGRpZmYgPSAoaW50KShkaXZpc2lvbiA+PiAzMik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDFdID0gKGJ5dGUpKFNMT1BFX01JTl8gKyBtb2R1bG8pOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpKFNMT1BFX1NUQVJUX05FR18zXyArIGRpZmYpOworICAgICAgICAgICAgICAgIG9mZnNldCArPSAzOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAzXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgICAgIGRpZmYgPSAoaW50KShkaXZpc2lvbiA+PiAzMik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDJdID0gKGJ5dGUpKFNMT1BFX01JTl8gKyBtb2R1bG8pOworICAgICAgICAgICAgICAgIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IFNMT1BFX01JTl87CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEhvdyBtYW55IGJ5dGVzIHdvdWxkIHdyaXRlRGlmZigpIHdyaXRlPyAKKyAgICAgKiBAcGFyYW0gZGlmZgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBsZW5ndGhPZkRpZmYoaW50IGRpZmYpIAorICAgIHsKKyAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzFfKSB7CisgICAgICAgICAgICBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMV8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18yXykgeworICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfM18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfMl8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18zXykgeworICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQnl0ZUJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQnl0ZUJ1ZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNzQxMzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9CeXRlQnVmZmVyLmphdmEKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyBkbGYxMyBpbnRlcm5hbCAxLjMgY29tcGF0aWJpbGl0eSBvbmx5CisKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyNwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisvLyMjCisvLyMjLyoqCisvLyMjICogQGludGVybmFsCisvLyMjICovCisvLyMjcHVibGljIGZpbmFsIGNsYXNzIEJ5dGVCdWZmZXIgeworLy8jIyAgICBwcml2YXRlIGJ5dGVbXSBkYXRhOworLy8jIworLy8jIyAgICBwcml2YXRlIGludCBwb3M7CisvLyMjCisvLyMjICAgIHByaXZhdGUgaW50IGxpbWl0OworLy8jIworLy8jIyAgICBwcml2YXRlIEJ5dGVCdWZmZXIoKSB7CisvLyMjICAgIH0KKy8vIyMKKy8vIyMgICAgcHVibGljIGJ5dGVbXSBhcnJheSgpIHsKKy8vIyMgICAgICAgIGJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVtsaW1pdF07CisvLyMjICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKKy8vIyMgICAgICAgICAgICByZXN1bHRbaV0gPSBkYXRhW2ldOworLy8jIyAgICAgICAgfQorLy8jIyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKy8vIyMgICAgfQorLy8jIworLy8jIyAgICBwdWJsaWMgc3RhdGljIEJ5dGVCdWZmZXIgd3JhcChieXRlW10gZGF0YSkgeworLy8jIyAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKKy8vIyMgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKy8vIyMgICAgICAgIEJ5dGVCdWZmZXIgcmVzdWx0ID0gbmV3IEJ5dGVCdWZmZXIoKTsKKy8vIyMgICAgICAgIHJlc3VsdC5kYXRhID0gZGF0YTsKKy8vIyMgICAgICAgIHJlc3VsdC5wb3MgPSAwOworLy8jIyAgICAgICAgcmVzdWx0LmxpbWl0ID0gZGF0YS5sZW5ndGg7CisvLyMjICAgICAgICByZXR1cm4gcmVzdWx0OworLy8jIyAgICB9CisvLyMjCisvLyMjICAgIHB1YmxpYyBpbnQgbGltaXQoKSB7CisvLyMjICAgICAgICByZXR1cm4gbGltaXQ7CisvLyMjICAgIH0KKy8vIyMKKy8vIyMgICAgcHVibGljIGludCByZW1haW5pbmcoKSB7CisvLyMjICAgICAgICByZXR1cm4gbGltaXQgLSBwb3M7CisvLyMjICAgIH0KKy8vIyMKKy8vIyMgICAgcHVibGljIGJ5dGUgZ2V0KCkgeworLy8jIyAgICAgICAgaWYgKHBvcyA8IGxpbWl0KQorLy8jIyAgICAgICAgICAgIHJldHVybiBkYXRhW3BvcysrXTsKKy8vIyMgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisvLyMjICAgIH0KKy8vIyMKKy8vIyMgICAgcHVibGljIHZvaWQgZ2V0KGJ5dGVbXSBkc3QsIGludCBvZmZzZXQsIGludCBsZW5ndGgpIHsKKy8vIyMgICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCArIGxlbmd0aCA+IGRzdC5sZW5ndGggfHwgcG9zICsgbGVuZ3RoID4gbGltaXQpIHsKKy8vIyMgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworLy8jIyAgICAgICAgfQorLy8jIyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworLy8jIyAgICAgICAgICAgIGRzdFtvZmZzZXQrK10gPSBkYXRhW3BvcysrXTsKKy8vIyMgICAgICAgIH0KKy8vIyMgICAgfQorLy8jIyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJ5dGVCdWZmZXIgYWxsb2NhdGUoaW50IHNpemUpeworLy8jIyAgICAgICAgQnl0ZUJ1ZmZlciByZXQgPSBuZXcgQnl0ZUJ1ZmZlcigpOworLy8jIyAgICAgICAgcmV0LmRhdGEgPSBuZXcgYnl0ZVtzaXplXTsKKy8vIyMgICAgICAgIHJldHVybiByZXQ7CisvLyMjICAgIH0KKy8vIyN9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJBc3Ryb25vbWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckFzdHJvbm9tZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjNmMmUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJBc3Ryb25vbWVyLmphdmEKQEAgLTAsMCArMSwxNjY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBpcyBhIGNsYXNzIHRoYXQgY2FuIHBlcmZvcm0gdGhlIGNhbGN1bGF0aW9ucyB0bworICogZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgb2YgdGhlIHN1biBhbmQgbW9vbiwgdGhlIHRpbWUgb2Ygc3VucmlzZSBhbmQKKyAqIHN1bnNldCwgYW5kIG90aGVyIGFzdHJvbm9teS1yZWxhdGVkIGRhdGEuICBUaGUgY2FsY3VsYXRpb25zIGl0IHBlcmZvcm1zCisgKiBhcmUgaW4gc29tZSBjYXNlcyBxdWl0ZSBjb21wbGljYXRlZCwgYW5kIHRoaXMgdXRpbGl0eSBjbGFzcyBzYXZlcyB5b3UKKyAqIHRoZSB0cm91YmxlIG9mIHdvcnJ5aW5nIGFib3V0IHRoZW0uCisgKiA8cD4KKyAqIFRoZSBtZWFzdXJlbWVudCBvZiB0aW1lIGlzIGEgdmVyeSBpbXBvcnRhbnQgcGFydCBvZiBhc3Ryb25vbXkuICBCZWNhdXNlCisgKiBhc3Ryb25vbWljYWwgYm9kaWVzIGFyZSBjb25zdGFudGx5IGluIG1vdGlvbiwgb2JzZXJ2YXRpb25zIGFyZSBvbmx5IHZhbGlkCisgKiBhdCBhIGdpdmVuIG1vbWVudCBpbiB0aW1lLiAgQWNjb3JkaW5nbHksIGVhY2ggPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPgorICogb2JqZWN0IGhhcyBhIDxjb2RlPnRpbWU8L2NvZGU+IHByb3BlcnR5IHRoYXQgZGV0ZXJtaW5lcyB0aGUgZGF0ZQorICogYW5kIHRpbWUgZm9yIHdoaWNoIGl0cyBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZC4gIFlvdSBjYW4gc2V0IGFuZAorICogcmV0cmlldmUgdGhpcyBwcm9wZXJ0eSB3aXRoIHtAbGluayAjc2V0RGF0ZSBzZXREYXRlfSwge0BsaW5rICNnZXREYXRlIGdldERhdGV9CisgKiBhbmQgcmVsYXRlZCBtZXRob2RzLgorICogPHA+CisgKiBBbG1vc3QgYWxsIG9mIHRoZSBjYWxjdWxhdGlvbnMgcGVyZm9ybWVkIGJ5IHRoaXMgY2xhc3MsIG9yIGJ5IGFueQorICogYXN0cm9ub21lciwgYXJlIGFwcHJveGltYXRpb25zIHRvIHZhcmlvdXMgZGVncmVlcyBvZiBhY2N1cmFjeS4gIFRoZQorICogY2FsY3VsYXRpb25zIGluIHRoaXMgY2xhc3MgYXJlIG1vc3RseSBtb2RlbGxlZCBhZnRlciB0aG9zZSBkZXNjcmliZWQKKyAqIGluIHRoZSBib29rCisgKiA8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvSVNCTj0wNTIxMzU2OTk3IiB0YXJnZXQ9Il90b3AiPgorICogUHJhY3RpY2FsIEFzdHJvbm9teSBXaXRoIFlvdXIgQ2FsY3VsYXRvcjwvYT4sIGJ5IFBldGVyIEouCisgKiBEdWZmZXR0LVNtaXRoLCBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcywgMTk5MC4gIFRoaXMgaXMgYW4gZXhjZWxsZW50CisgKiBib29rLCBhbmQgaWYgeW91IHdhbnQgYSBncmVhdGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIGNhbGN1bGF0aW9ucworICogYXJlIHBlcmZvcm1lZCBpdCBhIHZlcnkgZ29vZCwgcmVhZGFibGUgc3RhcnRpbmcgcG9pbnQuCisgKiA8cD4KKyAqIDxzdHJvbmc+V0FSTklORzo8L3N0cm9uZz4gVGhpcyBjbGFzcyBpcyB2ZXJ5IGVhcmx5IGluIGl0cyBkZXZlbG9wbWVudCwgYW5kCisgKiBpdCBpcyBoaWdobHkgbGlrZWx5IHRoYXQgaXRzIEFQSSB3aWxsIGNoYW5nZSB0byBzb21lIGRlZ3JlZSBpbiB0aGUgZnV0dXJlLgorICogQXQgdGhlIG1vbWVudCwgaXQgYmFzaWNhbGx5IGRvZXMganVzdCBlbm91Z2ggdG8gc3VwcG9ydCB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXJ9CisgKiBhbmQge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyfS4KKyAqCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lcgorICogQGF1dGhvciBBbGFuIExpdQorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckFzdHJvbm9tZXIgeworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzdHJvbm9taWNhbCBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2Ygc3RhbmRhcmQgaG91cnMgaW4gb25lIHNpZGVyZWFsIGRheS4KKyAgICAgKiBBcHByb3hpbWF0ZWx5IDI0LjkzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgZG91YmxlIFNJREVSRUFMX0RBWSA9IDIzLjkzNDQ2OTYwMDI3OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2Ygc2lkZXJlYWwgaG91cnMgaW4gb25lIG1lYW4gc29sYXIgZGF5LgorICAgICAqIEFwcHJveGltYXRlbHkgMjQuMDcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU09MQVJfREFZID0gIDI0LjA2NTcwOTgxNjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2Ygc29sYXIgZGF5cyBmcm9tIG9uZSBuZXcgbW9vbiB0byB0aGUgbmV4dC4gIFRoaXMgaXMgdGhlIHRpbWUKKyAgICAgKiBpdCB0YWtlcyBmb3IgdGhlIG1vb24gdG8gcmV0dXJuIHRoZSBzYW1lIGVjbGlwdGljIGxvbmdpdHVkZSBhcyB0aGUgc3VuLgorICAgICAqIEl0IGlzIGxvbmdlciB0aGFuIHRoZSBzaWRlcmVhbCBtb250aCBiZWNhdXNlIHRoZSBzdW4ncyBsb25naXR1ZGUgaW5jcmVhc2VzCisgICAgICogZHVyaW5nIHRoZSB5ZWFyIGR1ZSB0byB0aGUgcmV2b2x1dGlvbiBvZiB0aGUgZWFydGggYXJvdW5kIHRoZSBzdW4uCisgICAgICogQXBwcm94aW1hdGVseSAyOS41My4KKyAgICAgKgorICAgICAqIEBzZWUgI1NJREVSRUFMX01PTlRICisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU1lOT0RJQ19NT05USCA9IDI5LjUzMDU4ODg1MzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2YgZGF5cyBpdCB0YWtlcworICAgICAqIGZvciB0aGUgbW9vbiB0byByZXR1cm4gdG8gdGhlIHNhbWUgZWNsaXB0aWMgbG9uZ2l0dWRlIHJlbGF0aXZlIHRvIHRoZQorICAgICAqIHN0ZWxsYXIgYmFja2dyb3VuZC4gIFRoaXMgaXMgcmVmZXJyZWQgdG8gYXMgdGhlIHNpZGVyZWFsIG1vbnRoLgorICAgICAqIEl0IGlzIHNob3J0ZXIgdGhhbiB0aGUgc3lub2RpYyBtb250aCBkdWUgdG8KKyAgICAgKiB0aGUgcmV2b2x1dGlvbiBvZiB0aGUgZWFydGggYXJvdW5kIHRoZSBzdW4uCisgICAgICogQXBwcm94aW1hdGVseSAyNy4zMi4KKyAgICAgKgorICAgICAqIEBzZWUgI1NZTk9ESUNfTU9OVEgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBTSURFUkVBTF9NT05USCA9IDI3LjMyMTY2OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBhdmVyYWdlIG51bWJlciBudW1iZXIgb2YgZGF5cyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgdmVybmFsIGVxdWlub3hlcy4KKyAgICAgKiBEdWUgdG8gdGhlIHByZWNlc3Npb24gb2YgdGhlIGVhcnRoJ3MKKyAgICAgKiBheGlzLCB0aGlzIGlzIG5vdCBwcmVjaXNlbHkgdGhlIHNhbWUgYXMgdGhlIHNpZGVyZWFsIHllYXIuCisgICAgICogQXBwcm94aW1hdGVseSAzNjUuMjQKKyAgICAgKgorICAgICAqIEBzZWUgI1NJREVSRUFMX1lFQVIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBUUk9QSUNBTF9ZRUFSID0gMzY1LjI0MjE5MTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2YgZGF5cyBpdCB0YWtlcworICAgICAqIGZvciB0aGUgc3VuIHRvIHJldHVybiB0byB0aGUgc2FtZSBwb3NpdGlvbiBhZ2FpbnN0IHRoZSBmaXhlZCBzdGVsbGFyCisgICAgICogYmFja2dyb3VuZC4gIFRoaXMgaXMgdGhlIGR1cmF0aW9uIG9mIG9uZSBvcmJpdCBvZiB0aGUgZWFydGggYWJvdXQgdGhlIHN1bgorICAgICAqIGFzIGl0IHdvdWxkIGFwcGVhciB0byBhbiBvdXRzaWRlIG9ic2VydmVyLgorICAgICAqIER1ZSB0byB0aGUgcHJlY2Vzc2lvbiBvZiB0aGUgZWFydGgncworICAgICAqIGF4aXMsIHRoaXMgaXMgbm90IHByZWNpc2VseSB0aGUgc2FtZSBhcyB0aGUgdHJvcGljYWwgeWVhci4KKyAgICAgKiBBcHByb3hpbWF0ZWx5IDM2NS4yNS4KKyAgICAgKgorICAgICAqIEBzZWUgI1RST1BJQ0FMX1lFQVIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBTSURFUkVBTF9ZRUFSID0gMzY1LjI1NjM2OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGltZS1yZWxhdGVkIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqIAorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBzZWNvbmQuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBTRUNPTkRfTVMgPSAxMDAwOworCisgICAgLyoqIAorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBtaW51dGUuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBNSU5VVEVfTVMgPSA2MCpTRUNPTkRfTVM7CisKKyAgICAvKiogCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGhvdXIuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBIT1VSX01TICAgPSA2MCpNSU5VVEVfTVM7CisKKyAgICAvKiogCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGRheS4gCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIERBWV9NUyAgICA9IDI0KkhPVVJfTVM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhcnQgb2YgdGhlIGp1bGlhbiBkYXkgbnVtYmVyaW5nIHNjaGVtZSB1c2VkIGJ5IGFzdHJvbm9tZXJzLCB3aGljaAorICAgICAqIGlzIDEvMS80NzEzIEJDIChKdWxpYW4pLCAxMjowMCBHTVQuICBUaGlzIGlzIGdpdmVuIGFzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzCisgICAgICogc2luY2UgMS8xLzE5NzAgQUQgKEdyZWdvcmlhbiksIGEgbmVnYXRpdmUgbnVtYmVyLgorICAgICAqIE5vdGUgdGhhdCBqdWxpYW4gZGF5IG51bWJlcnMgYW5kCisgICAgICogdGhlIEp1bGlhbiBjYWxlbmRhciBhcmUgPGVtPm5vdDwvZW0+IHRoZSBzYW1lIHRoaW5nLiAgQWxzbyBub3RlIHRoYXQKKyAgICAgKiBqdWxpYW4gZGF5cyBzdGFydCBhdCA8ZW0+bm9vbjwvZW0+LCBub3QgbWlkbmlnaHQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIEpVTElBTl9FUE9DSF9NUyA9IC0yMTA4NjY3NjAwMDAwMDBMOworICAgIAorLy8gIHN0YXRpYyB7CisvLyAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworLy8gICAgICBjYWwuY2xlYXIoKTsKKy8vICAgICAgY2FsLnNldChjYWwuRVJBLCAwKTsKKy8vICAgICAgY2FsLnNldChjYWwuWUVBUiwgNDcxMyk7CisvLyAgICAgIGNhbC5zZXQoY2FsLk1PTlRILCBjYWwuSkFOVUFSWSk7CisvLyAgICAgIGNhbC5zZXQoY2FsLkRBVEUsIDEpOworLy8gICAgICBjYWwuc2V0KGNhbC5IT1VSX09GX0RBWSwgMTIpOworLy8gICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjEuNSBKYW4gNDcxMyBCQyA9ICIgKyBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSk7CisKKy8vICAgICAgY2FsLmNsZWFyKCk7CisvLyAgICAgIGNhbC5zZXQoY2FsLllFQVIsIDIwMDApOworLy8gICAgICBjYWwuc2V0KGNhbC5NT05USCwgY2FsLkpBTlVBUlkpOworLy8gICAgICBjYWwuc2V0KGNhbC5EQVRFLCAxKTsKKy8vICAgICAgY2FsLmFkZChjYWwuREFURSwgLTEpOworLy8gICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjAuMCBKYW4gMjAwMCA9ICIgKyBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSk7CisvLyAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1pbGxpc2Vjb25kcyB2YWx1ZSBmb3IgMC4wIEphbnVhcnkgMjAwMCBBRC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgbG9uZyBFUE9DSF8yMDAwX01TID0gOTQ2NTk4NDAwMDAwTDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzc29ydGVkIHByaXZhdGUgZGF0YSB1c2VkIGZvciBjb252ZXJzaW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gTXkgb3duIGNvcGllcyBvZiB0aGVzZSBzbyBjb21waWxlcnMgYXJlIG1vcmUgbGlrZWx5IHRvIG9wdGltaXplIHRoZW0gYXdheQorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBQSSA9IDMuMTQxNTkyNjUzNTg5NzkzMjM4NDY7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIFBJMiA9IFBJICogMi4wOworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIFJBRF9IT1VSID0gMTIgLyBQSTsgICAgICAgIC8vIHJhZGlhbnMgLT4gaG91cnMKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgREVHX1JBRCAgPSBQSSAvIDE4MDsgICAgICAgIC8vIGRlZ3JlZXMgLT4gcmFkaWFucworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBSQURfREVHICA9IDE4MCAvIFBJOyAgICAgICAgLy8gcmFkaWFucyAtPiBkZWdyZWVzCisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZCB0bworICAgICAqIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcigpIHsKKyAgICAgICAgdGhpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCB0aGF0IGlzIGluaXRpYWxpemVkIHRvCisgICAgICogdGhlIHNwZWNpZmllZCBkYXRlIGFuZCB0aW1lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckFzdHJvbm9tZXIoRGF0ZSBkKSB7CisgICAgICAgIHRoaXMoZC5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZCB0bworICAgICAqIHRoZSBzcGVjaWZpZWQgdGltZS4gIFRoZSB0aW1lIGlzIGV4cHJlc3NlZCBhcyBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiBKYW51YXJ5IDEsIDE5NzAgQUQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlIGphdmEudXRpbC5EYXRlI2dldFRpbWUoKQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckFzdHJvbm9tZXIobG9uZyBhVGltZSkgeworICAgICAgICB0aW1lID0gYVRpbWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCB3aXRoIHRoZSBnaXZlbgorICAgICAqIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUuICBUaGUgb2JqZWN0J3MgdGltZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQKKyAgICAgKiBkYXRlIGFuZCB0aW1lLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBsb25naXR1ZGUgVGhlIGRlc2lyZWQgbG9uZ2l0dWRlLCBpbiA8ZW0+ZGVncmVlczwvZW0+IGVhc3Qgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBHcmVlbndpY2ggbWVyaWRpYW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF0aXR1ZGUgIFRoZSBkZXNpcmVkIGxhdGl0dWRlLCBpbiA8ZW0+ZGVncmVlczwvZW0+LiAgUG9zaXRpdmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHZhbHVlcyBzaWduaWZ5IE5vcnRoLCBuZWdhdGl2ZSBTb3V0aC4KKyAgICAgKgorICAgICAqIEBzZWUgamF2YS51dGlsLkRhdGUjZ2V0VGltZSgpCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcihkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgbGF0aXR1ZGUpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBmTG9uZ2l0dWRlID0gbm9ybVBJKGxvbmdpdHVkZSAqIERFR19SQUQpOworICAgICAgICBmTGF0aXR1ZGUgID0gbm9ybVBJKGxhdGl0dWRlICAqIERFR19SQUQpOworICAgICAgICBmR210T2Zmc2V0ID0gKGxvbmcpKGZMb25naXR1ZGUgKiAyNCAqIEhPVVJfTVMgLyBQSTIpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaW1lIGFuZCBkYXRlIGdldHRlcnMgYW5kIHNldHRlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LiAgQWxsCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoaXMgdGltZSBzZXR0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGFUaW1lIHRoZSBkYXRlIGFuZCB0aW1lLCBleHByZXNzZWQgYXMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiAgICAgICAgICAgICAgMS8xLzE5NzAgMDowMCBHTVQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXREYXRlCisgICAgICogQHNlZSAjZ2V0VGltZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWUobG9uZyBhVGltZSkgeworICAgICAgICB0aW1lID0gYVRpbWU7CisgICAgICAgIGNsZWFyQ2FjaGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgb2YgdGhpcyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdC4gIEFsbAorICAgICAqIGFzdHJvbm9taWNhbCBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZCBiYXNlZCBvbiB0aGlzIHRpbWUgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB0aW1lIGFuZCBkYXRlLCBleHByZXNzZWQgYXMgYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRUaW1lCisgICAgICogQHNlZSAjZ2V0RGF0ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGUoRGF0ZSBkYXRlKSB7CisgICAgICAgIHNldFRpbWUoZGF0ZS5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LiAgQWxsCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoaXMgdGltZSBzZXR0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGpkbiAgIHRoZSBkZXNpcmVkIHRpbWUsIGV4cHJlc3NlZCBhcyBhICJqdWxpYW4gZGF5IG51bWJlciIsCisgICAgICogICAgICAgICAgICAgIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgZWxhcHNlZCBkYXlzIHNpbmNlIAorICAgICAqICAgICAgICAgICAgICAxLzEvNDcxMyBCQyAoSnVsaWFuKSwgMTI6MDAgR01ULiAgTm90ZSB0aGF0IGp1bGlhbiBkYXkKKyAgICAgKiAgICAgICAgICAgICAgbnVtYmVycyBzdGFydCBhdCA8ZW0+bm9vbjwvZW0+LiAgVG8gZ2V0IHRoZSBqZG4gZm9yCisgICAgICogICAgICAgICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIG1pZG5pZ2h0LCBzdWJ0cmFjdCAwLjUuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRKdWxpYW5EYXkKKyAgICAgKiBAc2VlICNKVUxJQU5fRVBPQ0hfTVMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRKdWxpYW5EYXkoZG91YmxlIGpkbikgeworICAgICAgICB0aW1lID0gKGxvbmcpKGpkbiAqIERBWV9NUykgKyBKVUxJQU5fRVBPQ0hfTVM7CisgICAgICAgIGNsZWFyQ2FjaGUoKTsKKyAgICAgICAganVsaWFuRGF5ID0gamRuOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LAorICAgICAqIHJlcHJlc2VudGVkIGFzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlCisgICAgICogMS8xLzE5NzAgQUQgMDowMCBHTVQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRUaW1lCisgICAgICogQHNlZSAjZ2V0RGF0ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiB0aW1lOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LAorICAgICAqIHJlcHJlc2VudGVkIGFzIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0LgorICAgICAqCisgICAgICogQHNlZSAjc2V0RGF0ZQorICAgICAqIEBzZWUgI2dldFRpbWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBnZXREYXRlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUodGltZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCB0aW1lIG9mIHRoaXMgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QsCisgICAgICogZXhwcmVzc2VkIGFzIGEgImp1bGlhbiBkYXkgbnVtYmVyIiwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiBlbGFwc2VkCisgICAgICogZGF5cyBzaW5jZSAxLzEvNDcxMyBCQyAoSnVsaWFuKSwgMTI6MDAgR01ULgorICAgICAqCisgICAgICogQHNlZSAjc2V0SnVsaWFuRGF5CisgICAgICogQHNlZSAjSlVMSUFOX0VQT0NIX01TCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRKdWxpYW5EYXkoKSB7CisgICAgICAgIGlmIChqdWxpYW5EYXkgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAganVsaWFuRGF5ID0gKGRvdWJsZSkodGltZSAtIEpVTElBTl9FUE9DSF9NUykgLyAoZG91YmxlKURBWV9NUzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ganVsaWFuRGF5OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhpcyBvYmplY3QncyB0aW1lIGV4cHJlc3NlZCBpbiBqdWxpYW4gY2VudHVyaWVzOgorICAgICAqIHRoZSBudW1iZXIgb2YgY2VudHVyaWVzIGFmdGVyIDEvMS8xOTAwIEFELCAxMjowMCBHTVQKKyAgICAgKgorICAgICAqIEBzZWUgI2dldEp1bGlhbkRheQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0SnVsaWFuQ2VudHVyeSgpIHsKKyAgICAgICAgaWYgKGp1bGlhbkNlbnR1cnkgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAganVsaWFuQ2VudHVyeSA9IChnZXRKdWxpYW5EYXkoKSAtIDI0MTUwMjAuMCkgLyAzNjUyNTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ganVsaWFuQ2VudHVyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IEdyZWVud2ljaCBzaWRlcmVhbCB0aW1lLCBtZWFzdXJlZCBpbiBob3VycworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0R3JlZW53aWNoU2lkZXJlYWwoKSB7CisgICAgICAgIGlmIChzaWRlcmVhbFRpbWUgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAgLy8gU2VlIHBhZ2UgODYgb2YgIlByYWN0aWFsIEFzdHJvbm9teSB3aXRoIHlvdXIgQ2FsY3VsYXRvciIsCisgICAgICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkb3VibGUgVVQgPSBub3JtYWxpemUoKGRvdWJsZSl0aW1lL0hPVVJfTVMsIDI0KTsKKyAgICAgICAgCisgICAgICAgICAgICBzaWRlcmVhbFRpbWUgPSBub3JtYWxpemUoZ2V0U2lkZXJlYWxPZmZzZXQoKSArIFVUKjEuMDAyNzM3OTA5LCAyNCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpZGVyZWFsVGltZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBkb3VibGUgZ2V0U2lkZXJlYWxPZmZzZXQoKSB7CisgICAgICAgIGlmIChzaWRlcmVhbFQwID09IElOVkFMSUQpIHsKKyAgICAgICAgICAgIGRvdWJsZSBKRCAgPSBNYXRoLmZsb29yKGdldEp1bGlhbkRheSgpIC0gMC41KSArIDAuNTsKKyAgICAgICAgICAgIGRvdWJsZSBTICAgPSBKRCAtIDI0NTE1NDUuMDsKKyAgICAgICAgICAgIGRvdWJsZSBUICAgPSBTIC8gMzY1MjUuMDsKKyAgICAgICAgICAgIHNpZGVyZWFsVDAgPSBub3JtYWxpemUoNi42OTczNzQ1NTggKyAyNDAwLjA1MTMzNipUICsgMC4wMDAwMjU4NjIqVCpULCAyNCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpZGVyZWFsVDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9jYWwgc2lkZXJlYWwgdGltZSwgbWVhc3VyZWQgaW4gaG91cnMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldExvY2FsU2lkZXJlYWwoKSB7CisgICAgICAgIHJldHVybiBub3JtYWxpemUoZ2V0R3JlZW53aWNoU2lkZXJlYWwoKSArIChkb3VibGUpZkdtdE9mZnNldC9IT1VSX01TLCAyNCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIGxvY2FsIHNpZGVyZWFsIHRpbWUgdG8gVW5pdmVyc2FsIFRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbHN0ICAgVGhlIExvY2FsIFNpZGVyZWFsIFRpbWUsIGluIGhvdXJzIHNpbmNlIHNpZGVyZWFsIG1pZG5pZ2h0CisgICAgICogICAgICAgICAgICAgIG9uIHRoaXMgb2JqZWN0J3MgY3VycmVudCBkYXRlLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBjb3JyZXNwb25kaW5nIFVuaXZlcnNhbCBUaW1lLCBpbiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiAgICAgICAgICAgICAgMSBKYW4gMTk3MCwgR01ULiAgCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGxzdFRvVVQoZG91YmxlIGxzdCkgeworICAgICAgICAvLyBDb252ZXJ0IHRvIGxvY2FsIG1lYW4gdGltZQorICAgICAgICBkb3VibGUgbHQgPSBub3JtYWxpemUoKGxzdCAtIGdldFNpZGVyZWFsT2Zmc2V0KCkpICogMC45OTcyNjk1NjYzLCAyNCk7CisgICAgICAgIAorICAgICAgICAvLyBUaGVuIGZpbmQgbG9jYWwgbWlkbmlnaHQgb24gdGhpcyBkYXkKKyAgICAgICAgbG9uZyBiYXNlID0gREFZX01TICogKCh0aW1lICsgZkdtdE9mZnNldCkvREFZX01TKSAtIGZHbXRPZmZzZXQ7CisgICAgICAgIAorICAgICAgICAvL291dCgiICAgIGx0ICA9IiArIGx0ICsgIiBob3VycyIpOworICAgICAgICAvL291dCgiICAgIGJhc2U9IiArIG5ldyBEYXRlKGJhc2UpKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBiYXNlICsgKGxvbmcpKGx0ICogSE9VUl9NUyk7CisgICAgfQorICAgIAorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvb3JkaW5hdGUgdHJhbnNmb3JtYXRpb25zLCBhbGwgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIG9iamVjdAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIHRvIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNsaXB0aWMgIEEgcG9pbnQgaW4gdGhlIHNreSBpbiBlY2xpcHRpYyBjb29yZGluYXRlcy4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIHBvaW50IGluIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIEVxdWF0b3JpYWwgZWNsaXB0aWNUb0VxdWF0b3JpYWwoRWNsaXB0aWMgZWNsaXB0aWMpCisgICAgeworICAgICAgICByZXR1cm4gZWNsaXB0aWNUb0VxdWF0b3JpYWwoZWNsaXB0aWMubG9uZ2l0dWRlLCBlY2xpcHRpYy5sYXRpdHVkZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIHRvIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNsaXBMb25nICAgICBUaGUgZWNsaXB0aWMgbG9uZ2l0dWRlCisgICAgICogQHBhcmFtIGVjbGlwTGF0ICAgICAgVGhlIGVjbGlwdGljIGxhdGl0dWRlCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwb2ludCBpbiBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBFcXVhdG9yaWFsIGVjbGlwdGljVG9FcXVhdG9yaWFsKGRvdWJsZSBlY2xpcExvbmcsIGRvdWJsZSBlY2xpcExhdCkKKyAgICB7CisgICAgICAgIC8vIFNlZSBwYWdlIDQyIG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisKKyAgICAgICAgZG91YmxlIG9ibGlxID0gZWNsaXB0aWNPYmxpcXVpdHkoKTsKKyAgICAgICAgZG91YmxlIHNpbkUgPSBNYXRoLnNpbihvYmxpcSk7CisgICAgICAgIGRvdWJsZSBjb3NFID0gTWF0aC5jb3Mob2JsaXEpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIHNpbkwgPSBNYXRoLnNpbihlY2xpcExvbmcpOworICAgICAgICBkb3VibGUgY29zTCA9IE1hdGguY29zKGVjbGlwTG9uZyk7CisgICAgICAgIAorICAgICAgICBkb3VibGUgc2luQiA9IE1hdGguc2luKGVjbGlwTGF0KTsKKyAgICAgICAgZG91YmxlIGNvc0IgPSBNYXRoLmNvcyhlY2xpcExhdCk7CisgICAgICAgIGRvdWJsZSB0YW5CID0gTWF0aC50YW4oZWNsaXBMYXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBFcXVhdG9yaWFsKE1hdGguYXRhbjIoc2luTCpjb3NFIC0gdGFuQipzaW5FLCBjb3NMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFzaW4oc2luQipjb3NFICsgY29zQipzaW5FKnNpbkwpICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIGxvbmdpdHVkZSB0byBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqCisgICAgICogQHBhcmFtIGVjbGlwTG9uZyAgICAgVGhlIGVjbGlwdGljIGxvbmdpdHVkZQorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgcG9pbnQgaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRXF1YXRvcmlhbCBlY2xpcHRpY1RvRXF1YXRvcmlhbChkb3VibGUgZWNsaXBMb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGVjbGlwTG9uZywgMCk7ICAvLyBUT0RPOiBvcHRpbWl6ZQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBIb3Jpem9uIGVjbGlwdGljVG9Ib3Jpem9uKGRvdWJsZSBlY2xpcExvbmcpCisgICAgeworICAgICAgICBFcXVhdG9yaWFsIGVxdWF0b3JpYWwgPSBlY2xpcHRpY1RvRXF1YXRvcmlhbChlY2xpcExvbmcpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIEggPSBnZXRMb2NhbFNpZGVyZWFsKCkqUEkvMTIgLSBlcXVhdG9yaWFsLmFzY2Vuc2lvbjsgICAgIC8vIEhvdXItYW5nbGUKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzaW5IID0gTWF0aC5zaW4oSCk7CisgICAgICAgIGRvdWJsZSBjb3NIID0gTWF0aC5jb3MoSCk7CisgICAgICAgIGRvdWJsZSBzaW5EID0gTWF0aC5zaW4oZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBjb3NEID0gTWF0aC5jb3MoZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBzaW5MID0gTWF0aC5zaW4oZkxhdGl0dWRlKTsKKyAgICAgICAgZG91YmxlIGNvc0wgPSBNYXRoLmNvcyhmTGF0aXR1ZGUpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGFsdGl0dWRlID0gTWF0aC5hc2luKHNpbkQqc2luTCArIGNvc0QqY29zTCpjb3NIKTsKKyAgICAgICAgZG91YmxlIGF6aW11dGggID0gTWF0aC5hdGFuMigtY29zRCpjb3NMKnNpbkgsIHNpbkQgLSBzaW5MICogTWF0aC5zaW4oYWx0aXR1ZGUpKTsKKworICAgICAgICByZXR1cm4gbmV3IEhvcml6b24oYXppbXV0aCwgYWx0aXR1ZGUpOworICAgIH0KKworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZSBTdW4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vCisgICAgLy8gUGFyYW1ldGVycyBvZiB0aGUgU3VuJ3Mgb3JiaXQgYXMgb2YgdGhlIGVwb2NoIEphbiAwLjAgMTk5MAorICAgIC8vIEFuZ2xlcyBhcmUgaW4gcmFkaWFucyAoYWZ0ZXIgbXVsdGlwbHlpbmcgYnkgUEkvMTgwKQorICAgIC8vCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBKRF9FUE9DSCA9IDI0NDc4OTEuNTsgLy8gSnVsaWFuIGRheSBvZiBlcG9jaAorCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBTVU5fRVRBX0cgICA9IDI3OS40MDMzMDMgKiBQSS8xODA7IC8vIEVjbGlwdGljIGxvbmdpdHVkZSBhdCBlcG9jaAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgU1VOX09NRUdBX0cgPSAyODIuNzY4NDIyICogUEkvMTgwOyAvLyBFY2xpcHRpYyBsb25naXR1ZGUgb2YgcGVyaWdlZQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgU1VOX0UgICAgICA9ICAgMC4wMTY3MTM7ICAgICAgICAgIC8vIEVjY2VudHJpY2l0eSBvZiBvcmJpdAorICAgIC8vZG91YmxlIHN1blIwICAgICA9ICAgMS40OTU1ODVlODsgICAgICAgIC8vIFNlbWktbWFqb3IgYXhpcyBpbiBLTQorICAgIC8vZG91YmxlIHN1blRoZXRhMCA9ICAgMC41MzMxMjggKiBQSS8xODA7IC8vIEFuZ3VsYXIgZGlhbWV0ZXIgYXQgUjAKKworICAgIC8vIFRoZSBmb2xsb3dpbmcgdGhyZWUgbWV0aG9kcywgd2hpY2ggY29tcHV0ZSB0aGUgc3VuIHBhcmFtZXRlcnMKKyAgICAvLyBnaXZlbiBhYm92ZSBmb3IgYW4gYXJiaXRyYXJ5IGVwb2NoICh3aGF0ZXZlciB0aW1lIHRoZSBvYmplY3QgaXMKKyAgICAvLyBzZXQgdG8pLCBtYWtlIG9ubHkgYSBzbWFsbCBkaWZmZXJlbmNlIGFzIGNvbXBhcmVkIHRvIHVzaW5nIHRoZQorICAgIC8vIGFib3ZlIGNvbnN0YW50cy4gIEUuZy4sIFN1bnNldCB0aW1lcyBtaWdodCBkaWZmZXIgYnkgfjEyCisgICAgLy8gc2Vjb25kcy4gIEZ1cnRoZXJtb3JlLCB0aGUgZXRhLWcgY29tcHV0YXRpb24gaXMgYmVmdWRkbGVkIGJ5CisgICAgLy8gRHVmZmV0LVNtaXRoJ3MgaW5jb3JyZWN0IGNvZWZmaWNpZW50cyAocC44NikuICBJJ3ZlIGNvcnJlY3RlZAorICAgIC8vIHRoZSBmaXJzdC1vcmRlciBjb2VmZmljaWVudCBidXQgdGhlIG90aGVycyBtYXkgYmUgb2ZmIHRvbyAtIG5vCisgICAgLy8gd2F5IG9mIGtub3dpbmcgd2l0aG91dCBjb25zdWx0aW5nIGFub3RoZXIgc291cmNlLgorCisvLyAgLyoqCisvLyAgICogUmV0dXJuIHRoZSBzdW4ncyBlY2xpcHRpYyBsb25naXR1ZGUgYXQgcGVyaWdlZSBmb3IgdGhlIGN1cnJlbnQgdGltZS4KKy8vICAgKiBTZWUgRHVmZmV0dC1TbWl0aCwgcC4gODYuCisvLyAgICogQHJldHVybiByYWRpYW5zCisvLyAgICovCisvLyAgcHJpdmF0ZSBkb3VibGUgZ2V0U3VuT21lZ2FHKCkgeworLy8gICAgICBkb3VibGUgVCA9IGdldEp1bGlhbkNlbnR1cnkoKTsKKy8vICAgICAgcmV0dXJuICgyODEuMjIwODQ0NCArICgxLjcxOTE3NSArIDAuMDAwNDUyNzc4KlQpKlQpICogREVHX1JBRDsKKy8vICB9CisKKy8vICAvKioKKy8vICAgKiBSZXR1cm4gdGhlIHN1bidzIGVjbGlwdGljIGxvbmdpdHVkZSBmb3IgdGhlIGN1cnJlbnQgdGltZS4KKy8vICAgKiBTZWUgRHVmZmV0dC1TbWl0aCwgcC4gODYuCisvLyAgICogQHJldHVybiByYWRpYW5zCisvLyAgICovCisvLyAgcHJpdmF0ZSBkb3VibGUgZ2V0U3VuRXRhRygpIHsKKy8vICAgICAgZG91YmxlIFQgPSBnZXRKdWxpYW5DZW50dXJ5KCk7CisvLyAgICAgIC8vcmV0dXJuICgyNzkuNjk2Njc3OCArICgzNjAwMC43Njg5MiArIDAuMDAwMzAyNSpUKSpUKSAqIERFR19SQUQ7CisvLyAgICAgIC8vCisvLyAgICAgIC8vIFRoZSBhYm92ZSBsaW5lIGlzIGZyb20gRHVmZmV0dC1TbWl0aCwgYW5kIHlpZWxkcyBtYW5pZmVzdGx5IHdyb25nCisvLyAgICAgIC8vIHJlc3VsdHMuICBUaGUgYmVsb3cgY29uc3RhbnQgaXMgZGVyaXZlZCBlbXBpcmljYWxseSB0byBtYXRjaCB0aGUKKy8vICAgICAgLy8gY29uc3RhbnQgaGUgZ2l2ZXMgZm9yIHRoZSAxOTkwIEVQT0NILgorLy8gICAgICAvLworLy8gICAgICByZXR1cm4gKDI3OS42OTY2Nzc4ICsgKC0wLjMyNjI1NDE1ODI3MTgwMjQgKyAwLjAwMDMwMjUqVCkqVCkgKiBERUdfUkFEOworLy8gIH0KKworLy8gIC8qKgorLy8gICAqIFJldHVybiB0aGUgc3VuJ3MgZWNjZW50cmljaXR5IG9mIG9yYml0IGZvciB0aGUgY3VycmVudCB0aW1lLgorLy8gICAqIFNlZSBEdWZmZXR0LVNtaXRoLCBwLiA4Ni4KKy8vICAgKiBAcmV0dXJuIGRvdWJsZQorLy8gICAqLworLy8gIHByaXZhdGUgZG91YmxlIGdldFN1bkUoKSB7CisvLyAgICAgIGRvdWJsZSBUID0gZ2V0SnVsaWFuQ2VudHVyeSgpOworLy8gICAgICByZXR1cm4gMC4wMTY3NTEwNCAtICgwLjAwMDA0MTggKyAwLjAwMDAwMDEyNipUKSpUOworLy8gIH0KKworICAgIC8qKgorICAgICAqIFRoZSBsb25naXR1ZGUgb2YgdGhlIHN1biBhdCB0aGUgdGltZSBzcGVjaWZpZWQgYnkgdGhpcyBvYmplY3QuCisgICAgICogVGhlIGxvbmdpdHVkZSBpcyBtZWFzdXJlZCBpbiByYWRpYW5zIGFsb25nIHRoZSBlY2xpcHRpYworICAgICAqIGZyb20gdGhlICJmaXJzdCBwb2ludCBvZiBBcmllcywiIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgZWNsaXB0aWMKKyAgICAgKiBjcm9zc2VzIHRoZSBlYXJ0aCdzIGVxdWF0b3JpYWwgcGxhbmUgYXQgdGhlIHZlcm5hbCBlcXVpbm94LgorICAgICAqIDxwPgorICAgICAqIEN1cnJlbnRseSwgdGhpcyBtZXRob2QgdXNlcyBhbiBhcHByb3hpbWF0aW9uIG9mIHRoZSB0d28tYm9keSBLZXBsZXIncworICAgICAqIGVxdWF0aW9uIGZvciB0aGUgZWFydGggYW5kIHRoZSBzdW4uICBJdCBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUKKyAgICAgKiBwZXJ0dXJiYXRpb25zIGNhdXNlZCBieSB0aGUgb3RoZXIgcGxhbmV0cywgdGhlIG1vb24sIGV0Yy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldFN1bkxvbmdpdHVkZSgpCisgICAgeworICAgICAgICAvLyBTZWUgcGFnZSA4NiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAKKyAgICAgICAgaWYgKHN1bkxvbmdpdHVkZSA9PSBJTlZBTElEKSB7CisgICAgICAgICAgICBkb3VibGVbXSByZXN1bHQgPSBnZXRTdW5Mb25naXR1ZGUoZ2V0SnVsaWFuRGF5KCkpOworICAgICAgICAgICAgc3VuTG9uZ2l0dWRlID0gcmVzdWx0WzBdOworICAgICAgICAgICAgbWVhbkFub21hbHlTdW4gPSByZXN1bHRbMV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1bkxvbmdpdHVkZTsKKyAgICB9CisgIAorICAgIC8qKgorICAgICAqIFRPRE8gTWFrZSB0aGlzIHB1YmxpYyB3aGVuIHRoZSBlbnRpcmUgY2xhc3MgaXMgcGFja2FnZS1wcml2YXRlLgorICAgICAqLworICAgIC8qcHVibGljKi8gZG91YmxlW10gZ2V0U3VuTG9uZ2l0dWRlKGRvdWJsZSBqdWxpYW5EYXkpCisgICAgeworICAgICAgICAvLyBTZWUgcGFnZSA4NiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAKKyAgICAgICAgZG91YmxlIGRheSA9IGp1bGlhbkRheSAtIEpEX0VQT0NIOyAgICAgICAvLyBEYXlzIHNpbmNlIGVwb2NoCisgICAgICAgIAorICAgICAgICAvLyBGaW5kIHRoZSBhbmd1bGFyIGRpc3RhbmNlIHRoZSBzdW4gaW4gYSBmaWN0aXRpb3VzCisgICAgICAgIC8vIGNpcmN1bGFyIG9yYml0IGhhcyB0cmF2ZWxsZWQgc2luY2UgdGhlIGVwb2NoLgorICAgICAgICBkb3VibGUgZXBvY2hBbmdsZSA9IG5vcm0yUEkoUEkyL1RST1BJQ0FMX1lFQVIqZGF5KTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZSBlcG9jaCB3YXNuJ3QgYXQgdGhlIHN1bidzIHBlcmlnZWU7IGZpbmQgdGhlIGFuZ3VsYXIgZGlzdGFuY2UKKyAgICAgICAgLy8gc2luY2UgcGVyaWdlZSwgd2hpY2ggaXMgY2FsbGVkIHRoZSAibWVhbiBhbm9tYWx5IgorICAgICAgICBkb3VibGUgbWVhbkFub21hbHkgPSBub3JtMlBJKGVwb2NoQW5nbGUgKyBTVU5fRVRBX0cgLSBTVU5fT01FR0FfRyk7CisgICAgICAgIAorICAgICAgICAvLyBOb3cgZmluZCB0aGUgInRydWUgYW5vbWFseSIsIGUuZy4gdGhlIHJlYWwgc29sYXIgbG9uZ2l0dWRlCisgICAgICAgIC8vIGJ5IHNvbHZpbmcgS2VwbGVyJ3MgZXF1YXRpb24gZm9yIGFuIGVsbGlwdGljYWwgb3JiaXQKKyAgICAgICAgLy8gTk9URTogVGhlIDNyZCBlZC4gb2YgdGhlIGJvb2sgbGlzdHMgb21lZ2FfZyBhbmQgZXRhX2cgaW4gZGlmZmVyZW50CisgICAgICAgIC8vIGVxdWF0aW9uczsgb21lZ2FfZyBpcyB0byBiZSBjb3JyZWN0LgorICAgICAgICByZXR1cm4gbmV3IGRvdWJsZVtdIHsKKyAgICAgICAgICAgIG5vcm0yUEkodHJ1ZUFub21hbHkobWVhbkFub21hbHksIFNVTl9FKSArIFNVTl9PTUVHQV9HKSwKKyAgICAgICAgICAgIG1lYW5Bbm9tYWx5CisgICAgICAgIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBzdW4gYXQgdGhpcyBvYmplY3QncyBjdXJyZW50IGRhdGUgYW5kIHRpbWUsCisgICAgICogaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRXF1YXRvcmlhbCBnZXRTdW5Qb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGdldFN1bkxvbmdpdHVkZSgpLCAwKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU29sYXJMb25naXR1ZGUgeworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgICAgIFNvbGFyTG9uZ2l0dWRlKGRvdWJsZSB2YWwpIHsgdmFsdWUgPSB2YWw7IH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSB2ZXJuYWwgZXF1aW5veC4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lKFNvbGFyTG9uZ2l0dWRlLCBib29sZWFuKSBnZXRTdW5UaW1lfS4gCisgICAgICogTm90ZTogSW4gdGhpcyBjYXNlLCAidmVybmFsIiByZWZlcnMgdG8gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUncyBzZWFzb25zLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU29sYXJMb25naXR1ZGUgVkVSTkFMX0VRVUlOT1ggID0gbmV3IFNvbGFyTG9uZ2l0dWRlKDApOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyB0aGUgc3VtbWVyIHNvbHN0aWNlLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldFN1blRpbWUoU29sYXJMb25naXR1ZGUsIGJvb2xlYW4pIGdldFN1blRpbWV9LgorICAgICAqIE5vdGU6IEluIHRoaXMgY2FzZSwgInN1bW1lciIgcmVmZXJzIHRvIHRoZSBub3J0aGVybiBoZW1pc3BoZXJlJ3Mgc2Vhc29ucy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNvbGFyTG9uZ2l0dWRlIFNVTU1FUl9TT0xTVElDRSA9IG5ldyBTb2xhckxvbmdpdHVkZShQSS8yKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIGF1dHVtbmFsIGVxdWlub3guCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0U3VuVGltZShTb2xhckxvbmdpdHVkZSwgYm9vbGVhbikgZ2V0U3VuVGltZX0uCisgICAgICogTm90ZTogSW4gdGhpcyBjYXNlLCAiYXV0dW1uIiByZWZlcnMgdG8gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUncyBzZWFzb25zLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU29sYXJMb25naXR1ZGUgQVVUVU1OX0VRVUlOT1ggID0gbmV3IFNvbGFyTG9uZ2l0dWRlKFBJKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHdpbnRlciBzb2xzdGljZS4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lKFNvbGFyTG9uZ2l0dWRlLCBib29sZWFuKSBnZXRTdW5UaW1lfS4KKyAgICAgKiBOb3RlOiBJbiB0aGlzIGNhc2UsICJ3aW50ZXIiIHJlZmVycyB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZSdzIHNlYXNvbnMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTb2xhckxvbmdpdHVkZSBXSU5URVJfU09MU1RJQ0UgPSBuZXcgU29sYXJMb25naXR1ZGUoKFBJKjMpLzIpOworICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgdGltZSBhdCB3aGljaCB0aGUgc3VuJ3MgZWNsaXB0aWMgbG9uZ2l0dWRlIHdpbGwgaGF2ZQorICAgICAqIHRoZSBkZXNpcmVkIHZhbHVlLiAgCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0U3VuVGltZShkb3VibGUgZGVzaXJlZCwgYm9vbGVhbiBuZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRpbWVPZkFuZ2xlKCBuZXcgQW5nbGVGdW5jKCkgeyBwdWJsaWMgZG91YmxlIGV2YWwoKSB7IHJldHVybiBnZXRTdW5Mb25naXR1ZGUoKTsgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJPUElDQUxfWUVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU5VVEVfTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgdGltZSBhdCB3aGljaCB0aGUgc3VuJ3MgZWNsaXB0aWMgbG9uZ2l0dWRlIHdpbGwgaGF2ZQorICAgICAqIHRoZSBkZXNpcmVkIHZhbHVlLiAgCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0U3VuVGltZShTb2xhckxvbmdpdHVkZSBkZXNpcmVkLCBib29sZWFuIG5leHQpIHsKKyAgICAgICAgcmV0dXJuIGdldFN1blRpbWUoZGVzaXJlZC52YWx1ZSwgbmV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRpbWUgKEdNVCkgb2Ygc3VucmlzZSBvciBzdW5zZXQgb24gdGhlIGxvY2FsIGRhdGUgdG8gd2hpY2gKKyAgICAgKiB0aGlzIGNhbGVuZGFyIGlzIGN1cnJlbnRseSBzZXQuCisgICAgICoKKyAgICAgKiBOT1RFOiBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIHdlbGwgaWYgdGhpcyBvYmplY3QgaXMgc2V0IHRvIGEKKyAgICAgKiB0aW1lIG5lYXIgbG9jYWwgbm9vbi4gIEJlY2F1c2Ugb2YgdmFyaWF0aW9ucyBiZXR3ZWVuIHRoZSBsb2NhbAorICAgICAqIG9mZmljaWFsIHRpbWUgem9uZSBhbmQgdGhlIGdlb2dyYXBoaWMgbG9uZ2l0dWRlLCB0aGUKKyAgICAgKiBjb21wdXRhdGlvbiBjYW4gZmxvcCBvdmVyIGludG8gYW4gYWRqYWNlbnQgZGF5IGlmIHRoaXMgb2JqZWN0CisgICAgICogaXMgc2V0IHRvIGEgdGltZSBuZWFyIGxvY2FsIG1pZG5pZ2h0LgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFN1blJpc2VTZXQoYm9vbGVhbiByaXNlKQorICAgIHsKKyAgICAgICAgbG9uZyB0MCA9IHRpbWU7CisKKyAgICAgICAgLy8gTWFrZSBhIHJvdWdoIGd1ZXNzOiA2YW0gb3IgNnBtIGxvY2FsIHRpbWUgb24gdGhlIGN1cnJlbnQgZGF5CisgICAgICAgIGxvbmcgbm9vbiA9ICgodGltZSArIGZHbXRPZmZzZXQpL0RBWV9NUykqREFZX01TIC0gZkdtdE9mZnNldCArIDEyKkhPVVJfTVM7CisgICAgICAgIAorICAgICAgICBzZXRUaW1lKG5vb24gKyAobG9uZykoKHJpc2UgPyAtNiA6IDYpICogSE9VUl9NUykpOworICAgICAgICAKKyAgICAgICAgbG9uZyB0ID0gcmlzZU9yU2V0KG5ldyBDb29yZEZ1bmMoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEVxdWF0b3JpYWwgZXZhbCgpIHsgcmV0dXJuIGdldFN1blBvc2l0aW9uKCk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgLjUzMyAqIERFR19SQUQsICAgICAgICAvLyBBbmd1bGFyIERpYW1ldGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgMzQgLzYwLjAgKiBERUdfUkFELCAgICAvLyBSZWZyYWN0aW9uIGNvcnJlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICBNSU5VVEVfTVMgLyAxMik7ICAgICAgIC8vIERlc2lyZWQgYWNjdXJhY3kKKworICAgICAgICBzZXRUaW1lKHQwKTsKKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorCisvLyBDb21tZW50ZWQgb3V0IC0gY3VycmVudGx5IHVudXNlZC4gSUNVIDIuNiwgQWxhbgorLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAvLyBBbHRlcm5hdGUgU3VuIFJpc2UvU2V0CisvLyAgICAvLyBTZWUgRHVmZmV0dC1TbWl0aCBwLjkzCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICAvLyBUaGlzIHlpZWxkcyB3b3JzZSByZXN1bHRzIChhcyBjb21wYXJlZCB0byBVU05PIGRhdGEpIHRoYW4gZ2V0U3VuUmlzZVNldCgpLgorLy8gICAgLyoqCisvLyAgICAgKiBUT0RPIE1ha2UgdGhpcyBwdWJsaWMgd2hlbiB0aGUgZW50aXJlIGNsYXNzIGlzIHBhY2thZ2UtcHJpdmF0ZS4KKy8vICAgICAqLworLy8gICAgLypwdWJsaWMqLyBsb25nIGdldFN1blJpc2VTZXQyKGJvb2xlYW4gcmlzZSkgeworLy8gICAgICAgIC8vIDEuIENhbGN1bGF0ZSBjb29yZGluYXRlcyBvZiB0aGUgc3VuJ3MgY2VudGVyIGZvciBtaWRuaWdodAorLy8gICAgICAgIGRvdWJsZSBqZCA9IE1hdGguZmxvb3IoZ2V0SnVsaWFuRGF5KCkgLSAwLjUpICsgMC41OworLy8gICAgICAgIGRvdWJsZVtdIHNsID0gZ2V0U3VuTG9uZ2l0dWRlKGpkKTsKKy8vICAgICAgICBkb3VibGUgbGFtYmRhMSA9IHNsWzBdOworLy8gICAgICAgIEVxdWF0b3JpYWwgcG9zMSA9IGVjbGlwdGljVG9FcXVhdG9yaWFsKGxhbWJkYTEsIDApOworLy8KKy8vICAgICAgICAvLyAyLiBBZGQgLi4uIHRvIGxhbWJkYSB0byBnZXQgcG9zaXRpb24gMjQgaG91cnMgbGF0ZXIKKy8vICAgICAgICBkb3VibGUgbGFtYmRhMiA9IGxhbWJkYTEgKyAwLjk4NTY0NypERUdfUkFEOworLy8gICAgICAgIEVxdWF0b3JpYWwgcG9zMiA9IGVjbGlwdGljVG9FcXVhdG9yaWFsKGxhbWJkYTIsIDApOworLy8KKy8vICAgICAgICAvLyAzLiBDYWxjdWxhdGUgTFNUcyBvZiByaXNpbmcgYW5kIHNldHRpbmcgZm9yIHRoZXNlIHR3byBwb3NpdGlvbnMKKy8vICAgICAgICBkb3VibGUgdGFuTCA9IE1hdGgudGFuKGZMYXRpdHVkZSk7CisvLyAgICAgICAgZG91YmxlIEggPSBNYXRoLmFjb3MoLXRhbkwgKiBNYXRoLnRhbihwb3MxLmRlY2xpbmF0aW9uKSk7CisvLyAgICAgICAgZG91YmxlIGxzdDFyID0gKFBJMiArIHBvczEuYXNjZW5zaW9uIC0gSCkgKiAyNCAvIFBJMjsKKy8vICAgICAgICBkb3VibGUgbHN0MXMgPSAocG9zMS5hc2NlbnNpb24gKyBIKSAqIDI0IC8gUEkyOworLy8gICAgICAgICAgICAgICBIID0gTWF0aC5hY29zKC10YW5MICogTWF0aC50YW4ocG9zMi5kZWNsaW5hdGlvbikpOworLy8gICAgICAgIGRvdWJsZSBsc3QyciA9IChQSTItSCArIHBvczIuYXNjZW5zaW9uICkgKiAyNCAvIFBJMjsKKy8vICAgICAgICBkb3VibGUgbHN0MnMgPSAoSCArIHBvczIuYXNjZW5zaW9uICkgKiAyNCAvIFBJMjsKKy8vICAgICAgICBpZiAobHN0MXIgPiAyNCkgbHN0MXIgLT0gMjQ7CisvLyAgICAgICAgaWYgKGxzdDFzID4gMjQpIGxzdDFzIC09IDI0OworLy8gICAgICAgIGlmIChsc3QyciA+IDI0KSBsc3QyciAtPSAyNDsKKy8vICAgICAgICBpZiAobHN0MnMgPiAyNCkgbHN0MnMgLT0gMjQ7CisvLyAgICAgICAgCisvLyAgICAgICAgLy8gNC4gQ29udmVydCBMU1RzIHRvIEdTVHMuICBJZiBHU1QxID4gR1NUMiwgYWRkIDI0IHRvIEdTVDIuCisvLyAgICAgICAgZG91YmxlIGdzdDFyID0gbHN0VG9Hc3QobHN0MXIpOworLy8gICAgICAgIGRvdWJsZSBnc3QxcyA9IGxzdFRvR3N0KGxzdDFzKTsKKy8vICAgICAgICBkb3VibGUgZ3N0MnIgPSBsc3RUb0dzdChsc3Qycik7CisvLyAgICAgICAgZG91YmxlIGdzdDJzID0gbHN0VG9Hc3QobHN0MnMpOworLy8gICAgICAgIGlmIChnc3QxciA+IGdzdDJyKSBnc3QyciArPSAyNDsKKy8vICAgICAgICBpZiAoZ3N0MXMgPiBnc3QycykgZ3N0MnMgKz0gMjQ7CisvLworLy8gICAgICAgIC8vIDUuIENhbGN1bGF0ZSBHU1QgYXQgMGggVVQgb2YgdGhpcyBkYXRlCisvLyAgICAgICAgZG91YmxlIHQwMCA9IHV0VG9Hc3QoMCk7CisvLyAgICAgICAgCisvLyAgICAgICAgLy8gNi4gQ2FsY3VsYXRlIEdTVCBhdCAwaCBvbiB0aGUgb2JzZXJ2ZXIncyBsb25naXR1ZGUKKy8vICAgICAgICBkb3VibGUgb2Zmc2V0ID0gTWF0aC5yb3VuZChmTG9uZ2l0dWRlKjEyL1BJKTsgLy8gcC45NSBzdGVwIDY7IGhlIF9yb3VuZHNfIHRvIG5lYXJlc3QgMTUgZGVnLgorLy8gICAgICAgIGRvdWJsZSB0MDBwID0gdDAwIC0gb2Zmc2V0KjEuMDAyNzM3OTA5OworLy8gICAgICAgIGlmICh0MDBwIDwgMCkgdDAwcCArPSAyNDsgLy8gZG8gTk9UIG5vcm1hbGl6ZQorLy8gICAgICAgIAorLy8gICAgICAgIC8vIDcuIEFkanVzdAorLy8gICAgICAgIGlmIChnc3QxciA8IHQwMHApIHsKKy8vICAgICAgICAgICAgZ3N0MXIgKz0gMjQ7CisvLyAgICAgICAgICAgIGdzdDJyICs9IDI0OworLy8gICAgICAgIH0KKy8vICAgICAgICBpZiAoZ3N0MXMgPCB0MDBwKSB7CisvLyAgICAgICAgICAgIGdzdDFzICs9IDI0OworLy8gICAgICAgICAgICBnc3QycyArPSAyNDsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vIDguCisvLyAgICAgICAgZG91YmxlIGdzdHIgPSAoMjQuMDcqZ3N0MXItdDAwKihnc3Qyci1nc3QxcikpLygyNC4wNytnc3Qxci1nc3Qycik7CisvLyAgICAgICAgZG91YmxlIGdzdHMgPSAoMjQuMDcqZ3N0MXMtdDAwKihnc3Qycy1nc3QxcykpLygyNC4wNytnc3Qxcy1nc3Qycyk7CisvLworLy8gICAgICAgIC8vIDkuIENvcnJlY3QgZm9yIHBhcmFsbGF4LCByZWZyYWN0aW9uLCBhbmQgc3VuJ3MgZGlhbWV0ZXIKKy8vICAgICAgICBkb3VibGUgZGVjID0gKHBvczEuZGVjbGluYXRpb24gKyBwb3MyLmRlY2xpbmF0aW9uKSAvIDI7CisvLyAgICAgICAgZG91YmxlIHBzaSA9IE1hdGguYWNvcyhNYXRoLnNpbihmTGF0aXR1ZGUpIC8gTWF0aC5jb3MoZGVjKSk7CisvLyAgICAgICAgZG91YmxlIHggPSAwLjgzMDcyNSAqIERFR19SQUQ7IC8vIHBhcmFsbGF4K3JlZnJhY3Rpb24rZGlhbWV0ZXIKKy8vICAgICAgICBkb3VibGUgeSA9IE1hdGguYXNpbihNYXRoLnNpbih4KSAvIE1hdGguc2luKHBzaSkpICogUkFEX0RFRzsKKy8vICAgICAgICBkb3VibGUgZGVsdGFfdCA9IDI0MCAqIHkgLyBNYXRoLmNvcyhkZWMpIC8gMzYwMDsgLy8gaG91cnMKKy8vCisvLyAgICAgICAgLy8gMTAuIEFkZCBjb3JyZWN0aW9uIHRvIEdTVHMsIHN1YnRyYWN0IGZyb20gR1NUcgorLy8gICAgICAgIGdzdHIgLT0gZGVsdGFfdDsKKy8vICAgICAgICBnc3RzICs9IGRlbHRhX3Q7CisvLworLy8gICAgICAgIC8vIDExLiBDb252ZXJ0IEdTVCB0byBVVCBhbmQgdGhlbiB0byBsb2NhbCBjaXZpbCB0aW1lCisvLyAgICAgICAgZG91YmxlIHV0ID0gZ3N0VG9VdChyaXNlID8gZ3N0ciA6IGdzdHMpOworLy8gICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKChyaXNlPyJyaXNlPSI6InNldD0iKSArIHV0ICsgIiwgZGVsdGFfdD0iICsgZGVsdGFfdCk7CisvLyAgICAgICAgbG9uZyBtaWRuaWdodCA9IERBWV9NUyAqICh0aW1lIC8gREFZX01TKTsgLy8gRmluZCBVVCBtaWRuaWdodCBvbiB0aGlzIGRheQorLy8gICAgICAgIHJldHVybiBtaWRuaWdodCArIChsb25nKSAodXQgKiAzNjAwMDAwKTsKKy8vICAgIH0KKworLy8gQ29tbWVudGVkIG91dCAtIGN1cnJlbnRseSB1bnVzZWQuIElDVSAyLjYsIEFsYW4KKy8vICAgIC8qKgorLy8gICAgICogQ29udmVydCBsb2NhbCBzaWRlcmVhbCB0aW1lIHRvIEdyZWVud2ljaCBzaWRlcmVhbCB0aW1lLgorLy8gICAgICogU2VjdGlvbiAxNS4gIER1ZmZldHQtU21pdGggcC4yMQorLy8gICAgICogQHBhcmFtIGxzdCBpbiBob3VycyAoMC4uMjQpCisvLyAgICAgKiBAcmV0dXJuIEdTVCBpbiBob3VycyAoMC4uMjQpCisvLyAgICAgKi8KKy8vICAgIGRvdWJsZSBsc3RUb0dzdChkb3VibGUgbHN0KSB7CisvLyAgICAgICAgZG91YmxlIGRlbHRhID0gZkxvbmdpdHVkZSAqIDI0IC8gUEkyOworLy8gICAgICAgIHJldHVybiBub3JtYWxpemUobHN0IC0gZGVsdGEsIDI0KTsKKy8vICAgIH0KKyAKKy8vIENvbW1lbnRlZCBvdXQgLSBjdXJyZW50bHkgdW51c2VkLiBJQ1UgMi42LCBBbGFuCisvLyAgICAvKioKKy8vICAgICAqIENvbnZlcnQgVVQgdG8gR1NUIG9uIHRoaXMgZGF0ZS4KKy8vICAgICAqIFNlY3Rpb24gMTIuICBEdWZmZXR0LVNtaXRoIHAuMTcKKy8vICAgICAqIEBwYXJhbSB1dCBpbiBob3VycworLy8gICAgICogQHJldHVybiBHU1QgaW4gaG91cnMKKy8vICAgICAqLworLy8gICAgZG91YmxlIHV0VG9Hc3QoZG91YmxlIHV0KSB7CisvLyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShnZXRUMCgpICsgdXQqMS4wMDI3Mzc5MDksIDI0KTsKKy8vICAgIH0KKworLy8gQ29tbWVudGVkIG91dCAtIGN1cnJlbnRseSB1bnVzZWQuIElDVSAyLjYsIEFsYW4KKy8vICAgIC8qKgorLy8gICAgICogQ29udmVydCBHU1QgdG8gVVQgb24gdGhpcyBkYXRlLgorLy8gICAgICogU2VjdGlvbiAxMy4gIER1ZmZldHQtU21pdGggcC4xOAorLy8gICAgICogQHBhcmFtIGdzdCBpbiBob3VycworLy8gICAgICogQHJldHVybiBVVCBpbiBob3VycworLy8gICAgICovCisvLyAgICBkb3VibGUgZ3N0VG9VdChkb3VibGUgZ3N0KSB7CisvLyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShnc3QgLSBnZXRUMCgpLCAyNCkgKiAwLjk5NzI2OTU2NjM7CisvLyAgICB9CisKKy8vIENvbW1lbnRlZCBvdXQgLSBjdXJyZW50bHkgdW51c2VkLiBJQ1UgMi42LCBBbGFuCisvLyAgICBkb3VibGUgZ2V0VDAoKSB7CisvLyAgICAgICAgLy8gQ29tbW9uIGNvbXB1dGF0aW9uIGZvciBVVCA8PT4gR1NUCisvLworLy8gICAgICAgIC8vIEZpbmQgSkQgZm9yIDBoIFVUCisvLyAgICAgICAgZG91YmxlIGpkID0gTWF0aC5mbG9vcihnZXRKdWxpYW5EYXkoKSAtIDAuNSkgKyAwLjU7CisvLworLy8gICAgICAgIGRvdWJsZSBzID0gamQgLSAyNDUxNTQ1LjA7CisvLyAgICAgICAgZG91YmxlIHQgPSBzIC8gMzY1MjUuMDsKKy8vICAgICAgICBkb3VibGUgdDAgPSA2LjY5NzM3NDU1OCArICgyNDAwLjA1MTMzNiArIDAuMDAwMDI1ODYyKnQpKnQ7CisvLyAgICAgICAgcmV0dXJuIHQwOworLy8gICAgfQorCisvLyBDb21tZW50ZWQgb3V0IC0gY3VycmVudGx5IHVudXNlZC4gSUNVIDIuNiwgQWxhbgorLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAvLyBBbHRlcm5hdGUgU3VuIFJpc2UvU2V0CisvLyAgICAvLyBTZWUgc2NpLmFzdHJvIEZBUQorLy8gICAgLy8gaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2FzdHJvbm9teS9mYXEvcGFydDMvc2VjdGlvbi01Lmh0bWwKKy8vICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgIC8vIE5vdGU6IFRoaXMgbWV0aG9kIGFwcGVhcnMgdG8gcHJvZHVjZSBpbmZlcmlvciBhY2N1cmFjeSBhcworLy8gICAgLy8gY29tcGFyZWQgdG8gZ2V0U3VuUmlzZVNldCgpLiAKKy8vCisvLyAgICAvKioKKy8vICAgICAqIFRPRE8gTWFrZSB0aGlzIHB1YmxpYyB3aGVuIHRoZSBlbnRpcmUgY2xhc3MgaXMgcGFja2FnZS1wcml2YXRlLgorLy8gICAgICovCisvLyAgICAvKnB1YmxpYyovIGxvbmcgZ2V0U3VuUmlzZVNldDMoYm9vbGVhbiByaXNlKSB7CisvLworLy8gICAgICAgIC8vIENvbXB1dGUgZGF5IG51bWJlciBmb3IgMC4wIEphbiAyMDAwIGVwb2NoCisvLyAgICAgICAgZG91YmxlIGQgPSAoZG91YmxlKSh0aW1lIC0gRVBPQ0hfMjAwMF9NUykgLyBEQVlfTVM7CisvLworLy8gICAgICAgIC8vIE5vdyBjb21wdXRlIHRoZSBMb2NhbCBTaWRlcmVhbCBUaW1lLCBMU1Q6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgZG91YmxlIExTVCAgPSAgOTguOTgxOCAgKyAgMC45ODU2NDczNTIgKiBkICArICAvKlVUKjE1ICArICBsb25nKi8KKy8vICAgICAgICAgICAgZkxvbmdpdHVkZSpSQURfREVHOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIChlYXN0IGxvbmcuIHBvc2l0aXZlKS4gIE5vdGUgdGhhdCBMU1QgaXMgaGVyZSBleHByZXNzZWQgaW4gZGVncmVlcywKKy8vICAgICAgICAvLyB3aGVyZSAxNSBkZWdyZWVzIGNvcnJlc3BvbmRzIHRvIG9uZSBob3VyLiAgU2luY2UgTFNUIHJlYWxseSBpcyBhbiBhbmdsZSwKKy8vICAgICAgICAvLyBpdCdzIGNvbnZlbmllbnQgdG8gdXNlIG9uZSB1bml0LS0tZGVncmVlcy0tLXRocm91Z2hvdXQuCisvLworLy8gICAgICAgIC8vICAgICBDT01QVVRJTkcgVEhFIFNVTidTIFBPU0lUSU9OCisvLyAgICAgICAgLy8gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBUbyBiZSBhYmxlIHRvIGNvbXB1dGUgdGhlIFN1bidzIHJpc2Uvc2V0IHRpbWVzLCB5b3UgbmVlZCB0byBiZSBhYmxlIHRvCisvLyAgICAgICAgLy8gY29tcHV0ZSB0aGUgU3VuJ3MgcG9zaXRpb24gYXQgYW55IHRpbWUuICBGaXJzdCBjb21wdXRlIHRoZSAiZGF5CisvLyAgICAgICAgLy8gbnVtYmVyIiBkIGFzIG91dGxpbmVkIGFib3ZlLCBmb3IgdGhlIGRlc2lyZWQgbW9tZW50LiAgTmV4dCBjb21wdXRlOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIGRvdWJsZSBvYmxlY2wgPSAyMy40MzkzIC0gMy41NjNFLTcgKiBkOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIGRvdWJsZSB3ICA9ICAyODIuOTQwNCAgKyAgNC43MDkzNUUtNSAgICogZDsKKy8vICAgICAgICBkb3VibGUgTSAgPSAgMzU2LjA0NzAgICsgIDAuOTg1NjAwMjU4NSAqIGQ7CisvLyAgICAgICAgZG91YmxlIGUgID0gIDAuMDE2NzA5ICAtICAxLjE1MUUtOSAgICAgKiBkOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRoaXMgaXMgdGhlIG9ibGlxdWl0eSBvZiB0aGUgZWNsaXB0aWMsIHBsdXMgc29tZSBvZiB0aGUgZWxlbWVudHMgb2YKKy8vICAgICAgICAvLyB0aGUgU3VuJ3MgYXBwYXJlbnQgb3JiaXQgKGkuZS4sIHJlYWxseSB0aGUgRWFydGgncyBvcmJpdCk6IHcgPQorLy8gICAgICAgIC8vIGFyZ3VtZW50IG9mIHBlcmloZWxpb24sIE0gPSBtZWFuIGFub21hbHksIGUgPSBlY2NlbnRyaWNpdHkuCisvLyAgICAgICAgLy8gU2VtaS1tYWpvciBheGlzIGlzIGhlcmUgYXNzdW1lZCB0byBiZSBleGFjdGx5IDEuMCAod2hpbGUgbm90IHN0cmljdGx5CisvLyAgICAgICAgLy8gdHJ1ZSwgdGhpcyBpcyBzdGlsbCBhbiBhY2N1cmF0ZSBhcHByb3hpbWF0aW9uKS4gIE5leHQgY29tcHV0ZSBFLCB0aGUKKy8vICAgICAgICAvLyBlY2NlbnRyaWMgYW5vbWFseToKKy8vICAgICAgICAvLyAKKy8vICAgICAgICBkb3VibGUgRSA9IE0gKyBlKigxODAvUEkpICogTWF0aC5zaW4oTSpERUdfUkFEKSAqICggMS4wICsgZSpNYXRoLmNvcyhNKkRFR19SQUQpICk7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gd2hlcmUgRSBhbmQgTSBhcmUgaW4gZGVncmVlcy4gIFRoaXMgaXMgaXQtLS1ubyBmdXJ0aGVyIGl0ZXJhdGlvbnMgYXJlCisvLyAgICAgICAgLy8gbmVlZGVkIGJlY2F1c2Ugd2Uga25vdyBlIGhhcyBhIHN1ZmZpY2llbnRseSBzbWFsbCB2YWx1ZS4gIE5leHQgY29tcHV0ZQorLy8gICAgICAgIC8vIHRoZSB0cnVlIGFub21hbHksIHYsIGFuZCB0aGUgZGlzdGFuY2UsIHI6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLyogICAgICByICogY29zKHYpICA9ICAqLyBkb3VibGUgQSAgPSAgTWF0aC5jb3MoRSpERUdfUkFEKSAtIGU7CisvLyAgICAgICAgLyogICAgICByICogc2luKHYpICA9ICAqLyBkb3VibGUgQiAgPSAgTWF0aC5zcXJ0KDEgLSBlKmUpICogTWF0aC5zaW4oRSpERUdfUkFEKTsKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBhbmQKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyAgICAgIHIgID0gIHNxcnQoIEEqQSArIEIqQiApCisvLyAgICAgICAgZG91YmxlIHYgID0gIE1hdGguYXRhbjIoIEIsIEEgKSpSQURfREVHOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRoZSBTdW4ncyB0cnVlIGxvbmdpdHVkZSwgc2xvbiwgY2FuIG5vdyBiZSBjb21wdXRlZDoKKy8vICAgICAgICAvLyAKKy8vICAgICAgICBkb3VibGUgc2xvbiAgPSAgdiArIHc7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gU2luY2UgdGhlIFN1biBpcyBhbHdheXMgYXQgdGhlIGVjbGlwdGljIChvciBhdCBsZWFzdCB2ZXJ5IHZlcnkgY2xvc2UgdG8KKy8vICAgICAgICAvLyBpdCksIHdlIGNhbiB1c2Ugc2ltcGxpZmllZCBmb3JtdWxhZSB0byBjb252ZXJ0IHNsb24gKHRoZSBTdW4ncyBlY2xpcHRpYworLy8gICAgICAgIC8vIGxvbmdpdHVkZSkgdG8gc1JBIGFuZCBzRGVjICh0aGUgU3VuJ3MgUkEgYW5kIERlYyk6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgc2luKHNsb24pICogY29zKG9ibGVjbCkKKy8vICAgICAgICAvLyAgICAgdGFuKHNSQSkgID0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICAgICAvLyAgICAgICAgICAgICBjb3Moc2xvbikKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyAgICAgc2luKHNEZWMpID0gIHNpbihvYmxlY2wpICogc2luKHNsb24pCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gQXMgd2FzIHRoZSBjYXNlIHdoZW4gY29tcHV0aW5nIGF6LCB0aGUgQXppbXV0aCwgaWYgcG9zc2libGUgdXNlIGFuCisvLyAgICAgICAgLy8gYXRhbjIoKSBmdW5jdGlvbiB0byBjb21wdXRlIHNSQS4KKy8vCisvLyAgICAgICAgZG91YmxlIHNSQSA9IE1hdGguYXRhbjIoTWF0aC5zaW4oc2xvbipERUdfUkFEKSAqIE1hdGguY29zKG9ibGVjbCpERUdfUkFEKSwgTWF0aC5jb3Moc2xvbipERUdfUkFEKSkqUkFEX0RFRzsKKy8vCisvLyAgICAgICAgZG91YmxlIHNpbl9zRGVjID0gTWF0aC5zaW4ob2JsZWNsKkRFR19SQUQpICogTWF0aC5zaW4oc2xvbipERUdfUkFEKTsKKy8vICAgICAgICBkb3VibGUgc0RlYyA9IE1hdGguYXNpbihzaW5fc0RlYykqUkFEX0RFRzsKKy8vCisvLyAgICAgICAgLy8gICAgIENPTVBVVElORyBSSVNFIEFORCBTRVQgVElNRVMKKy8vICAgICAgICAvLyAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRvIGNvbXB1dGUgd2hlbiBhbiBvYmplY3QgcmlzZXMgb3Igc2V0cywgeW91IG11c3QgY29tcHV0ZSB3aGVuIGl0CisvLyAgICAgICAgLy8gcGFzc2VzIHRoZSBtZXJpZGlhbiBhbmQgdGhlIEhBIG9mIHJpc2Uvc2V0LiAgVGhlbiB0aGUgcmlzZSB0aW1lIGlzCisvLyAgICAgICAgLy8gdGhlIG1lcmlkaWFuIHRpbWUgbWludXMgSEEgZm9yIHJpc2Uvc2V0LCBhbmQgdGhlIHNldCB0aW1lIGlzIHRoZQorLy8gICAgICAgIC8vIG1lcmlkaWFuIHRpbWUgcGx1cyB0aGUgSEEgZm9yIHJpc2Uvc2V0LgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRvIGZpbmQgdGhlIG1lcmlkaWFuIHRpbWUsIGNvbXB1dGUgdGhlIExvY2FsIFNpZGVyZWFsIFRpbWUgYXQgMGggbG9jYWwKKy8vICAgICAgICAvLyB0aW1lIChvciAwaCBVVCBpZiB5b3UgcHJlZmVyIHRvIHdvcmsgaW4gVVQpIGFzIG91dGxpbmVkIGFib3ZlLS0tbmFtZQorLy8gICAgICAgIC8vIHRoYXQgcXVhbnRpdHkgTFNUMC4gIFRoZSBNZXJpZGlhbiBUaW1lLCBNVCwgd2lsbCBub3cgYmU6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gICAgIE1UICA9ICBSQSAtIExTVDAKKy8vICAgICAgICBkb3VibGUgTVQgPSBub3JtYWxpemUoc1JBIC0gTFNULCAzNjApOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIHdoZXJlICJSQSIgaXMgdGhlIG9iamVjdCdzIFJpZ2h0IEFzY2Vuc2lvbiAoaW4gZGVncmVlcyEpLiAgSWYgbmVnYXRpdmUsCisvLyAgICAgICAgLy8gYWRkIDM2MCBkZWcgdG8gTVQuICBJZiB0aGUgb2JqZWN0IGlzIHRoZSBTdW4sIGxlYXZlIHRoZSB0aW1lIGFzIGl0IGlzLAorLy8gICAgICAgIC8vIGJ1dCBpZiBpdCdzIHN0ZWxsYXIsIG11bHRpcGx5IE1UIGJ5IDM2NS4yNDIyLzM2Ni4yNDIyLCB0byBjb252ZXJ0IGZyb20KKy8vICAgICAgICAvLyBzaWRlcmVhbCB0byBzb2xhciB0aW1lLiAgTm93LCBjb21wdXRlIEhBIGZvciByaXNlL3NldCwgbmFtZSB0aGF0CisvLyAgICAgICAgLy8gcXVhbnRpdHkgSEEwOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgICAgICAgICAgICAgICBzaW4oaDApICAtICBzaW4obGF0KSAqIHNpbihEZWMpCisvLyAgICAgICAgLy8gY29zKEhBMCkgID0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGNvcyhsYXQpICogY29zKERlYykKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyB3aGVyZSBoMCBpcyB0aGUgYWx0aXR1ZGUgc2VsZWN0ZWQgdG8gcmVwcmVzZW50IHJpc2Uvc2V0LiAgRm9yIGEgcHVyZWx5CisvLyAgICAgICAgLy8gbWF0aGVtYXRpY2FsIGhvcml6b24sIHNldCBoMCA9IDAgYW5kIHNpbXBsaWZ5IHRvOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgICBjb3MoSEEwKSAgPSAgLSB0YW4obGF0KSAqIHRhbihEZWMpCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gSWYgeW91IHdhbnQgdG8gYWNjb3VudCBmb3IgcmVmcmFjdGlvbiBvbiB0aGUgYXRtb3NwaGVyZSwgc2V0IGgwID0gLTM1LzYwCisvLyAgICAgICAgLy8gZGVncmVlcyAoLTM1IGFyYyBtaW51dGVzKSwgYW5kIGlmIHlvdSB3YW50IHRvIGNvbXB1dGUgdGhlIHJpc2Uvc2V0IHRpbWVzCisvLyAgICAgICAgLy8gZm9yIHRoZSBTdW4ncyB1cHBlciBsaW1iLCBzZXQgaDAgPSAtNTAvNjAgKC01MCBhcmMgbWludXRlcykuCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgZG91YmxlIGgwID0gLTUwLzYwICogREVHX1JBRDsKKy8vCisvLyAgICAgICAgZG91YmxlIEhBMCA9IE1hdGguYWNvcygKKy8vICAgICAgICAgIChNYXRoLnNpbihoMCkgLSBNYXRoLnNpbihmTGF0aXR1ZGUpICogc2luX3NEZWMpIC8KKy8vICAgICAgICAgIChNYXRoLmNvcyhmTGF0aXR1ZGUpICogTWF0aC5jb3Moc0RlYypERUdfUkFEKSkpKlJBRF9ERUc7CisvLworLy8gICAgICAgIC8vIFdoZW4gSEEwIGhhcyBiZWVuIGNvbXB1dGVkLCBsZWF2ZSBpdCBhcyBpdCBpcyBmb3IgdGhlIFN1biBidXQgbXVsdGlwbHkKKy8vICAgICAgICAvLyBieSAzNjUuMjQyMi8zNjYuMjQyMiBmb3Igc3RlbGxhciBvYmplY3RzLCB0byBjb252ZXJ0IGZyb20gc2lkZXJlYWwgdG8KKy8vICAgICAgICAvLyBzb2xhciB0aW1lLiAgRmluYWxseSBjb21wdXRlOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgIFJpc2UgdGltZSAgPSAgTVQgLSBIQTAKKy8vICAgICAgICAvLyAgICBTZXQgIHRpbWUgID0gIE1UICsgSEEwCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gY29udmVydCB0aGUgdGltZXMgZnJvbSBkZWdyZWVzIHRvIGhvdXJzIGJ5IGRpdmlkaW5nIGJ5IDE1LgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIElmIHlvdSdkIGxpa2UgdG8gY2hlY2sgdGhhdCB5b3VyIGNhbGN1bGF0aW9ucyBhcmUgYWNjdXJhdGUgb3IganVzdAorLy8gICAgICAgIC8vIG5lZWQgYSBxdWljayByZXN1bHQsIGNoZWNrIHRoZSBVU05PJ3MgU3VuIG9yIE1vb24gUmlzZS9TZXQgVGFibGUsCisvLyAgICAgICAgLy8gPFVSTDpodHRwOi8vYWEudXNuby5uYXZ5Lm1pbC9BQS9kYXRhL2RvY3MvUlNfT25lWWVhci5odG1sPi4KKy8vCisvLyAgICAgICAgZG91YmxlIHJlc3VsdCA9IE1UICsgKHJpc2UgPyAtSEEwIDogSEEwKTsgLy8gaW4gZGVncmVlcworLy8KKy8vICAgICAgICAvLyBGaW5kIFVUIG1pZG5pZ2h0IG9uIHRoaXMgZGF5CisvLyAgICAgICAgbG9uZyBtaWRuaWdodCA9IERBWV9NUyAqICh0aW1lIC8gREFZX01TKTsKKy8vCisvLyAgICAgICAgcmV0dXJuIG1pZG5pZ2h0ICsgKGxvbmcpIChyZXN1bHQgKiAzNjAwMDAwIC8gMTUpOworLy8gICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGhlIE1vb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25MMCA9IDMxOC4zNTE2NDggKiBQSS8xODA7ICAgLy8gTWVhbiBsb25nLiBhdCBlcG9jaAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vblAwID0gIDM2LjM0MDQxMCAqIFBJLzE4MDsgICAvLyBNZWFuIGxvbmcuIG9mIHBlcmlnZWUKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25OMCA9IDMxOC41MTAxMDcgKiBQSS8xODA7ICAgLy8gTWVhbiBsb25nLiBvZiBub2RlCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uSSAgPSAgIDUuMTQ1MzY2ICogUEkvMTgwOyAgIC8vIEluY2xpbmF0aW9uIG9mIG9yYml0CisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uRSAgPSAgIDAuMDU0OTAwOyAgICAgICAgICAgIC8vIEVjY2VudHJpY2l0eSBvZiBvcmJpdAorICAgIAorICAgIC8vIFRoZXNlIGFyZW4ndCB1c2VkIHJpZ2h0IG5vdworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbkEgID0gICAzLjg0NDAxZTU7ICAgICAgICAgICAvLyBzZW1pLW1ham9yIGF4aXMgKGttKQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vblQwID0gICAwLjUxODEgKiBQSS8xODA7ICAgICAvLyBBbmd1bGFyIHNpemUgYXQgZGlzdGFuY2UgQQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vblBpID0gICAwLjk1MDcgKiBQSS8xODA7ICAgICAvLyBQYXJhbGxheCBhdCBkaXN0YW5jZSBBCisgICAgCisgICAgLyoqCisgICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBtb29uIGF0IHRoZSB0aW1lIHNldCBvbiB0aGlzCisgICAgICogb2JqZWN0LCBpbiBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBFcXVhdG9yaWFsIGdldE1vb25Qb3NpdGlvbigpCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyBTZWUgcGFnZSAxNDIgb2YgIlByYWN0aWFsIEFzdHJvbm9teSB3aXRoIHlvdXIgQ2FsY3VsYXRvciIsCisgICAgICAgIC8vIGJ5IFBldGVyIER1ZmZldC1TbWl0aCwgZm9yIGRldGFpbHMgb24gdGhlIGFsZ29yaXRobS4KKyAgICAgICAgLy8KKyAgICAgICAgaWYgKG1vb25Qb3NpdGlvbiA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHNvbGFyIGxvbmdpdHVkZS4gIEhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YKKyAgICAgICAgICAgIC8vIGZpbGxpbmcgaW4gIm1lYW5Bbm9tYWx5U3VuIiBhcyB3ZWxsLgorICAgICAgICAgICAgZG91YmxlIHN1bkxvbmdpdHVkZSA9IGdldFN1bkxvbmdpdHVkZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gRmluZCB0aGUgIyBvZiBkYXlzIHNpbmNlIHRoZSBlcG9jaCBvZiBvdXIgb3JiaXRhbCBwYXJhbWV0ZXJzLgorICAgICAgICAgICAgLy8gVE9ETzogQ29udmVydCB0aGUgdGltZSBvZiBkYXkgcG9ydGlvbiBpbnRvIGVwaGVtZXJpcyB0aW1lCisgICAgICAgICAgICAvLworICAgICAgICAgICAgZG91YmxlIGRheSA9IGdldEp1bGlhbkRheSgpIC0gSkRfRVBPQ0g7ICAgICAgIC8vIERheXMgc2luY2UgZXBvY2gKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBtZWFuIGxvbmdpdHVkZSBhbmQgYW5vbWFseSBvZiB0aGUgbW9vbiwgYmFzZWQgb24KKyAgICAgICAgICAgIC8vIGEgY2lyY3VsYXIgb3JiaXQuICBTaW1pbGFyIHRvIHRoZSBjb3JyZXNwb25kaW5nIHNvbGFyIGNhbGN1bGF0aW9uLgorICAgICAgICAgICAgZG91YmxlIG1lYW5Mb25naXR1ZGUgPSBub3JtMlBJKDEzLjE3NjM5NjYqUEkvMTgwKmRheSArIG1vb25MMCk7CisgICAgICAgICAgICBkb3VibGUgbWVhbkFub21hbHlNb29uID0gbm9ybTJQSShtZWFuTG9uZ2l0dWRlIC0gMC4xMTE0MDQxKlBJLzE4MCAqIGRheSAtIG1vb25QMCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGZvbGxvd2luZyBjb3JyZWN0aW9uczoKKyAgICAgICAgICAgIC8vICBFdmVjdGlvbjogICB0aGUgc3VuJ3MgZ3Jhdml0eSBhZmZlY3RzIHRoZSBtb29uJ3MgZWNjZW50cmljaXR5CisgICAgICAgICAgICAvLyAgQW5udWFsIEVxbjogdmFyaWF0aW9uIGluIHRoZSBlZmZlY3QgZHVlIHRvIGVhcnRoLXN1biBkaXN0YW5jZQorICAgICAgICAgICAgLy8gIEEzOiAgICAgICAgIGNvcnJlY3Rpb24gZmFjdG9yIChmb3IgPz8/KQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGRvdWJsZSBldmVjdGlvbiA9IDEuMjczOSpQSS8xODAgKiBNYXRoLnNpbigyICogKG1lYW5Mb25naXR1ZGUgLSBzdW5Mb25naXR1ZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1lYW5Bbm9tYWx5TW9vbik7CisgICAgICAgICAgICBkb3VibGUgYW5udWFsICAgPSAwLjE4NTgqUEkvMTgwICogTWF0aC5zaW4obWVhbkFub21hbHlTdW4pOworICAgICAgICAgICAgZG91YmxlIGEzICAgICAgID0gMC4zNzAwKlBJLzE4MCAqIE1hdGguc2luKG1lYW5Bbm9tYWx5U3VuKTsKKworICAgICAgICAgICAgbWVhbkFub21hbHlNb29uICs9IGV2ZWN0aW9uIC0gYW5udWFsIC0gYTM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBNb3JlIGNvcnJlY3Rpb24gZmFjdG9yczoKKyAgICAgICAgICAgIC8vICBjZW50ZXIgIGVxdWF0aW9uIG9mIHRoZSBjZW50ZXIgY29ycmVjdGlvbgorICAgICAgICAgICAgLy8gIGE0ICAgICAgeWV0IGFub3RoZXIgZXJyb3IgY29ycmVjdGlvbiAoPz8/KQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFRPRE86IFNraXAgdGhlIGVxdWF0aW9uIG9mIHRoZSBjZW50ZXIgY29ycmVjdGlvbiBhbmQgc29sdmUgS2VwbGVyJ3MgZXFuPworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGRvdWJsZSBjZW50ZXIgPSA2LjI4ODYqUEkvMTgwICogTWF0aC5zaW4obWVhbkFub21hbHlNb29uKTsKKyAgICAgICAgICAgIGRvdWJsZSBhNCA9ICAgICAwLjIxNDAqUEkvMTgwICogTWF0aC5zaW4oMiAqIG1lYW5Bbm9tYWx5TW9vbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdyBmaW5kIHRoZSBtb29uJ3MgY29ycmVjdGVkIGxvbmdpdHVkZQorICAgICAgICAgICAgbW9vbkxvbmdpdHVkZSA9IG1lYW5Mb25naXR1ZGUgKyBldmVjdGlvbiArIGNlbnRlciAtIGFubnVhbCArIGE0OworCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQW5kIGZpbmFsbHksIGZpbmQgdGhlIHZhcmlhdGlvbiwgY2F1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgdGhlIHN1bidzCisgICAgICAgICAgICAvLyBncmF2aXRhdGlvbmFsIHB1bGwgb24gdGhlIG1vb24gdmFyaWVzIGRlcGVuZGluZyBvbiB3aGljaCBzaWRlIG9mCisgICAgICAgICAgICAvLyB0aGUgZWFydGggdGhlIG1vb24gaXMgb24KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBkb3VibGUgdmFyaWF0aW9uID0gMC42NTgzKlBJLzE4MCAqIE1hdGguc2luKDIqKG1vb25Mb25naXR1ZGUgLSBzdW5Mb25naXR1ZGUpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbW9vbkxvbmdpdHVkZSArPSB2YXJpYXRpb247CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBXaGF0IHdlJ3ZlIGNhbGN1bGF0ZWQgc28gZmFyIGlzIHRoZSBtb29uJ3MgbG9uZ2l0dWRlIGluIHRoZSBwbGFuZQorICAgICAgICAgICAgLy8gb2YgaXRzIG93biBvcmJpdC4gIE5vdyBtYXAgdG8gdGhlIGVjbGlwdGljIHRvIGdldCB0aGUgbGF0aXR1ZGUKKyAgICAgICAgICAgIC8vIGFuZCBsb25naXR1ZGUuICBGaXJzdCB3ZSBuZWVkIHRvIGZpbmQgdGhlIGxvbmdpdHVkZSBvZiB0aGUgYXNjZW5kaW5nCisgICAgICAgICAgICAvLyBub2RlLCB0aGUgcG9zaXRpb24gb24gdGhlIGVjbGlwdGljIHdoZXJlIGl0IGlzIGNyb3NzZWQgYnkgdGhlIG1vb24ncworICAgICAgICAgICAgLy8gb3JiaXQgYXMgaXQgY3Jvc3NlcyBmcm9tIHRoZSBzb3V0aGVybiB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBkb3VibGUgbm9kZUxvbmdpdHVkZSA9IG5vcm0yUEkobW9vbk4wIC0gMC4wNTI5NTM5KlBJLzE4MCAqIGRheSk7CisKKyAgICAgICAgICAgIG5vZGVMb25naXR1ZGUgLT0gMC4xNipQSS8xODAgKiBNYXRoLnNpbihtZWFuQW5vbWFseVN1bik7CisKKyAgICAgICAgICAgIGRvdWJsZSB5ID0gTWF0aC5zaW4obW9vbkxvbmdpdHVkZSAtIG5vZGVMb25naXR1ZGUpOworICAgICAgICAgICAgZG91YmxlIHggPSBNYXRoLmNvcyhtb29uTG9uZ2l0dWRlIC0gbm9kZUxvbmdpdHVkZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1vb25FY2xpcExvbmcgPSBNYXRoLmF0YW4yKHkqTWF0aC5jb3MobW9vbkkpLCB4KSArIG5vZGVMb25naXR1ZGU7CisgICAgICAgICAgICBkb3VibGUgbW9vbkVjbGlwTGF0ID0gTWF0aC5hc2luKHkgKiBNYXRoLnNpbihtb29uSSkpOworCisgICAgICAgICAgICBtb29uUG9zaXRpb24gPSBlY2xpcHRpY1RvRXF1YXRvcmlhbChtb29uRWNsaXBMb25nLCBtb29uRWNsaXBMYXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtb29uUG9zaXRpb247CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSAiYWdlIiBvZiB0aGUgbW9vbiBhdCB0aGUgdGltZSBzcGVjaWZpZWQgaW4gdGhpcyBvYmplY3QuCisgICAgICogVGhpcyBpcyByZWFsbHkgdGhlIGFuZ2xlIGJldHdlZW4gdGhlCisgICAgICogY3VycmVudCBlY2xpcHRpYyBsb25naXR1ZGVzIG9mIHRoZSBzdW4gYW5kIHRoZSBtb29uLAorICAgICAqIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNb29uUGhhc2UKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldE1vb25BZ2UoKSB7CisgICAgICAgIC8vIFNlZSBwYWdlIDE0NyBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAvLworICAgICAgICAvLyBGb3JjZSB0aGUgbW9vbidzIHBvc2l0aW9uIHRvIGJlIGNhbGN1bGF0ZWQuICBXZSdyZSBnb2luZyB0byB1c2UKKyAgICAgICAgLy8gc29tZSB0aGUgaW50ZXJtZWRpYXRlIHJlc3VsdHMgY2FjaGVkIGR1cmluZyB0aGF0IGNhbGN1bGF0aW9uLgorICAgICAgICAvLworICAgICAgICBnZXRNb29uUG9zaXRpb24oKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBub3JtMlBJKG1vb25FY2xpcExvbmcgLSBzdW5Mb25naXR1ZGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGUgdGhlIHBoYXNlIG9mIHRoZSBtb29uIGF0IHRoZSB0aW1lIHNldCBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiBUaGUgcmV0dXJuZWQgcGhhc2UgaXMgYSA8Y29kZT5kb3VibGU8L2NvZGU+IGluIHRoZSByYW5nZQorICAgICAqIDxjb2RlPjAgPD0gcGhhc2UgPCAxPC9jb2RlPiwgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjAuMDA6IE5ldyBtb29uCisgICAgICogPGxpPjAuMjU6IEZpcnN0IHF1YXJ0ZXIKKyAgICAgKiA8bGk+MC41MDogRnVsbCBtb29uCisgICAgICogPGxpPjAuNzU6IExhc3QgcXVhcnRlcgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNb29uQWdlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRNb29uUGhhc2UoKSB7CisgICAgICAgIC8vIFNlZSBwYWdlIDE0NyBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICByZXR1cm4gMC41ICogKDEgLSBNYXRoLmNvcyhnZXRNb29uQWdlKCkpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTW9vbkFnZSB7CisgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgTW9vbkFnZShkb3VibGUgdmFsKSB7IHZhbHVlID0gdmFsOyB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyBhIG5ldyBtb29uLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldE1vb25UaW1lKE1vb25BZ2UsIGJvb2xlYW4pIGdldE1vb25UaW1lfQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9vbkFnZSBORVdfTU9PTiAgICAgID0gbmV3IE1vb25BZ2UoMCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIG1vb24ncyBmaXJzdCBxdWFydGVyLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldE1vb25UaW1lKE1vb25BZ2UsIGJvb2xlYW4pIGdldE1vb25UaW1lfQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9vbkFnZSBGSVJTVF9RVUFSVEVSID0gbmV3IE1vb25BZ2UoUEkvMik7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIGEgZnVsbCBtb29uLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldE1vb25UaW1lKE1vb25BZ2UsIGJvb2xlYW4pIGdldE1vb25UaW1lfQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9vbkFnZSBGVUxMX01PT04gICAgID0gbmV3IE1vb25BZ2UoUEkpOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyB0aGUgbW9vbidzIGxhc3QgcXVhcnRlci4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRNb29uVGltZShNb29uQWdlLCBib29sZWFuKSBnZXRNb29uVGltZX0KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vb25BZ2UgTEFTVF9RVUFSVEVSICA9IG5ldyBNb29uQWdlKChQSSozKS8yKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBuZXh0IG9yIHByZXZpb3VzIHRpbWUgYXQgd2hpY2ggdGhlIE1vb24ncyBlY2xpcHRpYworICAgICAqIGxvbmdpdHVkZSB3aWxsIGhhdmUgdGhlIGRlc2lyZWQgdmFsdWUuICAKKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZGVzaXJlZCAgIFRoZSBkZXNpcmVkIGxvbmdpdHVkZS4KKyAgICAgKiBAcGFyYW0gbmV4dCAgICAgIDx0dD50cnVlPC90dD4gaWYgdGhlIG5leHQgb2NjdXJyYW5jZSBvZiB0aGUgcGhhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlzIGRlc2lyZWQsIDx0dD5mYWxzZTwvdHQ+IGZvciB0aGUgcHJldmlvdXMgb2NjdXJyYW5jZS4gCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0TW9vblRpbWUoZG91YmxlIGRlc2lyZWQsIGJvb2xlYW4gbmV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aW1lT2ZBbmdsZSggbmV3IEFuZ2xlRnVuYygpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgZG91YmxlIGV2YWwoKSB7IHJldHVybiBnZXRNb29uQWdlKCk7IH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpcmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZTk9ESUNfTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUlOVVRFX01TLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBuZXh0IG9yIHByZXZpb3VzIHRpbWUgYXQgd2hpY2ggdGhlIG1vb24gd2lsbCBiZSBpbiB0aGUKKyAgICAgKiBkZXNpcmVkIHBoYXNlLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBkZXNpcmVkICAgVGhlIGRlc2lyZWQgcGhhc2Ugb2YgdGhlIG1vb24uCisgICAgICogQHBhcmFtIG5leHQgICAgICA8dHQ+dHJ1ZTwvdHQ+IGlmIHRoZSBuZXh0IG9jY3VycmFuY2Ugb2YgdGhlIHBoYXNlCisgICAgICogICAgICAgICAgICAgICAgICBpcyBkZXNpcmVkLCA8dHQ+ZmFsc2U8L3R0PiBmb3IgdGhlIHByZXZpb3VzIG9jY3VycmFuY2UuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldE1vb25UaW1lKE1vb25BZ2UgZGVzaXJlZCwgYm9vbGVhbiBuZXh0KSB7CisgICAgICAgIHJldHVybiBnZXRNb29uVGltZShkZXNpcmVkLnZhbHVlLCBuZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGltZSAoR01UKSBvZiBzdW5yaXNlIG9yIHN1bnNldCBvbiB0aGUgbG9jYWwgZGF0ZSB0byB3aGljaAorICAgICAqIHRoaXMgY2FsZW5kYXIgaXMgY3VycmVudGx5IHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRNb29uUmlzZVNldChib29sZWFuIHJpc2UpCisgICAgeworICAgICAgICByZXR1cm4gcmlzZU9yU2V0KG5ldyBDb29yZEZ1bmMoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEVxdWF0b3JpYWwgZXZhbCgpIHsgcmV0dXJuIGdldE1vb25Qb3NpdGlvbigpOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByaXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgIC41MzMgKiBERUdfUkFELCAgICAgICAgLy8gQW5ndWxhciBEaWFtZXRlcgorICAgICAgICAgICAgICAgICAgICAgICAgIDM0IC82MC4wICogREVHX1JBRCwgICAgLy8gUmVmcmFjdGlvbiBjb3JyZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgTUlOVVRFX01TKTsgICAgICAgICAgICAvLyBEZXNpcmVkIGFjY3VyYWN5CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW50ZXJwb2xhdGlvbiBtZXRob2RzIGZvciBmaW5kaW5nIHRoZSB0aW1lIGF0IHdoaWNoIGEgZ2l2ZW4gZXZlbnQgb2NjdXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgQW5nbGVGdW5jIHsKKyAgICAgICAgcHVibGljIGRvdWJsZSBldmFsKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgbG9uZyB0aW1lT2ZBbmdsZShBbmdsZUZ1bmMgZnVuYywgZG91YmxlIGRlc2lyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBwZXJpb2REYXlzLCBsb25nIGVwc2lsb24sIGJvb2xlYW4gbmV4dCkKKyAgICB7CisgICAgICAgIC8vIEZpbmQgdGhlIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBhdCB0aGUgY3VycmVudCB0aW1lCisgICAgICAgIGRvdWJsZSBsYXN0QW5nbGUgPSBmdW5jLmV2YWwoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEZpbmQgb3V0IGhvdyBmYXIgd2UgYXJlIGZyb20gdGhlIGRlc2lyZWQgYW5nbGUKKyAgICAgICAgZG91YmxlIGRlbHRhQW5nbGUgPSBub3JtMlBJKGRlc2lyZWQgLSBsYXN0QW5nbGUpIDsKKyAgICAgICAgCisgICAgICAgIC8vIFVzaW5nIHRoZSBhdmVyYWdlIHBlcmlvZCwgZXN0aW1hdGUgdGhlIG5leHQgKG9yIHByZXZpb3VzKSB0aW1lIGF0CisgICAgICAgIC8vIHdoaWNoIHRoZSBkZXNpcmVkIGFuZ2xlIG9jY3Vycy4KKyAgICAgICAgZG91YmxlIGRlbHRhVCA9ICAoZGVsdGFBbmdsZSArIChuZXh0ID8gMCA6IC1QSTIpKSAqIChwZXJpb2REYXlzKkRBWV9NUykgLyBQSTI7CisgICAgICAgIAorICAgICAgICBkb3VibGUgbGFzdERlbHRhVCA9IGRlbHRhVDsgLy8gTGl1CisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gdGltZTsgLy8gTGl1CisgICAgICAgIAorICAgICAgICBzZXRUaW1lKHRpbWUgKyAobG9uZylkZWx0YVQpOworCisgICAgICAgIC8vIE5vdyBpdGVyYXRlIHVudGlsIHdlIGdldCB0aGUgZXJyb3IgYmVsb3cgZXBzaWxvbi4gIFRocm91Z2hvdXQKKyAgICAgICAgLy8gdGhpcyBsb29wIHdlIHVzZSBub3JtUEkgdG8gZ2V0IHZhbHVlcyBpbiB0aGUgcmFuZ2UgLVBpIHRvIFBpLAorICAgICAgICAvLyBzaW5jZSB3ZSdyZSB1c2luZyB0aGVtIGFzIGNvcnJlY3Rpb24gZmFjdG9ycyByYXRoZXIgdGhhbiBhYnNvbHV0ZSBhbmdsZXMuCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIC8vIEV2YWx1YXRlIHRoZSBmdW5jdGlvbiBhdCB0aGUgdGltZSB3ZSd2ZSBlc3RpbWF0ZWQKKyAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9IGZ1bmMuZXZhbCgpOworCisgICAgICAgICAgICAvLyBGaW5kIHRoZSAjIG9mIG1pbGxpc2Vjb25kcyBwZXIgcmFkaWFuIGF0IHRoaXMgcG9pbnQgb24gdGhlIGN1cnZlCisgICAgICAgICAgICBkb3VibGUgZmFjdG9yID0gTWF0aC5hYnMoZGVsdGFUIC8gbm9ybVBJKGFuZ2xlLWxhc3RBbmdsZSkpOworCisgICAgICAgICAgICAvLyBDb3JyZWN0IHRoZSB0aW1lIGVzdGltYXRlIGJhc2VkIG9uIGhvdyBmYXIgb2ZmIHRoZSBhbmdsZSBpcworICAgICAgICAgICAgZGVsdGFUID0gbm9ybVBJKGRlc2lyZWQgLSBhbmdsZSkgKiBmYWN0b3I7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEhBQ0s6CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIElmIGFicyhkZWx0YVQpIGJlZ2lucyB0byBkaXZlcmdlIHdlIG5lZWQgdG8gcXVpdCB0aGlzIGxvb3AuCisgICAgICAgICAgICAvLyBUaGlzIG9ubHkgYXBwZWFycyB0byBoYXBwZW4gd2hlbiBhdHRlbXB0aW5nIHRvIGxvY2F0ZSwgZm9yCisgICAgICAgICAgICAvLyBleGFtcGxlLCBhIG5ldyBtb29uIG9uIHRoZSBkYXkgb2YgdGhlIG5ldyBtb29uLiAgRS5nLjoKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gVGhpcyByZXN1bHQgaXMgY29ycmVjdDoKKyAgICAgICAgICAgIC8vIG5ld01vb24oNzUwOChNb24gSnVsIDIzIDAwOjAwOjAwIENTVCAxOTkwLGZhbHNlKSk9CisgICAgICAgICAgICAvLyAgIFN1biBKdWwgMjIgMTA6NTc6NDEgQ1NUIDE5OTAKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gQnV0IGF0dGVtcHRpbmcgdG8gbWFrZSB0aGUgc2FtZSBjYWxsIGEgZGF5IGVhcmxpZXIgY2F1c2VzIGRlbHRhVAorICAgICAgICAgICAgLy8gdG8gZGl2ZXJnZToKKyAgICAgICAgICAgIC8vIENhbGVuZGFyQXN0cm9ub21lci50aW1lT2ZBbmdsZSgpIGRpdmVyZ2luZzogMS4zNDg1MDg3Mjc1NzU2MjVFOSAtPgorICAgICAgICAgICAgLy8gICAxLjM2NDk4Mjg1NDAyMjQwMzJFOQorICAgICAgICAgICAgLy8gbmV3TW9vbig3NTA3KFN1biBKdWwgMjIgMDA6MDA6MDAgQ1NUIDE5OTAsZmFsc2UpKT0KKyAgICAgICAgICAgIC8vICAgU3VuIEp1bCAwOCAxMzo1NjoxNSBDU1QgMTk5MAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCB3ZSBjYXRjaCB0aGlzIHNwZWNpZmljIGNvbmRpdGlvbiBhbmQKKyAgICAgICAgICAgIC8vIGFkanVzdCBvdXIgc3RhcnQgdGltZSBieSBvbmUgZWlnaHRoIHBlcmlvZCBkYXlzIChlaXRoZXIgZm9yd2FyZAorICAgICAgICAgICAgLy8gb3IgYmFja3dhcmQpIGFuZCB0cnkgYWdhaW4uCisgICAgICAgICAgICAvLyBMaXUgMTEvOS8wMAorICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRlbHRhVCkgPiBNYXRoLmFicyhsYXN0RGVsdGFUKSkgeworICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSAobG9uZykgKHBlcmlvZERheXMgKiBEQVlfTVMgLyA4KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lKHN0YXJ0VGltZSArIChuZXh0ID8gZGVsdGEgOiAtZGVsdGEpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGltZU9mQW5nbGUoZnVuYywgZGVzaXJlZCwgcGVyaW9kRGF5cywgZXBzaWxvbiwgbmV4dCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxhc3REZWx0YVQgPSBkZWx0YVQ7CisgICAgICAgICAgICBsYXN0QW5nbGUgPSBhbmdsZTsKKworICAgICAgICAgICAgc2V0VGltZSh0aW1lICsgKGxvbmcpZGVsdGFUKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoTWF0aC5hYnMoZGVsdGFUKSA+IGVwc2lsb24pOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50ZXJmYWNlIENvb3JkRnVuYyB7CisgICAgICAgIHB1YmxpYyBFcXVhdG9yaWFsIGV2YWwoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBsb25nIHJpc2VPclNldChDb29yZEZ1bmMgZnVuYywgYm9vbGVhbiByaXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRpYW1ldGVyLCBkb3VibGUgcmVmcmFjdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGVwc2lsb24pCisgICAgeyAgICAgICAgCisgICAgICAgIEVxdWF0b3JpYWwgIHBvcyA9IG51bGw7CisgICAgICAgIGRvdWJsZSAgICAgIHRhbkwgICA9IE1hdGgudGFuKGZMYXRpdHVkZSk7CisgICAgICAgIGxvbmcgICAgICAgIGRlbHRhVCA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBpbnQgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG9iamVjdCdzIHBvc2l0aW9uIGF0IHRoZSBjdXJyZW50IHRpbWUsIHRoZW4gdXNlIHRoYXQKKyAgICAgICAgLy8gcG9zaXRpb24gdG8gY2FsY3VsYXRlIHRoZSB0aW1lIG9mIHJpc2luZyBvciBzZXR0aW5nLiAgVGhlIHBvc2l0aW9uCisgICAgICAgIC8vIHdpbGwgYmUgZGlmZmVyZW50IGF0IHRoYXQgdGltZSwgc28gaXRlcmF0ZSB1bnRpbCB0aGUgZXJyb3IgaXMgYWxsb3dhYmxlLgorICAgICAgICAvLworICAgICAgICBkbyB7CisgICAgICAgICAgICAvLyBTZWUgIlByYWN0aWNhbCBBc3Ryb25vbXkgV2l0aCBZb3VyIENhbGN1bGF0b3IsIHNlY3Rpb24gMzMuCisgICAgICAgICAgICBwb3MgPSBmdW5jLmV2YWwoKTsKKyAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9IE1hdGguYWNvcygtdGFuTCAqIE1hdGgudGFuKHBvcy5kZWNsaW5hdGlvbikpOworICAgICAgICAgICAgZG91YmxlIGxzdCA9ICgocmlzZSA/IFBJMi1hbmdsZSA6IGFuZ2xlKSArIHBvcy5hc2NlbnNpb24gKSAqIDI0IC8gUEkyOworICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29udmVydCBmcm9tIExTVCB0byBVbml2ZXJzYWwgVGltZS4KKyAgICAgICAgICAgIGxvbmcgbmV3VGltZSA9IGxzdFRvVVQoIGxzdCApOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZWx0YVQgPSBuZXdUaW1lIC0gdGltZTsKKyAgICAgICAgICAgIHNldFRpbWUobmV3VGltZSk7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKCsrIGNvdW50IDwgNSAmJiBNYXRoLmFicyhkZWx0YVQpID4gZXBzaWxvbik7CisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBjb3JyZWN0aW9uIGR1ZSB0byByZWZyYWN0aW9uIGFuZCB0aGUgb2JqZWN0J3MgYW5ndWxhciBkaWFtZXRlcgorICAgICAgICBkb3VibGUgY29zRCAgPSBNYXRoLmNvcyhwb3MuZGVjbGluYXRpb24pOworICAgICAgICBkb3VibGUgcHNpICAgPSBNYXRoLmFjb3MoTWF0aC5zaW4oZkxhdGl0dWRlKSAvIGNvc0QpOworICAgICAgICBkb3VibGUgeCAgICAgPSBkaWFtZXRlciAvIDIgKyByZWZyYWN0aW9uOworICAgICAgICBkb3VibGUgeSAgICAgPSBNYXRoLmFzaW4oTWF0aC5zaW4oeCkgLyBNYXRoLnNpbihwc2kpKTsKKyAgICAgICAgbG9uZyAgZGVsdGEgID0gKGxvbmcpKCgyNDAgKiB5ICogUkFEX0RFRyAvIGNvc0QpKlNFQ09ORF9NUyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGltZSArIChyaXNlID8gLWRlbHRhIDogZGVsdGEpOworICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBPdGhlciB1dGlsaXR5IG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKioKKyAgICAgKiBHaXZlbiAndmFsdWUnLCBhZGQgb3Igc3VidHJhY3QgJ3JhbmdlJyB1bnRpbCAwIDw9ICd2YWx1ZScgPCByYW5nZS4KKyAgICAgKiBUaGUgbW9kdWx1cyBvcGVyYXRvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgbm9ybWFsaXplKGRvdWJsZSB2YWx1ZSwgZG91YmxlIHJhbmdlKSB7CisgICAgICAgIHJldHVybiB2YWx1ZSAtIHJhbmdlICogTWF0aC5mbG9vcih2YWx1ZSAvIHJhbmdlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGFuIGFuZ2xlIHNvIHRoYXQgaXQncyBpbiB0aGUgcmFuZ2UgMCAtIDJwaS4KKyAgICAgKiBGb3IgcG9zaXRpdmUgYW5nbGVzIHRoaXMgaXMganVzdCAoYW5nbGUgJSAycGkpLCBidXQgdGhlIEphdmEKKyAgICAgKiBtb2Qgb3BlcmF0b3IgZG9lc24ndCB3b3JrIHRoYXQgd2F5IGZvciBuZWdhdGl2ZSBudW1iZXJzLi4uLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGRvdWJsZSBub3JtMlBJKGRvdWJsZSBhbmdsZSkgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKGFuZ2xlLCBQSTIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYW4gYW5nbGUgaW50byB0aGUgcmFuZ2UgLVBJIC0gUEkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgbm9ybVBJKGRvdWJsZSBhbmdsZSkgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKGFuZ2xlICsgUEksIFBJMikgLSBQSTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgInRydWUgYW5vbWFseSIgKGxvbmdpdHVkZSkgb2YgYW4gb2JqZWN0IGZyb20KKyAgICAgKiBpdHMgbWVhbiBhbm9tYWx5IGFuZCB0aGUgZWNjZW50cmljaXR5IG9mIGl0cyBvcmJpdC4gIFRoaXMgdXNlcworICAgICAqIGFuIGl0ZXJhdGl2ZSBzb2x1dGlvbiB0byBLZXBsZXIncyBlcXVhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZWFuQW5vbWFseSAgIFRoZSBvYmplY3QncyBsb25naXR1ZGUgY2FsY3VsYXRlZCBhcyBpZiBpdCB3ZXJlIGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgYSByZWd1bGFyLCBjaXJjdWxhciBvcmJpdCwgbWVhc3VyZWQgaW4gcmFkaWFucworICAgICAqICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHBvaW50IG9mIHBlcmlnZWUuICAKKyAgICAgKgorICAgICAqIEBwYXJhbSBlY2NlbnRyaWNpdHkgIFRoZSBlY2NlbnRyaWNpdHkgb2YgdGhlIG9yYml0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSB0cnVlIGFub21hbHkgKGxvbmdpdHVkZSkgbWVhc3VyZWQgaW4gcmFkaWFucworICAgICAqLworICAgIHByaXZhdGUgZG91YmxlIHRydWVBbm9tYWx5KGRvdWJsZSBtZWFuQW5vbWFseSwgZG91YmxlIGVjY2VudHJpY2l0eSkKKyAgICB7CisgICAgICAgIC8vIEZpcnN0LCBzb2x2ZSBLZXBsZXIncyBlcXVhdGlvbiBpdGVyYXRpdmVseQorICAgICAgICAvLyBEdWZmZXR0LVNtaXRoLCBwLjkwCisgICAgICAgIGRvdWJsZSBkZWx0YTsKKyAgICAgICAgZG91YmxlIEUgPSBtZWFuQW5vbWFseTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgZGVsdGEgPSBFIC0gZWNjZW50cmljaXR5ICogTWF0aC5zaW4oRSkgLSBtZWFuQW5vbWFseTsKKyAgICAgICAgICAgIEUgPSBFIC0gZGVsdGEgLyAoMSAtIGVjY2VudHJpY2l0eSAqIE1hdGguY29zKEUpKTsKKyAgICAgICAgfSAKKyAgICAgICAgd2hpbGUgKE1hdGguYWJzKGRlbHRhKSA+IDFlLTUpOyAvLyBlcHNpbG9uID0gMWUtNSByYWQKKworICAgICAgICByZXR1cm4gMi4wICogTWF0aC5hdGFuKCBNYXRoLnRhbihFLzIpICogTWF0aC5zcXJ0KCAoMStlY2NlbnRyaWNpdHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLygxLWVjY2VudHJpY2l0eSkgKSApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9ibGlxdWl0eSBvZiB0aGUgZWNsaXB0aWMgKHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBlY2xpcHRpYworICAgICAqIGFuZCB0aGUgZWFydGgncyBlcXVhdG9yKSBhdCB0aGUgY3VycmVudCB0aW1lLiAgVGhpcyB2YXJpZXMgZHVlIHRvCisgICAgICogdGhlIHByZWNlc3Npb24gb2YgdGhlIGVhcnRoJ3MgYXhpcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIHRoZSBvYmxpcXVpdHkgb2YgdGhlIGVjbGlwdGljIHJlbGF0aXZlIHRvIHRoZSBlcXVhdG9yLAorICAgICAqICAgICAgICAgIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICovCisgICAgcHJpdmF0ZSBkb3VibGUgZWNsaXB0aWNPYmxpcXVpdHkoKSB7CisgICAgICAgIGlmIChlY2xpcE9ibGlxdWl0eSA9PSBJTlZBTElEKSB7CisgICAgICAgICAgICBmaW5hbCBkb3VibGUgZXBvY2ggPSAyNDUxNTQ1LjA7ICAgICAvLyAyMDAwIEFELCBKYW51YXJ5IDEuNQorCisgICAgICAgICAgICBkb3VibGUgVCA9IChnZXRKdWxpYW5EYXkoKSAtIGVwb2NoKSAvIDM2NTI1OworICAgICAgICAgICAgCisgICAgICAgICAgICBlY2xpcE9ibGlxdWl0eSA9IDIzLjQzOTI5MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgLSA0Ni44MTUvMzYwMCAqIFQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gMC4wMDA2LzM2MDAgKiBUKlQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMC4wMDE4MS8zNjAwICogVCpUKlQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGVjbGlwT2JsaXF1aXR5ICo9IERFR19SQUQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVjbGlwT2JsaXF1aXR5OworICAgIH0KKyAgICAKKyAgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHJpdmF0ZSBkYXRhCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ3VycmVudCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSAxLzEvMTk3MCBBRAorICAgICAqIEBzZWUgamF2YS51dGlsLkRhdGUjZ2V0VGltZQorICAgICAqLworICAgIHByaXZhdGUgbG9uZyB0aW1lOworICAgIAorICAgIC8qIFRoZXNlIGFyZW4ndCB1c2VkIHlldCwgYnV0IHRoZXknbGwgYmUgbmVlZGVkIGZvciBzdW5zZXQgY2FsY3VsYXRpb25zCisgICAgICogYW5kIGVxdWF0b3JpYWwgdG8gaG9yaXpvbiBjb29yZGluYXRlIGNvbnZlcnNpb25zCisgICAgICovCisgICAgcHJpdmF0ZSBkb3VibGUgZkxvbmdpdHVkZSA9IDAuMDsKKyAgICBwcml2YXRlIGRvdWJsZSBmTGF0aXR1ZGUgID0gMC4wOworICAgIHByaXZhdGUgbG9uZyAgIGZHbXRPZmZzZXQgPSAwOworICAgIAorICAgIC8vCisgICAgLy8gVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIHVzZWQgdG8gY2FjaGUgY2FsY3VsYXRlZCByZXN1bHRzIGZvciBpbXByb3ZlZAorICAgIC8vIHBlcmZvcm1hbmNlLiAgVGhlc2UgdmFsdWVzIGFsbCBkZXBlbmQgb24gdGhlIGN1cnJlbnQgdGltZSBzZXR0aW5nCisgICAgLy8gb2YgdGhpcyBvYmplY3QsIHNvIHRoZSBjbGVhckNhY2hlIG1ldGhvZCBpcyBwcm92aWRlZC4KKyAgICAvLworICAgIHN0YXRpYyBmaW5hbCBwcml2YXRlIGRvdWJsZSBJTlZBTElEID0gRG91YmxlLk1JTl9WQUxVRTsKKyAgICAKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAganVsaWFuRGF5ICAgICAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAganVsaWFuQ2VudHVyeSAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgc3VuTG9uZ2l0dWRlICAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbWVhbkFub21hbHlTdW4gID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbW9vbkxvbmdpdHVkZSAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbW9vbkVjbGlwTG9uZyAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbWVhbkFub21hbHlNb29uID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgZWNsaXBPYmxpcXVpdHkgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgc2lkZXJlYWxUMCAgICAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgc2lkZXJlYWxUaW1lICAgID0gSU5WQUxJRDsKKyAgICAKKyAgICBwcml2YXRlIHRyYW5zaWVudCBFcXVhdG9yaWFsICBtb29uUG9zaXRpb24gPSBudWxsOworCisgICAgcHJpdmF0ZSB2b2lkIGNsZWFyQ2FjaGUoKSB7CisgICAgICAgIGp1bGlhbkRheSAgICAgICA9IElOVkFMSUQ7CisgICAgICAgIGp1bGlhbkNlbnR1cnkgICA9IElOVkFMSUQ7CisgICAgICAgIHN1bkxvbmdpdHVkZSAgICA9IElOVkFMSUQ7CisgICAgICAgIG1lYW5Bbm9tYWx5U3VuICA9IElOVkFMSUQ7CisgICAgICAgIG1vb25Mb25naXR1ZGUgICA9IElOVkFMSUQ7CisgICAgICAgIG1vb25FY2xpcExvbmcgICA9IElOVkFMSUQ7CisgICAgICAgIG1lYW5Bbm9tYWx5TW9vbiA9IElOVkFMSUQ7CisgICAgICAgIGVjbGlwT2JsaXF1aXR5ICA9IElOVkFMSUQ7CisgICAgICAgIHNpZGVyZWFsVGltZSAgICA9IElOVkFMSUQ7CisgICAgICAgIHNpZGVyZWFsVDAgICAgICA9IElOVkFMSUQ7CisgICAgICAgIG1vb25Qb3NpdGlvbiAgICA9IG51bGw7CisgICAgfQorICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgdm9pZCBvdXQoU3RyaW5nIHMpIHsKKyAgICAvLyAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgLy99CisgICAgCisgICAgLy9wcml2YXRlIHN0YXRpYyBTdHJpbmcgZGVnKGRvdWJsZSByYWQpIHsKKyAgICAvLyAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKHJhZCAqIFJBRF9ERUcpOworICAgIC8vfQorICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGhvdXJzKGxvbmcgbXMpIHsKKyAgICAvLyAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKChkb3VibGUpbXMgLyBIT1VSX01TKSArICIgaG91cnMiOworICAgIC8vfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBsb2NhbChsb25nIGxvY2FsTWlsbGlzKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZShsb2NhbE1pbGxpcyAtIFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRSYXdPZmZzZXQoKSkudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2YgYW4gb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gdGhlIGVjbGlwdGljLAorICAgICAqIHRoZSBwbGFuZSBvZiB0aGUgZWFydGgncyBvcmJpdCBhcm91bmQgdGhlIFN1bi4gCisgICAgICogVGhpcyBpcyBhIHNwaGVyaWNhbCBjb29yZGluYXRlIHN5c3RlbSBpbiB3aGljaCB0aGUgbGF0aXR1ZGUKKyAgICAgKiBzcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoIG9mIHRoZSBwbGFuZSBvZiB0aGUgZWNsaXB0aWMuCisgICAgICogVGhlIGxvbmdpdHVkZSBzcGVjaWZpZXMgdGhlIHBvc2l0aW9uIGFsb25nIHRoZSBlY2xpcHRpYyBwbGFuZQorICAgICAqIHJlbGF0aXZlIHRvIHRoZSAiRmlyc3QgUG9pbnQgb2YgQXJpZXMiLCB3aGljaCBpcyB0aGUgU3VuJ3MgcG9zaXRpb24gaW4gdGhlIHNreQorICAgICAqIGF0IHRoZSBWZXJuYWwgRXF1aW5veC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgRWNsaXB0aWMgb2JqZWN0cyBhcmUgaW1tdXRhYmxlIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQKKyAgICAgKiBvbmNlIHRoZXkgYXJlIGNvbnN0cnVjdGVkLiAgVGhpcyBhbGxvd3MgdGhlbSB0byBiZSBwYXNzZWQgYW5kIHJldHVybmVkIGJ5CisgICAgICogdmFsdWUgd2l0aG91dCB3b3JyeWluZyBhYm91dCB3aGV0aGVyIG90aGVyIGNvZGUgd2lsbCBtb2RpZnkgdGhlbS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXJBc3Ryb25vbWVyLkVxdWF0b3JpYWwKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5Ib3Jpem9uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFY2xpcHRpYyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIEVjbGlwdGljIGNvb3JkaW5hdGUgb2JqZWN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQHBhcmFtIGxhdCBUaGUgZWNsaXB0aWMgbGF0aXR1ZGUsIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBwYXJhbSBsb24gVGhlIGVjbGlwdGljIGxvbmdpdHVkZSwgbWVhc3VyZWQgaW4gcmFkaWFucy4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgRWNsaXB0aWMoZG91YmxlIGxhdCwgZG91YmxlIGxvbikgeworICAgICAgICAgICAgbGF0aXR1ZGUgPSBsYXQ7CisgICAgICAgICAgICBsb25naXR1ZGUgPSBsb247CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcobG9uZ2l0dWRlKlJBRF9ERUcpICsgIiwiICsgKGxhdGl0dWRlKlJBRF9ERUcpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVjbGlwdGljIGxhdGl0dWRlLCBpbiByYWRpYW5zLiAgVGhpcyBzcGVjaWZpZXMgYW4gb2JqZWN0J3MKKyAgICAgICAgICogcG9zaXRpb24gbm9ydGggb3Igc291dGggb2YgdGhlIHBsYW5lIG9mIHRoZSBlY2xpcHRpYywKKyAgICAgICAgICogd2l0aCBwb3NpdGl2ZSBhbmdsZXMgcmVwcmVzZW50aW5nIG5vcnRoLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgbGF0aXR1ZGU7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVjbGlwdGljIGxvbmdpdHVkZSwgaW4gcmFkaWFucy4KKyAgICAgICAgICogVGhpcyBzcGVjaWZpZXMgYW4gb2JqZWN0J3MgcG9zaXRpb24gYWxvbmcgdGhlIGVjbGlwdGljIHBsYW5lCisgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSAiRmlyc3QgUG9pbnQgb2YgQXJpZXMiLCB3aGljaCBpcyB0aGUgU3VuJ3MgcG9zaXRpb24KKyAgICAgICAgICogaW4gdGhlIHNreSBhdCB0aGUgVmVybmFsIEVxdWlub3gsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBlYXN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQSBiaXQgb2YgdHJpdmlhOiB0aGUgZmlyc3QgcG9pbnQgb2YgQXJpZXMgaXMgY3VycmVudGx5IGluIHRoZQorICAgICAgICAgKiBjb25zdGVsbGF0aW9uIFBpc2NlcywgZHVlIHRvIHRoZSBwcmVjZXNzaW9uIG9mIHRoZSBlYXJ0aCdzIGF4aXMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGRvdWJsZSBsb25naXR1ZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2YgYW4gCisgICAgICogb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gdGhlIHBsYW5lIG9mIHRoZSBlYXJ0aCdzIGVxdWF0b3IuIAorICAgICAqIFRoZSA8aT5SaWdodCBBc2NlbnNpb248L2k+IHNwZWNpZmllcyB0aGUgcG9zaXRpb24gZWFzdCBvciB3ZXN0CisgICAgICogYWxvbmcgdGhlIGVxdWF0b3IsIHJlbGF0aXZlIHRvIHRoZSBzdW4ncyBwb3NpdGlvbiBhdCB0aGUgdmVybmFsCisgICAgICogZXF1aW5veC4gIFRoZSA8aT5EZWNsaW5hdGlvbjwvaT4gaXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoCisgICAgICogb2YgdGhlIGVxdWF0b3JpYWwgcGxhbmUuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IEVxdWF0b3JpYWwgb2JqZWN0cyBhcmUgaW1tdXRhYmxlIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQKKyAgICAgKiBvbmNlIHRoZXkgYXJlIGNvbnN0cnVjdGVkLiAgVGhpcyBhbGxvd3MgdGhlbSB0byBiZSBwYXNzZWQgYW5kIHJldHVybmVkIGJ5CisgICAgICogdmFsdWUgd2l0aG91dCB3b3JyeWluZyBhYm91dCB3aGV0aGVyIG90aGVyIGNvZGUgd2lsbCBtb2RpZnkgdGhlbS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXJBc3Ryb25vbWVyLkVjbGlwdGljCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuSG9yaXpvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRXF1YXRvcmlhbCB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIEVxdWF0b3JpYWwgY29vcmRpbmF0ZSBvYmplY3QuCisgICAgICAgICAqIDxwPgorICAgICAgICAgKiBAcGFyYW0gYXNjIFRoZSByaWdodCBhc2NlbnNpb24sIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBwYXJhbSBkZWMgVGhlIGRlY2xpbmF0aW9uLCBtZWFzdXJlZCBpbiByYWRpYW5zLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBFcXVhdG9yaWFsKGRvdWJsZSBhc2MsIGRvdWJsZSBkZWMpIHsKKyAgICAgICAgICAgIGFzY2Vuc2lvbiA9IGFzYzsKKyAgICAgICAgICAgIGRlY2xpbmF0aW9uID0gZGVjOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdCwgd2l0aCB0aGUKKyAgICAgICAgICogYW5nbGVzIG1lYXN1cmVkIGluIGRlZ3JlZXMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcoYXNjZW5zaW9uKlJBRF9ERUcpICsgIiwiICsgKGRlY2xpbmF0aW9uKlJBRF9ERUcpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0IHdpdGggdGhlIHJpZ2h0IGFzY2Vuc2lvbgorICAgICAgICAgKiBtZWFzdXJlZCBpbiBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b0htc1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiByYWRUb0htcyhhc2NlbnNpb24pICsgIiwiICsgcmFkVG9EbXMoZGVjbGluYXRpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHJpZ2h0IGFzY2Vuc2lvbiwgaW4gcmFkaWFucy4gCisgICAgICAgICAqIFRoaXMgaXMgdGhlIHBvc2l0aW9uIGVhc3Qgb3Igd2VzdCBhbG9uZyB0aGUgZXF1YXRvcgorICAgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgc3VuJ3MgcG9zaXRpb24gYXQgdGhlIHZlcm5hbCBlcXVpbm94LAorICAgICAgICAgKiB3aXRoIHBvc2l0aXZlIGFuZ2xlcyByZXByZXNlbnRpbmcgRWFzdC4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGFzY2Vuc2lvbjsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZGVjbGluYXRpb24sIGluIHJhZGlhbnMuCisgICAgICAgICAqIFRoaXMgaXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoIG9mIHRoZSBlcXVhdG9yaWFsIHBsYW5lLAorICAgICAgICAgKiB3aXRoIHBvc2l0aXZlIGFuZ2xlcyByZXByZXNlbnRpbmcgbm9ydGguCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGRvdWJsZSBkZWNsaW5hdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBwb3NpdGlvbiBvZiBhbiAgb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gCisgICAgICogdGhlIGxvY2FsIGhvcml6b24uCisgICAgICogVGhlIDxpPkFsdGl0dWRlPC9pPiByZXByZXNlbnRzIHRoZSBvYmplY3QncyBlbGV2YXRpb24gYWJvdmUgdGhlIGhvcml6b24sCisgICAgICogd2l0aCBvYmplY3RzIGJlbG93IHRoZSBob3Jpem9uIGhhdmluZyBhIG5lZ2F0aXZlIGFsdGl0dWRlLgorICAgICAqIFRoZSA8aT5BemltdXRoPC9pPiBpcyB0aGUgZ2VvZ3JhcGhpYyBkaXJlY3Rpb24gb2YgdGhlIG9iamVjdCBmcm9tIHRoZQorICAgICAqIG9ic2VydmVyJ3MgcG9zaXRpb24sIHdpdGggMCByZXByZXNlbnRpbmcgbm9ydGguICBUaGUgYXppbXV0aCBpbmNyZWFzZXMKKyAgICAgKiBjbG9ja3dpc2UgZnJvbSBub3J0aC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgSG9yaXpvbiBvYmplY3RzIGFyZSBpbW11dGFibGUgYW5kIGNhbm5vdCBiZSBtb2RpZmllZAorICAgICAqIG9uY2UgdGhleSBhcmUgY29uc3RydWN0ZWQuICBUaGlzIGFsbG93cyB0aGVtIHRvIGJlIHBhc3NlZCBhbmQgcmV0dXJuZWQgYnkKKyAgICAgKiB2YWx1ZSB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IHdoZXRoZXIgb3RoZXIgY29kZSB3aWxsIG1vZGlmeSB0aGVtLgorICAgICAqCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuRWNsaXB0aWMKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5FcXVhdG9yaWFsCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBIb3Jpem9uIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBIb3Jpem9uIGNvb3JkaW5hdGUgb2JqZWN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQHBhcmFtIGFsdCAgVGhlIGFsdGl0dWRlLCBtZWFzdXJlZCBpbiByYWRpYW5zIGFib3ZlIHRoZSBob3Jpem9uLgorICAgICAgICAgKiBAcGFyYW0gYXppbSBUaGUgYXppbXV0aCwgbWVhc3VyZWQgaW4gcmFkaWFucyBjbG9ja3dpc2UgZnJvbSBub3J0aC4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSG9yaXpvbihkb3VibGUgYWx0LCBkb3VibGUgYXppbSkgeworICAgICAgICAgICAgYWx0aXR1ZGUgPSBhbHQ7CisgICAgICAgICAgICBhemltdXRoID0gYXppbTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QsIHdpdGggdGhlCisgICAgICAgICAqIGFuZ2xlcyBtZWFzdXJlZCBpbiBkZWdyZWVzLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKGFsdGl0dWRlKlJBRF9ERUcpICsgIiwiICsgKGF6aW11dGgqUkFEX0RFRyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogVGhlIG9iamVjdCdzIGFsdGl0dWRlIGFib3ZlIHRoZSBob3Jpem9uLCBpbiByYWRpYW5zLiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGFsdGl0dWRlOworICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBUaGUgb2JqZWN0J3MgZGlyZWN0aW9uLCBpbiByYWRpYW5zIGNsb2Nrd2lzZSBmcm9tIG5vcnRoLiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGF6aW11dGg7CisgICAgfQorCisgICAgc3RhdGljIHByaXZhdGUgU3RyaW5nIHJhZFRvSG1zKGRvdWJsZSBhbmdsZSkgeworICAgICAgICBpbnQgaHJzID0gKGludCkgKGFuZ2xlKlJBRF9IT1VSKTsKKyAgICAgICAgaW50IG1pbiA9IChpbnQpKChhbmdsZSpSQURfSE9VUiAtIGhycykgKiA2MCk7CisgICAgICAgIGludCBzZWMgPSAoaW50KSgoYW5nbGUqUkFEX0hPVVIgLSBocnMgLSBtaW4vNjAuMCkgKiAzNjAwKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBJbnRlZ2VyLnRvU3RyaW5nKGhycykgKyAiaCIgKyBtaW4gKyAibSIgKyBzZWMgKyAicyI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyByYWRUb0Rtcyhkb3VibGUgYW5nbGUpIHsKKyAgICAgICAgaW50IGRlZyA9IChpbnQpIChhbmdsZSpSQURfREVHKTsKKyAgICAgICAgaW50IG1pbiA9IChpbnQpKChhbmdsZSpSQURfREVHIC0gZGVnKSAqIDYwKTsKKyAgICAgICAgaW50IHNlYyA9IChpbnQpKChhbmdsZSpSQURfREVHIC0gZGVnIC0gbWluLzYwLjApICogMzYwMCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gSW50ZWdlci50b1N0cmluZyhkZWcpICsgIlx1MDBiMCIgKyBtaW4gKyAiJyIgKyBzZWMgKyAiXCIiOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyQ2FjaGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyQ2FjaGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODM1NjJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJDYWNoZS5qYXZhCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvKioKKyAqIEBpbnRlcm5hbAorICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJDYWNoZQoreworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckNhY2hlKCkgeworICAgICAgICBtYWtlQXJyYXlzKGFycmF5U2l6ZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBtYWtlQXJyYXlzKGludCBuZXdTaXplKSB7CisgICAgICAgIGtleXMgICAgPSBuZXcgbG9uZ1tuZXdTaXplXTsKKyAgICAgICAgdmFsdWVzICA9IG5ldyBsb25nW25ld1NpemVdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuZXdTaXplOyBpKyspIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IEVNUFRZOworICAgICAgICB9CisgICAgICAgIGFycmF5U2l6ZSA9IG5ld1NpemU7CisgICAgICAgIHRocmVzaG9sZCA9IChpbnQpKGFycmF5U2l6ZSAqIDAuNzUpOworICAgICAgICBzaXplID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBsb25nIGdldChsb25nIGtleSkgeworICAgICAgICByZXR1cm4gdmFsdWVzW2ZpbmRJbmRleChrZXkpXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHB1dChsb25nIGtleSwgbG9uZyB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChzaXplID49IHRocmVzaG9sZCkgeworICAgICAgICAgICAgcmVoYXNoKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGluZGV4ID0gZmluZEluZGV4KGtleSk7CisgICAgICAgIAorICAgICAgICBrZXlzW2luZGV4XSA9IGtleTsKKyAgICAgICAgdmFsdWVzW2luZGV4XSA9IHZhbHVlOworICAgICAgICBzaXplKys7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgaW50IGZpbmRJbmRleChsb25nIGtleSkgeworICAgICAgICBpbnQgaW5kZXggPSBoYXNoKGtleSk7CisgICAgICAgIGludCBkZWx0YSA9IDA7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodmFsdWVzW2luZGV4XSAhPSBFTVBUWSAmJiBrZXlzW2luZGV4XSAhPSBrZXkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkZWx0YSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBoYXNoMihrZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXggPSAoaW5kZXggKyBkZWx0YSkgJSBhcnJheVNpemU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVoYXNoKCkKKyAgICB7CisgICAgICAgIGludCBvbGRTaXplID0gYXJyYXlTaXplOworICAgICAgICBsb25nW10gb2xkS2V5cyA9IGtleXM7CisgICAgICAgIGxvbmdbXSBvbGRWYWx1ZXMgPSB2YWx1ZXM7CisgICAgICAgIAorICAgICAgICBpZiAocEluZGV4IDwgcHJpbWVzLmxlbmd0aCAtIDEpIHsKKyAgICAgICAgICAgIGFycmF5U2l6ZSA9IHByaW1lc1srK3BJbmRleF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhcnJheVNpemUgPSBhcnJheVNpemUgKiAyICsgMTsKKyAgICAgICAgfQorICAgICAgICBzaXplID0gMDsKKyAgICAgICAgCisgICAgICAgIG1ha2VBcnJheXMoYXJyYXlTaXplKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvbGRTaXplOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChvbGRWYWx1ZXNbaV0gIT0gRU1QVFkpIHsKKyAgICAgICAgICAgICAgICBwdXQob2xkS2V5c1tpXSwgb2xkVmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvbGRLZXlzID0gb2xkVmFsdWVzID0gbnVsbDsgLy8gSGVscCBvdXQgdGhlIGdhcmJhZ2UgY29sbGVjdG9yCisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFByb2R1Y2UgYSB1bmlmb3JtbHktZGlzdHJpYnV0ZWQgaGFzaCB2YWx1ZSBmcm9tIGFuIGludGVnZXIga2V5LgorICAgICAqIFRoaXMgaXMgZXNzZW50aWFsbHkgYSBsaW5lYXIgY29uZ3J1ZW50aWFsIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCisgICAgICogdGhhdCB1c2VzIHRoZSBrZXkgYXMgaXRzIHNlZWQgdmFsdWUuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgaGFzaChsb25nIGtleSkKKyAgICB7CisgICAgICAgIGludCBoID0gKGludCkoKGtleSAqIDE1ODIxICsgMSkgJSBhcnJheVNpemUpOworICAgICAgICBpZiAoaCA8IDApIHsKKyAgICAgICAgICAgIGggKz0gYXJyYXlTaXplOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGludCBoYXNoMihsb25nIGtleSkgeworICAgICAgICByZXR1cm4gYXJyYXlTaXplIC0gMiAtIChpbnQpKGtleSAlIChhcnJheVNpemUtMikgKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgaW50IHByaW1lc1tdID0geyAgLy8gNSwgMTcsIDMxLCA0NywgLy8gZm9yIHRlc3RpbmcKKyAgICAgICAgNjEsIDEyNywgNTA5LCAxMDIxLCAyMDM5LCA0MDkzLCA4MTkxLCAxNjM4MSwgMzI3NDksIDY1NTIxLAorICAgICAgICAxMzEwNzEsIDI2MjEzOSwgCisgICAgfTsKKworICAgIHByaXZhdGUgaW50ICAgICBwSW5kZXggICAgICA9IDA7CisgICAgcHJpdmF0ZSBpbnQgICAgIHNpemUgICAgICAgID0gMDsKKyAgICBwcml2YXRlIGludCAgICAgYXJyYXlTaXplICAgPSBwcmltZXNbcEluZGV4XTsKKyAgICBwcml2YXRlIGludCAgICAgdGhyZXNob2xkICAgPSAoYXJyYXlTaXplICogMykgLyA0OworICAgIAorICAgIHByaXZhdGUgbG9uZ1tdICBrZXlzICAgICAgICA9IG5ldyBsb25nW2FycmF5U2l6ZV07CisgICAgcHJpdmF0ZSBsb25nW10gIHZhbHVlcyAgICAgID0gbmV3IGxvbmdbYXJyYXlTaXplXTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgIGxvbmcgRU1QVFkgICA9IExvbmcuTUlOX1ZBTFVFOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckRhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTExMzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJEYXRhLmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworCisKKy8qKgorICogVGhpcyBjbGFzcyBhYnN0cmFjdHMgYWNjZXNzIHRvIGNhbGVuZGFyIChDYWxlbmRhciBhbmQgRGF0ZUZvcm1hdCkgZGF0YS4KKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckRhdGEgeworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENhbGVuZGFyRGF0YSBmcm9tIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvYyBsb2NhbGUgdG8gdXNlLiBUaGUgJ2NhbGVuZGFyJyBrZXl3b3JkIHdpbGwgYmUgaWdub3JlZC4KKyAgICAgKiBAcGFyYW0gdHlwZSBjYWxlbmRhciB0eXBlLiBOVUxMIGluZGljYXRlcyB0aGUgZ3JlZ29yaWFuIGNhbGVuZGFyLiAKKyAgICAgKiBObyBkZWZhdWx0IGxvb2t1cCBpcyBkb25lLgorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckRhdGEoVUxvY2FsZSBsb2MsIFN0cmluZyB0eXBlKSB7CisgICAgICAgIHRoaXMoKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2MpLCB0eXBlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENhbGVuZGFyRGF0YShJQ1VSZXNvdXJjZUJ1bmRsZSBiLCBTdHJpbmcgdHlwZSkgeworICAgICAgICBmQnVuZGxlID0gYjsKKyAgICAgICAgaWYoKHR5cGUgPT0gbnVsbCkgfHwgKHR5cGUuZXF1YWxzKCIiKSkgfHwgKHR5cGUuZXF1YWxzKCJncmVnb3JpYW4iKSkpIHsKKyAgICAgICAgICAgIGZNYWluVHlwZSA9ICJncmVnb3JpYW4iOworICAgICAgICAgICAgZkZhbGxiYWNrVHlwZSA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmTWFpblR5cGUgPSB0eXBlOworICAgICAgICAgICAgZkZhbGxiYWNrVHlwZSA9ImdyZWdvcmlhbiI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTG9hZCBkYXRhIGZvciBjYWxlbmRhci4gTm90ZSwgdGhpcyBvYmplY3Qgb3ducyB0aGUgcmVzb3VyY2VzLCBkbyBOT1QgY2FsbCB1cmVzX2Nsb3NlKCkhCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5IFJlc291cmNlIGtleSB0byBkYXRhCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIElDVVJlc291cmNlQnVuZGxlIGdldChTdHJpbmcga2V5KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmTWFpblR5cGUgKyAiLyIgKyBrZXkpOworICAgICAgICB9IGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtKSB7CisgICAgICAgICAgICBpZihmRmFsbGJhY2tUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmRmFsbGJhY2tUeXBlICsgIi8iICsga2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG07CisgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGRhdGEgZm9yIGNhbGVuZGFyLiBOb3RlLCB0aGlzIG9iamVjdCBvd25zIHRoZSByZXNvdXJjZXMsIGRvIE5PVCBjYWxsIHVyZXNfY2xvc2UoKSEKKyAgICAgKiBUaGVyZSBpcyBhbiBpbXBsaWNpdCBrZXkgb2YgJ2Zvcm1hdCcKKyAgICAgKiBkYXRhIGlzIGxvY2F0ZWQgaW46ICAgImNhbGVuZGFyL2tleS9mb3JtYXQvc3ViS2V5IgorICAgICAqIGZvciBleGFtcGxlLCAgY2FsZW5kYXIvZGF5TmFtZXMvZm9ybWF0L2FiYnJldmlhdGVkCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5IFJlc291cmNlIGtleSB0byBkYXRhCisgICAgICogQHBhcmFtIHN1YktleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoU3RyaW5nIGtleSwgU3RyaW5nIHN1YktleSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGZCdW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJjYWxlbmRhci8iICsgZk1haW5UeXBlICsgIi8iICsga2V5ICsgIi9mb3JtYXQvIiArIHN1YktleSk7CisgICAgICAgIH0gY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG0pIHsKKyAgICAgICAgICAgIGlmKGZGYWxsYmFja1R5cGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmQnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvIiArIGZGYWxsYmFja1R5cGUgKyAiLyIgKyBrZXkgKyAiL2Zvcm1hdC8iICsgc3ViS2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG07CisgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGRhdGEgZm9yIGNhbGVuZGFyLiBOb3RlLCB0aGlzIG9iamVjdCBvd25zIHRoZSByZXNvdXJjZXMsIGRvIE5PVCBjYWxsIHVyZXNfY2xvc2UoKSEKKyAgICAgKiBkYXRhIGlzIGxvY2F0ZWQgaW46ICAgImNhbGVuZGFyL2tleS9jb250ZXh0S2V5L3N1YktleSIKKyAgICAgKiBmb3IgZXhhbXBsZSwgIGNhbGVuZGFyL2RheU5hbWVzL3N0YW5kLWFsb25lL25hcnJvdworICAgICAqCisgICAgICogQHBhcmFtIGtleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBwYXJhbSBjb250ZXh0S2V5IFJlc291cmNlIGtleSB0byBkYXRhCisgICAgICogQHBhcmFtIHN1YktleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoU3RyaW5nIGtleSwgU3RyaW5nIGNvbnRleHRLZXksIFN0cmluZyBzdWJLZXkpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBmQnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvIiArIGZNYWluVHlwZSArICIvIiArIGtleSArICIvIiArIGNvbnRleHRLZXkgKyAiLyIgKyBzdWJLZXkpOworICAgICAgICB9IGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtKSB7CisgICAgICAgICAgICBpZihmRmFsbGJhY2tUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmRmFsbGJhY2tUeXBlICsgIi8iICsga2V5ICsgIi8iICsgY29udGV4dEtleSArICIvIiArIHN1YktleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBtOworICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBnZXQoa2V5KS5nZXRTdHJpbmdBcnJheSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheShTdHJpbmcga2V5LCBTdHJpbmcgc3ViS2V5KSB7CisgICAgICAgIHJldHVybiBnZXQoa2V5LCBzdWJLZXkpLmdldFN0cmluZ0FycmF5KCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5KFN0cmluZyBrZXksIFN0cmluZyBjb250ZXh0S2V5LCBTdHJpbmcgc3ViS2V5KSB7CisgICAgICAgIHJldHVybiBnZXQoa2V5LCBjb250ZXh0S2V5LCBzdWJLZXkpLmdldFN0cmluZ0FycmF5KCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcmFzKFN0cmluZyBzdWJrZXkpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBnZXQoImVyYXMvIitzdWJrZXkpOworICAgICAgICByZXR1cm4gYnVuZGxlLmdldFN0cmluZ0FycmF5KCk7CisgICAgfQorICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBmQnVuZGxlLmdldFVMb2NhbGUoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIGZCdW5kbGU7CisgICAgcHJpdmF0ZSBTdHJpbmcgZk1haW5UeXBlOworICAgIHByaXZhdGUgU3RyaW5nIGZGYWxsYmFja1R5cGU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhclRyaWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMmRiMzMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhclRyaWUuamF2YQpAQCAtMCwwICsxLDM2NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBUcmllIGltcGxlbWVudGF0aW9uIHdoaWNoIHN0b3JlcyBkYXRhIGluIGNoYXIsIDE2IGJpdHMuCisgKiBAYXV0aG9yIHN5bndlZQorICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlRyaWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDAxIDIwMDIKKyAqLworCisgLy8gbm90ZSB0aGF0IGkgbmVlZCB0byBoYW5kbGUgdGhlIGJsb2NrIGNhbGN1bGF0aW9ucyBsYXRlciwgc2luY2UgY2hhcnRyaWUKKyAvLyBpbiBpY3U0YyB1c2VzIHRoZSBzYW1lIGluZGV4IGFycmF5LgorcHVibGljIGNsYXNzIENoYXJUcmllIGV4dGVuZHMgVHJpZQoreworICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIDxwPkNyZWF0ZXMgYSBuZXcgVHJpZSB3aXRoIHRoZSBzZXR0aW5ncyBmb3IgdGhlIHRyaWUgZGF0YS48L3A+CisgICAgKiA8cD5VbnNlcmlhbGl6ZSB0aGUgMzItYml0LWFsaWduZWQgaW5wdXQgc3RyZWFtIGFuZCB1c2UgdGhlIGRhdGEgZm9yIHRoZSAKKyAgICAqIHRyaWUuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIGZpbGUgaW5wdXQgc3RyZWFtIHRvIGEgSUNVIGRhdGEgZmlsZSwgY29udGFpbmluZyAKKyAgICAqICAgICAgICAgICAgICAgICAgICB0aGUgdHJpZQorICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICBkYXRhCisgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIENoYXJUcmllKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCAKKyAgICAgICAgICAgICAgICAgICAgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3VwZXIoaW5wdXRTdHJlYW0sIGRhdGFNYW5pcHVsYXRlKTsKKyAgICAgICAgCisgICAgICAgIGlmICghaXNDaGFyVHJpZSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIGdpdmVuIGRvZXMgbm90IGJlbG9uZyB0byBhIGNoYXIgdHJpZS4iKTsKKyAgICAgICAgfQorICAgICAgICBtX2ZyaWVuZEFnZW50XyA9IG5ldyBGcmllbmRBZ2VudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgYSBkdW1teSBDaGFyVHJpZS4KKyAgICAgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmllLCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAgICAgKiBiZSBsb2FkZWQuCisgICAgICoKKyAgICAgKiBUaGUgdHJpZSBhbHdheXMgcmV0dXJucyB0aGUgaW5pdGlhbFZhbHVlLAorICAgICAqIG9yIHRoZSBsZWFkVW5pdFZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAgICAgKiBUaGUgTGF0aW4tMSBwYXJ0IGlzIGFsd2F5cyBzZXQgdXAgdG8gYmUgbGluZWFyLgorICAgICAqCisgICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSB0aGUgaW5pdGlhbCB2YWx1ZSB0aGF0IGlzIHNldCBmb3IgYWxsIGNvZGUgcG9pbnRzCisgICAgICogQHBhcmFtIGxlYWRVbml0VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBub3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhclRyaWUoaW50IGluaXRpYWxWYWx1ZSwgaW50IGxlYWRVbml0VmFsdWUsIERhdGFNYW5pcHVsYXRlIGRhdGFNYW5pcHVsYXRlKSB7CisgICAgICAgIHN1cGVyKG5ldyBjaGFyW0JNUF9JTkRFWF9MRU5HVEgrU1VSUk9HQVRFX0JMT0NLX0NPVU5UXSwgSEVBREVSX09QVElPTlNfTEFUSU4xX0lTX0xJTkVBUl9NQVNLXywgZGF0YU1hbmlwdWxhdGUpOworCisgICAgICAgIGludCBkYXRhTGVuZ3RoLCBsYXRpbjFMZW5ndGgsIGksIGxpbWl0OworICAgICAgICBjaGFyIGJsb2NrOworCisgICAgICAgIC8qIGNhbGN1bGF0ZSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIGR1bW15IHRyaWUgZGF0YSAqLworCisgICAgICAgIC8qIG1heChMYXRpbi0xLCBibG9jayAwKSAqLworICAgICAgICBkYXRhTGVuZ3RoPWxhdGluMUxlbmd0aD0gSU5ERVhfU1RBR0VfMV9TSElGVF88PTggPyAyNTYgOiBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgaWYobGVhZFVuaXRWYWx1ZSE9aW5pdGlhbFZhbHVlKSB7CisgICAgICAgICAgICBkYXRhTGVuZ3RoKz1EQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFfPW5ldyBjaGFyW2RhdGFMZW5ndGhdOworICAgICAgICBtX2RhdGFMZW5ndGhfPWRhdGFMZW5ndGg7CisKKyAgICAgICAgbV9pbml0aWFsVmFsdWVfPShjaGFyKWluaXRpYWxWYWx1ZTsKKworICAgICAgICAvKiBmaWxsIHRoZSBpbmRleCBhbmQgZGF0YSBhcnJheXMgKi8KKworICAgICAgICAvKiBpbmRleGVzIGFyZSBwcmVzZXQgdG8gMCAoYmxvY2sgMCkgKi8KKworICAgICAgICAvKiBMYXRpbi0xIGRhdGEgKi8KKyAgICAgICAgZm9yKGk9MDsgaTxsYXRpbjFMZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbV9kYXRhX1tpXT0oY2hhcilpbml0aWFsVmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBpZihsZWFkVW5pdFZhbHVlIT1pbml0aWFsVmFsdWUpIHsKKyAgICAgICAgICAgIC8qIGluZGV4ZXMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgdG8gdGhlIGJsb2NrIGFmdGVyIExhdGluLTEgKi8KKyAgICAgICAgICAgIGJsb2NrPShjaGFyKShsYXRpbjFMZW5ndGg+PklOREVYX1NUQUdFXzJfU0hJRlRfKTsKKyAgICAgICAgICAgIGk9MHhkODAwPj5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAgICAgICAgIGxpbWl0PTB4ZGMwMD4+SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgICAgICAgICBmb3IoOyBpPGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBtX2luZGV4X1tpXT1ibG9jazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogZGF0YSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0cyAqLworICAgICAgICAgICAgbGltaXQ9bGF0aW4xTGVuZ3RoK0RBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgZm9yKGk9bGF0aW4xTGVuZ3RoOyBpPGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBtX2RhdGFfW2ldPShjaGFyKWxlYWRVbml0VmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtX2ZyaWVuZEFnZW50XyA9IG5ldyBGcmllbmRBZ2VudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEphdmEgZnJpZW5kIGltcGxlbWVudGF0aW9uCisgICAgICovCisgICAgcHVibGljIGNsYXNzIEZyaWVuZEFnZW50CisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogR2l2ZXMgb3V0IHRoZSBpbmRleCBhcnJheSBvZiB0aGUgdHJpZQorICAgICAgICAgKiBAcmV0dXJuIGluZGV4IGFycmF5IG9mIHRyaWUKKyAgICAgICAgICovIAorICAgICAgICBwdWJsaWMgY2hhcltdIGdldFByaXZhdGVJbmRleCgpIAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleF87CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIEdpdmVzIG91dCB0aGUgZGF0YSBhcnJheSBvZiB0aGUgdHJpZQorICAgICAgICAgKiBAcmV0dXJuIGRhdGEgYXJyYXkgb2YgdHJpZQorICAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBjaGFyW10gZ2V0UHJpdmF0ZURhdGEoKSAKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YV87CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIEdpdmVzIG91dCB0aGUgZGF0YSBvZmZzZXQgaW4gdGhlIHRyaWUKKyAgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBpbiB0aGUgdHJpZQorICAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UHJpdmF0ZUluaXRpYWxWYWx1ZSgpIAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSmF2YSBmcmllbmQgaW1wbGVtZW50YXRpb24KKyAgICAgKiBUbyBzdG9yZSB0aGUgaW5kZXggYW5kIGRhdGEgYXJyYXkgaW50byB0aGUgYXJndW1lbnQuCisgICAgICogQHBhcmFtIGZyaWVuZCBqYXZhIGZyaWVuZCBVQ2hhcmFjdGVyUHJvcGVydHkgb2JqZWN0IHRvIHN0b3JlIHRoZSBhcnJheQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEluZGV4RGF0YShVQ2hhcmFjdGVyUHJvcGVydHkgZnJpZW5kKSAKKyAgICB7CisgICAgICAgIGZyaWVuZC5zZXRJbmRleERhdGEobV9mcmllbmRBZ2VudF8pOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2RlcG9pbnQuCisgICAgKiBJZiBubyB2YWx1ZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvZGVwb2ludCwgYSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUKKyAgICAqIHJldHVybmVkLgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0Q29kZVBvaW50VmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IG9mZnNldDsKKworICAgICAgICAvLyBmYXN0cGF0aCBmb3IgVSswMDAwLi5VK0Q3RkYKKyAgICAgICAgaWYoMCA8PSBjaCAmJiBjaCA8IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgLy8gY29weSBvZiBnZXRSYXdPZmZzZXQoKQorICAgICAgICAgICAgb2Zmc2V0ID0gKG1faW5kZXhfW2NoID4+IElOREVYX1NUQUdFXzFfU0hJRlRfXSA8PCBJTkRFWF9TVEFHRV8yX1NISUZUXykgCisgICAgICAgICAgICAgICAgICAgICsgKGNoICYgSU5ERVhfU1RBR0VfM19NQVNLXyk7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tvZmZzZXRdOworICAgICAgICB9CisKKyAgICAgICAgLy8gaGFuZGxlIFUrRDgwMC4uVSsxMEZGRkYKKyAgICAgICAgb2Zmc2V0ID0gZ2V0Q29kZVBvaW50T2Zmc2V0KGNoKTsKKyAgICAgICAgCisgICAgICAgIC8vIHJldHVybiAtMSBpZiB0aGVyZSBpcyBhbiBlcnJvciwgaW4gdGhpcyBjYXNlIHdlIHJldHVybiB0aGUgZGVmYXVsdAorICAgICAgICAvLyB2YWx1ZTogbV9pbml0aWFsVmFsdWVfCisgICAgICAgIHJldHVybiAob2Zmc2V0ID49IDApID8gbV9kYXRhX1tvZmZzZXRdIDogbV9pbml0aWFsVmFsdWVfOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgdG8gdGhlIGRhdGEgd2hpY2ggdGhpcyBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgcG9pbnRzCisgICAgKiB0by4KKyAgICAqIFJldHVybmVkIGRhdGEgbWF5IGNvbnRhaW4gZm9sZGluZyBvZmZzZXQgaW5mb3JtYXRpb24gZm9yIHRoZSBuZXh0CisgICAgKiB0cmFpbGluZyBzdXJyb2dhdGUgY2hhcmFjdGVyLgorICAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgZ3VhcmFudGVlIGNvcnJlY3QgcmVzdWx0cyBmb3IgdHJhaWwgc3Vycm9nYXRlcy4KKyAgICAqIEBwYXJhbSBjaCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gZGF0YSB2YWx1ZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0TGVhZFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgIHJldHVybiBtX2RhdGFfW2dldExlYWRPZmZzZXQoY2gpXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBCTVAgY29kZSBwb2ludC4KKyAgICAqIExlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywgd2l0aAorICAgICogdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIGdldExlYWRWYWx1ZSgpIHJlc3VsdHMuCisgICAgKiBAcGFyYW0gY2ggdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgICAgKiBAcmV0dXJuIHRyaWUgZGF0YSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIEJNUCBjb2RlcG9pbnQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBjaGFyIGdldEJNUFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRCTVBPZmZzZXQoY2gpXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICAgICogQHBhcmFtIGxlYWQgYSBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRTdXJyb2dhdGVWYWx1ZShjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0U3Vycm9nYXRlT2Zmc2V0KGxlYWQsIHRyYWlsKTsKKyAgICAgICAgaWYgKG9mZnNldCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfW29mZnNldF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIDxwPkdldCBhIHZhbHVlIGZyb20gYSBmb2xkaW5nIG9mZnNldCAoZnJvbSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSkKKyAgICAqIGFuZCBhIHRyYWlsIHN1cnJvZ2F0ZS48L3A+CisgICAgKiA8cD5JZiB0aGUgCisgICAgKiBAcGFyYW0gbGVhZHZhbHVlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGUgd2hpY2ggY29udGFpbnMKKyAgICAqICAgICAgICB0aGUgZm9sZGluZyBvZmZzZXQKKyAgICAqIEBwYXJhbSB0cmFpbCBzdXJyb2dhdGUKKyAgICAqIEByZXR1cm4gdHJpZSBkYXRhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdHJhaWwgY2hhcmFjdGVyCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRUcmFpbFZhbHVlKGludCBsZWFkdmFsdWUsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpZiAobV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9mZnNldCA9IG1fZGF0YU1hbmlwdWxhdGVfLmdldEZvbGRpbmdPZmZzZXQobGVhZHZhbHVlKTsKKyAgICAgICAgaWYgKG9mZnNldCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfW2dldFJhd09mZnNldChvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSh0cmFpbCAmIFNVUlJPR0FURV9NQVNLXykpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIHRoZSBsYXRpbiAxIGZhc3QgcGF0aCB2YWx1ZS48L3A+CisgICAgICogPHA+Tm90ZSB0aGlzIG9ubHkgd29ya3MgaWYgbGF0aW4gMSBjaGFyYWN0ZXJzIGhhdmUgdGhlaXIgb3duIGxpbmVhciAKKyAgICAgKiBhcnJheS48L3A+CisgICAgICogQHBhcmFtIGNoIGxhdGluIDEgY2hhcmFjdGVycworICAgICAqIEByZXR1cm4gdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGxhdGluIGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBjaGFyIGdldExhdGluMUxpbmVhclZhbHVlKGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bSU5ERVhfU1RBR0VfM19NQVNLXyArIDEgKyBtX2RhdGFPZmZzZXRfICsgY2hdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IFRyaWUgaGFzIHRoZSBzYW1lIGRhdGEgYXMgdGhpcyBUcmllCisgICAgICogQHBhcmFtIG90aGVyIFRyaWUgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGFyZ3VtZW50IFRyaWUgaGFzIHRoZSBzYW1lIGRhdGEgYXMgdGhpcyBUcmllLCBmYWxzZQorICAgICAqICAgICAgICAgb3RoZXJ3aXNlCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIAorICAgIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBzdXBlci5lcXVhbHMob3RoZXIpOworICAgICAgICBpZiAocmVzdWx0ICYmIG90aGVyIGluc3RhbmNlb2YgQ2hhclRyaWUpIHsKKyAgICAgICAgICAgIENoYXJUcmllIG90aGVydHJpZSA9IChDaGFyVHJpZSlvdGhlcjsKKyAgICAgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV8gPT0gb3RoZXJ0cmllLm1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UGFyc2VzIHRoZSBpbnB1dCBzdHJlYW0gYW5kIHN0b3JlcyBpdHMgdHJpZSBjb250ZW50IGludG8gYSBpbmRleCBhbmQKKyAgICAqIGRhdGEgYXJyYXk8L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gZGF0YSBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0cmllIGRhdGEKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB1bnNlcmlhbGl6ZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICBpbnQgaW5kZXhEYXRhTGVuZ3RoID0gbV9kYXRhT2Zmc2V0XyArIG1fZGF0YUxlbmd0aF87CisgICAgICAgIG1faW5kZXhfID0gbmV3IGNoYXJbaW5kZXhEYXRhTGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleERhdGFMZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIG1faW5kZXhfW2ldID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFfICAgICAgICAgICA9IG1faW5kZXhfOworICAgICAgICBtX2luaXRpYWxWYWx1ZV8gICA9IG1fZGF0YV9bbV9kYXRhT2Zmc2V0X107CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBnZXQgZm9sZCBwb3NpdGlvbiBmb3IgdGhlIG5leHQgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgIGludCBvZmZzZXQgPSBtX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KGdldExlYWRWYWx1ZShsZWFkKSk7CisKKyAgICAgICAgLy8gZ2V0IHRoZSByZWFsIGRhdGEgZnJvbSB0aGUgZm9sZGVkIGxlYWQvdHJhaWwgdW5pdHMKKyAgICAgICAgaWYgKG9mZnNldCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRSYXdPZmZzZXQob2Zmc2V0LCAoY2hhcikodHJhaWwgJiBTVVJST0dBVEVfTUFTS18pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiAtMSBpZiB0aGVyZSBpcyBhbiBlcnJvciwgaW4gdGhpcyBjYXNlIHdlIHJldHVybiB0aGUgZGVmYXVsdAorICAgICAgICAvLyB2YWx1ZTogbV9pbml0aWFsVmFsdWVfCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSB2YWx1ZSBhdCB0aGUgYXJndW1lbnQgaW5kZXguCisgICAgKiBGb3IgdXNlIGludGVybmFsbHkgaW4gVHJpZUl0ZXJhdG9yLgorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZQorICAgICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRWYWx1ZShpbnQgaW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tpbmRleF07CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBkZWZhdWx0IGluaXRpYWwgdmFsdWUKKyAgICAqIEByZXR1cm4gMzIgYml0IHZhbHVlIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRJbml0aWFsVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIERlZmF1bHQgdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgY2hhciBtX2luaXRpYWxWYWx1ZV87CisgICAgLyoqCisgICAgKiBBcnJheSBvZiBjaGFyIGRhdGEKKyAgICAqLworICAgIHByaXZhdGUgY2hhciBtX2RhdGFfW107CisgICAgLyoqCisgICAgICogQWdlbnQgZm9yIGZyaWVuZHMKKyAgICAgKi8KKyAgICBwcml2YXRlIEZyaWVuZEFnZW50IG1fZnJpZW5kQWdlbnRfOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGM0YTU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwxNDggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIHdyYXBwZXIgYXJvdW5kIENoYXJhY3Rlckl0ZXJhdG9yIGFuZCBpbXBsZW1lbnRzIHRoZSAKKyAqIFVDaGFyYWN0ZXJJdGVyYXRvciBwcm90b2NvbAorICogQGF1dGhvciByYW0KKyAqLworCitwdWJsaWMgY2xhc3MgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAKKyAgICBwcml2YXRlIENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yOworICAgIAorICAgIAorICAgIHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoQ2hhcmFjdGVySXRlcmF0b3IgaXRlcil7CisgICAgICAgIGlmKGl0ZXI9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yICAgICA9IGl0ZXI7ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjY3VycmVudCgpCisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICBpbnQgYyA9IGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICAgICAgaWYoYz09Q2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjZ2V0TGVuZ3RoKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIChpdGVyYXRvci5nZXRFbmRJbmRleCgpIC0gaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNnZXRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLmdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjbmV4dCgpCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICBpbnQgaSA9IGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICAgICAgaXRlcmF0b3IubmV4dCgpOworICAgICAgICBpZihpPT1DaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsgIAorICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI3ByZXZpb3VzKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICBpbnQgaSA9IGl0ZXJhdG9yLnByZXZpb3VzKCk7CisgICAgICAgIGlmKGk9PUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3Ijc2V0SW5kZXgoaW50KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBpbmRleCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBpdGVyYXRvci5zZXRJbmRleChpbmRleCk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3Ijc2V0VG9MaW1pdCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VG9MaW1pdCgpIHsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoaXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjZ2V0VGV4dChjaGFyW10pCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpeworICAgICAgICBpbnQgbGVuZ3RoID1pdGVyYXRvci5nZXRFbmRJbmRleCgpIC0gaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpOyAKKyAgICAgICAgaW50IGN1cnJlbnRJbmRleCA9IGl0ZXJhdG9yLmdldEluZGV4KCk7CisgICAgICAgIGlmKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gZmlsbEluLmxlbmd0aCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoY2hhciBjaCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGNoID0gaXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgICAgICBmaWxsSW5bb2Zmc2V0KytdID0gY2g7CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGlzIGl0ZXJhdG9yLiAgQ2xvbmVzIHRoZSB1bmRlcmx5aW5nIGNoYXJhY3RlciBpdGVyYXRvci4KKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNjbG9uZSgpCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyIHJlc3VsdCA9IChDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3IgPSAoQ2hhcmFjdGVySXRlcmF0b3IpdGhpcy5pdGVyYXRvci5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeyAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG9ubHkgaW52b2tlZCBpZiBiYWQgdW5kZXJseWluZyBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIHB1YmxpYyBpbnQgbW92ZUluZGV4KGludCBkZWx0YSl7CisgICAgICAgIGludCBsZW5ndGggPSBpdGVyYXRvci5nZXRFbmRJbmRleCgpIC0gaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpOyAKKyAgICAgICAgaW50IGlkeCA9IGl0ZXJhdG9yLmdldEluZGV4KCkrZGVsdGE7CisgICAgICAgIAorICAgICAgICBpZihpZHggPCAwKSB7CisgICAgICAgICAgICBpZHggPSAwOworICAgICAgICB9IGVsc2UgaWYoaWR4ID4gbGVuZ3RoKSB7CisgICAgICAgICAgICBpZHggPSBsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLnNldEluZGV4KGlkeCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2dldENoYXJhY3Rlckl0ZXJhdG9yKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0Q2hhcmFjdGVySXRlcmF0b3IoKXsKKyAgICAgICAgcmV0dXJuIChDaGFyYWN0ZXJJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgIH0gCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI1ZDJkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YQpAQCAtMCwwICsxLDQ5NyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKKy8vI2VuZGlmCisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCisvKioKKyAqIFV0aWxpdGllcyB0aGF0IG91Z2h0IHRvIGJlIG9uIGNvbGxlY3Rpb25zLCBidXQgYXJlbid0CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb2xsZWN0aW9uVXRpbGl0aWVzIHsKKwkKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBqb2luKE9iamVjdFtdIGFycmF5LCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBqb2luKENvbGxlY3Rpb24gY29sbGVjdGlvbiwgU3RyaW5nIHNlcGFyYXRvcikgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGNvbGxlY3Rpb24uaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgaWYgKGZpcnN0KSBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSByZXN1bHQuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGl0Lm5leHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworCS8qKgorCSAqIFV0aWxpdHkgbGlrZSBBcnJheXMuYXNMaXN0KCkKKwkgKi8KKwlwdWJsaWMgc3RhdGljIE1hcCBhc01hcChPYmplY3RbXVtdIHNvdXJjZSwgTWFwIHRhcmdldCwgYm9vbGVhbiByZXZlcnNlKSB7CisJCWludCBmcm9tID0gMCwgdG8gPSAxOworCQlpZiAocmV2ZXJzZSkgeworCQkJZnJvbSA9IDE7IHRvID0gMDsKKwkJfQorICAgIAlmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7ICsraSkgeworICAgIAkJdGFyZ2V0LnB1dChzb3VyY2VbaV1bZnJvbV0sIHNvdXJjZVtpXVt0b10pOworICAgIAl9CisgICAgCXJldHVybiB0YXJnZXQ7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiBhZGRBbGwoSXRlcmF0b3Igc291cmNlLCBDb2xsZWN0aW9uIHRhcmdldCkgeworCQl3aGlsZSAoc291cmNlLmhhc05leHQoKSkgeworCQkJdGFyZ2V0LmFkZChzb3VyY2UubmV4dCgpKTsKKwkJfQorCQlyZXR1cm4gdGFyZ2V0OyAvLyBmb3IgY2hhaW5pbmcKKwl9CisJCisJcHVibGljIHN0YXRpYyBpbnQgc2l6ZShJdGVyYXRvciBzb3VyY2UpIHsKKwkJaW50IHJlc3VsdCA9IDA7CisJCXdoaWxlIChzb3VyY2UuaGFzTmV4dCgpKSB7CisJCQlzb3VyY2UubmV4dCgpOworCQkJKytyZXN1bHQ7CisJCX0KKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJCisKKwlwdWJsaWMgc3RhdGljIE1hcCBhc01hcChPYmplY3RbXVtdIHNvdXJjZSkgeworICAgIAlyZXR1cm4gYXNNYXAoc291cmNlLCBuZXcgSGFzaE1hcCgpLCBmYWxzZSk7CisJfQorCQorCS8qKgorCSAqIFV0aWxpdHkgdGhhdCBvdWdodCB0byBiZSBvbiBNYXAKKwkgKi8KKwlwdWJsaWMgc3RhdGljIE1hcCByZW1vdmVBbGwoTWFwIG0sIENvbGxlY3Rpb24gaXRlbXNUb1JlbW92ZSkgeworCSAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gaXRlbXNUb1JlbW92ZS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJICAgIAlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkgICAgCW0ucmVtb3ZlKGl0ZW0pOworCSAgICB9CisJICAgIHJldHVybiBtOworCX0KKwkKKwlwdWJsaWMgT2JqZWN0IGdldEZpcnN0KENvbGxlY3Rpb24gYykgeworCQlJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsKKwkJaWYgKCFpdC5oYXNOZXh0KCkpIHJldHVybiBudWxsOworCQlyZXR1cm4gaXQubmV4dCgpOworCX0KKwkKKwlwdWJsaWMgc3RhdGljIE9iamVjdCBnZXRCZXN0KENvbGxlY3Rpb24gYywgQ29tcGFyYXRvciBjb21wLCBpbnQgZGlyZWN0aW9uKSB7CisJCUl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOworCQlpZiAoIWl0Lmhhc05leHQoKSkgcmV0dXJuIG51bGw7CisJCU9iamVjdCBiZXN0U29GYXIgPSBpdC5uZXh0KCk7CisgICAgICAgIGlmIChkaXJlY3Rpb24gPCAwKSB7CisgICAgCQl3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGNvbXBWYWx1ZSA9IGNvbXAuY29tcGFyZShpdGVtLCBiZXN0U29GYXIpOworICAgIAkJCWlmIChjb21wLmNvbXBhcmUoaXRlbSwgYmVzdFNvRmFyKSA8IDApIHsKKyAgICAJCQkJYmVzdFNvRmFyID0gaXRlbTsKKyAgICAgICAgICAgICAgICB9CisgICAgCQl9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGNvbXBWYWx1ZSA9IGNvbXAuY29tcGFyZShpdGVtLCBiZXN0U29GYXIpOworICAgICAgICAgICAgICAgIGlmIChjb21wLmNvbXBhcmUoaXRlbSwgYmVzdFNvRmFyKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYmVzdFNvRmFyID0gaXRlbTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwkJcmV0dXJuIGJlc3RTb0ZhcjsKKwl9CisJCisJcHVibGljIGludGVyZmFjZSBPYmplY3RNYXRjaGVyIHsKKwkJLyoqCisJCSAqIE11c3QgaGFuZGxlIG51bGwsIG5ldmVyIHRocm93IGV4Y2VwdGlvbgorCQkgKi8KKwkJYm9vbGVhbiBtYXRjaGVzKE9iamVjdCBvKTsKKwl9CisJCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJbnZlcnNlTWF0Y2hlciBpbXBsZW1lbnRzIE9iamVjdE1hdGNoZXIgeworICAgIAlPYmplY3RNYXRjaGVyIG90aGVyOworICAgICAgICBwdWJsaWMgT2JqZWN0TWF0Y2hlciBzZXQoT2JqZWN0TWF0Y2hlciB0b0ludmVyc2UpIHsKKyAgICAgICAgICAgIG90aGVyID0gdG9JbnZlcnNlOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlcyhPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiAhb3RoZXIubWF0Y2hlcyh2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKwlwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gcmVtb3ZlQWxsKENvbGxlY3Rpb24gYywgT2JqZWN0TWF0Y2hlciBmKSB7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJaWYgKGYubWF0Y2hlcyhpdGVtKSkgaXQucmVtb3ZlKCk7CisJCX0KKwkJcmV0dXJuIGM7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiByZXRhaW5BbGwoQ29sbGVjdGlvbiBjLCBPYmplY3RNYXRjaGVyIGYpIHsKKwkJZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlpZiAoIWYubWF0Y2hlcyhpdGVtKSkgaXQucmVtb3ZlKCk7CisJCX0KKwkJcmV0dXJuIGM7CisJfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc1NvbWUoQ29sbGVjdGlvbiBhLCBDb2xsZWN0aW9uIGIpIHsKKyAgICAgICAgLy8gZmFzdCBwYXRocworICAgICAgICBpZiAoYS5zaXplKCkgPT0gMCB8fCBiLnNpemUoKSA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChhID09IGIpIHJldHVybiB0cnVlOyAvLyBtdXN0IHRlc3QgYWZ0ZXIgc2l6ZSB0ZXN0LgorCisgICAgICAgIGlmIChhIGluc3RhbmNlb2YgU29ydGVkU2V0ICYmIGIgaW5zdGFuY2VvZiBTb3J0ZWRTZXQpIHsKKyAgICAgICAgICAgIFNvcnRlZFNldCBhYSA9IChTb3J0ZWRTZXQpIGE7CisgICAgICAgICAgICBTb3J0ZWRTZXQgYmIgPSAoU29ydGVkU2V0KSBiOworICAgICAgICAgICAgYWEuY29udGFpbnNBbGwobnVsbCk7CisgICAgICAgICAgICBDb21wYXJhdG9yIGJiYyA9IGJiLmNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYWFjID0gYWEuY29tcGFyYXRvcigpOworICAgICAgICAgICAgaWYgKGJiYyA9PSBudWxsKSB7CisgICAgICAgICAgICAJaWYgKGFhYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICAgICAgQ29tcGFyYWJsZSBibyA9IChDb21wYXJhYmxlKSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYW8uY29tcGFyZVRvKGJvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IChDb21wYXJhYmxlKSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGJiYy5lcXVhbHMoYSkpIHsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBhaSA9IGFhLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIE9iamVjdCBhbyA9IGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICBPYmplY3QgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlbCA9IGFhYy5jb21wYXJlKGFvLCBibyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsID4gMCkgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgfQorICAgIAlmb3IgKEl0ZXJhdG9yIGl0ID0gYS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgCQlpZiAoYi5jb250YWlucyhpdC5uZXh0KCkpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc0FsbChDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICAvLyBmYXN0IHBhdGhzCisgICAgICAgIGlmIChhID09IGIpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoYi5zaXplKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBTb3J0ZWRTZXQgJiYgYiBpbnN0YW5jZW9mIFNvcnRlZFNldCkgeworICAgICAgICAgICAgU29ydGVkU2V0IGFhID0gKFNvcnRlZFNldCkgYTsKKyAgICAgICAgICAgIFNvcnRlZFNldCBiYiA9IChTb3J0ZWRTZXQpIGI7CisgICAgICAgICAgICBDb21wYXJhdG9yIGJiYyA9IGJiLmNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYWFjID0gYWEuY29tcGFyYXRvcigpOworICAgICAgICAgICAgaWYgKGJiYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGFhYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICAgICAgQ29tcGFyYWJsZSBibyA9IChDb21wYXJhYmxlKSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYW8uY29tcGFyZVRvKGJvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IChDb21wYXJhYmxlKSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGJiYy5lcXVhbHMoYSkpIHsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBhaSA9IGFhLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIE9iamVjdCBhbyA9IGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICBPYmplY3QgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlbCA9IGFhYy5jb21wYXJlKGFvLCBibyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYS5jb250YWluc0FsbChiKTsKKyAgICB9CisJCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zTm9uZShDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICByZXR1cm4gIWNvbnRhaW5zU29tZShhLCBiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXNlZCBmb3IgcmVzdWx0cyBvZiBnZXRDb250YWlubWVudFJlbGF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgQUxMX0VNUFRZID0gMCwKKyAgICAgICAgTk9UX0FfU1VQRVJTRVRfQiA9IDEsCisgICAgICAgIE5PVF9BX0RJU0pPSU5UX0IgPSAyLAorICAgICAgICBOT1RfQV9TVUJTRVRfQiA9IDQsCisgICAgICAgIE5PVF9BX0VRVUFMU19CID0gTk9UX0FfU1VCU0VUX0IgfCBOT1RfQV9TVVBFUlNFVF9CLAorICAgICAgICBBX1BST1BFUl9TVUJTRVRfT0ZfQiA9IE5PVF9BX0RJU0pPSU5UX0IgfCBOT1RfQV9TVVBFUlNFVF9CLAorICAgICAgICBBX1BST1BFUl9TVVBFUlNFVF9CID0gTk9UX0FfU1VCU0VUX0IgfCBOT1RfQV9ESVNKT0lOVF9CLAorICAgICAgICBBX1BST1BFUl9PVkVSTEFQU19CID0gTk9UX0FfU1VCU0VUX0IgfCBOT1RfQV9ESVNKT0lOVF9CIHwgTk9UX0FfU1VQRVJTRVRfQjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBc3Nlc3NlcyBhbGwgdGhlIHBvc3NpYmxlIGNvbnRhaW5tZW50IHJlbGF0aW9ucyBiZXR3ZWVuIGNvbGxlY3Rpb25zIEEgYW5kIEIgd2l0aCBvbmUgY2FsbC48YnI+CisgICAgICogUmV0dXJucyBhbiBpbnQgd2l0aCBiaXRzIHNldCwgYWNjb3JkaW5nIHRvIGEgIlZlbm4gRGlhZ3JhbSIgdmlldyBvZiBBIHZzIEIuPGJyPgorICAgICAqIE5PVF9BX1NVUEVSU0VUX0I6IGEgLSBiICE9IHt9PGJyPgorICAgICAqIE5PVF9BX0RJU0pPSU5UX0I6IGEgKiBiICE9IHt9ICAvLyAqIGlzIGludGVyc2VjdHM8YnI+CisgICAgICogTk9UX0FfU1VCU0VUX0I6IGIgLSBhICE9IHt9PGJyPgorICAgICAqIFRodXMgdGhlIGJpdHMgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBmb2xsb3dpbmcgcmVsYXRpb25zOjxicj4KKyAgICAgKiBmb3IgQV9TVVBFUlNFVF9CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX1NVUEVSU0VUX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfU1VCU0VUX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfU1VCU0VUX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfRVFVQUxTX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfRVFVQUxTX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfRElTSk9JTlRfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9ESVNKT0lOVF9CKSA9PSAwPGJyPgorICAgICAqIGZvciBBX09WRVJMQVBTX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfRElTSk9JTlRfQikgIT0gMDxicj4KKyAgICAgKi8KKyAgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29udGFpbm1lbnRSZWxhdGlvbihDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICBpZiAoYS5zaXplKCkgPT0gMCkgeworICAgICAgICAJcmV0dXJuIChiLnNpemUoKSA9PSAwKSA/IEFMTF9FTVBUWSA6IE5PVF9BX1NVUEVSU0VUX0I7CisgICAgICAgIH0gZWxzZSBpZiAoYi5zaXplKCkgPT0gMCkgeworICAgICAgICAJcmV0dXJuIE5PVF9BX1NVQlNFVF9COworICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAvLyBXQVJOSU5HOiBvbmUgbWlnaHQgdGhpbmsgdGhhdCB0aGUgZm9sbG93aW5nIGNhbiBiZSBzaG9ydC1jaXJjdWl0ZWQsIGJ5IGxvb2tpbmcgYXQKKyAgICAgICAgLy8gdGhlIHNpemVzIG9mIGEgYW5kIGIuIEhvd2V2ZXIsIHRoaXMgd291bGQgZmFpbCBpbiBnZW5lcmFsLCB3aGVyZSBhIGRpZmZlcmVudCBjb21wYXJhdG9yIGlzIGJlaW5nCisgICAgICAgIC8vIHVzZWQgaW4gdGhlIHR3byBjb2xsZWN0aW9ucy4gVW5mb3J0dW5hdGVseSwgdGhlcmUgaXMgbm8gZmFpbHNhZmUgd2F5IHRvIHRlc3QgZm9yIHRoYXQuCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBhLml0ZXJhdG9yKCk7IHJlc3VsdCAhPSA2ICYmIGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAoYi5jb250YWlucyhpdC5uZXh0KCkpKSA/IE5PVF9BX0RJU0pPSU5UX0IgOiBOT1RfQV9TVUJTRVRfQjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYi5pdGVyYXRvcigpOyAocmVzdWx0ICYgMykgIT0gMyAmJiBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICByZXN1bHQgfD0gKGEuY29udGFpbnMoaXQubmV4dCgpKSkgPyBOT1RfQV9ESVNKT0lOVF9CIDogTk9UX0FfU1VQRVJTRVRfQjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlbW92ZShTdHJpbmcgc291cmNlLCBVbmljb2RlU2V0IHJlbW92YWxzKSB7CisJCVN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJCWludCBjcDsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworCQkJY3AgPSBVVEYxNi5jaGFyQXQoc291cmNlLCBpKTsKKwkJCWlmICghcmVtb3ZhbHMuY29udGFpbnMoY3ApKSBVVEYxNi5hcHBlbmQocmVzdWx0LCBjcCk7CisJCX0KKwkJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworCX0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgLyoqCisgICAgICAqIERvZXMgb25lIHN0cmluZyBjb250YWluIGFub3RoZXIsIHN0YXJ0aW5nIGF0IGEgc3BlY2lmaWMgb2Zmc2V0PworICAgICAgKiBAcGFyYW0gdGV4dAorICAgICAgKiBAcGFyYW0gb2Zmc2V0CisgICAgICAqIEBwYXJhbSBvdGhlcgorICAgICAgKiBAcmV0dXJuCisgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGludCBtYXRjaGVzQXQoQ2hhclNlcXVlbmNlIHRleHQsIGludCBvZmZzZXQsIENoYXJTZXF1ZW5jZSBvdGhlcikgeworICAgICAgICAgICAgaW50IGxlbiA9IG90aGVyLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgaW50IGogPSBvZmZzZXQ7CisgICAgICAgICAgICBmb3IgKDsgaSA8IGxlbjsgKytpLCArK2opIHsKKyAgICAgICAgICAgICAgICBjaGFyIHBjID0gb3RoZXIuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGNoYXIgdGMgPSB0ZXh0LmNoYXJBdChqKTsKKyAgICAgICAgICAgICAgICBpZiAocGMgIT0gdGMpIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIGVuZGluZyBvZmZzZXQgZm91bmQgYnkgbWF0Y2hpbmcgY2hhcmFjdGVycyB3aXRoIHRlc3RTZXQsIHVudGlsIGEgcG9zaXRpb24gaXMgZm91bmQgdGhhdCBkb2VuJ3QgbWF0Y2gKKyAgICAgICAgICogQHBhcmFtIHN0cmluZworICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0CisgICAgICAgICAqIEBwYXJhbSB0ZXN0U2V0CisgICAgICAgICAqIEByZXR1cm4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc3BhbihDaGFyU2VxdWVuY2Ugc3RyaW5nLCBpbnQgb2Zmc2V0LCBVbmljb2RlU2V0IHRlc3RTZXQpIHsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IG5ld09mZnNldCA9IHRlc3RTZXQubWF0Y2hlc0F0KHN0cmluZywgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAobmV3T2Zmc2V0IDwgMCkgcmV0dXJuIG9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBlbmRpbmcgb2Zmc2V0IGZvdW5kIGJ5IG1hdGNoaW5nIGNoYXJhY3RlcnMgd2l0aCB0ZXN0U2V0LCB1bnRpbCBhIHBvc2l0aW9uIGlzIGZvdW5kIHRoYXQgZG9lcyBtYXRjaAorICAgICAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICAgICAqIEBwYXJhbSBvZmZzZXQKKyAgICAgICAgICogQHBhcmFtIHRlc3RTZXQKKyAgICAgICAgICogQHJldHVybgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzcGFuTm90KENoYXJTZXF1ZW5jZSBzdHJpbmcsIGludCBvZmZzZXQsIFVuaWNvZGVTZXQgdGVzdFNldCkgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgbmV3T2Zmc2V0ID0gdGVzdFNldC5tYXRjaGVzQXQoc3RyaW5nLCBvZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChuZXdPZmZzZXQgPj0gMCkgcmV0dXJuIG9mZnNldDsKKyAgICAgICAgICAgICAgICArK29mZnNldDsgLy8gdHJ5IG5leHQgY2hhcmFjdGVyIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCBzdXJyb2dhdGVzIGZvciB0aGlzLgorICAgICAgICAgICAgfQorICAgICAgICB9CisvLyNlbmRpZgorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJldHR5UHJpbnQoVW5pY29kZVNldCB1c2V0LCBib29sZWFuIGNvbXByZXNzUmFuZ2VzLCBVbmljb2RlU2V0IHRvUXVvdGUsIFRyYW5zbGl0ZXJhdG9yIHF1b3RlciwgCisgICAgCQlDb21wYXJhdG9yIG9yZGVyaW5nLCBDb21wYXJhdG9yIHNwYWNlQ29tcGFyYXRvcikgeworICAgICAgICBQcmV0dHlQcmludGVyIHBwID0gbmV3IFByZXR0eVByaW50ZXIoKS5zZXRDb21wcmVzc1Jhbmdlcyhjb21wcmVzc1Jhbmdlcyk7CisgICAgICAgIGlmICh0b1F1b3RlICE9IG51bGwpIHBwLnNldFRvUXVvdGUodG9RdW90ZSk7CisgICAgICAgIGlmIChvcmRlcmluZyAhPSBudWxsKSBwcC5zZXRPcmRlcmluZyhvcmRlcmluZyk7CisgICAgICAgIGlmIChzcGFjZUNvbXBhcmF0b3IgIT0gbnVsbCkgcHAuc2V0U3BhY2VDb21wYXJhdG9yKHNwYWNlQ29tcGFyYXRvcik7CisgICAgICAgIHJldHVybiBwcC50b1BhdHRlcm4odXNldCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXVsdGlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzOworICAgIAorICAgICAgICBwdWJsaWMgTXVsdGlDb21wYXJhdG9yIChDb21wYXJhdG9yW10gY29tcGFyYXRvcnMpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvcnMgPSBjb21wYXJhdG9yczsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBMZXhpZ3JhcGhpYyBjb21wYXJlLiBSZXR1cm5zIHRoZSBmaXJzdCBkaWZmZXJlbmNlCisgICAgICAgICAqIEByZXR1cm4gemVybyBpZiBlcXVhbC4gT3RoZXJ3aXNlICsvLSAoaSsxKSAKKyAgICAgICAgICogd2hlcmUgaSBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNvbXBhcmF0b3IgZmluZGluZyBhIGRpZmZlcmVuY2UKKyAgICAgICAgICogQHNlZSBqYXZhLnV0aWwuQ29tcGFyYXRvciNjb21wYXJlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbXBhcmF0b3JzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmF0b3JzW2ldLmNvbXBhcmUoYXJnMCwgYXJnMSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCkgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyBVbmljb2RlIHNldCB0byBmbGF0dGVuIHRoZSBzdHJpbmdzLiBFZyBbYWJje2RhfV0gPT4gW2FiY2RdCisgICAgICogUmV0dXJucyB0aGUgc2V0IGZvciBjaGFpbmluZy4KKyAgICAgKiBAcGFyYW0gZXhlbXBsYXIxCisgICAgICogQHJldHVybgorICAgICAqLworCXB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBmbGF0dGVuKFVuaWNvZGVTZXQgZXhlbXBsYXIxKSB7CisJCVVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKwkJYm9vbGVhbiBnb3RTdHJpbmcgPSBmYWxzZTsKKwkJZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyMSk7IGl0Lm5leHRSYW5nZSgpOykgeworCQkJaWYgKGl0LmNvZGVwb2ludCA9PSBpdC5JU19TVFJJTkcpIHsKKwkJCQlyZXN1bHQuYWRkQWxsKGl0LnN0cmluZyk7CisJCQkJZ290U3RyaW5nID0gdHJ1ZTsKKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0LmFkZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCk7CisJCQl9CisJCX0KKwkJaWYgKGdvdFN0cmluZykgZXhlbXBsYXIxLnNldChyZXN1bHQpOworCQlyZXR1cm4gZXhlbXBsYXIxOworCX0KKworCS8qKgorCSAqIEZvciBwcm9kdWNpbmcgZmlsdGVyZWQgaXRlcmF0b3JzCisJICovCisJcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJlZEl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCQlwcml2YXRlIEl0ZXJhdG9yIGJhc2VJdGVyYXRvcjsKKwkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEVNUFRZID0gbmV3IE9iamVjdCgpOworCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgRE9ORSA9IG5ldyBPYmplY3QoKTsKKwkJcHJpdmF0ZSBPYmplY3QgbmV4dE9iamVjdCA9IEVNUFRZOworCQlwdWJsaWMgRmlsdGVyZWRJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yKSB7CisJCQl0aGlzLmJhc2VJdGVyYXRvciA9IGJhc2VJdGVyYXRvcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKKwkJCXRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiRG9lc24ndCBzdXBwb3J0IHJlbW92YWwiKTsKKwkJfQorCQlwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisJCQlPYmplY3QgcmVzdWx0ID0gbmV4dE9iamVjdDsKKwkJCW5leHRPYmplY3QgPSBFTVBUWTsKKwkJCXJldHVybiByZXN1bHQ7CisJCX0JCQorCQlwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworCQkJaWYgKG5leHRPYmplY3QgPT0gRE9ORSkgcmV0dXJuIGZhbHNlOworCQkJaWYgKG5leHRPYmplY3QgIT0gRU1QVFkpIHJldHVybiB0cnVlOworCQkJd2hpbGUgKGJhc2VJdGVyYXRvci5oYXNOZXh0KCkpIHsKKwkJCQluZXh0T2JqZWN0ID0gYmFzZUl0ZXJhdG9yLm5leHQoKTsKKwkJCQlpZiAoaXNJbmNsdWRlZChuZXh0T2JqZWN0KSkgeworCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQl9CisJCQl9CisJCQluZXh0T2JqZWN0ID0gRE9ORTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpc0luY2x1ZGVkKE9iamVjdCBpdGVtKTsKKwl9CisJCisJcHVibGljIHN0YXRpYyBjbGFzcyBQcmVmaXhJdGVyYXRvciBleHRlbmRzIEZpbHRlcmVkSXRlcmF0b3IgeworCQlwcml2YXRlIFN0cmluZyBwcmVmaXg7CisJCXB1YmxpYyBQcmVmaXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBTdHJpbmcgcHJlZml4KSB7CisJCQlzdXBlci5zZXQoYmFzZUl0ZXJhdG9yKTsKKwkJCXRoaXMucHJlZml4ID0gcHJlZml4OworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaXNJbmNsdWRlZChPYmplY3QgaXRlbSkgeworCQkJcmV0dXJuICgoU3RyaW5nKWl0ZW0pLnN0YXJ0c1dpdGgocHJlZml4KTsKKwkJfQorCX0KKwkKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJcHVibGljIHN0YXRpYyBjbGFzcyBSZWdleEl0ZXJhdG9yIGV4dGVuZHMgRmlsdGVyZWRJdGVyYXRvciB7CisJCXByaXZhdGUgTWF0Y2hlciBtYXRjaGVyOworCQlwdWJsaWMgUmVnZXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBNYXRjaGVyIG1hdGNoZXIpIHsKKwkJCXN1cGVyLnNldChiYXNlSXRlcmF0b3IpOworCQkJdGhpcy5tYXRjaGVyID0gbWF0Y2hlcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyBib29sZWFuIGlzSW5jbHVkZWQoT2JqZWN0IGl0ZW0pIHsKKwkJCXJldHVybiBtYXRjaGVyLnJlc2V0KChTdHJpbmcpaXRlbSkubWF0Y2hlcygpOworCQl9CisJfQorLy8jZW5kaWYKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0dyZWdvLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9HcmVnby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYzllZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9HcmVnby5qYXZhCkBAIC0wLDAgKzEsNjAgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFBhcnRpYWwgcG9ydCBmcm9tIElDVTRDJ3MgR3JlZ28gY2xhc3MgaW4gaTE4bi9ncmVnb2ltcC5oLgorICoKKyAqIE1ldGhvZHMgcG9ydGVkLCBvciBtb3ZlZCBoZXJlIGZyb20gT2xzb25UaW1lWm9uZSwgaW5pdGlhbGx5CisgKiBmb3Igd29yayBvbiBKaXR0ZXJidWcgNTQ3MDoKKyAqICAgdHpkYXRhMjAwNm4gQnJhemlsIGluY29ycmVjdCBmYWxsLWJhY2sgZGF0ZSAyMDA5LW1hci0wMQorICogT25seSB0aGUgbWV0aG9kcyBuZWNlc3NhcnkgZm9yIHRoYXQgd29yayBhcmUgcHJvdmlkZWQgLSB0aGlzIGlzIG5vdCBhIGZ1bGwKKyAqIHBvcnQgb2YgSUNVNEMncyBHcmVnbyBjbGFzcyAoeWV0KS4KKyAqCisgKiBUaGVzZSB1dGlsaXRpZXMgYXJlIHVzZWQgYnkgYm90aCBPbHNvblRpbWVab25lIGFuZCBTaW1wbGVUaW1lWm9uZS4KKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvKioKKyAqIEEgdXRpbGl0eSBjbGFzcyBwcm92aWRpbmcgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciBmdW5jdGlvbnMKKyAqIHVzZWQgYnkgdGltZSB6b25lIGFuZCBjYWxlbmRhciBjb2RlLiAgRG8gbm90IGluc3RhbnRpYXRlLgorICoKKyAqIE5vdGU6ICBVbmxpa2UgR3JlZ29yaWFuQ2FsZW5kYXIsIGFsbCBjb21wdXRhdGlvbnMgcGVyZm9ybWVkIGJ5IHRoaXMKKyAqIGNsYXNzIG9jY3VyIGluIHRoZSBwdXJlIHByb2xlcHRpYyBHcmVnb3JpYW5DYWxlbmRhci4KKyAqLworcHVibGljIGNsYXNzIEdyZWdvIHsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhci4KKyAgICAgKiBAcGFyYW0geWVhciBHcmVnb3JpYW4geWVhciwgd2l0aCAwID09IDEgQkNFLCAtMSA9PSAyIEJDRSwgZXRjLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgeWVhciBpcyBhIGxlYXAgeWVhcgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0xlYXBZZWFyKGludCB5ZWFyKSB7CisgICAgICAgIC8vIHllYXImMHgzID09IHllYXIlNAorICAgICAgICByZXR1cm4gKCh5ZWFyJjB4MykgPT0gMCkgJiYgKCh5ZWFyJTEwMCAhPSAwKSB8fCAoeWVhciU0MDAgPT0gMCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIE1PTlRIX0xFTkdUSCA9IG5ldyBpbnRbXSB7CisgICAgICAgIDMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxLAorICAgICAgICAzMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBtb250aC4KKyAgICAgKiBAcGFyYW0geWVhciBHcmVnb3JpYW4geWVhciwgd2l0aCAwID09IDEgQkNFLCAtMSA9PSAyIEJDRSwgZXRjLgorICAgICAqIEBwYXJhbSBtb250aCAwLWJhc2VkIG1vbnRoLCB3aXRoIDA9PUphbgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBtb250aAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IG1vbnRoTGVuZ3RoKGludCB5ZWFyLCBpbnQgbW9udGgpIHsKKyAgICAgICAgcmV0dXJuIE1PTlRIX0xFTkdUSFttb250aCArIChpc0xlYXBZZWFyKHllYXIpID8gMTIgOiAwKV07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgYSBwcmV2aW91cyBtb250aCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSB5IHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHBhcmFtIG0gdGhlIDAtYmFzZWQgbW9udGggbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIG1vbnRoIHByZXZpb3VzIHRvIHRoZSBnaXZlbiBtb250aAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHByZXZpb3VzTW9udGhMZW5ndGgoaW50IHksIGludCBtKSB7CisgICAgICAgIHJldHVybiAobSA+IDApID8gbW9udGhMZW5ndGgoeSwgbS0xKSA6IDMxOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWU3MDI5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VCaW5hcnkgCit7ICAgIAorICAgIC8vIHB1YmxpYyBpbm5lciBpbnRlcmZhY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbCBpbnRlcmZhY2UgZm9yIGRhdGEgYXV0aGVudGljYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBBdXRoZW50aWNhdGUKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBNZXRob2QgdXNlZCBpbiBJQ1VCaW5hcnkucmVhZEhlYWRlcigpIHRvIHByb3ZpZGUgZGF0YSBmb3JtYXQKKyAgICAgICAgICogYXV0aGVudGljYXRpb24uIAorICAgICAgICAgKiBAcGFyYW0gdmVyc2lvbiB2ZXJzaW9uIG9mIHRoZSBjdXJyZW50IGRhdGEKKyAgICAgICAgICogQHJldHVybiB0cnVlIGlmIGRhdGFmb3JtYXQgaXMgYW4gYWNjZXB0YWJsZSB2ZXJzaW9uLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPklDVSBkYXRhIGhlYWRlciByZWFkZXIgbWV0aG9kLiAKKyAgICAqIFRha2VzIGEgSUNVIGdlbmVyYXRlZCBiaWctZW5kaWFuIGlucHV0IHN0cmVhbSwgcGFyc2UgdGhlIElDVSBzdGFuZGFyZCAKKyAgICAqIGZpbGUgaGVhZGVyIGFuZCBhdXRoZW50aWNhdGVzIHRoZW0uPC9wPgorICAgICogPHA+SGVhZGVyIGZvcm1hdDogCisgICAgKiA8dWw+CisgICAgKiAgICAgPGxpPiBIZWFkZXIgc2l6ZSAoY2hhcikKKyAgICAqICAgICA8bGk+IE1hZ2ljIG51bWJlciAxIChieXRlKQorICAgICogICAgIDxsaT4gTWFnaWMgbnVtYmVyIDIgKGJ5dGUpCisgICAgKiAgICAgPGxpPiBSZXN0IG9mIHRoZSBoZWFkZXIgc2l6ZSAoY2hhcikKKyAgICAqICAgICA8bGk+IFJlc2VydmVkIHdvcmQgKGNoYXIpCisgICAgKiAgICAgPGxpPiBCaWcgZW5kaWFuIGluZGljYXRvciAoYnl0ZSkKKyAgICAqICAgICA8bGk+IENoYXJhY3RlciBzZXQgZmFtaWx5IGluZGljYXRvciAoYnl0ZSkKKyAgICAqICAgICA8bGk+IFNpemUgb2YgYSBjaGFyIChieXRlKSBmb3IgYysrIGFuZCBjIHVzZQorICAgICogICAgIDxsaT4gUmVzZXJ2ZWQgYnl0ZSAoYnl0ZSkKKyAgICAqICAgICA8bGk+IERhdGEgZm9ybWF0IGlkZW50aWZpZXIgKDQgYnl0ZXMpLCBlYWNoIElDVSBkYXRhIGhhcyBpdHMgb3duCisgICAgKiAgICAgICAgICBpZGVudGlmaWVyIHRvIGRpc3Rpbmd1aXNoIHRoZW0uIFswXSBtYWpvciBbMV0gbWlub3IgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsyXSBtaWxsaSBbM10gbWljcm8gCisgICAgKiAgICAgPGxpPiBEYXRhIHZlcnNpb24gKDQgYnl0ZXMpLCB0aGUgY2hhbmdlIHZlcnNpb24gb2YgdGhlIElDVSBkYXRhCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICogICAgIDxsaT4gVW5pY29kZSB2ZXJzaW9uICg0IGJ5dGVzKSB0aGlzIElDVSBpcyBiYXNlZCBvbi4KKyAgICAqIDwvdWw+CisgICAgKiA8L3A+CisgICAgKiA8cD4KKyAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAqIDxwcmU+CisgICAgKiB0cnkgeworICAgICogICAgRmlsZUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgKiAgICBJZiAoVXRpbGl0eS5yZWFkSUNVRGF0YUhlYWRlcihpbnB1dCwgZGF0YWZvcm1hdCwgZGF0YXZlcnNpb24sIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZSkgeworICAgICogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVmVyaWZpZWQgZmlsZSBoZWFkZXIsIHRoaXMgaXMgYSBJQ1UgZGF0YSBmaWxlIik7CisgICAgKiAgICB9CisgICAgKiB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgKiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgaXMgbm90IGEgSUNVIGRhdGEgZmlsZSIpOworICAgICogfQorICAgICogPC9wcmU+CisgICAgKiA8L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gaW5wdXQgc3RyZWFtIHRoYXQgY29udGFpbnMgdGhlIElDVSBkYXRhIGhlYWRlcgorICAgICogQHBhcmFtIGRhdGFGb3JtYXRJREV4cGVjdGVkIERhdGEgZm9ybWF0IGV4cGVjdGVkLiBBbiBhcnJheSBvZiA0IGJ5dGVzIAorICAgICogICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGF0YSBmb3JtYXQuCisgICAgKiAgICAgICAgICAgICAgICAgICAgIEUuZy4gZGF0YSBmb3JtYXQgSUQgMS4yLjMuNC4gd2lsbCBiZWNhbWUgYW4gYXJyYXkgb2YgCisgICAgKiAgICAgICAgICAgICAgICAgICAgIHsxLCAyLCAzLCA0fQorICAgICogQHBhcmFtIGF1dGhlbnRpY2F0ZSB1c2VyIGRlZmluZWQgZXh0cmEgZGF0YSBhdXRoZW50aWNhdGlvbi4gVGhpcyB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICAgICBjYW4gYmUgbnVsbCwgaWYgbm8gZXh0cmEgYXV0aGVudGljYXRpb24gaXMgbmVlZGVkLgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gaWYgdGhlcmUgaXMgYSByZWFkIGVycm9yIG9yIAorICAgICogICAgICAgICAgICB3aGVuIGhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlscy4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZVtdIHJlYWRIZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBkYXRhRm9ybWF0SURFeHBlY3RlZFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0ZSBhdXRoZW50aWNhdGUpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIGNoYXIgaGVhZGVyc2l6ZSA9IGlucHV0LnJlYWRDaGFyKCk7CisgICAgICAgIGludCByZWFkY291bnQgPSAyOworICAgICAgICAvL3JlYWRpbmcgdGhlIGhlYWRlciBmb3JtYXQKKyAgICAgICAgYnl0ZSBtYWdpYzEgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICByZWFkY291bnQgKys7CisgICAgICAgIGJ5dGUgbWFnaWMyID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgcmVhZGNvdW50ICsrOworICAgICAgICBpZiAobWFnaWMxICE9IE1BR0lDMSB8fCBtYWdpYzIgIT0gTUFHSUMyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oTUFHSUNfTlVNQkVSX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRF8pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnB1dC5yZWFkQ2hhcigpOyAvLyByZWFkaW5nIHNpemUKKyAgICAgICAgcmVhZGNvdW50ICs9IDI7CisgICAgICAgIGlucHV0LnJlYWRDaGFyKCk7IC8vIHJlYWRpbmcgcmVzZXJ2ZWQgd29yZAorICAgICAgICByZWFkY291bnQgKz0gMjsKKyAgICAgICAgYnl0ZSBiaWdlbmRpYW4gICAgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICByZWFkY291bnQgKys7CisgICAgICAgIGJ5dGUgY2hhcnNldCAgICAgID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgcmVhZGNvdW50ICsrOworICAgICAgICBieXRlIGNoYXJzaXplICAgICA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIHJlYWRjb3VudCArKzsKKyAgICAgICAgaW5wdXQucmVhZEJ5dGUoKTsgLy8gcmVhZGluZyByZXNlcnZlZCBieXRlCisgICAgICAgIHJlYWRjb3VudCArKzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgYnl0ZSBkYXRhRm9ybWF0SURbXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkoZGF0YUZvcm1hdElEKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIGJ5dGUgZGF0YVZlcnNpb25bXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkoZGF0YVZlcnNpb24pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgYnl0ZSB1bmljb2RlVmVyc2lvbltdID0gbmV3IGJ5dGVbNF07CisgICAgICAgIGlucHV0LnJlYWRGdWxseSh1bmljb2RlVmVyc2lvbik7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICBpZiAoaGVhZGVyc2l6ZSA8IHJlYWRjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogSGVhZGVyIHNpemUgZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICBpbnB1dC5za2lwQnl0ZXMoaGVhZGVyc2l6ZSAtIHJlYWRjb3VudCk7CisKKyAgICAgICAgaWYgKGJpZ2VuZGlhbiAhPSBCSUdfRU5ESUFOXyB8fCBjaGFyc2V0ICE9IENIQVJfU0VUXworICAgICAgICAgICAgfHwgY2hhcnNpemUgIT0gQ0hBUl9TSVpFXworICAgICAgICAgICAgfHwgIUFycmF5cy5lcXVhbHMoZGF0YUZvcm1hdElERXhwZWN0ZWQsIGRhdGFGb3JtYXRJRCkKKyAgICAgICAgICAgIHx8IChhdXRoZW50aWNhdGUgIT0gbnVsbCAKKyAgICAgICAgICAgICAgICAmJiAhYXV0aGVudGljYXRlLmlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGRhdGFWZXJzaW9uKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbihIRUFERVJfQVVUSEVOVElDQVRJT05fRkFJTEVEXyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVuaWNvZGVWZXJzaW9uOworICAgIH0KKyAgICAgCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIE1hZ2ljIG51bWJlcnMgdG8gYXV0aGVudGljYXRlIHRoZSBkYXRhIGZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgTUFHSUMxID0gKGJ5dGUpMHhkYTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE1BR0lDMiA9IChieXRlKTB4Mjc7CisgICAgICAKKyAgICAvKioKKyAgICAqIEZpbGUgZm9ybWF0IGF1dGhlbnRpY2F0aW9uIHZhbHVlcworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCSUdfRU5ESUFOXyA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBDSEFSX1NFVF8gPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQ0hBUl9TSVpFXyA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBFcnJvciBtZXNzYWdlcworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE1BR0lDX05VTUJFUl9BVVRIRU5USUNBVElPTl9GQUlMRURfID0gCisgICAgICAgICAgICAgICAgICAgICAgICJJQ1UgZGF0YSBmaWxlIGVycm9yOiBOb3QgYW4gSUNVIGRhdGEgZmlsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUl9BVVRIRU5USUNBVElPTl9GQUlMRURfID0KKyAgICAgICAgIklDVSBkYXRhIGZpbGUgZXJyb3I6IEhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQsIHBsZWFzZSBjaGVjayBpZiB5b3UgaGF2ZSBhIHZhbGlkIElDVSBkYXRhIGZpbGUiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5U3RyZWFtLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VCaW5hcnlTdHJlYW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDQ5MjUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5U3RyZWFtLmphdmEKQEAgLTAsMCArMSw1OSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgNSAyMDAyCisqIFNpbmNlOiBJQ1UgMi40CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgRGF0YUlucHV0U3RyZWFtIHRoYXQgaW1wbGVtZW50cyByYW5kb20tYWNjZXNzIHNlZWtpbmcuICBGb3IgdGhpcworICogdG8gd29yaywgdGhlIHNpemUgb2YgdGhlIGRhdGEgc3RyZWFtIG11c3QgYmUga25vd24gaW4gYWR2YW5jZSwgb3IKKyAqIHRoZSBkYXRhIG11c3QgYmUgc3VwcGxpZWQgYXMgYSByYXcgYnl0ZVtdIGFycmF5LgorICoKKyAqIFNlZWtpbmcgZG9lc24ndCB3b3JrIGRpcmVjdGx5IG9uIGFsbCBzdHJlYW1zLiAgSWYgYSBnaXZlbiBzdHJlYW0KKyAqIGRvZXNuJ3Qgc3VwcG9ydCBzZWVraW5nLCBleHRyYWN0IHRoZSBieXRlcyBpbnRvIGEgYnl0ZVtdIGFycmF5IGFuZAorICogdXNlIHRoZSBieXRlW10gY29uc3RydWN0b3IuCisgKi8KK2NsYXNzIElDVUJpbmFyeVN0cmVhbSBleHRlbmRzIERhdGFJbnB1dFN0cmVhbSB7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJlYW0gZnJvbSB0aGUgZ2l2ZW4gc3RyZWFtIGFuZCBzaXplLgorICAgICAqIEBwYXJhbSBzdHJlYW0gdGhlIHN0cmVhbSBvZiBkYXRhCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHNob3VsZCBiZSBtYWRlIGF2YWlsYWJsZQorICAgICAqIGZvciBzZWVraW5nLiAgQnl0ZXMgYmV5b25kIHRoaXMgbWF5IGJlIHJlYWQsIGJ1dCBzZWVraW5nIHdpbGwKKyAgICAgKiBub3Qgd29yayBmb3Igb2Zmc2V0ID49IHNpemUuCisgICAgICovCisgICAgcHVibGljIElDVUJpbmFyeVN0cmVhbShJbnB1dFN0cmVhbSBzdHJlYW0sIGludCBzaXplKSB7CisgICAgICAgIHN1cGVyKHN0cmVhbSk7CisgICAgICAgIG1hcmsoc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgc3RyZWFtIGZyb20gdGhlIGdpdmVuIHJhdyBieXRlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVQmluYXJ5U3RyZWFtKGJ5dGVbXSByYXcpIHsKKyAgICAgICAgdGhpcyhuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0ocmF3KSwgcmF3Lmxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VlayB0byB0aGUgZ2l2ZW4gb2Zmc2V0LiAgT2Zmc2V0IGlzIGZyb20gdGhlIHBvc2l0aW9uIG9mIHRoZQorICAgICAqIHN0cmVhbSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLCBvciBmcm9tIHRoZSBzdGFydCBvZiB0aGUKKyAgICAgKiBieXRlW10gYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VlayhpbnQgb2Zmc2V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXNldCgpOworICAgICAgICBpbnQgYWN0dWFsID0gc2tpcEJ5dGVzKG9mZnNldCk7CisgICAgICAgIGlmIChhY3R1YWwgIT0gb2Zmc2V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTa2lwKCIgKyBvZmZzZXQgKyAiKSBvbmx5IHNraXBwZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgKyAiIGJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhbHNlKSBTeXN0ZW0ub3V0LnByaW50bG4oIihzZWVrICIgKyBvZmZzZXQgKyAiKSIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2Q3ZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRmViIDQsIDIwMDQKKyAqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlcjsKK2ltcG9ydCBqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBQcm92aWRlcyBhY2Nlc3MgdG8gSUNVIGRhdGEgZmlsZXMgYXMgSW5wdXRTdHJlYW1zLiAgSW1wbGVtZW50cyBzZWN1cml0eSBjaGVja2luZy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIElDVURhdGEgeworICAgIC8qCisgICAgICogUmV0dXJuIGEgVVJMIHRvIHRoZSBJQ1UgcmVzb3VyY2UgbmFtZXMgcmVzb3VyY2VOYW1lLiAgVGhlCisgICAgICogcmVzb3VyY2UgbmFtZSBzaG91bGQgZWl0aGVyIGJlIGFuIGFic29sdXRlIHBhdGgsIG9yIGEgcGF0aCByZWxhdGl2ZSB0bworICAgICAqIGNvbS5pYm0uaWN1LmltcGwgKGUuZy4sIG1vc3QgbGlrZWx5IGl0IGlzICdkYXRhL2ZvbycpLiAgSWYgcmVxdWlyZWQKKyAgICAgKiBpcyB0cnVlLCB0aHJvdyBhbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaW5zdGVhZCBvZiByZXR1cm5pbmcgYSBudWxsIHJlc3VsdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXhpc3RzKGZpbmFsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgVVJMIGkgPSBudWxsOworICAgICAgICBpZiAoU3lzdGVtLmdldFNlY3VyaXR5TWFuYWdlcigpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGkgPSAoVVJMKUFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKG5ldyBQcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJQ1VEYXRhLmNsYXNzLmdldFJlc291cmNlKHJlc291cmNlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGkgPSBJQ1VEYXRhLmNsYXNzLmdldFJlc291cmNlKHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGkgIT0gbnVsbDsKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIElucHV0U3RyZWFtIGdldFN0cmVhbShmaW5hbCBDbGFzcyByb290LCBmaW5hbCBTdHJpbmcgcmVzb3VyY2VOYW1lLCBib29sZWFuIHJlcXVpcmVkKSB7CisgICAgICAgIElucHV0U3RyZWFtIGkgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKFN5c3RlbS5nZXRTZWN1cml0eU1hbmFnZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICBpID0gKElucHV0U3RyZWFtKUFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKG5ldyBQcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByb290LmdldFJlc291cmNlQXNTdHJlYW0ocmVzb3VyY2VOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaSA9IHJvb3QuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNvdXJjZU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGkgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiY291bGQgbm90IGxvY2F0ZSBkYXRhICIgK3Jlc291cmNlTmFtZSwgcm9vdC5nZXRQYWNrYWdlKCkuZ2V0TmFtZSgpLCByZXNvdXJjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElucHV0U3RyZWFtIGdldFN0cmVhbShmaW5hbCBDbGFzc0xvYWRlciBsb2FkZXIsIGZpbmFsIFN0cmluZyByZXNvdXJjZU5hbWUsIGJvb2xlYW4gcmVxdWlyZWQpIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaSA9IG51bGw7CisgICAgICAgIGlmIChTeXN0ZW0uZ2V0U2VjdXJpdHlNYW5hZ2VyKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgaSA9IChJbnB1dFN0cmVhbSlBY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChuZXcgUHJpdmlsZWdlZEFjdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0ocmVzb3VyY2VOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiY291bGQgbm90IGxvY2F0ZSBkYXRhIiwgbG9hZGVyLnRvU3RyaW5nKCksIHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKENsYXNzTG9hZGVyIGxvYWRlciwgU3RyaW5nIHJlc291cmNlTmFtZSl7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0obG9hZGVyLHJlc291cmNlTmFtZSwgZmFsc2UpOyAgIAorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0UmVxdWlyZWRTdHJlYW0oQ2xhc3NMb2FkZXIgbG9hZGVyLCBTdHJpbmcgcmVzb3VyY2VOYW1lKXsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShsb2FkZXIscmVzb3VyY2VOYW1lLCB0cnVlKTsgICAKKyAgICB9CisKKyAgICAvKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKElDVURhdGEuY2xhc3MsIHJlc291cmNlTmFtZSwgZmFsc2UpOworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShJQ1VEYXRhLmNsYXNzLCByZXNvdXJjZU5hbWUsIGZhbHNlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKElDVURhdGEuY2xhc3MsIHJlc291cmNlTmFtZSwgdHJ1ZSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnB1dFN0cmVhbSBnZXRSZXF1aXJlZFN0cmVhbShTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0oSUNVRGF0YS5jbGFzcywgcmVzb3VyY2VOYW1lLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKHJvb3QsIHJlc291cmNlTmFtZSwgZmFsc2UpOworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKENsYXNzIHJvb3QsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShyb290LCByZXNvdXJjZU5hbWUsIGZhbHNlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKHJvb3QsIHJlc291cmNlTmFtZSwgdHJ1ZSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnB1dFN0cmVhbSBnZXRSZXF1aXJlZFN0cmVhbShDbGFzcyByb290LCBTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0ocm9vdCwgcmVzb3VyY2VOYW1lLCB0cnVlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURlYnVnLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZDNiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhCkBAIC0wLDAgKzEsMTIzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VEZWJ1ZyB7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHBhcmFtczsKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGFyYW1zID0gU3lzdGVtLmdldFByb3BlcnR5KCJJQ1VEZWJ1ZyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IHBhcmFtcyAhPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGVscCA9IGRlYnVnICYmIChwYXJhbXMuZXF1YWxzKCIiKSB8fCBwYXJhbXMuaW5kZXhPZigiaGVscCIpICE9IC0xKTsKKworICAgIHN0YXRpYyB7CisgICAgICAgIGlmIChkZWJ1ZykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnPSIgKyBwYXJhbXMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgamF2YVZlcnNpb25TdHJpbmcgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0pESzE0T3JIaWdoZXI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBqYXZhVmVyc2lvbjsKKworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2VMZW5pZW50KFN0cmluZyBzKSB7CisgICAgICAgIC8vIGNsZWFuIHN0cmluZworICAgICAgICAvLyBwcmVzZXJ2ZSBvbmx5IGRpZ2l0cywgc2VwYXJhdGVkIGJ5IHNpbmdsZSAnLicgCisgICAgICAgIC8vIGlnbm9yZSBvdmVyIDQgZGlnaXQgc2VxdWVuY2VzCisgICAgICAgIC8vIGRvZXMgbm90IHRlc3QgPCAyNTUsIHZlcnkgb2RkLi4uCisKKyAgICAgICAgY2hhcltdIGNoYXJzID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnQgciA9IDAsIHcgPSAwLCBjb3VudCA9IDA7CisgICAgICAgIGJvb2xlYW4gbnVtZXJpYyA9IGZhbHNlOyAvLyBpZ25vcmUgbGVhZGluZyBub24tbnVtZXJpY3MKKyAgICAgICAgd2hpbGUgKHIgPCBjaGFycy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGNoYXJzW3IrK107CisgICAgICAgICAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKSB7CisgICAgICAgICAgICAgICAgaWYgKG51bWVyaWMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgZm91ciBkaWdpdCBzdHJpbmdzIGFsbG93ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG51bWVyaWMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNbdysrXSA9ICcuJzsKKyAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bWVyaWMgPSB0cnVlOworICAgICAgICAgICAgICAgIGNoYXJzW3crK10gPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlICh3ID4gMCAmJiBjaGFyc1t3LTFdID09ICcuJykgeworICAgICAgICAgICAgLS13OworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyB2cyA9IG5ldyBTdHJpbmcoY2hhcnMsIDAsIHcpOworCisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSh2cyk7CisgICAgfQorCisgICAgc3RhdGljIHsKKyAgICAgICAgamF2YVZlcnNpb24gPSBnZXRJbnN0YW5jZUxlbmllbnQoamF2YVZlcnNpb25TdHJpbmcpOworCisgICAgICAgIFZlcnNpb25JbmZvIGphdmExNFZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgiMS40LjAiKTsKKworICAgICAgICBpc0pESzE0T3JIaWdoZXIgPSBqYXZhVmVyc2lvbi5jb21wYXJlVG8oamF2YTE0VmVyc2lvbikgPj0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZW5hYmxlZCgpIHsKKyAgICAgICAgcmV0dXJuIGRlYnVnOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlbmFibGVkKFN0cmluZyBhcmcpIHsKKyAgICAgICAgaWYgKGRlYnVnKSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IHBhcmFtcy5pbmRleE9mKGFyZykgIT0gLTE7CisgICAgICAgICAgICBpZiAoaGVscCkgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnLmVuYWJsZWQoIiArIGFyZyArICIpID0gIiArIHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKy8qICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHZhbHVlKFN0cmluZyBhcmcpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9ICJmYWxzZSI7CisgICAgICAgIGlmIChkZWJ1ZykgeworICAgICAgICAgICAgaW50IGluZGV4ID0gcGFyYW1zLmluZGV4T2YoYXJnKTsKKyAgICAgICAgICAgIGlmIChpbmRleCAhPSAtMSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IGFyZy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyYW1zLmxlbmd0aCgpID4gaW5kZXggJiYgcGFyYW1zLmNoYXJBdChpbmRleCkgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IDE7CisgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IHBhcmFtcy5pbmRleE9mKCIsIiwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwYXJhbXMuc3Vic3RyaW5nKGluZGV4LCBsaW1pdCA9PSAtMSA/IHBhcmFtcy5sZW5ndGgoKSA6IGxpbWl0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAidHJ1ZSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaGVscCkgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnLnZhbHVlKCIgKyBhcmcgKyAiKSA9ICIgKyByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSovCisKKy8qICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gdGVzdAorICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICIxLjMuMCIsCisgICAgICAgICAgICAiMS4zLjBfMDIiLAorICAgICAgICAgICAgIjEuMy4xZWEiLAorICAgICAgICAgICAgIjEuNC4xYjQzIiwKKyAgICAgICAgICAgICJfX180MV9fXzUiLAorICAgICAgICAgICAgIngxLjQuNTF4eDg5ZWEuN2YiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0ZXN0c1tpXSArICIgPT4gIiArIGdldEluc3RhbmNlTGVuaWVudCh0ZXN0c1tpXSkpOworICAgICAgICB9CisgICAgfSovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OTc4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YQpAQCAtMCwwICsxLDYwNiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogQSBsaXN0IHJlc291cmNlIGJ1bmRsZSB0aGF0IGRvZXMgcmVkaXJlY3Rpb24KKyAqIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgb2Ygb3VyIHJlc291cmNlIGNsYXNzIGZpbGVzCisgKiBhcmUgdG9vIGJpZyBmb3IgdGhlIGphdmEgcnVudGltZSB0byBoYW5kbGUuCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK3B1YmxpYyBjbGFzcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VEQVRBID0gIklDVURBVEEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfQlVORExFX05BTUUgPSAiTG9jYWxlRWxlbWVudHMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfUEFDS0FHRV9OQU1FID0iY29tLmlibS5pY3UuaW1wbC5kYXRhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU5DT0RJTkc9IlVURi04IjsKKworICAgIC8qIHBhY2thZ2UgKi8gTG9jYWxlIGljdUxvY2FsZTsKKyAgICAvKiBwYWNrYWdlICovIHZvaWQgc2V0UGFyZW50WChSZXNvdXJjZUJ1bmRsZSBiKSB7CisgICAgICAgIHNldFBhcmVudChiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIGljdUxvY2FsZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgSUNVTGlzdFJlc291cmNlQnVuZGxlKCkgeworICAgIH0KKworICAgIHByaXZhdGUgSGFzaHRhYmxlIHZpc2l0ZWQgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcnMgbXVzdCBzdGF0aWNhbGx5IGluaXRpYWxpemUgdGhpcworICAgICAqLworICAgIHByb3RlY3RlZCBPYmplY3RbXVtdIGNvbnRlbnRzOworCisgICAgLyoqCisgICAgICogVGhpcyBpcyBvdXIgY2FjaGUKKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdW10gcmVhbENvbnRlbnRzOworCisgICAgLyoqCisgICAgICogU2VlIGJhc2UgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpeworICAgICAgICAvLyB3ZSByZXBsYWNlIGFueSByZWRpcmVjdGVkIHZhbHVlcyB3aXRoIHJlYWwgdmFsdWVzIGluIGEgY2xvbmVkIGFycmF5CisgICAgICAgIGlmIChyZWFsQ29udGVudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVhbENvbnRlbnRzID0gY29udGVudHM7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnRlbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IG5ld1ZhbHVlID0gZ2V0UmVkaXJlY3RlZFJlc291cmNlKChTdHJpbmcpY29udGVudHNbaV1bMF0sY29udGVudHNbaV1bMV0sIC0xKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVhbENvbnRlbnRzID09IGNvbnRlbnRzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFsQ29udGVudHMgPSAoT2JqZWN0W11bXSljb250ZW50cy5jbG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlYWxDb250ZW50c1tpXSA9IG5ldyBPYmplY3RbXSB7IGNvbnRlbnRzW2ldWzBdLCBuZXdWYWx1ZSB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVhbENvbnRlbnRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBudWxsIGlmIHZhbHVlIGlzIGFscmVhZHkgaW4gZXhpc3RpbmcgY29udGVudHMgYXJyYXksIG90aGVyd2lzZSBmZXRjaCB0aGUKKyAgICAgKiByZWFsIHZhbHVlIGFuZCByZXR1cm4gaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBPYmplY3QgZ2V0UmVkaXJlY3RlZFJlc291cmNlKFN0cmluZyBrZXksIE9iamVjdCB2YWx1ZSwgaW50IGluZGV4KSB7CisKKyAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0W11bXSkgeworICAgICAgICAgICAgT2JqZWN0W11bXSBhVmFsdWUgPSAoT2JqZWN0W11bXSl2YWx1ZTsKKyAgICAgICAgICAgIGludCBpPTA7CisgICAgICAgICAgICB3aGlsZShpIDwgYVZhbHVlLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgaW50IGo9MDsKKyAgICAgICAgICAgICAgICB3aGlsZShqIDwgYVZhbHVlW2ldLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgICAgIGFWYWx1ZVtpXVtqXSA9IGdldFJlZGlyZWN0ZWRSZXNvdXJjZSgoU3RyaW5nKWFWYWx1ZVtpXVswXSxhVmFsdWVbaV1bal0sIGkpOworICAgICAgICAgICAgICAgICAgICBqKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgT2JqZWN0W10gYVZhbHVlID0gKE9iamVjdFtdKSB2YWx1ZTsKKyAgICAgICAgICAgIGludCBpPTA7CisgICAgICAgICAgICB3aGlsZSggaSA8IGFWYWx1ZS5sZW5ndGgpeworICAgICAgICAgICAgICAgIGFWYWx1ZVtpXSA9IGdldFJlZGlyZWN0ZWRSZXNvdXJjZShrZXksYVZhbHVlW2ldLCBpKTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNlIGlmKHZhbHVlIGluc3RhbmNlb2YgQWxpYXMpeworICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBjTmFtZSA9IHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCk7CisgICAgICAgICAgICB2aXNpdGVkLmNsZWFyKCk7CisgICAgICAgICAgICB2aXNpdGVkLnB1dChjTmFtZStrZXksIiIpOworICAgICAgICAgICAgcmV0dXJuICgoQWxpYXMpdmFsdWUpLmdldFJlc291cmNlKGNOYW1lLGtleSxpbmRleCwgdmlzaXRlZCk7CisgICAgICAgIH1lbHNlIGlmKHZhbHVlIGluc3RhbmNlb2YgUmVkaXJlY3RlZFJlc291cmNlKXsKKyAgICAgICAgICAgIHJldHVybiAoKFJlZGlyZWN0ZWRSZXNvdXJjZSl2YWx1ZSkuZ2V0UmVzb3VyY2UodGhpcyk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIHJlYWRUb0VPUyhJbnB1dFN0cmVhbSBzdHJlYW0pIHsKKyAgICAgICAgLy8gQXMgb2YgMy4wIHRoaXMgbWV0aG9kIHJlYWRzIHN0cmVhbXMgb2YgbGVuZ3RoIDI2NC4uMjc0MDA4CisgICAgICAgIC8vIGZyb20gdGhlIGNvcmUgZGF0YS4gIFdlIHByb2dyZXNzaXZlbHkgZG91YmxlIHRoZSBidWZmZXIKKyAgICAgICAgLy8gc2l6ZSB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBhbGxvY2F0aW9ucyByZXF1aXJlZC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEFycmF5TGlzdCB2ZWMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IDB4MjAwOyAvLyBzbWFsbGVzdCAyXm4gPj0gbWluIHN0cmVhbSBsZW4KKyAgICAgICAgICAgIGZpbmFsIGludCBNQVhMRU5HVEggPSAweDgwMDA7CisgICAgICAgICAgICBpbnQgcG9zID0gLTE7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgICAgICAgICAgcG9zID0gMDsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGludCBuID0gc3RyZWFtLnJlYWQoYnVmZmVyLCBwb3MsIGxlbmd0aCAtIHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwb3MgKz0gbjsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChwb3MgPCBsZW5ndGgpOworICAgICAgICAgICAgICAgIGNvdW50ICs9IHBvczsKKyAgICAgICAgICAgICAgICB2ZWMuYWRkKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA8IE1BWExFTkdUSCkgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGggPDw9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIlxuY291bnQgIiArIGNvdW50ICsgIiBieXRlcyBmcm9tICIgKyBzdHJlYW0pOworCisgICAgICAgICAgICBieXRlW10gZGF0YSA9IG5ldyBieXRlW2NvdW50XTsKKyAgICAgICAgICAgIHBvcyA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlYy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBidWYgPSAoYnl0ZVtdKXZlYy5nZXQoaSk7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGNvdW50IC0gcG9zKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZiwgMCwgZGF0YSwgcG9zLCBsZW4pOworICAgICAgICAgICAgICAgIHBvcyArPSBsZW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhc3NlcnQgcG9zPT1jb3VudDsKKyAgICAgICAgICAgIHJldHVybiBkYXRhOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSByZWFkVG9FT1MoSW5wdXRTdHJlYW1SZWFkZXIgc3RyZWFtKSB7CisgICAgICAgIC8vIEFzIG9mIDMuMCB0aGlzIG1ldGhvZCByZWFkcyBzdHJlYW1zIG9mIGxlbmd0aCA0MTk5MC4uNDE5OTQKKyAgICAgICAgLy8gZnJvbSB0aGUgY29yZSBkYXRhLiAgVGhlIElCTSAxLjQgVVRGOCBjb252ZXJ0ZXIgZG9lc24ndAorICAgICAgICAvLyBoYW5kbGUgYnVmZmVyaW5nIHJlbGlhYmx5IChpdCB0aHJvd3MgYW4gZXhjZXB0aW9uKSBzbyB3ZQorICAgICAgICAvLyBhcmUgZm9yY2VkIHRvIHJlYWQgZXZlcnl0aGluZyBpbiBvbmUgY2h1bmsuCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gMHgxMDAwMDsgLy8gc21hbGxlc3QgMl5uID49IG1heCBzdHJlYW0gbGVuCisgICAgICAgICAgICBmaW5hbCBpbnQgTUFYTEVOR1RIID0gMHg0MDAwMDAwMDsKKyAgICAgICAgICAgIGludCBuOworICAgICAgICAgICAgY2hhcltdIGJ1ZmZlcjsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBidWZmZXIgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICAgICAgICAgIG4gPSBzdHJlYW0ucmVhZChidWZmZXIsIDAsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgaWYgKG4gPj0gMCAmJiBuIDwgbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoIDwgTUFYTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5yZXNldCgpOworICAgICAgICAgICAgICAgICAgICBsZW5ndGggPDw9IDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigibWF4aW11bSBpbnB1dCBzdHJlYW0gbGVuZ3RoIGV4Y2VlZGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIlxuY291bnQgIiArIG4gKyAiIGNoYXJzIGZyb20gIiArIHN0cmVhbSk7CisKKyAgICAgICAgICAgIGNoYXJbXSBkYXRhID0gbmV3IGNoYXJbbl07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlciwgMCwgZGF0YSwgMCwgbik7CisgICAgICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbXByZXNzZWRTdHJpbmcgaW1wbGVtZW50cyBSZWRpcmVjdGVkUmVzb3VyY2V7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGV4cGFuZGVkPW51bGw7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGNvbXByZXNzZWQ9bnVsbDsKKyAgICAgICAgcHVibGljIENvbXByZXNzZWRTdHJpbmcoU3RyaW5nIHN0cil7CisgICAgICAgICAgIGNvbXByZXNzZWQ9c3RyOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0UmVzb3VyY2UoT2JqZWN0IG9iail7CisgICAgICAgICAgICBpZihjb21wcmVzc2VkPT1udWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGFuZGVkPT1udWxsKXsKKyAgICAgICAgICAgICAgICBleHBhbmRlZD0gbmV3IFN0cmluZyhVdGlsaXR5LlJMRVN0cmluZ1RvQ2hhckFycmF5KGNvbXByZXNzZWQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBleHBhbmRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQ29tcHJlc3NlZEJpbmFyeSBpbXBsZW1lbnRzIFJlZGlyZWN0ZWRSZXNvdXJjZXsKKyAgICAgICAgcHJpdmF0ZSBieXRlW10gZXhwYW5kZWQ9bnVsbDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgY29tcHJlc3NlZD1udWxsOworICAgICAgICBwdWJsaWMgQ29tcHJlc3NlZEJpbmFyeShTdHJpbmcgc3RyKXsKKyAgICAgICAgICAgY29tcHJlc3NlZCA9IHN0cjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFJlc291cmNlKE9iamVjdCBvYmopeworICAgICAgICAgICAgaWYoY29tcHJlc3NlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBieXRlWzBdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihleHBhbmRlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgZXhwYW5kZWQ9IFV0aWxpdHkuUkxFU3RyaW5nVG9CeXRlQXJyYXkoY29tcHJlc3NlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZXhwYW5kZWQgPT1udWxsID8gbmV3IGJ5dGVbMF06IGV4cGFuZGVkOworICAgICAgICB9CisKKyAgICB9CisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgUmVkaXJlY3RlZFJlc291cmNleworICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFJlc291cmNlKE9iamVjdCBvYmopOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUmVzb3VyY2VCaW5hcnkgaW1wbGVtZW50cyBSZWRpcmVjdGVkUmVzb3VyY2V7CisgICAgICAgIHByaXZhdGUgYnl0ZVtdIGV4cGFuZGVkPW51bGw7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHJlc05hbWU9bnVsbDsKKyAgICAgICAgcHVibGljIFJlc291cmNlQmluYXJ5KFN0cmluZyBuYW1lKXsKKyAgICAgICAgICAgIHJlc05hbWU9ImRhdGEvIiArIG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICBpZihleHBhbmRlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gSUNVRGF0YS5nZXRTdHJlYW0ocmVzTmFtZSk7CisgICAgICAgICAgICAgICAgaWYoc3RyZWFtIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgLy90aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCIiLG9iai5nZXRDbGFzcygpLmdldE5hbWUoKSxyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPSByZWFkVG9FT1Moc3RyZWFtKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGFuZGVkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUmVzb3VyY2VTdHJpbmcgaW1wbGVtZW50cyBSZWRpcmVjdGVkUmVzb3VyY2V7CisgICAgICAgIHByaXZhdGUgY2hhcltdIGV4cGFuZGVkPW51bGw7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHJlc05hbWU9bnVsbDsKKyAgICAgICAgcHVibGljIFJlc291cmNlU3RyaW5nKFN0cmluZyBuYW1lKXsKKyAgICAgICAgICAgIHJlc05hbWU9ImRhdGEvIituYW1lOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0UmVzb3VyY2UoT2JqZWN0IG9iaikgeworICAgICAgICAgICAgaWYoZXhwYW5kZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIC8vIFJlc291cmNlIHN0cmluZ3MgYXJlIGFsd2F5cyBVVEYtOAorICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IElDVURhdGEuZ2V0U3RyZWFtKHJlc05hbWUpOworICAgICAgICAgICAgICAgIGlmKHN0cmVhbSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIC8vdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiIixvYmouZ2V0Q2xhc3MoKS5nZXROYW1lKCkscmVzTmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgcmVhZGVyID0gIG5ldyBJbnB1dFN0cmVhbVJlYWRlcihzdHJlYW0sRU5DT0RJTkcpOworICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPSByZWFkVG9FT1MocmVhZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgfWNhdGNoKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkNvdWxkIG9wZW4gY29udmVydGVyIGZvciBlbmNvZGluZzogIiArRU5DT0RJTkcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGV4cGFuZGVkKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFJFU19QQVRIX1NFUF9DSEFSID0gJy8nOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQWxpYXN7CisgICAgICAgIHB1YmxpYyBBbGlhcyhTdHJpbmcgcGF0aCl7CisgICAgICAgICAgICBwYXRoVG9SZXNvdXJjZSA9IHBhdGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHBhdGhUb1Jlc291cmNlOworCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGdldFJlc291cmNlKFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyBwYXJlbnRLZXksIGludCBpbmRleCwgSGFzaHRhYmxlIHZpc2l0ZWQpeworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lPW51bGwsYnVuZGxlTmFtZT1udWxsLCBsb2NhbGU9bnVsbCwga2V5UGF0aD1udWxsOworCisgICAgICAgICAgICBpZihwYXRoVG9SZXNvdXJjZS5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSKT09MCl7CisgICAgICAgICAgICAgICAgaW50IGkgPXBhdGhUb1Jlc291cmNlLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIsMSk7CisgICAgICAgICAgICAgICAgaW50IGogPXBhdGhUb1Jlc291cmNlLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIsaSsxKTsKKyAgICAgICAgICAgICAgICBidW5kbGVOYW1lPXBhdGhUb1Jlc291cmNlLnN1YnN0cmluZygxLGkpOworICAgICAgICAgICAgICAgIGxvY2FsZT1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaSsxKTsKKyAgICAgICAgICAgICAgICBpZihqIT0tMSl7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZT1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaSsxLGopOworICAgICAgICAgICAgICAgICAgICBrZXlQYXRoPXBhdGhUb1Jlc291cmNlLnN1YnN0cmluZyhqKzEscGF0aFRvUmVzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL3RoZXJlIGlzIGEgcGF0aCBpbmNsdWRlZAorICAgICAgICAgICAgICAgIGlmKGJ1bmRsZU5hbWUuZXF1YWxzKElDVURBVEEpKXsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlTmFtZSA9IElDVV9CVU5ETEVfTkFNRTsKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZU5hbWUgPSBJQ1VfUEFDS0FHRV9OQU1FOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgLy9ubyBwYXRoIHN0YXJ0IHdpdGggbG9jYWxlCisgICAgICAgICAgICAgICAgaW50IGkgPXBhdGhUb1Jlc291cmNlLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIpOworICAgICAgICAgICAgICAgIC8vSWYgdGhpcyBpcyBhIGJ1bmRsZSB3aXRoIGxvY2FsZSBuYW1lIGZvbGxvd2luZyBpdAorICAgICAgICAgICAgICAgIC8vdGhlbiBpdCBzaG91bGQgYmUgb2YgdHlwZSA8YnVuZGxlIG5hbWU+Xzxsb2NhbGU+CisgICAgICAgICAgICAgICAgLy9pZiBub3Qgd2UgZG9ub3QgZ3VhcmFudGVlIHRoYXQgdGhpcyB3aWxsIHdvcmsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGNsYXNzTmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICAgICAgICAgIHBhY2thZ2VOYW1lPWNsYXNzTmFtZS5zdWJzdHJpbmcoMCxqKTsKKyAgICAgICAgICAgICAgICBpbnQgdW5kZXJTY29yZUluZGV4ID0gY2xhc3NOYW1lLmluZGV4T2YoIl8iKTsKKyAgICAgICAgICAgICAgICBpZih1bmRlclNjb3JlSW5kZXg+PTApeworICAgICAgICAgICAgICAgICAgICBidW5kbGVOYW1lPWNsYXNzTmFtZS5zdWJzdHJpbmcoaisxLGNsYXNzTmFtZS5pbmRleE9mKCJfIikpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBidW5kbGVOYW1lID0gY2xhc3NOYW1lLnN1YnN0cmluZyhqKzEsY2xhc3NOYW1lLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAga2V5UGF0aD1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaSsxKTsKKworICAgICAgICAgICAgICAgIGlmKGkhPS0xKXsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gcGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKDAsaSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZT1rZXlQYXRoOworICAgICAgICAgICAgICAgICAgICBrZXlQYXRoPXBhcmVudEtleTsKKyAgICAgICAgICAgICAgICAgICAgaWYobG9jYWxlPT1udWxsIHx8IGxvY2FsZS5lcXVhbHMoInJvb3QiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9cGFja2FnZU5hbWUrIi4iK2J1bmRsZU5hbWU7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXBhY2thZ2VOYW1lKyIuIitidW5kbGVOYW1lKyJfIisgbG9jYWxlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICAgICAgLy8gZ2V0UmVzb3VyY2VCdW5kbGUgZ3VhcmFudGVlcyB0aGF0IHRoZSBDTEFTU1BBVEggd2lsbCBiZSBzZWFyY2hlZAorICAgICAgICAgICAgLy8gZm9yIGxvYWRpbmcgdGhlIHJlc291cmNlIHdpdGggbmFtZSA8YnVuZGxlTmFtZT5fPGxvY2FsZU5hbWU+LmNsYXNzCisgICAgICAgICAgICBpZihsb2NhbGU9PW51bGwgfHwgbG9jYWxlLmVxdWFscygicm9vdCIpKXsKKyAgICAgICAgICAgICAgICBidW5kbGUgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKHBhY2thZ2VOYW1lLGJ1bmRsZU5hbWUsIiIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZShwYWNrYWdlTmFtZSxidW5kbGVOYW1lLGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmaW5kUmVzb3VyY2UoYnVuZGxlLCBjbGFzc05hbWUsIHBhcmVudEtleSwgaW5kZXgsIGtleVBhdGgsIHZpc2l0ZWQpOworICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlKE9iamVjdFtdW10gY29udGVudHMsIFN0cmluZyBrZXkpeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250ZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIC8vIGtleSBtdXN0IGJlIG5vbi1udWxsIFN0cmluZywgdmFsdWUgbXVzdCBiZSBub24tbnVsbAorICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wS2V5ID0gKFN0cmluZykgY29udGVudHNbaV1bMF07CisgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gY29udGVudHNbaV1bMV07CisgICAgICAgICAgICAgICAgaWYgKHRlbXBLZXkgPT0gbnVsbCB8fCB2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZih0ZW1wS2V5LmVxdWFscyhrZXkpKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIE9iamVjdCBmaW5kUmVzb3VyY2UoT2JqZWN0IG8gLCBTdHJpbmdbXSBrZXlzLCBpbnQgc3RhcnQsIGludCBpbmRleCl7CisgICAgICAgICAgICBPYmplY3Qgb2JqID0gbzsKKyAgICAgICAgICAgIGlmKCBzdGFydCA8IGtleXMubGVuZ3RoICYmIGtleXNbc3RhcnRdICE9bnVsbCl7CisgICAgICAgICAgICAgICAgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IGZpbmRSZXNvdXJjZSgoT2JqZWN0W11bXSlvYmosa2V5c1tzdGFydF0pOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdICYmIGlzSW5kZXgoa2V5c1tzdGFydF0pKXsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gKChPYmplY3RbXSlvYmopW2dldEluZGV4KGtleXNbc3RhcnRdKV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHN0YXJ0KzEgPCBrZXlzLmxlbmd0aCAmJiBrZXlzW3N0YXJ0KzFdICE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IGZpbmRSZXNvdXJjZShvYmosa2V5cyxzdGFydCsxLCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgLy90cnkgdG8gZmluZCB0aGUgY29ycmVzcG9uZGluZyBpbmRleCByZXNvdXJjZQorICAgICAgICAgICAgICAgIGlmKGluZGV4Pj0wKXsKKyAgICAgICAgICAgICAgICAgICAgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2UoKE9iamVjdFtdW10pb2JqLEludGVnZXIudG9TdHJpbmcoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gKChPYmplY3RbXSlvYmopW2luZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvYmo7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlKFJlc291cmNlQnVuZGxlIGJ1bmRsZSwgU3RyaW5nIGNsYXNzTmFtZSwgU3RyaW5nIHJlcXVlc3RlZEtleSwgaW50IGluZGV4LCBTdHJpbmcgYWxpYXNLZXksIEhhc2h0YWJsZSB2aXNpdGVkKXsKKworICAgICAgICAgICAgaWYoYWxpYXNLZXkgIT0gbnVsbCAmJiB2aXNpdGVkLmdldChjbGFzc05hbWUrYWxpYXNLZXkpIT1udWxsKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDaXJjdWxhciBBbGlhc2VzIGluIGJ1bmRsZS4iLGJ1bmRsZS5nZXRDbGFzcygpLmdldE5hbWUoKSxyZXF1ZXN0ZWRLZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYWxpYXNLZXk9PW51bGwpeworICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSB3ZSBkbyBhbiBpbXBsaWNpdCBrZXkgbG9va3VwCisgICAgICAgICAgICAgICAgLy8gcmV0dXJuICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKWJ1bmRsZSkuZ2V0Q29udGVudHMoKTsKKyAgICAgICAgICAgICAgICBhbGlhc0tleSA9IHJlcXVlc3RlZEtleTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmlzaXRlZC5wdXQoY2xhc3NOYW1lK3JlcXVlc3RlZEtleSwiIik7CisKKyAgICAgICAgICAgIFN0cmluZ1tdIGtleXMgPSBzcGxpdChhbGlhc0tleSxSRVNfUEFUSF9TRVBfQ0hBUik7CisgICAgICAgICAgICBPYmplY3QgbyA9bnVsbDsKKyAgICAgICAgICAgIGlmKGtleXMubGVuZ3RoPjApeworICAgICAgICAgICAgICAgIG8gPSBidW5kbGUuZ2V0T2JqZWN0KGtleXNbMF0pOworICAgICAgICAgICAgICAgIG8gPSBmaW5kUmVzb3VyY2Uobywga2V5cywgMSwgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbz1yZXNvbHZlQWxpYXNlcyhvLGNsYXNzTmFtZSxhbGlhc0tleSx2aXNpdGVkKTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgIE9iamVjdCByZXNvbHZlQWxpYXNlcyhPYmplY3QgbyxTdHJpbmcgY2xhc3NOYW1lLFN0cmluZyBrZXksIEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICBvID0gcmVzb2x2ZUFsaWFzZXMoKE9iamVjdFtdW10pbyxjbGFzc05hbWUsa2V5LCB2aXNpdGVkKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICAgICAgIG8gPSByZXNvbHZlQWxpYXNlcygoT2JqZWN0W10pbyxjbGFzc05hbWUsa2V5LCB2aXNpdGVkKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBBbGlhcyl7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoQWxpYXMpbykuZ2V0UmVzb3VyY2UoY2xhc3NOYW1lLGtleSwgLTEsIHZpc2l0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgcmVzb2x2ZUFsaWFzZXMoT2JqZWN0W11bXSBvLFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyBrZXksSGFzaHRhYmxlIHZpc2l0ZWQpeworICAgICAgICAgICAgaW50IGkgPTA7CisgICAgICAgICAgICB3aGlsZShpPG8ubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBvW2ldWzFdPXJlc29sdmVBbGlhc2VzKG9baV1bMV0sY2xhc3NOYW1lLGtleSx2aXNpdGVkKTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIE9iamVjdCByZXNvbHZlQWxpYXNlcyhPYmplY3RbXSBvLFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyBrZXksSGFzaHRhYmxlIHZpc2l0ZWQpeworICAgICAgICAgICAgaW50IGkgPTA7CisgICAgICAgICAgICB3aGlsZShpPG8ubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBvW2ldPXJlc29sdmVBbGlhc2VzKG9baV0sY2xhc3NOYW1lLGtleSx2aXNpdGVkKTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorCisKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gc3BsaXQoU3RyaW5nIHNvdXJjZSwgY2hhciBkZWxpbWl0ZXIpeworCisgICAgICAgIGNoYXJbXSBzcmMgPSBzb3VyY2UudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IG51bWRlbGltaXQ9MDsKKyAgICAgICAgLy8gZmlyc3QgY291bnQgdGhlIG51bWJlciBvZiBkZWxpbWl0ZXJzCisgICAgICAgIGZvcihpbnQgaT0wO2k8c291cmNlLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICBpZihzcmNbaV09PWRlbGltaXRlcil7CisgICAgICAgICAgICAgICAgbnVtZGVsaW1pdCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9bnVsbDsKKyAgICAgICAgdmFsdWVzID0gbmV3IFN0cmluZ1tudW1kZWxpbWl0KzJdOworICAgICAgICAvLyBub3cgc3BsaXQKKyAgICAgICAgaW50IG9sZD0wOworICAgICAgICBmb3IoaW50IGo9MDtqPHNyYy5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgIGlmKHNyY1tqXT09ZGVsaW1pdGVyKXsKKyAgICAgICAgICAgICAgICB2YWx1ZXNbaW5kZXgrK10gPSBuZXcgU3RyaW5nKHNyYyxvbGQsai1vbGQpOworICAgICAgICAgICAgICAgIG9sZD1qKzEvKiBza2lwIGFmdGVyIHRoZSBkZWxpbWl0ZXIqLzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihvbGQgPHNyYy5sZW5ndGgpCisgICAgICAgICAgICB2YWx1ZXNbaW5kZXgrK109bmV3IFN0cmluZyhzcmMsb2xkLHNyYy5sZW5ndGgtb2xkKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcGVyZm9ybXMgbXVsdGlsZXZlbCBmYWxsYmFjayBmb3IgZmV0Y2hpbmcgaXRlbXMgZnJvbSB0aGUgYnVuZGxlCisgICAgICogZS5nOgorICAgICAqIElmIHJlc291cmNlIGlzIGluIHRoZSBmb3JtCisgICAgICogZGVfX1BIT05FQk9PS3sKKyAgICAgKiAgICAgIGNvbGxhdGlvbnN7CisgICAgICogICAgICAgICAgICAgIGRlZmF1bHR7ICJwaG9uZWJvb2sifQorICAgICAqICAgICAgfQorICAgICAqIH0KKyAgICAgKiBJZiB0aGUgdmFsdWUgb2YgImRlZmF1bHQiIGtleSBuZWVkcyB0byBiZSBhY2Nlc3NlZCwgdGhlbiBkbzoKKyAgICAgKiA8Y29kZT4KKyAgICAgKiAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gbmV3IFJlc291cmNlQnVuZGxlKGdldExvY2FsZUZyb21TdHJpbmcoImRlX19QSE9ORUJPT0siKSk7CisgICAgICogIE9iamVjdCByZXN1bHQgPSBudWxsOworICAgICAqICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAqICAgICAgcmVzdWx0ID0gKChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpIGJ1bmRsZSkuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgKiAgfQorICAgICAqIDwvY29kZT4KKyAgICAgKiBAcGFyYW0gcGF0aCAgVGhlIHBhdGggdG8gdGhlIHJlcXVpcmVkIHJlc291cmNlIGtleQorICAgICAqIEByZXR1cm4gT2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBrZXkKKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBPYmplY3QgZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKFN0cmluZyBwYXRoKSAKKyAgICAgICAgICAgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIGtleXMgPSBzcGxpdChwYXRoLCBSRVNfUEFUSF9TRVBfQ0hBUik7CisgICAgICAgIE9iamVjdCByZXN1bHQgPSBudWxsOyAgICAgIAorICAgICAgICBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgYWN0dWFsQnVuZGxlID0gdGhpczsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAvLyBub3cgcmVjdXNlIHRvIHBpY2sgdXAgc3ViIGxldmVscyBvZiB0aGUgaXRlbXMKKyAgICAgICAgcmVzdWx0ID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKGtleXMsIGFjdHVhbEJ1bmRsZSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZihyZXN1bHQgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgcmVzb3VyY2UgaW4gIix0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpLHBhdGgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorCisgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKFN0cmluZ1tdIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBhY3R1YWxCdW5kbGUpeworCisgICAgICAgIE9iamVjdCBvYmogPSBudWxsOyAKKyAgICAgICAgCisgICAgICAgIHdoaWxlKGFjdHVhbEJ1bmRsZSAhPSBudWxsKXsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgdG9wIGxldmVsIHJlc291cmNlIAorICAgICAgICAgICAgLy8gZ2V0T2JqZWN0IGlzIGEgbWV0aG9kIG9uIHRoZSBSZXNvdXJjZUJ1bmRsZSBjbGFzcyB0aGF0CisgICAgICAgICAgICAvLyBwZXJmb3JtcyB0aGUgbm9ybWFsIGZhbGxiYWNrCisgICAgICAgICAgICBvYmogPSBhY3R1YWxCdW5kbGUuZ2V0T2JqZWN0KGtleXNbMF0sIGFjdHVhbEJ1bmRsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG5vdyBmaW5kIHRoZSBidW5kbGUgZnJvbSB0aGUgYWN0dWFsIGJ1bmRsZSAKKyAgICAgICAgICAgIC8vIGlmIHRoaXMgYnVuZGxlIGRvZXMgbm90IGNvbnRhaW4gdGhlIHRvcCBsZXZlbCByZXNvdXJjZSwKKyAgICAgICAgICAgIC8vIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCBpdCBkb2VzIG5vdCBjb250YWluIHRoZSBzdWIgZWxlbWVudHMKKyAgICAgICAgICAgIG9iaiA9IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhvYmosIGtleXMsIDEsIDApOworICAgICAgICAgICAgLy8gZGlkIHdlIGdldCB0aGUgY29udGVudHM/IHRoZSBicmVhaworICAgICAgICAgICAgaWYob2JqICE9IG51bGwpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgbm90IHRyeSB0aGUgcGFyZW50IGJ1bmRsZQorICAgICAgICAgICAgYWN0dWFsQnVuZGxlID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYWN0dWFsQnVuZGxlLnBhcmVudDsKKyAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIHByaXZhdGUgT2JqZWN0IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhPYmplY3QgbyAsIFN0cmluZ1tdIGtleXMsIGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCl7CisgICAgICAgIE9iamVjdCBvYmogPSBvOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICBpZiggc3RhcnQgPCBrZXlzLmxlbmd0aCAmJiBrZXlzW3N0YXJ0XSAhPW51bGwpeworICAgICAgICAgICAgICAgIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2soKE9iamVjdFtdW10pb2JqLGtleXNbc3RhcnRdKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXSAmJiBpc0luZGV4KGtleXNbc3RhcnRdKSl7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9ICgoT2JqZWN0W10pb2JqKVtnZXRJbmRleChrZXlzW3N0YXJ0XSldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzdGFydCsxIDwga2V5cy5sZW5ndGggJiYga2V5c1tzdGFydCsxXSAhPW51bGwpeworICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2sob2JqLGtleXMsc3RhcnQrMSwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIC8vdHJ5IHRvIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggcmVzb3VyY2UKKyAgICAgICAgICAgICAgICBpZihpbmRleD49MCl7CisgICAgICAgICAgICAgICAgICAgIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKChPYmplY3RbXVtdKW9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b1N0cmluZyhpbmRleCkpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBvYmogPSAoKE9iamVjdFtdKW9iailbaW5kZXhdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgT2JqZWN0IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhPYmplY3RbXVtdIGNudHMsIFN0cmluZyBrZXkpeworICAgICAgICBPYmplY3Qgb2JqID0gbnVsbDsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIC8vIGtleSBtdXN0IGJlIG5vbi1udWxsIFN0cmluZworICAgICAgICAgICAgU3RyaW5nIHRlbXBLZXkgPSAoU3RyaW5nKSBjbnRzW2ldWzBdOworICAgICAgICAgICAgb2JqID0gY250c1tpXVsxXTsKKyAgICAgICAgICAgIGlmKHRlbXBLZXkgIT0gbnVsbCAmJiB0ZW1wS2V5LmVxdWFscyhrZXkpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IGdldE9iamVjdChTdHJpbmcga2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGFjdHVhbEJ1bmRsZSkgeworICAgICAgICBPYmplY3Qgb2JqID0gaGFuZGxlR2V0T2JqZWN0KGtleSk7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIHAgPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKSB0aGlzLnBhcmVudDsKKyAgICAgICAgICAgIHdoaWxlKCBwIT1udWxsKXsKKyAgICAgICAgICAgICAgICBvYmogPSBwLmhhbmRsZUdldE9iamVjdChrZXkpOworICAgICAgICAgICAgICAgIGlmKG9iaiAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsQnVuZGxlID0gcDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgcC5wYXJlbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0luZGV4KFN0cmluZyBzKXsKKyAgICAgICAgIGlmKHMubGVuZ3RoKCk9PTEpeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLmlzRGlnaXQoYyk7CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRJbmRleChTdHJpbmcgcyl7CisgICAgICAgICBpZihzLmxlbmd0aCgpPT0xKXsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgaWYoQ2hhcmFjdGVyLmlzRGlnaXQoYykpeworICAgICAgICAgICAgICByZXR1cm4gSW50ZWdlci52YWx1ZU9mKHMpLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYzN2JlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZURhdGEuamF2YQpAQCAtMCwwICsxLDM1MiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDItMjAwNSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogUHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgYW5kIGFjY2VzcyB0byByZXNvdXJjZSBidW5kbGVzIGluIHRoZQorICogY29tLmlibS50ZXh0LnJlc291cmNlcyBwYWNrYWdlLiAgVW5saWtlIHRoZSBqYXZhIHZlcnNpb24sIHRoaXMgZG9lcworICogbm90IGluY2x1ZGUgcmVzb3VyY2VzIGZyb20gYW55IG90aGVyIGxvY2F0aW9uLiAgSW4gcGFydGljdWxhciwgaXQKKyAqIGRvZXMgbm90IGxvb2sgaW4gdGhlIGJvb3Qgb3Igc3lzdGVtIGNsYXNzIHBhdGguCisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VMb2NhbGVEYXRhIHsKKworICAgIC8qKgorICAgICAqIFRoZSBwYWNrYWdlIGZvciBJQ1UgbG9jYWxlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9QQUNLQUdFID0gImNvbS5pYm0uaWN1LmltcGwuZGF0YSI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgYmFzZSBuYW1lIChidW5kbGUgbmFtZSkgZm9yIElDVSBsb2NhbGUgZGF0YS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIExPQ0FMRV9FTEVNRU5UUyA9ICJMb2NhbGVFbGVtZW50cyI7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgTG9jYWxlRWxlbWVudHMgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogaW4gdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsIG9yCisgICAgICogbnVsbCB0byB1c2UgdGhlIGRlZmF1bHQgbG9jYWxlCisgICAgICogQHJldHVybiBhIFJlc291cmNlQnVuZGxlIGZvciB0aGUgTG9jYWxlRWxlbWVudHMgb2YgdGhlIGdpdmVuCisgICAgICogbG9jYWxlLCBvciBudWxsIG9uIGZhaWx1cmUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGdldExvY2FsZUVsZW1lbnRzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKElDVV9QQUNLQUdFLCBMT0NBTEVfRUxFTUVOVFMsIGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgTG9jYWxlRWxlbWVudHMgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogaW4gdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UuCisgICAgICogQHBhcmFtIGxvY2FsZU5hbWUgdGhlIHN0cmluZyBuYW1lIG9mIHRoZSBsb2NhbGUgb2YgdGhlIGJ1bmRsZQorICAgICAqIHRvIHJldHJpZXZlLCBlLmcuLCAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gYSBSZXNvdXJjZUJ1bmRsZSBmb3IgdGhlIExvY2FsZUVsZW1lbnRzIG9mIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZSwgb3IgbnVsbCBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRMb2NhbGVFbGVtZW50cyhTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICByZXR1cm4gZ2V0UmVzb3VyY2VCdW5kbGUoSUNVX1BBQ0tBR0UsIExPQ0FMRV9FTEVNRU5UUywgbG9jYWxlTmFtZSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBJQ1UgcGFja2FnZS4KKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUKKyAgICAgKiB0byByZXRyaWV2ZSwgZS5nLiAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gYSBSZXNvdXJjZUJ1bmRsZSB3aXRoIHRoZSBnaXZlbiBiYXNlIG5hbWUgZm9yIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZSwgb3IgbnVsbCBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKElDVV9QQUNLQUdFLCBidW5kbGVOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBJQ1UgcGFja2FnZS4KKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgYnVuZGxlIHRvIHJldHJpZXZlLCBvcgorICAgICAqIG51bGwgdG8gdXNlIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqIEByZXR1cm4gYSBSZXNvdXJjZUJ1bmRsZSB3aXRoIHRoZSBnaXZlbiBiYXNlIG5hbWUgZm9yIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZSwgb3IgbnVsbCBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYnVuZGxlTmFtZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0UmVzb3VyY2VCdW5kbGUoSUNVX1BBQ0tBR0UsIGJ1bmRsZU5hbWUsIGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSwgYmFzZSBuYW1lLCBhbmQKKyAgICAgKiBsb2NhbGUuCisgICAgICogQHBhcmFtIHBhY2thZ2VOYW1lIGEgcGFja2FnZSBuYW1lLCBlLmcuLCAiY29tLmlibS5pY3UuaW1wbC5kYXRhIi4KKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUKKyAgICAgKiB0byByZXRyaWV2ZSwgZS5nLiAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IFJlc291cmNlQnVuZGxlIHdpdGggdGhlIGdpdmVuIGJhc2UgbmFtZSBmb3IKKyAgICAgKiB0aGUgZ2l2ZW4gbG9jYWxlIGZvdW5kIGluIGVhY2ggb2YgdGhlIHBhY2thZ2VzLCBvciBudWxsIG9uCisgICAgICogZmFpbHVyZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIHBhY2thZ2VOYW1lLCBTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gcGFja2FnZU5hbWUgKyAiLiIgKyBidW5kbGVOYW1lOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImNhbGxpbmcgaW5zdGFudGlhdGU6ICIgKyBwYXRoICsgIl8iICsgbG9jYWxlTmFtZSk7CisgICAgICAgICAgICByZXR1cm4gaW5zdGFudGlhdGUocGF0aCwgbG9jYWxlTmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbihidW5kbGVOYW1lICsgIl8iICsgbG9jYWxlTmFtZSArICIgbm90IGZvdW5kIGluICIgKyBwYWNrYWdlTmFtZSk7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlIGluCisgICAgICogb25lIG9mIHRoZSBnaXZlbiBwYWNrYWdlcywgdHJ5aW5nIGVhY2ggcGFja2FnZSBpbiBvcmRlci4KKyAgICAgKiBAcGFyYW0gcGFja2FnZXMgYSBsaXN0IG9mIG9uZSBvciBtb3JlIHBhY2thZ2UgbmFtZXMKKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUKKyAgICAgKiB0byByZXRyaWV2ZSwgZS5nLiAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IFJlc291cmNlQnVuZGxlIHdpdGggdGhlIGdpdmVuIGJhc2UgbmFtZSBmb3IKKyAgICAgKiB0aGUgZ2l2ZW4gbG9jYWxlIGZvdW5kIGluIGVhY2ggb2YgdGhlIHBhY2thZ2VzLCBvciBudWxsIG9uCisgICAgICogZmFpbHVyZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nW10gcGFja2FnZXMsIFN0cmluZyBidW5kbGVOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByPW51bGw7CisgICAgICAgIGZvciAoaW50IGk9MDsgcj09bnVsbCAmJiBpPHBhY2thZ2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICByID0gZ2V0UmVzb3VyY2VCdW5kbGUocGFja2FnZXNbaV0sIGJ1bmRsZU5hbWUsIGxvY2FsZU5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHJlc291cmNlIGJ1bmRsZSBmcm9tIHRoZSByZXNvdXJjZSBidW5kbGUgcGF0aC4gIFVubGlrZSBnZXRSZXNvdXJjZUJ1bmRsZSwgdGhpcworICAgICAqIHJldHVybnMgYW4gJ3VucGFyZW50ZWQnIGJ1bmRsZSB0aGF0IGV4YWN0bHkgbWF0Y2hlcyB0aGUgYnVuZGxlIG5hbWUgYW5kIGxvY2FsZSBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgbG9hZFJlc291cmNlQnVuZGxlKFN0cmluZyBidW5kbGVOYW1lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsb2FkUmVzb3VyY2VCdW5kbGUoYnVuZGxlTmFtZSwgbG9jYWxlLmdldEJhc2VOYW1lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHJlc291cmNlIGJ1bmRsZSBmcm9tIHRoZSByZXNvdXJjZSBidW5kbGUgcGF0aC4gIFVubGlrZSBnZXRSZXNvdXJjZUJ1bmRsZSwgdGhpcworICAgICAqIHJldHVybnMgYW4gJ3VucGFyZW50ZWQnIGJ1bmRsZSB0aGF0IGV4YWN0bHkgbWF0Y2hlcyB0aGUgYnVuZGxlIG5hbWUgYW5kIGxvY2FsZSBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgbG9hZFJlc291cmNlQnVuZGxlKFN0cmluZyBidW5kbGVOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBpZiAobG9jYWxlTmFtZSAhPSBudWxsICYmIGxvY2FsZU5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidW5kbGVOYW1lID0gYnVuZGxlTmFtZSArICJfIiArIGxvY2FsZU5hbWU7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIG5hbWUgPSBJQ1VfUEFDS0FHRSArICIuIiArIGJ1bmRsZU5hbWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAobmFtZS5pbmRleE9mKCJfemhfIikgPT0gLTEpIHsgLy8gRExGIHRlbXBvcmFyeSBoYWNrCisgICAgICAgICAgICAgICAgQ2xhc3MgcmJjbGFzcyA9IENsYXNzLmZvck5hbWUobmFtZSk7CisgICAgICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSAoUmVzb3VyY2VCdW5kbGUpcmJjbGFzcy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIHJldHVybiByYjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obmFtZSArICIgbm90IGZvdW5kIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZ25vcmUsIGtlZXAgbG9va2luZworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJ1bmRsZU5hbWUgKyAiIG5vdCBmb3VuZC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8vID09PT09PT09PT0gcHJpdmF0ZXMgPT09PT09PT09PQorCisgICAgLy8gRmxhZyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIGRlYnVnZ2luZyBjb2RlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoImxvY2FsZWRhdGEiKTsKKworICAgIC8vIENhY2hlIGZvciBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBHRVRfQVZBSUxBQkxFX0NBQ0hFOworCisgICAgLy8gQ2FjaGUgZm9yIFJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRpb24KKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIEJVTkRMRV9DQUNIRTsKKworICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIGxvYWRGcm9tQ2FjaGUoU3RyaW5nIGtleSkgeworICAgICAgICBpZiAoQlVORExFX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIE1hcCBtID0gKE1hcClCVU5ETEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChSZXNvdXJjZUJ1bmRsZSltLmdldChrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkVG9DYWNoZShTdHJpbmcga2V5LCBSZXNvdXJjZUJ1bmRsZSBiKSB7CisgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgaWYgKEJVTkRMRV9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBtID0gKE1hcClCVU5ETEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBCVU5ETEVfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShtKTsKKyAgICAgICAgfQorICAgICAgICBtLnB1dChrZXksIGIpOworICAgIH0KKworICAgIC8vIHJlY3Vyc2l2ZWx5IGJ1aWxkIGJ1bmRsZQorICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIFJlc291cmNlQnVuZGxlIGIgPSBsb2FkRnJvbUNhY2hlKG5hbWUpOworICAgICAgICBpZiAoYiA9PSBudWxsKSB7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBwYXJlbnQgPSBudWxsOworICAgICAgICAgICAgaW50IGkgPSBuYW1lLmxhc3RJbmRleE9mKCdfJyk7CisKKyAgICAgICAgICAgIC8vIFRPRE86IGNvbnZlcnQgdGhpcyB0byB1c2UgVUxvY2FsZQorICAgICAgICAgICAgZmluYWwgTG9jYWxlIHJvb3RMb2NhbGUgPSBuZXcgTG9jYWxlKCIiLCAiIiwgIiIpOworIAorICAgICAgICAgICAgaWYgKGkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBwYXJlbnQgPSBpbnN0YW50aWF0ZShuYW1lLnN1YnN0cmluZygwLCBpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSByb290TG9jYWxlOworICAgICAgICAgICAgICAgIGkgPSBuYW1lLmluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKG5hbWUuc3Vic3RyaW5nKGkrMSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGkgPSBuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAJCUNsYXNzTG9hZGVyIGNsID0gSUNVTG9jYWxlRGF0YS5jbGFzcy5nZXRDbGFzc0xvYWRlcigpOworICAgICAgICAJCWlmIChjbCA9PSBudWxsKSB7CisgICAgICAgIAkJICAgIC8vIHdlJ3JlIG9uIHRoZSBib290c3RyYXAKKyAgICAgICAgCQkgICAgY2wgPSBDbGFzc0xvYWRlci5nZXRTeXN0ZW1DbGFzc0xvYWRlcigpOworICAgICAgICAJCX0KKyAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSBjbC5sb2FkQ2xhc3MobmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5jbGFzcy5pc0Fzc2lnbmFibGVGcm9tKGNscykpIHsKKyAgICAgICAgICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGJ4ID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSljbHMubmV3SW5zdGFuY2UoKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ4LnNldFBhcmVudFgocGFyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBieC5pY3VMb2NhbGUgPSBsb2NhbGU7CisgICAgICAgICAgICAgICAgICAgIGIgPSBieDsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJpY3VsaXN0cmVzb3VyY2VidW5kbGU6ICIgKyBuYW1lICsgIiBpcyAiICsgYik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYiA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZShuYW1lLnN1YnN0cmluZygwLCBpKSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJyZXNvdXJjZWJ1bmRsZTogIiArIG5hbWUgKyAiIGlzICIgKyBiKTsKKyAgICAgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgICAgIGFkZFRvQ2FjaGUobmFtZSwgYik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisKKyAgICAgICAgICAgICAgICBpbnQgaiA9IG5hbWUuaW5kZXhPZignXycpOworICAgICAgICAgICAgICAgIGludCBrID0gbmFtZS5sYXN0SW5kZXhPZignXycpOworICAgICAgICAgICAgICAgIC8vIGlmIGEgYm9ndXMgbG9jYWxlIGlzIHBhc3NlZCB0aGVuIHRoZSBwYXJlbnQgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgLy8gdGhlIGRlZmF1bHQgbG9jYWxlIG5vdCB0aGUgcm9vdCBsb2NhbGUhCisgICAgICAgICAgICAgICAgaWYoaz09aiAmJiBqIT0tMSl7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbG9jTmFtZSA9IG5hbWUuc3Vic3RyaW5nKGorMSxuYW1lLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlZmF1bHROYW1lID0gVUxvY2FsZS5nZXREZWZhdWx0KCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKCFsb2NOYW1lLmVxdWFscyhyb290TG9jYWxlLnRvU3RyaW5nKCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lLmluZGV4T2YobG9jTmFtZSk9PS0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBidW5kbGUgPSAgbmFtZS5zdWJzdHJpbmcoMCxqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IGluc3RhbnRpYXRlKGJ1bmRsZSsiXyIrZGVmYXVsdE5hbWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGIgPSBwYXJlbnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZhaWx1cmUiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy9pZihiPT1udWxsKXsKKyAgICAgICAgLy8gICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgZGF0YSAiK25hbWUsIiIsIiIpOworICAgICAgICAvL30KKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RpbGwgbmVlZCBwZXJtaXNzaW9ucyB0byB1c2Ugb3VyIG93biBjbGFzcyBsb2FkZXIsIGlzIHRoZXJlIG5vIHdheQorICAgICAqIHRvIGxvYWQgY2xhc3MgcmVzb3VyY2VzIGZyb20gbmV3IGxvY2F0aW9ucyB0aGF0IGFyZW4ndCBhbHJlYWR5IG9uIHRoZQorICAgICAqIGNsYXNzIHBhdGg/CisgICAgICovCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgc3RhdGljIFJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRlKFN0cmluZyBuYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBpZiAobG9jYWxlTmFtZS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBuYW1lID0gbmFtZSArICJfIiArIGxvY2FsZU5hbWU7CisgICAgICAgIH0KKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYiA9ICBpbnN0YW50aWF0ZShuYW1lKTsKKyAgICAgICAgaWYoYj09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCBkYXRhICIrbmFtZSwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU2V0IGNyZWF0ZUxvY2FsZU5hbWVTZXQoU3RyaW5nIGJ1bmRsZU5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGluZGV4ID0gZ2V0UmVzb3VyY2VCdW5kbGUoYnVuZGxlTmFtZSwgImluZGV4Iik7CisgICAgICAgICAgICBPYmplY3RbXVtdIGxvY2FsZVN0cmluZ3MgPSAoT2JqZWN0W11bXSkgaW5kZXguZ2V0T2JqZWN0KCJJbnN0YWxsZWRMb2NhbGVzIik7CisgICAgICAgICAgICBTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IG5ldyBTdHJpbmdbbG9jYWxlU3RyaW5ncy5sZW5ndGhdOworCisgICAgICAgICAgICAvLyBiYXJmIGdhZyBjaG9rZSBzcGl0IGhhY2suLi4KKyAgICAgICAgICAgIC8vIHNpbmNlIGphdmEncyBMb2NhbGUgJ2ZpeGVzJyB0aGUgbG9jYWxlIHN0cmluZyBmb3Igc29tZSBsb2NhbGVzLAorICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBmaXggb3VyIG5hbWVzIHRvIG1hdGNoLCBvdGhlcndpc2UgdGhlIExvY2FsZVtdIGxpc3QKKyAgICAgICAgICAgIC8vIHdvbid0IG1hdGNoIHRoZSBsb2NhbGUgbmFtZSBzZXQuICBXaGF0IHdlcmUgdGhleSB0aGlua2luZz8hPworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVOYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxvY2FsZU5hbWVzW2ldID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZSgoU3RyaW5nKWxvY2FsZVN0cmluZ3NbaV1bMF0pLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgIHNldC5hZGRBbGwoQXJyYXlzLmFzTGlzdChsb2NhbGVOYW1lcykpOworICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzZXQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImNvdWxkbid0IGZpbmQgaW5kZXggZm9yIGJ1bmRsZU5hbWU6ICIgKyBidW5kbGVOYW1lKTsKKyAgICAgICAgICAgIFRocmVhZC5kdW1wU3RhY2soKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuRU1QVFlfU0VUOworICAgIH0KKworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlW10gY3JlYXRlTG9jYWxlTGlzdChTdHJpbmcgYnVuZGxlTmFtZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgaW5kZXggPSBnZXRSZXNvdXJjZUJ1bmRsZShidW5kbGVOYW1lLCAiaW5kZXgiKTsKKyAgICAgICAgICAgIE9iamVjdFtdW10gbG9jYWxlU3RyaW5ncyA9IChPYmplY3RbXVtdKSBpbmRleC5nZXRPYmplY3QoIkluc3RhbGxlZExvY2FsZXMiKTsKKyAgICAgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBuZXcgTG9jYWxlW2xvY2FsZVN0cmluZ3MubGVuZ3RoXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlU3RyaW5ncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxvY2FsZXNbaV0gPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKChTdHJpbmcpbG9jYWxlU3RyaW5nc1tpXVswXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJjb3VsZG4ndCBmaW5kIGluZGV4IGZvciBidW5kbGVOYW1lOiAiICsgYnVuZGxlTmFtZSk7CisgICAgICAgICAgICBUaHJlYWQuZHVtcFN0YWNrKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGVbMF07CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM2NzQ5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZVNlcnZpY2UuamF2YQpAQCAtMCwwICsxLDYxMSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgSUNVTG9jYWxlU2VydmljZSBleHRlbmRzIElDVVNlcnZpY2UgeworICAgIHByaXZhdGUgVUxvY2FsZSBmYWxsYmFja0xvY2FsZTsKKyAgICBwcml2YXRlIFN0cmluZyBmYWxsYmFja0xvY2FsZU5hbWU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gSUNVTG9jYWxlU2VydmljZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVTG9jYWxlU2VydmljZSgpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gSUNVTG9jYWxlU2VydmljZSB3aXRoIGEgbmFtZSAodXNlZnVsIGZvciBkZWJ1Z2dpbmcpLgorICAgICAqLworICAgIHB1YmxpYyBJQ1VMb2NhbGVTZXJ2aWNlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHN1cGVyKG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIGNhbGxzCisgICAgICogZ2V0KFVMb2NhbGUsIGludCwgVUxvY2FsZVtdKSB3aXRoIEtJTkRfQU5ZIGZvciBraW5kIGFuZCBudWxsIGZvcgorICAgICAqIGFjdHVhbFJldHVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldChVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0KGxvY2FsZSwgTG9jYWxlS2V5LktJTkRfQU5ZLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyBjYWxscworICAgICAqIGdldChVTG9jYWxlLCBpbnQsIFVMb2NhbGVbXSkgd2l0aCBhIG51bGwgYWN0dWFsUmV0dXJuLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCkgeworICAgICAgICByZXR1cm4gZ2V0KGxvY2FsZSwga2luZCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgY2FsbHMKKyAgICAgKiBnZXQoVUxvY2FsZSwgaW50LCBVTG9jYWxlW10pIHdpdGggS0lORF9BTlkgZm9yIGtpbmQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoVUxvY2FsZSBsb2NhbGUsIFVMb2NhbGVbXSBhY3R1YWxSZXR1cm4pIHsKKyAgICAgICAgcmV0dXJuIGdldChsb2NhbGUsIExvY2FsZUtleS5LSU5EX0FOWSwgYWN0dWFsUmV0dXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyB1c2VzCisgICAgICogY3JlYXRlS2V5KFVMb2NhbGUudG9TdHJpbmcoKSwga2luZCkgdG8gY3JlYXRlIGEga2V5LCBjYWxscyBnZXRLZXksIGFuZCB0aGVuCisgICAgICogaWYgYWN0dWFsUmV0dXJuIGlzIG5vdCBudWxsLCByZXR1cm5zIHRoZSBhY3R1YWxSZXN1bHQgZnJvbQorICAgICAqIGdldEtleSAoc3RyaXBwaW5nIGFueSBwcmVmaXgpIGludG8gYSBVTG9jYWxlLiAgCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoVUxvY2FsZSBsb2NhbGUsIGludCBraW5kLCBVTG9jYWxlW10gYWN0dWFsUmV0dXJuKSB7CisgICAgICAgIEtleSBrZXkgPSBjcmVhdGVLZXkobG9jYWxlLCBraW5kKTsKKyAgICAgICAgaWYgKGFjdHVhbFJldHVybiA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0S2V5KGtleSk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmdbXSB0ZW1wID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgT2JqZWN0IHJlc3VsdCA9IGdldEtleShrZXksIHRlbXApOworICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBuID0gdGVtcFswXS5pbmRleE9mKCIvIik7CisgICAgICAgICAgICBpZiAobiA+PSAwKSB7CisgICAgICAgICAgICAgICAgdGVtcFswXSA9IHRlbXBbMF0uc3Vic3RyaW5nKG4rMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhY3R1YWxSZXR1cm5bMF0gPSBuZXcgVUxvY2FsZSh0ZW1wWzBdKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIGNhbGxzCisgICAgICogcmVnaXN0ZXJPYmplY3QoT2JqZWN0LCBVTG9jYWxlLCBpbnQga2luZCwgYm9vbGVhbiB2aXNpYmxlKQorICAgICAqIHBhc3NpbmcgS0lORF9BTlkgZm9yIHRoZSBraW5kLCBhbmQgdHJ1ZSBmb3IgdGhlIHZpc2liaWxpdHkuCisgICAgICovCisgICAgcHVibGljIEZhY3RvcnkgcmVnaXN0ZXJPYmplY3QoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyT2JqZWN0KG9iaiwgbG9jYWxlLCBMb2NhbGVLZXkuS0lORF9BTlksIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIGNhbGxzCisgICAgICogcmVnaXN0ZXJPYmplY3QoT2JqZWN0LCBVTG9jYWxlLCBpbnQga2luZCwgYm9vbGVhbiB2aXNpYmxlKQorICAgICAqIHBhc3NpbmcgS0lORF9BTlkgZm9yIHRoZSBraW5kLgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFVMb2NhbGUgbG9jYWxlLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyT2JqZWN0KG9iaiwgbG9jYWxlLCBMb2NhbGVLZXkuS0lORF9BTlksIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIGNhbGxzCisgICAgICogcmVnaXN0ZXJPYmplY3QoT2JqZWN0LCBVTG9jYWxlLCBpbnQga2luZCwgYm9vbGVhbiB2aXNpYmxlKQorICAgICAqIHBhc3NpbmcgdHJ1ZSBmb3IgdGhlIHZpc2liaWxpdHkuCisgICAgICovCisgICAgcHVibGljIEZhY3RvcnkgcmVnaXN0ZXJPYmplY3QoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgICAgIHJldHVybiByZWdpc3Rlck9iamVjdChvYmosIGxvY2FsZSwga2luZCwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgIGluc3RhbnRpYXRlcworICAgICAqIGEgU2ltcGxlTG9jYWxlS2V5RmFjdG9yeSwgYW5kIHJlZ2lzdGVycyB0aGUgZmFjdG9yeS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRmFjdG9yeSByZWdpc3Rlck9iamVjdChPYmplY3Qgb2JqLCBVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBGYWN0b3J5IGZhY3RvcnkgPSBuZXcgU2ltcGxlTG9jYWxlS2V5RmFjdG9yeShvYmosIGxvY2FsZSwga2luZCwgdmlzaWJsZSk7CisgICAgICAgIHJldHVybiByZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIHJldHVybnMgdGhlIHN0YW5kYXJkCisgICAgICogTG9jYWxlIGxpc3QsIGJ1aWx0IGZyb20gdGhlIFNldCBvZiB2aXNpYmxlIGlkcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgLy8gVE9ETyBtYWtlIHRoaXMgd3JhcCBnZXRBdmFpbGFibGVVTG9jYWxlcyBsYXRlcgorICAgICAgICBTZXQgdmlzSURzID0gZ2V0VmlzaWJsZUlEcygpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gdmlzSURzLml0ZXJhdG9yKCk7CisgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBuZXcgTG9jYWxlW3Zpc0lEcy5zaXplKCldOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoKFN0cmluZylpdGVyLm5leHQoKSk7CisgICAgICAgICAgICBsb2NhbGVzW24rK10gPSBsb2M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIHJldHVybnMgdGhlIHN0YW5kYXJkCisgICAgICogVUxvY2FsZSBsaXN0LCBidWlsdCBmcm9tIHRoZSBTZXQgb2YgdmlzaWJsZSBpZHMuCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgU2V0IHZpc0lEcyA9IGdldFZpc2libGVJRHMoKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHZpc0lEcy5pdGVyYXRvcigpOworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IG5ldyBVTG9jYWxlW3Zpc0lEcy5zaXplKCldOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgbG9jYWxlc1tuKytdID0gbmV3IFVMb2NhbGUoKFN0cmluZylpdGVyLm5leHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBIHN1YmNsYXNzIG9mIEtleSB0aGF0IGltcGxlbWVudHMgYSBsb2NhbGUgZmFsbGJhY2sgbWVjaGFuaXNtLgorICAgICAqIFRoZSBmaXJzdCBsb2NhbGUgdG8gc2VhcmNoIGZvciBpcyB0aGUgbG9jYWxlIHByb3ZpZGVkIGJ5IHRoZQorICAgICAqIGNsaWVudCwgYW5kIHRoZSBmYWxsYmFjayBsb2NhbGUgdG8gc2VhcmNoIGZvciBpcyB0aGUgY3VycmVudAorICAgICAqIGRlZmF1bHQgbG9jYWxlLiAgSWYgYSBwcmVmaXggaXMgcHJlc2VudCwgdGhlIGN1cnJlbnREZXNjcmlwdG9yCisgICAgICogaW5jbHVkZXMgaXQgYmVmb3JlIHRoZSBsb2NhbGUgcHJvcGVyLCBzZXBhcmF0ZWQgYnkgIi8iLiAgVGhpcworICAgICAqIGlzIHRoZSBkZWZhdWx0IGtleSBpbnN0YW50aWF0ZWQgYnkgSUNVTG9jYWxlU2VydmljZS48L3A+CisgICAgICoKKyAgICAgKiA8cD5DYW5vbmljYWxpemF0aW9uIGFkanVzdHMgdGhlIGxvY2FsZSBzdHJpbmcgc28gdGhhdCB0aGUKKyAgICAgKiBzZWN0aW9uIGJlZm9yZSB0aGUgZmlyc3QgdW5kZXJzdG9yZSBpcyBpbiBsb3dlciBjYXNlLCBhbmQgdGhlIHJlc3QKKyAgICAgKiBpcyBpbiB1cHBlciBjYXNlLCB3aXRoIG5vIHRyYWlsaW5nIHVuZGVyc2NvcmVzLjwvcD4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMb2NhbGVLZXkgZXh0ZW5kcyBJQ1VTZXJ2aWNlLktleSB7CisgICAgICAgIHByaXZhdGUgaW50IGtpbmQ7CisgICAgICAgIHByaXZhdGUgaW50IHZhcnN0YXJ0OworICAgICAgICBwcml2YXRlIFN0cmluZyBwcmltYXJ5SUQ7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGZhbGxiYWNrSUQ7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGN1cnJlbnRJRDsKKworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX0FOWSA9IC0xOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgYSBMb2NhbGVLZXkgd2l0aCBjYW5vbmljYWwgcHJpbWFyeSBhbmQgZmFsbGJhY2sgSURzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBMb2NhbGVLZXkgY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKFN0cmluZyBwcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxGYWxsYmFja0lEKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKHByaW1hcnlJRCwgY2Fub25pY2FsRmFsbGJhY2tJRCwgS0lORF9BTlkpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBhIExvY2FsZUtleSB3aXRoIGNhbm9uaWNhbCBwcmltYXJ5IGFuZCBmYWxsYmFjayBJRHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIExvY2FsZUtleSBjcmVhdGVXaXRoQ2Fub25pY2FsRmFsbGJhY2soU3RyaW5nIHByaW1hcnlJRCwgU3RyaW5nIGNhbm9uaWNhbEZhbGxiYWNrSUQsIGludCBraW5kKSB7CisgICAgICAgICAgICBpZiAocHJpbWFyeUlEID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcmltYXJ5SUQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHByaW1hcnlJRCA9ICJyb290IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBjYW5vbmljYWxQcmltYXJ5SUQgPSBVTG9jYWxlLmdldE5hbWUocHJpbWFyeUlEKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9jYWxlS2V5KHByaW1hcnlJRCwgY2Fub25pY2FsUHJpbWFyeUlELCBjYW5vbmljYWxGYWxsYmFja0lELCBraW5kKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgYSBMb2NhbGVLZXkgd2l0aCBjYW5vbmljYWwgcHJpbWFyeSBhbmQgZmFsbGJhY2sgSURzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBMb2NhbGVLZXkgY3JlYXRlV2l0aENhbm9uaWNhbChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNhbm9uaWNhbEZhbGxiYWNrSUQsIGludCBraW5kKSB7CisgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBjYW5vbmljYWxQcmltYXJ5SUQgPSBsb2NhbGUuZ2V0TmFtZSgpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGVLZXkoY2Fub25pY2FsUHJpbWFyeUlELCBjYW5vbmljYWxQcmltYXJ5SUQsIGNhbm9uaWNhbEZhbGxiYWNrSUQsIGtpbmQpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFByaW1hcnlJRCBpcyB0aGUgdXNlcidzIHJlcXVlc3RlZCBsb2NhbGUgc3RyaW5nLAorICAgICAgICAgKiBjYW5vbmljYWxQcmltYXJ5SUQgaXMgdGhpcyBzdHJpbmcgaW4gY2Fub25pY2FsIGZvcm0sCisgICAgICAgICAqIGZhbGxiYWNrSUQgaXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUncyBzdHJpbmcgaW4KKyAgICAgICAgICogY2Fub25pY2FsIGZvcm0uCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgTG9jYWxlS2V5KFN0cmluZyBwcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxQcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxGYWxsYmFja0lELCBpbnQga2luZCkgeworICAgICAgICAgICAgc3VwZXIocHJpbWFyeUlEKTsKKworICAgICAgICAgICAgdGhpcy5raW5kID0ga2luZDsKKyAgICAgICAgICAgIGlmIChjYW5vbmljYWxQcmltYXJ5SUQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUlEID0gIiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUlEID0gY2Fub25pY2FsUHJpbWFyeUlEOworICAgICAgICAgICAgICAgIHRoaXMudmFyc3RhcnQgPSB0aGlzLnByaW1hcnlJRC5pbmRleE9mKCdAJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGhpcy5wcmltYXJ5SUQgPT0gIiIpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrSUQgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY2Fub25pY2FsRmFsbGJhY2tJRCA9PSBudWxsIHx8IHRoaXMucHJpbWFyeUlELmVxdWFscyhjYW5vbmljYWxGYWxsYmFja0lEKSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrSUQgPSAiIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrSUQgPSBjYW5vbmljYWxGYWxsYmFja0lEOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5jdXJyZW50SUQgPSB2YXJzdGFydCA9PSAtMSA/IHRoaXMucHJpbWFyeUlEIDogdGhpcy5wcmltYXJ5SUQuc3Vic3RyaW5nKDAsIHZhcnN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIHByZWZpeCBhc3NvY2lhdGVkIHdpdGggdGhlIGtpbmQsIG9yIG51bGwgaWYgdGhlIGtpbmQgaXMgS0lORF9BTlkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHByZWZpeCgpIHsKKyAgICAgICAgICAgIHJldHVybiBraW5kID09IEtJTkRfQU5ZID8gbnVsbCA6IEludGVnZXIudG9TdHJpbmcoa2luZCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIGtpbmQgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBrZXkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGtpbmQoKSB7CisgICAgICAgICAgICByZXR1cm4ga2luZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIChjYW5vbmljYWwpIG9yaWdpbmFsIElELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjYW5vbmljYWxJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBwcmltYXJ5SUQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSAoY2Fub25pY2FsKSBjdXJyZW50IElELCBvciBudWxsIGlmIG5vIGN1cnJlbnQgaWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGN1cnJlbnRJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50SUQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSAoY2Fub25pY2FsKSBjdXJyZW50IGRlc2NyaXB0b3IsIG9yIG51bGwgaWYgbm8gY3VycmVudCBpZC4KKyAgICAgICAgICogSW5jbHVkZXMgdGhlIGtleXdvcmRzLCB3aGVyZWFzIHRoZSBJRCBkb2VzIG5vdCBpbmNsdWRlIGtleXdvcmRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjdXJyZW50RGVzY3JpcHRvcigpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjdXJyZW50SUQoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICIvIiArIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAodmFyc3RhcnQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHByaW1hcnlJRC5zdWJzdHJpbmcodmFyc3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoa2luZCAhPSBLSU5EX0FOWSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmVmaXgoKSArIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byByZXR1cm4gdGhlIGxvY2FsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSAoY2Fub25pY2FsKSBvcmlnaW5hbCBJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGNhbm9uaWNhbExvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShwcmltYXJ5SUQpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byByZXR1cm4gdGhlIHVsb2NhbGUgY29ycmVzcG9uZGluZyB0byB0aGUgKGNhbm9uaWNhbCkgY3VycmVudElELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVMb2NhbGUgY3VycmVudExvY2FsZSgpIHsKKyAgICAgICAgICAgIGlmICh2YXJzdGFydCA9PSAtMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShjdXJyZW50SUQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoY3VycmVudElEICsgcHJpbWFyeUlELnN1YnN0cmluZyh2YXJzdGFydCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIHRoZSBrZXkgaGFzIGEgZmFsbGJhY2ssIG1vZGlmeSB0aGUga2V5IGFuZCByZXR1cm4gdHJ1ZSwKKyAgICAgICAgICogb3RoZXJ3aXNlIHJldHVybiBmYWxzZS48L3A+CisgICAgICAgICAqCisgICAgICAgICAqIDxwPkZpcnN0IGZhbGxzIGJhY2sgdGhyb3VnaCB0aGUgcHJpbWFyeSBJRCwgdGhlbiB0aHJvdWdoCisgICAgICAgICAqIHRoZSBmYWxsYmFja0lELiAgVGhlIGZpbmFsIGZhbGxiYWNrIGlzICJyb290IgorICAgICAgICAgKiB1bmxlc3MgdGhlIHByaW1hcnkgaWQgd2FzICJyb290IiwgaW4gd2hpY2ggY2FzZQorICAgICAgICAgKiB0aGVyZSBpcyBubyBmYWxsYmFjay4gIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZmFsbGJhY2soKSB7CisgICAgICAgICAgICBpbnQgeCA9IGN1cnJlbnRJRC5sYXN0SW5kZXhPZignXycpOworICAgICAgICAgICAgaWYgKHggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoLS14ID49IDAgJiYgY3VycmVudElELmNoYXJBdCh4KSA9PSAnXycpIHsgLy8gaGFuZGxlIHpoX19QSU5ZSU4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3VycmVudElEID0gY3VycmVudElELnN1YnN0cmluZygwLCB4KzEpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZhbGxiYWNrSUQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja0lELmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudElEID0gInJvb3QiOworICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0lEID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjdXJyZW50SUQgPSBmYWxsYmFja0lEOworICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0lEID0gIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudElEID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiBhIGtleSBjcmVhdGVkIGZyb20gaWQgd291bGQgZXZlbnR1YWxseSBmYWxsYmFjayB0byBtYXRjaCB0aGUgCisgICAgICAgICAqIGNhbm9uaWNhbCBJRCBvZiB0aGlzIGtleSwgcmV0dXJuIHRydWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0ZhbGxiYWNrT2YoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoY2Fub25pY2FsSUQoKSwgaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzdWJjbGFzcyBvZiBGYWN0b3J5IHRoYXQgdXNlcyBMb2NhbGVLZXlzLiAgSWYgJ3Zpc2libGUnIHRoZQorICAgICAqIGZhY3RvcnkgcmVwb3J0cyBpdHMgSURzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTG9jYWxlS2V5RmFjdG9yeSBpbXBsZW1lbnRzIEZhY3RvcnkgeworICAgICAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIG5hbWU7CisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIHZpc2libGU7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFZJU0lCTEUgPSB0cnVlOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gSU5WSVNJQkxFID0gZmFsc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yIHVzZWQgYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBMb2NhbGVLZXlGYWN0b3J5KGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdXNlZCBieSBzdWJjbGFzc2VzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIExvY2FsZUtleUZhY3RvcnkoYm9vbGVhbiB2aXNpYmxlLCBTdHJpbmcgbmFtZSkgeworICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW1wbGVtZW50IHN1cGVyY2xhc3MgYWJzdHJhY3QgbWV0aG9kLiAgVGhpcyBjaGVja3MgdGhlIGN1cnJlbnRJRCBvZgorICAgICAgICAgKiB0aGUga2V5IGFnYWluc3QgdGhlIHN1cHBvcnRlZCBJRHMsIGFuZCBwYXNzZXMgdGhlIGNhbm9uaWNhbExvY2FsZSBhbmQKKyAgICAgICAgICoga2luZCBvZmYgdG8gaGFuZGxlQ3JlYXRlICh3aGljaCBzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgaWYgKGhhbmRsZXNLZXkoa2V5KSkgeworICAgICAgICAgICAgICAgIExvY2FsZUtleSBsa2V5ID0gKExvY2FsZUtleSlrZXk7CisgICAgICAgICAgICAgICAgaW50IGtpbmQgPSBsa2V5LmtpbmQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBsa2V5LmN1cnJlbnRMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlQ3JlYXRlKHVsb2MsIGtpbmQsIHNlcnZpY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImZhY3Rvcnk6ICIgKyB0aGlzICsgIiBkaWQgbm90IHN1cHBvcnQgaWQ6ICIgKyBrZXkuY3VycmVudElEKCkpOworICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigic3VwcG9ydGVkIGlkczogIiArIGdldFN1cHBvcnRlZElEcygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaGFuZGxlc0tleShLZXkga2V5KSB7CisgICAgICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSBrZXkuY3VycmVudElEKCk7CisgICAgICAgICAgICAgICAgU2V0IHN1cHBvcnRlZCA9IGdldFN1cHBvcnRlZElEcygpOworICAgICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQuY29udGFpbnMoaWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE92ZXJyaWRlIG9mIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICBTZXQgY2FjaGUgPSBnZXRTdXBwb3J0ZWRJRHMoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjYWNoZS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQucHV0KGlkLCB0aGlzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVtb3ZlKGlkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgbG9jYWxpemVkIG5hbWUgZm9yIHRoZSBsb2NhbGUgcmVwcmVzZW50ZWQgYnkgaWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIC8vIGFzc3VtZSBpZiB0aGUgdXNlciBjYWxsZWQgdGhpcyBvbiB1cywgd2UgbXVzdCBoYXZlIGhhbmRsZWQgc29tZSBmYWxsYmFjayBvZiB0aGlzIGlkCisgICAgICAgICAgICAvLyAgICAgICAgICBpZiAoaXNTdXBwb3J0ZWRJRChpZCkpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUoaWQpOworICAgICAgICAgICAgcmV0dXJuIGxvYy5nZXREaXNwbGF5TmFtZShsb2NhbGUpOworICAgICAgICAgICAgLy8gICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAvKioKKyAgICAgICAgICogVXRpbGl0eSBtZXRob2QgdXNlZCBieSBjcmVhdGUoS2V5LCBJQ1VTZXJ2aWNlKS4gIFN1YmNsYXNzZXMgY2FuCisgICAgICAgICAqIGltcGxlbWVudCB0aGlzIGluc3RlYWQgb2YgY3JlYXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGlkIGlzIG9uZSB0aGUgZmFjdG9yeSBzdXBwb3J0cyAodmlzaWJsZSBvciAKKyAgICAgICAgICogb3RoZXJ3aXNlKS4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzU3VwcG9ydGVkSUQoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3VwcG9ydGVkSURzKCkuY29udGFpbnMoaWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgaWRzIHRoYXQgdGhpcyBmYWN0b3J5IHN1cHBvcnRzICh2aXNpYmxlIG9yIAorICAgICAgICAgKiBvdGhlcndpc2UpLiAgVGhpcyBjYW4gYmUgY2FsbGVkIG9mdGVuIGFuZCBtaWdodCBuZWVkIHRvIGJlCisgICAgICAgICAqIGNhY2hlZCBpZiBpdCBpcyBleHBlbnNpdmUgdG8gY3JlYXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFNldCBnZXRTdXBwb3J0ZWRJRHMoKSB7CisgICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuRU1QVFlfU0VUOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvciBkZWJ1Z2dpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCBuYW1lOiAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCB2aXNpYmxlOiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmlzaWJsZSk7CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIExvY2FsZUtleUZhY3RvcnkgdGhhdCBqdXN0IHJldHVybnMgYSBzaW5nbGUgb2JqZWN0IGZvciBhIGtpbmQvbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2ltcGxlTG9jYWxlS2V5RmFjdG9yeSBleHRlbmRzIExvY2FsZUtleUZhY3RvcnkgeworICAgICAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBvYmo7CisgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGlkOworICAgICAgICBwcml2YXRlIGZpbmFsIGludCBraW5kOworCisgICAgICAgIC8vIFRPRE86IHJlbW92ZSB3aGVuIHdlIG5vIGxvbmdlciBuZWVkIHRoaXMKKyAgICAgICAgcHVibGljIFNpbXBsZUxvY2FsZUtleUZhY3RvcnkoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgICAgIHRoaXMob2JqLCBsb2NhbGUsIGtpbmQsIHZpc2libGUsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFNpbXBsZUxvY2FsZUtleUZhY3RvcnkoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUsIFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICBzdXBlcih2aXNpYmxlLCBuYW1lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGhpcy5vYmogPSBvYmo7CisgICAgICAgICAgICB0aGlzLmlkID0gbG9jYWxlLmdldEJhc2VOYW1lKCk7CisgICAgICAgICAgICB0aGlzLmtpbmQgPSBraW5kOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHNlcnZpY2Ugb2JqZWN0IGlmIGtpbmQvbG9jYWxlIG1hdGNoLiAgU2VydmljZSBpcyBub3QgdXNlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgTG9jYWxlS2V5IGxrZXkgPSAoTG9jYWxlS2V5KWtleTsKKyAgICAgICAgICAgIGlmIChraW5kID09IExvY2FsZUtleS5LSU5EX0FOWSB8fCBraW5kID09IGxrZXkua2luZCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleUlEID0gbGtleS5jdXJyZW50SUQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaWQuZXF1YWxzKGtleUlEKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNTdXBwb3J0ZWRJRChTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlkLmVxdWFscyhpZCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpIHsKKyAgICAgICAgICAgIGlmICh2aXNpYmxlKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChpZCwgdGhpcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5yZW1vdmUoaWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCBpZDogIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKGlkKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwga2luZDogIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKGtpbmQpOworICAgICAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBMb2NhbGVLZXlGYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHNlcnZpY2UgYmFzZWQgb24gdGhlIElDVSBsb2NhbGUgZGF0YS4KKyAgICAgKiBUaGlzIGlzIGEgYmFzZSBjbGFzcyBmb3IgbW9zdCBJQ1UgZmFjdG9yaWVzLiAgU3ViY2xhc3NlcyBpbnN0YW50aWF0ZSBpdAorICAgICAqIHdpdGggYSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgYnVuZGxlIG5hbWUsIHdoaWNoIGRldGVybWluZXMgdGhlIHN1cHBvcnRlZAorICAgICAqIElEcy4gIFN1YmNsYXNzZXMgdGhlbiBvdmVycmlkZSBoYW5kbGVDcmVhdGUgdG8gY3JlYXRlIHRoZSBhY3R1YWwgc2VydmljZQorICAgICAqIG9iamVjdC4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBidW5kbGVOYW1lOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBjb25zdHJ1Y3RvciB0aGF0IHVzZXMgdGhlIG1haW4gSUNVIGJ1bmRsZSBuYW1lLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHRoaXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQSBzZXJ2aWNlIGZhY3RvcnkgYmFzZWQgb24gSUNVIHJlc291cmNlIGRhdGEgaW4gcmVzb3VyY2VzCisgICAgICAgICAqIHdpdGggdGhlIGdpdmVuIG5hbWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5KFN0cmluZyBidW5kbGVOYW1lKSB7CisgICAgICAgICAgICBzdXBlcih0cnVlKTsKKworICAgICAgICAgICAgdGhpcy5idW5kbGVOYW1lID0gYnVuZGxlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIHN1cHBvcnRlZCBJRHMuICBUaGlzIGlzIHRoZSBzZXQgb2YgYWxsIGxvY2FsZSBuYW1lcyBmb3IgdGhlIGJ1bmRsZU5hbWUuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIC8vIG5vdGU6ICJyb290IiBpcyBvbmUgb2YgdGhlIGlkcywgYnV0ICIiIGlzIG5vdC4gIE11c3QgY29udmVydCBVTG9jYWxlLlJPT1QuCisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0RnVsbExvY2FsZU5hbWVTZXQoYnVuZGxlTmFtZSk7IAorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE92ZXJyaWRlIG9mIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICBTZXQgdmlzaWJsZUlEcyA9IElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZU5hbWVTZXQoYnVuZGxlTmFtZSk7IC8vIG9ubHkgdmlzaWJsZSBpZHMKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSB2aXNpYmxlSURzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoaWQsIHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSB0aGUgc2VydmljZS4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAgICAgKiBmb3IgdGhlIGxvY2FsZSwgaWdub3Jpbmcga2luZCwgYW5kIHNlcnZpY2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIGxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJ1bmRsZU5hbWUsIGxvYyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCkgKyAiLCBidW5kbGU6ICIgKyBidW5kbGVOYW1lOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZhbGxiYWNrIGxvY2FsZS4gIElmIGl0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgd2FzCisgICAgICogbGFzdCBhY2Nlc3NlZCwgdGhlIHNlcnZpY2UgY2FjaGUgaXMgY2xlYXJlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHZhbGlkYXRlRmFsbGJhY2tMb2NhbGUoKSB7CisgICAgICAgIFVMb2NhbGUgbG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGlmIChsb2MgIT0gZmFsbGJhY2tMb2NhbGUpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIGlmIChsb2MgIT0gZmFsbGJhY2tMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUgPSBsb2M7CisgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlTmFtZSA9IGxvYy5nZXRCYXNlTmFtZSgpOworICAgICAgICAgICAgICAgICAgICBjbGVhclNlcnZpY2VDYWNoZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsbGJhY2tMb2NhbGVOYW1lOworICAgIH0KKworICAgIHB1YmxpYyBLZXkgY3JlYXRlS2V5KFN0cmluZyBpZCkgeworICAgICAgICByZXR1cm4gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhpZCwgdmFsaWRhdGVGYWxsYmFja0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgS2V5IGNyZWF0ZUtleShTdHJpbmcgaWQsIGludCBraW5kKSB7CisgICAgICAgIHJldHVybiBMb2NhbGVLZXkuY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKGlkLCB2YWxpZGF0ZUZhbGxiYWNrTG9jYWxlKCksIGtpbmQpOworICAgIH0KKworICAgIHB1YmxpYyBLZXkgY3JlYXRlS2V5KFVMb2NhbGUgbCwgaW50IGtpbmQpIHsKKyAgICAgICAgcmV0dXJuIExvY2FsZUtleS5jcmVhdGVXaXRoQ2Fub25pY2FsKGwsIHZhbGlkYXRlRmFsbGJhY2tMb2NhbGUoKSwga2luZCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTm90aWZpZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVU5vdGlmaWVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ5YjJhOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVU5vdGlmaWVyLmphdmEKQEAgLTAsMCArMSwxNzEgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKy8qKgorICogPHA+QWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgYSBub3RpZmljYXRpb24gZmFjaWxpdHkuICBDbGllbnRzIGFkZAorICogRXZlbnRMaXN0ZW5lcnMgd2l0aCBhZGRMaXN0ZW5lciBhbmQgcmVtb3ZlIHRoZW0gd2l0aCByZW1vdmVMaXN0ZW5lci4KKyAqIE5vdGlmaWVycyBjYWxsIG5vdGlmeUNoYW5nZWQgd2hlbiB0aGV5IHdpc2ggdG8gbm90aWZ5IGxpc3RlbmVycy4KKyAqIFRoaXMgcXVldWVzIHRoZSBsaXN0ZW5lciBsaXN0IG9uIHRoZSBub3RpZmljYXRpb24gdGhyZWFkLCB3aGljaAorICogZXZlbnR1YWxseSBkZXF1ZXVlcyB0aGUgbGlzdCBhbmQgY2FsbHMgbm90aWZ5TGlzdGVuZXIgb24gZWFjaAorICogbGlzdGVuZXIgaW4gdGhlIGxpc3QuPC9wPgorICoKKyAqIDxwPlN1YmNsYXNzZXMgb3ZlcnJpZGUgYWNjZXB0c0xpc3RlbmVyIGFuZCBub3RpZnlMaXN0ZW5lciAKKyAqIHRvIGFkZCB0eXBlLXNhZmUgbm90aWZpY2F0aW9uLiAgQWNjZXB0c0xpc3RlbmVyIHNob3VsZCByZXR1cm4KKyAqIHRydWUgaWYgdGhlIGxpc3RlbmVyIGlzIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlOyBJQ1VOb3RpZmllcgorICogaXRzZWxmIHdpbGwgZW5zdXJlIHRoZSBsaXN0ZW5lciBpcyBub24tbnVsbCBhbmQgdGhhdCB0aGUKKyAqIGlkZW50aWNhbCBsaXN0ZW5lciBpcyBub3QgYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggdGhlIE5vdGlmaWVyLgorICogTm90aWZ5TGlzdGVuZXIgc2hvdWxkIGNhc3QgdGhlIGxpc3RlbmVyIHRvIHRoZSBhcHByb3ByaWF0ZSAKKyAqIHR5cGUgYW5kIGNhbGwgdGhlIGFwcHJvcHJpYXRlIG1ldGhvZCBvbiB0aGUgbGlzdGVuZXIuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBJQ1VOb3RpZmllciB7CisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3Qgbm90aWZ5TG9jayA9IG5ldyBPYmplY3QoKTsKKyAgICBwcml2YXRlIE5vdGlmeVRocmVhZCBub3RpZnlUaHJlYWQ7CisgICAgcHJpdmF0ZSBMaXN0IGxpc3RlbmVyczsKKworICAgIC8qKgorICAgICAqIEFkZCBhIGxpc3RlbmVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gbm90aWZ5Q2hhbmdlZCBpcyBjYWxsZWQuCisgICAgICogVGhlIGxpc3RlbmVyIG11c3Qgbm90IGJlIG51bGwuIEFjY2VwdHNMaXN0ZW5lciBtdXN0IHJldHVybgorICAgICAqIHRydWUgZm9yIHRoZSBsaXN0ZW5lci4gIEF0dGVtcHRzIHRvIGNvbmN1cnJlbnRseQorICAgICAqIHJlZ2lzdGVyIHRoZSBpZGVudGljYWwgbGlzdGVuZXIgbW9yZSB0aGFuIG9uY2Ugd2lsbCBiZQorICAgICAqIHNpbGVudGx5IGlnbm9yZWQuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgaWYgKGwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWNjZXB0c0xpc3RlbmVyKGwpKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG5vdGlmeUxvY2spIHsKKyAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXJzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzID0gbmV3IEFycmF5TGlzdCg1KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBpZGVudGl0eSBlcXVhbGl0eSBjaGVjaworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbGlzdGVuZXJzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXIubmV4dCgpID09IGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuYWRkKGwpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTGlzdGVuZXIgaW52YWxpZCBmb3IgdGhpcyBub3RpZmllci4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFN0b3Agbm90aWZ5aW5nIHRoaXMgbGlzdGVuZXIuICBUaGUgbGlzdGVuZXIgbXVzdAorICAgICAqIG5vdCBiZSBudWxsLiAgQXR0ZW1wcyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0IGlzCisgICAgICogbm90IHJlZ2lzdGVyZWQgd2lsbCBiZSBzaWxlbnRseSBpZ25vcmVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworICAgICAgICBpZiAobCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBzeW5jaHJvbml6ZWQgKG5vdGlmeUxvY2spIHsKKyAgICAgICAgICAgIGlmIChsaXN0ZW5lcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIGlkZW50aXR5IGVxdWFsaXR5IGNoZWNrCisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IGxpc3RlbmVycy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlci5uZXh0KCkgPT0gbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lcnMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUXVldWUgYSBub3RpZmljYXRpb24gb24gdGhlIG5vdGlmaWNhdGlvbiB0aHJlYWQgZm9yIHRoZSBjdXJyZW50CisgICAgICogbGlzdGVuZXJzLiAgV2hlbiB0aGUgdGhyZWFkIHVucXVldWVzIHRoZSBub3RpZmljYXRpb24sIG5vdGlmeUxpc3RlbmVyCisgICAgICogaXMgY2FsbGVkIG9uIGVhY2ggbGlzdGVuZXIgZnJvbSB0aGUgbm90aWZpY2F0aW9uIHRocmVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBub3RpZnlDaGFuZ2VkKCkgeworICAgICAgICBpZiAobGlzdGVuZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAobm90aWZ5TG9jaykgeworICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobm90aWZ5VGhyZWFkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeVRocmVhZCA9IG5ldyBOb3RpZnlUaHJlYWQodGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlUaHJlYWQuc2V0RGFlbW9uKHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5VGhyZWFkLnN0YXJ0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5VGhyZWFkLnF1ZXVlKGxpc3RlbmVycy50b0FycmF5KCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBub3RpZmljYXRpb24gdGhyZWFkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE5vdGlmeVRocmVhZCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIHByaXZhdGUgZmluYWwgSUNVTm90aWZpZXIgbm90aWZpZXI7CisgICAgICAgIHByaXZhdGUgZmluYWwgTGlzdCBxdWV1ZSA9IG5ldyBMaW5rZWRMaXN0KCk7CisKKyAgICAgICAgTm90aWZ5VGhyZWFkKElDVU5vdGlmaWVyIG5vdGlmaWVyKSB7CisgICAgICAgICAgICB0aGlzLm5vdGlmaWVyID0gbm90aWZpZXI7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUXVldWUgdGhlIG5vdGlmaWNhdGlvbiBvbiB0aGUgdGhyZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgcXVldWUoT2JqZWN0W10gbGlzdCkgeworICAgICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7CisgICAgICAgICAgICAgICAgcXVldWUuYWRkKGxpc3QpOworICAgICAgICAgICAgICAgIG5vdGlmeSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdhaXQgZm9yIGEgbm90aWZpY2F0aW9uIHRvIGJlIHF1ZXVlZCwgdGhlbiBub3RpZnkgYWxsCisgICAgICAgICAqIGxpc3RlbmVycyBsaXN0ZWQgaW4gdGhlIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIE9iamVjdFtdIGxpc3Q7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHF1ZXVlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSAoT2JqZWN0W10pcXVldWUucmVtb3ZlKDApOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZmllci5ub3RpZnlMaXN0ZW5lcigoRXZlbnRMaXN0ZW5lcilsaXN0W2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgaW1wbGVtZW50IHRoaXMgdG8gcmV0dXJuIHRydWUgaWYgdGhlIGxpc3RlbmVyIGlzCisgICAgICogb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gYWNjZXB0c0xpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCk7CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIGltcGxlbWVudCB0aGlzIHRvIG5vdGlmeSB0aGUgbGlzdGVuZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgbm90aWZ5TGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJXTG9jay5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUldMb2NrLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMxNTA3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJXTG9jay5qYXZhCkBAIC0wLDAgKzEsMjk3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLy8gU2VlIEFsbGFuIEhvbHViJ3MgMTk5OSBjb2x1bW4gaW4gSmF2YVdvcmxkLCBhbmQgRG91ZyBMZWEncyBjb2RlIGZvciBSV0xvY2tzIHdpdGggd3JpdGVyIHByZWZlcmVuY2UuCisKKworLyoqCisgKiA8cD5BIHNpbXBsZSBSZWFkZXIvV3JpdGVyIGxvY2suICBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSB3aWxsCisgKiBiZSBsaXR0bGUgd3JpdGluZyBjb250ZW50aW9uLiAgSXQgYWxzbyBkb2Vzbid0IGFsbG93IAorICogYWN0aXZlIHJlYWRlcnMgdG8gYWNxdWlyZSBhbmQgcmVsZWFzZSBhIHdyaXRlIGxvY2ssIG9yCisgKiBkZWFsIHdpdGggcHJpb3JpdHkgaW52ZXJzaW9uIGlzc3Vlcy48L3A+CisgKgorICogPHA+QWNjZXNzIHRvIHRoZSBsb2NrIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBhIHRyeS9maW5hbGx5IGJsb2NrCisgKiBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgbG9jayBpcyBhbHdheXMgcmVsZWFzZWQgaW4gY2FzZSBvZgorICogZXhjZXB0aW9uczo8YnI+PHByZT4KKyAqIHRyeSB7CisgKiAgICAgbG9jay5hY3F1aXJlUmVhZCgpOworICogICAgIC8vIHVzZSBzZXJ2aWNlIHByb3RlY3RlZCBieSB0aGUgbG9jaworICogfQorICogZmluYWxseSB7CisgKiAgICAgbG9jay5yZWxlYXNlUmVhZCgpOworICogfQorICogPC9wcmU+PC9wPgorICoKKyAqIDxwPlRoZSBsb2NrIHByb3ZpZGVzIHV0aWxpdHkgbWV0aG9kcyBnZXRTdGF0cyBhbmQgY2xlYXJTdGF0cworICogdG8gcmV0dXJuIHN0YXRpc3RpY3Mgb24gdGhlIHVzZSBvZiB0aGUgbG9jay48L3A+CisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VSV0xvY2sgeworICAgIHByaXZhdGUgT2JqZWN0IHdyaXRlTG9jayA9IG5ldyBPYmplY3QoKTsKKyAgICBwcml2YXRlIE9iamVjdCByZWFkTG9jayA9IG5ldyBPYmplY3QoKTsKKyAgICBwcml2YXRlIGludCB3d2M7IC8vIHdhaXRpbmcgd3JpdGVycworICAgIHByaXZhdGUgaW50IHJjOyAvLyBhY3RpdmUgcmVhZGVycywgLTEgaWYgdGhlcmUncyBhbiBhY3RpdmUgd3JpdGVyCisgICAgcHJpdmF0ZSBpbnQgd3JjOyAvLyB3YWl0aW5nIHJlYWRlcnMKKworICAgIHByaXZhdGUgU3RhdHMgc3RhdHMgPSBuZXcgU3RhdHMoKTsgLy8gbWF5YmUgZG9uJ3QgaW5pdCB0byBzdGFydC4uLgorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgY2xhc3MgdXNlZCB0byBnYXRoZXIgc3RhdGlzdGljcyBvbiB0aGUgUldMb2NrLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgY2xhc3MgU3RhdHMgeworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIHRpbWVzIHJlYWQgYWNjZXNzIGdyYW50ZWQgKHJlYWQgY291bnQpLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBfcmM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiB0aW1lcyBjb25jdXJyZW50IHJlYWQgYWNjZXNzIGdyYW50ZWQgKG11bHRpcGxlIHJlYWQgY291bnQpLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBfbXJjOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgdGltZXMgYmxvY2tlZCBmb3IgcmVhZCAod2FpdGluZyByZWFkZXIgY291bnQpLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBfd3JjOyAvLyB3YWl0IGZvciByZWFkCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiB0aW1lcyB3cml0ZSBhY2Nlc3MgZ3JhbnRlZCAod3JpdGVyIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX3djOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgdGltZXMgYmxvY2tlZCBmb3Igd3JpdGUgKHdhaXRpbmcgd3JpdGVyIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX3d3YzsKKworICAgICAgICBwcml2YXRlIFN0YXRzKCkgeworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdGF0cyhpbnQgcmMsIGludCBtcmMsIGludCB3cmMsIGludCB3YywgaW50IHd3YykgeworICAgICAgICAgICAgdGhpcy5fcmMgPSByYzsKKyAgICAgICAgICAgIHRoaXMuX21yYyA9IG1yYzsKKyAgICAgICAgICAgIHRoaXMuX3dyYyA9IHdyYzsKKyAgICAgICAgICAgIHRoaXMuX3djID0gd2M7CisgICAgICAgICAgICB0aGlzLl93d2MgPSB3d2M7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFN0YXRzKFN0YXRzIHJocykgeworICAgICAgICAgICAgdGhpcyhyaHMuX3JjLCByaHMuX21yYywgcmhzLl93cmMsIHJocy5fd2MsIHJocy5fd3djKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSBzdHJpbmcgbGlzdGluZyBhbGwgdGhlIHN0YXRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAiIHJjOiAiICsgX3JjICsKKyAgICAgICAgICAgICAgICAiIG1yYzogIiArIF9tcmMgKyAKKyAgICAgICAgICAgICAgICAiIHdyYzogIiArIF93cmMgKworICAgICAgICAgICAgICAgICIgd2M6ICIgKyBfd2MgKworICAgICAgICAgICAgICAgICIgd3djOiAiICsgX3d3YzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBzdGF0cy4gIFJldHVybnMgZXhpc3Rpbmcgc3RhdHMsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFN0YXRzIHJlc2V0U3RhdHMoKSB7CisgICAgICAgIFN0YXRzIHJlc3VsdCA9IHN0YXRzOworICAgICAgICBzdGF0cyA9IG5ldyBTdGF0cygpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIHRoZSBzdGF0cyAoc3RvcCBjb2xsZWN0aW5nIHN0YXRzKS4gIFJldHVybnMgZXhpc3Rpbmcgc3RhdHMsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFN0YXRzIGNsZWFyU3RhdHMoKSB7CisgICAgICAgIFN0YXRzIHJlc3VsdCA9IHN0YXRzOworICAgICAgICBzdGF0cyA9IG51bGw7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50IHN0YXRzLiAgVGhpcyBkb2VzIG5vdCByZXNldCB0aGUgc3RhdHMuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdGF0cyBnZXRTdGF0cygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRzID09IG51bGwgPyBudWxsIDogbmV3IFN0YXRzKHN0YXRzKTsKKyAgICB9CisKKyAgICAvLyB1dGlsaXRpZXMKKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gZ290UmVhZCgpIHsKKyAgICAgICAgKytyYzsKKyAgICAgICAgaWYgKHN0YXRzICE9IG51bGwpIHsKKyAgICAgICAgICAgICsrc3RhdHMuX3JjOworICAgICAgICAgICAgaWYgKHJjID4gMSkgKytzdGF0cy5fbXJjOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gZ2V0UmVhZCgpIHsKKyAgICAgICAgaWYgKHJjID49IDAgJiYgd3djID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBnb3RSZWFkKCk7CisgICAgICAgIH0KKyAgICAgICAgKyt3cmM7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIHJldHJ5UmVhZCgpIHsKKyAgICAgICAgaWYgKHN0YXRzICE9IG51bGwpICsrc3RhdHMuX3dyYzsKKyAgICAgICAgaWYgKHJjID49IDAgJiYgd3djID09IDApIHsKKyAgICAgICAgICAgIC0td3JjOworICAgICAgICAgICAgcmV0dXJuIGdvdFJlYWQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBmaW5pc2hSZWFkKCkgeworICAgICAgICBpZiAocmMgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gKDAgPT0gLS1yYyAmJiB3d2MgPiAwKTsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJubyBjdXJyZW50IHJlYWRlciB0byByZWxlYXNlIik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gZ290V3JpdGUoKSB7CisgICAgICAgIHJjID0gLTE7CisgICAgICAgIGlmIChzdGF0cyAhPSBudWxsKSB7CisgICAgICAgICAgICArK3N0YXRzLl93YzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIGdldFdyaXRlKCkgeworICAgICAgICBpZiAocmMgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGdvdFdyaXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgKyt3d2M7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIHJldHJ5V3JpdGUoKSB7CisgICAgICAgIGlmIChzdGF0cyAhPSBudWxsKSArK3N0YXRzLl93d2M7CisgICAgICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgICAgICAtLXd3YzsKKyAgICAgICAgICAgIHJldHVybiBnb3RXcml0ZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9USUZZX05PTkUgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1RJRllfV1JJVEVSUyA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PVElGWV9SRUFERVJTID0gMjsKKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGludCBmaW5pc2hXcml0ZSgpIHsKKyAgICAgICAgaWYgKHJjIDwgMCkgeworICAgICAgICAgICAgcmMgPSAwOworICAgICAgICAgICAgaWYgKHd3YyA+IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTk9USUZZX1dSSVRFUlM7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdyYyA+IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTk9USUZZX1JFQURFUlM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBOT1RJRllfTk9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJubyBjdXJyZW50IHdyaXRlciB0byByZWxlYXNlIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkFjcXVpcmUgYSByZWFkIGxvY2ssIGJsb2NraW5nIHVudGlsIGEgcmVhZCBsb2NrIGlzCisgICAgICogYXZhaWxhYmxlLiAgTXVsdGlwbGUgcmVhZGVycyBjYW4gY29uY3VycmVudGx5IGhvbGQgdGhlIHJlYWQKKyAgICAgKiBsb2NrLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoZXJlJ3MgYSB3cml0ZXIsIG9yIGEgd2FpdGluZyB3cml0ZXIsIGluY3JlbWVudCB0aGUKKyAgICAgKiB3YWl0aW5nIHJlYWRlciBjb3VudCBhbmQgYmxvY2sgb24gdGhpcy4gIE90aGVyd2lzZQorICAgICAqIGluY3JlbWVudCB0aGUgYWN0aXZlIHJlYWRlciBjb3VudCBhbmQgcmV0dXJuLiAgQ2FsbGVyIG11c3QgY2FsbAorICAgICAqIHJlbGVhc2VSZWFkIHdoZW4gZG9uZSAoZm9yIGV4YW1wbGUsIGluIGEgZmluYWxseSBibG9jaykuPC9wPiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhY3F1aXJlUmVhZCgpIHsKKyAgICAgICAgaWYgKCFnZXRSZWFkKCkpIHsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHJlYWRMb2NrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFkTG9jay53YWl0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldHJ5UmVhZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZWxlYXNlIGEgcmVhZCBsb2NrIGFuZCByZXR1cm4uICBBbiBlcnJvciB3aWxsIGJlIHRocm93bgorICAgICAqIGlmIGEgcmVhZCBsb2NrIGlzIG5vdCBjdXJyZW50bHkgaGVsZC48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiB0aGlzIGlzIHRoZSBsYXN0IGFjdGl2ZSByZWFkZXIsIG5vdGlmeSB0aGUgb2xkZXN0CisgICAgICogd2FpdGluZyB3cml0ZXIuICBDYWxsIHdoZW4gZmluaXNoZWQgd2l0aCB3b3JrCisgICAgICogY29udHJvbGxlZCBieSBhY3F1aXJlUmVhZC48L3A+CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsZWFzZVJlYWQoKSB7CisgICAgICAgIGlmIChmaW5pc2hSZWFkKCkpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAod3JpdGVMb2NrKSB7CisgICAgICAgICAgICAgICAgd3JpdGVMb2NrLm5vdGlmeSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+QWNxdWlyZSB0aGUgd3JpdGUgbG9jaywgYmxvY2tpbmcgdW50aWwgdGhlIHdyaXRlIGxvY2sgaXMKKyAgICAgKiBhdmFpbGFibGUuICBPbmx5IG9uZSB3cml0ZXIgY2FuIGFjcXVpcmUgdGhlIHdyaXRlIGxvY2ssIGFuZAorICAgICAqIHdoZW4gaGVsZCwgbm8gcmVhZGVycyBjYW4gYWNxdWlyZSB0aGUgcmVhZCBsb2NrLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoZXJlIGFyZSBubyByZWFkZXJzIGFuZCBubyB3YWl0aW5nIHdyaXRlcnMsIG1hcmsgYXMKKyAgICAgKiBoYXZpbmcgYW4gYWN0aXZlIHdyaXRlciBhbmQgcmV0dXJuLiAgT3RoZXJ3aXNlLCBhZGQgYSBsb2NrIHRvIHRoZQorICAgICAqIGVuZCBvZiB0aGUgd2FpdGluZyB3cml0ZXIgbGlzdCwgYW5kIGJsb2NrIG9uIGl0LiAgQ2FsbGVyCisgICAgICogbXVzdCBjYWxsIHJlbGVhc2VXcml0ZSB3aGVuIGRvbmUgKGZvciBleGFtcGxlLCBpbiBhIGZpbmFsbHkKKyAgICAgKiBibG9jaykuPHA+IAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFjcXVpcmVXcml0ZSgpIHsKKyAgICAgICAgaWYgKCFnZXRXcml0ZSgpKSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkICh3cml0ZUxvY2spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlTG9jay53YWl0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldHJ5V3JpdGUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmVsZWFzZSB0aGUgd3JpdGUgbG9jayBhbmQgcmV0dXJuLiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24KKyAgICAgKiBpZiB0aGUgd3JpdGUgbG9jayBpcyBub3QgY3VycmVudGx5IGhlbGQuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhlcmUgYXJlIHdhaXRpbmcgcmVhZGVycywgbWFrZSB0aGVtIGFsbCBhY3RpdmUgYW5kCisgICAgICogbm90aWZ5IGFsbCBvZiB0aGVtLiAgT3RoZXJ3aXNlLCBub3RpZnkgdGhlIG9sZGVzdCB3YWl0aW5nCisgICAgICogd3JpdGVyLCBpZiBhbnkuICBDYWxsIHdoZW4gZmluaXNoZWQgd2l0aCB3b3JrIGNvbnRyb2xsZWQgYnkKKyAgICAgKiBhY3F1aXJlV3JpdGUuPC9wPiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWxlYXNlV3JpdGUoKSB7CisgICAgICAgIHN3aXRjaCAoZmluaXNoV3JpdGUoKSkgeworICAgICAgICBjYXNlIE5PVElGWV9XUklURVJTOgorICAgICAgICAgICAgc3luY2hyb25pemVkICh3cml0ZUxvY2spIHsKKyAgICAgICAgICAgICAgICB3cml0ZUxvY2subm90aWZ5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOT1RJRllfUkVBREVSUzoKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAocmVhZExvY2spIHsKKyAgICAgICAgICAgICAgICByZWFkTG9jay5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5PVElGWV9OT05FOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzg0MDNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGUuamF2YQpAQCAtMCwwICsxLDEyNDYgQEAKKy8vIyNoZWFkZXIKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICogb3RoZXJzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisvLyNlbHNlCisvLyMjaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlcjsKKy8vI2VuZGlmCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VUkxIYW5kbGVyLlVSTFZpc2l0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TdHJpbmdUb2tlbml6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBJQ1VSZXNvdXJjZUJ1bmRsZSBleHRlbmRzIFVSZXNvdXJjZUJ1bmRsZSB7CisgICAgLyoqCisgICAgICogVGhlIGRhdGEgcGF0aCB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfREFUQV9QQVRIID0gImNvbS9pYm0vaWN1L2ltcGwvIjsKKyAgICAvKioKKyAgICAgKiBUaGUgZGF0YSBwYXRoIHRvIGJlIHVzZWQgd2l0aCBnZXRCdW5kbGVJbnN0YW5jZSBBUEkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9CVU5ETEUgPSAiZGF0YS9pY3VkdCIgKyBWZXJzaW9uSW5mby5JQ1VfREFUQV9WRVJTSU9OOworCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSBvZiBJQ1UgZGF0YSB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfQkFTRV9OQU1FID0gSUNVX0RBVEFfUEFUSCArIElDVV9CVU5ETEU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgYmFzZSBuYW1lIG9mIGNvbGxhdGlvbiBkYXRhIHRvIGJlIHVzZWQgd2l0aCBnZXRCdW5kbGVJbnN0YW5jZSBBUEkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9DT0xMQVRJT05fQkFTRV9OQU1FID0gSUNVX0JBU0VfTkFNRSArICIvY29sbCI7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSBvZiByYmJpIGRhdGEgdG8gYmUgdXNlZCB3aXRoIGdldERhdGEgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfQlJLSVRSX05BTUUgPSAiL2Jya2l0ciI7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSBvZiByYmJpIGRhdGEgdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0JSS0lUUl9CQVNFX05BTUUgPSBJQ1VfQkFTRV9OQU1FICsgSUNVX0JSS0lUUl9OQU1FOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBiYXNlIG5hbWUgb2YgcmJuZiBkYXRhIHRvIGJlIHVzZWQgd2l0aCBnZXRCdW5kbGVJbnN0YW5jZSBBUEkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9SQk5GX0JBU0VfTkFNRSA9IElDVV9CQVNFX05BTUUgKyAiL3JibmYiOworCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSBvZiB0cmFuc2xpdGVyYXRvciBkYXRhIHRvIGJlIHVzZWQgd2l0aCBnZXRCdW5kbGVJbnN0YW5jZSBBUEkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9UUkFOU0xJVF9CQVNFX05BTUUgPSBJQ1VfQkFTRV9OQU1FICsgIi90cmFuc2xpdCI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2xhc3MgbG9hZGVyIGNvbnN0YW50IHRvIGJlIHVzZWQgd2l0aCBnZXRCdW5kbGVJbnN0YW5jZSBBUEkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ2xhc3NMb2FkZXIgSUNVX0RBVEFfQ0xBU1NfTE9BREVSOworICAgIHN0YXRpYyB7CisgICAgICAgIENsYXNzTG9hZGVyIGxvYWRlciA9IElDVURhdGEuY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKTsKKyAgICAgICAgaWYgKGxvYWRlciA9PSBudWxsKSB7IC8vIGJvb3QgY2xhc3MgbG9hZGVyCisgICAgICAgICAgICBsb2FkZXIgPSBDbGFzc0xvYWRlci5nZXRTeXN0ZW1DbGFzc0xvYWRlcigpOworICAgICAgICB9CisgICAgICAgIElDVV9EQVRBX0NMQVNTX0xPQURFUiA9IGxvYWRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgY29udGFpbmluZyB0aGUgaW5zdGFsbGVkIGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIElOU1RBTExFRF9MT0NBTEVTID0gIkluc3RhbGxlZExvY2FsZXMiOworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgIm5vIHJlc291cmNlIi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTkUgPSAtMTsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIHN0cmluZ3MuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFJJTkcgPSAwOworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgYmluYXJ5IGRhdGEuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSU5BUlkgPSAxOworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgdGFibGVzIG9mIGtleS12YWx1ZSBwYWlycy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBQkxFID0gMjsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIGFsaWFzZXM7CisgICAgICogaW50ZXJuYWxseSBzdG9yZXMgYSBzdHJpbmcgd2hpY2ggaWRlbnRpZmllcyB0aGUgYWN0dWFsIHJlc291cmNlCisgICAgICogc3RvcmluZyB0aGUgZGF0YSAoY2FuIGJlIGluIGEgZGlmZmVyZW50IHJlc291cmNlIGJ1bmRsZSkuCisgICAgICogUmVzb2x2ZWQgaW50ZXJuYWxseSBiZWZvcmUgZGVsaXZlcmluZyB0aGUgYWN0dWFsIHJlc291cmNlIHRocm91Z2ggdGhlIEFQSS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEFMSUFTID0gMzsKKworICAgIC8qKgorICAgICAqIEludGVybmFsIHVzZSBvbmx5LgorICAgICAqIEFsdGVybmF0aXZlIHJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIHRhYmxlcyBvZiBrZXktdmFsdWUgcGFpcnMuCisgICAgICogTmV2ZXIgcmV0dXJuZWQgYnkgZ2V0VHlwZSgpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVEFCTEUzMiA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciBhIHNpbmdsZSAyOC1iaXQgaW50ZWdlciwgaW50ZXJwcmV0ZWQgYXMKKyAgICAgKiBzaWduZWQgb3IgdW5zaWduZWQgYnkgdGhlIGdldEludCgpIGZ1bmN0aW9uLgorICAgICAqIEBzZWUgI2dldEludAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5UID0gNzsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIGFycmF5cyBvZiByZXNvdXJjZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUlJBWSA9IDg7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciB2ZWN0b3JzIG9mIDMyLWJpdCBpbnRlZ2Vycy4KKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVF9WRUNUT1IgPSAxNDsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZST01fRkFMTEJBQ0sgPSAxLCBGUk9NX1JPT1QgPSAyLCBGUk9NX0RFRkFVTFQgPSAzLCBGUk9NX0xPQ0FMRSA9IDQ7CisKKyAgICBwcml2YXRlIGludCBsb2FkaW5nU3RhdHVzID0gLTE7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRMb2FkaW5nU3RhdHVzKGludCBuZXdTdGF0dXMpIHsKKyAgICAgICAgbG9hZGluZ1N0YXR1cyA9IG5ld1N0YXR1czsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9hZGluZyBzdGF0dXMgb2YgYSBwYXJ0aWN1bGFyIHJlc291cmNlLiAKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIEZST01fRkFMTEJBQ0sgaWYgdGhlIHJlc291cmNlIGlzIGZldGNoZWQgZnJvbSBmYWxsYmFjayBidW5kbGUKKyAgICAgKiAgICAgICAgIEZST01fUk9PVCBpZiB0aGUgcmVzb3VyY2UgaXMgZmV0Y2hlZCBmcm9tIHJvb3QgYnVuZGxlLgorICAgICAqICAgICAgICAgRlJPTV9ERUZBVUxUIGlmIHRoZSByZXNvdXJjZSBpcyBmZXRjaGVkIGZyb20gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TG9hZGluZ1N0YXR1cygpIHsKKyAgICAgICAgcmV0dXJuIGxvYWRpbmdTdGF0dXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBub0ZhbGxiYWNrIGZsYWcgc3BlY2lmaWVkIGluIHRoZSBsb2FkZWQgYnVuZGxlLgorICAgICAqIEByZXR1cm4gVGhlIG5vRmFsbGJhY2sgZmxhZy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBnZXROb0ZhbGxiYWNrKCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2ZXJzaW9uIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBVUmVzb3VyY2VCdW5kbGUgYXMgYW4KKyAgICAgKiBWZXJzaW9uSW5mbyBvYmplY3QuCisgICAgICogQHJldHVybiBWZXJzaW9uSW5mbyBvYmplY3QgY29udGFpbmluZyB0aGUgdmVyc2lvbiBvZiB0aGUgYnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVmVyc2lvbkluZm8gZ2V0VmVyc2lvbigpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyBmcm9tIGEgc3RyaW5nIHJlc291cmNlIHR5cGUKKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBzdHJpbmcKKyAgICAgKiBAc2VlICNnZXRCaW5hcnkoKQorICAgICAqIEBzZWUgI2dldEludFZlY3RvcgorICAgICAqIEBzZWUgI2dldEludAorICAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGZyb20gYSBzdHJpbmcgcmVzb3VyY2UgdHlwZQorICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB3aG9zZSB2YWx1ZXMgbmVlZHMgdG8gYmUgZmV0Y2hlZAorICAgICAqIEByZXR1cm4gYSBzdHJpbmcKKyAgICAgKiBAc2VlICNnZXRCaW5hcnkKKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICAvLyAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoU3RyaW5nIGtleSkgeworICAgIC8vICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgLy8gIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBiaW5hcnkgZGF0YSBmcm9tIGEgYmluYXJ5IHJlc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaHVjayBvZiB1bnNpZ25lZCBieXRlcyB3aGljaCBsaXZlIGluIGEgbWVtb3J5IG1hcHBlZC9ETEwgZmlsZS4KKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQnl0ZUJ1ZmZlciBnZXRCaW5hcnkoKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBiaW5hcnkgZGF0YSBmcm9tIGEgYmluYXJ5IHJlc291cmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGJhIEVzdGFibGlzaCB0aGUgcmV0dXJuIHR5cGUgZnJvbSB0aGlzIGZ1bmN0aW9uLiAgVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIKKyAgICAgKiAgICAgICAgICAgIGlzIG5vdCB1c2VkOyBhIG51bGwgdmFyaWFibGUgaXMgT0suICBUaGUgdGhpbmcgdGhhdCBtYXR0ZXJzIGlzIHRoZSB0eXBlCisgICAgICogICAgICAgICAgICBvZiB0aGUgcGFyYW1ldGVyCisgICAgICogQHJldHVybiBhbiBhcnJheSB1bnNpZ25lZCBieXRlcyBjb250YWluaW5nIHRoZSBiaW5hcnkgZGF0YSBmcm9tIHRoZSByZXNvdXJjZS4KKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZSBbXSBnZXRCaW5hcnkoYnl0ZSBbXWJhKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgMzIgYml0IGludGVnZXIgYXJyYXkgZnJvbSBhIHJlc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaHVuayBvZiB1bnNpZ25lZCBieXRlcyB3aGljaCBsaXZlIGluIGEgbWVtb3J5IG1hcHBlZC9ETEwgZmlsZS4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnkoKQorICAgICAqIEBzZWUgI2dldEludAorICAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnRbXSBnZXRJbnRWZWN0b3IoKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzaWduZWQgaW50ZWdlciBmcm9tIGEgcmVzb3VyY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFuIGludGVnZXIgdmFsdWUKKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRCaW5hcnkoKQorICAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEludCgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHVuc2lnbmVkIGludGVnZXIgZnJvbSBhIHJlc291cmNlLgorICAgICAqIFRoaXMgaW50ZWdlciBpcyBvcmlnaW5hbGx5IDI4IGJpdCBhbmQgdGhlIHNpZ24gZ2V0cyBwcm9wYWdhdGVkLgorICAgICAqCisgICAgICogQHJldHVybiBhbiBpbnRlZ2VyIHZhbHVlCisgICAgICogQHNlZSAjZ2V0SW50VmVjdG9yCisgICAgICogQHNlZSAjZ2V0QmluYXJ5KCkKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRVSW50KCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiBhIHJlc291cmNlLiBTaXplIGZvciBzY2FsYXIgdHlwZXMgaXMgYWx3YXlzIDEsCisgICAgICogYW5kIGZvciB2ZWN0b3IvdGFibGUgdHlwZXMgaXMgdGhlIG51bWJlciBvZiBjaGlsZCByZXNvdXJjZXMuCisgICAgICogPGJyPjxiPjxmb250IGNvbG9yPSdyZWQnPldhcm5pbmc6IDwvZm9udD48L2I+IEludGVnZXIgYXJyYXkgaXMgdHJlYXRlZCBhcyBhIHNjYWxhciB0eXBlLiBUaGVyZSBhcmUgbm8KKyAgICAgKiAgICAgICAgICBBUElzIHRvIGFjY2VzcyBpbmRpdmlkdWFsIG1lbWJlcnMgb2YgYW4gaW50ZWdlciBhcnJheS4gSXQKKyAgICAgKiAgICAgICAgICBpcyBhbHdheXMgcmV0dXJuZWQgYXMgYSB3aG9sZS4KKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiByZXNvdXJjZXMgaW4gYSBnaXZlbiByZXNvdXJjZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiBhIHJlc291cmNlLgorICAgICAqIEF2YWlsYWJsZSB0eXBlcyBhcmUge0BsaW5rICNJTlQgSU5UfSwge0BsaW5rICNBUlJBWSBBUlJBWX0sCisgICAgICoge0BsaW5rICNCSU5BUlkgQklOQVJZfSwge0BsaW5rICNJTlRfVkVDVE9SIElOVF9WRUNUT1J9LAorICAgICAqIHtAbGluayAjU1RSSU5HIFNUUklOR30sIHtAbGluayAjVEFCTEUgVEFCTEV9LgorICAgICAqCisgICAgICogQHJldHVybiB0eXBlIG9mIHRoZSBnaXZlbiByZXNvdXJjZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VHlwZSgpIHsKKyAgICAgICAgaW50IHR5cGUgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuUkVTX0dFVF9UWVBFKHJlc291cmNlKTsKKyAgICAgICAgaWYodHlwZT09VEFCTEUzMil7CisgICAgICAgICAgICByZXR1cm4gVEFCTEU7IC8vTWFzayB0aGUgdGFibGUzMidzIHJlYWwgdHlwZQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0eXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiByZXNvdXJjZS4gTm90IGFsbCB0aGUgcmVzb3VyY2VzIGhhdmUgYSBrZXkgLSBvbmx5CisgICAgICogdGhvc2UgdGhhdCBhcmUgbWVtYmVycyBvZiBhIHRhYmxlLgorICAgICAqIEByZXR1cm4gYSBrZXkgYXNzb2NpYXRlZCB0byB0aGlzIHJlc291cmNlLCBvciBOVUxMIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhIGtleQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRLZXkoKSB7CisgICAgICAgIHJldHVybiBrZXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaXRlcmF0b3Igd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGlzCisgICAgICogcmVzb3VyY2UgYnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBnZXRJdGVyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yKHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJlc291cmNlIGluIGEgZ2l2ZW4gcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCAgICAgICAgICAgICBhbiBpbmRleCB0byB0aGUgd2FudGVkIHJlc291cmNlLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICB0aGUgc3ViIHJlc291cmNlIFVSZXNvdXJjZUJ1bmRsZSBvYmplY3QKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBnZXRJbXBsKGluZGV4LCBudWxsLCB0aGlzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGdldEltcGwoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG9iaiA9IGhhbmRsZUdldChpbmRleCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgb2JqID0gKElDVVJlc291cmNlQnVuZGxlKSBnZXRQYXJlbnQoKTsKKyAgICAgICAgICAgIGlmIChvYmogIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG9iaiA9IG9iai5nZXRJbXBsKGluZGV4LCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvYmogPT0gbnVsbCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgIkNhbid0IGZpbmQgcmVzb3VyY2UgZm9yIGJ1bmRsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIsIGtleSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZ2V0S2V5KCksIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCksIGdldEtleSgpKTsKKyAgICAgICAgfQorICAgICAgICBzZXRMb2FkaW5nU3RhdHVzKG9iaiwgcmVxdWVzdGVkLmdldExvY2FsZUlEKCkpOworICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKyAgICAvLyBhYnN0cmFjdCBVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0SW50KGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcmVzb3VyY2UgaW4gYSBnaXZlbiByZXNvdXJjZSB0aGF0IGhhcyBhIGdpdmVuIGtleS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgICAgICAgICAgICAgICBhIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIHdhbnRlZCByZXNvdXJjZQorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICBhIHJlc291cmNlIGJ1bmRsZSBvYmplY3QgcmVwcmVzZW50aW5nIHJoZSByZXNvdXJjZQorICAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGUgZ2V0KFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIGdldEltcGwoa2V5LCBudWxsLCB0aGlzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGdldEltcGwoU3RyaW5nIGtleSwgSGFzaE1hcCB0YWJsZSwKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBvYmogPSBoYW5kbGVHZXQoa2V5LCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICBvYmogPSAoSUNVUmVzb3VyY2VCdW5kbGUpIGdldFBhcmVudCgpOworICAgICAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy9jYWxsIHRoZSBnZXQgbWV0aG9kIHRvIHJlY3Vyc2l2ZWx5IGZldGNoIHRoZSByZXNvdXJjZQorICAgICAgICAgICAgICAgIG9iaiA9IG9iai5nZXRJbXBsKGtleSwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRGdWxsTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldEJhc2VOYW1lKCksIGdldExvY2FsZUlEKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAiQ2FuJ3QgZmluZCByZXNvdXJjZSBmb3IgYnVuZGxlICIgKyBmdWxsTmFtZSArICIsIGtleSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsga2V5LCB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpLCBrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldExvYWRpbmdTdGF0dXMob2JqLCByZXF1ZXN0ZWQuZ2V0TG9jYWxlSUQoKSk7CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzZXRMb2FkaW5nU3RhdHVzKElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSwgU3RyaW5nIHJlcXVlc3RlZExvY2FsZSl7CisgICAgICAgU3RyaW5nIGxvY2FsZSA9IGJ1bmRsZS5nZXRMb2NhbGVJRCgpOyAKKyAgICAgICBpZihsb2NhbGUuZXF1YWxzKCJyb290IikpeworICAgICAgICAgICBidW5kbGUuc2V0TG9hZGluZ1N0YXR1cyhGUk9NX1JPT1QpOworICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorICAgICAgIGlmKGxvY2FsZS5lcXVhbHMocmVxdWVzdGVkTG9jYWxlKSl7CisgICAgICAgICAgIGJ1bmRsZS5zZXRMb2FkaW5nU3RhdHVzKEZST01fTE9DQUxFKTsKKyAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgYnVuZGxlLnNldExvYWRpbmdTdGF0dXMoRlJPTV9GQUxMQkFDSyk7CisgICAgICAgfQorICAgIH0gCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3RyaW5nIGluIGEgZ2l2ZW4gcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCAgICAgICAgICAgIGFuIGluZGV4IHRvIHRoZSB3YW50ZWQgc3RyaW5nLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICBhIHN0cmluZyB3aGljaCBsaXZlcyBpbiB0aGUgcmVzb3VyY2UuCisgICAgICogQHRocm93cyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKGludCBpbmRleCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0ZW1wID0gZ2V0KGluZGV4KTsKKyAgICAgICAgaWYgKHRlbXAuZ2V0VHlwZSgpID09IFNUUklORykgeworICAgICAgICAgICAgcmV0dXJuIHRlbXAuZ2V0U3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcGFyZW50IGJ1bmRsZSBvZiB0aGlzIGJ1bmRsZQorICAgICAqIEByZXR1cm4gVVJlc291cmNlQnVuZGxlIHRoZSBwYXJlbnQgb2YgdGhpcyBidW5kbGUuIFJldHVybnMgbnVsbCBpZiBub25lCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGlkIG9mIHRoaXMgYnVuZGxlIGFzIFN0cmluZworICAgICAqIEByZXR1cm4gU3RyaW5nIGxvY2FsZSBpZCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgZ2V0TG9jYWxlSUQoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCBsb2NhbGUsIGNvbnNpZGVyaW5nIGtleXdvcmRzIGFzIHdlbGwsIGZvciB0aGUgc3BlY2lmaWVkIGtleXdvcmQuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHJlc291cmNlIHNwZWNpZmllcgorICAgICAqIEBwYXJhbSByZXNOYW1lIHRvcCBsZXZlbCByZXNvdXJjZSB0byBjb25zaWRlciAoc3VjaCBhcyAiY29sbGF0aW9ucyIpCisgICAgICogQHBhcmFtIGtleXdvcmQgYSBwYXJ0aWN1bGFyIGtleXdvcmQgdG8gY29uc2lkZXIgKHN1Y2ggYXMgImNvbGxhdGlvbiIgKQorICAgICAqIEBwYXJhbSBsb2NJRCBUaGUgcmVxdWVzdGVkIGxvY2FsZQorICAgICAqIEBwYXJhbSBmaWxsaW5Jc0F2YWlsYWJsZSBJZiBub24tbnVsbCwgMS1lbGVtZW50IGFycmF5IG9mIGZpbGxpbiBwYXJhbWV0ZXIgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUKKyAgICAgKiByZXF1ZXN0ZWQgbG9jYWxlIHdhcyBhdmFpbGFibGUuIFRoZSBsb2NhbGUgaXMgZGVmaW5lZCBhcyAnYXZhaWxhYmxlJyBpZiBpdCBwaHlzaWNhbGx5CisgICAgICogZXhpc3RzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRyZWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoU3RyaW5nIGJhc2VOYW1lLAorICAgICAgICAgICAgU3RyaW5nIHJlc05hbWUsIFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGxvY0lELAorICAgICAgICAgICAgYm9vbGVhbiBmaWxsaW5Jc0F2YWlsYWJsZVtdKSB7CisgICAgICAgIFN0cmluZyBrd1ZhbCA9IGxvY0lELmdldEtleXdvcmRWYWx1ZShrZXl3b3JkKTsKKyAgICAgICAgU3RyaW5nIGJhc2VMb2MgPSBsb2NJRC5nZXRCYXNlTmFtZSgpOworICAgICAgICBTdHJpbmcgZGVmU3RyID0gbnVsbDsKKyAgICAgICAgVUxvY2FsZSBwYXJlbnQgPSBuZXcgVUxvY2FsZShiYXNlTG9jKTsKKyAgICAgICAgVUxvY2FsZSBmb3VuZCA9IGxvY0lEOworICAgICAgICBVTG9jYWxlIGRlZkxvYyA9IG51bGw7IC8vIGxvY2FsZSB3aGVyZSBkZWZhdWx0IChmb3VuZCkgcmVzb3VyY2UgaXMKKyAgICAgICAgYm9vbGVhbiBsb29rRm9yRGVmYXVsdCA9IGZhbHNlOyAvLyB0cnVlIGlmIGt3VmFsIG5lZWRzIHRvIGJlIHNldAorICAgICAgICBVTG9jYWxlIGZ1bGxCYXNlID0gbnVsbDsgLy8gYmFzZSBsb2NhbGUgb2YgZm91bmQgKHRhcmdldCkgcmVzb3VyY2UKKyAgICAgICAgaW50IGRlZkRlcHRoID0gMDsgLy8gZGVwdGggb2YgJ2RlZmF1bHQnIG1hcmtlcgorICAgICAgICBpbnQgcmVzRGVwdGggPSAwOyAvLyBkZXB0aCBvZiBmb3VuZCByZXNvdXJjZTsKKyAgICAgICAgaWYgKGZpbGxpbklzQXZhaWxhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZpbGxpbklzQXZhaWxhYmxlWzBdID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgoa3dWYWwgPT0gbnVsbCkgfHwgKGt3VmFsLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICAgICAgfHwga3dWYWwuZXF1YWxzKERFRkFVTFRfVEFHKSkgeworICAgICAgICAgICAga3dWYWwgPSAiIjsgLy8gZGVmYXVsdCB0YWcgaXMgdHJlYXRlZCBhcyBubyBrZXl3b3JkCisgICAgICAgICAgICBsb29rRm9yRGVmYXVsdCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0b3AgbGV2ZWwgbG9jYWxlIGZpcnN0CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHIgPSBudWxsOworCisgICAgICAgIHIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgcGFyZW50KTsKKyAgICAgICAgZm91bmQgPSByLmdldFVMb2NhbGUoKTsKKyAgICAgICAgaWYgKGZpbGxpbklzQXZhaWxhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghZm91bmQuZXF1YWxzKHBhcmVudCkpIHsKKyAgICAgICAgICAgICAgICBmaWxsaW5Jc0F2YWlsYWJsZVswXSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGRldGVybWluZSBpbiB3aGljaCBsb2NhbGUgKGlmIGFueSkgdGhlIGN1cnJlbnRseSByZWxldmFudCAnZGVmYXVsdCcgaXMKKyAgICAgICAgZG8geworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpcmIgPSByLmdldChyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICBkZWZTdHIgPSBpcmIuZ2V0U3RyaW5nKERFRkFVTFRfVEFHKTsKKyAgICAgICAgICAgICAgICBpZiAobG9va0ZvckRlZmF1bHQgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBrd1ZhbCA9IGRlZlN0cjsKKyAgICAgICAgICAgICAgICAgICAgbG9va0ZvckRlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVmTG9jID0gci5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gdCkgeworICAgICAgICAgICAgICAgIC8vIElnbm9yZSBlcnJvciBhbmQgY29udGludWUgc2VhcmNoLgorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRlZkxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgciA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgci5nZXRQYXJlbnQoKTsKKyAgICAgICAgICAgICAgICBkZWZEZXB0aCsrOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlICgociAhPSBudWxsKSAmJiAoZGVmTG9jID09IG51bGwpKTsKKworICAgICAgICAvLyBOb3csIHNlYXJjaCBmb3IgdGhlIG5hbWVkIHJlc291cmNlCisgICAgICAgIHBhcmVudCA9IG5ldyBVTG9jYWxlKGJhc2VMb2MpOworICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHBhcmVudCk7CisgICAgICAgIC8vIGRldGVybWluZSBpbiB3aGljaCBsb2NhbGUgKGlmIGFueSkgdGhlIG5hbWVkIHJlc291cmNlIGlzIGxvY2F0ZWQKKyAgICAgICAgZG8geworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpcmIgPSByLmdldChyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAvKiBVUmVzb3VyY2VCdW5kbGUgdXJiID0gKi9pcmIuZ2V0KGt3VmFsKTsKKyAgICAgICAgICAgICAgICBmdWxsQmFzZSA9IGlyYi5nZXRVTG9jYWxlKCk7IAorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBnZXQoKSBjb21wbGV0ZWQsIHdlIGhhdmUgdGhlIGZ1bGwgYmFzZSBsb2NhbGUKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBmZWxsIGJhY2sgdG8gYW4gYW5jZXN0b3Igb2YgdGhlIG9sZCAnZGVmYXVsdCcsCisgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZSBjYWxjdWxhdGUgdGhlICJkZWZhdWx0IiBrZXl3b3JkLgorICAgICAgICAgICAgICAgIGlmICgoZnVsbEJhc2UgIT0gbnVsbCkgJiYgKChyZXNEZXB0aCkgPiBkZWZEZXB0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmU3RyID0gaXJiLmdldFN0cmluZyhERUZBVUxUX1RBRyk7CisgICAgICAgICAgICAgICAgICAgIGRlZkxvYyA9IHIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICBkZWZEZXB0aCA9IHJlc0RlcHRoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0KSB7CisgICAgICAgICAgICAgICAgLy8gSWdub3JlIGVycm9yLAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZ1bGxCYXNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSByLmdldFBhcmVudCgpOworICAgICAgICAgICAgICAgIHJlc0RlcHRoKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKChyICE9IG51bGwpICYmIChmdWxsQmFzZSA9PSBudWxsKSk7CisKKyAgICAgICAgaWYgKGZ1bGxCYXNlID09IG51bGwgJiYgLy8gQ291bGQgbm90IGZpbmQgcmVzb3VyY2UgJ2t3VmFsJworICAgICAgICAgICAgICAgIChkZWZTdHIgIT0gbnVsbCkgJiYgLy8gZGVmYXVsdCB3YXMgZGVmaW5lZAorICAgICAgICAgICAgICAgICFkZWZTdHIuZXF1YWxzKGt3VmFsKSkgeyAvLyBrd1ZhbCBpcyBub3QgZGVmYXVsdAorICAgICAgICAgICAgLy8gY291bGRuJ3QgZmluZCByZXF1ZXN0ZWQgcmVzb3VyY2UuIEZhbGwgYmFjayB0byBkZWZhdWx0LgorICAgICAgICAgICAga3dWYWwgPSBkZWZTdHI7IC8vIEZhbGwgYmFjayB0byBkZWZhdWx0LgorICAgICAgICAgICAgcGFyZW50ID0gbmV3IFVMb2NhbGUoYmFzZUxvYyk7CisgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHBhcmVudCk7CisgICAgICAgICAgICByZXNEZXB0aCA9IDA7CisgICAgICAgICAgICAvLyBkZXRlcm1pbmUgaW4gd2hpY2ggbG9jYWxlIChpZiBhbnkpIHRoZSBuYW1lZCByZXNvdXJjZSBpcyBsb2NhdGVkCisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXJiID0gci5nZXQocmVzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSB1cmIgPSBpcmIuZ2V0KGt3VmFsKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmYWlsIGJlZm9yZSB0aGlzLi4KKyAgICAgICAgICAgICAgICAgICAgZnVsbEJhc2UgPSByLmdldFVMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmZXRjaGVkIGl0ZW0gKHVyYikgaXMgaW4gYSBkaWZmZXJlbnQgbG9jYWxlIHRoYW4gb3VyIG91dGVyIGxvY2FsZSAoci9mdWxsQmFzZSkKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBhcmUgaW4gYSAnZmFsbGJhY2snIHNpdHVhdGlvbi4gdHJlYXQgYXMgYSBtaXNzaW5nIHJlc291cmNlIHNpdHVhdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgaWYoIWZ1bGxCYXNlLnRvU3RyaW5nKCkuZXF1YWxzKHVyYi5nZXRMb2NhbGUoKS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZnVsbEJhc2UgPSBudWxsOyAvLyBmYWxsYmFjayBjb25kaXRpb24uIExvb3AgYW5kIHRyeSBhZ2Fpbi4KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGZlbGwgYmFjayB0byBhbiBhbmNlc3RvciBvZiB0aGUgb2xkICdkZWZhdWx0JywKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZSBjYWxjdWxhdGUgdGhlICJkZWZhdWx0IiBrZXl3b3JkLgorICAgICAgICAgICAgICAgICAgICBpZiAoKGZ1bGxCYXNlICE9IG51bGwpICYmICgocmVzRGVwdGgpID4gZGVmRGVwdGgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZTdHIgPSBpcmIuZ2V0U3RyaW5nKERFRkFVTFRfVEFHKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZkxvYyA9IHIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmRGVwdGggPSByZXNEZXB0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBlcnJvciwgY29udGludWUgc2VhcmNoLgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZnVsbEJhc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSByLmdldFBhcmVudCgpOworICAgICAgICAgICAgICAgICAgICByZXNEZXB0aCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gd2hpbGUgKChyICE9IG51bGwpICYmIChmdWxsQmFzZSA9PSBudWxsKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZnVsbEJhc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGZpbmQgbG9jYWxlIGNvbnRhaW5pbmcgcmVxdWVzdGVkIG9yIGRlZmF1bHQga2V5d29yZC4iLAorICAgICAgICAgICAgICAgIGJhc2VOYW1lLCBrZXl3b3JkICsgIj0iICsga3dWYWwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlZlN0ci5lcXVhbHMoa3dWYWwpIC8vIGlmIGRlZmF1bHQgd2FzIHJlcXVlc3RlZCBhbmQKKyAgICAgICAgICAgICYmIHJlc0RlcHRoIDw9IGRlZkRlcHRoKSB7IC8vIGRlZmF1bHQgd2FzIHNldCBpbiBzYW1lIGxvY2FsZSBvciBjaGlsZAorICAgICAgICAgICAgcmV0dXJuIGZ1bGxCYXNlOyAvLyBLZXl3b3JkIHZhbHVlIGlzIGRlZmF1bHQgLSBubyBrZXl3b3JkIG5lZWRlZCBpbiBsb2NhbGUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShmdWxsQmFzZS50b1N0cmluZygpICsgIkAiICsga2V5d29yZCArICI9IiArIGt3VmFsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgdHJlZSBwYXRoIGFuZCBrZXl3b3JkLCByZXR1cm4gYSBzdHJpbmcgZW51bWVyYXRpb24gb2YgYWxsIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhhdCBrZXl3b3JkLgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSByZXNvdXJjZSBzcGVjaWZpZXIKKyAgICAgKiBAcGFyYW0ga2V5d29yZCBhIHBhcnRpY3VsYXIga2V5d29yZCB0byBjb25zaWRlciwgbXVzdCBtYXRjaCBhIHRvcCBsZXZlbCByZXNvdXJjZSBuYW1lCisgICAgICogd2l0aGluIHRoZSB0cmVlLiAoaS5lLiAiY29sbGF0aW9ucyIpCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEtleXdvcmRWYWx1ZXMoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcga2V5d29yZCkgeworICAgICAgICBTZXQga2V5d29yZHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBVTG9jYWxlIGxvY2FsZXNbXSA9IGNyZWF0ZVVMb2NhbGVMaXN0KGJhc2VOYW1lLCBJQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYiA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgLy8gZG93bmNhc3QgdG8gSUNVUmVzb3VyY2VCdW5kbGU/CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXJiID0gKElDVVJlc291cmNlQnVuZGxlKSAoYi5nZXRPYmplY3Qoa2V5d29yZCkpOworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIGUgPSBpcmIuZ2V0S2V5cygpOworICAgICAgICAgICAgICAgIE9iamVjdCBzOworICAgICAgICAgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgocyBpbnN0YW5jZW9mIFN0cmluZykgJiYgIURFRkFVTFRfVEFHLmVxdWFscyhzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgYWRkICdkZWZhdWx0JyBpdGVtcworICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuYWRkKHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5lcnIucHJpbnRsbigiRXJyb3IgaW4gLSAiICsgbmV3IEludGVnZXIoaSkudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgIC8vICsgIiAtICIgKyB0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB0aGUgZXJyIC0ganVzdCBza2lwIHRoYXQgcmVzb3VyY2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFN0cmluZ1tdKWtleXdvcmRzLnRvQXJyYXkobmV3IFN0cmluZ1swXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcGVyZm9ybXMgbXVsdGlsZXZlbCBmYWxsYmFjayBmb3IgZmV0Y2hpbmcgaXRlbXMgZnJvbSB0aGUKKyAgICAgKiBidW5kbGUgZS5nOiBJZiByZXNvdXJjZSBpcyBpbiB0aGUgZm9ybSBkZV9fUEhPTkVCT09LeyBjb2xsYXRpb25zeworICAgICAqIGRlZmF1bHR7ICJwaG9uZWJvb2sifSB9IH0gSWYgdGhlIHZhbHVlIG9mICJkZWZhdWx0IiBrZXkgbmVlZHMgdG8gYmUKKyAgICAgKiBhY2Nlc3NlZCwgdGhlbiBkbzogPGNvZGU+CisgICAgICogIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImRlX19QSE9ORUJPT0siKTsKKyAgICAgKiAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzdWx0ID0gbnVsbDsKKyAgICAgKiAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVUmVzb3VyY2VCdW5kbGUpeworICAgICAqICAgICAgcmVzdWx0ID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgYnVuZGxlKS5nZXRXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvZGVmYXVsdCIpOworICAgICAqICB9CisgICAgICogPC9jb2RlPgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYXRoCisgICAgICogICAgICAgICAgICBUaGUgcGF0aCB0byB0aGUgcmVxdWlyZWQgcmVzb3VyY2Uga2V5CisgICAgICogQHJldHVybiByZXNvdXJjZSByZXByZXNlbnRlZCBieSB0aGUga2V5CisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGUgZ2V0V2l0aEZhbGxiYWNrKFN0cmluZyBwYXRoKQorICAgICAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlc3VsdCA9IG51bGw7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGFjdHVhbEJ1bmRsZSA9IHRoaXM7CisKKyAgICAgICAgLy8gbm93IHJlY3VzZSB0byBwaWNrIHVwIHN1YiBsZXZlbHMgb2YgdGhlIGl0ZW1zCisgICAgICAgIHJlc3VsdCA9IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhwYXRoLCBhY3R1YWxCdW5kbGUsIG51bGwpOworCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ2FuJ3QgZmluZCByZXNvdXJjZSBmb3IgYnVuZGxlICIKKyAgICAgICAgICAgICAgICArIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiLCBrZXkgIiArIGdldFR5cGUoKSwKKyAgICAgICAgICAgICAgICBwYXRoLCBnZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyB3aWxsIHRocm93IHR5cGUgbWlzbWF0Y2ggZXhjZXB0aW9uIGlmIHRoZSByZXNvdXJjZSBpcyBub3QgYSBzdHJpbmcKKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZ1dpdGhGYWxsYmFjayhTdHJpbmcgcGF0aCkgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXRXaXRoRmFsbGJhY2socGF0aCkuZ2V0U3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc2V0IG9mIHRoZSBsb2NhbGUgbmFtZXMgc3VwcG9ydGVkIGJ5IGEgY29sbGVjdGlvbiBvZiByZXNvdXJjZQorICAgICAqIGJ1bmRsZXMuCisgICAgICogCisgICAgICogQHBhcmFtIGJ1bmRsZVByZWZpeCB0aGUgcHJlZml4IG9mIHRoZSByZXNvdXJjZSBidW5kbGVzIHRvIHVzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNldCBnZXRBdmFpbGFibGVMb2NhbGVOYW1lU2V0KFN0cmluZyBidW5kbGVQcmVmaXgpIHsKKyAgICAgICAgcmV0dXJuIGdldEF2YWlsRW50cnkoYnVuZGxlUHJlZml4KS5nZXRMb2NhbGVOYW1lU2V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc2V0IG9mIGFsbCB0aGUgbG9jYWxlIG5hbWVzIHN1cHBvcnRlZCBieSBhIGNvbGxlY3Rpb24gb2YKKyAgICAgKiByZXNvdXJjZSBidW5kbGVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU2V0IGdldEZ1bGxMb2NhbGVOYW1lU2V0KCkgeworICAgICAgICByZXR1cm4gZ2V0RnVsbExvY2FsZU5hbWVTZXQoSUNVX0JBU0VfTkFNRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc2V0IG9mIGFsbCB0aGUgbG9jYWxlIG5hbWVzIHN1cHBvcnRlZCBieSBhIGNvbGxlY3Rpb24gb2YKKyAgICAgKiByZXNvdXJjZSBidW5kbGVzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBidW5kbGVQcmVmaXggdGhlIHByZWZpeCBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlcyB0byB1c2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTZXQgZ2V0RnVsbExvY2FsZU5hbWVTZXQoU3RyaW5nIGJ1bmRsZVByZWZpeCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxFbnRyeShidW5kbGVQcmVmaXgpLmdldEZ1bGxMb2NhbGVOYW1lU2V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc2V0IG9mIHRoZSBsb2NhbGUgbmFtZXMgc3VwcG9ydGVkIGJ5IGEgY29sbGVjdGlvbiBvZiByZXNvdXJjZQorICAgICAqIGJ1bmRsZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTZXQgZ2V0QXZhaWxhYmxlTG9jYWxlTmFtZVNldCgpIHsKKyAgICAgICAgcmV0dXJuIGdldEF2YWlsYWJsZUxvY2FsZU5hbWVTZXQoSUNVX0JBU0VfTkFNRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBpbnN0YWxsZWQgaW4gdGhlIHNwZWNpZmllZCBidW5kbGVzLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxFbnRyeShiYXNlTmFtZSkuZ2V0VUxvY2FsZUxpc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBVTG9jYWxlcyBpbnN0YWxsZWQgdGhlIGJhc2UgYnVuZGxlLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVX0JBU0VfTkFNRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBpbnN0YWxsZWQgaW4gdGhlIHNwZWNpZmllZCBidW5kbGVzLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcyhTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldEF2YWlsRW50cnkoYmFzZU5hbWUpLmdldExvY2FsZUxpc3QoKTsKKyAgICB9CisKKyAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMgaW5zdGFsbGVkIHRoZSBiYXNlIGJ1bmRsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbEVudHJ5KElDVV9CQVNFX05BTUUpLmdldExvY2FsZUxpc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgbGlzdCBvZiBVTG9jYWxlcyB0byBhIGxpc3Qgb2YgTG9jYWxlcy4gIFVMb2NhbGVzIHdpdGggYSBzY3JpcHQgY29kZSB3aWxsIG5vdCBiZSBjb252ZXJ0ZWQKKyAgICAgKiBzaW5jZSB0aGV5IGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcyBhIExvY2FsZS4gIFRoaXMgbWVhbnMgdGhhdCB0aGUgdHdvIGxpc3RzIHdpbGwgPGI+bm90PC9iPiBtYXRjaAorICAgICAqIG9uZS10by1vbmUsIGFuZCB0aGF0IHRoZSByZXR1cm5lZCBsaXN0IG1pZ2h0IGJlIHNob3J0ZXIgdGhhbiB0aGUgaW5wdXQgbGlzdC4KKyAgICAgKiBAcGFyYW0gdWxvY2FsZXMgYSBsaXN0IG9mIFVMb2NhbGVzIHRvIGNvbnZlcnQgdG8gYSBsaXN0IG9mIExvY2FsZXMuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBjb252ZXJ0ZWQgVUxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlW10gZ2V0TG9jYWxlTGlzdChVTG9jYWxlW10gdWxvY2FsZXMpIHsKKyAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdWxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZSBVTG9jYWxlIGRvZXMgbm90IGNvbnRhaW4gYSBzY3JpcHQgY29kZQorICAgICAgICAgICAgLy8gb25seSB0aGVuIGNvbnZlcnQgaXQgdG8gYSBMb2NhbGUgb2JqZWN0CisgICAgICAgICAgICBpZiAodWxvY2FsZXNbaV0uZ2V0U2NyaXB0KCkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGxpc3QuYWRkKHVsb2NhbGVzW2ldLnRvTG9jYWxlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAoTG9jYWxlW10pIGxpc3QudG9BcnJheShuZXcgTG9jYWxlW2xpc3Quc2l6ZSgpXSk7CisgICAgfQorIAorICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRLZXlzKCkgeworICAgICAgICBpbml0S2V5c1ZlY3RvcigpOworICAgICAgICByZXR1cm4ga2V5cy5lbGVtZW50cygpOworICAgIH0KKyAgICBwcml2YXRlIFZlY3RvciBrZXlzID0gbnVsbDsKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCB2b2lkIGluaXRLZXlzVmVjdG9yKCl7CisgICAgICAgIGlmKGtleXMhPW51bGwpeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVudCA9IHRoaXM7CisgICAgICAgIGtleXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIC8vd2hpbGUoY3VycmVudCE9bnVsbCl7CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBlID0gdGhpcy5oYW5kbGVHZXRLZXlzKCk7CisgICAgICAgICAgICB3aGlsZShlLmhhc01vcmVFbGVtZW50cygpKXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZWxlbSA9IChTdHJpbmcpZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIGlmKCFrZXlzLmNvbnRhaW5zKGVsZW0pKXsKKyAgICAgICAgICAgICAgICAgICAga2V5cy5hZGQoZWxlbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIC8vICBjdXJyZW50ID0gKElDVVJlc291cmNlQnVuZGxlKWN1cnJlbnQuZ2V0UGFyZW50KCk7CisgICAgICAgIC8vfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgRW51bWVyYXRpb24gaGFuZGxlR2V0S2V5cygpeworICAgICAgICBWZWN0b3Iga2V5cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXRlbSA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBpdGVtID0gZ2V0KGkpOworICAgICAgICAgICAga2V5cy5hZGQoaXRlbS5nZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGtleXMuZWxlbWVudHMoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGNyZWF0ZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlSUQsIENsYXNzTG9hZGVyIHJvb3QpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYiA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5jcmVhdGVCdW5kbGUoYmFzZU5hbWUsIGxvY2FsZUlELCByb290KTsKKyAgICAgICAgaWYoYj09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgYnVuZGxlICIrIGJhc2VOYW1lKyIvIisgbG9jYWxlSUQrIi5yZXMiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYjsKKyAgICB9CisKKyAgICAvLz09PT09PSBwcm90ZWN0ZWQgbWVtYmVycyA9PT09PT09PT09PT09PQorICAgIHByb3RlY3RlZCBTdHJpbmcga2V5OworICAgIHByb3RlY3RlZCBpbnQgc2l6ZSA9IDE7CisgICAgcHJvdGVjdGVkIFN0cmluZyByZXNQYXRoOworICAgIHByb3RlY3RlZCBsb25nIHJlc291cmNlID0gUkVTX0JPR1VTOworICAgIHByb3RlY3RlZCBib29sZWFuIGlzVG9wTGV2ZWwgPSBmYWxzZTsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBVTlNJR05FRF9JTlRfTUFTSyA9IDB4ZmZmZmZmZmZMOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIFJFU19CT0dVUyA9IDB4ZmZmZmZmZmY7CisKKyAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBrZXksIEhhc2hNYXAgdGFibGUsCisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBvZiB0aGlzIHJlc291cmNlIGJ1bmRsZS4gVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgYWZ0ZXIKKyAgICAgKiBhIGNhbGwgdG8gZ2V0QnVuZGxlKCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHJlc291cmNlIGJ1bmRsZSByZXR1cm5lZAorICAgICAqIHJlYWxseSBjb3JyZXNwb25kcyB0byB0aGUgcmVxdWVzdGVkIGxvY2FsZSBvciBpcyBhIGZhbGxiYWNrLgorICAgICAqIAorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBvZiB0aGlzIHJlc291cmNlIGJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gZ2V0VUxvY2FsZSgpLnRvTG9jYWxlKCk7CisgICAgfQorCisgICAgLy8gdGhpcyBtZXRob2QgaXMgZGVjbGFyZWQgaW4gUmVzb3VyY2VCdW5kbGUgY2xhc3MKKyAgICAvLyBzbyBjYW5ub3QgY2hhbmdlIHRoZSBzaWduYXR1cmUKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUdldE9iamVjdChTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBoYW5kbGVHZXRPYmplY3RJbXBsKGtleSwgdGhpcyk7CisgICAgfQorCisgICAgLy8gVG8gZmFjaWxpdGF0ZSBYUGF0aCBzdHlsZSBhbGlhc2VzIHdlIG5lZWQgYSB3YXkgdG8gcGFzcyB0aGUgcmVmZXJlbmNlCisgICAgLy8gdG8gcmVxdWVzdGVkIGxvY2FsZS4gVGhlIG9ubHkgd2F5IEkgY291bGQgZmlndXJlIG91dCBpcyB0byBpbXBsZW1lbnQKKyAgICAvLyB0aGUgbG9vayB1cCBsb2dpYyBoZXJlLiBUaGlzIGhhcyBhIGRpc2FkdmFudGFnZSB0aGF0IGlmIHRoZSBjbGllbnQKKyAgICAvLyBsb2FkcyBhbiBJQ1VSZXNvdXJjZUJ1bmRsZSwgY2FsbHMgUmVzb3VyY2VCdW5kbGUuZ2V0T2JqZWN0IG1ldGhvZAorICAgIC8vIHdpdGggYSBrZXkgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgYnVuZGxlIHRoZW4gdGhlIGxvb2t1cCBpcworICAgIC8vIGRvbmUgdHdpY2UgYmVmb3JlIHRocm93aW5nIGEgTWlzc2luZ1Jlc291cmNlRXhwZWN0aW9uLgorICAgIHByaXZhdGUgT2JqZWN0IGhhbmRsZUdldE9iamVjdEltcGwoU3RyaW5nIGtleSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIE9iamVjdCBvYmogPSByZXNvbHZlT2JqZWN0KGtleSwgcmVxdWVzdGVkKTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBwYXJlbnQgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIGdldFBhcmVudCgpOworICAgICAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgb2JqID0gcGFyZW50LmhhbmRsZUdldE9iamVjdEltcGwoa2V5LCByZXF1ZXN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9iaiA9PSBudWxsKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJDYW4ndCBmaW5kIHJlc291cmNlIGZvciBidW5kbGUgIgorICAgICAgICAgICAgICAgICAgICArIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiLCBrZXkgIiArIGtleSwKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSwga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIHByaXZhdGUgT2JqZWN0IHJlc29sdmVPYmplY3QoU3RyaW5nIGtleSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChnZXRUeXBlKCkgPT0gU1RSSU5HKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgb2JqID0gaGFuZGxlR2V0KGtleSwgcmVxdWVzdGVkKTsKKyAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAob2JqLmdldFR5cGUoKSA9PSBTVFJJTkcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqLmdldFN0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAob2JqLmdldFR5cGUoKSA9PSBBUlJBWSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqLmhhbmRsZUdldFN0cmluZ0FycmF5KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcga2V5LAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmdbXSBoYW5kbGVHZXRTdHJpbmdBcnJheSgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PSBwcml2YXRlcyA9PT09PT09PT09CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9SRVNPVVJDRV9JTkRFWCA9ICJyZXNfaW5kZXgiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfVEFHID0gImRlZmF1bHQiOworCisgICAgLy8gRmxhZyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIGRlYnVnZ2luZyBjb2RlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoImxvY2FsZWRhdGEiKTsKKworICAgIC8vIENhY2hlIGZvciBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBHRVRfQVZBSUxBQkxFX0NBQ0hFOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVMb2NhbGVbXSBjcmVhdGVVTG9jYWxlTGlzdChTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBDbGFzc0xvYWRlciByb290KSB7CisgICAgICAgIC8vIHRoZSBjYW5uZWQgbGlzdCBpcyBhIHN1YnNldCBvZiBhbGwgdGhlIGF2YWlsYWJsZSAucmVzIGZpbGVzLCB0aGUgaWRlYQorICAgICAgICAvLyBpcyB3ZSBkb24ndCBleHBvcnQgdGhlbQorICAgICAgICAvLyBhbGwuIGdvdHRhIGJlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLCBzaW5jZSB0byBhZGQgYSBsb2NhbGUgeW91IGhhdmUKKyAgICAgICAgLy8gdG8gdXBkYXRlIHRoaXMgbGlzdCwKKyAgICAgICAgLy8gYW5kIGl0J3MgZW1iZWRkZWQgaW4gb3VyIGJpbmFyeSByZXNvdXJjZXMuCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgY3JlYXRlQnVuZGxlKGJhc2VOYW1lLCBJQ1VfUkVTT1VSQ0VfSU5ERVgsIHJvb3QpOworICAgICAgICAKKyAgICAgICAgYnVuZGxlID0gYnVuZGxlLmdldChJTlNUQUxMRURfTE9DQUxFUyk7CisgICAgICAgIGludCBsZW5ndGggPSBidW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbbGVuZ3RoXTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBpdGVyID0gYnVuZGxlLmdldEl0ZXJhdG9yKCk7CisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBsb2NhbGVzW2krK10gPSBuZXcgVUxvY2FsZShpdGVyLm5leHQoKS5nZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICAgICAgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlW10gY3JlYXRlTG9jYWxlTGlzdChTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gZ2V0QXZhaWxFbnRyeShiYXNlTmFtZSkuZ2V0VUxvY2FsZUxpc3QoKTsKKyAgICAgICAgcmV0dXJuIGdldExvY2FsZUxpc3QodWxvY2FsZXMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNyZWF0ZUxvY2FsZU5hbWVBcnJheShTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBDbGFzc0xvYWRlciByb290KSB7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgY3JlYXRlQnVuZGxlKCBiYXNlTmFtZSwgSUNVX1JFU09VUkNFX0lOREVYLCByb290KTsKKyAgICAgICAgYnVuZGxlID0gYnVuZGxlLmdldChJTlNUQUxMRURfTE9DQUxFUyk7CisgICAgICAgIGludCBsZW5ndGggPSBidW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFN0cmluZ1tdIGxvY2FsZXMgPSBuZXcgU3RyaW5nW2xlbmd0aF07CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IgaXRlciA9IGJ1bmRsZS5nZXRJdGVyYXRvcigpOworICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgbG9jYWxlc1tpKytdID0gaXRlci5uZXh0KCkuZ2V0S2V5KCk7CisgICAgICAgIH0KKyAgICAgICAgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXJyYXlMaXN0IGNyZWF0ZUZ1bGxMb2NhbGVOYW1lQXJyYXkoCisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgYmFzZU5hbWUsIGZpbmFsIENsYXNzTG9hZGVyIHJvb3QpIHsKKworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IChBcnJheUxpc3QpIGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlcgorICAgICAgICAgICAgLmRvUHJpdmlsZWdlZChuZXcgamF2YS5zZWN1cml0eS5Qcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgcnVuKCkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZWJTcGhlcmUgY2xhc3MgbG9hZGVyIHdpbGwgcmV0dXJuIG51bGwgZm9yIGEgcmF3CisgICAgICAgICAgICAgICAgICAgIC8vIGRpcmVjdG9yeSBuYW1lIHdpdGhvdXQgdHJhaWxpbmcgc2xhc2gKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJuID0gYmFzZU5hbWUuZW5kc1dpdGgoIi8iKQorICAgICAgICAgICAgICAgICAgICAgICAgPyBiYXNlTmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgOiBiYXNlTmFtZSArICIvIjsKKworICAgICAgICAgICAgICAgICAgICAvLyBsb29rIGZvciBwcmVidWlsdCBpbmRpY2VzIGZpcnN0CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBzID0gcm9vdC5nZXRSZXNvdXJjZUFzU3RyZWFtKGJuICsgSUNVX1JFU09VUkNFX0lOREVYICsgIi50eHQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIocywgIkFTQ0lJIikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgobGluZSA9IGJyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgIT0gMCAmJiAhbGluZS5zdGFydHNXaXRoKCIjIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2FsbG93IGl0CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBVUkwgdXJsID0gcm9vdC5nZXRSZXNvdXJjZShibik7CisgICAgICAgICAgICAgICAgICAgIFVSTEhhbmRsZXIgaGFuZGxlciA9IFVSTEhhbmRsZXIuZ2V0KHVybCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgVVJMVmlzaXRvciB2ID0gbmV3IFVSTFZpc2l0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMuZW5kc1dpdGgoIi5yZXMiKSAmJiAhInJlc19pbmRleC5yZXMiLmVxdWFscyhzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQocy5zdWJzdHJpbmcoMCwgcy5sZW5ndGgoKSAtIDQpKTsgLy8gc3RyaXAgJy5yZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlci5ndWlkZSh2LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlzdDsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNldCBjcmVhdGVGdWxsTG9jYWxlTmFtZVNldChTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBjcmVhdGVGdWxsTG9jYWxlTmFtZUFycmF5KGJhc2VOYW1lLElDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaWYobGlzdD09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCAiKyAgSUNVX1JFU09VUkNFX0lOREVYLCAiIiwgIiIpOworICAgICAgICB9CisgICAgICAgIHNldC5hZGRBbGwobGlzdCk7CisgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQoc2V0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTZXQgY3JlYXRlTG9jYWxlTmFtZVNldChTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZXMgPSBjcmVhdGVMb2NhbGVOYW1lQXJyYXkoYmFzZU5hbWUsIElDVV9EQVRBX0NMQVNTX0xPQURFUik7CisKKyAgICAgICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgIHNldC5hZGRBbGwoQXJyYXlzLmFzTGlzdChsb2NhbGVzKSk7CisgICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHNldCk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvdWxkbid0IGZpbmQgaW5kZXggZm9yIGJ1bmRsZU5hbWU6ICIgKyBiYXNlTmFtZSk7CisgICAgICAgICAgICAgICAgVGhyZWFkLmR1bXBTdGFjaygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy5FTVBUWV9TRVQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSG9sZHMgdGhlIHByZWZpeCwgYW5kIGxhemlseSBjcmVhdGVzIHRoZSBMb2NhbGVbXSBsaXN0IG9yIHRoZSBsb2NhbGUgbmFtZQorICAgICAqIFNldCBhcyBuZWVkZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQXZhaWxFbnRyeSB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHByZWZpeDsKKyAgICAgICAgcHJpdmF0ZSBVTG9jYWxlW10gdWxvY2FsZXM7CisgICAgICAgIHByaXZhdGUgTG9jYWxlW10gbG9jYWxlczsKKyAgICAgICAgcHJpdmF0ZSBTZXQgbmFtZVNldDsKKyAgICAgICAgcHJpdmF0ZSBTZXQgZnVsbE5hbWVTZXQ7CisKKyAgICAgICAgQXZhaWxFbnRyeShTdHJpbmcgcHJlZml4KSB7CisgICAgICAgICAgICB0aGlzLnByZWZpeCA9IHByZWZpeDsKKyAgICAgICAgfQorCisgICAgICAgIFVMb2NhbGVbXSBnZXRVTG9jYWxlTGlzdCgpIHsKKyAgICAgICAgICAgIGlmICh1bG9jYWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdWxvY2FsZXMgPSBjcmVhdGVVTG9jYWxlTGlzdChwcmVmaXgsIElDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlW10gZ2V0TG9jYWxlTGlzdCgpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVzID0gY3JlYXRlTG9jYWxlTGlzdChwcmVmaXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgU2V0IGdldExvY2FsZU5hbWVTZXQoKSB7CisgICAgICAgICAgICBpZiAobmFtZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbmFtZVNldCA9IGNyZWF0ZUxvY2FsZU5hbWVTZXQocHJlZml4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuYW1lU2V0OworICAgICAgICB9CisgICAgICAgIFNldCBnZXRGdWxsTG9jYWxlTmFtZVNldCgpIHsKKyAgICAgICAgICAgIGlmIChmdWxsTmFtZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZnVsbE5hbWVTZXQgPSBjcmVhdGVGdWxsTG9jYWxlTmFtZVNldChwcmVmaXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZ1bGxOYW1lU2V0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RvcmVzIHRoZSBsb2NhbGUgaW5mb3JtYXRpb24gaW4gYSBjYWNoZSBhY2Nlc3NlZCBieSBrZXkgKGJ1bmRsZSBwcmVmaXgpLgorICAgICAqIFRoZSBjYWNoZWQgb2JqZWN0cyBhcmUgQXZhaWxFbnRyaWVzLiBUaGUgY2FjaGUgaXMgaGVsZCBieSBhIFNvZnRSZWZlcmVuY2UKKyAgICAgKiBzbyBpdCBjYW4gYmUgR0MnZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBBdmFpbEVudHJ5IGdldEF2YWlsRW50cnkoU3RyaW5nIGtleSkgeworICAgICAgICBBdmFpbEVudHJ5IGFlID0gbnVsbDsKKyAgICAgICAgTWFwIGxjYWNoZSA9IG51bGw7CisgICAgICAgIGlmIChHRVRfQVZBSUxBQkxFX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxjYWNoZSA9IChNYXApIEdFVF9BVkFJTEFCTEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgICAgICBpZiAobGNhY2hlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhZSA9IChBdmFpbEVudHJ5KSBsY2FjaGUuZ2V0KGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWUgPT0gbnVsbCkgeworICAgICAgICAgICAgYWUgPSBuZXcgQXZhaWxFbnRyeShrZXkpOworICAgICAgICAgICAgaWYgKGxjYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGNhY2hlID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgICAgICBsY2FjaGUucHV0KGtleSwgYWUpOworICAgICAgICAgICAgICAgIEdFVF9BVkFJTEFCTEVfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShsY2FjaGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsY2FjaGUucHV0KGtleSwgYWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGFlOworICAgIH0KKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgSUNVUmVzb3VyY2VCdW5kbGUgZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKFN0cmluZyBwYXRoLAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYWN0dWFsQnVuZGxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gbnVsbDsKKyAgICAgICAgaWYgKHJlcXVlc3RlZCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXF1ZXN0ZWQgPSBhY3R1YWxCdW5kbGU7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGFjdHVhbEJ1bmRsZSAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHBhdGgsICIvIik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW50ID0gYWN0dWFsQnVuZGxlOworICAgICAgICAgICAgd2hpbGUgKHN0Lmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdWJLZXkgPSBzdC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICBzdWIgPSBjdXJyZW50LmhhbmRsZUdldChzdWJLZXksIHJlcXVlc3RlZCk7CisgICAgICAgICAgICAgICAgaWYgKHN1YiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ViOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN1YiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy93ZSBmb3VuZCBpdAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFjdHVhbEJ1bmRsZS5yZXNQYXRoLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBwYXRoID0gYWN0dWFsQnVuZGxlLnJlc1BhdGggKyAiLyIgKyBwYXRoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgbm90IHRyeSB0aGUgcGFyZW50IGJ1bmRsZQorICAgICAgICAgICAgYWN0dWFsQnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBhY3R1YWxCdW5kbGUuZ2V0UGFyZW50KCk7CisKKyAgICAgICAgfQorICAgICAgICBpZihzdWIgIT0gbnVsbCl7CisgICAgICAgICAgICBzZXRMb2FkaW5nU3RhdHVzKHN1YiwgcmVxdWVzdGVkLmdldExvY2FsZUlEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdWI7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgaWYgKG90aGVyIGluc3RhbmNlb2YgSUNVUmVzb3VyY2VCdW5kbGUpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG8gPSAoSUNVUmVzb3VyY2VCdW5kbGUpIG90aGVyOworICAgICAgICAgICAgaWYgKGdldEJhc2VOYW1lKCkuZXF1YWxzKG8uZ2V0QmFzZU5hbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgJiYgZ2V0TG9jYWxlSUQoKS5lcXVhbHMoby5nZXRMb2NhbGVJRCgpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgLy8gVGhpcyBtZXRob2QgaXMgZm9yIHN1cGVyIGNsYXNzJ3MgaW5zdGFudGlhdGVCdW5kbGUgbWV0aG9kCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTG9hZGVyIHJvb3QsIGJvb2xlYW4gZGlzYWJsZUZhbGxiYWNrKXsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGIgPSBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlSUQsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIGJ1bmRsZSAiKyBiYXNlTmFtZSsiLyIrIGxvY2FsZUlEKyIucmVzIiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorICAgIC8vICByZWN1cnNpdmVseSBidWlsZCBidW5kbGUgLi4gb3Zlci1yaWRlIHN1cGVyIGNsYXNzIG1ldGhvZC4KKyAgICBwcm90ZWN0ZWQgc3luY2hyb25pemVkIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgaW5zdGFudGlhdGVCdW5kbGUoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjayl7CisgICAgICAgIFVMb2NhbGUgZGVmYXVsdExvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IGxvY2FsZUlEOworICAgICAgICBpZihsb2NhbGVOYW1lLmluZGV4T2YoJ0AnKT4wKXsKKyAgICAgICAgICAgIGxvY2FsZU5hbWUgPSBVTG9jYWxlLmdldEJhc2VOYW1lKGxvY2FsZUlEKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRGdWxsTmFtZShiYXNlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpbG9hZEZyb21DYWNoZShyb290LCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgIAorICAgICAgICAvLyBoZXJlIHdlIGFzc3VtZSB0aGF0IGphdmEgdHlwZSByZXNvdXJjZSBidW5kbGUgb3JnYW5pemF0aW9uCisgICAgICAgIC8vIGlzIHJlcXVpcmVkIHRoZW4gdGhlIGJhc2UgbmFtZSBjb250YWlucyAnLicgZWxzZSAKKyAgICAgICAgLy8gdGhlIHJlc291cmNlIG9yZ2FuaXphdGlvbiBpcyBvZiBJQ1UgdHlwZQorICAgICAgICAvLyBzbyBjbGllbnRzIGNhbiBpbnN0YW50aWF0ZSByZXNvdXJjZXMgb2YgdGhlIHR5cGUKKyAgICAgICAgLy8gY29tLm15Y29tcGFueS5kYXRhLk15TG9jYWxlRWxlbWVudHNfZW4ucmVzIGFuZCAKKyAgICAgICAgLy8gY29tLm15Y29tcGFueS5kYXRhLk15TG9jYWxlRWxlbWVudHMucmVzCisgICAgICAgIC8vCisgICAgICAgIGZpbmFsIFN0cmluZyByb290TG9jYWxlID0gKGJhc2VOYW1lLmluZGV4T2YoJy4nKT09LTEpID8gInJvb3QiIDogIiI7CisgICAgICAgIGZpbmFsIFN0cmluZyBkZWZhdWx0SUQgPSBVTG9jYWxlLmdldERlZmF1bHQoKS50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgaWYobG9jYWxlTmFtZS5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgIGxvY2FsZU5hbWUgPSByb290TG9jYWxlOyAgIAorICAgICAgICB9CisgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkNyZWF0aW5nICIrZnVsbE5hbWUrICIgY3VycmVudGx5IGIgaXMgIitiKTsKKyAgICAgICAgaWYgKGIgPT0gbnVsbCkgeworICAgICAgICAgICAgYiA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5jcmVhdGVCdW5kbGUoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihERUJVRylTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBidW5kbGUgY3JlYXRlZCBpczogIitiKyIgYW5kIGRpc2FibGVGYWxsYmFjaz0iK2Rpc2FibGVGYWxsYmFjaysiIGFuZCBidW5kbGUuZ2V0Tm9GYWxsYmFjaz0iKyhiIT1udWxsICYmIGIuZ2V0Tm9GYWxsYmFjaygpKSk7CisgICAgICAgICAgICBpZihkaXNhYmxlRmFsbGJhY2sgfHwgKGIhPW51bGwgJiYgYi5nZXROb0ZhbGxiYWNrKCkpKXsKKyAgICAgICAgICAgICAgICBhZGRUb0NhY2hlKHJvb3QsIGZ1bGxOYW1lLCBkZWZhdWx0TG9jYWxlLCBiKTsKKyAgICAgICAgICAgICAgICAvLyBubyBmYWxsYmFjayBiZWNhdXNlIHRoZSBjYWxsZXIgc2FpZCBzbyBvciBiZWNhdXNlIHRoZSBidW5kbGUgc2F5cyBzbworICAgICAgICAgICAgICAgIHJldHVybiBiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBmYWxsYmFjayB0byBsb2NhbGUgSUQgcGFyZW50CisgICAgICAgICAgICBpZihiID09IG51bGwpeworICAgICAgICAgICAgICAgIGludCBpID0gbG9jYWxlTmFtZS5sYXN0SW5kZXhPZignXycpOworICAgICAgICAgICAgICAgIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gbG9jYWxlTmFtZS5zdWJzdHJpbmcoMCwgaSk7CisgICAgICAgICAgICAgICAgICAgIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsIHRlbXAsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgICAgIGlmKGIhPW51bGwgJiYgYi5nZXRVTG9jYWxlKCkuZXF1YWxzKHRlbXApKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIuc2V0TG9hZGluZ1N0YXR1cyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBpZihkZWZhdWx0SUQuaW5kZXhPZihsb2NhbGVOYW1lKT09LTEpeworICAgICAgICAgICAgICAgICAgICAgICAgYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgZGVmYXVsdElELCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYiE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi5zZXRMb2FkaW5nU3RhdHVzKElDVVJlc291cmNlQnVuZGxlLkZST01fREVGQVVMVCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKHJvb3RMb2NhbGUubGVuZ3RoKCkhPTApeworICAgICAgICAgICAgICAgICAgICAgICAgYiA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5jcmVhdGVCdW5kbGUoYmFzZU5hbWUsIHJvb3RMb2NhbGUsIHJvb3QpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGIhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIuc2V0TG9hZGluZ1N0YXR1cyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX1JPT1QpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIHBhcmVudCA9IG51bGw7CisgICAgICAgICAgICAgICAgbG9jYWxlTmFtZSA9IGIuZ2V0TG9jYWxlSUQoKTsKKyAgICAgICAgICAgICAgICBpbnQgaSA9IGxvY2FsZU5hbWUubGFzdEluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBhZGRUb0NhY2hlKHJvb3QsIGZ1bGxOYW1lLCBkZWZhdWx0TG9jYWxlLCBiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlTmFtZS5zdWJzdHJpbmcoMCwgaSksIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYoIWxvY2FsZU5hbWUuZXF1YWxzKHJvb3RMb2NhbGUpKXsKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsIHJvb3RMb2NhbGUsIHJvb3QsIHRydWUpOyAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZighYi5lcXVhbHMocGFyZW50KSl7CisgICAgICAgICAgICAgICAgICAgIGIuc2V0UGFyZW50KHBhcmVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBiOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFjZjQzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhCkBAIC0wLDAgKzEsNzI0IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworLy8jZW5kaWYKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGVJbXBsIGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgIC8vcHJvdGVjdGVkIGJ5dGVbXSB2ZXJzaW9uOworICAgIHByaXZhdGUgYnl0ZVtdIHJhd0RhdGE7CisgICAgcHJpdmF0ZSBsb25nIHJvb3RSZXNvdXJjZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gbm9GYWxsYmFjazsKKworICAgIHByaXZhdGUgU3RyaW5nIGxvY2FsZUlEOworICAgIHByaXZhdGUgU3RyaW5nIGJhc2VOYW1lOworICAgIHByaXZhdGUgVUxvY2FsZSB1bG9jYWxlOworICAgIHByaXZhdGUgQ2xhc3NMb2FkZXIgbG9hZGVyOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYmFzZU5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQKKyAgICAgKiBAcGFyYW0gcm9vdAorICAgICAqIEByZXR1cm4gdGhlIG5ldyBidW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGNyZWF0ZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlSUQsIENsYXNzTG9hZGVyIHJvb3QpIHsKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlciByZWFkZXIgPSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRSZWFkZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VOYW1lLCBsb2NhbGVJRCwgcm9vdCk7CisKKyAgICAgICAgLy8gY291bGQgbm90IG9wZW4gdGhlIC5yZXMgZmlsZSBzbyByZXR1cm4gbnVsbAorICAgICAgICBpZiAocmVhZGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJbXBsIGJ1bmRsZSA9IG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwocmVhZGVyLAorICAgICAgICAgICAgICAgIGJhc2VOYW1lLCBsb2NhbGVJRCwgcm9vdCk7CisgICAgICAgIHJldHVybiBidW5kbGUuZ2V0QnVuZGxlKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgcmV0dXJuIChVUmVzb3VyY2VCdW5kbGUpIHBhcmVudDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRQYXJlbnQoUmVzb3VyY2VCdW5kbGUgcGFyZW50KSB7CisgICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbm9GYWxsYmFjayBmbGFnIHNwZWNpZmllZCBpbiB0aGUgbG9hZGVkIGJ1bmRsZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBub0ZhbGxiYWNrIGZsYWcuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gZ2V0Tm9GYWxsYmFjaygpIHsKKyAgICAgICAgcmV0dXJuIG5vRmFsbGJhY2s7CisgICAgfQorCisgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGUoKSB7CisgICAgICAgIGludCB0eXBlID0gUkVTX0dFVF9UWVBFKHJvb3RSZXNvdXJjZSk7CisgICAgICAgIGlmICh0eXBlID09IFRBQkxFKSB7CisgICAgICAgICAgICBSZXNvdXJjZVRhYmxlIHRhYmxlID0gbmV3IFJlc291cmNlVGFibGUobnVsbCwgcm9vdFJlc291cmNlLCAiIiwgdHJ1ZSk7CisgICAgICAgICAgICBpZih0YWJsZS5zaXplPT0xKXsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiID0gdGFibGUuaGFuZGxlR2V0KDAsIHRhYmxlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbUtleSA9IGIuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gJSVBTElBUyBpcyBzdWNoIGEgaGFjayEKKyAgICAgICAgICAgICAgICBpZiAoaXRlbUtleS5lcXVhbHMoIiUlQUxJQVMiKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbG9jYWxlID0gYi5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYWN0dWFsID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoUmVzb3VyY2VUYWJsZSkgYWN0dWFsOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFRBQkxFMzIpIHsKKworICAgICAgICAgICAgLy8gZ2VucmIgZG9lcyBub3QgZ2VuZXJhdGUgVGFibGUzMiB3aXRoICUlQUxJQVMKKyAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VUYWJsZTMyKG51bGwsIHJvb3RSZXNvdXJjZSwgIiIsIHRydWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiSW52YWxpZCBmb3JtYXQgZXJyb3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlSW1wbChJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlciByZWFkZXIsIFN0cmluZyBiYXNlTmFtZSwKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVJRCwgQ2xhc3NMb2FkZXIgbG9hZGVyKSB7CisgICAgICAgIHRoaXMucmF3RGF0YSA9IHJlYWRlci5nZXREYXRhKCk7CisgICAgICAgIHRoaXMucm9vdFJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIHJlYWRlci5nZXRSb290UmVzb3VyY2UoKTsKKyAgICAgICAgdGhpcy5ub0ZhbGxiYWNrID0gcmVhZGVyLmdldE5vRmFsbGJhY2soKTsKKyAgICAgICAgdGhpcy5iYXNlTmFtZSA9IGJhc2VOYW1lOworICAgICAgICB0aGlzLmxvY2FsZUlEID0gbG9jYWxlSUQ7CisgICAgICAgIHRoaXMudWxvY2FsZSA9IG5ldyBVTG9jYWxlKGxvY2FsZUlEKTsKKyAgICAgICAgdGhpcy5sb2FkZXIgPSBsb2FkZXI7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBpbnQgUkVTX0dFVF9UWVBFKGxvbmcgcmVzKSB7CisgICAgICAgIHJldHVybiAoaW50KSAoKHJlcykgPj4gMjhMKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJFU19HRVRfT0ZGU0VUKGxvbmcgcmVzKSB7CisgICAgICAgIHJldHVybiAoaW50KSAoKHJlcyAmIDB4MGZmZmZmZmYpICogNCk7CisgICAgfQorICAgIC8qIGdldCBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgdmFsdWVzIGRpcmVjdGx5IGZyb20gdGhlIFJlc291cmNlIGhhbmRsZSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVNfR0VUX0lOVChsb25nIHJlcykgeworICAgICAgICByZXR1cm4gKCgoaW50KSAoKHJlcykgPDwgNEwpKSA+PiA0TCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgUkVTX0dFVF9VSU5UKGxvbmcgcmVzKSB7CisgICAgICAgIGxvbmcgdCA9ICgocmVzKSAmIDB4MGZmZmZmZmZMKTsKKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ0J1ZmZlciBSRVNfR0VUX0tFWShieXRlW10gcmF3RGF0YSwKKyAgICAgICAgICAgIGludCBrZXlPZmZzZXQpIHsKKyAgICAgICAgY2hhciBjaCA9IDB4RkZGRjsgLy9zZW50aW5lbAorICAgICAgICBTdHJpbmdCdWZmZXIga2V5ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB3aGlsZSAoKGNoID0gKGNoYXIpIHJhd0RhdGFba2V5T2Zmc2V0XSkgIT0gMCkgeworICAgICAgICAgICAga2V5LmFwcGVuZChjaCk7CisgICAgICAgICAgICBrZXlPZmZzZXQrKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ga2V5OworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0SW50T2Zmc2V0KGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIChvZmZzZXQgKiA0KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldENoYXJPZmZzZXQoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gKG9mZnNldCAqIDIpOworICAgIH0KKyAgICBwcml2YXRlIGZpbmFsIElDVVJlc291cmNlQnVuZGxlIGNyZWF0ZUJ1bmRsZU9iamVjdChTdHJpbmcga2V5LAorICAgICAgICAgICAgbG9uZyByZXNvdXJjZSwgU3RyaW5nIHJlc1BhdGgsIEhhc2hNYXAgdGFibGUsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAvL2lmIChyZXNvdXJjZSAhPSBSRVNfQk9HVVMpIHsKKyAgICAgICAgc3dpdGNoIChSRVNfR0VUX1RZUEUocmVzb3VyY2UpKSB7CisgICAgICAgICAgICBjYXNlIFNUUklORyA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlU3RyaW5nKGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBCSU5BUlkgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUJpbmFyeShrZXksIHJlc1BhdGgsIHJlc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQUxJQVMgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRSZXNvdXJjZShrZXksIHJlc291cmNlLCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgSU5UIDogeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VJbnQoa2V5LCByZXNQYXRoLCByZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIElOVF9WRUNUT1IgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUludFZlY3RvcihrZXksIHJlc1BhdGgsIHJlc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQVJSQVkgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUFycmF5KGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBUQUJMRTMyIDogeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VUYWJsZTMyKGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBUQUJMRSA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlVGFibGUoa2V5LCByZXNQYXRoLCByZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJUaGUgcmVzb3VyY2UgdHlwZSBpcyB1bmtub3duIik7CisgICAgICAgIH0KKyAgICAgICAgLy99CisgICAgICAgIC8vcmV0dXJuIG51bGw7CisgICAgfQorICAgIHByaXZhdGUgaW50IGZpbmRLZXkoaW50IHNpemUsIGludCBjdXJyZW50T2Zmc2V0LCBSZXNvdXJjZSByZXMsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaW50IG1pZCA9IDAsIHN0YXJ0ID0gMCwgbGltaXQgPSBzaXplLCByYzsKKyAgICAgICAgaW50IGxhc3RNaWQgPSAtMTsKKyAgICAgICAgLy9pbnQgbXlDaGFyT2Zmc2V0ID0gMCwga2V5T2Zmc2V0ID0gMDsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbWlkID0gKChzdGFydCArIGxpbWl0KSAvIDIpOworICAgICAgICAgICAgaWYgKGxhc3RNaWQgPT0gbWlkKSB7IC8qIEhhdmUgd2UgbW92ZWQ/ICovCisgICAgICAgICAgICAgICAgYnJlYWs7IC8qIFdlIGhhdmVuJ3QgbW92ZWQsIGFuZCBpdCB3YXNuJ3QgZm91bmQuICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0TWlkID0gbWlkOworICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSByZXMuZ2V0S2V5KGN1cnJlbnRPZmZzZXQsIG1pZCk7CisgICAgICAgICAgICByYyA9IHRhcmdldC5jb21wYXJlVG8oY29tcCk7CisgICAgICAgICAgICBpZiAocmMgPCAwKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJjID4gMCkgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgUmVzb3VyY2UgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEtleShpbnQgY3VycmVudE9mc2V0LCBpbnQgaW5kZXgpOworICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlVGFibGUgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSBpbXBsZW1lbnRzIFJlc291cmNlIHsKKworICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBrZXksIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldChrZXksIG51bGwsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcga2V5LCBIYXNoTWFwIHRhYmxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGlmKHNpemU8PTApeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIC8vIG9mZnNldCswIGNvbnRhaW5zIG51bWJlciBvZiBlbnRyaWVzCisgICAgICAgICAgICAvLyBvZmZzZXQrMSBjb250YWlucyB0aGUga2V5T2Zmc2V0ICAKKyAgICAgICAgICAgIGludCBjdXJyZW50T2Zmc2V0ID0gKG9mZnNldCkgKyBnZXRDaGFyT2Zmc2V0KDEpOworICAgICAgICAgICAgLy9pbnQga2V5T2Zmc2V0ID0gcmF3RGF0YS5nZXRDaGFyKGN1cnJlbnRPZmZzZXQpOworICAgICAgICAgICAgLyogZG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUga2V5ICovCisgICAgICAgICAgICBpbnQgZm91bmRPZmZzZXQgPSBmaW5kS2V5KHNpemUsIGN1cnJlbnRPZmZzZXQsIHRoaXMsIGtleSk7CisgICAgICAgICAgICBpZiAoZm91bmRPZmZzZXQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuZ2V0RnVsbE5hbWUoYmFzZU5hbWUsIGxvY2FsZUlEKSwKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUlELAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gZ2V0Q2hhck9mZnNldChzaXplICsgKH5zaXplICYgMSkpCisgICAgICAgICAgICAgICAgICAgICsgZ2V0SW50T2Zmc2V0KGZvdW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGxvbmcgcmVzb3VyY2UgPSAoVU5TSUdORURfSU5UX01BU0spICYgSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLCBjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkgPyBrZXkgOiByZXNQYXRoICsgIi8iICsga2V5OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1bmRsZU9iamVjdChrZXksIHJlc291cmNlLCBwYXRoLCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGluZGV4LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5KGludCBjdXJyZW50T2Zmc2V0LCBpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGdldENoYXJPZmZzZXQoaW5kZXgpOworICAgICAgICAgICAgaW50IGtleU9mZnNldCA9IGdldENoYXIocmF3RGF0YSxjaGFyT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBSRVNfR0VUX0tFWShyYXdEYXRhLCBrZXlPZmZzZXQpLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChpbnQgaW5kZXgsIEhhc2hNYXAgdGFibGUsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID4gc2l6ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgLy8gb2Zmc2V0KzAgY29udGFpbnMgbnVtYmVyIG9mIGVudHJpZXMKKyAgICAgICAgICAgIC8vIG9mZnNldCsxIGNvbnRhaW5zIHRoZSBrZXlPZmZzZXQgIAorICAgICAgICAgICAgaW50IGN1cnJlbnRPZmZzZXQgPSAob2Zmc2V0KSArIGdldENoYXJPZmZzZXQoMSk7CisgICAgICAgICAgICBTdHJpbmcgaXRlbUtleSA9IGdldEtleShjdXJyZW50T2Zmc2V0LCBpbmRleCk7CisgICAgICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IGdldENoYXJPZmZzZXQoc2l6ZSArICh+c2l6ZSAmIDEpKQorICAgICAgICAgICAgICAgICAgICArIGdldEludE9mZnNldChpbmRleCk7CisgICAgICAgICAgICBsb25nIHJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgPyBJbnRlZ2VyLnRvU3RyaW5nKGluZGV4KQorICAgICAgICAgICAgICAgICAgICA6IHJlc1BhdGggKyAiLyIgKyBpbmRleDsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVCdW5kbGVPYmplY3QoaXRlbUtleSwgcmVzb3VyY2UsIHBhdGgsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50IGNvdW50SXRlbXMoKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgaW50IHZhbHVlID0gZ2V0Q2hhcihyYXdEYXRhLG9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBSZXNvdXJjZVRhYmxlKFN0cmluZyBrZXksIFN0cmluZyByZXNQYXRoLCBsb25nIHJlc291cmNlKSB7CisgICAgICAgICAgICB0aGlzKGtleSwgcmVzb3VyY2UsIHJlc1BhdGgsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlVGFibGUoU3RyaW5nIGtleSwgbG9uZyByZXNvdXJjZSwgU3RyaW5nIHJlc1BhdGgsCisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1RvcExldmVsKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuaXNUb3BMZXZlbCA9IGlzVG9wTGV2ZWw7CisgICAgICAgICAgICB0aGlzLnNpemUgPSBjb3VudEl0ZW1zKCk7CisgICAgICAgICAgICB0aGlzLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBzZXRQYXJlbnQoUmVzb3VyY2VCdW5kbGUgcGFyZW50KSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5zZXRQYXJlbnQocGFyZW50KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlVGFibGUzMiBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlIGltcGxlbWVudHMgUmVzb3VyY2UgeworCisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoU3RyaW5nIGtleSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpZihzaXplPD0wKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVHZXQoa2V5LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoU3RyaW5nIGtleSwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgLy8gb2Zmc2V0KzAgY29udGFpbnMgbnVtYmVyIG9mIGVudHJpZXMKKyAgICAgICAgICAgIC8vIG9mZnNldCsxIGNvbnRhaW5zIHRoZSBrZXlPZmZzZXQgIAorICAgICAgICAgICAgaW50IGN1cnJlbnRPZmZzZXQgPSAob2Zmc2V0KSArIGdldEludE9mZnNldCgxKTsKKyAgICAgICAgICAgIC8vaW50IGtleU9mZnNldCA9IHJhd0RhdGEuZ2V0Q2hhcihjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIC8qIGRvIGEgYmluYXJ5IHNlYXJjaCBmb3IgdGhlIGtleSAqLworICAgICAgICAgICAgaW50IGZvdW5kT2Zmc2V0ID0gZmluZEtleShzaXplLCBjdXJyZW50T2Zmc2V0LCB0aGlzLCBrZXkpOworICAgICAgICAgICAgaWYgKGZvdW5kT2Zmc2V0ID09IC0xKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgZmluZCByZXNvdXJjZSAiLAorICAgICAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuZ2V0RnVsbE5hbWUoYmFzZU5hbWUsIGxvY2FsZUlEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IGdldEludE9mZnNldChzaXplKSArIGdldEludE9mZnNldChmb3VuZE9mZnNldCk7CisgICAgICAgICAgICBsb25nIHJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkgPyBrZXkgOiByZXNQYXRoICsgIi8iICsga2V5OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1bmRsZU9iamVjdChrZXksIHJlc291cmNlLCBwYXRoLCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGluZGV4LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5KGludCBjdXJyZW50T2Zmc2V0LCBpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGdldEludE9mZnNldChpbmRleCk7CisgICAgICAgICAgICBpbnQga2V5T2Zmc2V0ID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLGNoYXJPZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIFJFU19HRVRfS0VZKHJhd0RhdGEsIGtleU9mZnNldCkudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPiBzaXplKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICAvLyBvZmZzZXQrMCBjb250YWlucyBudW1iZXIgb2YgZW50cmllcworICAgICAgICAgICAgLy8gb2Zmc2V0KzEgY29udGFpbnMgdGhlIGtleU9mZnNldCAgCisgICAgICAgICAgICBpbnQgY3VycmVudE9mZnNldCA9IChvZmZzZXQpICsgZ2V0SW50T2Zmc2V0KDEpCisgICAgICAgICAgICAgICAgICAgICsgZ2V0SW50T2Zmc2V0KGluZGV4KTsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtS2V5ID0gZ2V0S2V5KGN1cnJlbnRPZmZzZXQsIDApOworICAgICAgICAgICAgY3VycmVudE9mZnNldCArPSBnZXRJbnRPZmZzZXQoc2l6ZSk7CisgICAgICAgICAgICBsb25nIHJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgPyBJbnRlZ2VyLnRvU3RyaW5nKGluZGV4KQorICAgICAgICAgICAgICAgICAgICA6IHJlc1BhdGggKyAiLyIgKyBpbmRleDsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVCdW5kbGVPYmplY3QoaXRlbUtleSwgcmVzb3VyY2UsIHBhdGgsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50IGNvdW50SXRlbXMoKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgaW50IHZhbHVlID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLCBvZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVzb3VyY2VUYWJsZTMyKFN0cmluZyBrZXksIGxvbmcgcmVzb3VyY2UsIFN0cmluZyByZXNQYXRoLAorICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNUb3BMZXZlbCkgeworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmlzVG9wTGV2ZWwgPSBpc1RvcExldmVsOworICAgICAgICAgICAgdGhpcy5zaXplID0gY291bnRJdGVtcygpOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlVGFibGUzMihTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdGhpcyhrZXksIHJlc291cmNlLCByZXNQYXRoLCBmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgc2V0UGFyZW50KFJlc291cmNlQnVuZGxlIHBhcmVudCkgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuc2V0UGFyZW50KHBhcmVudCk7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlU3RyaW5nIGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgICAgICBwcml2YXRlIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBSZXNvdXJjZVN0cmluZyhTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdmFsdWUgPSBnZXRTdHJpbmdWYWx1ZShyZXNvdXJjZSk7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMucmVzUGF0aCA9IHJlc1BhdGg7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlSW1wbC50aGlzLmdldFBhcmVudCgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VJbnQgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSB7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW50KCkgeworICAgICAgICAgICAgcmV0dXJuIFJFU19HRVRfSU5UKHJlc291cmNlKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgaW50IGdldFVJbnQoKSB7CisgICAgICAgICAgICBsb25nIHJldCA9IFJFU19HRVRfVUlOVChyZXNvdXJjZSk7CisgICAgICAgICAgICByZXR1cm4gKGludCkgcmV0OworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVzb3VyY2VJbnQoU3RyaW5nIGtleSwgU3RyaW5nIHJlc1BhdGgsIGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUFycmF5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nW10gaGFuZGxlR2V0U3RyaW5nQXJyYXkoKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBzdHJpbmdzID0gbmV3IFN0cmluZ1tzaXplXTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IgaXRlciA9IGdldEl0ZXJhdG9yKCk7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdzW2krK10gPSBpdGVyLm5leHQoKS5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdzOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5KCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldFN0cmluZ0FycmF5KCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcgaW5kZXgsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldChpbmRleCwgbnVsbCwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBpbmRleCwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpbnQgdmFsID0gZ2V0SW5kZXgoaW5kZXgpOworICAgICAgICAgICAgaWYgKHZhbCA+IC0xKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldCh2YWwsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiQ291bGQgbm90IGdldCB0aGUgY29ycmVjdCB2YWx1ZSBmb3IgaW5kZXg6ICIrIGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGluZGV4LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+IHNpemUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIGludCBpdGVtT2Zmc2V0ID0gb2Zmc2V0ICsgZ2V0SW50T2Zmc2V0KGluZGV4ICsgMSk7CisgICAgICAgICAgICBsb25nIGl0ZW1SZXNvdXJjZSA9IChVTlNJR05FRF9JTlRfTUFTSykgJiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsaXRlbU9mZnNldCk7CisgICAgICAgICAgICBTdHJpbmcgcGF0aCA9IChpc1RvcExldmVsID09IHRydWUpID8gSW50ZWdlci50b1N0cmluZyhpbmRleCkgOiByZXNQYXRoICsgIi8iICsgaW5kZXg7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQnVuZGxlT2JqZWN0KG51bGwsIGl0ZW1SZXNvdXJjZSwgcGF0aCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnQgY291bnRJdGVtcygpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsb2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlQXJyYXkoU3RyaW5nIGtleSwgU3RyaW5nIHJlc1BhdGgsIGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5zaXplID0gY291bnRJdGVtcygpOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBtYWtlQ2hhcihieXRlIGIxLCBieXRlIGIwKSB7CisgICAgICAgIHJldHVybiAoY2hhcikoKGIxIDw8IDgpIHwgKGIwICYgMHhmZikpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGdldENoYXIoYnl0ZVtdZGF0YSwgaW50IG9mZnNldCl7CisgICAgICAgIHJldHVybiBtYWtlQ2hhcihkYXRhW29mZnNldF0sIGRhdGFbb2Zmc2V0KzFdKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1ha2VJbnQoYnl0ZSBiMywgYnl0ZSBiMiwgYnl0ZSBiMSwgYnl0ZSBiMCkgeworICAgICAgICByZXR1cm4gKGludCkoKCgoYjMgJiAweGZmKSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAgKChiMiAmIDB4ZmYpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAoKGIxICYgMHhmZikgPDwgIDgpIHwKKyAgICAgICAgICAgICAgICAgICgoYjAgJiAweGZmKSA8PCAgMCkpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEludChieXRlW10gZGF0YSwgaW50IG9mZnNldCl7CisgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgib2Zmc2V0IDwgZGF0YS5sZW5ndGgiLCBvZmZzZXQgPCBkYXRhLmxlbmd0aCk7CisgICAgICAgIHJldHVybiBtYWtlSW50KGRhdGFbb2Zmc2V0XSwgZGF0YVtvZmZzZXQrMV0sIAorICAgICAgICAgICAgICAgICAgICAgICBkYXRhW29mZnNldCsyXSwgZGF0YVtvZmZzZXQrM10pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlQmluYXJ5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgICAgICBwcml2YXRlIGJ5dGVbXSB2YWx1ZTsKKyAgICAgICAgcHVibGljIEJ5dGVCdWZmZXIgZ2V0QmluYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIEJ5dGVCdWZmZXIud3JhcCh2YWx1ZSk7CisgICAgICAgIH0gICAgICAKKyAgICAgICAgcHVibGljIGJ5dGUgW10gZ2V0QmluYXJ5KGJ5dGUgW11iYSkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgYnl0ZVtdIGdldFZhbHVlKCkgeworICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsb2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBieXRlT2Zmc2V0ID0gb2Zmc2V0ICsgZ2V0SW50T2Zmc2V0KDEpOworICAgICAgICAgICAgYnl0ZVtdIGRzdCA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoImJ5dGVPZmZzZXQrbGVuZ3RoIDwgcmF3RGF0YS5sZW5ndGgiLCBieXRlT2Zmc2V0K2xlbmd0aCA8IHJhd0RhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocmF3RGF0YSwgYnl0ZU9mZnNldCwgZHN0LCAwLCBsZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGRzdDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgUmVzb3VyY2VCaW5hcnkoU3RyaW5nIGtleSwgU3RyaW5nIHJlc1BhdGgsIGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUludFZlY3RvciBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlIHsKKyAgICAgICAgcHJpdmF0ZSBpbnRbXSB2YWx1ZTsKKyAgICAgICAgcHVibGljIGludFtdIGdldEludFZlY3RvcigpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIGludFtdIGdldFZhbHVlKCkgeworICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsb2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBpbnRPZmZzZXQgPSBvZmZzZXQgKyBnZXRJbnRPZmZzZXQoMSk7CisgICAgICAgICAgICBpbnRbXSB2YWwgPSBuZXcgaW50W2xlbmd0aF07CisgICAgICAgICAgICBpbnQgYnl0ZUxlbmd0aCA9IGdldEludE9mZnNldChsZW5ndGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoIihpbnRPZmZzZXQrYnl0ZUxlbmd0aCk8cmF3RGF0YS5sZW5ndGgiLCAoaW50T2Zmc2V0K2J5dGVMZW5ndGgpPHJhd0RhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8bGVuZ3RoO2krKyl7CisgICAgICAgICAgICAgICAgdmFsW2ldPUlDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSwgaW50T2Zmc2V0K2dldEludE9mZnNldChpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdmFsOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBSZXNvdXJjZUludFZlY3RvcihTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLnJlc291cmNlID0gcmVzb3VyY2U7CisgICAgICAgICAgICB0aGlzLnNpemUgPSAxOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0U3RyaW5nVmFsdWUobG9uZyByZXNvdXJjZSkgeworICAgICAgICBpZiAocmVzb3VyY2UgPT0gMCkgeyAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaGUgZGF0YSBzdHJ1Y3R1cmUgaXMgZG9jdW1lbnRlZCBhcyBzdXBwb3J0aW5nIHJlc291cmNlPT0wIGZvciBlbXB0eSBzdHJpbmdzLgorICAgICAgICAgICAgICogUmV0dXJuIGEgZml4ZWQgcG9pbnRlciBpbiBzdWNoIGEgY2FzZS4KKyAgICAgICAgICAgICAqIFRoaXMgd2FzIGRyb3BwZWQgaW4gdXJlc2RhdGEuYyAxLjE3IGFzIHBhcnQgb2YgSml0dGVyYnVnIDEwMDUgd29yaworICAgICAgICAgICAgICogb24gY29kZSBjb3ZlcmFnZSBmb3IgSUNVIDIuMC4KKyAgICAgICAgICAgICAqIFJlLWFkZGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBkZXNpZ24gYW5kIHdpdGggb3RoZXIgY29kZS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgIGludCBsZW5ndGggPSBnZXRJbnQocmF3RGF0YSxvZmZzZXQpOworICAgICAgICBpbnQgc3RyaW5nT2Zmc2V0ID0gb2Zmc2V0ICsgZ2V0SW50T2Zmc2V0KDEpOworICAgICAgICBjaGFyW10gZHN0ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCIoc3RyaW5nT2Zmc2V0K2dldENoYXJPZmZzZXQobGVuZ3RoKSkgPCByYXdEYXRhLmxlbmd0aCIsIChzdHJpbmdPZmZzZXQrZ2V0Q2hhck9mZnNldChsZW5ndGgpKSA8IHJhd0RhdGEubGVuZ3RoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8bGVuZ3RoOyBpKyspeworICAgICAgICAgICAgZHN0W2ldPWdldENoYXIocmF3RGF0YSwgc3RyaW5nT2Zmc2V0K2dldENoYXJPZmZzZXQoaSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRzdCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUkVTX1BBVEhfU0VQX0NIQVIgPSAnLyc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU19QQVRIX1NFUF9TVFIgPSAiLyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVURBVEEgPSAiSUNVREFUQSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIWVBIRU4gPSAnLSc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPQ0FMRSA9ICJMT0NBTEUiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRJbmRleChTdHJpbmcgcykgeworICAgICAgICBpZiAocy5sZW5ndGgoKSA+PSAxKSB7CisgICAgICAgICAgICByZXR1cm4gSW50ZWdlci52YWx1ZU9mKHMpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIGZpbmRSZXNvdXJjZShTdHJpbmcga2V5LCBsb25nIHJlc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoTWFwIHRhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIENsYXNzTG9hZGVyIGxvYWRlclRvVXNlID0gbG9hZGVyOworICAgICAgICBTdHJpbmcgbG9jYWxlID0gbnVsbCwga2V5UGF0aCA9IG51bGw7CisgICAgICAgIFN0cmluZyBidW5kbGVOYW1lOworICAgICAgICBTdHJpbmcgcmVzUGF0aCA9IGdldFN0cmluZ1ZhbHVlKHJlc291cmNlKTsKKyAgICAgICAgaWYgKHRhYmxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHRhYmxlID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFibGUuZ2V0KHJlc1BhdGgpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJDaXJjdWxhciByZWZlcmVuY2VzIGluIHRoZSByZXNvdXJjZSBidW5kbGVzIik7CisgICAgICAgIH0KKyAgICAgICAgdGFibGUucHV0KHJlc1BhdGgsICIiKTsKKyAgICAgICAgaWYgKHJlc1BhdGguaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUikgPT0gMCkgeworICAgICAgICAgICAgaW50IGkgPSByZXNQYXRoLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIsIDEpOworICAgICAgICAgICAgaW50IGogPSByZXNQYXRoLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIsIGkgKyAxKTsKKyAgICAgICAgICAgIGJ1bmRsZU5hbWUgPSByZXNQYXRoLnN1YnN0cmluZygxLCBpKTsKKyAgICAgICAgICAgIGxvY2FsZSA9IHJlc1BhdGguc3Vic3RyaW5nKGkgKyAxKTsKKyAgICAgICAgICAgIGlmIChqICE9IC0xKSB7CisgICAgICAgICAgICAgICAgbG9jYWxlID0gcmVzUGF0aC5zdWJzdHJpbmcoaSArIDEsIGopOworICAgICAgICAgICAgICAgIGtleVBhdGggPSByZXNQYXRoLnN1YnN0cmluZyhqICsgMSwgcmVzUGF0aC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RoZXJlIGlzIGEgcGF0aCBpbmNsdWRlZAorICAgICAgICAgICAgaWYgKGJ1bmRsZU5hbWUuZXF1YWxzKElDVURBVEEpKSB7CisgICAgICAgICAgICAgICAgYnVuZGxlTmFtZSA9IElDVV9CQVNFX05BTUU7CisgICAgICAgICAgICAgICAgbG9hZGVyVG9Vc2UgPSBJQ1VfREFUQV9DTEFTU19MT0FERVI7CisgICAgICAgICAgICB9ZWxzZSBpZihidW5kbGVOYW1lLmluZGV4T2YoSUNVREFUQSk+LTEpeworICAgICAgICAgICAgICAgIGludCBpZHggPSBidW5kbGVOYW1lLmluZGV4T2YoSFlQSEVOKTsgCisgICAgICAgICAgICAgICAgaWYoaWR4Pi0xKXsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlTmFtZSA9IElDVV9CQVNFX05BTUUrUkVTX1BBVEhfU0VQX1NUUitidW5kbGVOYW1lLnN1YnN0cmluZyhpZHgrMSxidW5kbGVOYW1lLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9hZGVyVG9Vc2UgPSBJQ1VfREFUQV9DTEFTU19MT0FERVI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy9ubyBwYXRoIHN0YXJ0IHdpdGggbG9jYWxlCisgICAgICAgICAgICBpbnQgaSA9IHJlc1BhdGguaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUik7CisgICAgICAgICAgICBrZXlQYXRoID0gcmVzUGF0aC5zdWJzdHJpbmcoaSArIDEpOworICAgICAgICAgICAgaWYgKGkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSByZXNQYXRoLnN1YnN0cmluZygwLCBpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9jYWxlID0ga2V5UGF0aDsKKyAgICAgICAgICAgICAgICBrZXlQYXRoID0gbnVsbDsvL2tleVBhdGguc3Vic3RyaW5nKGksIGtleVBhdGgubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVuZGxlTmFtZSA9IGJhc2VOYW1lOworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IG51bGw7CisgICAgICAgIGlmKGJ1bmRsZU5hbWUuZXF1YWxzKExPQ0FMRSkpeworICAgICAgICAgICAgYnVuZGxlTmFtZSA9IGJhc2VOYW1lOworICAgICAgICAgICAgYnVuZGxlID0gcmVxdWVzdGVkOworICAgICAgICAgICAga2V5UGF0aCA9IHJlc1BhdGguc3Vic3RyaW5nKExPQ0FMRS5sZW5ndGgoKSArIDIvKiBwcmVwZW5kaW5nIGFuZCBhcHBlbmRpbmcgLyAqLywgcmVzUGF0aC5sZW5ndGgoKSk7CisgICAgICAgICAgICBsb2NhbGUgPSByZXF1ZXN0ZWQuZ2V0TG9jYWxlSUQoKTsKKyAgICAgICAgICAgIHN1YiA9IElDVVJlc291cmNlQnVuZGxlLmZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhrZXlQYXRoLCByZXF1ZXN0ZWQsIG51bGwpOworICAgICAgICAgICAgc3ViLnJlc1BhdGggPSAiLyIgKyBzdWIuZ2V0TG9jYWxlSUQoKSArICIvIiArIGtleVBhdGg7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8ge2RsZn0gbXVzdCB1c2UgcmVxdWVzdG9yJ3MgY2xhc3MgbG9hZGVyIHRvIGdldCByZXNvdXJjZXMgZnJvbSBzYW1lIGphcgorICAgICAgICAgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgZ2V0QnVuZGxlSW5zdGFuY2UoYnVuZGxlTmFtZSwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyVG9Vc2UsIGZhbHNlKTsgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgZ2V0QnVuZGxlSW5zdGFuY2UoYnVuZGxlTmFtZSwgbG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlclRvVXNlLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoa2V5UGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihrZXlQYXRoLCAiLyIpOworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGN1cnJlbnQgPSBidW5kbGU7CisgICAgICAgICAgICAgICAgd2hpbGUgKHN0Lmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3ViS2V5ID0gc3QubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIHN1YiA9IGN1cnJlbnQuZ2V0SW1wbChzdWJLZXksIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3ViID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzdWI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc3ViIHJlc291cmNlIGlzIG5vdCBmb3VuZAorICAgICAgICAgICAgICAgIC8vIHRyeSBmZXRjaGluZyB0aGUgc3ViIHJlc291cmNlIHdpdGgKKyAgICAgICAgICAgICAgICAvLyB0aGUga2V5IG9mIHRoaXMgYWxpYXMgcmVzb3VyY2UKKyAgICAgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWIucmVzUGF0aCA9IHJlc1BhdGg7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN1YiA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGxvY2FsZUlELCBiYXNlTmFtZSwga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3ViOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2OThkMzIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsOTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb247CisKKworLyoqCisgKiA8cD5DbGFzcyBmb3IgZW5hYmxpbmcgaXRlcmF0aW9uIG92ZXIgVVJlc291cmNlQnVuZGxlIG9iamVjdHMuCisgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgKiA8cHJlPgorICogSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBpdGVyYXRvciA9IHJlc0IuZ2V0SXRlcmF0b3IoKTsKKyAqIElDVVJlc291cmNlQnVuZGxlIHRlbXA7CisgKiB3aGlsZSAoaXRlcmF0b3IuaGFzTmV4dCgpKSB7CisgKiAgICB0ZW1wID0gaXRlcmFydG9yLm5leHQoKTsgIAorICogICAgaW50IHR5cGUgPSB0ZW1wLmdldFR5cGUoKTsKKyAqICAgIHN3aXRjaCh0eXBlKXsKKyAqICAgICAgY2FzZSBVUmVzb3VyY2VCdW5kbGUuU1RSSU5HOgorICogICAgICAgICAgc3RyID0gdGVtcC5nZXRTdHJpbmcoKTsKKyAqICAgICAgICAgIGJyZWFrOworICogICAgICBjYXNlIFVSZXNvdXJjZUJ1bmRsZS5JTlQ6CisgKiAgICAgICAgICBpbnRlZ2VyID0gdGVtcC5nZXRJbnQoKTsKKyAqICAgICAgICAgIGJyZWFrOworICogICAgIC4uLi4uCisgKiAgICB9CisgKiAgIC8vIGRvIHNvbWV0aGluZyBpbnRlcmVzdGluZyB3aXRoIGRhdGEgY29sbGVjdGVkCisgKiB9CisgKiA8L3ByZT4KKyAqIEBhdXRob3IgcmFtCisgKiBAZHJhZnQgSUNVIDMuMAorICovCitwdWJsaWMgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvcnsKKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZTsKKyAgICBwcml2YXRlIGludCBpbmRleCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgc2l6ZSA9IDA7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcmVzb3VyY2UgYnVuZGxlIGl0ZXJhdG9yIGZvciB0aGUKKyAgICAgKiBnaXZlbiByZXNvdXJjZSBidW5kbGUKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYm5kbCBUaGUgcmVzb3VyY2UgYnVuZGxlIHRvIGl0ZXJhdGUgb3ZlcgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIElDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IoSUNVUmVzb3VyY2VCdW5kbGUgYm5kbCl7CisgICAgICAgIGJ1bmRsZSA9IGJuZGw7ICAgCisgICAgICAgIHNpemUgPSBidW5kbGUuZ2V0U2l6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBvZiB0aGlzIGl0ZXJhdG9yIGlmIHRoaXMgaXRlcmF0b3Igb2JqZWN0IGhhcyBhdCBsZWFzdCBvbmUgbW9yZSBlbGVtZW50IHRvIHByb3ZpZGUKKyAgICAgKiBAcmV0dXJuIHRoZSBVUmVzb3VyY2VCdW5kbGUgb2JqZWN0CisgICAgICogQHRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGUgbmV4dCgpdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb257CisgICAgICAgIGlmKGluZGV4PHNpemUpeworICAgICAgICAgICAgcmV0dXJuIGJ1bmRsZS5nZXQoaW5kZXgrKyk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oKTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBTdHJpbmcgb2YgdGhpcyBpdGVyYXRvciBpZiB0aGlzIGl0ZXJhdG9yIG9iamVjdCBoYXMgYXQgbGVhc3Qgb25lIG1vcmUgZWxlbWVudCB0byBwcm92aWRlCisgICAgICogQHJldHVybiB0aGUgVVJlc291cmNlQnVuZGxlIG9iamVjdAorICAgICAqIEB0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIG5leHRTdHJpbmcoKXRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLCBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb257CisgICAgICAgIGlmKGluZGV4PHNpemUpeworICAgICAgICAgICAgcmV0dXJuIGJ1bmRsZS5nZXRTdHJpbmcoaW5kZXgrKyk7CisgICAgICAgIH0gIAorICAgICAgICB0aHJvdyBuZXcgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldHMgdGhlIGludGVybmFsIGNvbnRleHQgb2YgYSByZXNvdXJjZSBzbyB0aGF0IGl0ZXJhdGlvbiBzdGFydHMgZnJvbSB0aGUgZmlyc3QgZWxlbWVudC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCl7CisgICAgICAgIC8vcmVzZXQgdGhlIGludGVybmFsIGNvbnRleHQgICAKKyAgICAgICAgaW5kZXggPSAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gcmVzb3VyY2UgaGFzIGFub3RoZXIgZWxlbWVudCB0byBpdGVyYXRlIG92ZXIuCisgICAgICogQHJldHVybiBUUlVFIGlmIHRoZXJlIGFyZSBtb3JlIGVsZW1lbnRzLCBGQUxTRSBpZiB0aGVyZSBpcyBubyBtb3JlIGVsZW1lbnRzCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCl7CisgICAgICAgIHJldHVybiBpbmRleCA8IHNpemU7ICAgCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OTE3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMzAzIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKworCisvKioKKyAqIFRoaXMgY2xhc3MgcmVhZHMgdGhlICoucmVzIHJlc291cmNlIGJ1bmRsZSBmb3JtYXQKKyAqCisgKiAoRm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgZmlsZSBmb3JtYXQgZG9jdW1lbnRhdGlvbiBzZWUKKyAqIElDVTRDJ3Mgc291cmNlL2NvbW1vbi91cmVzZGF0YS5oIGZpbGUuKQorICoKKyAqIEZpbGUgZm9ybWF0IGZvciAucmVzIHJlc291cmNlIGJ1bmRsZSBmaWxlcyAoZm9ybWF0VmVyc2lvbj0xLjIpCisgKgorICogQW4gSUNVNEMgcmVzb3VyY2UgYnVuZGxlIGZpbGUgKC5yZXMpIGlzIGEgYmluYXJ5LCBtZW1vcnktbWFwcGFibGUgZmlsZQorICogd2l0aCBuZXN0ZWQsIGhpZXJhcmNoaWNhbCBkYXRhIHN0cnVjdHVyZXMuCisgKiBJdCBwaHlzaWNhbGx5IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmc6CisgKgorICogICBSZXNvdXJjZSByb290OyAtLSAzMi1iaXQgUmVzb3VyY2UgaXRlbSwgcm9vdCBpdGVtIGZvciB0aGlzIGJ1bmRsZSdzIHRyZWU7CisgKiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseSwgdGhlIHJvb3QgaXRlbSBtdXN0IGJlIGEgdGFibGUgb3IgdGFibGUzMiByZXNvdXJjZSBpdGVtCisgKiAgIGludDMyX3QgaW5kZXhlc1tpbmRleGVzWzBdXTsgLS0gYXJyYXkgb2YgaW5kZXhlcyBmb3IgZnJpZW5kbHkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkaW5nIGFuZCBzd2FwcGluZzsgc2VlIFVSRVNfSU5ERVhfKiBhYm92ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbiBmb3JtYXRWZXJzaW9uIDEuMSAoSUNVIDIuOCkKKyAqICAgY2hhciBrZXlzW107IC0tIGNoYXJhY3RlcnMgZm9yIGtleSBzdHJpbmdzCisgKiAgICAgICAgICAgICAgICAgICAoZm9ybWF0VmVyc2lvbiAxLjA6IHVwIHRvIDY1ayBvZiBjaGFyYWN0ZXJzOyAxLjE6IDwyRykKKyAqICAgICAgICAgICAgICAgICAgIChtaW51cyB0aGUgc3BhY2UgZm9yIHJvb3QgYW5kIGluZGV4ZXNbXSksCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBjb25zaXN0IG9mIGludmFyaWFudCBjaGFyYWN0ZXJzIChBU0NJSS9FQkNESUMpIGFuZCBhcmUgTlVMLXRlcm1pbmF0ZWQ7CisgKiAgICAgICAgICAgICAgICAgICBwYWRkZWQgdG8gbXVsdGlwbGUgb2YgNCBieXRlcyBmb3IgNC1hbGlnbm1lbnQgb2YgdGhlIGZvbGxvd2luZyBkYXRhCisgKiAgIGRhdGE7IC0tIGRhdGEgZGlyZWN0bHkgYW5kIGluZGlyZWN0bHkgaW5kZXhlZCBieSB0aGUgcm9vdCBpdGVtOworICogICAgICAgICAgICB0aGUgc3RydWN0dXJlIGlzIGRldGVybWluZWQgYnkgd2Fsa2luZyB0aGUgdHJlZQorICoKKyAqIEVhY2ggcmVzb3VyY2UgYnVuZGxlIGl0ZW0gaGFzIGEgMzItYml0IFJlc291cmNlIGhhbmRsZSAoc2VlIHR5cGVkZWYgYWJvdmUpCisgKiB3aGljaCBjb250YWlucyB0aGUgaXRlbSB0eXBlIG51bWJlciBpbiBpdHMgdXBwZXIgNCBiaXRzICgzMS4uMjgpIGFuZCBlaXRoZXIKKyAqIGFuIG9mZnNldCBvciBhIGRpcmVjdCB2YWx1ZSBpbiBpdHMgbG93ZXIgMjggYml0cyAoMjcuLjApLgorICogVGhlIG9yZGVyIG9mIGl0ZW1zIGlzIHVuZGVmaW5lZCBhbmQgb25seSBkZXRlcm1pbmVkIGJ5IHdhbGtpbmcgdGhlIHRyZWUuCisgKiBMZWF2ZXMgb2YgdGhlIHRyZWUgbWF5IGJlIHN0b3JlZCBmaXJzdCBvciBsYXN0IG9yIGFueXdoZXJlIGluIGJldHdlZW4sCisgKiBhbmQgaXQgaXMgaW4gdGhlb3J5IHBvc3NpYmxlIHRvIGhhdmUgdW5yZWZlcmVuY2VkIGhvbGVzIGluIHRoZSBmaWxlLgorICoKKyAqIERpcmVjdCB2YWx1ZXM6CisgKiAtIEVtcHR5IFVuaWNvZGUgc3RyaW5ncyBoYXZlIGFuIG9mZnNldCB2YWx1ZSBvZiAwIGluIHRoZSBSZXNvdXJjZSBoYW5kbGUgaXRzZWxmLgorICogLSBJbnRlZ2VyIHZhbHVlcyBhcmUgMjgtYml0IHZhbHVlcyBzdG9yZWQgaW4gdGhlIFJlc291cmNlIGhhbmRsZSBpdHNlbGY7CisgKiAgIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB1bnNpZ25lZCB2cy4gc2lnbmVkIGludGVnZXJzIGlzIHVwIHRvIHRoZSBhcHBsaWNhdGlvbi4KKyAqCisgKiBBbGwgb3RoZXIgdHlwZXMgYW5kIHZhbHVlcyB1c2UgMjgtYml0IG9mZnNldHMgdG8gcG9pbnQgdG8gdGhlIGl0ZW0ncyBkYXRhLgorICogVGhlIG9mZnNldCBpcyBhbiBpbmRleCB0byB0aGUgZmlyc3QgMzItYml0IHdvcmQgb2YgdGhlIHZhbHVlLCByZWxhdGl2ZSB0byB0aGUKKyAqIHN0YXJ0IG9mIHRoZSByZXNvdXJjZSBkYXRhIChpLmUuLCB0aGUgcm9vdCBpdGVtIGhhbmRsZSBpcyBhdCBvZmZzZXQgMCkuCisgKiBUbyBnZXQgYnl0ZSBvZmZzZXRzLCB0aGUgb2Zmc2V0IGlzIG11bHRpcGxpZWQgYnkgNCAob3Igc2hpZnRlZCBsZWZ0IGJ5IDIgYml0cykuCisgKiBBbGwgcmVzb3VyY2UgaXRlbSB2YWx1ZXMgYXJlIDQtYWxpZ25lZC4KKyAqCisgKiBUaGUgc3RydWN0dXJlcyAobWVtb3J5IGxheW91dHMpIGZvciB0aGUgdmFsdWVzIGZvciBlYWNoIGl0ZW0gdHlwZSBhcmUgbGlzdGVkCisgKiBpbiB0aGUgdGFibGUgYWJvdmUuCisgKgorICogTmVzdGVkLCBoaWVyYXJjaGljYWwgc3RydWN0dXJlczogLS0tLS0tLS0tLS0tLQorICoKKyAqIFRhYmxlIGl0ZW1zIGNvbnRhaW4ga2V5LXZhbHVlIHBhaXJzIHdoZXJlIHRoZSBrZXlzIGFyZSAxNi1iaXQgb2Zmc2V0cyB0byBjaGFyICoga2V5IHN0cmluZ3MuCisgKiBLZXkgc3RyaW5nIG9mZnNldHMgYXJlIGFsc28gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSByZXNvdXJjZSBkYXRhIChvZiB0aGUgcm9vdCBoYW5kbGUpLAorICogaS5lLiwgdGhlIGZpcnN0IHN0cmluZyBoYXMgYW4gb2Zmc2V0IG9mIDQgKGFmdGVyIHRoZSA0LWJ5dGUgcm9vdCBoYW5kbGUpLgorICoKKyAqIFRoZSB2YWx1ZXMgb2YgdGhlc2UgcGFpcnMgYXJlIFJlc291cmNlIGhhbmRsZXMuCisgKgorICogQXJyYXkgaXRlbXMgYXJlIHNpbXBsZSB2ZWN0b3JzIG9mIFJlc291cmNlIGhhbmRsZXMuCisgKgorICogQW4gYWxpYXMgaXRlbSBpcyBzcGVjaWFsIChhbmQgbmV3IGluIElDVSAyLjQpOiAtLS0tLS0tLS0tLS0tLQorICoKKyAqIEl0cyBtZW1vcnkgbGF5b3V0IGlzIGp1c3QgbGlrZSBmb3IgYSBVbmljb2RlU3RyaW5nLCBidXQgYXQgcnVudGltZSBpdCByZXNvbHZlcyB0bworICogYW5vdGhlciByZXNvdXJjZSBidW5kbGUncyBpdGVtIGFjY29yZGluZyB0byB0aGUgcGF0aCBpbiB0aGUgc3RyaW5nLgorICogVGhpcyBpcyB1c2VkIHRvIHNoYXJlIGl0ZW1zIGFjcm9zcyBidW5kbGVzIHRoYXQgYXJlIGluIGRpZmZlcmVudCBsb29rdXAvZmFsbGJhY2sKKyAqIGNoYWlucyAoZS5nLiwgbGFyZ2UgY29sbGF0aW9uIGRhdGEgYW1vbmcgemhfVFcgYW5kIHpoX0hLKS4KKyAqIFRoaXMgc2F2ZXMgc3BhY2UgKGZvciBsYXJnZSBpdGVtcykgYW5kIG1haW50ZW5hbmNlIGVmZm9ydCAobGVzcyBkdXBsaWNhdGlvbiBvZiBkYXRhKS4KKyAqCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFJlc291cmNlIHR5cGVzOgorICoKKyAqIE1vc3QgcmVzb3VyY2VzIGhhdmUgdGhlaXIgdmFsdWVzIHN0b3JlZCBhdCBmb3VyLWJ5dGUgb2Zmc2V0cyBmcm9tIHRoZSBzdGFydAorICogb2YgdGhlIHJlc291cmNlIGRhdGEuIFRoZXNlIHZhbHVlcyBhcmUgYXQgbGVhc3QgNC1hbGlnbmVkLgorICogU29tZSByZXNvdXJjZSB2YWx1ZXMgYXJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2Zmc2V0IGZpZWxkIG9mIHRoZSBSZXNvdXJjZSBpdHNlbGYuCisgKiBTZWUgVVJlc1R5cGUgaW4gdW5pY29kZS91cmVzLmggZm9yIGVudW1lcmF0aW9uIGNvbnN0YW50cyBmb3IgUmVzb3VyY2UgdHlwZXMuCisgKgorICogVHlwZSBOYW1lICAgICAgICAgICAgTWVtb3J5IGxheW91dCBvZiB2YWx1ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgIChpbiBwYXJlbnRoZXNlczogc2NhbGFyLCBub24tb2Zmc2V0IHZhbHVlcykKKyAqCisgKiAwICBVbmljb2RlIFN0cmluZzogICBpbnQzMl90IGxlbmd0aCwgVUNoYXJbbGVuZ3RoXSwgKFVDaGFyKTAsIChwYWRkaW5nKQorICogICAgICAgICAgICAgICAgICBvciAgKGVtcHR5IHN0cmluZyAoIiIpIGlmIG9mZnNldD09MCkKKyAqIDEgIEJpbmFyeTogICAgICAgICAgIGludDMyX3QgbGVuZ3RoLCB1aW50OF90W2xlbmd0aF0sIChwYWRkaW5nKQorICogICAgICAgICAgICAgICAgICAgICAgLSB0aGlzIHZhbHVlIHNob3VsZCBiZSAzMi1hbGlnbmVkIC0KKyAqIDIgIFRhYmxlOiAgICAgICAgICAgIHVpbnQxNl90IGNvdW50LCB1aW50MTZfdCBrZXlTdHJpbmdPZmZzZXRzW2NvdW50XSwgKHVpbnQxNl90IHBhZGRpbmcpLCBSZXNvdXJjZVtjb3VudF0KKyAqIDMgIEFsaWFzOiAgICAgICAgICAgIChwaHlzaWNhbGx5IHNhbWUgdmFsdWUgbGF5b3V0IGFzIHN0cmluZywgbmV3IGluIElDVSAyLjQpCisgKiA0ICBUYWJsZTMyOiAgICAgICAgICBpbnQzMl90IGNvdW50LCBpbnQzMl90IGtleVN0cmluZ09mZnNldHNbY291bnRdLCBSZXNvdXJjZVtjb3VudF0KKyAqICAgICAgICAgICAgICAgICAgICAgIChuZXcgaW4gZm9ybWF0VmVyc2lvbiAxLjEvSUNVIDIuOCkKKyAqCisgKiA3ICBJbnRlZ2VyOiAgICAgICAgICAoMjgtYml0IG9mZnNldCBpcyBpbnRlZ2VyIHZhbHVlKQorICogOCAgQXJyYXk6ICAgICAgICAgICAgaW50MzJfdCBjb3VudCwgUmVzb3VyY2VbY291bnRdCisgKgorICogMTQgSW50ZWdlciBWZWN0b3I6ICAgaW50MzJfdCBsZW5ndGgsIGludDMyX3RbbGVuZ3RoXQorICogMTUgUmVzZXJ2ZWQ6ICAgICAgICAgVGhpcyB2YWx1ZSBkZW5vdGVzIHNwZWNpYWwgcHVycG9zZSByZXNvdXJjZXMgYW5kIGlzIGZvciBpbnRlcm5hbCB1c2UuCisgKgorICogTm90ZSB0aGF0IHRoZXJlIGFyZSAzIHR5cGVzIHdpdGggZGF0YSB2ZWN0b3IgdmFsdWVzOgorICogLSBWZWN0b3JzIG9mIDgtYml0IGJ5dGVzIHN0b3JlZCBhcyB0eXBlIEJpbmFyeS4KKyAqIC0gVmVjdG9ycyBvZiAxNi1iaXQgd29yZHMgc3RvcmVkIGFzIHR5cGUgVW5pY29kZSBTdHJpbmcKKyAqICAgICAgICAgICAgICAgICAgICAgKG5vIHZhbHVlIHJlc3RyaWN0aW9ucywgYWxsIHZhbHVlcyAwLi5mZmZmIGFsbG93ZWQhKS4KKyAqIC0gVmVjdG9ycyBvZiAzMi1iaXQgd29yZHMgc3RvcmVkIGFzIHR5cGUgSW50ZWdlciBWZWN0b3IuCisgKgorICoKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIElDVVJlc291cmNlQnVuZGxlUmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZXsKKworICAgIC8qKgorICAgICAqIEZpbGUgZm9ybWF0IHZlcnNpb24gdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICAqICJSZXNCIgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURbXSA9IHsoYnl0ZSkweDUyLCAoYnl0ZSkweDY1LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg3MywgKGJ5dGUpMHg0Mn07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX1JFU09VUkNFX1NVRkZJWCA9ICIucmVzIjsKKyAgICAKKyAgICAvKiBpbmRleGVzW10gdmFsdWUgbmFtZXM7IGluZGV4ZXMgYXJlIGdlbmVyYWxseSAzMi1iaXQgKFJlc291cmNlKSBpbmRleGVzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfTEVOR1RIICAgICAgICAgICA9IDA7ICAgICAgICAvKiBbMF0gY29udGFpbnMgVVJFU19JTkRFWF9UT1A9PXRoZSBsZW5ndGggb2YgaW5kZXhlc1tdICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfU1RSSU5HU19UT1AgICAgICA9IDE7ICAgICAgICAvKiBbMV0gY29udGFpbnMgdGhlIHRvcCBvZiB0aGUgc3RyaW5ncywgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICBzYW1lIGFzIHRoZSBib3R0b20gb2YgcmVzb3VyY2VzLCByb3VuZGVkIHVwICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfUkVTT1VSQ0VTX1RPUCAgICA9IDI7ICAgICAgICAvKiBbMl0gY29udGFpbnMgdGhlIHRvcCBvZiBhbGwgcmVzb3VyY2VzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfQlVORExFX1RPUCAgICAgICA9IDM7ICAgICAgICAvKiBbM10gY29udGFpbnMgdGhlIHRvcCBvZiB0aGUgYnVuZGxlLCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgIGluIGNhc2UgaXQgd2VyZSBldmVyIGRpZmZlcmVudCBmcm9tIFsyXSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCAgICBVUkVTX0lOREVYX01BWF9UQUJMRV9MRU5HVEggPSA0OyAgICAgICAgLyogWzRdIG1heC4gbGVuZ3RoIG9mIGFueSB0YWJsZSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCAgICBVUkVTX0lOREVYX0FUVFJJQlVURVMgICAgICAgPSA1OyAgICAgICAgLyogWzVdIGF0dHJpYnV0ZXMgYml0IHNldCwgc2VlIFVSRVNfQVRUXyogKG5ldyBpbiBmb3JtYXRWZXJzaW9uIDEuMikgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9UT1AgICAgICAgICAgICAgID0gNjsKKworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfU1RSSU5HU19CT1RUT009KDErVVJFU19JTkRFWF9UT1ApKjQ7CisKKyAgICAvKgorICAgICAqIE5vZmFsbGJhY2sgYXR0cmlidXRlLCBhdHRyaWJ1dGUgYml0IDAgaW4gaW5kZXhlc1tVUkVTX0lOREVYX0FUVFJJQlVURVNdLgorICAgICAqIE5ldyBpbiBmb3JtYXRWZXJzaW9uIDEuMiAoSUNVIDMuNikuCisgICAgICoKKyAgICAgKiBJZiBzZXQsIHRoZW4gdGhpcyByZXNvdXJjZSBidW5kbGUgaXMgYSBzdGFuZGFsb25lIGJ1bmRsZS4KKyAgICAgKiBJZiBub3Qgc2V0LCB0aGVuIHRoZSBidW5kbGUgcGFydGljaXBhdGVzIGluIGxvY2FsZSBmYWxsYmFjaywgZXZlbnR1YWxseQorICAgICAqIGFsbCB0aGUgd2F5IHRvIHRoZSByb290IGJ1bmRsZS4KKyAgICAgKiBJZiBpbmRleGVzW10gaXMgbWlzc2luZyBvciB0b28gc2hvcnQsIHRoZW4gdGhlIGF0dHJpYnV0ZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZAorICAgICAqIHJlbGlhYmx5LiBEZXBlbmRlbmN5IGNoZWNraW5nIHNob3VsZCBpZ25vcmUgc3VjaCBidW5kbGVzLCBhbmQgbG9hZGluZyBzaG91bGQKKyAgICAgKiB1c2UgZmFsbGJhY2tzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVUkVTX0FUVF9OT19GQUxMQkFDSyA9IDE7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSBieXRlW10gLyogZm9ybWF0VmVyc2lvbiwgKi8gZGF0YVZlcnNpb247CisKKyAgICBwcml2YXRlIGludCByb290UmVzOworICAgIHByaXZhdGUgaW50W10gaW5kZXhlczsKKyAgICBwcml2YXRlIGJvb2xlYW4gbm9GYWxsYmFjazsgLyogc2VlIFVSRVNfQVRUX05PX0ZBTExCQUNLICovCisKKyAgICBwcml2YXRlIGJ5dGVbXSBkYXRhOworCisgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlcihJbnB1dFN0cmVhbSBzdHJlYW0sIFN0cmluZyByZXNvbHZlZE5hbWUpeworCisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYnMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShzdHJlYW0pOworICAgICAgICB0cnl7CisgICAgICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgSW5wdXRTdHJlYW0gY2xhc3MgaXM6ICIgKyBzdHJlYW0uZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gY2xhc3MgaXM6ICIgKyBicy5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgYnl0ZXMgYXZpYWxhYmxlIGluIHN0cmVhbSBiZWZvcmUgcmVhZGluZyB0aGUgaGVhZGVyOiAiICsgYnMuYXZhaWxhYmxlKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkYXRhVmVyc2lvbiA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGJzLERBVEFfRk9STUFUX0lELHRoaXMpOworCisgICAgICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgYnl0ZXMgYXZhaWxhYmxlIGluIHN0cmVhbSBhZnRlciByZWFkaW5nIHRoZSBoZWFkZXI6ICIgKyBicy5hdmFpbGFibGUoKSk7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcmVhZERhdGEoYnMpOworICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCk7CisgICAgICAgIH1jYXRjaChJT0V4Y2VwdGlvbiBleCl7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkRhdGEgZmlsZSAiKyByZXNvbHZlZE5hbWUrICIgaXMgY29ycnVwdC4iLCBleCk7ICAgCisvLyNlbHNlCisvLyMjICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkRhdGEgZmlsZSAiKyByZXNvbHZlZE5hbWUrICIgaXMgY29ycnVwdC4iKTsgICAKKy8vI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlciBnZXRSZWFkZXIoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSwgQ2xhc3NMb2FkZXIgcm9vdCl7CisgICAgICAgIFN0cmluZyByZXNvbHZlZE5hbWUgPSBnZXRGdWxsTmFtZShiYXNlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IElDVURhdGEuZ2V0U3RyZWFtKHJvb3QscmVzb2x2ZWROYW1lKTsKKyAgICAgICAgCisgICAgICAgIGlmKHN0cmVhbT09bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlciByZWFkZXIgPSBuZXcgSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIoc3RyZWFtLCByZXNvbHZlZE5hbWUpOworICAgICAgICByZXR1cm4gcmVhZGVyOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgd3JpdGVJbnQoaW50IGksIGJ5dGVbXSBieXRlcywgaW50IG9mZnNldCkgeworICAgICAgICBieXRlc1tvZmZzZXQrK109KGJ5dGUpKGk+PjI0KTsKKyAgICAgICAgYnl0ZXNbb2Zmc2V0KytdPShieXRlKShpPj4xNik7CisgICAgICAgIGJ5dGVzW29mZnNldCsrXT0oYnl0ZSkoaT4+OCk7CisgICAgICAgIGJ5dGVzW29mZnNldF09KGJ5dGUpaTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVhZERhdGEoSW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICAKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGRzID0gbmV3IERhdGFJbnB1dFN0cmVhbShzdHJlYW0pOworCisgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBEYXRhSW5wdXRTdHJlYW0gY2xhc3MgaXM6ICIgKyBkcy5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBhdmFpbGFibGUgYnl0ZXMgaW4gdGhlIHN0cmVhbSBiZWZvcmUgcmVhZGluZyB0aGUgZGF0YTogIitkcy5hdmFpbGFibGUoKSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIGZvbGxvd2luZyB3aWxsIHJlYWQgdHdvIGludGVnZXJzIGJlZm9yZSBkcy5tYXJrKCkuCisgICAgICAgICAqIExhdGVyLCB0aGUgdHdvIGludGVnZXJzIG5lZWQgdG8gYmUgcGxhY2VkIGludG8gZGF0YVtdLAorICAgICAgICAgKiB0aGVuIGRzLnJlc2V0KCksIHRoZW4gZHMucmVhZEZ1bGx5KGludG8gcmVzdCBvZiBkYXRhW10pLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHdlIGRvbid0IGtub3cgdGhlIHJlYWRMaW1pdCBmb3IgZHMubWFyaygpCisgICAgICAgICAqIHVudGlsIHdlIGhhdmUgcmVhZCB0aGUgc2Vjb25kIGludGVnZXIgKGluZGV4TGVuZ3RoKS4KKyAgICAgICAgICovCisgICAgICAgIHJvb3RSZXMgPSBkcy5yZWFkSW50KCk7CisKKyAgICAgICAgLy8gcmVhZCB0aGUgdmFyaWFibGUtbGVuZ3RoIGluZGV4ZXNbXSBhcnJheQorICAgICAgICBpbnQgaW5kZXhMZW5ndGggPSBkcy5yZWFkSW50KCk7CisgICAgICAgIGRzLm1hcmsoKGluZGV4TGVuZ3RoLTEpKjQpOworCisgICAgICAgIGluZGV4ZXMgPSBuZXcgaW50W2luZGV4TGVuZ3RoXTsKKyAgICAgICAgaW5kZXhlc1tVUkVTX0lOREVYX0xFTkdUSF0gPSBpbmRleExlbmd0aDsKKworICAgICAgICBmb3IoaW50IGk9MTsgaTxpbmRleExlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBkcy5yZWFkSW50KCk7ICAgCisgICAgICAgIH0KKworICAgICAgICAvLyBkZXRlcm1pbmUgaWYgdGhpcyByZXNvdXJjZSBidW5kbGUgZmFsbHMgYmFjayB0byBhIHBhcmVudCBidW5kbGUKKyAgICAgICAgLy8gYWxvbmcgbm9ybWFsIGxvY2FsZSBJRCBmYWxsYmFjaworICAgICAgICBub0ZhbGxiYWNrID0KKyAgICAgICAgICAgIGluZGV4TGVuZ3RoID4gVVJFU19JTkRFWF9BVFRSSUJVVEVTICYmCisgICAgICAgICAgICAoaW5kZXhlc1tVUkVTX0lOREVYX0FUVFJJQlVURVNdJlVSRVNfQVRUX05PX0ZBTExCQUNLKSE9MDsKKworICAgICAgICAvLyByZWFkIHRoZSBlbnRpcmUgYnVuZGxlIChhZnRlciB0aGUgaGVhZGVyKSBpbnRvIGRhdGFbXQorICAgICAgICAvLyBwdXQgcm9vdFJlcyBhbmQgaW5kZXhMZW5ndGggaW50byBkYXRhWzAuLjddCisgICAgICAgIC8vIGFuZCB0aGUgcmVzdCBvZiB0aGUgZGF0YSBpbnRvIGRhdGFbOC4ubGVuZ3RoLTFdCisgICAgICAgIGludCBsZW5ndGggPSBpbmRleGVzW1VSRVNfSU5ERVhfQlVORExFX1RPUF0qNDsKKyAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgYnVuZGxlOiAiK2xlbmd0aCk7CisgICAgCisgICAgICAgIGRhdGEgPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgICAgICB3cml0ZUludChyb290UmVzLCBkYXRhLCAwKTsKKyAgICAgICAgd3JpdGVJbnQoaW5kZXhMZW5ndGgsIGRhdGEsIDQpOworCisgICAgICAgIC8vIG5vdyByZXNldCB0byB0aGUgbWFyaywgd2hpY2ggd2FzIHNldCBhZnRlciByZWFkaW5nIHJvb3RSZXMgYW5kIGluZGV4TGVuZ3RoCisgICAgICAgIGRzLnJlc2V0KCk7CisgICAgICAgIGRzLnJlYWRGdWxseShkYXRhLCA4LCBsZW5ndGgtOCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZnVsbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB3aXRoIHN1ZmZpeC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRGdWxsTmFtZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKXsKKyAgICAgICAgaWYoYmFzZU5hbWU9PW51bGwgfHwgYmFzZU5hbWUubGVuZ3RoKCk9PTApeworICAgICAgICAgICAgaWYobG9jYWxlTmFtZS5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvU3RyaW5nKCkrSUNVX1JFU09VUkNFX1NVRkZJWDsgICAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGVOYW1lK0lDVV9SRVNPVVJDRV9TVUZGSVg7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgaWYoYmFzZU5hbWUuaW5kZXhPZignLicpPT0tMSl7CisgICAgICAgICAgICAgICAgaWYoYmFzZU5hbWUuY2hhckF0KGJhc2VOYW1lLmxlbmd0aCgpLTEpIT0gJy8nKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lKyIvIitsb2NhbGVOYW1lK0lDVV9SRVNPVVJDRV9TVUZGSVg7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZStsb2NhbGVOYW1lK0lDVV9SRVNPVVJDRV9TVUZGSVg7ICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYmFzZU5hbWUgPSBiYXNlTmFtZS5yZXBsYWNlKCcuJywnLycpOworICAgICAgICAgICAgICAgIGlmKGxvY2FsZU5hbWUubGVuZ3RoKCk9PTApeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsgICAKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lKyJfIitsb2NhbGVOYW1lK0lDVV9SRVNPVVJDRV9TVUZGSVg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBnZXRWZXJzaW9uKCl7CisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShkYXRhVmVyc2lvblswXSxkYXRhVmVyc2lvblsxXSxkYXRhVmVyc2lvblsyXSxkYXRhVmVyc2lvblszXSk7ICAgCisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKXsKKyAgICAgICAgLy8gd2hpbGUgSUNVNEMgY2FuIHJlYWQgZm9ybWF0VmVyc2lvbiAxLjAgYW5kIHVwLAorICAgICAgICAvLyBJQ1U0SiByZXF1aXJlcyAxLjEgYXMgYSBtaW5pbXVtCisgICAgICAgIC8vIGZvcm1hdFZlcnNpb24gPSB2ZXJzaW9uOworICAgICAgICByZXR1cm4gdmVyc2lvblswXSA9PSAxICYmIHZlcnNpb25bMV0gPj0gMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJ5dGVbXSBnZXREYXRhKCl7CisgICAgICAgIHJldHVybiBkYXRhOyAgIAorICAgIH0KKyAgICBwdWJsaWMgaW50IGdldFJvb3RSZXNvdXJjZSgpIHsKKyAgICAgICAgcmV0dXJuIHJvb3RSZXM7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGdldE5vRmFsbGJhY2soKSB7CisgICAgICAgIHJldHVybiBub0ZhbGxiYWNrOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVNlcnZpY2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVNlcnZpY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWEyNGViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhCkBAIC0wLDAgKzEsOTkyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKKworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3RJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5Tb3J0ZWRNYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPHA+QSBTZXJ2aWNlIHByb3ZpZGVzIGFjY2VzcyB0byBzZXJ2aWNlIG9iamVjdHMgdGhhdCBpbXBsZW1lbnQgYQorICogcGFydGljdWxhciBzZXJ2aWNlLCBlLmcuIHRyYW5zbGl0ZXJhdG9ycy4gIFVzZXJzIHByb3ZpZGUgYSBTdHJpbmcKKyAqIGlkIChmb3IgZXhhbXBsZSwgYSBsb2NhbGUgc3RyaW5nKSB0byB0aGUgc2VydmljZSwgYW5kIGdldCBiYWNrIGFuCisgKiBvYmplY3QgZm9yIHRoYXQgaWQuICBTZXJ2aWNlIG9iamVjdHMgY2FuIGJlIGFueSBraW5kIG9mIG9iamVjdC4KKyAqIFRoZSBzZXJ2aWNlIG9iamVjdCBpcyBjYWNoZWQgYW5kIHJldHVybmVkIGZvciBsYXRlciBxdWVyaWVzLCBzbworICogZ2VuZXJhbGx5IGl0IHNob3VsZCBub3QgYmUgbXV0YWJsZSwgb3IgdGhlIGNhbGxlciBzaG91bGQgY2xvbmUgdGhlCisgKiBvYmplY3QgYmVmb3JlIG1vZGlmeWluZyBpdC48L3A+CisgKgorICogPHA+U2VydmljZXMgJ2Nhbm9uaWNhbGl6ZScgdGhlIHF1ZXJ5IGlkIGFuZCB1c2UgdGhlIGNhbm9uaWNhbCBpZCB0bworICogcXVlcnkgZm9yIHRoZSBzZXJ2aWNlLiAgVGhlIHNlcnZpY2UgYWxzbyBkZWZpbmVzIGEgbWVjaGFuaXNtIHRvCisgKiAnZmFsbGJhY2snIHRoZSBpZCBtdWx0aXBsZSB0aW1lcy4gIENsaWVudHMgY2FuIG9wdGlvbmFsbHkgcmVxdWVzdAorICogdGhlIGFjdHVhbCBpZCB0aGF0IHdhcyBtYXRjaGVkIGJ5IGEgcXVlcnkgd2hlbiB0aGV5IHVzZSBhbiBpZCB0bworICogcmV0cmlldmUgYSBzZXJ2aWNlIG9iamVjdC48L3A+CisgKgorICogPHA+U2VydmljZSBvYmplY3RzIGFyZSBpbnN0YW50aWF0ZWQgYnkgRmFjdG9yeSBvYmplY3RzIHJlZ2lzdGVyZWQgd2l0aAorICogdGhlIHNlcnZpY2UuICBUaGUgc2VydmljZSBxdWVyaWVzIGVhY2ggRmFjdG9yeSBpbiB0dXJuLCBmcm9tIG1vc3QgcmVjZW50bHkKKyAqIHJlZ2lzdGVyZWQgdG8gZWFybGllc3QgcmVnaXN0ZXJlZCwgdW50aWwgb25lIHJldHVybnMgYSBzZXJ2aWNlIG9iamVjdC4KKyAqIElmIG5vbmUgcmVzcG9uZHMgd2l0aCBhIHNlcnZpY2Ugb2JqZWN0LCBhIGZhbGxiYWNrIGlkIGlzIGdlbmVyYXRlZCwKKyAqIGFuZCB0aGUgcHJvY2VzcyByZXBlYXRzIHVudGlsIGEgc2VydmljZSBvYmplY3QgaXMgcmV0dXJuZWQgb3IgdW50aWwKKyAqIHRoZSBpZCBoYXMgbm8gZnVydGhlciBmYWxsYmFja3MuPC9wPgorICoKKyAqIDxwPkZhY3RvcmllcyBjYW4gYmUgZHluYW1pY2FsbHkgcmVnaXN0ZXJlZCBhbmQgdW5yZWdpc3RlcmVkIHdpdGggdGhlCisgKiBzZXJ2aWNlLiAgV2hlbiByZWdpc3RlcmVkLCBhIEZhY3RvcnkgaXMgaW5zdGFsbGVkIGF0IHRoZSBoZWFkIG9mCisgKiB0aGUgZmFjdG9yeSBsaXN0LCBhbmQgc28gZ2V0cyAnZmlyc3QgY3JhY2snIGF0IGFueSBrZXlzIG9yIGZhbGxiYWNrCisgKiBrZXlzLiAgV2hlbiB1bnJlZ2lzdGVyZWQsIGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUgc2VydmljZSBhbmQgY2FuIG5vCisgKiBsb25nZXIgYmUgbG9jYXRlZCB0aHJvdWdoIGl0LiAgU2VydmljZSBvYmplY3RzIGdlbmVyYXRlZCBieSB0aGlzCisgKiBmYWN0b3J5IGFuZCBoZWxkIGJ5IHRoZSBjbGllbnQgYXJlIHVuYWZmZWN0ZWQuPC9wPgorICoKKyAqIDxwPklDVVNlcnZpY2UgdXNlcyBLZXlzIHRvIHF1ZXJ5IGZhY3RvcmllcyBhbmQgcGVyZm9ybQorICogZmFsbGJhY2suICBUaGUgS2V5IGRlZmluZXMgdGhlIGNhbm9uaWNhbCBmb3JtIG9mIHRoZSBpZCwgYW5kCisgKiBpbXBsZW1lbnRzIHRoZSBmYWxsYmFjayBzdHJhdGVneS4gIEN1c3RvbSBLZXlzIGNhbiBiZSBkZWZpbmVkIHRoYXQKKyAqIHBhcnNlIGNvbXBsZXggSURzIGludG8gY29tcG9uZW50cyB0aGF0IEZhY3RvcmllcyBjYW4gbW9yZSBlYXNpbHkKKyAqIHVzZS4gIFRoZSBLZXkgY2FuIGNhY2hlIHRoZSByZXN1bHRzIG9mIHRoaXMgcGFyc2luZyB0byBzYXZlCisgKiByZXBlYXRlZCBlZmZvcnQuICBJQ1VTZXJ2aWNlIHByb3ZpZGVzIGNvbnZlbmllbmNlIEFQSXMgdGhhdAorICogdGFrZSBTdHJpbmdzIGFuZCBnZW5lcmF0ZSBkZWZhdWx0IEtleXMgZm9yIHVzZSBpbiBxdWVyeWluZy48L3A+CisgKgorICogPHA+SUNVU2VydmljZSBwcm92aWRlcyBBUEkgdG8gZ2V0IHRoZSBsaXN0IG9mIGlkcyBwdWJsaWNseQorICogc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2aWNlIChhbHRob3VnaCBxdWVyaWVzIGFyZW4ndCByZXN0cmljdGVkIHRvCisgKiB0aGlzIGxpc3QpLiAgVGhpcyBsaXN0IGNvbnRhaW5zIG9ubHkgJ3NpbXBsZScgSURzLCBhbmQgbm90IGZ1bGx5CisgKiB1bmlxdWUgaWRzLiAgRmFjdG9yaWVzIGFyZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBzaW1wbGUgSUQgYW5kCisgKiB0aGUgcmVzcG9uc2libGUgZmFjdG9yeSBjYW4gYWxzbyByZXR1cm4gYSBodW1hbi1yZWFkYWJsZSBsb2NhbGl6ZWQKKyAqIHZlcnNpb24gb2YgdGhlIHNpbXBsZSBJRCwgZm9yIHVzZSBpbiB1c2VyIGludGVyZmFjZXMuICBJQ1VTZXJ2aWNlCisgKiBjYW4gYWxzbyBwcm92aWRlIGEgc29ydGVkIGNvbGxlY3Rpb24gb2YgdGhlIGFsbCB0aGUgbG9jYWxpemVkIHZpc2libGUKKyAqIGlkcy48L3A+CisgKgorICogPHA+SUNVU2VydmljZSBpbXBsZW1lbnRzIElDVU5vdGlmaWVyLCBzbyB0aGF0IGNsaWVudHMgY2FuIHJlZ2lzdGVyCisgKiB0byByZWNlaXZlIG5vdGlmaWNhdGlvbiB3aGVuIGZhY3RvcmllcyBhcmUgYWRkZWQgb3IgcmVtb3ZlZCBmcm9tCisgKiB0aGUgc2VydmljZS4gIElDVVNlcnZpY2UgcHJvdmlkZXMgYSBkZWZhdWx0IEV2ZW50TGlzdGVuZXIgc3ViaW50ZXJmYWNlLAorICogU2VydmljZUxpc3RlbmVyLCB3aGljaCBjYW4gYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzZXJ2aWNlLiAgV2hlbgorICogdGhlIHNlcnZpY2UgY2hhbmdlcywgdGhlIFNlcnZpY2VMaXN0ZW5lcidzIHNlcnZpY2VDaGFuZ2VkIG1ldGhvZAorICogaXMgY2FsbGVkLCB3aXRoIHRoZSBzZXJ2aWNlIGFzIHRoZSBvbmx5IGFyZ3VtZW50LjwvcD4KKyAqCisgKiA8cD5UaGUgSUNVU2VydmljZSBBUEkgaXMgYm90aCByaWNoIGFuZCBnZW5lcmljLCBhbmQgaXQgaXMgZXhwZWN0ZWQKKyAqIHRoYXQgbW9zdCBpbXBsZW1lbnRhdGlvbnMgd2lsbCBzdGF0aWNhbGx5ICd3cmFwJyBJQ1VTZXJ2aWNlIHRvCisgKiBwcmVzZW50IGEgbW9yZSBhcHByb3ByaWF0ZSBBUEktLSBmb3IgZXhhbXBsZSwgdG8gZGVjbGFyZSB0aGUgdHlwZQorICogb2YgdGhlIG9iamVjdHMgcmV0dXJuZWQgZnJvbSBnZXQsIHRvIGxpbWl0IHRoZSBmYWN0b3JpZXMgdGhhdCBjYW4KKyAqIGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc2VydmljZSwgb3IgdG8gZGVmaW5lIHRoZWlyIG93biBsaXN0ZW5lcgorICogaW50ZXJmYWNlIHdpdGggYSBjdXN0b20gY2FsbGJhY2sgbWV0aG9kLiAgVGhleSBtaWdodCBhbHNvIGN1c3RvbWl6ZQorICogSUNVU2VydmljZSBieSBvdmVycmlkaW5nIGl0LCBmb3IgZXhhbXBsZSwgdG8gY3VzdG9taXplIHRoZSBLZXkgYW5kCisgKiBmYWxsYmFjayBzdHJhdGVneS4gIElDVUxvY2FsZVNlcnZpY2UgaXMgYSBjdXN0b21pemVkIHNlcnZpY2UgdGhhdAorICogdXNlcyBMb2NhbGUgbmFtZXMgYXMgaWRzIGFuZCB1c2VzIEtleXMgdGhhdCBpbXBsZW1lbnQgdGhlIHN0YW5kYXJkCisgKiByZXNvdXJjZSBidW5kbGUgZmFsbGJhY2sgc3RyYXRlZ3kuPHA+CisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VTZXJ2aWNlIGV4dGVuZHMgSUNVTm90aWZpZXIgeworICAgIC8qKgorICAgICAqIE5hbWUgdXNlZCBmb3IgZGVidWdnaW5nLgorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgbmFtZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBJQ1VTZXJ2aWNlKCkgeworICAgICAgICBuYW1lID0gIiI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoInNlcnZpY2UiKTsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Qgd2l0aCBhIG5hbWUgKHVzZWZ1bCBmb3IgZGVidWdnaW5nKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVU2VydmljZShTdHJpbmcgbmFtZSkgeworICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VzcyB0byBmYWN0b3JpZXMgaXMgcHJvdGVjdGVkIGJ5IGEgcmVhZC13cml0ZSBsb2NrLiAgVGhpcyBpcworICAgICAqIHRvIGFsbG93IG11bHRpcGxlIHRocmVhZHMgdG8gcmVhZCBjb25jdXJyZW50bHksIGJ1dCBrZWVwCisgICAgICogY2hhbmdlcyB0byB0aGUgZmFjdG9yeSBsaXN0IGF0b21pYyB3aXRoIHJlc3BlY3QgdG8gYWxsIHJlYWRlcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBJQ1VSV0xvY2sgZmFjdG9yeUxvY2sgPSBuZXcgSUNVUldMb2NrKCk7CisKKyAgICAvKioKKyAgICAgKiBBbGwgdGhlIGZhY3RvcmllcyByZWdpc3RlcmVkIHdpdGggdGhpcyBzZXJ2aWNlLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgTGlzdCBmYWN0b3JpZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZWNvcmQgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIGZhY3RvcmllcyBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAqIENhbiBiZSBzZXQgYnkgbWFya0RlZmF1bHQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZGVmYXVsdFNpemUgPSAwOworCisgICAgLyoqCisgICAgICogS2V5cyBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIGZhY3RvcmllcyB0byBnZW5lcmF0ZSBhbgorICAgICAqIGluc3RhbmNlIG9mIHRoZSBzZXJ2aWNlLiAgS2V5cyBkZWZpbmUgaG93IGlkcyBhcmUKKyAgICAgKiBjYW5vbmljYWxpemVkLCBwcm92aWRlIGJvdGggYSBjdXJyZW50IGlkIGFuZCBhIGN1cnJlbnQKKyAgICAgKiBkZXNjcmlwdG9yIHRvIHVzZSBpbiBxdWVyeWluZyB0aGUgY2FjaGUgYW5kIGZhY3RvcmllcywgYW5kCisgICAgICogZGV0ZXJtaW5lIHRoZSBmYWxsYmFjayBzdHJhdGVneS48L3A+CisgICAgICoKKyAgICAgKiA8cD5LZXlzIHByb3ZpZGUgYm90aCBhIGN1cnJlbnREZXNjcmlwdG9yIGFuZCBhIGN1cnJlbnRJRC4KKyAgICAgKiBUaGUgZGVzY3JpcHRvciBjb250YWlucyBhbiBvcHRpb25hbCBwcmVmaXgsIGZvbGxvd2VkIGJ5ICcvJworICAgICAqIGFuZCB0aGUgY3VycmVudElELiAgRmFjdG9yaWVzIHRoYXQgaGFuZGxlIGNvbXBsZXgga2V5cywKKyAgICAgKiBmb3IgZXhhbXBsZSBudW1iZXIgZm9ybWF0IGZhY3RvcmllcyB0aGF0IGdlbmVyYXRlIG11bHRpcGxlCisgICAgICoga2luZHMgb2YgZm9ybWF0dGVycyBmb3IgdGhlIHNhbWUgbG9jYWxlLCB1c2UgdGhlIGRlc2NyaXB0b3IKKyAgICAgKiB0byBwcm92aWRlIGEgZnVsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzZXJ2aWNlIG9iamVjdCwKKyAgICAgKiB3aGlsZSB1c2luZyB0aGUgY3VycmVudElEIChpbiB0aGlzIGNhc2UsIHRoZSBsb2NhbGUgc3RyaW5nKSwKKyAgICAgKiBhcyB0aGUgdmlzaWJsZSBJRHMgdGhhdCBjYW4gYmUgbG9jYWxpemVkLgorICAgICAqCisgICAgICogPHA+IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIEtleSBoYXMgbm8gZmFsbGJhY2tzIGFuZAorICAgICAqIGhhcyBubyBjdXN0b20gZGVzY3JpcHRvcnMuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgS2V5IHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgaWQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdCBhIGtleSBmcm9tIGFuIGlkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEtleShTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHRoaXMuaWQgPSBpZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIG9yaWdpbmFsIElEIHVzZWQgdG8gY29uc3RydWN0IHRoaXMga2V5LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIFN0cmluZyBpZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIGNhbm9uaWNhbCB2ZXJzaW9uIG9mIHRoZSBvcmlnaW5hbCBJRC4gIFRoaXMgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICogcmV0dXJucyB0aGUgb3JpZ2luYWwgSUQgdW5jaGFuZ2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjYW5vbmljYWxJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIChjYW5vbmljYWwpIGN1cnJlbnQgSUQuICBUaGlzIGltcGxlbWVudGF0aW9uCisgICAgICAgICAqIHJldHVybnMgdGhlIGNhbm9uaWNhbCBJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY3VycmVudElEKCkgeworICAgICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbElEKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IGRlc2NyaXB0b3IuICBUaGlzIGltcGxlbWVudGF0aW9uIHJldHVybnMKKyAgICAgICAgICogdGhlIGN1cnJlbnQgSUQuICBUaGUgY3VycmVudCBkZXNjcmlwdG9yIGlzIHVzZWQgdG8gZnVsbHkKKyAgICAgICAgICogaWRlbnRpZnkgYW4gaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2UgaW4gdGhlIGNhY2hlLiAgQQorICAgICAgICAgKiBmYWN0b3J5IG1heSBoYW5kbGUgYWxsIGRlc2NyaXB0b3JzIGZvciBhbiBJRCwgb3IganVzdCBhCisgICAgICAgICAqIHBhcnRpY3VsYXIgZGVzY3JpcHRvci4gIFRoZSBmYWN0b3J5IGNhbiBlaXRoZXIgcGFyc2UgdGhlCisgICAgICAgICAqIGRlc2NyaXB0b3Igb3IgdXNlIGN1c3RvbSBBUEkgb24gdGhlIGtleSBpbiBvcmRlciB0bworICAgICAgICAgKiBpbnN0YW50aWF0ZSB0aGUgc2VydmljZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY3VycmVudERlc2NyaXB0b3IoKSB7CisgICAgICAgICAgICByZXR1cm4gIi8iICsgY3VycmVudElEKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdGhlIGtleSBoYXMgYSBmYWxsYmFjaywgbW9kaWZ5IHRoZSBrZXkgYW5kIHJldHVybiB0cnVlLAorICAgICAgICAgKiBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLiAgVGhlIGN1cnJlbnQgSUQgd2lsbCBjaGFuZ2UgaWYgdGhlcmUKKyAgICAgICAgICogaXMgYSBmYWxsYmFjay4gIE5vIGN1cnJlbnRJRHMgc2hvdWxkIGJlIHJlcGVhdGVkLCBhbmQgZmFsbGJhY2sKKyAgICAgICAgICogbXVzdCBldmVudHVhbGx5IHJldHVybiBmYWxzZS4gIFRoaXMgaW1wbG1lbnRhdGlvbiBoYXMgbm8gZmFsbGJhY2tzCisgICAgICAgICAqIGFuZCBhbHdheXMgcmV0dXJucyBmYWxzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGZhbGxiYWNrKCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIGEga2V5IGNyZWF0ZWQgZnJvbSBpZCB3b3VsZCBldmVudHVhbGx5IGZhbGxiYWNrIHRvIG1hdGNoIHRoZQorICAgICAgICAgKiBjYW5vbmljYWwgSUQgb2YgdGhpcyBrZXksIHJldHVybiB0cnVlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNGYWxsYmFja09mKFN0cmluZyBpZCkgeworICAgICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbElEKCkuZXF1YWxzKGlkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcmllcyBnZW5lcmF0ZSB0aGUgc2VydmljZSBvYmplY3RzIG1haW50YWluZWQgYnkgdGhlCisgICAgICogc2VydmljZS4gIEEgZmFjdG9yeSBnZW5lcmF0ZXMgYSBzZXJ2aWNlIG9iamVjdCBmcm9tIGEga2V5LAorICAgICAqIHVwZGF0ZXMgaWQtPmZhY3RvcnkgbWFwcGluZ3MsIGFuZCByZXR1cm5zIHRoZSBkaXNwbGF5IG5hbWUgZm9yCisgICAgICogYSBzdXBwb3J0ZWQgaWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRmFjdG9yeSB7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBhIHNlcnZpY2Ugb2JqZWN0IGZyb20gdGhlIGtleSwgaWYgdGhpcyBmYWN0b3J5CisgICAgICAgICAqIHN1cHBvcnRzIHRoZSBrZXkuICBPdGhlcndpc2UsIHJldHVybiBudWxsLgorICAgICAgICAgKgorICAgICAgICAgKiA8cD5JZiB0aGUgZmFjdG9yeSBzdXBwb3J0cyB0aGUga2V5LCB0aGVuIGl0IGNhbiBjYWxsCisgICAgICAgICAqIHRoZSBzZXJ2aWNlJ3MgZ2V0S2V5KEtleSwgU3RyaW5nW10sIEZhY3RvcnkpIG1ldGhvZAorICAgICAgICAgKiBwYXNzaW5nIGl0c2VsZiBhcyB0aGUgZmFjdG9yeSB0byBnZXQgdGhlIG9iamVjdCB0aGF0CisgICAgICAgICAqIHRoZSBzZXJ2aWNlIHdvdWxkIGhhdmUgY3JlYXRlZCBwcmlvciB0byB0aGUgZmFjdG9yeSdzCisgICAgICAgICAqIHJlZ2lzdHJhdGlvbiB3aXRoIHRoZSBzZXJ2aWNlLiAgVGhpcyBjYW4gY2hhbmdlIHRoZQorICAgICAgICAgKiBrZXksIHNvIGFueSBpbmZvcm1hdGlvbiByZXF1aXJlZCBmcm9tIHRoZSBrZXkgc2hvdWxkCisgICAgICAgICAqIGJlIGV4dHJhY3RlZCBiZWZvcmUgbWFraW5nIHN1Y2ggYSBjYWxsYmFjay4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVwZGF0ZSB0aGUgcmVzdWx0IElEcyAobm90IGRlc2NyaXB0b3JzKSB0byByZWZsZWN0IHRoZSBJRHMKKyAgICAgICAgICogdGhpcyBmYWN0b3J5IGhhbmRsZXMuICBUaGlzIGZ1bmN0aW9uIGFuZCBnZXREaXNwbGF5TmFtZSBhcmUKKyAgICAgICAgICogdXNlZCB0byBzdXBwb3J0IElDVVNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzLiAgQmFzaWNhbGx5LCB0aGUKKyAgICAgICAgICogZmFjdG9yeSBoYXMgdG8gZGV0ZXJtaW5lIHdoaWNoIElEcyBpdCB3aWxsIHBlcm1pdCB0byBiZQorICAgICAgICAgKiBhdmFpbGFibGUsIGFuZCBvZiB0aG9zZSwgd2hpY2ggaXQgd2lsbCBwcm92aWRlIGxvY2FsaXplZAorICAgICAgICAgKiBkaXNwbGF5IG5hbWVzIGZvci4gIEluIG1vc3QgY2FzZXMgdGhpcyByZWZsZWN0cyB0aGUgSURzIHRoYXQKKyAgICAgICAgICogdGhlIGZhY3RvcnkgZGlyZWN0bHkgc3VwcG9ydHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhpcyBpZCBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAgICAgKiBUaGlzIGlzIGFuIGxvY2FsaXplZCBpZCwgbm90IGEgZGVzY3JpcHRvci4gIElmIHRoZSBpZCBpcworICAgICAgICAgKiBub3QgdmlzaWJsZSBvciBub3QgZGVmaW5lZCBieSB0aGUgZmFjdG9yeSwgcmV0dXJuIG51bGwuCisgICAgICAgICAqIElmIGxvY2FsZSBpcyBudWxsLCByZXR1cm4gaWQgdW5jaGFuZ2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgZmFjdG9yeS4gIFRoaXMgcHJvdmlkZXMgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9ucyBmb3Igc3ViY2xhc3NlcywgYW5kIGltcGxlbWVudHMgYSBzaW5nbGV0b24KKyAgICAgKiBmYWN0b3J5IHRoYXQgbWF0Y2hlcyBhIHNpbmdsZSBpZCAgYW5kIHJldHVybnMgYSBzaW5nbGUKKyAgICAgKiAocG9zc2libHkgZGVmZXJyZWQtaW5pdGlhbGl6ZWQpIGluc3RhbmNlLiAgVGhpcyBpbXBsZW1lbnRzCisgICAgICogdXBkYXRlVmlzaWJsZUlEcyB0byBhZGQgYSBtYXBwaW5nIGZyb20gaXRzIElEIHRvIGl0c2VsZgorICAgICAqIGlmIHZpc2libGUgaXMgdHJ1ZSwgb3IgdG8gcmVtb3ZlIGFueSBleGlzdGluZyBtYXBwaW5nCisgICAgICogZm9yIGl0cyBJRCBpZiB2aXNpYmxlIGlzIGZhbHNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2ltcGxlRmFjdG9yeSBpbXBsZW1lbnRzIEZhY3RvcnkgeworICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGluc3RhbmNlOworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGlkOworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2aXNpYmxlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBjb25zdHJ1Y3RvciB0aGF0IGNhbGxzIFNpbXBsZUZhY3RvcnkoT2JqZWN0LCBTdHJpbmcsIGJvb2xlYW4pCisgICAgICAgICAqIHdpdGggdmlzaWJsZSB0cnVlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFNpbXBsZUZhY3RvcnkoT2JqZWN0IGluc3RhbmNlLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHRoaXMoaW5zdGFuY2UsIGlkLCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3QgYSBzaW1wbGUgZmFjdG9yeSB0aGF0IG1hcHMgYSBzaW5nbGUgaWQgdG8gYSBzaW5nbGUKKyAgICAgICAgICogc2VydmljZSBpbnN0YW5jZS4gIElmIHZpc2libGUgaXMgdHJ1ZSwgdGhlIGlkIHdpbGwgYmUgdmlzaWJsZS4KKyAgICAgICAgICogTmVpdGhlciB0aGUgaW5zdGFuY2Ugbm9yIHRoZSBpZCBjYW4gYmUgbnVsbC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVGYWN0b3J5KE9iamVjdCBpbnN0YW5jZSwgU3RyaW5nIGlkLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgICAgIGlmIChpbnN0YW5jZSA9PSBudWxsIHx8IGlkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnN0YW5jZSBvciBpZCBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7CisgICAgICAgICAgICB0aGlzLmlkID0gaWQ7CisgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgc2VydmljZSBpbnN0YW5jZSBpZiB0aGUgZmFjdG9yeSdzIGlkIGlzIGVxdWFsIHRvCisgICAgICAgICAqIHRoZSBrZXkncyBjdXJyZW50SUQuICBTZXJ2aWNlIGlzIGlnbm9yZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIGlmIChpZC5lcXVhbHMoa2V5LmN1cnJlbnRJRCgpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIHZpc2libGUsIGFkZHMgYSBtYXBwaW5nIGZyb20gaWQgLT4gdGhpcyB0byB0aGUgcmVzdWx0LAorICAgICAgICAgKiBvdGhlcndpc2UgcmVtb3ZlcyBpZCBmcm9tIHJlc3VsdC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucHV0KGlkLCB0aGlzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnJlbW92ZShpZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdGhpcy5pZCBlcXVhbHMgaWQsIHJldHVybnMgaWQgcmVnYXJkbGVzcyBvZiBsb2NhbGUsCisgICAgICAgICAqIG90aGVyd2lzZSByZXR1cm5zIG51bGwuICAoVGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGhhcworICAgICAgICAgKiBubyBsb2NhbGl6ZWQgaWQgaW5mb3JtYXRpb24uKQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICByZXR1cm4gKHZpc2libGUgJiYgdGhpcy5pZC5lcXVhbHMoaWQpKSA/IGlkIDogbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBGb3IgZGVidWdnaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCBpZDogIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKGlkKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgdmlzaWJsZTogIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHZpc2libGUpOworICAgICAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGdldChTdHJpbmcsIFN0cmluZ1tdKS4gVGhpcyB1c2VzCisgICAgICogY3JlYXRlS2V5IHRvIGNyZWF0ZSBhIGtleSBmb3IgdGhlIHByb3ZpZGVkIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoU3RyaW5nIGRlc2NyaXB0b3IpIHsKKyAgICAgICAgcmV0dXJuIGdldEtleShjcmVhdGVLZXkoZGVzY3JpcHRvciksIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBnZXQoS2V5LCBTdHJpbmdbXSkuICBUaGlzIHVzZXMKKyAgICAgKiBjcmVhdGVLZXkgdG8gY3JlYXRlIGEga2V5IGZyb20gdGhlIHByb3ZpZGVkIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoU3RyaW5nIGRlc2NyaXB0b3IsIFN0cmluZ1tdIGFjdHVhbFJldHVybikgeworICAgICAgICBpZiAoZGVzY3JpcHRvciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oImRlc2NyaXB0b3IgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRLZXkoY3JlYXRlS2V5KGRlc2NyaXB0b3IpLCBhY3R1YWxSZXR1cm4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBnZXQoS2V5LCBTdHJpbmdbXSkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRLZXkoS2V5IGtleSkgeworICAgICAgICByZXR1cm4gZ2V0S2V5KGtleSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+R2l2ZW4gYSBrZXksIHJldHVybiBhIHNlcnZpY2Ugb2JqZWN0LCBhbmQsIGlmIGFjdHVhbFJldHVybgorICAgICAqIGlzIG5vdCBudWxsLCB0aGUgZGVzY3JpcHRvciB3aXRoIHdoaWNoIGl0IHdhcyBmb3VuZCBpbiB0aGUKKyAgICAgKiBmaXJzdCBlbGVtZW50IG9mIGFjdHVhbFJldHVybi4gIElmIG5vIHNlcnZpY2Ugb2JqZWN0IG1hdGNoZXMKKyAgICAgKiB0aGlzIGtleSwgcmV0dXJuIG51bGwsIGFuZCBsZWF2ZSBhY3R1YWxSZXR1cm4gdW5jaGFuZ2VkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgcXVlcmllcyB0aGUgY2FjaGUgdXNpbmcgdGhlIGtleSdzIGRlc2NyaXB0b3IsIGFuZCBpZiBubworICAgICAqIG9iamVjdCBpbiB0aGUgY2FjaGUgbWF0Y2hlcyBpdCwgdHJpZXMgdGhlIGtleSBvbiBlYWNoCisgICAgICogcmVnaXN0ZXJlZCBmYWN0b3J5LCBpbiBvcmRlci4gIElmIG5vbmUgZ2VuZXJhdGVzIGEgc2VydmljZQorICAgICAqIG9iamVjdCBmb3IgdGhlIGtleSwgcmVwZWF0cyB0aGUgcHJvY2VzcyB3aXRoIGVhY2ggZmFsbGJhY2sgb2YKKyAgICAgKiB0aGUga2V5LCB1bnRpbCBlaXRoZXIgb25lIHJldHVybnMgYSBzZXJ2aWNlIG9iamVjdCwgb3IgdGhlIGtleQorICAgICAqIGhhcyBubyBmYWxsYmFjay48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiBrZXkgaXMgbnVsbCwganVzdCByZXR1cm5zIG51bGwuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0S2V5KEtleSBrZXksIFN0cmluZ1tdIGFjdHVhbFJldHVybikgeworICAgICAgICByZXR1cm4gZ2V0S2V5KGtleSwgYWN0dWFsUmV0dXJuLCBudWxsKTsKKyAgICB9CisKKyAgICAvLyBkZWJ1Z2dpbmcKKyAgICAvLyBNYXAgaGFyZFJlZjsKKworICAgIHB1YmxpYyBPYmplY3QgZ2V0S2V5KEtleSBrZXksIFN0cmluZ1tdIGFjdHVhbFJldHVybiwgRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIGlmIChmYWN0b3JpZXMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVEZWZhdWx0KGtleSwgYWN0dWFsUmV0dXJuKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTZXJ2aWNlOiAiICsgbmFtZSArICIga2V5OiAiICsga2V5LmNhbm9uaWNhbElEKCkpOworCisgICAgICAgIENhY2hlRW50cnkgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaWYgKGtleSAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIFRoZSBmYWN0b3J5IGxpc3QgY2FuJ3QgYmUgbW9kaWZpZWQgdW50aWwgd2UncmUgZG9uZSwKKyAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2Ugd2UgbWlnaHQgdXBkYXRlIHRoZSBjYWNoZSB3aXRoIGFuIGludmFsaWQgcmVzdWx0LgorICAgICAgICAgICAgICAgIC8vIFRoZSBjYWNoZSBoYXMgdG8gc3RheSBpbiBzeW5jaCB3aXRoIHRoZSBmYWN0b3J5IGxpc3QuCisgICAgICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVJlYWQoKTsKKworICAgICAgICAgICAgICAgIE1hcCBjYWNoZSA9IG51bGw7CisgICAgICAgICAgICAgICAgU29mdFJlZmVyZW5jZSBjcmVmID0gY2FjaGVyZWY7IC8vIGNvcHkgc28gd2UgZG9uJ3QgbmVlZCB0byBzeW5jIG9uIHRoaXMKKyAgICAgICAgICAgICAgICBpZiAoY3JlZiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTZXJ2aWNlICIgKyBuYW1lICsgIiByZWYgZXhpc3RzIik7CisgICAgICAgICAgICAgICAgICAgIGNhY2hlID0gKE1hcCljcmVmLmdldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2FjaGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiU2VydmljZSAiICsgbmFtZSArICIgY2FjaGUgd2FzIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgICAgIC8vIHN5bmNocm9uaXplZCBzaW5jZSBhZGRpdGlvbnMgYW5kIHF1ZXJpZXMgb24gdGhlIGNhY2hlIG11c3QgYmUgYXRvbWljCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZXkgY2FuIGJlIGludGVybGVhdmVkLCB0aG91Z2gKKyAgICAgICAgICAgICAgICAgICAgY2FjaGUgPSBDb2xsZWN0aW9ucy5zeW5jaHJvbml6ZWRNYXAobmV3IEhhc2hNYXAoKSk7CisvLyAgICAgICAgICAgICAgICAgIGhhcmRSZWYgPSBjYWNoZTsgLy8gZGVidWcKKyAgICAgICAgICAgICAgICAgICAgY3JlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKGNhY2hlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3VycmVudERlc2NyaXB0b3IgPSBudWxsOworICAgICAgICAgICAgICAgIEFycmF5TGlzdCBjYWNoZURlc2NyaXB0b3JMaXN0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICBib29sZWFuIHB1dEluQ2FjaGUgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGludCBORGVidWcgPSAwOworCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0SW5kZXggPSAwOworICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IGZhY3Rvcmllcy5zaXplKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBjYWNoZVJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKGZhY3RvcnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWN0b3J5ID09IGZhY3Rvcmllcy5nZXQoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gaSArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0SW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiRmFjdG9yeSAiICsgZmFjdG9yeSArICJub3QgcmVnaXN0ZXJlZCB3aXRoIHNlcnZpY2U6ICIgKyB0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYWNoZVJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb3V0ZXI6CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBjdXJyZW50RGVzY3JpcHRvciA9IGtleS5jdXJyZW50RGVzY3JpcHRvcigpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbihuYW1lICsgIlsiICsgTkRlYnVnKysgKyAiXSBsb29raW5nIGZvcjogIiArIGN1cnJlbnREZXNjcmlwdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKENhY2hlRW50cnkpY2FjaGUuZ2V0KGN1cnJlbnREZXNjcmlwdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbihuYW1lICsgIiBmb3VuZCB3aXRoIGRlc2NyaXB0b3I6ICIgKyBjdXJyZW50RGVzY3JpcHRvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJkaWQgbm90IGZpbmQ6ICIgKyBjdXJyZW50RGVzY3JpcHRvciArICIgaW4gY2FjaGUiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGZpcnN0IHRlc3Qgb2YgY2FjaGUgZmFpbGVkLCBzbyB3ZSdsbCBoYXZlIHRvIHVwZGF0ZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY2FjaGUgaWYgd2UgZXZlbnR1YWxseSBzdWNjZWVkLS0gdGhhdCBpcywgaWYgd2UncmUKKyAgICAgICAgICAgICAgICAgICAgLy8gZ29pbmcgdG8gdXBkYXRlIHRoZSBjYWNoZSBhdCBhbGwuCisgICAgICAgICAgICAgICAgICAgIHB1dEluQ2FjaGUgPSBjYWNoZVJlc3VsdDsKKworICAgICAgICAgICAgICAgICAgICAvLyAgaW50IG4gPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBzdGFydEluZGV4OworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaW5kZXggPCBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgRmFjdG9yeSBmID0gKEZhY3RvcnkpZmFjdG9yaWVzLmdldChpbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJ0cnlpbmcgZmFjdG9yeVsiICsgKGluZGV4LTEpICsgIl0gIiArIGYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qgc2VydmljZSA9IGYuY3JlYXRlKGtleSwgdGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmljZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IENhY2hlRW50cnkoY3VycmVudERlc2NyaXB0b3IsIHNlcnZpY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiIGZhY3Rvcnkgc3VwcG9ydGVkOiAiICsgY3VycmVudERlc2NyaXB0b3IgKyAiLCBjYWNoaW5nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgb3V0ZXI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJmYWN0b3J5IGRpZCBub3Qgc3VwcG9ydDogIiArIGN1cnJlbnREZXNjcmlwdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIHByZXBhcmUgdG8gbG9hZCB0aGUgY2FjaGUgd2l0aCBhbGwgYWRkaXRpb25hbCBpZHMgdGhhdAorICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIHJlc29sdmUgdG8gcmVzdWx0LCBhc3N1bWluZyB3ZSdsbCBzdWNjZWVkLiAgV2UKKyAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3Qgd2FudCB0byBrZWVwIHF1ZXJ5aW5nIG9uIGFuIGlkIHRoYXQncyBnb2luZyB0bworICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayB0byB0aGUgb25lIHRoYXQgc3VjY2VlZGVkLCB3ZSB3YW50IHRvIGhpdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FjaGUgdGhlIGZpcnN0IHRpbWUgbmV4dCBnb2Fyb3VuZC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlRGVzY3JpcHRvckxpc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVEZXNjcmlwdG9yTGlzdCA9IG5ldyBBcnJheUxpc3QoNSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2FjaGVEZXNjcmlwdG9yTGlzdC5hZGQoY3VycmVudERlc2NyaXB0b3IpOworCisgICAgICAgICAgICAgICAgfSB3aGlsZSAoa2V5LmZhbGxiYWNrKCkpOworCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChwdXRJbkNhY2hlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiY2FjaGluZyAnIiArIHJlc3VsdC5hY3R1YWxEZXNjcmlwdG9yICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlLnB1dChyZXN1bHQuYWN0dWFsRGVzY3JpcHRvciwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZURlc2NyaXB0b3JMaXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gY2FjaGVEZXNjcmlwdG9yTGlzdC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzYyA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiIGFkZGluZyBkZXNjcmlwdG9yOiAnIiArIGRlc2MgKyAiJyBmb3IgYWN0dWFsOiAnIiArIHJlc3VsdC5hY3R1YWxEZXNjcmlwdG9yICsgIiciKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZS5wdXQoZGVzYywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdG9taWMgdXBkYXRlLiAgV2UgaGVsZCB0aGUgcmVhZCBsb2NrIGFsbCB0aGlzIHRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIGtub3cgb3VyIGNhY2hlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZmFjdG9yeSBsaXN0LgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbWlnaHQgc3RvbXAgb3ZlciBhIGNhY2hlIHRoYXQgc29tZSBvdGhlciB0aHJlYWQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYnVpbHQsIGJ1dCB0aGF0J3MgdGhlIGJyZWFrcy4gIFRoZXkncmUgYm90aCBnb29kLgorICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVyZWYgPSBjcmVmOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFjdHVhbFJldHVybiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJpcCBudWxsIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5hY3R1YWxEZXNjcmlwdG9yLmluZGV4T2YoIi8iKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsUmV0dXJuWzBdID0gcmVzdWx0LmFjdHVhbERlc2NyaXB0b3Iuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxSZXR1cm5bMF0gPSByZXN1bHQuYWN0dWFsRGVzY3JpcHRvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJmb3VuZCBpbiBzZXJ2aWNlOiAiICsgbmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5zZXJ2aWNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VSZWFkKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibm90IGZvdW5kIGluIHNlcnZpY2U6ICIgKyBuYW1lKTsKKworICAgICAgICByZXR1cm4gaGFuZGxlRGVmYXVsdChrZXksIGFjdHVhbFJldHVybik7CisgICAgfQorICAgIHByaXZhdGUgU29mdFJlZmVyZW5jZSBjYWNoZXJlZjsKKworICAgIC8vIFJlY29yZCB0aGUgYWN0dWFsIGlkIGZvciB0aGlzIHNlcnZpY2UgaW4gdGhlIGNhY2hlLCBzbyB3ZSBjYW4gcmV0dXJuIGl0CisgICAgLy8gZXZlbiBpZiB3ZSBzdWNjZWVkIGxhdGVyIHdpdGggYSBkaWZmZXJlbnQgaWQuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQ2FjaGVFbnRyeSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBhY3R1YWxEZXNjcmlwdG9yOworICAgICAgICBmaW5hbCBPYmplY3Qgc2VydmljZTsKKyAgICAgICAgQ2FjaGVFbnRyeShTdHJpbmcgYWN0dWFsRGVzY3JpcHRvciwgT2JqZWN0IHNlcnZpY2UpIHsKKyAgICAgICAgICAgIHRoaXMuYWN0dWFsRGVzY3JpcHRvciA9IGFjdHVhbERlc2NyaXB0b3I7CisgICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGhhbmRsZXIgZm9yIHRoaXMgc2VydmljZSBpZiBubyBmYWN0b3J5IGluIHRoZSBsaXN0CisgICAgICogaGFuZGxlZCB0aGUga2V5LgorICAgICAqLworICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlRGVmYXVsdChLZXkga2V5LCBTdHJpbmdbXSBhY3R1YWxJRFJldHVybikgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgZ2V0VmlzaWJsZUlEcyhTdHJpbmcpIHRoYXQgcGFzc2VzIG51bGwKKyAgICAgKiBhcyB0aGUgZmFsbGJhY2ssIHRodXMgcmV0dXJuaW5nIGFsbCB2aXNpYmxlIElEcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGdldFZpc2libGVJRHMoKSB7CisgICAgICAgIHJldHVybiBnZXRWaXNpYmxlSURzKG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybiBhIHNuYXBzaG90IG9mIHRoZSB2aXNpYmxlIElEcyBmb3IgdGhpcyBzZXJ2aWNlLiAgVGhpcworICAgICAqIHNldCB3aWxsIG5vdCBjaGFuZ2UgYXMgRmFjdG9yaWVzIGFyZSBhZGRlZCBvciByZW1vdmVkLCBidXQgdGhlCisgICAgICogc3VwcG9ydGVkIGlkcyB3aWxsLCBzbyB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBhbGwgYW5kIG9ubHkKKyAgICAgKiB0aGUgaWRzIGluIHRoZSByZXR1cm5lZCBzZXQgYXJlIHZpc2libGUgYW5kIHN1cHBvcnRlZCBieSB0aGUKKyAgICAgKiBzZXJ2aWNlIGluIHN1YnNlcXVlbnQgY2FsbHMuPC9wPgorICAgICAqCisgICAgICogPHA+bWF0Y2hJRCBpcyBwYXNzZWQgdG8gY3JlYXRlS2V5IHRvIGNyZWF0ZSBhIGtleS4gIElmIHRoZQorICAgICAqIGtleSBpcyBub3QgbnVsbCwgaXQgaXMgdXNlZCB0byBmaWx0ZXIgb3V0IGlkcyB0aGF0IGRvbid0IGhhdmUKKyAgICAgKiB0aGUga2V5IGFzIGEgZmFsbGJhY2suCisgICAgICovCisgICAgcHVibGljIFNldCBnZXRWaXNpYmxlSURzKFN0cmluZyBtYXRjaElEKSB7CisgICAgICAgIFNldCByZXN1bHQgPSBnZXRWaXNpYmxlSURNYXAoKS5rZXlTZXQoKTsKKworICAgICAgICBLZXkgZmFsbGJhY2tLZXkgPSBjcmVhdGVLZXkobWF0Y2hJRCk7CisKKyAgICAgICAgaWYgKGZhbGxiYWNrS2V5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNldCB0ZW1wID0gbmV3IEhhc2hTZXQocmVzdWx0LnNpemUoKSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gcmVzdWx0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja0tleS5pc0ZhbGxiYWNrT2YoaWQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXAuYWRkKGlkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbWFwIGZyb20gdmlzaWJsZSBpZHMgdG8gZmFjdG9yaWVzLgorICAgICAqLworICAgIHByaXZhdGUgTWFwIGdldFZpc2libGVJRE1hcCgpIHsKKyAgICAgICAgTWFwIGlkY2FjaGUgPSBudWxsOworICAgICAgICBTb2Z0UmVmZXJlbmNlIHJlZiA9IGlkcmVmOworICAgICAgICBpZiAocmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlkY2FjaGUgPSAoTWFwKXJlZi5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoaWRjYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsgLy8gb3IgaWRyZWYtb25seSBsb2NrPworICAgICAgICAgICAgICAgIGlmIChyZWYgPT0gaWRyZWYgfHwgaWRyZWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBubyBvdGhlciB0aHJlYWQgdXBkYXRlZCBpZHJlZiBiZWZvcmUgd2UgZ290IHRoZSBsb2NrLCBzbworICAgICAgICAgICAgICAgICAgICAvLyBncmFiIHRoZSBmYWN0b3J5IGxpc3QgYW5kIHVwZGF0ZSBpdCBvdXJzZWx2ZXMKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnlMb2NrLmFjcXVpcmVSZWFkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZGNhY2hlID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExpc3RJdGVyYXRvciBsSXRlciA9IGZhY3Rvcmllcy5saXN0SXRlcmF0b3IoZmFjdG9yaWVzLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobEl0ZXIuaGFzUHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhY3RvcnkgZiA9IChGYWN0b3J5KWxJdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi51cGRhdGVWaXNpYmxlSURzKGlkY2FjaGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWRjYWNoZSA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZU1hcChpZGNhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkcmVmID0gbmV3IFNvZnRSZWZlcmVuY2UoaWRjYWNoZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3J5TG9jay5yZWxlYXNlUmVhZCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gYW5vdGhlciB0aHJlYWQgdXBkYXRlZCBpZHJlZiwgYnV0IGdjIG1heSBoYXZlIHN0ZXBwZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gaW4gYW5kIHVuZG9uZSBpdHMgd29yaywgbGVhdmluZyBpZGNhY2hlIG51bGwuICBJZiBzbywKKyAgICAgICAgICAgICAgICAgICAgLy8gcmV0cnkuCisgICAgICAgICAgICAgICAgICAgIHJlZiA9IGlkcmVmOworICAgICAgICAgICAgICAgICAgICBpZGNhY2hlID0gKE1hcClyZWYuZ2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGlkY2FjaGU7CisgICAgfQorICAgIHByaXZhdGUgU29mdFJlZmVyZW5jZSBpZHJlZjsKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBnZXREaXNwbGF5TmFtZShTdHJpbmcsIFVMb2NhbGUpIHRoYXQKKyAgICAgKiB1c2VzIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShpZCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgdmlzaWJsZSBpZCwgcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUgaW4gdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICogSWYgdGhlcmUgaXMgbm8gZGlyZWN0bHkgc3VwcG9ydGVkIGlkIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBpZCwgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgTWFwIG0gPSBnZXRWaXNpYmxlSURNYXAoKTsKKyAgICAgICAgRmFjdG9yeSBmID0gKEZhY3RvcnkpbS5nZXQoaWQpOworICAgICAgICBpZiAoZiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZi5nZXREaXNwbGF5TmFtZShpZCwgbG9jYWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIEtleSBrZXkgPSBjcmVhdGVLZXkoaWQpOworICAgICAgICB3aGlsZSAoa2V5LmZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgIGYgPSAoRmFjdG9yeSltLmdldChrZXkuY3VycmVudElEKCkpOworICAgICAgICAgICAgaWYgKGYgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0IAorICAgICAqIHVzZXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUgYXMgdGhlIGxvY2FsZSwgbnVsbCBhcworICAgICAqIHRoZSBjb21wYXJhdG9yLCBhbmQgbnVsbCBmb3IgdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoKSB7CisgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZXMobG9jYWxlLCBudWxsLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0CisgICAgICogdXNlcyBudWxsIGZvciB0aGUgY29tcGFyYXRvciwgYW5kIG51bGwgZm9yIHRoZSBtYXRjaElELgorICAgICAqLworICAgIHB1YmxpYyBTb3J0ZWRNYXAgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZXMobG9jYWxlLCBudWxsLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0CisgICAgICogdXNlcyBudWxsIGZvciB0aGUgbWF0Y2hJRCwgdGh1cyByZXR1cm5pbmcgYWxsIGRpc3BsYXkgbmFtZXMuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSBsb2NhbGUsIENvbXBhcmF0b3IgY29tKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZXMobG9jYWxlLCBjb20sIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQKKyAgICAgKiB1c2VzIG51bGwgZm9yIHRoZSBjb21wYXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBTb3J0ZWRNYXAgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgbWF0Y2hJRCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSwgbnVsbCwgbWF0Y2hJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc25hcHNob3Qgb2YgdGhlIG1hcHBpbmcgZnJvbSBkaXNwbGF5IG5hbWVzIHRvIHZpc2libGUKKyAgICAgKiBJRHMgZm9yIHRoaXMgc2VydmljZS4gIFRoaXMgc2V0IHdpbGwgbm90IGNoYW5nZSBhcyBmYWN0b3JpZXMKKyAgICAgKiBhcmUgYWRkZWQgb3IgcmVtb3ZlZCwgYnV0IHRoZSBzdXBwb3J0ZWQgaWRzIHdpbGwsIHNvIHRoZXJlIGlzCisgICAgICogbm8gZ3VhcmFudGVlIHRoYXQgYWxsIGFuZCBvbmx5IHRoZSBpZHMgaW4gdGhlIHJldHVybmVkIG1hcCB3aWxsCisgICAgICogYmUgdmlzaWJsZSBhbmQgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2aWNlIGluIHN1YnNlcXVlbnQgY2FsbHMsCisgICAgICogbm9yIGlzIHRoZXJlIGFueSBndWFyYW50ZWUgdGhhdCB0aGUgY3VycmVudCBkaXNwbGF5IG5hbWVzIG1hdGNoCisgICAgICogdGhvc2UgaW4gdGhlIHNldC4gIFRoZSBkaXNwbGF5IG5hbWVzIGFyZSBzb3J0ZWQgYmFzZWQgb24gdGhlCisgICAgICogY29tcGFyYXRvciBwcm92aWRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlIGxvY2FsZSwgQ29tcGFyYXRvciBjb20sIFN0cmluZyBtYXRjaElEKSB7CisgICAgICAgIFNvcnRlZE1hcCBkbmNhY2hlID0gbnVsbDsKKyAgICAgICAgTG9jYWxlUmVmIHJlZiA9IGRucmVmOworCisgICAgICAgIGlmIChyZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgZG5jYWNoZSA9IHJlZi5nZXQobG9jYWxlLCBjb20pOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKGRuY2FjaGUgPT0gbnVsbCkgeworICAgICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlZiA9PSBkbnJlZiB8fCBkbnJlZiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGRuY2FjaGUgPSBuZXcgVHJlZU1hcChjb20pOyAvLyBzb3J0ZWQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIE1hcCBtID0gZ2V0VmlzaWJsZUlETWFwKCk7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGVpID0gbS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChlaS5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5IGUgPSAoRW50cnkpZWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZyllLmdldEtleSgpOworICAgICAgICAgICAgICAgICAgICAgICAgRmFjdG9yeSBmID0gKEZhY3RvcnkpZS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZG5jYWNoZS5wdXQoZi5nZXREaXNwbGF5TmFtZShpZCwgbG9jYWxlKSwgaWQpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZG5jYWNoZSA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNvcnRlZE1hcChkbmNhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgZG5yZWYgPSBuZXcgTG9jYWxlUmVmKGRuY2FjaGUsIGxvY2FsZSwgY29tKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZWYgPSBkbnJlZjsKKyAgICAgICAgICAgICAgICAgICAgZG5jYWNoZSA9IHJlZi5nZXQobG9jYWxlLCBjb20pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEtleSBtYXRjaEtleSA9IGNyZWF0ZUtleShtYXRjaElEKTsKKyAgICAgICAgaWYgKG1hdGNoS2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBkbmNhY2hlOworICAgICAgICB9CisKKyAgICAgICAgU29ydGVkTWFwIHJlc3VsdCA9IG5ldyBUcmVlTWFwKGRuY2FjaGUpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gcmVzdWx0LmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKCFtYXRjaEtleS5pc0ZhbGxiYWNrT2YoKFN0cmluZyllLmdldFZhbHVlKCkpKSB7CisgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHdlIGRlZmluZSBhIGNsYXNzIHNvIHdlIGdldCBhdG9taWMgc2ltdWx0YW5lb3VzIGFjY2VzcyB0byB0aGUKKyAgICAvLyBsb2NhbGUsIGNvbXBhcmF0b3IsIGFuZCBjb3JyZXNwb25kaW5nIG1hcC4KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBMb2NhbGVSZWYgeworICAgICAgICBwcml2YXRlIGZpbmFsIFVMb2NhbGUgbG9jYWxlOworICAgICAgICBwcml2YXRlIFNvZnRSZWZlcmVuY2UgcmVmOworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3IgY29tOworCisgICAgICAgIExvY2FsZVJlZihNYXAgZG5DYWNoZSwgVUxvY2FsZSBsb2NhbGUsIENvbXBhcmF0b3IgY29tKSB7CisgICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgICAgIHRoaXMuY29tID0gY29tOworICAgICAgICAgICAgdGhpcy5yZWYgPSBuZXcgU29mdFJlZmVyZW5jZShkbkNhY2hlKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgU29ydGVkTWFwIGdldChVTG9jYWxlIGxvY2FsZSwgQ29tcGFyYXRvciBjb20pIHsKKyAgICAgICAgICAgIFNvcnRlZE1hcCBtID0gKFNvcnRlZE1hcClyZWYuZ2V0KCk7CisgICAgICAgICAgICBpZiAobSAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUuZXF1YWxzKGxvY2FsZSkgJiYKKyAgICAgICAgICAgICAgICAodGhpcy5jb20gPT0gY29tIHx8ICh0aGlzLmNvbSAhPSBudWxsICYmIHRoaXMuY29tLmVxdWFscyhjb20pKSkpIHsKKworICAgICAgICAgICAgICAgIHJldHVybiBtOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBMb2NhbGVSZWYgZG5yZWY7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgY3VycmVudGx5IHJlZ2lzdGVyZWQgZmFjdG9yaWVzLiAgVGhlcmUKKyAgICAgKiBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgbGlzdCB3aWxsIHN0aWxsIG1hdGNoIHRoZSBjdXJyZW50CisgICAgICogZmFjdG9yeSBsaXN0IG9mIHRoZSBzZXJ2aWNlIHN1YnNlcXVlbnQgdG8gdGhpcyBjYWxsLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBMaXN0IGZhY3RvcmllcygpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLmFjcXVpcmVSZWFkKCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5TGlzdChmYWN0b3JpZXMpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHl7CisgICAgICAgICAgICBmYWN0b3J5TG9jay5yZWxlYXNlUmVhZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBjb252ZW5pZW5jZSBvdmVycmlkZSBvZiByZWdpc3Rlck9iamVjdChPYmplY3QsIFN0cmluZywgYm9vbGVhbikKKyAgICAgKiB0aGF0IGRlZmF1bHRzIHZpc2libGUgdG8gdHJ1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRmFjdG9yeSByZWdpc3Rlck9iamVjdChPYmplY3Qgb2JqLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyT2JqZWN0KG9iaiwgaWQsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIG9iamVjdCB3aXRoIHRoZSBwcm92aWRlZCBpZC4gIFRoZSBpZCB3aWxsIGJlCisgICAgICogY2Fub25pY2FsaXplZC4gIFRoZSBjYW5vbmljYWxpemVkIElEIHdpbGwgYmUgcmV0dXJuZWQgYnkKKyAgICAgKiBnZXRWaXNpYmxlSURzIGlmIHZpc2libGUgaXMgdHJ1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRmFjdG9yeSByZWdpc3Rlck9iamVjdChPYmplY3Qgb2JqLCBTdHJpbmcgaWQsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBTdHJpbmcgY2Fub25pY2FsSUQgPSBjcmVhdGVLZXkoaWQpLmNhbm9uaWNhbElEKCk7CisgICAgICAgIHJldHVybiByZWdpc3RlckZhY3RvcnkobmV3IFNpbXBsZUZhY3Rvcnkob2JqLCBjYW5vbmljYWxJRCwgdmlzaWJsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgRmFjdG9yeS4gIFJldHVybnMgdGhlIGZhY3RvcnkgaWYgdGhlIHNlcnZpY2UgYWNjZXB0cworICAgICAqIHRoZSBmYWN0b3J5LCBvdGhlcndpc2UgcmV0dXJucyBudWxsLiAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICAgKiBhY2NlcHRzIGFsbCBmYWN0b3JpZXMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIEZhY3RvcnkgcmVnaXN0ZXJGYWN0b3J5KEZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgICAgICAgICBmYWN0b3JpZXMuYWRkKDAsIGZhY3RvcnkpOworICAgICAgICAgICAgY2xlYXJDYWNoZXMoKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VXcml0ZSgpOworICAgICAgICB9CisgICAgICAgIG5vdGlmeUNoYW5nZWQoKTsKKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIGZhY3RvcnkuICBUaGUgZmlyc3QgbWF0Y2hpbmcgcmVnaXN0ZXJlZCBmYWN0b3J5IHdpbGwKKyAgICAgKiBiZSByZW1vdmVkIGZyb20gdGhlIGxpc3QuICBSZXR1cm5zIHRydWUgaWYgYSBtYXRjaGluZyBmYWN0b3J5IHdhcworICAgICAqIHJlbW92ZWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gdW5yZWdpc3RlckZhY3RvcnkoRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLmFjcXVpcmVXcml0ZSgpOworICAgICAgICAgICAgaWYgKGZhY3Rvcmllcy5yZW1vdmUoZmFjdG9yeSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgICAgIGNsZWFyQ2FjaGVzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBmYWN0b3J5TG9jay5yZWxlYXNlV3JpdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgIG5vdGlmeUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBzZXJ2aWNlIHRvIHRoZSBkZWZhdWx0IGZhY3Rvcmllcy4gIFRoZSBmYWN0b3J5CisgICAgICogbG9jayBpcyBhY3F1aXJlZCBhbmQgdGhlbiByZUluaXRpYWxpemVGYWN0b3JpZXMgaXMgY2FsbGVkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgICAgICAgICByZUluaXRpYWxpemVGYWN0b3JpZXMoKTsKKyAgICAgICAgICAgIGNsZWFyQ2FjaGVzKCk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBmYWN0b3J5TG9jay5yZWxlYXNlV3JpdGUoKTsKKyAgICAgICAgfQorICAgICAgICBub3RpZnlDaGFuZ2VkKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVpbml0aWFsaXplIHRoZSBmYWN0b3J5IGxpc3QgdG8gaXRzIGRlZmF1bHQgc3RhdGUuICBCeSBkZWZhdWx0CisgICAgICogdGhpcyBjbGVhcnMgdGhlIGxpc3QuICBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBwcm92aWRlIG90aGVyCisgICAgICogZGVmYXVsdCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZmFjdG9yeSBsaXN0LiAgU3ViY2xhc3NlcyBtdXN0CisgICAgICogbm90IGNhbGwgdGhpcyBtZXRob2QgZGlyZWN0bHksIGFzIGl0IG11c3Qgb25seSBiZSBjYWxsZWQgd2hpbGUKKyAgICAgKiBob2xkaW5nIHdyaXRlIGFjY2VzcyB0byB0aGUgZmFjdG9yeSBsaXN0LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlSW5pdGlhbGl6ZUZhY3RvcmllcygpIHsKKyAgICAgICAgZmFjdG9yaWVzLmNsZWFyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNlcnZpY2UgaXMgaW4gaXRzIGRlZmF1bHQgc3RhdGUuICBUaGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgbm8gZmFjdG9yaWVzIHJlZ2lzdGVyZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNEZWZhdWx0KCkgeworICAgICAgICByZXR1cm4gZmFjdG9yaWVzLnNpemUoKSA9PSBkZWZhdWx0U2l6ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRlZmF1bHQgc2l6ZSB0byB0aGUgY3VycmVudCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBmYWN0b3JpZXMuCisgICAgICogVXNlZCBieSBzdWJjbGFzc2VzIHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgaXNEZWZhdWx0LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIG1hcmtEZWZhdWx0KCkgeworICAgICAgICBkZWZhdWx0U2l6ZSA9IGZhY3Rvcmllcy5zaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEga2V5IGZyb20gYW4gaWQuICBUaGlzIGNyZWF0ZXMgYSBLZXkgaW5zdGFuY2UuCisgICAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gZGVmaW5lIG1vcmUgdXNlZnVsIGtleXMgYXBwcm9wcmlhdGUKKyAgICAgKiB0byB0aGUgZmFjdG9yaWVzIHRoZXkgYWNjZXB0LiAgSWYgaWQgaXMgbnVsbCwgcmV0dXJucyBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBLZXkgY3JlYXRlS2V5KFN0cmluZyBpZCkgeworICAgICAgICByZXR1cm4gaWQgPT0gbnVsbCA/IG51bGwgOiBuZXcgS2V5KGlkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciBjYWNoZXMgbWFpbnRhaW5lZCBieSB0aGlzIHNlcnZpY2UuICBTdWJjbGFzc2VzIGNhbgorICAgICAqIG92ZXJyaWRlIGlmIHRoZXkgaW1wbGVtZW50IGFkZGl0aW9uYWwgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQKKyAgICAgKiB3aGVuIHRoZSBzZXJ2aWNlIGNoYW5nZXMuIFN1YmNsYXNzZXMgc2hvdWxkIGdlbmVyYWxseSBub3QgY2FsbAorICAgICAqIHRoaXMgbWV0aG9kIGRpcmVjdGx5LCBhcyBpdCBtdXN0IG9ubHkgYmUgY2FsbGVkIHdoaWxlCisgICAgICogc3luY2hyb25pemVkIG9uIHRoaXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY2xlYXJDYWNoZXMoKSB7CisgICAgICAgIC8vIHdlIGRvbid0IHN5bmNocm9uaXplIG9uIHRoZXNlIGJlY2F1c2UgbWV0aG9kcyB0aGF0IHVzZSB0aGVtCisgICAgICAgIC8vIGNvcHkgYmVmb3JlIHVzZSwgYW5kIGNoZWNrIGZvciBjaGFuZ2VzIGlmIHRoZXkgbW9kaWZ5IHRoZQorICAgICAgICAvLyBjYWNoZXMuCisgICAgICAgIGNhY2hlcmVmID0gbnVsbDsKKyAgICAgICAgaWRyZWYgPSBudWxsOworICAgICAgICBkbnJlZiA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXJzIG9ubHkgdGhlIHNlcnZpY2UgY2FjaGUuCisgICAgICogVGhpcyBjYW4gYmUgY2FsbGVkIGJ5IHN1YmNsYXNzZXMgd2hlbiBhIGNoYW5nZSBhZmZlY3RzIHRoZSBzZXJ2aWNlCisgICAgICogY2FjaGUgYnV0IG5vdCB0aGUgaWQgY2FjaGVzLCBlLmcuLCB3aGVuIHRoZSBkZWZhdWx0IGxvY2FsZSBjaGFuZ2VzCisgICAgICogdGhlIHJlc29sdXRpb24gb2YgaWRzIGNoYW5nZXMsIGJ1dCBub3QgdGhlIHZpc2libGUgaWRzIHRoZW1zZWx2ZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY2xlYXJTZXJ2aWNlQ2FjaGUoKSB7CisgICAgICAgIGNhY2hlcmVmID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXJ2aWNlTGlzdGVuZXIgaXMgdGhlIGxpc3RlbmVyIHRoYXQgSUNVU2VydmljZSBwcm92aWRlcyBieSBkZWZhdWx0LgorICAgICAqIElDVVNlcnZpY2Ugd2lsbCBub3RpZml5IHRoaXMgbGlzdGVuZXIgd2hlbiBmYWN0b3JpZXMgYXJlIGFkZGVkIHRvCisgICAgICogb3IgcmVtb3ZlZCBmcm9tIHRoZSBzZXJ2aWNlLiAgU3ViY2xhc3NlcyBjYW4gcHJvdmlkZQorICAgICAqIGRpZmZlcmVudCBsaXN0ZW5lciBpbnRlcmZhY2VzIHRoYXQgZXh0ZW5kIEV2ZW50TGlzdGVuZXIsIGFuZCBtb2RpZnkKKyAgICAgKiBhY2NlcHRzTGlzdGVuZXIgYW5kIG5vdGlmeUxpc3RlbmVyIGFzIGFwcHJvcHJpYXRlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIFNlcnZpY2VMaXN0ZW5lciBleHRlbmRzIEV2ZW50TGlzdGVuZXIgeworICAgICAgICBwdWJsaWMgdm9pZCBzZXJ2aWNlQ2hhbmdlZChJQ1VTZXJ2aWNlIHNlcnZpY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBsaXN0ZW5lciBpcyBhY2NlcHRlZDsgYnkgZGVmYXVsdCB0aGlzCisgICAgICogcmVxdWlyZXMgYSBTZXJ2aWNlTGlzdGVuZXIuICBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBhY2NlcHQKKyAgICAgKiBkaWZmZXJlbnQgbGlzdGVuZXJzLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgcmV0dXJuIGwgaW5zdGFuY2VvZiBTZXJ2aWNlTGlzdGVuZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm90aWZ5IHRoZSBsaXN0ZW5lciwgd2hpY2ggYnkgZGVmYXVsdCBpcyBhIFNlcnZpY2VMaXN0ZW5lci4KKyAgICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byB1c2UgYSBkaWZmZXJlbnQgbGlzdGVuZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgbm90aWZ5TGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisgICAgICAgICgoU2VydmljZUxpc3RlbmVyKWwpLnNlcnZpY2VDaGFuZ2VkKHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBzdGF0aXN0aWNzIGZvciB0aGlzIHNlcnZpY2UuCisgICAgICogVGhpcyBhbHNvIHJlc2V0cyB0aGUgc3RhdGlzdGljcy4gVXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc3RhdHMoKSB7CisgICAgICAgIElDVVJXTG9jay5TdGF0cyBzdGF0cyA9IGZhY3RvcnlMb2NrLnJlc2V0U3RhdHMoKTsKKyAgICAgICAgaWYgKHN0YXRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0cy50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAibm8gc3RhdHMiOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB0aGUgZW1wdHkgc3RyaW5nIGlmIG5vbmUgd2FzIGFzc2lnbmVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcmVzdWx0IG9mIHN1cGVyLnRvU3RyaW5nLCBhcHBlbmRpbmcgdGhlIG5hbWUgaW4gY3VybHkgYnJhY2VzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBzdXBlci50b1N0cmluZygpICsgInsiICsgbmFtZSArICJ9IjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JbXBsaWNpdENFR2VuZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbXBsaWNpdENFR2VuZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBiNTkyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ltcGxpY2l0Q0VHZW5lcmF0b3IuamF2YQpAQCAtMCwwICsxLDM4OSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLyoqCisgKiBGb3IgZ2VuZXJhdGlvbiBvZiBJbXBsaWNpdCBDRXMKKyAqIEBhdXRob3IgTWFyayBEYXZpcworICoKKyAqIENsZWFuZWQgdXAgc28gdGhhdCBjaGFuZ2VzIGNhbiBiZSBtYWRlIG1vcmUgZWFzaWx5LgorICogT2xkIHZhbHVlczoKKyMgRmlyc3QgSW1wbGljaXQ6IEUyNkE3OTJECisjIExhc3QgSW1wbGljaXQ6IEUzREM3MEMwCisjIEZpcnN0IENKSzogRTAwMzAzMDAKKyMgTGFzdCBDSks6IEUwQTlERDAwCisjIEZpcnN0IENKS19BOiBFMEE5REYwMAorIyBMYXN0IENKS19BOiBFMERFMzEwMAorQGludGVybmFsCisgKi8KK3B1YmxpYyBjbGFzcyBJbXBsaWNpdENFR2VuZXJhdG9yIHsKKyAgICAKKyAgICAvKioKKyAgICAgKiBjb25zdGFudHMKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBsb25nIHRvcEJ5dGUgPSAweEZGMDAwMDAwTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBib3R0b21CeXRlID0gMHhGRkw7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgZm91ckJ5dGVzID0gMHhGRkZGRkZGRkw7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfSU5QVVQgPSAweDIyMDAwMTsgLy8gMiAqIFVuaWNvZGUgcmFuZ2UgKyAyCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfQkFTRSA9IDB4NEUwMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfTElNSVQgPSAweDlGRkYrMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUX1VTRURfQkFTRSA9IDB4RkEwRTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUX1VTRURfTElNSVQgPSAweEZBMkYrMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfQV9CQVNFID0gMHgzNDAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19BX0xJTUlUID0gMHg0REJGKzE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0JfQkFTRSA9IDB4MjAwMDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0JfTElNSVQgPSAweDJBNkRGKzE7CisgICAgCisvLyAgICBwcml2YXRlIHZvaWQgdGhyb3dFcnJvcihTdHJpbmcgdGl0bGUsIGludCBjcCkgeworLy8gICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGl0bGUgKyAiXHQiICsgVXRpbGl0eS5oZXgoY3AsIDYpICsgIlx0IiArIAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgoZ2V0SW1wbGljaXRGcm9tUmF3KGNwKSAmIGZvdXJCeXRlcykpOworLy8gICAgfQorLy8KKy8vICAgIHByaXZhdGUgdm9pZCB0aHJvd0Vycm9yKFN0cmluZyB0aXRsZSwgbG9uZyBjZSkgeworLy8gICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGl0bGUgKyAiXHQiICsgVXRpbGl0eS5oZXgoY2UgJiBmb3VyQnl0ZXMpKTsKKy8vICAgIH0KKy8vCisvLyAgICBwcml2YXRlIHZvaWQgc2hvdyhpbnQgaSkgeworLy8gICAgICAgIGlmIChpID49IDAgJiYgaSA8PSBNQVhfSU5QVVQpIHsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuaGV4KGkpICsgIlx0IiArIFV0aWxpdHkuaGV4KGdldEltcGxpY2l0RnJvbVJhdyhpKSAmIGZvdXJCeXRlcykpOworLy8gICAgICAgIH0gCisvLyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHJlY29tcHV0ZWQgYnkgY29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBpbnQgZmluYWwzTXVsdGlwbGllcjsKKyAgICBpbnQgZmluYWw0TXVsdGlwbGllcjsKKyAgICBpbnQgZmluYWwzQ291bnQ7CisgICAgaW50IGZpbmFsNENvdW50OworICAgIGludCBtZWRpYWxDb3VudDsKKyAgICBpbnQgbWluM1ByaW1hcnk7CisgICAgaW50IG1pbjRQcmltYXJ5OworICAgIGludCBtYXg0UHJpbWFyeTsKKyAgICBpbnQgbWluVHJhaWw7CisgICAgaW50IG1heFRyYWlsOworICAgIGludCBtYXgzVHJhaWw7CisgICAgaW50IG1heDRUcmFpbDsKKyAgICBpbnQgbWluNEJvdW5kYXJ5OworICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0R2FwNCgpIHsKKyAgICAgICAgcmV0dXJuIGZpbmFsNE11bHRpcGxpZXIgLSAxOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEdhcDMoKSB7CisgICAgICAgIHJldHVybiBmaW5hbDNNdWx0aXBsaWVyIC0gMTsKKyAgICB9CisgICAgCisgICAgLy8gb2xkIGNvbW1lbnQKKyAgICAvLyB3ZSBtdXN0IHNraXAgYWxsIDAwLCAwMSwgMDIsIEZGIGJ5dGVzLCBzbyBtb3N0IGJ5dGVzIGhhdmUgMjUyIHZhbHVlcworICAgIC8vIHdlIG11c3QgbGVhdmUgYSBnYXAgb2YgMDEgYmV0d2VlbiBhbGwgdmFsdWVzIG9mIHRoZSBsYXN0IGJ5dGUsIHNvIHRoZSBsYXN0IGJ5dGUgaGFzIDEyNiB2YWx1ZXMgKDMgYnl0ZSBjYXNlKQorICAgIC8vIHdlIHNoaWZ0IHNvIHRoYXQgSEFOIGFsbCBoYXMgdGhlIHNhbWUgZmlyc3QgcHJpbWFyeSwgZm9yIGNvbXByZXNzaW9uLgorICAgIC8vIGZvciB0aGUgNCBieXRlIGNhc2UsIHdlIG1ha2UgdGhlIGdhcCBhcyBsYXJnZSBhcyB3ZSBjYW4gZml0LgorCisgICAgLyoqCisgICAgICogU3VwcGx5IHBhcmFtZXRlcnMgZm9yIGdlbmVyYXRpbmcgaW1wbGljaXQgQ0VzCisgICAgICovCisgICAgcHVibGljIEltcGxpY2l0Q0VHZW5lcmF0b3IoaW50IG1pblByaW1hcnksIGludCBtYXhQcmltYXJ5KSB7CisgICAgICAgIC8vIDEzIGlzIHRoZSBsYXJnZXN0IDQtYnl0ZSBnYXAgd2UgY2FuIHVzZSB3aXRob3V0IGdldHRpbmcgMiBmb3VyLWJ5dGUgZm9ybXMuCisgICAgICAgIHRoaXMobWluUHJpbWFyeSwgbWF4UHJpbWFyeSwgMHgwNCwgMHhGRSwgMSwgMSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB1cCB0byBnZW5lcmF0ZSBpbXBsaWNpdHMuCisgICAgICogQHBhcmFtIG1pblByaW1hcnkKKyAgICAgKiBAcGFyYW0gbWF4UHJpbWFyeQorICAgICAqIEBwYXJhbSBtaW5UcmFpbCBmaW5hbCBieXRlCisgICAgICogQHBhcmFtIG1heFRyYWlsIGZpbmFsIGJ5dGUKKyAgICAgKiBAcGFyYW0gZ2FwMyB0aGUgZ2FwIHdlIGxlYXZlIGZvciB0YWlsb3JpbmcgZm9yIDMtYnl0ZSBmb3JtcworICAgICAqIEBwYXJhbSBwcmltYXJpZXMzY291bnQgbnVtYmVyIG9mIDMtYnl0ZSBwcmltYXJ5cyB3ZSBjYW4gdXNlIChub3JtYWxseSAxKQorICAgICAqLworICAgIHB1YmxpYyBJbXBsaWNpdENFR2VuZXJhdG9yKGludCBtaW5QcmltYXJ5LCBpbnQgbWF4UHJpbWFyeSwgaW50IG1pblRyYWlsLCBpbnQgbWF4VHJhaWwsIGludCBnYXAzLCBpbnQgcHJpbWFyaWVzM2NvdW50KSB7CisgICAgICAgIC8vIHNvbWUgc2ltcGxlIHBhcmFtZXRlciBjaGVja3MKKyAgICAgICAgaWYgKG1pblByaW1hcnkgPCAwIHx8IG1pblByaW1hcnkgPj0gbWF4UHJpbWFyeSB8fCBtYXhQcmltYXJ5ID4gMHhGRikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIGxlYWQgYnl0ZXMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluVHJhaWwgPCAwIHx8IG1pblRyYWlsID49IG1heFRyYWlsIHx8IG1heFRyYWlsID4gMHhGRikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIHRyYWlsIGJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByaW1hcmllczNjb3VudCA8IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCB0aHJlZS1ieXRlIHByaW1hcmllcyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0aGlzLm1pblRyYWlsID0gbWluVHJhaWw7CisgICAgICAgIHRoaXMubWF4VHJhaWwgPSBtYXhUcmFpbDsKKyAgICAgICAgCisgICAgICAgIG1pbjNQcmltYXJ5ID0gbWluUHJpbWFyeTsKKyAgICAgICAgbWF4NFByaW1hcnkgPSBtYXhQcmltYXJ5OworICAgICAgICAvLyBjb21wdXRlIGNvbnN0YW50cyBmb3IgdXNlIGxhdGVyLgorICAgICAgICAvLyBudW1iZXIgb2YgdmFsdWVzIHdlIGNhbiB1c2UgaW4gdHJhaWxpbmcgYnl0ZXMKKyAgICAgICAgLy8gbGVhdmUgcm9vbSBmb3IgZW1wdHkgdmFsdWVzIGJldHdlZW4gQU5EIGFib3ZlLCBlLmcuIGlmIGdhcCA9IDIKKyAgICAgICAgLy8gcmFuZ2UgMy4uNyA9PiArMyAtNCAtNSAtNiAtNzogc28gMSB2YWx1ZQorICAgICAgICAvLyByYW5nZSAzLi44ID0+ICszIC00IC01ICs2IC03IC04OiBzbyAyIHZhbHVlcworICAgICAgICAvLyByYW5nZSAzLi45ID0+ICszIC00IC01ICs2IC03IC04IC05OiBzbyAyIHZhbHVlcworICAgICAgICBmaW5hbDNNdWx0aXBsaWVyID0gZ2FwMyArIDE7CisgICAgICAgIGZpbmFsM0NvdW50ID0gKG1heFRyYWlsIC0gbWluVHJhaWwgKyAxKSAvIGZpbmFsM011bHRpcGxpZXI7CisgICAgICAgIG1heDNUcmFpbCA9IG1pblRyYWlsICsgKGZpbmFsM0NvdW50IC0gMSkgKiBmaW5hbDNNdWx0aXBsaWVyOworICAgICAgICAKKyAgICAgICAgLy8gbWVkaWFscyBjYW4gdXNlIGZ1bGwgcmFuZ2UKKyAgICAgICAgbWVkaWFsQ291bnQgPSAobWF4VHJhaWwgLSBtaW5UcmFpbCArIDEpOworICAgICAgICAvLyBmaW5kIG91dCBob3cgbWFueSB2YWx1ZXMgZml0IGluIGVhY2ggZm9ybQorICAgICAgICBpbnQgdGhyZWVCeXRlQ291bnQgPSBtZWRpYWxDb3VudCAqIGZpbmFsM0NvdW50OworICAgICAgICAvLyBub3cgZGV0ZXJtaW5lIHdoZXJlIHRoZSAzLzQgYm91bmRhcnkgaXMuCisgICAgICAgIC8vIHdlIHVzZSAzIGJ5dGVzIGJlbG93IHRoZSBib3VuZGFyeSwgYW5kIDQgYWJvdmUKKyAgICAgICAgaW50IHByaW1hcmllc0F2YWlsYWJsZSA9IG1heFByaW1hcnkgLSBtaW5QcmltYXJ5ICsgMTsKKyAgICAgICAgaW50IHByaW1hcmllczRjb3VudCA9IHByaW1hcmllc0F2YWlsYWJsZSAtIHByaW1hcmllczNjb3VudDsgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaW50IG1pbjNCeXRlQ292ZXJhZ2UgPSBwcmltYXJpZXMzY291bnQgKiB0aHJlZUJ5dGVDb3VudDsKKyAgICAgICAgbWluNFByaW1hcnkgPSBtaW5QcmltYXJ5ICsgcHJpbWFyaWVzM2NvdW50OworICAgICAgICBtaW40Qm91bmRhcnkgPSBtaW4zQnl0ZUNvdmVyYWdlOworICAgICAgICAvLyBOb3cgZXhwYW5kIG91dCB0aGUgbXVsdGlwbGllciBmb3IgdGhlIDQgYnl0ZXMsIGFuZCByZWRvLgorIAorICAgICAgICBpbnQgdG90YWxOZWVkZWQgPSBNQVhfSU5QVVQgLSBtaW40Qm91bmRhcnk7CisgICAgICAgIGludCBuZWVkZWRQZXJQcmltYXJ5Qnl0ZSA9IGRpdmlkZUFuZFJvdW5kVXAodG90YWxOZWVkZWQsIHByaW1hcmllczRjb3VudCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJuZWVkZWRQZXJQcmltYXJ5Qnl0ZTogIiArIG5lZWRlZFBlclByaW1hcnlCeXRlKTsKKyAgICAgICAgCisgICAgICAgIGludCBuZWVkZWRQZXJGaW5hbEJ5dGUgPSBkaXZpZGVBbmRSb3VuZFVwKG5lZWRlZFBlclByaW1hcnlCeXRlLCBtZWRpYWxDb3VudCAqIG1lZGlhbENvdW50KTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIm5lZWRlZFBlckZpbmFsQnl0ZTogIiArIG5lZWRlZFBlckZpbmFsQnl0ZSk7CisgICAgICAgIAorICAgICAgICBpbnQgZ2FwNCA9IChtYXhUcmFpbCAtIG1pblRyYWlsIC0gMSkgLyBuZWVkZWRQZXJGaW5hbEJ5dGU7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJleHBhbmRlZEdhcDogIiArIGdhcDQpOworICAgICAgICBpZiAoZ2FwNCA8IDEpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm11c3QgaGF2ZSBsYXJnZXIgZ2FwNHMiKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsNE11bHRpcGxpZXIgPSBnYXA0ICsgMTsKKyAgICAgICAgZmluYWw0Q291bnQgPSBuZWVkZWRQZXJGaW5hbEJ5dGU7CisgICAgICAgIG1heDRUcmFpbCA9IG1pblRyYWlsICsgKGZpbmFsNENvdW50IC0gMSkgKiBmaW5hbDRNdWx0aXBsaWVyOworICAgICAgICAKKyAgICAgICAgaWYgKHByaW1hcmllczRjb3VudCAqIG1lZGlhbENvdW50ICogbWVkaWFsQ291bnQgKiBmaW5hbDRDb3VudCA8IE1BWF9JTlBVVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiaW50ZXJuYWwgZXJyb3IiKTsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbmFsNENvdW50OiAiICsgZmluYWw0Q291bnQpOworICAgICAgICAgICAgZm9yIChpbnQgY291bnRlciA9IDA7IGNvdW50ZXIgPCBmaW5hbDRDb3VudDsgKytjb3VudGVyKSB7CisgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gbWluVHJhaWwgKyAoMSArIGNvdW50ZXIpKmZpbmFsNE11bHRpcGxpZXI7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvdW50ZXIgKyAiXHQiICsgdmFsdWUgKyAiXHQiICsgVXRpbGl0eS5oZXgodmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGludCBkaXZpZGVBbmRSb3VuZFVwKGludCBhLCBpbnQgYikgeworICAgICAgICByZXR1cm4gMSArIChhLTEpL2I7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgaW1wbGljaXQgQ0UgaW50byByYXcgaW50ZWdlcgorICAgICAqIEBwYXJhbSBpbXBsaWNpdAorICAgICAqIEByZXR1cm4gLTEgaWYgaWxsZWdhbCBmb3JtYXQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhd0Zyb21JbXBsaWNpdChpbnQgaW1wbGljaXQpIHsKKyAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgaW50IGIzID0gaW1wbGljaXQgJiAweEZGOworICAgICAgICBpbXBsaWNpdCA+Pj0gODsKKyAgICAgICAgaW50IGIyID0gaW1wbGljaXQgJiAweEZGOworICAgICAgICBpbXBsaWNpdCA+Pj0gODsKKyAgICAgICAgaW50IGIxID0gaW1wbGljaXQgJiAweEZGOworICAgICAgICBpbXBsaWNpdCA+Pj0gODsKKyAgICAgICAgaW50IGIwID0gaW1wbGljaXQgJiAweEZGOworCisgICAgICAgIC8vIHNpbXBsZSBwYXJhbWV0ZXIgY2hlY2tzCisgICAgICAgIGlmIChiMCA8IG1pbjNQcmltYXJ5IHx8IGIwID4gbWF4NFByaW1hcnkKKyAgICAgICAgICAgIHx8IGIxIDwgbWluVHJhaWwgfHwgYjEgPiBtYXhUcmFpbCkgcmV0dXJuIC0xOworICAgICAgICAvLyBub3JtYWwgb2Zmc2V0cworICAgICAgICBiMSAtPSBtaW5UcmFpbDsKKworICAgICAgICAvLyB0YWtlIGNhcmUgb2YgdGhlIGZpbmFsIHZhbHVlcywgYW5kIGNvbXBvc2UKKyAgICAgICAgaWYgKGIwIDwgbWluNFByaW1hcnkpIHsKKyAgICAgICAgICAgIGlmIChiMiA8IG1pblRyYWlsIHx8IGIyID4gbWF4M1RyYWlsIHx8IGIzICE9IDApIHJldHVybiAtMTsKKyAgICAgICAgICAgIGIyIC09IG1pblRyYWlsOworICAgICAgICAgICAgaW50IHJlbWFpbmRlciA9IGIyICUgZmluYWwzTXVsdGlwbGllcjsKKyAgICAgICAgICAgIGlmIChyZW1haW5kZXIgIT0gMCkgcmV0dXJuIC0xOworICAgICAgICAgICAgYjAgLT0gbWluM1ByaW1hcnk7CisgICAgICAgICAgICBiMiAvPSBmaW5hbDNNdWx0aXBsaWVyOworICAgICAgICAgICAgcmVzdWx0ID0gKChiMCAqIG1lZGlhbENvdW50KSArIGIxKSAqIGZpbmFsM0NvdW50ICsgYjI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoYjIgPCBtaW5UcmFpbCB8fCBiMiA+IG1heFRyYWlsCisgICAgICAgICAgICAgICAgfHwgYjMgPCBtaW5UcmFpbCB8fCBiMyA+IG1heDRUcmFpbCkgcmV0dXJuIC0xOworICAgICAgICAgICAgYjIgLT0gbWluVHJhaWw7CisgICAgICAgICAgICBiMyAtPSBtaW5UcmFpbDsKKyAgICAgICAgICAgIGludCByZW1haW5kZXIgPSBiMyAlIGZpbmFsNE11bHRpcGxpZXI7CisgICAgICAgICAgICBpZiAocmVtYWluZGVyICE9IDApIHJldHVybiAtMTsKKyAgICAgICAgICAgIGIzIC89IGZpbmFsNE11bHRpcGxpZXI7CisgICAgICAgICAgICBiMCAtPSBtaW40UHJpbWFyeTsKKyAgICAgICAgICAgIHJlc3VsdCA9ICgoKGIwICogbWVkaWFsQ291bnQpICsgYjEpICogbWVkaWFsQ291bnQgKyBiMikgKiBmaW5hbDRDb3VudCArIGIzICsgbWluNEJvdW5kYXJ5OworICAgICAgICB9CisgICAgICAgIC8vIGZpbmFsIGNoZWNrCisgICAgICAgIGlmIChyZXN1bHQgPCAwIHx8IHJlc3VsdCA+IE1BWF9JTlBVVCkgcmV0dXJuIC0xOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZSB0aGUgaW1wbGljaXQgQ0UsIGZyb20gcmF3IGludGVnZXIuCisgICAgICogTGVmdCBzaGlmdGVkIHRvIHB1dCB0aGUgZmlyc3QgYnl0ZSBhdCB0aGUgdG9wIG9mIGFuIGludC4KKyAgICAgKiBAcGFyYW0gY3AgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gUHJpbWFyeSBpbXBsaWNpdCB3ZWlnaHQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEltcGxpY2l0RnJvbVJhdyhpbnQgY3ApIHsKKyAgICAgICAgaWYgKGNwIDwgMCB8fCBjcCA+IE1BWF9JTlBVVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZSBwb2ludCBvdXQgb2YgcmFuZ2UgIiArIFV0aWxpdHkuaGV4KGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGxhc3QwID0gY3AgLSBtaW40Qm91bmRhcnk7CisgICAgICAgIGlmIChsYXN0MCA8IDApIHsKKyAgICAgICAgICAgIGludCBsYXN0MSA9IGNwIC8gZmluYWwzQ291bnQ7CisgICAgICAgICAgICBsYXN0MCA9IGNwICUgZmluYWwzQ291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsYXN0MiA9IGxhc3QxIC8gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICBsYXN0MSAlPSBtZWRpYWxDb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGFzdDAgPSBtaW5UcmFpbCArIGxhc3QwKmZpbmFsM011bHRpcGxpZXI7IC8vIHNwcmVhZCBvdXQsIGxlYXZpbmcgZ2FwIGF0IHN0YXJ0CisgICAgICAgICAgICBsYXN0MSA9IG1pblRyYWlsICsgbGFzdDE7IC8vIG9mZnNldAorICAgICAgICAgICAgbGFzdDIgPSBtaW4zUHJpbWFyeSArIGxhc3QyOyAvLyBvZmZzZXQKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxhc3QyID49IG1pbjRQcmltYXJ5KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiNC1ieXRlIG91dCBvZiByYW5nZTogIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgoY3ApICsgIiwgIiArIFV0aWxpdHkuaGV4KGxhc3QyKSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gKGxhc3QyIDw8IDI0KSArIChsYXN0MSA8PCAxNikgKyAobGFzdDAgPDwgOCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbGFzdDEgPSBsYXN0MCAvIGZpbmFsNENvdW50OworICAgICAgICAgICAgbGFzdDAgJT0gZmluYWw0Q291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsYXN0MiA9IGxhc3QxIC8gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICBsYXN0MSAlPSBtZWRpYWxDb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGxhc3QzID0gbGFzdDIgLyBtZWRpYWxDb3VudDsKKyAgICAgICAgICAgIGxhc3QyICU9IG1lZGlhbENvdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBsYXN0MCA9IG1pblRyYWlsICsgbGFzdDAqZmluYWw0TXVsdGlwbGllcjsgLy8gc3ByZWFkIG91dCwgbGVhdmluZyBnYXAgYXQgc3RhcnQgICAgICAgICAgIAorICAgICAgICAgICAgbGFzdDEgPSBtaW5UcmFpbCArIGxhc3QxOyAvLyBvZmZzZXQKKyAgICAgICAgICAgIGxhc3QyID0gbWluVHJhaWwgKyBsYXN0MjsgLy8gb2Zmc2V0CisgICAgICAgICAgICBsYXN0MyA9IG1pbjRQcmltYXJ5ICsgbGFzdDM7IC8vIG9mZnNldAorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGFzdDMgPiBtYXg0UHJpbWFyeSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIjQtYnl0ZSBvdXQgb2YgcmFuZ2U6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KGNwKSArICIsICIgKyBVdGlsaXR5LmhleChsYXN0MykpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIChsYXN0MyA8PCAyNCkgKyAobGFzdDIgPDwgMTYpICsgKGxhc3QxIDw8IDgpICsgbGFzdDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFuIEltcGxpY2l0IGZyb20gYSBjb2RlIHBvaW50LiBJbnRlcm5hbGx5LCAKKyAgICAgKiBzd2FwcyAod2hpY2ggcHJvZHVjZXMgYSByYXcgdmFsdWUgMC4uMjIwMDAwLCAKKyAgICAgKiB0aGVuIGNvbnZlcnRzIHJhdyB0byBpbXBsaWNpdC4KKyAgICAgKiBAcGFyYW0gY3AKKyAgICAgKiBAcmV0dXJuIFByaW1hcnkgaW1wbGljaXQgd2VpZ2h0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbXBsaWNpdEZyb21Db2RlUG9pbnQoaW50IGNwKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJJbmNvbWluZzogIiArIFV0aWxpdHkuaGV4KGNwKSk7CisgICAgICAgIAorICAgICAgICAvLyBQcm9kdWNlIFJhdyB2YWx1ZQorICAgICAgICAvLyBub3RlLCB3ZSBhZGQgMSBzbyB0aGF0IHRoZSBmaXJzdCB2YWx1ZSBpcyBhbHdheXMgZW1wdHkhIQorICAgICAgICBjcCA9IEltcGxpY2l0Q0VHZW5lcmF0b3Iuc3dhcENKSyhjcCkgKyAxOworICAgICAgICAvLyB3ZSBub3cgaGF2ZSBhIHJhbmdlIG9mIG51bWJlcnMgZnJvbSAwIHRvIDIyMDAwMC4KKyAgICAgICAgICAgIAorICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQ0pLIHN3YXBwZWQ6ICIgKyBVdGlsaXR5LmhleChjcCkpOworICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBnZXRJbXBsaWNpdEZyb21SYXcoY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZ1bmN0aW9uIHVzZWQgdG86IAorICAgICAqIGEpIGNvbGxhcHNlIHRoZSAyIGRpZmZlcmVudCBIYW4gcmFuZ2VzIGZyb20gVUNBIGludG8gb25lIChpbiB0aGUgcmlnaHQgb3JkZXIpLCBhbmQKKyAgICAgKiBiKSBidW1wIGFueSBub24tQ0pLIGNoYXJhY3RlcnMgYnkgMTBGRkZGLgorICAgICAqIFRoZSByZWxldmFudCBibG9ja3MgYXJlOgorICAgICAqIEE6ICAgIDRFMDAuLjlGRkY7IENKSyBVbmlmaWVkIElkZW9ncmFwaHMKKyAgICAgKiAgICAgICBGOTAwLi5GQUZGOyBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzCisgICAgICogQjogICAgMzQwMC4uNERCRjsgQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQQorICAgICAqICAgICAgIDIwMDAwLi5YWDsgIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEIgKGFuZCBvdGhlcnMgbGF0ZXIgb24pCisgICAgICogQXMgbG9uZyBhcworICAgICAqICAgbm8gbmV3IEIgY2hhcmFjdGVycyBhcmUgYWxsb2NhdGVkIGJldHdlZW4gNEUwMCBhbmQgRkFGRiwgYW5kCisgICAgICogICBubyBuZXcgQSBjaGFyYWN0ZXJzIGFyZSBvdXRzaWRlIG9mIHRoaXMgcmFuZ2UsCisgICAgICogKHZlcnkgaGlnaCBwcm9iYWJpbGl0eSkgdGhpcyBzaW1wbGUgY29kZSB3aWxsIHdvcmsuCisgICAgICogVGhlIHJlb3JkZXJlZCBibG9ja3MgYXJlOgorICAgICAqIEJsb2NrMSBpcyBDSksKKyAgICAgKiBCbG9jazIgaXMgQ0pLX0NPTVBBVF9VU0VECisgICAgICogQmxvY2szIGlzIENKS19BCisgICAgICogKGFsbCBjb250aWd1b3VzKQorICAgICAqIEFueSBvdGhlciBDSksgZ2V0cyBpdHMgbm9ybWFsIGNvZGUgcG9pbnQKKyAgICAgKiBBbnkgbm9uLUNKSyBnZXRzICsxMEZGRkYKKyAgICAgKiBXaGVuIHdlIHJlb3JkZXIgQmxvY2sxLCB3ZSBtYWtlIHN1cmUgdGhhdCBpdCBpcyBhdCB0aGUgdmVyeSBzdGFydCwKKyAgICAgKiBzbyB0aGF0IGl0IHdpbGwgdXNlIGEgMy1ieXRlIGZvcm0uCisgICAgICogV2FybmluZzogdGhlIHdlIG9ubHkgcGljayB1cCB0aGUgY29tcGF0aWJpbGl0eSBjaGFyYWN0ZXJzIHRoYXQgYXJlCisgICAgICogTk9UIGRlY29tcG9zZWQsIHNvIHRoYXQgYmxvY2sgaXMgc21hbGxlciEKKyAgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgaW50IE5PTl9DSktfT0ZGU0VUID0gMHgxMTAwMDA7CisgICAgICAgIAorICAgIHN0YXRpYyBpbnQgc3dhcENKSyhpbnQgaSkgeworICAgICAgICAKKyAgICAgICAgaWYgKGkgPj0gQ0pLX0JBU0UpIHsKKyAgICAgICAgICAgIGlmIChpIDwgQ0pLX0xJTUlUKSAgICAgICAgICAgICAgcmV0dXJuIGkgLSBDSktfQkFTRTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGkgPCBDSktfQ09NUEFUX1VTRURfQkFTRSkgICByZXR1cm4gaSArIE5PTl9DSktfT0ZGU0VUOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaSA8IENKS19DT01QQVRfVVNFRF9MSU1JVCkgIHJldHVybiBpIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKENKS19MSU1JVCAtIENKS19CQVNFKTsKKyAgICAgICAgICAgIGlmIChpIDwgQ0pLX0JfQkFTRSkgICAgICAgICAgICAgcmV0dXJuIGkgKyBOT05fQ0pLX09GRlNFVDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGkgPCBDSktfQl9MSU1JVCkgICAgICAgICAgICByZXR1cm4gaTsgLy8gbm9uLUJNUC1DSksKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGkgKyBOT05fQ0pLX09GRlNFVDsgIC8vIG5vbi1DSksKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA8IENKS19BX0JBU0UpICAgICAgICAgICAgICAgICByZXR1cm4gaSArIE5PTl9DSktfT0ZGU0VUOworICAgICAgICAKKyAgICAgICAgaWYgKGkgPCBDSktfQV9MSU1JVCkgICAgICAgICAgICAgICAgcmV0dXJuIGkgLSBDSktfQV9CQVNFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChDSktfTElNSVQgLSBDSktfQkFTRSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChDSktfQ09NUEFUX1VTRURfTElNSVQgLSBDSktfQ09NUEFUX1VTRURfQkFTRSk7CisgICAgICAgIHJldHVybiBpICsgTk9OX0NKS19PRkZTRVQ7IC8vIG5vbi1DSksKKyAgICB9CisgICAgCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIE1pbmltYWwgdHJhaWwgdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pblRyYWlsKCkgeworICAgICAgICByZXR1cm4gbWluVHJhaWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBNYXhpbWFsIHRyYWlsIHZhbHVlCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhUcmFpbCgpIHsKKyAgICAgICAgcmV0dXJuIG1heFRyYWlsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldENvZGVQb2ludEZyb21SYXcoaW50IGkpIHsKKyAgICAgICAgaS0tOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaWYoaSA+PSBOT05fQ0pLX09GRlNFVCkgeworICAgICAgICAgICAgcmVzdWx0ID0gaSAtIE5PTl9DSktfT0ZGU0VUOworICAgICAgICB9IGVsc2UgaWYoaSA+PSBDSktfQl9CQVNFKSB7CisgICAgICAgICAgICByZXN1bHQgPSBpOworICAgICAgICB9IGVsc2UgaWYoaSA8IENKS19BX0xJTUlUICsgKENKS19MSU1JVCAtIENKS19CQVNFKSArIChDSktfQ09NUEFUX1VTRURfTElNSVQgLSBDSktfQ09NUEFUX1VTRURfQkFTRSkpIHsgCisgICAgICAgICAgICAvLyByZXN0IG9mIENKS3MsIGNvbXBhY3RlZAorICAgICAgICAgICAgaWYoaSA8IENKS19MSU1JVCAtIENKS19CQVNFKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaSArIENKS19CQVNFOworICAgICAgICAgICAgfSBlbHNlIGlmKGkgPCAoQ0pLX0xJTUlUIC0gQ0pLX0JBU0UpICsgKENKS19DT01QQVRfVVNFRF9MSU1JVCAtIENKS19DT01QQVRfVVNFRF9CQVNFKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGkgKyBDSktfQ09NUEFUX1VTRURfQkFTRSAtIChDSktfTElNSVQgLSBDSktfQkFTRSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGkgKyBDSktfQV9CQVNFIC0gKENKS19MSU1JVCAtIENKS19CQVNFKSAtIChDSktfQ09NUEFUX1VTRURfTElNSVQgLSBDSktfQ09NUEFUX1VTRURfQkFTRSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0UmF3RnJvbUNvZGVQb2ludChpbnQgaSkgeworICAgICAgICByZXR1cm4gc3dhcENKSyhpKSsxOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludFRyaWUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludFRyaWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZDBjNDIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZS5qYXZhCkBAIC0wLDAgKzEsMzQwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFRyaWUgaW1wbGVtZW50YXRpb24gd2hpY2ggc3RvcmVzIGRhdGEgaW4gaW50LCAzMiBiaXRzLgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5UcmllCisgKiBAc2luY2UgcmVsZWFzZSAyLjEsIEphbiAwMSAyMDAyCisgKi8KK3B1YmxpYyBjbGFzcyBJbnRUcmllIGV4dGVuZHMgVHJpZQoreworICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIDxwPkNyZWF0ZXMgYSBuZXcgVHJpZSB3aXRoIHRoZSBzZXR0aW5ncyBmb3IgdGhlIHRyaWUgZGF0YS48L3A+CisgICAgKiA8cD5VbnNlcmlhbGl6ZSB0aGUgMzItYml0LWFsaWduZWQgaW5wdXQgc3RyZWFtIGFuZCB1c2UgdGhlIGRhdGEgZm9yIHRoZSAKKyAgICAqIHRyaWUuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIGZpbGUgaW5wdXQgc3RyZWFtIHRvIGEgSUNVIGRhdGEgZmlsZSwgY29udGFpbmluZyAKKyAgICAqICAgICAgICAgICAgICAgICAgICB0aGUgdHJpZQorICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICBkYXRhCisgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIEludFRyaWUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIERhdGFNYW5pcHVsYXRlIGRhdGFNYW5pcHVsYXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3VwZXIoaW5wdXRTdHJlYW0sIGRhdGFNYW5pcHVsYXRlKTsKKyAgICAgICAgaWYgKCFpc0ludFRyaWUoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSBnaXZlbiBkb2VzIG5vdCBiZWxvbmcgdG8gYSBpbnQgdHJpZS4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgYSBkdW1teSBJbnRUcmllLgorICAgICAqIEEgZHVtbXkgdHJpZSBpcyBhbiBlbXB0eSBydW50aW1lIHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwgZGF0YSB0cmllIGNhbm5vdAorICAgICAqIGJlIGxvYWRlZC4KKyAgICAgKgorICAgICAqIFRoZSB0cmllIGFsd2F5cyByZXR1cm5zIHRoZSBpbml0aWFsVmFsdWUsCisgICAgICogb3IgdGhlIGxlYWRVbml0VmFsdWUgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzLgorICAgICAqIFRoZSBMYXRpbi0xIHBhcnQgaXMgYWx3YXlzIHNldCB1cCB0byBiZSBsaW5lYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMKKyAgICAgKiBAcGFyYW0gbGVhZFVuaXRWYWx1ZSB0aGUgdmFsdWUgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgX3VuaXRzXyB0aGF0IGRvIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRlZCBzdXBwbGVtZW50YXJ5IGRhdGEKKyAgICAgKiBAcGFyYW0gZGF0YU1hbmlwdWxhdGUgb2JqZWN0IHdoaWNoIHByb3ZpZGVzIG1ldGhvZHMgdG8gcGFyc2UgdGhlIGNoYXIgZGF0YQorICAgICAqLworICAgIHB1YmxpYyBJbnRUcmllKGludCBpbml0aWFsVmFsdWUsIGludCBsZWFkVW5pdFZhbHVlLCBEYXRhTWFuaXB1bGF0ZSBkYXRhTWFuaXB1bGF0ZSkgeworICAgICAgICBzdXBlcihuZXcgY2hhcltCTVBfSU5ERVhfTEVOR1RIK1NVUlJPR0FURV9CTE9DS19DT1VOVF0sIEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18sIGRhdGFNYW5pcHVsYXRlKTsKKworICAgICAgICBpbnQgZGF0YUxlbmd0aCwgbGF0aW4xTGVuZ3RoLCBpLCBsaW1pdDsKKyAgICAgICAgY2hhciBibG9jazsKKworICAgICAgICAvKiBjYWxjdWxhdGUgdGhlIGFjdHVhbCBzaXplIG9mIHRoZSBkdW1teSB0cmllIGRhdGEgKi8KKworICAgICAgICAvKiBtYXgoTGF0aW4tMSwgYmxvY2sgMCkgKi8KKyAgICAgICAgZGF0YUxlbmd0aD1sYXRpbjFMZW5ndGg9IElOREVYX1NUQUdFXzFfU0hJRlRfPD04ID8gMjU2IDogREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIGlmKGxlYWRVbml0VmFsdWUhPWluaXRpYWxWYWx1ZSkgeworICAgICAgICAgICAgZGF0YUxlbmd0aCs9REFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIH0KKyAgICAgICAgbV9kYXRhXz1uZXcgaW50W2RhdGFMZW5ndGhdOworICAgICAgICBtX2RhdGFMZW5ndGhfPWRhdGFMZW5ndGg7CisKKyAgICAgICAgbV9pbml0aWFsVmFsdWVfPWluaXRpYWxWYWx1ZTsKKworICAgICAgICAvKiBmaWxsIHRoZSBpbmRleCBhbmQgZGF0YSBhcnJheXMgKi8KKworICAgICAgICAvKiBpbmRleGVzIGFyZSBwcmVzZXQgdG8gMCAoYmxvY2sgMCkgKi8KKworICAgICAgICAvKiBMYXRpbi0xIGRhdGEgKi8KKyAgICAgICAgZm9yKGk9MDsgaTxsYXRpbjFMZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbV9kYXRhX1tpXT1pbml0aWFsVmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBpZihsZWFkVW5pdFZhbHVlIT1pbml0aWFsVmFsdWUpIHsKKyAgICAgICAgICAgIC8qIGluZGV4ZXMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgdG8gdGhlIGJsb2NrIGFmdGVyIExhdGluLTEgKi8KKyAgICAgICAgICAgIGJsb2NrPShjaGFyKShsYXRpbjFMZW5ndGg+PklOREVYX1NUQUdFXzJfU0hJRlRfKTsKKyAgICAgICAgICAgIGk9MHhkODAwPj5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAgICAgICAgIGxpbWl0PTB4ZGMwMD4+SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgICAgICAgICBmb3IoOyBpPGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBtX2luZGV4X1tpXT1ibG9jazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogZGF0YSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0cyAqLworICAgICAgICAgICAgbGltaXQ9bGF0aW4xTGVuZ3RoK0RBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgZm9yKGk9bGF0aW4xTGVuZ3RoOyBpPGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBtX2RhdGFfW2ldPWxlYWRVbml0VmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvZGVwb2ludC4KKyAgICAqIElmIG5vIHZhbHVlIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29kZXBvaW50LCBhIGRlZmF1bHQgdmFsdWUgd2lsbCBiZQorICAgICogcmV0dXJuZWQuCisgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50CisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldENvZGVQb2ludFZhbHVlKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQ7CisKKyAgICAgICAgLy8gZmFzdHBhdGggZm9yIFUrMDAwMC4uVStEN0ZGCisgICAgICAgIGlmKDAgPD0gY2ggJiYgY2ggPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGNvcHkgb2YgZ2V0UmF3T2Zmc2V0KCkKKyAgICAgICAgICAgIG9mZnNldCA9IChtX2luZGV4X1tjaCA+PiBJTkRFWF9TVEFHRV8xX1NISUZUX10gPDwgSU5ERVhfU1RBR0VfMl9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICArIChjaCAmIElOREVYX1NUQUdFXzNfTUFTS18pOworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YV9bb2Zmc2V0XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGhhbmRsZSBVK0Q4MDAuLlUrMTBGRkZGCisgICAgICAgIG9mZnNldCA9IGdldENvZGVQb2ludE9mZnNldChjaCk7CisgICAgICAgIHJldHVybiAob2Zmc2V0ID49IDApID8gbV9kYXRhX1tvZmZzZXRdIDogbV9pbml0aWFsVmFsdWVfOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgdG8gdGhlIGRhdGEgd2hpY2ggdGhpcyBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgcG9pbnRzCisgICAgKiB0by4KKyAgICAqIFJldHVybmVkIGRhdGEgbWF5IGNvbnRhaW4gZm9sZGluZyBvZmZzZXQgaW5mb3JtYXRpb24gZm9yIHRoZSBuZXh0CisgICAgKiB0cmFpbGluZyBzdXJyb2dhdGUgY2hhcmFjdGVyLgorICAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgZ3VhcmFudGVlIGNvcnJlY3QgcmVzdWx0cyBmb3IgdHJhaWwgc3Vycm9nYXRlcy4KKyAgICAqIEBwYXJhbSBjaCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gZGF0YSB2YWx1ZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRMZWFkVmFsdWUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RhdGFfW2dldExlYWRPZmZzZXQoY2gpXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBCTVAgY29kZSBwb2ludC4KKyAgICAqIExlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywgd2l0aAorICAgICogdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIGdldExlYWRWYWx1ZSgpIHJlc3VsdHMuCisgICAgKiBAcGFyYW0gY2ggdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgICAgKiBAcmV0dXJuIHRyaWUgZGF0YSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIEJNUCBjb2RlcG9pbnQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0Qk1QVmFsdWUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RhdGFfW2dldEJNUE9mZnNldChjaCldOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0IHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBwYWlyIG9mIHN1cnJvZ2F0ZXMuCisgICAgKiBAcGFyYW0gbGVhZCBhIGxlYWQgc3Vycm9nYXRlCisgICAgKiBAcGFyYW0gdHJhaWwgYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0U3Vycm9nYXRlVmFsdWUoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKCFVVEYxNi5pc0xlYWRTdXJyb2dhdGUobGVhZCkgfHwgIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyYWN0ZXJzIGRvIG5vdCBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBnZXQgZm9sZCBwb3NpdGlvbiBmb3IgdGhlIG5leHQgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgIGludCBvZmZzZXQgPSBnZXRTdXJyb2dhdGVPZmZzZXQobGVhZCwgdHJhaWwpOworCisgICAgICAgIC8vIGdldCB0aGUgcmVhbCBkYXRhIGZyb20gdGhlIGZvbGRlZCBsZWFkL3RyYWlsIHVuaXRzCisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tvZmZzZXRdOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIG1faW5pdGlhbFZhbHVlXyBpZiB0aGVyZSBpcyBhbiBlcnJvcgorICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0IGEgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChmcm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICAgICogYW5kIGEgdHJhaWwgc3Vycm9nYXRlLgorICAgICogQHBhcmFtIGxlYWR2YWx1ZSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSB0aGF0IGNvbnRhaW5zIHRoZQorICAgICogICAgICAgIGZvbGRpbmcgb2Zmc2V0CisgICAgKiBAcGFyYW0gdHJhaWwgc3Vycm9nYXRlCisgICAgKiBAcmV0dXJuIHRyaWUgZGF0YSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHRyYWlsIGNoYXJhY3RlcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUcmFpbFZhbHVlKGludCBsZWFkdmFsdWUsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpZiAobV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9mZnNldCA9IG1fZGF0YU1hbmlwdWxhdGVfLmdldEZvbGRpbmdPZmZzZXQobGVhZHZhbHVlKTsKKyAgICAgICAgaWYgKG9mZnNldCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfW2dldFJhd09mZnNldChvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSh0cmFpbCAmIFNVUlJPR0FURV9NQVNLXykpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIHRoZSBsYXRpbiAxIGZhc3QgcGF0aCB2YWx1ZS48L3A+CisgICAgICogPHA+Tm90ZSB0aGlzIG9ubHkgd29ya3MgaWYgbGF0aW4gMSBjaGFyYWN0ZXJzIGhhdmUgdGhlaXIgb3duIGxpbmVhciAKKyAgICAgKiBhcnJheS48L3A+CisgICAgICogQHBhcmFtIGNoIGxhdGluIDEgY2hhcmFjdGVycworICAgICAqIEByZXR1cm4gdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGxhdGluIGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TGF0aW4xTGluZWFyVmFsdWUoY2hhciBjaCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tJTkRFWF9TVEFHRV8zX01BU0tfICsgMSArIGNoXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IFRyaWUgaGFzIHRoZSBzYW1lIGRhdGEgYXMgdGhpcyBUcmllCisgICAgICogQHBhcmFtIG90aGVyIFRyaWUgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGFyZ3VtZW50IFRyaWUgaGFzIHRoZSBzYW1lIGRhdGEgYXMgdGhpcyBUcmllLCBmYWxzZQorICAgICAqICAgICAgICAgb3RoZXJ3aXNlCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIAorICAgIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBzdXBlci5lcXVhbHMob3RoZXIpOworICAgICAgICBpZiAocmVzdWx0ICYmIG90aGVyIGluc3RhbmNlb2YgSW50VHJpZSkgeworICAgICAgICAgICAgSW50VHJpZSBvdGhlcnRyaWUgPSAoSW50VHJpZSlvdGhlcjsKKyAgICAgICAgICAgIGlmIChtX2luaXRpYWxWYWx1ZV8gIT0gb3RoZXJ0cmllLm1faW5pdGlhbFZhbHVlXworICAgICAgICAgICAgICAgIHx8ICFBcnJheXMuZXF1YWxzKG1fZGF0YV8sIG90aGVydHJpZS5tX2RhdGFfKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UGFyc2VzIHRoZSBpbnB1dCBzdHJlYW0gYW5kIHN0b3JlcyBpdHMgdHJpZSBjb250ZW50IGludG8gYSBpbmRleCBhbmQKKyAgICAqIGRhdGEgYXJyYXk8L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gZGF0YSBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0cmllIGRhdGEKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB1bnNlcmlhbGl6ZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBzdXBlci51bnNlcmlhbGl6ZShpbnB1dFN0cmVhbSk7CisgICAgICAgIC8vIG9uZSB1c2VkIGZvciBpbml0aWFsIHZhbHVlCisgICAgICAgIG1fZGF0YV8gICAgICAgICAgICAgICA9IG5ldyBpbnRbbV9kYXRhTGVuZ3RoX107CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZGF0YUxlbmd0aF87IGkgKyspIHsKKyAgICAgICAgICAgIG1fZGF0YV9baV0gPSBpbnB1dC5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgbV9pbml0aWFsVmFsdWVfID0gbV9kYXRhX1swXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhlIHN1cnJvZ2F0ZSBwYWlyIHBvaW50cyB0by4KKyAgICAqIEBwYXJhbSBsZWFkIGxlYWQgc3Vycm9nYXRlCisgICAgKiBAcGFyYW0gdHJhaWwgdHJhaWxpbmcgc3Vycm9nYXRlCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldFN1cnJvZ2F0ZU9mZnNldChjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpZiAobV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gZ2V0IGZvbGQgcG9zaXRpb24gZm9yIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICBpbnQgb2Zmc2V0ID0gbV9kYXRhTWFuaXB1bGF0ZV8uZ2V0Rm9sZGluZ09mZnNldChnZXRMZWFkVmFsdWUobGVhZCkpOworCisgICAgICAgIC8vIGdldCB0aGUgcmVhbCBkYXRhIGZyb20gdGhlIGZvbGRlZCBsZWFkL3RyYWlsIHVuaXRzCisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KG9mZnNldCwgKGNoYXIpKHRyYWlsICYgU1VSUk9HQVRFX01BU0tfKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXR1cm4gLTEgaWYgdGhlcmUgaXMgYW4gZXJyb3IsIGluIHRoaXMgY2FzZSB3ZSByZXR1cm4gdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gdmFsdWU6IG1faW5pdGlhbFZhbHVlXworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXQgdGhlIGFyZ3VtZW50IGluZGV4LgorICAgICogRm9yIHVzZSBpbnRlcm5hbGx5IGluIFRyaWVJdGVyYXRvcgorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZQorICAgICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRWYWx1ZShpbnQgaW5kZXgpCisgICAgeworICAgICAgcmV0dXJuIG1fZGF0YV9baW5kZXhdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGRlZmF1bHQgaW5pdGlhbCB2YWx1ZQorICAgICogQHJldHVybiAzMiBiaXQgdmFsdWUgCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEluaXRpYWxWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgY29uc3RydWN0b3IgZm9yIGJ1aWxkZXIgdXNlCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBhcnJheSB0byBiZSBzbG90dGVkIGludG8gdGhpcyB0cmllCisgICAgICogQHBhcmFtIGRhdGEgdGhlIGRhdGEgYXJyYXkgdG8gYmUgc2xvdHRlZCBpbnRvIHRoaXMgdHJpZQorICAgICAqIEBwYXJhbSBpbml0aWFsdmFsdWUgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoaXMgdHJpZQorICAgICAqIEBwYXJhbSBvcHRpb25zIHRyaWUgb3B0aW9ucyB0byB1c2UKKyAgICAgKiBAcGFyYW0gZGF0YW1hbmlwdWxhdGUgZm9sZGluZyBpbXBsZW1lbnRhdGlvbgorICAgICAqLworICAgIEludFRyaWUoY2hhciBpbmRleFtdLCBpbnQgZGF0YVtdLCBpbnQgaW5pdGlhbHZhbHVlLCBpbnQgb3B0aW9ucywKKyAgICAgICAgICAgIERhdGFNYW5pcHVsYXRlIGRhdGFtYW5pcHVsYXRlKQorICAgIHsKKyAgICAgICAgc3VwZXIoaW5kZXgsIG9wdGlvbnMsIGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgbV9kYXRhXyA9IGRhdGE7CisgICAgICAgIG1fZGF0YUxlbmd0aF8gPSBtX2RhdGFfLmxlbmd0aDsKKyAgICAgICAgbV9pbml0aWFsVmFsdWVfID0gaW5pdGlhbHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBEZWZhdWx0IHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2luaXRpYWxWYWx1ZV87CisgICAgLyoqCisgICAgKiBBcnJheSBvZiBjaGFyIGRhdGEKKyAgICAqLworICAgIHByaXZhdGUgaW50IG1fZGF0YV9bXTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1ZmMzNDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsNzkxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCisvKioKKyAqIEJ1aWxkZXIgY2xhc3MgdG8gbWFuaXB1bGF0ZSBhbmQgZ2VuZXJhdGUgYSB0cmllLgorICogVGhpcyBpcyB1c2VmdWwgZm9yIElDVSBkYXRhIGluIHByaW1pdGl2ZSB0eXBlcy4KKyAqIFByb3ZpZGVzIGEgY29tcGFjdCB3YXkgdG8gc3RvcmUgaW5mb3JtYXRpb24gdGhhdCBpcyBpbmRleGVkIGJ5IFVuaWNvZGUgCisgKiB2YWx1ZXMsIHN1Y2ggYXMgY2hhcmFjdGVyIHByb3BlcnRpZXMsIHR5cGVzLCBrZXlib2FyZCB2YWx1ZXMsIGV0Yy4gVGhpcyBpcyAKKyAqIHZlcnkgdXNlZnVsIHdoZW4geW91IGhhdmUgYSBibG9jayBvZiBVbmljb2RlIGRhdGEgdGhhdCBjb250YWlucyBzaWduaWZpY2FudCAKKyAqIHZhbHVlcyB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgVW5pY29kZSBkYXRhIGlzIHVudXNlZCBpbiB0aGUgYXBwbGljYXRpb24gb3IgCisgKiB3aGVuIHlvdSBoYXZlIGEgbG90IG9mIHJlZHVuZGFuY2UsIHN1Y2ggYXMgd2hlcmUgYWxsIDIxLDAwMCBIYW4gaWRlb2dyYXBocyAKKyAqIGhhdmUgdGhlIHNhbWUgdmFsdWUuICBIb3dldmVyLCBsb29rdXAgaXMgbXVjaCBmYXN0ZXIgdGhhbiBhIGhhc2ggdGFibGUuCisgKiBBIHRyaWUgb2YgYW55IHByaW1pdGl2ZSBkYXRhIHR5cGUgc2VydmVzIHR3byBwdXJwb3NlczoKKyAqIDxVTCB0eXBlID0gcm91bmQ+CisgKiAgICAgPExJPkZhc3QgYWNjZXNzIG9mIHRoZSBpbmRleGVkIHZhbHVlcy4KKyAqICAgICA8TEk+U21hbGxlciBtZW1vcnkgZm9vdHByaW50LgorICogPC9VTD4KKyAqIFRoaXMgaXMgYSBkaXJlY3QgcG9ydCBmcm9tIHRoZSBJQ1U0QyB2ZXJzaW9uCisgKiBAYXV0aG9yICAgICAgICAgICAgIFN5biBXZWUgUXVlaworICovCitwdWJsaWMgY2xhc3MgSW50VHJpZUJ1aWxkZXIgZXh0ZW5kcyBUcmllQnVpbGRlcgoreworICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQ29weSBjb25zdHJ1Y3RvcgorICAgICAqLworICAgIHB1YmxpYyBJbnRUcmllQnVpbGRlcihJbnRUcmllQnVpbGRlciB0YWJsZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRhYmxlKTsKKyAgICAgICAgbV9kYXRhXyA9IG5ldyBpbnRbbV9kYXRhQ2FwYWNpdHlfXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YWJsZS5tX2RhdGFfLCAwLCBtX2RhdGFfLCAwLCBtX2RhdGFMZW5ndGhfKTsKKyAgICAgICAgbV9pbml0aWFsVmFsdWVfID0gdGFibGUubV9pbml0aWFsVmFsdWVfOworICAgICAgICBtX2xlYWRVbml0VmFsdWVfID0gdGFibGUubV9sZWFkVW5pdFZhbHVlXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGFsaWFzZGF0YSBkYXRhIHRvIGJlIGZpbGxlZCBpbnRvIHRhYmxlCisgICAgICogQHBhcmFtIG1heGRhdGFsZW5ndGggbWF4aW11bSBkYXRhIGxlbmd0aCBhbGxvd2VkIGluIHRhYmxlCisgICAgICogQHBhcmFtIGluaXRpYWx2YWx1ZSBpbml0YWwgZGF0YSB2YWx1ZQorICAgICAqIEBwYXJhbSBsYXRpbjFsaW5lYXIgaXMgbGF0aW4gMSB0byBiZSBsaW5lYXIKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZUJ1aWxkZXIoaW50IGFsaWFzZGF0YVtdLCBpbnQgbWF4ZGF0YWxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbml0aWFsdmFsdWUsIGludCBsZWFkdW5pdHZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsYXRpbjFsaW5lYXIpIAorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgaWYgKG1heGRhdGFsZW5ndGggPCBEQVRBX0JMT0NLX0xFTkdUSCB8fCAobGF0aW4xbGluZWFyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtYXhkYXRhbGVuZ3RoIDwgMTAyNCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBtYXhkYXRhbGVuZ3RoIGlzIHRvbyBzbWFsbCIpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGFsaWFzZGF0YSAhPSBudWxsKSB7CisgICAgICAgICAgICBtX2RhdGFfID0gYWxpYXNkYXRhOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fZGF0YV8gPSBuZXcgaW50W21heGRhdGFsZW5ndGhdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwcmVhbGxvY2F0ZSBhbmQgcmVzZXQgdGhlIGZpcnN0IGRhdGEgYmxvY2sgKGJsb2NrIGluZGV4IDApCisgICAgICAgIGludCBqID0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIAorICAgICAgICBpZiAobGF0aW4xbGluZWFyKSB7CisgICAgICAgICAgICAvLyBwcmVhbGxvY2F0ZSBhbmQgcmVzZXQgdGhlIGZpcnN0IGJsb2NrIChudW1iZXIgMCkgYW5kIExhdGluLTEgCisgICAgICAgICAgICAvLyAoVSswMDAwLi5VKzAwZmYpIGFmdGVyIHRoYXQgbWFkZSBzdXJlIGFib3ZlIHRoYXQgCisgICAgICAgICAgICAvLyBtYXhEYXRhTGVuZ3RoID49IDEwMjQKKyAgICAgICAgICAgIC8vIHNldCBpbmRleGVzIHRvIHBvaW50IHRvIGNvbnNlY3V0aXZlIGRhdGEgYmxvY2tzCisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgLy8gZG8gdGhpcyBhdCBsZWFzdCBmb3IgdHJpZS0+aW5kZXhbMF0gZXZlbiBpZiB0aGF0IGJsb2NrIGlzIAorICAgICAgICAgICAgICAgIC8vIG9ubHkgcGFydGx5IHVzZWQgZm9yIExhdGluLTEKKyAgICAgICAgICAgICAgICBtX2luZGV4X1tpICsrXSA9IGo7CisgICAgICAgICAgICAgICAgaiArPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgIH0gd2hpbGUgKGkgPCAoMjU2ID4+IFNISUZUXykpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBtX2RhdGFMZW5ndGhfID0gajsKKyAgICAgICAgLy8gcmVzZXQgdGhlIGluaXRpYWxseSBhbGxvY2F0ZWQgYmxvY2tzIHRvIHRoZSBpbml0aWFsIHZhbHVlCisgICAgICAgIEFycmF5cy5maWxsKG1fZGF0YV8sIDAsIG1fZGF0YUxlbmd0aF8sIGluaXRpYWx2YWx1ZSk7CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IGluaXRpYWx2YWx1ZTsKKyAgICAgICAgbV9sZWFkVW5pdFZhbHVlXyA9IGxlYWR1bml0dmFsdWU7CisgICAgICAgIG1fZGF0YUNhcGFjaXR5XyA9IG1heGRhdGFsZW5ndGg7CisgICAgICAgIG1faXNMYXRpbjFMaW5lYXJfID0gbGF0aW4xbGluZWFyOworICAgICAgICBtX2lzQ29tcGFjdGVkXyA9IGZhbHNlOworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgCisgICAgLypwdWJsaWMgZmluYWwgdm9pZCBwcmludCgpCisgICAgICB7CisgICAgICBpbnQgaSA9IDA7CisgICAgICBpbnQgb2xkdmFsdWUgPSBtX2luZGV4X1tpXTsKKyAgICAgIGludCBjb3VudCA9IDA7CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluZGV4IGxlbmd0aCAiICsgbV9pbmRleExlbmd0aF8gCisgICAgICArICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgIHdoaWxlIChpIDwgbV9pbmRleExlbmd0aF8pIHsKKyAgICAgIGlmIChtX2luZGV4X1tpXSAhPSBvbGR2YWx1ZSkgeworICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbmRleCBoYXMgIiArIGNvdW50ICsgIiBjb3VudHMgb2YgIiAKKyAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhvbGR2YWx1ZSkpOworICAgICAgY291bnQgPSAwOworICAgICAgb2xkdmFsdWUgPSBtX2luZGV4X1tpXTsKKyAgICAgIH0KKyAgICAgIGNvdW50ICsrOworICAgICAgaSArKzsKKyAgICAgIH0KKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5kZXggaGFzICIgKyBjb3VudCArICIgY291bnRzIG9mICIgCisgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcob2xkdmFsdWUpKTsKKyAgICAgIGkgPSAwOworICAgICAgb2xkdmFsdWUgPSBtX2RhdGFfW2ldOworICAgICAgY291bnQgPSAwOworICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkYXRhIGxlbmd0aCAiICsgbV9kYXRhTGVuZ3RoXyAKKyAgICAgICsgIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOworICAgICAgd2hpbGUgKGkgPCBtX2RhdGFMZW5ndGhfKSB7CisgICAgICBpZiAobV9kYXRhX1tpXSAhPSBvbGR2YWx1ZSkgeworICAgICAgaWYgKChvbGR2YWx1ZSAmIDB4ZjEwMDAwMDApID09IDB4ZjEwMDAwMDApIHsKKyAgICAgIGludCB0ZW1wID0gb2xkdmFsdWUgJiAweGZmZmZmZjsgCisgICAgICB0ZW1wICs9IDB4MzIwOworICAgICAgb2xkdmFsdWUgPSAweGYxMDAwMDAwIHwgdGVtcDsKKyAgICAgIH0KKyAgICAgIGlmICgob2xkdmFsdWUgJiAweGYyMDAwMDAwKSA9PSAweGYyMDAwMDAwKSB7CisgICAgICBpbnQgdGVtcCA9IG9sZHZhbHVlICYgMHhmZmZmZmY7IAorICAgICAgdGVtcCArPSAweDE0YTsKKyAgICAgIG9sZHZhbHVlID0gMHhmMjAwMDAwMCB8IHRlbXA7CisgICAgICB9CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRhdGEgaGFzICIgKyBjb3VudCArICIgY291bnRzIG9mICIgCisgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcob2xkdmFsdWUpKTsKKyAgICAgIGNvdW50ID0gMDsKKyAgICAgIG9sZHZhbHVlID0gbV9kYXRhX1tpXTsKKyAgICAgIH0KKyAgICAgIGNvdW50ICsrOworICAgICAgaSArKzsKKyAgICAgIH0KKyAgICAgIGlmICgob2xkdmFsdWUgJiAweGYxMDAwMDAwKSA9PSAweGYxMDAwMDAwKSB7CisgICAgICBpbnQgdGVtcCA9IG9sZHZhbHVlICYgMHhmZmZmZmY7IAorICAgICAgdGVtcCArPSAweDMyMDsKKyAgICAgIG9sZHZhbHVlID0gMHhmMTAwMDAwMCB8IHRlbXA7CisgICAgICB9CisgICAgICBpZiAoKG9sZHZhbHVlICYgMHhmMjAwMDAwMCkgPT0gMHhmMjAwMDAwMCkgeworICAgICAgaW50IHRlbXAgPSBvbGR2YWx1ZSAmIDB4ZmZmZmZmOyAKKyAgICAgIHRlbXAgKz0gMHgxNGE7CisgICAgICBvbGR2YWx1ZSA9IDB4ZjIwMDAwMDAgfCB0ZW1wOworICAgICAgfQorICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkYXRhIGhhcyAiICsgY291bnQgKyAiIGNvdW50cyBvZiAiIAorICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZHZhbHVlKSk7CisgICAgICB9CisgICAgKi8gICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgMzIgYml0IGRhdGEgZnJvbSB0aGUgdGFibGUgZGF0YQorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgd2hpY2ggZGF0YSBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIHRoZSAzMiBiaXQgZGF0YQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VmFsdWUoaW50IGNoKSAKKyAgICB7CisgICAgICAgIC8vIHZhbGlkLCB1bmNvbXBhY3RlZCB0cmllIGFuZCB2YWxpZCBjPworICAgICAgICBpZiAobV9pc0NvbXBhY3RlZF8gfHwgY2ggPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSB8fCBjaCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBibG9jayA9IG1faW5kZXhfW2NoID4+IFNISUZUX107CisgICAgICAgIHJldHVybiBtX2RhdGFfW01hdGguYWJzKGJsb2NrKSArIChjaCAmIE1BU0tfKV07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhIDMyIGJpdCBkYXRhIGZyb20gdGhlIHRhYmxlIGRhdGEKKyAgICAgKiBAcGFyYW0gY2ggIGNvZGUgcG9pbnQgZm9yIHdoaWNoIGRhdGEgaXMgdG8gYmUgcmV0cmlldmVkLgorICAgICAqIEBwYXJhbSBpbkJsb2NrWmVybyAgT3V0cHV0IHBhcmFtZXRlciwgaW5CbG9ja1plcm9bMF0gcmV0dXJucyB0cnVlIGlmIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbWFwcyBpbnRvIGJsb2NrIHplcm8sIG90aGVyd2lzZSBmYWxzZS4KKyAgICAgKiBAcmV0dXJuIHRoZSAzMiBiaXQgZGF0YSB2YWx1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFZhbHVlKGludCBjaCwgYm9vbGVhbiBbXSBpbkJsb2NrWmVybykgCisgICAgeworICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgYz8KKyAgICAgICAgaWYgKG1faXNDb21wYWN0ZWRfIHx8IGNoID4gVUNoYXJhY3Rlci5NQVhfVkFMVUUgfHwgY2ggPCAwKSB7CisgICAgICAgICAgICBpZiAoaW5CbG9ja1plcm8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGluQmxvY2taZXJvWzBdID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBibG9jayA9IG1faW5kZXhfW2NoID4+IFNISUZUX107CisgICAgICAgIGlmIChpbkJsb2NrWmVybyAhPSBudWxsKSB7CisgICAgICAgICAgICBpbkJsb2NrWmVyb1swXSA9IChibG9jayA9PSAwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9kYXRhX1tNYXRoLmFicyhibG9jaykgKyAoY2ggJiBNQVNLXyldOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgMzIgYml0IGRhdGEgaW4gdGhlIHRhYmxlIGRhdGEKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgc2V0CisgICAgICogQHBhcmFtIHZhbHVlIHRvIHNldAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc2V0IGlzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSAKKyAgICAgKiAgICAgICAgICAgICAgaWYgdGhlIHRhYmxlIGhhcyBiZWVuIGNvbXBhY3RlZCByZXR1cm4gZmFsc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzZXRWYWx1ZShpbnQgY2gsIGludCB2YWx1ZSkgCisgICAgeworICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgYz8gCisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXyB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8IGNoIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBibG9jayA9IGdldERhdGFCbG9jayhjaCk7CisgICAgICAgIGlmIChibG9jayA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBtX2RhdGFfW2Jsb2NrICsgKGNoICYgTUFTS18pXSA9IHZhbHVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2VyaWFsaXplcyB0aGUgYnVpbGQgdGFibGUgd2l0aCAzMiBiaXQgZGF0YQorICAgICAqIEBwYXJhbSBkYXRhbWFuaXB1bGF0ZSBidWlsZGVyIHJhdyBmb2xkIG1ldGhvZCBpbXBsZW1lbnRhdGlvbgorICAgICAqIEBwYXJhbSB0cmllZGF0YW1hbmlwdWxhdGUgcmVzdWx0IHRyaWUgZm9sZCBtZXRob2QKKyAgICAgKiBAcmV0dXJuIGEgbmV3IHRyaWUKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZSBzZXJpYWxpemUoVHJpZUJ1aWxkZXIuRGF0YU1hbmlwdWxhdGUgZGF0YW1hbmlwdWxhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmllLkRhdGFNYW5pcHVsYXRlIHRyaWVkYXRhbWFuaXB1bGF0ZSkKKyAgICB7CisgICAgICAgIGlmIChkYXRhbWFuaXB1bGF0ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJhbWV0ZXJzIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIC8vIGZvbGQgYW5kIGNvbXBhY3QgaWYgbmVjZXNzYXJ5LCBhbHNvIGNoZWNrcyB0aGF0IGluZGV4TGVuZ3RoIGlzIAorICAgICAgICAvLyB3aXRoaW4gbGltaXRzIAorICAgICAgICBpZiAoIW1faXNDb21wYWN0ZWRfKSB7CisgICAgICAgICAgICAvLyBjb21wYWN0IG9uY2Ugd2l0aG91dCBvdmVybGFwIHRvIGltcHJvdmUgZm9sZGluZworICAgICAgICAgICAgY29tcGFjdChmYWxzZSk7CisgICAgICAgICAgICAvLyBmb2xkIHRoZSBzdXBwbGVtZW50YXJ5IHBhcnQgb2YgdGhlIGluZGV4IGFycmF5CisgICAgICAgICAgICBmb2xkKGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgICAgIC8vIGNvbXBhY3QgYWdhaW4gd2l0aCBvdmVybGFwIGZvciBtaW5pbXVtIGRhdGEgYXJyYXkgbGVuZ3RoCisgICAgICAgICAgICBjb21wYWN0KHRydWUpOworICAgICAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIGlzIGRhdGFMZW5ndGggd2l0aGluIGxpbWl0cz8gCisgICAgICAgIGlmIChtX2RhdGFMZW5ndGhfID49IE1BWF9EQVRBX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oIkRhdGEgbGVuZ3RoIHRvbyBzbWFsbCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgaW5kZXhbXSA9IG5ldyBjaGFyW21faW5kZXhMZW5ndGhfXTsKKyAgICAgICAgaW50IGRhdGFbXSA9IG5ldyBpbnRbbV9kYXRhTGVuZ3RoX107CisgICAgICAgIC8vIHdyaXRlIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYW5kIHRoZSAzMi1iaXQgZGF0YSAoc3RhZ2UgMikgYXJyYXkKKyAgICAgICAgLy8gd3JpdGUgMTYtYml0IGluZGV4IHZhbHVlcyBzaGlmdGVkIHJpZ2h0IGJ5IElOREVYX1NISUZUXyAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2luZGV4TGVuZ3RoXzsgaSArKykgeworICAgICAgICAgICAgaW5kZXhbaV0gPSAoY2hhcikobV9pbmRleF9baV0gPj4+IElOREVYX1NISUZUXyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gd3JpdGUgMzItYml0IGRhdGEgdmFsdWVzCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9kYXRhXywgMCwgZGF0YSwgMCwgbV9kYXRhTGVuZ3RoXyk7CisgICAgICAgIAorICAgICAgICBpbnQgb3B0aW9ucyA9IFNISUZUXyB8IChJTkRFWF9TSElGVF8gPDwgT1BUSU9OU19JTkRFWF9TSElGVF8pOworICAgICAgICBvcHRpb25zIHw9IE9QVElPTlNfREFUQV9JU18zMl9CSVRfOworICAgICAgICBpZiAobV9pc0xhdGluMUxpbmVhcl8pIHsKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gT1BUSU9OU19MQVRJTjFfSVNfTElORUFSXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEludFRyaWUoaW5kZXgsIGRhdGEsIG1faW5pdGlhbFZhbHVlXywgb3B0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmllZGF0YW1hbmlwdWxhdGUpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXJpYWxpemVzIHRoZSBidWlsZCB0YWJsZSB0byBhbiBvdXRwdXQgc3RyZWFtLgorICAgICAqIAorICAgICAqIENvbXBhY3RzIHRoZSBidWlsZC10aW1lIHRyaWUgYWZ0ZXIgYWxsIHZhbHVlcyBhcmUgc2V0LCBhbmQgdGhlbgorICAgICAqIHdyaXRlcyB0aGUgc2VyaWFsaXplZCBmb3JtIG9udG8gYW4gb3V0cHV0IHN0cmVhbS4KKyAgICAgKiAKKyAgICAgKiBBZnRlciB0aGlzLCB0aGlzIGJ1aWxkLXRpbWUgVHJpZSBjYW4gb25seSBiZSBzZXJpYWxpemVkIGFnYWluIGFuZC9vciBjbG9zZWQ7CisgICAgICogbm8gZnVydGhlciB2YWx1ZXMgY2FuIGJlIGFkZGVkLgorICAgICAqIAorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdGhlIHJvdWdoIGVxdWl2YWxlbnQgb2YgdXRyaWVfc2VyaWFpemUoKSBpbiBJQ1U0Qy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gb3MgdGhlIG91dHB1dCBzdHJlYW0gdG8gd2hpY2ggdGhlIHNlcmlhaXplZCB0cmllIHdpbGwgYmUgd3JpdHRlbi4KKyAgICAgKiAgICAgICAgIElmIG51bCwgdGhlIGZ1bmN0aW9uIHN0aWxsIHJldHVybnMgdGhlIHNpemUgb2YgdGhlIHNlcmlhbGl6ZWQgVHJpZS4KKyAgICAgKiBAcGFyYW0gcmVkdWNlVG8xNkJpdHMgSWYgdHJ1ZSwgcmVkdWNlIHRoZSBkYXRhIHNpemUgdG8gMTYgYml0cy4gIFRoZSByZXN1bHRpbmcKKyAgICAgKiAgICAgICAgIHNlcmlhbGl6ZWQgZm9ybSBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIENoYXJUcmllLgorICAgICAqIEBwYXJhbSBkYXRhbWFuaXB1bGF0ZSBidWlsZGVyIHJhdyBmb2xkIG1ldGhvZCBpbXBsZW1lbnRhdGlvbgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgc3RyZWFtLgorICAgICAqLworICAgICBwdWJsaWMgaW50IHNlcmlhbGl6ZShPdXRwdXRTdHJlYW0gb3MsIGJvb2xlYW4gcmVkdWNlVG8xNkJpdHMsCisgICAgICAgICAgICBUcmllQnVpbGRlci5EYXRhTWFuaXB1bGF0ZSBkYXRhbWFuaXB1bGF0ZSkgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICBpZiAoZGF0YW1hbmlwdWxhdGUgPT0gbnVsbCkgeworICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlBhcmFtZXRlcnMgY2FuIG5vdCBiZSBudWxsIik7CisgICAgICAgICB9CisKKyAgICAgICAgIC8vIGZvbGQgYW5kIGNvbXBhY3QgaWYgbmVjZXNzYXJ5LCBhbHNvIGNoZWNrcyB0aGF0IGluZGV4TGVuZ3RoIGlzIAorICAgICAgICAgLy8gd2l0aGluIGxpbWl0cyAKKyAgICAgICAgIGlmICghbV9pc0NvbXBhY3RlZF8pIHsKKyAgICAgICAgICAgICAvLyBjb21wYWN0IG9uY2Ugd2l0aG91dCBvdmVybGFwIHRvIGltcHJvdmUgZm9sZGluZworICAgICAgICAgICAgIGNvbXBhY3QoZmFsc2UpOworICAgICAgICAgICAgIC8vIGZvbGQgdGhlIHN1cHBsZW1lbnRhcnkgcGFydCBvZiB0aGUgaW5kZXggYXJyYXkKKyAgICAgICAgICAgICBmb2xkKGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgICAgICAvLyBjb21wYWN0IGFnYWluIHdpdGggb3ZlcmxhcCBmb3IgbWluaW11bSBkYXRhIGFycmF5IGxlbmd0aAorICAgICAgICAgICAgIGNvbXBhY3QodHJ1ZSk7CisgICAgICAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSB0cnVlOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvLyBpcyBkYXRhTGVuZ3RoIHdpdGhpbiBsaW1pdHM/IAorICAgICAgICAgaW50IGxlbmd0aDsKKyAgICAgICAgIGlmIChyZWR1Y2VUbzE2Qml0cykgeworICAgICAgICAgICAgIGxlbmd0aCA9IG1fZGF0YUxlbmd0aF8gKyBtX2luZGV4TGVuZ3RoXzsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgbGVuZ3RoID0gbV9kYXRhTGVuZ3RoXzsKKyAgICAgICAgIH0KKyAgICAgICAgIGlmIChsZW5ndGggPj0gTUFYX0RBVEFfTEVOR1RIXykgeworICAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oIkRhdGEgbGVuZ3RoIHRvbyBzbWFsbCIpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvLyAgc3RydWN0IFVUcmllSGVhZGVyIHsKKyAgICAgICAgIC8vICAgICAgaW50MzJfdCAgIHNpZ25hdHVyZTsKKyAgICAgICAgIC8vICAgICAgaW50MzJfdCAgIG9wdGlvbnMgIChhIGJpdCBmaWVsZCkKKyAgICAgICAgIC8vICAgICAgaW50MzJfdCAgIGluZGV4TGVuZ3RoCisgICAgICAgICAvLyAgICAgIGludDMyX3QgICBkYXRhTGVuZ3RoCisgICAgICAgICBsZW5ndGggPSBUcmllLkhFQURFUl9MRU5HVEhfICsgMiptX2luZGV4TGVuZ3RoXzsKKyAgICAgICAgIGlmKHJlZHVjZVRvMTZCaXRzKSB7CisgICAgICAgICAgICAgbGVuZ3RoKz0yKm1fZGF0YUxlbmd0aF87CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIGxlbmd0aCs9NCptX2RhdGFMZW5ndGhfOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBpZiAob3MgPT0gbnVsbCkgeworICAgICAgICAgICAgIC8vIE5vIG91dHB1dCBzdHJlYW0uICBKdXN0IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBzZXJpYWxpemVkIFRyaWUsIGluIGJ5dGVzLgorICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgICB9CisKKyAgICAgICAgIERhdGFPdXRwdXRTdHJlYW0gZG9zID0gbmV3IERhdGFPdXRwdXRTdHJlYW0ob3MpOworICAgICAgICAgZG9zLndyaXRlSW50KFRyaWUuSEVBREVSX1NJR05BVFVSRV8pOyAgCisgICAgICAgICAKKyAgICAgICAgIGludCBvcHRpb25zID0gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyB8IChUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfPDxUcmllLkhFQURFUl9PUFRJT05TX0lOREVYX1NISUZUXyk7CisgICAgICAgICBpZighcmVkdWNlVG8xNkJpdHMpIHsKKyAgICAgICAgICAgICBvcHRpb25zIHw9IFRyaWUuSEVBREVSX09QVElPTlNfREFUQV9JU18zMl9CSVRfOworICAgICAgICAgfQorICAgICAgICAgaWYobV9pc0xhdGluMUxpbmVhcl8pIHsKKyAgICAgICAgICAgICBvcHRpb25zIHw9IFRyaWUuSEVBREVSX09QVElPTlNfTEFUSU4xX0lTX0xJTkVBUl9NQVNLXzsKKyAgICAgICAgIH0KKyAgICAgICAgIGRvcy53cml0ZUludChvcHRpb25zKTsKKyAgICAgICAgIAorICAgICAgICAgZG9zLndyaXRlSW50KG1faW5kZXhMZW5ndGhfKTsKKyAgICAgICAgIGRvcy53cml0ZUludChtX2RhdGFMZW5ndGhfKTsKKyAgICAgICAgIAorICAgICAgICAgLyogd3JpdGUgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheSBhbmQgdGhlIDE2LzMyLWJpdCBkYXRhIChzdGFnZSAyKSBhcnJheSAqLworICAgICAgICAgaWYocmVkdWNlVG8xNkJpdHMpIHsKKyAgICAgICAgICAgICAvKiB3cml0ZSAxNi1iaXQgaW5kZXggdmFsdWVzIHNoaWZ0ZWQgcmlnaHQgYnkgVVRSSUVfSU5ERVhfU0hJRlQsIGFmdGVyIGFkZGluZyBpbmRleExlbmd0aCAqLworICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxtX2luZGV4TGVuZ3RoXzsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGludCB2ID0gKG1faW5kZXhfW2ldICsgbV9pbmRleExlbmd0aF8pID4+PiBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICAgICAgICAgICBkb3Mud3JpdGVDaGFyKHYpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICAvKiB3cml0ZSAxNi1iaXQgZGF0YSB2YWx1ZXMgKi8KKyAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxtX2RhdGFMZW5ndGhfOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgaW50IHYgPSBtX2RhdGFfW2ldICYgMHgwMDAwZmZmZjsKKyAgICAgICAgICAgICAgICAgZG9zLndyaXRlQ2hhcih2KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIC8qIHdyaXRlIDE2LWJpdCBpbmRleCB2YWx1ZXMgc2hpZnRlZCByaWdodCBieSBVVFJJRV9JTkRFWF9TSElGVCAqLworICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxtX2luZGV4TGVuZ3RoXzsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGludCB2ID0gKG1faW5kZXhfW2ldKSA+Pj4gVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgICAgICAgICAgZG9zLndyaXRlQ2hhcih2KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgLyogd3JpdGUgMzItYml0IGRhdGEgdmFsdWVzICovCisgICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8bV9kYXRhTGVuZ3RoXzsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGRvcy53cml0ZUludChtX2RhdGFfW2ldKTsKKyAgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgYSB2YWx1ZSBpbiBhIHJhbmdlIG9mIGNvZGUgcG9pbnRzIFtzdGFydC4ubGltaXRdLgorICAgICAqIEFsbCBjb2RlIHBvaW50cyBjIHdpdGggc3RhcnQgJmx0Oz0gYyAmbHQ7IGxpbWl0IHdpbGwgZ2V0IHRoZSB2YWx1ZSBpZgorICAgICAqIG92ZXJ3cml0ZSBpcyB0cnVlIG9yIGlmIHRoZSBvbGQgdmFsdWUgaXMgMC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgdG8gZ2V0IHRoZSB2YWx1ZQorICAgICAqIEBwYXJhbSBsaW1pdCBvbmUgcGFzdCB0aGUgbGFzdCBjb2RlIHBvaW50IHRvIGdldCB0aGUgdmFsdWUKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgICAgICogQHBhcmFtIG92ZXJ3cml0ZSBmbGFnIGZvciB3aGV0aGVyIG9sZCBub24taW5pdGlhbCB2YWx1ZXMgYXJlIHRvIGJlIAorICAgICAqICAgICAgICBvdmVyd3JpdHRlbgorICAgICAqIEByZXR1cm4gZmFsc2UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3VtZW50IG9yIGRhdGEgYXJyYXkgCisgICAgICogICAgICAgICAgICAgICBvdmVycnVuKQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHNldFJhbmdlKGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgdmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gb3ZlcndyaXRlKSAKKyAgICB7CisgICAgICAgIC8vIHJlcGVhdCB2YWx1ZSBpbiBbc3RhcnQuLmxpbWl0WworICAgICAgICAvLyBtYXJrIGluZGV4IHZhbHVlcyBmb3IgcmVwZWF0LWRhdGEgYmxvY2tzIGJ5IHNldHRpbmcgYml0IDMxIG9mIHRoZSAKKyAgICAgICAgLy8gaW5kZXggdmFsdWVzIGZpbGwgYXJvdW5kIGV4aXN0aW5nIHZhbHVlcyBpZiBhbnksIGlmKG92ZXJ3cml0ZSkKKyAgICAgICAgICAgIAorICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgaW5kZXhlcz8KKyAgICAgICAgaWYgKG1faXNDb21wYWN0ZWRfIHx8IHN0YXJ0IDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUgCisgICAgICAgICAgICB8fCBzdGFydCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8IGxpbWl0IDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUKKyAgICAgICAgICAgIHx8IGxpbWl0ID4gKFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMSkgfHwgc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm90aGluZyB0byBkbworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoKHN0YXJ0ICYgTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgIC8vIHNldCBwYXJ0aWFsIGJsb2NrIGF0IFtzdGFydC4uZm9sbG93aW5nIGJsb2NrIGJvdW5kYXJ5WworICAgICAgICAgICAgaW50IGJsb2NrID0gZ2V0RGF0YUJsb2NrKHN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChibG9jayA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaW50IG5leHRTdGFydCA9IChzdGFydCArIERBVEFfQkxPQ0tfTEVOR1RIKSAmIH5NQVNLXzsKKyAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPD0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICBmaWxsQmxvY2soYmxvY2ssIHN0YXJ0ICYgTUFTS18sIERBVEFfQkxPQ0tfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgb3ZlcndyaXRlKTsKKyAgICAgICAgICAgICAgICBzdGFydCA9IG5leHRTdGFydDsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmaWxsQmxvY2soYmxvY2ssIHN0YXJ0ICYgTUFTS18sIGxpbWl0ICYgTUFTS18sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBvdmVyd3JpdGUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBudW1iZXIgb2YgcG9zaXRpb25zIGluIHRoZSBsYXN0LCBwYXJ0aWFsIGJsb2NrCisgICAgICAgIGludCByZXN0ID0gbGltaXQgJiBNQVNLXzsKKyAgICAgICAgCisgICAgICAgIC8vIHJvdW5kIGRvd24gbGltaXQgdG8gYSBibG9jayBib3VuZGFyeSAKKyAgICAgICAgbGltaXQgJj0gfk1BU0tfOworICAgICAgICAKKyAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIGFsbC12YWx1ZSBibG9ja3MgCisgICAgICAgIGludCByZXBlYXRCbG9jayA9IDA7CisgICAgICAgIGlmICh2YWx1ZSA9PSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgIC8vIHJlcGVhdEJsb2NrID0gMDsgYXNzaWduZWQgYWJvdmUKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXBlYXRCbG9jayA9IC0xOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAvLyBnZXQgaW5kZXggdmFsdWUgCisgICAgICAgICAgICBpbnQgYmxvY2sgPSBtX2luZGV4X1tzdGFydCA+PiBTSElGVF9dOworICAgICAgICAgICAgaWYgKGJsb2NrID4gMCkgeworICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgYWxsb2NhdGVkLCBmaWxsIGluIHZhbHVlCisgICAgICAgICAgICAgICAgZmlsbEJsb2NrKGJsb2NrLCAwLCBEQVRBX0JMT0NLX0xFTkdUSCwgdmFsdWUsIG92ZXJ3cml0ZSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAobV9kYXRhX1stYmxvY2tdICE9IHZhbHVlICYmIChibG9jayA9PSAwIHx8IG92ZXJ3cml0ZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIHJlcGVhdEJsb2NrIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgYmxvY2sgMCBvciByYW5nZSAKKyAgICAgICAgICAgICAgICAvLyBibG9jayAKKyAgICAgICAgICAgICAgICBpZiAocmVwZWF0QmxvY2sgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBtX2luZGV4X1tzdGFydCA+PiBTSElGVF9dID0gLXJlcGVhdEJsb2NrOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhbmQgc2V0IGFuZCBmaWxsIHRoZSByZXBlYXRCbG9jaworICAgICAgICAgICAgICAgICAgICByZXBlYXRCbG9jayA9IGdldERhdGFCbG9jayhzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRCbG9jayA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZWdhdGl2ZSBibG9jayBudW1iZXIgdG8gaW5kaWNhdGUgdGhhdCBpdCBpcyBhIAorICAgICAgICAgICAgICAgICAgICAvLyByZXBlYXQgYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgbV9pbmRleF9bc3RhcnQgPj4gU0hJRlRfXSA9IC1yZXBlYXRCbG9jazsKKyAgICAgICAgICAgICAgICAgICAgZmlsbEJsb2NrKHJlcGVhdEJsb2NrLCAwLCBEQVRBX0JMT0NLX0xFTkdUSCwgdmFsdWUsIHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBzdGFydCArPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHJlc3QgPiAwKSB7CisgICAgICAgICAgICAvLyBzZXQgcGFydGlhbCBibG9jayBhdCBbbGFzdCBibG9jayBib3VuZGFyeS4ubGltaXRbCisgICAgICAgICAgICBpbnQgYmxvY2sgPSBnZXREYXRhQmxvY2soc3RhcnQpOworICAgICAgICAgICAgaWYgKGJsb2NrIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbGxCbG9jayhibG9jaywgMCwgcmVzdCwgdmFsdWUsIG92ZXJ3cml0ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgCisgICAgcHJvdGVjdGVkIGludCBtX2RhdGFfW107CisgICAgcHJvdGVjdGVkIGludCBtX2luaXRpYWxWYWx1ZV87ICAKKyAgICAKKyAgICAvLyAgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBpbnQgbV9sZWFkVW5pdFZhbHVlXzsgIAorICAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAKKyAgICBwcml2YXRlIGludCBhbGxvY0RhdGFCbG9jaygpIAorICAgIHsKKyAgICAgICAgaW50IG5ld0Jsb2NrID0gbV9kYXRhTGVuZ3RoXzsKKyAgICAgICAgaW50IG5ld1RvcCA9IG5ld0Jsb2NrICsgREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIGlmIChuZXdUb3AgPiBtX2RhdGFDYXBhY2l0eV8pIHsKKyAgICAgICAgICAgIC8vIG91dCBvZiBtZW1vcnkgaW4gdGhlIGRhdGEgYXJyYXkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFMZW5ndGhfID0gbmV3VG9wOworICAgICAgICByZXR1cm4gbmV3QmxvY2s7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm8gZXJyb3IgY2hlY2tpbmcgZm9yIGlsbGVnYWwgYXJndW1lbnRzLgorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gbG9vayBmb3IKKyAgICAgKiBAcmV0dXJuIC0xIGlmIG5vIG5ldyBkYXRhIGJsb2NrIGF2YWlsYWJsZSAob3V0IG9mIG1lbW9yeSBpbiBkYXRhIGFycmF5KQorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldERhdGFCbG9jayhpbnQgY2gpIAorICAgIHsKKyAgICAgICAgY2ggPj49IFNISUZUXzsKKyAgICAgICAgaW50IGluZGV4VmFsdWUgPSBtX2luZGV4X1tjaF07CisgICAgICAgIGlmIChpbmRleFZhbHVlID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4VmFsdWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gYWxsb2NhdGUgYSBuZXcgZGF0YSBibG9jaworICAgICAgICBpbnQgbmV3QmxvY2sgPSBhbGxvY0RhdGFCbG9jaygpOworICAgICAgICBpZiAobmV3QmxvY2sgPCAwKSB7CisgICAgICAgICAgICAvLyBvdXQgb2YgbWVtb3J5IGluIHRoZSBkYXRhIGFycmF5IAorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIG1faW5kZXhfW2NoXSA9IG5ld0Jsb2NrOworICAgIAorICAgICAgICAvLyBjb3B5LW9uLXdyaXRlIGZvciBhIGJsb2NrIGZyb20gYSBzZXRSYW5nZSgpCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9kYXRhXywgTWF0aC5hYnMoaW5kZXhWYWx1ZSksIG1fZGF0YV8sIG5ld0Jsb2NrLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgREFUQV9CTE9DS19MRU5HVEggPDwgMik7CisgICAgICAgIHJldHVybiBuZXdCbG9jazsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFjdCBhIGZvbGRlZCBidWlsZC10aW1lIHRyaWUuCisgICAgICogVGhlIGNvbXBhY3Rpb24KKyAgICAgKiAtIHJlbW92ZXMgYmxvY2tzIHRoYXQgYXJlIGlkZW50aWNhbCB3aXRoIGVhcmxpZXIgb25lcworICAgICAqIC0gb3ZlcmxhcHMgYWRqYWNlbnQgYmxvY2tzIGFzIG11Y2ggYXMgcG9zc2libGUgKGlmIG92ZXJsYXAgPT0gdHJ1ZSkKKyAgICAgKiAtIG1vdmVzIGJsb2NrcyBpbiBzdGVwcyBvZiB0aGUgZGF0YSBncmFudWxhcml0eQorICAgICAqIC0gbW92ZXMgYW5kIG92ZXJsYXBzIGJsb2NrcyB0aGF0IG92ZXJsYXAgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uCisgICAgICoKKyAgICAgKiBJdCBkb2VzIG5vdAorICAgICAqIC0gdHJ5IHRvIG1vdmUgYW5kIG92ZXJsYXAgYmxvY2tzIHRoYXQgYXJlIG5vdCBhbHJlYWR5IGFkamFjZW50CisgICAgICogQHBhcmFtIG92ZXJsYXAgZmxhZworICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wYWN0KGJvb2xlYW4gb3ZlcmxhcCkgCisgICAgeworICAgICAgICBpZiAobV9pc0NvbXBhY3RlZF8pIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gbm90aGluZyBsZWZ0IHRvIGRvCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gY29tcGFjdGlvbgorICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBpbmRleCBtYXAgd2l0aCAiYmxvY2sgaXMgdXNlZC91bnVzZWQiIGZsYWdzCisgICAgICAgIGZpbmRVbnVzZWRCbG9ja3MoKTsKKyAgICAgICAgCisgICAgICAgIC8vIGlmIExhdGluLTEgaXMgcHJlYWxsb2NhdGVkIGFuZCBsaW5lYXIsIHRoZW4gZG8gbm90IGNvbXBhY3QgTGF0aW4tMSAKKyAgICAgICAgLy8gZGF0YQorICAgICAgICBpbnQgb3ZlcmxhcFN0YXJ0ID0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIGlmIChtX2lzTGF0aW4xTGluZWFyXyAmJiBTSElGVF8gPD0gOCkgeworICAgICAgICAgICAgb3ZlcmxhcFN0YXJ0ICs9IDI1NjsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICBpbnQgbmV3U3RhcnQgPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaW50IHN0YXJ0ID0gbmV3U3RhcnQ7IHN0YXJ0IDwgbV9kYXRhTGVuZ3RoXzspIHsKKyAgICAgICAgICAgIC8vIHN0YXJ0OiBpbmRleCBvZiBmaXJzdCBlbnRyeSBvZiBjdXJyZW50IGJsb2NrCisgICAgICAgICAgICAvLyBuZXdTdGFydDogaW5kZXggd2hlcmUgdGhlIGN1cnJlbnQgYmxvY2sgaXMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgIC8vICAgICAgICAgICAocmlnaHQgYWZ0ZXIgY3VycmVudCBlbmQgb2YgYWxyZWFkeS1jb21wYWN0ZWQgZGF0YSkKKyAgICAgICAgICAgIC8vIHNraXAgYmxvY2tzIHRoYXQgYXJlIG5vdCB1c2VkIAorICAgICAgICAgICAgaWYgKG1fbWFwX1tzdGFydCA+Pj4gU0hJRlRfXSA8IDApIHsKKyAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIHN0YXJ0IHRvIHRoZSBuZXh0IGJsb2NrIAorICAgICAgICAgICAgICAgIHN0YXJ0ICs9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgICAgIC8vIGxlYXZlIG5ld1N0YXJ0IHdpdGggdGhlIHByZXZpb3VzIGJsb2NrIQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2VhcmNoIGZvciBhbiBpZGVudGljYWwgYmxvY2sKKyAgICAgICAgICAgIGlmIChzdGFydCA+PSBvdmVybGFwU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBpID0gZmluZFNhbWVEYXRhQmxvY2sobV9kYXRhXywgbmV3U3RhcnQsIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxhcCA/IERBVEFfR1JBTlVMQVJJVFlfIDogREFUQV9CTE9DS19MRU5HVEgpOworICAgICAgICAgICAgICAgIGlmIChpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQgYW4gaWRlbnRpY2FsIGJsb2NrLCBzZXQgdGhlIG90aGVyIGJsb2NrJ3MgaW5kZXggCisgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGZvciB0aGUgY3VycmVudCBibG9jaworICAgICAgICAgICAgICAgICAgICBtX21hcF9bc3RhcnQgPj4+IFNISUZUX10gPSBpOworICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIHN0YXJ0IHRvIHRoZSBuZXh0IGJsb2NrCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgICAgICAgICAvLyBsZWF2ZSBuZXdTdGFydCB3aXRoIHRoZSBwcmV2aW91cyBibG9jayEKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2VlIGlmIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBibG9jayBjYW4gYmUgb3ZlcmxhcHBlZCB3aXRoIHRoZSAKKyAgICAgICAgICAgIC8vIGVuZCBvZiB0aGUgcHJldmlvdXMgYmxvY2sKKyAgICAgICAgICAgIGlmKG92ZXJsYXAgJiYgc3RhcnQ+PW92ZXJsYXBTdGFydCkgeworICAgICAgICAgICAgICAgIC8qIGxvb2sgZm9yIG1heGltdW0gb3ZlcmxhcCAobW9kdWxvIGdyYW51bGFyaXR5KSB3aXRoIHRoZSBwcmV2aW91cywgYWRqYWNlbnQgYmxvY2sgKi8KKyAgICAgICAgICAgICAgICBmb3IoaT1EQVRBX0JMT0NLX0xFTkdUSC1EQVRBX0dSQU5VTEFSSVRZXzsKKyAgICAgICAgICAgICAgICAgICAgaT4wICYmICFlcXVhbF9pbnQobV9kYXRhXywgbmV3U3RhcnQtaSwgc3RhcnQsIGkpOworICAgICAgICAgICAgICAgICAgICBpLT1EQVRBX0dSQU5VTEFSSVRZXykge30KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaT0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gc29tZSBvdmVybGFwCisgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+PiBTSElGVF9dID0gbmV3U3RhcnQgLSBpOworICAgICAgICAgICAgICAgIC8vIG1vdmUgdGhlIG5vbi1vdmVybGFwcGluZyBpbmRleGVzIHRvIHRoZWlyIG5ldyBwb3NpdGlvbnMKKyAgICAgICAgICAgICAgICBzdGFydCArPSBpOworICAgICAgICAgICAgICAgIGZvciAoaSA9IERBVEFfQkxPQ0tfTEVOR1RIIC0gaTsgaSA+IDA7IC0tIGkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhX1tuZXdTdGFydCArK10gPSBtX2RhdGFfW3N0YXJ0ICsrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAobmV3U3RhcnQgPCBzdGFydCkgeworICAgICAgICAgICAgICAgIC8vIG5vIG92ZXJsYXAsIGp1c3QgbW92ZSB0aGUgaW5kZXhlcyB0byB0aGVpciBuZXcgcG9zaXRpb25zCisgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+PiBTSElGVF9dID0gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgZm9yIChpID0gREFUQV9CTE9DS19MRU5HVEg7IGkgPiAwOyAtLSBpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YV9bbmV3U3RhcnQgKytdID0gbV9kYXRhX1tzdGFydCArK107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeyAvLyBubyBvdmVybGFwICYmIG5ld1N0YXJ0PT1zdGFydAorICAgICAgICAgICAgICAgIG1fbWFwX1tzdGFydCA+Pj4gU0hJRlRfXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIG5ld1N0YXJ0ICs9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbmV3U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gbm93IGFkanVzdCB0aGUgaW5kZXggKHN0YWdlIDEpIHRhYmxlCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtX2luZGV4TGVuZ3RoXzsgKysgaSkgeworICAgICAgICAgICAgbV9pbmRleF9baV0gPSBtX21hcF9bTWF0aC5hYnMobV9pbmRleF9baV0pID4+PiBTSElGVF9dOworICAgICAgICB9CisgICAgICAgIG1fZGF0YUxlbmd0aF8gPSBuZXdTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBzYW1lIGRhdGEgYmxvY2sKKyAgICAgKiBAcGFyYW0gZGF0YSBhcnJheQorICAgICAqIEBwYXJhbSBkYXRhTGVuZ3RoCisgICAgICogQHBhcmFtIG90aGVyQmxvY2sKKyAgICAgKiBAcGFyYW0gc3RlcAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBmaW5kU2FtZURhdGFCbG9jayhpbnQgZGF0YVtdLCBpbnQgZGF0YUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG90aGVyQmxvY2ssIGludCBzdGVwKSAKKyAgICB7CisgICAgICAgIC8vIGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBldmVuIHBhcnRpYWxseSBnZXQgcGFzdCBkYXRhTGVuZ3RoCisgICAgICAgIGRhdGFMZW5ndGggLT0gREFUQV9CTE9DS19MRU5HVEg7CisKKyAgICAgICAgZm9yIChpbnQgYmxvY2sgPSAwOyBibG9jayA8PSBkYXRhTGVuZ3RoOyBibG9jayArPSBzdGVwKSB7CisgICAgICAgICAgICBpZihlcXVhbF9pbnQoZGF0YSwgYmxvY2ssIG90aGVyQmxvY2ssIERBVEFfQkxPQ0tfTEVOR1RIKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBibG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvbGQgdGhlIG5vcm1hbGl6YXRpb24gZGF0YSBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyBpbnRvCisgICAgICogYSBjb21wYWN0IGFyZWEgb24gdG9wIG9mIHRoZSBCTVAtcGFydCBvZiB0aGUgdHJpZSBpbmRleCwKKyAgICAgKiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZXMgaW5kZXhpbmcgdGhpcyBjb21wYWN0IGFyZWEuCisgICAgICoKKyAgICAgKiBEdXBsaWNhdGUgdGhlIGluZGV4IHZhbHVlcyBmb3IgbGVhZCBzdXJyb2dhdGVzOgorICAgICAqIEZyb20gaW5zaWRlIHRoZSBCTVAgYXJlYSwgd2hlcmUgc29tZSBtYXkgYmUgb3ZlcnJpZGRlbiB3aXRoIGZvbGRlZCB2YWx1ZXMsCisgICAgICogdG8ganVzdCBhZnRlciB0aGUgQk1QIGFyZWEsIHdoZXJlIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBmb3IKKyAgICAgKiBjb2RlIHBvaW50IGxvb2t1cHMuCisgICAgICogQHBhcmFtIG1hbmlwdWxhdGUgZm9sZCBpbXBsZW1lbnRhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBmb2xkKERhdGFNYW5pcHVsYXRlIG1hbmlwdWxhdGUpIAorICAgIHsKKyAgICAgICAgaW50IGxlYWRJbmRleGVzW10gPSBuZXcgaW50W1NVUlJPR0FURV9CTE9DS19DT1VOVF9dOworICAgICAgICBpbnQgaW5kZXhbXSA9IG1faW5kZXhfOworICAgICAgICAvLyBjb3B5IHRoZSBsZWFkIHN1cnJvZ2F0ZSBpbmRleGVzIGludG8gYSB0ZW1wb3JhcnkgYXJyYXkKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShpbmRleCwgMHhkODAwID4+IFNISUZUXywgbGVhZEluZGV4ZXMsIDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICAKKyAgICAgICAgLy8gc2V0IGFsbCB2YWx1ZXMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgKnVuaXRzKiB0byBsZWFkVW5pdFZhbHVlCisgICAgICAgIC8vIHNvIHRoYXQgYnkgZGVmYXVsdCBydW50aW1lIGxvb2t1cHMgd2lsbCBmaW5kIG5vIGRhdGEgZm9yIGFzc29jaWF0ZWQKKyAgICAgICAgLy8gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cywgdW5sZXNzIHRoZXJlIGlzIGRhdGEgZm9yIHN1Y2ggY29kZSBwb2ludHMKKyAgICAgICAgLy8gd2hpY2ggd2lsbCByZXN1bHQgaW4gYSBub24temVybyBmb2xkaW5nIHZhbHVlIGJlbG93IHRoYXQgaXMgc2V0IGZvcgorICAgICAgICAvLyB0aGUgcmVzcGVjdGl2ZSBsZWFkIHVuaXRzCisgICAgICAgIC8vIHRoZSBhYm92ZSBzYXZlZCB0aGUgaW5kZXhlcyBmb3Igc3Vycm9nYXRlIGNvZGUgKnBvaW50cyoKKyAgICAgICAgLy8gZmlsbCB0aGUgaW5kZXhlcyB3aXRoIHNpbXBsaWZpZWQgY29kZSBmcm9tIHV0cmllX3NldFJhbmdlMzIoKQorICAgICAgICBpbnQgYmxvY2sgPSAwOworICAgICAgICBpZiAobV9sZWFkVW5pdFZhbHVlXyA9PSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgIC8vIGxlYWRVbml0VmFsdWUgPT0gaW5pdGlhbFZhbHVlLCB1c2UgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sKKyAgICAgICAgICAgIC8vIGJsb2NrID0gMDsgaWYgYmxvY2sgaGVyZSBsZWZ0IGVtcHR5CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gY3JlYXRlIGFuZCBmaWxsIHRoZSByZXBlYXRCbG9jaworICAgICAgICAgICAgYmxvY2sgPSBhbGxvY0RhdGFCbG9jaygpOworICAgICAgICAgICAgaWYgKGJsb2NrIDwgMCkgeworICAgICAgICAgICAgICAgIC8vIGRhdGEgdGFibGUgb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJJbnRlcm5hbCBlcnJvcjogT3V0IG9mIG1lbW9yeSBzcGFjZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlsbEJsb2NrKGJsb2NrLCAwLCBEQVRBX0JMT0NLX0xFTkdUSCwgbV9sZWFkVW5pdFZhbHVlXywgdHJ1ZSk7CisgICAgICAgICAgICAvLyBuZWdhdGl2ZSBibG9jayBudW1iZXIgdG8gaW5kaWNhdGUgdGhhdCBpdCBpcyBhIHJlcGVhdCBibG9jaworICAgICAgICAgICAgYmxvY2sgPSAtYmxvY2s7IAorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGMgPSAoMHhkODAwID4+IFNISUZUXyk7IGMgPCAoMHhkYzAwID4+IFNISUZUXyk7ICsrIGMpIHsKKyAgICAgICAgICAgIG1faW5kZXhfW2NdID0gYmxvY2s7CisgICAgICAgIH0KKworICAgICAgICAvLyBGb2xkIHNpZ25pZmljYW50IGluZGV4IHZhbHVlcyBpbnRvIHRoZSBhcmVhIGp1c3QgYWZ0ZXIgdGhlIEJNUCAKKyAgICAgICAgLy8gaW5kZXhlcy4KKyAgICAgICAgLy8gSW4gY2FzZSB0aGUgZmlyc3QgbGVhZCBzdXJyb2dhdGUgaGFzIHNpZ25pZmljYW50IGRhdGEsCisgICAgICAgIC8vIGl0cyBpbmRleCBibG9jayBtdXN0IGJlIHVzZWQgZmlyc3QgKGluIHdoaWNoIGNhc2UgdGhlIGZvbGRpbmcgaXMgYSAKKyAgICAgICAgLy8gbm8tb3ApLgorICAgICAgICAvLyBMYXRlciBhbGwgZm9sZGVkIGluZGV4IGJsb2NrcyBhcmUgbW92ZWQgdXAgb25lIHRvIGluc2VydCB0aGUgY29waWVkCisgICAgICAgIC8vIGxlYWQgc3Vycm9nYXRlIGluZGV4ZXMuCisgICAgICAgIGludCBpbmRleExlbmd0aCA9IEJNUF9JTkRFWF9MRU5HVEhfOworICAgICAgICAvLyBzZWFyY2ggZm9yIGFueSBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAKKyAgICAgICAgZm9yIChpbnQgYyA9IDB4MTAwMDA7IGMgPCAweDExMDAwMDspIHsKKyAgICAgICAgICAgIGlmIChpbmRleFtjID4+IFNISUZUX10gIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGRhdGEsIHRyZWF0IHRoZSBmdWxsIGJsb2NrIGZvciBhIGxlYWQgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgYyAmPSB+MHgzZmY7CisgICAgICAgICAgICAgICAgLy8gaXMgdGhlcmUgYW4gaWRlbnRpY2FsIGluZGV4IGJsb2NrPworICAgICAgICAgICAgICAgIGJsb2NrID0gZmluZFNhbWVJbmRleEJsb2NrKGluZGV4LCBpbmRleExlbmd0aCwgYyA+PiBTSElGVF8pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGdldCBhIGZvbGRlZCB2YWx1ZSBmb3IgW2MuLmMrMHg0MDBbIGFuZCwKKyAgICAgICAgICAgICAgICAvLyBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgdmFsdWUgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZSBjb2RlIAorICAgICAgICAgICAgICAgIC8vIHBvaW50LCBzZXQgaXQgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXQKKworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IG1hbmlwdWxhdGUuZ2V0Rm9sZGVkVmFsdWUoYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jayArIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBnZXRWYWx1ZShVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGMpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXNldFZhbHVlKFVURjE2LmdldExlYWRTdXJyb2dhdGUoYyksIHZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YSB0YWJsZSBvdmVyZmxvdyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIHRhYmxlIG92ZXJmbG93Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgZGlkIG5vdCBmaW5kIGFuIGlkZW50aWNhbCBpbmRleCBibG9jay4uLgorICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2sgPT0gaW5kZXhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgdGhlIGFjdHVhbCBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBmcm9tIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgcG9zaXRpb24gdG8gdGhlIG5ldyBvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoaW5kZXgsIGMgPj4gU0hJRlRfLCBpbmRleCwgaW5kZXhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhMZW5ndGggKz0gU1VSUk9HQVRFX0JMT0NLX0NPVU5UXzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjICs9IDB4NDAwOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGMgKz0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGluZGV4IGFycmF5IG92ZXJmbG93PworICAgICAgICAvLyBUaGlzIGlzIHRvIGd1YXJhbnRlZSB0aGF0IGEgZm9sZGluZyBvZmZzZXQgaXMgb2YgdGhlIGZvcm0KKyAgICAgICAgLy8gVVRSSUVfQk1QX0lOREVYX0xFTkdUSCtuKlVUUklFX1NVUlJPR0FURV9CTE9DS19DT1VOVCB3aXRoIG49MC4uMTAyMy4KKyAgICAgICAgLy8gSWYgdGhlIGluZGV4IGlzIHRvbyBsYXJnZSwgdGhlbiBuPj0xMDI0IGFuZCBtb3JlIHRoYW4gMTAgYml0cyBhcmUgCisgICAgICAgIC8vIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gSW4gZmFjdCwgaXQgY2FuIG9ubHkgZXZlciBiZWNvbWUgbj09MTAyNCB3aXRoIGNvbXBsZXRlbHkgdW5mb2xkYWJsZSAKKyAgICAgICAgLy8gZGF0YSBhbmQgdGhlIGFkZGl0aW9uYWwgYmxvY2sgb2YgZHVwbGljYXRlZCB2YWx1ZXMgZm9yIGxlYWQgCisgICAgICAgIC8vIHN1cnJvZ2F0ZXMuCisgICAgICAgIGlmIChpbmRleExlbmd0aCA+PSBNQVhfSU5ERVhfTEVOR1RIXykgeworICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiSW5kZXggdGFibGUgb3ZlcmZsb3ciKTsKKyAgICAgICAgfQorICAgICAgICAvLyBtYWtlIHNwYWNlIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUgaW5kZXggYmxvY2sgYW5kIGluc2VydCBpdCBiZXR3ZWVuIAorICAgICAgICAvLyB0aGUgQk1QIGluZGV4ZXMgYW5kIHRoZSBmb2xkZWQgb25lcworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGluZGV4LCBCTVBfSU5ERVhfTEVOR1RIXywgaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgIEJNUF9JTkRFWF9MRU5HVEhfICsgU1VSUk9HQVRFX0JMT0NLX0NPVU5UXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleExlbmd0aCAtIEJNUF9JTkRFWF9MRU5HVEhfKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsZWFkSW5kZXhlcywgMCwgaW5kZXgsIEJNUF9JTkRFWF9MRU5HVEhfLAorICAgICAgICAgICAgICAgICAgICAgICAgIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICBpbmRleExlbmd0aCArPSBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfOworICAgICAgICBtX2luZGV4TGVuZ3RoXyA9IGluZGV4TGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZmlsbEJsb2NrKGludCBibG9jaywgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCB2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIG92ZXJ3cml0ZSkgCisgICAgeworICAgICAgICBsaW1pdCArPSBibG9jazsKKyAgICAgICAgYmxvY2sgKz0gc3RhcnQ7CisgICAgICAgIGlmIChvdmVyd3JpdGUpIHsKKyAgICAgICAgICAgIHdoaWxlIChibG9jayA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgbV9kYXRhX1tibG9jayArK10gPSB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoYmxvY2sgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGlmIChtX2RhdGFfW2Jsb2NrXSA9PSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhX1tibG9ja10gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludmFsaWRGb3JtYXRFeGNlcHRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludmFsaWRGb3JtYXRFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjdjMmE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW52YWxpZEZvcm1hdEV4Y2VwdGlvbi5qYXZhCkBAIC0wLDAgKzEsMjEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK3B1YmxpYyBjbGFzcyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHsKKyAgICAKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDg4ODMzMjg5MDUwODkzNDU3OTFMOworICAgIAorICAgIHB1YmxpYyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCl7fQorICAgIAorICAgIHB1YmxpYyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlKXsKKyAgICAgICAgc3VwZXIobWVzc2FnZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSkRLVGltZVpvbmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0pES1RpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUzOTcxZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0pES1RpbWVab25lLmphdmEKQEAgLTAsMCArMSwyNjkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE9jdG9iZXIgMiAyMDAzCisqIFNpbmNlOiBJQ1UgMi44CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBXcmFwcGVyIGFyb3VuZCBPbHNvblRpbWVab25lIG9iamVjdC4gRHVlIHRvIHNlcmlhbHppYXRpb24gY29uc3RyYWludHMKKyAqIFNpbXBsZVRpbWVab25lIGNhbm5vdCBiZSBhIHN1YmNsYXNzIG9mIE9sc29uVGltZVpvbmUuCisgKiAKKyAqIFRoZSBjb21wbGVtZW50IG9mIHRoaXMgaXMgVGltZVpvbmVBZGFwdGVyLCB3aGljaCBtYWtlcyBhCisgKiBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIGxvb2sgbGlrZSBhIGphdmEudXRpbC5UaW1lWm9uZS4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBjbGFzcyBKREtUaW1lWm9uZSBleHRlbmRzIFRpbWVab25lIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0zNzI0OTA3NjQ5ODg5NDU1MjgwTDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgamF2YS51dGlsLlRpbWVab25lIHdyYXBwZWQgYnkgdGhpcyBvYmplY3QuICBNdXN0IG5vdCBiZSBudWxsLgorICAgICAqLworICAgIC8vIGdpdmUgYWNjZXNzIHRvIFNpbXBsZVRpbWVab25lCisgICAgcHJvdGVjdGVkIHRyYW5zaWVudCBPbHNvblRpbWVab25lIHpvbmU7CisgICAgLyoKKyAgICAgKiBHaXZlbiBhIGphdmEudXRpbC5UaW1lWm9uZSwgd3JhcCBpdCBpbiB0aGUgYXBwcm9wcmlhdGUgYWRhcHRlcgorICAgICAqIHN1YmNsYXNzIG9mIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgYW5kIHJldHVybiB0aGUgYWRhcHRlci4KKyAgICAgKi8KKy8vICAgIHB1YmxpYyBzdGF0aWMgVGltZVpvbmUgd3JhcChqYXZhLnV0aWwuVGltZVpvbmUgdHopIHsKKy8vICAgICAgICBpZiAodHogaW5zdGFuY2VvZiBUaW1lWm9uZUFkYXB0ZXIpIHsKKy8vICAgICAgICAgICAgcmV0dXJuICgoVGltZVpvbmVBZGFwdGVyKSB0eikudW53cmFwKCk7CisvLyAgICAgICAgfQorLy8gICAgICAgIGlmICh0eiBpbnN0YW5jZW9mIGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSkgeworLy8gICAgICAgICAgICByZXR1cm4gbmV3IFNpbXBsZVRpbWVab25lKChqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUpIHR6LCB0ei5nZXRJRCgpKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgcmV0dXJuIG5ldyBKREtUaW1lWm9uZSh0eik7CisvLyAgICB9CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBKREtUaW1lWm9uZSBnaXZlbiBhIGphdmEudXRpbC5UaW1lWm9uZSByZWZlcmVuY2UKKyAgICAgKiB3aGljaCBtdXN0IG5vdCBiZSBudWxsLgorICAgICAqIEBwYXJhbSB0eiB0aGUgdGltZSB6b25lIHRvIHdyYXAKKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwgCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIEpES1RpbWVab25lKGphdmEudXRpbC5UaW1lWm9uZSB0eikgeworICAgICAgICBTdHJpbmcgaWQgPSB0ei5nZXRJRCgpOworICAgICAgICB0cnl7CisgICAgICAgICAgICB6b25lID0gbmV3IE9sc29uVGltZVpvbmUoaWQpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIC8vIHRocm93IGF3YXkgZXhjZXB0aW9uCisgICAgICAgIH0KKyAgICAgICAgc3VwZXIuc2V0SUQoaWQpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgSkRLVGltZVpvbmUoT2xzb25UaW1lWm9uZSB0eikgeworICAgICAgICB6b25lID0gdHo7CisgICAgICAgIHN1cGVyLnNldElEKHpvbmUuZ2V0SUQoKSk7CisgICAgfQorICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgSkRLVGltZVpvbmUoKSB7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgem9uZSBJRC4gVGhpcyBkb2VzIG5vdCBjaGFuZ2UgYW55IG90aGVyIGRhdGEgaW4KKyAgICAgKiB0aGUgdGltZSB6b25lIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gSUQgdGhlIG5ldyB0aW1lIHpvbmUgSUQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SUQoU3RyaW5nIElEKSB7CisgICAgICAgIHN1cGVyLnNldElEKElEKTsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICB6b25lLnNldElEKElEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE9mZnNldChpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssIGludCBtaWxsaXNlY29uZHMpIHsKKworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiB6b25lLmdldE9mZnNldChlcmEsIHllYXIsIG1vbnRoLCBkYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU9mV2VlaywgbWlsbGlzZWNvbmRzKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzaG91bGQgbmV2ZXIgb2NjdXIgZXhjZXB0IAorICAgICAgICAvLyB3aGVuIG9sZCBvYmplY3Qgb2Ygb2xkZXIgdmVyc2lvbiBvZiBKREtUaW1lWm9uZSBhcmUgZGUtc2VyaWFsaXplZC4KKyAgICAgICAgLy8gdGhlc2Ugb2JqZWN0cyBtYXkgY29udGFpbiBpZHMgdGhhdCBPbHNvblRpbWVab25lIG1heSBub3QgdW5kZXJzdGFuZCAKKyAgICAgICAgLy8gaW4gc3VjaCBjYXNlcyB6b25lIHdpbGwgYmUgbnVsbAorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIGdldE9mZnNldChsb25nIGRhdGUsIGJvb2xlYW4gbG9jYWwsIGludFtdIG9mZnNldHMpIHsKKworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHpvbmUuZ2V0T2Zmc2V0KGRhdGUsIGxvY2FsLCBvZmZzZXRzKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBzdXBlci5nZXRPZmZzZXQoZGF0ZSwgbG9jYWwsIG9mZnNldHMpOworICAgICAgICB9CisgICAgfQorIAorICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykgeworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHpvbmUuc2V0UmF3T2Zmc2V0KG9mZnNldE1pbGxpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSYXdPZmZzZXQoKSB7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgcmV0dXJuIHpvbmUuZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIG9jY3VyIGV4Y2VwdCAKKyAgICAgICAgLy8gd2hlbiBvbGQgb2JqZWN0IG9mIG9sZGVyIHZlcnNpb24gb2YgSkRLVGltZVpvbmUgYXJlIGRlLXNlcmlhbGl6ZWQuCisgICAgICAgIC8vIHRoZXNlIG9iamVjdHMgbWF5IGNvbnRhaW4gaWRzIHRoYXQgT2xzb25UaW1lWm9uZSBtYXkgbm90IHVuZGVyc3RhbmQgCisgICAgICAgIC8vIGluIHN1Y2ggY2FzZXMgem9uZSB3aWxsIGJlIG51bGwKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpIHsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzaG91bGQgbmV2ZXIgb2NjdXIgZXhjZXB0IAorICAgICAgICAvLyB3aGVuIG9sZCBvYmplY3Qgb2Ygb2xkZXIgdmVyc2lvbiBvZiBKREtUaW1lWm9uZSBhcmUgZGUtc2VyaWFsaXplZC4KKyAgICAgICAgLy8gdGhlc2Ugb2JqZWN0cyBtYXkgY29udGFpbiBpZHMgdGhhdCBPbHNvblRpbWVab25lIG1heSBub3QgdW5kZXJzdGFuZCAKKyAgICAgICAgLy8gaW4gc3VjaCBjYXNlcyB6b25lIHdpbGwgYmUgbnVsbAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGluRGF5bGlnaHRUaW1lKERhdGUgZGF0ZSkgeworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiB6b25lLmluRGF5bGlnaHRUaW1lKGRhdGUpOworICAgICAgICB9CisgICAgICAgIC8vIHNob3VsZCBuZXZlciBvY2N1ciBleGNlcHQgCisgICAgICAgIC8vIHdoZW4gb2xkIG9iamVjdCBvZiBvbGRlciB2ZXJzaW9uIG9mIEpES1RpbWVab25lIGFyZSBkZS1zZXJpYWxpemVkLgorICAgICAgICAvLyB0aGVzZSBvYmplY3RzIG1heSBjb250YWluIGlkcyB0aGF0IE9sc29uVGltZVpvbmUgbWF5IG5vdCB1bmRlcnN0YW5kIAorICAgICAgICAvLyBpbiBzdWNoIGNhc2VzIHpvbmUgd2lsbCBiZSBudWxsCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEkuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aGVyKSB7CisgICAgICAgIGlmIChvdGhlciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG90aGVyIGluc3RhbmNlb2YgSkRLVGltZVpvbmUpIHsKKyAgICAgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgICAgIHJldHVybiB6b25lLmhhc1NhbWVSdWxlcygoKEpES1RpbWVab25lKSBvdGhlcikuem9uZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhc1NhbWVSdWxlcyhvdGhlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIEpES1RpbWVab25lIGNsb25lID0gbmV3IEpES1RpbWVab25lKCk7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgY2xvbmUuem9uZSA9IChPbHNvblRpbWVab25lKXpvbmUuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2xvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiB6b25lLmhhc2hDb2RlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbXMgdGhhdCB0aGUgY2xvY2sgaXMgYWR2YW5jZWQgZHVyaW5nIERTVC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoZSB0aW1lIGlzCisgICAgICogYWR2YW5jZWQgd2l0aCByZXNwZWN0IHRvIHN0YW5kYXJkIHRpbWUgd2hlbiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBydWxlcworICAgICAqIGFyZSBpbiBlZmZlY3QuIEEgcG9zaXRpdmUgbnVtYmVyLCB0eXBpY2FsbHkgb25lIGhvdXIgKDM2MDAwMDApLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RFNUU2F2aW5ncygpIHsKKyAgICAgICAgaWYgKHVzZURheWxpZ2h0VGltZSgpKSB7CisgICAgICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gem9uZS5nZXREU1RTYXZpbmdzKCk7CisgICAgICAgICAgICB9CisJCQlyZXR1cm4gMzYwMDAwMDsKKwkJfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmKG9iaiAhPW51bGwpeworICAgICAgICAgICAgICAgIFRpbWVab25lIHR6MSA9IHpvbmU7CisgICAgICAgICAgICAgICAgVGltZVpvbmUgdHoyID0gKChKREtUaW1lWm9uZSkgb2JqKS56b25lOworICAgICAgICAgICAgICAgIGJvb2xlYW4gZXF1YWwgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmKHR6MSE9bnVsbCAmJiB0ejIhPW51bGwpeworICAgICAgICAgICAgICAgICAgICBlcXVhbCA9IHR6MS5lcXVhbHModHoyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGVxdWFsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIkpES1RpbWVab25lOiAiICsgem9uZS50b1N0cmluZygpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB3cml0ZU9iamVjdChqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbSBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KHpvbmUuZ2V0SUQoKSk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KGdldElEKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZylpbi5yZWFkT2JqZWN0KCk7CisKKyAgICAgICAgLy8gY3JlYXRlIHRoZSBUaW1lWm9uZSBvYmplY3QgaWYgcmVhZGluZyB0aGUgb2xkIHZlcnNpb24gb2Ygb2JqZWN0CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgT2xzb25UaW1lWm9uZShpZCk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy90aHJvdyBhd2F5IGV4Y2VwdGlvbgorICAgICAgICB9CQkJCQkJCSAKKyAgICAgICAgc2V0SUQoaWQpOworICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xSVU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTFJVTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIyMWY3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xSVU1hcC5qYXZhCkBAIC0wLDAgKzEsNTQgQEAKKy8vIyNoZWFkZXIKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEudXRpbC5MaW5rZWRIYXNoTWFwOworLy8jZW5kaWYKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCisvKgorICogU2ltcGxlIExSVSAoTGVhc3QgUmVjZW50IFVzZWQpIE1hcCBpbXBsZW1lbnRhdGlvbgorICovCitwdWJsaWMgY2xhc3MgTFJVTWFwIGV4dGVuZHMgTGlua2VkSGFzaE1hcCB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTgxNzgxMDY0NTkwODk2ODIxMjBMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfTUFYQ0FQQUNJVFkgPSA2NDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9JTklUSUFMQ0FQQUNJVFkgPSAxNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBmbG9hdCBERUZBVUxUX0xPQURGQUNUT1IgPSAwLjc1RjsKKworICAgIHByaXZhdGUgZmluYWwgaW50IG1heENhcGFjaXR5OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IExSVSBtYXAgd2l0aCB0aGUgZGVmYXVsdCBpbml0aWFsCisgICAgICogY2FwYWNpdHkoMTYpIGFuZCB0aGUgbWF4aW11bSBjYXBhY2l0eSg2NCkuCisgICAgICovCisgICAgcHVibGljIExSVU1hcCgpIHsKKyAgICAgICAgc3VwZXIoREVGQVVMVF9JTklUSUFMQ0FQQUNJVFksIERFRkFVTFRfTE9BREZBQ1RPUiwgdHJ1ZSk7CisgICAgICAgIG1heENhcGFjaXR5ID0gREVGQVVMVF9NQVhDQVBBQ0lUWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgTFJVIG1hcCB3aXRoIHRoZSBzcGVjaWZpZWQgaW5pdGlhbAorICAgICAqIGNhcGFjaXR5IGFuZCB0aGUgbWF4aW11bSBjYXBhY2l0eQorICAgICAqIAorICAgICAqIEBwYXJhbSBpbml0aWFsQ2FwYWNpdHkgaW5pdGlhbCBjYXBhY2l0eSBvZiB0aGUgbWFwCisgICAgICogQHBhcmFtIG1heENhcGFjaXR5IG1heGltdW0gY2FwYWNpdHkgb2YgdGhlIG1hcAorICAgICAqLworICAgIHB1YmxpYyBMUlVNYXAoaW50IGluaXRpYWxDYXBhY2l0eSwgaW50IG1heENhcGFjaXR5KSB7CisgICAgICAgIHN1cGVyKGluaXRpYWxDYXBhY2l0eSwgREVGQVVMVF9MT0FERkFDVE9SLCB0cnVlKTsKKyAgICAgICAgdGhpcy5tYXhDYXBhY2l0eSA9IG1heENhcGFjaXR5OworICAgIH0KKworICAgIC8qCisgICAgICogRGVsZXRlIHRoZSBlbGRlc3QgZW50cnkgd2hlbiB0aGUgc2l6ZSBleGNlZWRzIHRoZSBsaW1pdAorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIHJlbW92ZUVsZGVzdEVudHJ5KE1hcC5FbnRyeSBlbGRlc3QpIHsKKyAgICAgICAgcmV0dXJuIChzaXplKCkgPiBtYXhDYXBhY2l0eSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTGlua2VkSGFzaE1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTGlua2VkSGFzaE1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzOWU1MzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9MaW5rZWRIYXNoTWFwLmphdmEKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworLyoqCisgKiBKREsxLjQgTGlua2VkSGFzaE1hcCBlcXVpdmFsZW50IGltcGxlbWVudGF0aW9uIGZvcgorICogSmF2YSBmb3VuZGF0aW9uIHByb2ZpbGUgc3VwcG9ydC4gIFRoaXMgY2xhc3MgaXMgdXNlZAorICogYnkgPGNvZGU+Y29tLmlibS5pY3UuaW1wbC5MUlVNYXA8L2NvZGU+IG9uIGVjbGlwc2UKKyAqIGRpc3RyaWJ1dGlvbnMsIHdoaWNoIHJlcXVpcmUgSkRLMS4zL0phdmEgRm91bmRhdGlvbgorICogcHJvZmlsZSBzdXBwb3J0LgorICovCitwdWJsaWMgY2xhc3MgTGlua2VkSGFzaE1hcCBleHRlbmRzIEhhc2hNYXAgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0yNDk3ODIzNDgwNDM2NjE4MDc1TDsKKworICAgIHByaXZhdGUgYm9vbGVhbiBhY2Nlc3NPcmRlciA9IGZhbHNlOworICAgIHByaXZhdGUgTGlua2VkTGlzdCBrZXlMaXN0ID0gbmV3IExpbmtlZExpc3QoKTsKKworICAgIHB1YmxpYyBMaW5rZWRIYXNoTWFwKCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIHB1YmxpYyBMaW5rZWRIYXNoTWFwKGludCBpbml0aWFsQ2FwYWNpdHkpIHsKKyAgICAgICAgc3VwZXIoaW5pdGlhbENhcGFjaXR5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIExpbmtlZEhhc2hNYXAoaW50IGluaXRpYWxDYXBhY2l0eSwgZmxvYXQgbG9hZEZhY3RvcikgeworICAgICAgICBzdXBlcihpbml0aWFsQ2FwYWNpdHksIGxvYWRGYWN0b3IpOworICAgIH0KKworICAgIHB1YmxpYyBMaW5rZWRIYXNoTWFwKGludCBpbml0aWFsQ2FwYWNpdHksIGZsb2F0IGxvYWRGYWN0b3IsIGJvb2xlYW4gYWNjZXNzT3JkZXIpIHsKKyAgICAgICAgc3VwZXIoaW5pdGlhbENhcGFjaXR5LCBsb2FkRmFjdG9yKTsKKyAgICAgICAgdGhpcy5hY2Nlc3NPcmRlciA9IGFjY2Vzc09yZGVyOworICAgIH0KKworICAgIHB1YmxpYyBMaW5rZWRIYXNoTWFwKE1hcCBtKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIHB1dEFsbChtKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgc3VwZXIuY2xlYXIoKTsKKyAgICAgICAga2V5TGlzdC5jbGVhcigpOworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgcmVtb3ZlKE9iamVjdCBrZXkpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gc3VwZXIucmVtb3ZlKGtleSk7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBudWxsIG1pZ2h0IGJlIHJldHVybmVkIGZvciBhIG1hcCBlbnRyeQorICAgICAgICAgICAgLy8gZm9yIG51bGwgdmFsdWUuICBTbyB3ZSBuZWVkIHRvIGNoZWNrIGlmCisgICAgICAgICAgICAvLyB0aGUga2V5IGlzIGFjdHVhbGx5IGF2YWlsYWJsZSBvciBub3QuCisgICAgICAgICAgICAvLyBJZiB0aGUga2V5IGxpc3QgY29udGFpbnMgdGhlIGtleSwgdGhlbgorICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBrZXkgZnJvbSB0aGUgbGlzdC4KKyAgICAgICAgICAgIGludCBpbmRleCA9IGdldEtleUluZGV4KGtleSk7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgICAgIGtleUxpc3QucmVtb3ZlKGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBPYmplY3QgZ2V0KE9iamVjdCBrZXkpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gc3VwZXIuZ2V0KGtleSk7CisgICAgICAgIGlmIChhY2Nlc3NPcmRlcikgeworICAgICAgICAgICAgLy8gV2hlbiBhY2Nlc3NPcmRlciBpcyB0cnVlLCBtb3ZlIHRoZSBrZXkKKyAgICAgICAgICAgIC8vIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKKyAgICAgICAgICAgIGludCBpbmRleCA9IGdldEtleUluZGV4KGtleSk7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPSBrZXlMaXN0LnNpemUoKSAtIDEpIHsKKyAgICAgICAgICAgICAgICAgICAga2V5TGlzdC5yZW1vdmUoaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBrZXlMaXN0LmFkZExhc3Qoa2V5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHB1dEFsbChNYXAgbSkgeworICAgICAgICBTZXQga2V5U2V0ID0gbS5rZXlTZXQoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBrZXlTZXQuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG0uZ2V0KGtleSk7CisgICAgICAgICAgICBwdXQoa2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IHB1dChPYmplY3Qga2V5LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgT2JqZWN0IG9sZFZhbHVlID0gc3VwZXIucHV0KGtleSwgdmFsdWUpOworCisgICAgICAgIC8vIE1vdmUgdGhlIGtleSB0byB0aGUgZW5kIG9mIGtleSBsaXN0CisgICAgICAgIC8vIGlmIGl0IGV4aXN0cy4gIElmIG5vdCwgYXBwZW5kIHRoZSBrZXkKKyAgICAgICAgLy8gdG8gdGhlIGVuZCBvZiBrZXkgbGlzdAorICAgICAgICBpbnQgaW5kZXggPSBnZXRLZXlJbmRleChrZXkpOworICAgICAgICBpZiAoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgaWYgKGluZGV4ICE9IGtleUxpc3Quc2l6ZSgpIC0gMSkgeworICAgICAgICAgICAgICAgIGtleUxpc3QucmVtb3ZlKGluZGV4KTsKKyAgICAgICAgICAgICAgICBrZXlMaXN0LmFkZExhc3Qoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGtleUxpc3QuYWRkTGFzdChrZXkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UgbmVlZCB0byByZW1vdmUgdGhlIGVsZGVzdAorICAgICAgICAvLyBlbnRyeS4KKyAgICAgICAgT2JqZWN0IGVsZGVzdEtleSA9IGtleUxpc3QuZ2V0Rmlyc3QoKTsKKyAgICAgICAgT2JqZWN0IGVsZGVzdFZhbHVlID0gc3VwZXIuZ2V0KGVsZGVzdEtleSk7CisgICAgICAgIE1hcEVudHJ5IGVudHJ5ID0gbmV3IE1hcEVudHJ5KGVsZGVzdEtleSwgZWxkZXN0VmFsdWUpOworICAgICAgICBpZiAocmVtb3ZlRWxkZXN0RW50cnkoZW50cnkpKSB7CisgICAgICAgICAgICBrZXlMaXN0LnJlbW92ZUZpcnN0KCk7CisgICAgICAgICAgICBzdXBlci5yZW1vdmUoZWxkZXN0S2V5KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBvbGRWYWx1ZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiByZW1vdmVFbGRlc3RFbnRyeShNYXAuRW50cnkgZWxkZXN0KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXRLZXlJbmRleChPYmplY3Qga2V5KSB7CisgICAgICAgIGludCBpbmRleCA9IC0xOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGtleUxpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIE9iamVjdCBvID0ga2V5TGlzdC5nZXQoaSk7CisgICAgICAgICAgICBpZiAoby5lcXVhbHMoa2V5KSkgeworICAgICAgICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHN0YXRpYyBjbGFzcyBNYXBFbnRyeSBpbXBsZW1lbnRzIE1hcC5FbnRyeSB7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IGtleTsKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgdmFsdWU7CisKKyAgICAgICAgcHJpdmF0ZSBNYXBFbnRyeShPYmplY3Qga2V5LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CisgICAgICAgICAgICBPYmplY3Qgb3RoZXJLZXkgPSAoKE1hcC5FbnRyeSlvKS5nZXRLZXkoKTsKKyAgICAgICAgICAgIE9iamVjdCBvdGhlclZhbHVlID0gKChNYXAuRW50cnkpbykuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgIGlmIChrZXkuZXF1YWxzKG90aGVyS2V5KSAmJiB2YWx1ZS5lcXVhbHMob3RoZXJWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0S2V5KCkgeworICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgT2JqZWN0IHNldFZhbHVlKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAgICAgT2JqZWN0IG9sZFZhbHVlID0gdGhpcy52YWx1ZTsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybiBvbGRWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xvY2FsZVV0aWxpdHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xvY2FsZVV0aWxpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODkyYjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTG9jYWxlVXRpbGl0eS5qYXZhCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIGNsYXNzIHRvIGhvbGQgdXRpbGl0eSBmdW5jdGlvbnMgbWlzc2luZyBmcm9tIGphdmEudXRpbC5Mb2NhbGUuCisgKi8KK3B1YmxpYyBjbGFzcyBMb2NhbGVVdGlsaXR5IHsKKworICAgIC8qKgorICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSBzdHJpbmcgb2YgdGhlIGZvcm0KKyAgICAgKiBhYV9CQl9DQyB0byBhIGxvY2FsZSBvYmplY3QuICBXaHkgaXNuJ3QgdGhpcyBpbiBMb2NhbGU/CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGUgZ2V0TG9jYWxlRnJvbU5hbWUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gIiI7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisKKyAgICAgICAgaW50IGkxID0gbmFtZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChpMSA8IDApIHsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbmFtZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbmFtZS5zdWJzdHJpbmcoMCwgaTEpOworICAgICAgICAgICAgKytpMTsKKyAgICAgICAgICAgIGludCBpMiA9IG5hbWUuaW5kZXhPZignXycsIGkxKTsKKyAgICAgICAgICAgIGlmIChpMiA8IDApIHsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gbmFtZS5zdWJzdHJpbmcoaTEpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gbmFtZS5zdWJzdHJpbmcoaTEsIGkyKTsKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gbmFtZS5zdWJzdHJpbmcoaTIrMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gbG9jYWxlIHN0cmluZ3Mgb2YgdGhlIGZvcm0gYWFfQkJfQ0MsIGFuZAorICAgICAqIHJldHVybiB0cnVlIGlmIHBhcmVudCBpcyBhICdzdHJpY3QnIGZhbGxiYWNrIG9mIGNoaWxkLCB0aGF0IGlzLAorICAgICAqIGlmIGNoaWxkID1+ICJecGFyZW50KF8uKykqIiAocm91Z2hseSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRmFsbGJhY2tPZihTdHJpbmcgcGFyZW50LCBTdHJpbmcgY2hpbGQpIHsKKyAgICAgICAgaWYgKCFjaGlsZC5zdGFydHNXaXRoKHBhcmVudCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IHBhcmVudC5sZW5ndGgoKTsKKyAgICAgICAgcmV0dXJuIChpID09IGNoaWxkLmxlbmd0aCgpIHx8CisgICAgICAgICAgICAgICAgY2hpbGQuY2hhckF0KGkpID09ICdfJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gbG9jYWxlcywgYW5kIHJldHVybiB0cnVlIGlmIHRoZSBwYXJlbnQgaXMgYQorICAgICAqICdzdHJpY3QnIGZhbGxiYWNrIG9mIHRoZSBjaGlsZCAocGFyZW50IHN0cmluZyBpcyBhIGZhbGxiYWNrCisgICAgICogb2YgY2hpbGQgc3RyaW5nKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNGYWxsYmFja09mKExvY2FsZSBwYXJlbnQsIExvY2FsZSBjaGlsZCkgeworICAgICAgICByZXR1cm4gaXNGYWxsYmFja09mKHBhcmVudC50b1N0cmluZygpLCBjaGlsZC50b1N0cmluZygpKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGNhbGxzIGNhbm9uaWNhbExvY2FsZVN0cmluZyhTdHJpbmcpIHdpdGgKKyAgICAgKiBsb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjYW5vbmljYWxMb2NhbGVTdHJpbmcoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gY2Fub25pY2FsTG9jYWxlU3RyaW5nKGxvY2FsZS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBZb3UnZCB0aGluayB0aGF0IExvY2FsZSBjYW5vbmljYWxpemVzLCBzaW5jZSBpdCBtdW5nZXMgdGhlCisgICAgICogcmVuYW1lZCBsYW5ndWFnZXMsIGJ1dCBpdCBkb2Vzbid0IHF1aXRlLiAgSXQgZm9yY2VzIHRoZSByZWdpb24KKyAgICAgKiB0byBiZSB1cHBlciBjYXNlIGJ1dCBkb2Vzbid0IGRvIGFueXRoaW5nIGFib3V0IHRoZSBsYW5ndWFnZSBvcgorICAgICAqIHZhcmlhbnQuICBPdXIgY2Fub25pY2FsIGZvcm0gaXMgJ2xvd2VyX1VQUEVSX1VQUEVSJy4gIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExvY2FsZVN0cmluZyhTdHJpbmcgaWQpIHsKKyAgICAgICAgaWYgKGlkICE9IG51bGwpIHsKKwkJCWludCB4ID0gaWQuaW5kZXhPZigiXyIpOworCQkJaWYgKHggPT0gLTEpIHsKKwkJCQlpZCA9IGlkLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNIKTsKKwkJCX0gZWxzZSB7CisJCQkJU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJCQlidWYuYXBwZW5kKGlkLnN1YnN0cmluZygwLCB4KS50b0xvd2VyQ2FzZShMb2NhbGUuRU5HTElTSCkpOworCQkJCWJ1Zi5hcHBlbmQoaWQuc3Vic3RyaW5nKHgpLnRvVXBwZXJDYXNlKExvY2FsZS5FTkdMSVNIKSk7CisKKwkJCQlpbnQgbGVuID0gYnVmLmxlbmd0aCgpOworCQkJCWludCBuID0gbGVuOworCQkJCXdoaWxlICgtLW4gPj0gMCAmJiBidWYuY2hhckF0KG4pID09ICdfJykgeworCQkJCX0KKwkJCQlpZiAoKytuICE9IGxlbikgeworCQkJCQlidWYuZGVsZXRlKG4sIGxlbik7CisJCQkJfQorCQkJCWlkID0gYnVmLnRvU3RyaW5nKCk7CisJCQl9CisJCX0KKwkJcmV0dXJuIGlkOworICAgIH0KKworICAgIC8qKgorCSAqIEZhbGxiYWNrIGZyb20gdGhlIGdpdmVuIGxvY2FsZSBuYW1lIGJ5IHJlbW92aW5nIHRoZSByaWdodG1vc3QgXy1kZWxpbWl0ZWQKKwkgKiBlbGVtZW50LiBJZiB0aGVyZSBpcyBub25lLCByZXR1cm4gdGhlIHJvb3QgbG9jYWxlICgiIiwgIiIsICIiKS4gSWYgdGhpcworCSAqIGlzIHRoZSByb290IGxvY2FsZSwgcmV0dXJuIG51bGwuIE5PVEU6IFRoZSBzdHJpbmcgInJvb3QiIGlzIG5vdAorCSAqIHJlY29nbml6ZWQ7IGRvIG5vdCB1c2UgaXQuCisJICogCisJICogQHJldHVybiBhIG5ldyBMb2NhbGUgdGhhdCBpcyBhIGZhbGxiYWNrIGZyb20gdGhlIGdpdmVuIGxvY2FsZSwgb3IgbnVsbC4KKwkgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZSBmYWxsYmFjayhMb2NhbGUgbG9jKSB7CisKKyAgICAgICAgLy8gU3BsaXQgdGhlIGxvY2FsZSBpbnRvIHBhcnRzIGFuZCByZW1vdmUgdGhlIHJpZ2h0bW9zdCBwYXJ0CisgICAgICAgIFN0cmluZ1tdIHBhcnRzID0gbmV3IFN0cmluZ1tdCisgICAgICAgICAgICB7IGxvYy5nZXRMYW5ndWFnZSgpLCBsb2MuZ2V0Q291bnRyeSgpLCBsb2MuZ2V0VmFyaWFudCgpIH07CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9MjsgaT49MDsgLS1pKSB7CisgICAgICAgICAgICBpZiAocGFydHNbaV0ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHBhcnRzW2ldID0gIiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGk8MCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIEFsbCBwYXJ0cyB3ZXJlIGVtcHR5CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUocGFydHNbMF0sIHBhcnRzWzFdLCBwYXJ0c1syXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJEYXRhUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMxMjg1NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJEYXRhUmVhZGVyLmphdmEKQEAgLTAsMCArMSw0MzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWc7CisKKy8qKgorICogQHZlcnNpb24gICAgIDEuMAorICogQGF1dGhvciAgICAgICAgUmFtIFZpc3dhbmFkaGEKKyAqLworCisgICAgLyoKKyAgICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0IG9mIHVub3JtLmljdSB2ZXJzaW9uIDIuMS4KKyAgICAgKgorICAgICAqIE1haW4gY2hhbmdlIGZyb20gdmVyc2lvbiAxIHRvIHZlcnNpb24gMjoKKyAgICAgKiBVc2Ugb2YgbmV3LCBjb21tb24gVHJpZSBpbnN0ZWFkIG9mIG5vcm1hbGl6YXRpb24tc3BlY2lmaWMgdHJpZXMuCisgICAgICogQ2hhbmdlIHRvIHZlcnNpb24gMi4xOiBhZGQgdGhpcmQvYXV4aWxpYXJ5IHRyaWUgd2l0aCBhc3NvY2lhdGVkIGRhdGEuCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBkZXRhaWxzIG9mIGhvdyB0byB1c2UgdGhlIGRhdGEgc3RydWN0dXJlcyBzZWUgdGhlIGNvZGUKKyAgICAgKiBpbiB1bm9ybS5jcHAgKHJ1bnRpbWUgbm9ybWFsaXphdGlvbiBjb2RlKSBhbmQKKyAgICAgKiBpbiBnZW5ub3JtLmMgYW5kIGdlbm5vcm0vc3RvcmUuYyAoYnVpbGQtdGltZSBkYXRhIGdlbmVyYXRpb24pLgorICAgICAqCisgICAgICogRm9yIHRoZSBzZXJpYWxpemVkIGZvcm1hdCBvZiBUcmllIHNlZSBUcmllLmMvVHJpZUhlYWRlci4KKyAgICAgKgorICAgICAqIC0gT3ZlcmFsbCBwYXJ0aXRpb24KKyAgICAgKgorICAgICAqIHVub3JtLmljdSBjdXN0b21hcmlseSBiZWdpbnMgd2l0aCBhIFVEYXRhSW5mbyBzdHJ1Y3R1cmUsIHNlZSB1ZGF0YS5oIGFuZCAuYy4KKyAgICAgKiBBZnRlciB0aGF0IHRoZXJlIGFyZSB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZXM6CisgICAgICoKKyAgICAgKiBjaGFyIGluZGV4ZXNbSU5ERVhfVE9QXTsgICAgICAgICAgICAgICAgICAgLS0gSU5ERVhfVE9QPTMyLCBzZWUgZW51bSBpbiB0aGlzIGZpbGUKKyAgICAgKgorICAgICAqIFRyaWUgbm9ybVRyaWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2l6ZSBpbiBieXRlcz1pbmRleGVzW0lOREVYX1RSSUVfU0laRV0KKyAgICAgKiAKKyAgICAgKiBjaGFyIGV4dHJhRGF0YVtleHRyYURhdGFUb3BdOyAgICAgICAgICAgIC0tIGV4dHJhRGF0YVRvcD1pbmRleGVzW0lOREVYX1VDSEFSX0NPVU5UXQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhRGF0YVswXSBjb250YWlucyB0aGUgbnVtYmVyIG9mIHVuaXRzIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZDX05GS0NfQ2xvc3VyZSAoZm9ybWF0VmVyc2lvbj49Mi4xKQorICAgICAqCisgICAgICogY2hhciBjb21iaW5pbmdUYWJsZVtjb21iaW5pbmdUYWJsZVRvcF07ICAtLSBjb21iaW5pbmdUYWJsZVRvcD1pbmRleGVzW0lOREVYX0NPTUJJTkVfREFUQV9DT1VOVF0KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5pbmdUYWJsZVRvcCBtYXkgaW5jbHVkZSBvbmUgMTYtYml0IHBhZGRpbmcgdW5pdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIG1ha2Ugc3VyZSB0aGF0IGZjZFRyaWUgaXMgMzItYml0LWFsaWduZWQKKyAgICAgKgorICAgICAqIFRyaWUgZmNkVHJpZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2l6ZSBpbiBieXRlcz1pbmRleGVzW0lOREVYX0ZDRF9UUklFX1NJWkVdCisgICAgICoKKyAgICAgKiBUcmllIGF1eFRyaWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHNpemUgaW4gYnl0ZXM9aW5kZXhlc1tJTkRFWF9BVVhfVFJJRV9TSVpFXQorICAgICAqCisgICAgICogY2hhciBjYW5vblN0YXJ0U2V0c1tjYW5vblN0YXJ0U2V0c1RvcF0gICAtLSBjYW5vblN0YXJ0U2V0c1RvcD1pbmRleGVzW0lOREVYX0NBTk9OX1NFVF9DT1VOVF0KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVkIFVTZXRzLCBzZWUgdXNldC5jCisgICAgICoKKyAgICAgKgorICAgICAqIFRoZSBpbmRleGVzIGFycmF5IGNvbnRhaW5zIGxlbmd0aHMgYW5kIHNpemVzIG9mIHRoZSBmb2xsb3dpbmcgYXJyYXlzIGFuZCBzdHJ1Y3R1cmVzCisgICAgICogYXMgd2VsbCBhcyB0aGUgZm9sbG93aW5nIHZhbHVlczoKKyAgICAgKiAgaW5kZXhlc1tJTkRFWF9DT01CSU5FX0ZXRF9DT1VOVF09Y29tYmluZUZ3ZFRvcAorICAgICAqICAgICAgLS0gb25lIG1vcmUgdGhhbiB0aGUgaGlnaGVzdCBjb21iaW5pbmcgaW5kZXggY29tcHV0ZWQgZm9yIGZvcndhcmQtb25seS1jb21iaW5pbmcgY2hhcmFjdGVycworICAgICAqICBpbmRleGVzW0lOREVYX0NPTUJJTkVfQk9USF9DT1VOVF09Y29tYmluZUJvdGhUb3AtY29tYmluZUZ3ZFRvcAorICAgICAqICAgICAgLS0gbnVtYmVyIG9mIGNvbWJpbmluZyBpbmRleGVzIGNvbXB1dGVkIGZvciBib3RoLXdheXMtY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAgKiAgaW5kZXhlc1tJTkRFWF9DT01CSU5FX0JBQ0tfQ09VTlRdPWNvbWJpbmVCYWNrVG9wLWNvbWJpbmVCb3RoVG9wCisgICAgICogICAgICAtLSBudW1iZXIgb2YgY29tYmluaW5nIGluZGV4ZXMgY29tcHV0ZWQgZm9yIGJhY2t3YXJkLW9ubHktY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAgKgorICAgICAqICBpbmRleGVzW0lOREVYX01JTl9ORipfTk9fTUFZQkVdICh3aGVyZSAqPXsgQywgRCwgS0MsIEtEIH0pCisgICAgICogICAgICAtLSBmaXJzdCBjb2RlIHBvaW50IHdpdGggYSBxdWljayBjaGVjayBORiogdmFsdWUgb2YgTk8vTUFZQkUKKyAgICAgKgorICAgICAqCisgICAgICogLSBUcmllcworICAgICAqCisgICAgICogVGhlIG1haW4gc3RydWN0dXJlcyBhcmUgdHdvIFRyaWUgdGFibGVzICgiY29tcGFjdCBhcnJheXMiKSwKKyAgICAgKiBlYWNoIHdpdGggb25lIGluZGV4IGFycmF5IGFuZCBvbmUgZGF0YSBhcnJheS4KKyAgICAgKiBTZWUgVHJpZS5oIGFuZCBUcmllLmMuCisgICAgICoKKyAgICAgKgorICAgICAqIC0gVHJpZXMgaW4gdW5vcm0uaWN1CisgICAgICoKKyAgICAgKiBUaGUgZmlyc3QgdHJpZSAobm9ybVRyaWUgYWJvdmUpCisgICAgICogcHJvdmlkZXMgZGF0YSBmb3IgdGhlIE5GKiBxdWljayBjaGVja3MgYW5kIG5vcm1hbGl6YXRpb24uCisgICAgICogVGhlIHNlY29uZCB0cmllIChmY2RUcmllIGFib3ZlKSBwcm92aWRlcyBkYXRhIGp1c3QgZm9yIEZDRCBjaGVja3MuCisgICAgICoKKyAgICAgKgorICAgICAqIC0gbm9ybTMyIGRhdGEgd29yZHMgZnJvbSB0aGUgZmlyc3QgdHJpZQorICAgICAqCisgICAgICogVGhlIG5vcm0zMlRhYmxlIGNvbnRhaW5zIG9uZSAzMi1iaXQgd29yZCAibm9ybTMyIiBwZXIgY29kZSBwb2ludC4KKyAgICAgKiBJdCBjb250YWlucyB0aGUgZm9sbG93aW5nIGJpdCBmaWVsZHM6CisgICAgICogMzEuLjE2ICAgZXh0cmEgZGF0YSBpbmRleCwgRVhUUkFfU0hJRlQgaXMgdXNlZCB0byBzaGlmdCB0aGlzIGZpZWxkIGRvd24KKyAgICAgKiAgICAgICAgICBpZiB0aGlzIGluZGV4IGlzIDxFWFRSQV9JTkRFWF9UT1AgdGhlbiBpdCBpcyBhbiBpbmRleCBpbnRvCisgICAgICogICAgICAgICAgICAgIGV4dHJhRGF0YVtdIHdoZXJlIHZhcmlhYmxlLWxlbmd0aCBub3JtYWxpemF0aW9uIGRhdGEgZm9yIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgY29kZSBwb2ludCBpcyBmb3VuZAorICAgICAqICAgICAgICAgIGlmIHRoaXMgaW5kZXggaXMgPEVYVFJBX0lOREVYX1RPUCtFWFRSQV9TVVJST0dBVEVfVE9QCisgICAgICogICAgICAgICAgICAgIHRoZW4gdGhpcyBpcyBhIG5vcm0zMiBmb3IgYSBsZWFkaW5nIHN1cnJvZ2F0ZSwgYW5kIHRoZSBpbmRleAorICAgICAqICAgICAgICAgICAgICB2YWx1ZSBpcyB1c2VkIHRvZ2V0aGVyIHdpdGggdGhlIGZvbGxvd2luZyB0cmFpbGluZyBzdXJyb2dhdGUKKyAgICAgKiAgICAgICAgICAgICAgY29kZSB1bml0IGluIHRoZSBzZWNvbmQgdHJpZSBhY2Nlc3MKKyAgICAgKiAgICAgICAgICBpZiB0aGlzIGluZGV4IGlzID49RVhUUkFfSU5ERVhfVE9QK0VYVFJBX1NVUlJPR0FURV9UT1AKKyAgICAgKiAgICAgICAgICAgICAgdGhlbiB0aGlzIGlzIGEgbm9ybTMyIGZvciBhICJzcGVjaWFsIiBjaGFyYWN0ZXIsCisgICAgICogICAgICAgICAgICAgIGkuZS4sIHRoZSBjaGFyYWN0ZXIgaXMgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vCisgICAgICogICAgICAgICAgICAgIHNlZSBFWFRSQV9IQU5HVUwgZXRjLgorICAgICAqICAgICAgICAgIGdlbmVyYWxseSwgaW5zdGVhZCBvZiBleHRyYWN0aW5nIHRoaXMgaW5kZXggZnJvbSB0aGUgbm9ybTMyIGFuZAorICAgICAqICAgICAgICAgICAgICBjb21wYXJpbmcgaXQgd2l0aCB0aGUgYWJvdmUgY29uc3RhbnRzLAorICAgICAqICAgICAgICAgICAgICB0aGUgbm9ybWFsaXphdGlvbiBjb2RlIGNvbXBhcmVzIHRoZSBlbnRpcmUgbm9ybTMyIHZhbHVlCisgICAgICogICAgICAgICAgICAgIHdpdGggTUlOX1NQRUNJQUwsIFNVUlJPR0FURVNfVE9QLCBNSU5fSEFOR1VMIGV0Yy4KKyAgICAgKgorICAgICAqIDE1Li44ICAgIGNvbWJpbmluZyBjbGFzcyAoY2MpIGFjY29yZGluZyB0byBVbmljb2RlRGF0YS50eHQKKyAgICAgKgorICAgICAqICA3Li42ICAgIENPTUJJTkVTX0FOWSBmbGFncywgdXNlZCBpbiBjb21wb3NpdGlvbiB0byBzZWUgaWYgYSBjaGFyYWN0ZXIKKyAgICAgKiAgICAgICAgICAgICAgY29tYmluZXMgd2l0aCBhbnkgZm9sbG93aW5nIG9yIHByZWNlZGluZyBjaGFyYWN0ZXIocykKKyAgICAgKiAgICAgICAgICAgICAgYXQgYWxsCisgICAgICogICAgIDcgICAgQ09NQklORVNfQkFDSworICAgICAqICAgICA2ICAgIENPTUJJTkVTX0ZXRAorICAgICAqCisgICAgICogIDUuLjAgICAgcXVpY2sgY2hlY2sgZmxhZ3MsIHNldCBmb3IgIm5vIiBvciAibWF5YmUiLCB3aXRoIHNlcGFyYXRlIGZsYWdzIGZvcgorICAgICAqICAgICAgICAgICAgICBlYWNoIG5vcm1hbGl6YXRpb24gZm9ybQorICAgICAqICAgICAgICAgICAgICB0aGUgaGlnaGVyIGJpdHMgYXJlICJtYXliZSIgZmxhZ3M7IGZvciBORipEIHRoZXJlIGFyZSBubyBzdWNoIGZsYWdzCisgICAgICogICAgICAgICAgICAgIHRoZSBsb3dlciBiaXRzIGFyZSAibm8iIGZsYWdzIGZvciBhbGwgZm9ybXMsIGluIHRoZSBzYW1lIG9yZGVyCisgICAgICogICAgICAgICAgICAgIGFzIHRoZSAibWF5YmUiIGZsYWdzLAorICAgICAqICAgICAgICAgICAgICB3aGljaCBpcyAoTVNCIHRvIExTQik6IE5GS0QgTkZEIE5GS0MgTkZDCisgICAgICogIDUuLjQgICAgUUNfQU5ZX01BWUJFCisgICAgICogIDMuLjAgICAgUUNfQU5ZX05PCisgICAgICogICAgICAgICAgICAgIHNlZSBmdXJ0aGVyIHJlbGF0ZWQgY29uc3RhbnRzCisgICAgICoKKyAgICAgKgorICAgICAqIC0gRXh0cmEgZGF0YSBwZXIgY29kZSBwb2ludAorICAgICAqCisgICAgICogIkV4dHJhIGRhdGEiIGlzIHJlZmVyZW5jZWQgYnkgdGhlIGluZGV4IGluIG5vcm0zMi4KKyAgICAgKiBJdCBpcyB2YXJpYWJsZS1sZW5ndGggZGF0YS4gSXQgaXMgb25seSBwcmVzZW50LCBhbmQgb25seSB0aG9zZSBwYXJ0cworICAgICAqIG9mIGl0IGFyZSwgYXMgbmVlZGVkIGZvciBhIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBUaGUgbm9ybTMyIGV4dHJhIGRhdGEgaW5kZXggaXMgYWRkZWQgdG8gdGhlIGJlZ2lubmluZyBvZiBleHRyYURhdGFbXQorICAgICAqIHRvIGdldCB0byBhIHZlY3RvciBvZiAxNi1iaXQgd29yZHMgd2l0aCBkYXRhIGF0IHRoZSBmb2xsb3dpbmcgb2Zmc2V0czoKKyAgICAgKgorICAgICAqIFstMV0gICAgIENvbWJpbmluZyBpbmRleCBmb3IgY29tcG9zaXRpb24uCisgICAgICogICAgICAgICAgICAgIFN0b3JlZCBvbmx5IGlmIG5vcm0zMiZDT01CSU5FU19BTlkgLgorICAgICAqIFswXSAgICAgIExlbmd0aHMgb2YgdGhlIGNhbm9uaWNhbCBhbmQgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIHN0cmluZ3MuCisgICAgICogICAgICAgICAgICAgIFN0b3JlZCBvbmx5IGlmIHRoZXJlIGFyZSBkZWNvbXBvc2l0aW9ucywgaS5lLiwKKyAgICAgKiAgICAgICAgICAgICAgaWYgbm9ybTMyJihRQ19ORkR8UUNfTkZLRCkKKyAgICAgKiAgICAgICAgICBIaWdoIGJ5dGU6IGxlbmd0aCBvZiBORktELCBvciAwIGlmIG5vbmUKKyAgICAgKiAgICAgICAgICBMb3cgYnl0ZTogbGVuZ3RoIG9mIE5GRCwgb3IgMCBpZiBub25lCisgICAgICogICAgICAgICAgRWFjaCBsZW5ndGggYnl0ZSBhbHNvIGhhcyBhbm90aGVyIGZsYWc6CisgICAgICogICAgICAgICAgICAgIEJpdCA3IG9mIGEgbGVuZ3RoIGJ5dGUgaXMgc2V0IGlmIHRoZXJlIGFyZSBub24temVybworICAgICAqICAgICAgICAgICAgICBjb21iaW5pbmcgY2xhc3NlcyAoY2MncykgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZlCisgICAgICogICAgICAgICAgICAgIGRlY29tcG9zaXRpb24uIElmIHRoaXMgZmxhZyBpcyBzZXQsIHRoZW4gdGhlIGRlY29tcG9zaXRpb24KKyAgICAgKiAgICAgICAgICAgICAgaXMgcHJlY2VkZWQgYnkgYSAxNi1iaXQgd29yZCB0aGF0IGNvbnRhaW5zIHRoZQorICAgICAqICAgICAgICAgICAgICBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYydzLgorICAgICAqICAgICAgICAgICAgICBCaXRzIDYuLjAgb2YgYSBsZW5ndGggYnl0ZSBhcmUgdGhlIGxlbmd0aCBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbiBzdHJpbmcsIG5vdCBjb3VudGluZyB0aGUgY2Mgd29yZC4KKyAgICAgKiBbMS4ubl0gICBORkQKKyAgICAgKiBbbisxLi5dICBORktECisgICAgICoKKyAgICAgKiBFYWNoIG9mIHRoZSB0d28gZGVjb21wb3NpdGlvbnMgY29uc2lzdHMgb2YgdXAgdG8gdHdvIHBhcnRzOgorICAgICAqIC0gVGhlIDE2LWJpdCB3b3JkcyB3aXRoIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYydzLgorICAgICAqICAgVGhpcyBpcyBvbmx5IHN0b3JlZCBpZiBiaXQgNyBvZiB0aGUgY29ycmVzcG9uZGluZyBsZW5ndGggYnl0ZQorICAgICAqICAgaXMgc2V0LiBJbiB0aGlzIGNhc2UsIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2MncyBpcyBub3QgemVyby4KKyAgICAgKiAgIEhpZ2ggYnl0ZTogbGVhZGluZyBjYz09Y2Mgb2YgdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nCisgICAgICogICBMb3cgYnl0ZTogdHJhaWxpbmcgY2M9PWNjIG9mIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nCisgICAgICogLSBUaGUgZGVjb21wb3NpdGlvbiBzdHJpbmcgaW4gVVRGLTE2LCB3aXRoIGxlbmd0aCBjb2RlIHVuaXRzLgorICAgICAqCisgICAgICoKKyAgICAgKiAtIENvbWJpbmluZyBpbmRleGVzIGFuZCBjb21iaW5pbmdUYWJsZVtdCisgICAgICoKKyAgICAgKiBDb21iaW5pbmcgaW5kZXhlcyBhcmUgc3RvcmVkIGF0IHRoZSBbLTFdIG9mZnNldCBvZiB0aGUgZXh0cmEgZGF0YQorICAgICAqIGlmIHRoZSBjaGFyYWN0ZXIgY29tYmluZXMgZm9yd2FyZCBvciBiYWNrd2FyZCB3aXRoIGFueSBvdGhlciBjaGFyYWN0ZXJzLgorICAgICAqIFRoZXkgYXJlIHVzZWQgZm9yIChyZSljb21wb3NpdGlvbiBpbiBORipDLgorICAgICAqIFZhbHVlcyBvZiBjb21iaW5pbmcgaW5kZXhlcyBhcmUgYXJyYW5nZWQgYWNjb3JkaW5nIHRvIHdoZXRoZXIgYSBjaGFyYWN0ZXIKKyAgICAgKiBjb21iaW5lcyBmb3J3YXJkLCBiYWNrd2FyZCwgb3IgYm90aCB3YXlzOgorICAgICAqICAgIGZvcndhcmQtb25seSA8IGJvdGggd2F5cyA8IGJhY2t3YXJkLW9ubHkKKyAgICAgKgorICAgICAqIFRoZSBpbmRleCB2YWx1ZXMgZm9yIGZvcndhcmQtb25seSBhbmQgYm90aC13YXlzIGNvbWJpbmluZyBjaGFyYWN0ZXJzCisgICAgICogYXJlIGluZGV4ZXMgaW50byB0aGUgY29tYmluaW5nVGFibGVbXS4KKyAgICAgKiBUaGUgaW5kZXggdmFsdWVzIGZvciBiYWNrd2FyZC1vbmx5IGNvbWJpbmluZyBjaGFyYWN0ZXJzIGFyZSBzaW1wbHkKKyAgICAgKiBpbmNyZW1lbnRlZCBmcm9tIHRoZSBwcmVjZWRpbmcgaW5kZXggdmFsdWVzIHRvIGJlIHVuaXF1ZS4KKyAgICAgKgorICAgICAqIEluIHRoZSBjb21iaW5pbmdUYWJsZVtdLCBhIHZhcmlhYmxlLWxlbmd0aCBsaXN0CisgICAgICogb2YgdmFyaWFibGUtbGVuZ3RoIChiYWNrLWluZGV4LCBjb2RlIHBvaW50KSBwYWlyIGVudHJpZXMgaXMgc3RvcmVkCisgICAgICogZm9yIGVhY2ggZm9yd2FyZC1jb21iaW5pbmcgY2hhcmFjdGVyLgorICAgICAqCisgICAgICogVGhlc2UgYmFjay1pbmRleGVzIGFyZSB0aGUgY29tYmluaW5nIGluZGV4ZXMgb2YgYm90aC13YXlzIG9yIGJhY2t3YXJkLW9ubHkKKyAgICAgKiBjb21iaW5pbmcgY2hhcmFjdGVycyB0aGF0IHRoZSBmb3J3YXJkLWNvbWJpbmluZyBjaGFyYWN0ZXIgY29tYmluZXMgd2l0aC4KKyAgICAgKgorICAgICAqIEVhY2ggbGlzdCBpcyBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIG9mIGJhY2staW5kZXhlcy4KKyAgICAgKiBFYWNoIGxpc3QgaXMgdGVybWluYXRlZCB3aXRoIHRoZSBsYXN0IGJhY2staW5kZXggaGF2aW5nIGJpdCAxNSBzZXQuCisgICAgICoKKyAgICAgKiBFYWNoIHBhaXIgKGJhY2staW5kZXgsIGNvZGUgcG9pbnQpIHRha2VzIHVwIGVpdGhlciAyIG9yIDMKKyAgICAgKiAxNi1iaXQgd29yZHMuCisgICAgICogVGhlIGZpcnN0IHdvcmQgb2YgYSBsaXN0IGVudHJ5IGlzIHRoZSBiYWNrLWluZGV4LCB3aXRoIGl0cyBiaXQgMTUgc2V0IGlmCisgICAgICogdGhpcyBpcyB0aGUgbGFzdCBwYWlyIGluIHRoZSBsaXN0LgorICAgICAqCisgICAgICogVGhlIHNlY29uZCB3b3JkIGNvbnRhaW5zIGZsYWdzIGluIGJpdHMgMTUuLjEzIHRoYXQgZGV0ZXJtaW5lCisgICAgICogaWYgdGhlcmUgaXMgYSB0aGlyZCB3b3JkIGFuZCBob3cgdGhlIGNvbWJpbmVkIGNoYXJhY3RlciBpcyBlbmNvZGVkOgorICAgICAqIDE1ICAgc2V0IGlmIHRoZXJlIGlzIGEgdGhpcmQgd29yZCBpbiB0aGlzIGxpc3QgZW50cnkKKyAgICAgKiAxNCAgIHNldCBpZiB0aGUgcmVzdWx0IGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgKiAxMyAgIHNldCBpZiB0aGUgcmVzdWx0IGl0c2VsZiBjb21iaW5lcyBmb3J3YXJkCisgICAgICoKKyAgICAgKiBBY2NvcmRpbmcgdG8gdGhlc2UgYml0cyAxNS4uMTQgb2YgdGhlIHNlY29uZCB3b3JkLAorICAgICAqIHRoZSByZXN1bHQgY2hhcmFjdGVyIGlzIGVuY29kZWQgYXMgZm9sbG93czoKKyAgICAgKiAwMCBvciAwMSBUaGUgcmVzdWx0IGlzIDw9MHgxZmZmIGFuZCBzdG9yZWQgaW4gYml0cyAxMi4uMCBvZgorICAgICAqICAgICAgICAgIHRoZSBzZWNvbmQgd29yZC4KKyAgICAgKiAxMCAgICAgICBUaGUgcmVzdWx0IGlzIDB4MjAwMC4uMHhmZmZmIGFuZCBzdG9yZWQgaW4gdGhlIHRoaXJkIHdvcmQuCisgICAgICogICAgICAgICAgQml0cyAxMi4uMCBvZiB0aGUgc2Vjb25kIHdvcmQgYXJlIG5vdCB1c2VkLgorICAgICAqIDExICAgICAgIFRoZSByZXN1bHQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3Rlci4KKyAgICAgKiAgICAgICAgICBCaXRzIDkuLjAgb2YgdGhlIGxlYWRpbmcgc3Vycm9nYXRlIGFyZSBpbiBiaXRzIDkuLjAgb2YKKyAgICAgKiAgICAgICAgICB0aGUgc2Vjb25kIHdvcmQuCisgICAgICogICAgICAgICAgQWRkIDB4ZDgwMCB0byB0aGVzZSBiaXRzIHRvIGdldCB0aGUgY29tcGxldGUgc3Vycm9nYXRlLgorICAgICAqICAgICAgICAgIEJpdHMgMTIuLjEwIG9mIHRoZSBzZWNvbmQgd29yZCBhcmUgbm90IHVzZWQuCisgICAgICogICAgICAgICAgVGhlIHRyYWlsaW5nIHN1cnJvZ2F0ZSBpcyBzdG9yZWQgaW4gdGhlIHRoaXJkIHdvcmQuCisgICAgICoKKyAgICAgKgorICAgICAqIC0gRkNEIHRyaWUKKyAgICAgKgorICAgICAqIFRoZSBGQ0QgdHJpZSBpcyB2ZXJ5IHNpbXBsZS4KKyAgICAgKiBJdCBpcyBhIGZvbGRlZCB0cmllIHdpdGggMTYtYml0IGRhdGEgd29yZHMuCisgICAgICogSW4gZWFjaCB3b3JkLCB0aGUgaGlnaCBieXRlIGNvbnRhaW5zIHRoZSBsZWFkaW5nIGNjIG9mIHRoZSBjaGFyYWN0ZXIsCisgICAgICogYW5kIHRoZSBsb3cgYnl0ZSBjb250YWlucyB0aGUgdHJhaWxpbmcgY2Mgb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKiBUaGVzZSBjYydzIGFyZSB0aGUgY2MncyBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgY29kZSBwb2ludHMgaW4gdGhlCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIFNpbmNlIGFsbCAxNiBiaXRzIGFyZSB1c2VkIGZvciBjYydzLCBsZWFkIHN1cnJvZ2F0ZXMgbXVzdCBiZSB0ZXN0ZWQKKyAgICAgKiBieSBjaGVja2luZyB0aGUgY29kZSB1bml0IGluc3RlYWQgb2YgdGhlIHRyaWUgZGF0YS4KKyAgICAgKiBUaGlzIGlzIGRvbmUgb25seSBpZiB0aGUgMTYtYml0IGRhdGEgd29yZCBpcyBub3QgemVyby4KKyAgICAgKiBJZiB0aGUgY29kZSB1bml0IGlzIGEgbGVhZGluZyBzdXJyb2dhdGUgYW5kIHRoZSBkYXRhIHdvcmQgaXMgbm90IHplcm8sCisgICAgICogdGhlbiBpbnN0ZWFkIG9mIGNjJ3MgaXQgY29udGFpbnMgdGhlIG9mZnNldCBmb3IgdGhlIHNlY29uZCB0cmllIGxvb2t1cC4KKyAgICAgKgorICAgICAqCisgICAgICogLSBBdXhpbGlhcnkgdHJpZSBhbmQgZGF0YQorICAgICAqCisgICAgICoKKyAgICAgKiBUaGUgYXV4aWxpYXJ5IDE2LWJpdCB0cmllIGNvbnRhaW5zIGRhdGEgZm9yIGFkZGl0aW9uYWwgcHJvcGVydGllcy4KKyAgICAgKiBCaXRzCisgICAgICogMTUuLjEzICAgcmVzZXJ2ZWQKKyAgICAgKiAgICAgMTIgICBub3QgTkZDX1NraXBwYWJsZSAoZikgKGZvcm1hdFZlcnNpb24+PTIuMikKKyAgICAgKiAgICAgMTEgICBmbGFnOiBub3QgYSBzYWZlIHN0YXJ0ZXIgZm9yIGNhbm9uaWNhbCBjbG9zdXJlCisgICAgICogICAgIDEwICAgY29tcG9zaXRpb24gZXhjbHVzaW9uCisgICAgICogIDkuLiAwICAgaW5kZXggaW50byBleHRyYURhdGFbXSB0byBGQ19ORktDX0Nsb3N1cmUgc3RyaW5nCisgICAgICogICAgICAgICAgKG5vdCBmb3IgbGVhZCBzdXJyb2dhdGUpLAorICAgICAqICAgICAgICAgIG9yIGxlYWQgc3Vycm9nYXRlIG9mZnNldCAoZm9yIGxlYWQgc3Vycm9nYXRlLCBpZiA5Li4wIG5vdCB6ZXJvKQorICAgICAqIAorICAgICAqIENvbmRpdGlvbnMgZm9yICJORiogU2tpcHBhYmxlIiBmcm9tIE1hcmsgRGF2aXMnIGNvbS5pYm0udGV4dC5VQ0QuTkZTa2lwcGFibGU6CisgICAgICogKHVzZWQgaW4gTm9ybWFsaXplclRyYW5zbGl0ZXJhdG9yKQorICAgICAqCisgICAgICogQSBza2lwcGFibGUgY2hhcmFjdGVyIGlzCisgICAgICogYSkgdW5hc3NpZ25lZCwgb3IgQUxMIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICogYikgb2YgY29tYmluaW5nIGNsYXNzIDAuCisgICAgICogYykgbm90IGRlY29tcG9zZWQgYnkgdGhpcyBub3JtYWxpemF0aW9uIGZvcm0uCisgICAgICogQU5EIGlmIE5GQyBvciBORktDLAorICAgICAqIGQpIGNhbiBuZXZlciBjb21wb3NlIHdpdGggYSBwcmV2aW91cyBjaGFyYWN0ZXIuCisgICAgICogZSkgY2FuIG5ldmVyIGNvbXBvc2Ugd2l0aCBhIGZvbGxvd2luZyBjaGFyYWN0ZXIuCisgICAgICogZikgY2FuIG5ldmVyIGNoYW5nZSBpZiBhbm90aGVyIGNoYXJhY3RlciBpcyBhZGRlZC4KKyAgICAgKiAgICBFeGFtcGxlOiBhLWJyZXZlIG1pZ2h0IHNhdGlzZnkgYWxsIGJ1dCBmLCBidXQgaWYgeW91CisgICAgICogICAgYWRkIGFuIG9nb25layBpdCBjaGFuZ2VzIHRvIGEtb2dvbmVrICsgYnJldmUKKyAgICAgKgorICAgICAqIGEpLi5lKSBtdXN0IGJlIHRlc3RlZCBmcm9tIG5vcm0zMi4KKyAgICAgKiBTaW5jZSBmKSBpcyBtb3JlIGNvbXBsaWNhdGVkLCB0aGUgKG5vdC0pTkZDX1NraXBwYWJsZSBmbGFnIChmKSBpcyBidWlsdAorICAgICAqIGludG8gdGhlIGF1eGlsaWFyeSB0cmllLgorICAgICAqIFRoZSBzYW1lIGJpdCBpcyB1c2VkIGZvciBORkMgYW5kIE5GS0M7IChjKSBkaWZmZXJzIGZvciB0aGVtLgorICAgICAqIEFzIHVzdWFsLCB3ZSBidWlsZCB0aGUgIm5vdCBza2lwcGFibGUiIGZsYWdzIHNvIHRoYXQgdW5hc3NpZ25lZAorICAgICAqIGNvZGUgcG9pbnRzIGdldCBhIDAgYml0LgorICAgICAqIFRoaXMgYml0IGlzIG9ubHkgdmFsaWQgYWZ0ZXIgKGEpLi4oZSkgdGVzdCBGQUxTRTsgdGVzdCBORkRfTk8gYmVmb3JlIChmKSBhcyB3ZWxsLgorICAgICAqIFRlc3QgSGFuZ3VsIExWIHN5bGxhYmxlcyBlbnRpcmVseSBpbiBjb2RlLgorICAgICAqICAgCisgICAgICogCisgICAgICogLSBGQ19ORktDX0Nsb3N1cmUgc3RyaW5ncyBpbiBleHRyYURhdGFbXQorICAgICAqCisgICAgICogU3RyaW5ncyBhcmUgZWl0aGVyIHN0b3JlZCBhcyBhIHNpbmdsZSBjb2RlIHVuaXQgb3IgYXMgdGhlIGxlbmd0aAorICAgICAqIGZvbGxvd2VkIGJ5IHRoYXQgbWFueSB1bml0cy4KKyAgICAgKiAKKyAgICAgKiAtIHN0cnVjdHVyZSBpbnNpZGUgY2Fub25TdGFydFNldHNbXQorICAgICAqCisgICAgICogVGhpcyBhcnJheSBtYXBzIGZyb20gY29kZSBwb2ludHMgYyB0byBzZXRzIG9mIGNvZGUgcG9pbnRzIChVU2VyaWFsaXplZFNldCkuCisgICAgICogVGhlIHJlc3VsdCBzZXRzIGFyZSB0aGUgY29kZSBwb2ludHMgd2hvc2UgY2Fub25pY2FsIGRlY29tcG9zaXRpb25zIHN0YXJ0CisgICAgICogd2l0aCBjLgorICAgICAqCisgICAgICogY2Fub25TdGFydFNldHNbXSBjb250YWlucyB0aGUgZm9sbG93aW5nIHN1Yi1hcnJheXM6CisgICAgICoKKyAgICAgKiBpbmRleGVzW19OT1JNX1NFVF9JTkRFWF9UT1BdCisgICAgICogICAtIGNvbnRhaW5zIGxlbmd0aHMgb2Ygc3ViLWFycmF5cyBldGMuCisgICAgICoKKyAgICAgKiBzdGFydFNldHNbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fU0VUU19MRU5HVEhdLV9OT1JNX1NFVF9JTkRFWF9UT1BdCisgICAgICogICAtIGNvbnRhaW5zIHNlcmlhbGl6ZWQgc2V0cyAoVVNlcmlhbGl6ZWRTZXQpIG9mIGNhbm9uaWNhbCBzdGFydGVycyBmb3IKKyAgICAgKiAgICAgZW51bWVyYXRpbmcgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBzdHJpbmdzCisgICAgICogICAgIGluZGV4ZXNbX05PUk1fU0VUX0lOREVYX0NBTk9OX1NFVFNfTEVOR1RIXSBpbmNsdWRlcyBfTk9STV9TRVRfSU5ERVhfVE9QCisgICAgICogICAgIGZvciBkZXRhaWxzIGFib3V0IHRoZSBzdHJ1Y3R1cmUgc2VlIHVzZXQuYworICAgICAqCisgICAgICogYm1wVGFibGVbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fQk1QX1RBQkxFX0xFTkdUSF1dCisgICAgICogICAtIGEgc29ydGVkIHNlYXJjaCB0YWJsZSBmb3IgQk1QIGNvZGUgcG9pbnRzIHdob3NlIHJlc3VsdHMgYXJlCisgICAgICogICAgIGVpdGhlciBpbmRleGVzIHRvIFVTZXJpYWxpemVkU2V0cyBvciBzaW5nbGUgY29kZSBwb2ludHMgZm9yCisgICAgICogICAgIHNpbmdsZS1jb2RlIHBvaW50IHNldHM7CisgICAgICogICAgIGVhY2ggZW50cnkgaXMgYSBwYWlyIG9mIHsgY29kZSBwb2ludCwgcmVzdWx0IH0gd2l0aCByZXN1bHQ9KGJpbmFyeSkgeXkgeHh4eHh4IHh4eHh4eHh4CisgICAgICogICAgIGlmIHl5PT0wMSB0aGVuIHRoZXJlIGlzIGEgVVNlcmlhbGl6ZWRTZXQgYXQgY2Fub25TdGFydFNldHMreAorICAgICAqICAgICBlbHNlIGJ1aWxkIGEgVVNlcmlhbGl6ZWRTZXQgd2l0aCByZXN1bHQgYXMgdGhlIHNpbmdsZSBjb2RlIHBvaW50CisgICAgICoKKyAgICAgKiBzdXBwVGFibGVbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fU1VQUF9UQUJMRV9MRU5HVEhdXQorICAgICAqICAgLSBhIHNvcnRlZCBzZWFyY2ggdGFibGUgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgd2hvc2UgcmVzdWx0cyBhcmUKKyAgICAgKiAgICAgZWl0aGVyIGluZGV4ZXMgdG8gVVNlcmlhbGl6ZWRTZXRzIG9yIHNpbmdsZSBjb2RlIHBvaW50cyBmb3IKKyAgICAgKiAgICAgc2luZ2xlLWNvZGUgcG9pbnQgc2V0czsKKyAgICAgKiAgICAgZWFjaCBlbnRyeSBpcyBhIHRyaXBsZXQgb2YgeyBoaWdoMTYoY3ApLCBsb3cxNihjcCksIHJlc3VsdCB9CisgICAgICogICAgIGVhY2ggY29kZSBwb2ludCdzIGhpZ2gtd29yZCBtYXkgY29udGFpbiBleHRyYSBkYXRhIGluIGJpdHMgMTUuLjU6CisgICAgICogICAgIGlmIHRoZSBoaWdoIHdvcmQgaGFzIGJpdCAxNSBzZXQsIHRoZW4gYnVpbGQgYSBzZXQgd2l0aCBhIHNpbmdsZSBjb2RlIHBvaW50CisgICAgICogICAgIHdoaWNoIGlzICgoKGhpZ2gxNihjcCkmMHgxZjAwKTw8OCl8cmVzdWx0OworICAgICAqICAgICBlbHNlIHRoZXJlIGlzIGEgVVNlcmlhbGl6ZWRTZXQgYXQgY2Fub25TdGFydFNldHMrcmVzdWx0CisgICAgICovCitmaW5hbCBjbGFzcyBOb3JtYWxpemVyRGF0YVJlYWRlciBpbXBsZW1lbnRzIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgeworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW4gZGVidWcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJOb3JtYWxpemVyRGF0YVJlYWRlciIpOworICAgIAorICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcC5kYXQgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIE5vcm1hbGl6ZXJEYXRhUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGluIGlucHV0U3RyZWFtICIgKyBpbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgICAgIAorICAgICAgICB1bmljb2RlVmVyc2lvbiA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRCwgdGhpcyk7CisgICAgICAgIAorICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGlucHV0U3RyZWFtICIgK2lucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIGRhdGFJbnB1dFN0cmVhbSA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgbGVmdCBpbiBkYXRhSW5wdXRTdHJlYW0gIiArZGF0YUlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByb3RlY3RlZCBpbnRbXSByZWFkSW5kZXhlcyhpbnQgbGVuZ3RoKXRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaW50W10gaW5kZXhlcyA9IG5ldyBpbnRbbGVuZ3RoXTsKKyAgICAgICAgLy9SZWFkIHRoZSBpbmRleGVzCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDxsZW5ndGggOyBpKyspIHsKKyAgICAgICAgICAgICBpbmRleGVzW2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXhlczsKKyAgICB9IAorICAgIC8qKgorICAgICogPHA+UmVhZHMgdW5vcm0uaWN1LCBwYXJzZSBpdCBpbnRvIGJsb2NrcyBvZiBkYXRhIHRvIGJlIHN0b3JlZCBpbgorICAgICogTm9ybWFsaXplckltcGwuPC9QCisgICAgKiBAcGFyYW0gbm9ybUJ5dGVzCisgICAgKiBAcGFyYW0gZmNkQnl0ZXMKKyAgICAqIEBwYXJhbSBhdXhCeXRlcworICAgICogQHBhcmFtIGV4dHJhRGF0YQorICAgICogQHBhcmFtIGNvbWJpbmluZ1RhYmxlCisgICAgKiBAcGFyYW0gY2Fub25TdGFydFNldHMKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkKGJ5dGVbXSBub3JtQnl0ZXMsIGJ5dGVbXSBmY2RCeXRlcywgYnl0ZVtdIGF1eEJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGV4dHJhRGF0YSwgY2hhcltdIGNvbWJpbmluZ1RhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIGNhbm9uU3RhcnRTZXRzKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKworICAgICAgICAgLy9SZWFkIHRoZSBieXRlcyB0aGF0IG1ha2UgdXAgdGhlIG5vcm1UcmllICAgICAKKyAgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKG5vcm1CeXRlcyk7CisgICAgICAgIAorICAgICAgICAgLy9ub3JtVHJpZVN0cmVhbT0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKG5vcm1CeXRlcyk7CisKKyAgICAgICAgIC8vUmVhZCB0aGUgZXh0cmEgZGF0YQorICAgICAgICAgZm9yKGludCBpPTA7aTxleHRyYURhdGEubGVuZ3RoO2krKyl7CisgICAgICAgICAgICAgZXh0cmFEYXRhW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvL1JlYWQgdGhlIGNvbWJpbmluZyBjbGFzcyB0YWJsZQorICAgICAgICAgZm9yKGludCBpPTA7IGk8Y29tYmluaW5nVGFibGUubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgIGNvbWJpbmluZ1RhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvL1JlYWQgdGhlIGZjZFRyaWUKKyAgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKGZjZEJ5dGVzKTsKKyAgICAgICAgIAorICAgICAgICAgCisgICAgICAgICAvL1JlYWQgdGhlIEF1eFRyaWUgICAgICAgICAKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtLnJlYWQoYXV4Qnl0ZXMpOworICAgICAgICAKKyAgICAgICAgLy9SZWFkIHRoZSBjYW5vbmljYWwgc3RhcnQgc2V0cworICAgICAgICBpbnRbXSBjYW5vblN0YXJ0U2V0c0luZGV4ZXMgPSBuZXcgaW50W05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9UT1BdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8Y2Fub25TdGFydFNldHNJbmRleGVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICBjYW5vblN0YXJ0U2V0c0luZGV4ZXNbaV09ZGF0YUlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjaGFyW10gc3RhcnRTZXRzID0gbmV3IGNoYXJbY2Fub25TdGFydFNldHNJbmRleGVzW05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9DQU5PTl9TRVRTX0xFTkdUSF0tTm9ybWFsaXplckltcGwuU0VUX0lOREVYX1RPUF07CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGk9MDsgaTxzdGFydFNldHMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgIHN0YXJ0U2V0c1tpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGNoYXJbXSBibXBUYWJsZSAgPSBuZXcgY2hhcltjYW5vblN0YXJ0U2V0c0luZGV4ZXNbTm9ybWFsaXplckltcGwuU0VUX0lOREVYX0NBTk9OX0JNUF9UQUJMRV9MRU5HVEhdXTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8Ym1wVGFibGUubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgIGJtcFRhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfSAgICAgICAgCisgICAgICAgIGNoYXJbXSBzdXBwVGFibGUgPSBuZXcgY2hhcltjYW5vblN0YXJ0U2V0c0luZGV4ZXNbTm9ybWFsaXplckltcGwuU0VUX0lOREVYX0NBTk9OX1NVUFBfVEFCTEVfTEVOR1RIXV07CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHN1cHBUYWJsZS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgc3VwcFRhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfQorICAgICAgICAgY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX0lORElDSUVTX0lOREVYICBdID0gY2Fub25TdGFydFNldHNJbmRleGVzOworICAgICAgICAgY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX1NUQVJUX1NFVFNfSU5ERVhdID0gc3RhcnRTZXRzOworICAgICAgICAgY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX0JNUF9UQUJMRV9JTkRFWCAgICBdID0gYm1wVGFibGU7CisgICAgICAgICBjYW5vblN0YXJ0U2V0c1tOb3JtYWxpemVySW1wbC5DQU5PTl9TRVRfU1VQUF9UQUJMRV9JTkRFWF0gPSBzdXBwVGFibGU7ICAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZ2V0RGF0YUZvcm1hdFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIERBVEFfRk9STUFUX1ZFUlNJT047CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlswXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bMl0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlsyXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlszXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJ5dGVbXSBnZXRVbmljb2RlVmVyc2lvbigpeworICAgICAgICByZXR1cm4gdW5pY29kZVZlcnNpb247ICAgIAorICAgIH0KKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKworICAgIC8qKgorICAgICogSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIGRhdGFJbnB1dFN0cmVhbTsKKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSB1bmljb2RlVmVyc2lvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKiBzZWUgc3RvcmUuYyBvZiBnZW5ub3JtIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB2YWx1ZXMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURbXSA9IHsoYnl0ZSkweDRFLCAoYnl0ZSkweDZGLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDcyLCAoYnl0ZSkweDZEfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05bXSA9IHsoYnl0ZSkweDIsIChieXRlKTB4MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NSwgKGJ5dGUpMHgyfTsKKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJJbXBsLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OTE5YWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhCkBAIC0wLDAgKzEsMzc3NiBAQAorIC8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsgICAgCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIEB2ZXJzaW9uICAgICAxLjAKKyAqIEBhdXRob3IgIFJhbSBWaXN3YW5hZGhhCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBOb3JtYWxpemVySW1wbCB7CisgICAgLy8gU3RhdGljIGJsb2NrIGZvciB0aGUgY2xhc3MgdG8gaW5pdGlhbGl6ZSBpdHMgb3duIHNlbGYgCisgICAgc3RhdGljIGZpbmFsIE5vcm1hbGl6ZXJJbXBsIElNUEw7CisgICAgCisgICAgc3RhdGljCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgSU1QTCA9IG5ldyBOb3JtYWxpemVySW1wbCgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgIiIsICIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVOU0lHTkVEX0JZVEVfTUFTSyA9MHhGRjsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBVTlNJR05FRF9JTlRfTUFTSyA9IDB4ZmZmZmZmZmZMOworICAgIC8qCisgICAgICogVGhpcyBuZXcgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5vcm1hbGl6YXRpb24gY29kZSBsb2FkcyBpdHMgZGF0YSBmcm9tCisgICAgICogdW5vcm0uaWN1LCB3aGljaCBpcyBnZW5lcmF0ZWQgd2l0aCB0aGUgZ2Vubm9ybSB0b29sLgorICAgICAqIFRoZSBmb3JtYXQgb2YgdGhhdCBmaWxlIGlzIGRlc2NyaWJlZCBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9GSUxFX05BTUUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvdW5vcm0uaWN1IjsKKyAgICAKKyAgICAvLyBub3JtMzIgdmFsdWUgY29uc3RhbnRzIAorICAgIAorICAgIC8vIHF1aWNrIGNoZWNrIGZsYWdzIDAuLjMgc2V0IG1lYW4gIm5vIiBmb3IgdGhlaXIgZm9ybXMgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZDPTB4MTE7ICAgICAgICAgIC8qIG5vfG1heWJlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZLQz0weDIyOyAgICAgICAgIC8qIG5vfG1heWJlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZEPTQ7ICAgICAgICAgICAgIC8qIG5vICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZLRD04OyAgICAgICAgICAgIC8qIG5vICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfQU5ZX05PPTB4ZjsKKworICAgIC8qIHF1aWNrIGNoZWNrIGZsYWdzIDQuLjUgbWVhbiAibWF5YmUiIGZvciB0aGVpciBmb3JtczsgCisgICAgICogdGVzdCBmbGFncz49UUNfTUFZQkUgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTUFZQkU9MHgxMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRQ19BTllfTUFZQkU9MHgzMDsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX01BU0s9MHgzZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01CSU5FU19GV0Q9MHg0MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklORVNfQkFDSz0weDgwOworICAgIHB1YmxpYyAgc3RhdGljIGZpbmFsIGludCBDT01CSU5FU19BTlk9MHhjMDsKKyAgICAvLyBVbmljb2RlRGF0YS50eHQgY29tYmluaW5nIGNsYXNzIGluIGJpdHMgMTUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENDX1NISUZUPTg7ICAgICAgICAgICAgICAgICAgICAgCisgICAgcHVibGljICBzdGF0aWMgZmluYWwgaW50IENDX01BU0s9MHhmZjAwOworICAgIC8vIDE2IGJpdHMgZm9yIHRoZSBpbmRleCB0byBVQ2hhcnMgYW5kIG90aGVyIGV4dHJhIGRhdGEKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfU0hJRlQ9MTY7CisgICAgLy8gc3RhcnQgb2Ygc3Vycm9nYXRlIHNwZWNpYWxzIGFmdGVyIHNoaWZ0ICAgICAgICAgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFRSQV9JTkRFWF9UT1A9MHhmYzAwOyAgICAgICAKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFRSQV9TVVJST0dBVEVfTUFTSz0weDNmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfU1VSUk9HQVRFX1RPUD0weDNmMDsgICAgLyogaGFuZ3VsIGV0Yy4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFRSQV9IQU5HVUw9RVhUUkFfU1VSUk9HQVRFX1RPUDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSkFNT19MPUVYVFJBX1NVUlJPR0FURV9UT1ArMTsvKiAjIyMgbm90IHVzZWQgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSkFNT19WPUVYVFJBX1NVUlJPR0FURV9UT1ArMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSkFNT19UPUVYVFJBX1NVUlJPR0FURV9UT1ArMzsKKyAgICAKKyAgICAvKiBub3JtMzIgdmFsdWUgY29uc3RhbnRzIHVzaW5nID4xNiBiaXRzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgTUlOX1NQRUNJQUwgICAgPSAgKGxvbmcpKDB4ZmMwMDAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgU1VSUk9HQVRFU19UT1AgPSAgKGxvbmcpKDB4ZmZmMDAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgTUlOX0hBTkdVTCAgICAgPSAgKGxvbmcpKDB4ZmZmMDAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgTUlOX0pBTU9fViAgICAgPSAgKGxvbmcpKDB4ZmZmMjAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgSkFNT19WX1RPUCAgICAgPSAgKGxvbmcpKDB4ZmZmMzAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgCisgICAgCisgICAgLyogaW5kZXhlc1tdIHZhbHVlIG5hbWVzICovCisgICAgLyogbnVtYmVyIG9mIGJ5dGVzIGluIG5vcm1hbGl6YXRpb24gdHJpZSAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfVFJJRV9TSVpFICAgICAgICAgICA9IDA7CisgICAgIC8qIG51bWJlciBvZiBjaGFycyBpbiBleHRyYSBkYXRhICovICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NIQVJfQ09VTlQgICAgICAgICAgID0gMTsgICAgCisgICAgLyogbnVtYmVyIG9mIHVpbnQxNl90IHdvcmRzIGZvciBjb21iaW5pbmcgZGF0YSAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ09NQklORV9EQVRBX0NPVU5UID0gMjsKKyAgICAvKiBudW1iZXIgb2YgY29kZSBwb2ludHMgdGhhdCBjb21iaW5lIGZvcndhcmQgKi8gICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ09NQklORV9GV0RfQ09VTlQgID0gMzsKKyAgICAvKiBudW1iZXIgb2YgY29kZSBwb2ludHMgdGhhdCBjb21iaW5lIGZvcndhcmQgYW5kIGJhY2t3YXJkICovICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NPTUJJTkVfQk9USF9DT1VOVCA9IDQ7CisgICAgLyogbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgY29tYmluZSBiYWNrd2FyZCAqLyAgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBJTkRFWF9DT01CSU5FX0JBQ0tfQ09VTlQgPSA1OyAgICAgCisgICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORkMgTk8vTUFZQkUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkRFWF9NSU5fTkZDX05PX01BWUJFICAgPSA2OworICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORktDIE5PL01BWUJFICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOREVYX01JTl9ORktDX05PX01BWUJFICA9IDc7CisgICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORkQgTk8vTUFZQkUgKi8gICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOREVYX01JTl9ORkRfTk9fTUFZQkUgICA9IDg7CisgICAgLyogZmlyc3QgY29kZSBwb2ludCB3aXRoIHF1aWNrIGNoZWNrIE5GS0QgTk8vTUFZQkUgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfTUlOX05GS0RfTk9fTUFZQkUgID0gOTsgICAgIAorICAgIC8qIG51bWJlciBvZiBieXRlcyBpbiBGQ0QgdHJpZSAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfRkNEX1RSSUVfU0laRSAgICAgID0gMTA7CisgICAgLyogbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBhdXhpbGlhcnkgdHJpZSAqLyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0FVWF9UUklFX1NJWkUgICAgICA9IDExOworICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCBpbiB0aGUgYXJyYXkgb2Ygc2VyaWFsaXplZCBVU2V0ICovICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ0FOT05fU0VUX0NPVU5UICAgID0gMTI7ICAgIAorICAgIC8qIGNoYW5naW5nIHRoaXMgcmVxdWlyZXMgYSBuZXcgZm9ybWF0VmVyc2lvbiAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfVE9QICAgICAgICAgICAgICAgID0gMzI7ICAgIAorICAgIAorICAgIAorICAgIC8qIEFVWCBjb25zdGFudHMgKi8KKyAgICAvKiB2YWx1ZSBjb25zdGFudHMgZm9yIGF1eFRyaWUgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9VTlNBRkVfU0hJRlQgICAgICAgICAgID0gMTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9DT01QX0VYX1NISUZUICAgICAgICAgICA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfTkZDX1NLSVBQQUJMRV9GX1NISUZUID0gMTI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9NQVhfRk5DICAgICAgICAgID0gICAoKGludCkxPDxBVVhfQ09NUF9FWF9TSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9VTlNBRkVfTUFTSyAgICAgID0gICAoaW50KSgoMTw8QVVYX1VOU0FGRV9TSElGVCkgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9GTkNfTUFTSyAgICAgICAgID0gICAoaW50KSgoQVVYX01BWF9GTkMtMSkgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9DT01QX0VYX01BU0sgICAgID0gICAoaW50KSgoMTw8QVVYX0NPTVBfRVhfU0hJRlQpICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgQVVYX05GQ19TS0lQX0ZfTUFTSyA9ICAgKChVTlNJR05FRF9JTlRfTUFTSyYxKTw8QVVYX05GQ19TS0lQUEFCTEVfRl9TSElGVCk7CisgICAgCisgICAgLyogY2Fub25TdGFydFNldHNbMC4uMzFdIGNvbnRhaW5zIGluZGV4ZXMgZm9yIHdoYXQgaXMgaW4gdGhlIGFycmF5ICovCisgICAgLyogbnVtYmVyIG9mIHVpbnQxNl90IGluIGNhbm9uaWNhbCBzdGFydGVyIHNldHMgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IFNFVF9JTkRFWF9DQU5PTl9TRVRTX0xFTkdUSCAgICAgICAgPSAwOworICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCBpbiB0aGUgQk1QIHNlYXJjaCB0YWJsZSAoY29udGFpbnMgcGFpcnMpICovIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0lOREVYX0NBTk9OX0JNUF9UQUJMRV9MRU5HVEggICAgPSAxOworICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCBpbiB0aGUgc3VwcGxlbWVudGFyeSBzZWFyY2ggdGFibGUoY29udGFpbnMgdHJpcGxldHMpKi8gCisgICAgc3RhdGljIGZpbmFsIGludCBTRVRfSU5ERVhfQ0FOT05fU1VQUF9UQUJMRV9MRU5HVEggID0gMjsKKyAgICAvKiBjaGFuZ2luZyB0aGlzIHJlcXVpcmVzIGEgbmV3IGZvcm1hdFZlcnNpb24gKi8gCisgICAgc3RhdGljIGZpbmFsIGludCBTRVRfSU5ERVhfVE9QICAgICAgICAgICAgICAgICAgICAgICAgPSAzMjsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9JTkRJQ0lFU19JTkRFWCAgICAgICAgICAgICAgPSAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX1NUQVJUX1NFVFNfSU5ERVggICAgICAgICAgICA9IDE7CisgICAgc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfQk1QX1RBQkxFX0lOREVYICAgICAgICAgICAgPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX1NVUFBfVEFCTEVfSU5ERVggICAgICAgICAgICA9IDM7CisgICAgLyogMTQgYml0IGluZGV4ZXMgdG8gY2Fub25pY2FsIFVTZXJpYWxpemVkU2V0cyAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX01BWF9DQU5PTl9TRVRTICAgICAgICAgICAgID0gMHg0MDAwOyAKKyAgICAvKiBzaW5nbGUtY29kZSBwb2ludCBCTVAgc2V0cyBhcmUgZW5jb2RlZCBkaXJlY3RseSBpbiB0aGUgc2VhcmNoIHRhYmxlIAorICAgICAqIGV4Y2VwdCBpZiByZXN1bHQ9MHg0MDAwLi4weDdmZmYgCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfQk1QX01BU0sgICAgICAgICAgICAgICAgICAgID0gMHhjMDAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX0JNUF9JU19JTkRFWCAgICAgICAgICAgICAgICA9IDB4NDAwMDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgICAgICA9IDIwOworICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIG9wdGlvbiBmb3IgY21wRXF1aXZGb2xkKCkgZm9yIGRlY29tcG9zaW5nLgorICAgICAqIElmIG5vdCBzZXQsIGp1c3QgZG8gc3RyY2FzZWNtcCgpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX0VRVUlWID0gMHg4MDAwMDsKKyAgICAKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworICAgIC8qIFdyYXBwZXJzIGZvciBUcmllIGltcGxlbWVudGF0aW9ucyAqLyAKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgTm9ybVRyaWVJbXBsIGltcGxlbWVudHMgVHJpZS5EYXRhTWFuaXB1bGF0ZXsKKyAgICAgICAgc3RhdGljIEludFRyaWUgbm9ybVRyaWU9IG51bGw7CisgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIGJ5IGNvbS5pYm0uaWN1LnV0aWwuVHJpZSB0byBleHRyYWN0IGZyb20gYSBsZWFkIHN1cnJvZ2F0ZSdzIAorICAgICAgICAqIGRhdGEgdGhlIGluZGV4IGFycmF5IG9mZnNldCBvZiB0aGUgaW5kZXhlcyBmb3IgdGhhdCBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgKiBAcGFyYW0gcHJvcGVydHkgZGF0YSB2YWx1ZSBmb3IgYSBzdXJyb2dhdGUgZnJvbSB0aGUgdHJpZSwgaW5jbHVkaW5nIAorICAgICAgICAqICAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqLworICAgICAgICAvKiBub3JtVHJpZTogMzItYml0IHRyaWUgcmVzdWx0IG1heSBjb250YWluIGEgc3BlY2lhbCBleHRyYURhdGEgaW5kZXggd2l0aCB0aGUgZm9sZGluZyBvZmZzZXQgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSl7CisgICAgICAgICAgICByZXR1cm4gIEJNUF9JTkRFWF9MRU5HVEgrCisgICAgICAgICAgICAgICAgICAgICgodmFsdWU+PihFWFRSQV9TSElGVC1TVVJST0dBVEVfQkxPQ0tfQklUUykpJgorICAgICAgICAgICAgICAgICAgICAoMHgzZmY8PFNVUlJPR0FURV9CTE9DS19CSVRTKSk7IAorICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgRkNEVHJpZUltcGwgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRleworICAgICAgICBzdGF0aWMgQ2hhclRyaWUgZmNkVHJpZT1udWxsOworICAgICAgIC8qKgorICAgICAgICAqIENhbGxlZCBieSBjb20uaWJtLmljdS51dGlsLlRyaWUgdG8gZXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyAKKyAgICAgICAgKiBkYXRhIHRoZSBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICogQHBhcmFtIHByb3BlcnR5IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZworICAgICAgICAqICAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqLworICAgICAgICAvKiBmY2RUcmllOiB0aGUgZm9sZGluZyBvZmZzZXQgaXMgdGhlIGxlYWQgRkNEIHZhbHVlIGl0c2VsZiAqLworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IHZhbHVlKXsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgQXV4VHJpZUltcGwgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRleworICAgICAgICBzdGF0aWMgQ2hhclRyaWUgYXV4VHJpZSA9IG51bGw7CisgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIGJ5IGNvbS5pYm0uaWN1LnV0aWwuVHJpZSB0byBleHRyYWN0IGZyb20gYSBsZWFkIHN1cnJvZ2F0ZSdzIAorICAgICAgICAqIGRhdGEgdGhlIGluZGV4IGFycmF5IG9mZnNldCBvZiB0aGUgaW5kZXhlcyBmb3IgdGhhdCBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgKiBAcGFyYW0gcHJvcGVydHkgZGF0YSB2YWx1ZSBmb3IgYSBzdXJyb2dhdGUgZnJvbSB0aGUgdHJpZSwgaW5jbHVkaW5nIAorICAgICAgICAqICAgICAgICB0aGUgZm9sZGluZyBvZmZzZXQKKyAgICAgICAgKiBAcmV0dXJuIGRhdGEgb2Zmc2V0IG9yIDAgaWYgdGhlcmUgaXMgbm8gZGF0YSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlCisgICAgICAgICovCisgICAgICAgIC8qIGF1eFRyaWU6IHRoZSBmb2xkaW5nIG9mZnNldCBpcyBpbiBiaXRzIDkuLjAgb2YgdGhlIDE2LWJpdCB0cmllIHJlc3VsdCAqLworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IHZhbHVlKXsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSh2YWx1ZSAmQVVYX0ZOQ19NQVNLKTw8U1VSUk9HQVRFX0JMT0NLX0JJVFM7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBGQ0RUcmllSW1wbCBmY2RUcmllSW1wbDsKKyAgICBwcml2YXRlIHN0YXRpYyBOb3JtVHJpZUltcGwgbm9ybVRyaWVJbXBsOworICAgIHByaXZhdGUgc3RhdGljIEF1eFRyaWVJbXBsIGF1eFRyaWVJbXBsOworICAgIHByaXZhdGUgc3RhdGljIGludFtdIGluZGV4ZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGNvbWJpbmluZ1RhYmxlOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBleHRyYURhdGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gY2Fub25TdGFydFNldHM7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0RhdGFMb2FkZWQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0Zvcm1hdFZlcnNpb25fMl8xOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNGb3JtYXRWZXJzaW9uXzJfMjsKKyAgICBwcml2YXRlIHN0YXRpYyBieXRlW10gdW5pY29kZVZlcnNpb247CisgICAgCisgICAgLyoqCisgICAgICogRGVmYXVsdCBidWZmZXIgc2l6ZSBvZiBkYXRhZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JVRkZFUl9TSVpFID0gMjUwMDA7CisgICAgCisgICAgLyoqCisgICAgICogRkNEIGNoZWNrOiBldmVyeXRoaW5nIGJlbG93IHRoaXMgY29kZSBwb2ludCBpcyBrbm93biB0byBoYXZlIGEgMCAKKyAgICAgKiBsZWFkIGNvbWJpbmluZyBjbGFzcyAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fV0lUSF9MRUFEX0NDPTB4MzAwOworCisKKyAgICAvKioKKyAgICAgKiBCaXQgNyBvZiB0aGUgbGVuZ3RoIGJ5dGUgZm9yIGEgZGVjb21wb3NpdGlvbiBzdHJpbmcgaW4gZXh0cmEgZGF0YSBpcworICAgICAqIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nIGlzCisgICAgICogcHJlY2VkZWQgYnkgYSAxNi1iaXQgd29yZCB3aXRoIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYworICAgICAqIG9mIHRoZSBkZWNvbXBvc2l0aW9uIChsaWtlIGZvciBBLXVtbGF1dCk7CisgICAgICogaWYgbm90LCB0aGVuIGJvdGggY2MncyBhcmUgemVybyAobGlrZSBmb3IgY29tcGF0aWJpbGl0eSBpZGVvZ3JhcGhzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX0ZMQUdfTEVOR1RIX0hBU19DQz0weDgwOworICAgIC8qKgorICAgICAqIEJpdHMgNi4uMCBvZiB0aGUgbGVuZ3RoIGJ5dGUgY29udGFpbiB0aGUgYWN0dWFsIGxlbmd0aC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX0xFTkdUSF9NQVNLPTB4N2Y7ICAgCisgICAgCisgICAgLyoqIExlbmd0aCBvZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5UcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKiBOdW1iZXIgb2YgYml0cyBvZiBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGFyZSB1c2VkIGluIGluZGV4IHRhYmxlIAorICAgICAqIGxvb2t1cHMuIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfQkxPQ0tfQklUUz0xMC1UcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworCisKKyAgIC8vIHB1YmxpYyB1dGlsaXR5CisgICBwdWJsaWMgc3RhdGljIGludCBnZXRGcm9tSW5kZXhlc0FycihpbnQgaW5kZXgpeworICAgICAgICByZXR1cm4gaW5kZXhlc1tpbmRleF07CisgICB9CisgICAKKyAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAZXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscyBvciBkYXRhIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBOb3JtYWxpemVySW1wbCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIC8vZGF0YSBzaG91bGQgYmUgbG9hZGVkIG9ubHkgb25jZQorICAgICAgICBpZighaXNEYXRhTG9hZGVkKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gamFyIGFjY2VzcworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oREFUQV9GSUxFX05BTUUpOworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSxEQVRBX0JVRkZFUl9TSVpFKTsKKyAgICAgICAgICAgIE5vcm1hbGl6ZXJEYXRhUmVhZGVyIHJlYWRlciA9IG5ldyBOb3JtYWxpemVyRGF0YVJlYWRlcihiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gcmVhZCB0aGUgaW5kZXhlcyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5kZXhlcyA9IHJlYWRlci5yZWFkSW5kZXhlcyhOb3JtYWxpemVySW1wbC5JTkRFWF9UT1ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBieXRlW10gbm9ybUJ5dGVzID0gbmV3IGJ5dGVbaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9UUklFX1NJWkVdXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGNvbWJpbmluZ1RhYmxlVG9wID0gaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9DT01CSU5FX0RBVEFfQ09VTlRdOworICAgICAgICAgICAgY29tYmluaW5nVGFibGUgPSBuZXcgY2hhcltjb21iaW5pbmdUYWJsZVRvcF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBleHRyYURhdGFUb3AgPSBpbmRleGVzW05vcm1hbGl6ZXJJbXBsLklOREVYX0NIQVJfQ09VTlRdOworICAgICAgICAgICAgZXh0cmFEYXRhID0gbmV3IGNoYXJbZXh0cmFEYXRhVG9wXTsKKworICAgICAgICAgICAgYnl0ZVtdIGZjZEJ5dGVzID0gbmV3IGJ5dGVbaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9GQ0RfVFJJRV9TSVpFXV07CisgICAgICAgICAgICBieXRlW10gYXV4Qnl0ZXMgPSBuZXcgYnl0ZVtpbmRleGVzW05vcm1hbGl6ZXJJbXBsLklOREVYX0FVWF9UUklFX1NJWkVdXTsKKyAgICAgICAgICAgIGNhbm9uU3RhcnRTZXRzPW5ldyBPYmplY3RbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX01BWF9DQU5PTl9TRVRTXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmNkVHJpZUltcGwgPSBuZXcgRkNEVHJpZUltcGwoKTsKKyAgICAgICAgICAgIG5vcm1UcmllSW1wbCA9IG5ldyBOb3JtVHJpZUltcGwoKTsKKyAgICAgICAgICAgIGF1eFRyaWVJbXBsID0gbmV3IEF1eFRyaWVJbXBsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGxvYWQgdGhlIHJlc3Qgb2YgdGhlIGRhdGEgZGF0YSBhbmQgaW5pdGlhbGl6ZSB0aGUgZGF0YSBtZW1iZXJzCisgICAgICAgICAgICByZWFkZXIucmVhZChub3JtQnl0ZXMsIGZjZEJ5dGVzLGF1eEJ5dGVzLCBleHRyYURhdGEsIGNvbWJpbmluZ1RhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uU3RhcnRTZXRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgTm9ybVRyaWVJbXBsLm5vcm1UcmllID0gbmV3IEludFRyaWUoIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShub3JtQnl0ZXMpLG5vcm1UcmllSW1wbCApOworICAgICAgICAgICAgRkNEVHJpZUltcGwuZmNkVHJpZSAgID0gbmV3IENoYXJUcmllKCBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oZmNkQnl0ZXMpLGZjZFRyaWVJbXBsICApOworICAgICAgICAgICAgQXV4VHJpZUltcGwuYXV4VHJpZSAgID0gbmV3IENoYXJUcmllKCBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYXV4Qnl0ZXMpLGF1eFRyaWVJbXBsICApOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB3ZSByZWFjaGVkIGhlcmUgd2l0aG91dCBhbnkgZXhjZXB0aW9ucyBzbyB0aGUgZGF0YSBpcyBmdWxseSAKKyAgICAgICAgICAgIC8vIGxvYWRlZCBzZXQgdGhlIHZhcmlhYmxlIHRvIHRydWUKKyAgICAgICAgICAgIGlzRGF0YUxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZGF0YSBmb3JtYXQgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZVtdIGZvcm1hdFZlcnNpb24gPSByZWFkZXIuZ2V0RGF0YUZvcm1hdFZlcnNpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXNGb3JtYXRWZXJzaW9uXzJfMSA9KCBmb3JtYXRWZXJzaW9uWzBdPjIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0VmVyc2lvblswXT09MiAmJiBmb3JtYXRWZXJzaW9uWzFdPj0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGlzRm9ybWF0VmVyc2lvbl8yXzIgPSggZm9ybWF0VmVyc2lvblswXT4yIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdFZlcnNpb25bMF09PTIgJiYgZm9ybWF0VmVyc2lvblsxXT49MikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB1bmljb2RlVmVyc2lvbiA9IHJlYWRlci5nZXRVbmljb2RlVmVyc2lvbigpOworICAgICAgICAgICAgYi5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyogS29yZWFuIEhhbmd1bCBhbmQgSmFtbyBjb25zdGFudHMgKi8KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQU1PX0xfQkFTRT0weDExMDA7ICAgICAvKiAibGVhZCIgamFtbyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBTU9fVl9CQVNFPTB4MTE2MTsgICAgIC8qICJ2b3dlbCIgamFtbyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBTU9fVF9CQVNFPTB4MTFhNzsgICAgIC8qICJ0cmFpbCIgamFtbyAqLworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9CQVNFPTB4YWMwMDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQU1PX0xfQ09VTlQ9MTk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSkFNT19WX0NPVU5UPTIxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBTU9fVF9DT1VOVD0yODsKKyAgICBwdWJsaWMgIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX0NPVU5UPUpBTU9fTF9DT1VOVCpKQU1PX1ZfQ09VTlQqSkFNT19UX0NPVU5UOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNIYW5ndWxXaXRob3V0SmFtb1QoY2hhciBjKSB7CisgICAgICAgIGMtPUhBTkdVTF9CQVNFOworICAgICAgICByZXR1cm4gYzxIQU5HVUxfQ09VTlQgJiYgYyVKQU1PX1RfQ09VTlQ9PTA7CisgICAgfQorICAgIAorICAgIC8qIG5vcm0zMiBoZWxwZXJzICovCisgICAgCisgICAgLyogaXMgdGhpcyBhIG5vcm0zMiB3aXRoIGEgcmVndWxhciBpbmRleD8gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTm9ybTMyUmVndWxhcihsb25nIG5vcm0zMikgeworICAgICAgICByZXR1cm4gbm9ybTMyPE1JTl9TUEVDSUFMOworICAgIH0KKyAgICAKKyAgICAvKiBpcyB0aGlzIGEgbm9ybTMyIHdpdGggYSBzcGVjaWFsIGluZGV4IGZvciBhIGxlYWQgc3Vycm9nYXRlPyAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNOb3JtMzJMZWFkU3Vycm9nYXRlKGxvbmcgbm9ybTMyKSB7CisgICAgICAgIHJldHVybiBNSU5fU1BFQ0lBTDw9bm9ybTMyICYmIG5vcm0zMjxTVVJST0dBVEVTX1RPUDsKKyAgICB9CisgICAgCisgICAgLyogaXMgdGhpcyBhIG5vcm0zMiB3aXRoIGEgc3BlY2lhbCBpbmRleCBmb3IgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vPyAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNOb3JtMzJIYW5ndWxPckphbW8obG9uZyBub3JtMzIpIHsKKyAgICAgICAgcmV0dXJuIG5vcm0zMj49TUlOX0hBTkdVTDsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBHaXZlbiBpc05vcm0zMkhhbmd1bE9ySmFtbygpLAorICAgICAqIGlzIHRoaXMgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vPworICAgICAqLworICAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgIGJvb2xlYW4gaXNIYW5ndWxKYW1vTm9ybTMySGFuZ3VsT3JKYW1vTChsb25nIG5vcm0zMikgeworICAgICAgICByZXR1cm4gbm9ybTMyPE1JTl9KQU1PX1Y7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8qCisgICAgICogR2l2ZW4gbm9ybTMyIGZvciBKYW1vIFYgb3IgVCwKKyAgICAgKiBpcyB0aGlzIGEgSmFtbyBWPworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNKYW1vVlROb3JtMzJKYW1vVihsb25nIG5vcm0zMikgeworICAgICAgICByZXR1cm4gbm9ybTMyPEpBTU9fVl9UT1A7CisgICAgfQorICAgIAorICAgIC8qIGRhdGEgYWNjZXNzIHByaW1pdGl2ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGxvbmcvKnVuc2lnbmVkKi8gZ2V0Tm9ybTMyKGNoYXIgYykgeworICAgICAgICByZXR1cm4gKChVTlNJR05FRF9JTlRfTUFTSykgJiAoTm9ybVRyaWVJbXBsLm5vcm1UcmllLmdldExlYWRWYWx1ZShjKSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGxvbmcvKnVuc2lnbmVkKi8gZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobG9uZyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjMikgeworICAgICAgICAvKgorICAgICAgICAgKiB0aGUgc3Vycm9nYXRlIGluZGV4IGluIG5vcm0zMiBzdG9yZXMgb25seSB0aGUgbnVtYmVyIG9mIHRoZSBzdXJyb2dhdGUKKyAgICAgICAgICogaW5kZXggYmxvY2sgc2VlIGdlbm5vcm0vc3RvcmUuYy9nZXRGb2xkZWROb3JtVmFsdWUoKQorICAgICAgICAgKi8KKyAgICAgICAgcmV0dXJuICgoVU5TSUdORURfSU5UX01BU0spICYgCisgICAgICAgICAgICAgICAgICAgIE5vcm1UcmllSW1wbC5ub3JtVHJpZS5nZXRUcmFpbFZhbHVlKChpbnQpbm9ybTMyLCBjMikpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBnZXROb3JtMzIoaW50IGMpeworICAgICAgICByZXR1cm4gKFVOU0lHTkVEX0lOVF9NQVNLJihOb3JtVHJpZUltcGwubm9ybVRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBnZXROb3JtMzIoaW50IGMsaW50IG1hc2speworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMj0gZ2V0Tm9ybTMyKFVURjE2LmdldExlYWRTdXJyb2dhdGUoYykpOworICAgICAgICBpZigoKG5vcm0zMiZtYXNrKT4wKSAmJiBpc05vcm0zMkxlYWRTdXJyb2dhdGUobm9ybTMyKSkgeworICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGMpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOyAKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgCisgICAgLyoKKyAgICAgKiBnZXQgYSBub3JtMzIgZnJvbSB0ZXh0IHdpdGggY29tcGxldGUgY29kZSBwb2ludHMKKyAgICAgKiAobGlrZSBmcm9tIGRlY29tcG9zaXRpb25zKQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGxvbmcvKnVuc2lnbmVkKi8gZ2V0Tm9ybTMyKGNoYXJbXSBwLGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaykgeworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMj0gZ2V0Tm9ybTMyKHBbc3RhcnRdKTsKKyAgICAgICAgaWYoKChub3JtMzImbWFzayk+MCkgJiYgaXNOb3JtMzJMZWFkU3Vycm9nYXRlKG5vcm0zMikpIHsKKyAgICAgICAgICAgIC8qICpwIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIHBbc3RhcnQrMV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBub3JtMzI7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0VW5pY29kZVZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKHVuaWNvZGVWZXJzaW9uWzBdLCB1bmljb2RlVmVyc2lvblsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGVWZXJzaW9uWzJdLCB1bmljb2RlVmVyc2lvblszXSk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgY2hhciAgICBnZXRGQ0QxNihjaGFyIGMpIHsKKyAgICAgICAgcmV0dXJuICBGQ0RUcmllSW1wbC5mY2RUcmllLmdldExlYWRWYWx1ZShjKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjaGFyIGdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoY2hhciBmY2QxNiwgY2hhciBjMikgeworICAgICAgICAvKiB0aGUgc3Vycm9nYXRlIGluZGV4IGluIGZjZDE2IGlzIGFuIGFic29sdXRlIG9mZnNldCBvdmVyIHRoZSAKKyAgICAgICAgICogc3RhcnQgb2Ygc3RhZ2UgMSAKKyAgICAgICAgICogKi8KKyAgICAgICAgcmV0dXJuIEZDRFRyaWVJbXBsLmZjZFRyaWUuZ2V0VHJhaWxWYWx1ZShmY2QxNiwgYzIpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRGQ0QxNihpbnQgYykgeworICAgICAgICByZXR1cm4gIEZDRFRyaWVJbXBsLmZjZFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgfQorICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0RXh0cmFEYXRhSW5kZXgobG9uZyBub3JtMzIpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpKG5vcm0zMj4+RVhUUkFfU0hJRlQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBEZWNvbXBvc2VBcmdzeworICAgICAgICBpbnQgLyp1bnNpZ25lZCBieXRlKi8gY2M7CisgICAgICAgIGludCAvKnVuc2lnbmVkIGJ5dGUqLyB0cmFpbENDOworICAgICAgICBpbnQgbGVuZ3RoOworICAgIH0KKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBnZXQgdGhlIGNhbm9uaWNhbCBvciBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gZm9yIG9uZSBjaGFyYWN0ZXIgCisgICAgICogCisgICAgICogQHJldHVybiBpbmRleCBpbnRvIHRoZSBleHRyYURhdGEgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKmluZGV4Ki8gZGVjb21wb3NlKGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBxY01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzKSB7CisgICAgICAgIGludCBwPSBnZXRFeHRyYURhdGFJbmRleChub3JtMzIpOworICAgICAgICBhcmdzLmxlbmd0aD1leHRyYURhdGFbcCsrXTsKKyAgICAKKyAgICAgICAgaWYoKG5vcm0zMiZxY01hc2smUUNfTkZLRCkhPTAgJiYgYXJncy5sZW5ndGg+PTB4MTAwKSB7CisgICAgICAgICAgICAvKiB1c2UgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLCBza2lwIGNhbm9uaWNhbCBkYXRhICovCisgICAgICAgICAgICBwKz0oKGFyZ3MubGVuZ3RoPj43KSYxKSsoYXJncy5sZW5ndGgmREVDT01QX0xFTkdUSF9NQVNLKTsKKyAgICAgICAgICAgIGFyZ3MubGVuZ3RoPj49ODsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZigoYXJncy5sZW5ndGgmREVDT01QX0ZMQUdfTEVOR1RIX0hBU19DQyk+MCkgeworICAgICAgICAgICAgLyogZ2V0IHRoZSBsZWFkIGFuZCB0cmFpbCBjYydzICovCisgICAgICAgICAgICBjaGFyIGJvdGhDQ3M9ZXh0cmFEYXRhW3ArK107CisgICAgICAgICAgICBhcmdzLmNjPShVTlNJR05FRF9CWVRFX01BU0spICYgKGJvdGhDQ3M+PjgpOworICAgICAgICAgICAgYXJncy50cmFpbENDPShVTlNJR05FRF9CWVRFX01BU0spICYgYm90aENDczsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIGxlYWQgYW5kIHRyYWlsIGNjJ3MgYXJlIGJvdGggMCAqLworICAgICAgICAgICAgYXJncy5jYz1hcmdzLnRyYWlsQ0M9MDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBhcmdzLmxlbmd0aCY9REVDT01QX0xFTkdUSF9NQVNLOworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisgICAgCisgICAgICAgCisgICAgLyoqCisgICAgICogZ2V0IHRoZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb3Igb25lIGNoYXJhY3RlciAKKyAgICAgKiBAcmV0dXJuIGluZGV4IGludG8gdGhlIGV4dHJhRGF0YSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBkZWNvbXBvc2UobG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgcD0gZ2V0RXh0cmFEYXRhSW5kZXgobm9ybTMyKTsKKyAgICAgICAgYXJncy5sZW5ndGg9ZXh0cmFEYXRhW3ArK107CisgICAgCisgICAgICAgIGlmKChhcmdzLmxlbmd0aCZERUNPTVBfRkxBR19MRU5HVEhfSEFTX0NDKT4wKSB7CisgICAgICAgICAgICAvKiBnZXQgdGhlIGxlYWQgYW5kIHRyYWlsIGNjJ3MgKi8KKyAgICAgICAgICAgIGNoYXIgYm90aENDcz1leHRyYURhdGFbcCsrXTsKKyAgICAgICAgICAgIGFyZ3MuY2M9KFVOU0lHTkVEX0JZVEVfTUFTSykgJiAoYm90aENDcz4+OCk7CisgICAgICAgICAgICBhcmdzLnRyYWlsQ0M9KFVOU0lHTkVEX0JZVEVfTUFTSykgJiBib3RoQ0NzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogbGVhZCBhbmQgdHJhaWwgY2MncyBhcmUgYm90aCAwICovCisgICAgICAgICAgICBhcmdzLmNjPWFyZ3MudHJhaWxDQz0wOworICAgICAgICB9CisgICAgCisgICAgICAgIGFyZ3MubGVuZ3RoJj1ERUNPTVBfTEVOR1RIX01BU0s7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBOZXh0Q0NBcmdzeworICAgICAgICBjaGFyW10gc291cmNlOworICAgICAgICBpbnQgbmV4dDsKKyAgICAgICAgaW50IGxpbWl0OworICAgICAgICBjaGFyIGM7CisgICAgICAgIGNoYXIgYzI7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogZ2V0IHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgKGMsIGMyKT0gYXJncy5zb3VyY2VbYXJncy5uZXh0KytdCisgICAgICogYmVmb3JlOiBhcmdzLm5leHQ8YXJncy5saW1pdCAgYWZ0ZXI6IGFyZ3MubmV4dDw9YXJncy5saW1pdAorICAgICAqIGlmIG9ubHkgb25lIGNvZGUgdW5pdCBpcyB1c2VkLCB0aGVuIGMyPT0wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IC8qdW5zaWduZWQgYnl0ZSovIGdldE5leHRDQyhOZXh0Q0NBcmdzIGFyZ3MpIHsKKyAgICAgICAgbG9uZyAvKnVuc2lnbmVkKi8gbm9ybTMyOworICAgIAorICAgICAgICBhcmdzLmM9YXJncy5zb3VyY2VbYXJncy5uZXh0KytdOworICAgICAgICAKKyAgICAgICAgbm9ybTMyPSBnZXROb3JtMzIoYXJncy5jKTsKKyAgICAgICAgaWYoKG5vcm0zMiAmIENDX01BU0spPT0wKSB7CisgICAgICAgICAgICBhcmdzLmMyPTA7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmKCFpc05vcm0zMkxlYWRTdXJyb2dhdGUobm9ybTMyKSkgeworICAgICAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICAgICAgaWYoYXJncy5uZXh0IT1hcmdzLmxpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShhcmdzLmMyPWFyZ3Muc291cmNlW2FyZ3MubmV4dF0pKXsKKyAgICAgICAgICAgICAgICAgICAgKythcmdzLm5leHQ7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGFyZ3MuYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcmV0dXJuIChpbnQpKChVTlNJR05FRF9CWVRFX01BU0spICYgKG5vcm0zMj4+Q0NfU0hJRlQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFByZXZBcmdzeworICAgICAgICBjaGFyW10gc3JjOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIGludCBjdXJyZW50OworICAgICAgICBjaGFyIGM7CisgICAgICAgIGNoYXIgYzI7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogcmVhZCBiYWNrd2FyZHMgYW5kIGdldCBub3JtMzIKKyAgICAgKiByZXR1cm4gMCBpZiB0aGUgY2hhcmFjdGVyIGlzIDxtaW5DCisgICAgICogaWYgYzIhPTAgdGhlbiAoYzIsIGMpIGlzIGEgc3Vycm9nYXRlIHBhaXIgKHJldmVyc2VkIC0gYzIgaXMgZmlyc3QgCisgICAgICogc3Vycm9nYXRlIGJ1dCByZWFkIHNlY29uZCEpCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyAvKnVuc2lnbmVkKi8gZ2V0UHJldk5vcm0zMihQcmV2QXJncyBhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2spIHsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI7CisgICAgCisgICAgICAgIGFyZ3MuYz1hcmdzLnNyY1stLWFyZ3MuY3VycmVudF07CisgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAKKyAgICAgICAgLyogY2hlY2sgZm9yIGEgc3Vycm9nYXRlIGJlZm9yZSBnZXR0aW5nIG5vcm0zMiB0byBzZWUgaWYgd2UgbmVlZCB0byAKKyAgICAgICAgICogcHJlZGVjcmVtZW50IGZ1cnRoZXIgCisgICAgICAgICAqLworICAgICAgICBpZihhcmdzLmM8bWluQykgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSBpZighVVRGMTYuaXNTdXJyb2dhdGUoYXJncy5jKSkgeworICAgICAgICAgICAgcmV0dXJuIGdldE5vcm0zMihhcmdzLmMpOworICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGFyZ3MuYykpIHsKKyAgICAgICAgICAgIC8qIHVucGFpcmVkIGZpcnN0IHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSBpZihhcmdzLmN1cnJlbnQhPWFyZ3Muc3RhcnQgJiYgCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShhcmdzLmMyPWFyZ3Muc3JjW2FyZ3MuY3VycmVudC0xXSkpIHsKKyAgICAgICAgICAgIC0tYXJncy5jdXJyZW50OworICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMihhcmdzLmMyKTsKKyAgICAKKyAgICAgICAgICAgIGlmKChub3JtMzImbWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBhbGwgc3Vycm9nYXRlIHBhaXJzIHdpdGggdGhpcyBsZWFkIHN1cnJvZ2F0ZSBoYXZlIAorICAgICAgICAgICAgICAgICAqIG9ubHkgaXJyZWxldmFudCBkYXRhIAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBub3JtMzIgbXVzdCBiZSBhIHN1cnJvZ2F0ZSBzcGVjaWFsICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYXJncy5jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHVucGFpcmVkIHNlY29uZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogZ2V0IHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgKGMsIGMyKT0qLS1wCisgICAgICogYmVmb3JlOiBzdGFydDxwICBhZnRlcjogc3RhcnQ8PXAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgLyp1bnNpZ25lZCBieXRlKi8gZ2V0UHJldkNDKFByZXZBcmdzIGFyZ3MpIHsKKworICAgICAgICByZXR1cm4gKGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykmKGdldFByZXZOb3JtMzIoYXJncywgTUlOX1dJVEhfTEVBRF9DQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDX01BU0spPj5DQ19TSElGVCkpOworICAgIH0KKworICAgIC8qCisgICAgICogaXMgdGhpcyBhIHNhZmUgYm91bmRhcnkgY2hhcmFjdGVyIGZvciBORipEPworICAgICAqIChsZWFkIGNjPT0wKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05GRFNhZmUobG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqL2NjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2spIHsKKyAgICAgICAgaWYoKG5vcm0zMiZjY09yUUNNYXNrKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIGNjPT0wIGFuZCBubyBkZWNvbXBvc2l0aW9uOiB0aGlzIGlzIE5GKkQgc2FmZSAqLworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGluc3BlY3QgaXRzIGRlY29tcG9zaXRpb24gLSBtYXliZSBhIEhhbmd1bCBidXQgbm90IGEgc3Vycm9nYXRlIGhlcmUqLworICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSAmJiAobm9ybTMyJmRlY29tcFFDTWFzaykhPTApIHsKKyAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncz1uZXcgRGVjb21wb3NlQXJncygpOworICAgICAgICAgICAgLyogZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIGV4dHJhIGRhdGEgKi8KKyAgICAgICAgICAgIGRlY29tcG9zZShub3JtMzIsIGRlY29tcFFDTWFzaywgYXJncyk7CisgICAgICAgICAgICByZXR1cm4gYXJncy5jYz09MDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG5vIGRlY29tcG9zaXRpb24gKG9yIEhhbmd1bCksIHRlc3QgdGhlIGNjIGRpcmVjdGx5ICovCisgICAgICAgICAgICByZXR1cm4gKG5vcm0zMiZDQ19NQVNLKT09MDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIGlzIHRoaXMgKG9yIGRvZXMgaXRzIGRlY29tcG9zaXRpb24gYmVnaW4gd2l0aCkgYSAidHJ1ZSBzdGFydGVyIj8KKyAgICAgKiAoY2M9PTAgYW5kIE5GKkNfWUVTKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1RydWVTdGFydGVyKGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBjY09yUUNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2spIHsKKyAgICAgICAgaWYoKG5vcm0zMiZjY09yUUNNYXNrKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIHRoaXMgaXMgYSB0cnVlIHN0YXJ0ZXIgKGNvdWxkIGJlIEhhbmd1bCBvciBKYW1vIEwpKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBpbnNwZWN0IGl0cyBkZWNvbXBvc2l0aW9uIC0gbm90IGEgSGFuZ3VsIG9yIGEgc3Vycm9nYXRlIGhlcmUgKi8KKyAgICAgICAgaWYoKG5vcm0zMiZkZWNvbXBRQ01hc2spIT0wKSB7CisgICAgICAgICAgICBpbnQgcDsgLyogaW5kZXggaW50byBleHRyYSBkYXRhIGFycmF5ICovCisgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3M9bmV3IERlY29tcG9zZUFyZ3MoKTsKKyAgICAgICAgICAgIC8qIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSBkYXRhICovCisgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIGRlY29tcFFDTWFzaywgYXJncyk7CisgICAgICAgICAgCisgICAgICAgICAgICBpZihhcmdzLmNjPT0wKSB7CisgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIHFjTWFzaz1jY09yUUNNYXNrJlFDX01BU0s7CisgICAgCisgICAgICAgICAgICAgICAgLyogZG9lcyBpdCBiZWdpbiB3aXRoIE5GQ19ZRVM/ICovCisgICAgICAgICAgICAgICAgaWYoKGdldE5vcm0zMihleHRyYURhdGEscCwgcWNNYXNrKSZxY01hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHllcywgdGhlIGRlY29tcG9zaXRpb24gYmVnaW5zIHdpdGggYSB0cnVlIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKiByZW9yZGVyIFVURi0xNiBpbi1wbGFjZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyoqCisgICAgICogc2ltcGxlciwgc2luZ2xlLWNoYXJhY3RlciB2ZXJzaW9uIG9mIG1lcmdlT3JkZXJlZCgpIC0KKyAgICAgKiBidWJibGUtaW5zZXJ0IG9uZSBzaW5nbGUgY29kZSBwb2ludCBpbnRvIHRoZSBwcmVjZWRpbmcgc3RyaW5nCisgICAgICogd2hpY2ggaXMgYWxyZWFkeSBjYW5vbmljYWxseSBvcmRlcmVkCisgICAgICogKGMsIGMyKSBtYXkgb3IgbWF5IG5vdCB5ZXQgaGF2ZSBiZWVuIGluc2VydGVkIGF0IHNyY1tjdXJyZW50XS4uc3JjW3BdCisgICAgICoKKyAgICAgKiBpdCBtdXN0IGJlIHA9Y3VycmVudCtsZW5ndGhvZihjLCBjMikgaS5lLiBwPWN1cnJlbnQrKGMyPT0wID8gMSA6IDIpCisgICAgICoKKyAgICAgKiBiZWZvcmU6IHNyY1tzdGFydF0uLnNyY1tjdXJyZW50XSBpcyBhbHJlYWR5IG9yZGVyZWQsIGFuZAorICAgICAqICAgICAgICAgc3JjW2N1cnJlbnRdLi5zcmNbcF0gICAgIG1heSBvciBtYXkgbm90IGhvbGQgKGMsIGMyKSBidXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCBiZSBleGFjdGx5IHRoZSBzYW1lIGxlbmd0aCBhcyAoYywgYzIpCisgICAgICogYWZ0ZXI6IHNyY1tzdGFydF0uLnNyY1twXSBpcyBvcmRlcmVkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBjb21iaW5pbmcgY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBpbnNlcnRPcmRlcmVkKGNoYXJbXSBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50LCBpbnQgcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYywgY2hhciBjMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBjYykgeworICAgICAgICBpbnQgYmFjaywgcHJlQmFjazsKKyAgICAgICAgaW50IHI7CisgICAgICAgIGludCBwcmV2Q0MsIHRyYWlsQ0M9Y2M7CisgICAgCisgICAgICAgIGlmKHN0YXJ0PGN1cnJlbnQgJiYgY2MhPTApIHsKKyAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgdGhlIGluc2VydGlvbiBwb2ludCB3aGVyZSBjYz49cHJldkNDIAorICAgICAgICAgICAgcHJlQmFjaz1iYWNrPWN1cnJlbnQ7CisgICAgICAgICAgICBQcmV2QXJncyBwcmV2QXJncyA9IG5ldyBQcmV2QXJncygpOworICAgICAgICAgICAgcHJldkFyZ3MuY3VycmVudCAgPSBjdXJyZW50OworICAgICAgICAgICAgcHJldkFyZ3Muc3RhcnQgICAgPSBzdGFydDsKKyAgICAgICAgICAgIHByZXZBcmdzLnNyYyAgICAgID0gc291cmNlOworICAgICAgICAgICAgLy8gZ2V0IHRoZSBwcmV2Q0MgCisgICAgICAgICAgICBwcmV2Q0M9Z2V0UHJldkNDKHByZXZBcmdzKTsKKyAgICAgICAgICAgIHByZUJhY2sgPSBwcmV2QXJncy5jdXJyZW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHdpbGwgYmUgdGhlIGxhc3QgY29kZSBwb2ludCwgc28ga2VlcCBpdHMgY2MgCisgICAgICAgICAgICAgICAgdHJhaWxDQz1wcmV2Q0M7CisgICAgICAgICAgICAgICAgYmFjaz1wcmVCYWNrOworICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0PHByZUJhY2spIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPWdldFByZXZDQyhwcmV2QXJncyk7CisgICAgICAgICAgICAgICAgICAgIHByZUJhY2s9cHJldkFyZ3MuY3VycmVudDsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2M+PXByZXZDQykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYmFjaz1wcmVCYWNrOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHdoZXJlIHdlIGFyZSByaWdodCBub3cgd2l0aCBhbGwgdGhlc2UgaW5kaWNpZXM6CisgICAgICAgICAgICAgICAgLy8gW3N0YXJ0XS4uW3BQcmVCYWNrXSAwLi4/IGNvZGUgcG9pbnRzIHRoYXQgd2UgY2FuIGlnbm9yZQorICAgICAgICAgICAgICAgIC8vIFtwUHJlQmFja10uLltwQmFja10gMC4uMSBjb2RlIHBvaW50cyB3aXRoIHByZXZDQzw9Y2MKKyAgICAgICAgICAgICAgICAvLyBbcEJhY2tdLi5bY3VycmVudF0gMC4ubiBjb2RlIHBvaW50cyB3aXRoID5jYywgbW92ZSB1cCB0byBpbnNlcnQgKGMsIGMyKQorICAgICAgICAgICAgICAgIC8vIFtjdXJyZW50XS4uW3BdICAgICAgICAgMSBjb2RlIHBvaW50IChjLCBjMikgd2l0aCBjYworICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBtb3ZlIHRoZSBjb2RlIHVuaXRzIGluIGJldHdlZW4gdXAgCisgICAgICAgICAgICAgICAgcj1wOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlWy0tcl09c291cmNlWy0tY3VycmVudF07CisgICAgICAgICAgICAgICAgfSB3aGlsZShiYWNrIT1jdXJyZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBpbnNlcnQgKGMsIGMyKSAKKyAgICAgICAgc291cmNlW2N1cnJlbnRdPWM7CisgICAgICAgIGlmKGMyIT0wKSB7CisgICAgICAgICAgICBzb3VyY2VbKGN1cnJlbnQrMSldPWMyOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHdlIGtub3cgdGhlIGNjIG9mIHRoZSBsYXN0IGNvZGUgcG9pbnQgCisgICAgICAgIHJldHVybiB0cmFpbENDOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBtZXJnZSB0d28gVVRGLTE2IHN0cmluZyBwYXJ0cyB0b2dldGhlcgorICAgICAqIHRvIGNhbm9uaWNhbGx5IG9yZGVyIChvcmRlciBieSBjb21iaW5pbmcgY2xhc3NlcykgdGhlaXIgY29uY2F0ZW5hdGlvbgorICAgICAqCisgICAgICogdGhlIHR3byBzdHJpbmdzIG1heSBhbHJlYWR5IGJlIGFkamFjZW50LCBzbyB0aGF0IHRoZSBtZXJnaW5nIGlzIGRvbmUgCisgICAgICogaW4tcGxhY2UgaWYgdGhlIHR3byBzdHJpbmdzIGFyZSBub3QgYWRqYWNlbnQsIHRoZW4gdGhlIGJ1ZmZlciBob2xkaW5nIHRoZQorICAgICAqIGZpcnN0IG9uZSBtdXN0IGJlIGxhcmdlIGVub3VnaAorICAgICAqIHRoZSBzZWNvbmQgc3RyaW5nIG1heSBvciBtYXkgbm90IGJlIG9yZGVyZWQgaW4gaXRzZWxmCisgICAgICoKKyAgICAgKiBiZWZvcmU6IFtzdGFydF0uLltjdXJyZW50XSBpcyBhbHJlYWR5IG9yZGVyZWQsIGFuZAorICAgICAqICAgICAgICAgW25leHRdLi5bbGltaXRdICAgIG1heSBiZSBvcmRlcmVkIGluIGl0c2VsZiwgYnV0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG5vdCBpbiByZWxhdGlvbiB0byBbc3RhcnQuLmN1cnJlbnRbCisgICAgICogYWZ0ZXI6IFtzdGFydC4uY3VycmVudCsobGltaXQtbmV4dClbIGlzIG9yZGVyZWQKKyAgICAgKgorICAgICAqIHRoZSBhbGdvcml0aG0gaXMgYSBzaW1wbGUgYnViYmxlLXNvcnQgdGhhdCB0YWtlcyB0aGUgY2hhcmFjdGVycyBmcm9tIAorICAgICAqIHNyY1tuZXh0KytdIGFuZCBpbnNlcnRzIHRoZW0gaW4gY29ycmVjdCBjb21iaW5pbmcgY2xhc3Mgb3JkZXIgaW50byB0aGUgCisgICAgICogcHJlY2VkaW5nIHBhcnQgb2YgdGhlIHN0cmluZworICAgICAqCisgICAgICogc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgbXVjaCBsZXNzIG9mdGVuIHRoYW4gdGhlIHNpbmdsZS1jb2RlIHBvaW50CisgICAgICogaW5zZXJ0T3JkZXJlZCgpLCBpdCBqdXN0IHVzZXMgdGhhdCBmb3IgZWFzaWVyIG1haW50ZW5hbmNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBjb21iaW5pbmcgY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgLyp1bnNpZ25lZCBieXRlKi8gbWVyZ2VPcmRlcmVkKGNoYXJbXSBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5leHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzT3JkZXJlZCkgeworICAgICAgICAgICAgaW50IHI7CisgICAgICAgICAgICBpbnQgLyp1bnNpZ25lZCBieXRlKi8gY2MsIHRyYWlsQ0M9MDsKKyAgICAgICAgICAgIGJvb2xlYW4gYWRqYWNlbnQ7CisgICAgICAgIAorICAgICAgICAgICAgYWRqYWNlbnQ9IGN1cnJlbnQ9PW5leHQ7CisgICAgICAgICAgICBOZXh0Q0NBcmdzIG5jQXJncyA9IG5ldyBOZXh0Q0NBcmdzKCk7CisgICAgICAgICAgICBuY0FyZ3Muc291cmNlID0gZGF0YTsKKyAgICAgICAgICAgIG5jQXJncy5uZXh0ICAgPSBuZXh0OworICAgICAgICAgICAgbmNBcmdzLmxpbWl0ICA9IGxpbWl0OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihzdGFydCE9Y3VycmVudCB8fCAhaXNPcmRlcmVkKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlKG5jQXJncy5uZXh0PG5jQXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBjYz1nZXROZXh0Q0MobmNBcmdzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2M9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgbm90IGJ1YmJsZSBiYWNrIAorICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxDQz0wOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYWRqYWNlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50PW5jQXJncy5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2N1cnJlbnQrK109bmNBcmdzLmM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobmNBcmdzLmMyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbY3VycmVudCsrXT1uY0FyZ3MuYzI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYoaXNPcmRlcmVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0PWN1cnJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByPWN1cnJlbnQrKG5jQXJncy5jMj09MCA/IDEgOiAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9aW5zZXJ0T3JkZXJlZChzb3VyY2Usc3RhcnQsIGN1cnJlbnQsIHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jQXJncy5jLCBuY0FyZ3MuYzIsIGNjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQ9cjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihuY0FyZ3MubmV4dD09bmNBcmdzLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gd2Uga25vdyB0aGUgY2Mgb2YgdGhlIGxhc3QgY29kZSBwb2ludCAKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJhaWxDQzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYoIWFkamFjZW50KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIHNlY29uZCBzdHJpbmcgcGFydCAKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlW2N1cnJlbnQrK109ZGF0YVtuY0FyZ3MubmV4dCsrXTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZShuY0FyZ3MubmV4dCE9bmNBcmdzLmxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgbmNBcmdzLmxpbWl0PWN1cnJlbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFByZXZBcmdzIHByZXZBcmdzID0gbmV3IFByZXZBcmdzKCk7CisgICAgICAgICAgICAgICAgcHJldkFyZ3Muc3JjICAgPSBkYXRhOworICAgICAgICAgICAgICAgIHByZXZBcmdzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcHJldkFyZ3MuY3VycmVudCA9ICBuY0FyZ3MubGltaXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFByZXZDQyhwcmV2QXJncyk7CisgICAgICAgICAgICB9CisKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IC8qdW5zaWduZWQgYnl0ZSovIG1lcmdlT3JkZXJlZChjaGFyW10gc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBuZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbWl0KSB7CisgICAgICAgIHJldHVybiBtZXJnZU9yZGVyZWQoc291cmNlLHN0YXJ0LGN1cnJlbnQsZGF0YSxuZXh0LGxpbWl0LHRydWUpOworICAgIH0gCisKKyAgICAKKyAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjaGVja0ZDRChjaGFyW10gc3JjLGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisKKyAgICAgICAgY2hhciBmY2QxNixjLGMyOworICAgICAgICBpbnQgcHJldkNDPTAsIGNjOworICAgICAgICBpbnQgaSA9c3JjU3RhcnQsIGxlbmd0aCA9IHNyY0xpbWl0OworICAgIAorICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgIGlmKGk9PWxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKGM9c3JjW2krK10pPE1JTl9XSVRIX0xFQURfQ0MpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPShpbnQpLWM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKChmY2QxNj1nZXRGQ0QxNihjKSk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPTA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjaGVjayBvbmUgYWJvdmUtbWluaW11bSwgcmVsZXZhbnQgY29kZSB1bml0IAorICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgLy8gYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgZmNkMTYgCisgICAgICAgICAgICAgICAgaWYoaSE9bGVuZ3RoICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW2ldKSkgeworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgIGZjZDE2PWdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkMTYsIGMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBmY2QxNj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsgLyogZXhjbHVkZWQ6IGZjZDE2PT0wICovCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHByZXZDQyBoYXMgdmFsdWVzIGZyb20gdGhlIGZvbGxvd2luZyByYW5nZXM6CisgICAgICAgICAgICAvLyAwLi4weGZmIC10aGUgcHJldmlvdXMgdHJhaWwgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAvLyA8MCAgICAgIC10aGUgbmVnYXRpdmUgdmFsdWUgb2YgdGhlIHByZXZpb3VzIGNvZGUgdW5pdDsKKyAgICAgICAgICAgIC8vICAgICAgICAgIHRoYXQgY29kZSB1bml0IHdhcyA8TUlOX1dJVEhfTEVBRF9DQyBhbmQgaXRzIGdldEZDRDE2KCkKKyAgICAgICAgICAgIC8vICAgICAgICAgIHdhcyBkZWZlcnJlZCBzbyB0aGF0IGF2ZXJhZ2UgdGV4dCBpcyBjaGVja2VkIGZhc3RlcgorICAgICAgICAgICAgLy8KKyAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBjb21iaW5pbmcgb3JkZXIgCisgICAgICAgICAgICBjYz0oaW50KShmY2QxNj4+OCk7CisgICAgICAgICAgICBpZihjYyE9MCkgeworICAgICAgICAgICAgICAgIGlmKHByZXZDQzwwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgd2FzIDxfTk9STV9NSU5fV0lUSF9MRUFEX0NDLCAKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBnZXQgaXRzIHRyYWlsIGNjIAorICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICBpZighbnhfY29udGFpbnMobngsIChpbnQpLXByZXZDQykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KShGQ0RUcmllSW1wbC5mY2RUcmllLmdldEJNUFZhbHVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpLXByZXZDQykmMHhmZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9MDsgLyogZXhjbHVkZWQ6IGZjZDE2PT0wICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJldkNDPShpbnQpKGZjZDE2JjB4ZmYpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWluTm9NYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBxY01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpeworCisgICAgICAgIGludCBjY09yUUNNYXNrOworICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgY2hhciBjLCBjMjsKKyAgICAgICAgY2hhciBjYywgcHJldkNDOworICAgICAgICBsb25nIHFjTm9ybTMyOworICAgICAgICBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgcmVzdWx0OworICAgICAgICBDb21wb3NlUGFydEFyZ3MgYXJncyA9IG5ldyBDb21wb3NlUGFydEFyZ3MoKTsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA7CisgICAgICAgIGludCBzdGFydCA9IHNyY1N0YXJ0OworICAgICAgICAKKyAgICAgICAgaWYoIWlzRGF0YUxvYWRlZCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuTUFZQkU7CisgICAgICAgIH0KKyAgICAgICAgLy8gaW5pdGlhbGl6ZSAKKyAgICAgICAgY2NPclFDTWFzaz1DQ19NQVNLfHFjTWFzazsKKyAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuWUVTOworICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICBpZihzcmNTdGFydD09c3JjTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKGM9c3JjW3NyY1N0YXJ0KytdKT49bWluTm9NYXliZSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCBub3JtMzI9Z2V0Tm9ybTMyKGMpKSAmIGNjT3JRQ01hc2spIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgb25lIGFib3ZlLW1pbmltdW0sIHJlbGV2YW50IGNvZGUgdW5pdCAKKyAgICAgICAgICAgIGlmKGlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLy8gYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyIAorICAgICAgICAgICAgICAgIGlmKHNyY1N0YXJ0IT1zcmNMaW1pdCYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3NyY1N0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytzcmNTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMixjMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAvKiBleGNsdWRlZDogbm9ybTMyPT0wICovCisgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjaGVjayB0aGUgY29tYmluaW5nIG9yZGVyIAorICAgICAgICAgICAgY2M9KGNoYXIpKChub3JtMzI+PkNDX1NISUZUKSYweEZGKTsKKyAgICAgICAgICAgIGlmKGNjIT0wICYmIGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLk5POworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJldkNDPWNjOworICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgZm9yICJubyIgb3IgIm1heWJlIiBxdWljayBjaGVjayBmbGFncyAKKyAgICAgICAgICAgIHFjTm9ybTMyID0gbm9ybTMyICYgcWNNYXNrOworICAgICAgICAgICAgaWYoKHFjTm9ybTMyJiBRQ19BTllfTk8pPj0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0PSBOb3JtYWxpemVyLk5POworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIGlmKHFjTm9ybTMyIT0wKSB7CisgICAgICAgICAgICAgICAgLy8gIm1heWJlIiBjYW4gb25seSBvY2N1ciBmb3IgTkZDIGFuZCBORktDIAorICAgICAgICAgICAgICAgIGlmKGFsbG93TWF5YmUpeworICAgICAgICAgICAgICAgICAgICByZXN1bHQ9Tm9ybWFsaXplci5NQVlCRTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsaXplIGEgc2VjdGlvbiBhcm91bmQgaGVyZSB0byBzZWUgaWYgaXQgaXMgcmVhbGx5IAorICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemVkIG9yIG5vdCAKKyAgICAgICAgICAgICAgICAgICAgaW50IHByZXZTdGFydGVyOworICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrOworICAgIAorICAgICAgICAgICAgICAgICAgICBkZWNvbXBRQ01hc2s9KHFjTWFzazw8MikmMHhmOyAvLyBkZWNvbXBvc2l0aW9uIHF1aWNrIGNoZWNrIG1hc2sgCisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIHByZXZpb3VzIHN0YXJ0ZXIgCisKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHByZXZTdGFydGVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIAorICAgICAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1zcmNTdGFydC0xOyAKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShzcmNbcHJldlN0YXJ0ZXJdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FmZSBiZWNhdXNlIHVucGFpcmVkIHN1cnJvZ2F0ZXMgZG8gbm90IHJlc3VsdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluICJtYXliZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tcHJldlN0YXJ0ZXI7IAorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9ZmluZFByZXZpb3VzU3RhcnRlcihzcmMsIHN0YXJ0LCBwcmV2U3RhcnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY09yUUNNYXNrLCBkZWNvbXBRQ01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpbWluTm9NYXliZSk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgdHJ1ZSBzdGFydGVyIGluIFtzcmMuLmxpbWl0WyAtIG1vZGlmaWVzIAorICAgICAgICAgICAgICAgICAgICAvLyBzcmMgdG8gcG9pbnQgdG8gdGhlIG5leHQgc3RhcnRlciAKKyAgICAgICAgICAgICAgICAgICAgc3JjU3RhcnQ9ZmluZE5leHRTdGFydGVyKHNyYyxzcmNTdGFydCwgc3JjTGltaXQsIHFjTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbXBRQ01hc2ssKGNoYXIpIG1pbk5vTWF5YmUpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy9zZXQgdGhlIGFyZ3MgZm9yIGNvbXBvc2UgcGFydAorICAgICAgICAgICAgICAgICAgICBhcmdzLnByZXZDQyA9IHByZXZDQzsKKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGRlY29tcG9zZSBhbmQgcmVjb21wb3NlIFtwcmV2U3RhcnRlci4uc3JjWyAKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyID0gY29tcG9zZVBhcnQoYXJncyxwcmV2U3RhcnRlcixzcmMsc3JjU3RhcnQsc3JjTGltaXQsb3B0aW9ucyxueCk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgdGhlIG5vcm1hbGl6ZWQgdmVyc2lvbiB3aXRoIHRoZSBvcmlnaW5hbCAKKyAgICAgICAgICAgICAgICAgICAgaWYoMCE9c3RyQ29tcGFyZShidWZmZXIsMCxhcmdzLmxlbmd0aCxzcmMscHJldlN0YXJ0ZXIsc3JjU3RhcnQsIGZhbHNlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuTk87IC8vIG5vcm1hbGl6YXRpb24gZGlmZmVycyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGFmdGVyIHRoZSBuZXh0IHN0YXJ0ZXIgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSAKKyAKKyAgICAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKKyAgICAvLyBtYWtlIE5GRCAmIE5GS0QgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXREZWNvbXBvc2l0aW9uKGludCBjIC8qVVRGLTMyKi8gLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAKKyAgICAgICAgaWYoIChVTlNJR05FRF9JTlRfTUFTSyAmIGMpPD0weDEwZmZmZikgeworICAgICAgICAgICAgbG9uZyAvKnVuc2lnbmVkKi8gbm9ybTMyOworICAgICAgICAgICAgaW50IHFjTWFzazsKKyAgICAgICAgICAgIGludCBtaW5Ob01heWJlOworICAgICAgICAgICAgaW50IGxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgIC8vIGluaXRpYWxpemUgCisgICAgICAgICAgICBpZighY29tcGF0KSB7CisgICAgICAgICAgICAgICAgbWluTm9NYXliZT0oaW50KWluZGV4ZXNbSU5ERVhfTUlOX05GRF9OT19NQVlCRV07CisgICAgICAgICAgICAgICAgcWNNYXNrPVFDX05GRDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWluTm9NYXliZT0oaW50KWluZGV4ZXNbSU5ERVhfTUlOX05GS0RfTk9fTUFZQkVdOworICAgICAgICAgICAgICAgIHFjTWFzaz1RQ19ORktEOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoYzxtaW5Ob01heWJlKSB7CisgICAgICAgICAgICAgICAgLy8gdHJpdmlhbCBjYXNlIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogZGF0YSBsb29rdXAgKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYyk7CisgICAgICAgICAgICBpZigobm9ybTMyJnFjTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBzaW1wbGUgY2FzZTogbm8gZGVjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgIGlmKGM8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFswXT0oY2hhciljOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09VVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbMV09VVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLyogSGFuZ3VsIHN5bGxhYmxlOiBkZWNvbXBvc2UgYWxnb3JpdGhtaWNhbGx5ICovCisgICAgICAgICAgICAgICAgY2hhciBjMjsKKyAgICAKKyAgICAgICAgICAgICAgICBjLT1IQU5HVUxfQkFTRTsKKyAgICAKKyAgICAgICAgICAgICAgICBjMj0oY2hhcikoYyVKQU1PX1RfQ09VTlQpOworICAgICAgICAgICAgICAgIGMvPUpBTU9fVF9DT1VOVDsKKyAgICAgICAgICAgICAgICBpZihjMj4wKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT49MykgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFsyXT0oY2hhcikoSkFNT19UX0JBU0UrYzIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0zOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFsxXT0oY2hhcikoSkFNT19WX0JBU0UrYyVKQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgICAgICBkZXN0WzBdPShjaGFyKShKQU1PX0xfQkFTRStjL0pBTU9fVl9DT1VOVCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGMgZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIGV4dHJhIAorICAgICAgICAgICAgICAgICAqIGRhdGEgCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IHAsIGxpbWl0OworICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAgICAgLyogdGhlIGluZGV4IGludG8gZXh0cmEgZGF0YSBhcnJheSovICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIHFjTWFzaywgYXJncyk7CisgICAgICAgICAgICAgICAgaWYoYXJncy5sZW5ndGg8PWRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsaW1pdD1wK2FyZ3MubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RTdGFydCsrXT1leHRyYURhdGFbcCsrXTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZShwPGxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3MubGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBkZWNvbXBvc2UoY2hhcltdIHNyYyxpbnQgc3JjU3RhcnQsaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCxpbnRbXSBvdXRUcmFpbENDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzNdOworICAgICAgICBpbnQgcHJldlNyYzsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGludCBjY09yUUNNYXNrLCBxY01hc2s7CisgICAgICAgIGludCByZW9yZGVyU3RhcnRJbmRleCwgbGVuZ3RoOworICAgICAgICBjaGFyIGMsIGMyLCBtaW5Ob01heWJlOworICAgICAgICBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBjYywgcHJldkNDLCB0cmFpbENDOworICAgICAgICBjaGFyW10gcDsKKyAgICAgICAgaW50IHBTdGFydDsKKyAgICAgICAgaW50IGRlc3RJbmRleCA9IGRlc3RTdGFydDsKKyAgICAgICAgaW50IHNyY0luZGV4ID0gc3JjU3RhcnQ7CisgICAgICAgIGlmKCFjb21wYXQpIHsKKyAgICAgICAgICAgIG1pbk5vTWF5YmU9KGNoYXIpaW5kZXhlc1tJTkRFWF9NSU5fTkZEX05PX01BWUJFXTsKKyAgICAgICAgICAgIHFjTWFzaz1RQ19ORkQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtaW5Ob01heWJlPShjaGFyKWluZGV4ZXNbSU5ERVhfTUlOX05GS0RfTk9fTUFZQkVdOworICAgICAgICAgICAgcWNNYXNrPVFDX05GS0Q7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogaW5pdGlhbGl6ZSAqLworICAgICAgICBjY09yUUNNYXNrPUNDX01BU0t8cWNNYXNrOworICAgICAgICByZW9yZGVyU3RhcnRJbmRleD0wOworICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgbm9ybTMyPTA7CisgICAgICAgIGM9MDsKKyAgICAgICAgcFN0YXJ0PTA7CisgICAgICAgIAorICAgICAgICBjYz10cmFpbENDPS0xOy8vaW5pdGlhbGl6ZSB0byBib2d1cyB2YWx1ZQorICAgICAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBjb3VudCBjb2RlIHVuaXRzIGJlbG93IHRoZSBtaW5pbXVtIG9yIHdpdGggaXJyZWxldmFudCBkYXRhIGZvciAKKyAgICAgICAgICAgICAqIHRoZSBxdWljayBjaGVjayAKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHJldlNyYz1zcmNJbmRleDsKKworICAgICAgICAgICAgd2hpbGUoc3JjSW5kZXghPXNyY0xpbWl0ICYmKChjPXNyY1tzcmNJbmRleF0pPG1pbk5vTWF5YmUgfHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChub3JtMzI9Z2V0Tm9ybTMyKGMpKSZjY09yUUNNYXNrKT09MCkpeworICAgICAgICAgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgICAgICsrc3JjSW5kZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGNvcHkgdGhlc2UgY29kZSB1bml0cyBhbGwgYXQgb25jZSAqLworICAgICAgICAgICAgaWYoc3JjSW5kZXghPXByZXZTcmMpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9KGludCkoc3JjSW5kZXgtcHJldlNyYyk7CisgICAgICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMscHJldlNyYyxkZXN0LGRlc3RJbmRleCxsZW5ndGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogZW5kIG9mIHNvdXJjZSByZWFjaGVkPyAqLworICAgICAgICAgICAgaWYoc3JjSW5kZXg9PXNyY0xpbWl0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBjIGFscmVhZHkgY29udGFpbnMgKnNyYyBhbmQgbm9ybTMyIGlzIHNldCBmb3IgaXQsIGluY3JlbWVudCBzcmMqLworICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBnZW5lcmFsbHksIHNldCBwIGFuZCBsZW5ndGggdG8gdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nCisgICAgICAgICAgICAgKiBpbiBzaW1wbGUgY2FzZXMsIHA9PU5VTEwgYW5kIChjLCBjMikgd2lsbCBob2xkIHRoZSBsZW5ndGggY29kZSAKKyAgICAgICAgICAgICAqIHVuaXRzIHRvIGFwcGVuZCBpbiBhbGwgY2FzZXMsIHNldCBjYyB0byB0aGUgbGVhZCBhbmQgdHJhaWxDQyB0byAKKyAgICAgICAgICAgICAqIHRoZSB0cmFpbCBjb21iaW5pbmcgY2xhc3MKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiB0aGUgZm9sbG93aW5nIG1lcmdlLXNvcnQgb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGludG8gdGhlIAorICAgICAgICAgICAgICogcHJlY2VkaW5nLCBjYW5vbmljYWxseSBvcmRlcmVkIHJlc3VsdCB0ZXh0IHdpbGwgdXNlIHRoZSAKKyAgICAgICAgICAgICAqIG9wdGltaXplZCBpbnNlcnRPcmRlcmVkKCkKKyAgICAgICAgICAgICAqIGlmIHRoZXJlIGlzIG9ubHkgb25lIHNpbmdsZSBjb2RlIHBvaW50IHRvIHByb2Nlc3M7CisgICAgICAgICAgICAgKiB0aGlzIGlzIGluZGljYXRlZCB3aXRoIHA9PU5VTEwsIGFuZCAoYywgYzIpIGlzIHRoZSBjaGFyYWN0ZXIgdG8gCisgICAgICAgICAgICAgKiBpbnNlcnQKKyAgICAgICAgICAgICAqICgoYywgMCkgZm9yIGEgQk1QIGNoYXJhY3RlciBhbmQgKGxlYWQgc3Vycm9nYXRlLCB0cmFpbCBzdXJyb2dhdGUpCisgICAgICAgICAgICAgKiBmb3IgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcikKKyAgICAgICAgICAgICAqIG90aGVyd2lzZSwgcFtsZW5ndGhdIGlzIG1lcmdlZCBpbiB3aXRoIF9tZXJnZU9yZGVyZWQoKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgaWYobnhfY29udGFpbnMobngsIGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSGFuZ3VsIHN5bGxhYmxlOiBkZWNvbXBvc2UgYWxnb3JpdGhtaWNhbGx5IAorICAgICAgICAgICAgICAgICAgICBwPWJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAgICAgcFN0YXJ0PTA7CisgICAgICAgICAgICAgICAgICAgIGNjPXRyYWlsQ0M9MDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgYy09SEFOR1VMX0JBU0U7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGMyPShjaGFyKShjJUpBTU9fVF9DT1VOVCk7CisgICAgICAgICAgICAgICAgICAgIGMvPUpBTU9fVF9DT1VOVDsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzI+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyWzJdPShjaGFyKShKQU1PX1RfQkFTRStjMik7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlclsxXT0oY2hhcikoSkFNT19WX0JBU0UrYyVKQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbMF09KGNoYXIpKEpBTU9fTF9CQVNFK2MvSkFNT19WX0NPVU5UKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGlzTm9ybTMyUmVndWxhcihub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAKKyAgICAgICAgICAgICAgICAgICAgaWYoc3JjSW5kZXghPXNyY0xpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3JjSW5kZXhdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBkZWNvbXBvc2l0aW9uIGFuZCB0aGUgbGVhZCBhbmQgdHJhaWwgY2MncyAqLworICAgICAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQ6IG5vcm0zMj09MCAqLworICAgICAgICAgICAgICAgICAgICBjYz10cmFpbENDPTA7CisgICAgICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKG5vcm0zMiZxY01hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgZG9lcyBub3QgZGVjb21wb3NlICovCisgICAgICAgICAgICAgICAgICAgIGNjPXRyYWlsQ0M9KGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykgJiAobm9ybTMyPj5DQ19TSElGVCkpOworICAgICAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICAgICAgICAgIHBTdGFydD0tMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgKiBleHRyYSBkYXRhIAorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcFN0YXJ0PWRlY29tcG9zZShub3JtMzIsIHFjTWFzaywgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgcD1leHRyYURhdGE7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1hcmcubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBjYz1hcmcuY2M7CisgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9YXJnLnRyYWlsQ0M7CisgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogZmFzdHBhdGggYSBzaW5nbGUgY29kZSB1bml0IGZyb20gZGVjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgYz1wW3BTdGFydF07CisgICAgICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICAgICAgcD1udWxsOworICAgICAgICAgICAgICAgICAgICAgICAgcFN0YXJ0PS0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYXBwZW5kIHRoZSBkZWNvbXBvc2l0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIsIGFzc3VtZSAKKyAgICAgICAgICAgICAqIGxlbmd0aD4wIAorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZigoZGVzdEluZGV4K2xlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgIGludCByZW9yZGVyU3BsaXQ9ZGVzdEluZGV4OworICAgICAgICAgICAgICAgIGlmKHA9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZmFzdHBhdGg6IHNpbmdsZSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIGlmKGNjIT0wICYmIGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogKGMsIGMyKSBpcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0IHRvIHRoZSBwcmVjZWRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAqICB0ZXh0IAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9aW5zZXJ0T3JkZXJlZChkZXN0LHJlb3JkZXJTdGFydEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVvcmRlclNwbGl0LCBkZXN0SW5kZXgsIGMsIGMyLCBjYyk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBqdXN0IGFwcGVuZCAoYywgYzIpICovCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYzIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGdlbmVyYWw6IG11bHRpcGxlIGNvZGUgcG9pbnRzIChvcmRlcmVkIGJ5IHRoZW1zZWx2ZXMpIAorICAgICAgICAgICAgICAgICAgICAgKiBmcm9tIGRlY29tcG9zaXRpb24gCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZihjYyE9MCAmJiBjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBkZWNvbXBvc2l0aW9uIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgcHJlY2VkaW5nIHRleHQgCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxDQz1tZXJnZU9yZGVyZWQoZGVzdCxyZW9yZGVyU3RhcnRJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW9yZGVyU3BsaXQscCwgcFN0YXJ0LHBTdGFydCtsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgdGhlIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1wW3BTdGFydCsrXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoLS1sZW5ndGg+MCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcHJldkNDPXRyYWlsQ0M7CisgICAgICAgICAgICBpZihwcmV2Q0M9PTApIHsKKyAgICAgICAgICAgICAgICByZW9yZGVyU3RhcnRJbmRleD1kZXN0SW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgb3V0VHJhaWxDQ1swXT1wcmV2Q0M7CisKKyAgICAgICAgcmV0dXJuIGRlc3RJbmRleCAtIGRlc3RTdGFydDsKKyAgICB9CisgICAgCisgICAgLyogbWFrZSBORkMgJiBORktDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIE5leHRDb21iaW5pbmdBcmdzeworICAgICAgICBjaGFyW10gc291cmNlOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIC8vaW50IGxpbWl0OworICAgICAgICBjaGFyIGM7CisgICAgICAgIGNoYXIgYzI7CisgICAgICAgIGludC8qdW5zaWduZWQqLyBjb21iaW5pbmdJbmRleDsKKyAgICAgICAgY2hhciAvKnVuc2lnbmVkIGJ5dGUqLyBjYzsKKyAgICB9CisgICAgCisgICAgLyogZ2V0IHRoZSBjb21wb3NpdGlvbiBwcm9wZXJ0aWVzIG9mIHRoZSBuZXh0IGNoYXJhY3RlciAqLworICAgIHByaXZhdGUgc3RhdGljIGludCAvKnVuc2lnbmVkKi8gICAgZ2V0TmV4dENvbWJpbmluZyhOZXh0Q29tYmluaW5nQXJncyBhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgIGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyOyAKKyAgICAgICAgaW50IGNvbWJpbmVGbGFnczsKKyAgICAgICAgLyogZ2V0IHByb3BlcnRpZXMgKi8KKyAgICAgICAgYXJncy5jPWFyZ3Muc291cmNlW2FyZ3Muc3RhcnQrK107CisgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYXJncy5jKTsKKyAgICAgICAgCisgICAgICAgIC8qIHByZXNldCBvdXRwdXQgdmFsdWVzIGZvciBtb3N0IGNoYXJhY3RlcnMgKi8KKyAgICAgICAgYXJncy5jMj0wOworICAgICAgICBhcmdzLmNvbWJpbmluZ0luZGV4PTA7CisgICAgICAgIGFyZ3MuY2M9MDsKKyAgICAgICAgCisgICAgICAgIGlmKChub3JtMzImKENDX01BU0t8Q09NQklORVNfQU5ZKSk9PTApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYoaXNOb3JtMzJSZWd1bGFyKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvKiBzZXQgY2MgZXRjLiBiZWxvdyAqLworICAgICAgICAgICAgfSBlbHNlIGlmKGlzTm9ybTMySGFuZ3VsT3JKYW1vKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvKiBhIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiBjb250YWluZWQgSmFtb3MgKi8KKyAgICAgICAgICAgICAgICBhcmdzLmNvbWJpbmluZ0luZGV4PShpbnQpKChVTlNJR05FRF9JTlRfTUFTSykmKDB4ZmZmMHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vcm0zMj4+RVhUUkFfU0hJRlQpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpKG5vcm0zMiZDT01CSU5FU19BTlkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgICAgICBpZihhcmdzLnN0YXJ0IT1saW1pdCAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGFyZ3MuYzI9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW2FyZ3Muc3RhcnRdKSkgeworICAgICAgICAgICAgICAgICAgICArK2FyZ3Muc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGFyZ3MuYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYXJncy5jLCBhcmdzLmMyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiBleGNsdWRlZDogbm9ybTMyPT0wICovCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBhcmdzLmNjPSAoY2hhcikoKG5vcm0zMj4+Q0NfU0hJRlQpJjB4ZmYpOworICAgICAgICAKKyAgICAgICAgICAgIGNvbWJpbmVGbGFncz0oaW50KShub3JtMzImQ09NQklORVNfQU5ZKTsKKyAgICAgICAgICAgIGlmKGNvbWJpbmVGbGFncyE9MCkgeworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IGdldEV4dHJhRGF0YUluZGV4KG5vcm0zMik7CisgICAgICAgICAgICAgICAgYXJncy5jb21iaW5pbmdJbmRleD1pbmRleD4wID8gZXh0cmFEYXRhWyhpbmRleC0xKV0gOjA7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICByZXR1cm4gY29tYmluZUZsYWdzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogZ2l2ZW4gYSBjb21wb3NpdGlvbi1yZXN1bHQgc3RhcnRlciAoYywgYzIpIC0gd2hpY2ggbWVhbnMgaXRzIGNjPT0wLAorICAgICAqIGl0IGNvbWJpbmVzIGZvcndhcmQsIGl0IGhhcyBleHRyYSBkYXRhLCBpdHMgbm9ybTMyIT0wLAorICAgICAqIGl0IGlzIG5vdCBhIEhhbmd1bCBvciBKYW1vLAorICAgICAqIGdldCBqdXN0IGl0cyBjb21iaW5lRndkSW5kZXgKKyAgICAgKgorICAgICAqIG5vcm0zMihjKSBpcyBzcGVjaWFsIGlmIGFuZCBvbmx5IGlmIGMyIT0wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50Lyp1bnNpZ25lZCovIGdldENvbWJpbmluZ0luZGV4RnJvbVN0YXJ0ZXIoY2hhciBjLGNoYXIgYzIpeworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsKKyAgICAKKyAgICAgICAgbm9ybTMyPWdldE5vcm0zMihjKTsKKyAgICAgICAgaWYoYzIhPTApIHsKKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXh0cmFEYXRhWyhnZXRFeHRyYURhdGFJbmRleChub3JtMzIpLTEpXTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBGaW5kIHRoZSByZWNvbXBvc2l0aW9uIHJlc3VsdCBmb3IKKyAgICAgKiBhIGZvcndhcmQtY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAqIChzcGVjaWZpZWQgd2l0aCBhIHBvaW50ZXIgdG8gaXRzIHBhcnQgb2YgdGhlIGNvbWJpbmluZ1RhYmxlW10pCisgICAgICogYW5kIGEgYmFja3dhcmQtY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAqIChzcGVjaWZpZWQgd2l0aCBpdHMgY29tYmluZUJhY2tJbmRleCkuCisgICAgICoKKyAgICAgKiBJZiB0aGVzZSB0d28gY2hhcmFjdGVycyBjb21iaW5lLCB0aGVuIHNldCAodmFsdWUsIHZhbHVlMikKKyAgICAgKiB3aXRoIHRoZSBjb2RlIHVuaXQocykgb2YgdGhlIGNvbXBvc2l0aW9uIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIFJldHVybiB2YWx1ZToKKyAgICAgKiAwICAgIGRvIG5vdCBjb21iaW5lCisgICAgICogMSAgICBjb21iaW5lCisgICAgICogPjEgICBjb21iaW5lLCBhbmQgdGhlIGNvbXBvc2l0aW9uIGlzIGEgZm9yd2FyZC1jb21iaW5pbmcgc3RhcnRlcgorICAgICAqCisgICAgICogU2VlIHVub3JtaW1wLmggZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbXBvc2l0aW9uIHRhYmxlIGZvcm1hdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKnVuc2lnbmVkKi8gY29tYmluZShjaGFyW110YWJsZSxpbnQgdGFibGVTdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaW5nZWQqLyBjb21iaW5lQmFja0luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb3V0VmFsdWVzKSB7CisgICAgICAgIGludC8qdW5zaWduZWQqLyBrZXk7CisgICAgICAgIGludCB2YWx1ZSx2YWx1ZTI7CisgICAgICAgIAorICAgICAgICBpZihvdXRWYWx1ZXMubGVuZ3RoPDIpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiBzZWFyY2ggaW4gdGhlIHN0YXJ0ZXIncyBjb21wb3NpdGlvbiB0YWJsZSAqLworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGtleT10YWJsZVt0YWJsZVN0YXJ0KytdOworICAgICAgICAgICAgaWYoa2V5Pj1jb21iaW5lQmFja0luZGV4KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0YWJsZVN0YXJ0Kz0gKCh0YWJsZVt0YWJsZVN0YXJ0XSYweDgwMDApICE9IDApPyAyIDogMTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBtYXNrIG9mZiBiaXQgMTUsIHRoZSBsYXN0LWVudHJ5LWluLXRoZS1saXN0IGZsYWcgKi8KKyAgICAgICAgaWYoKGtleSYweDdmZmYpPT1jb21iaW5lQmFja0luZGV4KSB7CisgICAgICAgICAgICAvKiBmb3VuZCEgY29tYmluZSEgKi8KKyAgICAgICAgICAgIHZhbHVlPXRhYmxlW3RhYmxlU3RhcnRdOworICAgIAorICAgICAgICAgICAgLyogaXMgdGhlIGNvbXBvc2l0aW9uIGEgc3RhcnRlciB0aGF0IGNvbWJpbmVzIGZvcndhcmQ/ICovCisgICAgICAgICAgICBrZXk9KGludCkoKFVOU0lHTkVEX0lOVF9NQVNLKSYoKHZhbHVlJjB4MjAwMCkrMSkpOworICAgIAorICAgICAgICAgICAgLyogZ2V0IHRoZSBjb21wb3NpdGlvbiByZXN1bHQgY29kZSBwb2ludCBmcm9tIHRoZSB2YXJpYWJsZS1sZW5ndGggCisgICAgICAgICAgICAgKiByZXN1bHQgdmFsdWUgCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKCh2YWx1ZSYweDgwMDApICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZigodmFsdWUmMHg0MDAwKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHN1cnJvZ2F0ZSBwYWlyIGNvbXBvc2l0aW9uIHJlc3VsdCAqLworICAgICAgICAgICAgICAgICAgICB2YWx1ZT0oaW50KSgoVU5TSUdORURfSU5UX01BU0spJigodmFsdWUmMHgzZmYpfDB4ZDgwMCkpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZTI9dGFibGVbdGFibGVTdGFydCsxXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBCTVAgY29tcG9zaXRpb24gcmVzdWx0IFUrMjAwMC4uVStmZmZmICovCisgICAgICAgICAgICAgICAgICAgIHZhbHVlPXRhYmxlW3RhYmxlU3RhcnQrMV07CisgICAgICAgICAgICAgICAgICAgIHZhbHVlMj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogQk1QIGNvbXBvc2l0aW9uIHJlc3VsdCBVKzAwMDAuLlUrMWZmZiAqLworICAgICAgICAgICAgICAgIHZhbHVlJj0weDFmZmY7CisgICAgICAgICAgICAgICAgdmFsdWUyPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRWYWx1ZXNbMF09dmFsdWU7CisgICAgICAgICAgICBvdXRWYWx1ZXNbMV09dmFsdWUyOyAgICAKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBub3QgZm91bmQgKi8KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFJlY29tcG9zZUFyZ3N7CisgICAgICAgIGNoYXJbXSBzb3VyY2U7CisgICAgICAgIGludCBzdGFydDsKKyAgICAgICAgaW50IGxpbWl0OworICAgIH0KKyAgICAvKgorICAgICAqIHJlY29tcG9zZSB0aGUgY2hhcmFjdGVycyBpbiBbcC4ubGltaXRbCisgICAgICogKHdoaWNoIGlzIGluIE5GRCAtIGRlY29tcG9zZWQgYW5kIGNhbm9uaWNhbGx5IG9yZGVyZWQpLAorICAgICAqIGFkanVzdCBsaW1pdCwgYW5kIHJldHVybiB0aGUgdHJhaWxpbmcgY2MKKyAgICAgKgorICAgICAqIHNpbmNlIGZvciBORktDIHdlIG1heSBnZXQgSmFtb3MgaW4gZGVjb21wb3NpdGlvbnMsIHdlIG5lZWQgdG8KKyAgICAgKiByZWNvbXBvc2UgdGhvc2UgdG9vCisgICAgICoKKyAgICAgKiBub3RlIHRoYXQgcmVjb21wb3NpdGlvbiBuZXZlciBsZW5ndGhlbnMgdGhlIHRleHQ6CisgICAgICogYW55IGNoYXJhY3RlciBjb25zaXN0cyBvZiBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHVuaXRzOworICAgICAqIGEgY29tcG9zaXRpb24gbWF5IGNvbnRhaW4gYXQgbW9zdCBvbmUgbW9yZSBjb2RlIHVuaXQgdGhhbiB0aGUgb3JpZ2luYWwgCisgICAgICogc3RhcnRlciwgd2hpbGUgdGhlIGNvbWJpbmluZyBtYXJrIHRoYXQgaXMgcmVtb3ZlZCBoYXMgYXQgbGVhc3Qgb25lIGNvZGUgCisgICAgICogdW5pdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXIvKnVuc2lnbmVkIGJ5dGUqLyByZWNvbXBvc2UoUmVjb21wb3NlQXJncyBhcmdzLCBpbnQgb3B0aW9ucywgVW5pY29kZVNldCBueCkgeworICAgICAgICBpbnQgIHJlbW92ZSwgcSwgcjsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyBjb21iaW5lRmxhZ3M7CisgICAgICAgIGludCAvKnVuc2lnbmVkKi8gY29tYmluZUZ3ZEluZGV4LCBjb21iaW5lQmFja0luZGV4OworICAgICAgICBpbnQgLyp1bnNpZ25lZCovIHJlc3VsdCwgdmFsdWU9MCwgdmFsdWUyPTA7CisgICAgICAgIGludCAvKnVuc2lnbmVkIGJ5dGUqLyAgcHJldkNDOworICAgICAgICBib29sZWFuIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk7CisgICAgICAgIGludCBzdGFydGVyOworICAgICAgICBpbnRbXSBvdXRWYWx1ZXMgPSBuZXcgaW50WzJdOworICAgICAgICBzdGFydGVyPS0xOyAgICAgICAgICAgICAgICAgICAvKiBubyBzdGFydGVyICovCisgICAgICAgIGNvbWJpbmVGd2RJbmRleD0wOyAgICAgICAgICAgIC8qIHdpbGwgbm90IGJlIHVzZWQgdW50aWwgc3RhcnRlciE9TlVMTCAqLworICAgICAgICBzdGFydGVySXNTdXBwbGVtZW50YXJ5PWZhbHNlOyAvKiB3aWxsIG5vdCBiZSB1c2VkIHVudGlsIHN0YXJ0ZXIhPU5VTEwgKi8KKyAgICAgICAgcHJldkNDPTA7CisgICAgICAgIAorICAgICAgICBOZXh0Q29tYmluaW5nQXJncyBuY0FyZyA9IG5ldyBOZXh0Q29tYmluaW5nQXJncygpOworICAgICAgICBuY0FyZy5zb3VyY2UgID0gYXJncy5zb3VyY2U7CisgICAgICAgIAorICAgICAgICBuY0FyZy5jYyAgICAgID0wOworICAgICAgICBuY0FyZy5jMiAgICAgID0wOyAgICAKKworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIG5jQXJnLnN0YXJ0ID0gYXJncy5zdGFydDsKKyAgICAgICAgICAgIGNvbWJpbmVGbGFncz1nZXROZXh0Q29tYmluaW5nKG5jQXJnLGFyZ3MubGltaXQsbngpOworICAgICAgICAgICAgY29tYmluZUJhY2tJbmRleD1uY0FyZy5jb21iaW5pbmdJbmRleDsKKyAgICAgICAgICAgIGFyZ3Muc3RhcnQgPSBuY0FyZy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoKChjb21iaW5lRmxhZ3MmQ09NQklORVNfQkFDSykhPTApICYmIHN0YXJ0ZXIhPS0xKSB7CisgICAgICAgICAgICAgICAgaWYoKGNvbWJpbmVCYWNrSW5kZXgmMHg4MDAwKSE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIGEgSmFtbyBWL1QsIHNlZSBpZiB3ZSBjYW4gY29tcG9zZSBpdCB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICogcHJldmlvdXMgY2hhcmFjdGVyIAorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogZm9yIHRoZSBQUkkgIzI5IGZpeCwgY2hlY2sgdGhhdCB0aGVyZSBpcyBubyBpbnRlcnZlbmluZyBjb21iaW5pbmcgbWFyayAqLworICAgICAgICAgICAgICAgICAgICBpZigob3B0aW9ucyZCRUZPUkVfUFJJXzI5KSE9MCB8fCBwcmV2Q0M9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZT0tMTsgLyogTlVMTCB3aGlsZSBubyBIYW5ndWwgY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGbGFncz0wOworICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYzI9YXJncy5zb3VyY2Vbc3RhcnRlcl07CisgICAgICAgICAgICAgICAgICAgICAgICBpZihjb21iaW5lQmFja0luZGV4PT0weGZmZjIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKYW1vIFYsIGNvbXBvc2Ugd2l0aCBwcmV2aW91cyBKYW1vIEwgYW5kIGZvbGxvd2luZyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBKYW1vIFQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYzI9KGNoYXIpKG5jQXJnLmMyLUpBTU9fTF9CQVNFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihuY0FyZy5jMjxKQU1PX0xfQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlPWFyZ3Muc3RhcnQtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYz0oY2hhcikoSEFOR1VMX0JBU0UrKG5jQXJnLmMyKkpBTU9fVl9DT1VOVCsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5jQXJnLmMtSkFNT19WX0JBU0UpKSpKQU1PX1RfQ09VTlQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhcmdzLnN0YXJ0IT1hcmdzLmxpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmNBcmcuYzI9KGNoYXIpKGFyZ3Muc291cmNlW2FyZ3Muc3RhcnRdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtSkFNT19UX0JBU0UpKTxKQU1PX1RfQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrYXJncy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jQXJnLmMrPW5jQXJnLmMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgcmVzdWx0IGlzIGFuIExWIHN5bGxhYmxlLCB3aGljaCBpcyBhIHN0YXJ0ZXIgKHVubGlrZSBMVlQpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUZsYWdzPUNPTUJJTkVTX0ZXRDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighbnhfY29udGFpbnMobngsIG5jQXJnLmMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT1uY0FyZy5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFpc0hhbmd1bFdpdGhvdXRKYW1vVChuY0FyZy5jKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tYXJncy5zdGFydDsgLyogdW5kbyB0aGUgKythcmdzLnN0YXJ0IGZyb20gcmVhZGluZyB0aGUgSmFtbyBUICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIG1vZGlmaWVkIGJ1dCBub3QgdXNlZCBhbnkgbW9yZSAtLSBjPSoocC0xKTsgLS0gcmUtcmVhZCB0aGUgSmFtbyBWL1QgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZT1hcmdzLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogTm9ybWFsbHksIHRoZSBmb2xsb3dpbmcgY2FuIG5vdCBvY2N1cjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFNpbmNlIHRoZSBpbnB1dCBpcyBpbiBORkQsIHRoZXJlIGFyZSBubyBIYW5ndWwgTFYgc3lsbGFibGVzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgSmFtbyBUIGNvdWxkIGNvbWJpbmUgd2l0aC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEFsbCBKYW1vIFRzIGFyZSBjb21iaW5lZCBhYm92ZSB3aGVuIGhhbmRsaW5nIEphbW8gVnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICogSG93ZXZlciwgYmVmb3JlIHRoZSBQUkkgIzI5IGZpeCwgdGhpcyBjYW4gb2NjdXIgZHVlIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhbiBpbnRlcnZlbmluZyBjb21iaW5pbmcgbWFyayBiZXR3ZWVuIHRoZSBIYW5ndWwgTFYgYW5kIHRoZSBKYW1vIFQuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSmFtbyBULCBjb21wb3NlIHdpdGggcHJldmlvdXMgSGFuZ3VsIHRoYXQgZG9lcyBub3QgaGF2ZSBhIEphbW8gVCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzSGFuZ3VsV2l0aG91dEphbW9UKG5jQXJnLmMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZy5jMis9bmNBcmcuYy1KQU1PX1RfQkFTRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIW54X2NvbnRhaW5zKG54LCBuY0FyZy5jMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZT1hcmdzLnN0YXJ0LTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT1uY0FyZy5jMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZihyZW1vdmUhPS0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmVtb3ZlIHRoZSBKYW1vKHMpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcT1yZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcj1hcmdzLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKHI8YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtxKytdPWFyZ3Muc291cmNlW3IrK107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc3RhcnQ9cmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MubGltaXQ9cTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZy5jMj0wOyAvKiBjMiBoZWxkICpzdGFydGVyIHRlbXBvcmFyaWx5ICovCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbWJpbmVGbGFncyE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbm90IHN0YXJ0ZXI9TlVMTCBiZWNhdXNlIHRoZSBjb21wb3NpdGlvbiBpcyBhIEhhbmd1bCBMViBzeWxsYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFuZCBtaWdodCBjb21iaW5lIG9uY2UgbW9yZSAoYnV0IG9ubHkgYmVmb3JlIHRoZSBQUkkgIzI5IGZpeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRvbmU/ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXJncy5zdGFydD09YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGNoYXIpcHJldkNDOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21wb3NpdGlvbiBpcyBhIEhhbmd1bCBMViBzeWxsYWJsZSB3aGljaCBpcyBhIHN0YXJ0ZXIgdGhhdCBjb21iaW5lcyBmb3J3YXJkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUZ3ZEluZGV4PTB4ZmZmMDsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNvbWJpbmVkOyBjb250aW51ZSB3aXRoIGxvb2tpbmcgZm9yIGNvbXBvc2l0aW9ucyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogbm93OiBjYz09MCBhbmQgdGhlIGNvbWJpbmluZyBpbmRleCBkb2VzIG5vdCBpbmNsdWRlIAorICAgICAgICAgICAgICAgICAgICAgKiAiZm9yd2FyZCIgLT4gdGhlIHJlc3Qgb2YgdGhlIGxvb3AgYm9keSB3aWxsIHJlc2V0IHN0YXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICogdG8gTlVMTDsgdGVjaG5pY2FsbHksIGEgY29tcG9zZWQgSGFuZ3VsIHN5bGxhYmxlIGlzIGEgCisgICAgICAgICAgICAgICAgICAgICAqIHN0YXJ0ZXIsIGJ1dCBpdCBkb2VzIG5vdCBjb21iaW5lIGZvcndhcmQgbm93IHRoYXQgd2UgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgKiBjb25zdW1lZCBhbGwgZWxpZ2libGUgSmFtb3M7IGZvciBKYW1vIFYvVCwgY29tYmluZUZsYWdzIAorICAgICAgICAgICAgICAgICAgICAgKiBkb2VzIG5vdCBjb250YWluIF9OT1JNX0NPTUJJTkVTX0ZXRAorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoCisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBzdGFydGVyIGlzIG5vdCBhIEhhbmd1bCBMViBvciBKYW1vIFYvVCBhbmQgKi8KKyAgICAgICAgICAgICAgICAgICAgISgoY29tYmluZUZ3ZEluZGV4JjB4ODAwMCkhPTApICYmCisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21iaW5pbmcgbWFyayBpcyBub3QgYmxvY2tlZCBhbmQgKi8KKyAgICAgICAgICAgICAgICAgICAgKChvcHRpb25zJkJFRk9SRV9QUklfMjkpIT0wID8KKyAgICAgICAgICAgICAgICAgICAgICAgIChwcmV2Q0MhPW5jQXJnLmNjIHx8IHByZXZDQz09MCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZDQzxuY0FyZy5jYyB8fCBwcmV2Q0M9PTApKSAmJgorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgc3RhcnRlciBhbmQgdGhlIGNvbWJpbmluZyBtYXJrIChjLCBjMikgZG8gY29tYmluZSAqLworICAgICAgICAgICAgICAgICAgICAwIT0ocmVzdWx0PWNvbWJpbmUoY29tYmluaW5nVGFibGUsY29tYmluZUZ3ZEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVCYWNrSW5kZXgsIG91dFZhbHVlcykpICYmCisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21wb3NpdGlvbiByZXN1bHQgaXMgbm90IGV4Y2x1ZGVkICovCisgICAgICAgICAgICAgICAgICAgICFueF9jb250YWlucyhueCwgKGNoYXIpdmFsdWUsIChjaGFyKXZhbHVlMikKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWU9b3V0VmFsdWVzWzBdOworICAgICAgICAgICAgICAgICAgICB2YWx1ZTI9b3V0VmFsdWVzWzFdOworICAgICAgICAgICAgICAgICAgICAvKiByZXBsYWNlIHRoZSBzdGFydGVyIHdpdGggdGhlIGNvbXBvc2l0aW9uLCByZW1vdmUgdGhlIAorICAgICAgICAgICAgICAgICAgICAgKiBjb21iaW5pbmcgbWFyayAKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJlbW92ZT0gbmNBcmcuYzI9PTAgPyBhcmdzLnN0YXJ0LTEgOiBhcmdzLnN0YXJ0LTI7IC8qIGluZGV4IHRvIHRoZSBjb21iaW5pbmcgbWFyayAqLworICAgIAorICAgICAgICAgICAgICAgICAgICAvKiByZXBsYWNlIHRoZSBzdGFydGVyIHdpdGggdGhlIGNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW3N0YXJ0ZXJdPShjaGFyKXZhbHVlOworICAgICAgICAgICAgICAgICAgICBpZihzdGFydGVySXNTdXBwbGVtZW50YXJ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZTIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBib3RoIGFyZSBzdXBwbGVtZW50YXJ5ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2Vbc3RhcnRlcisxXT0oY2hhcil2YWx1ZTI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21wb3NpdGlvbiBpcyBzaG9ydGVyIHRoYW4gdGhlIHN0YXJ0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG1vdmUgdGhlIGludGVybWVkaWF0ZSBjaGFyYWN0ZXJzIGZvcndhcmQgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcklzU3VwcGxlbWVudGFyeT1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxPXN0YXJ0ZXIrMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByPXErMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShyPHJlbW92ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtxKytdPWFyZ3Muc291cmNlW3IrK107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tcmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYodmFsdWUyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tcG9zaXRpb24gaXMgbG9uZ2VyIHRoYW4gdGhlIHN0YXJ0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICogbW92ZSB0aGUgaW50ZXJtZWRpYXRlIGNoYXJhY3RlcnMgYmFjayBvbmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRlbXBvcmFyaWx5IGluY3JlbWVudCBmb3IgdGhlIGxvb3AgYm91bmRhcnkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnRlcjsgCisgICAgICAgICAgICAgICAgICAgICAgICBxPXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHI9KytyZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShzdGFydGVyPHEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVstLXJdPWFyZ3Muc291cmNlWy0tcV07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT0oY2hhcil2YWx1ZTI7CisgICAgICAgICAgICAgICAgICAgICAgICAtLXN0YXJ0ZXI7IC8qIHVuZG8gdGhlIHRlbXBvcmFyeSBpbmNyZW1lbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogfSBlbHNlIHsgYm90aCBhcmUgb24gdGhlIEJNUCwgbm90aGluZyBtb3JlIHRvIGRvICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogcmVtb3ZlIHRoZSBjb21iaW5pbmcgbWFyayBieSBtb3ZpbmcgdGhlIGZvbGxvd2luZyB0ZXh0IAorICAgICAgICAgICAgICAgICAgICAgKiBvdmVyIGl0ICovCisgICAgICAgICAgICAgICAgICAgIGlmKHJlbW92ZTxhcmdzLnN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBxPXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHI9YXJncy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKHI8YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW3ErK109YXJncy5zb3VyY2VbcisrXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc3RhcnQ9cmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5saW1pdD1xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgcHJldkNDIGJlY2F1c2Ugd2UgcmVtb3ZlZCB0aGUgY29tYmluaW5nIG1hcmsgKi8KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogZG9uZT8gKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYXJncy5zdGFydD09YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKXByZXZDQzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBpcyB0aGUgY29tcG9zaXRpb24gYSBzdGFydGVyIHRoYXQgY29tYmluZXMgZm9yd2FyZD8gKi8KKyAgICAgICAgICAgICAgICAgICAgaWYocmVzdWx0PjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUZ3ZEluZGV4PWdldENvbWJpbmluZ0luZGV4RnJvbVN0YXJ0ZXIoKGNoYXIpdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcil2YWx1ZTIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyPS0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNvbWJpbmVkOyBjb250aW51ZSB3aXRoIGxvb2tpbmcgZm9yIGNvbXBvc2l0aW9ucyAqLworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBubyBjb21iaW5hdGlvbiB0aGlzIHRpbWUgKi8KKyAgICAgICAgICAgIHByZXZDQz1uY0FyZy5jYzsKKyAgICAgICAgICAgIGlmKGFyZ3Muc3RhcnQ9PWFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNoYXIpcHJldkNDOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogaWYgKGMsIGMyKSBkaWQgbm90IGNvbWJpbmUsIHRoZW4gY2hlY2sgaWYgaXQgaXMgYSBzdGFydGVyICovCisgICAgICAgICAgICBpZihuY0FyZy5jYz09MCkgeworICAgICAgICAgICAgICAgIC8qIGZvdW5kIGEgbmV3IHN0YXJ0ZXI7IGNvbWJpbmVGbGFncz09MCBpZiAoYywgYzIpIGlzIGV4Y2x1ZGVkICovCisgICAgICAgICAgICAgICAgaWYoKGNvbWJpbmVGbGFncyZDT01CSU5FU19GV0QpIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGl0IG1heSBjb21iaW5lIHdpdGggc29tZXRoaW5nLCBwcmVwYXJlIGZvciBpdCAqLworICAgICAgICAgICAgICAgICAgICBpZihuY0FyZy5jMj09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcklzU3VwcGxlbWVudGFyeT1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXI9YXJncy5zdGFydC0xOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcklzU3VwcGxlbWVudGFyeT1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXI9YXJncy5zdGFydC0yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGd2RJbmRleD1jb21iaW5lQmFja0luZGV4OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGl0IHdpbGwgbm90IGNvbWJpbmUgd2l0aCBhbnl0aGluZyAqLworICAgICAgICAgICAgICAgICAgICBzdGFydGVyPS0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZigob3B0aW9ucyZPUFRJT05TX0NPTVBPU0VfQ09OVElHVU9VUykhPTApIHsKKyAgICAgICAgICAgICAgICAvKiBGQ0M6IG5vIGRpc2NvbnRpZ3VvdXMgY29tcG9zaXRpb25zOyBhbnkgaW50ZXJ2ZW5pbmcgY2hhcmFjdGVyIGJsb2NrcyAqLworICAgICAgICAgICAgICAgIHN0YXJ0ZXI9LTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAKKyAgICAvLyBmaW5kIHRoZSBsYXN0IHRydWUgc3RhcnRlciBiZXR3ZWVuIHNyY1tzdGFydF0uLi4uc3JjW2N1cnJlbnRdIGdvaW5nIAorICAgIC8vIGJhY2t3YXJkcyBhbmQgcmV0dXJuIGl0cyBpbmRleAorICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kUHJldmlvdXNTdGFydGVyKGNoYXJbXXNyYywgaW50IHNyY1N0YXJ0LCBpbnQgY3VycmVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBtaW5Ob01heWJlKSB7IAorICAgICAgIGxvbmcgbm9ybTMyOyAKKyAgICAgICBQcmV2QXJncyBhcmdzID0gbmV3IFByZXZBcmdzKCk7CisgICAgICAgYXJncy5zcmMgPSBzcmM7CisgICAgICAgYXJncy5zdGFydCA9IHNyY1N0YXJ0OworICAgICAgIGFyZ3MuY3VycmVudCA9IGN1cnJlbnQ7CisgICAgICAgCisgICAgICAgd2hpbGUoYXJncy5zdGFydDxhcmdzLmN1cnJlbnQpIHsgCisgICAgICAgICAgIG5vcm0zMj0gZ2V0UHJldk5vcm0zMihhcmdzLCBtaW5Ob01heWJlLCBjY09yUUNNYXNrfGRlY29tcFFDTWFzayk7IAorICAgICAgICAgICBpZihpc1RydWVTdGFydGVyKG5vcm0zMiwgY2NPclFDTWFzaywgZGVjb21wUUNNYXNrKSkgeyAKKyAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgfSAKKyAgICAgICB9IAorICAgICAgIHJldHVybiBhcmdzLmN1cnJlbnQ7IAorICAgIH0KKyAgICAKKyAgICAvKiBmaW5kIHRoZSBmaXJzdCB0cnVlIHN0YXJ0ZXIgaW4gW3NyYy4ubGltaXRbIGFuZCByZXR1cm4gdGhlIAorICAgICAqIHBvaW50ZXIgdG8gaXQgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50LyppbmRleCovICAgIGZpbmROZXh0U3RhcnRlcihjaGFyW10gc3JjLGludCBzdGFydCxpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIHFjTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBtaW5Ob01heWJlKSB7CisgICAgICAgIGludCBwOworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsgCisgICAgICAgIGludCBjY09yUUNNYXNrOworICAgICAgICBjaGFyIGMsIGMyOworICAgIAorICAgICAgICBjY09yUUNNYXNrPUNDX01BU0t8cWNNYXNrOworICAgICAgICAKKyAgICAgICAgRGVjb21wb3NlQXJncyBkZWNvbXBBcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGlmKHN0YXJ0PT1saW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBlbmQgb2Ygc3RyaW5nICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjPXNyY1tzdGFydF07CisgICAgICAgICAgICBpZihjPG1pbk5vTWF5YmUpIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogY2F0Y2hlcyBOVUwgdGVybWluYXRlciwgdG9vICovCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworICAgICAgICAgICAgaWYoKG5vcm0zMiZjY09yUUNNYXNrKT09MCkgeworICAgICAgICAgICAgICAgIGJyZWFrOyAvKiB0cnVlIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKGlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICAgICAgaWYoKHN0YXJ0KzEpPT1saW1pdCB8fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9KHNyY1tzdGFydCsxXSkpKXsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZTogY291bnRzIGFzIGEgdHJ1ZSBzdGFydGVyICovICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgIAorICAgICAgICAgICAgICAgIGlmKChub3JtMzImY2NPclFDTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8qIHRydWUgc3RhcnRlciAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIChjLCBjMikgaXMgbm90IGEgdHJ1ZSBzdGFydGVyIGJ1dCBpdHMgZGVjb21wb3NpdGlvbiBtYXkgYmUgKi8KKyAgICAgICAgICAgIGlmKChub3JtMzImZGVjb21wUUNNYXNrKSE9MCkgeworICAgICAgICAgICAgICAgIC8qIChjLCBjMikgZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoCisgICAgICAgICAgICAgICAgICogIGV4dHJhIGRhdGEgKi8KKyAgICAgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIGRlY29tcFFDTWFzaywgZGVjb21wQXJncyk7CisgICAgCisgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBmaXJzdCBjaGFyYWN0ZXIncyBub3JtMzIgdG8gY2hlY2sgaWYgaXQgaXMgYSB0cnVlIAorICAgICAgICAgICAgICAgICAqIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgICAgICBpZihkZWNvbXBBcmdzLmNjPT0wICYmIChnZXROb3JtMzIoZXh0cmFEYXRhLHAsIHFjTWFzaykmcWNNYXNrKT09MCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsgLyogdHJ1ZSBzdGFydGVyICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc3RhcnQrPSBjMj09MCA/IDEgOiAyOyAvKiBub3QgYSB0cnVlIHN0YXJ0ZXIsIGNvbnRpbnVlICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBDb21wb3NlUGFydEFyZ3N7CisgICAgICAgIGludCBwcmV2Q0M7CisgICAgICAgIGludCBsZW5ndGg7ICAgLyogbGVuZ3RoIG9mIGRlY29tcG9zZWQgcGFydCAqLworICAgIH0KKyAgICAgICAgCisgICAgIC8qIGRlY29tcG9zZSBhbmQgcmVjb21wb3NlIFtwcmV2U3RhcnRlci4uc3JjWyAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBjb21wb3NlUGFydChDb21wb3NlUGFydEFyZ3MgYXJncywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmV2U3RhcnRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBzcmMsIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgIGludCByZWNvbXBvc2VMaW1pdDsKKyAgICAgICAgYm9vbGVhbiBjb21wYXQgPSgob3B0aW9ucyZPUFRJT05TX0NPTVBBVCkhPTApOworICAgICAgICAKKyAgICAgICAgLyogZGVjb21wb3NlIFtwcmV2U3RhcnRlci4uc3JjWyAqLworICAgICAgICBpbnRbXSBvdXRUcmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWyhsaW1pdC1wcmV2U3RhcnRlcikqTUFYX0JVRkZFUl9TSVpFXTsKKworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgYXJncy5sZW5ndGg9ZGVjb21wb3NlKHNyYyxwcmV2U3RhcnRlciwoc3RhcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsMCxidWZmZXIubGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0LG91dFRyYWlsQ0MsbngpOworICAgICAgICAgICAgaWYoYXJncy5sZW5ndGg8PWJ1ZmZlci5sZW5ndGgpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbYXJncy5sZW5ndGhdOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgIAorICAgICAgICAvKiByZWNvbXBvc2UgdGhlIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgcmVjb21wb3NlTGltaXQ9YXJncy5sZW5ndGg7CisgICAgICAgICAgCisgICAgICAgIGlmKGFyZ3MubGVuZ3RoPj0yKSB7CisgICAgICAgICAgICBSZWNvbXBvc2VBcmdzIHJjQXJncyA9IG5ldyBSZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICByY0FyZ3Muc291cmNlICAgID0gYnVmZmVyOworICAgICAgICAgICAgcmNBcmdzLnN0YXJ0ICAgID0gMDsKKyAgICAgICAgICAgIHJjQXJncy5saW1pdCAgICA9IHJlY29tcG9zZUxpbWl0OyAKKyAgICAgICAgICAgIGFyZ3MucHJldkNDPXJlY29tcG9zZShyY0FyZ3MsIG9wdGlvbnMsIG54KTsKKyAgICAgICAgICAgIHJlY29tcG9zZUxpbWl0ID0gcmNBcmdzLmxpbWl0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiByZXR1cm4gd2l0aCBhIHBvaW50ZXIgdG8gdGhlIHJlY29tcG9zaXRpb24gYW5kIGl0cyBsZW5ndGggKi8KKyAgICAgICAgYXJncy5sZW5ndGg9cmVjb21wb3NlTGltaXQ7CisgICAgICAgIHJldHVybiBidWZmZXI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gY29tcG9zZUhhbmd1bChjaGFyIHByZXYsIGNoYXIgYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3JjLGludFtdIHNyY0luZGV4LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY29tcGF0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICBpbnQgc3RhcnQ9c3JjSW5kZXhbMF07CisgICAgICAgIGlmKGlzSmFtb1ZUTm9ybTMySmFtb1Yobm9ybTMyKSkgeworICAgICAgICAgICAgLyogYyBpcyBhIEphbW8gViwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEphbW8gTCBhbmQgCisgICAgICAgICAgICAgKiBmb2xsb3dpbmcgSmFtbyBUICovCisgICAgICAgICAgICBwcmV2PShjaGFyKShwcmV2LUpBTU9fTF9CQVNFKTsKKyAgICAgICAgICAgIGlmKHByZXY8SkFNT19MX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgYz0oY2hhcikoSEFOR1VMX0JBU0UrKHByZXYqSkFNT19WX0NPVU5UKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjLUpBTU9fVl9CQVNFKSkqSkFNT19UX0NPVU5UKTsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBjaGVjayBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYSBKYW1vIFQgKG5vcm1hbCBvciAKKyAgICAgICAgICAgICAgICAgKiBjb21wYXRpYmlsaXR5KSAqLworICAgICAgICAgICAgICAgIGlmKHN0YXJ0IT1saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIG5leHQsIHQ7CisgICAgCisgICAgICAgICAgICAgICAgICAgIG5leHQ9c3JjW3N0YXJ0XTsKKyAgICAgICAgICAgICAgICAgICAgaWYoKHQ9KGNoYXIpKG5leHQtSkFNT19UX0JBU0UpKTxKQU1PX1RfQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBKYW1vIFQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjKz10OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY29tcGF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBpZiBORktDLCB0aGVuIGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IEphbW8gVCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIChCTVAgb25seSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIobmV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSAmJiAoKG5vcm0zMiZRQ19ORktEKSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcCAvKmluZGV4IGludG8gZXh0cmEgZGF0YSBhcnJheSovOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgZGNBcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIFFDX05GS0QsIGRjQXJncyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGNBcmdzLmxlbmd0aD09MSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQ9KGNoYXIpKGV4dHJhRGF0YVtwXS1KQU1PX1RfQkFTRSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SkFNT19UX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbXBhdGliaWxpdHkgSmFtbyBUICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMrPXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjKSkgeworICAgICAgICAgICAgICAgICAgICBpZighaXNIYW5ndWxXaXRob3V0SmFtb1QoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tc3RhcnQ7IC8qIHVuZG8gKytzdGFydCBmcm9tIHJlYWRpbmcgdGhlIEphbW8gVCAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXhdPWM7CisgICAgICAgICAgICAgICAgc3JjSW5kZXhbMF09c3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZihpc0hhbmd1bFdpdGhvdXRKYW1vVChwcmV2KSkgeworICAgICAgICAgICAgLyogYyBpcyBhIEphbW8gVCwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEhhbmd1bCBMViB0aGF0IGRvZXMgbm90IAorICAgICAgICAgICAgICogY29udGFpbiBhIEphbW8gVCAqLworICAgICAgICAgICAgYz0oY2hhcikocHJldisoYy1KQU1PX1RfQkFTRSkpOworICAgICAgICAgICAgaWYobnhfY29udGFpbnMobngsIGMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXhdPWM7CisgICAgICAgICAgICBzcmNJbmRleFswXT1zdGFydDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wb3NlKGNoYXJbXSBzcmMsIGNoYXJbXSBkZXN0LGJvb2xlYW4gY29tcGF0LCBVbmljb2RlU2V0IG54KXsKKyAgICAgICAgcmV0dXJuIGNvbXBvc2Uoc3JjLDAsc3JjLmxlbmd0aCxkZXN0LDAsZGVzdC5sZW5ndGgsY29tcGF0LCBueCk7CisgICAgfQorICAgICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcG9zZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zLFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgCisgICAgICAgIGludCBwcmV2U3JjLCBwcmV2U3RhcnRlcjsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI7IAorICAgICAgICBpbnQgY2NPclFDTWFzaywgcWNNYXNrOworICAgICAgICBpbnQgIHJlb3JkZXJTdGFydEluZGV4LCBsZW5ndGg7CisgICAgICAgIGNoYXIgYywgYzIsIG1pbk5vTWF5YmU7CisgICAgICAgIGludC8qdW5zaWduZWQgYnl0ZSovIGNjLCBwcmV2Q0M7CisgICAgICAgIGludFtdIGlvSW5kZXggPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgZGVzdEluZGV4ID0gZGVzdFN0YXJ0OworICAgICAgICBpbnQgc3JjSW5kZXggPSBzcmNTdGFydDsKKyAgICAgICAgCisgICAgICAgIGlmKChvcHRpb25zJk9QVElPTlNfQ09NUEFUKSE9MCkgeworICAgICAgICAgICAgbWluTm9NYXliZT0oY2hhcilpbmRleGVzW0lOREVYX01JTl9ORktDX05PX01BWUJFXTsKKyAgICAgICAgICAgIHFjTWFzaz1RQ19ORktDOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWluTm9NYXliZT0oY2hhcilpbmRleGVzW0lOREVYX01JTl9ORkNfTk9fTUFZQkVdOworICAgICAgICAgICAgcWNNYXNrPVFDX05GQzsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBwcmV2U3RhcnRlciBwb2ludHMgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIGJlZm9yZSB0aGUgY3VycmVudCBvbmUKKyAgICAgICAgICogdGhhdCBpcyBhICJ0cnVlIiBzdGFydGVyIHdpdGggY2M9PTAgYW5kIHF1aWNrIGNoZWNrICJ5ZXMiLgorICAgICAgICAgKgorICAgICAgICAgKiBwcmV2U3RhcnRlciB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiBsb29raW5nIGZvciBhIHRydWUgc3RhcnRlcgorICAgICAgICAgKiB3aGlsZSBpbmNyZW1lbnRhbGx5IGRlY29tcG9zaW5nIFtwcmV2U3RhcnRlci4ucHJldlNyY1sKKyAgICAgICAgICogaW4gX2NvbXBvc2VQYXJ0KCkuIEhhdmluZyBhIGdvb2QgcHJldlN0YXJ0ZXIgYWxsb3dzIHRvIGp1c3QgZGVjb21wb3NlCisgICAgICAgICAqIHRoZSBlbnRpcmUgW3ByZXZTdGFydGVyLi5wcmV2U3JjWy4KKyAgICAgICAgICoKKyAgICAgICAgICogV2hlbiBfY29tcG9zZVBhcnQoKSBiYWNrcyBvdXQgZnJvbSBwcmV2U3JjIGJhY2sgdG8gcHJldlN0YXJ0ZXIsCisgICAgICAgICAqIHRoZW4gaXQgYWxzbyBiYWNrcyBvdXQgZGVzdEluZGV4IGJ5IHRoZSBzYW1lIGFtb3VudC4KKyAgICAgICAgICogVGhlcmVmb3JlLCBhdCBhbGwgdGltZXMsIHRoZSAocHJldlNyYy1wcmV2U3RhcnRlcikgc291cmNlIHVuaXRzCisgICAgICAgICAqIG11c3QgY29ycmVzcG9uZCAxOjEgdG8gZGVzdGluYXRpb24gdW5pdHMgY291bnRlZCB3aXRoIGRlc3RJbmRleCwKKyAgICAgICAgICogZXhjZXB0IGZvciByZW9yZGVyaW5nLgorICAgICAgICAgKiBUaGlzIGlzIHRydWUgZm9yIHRoZSBxYyAieWVzIiBjaGFyYWN0ZXJzIGNvcGllZCBpbiB0aGUgZmFzdCBsb29wLAorICAgICAgICAgKiBhbmQgZm9yIHB1cmUgcmVvcmRlcmluZy4KKyAgICAgICAgICogcHJldlN0YXJ0ZXIgbXVzdCBiZSBzZXQgZm9yd2FyZCB0byBzcmMgd2hlbiB0aGlzIGlzIG5vdCB0cnVlOgorICAgICAgICAgKiBJbiBfY29tcG9zZVBhcnQoKSBhbmQgYWZ0ZXIgY29tcG9zaW5nIGEgSGFuZ3VsIHN5bGxhYmxlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG1lY2hhbmlzbSByZWxpZXMgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZGVjb21wb3NpdGlvbiBvZiBhIAorICAgICAgICAgKiB0cnVlIHN0YXJ0ZXIgYWxzbyBiZWdpbnMgd2l0aCBhIHRydWUgc3RhcnRlci4gZ2Vubm9ybS9zdG9yZS5jIGNoZWNrcyAKKyAgICAgICAgICogZm9yIHRoaXMuCisgICAgICAgICAqLworICAgICAgICBwcmV2U3RhcnRlcj1zcmNJbmRleDsKKyAgICAKKyAgICAgICAgY2NPclFDTWFzaz1DQ19NQVNLfHFjTWFzazsKKyAgICAgICAgLypkZXN0SW5kZXg9Ki9yZW9yZGVyU3RhcnRJbmRleD0wOy8qICMjIyNUT0RPIyMjIyBjaGVjayB0aGlzICoqLworICAgICAgICBwcmV2Q0M9MDsKKyAgICAKKyAgICAgICAgLyogYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgKi8KKyAgICAgICAgbm9ybTMyPTA7CisgICAgICAgIGM9MDsKKyAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBjb3VudCBjb2RlIHVuaXRzIGJlbG93IHRoZSBtaW5pbXVtIG9yIHdpdGggaXJyZWxldmFudCBkYXRhIGZvciAKKyAgICAgICAgICAgICAqIHRoZSBxdWljayBjaGVjayAqLworICAgICAgICAgICAgcHJldlNyYz1zcmNJbmRleDsKKworICAgICAgICAgICAgd2hpbGUoc3JjSW5kZXghPXNyY0xpbWl0ICYmICgoYz1zcmNbc3JjSW5kZXhdKTxtaW5Ob01heWJlIHx8IAorICAgICAgICAgICAgICAgICAgICAgKChub3JtMzI9Z2V0Tm9ybTMyKGMpKSZjY09yUUNNYXNrKT09MCkpIHsKKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICArK3NyY0luZGV4OworICAgICAgICAgICAgfQorCisgICAgCisgICAgICAgICAgICAvKiBjb3B5IHRoZXNlIGNvZGUgdW5pdHMgYWxsIGF0IG9uY2UgKi8KKyAgICAgICAgICAgIGlmKHNyY0luZGV4IT1wcmV2U3JjKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPShpbnQpKHNyY0luZGV4LXByZXZTcmMpOworICAgICAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHByZXZTcmMsZGVzdCxkZXN0SW5kZXgsbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgIAorICAgICAgICAgICAgICAgIC8qIHNldCBwcmV2U3RhcnRlciB0byB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHF1aWNrIGNoZWNrIAorICAgICAgICAgICAgICAgICAqIGxvb3AgKi8KKyAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1zcmNJbmRleC0xOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoc3JjW3ByZXZTdGFydGVyXSkgJiYgCisgICAgICAgICAgICAgICAgICAgIHByZXZTcmM8cHJldlN0YXJ0ZXIgJiYgCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShzcmNbKHByZXZTdGFydGVyLTEpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1wcmV2U3RhcnRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgcHJldlNyYz1zcmNJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGVuZCBvZiBzb3VyY2UgcmVhY2hlZD8gKi8KKyAgICAgICAgICAgIGlmKHNyY0luZGV4PT1zcmNMaW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYyBhbHJlYWR5IGNvbnRhaW5zICpzcmMgYW5kIG5vcm0zMiBpcyBzZXQgZm9yIGl0LCBpbmNyZW1lbnQgc3JjKi8KKyAgICAgICAgICAgICsrc3JjSW5kZXg7CisgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc291cmNlIGJ1ZmZlciBwb2ludGVyczoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiAgYWxsIGRvbmUgICAgICBxdWljayBjaGVjayAgIGN1cnJlbnQgY2hhciAgbm90IHlldAorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgInllcyIgYnV0ICAgICAoYywgYzIpICAgICAgIHByb2Nlc3NlZAorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgbWF5IGNvbWJpbmUKKyAgICAgICAgICAgICAqICAgICAgICAgICAgICAgIGZvcndhcmQKKyAgICAgICAgICAgICAqIFstLS0tLS0tLS0tLS0tWy0tLS0tLS0tLS0tLS1bLS0tLS0tLS0tLS0tLVstLS0tLS0tLS0tLS0tWworICAgICAgICAgICAgICogfCAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICB8CisgICAgICAgICAgICAgKiBzdGFydCAgICAgICAgIHByZXZTdGFydGVyICAgcHJldlNyYyAgICAgICBzcmMgICAgICAgICAgIGxpbWl0CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIGRlc3RpbmF0aW9uIGJ1ZmZlciBwb2ludGVycyBhbmQgaW5kZXhlczoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiAgYWxsIGRvbmUgICAgICBtaWdodCB0YWtlICAgIG5vdCBmaWxsZWQgeWV0CisgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzIGZvcgorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgcmVvcmRlcmluZworICAgICAgICAgICAgICogWy0tLS0tLS0tLS0tLS1bLS0tLS0tLS0tLS0tLVstLS0tLS0tLS0tLS0tWworICAgICAgICAgICAgICogfCAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICogZGVzdCAgICAgIHJlb3JkZXJTdGFydEluZGV4IGRlc3RJbmRleCAgICAgZGVzdENhcGFjaXR5CisgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBub3JtMzIgaXMgZm9yIGM9KihzcmMtMSksIGFuZCB0aGUgcXVpY2sgY2hlY2sgZmxhZyBpcyAibm8iIG9yIAorICAgICAgICAgICAgICogIm1heWJlIiwgYW5kL29yIGNjIT0wCisgICAgICAgICAgICAgKiBjaGVjayBmb3IgSmFtbyBWL1QsIHRoZW4gZm9yIHN1cnJvZ2F0ZXMgYW5kIHJlZ3VsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgICogYyBpcyBub3QgYSBIYW5ndWwgc3lsbGFibGUgb3IgSmFtbyBMIGJlY2F1c2UKKyAgICAgICAgICAgICAqIHRoZXkgYXJlIG5vdCBtYXJrZWQgd2l0aCBuby9tYXliZSBmb3IgTkZDICYgTkZLQyhhbmQgdGhlaXIgY2M9PTApCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKGlzTm9ybTMySGFuZ3VsT3JKYW1vKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGMgaXMgYSBKYW1vIFYvVDoKKyAgICAgICAgICAgICAgICAgKiB0cnkgdG8gY29tcG9zZSB3aXRoIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIsIEphbW8gViBhbHNvIHdpdGggCisgICAgICAgICAgICAgICAgICogYSBmb2xsb3dpbmcgSmFtbyBULCBhbmQgc2V0IHZhbHVlcyBoZXJlIHJpZ2h0IG5vdyBpbiBjYXNlIHdlIAorICAgICAgICAgICAgICAgICAqIGp1c3QgY29udGludWUgd2l0aCB0aGUgbWFpbiBsb29wCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcHJldkNDPWNjPTA7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICAgICAgICAgIGlvSW5kZXhbMF09c3JjSW5kZXg7CisgICAgICAgICAgICAgICAgaWYoIAorICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXg+MCAmJgorICAgICAgICAgICAgICAgICAgICBjb21wb3NlSGFuZ3VsKHNyY1socHJldlNyYy0xKV0sIGMsIG5vcm0zMixzcmMsIGlvSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjTGltaXQsIChvcHRpb25zJk9QVElPTlNfQ09NUEFUKSE9MCwgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXg8PWRlc3RMaW1pdCA/IGRlc3RJbmRleC0xOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54KQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICBzcmNJbmRleD1pb0luZGV4WzBdOworICAgICAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1zcmNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNyY0luZGV4ID0gaW9JbmRleFswXTsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiB0aGUgSmFtbyBWL1QgZGlkIG5vdCBjb21wb3NlIGludG8gYSBIYW5ndWwgc3lsbGFibGUsIGp1c3QgCisgICAgICAgICAgICAgICAgICogYXBwZW5kIHRvIGRlc3QgKi8KKyAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgIHByZXZTdGFydGVyPXByZXZTcmM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGlzTm9ybTMyUmVndWxhcihub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAqLworICAgICAgICAgICAgICAgICAgICBpZihzcmNJbmRleCE9c3JjTGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tzcmNJbmRleF0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK3NyY0luZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBjMik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIGFuIHVucGFpcmVkIGxlYWQgc3Vycm9nYXRlLCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICBub3JtMzI9MDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBDb21wb3NlUGFydEFyZ3MgYXJncyA9bmV3IENvbXBvc2VQYXJ0QXJncygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHdlIGFyZSBsb29raW5nIGF0IHRoZSBjaGFyYWN0ZXIgKGMsIGMyKSBhdCBbcHJldlNyYy4uc3JjWyAqLworICAgICAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQ6IG5vcm0zMj09MCAqLworICAgICAgICAgICAgICAgICAgICBjYz0wOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigobm9ybTMyJnFjTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgY2M9KGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykmKG5vcm0zMj4+Q0NfU0hJRlQpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaGFyW10gcDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogZmluZCBhcHByb3ByaWF0ZSBib3VuZGFyaWVzIGFyb3VuZCB0aGlzIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICogZGVjb21wb3NlIHRoZSBzb3VyY2UgdGV4dCBmcm9tIGJldHdlZW4gdGhlIGJvdW5kYXJpZXMsCisgICAgICAgICAgICAgICAgICAgICAqIGFuZCByZWNvbXBvc2UgaXQKKyAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICogdGhpcyBwdXRzIHRoZSBpbnRlcm1lZGlhdGUgdGV4dCBpbnRvIHRoZSBzaWRlIGJ1ZmZlciBiZWNhdXNlCisgICAgICAgICAgICAgICAgICAgICAqIGl0IG1pZ2h0IGJlIGxvbmdlciB0aGFuIHRoZSByZWNvbXBvc2l0aW9uIGVuZCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAqIG9yIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbWF5IGJlIHRvbyBzaG9ydCBvciBtaXNzaW5nCisgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAqIG5vdGUgdGhhdCBkZXN0SW5kZXggbWF5IGJlIGFkanVzdGVkIGJhY2t3YXJkcyB0byBhY2NvdW50CisgICAgICAgICAgICAgICAgICAgICAqIGZvciBzb3VyY2UgdGV4dCB0aGF0IHBhc3NlZCB0aGUgcXVpY2sgY2hlY2sgYnV0IG5lZWRlZCB0bworICAgICAgICAgICAgICAgICAgICAgKiB0YWtlIHBhcnQgaW4gdGhlIHJlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGludCBkZWNvbXBRQ01hc2s9KHFjTWFzazw8MikmMHhmOyAvKiBkZWNvbXBvc2l0aW9uIHF1aWNrIGNoZWNrIG1hc2sgKi8KKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogZmluZCB0aGUgbGFzdCB0cnVlIHN0YXJ0ZXIgaW4gW3ByZXZTdGFydGVyLi5zcmNbCisgICAgICAgICAgICAgICAgICAgICAqIGl0IGlzIGVpdGhlciB0aGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgKGF0IHByZXZTcmMpLAorICAgICAgICAgICAgICAgICAgICAgKiBvciBwcmV2U3RhcnRlcgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoaXNUcnVlU3RhcnRlcihub3JtMzIsIENDX01BU0t8cWNNYXNrLCBkZWNvbXBRQ01hc2spKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1wcmV2U3JjOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYWRqdXN0IGRlc3RJbmRleDogYmFjayBvdXQgd2hhdCBoYWQgYmVlbiBjb3BpZWQgd2l0aCBxYyAieWVzIiAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4LT1wcmV2U3JjLXByZXZTdGFydGVyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGZpbmQgdGhlIG5leHQgdHJ1ZSBzdGFydGVyIGluIFtzcmMuLmxpbWl0WyAqLworICAgICAgICAgICAgICAgICAgICBzcmNJbmRleD1maW5kTmV4dFN0YXJ0ZXIoc3JjLCBzcmNJbmRleCxzcmNMaW1pdCwgcWNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wUUNNYXNrLCBtaW5Ob01heWJlKTsKKyAgICAgICAgICAgICAgICAgICAgLy9hcmdzLnByZXZTdGFydGVyID0gcHJldlN0YXJ0ZXI7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MucHJldkNDICAgID0gcHJldkNDOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vYXJncy5kZXN0SW5kZXggPSBkZXN0SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBwPWNvbXBvc2VQYXJ0KGFyZ3MscHJldlN0YXJ0ZXIsc3JjLHNyY0luZGV4LHNyY0xpbWl0LG9wdGlvbnMsbngpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKHA9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFuIGVycm9yIG9jY3VycmVkIChvdXQgb2YgbWVtb3J5KSAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHByZXZDQyAgICAgID0gYXJncy5wcmV2Q0M7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAgICAgID0gYXJncy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBhcHBlbmQgdGhlIHJlY29tcG9zZWQgYnVmZmVyIGNvbnRlbnRzIHRvIHRoZSBkZXN0aW5hdGlvbiAKKyAgICAgICAgICAgICAgICAgICAgICogYnVmZmVyICovCisgICAgICAgICAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrYXJncy5sZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBpPTA7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShpPGFyZ3MubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109cFtpKytdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIGluY3JlbWVudGluZyB0aGUgZGVzdEluZGV4IGZvciBwcmVmbGlnaHRpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIHByZXZTdGFydGVyPXNyY0luZGV4OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBhcHBlbmQgdGhlIHNpbmdsZSBjb2RlIHBvaW50IChjLCBjMikgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciAqLworICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICBpZihjYyE9MCAmJiBjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogKGMsIGMyKSBpcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0IHRvIHRoZSBwcmVjZWRpbmcgCisgICAgICAgICAgICAgICAgICAgICAqIHRleHQgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IHJlb3JkZXJTcGxpdD0gZGVzdEluZGV4OworICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPWluc2VydE9yZGVyZWQoZGVzdCxyZW9yZGVyU3RhcnRJbmRleCwgcmVvcmRlclNwbGl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4LCBjLCBjMiwgY2MpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIChjLCBjMikgKi8KKyAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWMyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz1jYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgIHByZXZDQz1jYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkZXN0SW5kZXggLSBkZXN0U3RhcnQ7CisgICAgfQorICAgIC8qIG1ha2UgRkNEIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKmluZGV4Ki8gZmluZFNhZmVGQ0QoY2hhcltdIHNyYywgaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGZjZDE2KSB7CisgICAgICAgIGNoYXIgYywgYzI7CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIGZpbmQgdGhlIGZpcnN0IHBvc2l0aW9uIGluIFtzcmMuLmxpbWl0WyBhZnRlciBzb21lIGNjPT0wIGFjY29yZGluZyAKKyAgICAgICAgICogdG8gRkNEIGRhdGEKKyAgICAgICAgICoKKyAgICAgICAgICogYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbG9vcCwgd2UgaGF2ZSBmY2QxNiBmcm9tIGJlZm9yZSBzcmMKKyAgICAgICAgICoKKyAgICAgICAgICogc3RvcCBhdCBwb3NpdGlvbnM6CisgICAgICAgICAqIC0gYWZ0ZXIgdHJhaWwgY2M9PTAKKyAgICAgICAgICogLSBhdCB0aGUgZW5kIG9mIHRoZSBzb3VyY2UKKyAgICAgICAgICogLSBiZWZvcmUgbGVhZCBjYz09MAorICAgICAgICAgKi8KKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBzdG9wIGlmIHRyYWlsIGNjPT0wIGZvciB0aGUgcHJldmlvdXMgY2hhcmFjdGVyICovCisgICAgICAgICAgICBpZigoZmNkMTYmMHhmZik9PTApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGdldCBjPSpzcmMgLSBzdG9wIGF0IGVuZCBvZiBzdHJpbmcgKi8KKyAgICAgICAgICAgIGlmKHN0YXJ0PT1saW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYz1zcmNbc3RhcnRdOworICAgIAorICAgICAgICAgICAgLyogc3RvcCBpZiBsZWFkIGNjPT0wIGZvciB0aGlzIGNoYXJhY3RlciAqLworICAgICAgICAgICAgaWYoYzxNSU5fV0lUSF9MRUFEX0NDIHx8IChmY2QxNj1nZXRGQ0QxNihjKSk9PTApIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogY2F0Y2hlcyB0ZXJtaW5hdGluZyBOVUwsIHRvbyAqLworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgIGlmKGZjZDE2PD0weGZmKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgfSBlbHNlIGlmKHN0YXJ0KzEhPWxpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3N0YXJ0KzFdKSkpIHsKKyAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBmY2QxNiAqLworICAgICAgICAgICAgICAgIGZjZDE2PWdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkMTYsIGMyKTsKKyAgICAgICAgICAgICAgICBpZihmY2QxNjw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhcnQrPTI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGMgaXMgYW4gdW5wYWlyZWQgZmlyc3Qgc3Vycm9nYXRlLCBsZWFkIGNjPT0wICovCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBkZWNvbXBvc2VGQ0QoY2hhcltdIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCxpbnQgZGVjb21wTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGVzdEluZGV4QXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgIGNoYXJbXSBwPW51bGw7CisgICAgICAgIGludCBwU3RhcnQ9LTE7CisgICAgICAgIAorICAgICAgICBsb25nIC8qdW5zaWduZWQgaW50Ki8gbm9ybTMyOworICAgICAgICBpbnQgcmVvcmRlclN0YXJ0SW5kZXg7CisgICAgICAgIGNoYXIgYywgYzI7CisgICAgICAgIGludC8qdW5zaWduZWQgYnl0ZSovIHByZXZDQzsKKyAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKyAgICAgICAgaW50IGRlc3RJbmRleCA9IGRlc3RJbmRleEFyclswXTsKKyAgICAgICAgLyoKKyAgICAgICAgICogY2Fub25pY2FsbHkgZGVjb21wb3NlIFtzcmMuLmRlY29tcExpbWl0WworICAgICAgICAgKgorICAgICAgICAgKiBhbGwgY2hhcmFjdGVycyBpbiB0aGlzIHJhbmdlIGhhdmUgc29tZSBub24temVybyBjYywKKyAgICAgICAgICogZGlyZWN0bHkgb3IgaW4gZGVjb21wb3NpdGlvbiwKKyAgICAgICAgICogc28gdGhhdCB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayBpbiB0aGUgZm9sbG93aW5nIGZvciBxdWljay1jaGVjayAKKyAgICAgICAgICogbGltaXRzIGV0Yy4KKyAgICAgICAgICoKKyAgICAgICAgICogdGhlcmUgX2FyZV8gX25vXyBIYW5ndWwgc3lsbGFibGVzIG9yIEphbW9zIGluIGhlcmUgYmVjYXVzZSB0aGV5IGFyZSAKKyAgICAgICAgICogRkNELXNhZmUgKGNjPT0wKSEKKyAgICAgICAgICoKKyAgICAgICAgICogd2UgYWxzbyBkbyBub3QgbmVlZCB0byBjaGVjayBmb3IgYz09MCBiZWNhdXNlIHdlIGhhdmUgYW4gZXN0YWJsaXNoZWQgCisgICAgICAgICAqIGRlY29tcExpbWl0CisgICAgICAgICAqLworICAgICAgICByZW9yZGVyU3RhcnRJbmRleD1kZXN0SW5kZXg7CisgICAgICAgIHByZXZDQz0wOworCisgICAgICAgIHdoaWxlKHN0YXJ0PGRlY29tcExpbWl0KSB7CisgICAgICAgICAgICBjPXNyY1tzdGFydCsrXTsKKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYyk7CisgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSkgeworICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgYXJncy5sZW5ndGg9MTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiByZW1pbmRlcjogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBbc3JjLi5kZWNvbXBMaW1pdFsKKyAgICAgICAgICAgICAgICAgKiBub3QgY29udGFpbmluZyBhbnkgSGFuZ3VsL0phbW8gY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgICAgKiB0aGVyZWZvcmUgdGhlIG9ubHkgc3BlY2lhbHMgYXJlIGxlYWQgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAqLworICAgICAgICAgICAgICAgIGlmKHN0YXJ0IT1kZWNvbXBMaW1pdCAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tzdGFydF0pKXsKKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgYXJncy5sZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGdldCB0aGUgZGVjb21wb3NpdGlvbiBhbmQgdGhlIGxlYWQgYW5kIHRyYWlsIGNjJ3MgKi8KKyAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAvKiBleGNsdWRlZDogbm9ybTMyPT0wICovCisgICAgICAgICAgICAgICAgYXJncy5jYz1hcmdzLnRyYWlsQ0M9MDsKKyAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYoKG5vcm0zMiZRQ19ORkQpPT0wKSB7CisgICAgICAgICAgICAgICAgLyogYyBkb2VzIG5vdCBkZWNvbXBvc2UgKi8KKyAgICAgICAgICAgICAgICBhcmdzLmNjPWFyZ3MudHJhaWxDQz0oaW50KSgoVU5TSUdORURfQllURV9NQVNLKSYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3JtMzI+PkNDX1NISUZUKSk7CisgICAgICAgICAgICAgICAgcD1udWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBjIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSAKKyAgICAgICAgICAgICAgICAgKiBkYXRhICovCisgICAgICAgICAgICAgICAgcFN0YXJ0PWRlY29tcG9zZShub3JtMzIsIGFyZ3MpOworICAgICAgICAgICAgICAgIHA9ZXh0cmFEYXRhOworICAgICAgICAgICAgICAgIGlmKGFyZ3MubGVuZ3RoPT0xKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGZhc3RwYXRoIGEgc2luZ2xlIGNvZGUgdW5pdCBmcm9tIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgYz1wW3BTdGFydF07CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBhcHBlbmQgdGhlIGRlY29tcG9zaXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgYXNzdW1lIAorICAgICAgICAgICAgICogbGVuZ3RoPjAgKi8KKyAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrYXJncy5sZW5ndGgpPD1kZXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGludCByZW9yZGVyU3BsaXQ9ZGVzdEluZGV4OworICAgICAgICAgICAgICAgIGlmKHA9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZmFzdHBhdGg6IHNpbmdsZSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIGlmKGFyZ3MuY2MhPTAgJiYgYXJncy5jYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIChjLCBjMikgaXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdCB0byB0aGUgcHJlY2VkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgdGV4dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1hcmdzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MudHJhaWxDQz1pbnNlcnRPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVvcmRlclNwbGl0LCBkZXN0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYywgYzIsIGFyZ3MuY2MpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgKGMsIGMyKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGMyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBnZW5lcmFsOiBtdWx0aXBsZSBjb2RlIHBvaW50cyAob3JkZXJlZCBieSB0aGVtc2VsdmVzKSAKKyAgICAgICAgICAgICAgICAgICAgICogZnJvbSBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGlmKGFyZ3MuY2MhPTAgJiYgYXJncy5jYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBkZWNvbXBvc2l0aW9uIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgcHJlY2VkaW5nIHRleHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9YXJncy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnRyYWlsQ0M9bWVyZ2VPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW9yZGVyU3BsaXQsIHAsIHBTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFN0YXJ0K2FyZ3MubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIHRoZSBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109cFtwU3RhcnQrK107CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKC0tYXJncy5sZW5ndGg+MCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9YXJncy5sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBwcmV2Q0M9YXJncy50cmFpbENDOworICAgICAgICAgICAgaWYocHJldkNDPT0wKSB7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRlc3RJbmRleEFyclswXT1kZXN0SW5kZXg7CisgICAgICAgIHJldHVybiBwcmV2Q0M7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IG1ha2VGQ0QoY2hhcltdIHNyYywgIGludCBzcmNTdGFydCwgIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBwcmV2U3JjLCBkZWNvbXBTdGFydDsKKyAgICAgICAgaW50IGRlc3RJbmRleCwgbGVuZ3RoOworICAgICAgICBjaGFyIGMsIGMyOworICAgICAgICBpbnQgLyogdW5zaWduZWQgaW50Ki8gZmNkMTY7CisgICAgICAgIGludCBwcmV2Q0MsIGNjOworICAgIAorICAgICAgICAvKiBpbml0aWFsaXplICovCisgICAgICAgIGRlY29tcFN0YXJ0PXNyY1N0YXJ0OworICAgICAgICBkZXN0SW5kZXg9ZGVzdFN0YXJ0OworICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgYz0wOworICAgICAgICBmY2QxNj0wOworICAgICAgICBpbnRbXSBkZXN0SW5kZXhBcnIgPSBuZXcgaW50WzFdOworICAgICAgICBkZXN0SW5kZXhBcnJbMF09ZGVzdEluZGV4OworICAgICAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBza2lwIGEgcnVuIG9mIGNvZGUgdW5pdHMgYmVsb3cgdGhlIG1pbmltdW0gb3Igd2l0aCBpcnJlbGV2YW50IAorICAgICAgICAgICAgICogZGF0YSBmb3IgdGhlIEZDRCBjaGVjayAqLworICAgICAgICAgICAgcHJldlNyYz1zcmNTdGFydDsKKworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgaWYoc3JjU3RhcnQ9PXNyY0xpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigoYz1zcmNbc3JjU3RhcnRdKTxNSU5fV0lUSF9MRUFEX0NDKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KS1jOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigoZmNkMTY9Z2V0RkNEMTYoYykpPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3NyY1N0YXJ0OworICAgICAgICAgICAgfQorCisgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogcHJldkNDIGhhcyB2YWx1ZXMgZnJvbSB0aGUgZm9sbG93aW5nIHJhbmdlczoKKyAgICAgICAgICAgICAqIDAuLjB4ZmYgLSB0aGUgcHJldmlvdXMgdHJhaWwgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAgKiA8MCAgICAgIC0gdGhlIG5lZ2F0aXZlIHZhbHVlIG9mIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQ7CisgICAgICAgICAgICAgKiAgICAgICAgICAgdGhhdCBjb2RlIHVuaXQgd2FzIDxfTk9STV9NSU5fV0lUSF9MRUFEX0NDIGFuZCBpdHMgCisgICAgICAgICAgICAgKiAgICAgICAgICAgZ2V0RkNEMTYoKQorICAgICAgICAgICAgICogICAgICAgICAgIHdhcyBkZWZlcnJlZCBzbyB0aGF0IGF2ZXJhZ2UgdGV4dCBpcyBjaGVja2VkIGZhc3RlcgorICAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAvKiBjb3B5IHRoZXNlIGNvZGUgdW5pdHMgYWxsIGF0IG9uY2UgKi8KKyAgICAgICAgICAgIGlmKHNyY1N0YXJ0IT1wcmV2U3JjKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPShpbnQpKHNyY1N0YXJ0LXByZXZTcmMpOworICAgICAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHByZXZTcmMsZGVzdCxkZXN0SW5kZXgsbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgcHJldlNyYz1zcmNTdGFydDsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBwcmV2Q0M8MCBpcyBvbmx5IHBvc3NpYmxlIGZyb20gdGhlIGFib3ZlIGxvb3AsIGkuZS4sIG9ubHkgaWYKKyAgICAgICAgICAgICAgICAgKiAgcHJldlNyYzxzcmMgKi8KKyAgICAgICAgICAgICAgICBpZihwcmV2Q0M8MCkgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIHdhcyA8X05PUk1fTUlOX1dJVEhfTEVBRF9DQywgd2UgCisgICAgICAgICAgICAgICAgICAgICAqIG5lZWQgdG8gZ2V0IGl0cyB0cmFpbCBjYyAqLworICAgICAgICAgICAgICAgICAgICBpZighbnhfY29udGFpbnMobngsIChpbnQpLXByZXZDQykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KShnZXRGQ0QxNigoaW50KS1wcmV2Q0MpJjB4ZmYpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldkNDPTA7IC8qIGV4Y2x1ZGVkOiBmY2QxNj09MCAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIHNldCBhIHBvaW50ZXIgdG8gdGhpcyBiZWxvdy1VKzAzMDAgY2hhcmFjdGVyOworICAgICAgICAgICAgICAgICAgICAgKiBpZiBwcmV2Q0M9PTAgdGhlbiBpdCB3aWxsIG1vdmVkIHRvIGFmdGVyIHRoaXMgY2hhcmFjdGVyIAorICAgICAgICAgICAgICAgICAgICAgKiBiZWxvdworICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgZGVjb21wU3RhcnQ9cHJldlNyYy0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBub3c6CisgICAgICAgICAgICAgKiBwcmV2U3JjPT1zcmMgLSB1c2VkIGxhdGVyIHRvIGFkanVzdCBkZXN0SW5kZXggYmVmb3JlIAorICAgICAgICAgICAgICogICAgICAgICAgZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgICogcHJldkNDPj0wCisgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIC8qIGVuZCBvZiBzb3VyY2UgcmVhY2hlZD8gKi8KKyAgICAgICAgICAgIGlmKHNyY1N0YXJ0PT1zcmNMaW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogc2V0IGEgcG9pbnRlciB0byBhZnRlciB0aGUgbGFzdCBzb3VyY2UgcG9zaXRpb24gd2hlcmUgcHJldkNDPT0wKi8KKyAgICAgICAgICAgIGlmKHByZXZDQz09MCkgeworICAgICAgICAgICAgICAgIGRlY29tcFN0YXJ0PXByZXZTcmM7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBjIGFscmVhZHkgY29udGFpbnMgKnNyYyBhbmQgZmNkMTYgaXMgc2V0IGZvciBpdCwgaW5jcmVtZW50IHNyYyAqLworICAgICAgICAgICAgKytzcmNTdGFydDsKKyAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIGZjZDE2ICovCisgICAgICAgICAgICAgICAgaWYoc3JjU3RhcnQhPXNyY0xpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3NyY1N0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytzcmNTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgZmNkMTY9Z2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcigoY2hhcilmY2QxNiwgYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGZjZDE2PTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogd2UgYXJlIGxvb2tpbmcgYXQgdGhlIGNoYXJhY3RlciAoYywgYzIpIGF0IFtwcmV2U3JjLi5zcmNbICovCisgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYywgYzIpKSB7CisgICAgICAgICAgICAgICAgZmNkMTY9MDsgLyogZXhjbHVkZWQ6IGZjZDE2PT0wICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBjaGVjayB0aGUgY29tYmluaW5nIG9yZGVyLCBnZXQgdGhlIGxlYWQgY2MgKi8KKyAgICAgICAgICAgIGNjPShpbnQpKGZjZDE2Pj44KTsKKyAgICAgICAgICAgIGlmKGNjPT0wIHx8IGNjPj1wcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAvKiB0aGUgb3JkZXIgaXMgb2sgKi8KKyAgICAgICAgICAgICAgICBpZihjYz09MCkgeworICAgICAgICAgICAgICAgICAgICBkZWNvbXBTdGFydD1wcmV2U3JjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmV2Q0M9KGludCkoZmNkMTYmMHhmZik7CisgICAgCisgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgKGMsIGMyKSAqLworICAgICAgICAgICAgICAgIGxlbmd0aD0gYzI9PTAgPyAxIDogMjsKKyAgICAgICAgICAgICAgICBpZigoZGVzdEluZGV4K2xlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jOworICAgICAgICAgICAgICAgICAgICBpZihjMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogYmFjayBvdXQgdGhlIHBhcnQgb2YgdGhlIHNvdXJjZSB0aGF0IHdlIGNvcGllZCBhbHJlYWR5IGJ1dAorICAgICAgICAgICAgICAgICAqIGlzIG5vdyBnb2luZyB0byBiZSBkZWNvbXBvc2VkOworICAgICAgICAgICAgICAgICAqIHByZXZTcmMgaXMgc2V0IHRvIGFmdGVyIHdoYXQgd2FzIGNvcGllZAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleC09KGludCkocHJldlNyYy1kZWNvbXBTdGFydCk7CisgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBmaW5kIHRoZSBwYXJ0IG9mIHRoZSBzb3VyY2UgdGhhdCBuZWVkcyB0byBiZSBkZWNvbXBvc2VkOworICAgICAgICAgICAgICAgICAqIHRvIGJlIHNhZmUgYW5kIHNpbXBsZSwgZGVjb21wb3NlIHRvIGJlZm9yZSB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgKiB3aXRoIGxlYWQgY2M9PTAKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBzcmNTdGFydD1maW5kU2FmZUZDRChzcmMsc3JjU3RhcnQsIHNyY0xpbWl0LCAoY2hhcilmY2QxNik7CisgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiB0aGUgc291cmNlIHRleHQgZG9lcyBub3QgZnVsZmlsbCB0aGUgY29uZGl0aW9ucyBmb3IgRkNEOworICAgICAgICAgICAgICAgICAqIGRlY29tcG9zZSBhbmQgcmVvcmRlciBhIGxpbWl0ZWQgcGllY2Ugb2YgdGhlIHRleHQKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBkZXN0SW5kZXhBcnJbMF0gPSBkZXN0SW5kZXg7CisgICAgICAgICAgICAgICAgcHJldkNDPWRlY29tcG9zZUZDRChzcmMsZGVjb21wU3RhcnQsIHNyY1N0YXJ0LGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4QXJyLG54KTsKKyAgICAgICAgICAgICAgICBkZWNvbXBTdGFydD1zcmNTdGFydDsKKyAgICAgICAgICAgICAgICBkZXN0SW5kZXg9ZGVzdEluZGV4QXJyWzBdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVzdEluZGV4IC0gZGVzdFN0YXJ0OworICAgIAorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvbWJpbmluZ0NsYXNzKGludCBjKSB7CisgICAgICAgIGxvbmcgbm9ybTMyOworICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworICAgICAgICByZXR1cm4gKGNoYXIpKChub3JtMzI+PkNDX1NISUZUKSYweEZGKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRnVsbENvbXBvc2l0aW9uRXhjbHVzaW9uKGludCBjKSB7CisgICAgICAgIGlmKGlzRm9ybWF0VmVyc2lvbl8yXzEpIHsKKyAgICAgICAgICAgIGludCBhdXggPUF1eFRyaWVJbXBsLmF1eFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKChhdXggJiBBVVhfQ09NUF9FWF9NQVNLKSE9MCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQ2Fub25TYWZlU3RhcnQoaW50IGMpIHsKKyAgICAgICAgaWYoaXNGb3JtYXRWZXJzaW9uXzJfMSkgeworICAgICAgICAgICAgaW50IGF1eCA9IEF1eFRyaWVJbXBsLmF1eFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKChhdXggJiBBVVhfVU5TQUZFX01BU0spPT0wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZ2V0Q2Fub25TdGFydFNldChpbnQgYywgVVNlcmlhbGl6ZWRTZXQgZmlsbFNldCkgeworCisgICAgICAgIGlmKGZpbGxTZXQhPW51bGwgJiYgY2Fub25TdGFydFNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogYmluYXJ5IHNlYXJjaCBmb3IgYworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFRoZXJlIGFyZSB0d28gc2VhcmNoIHRhYmxlcywKKyAgICAgICAgICAgICAqIG9uZSBmb3IgQk1QIGNvZGUgcG9pbnRzIGFuZCBvbmUgZm9yIHN1cHBsZW1lbnRhcnkgb25lcy4KKyAgICAgICAgICAgICAqIFNlZSB1bm9ybWltcC5oIGZvciBkZXRhaWxzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjaGFyW10gdGFibGU7CisgICAgICAgICAgICBpbnQgaT0wLCBzdGFydCwgbGltaXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludFtdIGluZGV4ZXMgPSAoaW50W10pIGNhbm9uU3RhcnRTZXRzW0NBTk9OX1NFVF9JTkRJQ0lFU19JTkRFWF07CisgICAgICAgICAgICBjaGFyW10gc3RhcnRTZXRzID0gKGNoYXJbXSkgY2Fub25TdGFydFNldHNbQ0FOT05fU0VUX1NUQVJUX1NFVFNfSU5ERVhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICB0YWJsZT0oY2hhcltdKSBjYW5vblN0YXJ0U2V0c1tDQU5PTl9TRVRfQk1QX1RBQkxFX0lOREVYXTsKKyAgICAgICAgICAgICAgICBzdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0PXRhYmxlLmxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBlYWNoIGVudHJ5IGlzIGEgcGFpciB7IGMsIHJlc3VsdCB9ICovCisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8bGltaXQtMikgeworICAgICAgICAgICAgICAgICAgICBpPShjaGFyKSgoKHN0YXJ0K2xpbWl0KS80KSoyKTsgCisgICAgICAgICAgICAgICAgICAgIGlmKGM8dGFibGVbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0PWk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydD1pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGkpOworICAgICAgICAgICAgICAgIC8qIGZvdW5kPyAqLworICAgICAgICAgICAgICAgIGlmKGM9PXRhYmxlW3N0YXJ0XSkgeworICAgICAgICAgICAgICAgICAgICBpPXRhYmxlW3N0YXJ0KzFdOworICAgICAgICAgICAgICAgICAgICBpZigoaSAmIENBTk9OX1NFVF9CTVBfTUFTSyk9PUNBTk9OX1NFVF9CTVBfSVNfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlc3VsdCAwMXh4eHh4eCB4eHh4eHggY29udGFpbnMgaW5kZXggeCB0byBhIAorICAgICAgICAgICAgICAgICAgICAgICAgICogVVNlcmlhbGl6ZWRTZXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGkmPShDQU5PTl9TRVRfTUFYX0NBTk9OX1NFVFMtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsbFNldC5nZXRTZXQoc3RhcnRTZXRzLChpLWluZGV4ZXMubGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdGhlciByZXN1bHQgdmFsdWVzIGFyZSBCTVAgY29kZSBwb2ludHMgZm9yIAorICAgICAgICAgICAgICAgICAgICAgICAgICogc2luZ2xlLWNvZGUgcG9pbnQgc2V0cyAqLworICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFNldC5zZXRUb09uZShpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaGFyIGhpZ2gsIGxvdywgaCxqPTA7CisgICAgCisgICAgICAgICAgICAgICAgdGFibGU9KGNoYXJbXSkgY2Fub25TdGFydFNldHNbQ0FOT05fU0VUX1NVUFBfVEFCTEVfSU5ERVhdOworICAgICAgICAgICAgICAgIHN0YXJ0PTA7CisgICAgICAgICAgICAgICAgbGltaXQ9dGFibGUubGVuZ3RoOworICAgIAorICAgICAgICAgICAgICAgIGhpZ2g9KGNoYXIpKGM+PjE2KTsKKyAgICAgICAgICAgICAgICBsb3c9KGNoYXIpYzsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBlYWNoIGVudHJ5IGlzIGEgdHJpcGxldCB7IGhpZ2goYyksIGxvdyhjKSwgcmVzdWx0IH0gKi8KKyAgICAgICAgICAgICAgICB3aGlsZShzdGFydDxsaW1pdC0zKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIChzdGFydCtsaW1pdCkvMiBhbmQgYWRkcmVzcyB0cmlwbGV0cyAqLworICAgICAgICAgICAgICAgICAgICBpPShjaGFyKSgoKHN0YXJ0K2xpbWl0KS82KSozKTsKKyAgICAgICAgICAgICAgICAgICAgaj0oY2hhcikodGFibGVbaV0mMHgxZik7IC8qIGhpZ2ggd29yZCAqLworICAgICAgICAgICAgICAgICAgICBpbnQgdGFibGVWYWwgPSB0YWJsZVtpKzFdOworICAgICAgICAgICAgICAgICAgICBpbnQgbG93SW50ID0gbG93OworICAgICAgICAgICAgICAgICAgICBpZihoaWdoPGogfHwgKCh0YWJsZVZhbD5sb3dJbnQpICYmIChoaWdoPT1qKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0PWk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydD1pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5lcnIucHJpbnRsbigiXHQoKGhpZ2g9PWopICYmICh0YWJsZVtpKzFdPmxvdykpID09ICIgKyAoKGhpZ2g9PWopICYmICh0YWJsZVZhbD5sb3dJbnQpKSApOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gS0xVREdFOiBJQk0gSklUIGluIDEuNC4wIGlzIHNvb28gYnJva2VuCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBiZWxvdyBsaW5lcyBtYWtlIFRlc3RFeGhhdXN0aXZlIHBhc3MKKyAgICAgICAgICAgICAgICAgICAgaWYoSUNVRGVidWcuZW5hYmxlZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiXHRcdCBqID0gIiArIFV0aWxpdHkuaGV4KGosNCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdCBpID0gIiArIFV0aWxpdHkuaGV4KGksNCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdCBoaWdoID0gIisgVXRpbGl0eS5oZXgoaGlnaCkgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHQgbG93ID0gIiAgKyBVdGlsaXR5LmhleChsb3dJbnQsNCkgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx0IHRhYmxlW2krMV06ICIrIFV0aWxpdHkuaGV4KHRhYmxlVmFsLDQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvKiBmb3VuZD8gKi8KKyAgICAgICAgICAgICAgICBoPXRhYmxlW3N0YXJ0XTsKKworICAgICAgICAgICAgICAgIC8vU3lzdGVtLmVyci5wcmludGxuKCJjOiBcXFUiKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKyIgaSA6ICIrSW50ZWdlci50b0hleFN0cmluZyhpKSArIiBoIDogIiArIEludGVnZXIudG9IZXhTdHJpbmcoaCkpOworICAgICAgICAgICAgICAgIGludCB0YWJsZVZhbDEgPSB0YWJsZVtzdGFydCsxXTsKKyAgICAgICAgICAgICAgICBpbnQgbG93SW50ID0gbG93OworCisgICAgICAgICAgICAgICAgaWYoaGlnaD09KGgmMHgxZikgJiYgbG93SW50PT10YWJsZVZhbDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRhYmxlVmFsMiA9IHRhYmxlW3N0YXJ0KzJdOworICAgICAgICAgICAgICAgICAgICBpPXRhYmxlVmFsMjsKKyAgICAgICAgICAgICAgICAgICAgaWYoKGgmMHg4MDAwKT09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhlIHJlc3VsdCBpcyBhbiBpbmRleCB0byBhIFVTZXJpYWxpemVkU2V0ICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsbFNldC5nZXRTZXQoc3RhcnRTZXRzLChpLWluZGV4ZXMubGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogc2luZ2xlLWNvZGUgcG9pbnQgc2V0IHt4fSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICogdHJpcGxldCB7IDEwMHh4eHh4IDAwMGhoaGhoICBsbGxsbGxsbCBsbGxsbGxsbCAgeHh4eHh4eHggeHh4eHh4eHggfQorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAvL2l8PSgoaW50KWggJiAweDFmMDApPDw4OyAvKiBhZGQgaGlnaCBiaXRzIGZyb20gaGlnaChjKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAoKGludCloICYgMHgxZjAwKTw8ODsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl8PXRlbXA7IC8qIGFkZCBoaWdoIGJpdHMgZnJvbSBoaWdoKGMpICovCisgICAgICAgICAgICAgICAgICAgICAgICBmaWxsU2V0LnNldFRvT25lKChpbnQpaSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBmb3VuZCAqLworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRGQ19ORktDX0Nsb3N1cmUoaW50IGMsIGNoYXJbXSBkZXN0KSB7CisgICAgICAgIAorICAgICAgICBpbnQgZGVzdENhcGFjaXR5OworICAgICAgICAgCisgICAgICAgIGlmKGRlc3Q9PW51bGwgKSB7CisgICAgICAgICAgICBkZXN0Q2FwYWNpdHk9MDsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBkZXN0Q2FwYWNpdHkgPSBkZXN0Lmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGF1eCA9QXV4VHJpZUltcGwuYXV4VHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKworICAgICAgICBhdXgmPSBBVVhfRk5DX01BU0s7CisgICAgICAgIGlmKGF1eCE9MCkgeworICAgICAgICAgICAgaW50IHM7CisgICAgICAgICAgICBpbnQgaW5kZXg9YXV4OyAKKyAgICAgICAgICAgIGludCBsZW5ndGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHMgPWV4dHJhRGF0YVtpbmRleF07CisgICAgICAgICAgICBpZihzPDB4ZmYwMCkgeworICAgICAgICAgICAgICAgIC8qIHMgcG9pbnRzIHRvIHRoZSBzaW5nbGUtdW5pdCBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPXMmMHhmZjsKKyAgICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoMDxsZW5ndGggJiYgbGVuZ3RoPD1kZXN0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGV4dHJhRGF0YSxpbmRleCxkZXN0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyogSXMgYyBhbiBORjxtb2RlPi1za2lwcGFibGUgY29kZSBwb2ludD8gU2VlIHVub3JtaW1wLmguICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlLCBsb25nIG1hc2spIHsKKyAgICAgICAgbG9uZyAvKnVuc2lnbmVkIGludCovIG5vcm0zMjsKKyAgICAgICAgbWFzayA9IG1hc2sgJiBVTlNJR05FRF9JTlRfTUFTSzsKKyAgICAgICAgY2hhciBhdXg7CisgICAKKyAgICAgICAgLyogY2hlY2sgY29uZGl0aW9ucyAoYSkuLihlKSwgc2VlIHVub3JtaW1wLmggKi8KKyAgICAgICAgbm9ybTMyID0gZ2V0Tm9ybTMyKGMpOworCisgICAgICAgIGlmKChub3JtMzImbWFzaykhPTApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogZmFpbHMgKGEpLi4oZSksIG5vdCBza2lwcGFibGUgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZihtb2RlID09IE5vcm1hbGl6ZXIuTkZEIHx8IG1vZGUgPT0gTm9ybWFsaXplci5ORktEIHx8IG1vZGUgPT0gTm9ybWFsaXplci5OT05FKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiBORipELCBwYXNzZWQgKGEpLi4oYyksIGlzIHNraXBwYWJsZSAqLworICAgICAgICB9CisgICAgICAgIC8qIGNoZWNrIGNvbmRpdGlvbnMgKGEpLi4oZSksIHNlZSB1bm9ybWltcC5oICovCisKKyAgICAgICAgLyogTkYqQy9GQ0MsIHBhc3NlZCAoYSkuLihlKSAqLworICAgICAgICBpZigobm9ybTMyJiBRQ19ORkQpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogbm8gY2Fub25pY2FsIGRlY29tcG9zaXRpb24sIGlzIHNraXBwYWJsZSAqLworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGNoZWNrIEhhbmd1bCBzeWxsYWJsZXMgYWxnb3JpdGhtaWNhbGx5ICovCisgICAgICAgIGlmKGlzTm9ybTMySGFuZ3VsT3JKYW1vKG5vcm0zMikpIHsKKyAgICAgICAgICAgIC8qIEphbW8gcGFzc2VkIChhKS4uKGUpIGFib3ZlLCBtdXN0IGJlIEhhbmd1bCAqLworICAgICAgICAgICAgcmV0dXJuICFpc0hhbmd1bFdpdGhvdXRKYW1vVCgoY2hhciljKTsgLyogTFZUIGFyZSBza2lwcGFibGUsIExWIGFyZSBub3QgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBpZihtb2RlPD1VTk9STV9ORktDKSB7IC0tIGVuYWJsZSB3aGVuIGltcGxlbWVudGluZyBGQ0MgKi8KKyAgICAgICAgLyogTkYqQywgdGVzdCAoZikgZmxhZyAqLworICAgICAgICBpZighaXNGb3JtYXRWZXJzaW9uXzJfMikgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBubyAoZikgZGF0YSwgc2F5IG5vdCBza2lwcGFibGUgdG8gYmUgc2FmZSAqLworICAgICAgICB9CisgICAgCisKKyAgICAgICAgYXV4ID0gQXV4VHJpZUltcGwuYXV4VHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgcmV0dXJuIChhdXgmQVVYX05GQ19TS0lQX0ZfTUFTSyk9PTA7IC8qIFRSVUU9c2tpcHBhYmxlIGlmIHRoZSAoZikgZmxhZyBpcyBub3Qgc2V0ICovCisgICAgCisgICAgICAgIC8qIH0gZWxzZSB7IEZDQywgdGVzdCBmY2Q8PTEgaW5zdGVhZCBvZiB0aGUgYWJvdmUgfSAqLworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuCisgICAgX2VudW1Qcm9wZXJ0eVN0YXJ0c1JhbmdlKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVDaGFyMzIgc3RhcnQsIFVDaGFyMzIgbGltaXQsIHVpbnQzMl90IHZhbHVlKSB7CisgICAgICAgIC8vIGFkZCB0aGUgc3RhcnQgY29kZSBwb2ludCB0byB0aGUgVVNldCAKKyAgICAgICAgdXNldF9hZGQoKFVTZXQgKiljb250ZXh0LCBzdGFydCk7CisgICAgICAgIHJldHVybiBUUlVFOworICAgIH0KKyAgICAqLworCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGludCBjOworICAgICAgIAorICAgICAgICAvKiBhZGQgdGhlIHN0YXJ0IGNvZGUgcG9pbnQgb2YgZWFjaCBzYW1lLXZhbHVlIHJhbmdlIG9mIGVhY2ggdHJpZSAqLworICAgICAgICAvL3V0cmllX2VudW0oJm5vcm1UcmllLCBOVUxMLCBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UsIHNldCk7CisgICAgICAgIFRyaWVJdGVyYXRvciBub3JtSXRlciA9IG5ldyBUcmllSXRlcmF0b3IoTm9ybVRyaWVJbXBsLm5vcm1UcmllKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgbm9ybVJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUobm9ybUl0ZXIubmV4dChub3JtUmVzdWx0KSl7CisgICAgICAgICAgICBzZXQuYWRkKG5vcm1SZXN1bHQuc3RhcnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL3V0cmllX2VudW0oJmZjZFRyaWUsIE5VTEwsIF9lbnVtUHJvcGVydHlTdGFydHNSYW5nZSwgc2V0KTsKKyAgICAgICAgVHJpZUl0ZXJhdG9yIGZjZEl0ZXIgID0gbmV3IFRyaWVJdGVyYXRvcihGQ0RUcmllSW1wbC5mY2RUcmllKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZmNkUmVzdWx0ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisKKyAgICAgICAgd2hpbGUoZmNkSXRlci5uZXh0KGZjZFJlc3VsdCkpeworICAgICAgICAgICAgc2V0LmFkZChmY2RSZXN1bHQuc3RhcnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZihpc0Zvcm1hdFZlcnNpb25fMl8xKXsKKyAgICAgICAgICAgIC8vdXRyaWVfZW51bSgmYXV4VHJpZSwgTlVMTCwgX2VudW1Qcm9wZXJ0eVN0YXJ0c1JhbmdlLCBzZXQpOworICAgICAgICAgICAgVHJpZUl0ZXJhdG9yIGF1eEl0ZXIgID0gbmV3IFRyaWVJdGVyYXRvcihBdXhUcmllSW1wbC5hdXhUcmllKTsKKyAgICAgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGF1eFJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAgICAgd2hpbGUoYXV4SXRlci5uZXh0KGF1eFJlc3VsdCkpeworICAgICAgICAgICAgICAgIHNldC5hZGQoYXV4UmVzdWx0LnN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKiBhZGQgSGFuZ3VsIExWIHN5bGxhYmxlcyBhbmQgTFYrMSBiZWNhdXNlIG9mIHNraXBwYWJsZXMgKi8KKyAgICAgICAgZm9yKGM9SEFOR1VMX0JBU0U7IGM8SEFOR1VMX0JBU0UrSEFOR1VMX0NPVU5UOyBjKz1KQU1PX1RfQ09VTlQpIHsKKyAgICAgICAgICAgIHNldC5hZGQoYyk7CisgICAgICAgICAgICBzZXQuYWRkKGMrMSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0LmFkZChIQU5HVUxfQkFTRStIQU5HVUxfQ09VTlQpOyAvKiBhZGQgSGFuZ3VsKzEgdG8gY29udGludWUgd2l0aCBvdGhlciBwcm9wZXJ0aWVzICovCisgICAgICAgIHJldHVybiBzZXQ7IC8vIGZvciBjaGFpbmluZworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIEFQSSwgdXNlZCBpbiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoKS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIG1vZGVWYWx1ZSBudW1lcmljIHZhbHVlIGNvbXBhdGlibGUgd2l0aCBNb2RlCisgICAgICogQHJldHVybiBudW1lcmljIHZhbHVlIGNvbXBhdGlibGUgd2l0aCBRdWlja0NoZWNrCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcXVpY2tDaGVjayhpbnQgYywgaW50IG1vZGVWYWx1ZSkgeworICAgICAgICBmaW5hbCBpbnQgcWNNYXNrWy8qVU5PUk1fTU9ERV9DT1VOVCovXT17CisgICAgICAgICAgICAwLCAwLCBRQ19ORkQsIFFDX05GS0QsIFFDX05GQywgUUNfTkZLQworICAgICAgICB9OworCisgICAgICAgIGludCBub3JtMzI9KGludClnZXROb3JtMzIoYykmcWNNYXNrW21vZGVWYWx1ZV07CisKKyAgICAgICAgaWYobm9ybTMyPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gMTsgLy8gWUVTCisgICAgICAgIH0gZWxzZSBpZigobm9ybTMyJlFDX0FOWV9OTykhPTApIHsKKyAgICAgICAgICAgIHJldHVybiAwOyAvLyBOTworICAgICAgICB9IGVsc2UgLyogX05PUk1fUUNfQU5ZX01BWUJFICovIHsKKyAgICAgICAgICAgIHJldHVybiAyOyAvLyBNQVlCRTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIEFQSSwgdXNlZCBieSBjb2xsYXRpb24gY29kZS4KKyAgICAgKiBHZXQgYWNjZXNzIHRvIHRoZSBpbnRlcm5hbCBGQ0QgdHJpZSB0YWJsZSB0byBiZSBhYmxlIHRvIHBlcmZvcm0KKyAgICAgKiBpbmNyZW1lbnRhbCwgcGVyLWNvZGUgdW5pdCwgRkNEIGNoZWNrcyBpbiBjb2xsYXRpb24uCisgICAgICogT25lIHBvaW50ZXIgaXMgc3VmZmljaWVudCBiZWNhdXNlIHRoZSB0cmllIGluZGV4IHZhbHVlcyBhcmUgb2Zmc2V0CisgICAgICogYnkgdGhlIGluZGV4IHNpemUsIHNvIHRoYXQgdGhlIHNhbWUgcG9pbnRlciBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgdHJpZSAKKyAgICAgKiBkYXRhLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgQ2hhclRyaWUgZ2V0RkNEVHJpZSgpeworICAgICAgICByZXR1cm4gRkNEVHJpZUltcGwuZmNkVHJpZTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKworICAgIAorICAgLyogY29tcGFyZSBjYW5vbmljYWxseSBlcXVpdmFsZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qCisgICAgICogQ29tcGFyZSB0d28gc3RyaW5ncyBmb3IgY2Fub25pY2FsIGVxdWl2YWxlbmNlLgorICAgICAqIEZ1cnRoZXIgb3B0aW9ucyBpbmNsdWRlIGNhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbiBhbmQKKyAgICAgKiBjb2RlIHBvaW50IG9yZGVyIChhcyBvcHBvc2VkIHRvIGNvZGUgdW5pdCBvcmRlcikuCisgICAgICoKKyAgICAgKiBJbiB0aGlzIGZ1bmN0aW9uLCBjYW5vbmljYWwgZXF1aXZhbGVuY2UgaXMgb3B0aW9uYWwgYXMgd2VsbC4KKyAgICAgKiBJZiBjYW5vbmljYWwgZXF1aXZhbGVuY2UgaXMgdGVzdGVkLCB0aGVuIGJvdGggc3RyaW5ncyBtdXN0IGZ1bGZpbGwKKyAgICAgKiB0aGUgRkNEIGNoZWNrLgorICAgICAqCisgICAgICogU2VtYW50aWNhbGx5LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIHN0cmNtcFtDb2RlUG9pbnRPcmRlcl0oZm9sZENhc2UoTkZEKHMxKSksIGZvbGRDYXNlKE5GRChzMikpKQorICAgICAqIHdoZXJlIGNvZGUgcG9pbnQgb3JkZXIsIE5GRCBhbmQgZm9sZENhc2UgYXJlIGFsbCBvcHRpb25hbC4KKyAgICAgKgorICAgICAqIFN0cmluZyBjb21wYXJpc29ucyBhbG1vc3QgYWx3YXlzIHlpZWxkIHJlc3VsdHMgYmVmb3JlIHByb2Nlc3NpbmcgYm90aCAKKyAgICAgKiBzdHJpbmdzIGNvbXBsZXRlbHkuCisgICAgICogVGhleSBhcmUgZ2VuZXJhbGx5IG1vcmUgZWZmaWNpZW50IHdvcmtpbmcgaW5jcmVtZW50YWxseSBpbnN0ZWFkIG9mCisgICAgICogcGVyZm9ybWluZyB0aGUgc3ViLXByb2Nlc3NpbmcgKHN0cmxlbiwgbm9ybWFsaXphdGlvbiwgY2FzZS1mb2xkaW5nKQorICAgICAqIG9uIHRoZSBlbnRpcmUgc3RyaW5ncyBmaXJzdC4KKyAgICAgKgorICAgICAqIEl0IGlzIGFsc28gdW5uZWNlc3NhcnkgdG8gbm90IG5vcm1hbGl6ZSBpZGVudGljYWwgY2hhcmFjdGVycy4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gd29ya3MgaW4gcHJpbmNpcGxlIGFzIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiBsb29wIHsKKyAgICAgKiAgIGdldCBvbmUgY29kZSB1bml0IGMxIGZyb20gczEgKC0xIGlmIGVuZCBvZiBzb3VyY2UpCisgICAgICogICBnZXQgb25lIGNvZGUgdW5pdCBjMiBmcm9tIHMyICgtMSBpZiBlbmQgb2Ygc291cmNlKQorICAgICAqCisgICAgICogICBpZihlaXRoZXIgc3RyaW5nIGZpbmlzaGVkKSB7CisgICAgICogICAgIHJldHVybiByZXN1bHQ7CisgICAgICogICB9CisgICAgICogICBpZihjMT09YzIpIHsKKyAgICAgKiAgICAgY29udGludWU7CisgICAgICogICB9CisgICAgICoKKyAgICAgKiAgIC8vIGMxIT1jMgorICAgICAqICAgdHJ5IHRvIGRlY29tcG9zZS9jYXNlLWZvbGQgYzEvYzIsIGFuZCBjb250aW51ZSBpZiBvbmUgZG9lczsKKyAgICAgKgorICAgICAqICAgLy8gc3RpbGwgYzEhPWMyIGFuZCBuZWl0aGVyIGRlY29tcG9zZXMvY2FzZS1mb2xkcywgcmV0dXJuIHJlc3VsdAorICAgICAqICAgcmV0dXJuIGMxLWMyOworICAgICAqIH0KKyAgICAgKgorICAgICAqIFdoZW4gYSBjaGFyYWN0ZXIgZGVjb21wb3NlcywgdGhlbiB0aGUgcG9pbnRlciBmb3IgdGhhdCBzb3VyY2UgY2hhbmdlcyB0bworICAgICAqIHRoZSBkZWNvbXBvc2l0aW9uLCBwdXNoaW5nIHRoZSBwcmV2aW91cyBwb2ludGVyIG9udG8gYSBzdGFjay4KKyAgICAgKiBXaGVuIHRoZSBlbmQgb2YgdGhlIGRlY29tcG9zaXRpb24gaXMgcmVhY2hlZCwgdGhlbiB0aGUgY29kZSB1bml0IHJlYWRlcgorICAgICAqIHBvcHMgdGhlIHByZXZpb3VzIHNvdXJjZSBmcm9tIHRoZSBzdGFjay4KKyAgICAgKiAoU2FtZSBmb3IgY2FzZS1mb2xkaW5nLikKKyAgICAgKgorICAgICAqIFRoaXMgaXMgY29tcGxpY2F0ZWQgZnVydGhlciBieSBvcGVyYXRpbmcgb24gdmFyaWFibGUtd2lkdGggVVRGLTE2LgorICAgICAqIFRoZSB0b3AgcGFydCBvZiB0aGUgbG9vcCB3b3JrcyBvbiBjb2RlIHVuaXRzLCB3aGlsZSBsb29rdXBzIGZvciBkZWNvbXBvc2l0aW9uCisgICAgICogYW5kIGNhc2UtZm9sZGluZyBuZWVkIGNvZGUgcG9pbnRzLgorICAgICAqIENvZGUgcG9pbnRzIGFyZSBhc3NlbWJsZWQgYWZ0ZXIgdGhlIGVxdWFsaXR5L2VuZC1vZi1zb3VyY2UgcGFydC4KKyAgICAgKiBUaGUgc291cmNlIHBvaW50ZXIgaXMgb25seSBhZHZhbmNlZCBiZXlvbmQgYWxsIGNvZGUgdW5pdHMgd2hlbiB0aGUgY29kZSBwb2ludAorICAgICAqIGFjdHVhbGx5IGRlY29tcG9zZXMvY2FzZS1mb2xkcy4KKyAgICAgKgorICAgICAqIElmIHdlIHdlcmUgb24gYSB0cmFpbCBzdXJyb2dhdGUgdW5pdCB3aGVuIGFzc2VtYmxpbmcgYSBjb2RlIHBvaW50LAorICAgICAqIGFuZCB0aGUgY29kZSBwb2ludCBkZWNvbXBvc2VzL2Nhc2UtZm9sZHMsIHRoZW4gdGhlIGRlY29tcG9zaXRpb24vZm9sZGluZworICAgICAqIHJlc3VsdCBtdXN0IGJlIGNvbXBhcmVkIHdpdGggdGhlIHBhcnQgb2YgdGhlIG90aGVyIHN0cmluZyB0aGF0IGNvcnJlc3BvbmRzIHRvCisgICAgICogdGhpcyBzdHJpbmcncyBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBTaW5jZSB3ZSBvbmx5IGFzc2VtYmxlIGEgY29kZSBwb2ludCB3aGVuIGhpdHRpbmcgYSB0cmFpbCB1bml0IHdoZW4gdGhlCisgICAgICogcHJlY2VkaW5nIGxlYWQgdW5pdHMgd2VyZSBpZGVudGljYWwsIHdlIGJhY2sgdXAgdGhlIG90aGVyIHN0cmluZyBieSBvbmUgdW5pdAorICAgICAqIGluIHN1Y2ggYSBjYXNlLgorICAgICAqCisgICAgICogVGhlIG9wdGlvbmFsIGNvZGUgcG9pbnQgb3JkZXIgY29tcGFyaXNvbiBhdCB0aGUgZW5kIHdvcmtzIHdpdGgKKyAgICAgKiB0aGUgc2FtZSBmaXgtdXAgYXMgdGhlIG90aGVyIGNvZGUgcG9pbnQgb3JkZXIgY29tcGFyaXNvbiBmdW5jdGlvbnMuCisgICAgICogU2VlIHVzdHJpbmcuYyBhbmQgdGhlIGNvbW1lbnQgbmVhciB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBBc3N1bXB0aW9uOiBBIGRlY29tcG9zaXRpb24gb3IgY2FzZS1mb2xkaW5nIHJlc3VsdCBzdHJpbmcgbmV2ZXIgY29udGFpbnMKKyAgICAgKiBhIHNpbmdsZSBzdXJyb2dhdGUuIFRoaXMgaXMgYSBzYWZlIGFzc3VtcHRpb24gaW4gdGhlIFVuaWNvZGUgU3RhbmRhcmQuCisgICAgICogVGhlcmVmb3JlLCB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayBmb3Igc3Vycm9nYXRlIHBhaXJzIGFjcm9zcworICAgICAqIGRlY29tcG9zaXRpb24vY2FzZS1mb2xkaW5nIGJvdW5kYXJpZXMuCisgICAgICogRnVydGhlciBhc3N1bXB0aW9ucyAoc2VlIHZlcmlmaWNhdGlvbnMgdHN0bm9ybS5jcHApOgorICAgICAqIFRoZSBBUEkgZnVuY3Rpb24gY2hlY2tzIGZvciBGQ0QgZmlyc3QsIHdoaWxlIHRoZSBjb3JlIGZ1bmN0aW9uCisgICAgICogZmlyc3QgY2FzZS1mb2xkcyBhbmQgdGhlbiBkZWNvbXBvc2VzLiBUaGlzIHJlcXVpcmVzIHRoYXQgY2FzZS1mb2xkaW5nIGRvZXMgbm90CisgICAgICogdW4tRkNEIGFueSBzdHJpbmdzLgorICAgICAqCisgICAgICogVGhlIEFQSSBmdW5jdGlvbiBtYXkgYWxzbyBORkQgdGhlIGlucHV0IGFuZCB0dXJuIG9mZiBkZWNvbXBvc2l0aW9uLgorICAgICAqIFRoaXMgcmVxdWlyZXMgdGhhdCBjYXNlLWZvbGRpbmcgZG9lcyBub3QgdW4tTkZEIHN0cmluZ3MgZWl0aGVyLgorICAgICAqCisgICAgICogVE9ETyBJZiBhbnkgb2YgdGhlIGFib3ZlIHR3byBhc3N1bXB0aW9ucyBpcyB2aW9sYXRlZCwKKyAgICAgKiB0aGVuIHRoaXMgZW50aXJlIGNvZGUgbXVzdCBiZSByZS10aG91Z2h0LgorICAgICAqIElmIHRoaXMgaGFwcGVucywgdGhlbiBhIHNpbXBsZSBzb2x1dGlvbiBpcyB0byBjYXNlLWZvbGQgYm90aCBzdHJpbmdzIHVwIGZyb250CisgICAgICogYW5kIHRvIHR1cm4gb2ZmIFVOT1JNX0lOUFVUX0lTX0ZDRC4KKyAgICAgKiBXZSBhbHJlYWR5IGRvIHRoaXMgd2hlbiBub3QgYm90aCBzdHJpbmdzIGFyZSBpbiBGQ0QgYmVjYXVzZSBtYWtlRkNECisgICAgICogd291bGQgYmUgYSBwYXJ0aWFsIE5GRCBiZWZvcmUgdGhlIGNhc2UgZm9sZGluZywgd2hpY2ggZG9lcyBub3Qgd29yay4KKyAgICAgKiBOb3RlIHRoYXQgYWxsIG9mIHRoaXMgaXMgb25seSBhIHByb2JsZW0gd2hlbiBjYXNlLWZvbGRpbmcgX2FuZF8KKyAgICAgKiBjYW5vbmljYWwgZXF1aXZhbGVuY2UgY29tZSB0b2dldGhlci4KKyAgICAgKiAKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNvdWxkIGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IHNvdXJjZSBmaWxlLCBhdCBpbmNyZWFzZWQgY29zdAorICAgICAqIGZvciBjYWxsaW5nIHRoZSBkZWNvbXBvc2l0aW9uIGFjY2VzcyBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICAKKyAgICAvLyBzdGFjayBlbGVtZW50IGZvciBwcmV2aW91cy1sZXZlbCBzb3VyY2UvZGVjb21wb3NpdGlvbiBwb2ludGVycworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENtcEVxdWl2TGV2ZWwgeworICAgICAgICBjaGFyW10gc291cmNlOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIGludCBzOworICAgICAgICBpbnQgbGltaXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gZm9yIG9uZSBjb2RlIHBvaW50LgorICAgICAqIEBwYXJhbSBjIGNvZGUgcG9pbnQKKyAgICAgKiBAcGFyYW0gYnVmZmVyIG91dC1vbmx5IGJ1ZmZlciBmb3IgYWxnb3JpdGhtaWMgZGVjb21wb3NpdGlvbnMgb2YgSGFuZ3VsCisgICAgICogQHBhcmFtIGxlbmd0aCBvdXQtb25seSwgdGFrZXMgdGhlIGxlbmd0aCBvZiB0aGUgZGVjb21wb3NpdGlvbiwgaWYgYW55CisgICAgICogQHJldHVybiBpbmRleCBpbnRvIHRoZSBleHRyYURhdGEgYXJyYXksIG9yIDAgaWYgbm9uZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgICBwcml2YXRlIHN0YXRpYyBpbnQgZGVjb21wb3NlKGludCBjLCBjaGFyW10gYnVmZmVyKSB7CisgICAgICAgIAorICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgaW50IGxlbmd0aD0wOworICAgICAgICBub3JtMzIgPSAobG9uZykgKChVTlNJR05FRF9JTlRfTUFTSykgJiBOb3JtVHJpZUltcGwubm9ybVRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykpOworICAgICAgICBpZigobm9ybTMyICYgUUNfTkZEKSE9MCkgeworICAgICAgICAgICAgaWYoaXNOb3JtMzJIYW5ndWxPckphbW8obm9ybTMyKSkgeworICAgICAgICAgICAgICAgIC8qIEhhbmd1bCBzeWxsYWJsZTogZGVjb21wb3NlIGFsZ29yaXRobWljYWxseSAqLworICAgICAgICAgICAgICAgIGNoYXIgYzI7CisgICAgCisgICAgICAgICAgICAgICAgYy09SEFOR1VMX0JBU0U7CisgICAgCisgICAgICAgICAgICAgICAgYzI9KGNoYXIpKGMlSkFNT19UX0NPVU5UKTsKKyAgICAgICAgICAgICAgICBjLz1KQU1PX1RfQ09VTlQ7CisgICAgICAgICAgICAgICAgaWYoYzI+MCkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXJbMl09KGNoYXIpKEpBTU9fVF9CQVNFK2MyKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1ZmZlclsxXT0oY2hhcikoSkFNT19WX0JBU0UrYyVKQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgIGJ1ZmZlclswXT0oY2hhcikoSkFNT19MX0JBU0UrYy9KQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgRGVjb21wb3NlQXJncyAgYXJncyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAgICAgaW50IGluZGV4ID0gZGVjb21wb3NlKG5vcm0zMiwgYXJncyk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShleHRyYURhdGEsaW5kZXgsYnVmZmVyLDAsYXJncy5sZW5ndGgpOworICAgICAgICAgICAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBmb2xkQ2FzZShpbnQgYywgY2hhcltdIGRlc3QsIGludCBkZXN0U3RhcnQsIGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucyl7CisgICAgICAgIFN0cmluZyBzcmMgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICBTdHJpbmcgZm9sZGVkU3RyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShzcmMsb3B0aW9ucyk7CisgICAgICAgIGNoYXJbXSBmb2xkZWRDID0gZm9sZGVkU3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8Zm9sZGVkQy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGlmKGRlc3RTdGFydDxkZXN0TGltaXQpeworICAgICAgICAgICAgICAgIGRlc3RbZGVzdFN0YXJ0XT1mb2xkZWRDW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWx3YXlzIGluY3JlbWVudCBkZXN0U3RhcnQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIAorICAgICAgICAgICAgLy8gdGhlIHJlcXVpcmVkIGxlbmd0aAorICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjPT1VVEYxNi5jaGFyQXQoZm9sZGVkU3RyLDApKSA/IC1kZXN0U3RhcnQgOiBkZXN0U3RhcnQ7CisgICAgfQorICAgIAorICAgIC8qCisgICAgIHByaXZhdGUgc3RhdGljIGludCBmb2xkQ2FzZShjaGFyW10gc3JjLGludCBzcmNTdGFydCxpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucyl7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPW5ldyBTdHJpbmcoc3JjLHNyY1N0YXJ0LChzcmNMaW1pdC1zcmNTdGFydCkpOworICAgICAgICBTdHJpbmcgZm9sZGVkU3RyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShzb3VyY2Usb3B0aW9ucyk7CisgICAgICAgIGNoYXJbXSBmb2xkZWRDID0gZm9sZGVkU3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8Zm9sZGVkQy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGlmKGRlc3RTdGFydDxkZXN0TGltaXQpeworICAgICAgICAgICAgICAgIGRlc3RbZGVzdFN0YXJ0XT1mb2xkZWRDW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWx3YXlzIGluY3JlbWVudCBkZXN0U3RhcnQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIAorICAgICAgICAgICAgLy8gdGhlIHJlcXVpcmVkIGxlbmd0aAorICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdFN0YXJ0OworICAgIH0KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNtcEVxdWl2Rm9sZChTdHJpbmcgczEsIFN0cmluZyBzMixpbnQgb3B0aW9ucyl7CisgICAgICAgIHJldHVybiBjbXBFcXVpdkZvbGQoczEudG9DaGFyQXJyYXkoKSwwLHMxLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMyLnRvQ2hhckFycmF5KCksMCxzMi5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLy8gaW50ZXJuYWwgZnVuY3Rpb24KKyAgICBwdWJsaWMgc3RhdGljIGludCBjbXBFcXVpdkZvbGQoY2hhcltdIHMxLCBpbnQgczFTdGFydCxpbnQgczFMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCxpbnQgczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgLy8gY3VycmVudC1sZXZlbCBzdGFydC9saW1pdCAtIHMxL3MyIGFzIGN1cnJlbnQKKyAgICAgICAgaW50IHN0YXJ0MSwgc3RhcnQyLCBsaW1pdDEsIGxpbWl0MjsKKyAgICAgICAgY2hhcltdIGNTb3VyY2UxLCBjU291cmNlMjsKKyAgICAgICAgCisgICAgICAgIGNTb3VyY2UxID0gczE7CisgICAgICAgIGNTb3VyY2UyID0gczI7CisgICAgICAgIC8vIGRlY29tcG9zaXRpb24gdmFyaWFibGVzCisgICAgICAgIGludCBsZW5ndGg7CisgICAgCisgICAgICAgIC8vIHN0YWNrcyBvZiBwcmV2aW91cy1sZXZlbCBzdGFydC9jdXJyZW50L2xpbWl0CisgICAgICAgIENtcEVxdWl2TGV2ZWxbXSBzdGFjazEgPSBuZXcgQ21wRXF1aXZMZXZlbFtdeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ21wRXF1aXZMZXZlbCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbXBFcXVpdkxldmVsKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgQ21wRXF1aXZMZXZlbFtdIHN0YWNrMiA9IG5ldyBDbXBFcXVpdkxldmVsW117IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbXBFcXVpdkxldmVsKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENtcEVxdWl2TGV2ZWwoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgIAorICAgICAgICAvLyBkZWNvbXBvc2l0aW9uIGJ1ZmZlcnMgZm9yIEhhbmd1bAorICAgICAgICBjaGFyW10gZGVjb21wMSA9IG5ldyBjaGFyWzhdOworICAgICAgICBjaGFyW10gZGVjb21wMiA9IG5ldyBjaGFyWzhdOworICAgIAorICAgICAgICAvLyBjYXNlIGZvbGRpbmcgYnVmZmVycywgb25seSB1c2UgY3VycmVudC1sZXZlbCBzdGFydC9saW1pdAorICAgICAgICBjaGFyW10gZm9sZDEgPSBuZXcgY2hhclszMl07CisgICAgICAgIGNoYXJbXSBmb2xkMiA9IG5ldyBjaGFyWzMyXTsKKyAgICAKKyAgICAgICAgLy8gdHJhY2sgd2hpY2ggaXMgdGhlIGN1cnJlbnQgbGV2ZWwgcGVyIHN0cmluZworICAgICAgICBpbnQgbGV2ZWwxLCBsZXZlbDI7CisgICAgCisgICAgICAgIC8vIGN1cnJlbnQgY29kZSB1bml0cywgYW5kIGNvZGUgcG9pbnRzIGZvciBsb29rdXBzCisgICAgICAgIGludCBjMSwgYzI7CisgICAgICAgIGludCBjcDEsIGNwMjsKKyAgICAKKyAgICAgICAgLy8gbm8gYXJndW1lbnQgZXJyb3IgY2hlY2tpbmcgYmVjYXVzZSB0aGlzIGl0c2VsZiBpcyBub3QgYW4gQVBJCisgICAgCisgICAgICAgIC8vIGFzc3VtZSB0aGF0IGF0IGxlYXN0IG9uZSBvZiB0aGUgb3B0aW9ucyBDT01QQVJFX0VRVUlWIGFuZCAKKyAgICAgICAgLy8gQ09NUEFSRV9JR05PUkVfQ0FTRSBpcyBzZXQKKyAgICAgICAgLy8gb3RoZXJ3aXNlIHRoaXMgZnVuY3Rpb24gbXVzdCBiZWhhdmUgZXhhY3RseSBhcyB1cHJ2X3N0ckNvbXBhcmUoKQorICAgICAgICAvLyBub3QgY2hlY2tpbmcgZm9yIHRoYXQgaGVyZSBtYWtlcyB0ZXN0aW5nIHRoaXMgZnVuY3Rpb24gZWFzaWVyCisKKyAgICAKKyAgICAgICAgLy8gaW5pdGlhbGl6ZQorICAgICAgICBzdGFydDE9czFTdGFydDsKKyAgICAgICAgbGltaXQxPXMxTGltaXQ7CisgICAgICAgIAorICAgICAgICBzdGFydDI9czJTdGFydDsKKyAgICAgICAgbGltaXQyPXMyTGltaXQ7CisgICAgICAgIAorICAgICAgICBsZXZlbDE9bGV2ZWwyPTA7CisgICAgICAgIGMxPWMyPS0xOworICAgICAgICBjcDE9Y3AyPS0xOworICAgICAgICAvLyBjb21wYXJpc29uIGxvb3AKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvLyBoZXJlIGEgY29kZSB1bml0IHZhbHVlIG9mIC0xIG1lYW5zICJnZXQgYW5vdGhlciBjb2RlIHVuaXQiCisgICAgICAgICAgICAvLyBiZWxvdyBpdCB3aWxsIG1lYW4gInRoaXMgc291cmNlIGlzIGZpbmlzaGVkIgorICAgIAorICAgICAgICAgICAgaWYoYzE8MCkgeworICAgICAgICAgICAgICAgIC8vIGdldCBuZXh0IGNvZGUgdW5pdCBmcm9tIHN0cmluZyAxLCBwb3N0LWluY3JlbWVudAorICAgICAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgICAgICBpZihzMVN0YXJ0Pj1saW1pdDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxldmVsMT09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMxPS0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYzE9Y1NvdXJjZTFbczFTdGFydF07CisgICAgICAgICAgICAgICAgICAgICAgICArK3MxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvLyByZWFjaGVkIGVuZCBvZiBsZXZlbCBidWZmZXIsIHBvcCBvbmUgbGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgLS1sZXZlbDE7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDE9c3RhY2sxW2xldmVsMV0uc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoc3RhcnQxPT0tMSk7IC8vIyMjIyMjIGNoZWNrIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgczFTdGFydD1zdGFjazFbbGV2ZWwxXS5zOworICAgICAgICAgICAgICAgICAgICBsaW1pdDE9c3RhY2sxW2xldmVsMV0ubGltaXQ7CisgICAgICAgICAgICAgICAgICAgIGNTb3VyY2UxPXN0YWNrMVtsZXZlbDFdLnNvdXJjZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZihjMjwwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0IG5leHQgY29kZSB1bml0IGZyb20gc3RyaW5nIDIsIHBvc3QtaW5jcmVtZW50CisgICAgICAgICAgICAgICAgZm9yKDs7KSB7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoczJTdGFydD49bGltaXQyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihsZXZlbDI9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMj0tMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMyPWNTb3VyY2UyW3MyU3RhcnRdOworICAgICAgICAgICAgICAgICAgICAgICAgKytzMlN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVhY2hlZCBlbmQgb2YgbGV2ZWwgYnVmZmVyLCBwb3Agb25lIGxldmVsCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tbGV2ZWwyOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQyPXN0YWNrMltsZXZlbDJdLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKHN0YXJ0Mj09LTEpOworICAgICAgICAgICAgICAgICAgICBzMlN0YXJ0PXN0YWNrMltsZXZlbDJdLnM7CisgICAgICAgICAgICAgICAgICAgIGxpbWl0Mj1zdGFjazJbbGV2ZWwyXS5saW1pdDsKKyAgICAgICAgICAgICAgICAgICAgY1NvdXJjZTI9c3RhY2syW2xldmVsMl0uc291cmNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgYzEgYW5kIGMyCisgICAgICAgICAgICAvLyBlaXRoZXIgdmFyaWFibGUgYzEsIGMyIGlzIC0xIG9ubHkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgc3RyaW5nIAorICAgICAgICAgICAgLy8gaXMgZmluaXNoZWQKKyAgICAgICAgICAgIGlmKGMxPT1jMikgeworICAgICAgICAgICAgICAgIGlmKGMxPDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7ICAgLy8gYzE9PWMyPT0tMSBpbmRpY2F0aW5nIGVuZCBvZiBzdHJpbmdzCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMxPWMyPS0xOyAgICAgICAvLyBtYWtlIHVzIGZldGNoIG5ldyBjb2RlIHVuaXRzCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgaWYoYzE8MCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsgICAgICAvLyBzdHJpbmcgMSBlbmRzIGJlZm9yZSBzdHJpbmcgMgorICAgICAgICAgICAgfSBlbHNlIGlmKGMyPDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsgICAgICAgLy8gc3RyaW5nIDIgZW5kcyBiZWZvcmUgc3RyaW5nIDEKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGMxIT1jMiAmJiBjMT49MCAmJiBjMj49MAorICAgIAorICAgICAgICAgICAgLy8gZ2V0IGNvbXBsZXRlIGNvZGUgcG9pbnRzIGZvciBjMSwgYzIgZm9yIGxvb2t1cHMgaWYgZWl0aGVyIGlzIGEgCisgICAgICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgICAgIGNwMT1jMTsKKyAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMxKSkgeyAKKyAgICAgICAgICAgICAgICBjaGFyIGM7CisgICAgCisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICBpZiggICAgczFTdGFydCE9bGltaXQxICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjPWNTb3VyY2UxW3MxU3RhcnRdKQorICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSArK3MxOyBvbmx5IGJlbG93IGlmIGNwMSBkZWNvbXBvc2VzL2Nhc2UtZm9sZHMKKyAgICAgICAgICAgICAgICAgICAgICAgIGNwMT1VQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgoY2hhciljMSwgYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgLyogaXNUcmFpbChjMSkgKi8geworICAgICAgICAgICAgICAgICAgICBpZiggICAgc3RhcnQxPD0oczFTdGFydC0yKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYz1jU291cmNlMVsoczFTdGFydC0yKV0pCisgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjcDE9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoYywgKGNoYXIpYzEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY3AyPWMyOworICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgY2hhciBjOworICAgIAorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoICAgIHMyU3RhcnQhPWxpbWl0MiAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYz1jU291cmNlMltzMlN0YXJ0XSkKKyAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgKytzMjsgb25seSBiZWxvdyBpZiBjcDIgZGVjb21wb3Nlcy9jYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICBjcDI9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpYzIsIGMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIC8qIGlzVHJhaWwoYzIpICovIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoICAgIHN0YXJ0Mjw9KHMyU3RhcnQtMikgJiYgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGM9Y1NvdXJjZTJbczJTdGFydC0yXSkKKyAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNwMj1VQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjLCAoY2hhciljMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBnbyBkb3duIG9uZSBsZXZlbCBmb3IgZWFjaCBzdHJpbmcKKyAgICAgICAgICAgIC8vIGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcCBhcyBzb29uIGFzIHRoZXJlIGlzIGEgcmVhbCBjaGFuZ2UKKyAgICAgICAgICAgIGlmKCBsZXZlbDE8MiAmJiAoKG9wdGlvbnMgJiBOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKSYmCisgICAgICAgICAgICAgICAgKGxlbmd0aD1mb2xkQ2FzZShjcDEsIGZvbGQxLCAwLDMyLG9wdGlvbnMpKT49MAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLy8gY3AxIGNhc2UtZm9sZHMgdG8gZm9sZDFbbGVuZ3RoXQorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIGJleW9uZCBzb3VyY2Ugc3Vycm9nYXRlIHBhaXIgaWYgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMxKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGl0cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSBtdXN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIG90aGVyIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgLS1zMlN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYzI9Y1NvdXJjZTJbKHMyU3RhcnQtMSldOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8vIHB1c2ggY3VycmVudCBsZXZlbCBwb2ludGVycworICAgICAgICAgICAgICAgIHN0YWNrMVswXS5zdGFydD1zdGFydDE7CisgICAgICAgICAgICAgICAgc3RhY2sxWzBdLnM9czFTdGFydDsKKyAgICAgICAgICAgICAgICBzdGFjazFbMF0ubGltaXQ9bGltaXQxOworICAgICAgICAgICAgICAgIHN0YWNrMVswXS5zb3VyY2U9Y1NvdXJjZTE7CisgICAgICAgICAgICAgICAgKytsZXZlbDE7CisgICAgCisgICAgICAgICAgICAgICAgY1NvdXJjZTEgPSBmb2xkMTsKKyAgICAgICAgICAgICAgICBzdGFydDE9czFTdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0MT1sZW5ndGg7CisgICAgCisgICAgICAgICAgICAgICAgLy8gZ2V0IHJlYWR5IHRvIHJlYWQgZnJvbSBkZWNvbXBvc2l0aW9uLCBjb250aW51ZSB3aXRoIGxvb3AKKyAgICAgICAgICAgICAgICBjMT0tMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKCBsZXZlbDI8MiAmJiAoKG9wdGlvbnMmIE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApICYmCisgICAgICAgICAgICAgICAgKGxlbmd0aD1mb2xkQ2FzZShjcDIsIGZvbGQyLDAsMzIsIG9wdGlvbnMpKT49MAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLy8gY3AyIGNhc2UtZm9sZHMgdG8gZm9sZDJbbGVuZ3RoXQorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIGJleW9uZCBzb3VyY2Ugc3Vycm9nYXRlIHBhaXIgaWYgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MyU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMyKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGl0cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSBtdXN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tczFTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMxPWNTb3VyY2UxWyhzMVN0YXJ0LTEpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGV2ZWwgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICBzdGFjazJbMF0uc3RhcnQ9c3RhcnQyOworICAgICAgICAgICAgICAgIHN0YWNrMlswXS5zPXMyU3RhcnQ7CisgICAgICAgICAgICAgICAgc3RhY2syWzBdLmxpbWl0PWxpbWl0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbMF0uc291cmNlPWNTb3VyY2UyOworICAgICAgICAgICAgICAgICsrbGV2ZWwyOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNTb3VyY2UyID0gZm9sZDI7CisgICAgICAgICAgICAgICAgc3RhcnQyPXMyU3RhcnQ9MDsKKyAgICAgICAgICAgICAgICBsaW1pdDI9bGVuZ3RoOworICAgIAorICAgICAgICAgICAgICAgIC8vIGdldCByZWFkeSB0byByZWFkIGZyb20gZGVjb21wb3NpdGlvbiwgY29udGludWUgd2l0aCBsb29wCisgICAgICAgICAgICAgICAgYzI9LTE7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKCBsZXZlbDE8MiAmJiAoKG9wdGlvbnMmQ09NUEFSRV9FUVVJVikhPTApICYmCisgICAgICAgICAgICAgICAgMCE9KGxlbmd0aD1kZWNvbXBvc2UoY3AxLGRlY29tcDEpKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLy8gY3AxIGRlY29tcG9zZXMgaW50byBwW2xlbmd0aF0KKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSBiZXlvbmQgc291cmNlIHN1cnJvZ2F0ZSBwYWlyIGlmIGl0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy9kZWNvbXBvc2VzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMxKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXRzIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11c3QgaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tczJTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMyPWNTb3VyY2UyWyhzMlN0YXJ0LTEpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGV2ZWwgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICBzdGFjazFbbGV2ZWwxXS5zdGFydD1zdGFydDE7CisgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMV0ucz1zMVN0YXJ0OworICAgICAgICAgICAgICAgIHN0YWNrMVtsZXZlbDFdLmxpbWl0PWxpbWl0MTsKKyAgICAgICAgICAgICAgICBzdGFjazFbbGV2ZWwxXS5zb3VyY2U9Y1NvdXJjZTE7CisgICAgICAgICAgICAgICAgKytsZXZlbDE7CisgICAgCisgICAgICAgICAgICAgICAgLy8gc2V0IG5leHQgbGV2ZWwgcG9pbnRlcnMgdG8gZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgICAgIGNTb3VyY2UxID0gZGVjb21wMTsKKyAgICAgICAgICAgICAgICBzdGFydDE9czFTdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0MT1sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc2V0IGVtcHR5IGludGVybWVkaWF0ZSBsZXZlbCBpZiBza2lwcGVkCisgICAgICAgICAgICAgICAgaWYobGV2ZWwxPDIpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMSsrXS5zdGFydD0tMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZ2V0IHJlYWR5IHRvIHJlYWQgZnJvbSBkZWNvbXBvc2l0aW9uLCBjb250aW51ZSB3aXRoIGxvb3AKKyAgICAgICAgICAgICAgICBjMT0tMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKCBsZXZlbDI8MiAmJiAoKG9wdGlvbnMmQ09NUEFSRV9FUVVJVikhPTApICYmCisgICAgICAgICAgICAgICAgMCE9KGxlbmd0aD1kZWNvbXBvc2UoY3AyLCBkZWNvbXAyKSkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8vIGNwMiBkZWNvbXBvc2VzIGludG8gcFtsZW5ndGhdCisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgYmV5b25kIHNvdXJjZSBzdXJyb2dhdGUgcGFpciBpZiBpdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlY29tcG9zZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICsrczJTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIC8qIGlzVHJhaWwoYzIpICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGdvdCBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCB3aGVuIGhpdHRpbmcgaXRzIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlLCB0aGVyZWZvcmUgdGhlIGxlYWQgc3Vycm9nYXRlIG11c3QgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIGJlZW4gdGhlIHNhbWUgYXMgaW4gdGhlIG90aGVyIHN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgdGhpcyBkZWNvbXBvc2l0aW9uIHdpdGggdGhlIGxlYWQgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIG90aGVyIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgLS1zMVN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYzE9Y1NvdXJjZTFbKHMxU3RhcnQtMSldOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8vIHB1c2ggY3VycmVudCBsZXZlbCBwb2ludGVycworICAgICAgICAgICAgICAgIHN0YWNrMltsZXZlbDJdLnN0YXJ0PXN0YXJ0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbbGV2ZWwyXS5zPXMyU3RhcnQ7CisgICAgICAgICAgICAgICAgc3RhY2syW2xldmVsMl0ubGltaXQ9bGltaXQyOworICAgICAgICAgICAgICAgIHN0YWNrMltsZXZlbDJdLnNvdXJjZT1jU291cmNlMjsKKyAgICAgICAgICAgICAgICArK2xldmVsMjsKKyAgICAKKyAgICAgICAgICAgICAgICAvLyBzZXQgbmV4dCBsZXZlbCBwb2ludGVycyB0byBkZWNvbXBvc2l0aW9uCisgICAgICAgICAgICAgICAgY1NvdXJjZTI9ZGVjb21wMjsKKyAgICAgICAgICAgICAgICBzdGFydDI9czJTdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0Mj1sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc2V0IGVtcHR5IGludGVybWVkaWF0ZSBsZXZlbCBpZiBza2lwcGVkCisgICAgICAgICAgICAgICAgaWYobGV2ZWwyPDIpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2syW2xldmVsMisrXS5zdGFydD0tMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZ2V0IHJlYWR5IHRvIHJlYWQgZnJvbSBkZWNvbXBvc2l0aW9uLCBjb250aW51ZSB3aXRoIGxvb3AKKyAgICAgICAgICAgICAgICBjMj0tMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAKKyAgICAgICAgICAgIC8vIG5vIGRlY29tcG9zaXRpb24vY2FzZSBmb2xkaW5nLCBtYXggbGV2ZWwgZm9yIGJvdGggc2lkZXM6CisgICAgICAgICAgICAvLyByZXR1cm4gZGlmZmVyZW5jZSByZXN1bHQKKyAgICAKKyAgICAgICAgICAgIC8vIGNvZGUgcG9pbnQgb3JkZXIgY29tcGFyaXNvbiBtdXN0IG5vdCBqdXN0IHJldHVybiBjcDEtY3AyCisgICAgICAgICAgICAvLyBiZWNhdXNlIHdoZW4gc2luZ2xlIHN1cnJvZ2F0ZXMgYXJlIHByZXNlbnQgdGhlbiB0aGUgc3Vycm9nYXRlIAorICAgICAgICAgICAgLy8gcGFpcnMgdGhhdCBmb3JtZWQgY3AxIGFuZCBjcDIgbWF5IGJlIGZyb20gZGlmZmVyZW50IHN0cmluZyAKKyAgICAgICAgICAgIC8vIGluZGV4ZXMKKyAgICAKKyAgICAgICAgICAgIC8vIGV4YW1wbGU6IHsgZDgwMCBkODAwIGRjMDEgfSB2cy4geyBkODAwIGRjMDAgfSwgY29tcGFyZSBhdCAKKyAgICAgICAgICAgIC8vIHNlY29uZCBjb2RlIHVuaXRzCisgICAgICAgICAgICAvLyBjMT1kODAwIGNwMT0xMDAwMSBjMj1kYzAwIGNwMj0xMDAwMAorICAgICAgICAgICAgLy8gY3AxLWNwMj4wIGJ1dCBjMS1jMjwwIGFuZCBpbiBmYWN0IGluIFVURi0zMiAKKyAgICAgICAgICAgIC8vIGl0IGlzIHsgZDgwMCAxMDAwMSB9IDwgeyAxMDAwMCB9CisgICAgICAgICAgICAvLyB0aGVyZWZvcmUgZml4LXVwIAorICAgIAorICAgICAgICAgICAgaWYoICAgICBjMT49MHhkODAwICYmIGMyPj0weGQ4MDAgJiYgCisgICAgICAgICAgICAgICAgICAgICgob3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUikhPTApCisgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8qIHN1YnRyYWN0IDB4MjgwMCBmcm9tIEJNUCBjb2RlIHBvaW50cyB0byBtYWtlIHRoZW0gc21hbGxlciAKKyAgICAgICAgICAgICAgICAgKiB0aGFuIHN1cHBsZW1lbnRhcnkgb25lcyAqLworICAgICAgICAgICAgICAgIGlmKAorICAgICAgICAgICAgICAgICAgICAoICAgIGMxPD0weGRiZmYgJiYgczFTdGFydCE9bGltaXQxIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY1NvdXJjZTFbczFTdGFydF0pCisgICAgICAgICAgICAgICAgICAgICkgCisgICAgICAgICAgICAgICAgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAoICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpYzEpICYmIHN0YXJ0MSE9KHMxU3RhcnQtMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNTb3VyY2UxWyhzMVN0YXJ0LTIpXSkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAvKiBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMCAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gCisgICAgICAgICAgICAgICAgICAgICAqIG1ha2UgPGQ4MDAgKi8KKyAgICAgICAgICAgICAgICAgICAgYzEtPTB4MjgwMDsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgICAgICggICAgYzI8PTB4ZGJmZiAmJiBzMlN0YXJ0IT1saW1pdDIgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjU291cmNlMltzMlN0YXJ0XSkKKyAgICAgICAgICAgICAgICAgICAgKSAKKyAgICAgICAgICAgICAgICAgICAgIHx8CisgICAgICAgICAgICAgICAgICAgICggICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljMikgJiYgc3RhcnQyIT0oczJTdGFydC0xKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY1NvdXJjZTJbKHMyU3RhcnQtMildKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwICovCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSAKKyAgICAgICAgICAgICAgICAgICAgICogbWFrZSA8ZDgwMCAqLworICAgICAgICAgICAgICAgICAgICBjMi09MHgyODAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHJldHVybiBjMS1jMjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc3RyQ29tcGFyZShjaGFyW10gczEsIGludCBzMVN0YXJ0LCBpbnQgczFMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gczIsIGludCBzMlN0YXJ0LCBpbnQgczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvZGVQb2ludE9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IHN0YXJ0MSwgc3RhcnQyLCBsaW1pdDEsIGxpbWl0MjsKKyAKKyAgICAgICAgY2hhciBjMSwgYzI7CisgICAgCisgICAgICAgIC8qIHNldHVwIGZvciBmaXgtdXAgKi8KKyAgICAgICAgc3RhcnQxPXMxU3RhcnQ7CisgICAgICAgIHN0YXJ0Mj1zMlN0YXJ0OworICAgICAgICAKKyAgICAgICAgaW50IGxlbmd0aDEsIGxlbmd0aDI7CisgICAgICAgIAorICAgICAgICBsZW5ndGgxID0gczFMaW1pdCAtIHMxU3RhcnQ7CisgICAgICAgIGxlbmd0aDIgPSBzMkxpbWl0IC0gczJTdGFydDsKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgbGVuZ3RoUmVzdWx0OworCisgICAgICAgIGlmKGxlbmd0aDE8bGVuZ3RoMikgeworICAgICAgICAgICAgbGVuZ3RoUmVzdWx0PS0xOworICAgICAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgxOworICAgICAgICB9IGVsc2UgaWYobGVuZ3RoMT09bGVuZ3RoMikgeworICAgICAgICAgICAgbGVuZ3RoUmVzdWx0PTA7CisgICAgICAgICAgICBsaW1pdDE9c3RhcnQxK2xlbmd0aDE7CisgICAgICAgIH0gZWxzZSAvKiBsZW5ndGgxPmxlbmd0aDIgKi8geworICAgICAgICAgICAgbGVuZ3RoUmVzdWx0PTE7CisgICAgICAgICAgICBsaW1pdDE9c3RhcnQxK2xlbmd0aDI7CisgICAgICAgIH0KKworICAgICAgICBpZihzMT09czIpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGhSZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIC8qIGNoZWNrIHBzZXVkby1saW1pdCAqLworICAgICAgICAgICAgaWYoczFTdGFydD09bGltaXQxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aFJlc3VsdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYzE9czFbczFTdGFydF07CisgICAgICAgICAgICBjMj1zMltzMlN0YXJ0XTsKKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytzMVN0YXJ0OworICAgICAgICAgICAgKytzMlN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgLyogc2V0dXAgZm9yIGZpeC11cCAqLworICAgICAgICBsaW1pdDE9c3RhcnQxK2xlbmd0aDE7CisgICAgICAgIGxpbWl0Mj1zdGFydDIrbGVuZ3RoMjsKKworICAgIAorICAgICAgICAvKiBpZiBib3RoIHZhbHVlcyBhcmUgaW4gb3IgYWJvdmUgdGhlIHN1cnJvZ2F0ZSByYW5nZSwgZml4IHRoZW0gdXAgKi8KKyAgICAgICAgaWYoYzE+PTB4ZDgwMCAmJiBjMj49MHhkODAwICYmIGNvZGVQb2ludE9yZGVyKSB7CisgICAgICAgICAgICAvKiBzdWJ0cmFjdCAweDI4MDAgZnJvbSBCTVAgY29kZSBwb2ludHMgdG8gbWFrZSB0aGVtIHNtYWxsZXIgdGhhbgorICAgICAgICAgICAgICogIHN1cHBsZW1lbnRhcnkgb25lcyAqLworICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgKCBjMTw9MHhkYmZmICYmIChzMVN0YXJ0KzEpIT1saW1pdDEgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHMxWyhzMVN0YXJ0KzEpXSkKKyAgICAgICAgICAgICAgICApIHx8CisgICAgICAgICAgICAgICAgKCBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMxKSAmJiBzdGFydDEhPXMxU3RhcnQgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoczFbKHMxU3RhcnQtMSldKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8qIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gbWFrZSA8ZDgwMCAqLworICAgICAgICAgICAgICAgIGMxLT0weDI4MDA7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZigKKyAgICAgICAgICAgICAgICAoIGMyPD0weGRiZmYgJiYgKHMyU3RhcnQrMSkhPWxpbWl0MiAmJiAKKyAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoczJbKHMyU3RhcnQrMSldKQorICAgICAgICAgICAgICAgICkgfHwKKyAgICAgICAgICAgICAgICAoIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzIpICYmIHN0YXJ0MiE9czJTdGFydCAmJiAKKyAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShzMlsoczJTdGFydC0xKV0pCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLyogcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBsZWF2ZSA+PWQ4MDAgKi8KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSBtYWtlIDxkODAwICovCisgICAgICAgICAgICAgICAgYzItPTB4MjgwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBub3cgYzEgYW5kIGMyIGFyZSBpbiBVVEYtMzItY29tcGF0aWJsZSBvcmRlciAqLworICAgICAgICByZXR1cm4gKGludCljMS0oaW50KWMyOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBTdGF0dXMgb2YgdGFpbG9yZWQgbm9ybWFsaXphdGlvbgorICAgICAqCisgICAgICogVGhpcyB3YXMgZG9uZSBpbml0aWFsbHkgZm9yIGludmVzdGlnYXRpb24gb24gVW5pY29kZSBwdWJsaWMgcmV2aWV3IGlzc3VlIDcKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXZpZXcvKS4gU2VlIEppdHRlcmJ1ZyAyNDgxLgorICAgICAqIFdoaWxlIHRoZSBVVEMgYXQgbWVldGluZyAjOTQgKDIwMDNtYXIpIGRpZCBub3QgdGFrZSB1cCB0aGUgaXNzdWUsIHRoaXMgaXMKKyAgICAgKiBhIHBlcm1hbmVudCBmZWF0dXJlIGluIElDVSAyLjYgaW4gc3VwcG9ydCBvZiBJRE5BIHdoaWNoIHJlcXVpcmVzIHRydWUKKyAgICAgKiBVbmljb2RlIDMuMiBub3JtYWxpemF0aW9uLgorICAgICAqIChOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMgYXJlIHJvbGxlZCBpbnRvIElETkEgbWFwcGluZyB0YWJsZXMuKQorICAgICAqCisgICAgICogVGFpbG9yZWQgbm9ybWFsaXphdGlvbiBhcyBpbXBsZW1lbnRlZCBoZXJlIGFsbG93cyB0byAibm9ybWFsaXplIGxlc3MiCisgICAgICogdGhhbiBmdWxsIFVuaWNvZGUgbm9ybWFsaXphdGlvbiB3b3VsZC4KKyAgICAgKiBCYXNlZCBpbnRlcm5hbGx5IG9uIGEgVW5pY29kZVNldCBvZiBjb2RlIHBvaW50cyB0aGF0IGFyZQorICAgICAqICJleGNsdWRlZCBmcm9tIG5vcm1hbGl6YXRpb24iLCB0aGUgbm9ybWFsaXphdGlvbiBmdW5jdGlvbnMgbGVhdmUgdGhvc2UKKyAgICAgKiBjb2RlIHBvaW50cyBhbG9uZSAoImluZXJ0IikuIFRoaXMgbWVhbnMgdGhhdCB0YWlsb3JlZCBub3JtYWxpemF0aW9uCisgICAgICogc3RpbGwgdHJhbnNmb3JtcyB0ZXh0IGludG8gYSBjYW5vbmljYWxseSBlcXVpdmFsZW50IGZvcm0uCisgICAgICogSXQgZG9lcyBub3QgYWRkIGRlY29tcG9zaXRpb25zIHRvIGNvZGUgcG9pbnRzIHRoYXQgZG8gbm90IGhhdmUgYW55IG9yCisgICAgICogY2hhbmdlIGRlY29tcG9zaXRpb24gcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEFueSBmdW5jdGlvbiB0aGF0IHNlYXJjaGVzIGZvciBhIHNhZmUgYm91bmRhcnkgaGFzIG5vdCBiZWVuIHRvdWNoZWQsCisgICAgICogd2hpY2ggbWVhbnMgdGhhdCB0aGVzZSBmdW5jdGlvbnMgd2lsbCBiZSBvdmVyLXBlc3NpbWlzdGljIHdoZW4KKyAgICAgKiBleGNsdXNpb25zIGFyZSBhcHBsaWVkLgorICAgICAqIFRoaXMgc2hvdWxkIG5vdCBtYXR0ZXIgYmVjYXVzZSBzdWJzZXF1ZW50IGNoZWNrcyBhbmQgbm9ybWFsaXphdGlvbnMKKyAgICAgKiBkbyBhcHBseSB0aGUgZXhjbHVzaW9uczsgb25seSBhIGxpdHRsZSBtb3JlIG9mIHRoZSB0ZXh0IG1heSBiZSBwcm9jZXNzZWQKKyAgICAgKiB0aGFuIG5lY2Vzc2FyeSB1bmRlciBleGNsdXNpb25zLgorICAgICAqCisgICAgICogTm9ybWFsaXphdGlvbiBleGNsdXNpb25zIGhhdmUgdGhlIGZvbGxvd2luZyBlZmZlY3Qgb24gZXhjbHVkZWQgY29kZSBwb2ludHMgYzoKKyAgICAgKiAtIGMgaXMgbm90IGRlY29tcG9zZWQKKyAgICAgKiAtIGMgaXMgbm90IGEgY29tcG9zaXRpb24gdGFyZ2V0CisgICAgICogLSBjIGRvZXMgbm90IGNvbWJpbmUgZm9yd2FyZCBvciBiYWNrd2FyZCBmb3IgY29tcG9zaXRpb24KKyAgICAgKiAgIGV4Y2VwdCB0aGF0IHRoaXMgaXMgbm90IGltcGxlbWVudGVkIGZvciBKYW1vCisgICAgICogLSBjIGlzIHRyZWF0ZWQgYXMgaGF2aW5nIGEgY29tYmluaW5nIGNsYXNzIG9mIDAKKyAgICAgKi8KKyAgICAgCisgICAgLyogCisgICAgICogQ29uc3RhbnRzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUgb3B0aW9ucyBiaXQgc2V0IHBhcmFtZXRlci4gCisgICAgICogVGhlc2UgbmVlZCBub3QgYmUgcHVibGljLiAKKyAgICAgKiBBIHVzZXIgb25seSBuZWVkcyB0byBrbm93IHRoZSBjdXJyZW50bHkgYXNzaWduZWQgdmFsdWVzLiAKKyAgICAgKiBUaGUgbnVtYmVyIGFuZCBwb3NpdGlvbnMgb2YgcmVzZXJ2ZWQgYml0cyBwZXIgZmllbGQgY2FuIHJlbWFpbiBwcml2YXRlLiAKKyAgICAgKi8gCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfTlhfTUFTSz0weDFmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX1VOSUNPREVfTUFTSz0weGUwOyAKKyAgICBwdWJsaWMgIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19TRVRTX01BU0s9MHhmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19VTklDT0RFX1NISUZUPTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldFtdIG54Q2FjaGUgPSBuZXcgVW5pY29kZVNldFtPUFRJT05TX1NFVFNfTUFTSysxXTsKKyAgICAgCisgICAgLyogQ29uc3RhbnRzIGZvciBvcHRpb25zIGZsYWdzIGZvciBub3JtYWxpemF0aW9uLiovCisKKyAgICAvKiogCisgICAgICogT3B0aW9ucyBiaXQgMCwgZG8gbm90IGRlY29tcG9zZSBIYW5ndWwgc3lsbGFibGVzLiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuNiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlhfSEFOR1VMID0gMTsKKyAgICAvKiogCisgICAgICogT3B0aW9ucyBiaXQgMSwgZG8gbm90IGRlY29tcG9zZSBDSksgY29tcGF0aWJpbGl0eSBjaGFyYWN0ZXJzLgorICAgICAqIEBkcmFmdCBJQ1UgMi42IAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOWF9DSktfQ09NUEFUPTI7CisgICAgLyoqCisgICAgICogT3B0aW9ucyBiaXQgOCwgdXNlIGJ1Z2d5IHJlY29tcG9zaXRpb24gZGVzY3JpYmVkIGluCisgICAgICogVW5pY29kZSBQdWJsaWMgUmV2aWV3IElzc3VlICMyOQorICAgICAqIGF0IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmV2aWV3L3Jlc29sdmVkLXByaS5odG1sI3ByaTI5CisgICAgICoKKyAgICAgKiBVc2VkIGluIElETkEgaW1wbGVtZW50YXRpb24gYWNjb3JkaW5nIHRvIHN0cmljdCBpbnRlcnByZXRhdGlvbgorICAgICAqIG9mIElETkEgZGVmaW5pdGlvbiBiYXNlZCBvbiBVbmljb2RlIDMuMiB3aGljaCBwcmVkYXRlcyBQUkkgIzI5LgorICAgICAqCisgICAgICogU2VlIElDVTRDIHVub3JtaW1wLmgKKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFRk9SRV9QUklfMjk9MHgxMDA7CisKKyAgICAvKgorICAgICAqIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgdXNlZCBvbmx5IGluIHNvbWUgY29tcG9zaXRpb24gZnVuY3Rpb25zLgorICAgICAqIFRoZXkgdXNlIGJpdHMgMTIgYW5kIHVwIHRvIHByZXNlcnZlIGxvd2VyIGJpdHMgZm9yIHRoZSBhdmFpbGFibGUgb3B0aW9ucworICAgICAqIHNwYWNlIGluIHVub3JtX2NvbXBhcmUoKSAtCisgICAgICogc2VlIGRvY3VtZW50YXRpb24gZm9yIFVOT1JNX0NPTVBBUkVfTk9STV9PUFRJT05TX1NISUZULgorICAgICAqLworCisgICAgLyoqIE9wdGlvbnMgYml0IDEyLCBmb3IgY29tcGF0aWJpbGl0eSB2cy4gY2Fub25pY2FsIGRlY29tcG9zaXRpb24uICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19DT01QQVQ9MHgxMDAwOworICAgIC8qKiBPcHRpb25zIGJpdCAxMywgbm8gZGlzY29udGlndW91cyBjb21wb3NpdGlvbiAoRkNDIHZzLiBORkMpLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTPTB4MjAwMDsKKworICAgIC8qIG5vcm1hbGl6YXRpb24gZXhjbHVzaW9uIHNldHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyoKKyAgICAgKiBOb3JtYWxpemF0aW9uIGV4Y2x1c2lvbiBVbmljb2RlU2V0cyBhcmUgdXNlZCBmb3IgdGFpbG9yZWQgbm9ybWFsaXphdGlvbjsKKyAgICAgKiBzZWUgdGhlIGNvbW1lbnQgbmVhciB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZmlsZS4KKyAgICAgKgorICAgICAqIEJ5IHNwZWNpZnlpbmcgb25lIG9yIHNldmVyYWwgc2V0cyBvZiBjb2RlIHBvaW50cywKKyAgICAgKiB0aG9zZSBjb2RlIHBvaW50cyBiZWNvbWUgaW5lcnQgZm9yIG5vcm1hbGl6YXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc3luY2hyb25pemVkIFVuaWNvZGVTZXQgaW50ZXJuYWxHZXROWEhhbmd1bCgpIHsKKyAgICAgICAgLyogaW50ZXJuYWwgZnVuY3Rpb24sIGRvZXMgbm90IGNoZWNrIGZvciBpbmNvbWluZyBVX0ZBSUxVUkUgKi8KKyAgICAKKyAgICAgICAgaWYobnhDYWNoZVtOWF9IQU5HVUxdPT1udWxsKSB7CisgICAgICAgICAgICAgbnhDYWNoZVtOWF9IQU5HVUxdPW5ldyBVbmljb2RlU2V0KDB4YWMwMCwgMHhkN2EzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnhDYWNoZVtOWF9IQU5HVUxdOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgVW5pY29kZVNldCBpbnRlcm5hbEdldE5YQ0pLQ29tcGF0KCkgeworICAgICAgICAvKiBpbnRlcm5hbCBmdW5jdGlvbiwgZG9lcyBub3QgY2hlY2sgZm9yIGluY29taW5nIFVfRkFJTFVSRSAqLworICAgIAorICAgICAgICBpZihueENhY2hlW05YX0NKS19DT01QQVRdPT1udWxsKSB7CisKKyAgICAgICAgICAgIC8qIGJ1aWxkIGEgc2V0IGZyb20gW0NKSyBJZGVvZ3JhcGhzXSZbaGFzIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uXSAqLworICAgICAgICAgICAgVW5pY29kZVNldCBzZXQsIGhhc0RlY29tcDsKKyAgICAKKyAgICAgICAgICAgIHNldD1uZXcgVW5pY29kZVNldCgiWzpJZGVvZ3JhcGhpYzpdIik7CisgICAgCisgICAgICAgICAgICAvKiBzdGFydCB3aXRoIGFuIGVtcHR5IHNldCBmb3IgW2hhcyBjYW5vbmljYWwgZGVjb21wb3NpdGlvbl0gKi8KKyAgICAgICAgICAgIGhhc0RlY29tcD1uZXcgVW5pY29kZVNldCgpOworICAgIAorICAgICAgICAgICAgLyogaXRlcmF0ZSBvdmVyIGFsbCBpZGVvZ3JhcGhzIGFuZCByZW1lbWJlciB3aGljaCBjYW5vbmljYWxseSBkZWNvbXBvc2UgKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsKKyAgICAgICAgICAgIGludCBzdGFydCwgZW5kOworICAgICAgICAgICAgbG9uZyBub3JtMzI7CisgICAgCisgICAgICAgICAgICB3aGlsZShpdC5uZXh0UmFuZ2UoKSAmJiAoaXQuY29kZXBvaW50ICE9IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpKSB7CisgICAgICAgICAgICAgICAgc3RhcnQ9aXQuY29kZXBvaW50OworICAgICAgICAgICAgICAgIGVuZD1pdC5jb2RlcG9pbnRFbmQ7CisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8PWVuZCkgeworICAgICAgICAgICAgICAgICAgICBub3JtMzIgPSBnZXROb3JtMzIoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZigobm9ybTMyICYgUUNfTkZEKT4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNEZWNvbXAuYWRkKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGhhc0RlY29tcCBub3cgY29udGFpbnMgYWxsIGlkZW9ncmFwaHMgdGhhdCBkZWNvbXBvc2UgY2Fub25pY2FsbHkgKi8KKyAgICAgICAgICAgICBueENhY2hlW05YX0NKS19DT01QQVRdPWhhc0RlY29tcDsKKyAgICAgICAgIAorICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBueENhY2hlW05YX0NKS19DT01QQVRdOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgVW5pY29kZVNldCBpbnRlcm5hbEdldE5YVW5pY29kZShpbnQgb3B0aW9ucykgeworICAgICAgICBvcHRpb25zICY9IE9QVElPTlNfVU5JQ09ERV9NQVNLOworICAgICAgICBpZihvcHRpb25zPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZihueENhY2hlW29wdGlvbnNdPT1udWxsKSB7CisgICAgICAgICAgICAvKiBidWlsZCBhIHNldCB3aXRoIGFsbCBjb2RlIHBvaW50cyB0aGF0IHdlcmUgbm90IGRlc2lnbmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBVbmljb2RlIHZlcnNpb24gKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKworICAgICAgICAgICAgc3dpdGNoKG9wdGlvbnMpIHsKKyAgICAgICAgICAgIGNhc2UgTm9ybWFsaXplci5VTklDT0RFXzNfMjoKKyAgICAgICAgICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbOl5BZ2U9My4yOl0iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG54Q2FjaGVbb3B0aW9uc109c2V0OworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBueENhY2hlW29wdGlvbnNdOworICAgIH0KKyAgICAKKyAgICAvKiBHZXQgYSBkZWNvbXBvc2l0aW9uIGV4Y2x1c2lvbiBzZXQuIFRoZSBkYXRhIG11c3QgYmUgbG9hZGVkLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVbmljb2RlU2V0IGludGVybmFsR2V0TlgoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgb3B0aW9ucyY9T1BUSU9OU19TRVRTX01BU0s7CisgICAgCisgICAgICAgIGlmKG54Q2FjaGVbb3B0aW9uc109PW51bGwpIHsKKyAgICAgICAgICAgIC8qIHJldHVybiBiYXNpYyBzZXRzICovICAgICAgICAgICAgCisgICAgICAgICAgICBpZihvcHRpb25zPT1OWF9IQU5HVUwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXROWEhhbmd1bCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYob3B0aW9ucz09TlhfQ0pLX0NPTVBBVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEdldE5YQ0pLQ29tcGF0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigob3B0aW9ucyAmIE9QVElPTlNfVU5JQ09ERV9NQVNLKSE9MCAmJiAob3B0aW9ucyAmIE9QVElPTlNfTlhfTUFTSyk9PTApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXROWFVuaWNvZGUob3B0aW9ucyk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBidWlsZCBhIHNldCBmcm9tIG11bHRpcGxlIHN1YnNldHMgKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0OworICAgICAgICAgICAgVW5pY29kZVNldCBvdGhlcjsKKyAgICAKKyAgICAgICAgICAgIHNldD1uZXcgVW5pY29kZVNldCgpOworCisgICAgCisgICAgICAgICAgICBpZigob3B0aW9ucyAmIE5YX0hBTkdVTCkhPTAgJiYgbnVsbCE9KG90aGVyPWludGVybmFsR2V0TlhIYW5ndWwoKSkpIHsKKyAgICAgICAgICAgICAgICBzZXQuYWRkQWxsKG90aGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKChvcHRpb25zJk5YX0NKS19DT01QQVQpIT0wICYmIG51bGwhPShvdGhlcj1pbnRlcm5hbEdldE5YQ0pLQ29tcGF0KCkpKSB7CisgICAgICAgICAgICAgICAgc2V0LmFkZEFsbChvdGhlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigob3B0aW9ucyZPUFRJT05TX1VOSUNPREVfTUFTSykhPTAgJiYgbnVsbCE9KG90aGVyPWludGVybmFsR2V0TlhVbmljb2RlKG9wdGlvbnMpKSkgeworICAgICAgICAgICAgICAgIHNldC5hZGRBbGwob3RoZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICBueENhY2hlW29wdGlvbnNdPXNldDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnhDYWNoZVtvcHRpb25zXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IGdldE5YKGludCBvcHRpb25zKSB7CisgICAgICAgIGlmKChvcHRpb25zJj1PUFRJT05TX1NFVFNfTUFTSyk9PTApIHsKKyAgICAgICAgICAgIC8qIGluY29taW5nIGZhaWx1cmUsIG9yIG5vIGRlY29tcG9zaXRpb24gZXhjbHVzaW9ucyByZXF1ZXN0ZWQgKi8KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGludGVybmFsR2V0Tlgob3B0aW9ucyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBueF9jb250YWlucyhVbmljb2RlU2V0IG54LCBpbnQgYykgeworICAgICAgICByZXR1cm4gbnghPW51bGwgJiYgbnguY29udGFpbnMoYyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gbnhfY29udGFpbnMoVW5pY29kZVNldCBueCwgY2hhciBjLCBjaGFyIGMyKSB7CisgICAgICAgIHJldHVybiBueCE9bnVsbCAmJiBueC5jb250YWlucyhjMj09MCA/IGMgOiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjLCBjMikpOworICAgIH0KKworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9PbHNvblRpbWVab25lLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9PbHNvblRpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMyNDJiYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL09sc29uVGltZVpvbmUuamF2YQpAQCAtMCwwICsxLDc2OCBAQAorIC8qCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkdyZWdvOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKworLyoqCisgKiBBIHRpbWUgem9uZSBiYXNlZCBvbiB0aGUgT2xzb24gZGF0YWJhc2UuICBPbHNvbiB0aW1lIHpvbmVzIGNoYW5nZQorICogYmVoYXZpb3Igb3ZlciB0aW1lLiAgVGhlIHJhdyBvZmZzZXQsIHJ1bGVzLCBwcmVzZW5jZSBvciBhYnNlbmNlIG9mCisgKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUsIGFuZCBldmVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIGFtb3VudCBjYW4gYWxsCisgKiB2YXJ5LgorICoKKyAqIFRoaXMgY2xhc3MgdXNlcyBhIHJlc291cmNlIGJ1bmRsZSBuYW1lZCAiem9uZWluZm8iLiAgWm9uZWluZm8gaXMgYQorICogdGFibGUgY29udGFpbmluZyBkaWZmZXJlbnQga2luZHMgb2YgcmVzb3VyY2VzLiAgSW4gc2V2ZXJhbCBwbGFjZXMsCisgKiB6b25lcyBhcmUgcmVmZXJyZWQgdG8gdXNpbmcgaW50ZWdlcnMuICBBIHpvbmUncyBpbnRlZ2VyIGlzIGEgbnVtYmVyCisgKiBmcm9tIDAuLm4tMSwgd2hlcmUgbiBpcyB0aGUgbnVtYmVyIG9mIHpvbmVzLCB3aXRoIHRoZSB6b25lcyBzb3J0ZWQKKyAqIGluIGxleGljb2dyYXBoaWMgb3JkZXIuCisgKgorICogMS4gWm9uZXMuICBUaGVzZSBoYXZlIGtleXMgY29ycmVzcG9uZGluZyB0byB0aGUgT2xzb24gSURzLCBlLmcuLAorICogIkFzaWEvU2hhbmdoYWkiLiAgRWFjaCByZXNvdXJjZSBkZXNjcmliZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBnaXZlbgorICogem9uZS4gIFpvbmVzIGNvbWUgaW4gc2V2ZXJhbCBmb3JtYXRzLCB3aGljaCBhcmUgZGlmZmVyZW50aWF0ZWQKKyAqIGJhc2VkIG9uIGxlbmd0aC4KKyAqCisgKiAgYS4gQWxpYXMgKGludCwgbGVuZ3RoIDEpLiAgQW4gYWxpYXMgem9uZSBpcyBhbiBpbnQgcmVzb3VyY2UuICBUaGUKKyAqICBpbnRlZ2VyIGlzIHRoZSB6b25lIG51bWJlciBvZiB0aGUgdGFyZ2V0IHpvbmUuICBUaGUga2V5IG9mIHRoaXMKKyAqICByZXNvdXJjZSBpcyBhbiBhbHRlcm5hdGUgbmFtZSBmb3IgdGhlIHRhcmdldCB6b25lLiAgQWxpYXNlcworICogIHJlcHJlc2VudCBPbHNvbiBsaW5rcyBhbmQgSUNVIGNvbXBhdGliaWxpdHkgSURzLgorICoKKyAqICBiLiBTaW1wbGUgem9uZSAoYXJyYXksIGxlbmd0aCAzKS4gIFRoZSB0aHJlZSBzdWJlbGVtZW50cyBhcmU6CisgKgorICogICBpLiBBbiBpbnR2ZWN0b3Igb2YgdHJhbnNpdGlvbnMuICBUaGVzZSBhcmUgZ2l2ZW4gaW4gZXBvY2gKKyAqICAgc2Vjb25kcy4gIFRoaXMgbWF5IGJlIGFuIGVtcHR5IGludmVjdG9yIChsZW5ndGggMCkuICBJZiB0aGUKKyAqICAgdHJhbnN0aW9ucyBsaXN0IGlzIGVtcHR5LCB0aGVuIHRoZSB6b25lJ3MgYmVoYXZpb3IgaXMgZml4ZWQgYW5kCisgKiAgIGdpdmVuIGJ5IHRoZSBvZmZzZXQgbGlzdCwgd2hpY2ggd2lsbCBjb250YWluIGV4YWN0bHkgb25lIHBhaXIuCisgKiAgIE90aGVyd2lzZSBlYWNoIHRyYW5zdGlvbiBpbmRpY2F0ZXMgYSB0aW1lIGFmdGVyIHdoaWNoIChpbmNsdXNpdmUpCisgKiAgIHRoZSBhc3NvY2lhdGVkIG9mZnNldCBwYWlyIGlzIGluIGVmZmVjdC4KKyAqCisgKiAgIGlpLiBBbiBpbnR2ZWN0b3Igb2Ygb2Zmc2V0cy4gIFRoZXNlIGFyZSBpbiBwYWlycyBvZiByYXcgb2Zmc2V0IC8KKyAqICAgRFNUIG9mZnNldCwgaW4gdW5pdHMgb2Ygc2Vjb25kcy4gIFRoZXJlIHdpbGwgYmUgYXQgbGVhc3Qgb25lIHBhaXIKKyAqICAgKGxlbmd0aCA+PSAyICYmIGxlbmd0aCAlIDIgPT0gMCkuCisgKgorICogICBpaWkuIEEgYmluYXJ5IHJlc291cmNlLiAgVGhpcyBpcyBvZiB0aGUgc2FtZSBsZW5ndGggYXMgdGhlCisgKiAgIHRyYW5zaXRpb25zIHZlY3Rvciwgc28gbGVuZ3RoIG1heSBiZSB6ZXJvLiAgRWFjaCB1bnNpZ25lZCBieXRlCisgKiAgIGNvcnJlc3BvbmRzIHRvIG9uZSB0cmFuc2l0aW9uLCBhbmQgaGFzIGEgdmFsdWUgb2YgMC4ubi0xLCB3aGVyZSBuCisgKiAgIGlzIHRoZSBudW1iZXIgb2YgcGFpcnMgaW4gdGhlIG9mZnNldCB2ZWN0b3IuICBUaGlzIGZvcm1zIGEgbWFwCisgKiAgIGJldHdlZW4gdHJhbnNpdGlvbnMgYW5kIG9mZnNldCBwYWlycy4KKyAqCisgKiAgYy4gU2ltcGxlIHpvbmUgd2l0aCBhbGlhc2VzIChhcnJheSwgbGVuZ3RoIDQpLiAgVGhpcyBpcyBsaWtlIGEKKyAqICBzaW1wbGUgem9uZSwgYnV0IGFsc28gY29udGFpbnMgYSBmb3VydGggZWxlbWVudDoKKyAqCisgKiAgIGl2LiBBbiBpbnR2ZWN0b3Igb2YgYWxpYXNlcy4gIFRoaXMgbGlzdCBpbmNsdWRlcyB0aGlzIHpvbmUKKyAqICAgaXRzZWxmLCBhbmQgbGlzdHMgYWxsIGFsaWFzZXMgb2YgdGhpcyB6b25lLgorICoKKyAqICBkLiBDb21wbGV4IHpvbmUgKGFycmF5LCBsZW5ndGggNSkuICBUaGlzIGlzIGxpa2UgYSBzaW1wbGUgem9uZSwKKyAqICBidXQgY29udGFpbnMgdHdvIG1vcmUgZWxlbWVudHM6CisgKgorICogICBpdi4gQSBzdHJpbmcsIGdpdmluZyB0aGUgbmFtZSBvZiBhIHJ1bGUuICBUaGlzIGlzIHRoZSAiZmluYWwKKyAqICAgcnVsZSIsIHdoaWNoIGdvdmVybnMgdGhlIHpvbmUncyBiZWhhdmlvciBiZWdpbm5pbmcgaW4gdGhlICJmaW5hbAorICogICB5ZWFyIi4gIFRoZSBydWxlIElEIGlzIGdpdmVuIHdpdGhvdXQgbGVhZGluZyB1bmRlcnNjb3JlLCBlLmcuLAorICogICAiRVUiLgorICoKKyAqICAgdi4gQW4gaW50dmVjdG9yIG9mIGxlbmd0aCAyLCBjb250YWluaW5nIHRoZSByYXcgb2Zmc2V0IGZvciB0aGUKKyAqICAgZmluYWwgcnVsZSAoaW4gc2Vjb25kcyksIGFuZCB0aGUgZmluYWwgeWVhci4gIFRoZSBmaW5hbCBydWxlCisgKiAgIHRha2VzIGVmZmVjdCBmb3IgeWVhcnMgPj0gdGhlIGZpbmFsIHllYXIuCisgKgorICogIGUuIENvbXBsZXggem9uZSB3aXRoIGFsaWFzZXMgKGFycmF5LCBsZW5ndGggNikuICBUaGlzIGlzIGxpa2UgYQorICogIGNvbXBsZXggem9uZSwgYnV0IGFsc28gY29udGFpbnMgYSBzaXh0aCBlbGVtZW50OgorICogCisgKiAgIHZpLiBBbiBpbnR2ZWN0b3Igb2YgYWxpYXNlcy4gIFRoaXMgbGlzdCBpbmNsdWRlcyB0aGlzIHpvbmUKKyAqICAgaXRzZWxmLCBhbmQgbGlzdHMgYWxsIGFsaWFzZXMgb2YgdGhpcyB6b25lLgorICoKKyAqIDIuIFJ1bGVzLiAgVGhlc2UgaGF2ZSBrZXlzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIE9sc29uIHJ1bGUgSURzLAorICogd2l0aCBhbiB1bmRlcnNjb3JlIHByZXBlbmRlZCwgZS5nLiwgIl9FVSIuICBFYWNoIHJlc291cmNlIGRlc2NyaWJlcworICogdGhlIGJlaGF2aW9yIG9mIHRoZSBnaXZlbiBydWxlIHVzaW5nIGFuIGludHZlY3RvciwgY29udGFpbmluZyB0aGUKKyAqIG9uc2V0IGxpc3QsIHRoZSBjZXNzYXRpb24gbGlzdCwgYW5kIHRoZSBEU1Qgc2F2aW5ncy4gIFRoZSBvbnNldCBhbmQKKyAqIGNlc3NhdGlvbiBsaXN0cyBjb25zaXN0IG9mIHRoZSBtb250aCwgZG93aW0sIGRvdywgdGltZSwgYW5kIHRpbWUKKyAqIG1vZGUuICBUaGUgZW5kIHJlc3VsdCBpcyB0aGF0IHRoZSAxMSBpbnRlZ2VycyBkZXNjcmliaW5nIHRoZSBydWxlCisgKiBjYW4gYmUgcGFzc2VkIGRpcmVjdGx5IGludG8gdGhlIFNpbXBsZVRpbWVab25lIDEzLWFyZ3VtZW50CisgKiBjb25zdHJ1Y3RvciAodGhlIG90aGVyIHR3byBhcmd1bWVudHMgd2lsbCBiZSB0aGUgcmF3IG9mZnNldCwgdGFrZW4KKyAqIGZyb20gdGhlIGNvbXBsZXggem9uZSBlbGVtZW50IDUsIGFuZCB0aGUgSUQgc3RyaW5nLCB3aGljaCBpcyBub3QKKyAqIHVzZWQpLCB3aXRoIHRoZSB0aW1lcyBhbmQgdGhlIERTVCBzYXZpbmdzIG11bHRpcGxpZWQgYnkgMTAwMCB0bworICogc2NhbGUgZnJvbSBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kcy4KKyAqCisgKiAzLiBDb3VudHJpZXMuICBUaGVzZSBoYXZlIGtleXMgY29ycmVzcG9uZGluZyB0byB0aGUgMi1sZXR0ZXIgSVNPCisgKiBjb3VudHJ5IGNvZGVzLCB3aXRoIGEgcGVyY2VudCBzaWduIHByZXBlbmRlZCwgZS5nLiwgIiVVUyIuICBFYWNoCisgKiByZXNvdXJjZSBpcyBhbiBpbnR2ZWN0b3IgbGlzdGluZyB0aGUgem9uZXMgYXNzb2NpYXRlZCB3aXRoIHRoZQorICogZ2l2ZW4gY291bnRyeS4gIFRoZSBzcGVjaWFsIGVudHJ5ICIlIiBjb3JyZXNwb25kcyB0byAibm8gY291bnRyeSIsCisgKiB0aGF0IGlzLCB0aGUgY2F0ZWdvcnkgb2Ygem9uZXMgYXNzaWduZWQgdG8gbm8gY291bnRyeSBpbiB0aGUgT2xzb24KKyAqIERCLgorICoKKyAqIDQuIE1ldGFkYXRhLiAgTWV0YWRhdGEgaXMgc3RvcmVkIHVuZGVyIHRoZSBrZXkgIl8iLiAgSXQgaXMgYW4KKyAqIGludHZlY3RvciBvZiBsZW5ndGggdGhyZWUgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHpvbmVzIHJlc291cmNlcywKKyAqIHJ1bGUgcmVzb3VyY2VzLCBhbmQgY291bnRyeSByZXNvdXJjZXMuICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMKKyAqIGNvdW50LCB0aGUgbWV0YWRhdGEgZW50cnkgaXRzZWxmIGlzIGNvbnNpZGVyZWQgYSBydWxlIHJlc291cmNlLAorICogc2luY2UgaXRzIGtleSBiZWdpbnMgd2l0aCBhbiB1bmRlcnNjb3JlLgorICovCitwdWJsaWMgY2xhc3MgT2xzb25UaW1lWm9uZSBleHRlbmRzIFRpbWVab25lIHsKKworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTYyODE5NzczNjI0Nzc1MTUzNzZMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKworICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUjZ2V0T2Zmc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwgaW50IGRheU9mV2VlaywgaW50IG1pbGxpc2Vjb25kcykgeworICAgICAgICBpZiAobW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1vbnRoIGlzIG5vdCBpbiB0aGUgbGVnYWwgcmFuZ2U6ICIgK21vbnRoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpc2Vjb25kcywgR3JlZ28ubW9udGhMZW5ndGgoeWVhciwgbW9udGgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE9mZnNldChpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLGludCBkb20sIGludCBkb3csIGludCBtaWxsaXMsIGludCBtb250aExlbmd0aCl7CisKKyAgICAgICAgaWYgKChlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQgJiYgZXJhICE9IEdyZWdvcmlhbkNhbGVuZGFyLkJDKQorICAgICAgICAgICAgfHwgbW9udGggPCBDYWxlbmRhci5KQU5VQVJZCisgICAgICAgICAgICB8fCBtb250aCA+IENhbGVuZGFyLkRFQ0VNQkVSCisgICAgICAgICAgICB8fCBkb20gPCAxCisgICAgICAgICAgICB8fCBkb20gPiBtb250aExlbmd0aAorICAgICAgICAgICAgfHwgZG93IDwgQ2FsZW5kYXIuU1VOREFZCisgICAgICAgICAgICB8fCBkb3cgPiBDYWxlbmRhci5TQVRVUkRBWQorICAgICAgICAgICAgfHwgbWlsbGlzIDwgMAorICAgICAgICAgICAgfHwgbWlsbGlzID49IE1JTExJU19QRVJfREFZCisgICAgICAgICAgICB8fCBtb250aExlbmd0aCA8IDI4CisgICAgICAgICAgICB8fCBtb250aExlbmd0aCA+IDMxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXJhID09IEdyZWdvcmlhbkNhbGVuZGFyLkJDKSB7CisgICAgICAgICAgICB5ZWFyID0gLXllYXI7CisgICAgICAgIH0KKworICAgICAgICBpZiAoeWVhciA+IGZpbmFsWWVhcikgeyAvLyBbc2ljXSA+LCBub3QgPj07IHNlZSBhYm92ZQorICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCIoZmluYWxab25lICE9IG51bGwpIiwgZmluYWxab25lICE9IG51bGwpOworICAgICAgICAgICAgcmV0dXJuIGZpbmFsWm9uZS5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZG9tLCBkb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlsbGlzLCBtb250aExlbmd0aCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21wdXRlIGxvY2FsIGVwb2NoIHNlY29uZHMgZnJvbSBpbnB1dCBmaWVsZHMKKyAgICAgICAgZG91YmxlIHRpbWUgPSBmaWVsZHNUb0RheSh5ZWFyLCBtb250aCwgZG9tKSAqIFNFQ09ORFNfUEVSX0RBWSArCisgICAgICAgICAgICBNYXRoLmZsb29yKG1pbGxpcyAvIChkb3VibGUpIE1JTExJU19QRVJfU0VDT05EKTsKKworICAgICAgICBpbnRbXSBvZmZzZXRzID0gbmV3IGludFsyXTsKKyAgICAgICAgZ2V0SGlzdG9yaWNhbE9mZnNldCh0aW1lLCB0cnVlLCBvZmZzZXRzKTsKKyAgICAgICAgcmV0dXJuIG9mZnNldHNbMF0gKyBvZmZzZXRzWzFdOworICAgIH0KKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRpbWVab25lI3NldFJhd09mZnNldChpbnQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmF3T2Zmc2V0KGludCBvZmZzZXRNaWxsaXMpIHsKKyAgICAgICAgZmluYWxab25lLnNldFJhd09mZnNldChvZmZzZXRNaWxsaXMpOworICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICBPbHNvblRpbWVab25lIG90aGVyID0gKE9sc29uVGltZVpvbmUpIHN1cGVyLmNsb25lKCk7CisgICAgICAgIGlmKGZpbmFsWm9uZSE9bnVsbCl7CisgICAgICAgICAgICBmaW5hbFpvbmUuc2V0SUQoZ2V0SUQoKSk7CisgICAgICAgICAgICBvdGhlci5maW5hbFpvbmUgPSAoU2ltcGxlVGltZVpvbmUpZmluYWxab25lLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgb3RoZXIudHJhbnNpdGlvblRpbWVzID0gKGludFtdKXRyYW5zaXRpb25UaW1lcy5jbG9uZSgpOworICAgICAgICBvdGhlci50eXBlRGF0YSA9IChieXRlW10pdHlwZURhdGEuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIudHlwZU9mZnNldHMgPSAoaW50W10pdHlwZU9mZnNldHMuY2xvbmUoKTsKKyAgICAgICAgcmV0dXJuIG90aGVyOworICAgIH0KKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0T2Zmc2V0KGxvbmcgZGF0ZSwgYm9vbGVhbiBsb2NhbCwgaW50W10gb2Zmc2V0cykgIHsKKyAgICAgICAgaW50IHJhd29mZiwgZHN0b2ZmOworICAgICAgICAvLyBUaGUgY2hlY2sgYWdhaW5zdCBmaW5hbE1pbGxpcyB3aWxsIHN1ZmZpY2UgbW9zdCBvZiB0aGUgdGltZSwgZXhjZXB0CisgICAgICAgIC8vIGZvciB0aGUgY2FzZSBpbiB3aGljaCBmaW5hbE1pbGxpcyA9PSBEQkxfTUFYLCBkYXRlID09IERCTF9NQVgsCisgICAgICAgIC8vIGFuZCBmaW5hbFpvbmUgPT0gMC4gIEZvciB0aGlzIGNhc2Ugd2UgYWRkICImJiBmaW5hbFpvbmUgIT0gMCIuCisgICAgICAgIGlmIChkYXRlID49IGZpbmFsTWlsbGlzICYmIGZpbmFsWm9uZSAhPSBudWxsKSB7CisgICAgICAgICAgICBkb3VibGVbXSBkb3ViID0gZmxvb3JEaXZpZGUoZGF0ZSwgKGRvdWJsZSlNSUxMSVNfUEVSX0RBWSk7CisgICAgICAgICAgICBkb3VibGUgbWlsbGlzPWRvdWJbMV07CisgICAgICAgICAgICBkb3VibGUgZGF5cz1kb3ViWzBdOworICAgICAgICAgICAgaW50W10gdGVtcCA9IGRheVRvRmllbGRzKGRheXMpOworICAgICAgICAgICAgaW50IHllYXI9dGVtcFswXSwgbW9udGg9dGVtcFsxXSwgZG9tPXRlbXBbMl0sIGRvdz10ZW1wWzNdOworICAgICAgICAgICAgcmF3b2ZmID0gZmluYWxab25lLmdldFJhd09mZnNldCgpOworCisgICAgICAgICAgICBpZiAoIWxvY2FsKSB7CisgICAgICAgICAgICAgICAgLy8gQWRqdXN0IGZyb20gR01UIHRvIGxvY2FsCisgICAgICAgICAgICAgICAgZGF0ZSArPSByYXdvZmY7CisgICAgICAgICAgICAgICAgZG91YiA9IGZsb29yRGl2aWRlKGRhdGUsIChkb3VibGUpTUlMTElTX1BFUl9EQVkpOworICAgICAgICAgICAgICAgIGRvdWJsZSBkYXlzMiA9IGRvdWJbMF07IAorICAgICAgICAgICAgICAgIG1pbGxpcyA9IGRvdWJbMV07CisgICAgICAgICAgICAgICAgaWYgKGRheXMyICE9IGRheXMpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCA9IGRheVRvRmllbGRzKGRheXMyKTsKKyAgICAgICAgICAgICAgICAgICAgeWVhcj10ZW1wWzBdOworICAgICAgICAgICAgICAgICAgICBtb250aD10ZW1wWzFdOworICAgICAgICAgICAgICAgICAgICBkb209dGVtcFsyXTsKKyAgICAgICAgICAgICAgICAgICAgZG93PXRlbXBbM107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkc3RvZmYgPSBmaW5hbFpvbmUuZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCB5ZWFyLCBtb250aCwgZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3csIChpbnQpbWlsbGlzKSAKKyAgICAgICAgICAgICAgICAgICAgLSByYXdvZmY7CisgICAgICAgICAgICBvZmZzZXRzWzBdPXJhd29mZjsKKyAgICAgICAgICAgIG9mZnNldHNbMV09ZHN0b2ZmOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZG91YmxlIHNlY3MgPSBNYXRoLmZsb29yKGRhdGUgLyBNSUxMSVNfUEVSX1NFQ09ORCk7CisgICAgICAgIGdldEhpc3RvcmljYWxPZmZzZXQoc2VjcywgbG9jYWwsIG9mZnNldHMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRvdWJsZVtdIGZsb29yRGl2aWRlKGRvdWJsZSBkaXZpZGVuZCwgZG91YmxlIGRpdmlzb3IpIHsKKyAgICAgICAgZG91YmxlIHJlbWFpbmRlcjsgCisgICAgICAgIGRvdWJsZVtdIHJldCA9IG5ldyBkb3VibGVbMl07CisgICAgICAgIC8vIE9ubHkgZGVzaWduZWQgdG8gd29yayBmb3IgcG9zaXRpdmUgZGl2aXNvcnMKKyAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCJkaXZpc29yID4gMCIsIGRpdmlzb3IgPiAwKTsKKyAgICAgICAgZG91YmxlIHF1b3RpZW50ID0gTWF0aC5mbG9vcihkaXZpZGVuZC9kaXZpc29yKTsKKyAgICAgICAgcmVtYWluZGVyID0gZGl2aWRlbmQgLSAocXVvdGllbnQgKiBkaXZpc29yKTsKKyAgICAgICAgLy8gTi5CLiBGb3IgY2VydGFpbiBsYXJnZSBkaXZpZGVuZHMsIG9uIGNlcnRhaW4gcGxhdGZvcm1zLCB0aGVyZQorICAgICAgICAvLyBpcyBhIGJ1ZyBzdWNoIHRoYXQgdGhlIHF1b3RpZW50IGlzIG9mZiBieSBvbmUuIElmIHlvdSBkb3VidAorICAgICAgICAvLyB0aGlzIHRvIGJlIHRydWUsIHNldCBhIGJyZWFrcG9pbnQgYmVsb3cgYW5kIHJ1biBjaW50bHRzdC4KKyAgICAgICAgaWYgKHJlbWFpbmRlciA8IDAgfHwgcmVtYWluZGVyID49IGRpdmlzb3IpIHsKKyAgICAgICAgICAgIC8vIEUuZy4gNi43MzE3MDM4MjQxNDQ5MzUyZSswMjIgLyA4NjQwMDAwMC4wIGlzIHdyb25nIG9uIG15CisgICAgICAgICAgICAvLyBtYWNoaW5lICh0b28gaGlnaCBieSBvbmUpLiA0LjE3OTIwNTcyMzE3NTI3NjJlKzAyNCAvCisgICAgICAgICAgICAvLyA4NjQwMDAwMC4wIGlzIHdyb25nIHRoZSBvdGhlciB3YXkgKHRvbyBsb3cpLgorICAgICAgICAgICAgZG91YmxlIHEgPSBxdW90aWVudDsKKyAgICAgICAgICAgIHF1b3RpZW50ICs9IChyZW1haW5kZXIgPCAwKSA/IC0xIDogKzE7CisgICAgICAgICAgICBpZiAocSA9PSBxdW90aWVudCkgeworICAgICAgICAgICAgICAgIC8vIEZvciBxdW90aWVudHMgPiB+Ml41Mywgd2Ugd29uJ3QgYmUgYWJsZSB0byBhZGQgb3IKKyAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdCBvbmUsIHNpbmNlIHRoZSBMU0Igb2YgdGhlIG1hbnRpc3NhIHdpbGwgYmUgPgorICAgICAgICAgICAgICAgIC8vIDJeMDsgdGhhdCBpcywgdGhlIGV4cG9uZW50IChiYXNlIDIpIHdpbGwgYmUgbGFyZ2VyIHRoYW4KKyAgICAgICAgICAgICAgICAvLyB0aGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUgbWFudGlzc2EuIEluIHRoYXQgY2FzZSwgd2UKKyAgICAgICAgICAgICAgICAvLyBjYW4ndCBnaXZlIGEgY29ycmVjdCBhbnN3ZXIsIHNvIHdlIHNldCB0aGUgcmVtYWluZGVyIHRvCisgICAgICAgICAgICAgICAgLy8gemVyby4gVGhpcyBoYXMgdGhlIGRlc2lyZWQgZWZmZWN0IG9mIG1ha2luZyBleHRyZW1lCisgICAgICAgICAgICAgICAgLy8gdmFsdWVzIGdpdmUgYmFjayBhbiBhcHByb3hpbWF0ZSBhbnN3ZXIgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgICAgICAvLyBjcmFzaGluZy4gRm9yIGV4YW1wbGUsIFVEYXRlIHZhbHVlcyBhYm92ZSBhIH4xMF4yNQorICAgICAgICAgICAgICAgIC8vIG1pZ2h0IGFsbCBoYXZlIGEgdGltZSBvZiBtaWRuaWdodC4KKyAgICAgICAgICAgICAgICByZW1haW5kZXIgPSAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZW1haW5kZXIgPSBkaXZpZGVuZCAtIChxdW90aWVudCAqIGRpdmlzb3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgiMCA8PSByZW1haW5kZXIgJiYgcmVtYWluZGVyIDwgZGl2aXNvciIsIDAgPD0gcmVtYWluZGVyICYmIHJlbWFpbmRlciA8IGRpdmlzb3IpOworICAgICAgICByZXRbMF09cXVvdGllbnQ7CisgICAgICAgIHJldFsxXT1yZW1haW5kZXI7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUjZ2V0UmF3T2Zmc2V0KCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhd09mZnNldCgpIHsKKyAgICAgICAgaW50W10gcmV0ID0gbmV3IGludFsyXTsKKyAgICAgICAgZ2V0T2Zmc2V0KCBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSwgZmFsc2UsIHJldCk7CisgICAgICAgIHJldHVybiByZXRbMF07CisgICAgfQorCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSN1c2VEYXlsaWdodFRpbWUoKQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpIHsKKy8vICAgICAgSWYgRFNUIHdhcyBvYnNlcnZlZCBpbiAxOTQyIChmb3IgZXhhbXBsZSkgYnV0IGhhcyBuZXZlciBiZWVuCisgICAgICAgIC8vIG9ic2VydmVkIGZyb20gMTk0MyB0byB0aGUgcHJlc2VudCwgbW9zdCBjbGllbnRzIHdpbGwgZXhwZWN0CisgICAgICAgIC8vIHRoaXMgbWV0aG9kIHRvIHJldHVybiBGQUxTRS4gIFRoaXMgbWV0aG9kIGRldGVybWluZXMgd2hldGhlcgorICAgICAgICAvLyBEU1QgaXMgaW4gdXNlIGluIHRoZSBjdXJyZW50IHllYXIgKGF0IGFueSBwb2ludCBpbiB0aGUgeWVhcikKKyAgICAgICAgLy8gYW5kIHJldHVybnMgVFJVRSBpZiBzby4KKworICAgICAgICBkb3VibGVbXSBkdCA9IGZsb29yRGl2aWRlKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpLCAoZG91YmxlKU1JTExJU19QRVJfREFZKTsgLy8gZXBvY2ggZGF5cworICAgICAgICBpbnQgZGF5cyA9IChpbnQpZHRbMF07CisgICAgICAgIGludFtdIGl0ID0gZGF5VG9GaWVsZHMoZGF5cyk7CisKKyAgICAgICAgaW50IHllYXI9aXRbMF07IC8qLCBtb250aD1pdFsxXSwgZG9tPWl0WzJdLCBkb3c9aXRbM10qLworICAgICAgICBpZiAoeWVhciA+IGZpbmFsWWVhcikgeyAvLyBbc2ljXSA+LCBub3QgPj07IHNlZSBhYm92ZQorICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCJmaW5hbFpvbmUgIT0gbnVsbCAmJiBmaW5hbFpvbmUudXNlRGF5bGlnaHRUaW1lKCkiLCBmaW5hbFpvbmUgIT0gbnVsbCAmJiBmaW5hbFpvbmUudXNlRGF5bGlnaHRUaW1lKCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHN0YXJ0IG9mIHRoaXMgeWVhciwgYW5kIHN0YXJ0IG9mIG5leHQgeWVhcgorICAgICAgICBpbnQgc3RhcnQgPSAoaW50KSBmaWVsZHNUb0RheSh5ZWFyLCAwLCAxKSAqIFNFQ09ORFNfUEVSX0RBWTsgICAgCisgICAgICAgIGludCBsaW1pdCA9IChpbnQpIGZpZWxkc1RvRGF5KHllYXIrMSwgMCwgMSkgKiBTRUNPTkRTX1BFUl9EQVk7ICAgIAorCisgICAgICAgIC8vIFJldHVybiBUUlVFIGlmIERTVCBpcyBvYnNlcnZlZCBhdCBhbnkgdGltZSBkdXJpbmcgdGhlIGN1cnJlbnQKKyAgICAgICAgLy8geWVhci4KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zaXRpb25Db3VudDsgKytpKSB7CisgICAgICAgICAgICBpZiAodHJhbnNpdGlvblRpbWVzW2ldID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHJhbnNpdGlvblRpbWVzW2ldID49IHN0YXJ0ICYmCisgICAgICAgICAgICAgICAgZHN0T2Zmc2V0KHR5cGVEYXRhW2ldKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEkKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSB0byBiZSBhZGRlZCB0byBsb2NhbCBzdGFuZGFyZCB0aW1lCisgICAgICogdG8gZ2V0IGxvY2FsIHdhbGwgY2xvY2sgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERTVFNhdmluZ3MoKSB7CisgICAgCWlmKGZpbmFsWm9uZSE9bnVsbCl7CisgICAgCQlyZXR1cm4gZmluYWxab25lLmdldERTVFNhdmluZ3MoKTsKKyAgICAJfQorICAgIAlyZXR1cm4gc3VwZXIuZ2V0RFNUU2F2aW5ncygpOworICAgIAkKKyAgICB9CisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSNpbkRheWxpZ2h0VGltZShqYXZhLnV0aWwuRGF0ZSkKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpIHsKKyAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbMl07CisgICAgICAgIGdldE9mZnNldChkYXRlLmdldFRpbWUoKSwgZmFsc2UsIHRlbXApOworICAgICAgICByZXR1cm4gdGVtcFsxXSAhPSAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBHTVQrMCB6b25lIHdpdGggbm8gdHJhbnNpdGlvbnMuICBUaGlzIGlzIGRvbmUgd2hlbiBhCisgICAgICogY29uc3RydWN0b3IgZmFpbHMgc28gdGhlIHJlc3VsdGFudCBvYmplY3QgaXMgd2VsbC1iZWhhdmVkLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb25zdHJ1Y3RFbXB0eSgpeworICAgICAgICB0cmFuc2l0aW9uQ291bnQgPSAwOworICAgICAgICB0eXBlQ291bnQgPSAxOworICAgICAgICB0cmFuc2l0aW9uVGltZXMgPSB0eXBlT2Zmc2V0cyA9IG5ldyBpbnRbXXswLDB9OworICAgICAgICB0eXBlRGF0YSA9ICBuZXcgYnl0ZVsyXTsKKyAgICAgICAgCisgICAgfQorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBmcm9tIGEgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHBhcmFtIHRvcCB0aGUgdG9wLWxldmVsIHpvbmVpbmZvIHJlc291cmNlIGJ1bmRsZS4gIFRoaXMgaXMgdXNlZAorICAgICAqIHRvIGxvb2t1cCB0aGUgcnVsZSB0aGF0IGByZXMnIG1heSByZWZlciB0bywgaWYgdGhlcmUgaXMgb25lLgorICAgICAqIEBwYXJhbSByZXMgdGhlIHJlc291cmNlIGJ1bmRsZSBvZiB0aGUgem9uZSB0byBiZSBjb25zdHJ1Y3RlZAorICAgICAqLworICAgIHB1YmxpYyBPbHNvblRpbWVab25lKElDVVJlc291cmNlQnVuZGxlIHRvcCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVzKXsKKyAgICAgICAgY29uc3RydWN0KHRvcCwgcmVzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnN0cnVjdChJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AsIElDVVJlc291cmNlQnVuZGxlIHJlcyl7CisgICAgICAgIAorICAgICAgICBpZiAoKHRvcCA9PSBudWxsIHx8IHJlcyA9PSBudWxsKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIk9sc29uVGltZVpvbmUoIiArIHJlcy5nZXRLZXkoKSArIikiKTsKKworCisgICAgICAgIC8vIFRPRE8gLS0gY2xlYW4gdXAgLS0gRG9lc24ndCB3b3JrIGlmIHJlcyBwb2ludHMgdG8gYW4gYWxpYXMKKyAgICAgICAgLy8gICAgICAgIC8vIFRPRE8gcmVtb3ZlIG5vbmNvbnN0IGNhc3RzIGJlbG93IHdoZW4gdXJlc18qIEFQSSBpcyBmaXhlZAorICAgICAgICAvLyAgICAgICAgc2V0SUQodXJlc19nZXRLZXkoKFVSZXNvdXJjZUJ1bmRsZSopIHJlcykpOyAvLyBjYXN0IGF3YXkgY29uc3QKKworICAgICAgICAvLyBTaXplIDEgaXMgYW4gYWxpYXMgVE8gYW5vdGhlciB6b25lIChpbnQpCisgICAgICAgIC8vIEhPV0VWRVIsIHRoZSBjYWxsZXIgc2hvdWxkIGRlcmVmZXJlbmNlIHRoaXMgYW5kIG5ldmVyIHBhc3MgaXQgaW4gdG8gdXMKKyAgICAgICAgLy8gU2l6ZSAzIGlzIGEgcHVyZWx5IGhpc3RvcmljYWwgem9uZSAobm8gZmluYWwgcnVsZXMpCisgICAgICAgIC8vIFNpemUgNCBpcyBsaWtlIHNpemUgMywgYnV0IHdpdGggYW4gYWxpYXMgbGlzdCBhdCB0aGUgZW5kCisgICAgICAgIC8vIFNpemUgNSBpcyBhIGh5YnJpZCB6b25lLCB3aXRoIGhpc3RvcmljYWwgYW5kIGZpbmFsIGVsZW1lbnRzCisgICAgICAgIC8vIFNpemUgNiBpcyBsaWtlIHNpemUgNSwgYnV0IHdpdGggYW4gYWxpYXMgbGlzdCBhdCB0aGUgZW5kCisgICAgICAgIGludCBzaXplID0gcmVzLmdldFNpemUoKTsKKyAgICAgICAgaWYgKHNpemUgPCAzIHx8IHNpemUgPiA2KSB7CisgICAgICAgICAgIC8vIGVjID0gVV9JTlZBTElEX0ZPUk1BVF9FUlJPUjsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFuc2l0aW9ucyBsaXN0IG1heSBiZSBlbXB0eQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gcmVzLmdldCgwKTsKKyAgICAgICAgdHJhbnNpdGlvblRpbWVzID0gci5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgCisgICAgICAgIGlmICgodHJhbnNpdGlvblRpbWVzLmxlbmd0aDwwIHx8IHRyYW5zaXRpb25UaW1lcy5sZW5ndGg+MHg3RkZGKSApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNpdGlvbkNvdW50ID0gKGludCkgdHJhbnNpdGlvblRpbWVzLmxlbmd0aDsKKyAgICAgICAgCisgICAgICAgIC8vIFR5cGUgb2Zmc2V0cyBsaXN0IG11c3QgYmUgb2YgZXZlbiBzaXplLCB3aXRoIHNpemUgPj0gMgorICAgICAgICByID0gcmVzLmdldCggMSk7CisgICAgICAgIHR5cGVPZmZzZXRzID0gci5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgaWYgKCh0eXBlT2Zmc2V0cy5sZW5ndGg8MiB8fCB0eXBlT2Zmc2V0cy5sZW5ndGg+MHg3RkZFIHx8ICgodHlwZU9mZnNldHMubGVuZ3RoJjEpIT0wKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHlwZUNvdW50ID0gKGludCkgdHlwZU9mZnNldHMubGVuZ3RoID4+IDE7CisKKyAgICAgICAgLy8gVHlwZSBkYXRhIG11c3QgYmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgdHJhbnNpdGlvbnMgbGlzdCAgICAgICAgCisgICAgICAgIHIgPSByZXMuZ2V0KDIpOworICAgICAgICB0eXBlRGF0YSA9IHIuZ2V0QmluYXJ5KCkuYXJyYXkoKTsKKyAgICAgICAgaWYgKHR5cGVEYXRhLmxlbmd0aCAhPSB0cmFuc2l0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm9jZXNzIGZpbmFsIHJ1bGUgYW5kIGRhdGEsIGlmIGFueQorICAgICAgICBpZiAoc2l6ZSA+PSA1KSB7CisgICAgICAgICAgICBTdHJpbmcgcnVsZWlkID0gcmVzLmdldFN0cmluZygzKTsKKyAgICAgICAgICAgIHIgPSByZXMuZ2V0KDQpOworICAgICAgICAgICAgaW50W10gZGF0YSA9IHIuZ2V0SW50VmVjdG9yKCk7CisKKyAgICAgICAgICAgIGlmIChkYXRhICE9IG51bGwgJiYgZGF0YS5sZW5ndGggPT0gMikgeworICAgICAgICAgICAgICAgIGludCByYXdPZmZzZXQgPSBkYXRhWzBdICogTUlMTElTX1BFUl9TRUNPTkQ7CisgICAgICAgICAgICAgICAgLy8gU3VidHJhY3Qgb25lIGZyb20gdGhlIGFjdHVhbCBmaW5hbCB5ZWFyOyB3ZQorICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IHN0b3JlIGZpbmFsIHllYXIgLSAxLCBhbmQgY29tcGFyZQorICAgICAgICAgICAgICAgIC8vIHVzaW5nID4gcmF0aGVyIHRoYW4gPj0uICBUaGlzIGFsbG93cyB1cyB0byB1c2UKKyAgICAgICAgICAgICAgICAvLyBJTlQzMl9NQVggYXMgYW4gZXhjbHVzaXZlIHVwcGVyIGxpbWl0IGZvciBhbGwKKyAgICAgICAgICAgICAgICAvLyB5ZWFycywgaW5jbHVkaW5nIElOVDMyX01BWC4KKyAgICAgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoImRhdGFbMV0gPiBJbnRlZ2VyLk1JTl9WQUxVRSIsIGRhdGFbMV0gPiBJbnRlZ2VyLk1JTl9WQUxVRSk7CisgICAgICAgICAgICAgICAgZmluYWxZZWFyID0gZGF0YVsxXSAtIDE7CisgICAgICAgICAgICAgICAgLy8gQWxzbyBjb21wdXRlIHRoZSBtaWxsaXMgZm9yIEphbiAxLCAwOjAwIEdNVCBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBmaW5hbFllYXIuICBUaGlzIHJlZHVjZXMgcnVudGltZSBjb21wdXRhdGlvbnMuCisgICAgICAgICAgICAgICAgZmluYWxNaWxsaXMgPSBmaWVsZHNUb0RheShkYXRhWzFdLCAwLCAxKSAqIFRpbWVab25lLk1JTExJU19QRVJfREFZOworICAgICAgICAgICAgICAgIC8vVV9ERUJVR19UWl9NU0coKCJ6b25lJXN8JXM6IHslZCwlZH0sIGZpbmFsWWVhciVkLCBmaW5hbE1pbGxpcyUuMWxmXG4iLAorICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgIHpLZXkscktleSwgZGF0YVswXSwgZGF0YVsxXSwgZmluYWxZZWFyLCBmaW5hbE1pbGxpcykpOworICAgICAgICAgICAgICAgIHIgPSBsb2FkUnVsZSh0b3AsIHJ1bGVpZCk7CisKKyAgICAgICAgICAgICAgICAvLyAzLCAxLCAtMSwgNzIwMCwgMCwgOSwgLTMxLCAtMSwgNzIwMCwgMCwgMzYwMAorICAgICAgICAgICAgICAgIGRhdGEgPSByLmdldEludFZlY3RvcigpOworICAgICAgICAgICAgICAgIGlmICggZGF0YS5sZW5ndGggPT0gMTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9VX0RFQlVHX1RaX01TRygoInpvbmUlcywgcnVsZSVzOiB7JWQsJWQsJWQsJWQsJWQsJWQsJWQsJWQsJWQsJWQsJWR9IiwgektleSwgdXJlc19nZXRLZXkociksIAorICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSwgZGF0YVszXSwgZGF0YVs0XSwgZGF0YVs1XSwgZGF0YVs2XSwgZGF0YVs3XSwgZGF0YVs4XSwgZGF0YVs5XSwgZGF0YVsxMF0pKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWxab25lID0gbmV3IFNpbXBsZVRpbWVab25lKHJhd09mZnNldCwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVszXSAqIE1JTExJU19QRVJfU0VDT05ELAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVs0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbNV0sIGRhdGFbNl0sIGRhdGFbN10sCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzhdICogTUlMTElTX1BFUl9TRUNPTkQsCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzldLAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsxMF0gKiBNSUxMSVNfUEVSX1NFQ09ORCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBGb3JtYXQiKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEZvcm1hdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgT2xzb25UaW1lWm9uZSgpeworICAgICAgIC8qCisgICAgICAgICogCisgICAgICAgIGZpbmFsWWVhciA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICBmaW5hbE1pbGxpcyA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIGZpbmFsWm9uZSA9IG51bGw7CisgICAgICAgICovCisgICAgICAgIGNvbnN0cnVjdEVtcHR5KCk7CisgICAgfQorCisKKyAgICBwdWJsaWMgT2xzb25UaW1lWm9uZShTdHJpbmcgaWQpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInpvbmVpbmZvIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzID0gWm9uZU1ldGEub3Blbk9sc29uUmVzb3VyY2UoaWQpOworICAgICAgICBjb25zdHJ1Y3QodG9wLCByZXMpOworICAgICAgICBpZihmaW5hbFpvbmUhPW51bGwpeworICAgICAgICAgICAgZmluYWxab25lLnNldElEKGlkKTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5zZXRJRChpZCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHNldElEKFN0cmluZyBpZCl7CisgICAgICAgIGlmKGZpbmFsWm9uZSE9IG51bGwpeworICAgICAgICAgICAgZmluYWxab25lLnNldElEKGlkKTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5zZXRJRChpZCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNJR05FRF9CWVRFX01BU0sgPTB4RkY7CisgICAgcHJpdmF0ZSBpbnQgZ2V0SW50KGJ5dGUgdmFsKXsKKyAgICAJcmV0dXJuIChpbnQpKFVOU0lHTkVEX0JZVEVfTUFTSyAmIHZhbCk7IAorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZ2V0SGlzdG9yaWNhbE9mZnNldChkb3VibGUgdGltZSwgYm9vbGVhbiBsb2NhbCwgaW50W10gb2Zmc2V0cykgeworICAgICAgICBpZiAodHJhbnNpdGlvbkNvdW50ICE9IDApIHsKKyAgICAgICAgICAgIC8vIExpbmVhciBzZWFyY2ggZnJvbSB0aGUgZW5kIGlzIHRoZSBmYXN0ZXN0IGFwcHJvYWNoLCBzaW5jZQorICAgICAgICAgICAgLy8gbW9zdCBsb29rdXBzIHdpbGwgaGFwcGVuIGF0L25lYXIgdGhlIGVuZC4KKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIGZvciAoaSA9IHRyYW5zaXRpb25Db3VudCAtIDE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpbnQgdHJhbnNpdGlvbiA9IHRyYW5zaXRpb25UaW1lc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHpvbmVPZmZzZXRQcmV2ID0gem9uZU9mZnNldChnZXRJbnQodHlwZURhdGFbaS0xXSkpOworICAgICAgICAgICAgICAgICAgICBpbnQgem9uZU9mZnNldEN1cnIgPSB6b25lT2Zmc2V0KGdldEludCh0eXBlRGF0YVtpXSkpOworICAgICAgICAgICAgICAgICAgICBpZih6b25lT2Zmc2V0UHJldiA8IHpvbmVPZmZzZXRDdXJyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uICs9IHpvbmVPZmZzZXRQcmV2OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbiArPSB6b25lT2Zmc2V0Q3VycjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGltZSA+PSB0cmFuc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCJpPj0wICYmIGk8dHJhbnNpdGlvbkNvdW50IiwgaT49MCAmJiBpPHRyYW5zaXRpb25Db3VudCk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIGludmFyaWFudHMgZm9yIEdNVCB0aW1lczsgaWYgdGhlc2UgcGFzcyBmb3IgR01UIHRpbWVzCisgICAgICAgICAgICAvLyB0aGUgbG9jYWwgbG9naWMgc2hvdWxkIGJlIHdvcmtpbmcgdG9vLgorICAgICAgICAgICAgaWYgKEFTU0VSVCkgeworICAgICAgICAgICAgICAgIEFzc2VydC5hc3NydCgibG9jYWwgfHwgdGltZSA8IHRyYW5zaXRpb25UaW1lc1swXSB8fCB0aW1lID49IHRyYW5zaXRpb25UaW1lc1tpXSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwgfHwgdGltZSA8IHRyYW5zaXRpb25UaW1lc1swXSB8fCB0aW1lID49IHRyYW5zaXRpb25UaW1lc1tpXSk7CisgICAgICAgICAgICAgICAgQXNzZXJ0LmFzc3J0KCJsb2NhbCB8fCBpID09IHRyYW5zaXRpb25Db3VudC0xIHx8IHRpbWUgPCB0cmFuc2l0aW9uVGltZXNbaSsxXSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwgfHwgaSA9PSB0cmFuc2l0aW9uQ291bnQtMSB8fCB0aW1lIDwgdHJhbnNpdGlvblRpbWVzW2krMV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBnaXZlbiB0aW1lIGlzIGJlZm9yZSB0aGUgdmVyeSBmaXJzdCB0cmFuc2l0aW9uCisgICAgICAgICAgICAgICAgaW50IGZpcnN0VHJhbnNpdGlvbiA9IHRyYW5zaXRpb25UaW1lc1swXTsKKyAgICAgICAgICAgICAgICBpbnQgaW5pdGlhbFJhd09mZnNldCA9IHJhd09mZnNldChnZXRJbnQodHlwZURhdGFbMF0pKTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RUcmFuc2l0aW9uICs9IGluaXRpYWxSYXdPZmZzZXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0aW1lID49IGZpcnN0VHJhbnNpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZ2l2ZW4gdGltZSBpcyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgdGhlIHNlY29uZCB0cmFuc2l0aW9uCisgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbMF0gPSBpbml0aWFsUmF3T2Zmc2V0ICogTUlMTElTX1BFUl9TRUNPTkQ7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbMV0gPSBkc3RPZmZzZXQoZ2V0SW50KHR5cGVEYXRhWzBdKSkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZ2l2ZW4gdGltZSBpcyBiZWZvcmUgdGhlIGZpcnN0IHRyYW5zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1swXSA9IGluaXRpYWxSYXdPZmZzZXQgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1sxXSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBnZXRJbnQodHlwZURhdGFbaV0pOworICAgICAgICAgICAgICAgIG9mZnNldHNbMF0gPSByYXdPZmZzZXQoaW5kZXgpICogTUlMTElTX1BFUl9TRUNPTkQ7CisgICAgICAgICAgICAgICAgb2Zmc2V0c1sxXSA9IGRzdE9mZnNldChpbmRleCkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE5vIHRyYW5zaXRpb25zLCBzaW5nbGUgcGFpciBvZiBvZmZzZXRzIG9ubHkKKyAgICAgICAgICAgIG9mZnNldHNbMF0gPSByYXdPZmZzZXQoMCkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgIG9mZnNldHNbMV0gPSBkc3RPZmZzZXQoMCkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGludCB6b25lT2Zmc2V0KGludCBpbmRleCl7CisgICAgICAgIGluZGV4PWluZGV4IDw8IDE7CisgICAgICAgIHJldHVybiB0eXBlT2Zmc2V0c1tpbmRleF0gKyB0eXBlT2Zmc2V0c1tpbmRleCsxXTsKKyAgICB9CisgICAgcHJpdmF0ZSBpbnQgcmF3T2Zmc2V0KGludCBpbmRleCl7CisgICAgICAgIHJldHVybiB0eXBlT2Zmc2V0c1soaW50KShpbmRleCA8PCAxKV07CisgICAgfQorICAgIHByaXZhdGUgaW50IGRzdE9mZnNldChpbnQgaW5kZXgpeworICAgICAgICByZXR1cm4gdHlwZU9mZnNldHNbKGludCkoKGluZGV4IDw8IDEpICsgMSldOworICAgIH0KKyAgICAKKyAgICAvLyB0ZW1wCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAJU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAJYnVmLmFwcGVuZChzdXBlci50b1N0cmluZygpKTsKKyAgICAJYnVmLmFwcGVuZCgnWycpOworICAgIAlidWYuYXBwZW5kKCJ0cmFuc2l0aW9uQ291bnQ9IiArIHRyYW5zaXRpb25Db3VudCk7CisgICAgCWJ1Zi5hcHBlbmQoIix0eXBlQ291bnQ9IiArIHR5cGVDb3VudCk7CisgICAgCWJ1Zi5hcHBlbmQoIix0cmFuc2l0aW9uVGltZXM9Iik7CisgICAgCWlmICh0cmFuc2l0aW9uVGltZXMgIT0gbnVsbCkgeworICAgIAkJYnVmLmFwcGVuZCgnWycpOworICAgIAkJZm9yIChpbnQgaSA9IDA7IGkgPCB0cmFuc2l0aW9uVGltZXMubGVuZ3RoOyArK2kpIHsKKyAgICAJCQlpZiAoaSA+IDApIHsKKyAgICAJCQkJYnVmLmFwcGVuZCgnLCcpOworICAgIAkJCX0KKyAgICAJCQlidWYuYXBwZW5kKEludGVnZXIudG9TdHJpbmcodHJhbnNpdGlvblRpbWVzW2ldKSk7CisgICAgCQl9CisgICAgCQlidWYuYXBwZW5kKCddJyk7CisgICAgCX0gZWxzZSB7CisgICAgCQlidWYuYXBwZW5kKCJudWxsIik7CisgICAgCX0KKyAgICAJYnVmLmFwcGVuZCgiLHR5cGVPZmZzZXRzPSIpOworICAgIAlpZiAodHlwZU9mZnNldHMgIT0gbnVsbCkgeworICAgIAkJYnVmLmFwcGVuZCgnWycpOworICAgIAkJZm9yIChpbnQgaSA9IDA7IGkgPCB0eXBlT2Zmc2V0cy5sZW5ndGg7ICsraSkgeworICAgIAkJCWlmIChpID4gMCkgeworICAgIAkJCQlidWYuYXBwZW5kKCcsJyk7CisgICAgCQkJfQorICAgIAkJCWJ1Zi5hcHBlbmQoSW50ZWdlci50b1N0cmluZyh0eXBlT2Zmc2V0c1tpXSkpOworICAgIAkJfQorICAgIAkJYnVmLmFwcGVuZCgnXScpOworICAgIAl9IGVsc2UgeworICAgIAkJYnVmLmFwcGVuZCgibnVsbCIpOworICAgIAl9CisgICAgCWJ1Zi5hcHBlbmQoIixmaW5hbFllYXI9IiArIGZpbmFsWWVhcik7CisgICAgCWJ1Zi5hcHBlbmQoIixmaW5hbE1pbGxpcz0iICsgZmluYWxNaWxsaXMpOworICAgIAlidWYuYXBwZW5kKCIsZmluYWxab25lPSIgKyBmaW5hbFpvbmUpOworICAgIAlidWYuYXBwZW5kKCddJyk7CisgICAgCQorICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8qKgorICAgICAqIE51bWJlciBvZiB0cmFuc2l0aW9ucywgMC4ufjM3MAorICAgICAqLworICAgIHByaXZhdGUgaW50IHRyYW5zaXRpb25Db3VudDsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiB0eXBlcywgMS4uMjU1CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgdHlwZUNvdW50OworCisgICAgLyoqCisgICAgICogVGltZSBvZiBlYWNoIHRyYW5zaXRpb24gaW4gc2Vjb25kcyBmcm9tIDE5NzAgZXBvY2guCisgICAgICogTGVuZ3RoIGlzIHRyYW5zaXRpb25Db3VudCBpbnQzMl90J3MuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSB0cmFuc2l0aW9uVGltZXM7IC8vIGFsaWFzIGludG8gcmVzOyBkbyBub3QgZGVsZXRlCisKKyAgICAvKioKKyAgICAgKiBPZmZzZXQgZnJvbSBHTVQgaW4gc2Vjb25kcyBmb3IgZWFjaCB0eXBlLgorICAgICAqIExlbmd0aCBpcyB0eXBlQ291bnQgaW50MzJfdCdzLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gdHlwZU9mZnNldHM7IC8vIGFsaWFzIGludG8gcmVzOyBkbyBub3QgZGVsZXRlCisKKyAgICAvKioKKyAgICAgKiBUeXBlIGRlc2NyaXB0aW9uIGRhdGEsIGNvbnNpc3Rpbmcgb2YgdHJhbnNpdGlvbkNvdW50IHVpbnQ4X3QKKyAgICAgKiB0eXBlIGluZGljZXMgKGZyb20gMC4udHlwZUNvdW50LTEpLgorICAgICAqIExlbmd0aCBpcyB0cmFuc2l0aW9uQ291bnQgaW50OF90J3MuCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlW10gdHlwZURhdGE7IC8vIGFsaWFzIGludG8gcmVzOyBkbyBub3QgZGVsZXRlCisKKyAgICAvKioKKyAgICAgKiBUaGUgbGFzdCB5ZWFyIGZvciB3aGljaCB0aGUgdHJhbnNpdGlvbnMgZGF0YSBhcmUgdG8gYmUgdXNlZAorICAgICAqIHJhdGhlciB0aGFuIHRoZSBmaW5hbFpvbmUuICBJZiB0aGVyZSBpcyBubyBmaW5hbFpvbmUsIHRoZW4gdGhpcworICAgICAqIGlzIHNldCB0byBJTlQzMl9NQVguICBOT1RFOiBUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSB5ZWFyIF9iZWZvcmVfCisgICAgICogdGhlIG9uZSBpbmRpY2F0ZWQgYnkgZmluYWxNaWxsaXMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZmluYWxZZWFyID0gSW50ZWdlci5NQVhfVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWlsbGlzIGZvciB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IHllYXIgZm9yIHdoaWNoIGZpbmFsWm9uZQorICAgICAqIGlzIHRvIGJlIHVzZWQsIG9yIERCTF9NQVggaWYgZmluYWxab25lIGlzIDAuICBOT1RFOiBUaGlzIGlzCisgICAgICogMDowMCBHTVQgSmFuIDEsIDxmaW5hbFllYXIgKyAxPiAobm90IDxmaW5hbE1pbGxpcz4pLgorICAgICAqLworICAgIHByaXZhdGUgZG91YmxlIGZpbmFsTWlsbGlzID0gRG91YmxlLk1BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIEEgU2ltcGxlVGltZVpvbmUgdGhhdCBnb3Zlcm5zIHRoZSBiZWhhdmlvciBmb3IgeWVhcnMgPiBmaW5hbFllYXIuCisgICAgICogSWYgYW5kIG9ubHkgaWYgZmluYWxZZWFyID09IElOVDMyX01BWCB0aGVuIGZpbmFsWm9uZSA9PSAwLgorICAgICAqLworICAgIHByaXZhdGUgU2ltcGxlVGltZVpvbmUgZmluYWxab25lID0gbnVsbDsgLy8gb3duZWQsIG1heSBiZSBOVUxMCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoIm9sc29uIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gREFZU19CRUZPUkUgPSBuZXcgaW50W10gezAsMzEsNTksOTAsMTIwLDE1MSwxODEsMjEyLDI0MywyNzMsMzA0LDMzNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLDMxLDYwLDkxLDEyMSwxNTIsMTgyLDIxMywyNDQsMjc0LDMwNSwzMzV9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpVTElBTl8xX0NFICAgID0gMTcyMTQyNjsgLy8gSmFudWFyeSAxLCAxIENFIEdyZWdvcmlhbgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKVUxJQU5fMTk3MF9DRSA9IDI0NDA1ODg7IC8vIEphbnVhcnkgMSwgMTk3MCBDRSBHcmVnb3JpYW4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlMTElTX1BFUl9TRUNPTkQgID0gMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VDT05EU19QRVJfREFZID0gMjQqNjAqNjA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIGZpZWxkc1RvRGF5KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkb20pIHsKKyAgICAgICAgaW50IHkgPSB5ZWFyIC0gMTsKKyAgICAgICAgZG91YmxlIGp1bGlhbiA9IDM2NSAqIHkgKyBteUZsb29yRGl2aWRlKHksIDQpICsgKEpVTElBTl8xX0NFIC0gMykgKyAvLyBKdWxpYW4gY2FsCisgICAgICAgIG15Rmxvb3JEaXZpZGUoeSwgNDAwKSAtIG15Rmxvb3JEaXZpZGUoeSwgMTAwKSArIDIgKyAvLyA9PiBHcmVnb3JpYW4gY2FsCisgICAgICAgICAgICBEQVlTX0JFRk9SRVttb250aCArIChHcmVnby5pc0xlYXBZZWFyKHllYXIpID8gMTIgOiAwKV0gKyBkb207IC8vID0+IG1vbnRoL2RvbQorICAgIAorICAgICAgICByZXR1cm4ganVsaWFuIC0gSlVMSUFOXzE5NzBfQ0U7IC8vIEpEID0+IGVwb2NoIGRheQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGxvYWRSdWxlKElDVVJlc291cmNlQnVuZGxlIHRvcCwgU3RyaW5nIHJ1bGVpZCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gdG9wLmdldCgiUnVsZXMiKTsKKyAgICAgICAgciA9IHIuZ2V0KHJ1bGVpZCk7CisgICAgICAgIHJldHVybiByOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGxvbmcgaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBteUZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBsb25nIGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIExvbmcuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisgICAgaW50W10gZGF5VG9GaWVsZHMoZG91YmxlIGRheSkgeworICAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkb20sIGRvdzsKKyAgICAgICAgIGRvdWJsZSBkb3k7CisgICAgICAgICBpbnRbXSByZXQgPSBuZXcgaW50WzVdOworICAgICAgICAgCisgICAgICAgIC8vIENvbnZlcnQgZnJvbSAxOTcwIENFIGVwb2NoIHRvIDEgQ0UgZXBvY2ggKEdyZWdvcmlhbiBjYWxlbmRhcikKKyAgICAgICAgZGF5ICs9IEpVTElBTl8xOTcwX0NFIC0gSlVMSUFOXzFfQ0U7CisgICAgICAgIAorICAgICAgICAvLyBDb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgdG8gdGhlIG11bHRpcGxlIHJhZGl4CisgICAgICAgIC8vIHJlcHJlc2VudGF0aW9uLiAgV2UgdXNlIDQwMC15ZWFyLCAxMDAteWVhciwgYW5kIDQteWVhciBjeWNsZXMuCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB0aGUgNC15ZWFyIGN5Y2xlIGhhcyA0IHllYXJzICsgMSBsZWFwIGRheTsgZ2l2aW5nCisgICAgICAgIC8vIDE0NjEgPT0gMzY1KjQgKyAxIGRheXMuCisgICAgICAgIGRvdWJsZVtddGVtcCAgPSBmbG9vckRpdmlkZShkYXksIDE0NjA5Nyk7IC8vIDQwMC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBkb3VibGUgbjQwMCA9IHRlbXBbMF07CisgICAgICAgIGRveSAgPSB0ZW1wWzFdOworICAgICAgICB0ZW1wID0gZmxvb3JEaXZpZGUoZG95LCAzNjUyNCk7IC8vIDEwMC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBkb3VibGUgbjEwMCA9IHRlbXBbMF07CisgICAgICAgIGRveSA9IHRlbXBbMV07CisgICAgICAgIHRlbXAgPSBmbG9vckRpdmlkZShkb3ksIDE0NjEpOyAvLyA0LXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGRvdWJsZSBuNCA9IHRlbXBbMF07CisgICAgICAgIGRveSA9IHRlbXBbMV07CisgICAgICAgIHRlbXAgPSBmbG9vckRpdmlkZShkb3ksIDM2NSk7CisgICAgICAgIGRvdWJsZSBuMSA9IHRlbXBbMF07CisgICAgICAgIGRveSA9IHRlbXBbMV07CisgICAgICAgIHllYXIgPSAoaW50KSggNDAwKm40MDAgKyAxMDAqbjEwMCArIDQqbjQgKyBuMSk7CisgICAgICAgIGlmIChuMTAwID09IDQgfHwgbjEgPT0gNCkgeworICAgICAgICAgICAgZG95ID0gMzY1OyAvLyBEZWMgMzEgYXQgZW5kIG9mIDQtIG9yIDQwMC15ZWFyIGN5Y2xlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICArK3llYXI7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSBHcmVnby5pc0xlYXBZZWFyKHllYXIpOworICAgICAgICAKKyAgICAgICAgLy8gR3JlZ29yaWFuIGRheSB6ZXJvIGlzIGEgTW9uZGF5LgorICAgICAgICBkb3cgPSAoaW50KSAoKGRheSArIDEpICUgNyk7CisgICAgICAgIGRvdyArPSAoZG93IDwgMCkgPyAoQ2FsZW5kYXIuU1VOREFZICsgNykgOiBDYWxlbmRhci5TVU5EQVk7CisgICAgICAgIAorICAgICAgICAvLyBDb21tb24gSnVsaWFuL0dyZWdvcmlhbiBjYWxjdWxhdGlvbgorICAgICAgICBpbnQgY29ycmVjdGlvbiA9IDA7CisgICAgICAgIGludCBtYXJjaDEgPSBpc0xlYXAgPyA2MCA6IDU5OyAvLyB6ZXJvLWJhc2VkIERPWSBmb3IgTWFyY2ggMQorICAgICAgICBpZiAoZG95ID49IG1hcmNoMSkgeworICAgICAgICAgICAgY29ycmVjdGlvbiA9IGlzTGVhcCA/IDEgOiAyOworICAgICAgICB9CisgICAgICAgIG1vbnRoID0gKGludCkoKDEyICogKGRveSArIGNvcnJlY3Rpb24pICsgNikgLyAzNjcpOyAvLyB6ZXJvLWJhc2VkIG1vbnRoCisgICAgICAgIGRvbSA9IChpbnQpKGRveSAtIERBWVNfQkVGT1JFW21vbnRoICsgKGlzTGVhcCA/IDEyIDogMCldICsgMSk7IC8vIG9uZS1iYXNlZCBET00KKyAgICAgICAgZG95Kys7IC8vIG9uZS1iYXNlZCBkb3kKKyAgICAgICAgcmV0WzBdPXllYXI7CisgICAgICAgIHJldFsxXT1tb250aDsKKyAgICAgICAgcmV0WzJdPWRvbTsKKyAgICAgICAgcmV0WzNdPWRvdzsKKyAgICAgICAgcmV0WzRdPShpbnQpZG95OworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iail7CisgICAgICAgIGlmICghc3VwZXIuZXF1YWxzKG9iaikpIHJldHVybiBmYWxzZTsgLy8gc3VwZXIgZG9lcyBjbGFzcyBjaGVjaworICAgICAgICAKKyAgICAgICAgT2xzb25UaW1lWm9uZSB6ID0gKE9sc29uVGltZVpvbmUpIG9iajsKKworICAgICAgICByZXR1cm4gKFV0aWxpdHkuYXJyYXlFcXVhbHModHlwZURhdGEsIHoudHlwZURhdGEpIHx8CisgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwb2ludGVycyBhcmUgbm90IGVxdWFsLCB0aGUgem9uZXMgbWF5IHN0aWxsCisgICAgICAgICAgICAgICAgIC8vIGJlIGVxdWFsIGlmIHRoZWlyIHJ1bGVzIGFuZCB0cmFuc2l0aW9ucyBhcmUgZXF1YWwKKyAgICAgICAgICAgICAgICAgKGZpbmFsWWVhciA9PSB6LmZpbmFsWWVhciAmJgorICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgY29tcGFyZSBmaW5hbE1pbGxpczsgaWYgZmluYWxZZWFyIGlzID09LCBzbyBpcyBmaW5hbE1pbGxpcworICAgICAgICAgICAgICAgICAgKChmaW5hbFpvbmUgPT0gbnVsbCAmJiB6LmZpbmFsWm9uZSA9PSBudWxsKSB8fAorICAgICAgICAgICAgICAgICAgIChmaW5hbFpvbmUgIT0gbnVsbCAmJiB6LmZpbmFsWm9uZSAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIGZpbmFsWm9uZS5lcXVhbHMoei5maW5hbFpvbmUpKSAmJgorICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbkNvdW50ID09IHoudHJhbnNpdGlvbkNvdW50ICYmCisgICAgICAgICAgICAgICAgICB0eXBlQ291bnQgPT0gei50eXBlQ291bnQgJiYKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuYXJyYXlFcXVhbHModHJhbnNpdGlvblRpbWVzLCB6LnRyYW5zaXRpb25UaW1lcykgJiYKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuYXJyYXlFcXVhbHModHlwZU9mZnNldHMsIHoudHlwZU9mZnNldHMpICYmCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5RXF1YWxzKHR5cGVEYXRhLCB6LnR5cGVEYXRhKQorICAgICAgICAgICAgICAgICAgKSkpOworCisgICAgfQorICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgICAJaW50IHJldCA9ICAgKGludCkgIChmaW5hbFllYXIgXiAoZmluYWxZZWFyPj4+NCkgKworICAgIAkJCSAgIHRyYW5zaXRpb25Db3VudCBeICh0cmFuc2l0aW9uQ291bnQ+Pj42KSArCisgICAgCQkJICAgdHlwZUNvdW50IF4gKHR5cGVDb3VudD4+PjgpICsgCisgICAgCQkJICAgRG91YmxlLmRvdWJsZVRvTG9uZ0JpdHMoZmluYWxNaWxsaXMpKworICAgIAkJCSAgIChmaW5hbFpvbmUgPT0gbnVsbCA/IDAgOiBmaW5hbFpvbmUuaGFzaENvZGUoKSkgKyAKKyAgICAJCQkgICBzdXBlci5oYXNoQ29kZSgpKTsKKyAgICAJZm9yKGludCBpPTA7IGk8dHJhbnNpdGlvblRpbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAJCXJldCs9dHJhbnNpdGlvblRpbWVzW2ldXih0cmFuc2l0aW9uVGltZXNbaV0+Pj44KTsKKyAgICAJfQorCSAgICBmb3IoaW50IGk9MDsgaTx0eXBlT2Zmc2V0cy5sZW5ndGg7IGkrKyl7CisgICAgCQlyZXQrPXR5cGVPZmZzZXRzW2ldXih0eXBlT2Zmc2V0c1tpXT4+PjgpOworICAgIAl9CisJICAgIGZvcihpbnQgaT0wOyBpPHR5cGVEYXRhLmxlbmd0aDsgaSsrKXsKKyAgICAJCXJldCs9dHlwZURhdGFbaV0gJiBVTlNJR05FRF9CWVRFX01BU0s7CisgICAgCX0gCisJICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIC8qCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gcykgdGhyb3dzIElPRXhjZXB0aW9uICB7CisgICAgICAgIHMuZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgLy8gY3VzdG9taXplZCBkZXNlcmlhbGl6YXRpb24gY29kZQorICAgICAgIAorICAgICAgICAvLyBmb2xsb3dlZCBieSBjb2RlIHRvIHVwZGF0ZSB0aGUgb2JqZWN0LCBpZiBuZWNlc3NhcnkKKyAgICB9CisgICAgKi8KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUGF0dGVyblRva2VuaXplci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUGF0dGVyblRva2VuaXplci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZjFlZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9QYXR0ZXJuVG9rZW5pemVyLmphdmEKQEAgLTAsMCArMSwzNzQgQEAKKy8vIyNoZWFkZXIKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgR29vZ2xlLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuRm9ybWF0UGFyc2VyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLlZhcmlhYmxlRmllbGQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuQml0U2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworLyoqCisgKiBBIHNpbXBsZSBwYXJzaW5nIGNsYXNzIGZvciBwYXR0ZXJucyBhbmQgcnVsZXMuIEhhbmRsZXMgJy4uLicgcXVvdGF0aW9ucywgXFx1eHh4eCBhbmQgXFxVeHh4eHh4eHgsIGFuZCBzeW1wbGUgc3ludGF4LgorICogVGhlICcnICh0d28gcXVvdGVzKSBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIHF1b3RlLCBpbnNpZGUgb3Igb3V0c2lkZSBhIHF1b3RlCisgKiA8dWw+CisgKiA8bGk+QW55IGlnbm9yYWJsZSBjaGFyYWN0ZXJzIGFyZSBpZ25vcmVkIGluIHBhcnNpbmcuPC9saT4KKyAqIDxsaT5Bbnkgc3ludGF4IGNoYXJhY3RlcnMgYXJlIGJyb2tlbiBpbnRvIHNlcGFyYXRlIHRva2VuczwvbGk+CisgKiA8bGk+UXVvdGUgY2hhcmFjdGVycyBjYW4gYmUgc3BlY2lmaWVkOiAnLi4uJywgIi4uLiIsIGFuZCBceCA8L2xpPgorICogPGxpPk90aGVyIGNoYXJhY3RlcnMgYXJlIHRyZWF0ZWQgYXMgbGl0ZXJhbHM8L2xpPgorICogPC91bD4KKyAqLworcHVibGljIGNsYXNzIFBhdHRlcm5Ub2tlbml6ZXIgeworICAgIC8vIHNldHRpbmdzIHVzZWQgaW4gdGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBwYXR0ZXJuCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGlnbm9yYWJsZUNoYXJhY3RlcnMgPSBuZXcgVW5pY29kZVNldCgpOworICAgIHByaXZhdGUgVW5pY29kZVNldCBzeW50YXhDaGFyYWN0ZXJzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgZXNjYXBlQ2hhcmFjdGVycyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgcHJpdmF0ZSBib29sZWFuIHVzaW5nU2xhc2ggPSBmYWxzZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gdXNpbmdRdW90ZSA9IGZhbHNlOworICAgIAorICAgIC8vIHRyYW5zaWVudCBkYXRhLCBzZXQgd2hlbiBuZWVkZWQuIE51bGwgaXQgb3V0IGZvciBhbnkgY2hhbmdlcyBpbiB0aGUgYWJvdmUgZmllbGRzLgorICAgIHByaXZhdGUgdHJhbnNpZW50IFVuaWNvZGVTZXQgbmVlZGluZ1F1b3RlQ2hhcmFjdGVycyA9IG51bGw7CisgICAgCisgICAgLy8gZGF0YSBhYm91dCB0aGUgY3VycmVudCBwYXR0ZXJuIGJlaW5nIHBhcnNlZC4gc3RhcnQgZ2V0cyBtb3ZlZCBhcyB3ZSBnbyBhbG9uZy4KKyAgICBwcml2YXRlIGludCBzdGFydDsKKyAgICBwcml2YXRlIGludCBsaW1pdDsKKyAgICBwcml2YXRlIENoYXJTZXF1ZW5jZSBwYXR0ZXJuOworICAgIAorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldElnbm9yYWJsZUNoYXJhY3RlcnMoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgaWdub3JhYmxlQ2hhcmFjdGVycy5jbG9uZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjaGFyYWN0ZXJzIHRvIGJlIGlnbm9yZWQgaW4gcGFyc2luZywgZWcgbmV3IFVuaWNvZGVTZXQoIls6cGF0dGVybl93aGl0ZXNwYWNlOl0iKTsKKyAgICAgKiBAcGFyYW0gaWdub3JhYmxlQ2hhcmFjdGVycworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRJZ25vcmFibGVDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgaWdub3JhYmxlQ2hhcmFjdGVycykgeworICAgICAgICB0aGlzLmlnbm9yYWJsZUNoYXJhY3RlcnMgPSAoVW5pY29kZVNldCkgaWdub3JhYmxlQ2hhcmFjdGVycy5jbG9uZSgpOworICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFN5bnRheENoYXJhY3RlcnMoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgc3ludGF4Q2hhcmFjdGVycy5jbG9uZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiAgU2V0cyB0aGUgY2hhcmFjdGVycyB0byBiZSBpbnRlcnByZXRlZCBhcyBzeW50YXggY2hhcmFjdGVycyBpbiBwYXJzaW5nLCBlZyBuZXcgVW5pY29kZVNldCgiWzpwYXR0ZXJuX3N5bnRheDpdIikKKyAgICAgKiBAcGFyYW0gc3ludGF4Q2hhcmFjdGVycworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRTeW50YXhDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgc3ludGF4Q2hhcmFjdGVycykgeworICAgICAgICB0aGlzLnN5bnRheENoYXJhY3RlcnMgPSAoVW5pY29kZVNldCkgc3ludGF4Q2hhcmFjdGVycy5jbG9uZSgpOworICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfSAgIAorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldEVzY2FwZUNoYXJhY3RlcnMoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgZXNjYXBlQ2hhcmFjdGVycy5jbG9uZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgY2hhcmFjdGVycyB0byBiZSBlc2NhcGVkIGluIGxpdGVyYWxzLCBpbiBxdW90ZUxpdGVyYWwgYW5kIG5vcm1hbGl6ZSwgZWcgbmV3IFVuaWNvZGVTZXQoIlteXFx1MDAyMC1cXHUwMDdFXSIpOworICAgICAqIEBwYXJhbSBlc2NhcGVDaGFyYWN0ZXJzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldEVzY2FwZUNoYXJhY3RlcnMoVW5pY29kZVNldCBlc2NhcGVDaGFyYWN0ZXJzKSB7CisgICAgICAgIHRoaXMuZXNjYXBlQ2hhcmFjdGVycyA9IChVbmljb2RlU2V0KSBlc2NhcGVDaGFyYWN0ZXJzLmNsb25lKCk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1VzaW5nUXVvdGUoKSB7CisgICAgICAgIHJldHVybiB1c2luZ1F1b3RlOworICAgIH0KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRVc2luZ1F1b3RlKGJvb2xlYW4gdXNpbmdRdW90ZSkgeworICAgICAgICB0aGlzLnVzaW5nUXVvdGUgPSB1c2luZ1F1b3RlOworICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzVXNpbmdTbGFzaCgpIHsKKyAgICAgICAgcmV0dXJuIHVzaW5nU2xhc2g7CisgICAgfQorICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldFVzaW5nU2xhc2goYm9vbGVhbiB1c2luZ1NsYXNoKSB7CisgICAgICAgIHRoaXMudXNpbmdTbGFzaCA9IHVzaW5nU2xhc2g7CisgICAgICAgIG5lZWRpbmdRdW90ZUNoYXJhY3RlcnMgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgLy8gICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0UXVvdGVDaGFyYWN0ZXJzKCkgeworLy8gIHJldHVybiAoVW5pY29kZVNldCkgcXVvdGVDaGFyYWN0ZXJzLmNsb25lKCk7CisvLyAgfQorLy8gIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldFF1b3RlQ2hhcmFjdGVycyhVbmljb2RlU2V0IHF1b3RlQ2hhcmFjdGVycykgeworLy8gIHRoaXMucXVvdGVDaGFyYWN0ZXJzID0gKFVuaWNvZGVTZXQpIHF1b3RlQ2hhcmFjdGVycy5jbG9uZSgpOworLy8gIG5lZWRpbmdRdW90ZUNoYXJhY3RlcnMgPSBudWxsOworLy8gIHJldHVybiB0aGlzOworLy8gIH0KKyAgICBwdWJsaWMgaW50IGdldExpbWl0KCkgeworICAgICAgICByZXR1cm4gbGltaXQ7CisgICAgfQorICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldExpbWl0KGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgaW50IGdldFN0YXJ0KCkgeworICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgfQorICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldFN0YXJ0KGludCBzdGFydCkgeworICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRQYXR0ZXJuKENoYXJTZXF1ZW5jZSBwYXR0ZXJuKSB7CisgICAgICAgIGlmIChwYXR0ZXJuID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluY29uc2lzdGVudCBhcmd1bWVudHMiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnN0YXJ0ID0gMDsKKyAgICAgICAgdGhpcy5saW1pdCA9IHBhdHRlcm4ubGVuZ3RoKCk7CisgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgU0lOR0xFX1FVT1RFID0gJ1wnJzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgQkFDS19TTEFTSCA9ICdcXCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IE5PX1FVT1RFID0gLTEsIElOX1FVT1RFID0gLTI7CisgICAgLyoqCisgICAgICogUXVvdGUgYSBsaXRlcmFsIHN0cmluZywgdXNpbmcgdGhlIGF2YWlsYWJsZSBzZXR0aW5ncy4gVGh1cyBzeW50YXggY2hhcmFjdGVycywgcXVvdGUgY2hhcmFjdGVycywgYW5kIGlnbm9yYWJsZSBjaGFyYWN0ZXJzIHdpbGwgYmUgcHV0IGludG8gcXVvdGVzLgorICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBxdW90ZUxpdGVyYWwoQ2hhclNlcXVlbmNlIHN0cmluZykgeworICAgICAgICBpZiAobmVlZGluZ1F1b3RlQ2hhcmFjdGVycyA9PSBudWxsKSB7CisgICAgICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbmV3IFVuaWNvZGVTZXQoKS5hZGRBbGwoc3ludGF4Q2hhcmFjdGVycykuYWRkQWxsKGlnbm9yYWJsZUNoYXJhY3RlcnMpOyAvLyAuYWRkQWxsKHF1b3RlQ2hhcmFjdGVycykKKyAgICAgICAgICAgIGlmICh1c2luZ1NsYXNoKSBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzLmFkZChCQUNLX1NMQVNIKTsKKyAgICAgICAgICAgIGlmICh1c2luZ1F1b3RlKSBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzLmFkZChTSU5HTEVfUVVPVEUpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBxdW90ZWRDaGFyID0gTk9fUVVPVEU7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc3RyaW5nLCBpKTsKKyAgICAgICAgICAgIGlmIChlc2NhcGVDaGFyYWN0ZXJzLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGZpeCB1cCBwcmV2aW91cyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgaWYgKHF1b3RlZENoYXIgPT0gSU5fUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgICAgICAgICAgICAgICBxdW90ZWRDaGFyID0gTk9fUVVPVEU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFwcGVuZEVzY2FwZWQocmVzdWx0LCBjcCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgYWxyZWFkeSBzdGFydGVkIGEgcXVvdGUKKyAgICAgICAgICAgICAgICBpZiAocXVvdGVkQ2hhciA9PSBJTl9RVU9URSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCBjcCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh1c2luZ1F1b3RlICYmIGNwID09IFNJTkdMRV9RVU9URSkgeyAvLyBkb3VibGUgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoU0lOR0xFX1FVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIG5vdCBhbHJlYWR5IGluIHF1b3RlCisgICAgICAgICAgICAgICAgaWYgKHVzaW5nU2xhc2gpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChCQUNLX1NMQVNIKTsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY3ApOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHVzaW5nUXVvdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IFNJTkdMRV9RVU9URSkgeyAvLyBkb3VibGUgaXQgYW5kIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGNwKTsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVkQ2hhciA9IElOX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIHVzZSBcXHUgb3IgXFxVCisgICAgICAgICAgICAgICAgYXBwZW5kRXNjYXBlZChyZXN1bHQsIGNwKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSBjcCBkb2Vzbid0IG5lZWQgcXVvdGluZworICAgICAgICAgICAgLy8gd2UgbWF5IGhhdmUgdG8gZml4IHVwIHByZXZpb3VzIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIGlmIChxdW90ZWRDaGFyID09IElOX1FVT1RFKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgICAgICAgICAgIHF1b3RlZENoYXIgPSBOT19RVU9URTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGNwKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhbGwgZG9uZS4gCisgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGZpeCB1cCBwcmV2aW91cyBjaGFyYWN0ZXJzCisgICAgICAgIGlmIChxdW90ZWRDaGFyID09IElOX1FVT1RFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgYXBwZW5kRXNjYXBlZChTdHJpbmdCdWZmZXIgcmVzdWx0LCBpbnQgY3ApIHsKKyAgICAgICAgaWYgKGNwIDw9IDB4RkZGRikgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiXFx1IikuYXBwZW5kKFV0aWxpdHkuaGV4KGNwLDQpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcVSIpLmFwcGVuZChVdGlsaXR5LmhleChjcCw4KSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBub3JtYWxpemUoKSB7CisgICAgICAgIGludCBvbGRTdGFydCA9IHN0YXJ0OworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGludCBzdGF0dXMgPSBuZXh0KGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAoc3RhdHVzID09IERPTkUpIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IG9sZFN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gU1lOVEFYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChxdW90ZUxpdGVyYWwoYnVmZmVyKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gMCwgU1lOVEFYID0gMSwgTElURVJBTCA9IDIsIEJST0tFTl9RVU9URSA9IDMsIEJST0tFTl9FU0NBUEUgPSA0LCBVTktOT1dOID0gNTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUZURVJfUVVPVEUgPSAtMSwgTk9ORSA9IDAsIFNUQVJUX1FVT1RFID0gMSwgTk9STUFMX1FVT1RFID0gMiwgU0xBU0hfU1RBUlQgPSAzLCBIRVggPSA0OworICAgIAorICAgIHB1YmxpYyBpbnQgbmV4dChTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgcmV0dXJuIERPTkU7CisgICAgICAgIGludCBzdGF0dXMgPSBVTktOT1dOOworICAgICAgICBpbnQgbGFzdFF1b3RlID0gVU5LTk9XTjsKKyAgICAgICAgaW50IHF1b3RlU3RhdHVzID0gTk9ORTsKKyAgICAgICAgaW50IGhleENvdW50ID0gMDsKKyAgICAgICAgaW50IGhleFZhbHVlID0gMDsKKyAgICAgICAgaW50IGNwOworICAgICAgICBtYWluOgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBpbiBhIHF1b3RlLCB0aGVuIGhhbmRsZSBpdC4KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHF1b3RlU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBTTEFTSF9TVEFSVDoKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjcCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlU3RhdHVzID0gSEVYOworICAgICAgICAgICAgICAgICAgICAgICAgaGV4Q291bnQgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnVSc6IAorICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBIRVg7CisgICAgICAgICAgICAgICAgICAgICAgICBoZXhDb3VudCA9IDg7CisgICAgICAgICAgICAgICAgICAgICAgICBoZXhWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBtYWluOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzaW5nU2xhc2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoQkFDS19TTEFTSCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBmYWxsIHRocm91Z2ggdG8gTk9ORQorICAgICAgICAgICAgICAgIGNhc2UgSEVYOgorICAgICAgICAgICAgICAgICAgICBoZXhWYWx1ZSA8PD0gNDsKKyAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgKz0gY3A7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnMCc6IGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOiBjYXNlICc1JzogY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6CisgICAgICAgICAgICAgICAgICAgICAgICBoZXhWYWx1ZSAtPSAnMCc7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICdhJzogY2FzZSAnYic6IGNhc2UgJ2MnOiBjYXNlICdkJzogY2FzZSAnZSc6IGNhc2UgJ2YnOgorICAgICAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgLT0gJ2EnIC0gMTA7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICdBJzogY2FzZSAnQic6IGNhc2UgJ0MnOiBjYXNlICdEJzogY2FzZSAnRSc6IGNhc2UgJ0YnOgorICAgICAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgLT0gJ0EnIC0gMTA7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQlJPS0VOX0VTQ0FQRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAtLWhleENvdW50OworICAgICAgICAgICAgICAgICAgICBpZiAoaGV4Q291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgaGV4VmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgY2FzZSBBRlRFUl9RVU9URToKKyAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGdldCBhbm90aGVyIHF1b3RlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBqdXN0IGVuZGVkIGEgcXVvdGUgQlVUIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyIGlzIHRoZSBsYXN0UXVvdGUgY2hhcmFjdGVyLCB0aGVuIHdlIGhhdmUgYSBzaXR1YXRpb24gbGlrZSAnLi4uJycuLi4nLCBzbyB3ZSByZXN0YXJ0IHRoZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICBpZiAoY3AgPT0gbGFzdFF1b3RlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZVN0YXR1cyA9IE5PUk1BTF9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gZmFsbCB0aHJvdWdoIHRvIE5PTkUKKyAgICAgICAgICAgICAgICBjYXNlIFNUQVJUX1FVT1RFOgorICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgYXQgdGhlIHZlcnkgc3RhcnQgb2YgYSBxdW90ZSwgYW5kIHdlIGhpdCBhbm90aGVyIHF1b3RlIG1hcmsgdGhlbiB3ZSBlbWl0IGEgbGl0ZXJhbCBxdW90ZSBjaGFyYWN0ZXIgYW5kIGVuZCB0aGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IGxhc3RRdW90ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOyAvLyBnZXQgb3V0IG9mIHF1b3RlLCB3aXRoIG5vIHRyYWNlIHJlbWFpbmluZworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBnZXQgaW50byBxdW90ZQorICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlU3RhdHVzID0gTk9STUFMX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBtYWluOworICAgICAgICAgICAgICAgIGNhc2UgTk9STUFMX1FVT1RFOiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IGxhc3RRdW90ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBBRlRFUl9RVU9URTsgLy8gZ2V0IG91dCBvZiBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChpZ25vcmFibGVDaGFyYWN0ZXJzLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZG8gc3ludGF4IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICBpZiAoc3ludGF4Q2hhcmFjdGVycy5jb250YWlucyhjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBVTktOT1dOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGkgKyBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNZTlRBWDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gTElURVJBTCwgc28gYmFjayB1cCBhbmQgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IGlzIGEgbGl0ZXJhbDsga2VlcCBvbiBnb2luZworICAgICAgICAgICAgICAgIHN0YXR1cyA9IExJVEVSQUw7CisgICAgICAgICAgICAgICAgaWYgKGNwID09IEJBQ0tfU0xBU0gpIHsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBTTEFTSF9TVEFSVDsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1c2luZ1F1b3RlICYmIGNwID09IFNJTkdMRV9RVU9URSkgeworICAgICAgICAgICAgICAgICAgICBsYXN0UXVvdGUgPSBjcDsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBTVEFSVF9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG5vcm1hbCBsaXRlcmFscworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gaGFuZGxlIGZpbmFsIGNsZWFudXAKKyAgICAgICAgc3RhcnQgPSBsaW1pdDsKKyAgICAgICAgc3dpdGNoIChxdW90ZVN0YXR1cykgeworICAgICAgICBjYXNlIEhFWDoKKyAgICAgICAgICAgIHN0YXR1cyA9IEJST0tFTl9FU0NBUEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTTEFTSF9TVEFSVDoKKyAgICAgICAgICAgIGlmICh1c2luZ1NsYXNoKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gQlJPS0VOX0VTQ0FQRTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChCQUNLX1NMQVNIKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNUQVJUX1FVT1RFOiBjYXNlIE5PUk1BTF9RVU9URToKKyAgICAgICAgICAgIHN0YXR1cyA9IEJST0tFTl9RVU9URTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorICAgIAorICAgIAorfQorLy8jZW5kaWYKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9QcmV0dHlQcmludGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9QcmV0dHlQcmludGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI0NTFiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1ByZXR0eVByaW50ZXIuamF2YQpAQCAtMCwwICsxLDI1OCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIGludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Db2xsZWN0aW9uVXRpbGl0aWVzLk11bHRpQ29tcGFyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKiogUHJvdmlkZXMgbW9yZSBmbGV4aWJsZSBmb3JtYXR0aW5nIG9mIFVuaWNvZGVTZXQgcGF0dGVybnMuCisgKi8KK3B1YmxpYyBjbGFzcyBQcmV0dHlQcmludGVyIHsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IHBhdHRlcm5XaGl0ZXNwYWNlID0gKFVuaWNvZGVTZXQpIG5ldyBVbmljb2RlU2V0KCJbWzpDbjpdWzpEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50Ol1bOnBhdHRlcm53aGl0ZXNwYWNlOl1dIikuZnJlZXplKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBzb3J0QXRFbmQgPSAoVW5pY29kZVNldCkgbmV3IFVuaWNvZGVTZXQoIltbOkNuOl1bOkNzOl1bOkNvOl1bOklkZW9ncmFwaGljOl1dIikuZnJlZXplKCk7CisJCisJcHJpdmF0ZSBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKwlwcml2YXRlIFN0cmluZ0J1ZmZlciB0YXJnZXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJcHJpdmF0ZSBpbnQgZmlyc3RDb2RlUG9pbnQgPSAtMjsKKwlwcml2YXRlIGludCBsYXN0Q29kZVBvaW50ID0gLTI7CisJcHJpdmF0ZSBib29sZWFuIGNvbXByZXNzUmFuZ2VzID0gdHJ1ZTsKKwlwcml2YXRlIFN0cmluZyBsYXN0U3RyaW5nID0gIiI7CisJcHJpdmF0ZSBVbmljb2RlU2V0IHRvUXVvdGUgPSBuZXcgVW5pY29kZVNldChwYXR0ZXJuV2hpdGVzcGFjZSk7CisJcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBxdW90ZXIgPSBudWxsOworCQorCXByaXZhdGUgQ29tcGFyYXRvciBvcmRlcmluZzsKKwlwcml2YXRlIENvbXBhcmF0b3Igc3BhY2VDb21wID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5ST09UKTsKKwl7CisJCXNldE9yZGVyaW5nKENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuUk9PVCkpOworCQkoKFJ1bGVCYXNlZENvbGxhdG9yKXNwYWNlQ29tcCkuc2V0U3RyZW5ndGgoUnVsZUJhc2VkQ29sbGF0b3IuUFJJTUFSWSk7CisJfQorCQorCXB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRRdW90ZXIoKSB7CisJCXJldHVybiBxdW90ZXI7CisJfQorCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0UXVvdGVyKFRyYW5zbGl0ZXJhdG9yIHF1b3RlcikgeworCQl0aGlzLnF1b3RlciA9IHF1b3RlcjsKKwkJcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworCX0KKworCXB1YmxpYyBib29sZWFuIGlzQ29tcHJlc3NSYW5nZXMoKSB7CisJCXJldHVybiBjb21wcmVzc1JhbmdlczsKKwl9CisJCisJLyoqCisJICogQHBhcmFtIGNvbXByZXNzUmFuZ2VzIGlmIHlvdSB3YW50IGFiY2RlIGluc3RlYWQgb2YgYS1lLCBtYWtlIHRoaXMgZmFsc2UKKwkgKiBAcmV0dXJuCisJICovCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0Q29tcHJlc3NSYW5nZXMoYm9vbGVhbiBjb21wcmVzc1JhbmdlcykgeworCQl0aGlzLmNvbXByZXNzUmFuZ2VzID0gY29tcHJlc3NSYW5nZXM7CisJCXJldHVybiB0aGlzOworCX0KKwkKKwlwdWJsaWMgQ29tcGFyYXRvciBnZXRPcmRlcmluZygpIHsKKwkJcmV0dXJuIG9yZGVyaW5nOworCX0KKwkKKwkvKioKKwkgKiBAcGFyYW0gb3JkZXJpbmcgdGhlIHJlc3VsdGluZyAgb3JkZXJpbmcgb2YgdGhlIGxpc3Qgb2YgY2hhcmFjdGVycyBpbiB0aGUgcGF0dGVybgorCSAqIEByZXR1cm4KKwkgKi8KKwlwdWJsaWMgUHJldHR5UHJpbnRlciBzZXRPcmRlcmluZyhDb21wYXJhdG9yIG9yZGVyaW5nKSB7CisJCXRoaXMub3JkZXJpbmcgPSBuZXcgTXVsdGlDb21wYXJhdG9yKG5ldyBDb21wYXJhdG9yW10ge29yZGVyaW5nLCBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcih0cnVlLGZhbHNlLDApfSk7CisJCXJldHVybiB0aGlzOworCX0KKwkKKwlwdWJsaWMgQ29tcGFyYXRvciBnZXRTcGFjZUNvbXBhcmF0b3IoKSB7CisJCXJldHVybiBzcGFjZUNvbXA7CisJfQorCQorCS8qKgorCSAqIEBwYXJhbSBzcGFjZUNvbXAgaWYgdGhlIGNvbXBhcmlzb24gcmV0dXJucyBub24temVybywgdGhlbiBhIHNwYWNlIHdpbGwgYmUgaW5zZXJ0ZWQgYmV0d2VlbiBjaGFyYWN0ZXJzCisJICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKwkgKi8KKwlwdWJsaWMgUHJldHR5UHJpbnRlciBzZXRTcGFjZUNvbXBhcmF0b3IoQ29tcGFyYXRvciBzcGFjZUNvbXApIHsKKwkJdGhpcy5zcGFjZUNvbXAgPSBzcGFjZUNvbXA7CisJCXJldHVybiB0aGlzOworCX0KKwkKKwlwdWJsaWMgVW5pY29kZVNldCBnZXRUb1F1b3RlKCkgeworCQlyZXR1cm4gdG9RdW90ZTsKKwl9CisJCisJLyoqCisJICogYSBVbmljb2RlU2V0IG9mIGV4dHJhIGNoYXJhY3RlcnMgdG8gcXVvdGUgd2l0aCBcXHVYWFhYLXN0eWxlIGVzY2FwaW5nICh3aWxsIGF1dG9tYXRpY2FsbHkgcXVvdGUgcGF0dGVybiB3aGl0ZXNwYWNlKQorCSAqIEBwYXJhbSB0b1F1b3RlCisJICovCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0VG9RdW90ZShVbmljb2RlU2V0IHRvUXVvdGUpIHsKKwkJdG9RdW90ZSA9IChVbmljb2RlU2V0KXRvUXVvdGUuY2xvbmUoKTsKKwkJdG9RdW90ZS5hZGRBbGwocGF0dGVybldoaXRlc3BhY2UpOworCQl0aGlzLnRvUXVvdGUgPSB0b1F1b3RlOworCQlyZXR1cm4gdGhpczsKKwl9CisJCQorCS8qKgorCSAqIEdldCB0aGUgcGF0dGVybiBmb3IgYSBwYXJ0aWN1bGFyIHNldC4KKwkgKiBAcGFyYW0gdXNldAorCSAqIEByZXR1cm4gZm9ybWF0dGVkIFVuaWNvZGVTZXQKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIHRvUGF0dGVybihVbmljb2RlU2V0IHVzZXQpIHsKKwkJZmlyc3QgPSB0cnVlOworICAgICAgICBVbmljb2RlU2V0IHB1dEF0RW5kID0gbmV3IFVuaWNvZGVTZXQodXNldCkucmV0YWluQWxsKHNvcnRBdEVuZCk7IC8vIHJlbW92ZSBhbGwgdGhlIHVuYXNzaWduZWQgZ29ycCBmb3Igbm93CisJCS8vIG1ha2Ugc3VyZSB0aGF0IGNvbXBhcmlzb24gc2VwYXJhdGVzIGFsbCBzdHJpbmdzLCBldmVuIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgb25lcworCQlTZXQgb3JkZXJlZFN0cmluZ3MgPSBuZXcgVHJlZVNldChvcmRlcmluZyk7CisJCWZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcih1c2V0KTsgaXQubmV4dFJhbmdlKCk7KSB7CisgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IGl0LklTX1NUUklORykgeworICAgICAgICAgICAgICAgIG9yZGVyZWRTdHJpbmdzLmFkZChpdC5zdHJpbmcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gaXQuY29kZXBvaW50OyBpIDw9IGl0LmNvZGVwb2ludEVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghcHV0QXRFbmQuY29udGFpbnMoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyZWRTdHJpbmdzLmFkZChVVEYxNi52YWx1ZU9mKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwkJfQorCQl0YXJnZXQuc2V0TGVuZ3RoKDApOworCQl0YXJnZXQuYXBwZW5kKCJbIik7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBvcmRlcmVkU3RyaW5ncy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlhcHBlbmRVbmljb2RlU2V0SXRlbSgoU3RyaW5nKSBpdC5uZXh0KCkpOworCQl9CisgICAgICAgIGZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihwdXRBdEVuZCk7IGl0Lm5leHQoKTspIHsgLy8gYWRkIGJhY2sgdGhlIHVuYXNzaWduZWQgZ29ycAorICAgICAgICAgICAgYXBwZW5kVW5pY29kZVNldEl0ZW0oaXQuY29kZXBvaW50KTsKKyAgICAgICAgfQorCQlmbHVzaExhc3QoKTsKKwkJdGFyZ2V0LmFwcGVuZCgiXSIpOworCQlTdHJpbmcgc3Jlc3VsdCA9IHRhcmdldC50b1N0cmluZygpOworCQkKKyAgICAgICAgLy8gZG91YmxlIGNoZWNrIHRoZSByZXN1bHRzLiBUaGlzIGNhbiBiZSByZW1vdmVkIG9uY2Ugd2UgaGF2ZSBtb3JlIHRlc3RzLgorLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIFVuaWNvZGVTZXQgIGRvdWJsZUNoZWNrID0gbmV3IFVuaWNvZGVTZXQoc3Jlc3VsdCk7CisvLyAgICAgICAgICAgIGlmICghdXNldC5lcXVhbHMoZG91YmxlQ2hlY2spKSB7CisvLyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJGYWlsdXJlIHRvIHJvdW5kLXRyaXAgaW4gcHJldHR5LXByaW50ICIgKyB1c2V0ICsgIiA9PiAiICsgc3Jlc3VsdCArICJcclxuIHNvdXJjZS1yZXN1bHQ6ICIgKyBuZXcgVW5pY29kZVNldCh1c2V0KS5yZW1vdmVBbGwoZG91YmxlQ2hlY2spICsgICJcclxuIHJlc3VsdC1zb3VyY2U6ICIgKyBuZXcgVW5pY29kZVNldChkb3VibGVDaGVjaykucmVtb3ZlQWxsKHVzZXQpKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICB0aHJvdyAoUnVudGltZUV4Y2VwdGlvbikgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiRmFpbHVyZSB0byByb3VuZC10cmlwIGluIHByZXR0eS1wcmludCAiICsgdXNldCkuaW5pdENhdXNlKGUpOworLy8gICAgICAgIH0KKwkJcmV0dXJuIHNyZXN1bHQ7CisJfQorCQorCXByaXZhdGUgUHJldHR5UHJpbnRlciBhcHBlbmRVbmljb2RlU2V0SXRlbShTdHJpbmcgcykgeworCQlpbnQgY3A7CisJCWlmIChVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4ocywgMSkpIHsKKwkJCWZsdXNoTGFzdCgpOworCQkJYWRkU3BhY2Uocyk7CisJCQl0YXJnZXQuYXBwZW5kKCJ7Iik7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworCQkJCWFwcGVuZFF1b3RlZChjcCA9IFVURjE2LmNoYXJBdChzLCBpKSk7CisJCQl9CisJCQl0YXJnZXQuYXBwZW5kKCJ9Iik7CisJCQlsYXN0U3RyaW5nID0gczsKKwkJfSBlbHNlIHsKKwkJCWFwcGVuZFVuaWNvZGVTZXRJdGVtKFVURjE2LmNoYXJBdChzLCAwKSk7CisJCX0KKwkJcmV0dXJuIHRoaXM7CisJfQorCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZFVuaWNvZGVTZXRJdGVtKGludCBjcCkgeworICAgICAgICBpZiAoIWNvbXByZXNzUmFuZ2VzKQorICAgICAgICAJZmx1c2hMYXN0KCk7CisgICAgICAgIGlmIChjcCA9PSBsYXN0Q29kZVBvaW50ICsgMSkgeworICAgICAgICAJbGFzdENvZGVQb2ludCA9IGNwOyAvLyBjb250aW51ZSByYW5nZQorICAgICAgICB9IGVsc2UgeyAvLyBzdGFydCByYW5nZQorICAgICAgICAJZmx1c2hMYXN0KCk7CisgICAgICAgIAlmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSBjcDsKKyAgICAgICAgfQorICAgIH0KKwkvKioKKwkgKiAKKwkgKi8KKwlwcml2YXRlIHZvaWQgYWRkU3BhY2UoU3RyaW5nIHMpIHsKKwkJaWYgKGZpcnN0KSB7CisJCQlmaXJzdCA9IGZhbHNlOworCQl9IGVsc2UgaWYgKHNwYWNlQ29tcC5jb21wYXJlKHMsIGxhc3RTdHJpbmcpICE9IDApIHsKKwkJCXRhcmdldC5hcHBlbmQoJyAnKTsKKwkJfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChzLDApOworCQkJaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworCQkJaWYgKHR5cGUgPT0gVUNoYXJhY3Rlci5OT05fU1BBQ0lOR19NQVJLIHx8IHR5cGUgPT0gVUNoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykgeworCQkJCXRhcmdldC5hcHBlbmQoJyAnKTsKKwkJCX0gZWxzZSBpZiAodHlwZSA9PSBVQ2hhcmFjdGVyLlNVUlJPR0FURSAmJiBjcCA+PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgnICcpOyAvLyBtYWtlIHN1cmUgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IG1lcmdlIHR3byBzdXJyb2dhdGVzCisgICAgICAgICAgICB9CisJCX0KKwl9CisJCisJcHJpdmF0ZSB2b2lkIGZsdXNoTGFzdCgpIHsKKwkJaWYgKGxhc3RDb2RlUG9pbnQgPj0gMCkgeworCQkJYWRkU3BhY2UoVVRGMTYudmFsdWVPZihmaXJzdENvZGVQb2ludCkpOworCQkJaWYgKGZpcnN0Q29kZVBvaW50ICE9IGxhc3RDb2RlUG9pbnQpIHsKKwkJCQlhcHBlbmRRdW90ZWQoZmlyc3RDb2RlUG9pbnQpOworCQkJCXRhcmdldC5hcHBlbmQoZmlyc3RDb2RlUG9pbnQgKyAxID09IGxhc3RDb2RlUG9pbnQgPyAnICcgOiAnLScpOworCQkJfQorCQkJYXBwZW5kUXVvdGVkKGxhc3RDb2RlUG9pbnQpOworCQkJbGFzdFN0cmluZyA9IFVURjE2LnZhbHVlT2YobGFzdENvZGVQb2ludCk7CisJCQlmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSAtMjsKKwkJfQorCX0KKwlQcmV0dHlQcmludGVyIGFwcGVuZFF1b3RlZChpbnQgY29kZVBvaW50KSB7CisJCWlmICh0b1F1b3RlLmNvbnRhaW5zKGNvZGVQb2ludCkpIHsKKwkJCWlmIChxdW90ZXIgIT0gbnVsbCkgeworCQkJCXRhcmdldC5hcHBlbmQocXVvdGVyLnRyYW5zbGl0ZXJhdGUoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisJCQkJcmV0dXJuIHRoaXM7CisJCQl9CisJCQlpZiAoY29kZVBvaW50ID4gMHhGRkZGKSB7CisJCQkJdGFyZ2V0LmFwcGVuZCgiXFxVIik7CisJCQkJdGFyZ2V0LmFwcGVuZChVdGlsaXR5LmhleChjb2RlUG9pbnQsOCkpOworCQkJfSBlbHNlIHsKKwkJCQl0YXJnZXQuYXBwZW5kKCJcXHUiKTsKKwkJCQl0YXJnZXQuYXBwZW5kKFV0aWxpdHkuaGV4KGNvZGVQb2ludCw0KSk7ICAgICAgICAJCQkKKwkJCX0KKwkJCXJldHVybiB0aGlzOworCQl9CisJCXN3aXRjaCAoY29kZVBvaW50KSB7CisJCWNhc2UgJ1snOiAvLyBTRVRfT1BFTjoKKwkJY2FzZSAnXSc6IC8vIFNFVF9DTE9TRToKKwkJY2FzZSAnLSc6IC8vIEhZUEhFTjoKKwkJY2FzZSAnXic6IC8vIENPTVBMRU1FTlQ6CisJCWNhc2UgJyYnOiAvLyBJTlRFUlNFQ1RJT046CisJCWNhc2UgJ1xcJzogLy9CQUNLU0xBU0g6CisJCWNhc2UgJ3snOgorCQljYXNlICd9JzoKKwkJY2FzZSAnJCc6CisJCWNhc2UgJzonOgorCQkJdGFyZ2V0LmFwcGVuZCgnXFwnKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJLy8gRXNjYXBlIHdoaXRlc3BhY2UKKwkJCWlmIChwYXR0ZXJuV2hpdGVzcGFjZS5jb250YWlucyhjb2RlUG9pbnQpKSB7CisJCQkJdGFyZ2V0LmFwcGVuZCgnXFwnKTsKKwkJCX0KKwkJYnJlYWs7CisJCX0KKwkJVVRGMTYuYXBwZW5kKHRhcmdldCwgY29kZVBvaW50KTsKKwkJcmV0dXJuIHRoaXM7CisJfSAgICAgICAgCisvLwlBcHBlbmRlciBhcHBlbmQoU3RyaW5nIHMpIHsKKy8vCXRhcmdldC5hcHBlbmQocyk7CisvLwlyZXR1cm4gdGhpczsKKy8vCX0KKy8vCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisvLwlyZXR1cm4gdGFyZ2V0LnRvU3RyaW5nKCk7CisvLwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9SZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTE4YmQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsgICAgCisKKy8qKgorICogRExGIGRvY3MgbXVzdCBkZWZpbmUgYmVoYXZpb3Igd2hlbiBSZXBsYWNlYWJsZSBpcyBtdXRhdGVkIHVuZGVybmVhdGgKKyAqIHRoZSBpdGVyYXRvci4KKyAqCisgKiBUaGlzIGFuZCBJQ1VDaGFyYWN0ZXJJdGVyYXRvciBzaGFyZSBzb21lIGNvZGUsIG1heWJlIHRoZXkgc2hvdWxkIHNoYXJlCisgKiBhbiBpbXBsZW1lbnRhdGlvbiwgb3IgdGhlIGNvbW1vbiBzdGF0ZSBhbmQgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlCisgKiBtb3ZlZCB1cCBpbnRvIFVDaGFyYWN0ZXJJdGVyYXRvci4KKyAqCisgKiBXaGF0IGFyZSBmaXJzdCwgbGFzdCwgYW5kIGdldEJlZ2luSW5kZXggZG9pbmcgaGVyZT8hPyE/IQorICovCitwdWJsaWMgY2xhc3MgUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IgZXh0ZW5kcyBVQ2hhcmFjdGVySXRlcmF0b3IgeworCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSByZXBsYWNlYWJsZSB0ZXh0IHdoaWNoIHRoZSBpdGVyYXRvciB3aWxsIGJlIGJhc2VkIG9uCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yKFJlcGxhY2VhYmxlIHJlcGxhY2VhYmxlKXsKKyAgICAgICAgaWYocmVwbGFjZWFibGU9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMucmVwbGFjZWFibGUgID0gcmVwbGFjZWFibGU7CisgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHVibGljIGNvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIHN0ciB0ZXh0IHdoaWNoIHRoZSBpdGVyYXRvciB3aWxsIGJlIGJhc2VkIG9uCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yKFN0cmluZyBzdHIpeworICAgICAgICBpZihzdHI9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMucmVwbGFjZWFibGUgID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHN0cik7CisgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHVibGljIGNvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIGJ1ZiBidWZmZXIgb2YgdGV4dCBvbiB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZAorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmdCdWZmZXIgYnVmKXsKKyAgICAgICAgaWYoYnVmPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJlcGxhY2VhYmxlICA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhidWYpOworICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLCBkb2VzIG5vdCBjbG9uZSB0aGUgdW5kZXJseWluZyAKKyAgICAgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT5vYmplY3QKKyAgICAgKiBAcmV0dXJuIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG5ldmVyIGludm9rZWQKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IFVURjE2IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgVVRGMTYgY2hhcmFjdGVyCisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50KCl7CisgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCByZXBsYWNlYWJsZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VhYmxlLmNoYXJBdChjdXJyZW50SW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gY3VycmVudCBjb2RlcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGN1cnJlbnRDb2RlUG9pbnQoKXsKKyAgICAgICAgLy8gY2Fubm90IHVzZSBjaGFyQXQgZHVlIHRvIGl0IGRpZmZlcmVudCAKKyAgICAgICAgLy8gYmVoYXZpb3VyIHdoZW4gaW5kZXggaXMgcG9pbnRpbmcgYXQgYQorICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUsIGNoZWNrIGZvciBzdXJyb2dhdGVzCisgICAgICAgICAKKyAgICAgICAgaW50IGNoID0gY3VycmVudCgpOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gpKXsKKyAgICAgICAgICAgIC8vIGFkdmFuY2UgdGhlIGluZGV4IHRvIGdldCB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAvLyBkdWUgdG8gcG9zdCBpbmNyZW1lbnQgc2VtYW50aWNzIGN1cnJlbnQoKSBhZnRlciBuZXh0KCkgCisgICAgICAgICAgICAvLyBhY3R1YWxseSByZXR1cm5zIHRoZSBuZXh0IGNoYXIgd2hpY2ggaXMgd2hhdCB3ZSB3YW50CisgICAgICAgICAgICBpbnQgY2gyID0gY3VycmVudCgpOworICAgICAgICAgICAgLy8gY3VycmVudCBzaG91bGQgbmV2ZXIgY2hhbmdlIHRoZSBjdXJyZW50IGluZGV4IHNvIGJhY2sgb2ZmCisgICAgICAgICAgICBwcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpeworICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaCwoY2hhciljaDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICogQHJldHVybiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlbmd0aCgpeworICAgICAgICByZXR1cm4gcmVwbGFjZWFibGUubGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY3VycmVudEluZGV4IGluIHRleHQuCisgICAgICogQHJldHVybiBjdXJyZW50IGN1cnJlbnRJbmRleCBpbiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKXsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgbmV4dCBVVEYxNiBjaGFyYWN0ZXIgYW5kIGluY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IGJ5IDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHRleHQgbGVuZ3RoLCB0aGUgCisgICAgICogY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIHRoZSB0ZXh0IGxlbmd0aCBhbmQgYSB2YWx1ZSBvZiBET05FQ09ERVBPSU5UIGlzIAorICAgICAqIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyBvZmYgdGhlIAorICAgICAqICAgICAgICAgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpeworICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgcmVwbGFjZWFibGUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlYWJsZS5jaGFyQXQoY3VycmVudEluZGV4KyspOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHByZXZpb3VzIFVURjE2IGNoYXJhY3RlciBhbmQgZGVjcmVtZW50cyB0aGUgaXRlcmF0b3IncyBjdXJyZW50SW5kZXggYnkgCisgICAgICogMS4gCisgICAgICogSWYgdGhlIHJlc3VsdGluZyBjdXJyZW50SW5kZXggaXMgbGVzcyB0aGFuIDAsIHRoZSBjdXJyZW50SW5kZXggaXMgcmVzZXQgdG8gMCBhbmQgYSAKKyAgICAgKiB2YWx1ZSBvZiBET05FQ09ERVBPSU5UIGlzIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyBvZmYgdGhlIAorICAgICAqICAgICAgICAgc3RhcnQgb2YgdGhlIHRleHQgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpeworICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VhYmxlLmNoYXJBdCgtLWN1cnJlbnRJbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgY3VycmVudEluZGV4IHRvIHRoZSBzcGVjaWZpZWQgY3VycmVudEluZGV4IGluIHRoZSB0ZXh0IGFuZCByZXR1cm5zIHRoYXQgCisgICAgICogc2luZ2xlIFVURjE2IGNoYXJhY3RlciBhdCBjdXJyZW50SW5kZXguIAorICAgICAqIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMuPC9wPgorICAgICAqIEBwYXJhbSBjdXJyZW50SW5kZXggdGhlIGN1cnJlbnRJbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlzIHRocm93biBpZiBhbiBpbnZhbGlkIGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkLiBpLmUuIGN1cnJlbnRJbmRleCBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEByZXR1cm5zIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBjdXJyZW50SW5kZXggb3IgRE9ORSBpZiB0aGUgc3BlY2lmaWVkIAorICAgICAqICAgICAgICAgY3VycmVudEluZGV4IGlzIGVxdWFsIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IGN1cnJlbnRJbmRleCkgdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb257CisgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCAwIHx8IGN1cnJlbnRJbmRleCA+IHJlcGxhY2VhYmxlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gY3VycmVudEluZGV4OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldFRleHQoY2hhcltdIGZpbGxJbiwgaW50IG9mZnNldCl7CisgICAgICAgIGludCBsZW5ndGggPSByZXBsYWNlYWJsZS5sZW5ndGgoKTsKKyAgICAgICAgaWYob2Zmc2V0IDwgMCB8fCBvZmZzZXQgKyBsZW5ndGggPiBmaWxsSW4ubGVuZ3RoKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmVwbGFjZWFibGUuZ2V0Q2hhcnMoMCxsZW5ndGgsZmlsbEluLG9mZnNldCk7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfSAgICAgICAKKyAgICAgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJlcGxhY2FibGUgb2JqZWN0CisgICAgICovCisgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZSByZXBsYWNlYWJsZTsKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGN1cnJlbnRJbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IGN1cnJlbnRJbmRleDsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9SZXNvdXJjZUJ1bmRsZVdyYXBwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzQ3NzU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwyMTkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUHJvcGVydHlSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBqdXN0IGEgd3JhcHBlciBmb3IgSmF2YSBMaXN0UmVzb3VyY2VCdW5kbGVzIGFuZCAKKyAqIEBhdXRob3IgcmFtCisgKgorICovCitwdWJsaWMgY2xhc3MgUmVzb3VyY2VCdW5kbGVXcmFwcGVyIGV4dGVuZHMgVVJlc291cmNlQnVuZGxlIHsKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmcgbG9jYWxlSUQgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nIGJhc2VOYW1lID0gbnVsbDsKKyAgICBwcml2YXRlIFZlY3RvciBrZXlzPW51bGw7CisgICAgcHJpdmF0ZSBpbnQgbG9hZGluZ1N0YXR1cyA9IC0xOyAgICAKKyAgICAKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlV3JhcHBlcihSZXNvdXJjZUJ1bmRsZSBidW5kbGUpeworICAgICAgICB0aGlzLmJ1bmRsZT1idW5kbGU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TG9hZGluZ1N0YXR1cyhpbnQgbmV3U3RhdHVzKXsKKyAgICAgICAgbG9hZGluZ1N0YXR1cyA9IG5ld1N0YXR1czsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVHZXRPYmplY3QoU3RyaW5nIGtleSl7CisgICAgICAgIFJlc291cmNlQnVuZGxlV3JhcHBlciBjdXJyZW50ID0gdGhpczsKKyAgICAgICAgT2JqZWN0IG9iaiA9IG51bGw7CisgICAgICAgIHdoaWxlKGN1cnJlbnQhPW51bGwpeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIG9iaiA9IGN1cnJlbnQuYnVuZGxlLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpY3VycmVudC5nZXRQYXJlbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2JqID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ2FuJ3QgZmluZCByZXNvdXJjZSBmb3IgYnVuZGxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK2Jhc2VOYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiLCBrZXkgIitrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEtleXMoKXsKKyAgICAgICAgcmV0dXJuIGtleXMuZWxlbWVudHMoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGluaXRLZXlzVmVjdG9yKCl7CisgICAgICAgIFJlc291cmNlQnVuZGxlV3JhcHBlciBjdXJyZW50ID0gdGhpczsKKyAgICAgICAga2V5cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgd2hpbGUoY3VycmVudCE9bnVsbCl7CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBlID0gY3VycmVudC5idW5kbGUuZ2V0S2V5cygpOworICAgICAgICAgICAgd2hpbGUoZS5oYXNNb3JlRWxlbWVudHMoKSl7CisgICAgICAgICAgICAgICAgU3RyaW5nIGVsZW0gPSAoU3RyaW5nKWUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZigha2V5cy5jb250YWlucyhlbGVtKSl7CisgICAgICAgICAgICAgICAgICAgIGtleXMuYWRkKGVsZW0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnQgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWN1cnJlbnQuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7ICAgCisgICAgfQorIAorICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKXsKKyAgICAgICAgcmV0dXJuIGJ1bmRsZS5nZXRDbGFzcygpLmdldE5hbWUoKS5yZXBsYWNlKCcuJywnLycpOyAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCl7CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShsb2NhbGVJRCk7ICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCl7CisgICAgICAgIHJldHVybiAoVVJlc291cmNlQnVuZGxlKXBhcmVudDsgICAKKyAgICB9CisKKyAgICAvLyBGbGFnIGZvciBlbmFibGluZy9kaXNhYmxpbmcgZGVidWdnaW5nIGNvZGUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgicmVzb3VyY2VCdW5kbGVXcmFwcGVyIik7CisgICAgCisgICAgLy8gVGhpcyBtZXRob2QgaXMgZm9yIHN1cGVyIGNsYXNzJ3MgaW5zdGFudGlhdGVCdW5kbGUgbWV0aG9kCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTG9hZGVyIHJvb3QsIGJvb2xlYW4gZGlzYWJsZUZhbGxiYWNrKXsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGIgPSBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlSUQsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgU3RyaW5nIHNlcGFyYXRvciA9Il8iOworICAgICAgICAgICAgaWYoYmFzZU5hbWUuaW5kZXhPZignLycpPj0wKXsKKyAgICAgICAgICAgICAgICBzZXBhcmF0b3IgPSAiLyI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgYnVuZGxlICIrIGJhc2VOYW1lK3NlcGFyYXRvcisgbG9jYWxlSUQsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBiOworICAgIH0KKyAgICAvLyByZWN1cnNpdmVseSBidWlsZCBidW5kbGUgYW5kIG92ZXJyaWRlIHRoZSBzdXBlci1jbGFzcyBtZXRob2QKKyAgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgVVJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRlQnVuZGxlKFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZUlELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjaykgeworICAgICAgICBpZiAocm9vdCA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyB3ZSdyZSBvbiB0aGUgYm9vdHN0cmFwCisgICAgICAgICAgICByb290ID0gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtQ2xhc3NMb2FkZXIoKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBDbGFzc0xvYWRlciBjbCA9IHJvb3Q7CisgICAgICAgIFN0cmluZyBuYW1lID0gYmFzZU5hbWU7CisgICAgICAgIFVMb2NhbGUgZGVmYXVsdExvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpZiAobG9jYWxlSUQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyAiXyIgKyBsb2NhbGVJRDsKKyAgICAgICAgfQorCisgICAgICAgIFJlc291cmNlQnVuZGxlV3JhcHBlciBiID0gKFJlc291cmNlQnVuZGxlV3JhcHBlcilsb2FkRnJvbUNhY2hlKGNsLCBuYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgaWYoYj09bnVsbCl7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIgcGFyZW50ID0gbnVsbDsKKyAgICAgICAgICAgIGludCBpID0gbG9jYWxlSUQubGFzdEluZGV4T2YoJ18nKTsKKyAgICAKKyAgICAgICAgICAgIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBsb2NhbGVJRC5zdWJzdHJpbmcoMCwgaSk7CisgICAgICAgICAgICAgICAgcGFyZW50ID0gKFJlc291cmNlQnVuZGxlV3JhcHBlcilsb2FkRnJvbUNhY2hlKGNsLCBiYXNlTmFtZSsiXyIrbG9jTmFtZSxkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZihwYXJlbnQgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsIGxvY05hbWUgLCBjbCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZSBpZihsb2NhbGVJRC5sZW5ndGgoKT4wKXsKKyAgICAgICAgICAgICAgICBwYXJlbnQgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWxvYWRGcm9tQ2FjaGUoY2wsIGJhc2VOYW1lLGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgICAgIGlmKHBhcmVudD09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsICIiLCBjbCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IGNsLmxvYWRDbGFzcyhuYW1lKTsKKyAgICAgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBieCA9IChSZXNvdXJjZUJ1bmRsZSkgY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgYiA9IG5ldyBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIoYngpOworICAgICAgICAgICAgICAgIGlmIChwYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBiLnNldFBhcmVudChwYXJlbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBiLmJhc2VOYW1lPWJhc2VOYW1lOworICAgICAgICAgICAgICAgIGIubG9jYWxlSUQgPSBsb2NhbGVJRDsgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyByZXNOYW1lID0gbmFtZS5yZXBsYWNlKCcuJywgJy8nKSArICIucHJvcGVydGllcyI7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gKElucHV0U3RyZWFtKWphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoCisgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2wgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2wuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtUmVzb3VyY2VBc1N0cmVhbShyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIGlmIChzdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgaXQgaXMgYnVmZmVyZWQKKyAgICAgICAgICAgICAgICAgICAgc3RyZWFtID0gbmV3IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbShzdHJlYW0pOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgYiA9IG5ldyBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIobmV3IFByb3BlcnR5UmVzb3VyY2VCdW5kbGUoc3RyZWFtKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLnNldFBhcmVudChwYXJlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYi5iYXNlTmFtZT1iYXNlTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIubG9jYWxlSUQ9bG9jYWxlSUQ7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSBleGNlcHRpb24KKyAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8vIGlmIGEgYm9ndXMgbG9jYWxlIGlzIHBhc3NlZCB0aGVuIHRoZSBwYXJlbnQgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgLy8gdGhlIGRlZmF1bHQgbG9jYWxlIG5vdCB0aGUgcm9vdCBsb2NhbGUhCisgICAgICAgICAgICAgICAgaWYgKGI9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlZmF1bHROYW1lID0gZGVmYXVsdExvY2FsZS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlSUQubGVuZ3RoKCk+MCAmJiBsb2NhbGVJRC5pbmRleE9mKCdfJyk8IDAgJiYgZGVmYXVsdE5hbWUuaW5kZXhPZihsb2NhbGVJRCkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWxvYWRGcm9tQ2FjaGUoY2wsYmFzZU5hbWUrIl8iK2RlZmF1bHROYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lICwgZGVmYXVsdE5hbWUsIGNsLCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGlmIHN0aWxsIGNvdWxkIG5vdCBmaW5kIHRoZSBidW5kbGUgdGhlbiByZXR1cm4gdGhlIHBhcmVudAorICAgICAgICAgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgICAgICAgICBiPXBhcmVudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFkZFRvQ2FjaGUoY2wsIG5hbWUsIGRlZmF1bHRMb2NhbGUsIGIpOworICAgICAgICB9CisgICAgICAgIGlmKGIhPW51bGwpeworICAgICAgICAgICAgYi5pbml0S2V5c1ZlY3RvcigpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGlmKERFQlVHKVN5c3RlbS5vdXQucHJpbnRsbigiUmV0dXJuaW5nIG51bGwgZm9yICIrYmFzZU5hbWUrIl8iK2xvY2FsZUlEKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9SdWxlQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2RlNTBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzNDUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBTZXB0ZW1iZXIgMjMgMjAwMworKiBTaW5jZTogSUNVIDIuOAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBBbiBpdGVyYXRvciB0aGF0IHJldHVybnMgMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyBjbGFzcyBpcyBkZWxpYmVyYXRlbHkKKyAqIDxlbT5ub3Q8L2VtPiByZWxhdGVkIHRvIGFueSBvZiB0aGUgSkRLIG9yIElDVTRKIGNoYXJhY3RlciBpdGVyYXRvciBjbGFzc2VzCisgKiBpbiBvcmRlciB0byBtaW5pbWl6ZSBjb21wbGV4aXR5LgorICogQGF1dGhvciBBbGFuIExpdQorICogQHNpbmNlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciB7CisKKyAgICAvLyBUT0RPOiBJZGVhcyBmb3IgbGF0ZXIuICAoRG8gbm90IGltcGxlbWVudCBpZiBub3QgbmVlZGVkLCBsZXN0IHRoZQorICAgIC8vIGNvZGUgY292ZXJhZ2UgbnVtYmVycyBnbyBkb3duIGR1ZSB0byB1bnVzZWQgbWV0aG9kcy4pCisgICAgLy8gMS4gQWRkIGEgY29weSBjb25zdHJ1Y3RvciwgZXF1YWxzKCkgbWV0aG9kLCBjbG9uZSgpIG1ldGhvZC4KKyAgICAvLyAyLiBSYXRoZXIgdGhhbiByZXR1cm4gRE9ORSwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBlbmQKKyAgICAvLyBpcyByZWFjaGVkIC0tIHRoaXMgaXMgYW4gYWx0ZXJuYXRlIHVzYWdlIG1vZGVsLCBwcm9iYWJseSBub3QgdXNlZnVsLgorICAgIC8vIDMuIFJldHVybiBpc0VzY2FwZWQgZnJvbSBuZXh0KCkuICBJZiB0aGlzIGhhcHBlbnMsCisgICAgLy8gZG9uJ3Qga2VlcCBhbiBpc0VzY2FwZWQgbWVtYmVyIHZhcmlhYmxlLgorCisgICAgLyoqCisgICAgICogVGV4dCBiZWluZyBpdGVyYXRlZC4KKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIG9mIGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgUGFyc2VQb3NpdGlvbiBwb3M7CisKKyAgICAvKioKKyAgICAgKiBTeW1ib2wgdGFibGUgdXNlZCB0byBwYXJzZSBhbmQgZGVyZWZlcmVuY2UgdmFyaWFibGVzLiAgTWF5IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBTeW1ib2xUYWJsZSBzeW07CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHZhcmlhYmxlIGV4cGFuc2lvbiwgb3IgbnVsbCBpZiBub25lLgorICAgICAqLworICAgIHByaXZhdGUgY2hhcltdIGJ1ZjsKKworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIHdpdGhpbiBidWZbXS4gIE1lYW5pbmdsZXNzIGlmIGJ1ZiA9PSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGJ1ZlBvczsKKworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBsYXN0IGNoYXJhY3RlciB3YXMgcGFyc2VkIGZyb20gYW4gZXNjYXBlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0VzY2FwZWQ7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGNoYXJhY3RlcnMgdG8gaXRlcmF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIG9wdGlvbiB0byBlbmFibGUgcGFyc2luZyBvZiB2YXJpYWJsZSBuYW1lcy4gIElmIChvcHRpb25zICYKKyAgICAgKiBQQVJTRV9WQVJJQUJMRVMpICE9IDAsIHRoZW4gYW4gZW1iZWRkZWQgdmFyaWFibGUgd2lsbCBiZSBleHBhbmRlZCB0bworICAgICAqIGl0cyB2YWx1ZS4gIFZhcmlhYmxlcyBhcmUgcGFyc2VkIHVzaW5nIHRoZSBTeW1ib2xUYWJsZSBBUEkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFSU0VfVkFSSUFCTEVTID0gMTsKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgb3B0aW9uIHRvIGVuYWJsZSBwYXJzaW5nIG9mIGVzY2FwZSBzZXF1ZW5jZXMuICBJZiAob3B0aW9ucyAmCisgICAgICogUEFSU0VfRVNDQVBFUykgIT0gMCwgdGhlbiBhbiBlbWJlZGRlZCBlc2NhcGUgc2VxdWVuY2Ugd2lsbCBiZSBleHBhbmRlZAorICAgICAqIHRvIGl0cyB2YWx1ZS4gIEVzY2FwZXMgYXJlIHBhcnNlZCB1c2luZyBVdGlsaXR5LnVuZXNjYXBlQXQoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQVJTRV9FU0NBUEVTICAgPSAyOyAgICAKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgb3B0aW9uIHRvIGVuYWJsZSBza2lwcGluZyBvZiB3aGl0ZXNwYWNlLiAgSWYgKG9wdGlvbnMgJgorICAgICAqIFNLSVBfV0hJVEVTUEFDRSkgIT0gMCwgdGhlbiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgd2lsbCBiZSBzaWxlbnRseQorICAgICAqIHNraXBwZWQsIGFzIGlmIHRoZXkgd2VyZSBub3QgcHJlc2VudCBpbiB0aGUgaW5wdXQuICBXaGl0ZXNwYWNlCisgICAgICogY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBieSBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZSgpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNLSVBfV0hJVEVTUEFDRSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHRleHQsIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbgorICAgICAqIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkCisgICAgICogQHBhcmFtIHN5bSB0aGUgc3ltYm9sIHRhYmxlLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vbmUuICBJZiBzeW0gaXMgbnVsbCwKKyAgICAgKiB0aGVuIHZhcmlhYmxlcyB3aWxsIG5vdCBiZSBkZWZlcmVuY2VkLCBldmVuIGlmIHRoZSBQQVJTRV9WQVJJQUJMRVMKKyAgICAgKiBvcHRpb24gaXMgc2V0LgorICAgICAqIEBwYXJhbSBwb3MgdXBvbiBpbnB1dCwgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byByZXR1cm4uICBJZiBhCisgICAgICogdmFyaWFibGUgaGFzIGJlZW4gZGVyZWZlcmVuY2VkLCB0aGVuIHBvcyB3aWxsIDxlbT5ub3Q8L2VtPiBpbmNyZW1lbnQgYXMKKyAgICAgKiBjaGFyYWN0ZXJzIG9mIHRoZSB2YXJpYWJsZSB2YWx1ZSBhcmUgaXRlcmF0ZWQuCisgICAgICovCisgICAgcHVibGljIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgdGV4dCwgU3ltYm9sVGFibGUgc3ltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCB8fCBwb3MuZ2V0SW5kZXgoKSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnN5bSA9IHN5bTsKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgICAgIGJ1ZiA9IG51bGw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGl0ZXJhdG9yIGhhcyBubyBtb3JlIGNoYXJhY3RlcnMgdG8gcmV0dXJuLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGF0RW5kKCkgeworICAgICAgICByZXR1cm4gYnVmID09IG51bGwgJiYgcG9zLmdldEluZGV4KCkgPT0gdGV4dC5sZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNoYXJhY3RlciB1c2luZyB0aGUgZ2l2ZW4gb3B0aW9ucywgb3IgRE9ORSBpZiB0aGVyZQorICAgICAqIGFyZSBubyBtb3JlIGNoYXJhY3RlcnMsIGFuZCBhZHZhbmNlIHRoZSBwb3NpdGlvbiB0byB0aGUgbmV4dAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMsIGJpdHdpc2UtT1ItZWQKKyAgICAgKiB0b2dldGhlcjogUEFSU0VfVkFSSUFCTEVTLCBQQVJTRV9FU0NBUEVTLCBTS0lQX1dISVRFU1BBQ0UuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCAzMi1iaXQgY29kZSBwb2ludCwgb3IgRE9ORQorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dChpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgYyA9IERPTkU7CisgICAgICAgIGlzRXNjYXBlZCA9IGZhbHNlOworCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGMgPSBfY3VycmVudCgpOworICAgICAgICAgICAgX2FkdmFuY2UoVVRGMTYuZ2V0Q2hhckNvdW50KGMpKTsKKworICAgICAgICAgICAgaWYgKGMgPT0gU3ltYm9sVGFibGUuU1lNQk9MX1JFRiAmJiBidWYgPT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIChvcHRpb25zICYgUEFSU0VfVkFSSUFCTEVTKSAhPSAwICYmIHN5bSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBzeW0ucGFyc2VSZWZlcmVuY2UodGV4dCwgcG9zLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAvLyBJZiBuYW1lID09IG51bGwgdGhlcmUgd2FzIGFuIGlzb2xhdGVkIFNZTUJPTF9SRUY7CisgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGl0LiAgQ2FsbGVyIG11c3QgYmUgcHJlcGFyZWQgZm9yIHRoaXMuCisgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmUG9zID0gMDsKKyAgICAgICAgICAgICAgICBidWYgPSBzeW0ubG9va3VwKG5hbWUpOworICAgICAgICAgICAgICAgIGlmIChidWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5kZWZpbmVkIHZhcmlhYmxlOiAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBlbXB0eSB2YXJpYWJsZSB2YWx1ZQorICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIFNLSVBfV0hJVEVTUEFDRSkgIT0gMCAmJgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcgJiYgKG9wdGlvbnMgJiBQQVJTRV9FU0NBUEVTKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldFtdID0gbmV3IGludFtdIHsgMCB9OworICAgICAgICAgICAgICAgIGMgPSBVdGlsaXR5LnVuZXNjYXBlQXQobG9va2FoZWFkKCksIG9mZnNldCk7CisgICAgICAgICAgICAgICAganVtcGFoZWFkKG9mZnNldFswXSk7CisgICAgICAgICAgICAgICAgaXNFc2NhcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBsYXN0IGNoYXJhY3RlciByZXR1cm5lZCBieSBuZXh0KCkgd2FzCisgICAgICogZXNjYXBlZC4gIFRoaXMgd2lsbCBvbmx5IGJlIHRoZSBjYXNlIGlmIHRoZSBvcHRpb24gcGFzc2VkIGluIHRvCisgICAgICogbmV4dCgpIGluY2x1ZGVkIFBBUlNFX0VTQ0FQRUQgYW5kIHRoZSBuZXh0IGNoYXJhY3RlciB3YXMgYW4KKyAgICAgKiBlc2NhcGUgc2VxdWVuY2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFc2NhcGVkKCkgeworICAgICAgICByZXR1cm4gaXNFc2NhcGVkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSB3aXRoaW4gYSB2YXJpYWJsZSBleHBhbnNpb24uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5WYXJpYWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGJ1ZiAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gb2JqZWN0IHdoaWNoLCB3aGVuIGxhdGVyIHBhc3NlZCB0byBzZXRQb3MoKSwgd2lsbAorICAgICAqIHJlc3RvcmUgdGhpcyBpdGVyYXRvcidzIHBvc2l0aW9uLiAgVXNhZ2UgaWRpb206CisgICAgICoKKyAgICAgKiBSdWxlQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSAuLi47CisgICAgICogT2JqZWN0IHBvcyA9IGl0ZXJhdG9yLmdldFBvcyhudWxsKTsgLy8gYWxsb2NhdGUgcG9zaXRpb24gb2JqZWN0CisgICAgICogZm9yICg7OykgeworICAgICAqICAgcG9zID0gaXRlcmF0b3IuZ2V0UG9zKHBvcyk7IC8vIHJldXNlIHBvc2l0aW9uIG9iamVjdAorICAgICAqICAgaW50IGMgPSBpdGVyYXRvci5uZXh0KC4uLik7CisgICAgICogICAuLi4KKyAgICAgKiB9CisgICAgICogaXRlcmF0b3Iuc2V0UG9zKHBvcyk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gcCBhIHBvc2l0aW9uIG9iamVjdCBwcmV2aW91c2x5IHJldHVybmVkIGJ5IGdldFBvcygpLAorICAgICAqIG9yIG51bGwuICBJZiBub3QgbnVsbCwgaXQgd2lsbCBiZSB1cGRhdGVkIGFuZCByZXR1cm5lZC4gIElmCisgICAgICogbnVsbCwgYSBuZXcgcG9zaXRpb24gb2JqZWN0IHdpbGwgYmUgYWxsb2NhdGVkIGFuZCByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIGEgcG9zaXRpb24gb2JqZWN0IHdoaWNoIG1heSBiZSBwYXNzZWQgdG8gc2V0UG9zKCksCisgICAgICogZWl0aGVyIGBwLCcgb3IgaWYgYHAnID09IG51bGwsIGEgbmV3bHktYWxsb2NhdGVkIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0UG9zKE9iamVjdCBwKSB7CisgICAgICAgIGlmIChwID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10ge2J1ZiwgbmV3IGludFtdIHtwb3MuZ2V0SW5kZXgoKSwgYnVmUG9zfX07CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0W10gYSA9IChPYmplY3RbXSkgcDsKKyAgICAgICAgYVswXSA9IGJ1ZjsKKyAgICAgICAgaW50W10gdiA9IChpbnRbXSkgYVsxXTsKKyAgICAgICAgdlswXSA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICB2WzFdID0gYnVmUG9zOworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXN0b3JlcyB0aGlzIGl0ZXJhdG9yIHRvIHRoZSBwb3NpdGlvbiBpdCBoYWQgd2hlbiBnZXRQb3MoKQorICAgICAqIHJldHVybmVkIHRoZSBnaXZlbiBvYmplY3QuCisgICAgICogQHBhcmFtIHAgYSBwb3NpdGlvbiBvYmplY3QgcHJldmlvdXNseSByZXR1cm5lZCBieSBnZXRQb3MoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBvcyhPYmplY3QgcCkgeworICAgICAgICBPYmplY3RbXSBhID0gKE9iamVjdFtdKSBwOworICAgICAgICBidWYgPSAoY2hhcltdKSBhWzBdOworICAgICAgICBpbnRbXSB2ID0gKGludFtdKSBhWzFdOworICAgICAgICBwb3Muc2V0SW5kZXgodlswXSk7CisgICAgICAgIGJ1ZlBvcyA9IHZbMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcHMgYWhlYWQgcGFzdCBhbnkgaWdub3JlZCBjaGFyYWN0ZXJzLCBhcyBpbmRpY2F0ZWQgYnkgdGhlIGdpdmVuCisgICAgICogb3B0aW9ucy4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvb2thaGVhZCgpIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEN1cnJlbnRseSwgdGhpcyBvbmx5IGhhcyBhbiBlZmZlY3QgZm9yIFNLSVBfV0hJVEVTUEFDRS4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMsIGJpdHdpc2UtT1ItZWQKKyAgICAgKiB0b2dldGhlcjogUEFSU0VfVkFSSUFCTEVTLCBQQVJTRV9FU0NBUEVTLCBTS0lQX1dISVRFU1BBQ0UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2tpcElnbm9yZWQoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaWYgKChvcHRpb25zICYgU0tJUF9XSElURVNQQUNFKSAhPSAwKSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgaW50IGEgPSBfY3VycmVudCgpOworICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYSkpIGJyZWFrOworICAgICAgICAgICAgICAgIF9hZHZhbmNlKFVURjE2LmdldENoYXJDb3VudChhKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlbWFpbmRlciBvZiB0aGUgY2hhcmFjdGVycyB0byBiZQorICAgICAqIHJldHVybmVkIGJ5IHRoaXMgaXRlcmF0b3IsIHdpdGhvdXQgYW55IG9wdGlvbiBwcm9jZXNzaW5nLiAgSWYgdGhlCisgICAgICogaXRlcmF0b3IgaXMgY3VycmVudGx5IHdpdGhpbiBhIHZhcmlhYmxlIGV4cGFuc2lvbiwgdGhpcyB3aWxsIG9ubHkKKyAgICAgKiBleHRlbmQgdG8gdGhlIGVuZCBvZiB0aGUgdmFyaWFibGUgZXhwYW5zaW9uLiAgVGhpcyBtZXRob2QgaXMgcHJvdmlkZWQKKyAgICAgKiBzbyB0aGF0IGl0ZXJhdG9ycyBtYXkgaW50ZXJvcGVyYXRlIHdpdGggc3RyaW5nLWJhc2VkIEFQSXMuICBUaGUgdHlwaWNhbAorICAgICAqIHNlcXVlbmNlIG9mIGNhbGxzIGlzIHRvIGNhbGwgc2tpcElnbm9yZWQoKSwgdGhlbiBjYWxsIGxvb2thaGVhZCgpLCB0aGVuCisgICAgICogcGFyc2UgdGhlIHN0cmluZyByZXR1cm5lZCBieSBsb29rYWhlYWQoKSwgdGhlbiBjYWxsIGp1bXBhaGVhZCgpIHRvCisgICAgICogcmVzeW5jaHJvbml6ZSB0aGUgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIHRvIGJlIHJldHVybmVkIGJ5IGZ1dHVyZQorICAgICAqIGNhbGxzIHRvIG5leHQoKQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbG9va2FoZWFkKCkgeworICAgICAgICBpZiAoYnVmICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgYnVmUG9zLCBidWYubGVuZ3RoIC0gYnVmUG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgcG9zaXRpb24gYnkgdGhlIGdpdmVuIG51bWJlciBvZiAxNi1iaXQgY29kZSB1bml0cy4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsb29rYWhlYWQoKSBtZXRob2QuCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgMTYtYml0IGNvZGUgdW5pdHMgdG8ganVtcCBvdmVyCisgICAgICovCisgICAgcHVibGljIHZvaWQganVtcGFoZWFkKGludCBjb3VudCkgeworICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZiAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZQb3MgKz0gY291bnQ7CisgICAgICAgICAgICBpZiAoYnVmUG9zID4gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWZQb3MgPT0gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGJ1ZiA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaSA9IHBvcy5nZXRJbmRleCgpICsgY291bnQ7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICAgICAgICBpZiAoaSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LCBjb25zaXN0aW5nIG9mIHRoZQorICAgICAqIGNoYXJhY3RlcnMgYmVpbmcgaXRlcmF0ZWQsIHdpdGggYSAnfCcgbWFya2luZyB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBQb3NpdGlvbiB3aXRoaW4gYW4gZXhwYW5kZWQgdmFyaWFibGUgaXMgPGVtPm5vdDwvZW0+IGluZGljYXRlZC4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgaW50IGIgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKDAsIGIpICsgJ3wnICsgdGV4dC5zdWJzdHJpbmcoYik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCAzMi1iaXQgY29kZSBwb2ludCB3aXRob3V0IHBhcnNpbmcgZXNjYXBlcywgcGFyc2luZworICAgICAqIHZhcmlhYmxlcywgb3Igc2tpcHBpbmcgd2hpdGVzcGFjZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IDMyLWJpdCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgX2N1cnJlbnQoKSB7CisgICAgICAgIGlmIChidWYgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIFVURjE2LmNoYXJBdChidWYsIDAsIGJ1Zi5sZW5ndGgsIGJ1ZlBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaSA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgcmV0dXJuIChpIDwgdGV4dC5sZW5ndGgoKSkgPyBVVEYxNi5jaGFyQXQodGV4dCwgaSkgOiBET05FOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBwb3NpdGlvbiBieSB0aGUgZ2l2ZW4gYW1vdW50LgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIHRvIGFkdmFuY2UgcGFzdAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBfYWR2YW5jZShpbnQgY291bnQpIHsKKyAgICAgICAgaWYgKGJ1ZiAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZQb3MgKz0gY291bnQ7CisgICAgICAgICAgICBpZiAoYnVmUG9zID09IGJ1Zi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBidWYgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgY291bnQpOworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Tb2Z0Q2FjaGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvZnRDYWNoZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMmM4MDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Tb2Z0Q2FjaGUuamF2YQpAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKKworLyoqCisgKiBMUlUgaGFzaCBtYXAgdXNpbmcgc29mdGx5LXJlZmVyZW5jZWQgdmFsdWVzCisgKi8KK3B1YmxpYyBjbGFzcyBTb2Z0Q2FjaGUgeworICAgIHByaXZhdGUgZmluYWwgTFJVTWFwIG1hcDsKKyAgICBwcml2YXRlIGZpbmFsIFJlZmVyZW5jZVF1ZXVlIHF1ZXVlID0gbmV3IFJlZmVyZW5jZVF1ZXVlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTb2Z0Q2FjaGUgd2l0aCBkZWZhdWx0IGNhY2hlIHNpemUKKyAgICAgKi8KKyAgICBwdWJsaWMgU29mdENhY2hlKCkgeworICAgICAgICBtYXAgPSBuZXcgTFJVTWFwKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNvZnRDYWNoZSB3aXRoIHNlcGNpZmllZCBpbml0aWFsL21heCBzaXplCisgICAgICogCisgICAgICogQHBhcmFtIGluaXRpYWxTaXplIHRoZSBpbml0aWFsIGNhY2hlIHNpemUKKyAgICAgKiBAcGFyYW0gbWF4U2l6ZSB0aGUgbWF4aW11bSBjYWNoZSBzaXplCisgICAgICovCisgICAgcHVibGljIFNvZnRDYWNoZShpbnQgaW5pdGlhbFNpemUsIGludCBtYXhTaXplKSB7CisgICAgICAgIG1hcCA9IG5ldyBMUlVNYXAoaW5pdGlhbFNpemUsIG1heFNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFB1dCBhbiBvYmplY3QgdG8gdGhlIGNhY2hlCisgICAgICogQHBhcmFtIGtleSBrZXkgb2JqZWN0CisgICAgICogQHBhcmFtIHZhbHVlIHZhbHVlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIHByZXZpb3VzbHkgcHV0LCBudWxsIHdoZW4gbm90IG1hdGNoaW5nIGtleSBpcyBmb3VuZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGlmIChrZXkgPT0gbnVsbCB8fCB2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJLZXkgYW5kIHZhbHVlIG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBQcm9jZXNzUXVldWUoKTsKKyAgICAgICAgT2JqZWN0IG9iaiA9IG1hcC5wdXQoa2V5LCBuZXcgU29mdE1hcEVudHJ5KGtleSwgdmFsdWUsIHF1ZXVlKSk7CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFuIG9iamVjdCBmcm9tIHRoZSBjYWNoZQorICAgICAqIEBwYXJhbSBrZXkga2V5IG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIGNhY2hlZCB2YWx1ZSwgbnVsbCB3aGVuIHRoZSB2YWx1ZSBpcyBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgZ2V0KE9iamVjdCBrZXkpIHsKKyAgICAgICAgUHJvY2Vzc1F1ZXVlKCk7CisgICAgICAgIE9iamVjdCBvYmogPSBudWxsOworICAgICAgICBTb2Z0TWFwRW50cnkgZW50cnkgPSAoU29mdE1hcEVudHJ5KW1hcC5nZXQoa2V5KTsKKyAgICAgICAgaWYgKGVudHJ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG9iaiA9IGVudHJ5LmdldCgpOworICAgICAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gSXQgaXMgdW5saWtlbHkgdG8gZW50ZXIgaW50byB0aGlzIGJsb2NrLCBiZWNhdXNlCisgICAgICAgICAgICAgICAgLy8gUHJvY2Vzc1F1ZXVlKCkgc2hvdWxkIGFscmVhZHkgcmVtb3ZlIGEgbWFwIGVudHJpZQorICAgICAgICAgICAgICAgIC8vIHdob3NlIHZhbHVlIHdhcyBkZWxldGVkIGJ5IHRoZSBnYXJiYWdlIGNvbGxhY3Rvci4KKyAgICAgICAgICAgICAgICBtYXAucmVtb3ZlKGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBjYWNoZSBlbnRyeSBmcm9tIHRoZSBjYWNoZQorICAgICAqIEBwYXJhbSBrZXkga2V5IG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIGNhY2hlIGVudHJ5IHdoaWNoIGlzIHJlbW92ZWQgZnJvbSB0aGlzIGNhY2hlLAorICAgICAqIG9yIG51bGwgd2hlbiBubyBlbnRyeSBmb3IgdGhlIGtleSB3YXMgbm8gZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgcmVtb3ZlKE9iamVjdCBrZXkpIHsKKyAgICAgICAgcmV0dXJuIG1hcC5yZW1vdmUoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciB0aGUgY2FjaGUgY29udGVudHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIFByb2Nlc3NRdWV1ZSgpOworICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgbWFwIGVudHJpZXMgd2hpY2ggbm8gbG9uZ2VyIGhhdmUgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgUHJvY2Vzc1F1ZXVlKCkgeworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgU29mdE1hcEVudHJ5IGVudHJ5ID0gKFNvZnRNYXBFbnRyeSlxdWV1ZS5wb2xsKCk7CisgICAgICAgICAgICBpZiAoZW50cnkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWFwLnJlbW92ZShlbnRyeS5nZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIGZvciBtYXAgZW50cnkgd2l0aCBzb2Z0LXJlZmVyZW5jZWQgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTb2Z0TWFwRW50cnkgZXh0ZW5kcyBTb2Z0UmVmZXJlbmNlIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3Qga2V5OworCisgICAgICAgIHByaXZhdGUgU29mdE1hcEVudHJ5KE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSwgUmVmZXJlbmNlUXVldWUgcXVldWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlLCBxdWV1ZSk7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGdldEtleSgpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvU29ydGVkU2V0UmVsYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyNjJlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEKQEAgLTAsMCArMSwxODAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IE0uIERhdmlzCisqIENyZWF0ZWQ6IERlY2VtYmVyIDIwMDIgKG1vdmVkIGZyb20gVW5pY29kZVNldCkKKyogU2luY2U6IElDVSAyLjQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworLyoqCisgKiBDb21wdXRhdGlvbmFsbHkgZWZmaWNpZW50IGRldGVybWluYXRpb24gb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuCisgKiB0d28gU29ydGVkU2V0cy4KKyAqLworcHVibGljIGNsYXNzIFNvcnRlZFNldFJlbGF0aW9uIHsKKworICAgIC8qKgorICAgICAqIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gc2V0cyBBIGFuZCBCIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IGxvb2tpbmcgYXQ6CisgICAgICogQSAtIEIKKyAgICAgKiBBICYgQiAoaW50ZXJzZWN0aW9uKQorICAgICAqIEIgLSBBCisgICAgICogVGhlc2UgYXJlIHJlcHJlc2VudGVkIGJ5IGEgc2V0IG9mIGJpdHMuCisgICAgICogQml0IDIgaXMgdHJ1ZSBpZiBBIC0gQiBpcyBub3QgZW1wdHkKKyAgICAgKiBCaXQgMSBpcyB0cnVlIGlmIEEgJiBCIGlzIG5vdCBlbXB0eQorICAgICAqIEJJVCAwIGlzIHRydWUgaWYgQiAtIEEgaXMgbm90IGVtcHR5CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgQV9OT1RfQiA9IDQsCisgICAgICAgIEFfQU5EX0IgPSAyLAorICAgICAgICBCX05PVF9BID0gMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgOCBjb21iaW5hdGlvbnMgb2YgdGhlIHJlbGF0aW9uc2hpcCBiaXRzLiBUaGVzZSBjb3JyZXNwb25kIHRvCisgICAgICogdGhlIGZpbHRlcnMgKGNvbWJpbmF0aW9ucyBvZiBhbGxvd2VkIGJpdHMpIGluIGhhc1JlbGF0aW9uLiBUaGV5IGFsc28KKyAgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBtb2RpZmljYXRpb24gZnVuY3Rpb25zLCBsaXN0ZWQgaW4gY29tbWVudHMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgQU5ZID0gICAgICAgICAgICBBX05PVF9CIHwgICBBX0FORF9CIHwgICBCX05PVF9BLCAgICAvLyB1bmlvbiwgICAgICAgICAgIGFkZEFsbAorICAgICAgIENPTlRBSU5TID0gICAgICAgQV9OT1RfQiB8ICAgQV9BTkRfQiwgICAgICAgICAgICAgICAgLy8gQSAgICAgICAgICAgICAgICAodW5uZWNlc3NhcnkpCisgICAgICAgRElTSk9JTlQgPSAgICAgICBBX05PVF9CIHwgICAgICAgICAgICAgICBCX05PVF9BLCAgICAvLyBBIHhvciBCLCAgICAgICAgIG1pc3NpbmcgSmF2YSBmdW5jdGlvbgorICAgICAgIElTQ09OVEFJTkVEID0gICAgICAgICAgICAgICAgQV9BTkRfQiB8ICAgQl9OT1RfQSwgICAgLy8gQiAgICAgICAgICAgICAgICAodW5uZWNlc3NhcnkpCisgICAgICAgTk9fQiA9ICAgICAgICAgICBBX05PVF9CLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHNldERpZmYgQiwgICAgIHJlbW92ZUFsbAorICAgICAgIEVRVUFMUyA9ICAgICAgICAgICAgICAgICAgICAgQV9BTkRfQiwgICAgICAgICAgICAgICAgLy8gQSBpbnRlcnNlY3QgQiwgICByZXRhaW5BbGwKKyAgICAgICBOT19BID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJfTk9UX0EsICAgIC8vIEIgc2V0RGlmZiBBLCAgICAgcmVtb3ZlQWxsCisgICAgICAgTk9ORSA9ICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBudWxsICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICAKKyAgICAgICBBRERBTEwgPSBBTlksICAgICAgICAgICAgICAgIC8vIHVuaW9uLCAgICAgICAgICAgYWRkQWxsCisgICAgICAgQSA9IENPTlRBSU5TLCAgICAgICAgICAgICAgICAvLyBBICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBDT01QTEVNRU5UQUxMID0gRElTSk9JTlQsICAgIC8vIEEgeG9yIEIsICAgICAgICAgbWlzc2luZyBKYXZhIGZ1bmN0aW9uCisgICAgICAgQiA9IElTQ09OVEFJTkVELCAgICAgICAgICAgICAvLyBCICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBSRU1PVkVBTEwgPSBOT19CLCAgICAgICAgICAgIC8vIEEgc2V0RGlmZiBCLCAgICAgcmVtb3ZlQWxsCisgICAgICAgUkVUQUlOQUxMID0gRVFVQUxTLCAgICAgICAgICAvLyBBIGludGVyc2VjdCBCLCAgIHJldGFpbkFsbAorICAgICAgIEJfUkVNT1ZFQUxMID0gTk9fQTsgICAgICAgICAgLy8gQiBzZXREaWZmIEEsICAgICByZW1vdmVBbGwKKyAgICAgICAKKyAgCisgICAgLyoqCisgICAgICogVXRpbGl0eSB0aGF0IGNvdWxkIGJlIG9uIFNvcnRlZFNldC4gRmFzdGVyIGltcGxlbWVudGF0aW9uIHRoYW4KKyAgICAgKiB3aGF0IGlzIGluIEphdmEgZm9yIGRvaW5nIGNvbnRhaW5zLCBlcXVhbHMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gYSBmaXJzdCBzZXQKKyAgICAgKiBAcGFyYW0gYWxsb3cgZmlsdGVyLCB1c2luZyBBTlksIENPTlRBSU5TLCBldGMuCisgICAgICogQHBhcmFtIGIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gd2hldGhlciB0aGUgZmlsdGVyIHJlbGF0aW9uc2hpcCBpcyB0cnVlIG9yIG5vdC4KKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc1JlbGF0aW9uKFNvcnRlZFNldCBhLCBpbnQgYWxsb3csIFNvcnRlZFNldCBiKSB7CisgICAgICAgIGlmIChhbGxvdyA8IE5PTkUgfHwgYWxsb3cgPiBBTlkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJlbGF0aW9uICIgKyBhbGxvdyArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGV4dHJhY3QgZmlsdGVyIGNvbmRpdGlvbnMKKyAgICAgICAgLy8gdGhlc2UgYXJlIHRoZSBBTExPV0VEIGNvbmRpdGlvbnMgU2V0CisgICAgICAgIAorICAgICAgICBib29sZWFuIGFuYiA9IChhbGxvdyAmIEFfTk9UX0IpICE9IDA7CisgICAgICAgIGJvb2xlYW4gYWIgPSAoYWxsb3cgJiBBX0FORF9CKSAhPSAwOworICAgICAgICBib29sZWFuIGJuYSA9IChhbGxvdyAmIEJfTk9UX0EpICE9IDA7CisgICAgICAgIAorICAgICAgICAvLyBxdWljayBjaGVjayBvbiBzaXplcworICAgICAgICBzd2l0Y2goYWxsb3cpIHsKKyAgICAgICAgICAgIGNhc2UgQ09OVEFJTlM6IGlmIChhLnNpemUoKSA8IGIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU0NPTlRBSU5FRDogaWYgKGEuc2l6ZSgpID4gYi5zaXplKCkpIHJldHVybiBmYWxzZTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVRVUFMUzogaWYgKGEuc2l6ZSgpICE9IGIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayBmb3IgbnVsbCBzZXRzCisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoYi5zaXplKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gYm5hOworICAgICAgICB9IGVsc2UgaWYgKGIuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBhbmI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBpY2sgdXAgZmlyc3Qgc3RyaW5ncywgYW5kIHN0YXJ0IGNvbXBhcmluZworICAgICAgICBJdGVyYXRvciBhaXQgPSBhLml0ZXJhdG9yKCk7CisgICAgICAgIEl0ZXJhdG9yIGJpdCA9IGIuaXRlcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIENvbXBhcmFibGUgYWEgPSAoQ29tcGFyYWJsZSkgYWl0Lm5leHQoKTsKKyAgICAgICAgQ29tcGFyYWJsZSBiYiA9IChDb21wYXJhYmxlKSBiaXQubmV4dCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBjb21wID0gYWEuY29tcGFyZVRvKGJiKTsKKyAgICAgICAgICAgIGlmIChjb21wID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoIWFiKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFhaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghYml0Lmhhc05leHQoKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBibmE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghYml0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhYSA9IChDb21wYXJhYmxlKSBhaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGJiID0gKENvbXBhcmFibGUpIGJpdC5uZXh0KCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXAgPCAwKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhbmIpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIWFpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJuYTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWEgPSAoQ29tcGFyYWJsZSkgYWl0Lm5leHQoKTsgCisgICAgICAgICAgICB9IGVsc2UgIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJuYSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGlmICghYml0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBiYiA9IChDb21wYXJhYmxlKSBiaXQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgdGhhdCBjb3VsZCBiZSBvbiBTb3J0ZWRTZXQuIEFsbG93cyBmYXN0ZXIgaW1wbGVtZW50YXRpb24gdGhhbgorICAgICAqIHdoYXQgaXMgaW4gSmF2YSBmb3IgZG9pbmcgYWRkQWxsLCByZW1vdmVBbGwsIHJldGFpbkFsbCwgKGNvbXBsZW1lbnRBbGwpLgorICAgICAqIEBwYXJhbSBhIGZpcnN0IHNldAorICAgICAqIEBwYXJhbSByZWxhdGlvbiB0aGUgcmVsYXRpb24gZmlsdGVyLCB1c2luZyBBTlksIENPTlRBSU5TLCBldGMuCisgICAgICogQHBhcmFtIGIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gdGhlIG5ldyBzZXQKKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBTb3J0ZWRTZXQgZG9PcGVyYXRpb24oU29ydGVkU2V0IGEsIGludCByZWxhdGlvbiwgU29ydGVkU2V0IGIpIHsKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUgdGhpcyBhcyBhYm92ZQorICAgICAgICBUcmVlU2V0IHRlbXA7CisgICAgICAgIHN3aXRjaCAocmVsYXRpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQUREQUxMOgorICAgICAgICAgICAgICAgIGEuYWRkQWxsKGIpOyAKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgQToKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsgLy8gbm8gYWN0aW9uCisgICAgICAgICAgICBjYXNlIEI6CisgICAgICAgICAgICAgICAgYS5jbGVhcigpOyAKKyAgICAgICAgICAgICAgICBhLmFkZEFsbChiKTsgCisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBjYXNlIFJFTU9WRUFMTDogCisgICAgICAgICAgICAgICAgYS5yZW1vdmVBbGwoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBjYXNlIFJFVEFJTkFMTDogCisgICAgICAgICAgICAgICAgYS5yZXRhaW5BbGwoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICAvLyB0aGUgZm9sbG93aW5nIGlzIHRoZSBvbmx5IGNhc2Ugbm90IHJlYWxseSBzdXBwb3J0ZWQgYnkgSmF2YQorICAgICAgICAgICAgLy8gYWx0aG91Z2ggYWxsIGNvdWxkIGJlIG9wdGltaXplZAorICAgICAgICAgICAgY2FzZSBDT01QTEVNRU5UQUxMOgorICAgICAgICAgICAgICAgIHRlbXAgPSBuZXcgVHJlZVNldChiKTsKKyAgICAgICAgICAgICAgICB0ZW1wLnJlbW92ZUFsbChhKTsKKyAgICAgICAgICAgICAgICBhLnJlbW92ZUFsbChiKTsKKyAgICAgICAgICAgICAgICBhLmFkZEFsbCh0ZW1wKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgQl9SRU1PVkVBTEw6CisgICAgICAgICAgICAgICAgdGVtcCA9IG5ldyBUcmVlU2V0KGIpOworICAgICAgICAgICAgICAgIHRlbXAucmVtb3ZlQWxsKGEpOworICAgICAgICAgICAgICAgIGEuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBhLmFkZEFsbCh0ZW1wKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgTk9ORToKKyAgICAgICAgICAgICAgICBhLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBkZWZhdWx0OiAKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSZWxhdGlvbiAiICsgcmVsYXRpb24gKyAiIG91dCBvZiByYW5nZSIpOworICAgICAgICB9CisgICAgfSAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1N0cmluZ1ByZXBEYXRhUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdQcmVwRGF0YVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZDc3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdQcmVwRGF0YVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIE1heSAyLCAyMDAzCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgZmlsZSBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKKworCisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nUHJlcERhdGFSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBib29sZWFuIGRlYnVnID0gSUNVRGVidWcuZW5hYmxlZCgiTm9ybWFsaXplckRhdGFSZWFkZXIiKTsKKyAgICAKKyAgIC8qKgorICAgICogPHA+cHJpdmF0ZSBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcERhdGFSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgaW4gaW5wdXRTdHJlYW0gIiArIGlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIHVuaWNvZGVWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lELCB0aGlzKTsKKyAgICAgICAgCisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGxlZnQgaW4gaW5wdXRTdHJlYW0gIiAraW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgICAgICAKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIAorICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGRhdGFJbnB1dFN0cmVhbSAiICtkYXRhSW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCByZWFkKGJ5dGVbXSBpZG5hQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gbWFwcGluZ1RhYmxlKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKworICAgICAgICAvL1JlYWQgdGhlIGJ5dGVzIHRoYXQgbWFrZSB1cCB0aGUgaWRuYVRyaWUgIAorICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChpZG5hQnl0ZXMpOworICAgICAgICAKKyAgICAgICAgLy9SZWFkIHRoZSBleHRyYSBkYXRhCisgICAgICAgIGZvcihpbnQgaT0wO2k8bWFwcGluZ1RhYmxlLmxlbmd0aDtpKyspeworICAgICAgICAgICAgbWFwcGluZ1RhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZ2V0RGF0YUZvcm1hdFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIERBVEFfRk9STUFUX1ZFUlNJT047CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKXsKKyAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlswXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bMl0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlsyXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlszXTsKKyAgICB9CisgICAgcHVibGljIGludFtdIHJlYWRJbmRleGVzKGludCBsZW5ndGgpdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpbnRbXSBpbmRleGVzID0gbmV3IGludFtsZW5ndGhdOworICAgICAgICAvL1JlYWQgdGhlIGluZGV4ZXMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPGxlbmd0aCA7IGkrKykgeworICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleGVzOworICAgIH0gCisgICAgCisgICAgcHVibGljIGJ5dGVbXSBnZXRVbmljb2RlVmVyc2lvbigpeworICAgICAgICByZXR1cm4gdW5pY29kZVZlcnNpb247CisgICAgfQorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorCisgICAgLyoqCisgICAgKiBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbQorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gZGF0YUlucHV0U3RyZWFtOworICAgIHByaXZhdGUgYnl0ZVtdIHVuaWNvZGVWZXJzaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIHRoYXQgdGhpcyBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAqIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgaWYgYSBvbGRlciB2ZXJzaW9uIGlzIHVzZWQKKyAgICAqIHNlZSBzdG9yZS5jIG9mIGdlbm5vcm0gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHZhbHVlcworICAgICovCisgICAgLy8vKiBkYXRhRm9ybWF0PSJTUFJQIiAweDUzLCAweDUwLCAweDUyLCAweDUwICAqLyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEW10gPSB7KGJ5dGUpMHg1MywgKGJ5dGUpMHg1MCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg1MiwgKGJ5dGUpMHg1MH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OW10gPSB7KGJ5dGUpMHgzLCAoYnl0ZSkweDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDUsIChieXRlKTB4Mn07CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1N0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYTQ0YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIFVzZWQgYnkgQ29sbGF0aW9uLiBVQ2hhcmFjdGVySXRlcmF0b3Igb24gU3RyaW5ncy4gQ2FuJ3QgdXNlIAorICogUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IgYmVjYXVzZSBpdCBpcyBub3QgZWFzeSB0byBkbyBhIGZhc3Qgc2V0VGV4dC4gCisgKiBAYXV0aG9yIHN5bndlZQorICovCisvLyBUT0RPOiBJbnZlc3RpdmF0ZSBpZiBzZXRUZXh0IGlzIGEgZmVhdHVyZSByZXF1aXJlZCBieSB1c2VycyBzbyB0aGF0IHdlIGNhbiAKKy8vIG1vdmUgdGhpcyBtZXRob2QgdG8gdGhlIGJhc2UgY2xhc3MhCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIAoreworCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBzdHIgdGV4dCB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZCBvbgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGlmIChzdHIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIG1fdGV4dF8gPSBzdHI7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBkZWZhdWx0IGNvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcigpCisgICAgeworICAgICAgICBtX3RleHRfID0gIiI7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLCBkb2VzIG5vdCBjbG9uZSB0aGUgdW5kZXJseWluZyAKKyAgICAgKiA8Y29kZT5TdHJpbmc8L2NvZGU+b2JqZWN0CisgICAgICogQHJldHVybiBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBuZXZlciBpbnZva2VkCisgICAgICAgIH0KKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBVVEYxNiBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBjdXJyZW50IFVURjE2IGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfIDwgbV90ZXh0Xy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fdGV4dF8uY2hhckF0KG1fY3VycmVudEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZW5ndGgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdGV4dF8ubGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY3VycmVudEluZGV4IGluIHRleHQuCisgICAgICogQHJldHVybiBjdXJyZW50IGN1cnJlbnRJbmRleCBpbiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY3VycmVudEluZGV4XzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgbmV4dCBVVEYxNiBjaGFyYWN0ZXIgYW5kIGluY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IAorICAgICAqIGJ5IDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHRleHQgbGVuZ3RoLCAKKyAgICAgKiB0aGUgY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIHRoZSB0ZXh0IGxlbmd0aCBhbmQgYSB2YWx1ZSBvZiBET05FIGlzIAorICAgICAqIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfIDwgbV90ZXh0Xy5sZW5ndGgoKSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3RleHRfLmNoYXJBdChtX2N1cnJlbnRJbmRleF8gKyspOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHByZXZpb3VzIFVURjE2IGNoYXJhY3RlciBhbmQgZGVjcmVtZW50cyB0aGUgaXRlcmF0b3IncyAKKyAgICAgKiBjdXJyZW50SW5kZXggYnkgMS4gCisgICAgICogSWYgdGhlIHJlc3VsdGluZyBjdXJyZW50SW5kZXggaXMgbGVzcyB0aGFuIDAsIHRoZSBjdXJyZW50SW5kZXggaXMgcmVzZXQgCisgICAgICogdG8gMCBhbmQgYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgIG9mZiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIG1fdGV4dF8uY2hhckF0KC0tIG1fY3VycmVudEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgY3VycmVudEluZGV4IHRvIHRoZSBzcGVjaWZpZWQgY3VycmVudEluZGV4IGluIHRoZSB0ZXh0IGFuZCAKKyAgICAgKiByZXR1cm5zIHRoYXQgc2luZ2xlIFVURjE2IGNoYXJhY3RlciBhdCBjdXJyZW50SW5kZXguIAorICAgICAqIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMuPC9wPgorICAgICAqIEBwYXJhbSBjdXJyZW50SW5kZXggdGhlIGN1cnJlbnRJbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBjdXJyZW50SW5kZXggCisgICAgICogICAgICAgICAgICBpcyBzdXBwbGllZC4gaS5lLiBjdXJyZW50SW5kZXggaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgY3VycmVudEluZGV4KSB0aHJvd3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IDAgfHwgY3VycmVudEluZGV4ID4gbV90ZXh0Xy5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBtX2N1cnJlbnRJbmRleF8gPSBjdXJyZW50SW5kZXg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbGxzIHRoZSBidWZmZXIgd2l0aCB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2Ugb2YgdGhlIGl0ZXJhdG9yCisgICAgICogSWYgdGhlIGJ1ZmZlciBjYXBhY2l0eSBpcyBub3QgZW5vdWdoIGEgZXhjZXB0aW9uIGlzIHRocm93bi4gVGhlIGNhcGFjaXR5CisgICAgICogb2YgdGhlIGZpbGwgaW4gYnVmZmVyIHNob3VsZCBhdCBsZWFzdCBiZSBlcXVhbCB0byBsZW5ndGggb2YgdGV4dCBpbiB0aGUgCisgICAgICogaXRlcmF0b3Igb2J0YWluZWQgYnkgY2FsbGluZyA8Y29kZT5nZXRMZW5ndGgoKTwvY29kZSkuCisgICAgICogPGI+VXNhZ2U6PC9iPgorICAgICAqIAorICAgICAqIDxjb2RlPgorICAgICAqIDxwcmU+CisgICAgICogICAgICAgICBVQ2hhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRleHQpOworICAgICAqICAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyW2l0ZXIuZ2V0TGVuZ3RoKCldOworICAgICAqICAgICAgICAgaXRlci5nZXRUZXh0KGJ1Zik7CisgICAgICogICAgICAgICAKKyAgICAgKiAgICAgICAgIE9SCisgICAgICogICAgICAgICBjaGFyW10gYnVmPSBuZXcgY2hhclsxXTsKKyAgICAgKiAgICAgICAgIGludCBsZW4gPSAwOworICAgICAqICAgICAgICAgZm9yKDs7KXsKKyAgICAgKiAgICAgICAgICAgICB0cnl7CisgICAgICogICAgICAgICAgICAgICAgIGxlbiA9IGl0ZXIuZ2V0VGV4dChidWYpOworICAgICAqICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgKiAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgKiAgICAgICAgICAgICAgICAgYnVmID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICogICAgICAgICAgICAgfQorICAgICAqICAgICAgICAgfQorICAgICAqIDwvcHJlPgorICAgICAqIDwvY29kZT4KKyAgICAgKiAgICAgICAgICAgICAKKyAgICAgKiBAcGFyYW0gZmlsbEluIGFuIGFycmF5IG9mIGNoYXJzIHRvIGZpbGwgd2l0aCB0aGUgdW5kZXJseWluZyBVVEYtMTYgY29kZSAKKyAgICAgKiAgICAgICAgIHVuaXRzLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgYXJyYXkgdG8gc3RhcnQgcHV0dGluZyB0aGUgZGF0YS4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBhZGRlZCB0byBmaWxsSW4sIGFzIGEgY29udmVuaWVuY2UKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZXhjZXB0aW9uIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKKyAgICAgKiAgICAgICAgICAgIHJvb20gYWZ0ZXIgb2Zmc2V0IGluIHRoZSBhcnJheSwgb3IgaWYgb2Zmc2V0ICZsdDsgMC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoID0gbV90ZXh0Xy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gZmlsbEluLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfQorICAgICAgICBtX3RleHRfLmdldENoYXJzKDAsIGxlbmd0aCwgZmlsbEluLCBvZmZzZXQpOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHJldHVybmluZyB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2UgYXMgYXMKKyAgICAgKiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBpbiB0aGUgaXRlcmF0b3IgYXMgYSBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX3RleHRfOworICAgIH0gICAgICAgCisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhpcyBpdGVyYXRvciB0byBwb2ludCB0byBhIG5ldyBzdHJpbmcuIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgCisgICAgICogb3RoZXIgY2xhc3NlcyB0aGF0IHdhbnQgdG8gYXZvaWQgYWxsb2NhdGluZyBuZXcgCisgICAgICogUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzIGV2ZXJ5IHRpbWUgdGhlaXIgc2V0VGV4dCBtZXRob2QKKyAgICAgKiBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyIAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHRleHQpIAorICAgIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgbV90ZXh0XyA9IHRleHQ7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgICAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGV4dCBzdHJpbmcgb2JqZWN0CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbV90ZXh0XzsKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGN1cnJlbnRJbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY3VycmVudEluZGV4XzsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGV4dFRyaWVNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RleHRUcmllTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxNGIzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RleHRUcmllTWFwLmphdmEKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFRleHRUcmllTWFwIGlzIGEgdHJpZSBpbXBsZW1lbnRhdGlvbiBmb3Igc3VwcG9ydGluZworICogZmFzdCBwcmVmaXggbWF0Y2ggZm9yIHRoZSBrZXkuCisgKi8KK3B1YmxpYyBjbGFzcyBUZXh0VHJpZU1hcCB7CisgICAgLyoqCisgICAgICogQ29zdHJ1Y3RzIGEgVGV4dFRyaWVNYXAgb2JqZWN0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBpZ25vcmVDYXNlIHRydWUgdG8gdXNlIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2gKKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFRyaWVNYXAoYm9vbGVhbiBpZ25vcmVDYXNlKSB7CisgICAgICAgIHRoaXMuaWdub3JlQ2FzZSA9IGlnbm9yZUNhc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyB0aGUgdGV4dCBrZXkgYW5kIGl0cyBhc3NvY2lhdGVkIG9iamVjdCBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbyBUaGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBwcmV2aW91cyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWVkIHRleHQsCisgICAgICogb3IgbnVsbCBpZiB0aGVyZSB3YXMgbm8gbWFwcGluZyBmb3IgdGhlIHRleHQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgcHV0KFN0cmluZyB0ZXh0LCBPYmplY3QgbykgeworICAgICAgICBDaGFyYWN0ZXJOb2RlIG5vZGUgPSByb290OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgbm9kZSA9IG5vZGUuYWRkQ2hpbGROb2RlKGNoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5nZXRDaGFyQ291bnQoY2gpID09IDIpIHsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0IHByZXZPYmogPSBub2RlLmdldE9iamVjdCgpOworICAgICAgICBub2RlLnNldE9iamVjdChvKTsKKyAgICAgICAgcmV0dXJuIHByZXZPYmo7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaGluZyBzdHJpbmcga2V5LgorICAgICAqIAorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQgd2l0aCBwcmVmaXhlcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb25nZXQgcHJlZml4IG1hdGNoaW5nCisgICAgICogbWF0Y2hpbmcga2V5LCBvciBudWxsIGlmIG5vIG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIHJldHVybiBnZXQocm9vdCwgdGV4dCwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaGluZyBzdHJpbmcga2V5IHN0YXJ0aW5nIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogCisgICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gYmUgbWF0Y2hlZCB3aXRoIHByZWZpeGVzLgorICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgaW5kZXggb2Ygb2YgdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIFRoZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb25nZXQgcHJlZml4IG1hdGNoaW5nCisgICAgICogbWF0Y2hpbmcga2V5LCBvciBudWxsIGlmIG5vIG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQpIHsKKyAgICAgICAgcmV0dXJuIGdldChyb290LCB0ZXh0LCBzdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2V0IHByZWZpeAorICAgICAqIG1hdGNoaW5nIHN0cmluZyBrZXkgdW5kZXIgdGhlIHNwZWNpZmllZCBub2RlLgorICAgICAqIAorICAgICAqIEBwYXJhbSBub2RlIFRoZSBjaGFyYWN0ZXIgbm9kZSBpbiB0aGlzIHRyaWUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gYmUgbWF0Y2hlZCB3aXRoIHByZWZpeGVzLgorICAgICAqIEBwYXJhbSBpbmRleCBUaGUgY3VycmVudCBpbmRleCB3aXRoaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaCB1bmRlciB0aGUgbm9kZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBPYmplY3QgZ2V0KENoYXJhY3Rlck5vZGUgbm9kZSwgU3RyaW5nIHRleHQsIGludCBpbmRleCkgeworICAgICAgICBPYmplY3Qgb2JqID0gbm9kZS5nZXRPYmplY3QoKTsKKyAgICAgICAgaWYgKGluZGV4IDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgTGlzdCBjaGlsZE5vZGVzID0gbm9kZS5nZXRDaGlsZE5vZGVzKCk7CisgICAgICAgICAgICBpZiAoY2hpbGROb2RlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICBpbnQgY2hMZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZE5vZGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ2hhcmFjdGVyTm9kZSBjaGlsZCA9IChDaGFyYWN0ZXJOb2RlKWNoaWxkTm9kZXMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGlmIChjb21wYXJlKGNoLCBjaGlsZC5nZXRDaGFyYWN0ZXIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRtcCA9IGdldChjaGlsZCwgdGV4dCwgaW5kZXggKyBjaExlbik7CisgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gdG1wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgcHJpdmF0ZSBtZXRob2QgdXNlZCBmb3IgY29tcGFyaW5nIHR3byBjaGFyYWN0ZXJzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBjaDEgVGhlIGZpcnN0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY2gyIFRoZSBzZWNvbmQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG1hdGNoZXMgdGhlIHNlY29uZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY29tcGFyZShpbnQgY2gxLCBpbnQgY2gyKSB7CisgICAgICAgIGlmIChjaDEgPT0gY2gyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpZ25vcmVDYXNlKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaDEpID09IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjaDEpID09IFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2gyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBUaGUgcm9vdCBub2RlIG9mIHRoaXMgdHJpZQorICAgIHByaXZhdGUgQ2hhcmFjdGVyTm9kZSByb290ID0gbmV3IENoYXJhY3Rlck5vZGUoMCk7CisKKyAgICAvLyBDaGFyYWN0ZXIgbWF0Y2hpbmcgb3B0aW9uCisgICAgYm9vbGVhbiBpZ25vcmVDYXNlOworCisgICAgLyoqCisgICAgICogSW5uZXIgY2xhc3MgcmVwcmVzZW50aW5nIGEgY2hhcmFjdGVyIG5vZGUgaW4gdGhlIHRyaWUuCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBDaGFyYWN0ZXJOb2RlIHsKKyAgICAgICAgaW50IGNoYXJhY3RlcjsKKyAgICAgICAgTGlzdCBjaGlsZHJlbjsKKyAgICAgICAgT2JqZWN0IG9iajsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIG5vZGUgZm9yIHRoZSBjaGFyYWN0ZXIuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENoYXJhY3Rlck5vZGUoaW50IGNoKSB7CisgICAgICAgICAgICBjaGFyYWN0ZXIgPSBjaDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbm9kZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlcgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRDaGFyYWN0ZXIoKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIG9iamVjdCB0byB0aGUgbm9kZS4gIE9ubHkgYSBsZWFmIG5vZGUgaGFzCisgICAgICAgICAqIHRoZSByZWZlcmVuY2Ugb2YgYW4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIGtleS4KKyAgICAgICAgICogCisgICAgICAgICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCBzZXQgaW4gdGhlIGxlYWYgbm9kZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldE9iamVjdChPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICB0aGlzLm9iaiA9IG9iajsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBvYmplY3QgYXNzb2NpYXRlZCB0aGUgbGVhZiBub2RlLgorICAgICAgICAgKiAKKyAgICAgICAgICogQHJldHVybiBUaGUgb2JqZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRPYmplY3QoKSB7CisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgYSBjaGlsZCBub2RlIGZvciB0aGUgY2hhcmFjZXIgdW5kZXIgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICogbm9kZSBpbiB0aGUgdHJpZS4gIFdoZW4gdGhlIG1hdGNoaW5nIGNoaWxkIG5vZGUgYWxyZWFkeQorICAgICAgICAgKiBleGlzdHMsIHRoZSByZWZlcmVuY2Ugb2YgdGhlIGV4aXN0aW5nIGNoaWxkIG5vZGUgaXMKKyAgICAgICAgICogcmV0dXJuZWQuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciBhc3NvY2lhdGVkIHdpdGggYSBjaGlsZCBub2RlLgorICAgICAgICAgKiBAcmV0dXJuIFRoZSBjaGlsZCBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENoYXJhY3Rlck5vZGUgYWRkQ2hpbGROb2RlKGludCBjaCkgeworICAgICAgICAgICAgaWYgKGNoaWxkcmVuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBDaGFyYWN0ZXJOb2RlIG5ld05vZGUgPSBuZXcgQ2hhcmFjdGVyTm9kZShjaCk7CisgICAgICAgICAgICAgICAgY2hpbGRyZW4uYWRkKG5ld05vZGUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXdOb2RlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ2hhcmFjdGVyTm9kZSBub2RlID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBDaGFyYWN0ZXJOb2RlIGN1ciA9IChDaGFyYWN0ZXJOb2RlKWNoaWxkcmVuLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoY29tcGFyZShjaCwgY3VyLmdldENoYXJhY3RlcigpKSkgeworICAgICAgICAgICAgICAgICAgICBub2RlID0gY3VyOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobm9kZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbm9kZSA9IG5ldyBDaGFyYWN0ZXJOb2RlKGNoKTsKKyAgICAgICAgICAgICAgICBjaGlsZHJlbi5hZGQobm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGNoaWxkIG5vZGVzIHVuZGVyIHRoaXMgbm9kZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEByZXR1cm4gVGhlIGxpc3Qgb2YgY2hpbGQgbm9kZXMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTGlzdCBnZXRDaGlsZE5vZGVzKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UaW1lWm9uZUFkYXB0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWQwYjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE9jdG9iZXIgMiAyMDAzCisqIFNpbmNlOiBJQ1UgMi44CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogPGNvZGU+VGltZVpvbmVBZGFwdGVyPC9jb2RlPiB3cmFwcyBhIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAqIHN1YmNsYXNzIHRoYXQgaXMgTk9UIGEgSkRLVGltZVpvbmUsIHRoYXQgaXMsIHRoYXQgZG9lcyBub3QgaXRzZWxmCisgKiB3cmFwIGEgamF2YS51dGlsLlRpbWVab25lLiAgSXQgaW5oZXJpdHMgZnJvbSBqYXZhLnV0aWwuVGltZVpvbmUuCisgKiBXaXRob3V0IHRoaXMgY2xhc3MsIHdlIHdvdWxkIG5lZWQgdG8gJ3BvcnQnIGphdmEudXRpbC5EYXRlIHRvCisgKiBjb20uaWJtLmljdS51dGlsIGFzIHdlbGwsIHNvIHRoYXQgRGF0ZSBjb3VsZCBpbnRlcm9wZXJhdGUgcHJvcGVybHkKKyAqIHdpdGggdGhlIGNvbS5pYm0uaWN1LnV0aWwgVGltZVpvbmUgYW5kIENhbGVuZGFyIGNsYXNzZXMuICBXaXRoIHRoaXMKKyAqIGNsYXNzLCB3ZSBjYW4gdXNlIGphdmEudXRpbC5EYXRlIHRvZ2V0aGVyIHdpdGggY29tLmlibS5pY3UudXRpbAorICogY2xhc3Nlcy4KKyAqCisgKiBUaGUgY29tcGxlbWVudCBvZiB0aGlzIGlzIEpES1RpbWVab25lLCB3aGljaCBtYWtlcyBhCisgKiBqYXZhLnV0aWwuVGltZVpvbmUgbG9vayBsaWtlIGEgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSNzZXREZWZhdWx0CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgVGltZVpvbmVBZGFwdGVyIGV4dGVuZHMgamF2YS51dGlsLlRpbWVab25lIHsKKyAKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0yMDQwMDcyMjE4ODIwMDE4NTU3TDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29udGFpbmVkIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgb2JqZWN0LiAgTXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKiBXZSBkZWxlZ2F0ZSBhbGwgbWV0aG9kcyB0byB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRpbWVab25lIHpvbmU7CisgICAgCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBqYXZhLnV0aWwuVGltZVpvbmUsIHdyYXAgaXQgaW4gdGhlIGFwcHJvcHJpYXRlIGFkYXB0ZXIKKyAgICAgKiBzdWJjbGFzcyBvZiBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIGFuZCByZXR1cm4gdGhlIGFkYXB0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuVGltZVpvbmUgd3JhcChjb20uaWJtLmljdS51dGlsLlRpbWVab25lIHR6KSB7CisgICAgICAgIHJldHVybiBuZXcgVGltZVpvbmVBZGFwdGVyKHR6KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGphdmEudXRpbC5UaW1lWm9uZSB3cmFwcGVkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIHVud3JhcCgpIHsKKyAgICAgICAgcmV0dXJuIHpvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBhZGFwdGVyIGZvciBhIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgb2JqZWN0LgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZUFkYXB0ZXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzLnpvbmUgPSB6b25lOworICAgICAgICBzdXBlci5zZXRJRCh6b25lLmdldElEKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworICAgICAgICB6b25lLnNldElEKElEKTsKKyAgICB9ICAgIAorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVSdWxlcyhqYXZhLnV0aWwuVGltZVpvbmUgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIG90aGVyIGluc3RhbmNlb2YgVGltZVpvbmVBZGFwdGVyICYmCisgICAgICAgICAgICB6b25lLmhhc1NhbWVSdWxlcygoKFRpbWVab25lQWRhcHRlcilvdGhlcikuem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbGxpcykgeworICAgICAgICByZXR1cm4gem9uZS5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICByZXR1cm4gem9uZS5nZXRSYXdPZmZzZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmF3T2Zmc2V0KGludCBvZmZzZXRNaWxsaXMpIHsKKyAgICAgICAgem9uZS5zZXRSYXdPZmZzZXQob2Zmc2V0TWlsbGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeworICAgICAgICByZXR1cm4gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKSB7CisgICAgICAgIHJldHVybiB6b25lLmluRGF5bGlnaHRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lQWRhcHRlcigoVGltZVpvbmUpem9uZS5jbG9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiB6b25lLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBUaW1lWm9uZUFkYXB0ZXIpIHsKKyAgICAgICAgICAgIG9iaiA9ICgoVGltZVpvbmVBZGFwdGVyKSBvYmopLnpvbmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHpvbmUuZXF1YWxzKG9iaik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIlRpbWVab25lQWRhcHRlcjogIiArIHpvbmUudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmUxMWEzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWUuamF2YQpAQCAtMCwwICsxLDQ4MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKKy8qKgorICogPHA+QSB0cmllIGlzIGEga2luZCBvZiBjb21wcmVzc2VkLCBzZXJpYWxpemFibGUgdGFibGUgb2YgdmFsdWVzIAorICogYXNzb2NpYXRlZCB3aXRoIFVuaWNvZGUgY29kZSBwb2ludHMgKDAuLjB4MTBmZmZmKS48L3A+CisgKiA8cD5UaGlzIGNsYXNzIGRlZmluZXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIHRyaWUgYW5kIHByb3ZpZGVzIG1ldGhvZHMgCisgKiB0byA8Yj5yZXRyaWV2ZSB0aGUgb2Zmc2V0cyB0byB0aGUgYWN0dWFsIGRhdGE8L2I+LjwvcD4KKyAqIDxwPkRhdGEgd2lsbCBiZSB0aGUgZm9ybSBvZiBhbiBhcnJheSBvZiBiYXNpYyB0eXBlcywgY2hhciBvciBpbnQuPC9wPgorICogPHA+VGhlIGFjdHVhbCBkYXRhIGZvcm1hdCB3aWxsIGhhdmUgdG8gYmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyIGluIHRoZQorICogaW5uZXIgc3RhdGljIGludGVyZmFjZSBjb20uaWJtLmljdS5pbXBsLlRyaWUuRGF0YU1hbmlwdWxhdGUuPC9wPgorICogPHA+VGhpcyB0cmllIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBmb3IgZ2V0dGluZyBvZmZzZXQgd2hpbGUgd2Fsa2luZworICogZm9yd2FyZCB0aHJvdWdoIGEgVVRGLTE2IHN0cmluZy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2VzcyBtYWNyb3MgYXJlIHRoZQorICogZnJvbUxlYWQoKSBhbmQgZnJvbU9mZnNldFRyYWlsKCkgbWV0aG9kcy4KKyAqIFRoZSBmcm9tQk1QKCkgbWV0aG9kIGFyZSBhIGxpdHRsZSBtb3JlIGNvbXBsaWNhdGVkOyB0aGV5IGdldCBvZmZzZXRzIGV2ZW4KKyAqIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlcG9pbnRzLCB3aGlsZSB0aGUgZnJvbUxlYWQoKSBtZXRob2QgZ2V0IHNwZWNpYWwKKyAqICJmb2xkZWQiIG9mZnNldHMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9tIHN1Y2ggYSBmb2xkZWQgb2Zmc2V0cywgYW4gb2Zmc2V0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZCB0byBzdXBwbHkKKyAqIHRvIHRoZSBmcm9tT2Zmc2V0VHJhaWwoKSBtZXRob2RzLgorICogVG8gaGFuZGxlIHN1Y2ggc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzLCBzb21lIG9mZnNldCBpbmZvcm1hdGlvbiBhcmUga2VwdAorICogaW4gdGhlIGRhdGEuPC9wPgorICogPHA+TWV0aG9kcyBpbiBjb20uaWJtLmljdS5pbXBsLlRyaWUuRGF0YU1hbmlwdWxhdGUgYXJlIGNhbGxlZCB0byByZXRyaWV2ZSAKKyAqIHRoYXQgb2Zmc2V0IGZyb20gdGhlIGZvbGRlZCB2YWx1ZSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlIHVuaXQuPC9wPgorICogPHA+Rm9yIGV4YW1wbGVzIG9mIHVzZSwgc2VlIGNvbS5pYm0uaWN1LmltcGwuQ2hhclRyaWUgb3IgCisgKiBjb20uaWJtLmljdS5pbXBsLkludFRyaWUuPC9wPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZQorICogQHNlZSBjb20uaWJtLmljdS5pbXBsLkludFRyaWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDAxIDIwMDIKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFRyaWUKK3sKKyAgICAvLyBwdWJsaWMgY2xhc3MgZGVjbGFyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQ2hhcmFjdGVyIGRhdGEgaW4gY29tLmlibS5pbXBsLlRyaWUgaGF2ZSBkaWZmZXJlbnQgdXNlci1zcGVjaWZpZWQgZm9ybWF0CisgICAgKiBmb3IgZGlmZmVyZW50IHB1cnBvc2VzLgorICAgICogVGhpcyBpbnRlcmZhY2Ugc3BlY2lmaWVzIG1ldGhvZHMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gb3JkZXIgZm9yCisgICAgKiBjb20uaWJtLmltcGwuVHJpZSwgdG8gc3Vycm9nYXRlIG9mZnNldCBpbmZvcm1hdGlvbiBlbmNhcHN1bGF0ZWQgd2l0aGluIAorICAgICogdGhlIGRhdGEuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBEYXRhTWFuaXB1bGF0ZQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIGJ5IGNvbS5pYm0uaWN1LmltcGwuVHJpZSB0byBleHRyYWN0IGZyb20gYSBsZWFkIHN1cnJvZ2F0ZSdzIAorICAgICAgICAqIGRhdGEKKyAgICAgICAgKiB0aGUgaW5kZXggYXJyYXkgb2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICAgICAgICAqIEBwYXJhbSB2YWx1ZSBkYXRhIHZhbHVlIGZvciBhIHN1cnJvZ2F0ZSBmcm9tIHRoZSB0cmllLCBpbmNsdWRpbmcgdGhlCisgICAgICAgICogICAgICAgIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqIEBkcmFmdCAyLjEKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSk7IAorICAgIH0KKworICAgIC8vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBEZWZhdWx0R2V0Rm9sZGluZ09mZnNldCBpbXBsZW1lbnRzIERhdGFNYW5pcHVsYXRlIHsKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHRyaWUgaGFzIGEgbGluZWFyIGxhdGluIDEgYXJyYXkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB0cmllIGhhcyBhIGxpbmVhciBsYXRpbiAxIGFycmF5LCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0xhdGluMUxpbmVhcigpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc0xhdGluMUxpbmVhcl87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgVHJpZSBoYXMgdGhlIHNhbWUgZGF0YSBhcyB0aGlzIFRyaWUuCisgICAgICogQXR0cmlidXRlcyBhcmUgY2hlY2tlZCBidXQgbm90IHRoZSBpbmRleCBkYXRhLgorICAgICAqIEBwYXJhbSBvdGhlciBUcmllIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZSwgZmFsc2UKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSAKKyAgICB7CisgICAgICAgIGlmIChvdGhlciA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFRyaWUpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgVHJpZSBvdGhlcnRyaWUgPSAoVHJpZSlvdGhlcjsKKyAgICAgICAgcmV0dXJuIG1faXNMYXRpbjFMaW5lYXJfID09IG90aGVydHJpZS5tX2lzTGF0aW4xTGluZWFyXworICAgICAgICAgICAgICAgJiYgbV9vcHRpb25zXyA9PSBvdGhlcnRyaWUubV9vcHRpb25zXworICAgICAgICAgICAgICAgJiYgbV9kYXRhTGVuZ3RoXyA9PSBvdGhlcnRyaWUubV9kYXRhTGVuZ3RoXworICAgICAgICAgICAgICAgJiYgQXJyYXlzLmVxdWFscyhtX2luZGV4Xywgb3RoZXJ0cmllLm1faW5kZXhfKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2VyaWFsaXplZCBkYXRhIGZpbGUgc2l6ZSBvZiB0aGUgVHJpZS4gVGhpcyBpcyB1c2VkIGR1cmluZyAKKyAgICAgKiB0cmllIGRhdGEgcmVhZGluZyBmb3Igc2l6ZSBjaGVja2luZyBwdXJwb3Nlcy4gCisgICAgICogQHJldHVybiBzaXplIHNpemUgb2Ygc2VyaWFsaXplZCB0cmllIGRhdGEgZmlsZSBpbiB0ZXJtcyBvZiB0aGUgbnVtYmVyCisgICAgICogICAgICAgICAgICAgIG9mIGJ5dGVzCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZXJpYWxpemVkRGF0YVNpemUoKQorICAgIHsKKyAgICAgICAgLy8gaW5jbHVkZXMgc2lnbmF0dXJlLCBvcHRpb24sIGRhdGFvZmZzZXQgYW5kIGRhdGFsZW5ndGggb3V0cHV0CisgICAgICAgIGludCByZXN1bHQgPSAoNCA8PCAyKTsKKyAgICAgICAgcmVzdWx0ICs9IChtX2RhdGFPZmZzZXRfIDw8IDEpOworICAgICAgICBpZiAoaXNDaGFyVHJpZSgpKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gKG1fZGF0YUxlbmd0aF8gPDwgMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaXNJbnRUcmllKCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSAobV9kYXRhTGVuZ3RoXyA8PCAyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIFRyaWUgY29uc3RydWN0b3IgZm9yIENoYXJUcmllIHVzZS4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbSB3aGljaCBjb250YWlucyB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgdHJpZQorICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbiB0byBwYXJzZSB0aGUgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgdHJpZSBkYXRhCisgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGlucHV0IHN0cmVhbSBkb2VzIG5vdCBoYXZlIHRoZQorICAgICogICAgICAgICAgICAgICAgICAgICAgICByaWdodCBoZWFkZXIuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVHJpZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSwgCisgICAgICAgICAgICAgICAgICAgRGF0YU1hbmlwdWxhdGUgIGRhdGFNYW5pcHVsYXRlKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAvLyBNYWdpYyBudW1iZXIgdG8gYXV0aGVudGljYXRlIHRoZSBkYXRhLgorICAgICAgICBpbnQgc2lnbmF0dXJlID0gaW5wdXQucmVhZEludCgpOworICAgICAgICBtX29wdGlvbnNfICAgID0gaW5wdXQucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgaWYgKCFjaGVja0hlYWRlcihzaWduYXR1cmUpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJQ1UgZGF0YSBmaWxlIGVycm9yOiBUcmllIGhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQsIHBsZWFzZSBjaGVjayBpZiB5b3UgaGF2ZSB0aGUgbW9zdCB1cGRhdGVkIElDVSBkYXRhIGZpbGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGRhdGFNYW5pcHVsYXRlICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1fZGF0YU1hbmlwdWxhdGVfID0gZGF0YU1hbmlwdWxhdGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2RhdGFNYW5pcHVsYXRlXyA9IG5ldyBEZWZhdWx0R2V0Rm9sZGluZ09mZnNldCgpOworICAgICAgICB9CisgICAgICAgIG1faXNMYXRpbjFMaW5lYXJfID0gKG1fb3B0aW9uc18gJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfKSAhPSAwOworICAgICAgICBtX2RhdGFPZmZzZXRfICAgICA9IGlucHV0LnJlYWRJbnQoKTsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyAgICAgPSBpbnB1dC5yZWFkSW50KCk7CisgICAgICAgIHVuc2VyaWFsaXplKGlucHV0U3RyZWFtKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBUcmllIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gaW5kZXggYXJyYXkgdG8gYmUgdXNlZCBmb3IgaW5kZXgKKyAgICAqIEBwYXJhbSBvcHRpb25zIHVzZWQgYnkgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSBvYmplY3QgY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gdG8gcGFyc2UgdGhlIAorICAgICogICAgICAgICAgICAgICAgICAgICAgIHRyaWUgZGF0YQorICAgICogQGRyYWZ0IDIuMgorICAgICovCisgICAgcHJvdGVjdGVkIFRyaWUoY2hhciBpbmRleFtdLCBpbnQgb3B0aW9ucywgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpCisgICAgeworICAgICAgICBtX29wdGlvbnNfID0gb3B0aW9uczsKKyAgICAgICAgaWYoZGF0YU1hbmlwdWxhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgbV9kYXRhTWFuaXB1bGF0ZV8gPSBkYXRhTWFuaXB1bGF0ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fZGF0YU1hbmlwdWxhdGVfID0gbmV3IERlZmF1bHRHZXRGb2xkaW5nT2Zmc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSAobV9vcHRpb25zXyAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18pICE9IDA7CisgICAgICAgIG1faW5kZXhfID0gaW5kZXg7CisgICAgICAgIG1fZGF0YU9mZnNldF8gPSBtX2luZGV4Xy5sZW5ndGg7CisgICAgfQorCisKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cycgaW5kZXggZGlzcGxhY2VtZW50IGluIHRoZSBpbmRleCBhcnJheS4KKyAgICAqIDB4MTAwMDAtMHhkODAwPTB4MjgwMAorICAgICogMHgyODAwID4+IElOREVYX1NUQUdFXzFfU0hJRlRfCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBMRUFEX0lOREVYX09GRlNFVF8gPSAweDI4MDAgPj4gNTsKKyAgICAvKioKKyAgICAqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRoZSBpbnB1dCBpbmRleC4gMS4uOQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU1RBR0VfMV9TSElGVF8gPSA1OworICAgIC8qKgorICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgbGVmdCB0aGUgaW5kZXggYXJyYXkgdmFsdWVzLgorICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAqIG9mIGNvbXBhY3RhYmlsaXR5LgorICAgICogVGhpcyByZXF1aXJlcyBibG9ja3Mgb2Ygc3RhZ2UgMiBkYXRhIHRvIGJlIGFsaWduZWQgYnkKKyAgICAqIERBVEFfR1JBTlVMQVJJVFkuCisgICAgKiAwLi5JTkRFWF9TVEFHRV8xX1NISUZUCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TVEFHRV8yX1NISUZUXyA9IDI7CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxvY2suCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CTE9DS19MRU5HVEg9MTw8SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgKiBNYXNrIGZvciBnZXR0aW5nIHRoZSBsb3dlciBiaXRzIGZyb20gdGhlIGlucHV0IGluZGV4LgorICAgICogREFUQV9CTE9DS19MRU5HVEggLSAxLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU1RBR0VfM19NQVNLXyA9IERBVEFfQkxPQ0tfTEVOR1RIIC0gMTsKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9CTE9DS19CSVRTPTEwLUlOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBwZXIgbGVhZCBzdXJyb2dhdGUuCisgICAgICogU2FtZSBhcyBudW1iZXIgb2YgaW5kZXggZW50cmllcyBmb3IgMTAyNCB0cmFpbCBzdXJyb2dhdGVzLAorICAgICAqID09MHg0MDA+PklOREVYX1NUQUdFXzFfU0hJRlRfCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0JMT0NLX0NPVU5UPSgxPDxTVVJST0dBVEVfQkxPQ0tfQklUUyk7CisgICAgLyoqIExlbmd0aCBvZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCTVBfSU5ERVhfTEVOR1RIPTB4MTAwMDA+PklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICogU3Vycm9nYXRlIG1hc2sgdG8gdXNlIHdoZW4gc2hpZnRpbmcgb2Zmc2V0IHRvIHJldHJpZXZlIHN1cHBsZW1lbnRhcnkKKyAgICAqIHZhbHVlcworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX01BU0tfID0gMHgzRkY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogSW5kZXggb3IgVVRGMTYgY2hhcmFjdGVycworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGNoYXIgbV9pbmRleF9bXTsKKyAgICAvKioKKyAgICAqIEludGVybmFsIFRyaWVWYWx1ZSB3aGljaCBoYW5kbGVzIHRoZSBwYXJzaW5nIG9mIHRoZSBkYXRhIHZhbHVlLgorICAgICogVGhpcyBjbGFzcyBpcyB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgdXNlcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIERhdGFNYW5pcHVsYXRlIG1fZGF0YU1hbmlwdWxhdGVfOworICAgIC8qKgorICAgICogU3RhcnQgaW5kZXggb2YgdGhlIGRhdGEgcG9ydGlvbiBvZiB0aGUgdHJpZS4gQ2hhclRyaWUgY29tYmluZXMgCisgICAgKiBpbmRleCBhbmQgZGF0YSBpbnRvIGEgY2hhciBhcnJheSwgc28gdGhpcyBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSAKKyAgICAqIGluaXRpYWwgb2Zmc2V0IHRvIHRoZSBkYXRhIHBvcnRpb24uCisgICAgKiBOb3RlIHRoaXMgaW5kZXggYWx3YXlzIHBvaW50cyB0byB0aGUgaW5pdGlhbCB2YWx1ZS4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhT2Zmc2V0XzsKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiB0aGUgZGF0YSBhcnJheSAKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhTGVuZ3RoXzsKKyAgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKTsKKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGF0IHRoZSBhcmd1bWVudCBpbmRleAorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICogR2V0cyB0aGUgZGVmYXVsdCBpbml0aWFsIHZhbHVlCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0SW5pdGlhbFZhbHVlKCk7CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhlIGluZGV4IGNoIGFmdGVyIHZhcmlhYmxlIG9mZnNldAorICAgICogcG9pbnRzIHRvLgorICAgICogTm90ZSBmb3IgbG9jYXRpbmcgYSBub24tc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgZGF0YSBvZmZzZXQsIGNhbGxpbmcKKyAgICAqIDxwPgorICAgICogZ2V0UmF3T2Zmc2V0KDAsIGNoKTsKKyAgICAqIDwvcD4KKyAgICAqIHdpbGwgZG8uIE90aGVyd2lzZSBpZiBpdCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGZvcm1lZCBieQorICAgICogc3Vycm9nYXRlcyBsZWFkIGFuZCB0cmFpbC4gVGhlbiB3ZSB3b3VsZCBoYXZlIHRvIGNhbGwgZ2V0UmF3T2Zmc2V0KCkKKyAgICAqIHdpdGggZ2V0Rm9sZGluZ0luZGV4T2Zmc2V0KCkuIFNlZSBnZXRTdXJyb2dhdGVPZmZzZXQoKS4KKyAgICAqIEBwYXJhbSBvZmZzZXQgaW5kZXggb2Zmc2V0IHdoaWNoIGNoIGlzIHRvIHN0YXJ0IGZyb20KKyAgICAqIEBwYXJhbSBjaCBpbmRleCB0byBiZSB1c2VkIGFmdGVyIG9mZnNldAorICAgICogQHJldHVybiBvZmZzZXQgdG8gdGhlIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0UmF3T2Zmc2V0KGludCBvZmZzZXQsIGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKG1faW5kZXhfW29mZnNldCArIChjaCA+PiBJTkRFWF9TVEFHRV8xX1NISUZUXyldIAorICAgICAgICAgICAgICAgIDw8IElOREVYX1NUQUdFXzJfU0hJRlRfKSAKKyAgICAgICAgICAgICAgICArIChjaCAmIElOREVYX1NUQUdFXzNfTUFTS18pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byBkYXRhIHdoaWNoIHRoZSBCTVAgY2hhcmFjdGVyIHBvaW50cyB0bworICAgICogVHJlYXRzIGEgbGVhZCBzdXJyb2dhdGUgYXMgYSBub3JtYWwgY29kZSBwb2ludC4KKyAgICAqIEBwYXJhbSBjaCBCTVAgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEJNUE9mZnNldChjaGFyIGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjaCA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgCisgICAgICAgICAgICAgICAgJiYgY2ggPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSAKKyAgICAgICAgICAgICAgICA/IGdldFJhd09mZnNldChMRUFEX0lOREVYX09GRlNFVF8sIGNoKQorICAgICAgICAgICAgICAgIDogZ2V0UmF3T2Zmc2V0KDAsIGNoKTsgCisgICAgICAgICAgICAgICAgLy8gdXNpbmcgYSBnZXRSYXdPZmZzZXQoY2gpIG1ha2VzIG5vIGRpZmYKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byB0aGUgZGF0YSB3aGljaCB0aGlzIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciBwb2ludHMKKyAgICAqIHRvLgorICAgICogRGF0YSBhdCB0aGUgcmV0dXJuZWQgb2Zmc2V0IG1heSBjb250YWluIGZvbGRpbmcgb2Zmc2V0IGluZm9ybWF0aW9uIGZvcgorICAgICogdGhlIG5leHQgdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIEBwYXJhbSBjaCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0TGVhZE9mZnNldChjaGFyIGNoKQorICAgIHsKKyAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KDAsIGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50LgorICAgICogQ291bGQgYmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICAgICogICBpZigoYzMyKTw9MHhkN2ZmKSB7IChyZXN1bHQpPV9UUklFX0dFVF9SQVcodHJpZSwgZGF0YSwgMCwgYzMyKTsgfQorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIGRhdGEgd2hpY2ggdGhlIGNvZGVwb2ludCBwb2ludHMgdG8KKyAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0Q29kZVBvaW50T2Zmc2V0KGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGlmICgoY2ggPj4gMTYpID09IDApIHNsb3dlcgorICAgICAgICBpZiAoY2ggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGZhc3RwYXRoIGZvciB0aGUgcGFydCBvZiB0aGUgQk1QIGJlbG93IHN1cnJvZ2F0ZXMgKEQ4MDApIHdoZXJlIGdldFJhd09mZnNldCgpIHdvcmtzCisgICAgICAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KDAsIChjaGFyKWNoKTsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA8IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBCTVAgY29kZXBvaW50CisgICAgICAgICAgICByZXR1cm4gZ2V0Qk1QT2Zmc2V0KChjaGFyKWNoKTsgCisgICAgICAgIH0gZWxzZSBpZiAoY2ggPD0gVUNoYXJhY3Rlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGxvb2sgYXQgdGhlIGNvbnN0cnVjdGlvbiBvZiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHRyYWlsIGZvcm1zIHRoZSBlbmRzIG9mIGl0LgorICAgICAgICAgICAgcmV0dXJuIGdldFN1cnJvZ2F0ZU9mZnNldChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShjaCAmIFNVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gcmV0dXJuIC0xIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIAorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiA8cD5QYXJzZXMgdGhlIGlucHV0c3RyZWFtIGFuZCBjcmVhdGVzIHRoZSB0cmllIGluZGV4IHdpdGggaXQuPC9wPgorICAgICogPHA+VGhpcyBpcyBvdmVyd3JpdHRlbiBieSB0aGUgY2hpbGQgY2xhc3Nlcy4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0aGUgdHJpZSBpbmZvcm1hdGlvbgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB1bnNlcmlhbGl6ZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvL2luZGV4TGVuZ3RoIGlzIGEgbXVsdGlwbGUgb2YgMTAyNCA+PiBJTkRFWF9TVEFHRV8yX1NISUZUXworICAgICAgICBtX2luZGV4XyAgICAgICAgICAgICAgPSBuZXcgY2hhclttX2RhdGFPZmZzZXRfXTsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9kYXRhT2Zmc2V0XzsgaSArKykgeworICAgICAgICAgICAgIG1faW5kZXhfW2ldID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIGlzIGEgMzIgYml0IHRyaWUKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBvcHRpb25zIHNwZWNpZmllcyB0aGlzIGlzIGEgMzIgYml0IHRyaWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIGlzSW50VHJpZSgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fb3B0aW9uc18gJiBIRUFERVJfT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8pICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoaXMgaXMgYSAxNiBiaXQgdHJpZQorICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaXMgYSAxNiBiaXQgdHJpZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gaXNDaGFyVHJpZSgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fb3B0aW9uc18gJiBIRUFERVJfT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8pID09IDA7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vICBzdHJ1Y3QgVVRyaWVIZWFkZXIgeworICAgIC8vICAgICAgaW50MzJfdCAgIHNpZ25hdHVyZTsKKyAgICAvLyAgICAgIGludDMyX3QgICBvcHRpb25zICAoYSBiaXQgZmllbGQpCisgICAgLy8gICAgICBpbnQzMl90ICAgaW5kZXhMZW5ndGgKKyAgICAvLyAgICAgIGludDMyX3QgICBkYXRhTGVuZ3RoCisKKyAgICAvKioKKyAgICAqIFNpemUgb2YgVHJpZSBoZWFkZXIgaW4gYnl0ZXMKKyAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9MRU5HVEhfID0gNCAqIDQ7CisgICAgLyoqCisgICAgKiBMYXRpbiAxIG9wdGlvbiBtYXNrCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfID0gMHgyMDA7CisgICAgLyoqCisgICAgKiBDb25zdGFudCBudW1iZXIgdG8gYXV0aGVudGljYXRlIHRoZSBieXRlIGJsb2NrCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBIRUFERVJfU0lHTkFUVVJFXyA9IDB4NTQ3MjY5NjU7CisgICAgLyoqCisgICAgKiBIZWFkZXIgb3B0aW9uIGZvcm1hdHRpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19TSElGVF9NQVNLXyA9IDB4RjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19JTkRFWF9TSElGVF8gPSA0OworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9PUFRJT05TX0RBVEFfSVNfMzJfQklUXyA9IDB4MTAwOworICAgIAorICAgIC8qKgorICAgICogRmxhZyBpbmRpY2F0b3IgZm9yIExhdGluIHF1aWNrIGFjY2VzcyBkYXRhIGJsb2NrCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0xhdGluMUxpbmVhcl87CisgICAgCisgICAgLyoqCisgICAgKiA8cD5UcmllIG9wdGlvbnMgZmllbGQuPC9wPgorICAgICogPHA+b3B0aW9ucyBiaXQgZmllbGQ6PGJyPgorICAgICogOSAgMSA9IExhdGluLTEgZGF0YSBpcyBzdG9yZWQgbGluZWFybHkgYXQgZGF0YSArIERBVEFfQkxPQ0tfTEVOR1RIPGJyPgorICAgICogOCAgMCA9IDE2LWJpdCBkYXRhLCAxPTMyLWJpdCBkYXRhPGJyPgorICAgICogNy4uNCAgSU5ERVhfU1RBR0VfMV9TSElGVCAgIC8vIDAuLklOREVYX1NUQUdFXzJfU0hJRlQ8YnI+CisgICAgKiAzLi4wICBJTkRFWF9TVEFHRV8yX1NISUZUICAgLy8gMS4uOTxicj4KKyAgICAqLworICAgIHByaXZhdGUgaW50IG1fb3B0aW9uc187CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQXV0aGVudGljYXRlcyByYXcgZGF0YSBoZWFkZXIuCisgICAgKiBDaGVja2luZyB0aGUgaGVhZGVyIGluZm9ybWF0aW9uLCBzaWduYXR1cmUgYW5kIG9wdGlvbnMuCisgICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoaXMgY29udGFpbnMgdGhlIG9wdGlvbnMgYW5kIHR5cGUgb2YgYSBUcmllCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGhlYWRlciBpcyBhdXRoZW50aWNhdGVkIHZhbGlkCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tIZWFkZXIoaW50IHNpZ25hdHVyZSkKKyAgICB7CisgICAgICAgIC8vIGNoZWNrIHRoZSBzaWduYXR1cmUKKyAgICAgICAgLy8gVHJpZSBpbiBiaWctZW5kaWFuIFVTLUFTQ0lJICgweDU0NzI2OTY1KS4KKyAgICAgICAgLy8gTWFnaWMgbnVtYmVyIHRvIGF1dGhlbnRpY2F0ZSB0aGUgZGF0YS4KKyAgICAgICAgaWYgKHNpZ25hdHVyZSAhPSBIRUFERVJfU0lHTkFUVVJFXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChtX29wdGlvbnNfICYgSEVBREVSX09QVElPTlNfU0hJRlRfTUFTS18pICE9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYX1NUQUdFXzFfU0hJRlRfIHx8CisgICAgICAgICAgICAoKG1fb3B0aW9uc18gPj4gSEVBREVSX09QVElPTlNfSU5ERVhfU0hJRlRfKSAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfT1BUSU9OU19TSElGVF9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBJTkRFWF9TVEFHRV8yX1NISUZUXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyOGZhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMjYxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworLyoqCisgKiBCdWlsZGVyIGNsYXNzIHRvIG1hbmlwdWxhdGUgYW5kIGdlbmVyYXRlIGEgdHJpZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBJQ1UgZGF0YSBpbiBwcmltaXRpdmUgdHlwZXMuCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlIAorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuIFRoaXMgaXMgCisgKiB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMgc2lnbmlmaWNhbnQgCisgKiB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIAorICogd2hlbiB5b3UgaGF2ZSBhIGxvdCBvZiByZWR1bmRhbmNlLCBzdWNoIGFzIHdoZXJlIGFsbCAyMSwwMDAgSGFuIGlkZW9ncmFwaHMgCisgKiBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYSBoYXNoIHRhYmxlLgorICogQSB0cmllIG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisgKiA8VUwgdHlwZSA9IHJvdW5kPgorICogICAgIDxMST5GYXN0IGFjY2VzcyBvZiB0aGUgaW5kZXhlZCB2YWx1ZXMuCisgKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyAqIDwvVUw+CisgKiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSB0aGUgSUNVNEMgdmVyc2lvbgorICogQGF1dGhvciAgICAgICAgICAgICBTeW4gV2VlIFF1ZWsKKyAqLworcHVibGljIGNsYXNzIFRyaWVCdWlsZGVyCit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIE51bWJlciBvZiBkYXRhIHZhbHVlcyBpbiBhIHN0YWdlIDIgKGRhdGEgYXJyYXkpIGJsb2NrLiAyLCA0LCA4LCAuLiwgCisgICAgICogMHgyMDAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CTE9DS19MRU5HVEggPSAxIDw8IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgCisgICAgLy8gcHVibGljIGNsYXNzIGRlY2xhcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgZGF0YSBpbiBjb20uaWJtLmltcGwuVHJpZSBoYXZlIGRpZmZlcmVudCB1c2VyLXNwZWNpZmllZCBmb3JtYXQKKyAgICAgKiBmb3IgZGlmZmVyZW50IHB1cnBvc2VzLgorICAgICAqIFRoaXMgaW50ZXJmYWNlIHNwZWNpZmllcyBtZXRob2RzIHRvIGJlIGltcGxlbWVudGVkIGluIG9yZGVyIGZvcgorICAgICAqIGNvbS5pYm0uaW1wbC5UcmllLCB0byBzdXJyb2dhdGUgb2Zmc2V0IGluZm9ybWF0aW9uIGVuY2Fwc3VsYXRlZCB3aXRoaW4gCisgICAgICogdGhlIGRhdGEuCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIERhdGFNYW5pcHVsYXRlCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQnVpbGQtdGltZSB0cmllIGNhbGxiYWNrIGZ1bmN0aW9uLCB1c2VkIHdpdGggc2VyaWFsaXplKCkuCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBhIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaW5jbHVkaW5nIGEgCisgICAgICAgICAqIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIDEwMjQgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAKKyAgICAgICAgICogW3N0YXJ0Li5zdGFydCsxMDI0WyAuIAorICAgICAgICAgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3RhcnQmMHgzZmYpPT0wLgorICAgICAgICAgKiBUaGUgZm9sZGluZyBvZmZzZXQgaXMgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4gCisgICAgICAgICAqIEl0IGlzIG9mZnNldD1VVFJJRV9CTVBfSU5ERVhfTEVOR1RIK24qVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UIAorICAgICAgICAgKiB3aXRoIG49MC4uMTAyMy4gCisgICAgICAgICAqIEluc3RlYWQgb2YgdGhlIG9mZnNldCBpdHNlbGYsIG4gY2FuIGJlIHN0b3JlZCBpbiAxMCBiaXRzIC0gb3IgZmV3ZXIgCisgICAgICAgICAqIGlmIGl0IGNhbiBiZSBhc3N1bWVkIHRoYXQgZmV3IGxlYWQgc3Vycm9nYXRlcyBoYXZlIGFzc29jaWF0ZWQgZGF0YS4KKyAgICAgICAgICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAgICAgICAgICogIC0gbm90IHplcm8gaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YSBmb3IgdGhlIAorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgICAgICAgICAqICAtIHN1Y2ggdGhhdCBVVHJpZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCAKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KSk9PW9mZnNldAorICAgICAgICAgKiBAcmV0dXJuIGEgZm9sZGVkIHZhbHVlLCBvciAwIGlmIHRoZXJlIGlzIG5vIHJlbGV2YW50IGRhdGEgZm9yIHRoZSAKKyAgICAgICAgICogICAgICAgICBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGVkVmFsdWUoaW50IHN0YXJ0LCBpbnQgb2Zmc2V0KTsgCisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBjaGFyYWN0ZXIgYmVsb25ncyB0byBhIHplcm8gYmxvY2sgaW4gdGhlIHRyaWUKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB0cnVlIGlmIGNoIGlzIGluIHRoZSB6ZXJvIGJsb2NrCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNJblplcm9CbG9jayhpbnQgY2gpIAorICAgIHsKKyAgICAgICAgLy8gdmFsaWQsIHVuY29tcGFjdGVkIHRyaWUgYW5kIHZhbGlkIGM/CisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXyB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIAorICAgICAgICAgICAgfHwgY2ggPCBVQ2hhcmFjdGVyLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIG1faW5kZXhfW2NoID4+IFNISUZUX10gPT0gMDsKKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgIAorICAgIC8qKgorICAgICAqIEluZGV4IHZhbHVlcyBhdCBidWlsZC10aW1lIGFyZSAzMiBiaXRzIHdpZGUgZm9yIGVhc2llciBwcm9jZXNzaW5nLgorICAgICAqIEJpdCAzMSBpcyBzZXQgaWYgdGhlIGRhdGEgYmxvY2sgaXMgdXNlZCBieSBtdWx0aXBsZSBpbmRleCB2YWx1ZXMgCisgICAgICogKGZyb20gc2V0UmFuZ2UoKSkuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBtX2luZGV4X1tdOworICAgIHByb3RlY3RlZCBpbnQgbV9pbmRleExlbmd0aF87CisgICAgcHJvdGVjdGVkIGludCBtX2RhdGFDYXBhY2l0eV87IAorICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhTGVuZ3RoXzsKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2lzTGF0aW4xTGluZWFyXzsKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2lzQ29tcGFjdGVkXzsKKyAgICAvKioKKyAgICAgKiBNYXAgb2YgYWRqdXN0ZWQgaW5kZXhlcywgdXNlZCBpbiB1dHJpZV9jb21wYWN0KCkuCisgICAgICogTWFwcyBmcm9tIG9yaWdpbmFsIGluZGV4ZXMgdG8gbmV3IG9uZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBtX21hcF9bXTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgcmlnaHQgdGhlIGlucHV0IGluZGV4LiAxLi45IAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNISUZUXyA9IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYmVmb3JlIGZvbGRpbmcuCisgICAgICogTWF4aW11bSBudW1iZXIgb2YgVW5pY29kZSBjb2RlIHBvaW50cyAoMHgxMTAwMDApIHNoaWZ0ZWQgcmlnaHQgYnkgCisgICAgICogU0hJRlQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0lOREVYX0xFTkdUSF8gPSAoMHgxMTAwMDAgPj4gU0hJRlRfKTsKKyAgICAvKiogCisgICAgICogTGVuZ3RoIG9mIHRoZSBCTVAgcG9ydGlvbiBvZiB0aGUgaW5kZXggKHN0YWdlIDEpIGFycmF5LiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCTVBfSU5ERVhfTEVOR1RIXyA9IDB4MTAwMDAgPj4gU0hJRlRfOyAgIAorICAgIC8qKgorICAgICAqIE51bWJlciBvZiBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBwZXIgbGVhZCBzdXJyb2dhdGUuCisgICAgICogU2FtZSBhcyBudW1iZXIgb2YgaW5kZXhlIGVudHJpZXMgZm9yIDEwMjQgdHJhaWwgc3Vycm9nYXRlcywKKyAgICAgKiA9PTB4NDAwPj5VVFJJRV9TSElGVAorICAgICAqIDEwIC0gU0hJRlQgPT0gTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiAKKyAgICAgKiAgICAgICAgICAgICAgIGluZGV4IHRhYmxlIGxvb2t1cHMuIAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9CTE9DS19DT1VOVF8gPSAxIDw8ICgxMCAtIFNISUZUXyk7CisgICAgLyoqCisgICAgICogTWFzayBmb3IgZ2V0dGluZyB0aGUgbG93ZXIgYml0cyBmcm9tIHRoZSBpbnB1dCBpbmRleC4KKyAgICAgKiBEQVRBX0JMT0NLX0xFTkdUSCAtIDEuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS18gPSBUcmllLklOREVYX1NUQUdFXzNfTUFTS187CisgICAgLyoqCisgICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgbGVmdCB0aGUgaW5kZXggYXJyYXkgdmFsdWVzLgorICAgICAqIEluY3JlYXNlcyBwb3NzaWJsZSBkYXRhIHNpemUgd2l0aCAxNi1iaXQgaW5kZXggdmFsdWVzIGF0IHRoZSBjb3N0CisgICAgICogb2YgY29tcGFjdGFiaWxpdHkuCisgICAgICogVGhpcyByZXF1aXJlcyBibG9ja3Mgb2Ygc3RhZ2UgMiBkYXRhIHRvIGJlIGFsaWduZWQgYnkgVVRSSUVfREFUQV9HUkFOVUxBUklUWS4KKyAgICAgKiAwLi5VVFJJRV9TSElGVAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IElOREVYX1NISUZUXyA9IFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF87CisgICAgLyoqCisgICAgICogTWF4aW11bSBsZW5ndGggb2YgdGhlIHJ1bnRpbWUgZGF0YSAoc3RhZ2UgMikgYXJyYXkuCisgICAgICogTGltaXRlZCBieSAxNi1iaXQgaW5kZXggdmFsdWVzIHRoYXQgYXJlIGxlZnQtc2hpZnRlZCBieSBJTkRFWF9TSElGVF8uCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0RBVEFfTEVOR1RIXyA9ICgweDEwMDAwIDw8IElOREVYX1NISUZUXyk7CisgICAgLyoqCisgICAgICogU2hpZnRpbmcgdG8gcG9zaXRpb24gdGhlIGluZGV4IHZhbHVlIGluIG9wdGlvbnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX0lOREVYX1NISUZUXyA9IDQ7CisgICAgLyoqIAorICAgICAqIElmIHNldCwgdGhlbiB0aGUgZGF0YSAoc3RhZ2UgMikgYXJyYXkgaXMgMzIgYml0cyB3aWRlLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX0RBVEFfSVNfMzJfQklUXyA9IDB4MTAwOworICAgIC8qKgorICAgICAqIElmIHNldCwgdGhlbiBMYXRpbi0xIGRhdGEgKGZvciBVKzAwMDAuLlUrMDBmZikgaXMgc3RvcmVkIGluIHRoZSBkYXRhIAorICAgICAqIChzdGFnZSAyKSBhcnJheSBhcyBhIHNpbXBsZSwgbGluZWFyIGFycmF5IGF0IGRhdGEgKyBEQVRBX0JMT0NLX0xFTkdUSC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX0xBVElOMV9JU19MSU5FQVJfID0gMHgyMDA7CisgICAgLyoqIAorICAgICAqIFRoZSBhbGlnbm1lbnQgc2l6ZSBvZiBhIHN0YWdlIDIgZGF0YSBibG9jay4gQWxzbyB0aGUgZ3JhbnVsYXJpdHkgZm9yIAorICAgICAqIGNvbXBhY3Rpb24uIAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IERBVEFfR1JBTlVMQVJJVFlfID0gMSA8PCBJTkRFWF9TSElGVF87CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVHJpZUJ1aWxkZXIoKQorICAgIHsKKyAgICAgICAgbV9pbmRleF8gPSBuZXcgaW50W01BWF9JTkRFWF9MRU5HVEhfXTsKKyAgICAgICAgbV9tYXBfID0gbmV3IGludFtNQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSF8gPj4gU0hJRlRfXTsKKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSBmYWxzZTsKKyAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSBmYWxzZTsKKyAgICAgICAgbV9pbmRleExlbmd0aF8gPSBNQVhfSU5ERVhfTEVOR1RIXzsKKyAgICB9CisgICAgICAgIAorICAgIHByb3RlY3RlZCBUcmllQnVpbGRlcihUcmllQnVpbGRlciB0YWJsZSkKKyAgICB7CisgICAgICAgIG1faW5kZXhfID0gbmV3IGludFtNQVhfSU5ERVhfTEVOR1RIX107CisgICAgICAgIG1faW5kZXhMZW5ndGhfID0gdGFibGUubV9pbmRleExlbmd0aF87CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9pbmRleF8sIDAsIG1faW5kZXhfLCAwLCBtX2luZGV4TGVuZ3RoXyk7CisgICAgICAgIG1fZGF0YUNhcGFjaXR5XyA9IHRhYmxlLm1fZGF0YUNhcGFjaXR5XzsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyA9IHRhYmxlLm1fZGF0YUxlbmd0aF87CisgICAgICAgIG1fbWFwXyA9IG5ldyBpbnRbdGFibGUubV9tYXBfLmxlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9tYXBfLCAwLCBtX21hcF8sIDAsIG1fbWFwXy5sZW5ndGgpOworICAgICAgICBtX2lzTGF0aW4xTGluZWFyXyA9IHRhYmxlLm1faXNMYXRpbjFMaW5lYXJfOworICAgICAgICBtX2lzQ29tcGFjdGVkXyA9IHRhYmxlLm1faXNDb21wYWN0ZWRfOworICAgIH0KKyAgICAgICAgCisgICAgLy8gcHJvdGVjdGVkIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIHNlY3Rpb25zIG9mIGFuIGFycmF5IGZvciBlcXVhbGl0eS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGJvb2xlYW4gZXF1YWxfaW50KGludFtdIGFycmF5LCBpbnQgc3RhcnQxLCBpbnQgc3RhcnQyLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIHdoaWxlKGxlbmd0aD4wICYmIGFycmF5W3N0YXJ0MV09PWFycmF5W3N0YXJ0Ml0pIHsKKyAgICAgICAgICAgICsrc3RhcnQxOworICAgICAgICAgICAgKytzdGFydDI7CisgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGVuZ3RoPT0wOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIHZhbHVlIGluIHRoZSB0cmllIGluZGV4IG1hcCB0byBpbmRpY2F0ZSB3aGljaCBkYXRhIGJsb2NrCisgICAgICogaXMgcmVmZXJlbmNlZCBhbmQgd2hpY2ggb25lIGlzIG5vdC4KKyAgICAgKiB1dHJpZV9jb21wYWN0KCkgd2lsbCByZW1vdmUgZGF0YSBibG9ja3MgdGhhdCBhcmUgbm90IHVzZWQgYXQgYWxsLgorICAgICAqIFNldAorICAgICAqIC0gMCBpZiBpdCBpcyB1c2VkCisgICAgICogLSAtMSBpZiBpdCBpcyBub3QgdXNlZAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGZpbmRVbnVzZWRCbG9ja3MoKSAKKyAgICB7CisgICAgICAgIC8vIGZpbGwgdGhlIGVudGlyZSBtYXAgd2l0aCAibm90IHVzZWQiIAorICAgICAgICBBcnJheXMuZmlsbChtX21hcF8sIDB4ZmYpOworICAgIAorICAgICAgICAvLyBtYXJrIGVhY2ggYmxvY2sgdGhhdCBfaXNfIHVzZWQgd2l0aCAwCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9pbmRleExlbmd0aF87ICsrIGkpIHsKKyAgICAgICAgICAgIG1fbWFwX1tNYXRoLmFicyhtX2luZGV4X1tpXSkgPj4gU0hJRlRfXSA9IDA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gbmV2ZXIgbW92ZSB0aGUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgMAorICAgICAgICBtX21hcF9bMF0gPSAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kcyB0aGUgc2FtZSBpbmRleCBibG9jayBhcyB0aGUgb3RoZXJCbG9jaworICAgICAqIEBwYXJhbSBpbmRleCBhcnJheQorICAgICAqIEBwYXJhbSBpbmRleExlbmd0aCBzaXplIG9mIGluZGV4CisgICAgICogQHBhcmFtIG90aGVyQmxvY2sKKyAgICAgKiBAcmV0dXJuIHNhbWUgaW5kZXggYmxvY2sKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBmaW5kU2FtZUluZGV4QmxvY2soaW50IGluZGV4W10sIGludCBpbmRleExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG90aGVyQmxvY2spIAorICAgIHsKKyAgICAgICAgZm9yIChpbnQgYmxvY2sgPSBCTVBfSU5ERVhfTEVOR1RIXzsgYmxvY2sgPCBpbmRleExlbmd0aDsgCisgICAgICAgICAgICAgYmxvY2sgKz0gU1VSUk9HQVRFX0JMT0NLX0NPVU5UXykgeworICAgICAgICAgICAgaWYoZXF1YWxfaW50KGluZGV4LCBibG9jaywgb3RoZXJCbG9jaywgU1VSUk9HQVRFX0JMT0NLX0NPVU5UXykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4TGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgYnVpbGQtdGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAgICAgKiBUaGUgbWF4aW11bSBsZW5ndGggaXMgMHgxMTAwMDAgKyBEQVRBX0JMT0NLX0xFTkdUSCArIDB4NDAwLgorICAgICAqIChOdW1iZXIgb2YgVW5pY29kZSBjb2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgICAgICogIHBvc3NpYmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4pCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9CVUlMRF9USU1FX0RBVEFfTEVOR1RIXyA9IAorICAgICAgICAweDExMDAwMCArIERBVEFfQkxPQ0tfTEVOR1RIICsgMHg0MDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1ZmQ5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDU0MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CisKKy8qKgorICogPHA+Q2xhc3MgZW5hYmxpbmcgaXRlcmF0aW9uIG9mIHRoZSB2YWx1ZXMgaW4gYSBUcmllLjwvcD4KKyAqIDxwPlJlc3VsdCBvZiBlYWNoIGl0ZXJhdGlvbiBjb250YWlucyB0aGUgaW50ZXJ2YWwgb2YgY29kZXBvaW50cyB0aGF0IGhhdmUKKyAqIHRoZSBzYW1lIHZhbHVlIHR5cGUgYW5kIHRoZSB2YWx1ZSB0eXBlIGl0c2VsZi48L3A+CisgKiA8cD5UaGUgY29tcGFyaXNvbiBvZiBlYWNoIGNvZGVwb2ludCB2YWx1ZSBpcyBkb25lIHZpYSBleHRyYWN0KCksIHdoaWNoIHRoZQorICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLjwvcD4gCisgKiA8cD5NZXRob2QgZXh0cmFjdCgpIGNhbiBiZSBvdmVyd3JpdHRlbiB0byBwZXJmb3JtIG1hbmlwdWxhdGlvbnMgb24gCisgKiBjb2RlcG9pbnQgdmFsdWVzIGluIG9yZGVyIHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQgY29tcGFyaXNvbi48L3A+CisgKiA8cD5UcmllSXRlcmF0b3IgaXMgZGVzaWduZWQgdG8gYmUgYSBnZW5lcmljIGl0ZXJhdG9yIGZvciB0aGUgQ2hhclRyaWUKKyAqIGFuZCB0aGUgSW50VHJpZSwgaGVuY2UgdG8gYWNjb21tb2RhdGUgYm90aCB0eXBlcyBvZiBkYXRhLCB0aGUgcmV0dXJuIAorICogcmVzdWx0IHdpbGwgYmUgaW4gdGVybXMgb2YgaW50ICgzMiBiaXQpIHZhbHVlcy48L3A+CisgKiA8cD5TZWUgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yIGZvciBleGFtcGxlcyBvZiB1c2UuPC9wPgorICogPHA+Tm90ZXMgZm9yIHBvcnRpbmcgdXRyaWVfZW51bSBmcm9tIGljdTRjIHRvIGljdTRqOjxicj4KKyAqIEludGVybmFsbHksIGljdTRjJ3MgdXRyaWVfZW51bSBwZXJmb3JtcyBhbGwgaXRlcmF0aW9ucyBpbiBpdHMgYm9keS4gSW4gSmF2YQorICogc2Vuc2UsIHRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIHBhc3MgYSBvYmplY3Qgd2l0aCBhIGNhbGxiYWNrIGZ1bmN0aW9uIAorICogVVRyaWVFbnVtUmFuZ2UoY29uc3Qgdm9pZCAqY29udGV4dCwgVUNoYXIzMiBzdGFydCwgVUNoYXIzMiBsaW1pdCwgCisgKiB1aW50MzJfdCB2YWx1ZSkgaW50byB1dHJpZV9lbnVtLiB1dHJpZV9lbnVtIHdpbGwgdGhlbiBmaW5kIHJhbmdlcyBvZiAKKyAqIGNvZGVwb2ludHMgd2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyBkZXRlcm1pbmVkIGJ5IAorICogVVRyaWVFbnVtVmFsdWUoY29uc3Qgdm9pZCAqY29udGV4dCwgdWludDMyX3QgdmFsdWUpLiBmb3IgZWFjaCByYW5nZSwgCisgKiB1dHJpZV9lbnVtIGNhbGxzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBwZXJmb3JtIGEgdGFzay4gSW4gdGhpcyB3YXksCisgKiBpY3U0YyBwZXJmb3JtcyB0aGUgaXRlcmF0aW9uIHdpdGhpbiB1dHJpZV9lbnVtLgorICogVG8gZm9sbG93IHRoZSBKREsgbW9kZWwsIGljdTRqIGlzIHNsaWdodGx5IGRpZmZlcmVudCBmcm9tIGljdTRjLgorICogSW5zdGVhZCBvZiByZXF1ZXN0aW5nIHRoZSBjYWxsZXIgdG8gaW1wbGVtZW50IGFuIG9iamVjdCBmb3IgYSBjYWxsYmFjay4KKyAqIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGltcGxlbWVudCBhIHN1YmNsYXNzIG9mIFRyaWVJdGVyYXRvciwgZmxlc2hpbmcgb3V0CisgKiB0aGUgbWV0aG9kIGV4dHJhY3QoaW50KSAoZXF1aXZhbGVudCB0byBVVHJpZUVudW1WYWx1ZSkuIEluZGVwZW5kZW50IG9mIGljdTRqLCAKKyAqIHRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGNvZGUgaGlzIG93biBpdGVyYXRpb24gYW5kIGZsZXNoIG91dCB0aGUgdGFzayAKKyAqIChlcXVpdmFsZW50IHRvIFVUcmllRW51bVJhbmdlKSB0byBiZSBwZXJmb3JtZWQgaW4gdGhlIGl0ZXJhdGlvbiBsb29wLgorICogPC9wPgorICogPHA+VGhlcmUgYXJlIGJhc2ljYWxseSAzIHVzYWdlIHNjZW5hcmlvcyBmb3IgcG9ydGluZzo8L3A+CisgKiA8cD4xKSBVVHJpZUVudW1WYWx1ZSBpcyB0aGUgb25seSBpbXBsZW1lbnRlZCBjYWxsYmFjayB0aGVuIGp1c3QgaW1wbGVtZW50IGEgCisgKiBzdWJjbGFzcyBvZiBUcmllSXRlcmF0b3IgYW5kIG92ZXJyaWRlIHRoZSBleHRyYWN0KGludCkgbWV0aG9kLiBUaGUgCisgKiBleHRyYWN0KGludCkgbWV0aG9kIGlzIGFuYWxvZ3VzIHRvIFVUcmllRW51bVZhbHVlIGNhbGxiYWNrLgorICogPC9wPgorICogPHA+MikgVVRyaWVFbnVtVmFsdWUgYW5kIFVUcmllRW51bVJhbmdlIGJvdGggYXJlIGltcGxlbWVudGVkIHRoZW4gaW1wbGVtZW50IAorICogYSBzdWJjbGFzcyBvZiBUcmllSXRlcmF0b3IsIG92ZXJyaWRlIHRoZSBleHRyYWN0IG1ldGhvZCBhbmQgaXRlcmF0ZSwgZS5nCisgKiA8L3A+CisgKiA8cD51dHJpZV9lbnVtKCZub3JtVHJpZSwgX2VudW1Qcm9wZXJ0eVN0YXJ0c1ZhbHVlLCBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UsIAorICogICAgICAgICAgICAgICBzZXQpOzxicj4KKyAqIEluIEphdmEgOjxicj4KKyAqIDxwcmU+CisgKiBjbGFzcyBUcmllSXRlcmF0b3JJbXBsIGV4dGVuZHMgVHJpZUl0ZXJhdG9yeworICogICAgIHB1YmxpYyBUcmllSXRlcmF0b3JJbXBsKFRyaWUgZGF0YSl7CisgKiAgICAgICAgIHN1cGVyKGRhdGEpOworICogICAgIH0KKyAqICAgICBwdWJsaWMgaW50IGV4dHJhY3QoaW50IHZhbHVlKXsKKyAqICAgICAgICAgLy8gcG9ydCB0aGUgaW1wbGVtZW50YXRpb24gb2YgX2VudW1Qcm9wZXJ0eVN0YXJ0c1ZhbHVlIGhlcmUKKyAqICAgICB9CisgKiB9CisgKiAuLi4uIAorICogVHJpZUl0ZXJhdG9yIGZjZEl0ZXIgID0gbmV3IFRyaWVJdGVyYXRvckltcGwoZmNkVHJpZUltcGwuZmNkVHJpZSk7CisgKiB3aGlsZShmY2RJdGVyLm5leHQocmVzdWx0KSkgeworICogICAgIC8vIHBvcnQgdGhlIGltcGxlbWVudGF0aW9uIG9mIF9lbnVtUHJvcGVydHlTdGFydHNSYW5nZQorICogfQorICogPC9wcmU+CisgKiA8L3A+CisgKiA8cD4zKSBVVHJpZUVudW1SYW5nZSBpcyB0aGUgb25seSBpbXBsZW1lbnRlZCBjYWxsYmFjayB0aGVuIGp1c3QgaW1wbGVtZW50IAorICogdGhlIHdoaWxlIGxvb3AsIHdoZW4gdXRyaWVfZW51bSBpcyBjYWxsZWQKKyAqIDxwcmU+CisgKiAvLyB1dHJpZV9lbnVtKCZmY2RUcmllLCBOVUxMLCBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UsIHNldCk7CisgKiBUcmllSXRlcmF0b3IgZmNkSXRlciAgPSBuZXcgVHJpZUl0ZXJhdG9yKGZjZFRyaWVJbXBsLmZjZFRyaWUpOworICogd2hpbGUoZmNkSXRlci5uZXh0KHJlc3VsdCkpeworICogICAgIHNldC5hZGQocmVzdWx0LnN0YXJ0KTsKKyAqIH0KKyAqIDwvcD4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuVHJpZQorICogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDE3IDIwMDIKKyAqLworcHVibGljIGNsYXNzIFRyaWVJdGVyYXRvciBpbXBsZW1lbnRzIFJhbmdlVmFsdWVJdGVyYXRvcgorCit7CisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogVHJpZUVudW1lcmF0aW9uIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gdHJpZSB0byBiZSB1c2VkCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvdyB3aGVuIGFyZ3VtZW50IGlzIG51bGwuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgVHJpZUl0ZXJhdG9yKFRyaWUgdHJpZSkKKyAgICB7CisgICAgICAgIGlmICh0cmllID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgdHJpZSBjYW5ub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIG1fdHJpZV8gICAgICAgICAgICAgPSB0cmllOworICAgICAgICAvLyBzeW53ZWU6IGNoZWNrIHRoYXQgZXh0cmFjdCBiZWxvbmdzIHRvIHRoZSBjaGlsZCBjbGFzcworICAgICAgICBtX2luaXRpYWxWYWx1ZV8gICAgID0gZXh0cmFjdChtX3RyaWVfLmdldEluaXRpYWxWYWx1ZSgpKTsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+UmV0dXJucyB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSAKKyAgICAqIG90aGVyd2lzZS48L3A+CisgICAgKiA8cD5UaGUgbmV4dCBzZXQgb2YgY29kZXBvaW50cyB3aXRoIHRoZSBzYW1lIHZhbHVlIHR5cGUgd2lsbCBiZSAKKyAgICAqIGNhbGN1bGF0ZWQgZHVyaW5nIHRoaXMgY2FsbCBhbmQgcmV0dXJuZWQgaW4gdGhlIGFyZ3VlbWVudCBlbGVtZW50LjwvcD4KKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiAtIGlmIG5vIG1vcmUgZWxlbWVudHMgZXhpc3QuCisgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIG5leHQoRWxlbWVudCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG1fbmV4dENvZGVwb2ludF8gPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChtX25leHRDb2RlcG9pbnRfIDwgVUNoYXJhY3Rlci5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgY2FsY3VsYXRlTmV4dEJNUEVsZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9ICAgIAorICAgICAgICBjYWxjdWxhdGVOZXh0U3VwcGxlbWVudGFyeUVsZW1lbnQoZWxlbWVudCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgKiBSZXNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGl0ZXJhdGlvbgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IDA7CisgICAgICAgIG1fbmV4dENvZGVwb2ludF8gICAgPSAwOworICAgICAgICBtX25leHRJbmRleF8gICAgICAgID0gMDsKKyAgICAgICAgbV9uZXh0QmxvY2tfID0gbV90cmllXy5tX2luZGV4X1swXSA8PCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICBpZiAobV9uZXh0QmxvY2tfID09IDApIHsKKyAgICAgICAgICAgIG1fbmV4dFZhbHVlXyA9IG1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fbmV4dFZhbHVlXyA9IGV4dHJhY3QobV90cmllXy5nZXRWYWx1ZShtX25leHRCbG9ja18pKTsKKyAgICAgICAgfQorICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgIG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfID0gVFJBSUxfU1VSUk9HQVRFX0lOREVYX0JMT0NLX0xFTkdUSF87CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENhbGxlZCBieSBuZXh0KCkgdG8gZXh0cmFjdHMgYSAzMiBiaXQgdmFsdWUgZnJvbSBhIHRyaWUgdmFsdWUKKyAgICAqIHVzZWQgZm9yIGNvbXBhcmlzb24uCisgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBiZSBvdmVyd3JpdHRlbiBpZiBzcGVjaWFsIG1hbmlwdWxhdGlvbiBpcyB0byBiZSBkb25lCisgICAgKiB0byByZXRyaWV2ZSBhIHJlbGV2YW50IGNvbXBhcmlzb24uCisgICAgKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLgorICAgICogQHBhcmFtIHZhbHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICAgICogQHJldHVybiBleHRyYWN0ZWQgdmFsdWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZXh0cmFjdChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFNldCB0aGUgcmVzdWx0IHZhbHVlcworICAgICogQHBhcmFtIGVsZW1lbnQgcmV0dXJuIHJlc3VsdCBvYmplY3QKKyAgICAqIEBwYXJhbSBzdGFydCBjb2RlcG9pbnQgb2YgcmFuZ2UgCisgICAgKiBAcGFyYW0gbGltaXQgKGVuZCArIDEpIGNvZGVwb2ludCBvZiByYW5nZQorICAgICogQHBhcmFtIHZhbHVlIGNvbW1vbiB2YWx1ZSBvZiByYW5nZQorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHNldFJlc3VsdChFbGVtZW50IGVsZW1lbnQsIGludCBzdGFydCwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGVsZW1lbnQuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgZWxlbWVudC5saW1pdCA9IGxpbWl0OworICAgICAgICBlbGVtZW50LnZhbHVlID0gdmFsdWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogRmluZGluZyB0aGUgbmV4dCBlbGVtZW50LgorICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGp1c3QgYmVmb3JlIHJldHVybmluZyB0aGUgcmVzdWx0IG9mIAorICAgICogbmV4dCgpLgorICAgICogV2UgYWx3YXlzIHN0b3JlIHRoZSBuZXh0IGVsZW1lbnQgYmVmb3JlIGl0IGlzIHJlcXVlc3RlZC4KKyAgICAqIEluIHRoZSBjYXNlIHRoYXQgd2UgaGF2ZSB0byBjb250aW51ZSBjYWxjdWxhdGlvbnMgaW50byB0aGUgCisgICAgKiBzdXBwbGVtZW50YXJ5IHBsYW5lcywgYSBmYWxzZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQHBhcmFtIGVsZW1lbnQgcmV0dXJuIHJlc3VsdCBvYmplY3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbmV4dCByYW5nZSBpcyBmb3VuZCwgZmFsc2UgaWYgd2UgaGF2ZSB0byBwcm9jZWVkIHRvCisgICAgKiAgICAgICAgIHRoZSBzdXBwbGVtZW50YXJ5IHJhbmdlLgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNhbGN1bGF0ZU5leHRCTVBFbGVtZW50KEVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgICAgIGludCBjdXJyZW50QmxvY2sgICAgPSBtX25leHRCbG9ja187CisgICAgICAgIGludCBjdXJyZW50VmFsdWUgICAgPSBtX25leHRWYWx1ZV87CisgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSBtX25leHRDb2RlcG9pbnRfOworICAgICAgICBtX25leHRDb2RlcG9pbnRfICsrOworICAgICAgICBtX25leHRCbG9ja0luZGV4XyArKzsKKyAgICAgICAgaWYgKCFjaGVja0Jsb2NrRGV0YWlsKGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3lud2VlIGNoZWNrIHRoYXQgbmV4dCBibG9jayBpbmRleCA9PSAwIGhlcmUgCisgICAgICAgIC8vIGVudW1lcmF0ZSBCTVAgLSB0aGUgbWFpbiBsb29wIGVudW1lcmF0ZXMgZGF0YSBibG9ja3MKKyAgICAgICAgd2hpbGUgKG1fbmV4dENvZGVwb2ludF8gPCBVQ2hhcmFjdGVyLlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBtX25leHRJbmRleF8gKys7CisgICAgICAgICAgICAvLyBiZWNhdXNlIG9mIHRoZSB3YXkgdGhlIGNoYXJhY3RlciBpcyBzcGxpdCB0byBmb3JtIHRoZSBpbmRleAorICAgICAgICAgICAgLy8gdGhlIGxlYWQgc3Vycm9nYXRlIGFuZCB0cmFpbCBzdXJyb2dhdGUgY2FuIG5vdCBiZSBpbiB0aGUKKyAgICAgICAgICAgIC8vIG1pZCBvZiBhIGJsb2NrCisgICAgICAgICAgICBpZiAobV9uZXh0Q29kZXBvaW50XyA9PSBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUVfKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzLAorICAgICAgICAgICAgICAgIC8vIGdvIHRvIGxlYWQgc3Vycm9nYXRlIGNvZGVwb2ludHMKKyAgICAgICAgICAgICAgICBtX25leHRJbmRleF8gPSBCTVBfSU5ERVhfTEVOR1RIXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG1fbmV4dENvZGVwb2ludF8gPT0gVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRV8pIHsKKyAgICAgICAgICAgICAgICAvLyBnbyBiYWNrIHRvIHJlZ3VsYXIgQk1QIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gbV9uZXh0Q29kZXBvaW50XyA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgICAgICBpZiAoIWNoZWNrQmxvY2soY3VycmVudEJsb2NrLCBjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGVsZW1lbnQsIG1fY3VycmVudENvZGVwb2ludF8sIG1fbmV4dENvZGVwb2ludF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fbmV4dENvZGVwb2ludF8gLS07ICAgLy8gc3RlcCBvbmUgYmFjayBzaW5jZSB0aGlzIHZhbHVlIGhhcyBub3QgYmVlbgorICAgICAgICBtX25leHRCbG9ja0luZGV4XyAtLTsgIC8vIHJldHJpZXZlZCB5ZXQuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEZpbmRzIHRoZSBuZXh0IHN1cHBsZW1lbnRhcnkgZWxlbWVudC4KKyAgICAqIEZvciBlYWNoIGVudHJ5IGluIHRoZSB0cmllLCB0aGUgdmFsdWUgdG8gYmUgZGVsaXZlcmVkIGlzIHBhc3NlZCB0aHJvdWdoCisgICAgKiBleHRyYWN0KCkuCisgICAgKiBXZSBhbHdheXMgc3RvcmUgdGhlIG5leHQgZWxlbWVudCBiZWZvcmUgaXQgaXMgcmVxdWVzdGVkLgorICAgICogQ2FsbGVkIGFmdGVyIGNhbGN1bGF0ZU5leHRCTVAoKSBjb21wbGV0ZXMgaXRzIHJvdW5kIG9mIEJNUCBjaGFyYWN0ZXJzLgorICAgICogVGhlcmUgaXMgYSBzbGlnaHQgZGlmZmVyZW5jZSBpbiB0aGUgdXNhZ2Ugb2YgbV9jdXJyZW50Q29kZXBvaW50XworICAgICogaGVyZSBhcyBjb21wYXJlZCB0byBjYWxjdWxhdGVOZXh0Qk1QKCkuIFRob3VnaCBib3RoIHJlcHJlc2VudHMgdGhlCisgICAgKiBsb3dlciBib3VuZCBvZiB0aGUgbmV4dCBlbGVtZW50LCBpbiBjYWxjdWxhdGVOZXh0Qk1QKCkgaXQgZ2V0cyBzZXQKKyAgICAqIGF0IHRoZSBzdGFydCBvZiBhbnkgbG9vcCwgd2hlcmUtZWxzZSwgaW4gY2FsY3VsYXRlTmV4dFN1cHBsZW1lbnRhcnkoKQorICAgICogc2luY2UgbV9jdXJyZW50Q29kZXBvaW50XyBhbHJlYWR5IGNvbnRhaW5zIHRoZSBsb3dlciBib3VuZCBvZiB0aGUKKyAgICAqIG5leHQgZWxlbWVudCAocGFzc2VkIGRvd24gZnJvbSBjYWxjdWxhdGVOZXh0Qk1QKCkpLCB3ZSBrZWVwIGl0IHRpbGwgCisgICAgKiB0aGUgZW5kIGJlZm9yZSByZXNldHRpbmcgaXQgdG8gdGhlIG5ldyB2YWx1ZS4KKyAgICAqIE5vdGUsIGlmIHRoZXJlIGFyZSBubyBtb3JlIGl0ZXJhdGlvbnMsIGl0IHdpbGwgbmV2ZXIgZ2V0IHRvIGhlcmUuIAorICAgICogQmxvY2tlZCBvdXQgYnkgbmV4dCgpLgorICAgICogQHBhcmFtIGVsZW1lbnQgcmV0dXJuIHJlc3VsdCBvYmplY3QKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjYWxjdWxhdGVOZXh0U3VwcGxlbWVudGFyeUVsZW1lbnQoRWxlbWVudCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgaW50IGN1cnJlbnRWYWx1ZSA9IG1fbmV4dFZhbHVlXzsKKyAgICAgICAgaW50IGN1cnJlbnRCbG9jayA9IG1fbmV4dEJsb2NrXzsKKyAgICAgICAgbV9uZXh0Q29kZXBvaW50XyArKzsKKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gKys7CisgICAgICAgIAorICAgICAgICBpZiAoVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUobV9uZXh0Q29kZXBvaW50XykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSkgeyAKKyAgICAgICAgICAgIC8vIHRoaXMgcGllY2UgaXMgb25seSBjYWxsZWQgd2hlbiB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxlYWQKKyAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZSBibG9jaworICAgICAgICAgICAgaWYgKCFjaGVja051bGxOZXh0VHJhaWxJbmRleCgpICYmICFjaGVja0Jsb2NrRGV0YWlsKGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgaGF2ZSBjbGVhcmVkIG9uZSBibG9jaworICAgICAgICAgICAgbV9uZXh0SW5kZXhfICsrOworICAgICAgICAgICAgbV9uZXh0VHJhaWxJbmRleE9mZnNldF8gKys7CisgICAgICAgICAgICBpZiAoIWNoZWNrVHJhaWxCbG9jayhjdXJyZW50QmxvY2ssIGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCBuZXh0TGVhZCAgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKG1fbmV4dENvZGVwb2ludF8pOworICAgICAgICAvLyBlbnVtZXJhdGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAgICB3aGlsZSAobmV4dExlYWQgPCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFXykgeworICAgICAgICAgICAgLy8gbGVhZCBzdXJyb2dhdGUgYWNjZXNzCisgICAgICAgICAgICBpbnQgbGVhZEJsb2NrID0gCisgICAgICAgICAgICAgICAgICAgbV90cmllXy5tX2luZGV4X1tuZXh0TGVhZCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfXSA8PCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF87CisgICAgICAgICAgICBpZiAobGVhZEJsb2NrID09IG1fdHJpZV8ubV9kYXRhT2Zmc2V0XykgeworICAgICAgICAgICAgICAgIC8vIG5vIGVudHJpZXMgZm9yIGEgd2hvbGUgYmxvY2sgb2YgbGVhZCBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0VmFsdWVfICAgICAgPSBtX2luaXRpYWxWYWx1ZV87CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrXyAgICAgID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gPSAwOworICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG5leHRMZWFkICs9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgdG90YWwgYWZmZWN0ZWQgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzIGluIG9uZQorICAgICAgICAgICAgICAgIC8vIGJsb2NrCisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgYSBzaW1wbGUgYWRkaXRpb24gb2YgCisgICAgICAgICAgICAgICAgLy8gREFUQV9CTE9DS19TVVBQTEVNRU5UQVJZX0xFTkdUSCBzaW5jZSB3ZSBuZWVkIHRvIGNvbnNpZGVyCisgICAgICAgICAgICAgICAgLy8gdGhhdCB3ZSBtaWdodCBoYXZlIG1vdmVkIHNvbWUgb2YgdGhlIGNvZGVwb2ludHMKKyAgICAgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpbmV4dExlYWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKVVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fdHJpZV8ubV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBlbnVtZXJhdGUgdHJhaWwgc3Vycm9nYXRlcyBmb3IgdGhpcyBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gbV90cmllXy5tX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJpZV8uZ2V0VmFsdWUobGVhZEJsb2NrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXh0TGVhZCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXykpKTsKKyAgICAgICAgICAgIGlmIChtX25leHRJbmRleF8gPD0gMCkgeworICAgICAgICAgICAgICAgIC8vIG5vIGRhdGEgZm9yIHRoaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9IG1faW5pdGlhbFZhbHVlXykgeworICAgICAgICAgICAgICAgICAgICBtX25leHRWYWx1ZV8gICAgICA9IG1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0QmxvY2tfICAgICAgPSAwOworICAgICAgICAgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSBtX25leHRDb2RlcG9pbnRfOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKz0gVFJBSUxfU1VSUk9HQVRFX0NPVU5UXzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9uZXh0VHJhaWxJbmRleE9mZnNldF8gPSAwOworICAgICAgICAgICAgICAgIGlmICghY2hlY2tUcmFpbEJsb2NrKGN1cnJlbnRCbG9jaywgY3VycmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICBuZXh0TGVhZCArKzsKKyAgICAgICAgIH0KKworICAgICAgICAgLy8gZGVsaXZlciBsYXN0IHJhbmdlCisgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgVUNoYXJhY3Rlci5NQVhfVkFMVUUgKyAxLCAKKyAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCBibG9jayB2YWx1ZSBjYWxjdWxhdGlvbnMKKyAgICAqIFBlcmZvcm1zIGNhbGN1bGF0aW9ucyBvbiBhIGRhdGEgYmxvY2sgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXworICAgICogYWZ0ZXIgdGhlIGluZGV4IG1fbmV4dEJsb2NrSW5kZXhfIHRoYXQgaGFzIHRoZSBzYW1lIHZhbHVlLgorICAgICogTm90ZSBtXypfIHZhcmlhYmxlcyBhdCB0aGlzIHBvaW50IGlzIHRoZSBuZXh0IGNvZGVwb2ludCB3aG9zZSB2YWx1ZQorICAgICogaGFzIG5vdCBiZWVuIGNhbGN1bGF0ZWQuCisgICAgKiBCdXQgd2hlbiByZXR1cm5lZCB3aXRoIGZhbHNlLCBpdCB3aWxsIGJlIHRoZSBsYXN0IGNvZGVwb2ludCB3aG9zZQorICAgICogdmFsdWUgaGFzIGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50VmFsdWUgdGhlIHZhbHVlIHdoaWNoIG90aGVyIGNvZGVwb2ludHMgYXJlIHRlc3RlZCBhZ2FpbnN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHdob2xlIGJsb2NrIGhhcyB0aGUgc2FtZSB2YWx1ZSBhcyBjdXJyZW50VmFsdWUgb3IgaWYKKyAgICAqICAgICAgICAgICAgICB0aGUgd2hvbGUgYmxvY2sgaGFzIGJlZW4gY2FsY3VsYXRlZCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrQmxvY2tEZXRhaWwoaW50IGN1cnJlbnRWYWx1ZSkKKyAgICB7CisgICAgICAgIHdoaWxlIChtX25leHRCbG9ja0luZGV4XyA8IERBVEFfQkxPQ0tfTEVOR1RIXykgeworICAgICAgICAgICAgbV9uZXh0VmFsdWVfID0gZXh0cmFjdChtX3RyaWVfLmdldFZhbHVlKG1fbmV4dEJsb2NrXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfKSk7CisgICAgICAgICAgICBpZiAobV9uZXh0VmFsdWVfICE9IGN1cnJlbnRWYWx1ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrIG1fbmV4dEJsb2NrSW5kZXhfOworICAgICAgICAgICAgKysgbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCBibG9jayB2YWx1ZSBjYWxjdWxhdGlvbnMKKyAgICAqIFBlcmZvcm1zIGNhbGN1bGF0aW9ucyBvbiBhIGRhdGEgYmxvY2sgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXworICAgICogdGhhdCBoYXMgdGhlIHNhbWUgdmFsdWUuIAorICAgICogV2lsbCBjYWxsIGNoZWNrQmxvY2tEZXRhaWwoKSBpZiBoaWdobGV2ZWwgY2hlY2sgZmFpbHMuCisgICAgKiBOb3RlIG1fKl8gdmFyaWFibGVzIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG5leHQgY29kZXBvaW50IHdob3NlIHZhbHVlCisgICAgKiBoYXMgbm90IGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50QmxvY2sgdGhlIGluaXRpYWwgYmxvY2sgY29udGFpbmluZyBhbGwgY3VycmVudFZhbHVlCisgICAgKiBAcGFyYW0gY3VycmVudFZhbHVlIHRoZSB2YWx1ZSB3aGljaCBvdGhlciBjb2RlcG9pbnRzIGFyZSB0ZXN0ZWQgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB3aG9sZSBibG9jayBoYXMgdGhlIHNhbWUgdmFsdWUgYXMgY3VycmVudFZhbHVlIG9yIGlmCisgICAgKiAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrIGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0Jsb2NrKGludCBjdXJyZW50QmxvY2ssIGludCBjdXJyZW50VmFsdWUpIAorICAgIHsKKyAgICAgICAgbV9uZXh0QmxvY2tfID0gbV90cmllXy5tX2luZGV4X1ttX25leHRJbmRleF9dIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICBpZiAobV9uZXh0QmxvY2tfID09IGN1cnJlbnRCbG9jayAmJgorICAgICAgICAgICAgKG1fbmV4dENvZGVwb2ludF8gLSBtX2N1cnJlbnRDb2RlcG9pbnRfKSA+PSBEQVRBX0JMT0NLX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIC8vIHRoZSBibG9jayBpcyB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgb25lLCBmaWxsZWQgd2l0aCAKKyAgICAgICAgICAgIC8vIGN1cnJlbnRWYWx1ZQorICAgICAgICAgICAgbV9uZXh0Q29kZXBvaW50XyArPSBEQVRBX0JMT0NLX0xFTkdUSF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobV9uZXh0QmxvY2tfID09IDApIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGJsb2NrCisgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9IG1faW5pdGlhbFZhbHVlXykgeworICAgICAgICAgICAgICAgIG1fbmV4dFZhbHVlXyAgICAgID0gbV9pbml0aWFsVmFsdWVfOworICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfICs9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghY2hlY2tCbG9ja0RldGFpbChjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEludGVybmFsIGJsb2NrIHZhbHVlIGNhbGN1bGF0aW9ucworICAgICogUGVyZm9ybXMgY2FsY3VsYXRpb25zIG9uIG11bHRpcGxlIGRhdGEgYmxvY2tzIGZvciBhIHNldCBvZiB0cmFpbCAKKyAgICAqIHN1cnJvZ2F0ZXMgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXyB0aGF0IGhhcyB0aGUgc2FtZSB2YWx1ZS4gCisgICAgKiBXaWxsIGNhbGwgY2hlY2tCbG9jaygpIGZvciBpbnRlcm5hbCBibG9jayBjaGVja3MuCisgICAgKiBOb3RlIG1fKl8gdmFyaWFibGVzIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG5leHQgY29kZXBvaW50IHdob3NlIHZhbHVlCisgICAgKiBoYXMgbm90IGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50QmxvY2sgdGhlIGluaXRpYWwgYmxvY2sgY29udGFpbmluZyBhbGwgY3VycmVudFZhbHVlCisgICAgKiBAcGFyYW0gY3VycmVudFZhbHVlIHRoZSB2YWx1ZSB3aGljaCBvdGhlciBjb2RlcG9pbnRzIGFyZSB0ZXN0ZWQgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB3aG9sZSBibG9jayBoYXMgdGhlIHNhbWUgdmFsdWUgYXMgY3VycmVudFZhbHVlIG9yIGlmCisgICAgKiAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrIGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja1RyYWlsQmxvY2soaW50IGN1cnJlbnRCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50VmFsdWUpCisgICAgeworICAgICAgICAvLyBlbnVtZXJhdGUgY29kZSBwb2ludHMgZm9yIHRoaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgd2hpbGUgKG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfIDwgVFJBSUxfU1VSUk9HQVRFX0lOREVYX0JMT0NLX0xFTkdUSF8pIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBpZiB3ZSBldmVyIHJlYWNoIGhlcmUsIHdlIGFyZSBhdCB0aGUgc3RhcnQgb2YgYSBuZXcgYmxvY2sKKyAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gMDsKKyAgICAgICAgICAgIC8vIGNvcHkgb2YgbW9zdCBvZiB0aGUgYm9keSBvZiB0aGUgQk1QIGxvb3AKKyAgICAgICAgICAgIGlmICghY2hlY2tCbG9jayhjdXJyZW50QmxvY2ssIGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX25leHRUcmFpbEluZGV4T2Zmc2V0XyArKzsKKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBDaGVja3MgaWYgd2UgYXJlIGJlZ2lubmluZyBhdCB0aGUgc3RhcnQgb2YgYSBpbml0aWFsIGJsb2NrLgorICAgICogSWYgd2UgYXJlIHRoZW4gdGhlIHJlc3Qgb2YgdGhlIGNvZGVwb2ludHMgaW4gdGhpcyBpbml0aWFsIGJsb2NrCisgICAgKiBoYXMgdGhlIHNhbWUgdmFsdWVzLgorICAgICogV2UgaW5jcmVtZW50IG1fbmV4dENvZGVwb2ludF8gYW5kIHJlbGV2YW50IGRhdGEgbWVtYmVycyBpZiBzby4KKyAgICAqIFRoaXMgaXMgdXNlZCBvbmx5IGluIGZvciB0aGUgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzIGJlY2F1c2UKKyAgICAqIHRoZSBvZmZzZXQgdG8gdGhlIHRyYWlsIGluZGV4ZXMgY291bGQgYmUgMC4KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgaW5pdGlhbCBibG9jay4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja051bGxOZXh0VHJhaWxJbmRleCgpCisgICAgeworICAgICAgICBpZiAobV9uZXh0SW5kZXhfIDw9IDApIHsKKyAgICAgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKz0gVFJBSUxfU1VSUk9HQVRFX0NPVU5UXyAtIDE7CisgICAgICAgICAgICBpbnQgbmV4dExlYWQgID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShtX25leHRDb2RlcG9pbnRfKTsKKyAgICAgICAgICAgIGludCBsZWFkQmxvY2sgPSAKKyAgICAgICAgICAgICAgICAgICBtX3RyaWVfLm1faW5kZXhfW25leHRMZWFkID4+IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF9dIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgICAgIGlmIChtX3RyaWVfLm1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gbV90cmllXy5tX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJpZV8uZ2V0VmFsdWUobGVhZEJsb2NrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXh0TGVhZCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXykpKTsKKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyAtLTsKKyAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gIERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBTaXplIG9mIHRoZSBzdGFnZSAxIEJNUCBpbmRleGVzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQk1QX0lOREVYX0xFTkdUSF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAgPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAvKioKKyAgICAqIExlYWQgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUVfID0gMHhEODAwOworICAgIC8qKgorICAgICogVHJhaWwgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFXyA9IDB4REMwMDsKKyAgICAvKioKKyAgICAqIFRyYWlsIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRV8gPSAweERGRkY7CisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgdHJhaWwgc3Vycm9nYXRlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX0NPVU5UXyA9IDB4NDAwOworICAgIC8qKgorICAgICogTnVtYmVyIG9mIHN0YWdlIDEgaW5kZXhlcyBmb3Igc3VwcGxlbWVudGFyeSBjYWxjdWxhdGlvbnMgdGhhdCBtYXBzIHRvCisgICAgKiBlYWNoIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIFNlZSBzZWNvbmQgcGFzcyBpbnRvIGdldFJhd09mZnNldCBmb3IgdGhlIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuCisgICAgKiAxMCBmb3Igc2lnbmlmaWNhbnQgbnVtYmVyIG9mIGJpdHMgZm9yIHRyYWlsIHN1cnJvZ2F0ZXMsIDUgZm9yIHdoYXQgd2UKKyAgICAqIGRpc2NhcmQgZHVyaW5nIHNoaWZ0aW5nLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9JTkRFWF9CTE9DS19MRU5HVEhfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgKDEwIC0gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyk7CisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgZGF0YSB2YWx1ZXMgaW4gYSBzdGFnZSAyIChkYXRhIGFycmF5KSBibG9jay4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JMT0NLX0xFTkdUSF8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIHN0YWdlIDIgYmxvY2sKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JMT0NLX1NVUFBMRU1FTlRBUllfTEVOR1RIXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxPQ0tfTEVOR1RIXyA8PCAxMDsKKyAgICAvKioKKyAgICAqIFRyaWUgaW5zdGFuY2UKKyAgICAqLworICAgIHByaXZhdGUgVHJpZSBtX3RyaWVfOworICAgIC8qKgorICAgICogSW5pdGlhbCB2YWx1ZSBmb3IgdHJpZSB2YWx1ZXMKKyAgICAqLworICAgIHByaXZhdGUgaW50IG1faW5pdGlhbFZhbHVlXzsKKyAgICAvKioKKyAgICAqIE5leHQgZWxlbWVudCByZXN1bHRzIGFuZCBkYXRhLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jdXJyZW50Q29kZXBvaW50XzsKKyAgICBwcml2YXRlIGludCBtX25leHRDb2RlcG9pbnRfOworICAgIHByaXZhdGUgaW50IG1fbmV4dFZhbHVlXzsKKyAgICBwcml2YXRlIGludCBtX25leHRJbmRleF87CisgICAgcHJpdmF0ZSBpbnQgbV9uZXh0QmxvY2tfOworICAgIHByaXZhdGUgaW50IG1fbmV4dEJsb2NrSW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfOworICAgIC8qKgorICAgICogVGhpcyBpcyB0aGUgcmV0dXJuIHJlc3VsdCBlbGVtZW50CisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3N0YXJ0XzsKKyAgICBwcml2YXRlIGludCBtX2xpbWl0XzsKKyAgICBwcml2YXRlIGludCBtX3ZhbHVlXzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VCaURpUHJvcHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VCaURpUHJvcHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWIzMDAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUJpRGlQcm9wcy5qYXZhCkBAIC0wLDAgKzEsMzMzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgVUJpRGlQcm9wcy5qYXZhCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNWphbjE2CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBMb3ctbGV2ZWwgVW5pY29kZSBiaWRpL3NoYXBpbmcgcHJvcGVydGllcyBhY2Nlc3MuCisqICAgSmF2YSBwb3J0IG9mIHViaWRpX3Byb3BzLmgvLmMuCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworCitwdWJsaWMgZmluYWwgY2xhc3MgVUJpRGlQcm9wcyB7CisgICAgLy8gY29uc3RydWN0b3JzIGV0Yy4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLy8gcG9ydCBvZiB1YmlkaV9vcGVuUHJvcHMoKQorICAgIHB1YmxpYyBVQmlEaVByb3BzKCkgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBJbnB1dFN0cmVhbSBpcz1JQ1VEYXRhLmdldFN0cmVhbShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvIitEQVRBX0ZJTEVfTkFNRSk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYj1uZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgNDA5NiAvKiBkYXRhIGJ1ZmZlciBzaXplICovKTsKKyAgICAgICAgcmVhZERhdGEoYik7CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgaXMuY2xvc2UoKTsKKworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZWFkRGF0YShJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0U3RyZWFtPW5ldyBEYXRhSW5wdXRTdHJlYW0oaXMpOworCisgICAgICAgIC8vIHJlYWQgdGhlIGhlYWRlcgorICAgICAgICB1bmljb2RlVmVyc2lvbj1JQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgRk1ULCBuZXcgSXNBY2NlcHRhYmxlKCkpOworCisgICAgICAgIC8vIHJlYWQgaW5kZXhlc1tdCisgICAgICAgIGludCBpLCBjb3VudDsKKyAgICAgICAgY291bnQ9aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBpZihjb3VudDxJWF9JTkRFWF9UT1ApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiaW5kZXhlc1swXSB0b28gc21hbGwgaW4gIitEQVRBX0ZJTEVfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXhlcz1uZXcgaW50W2NvdW50XTsKKworICAgICAgICBpbmRleGVzWzBdPWNvdW50OworICAgICAgICBmb3IoaT0xOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4ZXNbaV09aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVhZCB0aGUgdHJpZQorICAgICAgICB0cmllPW5ldyBDaGFyVHJpZShpbnB1dFN0cmVhbSwgbnVsbCk7CisKKyAgICAgICAgLy8gcmVhZCBtaXJyb3JzW10KKyAgICAgICAgY291bnQ9aW5kZXhlc1tJWF9NSVJST1JfTEVOR1RIXTsKKyAgICAgICAgaWYoY291bnQ+MCkgeworICAgICAgICAgICAgbWlycm9ycz1uZXcgaW50W2NvdW50XTsKKyAgICAgICAgICAgIGZvcihpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIG1pcnJvcnNbaV09aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcmVhZCBqZ0FycmF5W10KKyAgICAgICAgY291bnQ9aW5kZXhlc1tJWF9KR19MSU1JVF0taW5kZXhlc1tJWF9KR19TVEFSVF07CisgICAgICAgIGpnQXJyYXk9bmV3IGJ5dGVbY291bnRdOworICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGpnQXJyYXlbaV09aW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGltcGxlbWVudCBJQ1VCaW5hcnkuQXV0aGVudGljYXRlCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBJc0FjY2VwdGFibGUgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pIHsKKyAgICAgICAgICAgIGZvcm1hdFZlcnNpb249dmVyc2lvbjsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdPT0xICYmCisgICAgICAgICAgICAgICAgICAgdmVyc2lvblsyXT09VHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyAmJiB2ZXJzaW9uWzNdPT1UcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVUJpRGlQcm9wcyBzaW5nbGV0b24KKyAgICBwcml2YXRlIHN0YXRpYyBVQmlEaVByb3BzIGdCZHA9bnVsbDsKKworICAgIC8vIHBvcnQgb2YgdWJpZGlfZ2V0U2luZ2xldG9uKCkKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQmlEaVByb3BzIGdldFNpbmdsZXRvbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmKGdCZHA9PW51bGwpIHsKKyAgICAgICAgICAgIGdCZHA9bmV3IFVCaURpUHJvcHMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0JkcDsKKyAgICB9CisKKyAgICAvLyBVQmlEaVByb3BzIGR1bW15IHNpbmdsZXRvbgorICAgIHByaXZhdGUgc3RhdGljIFVCaURpUHJvcHMgZ0JkcER1bW15PW51bGw7CisKKyAgICBwcml2YXRlIFVCaURpUHJvcHMoYm9vbGVhbiBtYWtlRHVtbXkpIHsgLy8gaWdub3JlIG1ha2VEdW1teSwgb25seSBjcmVhdGVzIGEgdW5pcXVlIHNpZ25hdHVyZQorICAgICAgICBmb3JtYXRWZXJzaW9uPW5ldyBieXRlW10geyAxLCAwLCBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfLCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfIH07CisgICAgICAgIHVuaWNvZGVWZXJzaW9uPW5ldyBieXRlW10geyAyLCAwLCAwLCAwIH07CisgICAgICAgIGluZGV4ZXM9bmV3IGludFtJWF9UT1BdOworICAgICAgICBpbmRleGVzWzBdPUlYX1RPUDsKKyAgICAgICAgdHJpZT1uZXcgQ2hhclRyaWUoMCwgMCwgbnVsbCk7IC8vIGR1bW15IHRyaWUsIGFsd2F5cyByZXR1cm5zIDAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBzaW5nbGV0b24gZHVtbXkgb2JqZWN0LCBvbmUgdGhhdCB3b3JrcyB3aXRoIG5vIHJlYWwgZGF0YS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHJlYWwgZGF0YSBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqIFVzaW5nIHRoZSBkdW1teSBjYW4gcmVkdWNlIGNoZWNrcyBmb3IgYXZhaWxhYmxlIGRhdGEgYWZ0ZXIgYW4gaW5pdGlhbCBmYWlsdXJlLgorICAgICAqIFBvcnQgb2YgdWNhc2VfZ2V0RHVtbXkoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQmlEaVByb3BzIGdldER1bW15KCkgeworICAgICAgICBpZihnQmRwRHVtbXk9PW51bGwpIHsKKyAgICAgICAgICAgIGdCZHBEdW1teT1uZXcgVUJpRGlQcm9wcyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0JkcER1bW15OworICAgIH0KKworICAgIC8vIHNldCBvZiBwcm9wZXJ0eSBzdGFydHMgZm9yIFVuaWNvZGVTZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGludCBpLCBsZW5ndGg7CisgICAgICAgIGludCBjLCBzdGFydCwgbGltaXQ7CisKKyAgICAgICAgYnl0ZSBwcmV2LCBqZzsKKworICAgICAgICAvKiBhZGQgdGhlIHN0YXJ0IGNvZGUgcG9pbnQgb2YgZWFjaCBzYW1lLXZhbHVlIHJhbmdlIG9mIHRoZSB0cmllICovCisgICAgICAgIFRyaWVJdGVyYXRvciBpdGVyPW5ldyBUcmllSXRlcmF0b3IodHJpZSk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQ9bmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisKKyAgICAgICAgd2hpbGUoaXRlci5uZXh0KGVsZW1lbnQpKXsKKyAgICAgICAgICAgIHNldC5hZGQoZWxlbWVudC5zdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgdGhlIGNvZGUgcG9pbnRzIGZyb20gdGhlIGJpZGkgbWlycm9yaW5nIHRhYmxlICovCisgICAgICAgIGxlbmd0aD1pbmRleGVzW0lYX01JUlJPUl9MRU5HVEhdOworICAgICAgICBmb3IoaT0wOyBpPGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjPWdldE1pcnJvckNvZGVQb2ludChtaXJyb3JzW2ldKTsKKyAgICAgICAgICAgIHNldC5hZGQoYywgYysxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGFkZCB0aGUgY29kZSBwb2ludHMgZnJvbSB0aGUgSm9pbmluZ19Hcm91cCBhcnJheSB3aGVyZSB0aGUgdmFsdWUgY2hhbmdlcyAqLworICAgICAgICBzdGFydD1pbmRleGVzW0lYX0pHX1NUQVJUXTsKKyAgICAgICAgbGltaXQ9aW5kZXhlc1tJWF9KR19MSU1JVF07CisgICAgICAgIGxlbmd0aD1saW1pdC1zdGFydDsKKyAgICAgICAgcHJldj0wOworICAgICAgICBmb3IoaT0wOyBpPGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBqZz1qZ0FycmF5W2ldOworICAgICAgICAgICAgaWYoamchPXByZXYpIHsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBwcmV2PWpnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgfQorICAgICAgICBpZihwcmV2IT0wKSB7CisgICAgICAgICAgICAvKiBhZGQgdGhlIGxpbWl0IGNvZGUgcG9pbnQgaWYgdGhlIGxhc3QgdmFsdWUgd2FzIG5vdCAwIChpdCBpcyBub3cgc3RhcnQ9PWxpbWl0KSAqLworICAgICAgICAgICAgc2V0LmFkZChsaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgY29kZSBwb2ludHMgd2l0aCBoYXJkY29kZWQgcHJvcGVydGllcywgcGx1cyB0aGUgb25lcyBmb2xsb3dpbmcgdGhlbSAqLworCisgICAgICAgIC8qIChub25lIHJpZ2h0IG5vdykgKi8KKyAgICB9CisKKyAgICAvLyBwcm9wZXJ0eSBhY2Nlc3MgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE1heFZhbHVlKGludCB3aGljaCkgeworICAgICAgICBpbnQgbWF4OworCisgICAgICAgIG1heD1pbmRleGVzW0lYX01BWF9WQUxVRVNdOworICAgICAgICBzd2l0Y2god2hpY2gpIHsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9DTEFTUzoKKyAgICAgICAgICAgIHJldHVybiAobWF4JkNMQVNTX01BU0spOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQOgorICAgICAgICAgICAgcmV0dXJuIChtYXgmTUFYX0pHX01BU0spPj5NQVhfSkdfU0hJRlQ7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfVFlQRToKKyAgICAgICAgICAgIHJldHVybiAobWF4JkpUX01BU0spPj5KVF9TSElGVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAtMTsgLyogdW5kZWZpbmVkICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldENsYXNzKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXRDbGFzc0Zyb21Qcm9wcyh0cmllLmdldENvZGVQb2ludFZhbHVlKGMpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc01pcnJvcmVkKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXRGbGFnRnJvbVByb3BzKHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyksIElTX01JUlJPUkVEX1NISUZUKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE1pcnJvcihpbnQgYykgeworICAgICAgICBpbnQgcHJvcHM7CisgICAgICAgIGludCBkZWx0YTsKKworICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBkZWx0YT0oKHNob3J0KXByb3BzKT4+TUlSUk9SX0RFTFRBX1NISUZUOworICAgICAgICBpZihkZWx0YSE9RVNDX01JUlJPUl9ERUxUQSkgeworICAgICAgICAgICAgcmV0dXJuIGMrZGVsdGE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBsb29rIGZvciBtaXJyb3IgY29kZSBwb2ludCBpbiB0aGUgbWlycm9yc1tdIHRhYmxlICovCisgICAgICAgICAgICBpbnQgbTsKKyAgICAgICAgICAgIGludCBpLCBsZW5ndGg7CisgICAgICAgICAgICBpbnQgYzI7CisKKyAgICAgICAgICAgIGxlbmd0aD1pbmRleGVzW0lYX01JUlJPUl9MRU5HVEhdOworCisgICAgICAgICAgICAvKiBsaW5lYXIgc2VhcmNoICovCisgICAgICAgICAgICBmb3IoaT0wOyBpPGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgbT1taXJyb3JzW2ldOworICAgICAgICAgICAgICAgIGMyPWdldE1pcnJvckNvZGVQb2ludChtKTsKKyAgICAgICAgICAgICAgICBpZihjPT1jMikgeworICAgICAgICAgICAgICAgICAgICAvKiBmb3VuZCBjLCByZXR1cm4gaXRzIG1pcnJvciBjb2RlIHBvaW50IHVzaW5nIHRoZSBpbmRleCBpbiBtICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRNaXJyb3JDb2RlUG9pbnQobWlycm9yc1tnZXRNaXJyb3JJbmRleChtKV0pOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPGMyKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogYyBub3QgZm91bmQsIHJldHVybiBpdCBpdHNlbGYgKi8KKyAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNCaWRpQ29udHJvbChpbnQgYykgeworICAgICAgICByZXR1cm4gZ2V0RmxhZ0Zyb21Qcm9wcyh0cmllLmdldENvZGVQb2ludFZhbHVlKGMpLCBCSURJX0NPTlRST0xfU0hJRlQpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzSm9pbkNvbnRyb2woaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGdldEZsYWdGcm9tUHJvcHModHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSwgSk9JTl9DT05UUk9MX1NISUZUKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEpvaW5pbmdUeXBlKGludCBjKSB7CisgICAgICAgIHJldHVybiAodHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSZKVF9NQVNLKT4+SlRfU0hJRlQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRKb2luaW5nR3JvdXAoaW50IGMpIHsKKyAgICAgICAgaW50IHN0YXJ0LCBsaW1pdDsKKworICAgICAgICBzdGFydD1pbmRleGVzW0lYX0pHX1NUQVJUXTsKKyAgICAgICAgbGltaXQ9aW5kZXhlc1tJWF9KR19MSU1JVF07CisgICAgICAgIGlmKHN0YXJ0PD1jICYmIGM8bGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW50KWpnQXJyYXlbYy1zdGFydF0mMHhmZjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5OT19KT0lOSU5HX0dST1VQOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorICAgIHByaXZhdGUgaW50IGluZGV4ZXNbXTsKKyAgICBwcml2YXRlIGludCBtaXJyb3JzW107CisgICAgcHJpdmF0ZSBieXRlIGpnQXJyYXlbXTsKKworICAgIHByaXZhdGUgQ2hhclRyaWUgdHJpZTsKKyAgICBwcml2YXRlIGJ5dGUgZm9ybWF0VmVyc2lvbltdOworICAgIHByaXZhdGUgYnl0ZSB1bmljb2RlVmVyc2lvbltdOyAgCisKKyAgICAvLyBkYXRhIGZvcm1hdCBjb25zdGFudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfTkFNRT0idWJpZGkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1RZUEU9ImljdSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfRklMRV9OQU1FPURBVEFfTkFNRSsiLiIrREFUQV9UWVBFOworCisgICAgLyogZm9ybWF0ICJCaURpIiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgRk1UW109eyAweDQyLCAweDY5LCAweDQ0LCAweDY5IH07CisKKyAgICAvKiBpbmRleGVzIGludG8gaW5kZXhlc1tdICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX0lOREVYX1RPUD0wOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9MRU5HVEg9MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfVFJJRV9TSVpFPTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX01JUlJPUl9MRU5HVEg9MzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9KR19TVEFSVD00OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9KR19MSU1JVD01OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX01BWF9WQUxVRVM9MTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1RPUD0xNjsKKworICAgIC8vIGRlZmluaXRpb25zIGZvciAxNi1iaXQgYmlkaS9zaGFwaW5nIHByb3BlcnRpZXMgd29yZCAtLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDTEFTU19TSElGVD0wLCAqLyAgICAgLyogYmlkaSBjbGFzczogNSBiaXRzICg0Li4wKSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKVF9TSElGVD01OyAgICAgICAgICAgLyogam9pbmluZyB0eXBlOiAzIGJpdHMgKDcuLjUpICovCisKKyAgICAvKiBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgX1NISUZUPTgsIHJlc2VydmVkOiAyIGJpdHMgKDkuLjgpICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSk9JTl9DT05UUk9MX1NISUZUPTEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCSURJX0NPTlRST0xfU0hJRlQ9MTE7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVNfTUlSUk9SRURfU0hJRlQ9MTI7ICAgICAgICAgLyogJ2lzIG1pcnJvcmVkJyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSVJST1JfREVMVEFfU0hJRlQ9MTM7ICAgICAgICAvKiBiaWRpIG1pcnJvcmluZyBkZWx0YTogMyBiaXRzICgxNS4uMTMpICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0pHX1NISUZUPTE2OyAgICAgICAgICAgICAgLyogbWF4IEpHIHZhbHVlIGluIGluZGV4ZXNbTUFYX1ZBTFVFU19JTkRFWF0gYml0cyAyMy4uMTYgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTEFTU19NQVNLPSAgICAweDAwMDAwMDFmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKVF9NQVNLPSAgICAgICAweDAwMDAwMGUwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9KR19NQVNLPSAgIDB4MDBmZjAwMDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q2xhc3NGcm9tUHJvcHMoaW50IHByb3BzKSB7CisgICAgICAgIHJldHVybiBwcm9wcyZDTEFTU19NQVNLOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGdldEZsYWdGcm9tUHJvcHMoaW50IHByb3BzLCBpbnQgc2hpZnQpIHsKKyAgICAgICAgcmV0dXJuICgocHJvcHM+PnNoaWZ0KSYxKSE9MDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVNDX01JUlJPUl9ERUxUQT0tNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOX01JUlJPUl9ERUxUQT0tMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX01JUlJPUl9ERUxUQT0zOworCisgICAgLy8gZGVmaW5pdGlvbnMgZm9yIDMyLWJpdCBtaXJyb3IgdGFibGUgZW50cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLyogdGhlIHNvdXJjZSBVbmljb2RlIGNvZGUgcG9pbnQgdGFrZXMgMjEgYml0cyAoMjAuLjApICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JUlJPUl9JTkRFWF9TSElGVD0yMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX01JUlJPUl9JTkRFWD0weDdmZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRNaXJyb3JDb2RlUG9pbnQoaW50IG0pIHsKKyAgICAgICAgcmV0dXJuIG0mMHgxZmZmZmY7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRNaXJyb3JJbmRleChpbnQgbSkgeworICAgICAgICByZXR1cm4gbT4+Pk1JUlJPUl9JTkRFWF9TSElGVDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2FzZVByb3BzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2FzZVByb3BzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQwYWE5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDYXNlUHJvcHMuamF2YQpAQCAtMCwwICsxLDE0MDYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICBVQ2FzZVByb3BzLmphdmEKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1amFuMjkKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIExvdy1sZXZlbCBVbmljb2RlIGNoYXJhY3Rlci9zdHJpbmcgY2FzZSBtYXBwaW5nIGNvZGUuCisqICAgSmF2YSBwb3J0IG9mIHVjYXNlLmgvLmMuCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2FzZVByb3BzIHsKKyAgICAvLyBjb25zdHJ1Y3RvcnMgZXRjLiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAvLyBwb3J0IG9mIHVjYXNlX29wZW5Qcm9wcygpCisgICAgcHVibGljIFVDYXNlUHJvcHMoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBJbnB1dFN0cmVhbSBpcz1JQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi8iK0RBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiPW5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCA0MDk2IC8qIGRhdGEgYnVmZmVyIHNpemUgKi8pOworICAgICAgICByZWFkRGF0YShiKTsKKyAgICAgICAgYi5jbG9zZSgpOworICAgICAgICBpcy5jbG9zZSgpOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgdm9pZCByZWFkRGF0YShJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0U3RyZWFtPW5ldyBEYXRhSW5wdXRTdHJlYW0oaXMpOworCisgICAgICAgIC8vIHJlYWQgdGhlIGhlYWRlcgorICAgICAgICB1bmljb2RlVmVyc2lvbj1JQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgRk1ULCBuZXcgSXNBY2NlcHRhYmxlKCkpOworCisgICAgICAgIC8vIHJlYWQgaW5kZXhlc1tdCisgICAgICAgIGludCBpLCBjb3VudDsKKyAgICAgICAgY291bnQ9aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBpZihjb3VudDxJWF9JTkRFWF9UT1ApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiaW5kZXhlc1swXSB0b28gc21hbGwgaW4gIitEQVRBX0ZJTEVfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXhlcz1uZXcgaW50W2NvdW50XTsKKworICAgICAgICBpbmRleGVzWzBdPWNvdW50OworICAgICAgICBmb3IoaT0xOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4ZXNbaV09aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVhZCB0aGUgdHJpZQorICAgICAgICB0cmllPW5ldyBDaGFyVHJpZShpbnB1dFN0cmVhbSwgbnVsbCk7CisKKyAgICAgICAgLy8gcmVhZCBleGNlcHRpb25zW10KKyAgICAgICAgY291bnQ9aW5kZXhlc1tJWF9FWENfTEVOR1RIXTsKKyAgICAgICAgaWYoY291bnQ+MCkgeworICAgICAgICAgICAgZXhjZXB0aW9ucz1uZXcgY2hhcltjb3VudF07CisgICAgICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBleGNlcHRpb25zW2ldPWlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyByZWFkIHVuZm9sZFtdCisgICAgICAgIGNvdW50PWluZGV4ZXNbSVhfVU5GT0xEX0xFTkdUSF07CisgICAgICAgIGlmKGNvdW50PjApIHsKKyAgICAgICAgICAgIHVuZm9sZD1uZXcgY2hhcltjb3VudF07CisgICAgICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICB1bmZvbGRbaV09aW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGltcGxlbWVudCBJQ1VCaW5hcnkuQXV0aGVudGljYXRlCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBJc0FjY2VwdGFibGUgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pIHsKKyAgICAgICAgICAgIGZvcm1hdFZlcnNpb249dmVyc2lvbjsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdPT0xICYmCisgICAgICAgICAgICAgICAgICAgdmVyc2lvblsyXT09VHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyAmJiB2ZXJzaW9uWzNdPT1UcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVUNhc2VQcm9wcyBzaW5nbGV0b24KKyAgICBwcml2YXRlIHN0YXRpYyBVQ2FzZVByb3BzIGdDc3A9bnVsbDsKKworICAgIC8vIHBvcnQgb2YgdWNhc2VfZ2V0U2luZ2xldG9uKCkKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQ2FzZVByb3BzIGdldFNpbmdsZXRvbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmKGdDc3A9PW51bGwpIHsKKyAgICAgICAgICAgIGdDc3A9bmV3IFVDYXNlUHJvcHMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0NzcDsKKyAgICB9CisKKyAgICAvLyBVQ2FzZVByb3BzIGR1bW15IHNpbmdsZXRvbgorICAgIHByaXZhdGUgc3RhdGljIFVDYXNlUHJvcHMgZ0NzcER1bW15PW51bGw7CisKKyAgICBwcml2YXRlIFVDYXNlUHJvcHMoYm9vbGVhbiBtYWtlRHVtbXkpIHsgLy8gaWdub3JlIG1ha2VEdW1teSwgb25seSBjcmVhdGVzIGEgdW5pcXVlIHNpZ25hdHVyZQorICAgICAgICBmb3JtYXRWZXJzaW9uPW5ldyBieXRlW10geyAxLCAwLCBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfLCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfIH07CisgICAgICAgIHVuaWNvZGVWZXJzaW9uPW5ldyBieXRlW10geyAyLCAwLCAwLCAwIH07CisgICAgICAgIGluZGV4ZXM9bmV3IGludFtJWF9UT1BdOworICAgICAgICBpbmRleGVzWzBdPUlYX1RPUDsKKyAgICAgICAgdHJpZT1uZXcgQ2hhclRyaWUoMCwgMCwgbnVsbCk7IC8vIGR1bW15IHRyaWUsIGFsd2F5cyByZXR1cm5zIDAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBzaW5nbGV0b24gZHVtbXkgb2JqZWN0LCBvbmUgdGhhdCB3b3JrcyB3aXRoIG5vIHJlYWwgZGF0YS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHJlYWwgZGF0YSBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqIFVzaW5nIHRoZSBkdW1teSBjYW4gcmVkdWNlIGNoZWNrcyBmb3IgYXZhaWxhYmxlIGRhdGEgYWZ0ZXIgYW4gaW5pdGlhbCBmYWlsdXJlLgorICAgICAqIFBvcnQgb2YgdWNhc2VfZ2V0RHVtbXkoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQ2FzZVByb3BzIGdldER1bW15KCkgeworICAgICAgICBpZihnQ3NwRHVtbXk9PW51bGwpIHsKKyAgICAgICAgICAgIGdDc3BEdW1teT1uZXcgVUNhc2VQcm9wcyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0NzcER1bW15OworICAgIH0KKworICAgIC8vIHNldCBvZiBwcm9wZXJ0eSBzdGFydHMgZm9yIFVuaWNvZGVTZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qIGFkZCB0aGUgc3RhcnQgY29kZSBwb2ludCBvZiBlYWNoIHNhbWUtdmFsdWUgcmFuZ2Ugb2YgdGhlIHRyaWUgKi8KKyAgICAgICAgVHJpZUl0ZXJhdG9yIGl0ZXI9bmV3IFRyaWVJdGVyYXRvcih0cmllKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudD1uZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKworICAgICAgICB3aGlsZShpdGVyLm5leHQoZWxlbWVudCkpeworICAgICAgICAgICAgc2V0LmFkZChlbGVtZW50LnN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGFkZCBjb2RlIHBvaW50cyB3aXRoIGhhcmRjb2RlZCBwcm9wZXJ0aWVzLCBwbHVzIHRoZSBvbmVzIGZvbGxvd2luZyB0aGVtICovCisKKyAgICAgICAgLyogKG5vbmUgcmlnaHQgbm93LCBzZWUgY29tbWVudCBiZWxvdykgKi8KKworICAgICAgICAvKgorICAgICAgICAgKiBPbWl0IGNvZGUgcG9pbnRzIHdpdGggaGFyZGNvZGVkIHNwZWNpYWxjYXNpbmcgcHJvcGVydGllcworICAgICAgICAgKiBiZWNhdXNlIHdlIGRvIG5vdCBidWlsZCBwcm9wZXJ0eSBVbmljb2RlU2V0cyBmb3IgdGhlbSByaWdodCBub3cuCisgICAgICAgICAqLworICAgIH0KKworICAgIC8vIGRhdGEgYWNjZXNzIHByaW1pdGl2ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0RXhjZXB0aW9uc09mZnNldChpbnQgcHJvcHMpIHsKKyAgICAgICAgcmV0dXJuIHByb3BzPj5FWENfU0hJRlQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBwcm9wc0hhc0V4Y2VwdGlvbihpbnQgcHJvcHMpIHsKKyAgICAgICAgcmV0dXJuIChwcm9wcyZFWENFUFRJT04pIT0wOworICAgIH0KKworICAgIC8qIG51bWJlciBvZiBiaXRzIGluIGFuIDgtYml0IGludGVnZXIgdmFsdWUgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGZsYWdzT2Zmc2V0Wy8qMjU2Ki9dPXsKKyAgICAgICAgMCwgMSwgMSwgMiwgMSwgMiwgMiwgMywgMSwgMiwgMiwgMywgMiwgMywgMywgNCwKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywgNSwgNiwgNiwgNywgNiwgNywgNywgOAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGhhc1Nsb3QoaW50IGZsYWdzLCBpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIChmbGFncyYoMTw8aW5kZXgpKSE9MDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBzbG90T2Zmc2V0KGludCBmbGFncywgaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBmbGFnc09mZnNldFtmbGFncyYoKDE8PGluZGV4KS0xKV07CisgICAgfQorCisgICAgLyoKKyAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbmFsLXZhbHVlIHNsb3Qgd2hlcmUgaGFzU2xvdChleGNXb3JkLCBpbmRleCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXhjV29yZCAoaW4pIGluaXRpYWwgZXhjZXB0aW9ucyB3b3JkCisgICAgICogQHBhcmFtIGluZGV4IChpbikgZGVzaXJlZCBzbG90IGluZGV4CisgICAgICogQHBhcmFtIGV4Y09mZnNldCAoaW4pIG9mZnNldCBpbnRvIGV4Y2VwdGlvbnNbXSBhZnRlciBleGNXb3JkPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAqIEByZXR1cm4gYml0cyAzMS4uMDogc2xvdCB2YWx1ZQorICAgICAqICAgICAgICAgICAgIDYzLi4zMjogbW9kaWZpZWQgZXhjT2Zmc2V0LCBtb3ZlZCB0byB0aGUgbGFzdCBjaGFyIG9mIHRoZSB2YWx1ZSwgdXNlICsxIGZvciBiZWdpbm5pbmcgb2YgbmV4dCBzbG90IAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgbG9uZyBnZXRTbG90VmFsdWVBbmRPZmZzZXQoaW50IGV4Y1dvcmQsIGludCBpbmRleCwgaW50IGV4Y09mZnNldCkgeworICAgICAgICBsb25nIHZhbHVlOworICAgICAgICBpZigoZXhjV29yZCZFWENfRE9VQkxFX1NMT1RTKT09MCkgeworICAgICAgICAgICAgZXhjT2Zmc2V0Kz1zbG90T2Zmc2V0KGV4Y1dvcmQsIGluZGV4KTsKKyAgICAgICAgICAgIHZhbHVlPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0XTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGV4Y09mZnNldCs9MipzbG90T2Zmc2V0KGV4Y1dvcmQsIGluZGV4KTsKKyAgICAgICAgICAgIHZhbHVlPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAgICAgICAgdmFsdWU9KHZhbHVlPDwxNil8ZXhjZXB0aW9uc1tleGNPZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiAobG9uZyl2YWx1ZXwoKGxvbmcpZXhjT2Zmc2V0PDwzMik7CisgICAgfQorCisgICAgLyogc2FtZSBhcyBnZXRTbG90VmFsdWVBbmRPZmZzZXQoKSBidXQgZG9lcyBub3QgcmV0dXJuIHRoZSBzbG90IG9mZnNldCAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFNsb3RWYWx1ZShpbnQgZXhjV29yZCwgaW50IGluZGV4LCBpbnQgZXhjT2Zmc2V0KSB7CisgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgaWYoKGV4Y1dvcmQmRVhDX0RPVUJMRV9TTE9UUyk9PTApIHsKKyAgICAgICAgICAgIGV4Y09mZnNldCs9c2xvdE9mZnNldChleGNXb3JkLCBpbmRleCk7CisgICAgICAgICAgICB2YWx1ZT1leGNlcHRpb25zW2V4Y09mZnNldF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBleGNPZmZzZXQrPTIqc2xvdE9mZnNldChleGNXb3JkLCBpbmRleCk7CisgICAgICAgICAgICB2YWx1ZT1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIHZhbHVlPSh2YWx1ZTw8MTYpfGV4Y2VwdGlvbnNbZXhjT2Zmc2V0XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgLy8gc2ltcGxlIGNhc2UgbWFwcGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgcHVibGljIGZpbmFsIGludCB0b2xvd2VyKGludCBjKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT49VVBQRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19MT1dFUikpIHsKKyAgICAgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBFWENfTE9XRVIsIGV4Y09mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCB0b3VwcGVyKGludCBjKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT09TE9XRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19VUFBFUikpIHsKKyAgICAgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBFWENfVVBQRVIsIGV4Y09mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCB0b3RpdGxlKGludCBjKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT09TE9XRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgaW5kZXg7CisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19USVRMRSkpIHsKKyAgICAgICAgICAgICAgICBpbmRleD1FWENfVElUTEU7CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfVVBQRVIpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX1VQUEVSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIGluZGV4LCBleGNPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYWxsIHNpbXBsZSBjYXNlIG1hcHBpbmdzIGFuZCB0aGUgZnVsbCBjYXNlIGZvbGRpbmcgZm9yIGMgdG8gc2EsCisgICAgICogYW5kIGFsc28gYWRkcyBzcGVjaWFsIGNhc2UgY2xvc3VyZSBtYXBwaW5ncy4KKyAgICAgKiBjIGl0c2VsZiBpcyBub3QgYWRkZWQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBtYXBwaW5ncworICAgICAqIC0gZm9yIHMgaW5jbHVkZSBsb25nIHMKKyAgICAgKiAtIGZvciBzaGFycCBzIGluY2x1ZGUgc3MKKyAgICAgKiAtIGZvciBrIGluY2x1ZGUgdGhlIEtlbHZpbiBzaWduCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgYWRkQ2FzZUNsb3N1cmUoaW50IGMsIFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qCisgICAgICAgICAqIEhhcmRjb2RlIHRoZSBjYXNlIGNsb3N1cmUgb2YgaSBhbmQgaXRzIHJlbGF0aXZlcyBhbmQgaWdub3JlIHRoZQorICAgICAgICAgKiBkYXRhIGZpbGUgZGF0YSBmb3IgdGhlc2UgY2hhcmFjdGVycy4KKyAgICAgICAgICogVGhlIFR1cmtpYyBkb3RsZXNzIGkgYW5kIGRvdHRlZCBJIHdpdGggdGhlaXIgY2FzZSBtYXBwaW5nIGNvbmRpdGlvbnMKKyAgICAgICAgICogYW5kIGNhc2UgZm9sZGluZyBvcHRpb24gbWFrZSB0aGUgcmVsYXRlZCBjaGFyYWN0ZXJzIGJlaGF2ZSBzcGVjaWFsbHkuCisgICAgICAgICAqIFRoaXMgY29kZSBtYXRjaGVzIHRoZWlyIGNsb3N1cmUgYmVoYXZpb3IgdG8gdGhlaXIgY2FzZSBmb2xkaW5nIGJlaGF2aW9yLgorICAgICAgICAgKi8KKworICAgICAgICBzd2l0Y2goYykgeworICAgICAgICBjYXNlIDB4NDk6CisgICAgICAgICAgICAvKiByZWd1bGFyIGkgYW5kIEkgYXJlIGluIG9uZSBlcXVpdmFsZW5jZSBjbGFzcyAqLworICAgICAgICAgICAgc2V0LmFkZCgweDY5KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSAweDY5OgorICAgICAgICAgICAgc2V0LmFkZCgweDQ5KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSAweDEzMDoKKyAgICAgICAgICAgIC8qIGRvdHRlZCBJIGlzIGluIGEgY2xhc3Mgd2l0aCA8MDA2OSAwMzA3PiAoZm9yIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSB3aXRoIDwwMDQ5IDAzMDc+KSAqLworICAgICAgICAgICAgc2V0LmFkZChpRG90KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSAweDEzMToKKyAgICAgICAgICAgIC8qIGRvdGxlc3MgaSBpcyBpbiBhIGNsYXNzIGJ5IGl0c2VsZiAqLworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLyogb3RoZXJ3aXNlIHVzZSB0aGUgZGF0YSBmaWxlIGRhdGEgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaW50IHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIGlmKGdldFR5cGVGcm9tUHJvcHMocHJvcHMpIT1OT05FKSB7CisgICAgICAgICAgICAgICAgLyogYWRkIHRoZSBvbmUgc2ltcGxlIGNhc2UgbWFwcGluZywgbm8gbWF0dGVyIHdoYXQgdHlwZSBpdCBpcyAqLworICAgICAgICAgICAgICAgIGludCBkZWx0YT1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICAgICAgaWYoZGVsdGEhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChjK2RlbHRhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogYyBoYXMgZXhjZXB0aW9ucywgc28gdGhlcmUgbWF5IGJlIG11bHRpcGxlIHNpbXBsZSBhbmQvb3IKKyAgICAgICAgICAgICAqIGZ1bGwgY2FzZSBtYXBwaW5ncy4gQWRkIHRoZW0gYWxsLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0MCwgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGNsb3N1cmVPZmZzZXQ7CisgICAgICAgICAgICBpbnQgZXhjV29yZD1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIGludCBpbmRleCwgY2xvc3VyZUxlbmd0aCwgZnVsbExlbmd0aCwgbGVuZ3RoOworCisgICAgICAgICAgICBleGNPZmZzZXQwPWV4Y09mZnNldDsKKworICAgICAgICAgICAgLyogYWRkIGFsbCBzaW1wbGUgY2FzZSBtYXBwaW5ncyAqLworICAgICAgICAgICAgZm9yKGluZGV4PUVYQ19MT1dFUjsgaW5kZXg8PUVYQ19USVRMRTsgKytpbmRleCkgeworICAgICAgICAgICAgICAgIGlmKGhhc1Nsb3QoZXhjV29yZCwgaW5kZXgpKSB7CisgICAgICAgICAgICAgICAgICAgIGV4Y09mZnNldD1leGNPZmZzZXQwOworICAgICAgICAgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBpbmRleCwgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGdldCB0aGUgY2xvc3VyZSBzdHJpbmcgcG9pbnRlciAmIGxlbmd0aCAqLworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfQ0xPU1VSRSkpIHsKKyAgICAgICAgICAgICAgICBleGNPZmZzZXQ9ZXhjT2Zmc2V0MDsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfQ0xPU1VSRSwgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBjbG9zdXJlTGVuZ3RoPShpbnQpdmFsdWUmQ0xPU1VSRV9NQVhfTEVOR1RIOyAvKiBoaWdoZXIgYml0cyBhcmUgcmVzZXJ2ZWQgKi8KKyAgICAgICAgICAgICAgICBjbG9zdXJlT2Zmc2V0PShpbnQpKHZhbHVlPj4zMikrMTsgLyogYmVoaW5kIHRoaXMgc2xvdCwgdW5sZXNzIHRoZXJlIGFyZSBmdWxsIGNhc2UgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2xvc3VyZUxlbmd0aD0wOworICAgICAgICAgICAgICAgIGNsb3N1cmVPZmZzZXQ9MDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogYWRkIHRoZSBmdWxsIGNhc2UgZm9sZGluZyAqLworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUykpIHsKKyAgICAgICAgICAgICAgICBleGNPZmZzZXQ9ZXhjT2Zmc2V0MDsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUywgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmdWxsTGVuZ3RoPShpbnQpdmFsdWU7CisKKyAgICAgICAgICAgICAgICAvKiBzdGFydCBvZiBmdWxsIGNhc2UgbWFwcGluZyBzdHJpbmdzICovCisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0PShpbnQpKHZhbHVlPj4zMikrMTsKKworICAgICAgICAgICAgICAgIGZ1bGxMZW5ndGgmPTB4ZmZmZjsgLyogYml0cyAxNiBhbmQgaGlnaGVyIGFyZSByZXNlcnZlZCAqLworCisgICAgICAgICAgICAgICAgLyogc2tpcCB0aGUgbG93ZXJjYXNlIHJlc3VsdCBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICBleGNPZmZzZXQrPWZ1bGxMZW5ndGgmRlVMTF9MT1dFUjsKKyAgICAgICAgICAgICAgICBmdWxsTGVuZ3RoPj49NDsKKworICAgICAgICAgICAgICAgIC8qIGFkZCB0aGUgZnVsbCBjYXNlIGZvbGRpbmcgc3RyaW5nICovCisgICAgICAgICAgICAgICAgbGVuZ3RoPWZ1bGxMZW5ndGgmMHhmOworICAgICAgICAgICAgICAgIGlmKGxlbmd0aCE9MCkgeworICAgICAgICAgICAgICAgICAgICBzZXQuYWRkKG5ldyBTdHJpbmcoZXhjZXB0aW9ucywgZXhjT2Zmc2V0LCBsZW5ndGgpKTsKKyAgICAgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogc2tpcCB0aGUgdXBwZXJjYXNlIGFuZCB0aXRsZWNhc2Ugc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGZ1bGxMZW5ndGg+Pj00OworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbExlbmd0aCYweGY7CisgICAgICAgICAgICAgICAgZnVsbExlbmd0aD4+PTQ7CisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1mdWxsTGVuZ3RoOworCisgICAgICAgICAgICAgICAgY2xvc3VyZU9mZnNldD1leGNPZmZzZXQ7IC8qIGJlaGluZCBmdWxsIGNhc2UgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogYWRkIGVhY2ggY29kZSBwb2ludCBpbiB0aGUgY2xvc3VyZSBzdHJpbmcgKi8KKyAgICAgICAgICAgIGZvcihpbmRleD0wOyBpbmRleDxjbG9zdXJlTGVuZ3RoOyBpbmRleCs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpKSB7CisgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQoZXhjZXB0aW9ucywgY2xvc3VyZU9mZnNldCwgZXhjZXB0aW9ucy5sZW5ndGgsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBjb21wYXJlIHMsIHdoaWNoIGhhcyBhIGxlbmd0aCwgd2l0aCB0PXVuZm9sZFt1bmZvbGRPZmZzZXQuLl0sIHdoaWNoIGhhcyBhIG1heGltdW0gbGVuZ3RoIG9yIGlzIE5VTC10ZXJtaW5hdGVkCisgICAgICogbXVzdCBiZSBzLmxlbmd0aCgpPjAgYW5kIG1heD4wIGFuZCBzLmxlbmd0aCgpPD1tYXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBzdHJjbXBNYXgoU3RyaW5nIHMsIGludCB1bmZvbGRPZmZzZXQsIGludCBtYXgpIHsKKyAgICAgICAgaW50IGkxLCBsZW5ndGgsIGMxLCBjMjsKKworICAgICAgICBsZW5ndGg9cy5sZW5ndGgoKTsKKyAgICAgICAgbWF4LT1sZW5ndGg7IC8qIHdlIHJlcXVpcmUgbGVuZ3RoPD1tYXgsIHNvIG5vIG5lZWQgdG8gZGVjcmVtZW50IG1heCBpbiB0aGUgbG9vcCAqLworICAgICAgICBpMT0wOworICAgICAgICBkbyB7CisgICAgICAgICAgICBjMT1zLmNoYXJBdChpMSsrKTsKKyAgICAgICAgICAgIGMyPXVuZm9sZFt1bmZvbGRPZmZzZXQrK107CisgICAgICAgICAgICBpZihjMj09MCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOyAvKiByZWFjaGVkIHRoZSBlbmQgb2YgdCBidXQgbm90IG9mIHMgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMxLT1jMjsKKyAgICAgICAgICAgIGlmKGMxIT0wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGMxOyAvKiByZXR1cm4gZGlmZmVyZW5jZSByZXN1bHQgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSgtLWxlbmd0aD4wKTsKKyAgICAgICAgLyogZW5kcyB3aXRoIGxlbmd0aD09MCAqLworCisgICAgICAgIGlmKG1heD09MCB8fCB1bmZvbGRbdW5mb2xkT2Zmc2V0XT09MCkgeworICAgICAgICAgICAgcmV0dXJuIDA7IC8qIGVxdWFsIHRvIGxlbmd0aCBvZiBib3RoIHN0cmluZ3MgKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAtbWF4OyAvKiByZXR1cm4gbGVuZ2ggZGlmZmVyZW5jZSAqLworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFwcyB0aGUgc3RyaW5nIHRvIHNpbmdsZSBjb2RlIHBvaW50cyBhbmQgYWRkcyB0aGUgYXNzb2NpYXRlZCBjYXNlIGNsb3N1cmUKKyAgICAgKiBtYXBwaW5ncy4KKyAgICAgKiBUaGUgc3RyaW5nIGlzIG1hcHBlZCB0byBjb2RlIHBvaW50cyBpZiBpdCBpcyB0aGVpciBmdWxsIGNhc2UgZm9sZGluZyBzdHJpbmcuCisgICAgICogSW4gb3RoZXIgd29yZHMsIHRoaXMgcGVyZm9ybXMgYSByZXZlcnNlIGZ1bGwgY2FzZSBmb2xkaW5nIGFuZCB0aGVuCisgICAgICogYWRkcyB0aGUgY2FzZSBjbG9zdXJlIGl0ZW1zIG9mIHRoZSByZXN1bHRpbmcgY29kZSBwb2ludHMuCisgICAgICogSWYgdGhlIHN0cmluZyBpcyBmb3VuZCBhbmQgaXRzIGNsb3N1cmUgYXBwbGllZCwgdGhlbgorICAgICAqIHRoZSBzdHJpbmcgaXRzZWxmIGlzIGFkZGVkIGFzIHdlbGwgYXMgcGFydCBvZiBpdHMgY29kZSBwb2ludHMnIGNsb3N1cmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyB3YXMgZm91bmQKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBhZGRTdHJpbmdDYXNlQ2xvc3VyZShTdHJpbmcgcywgVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgaW50IGksIGxlbmd0aCwgc3RhcnQsIGxpbWl0LCByZXN1bHQsIHVuZm9sZE9mZnNldCwgdW5mb2xkUm93cywgdW5mb2xkUm93V2lkdGgsIHVuZm9sZFN0cmluZ1dpZHRoOworCisgICAgICAgIGlmKHVuZm9sZD09bnVsbCB8fCBzPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vIHJldmVyc2UgY2FzZSBmb2xkaW5nIGRhdGEsIG9yIG5vIHN0cmluZyAqLworICAgICAgICB9CisgICAgICAgIGxlbmd0aD1zLmxlbmd0aCgpOworICAgICAgICBpZihsZW5ndGg8PTEpIHsKKyAgICAgICAgICAgIC8qIHRoZSBzdHJpbmcgaXMgdG9vIHNob3J0IHRvIGZpbmQgYW55IG1hdGNoICovCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbW9yZSBwcmVjaXNlIHdvdWxkIGJlOgorICAgICAgICAgICAgICogaWYoIXVfc3RySGFzTW9yZUNoYXIzMlRoYW4ocywgbGVuZ3RoLCAxKSkKKyAgICAgICAgICAgICAqIGJ1dCB0aGlzIGRvZXMgbm90IG1ha2UgbXVjaCBwcmFjdGljYWwgZGlmZmVyZW5jZSBiZWNhdXNlCisgICAgICAgICAgICAgKiBhIHNpbmdsZSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd291bGQganVzdCBub3QgYmUgZm91bmQKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgdW5mb2xkUm93cz11bmZvbGRbVU5GT0xEX1JPV1NdOworICAgICAgICB1bmZvbGRSb3dXaWR0aD11bmZvbGRbVU5GT0xEX1JPV19XSURUSF07CisgICAgICAgIHVuZm9sZFN0cmluZ1dpZHRoPXVuZm9sZFtVTkZPTERfU1RSSU5HX1dJRFRIXTsKKyAgICAgICAgLy91bmZvbGRDUFdpZHRoPXVuZm9sZFJvd1dpZHRoLXVuZm9sZFN0cmluZ1dpZHRoOworCisgICAgICAgIGlmKGxlbmd0aD51bmZvbGRTdHJpbmdXaWR0aCkgeworICAgICAgICAgICAgLyogdGhlIHN0cmluZyBpcyB0b28gbG9uZyB0byBmaW5kIGFueSBtYXRjaCAqLworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyogZG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUgc3RyaW5nICovCisgICAgICAgIHN0YXJ0PTA7CisgICAgICAgIGxpbWl0PXVuZm9sZFJvd3M7CisgICAgICAgIHdoaWxlKHN0YXJ0PGxpbWl0KSB7CisgICAgICAgICAgICBpPShzdGFydCtsaW1pdCkvMjsKKyAgICAgICAgICAgIHVuZm9sZE9mZnNldD0oKGkrMSkqdW5mb2xkUm93V2lkdGgpOyAvLyArMSB0byBza2lwIHRoZSBoZWFkZXIgdmFsdWVzIGFib3ZlCisgICAgICAgICAgICByZXN1bHQ9c3RyY21wTWF4KHMsIHVuZm9sZE9mZnNldCwgdW5mb2xkU3RyaW5nV2lkdGgpOworCisgICAgICAgICAgICBpZihyZXN1bHQ9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBmb3VuZCB0aGUgc3RyaW5nOiBhZGQgZWFjaCBjb2RlIHBvaW50LCBhbmQgaXRzIGNhc2UgY2xvc3VyZSAqLworICAgICAgICAgICAgICAgIGludCBjOworCisgICAgICAgICAgICAgICAgZm9yKGk9dW5mb2xkU3RyaW5nV2lkdGg7IGk8dW5mb2xkUm93V2lkdGggJiYgdW5mb2xkW3VuZm9sZE9mZnNldCtpXSE9MDsgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGM9VVRGMTYuY2hhckF0KHVuZm9sZCwgdW5mb2xkT2Zmc2V0LCB1bmZvbGQubGVuZ3RoLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkQ2FzZUNsb3N1cmUoYywgc2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYocmVzdWx0PDApIHsKKyAgICAgICAgICAgICAgICBsaW1pdD1pOworICAgICAgICAgICAgfSBlbHNlIC8qIHJlc3VsdD4wICovIHsKKyAgICAgICAgICAgICAgICBzdGFydD1pKzE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIHN0cmluZyBub3QgZm91bmQgKi8KKyAgICB9CisKKyAgICAvKiogQHJldHVybiBOT05FLCBMT1dFUiwgVVBQRVIsIFRJVExFICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUeXBlKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXRUeXBlRnJvbVByb3BzKHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykpOworICAgIH0KKworICAgIC8qKiBAcmV0dXJuIHNhbWUgYXMgZ2V0VHlwZSgpLCBvciA8MCBpZiBjIGlzIGNhc2UtaWdub3JhYmxlICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUeXBlT3JJZ25vcmFibGUoaW50IGMpIHsKKyAgICAgICAgaW50IHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGludCB0eXBlPWdldFR5cGVGcm9tUHJvcHMocHJvcHMpOworICAgICAgICBpZih0eXBlIT1OT05FKSB7CisgICAgICAgICAgICByZXR1cm4gdHlwZTsKKyAgICAgICAgfSBlbHNlIGlmKAorICAgICAgICAgICAgYz09MHgzMDcgfHwKKyAgICAgICAgICAgIChwcm9wcyYoRVhDRVBUSU9OfENBU0VfSUdOT1JBQkxFKSk9PUNBU0VfSUdOT1JBQkxFCisgICAgICAgICkgeworICAgICAgICAgICAgcmV0dXJuIC0xOyAvKiBjYXNlLWlnbm9yYWJsZSAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7IC8qIGMgaXMgbmVpdGhlciBjYXNlZCBub3IgY2FzZS1pZ25vcmFibGUgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBAcmV0dXJuIE5PX0RPVCwgU09GVF9ET1RURUQsIEFCT1ZFLCBPVEhFUl9BQ0NFTlQgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldERvdFR5cGUoaW50IGMpIHsKKyAgICAgICAgaW50IHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9wcyZET1RfTUFTSzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoZXhjZXB0aW9uc1tnZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKV0+PkVYQ19ET1RfU0hJRlQpJkRPVF9NQVNLOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNTb2Z0RG90dGVkKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXREb3RUeXBlKGMpPT1TT0ZUX0RPVFRFRDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0Nhc2VTZW5zaXRpdmUoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICh0cmllLmdldENvZGVQb2ludFZhbHVlKGMpJlNFTlNJVElWRSkhPTA7CisgICAgfQorCisgICAgLy8gc3RyaW5nIGNhc2luZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLyoKKyAgICAgKiBUaGVzZSBpbnRlcm5hbCBmdW5jdGlvbnMgZm9ybSB0aGUgY29yZSBvZiBzdHJpbmcgY2FzZSBtYXBwaW5ncy4KKyAgICAgKiBUaGV5IG1hcCBzaW5nbGUgY29kZSBwb2ludHMgdG8gcmVzdWx0IGNvZGUgcG9pbnRzIG9yIHN0cmluZ3MgYW5kIHRha2UKKyAgICAgKiBhbGwgbmVjZXNzYXJ5IGNvbmRpdGlvbnMgKGNvbnRleHQsIGxvY2FsZSBJRCwgb3B0aW9ucykgaW50byBhY2NvdW50LgorICAgICAqCisgICAgICogVGhleSBkbyBub3QgaXRlcmF0ZSBvdmVyIHRoZSBzb3VyY2Ugb3Igd3JpdGUgdG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICogc28gdGhhdCB0aGUgc2FtZSBmdW5jdGlvbnMgYXJlIHVzZWZ1bCBmb3Igbm9uLXN0YW5kYXJkIHN0cmluZyBzdG9yYWdlLAorICAgICAqIHN1Y2ggYXMgaW4gYSBSZXBsYWNlYWJsZSAoZm9yIFRyYW5zbGl0ZXJhdG9yKSBvciBVVEYtOC8zMiBzdHJpbmdzIGV0Yy4KKyAgICAgKiBGb3IgdGhlIHNhbWUgcmVhc29uLCB0aGUgInN1cnJvdW5kaW5nIHRleHQiIGNvbnRleHQgaXMgcGFzc2VkIGluIGFzIGEKKyAgICAgKiBDb250ZXh0SXRlcmF0b3Igd2hpY2ggZG9lcyBub3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMgYWJvdXQKKyAgICAgKiB0aGUgdW5kZXJseWluZyBzdG9yYWdlLgorICAgICAqCisgICAgICogVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGhlbHBlciBmdW5jdGlvbnMgdGhhdCBjaGVjayBmb3IgY29uZGl0aW9ucworICAgICAqIGluIHRoZSBpbnB1dCB0ZXh0IHN1cnJvdW5kaW5nIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQKKyAgICAgKiBhY2NvcmRpbmcgdG8gU3BlY2lhbENhc2luZy50eHQuCisgICAgICoKKyAgICAgKiBFYWNoIGhlbHBlciBmdW5jdGlvbiBnZXRzIHRoZSBpbmRleAorICAgICAqIC0gYWZ0ZXIgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBpZiBpdCBsb29rcyBhdCBmb2xsb3dpbmcgdGV4dAorICAgICAqIC0gYmVmb3JlIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgaWYgaXQgbG9va3MgYXQgcHJlY2VkaW5nIHRleHQKKyAgICAgKgorICAgICAqIFVuaWNvZGUgMy4yIFVBWCAyMSAiQ2FzZSBNYXBwaW5ncyIgZGVmaW5lcyB0aGUgY29uZGl0aW9ucyBhcyBmb2xsb3dzOgorICAgICAqCisgICAgICogRmluYWxfU2lnbWEKKyAgICAgKiAgIEMgaXMgcHJlY2VkZWQgYnkgYSBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mCisgICAgICogICAgIGEgY2FzZWQgbGV0dGVyIGFuZCBhIGNhc2UtaWdub3JhYmxlIHNlcXVlbmNlLAorICAgICAqICAgYW5kIEMgaXMgbm90IGZvbGxvd2VkIGJ5IGEgc2VxdWVuY2UgY29uc2lzdGluZyBvZgorICAgICAqICAgICBhbiBpZ25vcmFibGUgc2VxdWVuY2UgYW5kIHRoZW4gYSBjYXNlZCBsZXR0ZXIuCisgICAgICoKKyAgICAgKiBNb3JlX0Fib3ZlCisgICAgICogICBDIGlzIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGNoYXJhY3RlcnMgb2YgY29tYmluaW5nIGNsYXNzIDIzMCAoQUJPVkUpCisgICAgICogICBpbiB0aGUgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZS4KKyAgICAgKgorICAgICAqIEFmdGVyX1NvZnRfRG90dGVkCisgICAgICogICBUaGUgbGFzdCBwcmVjZWRpbmcgY2hhcmFjdGVyIHdpdGggY29tYmluaW5nIGNsYXNzIG9mIHplcm8gYmVmb3JlIEMKKyAgICAgKiAgIHdhcyBTb2Z0X0RvdHRlZCwKKyAgICAgKiAgIGFuZCB0aGVyZSBpcyBubyBpbnRlcnZlbmluZyBjb21iaW5pbmcgY2hhcmFjdGVyIGNsYXNzIDIzMCAoQUJPVkUpLgorICAgICAqCisgICAgICogQmVmb3JlX0RvdAorICAgICAqICAgQyBpcyBmb2xsb3dlZCBieSBjb21iaW5pbmcgZG90IGFib3ZlIChVKzAzMDcpLgorICAgICAqICAgQW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgd2l0aCBhIGNvbWJpbmluZyBjbGFzcyB0aGF0IGlzIG5laXRoZXIgMCBub3IgMjMwCisgICAgICogICBtYXkgaW50ZXJ2ZW5lIGJldHdlZW4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGFuZCB0aGUgY29tYmluaW5nIGRvdCBhYm92ZS4KKyAgICAgKgorICAgICAqIFRoZSBlcnJhdHVtIGZyb20gMjAwMi0xMC0zMSBhZGRzIHRoZSBjb25kaXRpb24KKyAgICAgKgorICAgICAqIEFmdGVyX0kKKyAgICAgKiAgIFRoZSBsYXN0IHByZWNlZGluZyBiYXNlIGNoYXJhY3RlciB3YXMgYW4gdXBwZXJjYXNlIEksIGFuZCB0aGVyZSBpcyBubworICAgICAqICAgaW50ZXJ2ZW5pbmcgY29tYmluaW5nIGNoYXJhY3RlciBjbGFzcyAyMzAgKEFCT1ZFKS4KKyAgICAgKgorICAgICAqICAgKFNlZSBKaXR0ZXJidWcgMjM0NCBhbmQgdGhlIGNvbW1lbnRzIG9uIEFmdGVyX0kgYmVsb3cuKQorICAgICAqCisgICAgICogSGVscGVyIGRlZmluaXRpb25zIGluIFVuaWNvZGUgMy4yIFVBWCAyMToKKyAgICAgKgorICAgICAqIEQxLiBBIGNoYXJhY3RlciBDIGlzIGRlZmluZWQgdG8gYmUgY2FzZWQKKyAgICAgKiAgICAgaWYgaXQgbWVldHMgYW55IG9mIHRoZSBmb2xsb3dpbmcgY3JpdGVyaWE6CisgICAgICoKKyAgICAgKiAgIC0gVGhlIGdlbmVyYWwgY2F0ZWdvcnkgb2YgQyBpcyBUaXRsZWNhc2UgTGV0dGVyIChMdCkKKyAgICAgKiAgIC0gSW4gW0NvcmVQcm9wc10sIEMgaGFzIG9uZSBvZiB0aGUgcHJvcGVydGllcyBVcHBlcmNhc2UsIG9yIExvd2VyY2FzZQorICAgICAqICAgLSBHaXZlbiBEID0gTkZEKEMpLCB0aGVuIGl0IGlzIG5vdCB0aGUgY2FzZSB0aGF0OgorICAgICAqICAgICBEID0gVUNEX2xvd2VyKEQpID0gVUNEX3VwcGVyKEQpID0gVUNEX3RpdGxlKEQpCisgICAgICogICAgIChUaGlzIHRoaXJkIGNyaXRlcml1bSBkb2VzIG5vdCBhZGQgYW55IGNoYXJhY3RlcnMgdG8gdGhlIGxpc3QKKyAgICAgKiAgICAgIGZvciBVbmljb2RlIDMuMi4gSWdub3JlZC4pCisgICAgICoKKyAgICAgKiBEMi4gQSBjaGFyYWN0ZXIgQyBpcyBkZWZpbmVkIHRvIGJlIGNhc2UtaWdub3JhYmxlCisgICAgICogICAgIGlmIGl0IG1lZXRzIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGNyaXRlcmlhOgorICAgICAqCisgICAgICogICAtIFRoZSBnZW5lcmFsIGNhdGVnb3J5IG9mIEMgaXMKKyAgICAgKiAgICAgTm9uc3BhY2luZyBNYXJrIChNbiksIG9yIEVuY2xvc2luZyBNYXJrIChNZSksIG9yIEZvcm1hdCBDb250cm9sIChDZiksIG9yCisgICAgICogICAgIExldHRlciBNb2RpZmllciAoTG0pLCBvciBTeW1ib2wgTW9kaWZpZXIgKFNrKQorICAgICAqICAgLSBDIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgCisgICAgICogICAgIFUrMDAyNyBBUE9TVFJPUEhFCisgICAgICogICAgIFUrMDBBRCBTT0ZUIEhZUEhFTiAoU0hZKQorICAgICAqICAgICBVKzIwMTkgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgICogICAgICAgICAgICAodGhlIHByZWZlcnJlZCBjaGFyYWN0ZXIgZm9yIGFwb3N0cm9waGUpCisgICAgICoKKyAgICAgKiBEMy4gQSBjYXNlLWlnbm9yYWJsZSBzZXF1ZW5jZSBpcyBhIHNlcXVlbmNlIG9mCisgICAgICogICAgIHplcm8gb3IgbW9yZSBjYXNlLWlnbm9yYWJsZSBjaGFyYWN0ZXJzLgorICAgICAqLworCisgICAgLyoqCisgICAgICogSXRlcmF0b3IgZm9yIHN0cmluZyBjYXNlIG1hcHBpbmdzLCB3aGljaCBuZWVkIHRvIGxvb2sgYXQgdGhlCisgICAgICogY29udGV4dCAoc3Vycm91bmRpbmcgdGV4dCkgb2YgYSBnaXZlbiBjaGFyYWN0ZXIgZm9yIGNvbmRpdGlvbmFsIG1hcHBpbmdzLgorICAgICAqCisgICAgICogVGhlIGl0ZXJhdG9yIG9ubHkgbmVlZHMgdG8gZ28gYmFja3dhcmQgb3IgZm9yd2FyZCBhd2F5IGZyb20gdGhlCisgICAgICogY2hhcmFjdGVyIGluIHF1ZXN0aW9uLiBJdCBkb2VzIG5vdCB1c2UgYW55IGluZGV4ZXMgb24gdGhpcyBpbnRlcmZhY2UuCisgICAgICogSXQgZG9lcyBub3Qgc3VwcG9ydCByYW5kb20gYWNjZXNzIG9yIGFuIGFyYml0cmFyeSBjaGFuZ2Ugb2YKKyAgICAgKiBpdGVyYXRpb24gZGlyZWN0aW9uLgorICAgICAqCisgICAgICogVGhlIGNvZGUgcG9pbnQgYmVpbmcgY2FzZS1tYXBwZWQgaXRzZWxmIGlzIG5ldmVyIHJldHVybmVkIGJ5CisgICAgICogdGhpcyBpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50ZXJmYWNlIENvbnRleHRJdGVyYXRvciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgZm9yIGZvcndhcmQgb3IgYmFja3dhcmQgaXRlcmF0aW9uLgorICAgICAgICAgKiBAcGFyYW0gZGlyID4wOiBCZWdpbiBpdGVyYXRpbmcgZm9yd2FyZCBmcm9tIHRoZSBmaXJzdCBjb2RlIHBvaW50CisgICAgICAgICAqIGFmdGVyIHRoZSBvbmUgdGhhdCBpcyBiZWluZyBjYXNlLW1hcHBlZC4KKyAgICAgICAgICogICAgICAgICAgICA8MDogQmVnaW4gaXRlcmF0aW5nIGJhY2t3YXJkIGZyb20gdGhlIGZpcnN0IGNvZGUgcG9pbnQKKyAgICAgICAgICogYmVmb3JlIHRoZSBvbmUgdGhhdCBpcyBiZWluZyBjYXNlLW1hcHBlZC4gICAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBkaXIpOworICAgICAgICAvKioKKyAgICAgICAgICogSXRlcmF0ZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQsIG1vdmluZyBpbiB0aGUgZGlyZWN0aW9uCisgICAgICAgICAqIGRldGVybWluZWQgYnkgdGhlIHJlc2V0KCkgY2FsbC4KKyAgICAgICAgICogQHJldHVybiBOZXh0IGNvZGUgcG9pbnQsIG9yIDwwIHdoZW4gdGhlIGl0ZXJhdGlvbiBpcyBkb25lLiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBzdHJpbmcgY2FzZSBtYXBwaW5ncywgYSBzaW5nbGUgY2hhcmFjdGVyIChhIGNvZGUgcG9pbnQpIGlzIG1hcHBlZAorICAgICAqIGVpdGhlciB0byBpdHNlbGYgKGluIHdoaWNoIGNhc2UgaW4tcGxhY2UgbWFwcGluZyBmdW5jdGlvbnMgZG8gbm90aGluZyksCisgICAgICogb3IgdG8gYW5vdGhlciBzaW5nbGUgY29kZSBwb2ludCwgb3IgdG8gYSBzdHJpbmcuCisgICAgICogQXNpZGUgZnJvbSB0aGUgc3RyaW5nIGNvbnRlbnRzLCB0aGVzZSBhcmUgaW5kaWNhdGVkIHdpdGggYSBzaW5nbGUgaW50CisgICAgICogdmFsdWUgYXMgZm9sbG93czoKKyAgICAgKgorICAgICAqIE1hcHBpbmcgdG8gc2VsZjogTmVnYXRpdmUgdmFsdWVzICh+c2VsZiBpbnN0ZWFkIG9mIC1zZWxmIHRvIHN1cHBvcnQgVSswMDAwKQorICAgICAqCisgICAgICogTWFwcGluZyB0byBhbm90aGVyIGNvZGUgcG9pbnQ6IFBvc2l0aXZlIHZhbHVlcyA+TUFYX1NUUklOR19MRU5HVEgKKyAgICAgKgorICAgICAqIE1hcHBpbmcgdG8gYSBzdHJpbmc6IFRoZSBzdHJpbmcgbGVuZ3RoICgwLi5NQVhfU1RSSU5HX0xFTkdUSCkgaXMKKyAgICAgKiByZXR1cm5lZC4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgcmVzdWx0IG1heSBpbmRlZWQgaGF2ZSB6ZXJvIGxlbmd0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfU1RSSU5HX0xFTkdUSD0weDFmOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19VTktOT1dOPTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19ST09UPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19UVVJLSVNIPTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19MSVRIVUFOSUFOPTM7CisKKyAgICAvKgorICAgICAqIENoZWNrcyBhbmQgY2FjaGVzIHRoZSB0eXBlIG9mIGxvY2FsZSBJRCBhcyBpdCBpcyByZWxldmFudCBmb3IgY2FzZSBtYXBwaW5nLgorICAgICAqIElmIHRoZSBsb2NDYWNoZSBpcyBub3QgbnVsbCwgdGhlbiBpdCBtdXN0IGJlIGluaXRpYWxpemVkIHdpdGggbG9jQ2FjaGVbMF09MCAuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldENhc2VMb2NhbGUoVUxvY2FsZSBsb2NhbGUsIGludFtdIGxvY0NhY2hlKSB7CisgICAgICAgIGludCByZXN1bHQ7CisKKyAgICAgICAgaWYobG9jQ2FjaGUhPW51bGwgJiYgKHJlc3VsdD1sb2NDYWNoZVswXSkhPUxPQ19VTktOT1dOKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0PUxPQ19ST09UOworCisgICAgICAgIFN0cmluZyBsYW5ndWFnZT1sb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgaWYobGFuZ3VhZ2UuZXF1YWxzKCJ0ciIpIHx8IGxhbmd1YWdlLmVxdWFscygidHVyIikgfHwgbGFuZ3VhZ2UuZXF1YWxzKCJheiIpIHx8IGxhbmd1YWdlLmVxdWFscygiYXplIikpIHsKKyAgICAgICAgICAgIHJlc3VsdD1MT0NfVFVSS0lTSDsKKyAgICAgICAgfSBlbHNlIGlmKGxhbmd1YWdlLmVxdWFscygibHQiKSB8fCBsYW5ndWFnZS5lcXVhbHMoImxpdCIpKSB7CisgICAgICAgICAgICByZXN1bHQ9TE9DX0xJVEhVQU5JQU47CisgICAgICAgIH0KKworICAgICAgICBpZihsb2NDYWNoZSE9bnVsbCkgeworICAgICAgICAgICAgbG9jQ2FjaGVbMF09cmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyogSXMgZm9sbG93ZWQgYnkge2Nhc2UtaWdub3JhYmxlfSogY2FzZWQgID8gKGRpciBkZXRlcm1pbmVzIGxvb2tpbmcgZm9yd2FyZC9iYWNrd2FyZCkgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNGb2xsb3dlZEJ5Q2FzZWRMZXR0ZXIoQ29udGV4dEl0ZXJhdG9yIGl0ZXIsIGludCBkaXIpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBwcm9wczsKKworICAgICAgICBpZihpdGVyPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmb3IoaXRlci5yZXNldChkaXIpOyAoYz1pdGVyLm5leHQoKSk+PTA7KSB7CisgICAgICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAgICAgaWYoZ2V0VHlwZUZyb21Qcm9wcyhwcm9wcykhPU5PTkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogZm9sbG93ZWQgYnkgY2FzZWQgbGV0dGVyICovCisgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgzMDcgfHwgKHByb3BzJihFWENFUFRJT058Q0FTRV9JR05PUkFCTEUpKT09Q0FTRV9JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAvKiBjYXNlLWlnbm9yYWJsZSwgY29udGludWUgd2l0aCB0aGUgbG9vcCAqLworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBpZ25vcmFibGUgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLyogbm90IGZvbGxvd2VkIGJ5IGNhc2VkIGxldHRlciAqLworICAgIH0KKworICAgIC8qIElzIHByZWNlZGVkIGJ5IFNvZnRfRG90dGVkIGNoYXJhY3RlciB3aXRoIG5vIGludGVydmVuaW5nIGNjPTIzMCA/ICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzUHJlY2VkZWRCeVNvZnREb3R0ZWQoQ29udGV4dEl0ZXJhdG9yIGl0ZXIpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBkb3RUeXBlOworCisgICAgICAgIGlmKGl0ZXI9PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpdGVyLnJlc2V0KC0xKTsgKGM9aXRlci5uZXh0KCkpPj0wOykgeworICAgICAgICAgICAgZG90VHlwZT1nZXREb3RUeXBlKGMpOworICAgICAgICAgICAgaWYoZG90VHlwZT09U09GVF9ET1RURUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogcHJlY2VkZWQgYnkgVFlQRV9pICovCisgICAgICAgICAgICB9IGVsc2UgaWYoZG90VHlwZSE9T1RIRVJfQUNDRU5UKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBwcmVjZWRlZCBieSBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgKG5vdCBUWVBFX2kpLCBvciBpbnRlcnZlbmluZyBjYz09MjMwICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBwcmVjZWRlZCBieSBUWVBFX2kgKi8KKyAgICB9CisKKyAgICAvKgorICAgICAqIFNlZSBKaXR0ZXJidWcgMjM0NDoKKyAgICAgKiBUaGUgY29uZGl0aW9uIEFmdGVyX0kgZm9yIFR1cmtpYy1sb3dlcmNhc2luZyBvZiBVKzAzMDcgY29tYmluaW5nIGRvdCBhYm92ZQorICAgICAqIGlzIGNoZWNrZWQgaW4gSUNVIDIuMCwgMi4xLCAyLjYgYnV0IHdhcyBub3QgaW4gMi4yICYgMi40IGJlY2F1c2UKKyAgICAgKiB3ZSBtYWRlIHRob3NlIHJlbGVhc2VzIGNvbXBhdGlibGUgd2l0aCBVbmljb2RlIDMuMiB3aGljaCBoYWQgbm90IGZpeGVkCisgICAgICogYSByZWxhdGVkIGJ1ZyBpbiBTcGVjaWFsQ2FzaW5nLnR4dC4KKyAgICAgKgorICAgICAqIEZyb20gdGhlIEppdHRlcmJ1ZyAyMzQ0IHRleHQ6CisgICAgICogLi4uIHRoaXMgYnVnIGlzIGxpc3RlZCBhcyBhIFVuaWNvZGUgZXJyYXR1bQorICAgICAqIGZyb20gMjAwMi0xMC0zMSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaTJlcnJhdGEvVW5pY29kZUVycmF0YS5odG1sCisgICAgICogPHF1b3RlPgorICAgICAqIFRoZXJlIGFyZSB0d28gZXJyb3JzIGluIFNwZWNpYWxDYXNpbmcudHh0LgorICAgICAqIDEuIE1pc3Npbmcgc2VtaWNvbG9ucyBvbiB0d28gbGluZXMuIC4uLiBbaXJyZWxldmFudCBmb3IgSUNVXQorICAgICAqIDIuIEFuIGluY29ycmVjdCBjb250ZXh0IGRlZmluaXRpb24uIENvcnJlY3QgYXMgZm9sbG93czoKKyAgICAgKiA8IDAzMDc7IDsgMDMwNzsgMDMwNzsgdHIgQWZ0ZXJfU29mdF9Eb3R0ZWQ7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAqIDwgMDMwNzsgOyAwMzA3OyAwMzA3OyBheiBBZnRlcl9Tb2Z0X0RvdHRlZDsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICogLS0tCisgICAgICogPiAwMzA3OyA7IDAzMDc7IDAzMDc7IHRyIEFmdGVyX0k7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAqID4gMDMwNzsgOyAwMzA3OyAwMzA3OyBheiBBZnRlcl9JOyAjIENPTUJJTklORyBET1QgQUJPVkUKKyAgICAgKiB3aGVyZSB0aGUgY29udGV4dCBBZnRlcl9JIGlzIGRlZmluZWQgYXM6CisgICAgICogVGhlIGxhc3QgcHJlY2VkaW5nIGJhc2UgY2hhcmFjdGVyIHdhcyBhbiB1cHBlcmNhc2UgSSwgYW5kIHRoZXJlIGlzIG5vCisgICAgICogaW50ZXJ2ZW5pbmcgY29tYmluaW5nIGNoYXJhY3RlciBjbGFzcyAyMzAgKEFCT1ZFKS4KKyAgICAgKiA8L3F1b3RlPgorICAgICAqCisgICAgICogTm90ZSB0aGF0IFNwZWNpYWxDYXNpbmcudHh0IGV2ZW4gaW4gVW5pY29kZSAzLjIgZGVzY3JpYmVkIHRoZSBjb25kaXRpb24gYXM6CisgICAgICoKKyAgICAgKiAjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIEkgKyBkb3RfYWJvdmUsIHdoaWNoIHdpbGwgdHVybiBpbnRvIGkuCisgICAgICogIyBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBjYW5vbmljYWxseSBlcXVpdmFsZW50IEktZG90X2Fib3ZlCisgICAgICoKKyAgICAgKiBTZWUgYWxzbyB0aGUgZGVzY3JpcHRpb24gaW4gdGhpcyBwbGFjZSBpbiBvbGRlciB2ZXJzaW9ucyBvZiB1Y2hhci5jIChyZXZpc2lvbiAxLjEwMCkuCisgICAgICoKKyAgICAgKiBNYXJrdXMgVy4gU2NoZXJlciAyMDAzLWZlYi0xNQorICAgICAqLworCisgICAgLyogSXMgcHJlY2VkZWQgYnkgYmFzZSBjaGFyYWN0ZXIgJ0knIHdpdGggbm8gaW50ZXJ2ZW5pbmcgY2M9MjMwID8gKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNQcmVjZWRlZEJ5X0koQ29udGV4dEl0ZXJhdG9yIGl0ZXIpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBkb3RUeXBlOworCisgICAgICAgIGlmKGl0ZXI9PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpdGVyLnJlc2V0KC0xKTsgKGM9aXRlci5uZXh0KCkpPj0wOykgeworICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiBwcmVjZWRlZCBieSBJICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb3RUeXBlPWdldERvdFR5cGUoYyk7CisgICAgICAgICAgICBpZihkb3RUeXBlIT1PVEhFUl9BQ0NFTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIHByZWNlZGVkIGJ5IGRpZmZlcmVudCBiYXNlIGNoYXJhY3RlciAobm90IEkpLCBvciBpbnRlcnZlbmluZyBjYz09MjMwICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBwcmVjZWRlZCBieSBJICovCisgICAgfQorCisgICAgLyogSXMgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY2M9PTIzMCA/ICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzRm9sbG93ZWRCeU1vcmVBYm92ZShDb250ZXh0SXRlcmF0b3IgaXRlcikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGRvdFR5cGU7CisKKyAgICAgICAgaWYoaXRlcj09bnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGl0ZXIucmVzZXQoMSk7IChjPWl0ZXIubmV4dCgpKT49MDspIHsKKyAgICAgICAgICAgIGRvdFR5cGU9Z2V0RG90VHlwZShjKTsKKyAgICAgICAgICAgIGlmKGRvdFR5cGU9PUFCT1ZFKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIGF0IGxlYXN0IG9uZSBjYz09MjMwIGZvbGxvd2luZyAqLworICAgICAgICAgICAgfSBlbHNlIGlmKGRvdFR5cGUhPU9USEVSX0FDQ0VOVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogbmV4dCBiYXNlIGNoYXJhY3Rlciwgbm8gbW9yZSBjYz09MjMwIGZvbGxvd2luZyAqLworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBubyBtb3JlIGNjPT0yMzAgZm9sbG93aW5nICovCisgICAgfQorCisgICAgLyogSXMgZm9sbG93ZWQgYnkgYSBkb3QgYWJvdmUgKHdpdGhvdXQgY2M9PTIzMCBpbiBiZXR3ZWVuKSA/ICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzRm9sbG93ZWRCeURvdEFib3ZlKENvbnRleHRJdGVyYXRvciBpdGVyKSB7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgZG90VHlwZTsKKworICAgICAgICBpZihpdGVyPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmb3IoaXRlci5yZXNldCgxKTsgKGM9aXRlci5uZXh0KCkpPj0wOyApIHsKKyAgICAgICAgICAgIGlmKGM9PTB4MzA3KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb3RUeXBlPWdldERvdFR5cGUoYyk7CisgICAgICAgICAgICBpZihkb3RUeXBlIT1PVEhFUl9BQ0NFTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5leHQgYmFzZSBjaGFyYWN0ZXIgb3IgY2M9PTIzMCBpbiBiZXR3ZWVuICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vIGRvdCBhYm92ZSBmb2xsb3dpbmcgKi8KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcKKyAgICAgICAgaURvdD0gICAgICAgImlcdTAzMDciLAorICAgICAgICBqRG90PSAgICAgICAialx1MDMwNyIsCisgICAgICAgIGlPZ29uZWtEb3Q9ICJcdTAxMmZcdTAzMDciLAorICAgICAgICBpRG90R3JhdmU9ICAiaVx1MDMwN1x1MDMwMCIsCisgICAgICAgIGlEb3RBY3V0ZT0gICJpXHUwMzA3XHUwMzAxIiwKKyAgICAgICAgaURvdFRpbGRlPSAgImlcdTAzMDdcdTAzMDMiOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBmdWxsIGxvd2VyY2FzZSBtYXBwaW5nIGZvciBjLgorICAgICAqCisgICAgICogQHBhcmFtIGMgQ2hhcmFjdGVyIHRvIGJlIG1hcHBlZC4KKyAgICAgKiBAcGFyYW0gaXRlciBDaGFyYWN0ZXIgaXRlcmF0b3IsIHVzZWQgZm9yIGNvbnRleHQtc2Vuc2l0aXZlIG1hcHBpbmdzLgorICAgICAqICAgICAgICAgICAgIFNlZSBDb250ZXh0SXRlcmF0b3IgZm9yIGRldGFpbHMuCisgICAgICogICAgICAgICAgICAgSWYgaXRlcj09bnVsbCB0aGVuIGEgY29udGV4dC1pbmRlcGVuZGVudCByZXN1bHQgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIG91dCBJZiB0aGUgbWFwcGluZyByZXN1bHQgaXMgYSBzdHJpbmcsIHRoZW4gaXQgaXMgYXBwZW5kZWQgdG8gb3V0LgorICAgICAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlIElEIGZvciBsb2NhbGUtZGVwZW5kZW50IG1hcHBpbmdzLgorICAgICAqIEBwYXJhbSBsb2NDYWNoZSBJbml0aWFsaXplIGxvY0NhY2hlWzBdIHRvIDA7IG1heSBiZSB1c2VkIHRvIGNhY2hlIHRoZSByZXN1bHQgb2YgcGFyc2luZworICAgICAqICAgICAgICAgICAgICAgICB0aGUgbG9jYWxlIElEIGZvciBzdWJzZXF1ZW50IGNhbGxzLgorICAgICAqICAgICAgICAgICAgICAgICBDYW4gYmUgbnVsbC4KKyAgICAgKiBAcmV0dXJuIE91dHB1dCBjb2RlIHBvaW50IG9yIHN0cmluZyBsZW5ndGgsIHNlZSBNQVhfU1RSSU5HX0xFTkdUSC4KKyAgICAgKgorICAgICAqIEBzZWUgQ29udGV4dEl0ZXJhdG9yCisgICAgICogQHNlZSAjTUFYX1NUUklOR19MRU5HVEgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IHRvRnVsbExvd2VyKGludCBjLCBDb250ZXh0SXRlcmF0b3IgaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSwgaW50W10gbG9jQ2FjaGUpIHsKKyAgICAgICAgaW50IHJlc3VsdCwgcHJvcHM7CisKKyAgICAgICAgcmVzdWx0PWM7CisgICAgICAgIHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIGlmKGdldFR5cGVGcm9tUHJvcHMocHJvcHMpPj1VUFBFUikgeworICAgICAgICAgICAgICAgIHJlc3VsdD1jK2dldERlbHRhKHByb3BzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBleGNPZmZzZXQ9Z2V0RXhjZXB0aW9uc09mZnNldChwcm9wcyksIGV4Y09mZnNldDI7CisgICAgICAgICAgICBpbnQgZXhjV29yZD1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIGludCBmdWxsOworCisgICAgICAgICAgICBleGNPZmZzZXQyPWV4Y09mZnNldDsKKworICAgICAgICAgICAgaWYoKGV4Y1dvcmQmRVhDX0NPTkRJVElPTkFMX1NQRUNJQUwpIT0wKSB7CisgICAgICAgICAgICAgICAgLyogdXNlIGhhcmRjb2RlZCBjb25kaXRpb25zIGFuZCBtYXBwaW5ncyAqLworICAgICAgICAgICAgICAgIGludCBsb2M9Z2V0Q2FzZUxvY2FsZShsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGVzdCBmb3IgY29uZGl0aW9uYWwgbWFwcGluZ3MgZmlyc3QKKyAgICAgICAgICAgICAgICAgKiAgIChvdGhlcndpc2UgdGhlIHVuY29uZGl0aW9uYWwgZGVmYXVsdCBtYXBwaW5ncyBhcmUgYWx3YXlzIHRha2VuKSwKKyAgICAgICAgICAgICAgICAgKiB0aGVuIHRlc3QgZm9yIGNoYXJhY3RlcnMgdGhhdCBoYXZlIHVuY29uZGl0aW9uYWwgbWFwcGluZ3MgaW4gU3BlY2lhbENhc2luZy50eHQsCisgICAgICAgICAgICAgICAgICogdGhlbiBnZXQgdGhlIFVuaWNvZGVEYXRhLnR4dCBtYXBwaW5ncy4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiggbG9jPT1MT0NfTElUSFVBTklBTiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgLyogYmFzZSBjaGFyYWN0ZXJzLCBmaW5kIGFjY2VudHMgYWJvdmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICgoKGM9PTB4NDkgfHwgYz09MHg0YSB8fCBjPT0weDEyZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvbGxvd2VkQnlNb3JlQWJvdmUoaXRlcikpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmVjb21wb3NlZCB3aXRoIGFjY2VudCBhYm92ZSwgbm8gbmVlZCB0byBmaW5kIG9uZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgKGM9PTB4Y2MgfHwgYz09MHhjZCB8fCBjPT0weDEyOCkpCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIExpdGh1YW5pYW4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBMaXRodWFuaWFuIHJldGFpbnMgdGhlIGRvdCBpbiBhIGxvd2VyY2FzZSBpIHdoZW4gZm9sbG93ZWQgYnkgYWNjZW50cy4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBJbnRyb2R1Y2UgYW4gZXhwbGljaXQgZG90IGFib3ZlIHdoZW4gbG93ZXJjYXNpbmcgY2FwaXRhbCBJJ3MgYW5kIEoncworICAgICAgICAgICAgICAgICAgICAgICAgIyB3aGVuZXZlciB0aGVyZSBhcmUgbW9yZSBhY2NlbnRzIGFib3ZlLgorICAgICAgICAgICAgICAgICAgICAgICAgIyAob2YgdGhlIGFjY2VudHMgdXNlZCBpbiBMaXRodWFuaWFuOiBncmF2ZSwgYWN1dGUsIHRpbGRlIGFib3ZlLCBhbmQgb2dvbmVrKQorCisgICAgICAgICAgICAgICAgICAgICAgICAwMDQ5OyAwMDY5IDAzMDc7IDAwNDk7IDAwNDk7IGx0IE1vcmVfQWJvdmU7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgICAgMDA0QTsgMDA2QSAwMzA3OyAwMDRBOyAwMDRBOyBsdCBNb3JlX0Fib3ZlOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEoKKyAgICAgICAgICAgICAgICAgICAgICAgIDAxMkU7IDAxMkYgMDMwNzsgMDEyRTsgMDEyRTsgbHQgTW9yZV9BYm92ZTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggT0dPTkVLCisgICAgICAgICAgICAgICAgICAgICAgICAwMENDOyAwMDY5IDAzMDcgMDMwMDsgMDBDQzsgMDBDQzsgbHQ7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgICAgICAgICAgICAgICAgICAgICAwMENEOyAwMDY5IDAzMDcgMDMwMTsgMDBDRDsgMDBDRDsgbHQ7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFCisgICAgICAgICAgICAgICAgICAgICAgICAwMTI4OyAwMDY5IDAzMDcgMDMwMzsgMDEyODsgMDEyODsgbHQ7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBzd2l0Y2goYykgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4NDk6ICAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGlEb3QpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHg0YTogIC8qIExBVElOIENBUElUQUwgTEVUVEVSIEogKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoakRvdCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDEyZTogLyogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpT2dvbmVrRG90KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4Y2M6ICAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaURvdEdyYXZlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4Y2Q6ICAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaURvdEFjdXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTI4OiAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaURvdFRpbGRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHdpbGwgbm90IG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiAjIFR1cmtpc2ggYW5kIEF6ZXJpICovCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGxvYz09TE9DX1RVUktJU0ggJiYgYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgSSBhbmQgaS1kb3RsZXNzOyBJLWRvdCBhbmQgaSBhcmUgY2FzZSBwYWlycyBpbiBUdXJraXNoIGFuZCBBemVyaQorICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGUgZm9sbG93aW5nIHJ1bGVzIGhhbmRsZSB0aG9zZSBjYXNlcy4KKworICAgICAgICAgICAgICAgICAgICAgICAgMDEzMDsgMDA2OTsgMDEzMDsgMDEzMDsgdHIgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgICAgICAwMTMwOyAwMDY5OyAwMTMwOyAwMTMwOyBheiAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDY5OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihsb2M9PUxPQ19UVVJLSVNIICYmIGM9PTB4MzA3ICYmIGlzUHJlY2VkZWRCeV9JKGl0ZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIEkgKyBkb3RfYWJvdmUsIHdoaWNoIHdpbGwgdHVybiBpbnRvIGkuCisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgSS1kb3RfYWJvdmUKKworICAgICAgICAgICAgICAgICAgICAgICAgMDMwNzsgOyAwMzA3OyAwMzA3OyB0ciBBZnRlcl9JOyAjIENPTUJJTklORyBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICAgIDAzMDc7IDsgMDMwNzsgMDMwNzsgYXogQWZ0ZXJfSTsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogcmVtb3ZlIHRoZSBkb3QgKGNvbnRpbnVlIHdpdGhvdXQgb3V0cHV0KSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihsb2M9PUxPQ19UVVJLSVNIICYmIGM9PTB4NDkgJiYgIWlzRm9sbG93ZWRCeURvdEFib3ZlKGl0ZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIFdoZW4gbG93ZXJjYXNpbmcsIHVubGVzcyBhbiBJIGlzIGJlZm9yZSBhIGRvdF9hYm92ZSwgaXQgdHVybnMgaW50byBhIGRvdGxlc3MgaS4KKworICAgICAgICAgICAgICAgICAgICAgICAgMDA0OTsgMDEzMTsgMDA0OTsgMDA0OTsgdHIgTm90X0JlZm9yZV9Eb3Q7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgICAgMDA0OTsgMDEzMTsgMDA0OTsgMDA0OTsgYXogTm90X0JlZm9yZV9Eb3Q7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4MTMxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPT0weDEzMCkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgIyBQcmVzZXJ2ZSBjYW5vbmljYWwgZXF1aXZhbGVuY2UgZm9yIEkgd2l0aCBkb3QuIFR1cmtpYyBpcyBoYW5kbGVkIGJlbG93LgorCisgICAgICAgICAgICAgICAgICAgICAgICAwMTMwOyAwMDY5IDAzMDc7IDAxMzA7IDAxMzA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpRG90KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKCAgYz09MHgzYTMgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNGb2xsb3dlZEJ5Q2FzZWRMZXR0ZXIoaXRlciwgMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvbGxvd2VkQnlDYXNlZExldHRlcihpdGVyLCAtMSkgLyogLTE9cHJlY2VkZWQgKi8KKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZ3JlZWsgY2FwaXRhbCBzaWdtYSBtYXBzIGRlcGVuZGluZyBvbiBzdXJyb3VuZGluZyBjYXNlZCBsZXR0ZXJzIChzZWUgU3BlY2lhbENhc2luZy50eHQpICovCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgZmluYWwgZm9ybSBvZiBzaWdtYQorCisgICAgICAgICAgICAgICAgICAgICAgICAwM0EzOyAwM0MyOyAwM0EzOyAwM0EzOyBGaW5hbF9TaWdtYTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBTSUdNQQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4M2MyOyAvKiBncmVlayBzbWFsbCBmaW5hbCBzaWdtYSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vIGtub3duIGNvbmRpdGlvbmFsIHNwZWNpYWwgY2FzZSBtYXBwaW5nLCB1c2UgYSBub3JtYWwgbWFwcGluZyAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTKSkgeworICAgICAgICAgICAgICAgIGxvbmcgdmFsdWU9Z2V0U2xvdFZhbHVlQW5kT2Zmc2V0KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTLCBleGNPZmZzZXQpOworICAgICAgICAgICAgICAgIGZ1bGw9KGludCl2YWx1ZSZGVUxMX0xPV0VSOworICAgICAgICAgICAgICAgIGlmKGZ1bGwhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogc3RhcnQgb2YgZnVsbCBjYXNlIG1hcHBpbmcgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgICAgICBleGNPZmZzZXQ9KGludCkodmFsdWU+PjMyKSsxOworCisgICAgICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgb3V0cHV0IHBvaW50ZXIgdG8gdGhlIGxvd2VyY2FzZSBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQobmV3IFN0cmluZyhleGNlcHRpb25zLCBleGNPZmZzZXQsIGZ1bGwpKTsKKworICAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19MT1dFUikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQ9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIEVYQ19MT1dFUiwgZXhjT2Zmc2V0Mik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKHJlc3VsdD09YykgPyB+cmVzdWx0IDogcmVzdWx0OworICAgIH0KKworICAgIC8qIGludGVybmFsICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgdG9VcHBlck9yVGl0bGUoaW50IGMsIENvbnRleHRJdGVyYXRvciBpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUsIGludFtdIGxvY0NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXBwZXJOb3RUaXRsZSkgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICBpbnQgcHJvcHM7CisKKyAgICAgICAgcmVzdWx0PWM7CisgICAgICAgIHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIGlmKGdldFR5cGVGcm9tUHJvcHMocHJvcHMpPT1MT1dFUikgeworICAgICAgICAgICAgICAgIHJlc3VsdD1jK2dldERlbHRhKHByb3BzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBleGNPZmZzZXQ9Z2V0RXhjZXB0aW9uc09mZnNldChwcm9wcyksIGV4Y09mZnNldDI7CisgICAgICAgICAgICBpbnQgZXhjV29yZD1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIGludCBmdWxsLCBpbmRleDsKKworICAgICAgICAgICAgZXhjT2Zmc2V0Mj1leGNPZmZzZXQ7CisKKyAgICAgICAgICAgIGlmKChleGNXb3JkJkVYQ19DT05ESVRJT05BTF9TUEVDSUFMKSE9MCkgeworICAgICAgICAgICAgICAgIC8qIHVzZSBoYXJkY29kZWQgY29uZGl0aW9ucyBhbmQgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICBpbnQgbG9jPWdldENhc2VMb2NhbGUobG9jYWxlLCBsb2NDYWNoZSk7CisKKyAgICAgICAgICAgICAgICBpZihsb2M9PUxPQ19UVVJLSVNIICYmIGM9PTB4NjkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVHVya2lzaCBhbmQgQXplcmkKKworICAgICAgICAgICAgICAgICAgICAgICAgIyBJIGFuZCBpLWRvdGxlc3M7IEktZG90IGFuZCBpIGFyZSBjYXNlIHBhaXJzIGluIFR1cmtpc2ggYW5kIEF6ZXJpCisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSBmb2xsb3dpbmcgcnVsZXMgaGFuZGxlIHRob3NlIGNhc2VzLgorCisgICAgICAgICAgICAgICAgICAgICAgICAjIFdoZW4gdXBwZXJjYXNpbmcsIGkgdHVybnMgaW50byBhIGRvdHRlZCBjYXBpdGFsIEkKKworICAgICAgICAgICAgICAgICAgICAgICAgMDA2OTsgMDA2OTsgMDEzMDsgMDEzMDsgdHI7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgICAgIDAwNjk7IDAwNjk7IDAxMzA7IDAxMzA7IGF6OyAjIExBVElOIFNNQUxMIExFVFRFUiBJCisgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDEzMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYobG9jPT1MT0NfTElUSFVBTklBTiAmJiBjPT0weDMwNyAmJiBpc1ByZWNlZGVkQnlTb2Z0RG90dGVkKGl0ZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIExpdGh1YW5pYW4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBMaXRodWFuaWFuIHJldGFpbnMgdGhlIGRvdCBpbiBhIGxvd2VyY2FzZSBpIHdoZW4gZm9sbG93ZWQgYnkgYWNjZW50cy4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBSZW1vdmUgRE9UIEFCT1ZFIGFmdGVyICJpIiB3aXRoIHVwcGVyIG9yIHRpdGxlY2FzZQorCisgICAgICAgICAgICAgICAgICAgICAgICAwMzA3OyAwMzA3OyA7IDsgbHQgQWZ0ZXJfU29mdF9Eb3R0ZWQ7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHJlbW92ZSB0aGUgZG90IChjb250aW51ZSB3aXRob3V0IG91dHB1dCkgKi8KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBubyBrbm93biBjb25kaXRpb25hbCBzcGVjaWFsIGNhc2UgbWFwcGluZywgdXNlIGEgbm9ybWFsIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUykpIHsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUywgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmdWxsPShpbnQpdmFsdWUmMHhmZmZmOworCisgICAgICAgICAgICAgICAgLyogc3RhcnQgb2YgZnVsbCBjYXNlIG1hcHBpbmcgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGV4Y09mZnNldD0oaW50KSh2YWx1ZT4+MzIpKzE7CisKKyAgICAgICAgICAgICAgICAvKiBza2lwIHRoZSBsb3dlcmNhc2UgYW5kIGNhc2UtZm9sZGluZyByZXN1bHQgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbCZGVUxMX0xPV0VSOworICAgICAgICAgICAgICAgIGZ1bGw+Pj00OworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbCYweGY7CisgICAgICAgICAgICAgICAgZnVsbD4+PTQ7CisKKyAgICAgICAgICAgICAgICBpZih1cHBlck5vdFRpdGxlKSB7CisgICAgICAgICAgICAgICAgICAgIGZ1bGwmPTB4ZjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRoZSB1cHBlcmNhc2UgcmVzdWx0IHN0cmluZyAqLworICAgICAgICAgICAgICAgICAgICBleGNPZmZzZXQrPWZ1bGwmMHhmOworICAgICAgICAgICAgICAgICAgICBmdWxsPShmdWxsPj40KSYweGY7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYoZnVsbCE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIG91dHB1dCBwb2ludGVyIHRvIHRoZSByZXN1bHQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQobmV3IFN0cmluZyhleGNlcHRpb25zLCBleGNPZmZzZXQsIGZ1bGwpKTsKKworICAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZighdXBwZXJOb3RUaXRsZSAmJiBoYXNTbG90KGV4Y1dvcmQsIEVYQ19USVRMRSkpIHsKKyAgICAgICAgICAgICAgICBpbmRleD1FWENfVElUTEU7CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfVVBQRVIpKSB7CisgICAgICAgICAgICAgICAgLyogaGVyZSwgdGl0bGVjYXNlIGlzIHNhbWUgYXMgdXBwZXJjYXNlICovCisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX1VQUEVSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gfmM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQ9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIGluZGV4LCBleGNPZmZzZXQyKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAocmVzdWx0PT1jKSA/IH5yZXN1bHQgOiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCB0b0Z1bGxVcHBlcihpbnQgYywgQ29udGV4dEl0ZXJhdG9yIGl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUsIGludFtdIGxvY0NhY2hlKSB7CisgICAgICAgIHJldHVybiB0b1VwcGVyT3JUaXRsZShjLCBpdGVyLCBvdXQsIGxvY2FsZSwgbG9jQ2FjaGUsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG9GdWxsVGl0bGUoaW50IGMsIENvbnRleHRJdGVyYXRvciBpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlLCBpbnRbXSBsb2NDYWNoZSkgeworICAgICAgICByZXR1cm4gdG9VcHBlck9yVGl0bGUoYywgaXRlciwgb3V0LCBsb2NhbGUsIGxvY0NhY2hlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyogY2FzZSBmb2xkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qCisgICAgICogQ2FzZSBmb2xkaW5nIGlzIHNpbWlsYXIgdG8gbG93ZXJjYXNpbmcuCisgICAgICogVGhlIHJlc3VsdCBtYXkgYmUgYSBzaW1wbGUgbWFwcGluZywgaS5lLiwgYSBzaW5nbGUgY29kZSBwb2ludCwgb3IKKyAgICAgKiBhIGZ1bGwgbWFwcGluZywgaS5lLiwgYSBzdHJpbmcuCisgICAgICogSWYgdGhlIGNhc2UgZm9sZGluZyBmb3IgYSBjb2RlIHBvaW50IGlzIHRoZSBzYW1lIGFzIGl0cyBzaW1wbGUgKDE6MSkgbG93ZXJjYXNlIG1hcHBpbmcsCisgICAgICogdGhlbiBvbmx5IHRoZSBsb3dlcmNhc2UgbWFwcGluZyBpcyBzdG9yZWQuCisgICAgICoKKyAgICAgKiBTb21lIHNwZWNpYWwgY2FzZXMgYXJlIGhhcmRjb2RlZCBiZWNhdXNlIHRoZWlyIGNvbmRpdGlvbnMgY2Fubm90IGJlCisgICAgICogcGFyc2VkIGFuZCBwcm9jZXNzZWQgZnJvbSBDYXNlRm9sZGluZy50eHQuCisgICAgICoKKyAgICAgKiBVbmljb2RlIDMuMiBDYXNlRm9sZGluZy50eHQgc3BlY2lmaWVzIGZvciBpdHMgc3RhdHVzIGZpZWxkOgorCisgICAgIyBDOiBjb21tb24gY2FzZSBmb2xkaW5nLCBjb21tb24gbWFwcGluZ3Mgc2hhcmVkIGJ5IGJvdGggc2ltcGxlIGFuZCBmdWxsIG1hcHBpbmdzLgorICAgICMgRjogZnVsbCBjYXNlIGZvbGRpbmcsIG1hcHBpbmdzIHRoYXQgY2F1c2Ugc3RyaW5ncyB0byBncm93IGluIGxlbmd0aC4gTXVsdGlwbGUgY2hhcmFjdGVycyBhcmUgc2VwYXJhdGVkIGJ5IHNwYWNlcy4KKyAgICAjIFM6IHNpbXBsZSBjYXNlIGZvbGRpbmcsIG1hcHBpbmdzIHRvIHNpbmdsZSBjaGFyYWN0ZXJzIHdoZXJlIGRpZmZlcmVudCBmcm9tIEYuCisgICAgIyBUOiBzcGVjaWFsIGNhc2UgZm9yIHVwcGVyY2FzZSBJIGFuZCBkb3R0ZWQgdXBwZXJjYXNlIEkKKyAgICAjICAgIC0gRm9yIG5vbi1UdXJraWMgbGFuZ3VhZ2VzLCB0aGlzIG1hcHBpbmcgaXMgbm9ybWFsbHkgbm90IHVzZWQuCisgICAgIyAgICAtIEZvciBUdXJraWMgbGFuZ3VhZ2VzICh0ciwgYXopLCB0aGlzIG1hcHBpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIG1hcHBpbmcgZm9yIHRoZXNlIGNoYXJhY3RlcnMuCisgICAgIworICAgICMgVXNhZ2U6CisgICAgIyAgQS4gVG8gZG8gYSBzaW1wbGUgY2FzZSBmb2xkaW5nLCB1c2UgdGhlIG1hcHBpbmdzIHdpdGggc3RhdHVzIEMgKyBTLgorICAgICMgIEIuIFRvIGRvIGEgZnVsbCBjYXNlIGZvbGRpbmcsIHVzZSB0aGUgbWFwcGluZ3Mgd2l0aCBzdGF0dXMgQyArIEYuCisgICAgIworICAgICMgICAgVGhlIG1hcHBpbmdzIHdpdGggc3RhdHVzIFQgY2FuIGJlIHVzZWQgb3Igb21pdHRlZCBkZXBlbmRpbmcgb24gdGhlIGRlc2lyZWQgY2FzZS1mb2xkaW5nCisgICAgIyAgICBiZWhhdmlvci4gKFRoZSBkZWZhdWx0IG9wdGlvbiBpcyB0byBleGNsdWRlIHRoZW0uKQorCisgICAgICogVW5pY29kZSAzLjIgaGFzICdUJyBtYXBwaW5ncyBhcyBmb2xsb3dzOgorCisgICAgMDA0OTsgVDsgMDEzMTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgMDEzMDsgVDsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisKKyAgICAgKiB3aGlsZSB0aGUgZGVmYXVsdCBtYXBwaW5ncyBmb3IgdGhlc2UgY29kZSBwb2ludHMgYXJlOgorCisgICAgMDA0OTsgQzsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgMDEzMDsgRjsgMDA2OSAwMzA3OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKworICAgICAqIFUrMDEzMCBoYXMgbm8gc2ltcGxlIGNhc2UgZm9sZGluZyAoc2ltcGxlLWNhc2UtZm9sZHMgdG8gaXRzZWxmKS4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEJpdCBtYXNrIGZvciBnZXR0aW5nIGp1c3QgdGhlIG9wdGlvbnMgZnJvbSBhIHN0cmluZyBjb21wYXJlIG9wdGlvbnMgd29yZAorICAgICAqIHRoYXQgYXJlIHJlbGV2YW50IGZvciBjYXNlIGZvbGRpbmcgKG9mIGEgc2luZ2xlIHN0cmluZyBvciBjb2RlIHBvaW50KS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9MRF9DQVNFX09QVElPTlNfTUFTSyA9IDB4ZmY7CisgICAgCisgICAgLyogcmV0dXJuIHRoZSBzaW1wbGUgY2FzZSBmb2xkaW5nIG1hcHBpbmcgZm9yIGMgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGZvbGQoaW50IGMsIGludCBvcHRpb25zKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT49VVBQRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgaW5kZXg7CisgICAgICAgICAgICBpZigoZXhjV29yZCZFWENfQ09ORElUSU9OQUxfRk9MRCkhPTApIHsKKyAgICAgICAgICAgICAgICAvKiBzcGVjaWFsIGNhc2UgZm9sZGluZyBtYXBwaW5ncywgaGFyZGNvZGVkICovCisgICAgICAgICAgICAgICAgaWYoKG9wdGlvbnMmRk9MRF9DQVNFX09QVElPTlNfTUFTSyk9PVVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZGVmYXVsdCBtYXBwaW5ncyAqLworICAgICAgICAgICAgICAgICAgICBpZihjPT0weDQ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQ5OyBDOyAwMDY5OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDY5OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIHNpbXBsZSBjYXNlIGZvbGRpbmcgZm9yIFUrMDEzMCAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBUdXJraWMgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0OTsgVDsgMDEzMTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHgxMzE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPT0weDEzMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDEzMDsgVDsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0ZPTEQpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX0ZPTEQ7CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfTE9XRVIpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX0xPV0VSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIGluZGV4LCBleGNPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qCisgICAgICogSXNzdWUgZm9yIGNhbm9uaWNhbCBjYXNlbGVzcyBtYXRjaCAoVUFYICMyMSk6CisgICAgICogVHVya2ljIGNhc2Vmb2xkaW5nICh1c2luZyAiVCIgbWFwcGluZ3MgaW4gQ2FzZUZvbGRpbmcudHh0KSBkb2VzIG5vdCBwcmVzZXJ2ZQorICAgICAqIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSwgdW5saWtlIGRlZmF1bHQtb3B0aW9uIGNhc2Vmb2xkaW5nLgorICAgICAqIEZvciBleGFtcGxlLCBJLWdyYXZlIGFuZCBJICsgZ3JhdmUgZm9sZCB0byBzdHJpbmdzIHRoYXQgYXJlIG5vdCBjYW5vbmljYWxseQorICAgICAqIGVxdWl2YWxlbnQuCisgICAgICogRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoZSBjb21tZW50IGluIHVub3JtX2NvbXBhcmUoKSBpbiB1bm9ybS5jcHAKKyAgICAgKiBhbmQgdGhlIGludGVybWVkaWF0ZSBwcm90b3R5cGUgY2hhbmdlcyBmb3IgSml0dGVyYnVnIDIwMjEuCisgICAgICogKEZvciBleGFtcGxlLCByZXZpc2lvbiAxLjEwNCBvZiB1Y2hhci5jIGFuZCAxLjQgb2YgQ2FzZUZvbGRpbmcudHh0LikKKyAgICAgKgorICAgICAqIFRoaXMgZGlkIG5vdCBnZXQgZml4ZWQgYmVjYXVzZSBpdCBhcHBlYXJzIHRoYXQgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGZpeAorICAgICAqIGl0IGZvciB1cHBlcmNhc2UgYW5kIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIChJLWdyYXZlIHZzLiBpLWdyYXZlKQorICAgICAqIHRvZ2V0aGVyIGluIGEgd2F5IHRoYXQgdGhleSBzdGlsbCBmb2xkIHRvIGNvbW1vbiByZXN1bHQgc3RyaW5ncy4KKyAgICAgKi8KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG9GdWxsRm9sZGluZyhpbnQgYywgU3RyaW5nQnVmZmVyIG91dCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgaW50IHByb3BzOworCisgICAgICAgIHJlc3VsdD1jOworICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT49VVBQRVIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQ9YytnZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpLCBleGNPZmZzZXQyOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgZnVsbCwgaW5kZXg7CisKKyAgICAgICAgICAgIGV4Y09mZnNldDI9ZXhjT2Zmc2V0OworCisgICAgICAgICAgICBpZigoZXhjV29yZCZFWENfQ09ORElUSU9OQUxfRk9MRCkhPTApIHsKKyAgICAgICAgICAgICAgICAvKiB1c2UgaGFyZGNvZGVkIGNvbmRpdGlvbnMgYW5kIG1hcHBpbmdzICovCisgICAgICAgICAgICAgICAgaWYoKG9wdGlvbnMmRk9MRF9DQVNFX09QVElPTlNfTUFTSyk9PVVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZGVmYXVsdCBtYXBwaW5ncyAqLworICAgICAgICAgICAgICAgICAgICBpZihjPT0weDQ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQ5OyBDOyAwMDY5OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDY5OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMzA7IEY7IDAwNjkgMDMwNzsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGlEb3QpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBUdXJraWMgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0OTsgVDsgMDEzMTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHgxMzE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPT0weDEzMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDEzMDsgVDsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTKSkgeworICAgICAgICAgICAgICAgIGxvbmcgdmFsdWU9Z2V0U2xvdFZhbHVlQW5kT2Zmc2V0KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTLCBleGNPZmZzZXQpOworICAgICAgICAgICAgICAgIGZ1bGw9KGludCl2YWx1ZSYweGZmZmY7CisKKyAgICAgICAgICAgICAgICAvKiBzdGFydCBvZiBmdWxsIGNhc2UgbWFwcGluZyBzdHJpbmdzICovCisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0PShpbnQpKHZhbHVlPj4zMikrMTsKKworICAgICAgICAgICAgICAgIC8qIHNraXAgdGhlIGxvd2VyY2FzZSByZXN1bHQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1mdWxsJkZVTExfTE9XRVI7CisgICAgICAgICAgICAgICAgZnVsbD0oZnVsbD4+NCkmMHhmOworCisgICAgICAgICAgICAgICAgaWYoZnVsbCE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIG91dHB1dCBwb2ludGVyIHRvIHRoZSByZXN1bHQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQobmV3IFN0cmluZyhleGNlcHRpb25zLCBleGNPZmZzZXQsIGZ1bGwpKTsKKworICAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19GT0xEKSkgeworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19GT0xEOworICAgICAgICAgICAgfSBlbHNlIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0xPV0VSKSkgeworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19MT1dFUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIH5jOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0PWdldFNsb3RWYWx1ZShleGNXb3JkLCBpbmRleCwgZXhjT2Zmc2V0Mik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKHJlc3VsdD09YykgPyB+cmVzdWx0IDogcmVzdWx0OworICAgIH0KKworICAgIC8vIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKyAgICBwcml2YXRlIGludCBpbmRleGVzW107CisgICAgcHJpdmF0ZSBjaGFyIGV4Y2VwdGlvbnNbXTsKKyAgICBwcml2YXRlIGNoYXIgdW5mb2xkW107CisKKyAgICBwcml2YXRlIENoYXJUcmllIHRyaWU7CisgICAgcHJpdmF0ZSBieXRlIGZvcm1hdFZlcnNpb25bXTsKKyAgICBwcml2YXRlIGJ5dGUgdW5pY29kZVZlcnNpb25bXTsgIAorCisgICAgLy8gZGF0YSBmb3JtYXQgY29uc3RhbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX05BTUU9InVjYXNlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9UWVBFPSJpY3UiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX0ZJTEVfTkFNRT1EQVRBX05BTUUrIi4iK0RBVEFfVFlQRTsKKworICAgIC8qIGZvcm1hdCAiY0FzRSIgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEZNVFtdPXsgMHg2MywgMHg0MSwgMHg1MywgMHg0NSB9OworCisgICAgLyogaW5kZXhlcyBpbnRvIGluZGV4ZXNbXSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9JTkRFWF9UT1A9MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfTEVOR1RIPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1RSSUVfU0laRT0yOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9FWENfTEVOR1RIPTM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1VORk9MRF9MRU5HVEg9NDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9NQVhfRlVMTF9MRU5HVEg9MTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1RPUD0xNjsKKworICAgIC8vIGRlZmluaXRpb25zIGZvciAxNi1iaXQgY2FzZSBwcm9wZXJ0aWVzIHdvcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIC8qIDItYml0IGNvbnN0YW50cyBmb3IgdHlwZXMgb2YgY2FzZWQgY2hhcmFjdGVycyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRZUEVfTUFTSz0zOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTkU9MDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dFUj0xOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSPTI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElUTEU9MzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRUeXBlRnJvbVByb3BzKGludCBwcm9wcykgeworICAgICAgICByZXR1cm4gcHJvcHMmVFlQRV9NQVNLOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRU5TSVRJVkU9ICAgICA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT049ICAgICA4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERPVF9NQVNLPSAgICAgIDB4MzA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PX0RPVD0gICAgICAgIDA7ICAgICAgLyogbm9ybWFsIGNoYXJhY3RlcnMgd2l0aCBjYz0wICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPRlRfRE9UVEVEPSAgIDB4MTA7ICAgLyogc29mdC1kb3R0ZWQgY2hhcmFjdGVycyB3aXRoIGNjPTAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUJPVkU9ICAgICAgICAgMHgyMDsgICAvKiAiYWJvdmUiIGFjY2VudHMgd2l0aCBjYz0yMzAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1RIRVJfQUNDRU5UPSAgMHgzMDsgICAvKiBvdGhlciBhY2NlbnQgY2hhcmFjdGVyICgwPGNjIT0yMzApICovCisKKyAgICAvKiBubyBleGNlcHRpb246IGJpdHMgMTUuLjYgYXJlIGEgMTAtYml0IHNpZ25lZCBjYXNlIG1hcHBpbmcgZGVsdGEgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMVEFfU0hJRlQ9ICAgNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMVEFfTUFTSz0gICAgMHhmZmMwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfREVMVEE9ICAgICAweDFmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOX0RFTFRBPSAgICAgKC1NQVhfREVMVEEtMSk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0RGVsdGEoaW50IHByb3BzKSB7CisgICAgICAgIHJldHVybiAoc2hvcnQpcHJvcHM+PkRFTFRBX1NISUZUOworICAgIH0KKworICAgIC8qIGNhc2UtaWdub3JhYmxlIHVzZXMgb25lIG9mIHRoZSBkZWx0YSBiaXRzLCBzZWUgZ2VuY2FzZS9zdG9yZS5jICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBU0VfSUdOT1JBQkxFPTB4NDA7CisKKyAgICAvKiBleGNlcHRpb246IGJpdHMgMTUuLjQgYXJlIGFuIHVuc2lnbmVkIDEyLWJpdCBpbmRleCBpbnRvIHRoZSBleGNlcHRpb25zIGFycmF5ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19TSElGVD0gICAgIDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19NQVNLPSAgICAgIDB4ZmZmMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0VYQ0VQVElPTlM9MHgxMDAwOworCisgICAgLyogZGVmaW5pdGlvbnMgZm9yIDE2LWJpdCBtYWluIGV4Y2VwdGlvbnMgd29yZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qIGZpcnN0IDggYml0cyBpbmRpY2F0ZSB2YWx1ZXMgaW4gb3B0aW9uYWwgc2xvdHMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0xPV0VSPTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19GT0xEPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19VUFBFUj0yOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfVElUTEU9MzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDXzQ9NDsgICAgICAgICAgIC8qIHJlc2VydmVkICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ181PTU7ICAgICAgICAgICAvKiByZXNlcnZlZCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfQ0xPU1VSRT02OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfRlVMTF9NQVBQSU5HUz03OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfQUxMX1NMT1RTPTg7ICAgLyogb25lIHBhc3QgdGhlIGxhc3Qgc2xvdCAqLworCisgICAgLyogZWFjaCBzbG90IGlzIDIgdWludDE2X3QgaW5zdGVhZCBvZiAxICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19ET1VCTEVfU0xPVFM9ICAgICAgICAgIDB4MTAwOworCisgICAgLyogcmVzZXJ2ZWQ6IGV4Y2VwdGlvbiBiaXRzIDExLi45ICovCisKKyAgICAvKiBFWENfRE9UX01BU0s9RE9UX01BU0s8PEVYQ19ET1RfU0hJRlQgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0RPVF9TSElGVD04OworCisgICAgLyogbm9ybWFsbHkgc3RvcmVkIGluIHRoZSBtYWluIHdvcmQsIGJ1dCBwdXNoZWQgb3V0IGZvciBsYXJnZXIgZXhjZXB0aW9uIGluZGV4ZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0RPVF9NQVNLPSAgICAgICAgICAgICAgMHgzMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfTk9fRE9UPSAgICAgICAgICAgICAgICAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfU09GVF9ET1RURUQ9ICAgICAgICAgICAweDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19BQk9WRT0gICAgICAgICAgICAgICAgIDB4MjAwMDsgLyogImFib3ZlIiBhY2NlbnRzIHdpdGggY2M9MjMwICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19PVEhFUl9BQ0NFTlQ9ICAgICAgICAgIDB4MzAwMDsgLyogb3RoZXIgY2hhcmFjdGVyICgwPGNjIT0yMzApICovCisKKyAgICAvKiBjb21wbGV4L2NvbmRpdGlvbmFsIG1hcHBpbmdzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19DT05ESVRJT05BTF9TUEVDSUFMPSAgIDB4NDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0NPTkRJVElPTkFMX0ZPTEQ9ICAgICAgMHg4MDAwOworCisgICAgLyogZGVmaW5pdGlvbnMgZm9yIGxlbmd0aHMgd29yZCBmb3IgZnVsbCBjYXNlIG1hcHBpbmdzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfTE9XRVI9ICAgIDB4ZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9GT0xESU5HPSAgMHhmMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9VUFBFUj0gICAgMHhmMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfVElUTEU9ICAgIDB4ZjAwMDsKKworICAgIC8qIG1heGltdW0gbGVuZ3RocyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX01BUFBJTkdTX01BWF9MRU5HVEg9NCoweGY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENMT1NVUkVfTUFYX0xFTkdUSD0weGY7CisKKyAgICAvKiBjb25zdGFudHMgZm9yIHJldmVyc2UgY2FzZSBmb2xkaW5nICgidW5mb2xkIikgZGF0YSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTkZPTERfUk9XUz0wOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTkZPTERfUk9XX1dJRFRIPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVORk9MRF9TVFJJTkdfV0lEVEg9MjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJBcnJheUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRiMGIxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisKKy8qKgorICogQGF1dGhvciBEb3VnIEZlbHQKKyAqCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyQXJyYXlJdGVyYXRvciBleHRlbmRzIFVDaGFyYWN0ZXJJdGVyYXRvciB7CisgICAgcHJpdmF0ZSBmaW5hbCBjaGFyW10gdGV4dDsKKyAgICBwcml2YXRlIGZpbmFsIGludCBzdGFydDsKKyAgICBwcml2YXRlIGZpbmFsIGludCBsaW1pdDsKKyAgICBwcml2YXRlIGludCBwb3M7CisKKyAgICBwdWJsaWMgVUNoYXJBcnJheUl0ZXJhdG9yKGNoYXJbXSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGxpbWl0ID4gdGV4dC5sZW5ndGggfHwgc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic3RhcnQ6ICIgKyBzdGFydCArICIgb3IgbGltaXQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsaW1pdCArICIgb3V0IG9mIHJhbmdlIFswLCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRleHQubGVuZ3RoICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKworICAgICAgICB0aGlzLnBvcyA9IHN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKyAgICAgICAgcmV0dXJuIHBvcyA8IGxpbWl0ID8gdGV4dFtwb3NdIDogRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIGxpbWl0IC0gc3RhcnQ7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIHBvcyAtIHN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIHBvcyA8IGxpbWl0ID8gdGV4dFtwb3MrK10gOiBET05FOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgIHJldHVybiBwb3MgPiBzdGFydCA/IHRleHRbLS1wb3NdIDogRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IGxpbWl0IC0gc3RhcnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJpbmRleDogIiArIGluZGV4ICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG91dCBvZiByYW5nZSBbMCwgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGxpbWl0IC0gc3RhcnQpICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICBwb3MgPSBzdGFydCArIGluZGV4OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRleHQsIHN0YXJ0LCBmaWxsSW4sIG9mZnNldCwgbGVuKTsKKyAgICAgICAgcmV0dXJuIGxlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLCBkb2VzIG5vdCBjbG9uZSB0aGUgdW5kZXJseWluZyAKKyAgICAgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT5vYmplY3QKKyAgICAgKiBAcmV0dXJuIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG5ldmVyIGludm9rZWQKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhNDkwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgd3JhcHBlciBhcm91bmQgVUNoYXJhY3Rlckl0ZXJhdG9yIGFuZCBpbXBsZW1lbnRzIHRoZSAKKyAqIENoYXJhY3Rlckl0ZXJhdG9yIHByb3RvY29sCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgY2xhc3MgVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlciBpbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yeworICAgIAorICAgIHB1YmxpYyBVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyKXsKKyAgICAgICAgdGhpcy5pdGVyYXRvciA9IGl0ZXI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yOworCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRCZWdpbkluZGV4KCkgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0CisgICAgICogcG9zaXRpb24uCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0QmVnaW5JbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKXsKKyAgICAgICAgLy9VQ2hhcmFjdGVySXRlcmF0b3IgYWx3YXlzIGl0ZXJhdGVzIGZyb20gMCB0byBsZW5ndGgKKyAgICAgICAgaXRlcmF0b3Iuc2V0VG9TdGFydCgpOworICAgICAgICByZXR1cm4gKGNoYXIpaXRlcmF0b3IuY3VycmVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIGdldEVuZEluZGV4KCktMSAoZ2V0RW5kSW5kZXgoKSBpZiB0aGUgdGV4dCBpcyBlbXB0eSkKKyAgICAgKiBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoYXQgcG9zaXRpb24uCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQsIG9yIERPTkUgaWYgdGhlIHRleHQgaXMgZW1wdHkKKyAgICAgKiBAc2VlICNnZXRFbmRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgbGFzdCgpeworICAgICAgICBpdGVyYXRvci5zZXRUb0xpbWl0KCk7CisgICAgICAgIHJldHVybiAoY2hhcilpdGVyYXRvci5wcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNoYXJhY3RlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiAoYXMgcmV0dXJuZWQgYnkgZ2V0SW5kZXgoKSkuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBvZmYgdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc2VlICNnZXRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgY3VycmVudCgpeworICAgICAgICByZXR1cm4gKGNoYXIpIGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGluZGV4IGJ5IG9uZSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyCisgICAgICogYXQgdGhlIG5ldyBpbmRleC4gIElmIHRoZSByZXN1bHRpbmcgaW5kZXggaXMgZ3JlYXRlciBvciBlcXVhbAorICAgICAqIHRvIGdldEVuZEluZGV4KCksIHRoZSBjdXJyZW50IGluZGV4IGlzIHJlc2V0IHRvIGdldEVuZEluZGV4KCkgYW5kCisgICAgICogYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgbmV3IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIG5ldworICAgICAqIHBvc2l0aW9uIGlzIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKXsKKyAgICAgICAgLy9wcmUtaW5jcmVtZW50CisgICAgICAgIGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgcmV0dXJuIChjaGFyKSBpdGVyYXRvci5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjcmVtZW50cyB0aGUgaXRlcmF0b3IncyBpbmRleCBieSBvbmUgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlcgorICAgICAqIGF0IHRoZSBuZXcgaW5kZXguIElmIHRoZSBjdXJyZW50IGluZGV4IGlzIGdldEJlZ2luSW5kZXgoKSwgdGhlIGluZGV4CisgICAgICogcmVtYWlucyBhdCBnZXRCZWdpbkluZGV4KCkgYW5kIGEgdmFsdWUgb2YgRE9ORSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIG5ldyBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgZXF1YWwgdG8gZ2V0QmVnaW5JbmRleCgpLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHByZXZpb3VzKCl7CisgICAgICAgIC8vcHJlLWRlY3JlbWVudAorICAgICAgICByZXR1cm4gKGNoYXIpIGl0ZXJhdG9yLnByZXZpb3VzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcG9zaXRpb24gdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiB0aGUgdGV4dCBhbmQgcmV0dXJucyB0aGF0CisgICAgICogY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LiAgVmFsaWQgdmFsdWVzIHJhbmdlIGZyb20KKyAgICAgKiBnZXRCZWdpbkluZGV4KCkgdG8gZ2V0RW5kSW5kZXgoKS4gIEFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24KKyAgICAgKiBpZiBhbiBpbnZhbGlkIHZhbHVlIGlzIHN1cHBsaWVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpcyBlcXVhbCB0byBnZXRFbmRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgc2V0SW5kZXgoaW50IHBvc2l0aW9uKXsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgocG9zaXRpb24pOworICAgICAgICByZXR1cm4gKGNoYXIpIGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdGFydCBpbmRleCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgdGV4dCBiZWdpbnMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCl7CisgICAgICAgIC8vVUNoYXJhY3Rlckl0ZXJhdG9yIGFsd2F5cyBzdGFydHMgZnJvbSAwCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGVuZCBpbmRleCBvZiB0aGUgdGV4dC4gIFRoaXMgaW5kZXggaXMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdAorICAgICAqIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCl7CisgICAgICAgIHJldHVybiBpdGVyYXRvci5nZXRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGluZGV4LgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpeworICAgICAgICByZXR1cm4gaXRlcmF0b3IuZ2V0SW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgY29weSBvZiB0aGlzCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlciByZXN1bHQgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvciA9IChVQ2hhcmFjdGVySXRlcmF0b3IpdGhpcy5pdGVyYXRvci5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeyAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG9ubHkgaW52b2tlZCBpZiBiYWQgdW5kZXJseWluZyBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICAgICAgfQorICAgIH0gICAKKworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2VkZTJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YQpAQCAtMCwwICsxLDE2NjkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJDYXRlZ29yeTsKKworLyoqCisqIEludGVybmFsIGNsYXNzIHRvIG1hbmFnZSBjaGFyYWN0ZXIgbmFtZXMuCisqIFNpbmNlIGRhdGEgZm9yIG5hbWVzIGFyZSBzdG9yZWQKKyogaW4gYW4gYXJyYXkgb2YgY2hhciwgYnkgZGVmYXVsdCBpbmRleGVzIHVzZWQgaW4gdGhpcyBjbGFzcyBpcyByZWZlcmluZyB0bworKiBhIDIgYnl0ZSBjb3VudCwgdW5sZXNzIG90aGVyd2lzZSBzdGF0ZWQuIENhc2VzIHdoZXJlIHRoZSBpbmRleCBpcyByZWZlcmluZworKiB0byBhIGJ5dGUgY291bnQsIHRoZSBpbmRleCBpcyBoYWx2ZWQgYW5kIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBpbmRleCBpcworKiBldmVuIG9yIG9kZCwgdGhlIE1TQiBvciBMU0Igb2YgdGhlIHJlc3VsdCBjaGFyIGF0IHRoZSBoYWx2ZWQgaW5kZXggaXMKKyogcmV0dXJuZWQuIEZvciBpbmRleGVzIHRvIGFuIGFycmF5IG9mIGludCwgdGhlIGluZGV4IGlzIG11bHRpcGxpZWQgYnkgMiwKKyogcmVzdWx0IGNoYXIgYXQgdGhlIG11bHRpcGxpZWQgaW5kZXggYW5kIGl0cyBmb2xsb3dpbmcgY2hhciBpcyByZXR1cm5lZCBhcyBhbgorKiBpbnQuCisqIDxhIGhyZWY9Li4vbGFuZy9VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4gYWN0cyBhcyBhIHB1YmxpYyBmYWNhZGUgZm9yIHRoaXMgY2xhc3MKKyogTm90ZSA6IDAgLSAweDFGIGFyZSBjb250cm9sIGNoYXJhY3RlcnMgd2l0aG91dCBuYW1lcyBpbiBVbmljb2RlIDMuMAorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2Ugbm92MDcwMAorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJOYW1lCit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIE51bWJlciBvZiBsaW5lcyBwZXIgZ3JvdXAKKyAgICAqIDEgPDwgR1JPVVBfU0hJRlRfCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FU19QRVJfR1JPVVBfID0gMSA8PCA1OworICAgIC8qKgorICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGdyb3VwcworICAgICAqLworICAgIHB1YmxpYyBpbnQgbV9ncm91cGNvdW50XyA9IDA7CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG9ubHkgaW5zdGFuY2Ugb2YgVUNoYXJhY3Rlck5hbWUKKyAgICAgKiBAcmV0dXJuIG9ubHkgaW5zdGFuY2Ugb2YgVUNoYXJhY3Rlck5hbWUKKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0aHJvd24gd2hlbiByZWFkaW5nIG9mIG5hbWUgZGF0YSBmYWlscworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUNoYXJhY3Rlck5hbWUgZ2V0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgaWYgKElOU1RBTkNFXyA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIElOU1RBTkNFXyA9IG5ldyBVQ2hhcmFjdGVyTmFtZSgpOworICAgICAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25zdHJ1Y3QgVUNoYXJhY3Rlck5hbWUuIE1pc3NpbmcgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElOU1RBTkNFXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHJpZXZlIHRoZSBuYW1lIG9mIGEgVW5pY29kZSBjb2RlIHBvaW50LgorICAgICogRGVwZW5kaW5nIG9uIDxjb2RlPmNob2ljZTwvY29kZT4sIHRoZSBjaGFyYWN0ZXIgbmFtZSB3cml0dGVuIGludG8gdGhlCisgICAgKiBidWZmZXIgaXMgdGhlICJtb2Rlcm4iIG5hbWUgb3IgdGhlIG5hbWUgdGhhdCB3YXMgZGVmaW5lZCBpbiBVbmljb2RlCisgICAgKiB2ZXJzaW9uIDEuMC4KKyAgICAqIFRoZSBuYW1lIGNvbnRhaW5zIG9ubHkgImludmFyaWFudCIgY2hhcmFjdGVycworICAgICogbGlrZSBBLVosIDAtOSwgc3BhY2UsIGFuZCAnLScuCisgICAgKgorICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIG5hbWUuCisgICAgKiBAcGFyYW0gY2hvaWNlIFNlbGVjdG9yIGZvciB3aGljaCBuYW1lIHRvIGdldC4KKyAgICAqIEByZXR1cm4gaWYgY29kZSBwb2ludCBpcyBhYm92ZSAweDFmZmYsIG51bGwgaXMgcmV0dXJuZWQKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShpbnQgY2gsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBpZiAoY2ggPCBVQ2hhcmFjdGVyLk1JTl9WQUxVRSB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8CisgICAgICAgICAgICBjaG9pY2UgPiBVQ2hhcmFjdGVyTmFtZUNob2ljZS5DSEFSX05BTUVfQ0hPSUNFX0NPVU5UKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworCisgICAgICAgIHJlc3VsdCA9IGdldEFsZ05hbWUoY2gsIGNob2ljZSk7CisKKyAgICAgICAgLy8gZ2V0dGluZyBub3JtYWwgY2hhcmFjdGVyIG5hbWUKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsIHx8IHJlc3VsdC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldEV4dGVuZGVkTmFtZShjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldEdyb3VwTmFtZShjaCwgY2hvaWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBGaW5kIGEgY2hhcmFjdGVyIGJ5IGl0cyBuYW1lIGFuZCByZXR1cm4gaXRzIGNvZGUgcG9pbnQgdmFsdWUKKyAgICAqIEBwYXJhbSBjaG9pY2Ugc2VsZWN0b3IgdG8gaW5kaWNhdGUgaWYgYXJndW1lbnQgbmFtZSBpcyBhIFVuaWNvZGUgMS4wCisgICAgKiAgICAgICAgb3IgdGhlIG1vc3QgY3VycmVudCB2ZXJzaW9uCisgICAgKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSB0byBzZWFyY2ggZm9yCisgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q2hhckZyb21OYW1lKGludCBjaG9pY2UsIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgLy8gY2hlY2tzIGZvciBpbGxlZ2FsIGFyZ3VtZW50cworICAgICAgICBpZiAoY2hvaWNlID49IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkNIQVJfTkFNRV9DSE9JQ0VfQ09VTlQgfHwKKyAgICAgICAgICAgIG5hbWUgPT0gbnVsbCB8fCBuYW1lLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRyeSBleHRlbmRlZCBuYW1lcyBmaXJzdAorICAgICAgICBpbnQgcmVzdWx0ID0gZ2V0RXh0ZW5kZWRDaGFyKG5hbWUudG9Mb3dlckNhc2UoKSwgY2hvaWNlKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB1cHBlckNhc2VOYW1lID0gbmFtZS50b1VwcGVyQ2FzZSgpOworICAgICAgICAvLyB0cnkgYWxnb3JpdGhtaWMgbmFtZXMgZmlyc3QsIGlmIGZhaWxzIHRoZW4gdHJ5IGdyb3VwIG5hbWVzCisgICAgICAgIC8vIGludCByZXN1bHQgPSBnZXRBbGdvcml0aG1DaGFyKGNob2ljZSwgdXBwZXJjYXNlbmFtZSk7CisKKyAgICAgICAgaWYgKGNob2ljZSAhPSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGlmIChtX2FsZ29yaXRobV8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvdW50ID0gbV9hbGdvcml0aG1fLmxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoY291bnQgLS07IGNvdW50ID49IDA7IGNvdW50IC0tKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9hbGdvcml0aG1fW2NvdW50XS5nZXRDaGFyKHVwcGVyQ2FzZU5hbWUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChjaG9pY2UgPT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuRVhURU5ERURfQ0hBUl9OQU1FKSB7CisgICAgICAgICAgICByZXN1bHQgPSBnZXRHcm91cENoYXIodXBwZXJDYXNlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFX0NIQVJfTkFNRSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHVwcGVyQ2FzZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHVwcGVyQ2FzZU5hbWUsIGNob2ljZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyB0aGVzZSBhcmUgYWxsIFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IgdXNlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBSZWFkcyBhIGJsb2NrIG9mIGNvbXByZXNzZWQgbGVuZ3RocyBvZiAzMiBzdHJpbmdzIGFuZCBleHBhbmRzIHRoZW0gaW50bworICAgICogb2Zmc2V0cyBhbmQgbGVuZ3RocyBmb3IgZWFjaCBzdHJpbmcuIExlbmd0aHMgYXJlIHN0b3JlZCB3aXRoIGEKKyAgICAqIHZhcmlhYmxlLXdpZHRoIGVuY29kaW5nIGluIGNvbnNlY3V0aXZlIG5pYmJsZXM6CisgICAgKiBJZiBhIG5pYmJsZTwweGMsIHRoZW4gaXQgaXMgdGhlIGxlbmd0aCBpdHNlbGYgKDAgPSBlbXB0eSBzdHJpbmcpLgorICAgICogSWYgYSBuaWJibGU+PTB4YywgdGhlbiBpdCBmb3JtcyBhIGxlbmd0aCB2YWx1ZSB3aXRoIHRoZSBmb2xsb3dpbmcKKyAgICAqIG5pYmJsZS4KKyAgICAqIFRoZSBvZmZzZXRzIGFuZCBsZW5ndGhzIGFycmF5cyBtdXN0IGJlIGF0IGxlYXN0IDMzIChvbmUgbW9yZSkgbG9uZworICAgICogYmVjYXVzZSB0aGVyZSBpcyBubyBjaGVjayBoZXJlIGF0IHRoZSBlbmQgaWYgdGhlIGxhc3QgbmliYmxlIGlzIHN0aWxsCisgICAgKiB1c2VkLgorICAgICogQHBhcmFtIGluZGV4IG9mIGdyb3VwIHN0cmluZyBvYmplY3QgaW4gYXJyYXkKKyAgICAqIEBwYXJhbSBvZmZzZXRzIGFycmF5IHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgc3RyaW5nIG9mZnNldHMKKyAgICAqIEBwYXJhbSBsZW5ndGhzIGFycmF5IHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgc3RyaW5nIGxlbmd0aAorICAgICogQHJldHVybiBuZXh0IGluZGV4IG9mIHRoZSBkYXRhIHN0cmluZyBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGVuZ3RocworICAgICogICAgICAgICBpbiB0ZXJtcyBvZiBieXRlIGFkZHJlc3MKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0R3JvdXBMZW5ndGhzKGludCBpbmRleCwgY2hhciBvZmZzZXRzW10sIGNoYXIgbGVuZ3Roc1tdKQorICAgIHsKKyAgICAgICAgY2hhciBsZW5ndGggPSAweGZmZmY7CisgICAgICAgIGJ5dGUgYiA9IDAsCisgICAgICAgICAgICBuID0gMDsKKyAgICAgICAgaW50IHNoaWZ0OworICAgICAgICBpbmRleCA9IGluZGV4ICogbV9ncm91cHNpemVfOyAvLyBieXRlIGNvdW50IG9mZnNldHMgb2YgZ3JvdXAgc3RyaW5ncworICAgICAgICBpbnQgc3RyaW5nb2Zmc2V0ID0gVUNoYXJhY3RlclV0aWxpdHkudG9JbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwaW5mb19baW5kZXggKyBPRkZTRVRfSElHSF9PRkZTRVRfXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBpbmZvX1tpbmRleCArIE9GRlNFVF9MT1dfT0ZGU0VUX10pOworCisgICAgICAgIG9mZnNldHNbMF0gPSAwOworCisgICAgICAgIC8vIGFsbCAzMiBsZW5ndGhzIG11c3QgYmUgcmVhZCB0byBnZXQgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgZ3JvdXAKKyAgICAgICAgLy8gc3RyaW5nCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTElORVNfUEVSX0dST1VQXzsgc3RyaW5nb2Zmc2V0ICsrKSB7CisgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19bc3RyaW5nb2Zmc2V0XTsKKyAgICAgICAgICAgIHNoaWZ0ID0gNDsKKworICAgICAgICAgICAgd2hpbGUgKHNoaWZ0ID49IDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIG5pYmJsZQorICAgICAgICAgICAgICAgIG4gPSAoYnl0ZSkoKGIgPj4gc2hpZnQpICYgMHgwRik7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAweGZmZmYgJiYgbiA+IFNJTkdMRV9OSUJCTEVfTUFYXykgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAoY2hhcikoKG4gLSAxMikgPDwgNCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICE9IDB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhzW2ldID0gKGNoYXIpKChsZW5ndGggfCBuKSArIDEyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3Roc1tpXSA9IChjaGFyKW47CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaSA8IExJTkVTX1BFUl9HUk9VUF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1tpICsgMV0gPSAoY2hhcikob2Zmc2V0c1tpXSArIGxlbmd0aHNbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMHhmZmZmOworICAgICAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHNoaWZ0IC09IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0cmluZ29mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGdyb3VwIGluZGV4LgorICAgICogVW5pY29kZURhdGEudHh0IHVzZXMgJzsnIGFzIGEgZmllbGQgc2VwYXJhdG9yLCBzbyBubyBmaWVsZCBjYW4gY29udGFpbgorICAgICogJzsnIGFzIHBhcnQgb2YgaXRzIGNvbnRlbnRzLiBJbiB1bmFtZXMuaWN1LCBpdCBpcyBtYXJrZWQgYXMKKyAgICAqIHRva2VuWyc7J10gPT0gLTEgb25seSBpZiB0aGUgc2VtaWNvbG9uIGlzIHVzZWQgaW4gdGhlIGRhdGEgZmlsZSAtIHdoaWNoCisgICAgKiBpcyBpZmYgd2UgaGF2ZSBVbmljb2RlIDEuMCBuYW1lcyBvciBJU08gY29tbWVudHMuCisgICAgKiBTbywgaXQgd2lsbCBiZSB0b2tlblsnOyddID09IC0xIGlmIHdlIHN0b3JlIFUxLjAgbmFtZXMvSVNPIGNvbW1lbnRzCisgICAgKiBhbHRob3VnaCB3ZSBrbm93IHRoYXQgaXQgd2lsbCBuZXZlciBiZSBwYXJ0IG9mIGEgbmFtZS4KKyAgICAqIEVxdWl2YWxlbnQgdG8gSUNVNEMncyBleHBhbmROYW1lLgorICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBncm91cCBuYW1lIHN0cmluZyBpbiBieXRlIGNvdW50CisgICAgKiBAcGFyYW0gbGVuZ3RoIG9mIHRoZSBncm91cCBuYW1lIHN0cmluZworICAgICogQHBhcmFtIGNob2ljZSBvZiBVbmljb2RlIDEuMCBuYW1lIG9yIHRoZSBtb3N0IGN1cnJlbnQgbmFtZQorICAgICogQHJldHVybiBuYW1lIG9mIHRoZSBncm91cAorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRHcm91cE5hbWUoaW50IGluZGV4LCBpbnQgbGVuZ3RoLCBpbnQgY2hvaWNlKQorICAgIHsKKyAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRQorICAgICAgICAgICAgfHwgY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLklTT19DT01NRU5UXykgeworICAgICAgICAgICAgaWYgKCc7JyA+PSBtX3Rva2VudGFibGVfLmxlbmd0aCB8fCBtX3Rva2VudGFibGVfWyc7J10gPT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgbW9kZXJuIG5hbWUKKyAgICAgICAgICAgICAgICBpbnQgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwQnl0ZVN1YlN0cmluZyhtX2dyb3Vwc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBsZW5ndGgsIChieXRlKSc7Jyk7CisgICAgICAgICAgICAgICAgbGVuZ3RoIC09IChpbmRleCAtIG9sZGluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLklTT19DT01NRU5UXykgeworICAgICAgICAgICAgICAgICAgICAvLyBza2lwcyB0aGUgMS4wIE5hbWUgdG8gdGhlIGlzbyBjb21tZW50IHBhcnQKKyAgICAgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gVUNoYXJhY3RlclV0aWxpdHkuc2tpcEJ5dGVTdWJTdHJpbmcobV9ncm91cHN0cmluZ18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsIGxlbmd0aCwgKGJ5dGUpJzsnKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIC09IChpbmRleCAtIG9sZGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2VtaWNvbG9uIGJ5dGUgaXMgYSB0b2tlbiBudW1iZXIsIHRoZXJlZm9yZSBvbmx5IG1vZGVybgorICAgICAgICAgICAgICAgIC8vIG5hbWVzIGFyZSBzdG9yZWQgaW4gdW5hbWVzLmRhdCBhbmQgdGhlcmUgaXMgbm8gc3VjaAorICAgICAgICAgICAgICAgIC8vIHJlcXVlc3RlZCBVbmljb2RlIDEuMCBuYW1lIGhlcmUKKyAgICAgICAgICAgICAgICBsZW5ndGggPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxTdHJpbmdCdWZmZXJfKSB7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGJ5dGUgYjsKKyAgICAgICAgICAgIGNoYXIgdG9rZW47CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19baW5kZXggKyBpXTsKKyAgICAgICAgICAgICAgICBpICsrOworCisgICAgICAgICAgICAgICAgaWYgKGIgPj0gbV90b2tlbnRhYmxlXy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGIgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZChiKTsgLy8gaW1wbGljaXQgbGV0dGVyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYiAmIDB4MDBmZl07CisgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBsZWFkIGJ5dGUgZm9yIGEgZG91YmxlLWJ5dGUgdG9rZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gbV90b2tlbnRhYmxlX1tiIDw8IDggfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgaV0gJiAweDAwZmYpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGIgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgc2VtaWNvbG9uIGlmIHdlIGFyZSBzZWVraW5nIGV4dGVuZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmFtZXMgYW5kIHRoZXJlIHdhcyBubyAyLjAgbmFtZSBidXQgdGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBhIDEuMCBuYW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpID09IDAgJiYgY2hvaWNlID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHBsaWNpdCBsZXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKChjaGFyKShiICYgMHgwMGZmKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHdyaXRlIHRva2VuIHdvcmQKKyAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXywgbV90b2tlbnN0cmluZ18sIHRva2VuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fdXRpbFN0cmluZ0J1ZmZlcl8udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHJpZXZlcyB0aGUgZXh0ZW5kZWQgbmFtZQorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRFeHRlbmRlZE5hbWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldE5hbWUoY2gsIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfQ0hBUl9OQU1FKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBnZXROYW1lKGNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2V0RXh0ZW5kZWRPcjEwTmFtZShjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBncm91cCBpbmRleCBmb3IgdGhlIGNvZGVwb2ludCwgb3IgdGhlIGdyb3VwIGJlZm9yZSBpdC4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiBncm91cCBpbmRleCBjb250YWluaW5nIGNvZGVwb2ludCBvciB0aGUgZ3JvdXAgYmVmb3JlIGl0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0R3JvdXAoaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIGludCBlbmRHcm91cCA9IG1fZ3JvdXBjb3VudF87CisgICAgICAgIGludCBtc2IgICAgICA9IGdldENvZGVwb2ludE1TQihjb2RlcG9pbnQpOworICAgICAgICBpbnQgcmVzdWx0ICAgPSAwOworICAgICAgICAvLyBiaW5hcnkgc2VhcmNoIGZvciB0aGUgZ3JvdXAgb2YgbmFtZXMgdGhhdCBjb250YWlucyB0aGUgb25lIGZvcgorICAgICAgICAvLyBjb2RlCisgICAgICAgIC8vIGZpbmQgdGhlIGdyb3VwIHRoYXQgY29udGFpbnMgY29kZXBvaW50LCBvciB0aGUgaGlnaGVzdCBiZWZvcmUgaXQKKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IGVuZEdyb3VwIC0gMSkgeworICAgICAgICAgICAgaW50IGdpbmRleCA9IChyZXN1bHQgKyBlbmRHcm91cCkgPj4gMTsKKyAgICAgICAgICAgIGlmIChtc2IgPCBnZXRHcm91cE1TQihnaW5kZXgpKSB7CisgICAgICAgICAgICAgICAgZW5kR3JvdXAgPSBnaW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBnaW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBleHRlbmRlZCBhbmQgMS4wIG5hbWUgd2hlbiB0aGUgbW9zdCBjdXJyZW50IHVuaWNvZGUgbmFtZXMKKyAgICAgKiBmYWlsCisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gbmFtZSBvZiBjb2RlcG9pbnQgZXh0ZW5kZWQgb3IgMS4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRFeHRlbmRlZE9yMTBOYW1lKGludCBjaCkKKyAgICB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAoZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldE5hbWUoY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGludCB0eXBlID0gZ2V0VHlwZShjaCk7CisgICAgICAgICAgICAvLyBSZXR1cm4gdW5rbm93biBpZiB0aGUgdGFibGUgb2YgbmFtZXMgYWJvdmUgaXMgbm90IHVwIHRvCisgICAgICAgICAgICAvLyBkYXRlLgorICAgICAgICAgICAgaWYgKHR5cGUgPj0gVFlQRV9OQU1FU18ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9UWVBFX05BTUVfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVFlQRV9OQU1FU19bdHlwZV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZCgnPCcpOworICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoJy0nKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY2hTdHIgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKS50b1VwcGVyQ2FzZSgpOworICAgICAgICAgICAgICAgIGludCB6ZXJvcyA9IDQgLSBjaFN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoemVyb3MgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgICAgIHplcm9zIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZChjaFN0cik7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoJz4nKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBNU0IgZnJvbSB0aGUgZ3JvdXAgaW5kZXgKKyAgICAgKiBAcGFyYW0gZ2luZGV4IGdyb3VwIGluZGV4CisgICAgICogQHJldHVybiB0aGUgTVNCIG9mIHRoZSBncm91cCBpZiBnaW5kZXggaXMgdmFsaWQsIC0xIG90aGVyd2lzZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0R3JvdXBNU0IoaW50IGdpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChnaW5kZXggPj0gbV9ncm91cGNvdW50XykgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2dyb3VwaW5mb19bZ2luZGV4ICogbV9ncm91cHNpemVfXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBNU0Igb2YgdGhlIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBNU0Igb2YgdGhlIGNvZGVwb2ludAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvZGVwb2ludE1TQihpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvZGVwb2ludCA+PiBHUk9VUF9TSElGVF87CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSBjb2RlcG9pbnQgKyAxIG9mIHRoZSBncm91cAorICAgICAqIEBwYXJhbSBtc2IgbW9zdCBzaWduaWZpY2FudCBieXRlIG9mIHRoZSBncm91cAorICAgICAqIEByZXR1cm4gbGltaXQgY29kZXBvaW50IG9mIHRoZSBncm91cAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEdyb3VwTGltaXQoaW50IG1zYikKKyAgICB7CisgICAgICAgIHJldHVybiAobXNiIDw8IEdST1VQX1NISUZUXykgKyBMSU5FU19QRVJfR1JPVVBfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1pbmltdW0gY29kZXBvaW50IG9mIHRoZSBncm91cAorICAgICAqIEBwYXJhbSBtc2IgbW9zdCBzaWduaWZpY2FudCBieXRlIG9mIHRoZSBncm91cAorICAgICAqIEByZXR1cm4gbWluaW11bSBjb2RlcG9pbnQgb2YgdGhlIGdyb3VwCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0R3JvdXBNaW4oaW50IG1zYikKKyAgICB7CisgICAgICAgIHJldHVybiBtc2IgPDwgR1JPVVBfU0hJRlRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG9mZnNldCB0byBhIGdyb3VwCisgICAgICogQHBhcmFtIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGEgZ3JvdXAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRHcm91cE9mZnNldChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvZGVwb2ludCAmIEdST1VQX01BU0tfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1pbmltdW0gY29kZXBvaW50IG9mIGEgZ3JvdXAKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiBtaW5pbXVtIGNvZGVwb2ludCBpbiB0aGUgZ3JvdXAgd2hpY2ggY29kZXBvaW50IGJlbG9uZ3MgdG8KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0R3JvdXBNaW5Gcm9tQ29kZXBvaW50KGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICByZXR1cm4gY29kZXBvaW50ICYgfkdST1VQX01BU0tfOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgQWxnb3JpdGhtIHJhbmdlIGxlbmd0aAorICAgICAqIEByZXR1cm4gQWxnb3JpdGhtIHJhbmdlIGxlbmd0aAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxnb3JpdGhtTGVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsZ29yaXRobV8ubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBpbmRleCBhbGdvcml0aG0gaW5kZXgKKyAgICAgKiBAcmV0dXJuIGFsZ29yaXRobSByYW5nZSBzdGFydAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxnb3JpdGhtU3RhcnQoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYWxnb3JpdGhtX1tpbmRleF0ubV9yYW5nZXN0YXJ0XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBlbmQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGluZGV4IGFsZ29yaXRobSBpbmRleAorICAgICAqIEByZXR1cm4gYWxnb3JpdGhtIHJhbmdlIGVuZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxnb3JpdGhtRW5kKGludCBpbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsZ29yaXRobV9baW5kZXhdLm1fcmFuZ2VlbmRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIEFsZ29yaXRobWljIG5hbWUgb2YgdGhlIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBpbmRleCBhbGdvcml0aG1pYyByYW5nZSBpbmRleAorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIGFsZ29yaXRobWljIG5hbWUgb2YgY29kZXBvaW50CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRBbGdvcml0aG1OYW1lKGludCBpbmRleCwgaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uZGVsZXRlKDAsIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgbV9hbGdvcml0aG1fW2luZGV4XS5hcHBlbmROYW1lKGNvZGVwb2ludCwgbV91dGlsU3RyaW5nQnVmZmVyXyk7CisgICAgICAgICAgICByZXN1bHQgPSBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGdyb3VwIG5hbWUgb2YgdGhlIGNoYXJhY3RlcgorICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBnZXQgdGhlIGdyb3VwIG5hbWUKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2Ugc2VsZWN0b3IgdG8gY2hvb3NlIGEgdW5pY29kZSAxLjAgb3IgbmV3ZXIgbmFtZQorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRHcm91cE5hbWUoaW50IGNoLCBpbnQgY2hvaWNlKQorICAgIHsKKyAgICAgICAgLy8gZ2V0cyB0aGUgbXNiCisgICAgICAgIGludCBtc2IgICA9IGdldENvZGVwb2ludE1TQihjaCk7CisgICAgICAgIGludCBncm91cCA9IGdldEdyb3VwKGNoKTsKKworICAgICAgICAvLyByZXR1cm4gdGhpcyBpZiBpdCBpcyBhbiBleGFjdCBtYXRjaAorICAgICAgICBpZiAobXNiID09IG1fZ3JvdXBpbmZvX1tncm91cCAqIG1fZ3JvdXBzaXplX10pIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IGdldEdyb3VwTGVuZ3Rocyhncm91cCwgbV9ncm91cG9mZnNldHNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBsZW5ndGhzXyk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY2ggJiBHUk9VUF9NQVNLXzsKKyAgICAgICAgICAgIHJldHVybiBnZXRHcm91cE5hbWUoaW5kZXggKyBtX2dyb3Vwb2Zmc2V0c19bb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ncm91cGxlbmd0aHNfW29mZnNldF0sIGNob2ljZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvLyB0aGVzZSBhcmUgdHJhbnNsaXRlcmF0b3IgdXNlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgY29kZXBvaW50IG5hbWUuCisgICAgICogRXF1aXZhbGVudCB0byB1cHJ2X2dldE1heENoYXJOYW1lTGVuZ3RoLgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBjb2RlcG9pbnQgbmFtZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKQorICAgIHsKKyAgICAgICAgaWYgKGluaXROYW1lU2V0c0xlbmd0aHMoKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fbWF4TmFtZUxlbmd0aF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBpc28gY29tbWVudHMuCisgICAgICogRXF1aXZhbGVudCB0byB1cHJ2X2dldE1heElTT0NvbW1lbnRMZW5ndGguCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW55IGNvZGVwb2ludCBuYW1lCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBpbnQgZ2V0TWF4SVNPQ29tbWVudExlbmd0aCgpCisgICAgeworICAgICAgICBpZiAoaW5pdE5hbWVTZXRzTGVuZ3RocygpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9tYXhJU09Db21tZW50TGVuZ3RoXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogRmlsbHMgc2V0IHdpdGggY2hhcmFjdGVycyB0aGF0IGFyZSB1c2VkIGluIFVuaWNvZGUgY2hhcmFjdGVyIG5hbWVzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gdXBydl9nZXRDaGFyTmFtZUNoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIHNldCBVU2V0IHRvIHJlY2VpdmUgY2hhcmFjdGVycy4gRXhpc3RpbmcgY29udGVudHMgYXJlIGRlbGV0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgc2V0KQorICAgIHsKKyAgICAgICAgY29udmVydChtX25hbWVTZXRfLCBzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGxzIHNldCB3aXRoIGNoYXJhY3RlcnMgdGhhdCBhcmUgdXNlZCBpbiBVbmljb2RlIGNoYXJhY3RlciBuYW1lcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIHVwcnZfZ2V0SVNPQ29tbWVudENoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIHNldCBVU2V0IHRvIHJlY2VpdmUgY2hhcmFjdGVycy4gRXhpc3RpbmcgY29udGVudHMgYXJlIGRlbGV0ZWQuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyB2b2lkIGdldElTT0NvbW1lbnRDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgc2V0KQorICAgIHsKKyAgICAgICAgY29udmVydChtX0lTT0NvbW1lbnRTZXRfLCBzZXQpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBpbm5lciBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBBbGdvcml0aG1pYyBuYW1lIGNsYXNzCisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgQWxnb3JpdGhtTmFtZQorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29uc3RhbnQgdHlwZSB2YWx1ZSBvZiB0aGUgZGlmZmVyZW50IEFsZ29yaXRobU5hbWUKKyAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBUWVBFXzBfID0gMDsKKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBUWVBFXzFfID0gMTsKKworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAgICAqLworICAgICAgICBBbGdvcml0aG1OYW1lKCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgaW5mb3JtYXRpb24gZm9yIGFjY2Vzc2luZyB0aGUgYWxnb3JpdGhtaWMgbmFtZXMKKyAgICAgICAgKiBAcGFyYW0gcmFuZ2VzdGFydCBzdGFydGluZyBjb2RlIHBvaW50IHRoYXQgbGllcyB3aXRoaW4gdGhpcyBuYW1lIGdyb3VwCisgICAgICAgICogQHBhcmFtIHJhbmdlZW5kIGVuZCBjb2RlIHBvaW50IHRoYXQgbGllcyB3aXRoaW4gdGhpcyBuYW1lIGdyb3VwCisgICAgICAgICogQHBhcmFtIHR5cGUgYWxnb3JpdGhtIHR5cGUuIFRoZXJlJ3MgMiBraW5kcyBvZiBhbGdvcml0aG1pYyB0eXBlLiBGaXJzdAorICAgICAgICAqICAgICAgICB3aGljaCB1c2VzIGNvZGUgcG9pbnQgYXMgcGFydCBvZiBpdHMgbmFtZSBhbmQgdGhlIG90aGVyIHVzZXMKKyAgICAgICAgKiAgICAgICAgdmFyaWFudCBwb3N0Zml4IHN0cmluZ3MKKyAgICAgICAgKiBAcGFyYW0gdmFyaWFudCBhbGdvcml0aG1pYyB2YXJpYW50CisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHZhbHVlcyBhcmUgdmFsaWQKKyAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBzZXRJbmZvKGludCByYW5nZXN0YXJ0LCBpbnQgcmFuZ2VlbmQsIGJ5dGUgdHlwZSwgYnl0ZSB2YXJpYW50KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocmFuZ2VzdGFydCA+PSBVQ2hhcmFjdGVyLk1JTl9WQUxVRSAmJiByYW5nZXN0YXJ0IDw9IHJhbmdlZW5kCisgICAgICAgICAgICAgICAgJiYgcmFuZ2VlbmQgPD0gVUNoYXJhY3Rlci5NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICAgICAodHlwZSA9PSBUWVBFXzBfIHx8IHR5cGUgPT0gVFlQRV8xXykpIHsKKyAgICAgICAgICAgICAgICBtX3Jhbmdlc3RhcnRfID0gcmFuZ2VzdGFydDsKKyAgICAgICAgICAgICAgICBtX3JhbmdlZW5kXyA9IHJhbmdlZW5kOworICAgICAgICAgICAgICAgIG1fdHlwZV8gPSB0eXBlOworICAgICAgICAgICAgICAgIG1fdmFyaWFudF8gPSB2YXJpYW50OworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgZmFjdG9yIGRhdGEKKyAgICAgICAgKiBAcGFyYW0gZmFjdG9yIEFycmF5IG9mIGZhY3RvcgorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBmYWN0b3JzIGFyZSB2YWxpZAorICAgICAgICAqLworICAgICAgICBib29sZWFuIHNldEZhY3RvcihjaGFyIGZhY3RvcltdKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmFjdG9yLmxlbmd0aCA9PSBtX3ZhcmlhbnRfKSB7CisgICAgICAgICAgICAgICAgbV9mYWN0b3JfID0gZmFjdG9yOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgbmFtZSBwcmVmaXgKKyAgICAgICAgKiBAcGFyYW0gcHJlZml4CisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHByZWZpeCBpcyBzZXQKKyAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBzZXRQcmVmaXgoU3RyaW5nIHByZWZpeCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHByZWZpeCAhPSBudWxsICYmIHByZWZpeC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBtX3ByZWZpeF8gPSBwcmVmaXg7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBTZXRzIHRoZSB2YXJpYW50IGZhY3Rvcml6ZWQgbmFtZSBkYXRhCisgICAgICAgICogQHBhcmFtIHN0cmluZyB2YXJpYW50IGZhY3Rvcml6ZWQgbmFtZSBkYXRhCisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHZhbHVlcyBhcmUgc2V0CisgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gc2V0RmFjdG9yU3RyaW5nKGJ5dGUgc3RyaW5nW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGZhY3RvciBhbmQgdmFyaWFudCBzdHJpbmcgY2FuIGJlIGVtcHR5IGZvciB0aGluZ3MgbGlrZQorICAgICAgICAgICAgLy8gaGFuZ2d1bCBjb2RlIHBvaW50cworICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfID0gc3RyaW5nOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDaGVja3MgaWYgY29kZSBwb2ludCBsaWVzIGluIEFsZ29yaXRobSBvYmplY3QgYXQgaW5kZXgKKyAgICAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAgICAqLworICAgICAgICBib29sZWFuIGNvbnRhaW5zKGludCBjaCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fcmFuZ2VzdGFydF8gPD0gY2ggJiYgY2ggPD0gbV9yYW5nZWVuZF87CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBBcHBlbmRzIGFsZ29yaXRobSBuYW1lIG9mIGNvZGUgcG9pbnQgaW50byBTdHJpbmdCdWZmZXIuCisgICAgICAgICogTm90ZSB0aGlzIG1ldGhvZCBkb2VzIG5vdCBjaGVjayBmb3IgdmFsaWRpdHkgb2YgY29kZSBwb2ludCBpbiBBbGdvcml0aG0sCisgICAgICAgICogcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiBjb2RlIHBvaW50IGRvZXMgbm90IGJlbG9uZyBpbiBBbGdvcml0aG0uCisgICAgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQKKyAgICAgICAgKiBAcGFyYW0gc3RyIFN0cmluZ0J1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgICAgKi8KKyAgICAgICAgdm9pZCBhcHBlbmROYW1lKGludCBjaCwgU3RyaW5nQnVmZmVyIHN0cikKKyAgICAgICAgeworICAgICAgICAgICAgc3RyLmFwcGVuZChtX3ByZWZpeF8pOworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8wXzoKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJlZml4IGZvbGxvd2VkIGJ5IGhleCBkaWdpdHMgaW5kaWNhdGluZyB2YXJpYW50cworICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChjaCwgbV92YXJpYW50Xywgc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzFfOgorICAgICAgICAgICAgICAgICAgICAvLyBwcmVmaXggZm9sbG93ZWQgYnkgZmFjdG9yaXplZC1lbGVtZW50cworICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY2ggLSBtX3Jhbmdlc3RhcnRfOworICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXhlc1tdID0gbV91dGlsSW50QnVmZmVyXzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZhY3RvcjsKKworICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBlbGVtZW50cyBhY2NvcmRpbmcgdG8gdGhlIGZhY3RvcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZhY3Rvcml6ZWQgZWxlbWVudHMgYXJlIGRldGVybWluZWQgYnkgbW9kdWxvCisgICAgICAgICAgICAgICAgICAgIC8vIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxJbnRCdWZmZXJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbV92YXJpYW50XyAtIDE7IGkgPiAwOyBpIC0tKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXSAmIDB4MDBGRjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzW2ldID0gb2Zmc2V0ICUgZmFjdG9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAvPSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBsYXN0IG1vZHVsdXMgYmVjYXVzZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgPD0gY29kZSA8PSBlbmQgZ3VhcmFudGVlcyBoZXJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvZGUgPD0gZmFjdG9yc1swXQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhlc1swXSA9IG9mZnNldDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbmluZyB1cCB0aGUgZmFjdG9yaXplZCBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGdldEZhY3RvclN0cmluZyhpbmRleGVzLCBtX3ZhcmlhbnRfKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgZm9yIHRoZSBhcmd1bWVudCBhbGdvcml0aG1pYyBuYW1lCisgICAgICAgICogQHJldHVybiB0aGUgYWxnb3JpdGhtaWMgY2hhciBvciAtMSBvdGhlcndpc2UuCisgICAgICAgICovCisgICAgICAgIGludCBnZXRDaGFyKFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgcHJlZml4bGVuID0gbV9wcmVmaXhfLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPCBwcmVmaXhsZW4gfHwKKyAgICAgICAgICAgICAgICAhbV9wcmVmaXhfLmVxdWFscyhuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhsZW4pKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8wXyA6CisgICAgICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gSW50ZWdlci5wYXJzZUludChuYW1lLnN1YnN0cmluZyhwcmVmaXhsZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNik7CisgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgaXQgZml0IGludG8gdGhlIHJhbmdlPworICAgICAgICAgICAgICAgICAgICBpZiAobV9yYW5nZXN0YXJ0XyA8PSByZXN1bHQgJiYgcmVzdWx0IDw9IG1fcmFuZ2VlbmRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzFfIDoKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVwZXRpdGF0aXZlIHN1ZmZpeCBuYW1lIGNvbXBhcmlzb24gZG9uZSBoZXJlCisgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBpcyB0aGUgY2hhcmFjdGVyIGNvZGUgLSBzdGFydAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IG1fcmFuZ2VzdGFydF87IGNoIDw9IG1fcmFuZ2VlbmRfOyBjaCArKykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGNoIC0gbV9yYW5nZXN0YXJ0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleGVzW10gPSBtX3V0aWxJbnRCdWZmZXJfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZhY3RvcjsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHRoZSBmYWN0b3JzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZmFjdG9yaXplZCBlbGVtZW50cyBhcmUgZGV0ZXJtaW5lZCBieSBtb2R1bG8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobV91dGlsSW50QnVmZmVyXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtX3ZhcmlhbnRfIC0gMTsgaSA+IDA7IGkgLS0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3IgPSBtX2ZhY3Rvcl9baV0gJiAweDAwRkY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBvZmZzZXQgJSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAvPSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBjYWxjdWxhdGUgdGhlIGxhc3QgbW9kdWx1cworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlY2F1c2Ugc3RhcnQgPD0gY29kZSA8PSBlbmQgZ3VhcmFudGVlcyBoZXJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2RlIDw9IGZhY3RvcnNbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzWzBdID0gb2Zmc2V0OworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbmluZyB1cCB0aGUgZmFjdG9yaXplZCBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVGYWN0b3JTdHJpbmcoaW5kZXhlcywgbV92YXJpYW50XywgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhsZW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgYWxsIGNoYXJzIGluIHRoZSBzZXQgb2YgYWxnb3JpdGhtaWMgbmFtZXMgaW50byB0aGUgc2V0LgorICAgICAgICAgKiBFcXVpdmFsZW50IHRvIHBhcnQgb2YgY2FsY0FsZ05hbWVTZXRzTGVuZ3Rocy4KKyAgICAgICAgICogQHBhcmFtIHNldCBpbnQgc2V0IHRvIGFkZCB0aGUgY2hhcnMgb2YgdGhlIGFsZ29yaXRobSBuYW1lcyBpbnRvCisgICAgICAgICAqIEBwYXJhbSBtYXhsZW5ndGggbWF4aW11bSBsZW5ndGggdG8gY29tcGFyZSB0bworICAgICAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggdGhhdCBpcyBlaXRoZXIgbWF4bGVuZ3RoIG9mIHRoZSBsZW5ndGggb2YgdGhpcworICAgICAgICAgKiAgICAgICAgIGFsZ29yaXRobSBuYW1lIGlmIGl0IGlzIGxvbmdlciB0aGFuIG1heGxlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgaW50IGFkZChpbnQgc2V0W10sIGludCBtYXhsZW5ndGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIHByZWZpeCBsZW5ndGgKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBVQ2hhcmFjdGVyTmFtZS5hZGQoc2V0LCBtX3ByZWZpeF8pOworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzBfIDogeworICAgICAgICAgICAgICAgICAgICAvLyBuYW1lID0gcHJlZml4ICsgKHJhbmdlLT52YXJpYW50IHRpbWVzKSBoZXgtZGlnaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeAorICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gbV92YXJpYW50XzsKKyAgICAgICAgICAgICAgICAgICAgLyogc3lud2VlIHRvIGNoZWNrCisgICAgICAgICAgICAgICAgICAgICAqIGFkZFN0cmluZyhzZXQsIChjb25zdCBjaGFyICopKHJhbmdlICsgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJhbmdlLT52YXJpYW50OyovCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIFRZUEVfMV8gOiB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5hbWUgPSBwcmVmaXggZmFjdG9yaXplZC1lbGVtZW50cworICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHNldCBhbmQgbWF4aW11bSBmYWN0b3Igc3VmZml4IGxlbmd0aCBmb3IgZWFjaAorICAgICAgICAgICAgICAgICAgICAvLyBmYWN0b3IKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1fdmFyaWFudF8gLSAxOyBpID4gMDsgaSAtLSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heGZhY3Rvcmxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgZmFjdG9yID0gbV9mYWN0b3JfW2ldOyBmYWN0b3IgPiAwOyAtLSBmYWN0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlclV0aWxpdHkuZ2V0TnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZS5hZGQoc2V0LCBtX3V0aWxTdHJpbmdCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gbWF4ZmFjdG9ybGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhmYWN0b3JsZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSBtYXhmYWN0b3JsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVuZ3RoID4gbWF4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtYXhsZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgKiBBbGdvcml0aG1pYyBkYXRhIGluZm9ybWF0aW9uCisgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VzdGFydF87CisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VlbmRfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV90eXBlXzsKKyAgICAgICAgcHJpdmF0ZSBieXRlIG1fdmFyaWFudF87CisgICAgICAgIHByaXZhdGUgY2hhciBtX2ZhY3Rvcl9bXTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbV9wcmVmaXhfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV9mYWN0b3JzdHJpbmdfW107CisgICAgICAgIC8qKgorICAgICAgICAgKiBVdGlsaXR5IFN0cmluZ0J1ZmZlcgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFV0aWxpdHkgaW50IGJ1ZmZlcgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgbV91dGlsSW50QnVmZmVyX1tdID0gbmV3IGludFsyNTZdOworCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAqIEdldHMgdGhlIGluZGV4dGggc3RyaW5nIGluIGVhY2ggb2YgdGhlIGFyZ3VtZW50IGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBpbmRleCBhcnJheSB3aXRoIGVhY2ggaW5kZXggY29ycmVzcG9uZGluZyB0byBlYWNoIGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIG9mIHRoZSBhcnJheSBpbmRleAorICAgICAgICAqIEByZXR1cm4gdGhlIGNvbWJpbmVkIHN0cmluZyBvZiB0aGUgYXJyYXkgb2YgaW5kZXh0aCBmYWN0b3Igc3RyaW5nIGluCisgICAgICAgICogICAgICAgICBmYWN0b3IgYmxvY2sKKyAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0RmFjdG9yU3RyaW5nKGludCBpbmRleFtdLCBpbnQgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IG1fZmFjdG9yXy5sZW5ndGg7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCB8fCBsZW5ndGggIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgIGludCBmYWN0b3I7CisgICAgICAgICAgICAgICAgc2l6ZSAtLTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfLCBjb3VudCwgaW5kZXhbaV0pOworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8sIG1fZmFjdG9yc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yIC0gaW5kZXhbaV0gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29tcGFyZXMgdGhlIGluZGV4dGggc3RyaW5nIGluIGVhY2ggb2YgdGhlIGFyZ3VtZW50IGZhY3RvciBibG9jayB3aXRoCisgICAgICAgICogdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAgICAqIEBwYXJhbSBpbmRleCBhcnJheSB3aXRoIGVhY2ggaW5kZXggY29ycmVzcG9uZGluZyB0byBlYWNoIGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBsZW5ndGggaW5kZXggYXJyYXkgbGVuZ3RoCisgICAgICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gY29tcGFyZSB3aXRoCisgICAgICAgICogQHBhcmFtIG9mZnNldCBvZiBzdHIgdG8gc3RhcnQgY29tcGFyaXNvbgorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzdHJpbmcgbWF0Y2hlcworICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gY29tcGFyZUZhY3RvclN0cmluZyhpbnQgaW5kZXhbXSwgaW50IGxlbmd0aCwgU3RyaW5nIHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHNpemUgPSBtX2ZhY3Rvcl8ubGVuZ3RoOworICAgICAgICAgICAgaWYgKGluZGV4ID09IG51bGwgfHwgbGVuZ3RoICE9IHNpemUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IHN0cmNvdW50ID0gb2Zmc2V0OworICAgICAgICAgICAgaW50IGZhY3RvcjsKKyAgICAgICAgICAgIHNpemUgLS07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplOyBpICsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXTsKKyAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsaXR5LnNraXBOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZhY3RvcnN0cmluZ18sIGNvdW50LCBpbmRleFtpXSk7CisgICAgICAgICAgICAgICAgc3RyY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5jb21wYXJlTnVsbFRlcm1CeXRlU3ViU3RyaW5nKHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgc3RyY291bnQsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAoc3RyY291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBzaXplKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gVUNoYXJhY3RlclV0aWxpdHkuc2tpcE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZhY3RvcnN0cmluZ18sIGNvdW50LCBmYWN0b3IgLSBpbmRleFtpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cmNvdW50ICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU2l6ZSBvZiBlYWNoIGdyb3VwcworICAgICAqLworICAgIGludCBtX2dyb3Vwc2l6ZV8gPSAwOworCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogU2V0cyB0aGUgdG9rZW4gZGF0YQorICAgICogQHBhcmFtIHRva2VuIGFycmF5IG9mIHRva2VucworICAgICogQHBhcmFtIHRva2Vuc3RyaW5nIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgb2YgdGhlIHRva2VucworICAgICogQHJldHVybiBmYWxzZSBpZiB0aGVyZSBpcyBhIGRhdGEgZXJyb3IKKyAgICAqLworICAgIGJvb2xlYW4gc2V0VG9rZW4oY2hhciB0b2tlbltdLCBieXRlIHRva2Vuc3RyaW5nW10pCisgICAgeworICAgICAgICBpZiAodG9rZW4gIT0gbnVsbCAmJiB0b2tlbnN0cmluZyAhPSBudWxsICYmIHRva2VuLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgIHRva2Vuc3RyaW5nLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1fdG9rZW50YWJsZV8gPSB0b2tlbjsKKyAgICAgICAgICAgIG1fdG9rZW5zdHJpbmdfID0gdG9rZW5zdHJpbmc7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTZXQgdGhlIGFsZ29yaXRobSBuYW1lIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcGFyYW0gYWxnIEFsZ29yaXRobSBpbmZvcm1hdGlvbiBhcnJheQorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBncm91cCBzdHJpbmcgb2Zmc2V0IGhhcyBiZWVuIHNldCBjb3JyZWN0bHkKKyAgICAqLworICAgIGJvb2xlYW4gc2V0QWxnb3JpdGhtKEFsZ29yaXRobU5hbWUgYWxnW10pCisgICAgeworICAgICAgICBpZiAoYWxnICE9IG51bGwgJiYgYWxnLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICBtX2FsZ29yaXRobV8gPSBhbGc7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgZ3JvdXAgYW5kIHNpemUgb2YgZWFjaCBncm91cCBpbiBudW1iZXIgb2YgY2hhcgorICAgICogQHBhcmFtIGNvdW50IG51bWJlciBvZiBncm91cHMKKyAgICAqIEBwYXJhbSBzaXplIHNpemUgb2YgZ3JvdXAgaW4gY2hhcgorICAgICogQHJldHVybiB0cnVlIGlmIGdyb3VwIHNpemUgaXMgc2V0IGNvcnJlY3RseQorICAgICovCisgICAgYm9vbGVhbiBzZXRHcm91cENvdW50U2l6ZShpbnQgY291bnQsIGludCBzaXplKQorICAgIHsKKyAgICAgICAgaWYgKGNvdW50IDw9IDAgfHwgc2l6ZSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgbV9ncm91cGNvdW50XyA9IGNvdW50OworICAgICAgICBtX2dyb3Vwc2l6ZV8gPSBzaXplOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNldHMgdGhlIGdyb3VwIG5hbWUgZGF0YQorICAgICogQHBhcmFtIGdyb3VwIGluZGV4IGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcGFyYW0gZ3JvdXBzdHJpbmcgbmFtZSBpbmZvcm1hdGlvbiBhcnJheQorICAgICogQHJldHVybiBmYWxzZSBpZiB0aGVyZSBpcyBhIGRhdGEgZXJyb3IKKyAgICAqLworICAgIGJvb2xlYW4gc2V0R3JvdXAoY2hhciBncm91cFtdLCBieXRlIGdyb3Vwc3RyaW5nW10pCisgICAgeworICAgICAgICBpZiAoZ3JvdXAgIT0gbnVsbCAmJiBncm91cHN0cmluZyAhPSBudWxsICYmIGdyb3VwLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgIGdyb3Vwc3RyaW5nLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1fZ3JvdXBpbmZvXyA9IGdyb3VwOworICAgICAgICAgICAgbV9ncm91cHN0cmluZ18gPSBncm91cHN0cmluZzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIERhdGEgdXNlZCBpbiB1bmFtZXMuaWN1CisgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbV90b2tlbnRhYmxlX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3Rva2Vuc3RyaW5nX1tdOworICAgIHByaXZhdGUgY2hhciBtX2dyb3VwaW5mb19bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV9ncm91cHN0cmluZ19bXTsKKyAgICBwcml2YXRlIEFsZ29yaXRobU5hbWUgbV9hbGdvcml0aG1fW107CisKKyAgICAvKioKKyAgICAqIEdyb3VwIHVzZQorICAgICovCisgICAgcHJpdmF0ZSBjaGFyIG1fZ3JvdXBvZmZzZXRzX1tdID0gbmV3IGNoYXJbTElORVNfUEVSX0dST1VQXyArIDFdOworICAgIHByaXZhdGUgY2hhciBtX2dyb3VwbGVuZ3Roc19bXSA9IG5ldyBjaGFyW0xJTkVTX1BFUl9HUk9VUF8gKyAxXTsKKworICAgIC8qKgorICAgICogRGVmYXVsdCBuYW1lIG9mIHRoZSBuYW1lIGRhdGFmaWxlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTkFNRV9GSUxFX05BTUVfID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3VuYW1lcy5pY3UiOworICAgIC8qKgorICAgICogU2hpZnQgY291bnQgdG8gcmV0cmlldmUgZ3JvdXAgaW5mb3JtYXRpb24KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHUk9VUF9TSElGVF8gPSA1OworICAgIC8qKgorICAgICogTWFzayB0byByZXRyaWV2ZSB0aGUgb2Zmc2V0IGZvciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIHdpdGhpbiBhIGdyb3VwCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JPVVBfTUFTS18gPSBMSU5FU19QRVJfR1JPVVBfIC0gMTsKKyAgICAvKioKKyAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQU1FX0JVRkZFUl9TSVpFXyA9IDEwMDAwMDsKKworICAgIC8qKgorICAgICogUG9zaXRpb24gb2Ygb2Zmc2V0aGlnaCBpbiBncm91cCBpbmZvcm1hdGlvbiBhcnJheQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9GRlNFVF9ISUdIX09GRlNFVF8gPSAxOworCisgICAgLyoqCisgICAgKiBQb3NpdGlvbiBvZiBvZmZzZXRsb3cgaW4gZ3JvdXAgaW5mb3JtYXRpb24gYXJyYXkKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPRkZTRVRfTE9XX09GRlNFVF8gPSAyOworICAgIC8qKgorICAgICogRG91YmxlIG5pYmJsZSBpbmRpY2F0b3IsIGFueSBuaWJibGUgPiB0aGlzIG51bWJlciBoYXMgdG8gYmUgY29tYmluZWQKKyAgICAqIHdpdGggaXRzIGZvbGxvd2luZyBuaWJibGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSU5HTEVfTklCQkxFX01BWF8gPSAxMTsKKworICAgIC8qCisgICAgICogTWF4aW11bSBsZW5ndGggb2YgY2hhcmFjdGVyIG5hbWVzIChyZWd1bGFyICYgMS4wKS4KKyAgICAgKi8KKyAgICAvL3ByaXZhdGUgc3RhdGljIGludCBNQVhfTkFNRV9MRU5HVEhfID0gMDsKKyAgICAvKgorICAgICAqIE1heGltdW0gbGVuZ3RoIG9mIElTTyBjb21tZW50cy4KKyAgICAgKi8KKyAgICAvL3ByaXZhdGUgc3RhdGljIGludCBNQVhfSVNPX0NPTU1FTlRfTEVOR1RIXyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgb2YgY2hhcnMgdXNlZCBpbiBjaGFyYWN0ZXIgbmFtZXMgKHJlZ3VsYXIgJiAxLjApLgorICAgICAqIENoYXJzIGFyZSBwbGF0Zm9ybS1kZXBlbmRlbnQgKGNhbiBiZSBFQkNESUMpLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbmFtZVNldF9bXSA9IG5ldyBpbnRbOF07CisgICAgLyoqCisgICAgICogU2V0IG9mIGNoYXJzIHVzZWQgaW4gSVNPIGNvbW1lbnRzLiAocmVndWxhciAmIDEuMCkuCisgICAgICogQ2hhcnMgYXJlIHBsYXRmb3JtLWRlcGVuZGVudCAoY2FuIGJlIEVCQ0RJQykuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9JU09Db21tZW50U2V0X1tdID0gbmV3IGludFs4XTsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IFN0cmluZ0J1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgLyoqCisgICAgICogVXRpbGl0eSBpbnQgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsSW50QnVmZmVyX1tdID0gbmV3IGludFsyXTsKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIElTTyBjb21tZW50IGxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbWF4SVNPQ29tbWVudExlbmd0aF87CisgICAgLyoqCisgICAgICogTWF4aW11bSBuYW1lIGxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbWF4TmFtZUxlbmd0aF87CisgICAgLyoqCisgICAgICogU2luZ2xldG9uIGluc3RhbmNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVUNoYXJhY3Rlck5hbWUgSU5TVEFOQ0VfID0gbnVsbDsKKyAgICAvKioKKyAgICAgKiBUeXBlIG5hbWVzIHVzZWQgZm9yIGV4dGVuZGVkIG5hbWVzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRZUEVfTkFNRVNfW10gPSB7InVuYXNzaWduZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cHBlcmNhc2UgbGV0dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG93ZXJjYXNlIGxldHRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlY2FzZSBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RpZmllciBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub24gc3BhY2luZyBtYXJrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5jbG9zaW5nIG1hcmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21iaW5pbmcgc3BhY2luZyBtYXJrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVjaW1hbCBkaWdpdCBudW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZXR0ZXIgbnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgbnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhY2Ugc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGluZSBzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhZ3JhcGggc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZhdGUgdXNlIGFyZWEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXJyb2dhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXNoIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhcnQgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmQgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25uZWN0b3IgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hdGggc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3VycmVuY3kgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kaWZpZXIgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbCBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmFsIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9uY2hhcmFjdGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGVhZCBzdXJyb2dhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFpbCBzdXJyb2dhdGUifTsKKyAgICAvKioKKyAgICAgKiBVbmtub3duIHR5cGUgbmFtZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVTktOT1dOX1RZUEVfTkFNRV8gPSAidW5rbm93biI7CisgICAgLyoqCisgICAgICogTm90IGEgY2hhcmFjdGVyIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NIQVJBQ1RFUl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQ7CisgICAgLyoqCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSB0eXBlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVCArIDE7CisgICAgLyoqCisgICAgKiBUcmFpbCBzdXJyb2dhdGUgdHlwZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFVDaGFyYWN0ZXJDYXRlZ29yeS5DSEFSX0NBVEVHT1JZX0NPVU5UICsgMjsKKyAgICAvKioKKyAgICAqIEV4dGVuZGVkIGNhdGVnb3J5IGNvdW50CisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVEX0NBVEVHT1JZXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQgKyAzOworCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yIGZvciB1c2UgaW4gVUNoYXJhY3Rlci48L3A+CisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZSgpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKE5BTUVfRklMRV9OQU1FXyk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCBOQU1FX0JVRkZFUl9TSVpFXyk7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lUmVhZGVyIHJlYWRlciA9IG5ldyBVQ2hhcmFjdGVyTmFtZVJlYWRlcihiKTsKKyAgICAgICAgcmVhZGVyLnJlYWQodGhpcyk7CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGFsZ29yaXRobWljIG5hbWUgZm9yIHRoZSBhcmd1bWVudCBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gZGV0ZXJtaW5lIG5hbWUgZm9yCisgICAgKiBAcGFyYW0gY2hvaWNlIG5hbWUgY2hvaWNlCisgICAgKiBAcmV0dXJuIHRoZSBhbGdvcml0aG1pYyBuYW1lIG9yIG51bGwgaWYgbm90IGZvdW5kCisgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRBbGdOYW1lKGludCBjaCwgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIC8vIERvIG5vdCB3cml0ZSBhbGdvcml0aG1pYyBVbmljb2RlIDEuMCBuYW1lcyBiZWNhdXNlIFVuaWhhbiBuYW1lcyBhcmUKKyAgICAgICAgLy8gdGhlIHNhbWUgYXMgdGhlIG1vZGVybiBvbmVzLCBleHRlbnNpb24gQSB3YXMgb25seSBpbnRyb2R1Y2VkIHdpdGgKKyAgICAgICAgLy8gVW5pY29kZSAzLjAsIGFuZCB0aGUgSGFuZ3VsIHN5bGxhYmxlIGJsb2NrIHdhcyBtb3ZlZCBhbmQgY2hhbmdlZAorICAgICAgICAvLyBhcm91bmQgVW5pY29kZSAxLjEuNS4KKyAgICAgICAgaWYgKGNob2ljZSAhPSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgLy8gaW5kZXggaW4gdGVybXMgaW50ZWdlciBpbmRleAorICAgICAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxTdHJpbmdCdWZmZXJfKSB7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwgbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleCA9IG1fYWxnb3JpdGhtXy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtLSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgaWYgKG1fYWxnb3JpdGhtX1tpbmRleF0uY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgbV9hbGdvcml0aG1fW2luZGV4XS5hcHBlbmROYW1lKGNoLCBtX3V0aWxTdHJpbmdCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBjaGFyYWN0ZXIgd2l0aCB0aGUgdG9rZW5pemVkIGFyZ3VtZW50IG5hbWUKKyAgICAqIEBwYXJhbSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gY2hhcmFjdGVyIHdpdGggdGhlIHRva2VuaXplZCBhcmd1bWVudCBuYW1lIG9yIC0xIGlmIGNoYXJhY3RlcgorICAgICogICAgICAgICBpcyBub3QgZm91bmQKKyAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGludCBnZXRHcm91cENoYXIoU3RyaW5nIG5hbWUsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZ3JvdXBjb3VudF87IGkgKyspIHsKKyAgICAgICAgICAgIC8vIHBvcHVsYXRpbmcgdGhlIGRhdGEgc2V0IG9mIGdyb3VwdGFibGUKKworICAgICAgICAgICAgaW50IHN0YXJ0Z3BzdHJpbmRleCA9IGdldEdyb3VwTGVuZ3RocyhpLCBtX2dyb3Vwb2Zmc2V0c18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBsZW5ndGhzXyk7CisKKyAgICAgICAgICAgIC8vIHNoaWZ0IG91dCB0byBmdW5jdGlvbgorICAgICAgICAgICAgaW50IHJlc3VsdCA9IGdldEdyb3VwQ2hhcihzdGFydGdwc3RyaW5kZXgsIG1fZ3JvdXBsZW5ndGhzXywgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKG1fZ3JvdXBpbmZvX1tpICogbV9ncm91cHNpemVfXSA8PCBHUk9VUF9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogQ29tcGFyZXMgYW5kIHJldHJpZXZlIGNoYXJhY3RlciBpZiBuYW1lIGlzIGZvdW5kIHdpdGhpbiB0aGUgYXJndW1lbnQKKyAgICAqIGdyb3VwCisgICAgKiBAcGFyYW0gaW5kZXggaW5kZXggd2hlcmUgdGhlIHNldCBvZiBuYW1lcyByZXNpZGUgaW4gdGhlIGdyb3VwIGJsb2NrCisgICAgKiBAcGFyYW0gbGVuZ3RoIGxpc3Qgb2YgbGVuZ3RocyBvZiB0aGUgc3RyaW5ncworICAgICogQHBhcmFtIG5hbWUgY2hhcmFjdGVyIG5hbWUgdG8gc2VhcmNoIGZvcgorICAgICogQHBhcmFtIGNob2ljZSBvZiBlaXRoZXIgMS4wIG9yIHRoZSBtb3N0IGN1cnJlbnQgdW5pY29kZSBuYW1lCisgICAgKiBAcmV0dXJuIHJlbGF0aXZlIGNoYXJhY3RlciBpbiB0aGUgZ3JvdXAgd2hpY2ggbWF0Y2hlcyBuYW1lLCBvdGhlcndpc2UgaWYKKyAgICAqICAgICAgICAgbm90IGZvdW5kLCAtMSB3aWxsIGJlIHJldHVybmVkCisgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRHcm91cENoYXIoaW50IGluZGV4LCBjaGFyIGxlbmd0aFtdLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIGJ5dGUgYiA9IDA7CisgICAgICAgIGNoYXIgdG9rZW47CisgICAgICAgIGludCBsZW47CisgICAgICAgIGludCBuYW1lbGVuID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IG5pbmRleDsKKyAgICAgICAgaW50IGNvdW50OworCisgICAgICAgIGZvciAoaW50IHJlc3VsdCA9IDA7IHJlc3VsdCA8PSBMSU5FU19QRVJfR1JPVVBfOyByZXN1bHQgKyspIHsKKyAgICAgICAgICAgIG5pbmRleCA9IDA7CisgICAgICAgICAgICBsZW4gPSBsZW5ndGhbcmVzdWx0XTsKKworICAgICAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIGludCBvbGRpbmRleCA9IGluZGV4OworICAgICAgICAgICAgICAgIGluZGV4ICs9IFVDaGFyYWN0ZXJVdGlsaXR5LnNraXBCeXRlU3ViU3RyaW5nKG1fZ3JvdXBzdHJpbmdfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgbGVuLCAoYnl0ZSknOycpOworICAgICAgICAgICAgICAgIGxlbiAtPSAoaW5kZXggLSBvbGRpbmRleCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG51bWJlciBvZiB0b2tlbnMgaXMgPiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lCisgICAgICAgICAgICAvLyB3cml0ZSBlYWNoIGxldHRlciBkaXJlY3RseSwgYW5kIHdyaXRlIGEgdG9rZW4gd29yZCBwZXIgdG9rZW4KKyAgICAgICAgICAgIGZvciAoY291bnQgPSAwOyBjb3VudCA8IGxlbiAmJiBuaW5kZXggIT0gLTEgJiYgbmluZGV4IDwgbmFtZWxlbjsKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19baW5kZXggKyBjb3VudF07CisgICAgICAgICAgICAgICAgY291bnQgKys7CisKKyAgICAgICAgICAgICAgICBpZiAoYiA+PSBtX3Rva2VudGFibGVfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5jaGFyQXQobmluZGV4ICsrKSAhPSAoYiAmIDB4RkYpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuaW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgJiAweEZGXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGxlYWQgYnl0ZSBmb3IgYSBkb3VibGUtYnl0ZSB0b2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgPDwgOCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtX2dyb3Vwc3RyaW5nX1tpbmRleCArIGNvdW50XSAmIDB4MDBmZildOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuY2hhckF0KG5pbmRleCArKykgIT0gKGIgJiAweEZGKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0b2tlbiB3aXRoIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IFVDaGFyYWN0ZXJVdGlsaXR5LmNvbXBhcmVOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgbV90b2tlbnN0cmluZ18sIG5pbmRleCwgdG9rZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobmFtZWxlbiA9PSBuaW5kZXggJiYKKyAgICAgICAgICAgICAgICAoY291bnQgPT0gbGVuIHx8IG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgY291bnRdID09ICc7JykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbmRleCArPSBsZW47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGV4dGVuZGVkIHR5cGUKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gYmUgdGVzdGVkCisgICAgKiBAcmV0dXJuIGV4dGVuZGVkIHR5cGUgaXQgaXMgYXNzb2NpYXRlZCB3aXRoCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0VHlwZShpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoVUNoYXJhY3RlclV0aWxpdHkuaXNOb25DaGFyYWN0ZXIoY2gpKSB7CisgICAgICAgICAgICAvLyBub3QgYSBjaGFyYWN0ZXIgd2UgcmV0dXJuIGEgaW52YWxpZCBjYXRlZ29yeSBjb3VudAorICAgICAgICAgICAgcmV0dXJuIE5PTl9DSEFSQUNURVJfOworICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICBpZiAocmVzdWx0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUpIHsKKyAgICAgICAgICAgIGlmIChjaCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBMRUFEX1NVUlJPR0FURV87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUUkFJTF9TVVJST0dBVEVfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBjaGFyYWN0ZXIgd2l0aCBleHRlbmRlZCBuYW1lIG9mIHRoZSBmb3JtIDwuLi4uPi4KKyAgICAqIEBwYXJhbSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXIgdG8gYmUgZm91bmQKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2UKKyAgICAqIEByZXR1cm4gY2hhcmFjdGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmFtZSwgLTEgaWYgc3VjaCBjaGFyYWN0ZXIgaXMgbm90CisgICAgKiAgICAgICAgICAgICAgICAgICBmb3VuZCBhbmQgLTIgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHdpdGggdGhlIHNlYXJjaC4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRFeHRlbmRlZENoYXIoU3RyaW5nIG5hbWUsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBpZiAobmFtZS5jaGFyQXQoMCkgPT0gJzwnKSB7CisgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIGludCBlbmRJbmRleCA9IG5hbWUubGVuZ3RoKCkgLSAxOworICAgICAgICAgICAgICAgIGlmIChuYW1lLmNoYXJBdChlbmRJbmRleCkgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBzdGFydEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZignLScpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA+PSAwKSB7IC8vIFdlJ3ZlIGdvdCBhIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gSW50ZWdlci5wYXJzZUludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLnN1YnN0cmluZyhzdGFydEluZGV4LCBlbmRJbmRleCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93IHZhbGlkYXRlIHRoZSBjYXRlZ29yeSBuYW1lLiBXZSBjb3VsZCB1c2UgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmluYXJ5IHNlYXJjaCwgb3IgYSB0cmllLCBpZiB3ZSByZWFsbHkgd2FudGVkIHRvLgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBuYW1lLnN1YnN0cmluZygxLCBzdGFydEluZGV4IC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVFlQRV9OQU1FU18ubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZS5jb21wYXJlVG8oVFlQRV9OQU1FU19baV0pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldFR5cGUocmVzdWx0KSA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAgLy8gc2V0cyBvZiBuYW1lIGNoYXJhY3RlcnMsIG1heGltdW0gbmFtZSBsZW5ndGhzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgY29kZXBvaW50IGludG8gYSBzZXQgb2YgaW50cy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIFNFVF9BREQuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gYWRkIHRvCisgICAgICogQHBhcmFtIGNoIDE2IGJpdCBjaGFyIHRvIGFkZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkKGludCBzZXRbXSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIHNldFtjaCA+Pj4gNV0gfD0gMSA8PCAoY2ggJiAweDFmKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgYSBjb2RlcG9pbnQgaXMgYSBwYXJ0IG9mIGEgc2V0IG9mIGludHMuCisgICAgICogRXF1aXZhbGVudCB0byBTRVRfQ09OVEFJTlMuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gY2hlY2sgaW4KKyAgICAgKiBAcGFyYW0gY2ggMTYgYml0IGNoYXIgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZXBvaW50IGlzIHBhcnQgb2YgdGhlIHNldCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBjb250YWlucyhpbnQgc2V0W10sIGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKHNldFtjaCA+Pj4gNV0gJiAoMSA8PCAoY2ggJiAweDFmKSkpICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgY2hhcmFjdGVycyBvZiB0aGUgYXJndW1lbnQgc3RyIGFuZCBnZXRzIHRoZSBsZW5ndGgKKyAgICAgKiBFcXVpdmFsZW50IHRvIGNhbGNTdHJpbmdTZXRMZW5ndGguCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gYWRkIGFsbCBjaGFycyBvZiBzdHIgdG8KKyAgICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBhZGQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRkKGludCBzZXRbXSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBzdHIubGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IHJlc3VsdCAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgYWRkKHNldCwgc3RyLmNoYXJBdChpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBjaGFyYWN0ZXJzIG9mIHRoZSBhcmd1bWVudCBzdHIgYW5kIGdldHMgdGhlIGxlbmd0aAorICAgICAqIEVxdWl2YWxlbnQgdG8gY2FsY1N0cmluZ1NldExlbmd0aC4KKyAgICAgKiBAcGFyYW0gc2V0IHNldCB0byBhZGQgYWxsIGNoYXJzIG9mIHN0ciB0bworICAgICAqIEBwYXJhbSBzdHIgc3RyaW5nIHRvIGFkZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBhZGQoaW50IHNldFtdLCBTdHJpbmdCdWZmZXIgc3RyKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IHN0ci5sZW5ndGgoKTsKKworICAgICAgICBmb3IgKGludCBpID0gcmVzdWx0IC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICBhZGQoc2V0LCBzdHIuY2hhckF0KGkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYWxsIGFsZ29yaXRobWljIG5hbWVzIGludG8gdGhlIG5hbWUgc2V0LgorICAgICAqIEVxdWl2YWxlbnQgdG8gcGFydCBvZiBjYWxjQWxnTmFtZVNldHNMZW5ndGhzLgorICAgICAqIEBwYXJhbSBtYXhsZW5ndGggbGVuZ3RoIHRvIGNvbXBhcmUgdG8KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgcG9zc2libGUgYWxnb3JpdGhtaWMgbmFtZSBpZiBpdCBpcyA+CisgICAgICogICAgICAgICBtYXhsZW5ndGgsIG90aGVyd2lzZSBtYXhsZW5ndGggaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWRkQWxnb3JpdGhtTmFtZShpbnQgbWF4bGVuZ3RoKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSBtX2FsZ29yaXRobV8ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX2FsZ29yaXRobV9baV0uYWRkKG1fbmFtZVNldF8sIG1heGxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID4gbWF4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgbWF4bGVuZ3RoID0gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXhsZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgZXh0ZW5kZWQgbmFtZXMgaW50byB0aGUgbmFtZSBzZXQuCisgICAgICogRXF1aXZhbGVudCB0byBwYXJ0IG9mIGNhbGNFeHROYW1lU2V0c0xlbmd0aHMuCisgICAgICogQHBhcmFtIG1heGxlbmd0aCBsZW5ndGggdG8gY29tcGFyZSB0bworICAgICAqIEByZXR1cm4gdGhlIG1heGxlbmd0aCBvZiBhbnkgcG9zc2libGUgZXh0ZW5kZWQgbmFtZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhZGRFeHRlbmRlZE5hbWUoaW50IG1heGxlbmd0aCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSBUWVBFX05BTUVTXy5sZW5ndGggLSAxOyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgIC8vIGZvciBlYWNoIGNhdGVnb3J5LCBjb3VudCB0aGUgbGVuZ3RoIG9mIHRoZSBjYXRlZ29yeSBuYW1lCisgICAgICAgICAgICAvLyBwbHVzIDkgPQorICAgICAgICAgICAgLy8gMiBmb3IgPD4KKyAgICAgICAgICAgIC8vIDEgZm9yIC0KKyAgICAgICAgICAgIC8vIDYgZm9yIG1vc3QgaGV4IGRpZ2l0cyBwZXIgY29kZSBwb2ludAorICAgICAgICAgICAgaW50IGxlbmd0aCA9IDkgKyBhZGQobV9uYW1lU2V0XywgVFlQRV9OQU1FU19baV0pOworICAgICAgICAgICAgaWYgKGxlbmd0aCA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgIG1heGxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWF4bGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgbmFtZXMgb2YgYSBncm91cCB0byB0aGUgYXJndW1lbnQgc2V0LgorICAgICAqIEVxdWl2YWxlbnQgdG8gY2FsY05hbWVTZXRMZW5ndGguCisgICAgICogQHBhcmFtIG9mZnNldCBvZiB0aGUgZ3JvdXAgbmFtZSBzdHJpbmcgaW4gYnl0ZSBjb3VudAorICAgICAqIEBwYXJhbSBsZW5ndGggb2YgdGhlIGdyb3VwIG5hbWUgc3RyaW5nCisgICAgICogQHBhcmFtIHRva2VubGVuZ3RoIGFycmF5IHRvIHN0b3JlIHRoZSBsZW5ndGggb2YgZWFjaCB0b2tlbgorICAgICAqIEBwYXJhbSBzZXQgdG8gYWRkIHRvCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHN0cmluZyBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgZ3JvdXAKKyAgICAgKiAgICAgICAgIHN0cmluZyBwYXJzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIGFkZEdyb3VwTmFtZShpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBieXRlIHRva2VubGVuZ3RoW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNldFtdKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdG5sZW5ndGggPSAwOworICAgICAgICBpbnQgcmVzdWx0cGxlbmd0aCA9IDA7CisgICAgICAgIHdoaWxlIChyZXN1bHRwbGVuZ3RoIDwgbGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyIGIgPSAoY2hhcikobV9ncm91cHN0cmluZ19bb2Zmc2V0ICsgcmVzdWx0cGxlbmd0aF0gJiAweGZmKTsKKyAgICAgICAgICAgIHJlc3VsdHBsZW5ndGggKys7CisgICAgICAgICAgICBpZiAoYiA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGIgPj0gbV90b2tlbnRhYmxlXy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBhZGQoc2V0LCBiKTsgLy8gaW1wbGljaXQgbGV0dGVyCisgICAgICAgICAgICAgICAgcmVzdWx0bmxlbmd0aCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNoYXIgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgJiAweDAwZmZdOworICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGxlYWQgYnl0ZSBmb3IgYSBkb3VibGUtYnl0ZSB0b2tlbgorICAgICAgICAgICAgICAgICAgICBiID0gKGNoYXIpKGIgPDwgOCB8IChtX2dyb3Vwc3RyaW5nX1tvZmZzZXQgKyByZXN1bHRwbGVuZ3RoXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIDB4MDBmZikpOworICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYl07CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdHBsZW5ndGggKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkKHNldCwgYik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5sZW5ndGggKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCB0b2tlbiB3b3JkCisgICAgICAgICAgICAgICAgICAgIC8vIHVzZSBjYWNoZWQgdG9rZW4gbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGJ5dGUgdGxlbmd0aCA9IHRva2VubGVuZ3RoW2JdOworICAgICAgICAgICAgICAgICAgICBpZiAodGxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLCBtX3Rva2Vuc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxlbmd0aCA9IChieXRlKWFkZChzZXQsIG1fdXRpbFN0cmluZ0J1ZmZlcl8pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5sZW5ndGhbYl0gPSB0bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5sZW5ndGggKz0gdGxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsSW50QnVmZmVyX1swXSA9IHJlc3VsdG5sZW5ndGg7CisgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9bMV0gPSByZXN1bHRwbGVuZ3RoOworICAgICAgICByZXR1cm4gbV91dGlsSW50QnVmZmVyXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIG5hbWVzIG9mIGFsbCBncm91cCB0byB0aGUgYXJndW1lbnQgc2V0LgorICAgICAqIFNldHMgdGhlIGRhdGEgbWVtYmVyIG1fbWF4Kkxlbmd0aF8uCisgICAgICogTWV0aG9kIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgICogRXF1aXZhbGVudCB0byBjYWxjR3JvdXBOYW1lU2V0c0xlbmd0aC4KKyAgICAgKiBAcGFyYW0gbWF4bGVuZ3RoIGxlbmd0aCB0byBjb21wYXJlIHRvCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFkZEdyb3VwTmFtZShpbnQgbWF4bGVuZ3RoKQorICAgIHsKKyAgICAgICAgaW50IG1heGlzb2xlbmd0aCA9IDA7CisgICAgICAgIGNoYXIgb2Zmc2V0c1tdID0gbmV3IGNoYXJbTElORVNfUEVSX0dST1VQXyArIDJdOworICAgICAgICBjaGFyIGxlbmd0aHNbXSA9IG5ldyBjaGFyW0xJTkVTX1BFUl9HUk9VUF8gKyAyXTsKKyAgICAgICAgYnl0ZSB0b2tlbmxlbmd0aHNbXSA9IG5ldyBieXRlW21fdG9rZW50YWJsZV8ubGVuZ3RoXTsKKworICAgICAgICAvLyBlbnVtZXJhdGUgYWxsIGdyb3VwcworICAgICAgICAvLyBmb3IgKGludCBpID0gbV9ncm91cGNvdW50XyAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZ3JvdXBjb3VudF8gOyBpICsrKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0R3JvdXBMZW5ndGhzKGksIG9mZnNldHMsIGxlbmd0aHMpOworICAgICAgICAgICAgLy8gZW51bWVyYXRlIGFsbCBsaW5lcyBpbiBlYWNoIGdyb3VwCisgICAgICAgICAgICAvLyBmb3IgKGludCBsaW5lbnVtYmVyID0gTElORVNfUEVSX0dST1VQXyAtIDE7IGxpbmVudW1iZXIgPj0gMDsKKyAgICAgICAgICAgIC8vICAgIGxpbmVudW1iZXIgLS0pIHsKKyAgICAgICAgICAgIGZvciAoaW50IGxpbmVudW1iZXIgPSAwOyBsaW5lbnVtYmVyIDwgTElORVNfUEVSX0dST1VQXzsKKyAgICAgICAgICAgICAgICBsaW5lbnVtYmVyICsrKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVvZmZzZXQgPSBvZmZzZXQgKyBvZmZzZXRzW2xpbmVudW1iZXJdOworICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBsZW5ndGhzW2xpbmVudW1iZXJdOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyByZWFkIHJlZ3VsYXIgbmFtZQorICAgICAgICAgICAgICAgIGludCBwYXJzZWRbXSA9IGFkZEdyb3VwTmFtZShsaW5lb2Zmc2V0LCBsZW5ndGgsIHRva2VubGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lU2V0Xyk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFswXSA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyAwIGZvciBuYW1lIGxlbmd0aAorICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGggPSBwYXJzZWRbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVvZmZzZXQgKz0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIDEgZm9yIHBhcnNlZCBncm91cCBzdHJpbmcgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsZW5ndGggLT0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIC8vIHJlYWQgVW5pY29kZSAxLjAgbmFtZQorICAgICAgICAgICAgICAgIHBhcnNlZCA9IGFkZEdyb3VwTmFtZShsaW5lb2Zmc2V0LCBsZW5ndGgsIHRva2VubGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lU2V0Xyk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFswXSA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyAwIGZvciBuYW1lIGxlbmd0aAorICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGggPSBwYXJzZWRbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVvZmZzZXQgKz0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIDEgZm9yIHBhcnNlZCBncm91cCBzdHJpbmcgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsZW5ndGggLT0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIC8vIHJlYWQgSVNPIGNvbW1lbnQKKyAgICAgICAgICAgICAgICBwYXJzZWQgPSBhZGRHcm91cE5hbWUobGluZW9mZnNldCwgbGVuZ3RoLCB0b2tlbmxlbmd0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fSVNPQ29tbWVudFNldF8pOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPiBtYXhpc29sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4aXNvbGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCBnTWF4Li4uIC0gbmFtZSBsZW5ndGggbGFzdCBmb3IgdGhyZWFkaW5nCisgICAgICAgIG1fbWF4SVNPQ29tbWVudExlbmd0aF8gPSBtYXhpc29sZW5ndGg7CisgICAgICAgIG1fbWF4TmFtZUxlbmd0aF8gPSBtYXhsZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB1cCB0aGUgbmFtZSBzZXRzIGFuZCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIG1heGltdW0gbGVuZ3Rocy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNhbGNOYW1lU2V0c0xlbmd0aHMuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGluaXROYW1lU2V0c0xlbmd0aHMoKQorICAgIHsKKyAgICAgICAgaWYgKG1fbWF4TmFtZUxlbmd0aF8gPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBleHRyYSA9ICIwMTIzNDU2Nzg5QUJDREVGPD4tIjsKKyAgICAgICAgLy8gc2V0IGhleCBkaWdpdHMsIHVzZWQgaW4gdmFyaW91cyBuYW1lcywgYW5kIDw+LSwgdXNlZCBpbiBleHRlbmRlZAorICAgICAgICAvLyBuYW1lcworICAgICAgICBmb3IgKGludCBpID0gZXh0cmEubGVuZ3RoKCkgLSAxOyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgIGFkZChtX25hbWVTZXRfLCBleHRyYS5jaGFyQXQoaSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0IHNldHMgYW5kIGxlbmd0aHMgZnJvbSBhbGdvcml0aG1pYyBuYW1lcworICAgICAgICBtX21heE5hbWVMZW5ndGhfID0gYWRkQWxnb3JpdGhtTmFtZSgwKTsKKyAgICAgICAgLy8gc2V0IHNldHMgYW5kIGxlbmd0aHMgZnJvbSBleHRlbmRlZCBuYW1lcworICAgICAgICBtX21heE5hbWVMZW5ndGhfID0gYWRkRXh0ZW5kZWROYW1lKG1fbWF4TmFtZUxlbmd0aF8pOworICAgICAgICAvLyBzZXQgc2V0cyBhbmQgbGVuZ3RocyBmcm9tIGdyb3VwIG5hbWVzLCBzZXQgZ2xvYmFsIG1heGltdW0gdmFsdWVzCisgICAgICAgIGFkZEdyb3VwTmFtZShtX21heE5hbWVMZW5ndGhfKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIGNoYXIgc2V0IGNzZXQgaW50byBhIFVuaWNvZGUgc2V0IHVzZXQuCisgICAgICogRXF1aXZhbGVudCB0byBjaGFyU2V0VG9VU2V0LgorICAgICAqIEBwYXJhbSBzZXQgU2V0IG9mIDI1NiBiaXQgZmxhZ3MgY29ycmVzcG9uZGluZyB0byBhIHNldCBvZiBjaGFycy4KKyAgICAgKiBAcGFyYW0gdXNldCBVU2V0IHRvIHJlY2VpdmUgY2hhcmFjdGVycy4gRXhpc3RpbmcgY29udGVudHMgYXJlIGRlbGV0ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnQoaW50IHNldFtdLCBVbmljb2RlU2V0IHVzZXQpCisgICAgeworICAgICAgICB1c2V0LmNsZWFyKCk7CisgICAgICAgIGlmICghaW5pdE5hbWVTZXRzTGVuZ3RocygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBidWlsZCBhIGNoYXIgc3RyaW5nIHdpdGggYWxsIGNoYXJzIHRoYXQgYXJlIHVzZWQgaW4gY2hhcmFjdGVyIG5hbWVzCisgICAgICAgIGZvciAoY2hhciBjID0gMjU1OyBjID4gMDsgYyAtLSkgeworICAgICAgICAgICAgaWYgKGNvbnRhaW5zKHNldCwgYykpIHsKKyAgICAgICAgICAgICAgICB1c2V0LmFkZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lQ2hvaWNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5N2YxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhCkBAIC0wLDAgKzEsMjkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvKioKKyogSW50ZXJuYWwgY2xhc3MgY29udGFpbmluZyBzZWxlY3RvciBjb25zdGFudHMgZm9yIHRoZSB1bmljb2RlIGNoYXJhY3RlciBuYW1lcy4KKyogQ29uc3RhbnRzIHJlcHJlc2VudGluZyB0aGUgIm1vZGVybiIgbmFtZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyIG9yIHRoZSBuYW1lIAorKiB0aGF0IHdhcyBkZWZpbmVkIGluIFVuaWNvZGUgdmVyc2lvbiAxLjAsIGJlZm9yZSB0aGUgVW5pY29kZSBzdGFuZGFyZCAKKyogbWVyZ2VkIHdpdGggSVNPLTEwNjQ2LgorKiBBcmd1bWVudHMgZm9yIDxhIGhyZWY9VUNoYXJhY3Rlck5hbWUuaHRtbD5VQ2hhcmFjdGVyTmFtZTwvYT4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdDA2MDAKKyovCisKK3B1YmxpYyBpbnRlcmZhY2UgVUNoYXJhY3Rlck5hbWVDaG9pY2UKK3sKKyAgLy8gcHVibGljIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIHN0YXRpYyBmaW5hbCBpbnQgVU5JQ09ERV9DSEFSX05BTUUgPSAwOworICBzdGF0aWMgZmluYWwgaW50IFVOSUNPREVfMTBfQ0hBUl9OQU1FID0gMTsKKyAgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9DSEFSX05BTUUgPSAyOworICBzdGF0aWMgZmluYWwgaW50IENIQVJfTkFNRV9DSE9JQ0VfQ09VTlQgPSAzOworICBzdGF0aWMgZmluYWwgaW50IElTT19DT01NRU5UXyA9IENIQVJfTkFNRV9DSE9JQ0VfQ09VTlQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzFkNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpAQCAtMCwwICsxLDIxMyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKKy8qKgorKiA8cD5JbnRlcm5hbCByZWFkZXIgY2xhc3MgZm9yIElDVSBkYXRhIGZpbGUgdW5hbWUuZGF0IGNvbnRhaW5pbmcgCisqIFVuaWNvZGUgY29kZXBvaW50IG5hbWUgZGF0YS48L3A+IAorKiA8cD5UaGlzIGNsYXNzIHNpbXBseSByZWFkcyB1bmFtZXMuaWN1LCBhdXRoZW50aWNhdGVzIHRoYXQgaXQgaXMgYSB2YWxpZAorKiBJQ1UgZGF0YSBmaWxlIGFuZCBzcGxpdCBpdHMgY29udGVudHMgdXAgaW50byBibG9ja3Mgb2YgZGF0YSBmb3IgdXNlIGluCisqIDxhIGhyZWY9VUNoYXJhY3Rlck5hbWUuaHRtbD5jb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lPC9hPi4KKyogPC9wPiAKKyogPHA+dW5hbWVzLmljdSB3aGljaCBpcyBpbiBiaWctZW5kaWFuIGZvcm1hdCBpcyBqYXJlZCB0b2dldGhlciB3aXRoIHRoaXMgCisqIHBhY2thZ2UuPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIEZlYnJ1YXJ5IDFzdCAyMDAyCisqIEBkcmFmdCAyLjEKKyovCisKK2ZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJOYW1lUmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZQoreyAgICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzBdOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcC5kYXQgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJOYW1lUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSURfLCB0aGlzKTsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgfQorICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIFJlYWQgYW5kIGJyZWFrIHVwIHRoZSBzdHJlYW0gb2YgZGF0YSBwYXNzZWQgaW4gYXMgYXJndW1lbnRzCisgICAgKiBhbmQgZmlsbHMgdXAgVUNoYXJhY3Rlck5hbWUuCisgICAgKiBJZiB1bnN1Y2Nlc3NmdWwgZmFsc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBkYXRhIGluc3RhbmNlIG9mIGRhdGFibG9jaworICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGVyZSdzIGEgZGF0YSBlcnJvci4KKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlYWQoVUNoYXJhY3Rlck5hbWUgZGF0YSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyByZWFkaW5nIGluZGV4CisgICAgICAgIG1fdG9rZW5zdHJpbmdpbmRleF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBtX2dyb3VwaW5kZXhfICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgbV9ncm91cHN0cmluZ2luZGV4XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIG1fYWxnbmFtZXNpbmRleF8gICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZGluZyB0b2tlbnMKKyAgICAgICAgaW50IGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGNoYXIgdG9rZW5bXSA9IG5ldyBjaGFyW2NvdW50XTsKKyAgICAgICAgZm9yIChjaGFyIGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIHRva2VuW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBtX2dyb3VwaW5kZXhfIC0gbV90b2tlbnN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSB0b2tlbnN0cltdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkodG9rZW5zdHIpOworICAgICAgICBkYXRhLnNldFRva2VuKHRva2VuLCB0b2tlbnN0cik7CisgICAgICAgIAorICAgICAgICAvLyByZWFkaW5nIHRoZSBncm91cCBpbmZvcm1hdGlvbiByZWNvcmRzCisgICAgICAgIGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGRhdGEuc2V0R3JvdXBDb3VudFNpemUoY291bnQsIEdST1VQX0lORk9fU0laRV8pOworICAgICAgICBjb3VudCAqPSBHUk9VUF9JTkZPX1NJWkVfOworICAgICAgICBjaGFyIGdyb3VwW10gPSBuZXcgY2hhcltjb3VudF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIGdyb3VwW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNpemUgPSBtX2FsZ25hbWVzaW5kZXhfIC0gbV9ncm91cHN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSBncm91cHN0cmluZ1tdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkoZ3JvdXBzdHJpbmcpOworICAgIAorICAgICAgICBkYXRhLnNldEdyb3VwKGdyb3VwLCBncm91cHN0cmluZyk7CisgICAgICAgIAorICAgICAgICBjb3VudCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYWxnW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lW2NvdW50XTsKKyAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYW4gPSByZWFkQWxnKCk7CisgICAgICAgICAgICBpZiAoYW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW5hbWVzLmljdSByZWFkIGVycm9yOiBBbGdvcml0aG1pYyBuYW1lcyBjcmVhdGlvbiBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWxnW2ldID0gYW47CisgICAgICAgIH0KKyAgICAgICAgZGF0YS5zZXRBbGdvcml0aG0oYWxnKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiA8cD5DaGVja2luZyB0aGUgZmlsZSBmb3IgdGhlIGNvcnJlY3QgZm9ybWF0LjwvcD4KKyAgICAqIEBwYXJhbSBkYXRhZm9ybWF0aWQKKyAgICAqIEBwYXJhbSBkYXRhZm9ybWF0dmVyc2lvbgorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBmaWxlIGZvcm1hdCB2ZXJzaW9uIGlzIGNvcnJlY3QKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhdXRoZW50aWNhdGUoYnl0ZSBkYXRhZm9ybWF0aWRbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBkYXRhZm9ybWF0dmVyc2lvbltdKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFycmF5cy5lcXVhbHMoREFUQV9GT1JNQVRfSURfLCBkYXRhZm9ybWF0aWQpICYmCisgICAgICAgICAgICAgICBBcnJheXMuZXF1YWxzKERBVEFfRk9STUFUX1ZFUlNJT05fLCBkYXRhZm9ybWF0dmVyc2lvbik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBEYXRhIGlucHV0IHN0cmVhbSBmb3IgbmFtZXMgCisgICAgKi8KKyAgICBwcml2YXRlIERhdGFJbnB1dFN0cmVhbSBtX2RhdGFJbnB1dFN0cmVhbV87CisgICAgLyoqCisgICAgKiBTaXplIG9mIHRoZSBncm91cCBpbmZvcm1hdGlvbiBibG9jayBpbiBudW1iZXIgb2YgY2hhcgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdST1VQX0lORk9fU0laRV8gPSAzOworCisgICAgLyoqCisgICAgKiBJbmRleCBvZiB0aGUgb2Zmc2V0IGluZm9ybWF0aW9uCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Rva2Vuc3RyaW5naW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fZ3JvdXBpbmRleF87CisgICAgcHJpdmF0ZSBpbnQgbV9ncm91cHN0cmluZ2luZGV4XzsKKyAgICBwcml2YXRlIGludCBtX2FsZ25hbWVzaW5kZXhfOworICAgICAgCisgICAgLyoqCisgICAgKiBTaXplIG9mIGFuIGFsZ29yaXRobWljIG5hbWUgaW5mb3JtYXRpb24gZ3JvdXAKKyAgICAqIHN0YXJ0IGNvZGUgcG9pbnQgc2l6ZSArIGVuZCBjb2RlIHBvaW50IHNpemUgKyB0eXBlIHNpemUgKyB2YXJpYW50IHNpemUgKyAKKyAgICAqIHNpemUgb2YgZGF0YSBzaXplCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUxHX0lORk9fU0laRV8gPSAxMjsKKyAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiBhbmQgaWQgdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1tdID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGJ5dGUpMHgxLCAoYnl0ZSkweDAsIChieXRlKTB4MCwgKGJ5dGUpMHgwfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NzUsIChieXRlKTB4NkUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NjEsIChieXRlKTB4NkR9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICogUmVhZHMgYW4gaW5kaXZpZHVhbCByZWNvcmQgb2YgQWxnb3JpdGhtTmFtZXMKKyAgICAqIEByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgQWxnb3JpdGhOYW1lcyBpZiByZWFkIGlzIHN1Y2Nlc3NmdWwgb3RoZXJ3aXNlIG51bGwKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZmlsZSByZWFkIGVycm9yIG9jY3VycyBvciBkYXRhIGlzIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lIHJlYWRBbGcoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgcmVzdWx0ID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUNoYXJhY3Rlck5hbWUuQWxnb3JpdGhtTmFtZSgpOworICAgICAgICBpbnQgcmFuZ2VzdGFydCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGludCByYW5nZWVuZCAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgYnl0ZSB0eXBlICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgYnl0ZSB2YXJpYW50ICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuc2V0SW5mbyhyYW5nZXN0YXJ0LCByYW5nZWVuZCwgdHlwZSwgdmFyaWFudCkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBzaXplID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUuVFlQRV8xXykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhciBmYWN0b3JbXSA9IG5ldyBjaGFyW3ZhcmlhbnRdOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YXJpYW50OyBqICsrKSB7CisgICAgICAgICAgICAgICAgZmFjdG9yW2pdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdC5zZXRGYWN0b3IoZmFjdG9yKTsKKyAgICAgICAgICAgIHNpemUgLT0gKHZhcmlhbnQgPDwgMSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHByZWZpeCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgY2hhciBjID0gKGNoYXIpKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpICYgMHgwMEZGKTsKKyAgICAgICAgd2hpbGUgKGMgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgcHJlZml4LmFwcGVuZChjKTsKKyAgICAgICAgICAgIGMgPSAoY2hhcikobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCeXRlKCkgJiAweDAwRkYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXN1bHQuc2V0UHJlZml4KHByZWZpeC50b1N0cmluZygpKTsKKyAgICAgICAgCisgICAgICAgIHNpemUgLT0gKEFMR19JTkZPX1NJWkVfICsgcHJlZml4Lmxlbmd0aCgpICsgMSk7CisgICAgICAgIAorICAgICAgICBpZiAoc2l6ZSA+IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGUgc3RyaW5nW10gPSBuZXcgYnl0ZVtzaXplXTsKKyAgICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkoc3RyaW5nKTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRGYWN0b3JTdHJpbmcoc3RyaW5nKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGQxMWRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5LmphdmEKQEAgLTAsMCArMSwxMTY1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJDYXRlZ29yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworLyoqCisqIDxwPkludGVybmFsIGNsYXNzIHVzZWQgZm9yIFVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnR5IGRhdGFiYXNlLjwvcD4KKyogPHA+VGhpcyBjbGFzc2VzIHN0b3JlIGJpbmFyeSBkYXRhIHJlYWQgZnJvbSB1cHJvcHMuaWN1LgorKiBJdCBkb2VzIG5vdCBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIHBhcnNlIHRoZSBkYXRhIGludG8gbW9yZSBoaWdoLWxldmVsCisqIGluZm9ybWF0aW9uLiBJdCBvbmx5IHJldHVybnMgYnl0ZXMgb2YgaW5mb3JtYXRpb24gd2hlbiByZXF1aXJlZC48L3A+CisqIDxwPkR1ZSB0byB0aGUgZm9ybSBtb3N0IGNvbW1vbmx5IHVzZWQgZm9yIHJldHJpZXZhbCwgYXJyYXkgb2YgY2hhciBpcyB1c2VkCisqIHRvIHN0b3JlIHRoZSBiaW5hcnkgZGF0YS48L3A+CisqIDxwPlVDaGFyYWN0ZXJQcm9wZXJ0eURCIGFsc28gY29udGFpbnMgaW5mb3JtYXRpb24gb24gYWNjZXNzaW5nIGluZGV4ZXMgdG8KKyogc2lnbmlmaWNhbnQgcG9pbnRzIGluIHRoZSBiaW5hcnkgZGF0YS48L3A+CisqIDxwPlJlc3BvbnNpYmlsaXR5IGZvciBtb2xkaW5nIHRoZSBiaW5hcnkgZGF0YSBpbnRvIG1vcmUgbWVhbmluZyBmb3JtIGxpZXMgb24KKyogPGEgaHJlZj1VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4uPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIGZlYnJ1YXJ5IDFzdCAyMDAyCisqIEBkcmFmdCAyLjEKKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyUHJvcGVydHkKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIFRyaWUgZGF0YQorICAgICovCisgICAgcHVibGljIENoYXJUcmllIG1fdHJpZV87CisgICAgLyoqCisgICAgICogT3B0aW1pemF0aW9uCisgICAgICogQ2hhclRyaWUgaW5kZXggYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhcltdIG1fdHJpZUluZGV4XzsKKyAgICAvKioKKyAgICAgKiBPcHRpbWl6YXRpb24KKyAgICAgKiBDaGFyVHJpZSBkYXRhIGFycmF5CisgICAgICovCisgICAgcHVibGljIGNoYXJbXSBtX3RyaWVEYXRhXzsKKyAgICAvKioKKyAgICAgKiBPcHRpbWl6YXRpb24KKyAgICAgKiBDaGFyVHJpZSBkYXRhIG9mZnNldAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbV90cmllSW5pdGlhbFZhbHVlXzsKKyAgICAvKioKKyAgICAqIFVuaWNvZGUgdmVyc2lvbgorICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIG1fdW5pY29kZVZlcnNpb25fOworICAgIC8qKgorICAgICogTGF0aW4gY2FwaXRhbCBsZXR0ZXIgaSB3aXRoIGRvdCBhYm92ZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIExBVElOX0NBUElUQUxfTEVUVEVSX0lfV0lUSF9ET1RfQUJPVkVfID0gMHgxMzA7CisgICAgLyoqCisgICAgKiBMYXRpbiBzbWFsbCBsZXR0ZXIgaSB3aXRoIGRvdCBhYm92ZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIExBVElOX1NNQUxMX0xFVFRFUl9ET1RMRVNTX0lfID0gMHgxMzE7CisgICAgLyoqCisgICAgKiBMYXRpbiBsb3dlcmNhc2UgaQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIExBVElOX1NNQUxMX0xFVFRFUl9JXyA9IDB4Njk7CisgICAgLyoqCisgICAgKiBDaGFyYWN0ZXIgdHlwZSBtYXNrCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUWVBFX01BU0sgPSAweDFGOworCisgICAgLy8gdXByb3BzLmggZW51bSBVUHJvcGVydHlTb3VyY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLyoqIE5vIHNvdXJjZSwgbm90IGEgc3VwcG9ydGVkIHByb3BlcnR5LiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19OT05FPTA7CisgICAgLyoqIEZyb20gdWNoYXIuYy91cHJvcHMuaWN1IG1haW4gdHJpZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19DSEFSPTE7CisgICAgLyoqIEZyb20gdWNoYXIuYy91cHJvcHMuaWN1IHByb3BlcnRpZXMgdmVjdG9ycyB0cmllICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX1BST1BTVkVDPTI7CisgICAgLyoqIEhhbmd1bF9TeWxsYWJsZV9UeXBlLCBmcm9tIHVjaGFyLmMvdXByb3BzLmljdSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19IU1Q9MzsKKyAgICAvKiogRnJvbSB1bmFtZXMuYy91bmFtZXMuaWN1ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX05BTUVTPTQ7CisgICAgLyoqIEZyb20gdW5vcm0uY3BwL3Vub3JtLmljdSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19OT1JNPTU7CisgICAgLyoqIEZyb20gdWNhc2UuYy91Y2FzZS5pY3UgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfQ0FTRT02OworICAgIC8qKiBGcm9tIHViaWRpX3Byb3BzLmMvdWJpZGkuaWN1ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX0JJREk9NzsKKyAgICAvKiogRnJvbSB1Y2hhci5jL3Vwcm9wcy5pY3UgbWFpbiB0cmllIGFzIHdlbGwgYXMgcHJvcGVydGllcyB2ZWN0b3JzIHRyaWUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfQ0hBUl9BTkRfUFJPUFNWRUM9ODsKKyAgICAvKiogT25lIG1vcmUgdGhhbiB0aGUgaGlnaGVzdCBVUHJvcGVydHlTb3VyY2UgKFNSQ18pIGNvbnN0YW50LiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19DT1VOVD05OworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSmF2YSBmcmllbmRzIGltcGxlbWVudGF0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXhEYXRhKENoYXJUcmllLkZyaWVuZEFnZW50IGZyaWVuZGFnZW50KQorICAgIHsKKyAgICAgICAgbV90cmllSW5kZXhfID0gZnJpZW5kYWdlbnQuZ2V0UHJpdmF0ZUluZGV4KCk7CisgICAgICAgIG1fdHJpZURhdGFfID0gZnJpZW5kYWdlbnQuZ2V0UHJpdmF0ZURhdGEoKTsKKyAgICAgICAgbV90cmllSW5pdGlhbFZhbHVlXyA9IGZyaWVuZGFnZW50LmdldFByaXZhdGVJbml0aWFsVmFsdWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHByb3BlcnR5IHZhbHVlIGF0IHRoZSBpbmRleC4KKyAgICAqIFRoaXMgaXMgb3B0aW1pemVkLgorICAgICogTm90ZSB0aGlzIGlzIGFsaXR0bGUgZGlmZmVyZW50IGZyb20gQ2hhclRyaWUgdGhlIGluZGV4IG1fdHJpZURhdGFfCisgICAgKiBpcyBuZXZlciBuZWdhdGl2ZS4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIHByb3BlcnR5IHZhbHVlIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiBwcm9wZXJ0eSB2YWx1ZSBvZiBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFByb3BlcnR5KGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgfHwgKGNoID4gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFCisgICAgICAgICAgICAgICAgJiYgY2ggPCBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIC8vIEJNUCBjb2RlcG9pbnQgMDAwMC4uRDdGRiBvciBEQzAwLi5GRkZGCisgICAgICAgICAgICAvLyBvcHRpbWl6ZWQKKyAgICAgICAgICAgIHRyeSB7IC8vIHVzaW5nIHRyeSBmb3IgY2ggPCAwIGlzIGZhc3RlciB0aGFuIHVzaW5nIGFuIGlmIHN0YXRlbWVudAorICAgICAgICAgICAgICAgIHJldHVybiBtX3RyaWVEYXRhX1sKKyAgICAgICAgICAgICAgICAgICAgKG1fdHJpZUluZGV4X1tjaCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfXQorICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfKQorICAgICAgICAgICAgICAgICAgICArIChjaCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXyldOworICAgICAgICAgICAgfSBjYXRjaCAoQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV90cmllSW5pdGlhbFZhbHVlXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSBEODAwLi5EQkZGCisgICAgICAgICAgICByZXR1cm4gbV90cmllRGF0YV9bCisgICAgICAgICAgICAgICAgICAgIChtX3RyaWVJbmRleF9bVHJpZS5MRUFEX0lOREVYX09GRlNFVF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChjaCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXykKKyAgICAgICAgICAgICAgICAgICAgKyAoY2ggJiBUcmllLklOREVYX1NUQUdFXzNfTUFTS18pXTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgLy8gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IDEwMDAwLi4xMEZGRkYKKyAgICAgICAgICAgIC8vIGxvb2sgYXQgdGhlIGNvbnN0cnVjdGlvbiBvZiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHRyYWlsIGZvcm1zIHRoZSBlbmRzIG9mIGl0LgorICAgICAgICAgICAgcmV0dXJuIG1fdHJpZV8uZ2V0U3Vycm9nYXRlVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShjaCAmIFRyaWUuU1VSUk9HQVRFX01BU0tfKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2ggaXMgb3V0IG9mIGJvdW5kcworICAgICAgICAvLyByZXR1cm4gbV9kYXRhT2Zmc2V0XyBpZiB0aGVyZSBpcyBhbiBlcnJvciwgaW4gdGhpcyBjYXNlIHdlIHJldHVybgorICAgICAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZTogbV9pbml0aWFsVmFsdWVfCisgICAgICAgIC8vIHdlIGNhbm5vdCBhc3N1bWUgdGhhdCBtX2luaXRpYWxWYWx1ZV8gaXMgYXQgb2Zmc2V0IDAKKyAgICAgICAgLy8gdGhpcyBpcyBmb3Igb3B0aW1pemF0aW9uLgorICAgICAgICByZXR1cm4gbV90cmllSW5pdGlhbFZhbHVlXzsKKworICAgICAgICAvLyB0aGlzIGFsbCBpcyBhbiBpbmxpbmVkIGZvcm0gb2YgcmV0dXJuIG1fdHJpZV8uZ2V0Q29kZVBvaW50VmFsdWUoY2gpOworICAgIH0KKworICAgIC8qCisgICAgKiBHZXR0aW5nIHRoZSBzaWduZWQgbnVtZXJpYyB2YWx1ZSBvZiBhIGNoYXJhY3RlciBlbWJlZGRlZCBpbiB0aGUgcHJvcGVydHkKKyAgICAqIGFyZ3VtZW50CisgICAgKiBAcGFyYW0gcHJvcCB0aGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIHNpZ25lZCBudW1iZXJpYyB2YWx1ZQorICAgICovCisvLyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRTaWduZWRWYWx1ZShpbnQgcHJvcCkKKy8vICAgIHsKKy8vICAgICAgICByZXR1cm4gKChzaG9ydClwcm9wID4+IFZBTFVFX1NISUZUXyk7CisvLyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIHVuc2lnbmVkIG51bWVyaWMgdmFsdWUgb2YgYSBjaGFyYWN0ZXIgZW1iZWRkZWQgaW4gdGhlIHByb3BlcnR5CisgICAgKiBhcmd1bWVudAorICAgICogQHBhcmFtIHByb3AgdGhlIGNoYXJhY3RlcgorICAgICogQHJldHVybiB1bnNpZ25lZCBudW1iZXJpYyB2YWx1ZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0VW5zaWduZWRWYWx1ZShpbnQgcHJvcCkKKyAgICB7CisgICAgICAgIHJldHVybiAocHJvcCA+PiBWQUxVRV9TSElGVF8pICYgVU5TSUdORURfVkFMVUVfTUFTS19BRlRFUl9TSElGVF87CisgICAgfQorCisgICAgLyogaW50ZXJuYWwgbnVtZXJpYyBwc2V1ZG8tdHlwZXMgZm9yIHNwZWNpYWwgZW5jb2RpbmdzIG9mIG51bWVyaWMgdmFsdWVzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlRfRlJBQ1RJT049NDsgLyogPT1VQ2hhcmFjdGVyLk51bWVyaWNUeXBlLkNPVU5ULCBtdXN0IG5vdCBjaGFuZ2UgdW5sZXNzIGJpbmFyeSBmb3JtYXQgdmVyc2lvbiBjaGFuZ2VzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlRfTEFSR0U9NTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVF9DT1VOVD02OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdW5pY29kZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMuCisgICAgICogQyB2ZXJzaW9uIGdldFVuaWNvZGVQcm9wZXJ0aWVzLgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQgY29kZXBvaW50IHdob3NlIGFkZGl0aW9uYWwgcHJvcGVydGllcyBpcyB0byBiZQorICAgICAqICAgICAgICAgICAgICAgICAgcmV0cmlldmVkCisgICAgICogQHBhcmFtIGNvbHVtbgorICAgICAqIEByZXR1cm4gdW5pY29kZSBwcm9wZXJ0aWVzCisgICAgICovCisgICAgICAgcHVibGljIGludCBnZXRBZGRpdGlvbmFsKGludCBjb2RlcG9pbnQsIGludCBjb2x1bW4pIHsKKyAgICAgICAgaWYgKGNvbHVtbiA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5KGNvZGVwb2ludCk7CisgICAgICAgIH0KKyAgICAgICAgICAgaWYgKGNvbHVtbiA8IDAgfHwgY29sdW1uID49IG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF8pIHsKKyAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfQorICAgICAgIHJldHVybiBtX2FkZGl0aW9uYWxWZWN0b3JzX1sKKyAgICAgICAgICAgICAgICAgICAgIG1fYWRkaXRpb25hbFRyaWVfLmdldENvZGVQb2ludFZhbHVlKGNvZGVwb2ludCkgKyBjb2x1bW5dOworICAgICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgTVlfTUFTSyA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5UWVBFX01BU0sKKyAgICAgICAgJiAoKDE8PFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKSB8CisgICAgICAgICAgICAoMTw8VUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpIHwKKyAgICAgICAgICAgICgxPDxVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUikgfAorICAgICAgICAgICAgKDE8PFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIpIHwKKyAgICAgICAgICAgICgxPDxVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKSk7CisKKworICAgICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgImFnZSIgb2YgdGhlIGNvZGUgcG9pbnQuPC9wPgorICAgICAqIDxwPlRoZSAiYWdlIiBpcyB0aGUgVW5pY29kZSB2ZXJzaW9uIHdoZW4gdGhlIGNvZGUgcG9pbnQgd2FzIGZpcnN0CisgICAgICogZGVzaWduYXRlZCAoYXMgYSBub24tY2hhcmFjdGVyIG9yIGZvciBQcml2YXRlIFVzZSkgb3IgYXNzaWduZWQgYQorICAgICAqIGNoYXJhY3Rlci48L3A+CisgICAgICogPHA+VGhpcyBjYW4gYmUgdXNlZnVsIHRvIGF2b2lkIGVtaXR0aW5nIGNvZGUgcG9pbnRzIHRvIHJlY2VpdmluZworICAgICAqIHByb2Nlc3NlcyB0aGF0IGRvIG5vdCBhY2NlcHQgbmV3ZXIgY2hhcmFjdGVycy48L3A+CisgICAgICogPHA+VGhlIGRhdGEgaXMgZnJvbSB0aGUgVUNEIGZpbGUgRGVyaXZlZEFnZS50eHQuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIGRvZXMgbm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZXBvaW50LjwvcD4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IFRoZSBjb2RlIHBvaW50LgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGUgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBnZXRBZ2UoaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIGludCB2ZXJzaW9uID0gZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDApID4+IEFHRV9TSElGVF87CisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZXJzaW9uID4+IEZJUlNUX05JQkJMRV9TSElGVF8pICYgTEFTVF9OSUJCTEVfTUFTS18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICYgTEFTVF9OSUJCTEVfTUFTS18sIDAsIDApOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgVU5TSUdORURfSU5UX01BU0sgPSAweGZmZmZmZmZmTDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19DTl9NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLlVOQVNTSUdORUQpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19DQ19NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLkNPTlRST0wpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19DU19NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLlNVUlJPR0FURSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDX1pTX01BU0sgPSBnZXRNYXNrKFVDaGFyYWN0ZXIuU1BBQ0VfU0VQQVJBVE9SKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NfWkxfTUFTSyA9IGdldE1hc2soVUNoYXJhY3Rlci5MSU5FX1NFUEFSQVRPUik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDX1pQX01BU0sgPSBnZXRNYXNrKFVDaGFyYWN0ZXIuUEFSQUdSQVBIX1NFUEFSQVRPUik7CisgICAgLyoqIE1hc2sgY29uc3RhbnQgZm9yIG11bHRpcGxlIFVDaGFyQ2F0ZWdvcnkgYml0cyAoWiBTZXBhcmF0b3JzKS4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NfWl9NQVNLID0gR0NfWlNfTUFTS3xHQ19aTF9NQVNLfEdDX1pQX01BU0s7CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgYyBpcyBpbgorICAgICAqIFteXHB7c3BhY2V9XHB7Z2M9Q29udHJvbH1ccHtnYz1TdXJyb2dhdGV9XHB7Z2M9VW5hc3NpZ25lZH1dCisgICAgICogd2l0aCBzcGFjZT1ccHtXaGl0ZXNwYWNlfSBhbmQgQ29udHJvbD1DYy4KKyAgICAgKiBJbXBsZW1lbnRzIFVDSEFSX1BPU0lYX0dSQVBILgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNncmFwaFBPU0lYKGludCBjKSB7CisgICAgICAgIC8qIFxwe3NwYWNlfVxwe2djPUNvbnRyb2x9ID09IFxwe2djPVp9XHB7Q29udHJvbH0gKi8KKyAgICAgICAgLyogY29tcGFyaW5nID09MCByZXR1cm5zIEZBTFNFIGZvciB0aGUgY2F0ZWdvcmllcyBtZW50aW9uZWQgKi8KKyAgICAgICAgcmV0dXJuIChnZXRNYXNrKFVDaGFyYWN0ZXIuZ2V0VHlwZShjKSkmCisgICAgICAgICAgICAgICAgKEdDX0NDX01BU0t8R0NfQ1NfTUFTS3xHQ19DTl9NQVNLfEdDX1pfTUFTSykpCisgICAgICAgICAgICAgICA9PTA7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQmluYXJ5UHJvcGVydGllc3sKKyAgICAgICBpbnQgY29sdW1uOworICAgICAgIGxvbmcgbWFzazsKKyAgICAgICBwdWJsaWMgQmluYXJ5UHJvcGVydGllcyhpbnQgY29sdW1uLGxvbmcgbWFzayl7CisgICAgICAgICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgIHRoaXMubWFzayAgPSBtYXNrOworICAgICAgIH0KKyAgIH0KKyAgIEJpbmFyeVByb3BlcnRpZXNbXSBiaW5Qcm9wcz17CisgICAgICAgLyoKKyAgICAgICAgKiBjb2x1bW4gYW5kIG1hc2sgdmFsdWVzIGZvciBiaW5hcnkgcHJvcGVydGllcyBmcm9tIHVfZ2V0VW5pY29kZVByb3BlcnRpZXMoKS4KKyAgICAgICAgKiBNdXN0IGJlIGluIG9yZGVyIG9mIGNvcnJlc3BvbmRpbmcgVVByb3BlcnR5LAorICAgICAgICAqIGFuZCB0aGVyZSBtdXN0IGJlIGV4YWNseSBvbmUgZW50cnkgcGVyIGJpbmFyeSBVUHJvcGVydHkuCisgICAgICAgICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEFMUEhBQkVUSUNfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBBU0NJSV9IRVhfRElHSVRfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQklESSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfQklESV9DT05UUk9MICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19CSURJLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9CSURJX01JUlJPUkVEICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IERBU0hfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgREVQUkVDQVRFRF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IERJQUNSSVRJQ19QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEVYVEVOREVSX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX0ZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEdSQVBIRU1FX0JBU0VfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBHUkFQSEVNRV9FWFRFTkRfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBHUkFQSEVNRV9MSU5LX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSEVYX0RJR0lUX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSFlQSEVOX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSURfQ09OVElOVUVfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBJRF9TVEFSVF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IElERU9HUkFQSElDX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSURTX0JJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IElEU19UUklOQVJZX09QRVJBVE9SX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0JJREksICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX0pPSU5fQ09OVFJPTCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBMT0dJQ0FMX09SREVSX0VYQ0VQVElPTl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DQVNFLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9MT1dFUkNBU0UgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgTUFUSF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IE5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5UX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgUVVPVEFUSU9OX01BUktfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBSQURJQ0FMX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NBU0UsICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1NPRlRfRE9UVEVEICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFRFUk1JTkFMX1BVTkNUVUFUSU9OX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgVU5JRklFRF9JREVPR1JBUEhfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0FTRSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfVVBQRVJDQVNFICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFdISVRFX1NQQUNFX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgWElEX0NPTlRJTlVFX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgWElEX1NUQVJUX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NBU0UsICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX0NBU0VfU0VOU0lUSVZFICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAyLCAgICAgICAgICAgICAgICAoICAxIDw8IFYyX1NfVEVSTV9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAyLCAgICAgICAgICAgICAgICAoICAxIDw8IFYyX1ZBUklBVElPTl9TRUxFQ1RPUl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19OT1JNLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9ORkRfSU5FUlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX05GS0RfSU5FUlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX05GQ19JTkVSVCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfTk9STSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfTkZLQ19JTkVSVCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfTk9STSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfU0VHTUVOVF9TVEFSVEVSICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAyLCAgICAgICAgICAgICAgICAoICAxIDw8IFYyX1BBVFRFUk5fU1lOVEFYKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMiwgICAgICAgICAgICAgICAgKCAgMSA8PCBWMl9QQVRURVJOX1dISVRFX1NQQUNFKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0hBUl9BTkRfUFJPUFNWRUMsICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfUE9TSVhfQUxOVU0gKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NIQVIsICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1BPU0lYX0JMQU5LICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DSEFSLCAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9QT1NJWF9HUkFQSCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0hBUiwgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfUE9TSVhfUFJJTlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NIQVIsICAwICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1BPU0lYX1hESUdJVCAqLworICAgfTsKKworCisgICAgLyoqCisgICAgICogPHA+Q2hlY2sgYSBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0eSBmb3IgYSBjb2RlIHBvaW50LjwvcD4KKyAgICAgKiA8cD5Vbmljb2RlLCBlc3BlY2lhbGx5IGluIHZlcnNpb24gMy4yLCBkZWZpbmVzIG1hbnkgbW9yZSBwcm9wZXJ0aWVzCisgICAgICogdGhhbiB0aGUgb3JpZ2luYWwgc2V0IGluIFVuaWNvZGVEYXRhLnR4dC48L3A+CisgICAgICogPHA+VGhpcyBBUEkgaXMgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgZGVmaW5lZCBpbgorICAgICAqIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgUmVwb3J0cworICAgICAqIChVVFIpLjwvcD4KKyAgICAgKiA8cD5Gb3IgZGV0YWlscyBhYm91dCB0aGUgcHJvcGVydGllcyBzZWUKKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvPmh0dHA6Ly93d3cudW5pY29kZS5vcmcvPC9hPi48L3A+CisgICAgICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlCisgICAgICogUHJvcGVydHlBbGlhc2VzLnR4dC48L3A+CisgICAgICogPHA+VGhpcyBBUEkgZG9lcyBub3QgY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb2RlcG9pbnQuPC9wPgorICAgICAqIDxwPkltcG9ydGFudDogSWYgSUNVIGlzIGJ1aWx0IHdpdGggVUNEIGZpbGVzIGZyb20gVW5pY29kZSB2ZXJzaW9ucworICAgICAqIGJlbG93IDMuMiwgdGhlbiBwcm9wZXJ0aWVzIG1hcmtlZCB3aXRoICJuZXciIGFyZSBub3Qgb3IKKyAgICAgKiBub3QgZnVsbHkgYXZhaWxhYmxlLjwvcD4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IENvZGUgcG9pbnQgdG8gdGVzdC4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQgZnJvbSBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eSwKKyAgICAgKiAgICAgICAgaWRlbnRpZmllcyB3aGljaCBiaW5hcnkgcHJvcGVydHkgdG8gY2hlY2suCisgICAgICogQHJldHVybiB0cnVlIG9yIGZhbHNlIGFjY29yZGluZyB0byB0aGUgYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgdmFsdWUKKyAgICAgKiAgICAgICAgIGZvciBjaC4gQWxzbyBmYWxzZSBpZiBwcm9wZXJ0eSBpcyBvdXQgb2YgYm91bmRzIG9yIGlmIHRoZQorICAgICAqICAgICAgICAgVW5pY29kZSB2ZXJzaW9uIGRvZXMgbm90IGhhdmUgZGF0YSBmb3IgdGhlIHByb3BlcnR5IGF0IGFsbCwgb3IKKyAgICAgKiAgICAgICAgIG5vdCBmb3IgdGhpcyBjb2RlIHBvaW50LgorICAgICAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHkKKyAgICAgKiBAZHJhZnQgSUNVIDIuMQorICAgICAqLworCisgICAgcHVibGljIGJvb2xlYW4gaGFzQmluYXJ5UHJvcGVydHkoaW50IGNvZGVwb2ludCwgaW50IHByb3BlcnR5KQorICAgIHsKKyAgICAgICAgIGlmKHByb3BlcnR5IDxVUHJvcGVydHkuQklOQVJZX1NUQVJUIHx8IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQ8PXByb3BlcnR5KSB7CisgICAgICAgICAgICAvLyBub3QgYSBrbm93biBiaW5hcnkgcHJvcGVydHkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvbmcgbWFzaz1iaW5Qcm9wc1twcm9wZXJ0eV0ubWFzazsKKyAgICAgICAgICAgIGludCBjb2x1bW49YmluUHJvcHNbcHJvcGVydHldLmNvbHVtbjsKKyAgICAgICAgICAgIGlmKG1hc2shPTApIHsKKyAgICAgICAgICAgICAgICAvLyBzeXN0ZW1hdGljLCBkaXJlY3RseSBzdG9yZWQgcHJvcGVydGllcworICAgICAgICAgICAgICAgIHJldHVybiAoKFVOU0lHTkVEX0lOVF9NQVNLICYgZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIGNvbHVtbikpICYgbWFzaykhPTA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGNvbHVtbj09U1JDX0NBU0UpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogY2FzZSBtYXBwaW5nIHByb3BlcnRpZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgVUNhc2VQcm9wcyBjc3A7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjc3AgPSBVQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHByb3BlcnR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxPV0VSQ0FTRToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2FzZVByb3BzLkxPV0VSPT1jc3AuZ2V0VHlwZShjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VUFBFUkNBU0U6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNhc2VQcm9wcy5VUFBFUj09Y3NwLmdldFR5cGUoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU09GVF9ET1RURUQ6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NwLmlzU29mdERvdHRlZChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQVNFX1NFTlNJVElWRToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjc3AuaXNDYXNlU2Vuc2l0aXZlKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb2x1bW49PVNSQ19OT1JNKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbGl6YXRpb24gcHJvcGVydGllcyBmcm9tIHVub3JtLmljdSAqLworICAgICAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuRlVMTF9DT01QT1NJVElPTl9FWENMVVNJT046CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuaXNGdWxsQ29tcG9zaXRpb25FeGNsdXNpb24oY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZEX0lORVJUOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLRF9JTkVSVDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY29kZXBvaW50LCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORkNfSU5FUlQ6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNvZGVwb2ludCwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORktDX0lORVJUOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNFR01FTlRfU1RBUlRFUjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc0Nhbm9uU2FmZVN0YXJ0KGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb2x1bW49PVNSQ19CSURJKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGJpZGkvc2hhcGluZyBwcm9wZXJ0aWVzICovCisJCQkJCVVCaURpUHJvcHMgYmRwOworCQkJCQl0cnkgeworCQkJCQkJYmRwID0gVUJpRGlQcm9wcy5nZXRTaW5nbGV0b24oKTsKKwkJCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJCQkJcmV0dXJuIGZhbHNlOworCQkJCQl9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUkVEOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJkcC5pc01pcnJvcmVkKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfQ09OVFJPTDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiZHAuaXNCaWRpQ29udHJvbChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOX0NPTlRST0w6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmRwLmlzSm9pbkNvbnRyb2woY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGNvbHVtbj09U1JDX0NIQVIpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHByb3BlcnR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlBPU0lYX0JMQU5LOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gImhvcml6b250YWwgc3BhY2UiCisgICAgICAgICAgICAgICAgICAgICAgICBpZihjb2RlcG9pbnQ8PTB4OWYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29kZXBvaW50PT05IHx8IGNvZGVwb2ludD09MHgyMDsgLyogVEFCIG9yIFNQQUNFICovCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFpzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0VHlwZShjb2RlcG9pbnQpPT1VQ2hhcmFjdGVyLlNQQUNFX1NFUEFSQVRPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuUE9TSVhfR1JBUEg6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNncmFwaFBPU0lYKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlBPU0lYX1BSSU5UOgorICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIENoZWNrcyBpZiBjb2RlcG9pbnQgaXMgaW4gXHB7Z3JhcGh9XHB7Ymxhbmt9IC0gXHB7Y250cmx9LgorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSBvbmx5IGNudHJsIGNoYXJhY3RlciBpbiBncmFwaCtibGFuayBpcyBUQUIgKGluIGJsYW5rKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEhlcmUgd2UgaW1wbGVtZW50IChibGFuay1UQUIpPVpzIGluc3RlYWQgb2YgY2FsbGluZyB1X2lzYmxhbmsoKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChVQ2hhcmFjdGVyLmdldFR5cGUoY29kZXBvaW50KT09VUNoYXJhY3Rlci5TUEFDRV9TRVBBUkFUT1IpIHx8IGlzZ3JhcGhQT1NJWChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5QT1NJWF9YRElHSVQ6CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjaGVjayBBU0NJSSBhbmQgRnVsbHdpZHRoIEFTQ0lJIGEtZkEtRiAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGVwb2ludDw9MHg2NiAmJiBjb2RlcG9pbnQ+PTB4NDEgJiYgKGNvZGVwb2ludDw9MHg0NiB8fCBjb2RlcG9pbnQ+PTB4NjEpKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlcG9pbnQ+PTB4ZmYyMSAmJiBjb2RlcG9pbnQ8PTB4ZmY0NiAmJiAoY29kZXBvaW50PD0weGZmMjYgfHwgY29kZXBvaW50Pj0weGZmNDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRUeXBlKGNvZGVwb2ludCk9PVVDaGFyYWN0ZXIuREVDSU1BTF9ESUdJVF9OVU1CRVI7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb2x1bW49PVNSQ19DSEFSX0FORF9QUk9QU1ZFQykgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuUE9TSVhfQUxOVU06CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5pc1VBbHBoYWJldGljKGNvZGVwb2ludCkgfHwgVUNoYXJhY3Rlci5pc0RpZ2l0KGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRTb3VyY2UoaW50IHdoaWNoKSB7CisgICAgICAgIGlmKHdoaWNoPFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQpIHsKKyAgICAgICAgICAgIHJldHVybiBTUkNfTk9ORTsgLyogdW5kZWZpbmVkICovCisgICAgICAgIH0gZWxzZSBpZih3aGljaDxVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB7CisgICAgICAgICAgICBpZihiaW5Qcm9wc1t3aGljaF0ubWFzayE9MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBTUkNfUFJPUFNWRUM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBiaW5Qcm9wc1t3aGljaF0uY29sdW1uOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYod2hpY2g8VVByb3BlcnR5LklOVF9TVEFSVCkgeworICAgICAgICAgICAgcmV0dXJuIFNSQ19OT05FOyAvKiB1bmRlZmluZWQgKi8KKyAgICAgICAgfSBlbHNlIGlmKHdoaWNoPFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgIHN3aXRjaCh3aGljaCkgeworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWToKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX0NIQVI7CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfSFNUOworCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZEX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLRF9RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GQ19RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0NfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MRUFEX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfTk9STTsKKworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9DTEFTUzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfR1JPVVA6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19CSURJOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfUFJPUFNWRUM7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZih3aGljaDxVUHJvcGVydHkuU1RSSU5HX1NUQVJUKSB7CisgICAgICAgICAgICBzd2l0Y2god2hpY2gpIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVkFMVUU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19DSEFSOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfTk9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmKHdoaWNoPFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQpIHsKKyAgICAgICAgICAgIHN3aXRjaCh3aGljaCkgeworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfUFJPUFNWRUM7CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfTUlSUk9SSU5HX0dMWVBIOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfQklESTsKKworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9GT0xESU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFX01BUFBJTkc6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfQ0FTRV9GT0xESU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0xPV0VSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVElUTEVDQVNFX01BUFBJTkc6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VUFBFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX0NBU0U7CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LklTT19DT01NRU5UOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRToKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfTkFNRVM7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19OT05FOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFNSQ19OT05FOyAvKiB1bmRlZmluZWQgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRm9ybXMgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgZnJvbSB0aGUgYXJndW1lbnQgY2hhcmFjdGVyPGJyPgorICAgICogTm90ZSB0aGlzIGlzIGZvciBpbnRlcm5hbCB1c2UgaGVuY2Ugbm8gY2hlY2tzIGZvciB0aGUgdmFsaWRpdHkgb2YgdGhlCisgICAgKiBzdXJyb2dhdGUgY2hhcmFjdGVycyBhcmUgZG9uZQorICAgICogQHBhcmFtIGxlYWQgbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gdHJhaWwgdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICogQHJldHVybiBjb2RlIHBvaW50IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0UmF3U3VwcGxlbWVudGFyeShjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICByZXR1cm4gKGxlYWQgPDwgTEVBRF9TVVJST0dBVEVfU0hJRlRfKSArIHRyYWlsICsgU1VSUk9HQVRFX09GRlNFVF87CisgICAgfQorCisgICAgLyoqCisgICAgKiBMb2FkcyB0aGUgcHJvcGVydHkgZGF0YSBhbmQgaW5pdGlhbGl6ZSB0aGUgVUNoYXJhY3RlclByb3BlcnR5IGluc3RhbmNlLgorICAgICogQHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gd2hlbiBkYXRhIGlzIG1pc3Npbmcgb3IgZGF0YSBoYXMgYmVlbiBjb3JydXB0ZWQKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUNoYXJhY3RlclByb3BlcnR5IGdldEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlmKElOU1RBTkNFXyA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIElOU1RBTkNFXyA9IG5ldyBVQ2hhcmFjdGVyUHJvcGVydHkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIiIsIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBJTlNUQU5DRV87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVW5pY29kZSBwcm9wZXJ0eSBuYW1lcyBhbmQgcHJvcGVydHkgdmFsdWUgbmFtZXMgYXJlIGNvbXBhcmVkCisgICAgICogImxvb3NlbHkiLiBQcm9wZXJ0eVtWYWx1ZV1BbGlhc2VzLnR4dCBzYXk6CisgICAgICogPHF1b3RlPgorICAgICAqICAgIldpdGggbG9vc2UgbWF0Y2hpbmcgb2YgcHJvcGVydHkgbmFtZXMsIHRoZSBjYXNlIGRpc3RpbmN0aW9ucywKKyAgICAgKiAgICB3aGl0ZXNwYWNlLCBhbmQgJ18nIGFyZSBpZ25vcmVkLiIKKyAgICAgKiA8L3F1b3RlPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMganVzdCB0aGF0LCBmb3IgQVNDSUkgKGNoYXIgKikgbmFtZSBzdHJpbmdzLgorICAgICAqIEl0IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdWNudl9jb21wYXJlTmFtZXMoKSBidXQgYWxzbyBpZ25vcmVzCisgICAgICogQVNDSUkgV2hpdGVfU3BhY2UgY2hhcmFjdGVycyAoVSswMDA5Li5VKzAwMGQpLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gbmFtZTEgbmFtZSB0byBjb21wYXJlCisgICAgICogQHBhcmFtIG5hbWUyIG5hbWUgdG8gY29tcGFyZQorICAgICAqIEByZXR1cm4gMCBpZiBuYW1lcyBhcmUgZXF1YWwsIDwgMCBpZiBuYW1lMSBpcyBsZXNzIHRoYW4gbmFtZTIgYW5kID4gMAorICAgICAqICAgICAgICAgaWYgbmFtZTEgaXMgZ3JlYXRlciB0aGFuIG5hbWUyLgorICAgICAqLworICAgIC8qIHRvIGJlIGltcGxlbWVudGVkIGluIDIuNAorICAgICAqIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmVQcm9wZXJ0eU5hbWVzKFN0cmluZyBuYW1lMSwgU3RyaW5nIG5hbWUyKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBpMSA9IDA7CisgICAgICAgIGludCBpMiA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBjaGFyIGNoMSA9IDA7CisgICAgICAgICAgICBjaGFyIGNoMiA9IDA7CisgICAgICAgICAgICAvLyBJZ25vcmUgZGVsaW1pdGVycyAnLScsICdfJywgYW5kIEFTQ0lJIFdoaXRlX1NwYWNlCisgICAgICAgICAgICBpZiAoaTEgPCBuYW1lMS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNoMSA9IG5hbWUxLmNoYXJBdChpMSArKyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoY2gxID09ICctJyB8fCBjaDEgPT0gJ18nIHx8IGNoMSA9PSAnICcgfHwgY2gxID09ICdcdCcKKyAgICAgICAgICAgICAgICAgICB8fCBjaDEgPT0gJ1xuJyAvLyBzeW53ZWUgd2hhdCBpcyB8fCBjaDEgPT0gJ1x2JworICAgICAgICAgICAgICAgICAgIHx8IGNoMSA9PSAnXGYnIHx8IGNoMT09J1xyJykgeworICAgICAgICAgICAgICAgIGlmIChpMSA8IG5hbWUxLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoMSA9IG5hbWUxLmNoYXJBdChpMSArKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaDEgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpMiA8IG5hbWUyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY2gyID0gbmFtZTIuY2hhckF0KGkyICsrKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChjaDIgPT0gJy0nIHx8IGNoMiA9PSAnXycgfHwgY2gyID09ICcgJyB8fCBjaDIgPT0gJ1x0JworICAgICAgICAgICAgICAgICAgIHx8IGNoMiA9PSAnXG4nIC8vIHN5bndlZSB3aGF0IGlzIHx8IGNoMSA9PSAnXHYnCisgICAgICAgICAgICAgICAgICAgfHwgY2gyID09ICdcZicgfHwgY2gyPT0nXHInKSB7CisgICAgICAgICAgICAgICAgaWYgKGkyIDwgbmFtZTIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2gyID0gbmFtZTIuY2hhckF0KGkyICsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNoMiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB3ZSByZWFjaCB0aGUgZW5kcyBvZiBib3RoIHN0cmluZ3MgdGhlbiB0aGV5IG1hdGNoCisgICAgICAgICAgICBpZiAoY2gxID09IDAgJiYgY2gyID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAgICBpZiAoY2gxICE9IGNoMikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaDIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBjIGlzIHRvIGJlIHRyZWF0ZWQgYXMgYSB3aGl0ZSBzcGFjZSBpbiBJQ1UKKyAgICAgKiBydWxlcy4gVXN1YWxseSBJQ1UgcnVsZSB3aGl0ZSBzcGFjZXMgYXJlIGlnbm9yZWQgdW5sZXNzIHF1b3RlZC4KKyAgICAgKiBFcXVpdmFsZW50IHRvIHRlc3QgZm9yIFBhdHRlcm5fV2hpdGVfU3BhY2UgVW5pY29kZSBwcm9wZXJ0eS4KKyAgICAgKiBTdGFibGUgc2V0IG9mIGNoYXJhY3RlcnMsIHdvbid0IGNoYW5nZS4KKyAgICAgKiBTZWUgVUFYICMzMSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzEvCisgICAgICogQHBhcmFtIGMgY29kZXBvaW50IHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGMgaXMgYSBJQ1Ugd2hpdGUgc3BhY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNSdWxlV2hpdGVTcGFjZShpbnQgYykKKyAgICB7CisgICAgICAgIC8qICJ3aGl0ZSBzcGFjZSIgaW4gdGhlIHNlbnNlIG9mIElDVSBydWxlIHBhcnNlcnMKKyAgICAgICAgICAgVGhpcyBpcyBhIEZJWEVEIExJU1QgdGhhdCBpcyBOT1QgREVQRU5ERU5UIE9OIFVOSUNPREUgUFJPUEVSVElFUy4KKyAgICAgICAgICAgU2VlIFVBWCAjMzEgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXg6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjMxLworICAgICAgICAgICBVKzAwMDkuLlUrMDAwRCwgVSswMDIwLCBVKzAwODUsIFUrMjAwRS4uVSsyMDBGLCBhbmQgVSsyMDI4Li5VKzIwMjkKKyAgICAgICAgICAgRXF1aXZhbGVudCB0byB0ZXN0IGZvciBQYXR0ZXJuX1doaXRlX1NwYWNlIFVuaWNvZGUgcHJvcGVydHkuCisgICAgICAgICovCisgICAgICAgIHJldHVybiAoYyA+PSAweDAwMDkgJiYgYyA8PSAweDIwMjkgJiYKKyAgICAgICAgICAgICAgICAoYyA8PSAweDAwMEQgfHwgYyA9PSAweDAwMjAgfHwgYyA9PSAweDAwODUgfHwKKyAgICAgICAgICAgICAgICAgYyA9PSAweDIwMEUgfHwgYyA9PSAweDIwMEYgfHwgYyA+PSAweDIwMjgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHRoZSBtYXhpbXVtIHZhbHVlcyBmb3Igc29tZSBlbnVtL2ludCBwcm9wZXJ0aWVzLgorICAgICAqIEByZXR1cm4gbWF4aW11bSB2YWx1ZXMgZm9yIHRoZSBpbnRlZ2VyIHByb3BlcnRpZXMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhWYWx1ZXMoaW50IGNvbHVtbikKKyAgICB7CisgICAgICAgLy8gcmV0dXJuIG1fbWF4QmxvY2tTY3JpcHRWYWx1ZV87CisKKyAgICAgICAgc3dpdGNoKGNvbHVtbikgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gbV9tYXhCbG9ja1NjcmlwdFZhbHVlXzsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIG1fbWF4SlRHVmFsdWVfOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0eXBlIG1hc2sKKyAgICAgKiBAcGFyYW0gdHlwZSBjaGFyYWN0ZXIgdHlwZQorICAgICAqIEByZXR1cm4gbWFzaworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGdldE1hc2soaW50IHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gMSA8PCB0eXBlOworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4dHJhIHByb3BlcnR5IHRyaWUKKyAgICAgKi8KKyAgICBDaGFyVHJpZSBtX2FkZGl0aW9uYWxUcmllXzsKKyAgICAvKioKKyAgICAgKiBFeHRyYSBwcm9wZXJ0eSB2ZWN0b3JzLCAxc3QgY29sdW1uIGZvciBhZ2UgYW5kIHNlY29uZCBmb3IgYmluYXJ5CisgICAgICogcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBpbnQgbV9hZGRpdGlvbmFsVmVjdG9yc19bXTsKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgYWRkaXRpb25hbCBjb2x1bW5zCisgICAgICovCisgICAgaW50IG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF87CisgICAgLyoqCisgICAgICogTWF4aW11bSB2YWx1ZXMgZm9yIGJsb2NrLCBiaXRzIHVzZWQgYXMgaW4gdmVjdG9yIHdvcmQKKyAgICAgKiAwCisgICAgICovCisgICAgaW50IG1fbWF4QmxvY2tTY3JpcHRWYWx1ZV87CisgICAgLyoqCisgICAgICogTWF4aW11bSB2YWx1ZXMgZm9yIHNjcmlwdCwgYml0cyB1c2VkIGFzIGluIHZlY3RvciB3b3JkCisgICAgICogMAorICAgICAqLworICAgICBpbnQgbV9tYXhKVEdWYWx1ZV87CisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAvKioKKyAgICAgKiBVbmljb2RlRGF0YS50eHQgcHJvcGVydHkgb2JqZWN0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVUNoYXJhY3RlclByb3BlcnR5IElOU1RBTkNFXyA9IG51bGw7CisKKyAgICAvKioKKyAgICAqIERlZmF1bHQgbmFtZSBvZiB0aGUgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX0ZJTEVfTkFNRV8gPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvdXByb3BzLmljdSI7CisKKyAgICAvKioKKyAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JVRkZFUl9TSVpFXyA9IDI1MDAwOworCisgICAgLyoqCisgICAgKiBOdW1lcmljIHZhbHVlIHNoaWZ0CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfU0hJRlRfID0gODsKKworICAgIC8qKgorICAgICogTWFzayB0byBiZSBhcHBsaWVkIGFmdGVyIHNoaWZ0aW5nIHRvIG9idGFpbiBhbiB1bnNpZ25lZCBudW1lcmljIHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TSUdORURfVkFMVUVfTUFTS19BRlRFUl9TSElGVF8gPSAweEZGOworCisgICAgLyoqCisgICAgICoKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQ19UWVBFX1NISUZUID0gNTsKKworICAgIC8qKgorICAgICogVG8gZ2V0IHRoZSBsYXN0IDUgYml0cyBvdXQgZnJvbSBhIGRhdGEgdHlwZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfNV9CSVRfTUFTS18gPSAweDFGOworCisgICAgLyoqCisgICAgKiBTaGlmdCB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgdG8gZm9ybSBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX1NISUZUXyA9IDEwOworICAgIC8qKgorICAgICogT2Zmc2V0IHRvIGFkZCB0byBjb21iaW5lZCBzdXJyb2dhdGUgcGFpciB0byBhdm9pZCBtc2tpbmcuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX09GRlNFVF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVURjE2LlNVUlJPR0FURV9NSU5fVkFMVUUgPDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExFQURfU1VSUk9HQVRFX1NISUZUXykgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTsKKworCisgICAgLy8gYWRkaXRpb25hbCBwcm9wZXJ0aWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFkZGl0aW9uYWwgcHJvcGVydGllcyB1c2VkIGluIGludGVybmFsIHRyaWUgZGF0YQorICAgICAqLworICAgIC8qCisgICAgICogUHJvcGVydGllcyBpbiB2ZWN0b3Igd29yZCAxCisgICAgICogRWFjaCBiaXQgZW5jb2RlcyBvbmUgYmluYXJ5IHByb3BlcnR5LgorICAgICAqIFRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIHJlcHJlc2VudCB0aGUgYml0IG51bWJlciwgdXNlIDE8PFVQUk9QU19YWVouCisgICAgICogVVBST1BTX0JJTkFSWV8xX1RPUDw9MzIhCisgICAgICoKKyAgICAgKiBLZWVwIHRoaXMgbGlzdCBvZiBwcm9wZXJ0eSBlbnVtcyBpbiBzeW5jIHdpdGgKKyAgICAgKiBwcm9wTGlzdE5hbWVzW10gaW4gaWN1L3NvdXJjZS90b29scy9nZW5wcm9wcy9wcm9wczIuYyEKKyAgICAgKgorICAgICAqIElDVSAyLjYvdXByb3BzIGZvcm1hdCB2ZXJzaW9uIDMuMiBzdG9yZXMgZnVsbCBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgIk90aGVyXyIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdISVRFX1NQQUNFX1BST1BFUlRZXyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJRElfQ09OVFJPTF9QUk9QRVJUWV8gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKT0lOX0NPTlRST0xfUFJPUEVSVFlfID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFTSF9QUk9QRVJUWV8gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU5fUFJPUEVSVFlfID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX01BUktfUFJPUEVSVFlfID0gNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVSTUlOQUxfUFVOQ1RVQVRJT05fUFJPUEVSVFlfID0gNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFUSF9QUk9QRVJUWV8gPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRVhfRElHSVRfUFJPUEVSVFlfID0gODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQVNDSUlfSEVYX0RJR0lUX1BST1BFUlRZXyA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFMUEhBQkVUSUNfUFJPUEVSVFlfID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDX1BST1BFUlRZXyA9IDExOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUFDUklUSUNfUFJPUEVSVFlfID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVSX1BST1BFUlRZXyA9IDEzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT1dFUkNBU0VfUFJPUEVSVFlfID0gMTQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVQUEVSQ0FTRV9QUk9QRVJUWV8gPSAxNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlRfUFJPUEVSVFlfID0gMTY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0VYVEVORF9QUk9QRVJUWV8gPSAxNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfTElOS19QUk9QRVJUWV8gPSAxODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURTX0JJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8gPSAxOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURTX1RSSU5BUllfT1BFUkFUT1JfUFJPUEVSVFlfID0gMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJBRElDQUxfUFJPUEVSVFlfID0gMjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOSUZJRURfSURFT0dSQVBIX1BST1BFUlRZXyA9IDIyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UX1BST1BFUlRZXyA9IDIzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERVBSRUNBVEVEX1BST1BFUlRZXyA9IDI0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT0ZUX0RPVFRFRF9QUk9QRVJUWV8gPSAyNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9HSUNBTF9PUkRFUl9FWENFUFRJT05fUFJPUEVSVFlfID0gMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFhJRF9TVEFSVF9QUk9QRVJUWV8gPSAyNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWElEX0NPTlRJTlVFX1BST1BFUlRZXyA9IDI4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRF9TVEFSVF9QUk9QRVJUWV8gICAgPSAyOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURfQ09OVElOVUVfUFJPUEVSVFlfID0gMzA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0JBU0VfUFJPUEVSVFlfID0gMzE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJTkFSWV8xX1RPUF9QUk9QRVJUWV8gPSAzMjsKKworICAgIC8qKgorICAgICAqIEZpcnN0IG5pYmJsZSBzaGlmdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSVJTVF9OSUJCTEVfU0hJRlRfID0gMHg0OworICAgIC8qKgorICAgICAqIFNlY29uZCBuaWJibGUgbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX05JQkJMRV9NQVNLXyA9IDB4RjsKKyAgICAvKioKKyAgICAgKiBBZ2UgdmFsdWUgc2hpZnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUdFX1NISUZUXyA9IDI0OworCisgICAgLy8gYm9vbGVhbiBwcm9wZXJ0aWVzIGluIHZlY3RvciB3b3JkIDIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVjJfU19URVJNX1BST1BFUlRZXyA9IDI0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWMl9WQVJJQVRJT05fU0VMRUNUT1JfUFJPUEVSVFlfID0gMjU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFYyX1BBVFRFUk5fU1lOVEFYID0gMjY7ICAgICAgICAgICAgICAgICAgIC8qIG5ldyBpbiBJQ1UgMy40IGFuZCBVbmljb2RlIDQuMSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWMl9QQVRURVJOX1dISVRFX1NQQUNFID0gMjc7CisKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMgb3IgZGF0YSBjb3JydXB0ZWQKKyAgICAqLworICAgIHByaXZhdGUgVUNoYXJhY3RlclByb3BlcnR5KCkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBqYXIgYWNjZXNzCisgICAgICAgIElucHV0U3RyZWFtIGlzID0gSUNVRGF0YS5nZXRSZXF1aXJlZFN0cmVhbShEQVRBX0ZJTEVfTkFNRV8pOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgREFUQV9CVUZGRVJfU0laRV8pOworICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIgcmVhZGVyID0gbmV3IFVDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlcihiKTsKKyAgICAgICAgcmVhZGVyLnJlYWQodGhpcyk7CisgICAgICAgIGIuY2xvc2UoKTsKKworICAgICAgICBtX3RyaWVfLnB1dEluZGV4RGF0YSh0aGlzKTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoKKyAgICAgKiBDb21wYXJlIGFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBzZWUgaWYgaXQgaGFzIGFyZ3VtZW50IHR5cGUKKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgMzIgYml0IHByb3BlcnRpZXMKKyAgICAgKiBAcGFyYW0gdHlwZSBjaGFyYWN0ZXIgdHlwZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBwcm9wZXJ0eSBoYXMgdHlwZQorICAgICAqLworICAgIC8qcHJpdmF0ZSBib29sZWFuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShpbnQgcHJvcGVydHksIGludCB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChwcm9wZXJ0eSAmICgxIDw8IHR5cGUpKSAhPSAwOworICAgIH0qLworCisgICAgLy8gcHJvcGVydHkgc3RhcnRzIGZvciBVbmljb2RlU2V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRBQiAgICAgPSAweDAwMDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExGICAgICAgPSAweDAwMGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZGICAgICAgPSAweDAwMGM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENSICAgICAgPSAweDAwMGQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfQSAgICAgPSAweDAwNDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRiAgICAgPSAweDAwNDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfWiAgICAgPSAweDAwNWE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfYSAgICAgPSAweDAwNjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfZiAgICAgPSAweDAwNjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfeiAgICAgPSAweDAwN2E7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFTCAgICAgPSAweDAwN2Y7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5MICAgICAgPSAweDAwODU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5CU1AgICAgPSAweDAwYTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENHSiAgICAgPSAweDAzNGY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJR1VSRVNQPSAweDIwMDc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhBSVJTUCAgPSAweDIwMGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpXTkogICAgPSAweDIwMGM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpXSiAgICAgPSAweDIwMGQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJMTSAgICAgPSAweDIwMGY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5OQlNQICAgPSAweDIwMmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdKICAgICAgPSAweDIwNjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOSFNXQVAgPSAweDIwNmE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTURJRyAgPSAweDIwNmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfQSAgPSAweGZmMjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfRiAgPSAweGZmMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfWiAgPSAweGZmM2E7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfYSAgPSAweGZmNDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfZiAgPSAweGZmNDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfeiAgPSAweGZmNWE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpXTkJTUCAgPSAweGZlZmY7CisKKyAgICAvKiBmb3IgSGFuZ3VsX1N5bGxhYmxlX1R5cGUgKi8KKyAgICBwdWJsaWMgdm9pZCB1aHN0X2FkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qIGFkZCBjb2RlIHBvaW50cyB3aXRoIGhhcmRjb2RlZCBwcm9wZXJ0aWVzLCBwbHVzIHRoZSBvbmVzIGZvbGxvd2luZyB0aGVtICovCisKKyAgICAgICAgLyoKKyAgICAgICAgICogQWRkIEphbW8gdHlwZSBib3VuZGFyaWVzIGZvciBVQ0hBUl9IQU5HVUxfU1lMTEFCTEVfVFlQRS4KKyAgICAgICAgICogRmlyc3QsIHdlIGFkZCBmaXhlZCBib3VuZGFyaWVzIGZvciB0aGUgYmxvY2tzIG9mIEphbW9zLgorICAgICAgICAgKiBUaGVuIHdlIGNoZWNrIGluIGxvb3BzIHRvIHNlZSB3aGVyZSB0aGUgY3VycmVudCBVbmljb2RlIHZlcnNpb24KKyAgICAgICAgICogYWN0dWFsbHkgc3RvcHMgYXNzaWduaW5nIHN1Y2ggSmFtb3MuIFdlIHN0YXJ0IGVhY2ggbG9vcAorICAgICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBwZXItSmFtby1ibG9jayBhc3NpZ25tZW50cyBpbiBVbmljb2RlIDQgb3IgZWFybGllci4KKyAgICAgICAgICogKFRoZXNlIGhhdmUgbm90IGNoYW5nZWQgc2luY2UgVW5pY29kZSAyLikKKyAgICAgICAgICovCisgICAgICAgIGludCBjLCB2YWx1ZSwgdmFsdWUyOworCisgICAgICAgIHNldC5hZGQoMHgxMTAwKTsKKyAgICAgICAgdmFsdWU9VUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1POworICAgICAgICBmb3IoYz0weDExNWE7IGM8PTB4MTE1ZjsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZTI9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUpOworICAgICAgICAgICAgaWYodmFsdWUhPXZhbHVlMikgeworICAgICAgICAgICAgICAgIHZhbHVlPXZhbHVlMjsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2V0LmFkZCgweDExNjApOworICAgICAgICB2YWx1ZT1VQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5WT1dFTF9KQU1POworICAgICAgICBmb3IoYz0weDExYTM7IGM8PTB4MTFhNzsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZTI9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSk7CisgICAgICAgICAgICBpZih2YWx1ZSE9dmFsdWUyKSB7CisgICAgICAgICAgICAgICAgdmFsdWU9dmFsdWUyOworICAgICAgICAgICAgICAgIHNldC5hZGQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzZXQuYWRkKDB4MTFhOCk7CisgICAgICAgIHZhbHVlPVVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlRSQUlMSU5HX0pBTU87CisgICAgICAgIGZvcihjPTB4MTFmYTsgYzw9MHgxMWZmOyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlMj1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFKTsKKyAgICAgICAgICAgIGlmKHZhbHVlIT12YWx1ZTIpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZT12YWx1ZTI7CisgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlU2V0IGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qIGFkZCB0aGUgc3RhcnQgY29kZSBwb2ludCBvZiBlYWNoIHNhbWUtdmFsdWUgcmFuZ2Ugb2YgdGhlIG1haW4gdHJpZSAqLworICAgICAgICBUcmllSXRlcmF0b3IgcHJvcHNJdGVyID0gbmV3IFRyaWVJdGVyYXRvcihtX3RyaWVfKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgcHJvcHNSZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgICB3aGlsZShwcm9wc0l0ZXIubmV4dChwcm9wc1Jlc3VsdCkpeworICAgICAgICAgICAgc2V0LmFkZChwcm9wc1Jlc3VsdC5zdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgY29kZSBwb2ludHMgd2l0aCBoYXJkY29kZWQgcHJvcGVydGllcywgcGx1cyB0aGUgb25lcyBmb2xsb3dpbmcgdGhlbSAqLworCisgICAgICAgIC8qIGFkZCBmb3IgdV9pc2JsYW5rKCkgKi8KKyAgICAgICAgc2V0LmFkZChUQUIpOworICAgICAgICBzZXQuYWRkKFRBQisxKTsKKworICAgICAgICAvKiBhZGQgZm9yIElTX1RIQVRfQ09OVFJPTF9TUEFDRSgpICovCisgICAgICAgIHNldC5hZGQoQ1IrMSk7IC8qIHJhbmdlIFRBQi4uQ1IgKi8KKyAgICAgICAgc2V0LmFkZCgweDFjKTsKKyAgICAgICAgc2V0LmFkZCgweDFmKzEpOworICAgICAgICBzZXQuYWRkKE5MKTsKKyAgICAgICAgc2V0LmFkZChOTCsxKTsKKworICAgICAgICAvKiBhZGQgZm9yIHVfaXNJRElnbm9yYWJsZSgpIHdoYXQgd2FzIG5vdCBhZGRlZCBhYm92ZSAqLworICAgICAgICBzZXQuYWRkKERFTCk7IC8qIHJhbmdlIERFTC4uTkJTUC0xLCBOQlNQIGFkZGVkIGJlbG93ICovCisgICAgICAgIHNldC5hZGQoSEFJUlNQKTsKKyAgICAgICAgc2V0LmFkZChSTE0rMSk7CisgICAgICAgIHNldC5hZGQoSU5IU1dBUCk7CisgICAgICAgIHNldC5hZGQoTk9NRElHKzEpOworICAgICAgICBzZXQuYWRkKFpXTkJTUCk7CisgICAgICAgIHNldC5hZGQoWldOQlNQKzEpOworCisgICAgICAgIC8qIGFkZCBuby1icmVhayBzcGFjZXMgZm9yIHVfaXNXaGl0ZXNwYWNlKCkgd2hhdCB3YXMgbm90IGFkZGVkIGFib3ZlICovCisgICAgICAgIHNldC5hZGQoTkJTUCk7CisgICAgICAgIHNldC5hZGQoTkJTUCsxKTsKKyAgICAgICAgc2V0LmFkZChGSUdVUkVTUCk7CisgICAgICAgIHNldC5hZGQoRklHVVJFU1ArMSk7CisgICAgICAgIHNldC5hZGQoTk5CU1ApOworICAgICAgICBzZXQuYWRkKE5OQlNQKzEpOworCisgICAgICAgIC8qIGFkZCBmb3IgdV9jaGFyRGlnaXRWYWx1ZSgpICovCisgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHdoZW4gVUNoYXJhY3Rlci5nZXRIYW5OdW1lcmljVmFsdWUoKSBpcyBjaGFuZ2VkIHRvIGp1c3QgcmV0dXJuCisgICAgICAgIC8vIFVuaWNvZGUgbnVtZXJpYyB2YWx1ZXMgCisgICAgICAgIHNldC5hZGQoMHgzMDA3KTsKKyAgICAgICAgc2V0LmFkZCgweDMwMDgpOworICAgICAgICBzZXQuYWRkKDB4NGUwMCk7CisgICAgICAgIHNldC5hZGQoMHg0ZTAxKTsKKyAgICAgICAgc2V0LmFkZCgweDRlOGMpOworICAgICAgICBzZXQuYWRkKDB4NGU4ZCk7CisgICAgICAgIHNldC5hZGQoMHg0ZTA5KTsKKyAgICAgICAgc2V0LmFkZCgweDRlMGEpOworICAgICAgICBzZXQuYWRkKDB4NTZkYik7CisgICAgICAgIHNldC5hZGQoMHg1NmRjKTsKKyAgICAgICAgc2V0LmFkZCgweDRlOTQpOworICAgICAgICBzZXQuYWRkKDB4NGU5NSk7CisgICAgICAgIHNldC5hZGQoMHg1MTZkKTsKKyAgICAgICAgc2V0LmFkZCgweDUxNmUpOworICAgICAgICBzZXQuYWRkKDB4NGUwMyk7CisgICAgICAgIHNldC5hZGQoMHg0ZTA0KTsKKyAgICAgICAgc2V0LmFkZCgweDUxNmIpOworICAgICAgICBzZXQuYWRkKDB4NTE2Yyk7CisgICAgICAgIHNldC5hZGQoMHg0ZTVkKTsKKyAgICAgICAgc2V0LmFkZCgweDRlNWUpOworCisgICAgICAgIC8qIGFkZCBmb3IgdV9kaWdpdCgpICovCisgICAgICAgIHNldC5hZGQoVV9hKTsKKyAgICAgICAgc2V0LmFkZChVX3orMSk7CisgICAgICAgIHNldC5hZGQoVV9BKTsKKyAgICAgICAgc2V0LmFkZChVX1orMSk7CisgICAgICAgIHNldC5hZGQoVV9GV19hKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX3orMSk7CisgICAgICAgIHNldC5hZGQoVV9GV19BKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX1orMSk7CisKKyAgICAgICAgLyogYWRkIGZvciB1X2lzeGRpZ2l0KCkgKi8KKyAgICAgICAgc2V0LmFkZChVX2YrMSk7CisgICAgICAgIHNldC5hZGQoVV9GKzEpOworICAgICAgICBzZXQuYWRkKFVfRldfZisxKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX0YrMSk7CisKKyAgICAgICAgLyogYWRkIGZvciBVQ0hBUl9ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UIHdoYXQgd2FzIG5vdCBhZGRlZCBhYm92ZSAqLworICAgICAgICBzZXQuYWRkKFdKKTsgLyogcmFuZ2UgV0ouLk5PTURJRyAqLworICAgICAgICBzZXQuYWRkKDB4ZmZmMCk7CisgICAgICAgIHNldC5hZGQoMHhmZmZiKzEpOworICAgICAgICBzZXQuYWRkKDB4ZTAwMDApOworICAgICAgICBzZXQuYWRkKDB4ZTBmZmYrMSk7CisKKyAgICAgICAgLyogYWRkIGZvciBVQ0hBUl9HUkFQSEVNRV9CQVNFIGFuZCBvdGhlcnMgKi8KKyAgICAgICAgc2V0LmFkZChDR0opOworICAgICAgICBzZXQuYWRkKENHSisxKTsKKworICAgICAgICByZXR1cm4gc2V0OyAvLyBmb3IgY2hhaW5pbmcKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB1cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgLyogYWRkIHRoZSBzdGFydCBjb2RlIHBvaW50IG9mIGVhY2ggc2FtZS12YWx1ZSByYW5nZSBvZiB0aGUgcHJvcGVydGllcyB2ZWN0b3JzIHRyaWUgKi8KKyAgICAgICAgaWYobV9hZGRpdGlvbmFsQ29sdW1uc0NvdW50Xz4wKSB7CisgICAgICAgICAgICAvKiBpZiBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfPT0wIHRoZW4gdGhlIHByb3BlcnRpZXMgdmVjdG9ycyB0cmllIG1heSBub3QgYmUgdGhlcmUgYXQgYWxsICovCisgICAgICAgICAgICBUcmllSXRlcmF0b3IgcHJvcHNWZWN0b3JzSXRlciA9IG5ldyBUcmllSXRlcmF0b3IobV9hZGRpdGlvbmFsVHJpZV8pOworICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgcHJvcHNWZWN0b3JzUmVzdWx0ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICAgICAgICB3aGlsZShwcm9wc1ZlY3RvcnNJdGVyLm5leHQocHJvcHNWZWN0b3JzUmVzdWx0KSl7CisgICAgICAgICAgICAgICAgc2V0LmFkZChwcm9wc1ZlY3RvcnNSZXN1bHQuc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEluY2x1c2lvbnMgbGlzdAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworICAgIC8qCisgICAgICogUmV0dXJuIGEgc2V0IG9mIGNoYXJhY3RlcnMgZm9yIHByb3BlcnR5IGVudW1lcmF0aW9uLgorICAgICAqIFRoZSBzZXQgaW1wbGljaXRseSBjb250YWlucyAweDExMDAwMCBhcyB3ZWxsLCB3aGljaCBpcyBvbmUgbW9yZSB0aGFuIHRoZSBoaWdoZXN0CisgICAgICogVW5pY29kZSBjb2RlIHBvaW50LgorICAgICAqCisgICAgICogVGhpcyBzZXQgaXMgdXNlZCBhcyBhbiBvcmRlcmVkIGxpc3QgLSBpdHMgY29kZSBwb2ludHMgYXJlIG9yZGVyZWQsIGFuZAorICAgICAqIGNvbnNlY3V0aXZlIGNvZGUgcG9pbnRzIChpbiBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIpIGluIHRoZSBzZXQgZGVmaW5lIGEgcmFuZ2UuCisgICAgICogRm9yIGVhY2ggdHdvIGNvbnNlY3V0aXZlIGNoYXJhY3RlcnMgKHN0YXJ0LCBsaW1pdCkgaW4gdGhlIHNldCwKKyAgICAgKiBhbGwgb2YgdGhlIFVDRC9ub3JtYWxpemF0aW9uIGFuZCByZWxhdGVkIHByb3BlcnRpZXMgZm9yCisgICAgICogYWxsIGNvZGUgcG9pbnRzIHN0YXJ0Li5saW1pdC0xIGFyZSBhbGwgdGhlIHNhbWUsCisgICAgICogZXhjZXB0IGZvciBjaGFyYWN0ZXIgbmFtZXMgYW5kIElTTyBjb21tZW50cy4KKyAgICAgKgorICAgICAqIEFsbCBVbmljb2RlIGNvZGUgcG9pbnRzIFUrMDAwMC4uVSsxMGZmZmYgYXJlIGNvdmVyZWQgYnkgdGhlc2UgcmFuZ2VzLgorICAgICAqIFRoZSByYW5nZXMgZGVmaW5lIGEgcGFydGl0aW9uIG9mIHRoZSBVbmljb2RlIGNvZGUgc3BhY2UuCisgICAgICogSUNVIHVzZXMgdGhlIGluY2x1c2lvbnMgc2V0IHRvIGVudW1lcmF0ZSBwcm9wZXJ0aWVzIGZvciBnZW5lcmF0aW5nCisgICAgICogVW5pY29kZVNldHMgY29udGFpbmluZyBhbGwgY29kZSBwb2ludHMgdGhhdCBoYXZlIGEgY2VydGFpbiBwcm9wZXJ0eSB2YWx1ZS4KKyAgICAgKgorICAgICAqIFRoZSBJbmNsdXNpb24gTGlzdCBpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgVUNELiBJdCBpcyBnZW5lcmF0ZWQKKyAgICAgKiBieSBlbnVtZXJhdGluZyB0aGUgZGF0YSB0cmllcywgYW5kIGNvZGUgcG9pbnRzIGZvciBoYXJkY29kZWQgcHJvcGVydGllcworICAgICAqIGFyZSBhZGRlZCBhcyB3ZWxsLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKgorICAgICAqIFRoZSBmb2xsb3dpbmcgYXJlIGlkZWFzIGZvciBnZXR0aW5nIHByb3BlcnRpZXMtdW5pcXVlIGNvZGUgcG9pbnQgcmFuZ2VzLAorICAgICAqIHdpdGggcG9zc2libGUgb3B0aW1pemF0aW9ucyBiZXlvbmQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2Ugb3B0aW1pemF0aW9ucyB3b3VsZCByZXF1aXJlIG1vcmUgY29kZSBhbmQgYmUgbW9yZSBmcmFnaWxlLgorICAgICAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGdlbmVyYXRlcyBvbmUgc2luZ2xlIGxpc3QgKHNldCkgZm9yIGFsbCBwcm9wZXJ0aWVzLgorICAgICAqCisgICAgICogVG8gZW51bWVyYXRlIHByb3BlcnRpZXMgZWZmaWNpZW50bHksIG9uZSBuZWVkcyB0byBrbm93IHJhbmdlcyBvZgorICAgICAqIHJlcGV0aXRpdmUgdmFsdWVzLCBzbyB0aGF0IHRoZSB2YWx1ZSBvZiBvbmx5IGVhY2ggc3RhcnQgY29kZSBwb2ludAorICAgICAqIGNhbiBiZSBhcHBsaWVkIHRvIHRoZSB3aG9sZSByYW5nZS4KKyAgICAgKiBUaGlzIGluZm9ybWF0aW9uIGlzIGluIHByaW5jaXBsZSBhdmFpbGFibGUgaW4gdGhlIHVwcm9wcy5pY3UvdW5vcm0uaWN1IGRhdGEuCisgICAgICoKKyAgICAgKiBUaGVyZSBhcmUgdHdvIG9ic3RhY2xlczoKKyAgICAgKgorICAgICAqIDEuIFNvbWUgcHJvcGVydGllcyBhcmUgY29tcHV0ZWQgZnJvbSBtdWx0aXBsZSBkYXRhIHN0cnVjdHVyZXMsCisgICAgICogICAgbWFraW5nIGl0IG5lY2Vzc2FyeSB0byBnZXQgcmVwZXRpdGl2ZSByYW5nZXMgYnkgaW50ZXJzZWN0aW5nCisgICAgICogICAgcmFuZ2VzIGZyb20gbXVsdGlwbGUgdHJpZXMuCisgICAgICoKKyAgICAgKiAyLiBJdCBpcyBub3QgZWNvbm9taWNhbCB0byB3cml0ZSBjb2RlIGZvciBnZXR0aW5nIHJlcGV0aXRpdmUgcmFuZ2VzCisgICAgICogICAgdGhhdCBhcmUgcHJlY2lzZSBmb3IgZWFjaCBvZiBzb21lIDUwIHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBDb21wcm9taXNlIGlkZWFzOgorICAgICAqCisgICAgICogLSBHZXQgcmFuZ2VzIHBlciB0cmllLCBub3QgcGVyIGluZGl2aWR1YWwgcHJvcGVydHkuCisgICAgICogICBFYWNoIHJhbmdlIGNvbnRhaW5zIHRoZSBzYW1lIHZhbHVlcyBmb3IgYSB3aG9sZSBncm91cCBvZiBwcm9wZXJ0aWVzLgorICAgICAqICAgVGhpcyB3b3VsZCBnZW5lcmF0ZSBjdXJyZW50bHkgZml2ZSByYW5nZSBzZXRzLCB0d28gZm9yIHVwcm9wcy5pY3UgdHJpZXMKKyAgICAgKiAgIGFuZCB0aHJlZSBmb3IgdW5vcm0uaWN1IHRyaWVzLgorICAgICAqCisgICAgICogLSBDb21iaW5lIHNldHMgb2YgcmFuZ2VzIGZvciBtdWx0aXBsZSB0cmllcyB0byBnZXQgc3VmZmljaWVudCBzZXRzCisgICAgICogICBmb3IgcHJvcGVydGllcywgZS5nLiwgdGhlIHVwcm9wcy5pY3UgbWFpbiBhbmQgYXV4aWxpYXJ5IHRyaWVzCisgICAgICogICBmb3IgYWxsIG5vbi1ub3JtYWxpemF0aW9uIHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBJZGVhcyBmb3IgcmVwcmVzZW50aW5nIHJhbmdlcyBhbmQgY29tYmluaW5nIHRoZW06CisgICAgICoKKyAgICAgKiAtIEEgVW5pY29kZVNldCBjb3VsZCBob2xkIGp1c3QgdGhlIHN0YXJ0IGNvZGUgcG9pbnRzIG9mIHJhbmdlcy4KKyAgICAgKiAgIE11bHRpcGxlIHNldHMgYXJlIGVhc2lseSBjb21iaW5lZCBieSBvci1pbmcgdGhlbSB0b2dldGhlci4KKyAgICAgKgorICAgICAqIC0gQWx0ZXJuYXRpdmVseSwgYSBVbmljb2RlU2V0IGNvdWxkIGhvbGQgZWFjaCBldmVuLW51bWJlcmVkIHJhbmdlLgorICAgICAqICAgQWxsIHJhbmdlcyBjb3VsZCBiZSBlbnVtZXJhdGVkIGJ5IHVzaW5nIGVhY2ggc3RhcnQgY29kZSBwb2ludAorICAgICAqICAgKGZvciB0aGUgZXZlbi1udW1iZXJlZCByYW5nZXMpIGFzIHdlbGwgYXMgZWFjaCBsaW1pdCAoZW5kKzEpIGNvZGUgcG9pbnQKKyAgICAgKiAgIChmb3IgdGhlIG9kZC1udW1iZXJlZCByYW5nZXMpLgorICAgICAqICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGNvbWJpbmUgdHdvIHN1Y2ggc2V0cyBieSB4b3ItaW5nIHRoZW0sCisgICAgICogICBidXQgbm8gbW9yZSB0aGFuIHR3by4KKyAgICAgKgorICAgICAqIFRoZSBzZWNvbmQgd2F5IHRvIHJlcHJlc2VudCByYW5nZXMgbWF5KD8hKSB5aWVsZCBzbWFsbGVyIFVuaWNvZGVTZXQgYXJyYXlzLAorICAgICAqIGJ1dCB0aGUgZmlyc3Qgb25lIGlzIGNlcnRhaW5seSBzaW1wbGVyIGFuZCBhcHBsaWNhYmxlIGZvciBjb21iaW5pbmcgbW9yZSB0aGFuCisgICAgICogdHdvIHJhbmdlIHNldHMuCisgICAgICoKKyAgICAgKiBJdCBpcyBwb3NzaWJsZSB0byBjb21iaW5lIGFsbCByYW5nZSBzZXRzIGZvciBhbGwgdXByb3BzL3Vub3JtIHRyaWVzIGludG8gb25lCisgICAgICogc2V0IHRoYXQgY2FuIGJlIHVzZWQgZm9yIGFsbCBwcm9wZXJ0aWVzLgorICAgICAqIEFzIGFuIG9wdGltaXphdGlvbiwgdGhlcmUgY291bGQgYmUgbGVzcy1jb21iaW5lZCByYW5nZSBzZXRzIGZvciBjZXJ0YWluCisgICAgICogZ3JvdXBzIG9mIHByb3BlcnRpZXMuCisgICAgICogVGhlIHJlbGF0aW9uc2hpcCBvZiB3aGljaCBsZXNzLWNvbWJpbmVkIHJhbmdlIHNldCB0byB1c2UgZm9yIHdoaWNoIHByb3BlcnR5CisgICAgICogZGVwZW5kcyBvbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHByb3BlcnRpZXMgYW5kIG11c3QgYmUgaGFyZGNvZGVkCisgICAgICogLSBzb21ld2hhdCBlcnJvci1wcm9uZSBhbmQgaGlnaGVyIG1haW50ZW5hbmNlIGJ1dCBjYW4gYmUgdGVzdGVkIGVhc2lseQorICAgICAqIGJ5IGJ1aWxkaW5nIHByb3BlcnR5IHNldHMgInRoZSBzaW1wbGUgd2F5IiBpbiB0ZXN0IGNvZGUuCisgICAgICoKKyAgICAgKiAtLS0KKyAgICAgKgorICAgICAqIERvIG5vdCB1c2UgYSBVbmljb2RlU2V0IHBhdHRlcm4gYmVjYXVzZSB0aGF0IGNhdXNlcyBpbmZpbml0ZSByZWN1cnNpb247CisgICAgICogVW5pY29kZVNldCBkZXBlbmRzIG9uIHRoZSBpbmNsdXNpb25zIHNldC4KKyAgICAgKgorICAgICAqIC0tLQorICAgICAqCisgICAgICogZ2V0SW5jbHVzaW9ucygpIGlzIGNvbW1lbnRlZCBvdXQgc3RhcnRpbmcgMjAwNS1mZWItMTIgYmVjYXVzZQorICAgICAqIFVuaWNvZGVTZXQgbm93IGNhbGxzIHRoZSB1eHl6X2FkZFByb3BlcnR5U3RhcnRzKCkgZGlyZWN0bHksCisgICAgICogYW5kIG9ubHkgZm9yIHRoZSByZWxldmFudCBwcm9wZXJ0eSBzb3VyY2UuCisgICAgICovCisgICAgLyoKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRJbmNsdXNpb25zKCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIE5vcm1hbGl6ZXJJbXBsLmFkZFByb3BlcnR5U3RhcnRzKHNldCk7CisgICAgICAgIGFkZFByb3BlcnR5U3RhcnRzKHNldCk7CisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MTE0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YQpAQCAtMCwwICsxLDE2MyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorKiA8cD5JbnRlcm5hbCByZWFkZXIgY2xhc3MgZm9yIElDVSBkYXRhIGZpbGUgdXByb3BzLmljdSBjb250YWluaW5nIAorKiBVbmljb2RlIGNvZGVwb2ludCBkYXRhLjwvcD4gCisqIDxwPlRoaXMgY2xhc3Mgc2ltcGx5IHJlYWRzIHVwcm9wcy5pY3UsIGF1dGhlbnRpY2F0ZXMgdGhhdCBpdCBpcyBhIHZhbGlkCisqIElDVSBkYXRhIGZpbGUgYW5kIHNwbGl0IGl0cyBjb250ZW50cyB1cCBpbnRvIGJsb2NrcyBvZiBkYXRhIGZvciB1c2UgaW4KKyogPGEgaHJlZj1VQ2hhcmFjdGVyUHJvcGVydHkuaHRtbD5jb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTwvYT4uCisqIDwvcD4gCisqIDxwPnVwcm9wcy5pY3Ugd2hpY2ggaXMgaW4gYmlnLWVuZGlhbiBmb3JtYXQgaXMgamFyZWQgdG9nZXRoZXIgd2l0aCB0aGlzIAorKiBwYWNrYWdlLjwvcD4KKyoKKyogVW5pY29kZSBjaGFyYWN0ZXIgcHJvcGVydGllcyBmaWxlIGZvcm1hdCBzZWUKKyogKElDVTRDKS9zb3VyY2UvdG9vbHMvZ2VucHJvcHMvc3RvcmUuYworKgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIEZlYnJ1YXJ5IDFzdCAyMDAyCisqLworZmluYWwgY2xhc3MgVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZQoreworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzBdIAorICAgICAgICAgICAgICAgJiYgdmVyc2lvblsyXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1syXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTl9bM107CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBtX3VuaWNvZGVWZXJzaW9uXyA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8gPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiA8cD5SZWFkcyB1cHJvcHMuaWN1LCBwYXJzZSBpdCBpbnRvIGJsb2NrcyBvZiBkYXRhIHRvIGJlIHN0b3JlZCBpbgorICAgICogVUNoYXJhY3RlclByb3BlcnR5LjwvUAorICAgICogQHBhcmFtIHVjaGFycHB0eSBVQ2hhcmFjdGVyUHJvcGVydHkgaW5zdGFuY2UKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkKFVDaGFyYWN0ZXJQcm9wZXJ0eSB1Y2hhcnBwdHkpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gcmVhZCB0aGUgaW5kZXhlcworICAgICAgICBpbnQgY291bnQgPSBJTkRFWF9TSVpFXzsKKyAgICAgICAgbV9wcm9wZXJ0eU9mZnNldF8gICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9leGNlcHRpb25PZmZzZXRfICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9jYXNlT2Zmc2V0XyAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9hZGRpdGlvbmFsT2Zmc2V0XyAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9hZGRpdGlvbmFsVmVjdG9yc09mZnNldF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9hZGRpdGlvbmFsQ29sdW1uc0NvdW50XyAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9yZXNlcnZlZE9mZnNldF8gICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcygzIDw8IDIpOworICAgICAgICBjb3VudCAtPSAzOworICAgICAgICB1Y2hhcnBwdHkubV9tYXhCbG9ja1NjcmlwdFZhbHVlXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOyAvLyAxMAorICAgICAgICB1Y2hhcnBwdHkubV9tYXhKVEdWYWx1ZV8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsgLy8gMTEKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyhjb3VudCA8PCAyKTsKKworICAgICAgICAvLyByZWFkIHRoZSB0cmllIGluZGV4IGJsb2NrCisgICAgICAgIC8vIG1fcHJvcHNfaW5kZXhfIGluIHRlcm1zIG9mIGludHMKKyAgICAgICAgdWNoYXJwcHR5Lm1fdHJpZV8gPSBuZXcgQ2hhclRyaWUobV9kYXRhSW5wdXRTdHJlYW1fLCBudWxsKTsKKworICAgICAgICAvLyBza2lwIHRoZSAzMiBiaXQgcHJvcGVydGllcyBibG9jaworICAgICAgICBpbnQgc2l6ZSA9IG1fZXhjZXB0aW9uT2Zmc2V0XyAtIG1fcHJvcGVydHlPZmZzZXRfOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKHNpemUgKiA0KTsKKworICAgICAgICAvLyByZWFkcyB0aGUgMzIgYml0IGV4Y2VwdGlvbnMgYmxvY2sKKyAgICAgICAgc2l6ZSA9IG1fY2FzZU9mZnNldF8gLSBtX2V4Y2VwdGlvbk9mZnNldF87CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoc2l6ZSAqIDQpOworCisgICAgICAgIC8vIHJlYWRzIHRoZSAzMiBiaXQgY2FzZSBibG9jaworICAgICAgICBzaXplID0gKG1fYWRkaXRpb25hbE9mZnNldF8gLSBtX2Nhc2VPZmZzZXRfKSA8PCAxOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKHNpemUgKiAyKTsKKworICAgICAgICBpZihtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfID4gMCkgeworICAgICAgICAgICAgLy8gcmVhZHMgdGhlIGFkZGl0aW9uYWwgcHJvcGVydHkgYmxvY2sKKyAgICAgICAgICAgIHVjaGFycHB0eS5tX2FkZGl0aW9uYWxUcmllXyA9IG5ldyBDaGFyVHJpZShtX2RhdGFJbnB1dFN0cmVhbV8sIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhZGRpdGlvbmFsIHByb3BlcnRpZXMKKyAgICAgICAgICAgIHNpemUgPSBtX3Jlc2VydmVkT2Zmc2V0XyAtIG1fYWRkaXRpb25hbFZlY3RvcnNPZmZzZXRfOworICAgICAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbFZlY3RvcnNfID0gbmV3IGludFtzaXplXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgICAgIHVjaGFycHB0eS5tX2FkZGl0aW9uYWxWZWN0b3JzX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uY2xvc2UoKTsKKyAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbENvbHVtbnNDb3VudF8gPSBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfOworICAgICAgICB1Y2hhcnBwdHkubV91bmljb2RlVmVyc2lvbl8gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fdW5pY29kZVZlcnNpb25fWzBdLCAoaW50KW1fdW5pY29kZVZlcnNpb25fWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV91bmljb2RlVmVyc2lvbl9bMl0sIChpbnQpbV91bmljb2RlVmVyc2lvbl9bM10pOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIEluZGV4IHNpemUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TSVpFXyA9IDE2OworICAgIAorICAgIC8qKgorICAgICogSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIG1fZGF0YUlucHV0U3RyZWFtXzsKKyAgICAgIAorICAgIC8qKgorICAgICogT2Zmc2V0IGluZm9ybWF0aW9uIGluIHRoZSBpbmRleGVzLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9wcm9wZXJ0eU9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV9leGNlcHRpb25PZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fY2FzZU9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV9hZGRpdGlvbmFsT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uYWxWZWN0b3JzT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfOworICAgIHByaXZhdGUgaW50IG1fcmVzZXJ2ZWRPZmZzZXRfOworICAgIHByaXZhdGUgYnl0ZSBtX3VuaWNvZGVWZXJzaW9uX1tdOyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRGF0YSBmb3JtYXQgIlVQcm8iLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRF9bXSA9IHsoYnl0ZSkweDU1LCAoYnl0ZSkweDUwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDcyLCAoYnl0ZSkweDZGfTsKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgdmVyc2lvbjsgdGhpcyBjb2RlIHdvcmtzIHdpdGggYWxsIHZlcnNpb25zIHdpdGggdGhlIHNhbWUgbWFqb3IKKyAgICAgKiB2ZXJzaW9uIG51bWJlciBhbmQgdGhlIHNhbWUgVHJpZSBiaXQgZGlzdHJpYnV0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfVkVSU0lPTl9bXSA9IHsoYnl0ZSkweDQsIChieXRlKTAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlUcmllLklOREVYX1NUQUdFXzJfU0hJRlRffTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJVdGlsaXR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyVXRpbGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMTBlMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyVXRpbGl0eS5qYXZhCkBAIC0wLDAgKzEsMTk0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8qKgorKiBJbnRlcm5hbCBjaGFyYWN0ZXIgdXRpbGl0eSBjbGFzcyBmb3Igc2ltcGxlIGRhdGEgdHlwZSBjb252ZXJzaW9uIGFuZCBTdHJpbmcgCisqIHBhcnNpbmcgZnVuY3Rpb25zLiBEb2VzIG5vdCBoYXZlIGFuIGFuYWxvZyBpbiB0aGUgSkRLLgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2Ugc2VwMjkwMAorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJVdGlsaXR5Cit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgY29kZXBvaW50IGlzIGEgbm9uIGNoYXJhY3RlcgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiB0cnVlIGlmIGNvZGVwb2ludCBpcyBhIG5vbiBjaGFyYWN0ZXIgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb25DaGFyYWN0ZXIoaW50IGNoKSAKKyAgICB7CisgICAgICAgIGlmICgoY2ggJiBOT05fQ0hBUkFDVEVSX1NVRkZJWF9NSU5fM18wXykgPT0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PTl9DSEFSQUNURVJfU1VGRklYX01JTl8zXzBfKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNoID49IE5PTl9DSEFSQUNURVJfTUlOXzNfMV8gJiYgY2ggPD0gIE5PTl9DSEFSQUNURVJfTUFYXzNfMV87CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBqb2luaW5nIDIgY2hhcnMgdG8gZm9ybSBhbiBpbnQKKyAgICAqIEBwYXJhbSBtc2MgbW9zdCBzaWduaWZpY2FudCBjaGFyCisgICAgKiBAcGFyYW0gbHNjIGxlYXN0IHNpZ25pZmljYW50IGNoYXIKKyAgICAqIEByZXR1cm4gaW50IGZvcm0KKyAgICAqLworICAgIHN0YXRpYyBpbnQgdG9JbnQoY2hhciBtc2MsIGNoYXIgbHNjKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgobXNjIDw8IDE2KSB8IGxzYyk7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogUmV0cmlldmVzIGEgbnVsbCB0ZXJtaW5hdGVkIHN1YnN0cmluZyBmcm9tIGFuIGFycmF5IG9mIGJ5dGVzLgorICAgICogU3Vic3RyaW5nIGlzIGEgc2V0IG9mIG5vbi16ZXJvIGJ5dGVzIHN0YXJ0aW5nIGZyb20gYXJndW1lbnQgc3RhcnQgdG8gdGhlIAorICAgICogbmV4dCB6ZXJvIGJ5dGUuIElmIHRoZSBmaXJzdCBieXRlIGlzIGEgemVybywgdGhlIG5leHQgYnl0ZSB3aWxsIGJlIHRha2VuIGFzCisgICAgKiB0aGUgZmlyc3QgYnl0ZS4KKyAgICAqIEBwYXJhbSBzdHIgc3RyaW5nYnVmZmVyIHRvIHN0b3JlIGRhdGEgaW4sIGRhdGEgd2lsbCBiZSBzdG9yZSB3aXRoIGVhY2gKKyAgICAqICAgICAgICAgICAgYnl0ZSBhcyBhIGNoYXIKKyAgICAqIEBwYXJhbSBhcnJheSBieXRlIGFycmF5CisgICAgKiBAcGFyYW0gaW5kZXggdG8gc3RhcnQgc3Vic3RyaW5nIGluIGJ5dGUgY291bnQKKyAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgc3Vic3RyaW5nIHdpdGhpbiB0aGUgY2hhcmFjdGVyIGFycmF5CisgICAgKi8KKyAgICBzdGF0aWMgaW50IGdldE51bGxUZXJtQnl0ZVN1YlN0cmluZyhTdHJpbmdCdWZmZXIgc3RyLCBieXRlW10gYXJyYXksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXgpCisgICAgeworICAgICAgICBieXRlIGIgPSAxOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGIgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgYiA9IGFycmF5W2luZGV4XTsKKyAgICAgICAgICAgIGlmIChiICE9IDApIHsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKChjaGFyKShiICYgMHgwMEZGKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogQ29tcGFyZXMgYSBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5nIGZyb20gYW4gYXJyYXkgb2YgYnl0ZXMuCisgICAgKiBTdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCBzdGFydCB0byB0aGUgCisgICAgKiBuZXh0IHplcm8gYnl0ZS4gaWYgdGhlIGZpcnN0IGJ5dGUgaXMgYSB6ZXJvLCB0aGUgbmV4dCBieXRlIHdpbGwgYmUgdGFrZW4gYXMKKyAgICAqIHRoZSBmaXJzdCBieXRlLgorICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gY29tcGFyZQorICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkKKyAgICAqIEBwYXJhbSBzdHJpbmRleCBpbmRleCB3aXRoaW4gc3RyIHRvIHN0YXJ0IGNvbXBhcmluZworICAgICogQHBhcmFtIGFpbmRleCBhcnJheSBpbmRleCB0byBzdGFydCBpbiBieXRlIGNvdW50CisgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIHN1YnN0cmluZyB3aXRoaW4gc3RyIGlmIG1hdGNoZXMgb3RoZXJ3aXNlIAorICAgICogICAgICAgICBhIC0xCisgICAgKi8KKyAgICBzdGF0aWMgaW50IGNvbXBhcmVOdWxsVGVybUJ5dGVTdWJTdHJpbmcoU3RyaW5nIHN0ciwgYnl0ZVtdIGFycmF5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJpbmRleCwgaW50IGFpbmRleCkKKyAgICB7CisgICAgICAgIGJ5dGUgYiA9IDE7CisgICAgICAgIGludCBsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoYiAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gYXJyYXlbYWluZGV4XTsgIAorICAgICAgICAgICAgYWluZGV4ICsrOworICAgICAgICAgICAgaWYgKGIgPT0gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHN0cmluZyBhbmQgeWV0IHRoZSBhcnJheSBoYXMgbm90IAorICAgICAgICAgICAgLy8gcmVhY2hlZCB0aGUgZW5kIG9mIHRoZWlyIHN1YnN0cmluZyB5ZXQsIGFib3J0CisgICAgICAgICAgICBpZiAoc3RyaW5kZXggPT0gbGVuZ3RoIAorICAgICAgICAgICAgICAgIHx8IChzdHIuY2hhckF0KHN0cmluZGV4KSAhPSAoY2hhcikoYiAmIDB4RkYpKSkgeworICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJpbmRleCArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RyaW5kZXg7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogU2tpcCBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5ncyBmcm9tIGFuIGFycmF5IG9mIGJ5dGVzLgorICAgICogU3Vic3RyaW5nIGlzIGEgc2V0IG9mIG5vbi16ZXJvIGJ5dGVzIHN0YXJ0aW5nIGZyb20gYXJndW1lbnQgc3RhcnQgdG8gdGhlIAorICAgICogbmV4dCB6ZXJvIGJ5dGUuIElmIHRoZSBmaXJzdCBieXRlIGlzIGEgemVybywgdGhlIG5leHQgYnl0ZSB3aWxsIGJlIHRha2VuIGFzCisgICAgKiB0aGUgZmlyc3QgYnl0ZS4KKyAgICAqIEBwYXJhbSBhcnJheSBieXRlIGFycmF5CisgICAgKiBAcGFyYW0gaW5kZXggdG8gc3RhcnQgc3Vic3RyaW5ncyBpbiBieXRlIGNvdW50CisgICAgKiBAcGFyYW0gc2tpcGNvdW50IG51bWJlciBvZiBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5ncyB0byBza2lwCisgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIHN1YnN0cmluZ3Mgd2l0aGluIHRoZSBjaGFyYWN0ZXIgYXJyYXkKKyAgICAqLworICAgIHN0YXRpYyBpbnQgc2tpcE51bGxUZXJtQnl0ZVN1YlN0cmluZyhieXRlW10gYXJyYXksIGludCBpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2tpcGNvdW50KQorICAgIHsKKyAgICAgICAgYnl0ZSBiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNraXBjb3VudDsgaSArKykKKyAgICAgICAgeworICAgICAgICAgICAgYiA9IDE7CisgICAgICAgICAgICB3aGlsZSAoYiAhPSAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGIgPSBhcnJheVtpbmRleF07CisgICAgICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBza2lwIHN1YnN0cmluZ3MgZnJvbSBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzLCB3aGVyZSBlYWNoIGNoYXJhY3RlciBpcyBhIHNldCAKKyAgICAgKiBvZiAyIGJ5dGVzLiBzdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCAKKyAgICAgKiBzdGFydCB0byB0aGUgYnl0ZSBvZiB0aGUgYXJndW1lbnQgdmFsdWUuIHNraXBzIHVwIHRvIGEgbWF4IG51bWJlciBvZiAKKyAgICAgKiBjaGFyYWN0ZXJzCisgICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gaW5kZXggdG8gc3RhcnQgc3Vic3RyaW5ncyBpbiBieXRlIGNvdW50CisgICAgICogQHBhcmFtIGxlbmd0aCB0aGUgbWF4IG51bWJlciBvZiBieXRlcyB0byBza2lwCisgICAgICogQHBhcmFtIHNraXBlbmQgdmFsdWUgb2YgYnl0ZSB0byBza2lwIHRvCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHNraXBwZWQKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IHNraXBCeXRlU3ViU3RyaW5nKGJ5dGVbXSBhcnJheSwgaW50IGluZGV4LCBpbnQgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIHNraXBlbmQpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICBieXRlIGI7CisgICAgICAgIAorICAgICAgICBmb3IgKHJlc3VsdCA9IDA7IHJlc3VsdCA8IGxlbmd0aDsgcmVzdWx0ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gYXJyYXlbaW5kZXggKyByZXN1bHRdOworICAgICAgICAgICAgaWYgKGIgPT0gc2tpcGVuZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIE1pbmltdW0gc3VmZml4IHZhbHVlIHRoYXQgaW5kaWNhdGVzIGlmIGEgY2hhcmFjdGVyIGlzIG5vbiBjaGFyYWN0ZXIuCisgICAgKiBVbmljb2RlIDMuMCBub24gY2hhcmFjdGVycworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTl9DSEFSQUNURVJfU1VGRklYX01JTl8zXzBfID0gMHhGRkZFOworICAgIC8qKgorICAgICogTmV3IG1pbmltdW0gbm9uIGNoYXJhY3RlciBpbiBVbmljb2RlIDMuMQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTl9DSEFSQUNURVJfTUlOXzNfMV8gPSAweEZERDA7CisgICAgLyoqCisgICAgKiBOZXcgbm9uIGNoYXJhY3RlciByYW5nZSBpbiBVbmljb2RlIDMuMQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTl9DSEFSQUNURVJfTUFYXzNfMV8gPSAweEZERUY7CisgICAgCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICogcHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBhdm9pZCBpbml0aWFsaXNhdGlvbgorICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyVXRpbGl0eSgpCisgICAgeworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVByb3BlcnR5QWxpYXNlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVByb3BlcnR5QWxpYXNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MWUzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VUHJvcGVydHlBbGlhc2VzLmphdmEKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE5vdmVtYmVyIDUgMjAwMgorKiBTaW5jZTogSUNVIDIuNAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBXcmFwcGVyIGZvciB0aGUgcG5hbWVzLmljdSBiaW5hcnkgZGF0YSBmaWxlLiAgVGhpcyBkYXRhIGZpbGUgaXMKKyAqIGltcG9ydGVkIGZyb20gaWN1NGMuICBJdCBjb250YWlucyBwcm9wZXJ0eSBhbmQgcHJvcGVydHkgdmFsdWUKKyAqIGFsaWFzZXMgZnJvbSB0aGUgVUNEIGZpbGVzIFByb3BlcnR5QWxpYXNlcy50eHQgYW5kCisgKiBQcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQuICBUaGUgZmlsZSBpcyBidWlsdCBieSB0aGUgaWN1NGMgdG9vbAorICogZ2VucG5hbWUuICBJdCBtdXN0IGJlIGJ1aWx0IG9uIGFuIEFTQ0lJIGJpZy1lbmRpYW4gcGxhdGZvcm0gdG8gYmUKKyAqIHVzYWJsZSBpbiBpY3U0ai4KKyAqCisgKiBUaGlzIGNsYXNzIHBlcmZvcm1zIHR3byBmdW5jdGlvbnMuCisgKgorICogKDEpIEl0IGNhbiBpbXBvcnQgdGhlIGZsYXQgYmluYXJ5IGRhdGEgaW50byBhIHRyZWUgb2YgdXNhYmxlCisgKiBvYmplY3RzLgorICoKKyAqICgyKSBJdCBwcm92aWRlcyBhbiBBUEkgdG8gYWNjZXNzIHRoZSB0cmVlIG9mIG9iamVjdHMuCisgKgorICogTmVlZGxlc3MgdG8gc2F5LCB0aGlzIGNsYXNzIGlzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgYmluYXJ5IGZvcm1hdAorICogb2YgaWN1NGMncyBwbmFtZXMuaWN1IGZpbGUuCisgKgorICogRWFjaCB0aW1lIGEgVVByb3BlcnR5QWxpYXNlcyBpcyBjb25zdHJ1Y3RlZCwgdGhlIHBuYW1lcy5pY3UgZmlsZSBpcworICogcmVhZCwgcGFyc2VkLCBhbmQgYSBkYXRhIHRyZWUgYXNzZW1ibGVkLiAgQ2xpZW50cyBzaG91bGQgY3JlYXRlIG9uZQorICogc2luZ2xldG9uIGluc3RhbmNlIGFuZCBjYWNoZSBpdC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuNAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVVByb3BlcnR5QWxpYXNlcyBpbXBsZW1lbnRzIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUnVudGltZSBkYXRhLiAgVGhpcyBpcyBhbiB1bmZsYXR0ZW5lZCByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAgICAvLyBkYXRhIGluIHBuYW1lcy5pY3UuCisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBwcm9wZXJ0eSBlbnVtIHZhbHVlIHRvIG5hbWVHcm91cFBvb2xbXSBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IGVudW1Ub05hbWU7CisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBwcm9wZXJ0eSBhbGlhcyB0byBwcm9wZXJ0eSBlbnVtIHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBOYW1lVG9FbnVtIG5hbWVUb0VudW07CisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBwcm9wZXJ0eSBlbnVtIHZhbHVlIHRvIHZhbHVlTWFwQXJyYXlbXSBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IGVudW1Ub1ZhbHVlOworCisgICAgLyoqCisgICAgICogRWFjaCBlbnRyeSByZXByZXNlbnRzIGEgYmluYXJ5IG9yIGVudW1lcmF0ZWQgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwcml2YXRlIFZhbHVlTWFwIHZhbHVlTWFwQXJyYXlbXTsKKworICAgIC8qKgorICAgICAqIFBvb2wgb2YgY29uY2F0ZW5hdGVkIGludGVnZXIgcnVucy4gIEVhY2ggcnVuIGNvbnRhaW5zIG9uZQorICAgICAqIG9yIG1vcmUgZW50cmllcy4gIFRoZSBsYXN0IGVudHJ5IG9mIHRoZSBydW4gaXMgbmVnYXRpdmUuCisgICAgICogQSB6ZXJvIGVudHJ5IGluZGljYXRlcyAibi9hIiBpbiB0aGUgUHJvcGVydHkqQWxpYXNlcy50eHQuCisgICAgICogRWFjaCBlbnRyeSBpcyBhIHN0cmluZ1Bvb2xbXSBpbmRleC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0IG5hbWVHcm91cFBvb2xbXTsKKworICAgIC8qKgorICAgICAqIFBvb2wgb2Ygc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBzdHJpbmdQb29sW107CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdGFudHMKKworICAgIC8qKgorICAgICAqIERlYnVnIGZsYWcgKG5vdCByZWFsbHkgY29uc3RhbnQpCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoInBuYW1lcyIpOworCisgICAgLyoqCisgICAgICogRmlsZSBmb3JtYXQgdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICAqIFNlZSBpY3U0Yy9zcmMvY29tbW9uL3Byb3BuYW1lLmguCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRFtdID0geydwJywgJ24nLCAnYScsICdtJ307CisKKyAgICAvKioKKyAgICAgKiBGaWxlIHZlcnNpb24gdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICAqIFNlZSBpY3U0Yy9zcmMvY29tbW9uL3Byb3BuYW1lLmguCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OID0gMTsKKworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhlIGRhdGFmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfRklMRV9OQU1FID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3BuYW1lcy5pY3UiOworCisgICAgLyoqCisgICAgICogQnVmZmVyIHNpemUgb2YgZGF0YWZpbGUuICBUaGUgd2hvbGUgZmlsZSBpcyA8IDE2ay4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CVUZGRVJfU0laRSA9IDgxOTI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcgorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFVQcm9wZXJ0eUFsaWFzZXMgb2JqZWN0LiAgVGhlIGJpbmFyeSBmaWxlCisgICAgICogREFUQV9GSUxFX05BTUUgaXMgcmVhZCBmcm9tIHRoZSBqYXIvY2xhc3NwYXRoIGFuZCB1bmZsYXR0ZW5lZAorICAgICAqIGludG8gbWVtYmVyIHZhcmlhYmxlcyBvZiB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVVByb3BlcnR5QWxpYXNlcygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gT3BlbiB0aGUgLmljdSBmaWxlIGZyb20gdGhlIGphci9jbGFzc3BhdGgKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKERBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaXMsIERBVEFfQlVGRkVSX1NJWkUpOworICAgICAgICAvLyBSZWFkIGFuZCBkaXNjYXJkIFVuaWNvZGUgdmVyc2lvbi4uLgorICAgICAgIC8qIGJ5dGUgdW5pY29kZVZlcnNpb25bXSA9ICovSUNVQmluYXJ5LnJlYWRIZWFkZXIoYiwgREFUQV9GT1JNQVRfSUQsIHRoaXMpOworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gZCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oYik7CisKKyAgICAgICAgLy8gUmVjb3JkIHRoZSBvcmlnaW4gcG9zaXRpb24gb2YgdGhlIGZpbGUuICBLZWVwIGVub3VnaCBhcm91bmQKKyAgICAgICAgLy8gdG8gc2VlayBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgaGVhZGVyLgorICAgICAgICBkLm1hcmsoMjU2KTsKKworICAgICAgICBzaG9ydCBlbnVtVG9OYW1lX29mZnNldCA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IG5hbWVUb0VudW1fb2Zmc2V0ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgZW51bVRvVmFsdWVfb2Zmc2V0ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgdG90YWxfc2l6ZSA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IHZhbHVlTWFwX29mZnNldCA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IHZhbHVlTWFwX2NvdW50ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgbmFtZUdyb3VwUG9vbF9vZmZzZXQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCBuYW1lR3JvdXBQb29sX2NvdW50ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgc3RyaW5nUG9vbF9vZmZzZXQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCBzdHJpbmdQb29sX2NvdW50ID0gZC5yZWFkU2hvcnQoKTsKKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICJlbnVtVG9OYW1lX29mZnNldD0iICsgZW51bVRvTmFtZV9vZmZzZXQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJuYW1lVG9FbnVtX29mZnNldD0iICsgbmFtZVRvRW51bV9vZmZzZXQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJlbnVtVG9WYWx1ZV9vZmZzZXQ9IiArIGVudW1Ub1ZhbHVlX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgInRvdGFsX3NpemU9IiArIHRvdGFsX3NpemUgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJ2YWx1ZU1hcF9vZmZzZXQ9IiArIHZhbHVlTWFwX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgInZhbHVlTWFwX2NvdW50PSIgKyB2YWx1ZU1hcF9jb3VudCArICJcbiIgKworICAgICAgICAgICAgICAgIm5hbWVHcm91cFBvb2xfb2Zmc2V0PSIgKyBuYW1lR3JvdXBQb29sX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgIm5hbWVHcm91cFBvb2xfY291bnQ9IiArIG5hbWVHcm91cFBvb2xfY291bnQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJzdHJpbmdQb29sX29mZnNldD0iICsgc3RyaW5nUG9vbF9vZmZzZXQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJzdHJpbmdQb29sX2NvdW50PSIgKyBzdHJpbmdQb29sX2NvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJlYWQgaXQgYWxsIChsZXNzIHRoYW4gMzJrKS4gIFNlZWtpbmcgYXJvdW5kICh1c2luZworICAgICAgICAvLyBtYXJrL3Jlc2V0L3NraXBCeXRlcykgZG9lc24ndCB3b3JrIGRpcmVjdGx5IG9uIHRoZSBmaWxlLAorICAgICAgICAvLyBidXQgaXQgd29ya3MgZmluZSBpZiB3ZSByZWFkIGV2ZXJ5dGhpbmcgaW50byBhIGJ5dGVbXSBhcnJheQorICAgICAgICAvLyBmaXJzdC4KKyAgICAgICAgYnl0ZSByYXdbXSA9IG5ldyBieXRlW3RvdGFsX3NpemVdOworICAgICAgICBkLnJlc2V0KCk7CisgICAgICAgIGQucmVhZEZ1bGx5KHJhdyk7CisgICAgICAgIGQuY2xvc2UoKTsKKworICAgICAgICBCdWlsZGVyIGJ1aWxkZXIgPSBuZXcgQnVpbGRlcihyYXcpOworCisgICAgICAgIHN0cmluZ1Bvb2wgPSBidWlsZGVyLnJlYWRTdHJpbmdQb29sKHN0cmluZ1Bvb2xfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdQb29sX2NvdW50KTsKKworICAgICAgICBuYW1lR3JvdXBQb29sID0gYnVpbGRlci5yZWFkTmFtZUdyb3VwUG9vbChuYW1lR3JvdXBQb29sX29mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUdyb3VwUG9vbF9jb3VudCk7CisKKyAgICAgICAgYnVpbGRlci5zZXR1cFZhbHVlTWFwX21hcCh2YWx1ZU1hcF9vZmZzZXQsIHZhbHVlTWFwX2NvdW50KTsKKworICAgICAgICAvLyBTb21lIG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzIGhhdmUgdG8gYmUgc2V0IHVwCisgICAgICAgIC8vIGhlcmUsIF9ub3RfIGluIEJ1aWxkZXIuICBUaGF0J3MgYmVjYXVzZSB0aGV5IGFyZSBpbnN0YW5jZXMKKyAgICAgICAgLy8gb2Ygbm9uLXN0YXRpYyBpbm5lciBjbGFzc2VzLCBhbmQgdGhleSBjb250YWluIGltcGxpY2l0CisgICAgICAgIC8vIHJlZmVyZW5jZXMgdG8gdGhpcy4KKworICAgICAgICBidWlsZGVyLnNlZWsoZW51bVRvTmFtZV9vZmZzZXQpOworICAgICAgICBlbnVtVG9OYW1lID0gbmV3IE5vbkNvbnRpZ3VvdXNFbnVtVG9TaG9ydChidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5uYW1lR3JvdXBPZmZzZXRUb0luZGV4KGVudW1Ub05hbWUub2Zmc2V0QXJyYXkpOworCisgICAgICAgIGJ1aWxkZXIuc2VlayhuYW1lVG9FbnVtX29mZnNldCk7CisgICAgICAgIG5hbWVUb0VudW0gPSBuZXcgTmFtZVRvRW51bShidWlsZGVyKTsKKworICAgICAgICBidWlsZGVyLnNlZWsoZW51bVRvVmFsdWVfb2Zmc2V0KTsKKyAgICAgICAgZW51bVRvVmFsdWUgPSBuZXcgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0KGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLnZhbHVlTWFwT2Zmc2V0VG9JbmRleChlbnVtVG9WYWx1ZS5vZmZzZXRBcnJheSk7CisKKyAgICAgICAgdmFsdWVNYXBBcnJheSA9IG5ldyBWYWx1ZU1hcFt2YWx1ZU1hcF9jb3VudF07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx2YWx1ZU1hcF9jb3VudDsgKytpKSB7CisgICAgICAgICAgICAvLyBNdXN0IHNlZWsgdG8gdGhlIHN0YXJ0IG9mIGVhY2ggZW50cnkuCisgICAgICAgICAgICBidWlsZGVyLnNlZWsoYnVpbGRlci52YWx1ZU1hcF9tYXBbaV0pOworICAgICAgICAgICAgdmFsdWVNYXBBcnJheVtpXSA9IG5ldyBWYWx1ZU1hcChidWlsZGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1aWxkZXIuY2xvc2UoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgQVBJCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwcm9wZXJ0eSBuYW1lIGdpdmVuIGEgcHJvcGVydHkgZW51bS4gIE11bHRpcGxlCisgICAgICogbmFtZXMgbWF5IGJlIGF2YWlsYWJsZSBmb3IgZWFjaCBwcm9wZXJ0eTsgdGhlIG5hbWVDaG9pY2UKKyAgICAgKiBzZWxlY3RzIGFtb25nIHRoZW0uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eU5hbWUoaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIHNob3J0IG5hbWVHcm91cEluZGV4ID0gZW51bVRvTmFtZS5nZXRTaG9ydChwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBjaG9vc2VOYW1lSW5Hcm91cChuYW1lR3JvdXBJbmRleCwgbmFtZUNob2ljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcHJvcGVydHkgZW51bSBnaXZlbiBvbmUgb2YgaXRzIHByb3BlcnR5IG5hbWVzLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UHJvcGVydHlFbnVtKFN0cmluZyBwcm9wZXJ0eUFsaWFzKSB7CisgICAgICAgIHJldHVybiBuYW1lVG9FbnVtLmdldEVudW0ocHJvcGVydHlBbGlhcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdmFsdWUgbmFtZSBnaXZlbiBhIHByb3BlcnR5IGVudW0gYW5kIGEgdmFsdWUgZW51bS4KKyAgICAgKiBNdWx0aXBsZSBuYW1lcyBtYXkgYmUgYXZhaWxhYmxlIGZvciBlYWNoIHZhbHVlOyB0aGUgbmFtZUNob2ljZQorICAgICAqIHNlbGVjdHMgYW1vbmcgdGhlbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVOYW1lKGludCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIFZhbHVlTWFwIHZtID0gZ2V0VmFsdWVNYXAocHJvcGVydHkpOworICAgICAgICBzaG9ydCBuYW1lR3JvdXBJbmRleCA9IHZtLmVudW1Ub05hbWUuZ2V0U2hvcnQodmFsdWUpOworICAgICAgICByZXR1cm4gY2hvb3NlTmFtZUluR3JvdXAobmFtZUdyb3VwSW5kZXgsIG5hbWVDaG9pY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHZhbHVlIGVudW0gZ2l2ZW4gb25lIG9mIGl0cyB2YWx1ZSBuYW1lcyBhbmQgdGhlCisgICAgICogY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBhbGlhcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFByb3BlcnR5VmFsdWVFbnVtKGludCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgIFZhbHVlTWFwIHZtID0gZ2V0VmFsdWVNYXAocHJvcGVydHkpOworICAgICAgICByZXR1cm4gdm0ubmFtZVRvRW51bS5nZXRFbnVtKHZhbHVlQWxpYXMpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIERhdGEgc3RydWN0dXJlcworCisgICAgLyoqCisgICAgICogQSBtYXAgZm9yIHRoZSBsZWdhbCB2YWx1ZXMgb2YgYSBiaW5hcnkgb3IgZW51bWVyYXRlZCBwcm9wZXJ0aWVzLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgVmFsdWVNYXAgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBNYXBzIHZhbHVlIGVudW0gdG8gaW5kZXggaW50byB0aGUgbmFtZUdyb3VwUG9vbFtdCisgICAgICAgICAqLworICAgICAgICBFbnVtVG9TaG9ydCBlbnVtVG9OYW1lOyAvLyBwb2x5bW9ycGhpYworCisgICAgICAgIC8qKgorICAgICAgICAgKiBNYXBzIHZhbHVlIG5hbWUgdG8gdmFsdWUgZW51bS4KKyAgICAgICAgICovCisgICAgICAgIE5hbWVUb0VudW0gbmFtZVRvRW51bTsKKworICAgICAgICBWYWx1ZU1hcChCdWlsZGVyIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICBzaG9ydCBlbnVtVG9OYW1lX29mZnNldCA9IGIucmVhZFNob3J0KCk7CisgICAgICAgICAgICBzaG9ydCBuY0VudW1Ub05hbWVfb2Zmc2V0ID0gYi5yZWFkU2hvcnQoKTsKKyAgICAgICAgICAgIHNob3J0IG5hbWVUb0VudW1fb2Zmc2V0ID0gYi5yZWFkU2hvcnQoKTsKKyAgICAgICAgICAgIGlmIChlbnVtVG9OYW1lX29mZnNldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgYi5zZWVrKGVudW1Ub05hbWVfb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBDb250aWd1b3VzRW51bVRvU2hvcnQgeCA9IG5ldyBDb250aWd1b3VzRW51bVRvU2hvcnQoYik7CisgICAgICAgICAgICAgICAgYi5uYW1lR3JvdXBPZmZzZXRUb0luZGV4KHgub2Zmc2V0QXJyYXkpOworICAgICAgICAgICAgICAgIGVudW1Ub05hbWUgPSB4OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBiLnNlZWsobmNFbnVtVG9OYW1lX29mZnNldCk7CisgICAgICAgICAgICAgICAgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IHggPSBuZXcgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0KGIpOworICAgICAgICAgICAgICAgIGIubmFtZUdyb3VwT2Zmc2V0VG9JbmRleCh4Lm9mZnNldEFycmF5KTsKKyAgICAgICAgICAgICAgICBlbnVtVG9OYW1lID0geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGIuc2VlayhuYW1lVG9FbnVtX29mZnNldCk7CisgICAgICAgICAgICBuYW1lVG9FbnVtID0gbmV3IE5hbWVUb0VudW0oYik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBYnN0cmFjdCBtYXAgZnJvbSBlbnVtIHZhbHVlcyB0byBpbnRlZ2Vycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludGVyZmFjZSBFbnVtVG9TaG9ydCB7CisgICAgICAgIHNob3J0IGdldFNob3J0KGludCBlbnVtUHJvYmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgbWFwIGZyb20gZW51bSB2YWx1ZXMgdG8gb2Zmc2V0cy4gIEVudW0gdmFsdWVzIGFyZQorICAgICAqIGNvbnRpZ3VvdXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29udGlndW91c0VudW1Ub1Nob3J0IGltcGxlbWVudHMgRW51bVRvU2hvcnQgeworICAgICAgICBpbnQgZW51bVN0YXJ0OworICAgICAgICBpbnQgZW51bUxpbWl0OworICAgICAgICBzaG9ydCBvZmZzZXRBcnJheVtdOworCisgICAgICAgIHB1YmxpYyBzaG9ydCBnZXRTaG9ydChpbnQgZW51bVByb2JlKSB7CisgICAgICAgICAgICBpZiAoZW51bVByb2JlIDwgZW51bVN0YXJ0IHx8IGVudW1Qcm9iZSA+PSBlbnVtTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVudW0uIGVudW1TdGFydCA9ICIgK2VudW1TdGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGVudW1MaW1pdCA9ICIgKyBlbnVtTGltaXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBlbnVtUHJvYmUgPSAiICsgZW51bVByb2JlICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb2Zmc2V0QXJyYXlbZW51bVByb2JlIC0gZW51bVN0YXJ0XTsKKyAgICAgICAgfQorCisgICAgICAgIENvbnRpZ3VvdXNFbnVtVG9TaG9ydChJQ1VCaW5hcnlTdHJlYW0gcykgdGhyb3dzIElPRXhjZXB0aW9uICB7CisgICAgICAgICAgICBlbnVtU3RhcnQgPSBzLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIGVudW1MaW1pdCA9IHMucmVhZEludCgpOworICAgICAgICAgICAgaW50IGNvdW50ID0gZW51bUxpbWl0IC0gZW51bVN0YXJ0OworICAgICAgICAgICAgb2Zmc2V0QXJyYXkgPSBuZXcgc2hvcnRbY291bnRdOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRBcnJheVtpXSA9IHMucmVhZFNob3J0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIG1hcCBmcm9tIGVudW0gdmFsdWVzIHRvIG9mZnNldHMuICBFbnVtIHZhbHVlcyBuZWVkIG5vdAorICAgICAqIGJlIGNvbnRpZ3VvdXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IGltcGxlbWVudHMgRW51bVRvU2hvcnQgeworICAgICAgICBpbnQgZW51bUFycmF5W107CisgICAgICAgIHNob3J0IG9mZnNldEFycmF5W107CisKKyAgICAgICAgcHVibGljIHNob3J0IGdldFNob3J0KGludCBlbnVtUHJvYmUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxlbnVtQXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW51bUFycmF5W2ldIDwgZW51bVByb2JlKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoZW51bUFycmF5W2ldID4gZW51bVByb2JlKSBicmVhazsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0QXJyYXlbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVudW0iKTsKKyAgICAgICAgfQorCisgICAgICAgIE5vbkNvbnRpZ3VvdXNFbnVtVG9TaG9ydChJQ1VCaW5hcnlTdHJlYW0gcykgdGhyb3dzIElPRXhjZXB0aW9uICB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IHMucmVhZEludCgpOworICAgICAgICAgICAgZW51bUFycmF5ID0gbmV3IGludFtjb3VudF07CisgICAgICAgICAgICBvZmZzZXRBcnJheSA9IG5ldyBzaG9ydFtjb3VudF07CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgZW51bUFycmF5W2ldID0gcy5yZWFkSW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0QXJyYXlbaV0gPSBzLnJlYWRTaG9ydCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFwIGZyb20gbmFtZXMgdG8gZW51bSB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBOYW1lVG9FbnVtIHsKKyAgICAgICAgaW50IGVudW1BcnJheVtdOworICAgICAgICBzaG9ydCBuYW1lQXJyYXlbXTsKKworICAgICAgICBpbnQgZ2V0RW51bShTdHJpbmcgbmFtZVByb2JlKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bmFtZUFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSBVUHJvcGVydHlBbGlhc2VzLmNvbXBhcmUobmFtZVByb2JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1Bvb2xbbmFtZUFycmF5W2ldXSk7CisgICAgICAgICAgICAgICAgaWYgKGMgPiAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDApIGJyZWFrOworICAgICAgICAgICAgICAgIHJldHVybiBlbnVtQXJyYXlbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIG5hbWU6ICIgKyBuYW1lUHJvYmUpOworICAgICAgICB9CisKKyAgICAgICAgTmFtZVRvRW51bShCdWlsZGVyIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IGIucmVhZEludCgpOworICAgICAgICAgICAgZW51bUFycmF5ID0gbmV3IGludFtjb3VudF07CisgICAgICAgICAgICBuYW1lQXJyYXkgPSBuZXcgc2hvcnRbY291bnRdOworICAgICAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGVudW1BcnJheVtpXSA9IGIucmVhZEludCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIG5hbWVBcnJheVtpXSA9IGIuc3RyaW5nT2Zmc2V0VG9JbmRleChiLnJlYWRTaG9ydCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFJ1bnRpbWUgaW1wbGVtZW50YXRpb24KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIHByb3BlcnR5IG5hbWVzLCByZXR1cm5pbmcgPDAsIDAsIG9yID4wLiAgVGhlCisgICAgICogY29tcGFyaXNvbiBpcyB0aGF0IGRlc2NyaWJlZCBhcyAibG9vc2UiIG1hdGNoaW5nIGluIHRoZQorICAgICAqIFByb3BlcnR5KkFsaWFzZXMudHh0IGZpbGVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nIHN0cmEsIFN0cmluZyBzdHJiKSB7CisgICAgICAgIC8vIE5vdGU6IFRoaXMgaW1wbGVtZW50YXRpb24gaXMgYSBsaXRlcmFsIGNvcHkgb2YKKyAgICAgICAgLy8gdXBydl9jb21wYXJlUHJvcGVydHlOYW1lcy4gIEl0IGNhbiBwcm9iYWJseSBiZSBpbXByb3ZlZC4KKyAgICAgICAgaW50IGlzdHJhPTAsIGlzdHJiPTAsIHJjOworICAgICAgICBpbnQgY3N0cmE9MCwgY3N0cmI9MDsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgLyogSWdub3JlIGRlbGltaXRlcnMgJy0nLCAnXycsIGFuZCBBU0NJSSBXaGl0ZV9TcGFjZSAqLworICAgICAgICAgICAgd2hpbGUgKGlzdHJhPHN0cmEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjc3RyYSA9IHN0cmEuY2hhckF0KGlzdHJhKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNzdHJhKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnLSc6ICBjYXNlICdfJzogIGNhc2UgJyAnOiAgY2FzZSAnXHQnOgorICAgICAgICAgICAgICAgIGNhc2UgJ1xuJzogY2FzZSAweGIvKlx2Ki86IGNhc2UgJ1xmJzogY2FzZSAnXHInOgorICAgICAgICAgICAgICAgICAgICArK2lzdHJhOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdoaWxlIChpc3RyYjxzdHJiLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY3N0cmIgPSBzdHJiLmNoYXJBdChpc3RyYik7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjc3RyYikgeworICAgICAgICAgICAgICAgIGNhc2UgJy0nOiAgY2FzZSAnXyc6ICBjYXNlICcgJzogIGNhc2UgJ1x0JzoKKyAgICAgICAgICAgICAgICBjYXNlICdcbic6IGNhc2UgMHhiLypcdiovOiBjYXNlICdcZic6IGNhc2UgJ1xyJzoKKyAgICAgICAgICAgICAgICAgICAgKytpc3RyYjsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBJZiB3ZSByZWFjaCB0aGUgZW5kcyBvZiBib3RoIHN0cmluZ3MgdGhlbiB0aGV5IG1hdGNoICovCisgICAgICAgICAgICBib29sZWFuIGVuZHN0cmEgPSBpc3RyYT09c3RyYS5sZW5ndGgoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZW5kc3RyYiA9IGlzdHJiPT1zdHJiLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGVuZHN0cmEpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kc3RyYikgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgY3N0cmEgPSAwOworICAgICAgICAgICAgfSBlbHNlIGlmIChlbmRzdHJiKSB7CisgICAgICAgICAgICAgICAgY3N0cmIgPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByYyA9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY3N0cmEpIC0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjc3RyYik7CisgICAgICAgICAgICBpZiAocmMgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgKytpc3RyYTsKKyAgICAgICAgICAgICsraXN0cmI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhbiBpbmRleCB0byBhIHJ1biB3aXRoaW4gdGhlIG5hbWVHcm91cFBvb2xbXSwgYW5kIGEKKyAgICAgKiBuYW1lQ2hvaWNlICgwLDEsLi4uKSwgc2VsZWN0IHRoZSBuYW1lQ2hvaWNlLXRoIGVudHJ5IG9mIHRoZSBydW4uCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgY2hvb3NlTmFtZUluR3JvdXAoc2hvcnQgbmFtZUdyb3VwSW5kZXgsIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIGlmIChuYW1lQ2hvaWNlIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBuYW1lIGNob2ljZSIpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChuYW1lQ2hvaWNlLS0gPiAwKSB7CisgICAgICAgICAgICBpZiAobmFtZUdyb3VwUG9vbFtuYW1lR3JvdXBJbmRleCsrXSA8IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIG5hbWUgY2hvaWNlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2hvcnQgYSA9IG5hbWVHcm91cFBvb2xbbmFtZUdyb3VwSW5kZXhdOworICAgICAgICByZXR1cm4gc3RyaW5nUG9vbFsoYSA8IDApID8gLWEgOiBhXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZhbHVlTWFwW10gZW50cnkgZm9yIGEgZ2l2ZW4gcHJvcGVydHkuCisgICAgICovCisgICAgcHJpdmF0ZSBWYWx1ZU1hcCBnZXRWYWx1ZU1hcChpbnQgcHJvcGVydHkpIHsKKyAgICAgICAgaW50IHZhbHVlTWFwSW5kZXggPSBlbnVtVG9WYWx1ZS5nZXRTaG9ydChwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiB2YWx1ZU1hcEFycmF5W3ZhbHVlTWFwSW5kZXhdOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIElDVUJpbmFyeSBBUEkKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRhIHZlcnNpb24gY2FuIGJlIHVzZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pICAgeworICAgICAgICByZXR1cm4gdmVyc2lvblswXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEJ1aWxkZXIKKworICAgIC8qKgorICAgICAqIEEgc3BlY2lhbGl6ZWQgSUNVQmluYXJ5U3RyZWFtIHRoYXQgY2FuIG1hcCBiZXR3ZWVuIG9mZnNldHMgYW5kCisgICAgICogaW5kZXggdmFsdWVzIGludG8gdmFyaW91cyBhcnJheXMgKHN0cmluZ1Bvb2wsIG5hbWVHcm91cFBvb2wsCisgICAgICogYW5kIHZhbHVlTWFwKS4gIEl0IGFsc28ga25vd3MgaG93IHRvIHJlYWQgdmFyaW91cyBzdHJ1Y3R1cmVzLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBCdWlsZGVyIGV4dGVuZHMgSUNVQmluYXJ5U3RyZWFtIHsKKworICAgICAgICAvLyBtYXBbaV0gPSBvZmZzZXQgb2Ygb2JqZWN0IGkuICBXZSBuZWVkIG1hcHMgZm9yIGFsbCBvZiBvdXIKKyAgICAgICAgLy8gYXJyYXlzLiAgVGhlIGFycmF5cyBhcmUgaW5kZXhlZCBieSBvZmZzZXQgaW4gdGhlIHJhdyBiaW5hcnkKKyAgICAgICAgLy8gZmlsZTsgd2UgbmVlZCB0byB0cmFuc2xhdGUgdGhhdCB0byBpbmRleC4KKworICAgICAgICBwcml2YXRlIHNob3J0IHN0cmluZ1Bvb2xfbWFwW107CisKKyAgICAgICAgcHJpdmF0ZSBzaG9ydCB2YWx1ZU1hcF9tYXBbXTsKKworICAgICAgICBwcml2YXRlIHNob3J0IG5hbWVHcm91cF9tYXBbXTsKKworICAgICAgICBwdWJsaWMgQnVpbGRlcihieXRlIHJhd1tdKSB7CisgICAgICAgICAgICBzdXBlcihyYXcpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSB2YWx1ZU1hcF9tYXBbXSBtdXN0IGJlIHNldHVwIGluIGFkdmFuY2UuICBUaGlzIG1ldGhvZAorICAgICAgICAgKiBkb2VzIHRoYXQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXR1cFZhbHVlTWFwX21hcChzaG9ydCBvZmZzZXQsIHNob3J0IGNvdW50KSB7CisgICAgICAgICAgICB2YWx1ZU1hcF9tYXAgPSBuZXcgc2hvcnRbY291bnRdOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAvLyBTdGFydCBvZiBlYWNoIGVudHJ5LiAgRWFjaCBlbnRyeSBpcyA2IGJ5dGVzIGxvbmcuCisgICAgICAgICAgICAgICAgdmFsdWVNYXBfbWFwW2ldID0gKHNob3J0KSAob2Zmc2V0ICsgaSAqIDYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlYWQgc3RyaW5nUG9vbFtdLiAgQnVpbGQgdXAgdHJhbnNsYXRpb24gdGFibGUgZnJvbSBvZmZzZXRzCisgICAgICAgICAqIHRvIHN0cmluZyBpbmRpY2VzIChzdHJpbmdQb29sX21hcFtdKS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmdbXSByZWFkU3RyaW5nUG9vbChzaG9ydCBvZmZzZXQsIHNob3J0IGNvdW50KQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHNlZWsob2Zmc2V0KTsKKyAgICAgICAgICAgIC8vIEFsbG9jYXRlIG9uZSBtb3JlIHN0cmluZ1Bvb2wgZW50cnkgdGhhbiBuZWVkZWQuICBVc2UgdGhpcworICAgICAgICAgICAgLy8gdG8gc3RvcmUgYSAibm8gc3RyaW5nIiBlbnRyeSBpbiB0aGUgcG9vbCwgYXQgaW5kZXggMC4gIFRoaXMKKyAgICAgICAgICAgIC8vIG1hcHMgdG8gb2Zmc2V0IDAsIHNvIGxldCBzdHJpbmdQb29sX21hcFswXSA9IDAuCisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nUG9vbFtdID0gbmV3IFN0cmluZ1tjb3VudCArIDFdOworICAgICAgICAgICAgc3RyaW5nUG9vbF9tYXAgPSBuZXcgc2hvcnRbY291bnQgKyAxXTsKKyAgICAgICAgICAgIHNob3J0IHBvcyA9IG9mZnNldDsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBzdHJpbmdQb29sX21hcFswXSA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpPTE7IGk8PWNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBuYW1lIGlzIGludmFyaWFudC1BU0NJSQorICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSAoY2hhcikgcmVhZFVuc2lnbmVkQnl0ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAwKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RyaW5nUG9vbF9tYXBbaV0gPSBwb3M7CisgICAgICAgICAgICAgICAgc3RyaW5nUG9vbFtpXSA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHBvcyArPSBzdHJpbmdQb29sW2ldLmxlbmd0aCgpICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicmVhZCBzdHJpbmdQb29sIHggIiArIGNvdW50ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogIiArIHN0cmluZ1Bvb2xbMV0gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nUG9vbFsyXSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdQb29sWzNdICsgIiwuLi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdQb29sOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlYWQgdGhlIG5hbWVHcm91cFBvb2xbXSwgYW5kIGJ1aWxkIHVwIHRoZSBvZmZzZXQtPmluZGV4CisgICAgICAgICAqIG1hcCAobmFtZUdyb3VwUG9vbF9tYXBbXSkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc2hvcnRbXSByZWFkTmFtZUdyb3VwUG9vbChzaG9ydCBvZmZzZXQsIHNob3J0IGNvdW50KQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIC8vIFJlYWQgbmFtZUdyb3VwUG9vbFtdLiAgVGhpcyBjb250YWlucyBvZmZzZXRzIGZyb20gc3RhcnQgb2YKKyAgICAgICAgICAgIC8vIGhlYWRlci4gIFdlIHRyYW5zbGF0ZSB0aGVzZSBpbnRvIGluZGljZXMgaW50byBzdHJpbmdQb29sW10KKyAgICAgICAgICAgIC8vIG9uIHRoZSBmbHkuICBUaGUgb2Zmc2V0IDAsIHdoaWNoIGluZGljYXRlcyAibm8gZW50cnkiLCB3ZQorICAgICAgICAgICAgLy8gdHJhbnNsYXRlIGludG8gaW5kZXggMCwgd2hpY2ggY29udGFpbnMgYSBudWxsIFN0cmluZworICAgICAgICAgICAgLy8gcG9pbnRlci4KKyAgICAgICAgICAgIHNlZWsob2Zmc2V0KTsKKyAgICAgICAgICAgIHNob3J0IHBvcyA9IG9mZnNldDsKKyAgICAgICAgICAgIHNob3J0IG5hbWVHcm91cFBvb2xbXSA9IG5ldyBzaG9ydFtjb3VudF07CisgICAgICAgICAgICBuYW1lR3JvdXBfbWFwID0gbmV3IHNob3J0W2NvdW50XTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgbmFtZUdyb3VwX21hcFtpXSA9IHBvczsKKyAgICAgICAgICAgICAgICBuYW1lR3JvdXBQb29sW2ldID0gc3RyaW5nT2Zmc2V0VG9JbmRleChyZWFkU2hvcnQoKSk7CisgICAgICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInJlYWQgbmFtZUdyb3VwUG9vbCB4ICIgKyBjb3VudCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6ICIgKyBuYW1lR3JvdXBQb29sWzBdICsgIiwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVHcm91cFBvb2xbMV0gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUdyb3VwUG9vbFsyXSArICIsLi4uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmFtZUdyb3VwUG9vbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIG9mZnNldCBpbnRvIHRoZSBzdHJpbmcgcG9vbCBpbnRvIGEgc3RyaW5nUG9vbFtdCisgICAgICAgICAqIGluZGV4LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzaG9ydCBzdHJpbmdPZmZzZXRUb0luZGV4KHNob3J0IG9mZnNldCkgeworICAgICAgICAgICAgaW50IHByb2JlID0gb2Zmc2V0OworICAgICAgICAgICAgaWYgKHByb2JlIDwgMCkgcHJvYmUgPSAtcHJvYmU7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8c3RyaW5nUG9vbF9tYXAubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nUG9vbF9tYXBbaV0gPT0gcHJvYmUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChzaG9ydCkgKChvZmZzZXQgPCAwKSA/IC1pIDogaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ2FuJ3QgbWFwIHN0cmluZyBwb29sIG9mZnNldCAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArICIgdG8gaW5kZXgiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIG9mZnNldHMgaW50byB0aGUgc3RyaW5nIHBvb2wgaW50byBhbgorICAgICAgICAgKiBhcnJheSBvZiBzdHJpbmdQb29sW10gaW5kaWNlcy4gIE1PRElGSUVTIFRIRSBBUlJBWSBJTgorICAgICAgICAgKiBQTEFDRS4KKyAgICAgICAgICovCisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHN0cmluZ09mZnNldFRvSW5kZXgoc2hvcnQgYXJyYXlbXSkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBzdHJpbmdPZmZzZXRUb0luZGV4KGFycmF5W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVydCBhbiBvZmZzZXQgaW50byB0aGUgdmFsdWUgbWFwIGludG8gYSB2YWx1ZU1hcFtdCisgICAgICAgICAqIGluZGV4LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzaG9ydCB2YWx1ZU1hcE9mZnNldFRvSW5kZXgoc2hvcnQgb2Zmc2V0KSB7CisgICAgICAgICAgICBmb3IgKHNob3J0IGk9MDsgaTx2YWx1ZU1hcF9tYXAubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVNYXBfbWFwW2ldID09IG9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDYW4ndCBtYXAgdmFsdWUgbWFwIG9mZnNldCAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArICIgdG8gaW5kZXgiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIG9mZnNldHMgaW50byB0aGUgdmFsdWUgbWFwIGFycmF5IGludG8KKyAgICAgICAgICogYW4gYXJyYXkgb2YgdmFsdWVNYXBbXSBpbmRpY2VzLiAgTU9ESUZJRVMgVEhFIEFSUkFZIElOCisgICAgICAgICAqIFBMQUNFLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHZhbHVlTWFwT2Zmc2V0VG9JbmRleChzaG9ydCBhcnJheVtdKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8YXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHZhbHVlTWFwT2Zmc2V0VG9JbmRleChhcnJheVtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVydCBhbiBvZmZzZXQgaW50byB0aGUgbmFtZSBncm91cCBwb29sIGludG8gYQorICAgICAgICAgKiBuYW1lR3JvdXBQb29sW10gaW5kZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHNob3J0IG5hbWVHcm91cE9mZnNldFRvSW5kZXgoc2hvcnQgb2Zmc2V0KSB7CisgICAgICAgICAgICBmb3IgKHNob3J0IGk9MDsgaTxuYW1lR3JvdXBfbWFwLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5hbWVHcm91cF9tYXBbaV0gPT0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBtYXAgbmFtZSBncm91cCBvZmZzZXQgIiArIG9mZnNldCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGluZGV4Iik7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVydCBhbiBhcnJheSBvZiBvZmZzZXRzIGludG8gdGhlIG5hbWUgZ3JvdXAgcG9vbCBpbnRvIGFuCisgICAgICAgICAqIGFycmF5IG9mIG5hbWVHcm91cFBvb2xbXSBpbmRpY2VzLiAgTU9ESUZJRVMgVEhFIEFSUkFZIElOCisgICAgICAgICAqIFBMQUNFLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIG5hbWVHcm91cE9mZnNldFRvSW5kZXgoc2hvcnQgYXJyYXlbXSkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBuYW1lR3JvdXBPZmZzZXRUb0luZGV4KGFycmF5W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VSTEhhbmRsZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VSTEhhbmRsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmExYzcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVJMSGFuZGxlci5qYXZhCkBAIC0wLDAgKzEsMjQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLm5ldC5KYXJVUkxDb25uZWN0aW9uOworaW1wb3J0IGphdmEubmV0LlVSTDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuamFyLkphckVudHJ5OworaW1wb3J0IGphdmEudXRpbC5qYXIuSmFyRmlsZTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFVSTEhhbmRsZXIgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBST1BOQU1FID0gInVybGhhbmRsZXIucHJvcHMiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE1hcCBoYW5kbGVyczsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgiVVJMSGFuZGxlciIpOworICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIE1hcCBoID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IFVSTEhhbmRsZXIuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbShQUk9QTkFNRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaXMgPSBDbGFzc0xvYWRlci5nZXRTeXN0ZW1DbGFzc0xvYWRlcigpLmdldFJlc291cmNlQXNTdHJlYW0oUFJPUE5BTUUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIENsYXNzW10gcGFyYW1zID0geyBVUkwuY2xhc3MgfTsKKyAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKFN0cmluZyBsaW5lID0gYnIucmVhZExpbmUoKTsgbGluZSAhPSBudWxsOyBsaW5lID0gYnIucmVhZExpbmUoKSkgeworICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwIHx8IGxpbmUuY2hhckF0KDApID09ICcjJykgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGludCBpeCA9IGxpbmUuaW5kZXhPZignPScpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl4ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbigiYmFkIHVybGhhbmRsZXIgbGluZTogJyIgKyBsaW5lICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgaXgpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gbGluZS5zdWJzdHJpbmcoaXgrMSkudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzIGNsID0gQ2xhc3MuZm9yTmFtZSh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgbSA9IGNsLmdldERlY2xhcmVkTWV0aG9kKCJnZXQiLCBwYXJhbXMpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGgucHV0KGtleSwgbSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4odCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGhhbmRsZXJzID0gaDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBVUkxIYW5kbGVyIGdldChVUkwgdXJsKSB7CisgICAgICAgIGlmICh1cmwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5nZXRQcm90b2NvbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKGhhbmRsZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIE1ldGhvZCBtID0gKE1ldGhvZCloYW5kbGVycy5nZXQocHJvdG9jb2wpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVVJMSGFuZGxlciBoYW5kbGVyID0gKFVSTEhhbmRsZXIpbS5pbnZva2UobnVsbCwgbmV3IE9iamVjdFtdIHsgdXJsIH0pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldERlZmF1bHQodXJsKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBVUkxIYW5kbGVyIGdldERlZmF1bHQoVVJMIHVybCkgeworICAgICAgICBTdHJpbmcgcHJvdG9jb2wgPSB1cmwuZ2V0UHJvdG9jb2woKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwcm90b2NvbC5lcXVhbHMoImZpbGUiKSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlVVJMSGFuZGxlcih1cmwpOworICAgICAgICB9IGVsc2UgaWYgKHByb3RvY29sLmVxdWFscygiamFyIikpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSmFyVVJMSGFuZGxlcih1cmwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgRmlsZVVSTEhhbmRsZXIgZXh0ZW5kcyBVUkxIYW5kbGVyIHsKKyAgICAgICAgRmlsZSBmaWxlOworICAgICAgICBTdHJpbmcgcm9vdDsKKyAgICAgICAgCisgICAgICAgIEZpbGVVUkxIYW5kbGVyKFVSTCB1cmwpIHsKKyAgICAgICAgICAgIHJvb3QgPSB1cmwuZ2V0UGF0aCgpOworICAgICAgICAgICAgZmlsZSA9IG5ldyBGaWxlKHJvb3QpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWZpbGUuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbigiZmlsZSBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgZ3VpZGUoVVJMVmlzaXRvciB2LCBib29sZWFuIHJlY3Vyc2UsIGJvb2xlYW4gc3RyaXApIHsKKyAgICAgICAgICAgIGlmIChmaWxlLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzKHYsIHJlY3Vyc2UsIHN0cmlwLCAiLyIsIGZpbGUubGlzdEZpbGVzKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2LnZpc2l0KGZpbGUuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3MoVVJMVmlzaXRvciB2LCBib29sZWFuIHJlY3Vyc2UsIGJvb2xlYW4gc3RyaXAsIFN0cmluZyBwYXRoLCBGaWxlW10gZmlsZXMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBGaWxlIGYgPSBmaWxlc1tpXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZWN1cnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKHYsIHJlY3Vyc2UsIHN0cmlwLCBwYXRoICsgZi5nZXROYW1lKCkrICcvJywgZi5saXN0RmlsZXMoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB2LnZpc2l0KHN0cmlwPyBmLmdldE5hbWUoKSA6IHBhdGggKyBmLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEphclVSTEhhbmRsZXIgZXh0ZW5kcyBVUkxIYW5kbGVyIHsKKyAgICAgICAgSmFyRmlsZSBqYXJGaWxlOworICAgICAgICBTdHJpbmcgcHJlZml4OworICAgICAgICAKKyAgICAgICAgSmFyVVJMSGFuZGxlcihVUkwgdXJsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHByZWZpeCA9IHVybC5nZXRQYXRoKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IGl4ID0gcHJlZml4LmluZGV4T2YoIiEvIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGl4ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnN1YnN0cmluZyhpeCArIDIpOyAvLyB0cnVuY2F0ZSBhZnRlciAiIS8iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEphclVSTENvbm5lY3Rpb24gY29ubiA9IChKYXJVUkxDb25uZWN0aW9uKXVybC5vcGVuQ29ubmVjdGlvbigpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGphckZpbGUgPSBjb25uLmdldEphckZpbGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJpY3VyYiBqYXIgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJqYXIgZXJyb3I6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGd1aWRlKFVSTFZpc2l0b3IgdiwgYm9vbGVhbiByZWN1cnNlLCBib29sZWFuIHN0cmlwKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIGVudHJpZXMgPSBqYXJGaWxlLmVudHJpZXMoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBKYXJFbnRyeSBlbnRyeSA9IChKYXJFbnRyeSllbnRyaWVzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoIWVudHJ5LmlzRGlyZWN0b3J5KCkpIHsgLy8gc2tpcCBqdXN0IGRpcmVjdG9yeSBwYXRocworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBlbnRyeS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpeCA9IG5hbWUubGFzdEluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWN1cnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmlwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoaXgrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi52aXNpdChuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJpY3VyYiBqYXIgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBndWlkZShVUkxWaXNpdG9yIHZpc2l0b3IsIGJvb2xlYW4gcmVjdXJzZSkKKyAgICB7CisgICAgICAgIGd1aWRlKHZpc2l0b3IsIHJlY3Vyc2UsIHRydWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBndWlkZShVUkxWaXNpdG9yIHZpc2l0b3IsIGJvb2xlYW4gcmVjdXJzZSwgYm9vbGVhbiBzdHJpcCk7CisgICAgCisgICAgcHVibGljIGludGVyZmFjZSBVUkxWaXNpdG9yIHsKKyAgICAgICAgdm9pZCB2aXNpdChTdHJpbmcgc3RyKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VTZXJpYWxpemVkU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VU2VyaWFsaXplZFNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NzU0ODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VU2VyaWFsaXplZFNldC5qYXZhCkBAIC0wLDAgKzEsMTkzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworLyoqCisgKiBAdmVyc2lvbiAgICAgMS4xCisgKiBAYXV0aG9yICAgICBNYXJrdXMgVy4gU2NoZXJlcgorICogUmFtOiBBZGQgZG9jdW1lbnRhdGlvbiwgcmVtb3ZlIHVud2FudGVkIG1ldGhvZHMsIGltcHJvdmUgY292ZXJhZ2UuCisgKi8KKworLyoqCisgKiBTaW1wbGUgY2xhc3MgZm9yIGhhbmRsaW5nIHNlcmlhbGl6ZWQgVVNldC9Vbmljb2RlU2V0IHN0cnVjdHVyZXMKKyAqIHdpdGhvdXQgb2JqZWN0IGNyZWF0aW9uLiBTZWUgSUNVNEMgaWN1L3NvdXJjZS9jb21tb24vdXNldC5jLgorICoKKyAqIEBpbnRlcm5hbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVVNlcmlhbGl6ZWRTZXQgeworICAgIC8qKgorICAgICAqIEZpbGwgaW4gdGhlIGdpdmVuIHNlcmlhbGl6ZWQgc2V0IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gc3JjIHBvaW50ZXIgdG8gc3RhcnQgb2YgYXJyYXkKKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgcG9pbnRlciB0byBzdGFydCBvZiBzZXJpYWxpemVkIGRhdGEgKGxlbmd0aCB2YWx1ZSkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGFycmF5IGlzIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UKKyAgICAgKiBAZHJhZnQgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGdldFNldChjaGFyIHNyY1tdLCBpbnQgc3JjU3RhcnQpIHsKKyAgICAgICAgLy8gbGVhdmUgbW9zdCBhcmd1bWVudCBjaGVja2luZyB1cCB0byBKYXZhIGV4Y2VwdGlvbnMKKyAgICAgICAgYXJyYXk9bnVsbDsKKyAgICAgICAgYXJyYXlPZmZzZXQ9Ym1wTGVuZ3RoPWxlbmd0aD0wOworCisgICAgICAgIGxlbmd0aD1zcmNbc3JjU3RhcnQrK107CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaWYoKGxlbmd0aCYweDgwMDApID4wKSB7CisgICAgICAgICAgICAvKiB0aGVyZSBhcmUgc3VwcGxlbWVudGFyeSB2YWx1ZXMgKi8KKyAgICAgICAgICAgIGxlbmd0aCY9MHg3ZmZmOworICAgICAgICAgICAgaWYoc3JjLmxlbmd0aDwoc3JjU3RhcnQrMStsZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJtcExlbmd0aD1zcmNbc3JjU3RhcnQrK107CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBvbmx5IEJNUCB2YWx1ZXMgKi8KKyAgICAgICAgICAgIGlmKHNyYy5sZW5ndGg8KHNyY1N0YXJ0K2xlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm1wTGVuZ3RoPWxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBhcnJheSA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHNyY1N0YXJ0LGFycmF5LDAsbGVuZ3RoKTsKKyAgICAgICAgLy9hcnJheU9mZnNldD1zcmNTdGFydDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgVVNlcmlhbGl6ZWRTZXQgdG8gY29udGFpbiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIChhbmQgbm90aGluZworICAgICAqIGVsc2UpLgorICAgICAqIEBkcmFmdCBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0VG9PbmUoaW50IGMpIHsKKyAgICAgICAgaWYoIDB4MTBmZmZmPGMpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGM8MHhmZmZmKSB7CisgICAgICAgICAgICBibXBMZW5ndGg9bGVuZ3RoPTI7CisgICAgICAgICAgICBhcnJheVswXT0oY2hhciljOworICAgICAgICAgICAgYXJyYXlbMV09KGNoYXIpKGMrMSk7CisgICAgICAgIH0gZWxzZSBpZihjPT0weGZmZmYpIHsKKyAgICAgICAgICAgIGJtcExlbmd0aD0xOworICAgICAgICAgICAgbGVuZ3RoPTM7CisgICAgICAgICAgICBhcnJheVswXT0weGZmZmY7CisgICAgICAgICAgICBhcnJheVsxXT0xOworICAgICAgICAgICAgYXJyYXlbMl09MDsKKyAgICAgICAgfSBlbHNlIGlmKGM8MHgxMGZmZmYpIHsKKyAgICAgICAgICAgIGJtcExlbmd0aD0wOworICAgICAgICAgICAgbGVuZ3RoPTQ7CisgICAgICAgICAgICBhcnJheVswXT0oY2hhcikoYz4+MTYpOworICAgICAgICAgICAgYXJyYXlbMV09KGNoYXIpYzsKKyAgICAgICAgICAgICsrYzsKKyAgICAgICAgICAgIGFycmF5WzJdPShjaGFyKShjPj4xNik7CisgICAgICAgICAgICBhcnJheVszXT0oY2hhciljOworICAgICAgICB9IGVsc2UgLyogYz09MHgxMGZmZmYgKi8geworICAgICAgICAgICAgYm1wTGVuZ3RoPTA7CisgICAgICAgICAgICBsZW5ndGg9MjsKKyAgICAgICAgICAgIGFycmF5WzBdPTB4MTA7CisgICAgICAgICAgICBhcnJheVsxXT0weGZmZmY7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGNvbnRhaW5lZCBpbiB0aGUgZ2l2ZW4gc2VyaWFsaXplZAorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gcmFuZ2VJbmRleCBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIGluIHRoZSByYW5nZSA8Y29kZT4wLi4KKyAgICAgKiBnZXRTZXJpYWxpemVkUmFuZ2VDb3VudCgpLTE8L2NvZGU+CisgICAgICogQHBhcmFtIHJhbmdlIHZhcmlhYmxlIHRvIHJlY2VpdmUgdGhlIGRhdGEgaW4gdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0cnVlIGlmIHJhbmdlSW5kZXggaXMgdmFsaWQsIG90aGVyd2lzZSBmYWxzZQorICAgICAqIEBkcmFmdCBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gZ2V0UmFuZ2UoaW50IHJhbmdlSW5kZXgsIGludFtdIHJhbmdlKSB7CisgICAgICAgIGlmKCByYW5nZUluZGV4PDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihhcnJheT09bnVsbCl7CisgICAgICAgICAgICBhcnJheSA9IG5ldyBjaGFyWzhdOworICAgICAgICB9CisgICAgICAgIGlmKHJhbmdlPT1udWxsIHx8IHJhbmdlLmxlbmd0aCA8Mil7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgcmFuZ2VJbmRleCo9MjsgLyogYWRkcmVzcyBzdGFydC9saW1pdCBwYWlycyAqLworICAgICAgICBpZihyYW5nZUluZGV4PGJtcExlbmd0aCkgeworICAgICAgICAgICAgcmFuZ2VbMF09YXJyYXlbcmFuZ2VJbmRleCsrXTsKKyAgICAgICAgICAgIGlmKHJhbmdlSW5kZXg8Ym1wTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmFuZ2VbMV09YXJyYXlbcmFuZ2VJbmRleF07CisgICAgICAgICAgICB9IGVsc2UgaWYocmFuZ2VJbmRleDxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByYW5nZVsxXT0oKChpbnQpYXJyYXlbcmFuZ2VJbmRleF0pPDwxNil8YXJyYXlbcmFuZ2VJbmRleCsxXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmFuZ2VbMV09MHgxMTAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByYW5nZVsxXS09MTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmFuZ2VJbmRleC09Ym1wTGVuZ3RoOworICAgICAgICAgICAgcmFuZ2VJbmRleCo9MjsgLyogYWRkcmVzcyBwYWlycyBvZiBwYWlycyBvZiB1bml0cyAqLworICAgICAgICAgICAgbGVuZ3RoLT1ibXBMZW5ndGg7CisgICAgICAgICAgICBpZihyYW5nZUluZGV4PGxlbmd0aCkgeworICAgICAgICAgICAgICAgIGludCBvZmZzZXQ9YXJyYXlPZmZzZXQrYm1wTGVuZ3RoOworICAgICAgICAgICAgICAgIHJhbmdlWzBdPSgoKGludClhcnJheVtvZmZzZXQrcmFuZ2VJbmRleF0pPDwxNil8YXJyYXlbb2Zmc2V0K3JhbmdlSW5kZXgrMV07CisgICAgICAgICAgICAgICAgcmFuZ2VJbmRleCs9MjsKKyAgICAgICAgICAgICAgICBpZihyYW5nZUluZGV4PGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICByYW5nZVsxXT0oKChpbnQpYXJyYXlbb2Zmc2V0K3JhbmdlSW5kZXhdKTw8MTYpfGFycmF5W29mZnNldCtyYW5nZUluZGV4KzFdOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJhbmdlWzFdPTB4MTEwMDAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByYW5nZVsxXS09MTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gVVNlcmlhbGl6ZWRTZXQgY29udGFpbnMgdGhlIGdpdmVuCisgICAgICogY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBjIHRoZSBjaGFyYWN0ZXIgdG8gdGVzdCBmb3IKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgc2V0IGNvbnRhaW5zIGMKKyAgICAgKiBAZHJhZnQgSUNVIDIuNAorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAKKyAgICAgICAgaWYoYz4weDEwZmZmZikgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIC8qIGZpbmQgYyBpbiB0aGUgQk1QIHBhcnQgKi8KKyAgICAgICAgICAgIGZvcihpPTA7IGk8Ym1wTGVuZ3RoICYmIChjaGFyKWM+PWFycmF5W2ldOyArK2kpIHt9CisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKChpJjEpICE9IDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAvKiBmaW5kIGMgaW4gdGhlIHN1cHBsZW1lbnRhcnkgcGFydCAqLworICAgICAgICAgICAgY2hhciBoaWdoPShjaGFyKShjPj4xNiksIGxvdz0oY2hhciljOworICAgICAgICAgICAgZm9yKGk9Ym1wTGVuZ3RoOworICAgICAgICAgICAgICAgIGk8bGVuZ3RoICYmIChoaWdoPmFycmF5W2ldIHx8IChoaWdoPT1hcnJheVtpXSAmJiBsb3c+PWFycmF5W2krMV0pKTsKKyAgICAgICAgICAgICAgICBpKz0yKSB7fQorICAgICAgICAKKyAgICAgICAgICAgIC8qIGNvdW50IHBhaXJzIG9mIDE2LWJpdCB1bml0cyBldmVuIHBlciBCTVAgYW5kIGNoZWNrIGlmIHRoZSBudW1iZXIgb2YgcGFpcnMgaXMgb2RkICovCisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKCgoaStibXBMZW5ndGgpJjIpIT0wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGlzam9pbnQgcmFuZ2VzIG9mIGNoYXJhY3RlcnMgY29udGFpbmVkIGluCisgICAgICogdGhlIGdpdmVuIHNlcmlhbGl6ZWQgc2V0LiAgSWdub3JlcyBhbnkgc3RyaW5ncyBjb250YWluZWQgaW4gdGhlCisgICAgICogc2V0LgorICAgICAqIEByZXR1cm4gYSBub24tbmVnYXRpdmUgaW50ZWdlciBjb3VudGluZyB0aGUgY2hhcmFjdGVyIHJhbmdlcworICAgICAqIGNvbnRhaW5lZCBpbiBzZXQKKyAgICAgKiBAZHJhZnQgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgY291bnRSYW5nZXMoKSB7CisgICAgICAgIHJldHVybiAoYm1wTGVuZ3RoKyhsZW5ndGgtYm1wTGVuZ3RoKS8yKzEpLzI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgY2hhciBhcnJheVtdID0gbmV3IGNoYXJbOF07CisgICAgcHJpdmF0ZSBpbnQgYXJyYXlPZmZzZXQsIGJtcExlbmd0aCwgbGVuZ3RoOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEzOWIzZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEKQEAgLTAsMCArMSwxOTA2IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworLy8gVGhpcyBjbGFzcyBjb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBzbyB0ZXN0aW5nIG5vdCBuZWVkZWQKKy8vL0NMT1ZFUjpPRkYKK3B1YmxpYyBmaW5hbCBjbGFzcyBVdGlsaXR5IHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQVBPU1RST1BIRSA9ICdcJyc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBCQUNLU0xBU0ggID0gJ1xcJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFHSUNfVU5TSUdORUQgPSAweDgwMDAwMDAwOworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBPYmplY3RbXXMuCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5RXF1YWxzKE9iamVjdFtdIHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiAodGFyZ2V0ID09IG51bGwpOworICAgICAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBPYmplY3RbXSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgT2JqZWN0W10gdGFyZyA9IChPYmplY3RbXSkgdGFyZ2V0OworICAgICAgICByZXR1cm4gKHNvdXJjZS5sZW5ndGggPT0gdGFyZy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBhcnJheVJlZ2lvbk1hdGNoZXMoc291cmNlLCAwLCB0YXJnLCAwLCBzb3VyY2UubGVuZ3RoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBpbnRbXXMKKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5RXF1YWxzKGludFtdIHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiAodGFyZ2V0ID09IG51bGwpOworICAgICAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBpbnRbXSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaW50W10gdGFyZyA9IChpbnRbXSkgdGFyZ2V0OworICAgICAgICByZXR1cm4gKHNvdXJjZS5sZW5ndGggPT0gdGFyZy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBhcnJheVJlZ2lvbk1hdGNoZXMoc291cmNlLCAwLCB0YXJnLCAwLCBzb3VyY2UubGVuZ3RoKSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBkb3VibGVbXXMKKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5RXF1YWxzKGRvdWJsZVtdIHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiAodGFyZ2V0ID09IG51bGwpOworICAgICAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBkb3VibGVbXSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgZG91YmxlW10gdGFyZyA9IChkb3VibGVbXSkgdGFyZ2V0OworICAgICAgICByZXR1cm4gKHNvdXJjZS5sZW5ndGggPT0gdGFyZy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBhcnJheVJlZ2lvbk1hdGNoZXMoc291cmNlLCAwLCB0YXJnLCAwLCBzb3VyY2UubGVuZ3RoKSk7CisgICAgfQorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheUVxdWFscyhieXRlW10gc291cmNlLCBPYmplY3QgdGFyZ2V0KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuICh0YXJnZXQgPT0gbnVsbCk7CisgICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIGJ5dGVbXSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnl0ZVtdIHRhcmcgPSAoYnl0ZVtdKSB0YXJnZXQ7CisgICAgICAgIHJldHVybiAoc291cmNlLmxlbmd0aCA9PSB0YXJnLmxlbmd0aAorICAgICAgICAgICAgICAgICYmIGFycmF5UmVnaW9uTWF0Y2hlcyhzb3VyY2UsIDAsIHRhcmcsIDAsIHNvdXJjZS5sZW5ndGgpKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIE9iamVjdFtdcworICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheUVxdWFscyhPYmplY3Qgc291cmNlLCBPYmplY3QgdGFyZ2V0KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuICh0YXJnZXQgPT0gbnVsbCk7CisgICAgICAgIC8vIGZvciBzb21lIHJlYXNvbiwgdGhlIGNvcnJlY3QgYXJyYXlFcXVhbHMgaXMgbm90IGJlaW5nIGNhbGxlZAorICAgICAgICAvLyBzbyBkbyBpdCBieSBoYW5kIGZvciBub3cuCisgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3RbXSkKKyAgICAgICAgICAgIHJldHVybihhcnJheUVxdWFscygoT2JqZWN0W10pIHNvdXJjZSx0YXJnZXQpKTsKKyAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIGludFtdKQorICAgICAgICAgICAgcmV0dXJuKGFycmF5RXF1YWxzKChpbnRbXSkgc291cmNlLHRhcmdldCkpOworICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgZG91YmxlW10pCisgICAgICAgICAgICByZXR1cm4oYXJyYXlFcXVhbHMoKGludFtdKSBzb3VyY2UsdGFyZ2V0KSk7CisgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBieXRlW10pCisgICAgICAgICAgICByZXR1cm4oYXJyYXlFcXVhbHMoKGJ5dGVbXSkgc291cmNlLHRhcmdldCkpOworICAgICAgICByZXR1cm4gc291cmNlLmVxdWFscyh0YXJnZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gT2JqZWN0W11zCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtLgorICAgICAqIEBwYXJhbSBsZW4gdGhlIGxlbmd0aCB0byBjb21wYXJlLgorICAgICAqIFRoZSBzdGFydCBpbmRpY2VzIGFuZCBzdGFydCtsZW4gbXVzdCBiZSB2YWxpZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKE9iamVjdFtdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKKyAgICB7CisgICAgICAgIGludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKyAgICAgICAgaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghYXJyYXlFcXVhbHMoc291cmNlW2ldLHRhcmdldFtpICsgZGVsdGFdKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIE9iamVjdFtdcworICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbS4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhjaGFyW10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKKyAgICB7CisgICAgICAgIGludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKyAgICAgICAgaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0hPXRhcmdldFtpICsgZGVsdGFdKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGludFtdcy4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoaW50W10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGFycmF5cyBvZiBkb3VibGVzLgorICAgICAqIEBwYXJhbSBsZW4gdGhlIGxlbmd0aCB0byBjb21wYXJlLgorICAgICAqIFRoZSBzdGFydCBpbmRpY2VzIGFuZCBzdGFydCtsZW4gbXVzdCBiZSB2YWxpZC4KKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhkb3VibGVbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlW10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc291cmNlW2ldICE9IHRhcmdldFtpICsgZGVsdGFdKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGJ5dGVbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgIGJ5dGVbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwgaW50IGxlbil7CisJCWludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKwkJaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKwkJZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKwkJCWlmIChzb3VyY2VbaV0gIT0gdGFyZ2V0W2kgKyBkZWx0YV0pCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCXJldHVybiB0cnVlOworCX0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkuIERvZXMgbnVsbCBjaGVja3Mgb24gb2JqZWN0cywgdGhlbiBjYWxscyBlcXVhbHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIG9iamVjdEVxdWFscyhPYmplY3Qgc291cmNlLCBPYmplY3QgdGFyZ2V0KSB7CisgICAgaWYgKHNvdXJjZSA9PSBudWxsKQorICAgICAgICAgICAgcmV0dXJuICh0YXJnZXQgPT0gbnVsbCk7CisgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5lcXVhbHModGFyZ2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgRVNDQVBFIGNoYXJhY3RlciBpcyB1c2VkIGR1cmluZyBydW4tbGVuZ3RoIGVuY29kaW5nLiAgSXQgc2lnbmFscworICAgICAqIGEgcnVuIG9mIGlkZW50aWNhbCBjaGFycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEVTQ0FQRSA9ICdcdUE1QTUnOworCisgICAgLyoqCisgICAgICogVGhlIEVTQ0FQRV9CWVRFIGNoYXJhY3RlciBpcyB1c2VkIGR1cmluZyBydW4tbGVuZ3RoIGVuY29kaW5nLiAgSXQgc2lnbmFscworICAgICAqIGEgcnVuIG9mIGlkZW50aWNhbCBieXRlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBFU0NBUEVfQllURSA9IChieXRlKTB4QTU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGFuIGludCBhcnJheS4gIFVzZSBydW4tbGVuZ3RoIGVuY29kaW5nLgorICAgICAqIEEgY2hhcmFjdGVyIHJlcHJlc2VudHMgaXRzZWxmLCB1bmxlc3MgaXQgaXMgdGhlIEVTQ0FQRSBjaGFyYWN0ZXIuICBUaGVuCisgICAgICogdGhlIGZvbGxvd2luZyBub3RhdGlvbnMgYXJlIHBvc3NpYmxlOgorICAgICAqICAgRVNDQVBFIEVTQ0FQRSAgIEVTQ0FQRSBsaXRlcmFsCisgICAgICogICBFU0NBUEUgbiBjICAgICAgbiBpbnN0YW5jZXMgb2YgY2hhcmFjdGVyIGMKKyAgICAgKiBTaW5jZSBhbiBlbmNvZGVkIHJ1biBvY2N1cGllcyAzIGNoYXJhY3RlcnMsIHdlIG9ubHkgZW5jb2RlIHJ1bnMgb2YgNCBvcgorICAgICAqIG1vcmUgY2hhcmFjdGVycy4gIFRodXMgd2UgaGF2ZSBuID4gMCBhbmQgbiAhPSBFU0NBUEUgYW5kIG4gPD0gMHhGRkZGLgorICAgICAqIElmIHdlIGVuY291bnRlciBhIHJ1biB3aGVyZSBuID09IEVTQ0FQRSwgd2UgcmVwcmVzZW50IHRoaXMgYXM6CisgICAgICogICBjIEVTQ0FQRSBuLTEgYworICAgICAqIFRoZSBFU0NBUEUgdmFsdWUgaXMgY2hvc2VuIHNvIGFzIG5vdCB0byBjb2xsaWRlIHdpdGggY29tbW9ubHkKKyAgICAgKiBzZWVuIHZhbHVlcy4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgYXJyYXlUb1JMRVN0cmluZyhpbnRbXSBhKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgYS5sZW5ndGgpOworICAgICAgICBpbnQgcnVuVmFsdWUgPSBhWzBdOworICAgICAgICBpbnQgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpPGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBzID0gYVtpXTsKKyAgICAgICAgICAgIGlmIChzID09IHJ1blZhbHVlICYmIHJ1bkxlbmd0aCA8IDB4RkZGRikgeworICAgICAgICAgICAgICAgICsrcnVuTGVuZ3RoOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBydW5WYWx1ZSA9IHM7CisgICAgICAgICAgICAgICAgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBzaG9ydCBhcnJheS4gIFVzZSBydW4tbGVuZ3RoIGVuY29kaW5nLgorICAgICAqIEEgY2hhcmFjdGVyIHJlcHJlc2VudHMgaXRzZWxmLCB1bmxlc3MgaXQgaXMgdGhlIEVTQ0FQRSBjaGFyYWN0ZXIuICBUaGVuCisgICAgICogdGhlIGZvbGxvd2luZyBub3RhdGlvbnMgYXJlIHBvc3NpYmxlOgorICAgICAqICAgRVNDQVBFIEVTQ0FQRSAgIEVTQ0FQRSBsaXRlcmFsCisgICAgICogICBFU0NBUEUgbiBjICAgICAgbiBpbnN0YW5jZXMgb2YgY2hhcmFjdGVyIGMKKyAgICAgKiBTaW5jZSBhbiBlbmNvZGVkIHJ1biBvY2N1cGllcyAzIGNoYXJhY3RlcnMsIHdlIG9ubHkgZW5jb2RlIHJ1bnMgb2YgNCBvcgorICAgICAqIG1vcmUgY2hhcmFjdGVycy4gIFRodXMgd2UgaGF2ZSBuID4gMCBhbmQgbiAhPSBFU0NBUEUgYW5kIG4gPD0gMHhGRkZGLgorICAgICAqIElmIHdlIGVuY291bnRlciBhIHJ1biB3aGVyZSBuID09IEVTQ0FQRSwgd2UgcmVwcmVzZW50IHRoaXMgYXM6CisgICAgICogICBjIEVTQ0FQRSBuLTEgYworICAgICAqIFRoZSBFU0NBUEUgdmFsdWUgaXMgY2hvc2VuIHNvIGFzIG5vdCB0byBjb2xsaWRlIHdpdGggY29tbW9ubHkKKyAgICAgKiBzZWVuIHZhbHVlcy4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgYXJyYXlUb1JMRVN0cmluZyhzaG9ydFtdIGEpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLy8gZm9yIChpbnQgaT0wOyBpPGEubGVuZ3RoOyArK2kpIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIGFbaV0pOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSAoYS5sZW5ndGggPj4gMTYpKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgYS5sZW5ndGgpOworICAgICAgICBzaG9ydCBydW5WYWx1ZSA9IGFbMF07CisgICAgICAgIGludCBydW5MZW5ndGggPSAxOworICAgICAgICBmb3IgKGludCBpPTE7IGk8YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgc2hvcnQgcyA9IGFbaV07CisgICAgICAgICAgICBpZiAocyA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGRkYpICsrcnVuTGVuZ3RoOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgICAgIHJ1blZhbHVlID0gczsKKyAgICAgICAgICAgIHJ1bkxlbmd0aCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgY2hhciBhcnJheS4gIFVzZSBydW4tbGVuZ3RoIGVuY29kaW5nLgorICAgICAqIEEgY2hhcmFjdGVyIHJlcHJlc2VudHMgaXRzZWxmLCB1bmxlc3MgaXQgaXMgdGhlIEVTQ0FQRSBjaGFyYWN0ZXIuICBUaGVuCisgICAgICogdGhlIGZvbGxvd2luZyBub3RhdGlvbnMgYXJlIHBvc3NpYmxlOgorICAgICAqICAgRVNDQVBFIEVTQ0FQRSAgIEVTQ0FQRSBsaXRlcmFsCisgICAgICogICBFU0NBUEUgbiBjICAgICAgbiBpbnN0YW5jZXMgb2YgY2hhcmFjdGVyIGMKKyAgICAgKiBTaW5jZSBhbiBlbmNvZGVkIHJ1biBvY2N1cGllcyAzIGNoYXJhY3RlcnMsIHdlIG9ubHkgZW5jb2RlIHJ1bnMgb2YgNCBvcgorICAgICAqIG1vcmUgY2hhcmFjdGVycy4gIFRodXMgd2UgaGF2ZSBuID4gMCBhbmQgbiAhPSBFU0NBUEUgYW5kIG4gPD0gMHhGRkZGLgorICAgICAqIElmIHdlIGVuY291bnRlciBhIHJ1biB3aGVyZSBuID09IEVTQ0FQRSwgd2UgcmVwcmVzZW50IHRoaXMgYXM6CisgICAgICogICBjIEVTQ0FQRSBuLTEgYworICAgICAqIFRoZSBFU0NBUEUgdmFsdWUgaXMgY2hvc2VuIHNvIGFzIG5vdCB0byBjb2xsaWRlIHdpdGggY29tbW9ubHkKKyAgICAgKiBzZWVuIHZhbHVlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIFN0cmluZyBhcnJheVRvUkxFU3RyaW5nKGNoYXJbXSBhKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIChhLmxlbmd0aCA+PiAxNikpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSBhLmxlbmd0aCk7CisgICAgICAgIGNoYXIgcnVuVmFsdWUgPSBhWzBdOworICAgICAgICBpbnQgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpPGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgcyA9IGFbaV07CisgICAgICAgICAgICBpZiAocyA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGRkYpICsrcnVuTGVuZ3RoOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCAoc2hvcnQpcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgICAgICBydW5WYWx1ZSA9IHM7CisgICAgICAgICAgICBydW5MZW5ndGggPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIChzaG9ydClydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBieXRlIGFycmF5LiAgVXNlIHJ1bi1sZW5ndGggZW5jb2RpbmcuCisgICAgICogVHdvIGJ5dGVzIGFyZSBwYWNrZWQgaW50byBhIHNpbmdsZSBjaGFyLCB3aXRoIGEgc2luZ2xlIGV4dHJhIHplcm8gYnl0ZSBhdAorICAgICAqIHRoZSBlbmQgaWYgbmVlZGVkLiAgQSBieXRlIHJlcHJlc2VudHMgaXRzZWxmLCB1bmxlc3MgaXQgaXMgdGhlCisgICAgICogRVNDQVBFX0JZVEUuICBUaGVuIHRoZSBmb2xsb3dpbmcgbm90YXRpb25zIGFyZSBwb3NzaWJsZToKKyAgICAgKiAgIEVTQ0FQRV9CWVRFIEVTQ0FQRV9CWVRFICAgRVNDQVBFX0JZVEUgbGl0ZXJhbAorICAgICAqICAgRVNDQVBFX0JZVEUgbiBiICAgICAgICAgICBuIGluc3RhbmNlcyBvZiBieXRlIGIKKyAgICAgKiBTaW5jZSBhbiBlbmNvZGVkIHJ1biBvY2N1cGllcyAzIGJ5dGVzLCB3ZSBvbmx5IGVuY29kZSBydW5zIG9mIDQgb3IKKyAgICAgKiBtb3JlIGJ5dGVzLiAgVGh1cyB3ZSBoYXZlIG4gPiAwIGFuZCBuICE9IEVTQ0FQRV9CWVRFIGFuZCBuIDw9IDB4RkYuCisgICAgICogSWYgd2UgZW5jb3VudGVyIGEgcnVuIHdoZXJlIG4gPT0gRVNDQVBFX0JZVEUsIHdlIHJlcHJlc2VudCB0aGlzIGFzOgorICAgICAqICAgYiBFU0NBUEVfQllURSBuLTEgYgorICAgICAqIFRoZSBFU0NBUEVfQllURSB2YWx1ZSBpcyBjaG9zZW4gc28gYXMgbm90IHRvIGNvbGxpZGUgd2l0aCBjb21tb25seQorICAgICAqIHNlZW4gdmFsdWVzLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGFycmF5VG9STEVTdHJpbmcoYnl0ZVtdIGEpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgKGEubGVuZ3RoID4+IDE2KSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIGEubGVuZ3RoKTsKKyAgICAgICAgYnl0ZSBydW5WYWx1ZSA9IGFbMF07CisgICAgICAgIGludCBydW5MZW5ndGggPSAxOworICAgICAgICBieXRlW10gc3RhdGUgPSBuZXcgYnl0ZVsyXTsKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpPGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGJ5dGUgYiA9IGFbaV07CisgICAgICAgICAgICBpZiAoYiA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGKSArK3J1bkxlbmd0aDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIHJ1blZhbHVlLCBydW5MZW5ndGgsIHN0YXRlKTsKKyAgICAgICAgICAgICAgICBydW5WYWx1ZSA9IGI7CisgICAgICAgICAgICAgICAgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoLCBzdGF0ZSk7CisKKyAgICAgICAgLy8gV2UgbXVzdCBzYXZlIHRoZSBmaW5hbCBieXRlLCBpZiB0aGVyZSBpcyBvbmUsIGJ5IHBhZGRpbmcKKyAgICAgICAgLy8gYW4gZXh0cmEgemVyby4KKyAgICAgICAgaWYgKHN0YXRlWzBdICE9IDApIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgKGJ5dGUpMCwgc3RhdGUpOworCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmNvZGUgYSBydW4sIHBvc3NpYmx5IGEgZGVnZW5lcmF0ZSBydW4gKG9mIDwgNCB2YWx1ZXMpLgorICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgcnVuOyBtdXN0IGJlID4gMCAmJiA8PSAweEZGRkYuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgZW5jb2RlUnVuKFN0cmluZ0J1ZmZlciBidWZmZXIsIGludCB2YWx1ZSwgaW50IGxlbmd0aCkgeworICAgICAgICBpZiAobGVuZ3RoIDwgNCkgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gKGludCkgRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IChpbnQpIEVTQ0FQRSkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCBFU0NBUEUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCBFU0NBUEUpOworICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIHZhbHVlKTsgLy8gRG9uJ3QgbmVlZCB0byBlc2NhcGUgdGhpcyB2YWx1ZQorICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGFwcGVuZEludChTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikodmFsdWUgPj4+IDE2KSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpKHZhbHVlICYgMHhGRkZGKSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogRW5jb2RlIGEgcnVuLCBwb3NzaWJseSBhIGRlZ2VuZXJhdGUgcnVuIChvZiA8IDQgdmFsdWVzKS4KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIHJ1bjsgbXVzdCBiZSA+IDAgJiYgPD0gMHhGRkZGLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgZW5jb2RlUnVuKFN0cmluZ0J1ZmZlciBidWZmZXIsIHNob3J0IHZhbHVlLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIGlmIChsZW5ndGggPCA0KSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gKGludCkgRVNDQVBFKSBidWZmZXIuYXBwZW5kKEVTQ0FQRSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAoaW50KSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gKGludCkgRVNDQVBFKSBidWZmZXIuYXBwZW5kKEVTQ0FQRSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgdmFsdWUpOworICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChFU0NBUEUpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgbGVuZ3RoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIHZhbHVlKTsgLy8gRG9uJ3QgbmVlZCB0byBlc2NhcGUgdGhpcyB2YWx1ZQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5jb2RlIGEgcnVuLCBwb3NzaWJseSBhIGRlZ2VuZXJhdGUgcnVuIChvZiA8IDQgdmFsdWVzKS4KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIHJ1bjsgbXVzdCBiZSA+IDAgJiYgPD0gMHhGRi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGVuY29kZVJ1bihTdHJpbmdCdWZmZXIgYnVmZmVyLCBieXRlIHZhbHVlLCBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBieXRlW10gc3RhdGUpIHsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxsZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBFU0NBUEVfQllURSkgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCBFU0NBUEVfQllURSwgc3RhdGUpOworICAgICAgICAgICAgICAgIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgdmFsdWUsIHN0YXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gRVNDQVBFX0JZVEUpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBFU0NBUEVfQllURSkgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCBFU0NBUEVfQllURSwgc3RhdGUpOworICAgICAgICAgICAgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCB2YWx1ZSwgc3RhdGUpOworICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIEVTQ0FQRV9CWVRFLCBzdGF0ZSk7CisgICAgICAgICAgICBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIChieXRlKWxlbmd0aCwgc3RhdGUpOworICAgICAgICAgICAgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCB2YWx1ZSwgc3RhdGUpOyAvLyBEb24ndCBuZWVkIHRvIGVzY2FwZSB0aGlzIHZhbHVlCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBieXRlIHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIsIHBhY2tpbmcgdHdvIGJ5dGVzIGludG8gZWFjaAorICAgICAqIGNoYXJhY3Rlci4gIFRoZSBzdGF0ZSBwYXJhbWV0ZXIgbWFpbnRhaW5zIGludGVybWVkaWFyeSBkYXRhIGJldHdlZW4KKyAgICAgKiBjYWxscy4KKyAgICAgKiBAcGFyYW0gc3RhdGUgQSB0d28tZWxlbWVudCBhcnJheSwgd2l0aCBzdGF0ZVswXSA9PSAwIGlmIHRoaXMgaXMgdGhlCisgICAgICogZmlyc3QgYnl0ZSBvZiBhIHBhaXIsIG9yIHN0YXRlWzBdICE9IDAgaWYgdGhpcyBpcyB0aGUgc2Vjb25kIGJ5dGUKKyAgICAgKiBvZiBhIHBhaXIsIGluIHdoaWNoIGNhc2Ugc3RhdGVbMV0gaXMgdGhlIGZpcnN0IGJ5dGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBhcHBlbmRFbmNvZGVkQnl0ZShTdHJpbmdCdWZmZXIgYnVmZmVyLCBieXRlIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIHN0YXRlKSB7CisgICAgICAgIGlmIChzdGF0ZVswXSAhPSAwKSB7CisgICAgICAgICAgICBjaGFyIGMgPSAoY2hhcikgKChzdGF0ZVsxXSA8PCA4KSB8ICgoKGludCkgdmFsdWUpICYgMHhGRikpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgICAgIHN0YXRlWzBdID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHN0YXRlWzBdID0gMTsKKyAgICAgICAgICAgIHN0YXRlWzFdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBhcnJheSBvZiBpbnRzIGZyb20gYSBydW4tbGVuZ3RoIGVuY29kZWQgc3RyaW5nLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgaW50W10gUkxFU3RyaW5nVG9JbnRBcnJheShTdHJpbmcgcykgeworICAgICAgICBpbnQgbGVuZ3RoID0gZ2V0SW50KHMsIDApOworICAgICAgICBpbnRbXSBhcnJheSA9IG5ldyBpbnRbbGVuZ3RoXTsKKyAgICAgICAgaW50IGFpID0gMCwgaSA9IDE7CisKKyAgICAgICAgaW50IG1heEkgPSBzLmxlbmd0aCgpIC8gMjsKKyAgICAgICAgd2hpbGUgKGFpIDwgbGVuZ3RoICYmIGkgPCBtYXhJKSB7CisgICAgICAgICAgICBpbnQgYyA9IGdldEludChzLCBpKyspOworCisgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBjID0gZ2V0SW50KHMsIGkrKyk7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gYzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgcnVuTGVuZ3RoID0gYzsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJ1blZhbHVlID0gZ2V0SW50KHMsIGkrKyk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxydW5MZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBydW5WYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhaSAhPSBsZW5ndGggfHwgaSAhPSBtYXhJKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJCYWQgcnVuLWxlbmd0aCBlbmNvZGVkIGludCBhcnJheSIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKyAgICBzdGF0aWMgZmluYWwgaW50IGdldEludChTdHJpbmcgcywgaW50IGkpIHsKKyAgICAgICAgcmV0dXJuICgoKGludCkgcy5jaGFyQXQoMippKSkgPDwgMTYpIHwgKGludCkgcy5jaGFyQXQoMippKzEpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBhcnJheSBvZiBzaG9ydHMgZnJvbSBhIHJ1bi1sZW5ndGggZW5jb2RlZCBzdHJpbmcuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgc2hvcnRbXSBSTEVTdHJpbmdUb1Nob3J0QXJyYXkoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbmd0aCA9ICgoKGludCkgcy5jaGFyQXQoMCkpIDw8IDE2KSB8ICgoaW50KSBzLmNoYXJBdCgxKSk7CisgICAgICAgIHNob3J0W10gYXJyYXkgPSBuZXcgc2hvcnRbbGVuZ3RoXTsKKyAgICAgICAgaW50IGFpID0gMDsKKyAgICAgICAgZm9yIChpbnQgaT0yOyBpPHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSAoc2hvcnQpIGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJ1bkxlbmd0aCA9IChpbnQpIGM7CisgICAgICAgICAgICAgICAgICAgIHNob3J0IHJ1blZhbHVlID0gKHNob3J0KSBzLmNoYXJBdCgrK2kpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8cnVuTGVuZ3RoOyArK2opIGFycmF5W2FpKytdID0gcnVuVmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSAoc2hvcnQpIGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWkgIT0gbGVuZ3RoKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQmFkIHJ1bi1sZW5ndGggZW5jb2RlZCBzaG9ydCBhcnJheSIpOworCisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gYXJyYXkgb2Ygc2hvcnRzIGZyb20gYSBydW4tbGVuZ3RoIGVuY29kZWQgc3RyaW5nLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgY2hhcltdIFJMRVN0cmluZ1RvQ2hhckFycmF5KFN0cmluZyBzKSB7CisgICAgICAgIGludCBsZW5ndGggPSAoKChpbnQpIHMuY2hhckF0KDApKSA8PCAxNikgfCAoKGludCkgcy5jaGFyQXQoMSkpOworICAgICAgICBjaGFyW10gYXJyYXkgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICBpbnQgYWkgPSAwOworICAgICAgICBmb3IgKGludCBpPTI7IGk8cy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdCgrK2kpOworICAgICAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJ1bkxlbmd0aCA9IChpbnQpIGM7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgcnVuVmFsdWUgPSBzLmNoYXJBdCgrK2kpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8cnVuTGVuZ3RoOyArK2opIGFycmF5W2FpKytdID0gcnVuVmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGFpICE9IGxlbmd0aCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkJhZCBydW4tbGVuZ3RoIGVuY29kZWQgc2hvcnQgYXJyYXkiKTsKKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIGFycmF5IG9mIGJ5dGVzIGZyb20gYSBydW4tbGVuZ3RoIGVuY29kZWQgc3RyaW5nLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgYnl0ZVtdIFJMRVN0cmluZ1RvQnl0ZUFycmF5KFN0cmluZyBzKSB7CisgICAgICAgIGludCBsZW5ndGggPSAoKChpbnQpIHMuY2hhckF0KDApKSA8PCAxNikgfCAoKGludCkgcy5jaGFyQXQoMSkpOworICAgICAgICBieXRlW10gYXJyYXkgPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgICAgICBib29sZWFuIG5leHRDaGFyID0gdHJ1ZTsKKyAgICAgICAgY2hhciBjID0gMDsKKyAgICAgICAgaW50IG5vZGUgPSAwOworICAgICAgICBpbnQgcnVuTGVuZ3RoID0gMDsKKyAgICAgICAgaW50IGkgPSAyOworICAgICAgICBmb3IgKGludCBhaT0wOyBhaTxsZW5ndGg7ICkgeworICAgICAgICAgICAgLy8gVGhpcyBwYXJ0IG9mIHRoZSBsb29wIHBsYWNlcyB0aGUgbmV4dCBieXRlIGludG8gdGhlIGxvY2FsCisgICAgICAgICAgICAvLyB2YXJpYWJsZSAnYicgZWFjaCB0aW1lIHRocm91Z2ggdGhlIGxvb3AuICBJdCBrZWVwcyB0aGUKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgY2hhcmFjdGVyIGluICdjJyBhbmQgdXNlcyB0aGUgYm9vbGVhbiAnbmV4dENoYXInCisgICAgICAgICAgICAvLyB0byBzZWUgaWYgd2UndmUgdGFrZW4gYm90aCBieXRlcyBvdXQgb2YgJ2MnIHlldC4KKyAgICAgICAgICAgIGJ5dGUgYjsKKyAgICAgICAgICAgIGlmIChuZXh0Q2hhcikgeworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgICAgIGIgPSAoYnl0ZSkgKGMgPj4gOCk7CisgICAgICAgICAgICAgICAgbmV4dENoYXIgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGIgPSAoYnl0ZSkgKGMgJiAweEZGKTsKKyAgICAgICAgICAgICAgICBuZXh0Q2hhciA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFRoaXMgcGFydCBvZiB0aGUgbG9vcCBpcyBhIHRpbnkgc3RhdGUgbWFjaGluZSB3aGljaCBoYW5kbGVzCisgICAgICAgICAgICAvLyB0aGUgcGFyc2luZyBvZiB0aGUgcnVuLWxlbmd0aCBlbmNvZGluZy4gIFRoaXMgd291bGQgYmUgc2ltcGxlcgorICAgICAgICAgICAgLy8gaWYgd2UgY291bGQgbG9vayBhaGVhZCwgYnV0IHdlIGNhbid0LCBzbyB3ZSB1c2UgJ25vZGUnIHRvCisgICAgICAgICAgICAvLyBtb3ZlIGJldHdlZW4gdGhyZWUgbm9kZXMgaW4gdGhlIHN0YXRlIG1hY2hpbmUuCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAvLyBOb3JtYWwgaWRsZSBub2RlCisgICAgICAgICAgICAgICAgaWYgKGIgPT0gRVNDQVBFX0JZVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZSA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IGI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgc2VlbiBvbmUgRVNDQVBFX0JZVEU7IHdlIGV4cGVjdCBlaXRoZXIgYSBzZWNvbmQKKyAgICAgICAgICAgICAgICAvLyBvbmUsIG9yIGEgcnVuIGxlbmd0aCBhbmQgdmFsdWUuCisgICAgICAgICAgICAgICAgaWYgKGIgPT0gRVNDQVBFX0JZVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBFU0NBUEVfQllURTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBydW5MZW5ndGggPSBiOworICAgICAgICAgICAgICAgICAgICAvLyBJbnRlcnByZXQgc2lnbmVkIGJ5dGUgYXMgdW5zaWduZWQKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bkxlbmd0aCA8IDApIHJ1bkxlbmd0aCArPSAweDEwMDsKKyAgICAgICAgICAgICAgICAgICAgbm9kZSA9IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgc2VlbiBhbiBFU0NBUEVfQllURSBhbmQgbGVuZ3RoIGJ5dGUuICBXZSBpbnRlcnByZXQKKyAgICAgICAgICAgICAgICAvLyB0aGUgbmV4dCBieXRlIGFzIHRoZSB2YWx1ZSB0byBiZSByZXBlYXRlZC4KKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8cnVuTGVuZ3RoOyArK2opIGFycmF5W2FpKytdID0gYjsKKyAgICAgICAgICAgICAgICBub2RlID0gMDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChub2RlICE9IDApCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJCYWQgcnVuLWxlbmd0aCBlbmNvZGVkIGJ5dGUgYXJyYXkiKTsKKworICAgICAgICBpZiAoaSAhPSBzLmxlbmd0aCgpKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiRXhjZXNzIGRhdGEgaW4gUkxFIGJ5dGUgYXJyYXkgc3RyaW5nIik7CisKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIExJTkVfU0VQQVJBVE9SID0gU3lzdGVtLmdldFByb3BlcnR5KCJsaW5lLnNlcGFyYXRvciIpOworCisgICAgLyoqCisgICAgICogRm9ybWF0IGEgU3RyaW5nIGZvciByZXByZXNlbnRhdGlvbiBpbiBhIHNvdXJjZSBmaWxlLiAgVGhpcyBpbmNsdWRlcworICAgICAqIGJyZWFraW5nIGl0IGludG8gbGluZXMgYW5kIGVzY2FwaW5nIGNoYXJhY3RlcnMgdXNpbmcgb2N0YWwgbm90YXRpb24KKyAgICAgKiB3aGVuIG5lY2Vzc2FyeSAoY29udHJvbCBjaGFyYWN0ZXJzIGFuZCBkb3VibGUgcXVvdGVzKS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXRGb3JTb3VyY2UoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBpZiAoaSA+IDApIGJ1ZmZlci5hcHBlbmQoJysnKS5hcHBlbmQoTElORV9TRVBBUkFUT1IpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiICAgICAgICBcIiIpOworICAgICAgICAgICAgaW50IGNvdW50ID0gMTE7CisgICAgICAgICAgICB3aGlsZSAoaTxzLmxlbmd0aCgpICYmIGNvdW50PDgwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8ICdcdTAwMjAnIHx8IGMgPT0gJyInIHx8IGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnXHQnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXHQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnXHInKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXHIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnQgY29udHJvbCBjaGFyYWN0ZXJzLCBiYWNrc2xhc2ggYW5kIGRvdWJsZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNpbmcgb2N0YWwgbm90YXRpb247IG90aGVyd2lzZSB0aGUgc3RyaW5nIHdlIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdvbid0IGNvbXBpbGUsIHNpbmNlIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlcyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3NlZCBiZWZvcmUgdG9rZW5pemF0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDcwMCkgPj4gNl0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwNzApID4+IDNdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDAwNyldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA8PSAnXHUwMDdFJykgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHhGMDAwKSA+PiAxMl0pOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4MEYwMCkgPj4gOF0pOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4MDBGMCkgPj4gNF0pOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4MDAwRildKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gNjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCciJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyW10gSEVYX0RJR0lUID0geycwJywnMScsJzInLCczJywnNCcsJzUnLCc2JywnNycsCisgICAgICAgICAgICAgICAgICAgICAnOCcsJzknLCdBJywnQicsJ0MnLCdEJywnRScsJ0YnfTsKKworICAgIC8qKgorICAgICAqIEZvcm1hdCBhIFN0cmluZyBmb3IgcmVwcmVzZW50YXRpb24gaW4gYSBzb3VyY2UgZmlsZS4gIExpa2UKKyAgICAgKiBmb3JtYXRGb3JTb3VyY2UgYnV0IGRvZXMgbm90IGRvIGxpbmUgYnJlYWtpbmcuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0MUZvclNvdXJjZShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICBpZiAoYyA8ICdcdTAwMjAnIHx8IGMgPT0gJyInIHx8IGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICdcdCcpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFx0Iik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICdccicpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFxyIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVwcmVzZW50IGNvbnRyb2wgY2hhcmFjdGVycywgYmFja3NsYXNoIGFuZCBkb3VibGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgLy8gdXNpbmcgb2N0YWwgbm90YXRpb247IG90aGVyd2lzZSB0aGUgc3RyaW5nIHdlIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgLy8gd29uJ3QgY29tcGlsZSwgc2luY2UgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2VzIGFyZQorICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzZWQgYmVmb3JlIHRva2VuaXphdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwNzAwKSA+PiA2XSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDcwKSA+PiAzXSk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDAwNyldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjIDw9ICdcdTAwN0UnKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHhGMDAwKSA+PiAxMl0pOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHgwRjAwKSA+PiA4XSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweDAwRjApID4+IDRdKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4MDAwRildKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBidWZmZXIuYXBwZW5kKCciJyk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGNoYXJhY3RlcnMgb3V0c2lkZSB0aGUgcmFuZ2UgVSswMDIwIHRvIFUrMDA3RiB0bworICAgICAqIFVuaWNvZGUgZXNjYXBlcywgYW5kIGNvbnZlcnQgYmFja3NsYXNoIHRvIGEgZG91YmxlIGJhY2tzbGFzaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBlc2NhcGUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIGlmIChjID49ICcgJyAmJiBjIDw9IDB4MDA3RikgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXFxcXCIpOyAvLyBUaGF0IGlzLCAiXFwiCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gZm91ciA9IGMgPD0gMHhGRkZGOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm91ciA/ICJcXHUiIDogIlxcVSIpOworICAgICAgICAgICAgICAgIGhleChjLCBmb3VyID8gNCA6IDgsIGJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qIFRoaXMgbWFwIG11c3QgYmUgaW4gQVNDRU5ESU5HIE9SREVSIE9GIFRIRSBFU0NBUEUgQ09ERSAqLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGNoYXJbXSBVTkVTQ0FQRV9NQVAgPSB7CisgICAgICAgIC8qIiAgIDB4MjIsIDB4MjIgKi8KKyAgICAgICAgLyonICAgMHgyNywgMHgyNyAqLworICAgICAgICAvKj8gICAweDNGLCAweDNGICovCisgICAgICAgIC8qXCAgIDB4NUMsIDB4NUMgKi8KKyAgICAgICAgLyphKi8gMHg2MSwgMHgwNywKKyAgICAgICAgLypiKi8gMHg2MiwgMHgwOCwKKyAgICAgICAgLyplKi8gMHg2NSwgMHgxYiwKKyAgICAgICAgLypmKi8gMHg2NiwgMHgwYywKKyAgICAgICAgLypuKi8gMHg2RSwgMHgwYSwKKyAgICAgICAgLypyKi8gMHg3MiwgMHgwZCwKKyAgICAgICAgLyp0Ki8gMHg3NCwgMHgwOSwKKyAgICAgICAgLyp2Ki8gMHg3NiwgMHgwYgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFuIGVzY2FwZSB0byBhIDMyLWJpdCBjb2RlIHBvaW50IHZhbHVlLiAgV2UgYXR0ZW1wdAorICAgICAqIHRvIHBhcmFsbGVsIHRoZSBpY3U0YyB1bmVzY2FwZUF0KCkgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIG9mZnNldDE2IGFuIGFycmF5IGNvbnRhaW5pbmcgb2Zmc2V0IHRvIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiA8ZW0+YWZ0ZXI8L2VtPiB0aGUgYmFja3NsYXNoLiAgVXBvbiByZXR1cm4gb2Zmc2V0MTZbMF0gd2lsbAorICAgICAqIGJlIHVwZGF0ZWQgdG8gcG9pbnQgYWZ0ZXIgdGhlIGVzY2FwZSBzZXF1ZW5jZS4KKyAgICAgKiBAcmV0dXJuIGNoYXJhY3RlciB2YWx1ZSBmcm9tIDAgdG8gMTBGRkZGLCBvciAtMSBvbiBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB1bmVzY2FwZUF0KFN0cmluZyBzLCBpbnRbXSBvZmZzZXQxNikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgaW50IG1pbkRpZyA9IDA7CisgICAgICAgIGludCBtYXhEaWcgPSAwOworICAgICAgICBpbnQgYml0c1BlckRpZ2l0ID0gNDsKKyAgICAgICAgaW50IGRpZzsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJvb2xlYW4gYnJhY2VzID0gZmFsc2U7CisKKyAgICAgICAgLyogQ2hlY2sgdGhhdCBvZmZzZXQgaXMgaW4gcmFuZ2UgKi8KKyAgICAgICAgaW50IG9mZnNldCA9IG9mZnNldDE2WzBdOworICAgICAgICBpbnQgbGVuZ3RoID0gcy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ID49IGxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyogRmV0Y2ggZmlyc3QgVUNoYXIgYWZ0ZXIgJ1xcJyAqLworICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgIG9mZnNldCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisKKyAgICAgICAgLyogQ29udmVydCBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgZXNjYXBlcyAqLworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAndSc6CisgICAgICAgICAgICBtaW5EaWcgPSBtYXhEaWcgPSA0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ1UnOgorICAgICAgICAgICAgbWluRGlnID0gbWF4RGlnID0gODsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd4JzoKKyAgICAgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgICAgICBpZiAob2Zmc2V0IDwgbGVuZ3RoICYmIFVURjE2LmNoYXJBdChzLCBvZmZzZXQpID09IDB4N0IgLyp7Ki8pIHsKKyAgICAgICAgICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgICAgICBicmFjZXMgPSB0cnVlOworICAgICAgICAgICAgICAgIG1heERpZyA9IDg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1heERpZyA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGRpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgOCk7CisgICAgICAgICAgICBpZiAoZGlnID49IDApIHsKKyAgICAgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgICAgIG1heERpZyA9IDM7CisgICAgICAgICAgICAgICAgbiA9IDE7IC8qIEFscmVhZHkgaGF2ZSBmaXJzdCBvY3RhbCBkaWdpdCAqLworICAgICAgICAgICAgICAgIGJpdHNQZXJEaWdpdCA9IDM7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGlnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pbkRpZyAhPSAwKSB7CisgICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoICYmIG4gPCBtYXhEaWcpIHsKKyAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgZGlnID0gVUNoYXJhY3Rlci5kaWdpdChjLCAoYml0c1BlckRpZ2l0ID09IDMpID8gOCA6IDE2KTsKKyAgICAgICAgICAgICAgICBpZiAoZGlnIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCA8PCBiaXRzUGVyRGlnaXQpIHwgZGlnOworICAgICAgICAgICAgICAgIG9mZnNldCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG4gPCBtaW5EaWcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnJhY2VzKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgIT0gMHg3RCAvKn0qLykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrb2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA8IDAgfHwgcmVzdWx0ID49IDB4MTEwMDAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gSWYgYW4gZXNjYXBlIHNlcXVlbmNlIHNwZWNpZmllcyBhIGxlYWQgc3Vycm9nYXRlLCBzZWUKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgdHJhaWwgc3Vycm9nYXRlIGFmdGVyIGl0LCBlaXRoZXIgYXMgYW4KKyAgICAgICAgICAgIC8vIGVzY2FwZSBvciBhcyBhIGxpdGVyYWwuICBJZiBzbywgam9pbiB0aGVtIHVwIGludG8gYQorICAgICAgICAgICAgLy8gc3VwcGxlbWVudGFyeS4KKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCBsZW5ndGggJiYKKyAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpIHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgYWhlYWQgPSBvZmZzZXQrMTsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQob2Zmc2V0KTsgLy8gW3NpY10gZ2V0IDE2LWJpdCBjb2RlIHVuaXQKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnICYmIGFoZWFkIDwgbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBvW10gPSBuZXcgaW50W10geyBhaGVhZCB9OworICAgICAgICAgICAgICAgICAgICBjID0gdW5lc2NhcGVBdChzLCBvKTsKKyAgICAgICAgICAgICAgICAgICAgYWhlYWQgPSBvWzBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikgYykpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gYWhlYWQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpIHJlc3VsdCwgKGNoYXIpIGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbnZlcnQgQy1zdHlsZSBlc2NhcGVzIGluIHRhYmxlICovCisgICAgICAgIGZvciAoaT0wOyBpPFVORVNDQVBFX01BUC5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGlmIChjID09IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgICAgIHJldHVybiBVTkVTQ0FQRV9NQVBbaSsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA8IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogTWFwIFxjWCB0byBjb250cm9sLVg6IFggJiAweDFGICovCisgICAgICAgIGlmIChjID09ICdjJyAmJiBvZmZzZXQgPCBsZW5ndGgpIHsKKyAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0ICsgVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgcmV0dXJuIDB4MUYgJiBjOworICAgICAgICB9CisKKyAgICAgICAgLyogSWYgbm8gc3BlY2lhbCBmb3JtcyBhcmUgcmVjb2duaXplZCwgdGhlbiBjb25zaWRlcgorICAgICAgICAgKiB0aGUgYmFja3NsYXNoIHRvIGdlbmVyaWNhbGx5IGVzY2FwZSB0aGUgbmV4dCBjaGFyYWN0ZXIuICovCisgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFsbCBlc2NhcGVzIGluIGEgZ2l2ZW4gc3RyaW5nIHVzaW5nIHVuZXNjYXBlQXQoKS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBpbnZhbGlkIGVzY2FwZSBpcworICAgICAqIHNlZW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdW5lc2NhcGUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gcG9zID0gbmV3IGludFsxXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSBpOworICAgICAgICAgICAgICAgIGludCBlID0gdW5lc2NhcGVBdChzLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnN1YnN0cmluZyhpLTEsIE1hdGgubWluKGkrOCwgcy5sZW5ndGgoKSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgZSk7CisgICAgICAgICAgICAgICAgaSA9IHBvc1swXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhbGwgZXNjYXBlcyBpbiBhIGdpdmVuIHN0cmluZyB1c2luZyB1bmVzY2FwZUF0KCkuCisgICAgICogTGVhdmUgaW52YWxpZCBlc2NhcGUgc2VxdWVuY2VzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdW5lc2NhcGVMZW5pZW50bHkoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gcG9zID0gbmV3IGludFsxXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSBpOworICAgICAgICAgICAgICAgIGludCBlID0gdW5lc2NhcGVBdChzLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGUpOworICAgICAgICAgICAgICAgICAgICBpID0gcG9zWzBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGNoYXIgdG8gNCBoZXggdXBwZXJjYXNlIGRpZ2l0cy4gIEUuZy4sIGhleCgnYScpID0+CisgICAgICogIjAwNDEiLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhciBjaCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIGhleChjaCwgdGVtcCkudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNvbW1hLXNlcGFyYXRlZCBncm91cHMgb2YgNCBoZXggdXBwZXJjYXNlCisgICAgICogZGlnaXRzLiAgRS5nLiwgaGV4KCdhYicpID0+ICIwMDQxLDAwNDIiLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJldHVybiBoZXgocywgdGVtcCkudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNvbW1hLXNlcGFyYXRlZCBncm91cHMgb2YgNCBoZXggdXBwZXJjYXNlCisgICAgICogZGlnaXRzLiAgRS5nLiwgaGV4KCdhYicpID0+ICIwMDQxLDAwNDIiLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nQnVmZmVyIHMpIHsKKyAgICAgICAgcmV0dXJuIGhleChzLnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBjaGFyIHRvIDQgaGV4IHVwcGVyY2FzZSBkaWdpdHMuICBFLmcuLCBoZXgoJ2EnKSA9PgorICAgICAqICIwMDQxIi4gIEFwcGVuZCB0aGUgb3V0cHV0IHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGhleChjaGFyIGNoLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgIHJldHVybiBhcHBlbmROdW1iZXIob3V0cHV0LCBjaCwgMTYsIDQpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBpbnRlZ2VyIHRvIHNpemUgd2lkdGggaGV4IHVwcGVyY2FzZSBkaWdpdHMuCisgICAgICogRS5nLiwgaGV4KCdhJywgNCwgc3RyKSA9PiAiMDA0MSIuCisgICAgICogQXBwZW5kIHRoZSBvdXRwdXQgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4KKyAgICAgKiBJZiB3aWR0aCBpcyB0b28gc21hbGwgdG8gZml0LCBub3RoaW5nIHdpbGwgYmUgYXBwZW5kZWQgdG8gb3V0cHV0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGhleChpbnQgY2gsIGludCB3aWR0aCwgU3RyaW5nQnVmZmVyIG91dHB1dCkgeworICAgICAgICByZXR1cm4gYXBwZW5kTnVtYmVyKG91dHB1dCwgY2gsIDE2LCB3aWR0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGludGVnZXIgdG8gc2l6ZSB3aWR0aCAobWluaW11bSkgaGV4IHVwcGVyY2FzZSBkaWdpdHMuCisgICAgICogRS5nLiwgaGV4KCdhJywgNCwgc3RyKSA9PiAiMDA0MSIuICBJZiB0aGUgaW50ZWdlciByZXF1aXJlcyBtb3JlCisgICAgICogdGhhbiB3aWR0aCBkaWdpdHMsIG1vcmUgd2lsbCBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChpbnQgY2gsIGludCB3aWR0aCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICByZXR1cm4gYXBwZW5kTnVtYmVyKGJ1ZiwgY2gsIDE2LCB3aWR0aCkudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLyoqCisgICAgICogU3VwcGxpZXMgYSB6ZXJvLXBhZGRlZCBoZXggcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciAod2l0aG91dCAweCkKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBoZXgobG9uZyBpLCBpbnQgcGxhY2VzKSB7CisgICAgICAgIGlmIChpID09IExvbmcuTUlOX1ZBTFVFKSByZXR1cm4gIi04MDAwMDAwMDAwMDAwMDAwIjsKKyAgICAgICAgYm9vbGVhbiBuZWdhdGl2ZSA9IGkgPCAwOworICAgICAgICBpZiAobmVnYXRpdmUpIHsKKyAgICAgICAgICAgIGkgPSAtaTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gTG9uZy50b1N0cmluZyhpLCAxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA8IHBsYWNlcykgeworICAgICAgICAgICAgcmVzdWx0ID0gIjAwMDAwMDAwMDAwMDAwMDAiLnN1YnN0cmluZyhyZXN1bHQubGVuZ3RoKCkscGxhY2VzKSArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBpZiAobmVnYXRpdmUpIHsKKyAgICAgICAgICAgIHJldHVybiAnLScgKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGxvbmcgY2gpIHsKKyAgICAgICAgcmV0dXJuIGhleChjaCw0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHN0cmluZyB0byBjb21tYS1zZXBhcmF0ZWQgZ3JvdXBzIG9mIDQgaGV4IHVwcGVyY2FzZQorICAgICAqIGRpZ2l0cy4gIEUuZy4sIGhleCgnYWInKSA9PiAiMDA0MSwwMDQyIi4gIEFwcGVuZCB0aGUgb3V0cHV0CisgICAgICogdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgaGV4KFN0cmluZyBzLCBTdHJpbmdCdWZmZXIgcmVzdWx0KSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHQuYXBwZW5kKCcsJyk7CisgICAgICAgICAgICBoZXgocy5jaGFyQXQoaSksIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBTcGxpdCBhIHN0cmluZyBpbnRvIHBpZWNlcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gZGl2aWRlciBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gcyB0aGUgc3RyaW5nIHRvIHNwbGl0CisgICAgICogQHBhcmFtIGRpdmlkZXIgdGhlIGNoYXJhY3RlciBvbiB3aGljaCB0byBzcGxpdC4gIE9jY3VycmVuY2VzIG9mCisgICAgICogdGhpcyBjaGFyYWN0ZXIgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0CisgICAgICogQHBhcmFtIG91dHB1dCBhbiBhcnJheSB0byByZWNlaXZlIHRoZSBzdWJzdHJpbmdzIGJldHdlZW4KKyAgICAgKiBpbnN0YW5jZXMgb2YgZGl2aWRlci4gIEl0IG11c3QgYmUgbGFyZ2UgZW5vdWdoIG9uIGVudHJ5IHRvCisgICAgICogYWNjb21vZGF0ZSBhbGwgb3V0cHV0LiAgQWRqYWNlbnQgaW5zdGFuY2VzIG9mIHRoZSBkaXZpZGVyCisgICAgICogY2hhcmFjdGVyIHdpbGwgcGxhY2UgZW1wdHkgc3RyaW5ncyBpbnRvIG91dHB1dC4gIEJlZm9yZQorICAgICAqIHJldHVybmluZywgb3V0cHV0IGlzIHBhZGRlZCBvdXQgd2l0aCBlbXB0eSBzdHJpbmdzLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc3BsaXQoU3RyaW5nIHMsIGNoYXIgZGl2aWRlciwgU3RyaW5nW10gb3V0cHV0KSB7CisgICAgICAgIGludCBsYXN0ID0gMDsKKyAgICAgICAgaW50IGN1cnJlbnQgPSAwOworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHMuY2hhckF0KGkpID09IGRpdmlkZXIpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXRbY3VycmVudCsrXSA9IHMuc3Vic3RyaW5nKGxhc3QsaSk7CisgICAgICAgICAgICAgICAgbGFzdCA9IGkrMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvdXRwdXRbY3VycmVudCsrXSA9IHMuc3Vic3RyaW5nKGxhc3QsaSk7CisgICAgICAgIHdoaWxlIChjdXJyZW50IDwgb3V0cHV0Lmxlbmd0aCkgeworICAgICAgICAgICAgb3V0cHV0W2N1cnJlbnQrK10gPSAiIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBTcGxpdCBhIHN0cmluZyBpbnRvIHBpZWNlcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gZGl2aWRlciBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gcyB0aGUgc3RyaW5nIHRvIHNwbGl0CisgICAgICogQHBhcmFtIGRpdmlkZXIgdGhlIGNoYXJhY3RlciBvbiB3aGljaCB0byBzcGxpdC4gIE9jY3VycmVuY2VzIG9mCisgICAgICogdGhpcyBjaGFyYWN0ZXIgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0CisgICAgICogQHJldHVybiBvdXRwdXQgYW4gYXJyYXkgdG8gcmVjZWl2ZSB0aGUgc3Vic3RyaW5ncyBiZXR3ZWVuCisgICAgICogaW5zdGFuY2VzIG9mIGRpdmlkZXIuIEFkamFjZW50IGluc3RhbmNlcyBvZiB0aGUgZGl2aWRlcgorICAgICAqIGNoYXJhY3RlciB3aWxsIHBsYWNlIGVtcHR5IHN0cmluZ3MgaW50byBvdXRwdXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBzcGxpdChTdHJpbmcgcywgY2hhciBkaXZpZGVyKSB7CisgICAgICAgIGludCBsYXN0ID0gMDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIEFycmF5TGlzdCBvdXRwdXQgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzLmNoYXJBdChpKSA9PSBkaXZpZGVyKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LmFkZChzLnN1YnN0cmluZyhsYXN0LGkpKTsKKyAgICAgICAgICAgICAgICBsYXN0ID0gaSsxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG91dHB1dC5hZGQoIHMuc3Vic3RyaW5nKGxhc3QsaSkpOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKSBvdXRwdXQudG9BcnJheShuZXcgU3RyaW5nW291dHB1dC5zaXplKCldKTsKKyAgICB9CisgICAgCisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgLyoqCisgICAgICogTG9vayB1cCBhIGdpdmVuIHN0cmluZyBpbiBhIHN0cmluZyBhcnJheS4gIFJldHVybnMgdGhlIGluZGV4IGF0CisgICAgICogd2hpY2ggdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIHN0cmluZyB3YXMgZm91bmQgaW4gdGhlCisgICAgICogYXJyYXksIG9yIC0xIGlmIGl0IHdhcyBub3QgZm91bmQuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBhcnJheSBvZiB6ZXJvIG9yIG1vcmUgc3RyaW5ncyBpbiB3aGljaCB0bworICAgICAqIGxvb2sgZm9yIHNvdXJjZQorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRhcmdldCBhdCB3aGljaCBzb3VyY2UgZmlyc3Qgb2NjdXJzLCBvciAtMQorICAgICAqIGlmIG5vdCBmb3VuZAorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIGludCBsb29rdXAoU3RyaW5nIHNvdXJjZSwgU3RyaW5nW10gdGFyZ2V0KSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFyZ2V0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc291cmNlLmVxdWFscyh0YXJnZXRbaV0pKSByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogU2tpcCBvdmVyIGEgc2VxdWVuY2Ugb2YgemVybyBvciBtb3JlIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMKKyAgICAgKiBhdCBwb3MuICBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBub24td2hpdGUtc3BhY2UgY2hhcmFjdGVyCisgICAgICogYXQgb3IgYWZ0ZXIgcG9zLCBvciBzdHIubGVuZ3RoKCksIGlmIHRoZXJlIGlzIG5vbmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgc2tpcFdoaXRlc3BhY2UoU3RyaW5nIHN0ciwgaW50IHBvcykgeworICAgICAgICB3aGlsZSAocG9zIDwgc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChzdHIsIHBvcyk7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcCBvdmVyIGEgc2VxdWVuY2Ugb2YgemVybyBvciBtb3JlIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMKKyAgICAgKiBhdCBwb3NbMF0sIGFkdmFuY2luZyBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2tpcFdoaXRlc3BhY2UoU3RyaW5nIHN0ciwgaW50W10gcG9zKSB7CisgICAgICAgIHBvc1swXSA9IHNraXBXaGl0ZXNwYWNlKHN0ciwgcG9zWzBdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYWxsIHJ1bGUgd2hpdGUgc3BhY2UgZnJvbSBhIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBkZWxldGVSdWxlV2hpdGVTcGFjZShTdHJpbmcgc3RyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzdHIubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHN0ciwgaSk7CisgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBjaCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgc2luZ2xlIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciAnY2gnLCBvcHRpb25hbGx5CisgICAgICogcHJlY2VkZWQgYnkgd2hpdGVzcGFjZS4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgcG9zWzBdIGlzIHRoZQorICAgICAqIG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGJlIHBhcnNlZC4gIE9uIG91dHB1dCwgcG9zWzBdCisgICAgICogaXMgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IHBhcnNlZCBjaGFyYWN0ZXIuICBJZiB0aGUgcGFyc2UKKyAgICAgKiBmYWlscywgcG9zWzBdIHdpbGwgYmUgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBjaCB0aGUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIHRvIGJlIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgJ2NoJyBpcyBzZWVuIHByZWNlZGVkIGJ5IHplcm8gb3IgbW9yZQorICAgICAqIHdoaXRlc3BhY2UgY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcGFyc2VDaGFyKFN0cmluZyBpZCwgaW50W10gcG9zLCBjaGFyIGNoKSB7CisgICAgICAgIGludCBzdGFydCA9IHBvc1swXTsKKyAgICAgICAgc2tpcFdoaXRlc3BhY2UoaWQsIHBvcyk7CisgICAgICAgIGlmIChwb3NbMF0gPT0gaWQubGVuZ3RoKCkgfHwKKyAgICAgICAgICAgIGlkLmNoYXJBdChwb3NbMF0pICE9IGNoKSB7CisgICAgICAgICAgICBwb3NbMF0gPSBzdGFydDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICArK3Bvc1swXTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBwYXR0ZXJuIHN0cmluZyBzdGFydGluZyBhdCBvZmZzZXQgcG9zLiAgS2V5d29yZHMgYXJlCisgICAgICogbWF0Y2hlZCBjYXNlLWluc2Vuc2l0aXZlbHkuICBTcGFjZXMgbWF5IGJlIHNraXBwZWQgYW5kIG1heSBiZQorICAgICAqIG9wdGlvbmFsIG9yIHJlcXVpcmVkLiAgSW50ZWdlciB2YWx1ZXMgbWF5IGJlIHBhcnNlZCwgYW5kIGlmCisgICAgICogdGhleSBhcmUsIHRoZXkgd2lsbCBiZSByZXR1cm5lZCBpbiB0aGUgZ2l2ZW4gYXJyYXkuICBJZgorICAgICAqIHN1Y2Nlc3NmdWwsIHRoZSBvZmZzZXQgb2YgdGhlIG5leHQgbm9uLXNwYWNlIGNoYXJhY3RlciBpcworICAgICAqIHJldHVybmVkLiAgT24gZmFpbHVyZSwgLTEgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gbXVzdCBvbmx5IGNvbnRhaW4gbG93ZXJjYXNlIGNoYXJhY3RlcnMsIHdoaWNoCisgICAgICogd2lsbCBtYXRjaCB0aGVpciB1cHBlcmNhc2UgZXF1aXZhbGVudHMgYXMgd2VsbC4gIEEgc3BhY2UKKyAgICAgKiBjaGFyYWN0ZXIgbWF0Y2hlcyBvbmUgb3IgbW9yZSByZXF1aXJlZCBzcGFjZXMuICBBICd+JyBjaGFyYWN0ZXIKKyAgICAgKiBtYXRjaGVzIHplcm8gb3IgbW9yZSBvcHRpb25hbCBzcGFjZXMuICBBICcjJyBjaGFyYWN0ZXIgbWF0Y2hlcworICAgICAqIGFuIGludGVnZXIgYW5kIHN0b3JlcyBpdCBpbiBwYXJzZWRJbnRzLCB3aGljaCB0aGUgY2FsbGVyIG11c3QKKyAgICAgKiBlbnN1cmUgaGFzIGVub3VnaCBjYXBhY2l0eS4KKyAgICAgKiBAcGFyYW0gcGFyc2VkSW50cyBhcnJheSB0byByZWNlaXZlIHBhcnNlZCBpbnRlZ2Vycy4gIENhbGxlcgorICAgICAqIG11c3QgZW5zdXJlIHRoYXQgcGFyc2VkSW50cy5sZW5ndGggaXMgPj0gdGhlIG51bWJlciBvZiAnIycKKyAgICAgKiBzaWducyBpbiAncGF0dGVybicuCisgICAgICogQHJldHVybiB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZCwgb3IgLTEgaWYKKyAgICAgKiB0aGUgcGFyc2UgZmFpbGVkCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VQYXR0ZXJuKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuLCBpbnRbXSBwYXJzZWRJbnRzKSB7CisgICAgICAgIC8vIFRPRE8gVXBkYXRlIHRoaXMgdG8gaGFuZGxlIHN1cnJvZ2F0ZXMKKyAgICAgICAgaW50W10gcCA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBpbnRDb3VudCA9IDA7IC8vIG51bWJlciBvZiBpbnRlZ2VycyBwYXJzZWQKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjcGF0ID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICBzd2l0Y2ggKGNwYXQpIHsKKyAgICAgICAgICAgIGNhc2UgJyAnOgorICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjID0gcnVsZS5jaGFyQXQocG9zKyspOworICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBGQUxMIFRIUk9VR0ggdG8gc2tpcFdoaXRlc3BhY2UKKyAgICAgICAgICAgIGNhc2UgJ34nOgorICAgICAgICAgICAgICAgIHBvcyA9IHNraXBXaGl0ZXNwYWNlKHJ1bGUsIHBvcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICcjJzoKKyAgICAgICAgICAgICAgICBwWzBdID0gcG9zOworICAgICAgICAgICAgICAgIHBhcnNlZEludHNbaW50Q291bnQrK10gPSBwYXJzZUludGVnZXIocnVsZSwgcCwgbGltaXQpOworICAgICAgICAgICAgICAgIGlmIChwWzBdID09IHBvcykgeworICAgICAgICAgICAgICAgICAgICAvLyBTeW50YXggZXJyb3I7IGZhaWxlZCB0byBwYXJzZSBpbnRlZ2VyCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcG9zID0gcFswXTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMgPSAoY2hhcikgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShydWxlLmNoYXJBdChwb3MrKykpOworICAgICAgICAgICAgICAgIGlmIChjICE9IGNwYXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcGF0dGVybiBzdHJpbmcgd2l0aGluIHRoZSBnaXZlbiBSZXBsYWNlYWJsZSBhbmQgYSBwYXJzaW5nCisgICAgICogcGF0dGVybi4gIENoYXJhY3RlcnMgYXJlIG1hdGNoZWQgbGl0ZXJhbGx5IGFuZCBjYXNlLXNlbnNpdGl2ZWx5CisgICAgICogZXhjZXB0IGZvciB0aGUgZm9sbG93aW5nIHNwZWNpYWwgY2hhcmFjdGVyczoKKyAgICAgKgorICAgICAqIH4gIHplcm8gb3IgbW9yZSB1cHJ2X2lzUnVsZVdoaXRlU3BhY2UgY2hhcnMKKyAgICAgKgorICAgICAqIElmIGVuZCBvZiBwYXR0ZXJuIGlzIHJlYWNoZWQgd2l0aCBhbGwgbWF0Y2hlcyBhbG9uZyB0aGUgd2F5LAorICAgICAqIHBvcyBpcyBhZHZhbmNlZCB0byB0aGUgZmlyc3QgdW5wYXJzZWQgaW5kZXggYW5kIHJldHVybmVkLgorICAgICAqIE90aGVyd2lzZSAtMSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gcGF0IHBhdHRlcm4gdGhhdCBjb250cm9scyBwYXJzaW5nCisgICAgICogQHBhcmFtIHRleHQgdGV4dCB0byBiZSBwYXJzZWQsIHN0YXJ0aW5nIGF0IGluZGV4CisgICAgICogQHBhcmFtIGluZGV4IG9mZnNldCB0byBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGFmdGVyIGxhc3QgY2hhcmFjdGVyIHRvIHBhcnNlCisgICAgICogQHJldHVybiBpbmRleCBhZnRlciBsYXN0IHBhcnNlZCBjaGFyYWN0ZXIsIG9yIC0xIG9uIHBhcnNlIGZhaWx1cmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VQYXR0ZXJuKFN0cmluZyBwYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0KSB7CisgICAgICAgIGludCBpcGF0ID0gMDsKKworICAgICAgICAvLyBlbXB0eSBwYXR0ZXJuIG1hdGNoZXMgaW1tZWRpYXRlbHkKKyAgICAgICAgaWYgKGlwYXQgPT0gcGF0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY3BhdCA9IFVURjE2LmNoYXJBdChwYXQsIGlwYXQpOworCisgICAgICAgIHdoaWxlIChpbmRleCA8IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgYyA9IHRleHQuY2hhcjMyQXQoaW5kZXgpOworCisgICAgICAgICAgICAvLyBwYXJzZSBccyoKKyAgICAgICAgICAgIGlmIChjcGF0ID09ICd+JykgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgICAgICBpbmRleCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgrK2lwYXQgPT0gcGF0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7IC8vIHN1Y2Nlc3M7IGMgdW5wYXJzZWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBmYWxsIHRocnU7IHByb2Nlc3MgYyBhZ2FpbiB3aXRoIG5leHQgY3BhdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcGFyc2UgbGl0ZXJhbAorICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSBjcGF0KSB7CisgICAgICAgICAgICAgICAgaW50IG4gPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gbjsKKyAgICAgICAgICAgICAgICBpcGF0ICs9IG47CisgICAgICAgICAgICAgICAgaWYgKGlwYXQgPT0gcGF0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsgLy8gc3VjY2VzczsgYyBwYXJzZWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZmFsbCB0aHJ1OyBnZXQgbmV4dCBjcGF0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG1hdGNoIGZhaWx1cmUgb2YgbGl0ZXJhbAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjcGF0ID0gVVRGMTYuY2hhckF0KHBhdCwgaXBhdCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gLTE7IC8vIHRleHQgZW5kZWQgYmVmb3JlIGVuZCBvZiBwYXQKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbiBpbnRlZ2VyIGF0IHBvcywgZWl0aGVyIG9mIHRoZSBmb3JtIFxkKyBvciBvZiB0aGUgZm9ybQorICAgICAqIDB4WzAtOUEtRmEtZl0rIG9yIDBbMC03XSssIHRoYXQgaXMsIGluIHN0YW5kYXJkIGRlY2ltYWwsIGhleCwKKyAgICAgKiBvciBvY3RhbCBmb3JtYXQuCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHRoZSBmaXJzdAorICAgICAqIGNoYXJhY3RlciB0byBwYXJzZS4gIE9uIG91dHB1dCwgdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgbGFzdAorICAgICAqIHBhcnNlZCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VJbnRlZ2VyKFN0cmluZyBydWxlLCBpbnRbXSBwb3MsIGludCBsaW1pdCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgdmFsdWUgPSAwOworICAgICAgICBpbnQgcCA9IHBvc1swXTsKKyAgICAgICAgaW50IHJhZGl4ID0gMTA7CisKKyAgICAgICAgaWYgKHJ1bGUucmVnaW9uTWF0Y2hlcyh0cnVlLCBwLCAiMHgiLCAwLCAyKSkgeworICAgICAgICAgICAgcCArPSAyOworICAgICAgICAgICAgcmFkaXggPSAxNjsKKyAgICAgICAgfSBlbHNlIGlmIChwIDwgbGltaXQgJiYgcnVsZS5jaGFyQXQocCkgPT0gJzAnKSB7CisgICAgICAgICAgICBwKys7CisgICAgICAgICAgICBjb3VudCA9IDE7CisgICAgICAgICAgICByYWRpeCA9IDg7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAocCA8IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgZCA9IFVDaGFyYWN0ZXIuZGlnaXQocnVsZS5jaGFyQXQocCsrKSwgcmFkaXgpOworICAgICAgICAgICAgaWYgKGQgPCAwKSB7CisgICAgICAgICAgICAgICAgLS1wOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIGludCB2ID0gKHZhbHVlICogcmFkaXgpICsgZDsKKyAgICAgICAgICAgIGlmICh2IDw9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHRvbyBtYW55IGlucHV0IGRpZ2l0cywgYXQgc29tZSBwb2ludAorICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSB3aWxsIGdvIG5lZ2F0aXZlLCBlLmcuLCBpZiB3ZSBoYXZlIHNlZW4KKyAgICAgICAgICAgICAgICAvLyAiMHg4MDAwMDAwIiBhbHJlYWR5IGFuZCB0aGVyZSBpcyBhbm90aGVyICcwJywgd2hlbgorICAgICAgICAgICAgICAgIC8vIHdlIHBhcnNlIHRoZSBuZXh0IDAgdGhlIHZhbHVlIHdpbGwgZ28gbmVnYXRpdmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZSA9IHY7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgcG9zWzBdID0gcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBVbmljb2RlIGlkZW50aWZpZXIgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGF0IHRoZSBnaXZlbgorICAgICAqIHBvc2l0aW9uLiAgUmV0dXJuIHRoZSBpZGVudGlmaWVyLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vCisgICAgICogaWRlbnRpZmllci4KKyAgICAgKiBAcGFyYW0gc3RyIHRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VUFVUIHBhcmFtZXRlci4gIE9uIElOUFVULCBwb3NbMF0gaXMgdGhlCisgICAgICogZmlyc3QgY2hhcmFjdGVyIHRvIGV4YW1pbmUuICBJdCBtdXN0IGJlIGxlc3MgdGhhbiBzdHIubGVuZ3RoKCksCisgICAgICogYW5kIGl0IG11c3Qgbm90IHBvaW50IHRvIGEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIuICBUaGF0IGlzLCBtdXN0CisgICAgICogaGF2ZSBwb3NbMF0gPCBzdHIubGVuZ3RoKCkgYW5kCisgICAgICogIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKFVURjE2LmNoYXJBdChzdHIsIHBvc1swXSkpLiAgT24KKyAgICAgKiBPVVRQVVQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGUgaWRlbnRpZmllciwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyB2YWxpZAorICAgICAqIGlkZW50aWZpZXIgYXQgcG9zWzBdLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHBhcnNlVW5pY29kZUlkZW50aWZpZXIoU3RyaW5nIHN0ciwgaW50W10gcG9zKSB7CisgICAgICAgIC8vIGFzc2VydChwb3NbMF0gPCBzdHIubGVuZ3RoKCkpOworICAgICAgICAvLyBhc3NlcnQoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKFVURjE2LmNoYXJBdChzdHIsIHBvc1swXSkpKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHAgPSBwb3NbMF07CisgICAgICAgIHdoaWxlIChwIDwgc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQoc3RyLCBwKTsKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgY2gpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGNoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgIH0KKyAgICAgICAgcG9zWzBdID0gcDsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyaW0gd2hpdGVzcGFjZSBmcm9tIGVuZHMgb2YgYSBTdHJpbmdCdWZmZXIuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIHRyaW0oU3RyaW5nQnVmZmVyIGIpIHsKKyAgICAgICAgLy8gVE9ETyB1cGRhdGUgdG8gaGFuZGxlIHN1cnJvZ2F0ZXMKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaT0wOyBpPGIubGVuZ3RoKCkgJiYgQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShiLmNoYXJBdChpKSk7ICsraSkge30KKyAgICAgICAgYi5kZWxldGUoMCwgaSk7CisgICAgICAgIGZvciAoaT1iLmxlbmd0aCgpLTE7IGk+PTAgJiYgQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShiLmNoYXJBdChpKSk7IC0taSkge30KKyAgICAgICAgcmV0dXJuIGIuZGVsZXRlKGkrMSwgYi5sZW5ndGgoKSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgc3RhdGljIGZpbmFsIGNoYXIgRElHSVRTW10gPSB7CisgICAgICAgICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywKKyAgICAgICAgJ0EnLCAnQicsICdDJywgJ0QnLCAnRScsICdGJywgJ0cnLCAnSCcsICdJJywgJ0onLAorICAgICAgICAnSycsICdMJywgJ00nLCAnTicsICdPJywgJ1AnLCAnUScsICdSJywgJ1MnLCAnVCcsCisgICAgICAgICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWicKKyAgICB9OworCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgbnVtYmVyIHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIgaW4gdGhlIHJhZGl4IDEwCisgICAgICogZ2VuZXJhdGluZyBhdCBsZWFzdCBvbmUgZGlnaXQuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGFwcGVuZE51bWJlcihTdHJpbmdCdWZmZXIgcmVzdWx0LCBpbnQgbikgeworICAgICAgICByZXR1cm4gYXBwZW5kTnVtYmVyKHJlc3VsdCwgbiwgMTAsIDEpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZGlnaXRzIG9mIGEgcG9zaXRpdmUgaW50ZWdlciB0byB0aGUgZ2l2ZW4KKyAgICAgKiA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+IGluIHRoZSBnaXZlbiByYWRpeC4gVGhpcyBpcworICAgICAqIGRvbmUgcmVjdXJzaXZlbHkgc2luY2UgaXQgaXMgZWFzaWVzdCB0byBnZW5lcmF0ZSB0aGUgbG93LQorICAgICAqIG9yZGVyIGRpZ2l0IGZpcnN0LCBidXQgaXQgbXVzdCBiZSBhcHBlbmRlZCBsYXN0LgorICAgICAqCisgICAgICogQHBhcmFtIHJlc3VsdCBpcyB0aGUgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPiB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gbiBpcyB0aGUgcG9zaXRpdmUgaW50ZWdlcgorICAgICAqIEBwYXJhbSByYWRpeCBpcyB0aGUgcmFkaXgsIGZyb20gMiB0byAzNiBpbmNsdXNpdmUKKyAgICAgKiBAcGFyYW0gbWluRGlnaXRzIGlzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgdG8gYXBwZW5kLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgcmVjdXJzaXZlQXBwZW5kTnVtYmVyKFN0cmluZ0J1ZmZlciByZXN1bHQsIGludCBuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJhZGl4LCBpbnQgbWluRGlnaXRzKQorICAgIHsKKyAgICAgICAgaW50IGRpZ2l0ID0gbiAlIHJhZGl4OworCisgICAgICAgIGlmIChuID49IHJhZGl4IHx8IG1pbkRpZ2l0cyA+IDEpIHsKKyAgICAgICAgICAgIHJlY3Vyc2l2ZUFwcGVuZE51bWJlcihyZXN1bHQsIG4gLyByYWRpeCwgcmFkaXgsIG1pbkRpZ2l0cyAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbZGlnaXRdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBudW1iZXIgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlciBpbiB0aGUgZ2l2ZW4gcmFkaXguCisgICAgICogU3RhbmRhcmQgZGlnaXRzICcwJy0nOScgYXJlIHVzZWQgYW5kIGxldHRlcnMgJ0EnLSdaJyBmb3IKKyAgICAgKiByYWRpY2VzIDExIHRocm91Z2ggMzYuCisgICAgICogQHBhcmFtIHJlc3VsdCB0aGUgZGlnaXRzIG9mIHRoZSBudW1iZXIgYXJlIGFwcGVuZGVkIGhlcmUKKyAgICAgKiBAcGFyYW0gbiB0aGUgbnVtYmVyIHRvIGJlIGNvbnZlcnRlZCB0byBkaWdpdHM7IG1heSBiZSBuZWdhdGl2ZS4KKyAgICAgKiBJZiBuZWdhdGl2ZSwgYSAnLScgaXMgcHJlcGVuZGVkIHRvIHRoZSBkaWdpdHMuCisgICAgICogQHBhcmFtIHJhZGl4IGEgcmFkaXggZnJvbSAyIHRvIDM2IGluY2x1c2l2ZS4KKyAgICAgKiBAcGFyYW0gbWluRGlnaXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMsIG5vdCBpbmNsdWRpbmcKKyAgICAgKiBhbnkgJy0nLCB0byBwcm9kdWNlLiAgVmFsdWVzIGxlc3MgdGhhbiAyIGhhdmUgbm8gZWZmZWN0LiAgT25lCisgICAgICogZGlnaXQgaXMgYWx3YXlzIGVtaXR0ZWQgcmVnYXJkbGVzcyBvZiB0aGlzIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHJlc3VsdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGFwcGVuZE51bWJlcihTdHJpbmdCdWZmZXIgcmVzdWx0LCBpbnQgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYWRpeCwgaW50IG1pbkRpZ2l0cykKKyAgICAgICAgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKHJhZGl4IDwgMiB8fCByYWRpeCA+IDM2KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHJhZGl4ICIgKyByYWRpeCk7CisgICAgICAgIH0KKworCisgICAgICAgIGludCBhYnMgPSBuOworCisgICAgICAgIGlmIChuIDwgMCkgeworICAgICAgICAgICAgYWJzID0gLW47CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCItIik7CisgICAgICAgIH0KKworICAgICAgICByZWN1cnNpdmVBcHBlbmROdW1iZXIocmVzdWx0LCBhYnMsIHJhZGl4LCBtaW5EaWdpdHMpOworCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW4gdW5zaWduZWQgMzEtYml0IGludGVnZXIgYXQgdGhlIGdpdmVuIG9mZnNldC4gIFVzZQorICAgICAqIFVDaGFyYWN0ZXIuZGlnaXQoKSB0byBwYXJzZSBpbmRpdmlkdWFsIGNoYXJhY3RlcnMgaW50byBkaWdpdHMuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gZW50cnksIHBvc1swXSBpcyB0aGUKKyAgICAgKiBvZmZzZXQgd2l0aGluIHRleHQgYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgaXQgc2hvdWxkIHBvaW50CisgICAgICogdG8gYSB2YWxpZCBkaWdpdC4gIE9uIGV4aXQsIHBvc1swXSBpcyB0aGUgb2Zmc2V0IGFmdGVyIHRoZSBsYXN0CisgICAgICogcGFyc2VkIGNoYXJhY3Rlci4gIElmIHRoZSBwYXJzZSBmYWlsZWQsIGl0IHdpbGwgYmUgdW5jaGFuZ2VkIG9uCisgICAgICogZXhpdC4gIE11c3QgYmUgPj0gMCBvbiBlbnRyeS4KKyAgICAgKiBAcGFyYW0gcmFkaXggdGhlIHJhZGl4IGluIHdoaWNoIHRvIHBhcnNlOyBtdXN0IGJlID49IDIgYW5kIDw9CisgICAgICogMzYuCisgICAgICogQHJldHVybiBhIG5vbi1uZWdhdGl2ZSBwYXJzZWQgbnVtYmVyLCBvciAtMSB1cG9uIHBhcnNlIGZhaWx1cmUuCisgICAgICogUGFyc2UgZmFpbHMgaWYgdGhlcmUgYXJlIG5vIGRpZ2l0cywgdGhhdCBpcywgaWYgcG9zWzBdIGRvZXMgbm90CisgICAgICogcG9pbnQgdG8gYSB2YWxpZCBkaWdpdCBvbiBlbnRyeSwgb3IgaWYgdGhlIG51bWJlciB0byBiZSBwYXJzZWQKKyAgICAgKiBkb2VzIG5vdCBmaXQgaW50byBhIDMxLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHBhcnNlTnVtYmVyKFN0cmluZyB0ZXh0LCBpbnRbXSBwb3MsIGludCByYWRpeCkgeworICAgICAgICAvLyBhc3NlcnQocG9zWzBdID49IDApOworICAgICAgICAvLyBhc3NlcnQocmFkaXggPj0gMik7CisgICAgICAgIC8vIGFzc2VydChyYWRpeCA8PSAzNik7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgaW50IHAgPSBwb3NbMF07CisgICAgICAgIHdoaWxlIChwIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHRleHQsIHApOworICAgICAgICAgICAgaW50IGQgPSBVQ2hhcmFjdGVyLmRpZ2l0KGNoLCByYWRpeCk7CisgICAgICAgICAgICBpZiAoZCA8IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG4gPSByYWRpeCpuICsgZDsKKyAgICAgICAgICAgIC8vIEFTU1VNRSB0aGF0IHdoZW4gYSAzMi1iaXQgaW50ZWdlciBvdmVyZmxvd3MgaXQgYmVjb21lcworICAgICAgICAgICAgLy8gbmVnYXRpdmUuICBFLmcuLCAyMTQ3NDgzNjQgKiAxMCArIDggPT4gbmVnYXRpdmUgdmFsdWUuCisgICAgICAgICAgICBpZiAobiA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK3A7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHAgPT0gcG9zWzBdKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcG9zWzBdID0gcDsKKyAgICAgICAgcmV0dXJuIG47CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBOT1QgcHJpbnRhYmxlIEFTQ0lJLiAgVGhlIHRhYiwKKyAgICAgKiBuZXdsaW5lIGFuZCBsaW5lZmVlZCBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHVucHJpbnRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VucHJpbnRhYmxlKGludCBjKSB7CisgICAgICAgIHJldHVybiAhKGMgPj0gMHgyMCAmJiBjIDw9IDB4N0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVzY2FwZSB1bnByaW50YWJsZSBjaGFyYWN0ZXJzIHVzaW5nIDxiYWNrc2xhc2g+dXh4eHggbm90YXRpb24KKyAgICAgKiBmb3IgVSswMDAwIHRvIFUrRkZGRiBhbmQgPGJhY2tzbGFzaD5VeHh4eHh4eHggZm9yIFUrMTAwMDAgYW5kCisgICAgICogYWJvdmUuICBJZiB0aGUgY2hhcmFjdGVyIGlzIHByaW50YWJsZSBBU0NJSSwgdGhlbiBkbyBub3RoaW5nCisgICAgICogYW5kIHJldHVybiBGQUxTRS4gIE90aGVyd2lzZSwgYXBwZW5kIHRoZSBlc2NhcGVkIG5vdGF0aW9uIGFuZAorICAgICAqIHJldHVybiBUUlVFLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZShTdHJpbmdCdWZmZXIgcmVzdWx0LCBpbnQgYykgeworICAgICAgICBpZiAoaXNVbnByaW50YWJsZShjKSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgIGlmICgoYyAmIH4weEZGRkYpICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdVJyk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJihjPj4yOCldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmKGM+PjI0KV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiYoYz4+MjApXSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJihjPj4xNildKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJihjPj4xMildKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiYoYz4+OCldKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiYoYz4+NCldKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiZjXSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBhIHNldCwgaWdub3JpbmcgcXVvdGVkIHRleHQuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBzdHJpbmcgImFiYydoaWRlJ2giLCB0aGUgJ2gnIGluICJoaWRlIiB3aWxsIG5vdCBiZQorICAgICAqIGZvdW5kIGJ5IGEgc2VhcmNoIGZvciAiaCIuICBVbmxpa2UgU3RyaW5nLmluZGV4T2YoKSwgdGhpcyBtZXRob2Qgc2VhcmNoZXMKKyAgICAgKiBub3QgZm9yIGEgc2luZ2xlIGNoYXJhY3RlciwgYnV0IGZvciBhbnkgY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcKKyAgICAgKiA8Y29kZT5zZXRPZkNoYXJzPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0ZXh0IHRvIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IHRleHQubGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzZXRPZkNoYXJzIHN0cmluZyB3aXRoIG9uZSBvciBtb3JlIGRpc3RpbmN0IGNoYXJhY3RlcnMKKyAgICAgKiBAcmV0dXJuIE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIDxjb2RlPnNldE9mQ2hhcnM8L2NvZGU+CisgICAgICogZm91bmQsIG9yIC0xIGlmIG5vdCBmb3VuZC4KKyAgICAgKiBAc2VlIFN0cmluZyNpbmRleE9mCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcXVvdGVkSW5kZXhPZihTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc2V0T2ZDaGFycykgeworICAgICAgICBmb3IgKGludCBpPXN0YXJ0OyBpPGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gQkFDS1NMQVNIKSB7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjID09IEFQT1NUUk9QSEUpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKytpIDwgbGltaXQKKyAgICAgICAgICAgICAgICAgICAgICAgJiYgdGV4dC5jaGFyQXQoaSkgIT0gQVBPU1RST1BIRSkge30KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc2V0T2ZDaGFycy5pbmRleE9mKGMpID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTaW1pbGFyIHRvIFN0cmluZ0J1ZmZlci5nZXRDaGFycywgdmVyc2lvbiAxLjMuCisgICAgKiBTaW5jZSBKREsgMS4yIGltcGxlbWVudHMgU3RyaW5nQnVmZmVyLmdldENoYXJzIGRpZmZlcmVudGx5LCB0aGlzIG1ldGhvZAorICAgICogaXMgaGVyZSB0byBwcm92aWRlIGNvbnNpc3RlbnQgcmVzdWx0cy4KKyAgICAqIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgSkRLIDEuMiBjZWFzZWQgdG8gYmUgdGhlIHJlZmVyZW5jZSBwbGF0Zm9ybS4KKyAgICAqIEBwYXJhbSBzcmMgc291cmNlIHN0cmluZyBidWZmZXIKKyAgICAqIEBwYXJhbSBzcmNCZWdpbiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzcmMgdG8gcmV0cmlldmUgZnJvbQorICAgICogQHBhcmFtIHNyY0VuZCBvZmZzZXQgdG8gdGhlIGVuZCBvZiB0aGUgc3JjIHRvIHJldHJpZXZlIGZyb20KKyAgICAqIEBwYXJhbSBkc3QgY2hhciBhcnJheSB0byBzdG9yZSB0aGUgcmV0cmlldmVkIGNoYXJzCisgICAgKiBAcGFyYW0gZHN0QmVnaW4gb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgZGVzdGluYXRpb24gY2hhciBhcnJheSB0bworICAgICogICAgICAgICAgICAgICAgIHN0b3JlIHRoZSByZXRyaWV2ZWQgY2hhcnMKKyAgICAqIEBkcmFmdCBzaW5jZSBJQ1U0SiAyLjAKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBnZXRDaGFycyhTdHJpbmdCdWZmZXIgc3JjLCBpbnQgc3JjQmVnaW4sIGludCBzcmNFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZHN0W10sIGludCBkc3RCZWdpbikKKyAgICB7CisgICAgICAgIGlmIChzcmNCZWdpbiA9PSBzcmNFbmQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzcmMuZ2V0Q2hhcnMoc3JjQmVnaW4sIHNyY0VuZCwgZHN0LCBkc3RCZWdpbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgY2hhcmFjdGVyIHRvIGEgcnVsZSB0aGF0IGlzIGJlaW5nIGJ1aWx0IHVwLiAgVG8gZmx1c2gKKyAgICAgKiB0aGUgcXVvdGVCdWYgdG8gcnVsZSwgbWFrZSBvbmUgZmluYWwgY2FsbCB3aXRoIGlzTGl0ZXJhbCA9PSB0cnVlLgorICAgICAqIElmIHRoZXJlIGlzIG5vIGZpbmFsIGNoYXJhY3RlciwgcGFzcyBpbiAoaW50KS0xIGFzIGMuCisgICAgICogQHBhcmFtIHJ1bGUgdGhlIHN0cmluZyB0byBhcHBlbmQgdGhlIGNoYXJhY3RlciB0bworICAgICAqIEBwYXJhbSBjIHRoZSBjaGFyYWN0ZXIgdG8gYXBwZW5kLCBvciAoaW50KS0xIGlmIG5vbmUuCisgICAgICogQHBhcmFtIGlzTGl0ZXJhbCBpZiB0cnVlLCB0aGVuIHRoZSBnaXZlbiBjaGFyYWN0ZXIgc2hvdWxkIG5vdCBiZQorICAgICAqIHF1b3RlZCBvciBlc2NhcGVkLiAgVXN1YWxseSB0aGlzIG1lYW5zIGl0IGlzIGEgc3ludGFjdGljIGVsZW1lbnQKKyAgICAgKiBzdWNoIGFzID4gb3IgJAorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiB0cnVlLCB0aGVuIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAgKiBzaG91bGQgYmUgZXNjYXBlZCB1c2luZyBlc2NhcGVVbnByaW50YWJsZSgpLiAgVGhlc2UgZXNjYXBlcyB3aWxsCisgICAgICogYXBwZWFyIG91dHNpZGUgb2YgcXVvdGVzLgorICAgICAqIEBwYXJhbSBxdW90ZUJ1ZiBhIGJ1ZmZlciB3aGljaCBpcyB1c2VkIHRvIGJ1aWxkIHVwIHF1b3RlZAorICAgICAqIHN1YnN0cmluZ3MuICBUaGUgY2FsbGVyIHNob3VsZCBpbml0aWFsbHkgc3VwcGx5IGFuIGVtcHR5IGJ1ZmZlciwKKyAgICAgKiBhbmQgdGhlcmVhZnRlciBzaG91bGQgbm90IG1vZGlmeSB0aGUgYnVmZmVyLiAgVGhlIGJ1ZmZlciBzaG91bGQgYmUKKyAgICAgKiBjbGVhcmVkIG91dCBieSwgYXQgdGhlIGVuZCwgY2FsbGluZyB0aGlzIG1ldGhvZCB3aXRoIGEgbGl0ZXJhbAorICAgICAqIGNoYXJhY3RlciAod2hpY2ggbWF5IGJlIC0xKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kVG9SdWxlKFN0cmluZ0J1ZmZlciBydWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTGl0ZXJhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYpIHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIGVzY2FwaW5nIHVucHJpbnRhYmxlcywgdGhlbiBlc2NhcGUgdGhlbSBvdXRzaWRlCisgICAgICAgIC8vIHF1b3Rlcy4gIFxcdSBhbmQgXFxVIGFyZSBub3QgcmVjb2duaXplZCB3aXRoaW4gcXVvdGVzLiAgVGhlIHNhbWUKKyAgICAgICAgLy8gbG9naWMgYXBwbGllcyB0byBsaXRlcmFscywgYnV0IGxpdGVyYWxzIGFyZSBuZXZlciBlc2NhcGVkLgorICAgICAgICBpZiAoaXNMaXRlcmFsIHx8CisgICAgICAgICAgICAoZXNjYXBlVW5wcmludGFibGUgJiYgVXRpbGl0eS5pc1VucHJpbnRhYmxlKGMpKSkgeworICAgICAgICAgICAgaWYgKHF1b3RlQnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIC8vIFdlIHByZWZlciBiYWNrc2xhc2ggQVBPU1RST1BIRSB0byBkb3VibGUgQVBPU1RST1BIRQorICAgICAgICAgICAgICAgIC8vIChtb3JlIHJlYWRhYmxlLCBsZXNzIHNpbWlsYXIgdG8gIikgc28gaWYgdGhlcmUgYXJlCisgICAgICAgICAgICAgICAgLy8gZG91YmxlIEFQT1NUUk9QSEVzIGF0IHRoZSBlbmRzLCB3ZSBwdWxsIHRoZW0gb3V0c2lkZQorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBxdW90ZS4KKworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUgcXVvdGVCdWYgaXMgQVBPU1RST1BIRQorICAgICAgICAgICAgICAgIC8vIChkb3VibGVkKSB0aGVuIHB1bGwgaXQgb3V0LgorICAgICAgICAgICAgICAgIHdoaWxlIChxdW90ZUJ1Zi5sZW5ndGgoKSA+PSAyICYmCisgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLmNoYXJBdCgwKSA9PSBBUE9TVFJPUEhFICYmCisgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLmNoYXJBdCgxKSA9PSBBUE9TVFJPUEhFKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKEJBQ0tTTEFTSCkuYXBwZW5kKEFQT1NUUk9QSEUpOworICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5kZWxldGUoMCwgMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsYXN0IHRoaW5nIGluIHRoZSBxdW90ZUJ1ZiBpcyBBUE9TVFJPUEhFCisgICAgICAgICAgICAgICAgLy8gKGRvdWJsZWQpIHRoZW4gcmVtb3ZlIGFuZCBjb3VudCBpdCBhbmQgYWRkIGl0IGFmdGVyLgorICAgICAgICAgICAgICAgIGludCB0cmFpbGluZ0NvdW50ID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAocXVvdGVCdWYubGVuZ3RoKCkgPj0gMiAmJgorICAgICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5jaGFyQXQocXVvdGVCdWYubGVuZ3RoKCktMikgPT0gQVBPU1RST1BIRSAmJgorICAgICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5jaGFyQXQocXVvdGVCdWYubGVuZ3RoKCktMSkgPT0gQVBPU1RST1BIRSkgeworICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5zZXRMZW5ndGgocXVvdGVCdWYubGVuZ3RoKCktMik7CisgICAgICAgICAgICAgICAgICAgICsrdHJhaWxpbmdDb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHF1b3RlQnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChBUE9TVFJPUEhFKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gamRrIDEuMy4xIGRvZXMgbm90IGhhdmUgYXBwZW5kKFN0cmluZ0J1ZmZlcikgeWV0CisgICAgICAgICAgICAgICAgICAgIGlmKElDVURlYnVnLmlzSkRLMTRPckhpZ2hlcil7CisgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChxdW90ZUJ1Zik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQocXVvdGVCdWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQoQVBPU1RST1BIRSk7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHRyYWlsaW5nQ291bnQtLSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQoQkFDS1NMQVNIKS5hcHBlbmQoQVBPU1RST1BIRSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGMgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvKiBTaW5jZSBzcGFjZXMgYXJlIGlnbm9yZWQgZHVyaW5nIHBhcnNpbmcsIHRoZXkgYXJlCisgICAgICAgICAgICAgICAgICogZW1pdHRlZCBvbmx5IGZvciByZWFkYWJpbGl0eS4gIFdlIGVtaXQgb25lIGhlcmUKKyAgICAgICAgICAgICAgICAgKiBvbmx5IGlmIHRoZXJlIGlzbid0IGFscmVhZHkgb25lIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAgICAgICAgICogcnVsZS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IHJ1bGUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiAwICYmIHJ1bGUuY2hhckF0KGxlbi0xKSAhPSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFlc2NhcGVVbnByaW50YWJsZSB8fCAhVXRpbGl0eS5lc2NhcGVVbnByaW50YWJsZShydWxlLCBjKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocnVsZSwgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gRXNjYXBlICcgYW5kICdcJyBhbmQgZG9uJ3QgYmVnaW4gYSBxdW90ZSBqdXN0IGZvciB0aGVtCisgICAgICAgIGVsc2UgaWYgKHF1b3RlQnVmLmxlbmd0aCgpID09IDAgJiYKKyAgICAgICAgICAgICAgICAgKGMgPT0gQVBPU1RST1BIRSB8fCBjID09IEJBQ0tTTEFTSCkpIHsKKyAgICAgICAgICAgIHJ1bGUuYXBwZW5kKEJBQ0tTTEFTSCkuYXBwZW5kKChjaGFyKWMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3BlY2lhbHMgKHByaW50YWJsZSBhc2NpaSB0aGF0IGlzbid0IFswLTlhLXpBLVpdKSBhbmQKKyAgICAgICAgLy8gd2hpdGVzcGFjZSBuZWVkIHF1b3RpbmcuICBBbHNvIGFwcGVuZCBzdHVmZiB0byBxdW90ZXMgaWYgd2UgYXJlCisgICAgICAgIC8vIGJ1aWxkaW5nIHVwIGEgcXVvdGVkIHN1YnN0cmluZyBhbHJlYWR5LgorICAgICAgICBlbHNlIGlmIChxdW90ZUJ1Zi5sZW5ndGgoKSA+IDAgfHwKKyAgICAgICAgICAgICAgICAgKGMgPj0gMHgwMDIxICYmIGMgPD0gMHgwMDdFICYmCisgICAgICAgICAgICAgICAgICAhKChjID49IDB4MDAzMC8qJzAnKi8gJiYgYyA8PSAweDAwMzkvKic5JyovKSB8fAorICAgICAgICAgICAgICAgICAgICAoYyA+PSAweDAwNDEvKidBJyovICYmIGMgPD0gMHgwMDVBLyonWicqLykgfHwKKyAgICAgICAgICAgICAgICAgICAgKGMgPj0gMHgwMDYxLyonYScqLyAmJiBjIDw9IDB4MDA3QS8qJ3onKi8pKSkgfHwKKyAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChxdW90ZUJ1ZiwgYyk7CisgICAgICAgICAgICAvLyBEb3VibGUgJyB3aXRoaW4gYSBxdW90ZQorICAgICAgICAgICAgaWYgKGMgPT0gQVBPU1RST1BIRSkgeworICAgICAgICAgICAgICAgIHF1b3RlQnVmLmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IGFwcGVuZAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChydWxlLCBjKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoZSBydWxlLiAgQ2FsbHMgdGhlIHNpbmdsZS1jaGFyYWN0ZXIKKyAgICAgKiB2ZXJzaW9uIG9mIGFwcGVuZFRvUnVsZSBmb3IgZWFjaCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0xpdGVyYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIC8vIE9rYXkgdG8gcHJvY2VzcyBpbiAxNi1iaXQgY29kZSB1bml0cyBoZXJlCisgICAgICAgICAgICBhcHBlbmRUb1J1bGUocnVsZSwgdGV4dC5jaGFyQXQoaSksIGlzTGl0ZXJhbCwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgbWF0Y2hlciByZWZlcmVuY2UsIHdoaWNoIG1heSBiZSBudWxsLCBhcHBlbmQgaXRzCisgICAgICogcGF0dGVybiBhcyBhIGxpdGVyYWwgdG8gdGhlIGdpdmVuIHJ1bGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIGlmIChtYXRjaGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFwcGVuZFRvUnVsZShydWxlLCBtYXRjaGVyLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIDIgdW5zaWduZWQgaW50ZWdlcnMKKyAgICAgKiBAcGFyYW0gc291cmNlIDMyIGJpdCB1bnNpZ25lZCBpbnRlZ2VyCisgICAgICogQHBhcmFtIHRhcmdldCAzMiBiaXQgdW5zaWduZWQgaW50ZWdlcgorICAgICAqIEByZXR1cm4gMCBpZiBlcXVhbHMsIDEgaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQgYW5kIC0xCisgICAgICogICAgICAgICBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb21wYXJlVW5zaWduZWQoaW50IHNvdXJjZSwgaW50IHRhcmdldCkKKyAgICB7CisgICAgICAgIHNvdXJjZSArPSBNQUdJQ19VTlNJR05FRDsKKyAgICAgICAgdGFyZ2V0ICs9IE1BR0lDX1VOU0lHTkVEOworICAgICAgICBpZiAoc291cmNlIDwgdGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA+IHRhcmdldCkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCB0aGUgaGlnaGVzdCBiaXQgaW4gYSBwb3NpdGl2ZSBpbnRlZ2VyLiBUaGlzIGlzIGRvbmUKKyAgICAgKiBieSBkb2luZyBhIGJpbmFyeSBzZWFyY2ggdGhyb3VnaCB0aGUgYml0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuIGlzIHRoZSBpbnRlZ2VyCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBiaXQgbnVtYmVyIG9mIHRoZSBoaWdoZXN0IGJpdCwgd2l0aCAwIGJlaW5nCisgICAgICogdGhlIGxvdyBvcmRlciBiaXQsIG9yIC0xIGlmIDxjb2RlPm48L2NvZGU+IGlzIG5vdCBwb3NpdGl2ZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBoaWdoQml0KGludCBuKQorICAgIHsKKyAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgYnl0ZSBiaXQgPSAwOworCisgICAgICAgIGlmIChuID49IDEgPDwgMTYpIHsKKyAgICAgICAgICAgIG4gPj49IDE2OworICAgICAgICAgICAgYml0ICs9IDE2OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA4KSB7CisgICAgICAgICAgICBuID4+PSA4OworICAgICAgICAgICAgYml0ICs9IDg7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDQpIHsKKyAgICAgICAgICAgIG4gPj49IDQ7CisgICAgICAgICAgICBiaXQgKz0gNDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMikgeworICAgICAgICAgICAgbiA+Pj0gMjsKKyAgICAgICAgICAgIGJpdCArPSAyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAxKSB7CisgICAgICAgICAgICBuID4+PSAxOworICAgICAgICAgICAgYml0ICs9IDE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYml0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IG1ldGhvZCB0byB0YWtlIGEgaW50W10gY29udGFpbmluZyBjb2RlcG9pbnRzIGFuZCByZXR1cm4KKyAgICAgKiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiB3aXRoIGNvZGUgdW5pdHMuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHZhbHVlT2YoaW50W11zb3VyY2UpeworICAgIC8vIFRPRE86IEludmVzdGlnYXRlIHdoeSB0aGlzIG1ldGhvZCBpcyBub3Qgb24gVVRGMTYgY2xhc3MKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc291cmNlLmxlbmd0aCk7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHNvdXJjZS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LHNvdXJjZVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRvIGR1cGxpY2F0ZSBhIHN0cmluZyBjb3VudCB0aW1lcworICAgICAqIEBwYXJhbSBzCisgICAgICogQHBhcmFtIGNvdW50CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwZWF0KFN0cmluZyBzLCBpbnQgY291bnQpIHsKKyAgICAgICAgaWYgKGNvdW50IDw9IDApIHJldHVybiAiIjsKKyAgICAgICAgaWYgKGNvdW50ID09IDEpIHJldHVybiBzOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIAorICAgIC8vICEhISAxLjMgY29tcGF0aWJpbGl5CisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmdCdWZmZXIgYnVmLCBTdHJpbmcgcykgeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgcmV0dXJuIGJ1Zi5pbmRleE9mKHMpOworLy8jZWxzZQorLy8jIyAgICAJcmV0dXJuIGJ1Zi50b1N0cmluZygpLmluZGV4T2Yocyk7CisvLyNlbmRpZgorICAgIH0KKyAgICAKKyAgICAvLyAhISEgMS4zIGNvbXBhdGliaWxpeQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhc3RJbmRleE9mKFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICByZXR1cm4gYnVmLmxhc3RJbmRleE9mKHMpOworLy8jZWxzZQorLy8jIyAgICAJcmV0dXJuIGJ1Zi50b1N0cmluZygpLmxhc3RJbmRleE9mKHMpOworLy8jZW5kaWYKKyAgICB9CisgICAgCisgICAgLy8gISEhIDEuMyBjb21wYXRpYmlsaXkKKyAgICBwdWJsaWMgc3RhdGljIGludCBpbmRleE9mKFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzLCBpbnQgaSkgeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgcmV0dXJuIGJ1Zi5pbmRleE9mKHMsIGkpOworLy8jZWxzZQorLy8jIyAgICAJcmV0dXJuIGJ1Zi50b1N0cmluZygpLmluZGV4T2YocywgaSk7CisvLyNlbmRpZgorICAgIH0KKyAgICAKKyAgICAvLyAhISEgMS4zIGNvbXBhdGliaWxpeQorICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHMsIGludCBpKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICByZXR1cm4gYnVmLmxhc3RJbmRleE9mKHMsIGkpOworLy8jZWxzZQorLy8jIyAgICAJcmV0dXJuIGJ1Zi50b1N0cmluZygpLmxhc3RJbmRleE9mKHMsIGkpOworLy8jZW5kaWYKKyAgICB9CisgICAKKyAgIC8vICEhISAxLjMgY29tcGF0aWJpbGl5CisgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlQWxsKFN0cmluZyBzcmMsIFN0cmluZyB0YXJnZXQsIFN0cmluZyByZXBsYWNlbWVudCkgeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICByZXR1cm4gc3JjLnJlcGxhY2VBbGwodGFyZ2V0LCByZXBsYWNlbWVudCk7CisvLyNlbHNlCisvLyMjICAgICAgIGludCBpID0gc3JjLmluZGV4T2YodGFyZ2V0KTsKKy8vIyMgICAgICAgaWYgKGkgPT0gLTEpIHsKKy8vIyMgICAgICAgICAgIHJldHVybiBzcmM7CisvLyMjICAgICAgIH0KKy8vIyMgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKy8vIyMgICAgICAgaW50IG4gPSAwOworLy8jIyAgICAgICBkbyB7CisvLyMjICAgICAgICAgICBidWYuYXBwZW5kKHNyYy5zdWJzdHJpbmcobiwgaSkpOworLy8jIyAgICAgICAgICAgYnVmLmFwcGVuZChyZXBsYWNlbWVudCk7CisvLyMjICAgICAgICAgICBuID0gaSArIHRhcmdldC5sZW5ndGgoKTsKKy8vIyMgICAgICAgICAgIGkgPSBzcmMuaW5kZXhPZih0YXJnZXQsIG4pOworLy8jIyAgICAgICB9IHdoaWxlIChpICE9IC0xKTsKKy8vIyMgICAgICAgaWYgKG4gPCBzcmMubGVuZ3RoKCkpIHsKKy8vIyMgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3JjLnN1YnN0cmluZyhuKSk7CisvLyMjICAgICAgIH0KKy8vIyMgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworLy8jZW5kaWYKKyAgIH0KK30KKy8vL0NMT1ZFUjpPTgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAwODBkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlTWF0Y2hlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworLyoqCisgKiBAYXV0aG9yIFJhbQorICovCisvL1RoaXMgY2xhc3MgY29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgc28gdGVzdGluZyBub3QgbmVlZGVkCisvLy9DTE9WRVI6T0ZGCitwdWJsaWMgY2xhc3MgVXRpbGl0eUV4dGVuc2lvbnMgeworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoZSBydWxlLiAgQ2FsbHMgdGhlIHNpbmdsZS1jaGFyYWN0ZXIKKyAgICAgKiB2ZXJzaW9uIG9mIGFwcGVuZFRvUnVsZSBmb3IgZWFjaCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0xpdGVyYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIC8vIE9rYXkgdG8gcHJvY2VzcyBpbiAxNi1iaXQgY29kZSB1bml0cyBoZXJlCisgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCB0ZXh0LmNoYXJBdChpKSwgaXNMaXRlcmFsLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIG1hdGNoZXIgcmVmZXJlbmNlLCB3aGljaCBtYXkgYmUgbnVsbCwgYXBwZW5kIGl0cworICAgICAqIHBhdHRlcm4gYXMgYSBsaXRlcmFsIHRvIHRoZSBnaXZlbiBydWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRUb1J1bGUoU3RyaW5nQnVmZmVyIHJ1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtYXRjaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZikgeworICAgICAgICBpZiAobWF0Y2hlciAhPSBudWxsKSB7CisgICAgICAgICAgICBhcHBlbmRUb1J1bGUocnVsZSwgbWF0Y2hlci50b1BhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRm9yIGRlYnVnZ2luZyBwdXJwb3NlczsgZm9ybWF0IHRoZSBnaXZlbiB0ZXh0IGluIHRoZSBmb3JtCisgICAgICogYWFhe2JiYnxjY2N8ZGRkfWVlZSwgd2hlcmUgdGhlIHt9IGluZGljYXRlIHRoZSBjb250ZXh0IHN0YXJ0CisgICAgICogYW5kIGxpbWl0LCBhbmQgdGhlIHx8IGluZGljYXRlIHRoZSBzdGFydCBhbmQgbGltaXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZm9ybWF0SW5wdXQoUmVwbGFjZWFibGVTdHJpbmcgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhcHBlbmRUbyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9ybWF0SW5wdXQoYXBwZW5kVG8sIGlucHV0LCBwb3MpOworICAgICAgICByZXR1cm4gY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5LmVzY2FwZShhcHBlbmRUby50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgZGVidWdnaW5nIHB1cnBvc2VzOyBmb3JtYXQgdGhlIGdpdmVuIHRleHQgaW4gdGhlIGZvcm0KKyAgICAgKiBhYWF7YmJifGNjY3xkZGR9ZWVlLCB3aGVyZSB0aGUge30gaW5kaWNhdGUgdGhlIGNvbnRleHQgc3RhcnQKKyAgICAgKiBhbmQgbGltaXQsIGFuZCB0aGUgfHwgaW5kaWNhdGUgdGhlIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBmb3JtYXRJbnB1dChTdHJpbmdCdWZmZXIgYXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zKSB7CisgICAgICAgIGlmICgwIDw9IHBvcy5jb250ZXh0U3RhcnQgJiYKKyAgICAgICAgICAgIHBvcy5jb250ZXh0U3RhcnQgPD0gcG9zLnN0YXJ0ICYmCisgICAgICAgICAgICBwb3Muc3RhcnQgPD0gcG9zLmxpbWl0ICYmCisgICAgICAgICAgICBwb3MubGltaXQgPD0gcG9zLmNvbnRleHRMaW1pdCAmJgorICAgICAgICAgICAgcG9zLmNvbnRleHRMaW1pdCA8PSBpbnB1dC5sZW5ndGgoKSkgeworCisgICAgICAgICAgICBTdHJpbmcgIGIsIGMsIGQ7CisgICAgICAgICAgICAvL2EgPSBpbnB1dC5zdWJzdHJpbmcoMCwgcG9zLmNvbnRleHRTdGFydCk7CisgICAgICAgICAgICBiID0gaW5wdXQuc3Vic3RyaW5nKHBvcy5jb250ZXh0U3RhcnQsIHBvcy5zdGFydCk7CisgICAgICAgICAgICBjID0gaW5wdXQuc3Vic3RyaW5nKHBvcy5zdGFydCwgcG9zLmxpbWl0KTsKKyAgICAgICAgICAgIGQgPSBpbnB1dC5zdWJzdHJpbmcocG9zLmxpbWl0LCBwb3MuY29udGV4dExpbWl0KTsKKyAgICAgICAgICAgIC8vZSA9IGlucHV0LnN1YnN0cmluZyhwb3MuY29udGV4dExpbWl0LCBpbnB1dC5sZW5ndGgoKSk7CisgICAgICAgICAgICBhcHBlbmRUby4vL2FwcGVuZChhKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ3snKS5hcHBlbmQoYikuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd8JykuYXBwZW5kKGMpLmFwcGVuZCgnfCcpLmFwcGVuZChkKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ30nKQorICAgICAgICAgICAgICAgIC8vLmFwcGVuZChlKQorICAgICAgICAgICAgICAgIDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFwcGVuZFRvLmFwcGVuZCgiSU5WQUxJRCBQb3NpdGlvbiB7Y3M9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmNvbnRleHRTdGFydCArICIsIHM9IiArIHBvcy5zdGFydCArICIsIGw9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmxpbWl0ICsgIiwgY2w9IiArIHBvcy5jb250ZXh0TGltaXQgKyAifSBvbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFwcGVuZFRvOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBmb3JtYXRJbnB1dChSZXBsYWNlYWJsZSBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdElucHV0KChSZXBsYWNlYWJsZVN0cmluZykgaW5wdXQsIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGZvcm1hdElucHV0KFN0cmluZ0J1ZmZlciBhcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlYWJsZSBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdElucHV0KGFwcGVuZFRvLCAoUmVwbGFjZWFibGVTdHJpbmcpIGlucHV0LCBwb3MpOworICAgIH0KKworfQorLy9DTE9WRVI6T04KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9ab25lSW5mb0V4dC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvWm9uZUluZm9FeHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDc1NjI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvWm9uZUluZm9FeHQuamF2YQpAQCAtMCwwICsxLDQzOCBAQAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworLy8gQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyA+Pj4gVGhpcyBkYXRhIHdhcyBnZW5lcmF0ZWQgYnkgWm9uZU1ldGFDTERSCisvLyA+Pj4gYXMgYSB0ZW1wb3JhcnkgbWVhc3VyZSBmb3IgdGhlIDMuNCByZWxlYXNlLgorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBab25lSW5mb0V4dCB7CisKKyAgICAvLyB0YWJsZSBpcyBzb3J0ZWQgYnkgY2Fub25pY2FsIHRpbWUgem9uZSBpZAorICAgIC8vIGFsaWFzZXMgYXJlIG5vdCBzb3J0ZWQKKworICAgIC8vIFswXSBjYW5vbmljYWwgdGltZSB6b25lIGlkCisgICAgLy8gWzFdIGNvdW50cnkgY29kZSwgb3IgbnVsbCBpZiBubyBjb3VudHJ5CisgICAgLy8gWzJdICJUIiBpZiBpc1NpbmdsZSwgbnVsbCBpZiBub3QKKyAgICAvLyBbbi4uLl0gYWxpYXNlcyBmb3IgY2Fub25pY2FsIHRpbWUgem9uZSBpZAorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gQ0xEUl9JTkZPID0geworICAgICAgICB7ICJBZnJpY2EvQWJpZGphbiIsICJDSSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQWNjcmEiLCAiR0giLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0FkZGlzX0FiYWJhIiwgIkVUIiwgIlQiLCAiRUFUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQWxnaWVycyIsICJEWiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQXNtZXJhIiwgIkVSIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9CYW1ha28iLCAiTUwiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0Jhbmd1aSIsICJDRiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQmFuanVsIiwgIkdNIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9CaXNzYXUiLCAiR1ciLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0JsYW50eXJlIiwgIk1XIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9CcmF6emF2aWxsZSIsICJDRyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQnVqdW1idXJhIiwgIkJJIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9DYWlybyIsICJFRyIsICJUIiwgIkVneXB0IiwgIkFSVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0Nhc2FibGFuY2EiLCAiTUEiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0NldXRhIiwgIkVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBZnJpY2EvQ29uYWtyeSIsICJHTiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvRGFrYXIiLCAiU04iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0Rhcl9lc19TYWxhYW0iLCAiVFoiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0RqaWJvdXRpIiwgIkRKIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Eb3VhbGEiLCAiQ00iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0VsX0FhaXVuIiwgIkVIIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9GcmVldG93biIsICJTTCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvR2Fib3JvbmUiLCAiQlciLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0hhcmFyZSIsICJaVyIsICJUIiwgIkNBVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0pvaGFubmVzYnVyZyIsICJaQSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvS2FtcGFsYSIsICJVRyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvS2hhcnRvdW0iLCAiU0QiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0tpZ2FsaSIsICJSVyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvS2luc2hhc2EiLCAiQ0QiLCBudWxsIH0sCisgICAgICAgIHsgIkFmcmljYS9MYWdvcyIsICJORyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTGlicmV2aWxsZSIsICJHQSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTG9tZSIsICJURyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTHVhbmRhIiwgIkFPIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9MdWJ1bWJhc2hpIiwgIkNEIiwgbnVsbCB9LAorICAgICAgICB7ICJBZnJpY2EvTHVzYWthIiwgIlpNIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9NYWxhYm8iLCAiR1EiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01hcHV0byIsICJNWiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTWFzZXJ1IiwgIkxTIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9NYmFiYW5lIiwgIlNaIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Nb2dhZGlzaHUiLCAiU08iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01vbnJvdmlhIiwgIkxSIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9OYWlyb2JpIiwgIktFIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9OZGphbWVuYSIsICJURCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTmlhbWV5IiwgIk5FIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Ob3Vha2Nob3R0IiwgIk1SIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9PdWFnYWRvdWdvdSIsICJCRiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvUG9ydG8tTm92byIsICJCSiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvU2FvX1RvbWUiLCAiU1QiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL1RpbWJ1a3R1IiwgIk1MIiwgbnVsbCB9LAorICAgICAgICB7ICJBZnJpY2EvVHJpcG9saSIsICJMWSIsICJUIiwgIkxpYnlhIiB9LAorICAgICAgICB7ICJBZnJpY2EvVHVuaXMiLCAiVE4iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL1dpbmRob2VrIiwgIk5BIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQWRhayIsICJVUyIsIG51bGwsICJBbWVyaWNhL0F0a2EiLCAiVVMvQWxldXRpYW4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQW5jaG9yYWdlIiwgIlVTIiwgbnVsbCwgIlN5c3RlbVYvWVNUOVlEVCIsICJVUy9BbGFza2EiLCAiQVNUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0FuZ3VpbGxhIiwgIkFJIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQW50aWd1YSIsICJBRyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0FyYWd1YWluYSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BcmdlbnRpbmEvQ29tb2RSaXZhZGF2aWEiLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL0xhX1Jpb2phIiwgIkFSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0FyZ2VudGluYS9SaW9fR2FsbGVnb3MiLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9KdWFuIiwgIkFSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0FyZ2VudGluYS9UdWN1bWFuIiwgIkFSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0FyZ2VudGluYS9Vc2h1YWlhIiwgIkFSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0FydWJhIiwgIkFXIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXN1bmNpb24iLCAiUFkiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9CYWhpYSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9CYXJiYWRvcyIsICJCQiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0JlbGVtIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0JlbGl6ZSIsICJCWiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0JvYV9WaXN0YSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Cb2dvdGEiLCAiQ08iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Cb2lzZSIsICJVUyIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiQVIiLCBudWxsLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIkFHVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DYW1icmlkZ2VfQmF5IiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0NhbXBvX0dyYW5kZSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DYW5jdW4iLCAiTVgiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2FyYWNhcyIsICJWRSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0NhdGFtYXJjYSIsICJBUiIsIG51bGwsICJBbWVyaWNhL0FyZ2VudGluYS9DYXRhbWFyY2EiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2F5ZW5uZSIsICJHRiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0NheW1hbiIsICJLWSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0NoaWNhZ28iLCAiVVMiLCBudWxsLCAiQ1NUNkNEVCIsICJTeXN0ZW1WL0NTVDZDRFQiLCAiVVMvQ2VudHJhbCIsICJDU1QiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2hpaHVhaHVhIiwgIk1YIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0NvcmRvYmEiLCAiQVIiLCBudWxsLCAiQW1lcmljYS9BcmdlbnRpbmEvQ29yZG9iYSIsICJBbWVyaWNhL1Jvc2FyaW8iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ29zdGFfUmljYSIsICJDUiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0N1aWFiYSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DdXJhY2FvIiwgIkFOIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRGFubWFya3NoYXZuIiwgIkdMIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0Rhd3NvbiIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9EYXdzb25fQ3JlZWsiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRGVudmVyIiwgIlVTIiwgbnVsbCwgIk1TVDdNRFQiLCAiU3lzdGVtVi9NU1Q3TURUIiwgIlVTL01vdW50YWluIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0RldHJvaXQiLCAiVVMiLCBudWxsLCAiVVMvTWljaGlnYW4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRG9taW5pY2EiLCAiRE0iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9FZG1vbnRvbiIsICJDQSIsIG51bGwsICJDYW5hZGEvTW91bnRhaW4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRWlydW5lcGUiLCAiQlIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRWxfU2FsdmFkb3IiLCAiU1YiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Gb3J0YWxlemEiLCAiQlIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR2xhY2VfQmF5IiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0dvZHRoYWIiLCAiR0wiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Hb29zZV9CYXkiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR3JhbmRfVHVyayIsICJUQyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0dyZW5hZGEiLCAiR0QiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HdWFkZWxvdXBlIiwgIkdQIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR3VhdGVtYWxhIiwgIkdUIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR3VheWFxdWlsIiwgIkVDIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR3V5YW5hIiwgIkdZIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSGFsaWZheCIsICJDQSIsIG51bGwsICJDYW5hZGEvQXRsYW50aWMiLCAiU3lzdGVtVi9BU1Q0QURUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0hhdmFuYSIsICJDVSIsICJUIiwgIkN1YmEiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSGVybW9zaWxsbyIsICJNWCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9JbmRpYW5hL0tub3giLCAiVVMiLCBudWxsLCAiQW1lcmljYS9Lbm94X0lOIiwgIlVTL0luZGlhbmEtU3RhcmtlIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0luZGlhbmEvTWFyZW5nbyIsICJVUyIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9JbmRpYW5hL1ZldmF5IiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0luZGlhbmFwb2xpcyIsICJVUyIsIG51bGwsICJBbWVyaWNhL0ZvcnRfV2F5bmUiLCAiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpcyIsICJFU1QiLCAiU3lzdGVtVi9FU1Q1IiwgIlVTL0Vhc3QtSW5kaWFuYSIsICJJRVQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSW51dmlrIiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0lxYWx1aXQiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSmFtYWljYSIsICJKTSIsICJUIiwgIkphbWFpY2EiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSnVqdXkiLCAiQVIiLCBudWxsLCAiQW1lcmljYS9BcmdlbnRpbmEvSnVqdXkiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSnVuZWF1IiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0tlbnR1Y2t5L01vbnRpY2VsbG8iLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTGFfUGF6IiwgIkJPIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTGltYSIsICJQRSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIlVTIiwgbnVsbCwgIlBTVDhQRFQiLCAiU3lzdGVtVi9QU1Q4UERUIiwgIlVTL1BhY2lmaWMiLCAiVVMvUGFjaWZpYy1OZXciLCAiUFNUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0xvdWlzdmlsbGUiLCAiVVMiLCBudWxsLCAiQW1lcmljYS9LZW50dWNreS9Mb3Vpc3ZpbGxlIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01hY2VpbyIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NYW5hZ3VhIiwgIk5JIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWFuYXVzIiwgIkJSIiwgbnVsbCwgIkJyYXppbC9XZXN0IiB9LAorICAgICAgICB7ICJBbWVyaWNhL01hcnRpbmlxdWUiLCAiTVEiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NYXphdGxhbiIsICJNWCIsIG51bGwsICJNZXhpY28vQmFqYVN1ciIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NZW5kb3phIiwgIkFSIiwgbnVsbCwgIkFtZXJpY2EvQXJnZW50aW5hL01lbmRvemEiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWVub21pbmVlIiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL01lcmlkYSIsICJNWCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NZXhpY29fQ2l0eSIsICJNWCIsIG51bGwsICJNZXhpY28vR2VuZXJhbCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NaXF1ZWxvbiIsICJQTSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01vbnRlcnJleSIsICJNWCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Nb250ZXZpZGVvIiwgIlVZIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTW9udHJlYWwiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTW9udHNlcnJhdCIsICJNUyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL05hc3NhdSIsICJCUyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL05ld19Zb3JrIiwgIlVTIiwgbnVsbCwgIkVTVDVFRFQiLCAiU3lzdGVtVi9FU1Q1RURUIiwgIlVTL0Vhc3Rlcm4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTmlwaWdvbiIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Ob21lIiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL05vcm9uaGEiLCAiQlIiLCBudWxsLCAiQnJhemlsL0RlTm9yb25oYSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQ2VudGVyIiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1BhbmFtYSIsICJQQSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1BhbmduaXJ0dW5nIiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1BhcmFtYXJpYm8iLCAiU1IiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9QaG9lbml4IiwgIlVTIiwgbnVsbCwgIk1TVCIsICJTeXN0ZW1WL01TVDciLCAiVVMvQXJpem9uYSIsICJQTlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUG9ydC1hdS1QcmluY2UiLCAiSFQiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Qb3J0X29mX1NwYWluIiwgIlRUIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUG9ydG9fVmVsaG8iLCAiQlIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUHVlcnRvX1JpY28iLCAiUFIiLCAiVCIsICJTeXN0ZW1WL0FTVDQiLCAiUFJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1JhaW55X1JpdmVyIiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1Jhbmtpbl9JbmxldCIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9SZWNpZmUiLCAiQlIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUmVnaW5hIiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9FYXN0LVNhc2thdGNoZXdhbiIsICJDYW5hZGEvU2Fza2F0Y2hld2FuIiwgIlN5c3RlbVYvQ1NUNiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9SaW9fQnJhbmNvIiwgIkJSIiwgbnVsbCwgIkFtZXJpY2EvUG9ydG9fQWNyZSIsICJCcmF6aWwvQWNyZSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TYW50aWFnbyIsICJDTCIsICJUIiwgIkNoaWxlL0NvbnRpbmVudGFsIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1NhbnRvX0RvbWluZ28iLCAiRE8iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TYW9fUGF1bG8iLCAiQlIiLCBudWxsLCAiQnJhemlsL0Vhc3QiLCAiQkVUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1Njb3Jlc2J5c3VuZCIsICJHTCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TaGlwcm9jayIsICJVUyIsIG51bGwsICJOYXZham8iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU3RfSm9obnMiLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL05ld2ZvdW5kbGFuZCIsICJDTlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU3RfS2l0dHMiLCAiS04iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TdF9MdWNpYSIsICJMQyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1N0X1Rob21hcyIsICJWSSIsICJUIiwgIkFtZXJpY2EvVmlyZ2luIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1N0X1ZpbmNlbnQiLCAiVkMiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Td2lmdF9DdXJyZW50IiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1RlZ3VjaWdhbHBhIiwgIkhOIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvVGh1bGUiLCAiR0wiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvVGh1bmRlcl9CYXkiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvVGlqdWFuYSIsICJNWCIsIG51bGwsICJBbWVyaWNhL0Vuc2VuYWRhIiwgIk1leGljby9CYWphTm9ydGUiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvVG9yb250byIsICJDQSIsIG51bGwsICJDYW5hZGEvRWFzdGVybiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Ub3J0b2xhIiwgIlZHIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvVmFuY291dmVyIiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9QYWNpZmljIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1doaXRlaG9yc2UiLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL1l1a29uIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1dpbm5pcGVnIiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9DZW50cmFsIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1lha3V0YXQiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvWWVsbG93a25pZmUiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvQ2FzZXkiLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvRGF2aXMiLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvRHVtb250RFVydmlsbGUiLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvTWF3c29uIiwgIkFRIiwgbnVsbCB9LAorICAgICAgICB7ICJBbnRhcmN0aWNhL01jTXVyZG8iLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvUGFsbWVyIiwgIkFRIiwgbnVsbCB9LAorICAgICAgICB7ICJBbnRhcmN0aWNhL1JvdGhlcmEiLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvU291dGhfUG9sZSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9TeW93YSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9Wb3N0b2siLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFyY3RpYy9Mb25neWVhcmJ5ZW4iLCAiU0oiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvQWRlbiIsICJZRSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0FsbWF0eSIsICJLWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9BbW1hbiIsICJKTyIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0FuYWR5ciIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9BcXRhdSIsICJLWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9BcXRvYmUiLCAiS1oiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvQXNoZ2FiYXQiLCAiVE0iLCAiVCIsICJBc2lhL0FzaGtoYWJhZCIgfSwKKyAgICAgICAgeyAiQXNpYS9CYWdoZGFkIiwgIklRIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQmFocmFpbiIsICJCSCIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0Jha3UiLCAiQVoiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9CYW5na29rIiwgIlRIIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQmVpcnV0IiwgIkxCIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQmlzaGtlayIsICJLRyIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0JydW5laSIsICJCTiIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0NhbGN1dHRhIiwgIklOIiwgIlQiLCAiSVNUIiB9LAorICAgICAgICB7ICJBc2lhL0Nob2liYWxzYW4iLCAiTU4iLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvQ2hvbmdxaW5nIiwgIkNOIiwgbnVsbCwgIkFzaWEvQ2h1bmdraW5nIiB9LAorICAgICAgICB7ICJBc2lhL0NvbG9tYm8iLCAiTEsiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9EYW1hc2N1cyIsICJTWSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0RoYWthIiwgIkJEIiwgIlQiLCAiQXNpYS9EYWNjYSIsICJCU1QiIH0sCisgICAgICAgIHsgIkFzaWEvRGlsaSIsICJUTCIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0R1YmFpIiwgIkFFIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvRHVzaGFuYmUiLCAiVEoiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9HYXphIiwgIlBTIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvSGFyYmluIiwgIkNOIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0hvbmdfS29uZyIsICJISyIsICJUIiwgIkhvbmdrb25nIiB9LAorICAgICAgICB7ICJBc2lhL0hvdmQiLCAiTU4iLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvSXJrdXRzayIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9KYWthcnRhIiwgIklEIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0pheWFwdXJhIiwgIklEIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0plcnVzYWxlbSIsICJJTCIsICJUIiwgIkFzaWEvVGVsX0F2aXYiLCAiSXNyYWVsIiB9LAorICAgICAgICB7ICJBc2lhL0thYnVsIiwgIkFGIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvS2FtY2hhdGthIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0thcmFjaGkiLCAiUEsiLCAiVCIsICJQTFQiIH0sCisgICAgICAgIHsgIkFzaWEvS2FzaGdhciIsICJDTiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9LYXRtYW5kdSIsICJOUCIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0tyYXNub3lhcnNrIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0t1YWxhX0x1bXB1ciIsICJNWSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0t1Y2hpbmciLCAiTVkiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvS3V3YWl0IiwgIktXIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvTWFjYXUiLCAiTU8iLCAiVCIsICJBc2lhL01hY2FvIiB9LAorICAgICAgICB7ICJBc2lhL01hZ2FkYW4iLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvTWFrYXNzYXIiLCAiSUQiLCBudWxsLCAiQXNpYS9VanVuZ19QYW5kYW5nIiB9LAorICAgICAgICB7ICJBc2lhL01hbmlsYSIsICJQSCIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL011c2NhdCIsICJPTSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL05pY29zaWEiLCAiQ1kiLCAiVCIsICJFdXJvcGUvTmljb3NpYSIgfSwKKyAgICAgICAgeyAiQXNpYS9Ob3Zvc2liaXJzayIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9PbXNrIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL09yYWwiLCAiS1oiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvUGhub21fUGVuaCIsICJLSCIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1BvbnRpYW5hayIsICJJRCIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9QeW9uZ3lhbmciLCAiS1AiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9RYXRhciIsICJRQSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1F5enlsb3JkYSIsICJLWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9SYW5nb29uIiwgIk1NIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvUml5YWRoIiwgIlNBIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvUml5YWRoODciLCAiU0EiLCAiVCIsICJNaWRlYXN0L1JpeWFkaDg3IiB9LAorICAgICAgICB7ICJBc2lhL1JpeWFkaDg4IiwgIlNBIiwgIlQiLCAiTWlkZWFzdC9SaXlhZGg4OCIgfSwKKyAgICAgICAgeyAiQXNpYS9SaXlhZGg4OSIsICJTQSIsICJUIiwgIk1pZGVhc3QvUml5YWRoODkiIH0sCisgICAgICAgIHsgIkFzaWEvU2FpZ29uIiwgIlZOIiwgIlQiLCAiVlNUIiB9LAorICAgICAgICB7ICJBc2lhL1Nha2hhbGluIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1NhbWFya2FuZCIsICJVWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9TZW91bCIsICJLUiIsICJUIiwgIlJPSyIgfSwKKyAgICAgICAgeyAiQXNpYS9TaGFuZ2hhaSIsICJDTiIsICJUIiwgIlBSQyIsICJDVFQiIH0sCisgICAgICAgIHsgIkFzaWEvU2luZ2Fwb3JlIiwgIlNHIiwgIlQiLCAiU2luZ2Fwb3JlIiB9LAorICAgICAgICB7ICJBc2lhL1RhaXBlaSIsICJUVyIsICJUIiwgIlJPQyIgfSwKKyAgICAgICAgeyAiQXNpYS9UYXNoa2VudCIsICJVWiIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1RiaWxpc2kiLCAiR0UiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9UZWhyYW4iLCAiSVIiLCAiVCIsICJJcmFuIiB9LAorICAgICAgICB7ICJBc2lhL1RoaW1waHUiLCAiQlQiLCAiVCIsICJBc2lhL1RoaW1idSIgfSwKKyAgICAgICAgeyAiQXNpYS9Ub2t5byIsICJKUCIsICJUIiwgIkphcGFuIiwgIkpTVCIgfSwKKyAgICAgICAgeyAiQXNpYS9VbGFhbmJhYXRhciIsICJNTiIsIG51bGwsICJBc2lhL1VsYW5fQmF0b3IiIH0sCisgICAgICAgIHsgIkFzaWEvVXJ1bXFpIiwgIkNOIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1ZpZW50aWFuZSIsICJMQSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1ZsYWRpdm9zdG9rIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1lha3V0c2siLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvWWVrYXRlcmluYnVyZyIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9ZZXJldmFuIiwgIkFNIiwgIlQiLCAiTkVUIiB9LAorICAgICAgICB7ICJBdGxhbnRpYy9Bem9yZXMiLCAiUFQiLCBudWxsIH0sCisgICAgICAgIHsgIkF0bGFudGljL0Jlcm11ZGEiLCAiQk0iLCAiVCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvQ2FuYXJ5IiwgIkVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBdGxhbnRpYy9DYXBlX1ZlcmRlIiwgIkNWIiwgIlQiIH0sCisgICAgICAgIHsgIkF0bGFudGljL0ZhZXJvZSIsICJGTyIsICJUIiB9LAorICAgICAgICB7ICJBdGxhbnRpYy9KYW5fTWF5ZW4iLCAiU0oiLCBudWxsIH0sCisgICAgICAgIHsgIkF0bGFudGljL01hZGVpcmEiLCAiUFQiLCBudWxsIH0sCisgICAgICAgIHsgIkF0bGFudGljL1JleWtqYXZpayIsICJJUyIsICJUIiwgIkljZWxhbmQiIH0sCisgICAgICAgIHsgIkF0bGFudGljL1NvdXRoX0dlb3JnaWEiLCAiR1MiLCAiVCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvU3RfSGVsZW5hIiwgIlNIIiwgIlQiIH0sCisgICAgICAgIHsgIkF0bGFudGljL1N0YW5sZXkiLCAiRksiLCAiVCIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0FkZWxhaWRlIiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9Tb3V0aCIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0JyaXNiYW5lIiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9RdWVlbnNsYW5kIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvQnJva2VuX0hpbGwiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1lhbmNvd2lubmEiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9EYXJ3aW4iLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL05vcnRoIiwgIkFDVCIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0hvYmFydCIsICJBVSIsIG51bGwsICJBdXN0cmFsaWEvVGFzbWFuaWEiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9MaW5kZW1hbiIsICJBVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0xvcmRfSG93ZSIsICJBVSIsIG51bGwsICJBdXN0cmFsaWEvTEhJIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvTWVsYm91cm5lIiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9WaWN0b3JpYSIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL1BlcnRoIiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9XZXN0IiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvU3lkbmV5IiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9BQ1QiLCAiQXVzdHJhbGlhL0NhbmJlcnJhIiwgIkF1c3RyYWxpYS9OU1ciLCAiQUVUIiB9LAorICAgICAgICB7ICJFdGMvR01UIiwgbnVsbCwgbnVsbCwgIkV0Yy9HTVQrMCIsICJFdGMvR01ULTAiLCAiRXRjL0dNVDAiLCAiRXRjL0dyZWVud2ljaCIsICJFdGMvVUNUIiwgIkV0Yy9VVEMiLCAiRXRjL1VuaXZlcnNhbCIsICJFdGMvWnVsdSIsICJHTVQiLCAiR01UKzAiLCAiR01ULTAiLCAiR01UMCIsICJHcmVlbndpY2giLCAiVUNUIiwgIlVUQyIsICJVbml2ZXJzYWwiLCAiWnVsdSIgfSwKKyAgICAgICAgeyAiRXRjL0dNVCsxIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzEwIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzExIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzEyIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzIiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMyIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCs0IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzUiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrNiIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCs3IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzgiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrOSIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC0xIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTEwIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTExIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTEyIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTEzIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTE0IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTIiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMyIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC00IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTUiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtNiIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC03IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTgiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtOSIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL0Ftc3RlcmRhbSIsICJOTCIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQW5kb3JyYSIsICJBRCIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQXRoZW5zIiwgIkdSIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9CZWxmYXN0IiwgIkdCIiwgbnVsbCB9LAorICAgICAgICB7ICJFdXJvcGUvQmVsZ3JhZGUiLCAiQ1MiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0JlcmxpbiIsICJERSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQnJhdGlzbGF2YSIsICJTSyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQnJ1c3NlbHMiLCAiQkUiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0J1Y2hhcmVzdCIsICJSTyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQnVkYXBlc3QiLCAiSFUiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0NoaXNpbmF1IiwgIk1EIiwgIlQiLCAiRXVyb3BlL1RpcmFzcG9sIiB9LAorICAgICAgICB7ICJFdXJvcGUvQ29wZW5oYWdlbiIsICJESyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvRHVibGluIiwgIklFIiwgIlQiLCAiRWlyZSIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0dpYnJhbHRhciIsICJHSSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvSGVsc2lua2kiLCAiRkkiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0lzdGFuYnVsIiwgIlRSIiwgIlQiLCAiQXNpYS9Jc3RhbmJ1bCIsICJUdXJrZXkiIH0sCisgICAgICAgIHsgIkV1cm9wZS9LYWxpbmluZ3JhZCIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL0tpZXYiLCAiVUEiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9MaXNib24iLCAiUFQiLCAiVCIsICJQb3J0dWdhbCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0xqdWJsamFuYSIsICJTSSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTG9uZG9uIiwgIkdCIiwgIlQiLCAiR0IiLCAiR0ItRWlyZSIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0x1eGVtYm91cmciLCAiTFUiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL01hZHJpZCIsICJFUyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTWFsdGEiLCAiTVQiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL01hcmllaGFtbiIsICJBWCIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTWluc2siLCAiQlkiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL01vbmFjbyIsICJNQyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTW9zY293IiwgIlJVIiwgbnVsbCwgIlctU1UiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Pc2xvIiwgIk5PIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9QYXJpcyIsICJGUiIsICJUIiwgIkVDVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1ByYWd1ZSIsICJDWiIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvUmlnYSIsICJMViIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvUm9tZSIsICJJVCIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvU2FtYXJhIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJFdXJvcGUvU2FuX01hcmlubyIsICJTTSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvU2FyYWpldm8iLCAiQkEiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1NpbWZlcm9wb2wiLCAiVUEiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9Ta29wamUiLCAiTUsiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1NvZmlhIiwgIkJHIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9TdG9ja2hvbG0iLCAiU0UiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1RhbGxpbm4iLCAiRUUiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1RpcmFuZSIsICJBTCIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvVXpoZ29yb2QiLCAiVUEiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9WYWR1eiIsICJMSSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvVmF0aWNhbiIsICJWQSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvVmllbm5hIiwgIkFUIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9WaWxuaXVzIiwgIkxUIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9XYXJzYXciLCAiUEwiLCAiVCIsICJQb2xhbmQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9aYWdyZWIiLCAiSFIiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1phcG9yb3poeWUiLCAiVUEiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9adXJpY2giLCAiQ0giLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL0FudGFuYW5hcml2byIsICJNRyIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vQ2hhZ29zIiwgIklPIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9DaHJpc3RtYXMiLCAiQ1giLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL0NvY29zIiwgIkNDIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9Db21vcm8iLCAiS00iLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL0tlcmd1ZWxlbiIsICJURiIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vTWFoZSIsICJTQyIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vTWFsZGl2ZXMiLCAiTVYiLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL01hdXJpdGl1cyIsICJNVSIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vTWF5b3R0ZSIsICJZVCIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vUmV1bmlvbiIsICJSRSIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0FwaWEiLCAiV1MiLCAiVCIsICJNSVQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvQXVja2xhbmQiLCAiTloiLCAiVCIsICJOWiIsICJOU1QiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvQ2hhdGhhbSIsICJOWiIsIG51bGwsICJOWi1DSEFUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0Vhc3RlciIsICJDTCIsIG51bGwsICJDaGlsZS9FYXN0ZXJJc2xhbmQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvRWZhdGUiLCAiVlUiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9FbmRlcmJ1cnkiLCAiS0kiLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvRmFrYW9mbyIsICJUSyIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0ZpamkiLCAiRkoiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9GdW5hZnV0aSIsICJUViIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0dhbGFwYWdvcyIsICJFQyIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9HYW1iaWVyIiwgIlBGIiwgbnVsbCwgIlN5c3RlbVYvWVNUOSIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9HdWFkYWxjYW5hbCIsICJTQiIsICJUIiwgIlNTVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9HdWFtIiwgIkdVIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvSG9ub2x1bHUiLCAiVVMiLCBudWxsLCAiSFNUIiwgIlN5c3RlbVYvSFNUMTAiLCAiVVMvSGF3YWlpIiB9LAorICAgICAgICB7ICJQYWNpZmljL0pvaG5zdG9uIiwgIlVNIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL0tpcml0aW1hdGkiLCAiS0kiLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvS29zcmFlIiwgIkZNIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL0t3YWphbGVpbiIsICJNSCIsIG51bGwsICJLd2FqYWxlaW4iIH0sCisgICAgICAgIHsgIlBhY2lmaWMvTWFqdXJvIiwgIk1IIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL01hcnF1ZXNhcyIsICJQRiIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9NaWR3YXkiLCAiVU0iLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvTmF1cnUiLCAiTlIiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9OaXVlIiwgIk5VIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvTm9yZm9sayIsICJORiIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL05vdW1lYSIsICJOQyIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL1BhZ29fUGFnbyIsICJBUyIsICJUIiwgIlBhY2lmaWMvU2Ftb2EiLCAiVVMvU2Ftb2EiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvUGFsYXUiLCAiUFciLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9QaXRjYWlybiIsICJQTiIsICJUIiwgIlN5c3RlbVYvUFNUOCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Qb25hcGUiLCAiRk0iLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5IiwgIlBHIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvUmFyb3RvbmdhIiwgIkNLIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvU2FpcGFuIiwgIk1QIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvVGFoaXRpIiwgIlBGIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvVGFyYXdhIiwgIktJIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL1RvbmdhdGFwdSIsICJUTyIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL1RydWsiLCAiRk0iLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvV2FrZSIsICJVTSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9XYWxsaXMiLCAiV0YiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9ZYXAiLCAiRk0iLCBudWxsIH0sCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1pvbmVNZXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9ab25lTWV0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MTYyYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9ab25lTWV0YS5qYXZhCkBAIC0wLDAgKzEsNTk5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBTZXB0ZW1iZXIgNCAyMDAzCisqIFNpbmNlOiBJQ1UgMi44CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogVGhpcyBjbGFzcywgbm90IHRvIGJlIGluc3RhbnRpYXRlZCwgaW1wbGVtZW50cyB0aGUgbWV0YS1kYXRhCisgKiBtaXNzaW5nIGZyb20gdGhlIHVuZGVybHlpbmcgY29yZSBKREsgaW1wbGVtZW50YXRpb24gb2YgdGltZSB6b25lcy4KKyAqIFRoZXJlIGFyZSB0d28gbWlzc2luZyBmZWF0dXJlczogT2J0YWluaW5nIGEgbGlzdCBvZiBhdmFpbGFibGUgem9uZXMKKyAqIGZvciBhIGdpdmVuIGNvdW50cnkgKGFzIGRlZmluZWQgYnkgdGhlIE9sc29uIGRhdGFiYXNlKSwgYW5kCisgKiBvYnRhaW5pbmcgYSBsaXN0IG9mIGVxdWl2YWxlbnQgem9uZXMgZm9yIGEgZ2l2ZW4gem9uZSAoYXMgZGVmaW5lZAorICogYnkgT2xzb24gbGlua3MpLgorICoKKyAqIFRoaXMgY2xhc3MgdXNlcyBhIGRhdGEgY2xhc3MsIFpvbmVNZXRhRGF0YSwgd2hpY2ggaXMgY3JlYXRlZCBieSB0aGUKKyAqIHRvb2wgdHoyaWN1LgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBab25lTWV0YSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY291bnRyeS4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+VGltZVpvbmUuZ2V0VGltZVpvbmUoKTwvY29kZT4gdG8gY29uc3RydWN0IHRoZQorICAgICAqIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBjb3VudHJ5IGEgdHdvLWxldHRlciBJU08gMzE2NiBjb3VudHJ5IGNvZGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICogdG8gcmV0dXJuIHpvbmVzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGNvdW50cnkKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBjb3VudHJ5LiAgSWYgdGhlcmUgYXJlIG5vbmUsIHJldHVybiBhIHplcm8tbGVuZ3RoIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhTdHJpbmcgY291bnRyeSkgeworICAgICAgICBpZighZ2V0T2xzb25NZXRhKCkpeworICAgICAgICAgICAgcmV0dXJuIEVNUFRZOworICAgICAgICB9CisgICAgICAgIHRyeXsKKwkgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworCSAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVnaW9ucyA9IHRvcC5nZXQoa1JFR0lPTlMpOworCSAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbmFtZXMgPSB0b3AuZ2V0KGtOQU1FUyk7IC8vIGRlcmVmZXJlbmNlIFpvbmVzIHNlY3Rpb24KKwkgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRlbXAgPSByZWdpb25zLmdldChjb3VudHJ5KTsKKwkgICAgICAgIGludFtdIHZlY3RvciA9IHRlbXAuZ2V0SW50VmVjdG9yKCk7CisJICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoInZlY3Rvci5sZW5ndGg+MCIsIHZlY3Rvci5sZW5ndGg+MCk7CisJICAgICAgICBTdHJpbmdbXSByZXQgPSBuZXcgU3RyaW5nW3ZlY3Rvci5sZW5ndGhdOworCSAgICAgICAgZm9yIChpbnQgaT0wOyBpPHZlY3Rvci5sZW5ndGg7ICsraSkgeworCSAgICAgICAgCWlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgidmVjdG9yW2ldID49IDAgJiYgdmVjdG9yW2ldIDwgT0xTT05fWk9ORV9DT1VOVCIsIAorCSAgICAgICAgCQkJdmVjdG9yW2ldID49IDAgJiYgdmVjdG9yW2ldIDwgT0xTT05fWk9ORV9DT1VOVCk7CisJICAgICAgICAgICAgcmV0W2ldID0gbmFtZXMuZ2V0U3RyaW5nKHZlY3RvcltpXSk7CisJICAgICAgICB9CisJICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgCS8vdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEVNUFRZOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIGlmKCFnZXRPbHNvbk1ldGEoKSl7CisgICAgICAgICAgICByZXR1cm4gRU1QVFk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdG9wID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ6b25laW5mbyIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBuYW1lcyA9IHRvcC5nZXQoa05BTUVTKTsgLy8gZGVyZWZlcmVuY2UgWm9uZXMgc2VjdGlvbgorICAgICAgICAgICAgcmV0dXJuIG5hbWVzLmdldFN0cmluZ0FycmF5KCk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy90aHJvdyBhd2F5IHRoZSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRU1QVFk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhpbnQgb2Zmc2V0KXsKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPE9MU09OX1pPTkVfQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHVuaXN0cjsKKyAgICAgICAgICAgIGlmICgodW5pc3RyPWdldElEKGkpKSE9bnVsbCkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgVkVSWSBpbmVmZmljaWVudC4KKyAgICAgICAgICAgICAgICBUaW1lWm9uZSB6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUodW5pc3RyKTsKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ2V0IGJhY2sgdGhlIElEIHdlIHdhbnRlZCAoaWYgdGhlIElEIGlzCisgICAgICAgICAgICAgICAgLy8gaW52YWxpZCB3ZSBnZXQgYmFjayBHTVQpLgorICAgICAgICAgICAgICAgIGlmICh6ICE9IG51bGwgJiYgei5nZXRJRCgpLmVxdWFscyh1bmlzdHIpICYmCisgICAgICAgICAgICAgICAgICAgIHouZ2V0UmF3T2Zmc2V0KCkgPT0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHZlY3Rvci5hZGQodW5pc3RyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoIXZlY3Rvci5pc0VtcHR5KCkpeworICAgICAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IG5ldyBTdHJpbmdbdmVjdG9yLnNpemUoKV07CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZ1tdKXZlY3Rvci50b0FycmF5KHN0cmluZ3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldElEKGludCBpKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbmFtZXMgPSB0b3AuZ2V0KGtOQU1FUyk7IC8vIGRlcmVmZXJlbmNlIFpvbmVzIHNlY3Rpb24KKyAgICAgICAgICAgIHJldHVybiBuYW1lcy5nZXRTdHJpbmcoaSk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy90aHJvdyBhd2F5IHRoZSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIElEcyBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdAorICAgICAqIGluY2x1ZGVzIHRoZSBnaXZlbiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzCisgICAgICogdGhhdCBiZWhhdmUgaWRlbnRpY2FsbHkgdG8gdGhlIGdpdmVuIHpvbmUuCisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSBhcmUgbm8gZXF1aXZhbGVudCB6b25lcywgdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogMC4gIFRoaXMgbWVhbnMgZWl0aGVyIHRoZSBnaXZlbiBJRCBpcyBub3QgYSB2YWxpZCB6b25lLCBvciBpdAorICAgICAqIGlzIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgZXF1aXZhbGVudCB6b25lcy4KKyAgICAgKiBAcGFyYW0gaWQgYSBzeXN0ZW0gdGltZSB6b25lIElECisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIHpvbmVzIGluIHRoZSBlcXVpdmFsZW5jeSBncm91cCBjb250YWluaW5nCisgICAgICogJ2lkJywgb3IgemVybyBpZiB0aGVyZSBhcmUgbm8gZXF1aXZhbGVudCB6b25lcy4KKyAgICAgKiBAc2VlICNnZXRFcXVpdmFsZW50SUQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBpbnQgY291bnRFcXVpdmFsZW50SURzKFN0cmluZyBpZCkgeworCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcyA9IG9wZW5PbHNvblJlc291cmNlKGlkKTsKKyAgICAgICAgaW50IHNpemUgPSByZXMuZ2V0U2l6ZSgpOworICAgICAgICBpZiAoc2l6ZSA9PSA0IHx8IHNpemUgPT0gNikgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcj1yZXMuZ2V0KHNpemUtMSk7CisgICAgICAgICAgICAvL3Jlc3VsdCA9IHVyZXNfZ2V0U2l6ZSgmcik7IC8vIGRvZXNuJ3Qgd29yaworICAgICAgICAgICAgaW50W10gdiA9IHIuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICByZXR1cm4gdi5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBJRCBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdCBpbmNsdWRlcyB0aGUgZ2l2ZW4KKyAgICAgKiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzIHRoYXQgYmVoYXZlCisgICAgICogaWRlbnRpY2FsbHkgdG8gdGhlIGdpdmVuIHpvbmUuCisgICAgICoKKyAgICAgKiA8cD5UaGUgZ2l2ZW4gaW5kZXggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgMC4ubi0xLCB3aGVyZSBuIGlzIHRoZQorICAgICAqIHZhbHVlIHJldHVybmVkIGJ5IDxjb2RlPmNvdW50RXF1aXZhbGVudElEcyhpZCk8L2NvZGU+LiAgRm9yCisgICAgICogc29tZSB2YWx1ZSBvZiAnaW5kZXgnLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBlcXVhbCB0byB0aGUKKyAgICAgKiBnaXZlbiBpZC4gIElmIHRoZSBnaXZlbiBpZCBpcyBub3QgYSB2YWxpZCBzeXN0ZW0gdGltZSB6b25lLCBvcgorICAgICAqIGlmICdpbmRleCcgaXMgb3V0IG9mIHJhbmdlLCB0aGVuIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLgorICAgICAqIEBwYXJhbSBpZCBhIHN5c3RlbSB0aW1lIHpvbmUgSUQKKyAgICAgKiBAcGFyYW0gaW5kZXggYSB2YWx1ZSBmcm9tIDAgdG8gbi0xLCB3aGVyZSBuIGlzIHRoZSB2YWx1ZQorICAgICAqIHJldHVybmVkIGJ5IDxjb2RlPmNvdW50RXF1aXZhbGVudElEcyhpZCk8L2NvZGU+CisgICAgICogQHJldHVybiB0aGUgSUQgb2YgdGhlIGluZGV4LXRoIHpvbmUgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwCisgICAgICogY29udGFpbmluZyAnaWQnLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgJ2lkJyBpcyBub3QgYSB2YWxpZAorICAgICAqIHN5c3RlbSBJRCBvciAnaW5kZXgnIGlzIG91dCBvZiByYW5nZQorICAgICAqIEBzZWUgI2NvdW50RXF1aXZhbGVudElEcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZyBnZXRFcXVpdmFsZW50SUQoU3RyaW5nIGlkLCBpbnQgaW5kZXgpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdD0iIjsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzID0gb3Blbk9sc29uUmVzb3VyY2UoaWQpOworICAgICAgICBpbnQgem9uZSA9IC0xOworICAgICAgICBpbnQgc2l6ZSA9IHJlcy5nZXRTaXplKCk7CisgICAgICAgIGlmIChzaXplID09IDQgfHwgc2l6ZSA9PSA2KSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gcmVzLmdldChzaXplLTEpOworICAgICAgICAgICAgaW50W10gdiA9IHIuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHYubGVuZ3RoICYmIGdldE9sc29uTWV0YSgpKSB7CisgICAgICAgICAgICAgICAgem9uZSA9IHZbaW5kZXhdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh6b25lID49IDApIHsKKyAgICAgICAgCUlDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYXJlcyA9IHRvcC5nZXQoa05BTUVTKTsgLy8gZGVyZWZlcmVuY2UgWm9uZXMgc2VjdGlvbgorICAgICAgICAgICAgcmVzdWx0ID0gYXJlcy5nZXRTdHJpbmcoem9uZSk7CisKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGUgZXF1aXZhbGVuY3kgbWFwLgorICAgICAqCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBjcmVhdGVFcXVpdk1hcCgpIHsKKyAgICAgICAgRVFVSVZfTUFQID0gbmV3IFRyZWVNYXAoKTsKKworICAgICAgICAvLyB0cnkgbGVhdmluZyBhbGwgaWRzIGFzIHZhbGlkCisvLyAgICAgICAgIFNldCB2YWxpZCA9IGdldFZhbGlkSURzKCk7CisKKyAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7IC8vIHJldXNlIHRoaXMgYmVsb3cKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8Wm9uZU1ldGFEYXRhLkVRVUlWLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmdbXSB6ID0gWm9uZU1ldGFEYXRhLkVRVUlWW2ldOworICAgICAgICAgICAgbGlzdC5jbGVhcigpOworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHoubGVuZ3RoOyArK2opIHsKKy8vICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkLmNvbnRhaW5zKHpbal0pKSB7CisgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKHpbal0pOworLy8gICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGlzdC5zaXplKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gYSA9IChTdHJpbmdbXSkgbGlzdC50b0FycmF5KEVNUFRZKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8YS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBFUVVJVl9NQVAucHV0KGFbal0sIGEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIGdldENhbm9uaWNhbEluZm8oU3RyaW5nIGlkKSB7CisgICAgICAgIGlmIChjYW5vbmljYWxNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgTWFwIG0gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBab25lSW5mb0V4dC5DTERSX0lORk8ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBjbGlzdCA9IFpvbmVJbmZvRXh0LkNMRFJfSU5GT1tpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYyA9IGNsaXN0WzBdOworICAgICAgICAgICAgICAgIG0ucHV0KGMsIGNsaXN0KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMzsgaiA8IGNsaXN0Lmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIG0ucHV0KGNsaXN0W2pdLCBjbGlzdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc3luY2hyb25pemVkIChab25lTWV0YS5jbGFzcykgeworICAgICAgICAgICAgICAgIGNhbm9uaWNhbE1hcCA9IG07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKWNhbm9uaWNhbE1hcC5nZXQoaWQpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgY2Fub25pY2FsTWFwID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2Fub25pY2FsIGlkIGZvciB0aGlzIHR6aWQsIHdoaWNoIG1pZ2h0IGJlIHRoZSBpZCBpdHNlbGYuCisgICAgICogSWYgdGhlcmUgaXMgbm8gY2Fub25pY2FsIGlkIGZvciBpdCwgcmV0dXJuIHRoZSBwYXNzZWQtaW4gaWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0Q2Fub25pY2FsSUQoU3RyaW5nIHR6aWQpIHsKKyAgICAgICAgU3RyaW5nW10gaW5mbyA9IGdldENhbm9uaWNhbEluZm8odHppZCk7CisgICAgICAgIGlmIChpbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmZvWzBdOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0emlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2Fub25pY2FsIGNvdW50cnkgY29kZSBmb3IgdGhpcyB0emlkLiAgSWYgd2UgaGF2ZSBub25lLCBvciBpZiB0aGUgdGltZSB6b25lCisgICAgICogaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhIGNvdW50cnksIHJldHVybiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldENhbm9uaWNhbENvdW50cnkoU3RyaW5nIHR6aWQpIHsKKyAgICAgICAgU3RyaW5nW10gaW5mbyA9IGdldENhbm9uaWNhbEluZm8odHppZCk7CisgICAgICAgIGlmIChpbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmZvWzFdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY291bnRyeSBjb2RlIGlmIHRoaXMgaXMgYSAnc2luZ2xlJyB0aW1lIHpvbmUgdGhhdCBjYW4gZmFsbGJhY2sgdG8ganVzdAorICAgICAqIHRoZSBjb3VudHJ5LCBvdGhlcndpc2UgcmV0dXJuIG51bGwuICAoTm90ZSwgb25lIG11c3QgYWxzbyBjaGVjayB0aGUgbG9jYWxlIGRhdGEKKyAgICAgKiB0byBzZWUgdGhhdCB0aGVyZSBpcyBhIGxvY2FsaXphdGlvbiBmb3IgdGhlIGNvdW50cnkgaW4gb3JkZXIgdG8gaW1wbGVtZW50CisgICAgICogdHIjMzUgYXBwZW5kaXggSiBzdGVwIDUuKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFNpbmdsZUNvdW50cnkoU3RyaW5nIHR6aWQpIHsKKyAgICAgICAgU3RyaW5nW10gaW5mbyA9IGdldENhbm9uaWNhbEluZm8odHppZCk7CisgICAgICAgIGlmIChpbmZvICE9IG51bGwgJiYgaW5mb1syXSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gaW5mb1sxXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5kbGUgZmFsbGJhY2tzIGZvciBnZW5lcmljIHRpbWUgKHJ1bGVzIEUuLiBHKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpc3BsYXlGYWxsYmFjayhTdHJpbmcgdHppZCwgU3RyaW5nIGNpdHksIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZ1tdIGluZm8gPSBnZXRDYW5vbmljYWxJbmZvKHR6aWQpOworICAgICAgICBpZiAoaW5mbyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gZXJyb3IKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBjb3VudHJ5X2NvZGUgPSBpbmZvWzFdOworICAgICAgICBpZiAoY291bnRyeV9jb2RlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBlcnJvciEgICAKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gbnVsbDsKKyAgICAgICAgaWYgKGNvdW50cnlfY29kZSAhPSBudWxsKSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IAorICAgICAgICAgICAgICAgIChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGlmIChyYi5nZXRMb2FkaW5nU3RhdHVzKCkgIT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UICYmIHJiLmdldExvYWRpbmdTdGF0dXMoKSAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0RFRkFVTFQpIHsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgieHhfIiArIGNvdW50cnlfY29kZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjb3VudHJ5ID09IG51bGwgfHwgY291bnRyeS5sZW5ndGgoKSA9PSAwKSBjb3VudHJ5ID0gY291bnRyeV9jb2RlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUaGlzIGlzIG5vdCBiZWhhdmlvciBzcGVjaWZpZWQgaW4gdHIzNSwgYnV0IGJlaGF2aW9yIGFkZGVkIGJ5IE1hcmsuICAKKyAgICAgICAgLy8gVFIzNSBzYXlzIHRvIGRpc3BsYXkgdGhlIGNvdW50cnkgX29ubHlfIGlmIHRoZXJlIGlzIGEgbG9jYWxpemF0aW9uLgorICAgICAgICBpZiAoaW5mb1syXSAhPSBudWxsKSB7IC8vIHNpbmdsZSBjb3VudHJ5CisgICAgICAgICAgICByZXR1cm4gZGlzcGxheVJlZ2lvbihjb3VudHJ5LCBsb2NhbGUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNpdHkgPT0gbnVsbCkgeworICAgICAgICAgICAgY2l0eSA9IHR6aWQuc3Vic3RyaW5nKHR6aWQubGFzdEluZGV4T2YoJy8nKSsxKS5yZXBsYWNlKCdfJywnICcpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGZsYlBhdCA9IGdldFRaTG9jYWxpemF0aW9uSW5mbyhsb2NhbGUsIEZBTExCQUNLX0ZPUk1BVCk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChmbGJQYXQpOworCisgICAgICAgIHJldHVybiBtZi5mb3JtYXQobmV3IE9iamVjdFtdIHsgY2l0eSwgY291bnRyeSB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBkaXNwbGF5UmVnaW9uKFN0cmluZyBjaXR5T3JDb3VudHJ5LCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmcgcmVnUGF0ID0gZ2V0VFpMb2NhbGl6YXRpb25JbmZvKGxvY2FsZSwgUkVHSU9OX0ZPUk1BVCk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChyZWdQYXQpOworICAgICAgICByZXR1cm4gbWYuZm9ybWF0KG5ldyBPYmplY3RbXSB7IGNpdHlPckNvdW50cnkgfSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZGlzcGxheUdNVChsb25nIHZhbHVlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmcgbXNncGF0ID0gZ2V0VFpMb2NhbGl6YXRpb25JbmZvKGxvY2FsZSwgR01UKTsKKyAgICAgICAgU3RyaW5nIGR0ZXBhdCA9IGdldFRaTG9jYWxpemF0aW9uSW5mbyhsb2NhbGUsIEhPVVIpOworICAgICAgICAKKyAgICAgICAgaW50IG4gPSBkdGVwYXQuaW5kZXhPZignOycpOworICAgICAgICBpZiAobiAhPSAtMSkgeworICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gLSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBkdGVwYXQgPSBkdGVwYXQuc3Vic3RyaW5nKG4rMSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGR0ZXBhdCA9IGR0ZXBhdC5zdWJzdHJpbmcoMCwgbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvL2ZpbmFsIGxvbmcgbXBoID0gMzYwMDAwMDsKKyAgICAgICAgLy9maW5hbCBsb25nIG1wbSA9IDYwMDAwOworCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZHRlcGF0LCBsb2NhbGUpOworICAgICAgICBzZGYuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpKTsKKyAgICAgICAgU3RyaW5nIHJlcyA9IHNkZi5mb3JtYXQobmV3IExvbmcodmFsdWUpKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KG1zZ3BhdCk7CisgICAgICAgIHJlcyA9IG1mLmZvcm1hdChuZXcgT2JqZWN0W10geyByZXMgfSk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcKKyAgICAgICAgSE9VUiA9ICJob3VyRm9ybWF0IiwKKyAgICAgICAgR01UID0gImdtdEZvcm1hdCIsCisgICAgICAgIFJFR0lPTl9GT1JNQVQgPSAicmVnaW9uRm9ybWF0IiwKKyAgICAgICAgRkFMTEJBQ0tfRk9STUFUID0gImZhbGxiYWNrRm9ybWF0IiwKKyAgICAgICAgWk9ORV9TVFJJTkdTID0gInpvbmVTdHJpbmdzIiwKKyAgICAgICAgRk9SV0FSRF9TTEFTSCA9ICIvIjsKKyAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBpbmRleCdkIHR6IGRhdHVtIGZvciB0aGlzIGxvY2FsZS4gIEluZGV4IG11c3QgYmUgb25lIG9mIHRoZSAKKyAgICAgKiB2YWx1ZXMgUFJFRklYLCBIT1VSLCBHTVQsIFJFR0lPTl9GT1JNQVQsIEZBTExCQUNLX0ZPUk1BVAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFRaTG9jYWxpemF0aW9uSW5mbyhVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGZvcm1hdCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIHJldHVybiBidW5kbGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKFpPTkVfU1RSSU5HUytGT1JXQVJEX1NMQVNIK2Zvcm1hdCk7CisgICAgfQorCisvLyAgICBwcml2YXRlIHN0YXRpYyBTZXQgZ2V0VmFsaWRJRHMoKSB7CisvLyAgICAgICAgLy8gQ29uc3RydWN0IGxpc3Qgb2YgdGltZSB6b25lcyB0aGF0IGFyZSB2YWxpZCwgYWNjb3JkaW5nCisvLyAgICAgICAgLy8gdG8gdGhlIGN1cnJlbnQgdW5kZXJseWluZyBjb3JlIEpESy4gIFdlIGhhdmUgdG8gZG8gdGhpcworLy8gICAgICAgIC8vIGF0IHJ1bnRpbWUgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGF0IHdlJ3JlIHJ1bm5pbmcgb24uCisvLyAgICAgICAgU2V0IHZhbGlkID0gbmV3IFRyZWVTZXQoKTsKKy8vICAgICAgICB2YWxpZC5hZGRBbGwoQXJyYXlzLmFzTGlzdChqYXZhLnV0aWwuVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCkpKTsKKy8vICAgICAgICByZXR1cm4gdmFsaWQ7CisvLyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbXB0eSBzdHJpbmcgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gRU1QVFkgPSBuZXcgU3RyaW5nWzBdOworCisKKworICAgIC8qKgorICAgICAqIEdpdmVuIGFuIElELCBvcGVuIHRoZSBhcHByb3ByaWF0ZSByZXNvdXJjZSBmb3IgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBEZXJlZmVyZW5jZSBhbGlhc2VzIGlmIG5lY2Vzc2FyeS4KKyAgICAgKiBAcGFyYW0gaWQgem9uZSBpZAorICAgICAqIEByZXR1cm4gdG9wLWxldmVsIHJlc291cmNlIGJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgb3Blbk9sc29uUmVzb3VyY2UoU3RyaW5nIGlkKQorICAgIHsKKyAgICAgICAgaWYoIWdldE9sc29uTWV0YSgpKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBnZXRab25lQnlOYW1lKHRvcCwgaWQpOworICAgICAgICAvLyBEZXJlZmVyZW5jZSBpZiB0aGlzIGlzIGFuIGFsaWFzLiAgRG9jcyBzYXkgcmVzdWx0IHNob3VsZCBiZSAxCisgICAgICAgIC8vIGJ1dCBpdCBpcyAwIGluIDIuOCAoPykuCisgICAgICAgICBpZiAocmVzLmdldFNpemUoKSA8PSAxICYmIGdldE9sc29uTWV0YSh0b3ApKSB7CisgICAgICAgICAgICBpbnQgZGVyZWYgPSByZXMuZ2V0SW50KCkgKyAwOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYXJlcyA9IHRvcC5nZXQoa1pPTkVTKTsgLy8gZGVyZWZlcmVuY2UgWm9uZXMgc2VjdGlvbgorICAgICAgICAgICAgcmVzID0gYXJlcy5nZXQoZGVyZWYpOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICAvKioKKyAgICAgKiBGZXRjaCBhIHNwZWNpZmljIHpvbmUgYnkgbmFtZS4gIFJlcGxhY2VzIHRoZSBnZXRCeUtleSBjYWxsLiAKKyAgICAgKiBAcGFyYW0gdG9wIFRvcCB0aW1lem9uZSByZXNvdXJjZQorICAgICAqIEBwYXJhbSBpZCBUaW1lIHpvbmUgSUQKKyAgICAgKiBAcmV0dXJuIHRoZSB6b25lJ3MgYnVuZGxlIGlmIGZvdW5kLCBvciB1bmRlZmluZWQgaWYgZXJyb3IuICBSZXVzZXMgb2xkYnVuZGxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGdldFpvbmVCeU5hbWUoSUNVUmVzb3VyY2VCdW5kbGUgdG9wLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgLy8gbG9hZCB0aGUgUnVsZXMgb2JqZWN0CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRtcCA9IHRvcC5nZXQoa05BTUVTKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNlYXJjaCBmb3IgdGhlIHN0cmluZworICAgICAgICBpbnQgaWR4ID0gZmluZEluU3RyaW5nQXJyYXkodG1wLCBpZCk7CisgICAgICAgIAorICAgICAgICBpZigoaWR4ID09IC0xKSkgeworICAgICAgICAgICAgLy8gbm90IGZvdW5kIAorICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihrTkFNRVMsIHRtcC5yZXNQYXRoLCBpZCk7CisgICAgICAgICAgICAvL3VyZXNfY2xvc2Uob2xkYnVuZGxlKTsKKyAgICAgICAgICAgIC8vb2xkYnVuZGxlID0gTlVMTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRtcCA9IHRvcC5nZXQoa1pPTkVTKTsgLy8gZ2V0IFpvbmVzIG9iamVjdCBmcm9tIHRvcAorICAgICAgICAgICAgdG1wID0gdG1wLmdldChpZHgpOyAvLyBnZXQgbnRoIFpvbmUgb2JqZWN0CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRtcDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRJblN0cmluZ0FycmF5KElDVVJlc291cmNlQnVuZGxlIGFycmF5LCBTdHJpbmcgaWQpeworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICBpbnQgbGltaXQgPSBhcnJheS5nZXRTaXplKCk7CisgICAgICAgIGludCBtaWQ7CisgICAgICAgIFN0cmluZyB1ID0gbnVsbDsKKyAgICAgICAgaW50IGxhc3RNaWQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgaWYoKGxpbWl0IDwgMSkpIHsgCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbWlkID0gKGludCkoKHN0YXJ0ICsgbGltaXQpIC8gMik7CisgICAgICAgICAgICBpZiAobGFzdE1pZCA9PSBtaWQpIHsgICAvKiBIYXZlIHdlIG1vdmVkPyAqLworICAgICAgICAgICAgICAgIGJyZWFrOyAgLyogV2UgaGF2ZW4ndCBtb3ZlZCwgYW5kIGl0IHdhc24ndCBmb3VuZC4gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RNaWQgPSBtaWQ7CisgICAgICAgICAgICB1ID0gYXJyYXkuZ2V0U3RyaW5nKG1pZCk7CisgICAgICAgICAgICBpZih1PT1udWxsKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCByID0gaWQuY29tcGFyZVRvKHUpOworICAgICAgICAgICAgaWYocj09MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYocjwwKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1pPTkVJTkZPID0gInpvbmVpbmZvIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1JFR0lPTlMgID0gIlJlZ2lvbnMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBrWk9ORVMgICAgPSAiWm9uZXMiOworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtSVUxFUyAgICA9ICJSdWxlcyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtOQU1FUyAgICA9ICJOYW1lcyI7CisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0RFRkFVTFQgID0gIkRlZmF1bHQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBrR01UX0lEICAgPSAiR01UIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0NVU1RPTV9JRD0gIkN1c3RvbSI7ICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgem9uZUJ1bmRsZSA9IG51bGw7CisgICAgLy9wcml2YXRlIHN0YXRpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24gaWRFbnVtICA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdENhY2hlIHpvbmVDYWNoZSA9IG5ldyBTb2Z0Q2FjaGUoKTsKKyAgICAvKioKKyAgICAgKiBUaGUgT2xzb24gZGF0YSBpcyBzdG9yZWQgdGhlICJ6b25laW5mbyIgcmVzb3VyY2UgYnVuZGxlLgorICAgICAqIFN1Yi1yZXNvdXJjZXMgYXJlIG9yZ2FuaXplZCBpbnRvIHRocmVlIHJhbmdlcyBvZiBkYXRhOiBab25lcywgZmluYWwKKyAgICAgKiBydWxlcywgYW5kIGNvdW50cnkgdGFibGVzLiAgVGhlcmUgaXMgYWxzbyBhIG1ldGEtZGF0YSByZXNvdXJjZQorICAgICAqIHdoaWNoIGhhcyAzIGludGVnZXJzOiBUaGUgbnVtYmVyIG9mIHpvbmVzLCBydWxlcywgYW5kIGNvdW50cmllcywKKyAgICAgKiByZXNwZWN0aXZlbHkuICBUaGUgY291bnRyeSBjb3VudCBpbmNsdWRlcyB0aGUgbm9uLWNvdW50cnkgJ0RlZmF1bHQnLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgT0xTT05fWk9ORV9TVEFSVCA9IC0xOyAvLyBzdGFydGluZyBpbmRleCBvZiB6b25lcworICAgIHN0YXRpYyBpbnQgT0xTT05fWk9ORV9DT1VOVCA9IDA7ICAvLyBjb3VudCBvZiB6b25lcworCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBwb2ludGVyIHRvIGFuIG9wZW4gInpvbmVpbmZvIiByZXNvdXJjZSwgbG9hZCB1cCB0aGUgT2xzb24KKyAgICAgKiBtZXRhLWRhdGEuIFJldHVybiB0cnVlIGlmIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBnZXRPbHNvbk1ldGEoSUNVUmVzb3VyY2VCdW5kbGUgdG9wKSB7CisgICAgICAgIGlmIChPTFNPTl9aT05FX1NUQVJUIDwgMCkgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzID0gdG9wLmdldChrWk9ORVMpOworICAgICAgICAgICAgT0xTT05fWk9ORV9DT1VOVCA9IHJlcy5nZXRTaXplKCk7CisgICAgICAgICAgICBPTFNPTl9aT05FX1NUQVJUID0gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKE9MU09OX1pPTkVfU1RBUlQgPj0gMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTG9hZCB1cCB0aGUgT2xzb24gbWV0YS1kYXRhLiBSZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZ2V0T2xzb25NZXRhKCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInpvbmVpbmZvIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgaWYoT0xTT05fWk9ORV9TVEFSVCA8IDApIHsKKyAgICAgICAgICAgIGdldE9sc29uTWV0YSh0b3ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoT0xTT05fWk9ORV9TVEFSVCA+PSAwKTsKKyAgICB9CisgICAgLyoqCisgICAgICogTG9va3VwIHRoZSBnaXZlbiBuYW1lIGluIG91ciBzeXN0ZW0gem9uZSB0YWJsZS4gIElmIGZvdW5kLAorICAgICAqIGluc3RhbnRpYXRlIGEgbmV3IHpvbmUgb2YgdGhhdCBuYW1lIGFuZCByZXR1cm4gaXQuICBJZiBub3QKKyAgICAgKiBmb3VuZCwgcmV0dXJuIDAuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUaW1lWm9uZSBnZXRTeXN0ZW1UaW1lWm9uZShTdHJpbmcgaWQpIHsKKyAgICAgICAgVGltZVpvbmUgeiA9IChUaW1lWm9uZSl6b25lQ2FjaGUuZ2V0KGlkKTsKKyAgICAgICAgaWYgKHogPT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcyA9IG9wZW5PbHNvblJlc291cmNlKGlkKTsKKyAgICAgICAgICAgICAgICB6ID0gbmV3IE9sc29uVGltZVpvbmUodG9wLCByZXMpOworICAgICAgICAgICAgICAgIHouc2V0SUQoaWQpOworICAgICAgICAgICAgICAgIHpvbmVDYWNoZS5wdXQoaWQsIHopOworICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChUaW1lWm9uZSl6LmNsb25lKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVGltZVpvbmUgZ2V0R01UKCl7CisgICAgICAgIFRpbWVab25lIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwga0dNVF9JRCk7CisgICAgICAgIHouc2V0SUQoa0dNVF9JRCk7CisgICAgICAgIHJldHVybiB6OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgY3VzdG9tIHRpbWUgem9uZSBpZGVudGlmaWVyIGFuZCByZXR1cm4gYSBjb3JyZXNwb25kaW5nIHpvbmUuCisgICAgICogQHBhcmFtIGlkIGEgc3RyaW5nIG9mIHRoZSBmb3JtIEdNVFsrLV1oaDptbSwgR01UWystXWhobW0sIG9yCisgICAgICogR01UWystXWhoLgorICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIFNpbXBsZVRpbWVab25lIHdpdGggdGhlIGdpdmVuIG9mZnNldCBhbmQKKyAgICAgKiBubyBEYXlsaWdodCBTYXZpbmdzIFRpbWUsIG9yIG51bGwgaWYgdGhlIGlkIGNhbm5vdCBiZSBwYXJzZWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRpbWVab25lIGdldEN1c3RvbVRpbWVab25lKFN0cmluZyBpZCl7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IG51bWJlckZvcm1hdCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgaWRVcHBlcmNhc2UgPSBpZC50b1VwcGVyQ2FzZSgpOworCisgICAgICAgIGlmIChpZC5sZW5ndGgoKSA+IGtHTVRfSUQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgIGlkVXBwZXJjYXNlLnN0YXJ0c1dpdGgoa0dNVF9JRCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oa0dNVF9JRC5sZW5ndGgoKSk7CisgICAgICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gZmFsc2U7CisgICAgICAgICAgICBsb25nIG9mZnNldDsKKworICAgICAgICAgICAgaWYgKGlkLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgPT0gMHgwMDJEIC8qJy0nKi8pCisgICAgICAgICAgICAgICAgbmVnYXRpdmUgPSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuY2hhckF0KHBvcy5nZXRJbmRleCgpKSAhPSAweDAwMkIgLyonKycqLykKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIHBvcy5zZXRJbmRleChwb3MuZ2V0SW5kZXgoKSArIDEpOworCisgICAgICAgICAgICBudW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKworICAgICAgICAgICAgbnVtYmVyRm9ybWF0LnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisKKyAgICAgICAgCisgICAgICAgICAgICAvLyBMb29rIGZvciBlaXRoZXIgaGg6bW0sIGhobW0sIG9yIGhoCisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTnVtYmVyIG4gPSBudW1iZXJGb3JtYXQucGFyc2UoaWQsIHBvcyk7CisgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldCA9IG4ubG9uZ1ZhbHVlKCk7CisKKyAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSA8IGlkLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgaWQuY2hhckF0KHBvcy5nZXRJbmRleCgpKSA9PSAweDAwM0EgLyonOicqLykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBoaDptbQorICAgICAgICAgICAgICAgIG9mZnNldCAqPSA2MDsKKyAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgocG9zLmdldEluZGV4KCkgKyAxKTsKKyAgICAgICAgICAgICAgICBpbnQgb2xkUG9zID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgbiA9IG51bWJlckZvcm1hdC5wYXJzZShpZCwgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gb2xkUG9zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbi5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gaGhtbSBvciBoaAorCisgICAgICAgICAgICAgICAgLy8gQmUgc3RyaWN0IGFib3V0IGludGVycHJldGluZyBzb21ldGhpbmcgYXMgaGg7IGl0IG11c3QgYmUKKyAgICAgICAgICAgICAgICAvLyBhbiBvZmZzZXQgPCAzMCwgYW5kIGl0IG11c3QgYmUgb25lIG9yIHR3byBkaWdpdHMuIFRodXMKKyAgICAgICAgICAgICAgICAvLyAwMDEwIGlzIGludGVycHJldGVkIGFzIDAwOjEwLCBidXQgMTAgaXMgaW50ZXJwcmV0ZWQgYXMKKyAgICAgICAgICAgICAgICAvLyAxMDowMC4KKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgMzAgJiYgKHBvcy5nZXRJbmRleCgpIC0gc3RhcnQpIDw9IDIpCisgICAgICAgICAgICAgICAgICAgIG9mZnNldCAqPSA2MDsgLy8gaGgsIGZyb20gMDAgdG8gMjk7IDMwIGlzIDAwOjMwCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBvZmZzZXQgJSAxMDAgKyBvZmZzZXQgLyAxMDAgKiA2MDsgLy8gaGhtbQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihuZWdhdGl2ZSkKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0OworCisgICAgICAgICAgICBUaW1lWm9uZSB6ID0gbmV3IFNpbXBsZVRpbWVab25lKChpbnQpKG9mZnNldCAqIDYwMDAwKSwga0NVU1RPTV9JRCk7CisgICAgICAgICAgICB6LnNldElEKGtDVVNUT01fSUQpOworICAgICAgICAgICAgcmV0dXJuIHo7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWNkYjhkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzLmphdmEKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBEZWZhdWx0IGJyZWFrLWl0ZXJhdG9yIHJ1bGVzLiAgCisgKiBUaGlzIHJlc291cmNlIHRlbGxzIHdoaWNoIGJyZWFrIGl0ZXJhdG9yIGNsYXNzIHR5cGUgaXMgaW5zdGFudGlhdGVkCisgKiAgZm9yIGVhY2ggb2YgdGhlIHN0YW5kYXJkIChidWlsdC1pbikgYm91bmRhcnkgdHlwZXMuCisgKgorICogIExvY2FsZXMgKFRoYWkpIG5lZWRpbmcgYSBkaWN0aW9uYXJ5IGJhc2VkIGl0ZXJhdG9yIG92ZXJyaWRlIHRoaXMuCisgKi8KKworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JSdWxlcyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBjb250ZW50czsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBjb250ZW50cyA9IHsKKyAgICAgICAgLy8gQnJlYWtJdGVyYXRvckNsYXNzZXMgbGlzdHMgdGhlIGNsYXNzIG5hbWVzIHRvIGluc3RhbnRpYXRlIGZvciBlYWNoCisgICAgICAgIC8vIGJ1aWx0LWluIHR5cGUgb2YgQnJlYWtJdGVyYXRvcgorICAgICAgICB7ICJCcmVha0l0ZXJhdG9yQ2xhc3NlcyIsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIHdvcmQtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIGxpbmUtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciJ9ICAgICAvLyBUaXRsZS1DYXNlIGJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgIH0KKworICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0JyZWFrSXRlcmF0b3JSdWxlc190aC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDYwZjY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YQpAQCAtMCwwICsxLDQxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclJ1bGVzX3RoIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9OQU1FID0gImRhdGEvdGguYnJrIjsKKworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICBmaW5hbCBib29sZWFuIGV4aXN0cyA9IElDVURhdGEuZXhpc3RzKERBVEFfTkFNRSk7CisKKyAgICAgICAgLy8gaWYgZGljdGlvbmFyeSB3YXNuJ3QgZm91bmQsIHRoZW4gdGhpcyByZXNvdXJjZSBidW5kbGUgZG9lc24ndCBoYXZlCisgICAgICAgIC8vIG11Y2ggdG8gY29udHJpYnV0ZS4uLgorICAgICAgICBpZiAoIWV4aXN0cykgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbMF1bMF07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgLy8gbmFtZXMgb2YgY2xhc3NlcyB0byBpbnN0YW50aWF0ZSBmb3IgdGhlIGRpZmZlcmVudCBraW5kcyBvZiBicmVhaworICAgICAgICAgICAgLy8gaXRlcmF0b3IuICBOb3RpY2Ugd2UncmUgbm93IHVzaW5nIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgICAgICAgIC8vIGZvciB3b3JkIGFuZCBsaW5lIGJyZWFraW5nLgorICAgICAgICAgICAgeyAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgICAgICAgIC8vIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIHdvcmQtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyBsaW5lLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiIH0gICAgICAgICAgLy8gc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAgICAgeyAiV29yZEJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9LCAvLyBub3cgYSBwYXRoIHRvIElDVTRKLXNwZWNpZmljIHJlc291cmNlCisgICAgICAgICAgICB7ICJMaW5lQnJlYWtEaWN0aW9uYXJ5IiwgREFUQV9OQU1FIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0RhdGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0RhdGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E0Mzk0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvRGF0ZURhdGEuamF2YQpAQCAtMCwwICsxLDE2MjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBHb29nbGUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworY2xhc3MgRGF0ZURhdGEgeyAvLyBleHRyYWN0ZWQgZnJvbSBDTERSIDEuNAorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2FmIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsIlNla29uZGUifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwiVXVyIn0sCisgICAgIHsiZmllbGQvZGF5IiwiRGFnIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJNYWFuZCJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS1kZCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJKYWFyIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlR5ZHNvbmUifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsInl5eXktTU0ifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiV2VlayJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlR5ZHBlcmsifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiRGFnIHZhbiBkaWUgd2VlayJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJNaW51dXQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYWZfWkEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5L01NIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0vZGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYW0gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlx1MTIzMFx1MTJEM1x1MTI3NSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUxMkYwXHUxMjQyXHUxMjQzIn0sCisgICAgIHsiZmllbGQvZGF5IiwiXHUxMjQwXHUxMjk1In0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTEyQzhcdTEyMkQifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiTU1NTSBkIn0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MTJEM1x1MTIxOFx1MTI3NSJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1MTIzM1x1MTIxRFx1MTI5NVx1MTI3NSJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlx1MTJEOFx1MTIxOFx1MTI5NSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19hbV9FVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2FyIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MkEifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHUwNjI3XHUwNjQ0XHUwNjRBXHUwNjQ4XHUwNjQ1In0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUwNjI3XHUwNjQ0XHUwNjJGXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlx1MDYyN1x1MDY0NFx1MDYyQVx1MDY0OFx1MDY0Mlx1MDY0QVx1MDYyQSJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIlx1MDYyN1x1MDY0NFx1MDYyQlx1MDY0OFx1MDYyN1x1MDY0Nlx1MDY0QSJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1MDYyN1x1MDY0NFx1MDY0QVx1MDY0OFx1MDY0NSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHUwNjI3XHUwNjQ0XHUwNjM0XHUwNjQ3XHUwNjMxIn0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDY0Nlx1MDYyOSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzNcdTA2MjhcdTA2NDhcdTA2MzkifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzVcdTA2MzEifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSwgeXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19hc19JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0sIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19iZSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS55eXl5In0sCisgICAgIHsicGF0dGVybi9NZCIsImQuTSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tLnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYmcgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9obW1zcyIsImg6bW06c3MgYSJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJcdTA0NDdcdTA0MzBcdTA0NDEifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vaG1tIiwiaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHUwNDM3XHUwNDNFXHUwNDNEXHUwNDMwIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS55eXl5In0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlRUVFRIiwiUVFRUSB5eXl5XHUwMEEwJ1x1MDQzMycuIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIlx1MDQxNFx1MDQzNVx1MDQzRCBcdTA0M0VcdTA0NDIgXHUwNDQxXHUwNDM1XHUwNDM0XHUwNDNDXHUwNDM4XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDMwIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUwNDNDXHUwNDM4XHUwNDNEXHUwNDQzXHUwNDQyXHUwNDMwIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiXHUwNDQxXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDNEXHUwNDM0XHUwNDMwIn0sCisgICAgIHsiZmllbGQvZGF5IiwiXHUwNDE0XHUwNDM1XHUwNDNEIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTA0M0NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDNEXHUwNDMwIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1MDQ0MVx1MDQzNVx1MDQzNFx1MDQzQ1x1MDQzOFx1MDQ0Nlx1MDQzMCJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlx1MDQzNVx1MDQ0MFx1MDQzMCJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYm5fQkQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ibl9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2J5bl9FUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19jYSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfY3MgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC5NIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQuIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS55eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19jeSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1kZCIsInl5LU1NLWRkIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0tZGQifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2N5X0dCIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19kYSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwidGltZSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tLnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NIiwiTU1NIHl5eXkifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwidWdlZGFnIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWludXQifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJkYWd0aWQifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJ6b25lIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwic2VrdW5kIn0sCisgICAgIHsiZmllbGQvZGF5IiwiZGFnIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJtXHUwMEU1bmVkIn0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MDBFNXIifSwKKyAgICAgeyJwYXR0ZXJuL01NTWQiLCJkLiBNTU0ifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwidWdlIn0sCisgICAgIHsiZmllbGQvZXJhIiwidGlkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2RlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJTdHVuZGUifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiV29jaGVudGFnIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiU2VrdW5kZSJ9LAorICAgICB7ImZpZWxkL2RheSIsIlRhZyJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiTW9uYXQifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZC4gTU1NTSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJKYWhyIn0sCisgICAgIHsicGF0dGVybi95eU1NIiwiTU0ueXkifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiV29jaGUifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJUYWdlc2hcdTAwRTRsZnRlIn0sCisgICAgIHsiZmllbGQvZXJhIiwiRXBvY2hlIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19kZV9BVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkLiBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eU1NZGQiLCJkZC5NTS55eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19kZV9CRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1kIiwiZC9NTSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZGVfQ0ggZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0tZGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZGVfTEkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NZGQiLCJkZC5NTS55eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19kZV9MVSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU1kZCIsImRkLk1NLnl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2R2X01WIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZWwgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsiZmllbGQvZGF5IiwiVG9tb3Jyb3cifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJUb2RheSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTSIsIk1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NZCIsIk0vZCJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJNTU1NIGQifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7ImZpZWxkL2RheSIsIlllc3RlcmRheSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIkFNL1BNIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX0FVIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fQkUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTWRkIiwiZGQgTU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX0JXIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9CWiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fQ0EgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NTSIsIk1NTS15eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsicGF0dGVybi9NTU1kIiwiZC1NTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fR0IgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9ISyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX0lFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fTVQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX05aIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kIiwiZC9NTSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX1BIIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kIiwiTU0gZCJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9QSyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX1NHIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9aQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsInl5eXkvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0vZGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fWlcgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU0iLCJNL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC9NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJob3JhIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJ6b25hIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1kZCIsImRkLU1NTSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJkXHUwMEVEYSBkZSBsYSBzZW1hbmEifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1NIiwiTU1NLXl5In0sCisgICAgIHsicGF0dGVybi9NTWQiLCJkL01NIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWludXRvIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwic2VndW5kbyJ9LAorICAgICB7ImZpZWxkL2RheSIsImRcdTAwRURhIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJtZXMifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiYVx1MDBGMW8ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJzZW1hbmEifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJwZXJpb2RvIGRlbCBkXHUwMEVEYSJ9LAorICAgICB7ImZpZWxkL2VyYSIsImVyYSJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19BUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfQk8gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX0NMIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX0NPIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX0NSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19ETyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfRUMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfRVMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19HVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfSE4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX01YIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19OSSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfUEEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0vZGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfUFIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0vZGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfUFkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX1NWIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19VUyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTWQiLCJNTU0gZCJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJNL2QifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfVVkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX1ZFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ldCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLnl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC5NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZmEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyQSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9ISG1tWiIsIkhIOm1tIChaKSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJcdTA2NDVcdTA2NDZcdTA2MzdcdTA2NDJcdTA2NDdcdTA2NTQgXHUwNjMyXHUwNjQ1XHUwNjI3XHUwNjQ2XHUwNkNDIn0sCisgICAgIHsicGF0dGVybi9NZCIsIk0vZCJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTA2MzFcdTA2NDhcdTA2MzIgXHUwNjQ3XHUwNjQxXHUwNjJBXHUwNjQ3In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTUVFRUVkIiwiRUVFRSBkIE1NTU0geXl5eSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MDYyRlx1MDY0Mlx1MDZDQ1x1MDY0Mlx1MDY0NyJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIlx1MDYyQlx1MDYyN1x1MDY0Nlx1MDZDQ1x1MDY0NyJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1MDYzMVx1MDY0OFx1MDYzMiJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHUwNjQ1XHUwNjI3XHUwNjQ3In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTA2MzNcdTA2MjdcdTA2NDQifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwieXl5eS9NIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1MDY0N1x1MDY0MVx1MDYyQVx1MDY0NyJ9LAorICAgICB7InBhdHRlcm4vR0dHR3l5eXlNTU1NZCIsImQgTU1NTSB5eXl5IEdHR0cifSwKKyAgICAgeyJhcHBlbmQvRGF5LU9mLVdlZWsiLCJ7MX0gezB9In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19maSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwidHVudGkifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbS5zcyJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJhaWthdnlcdTAwRjZoeWtlIn0sCisgICAgIHsicGF0dGVybi95eXl5TUVFRWQiLCJFRUUgZC5NLnl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC5NIn0sCisgICAgIHsicGF0dGVybi95eXl5UVFRUSIsIlFRUVEgeXl5eSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJ2aWlrb25wXHUwMEU0aXZcdTAwRTQifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJtaW51dXR0aSJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsInNla3VudGkifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJwXHUwMEU0aXZcdTAwRTQifSwKKyAgICAgeyJmaWVsZC9tb250aCIsImt1dWthdXNpIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQuIE1NTU0ndGEnIn0sCisgICAgIHsiZmllbGQveWVhciIsInZ1b3NpIn0sCisgICAgIHsicGF0dGVybi95eXl5TSIsIk0ueXl5eSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJ2aWlra28ifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJhcC9pcC12YWxpbnRhIn0sCisgICAgIHsiZmllbGQvZXJhIiwiYWlrYWthdXNpIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0ndGEgJ3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZm8gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1kIiwiZC4gTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NIiwiTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19mciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2ZyX0JFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTU0iLCJNTU0teXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1NRUVFZCIsIkVFRSBkIE1NTSB5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NZGQiLCJkZC1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZCIsImQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZnJfQ0EgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwieXktTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS1kZCJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19mcl9DSCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS55eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgICAgIHsicGF0dGVybi95eU1NTWQiLCJkLiBNTU0geXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZnVyIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsInNlY29udCJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJvcmUifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJkXHUwMEVDIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJtXHUwMEVBcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiYW4ifSwKKyAgICAgeyJmaWVsZC96b25lIiwiem9uZSJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsiZmllbGQvd2VlayIsInNldGVtYW5lIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwidG9jIGRhbCBkXHUwMEVDIn0sCisgICAgIHsiZmllbGQvZXJhIiwiZXJlIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsImRcdTAwRUMgZGUgc2V0ZW1hbmUifSwKKyAgICAgeyJwYXR0ZXJuL01NZCIsImQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWluXHUwMEZCdCJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19nYSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZ2FfSUUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19nZXpfRVIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZ2V6X0VUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2dsX0VTIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2d1X0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZ3ZfR0IgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2hhd19VUyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4veXlNIiwiTS95eSJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJkL00ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlx1MDVFOVx1MDVFMlx1MDVENCJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlx1MDVEMFx1MDVENlx1MDVENVx1MDVFOCJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTA1RDlcdTA1RDVcdTA1REQgXHUwNUQxXHUwNUU5XHUwNUQxXHUwNUQ1XHUwNUUyIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUwNUQzXHUwNUU3XHUwNUQ0In0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiXHUwNUU5XHUwNUUwXHUwNUQ5In0sCisgICAgIHsiZmllbGQvZGF5IiwiXHUwNUQ5XHUwNUQ1XHUwNUREIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTA1RDdcdTA1RDVcdTA1RDNcdTA1RTkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MDVFOVx1MDVFMFx1MDVENCJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTA1RTlcdTA1RDFcdTA1RDVcdTA1RTIifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTA1RUFcdTA1RTdcdTA1RDVcdTA1RTRcdTA1RDQifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2hpIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTU1kIiwiTU1NIGQsIHl5In0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4veXlNTU1FRUVkIiwiRUVFLCBNTU0gZCwgeXkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4veXlNTWRkIiwiZGQtTU0teXkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1kZCIsIk1NTSBkZCJ9LAorICAgICB7InBhdHRlcm4vR0dHR3lNTU1NRUVFRWRkIiwiRUVFRSxkZCBNTU1NIEdHR0d5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2hpX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaHIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLmRkIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJNTU1NIGRkIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5Lk1NIn0sCisgICAgIHsicGF0dGVybi95eU1NTUVFRWQiLCJFRUUgeXkuTU1NIGQifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwieXl5eS4gTU1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19odSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiXHUwMEYzcmEifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLmRkLiJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJ6XHUwMEYzbmEifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsInl5eXkuTU0ifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiaFx1MDBFOXQgbmFwamEifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJwZXJjIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwibVx1MDBFMXNvZHBlcmMifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJuYXAifSwKKyAgICAgeyJmaWVsZC9tb250aCIsImhcdTAwRjNuYXAifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiTU1NTSBkLiJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTAwRTl2In0sCisgICAgIHsiZmllbGQvd2VlayIsImhcdTAwRTl0In0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwibmFwc3phayJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlx1MDBFOXJhIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsInl5eXkuIE1NTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaHkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0vZGQifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsIk1NTU0gZGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaWRfSUQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19pcyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC5NIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQuIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS55eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19pdCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwib3JhIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGgubW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGgubW0uc3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsiZmllbGQvem9uZSIsInpvbmEifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISC5tbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEgubW0uc3MifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiZ2lvcm5vIGRlbGxhIHNldHRpbWFuYSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIm1pbnV0byJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsInNlY29uZG8ifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJnaW9ybm8ifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIm1lc2UifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiYW5ubyJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsiZmllbGQvd2VlayIsInNldHRpbWFuYSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsInBlcmlvZG8gZGVsIGdpb3JubyJ9LAorICAgICB7ImZpZWxkL2VyYSIsImVyYSJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaXRfQ0ggZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0ueXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC5NTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2phIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5L01NIn0sCisgICAgIHsicGF0dGVybi9HR0dHeU1kIiwiR0dHR3knXHU1RTc0J00nXHU2NzA4J2QnXHU2NUU1JyJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NL2RkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2thIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsIlx1MTBFQ1x1MTBEMFx1MTBEQlx1MTBEOCJ9LAorICAgICB7InBhdHRlcm4veXlNTU1kIiwiZCBNTU0sIHl5In0sCisgICAgIHsiZmllbGQvaG91ciIsIlx1MTBFMVx1MTBEMFx1MTBEMFx1MTBEN1x1MTBEOCJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJcdTEwRDNcdTEwRTZcdTEwRDQifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIlx1MTBEN1x1MTBENVx1MTBENCJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLWRkIn0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MTBFQ1x1MTBENFx1MTBEQVx1MTBEOCJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJcdTEwRDZcdTEwRERcdTEwRENcdTEwRDAifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4veXlNTU1FRUVkIiwiRUVFLCBkIE1NTSwgeXkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4veXlNTWRkIiwiZGQvTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1MTBEOVx1MTBENVx1MTBEOFx1MTBFMFx1MTBEMCJ9LAorICAgICB7InBhdHRlcm4vTU1NZGQiLCJkZCBNTU0ifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJcdTEwRDNcdTEwRTZcdTEwRDhcdTEwRTEgXHUxMERFXHUxMEQ0XHUxMEUwXHUxMEQ4XHUxMEREXHUxMEQzXHUxMEQ4In0sCisgICAgIHsiZmllbGQvZXJhIiwiXHUxMEVFXHUxMEQwXHUxMERDXHUxMEQwIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIlx1MTBEOVx1MTBENVx1MTBEOFx1MTBFMFx1MTBEOFx1MTBFMSBcdTEwRDNcdTEwRTZcdTEwRDQifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJcdTEwRUNcdTEwRTNcdTEwRDdcdTEwRDgifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa2sgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS55eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSAnXHUwNDM2LicifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC5NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19rbF9HTCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19rbSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC9NIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU0iLCJNL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2tuX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa28gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0uIGRkIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5LiBNTSJ9LAorICAgICB7InBhdHRlcm4vSG1zIiwiSCdcdUMyREMnIG0nXHVCRDg0JyBzJ1x1Q0QwOCcifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa29fS1IgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eVEiLCJ5eSdcdUIxNDRcdUIzQzQgXHVDODFDJ1EnXHVDMEFDXHVCRDg0XHVBRTMwJyJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19rb2tfSU4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19rdSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9kYXkiLCJyb2oifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJcdTAwRTdpcmtlIn0sCisgICAgIHsiZmllbGQveWVhciIsInNhbCJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJoZWZ0ZSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwibWVoIn0sCisgICAgIHsiZmllbGQvaG91ciIsImRlbWppbVx1MDBFQXIifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJ4dWxlayJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19rd19HQiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19sbyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC9NIn0sCisgICAgIHsicGF0dGVybi95eXl5TSIsIk0veXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbHQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvc2Vjb25kIiwiU2VrdW5kXHUwMTE3In0sCisgICAgIHsiZmllbGQvaG91ciIsInZhbGFuZGEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsiZmllbGQvZGF5IiwiZGllbmEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIm1cdTAxMTdudW8ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS5kZCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJtZXRhaSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJqdW9zdGEifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsInl5eXkuTU0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwic2F2YWl0XHUwMTE3In0sCisgICAgIHsicGF0dGVybi9NTU1kZCIsIk1NTS1kZCJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsImRpZW5vcyBtZXRhcyJ9LAorICAgICB7ImZpZWxkL2VyYSIsImVyYSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJzYXZhaXRcdTAxMTdzIGRpZW5hIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWludXRcdTAxMTcifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbHYgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NZCIsImQuTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19tayBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01kZCIsImRkLk0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS55eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19tbF9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX21yX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbXNfQk4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL0htbSIsIkg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbXNfTVkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX210IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJTaWVnXHUwMTI3YSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NIiwiTU1NIHl5eXkifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJNaW51dGEifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJTZWtvbmRhIn0sCisgICAgIHsiZmllbGQvZGF5IiwiSnVtIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJYYWhhciJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkICd0YVx1MjAxOScgTU1NTSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJTZW5hIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1MDEyMGltZ1x1MDEyN2EifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJFcG9rYSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19uYiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwidGltZSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tLnNzIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyAgICAgeyJmaWVsZC96b25lIiwic29uZSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJ1a2VkYWcifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJtaW51dHQifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJzZWt1bmQifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJkYWcifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIm1cdTAwRTVuZWQifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZC4gTU1NTSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTAwRTVyIn0sCisgICAgIHsicGF0dGVybi95eU1NIiwiTU0ueXkifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwidWtlIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiZi5tLi9lLm0uLXZhbGcifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJ0aWRzYWxkZXIifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX25iX05PIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vSEhtbSIsIkhILm1tIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuIE1NIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISC5tbS5zcyJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ubCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiVXVyIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJEYWcgdmFuIGRlIHdlZWsifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJNaW51dXQifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJTZWNvbmRlIn0sCisgICAgIHsiZmllbGQvZGF5IiwiRGFnIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJNYWFuZCJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiSmFhciJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NLXl5In0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiRGFnZGVlbCJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlRpamRwZXJrIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ubF9CRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NZCIsImQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTWQiLCJkLU1NTSJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi95eU1NTSIsIk1NTS15eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ubiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwidGltZSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tLnNzIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyAgICAgeyJmaWVsZC96b25lIiwic29uZSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJ2ZWtlZGFnIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWludXR0In0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwic2VrdW5kIn0sCisgICAgIHsiZmllbGQvZGF5IiwiZGFnIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJtXHUwMEU1bmFkIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQuIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwMEU1ciJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NLnl5In0sCisgICAgIHsiZmllbGQvd2VlayIsInZla2UifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJmLm0uL2UubS4tdmFsIn0sCisgICAgIHsiZmllbGQvZXJhIiwiXHUwMEU2cmEifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX29tX0VUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX29tX0tFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX29yX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcGEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvZGF5IiwiXHUwQTI2XHUwQTNGXHUwQTI4In0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIlx1MEEzOVx1MEEyQlx1MEEzQ1x1MEEyNFx1MEE0NyBcdTBBMjZcdTBBM0UgXHUwQTI2XHUwQTNGXHUwQTI4In0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MEEzOFx1MEEzRVx1MEEzMiJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTBBMzlcdTBBMkJcdTBBM0NcdTBBMjRcdTBBM0UifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIlx1MEEyRVx1MEEzOVx1MEE0MFx1MEEyOFx1MEEzRSJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJcdTBBMThcdTBBNzBcdTBBMUZcdTBBM0UifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHUwQTE2XHUwQTQ3XHUwQTI0XHUwQTMwIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUwQTJFXHUwQTNGXHUwQTcwXHUwQTFGIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3BhX0FyYWIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvZGF5IiwiXHUwNjJGXHUwNjI2XHUwNjQ2In0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTA2NDVcdTA2QzFcdTA2NEFcdTA2NDZcdTA2MjcifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwiXHUwNkFGXHUwNkJFXHUwNjQ2XHUwNjc5XHUwNjI3In0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIlx1MDZDMVx1MDY0MVx1MDYyQVx1MDZEMiBcdTA2MkZcdTA2MjcgXHUwNjJGXHUwNjQ2In0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MDY0OFx1MDYzMVx1MDZCRVx1MDYyNyJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTA2QzFcdTA2NDFcdTA2MkFcdTA2QzEifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHUwNjc5XHUwNjdFXHUwNkMxIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUwNjQ1XHUwNjQ2XHUwNjc5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3BhX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcGwgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLWRkIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5LU1NIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcGxfUEwgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvc2Vjb25kIiwiU2VrdW5kYSJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJHb2R6aW5hIn0sCisgICAgIHsiZmllbGQvZGF5IiwiRHppZVx1MDE0NCJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiTWllc2lcdTAxMDVjIn0sCisgICAgIHsiZmllbGQveWVhciIsIlJvayJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJTdHJlZmEifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiVHlkemllXHUwMTQ0In0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIkR6aWVcdTAxNDQgdHlnb2RuaWEifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJNaW51dGEifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TSIsInl5eXkvTSJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJNL2QifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiXHUwNjJGIHl5eXkgXHUwNjJGIE1NTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcHQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NIiwiTU1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcHRfQlIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvc2Vjb25kIiwiU2VndW5kbyJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJBbm8ifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiU2VtYW5hIn0sCisgICAgIHsiZmllbGQvaG91ciIsIkhvcmEifSwKKyAgICAgeyJmaWVsZC96b25lIiwiRnVzbyJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIlBlclx1MDBFRG9kbyBkbyBkaWEifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJEaWEifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiRGlhIGRhIHNlbWFuYSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiTVx1MDBFQXMifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJNaW51dG8ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcHRfUFQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5L01NIn0sCisgICAgIHsicGF0dGVybi95eU1NTUVFRWQiLCJFRUUsIGQgJ2RlJyBNTU0gJ2RlJyB5eSJ9LAorICAgICB7InBhdHRlcm4veXlNTU1kIiwiZCAnZGUnIE1NTSAnZGUnIHl5In0sCisgICAgIHsiZmllbGQvaG91ciIsIkhvcmEifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJEaWEifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIk1cdTAwRUFzIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0vZGQifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiQW5vIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlNlbWFuYSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJab25hIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiUGVyXHUwMEVEb2RvIGRvIGRpYSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJEaWEgZGEgc2VtYW5hIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiTWludXRvIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3JvIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC5NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiYXBwZW5kL0hvdXIiLCJ7MH0gKHsyfTogezF9KSJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIlNlY29uZCJ9LAorICAgICB7ImFwcGVuZC9XZWVrIiwiezB9ICh7Mn06IHsxfSkifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwiSG91ciJ9LAorICAgICB7InBhdHRlcm4veXlRIiwiUSB5eSJ9LAorICAgICB7ImZpZWxkL2RheSIsIkRheSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiTW9udGgifSwKKyAgICAgeyJhcHBlbmQvRXJhIiwiezB9IHsxfSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJZZWFyIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlpvbmUifSwKKyAgICAgeyJhcHBlbmQvUXVhcnRlciIsInswfSAoezJ9OiB7MX0pIn0sCisgICAgIHsiYXBwZW5kL01pbnV0ZSIsInswfSAoezJ9OiB7MX0pIn0sCisgICAgIHsiYXBwZW5kL1llYXIiLCJ7MH0gezF9In0sCisgICAgIHsiYXBwZW5kL1RpbWV6b25lIiwiezB9IHsxfSJ9LAorICAgICB7ImFwcGVuZC9TZWNvbmQiLCJ7MH0gKHsyfTogezF9KSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJXZWVrIn0sCisgICAgIHsiYXBwZW5kL0RheSIsInswfSAoezJ9OiB7MX0pIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiRGF5cGVyaW9kIn0sCisgICAgIHsiZmllbGQvZXJhIiwiRXJhIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIkRheSBvZiB0aGUgV2VlayJ9LAorICAgICB7ImFwcGVuZC9Nb250aCIsInswfSAoezJ9OiB7MX0pIn0sCisgICAgIHsiYXBwZW5kL0RheS1PZi1XZWVrIiwiezB9IHsxfSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIk1pbnV0ZSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ydSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS55eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5UVFRUSIsIlFRUVEgeXl5eSAnXHUwNDMzLicifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHUwNDE0XHUwNDM1XHUwNDNEXHUwNDRDIFx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1MDQxNFx1MDQzNVx1MDQzRFx1MDQ0QyJ9LAorICAgICB7InBhdHRlcm4veXl5eUxMTEwiLCJMTExMIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1NRUVFZCIsIkVFRSwgZCBNTU0geXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTWQiLCJkIE1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ydV9VQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zYV9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3NlX05PIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsInNla3VuZGEifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwialx1MDBFMWhraSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJ2XHUwMEUxaGtrdSJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJ0aWlibXUifSwKKyAgICAgeyJmaWVsZC96b25lIiwic29uZSJ9LAorICAgICB7ImZpZWxkL2RheSIsImJlYWl2aSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJ2XHUwMEUxaGtrdWJlYWl2aSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwibVx1MDBFMW5udSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIm1pbnVodHRhIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3NpZCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zayBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJkLk0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZC4gTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU0iLCJNLnl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3NsIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZC4gTU1NTSJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJkLk0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS55eXl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zbyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zcSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsInl5eXktTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS1kZCJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc3IgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NTWQiLCJkLiBNTU0geXkifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW0uc3MifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS1kZCJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NLnl5In0sCisgICAgIHsicGF0dGVybi9NTU1kZCIsImRkLk1NTSJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zcl9DeXJsX0JBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5LU1NIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZC4gTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkuIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3NyX0xhdG4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NZGQiLCJkZC5NTS55eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zcl9MYXRuX0JBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5LU1NIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZC4gTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkuIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3N2IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJ0aW1tZSJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbS5zcyJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLWRkIn0sCisgICAgIHsiZmllbGQvem9uZSIsInRpZHN6b24ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsInl5eXktTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU0iLCJNTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eVFRUVEiLCJRUVFRJywnIHl5eXkifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwidmVja29kYWcifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJtaW51dCJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsInNla3VuZCJ9LAorICAgICB7ImZpZWxkL2RheSIsImRhZyJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwibVx1MDBFNW5hZCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTAwRTVyIn0sCisgICAgIHsicGF0dGVybi9NTU1kIiwiZCBNTU0ifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwidmVja2EifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJkYWdzcGVyaW9kIn0sCisgICAgIHsiZmllbGQvZXJhIiwiZXJhIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3N2X1NFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kIiwiZC9NTSJ9LAorICAgICB7InBhdHRlcm4vTU1NTUVFRWQiLCJFRUUgZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGgubW0gYSJ9LAorICAgICB7InBhdHRlcm4veXl5eVFRUVEiLCJRUVFRIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoLm1tLnNzIGEifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJ0aWRzdmlzbmluZyJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zeXJfU1kgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSwgeXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3RhX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfdGVfSU4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc190aCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiXHUwRTBBXHUwRTMxXHUwRTQ4XHUwRTI3XHUwRTQyXHUwRTIxXHUwRTA3In0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHUwRTQwXHUwRTAyXHUwRTE1In0sCisgICAgIHsicGF0dGVybi9NZCIsImQvTSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTBFMjdcdTBFMzFcdTBFMTlcdTBFNDNcdTBFMTlcdTBFMkFcdTBFMzFcdTBFMUJcdTBFMTRcdTBFMzJcdTBFMkJcdTBFNEMifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJcdTBFMTlcdTBFMzJcdTBFMTdcdTBFMzUifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJcdTBFMjdcdTBFMzRcdTBFMTlcdTBFMzJcdTBFMTdcdTBFMzUifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJcdTBFMjdcdTBFMzFcdTBFMTkifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIlx1MEU0MFx1MEUxNFx1MEUzN1x1MEUyRFx1MEUxOSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwRTFCXHUwRTM1In0sCisgICAgIHsicGF0dGVybi95eXl5TSIsIk0veXl5eSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTBFMkFcdTBFMzFcdTBFMUJcdTBFMTRcdTBFMzJcdTBFMkJcdTBFNEMifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJcdTBFMEFcdTBFNDhcdTBFMjdcdTBFMDdcdTBFMjdcdTBFMzFcdTBFMTkifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTBFMkFcdTBFMjFcdTBFMzFcdTBFMjIifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3RpX0VSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3RpX0VUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3RpZ19FUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc190ciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiU2FhdCJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJmaWVsZC96b25lIiwiU2FhdCBEaWxpbWkifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiSGFmdGFuXHUwMTMxbiBHXHUwMEZDblx1MDBGQyJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIkRha2lrYSJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIlNhbml5ZSJ9LAorICAgICB7ImZpZWxkL2RheSIsIkdcdTAwRkNuIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJBeSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJZXHUwMTMxbCJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJIYWZ0YSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIkdcdTAwRkNuXHUwMEZDbiBCXHUwMEY2bFx1MDBGQ21cdTAwRkMifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJNaWxhZGkgRFx1MDBGNm5lbSJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc190dF9SVSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL0htbSIsIkg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfdWsgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlx1MDQxM1x1MDQzRVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzMCJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTA0MTRcdTA0MzVcdTA0M0RcdTA0NEMgXHUwNDQyXHUwNDM4XHUwNDM2XHUwNDNEXHUwNDRGIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUwNDI1XHUwNDMyXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDNEXHUwNDMwIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NLnl5In0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiXHUwNDI3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDMwIFx1MDQzNFx1MDQzRVx1MDQzMVx1MDQzOCJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgICAgIHsicGF0dGVybi95eXl5UVFRUSIsIlFRUVEgeXl5eSAnXHUwNDQwLicifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJcdTA0MjFcdTA0MzVcdTA0M0FcdTA0NDNcdTA0M0RcdTA0MzRcdTA0MzAifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJcdTA0MTRcdTA0MzVcdTA0M0RcdTA0NEMifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIlx1MDQxQ1x1MDQ1Nlx1MDQ0MVx1MDQ0Rlx1MDQ0Nlx1MDQ0QyJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTA0MjBcdTA0NTZcdTA0M0EifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiXHUwNDIyXHUwNDM4XHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDRDIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc191el9BcmFiIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU0iLCJ5eXl5L00ifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiTS9kIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBcdTA2NDZcdTA2ODZcdTA2Q0MgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfdmkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfd2FsX0VUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3poIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTWQiLCJNJ1x1NjcwOCdkJ1x1NjVFNScifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwieXl5eSdcdTVFNzQnTSdcdTY3MDgnIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3poX0hhbnMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvc2Vjb25kIiwiXHU3OUQyXHU5NDlGIn0sCisgICAgIHsiZmllbGQvaG91ciIsIlx1NUMwRlx1NjVGNiJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1NjVFNSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHU2NzA4In0sCisgICAgIHsiZmllbGQveWVhciIsIlx1NUU3NCJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJcdTUzM0FcdTU3REYifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiXHU1NDY4In0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiXHU0RTBBXHU1MzQ4L1x1NEUwQlx1NTM0OCJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlx1NjVGNlx1NjcxRiJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTU0NjhcdTU5MjkifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJcdTUyMDZcdTk0OUYifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfemhfSGFuc19DTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwieXl5eS1NIn0sCisgICAgIHsicGF0dGVybi9NZCIsIk0tZCJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc196aF9IYW5zX1NHIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3poX0hhbnQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NZCIsIk0vZCJ9LAorICAgICB7InBhdHRlcm4veXl5eU0iLCJ5eXl5L00ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfemhfSGFudF9UVyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJcdTc5RDIifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwiXHU1QzBGXHU2NjQyIn0sCisgICAgIHsiZmllbGQvZGF5IiwiXHU2NTc0XHU2NUU1In0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTY3MDgifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHU1RTc0In0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1OTAzMSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJcdTUzNDBcdTU3REYifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJcdTY1RTVcdTk1OTMifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTVFNzRcdTRFRTMifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHU5MDMxXHU1OTI5In0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHU1MjA2XHU5NDE4In0sCisgfTt9fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNmFlMGU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlLmphdmEKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICAvLyBOb3JtYWxseSwgZWFjaCBIb2xpZGF5QnVuZGxlIHVzZXMgdGhlIGhvbGlkYXkncyBVUyBFbmdsaXNoIG5hbWUKKyAgICAvLyBhcyB0aGUgc3RyaW5nIGtleSBmb3IgbG9va2luZyB1cCB0aGUgbG9jYWxpemVkIG5hbWUuICBUaGlzIG1lYW5zCisgICAgLy8gdGhhdCB0aGUga2V5IGl0c2VsZiBjYW4gYmUgdXNlZCBpZiBubyBuYW1lIGlzIGZvdW5kIGZvciB0aGUgcmVxdWVzdGVkCisgICAgLy8gbG9jYWxlLgorICAgIC8vCisgICAgLy8gRm9yIGhvbGlkYXlzIHdoZXJlIHRoZSBrZXkgaXMgX25vdF8gdGhlIEVuZ2xpc2ggbmFtZSwgZS5nLiBpbiB0aGUKKyAgICAvLyBjYXNlIG9mIGNvbmZsaWN0cywgdGhlIEVuZ2xpc2ggbmFtZSBtdXN0IGJlIGdpdmVuIGhlcmUuCisgICAgLy8KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICIiLCAiIiAgfSwgICAgICAvLyBDYW4ndCBiZSBlbXB0eSEKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjRjZTdmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYS5qYXZhCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZGEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUKK3sKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9CisgICAgeworICAgICAgICB7ICAgIkFybWlzdGljZSBEYXkiLCAgICAgICAgInZcdTAwZTViZW5odmlsZSIgfSwKKyAgICAgICAgeyAgICJBc2NlbnNpb24iLCAgICAgICAgICAgICJoaW1tZWxmYXJ0IiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgImFuZGVuIGp1bGVkYWciIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIEV2ZSIsICAgICAgICAianVsZWFmdGVuIiB9LAorICAgICAgICB7ICAgIkVhc3RlciIsICAgICAgICAgICAgICAgInBcdTAwZTVza2UiIH0sCisgICAgICAgIHsgICAiRXBpcGhhbnkiLCAgICAgICAgICAgICAiaGVsbGlndHJla29uZ2Vyc2RhZyIgfSwKKyAgICAgICAgeyAgICJHb29kIEZyaWRheSIsICAgICAgICAgICJsYW5nZnJlZGFnIiB9LAorICAgICAgICB7ICAgIkhhbGxvd2VlbiIsICAgICAgICAgICAgImFsbGVoZWxnZW5zYWZ0ZW4iIH0sCisgICAgICAgIHsgICAiTWF1bmR5IFRodXJzZGF5IiwgICAgICAic2tcdTAwZTZydG9yc2RhZyIgfSwKKyAgICAgICAgeyAgICJQYWxtIFN1bmRheSIsICAgICAgICAgICJwYWxtZXNcdTAwZjhuZGFnIiB9LAorICAgICAgICB7ICAgIlBlbnRlY29zdCIsICAgICAgICAgICAgInBpbnNlIiB9LAorICAgICAgICB7ICAgIlNocm92ZSBUdWVzZGF5IiwgICAgICAgImh2aWRldGlyc2RhZyIgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RhX0RLLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGFfREsuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZDU5ZTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RhX0RLLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2RhX0RLIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlCit7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BUFJJTCwgICAzMCwgLUNhbGVuZGFyLkZSSURBWSwgIkdlbmVyYWwgUHJheWVyIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVU5FLCAgICA1LCAgICAgICAgICAgICAgICAgICAgIkNvbnN0aXR1dGlvbiBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVNfRVZFLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19FVkUsCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIEVhc3RlckhvbGlkYXkuTUFVTkRZX1RIVVJTREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5BU0NFTlNJT04sCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9NT05EQVksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgImhvbGlkYXlzIiwgICAgICAgICAgICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzViMTBmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZS5qYXZhCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgIkFsbCBTYWludHMnIERheSIsICAgICAgICAgICAgICAiQWxsZXJoZWlsaWdlbiIgfSwKKyAgICAgICAgeyAgICJBbGwgU291bHMnIERheSIsICAgICAgICAgICAgICAgIkFsbGVyc2VlbGVuIiB9LAorICAgICAgICB7ICAgIkFybWlzdGljZSBEYXkiLCAgICAgICAgICAgICAgICAiV2FmZmVuc3RpbGxzdGFuZHN0YWciIH0sCisgICAgICAgIHsgICAiQXNjZW5zaW9uIiwgICAgICAgICAgICAgICAgICAgICJDaHJpc3RpIEhpbW1lbGZhaHJ0IiB9LAorICAgICAgICB7ICAgIkFzaCBXZWRuZXNkYXkiLCAgICAgICAgICAgICAgICAiQXNjaGVybWl0dHdvY2giIH0sCisgICAgICAgIHsgICAiQXNzdW1wdGlvbiIsICAgICAgICAgICAgICAgICAgICJNYXJpXHUwMGU0IEhpbW1lbGZhaHJ0IiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgICAgICAgICAiMi4gV2VpaG5hY2h0c3RhZyIgfSwKKyAgICAgICAgeyAgICJDYXJuaXZhbCIsICAgICAgICAgICAgICAgICAgICAgIkthcm5ldmFsIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyIsICAgICAgICAgICAgICAgICAgICAiV2VpaG5hY2h0c3RhZyIgfSwKKyAgICAgICAgeyAgICJDaXZpYyBIb2xpZGF5IiwgICAgICAgICAgICAgICAgIkJcdTAwZmNyZ2VyZmVpZXJ0YWciIH0sCisgICAgICAgIHsgICAiQ29uc3RpdHV0aW9uIERheSIsICAgICAgICAgICAgICJWZXJmYXNzdW5nc3RhZyIgfSwKKyAgICAgICAgeyAgICJDb3JwdXMgQ2hyaXN0aSIsICAgICAgICAgICAgICAgIkZyb25sZWljaG5hbSIgfSwKKyAgICAgICAgeyAgICJEYXkgb2YgUHJheWVyIGFuZCBSZXBlbnRhbmNlIiwgIkJ1XHUwMGRmLSB1bmQgQmV0dGFnIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBNb25kYXkiLCAgICAgICAgICAgICAgICAiT3N0ZXJtb25udGFnIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBTdW5kYXkiLCAgICAgICAgICAgICAgICAiT3N0ZXJzb25udGFnIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgICAgICAgICAiSGVpbGlnZSAzIEtcdTAwZjZuaWdlIiB9LAorICAgICAgICB7ICAgIkZhdGhlcidzIERheSIsICAgICAgICAgICAgICAgICAiVmF0ZXJ0YWciIH0sCisgICAgICAgIHsgICAiRmxhZyBEYXkiLCAgICAgICAgICAgICAgICAgICAgICJKYWhyZXN0YWcgZGVyIE5hdGlvbmFsZmxhZ2dlIiB9LAorICAgICAgICB7ICAgIkdlcm1hbiBVbml0eSBEYXkiLCAgICAgICAgICAgICAiVGFnIGRlciBkZXV0c2NoZW4gRWluaGVpdCIgfSwKKyAgICAgICAgeyAgICJHb29kIEZyaWRheSIsICAgICAgICAgICAgICAgICAgIkthcmZyZWl0YWciIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAgICAgICAgICJBYmVuZCB2b3IgQWxsZXJoZWlsaWdlbiIgfSwKKyAgICAgICAgeyAgICJJbW1hY3VsYXRlIENvbmNlcHRpb24iLCAgICAgICAgIk1hcmlcdTAwZTQgRW1wZlx1MDBlNG5nbmlzIiB9LAorICAgICAgICB7ICAgIkluZGVwZW5kZW5jZSBEYXkiLCAgICAgICAgICAgICAiVW5hYmhcdTAwZTRuZ2lna2VpdHN0YWciIH0sCisgICAgICAgIHsgICAiTGFib3IgRGF5IiwgICAgICAgICAgICAgICAgICAgICJUYWcgZGVyIEFyYmVpdCIgfSwKKyAgICAgICAgeyAgICJMaWJlcmF0aW9uIERheSIsICAgICAgICAgICAgICAgIkJlZnJlaXVuZ3N0YWciIH0sCisgICAgICAgIHsgICAiTWFyZGkgR3JhcyIsICAgICAgICAgICAgICAgICAgICJGYXNjaGluZ3NkaWVuc3RhZyIgfSwKKyAgICAgICAgeyAgICJNYXVuZHkgVGh1cnNkYXkiLCAgICAgICAgICAgICAgIkdyXHUwMGZjbmRvbm5lcnN0YWciIH0sCisgICAgICAgIHsgICAiTWF5IERheSIsICAgICAgICAgICAgICAgICAgICAgICJNYWlmZWllcnRhZyIgfSwKKyAgICAgICAgeyAgICJNZW1vcmlhbCBEYXkiLCAgICAgICAgICAgICAgICAgIlRhZyBkZXMgR2VkZW5rZW5zIiB9LAorICAgICAgICB7ICAgIk1vdGhlcidzIERheSIsICAgICAgICAgICAgICAgICAiTXV0dGVydGFnIiB9LAorICAgICAgICB7ICAgIk5hdGlvbmFsIEhvbGlkYXkiLCAgICAgICAgICAgICAiTmF0aW9uYWxmZWllcnRhZyIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgICAgICAgICAgICAgIk5ldWphaHIiIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBFdmUiLCAgICAgICAgICAgICAgICJTaWx2ZXN0ZXJhYmVuZCIgfSwKKyAgICAgICAgeyAgICJQYWxtIFN1bmRheSIsICAgICAgICAgICAgICAgICAgIlBhbG1zb25udGFnIiB9LAorICAgICAgICB7ICAgIlBlbnRlY29zdCIsICAgICAgICAgICAgICAgICAgICAiUGZpbmdzdGVuIiB9LAorICAgICAgICB7ICAgIlByZXNpZGVudHMnIERheSIsICAgICAgICAgICAgICAiUHJcdTAwZTRzaWRlbnRzdGFnIiB9LAorICAgICAgICB7ICAgIlJlbWVtYnJhbmNlIERheSIsICAgICAgICAgICAgICAiVm9sa3N0cmF1ZXJ0YWciIH0sCisgICAgICAgIHsgICAiUmV2b2x1dGlvbiBEYXkiLCAgICAgICAgICAgICAgICJKYWhyZXN0YWcgZGVyIFJldm9sdXRpb24iIH0sCisgICAgICAgIHsgICAiUm9zZSBNb25kYXkiLCAgICAgICAgICAgICAgICAgICJSb3Nlbm1vbnRhZyIgfSwKKyAgICAgICAgeyAgICJTdC4gU3RlcGhlbidzIERheSIsICAgICAgICAgICAgIlN0ZXBoYW5pdGFnIiB9LAorICAgICAgICB7ICAgIlNocm92ZSBUdWVzZGF5IiwgICAgICAgICAgICAgICAiRmFzY2hpbmdzZGllbnN0YWciIH0sCisgICAgICAgIHsgICAiU3ByaW5nIEhvbGlkYXkiLCAgICAgICAgICAgICAgICJUYWcgZGVzIEZyXHUwMGZjaGxpbmdzIiB9LAorICAgICAgICB7ICAgIlN1bW1lciBCYW5rIEhvbGlkYXkiLCAgICAgICAgICAiQmFua2ZlaWVydGFnIiB9LAorICAgICAgICB7ICAgIlRoYW5rc2dpdmluZyIsICAgICAgICAgICAgICAgICAiRGFua2Zlc3QiIH0sCisgICAgICAgIHsgICAiVW5pdHkgRGF5IiwgICAgICAgICAgICAgICAgICAgICJFaW5oZWl0c3RhZyIgfSwKKyAgICAgICAgeyAgICJWZXRlcmFucycgRGF5IiwgICAgICAgICAgICAgICAgIlZldGVyYW5zdGFnIiB9LAorICAgICAgICB7ICAgIlZpY3RvcnkgRGF5IiwgICAgICAgICAgICAgICAgICAiVGFnIGRlciBCZWZyZWl1bmciIH0sCisgICAgICAgIHsgICAiV2FzaGluZ3RvbidzIEJpcnRoZGF5IiwgICAgICAgICJXYXNoaW5ndG9ucyBHZWJ1cnRzdGFnIiB9LAorICAgICAgICB7ICAgIldoaXQgTW9uZGF5IiwgICAgICAgICAgICAgICAgICAiUGZpbmdzdG1vbnRhZyIgfSwKKyAgICAgICAgeyAgICJXaGl0IFN1bmRheSIsICAgICAgICAgICAgICAgICAgIlBmaW5nc3Rzb25udGFnIiB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZV9BVC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0FULmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U2ZjcxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZV9BVC5qYXZhCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9kZV9BVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkVQSVBIQU5ZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5BU0NFTlNJT04sCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQ09SUFVTX0NIUklTVEksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQVNTVU1QVElPTiwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BTExfU0FJTlRTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5JTU1BQ1VMQVRFX0NPTkNFUFRJT04sCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LlNUX1NURVBIRU5TX0RBWSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAxLCAgMCwgICAgICAgICAgICAgICAiTmF0aW9uYWwgSG9saWRheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgIDMxLCAtQ2FsZW5kYXIuTU9OREFZLCAiTmF0aW9uYWwgSG9saWRheSIpLAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorCisgICAgICAgIC8vIE9ubHkgaG9saWRheXMgbmFtZXMgZGlmZmVyZW50IGZyb20gdGhvc2UgdXNlZCBpbiBHZXJtYW55IGFyZSBsaXN0ZWQgaGVyZQorICAgICAgICB7ICAgIkNocmlzdG1hcyIsICAgICAgICAiQ2hyaXN0dGFnIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAiTmV1amFocnN0YWciIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZV9ERS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0RFLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTM5ZmVlZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZV9ERS5qYXZhCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9kZV9ERSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5Lk1BWV9EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTkUsICAgICAgMTUsICBDYWxlbmRhci5XRURORVNEQVksICAiTWVtb3JpYWwgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgIDMsICAwLCAgICAgICAgICAgICAgICAgICAiVW5pdHkgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQUxMX1NBSU5UU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMTgsICAwLCAgICAgICAgICAgICAgICAgICAiRGF5IG9mIFByYXllciBhbmQgUmVwZW50YW5jZSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5BU0NFTlNJT04sCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9NT05EQVksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjlkNzZiYTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWwuamF2YQpAQCAtMCwwICsxLDI5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VsIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9CisgICAgeworICAgICAgICB7ICAgIkFzc3VtcHRpb24iLCAgICAgICAgICAgIjE1IFx1MDM5MVx1MDNjZFx1MDNiM1x1MDNiZlx1MDNjZFx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjNSIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICJcdTAzOTRcdTAzYjVcdTAzY2RcdTAzYzRcdTAzYjVcdTAzYzFcdTAzYjcgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIFx1MDNjNFx1MDNjZVx1MDNiZCBcdTAzYTdcdTAzYzFcdTAzYjlcdTAzYzNcdTAzYzRcdTAzYmZcdTAzYzVcdTAzYjNcdTAzYWRcdTAzYmRcdTAzYmRcdTAzYzlcdTAzYmQiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICAgICAiXHUwM2E3XHUwM2MxXHUwM2I5XHUwM2MzXHUwM2M0XHUwM2JmXHUwM2NkXHUwM2IzXHUwM2I1XHUwM2JkXHUwM2JkXHUwM2IxIiB9LAorICAgICAgICB7ICAgIkNsZWFuIE1vbmRheSIsICAgICAgICAgIlx1MDM5YVx1MDNiMVx1MDNiOFx1MDNiMVx1MDNjMVx1MDNhZSBcdTAzOTRcdTAzYjVcdTAzYzVcdTAzYzRcdTAzYWRcdTAzYzFcdTAzYjEiIH0sCisgICAgICAgIHsgICAiRWFzdGVyIE1vbmRheSIsICAgICAgICAiXHUwMzk0XHUwM2I1XHUwM2NkXHUwM2M0XHUwM2I1XHUwM2MxXHUwM2I3IFx1MDNiY1x1MDNhZFx1MDNjMVx1MDNiMSBcdTAzYzRcdTAzYmZcdTAzY2QgXHUwM2EwXHUwM2FjXHUwM2MzXHUwM2M3XHUwM2IxIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgIlx1MDM4OFx1MDNjMFx1MDNiOVx1MDNjNlx1MDNhY1x1MDNiZFx1MDNiNVx1MDNiOVx1MDNiMSIgfSwKKyAgICAgICAgeyAgICJHb29kIEZyaWRheSIsICAgICAgICAgICJcdTAzOWNcdTAzYjVcdTAzYjNcdTAzYWNcdTAzYmJcdTAzYjcgXHUwM2EwXHUwM2IxXHUwM2MxXHUwM2IxXHUwM2MzXHUwM2JhXHUwM2I1XHUwM2M1XHUwM2FlIiB9LAorICAgICAgICB7ICAgIk1heSBEYXkiLCAgICAgICAgICAgICAgIlx1MDNhMFx1MDNjMVx1MDNjOVx1MDNjNFx1MDNiZlx1MDNiY1x1MDNiMVx1MDNiM1x1MDNiOVx1MDNhYyIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgICAgICJcdTAzYTBcdTAzYzFcdTAzYzlcdTAzYzRcdTAzYmZcdTAzYzdcdTAzYzFcdTAzYmZcdTAzYmRcdTAzYjlcdTAzYWMiIH0sCisgICAgICAgIHsgICAiT2NoaSBEYXkiLCAgICAgICAgICAgICAiMjggXHUwMzhjXHUwM2JhXHUwM2M0XHUwM2M5XHUwM2IyXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1IiB9LAorICAgICAgICB7ICAgIldoaXQgTW9uZGF5IiwgICAgICAgICAgIlx1MDM5NFx1MDNiNVx1MDNjZFx1MDNjNFx1MDNiNVx1MDNjMVx1MDNiNyBcdTAzYmNcdTAzYWRcdTAzYzFcdTAzYjEgXHUwM2M0XHUwM2JmXHUwM2NkIFx1MDNhMFx1MDNiNVx1MDNiZFx1MDNjNFx1MDNiN1x1MDNiYVx1MDNiZlx1MDNjM1x1MDNjNFx1MDNhZSIgfSwKKworICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWxfR1IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbF9HUi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllMWZhYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWxfR1IuamF2YQpAQCAtMCwwICsxLDM5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZWxfR1IgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5FUElQSEFOWSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVJDSCwgICAgIDI1LCAgMCwgICAgIkluZGVwZW5kZW5jZSBEYXkiKSwKKworICAgICAgICBTaW1wbGVIb2xpZGF5Lk1BWV9EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQVNTVU1QVElPTiwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgIDI4LCAgMCwgICAgIk9jaGkgRGF5IiksCisKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMgaW4gdGhlIE9ydGhvZG94IGNhbGVuZGFyCisgICAgICAgIG5ldyBFYXN0ZXJIb2xpZGF5KC0yLCAgIHRydWUsICJHb29kIEZyaWRheSIpLAorICAgICAgICBuZXcgRWFzdGVySG9saWRheSggMCwgICB0cnVlLCAiRWFzdGVyIFN1bmRheSIpLAorICAgICAgICBuZXcgRWFzdGVySG9saWRheSggMSwgICB0cnVlLCAiRWFzdGVyIE1vbmRheSIpLAorICAgICAgICBuZXcgRWFzdGVySG9saWRheSg1MCwgICB0cnVlLCAiV2hpdCBNb25kYXkiKSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgImhvbGlkYXlzIiwgICAgICAgICBmSG9saWRheXMgICB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW4uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFiYzUxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW4uamF2YQpAQCAtMCwwICsxLDI4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VuIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIC8vIE5vcm1hbGx5LCBlYWNoIEhvbGlkYXlCdW5kbGUgdXNlcyB0aGUgaG9saWRheSdzIFVTIEVuZ2xpc2ggbmFtZQorICAgIC8vIGFzIHRoZSBzdHJpbmcga2V5IGZvciBsb29raW5nIHVwIHRoZSBsb2NhbGl6ZWQgbmFtZS4gIFRoaXMgbWVhbnMKKyAgICAvLyB0aGF0IHRoZSBrZXkgaXRzZWxmIGNhbiBiZSB1c2VkIGlmIG5vIG5hbWUgaXMgZm91bmQgZm9yIHRoZSByZXF1ZXN0ZWQKKyAgICAvLyBsb2NhbGUuCisgICAgLy8KKyAgICAvLyBGb3IgaG9saWRheXMgd2hlcmUgdGhlIGtleSBpcyBfbm90XyB0aGUgRW5nbGlzaCBuYW1lLCBlLmcuIGluIHRoZQorICAgIC8vIGNhc2Ugb2YgY29uZmxpY3RzLCB0aGUgRW5nbGlzaCBuYW1lIG11c3QgYmUgZ2l2ZW4gaGVyZS4KKyAgICAvLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgIiIsICIiICB9LCAgICAgIC8vIENhbid0IGJlIGVtcHR5IQorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX0NBLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fQ0EuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZTlmODAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX0NBLmphdmEKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VuX0NBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgMTksIDAsICAgICAgICAgICAgICAgICAgIlZpY3RvcmlhIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVUxZLCAgICAgICAxLCAwLCAgICAgICAgICAgICAgICAgICJDYW5hZGEgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgICAgIDEsIENhbGVuZGFyLk1PTkRBWSwgICAgIkNpdmljIEhvbGlkYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuU0VQVEVNQkVSLCAgMSwgQ2FsZW5kYXIuTU9OREFZLCAgICAiTGFib3IgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgIDgsIENhbGVuZGFyLk1PTkRBWSwgICAgIlRoYW5rc2dpdmluZyIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDExLCAwLCAgICAgICAgICAgICAgICAgICJSZW1lbWJyYW5jZSBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfRVZFLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICAvL2hleSB7amZ9IC0gd2hlcmUgYXJlIHRoZXNlIGZyb20/CisvLyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKy8vICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisvLyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorCisgICAgICAgIHsgIkxhYm9yIERheSIsICAiTGFib3VyIERheSIgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX0dCLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fR0IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YTcxNDIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX0dCLmphdmEKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VuX0dCIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlCit7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5Lk1BWV9EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDMxLCAtQ2FsZW5kYXIuTU9OREFZLCAgICAiU3ByaW5nIEhvbGlkYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVVHVVNULCAgICAgMzEsIC1DYWxlbmRhci5NT05EQVksICAgICJTdW1tZXIgQmFuayBIb2xpZGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkJPWElOR19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgIDMxLCAtQ2FsZW5kYXIuTU9OREFZLCAgICAiQ2hyaXN0bWFzIEhvbGlkYXkiKSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorCisgICAgICAgIHsgIkxhYm9yIERheSIsICAiTGFib3VyIERheSIgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX1VTLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fVVMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMWQxNTMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX1VTLmphdmEKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VuX1VTIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlCit7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KQU5VQVJZLCAgIDE1LCBDYWxlbmRhci5NT05EQVksICAgICAgIk1hcnRpbiBMdXRoZXIgS2luZyBEYXkiLCAgIDE5ODYpLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkZFQlJVQVJZLCAgMTUsIENhbGVuZGFyLk1PTkRBWSwgICAgICAiUHJlc2lkZW50cycgRGF5IiwgICAgICAgICAgMTk3NiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkZFQlJVQVJZLCAgMjIsICAgICAgICAgICAgICAgICAgICAgICAiV2FzaGluZ3RvbidzIEJpcnRoZGF5IiwgICAgMTc3NiwgMTk3NSksCisKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDgsIENhbGVuZGFyLlNVTkRBWSwgICAgICAiTW90aGVyJ3MgRGF5IiwgICAgICAgICAgICAgMTkxNCksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgICAgICJNZW1vcmlhbCBEYXkiLCAgICAgICAgICAgICAxOTcxKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAzMCwgICAgICAgICAgICAgICAgICAgICAgICJNZW1vcmlhbCBEYXkiLCAgICAgICAgICAgICAxODY4LCAxOTcwKSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVU5FLCAgICAgIDE1LCBDYWxlbmRhci5TVU5EQVksICAgICAgIkZhdGhlcidzIERheSIsICAgICAgICAgICAgIDE5NTYpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVUxZLCAgICAgICA0LCAgICAgICAgICAgICAgICAgICAgICAgIkluZGVwZW5kZW5jZSBEYXkiLCAgICAgICAgIDE3NzYpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5TRVBURU1CRVIsICAxLCBDYWxlbmRhci5NT05EQVksICAgICAgIkxhYm9yIERheSIsICAgICAgICAgICAgICAgIDE4OTQpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgICAyLCBDYWxlbmRhci5UVUVTREFZLCAgICAgIkVsZWN0aW9uIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgICA4LCBDYWxlbmRhci5NT05EQVksICAgICAgIkNvbHVtYnVzIERheSIsICAgICAgICAgICAgIDE5NzEpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSICwgIDMxLCAgICAgICAgICAgICAgICAgICAgICAgIkhhbGxvd2VlbiIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDExLCAgICAgICAgICAgICAgICAgICAgICAgIlZldGVyYW5zJyBEYXkiLCAgICAgICAgICAgIDE5MTgpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDIyLCBDYWxlbmRhci5USFVSU0RBWSwgICAgIlRoYW5rc2dpdmluZyIsICAgICAgICAgICAgIDE4NjMpLAorCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNDkyNTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VzLmphdmEKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lcyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiQWxsIFNhaW50cycgRGF5IiwgICAgICAgICAgIlRvZG9zIGxvcyBTYW50b3MiIH0sCisgICAgICAgIHsgICAiQXJtaXN0aWNlIERheSIsICAgICAgICAgICAgIkRcdTAwZWRhIGRlbCBBcm1pc3RpY2lvIiB9LAorICAgICAgICB7ICAgIkFzY2Vuc2lvbiIsICAgICAgICAgICAgICAgICJBc2NlbnNpXHUwMGYzbiIgfSwKKyAgICAgICAgeyAgICJCZW5pdG8gSnVcdTAwZTFyZXogRGF5IiwgICAgICAgICJEXHUwMGVkYSBkZSBsYSBCZW5pdG8gSnVcdTAwZTFyZXoiIH0sCisgICAgICAgIHsgICAiQm94aW5nIERheSIsICAgICAgICAgICAgICAgIkRcdTAwZWRhIGVuIHF1ZSBzZSBkYW4gQWd1aW5hbGRvcyBOYXZpZGVcdTAwZjFvcyIgfSwKKyAgICAgICAgeyAgICJDYW5hZGEgRGF5IiwgICAgICAgICAgICAgICAiRFx1MDBlZGEgZGVsIENhbmFkXHUwMGUxIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyBFdmUiLCAgICAgICAgICAgICJWXHUwMEVEc3BlcmEgZGUgTmF2aWRhZCIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgICAgICAgICAiTmF2aWRhZCIgfSwKKyAgICAgICAgeyAgICJDb25zdGl0dXRpb24gRGF5IiwgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgQ29uc3RpdHVjaVx1MDBmM24iIH0sCisgICAgICAgIHsgICAiRGF5IG9mIHRoZSBEZWFkIiwgICAgICAgICAgIkRcdTAwZWRhIGRlIGxvcyBNdWVydG9zIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBTdW5kYXkiLCAgICAgICAgICAgICJQYXNjdWEiIH0sCisgICAgICAgIHsgICAiRWFzdGVyIE1vbmRheSIsICAgICAgICAgICAgIlBhc2N1YSBMdW5lcyIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICAgICAiRXBpZmFuXHUwMGVkYSIgfSwKKyAgICAgICAgeyAgICJGYXRoZXIncyBEYXkiLCAgICAgICAgICAgICAiRFx1MDBlZGEgZGVsIFBhZHJlIiB9LAorICAgICAgICB7ICAgIkZsYWcgRGF5IiwgICAgICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBCYW5kZXJhIiB9LAorICAgICAgICB7ICAgIkdvb2QgRnJpZGF5IiwgICAgICAgICAgICAgICJWaWVybmVzIFNhbnRvIiB9LAorICAgICAgICB7ICAgIkhhbGxvd2VlbiIsICAgICAgICAgICAgICAgICJ2XHUwMGVkc3BlcmEgZGUgVG9kb3MgbG9zIFNhbnRvcyIgfSwKKyAgICAgICAgeyAgICJJbmRlcGVuZGVuY2UgRGF5IiwgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgSW5kZXBlbmRlbmNpYSIgfSwKKyAgICAgICAgeyAgICJMYWJvciBEYXkiLCAgICAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgVHJhYmFqYWRvcmVzIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgICAgICJKdWV2ZXMgU2FudG8iIH0sCisgICAgICAgIHsgICAiTWF5IERheSIsICAgICAgICAgICAgICAgICAgIlByaW1lcm8gZGUgTWF5byIgfSwKKyAgICAgICAgeyAgICJNZW1vcmlhbCBEYXkiLCAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgUmVtZW1vcmFjaVx1MDBmM24iIH0sCisgICAgICAgIHsgICAiTW90aGVyJ3MgRGF5IiwgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIGxhIE1hZHJlIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAgICAgICAgICJBXHUwMGYxbyBOdWV2byIgfSwKKyAgICAgICAgeyAgICJQYWxtIFN1bmRheSIsICAgICAgICAgICAgICAiRG9taW5nbyBkZSBSYW1vcyIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICAgICAiUGVudGVjb3N0XHUwMGU5cyIgfSwKKyAgICAgICAgeyAgICJQcmVzaWRlbnRzJyBEYXkiLCAgICAgICAgICAiRFx1MDBlZGEgZGUgUHJlc2lkZW50ZXMiIH0sCisgICAgICAgIHsgICAiUmV2b2x1dGlvbiBEYXkiLCAgICAgICAgICAgIkRcdTAwZWRhIGRlIGxhIFJldm9sdWNpXHUwMGYzbiIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICAgICAiTWFydGVzIGRlIENhcm5hdmFsIiB9LAorICAgICAgICB7ICAgIlRoYW5rc2dpdmluZyIsICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBBY2NpXHUwMGYzbiBkZSBHcmFjaWFzIiB9LAorICAgICAgICB7ICAgIlZldGVyYW5zJyBEYXkiLCAgICAgICAgICAgICJEXHUwMGVkYSBkZSBWZXRlcmFub3MiIH0sCisgICAgICAgIHsgICAiVmljdG9yaWEgRGF5IiwgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIFZpY3RvcmlhIiB9LAorICAgICAgICB7ICAgIldoaXQgU3VuZGF5IiwgICAgICAgICAgICAgICJQZW50ZWNvc3RcdTAwZTlzIiB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lc19NWC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VzX01YLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGM1MmZjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lc19NWC5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lc19NWCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5GRUJSVUFSWSwgICA1LCAgMCwgICAgIkNvbnN0aXR1dGlvbiBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFSQ0gsICAgICAyMSwgIDAsICAgICJCZW5pdG8gSnVcdTAwRTFyZXogRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTUFZX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgNSwgIDAsICAgICJDaW5jbyBkZSBNYXlvIiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTkUsICAgICAgIDEsICAwLCAgICAiTmF2eSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuU0VQVEVNQkVSLCAxNiwgIDAsICAgICJJbmRlcGVuZGVuY2UgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgMTIsICAwLCAgICAiRFx1MDBFRGEgZGUgbGEgUmF6YSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFMTF9TQUlOVFNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgICAyLCAgMCwgICAgIkRheSBvZiB0aGUgRGVhZCIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDIwLCAgMCwgICAgIlJldm9sdXRpb24gRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgMTIsICAwLCAgICAiRmxhZyBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ1NjQ3NzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnIuamF2YQpAQCAtMCwwICsxLDQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2ZyIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICJUb3Vzc2FpbnQiIH0sCisgICAgICAgIHsgICAiQXJtaXN0aWNlIERheSIsICAgICAgICAiSm91ciBkZSBsJ0FybWlzdGljZSIgfSwKKyAgICAgICAgeyAgICJBc2NlbnNpb24iLCAgICAgICAgICAgICJBc2NlbnNpb24iIH0sCisgICAgICAgIHsgICAiQmFzdGlsbGUgRGF5IiwgICAgICAgICAiRlx1MDBFQXRlIGRlIGxhIEJhc3RpbGxlIiB9LAorICAgICAgICB7ICAgIkJlbml0byBKdVx1MDBFMXJleiBEYXkiLCAgICAiRlx1MDBFQXRlIGRlIEJlbml0byBKdVx1MDBFMXJleiIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICJMZW5kZW1haW4gZGUgTm9cdTAwRUJsIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyBFdmUiLCAgICAgICAgIlZlaWxsZSBkZSBOb1x1MDBFQmwiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICAgICAiTm9cdTAwRUJsIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBNb25kYXkiLCAgICAgICAgIlBcdTAwRTJxdWVzIGx1bmRpIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBTdW5kYXkiLCAgICAgICAgIlBcdTAwRTJxdWVzIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgImwnXHUwMEM5cGlwaGFuaWUiIH0sCisgICAgICAgIHsgICAiRmxhZyBEYXkiLCAgICAgICAgICAgICAiRlx1MDBFQXRlIGR1IERyYXBlYXUiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAiVmVuZHJlZGkgU2FpbnQiIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAiVmVpbGxlIGRlIGxhIFRvdXNzYWludCIgfSwKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICJUb3Vzc2FpbnQiIH0sCisgICAgICAgIHsgICAiSW5kZXBlbmRlbmNlIERheSIsICAgICAiRlx1MDBFQXRlIEluZFx1MDBFOXBlbmRhbmNlIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgIkpldWRpIFNhaW50IiB9LAorICAgICAgICB7ICAgIk1vdGhlcidzIERheSIsICAgICAgICAgIkZcdTAwRUF0ZSBkZXMgbVx1MDBFOHJlcyIgfSwKKyAgICAgICAgeyAgICJOYXRpb25hbCBEYXkiLCAgICAgICAgICJGXHUwMEVBdGUgTmF0aW9uYWxlIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAgICAgIkpvdXIgZGUgbCdhbiIgfSwKKyAgICAgICAgeyAgICJQYWxtIFN1bmRheSIsICAgICAgICAgICJsZXMgUmFtZWF1eCIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICJQZW50ZWNcdTAwRjR0ZSIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICJNYXJkaSBHcmFzIiB9LAorICAgICAgICB7ICAgIlN0LiBTdGVwaGVuJ3MgRGF5IiwgICAgIlNhaW50LVx1MDBDOXRpZW5uZSIgfSwKKyAgICAgICAgeyAgICJWaWN0b3JpYSBEYXkiLCAgICAgICAgICJGXHUwMEVBdGUgZGUgbGEgVmljdG9yaWEiIH0sCisgICAgICAgIHsgICAiVmljdG9yeSBEYXkiLCAgICAgICAgICAiRlx1MDBFQXRlIGRlIGxhIFZpY3RvaXJlIiB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9DQS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyX0NBLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQzNDc3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9DQS5qYXZhCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9mcl9DQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAgMSwgIDAsICAgICAgICAgICAgICAgICAgIk5ldyBZZWFyJ3MgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgMTksICAwLCAgICAgICAgICAgICAgICAgICJWaWN0b3JpYSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgICAyNCwgIDAsICAgICAgICAgICAgICAgICAgIk5hdGlvbmFsIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVUxZLCAgICAgICAxLCAgMCwgICAgICAgICAgICAgICAgICAiQ2FuYWRhIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BVUdVU1QsICAgICAxLCAgQ2FsZW5kYXIuTU9OREFZLCAgICAiQ2l2aWMgSG9saWRheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5TRVBURU1CRVIsICAxLCAgQ2FsZW5kYXIuTU9OREFZLCAgICAiTGFib3VyIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgICA4LCAgQ2FsZW5kYXIuTU9OREFZLCAgICAiVGhhbmtzZ2l2aW5nIiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMTEsICAwLCAgICAgICAgICAgICAgICAgICJSZW1lbWJyYW5jZSBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfRVZFLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9GUi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyX0ZSLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjQ0YTliNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9GUi5qYXZhCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9mcl9GUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAxLCAgMCwgIkxhYm9yIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICA4LCAgMCwgIlZpY3RvcnkgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTFksICAgICAgMTQsICAwLCAiQmFzdGlsbGUgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQVNTVU1QVElPTiwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BTExfU0FJTlRTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxMSwgIDAsICJBcm1pc3RpY2UgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5BU0NFTlNJT04sCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9NT05EQVksCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxMmJkYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXQuamF2YQpAQCAtMCwwICsxLDM1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2l0IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9CisgICAgeworICAgICAgICB7ICAgIkFsbCBTYWludHMnIERheSIsICAgICAgIk9nbmlzc2FudGkiIH0sCisgICAgICAgIHsgICAiQXJtaXN0aWNlIERheSIsICAgICAgICAiYXJtaXN0aXppbyIgfSwKKyAgICAgICAgeyAgICJBc2NlbnNpb24iLCAgICAgICAgICAgICJhc2NlbnNpb25lIiB9LAorICAgICAgICB7ICAgIkFzaCBXZWRuZXNkYXkiLCAgICAgICAgIm1lcmNvbGVkXHUwMGVjIGRlbGxlIGNlbmVyaSIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICJTYW50byBTdGVmYW5vIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyIsICAgICAgICAgICAgIm5hdGFsZSIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgU3VuZGF5IiwgICAgICAgICJwYXNxdWEiIH0sCisgICAgICAgIHsgICAiRXBpcGhhbnkiLCAgICAgICAgICAgICAiRXBpZmFuaWEiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAidmVuZXJkXHUwMGVjIHNhbnRvIiB9LAorICAgICAgICB7ICAgIkhhbGxvd2VlbiIsICAgICAgICAgICAgInZpZ2lsaWEgZGkgT2duaXNzYW50aSIgfSwKKyAgICAgICAgeyAgICJNYXVuZHkgVGh1cnNkYXkiLCAgICAgICJnaW92ZWRcdTAwZWMgc2FudG8iIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICAgICAiYW5ubyBudW92byIgfSwKKyAgICAgICAgeyAgICJQYWxtIFN1bmRheSIsICAgICAgICAgICJkb21lbmljYSBkZWxsZSBwYWxtZSIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICJkaSBQZW50ZWNvc3RlIiB9LAorICAgICAgICB7ICAgIlNocm92ZSBUdWVzZGF5IiwgICAgICAgIm1hcnRlZGkgZ3Jhc3NvIiB9LAorICAgICAgICB7ICAgIlN0LiBTdGVwaGVuJ3MgRGF5IiwgICAgIlNhbnRvIFN0ZWZhbm8iIH0sCisgICAgICAgIHsgICAiVGhhbmtzZ2l2aW5nIiwgICAgICAgICAiR2lvcm5vIGRlbCBSaW5ncmF6aWFtZW50byIgfSwKKworICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXRfSVQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdF9JVC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkxOTY0OGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXRfSVQuamF2YQpAQCAtMCwwICsxLDM1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfaXRfSVQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5FUElQSEFOWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVBSSUwsICAgICAgMSwgIDAsICAgICJMaWJlcmF0aW9uIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAxLCAgMCwgICAgIkxhYm9yIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFTU1VNUFRJT04sCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQUxMX1NBSU5UU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuSU1NQUNVTEFURV9DT05DRVBUSU9OLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAyNiwgIDAsICAgICJTdC4gU3RlcGhlbnMgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0VWRSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgICAgICAgICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTNhYjdmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdy5qYXZhCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfaXcgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiIiwgIiIgIH0sICAgICAgLy8gQ2FuJ3QgYmUgZW1wdHkhCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXdfSUwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pd19JTC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkNjBiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXdfSUwuamF2YQpAQCAtMCwwICsxLDI4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9pd19JTCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgSGVicmV3SG9saWRheS5ST1NIX0hBU0hBTkFILAorICAgICAgICBIZWJyZXdIb2xpZGF5LllPTV9LSVBQVVIsCisgICAgICAgIEhlYnJld0hvbGlkYXkuSEFOVUtLQUgsCisgICAgICAgIEhlYnJld0hvbGlkYXkuUFVSSU0sCisgICAgICAgIEhlYnJld0hvbGlkYXkuUEFTU09WRVIsCisgICAgICAgIEhlYnJld0hvbGlkYXkuU0hBVlVPVCwKKyAgICAgICAgSGVicmV3SG9saWRheS5TRUxJSE9ULAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfamFfSlAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9qYV9KUC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU3ZWY4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfamFfSlAuamF2YQpAQCAtMCwwICsxLDIyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfamFfSlAgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkZFQlJVQVJZLCAgMTEsICAwLCAgICAiTmF0aW9uYWwgRm91bmRhdGlvbiBEYXkiKSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgImhvbGlkYXlzIiwgICAgICAgICBmSG9saWRheXMgICB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Jlc291cmNlUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Jlc291cmNlUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmIyZWY2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvUmVzb3VyY2VSZWFkZXIuamF2YQpAQCAtMCwwICsxLDIyOSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQSByZWFkZXIgZm9yIHRleHQgcmVzb3VyY2UgZGF0YSBpbiB0aGUgY3VycmVudCBwYWNrYWdlIG9yIHRoZSBwYWNrYWdlCisgKiBvZiBhIGdpdmVuIGNsYXNzIG9iamVjdC4gIFRoZQorICogcmVzb3VyY2UgZGF0YSBpcyBsb2FkZWQgdGhyb3VnaCB0aGUgY2xhc3MgbG9hZGVyLCBzbyBpdCB3aWxsCisgKiB0eXBpY2FsbHkgYmUgYSBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgKi5jbGFzcyBmaWxlcywgb3IKKyAqIGEgZmlsZSB3aXRoaW4gYSBKQVIgZmlsZSBpbiB0aGUgY29ycmVzcG9uZGluZyBzdWJkaXJlY3RvcnkuICBUaGUKKyAqIGZpbGUgbXVzdCBiZSBhIHRleHQgZmlsZSBpbiBvbmUgb2YgdGhlIHN1cHBvcnRlZCBlbmNvZGluZ3M7IHdoZW4gdGhlCisgKiByZXNvdXJjZSBpcyBvcGVuZWQgYnkgY29uc3RydWN0aW5nIGEgPGNvZGU+UmVzb3VyY2VSZWFkZXI8L2NvZGU+CisgKiBvYmplY3QgdGhlIGVuY29kaW5nIGlzIHNwZWNpZmllZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBSZXNvdXJjZVJlYWRlciB7CisgICAgcHJpdmF0ZSBCdWZmZXJlZFJlYWRlciByZWFkZXI7CisgICAgcHJpdmF0ZSBTdHJpbmcgcmVzb3VyY2VOYW1lOworICAgIHByaXZhdGUgU3RyaW5nIGVuY29kaW5nOyAvLyBudWxsIGZvciBkZWZhdWx0IGVuY29kaW5nCisgICAgcHJpdmF0ZSBDbGFzcyByb290OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBvbmUtYmFzZWQgbGluZSBudW1iZXIuIEhhcyB0aGUgc3BlY2lhbCB2YWx1ZSAtMSBiZWZvcmUgdGhlCisgICAgICogb2JqZWN0IGlzIGluaXRpYWxpemVkLiBIYXMgdGhlIHNwZWNpYWwgdmFsdWUgMCBhZnRlciBpbml0aWFsaXphdGlvbgorICAgICAqIGJ1dCBiZWZvcmUgdGhlIGZpcnN0IGxpbmUgaXMgcmVhZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lTm87CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSByZWFkZXIgb2JqZWN0IGZvciB0aGUgdGV4dCBmaWxlIG9mIHRoZSBnaXZlbiBuYW1lCisgICAgICogaW4gdGhpcyBwYWNrYWdlLCB1c2luZyB0aGUgZ2l2ZW4gZW5jb2RpbmcuCisgICAgICogQHBhcmFtIHJlc291cmNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgdGV4dCBmaWxlIGxvY2F0ZWQgaW4gdGhpcworICAgICAqIHBhY2thZ2UncyAiLmRhdGEiIHN1YnBhY2thZ2UuCisgICAgICogQHBhcmFtIGVuY29kaW5nIHRoZSBlbmNvZGluZyBvZiB0aGUgdGV4dCBmaWxlOyBpZiB1bnN1cHBvcnRlZAorICAgICAqIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24KKyAgICAgKiBAZXhjZXB0aW9uIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gaWYKKyAgICAgKiA8Y29kZT5lbmNvZGluZzwvY29kZT4gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSkRLLgorICAgICAqLworICAgIHB1YmxpYyBSZXNvdXJjZVJlYWRlcihTdHJpbmcgcmVzb3VyY2VOYW1lLCBTdHJpbmcgZW5jb2RpbmcpCisgICAgICAgIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgdGhpcyhJQ1VEYXRhLmNsYXNzLCAiZGF0YS8iICsgcmVzb3VyY2VOYW1lLCBlbmNvZGluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcmVhZGVyIG9iamVjdCBmb3IgdGhlIHRleHQgZmlsZSBvZiB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIGluIHRoaXMgcGFja2FnZSwgdXNpbmcgdGhlIGRlZmF1bHQgZW5jb2RpbmcuCisgICAgICogQHBhcmFtIHJlc291cmNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgdGV4dCBmaWxlIGxvY2F0ZWQgaW4gdGhpcworICAgICAqIHBhY2thZ2UncyAiLmRhdGEiIHN1YnBhY2thZ2UuCisgICAgICovCisgICAgcHVibGljIFJlc291cmNlUmVhZGVyKFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgdGhpcyhJQ1VEYXRhLmNsYXNzLCAiZGF0YS8iICsgcmVzb3VyY2VOYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSByZWFkZXIgb2JqZWN0IGZvciB0aGUgdGV4dCBmaWxlIG9mIHRoZSBnaXZlbiBuYW1lCisgICAgICogaW4gdGhlIGdpdmVuIGNsYXNzJ3MgcGFja2FnZSwgdXNpbmcgdGhlIGdpdmVuIGVuY29kaW5nLgorICAgICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHRleHQgZmlsZSBsb2NhdGVkIGluIHRoZQorICAgICAqIGdpdmVuIGNsYXNzJ3MgcGFja2FnZS4KKyAgICAgKiBAcGFyYW0gZW5jb2RpbmcgdGhlIGVuY29kaW5nIG9mIHRoZSB0ZXh0IGZpbGU7IGlmIHVuc3VwcG9ydGVkCisgICAgICogYW4gZXhjZXB0aW9uIGlzIHRocm93bgorICAgICAqIEBleGNlcHRpb24gVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBpZgorICAgICAqIDxjb2RlPmVuY29kaW5nPC9jb2RlPiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBKREsuCisgICAgICovCisgICAgcHVibGljIFJlc291cmNlUmVhZGVyKENsYXNzIHJvb3RDbGFzcywgU3RyaW5nIHJlc291cmNlTmFtZSwgU3RyaW5nIGVuY29kaW5nKQorICAgICAgICB0aHJvd3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3RDbGFzczsKKyAgICAgICAgdGhpcy5yZXNvdXJjZU5hbWUgPSByZXNvdXJjZU5hbWU7CisgICAgICAgIHRoaXMuZW5jb2RpbmcgPSBlbmNvZGluZzsKKyAgICAgICAgbGluZU5vID0gLTE7CisgICAgICAgIF9yZXNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgICBwdWJsaWMgUmVzb3VyY2VSZWFkZXIoSW5wdXRTdHJlYW0gaXMsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgIHRoaXMucm9vdCA9IG51bGw7CisgICAgICAgICB0aGlzLnJlc291cmNlTmFtZSA9IHJlc291cmNlTmFtZTsKKyAgICAgICAgIHRoaXMuZW5jb2RpbmcgPSBudWxsOworCisgICAgICAgICB0aGlzLmxpbmVObyA9IC0xOworICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSAoZW5jb2RpbmcgPT0gbnVsbCkgCisgICAgICAgICAgICAgICAgID8gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKQorICAgICAgICAgICAgICAgICA6IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcywgZW5jb2RpbmcpOworCisgICAgICAgICAgICAgdGhpcy5yZWFkZXIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKyAgICAgICAgICAgICB0aGlzLmxpbmVObz0gMDsKKyAgICAgICAgIH0KKyAgICAgICAgIGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgIH0KKyAgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcmVhZGVyIG9iamVjdCBmb3IgdGhlIHRleHQgZmlsZSBvZiB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIGluIHRoZSBnaXZlbiBjbGFzcydzIHBhY2thZ2UsIHVzaW5nIHRoZSBkZWZhdWx0IGVuY29kaW5nLgorICAgICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHRleHQgZmlsZSBsb2NhdGVkIGluIHRoZQorICAgICAqIGdpdmVuIGNsYXNzJ3MgcGFja2FnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVzb3VyY2VSZWFkZXIoQ2xhc3Mgcm9vdENsYXNzLCBTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3RDbGFzczsKKyAgICAgICAgdGhpcy5yZXNvdXJjZU5hbWUgPSByZXNvdXJjZU5hbWU7CisgICAgICAgIHRoaXMuZW5jb2RpbmcgPSBudWxsOworICAgICAgICBsaW5lTm8gPSAtMTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIF9yZXNldCgpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHt9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhZCBhbmQgcmV0dXJuIHRoZSBuZXh0IGxpbmUgb2YgdGhlIGZpbGUgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiBpZiB0aGUgZW5kIG9mIHRoZSBmaWxlIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyByZWFkTGluZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChsaW5lTm8gPT0gMCkgeworICAgICAgICAgICAgLy8gUmVtb3ZlIEJPTXMKKyAgICAgICAgICAgICsrbGluZU5vOworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSByZWFkZXIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lLmNoYXJBdCgwKSA9PSAnXHVGRkVGJyB8fAorICAgICAgICAgICAgICAgIGxpbmUuY2hhckF0KDApID09ICdcdUZFRkYnKSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgICAgIH0KKyAgICAgICAgKytsaW5lTm87CisgICAgICAgIHJldHVybiByZWFkZXIucmVhZExpbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGEgbGluZSwgaWdub3JpbmcgYmxhbmsgbGluZXMgYW5kIGxpbmVzIHRoYXQgc3RhcnQgd2l0aAorICAgICAqICcjJy4KKyAgICAgKiBAcGFyYW0gdHJpbSBpZiB0cnVlIHRoZW4gdHJpbSBsZWFkaW5nIHJ1bGUgd2hpdGUgc3BhY2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyByZWFkTGluZVNraXBwaW5nQ29tbWVudHMoYm9vbGVhbiB0cmltKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IHJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBTa2lwIG92ZXIgd2hpdGUgc3BhY2UKKyAgICAgICAgICAgIGludCBwb3MgPSBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKGxpbmUsIDApOworICAgICAgICAgICAgLy8gSWdub3JlIGJsYW5rIGxpbmVzIGFuZCBjb21tZW50IGxpbmVzCisgICAgICAgICAgICBpZiAocG9zID09IGxpbmUubGVuZ3RoKCkgfHwgbGluZS5jaGFyQXQocG9zKSA9PSAnIycpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFByb2Nlc3MgbGluZQorICAgICAgICAgICAgaWYgKHRyaW0pIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhwb3MpOworICAgICAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJlYWQgYSBsaW5lLCBpZ25vcmluZyBibGFuayBsaW5lcyBhbmQgbGluZXMgdGhhdCBzdGFydCB3aXRoCisgICAgICogJyMnLiBEbyBub3QgdHJpbSBsZWFkaW5nIHJ1bGUgd2hpdGUgc3BhY2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyByZWFkTGluZVNraXBwaW5nQ29tbWVudHMoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gcmVhZExpbmVTa2lwcGluZ0NvbW1lbnRzKGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9uZS1iYXNlZCBsaW5lIG51bWJlciBvZiB0aGUgbGFzdCBsaW5lIHJldHVybmVkIGJ5CisgICAgICogcmVhZExpbmUoKSBvciByZWFkTGluZVNraXBwaW5nQ29tbWVudHMoKS4gU2hvdWxkIG9ubHkgYmUgY2FsbGVkCisgICAgICogYWZ0ZXIgYSBjYWxsIHRvIG9uZSBvZiB0aGVzZSBtZXRob2RzOyBvdGhlcndpc2UgdGhlIHJldHVybgorICAgICAqIHZhbHVlIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExpbmVOdW1iZXIoKSB7CisgICAgICAgIHJldHVybiBsaW5lTm87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyBkZXNjcmlwdGlvbiBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgbGluZQorICAgICAqIHJldHVybmVkIGJ5IHJlYWRMaW5lKCkgb3IgcmVhZExpbmVTa2lwcGluZ0NvbW1lbnRzKCkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBkZXNjcmliZVBvc2l0aW9uKCkgeworICAgICAgICByZXR1cm4gcmVzb3VyY2VOYW1lICsgJzonICsgbGluZU5vOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGlzIHJlYWRlciBzbyB0aGF0IHRoZSBuZXh0IGNhbGwgdG8KKyAgICAgKiA8Y29kZT5yZWFkTGluZSgpPC9jb2RlPiByZXR1cm5zIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlCisgICAgICogYWdhaW4uICBUaGlzIGlzIGEgc29tZXdoYXQgZXhwZW5zaXZlIGNhbGwsIGhvd2V2ZXIsIGNhbGxpbmcKKyAgICAgKiA8Y29kZT5yZXNldCgpPC9jb2RlPiBhZnRlciBjYWxsaW5nIGl0IHRoZSBmaXJzdCB0aW1lIGRvZXMKKyAgICAgKiBub3RoaW5nIGlmIDxjb2RlPnJlYWRMaW5lKCk8L2NvZGU+IGhhcyBub3QgYmVlbiBjYWxsZWQgaW4KKyAgICAgKiBiZXR3ZWVuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgX3Jlc2V0KCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkge30KKyAgICAgICAgLy8gV2Ugc3dhbGxvdyB0aGlzIGV4Y2VwdGlvbiwgaWYgdGhlcmUgaXMgb25lLiAgSWYgdGhlIGVuY29kaW5nIGlzCisgICAgICAgIC8vIGludmFsaWQsIHRoZSBjb25zdHJ1Y3RvciB3aWxsIGhhdmUgdGhyb3duIHRoaXMgZXhjZXB0aW9uIGFscmVhZHkgYW5kCisgICAgICAgIC8vIHRoZSBjYWxsZXIgc2hvdWxkbid0IHVzZSB0aGUgb2JqZWN0IGFmdGVyd2FyZHMuCisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdG8gdGhlIHN0YXJ0IGJ5IHJlY29uc3RydWN0aW5nIHRoZSBzdHJlYW0gYW5kIHJlYWRlcnMuCisgICAgICogV2UgY291bGQgYWxzbyB1c2UgbWFyaygpIGFuZCByZXNldCgpIG9uIHRoZSBzdHJlYW0gb3IgcmVhZGVyLAorICAgICAqIGJ1dCB0aGF0IHdvdWxkIGNhdXNlIHRoZW0gdG8ga2VlcCB0aGUgc3RyZWFtIGRhdGEgYXJvdW5kIGluCisgICAgICogbWVtb3J5LiAgV2UgZG9uJ3Qgd2FudCB0aGF0IGJlY2F1c2Ugc29tZSBvZiB0aGUgcmVzb3VyY2UgZmlsZXMKKyAgICAgKiBhcmUgbGFyZ2UsIGUuZy4sIDQwMGsuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIF9yZXNldCgpIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKGxpbmVObyA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFN0cmVhbShyb290LCByZXNvdXJjZU5hbWUpOworICAgICAgICBpZiAoaXMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3Qgb3BlbiAiICsgcmVzb3VyY2VOYW1lKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0KKyAgICAgICAgICAgIChlbmNvZGluZyA9PSBudWxsKSA/IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcykgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzLCBlbmNvZGluZyk7CisgICAgICAgIHJlYWRlciA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworICAgICAgICBsaW5lTm8gPSAwOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVG9rZW5JdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ub2tlbkl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcwYWI1ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVG9rZW5JdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTU5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTWFyY2ggMTYgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIEFuIGl0ZXJhdG9yIGNsYXNzIHRoYXQgcmV0dXJucyBzdWNjZXNzaXZlIHN0cmluZyB0b2tlbnMgZnJvbSBzb21lCisgKiBzb3VyY2UuICBTdHJpbmcgdG9rZW5zIGFyZSwgaW4gZ2VuZXJhbCwgc2VwYXJhdGVkIGJ5IHJ1bGUgd2hpdGUKKyAqIHNwYWNlIGluIHRoZSBzb3VyY2UgdGVzdC4gIEZ1cnRoZXJtb3JlLCB0aGV5IG1heSBiZSBkZWxpbWl0ZWQgYnkKKyAqIGVpdGhlciBzaW5nbGUgb3IgZG91YmxlIHF1b3RlcyAob3BlbmluZyBhbmQgY2xvc2luZyBxdW90ZXMgbXVzdAorICogbWF0Y2gpLiAgRXNjYXBlcyBhcmUgcHJvY2Vzc2VkIHVzaW5nIHN0YW5kYXJkIElDVSB1bmVzY2FwaW5nLgorICovCitwdWJsaWMgY2xhc3MgVG9rZW5JdGVyYXRvciB7CisKKyAgICBwcml2YXRlIFJlc291cmNlUmVhZGVyIHJlYWRlcjsKKyAgICBwcml2YXRlIFN0cmluZyBsaW5lOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIGJ1ZjsKKyAgICBwcml2YXRlIGJvb2xlYW4gZG9uZTsKKyAgICBwcml2YXRlIGludCBwb3M7CisgICAgcHJpdmF0ZSBpbnQgbGFzdHBvczsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBpdGVyYXRvciBvdmVyIHRoZSB0b2tlbnMgcmV0dXJuZWQgYnkgdGhlIGdpdmVuCisgICAgICogUmVzb3VyY2VSZWFkZXIsIGlnbm9yaW5nIGJsYW5rIGxpbmVzIGFuZCBjb21tZW50IGxpbmVzIChmaXJzdAorICAgICAqIG5vbi1ibGFuayBjaGFyYWN0ZXIgaXMgJyMnKS4gIE5vdGUgdGhhdCB0cmFpbGluZyBjb21tZW50cyBvbiBhCisgICAgICogbGluZSwgYmVnaW5uaW5nIHdpdGggdGhlIGZpcnN0IHVucXVvdGVkICcjJywgYXJlIHJlY29nbml6ZWQuCisgICAgICovCisgICAgcHVibGljIFRva2VuSXRlcmF0b3IoUmVzb3VyY2VSZWFkZXIgcikgeworICAgICAgICByZWFkZXIgPSByOworICAgICAgICBsaW5lID0gbnVsbDsKKyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHBvcyA9IGxhc3Rwb3MgPSAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5leHQgdG9rZW4gZnJvbSB0aGlzIGl0ZXJhdG9yLCBvciBudWxsIGlmIHRoZSBsYXN0CisgICAgICogdG9rZW4gaGFzIGJlZW4gcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gcmVhZGVyLnJlYWRMaW5lU2tpcHBpbmdDb21tZW50cygpOworICAgICAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwb3MgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGxhc3Rwb3MgPSBwb3M7CisgICAgICAgICAgICBwb3MgPSBuZXh0VG9rZW4ocG9zKTsKKyAgICAgICAgICAgIGlmIChwb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgbGluZSA9IG51bGw7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9uZS1iYXNlZCBsaW5lIG51bWJlciBvZiB0aGUgbGluZSBvZiB0aGUgbGFzdCB0b2tlbiByZXR1cm5lZCBieQorICAgICAqIG5leHQoKS4gU2hvdWxkIG9ubHkgYmUgY2FsbGVkCisgICAgICogYWZ0ZXIgYSBjYWxsIHRvIG5leHQoKTsgb3RoZXJ3aXNlIHRoZSByZXR1cm4KKyAgICAgKiB2YWx1ZSBpcyB1bmRlZmluZWQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMaW5lTnVtYmVyKCkgeworICAgICAgICByZXR1cm4gcmVhZGVyLmdldExpbmVOdW1iZXIoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIGRlc2NyaXB0aW9uIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBsaW5lCisgICAgICogcmV0dXJuZWQgYnkgcmVhZExpbmUoKSBvciByZWFkTGluZVNraXBwaW5nQ29tbWVudHMoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGRlc2NyaWJlUG9zaXRpb24oKSB7CisgICAgICAgIHJldHVybiByZWFkZXIuZGVzY3JpYmVQb3NpdGlvbigpICsgJzonICsgKGxhc3Rwb3MrMSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWQgdGhlIG5leHQgdG9rZW4gZnJvbSAndGhpcy5saW5lJyBhbmQgYXBwZW5kIGl0IHRvCisgICAgICogJ3RoaXMuYnVmJy4gIFRva2VucyBhcmUgc2VwYXJhdGVkIGJ5IHJ1bGUgd2hpdGUgc3BhY2UuICBUb2tlbnMKKyAgICAgKiBtYXkgYWxzbyBiZSBkZWxpbWl0ZWQgYnkgZG91YmxlIG9yIHNpbmdsZSBxdW90ZXMuICBUaGUgY2xvc2luZworICAgICAqIHF1b3RlIG11c3QgbWF0Y2ggdGhlIG9wZW5pbmcgcXVvdGUuICBJZiBhICcjJyBpcyBlbmNvdW50ZXJlZCwKKyAgICAgKiB0aGUgcmVzdCBvZiB0aGUgbGluZSBpcyBpZ25vcmVkLCB1bmxlc3MgaXQgaXMgYmFja3NsYXNoLWVzY2FwZWQKKyAgICAgKiBvciB3aXRoaW4gcXVvdGVzLgorICAgICAqIEBwYXJhbSBwb3MgdGhlIG9mZnNldCBpbnRvIHRoZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG9mZnNldCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgdG8gcmVhZCBmcm9tIGxpbmUsIG9yIGlmCisgICAgICogdGhlIGVuZCBvZiB0aGUgbGluZSBpcyByZWFjaGVkIHdpdGhvdXQgc2Nhbm5pbmcgYSB2YWxpZCB0b2tlbiwKKyAgICAgKiAtMQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRUb2tlbihpbnQgcG9zKSB7CisgICAgICAgIHBvcyA9IFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UobGluZSwgcG9zKTsKKyAgICAgICAgaWYgKHBvcyA9PSBsaW5lLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaW50IHN0YXJ0cG9zID0gcG9zOworICAgICAgICBjaGFyIGMgPSBsaW5lLmNoYXJBdChwb3MrKyk7CisgICAgICAgIGNoYXIgcXVvdGUgPSAwOworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAnIic6CisgICAgICAgIGNhc2UgJ1wnJzoKKyAgICAgICAgICAgIHF1b3RlID0gYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICcjJzoKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpbnRbXSBwb3NyZWYgPSBudWxsOworICAgICAgICB3aGlsZSAocG9zIDwgbGluZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYyA9IGxpbmUuY2hhckF0KHBvcyk7IC8vIDE2LWJpdCBvaworICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgIGlmIChwb3NyZWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwb3NyZWYgPSBuZXcgaW50WzFdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwb3NyZWZbMF0gPSBwb3MrMTsKKyAgICAgICAgICAgICAgICBpbnQgYzMyID0gVXRpbGl0eS51bmVzY2FwZUF0KGxpbmUsIHBvc3JlZik7CisgICAgICAgICAgICAgICAgaWYgKGMzMiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkludmFsaWQgZXNjYXBlIGF0ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuZGVzY3JpYmVQb3NpdGlvbigpICsgJzonICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgYzMyKTsKKyAgICAgICAgICAgICAgICBwb3MgPSBwb3NyZWZbMF07CisgICAgICAgICAgICB9IGVsc2UgaWYgKChxdW90ZSAhPSAwICYmIGMgPT0gcXVvdGUpIHx8CisgICAgICAgICAgICAgICAgICAgICAgIChxdW90ZSA9PSAwICYmIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiArK3BvczsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocXVvdGUgPT0gMCAmJiBjID09ICcjJykgeworICAgICAgICAgICAgICAgIHJldHVybiBwb3M7IC8vIGRvIE5PVCBpbmNyZW1lbnQKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocXVvdGUgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlVudGVybWluYXRlZCBxdW90ZSBhdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5kZXNjcmliZVBvc2l0aW9uKCkgKyAnOicgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRwb3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRGVmaW5pdGlvbi50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9EZWZpbml0aW9uLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODlmN2IwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRGVmaW5pdGlvbi50eHQKQEAgLTAsMCArMSw1NTc5OCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29udmVydCBDSksgY2hhcmFjdGVycywgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbnRpb25zIGluIENFRElDVCBhbmQgVW5paGFuLnR4dAorIyBOb3RlOiBhZGRzIHNwYWNlIGJldHdlZW4gdGhlbSBhbmQgbGV0dGVycy4KK3sgKFs6SGFuOl0pIH0gWzpMOl0gPiB8ICQxICcgJzsKK1tcLlwsXD9cIe+8ju+8jO+8n++8geOAgeOAgls6UGU6XVs6UGY6XV0geyB9IFs6TDpdID4gJyAnOworWzpMOl0geyB9IFtbOkhhbjpdWzpQczpdWzpQaTpdXT4gJyAnOworCivorormlocgPCBhXC1wb3B1bGFyXC1mb3JtXC1vZlwtbmFycmF0aXZlXC1saXRlcmF0dXJlXC1mbG91cmlzaGluZ1wtaW5cLXRoZVwtdGFuZ1wtZHluYXN0eVwtXCg2MThcLTkwN1wpXC13aXRoXC1hbHRlcm5hdGVcLXByb3NlXC1hbmRcLXJoeW1lZFwtcGFydHNcLWZvclwtcmVjaXRhdGlvblwtYW5kXC1zaW5naW5nXC1cKG9mdGVuXC1vblwtYnVkZGhpc3RpY1wtdGhlbWVzXCk7CivpgorluaMgPCBib3JkZXJcLXJlZ2lvblwtY3VycmVuY3lcLVwoY29uc2lzdGluZ1wtb2ZcLXRoZVwtY3VycmVuY3lcLW5vdGVzXC1pc3N1ZWRcLWJ5XC10aGVcLWJvcmRlclwtcmVnaW9uXC1nb3Zlcm5tZW50c1wtZHVyaW5nXC10aGVcLXdhclwtb2ZcLXJlc2lzdGFuY2VcLWFnYWluc3RcLWphcGFuXC1hbmRcLXRoZVwtd2FyXC1vZlwtbGliZXJhdGlvblwpOwor55u06YCa6LuKIDwgXCJ0aHJvdWdoXC10cmFpblwiXC1cKHJlZmVyc1wtdG9cLXRoZVwtaWRlYVwtb2ZcLXJldGFpbmluZ1wtcHJldmlvdXNcLWxlZ2lzbGF0dXJlXC1hZnRlclwtdHJhbnNpdGlvblwtdG9cLWNoaW5lc2VcLXJ1bGVcLWluXC1ob25nXC1rb25nXC1vclwtbWFjYXVcKTsKK+Wwj+iHn+msvCA8IGRpcnR5XC1saXR0bGVcLW1vbnN0ZXJcLVwoc3Bva2VuXC1hZmZlY3Rpb25hdGVseVwtdG9cLWFcLWNoaWxkXC13aG9cLWhhc1wtZ290dGVuXC1oaW1cKGhlclwpc2VsZlwtZGlydHlcO1wtbGl0ZXJhbGx5XC1cImxpdHRsZVwtZGlydHlcLWdob3N0XCJcKTsKK+auuumbnue1pueMtOeciyA8IFwia2lsbFwtYVwtY2hpY2tlblwtaW5cLWZyb250XC1vZlwtYVwtbW9ua2V5XCJcLVwtXC1cLW1ha2VcLWFuXC1leGFtcGxlXC1vdXRcLW9mXC1zb21lb25lXC1cKGJ5XC1wdW5pc2hpbmdcLXRoZW1cKVwtdG9cLWZyaWdodGVuXC1vdGhlcnM7CivmirHolqrmlZHngasgPCBjYXJyeVwtZmFnZ290c1wtdG9cLXB1dFwtb3V0XC1hXC1maXJlXC1cLVwtYWRvcHRcLWFcLXdyb25nXC1tZXRob2RcLXRvXC1zYXZlXC1hXC1zaXR1YXRpb25cLWFuZFwtZW5kXC11cFwtYnlcLW1ha2luZ1wtaXRcLXdvcnNlOwor5LiN6KaL5qO65p2Q5LiN6JC95reaIDwgbm90XC1zaGVkXC1hXC10ZWFyXC11bnRpbFwtb25lXC1zZWVzXC10aGVcLWNvZmZpblwtXC1cLXJlZnVzZVwtdG9cLWJlXC1jb252aW5jZWRcLXVudGlsXC1vbmVcLWlzXC1mYWNlZFwtd2l0aFwtZ3JpbVwtcmVhbGl0eTsKK+WQjOacnyA8IHRoZVwtY29ycmVzcG9uZGluZ1wtdGltZVwtcGVyaW9kXC1cKGVnXCxcLWNvbXBhcmVcLWluZmxhdGlvblwtbm93XC13aXRoXC10aGVcLXJhdGVcLWR1cmluZ1wtdGhlXC1zYW1lXC1tb250aFwtbGFzdFwteWVhclwpOwor46GOIDwgdGhlXC1sb25nXC1iYW5kc1wtb3JcLXJpYmJvbnNcLWF0dHJhY2hlZFwtdG9cLWZsYWdzXC1hbmRcLWJhbm5lcnNcLXRoZVwtZmVhdGhlclwtZGVjb3JlY3RlZFwtY2FycmlhZ2VzXC1vclwtZHJlc3NlczsKK+mDryA8IG5hbWVcLW9mXC1hXC1zbWFsbFwtYW5jaWVudFwtcHJpbmNpcGFsaXR5XC13aGljaFwtd2FzXC1zaXR1YXRlZFwtaW5cLXdoYXRcLWlzXC1ub3dcLXBhcnRcLW9mXC1zaGFudHVuZ1wtYW5kXC1raWFuZ3N1Owor5p2v5rC06LuK6JaqIDwgdHJ5aW5nXC10b1wtcHV0XC1vdXRcLWFcLWJ1cm5pbmdcLWNhcnRsb2FkXC1vZlwtZmFnZ290c1wtd2l0aFwtYVwtY3VwXC1vZlwtd2F0ZXJcLVwtXC1hblwtdXR0ZXJseVwtaW5hZGVxdWF0ZVwtbWVhc3VyZTsKK+SQniA8IHRoZVwtdGhpblwtbWVtYnJhbmVcLWJldHdlZW5cLXNraW5cLWFuZFwtZmxlc2hcLXRoYXRcLXByb3RlY3RzXC1pbnRlcm5hbFwtb3JnYW5zXC1vclwtdGlzc3Vlc1wtaW5cLXRoZVwtaHVtYW5cLWJvZHk7CivlgY/lgY8gPCBcKGluZGljYXRlc1wtdGhhdFwtc3RoXC5cLXR1cm5zXC1vdXRcLWp1c3RcLXRoZVwtb3Bwb3NpdGVcLW9mXC13aGF0XC1vbmVcLXdvdWxkXC1leHBlY3RcLW9yXC13aGF0XC13b3VsZFwtYmVcLW5vcm1hbFwpOwor5pWs56WdIDwgdG9cLXJlc3BlY3RmdWxseVwtb2ZmZXJcLVwod3JpdHRlblwtYXRcLXRoZVwtZW5kXC1vZlwtbGV0dGVyXC1mcm9tXC1zb21lb25lXC1vZlwtbG93ZXJcLXN0YXR1c1wtdG9cLWhpZ2hlclwtc3RhdHVzXCk7CivljZzovq0gPCBvcmFjbGVcLWluc2NyaXB0aW9uc1wtb2ZcLXRoZVwtc2hhbmdcLWR5bmFzdHlcLVwoMTZ0aFwtMTF0aFwtY2VudHVyeVwtYmNcKVwtb25cLXRvcnRvaXNlc2hlbGxzXC1vclwtYW5pbWFsXC1ib25lczsKK+eXheaApeS6guaKlemGqyA8IHR1cm5cLXRvXC1hbnlcLWRvY3Rvclwtb25lXC1jYW5cLWZpbmRcLXdoZW5cLWNyaXRpY2FsbHlcLWlsbFwtXC1cLXRyeVwtYW55dGhpbmdcLXdoZW5cLWluXC1hXC1kZXNwZXJhdGVcLXNpdHVhdGlvbjsKK+i+r+iovOaWveayuyA8IGRpYWdub3Npc1wtYW5kXC10cmVhdG1lbnRcLWJhc2VkXC1vblwtYW5cLW92ZXJhbGxcLWFuYWx5c2lzXC1vZlwtdGhlXC1pbGxuZXNzXC1hbmRcLXRoZVwtcGF0aWVudCcnc1wtY29uZGl0aW9uOwor54+qIDwgYVwtamFkZVwtdGFibGVcLWNvbmZlcnJlZFwtdXBvblwtZmV1ZGFsXC1wcmluY2VzXC1ieVwtdGhlXC1lbXBlcm9yXC1hc1wtYVwtc3ltYm9sXC1vZlwtZGlnbml0eVwtYW5kXC1hdXRob3JpdHk7CivmlZ3luJroh6rnj40gPCB2YWx1ZVwtb25lJydzXC1vd25cLW9sZFwtYnJvb21cLVwtXC1jaGVyaXNoXC1zb21ldGhpbmdcLW9mXC1saXR0bGVcLXZhbHVlXC1zaW1wbHlcLWJlY2F1c2VcLWl0XC1pc1wtb25lJydzXC1vd247CivkuI3nn6XlpKnpq5jlnLDljpogPCBub3RcLWtub3dcLXRoZVwtaW1tZW5zaXR5XC1vZlwtaGVhdmVuXC1hbmRcLWVhcnRoXC1cLVwtaGF2ZVwtYW5cLWV4YWdnZXJhdGVkXC1vcGluaW9uXC1vZlwtb25lJydzXC1hYmlsaXRpZXM7CivjurogPCBhXC12ZXJ5XC1wcmVjaW91c1wtcGllY2VcLW9mXC1qYWRlXC13b3JuXC1ieVwtYW5jaWVudFwtZW1wZXJvcnNcLXRvXC1tYXRjaFwtdGFibGVzXC1ib3JuZVwtYnlcLXRoZVwtbm9ibGVzOwor5ICYIDwgdG9cLWNvdmVyXC10aGVcLWxpbmVcLW9mXC12aXNpb25cLW9yXC1zaWdodFwtXC1cLXRoZVwtc3RyYWlnaHRcLWxpbmVcLWJldHdlZW5cLWFuXC1vYmplY3RcLWFuZFwtb25lJydzXC1leWVzOwor5YW15LiN6KGA5YiDIDwgdGhlXC1lZGdlc1wtb2ZcLXRoZVwtc3dvcmRzXC1ub3RcLWJlaW5nXC1zdGFpbmVkXC13aXRoXC1ibG9vZFwtXC1cLXdpblwtdmljdG9yeVwtd2l0aG91dFwtZmlyaW5nXC1hXC1zaG90Owor46inIDwgd29vZGVuXC1zdGlja1wtb3JcLWJhbWJvb1wtY2FuZVwtdXNlZFwtdG9cLXN1cHBvcnRcLXRoZVwtY292ZXJpbmdcLW9mXC1hXC1jYXJyaWFnZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor45SjIDwgaW5cLWFuY2llbnRcLXRpbWVzXC10b1wtZmlnaHRcLWFnYWluc3RcLXRoZVwtZW5lbXlcLWJ5XC1wdXNoaW5nXC1kb3duXC10aGVcLWJpZ1wtcm9ja3NcLWZyb21cLXVwXC1oaWdoOwor5rSb5b63IDwgXCh3aW5zdG9uXClcLWxvcmRcLVwoZm9ybWVyXC1hc3Npc3RhbnRcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXC1mb3JcLWVhc3RcLWFzaWFcLWFuZFwtcGFjaWZpY1wtYWZmYWlyc1wpOwor5LiN5Yiw6buD5rKz5b+D5LiN5q27IDwgbm90XC1zdG9wXC11bnRpbFwtb25lXC1yZWFjaGVzXC10aGVcLWh1YW5naGVcLXJpdmVyXC1cLVwtbm90XC1zdG9wXC11bnRpbFwtb25lXC1yZWFjaGVzXC1vbmUnJ3NcLWdvYWw7CivlvbflvqggPCBuYW1lXC1vZlwtYVwtY29sbGVjdGlvblwtb2ZcLXNob3J0XC1zdG9yaWVzXCxcLXBhbmdcLWh1YW5nXCxcLVwid2FuZGVyaW5nXC1hYm91dFwiXCxcLWJ5XC1sdTNcLXh1bjRcLemtr+i/hTsKK+SaqyA8IG9ybmFtZW50YWxcLWFydGljbGVzXC1tYWRlXC1vZlwtaG9ybnNcLXVzZWRcLXRvXC1kZWNvcmF0ZVwtdGhlXC10b3BcLW9mXC1hXC1zdGlja1wtb3JcLWhvcnNld2hpcDsKK+mkiuWFkumYsuiAgSA8IFwob2ZcLXBhcmVudHNcKVwtdG9cLWJyaW5nXC11cFwtY2lobGRyZW5cLWZvclwtdGhlXC1wdXJwb3NlXC1vZlwtYmVpbmdcLWxvb2tlZFwtYWZ0ZXJcLWluXC1vbGRcLWFnZTsKK+mZs+avhSA8IGNoZW5cLXlpXCxcLWZvcm1lclwtbWF5b3JcLW9mXC1zaGFuZ2hhaVwtYW5kXC1oaWdoZXN0XC1yYW5raW5nXC1taWxpdGFyeVwtY29tbWFuZGVyXC1pblwtY2hpbmE7CivntrroibLkvbMgPCBpdGhhY2FcLFwtbnlcLVwoYnV0XC1wcm9ub3VuY2VkXC15aTNcLXNlNFwtamlhMVwsXC1mb2xsb3dpbmdcLWFcLW1pc3Rha2VcLW1hZGVcLWJ5XC1odTJcLXNoaTRcLeiDoemBqVwpOwor56yQIDwgYmFtYm9vc1wtcGxhY2VkXC1hY3Jvc3NcLXdvb2RlblwtZnJhbWVzXC1vblwtd2hpY2hcLWdyYWluXC1tYXlcLWJlXC1zdG9yZWRcLWluXC1kYW1wXC1jbGltYXRlczsKK+SjniA8IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGVcLXdoaWNoXC1vY2N1cGllZFwtdGhlXC1zaXRlXC1vZlwtdGhlXC1wcmVzZW50XC1wcm92aW5jZVwtb2ZcLWh1YmVpOwor5Ie2IDwgYVwtc21hbGxcLXJhZnRlcnNcLW1hZGVcLW9mXC1iYW1ib29cLXdoaWNoXC1wcm9qZWN0XC1mb3JtXC10aGVcLWVhdmVzXC1hbmRcLXN1cHBvcnRcLXRoZVwtdGlsZXM7Civpm7fls7DloZQgPCBsZWlmZW5nXC1wYWdvZGFcLFwtYnlcLXdlc3RcLWxha2VcLXVudGlsXC1pdFwtd2FzXC1kZXN0cm95ZWRcLVwoYWxzb1wtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZVwpOwor6LOoIDwgdHJpYnV0ZVwtcGFpZFwtaW5cLWNsb3RoXC1ieVwtdGhlXC10cmliZXNcLWluXC1zemVjaHdhblwtYW5kXC15dW5uYW5cLXVuZGVyXC10aGVcLWhhblwtZHluYXN0eTsKK+S4jeWFseaItOWkqSA8IHdpbGxcLW5vdFwtbGl2ZVwtdW5kZXJcLXRoZVwtc2FtZVwtc2t5XC1cKHdpdGhcLW9uZScnc1wtZW5lbXlcKVwtXC1cLWFic29sdXRlbHlcLWlycmVjb25jaWxhYmxlOwor56arIDwgc2FjcmlmaWNlXC1vZmZlcmVkXC1hdFwtdGhlXC1lbmRcLW9mXC10aGVcLXRocmVlXC15ZWFycycnXC1tb3VybmluZ1wtdGhlXC1kZWF0aFwtb2ZcLWFcLXBhcmVudDsKK+SCqSA8IGFuXC1pblwtc2xhYlwtb3JcLWlua1wtc3RvbmVcLXNvdW5kXC1vZlwtcGViYmxlc1wtb3JcLXN0b25lc1wtcnViYmluZ1wtb3JcLWtub2NraW5nXC10b2dldGhlcjsKK+SCjSA8IGFcLWtpbmRcLW9mXC13ZWFwb25cLWNhcnJpZWRcLWJ5XC10aGVcLWhvbm9yXC1ndWFyZFwtYmVmb3JlXC10aGVcLWVtcGVyb3JcLWluXC1hbmNpZW50XC10aW1lczsKK+aTiuWFtuaDsOatuCA8IGF2b2lkXC10aGVcLWVuZW15XC13aGVuXC1oZVwtaXNcLWZyZXNoXC1hbmRcLXN0cmlrZVwtaGltXC13aGVuXC1oZVwtaXNcLXRpcmVkXC1hbmRcLXdpdGhkcmF3czsKK+S/neeUsuWItuW6piA8IHRoZVwtYmFvXC1qaWFcLXN5c3RlbVwtXChhblwtYWRtaW5pc3RyYXRpdmVcLXN5c3RlbVwtb3JnYW5pemVkXC1vblwtYmFzaXNcLW9mXC1ob3VzZWhvbGRzXCk7CivljIXlt6UgPCB1bmRlcnRha2VcLXRvXC1wZXJmb3JtXC13b3JrXC13aXRoaW5cLWFcLXRpbWVcLWxpbWl0XC1hbmRcLWFjY29yZGluZ1wtdG9cLXNwZWNpZmljYXRpb25zOwor6YOo6aaWIDwgcmFkaWNhbHNcLWJ5XC13aGljaFwtY2hhcmFjdGVyc1wtYXJlXC1hcnJhbmdlZFwtaW5cLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1kaWN0aW9uYXJpZXM7CivpnLjkuLsgPCBhXC1wb3dlcmZ1bFwtY2hpZWZcLW9mXC10aGVcLXByaW5jZXNcLW9mXC10aGVcLXNwcmluZ1wtYW5kXC1hdXR1bW5cLXBlcmlvZFwtXCg3NzBcLTQ3NlwtYmNcKTsKK+ihiCA8IHRoZVwtYmxvb2RcLW9mXC1hXC1zYWNyaWZpY2lhbFwtZm93bFwtd2hpY2hcLXdhc1wtc3ByaW5rbGVkXC1vblwtdGhlXC1kb29yc1wtYW5kXC12ZXNzZWxzOwor46+pIDwgdG9cLXB1dFwtdGhlXC1ncm93aW5nXC11cFwtc2lsa3dvcm1zXC1pblwtZGlmZmVyZW50XC1mcmFtZXNcLWFjY29yZGluZ1wtdG9cLXRoZWlyXC1zaXplczsKK+OasyA8IGFcLWxhZHlcLXRlYWNoZXJcLXRvXC10ZWFjaFwtdGhlXC1wcm9wZXJcLXJ1bGVzXC1vZlwtZmVtYWxlXC1iZWhhdmlvclwtaW5cLWFuY2llbnRcLXRpbWVzOwor5LiN6L6o6I+96bqlIDwgYmVcLXVuYWJsZVwtdG9cLXRlbGxcLWJlYW5zXC1mcm9tXC13aGVhdFwtXC1cLWhhdmVcLW5vXC1rbm93bGVkZ2VcLW9mXC1wcmFjdGljYWxcLW1hdHRlcnM7CivntaUgPCB0b1wtaGFybmVzc1wtYVwtaG9yc2VcLWFcLWJvYXJkXC1pblwtZnJvbnRcLW9mXC1hXC1jYXJyaWFnZVwtZm9yXC10aGVcLWRyaXZlclwtdG9cLWxlYW5cLW9uOwor5IutIDwgdG9cLXdlYXZlXC1zaWxrXC1mYWJyaWNzXC13aXRoXC1ncmVlblwtY29sb3JcLWZvclwtbG9uZ2l0dWRlXC1hbmRcLXdoaXRlXC1mb3JcLWxhdGl0dWRlOwor4628IDwgYVwtcmVjdGFuZ2xlXC1zaGFwZWRcLXBlZ1wtb3JcLXNob3J0XC1wb3N0XC1iZXR3ZWVuXC10aGVcLWJlYW5zXC1hbmRcLXRoZVwtcm9vZlwtdGltYmVyczsKK+aBreWWnOeZvOiyoSA8IGNvbmdyYXR1bGF0aW9uc1wtZm9yXC1nZXR0aW5nXC1yaWNoXC1cKHRyYWRpdGlvbmFsXC1jaGluZXNlXC1uZXdcLXllYXInJ3NcLWZ1dHVyZVwtdXNlOwor55GEIDwgYVwtb3JuYW1lbnRhbFwtcGllY2VcLW9mXC1qYWRlXC1zZXZlcmFsXC1pbmNoZXNcLWFjcm9zc1wtd2l0aFwtYVwtaG9sZVwtaW5cLXRoZVwtY2VudGVyOwor54mh5Li55Y2hIDwgcGVvbnlcLWNhcmRcLVwoY3JlZGl0XC1jYXJkXC1pc3N1ZWRcLWJ5XC1pbmR1c3RyaWFsXC1hbmRcLWNvbW1lcmNpYWxcLWJhbmtcLW9mXC1jaGluYVwpOwor5KykIDwgdG9cLXB1dFwtdGhlXC10aGlja1wtc291cFwtb3JcLWJyb3RoXC1vblwtdG9wXC1vZlwtdGhlXC1yaWNlXC10aGlja1wtY29uZ2VlXC1vclwtcG9ycmlkZ2U7CivlnKjmlrwgPCBcKHRoZVwtcHJvYmxlbVwtb3JcLWV4cGxhbmF0aW9uXC1vclwtYWR2YW50YWdlXC1ldGNcLlwpXC1saWVzXC1pblwtXCh0aGVcLWZhY3RcLXRoYXRcLlwuXC5cKTsKK+SlryA8IGFcLWZhcm1cLXRvb2xcLXRvXC1jcnVzaFwtdGhlXC1jbG9kXC1vZlwtZWFydGhcLWludG9cLXBpZWNlc1wtYW5kXC1tYWtlXC10aGVcLWxhbmRcLWZsYXQ7CivkjZYgPCBhXC1raW5kXC1vZlwtbmV0XC1lcXVpcHRlZFwtd2l0aFwtdHJpY2t5XC1tYWNoaW5lXC11c2VkXC10b1wtY2F0Y2hcLWJpcmRzXC1hbmRcLWJlYXN0czsKK+Whnumfi+ijoeirviA8IFxbamVhblwtbWljaGVsXF1cLXNldmVyaW5vXC1cW3dvcmxkXC1iYW5rXC12aWNlXC1wcmVzaWRlbnRcLFwtZWFzdFwtYXNpYVwtYW5kXC1wYWNpZmljXF07Civkjq0gPCBhXC1raW5kXC1vZlwtZmFybVwtdG9vbFwtbWFkZVwtb2ZcLXR3aXN0ZWRcLXRocm9uXC1zdHJpcHNcLXVzZWRcLXRvXC1mbGF0ZW5cLXRoZVwtbGFuZDsKK+aVmeiokyA8IFwodGVhY2hcLXNvbWVvbmVcLW9yXC1sZWFyblwtYVwpXC1sZXNzb25cLVwoaWVcLFwtb2J0YWluXC13aXNkb21cLWZyb21cLWFuXC1leHBlcmllbmNlXCk7CivkuInlspTlj6MgPCBhdFwtdGhlXC1jcm9zc3JvYWRzXCxcLXRoZVwtbmFtZVwtb2ZcLWFcLWZhbW91c1wtb3BlcmFcLFwtc3RvcnlcLWZyb21cLXNodWlcLWh1XC16aHVhbjsKK+etkyA8IGFcLWhhaXJwaW5cLW9uXC13aGljaFwtdGhlXC1oYWlyXC1pc1wtYm91bmRcLWF0XC10aGVcLWJhY2tcLW9mXC10aGVcLWhlYWRcLlwtMTVcLW9mXC1hZ2U7CivmnY7oh6rmiJAgPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLWxpXC16aVwtY2hlbmdcLFwtbGVhZGVyXC1vZlwtbWluZ1wtZHluYXN0eVwtcGVhc2FudFwtcmViZWxsaW9uOwor5pyJ5pyf5b6S5YiRIDwgbGltaXRlZFwtdGVybVwtb2ZcLWltcHJpc29ubWVudFwtXChpZVwsXC1hbnl0aGluZ1wtbGVzc1wtdGhhblwtbGlmZVwtaW1wcmlzb25tZW50XCk7CivmsZ/lhavpu54gPCBcImppYW5nXC16ZW1pbicnc1wtZWlnaHRcLXBvaW50XC1mb3JtdWxhXCJcLVwoZm9yXC1yZXN1bWluZ1wtYVwtZGlhbG9nXC13aXRoXC10YWl3YW5cKTsKK+mEp+S6rua0qiA8IHRhbmdcLWxpYW5nXC1ob25nXC1cKG9wcG9zaXRpb25cLWNhbmRpZGF0ZVwtaW5cLWphblwtMTk5Nlwtc2luZ2Fwb3JlXC1lbGVjdGlvbnNcKTsKK+mWieebruWhnuiBvSA8IHNodXRzXC1vbmUnJ3NcLWV5ZXNcLWFuZFwtc3RvcFwtdXBcLW9uZScnc1wtZWFyc1wtXC1cLWJlXC1vdXRcLW9mXC10b3VjaFwtd2l0aFwtcmVhbGl0eTsKK+esqOmzpeWFiOmjmyA8IGNsdW1zeVwtYmlyZHNcLWhhdmVcLXRvXC1zdGFydFwtZmx5aW5nXC1lYXJseVwtXC1cLXRoZVwtc2xvd1wtbmVlZFwtdG9cLXN0YXJ0XC1lYXJseTsKK+OusiA8IGFcLXNtYWxsXC1yaW5nXC1vclwtYVwtc21hbGxcLXBpZWNlXC1vZlwtYm9hcmRcLWF0dGFjaGVkXC10b1wtdGhlXC1tdXp6bGVcLW9mXC1hblwtb3g7Civpp4HlsrggPCBhXC1sb3dcLXN0b25lXC13YWxsXC1idWlsdFwtYWxvbmdcLXRoZVwtd2F0ZXInJ3NcLWVkZ2VcLXRvXC1wcm90ZWN0XC1hblwtZW1iYW5rbWVudDsKK+eZvuiBnuS4jeWmguS4gOimiyA8IHNlZWluZ1wtZm9yXC1vbmVzZWxmXC1pc1wtYVwtaHVuZHJlZFwtdGltZXNcLWJldHRlclwtdGhhblwtaGVhcmluZ1wtZnJvbVwtb3RoZXJzOwor6KOc5rOVIDwgdHJlYXRtZW50XC1pbnZvbHZpbmdcLXRoZVwtdXNlXC1vZlwtdG9uaWNzXC10b1wtcmVzdG9yZVwtdGhlXC1wYXRpZW50JydzXC1oZWFsdGg7CivktbsgPCBhXC1zbWFsbFwtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnNcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzOwor5LiJ5LiNIDwgXCJ0aGVcLXRocmVlXC1ubycnc1wiXC1cKGFuXC1leGFtcGxlXC1vZlwtYW5cLWFiYnJldmlhdGVkXC1zbG9nYW5cLW9yXC1jYXRjaHBocmFzZVwpOwor55m95pyuIDwgdGhlXC1yaGl6b21lXC1vZlwtbGFyZ2VcLWhlYWRlZFwtYXRyYWN0eWxvZGVzXC1cKGF0cmFjdHlsb2Rlc1wtbWFjcm9jZXBoYWlhXCk7CivmnKzojYnntrHnm64gPCBhblwtb3V0bGluZVwtdHJlYXRpc2VcLW9mXC1tZWRpY2FsXC1oZXJic1wsXC1jb21waWxlZFwtYnlcLWxpM1wtc2hpMlwtemhlbjFcLeadjuaZguePjTsKK+eOoCA8IGxhcmdlXC1qYWRlXC10YWJsZXRcLXVzZWRcLWJ5XC1vZmZpY2lhbHNcLWF0XC1jb3VydFwtdG9cLWluZGljYXRlXC10aGVpclwtcmFua3M7CivlkIPlpKfmiLYgPCBtYXNzXC1zZWl6dXJlXC1vZlwtZm9vZFwtZnJvbVwtbGFuZGxvcmRzXC1kdXJpbmdcLWZhbWluZXNcLWJlZm9yZVwtbGliZXJhdGlvbjsKK+SCnCA8IHJvY2t5XC1maW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlXC10b1wtY29sbGFwc2U7CivjoYYgPCBhblwtYXJ0aXNhblwtdG9cLXNvZnRlblwtcmF3XC1zaWxrXC1ieVwtYm9pbGluZ1wtYW5kXC10b1wtZHllXC10aGVcLWRyZXNzZWRcLXNpbGs7CivmnY7mmYLnj40gPCBsaVwtc2hpXC16aGVuXC1cKDE1MThcLTE1OTNcLFwtZmFtb3VzXC1kb2N0b3JcLFwtYXV0aG9yXC1vZlwtYmVuM1wtY2FvM1wtZ2FuZzFcLW11NDsKK+WFteW8t+mmrOWjryA8IHN0cm9uZ1wtc29sZGllcnNcLWFuZFwtc3R1cmR5XC1ob3JzZXNcLVwtXC1hXC13ZWxsXC10cmFpbmVkXC1hbmRcLXBvd2VyZnVsXC1hcm15Owor6KOOIDwgdG9cLXRha2VcLW9mZlwtdGhlXC1jbG90aGVzXC1hbmRcLWV4cG9zZVwtdGhlXC1ib2R5XC5cLXRvXC1jYXJyeVwtaW5cLXRoZVwtZ2lyZGxlOwor6Y6LIDwgdGhlXC1saW5jaFwtcGluXC1vZlwtYVwtd2hlZWxcLXRvXC1nb3Zlcm5cLW9yXC1jb250cm9sXC10aGVcLW5vaXNlXC1vZlwtYVwtYmFycm93Owor56a95rWB5oSfIDwgXCJiaXJkXC1mbHVcIlwtXChmbHVcLWNhcnJpZWRcLWJ5XC1iaXJkc1wtXC1cLWZvdW5kXC1pblwtaG9uZ1wta29uZ1wtaW5cLWxhdGVcLTE5OTdcKTsKK+SqkCA8IHNvbWV0aGluZ1wtbWFkZVwtb2ZcLWJhbWJvb1wtcHV0XC1pblwtdGhlXC1ib3dcLWNhc2VcLXRvXC1wcmV0ZWN0XC1mcm9tXC1kYW1hZ2U7Civmpa3kvZnlpKflrbggPCBjb2xsZWdlXC1mb3JcLXBlb3BsZVwtd2hvXC1hdHRlbmRcLWFmdGVyXC13b3JrXC1cKGxpdFwuXDpcLXNwYXJlXC10aW1lXC1jb2xsZWdlXCk7Civkh60gPCBjb250YWluZXJzXC1tYWRlXC1vZlwtdGhpblwtYW5kXC1sb25nXC1zdHJpcFwtb2ZcLWJhbWJvb1wtb3JcLXdpbGxvd1wtYnJhbmNoZXM7Civjn6wgPCBhXC1tb3VudGFpblwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2VcLXNvdXRod2VzdFwtb2ZcLW1lbmd5aW5cLWNvdW50eTsKK+OapSA8IHRvXC1iZWNvbWVcLWFzc29jaWF0ZWRcLXdpdGhcLWVhY2hcLW90aGVyXC1pblwtZ29vZFwtbWFubmVyc1wtYW5kXC1wb2xpdGVuZXNzOwor5a6j5YikIDwgcHJvbm91bmNlXC1hXC1cKGp1ZGljaWFsXClcLXNlbnRlbmNlXC1cKGFmdGVyXC1hXC12ZXJkaWN0XC1pblwtYVwtY291cnRcLW9mXC1sYXdcKTsKK+iSmeS7o+eIviA8IFwod2FsdGVyXClcLW1vbmRhbGVcLVwodXNcLWFtYmFzc2Fkb3JcLXRvXC1qYXBhblwsXC1mb3JtZXJcLXVzXC12aWNlXC1wcmVzaWRlbnRcKTsKK+mZs+e0jeW+tyA8IFwoY2xhaXJlXClcLWNoZW5uYXVsdFwsXC1jb21tYW5kZXJcLW9mXC1mbHlpbmdcLXRpZ2Vyc1wtZHVyaW5nXC13b3JsZFwtd2FyXC1paTsKK+eXheWPiyA8IGFcLWZyaWVuZFwtbWFkZVwtaW5cLWhvc3BpdGFsXC1vclwtcGVvcGxlXC13aG9cLWJlY29tZVwtZnJpZW5kc1wtaW5cLWhvc3BpdGFsOwor5o2V6aKo5o2J5b2xIDwgY2hhc2VcLXRoZVwtd2luZFwtYW5kXC1jbHV0Y2hcLWF0XC1zaGFkb3dzXC1cLVwtbWFrZVwtZ3JvdW5kbGVzc1wtYWNjdXNhdGlvbnM7CivlsLHmmK8gPCBcKGVtcGhhc2l6ZXNcLXRoYXRcLXNvbWV0aGluZ1wtaXNcLXByZWNpc2VseVwtb3JcLWV4YWN0bHlcLXdoYXRcLWlzXC1zdGF0ZWRcKTsKK+SkniA8IGFcLWtpbmRcLW9mXC13ZWFwb25zXC1oZWxkXC1ieVwtdGhlXC1vZmZpY2lhbHNcLWluXC1hdHRlbmRhbmNlXC1pblwtb2xkXC10aW1lczsKK+O5qyA8IGFcLWtpbmRcLW9mXC1hbmltYWxcLWdlbmVyYWxseVwtY2FsbGVkXC1mb3JcLW1pbm9yaXR5XC1ncm91cHNcLWluXC1vbGRcLWNoaW5hOwor47O7IDwgYVwtYmFua1wtb2ZcLWVhcnRoXC1vclwtYW5cLWVtYmFua21lbnRcLXRvXC1ibG9ja1wtdGhlXC1jdXJyZW50XC1vZlwtdGhlXC13YXRlcjsKK+OvoiA8IGFcLXBpZWNlXC1vZlwtY3Jvc3NcLXdpc2VcLWJvYXJkXC11c2VkXC1mb3JcLWZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpbjsKK+e2reeIvuWuuSA8IFwoam9oYW5uZXNcLWxvZGV3aWt1c1wpXC12aWxqb2VuXC1cKHNvdXRoXC1hZnJpY2FuXC1hbWJhc3NhZG9yXC10b1wtdGFpd2FuXCk7CivokZvmtLLlo6kgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLFwtZ2V6aG91YmFcLWRhbVwtb25cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLFwtaW5cLXNpY2h1YW47Civkg5ggPCBzaW1wbGVcLWFuZFwtY3J1ZGVcLXRoZVwtc291bmRcLW9mXC1wZWJibGVzXC1vclwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7CivjsLEgPCB0b1wtc21lYXJcLXRoZVwtbW91dGhcLXdpdGhcLXRoZVwtYmxvb2RcLW9mXC1hXC12aWN0aW1cLXdoZW5cLXRha2luZ1wtYW5cLW9hdGg7CivkuI3liIblvbzmraQgPCBtYWtlXC1ub1wtZGlzdGluY3Rpb25cLWJldHdlZW5cLXdoYXQnJ3NcLW9uZScnc1wtb3duXC1hbmRcLXdoYXQnJ3NcLWFub3RoZXInJ3M7CivogIHpqaXkvI/mq6rlv5flnKjljYPph4wgPCBcKGxpdFwuXClcLWFuXC1vbGRcLXN0ZWVkXC1pblwtdGhlXC1zdGFibGVcLXN0aWxsXC1hc3BpcmVzXC10b1wtZ2FsbG9wXC0xMDAwXC1saTsKK+Wkp+emuSA8IGRhXC15dVwsXC1uYW1lXC1vZlwtYW5cLWFuY2llbnRcLWhlcm9cLXdob1wtc3VjY2Vzc2Z1bGx5XC1jb250cm9sbGVkXC1mbG9vZHM7Civnja8gPCBhXC10cmliZVwtb2ZcLXNjeXRoaWFuc1wtd2hpY2hcLWludmFkZWRcLWNoaW5hXC1kdXJpbmdcLXRoZVwtaHNpYVwtZHluYXN0eTsKK+melCA8IHNpZGVzXC1vclwtdXBwZXJzXC1vZlwtc2hvZXNcLXRvXC1zdHJldGNoXC1hXC1za2luXC1vblwtYVwtZnJhbWVcLWZvclwtYVwtZHJ1bTsKK+ihqOitiSA8IGlsbG5lc3NcLXRoYXRcLWhhc1wtbm90XC1hdHRhY2tlZFwtdGhlXC12aXRhbFwtb3JnYW5zXC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+Wci+mam+mbu+ipsembu+WgseirruipouWnlOWToeacgyA8IGludGVybmF0aW9uYWxcLWNvbnN1bHRhdGl2ZVwtY29tbWl0dGVlXC1mb3JcLXRlbGVwaG9uZVwtYW5kXC10ZWxlZ3JhcGg7CivkuI3nn6Xlh6Hlub4gPCBjYW4nJ3RcLXRlbGxcLWhvd1wtbWFueVwtdGhlcmVcLWFyZVwtXC1cLXRoZXJlXC1hcmVcLW51bWVyb3VzXC1zaW1pbGFyXC1jYXNlczsKK+SVvSA8IHRoZVwtcmhvZG9kZW5kcm9uXC1cLVwtXC1pdFwtaXNcLXNhaWRcLXRvXC1jYXVzZVwtc2hlZXBcLXRvXC1zdGFnZ2VyXC1hbmRcLWRpZTsKK+m8u+mfu+avjSA8IFwob2ZcLWNoaW5lc2VcLXByb251bmNpYXRpb25cKVwtYVwtdm93ZWxcLWZvbGxvd2VkXC1ieVwtYVwtbmFzYWxcLWNvbnNvbmFudDsKK+W5q+mWkSA8IGhhbmdcLW9uXC10b1wtYW5kXC1zZXJ2ZVwtdGhlXC1yaWNoXC1hbmRcLXBvd2VyZnVsXC1ieVwtbGl0ZXJhcnlcLWhhY2tcLXdvcms7Civpg5wgPCBuYW1lXC1vZlwtZmllZlwtaW5cLXNoYW50b25nXC1iZXN0b3dlZFwtb25cLXRoZVwtZWxkZXN0XC1zb25cLW9mXC13ZW5cLXdhbmc7Civmj4/ntIUgPCB0b1wtdHJhY2VcLW92ZXJcLXJlZFwtY2hhcmFjdGVyc1wtXChhc1wtYVwtbWV0aG9kXC1vZlwtbGVhcm5pbmdcLXRvXC13cml0ZVwpOwor6YeR5rC45Y2XIDwga2ltXC15b25nXC1uYW1cLVwobm9ydGhcLWtvcmVhblwtZGVwdXR5XC1wcmVtaWVyXC1hbmRcLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivmipfmiLAgPCB3YXJcLW9mXC1yZXNpc3RhbmNlXCxcLWVzcGVjaWFsbHlcLXRoZVwtd2FyXC1hZ2FpbnN0XC1qYXBhblwtXCgxOTM3XC0xOTQ1XCk7CivmirHmrpjlrojnvLogPCBjaGVyaXNoXC10aGVcLW91dG1vZGVkXC1hbmRcLXByZXNlcnZlXC10aGVcLW91dHdvcm5cLVwtXC1iZVwtY29uc2VydmF0aXZlOwor6ZaJ5aGe55y8552b5o2J6bq76ZuAIDwgdHJ5XC10b1wtY2F0Y2hcLXNwYXJyb3dzXC13aXRoXC1vbmUnJ3NcLWV5ZXNcLWJsaW5kZm9sZGVkXC1cLVwtYWN0XC1ibGluZGx5Owor5I2/IDwgYVwta2luZFwtb2ZcLWRhbmNlXC1hY2NvbXBhbmllZFwtYnlcLW11c2ljXC1wZXJmb3JtZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SMniA8IGFcLWtub3RcLXRvXC1oYW5nXC10aGVcLWFwcGFyYXR1c1wtbWFkZVwtb2ZcLXJlZWRcLWZvclwtcmFpc2luZ1wtc2lsa3dvcm1zOwor5IeJIDwgY2FwYWNpdHlcLXVuaXRcLWluXC1mcmFuY2VcLWVxdWFsXC10b1wtb25lXC1odW5kcmVkXC10aW1lc1wtb2ZcLW9uZVwtbGl0cmU7CivjvYggPCBhXC1sYXJnZVwtZWFydGhlbndhcmVcLWphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoXC1hbmRcLXR3b1wtb3JcLWZvdXJcLWVhcnM7CivjuZAgPCB0b1wtdG93XC1hXC1ib2F0XC1hZ2FpbnN0XC10aGVcLWN1cnJlbnRcLWluXC1zd2lmdFwtc3RyZWFtXC1mcm9tXC10aGVcLWJhbms7CivmsoUgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC13ZXN0ZXJuXC1odW5hblwtdGhhdFwtZmxvd3NcLWludG9cLWRvbmd0aW5nXC1sYWtlOwor57CLIDwgYVwtc3F1YXJlXC1iYXNrZXRcLW9mXC1iYW1ib29cLWZvclwtaG9sZGluZ1wtZ3JhaW5cLXVzZWRcLWF0XC1zYWNyaWZpY2VzOwor5LiN6LK75ZC554Gw5LmL5YqbIDwgYXNcLWVhc3lcLWFzXC1ibG93aW5nXC1vZmZcLWR1c3RcLVwtXC1ub3RcLW5lZWRpbmdcLXRoZVwtc2xpZ2h0ZXN0XC1lZmZvcnQ7CivmlpfmibnmlLkgPCBzdHJ1Z2dsZVwtY3JpdGljaXNtXC10cmFuc2Zvcm1hdGlvblwtXChjdWx0dXJhbFwtcmV2b2x1dGlvblwtc2xvZ2FuXCk7CivpmL/kuI3kvobmj5BcLumYv+S4jemDveeGseilv+aPkCA8IGFiZHVsYWlkaVwtYW11ZHVyZXhpdGlcLVwoY2hhaXJtYW5cLW9mXC14aW5qaWFuZ1wtYXV0b25vbW91c1wtcmVnaW9uXCk7Civpt7QgPCBzaWx2ZXJcLXBoZWFzYW50XC1iYWRnZVwtd29yblwtYnlcLWNpdmlsXC1vZmZpY2lhbHNcLW9mXC10aGVcLTV0aFwtZ3JhZGU7CivljZrlj6TpgJrku4ogPCBjb252ZXJzYW50XC13aXRoXC10aGluZ3NcLXBhc3RcLWFuZFwtcHJlc2VudFwtXC1cLWVydWRpdGVcLWFuZFwtaW5mb3JtZWQ7Civon5UgPCBhXC1zcGVjaWVzXC1vZlwtdG9ydG9pc2VcLWZvdW5kXC1uZWFyXC10aGVcLW1vdXRoXC1vZlwtdGhlXC15ZWxsb3dcLXJpdmVyOwor5LuK6Z+zIDwgbW9kZXJuXC1cKGlcLmVcLlwtbm90XC1hbmNpZW50XClcLXByb251bmNpYXRpb25cLW9mXC1hXC1jaGluZXNlXC1jaGFyYWN0ZXI7Civmlq/nibnlh6Hoq77mma7mtJvmlq8gPCBzdGVwaGFub3BvdWxvc1wtXChlZ1wsXC1mb3JtZXJcLWNsaW50b25cLWFpZGVcLWdlb3JnZVwtc3RlcGhhbm9wb3Vsb3NcKTsKK+OshiA8IHBvc3RodW1vdXNcLXRpdGxlXC1jb25mZXJyZWRcLXVwb25cLWVtcGVyb3JzXC1hbmRcLWVtaW5lbnRcLW9mZmljaWFsczsKK+S4jeWFpeiZjueptOeEieW+l+iZjuWtkCA8IGhvd1wtY2FuXC15b3VcLWNhdGNoXC10aWdlclwtY3Vic1wtd2l0aG91dFwtZW50ZXJpbmdcLXRoZVwtdGlnZXInJ3NcLWxhaXI7Civpnp0gPCB0aGVcLXBpZWNlXC1vZlwtbGVhdGhlclwtdXNlZFwtZm9yXC1zb2xlc1wtb25cLWNoaW5lc2VcLXNob2VzXC5cLWFcLXBhdGNoOwor5aSn6ayn5aSp5a6uIDwgXCJ0aGVcLW1vbmtleVwtY3JlYXRlc1wtaGF2b2NcLWluXC1oZWF2ZW5cIlwsXC1zdG9yeVwtYWJvdXRcLXN1blwtd3VcLWtvbmc7CivolJsgPCBhXC1zbWFsbFwtb3JjaGlkXC1saWtlXC1wbGFudFwtaXRcLWJlYXJzXC13aGl0ZVwtZmxvd2Vyc1wtYVwtZGVuZHJvYml1bTsKK+err+WNiOevgCA8IHRoZVwtZHJhZ29uXC1ib2F0XC1mZXN0aXZhbFwtXCh0aGVcLTV0aFwtZGF5XC1vZlwtdGhlXC01dGhcLWx1bmFyXC1tb250aFwpOwor5LCZIDwgYW5cLWFuY2llbnRcLXVuaXRcLW9mXC1jYXBhY2l0eVwtd2l0aFwtdGhyZWVcLWZlZXRcLWFuZFwtYVwtYmlnXC1vcGVuaW5nOwor5JS5IDwgYVwtZnVuZ3VzXC13aGljaFwtZ3Jvd3NcLW9uXC1yb3R0ZW5cLXBsYW50c1wtYW5kXC1pc1wtZWF0ZW5cLXdoZW5cLWZyZXNoOwor46+jIDwgYVwta2luZFwtb2ZcLWZyYWdyYW50XC10cmVlXC11c2VkXC10b1wtcHJvZHVjZVwtcGVyZnVtZVwtYnlcLWJ1cm5pbmdcLWl0Owor46+hIDwgdG9cLWxhY3F1ZXJcLXNvbWVcLWtpbmRcLW9mXC1hc2hlc1wtb25cLXdvb2RlblwtYXJ0aWNhbHNcLW9yXC1mdXJuaXR1cmU7CivmgrLlpKnmhqvkurogPCBiZW1vYW5cLXRoZVwtc3RhdGVcLW9mXC10aGVcLXVuaXZlcnNlXC1hbmRcLXBpdHlcLXRoZVwtZmF0ZVwtb2ZcLW1hbmtpbmQ7Civmg4vmg5wgPCB0b1wtZmVlbFwtc29ycnlcLWZvclwtYVwtcGVyc29uXC1vdmVyXC1zdGhcLXRoYXRcLXNob3VsZFwtaGF2ZVwtaGFwcGVuZWQ7Civls4sgPCByYW5nZXNcLW9mXC1oaWxsc1wtc3RyZXRjaGluZ1wtb25cLWJleW9uZFwtYW5vdGhlclwtaXJyZWd1bGFyXC1wZWFrczsKK+atgyA8IHNtZWFyXC1vbmUnJ3NcLW1vdXRoXC13aXRoXC1ibG9vZFwtb2ZcLWFcLXZpY3RpbVwtd2hlblwtdGFraW5nXC1hblwtb2F0aDsKK+eZveiMq+iMqyA8IFwob2ZcLW1pc3RcLFwtc25vd1wsXC1mbG9vZHdhdGVyXCxcLWV0Y1wpXC1hXC12YXN0XC1leHBhbnNlXC1vZlwtd2hpdGVuZXNzOwor552l552oIDwgbG9va1wtYXRcLXNvbWVib2R5XC1kaXNkYWluZnVsbHlcLW91dFwtb2ZcLXRoZVwtY29ybmVyXC1vZlwtb25lJydzXC1leWU7CivnvpcgPCB0cmliZXNcLWluXC13ZXN0XC1jaGluYVwtc3Ryb25nXC5cLWVkdWNhdGVkXC5cLW9ic3RpbmF0ZVwuXC1hXC1wYXJ0aWNsZTsKK+iDoemBqSA8IGh1XC1zaGlcLVwoMTg5MVwtMTk2MlwpXCxcLW9yaWdpbmFsXC1wcm9wb25lbnRcLW9mXC1iYWkyXC1odWE0XC13ZW4yXC3nmb3oqbHmloc7Civou43lp5QgPCBtaWxpdGFyeVwtY29tbWlzc2lvblwtb2ZcLXRoZVwtY29tbXVuaXN0XC1wYXJ0eVwtY2VudHJhbFwtY29tbWl0dGVlOwor5LiN5pyN5rC05ZyfIDwgXChvZlwtYVwtc3RyYW5nZXJcKVwtbm90XC1hY2N1c3RvbWVkXC10b1wtdGhlXC1jbGltYXRlXC1vZlwtYVwtbmV3XC1wbGFjZTsKK+aWr+S9qee+hSA8IFwoam9hblwpXC1zcGVyb1wtXCh1bmRlclwtc2VjcmV0YXJ5XC1vZlwtc3RhdGVcLWZvclwtZWNvbm9taWNcLWFmZmFpcnNcKTsKK+S4oyA8IGFuY2llbnRcLWZvcm1cLW9mXC10aGVcLXRlbnRoXC1vZlwtdGhlXC10d2VsdmVcLXRlcnJlc3RyaWFsXC1icmFuY2hlczsKK+ShhSA8IHNvbWV0aGluZ1wtdXNlZFwtdG9cLWJpbmRcLXRoZVwtZnJhbWVcLXdvcmtcLWluXC1hXC1jYXJ0XC1vZlwtb2xkXC10aW1lczsKK+SaqCA8IGFcLXN0cmluZ1wtZmFzdGVuZWRcLXRvXC1hblwtYXJyb3dcLXRvXC1kcmF3XC1pdFwtYmFja1wtYWZ0ZXJcLXNob290aW5nOwor5I6gIDwgdG9cLXR3aXN0XC1vclwtdG9cLWNydW1wbGVcLWJldHdlZW5cLWhhbmRzXC1hbmRcLW1ha2VcLXNvbWV0aGluZ1wtdHVybjsKK+OfuSA8IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLW1vdW50YWluXC1pc1wtbG9mdHlcLWFuZFwtc3RlZXBcLWFuZFwtcHJvZm91bmQ7CivjnbggPCBhXC1jb25pY2FsXC1jYXBcLXdvcm5cLW9uXC1jZXJlbW9uaW91c1wtb2NjYXNpb25zXC1pblwtYW5jaWVudFwtdGltZXM7CivjmaggPCB0aGVcLXJveWFsXC1kb21haW5zXC1zZXRcLWFwYXJ0XC1pblwtYW5jaWVudFwtdGltZXNcLWZvclwtdGhlXC1lbXBlcm9yOwor54eI56+AIDwgdGhlXC1sYW50ZXJuXC1mZXN0aXZhbFwtXCgxNXRoXC1vZlwtZmlyc3RcLW1vbnRoXC1vZlwtbHVuYXJcLWNhbGVuZGFyXCk7CivooakgPCB0aGVcLW9wZW5cLXNlYW1cLW9mXC1hXC1nYXJtZW50XC13aGljaFwtYWxsb3dzXC1mcmVlZG9tXC1vZlwtbW92ZW1lbnQ7CivlsbogPCBhXC1oaWxsXC13aXRoXC10cmVlc1wtb3JcLWdyYXNzXC1cLVwtc29tZVwtZ2l2ZVwtdGhlXC1vcHBvc2l0ZVwtbWVhbmluZzsKK+WMl+a0iyA8IHRoZVwtcWluZ1wtZHluYXN0eVwtbmFtZVwtZm9yXC10aGVcLWNvYXN0YWxcLXByb3ZpbmNlc1wtb2ZcLWxpYW9uaW5nOwor5YWr5peXIDwgdGhlXC1cImVpZ2h0XC1iYW5uZXJzXCJcLVwobWlsaXRhcnlcLW9yZ2FuaXNhdGlvblwtaW5cLXFpbmdcLWR5bmFzdHlcKTsKK+S2piA8IHVwcGVyXC1hbmRcLWxvd2VyXC10ZWV0aFwtaW5cLW9yZGVyXC1hbmRcLWNvcnJlc3BvbmRpbmdcLWVhY2hcLW90aGVyOwor5KeCIDwgdG9cLXR1cm5cLW92ZXJcLXRoZVwtY2xvZFwtb2ZcLXRoZVwtZWFydGhcLXdpdGhcLWFcLXNob3ZlbFwtb3JcLWFcLXNwYWRlOwor6Jek6YeOIDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC10ZW5nXC15ZVwsXC1hXC1qYXBhbmVzZVwtZnJpZW5kXC1vZlwtbHUzXC14dW40XC3pra/ov4U7Civoj6/ooaggPCBtYXJibGVcLXBpbGxhclwtXChvcm5hbWVudGFsXC1jb2x1bW5cLWluXC1mcm9udFwtb2ZcLXBsYWNlc1wsXC10b21ic1wpOwor5b6F5qWtIDwgdG9cLWF3YWl0XC1qb2JcLWFzc2lnbm1lbnRcLVwodGVybVwtdXNlZFwtb25seVwtaW5cLW1haW5sYW5kXC1jaGluYVwpOwor5aSq5qW15ouzIDwgYVwta2luZFwtb2ZcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1zaGFkb3dib3hpbmdcLVwodGFpXC1jaGlcLWNodWFuXCk7Civlk4DlhbXlv4Xli50gPCBhblwtYXJteVwtYnVybmluZ1wtd2l0aFwtcmlnaHRlb3VzXC1pbmRpZ25hdGlvblwtaXNcLWJvdW5kXC10b1wtd2luOwor5pyD5LiN5pyDIDwgXChwb3NpbmdcLWFcLXF1ZXN0aW9uXDpcLXdoZXRoZXJcLXNvbWVvbmVcLFwtc29tZXRoaW5nXClcLWNhblwtb3JcLW5vdDsKK+aJruebuCA8IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFuXC1hY3Rvclwtb3JcLWFjdHJlc3NcLWluXC1jb3N0dW1lXC1vclwtbWFrZXVwOwor5oqx5L2b6IWzIDwgY2xhc3BcLWJ1ZGRhJydzXC1mZWV0XC1cLVwtcHJvZmVzc1wtZGV2b3Rpb25cLW9ubHlcLXdoZW5cLWluXC10cm91YmxlOwor5ZmeIDwgdGhlXC1tb3ZlbWVudFwtb2ZcLWFcLWZpc2gnJ3NcLW1vdXRoXC1hdFwtdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC13YXRlcjsKK+WUtSA8IHVzZWRcLWluXC1idWRkaGlzdFwtdGV4dHNcLXRvXC10cmFuc2xpdGVyYXRlXC1ub25cLWNoaW5lc2VcLXNvdW5kczsKK+SggiA8IG5hbWVcLW9mXC1hXC1wb3dlcmZ1bFwtZmV1ZGFsXC1zdGF0ZVwtd2hpY2hcLWV4aXN0ZWRcLTc0MFwtMzMwXC1iXC5jXC47CivklrYgPCB0b1wtcmFpc2VcLXVwXC10aGVcLW5vc2VcLWluXC1vcmRlclwtdG9cLWdldFwtdGhlXC1idWdzXC1pblwtdGhlXC1lYXJ0aDsKK+ibi+iKsea5ryA8IGNsZWFyXC1zb3VwXC1jb250YWluaW5nXC1iZWF0ZW5cLWVnZ1wtYW5kXC1ncmVlblwtbGVhZnlcLXZlZ2V0YWJsZTsKK+SEmyA8IHNlcnZpY2VcLW9yXC1yaXRlc1wtb2ZcLW9mZmVyaW5nXC1zYWNyaWZpY2VzXC1mb3JcLWRyaW5rXC1hbmRcLWZvb2Q7CivjvLAgPCBhblwtZWFydGhlbndhcmVcLWphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoXC1hbmRcLXR3b1wtb3JcLWZvdXJcLWVhcnM7CivjuJYgPCBoaWRlXC1vclwtdG9cLWtlZXBcLWluXC1zdG9yZVwtdGhlXC12ZWdldGFibGVcLWluXC1jb2xkXC13aW50ZXJcLWRheXM7Civjt58gPCB0b1wtc2NhbGRcLXRoZVwtYnJpc3RsZXNcLW9mZlwtYVwtcGlnXC1vclwtdGhlXC1mZWF0aGVyc1wtb2ZmXC1hXC1iaXJkOwor47CHIDwgdGhlXC1zcXVhcmVcLXBlY2tcLXNoYXBlZFwtYm94XC1oYWxmXC13YXlcLXVwXC1hXC1jaGluZXNlXC1mbGFnc3RhZmY7CivjprwgPCBhXC13b29kZW5cLXBpbGVzXC11c2VkXC1hc1wtYVwtY2FibGVcLXRvXC1tYWtlXC1pbW1vdmFibGVcLW9mXC1hXC1ib2F0Owor46KnIDwgYVwtYm9va1wtb3JcLXBhaW50aW5nXC13aGljaFwtY2FuXC1iZVwtZWFzaWx5XC1mb2xkZWRcLW9yXC1yb2xsZWRcLXVwOwor6YeR5bGx5a+6IDwgamluc2hhblwtdGVtcGxlXCxcLXdoZXJlXC1mYWhhaVwtbGl2ZXNcLVwoZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZVwpOwor5Lim6JKC6JOuIDwgdHdpblwtbG90dXNcLWZsb3dlcnNcLW9uXC1vbmVcLXN0YWxrXC1cLVwtYVwtZGV2b3RlZFwtbWFycmllZFwtY291cGxlOwor5q2m6KGTIDwgd3VzaHVcLFwtbWFydGlhbFwtYXJ0c1wtc3VjaFwtYXNcLXNoYWRvd1wtYm94aW5nXCxcLXN3b3JkcGxheVwsXC1ldGNcLjsKK+S4reWFsSA8IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtY2hpbmVzZVwtY29tbXVuaXN0XC1cKHBhcnR5XCxcLXJlZ2ltZVwsXC1ldGNcLlwpOwor6ZKyIDwga2luZFwtb2ZcLWdvbmdcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lc1wtYnlcLXRyb29wc1wtb25cLXRoZVwtbWFyY2g7CivmlL/ljZQgPCBjcHBjY1wtXChjaGluZXNlXC1wZW9wbGUnJ3NcLXBvbGl0aWNhbFwtY29uc3VsdGF0aXZlXC1jb21taXR0ZWVcKTsKK+aOoeWPliA8IGFkb3B0XC1vclwtY2FycnlcLW91dFwtXChtZWFzdXJlc1wsXC1wb2xpY2llc1wsXC1jb3Vyc2VcLW9mXC1hY3Rpb25cKTsKK+eZn+S4iSA8IGFcLXdyZXRjaGVkXC1sb29raW5nXC10cmFtcFwtd2hvXC1saXZlc1wtYnlcLWJlZ2dpbmdcLW9yXC1zdGVhbGluZzsKK+ihqOWFhCA8IG1hbGVcLWNvdXNpblwtd2l0aFwtYVwtZGlmZmVyZW50XC1zdXJuYW1lXC1cKG9sZGVyXC10aGFuXC1vbmVzZWxmXCk7Civnn5vpoK3mjIflkJEgPCB0YXJnZXRcLXNvbWVvbmVcLW9yXC1zb21ldGhpbmdcLVwoZm9yXC1hdHRhY2tcLFwtY3JpdGljaXNtXCxcLWV0Y1wuXCk7Civku5nojYkgPCBhXC1raW5kXC1vZlwtcGxhbnRcLXVzZWRcLWFzXC1hXC1tZWRpY2luYWxcLWhlcmJcLWluXC1hbmNpZW50XC10aW1lczsKK+SqsyA8IHNsYW50ZWRcLWZhY2VcLWNhdXNpbmdcLWJ5XC10aGVcLXBhcmFseXplZFwtb2ZcLXRoZVwtZmFjaWFsXC1uZXJ2ZTsKK+adv+iDoSA8IGFcLWJvd2VkXC1zdHJpbmdlZFwtaW5zdHJ1bWVudFwtd2l0aFwtYVwtdGhpblwtd29vZGVuXC1zb3VuZGJvYXJkOwor5J6LIDwgdG9cLWRvXC1hbG1zXC1mb3JcLXRoZVwtYnVkZGhpc3RcLXByaWVzdHNcLW9yXC1tb25rc1wtaW5cLW9sZFwtdGltZXM7CivkmYYgPCBzbGl0c1wtb25cLXRoZVwtbG93ZXJcLXBhcnRcLW9mXC1hXC1nb3duXC1mb3JcLWZyZWVkb21cLW9mXC1tb3ZlbWVudDsKK+SAjyA8IHRvXC1tb3ZlXC1vbmUnJ3NcLWV5ZXNcLXRvXC1leHByZXNzXC1vclwtaW5kaWNhdGVcLXdpdGhcLWV5ZXNcLWRpenp5Owor47+EIDwgdGhlXC1ncm9hbnNcLW9yXC1tb2Fuc1wtZnJvbVwtYVwtcGVyc29uXC1pblwtYVwtY3JpdGljYWxcLWNvbmRpdGlvbjsKK+O2jyA8IGFuXC1hbmNpZW50XC1uYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2VcLWRlbmdmZW5neGlhbjsKK+OzhyA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1qaWFuZ3N1XC1wcm92aW5jZVwteWl4aW5nXC1jb3VudHk7Civjq4sgPCBhXC1zaWxrZW5cLWJhbm5lclwtaGFuZ2luZ1wtZnJvbVwtYVwtc3RhZmZcLWJlbnRcLW92ZXJcLWF0XC10aGVcLXRvcDsKK+aWr+WNoeS8r+WLkuekgSA8IHNjYXJib3JvdWdoXC1zaG9hbFwtXChwaGlsaXBwaW5lcycnXC1uYW1lXC1mb3JcLWh1YW5neWFuXC1pc2xhbmRcKTsKK+S4jeaBpeS4i+WVjyA8IG5vdFwtZmVlbFwtYXNoYW1lZFwtdG9cLWFza1wtYW5kXC1sZWFyblwtZnJvbVwtb25lJydzXC1zdWJvcmRpbmF0ZXM7Civni70gPCBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtd2l0aFwtc2hvcnRcLWZvcmVsZWdzXC13aGljaFwtcm9kZVwtYVwtd29sZjsKK+atkCA8IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpbmdcLW5vblwtY2hpbmVzZVwtd29yZHNcLXN1Y2hcLWFzXC1ldXJvcGU7CivmsaggPCBtaVwtcml2ZXJcLWluXC1odW5hblwtcHJvdmluY2VcLXdoZXJlXC1xdVwteXVhblwtZHJvd25lZFwtaGltc2VsZjsKK+axnCA8IGFcLXN0cmVhbVwtd2hpY2hcLWxlYXZlc1wtdGhlXC1tYWluXC1icmFuY2hcLXRoZW5cLWxhdGVyXC1yZXR1cm5zOwor5Y2h5ouJT0sgPCBrYXJhb2tlXC1cKHNpbmdpbmdcLXRvXC1yZWNvcmRlZFwtaW5zdHJ1bWVudGFsXC1hY2NvbXBhbmltZW50XCk7CivkuK3lnIvmsJHoiKogPCBnZW5lcmFsXC1hZG1pbmlzdHJhdGlvblwtb2ZcLWNpdmlsXC1hdmlhdGlvblwtb2ZcLWNoaW5hXC1cKGNhYWNcKTsKK+ijnOmkiiA8IHRha2VcLWFcLXRvbmljXC1vclwtbm91cmlzaGluZ1wtZm9vZFwtdG9cLWJ1aWxkXC11cFwtb25lJydzXC1oZWFsdGg7CivmspnliKnnp5Hku4Dntq3liKkgPCBnZW5lcmFsXC1zaGFsaWthc2h2aWxpXC1cKGhlYWRcLW9mXC11c1wtam9pbnRcLWNoaWVmc1wtb2ZcLXN0YWZmXCk7CivnsIggPCBiYW1ib29cLW1hdFwtdXNlZFwtdG9cLXByb3RlY3RcLWNhcnJpYWdlXC1wYXNzZW5nZXJzXC1mcm9tXC1kdXN0Owor54i8IDwgYVwtc21hbGxcLXRhYmxlXC1vclwtdGllcmVkXC1zdGFuZFwtZmlsbGVkXC13aXRoXC1tZWF0XC1vZmZlcmluZ3M7CivkuInlnIvmvJTnvqkgPCBuYW1lXC1vZlwtYVwtY2xhc3NpY1wtbm92ZWxcLFwtXCJyb21hbmNlXC1vZlwtdGhlXC10aHJlZVwta2luZ2RvbXNcIjsKK+aLvOWRvSA8IHRvXC1iZVwtcmVhZHlcLXRvXC1yaXNrXC1vbmUnJ3NcLWxpZmVcLVwoaW5cLWZpZ2h0aW5nXCxcLXdvcmtcLFwtZXRjXC5cKTsKK+iDjOawtOS4gOaIsCA8IGZpZ2h0XC13aXRoXC1vbmUnJ3NcLWJhY2tcLXRvXC10aGVcLXJpdmVyXC1cLVwtZmlnaHRcLXRvXC13aW5cLW9yXC1kaWU7Civks5ogPCBhXC1zb3J0XC1vZlwtbmlnaHRpbmdhbGVcLXdoaWNoXC1pc1wtc2FpZFwtdG9cLXNpbmdcLWZvclwtdGhlXC1kYXduOwor5KGCIDwgdGhlXC1sb25nXC13b29kZW5cLWJ1bXBlclwtYXRcLXRoZVwtcmVhclwtb2ZcLWFcLWNhcnRcLW9yXC1jYXJyaWFnZTsKK+adr+W8k+ibh+W9sSA8IG1pc3Rha2luZ1wtdGhlXC1yZWZsZWN0aW9uXC1vZlwtYVwtYm93XC1pblwtdGhlXC1jdXBcLWZvclwtYVwtc25ha2U7Civkg74gPCB0b1wtb2ZmZXJcLXNtYWxsXC1waWdcLWFzXC1zYWNyaWZpY2VcLXdoZW5cLXdhcnNoaXBcLWdvZFwtb2ZcLWxpZmU7CivjvKogPCBmcmFnbWVudHNcLW9mXC1hXC10aWxlXC1oYXZlbicndFwtdFwtYmVlblwta2lsblwtZHJpZWRcLWNvbXBsZXRlbHk7CivjtJYgPCBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlXC1zb3V0aHdlc3RcLW9mXC1qaW5hbjsKK+OdiSA8IHNwYWNlXC1iZXR3ZWVuXC10aGVcLXRocm9uZVwtYW5kXC10aGVcLXJldGlyaW5nXC1yb29tXC1iZWhpbmRcLWl0Owor45arIDwgdXNlZFwtaW5cLW5hbWVzXC1mb3JcLW1pbm9yaXR5XC1ldGhuaWNcLWdyb3VwXC1pblwtYW5jaWVudFwtY2hpbmE7Civog4zkupXpm6LphIkgPCBsZWF2ZVwtb25lJydzXC1uYXRpdmVcLXBsYWNlXC1cKGVzcGVjaWFsbHlcLWFnYWluc3RcLW9uZScnc1wtd2lsbFwpOwor54KdIDwgc3RpclwtZnJ5XC1vclwtYm9pbFwtaW5cLXdhdGVyXC1vclwtb2lsXC10aGVuXC1jb29rXC13aXRoXC1hXC1zYXVjZTsKK+mBt+aAkiA8IHRvXC10YWtlXC1vbmUnJ3NcLWFuZ2VyXC1vdXRcLW9uXC1zYlwtXCh3aG9cLWRvZXNcLW5vdFwtZGVzZXJ2ZVwtaXRcKTsKK+azoueAvui1t+S8jyA8IG9mXC1hXC1waWVjZVwtb2ZcLXdyaXRpbmdcLXdpdGhcLW9uZVwtY2xpbWF4XC1mb2xsb3dpbmdcLWFub3RoZXI7CivkuI3ngrrlt7LnlJogPCByZWZyYWluXC1mcm9tXC1nb2luZ1wtdG9cLWV4dHJlbWVzXC1pblwtbWV0aW5nXC1vdXRcLXB1bmlzaG1lbnQ7CivkuI3ntITogIzlkIwgPCB0YWtlXC10aGVcLXNhbWVcLWFjdGlvblwtb3JcLXZpZXdcLXdpdGhvdXRcLXByaW9yXC1jb25zdWx0YXRpb247Civpo5vomY7pmoogPCBmbHlpbmdcLXRpZ2Vyc1wtXCh1c1wtYWlybWVuXC1pblwtY2hpbmFcLWR1cmluZ1wtd29ybGRcLXdhclwtdHdvXCk7Civmjpvlpb0gPCB0b1wtaGFuZ1wtdXBcLXByb3Blcmx5XC1cKHRlbGVwaG9uZVwsXC1waWN0dXJlXCxcLWNsb3RoZXNcLFwtZXRjXC5cKTsKK+aLlOavkiA8IGRyYXdcLW91dFwtcHVzXC1ieVwtYXBwbHlpbmdcLWFcLXBsYXN0ZXJcLXRvXC10aGVcLWFmZmVjdGVkXC1hcmVhOwor5byuIDwgYVwtY3Jvd3dib3dcLXdoaWNoXC1kaXNjaGFyZ2VkXC1zZXZlcmFsXC1ib2x0c1wtaW5cLXN1Y2Nlc3Npb247CivkqpkgPCBsZWF0aGVyXC13cmFwcGVkXC1jb2xsYXJcLWZvclwtYVwtZHJhZnRcLWFuaW1hbFwtb2ZcLWFcLWNhcnJpYWdlOwor5KeaIDwgdGhlXC1uYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10aGVcLXNvdXRoXC13ZXN0XC1vZlwtaGViZWlcLXByb3ZpbmNlOwor55Wc5YqbIDwgYW5pbWFsXC1wb3dlcmVkXC1cKGFzXC1vcHBvc2VkXC10b1wtaHVtYW5cLW9yXC1tYWNoaW5lXC1wb3dlcmVkXCk7CivkoZ4gPCBsZWF0aGVyXC10aGF0XC13aW5kXC1yb3VuZFwtb25cLXRoZVwtc2hhZnRzXC1vZlwtYVwtYmlnXC1jYXJyaWFnZTsKK+SNnCA8IGFcLWJhc2tldFwtb3JcLWFcLWNhZ2VcLXVzZWRcLXRvXC1rZWVwXC13aWxkXC1hbmRcLWRvbWVzdGljXC1mb3dsczsKK+SHhiA8IGNhcGFjaXR5XC11bml0XC1pblwtZnJhbmNlXC1lcXVhbFwtdG9cLXRlblwtdGltZXNcLW9mXC1vbmVcLWxpdHJlOwor5IKFIDwgdG9cLWhhdmVcLWluc2lnaHRcLW9yXC12aXNpb25cLW9mXC1hXC1zaW1wbGVcLWFuZFwtaG9uZXN0XC1wZXJzb247Civjsr0gPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC10b2RheScnc1wtc291dGh3ZXN0XC1vZlwtc2hhbnhpXC1wcm92aW5jZTsKK+OukCA8IGFcLXJhY2tcLW9yXC1hXC1zdGFuZFwtd2l0aFwtdGhyZWVcLXN0aWNrc1wtdG9cLWNyb3NzXC1lYWNoXC1vdGhlcjsKK+OsuCA8IGFcLWtpbmRcLW9mXC1zZXJ2aWNlc1wtb3JcLWNlcmVtb25pZXNcLW9mXC1vZmZlcmluZ1wtc2FjcmlmaWNlczsKK+aal+iKseWFkiA8IGFcLXZlaWxlZFwtZGVzaWduXC1pbmNpc2VkXC1pblwtcG9yY2VsYWluXC1vclwtd292ZW5cLWluXC1mYWJyaWM7CivlhrDngq3kuI3nm7jlrrkgPCBhc1wtaW5jb21wYXRpYmxlXC1vclwtaXJyZWNvbmNpbGFibGVcLWFzXC1pY2VcLWFuZFwtaG90XC1jb2FsczsKK+W5q+iFlCA8IHZvY2FsXC1hY2NvbXBhbmltZW50XC1pblwtc29tZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW9wZXJhczsKK+WllOWWqiA8IGhhc3RlblwtaG9tZVwtZm9yXC10aGVcLWZ1bmVyYWxcLW9mXC1hXC1wYXJlbnRcLW9yXC1ncmFuZHBhcmVudDsKK+eZveiKjSA8IFwocGVlbGVkXClcLXJvb3RcLW9mXC1oZXJiYWNlb3VzXC1wZW9ueVwtXChwYWVvbmlhXC1sYWN0aWZsb3JhXCk7Civpg4wgPCBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLWhzaWVuXC1pblwtbW9kZXJuXC1nYW5zdVwvc2hhYW54aVwtYXJlYVwuOwor6IiI6LajIDwgaW50ZXJlc3RcLVwoZGlyZWN0ZWRcLXRvd2FyZHNcLFwtbm90XC1pbmhlcmVudFwtaW5cLXNvbWV0aGluZ1wpOwor5ouU572Q5a2QIDwgY3VwcGluZ1wtdGVjaG5pcXVlXC11c2VkXC1pblwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW1lZGljaW5lOwor6ICwIDwgdG9vdGhsZXNzXC1yYWtlXC1mb3JcLWRyYXdpbmdcLWVhcnRoXC1vdmVyXC1uZXdseVwtc293blwtZ3JhaW47CivnkIAgPCBnZW1zXC1vZlwtcGVhcmxzXC1mb3JtZXJseVwtcHV0XC1pbnRvXC10aGVcLW1vdXRoXC1vZlwtYVwtY29ycHNlOwor5qiZ5YW1IDwgcGFyYWRlXC1ndWFyZHNcLVwodXN1YWxseVwtc3BhY2VkXC1vdXRcLWFsb25nXC1wYXJhZGVcLXJvdXRlc1wpOwor5KqDIDwgd2luZVwtY29udGFpbmVyXC11c2VkXC1ieVwtbWlub3JpdHlcLXRyaWJlXC1pblwtYW5jaWVudFwtdGltZXM7CivkpbcgPCBhXC1oaW5nZWRcLXNoZWFyXC1vclwtbG9uZ1wta25pZmVcLWZvclwtY3V0dGluZ1wtZm9kZGVyXC1vclwtaGF5Owor5KSpIDwgYW5cLW9ybmFtZW50XC1hdFwtdGhlXC1lbmRcLW9mXC1hXC1iZWx0XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivknaogPCB0b1wtcHJvdmlkZVwtbW9uZXlcLW9yXC1naWZ0XC1hbmRcLXRvXC1jb25zdWx0XC1mb3J0dW5lXC10ZWxsZXI7CivkmZsgPCBjZXJlbW9uaWFsXC1kcmVzc1wtb2ZcLXRoZVwtZW1wZXJvclwtb3JcLXZlcnlcLWhpZ2hcLW9mZmljaWFsczsKK+SYpiA8IGFcLWtpbmRcLW9mXC1oZWFkXC1kcmVzc1wtd29yZVwtaW5cLWZ1bmVyYWxcLXJpdGVzXC1pblwtb2xkXC1kYXlzOwor5JifIDwga2luZFwtb2ZcLXNpbGtcLXdvdmVuXC13aXRoXC1kb3VibGVcLXRocmVhZHNcLWFuZFwtd2F0ZXJcLXByb29mOwor5JSRIDwgYVwtd2hpdGVcLWNvbG9yZWRcLWNsdXN0ZXJcLWdyb3duXC1hdFwtdGhlXC10aXBcLW9mXC1jb2dvbmdyYXNzOwor5ImyIDwgdGhpblwtYW5kXC1mbGF0XC1zbGlwc1wtb2ZcLWJhbWJvb1wtdXNlZFwtZm9yXC13ZWF2aW5nXC1wdXJwb3NlOwor47y9IDwgZnJhZ21lbnRzXC1vZlwtYVwtdGlsZVwtaGF2ZW4nJ3RcLWJlZW5cLWtpbG5cLWRyaWVkXC1jb21wbGV0ZWx5Owor47aBIDwgYWZ0ZXJcLWJsb2NraW5nXC10aGVcLXdhdGVyXC1mbG93XC10YWtlc1wtZGlmZmVyZW50XC13YXRlcndheTsKK+OvgCA8IGJvbmRzXC1hbmRcLWZldHRlcnNcLWZvclwtZmFsY29uc1wtYW5kXC1kb2dzXC11c2VkXC1pblwtaHVudGluZzsKK+OSviA8IGFcLWtpbmRcLW9mXC13cmFwcGVyXC11c2VkXC10b1wtY292ZXJcLW92ZXJcLXRoZVwtZmFjZVwtYW5kXC1oZWFkOwor5YWr6Z2i546y55OPIDwgYmVcLXNtb290aFwtYW5kXC1zbGlja1wtXChpblwtZXN0YWJsaXNoaW5nXC1zb2NpYWxcLXJlbGF0aW9uc1wpOwor5YWD5a6156+AIDwgdGhlXC1sYW50ZXJuXC1mZXN0aXZhbFwsXC1qYW51YXJ5XC0xNVwtb25cLXRoZVwtbHVuYXJcLWNhbGVuZGFyOwor55y+5b+X5oiQ5Z+OIDwgXCJ1bml0eVwtb2ZcLXdpbGxcLWlzXC1hblwtaW1wcmVnbmFibGVcLXN0cm9uZ2hvbGRcIlwtXChwcm92ZXJiXCk7CivlgIvpq5TmiLYgPCBhXC1zbWFsbFwtcHJpdmF0ZVwtYnVzaW5lc3NcLVwodXNlZFwtaW5cLW1haW5sYW5kXC1jaGluYVwtb25seVwpOwor5rOV5rW3IDwgbmFtZVwtb2ZcLWFcLWJ1ZGRoaXN0XC1tb25rXCxcLWZhaGFpXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7CivooLIgPCB0aGVcLW1pbGxpcGVkZVwtc29tZXRpbWVzXC1jb25mb3VuZGVkXC13aXRoXC10aGVcLWdyb3dcLXdvcm07CivomKcgPCBhXC1wbGFudFwtd2hpY2hcLXJlc2VtYmxlc1wtd2hlYXRcLWJ1dFwtaGFzXC1ub1wtZWRpYmxlXC1ncmFpbjsKK+aZr+W+t+mOriA8IGppbmdcLWRlXC16aGVuXC1cKGFcLWNoaW5lc2VcLWNpdHlcLWluXC1qaWFuZ1wteGlcLeaxn+ilv1wtcHJvdmluY2VcKTsKK+mfi+eIvuW8l+mbt+iMsiA8IFwoZ2VvcmdlXClcLXdlaHJmcml0elwtXChiZWlqaW5nXC1idXJlYXVcLWNoaWVmXC1vZlwtbmV3c3dlZWtcKTsKK+mVt+WfjuWNoSA8IGdyZWF0XC13YWxsXC1jYXJkXC1cKGNyZWRpdFwtY2FyZFwtaXNzdWVkXC1ieVwtYmFua1wtb2ZcLWNoaW5hXCk7Civlk4josp3niL4gPCBcKHdlYnN0ZXJcKVwtaHViYmVsbFwtXChmb3JtZXJcLWFzc29jaWF0ZVwtYXR0b3JuZXlcLWdlbmVyYWxcKTsKK+iQrOWjveWxsSA8IG5hbWVcLW9mXC1hXC1wbGFjZVwsXC1sb25nZXZpdHlcLWhpbGxcLFwtaW5cLXN1bW1lclwtcGFsYWNlXC3poKTlkozlnJI7Civmi4npgqPng4ggPCBcKHByaW5jZVwpXC1yYW5hcmlkZGhcLVwoc29uXC1vZlwta2luZ1wtc2loYW5vdWtcLW9mXC1jYW1ib2RpYVwpOwor5KG0IDwgY2FycmlhZ2VcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lc1wtdG9cLXRha2VcLWVuZW15XC1wb3NpdGlvbjsKK+SfuiA8IHdhbGtcLXNsb3dseVwtYmVjYXVzZVwtb2ZcLXRoZVwtd3JvbmdcLXBvc2l0aW9uXC1vZlwtdGhlXC1mZWV0Owor5ImjIDwgc2xpcHNcLW9mXC1iYW1ib29cLXByb3ZpZGVkXC1mb3JcLXdyaXRpbmdcLWluXC1hbmNpZW50XC10aW1lczsKK+SBuSA8IHRvXC1sb29rXC1hc2thbmNlXC1cLVwtXC1hXC1leHByZXNzaW9uXC1vZlwtZGlzZGFpblwtb3JcLWRlc3Bpc2U7CivjvIwgPCBsb3RcLW9mXC1tZWxvbnNcLWdyb3dpbmdcLWJ1dFwtdGhlXC1yb290XC1pc1wtd2Vha1wtYW5kXC1mZWVibGU7Civju6AgPCBqYWRlXC1oYW5naW5nXC1vblwtdGhlXC1zaWRlc1wtb2ZcLXRoZVwtY2FwXC1pblwtYW5jaWVudFwtdGltZXM7CivjrqMgPCBhXC1waWVjZVwtb2ZcLXdvb2RcLXVzZWRcLXRvXC1zdHJpa2VcLW9mZlwtZ3JhaW5cLWluXC1hXC1tZWFzdXJlOwor45OkIDwgdG9cLXN0cmlwXC10aGVcLXNraW5cLW9mXC10aGVcLWZhY2VcLVwtXC1cLWFuXC1pbW1pbmVudFwtY2FsYW1pdHk7CivljIXlubLliLYgPCBhXC1zeXN0ZW1cLW9mXC1wYXltZW50XC1wYXJ0bHlcLWluXC1raW5kXC1hbmRcLXBhcnRseVwtaW5cLWNhc2g7Civmipfml6XmiLDniK0gPCBcKGNoaW5hJydzXClcLXdhclwtb2ZcLXJlc2lzdGFuY2VcLWFnYWluc3RcLWphcGFuXC1cKDE5MzdcLTE5NDVcKTsKK+mhj+ecn+WNvyA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwteWFuXC16aGVucWluZ1wsXC1hXC1mYW1vdXNcLWNhbGxpZ3JhcGhlcjsKK+eZvee0oOiyniA8IFwobmFtZVwtb2ZcLWFcLXBlcnNvblwpXC1iYWlcLXN1emhlblwsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor56CAIDwgYnJpbGxpYW50bHlcLWNvbG9yZWRcLXN0b25lXC13aXRoXC12ZWluZWRcLXBhdHRlcm5zXC1pblwtaXQ7CivlvYjnkLQgPCB0b1wtcGxheVwtb3JcLXN0cnVtXC1hXC1sdXRlXC1vclwtb3RoZXJcLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor55m96Zm2IDwgd2hpdGVcLXBvdHRlcnlcLVwob2ZcLXNoYW5nXC1keW5hc3RyeVwtMTZcLTExdGhcLWNlbnR1cnlcLWJjXCk7CivljIXlubIgPCBiZVwtcmVzcG9uc2libGVcLWZvclwtYVwtdGFza1wtdW5pdFwtdW50aWxcLWl0XC1pc1wtY29tcGxldGVkOwor5aSn5p2Q5bCP55SoIDwgdXNpbmdcLWFcLXRhbGVudGVkXC1wZXJzb25cLWluXC1hblwtaW5zaWduaWZpY2FudFwtcG9zaXRpb247CivnkLNcLuaItOe2reaWryA8IGx5bm5cLWRhdmlzXC1cKHVzXC1zdGF0ZVwtZGVwYXJ0bWVudFwtYXJtc1wtY29udHJvbFwtZXhwZXJ0XCk7CivlubPmlrkgPCBzcXVhcmVcLVwoYXNcLWluXC1zcXVhcmVcLWZvb3RcLFwtc3F1YXJlXC1taWxlXCxcLXNxdWFyZVwtcm9vdFwpOwor6JmSIDwgYW5cLWFtcGhpYmlvdXNcLWJlYXN0XC1yZXNlbWJsaW5nXC1hXC10aWdlclwtd2l0aFwtb25lXC1ob3JuOwor562BIDwgYVwtYmFtYm9vXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW5cLXRoZWlyXC1jb2Nvb25zOwor5Lq65rCR6Iux6ZuE57SA5b+156KRIDwgbW9udW1lbnRcLXRvXC10aGVcLXBlb3BsZScnc1wtaGVyb2VzXCxcLWF0XC10aWFuYW5tZW5cLXNxdWFyZTsKK+WGiyA8IGFcLWRlc2VydFwtYVwtYm9yZGVyXC1wcmFpcmllXC10aGVcLTFzdFwtZm9ybVwtaXNcLXJhZGljYWxcLTEzOwor5LS3IDwgdXNlXC10aGVcLXdob2xlXC1waWVjZVwtb2ZcLWJhcmxleVwtdG9cLWZlcm1lbnRcLWZvclwtYnJld2luZzsKK+StniA8IGFcLWtpbmRcLW9mXC1zYWNyaWZpY2VzXC1vZmZlcmVkXC10b1wtZ29kc1wtb3JcLXRoZVwtZGVjZWFzZWQ7Civkp6AgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC13aGF0XC1pc1wtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+SRqSA8IGFcLWtpbmRcLW9mXC1pbmxhbmRcLXJpdmVyc1wtd2Fyc2hpcFwtdXNlZFwtaW5cLXFpbmdcLWR5bmFzdHk7CivkjbggPCBhXC1sZWdlbmRhcnlcLWdvYXRcLWxpa2VcLWFuaW1hbFwtd2l0aFwtNFwtZWFyc1wtYW5kXC05XC10YWlsczsKK+SDqyA8IGFcLXNpbGljYXRlXC1zdWJzdGFuY2VcLWZyb21cLXRoZVwtc2FsdFwtd2VsbHNcLWluXC1zemVjaHdhbjsKK+O4nCA8IHRvXC1nZXRcLXRocm91Z2hcLXRoZVwtc3BhY2VcLWVuY2xvc2VkXC1ieVwtYVwtY29uc3RlbGxhdGlvbjsKK+O3rSA8IGFcLWNvbmljYWxcLWJyaWNrXC1zdHJ1Y3R1cmVcLWluXC13aGljaFwtdG9cLWxpZ2h0XC1hXC1iZWFjb247CivkuI3ogZ7kuI3llY8gPCBub3RcLWJvdGhlclwtdG9cLWFza1wtcXVlc3Rpb25zXC1vclwtbGlzdGVuXC10b1wtd2hhdCcnc1wtc2FpZDsKK+S4puihjOS4jeaCliA8IGJvdGhcLWNhblwtYmVcLWltcGxlbWVudGVkXC13aXRob3V0XC1jb21pbmdcLWludG9cLWNvbmZsaWN0Owor5q2l5q2l54K654efIDwgYWR2YW5jZVwtZ3JhZHVhbGx5XC1hbmRcLWVudHJlbmNoXC1vbmVzZWxmXC1hdFwtZXZlcnlcLXN0ZXA7CivnlL4gPCBncm91bmRcLXRoYXRcLWhhc1wtYmVlblwtdW5kZXJcLWN1bHRpdmF0aW9uXC1mb3JcLW9uZVwteWVhcjsKK+S4gOacm+eEoemamyA8IGFzXC1mYXJcLWFzXC10aGVcLWV5ZVwtY2FuXC1zZWVcLVwobGl0XDpcLWxvb2tcLWFmYXJcLW5vXC1ib3VuZFwpOwor5LiN6KaL57aT5YKzIDwgbm90XC10b1wtYmVcLWZvdW5kXC1pblwtdGhlXC1jbGFzc2ljc1wtXC1cLW5vdFwtYXV0aG9yaXRhdGl2ZTsKK+aSpembsuimi+aXpSA8IGRpc3BlbFwtdGhlXC1jbG91ZHNcLWFuZFwtc2VlXC10aGVcLXN1blwtXC1cLXJlc3RvcmVcLWp1c3RpY2U7Civmr5TkuIrkuI3otrPmr5TkuIvmnInkvZkgPCBmYWxsXC1zaG9ydFwtb2ZcLXRoZVwtYmVzdFwtYnV0XC1iZVwtYmV0dGVyXC10aGFuXC10aGVcLXdvcnN0Owor55m95Yaw5YawIDwgcGFpXC1waW5nXC1waW5nXC1cKHdlbGxcLWtub3duXC10YWl3YW5cLXBlcmZvcm1pbmdcLWFydGlzdFwpOwor5ouJ6LKdIDwgXChqb2huXClcLXJhYmVcLVwoZ2VybWFuXC1leWV3aXRuZXNzXC10b1wtbmFuamluZ1wtbWFzc2FjcmVcKTsKK+W3q+WxsSA8IG10XC5cLXd1XCxcLW9uXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXC1ieVwtdGhlXC10aHJlZVwtZ29yZ2VzOwor56ahIDwgYVwtc2FjcmlmaWNlXC1hdFwtdGhlXC1iZWdpbm5pbmdcLW9mXC1hXC1taWxpdGFyeVwtY2FtcGFpZ247CivnpK4gPCBhbmNpZW50XC1iYWxsaXN0YVwtZm9yXC10aHJvd2luZ1wtaGVhdnlcLXN0b25lc1wtYVwtY2Fubm9uOwor5o2V5L+YIDwgY2FwdHVyZVwtZW5lbXlcLXBlcnNvbm5lbFwtXChmb3JcLWludGVsbGlnZW5jZVwtcHVycG9zZXNcKTsKK+S8r+aBqeaWryA8IFwobmljaG9sYXNcKVwtYnVybnNcLVwodXNcLXN0YXRlXC1kZXBhcnRtZW50XC1zcG9rZXNwZXJzb25cKTsKK+SvoCA8IHRoZVwtZml2ZVwtbG93ZXN0XC1waWVjZXNcLW9mXC1ib25lXC1vZlwtdGhlXC1zcGluYWxcLWNvbHVtbjsKK+SspiA8IGZvb2RcLWl0ZW1zXC1tZXJlbHlcLWFycmFuZ2VkXC1mb3JcLWRpc3BsYXlcLXB1cnBvc2VcLW9ubHk7CivkmZEgPCBhXC1waWVjZVwtb2ZcLXNhY2tjbG90aFwtd29yblwtb25cLXRoZVwtYnJlYXN0XC1pblwtbW91cm5pbmc7Civpj6LlrqIgPCBhcm1lZFwtZXNjb3J0XC1cKG9mXC10cmF2ZWxsZXJzXC1vclwtbWVyY2hhbnRzJydcLWNhcmF2YW5zXCk7CivkiLEgPCBhblwtb3BlblwtYmFtYm9vXC1iYXNrZXRcLXVzZWRcLXRvXC1mZWVkXC1kb21lc3RpY1wtYW5pbWFsczsKK+OqtSA8IGhhbGZcLW9mXC1hXC11bml0XC1vZlwtbWVhc3VyZW1lbnRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OhiCA8IHRoZVwtcm9wZXNcLWF0dGFjaGVkXC10b1wtdGhlXC1iaWVyXC1hbmRcLWhlbGRcLWJ5XC1tb3VybmVyczsKK+OapCA8IGFcLWxhZHlcLW9mZmljZXJcLW9mXC10aGVcLW1vbmFyY2gnJ3NcLXBhbGFjZVwtaW5cLW9sZFwtdGltZXM7CivlronmraXnlbbou4ogPCB3YWxrXC1vdmVyXC1sZWlzdXJlbHlcLWluc3RlYWRcLW9mXC1yaWRpbmdcLWluXC1hXC1jYXJyaWFnZTsKK+iyneavjSA8IHRoZVwtYnVsYlwtb2ZcLXRoZVwtZnJpdGlsbGFyeVwtXChmcml0aWxsYXJpYVwtdGh1bmJlcmdpaVwpOwor5ZCN5YudIDwgYVwtcGxhY2VcLWZhbW91c1wtZm9yXC1pdHNcLXNjZW5lcnlcLW9yXC1oaXN0b3JpY2FsXC1yZWxpY3M7CivmsJHmqIIgPCBtdXNpY1wsXC1lc3BcLlwtZm9sa1wtbXVzaWNcLFwtZm9yXC10cmFkaXRpb25hbFwtaW5zdHJ1bWVudHM7CivlkYAgPCBwYXJ0aWNsZVwtdXNlZFwtdG9cLWV4cHJlc3NcLXN1cnByaXNlXC1vclwtbWlsZFwtZW1waGFzaXM7CivpmZ3opb8gPCBzaGFhbnhpXC1wcm92aW5jZVwsXC1jaGluYVwtXChjYXBpdG9sXC1jaXR5XC1pc1wteGknJ2FuXC3opb/lrolcKTsKK+aXpeaWuSA8IHRoZVwtamFwYW5lc2VcLXNpZGVcLW9yXC1wYXJ0eVwtXChpblwtbmVnb3RpYXRpb25zXCxcLWV0Y1wuXCk7CivkuI3li53mnproiIkgPCB0b29cLW51bWVyb3VzXC10b1wtbWVudGlvblwtaW5kaXZpZHVhbGx5XC1vclwtb25lXC1ieVwtb25lOwor6Z23IDwgdGhlXC1sZWF0aGVyXC1iZWx0XC10aGF0XC1jb25uZWN0c1wtYVwtaG9yc2VcLXdpdGhcLWFcLWNhcnQ7CivorbwgPCB0b1wtc3VwZXJ2aXNlXC10b1wtY29uZmluZVwtYVwtZ292ZXJubWVudFwtZXN0YWJsaXNobWVudDsKK+apq+aKmCA8IFwoaG9yaXpvbnRhbFwtc3RhcnRpbmdcLXJpZ2h0XC1hbmdsZVwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+ilv+WuiSA8IHhpJydhblwtXChjaXR5XClcLFwtdGhlXC1jYXBpdG9sXC1jaXR5XC1vZlwtc2hhYW54aVwtcHJvdmluY2U7CivlsI/pnZIgPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXhpYW9xaW5nXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7Civoh6jmkbkgPCB0b1wtY29weVwtXChhXC1tb2RlbFwtb2ZcLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmdcLFwtZXRjXC5cKTsKK+WdqyA8IGFcLXN0YW5kXC1vblwtd2hpY2hcLXRvXC1yZXBsYWNlXC1nb2JsZXRzXC1hZnRlclwtZHJpbmtpbmc7Civlgpnlj5YgPCBiZVwtb25cLXRoZVwtd2FpdGluZ1wtbGlzdFwtXChmb3JcLWFkbWlzc2lvblwtdG9cLWFcLXNjaG9vbFwpOwor5LS9IDwgYVwtc21hbGxcLXJvdW5kXC1waWVjZVwtb2ZcLWRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7CivksI4gPCB0b1wtdHdpc3RcLXRoZVwtaGFpclwtaW5cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SqnSA8IGxlYXRoZXJcLWNvcmRcLXRoYXRcLXdpbmRpbmdcLW9uXC10aGVcLWhhbmRsZVwtb2ZcLWFcLWtuaWZlOwor6LOT6Iez5aaC5q24IDwgZ3Vlc3RzXC1mZWVsXC1hdFwtaG9tZVwtXChpblwtYVwtaG90ZWxcLFwtZ3Vlc3Rob3VzZVwsXC1ldGNcLlwpOwor5KGHIDwgdGhlXC1jcm9zc1wtYmFyXC1hdFwtdGhlXC1lbmRcLW9mXC10aGVcLXBvbGVcLW9mXC1hXC1jYXJyaWFnZTsKK+SegCA8IHRvXC1kZXNpcmVcLWZvclwtbW9yZVwtbW9uZXlcLXRoYW5cLW9uZScnc1wtcmlnaHRmdWxcLXNoYXJlOwor5JitIDwgdGhlXC1wbGVhdGVzXC1vblwtdGhlXC1sYXBlbFwtb2ZcLWFcLWdhcm1lbnRcLW9mXC10aGluXC1zaWxrOwor5JCIIDwgYVwtcGllY2VcLW9mXC1vbmVcLWZvb3RcLXR3b1wtaW5jaGVzXC1kcmllZFwtc2Vhc29uZWRcLW1lYXQ7CivkjYUgPCBjb250YWluZXJzXC1mb3JcLXdhdGVyXC1vclwtd2luZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Iu+IDwgY290dG9uXC1hbmRcLXNpbGtcLXRvXC1iZVwtbGFpZFwtYW5kXC1hdHRhY2hlZFwtZWFjaFwtb3RoZXI7CivkiZAgPCBhXC10aGluXC1hbmRcLWxvbmdcLXN0cmlwXC1vZlwtYmFtYm9vXC1mb3JcLW1ha2luZ1wtYmFza2V0czsKK+SIuyA8IGFcLWhlYXZ5XC1tYXRzXC1vZlwtYmFtYm9vXC11c2VkXC1mb3JcLWRlZXBcLXdhdGVyXC1maXNoaW5nOwor5IegIDwgd3JlbmNoXC10b1wtYWRqdXN0XC10aGVcLXN0cmluZ1wtb25cLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor5ISMIDwgdG9cLXBlcmZvcm1cLXJpdGllc1wtaW5cLWhvbm9yXC1vZlwtdGhlXC1hbmNlc3RyYWxcLXRlbXBsZTsKK+SDpiA8IGFcLWZsYXRcLWFuZFwtZ3JlYXRcLXJvY2tcLXBlb3BsZVwtc3F1YXRcLW9yXC1jcm91Y2hcLW9uXC1pdDsKK+O7gCA8IGZpbmVcLXN0b25lXC13aGljaFwtaXNcLWxpdHRsZVwtbGVzc1wtdmFsdWFibGVcLXRoYW5cLWphZGU7CivjsqwgPCBoYWlyXC1kZWNvcmF0aW9uc1wtb25cLWFcLWhlbG1ldFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor47GvIDwgZ2V0XC10aGVcLXVuYm9yblwtYmFieVwtZ29hdFwtYnlcLWtpbGxuZ1wtdGhlXC1tb3RoZXJcLWdvYXQ7CivjrrAgPCB0aGVcLXNtYWxsXC1iZWFtXC1zdXBwb3J0aW5nXC10aGVcLXJhZnRlcnNcLWF0XC10aGVcLWVhdmVzOwor46q2IDwgYVwtZHJ5XC1tZWFzdXJlXC0xMFwtb3JcLTVcLXRpbWVzXC10aGF0XC1vZlwtYVwtY2hpbmVzZVwtcGVjazsKK+WwvOi1q+mtryA8IFwoamF3YWhhcmxhbFwpXC1uZWhydVwtXChmaXJzdFwtcHJpbWVcLW1pbmlzdGVyXC1vZlwtaW5kaWFcKTsKK+OflyA8IG5hbWVcLW9mXC1hXC1zbWFsbFwtcHJpbmNpcGFsaXR5XC1pblwtd2hhdFwtaXNcLW5vd1wtc2hhbnhpOwor5pKl5rWq6byTIDwgYVwtZHJ1bVwtc2hhcGVkXC1yYXR0bGVcLVwodXNlZFwtYnlcLXBlZGxhcnNcLW9yXC1hc1wtYVwtdG95XCk7CivlsJbplqPliJfls7YgPCBzZW5rYWt1XC1pc2xhbmRzXC1cKGphcGFuZXNlXC1uYW1lXC1mb3JcLWRpYW95dVwtaXNsYW5kc1wpOwor5pys5pyrIDwgdGhlXC13aG9sZVwtY291cnNlXC1vZlwtYW5cLWV2ZW50XC1mcm9tXC1iZWdpbm5pbmdcLXRvXC1lbmQ7CivpoJPmjKsgPCB3aXRoXC1zeW5jb3BhdGVkXC1jYWRlbmNlXC1cKGJydXNoXC1zdHJva2VcLWluXC1wYWludGluZ1wpOwor57at5ZC+54i+5pePIDwgdGhlXC11eWd1clwtXCh1aWdodXJcKVwtbmF0aW9uYWxpdHlcLFwtbGl2aW5nXC1pblwteGluamlhbmc7CivniYjnlasgPCBhXC1waWN0dXJlXC1wcmludGVkXC1mcm9tXC1hblwtZW5ncmF2ZWRcLW9yXC1ldGNoZWRcLXBsYXRlOwor6YG/6KuxIDwgdGFib29cLWFnYWluc3RcLXVzaW5nXC10aGVcLXBlcnNvbmFsXC1uYW1lc1wtb2ZcLWVtcGVyb3JzOwor5oyJ5LiL6JGr6JiG5rWu6LW355OiIDwgc29sdmVcLW9uZVwtcHJvYmxlbVwtb25seVwtdG9cLWZpbmRcLWFub3RoZXJcLWNyb3BwaW5nXC11cDsKK+S8vSA8IHRyYW5zY3JpcHRpb25cLW9mXC1zYW5za3JpdFwtJydnaGEnJ1wtaW5cLWJ1ZGRoaXN0XC10ZXh0czsKK+WxoyA8IHN0cmF3XC1zYW5kYWxzXC1vclwtc2xpcHBlcnNcLXRoYXRcLWhhdmVcLW5vXC1oZWVsXC1iYWNrczsKK+WMl+Wkp+iNkiA8IHRoZVwtZ3JlYXRcLW5vcnRoZXJuXC13aWxkZXJuZXNzXC1cKGluXC1ub3J0aGVyblwtY2hpbmFcKTsKK+atpuadviA8IHd1c29uZ1wsXC1uYW1lXC1vZlwtYVwtcGVyc29uXCxcLWFcLWhlcm9cLWluXC1zaHVpXC1odVwtemh1YW47CivljYHkupTlpKcgPCAxXC01dGhcLXBhcnR5XC1jb25ncmVzc1wtXChvZlwtY2hpbmVzZVwtY29tbXVuaXN0XC1wYXJ0eVwpOwor5p2O5YWJ6ICAIDwgbGVlXC1rdWFuXC15ZXdcLVwoZm9ybWVyXC1wcmltZVwtbWluaXN0ZXJcLW9mXC1zaW5nYXBvcmVcKTsKK+ioseS7mSA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwteHVcLXhpYW5cLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+WEkOebuCA8IGF0dGVuZGFudFwtb2ZcLXRoZVwtYnJpZGVcLW9yXC1icmlkZWdyb29tXC1hdFwtYVwtd2VkZGluZzsKK+ijnOeAiSA8IHJlaW5mb3JjaW5nXC1hbmRcLXJlZHVjaW5nXC1tZXRob2RzXC1cKGluXC1hY3VwdW5jdHVyZVwpOwor5Y2X6I+v5pep5aCxIDwgc291dGhcLWNoaW5hXC1tb3JuaW5nXC1wb3N0XC1cKG5ld3NwYXBlclwtaW5cLWhvbmdcLWtvbmdcKTsKK+W5ueS6iyA8IGFkbWluaXN0cmF0aXZlXC1zZWNyZXRhcnlcLVwoaW5cLWNoYXJnZVwtb2ZcLXNvbWV0aGluZ1wpOwor55eF5YWl6IaP6IKTIDwgdGhlXC1kaXNlYXNlXC1oYXNcLWF0dGFja2VkXC10aGVcLXZpdGFsc1wtXC1cLWJleW9uZFwtY3VyZTsKK+W3q+WzvSA8IHd1eGlhXC1nb3JnZVwsXC1pblwtdGhlXC1jaGFuZ2ppYW5nXC1yaXZlclwtdGhyZWVcLWdvcmdlczsKK+a8jiA8IGFcLXBsYWNlXC13aGVyZVwtc21hbGxcLXN0cmVhbXNcLWZsb3dcLWludG9cLWFcLWxhcmdlXC1vbmU7CivmipjnrYYgPCBhZ2FpbnN0XC10aGVcLWJyaXN0bGVzXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7Civmqr4gPCBncmFzc3lcLXBsYW50XC13aXRoXC1maWJyZXNcLWZyb21cLXdoaWNoXC1jbG90aFwtaXNcLW1hZGU7CivlsIjnt5ogPCBzcGVjaWFsXC1wdXJwb3NlXC1waG9uZVwtbGluZVwtb3JcLWNvbW11bmljYXRpb25zXC1saW5rOwor5ZyW5YWLIDwgXChnYXJ5XC1sXC5cKVwtdG9va2VyXC1cKG1vdG9yb2xhXC1jaGFpcm1hblwtb2ZcLXRoZVwtYm9hcmRcKTsKK+SwjCA8IHRvXC1iaW5kXC10aGVcLWhhaXJcLWluXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7CivkqbUgPCB0YW5uZXJcLXdob1wtbWFkZVwtdGhlXC1sZWF0aGVyXC1kcnVtXC1pblwtYW5jaWVudFwtdGltZXM7CivkurrmsJHooYzli5Xpu6ggPCBwZW9wbGUnJ3NcLWFjdGlvblwtcGFydHlcLVwocnVsaW5nXC1wYXJ0eVwtaW5cLXNpbmdhcG9yZVwpOwor5JqZIDwgYVwtc3Bvb25cLWZvclwtY29va2VkXC1yaWNlXC1tYWRlXC1vZlwtaG9yblwtb2ZcLWFuXC1hbmltYWw7CivkjLMgPCBhXC1raW5kXC1vZlwtdW5yZWZpbmVkXC1vclwtdW5wb2xpc2hlZFwtc2lsa2VuXC10ZXh0aWxlczsKK+SKuiA8IGFuXC1pbXBsZW1lbnRcLXRvXC1kcmF3XC1vclwtdG9cLWNvbGxlY3RcLXJvcGVzXC1vclwtY29yZHM7CivkiYMgPCBzbGlwZWRcLW9wZW5cLWJhbWJvb1wtd2l0aFwtdGhlXC1qb2ludHNcLXVzZWRcLWFzXC1hblwtb2FyOwor5ImAIDwgcmVjdGFuZ3VsYXJcLWNoZXN0XC1vclwtYm94XC13b3ZlblwtZnJvbVwtYmFtYm9vXC1zdHJpcHM7CivkhIsgPCB0b1wtcHJheVwtZm9yXC1wcmV2ZW50aW5nXC1vclwtZm9yZXN0YWxsaW5nXC1jYWxhbWl0aWVzOwor5IOuIDwgYVwtc3RvbmVcLWJ1aWxkXC1oeWRyYXVsaWNcLW1lYXN1cmVzXC1pblwtYW5jaWVudFwtdGltZXM7Civjvr8gPCByb2FyXC1vZlwtYXN0aG1hXC1vclwtZXhwZWN0b3JhdGVcLWZyb21cLWFcLWR5aW5nXC1wZXJzb247Civju6ggPCBpbmVcLXN0b25lXC13aGljaFwtaXNcLWxpdHRsZVwtbGVzc1wtdmFsdWFibGVcLXRoYW5cLWphZGU7CivjupAgPCBnZW5lcmFsbHlcLWNhbGxlZFwtZm9yXC1taW5vcml0eVwtZ3JvdXBzXC1pblwtb2xkXC1jaGluYTsKK+OvgiA8IHBpbGxhclwtb3JcLXBvc3RcLW9mXC1hXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47Civjn4sgPCBkZWVwXC1hbmRcLWxldmVsXC1ncm91bmRcLWd1bGx5XC1hdFwtdGhlXC1mb290XC1vZlwtYVwtaGlsbDsKK+OeqiA8IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLXRoZVwtbW91bnRhaW5cLWlzXC1mbGF0XC1hbmRcLXNtb290aDsKK+aWnOmJpCA8IFwoZG93bndhcmRzXC1yaWdodFwtY29uY2F2ZVwtaG9va2VkXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6LGO5oqYIDwgXChkb3dud2FyZHNcLXN0YXJ0aW5nXC1yaWdodFwtYW5nbGVcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivogIHlhYQgPCAnJ29sZFwtY2hhcCcnXC1cKGZvcm1cLW9mXC1hZGRyZXNzXC1iZXR3ZWVuXC1tYWxlXC1mcmllbmRzXCk7CivntITnv7Dmi4nosp0gPCBqb2huXC1yYWJlXC1cKGdlcm1hblwtZXlld2l0bmVzc1wtdG9cLW5hbmppbmdcLW1hc3NhY3JlXCk7CivooYUgPCBjb25zZWNyYXRlXC1zYWNyaWZpY2lhbFwtdmVzc2Vsc1wtYnlcLXNtZWFyaW5nXC1ibG9vZDsKK+iZoiA8IG5hbWVcLW9mXC1hbmNpZW50XC1mZXVkYWxcLXN0YXRlXC1pblwtc2hlbnhpXC1hbmRcLWh1bmFuOwor6LeR5rGf5rmWIDwgdG9cLW1ha2VcLWFcLWxpdmluZ1wtYXNcLWFcLXRyYXZlbGxpbmdcLXBlcmZvcm1lclwsXC1ldGNcLjsKK+S6pOaYk+mhjSA8IHN1bVwtb3JcLXZvbHVtZVwtb3JcLWFtb3VudFwtb2ZcLWJ1c2luZXNzXC10cmFuc2FjdGlvbnM7CivpvYkgPCBzdG9wcGFnZVwtb2ZcLXRoZVwtbm9zZVwtdG9cLXNwZWFrXC13aXRoXC1hXC1uYXNhbFwtdHdhbmc7CivmqavnrYYgPCBicmlzdGxlc1wtbHlpbmdcLWRvd25cLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+S4jeaVoui2iumbt+axoOS4gOatpSA8IGRhcmVcLW5vdFwtZ29cLW9uZVwtc3RlcFwtYmV5b25kXC10aGVcLXByZXNjcmliZWRcLWxpbWl0Owor5o6h6LO8IDwgbWFrZVwtcHVyY2hhc2VzXC1mb3JcLWFuXC1vcmdhbml6YXRpb25cLW9yXC1lbnRlcnByaXNlOwor5q2j5ZyoIDwgaW5cLXRoZVwtcHJvY2Vzc1wtb2ZcLVwoZG9pbmdcLXNvbWV0aGluZ1wtb3JcLWhhcHBlbmluZ1wpOwor6KSvIDwgY2hpbGRyZW4nJ3NcLWdhcm1lbnRzXC5cLWFcLW1hdFwtZm9yXC13cmFwcGluZ1wtZ2FybWVudHM7CivmnpfosZDmraMgPCBsaW5cLWZlbmdcLWNoZW5nXC1cKHRhaXdhblwtbWluaXN0ZXJcLW9mXC10aGVcLWludGVyaW9yXCk7CivloLHlnIsgPCBkZWRpY2F0ZVwtb25lc2VsZlwtdG9cLXRoZVwtc2VydmljZVwtb2ZcLW9uZScnc1wtY291bnRyeTsKK+iRo+W7uuiPryA8IHR1bmdcLWNoZWVcLWh3YVwtXChob25nXC1rb25nXC1sZWFkZXJcLWFmdGVyXC1qdWx5XC0xOTk3XCk7CivnrYbop7ggPCBicnVzaFwtc3Ryb2tlXC1pblwtY2hpbmVzZVwtcGFpbnRpbmdcLWFuZFwtY2FsbGlncmFwaHk7CivkuI3noLTkuI3nq4sgPCB3aXRob3V0XC1kZXN0cnVjdGlvblwtdGhlcmVcLWNhblwtYmVcLW5vXC1jb25zdHJ1Y3Rpb247CivljZfkuqzot68gPCBuYW5qaW5nXC1zdFwuXCxcLWxhcmdlXC1jb21tZXJjaWFsXC1zdHJlZXRcLWluXC1zaGFuZ2hhaTsKK+aioCA8IGFcLXNtYWxsXC1iZWFtXC1zdXBwb3J0aW5nXC10aGVcLXJhZnRlcnNcLWF0XC10aGVcLWVhdmVzOwor5pGjIDwgYVwtaGFuZGZ1bFwuXC10b1wtcGlja1wtdXBcLXdpdGhcLXRoZVwtZmluZ2Vyc1wuXC10b1wtc2VpemU7CivloJggPCBhXC1yYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkXC13aGljaFwtYWN0c1wtYXNcLWFcLWR5a2U7CivktpwgPCB0aGVcLXByb2Nlc3NcLXRvXC13aGl0ZW5cLXRoZVwtaXZvcnlcLW9yXC1lbGVwaGFudFwtdHVzazsKK+SuiSA8IGhvcnNlc1wta2VwdFwtYXRcLWFcLWNvdXJpZXJcLXN0YXRpb25cLWluXC1mb3JtZXJcLXRpbWVzOwor5KK1IDwgbmFtZVwtb2ZcLWFuXC1vbGRcLWNvdW50cnlcLWluXC10b2RheScnc1wtaHViZWlcLXByb3ZpbmNlOwor5KGfIDwgYVwtcmluZ1wtb2ZcLXRoZVwtaG9yaXpvbnRhbFwtZnJvbnRcLWJhclwtb25cLWFcLWNhcnJpYWdlOwor5J6bIDwgZGFuY2luZ1wtb2ZcLWFcLWVhc3Rlcm5cLW1pbm9yaXR5XC1ncm91cFwtaW5cLW9sZFwtY2hpbmE7CivknYwgPCBhXC1waWdcLXNlZWtcLWZvclwtZm9vZFwtdGhyb3VnaFwtZGlnZ2luZ1wtb25cLXRoZVwtZWFydGg7CivkkoEgPCBhXC1zbWFsbFwtYm9hdFwtY29ubmVjdGVkXC10b1wtdGhlXC1iYWNrXC1vZlwtYVwtYmlnXC1ib2F0Owor5ImLIDwgYVwtdmFyaWV0eVwtb2ZcLWJhbWJvb1wtc2hvb3RzXC10aGF0XC1zcHJvdXRcLWluXC13aW50ZXI7CivkiJQgPCB3aGlzdGxlXC1tYWRlXC1vZlwtcmVlZFwtd2l0aG91dFwtaG9sZXNcLWZvclwtZmluZ2VyaW5nOwor472ZIDwgb2ZmaWNpYWxcLWluXC1jaGFyZ2VcLW9mXC1mYXJtbGFuZHNcLWluXC1hbmNpZW50XC10aW1lczsKK+OzjiA8IGd1aWRlXC1vclwtbGVhZFwtdG9cLW1ha2VcLXRoZVwtd2F0ZXJcLWZsb3dpbmdcLXNtb290aGx5Owor47KqIDwgd29vbGVuXC1ibGFua2V0XC13aXRoXC1kZWNvcmF0aXZlXC1kZXNpZ25cLW9yXC1wYXR0ZXJuOwor47KoIDwgYVwtZGVjb3JhdGl2ZVwtZmluZVwtYmxhbmtldFwtb25cLXRoZVwtdG9wXC1vZlwtYVwtc2FkZGxlOwor46eLIDwgdG9cLWxlbmd0aGVuXC1hbmRcLWV4dGVudWF0ZVwtXC1cLVwtYXNcLWluXC1tYWtpbmdcLW5vb2RsZTsKK+OgnCA8IHlvdW5nXC1raWRzXC1zbWFydFwtYW5kXC1mYW1pbGlhclwtd2l0aFwtaHVtYW5cLWFmZmFpcnM7Civkvr/kurogPCBzb21lYm9keVwtd2hvXC1oYXBwZW5zXC10b1wtYmVcLW9uXC1oYW5kXC1mb3JcLWFuXC1lcnJhbmQ7CivjmbEgPCBlYXJ0aGVud2FyZVwtdXNlZFwtdG9cLWJha2VcLWNha2VzXC1pblwtbm9ydGhlcm5cLWNoaW5hOwor6Kyd6L6bIDwgY2hlYVwtc2ltXC1cKGNhbWJvZGlhblwtbmF0aW9uYWxcLWFzc2VtYmx5XC1wcmVzaWRlbnRcKTsKK+WklumbuyA8IHJlcG9ydHNcLWZyb21cLWZvcmVpZ25cLVwobm9uXC1jaGluZXNlXClcLW5ld3NcLWFnYW5jaWVzOwor5ZaBIDwgdGhlXC1tb3V0aFwtb2ZcLWFcLWZpc2hcLWF0XC10aGVcLXN1cmZhY2VcLW9mXC10aGVcLXdhdGVyOwor5o+OIDwgdG9cLXB1bGxcLXVwXC10aGVcLXNsZWV2ZXNcLWFuZFwtc3RyZXRjaFwtb3V0XC10aGVcLWFybXM7CivnrqwgPCB0aGVcLWN1dGljbGVcLW9mXC10aGVcLWJhbWJvb1wtYVwtYnJvYWRcLWxlYXZlZFwtYmFtYm9vOwor57235LqGIDwgYVwtbW9kYWxcLXBhcnRpY2xlXC1pbmRpY2F0aW5nXC1cKGRvbicndFwtbWluZFwtaXRcLFwtb2tcKTsKK+mdnOWxsSA8IGNoZW5nXC1zYW5cLVwoZWxlY3RvcmFsXC1jb25zdGl0dWVuY3lcLWluXC1zaW5nYXBvcmVcKTsKK+WFq+S7meahjCA8IG9sZFwtZmFzaGlvbmVkXC1zcXVhcmVcLXRhYmxlXC10b1wtc2VhdFwtZWlnaHRcLXBlb3BsZTsKK+WMheeUouWIsOaItiA8IGZpeGluZ1wtb2ZcLWZhcm1cLW91dHB1dFwtcXVvdGFzXC1mb3JcLWVhY2hcLWhvdXNlaG9sZDsKK+i7viA8IGhvcml6b250YWxcLXdvb2RlblwtYmFyXC1pblwtZnJvbnRcLW9mXC1hXC1zZWRhblwtY2hhaXI7CivmipPpo68gPCBhXC1raW5kXC1vZlwtZm9vZFwtcG9wdWxhclwtYW1vbmdcLWJlbGlldmVyc1wtaW5cLWlzbGFtOwor6JCGIDwgdGhlXC1jYXN0b3JcLW9pbFwtcGxhbnRcLWFsc29cLXVzZWRcLWZvclwtb3RoZXJcLXBsYW50czsKK+WhnuaLieWHoSA8IFwoc29ubnlcKVwtc2VyYXBoaW5cLVwoaGFpdGlhblwtYW1iYXNzYWRvclwtdG9cLXRhaXdhblwpOwor6YeR5aSn5LitIDwga2ltXC1kYWVcLWp1bmdcLVwobmV3bHlcLWVsZWN0ZWRcLXByZXNpZGVudFwtb2ZcLWtvcmVhXCk7Civnmb3mj48gPCBsaW5lXC1kcmF3aW5nXC1pblwtdHJhZGl0aW9uYWxcLWlua1wtYW5kXC1icnVzaFwtc3R5bGU7CivnsKAgPCBhblwtYW5jaWVudFwtdmVzc2VsXC11c2VkXC1mb3JcLWhvbGRpbmdcLWJvaWxlZFwtZ3JhaW47CivojIPmlq/lnaYgPCBcKGRpYW5uZVwpXC1mZWluc3RlaW5cLVwodXNcLXNlbmF0b3JcLWZyb21cLWNhbGlmb3JuaWFcKTsKK+mnsemnneelpeWtkCA8IG5hbWVcLW9mXC1hXC1ub3ZlbFwsXC1sdW9cLXR1b1wteGlhbmd6aVwsXC1ieVwtbGFvXC1zaGVcLeiAgeiIjTsKK+SysCA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC10aGVcLXBpZ2Vvblwtb3JcLXRoZVwtdHVydGxlXC1kb3ZlOwor6IC256mM5Z+6552j5pyr5LiW6IGW5b6S5pWZ5pyDIDwgdGhlXC1jaHVyY2hcLW9mXC1qZXN1c1wtY2hyaXN0XC1vZlwtbGF0dGVyXC1kYXlcLXNhaW50czsKK+SdpSA8IHRvXC1yb2FyXC1vclwtaG93bFwtZnJhbnRpY1wtYmFya3NcLW9mXC1kb2dzXC1vclwtd29sdmVzOwor5JSkIDwgdGhlXC1sdXNoXC1hbmRcLWx1eHVyaWFudFwtb2ZcLXRoZVwtZ3Jhc3NcLWFuZFwtZmxvd2VyczsKK+a2suaFi+awtCA8IGxpcXVpZFwtd2F0ZXJcLVwoYXNcLW9wcG9zZWRcLXRvXC1zdGVhbVwtb3JcLWljZVwsXC1lXC5nXC5cKTsKK+OvriA8IGFcLWtpbmRcLW9mXC10cmVlXC13aXRoXC1iaWdcLWxlYXZlc1wtYW5kXC1pblwtcmVkXC1jb2xvcjsKK+mAvOS4iuaokeWxsSA8IGJlXC1kcml2ZW5cLXRvXC1qb2luXC10aGVcLWxpYW5nc2hhblwtbW91bnRhaW5cLXJlYmVsczsKK+OUjSA8IGFcLWhpbmdlZFwtc2hlYXJcLW9yXC1sb25nXC1rbmlmZVwtZm9yXC1jdXR0aW5nXC1mb2RkZXI7Civop6PmlL7ou40gPCBwZW9wbGUnJ3NcLWxpYmVyYXRpb25cLWFybXlcLVwoaWVcLFwtdGhlXC1jaGluZXNlXC1hcm15XCk7CivllJDlsbEgPCB0YW5nXC1zaGFuXC1cKGFcLWNoaW5lc2VcLWNpdHlcLWluXC1oZWJlaVwt5rKz5YyXXC1wcm92aW5jZVwpOwor5bi45Lu755CG5LqL5ZyLIDwgcGVybWFuZW50XC1tZW1iZXJcLXN0YXRlXC1cKG9mXC11blwtc2VjdXJpdHlcLWNvdW5jaWxcKTsKK+eSnCA8IGFcLXNlbWljaXJjdWxhclwtamFkZVwtb3JuYW1lbnRcLXVzZWRcLWFzXC1hXC1wZW5kYW50Owor6YG/5auMIDwgYXZvaWRcLWRvaW5nXC1hbnl0aGluZ1wtdGhhdFwtbWF5XC1hcm91c2VcLXN1c3BpY2lvbjsKK+i2mee0q+mZvSA8IHpoYW9cLXppeWFuZ1wtXChmb3JtZXJcLWNoaW5lc2VcLWxlYWRlcnNoaXBcLWZpZ3VyZVwpOwor5aCx5bmVIDwgYW5ub3VuY2VcLXRoZVwtaXRlbXNcLW9uXC1hXC1cKHRoZWF0cmljYWxcKVwtcHJvZ3JhbW1lOwor6KusIDwgdG9cLW9wZW5cLXRvXC1iZWdpblwtdG9cLWV4cGxhaW5cLXRvXC1pbmZvcm1cLWFcLWxldHRlcjsKK+imquWutiA8IHBhcmVudHNcLW9mXC1vbmUnJ3NcLWRhdWdodGVyXC1pblwtbGF3XC1vclwtc29uXC1pblwtbGF3Owor5Y2X6L2F5YyX6L2NIDwgXChmaWdcLlwpXC1hY3RcLWluXC1hXC13YXlcLXRoYXRcLWRlZmVhdHNcLW9uZScnc1wtcHVycG9zZTsKK+eMuSA8IHdpbGRcLWFuaW1hbFwtbWVudGlvbmVkXC1pblwtc2hvcnRcLXN0b3J5XC1ieVwtbHVcLXh1bjsKK+eKvCA8IGFcLWZpZXJjZVwtbW9uZ29saWFuXC13b2xmXC1kcmFnb24nJ3NcLWhlYWRcLW9uXC1yb29mczsKK+a5kyA8IGFuXC1hZmZsdWVudFwtb2ZcLXRoZVwtcml2ZXJcLXlhbmd0emVcLW5lYXJcLWtpdWtpYW5nOwor5q2aIDwgdXNlZFwtaW5cLW5hbWVcLW9mXC1mYW1vdXNcLWtvcmVhblwtcGFpbnRlclwtY2VuZ1wtc2VuOwor5L+d5aSW5bCx6YarIDwgXChvZlwtYVwtcHJpc29uZXJcKVwtcmVsZWFzZWRcLWZvclwtbWVkaWNhbFwtdHJlYXRtZW50Owor5Zac57OWIDwgc3dlZXRcLWdpdmVuXC1vblwtYVwtaGFwcHlcLW9jY2FzaW9uXC1cKGVzcFwuXC13ZWRkaW5nXCk7Civmi5zlo70gPCBjb25ncmF0dWxhdGVcLWFuXC1lbGRlcmx5XC1wZXJzb25cLW9uXC1oaXNcLWJpcnRoZGF5Owor6JK46JK45pel5LiKIDwgYmVjb21pbmdcLW1vcmVcLXByb3NwZXJvdXNcLXdpdGhcLWVhY2hcLXBhc3NpbmdcLWRheTsKK+S2myA8IHRvXC1zZXBhcmF0ZVwtdGhlXC1tZWF0XC1mcm9tXC10aGVcLWJvbmVzXC13aXRoXC10ZWV0aDsKK+SznCA8IGFcLWtpbmRcLW9mXC1iaXJkXC13aGljaFwtc2hhcmVzXC1pdHNcLW5lc3RcLXdpdGhcLXJhdHM7Civkso0gPCBhXC1wZXJjaFwtbGlrZVwtZmlzaFwtd2l0aFwtd2hpdGVcLWJvZHlcLWFuZFwtcmVkXC10YWlsOwor5Km2IDwgc2FkZGxlXC1hbmRcLXJlaW5cLWV0Y1wuXC1mb3JcLXRoZVwtaW1wZXJpYWxcLWNhcnJpYWdlOwor54OP6a2v5pyo6b2KIDwgdXJ1bXFpXC1cKGNhcGl0YWxcLW9mXC14aW5qaWFuZ1wtYXV0b25vbW91c1wtcmVnaW9uXCk7CivlronlnJ/ph43pgbcgPCBoYXRlXC10b1wtbGVhdmVcLWFcLXBsYWNlXC13aGVyZVwtb25lXC1oYXNcLWxpdmVkXC1sb25nOwor5Je9IDwgYVwtc21hbGxcLWdhZGZseVwtdGhhdFwtc3Vja1wtYmxvb2RcLW9mXC1ob3JzZVwtb3JcLWNvdzsKK+SJtCA8IGFcLWJhbWJvb1wtd2FyZVwtdG9cLWNvbGxlY3RcLWFuZFwta2VlcFwtc29tZXRoaW5nXC1pbjsKK+SJhSA8IHNtYWxsXC1iYW1ib29cLXdob3NlXC1qb2ludHNcLWFyZVwtdGhyZWVcLWZlZXRcLWFwYXJ0Owor5ISmIDwgdG9cLXB1dFwtZm9ydGhcLWVhcnNcLWFuZFwtdG9cLWJsb3Nzb21cLW9mXC10aGVcLWdyYWluczsKK+aUv+W6nOapn+mXnOmWi+aUvuezu+e1seS6kumAo+e4veWJhyA8IGdvdmVybm1lbnRcLW9wZW5cLXN5c3RlbVwtaW50ZXJjb25uZWN0aW9uXC1wcm9maWxlOwor472pIDwgY29ubmVjdGVkXC1iYW5rc1wtb2ZcLWVhcnRoXC1vclwtcGF0aHNcLWluXC10aGVcLWZpZWxkOwor5Lim6KGMIDwgaW5cLXBhcmFsbGVsXC1cW2RldmVsb3BtZW50XCxcLWltcGxlbWVudGF0aW9uXCxcLWV0Y1xdOwor47mDIDwgdHdvXC1icmluZGxlZFwtY293c1wtdG9cLXBsb3VnaFwtZmFjZVwtdG9cLWVhY2hcLW90aGVyOwor5Lyv5p2wIDwgXChzYW11ZWxcKVwtYmVyZ2VyXC1cKHVzXC1uYXRpb25hbFwtc2VjdXJpdHlcLWFkdmlzb3JcKTsKK+O2nyA8IGFuXC1hbmNpZW50XC1uZW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGlcLWFuZFwtaGViZWk7CivmnbHnm58gPCBhc2VhblwtXChhc3NvY2lhdGlvblwtb2ZcLXNvdXRoZWFzdFwtYXNpYW5cLW5hdGlvbnNcKTsKK+OyiCA8IHRoZVwtbmFtZVwtb2ZcLXRoZVwtbXVzaWNcLW9mXC10aGVcLWxlZ2VuZGFyeVwtZW1wZXJvcjsKK+OskCA8IGFcLXN0YXRlXC1kdXJpbmdcLXRoZVwtcGVyaW9kXC1vZlwtc3ByaW5nXC1hbmRcLWF1dHVtbjsKK+OhmyA8IG5hbWVcLWZvclwtYVwtd29ya21hblwtd2hvXC1hcHBseVwtY29sb3JcLWluXC1wYWludGluZzsKK+W3peWVhumKgOihjCA8IGluZHVzdHJpYWxcLWFuZFwtY29tbWVyY2lhbFwtYmFua1wtb2ZcLWNoaW5hXC1cKGljYmNcKTsKK+OfoiA8IHRoZVwtcm9ja3NcLW9uXC10aGVcLWhpbGxzXC1hcmVcLW9mXC1kaWZmZXJlbnRcLXNoYXBlczsKK+OcvCA8IGNoaWxkcmVuXC1vZlwtb25lJydzXC1icm90aGVyXC1cLVwtXC1uZXBoZXdzXC1vclwtbmllY2VzOwor5pu+57aTIDwgXChyZWZlcnNcLXRvXC1zb21ldGhpbmdcLXRoYXRcLWhhcHBlbmVkXC1wcmV2aW91c2x5XCk7CivjlL0gPCBhXC1raW5kXC1vZlwtd2luZVwtcG90XC1vclwtamFyXC11c2VkXC1pblwtYW5jaWVudFwtdGltZTsKK+OTgyA8IHRvXC1zYWNyaWZpY2VcLWJ5XC1wb3VyaW5nXC1vdXRcLWFcLWxpYmF0aW9uXC1vZlwtd2luZTsKK+ORniA8IGFcLW1haWRcLXdob1wtYWNjb21wYW5pZXNcLWFcLWJyaWRlXC10b1wtaGVyXC1uZXdcLWhvbWU7Civlj6/oposgPCBpdFwtY2FuXC1jbGVhcmx5XC1iZVwtc2VlblwtXCh0aGF0XC10aGlzXC1pc1wtdGhlXC1jYXNlXCk7CivkuovoiIfpoZjpgZUgPCB0aGluZ3NcLWRvbicndFwtdHVyblwtb3V0XC10aGVcLXdheVwteW91XC13YW50XC1vclwtcGxhbjsKK+aFsOWVjyA8IGV4cHJlc3NcLXN5bXBhdGh5XCxcLWdyZWV0aW5nc1wsXC1jb25zb2xhdGlvblwsXC1ldGNcLjsKK+a1t+W+tyA8IGh5ZGVcLVwoZWdcLFwtaG91c2VcLWp1ZGljaWFyeVwtY2hhaXJtYW5cLWhlbnJ5XC1oeWRlXCk7CivlvLXnh4jntZDntrUgPCBiZVwtZGVjb3JhdGVkXC13aXRoXC1sYW50ZXJuc1wtYW5kXC1jb2xvcmVkXC1iYW5uZXJzOwor6ZaJ6ZaA5oCd6YGOIDwgc2h1dFwtb25lc2VsZlwtdXBcLWFuZFwtcG9uZGVyXC1vdmVyXC1vbmUnJ3NcLW1pc3Rha2VzOwor576F5pavIDwgcm90aFwtXChlZ1wsXC1ocndcLWV4ZWN1dGl2ZVwtZGlyZWN0b3JcLWtlbm5ldGhcLXJvdGhcKTsKK+mWiemXnOiHquWuiCA8IGNsb3NlXC10aGVcLWNvdW50cnlcLXRvXC1pbnRlcm5hdGlvbmFsXC1pbnRlcmNvdXJzZTsKK+aXgeiBvSA8IGJlXC1hXC12aXNpdG9yXC1cKGF0XC1hXC1tZWV0aW5nXCxcLWNsYXNzXCxcLXRyaWFsXCxcLWV0Y1wpOwor5LqS6YCa5oCnIDwgaW50ZXJvcGVyYWJpbGl0eVwtXChvZlwtY29tbXVuaWNhdGlvbnNcLWVxdWlwbWVudFwpOwor55WyIDwgdG9cLWN1bHRpdmF0ZVwtbGFuZFwtYnlcLWZpcnN0XC1zZXR0aW5nXC1maXJlXC10b1wtaXQ7Civnr5ogPCByb3VuZFwtb3JcLW92YWxcLWNvdmVyZWRcLWJhc2tldHNcLXdpdGhcLXNob3J0XC1sZWdzOwor5o6o6L6tIDwgdG9cLWRlY2xpbmVcLVwoYW5cLWFwcG9pbnRtZW50XCxcLWludml0YXRpb25cLFwtZXRjXC5cKTsKK+S4jemBv+iJsemaqiA8IHNocmlua1wtb3JcLWZsaW5jaFwtZnJvbVwtbm9cLWRpZmZpY3VsdHlcLW9yXC1kYW5nZXI7Civnmb3nl6IgPCBkeXNlbnRlcnlcLWNoYXJhY3Rlcml6ZWRcLWJ5XC13aGl0ZVwtbXVjb3VzXC1zdG9vbDsKK+iPr+S9lyA8IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWRvY3RvclwtaW5cLW9sZFwtdGltZXNcLFwtaHVhXC10dW87CivnspQgPCBjYWtlc1wtbWFkZVwtZnJvbVwtcmljZVwtZmxvdXJcLXR3aXN0ZWRcLWludG9cLXJpbmdzOwor5oikIDwgdG9cLWluZnJpbmdlXC1hXC10cmFkZVwtbWFya1wtdG9cLXBsZWRnZVwtYW5cLWFydGljbGU7CivpmL/ml7rmm7LmspsgPCBuZ2F3YW5nXC1jaG9lcGVsXC1cKHRpYmV0YW5cLFwtZnVsbGJyaWdodFwtc2Nob2xhclwpOwor5qOS5qeMIDwgd29vZGVuXC1jbHViXC1cKHVzZWRcLXRvXC1iZWF0XC1jbG90aGVzXC1pblwtd2FzaGluZ1wpOwor5YWo5paX54WlIDwgY2h1blwtZG9vXC1od2FuXC1cKGZvcm1lclwtc291dGhcLWtvcmVhblwtcHJlc2lkZW50XCk7CivkuaQgPCBmaXJzdFwtY2hhcmFjdGVyXC1vZlwta29yZWFuXC1wbGFjZVwtbmFtZVwtJydoYWxwaG8nJzsKK+S2qCA8IGluXC10aGVcLW1hbm5lclwtYVwtdG9vdGhsZXNzXC1wZXJzb25cLWNoZXdpbmdcLWZvb2Q7CivkrpsgPCBleHRyYVwtaG9yc2VcLWhhcm5lc3NlZFwtYnlcLXRoZVwtc2lkZVwtb2ZcLXRoZVwtdGVhbTsKK+SjoCA8IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KOfIDwgbmFtZVwtb2ZcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+SgkiA8IGNvdXJ0ZXN5XC1vZlwtYVwtbWlub3JpdHlcLWdyb3VwXC1pblwtYW5jaWVudFwtdGltZXM7CivknbAgPCB0b1wtc3RvcmVcLW9yXC10b1wtYWNjdW11bGF0ZVwtcmljaGVzXC1vclwtdmFsdWFibGVzOwor5JyxIDwgbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civkk50gPCBjaGluZXNlXC1wZW5uaXNldHVtXClcLXBlbm5pc2V0dW1cLWFsb3BlY3Vyb2lkZXNcKTsKK+SLiSA8IGFcLW51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXByYWN0aWNhbGx5XC1ldmVyeXRoaW5nOwor5IqjIDwgbGlnaHRcLXllbGxvd1wtZHVzdFwtbGlrZVwtZnVuZ29pZFwtZ3Jvd3RoXC1vblwtd2luZTsKK+SHkiA8IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXBlcmlvZGljXC10ZXJtc1wtb3JcLWV2ZW50czsKK+O/lyA8IGRpc2Vhc2VcLW9mXC10aGVcLXByaXZhdGVcLXBhcnRcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor476rIDwgaGVtaXBsZWdpYVwtXC1cLVwtcGFyYWx5c2lzXC1vZlwtaGFsZlwtb2ZcLW9uZScnc1wtYm9keTsKK+O7niA8IGZsb3VyaXNoaW5nXC1hbmRcLXJhZGlhbnRcLW9mXC10aGVcLWNvbG9yZnVsXC1qYWRlczsKK+O5sSA8IG5hbWVcLW9mXC1hXC1kb2dcLWluXC10aGVcLXBlcmlvZFwtb2ZcLXdhcnJpbmdcLXN0YXRlczsKK+OypSA8IGFcLWtpbmRcLW9mXC13b29sZW5cLXRleHRpbGVzXC13aXRoXC1jdXJ2ZWRcLXBhdHRlcm47CivjrbkgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+OjryA8IHRoZVwtZHJlc3Nlc1wtdG9zc1wtYW5kXC1mbHlpbmdcLWFib3V0XC1pblwtdGhlXC13aW5kOwor46KvIDwgYm93c1wtdXNlZFwtYnlcLXRoZVwtc29uXC1vZlwtaGVhdmVuXC1cLVwtXC10aGVcLWVtcGVyb3I7CivjoYogPCBhXC1raW5kXC1vZlwtY2FwXC13b3JuXC1ieVwtYW5cLW9mZmljZXJcLWluXC1vbGRcLWNoaW5hOwor5Lq65rCR5aSn5pyD5aCCIDwgZ3JlYXRcLWhhbGxcLW9mXC10aGVcLXBlb3BsZVwsXC1hdFwtdGlhbmFubWVuXC1zcXVhcmU7CivjmasgPCBhXC1mb3VudGFpblwtb3JcLXNwcmluZ1wtb3V0XC1mcm9tXC10aGVcLXVuZGVyZ3JvdW5kOwor45mNIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivmjqLot6/ogIUgPCBwYXRoZmluZGVyXC1cKHNwYWNlXC1jcmFmdFwtc2VudFwtdG9cLW1hcnNcLWJ5XC1uYXNhXCk7Civnlavom4fmt7votrMgPCBydWluXC10aGVcLWVmZmVjdFwtYnlcLWFkZGluZ1wtd2hhdFwtaXNcLXN1cGVyZmx1b3VzOwor5bSU5Lqe55CzIDwgY2hhcmxlc1wteWFoXC1saW5cLXRyaWVcLVwoYXJrYW5zYXNcLXJlc3RhdXJhbnRldXJcKTsKK+WMl+Wkp+ilv+a0i+WFrOe0hOe1hOe5lCA8IHRoZVwtbm9ydGhcLWF0bGFudGljXC10cmVhdHlcLW9yZ2FuaXphdGlvblwtXChuYXRvXCk7CivlsIjmoYjntYQgPCBzcGVjaWFsXC1cKGxlZ2FsXHxqdWRpY2lhbFwpXC1pbnZlc3RpZ2F0aW9uc1wtZ3JvdXA7Civku5fnvqnln7foqIAgPCBzcGVha1wtb3V0XC1vblwtYVwtbWF0dGVyXC1vZlwtcHJpbmNpcGxlXC1vclwtanVzdGljZTsKK+WFteiHqOWfjuS4iyA8IHRoZVwtYXR0YWNraW5nXC1hcm15XC1oYXNcLXJlYWNoZWRcLXRoZVwtY2l0eVwtZ2F0ZXM7CivlkJ7lkJAgPCB0b1wtdGFrZVwtaW5cLWFuZFwtc2VuZFwtb3V0XC1cKGluXC1sYXJnZVwtcXVhbnRpdGllc1wpOwor6ZKnIDwgdW5pdFwtb2ZcLW1lYXN1cmVcLWVxdWl2YWxlbnRcLXRvXC10aGlydHlcLWNhdHRpZXM7CivlprIgPCBjb25jdWJpbmVcLW9mXC1sYXN0XC1ydWxlclwtb2ZcLXRoZVwtc2hhbmdcLWR5bmFzdHk7Civnk7QgPCBjb25jYXZlXC1jaGFubmVsc1wtb2ZcLXRpbGluZ1wtYVwtbG9uZ1wtbmVja2VkXC1qYXI7CivlqrUgPCBhXC1tYWlkXC13aG9cLWFjY29tcGFuaWVzXC1icmlkZVwtdG9cLWhlclwtbmV3XC1ob21lOwor6IOZIDwgbWVhdFwtb2ZmZXJlZFwtaW5cLXNhY3JpZmljZVwtdG9cLW9uZScnc1wtYW5jZXN0b3JzOwor6J+KIDwgYVwtZmx5XC13aGljaFwtaXNcLXVzZWRcLXNpbWlsYXJseVwtdG9cLWNhbnRoYXJpZGVzOwor5pa35qmLIDwgdGhlXC1icm9rZW5cLWJyaWRnZVwtXChhdFwtd2VzdFwtbGFrZVwtaW5cLWhhbmd6aG91XCk7CivlpLHmlZfmmK/miJDlip/kuYvmr40gPCBcImZhaWx1cmVcLWlzXC10aGVcLW1vdGhlclwtb2ZcLXN1Y2Nlc3NcIlwtXChwcm92ZXJiXCk7CivmsKPlip8gPCBxaWdvbmdcLFwtYVwtc3lzdGVtXC1vZlwtZGVlcFwtYnJlYXRoaW5nXC1leGVyY2lzZXM7CivnnIHntJogPCBwcm92aW5jaWFsXC1sZXZlbFwtXChlZ1wsXC1wcm92aW5jaWFsXC1nb3Zlcm5tZW50XCk7CivmrabmiZMgPCBhY3JvYmF0aWNcLWZpZ2h0aW5nXC1pblwtY2hpbmVzZVwtb3BlcmFcLW9yXC1kYW5jZTsKK+api+acrOm+jeWkqumDjiA8IGhhc2hpbW90b1wsXC1yeXV0YXJvXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLWphcGFuXCk7CivpqLIgPCB0aGVcLWZlbWFsZVwtb2ZcLWNlcnRhaW5cLWFuaW1hbHNcLXN1Y2hcLWFzXC1ob3JzZXM7CivloLHlpLEgPCByZXBvcnRcLXRoZVwtbG9zc1wtdG9cLXRoZVwtYXV0aG9yaXRpZXNcLWNvbmNlcm5lZDsKK+S/nemkiiA8IHRha2VcLWdvb2RcLWNhcmVcLW9mXC1cKG9yXC1jb25zZXJ2ZVwpXC1vbmUnJ3NcLWhlYWx0aDsKK+W5s+S/oSA8IG9yZGluYXJ5XC1tYWlsXC1cKGFzXC1vcHBvc2VkXC10b1wtYWlyXC1tYWlsXCxcLWV0Y1wuXCk7CivliIbkuqsgPCBvYnRhaW5cLW9uZScnc1wtc2hhcmVcLVwob2ZcLXdlYWx0aFwsXC1yaWdodHNcLFwtZXRjXC5cKTsKK+e0heWgoSA8IHJlZFwtZm9ydFwtXChoaXN0b3JpY1wtYnVpbGRpbmdcLWluXC1kZWxoaVwsXC1pbmRpYVwpOwor54+TIDwgdHdvXC1oZW1pc3BoZXJpY2FsXC1vYmplY3RzXC11c2VkXC1pblwtZGl2aW5hdGlvbjsKK+WFg+WutSA8IHN3ZWV0XC1kdW1wbGluZ3NcLW1hZGVcLW9mXC1nbHV0aW5vdXNcLXJpY2VcLWZsb3VyOwor6IOM5Z+O5YCf5LiAIDwgbWFrZVwtYVwtbGFzdFwtZGl0Y2hcLXN0YW5kXC1iZWZvcmVcLXRoZVwtY2l0eVwtd2FsbDsKK+aVpyA8IHRvXC1waWNrXC11cFwtdGhpbmdcLXdpdGhcLWNob3BzdGlja3NcLW9yXC1waW5jZXJzXC47CivmiYQgPCBsYXJnZVwtcmluZ1wtb25cLWFcLWZyb250XC1kb29yXC11c2VkXC1hc1wtYVwta25vY2tlcjsKK+WrjyA8IHRoZVwtcGxhY2VcLXdoZXJlXC10aGVcLXN1cHJlbWVcLXN0b3Jlc1wtaGlzXC1ib29rczsKK+iHqOWvqyA8IHRvXC1jb3B5XC1cKGFcLW1vZGVsXC1vZlwtY2FsbGlncmFwaHlcLW9yXC1wYWludGluZ1wpOwor5pyI6aSFIDwgbW9vblwtY2FrZVwtXChlc3BcLlwtZm9yXC10aGVcLW1pZFwtYXV0dW1uXC1mZXN0aXZhbFwpOwor55m+5oSf5Lqk6ZuGIDwgYWxsXC1zb3J0c1wtb2ZcLWZlZWxpbmdzXC13ZWxsXC11cFwtaW5cLW9uZScnc1wtaGVhcnQ7CivksYEgPCBhXC1raW5kXC1vZlwtbWVkaXVtXC1zaXplZFwtZmlzaFwtZ3Jvd25cLWluXC10aGVcLXNlYTsKK+SwjyA8IHNwYXJzZVwtaGFpclwtb25cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SuhiA8IGFcLWhvcnNlXC13aXRoXC1taXhlZFwtY29sb3JcLW9mXC15ZWxsb3dcLWFuZFwtd2hpdGU7CivkqZsgPCBsZWF0aGVyXC1iZWx0XC11c2VkXC10b1wtYmluZFwtb3JcLXJlc3RyYWluXC1hXC1jYXJ0Owor5oqE5a62IDwgdG9cLXNlYXJjaFwtYVwtaG91c2VcLWFuZFwtY29uZmlzY2F0ZVwtcG9zc2Vzc2lvbnM7CivkprkgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KOUIDwgbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+SjkSA8IGxpdmluZ1wtc3BhY2VcLWZvclwtb25lXC1mYW1pbHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjhCA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkorkgPCBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor5KKqIDwgYVwtc2xlZGdlXC1mb3JcLXRyYW5zcG9ydGF0aW9uXC1vdmVyXC1tdWRcLW9yXC1zbm93Owor5J+GIDwgdG9cLWtlZXBcLXBlcnNvbnNcLW9mZlwtdGhlXC1yb3V0ZVwtb2ZcLXRoZVwtZW1wZXJvcjsKK+acg+imiyA8IHRvXC1tZWV0XC13aXRoXC1cKHNvbWVvbmVcLXdob1wtaXNcLXBheWluZ1wtYVwtdmlzaXRcKTsKK+SIkCA8IGFuXC1hcmNoZWRcLWZyYW1lXC1tYWRlXC1vZlwtYmFtYm9vXC1vZlwtd29vZFwtYm9hcmQ7Civkhb8gPCBsdXh1cmlhbnRcLW9yXC1leHViZXJhbnRcLW9mXC10aGVcLWdyYWluc1wtZmxvd2VyeTsKK+SDiCA8IG1vdW50YWluXC1yb2Nrc1wtYVwtYmxhY2tcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IKsIDwgYmlnXC1yb2Nrc1wtb25cLXRoZVwtcml2ZXJzaWRlXC1hblwtYXJjaGVkXC1vcGVuaW5nOwor5IGdIDwgZGVsdWRpbmdcLWFuZFwtY2F1c2luZ1wtZGlzb3JkZXJcLWxpZ2h0c1wtc2hpbmluZzsKK+O9nyA8IHRvXC10aWxsXC1vclwtdG9cLXBsb3VnaFwtdGhlXC1maWVsZHNcLWFuXC1lbmNsb3N1cmU7CivjroQgPCBwdWJsaWNseVwtcG9zdGVkXC1yb2xsXC1vZlwtc3VjY2Vzc2Z1bFwtZXhhbWluZWVzOwor4624IDwgdGhlXC1icmFuY2hlc1wtdG9cLXNwcmVhZFwtb3V0XC1pblwtYWxsXC1kaXJlY3Rpb25zOwor46mJIDwgdG9cLXRha2VcLWFcLXJ1YmJpbmdcLW9mXC1hblwtaW5zY3JpcHRpb25cLW9uXC1zdG9uZTsKK+OjgSA8IHRvXC1lcXVpcHRcLWFcLWJvd1wtd2l0aFwtc2lsa1wtYW5kXC1tdXNjdWxhclwtZmlicmU7CivjnZkgPCB0aGVcLXRoaXJkXC1vZlwtdGhlXC10d2VsdmVcLXRlcnJlc3RyaWFsXC1icmFuY2hlczsKK+mVt+aymeeBoyA8IGNoZXVuZ1wtc2hhXC13YW5cLVwocG91bHRyeVwtbWFya2V0XC1pblwtaG9uZ1wta29uZ1wpOwor5aWn54i+5biD6LO054m5IDwgXChtYWRlbGVpbmVcKVwtYWxicmlnaHRcLVwodXNcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXCk7CivmraPluLjljJYgPCBub3JtYWxpemF0aW9uXC1cKG9mXC1kaXBsb21hdGljXC1yZWxhdGlvbnNcLFwtZXRjXCk7CivlhbXkuI3ljq3oqZAgPCB0aGVyZVwtY2FuXC1uZXZlclwtYmVcLXRvb1wtbXVjaFwtZGVjZXB0aW9uXC1pblwtd2FyOwor5LqU5YWt5Y2B5q2yIDwgXChpblwtb25lJydzXClcLWZpZnRpZXNcLW9yXC1zaXh0aWVzXC1cKHllYXJzXC1vZlwtYWdlXCk7Civpgb/ph43lsLHovJUgPCBhdm9pZFwtdGhlXC1pbXBvcnRhbnRcLWFuZFwtZHdlbGxcLW9uXC10aGVcLXRyaXZpYWw7CivlpKfoiIkgPCBjYXJyeVwtb3V0XC1hXC1sYXJnZVwtc2NhbGVcLVwobWlsaXRhcnlcKVwtb3BlcmF0aW9uOwor5pel5ry4IDwgXChrZWVwXC1pbmNyZWFzaW5nXCxcLWNoYW5naW5nXCxcLWV0Y1wuXClcLWRheVwtYnlcLWRheTsKK+aomeaWsOeri+eVsCA8IHN0YXJ0XC1zb21ldGhpbmdcLW5ld1wtaW5cLW9yZGVyXC10b1wtYmVcLWRpZmZlcmVudDsKK+itsOW4rSA8IHNlYXRcLWluXC1hXC1wYXJsaWFtZW50XC1vclwtbGVnaXNsYXRpdmVcLWFzc2VtYmx5Owor5LmOIDwgaW50ZXJyb2dhdGl2ZVwtb3JcLWV4Y2xhbWF0b3J5XC1maW5hbFwtcGFydGljbGU7CivmvoQgPCBwdXJpZnlcLXdhdGVyXC1ieVwtYWxsb3dpbmdcLXNlZGltZW50XC10b1wtc2V0dGxlOwor5q2fIDwgYVwtZmluYWxcLXBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtYWRtaXJhdGlvbjsKK+aioiA8IHBvaW50ZWRcLXRpcFwtb2ZcLXNvbWV0aGluZ1wtbG9uZ1wtbGlrZVwtYVwtYnJhbmNoOwor5ZOSIDwgYVwtc291bmRcLW1hZGVcLXRvXC1nZXRcLWFcLWhvcnNlXC10b1wtbW92ZVwtZm9yd2FyZDsKK+eQriA8IG9jdGFnb25hbFwtcGllY2VcLW9mXC1qYWRlXC13aXRoXC1ob2xlXC1pblwtbWlkZGxlOwor5ZS8IDwgc3BlYWtpbmdcLWV2aWxcLlwtZ29iYmxpbmdcLXNvdW5kXC1tYWRlXC1ieVwtZHVja3M7CivlpKflip/lkYrmiJAgPCBzdWNjZXNzZnVsbHlcLWFjY29tcGxpc2hlZFwtXChwcm9qZWN0XC1vclwtZ29hbFwpOwor6YCa57edIDwgd2FudGVkXC1ieVwtdGhlXC1wb2xpY2VcLVwoZnVnaXRpdmVcLW9yXC1jcmltaW5hbFwpOwor55yf57SNIDwgXChtb2hhbW1hZFwtYWxpXClcLWppbm5haFwtXChmb3VuZGVyXC1vZlwtcGFraXN0YW5cKTsKK+isneijoeWkqyA8IFwobmF3YXpcKVwtc2hhcmlmXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLXBha2lzdGFuXCk7Civpra/os5MgPCBydWJpblwtXChlZ1wsXC10cmVhc3VyeVwtc2VjcmV0YXJ5XC1yb2JlcnRcLXJ1YmluXCk7Civlipvlr7YgPCBsaXBwb1wtXChncm91cFwpXC1cKGluZG9uZXNpYW5cLWJ1c2luZXNzXC1jb25jZXJuXCk7CivlkLPkvZzmo58gPCBnb2hcLWNob2tcLXRvbmdcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtc2luZ2Fwb3JlXCk7CivnhKHmiYDnlKjlv4MgPCBlYXRcLXRocmVlXC1zcXVhcmVcLW1lYWxzXC1hXC1kYXlcLWFuZFwtZG9cLW5vXC13b3JrOwor5YG06YuSIDwgb2JsaXF1ZVwtYXR0YWNrXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivpgrQgPCBuYW1lXC1vZlwtYVwtY2l0eVwtaW5cLXRoZVwtYW5jaWVudFwtc3RhdGVcLW9mXC1zb25nOwor54+t6ZaA5byE5panIDwgZGlzcGxheVwtb25lJydzXC1zbGlnaHRcLXNraWxsXC1iZWZvcmVcLWFuXC1leHBlcnQ7CivkuK3lnIvml6XloLEgPCBjaGluYVwtZGFpbHlcLVwoYW5cLWVuZ2xpc2hcLWxhbmd1YWdlXC1uZXdzcGFwZXJcKTsKK+W0h+emjiA8IGNob25nemhlblwsXC1sYXN0XC1lbXBlcm9yXC1vZlwtdGhlXC1taW5nXC1keW5hc3R5Owor55m95a2XIDwgd3JvbmdseVwtd3JpdHRlblwtYW5kXC1taXNwcm9ub3VuY2VkXC1jaGFyYWN0ZXI7CivkuI3lj6/ntYLml6UgPCBiZVwtdW5hYmxlXC10b1wtY2FycnlcLW9uXC1ldmVuXC1mb3JcLWFcLXNpbmdsZVwtZGF5Owor5a+E5LqI5b6I5aSn5pyf5pybIDwgdG9cLXBsYWNlXC1ncmVhdFwtaG9wZVwtb3JcLWV4cGVjdGF0aW9uXC1vblwtXChzdGhcKTsKK+W3peS6uum7qCA8IHdvcmtlcnMnJ1wtcGFydHlcLVwoc2luZ2Fwb3JlXC1vcHBvc2l0aW9uXC1wYXJ0eVwpOwor5bCN562WIDwgY291bnRlcm1lYXN1cmVcLWZvclwtZGVhbGluZ1wtd2l0aFwtYVwtc2l0dWF0aW9uOwor5LaYIDwgdGhlXC1zb3VuZFwtb2ZcLWNoZXdpbmdcLXNvbWV0aGluZ1wtZHJ5XC1hbmRcLWhhcmQ7CivkrrIgPCBob3JzZVwtd2l0aFwtbWl4ZWRcLWNvbG9yc1wtb2ZcLXllbGxvd1wtYW5kXC13aGl0ZTsKK+SmvCA8IHRvXC1kaWdcLWFcLXBhc3NhZ2VcLXRocm91Z2hcLWFcLW1vdW50YWluXC1vclwtaGlsbDsKK+SlkSA8IGFcLWtpbmRcLW9mXC1kZWNvcmF0aW9uXC1vblwtdGhlXC1oZWFkXC1vZlwtYVwtaG9yc2U7Civko68gPCB3aW5lXC1vclwtYW55XC10aGlja1wtZmx1aWRcLW9mXC10aGVcLWJlc3RcLXF1YWxpdHk7Civko5ogPCBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7Civko5kgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7CivkorogPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7Civkob8gPCBmcmFtZXNcLW9uXC10aGVcLXNpZGVzXC1hbmRcLWZyb250XC1vZlwtYVwtY2FycmlhZ2U7CivknK8gPCBuYW1lXC1vZlwtYVwtdmFsbGV5XC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7CivkmL8gPCBzaGlydFwtb3JcLWFcLWphY2tldFwtd2l0aG91dFwtYW55XC1kZWNvcmF0ZWRcLWhlbTsKK+SWgiA8IGFuXC1lZGliXC1sZVwtd2F0ZXJcLXBsYW50XC1cLVwtXC1icmFzZW5pYVwtcHVycHVyY2E7Civkj64gPCB0aGVcLXNpZGVzXC1vZlwtdGhlXC10cnVua1wtZnJvbVwtYXJtcGl0c1wtdG9cLXJpYnM7CivkhY0gPCBzdHJhaWdodFwtdXB3YXJkXC1vZlwtdGhlXC13aGVhdFwtYW5kXC1yaWNlXC1wbGFudDsKK+SCuCA8IHRvXC1zbWFzaFwtb3JcLXRvXC1rbm9ja1wtdG9cLXBpZWNlc1wtb2ZcLXRoZVwtc3RvbmU7CivnrYblipsgPCB2aWdvdXJcLW9mXC1zdHJva2VzXC1pblwtY2FsbGlncmFwaHlcLW9yXC1kcmF3aW5nOwor572w6YWSIDwgdG9cLWRyaW5rXC1hc1wtdGhlXC1yZXN1bHRcLW9mXC1oYXZpbmdcLWxvc3RcLWFcLWJldDsKK+O+vCA8IHRvXC1zdWZmZXJcLWFcLXN0cm9rZVwtb2ZcLXBhcmFseXNpc1wtb3JcLWFwb3BsZXh5Owor472rIDwgc2VlZHNcLW9mXC10aGVcLXBsYW50XC1hbGxpZWRcLXRvXC10aGVcLXdhdGVyXC1saWx5Owor47i3IDwgYVwta2luZFwtb2ZcLWNhdHRsZVwtd2l0aFwtdHdvXC1ob3Juc1wtc3RyYWlnaHRcLXVwOwor47asIDwgYnJpZ2h0XC1saWdodHNcLWFuZFwtaWxsdW1pbmF0aW9uc1wtb2ZcLXRoZVwtZmlyZTsKK+O2hiA8IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1oZWJlaVwtcHJvdmluY2VcLWhlbmdzaGFuOwor5pav5L2p5p6XIDwgc3BlbGxpbmdcLVwoZWdcLFwtc3BlbGxpbmdcLWVudGVydGFpbm1lbnRcLWdyb3VwXCk7CivjrqsgPCBhXC13b29kZW5cLWFydGljYWxcLXRvXC1iZVwtdXNlZFwtdG9cLWFkanVzdFwtYVwtYm93Owor46uNIDwgdGhlXC1zY2FsbG9wc1wtYWxvbmdcLXRoZVwtbG93ZXJcLWVkZ2VcLW9mXC1hXC1mbGFnOwor46ePIDwgdG9cLWNhcnJ5XC1vblwtdGhlXC1zaG91bGRlcnNvZlwtdHdvXC1vclwtbW9yZVwtbWVuOwor5pif6auUIDwgY2VsZXN0aWFsXC1ib2R5XC1cKGVnXCxcLXBsYW5ldFwsXC1zYXRlbGxpdGVcLFwtZXRjXCk7Civjm7YgPCBkb1wtbm90XC1jYXJlXC1hYm91dFwtYXBwZWFyYW5jZVwtYW5kXC1kZXBvcnRtZW50Owor45qUIDwgaW5zdHJ1bWVudFwtb2ZcLXRvcnR1cmVcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OZhyA8IHRoZVwtY2F0dGxlXC1hbmRcLWhvcnNlc1wtdHJhbXBsZWRcLW9uXC10aGVcLWZpZWxkOwor5Li7566hIDwgXChiZVwpXC1wZXJzb25cLWluXC1jaGFyZ2VcLW9mXC1cKGFcLXBvc2l0aW9uXCxcLWV0Y1wuXCk7Civllq7mp43ljLnppqwgPCBzaW5nbGVcLWhhbmRlZFwtXChsaXRcOlwtc2luZ2xlXC1zcGVhclwtb25lXC1ob3JzZVwpOwor55un5rOw5oSaIDwgcm9oXC10YWVcLXdvb1wtXChmb3JtZXJcLXNvdXRoXC1rb3JlYW5cLXByZXNpZGVudFwpOwor5q2l6Z+7IDwgdG9cLXdyaXRlXC1hXC1wb2VtXC11c2luZ1wtYW5vdGhlclwtcG9lbScnc1wtcmh5bWVzOwor5Y+j5rCjIDwgXChmcmllbmRseVwtb3JcLXVuZnJpZW5kbHlcKVwtdG9uZVwtXChvZlwtY29tbWVudHNcKTsKK+ato+mLkiA8IGZyb250YWxcLWF0dGFja1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor6b2K55m955+zIDwgbmFtZVwtb2ZcLWFcLWZhbW91c1wtY2hpbmVzZVwtYXJ0aXN0XCxcLXFpXC1iYWlcLXNoaTsKK+S4i+S+hiA8IFwodmVyYlwtc3VmZml4XC1pbmRpY2F0aW5nXC1jb250aW51YXRpb25cLFwtZXRjXC5cKTsKK+W5uemDqCA8IGFcLWNhZHJlXC1cKGllXCxcLW1hbmFnZXJcLFwtc3RhZmZcLFwtb2ZmaWNlclwsXC1ldGNcLlwpOwor5aiFIDwgbXV0dWFsXC10ZXJtXC1vZlwtYWRkcmVzc1wtdXNlZFwtYnlcLXNvbnNcLWluXC1sYXc7CivllYbli5npg6ggPCBjb21tZXJjZVwtZGVwYXJ0bWVudFwtXChvZlwtdGhlXC11c1wtZ292ZXJubWVudFwpOwor5ZCN5Ymv5YW25a+mIDwgbm90XC1qdXN0XC1pblwtbmFtZVwtb25seVwsXC1idXRcLWFsc29cLWluXC1yZWFsaXR5Owor5LiN55W25LiA5Zue5LqLIDwgbm90XC1yZWdhcmRcLWFzXC1hXC1tYXR0ZXJcLVwob2ZcLWFueVwtaW1wb3J0YW5jZVwpOwor6ICB5Ly05YWSIDwgXChvZlwtYW5cLW9sZFwtbWFycmllZFwtY291cGxlXClcLWh1c2JhbmRcLW9yXC13aWZlOwor5LiN5omT5LiN55u46K2YIDwgZnJvbVwtYW5cLWV4Y2hhbmdlXC1vZlwtYmxvd3NcLWZyaWVuZHNoaXBcLWdyb3dzOwor5be054i+6IiN5aSr5pav5Z+6IDwgXChjaGFybGVuZVwpXC1iYXJzaGVmc2t5XCxcLXVzXC10cmFkZVwtbmVnb3RpYXRvcjsKK+muoCA8IGFcLWtpbmRcLW9mXC1zaGFkXC13aXRoXC1hXC1oZWFkXC1saWtlXC1hXC1zdHVyZ2VvbjsKK+aOpee0jSA8IGFkbWl0XC1cKGludG9cLW1lbWJlcnNoaXBcLW9mXC1hblwtb3JnYW5pemF0aW9uXCk7CivllpzmlrDljq3oiIogPCBsaXRlcmFsXDpcLXRvXC1saWtlXC10aGVcLW5ld1wsXC1hbmRcLWhhdGVcLXRoZVwtb2xkOwor5oqK6aKoIDwga2VlcFwtd2F0Y2hcLVwoZHVyaW5nXC1hXC1jbGFuZGVzdGluZVwtYWN0aXZpdHlcKTsKK+WCmeiAlSA8IG1ha2VcLXByZXBhcmF0aW9uc1wtZm9yXC1wbG91Z2hpbmdcLWFuZFwtc293aW5nOwor5pKl5YaXIDwgZmluZFwtdGltZVwtaW5cLXRoZVwtbWlkc3RcLW9mXC1wcmVzc2luZ1wtYWZmYWlyczsKK+iDkSA8IHRoZVwtbGltYnNcLlwtd2luZ3NcLW9mXC1iaXJkc1wuXC1sZWdzXC1vZlwtYW5pbWFsczsKK+etrSA8IGFuXC1hbmNpZW50XC1kZXZpY2VcLWZvclwtd29ya2luZ1wtd2l0aFwtbnVtYmVyczsKK+aihuWtkOiFlCA8IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtbG9jYWxcLW9wZXJhc1wtaW5cLXNoYW5neGk7Civmu50gPCBvbm9tYXRvcG9laWNcLWZvclwtdGhlXC1zb3VuZFwtb2ZcLWZhbGxpbmdcLXJhaW47CivmoL3otJMgPCB0b1wtZnJhbWVcLXNvbWVvbmVcLVwoYnlcLXBsYW50aW5nXC1zdGhcLW9uXC10aGVtXCk7Civmj5vlj5YgPCBnaXZlXC1zb21ldGhpbmdcLWFuZFwtZ2V0XC1zb21ldGhpbmdcLWluXC1yZXR1cm47Civmi43moYjlj6vntZUgPCBsaXRcLlw6XC1zbGFwXC10aGVcLXRhYmxlXC1hbmRcLXNob3V0XC13aXRoXC1wcmFpc2U7Civlgb3mm7ggPCBcKGZvcmdlZFwsXC1kdWJpb3VzXCxcLW1pc2NsYXNzaWZpZWRcKVwtb2xkXC1ib29rczsKK+aiheiYreiKsyA8IG5hbWVcLW9mXC1hXC12ZXJ5XC1mYW1vdXNcLWJlaWppbmdcLW9wZXJhXC1hcnRpc3Q7CivnsL/lhoogPCBib29rc1wtZm9yXC10YWtpbmdcLW5vdGVzXC1vclwta2VlcGluZ1wtYWNjb3VudHM7Civks7UgPCBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmRcLXdpdGhcLWNvbG9yZnVsXC1mZWF0aGVyOwor5LObIDwgYVwtc21hbGxcLWJyb3duXC1zcGVja2xlZFwtYmlyZFwtbGlrZVwtdGhlXC1xdWFpbDsKK+SpkSA8IGhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7CivkppMgPCB0b1wtd2FpdFwtZm9yXC1zb21ldGhpbmdcLXRvaGFwcGVuXC1pbW1lZGlhdGVseTsKK+SjpCA8IG5hbWVcLW9mXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civko50gPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SjgiA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor5KGpIDwgc291bmRcLW9mXC1jYXJ0c1wtb3JcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor5KCAIDwgdG9cLXNpdFwtY3Jvc3NcLWxlZ2dlZFwtbGlrZVwtYVwtYnVkZGhpc3RcLXByaWVzdDsKK+ScqyA8IG5hbWVcLW9mXC1hXC12YWxsZXlcLWluXC10b2RheScnc1wtaG9iZWlcLXByb3ZpbmNlOwor5JyaIDwgdG9cLXNwZWFrXC1yZWNrbGVzc2x5XC1vclwtd2l0aG91dFwtZm9yZXRob3VnaHQ7Civkk6UgPCBzb3VuZFwtb2ZcLXRoZVwtd3JpZ2dsZWRcLWluc2VjdHNcLW9uXC10aGVcLWdyYXNzOwor5JCEIDwgdGhlXC11bnNhdGlzZmFjdGlvblwtb2ZcLWh1bmdlclwtcmVxdWlyZXNcLW1lYXQ7CivkjbQgPCB0b1wtc3F1ZWV6ZVwtYW5kXC10b1wtY3Jvd2RcLWFnYWluc3RcLWVhY2hcLW90aGVyOwor5I2GIDwgY29udGFpbmVyXC1mb3JcLWdyYWluc1wtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5LiK6LuKIDwgdG9cLWdldFwtb25cLW9yXC1pbnRvXC1cKGFcLWJ1c1wsXC10cmFpblwsXC1jYXJcLWV0Y1wuXCk7Civkh68gPCBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1wYXR0ZXJuc1wtb25cLXRoZVwtaGVhZDsKK+ihjOaUv+mZoiA8IGV4ZWN1dGl2ZVwteXVhblwtXChnb3Zlcm5tZW50XC1ib2R5XC1pblwtdGFpd2FuXCk7CivjvLEgPCB0b1wtbWFuYWdlXC1vclwtcmVndWxhdGVcLXRoZVwtbGVhdGhlclwtbWF0ZXJpYWw7Civjr4ogPCBldmVuXC1tZWFzdXJpbmdcLWJvYXJkXC1mb3JcLXBlY2tzXC1hbmRcLWJ1c2hlbHM7CivnrYbkuIsgPCB0aGVcLXdvcmRpbmdcLWFuZFwtcHVycG9ydFwtb2ZcLXdoYXRcLW9uZVwtd3JpdGVzOwor5L6/5Ye9IDwgYW5cLWluZm9ybWFsXC1sZXR0ZXJcLXNlbnRcLWJ5XC1hblwtb3JnYW5pemF0aW9uOwor46iQIDwgdG9cLXNsYXBcLWxpZ2h0bHlcLW9uXC10aGVcLWNsb3RoZXNcLW9yXC1jb3ZlcmxldDsKK+OipSA8IGFcLWJpZ1wtcGllY2VcLW9mXC1sb2dcLXRvXC1qb2luXC10aGVcLXRoaWNrXC1yb3BlczsKK+mmluW4rSA8IGNoaWVmXC1cKHJlcHJlc2VudGF0aXZlXCxcLWNvcnJlc3BvbmRlbnRcLFwtZXRjXCk7CivotIXlqb8gPCBzb25cLWluXC1sYXdcLWxpdmluZ1wtYXRcLXdpZmUnJ3NcLXBhcmVudCcnc1wtaG91c2U7CivmnbDkvZvojLIgPCBcKGphbWVzXClcLWplZmZvcmRzXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC12ZXJtb250XCk7CivomZXmlrwgPCBiZVwtXChpblwtc29tZVwtc3RhdGVcLFwtcG9zaXRpb25cLFwtb3JcLWNvbmRpdGlvblwpOwor6aKo5Zyf5Lq65oOFIDwgbG9jYWxcLWNvbmRpdGlvbnNcLVwoaHVtYW5cLWFuZFwtZW52aXJvbm1lbnRhbFwpOwor6Zi/5ouJ5aGU5pavIDwgXChhbGlcKVwtYWxhdGFzXC1cKGluZG9uZXNpYW5cLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivnvoXluIPms4ogPCBsb3BcLW5vclwtXChudWNsZWFyXC10ZXN0aW5nXC1zaXRlXC1pblwteGluamlhbmdcKTsKK+awkemAsum7qCA8IGRwcFwtXChkZW1vY3JhdGljXC1wcm9ncmVzc2l2ZVwtcGFydHlcLFwtdGFpd2FuXCk7CivmlZfnrYYgPCBhXC1mYXVsdHlcLXN0cm9rZVwtaW5cLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmc7Civnj4ggPCBhblwtb3JuYW1lbnRcLWF0dGFjaGVkXC10b1wtYVwtd29tYW4nJ3NcLWhhaXJwaW47CivonIMgPCBtYXJpbmVcLW1vbnN0ZXJcLXdoaWNoXC1jYW5cLWNoYW5nZVwtaXRzXC1zaGFwZTsKK+aWmyA8IGRyeVwtbWVhc3VyZVwtZXF1YWxcLXRvXC1zb21lXC1maXZlXC1vclwtdGVuXC1kb3U7CivphK8gPCBkaXN0cmljdFwtaW5cLWdhbnN1XC1kdXJpbmdcLXRoZVwtdGFuZ1wtZHluYXN0eTsKK+W6uSA8IHRoZVwtbGVuZ3RoXC1vZlwtb25lJydzXC10d29cLW91dHN0cmV0Y2hlZFwtYXJtczsKK+aPsiA8IHRvXC1zb3J0XC1vdXRcLXRoZVwtc3RhbGtzXC11c2VkXC1pblwtZGl2aW5hdGlvbjsKK+WHuui3ryA8IGFcLXdheVwtb3V0XC1cKG9mXC1hXC1kaWZmaWN1bHRcLXNpdHVhdGlvblwsXC1ldGNcKTsKK+e0hOWumuizh+ioiumAn+eOhyA8IGNvbW1pdHRlZFwtaW5mb3JybWF0aW9uXC1yYXRlXC1cKGZyYW1lXC1yZWxheVwpOwor55m96Iqx6JuHIDwgbG9uZ1wtbm9zZWRcLXBpdFwtdmlwZXJcLVwoYWdraXN0cm9kb25cLWFjdXR1c1wpOwor5Lit5YWx5Lit5aSuIDwgY2hpbmVzZVwtY29tbXVuaXN0XC1wYXJ0eVwtY2VudHJhbFwtY29tbWl0dGVlOwor5Y2a6IGe5by36KiYIDwgaGF2ZVwtd2lkZVwtbGVhcm5pbmdcLWFuZFwtYVwtcmV0ZW50aXZlXC1tZW1vcnk7Civluqbml6UgPCBzY3JhdGNoXC1vdXRcLWFcLWRpZmZpY3VsdFwsXC1tZWFnZXJcLWV4aXN0ZW5jZTsKK+ecvuitsOWToSA8IG1lbWJlclwtb2ZcLXRoZVwtdXNcLWhvdXNlXC1vZlwtcmVwcmVzZW50YXRpdmVzOwor6Z+NIDwgYVwtbGVhdGhlclwta25lZVwtcGFkXC13b3JuXC1kdXJpbmdcLXNhY3JpZmljZXM7CivloLHmoYggPCByZXBvcnRcLWFcLWNhc2VcLXRvXC10aGVcLXNlY3VyaXR5XC1hdXRob3JpdGllczsKK+mPniA8IGFcLWxhcmdlXC1iZWxsXC11c2VkXC1hc1wtYVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+i7jiA8IGFcLWJyYXNzXC1wYXJ0c1wtZm9yXC1hXC1jYXJ0XC1pblwtYW5jaWVudFwtY2hpbmE7CivlhbXmupAgPCBtYW5wb3dlclwtcmVzb3VyY2VzXC1cKGZvclwtbWlsaXRhcnlcLXNlcnZpY2VcKTsKK+iZiyA8IGFzcGFyYWd1c1wtYVwtdmFyaWV0eVwtb2ZcLXJlZFwtc3RhbGtlZFwtbWlsbGV0Owor55m+5bm05aSn6KiIIDwgYVwtcHJvamVjdFwtb2ZcLXZpdGFsXC1hbmRcLWxhc3RpbmdcLWltcG9ydGFuY2U7CivpgoHnp5Hoo6EgPCBcKG1pa2VcKVwtbWNjdXJyeVwtXCh3aGl0ZVwtaG91c2VcLXNwb2tlc3BlcnNvblwpOwor5ouU6IuX5Yqp6ZW3IDwgc3BvaWxcLXRoaW5nc1wtdGhyb3VnaFwtZXhjZXNzaXZlXC1lbnRodXNpYXNtOwor5aCx5ZGK5pyDIDwgcHVibGljXC1sZWN0dXJlXC1cKHdpdGhcLWd1ZXN0XC1zcGVha2Vyc1wsXC1ldGNcKTsKK+WIqeS8r+abvCA8IFwoY29ubmVjdGljdXRcLXNlbmF0b3JcLWpvc2VwaFwtaVwuXClcLWxpZWJlcm1hbjsKK+iCr+aZrue0ouaBqSA8IFwoZGlya1wpXC1rZW1wdGhvcm5lXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC1pZGFob1wpOwor5bueIDwgdG9cLXByZXBhcmVcLWhvcnNlc1wtYW5kXC1jaGFyaW90c1wtZm9yXC1iYXR0bGU7CivlqZcgPCBhXC1uZXdcLWJvcm5cLWNoaWxkXC10aGVcLXdoaW1wZXJcLW9mXC1hblwtaW5mYW50Owor5aa6IDwgd2lmZVwtb2ZcLXRoZVwtbGFzdFwtcnVsZXJcLW9mXC10aGVcLXhpYVwtZHluYXN0eTsKK+WZoCA8IHNvdW5kXC1tYWRlXC10b1wtZ2V0XC1hXC1ob3JzZVwtdG9cLW1vdmVcLWZvcndhcmQ7CivlpJblravlpbPlhZIgPCBncmFuZGRhdWdodGVyXC1cKGRhdWdodGVyXC1vZlwtb25lJydzXC1kYXVnaGVyXCk7CivmnInpm7sgPCBcKG9mXC1hXC1kd2VsbGluZ1wpXC1zdXBwbGllZFwtd2l0aFwtZWxlY3RyaWNpdHk7Civnmb7mipjkuI3mkpMgPCBrZWVwXC1vblwtZmlnaHRpbmdcLWluXC1zcGl0ZVwtb2ZcLWFsbFwtc2V0YmFja3M7CivnpZ7lpbPls7AgPCBuYW1lXC1vZlwtYVwtcGVha1wtYnlcLWNoYW5namlhbmdcLXRocmVlXC1nb3JnZXM7CivkuIIgPCBvYnN0cnVjdGlvblwtb2ZcLWJyZWF0aFwtYXNcLWl0XC1zZWVrc1wtcmVsZWFzZTsKK+izgeiHqCA8IFwob2ZcLWRpc3Rpbmd1aXNoZWRcLWd1ZXN0c1wpXC1ob25vdXJcLW15XC1ob3VzZTsKK+SwvyA8IGFcLWtpbmRcLW9mXC1zbWFsbFwtZmlzaFwtZ3Jvd25cLWluXC1mcmVzaFwtd2F0ZXI7Civlronouqvnq4vlkb0gPCBzZXR0bGVcLWRvd25cLWFuZFwtZ2V0XC1vblwtd2l0aFwtb25lJydzXC1wdXJzdWl0Owor5KK/IDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWhvYmVpXC1wcm92aW5jZTsKK+ShiCA8IHRoZVwtY3Jvc3NcLWJhclwtYXRcLXRoZVwtc2lkZXNcLW9mXC1hXC1jYXJyaXRhZ2U7CivklIkgPCBzY2F0dGVyZWRcLW9yXC1kaXNwZXJzZWRcLW9mXC1ncmFzc1wtYW5kXC10cmVlczsKK+SRkiA8IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkkKMgPCBzb3VwXC1tYWRlXC1vZlwtY3V0dGVkXC1tZWF0XC1taXhlZFwtd2l0aFwtYmxvb2Q7CivkjK4gPCBzaWxrXC1mYWJyaWNzXC13aXRoXC10aGVcLWNvbG9yXC1vZlwtbmV3XC1sZWF2ZXM7CivkhKggPCBncmFpbnNcLXByb2R1Y2luZ1wtbmVpdGhlclwtZmxvd2VyXC1ub3JcLWZydWl0Owor5ISdIDwgc2hvd1wtbm9cLXJlc3BlY3RcLXRvXC10aGVcLXNlcnZpY2VcLW9mXC13b3JzaGlwOwor47ytIDwgdG9cLXN0ZWFkeVwtYnlcLXB1dHRpbmdcLXNvbWV0aGluZ1wtdW5kZXJuZWF0aDsKK+O7siA8IGFcLXJpdGVcLW9yXC1zZXJ2aWNlXC1mb3JcLWJlZ2lubmluZ1wtb2ZcLWF1dHVtbjsKK+mAhuWQkeaTgeWhnumAmuefpSA8IGJhY2t3YXJkXC1leHBsaWNpdFwtY29uZ2VzdGlvblwtbm90aWZpY2F0aW9uOwor57aT54ef566h55CG5ZKM57at6K23IDwgb3BlcmF0aW9uc1wtYWRtaW5pc3RyYXRpb25cLWFuZFwtbWFpbnRlbmFuY2U7CivjqqogPCB0b1wtdXNlXC1hXC13b29kZW5cLXBvbGVcLXRvXC1zdXBwb3J0XC1zb21ldGhpbmc7CivjoqYgPCB3b29kZW5cLXBvc3RcLW9yXC1waWxlXC1mb3JcLXRldGhlcmluZ1wtYW5pbWFsczsKK+OcoiA8IGFcLWJhZFwtdGVybVwtYnlcLXdoaWNoXC1vbmVcLWFkZHJlc3Nlc1wtYVwtd29tYW47CivjmpIgPCBjb25jZWFsZWRcLXRoZVwtc3RvbGVuXC1nb29kc1wtaW5cLW9uZScnc1wtZHJlc3M7Civnmb3mm4nnh5UgPCBwYWlcLWhzaWFvXC15ZW5cLVwoZGF1Z2h0ZXJcLW9mXC1wYWlcLXBpbmdcLXBpbmdcKTsKK+S4jee2k+S4gOS6i+S4jemVt+S4gOaZuiA8IHlvdVwtY2FuJyd0XC1nYWluXC1rbm93bGVkZ2VcLXdpdGhvdXRcLXByYWN0aWNlOwor5p2+5LiLIDwgbWF0c3VzaGl0YVwtXChqYXBhbmVzZVwtZWxlY3Ryb25pY3NcLWNvbXBhbnlcKTsKK+S4jeWmmSA8IFwob2ZcLWFcLXR1cm5cLW9mXC1ldmVudHNcKVwtbm90XC10b29cLWVuY291cmFnaW5nOwor6LijIDwgdG9cLXN0dW1ibGVcLWFuZFwtZmFsbFwtcHJvbmVcLXN0aWZmXC1pblwtZGVhdGg7Civpu7wgPCBlbWJyb2lkZXJlZFwtb2ZmaWNpYWxcLW9yXC1zYWNyaWZpY2lhbFwtcm9iZTsKK+WzhCA8IGFcLXJhbmdlXC1vZlwtcGVha3NcLWluXC1zaGFuZG9uZ1wtYW5kXC1qaWFuZ3N1Owor5YuJ5by3IDwgbWFuYWdlXC1cKHRvXC1kb1wtc29tZXRoaW5nXClcLXdpdGhcLWRpZmZpY3VsdHk7CivliKXnhKEgPCBoYXZlXC1ub1wtb3RoZXJcLVwoY2hvaWNlXCxcLWFsdGVybmF0aXZlXCxcLWV0Y1wpOwor5LiN5Y+v5LiA5LiWIDwgY29uc2lkZXJcLW9uZXNlbGZcLXVuZXhjZWxsZWRcLWluXC10aGVcLXdvcmxkOwor6YeR5pel5oiQIDwga2ltXC1pbFwtc3VuZ1wtXChmb3JtZXJcLW5vcnRoXC1rb3JlYW5cLWxlYWRlclwpOwor5YWs57SEIDwgY29udmVudGlvblwtXChpZVwsXC1pbnRlcm5hdGlvbmFsXC1hZ3JlZW1lbnRcKTsKK+mXlyA8IGFcLWZyb250aWVyXC1wYXNzXC1vclwtZ2F0ZVwtdG9cLXNodXRcLW9yXC1jbG9zZTsKK+mCviA8IGFcLWZldWRhbFwtc3RhdGVcLXdoaWNoXC1leGlzdGVkXC1iXC5jXC43MDBcLTQ2OTsKK+WkqualteWKjSA8IGFcLWtpbmRcLW9mXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtc3dvcmRcLXBsYXk7CivlubTluqYgPCB5ZWFyXC1cKGVnXCxcLXNjaG9vbFwteWVhclwsXC1maXNjYWxcLXllYXJcLFwtZXRjXCk7CivntZXlsI3mlbjlrZcgPCBhYnNvbHV0ZVwtXChhc1wtb3Bwb3NlZFwtdG9cLXJlbGF0aXZlXClcLW51bWJlcjsKK+iWqSA8IHRyYW5zbGl0ZXJhdGlvblwtb2ZcLScnc2F0JydcLWluXC0nJ2JvZGhpc2F0dHZhOwor562G6aCGIDwgb3JkZXJcLW9mXC1zdHJva2VzXC1vYnNlcnZlZFwtaW5cLWNhbGxpZ3JhcGh5Owor6IawIDwgdG9cLWNvb2tcLW1lYXRcLWZvclwtYVwtc2FjcmlmaWNlXC1vclwtb2ZmZXJpbmc7CivmiY7ph50gPCB0b1wtZ2l2ZVwtb3JcLWhhdmVcLWFuXC1hY3VwdW5jdHVyZVwtdHJlYXRtZW50Owor5Y+45rOV6YOoIDwganVzdGljZVwtZGVwYXJtZW50XC1cKG9mXC10aGVcLXVzXC1nb3Zlcm5tZW50XCk7CivnkYwgPCBhXC13aGl0ZVwtb3BhcXVlXC1xdWFydHpcLXVzZWRcLWZvclwtb3JuYW1lbnRzOwor5r2fIDwgbGFuZFwtaW1wcmVnbmF0ZWRcLXdpdGhcLXNhbHRcLWZyb21cLXRoZVwtdGlkZTsKK+ijveWKkSA8IFwoY2hlbWljYWxcLW9yXC1waGFybWFjZXV0aWNhbFwpXC1wcmVwYXJhdGlvbjsKK+mrlOacgyA8IGtub3dcLVwodGhyb3VnaFwtbGVhcm5pbmdcLW9yXC1ieVwtZXhwZXJpZW5jZVwpOwor5YG95omYIDwgZmFraW5nXC1hXC1tb2Rlcm5cLW9iamVjdFwtYXNcLWFuXC1hbmNpZW50XC1vbmU7CivluqvntI3ljZcgPCBcKGFuZHJld1wpXC1jdW5hbmFuXC1cKGFsbGVnZWRcLXNlcmlhbFwta2lsbGVyXCk7Civmtbfpl5wgPCBjdXN0b21zXC1cKGllXCxcLWJvcmRlclwtY3Jvc3NpbmdcLWluc3BlY3Rpb25cKTsKK+aKsemgrem8oOerhCA8IGNvdmVyXC10aGVcLWhlYWRcLWFuZFwtc25lYWtcLWF3YXlcLWxpa2VcLWFcLXJhdDsKK+m7g+W7uuWNlyA8IGpvaG5cLWh1YW5nXC1cKGRlbW9jcmF0aWNcLXBhcnR5XC1mdW5kcmFpc2VyXCk7CivktZ4gPCBhbmNpZW50XC1wdW5pc2htZW50XC1vZlwtdGF0dG9vaW5nXC10aGVcLWZhY2U7CivksbkgPCBhXC1jb25kaW1lbnRcLW1hZGVcLWZyb21cLW1pbmNlZFwtZmlzaFwtc2FsdGVkOwor5K+wIDwgdXNlXC1hXC1oYWlyXC1waW5cLXRvXC1zZXRcLWFuZFwtZHJlc3NcLXRoZVwtaGFpcjsKK+SsryA8IHRvXC1oYXZlXC1jb25nZWVcLXdpdGhcLWZyaWVuZHNcLWluXC1vbGRcLXRpbWVzOwor5KGLIDwgZGVjb3JhdGlvblwtb25cLXRoZVwtbmF2ZVwtb3JcLWh1Ylwtb2ZcLWFcLXdoZWVsOwor5J6DIDwgdG9cLXJlbGlldmVcLW9yXC1naXZlXC1haWRcLXRvXC10aGVcLWRpc3RyZXNzZWQ7CivkmK8gPCB0aGVcLWxhcGVsXC1vclwtY29sbGFyXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivkmKQgPCBhXC1zd29yZFwtY292ZXJpbmdcLXRvXC1wcm90ZWN0XC10aGVcLXNjYWJiYXJkOwor5JGMIDwgbHdoYXRcLWlzXC1sZWZ0XC1vdmVyXC1vZlwtdGhlXC1mb29kXC1cLW92ZXJyaXBlOwor5IunIDwgb3JuYW1lbm50c1wtZm9yXC10aGVcLWZyb250YWxcLXBhcnRcLW9mXC1zaG9lczsKK+SLoyA8IGRlY29yYXRpb25zXC1wdXRcLW9uXC10aGVcLW1hbmVcLW9yXC1ob3JzZWhhaXI7CivkiJUgPCB0aGVcLW1ldGFsXC10b25ndWVcLWluXC10aGVcLXJlZWRcLWluc3RydW1lbnRzOwor5IO0IDwgYVwtd2hldHN0b25lXC11c2VkXC10b1wtZ3JpbmRcLXByZWNpb3VzXC1zdG9uZTsKK+SBvCA8IHRvXC1sb29rXC1idXRcLXNlZVwtbm90aGluZ1wtXC1cLVwtYWJzZW50XC1taW5kZWQ7Civjv4YgPCBkYW1hZ2VcLWJ5XC10aGVcLXBlc3RzXC10b1wtdGhlXC1yaWNlXC1zZWVkbGluZzsKK+O7tiA8IGFcLWphZGVcLXR1YmVcLXdpdGhcLXdoaXRlXC1hbmRcLW5hdHVyZVwtY29sb3JzOwor47uwIDwgZGVjb3JhdGVkXC1qYWRlXC1vclwtb3JuYW1lbnRcLW9uXC1hXC1zY2FiYmFyZDsKK+O7oSA8IGFcLWphZGVcLXJpbmdcLXdpdGhcLWFcLXNtYWxsXC1zZWdtZW50XC1jdXRcLW9mZjsKK+OuhiA8IGVhdmVzXC1zcHJvdXRpbmdcLWZyb21cLXRoZVwtc3R1bXBcLW9mXC1hXC10cmVlOwor46uUIDwgb25lXC1vZlwtdGhlXC1laWdodFwtZGlhZ3JhbXNcLWZvclwtZGl2aW5hdGlvbjsKK+OquyA8IGFcLWtpbmRcLW9mXC11dGVuc2lsXC11c2VkXC10b1wtbGFkbGVcLW91dFwtd2luZTsKK+OpiiA8IHRvXC1wdWxsXC11cFwtdGhlXC1zbGVldmVzXC1hbmRcLXNob3dcLXRoZVwtYXJtczsKK+OnrSA8IHRvXC1nZXRcLXNvbWV0aGluZ1wtd2l0aFwtYm90aFwtcmFpc2luZ1wtaGFuZHM7Civjp5ogPCB0aGVcLWdlc3R1cmVcLW9mXC11c2luZ1wtYW5cLWluZGVudGVkXC1jb250YWluOwor46eGIDwgdG9cLWNvdmVyXC1zb21ldGhpbmdcLXdpdGhcLWFcLXBpZWNlXC1vZlwtY2xvdGg7Civnmb7lu6Lkv7HoiIggPCBhbGxcLW5lZ2xlY3RlZFwtdGFza3NcLWFyZVwtYmVpbmdcLXVuZGVydGFrZW47CivjoYsgPCBhXC1raW5kXC1vZlwtaGVhZGRyZXNzXC1mb3JcLW1hblwtaW5cLW9sZFwtY2hpbmE7CivjoLggPCB0aGVcLWxhcGVsXC1vclwtY29sbG9yXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivjnJogPCBhXC1sb2NhbFwtZ292ZXJubWVudFwtcG9zdFwtaW5cLWFuY2llbnRcLXRpbWVzOwor45mfIDwgbG93XC1seWluZ1wtb25cLXRoZVwtc2lkZVwtb2ZcLWFcLXJpdmVyXC1vclwtbGFrZTsKK+mBv+WvpuWwseiZmyA8IHN0YXlcLWNsZWFyXC1vZlwtdGhlXC1lbmVteScnc1wtbWFpblwtZm9yY2VcLWFuZDsKK+S4jeaxgueUmuinoyA8IG5vdFwtc2Vla1wtdG9cLXVuZGVyc3RhbmRcLXRoaW5nc1wtdGhvcm91Z2hseTsKK+eikeiomCA8IGFcLXJlY29yZFwtb2ZcLWV2ZW50c1wtaW5zY3JpYmVkXC1vblwtYVwtdGFibGV0Owor5Lit5aSu5YWo5pyDIDwgcGxlbmFyeVwtc2Vzc2lvblwtb2ZcLXRoZVwtY2VudHJhbFwtY29tbWl0dGVlOwor5YyF6L6mIDwgdGFrZVwtY2FyZVwtb2ZcLWV2ZXJ5dGhpbmdcLWNvbmNlcm5pbmdcLWFcLWpvYjsKK+WPpOadsOaLieeIviA8IFwoaVwuXC1rXC5cKVwtZ3VqcmFsXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLWluZGlhXCk7Civpu4Plsqnls7YgPCBodWFuZ3lhblwtaXNsYW5kXC1cKGluXC10aGVcLXNvdXRoXC1jaGluYVwtc2VhXCk7CivmqZ/pl5zloLEgPCBvZmZpY2lhbFwtXChnb3Zlcm5tZW50XC1vcGVyYXRlZFwpXC1uZXdzcGFwZXI7CivliY3lkJHmk4HloZ7pgJrnn6UgPCBmb3J3YXJkXC1leHBsaWNpdFwtY29uZ2VzdGlvblwtbm90aWZpY2F0aW9uOwor5Ye66Z2iIDwgYWN0XC1pblwtYVwtXChvZmZpY2lhbFwtb3JcLXBlcnNvbmFsXClcLWNhcGFjaXR5Owor5ZaPIDwgcmVzcGVjdGZ1bFwtcmVwbHlcLW9mXC1hc3NlbnRcLXRvXC1zdXBlcmlvcnM7CivnrI8gPCB0YWJsZXRcLWhlbGRcLWJ5XC1zb21lb25lXC1oYXZpbmdcLWF1dGhvcml0eTsKK+i2vCA8IGNhbGxvdXNcLXNraW5cLW9uXC1oYW5kc1wtb3JcLWZlZXRcLlwtYmxpc3RlcnM7Civnm7jpmpQgPCBiZVwtc2VwYXJhdGVkXC1ieVwtXChkaXN0YW5jZVwtb3JcLXRpbWVcLFwtZXRjXCk7Civnvo7lnIvlu6Pmkq3lhazlj7ggPCBhYmNcLVwoYW1lcmljYW5cLWJyb2FkY2FzdGluZ1wtY29ycG9yYXRpb25cKTsKK+aZguWgsSA8IFwidGltZXNcIlwtXChuZXdzcGFwZXJcLFwtZWdcLFwtbmV3XC15b3JrXC10aW1lc1wpOwor6YCa6IiqIDwgY29ubmVjdGVkXC1ieVwtYWlyXHxzZWFcLXRyYWZmaWNcLW9yXC1zZXJ2aWNlOwor5qC45q2m5Zmo56CU6KO96KiI5YqDIDwgbnVjbGVhclwtd2VhcG9uc1wtXChtYW51ZmFjdHVyaW5nXClcLXByb2dyYW07Civlhrfmt6Hpl5zkv4IgPCBjb2xkXC1yZWxhdGlvbnNcLVwoZVwuZ1wuXC1iZXR3ZWVuXC1jb3VudHJpZXNcKTsKK+S4jeS6huS6huS5iyA8IHNldHRsZVwtYVwtbWF0dGVyXC1ieVwtbGVhdmluZ1wtaXRcLXVuc2V0dGxlZDsKK+mBt+WxhSA8IHRvXC1tb3ZlXC1cKGZyb21cLW9uZVwtcmVzaWRlbmNlXC10b1wtYW5vdGhlclwpOwor6aWdIDwgdG9cLWZlZWRcLWFuXC1pbmZhbnRcLWJ5XC1oYW5kXC1zdGVhbWVkXC1icmVhZDsKK+S4jeWNs+S4jemboiA8IGJlXC1uZWl0aGVyXC10b29cLWZhbWlsaWFyXC1ub3JcLXRvb1wtZGlzdGFudDsKK+e4veaUv+ayu+mDqCA8IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtcG9saXRpY2FsXC1kZXBhcnRtZW50Owor5ZOI6KOh5qOu5Y+y5a+G54m5IDwgaGFycmlzb25cLXNjaG1pdHRcLVwoYXBvbGxvXC0xXC03XC1hc3Ryb25hdXRcKTsKK+WFpeWtuOeOhyA8IHBlcmNlbnRhZ2VcLW9mXC1jaGlsZHJlblwtd2hvXC1lbnRlclwtc2Nob29sOwor6KONIDwgYVwtYm9yZGVyXC1vclwtYmFuZFwtb25cLXRoZVwtZWRnZVwtb2ZcLWFcLWRyZXNzOwor5bm05LujIDwgYVwtZGVjYWRlXC1vZlwtYVwtY2VudHVyeVwtXChlZ1wsXC10aGVcLXNpeHRpZXNcKTsKK+eVouWFtuWKn+S6juS4gOW9uSA8IGFjY29tcGxpc2hcLXRoZVwtd2hvbGVcLXRhc2tcLWF0XC1vbmVcLXN0cm9rZTsKK+WNiui3r+WHuuWutiA8IHN3aXRjaFwtdG9cLWFcLWpvYlwtb25lXC13YXNcLW5vdFwtdHJhaW5lZFwtZm9yOwor57GqIDwgYVwtd2Vpclwtb2ZcLWJhbWJvb1wtdG9cLWNhdGNoXC1maXNoXC1vclwtY3JhYnM7CivnmLIgPCBzcGFzbXNcLW9yXC1jb252dWxzaW9uc1wtaW5cLXlvdW5nXC1jaGlsZHJlbjsKK+eRsiA8IHRpbmtsaW5nXC1zb3VuZFwtdGlua2xpbmdcLW9mXC1wZW5kYW50XC1nZW1zOwor55eF5q+S5a245a62IDwgdmlyb2xvZ2lzdFwtXChwZXJzb25cLXdob1wtc3R1ZGllc1wtdmlydXNlc1wpOwor5bu656uL5q2j5byP5aSW5Lqk6Zec5L+CIDwgZm9ybWFsbHlcLWVzdGFibGlzaFwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor6IyF6Ie66YWSIDwgbWFvdGFpXC1vclwtbWFpdGFpXC1cKGNoaW5lc2VcLXN0cm9uZ1wtZHJpbmtcKTsKK+e1kOekvuiHqueUsSA8IFwoY29uc3RpdHV0aW9uYWxcKVwtZnJlZWRvbVwtb2ZcLWFzc29jaWF0aW9uOwor5bydIDwgdGhlXC1wYXJ0XC1vZlwtYVwtYm93XC1ncmFzcGVkXC13aGVuXC1zaG9vdGluZzsKK+WWrOefsyA8IHFpYW9cLXNoaVwtXChjaGluZXNlXC1sZWFkZXJzaGlwXC1jb250ZW5kZXJcKTsKK+ixjumJpCA8IFwoc3RyYWlnaHRcLWRvd25cLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+SlnCA8IHByb3RlY3RpdmVcLW1ldGFsXC1vblwtdGhlXC1heGlzXC1vZlwtYVwtd2hlZWw7CivmiJDmnKwgPCBcKG1hbnVmYWN0dXJpbmdcLFwtcHJvZHVjdGlvblwsXC1ldGNcLlwpXC1jb3N0czsKK+SZliA8IGFcLWNsb3RoXC10b1wtY2FycnlcLWFuXC1paW5mYW50XC1vblwtdGhlXC1iYWNrOwor546L576y5LmLIDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1hXC1mYW1vdXNcLWNhbGxpZ3JhcGhlcjsKK+SPqyA8IGluXC1iZXR3ZWVuXC1vZlwtdGhlXC1hYmRvbWVuXC1hbmRcLXRoZVwtc3BpbmU7CivkjYkgPCB0cmFjZXNcLW9yXC1tYXJrc1wtb2ZcLWluY29tcGxldGVcLW9yXC1kYW1hZ2U7CivkjLggPCBmaW5lXC1zaWxrXC1mYWJyaWNcLW9mXC1icmlnaHRcLXdoaXRlXC1jb2xvdXI7Civpgorop5Lnp5EgPCBsZWZ0b3ZlclwtYml0c1wtYW5kXC1waWVjZXNcLVwob2ZcLWluZHVzdHJpYWw7Civki78gPCBhXC1kZWNvcmF0aXZlXC1rbm90XC1tYWRlXC1vZlwtY29sb3JmdWxcLXNpbGs7CivkiJwgPCBhXC10aHJlYWRcLXVzZWRcLWJ5XC1jYXJwZW50ZXJzXC1mb3JcLW1hcmtpbmc7CivkiIYgPCBhXC1zaGFsbG93XC1hbmRcLWxvbmdcLXNoYXBlZFwtYmFtYm9vXC1iYXNrZXQ7Civku6PnkIYgPCBhY3RpbmdcLVwodGVtcG9yYXJpbHlcLWZpbGxpbmdcLWFcLXBvc2l0aW9uXCk7Civjv7kgPCBqdXR0aW5nXC1vblwtdGhlXC1lcGlkZXJtaXNcLW9yXC10aGVcLWN1dGljbGU7CivjvKsgPCBlYXJ0aGVud2FyZVwtb3JcLXBvdHRlcnlcLXdpdGhcLWJpZ1wtb3BlbmluZzsKK+O1uyA8IHRvXC1wZXJzcGlyZVwtZnJvbVwtZW1iYXJyYXNzbWVudFwtb3JcLXNoYW1lOwor6JST5bu25YWo5ZyLIDwgdG9cLXNwcmVhZFwtdGhyb3VnaG91dFwtdGhlXC1lbnRpcmVcLWNvdW50cnk7CivjrakgPCBhXC1raW5kXC1vZlwtdHJlZVwtY2FuXC1iZVwtdXNlZFwtYXNcLWR5ZVwtc3R1ZmY7Civjo5kgPCB0b1wtd2Fsa1wtaW5cLWFuXC1lYXN5XC1hbmRcLWxlaXN1cmVseVwtbWFubmVyOwor46KqIDwgdG9cLWRyYXdcLWFcLWZ1bGxcLWJvd1wtdG9cLWFpbVwtYXRcLXRoZVwtdGFyZ2V0Owor5a6i5buzIDwgZHJhd2luZ1wtcm9vbVwtXChyb29tXC1mb3JcLWFycml2aW5nXC1ndWVzdHNcKTsKK+OYiiA8IHRoZVwtYWJydXB0XC1hbmRcLWhhc3R5XC1zb3VuZFwtb2ZcLXRoZVwtY3Jvd2Q7Civjlq4gPCBhblwtaW50ZXJqZWN0aW9uXC11c2VkXC1pblwtcG9lbXNcLWFuZFwtc29uZ3M7CivjlK4gPCBhXC1raW5kXC1vZlwtYW5pbWFsXC13aGljaFwtbG9va3NcLWxpa2VcLWFcLXJhdDsKK+iTrumcpyA8IHdheFwtYXBwbGVcLVwoYVwtcmVkZGlzaFwtcGVhclwtc2hhcGVkXC1mcnVpdFwpOwor6aGM57C9IDwgdG9cLXdyaXRlXC10aGVcLXRpdGxlXC1vZlwtYVwtYm9va1wtb25cLWFcLWxhYmVsOwor55m+5oCd5LiN6KejIDwgcmVtYWluXC1wdXp6bGVkXC1hZnRlclwtcG9uZGVyaW5nXC1vdmVyXC1zdGg7CivljYrli57li5XlipsgPCBvbmVcLWFibGVcLXRvXC1kb1wtbGlnaHRcLW1hbnVhbFwtbGFib3VyXC1vbmx5Owor57i95b6M5Yuk6YOoIDwgXChtaWxpdGFyeVwpXC1nZW5lcmFsXC1sb2dpc3RpY3NcLWRlcGFydG1lbnQ7CivkuIDlnIvlhanliLYgPCBvbmVcLWNvdW50cnlcLFwtdHdvXC1zeXN0ZW1zXC1cKGNoaW5hXC10YWl3YW5cKTsKK+aTuuS6i+Wvpuism+mBk+eQhiA8IHByZXNlbnRcLXRoZVwtZmFjdHNcLWFuZFwtcmVhc29uXC10aGluZ3NcLW91dDsKK+iAgeS6jCA8IHRoZVwtc2Vjb25kXC1jaGlsZFwtb3JcLWJyb3RoZXJcLVwob3JcLXNpc3RlclwpOwor5Lit5Y2XIDwgXChhYmJyZXZpYXRpb25cLWZvclwpXC1jaGluYVwtXC1cLXNvdXRoXC1hZnJpY2E7CivpmL/mmIzml48gPCB0aGVcLWFjaGFuZ1wtbmF0aW9uYWxpdHlcLWxpdmluZ1wtaW5cLXl1bm5hbjsKK+eJiOasoSA8IHRoZVwtb3JkZXJcLWluXC13aGljaFwtZWRpdGlvbnNcLWFyZVwtcHJpbnRlZDsKK+WVpyA8IGludGVyamVjdGlvblwtb2ZcLWFwcHJvdmFsXC1vclwtYWRtaXJhdGlvbjsKK+aNuiA8IHRvXC1wcmVzc1wtZG93blwtaGVhdmlseVwtd2l0aFwtdGhlXC1maW5nZXJzOwor5YKjIDwgdGhlXC1kYWlcLW1pbm9yaXR5XC1saXZpbmdcLWluXC1zb3V0aFwtY2hpbmE7CivpuKkgPCBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXNlY3JldGFyeVwtZmFsY29uOwor5redIDwgbmFtZVwtb2ZcLWFuXC1hZmZsdWVudFwtb2ZcLXRoZVwtcG95YW5nXC1sYWtlOwor6YOFIDwgdG9cLWdvXC11cFwtdG9cLlwtZmxvdXJpc2hpbmdcLWFcLXN1cGVybGF0aXZlOwor6L2rIDwgYVwtYmxvY2tcLXRoYXRcLWtlZXBzXC1hXC13aGVlbFwtZnJvbVwtbW92aW5nOwor5ba3IDwgYVwtcmFuZ2VcLW9mXC1tb3VudGFpbnNcLWluXC1odW5hblwtcHJvdmluY2U7CivprLIgPCB0eXBlXC1vZlwtY2FsZHJvblwtd2l0aFwtdGhyZWVcLWhvbGxvd1wtbGVnczsKK+WIliA8IGN1dHRpbmdcLW9mZlwtZmVldFwtYXNcLWZvcm1cLW9mXC1wdW5pc2htZW50Owor56m4IDwgdGhlXC1nbG9vbVwtb2ZcLXRoZVwtZ3JhdmVcLWFcLXRvbWJcLW9yXC1ncmF2ZTsKK+iYhSA8IGFcLWZyYWdyYW50XC1wbGFudFwtdGhlXC1yb290XC1pc1wtbWVkaWNpbmFsOwor55m96aCt6Kun6ICBIDwgbGl2ZVwtdG9cLXJpcGVcLW9sZFwtYWdlXC1pblwtY29uanVnYWxcLWJsaXNzOwor5Y+X5YK3IDwgc3VmZmVyXC1pbmp1cmllc1wtXChpblwtYW5cLWFjY2lkZW50XCxcLWV0Y1wuXCk7CivoqILnq4sgPCBhZ3JlZVwtdG9cLVwodHJlYXR5XCxcLWNvbnRyYWN0XCxcLWFncmVlbWVudFwpOwor5aSP5puGIDwgdGhlXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbHVuYXJcLWNhbGVuZGFyOwor5oiQ5Y2D5LiK6JCsIDwgYnlcLXRoZVwtdGhvdXNhbmRzXC1hbmRcLXRlbnNcLW9mXC10aG91c2FuZHM7CivluKvnr4QgPCBub3JtYWxcLVwoZWdcLFwtYmVpamluZ1wtbm9ybWFsXC11bml2ZXJzaXR5XCk7CivkvanmtJvopb8gPCBcKG5hbmN5XClcLXBlbG9zaVwtXChtZW1iZXJcLW9mXC11c1wtY29uZ3Jlc3NcKTsKK+mphiA8IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpbmdcLWJ1ZGRoaXN0XC1ib29rczsKK+mnjyA8IG9mZnNwcmluZ1wtb2ZcLWFcLXN0YWxsaW9uXC1hbmRcLWFcLXNoZVwtbXVsZTsKK+W7o+WgtCA8IGFcLXB1YmxpY1wtc3F1YXJlXC1cKGVnXCxcLXRpYW5hbm1lblwtc3F1YXJlXCk7CivpiYwgPCB0aGVcLWJlbGxzXC1vblwtdGhlXC1jYXJ0XC1pblwtYW5jaWVudFwtY2hpbmE7Civoo5znpaggPCBidXlcLW9uZScnc1wtdGlja2V0XC1hZnRlclwtdGhlXC1ub3JtYWxcLXRpbWU7Civnmbznh5IgPCBoYXZlXC1hXC1oaWdoXC10ZW1wZXJhdHVyZVwtXChmcm9tXC1pbGxuZXNzXCk7CivoqacgPCB0b1wtZXhhbWluZVwtaW50b1wtanVkaWNpYWxseVwtdG9cLWZpbmRcLW91dDsKK+e2syA8IGFcLWNsb3RoXC10b1wtY2FycnlcLWFuXC1pbmZhbnRcLW9uXC10aGVcLWJhY2s7CivntpYgPCB0aGVcLWhhbmdpbmdcLWZsYXBcLWluXC10aGVcLWZyb250XC1vZlwtYVwtaGF0Owor56WrIDwgdHJpZW5uaWFsXC1zYWNyaWZpY2VcLXRvXC1vbmUnJ3NcLWFuY2VzdG9yczsKK+ebhuWcsCA8IGJhc2luXC1cKGxvd1wtbHlpbmdcLWdlb2dyYXBoaWNhbFwtZmVhdHVyZVwpOwor56O7IDwgYVwtdHJpYnV0YXJ5XC1vZlwtdGhlXC13ZWlcLXJpdmVyXC1pblwtc2hhbnhpOwor5omL6LehIDwgc2JcLicnc1wtb3JpZ2luYWxcLWhhbmR3cml0aW5nXC1vclwtcGFpbnRpbmc7CivnkqfpgoQgPCByZXR1cm5cLVwoYVwtYm9ycm93ZWRcLW9iamVjdFwpXC13aXRoXC10aGFua3M7CivkuI3lrqPogIzmiLAgPCBvcGVuXC1ob3N0aWxpdGllc1wtd2l0aG91dFwtZGVjbGFyaW5nXC13YXI7CivlnIvpmpvpm7vkv6Hoga/nm58gPCBpbnRlcm5hdGlvbmFsXC10ZWxlY29tbXVuaWNhdGlvbnNcLXVuaW9uOwor5LiN6YGg5Y2D6YeMIDwgbWFrZVwtbGlnaHRcLW9mXC10cmF2ZWxsaW5nXC1hXC10aG91c2FuZFwtbGk7CivmlrQgPCB0aGVcLXNvdW5kXC1vZlwtd2F0ZXJcLWZsb3dpbmdcLWFtb25nXC1yb2NrczsKK+WuieWxheaogualrSA8IGxpdmVcLWFuZFwtd29ya1wtaW5cLXBlYWNlXC1hbmRcLWNvbnRlbnRtZW50Owor6KGo5aa5IDwgZmVtYWxlXC1jb3VzaW5cLXdpdGhcLWFcLWRpZmZlcmVudFwtc3VybmFtZTsKK+W0kSA8IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdcLXN1XC1wcm92aW5jZVwuOwor5ouG5pWjIDwgdG9cLWJyZWFrXC11cFwtXChhXC1tYXJyaWFnZVwsXC1mYW1pbHlcLFwtZXRjXC5cKTsKK+WQkOmtr+eVqiA8IHRoZVwtdHVyZmFuXC1iYXNpblwsXC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor5YKZ5ZOBIDwgbWFjaGluZVwtcGFydHNcLW9yXC10b29sc1wta2VwdFwtaW5cLXJlc2VydmU7CivksJggPCB0b1wta2lsbFwtYnlcLWhhbmdpbmdcLW9yXC10b1wtc3RyYW5ndWxhdGlvbjsKK+SulyA8IHdoaXRlXC1mcm9tXC1mb3JlaGVhZFwtdG9cLWxpcHNcLW9mXC1hXC1ob3JzZTsKK+SqsiA8IGFuY2llbnRcLXB1bmlzaG1lbnRcLW9mXC1zaGF2aW5nXC10aGVcLWhlYWQ7CivkqbggPCBmaW5lXC13b29sZW5cLWJsYW5rZXRcLW9uXC10b3BcLW9mXC1hXC1zYWRkbGU7CivkqasgPCBhXC11bml0XC10b1wtY291bnRcLXNob2VzXC1pblwtYW5jaWVudFwtdGltZXM7CivkpoUgPCBhXC1raW5kXC1vZlwtd2VhcG9uXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkpZAgPCBjb29raW5nXC11dGVuc2lsc1wtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KKHIDwgYVwtc29uXC13aG9cLWlzXC1ub3RcLXNvXC1nb29kXC1hc1wtaGlzXC1mYXRoZXI7Civkm5cgPCB0b1wtcHJ5XC1pbnRvXC1vclwtZXhwb3NlXC1hbm90aGVyJydzXC1zZWNyZXQ7CivkmoUgPCB0b1wtbG9va1wtYWZ0ZXJcLWhvbWVcLW9yXC1kb21lc3RpY1wtYWZmYWlyczsKK+SYqCA8IHNob3J0XC1sZWdnaW5nc1wtZHJhd25cLW92ZXJcLXRoZVwtdHJvdXNlcnM7Civklr8gPCBhXC1raW5kXC1vZlwtY2xhbVwtd2l0aFwtdGhpY2tcLXdoaXRlXC1zaGVsbHM7CivklbAgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtcmhpem9tZVwtb2ZcLXdpbmRcLXdlZWQ7Civkk60gPCB3ZWVkXC1vclwtZ3Jhc3NcLXdpdGhcLW5hcnJvd1wtdGhpY2tcLWdsYWRlczsKK+WNiuiEq+eUoiA8IHBhcnRseVwtcmVsZWFzZWRcLWZyb21cLXByb2R1Y3RpdmVcLWxhYm91cjsKK+SNuyA8IHlvdW5nXC1nb2F0XC1vZlwtc2hlZXBcLXVuZGVyXC1vbmVcLXllYXJcLW9sZDsKK+SNpiA8IGFcLWtpbmRcLW9mXC10dXJiYW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SMuSA8IGFcLWdhcm1lbnRcLW9mXC1vbmVcLWNvbG91clwtd2l0aFwtbm9cLWxpbmluZzsKK+S4jeWPr+WQjOaXpeiAjOiqniA8IGNhbm5vdFwtYmVcLW1lbnRpb25lZFwtaW5cLXRoZVwtc2FtZVwtYnJlYXRoOwor5ISqIDwgaGFuZ2luZ1wtZG93blwtb2ZcLXRoZVwtZWFyc1wtb2ZcLXRoZVwtZ3JhaW5zOwor5ISNIDwgeWVhclwtZW5kXC1zYWNyaWZpY2VcLW9mXC10aGVcLXpob3VcLWR5bmFzdHk7CivjvaAgPCBjb25uZWN0aW9uXC1vZlwtdGhlXC1kaXRjaGVzXC1vclwtd2F0ZXJ3YXlzOwor47yuIDwgdG9cLXJ1Ylwtb3V0XC10aGVcLWZpbHRoXC13aXRoXC1icm9rZW5cLXRpbGVzOwor46upIDwgdGhlXC1maXJzdFwtb2ZcLXRoZVwtZm91clwtc2Vhc29uXC1cLVwtXC1zcHJpbmc7CivjpJ0gPCBwYWxwaXRhdGlvblwtb3JcLWZsdXR0ZXJpbmdcLW9mXC10aGVcLWhlYXJ0Owor45+MIDwgYVwtbW91bnRhaW5cLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7CivjlK8gPCBhXC1sYXJnZVwtYmFza2V0XC1mb3JcLWhvbGRpbmdcLWNvb2tlZFwtcmljZTsKK+mmluS7uyA8IGZpcnN0XC1wZXJzb25cLXRvXC1iZVwtYXBwb2ludGVkXC10b1wtYVwtcG9zdDsKK+e4veabuOiomCA8IGdlbmVyYWxcLXNlY3JldGFyeVwtXChvZlwtY29tbXVuaXN0XC1wYXJ0eVwpOwor6YOo6ZW3IDwgaGVhZFwtb2ZcLWFcLVwoZ292ZXJubWVudFwsXC1ldGNcKVwtZGVwYXJ0bWVudDsKK+avlOmHjyA8IHRha2VcLXJvdWdoXC1tZWFzdXJlbWVudHNcLVwod2l0aFwtdGhlXC1oYW5kOwor6YGN6auU6bGX5YK3IDwgY292ZXJlZFwtYWxsXC1vdmVyXC13aXRoXC1jdXRzXC1hbmRcLWJydWlzZXM7CivnrJkgPCBzbWFsbFwtZ291cmRcLXNoYXBlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+a7lSA8IGFuXC1hbmNpZW50XC1zdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mVmyA8IGxhcmdlXC1iZWxsXC11c2VkXC1hc1wtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+iutSA8IGFuXC1pbnRlcmplY3Rpb25cLXVzZWRcLWV4cHJlc3NcLXN1cnByaXNlOwor5rOUIDwgd2F0ZXJcLWZyb21cLXdhc2hpbmdcLXJpY2VcLXRvXC1ib2lsXC10aGljazsKK+eYkCA8IHRvXC1kaWVcLWluXC1wcmlzb25cLWZyb21cLWNvbGRcLWFuZFwtaHVuZ2VyOwor5qO8IDwgYmVhbXNcLWluXC10aGVcLXJvb2ZcLW9mXC1hXC1ob3VzZVwtY29uZnVzZWQ7CivmlZnmjojnlaLnq5/mmK/mlZnmjoggPCBwcm9mZXNzb3JzXC1hcmVcLVwoYWZ0ZXJcLWFsbFwpXC1wcm9mZXNzb3JzOwor55m+6Laz5LmL6J+y5q276ICM5LiN5YO1IDwgYVwtY2VudGlwZWRlXC1kaWVzXC1idXRcLW5ldmVyXC1mYWxsc1wtZG93bjsKK+WNmuaEmyA8IHVuaXZlcnNhbFwtZnJhdGVybml0eVwtXChvclwtYnJvdGhlcmhvb2RcKTsKK+aVl+eBqyA8IHJlbGlldmVcLWluZmxhbW1hdGlvblwtb3JcLWludGVybmFsXC1oZWF0Owor57aT54efIDwgZW5nYWdlXC1pblwtXChhXC1idXNpbmVzc1wtYWN0aXZpdHlcLFwtZXRjXC5cKTsKK+mbhuaIkCA8IGludGVncmF0ZWRcLVwoYXNcLWluXC1pbnRlZ3JhdGVkXC1jaXJjdWl0XCk7CivpuoUgPCBhXC1zbWFsbFwtc3BvdHRlZFwtZGVlclwtZm91bmRcLWluXC1uXC5jaGluYTsKK+WFp+aHruWkluaCoyA8IGRvbWVzdGljXC1zdHJpZmVcLWFuZFwtZm9yZWlnblwtYWdyZXNzaW9uOwor5a6J5YWo6IiH5Lqk5o+b5aeU5ZOh5pyDIDwgc2VjdXJpdGllc1wtYW5kXC1leGNoYW5nZVwtY29tbXVuaWNhdGlvbjsKK+aUv+WnlCA8IHBvbGl0aWNhbFwtY29tbWlzc2FyXC1cKHdpdGhpblwtdGhlXC1hcm15XCk7CivmsojlnIvmlL4gPCBjaGluZXNlXC1mb3JlaWduXC1taW5pc3RyeVwtc3Bva2VzcGVyc29uOwor57eo5bCOIDwgd3JpdGVcLWFuZFwtZGlyZWN0XC1cKGFcLXBsYXlcLFwtZmlsbVwsXC1ldGNcLlwpOwor6KGM6aebIDwgXCh2ZWhpY2xlc1wsXC1ldGNcLlwpXC10cmF2ZWxcLWFsb25nXC1hXC1yb3V0ZTsKK+WFteeoriA8IFwobWlsaXRhcnlcKVwtYnJhbmNoXC1vZlwtdGhlXC1hcm1lZFwtZm9yY2VzOwor6Zi8IDwgdGhlXC1zdGVwc1wtbGVhZGluZ1wtdG9cLXRoZVwtZWFzdGVyblwtZG9vcjsKK+mAvOWuriA8IGZvcmNlXC10aGVcLWtpbmdcLW9yXC1lbXBlcm9yXC10b1wtYWJkaWNhdGU7CivovJcgPCBhXC1jcm9zc1wtYmFyXC1hdFwtZW5kXC1vZlwtYVwtY2FycmlhZ2VcLXBvbGU7CivoiKrooYwgPCBzYWlsXC1vclwtZmx5XC1cKGluXC1haXJcLFwtd2F0ZXJcLFwtb3JcLXNwYWNlXCk7CivoqY4gPCBpbnRlcmplY3Rpb25cLXVzZWRcLXRvXC1leHByZXNzXC1zdXJwcmlzZTsKK+e8jCA8IGNvYXJzZVwtY290dG9uXC1jbG90aFwtdXNlZFwtZm9yXC1tb3VybmluZzsKK+ehnCA8IHRoZVwtc291bmRcLW9mXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+ebuOS/oSA8IGJlXC1jb252aW5jZWRcLVwodGhhdFwtc29tZXRoaW5nXC1pc1wtdHJ1ZVwpOwor54qJIDwgYW5cLW94XC13aXRoXC15ZWxsb3dcLWhhaXJcLWFuZFwtYmxhY2tcLWxpcHM7Civmi5Tnp6cgPCBwdWxsXC11cFwtc2VlZGxpbmdzXC1cKGZvclwtdHJhbnNwbGFudGluZ1wpOwor54WdIDwgdHdpc3RlZFwtcGFwZXJcLWZvclwtbGlnaHRpbmdcLWNpZ2FyZXR0ZXM7CivmiYvoo6EgPCBcKGFcLXNpdHVhdGlvblwtaXNcKVwtaW5cLVwoc29tZW9uZScnc1wpXC1oYW5kczsKK+aNleaSiCA8IGZpc2hcLWZvclwtXChhcXVhdGljXC1hbmltYWxzXC1hbmRcLXBsYW50c1wpOwor56mG5qGC6IuxIDwgbXVcLWd1aVwteWluZ1wtXChuYW1lXC1vZlwtYVwtd29tYW5cLXdhcnJpb3JcKTsKK+ewveWQjSA8IHRvXC1zaWduXC1cKG9uZScnc1wtbmFtZVwtd2l0aFwtYVwtcGVuXCxcLWV0Y1wuXCk7Civmv5/ljZcgPCBqaScnbmFuXC1cKGNhcGl0YWxcLW9mXC1zaGFuZG9uZ1wtcHJvdmluY2VcKTsKK+W4rCA8IHRoZVwtc2tpcnRcLW9mXC1hXC1sYWR5JydzXC1kcmVzc1wtcGV0dGljb2F0Owor5bWgIDwgYVwtdmFsbGV5XC13aXRoXC1hXC1zdHJlYW1cLWluXC1pdFwuXC1hXC1nb3JnZTsKK+iZm+aTrOmAmumBk+aomeiqjOespiA8IHZpcnR1YWxcLWNoYW5uZWxcLWNvbm5lY3Rpb25cLWlkZW50aWZpZXI7CivlsY/mop0gPCBzZXRcLW9mXC1cKHVzdWFsbHlcLWZvdXJcKVwtaGFuZ2luZ1wtc2Nyb2xsczsKK+Wtq+Wls+WFkiA8IGdyYW5kZGF1Z2h0ZXJcLVwoZGF1Z2h0ZXJcLW9mXC1vbmUnJ3NcLXNvblwpOwor56m256ufIDwgYWZ0ZXJcLWFsbFwtXCh3aGVuXC1hbGxcLWlzXC1zYWlkXC1hbmRcLWRvbmVcKTsKK+mOruaxnyA8IHpoZW5qaWFuZ1wtXChjaXR5XClcLFwtaW5cLWppYW5nc3VcLXByb3ZpbmNlOwor5LGXIDwgYVwtbG9uZ1wtbmFycm93XC1maXNoXC10cmljaGl1cnVzXC1hcm1hdHVzOwor5LGUIDwgYVwtbG9uZ1wtbmFycm93XC1hbmRcLXNpbHZlclwtY29sb3JlZFwtZmlzaDsKK+SqkyA8IGFcLW1ldGFsXC1vcm5hbWVudFwtb25cLXNvbWVcLWtpbmRcLW9mXC1iZWx0Owor5KiZIDwgdG9cLXJhaW5cLWNhdHNcLWFuZFwtZG9nc1wtZm9yXC1hXC1sb25nXC10aW1lOwor5KaKIDwgYW5cLWFwcGxpYW5jZVwtZm9yXC13YWxraW5nXC1vblwtdGhlXC1zYW5kczsKK+SlgiA8IHRoZVwtc2hhcnBcLWVkZ2VcLW9mXC1hXC1zaG92ZWxcLW9yXC1hXC1zcGFkZTsKK+ShlSA8IHRoZVwtcmVhclwtcGxhdGZvcm1cLW9mXC1hXC1saWdodFwtY2FycmlhZ2U7CivknJQgPCB0b1wtc3BlYWtcLW9uXC10aGVcLWlkZWFzXC1vZlwtc29tZW9uZVwtZWxzZTsKK+ayu+eXheaVkeS6uiA8IGN1cmVcLXRoZVwtc2lja25lc3NcLXRvXC1zYXZlXC10aGVcLXBhdGllbnQ7CivklqAgPCBhXC1raW5kXC1vZlwtbGl6YXJkXC1mb3VuZFwtaW5cLWRhbXBcLXBsYWNlczsKK+SWnCA8IHRoZVwtZmlnaHRpbmdcLXNvdW5kXC1tYWRlXC1ieVwtdHdvXC10aWdlcnM7CivmnInlv5fogIXkuovnq5/miJAgPCB3aGVyZVwtdGhlcmVcLWlzXC1hXC13aWxsXCxcLXRoZXJlXC1pc1wtYVwtd2F5Owor5I6SIDwgZmx5aW5nXC1xdWlja2x5XC1hbmRcLXRvXC1hdHRhY2tcLXN1ZGRlbmx5Owor5IuKIDwgZGVjb3JhdGlvbnNcLW9mXC10aGVcLWVtcGVyb3InJ3NcLWNhcnJpYWdlOwor5ICbIDwgdG9cLWxvb2tcLWZhclwtd2l0aFwtdGhlXC1leWVzXC1oYWxmXC1jbG9zZWQ7CivjvKggPCBhXC13YXRlclwtamFyXC13aXRoXC1lYXJzXC1mb3JcLWNhcnJ5aW5nXC1pdDsKK+O7jiA8IGFcLWxhcmdlXC1ob3Jpem9udGFsXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor47qqIDwgYW5cLXVuY2FydmVkXC1vZlwtdW5wb2xpc2hlZFwtamFkZVwtb3JcLWdlbTsKK+O1vyA8IGVuZGxlc3NseVwtbG9uZ1wtb3JcLXZhc3RcLXdhdGVyXC1jdXJyZW50czsKK+O0qSA8IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civjr5ggPCBhXC1zbWFsbFwtd29vZGVuXC1zdGFuZFwtaGF2aW5nXC1mb3VyXC1sZWdzOwor46SNIDwgbmV2ZXJcLXJldmVhbFwtb25lJydzXC1mZWVsaW5nXC1vclwtZW1vdGlvbjsKK+OjoCA8IGFcLXJvcGVcLWRlY29yYXRlZFwtd2l0aFwtYnJvbnplXC1vcm5hbWVudDsKK+OhkSA8IGFuY2llbnRcLW1vdXJuaW5nXC10dXJiYW5cLXdvcm5cLWJ5XC13b21lbjsKK+OgkSA8IGhpZ2hcLW1vdW50YWluXC1zdGVlcFwtcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OghCA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXl1bm5hblwtcHJvdmluY2U7CivjoIEgPCBpcnJlZ3VsYXJcLW91dGxpbmVcLW9mXC1hXC1yYW5nZVwtb2ZcLWhpbGxzOwor45+aIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+OatiA8IHdpZmVcLW9mXC1vbmUnJ3NcLWh1c2JhbmQnJ3NcLWVsZGVyXC1icm90aGVyOwor45iIIDwgYWJsZVwtdG9cLXRha2VcLWFcLWNvcnJlY3RcLXZpZXdcLW9mXC10aGluZ3M7Civjl7AgPCB0aGVcLWNoYXJhY3RlclwtdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+OSvyA8IGFcLWtpbmRcLW9mXC10dXJiYW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lOwor5Li756eRIDwgcmVxdWlyZWRcLWNvdXJzZXNcLWluXC10aGVcLW1ham9yXC1zdWJqZWN0Owor5bCa5oWV5p2wIDwgamFtZXNcLXNhc3NlclwtXCh1c1wtYW1iYXNzYWRvclwtdG9cLWNoaW5hXCk7Civlk4DptLvpgY3ph44gPCBhXC1sYW5kXC1zd2FybWluZ1wtd2l0aFwtZGlzYXN0ZXJcLXZpY3RpbXM7Civnl4Xlvp7lj6PlhaUgPCBpbGxuZXNzXC1maW5kc1wtaXRzXC13YXlcLWluXC1ieVwtdGhlXC1tb3V0aDsKK+ePreW6lSA8IG9yZGluYXJ5XC1tZW1iZXJzXC1vZlwtdGhlYXRyaWNhbFwtdHJvdXBlOwor6YeR57y9IDwgXChnb2xkXClcLWFsbXNcLWJvd2xcLVwob2ZcLWFcLWJ1ZGRoaXN0XC1tb25rXCk7CivloZ7niL7ljZcgPCBcKGV1Z2VuZVwpXC1jZXJuYW5cLVwoYXBvbGxvXC0xN1wtYXN0cm9uYXV0XCk7Civoga/lkI0gPCBqb2ludGx5XC1cKHNpZ25lZFwsXC1kZWNsYXJlZFwsXC1zcG9uc29yZWRcKTsKK+e4veWPg+isgOmDqCA8IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtc3RhZmZcLWhlYWRxdWFydGVyczsKK+S4i+amuyA8IHN0YXlcLWF0XC1cKGFcLWhvdGVsXCxcLWV0Y1wuXC1kdXJpbmdcLWFcLXRyaXBcKTsKK+W5tOeVq+WFkiA8IG5ld1wteWVhclwtXChvclwtc3ByaW5nXC1mZXN0aXZhbFwpXC1waWN0dXJlOwor6ZC16aOv56KXIDwgXCJpcm9uXC1yaWNlXC1ib3dsXCJcLVwtXC1cLXNlY3VyZVwtZW1wbG95bWVudDsKK+iBr+mCpuiqv+afpeWxgCA8IGZiaVwtXChmZWRlcmFsXC1idXJlYXVcLW9mXC1pbnZlc3RpZ2F0aW9uXCk7Civog6Hlv5fmmI4gPCBob1wtY2hpXC1taW5oXC1cKHZpZXRuYW1lc2VcLWxlYWRlclwsXC1jaXR5XCk7CivoqJjov7AgPCBtYWtlXC1hXC1kZXNjcmlwdGl2ZVwtcmVjb3JkXC1cKG9mXC1ldmVudHNcKTsKK+aSpee1g+aoguWZqCA8IHBsdWNrZWRcLXN0cmluZ1wtb3JcLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor5byBIDwgY29uaWNhbFwtY2FwXC13b3JuXC1kdXJpbmdcLXpob3VcLWR5bmFzdHk7CivphYkgPCB0ZW50aFwtb2ZcLXRoZVwtdHdlbHZlXC1lYXJ0aGx5XC1icmFuY2hlczsKK+aXjCA8IGJhbm5lclwtb3JcLWZsYWdcLWFkb3JuZWRcLXdpdGhcLWZlYXRoZXJzOwor6KGuIDwgY2VyZW1vbmlhbFwtZHJlc3NcLXdvcm5cLWJ5XC10aGVcLWVtcGVyb3I7CivmuqcgPCByaXZlclwtaW5cLWFuaHVpXC1hbmRcLWppYW5nc3VcLXByb3ZpbmNlczsKK+ezjSA8IGZvb2RcLW1hZGVcLW9mXC1jcnVzaGVkXC1hbmRcLWNvb2tlZFwtcmljZTsKK+aumyA8IHRvXC1wdXRcLXRvXC1kZWF0aFwtdG9cLWltcHJpc29uXC1mb3JcLWxpZmU7Civni40gPCBzcGVjaWVzXC1vZlwtZGVlclwtZm91bmRcLWluXC1ub3J0aFwtY2hpbmE7Civnu4IgPCByaWJib25cLW9yXC1jb3JkXC11c2VkXC1hdHRhY2hcLW9ybmFtZW50czsKK+ejiSA8IHRoZVwtc3RvbmVcLWJhc2VcLW9yXC1wbGludGhcLW9mXC1hXC1waWxsYXI7CivolbkgPCBpcG9tb2VhXC1hcXVhdGljYVwtdXNlZFwtYXNcLWFcLXZlZ2V0YWJsZTsKK+aal+WCtyA8IGludGVybmFsXC1cKGludmlzaWJsZVwpXC1pbmp1cnlcLVwoZGFtYWdlXCk7CivmqpTmoYjovYnpgIHlrZjlj5blj4rnrqHnkIYgPCBmaWxlXC10cmFuc2ZlclwsXC1hY2Nlc3NcLWFuZFwtbWFuYWdlbWVudDsKK+Wkqua5liA8IHRhaVwtaHVcLWxha2VcLFwtYVwtYmlnXC1sYWtlXC1ieVwtd3V4aVwtY2l0eTsKK+apq+mJpCA8IFwoaG9yaXpvbnRhbFwtaG9va2VkXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor5YyX5a6LIDwgdGhlXC1ub3J0aGVyblwtc29uZ1wtZHluYXN0eVwtXCg5NjBcLTExMjdcKTsKK+m9iCA8IGNvbGRcLWluXC10aGVcLWhlYWRcLWNhdGFycmhcLW9mXC10aGVcLW5vc2U7CivpubsgPCBpbXB1cmVcLWNhcmJvbmF0ZVwtb2ZcLXNvZGl1bVwtb2ZcLW5hdHJvbjsKK+mEieS4iyA8IGNvdW50cnlcLVwoYXNcLW9wcG9zZWRcLXRvXC10b3duXC1vclwtY2l0eVwpOwor6baiIDwgYVwtYmlyZFwtd2hpY2hcLWZyZXF1ZW50c1wtdGhlXC1zZWFcLXNob3JlOwor5Yil5YW35LiA5qC8IDwgaGF2aW5nXC1hXC11bmlxdWVcLW9yXC1kaXN0aW5jdGl2ZVwtc3R5bGU7CivnsL3oqIIgPCB0b1wtYWdyZWVcLXRvXC1hbmRcLXNpZ25cLVwoYVwtdHJlYXR5XCxcLWV0Y1wpOwor6YOqIDwgbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5b6Q5oKy6bS7IDwgbmFtZVwtb2ZcLWFcLWZhbW91c1wtcGFpbnRlclwsXC14dVwtYmVpaG9uZzsKK+i9niA8IGFcLXZlaGljbGVcLWZvclwtdHJhbnNwb3J0aW5nXC1wcmlzb25lcnM7CivovLkgPCB0d29cLXBpZWNlc1wtb2ZcLXdvb2RcLXVuZGVybmVhdGhcLWFcLWNhcnQ7CivoroDos6PmlrDogZ4gPCB5b21pdXJpXC1zaGltYnVuXC1cKGphcGFuZXNlXC1uZXdzcGFwZXJcKTsKK+WinuWAvCA8IGFwcHJlY2lhdGlvblwtXChvZlwtYVwtY2FyXCxcLWhvdXNlXCxcLWV0Y1wuXCk7CivkuIDkuZ3lm5vkuZ3lubQgPCB0aGVcLXllYXJcLTE5NDlcLVwoY29tbXVuaXN0XC1yZXZvbHV0aW9uXCk7Civoir8gPCBncmFzc1wtd2hpY2hcLWhhc1wtYmVlblwtY3V0XC1hbmRcLXJlZ3Jvd247Civog6wgPCBhXC1kaXNlYXNlJydzXC1uYW1lXC1pblwtY2hpbmVzZVwtbWVkaWNpbmU7CivnpoogPCBzZW1pXC1hbm51YWxcLWNlcmVtb255XC1vZlwtcHVyaWZpY2F0aW9uOwor5YW15a62IDwgbWlsaXRhcnlcLXN0cmF0ZWdpc3RcLWluXC1hbmNpZW50XC1jaGluYTsKK+iLseWwuiA8IFwoZW5nbGlzaFwpXC1mb290XC1cKHVuaXRcLW9mXC1tZWFzdXJlbWVudFwpOwor5ZyL6Zqb5qiZ5rqW57WE57mUIDwgaW50ZXJuYXRpb25hbFwtc3RhbmRhcmRzXC1vcmdhbml6YXRpb247CivmiY3nlo/lrbjmt7ogPCBoYXZlXC1saXR0bGVcLXRhbGVudFwtYW5kXC1sZXNzXC1sZWFybmluZzsKK+a3qumZtyA8IFwodGVycml0b3J5XClcLWZhbGxcLXRvXC1lbmVteVwtb2NjdXBhdGlvbjsKK+aIpSA8IGFcLXNtYWxsXC1zdGVlbHlhcmRcLWZvclwtd2VpZ2hpbmdcLW1vbmV5Owor6Iqx5pyo6JitIDwgaHVhXC1tdVwtbGFuXC1cKG5hbWVcLW9mXC1hXC13b21hblwtd2FycmlvclwpOwor5omT5LiN6YGOIDwgbm90XC10b1wtYmVcLWFibGVcLXRvXC1iZWF0XC1vclwtZGVmZWF0XC1zYlwuOwor5LiW55WM5oCn5Y+k6ICB5ZWP6aGMIDwgYVwtcHJvYmxlbVwtYXNcLW9sZFwtYXNcLXRoZVwtd29ybGRcLWl0c2VsZjsKK+mBv+WdkeiQveS6lSA8IGRvZGdlXC1hXC1waXRcLW9ubHlcLXRvXC1mYWxsXC1pbnRvXC1hXC13ZWxsOwor5a+NIDwgdXNlZFwtYXNcLWFcLXRlcm1cLW9mXC1jb21wYXJpc29uXDpcLXJhdGhlcjsKK+S6uumBuCA8IHBlcnNvblwoc1wpXC1zZWxlY3RlZFwtXChmb3JcLWFcLWpvYlwsXC1ldGNcLlwpOwor55m85LqG6KiAIDwgXChcInBhc3RcLXRlbnNlXCJcLW9mXC1cOueZvOiogFwpXC1zcG9rZVwtcHVibGljbHk7CivlkpcgPCB2ZXJiYWxcLXBhcnRpY2xlXC1vZlwtcGVyZmVjdGl2ZVwtYXNwZWN0Owor6K6K5rqr5YuV54mpIDwgcG9pa2lsb3RoZXJtYWxcLVwoY29sZFwtYmxvb2RlZFwpXC1hbmltYWw7CivmnIPplbcgPCBwcmVzaWRlbnRcLW9mXC1hXC1jbHViXCxcLWNvbW1pdHRlZVwsXC1ldGNcLjsKK+S4sSA8IGNoaWxkJydzXC1oYWlyc3R5bGVcLWJvdW5kXC1pblwtdHdvXC10dWZ0czsKK+S4jeiHqumHjyA8IG5vdFwtdGFrZVwtYVwtcHJvcGVyXC1tZWFzdXJlXC1vZlwtb25lc2VsZjsKK+SupCA8IG9uZVwtb2ZcLXRoZVwtMzZcLWdhcmRlbnNcLWluXC1oYW5cLWR5bmFzdHk7CivkrK0gPCBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1mZXJvY2lvdXNcLWFuaW1hbDsKK+SqlCA8IGNyb3NzXC1iYXJcLW9mXC13b29kXC11bmRlclwtdGhlXC1jYXJyaWFnZTsKK+SnpCA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+SkjCA8IGFcLWtpbmRcLW9mXC13aW5lXC1iZVwtYnJld2VkXC1mcm9tXC1ncmFpbnM7CivkoLcgPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1oZWlnaHRcLWluXC1hXC1wZXJzb247CivkoIUgPCBoYW5kc1wtYW5kXC1mZWV0XC1jaGFwcGVkXC1mcm9tXC10aGVcLWNvbGQ7CivknaQgPCBhXC1wcmltaXRpdmVcLXRyaWJlXC1pblwtc291dGh3ZXN0XC1jaGluYTsKK+SdnyA8IGFcLWZpZXJjZVwtbWFuXC1lYXRpbmdcLWFuaW1hbFwtaW5cLWxlZ2VuZDsKK+SdnSA8IGFuXC1leGNsYW1hdGlvblwtaW5kaWNhdGluZ1wtYWRtaXJhdGlvbjsKK+SbkyA8IGFuXC1vZmZpY2lhbFwtcG9zaXRpb25cLWluXC1mb3JtZXJcLXRpbWVzOwor5JqYIDwgdGhlXC1sb25nXC1hbmRcLXVwcmlnaHRcLWhvcm5zXC1vZlwtY2F0dGxlOwor5JaSIDwgZWFydGhlbndhcmVcLXdpdGhcLXRoZVwtc2hhcGVcLW9mXC1hXC1iZWFuOwor5JWOIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzc1wtcGVyZW5uaWFsOwor5JORIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzc1wtZHVja3dlZWRzOwor5JGXIDwgdG9cLXBvdW5kXC1pblwtb3JkZXJcLXRvXC1yZW1vdmVcLXRoZVwtaHVzazsKK+SQsSA8IHRvXC1waWNrXC10aGVcLW1lYXRcLWluXC1iZXR3ZWVuXC1vZlwtYm9uZXM7Civkj4EgPCB1bmFibGVcLXRvXC1oZWFyXC1kaXN0aW5jdGx5XC1vclwtY2xlYXJseTsKK+Wvq+aIkCA8IHRvXC1jb21waWxlXC1cKGZhc2hpb25cLXRocm91Z2hcLXdyaXRpbmdcKTsKK+SKoCA8IHRvXC1naXZlXC1hXC1zdXBwbHlcLWZcLWdyYWluXC1mb3JcLXJhdGlvbnM7CivkiZ8gPCBhXC1iYW1ib29cLWJhc2tldFwtdXNlZFwtdG9cLWNhdGNoXC1maXNoZXM7CivkiLAgPCBhXC1icnVzaFwtZm9yXC13YXNoaW5nXC1raXRjaGVuXC11dGVuc2lsczsKK+SHvCA8IGFcLWJhbWJvb1wtdmVzc2VsXC11c2VkXC10b1wtY2F0Y2hcLWZpc2hlczsKK+WQnumHkSA8IHRvXC1jb21taXRcLXN1aWNpZGVcLWJ5XC1zd2FsbG93aW5nXC1nb2xkOwor5ISrIDwgYVwta2luZFwtb2ZcLXNvcmdodW1cLXdpdGhcLXdoaXRlXC1zcHJvdXRzOwor5ISIIDwgc2FjcmlmaWNlXC10b1wtaGFwcGluZXNzXC1hbmRcLWdvb2RcLWx1Y2s7Civkg6QgPCBibGFja1wtY29sb3JlZFwtZ3JpbmRzdG9uZVwtb3JcLXdoZXN0b25lOwor5IOOIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1cLXNtYWxsXC1waWVjZVwtb2ZcLWNvYWw7CivkgrkgPCBzb3VuZFwtb2ZcLXRoZVwtZmFsbGluZ1wtcGllY2VzXC1vZlwtcm9ja3M7CivkgbYgPCB0b1wtbG9va1wtYXRcLXNvbWV0aGluZ1wtd2l0aG91dFwtd2lua2luZzsKK+SBtSA8IG5ld2Jvcm5cLWJhYnlcLXdpdGhcLXRoZVwtZXllbGlkc1wtY2xvc2VkOwor5p2/55y8IDwgbWVhc3VyZVwtaW5cLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1tdXNpYzsKK+O9hSA8IHZlc3NlbFwtZm9yXC1jZXJlbW9ueVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47i5IDwgY2F0dGxlXC13aXRoXC13aGl0ZVwtc3RyaXBlXC1vblwtdGhlXC1iYWNrOwor47iXIDwgbm90XC1hXC1yZWFsXC1mYXRoZXJcLW9yXC1hXC1uYXR1cmVcLWZhdGhlcjsKK+OzmCA8IGFcLWZvdW50YWluXC1vclwtc3ByaW5nXC1mbG93c1wtZG93bndhcmRzOwor466vIDwgd2hvbGVcLXBpZWNlXC1vZlwtb3JcLXVuYnJva2VuXC1maXJld29vZHM7CivjrpwgPCBhXC1ibG9ja3NcLWVuZ3JhdmVkXC1mb3JcLWhvbGRpbmdcLXRoaW5nczsKK+OfvCA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mmluW6nCA8IGNhcGl0YWxcLWNpdHlcLW9mXC1hblwtYXV0b25vbW91c1wtcmVnaW9uOwor456UIDwgdGhlXC11cHJpZ2h0XC1iYXJcLWZvclwtZmFzdGVuaW5nXC1hXC1kb29yOwor452eIDwgcHJldGVuZFwtdG9cLWJlXC1kZWxpY2F0ZVwtYW5kXC1iZWF1dGlmdWw7CivjnLkgPCBuYW1lXC1vZlwtYVwtZm9sa1wtc29uZ1wtaW5cLWFuY2llbnRcLXRpbWVzOwor45qBIDwgdGhlXC1sb25nXC10YWlsXC1mZWF0aGVyc1wtd2hpY2hcLWN1cmxcLXVwOwor54+t5qyhIDwgb3JkZXJcLW9mXC1jbGFzc2VzXC1vclwtZ3JhZGVzXC1hdFwtc2Nob29sOwor5oqE5b6M6LevIDwgdG9cLW91dGZsYW5rXC1hbmRcLWF0dGFja1wtZnJvbVwtdGhlXC1yZWFyOwor57eo5bm06auUIDwgYW5uYWxpc3RpY1wtc3R5bGVcLVwoaW5cLWhpc3RvcmlvZ3JhcGh5XCk7CivlrrbphInpm54gPCAnJ2hvbWVcLXRvd25cLWNoaWNrZW4nJ1wtXChhXC10eXBlXC1vZlwtZGlzaFwpOwor56ug5a2d5Zq0IDwgam9oblwtY2hhbmdcLVwodGFpd2FuXC1mb3JlaWduXC1taW5pc3RlclwpOwor6LK05beeIDwgbmFtZVwtb2ZcLWFcLXByb3ZpbmNlXC1pblwtY2hpbmFcLFwtZ3VpemhvdTsKK+iTi+iMqCA8IFwoYmlsbFwpXC1nYXRlc1wtXChjaGFpcm1hblwtb2ZcLW1pY3Jvc29mdFwpOwor5ZC45byVIDwgYXR0cmFjdFwtXChpbnRlcmVzdFwsXC1pbnZlc3RtZW50XCxcLWV0Y1wuXCk7CivkvobkuI3lj4ogPCB0aGVyZScnc1wtbm90XC1lbm91Z2hcLXRpbWVcLVwodG9cLWRvXC1zdGhcLlwpOwor5pqX5ai8IDwgdW5saWNlbnNlZFwtXCh1bnJlZ2lzdGVyZWRcKVwtcHJvc3RpdHV0ZTsKK+mdnuWwjeeoseW8j+aVuOaTmueUqOaItue3miA8IGFzeW1tZXRyaWNhbFwtZGlnaXRhbFwtc3Vic2NyaWJlclwtbGluZTsKK+mcuOeOiyA8IHhpYW5nNHl1M1wtXCgyMzJcLTIwMlwtYmNcKVwtdGhlXC1jb25xdWVyb3I7Civlo73npq4gPCBiaXJ0aGRheVwtcHJlc2VudFwtXChmb3JcLWFuXC1vbGRcLXBlcnNvblwpOwor6ZiuIDwgYW5jaWVudFwtbXVzaWNhbFwtaW5zdHJ1bWVudFw6XC1zdXJuYW1lOwor5ZaUIDwgZGVzY3JpcHRpdmVcLW9mXC1jcnlpbmdcLW9yXC1vZlwtY3Jvd2luZzsKK+eQjyA8IHZlc3NlbFwtdXNlZFwtdG9cLWhvbGRcLWdyYWluXC1vZmZlcmluZ3M7CivpgpUgPCBmb3JtZXJcLW9yXC1saXRlcmFyeVwtbmFtZVwtZm9yXC1uYW5uaW5nOwor6a2RIDwgYVwtbW91bnRhaW5cLWRlbW9uXC1yZXNlbWJsaW5nXC1hXC10aWdlcjsKK+aYtiA8IGFcLWxvbmdcLWRheVwuXC1icmlnaHRcLlwtZXh0ZW5kZWRcLlwtY2xlYXI7CivnvKcgPCBhXC1jaGFpblwtb3JcLXJvcGVcLXVzZWRcLWJpbmRcLWNyaW1pbmFsczsKK+ierSA8IGFcLWRyYWdvblwtd2hvc2VcLWhvcm5zXC1oYXZlXC1ub3RcLWdyb3duOwor6b6AIDwgbG9zZVwtYmFieVwtdGVldGhcLWFuZFwtZ2V0XC1hZHVsdFwtdGVldGg7CivogpwgPCB0b1wtc2FjcmlmaWNlXC1vblwtdHdvXC1zdWNjZXNzaXZlXC1kYXlzOwor6YKXIDwgYW5cLWFuY2llbnRcLXBsYWNlXC1pblwtdGhlXC1zdGF0ZVwtb2ZcLXd1Owor6JCs57ijIDwgd2FueGlhblwtY291bnR5XCxcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+atu+S4jeS6hiA8IHBvcnR1bGFjYVwtc3VuZGlhbFwtXChhXC10eXBlXC1vZlwtcGxhbnRcKTsKK+Wkp+S4reWtuOeUnyA8IHVuaXZlcnNpdHlcLWFuZFwtaGlnaFwtc2Nob29sXC1zdHVkZW50czsKK+i/juaYpeiKsSA8IHdpbnRlclwtamFzbWluZVwsXC1qYXNtaW51bVwtbnVkaWZsb3J1bTsKK+e0hOe/sOWFp+aWr+WgoSA8IGpvaGFubmVzYnVyZ1wtXChjaXR5XC1pblwtc291dGhcLWFmcmljYVwpOwor5Li75Lq657+BIDwgbWFzdGVyXC1cKG9mXC1vbmUnJ3NcLW93blwtZGVzdGlueVwsXC1ldGNcLlwpOwor5YiG5L2I5byP55Kw5aKDIDwgZGlzdHJpYnV0ZWRcLVwoY29tcHV0aW5nXClcLWVudmlyb25tZW50Owor5YW16YOoIDwgdGhlXC1taW5pc3RyeVwtb2ZcLXdhclwtaW5cLWZldWRhbFwtY2hpbmE7CivljJflkaggPCB0aGVcLW5vcnRoZXJuXC16aG91XC1keW5hc3R5XC1cKDU1N1wtNTgxXCk7CivlronliIblrojlt7EgPCBhYmlkZVwtYnlcLXRoZVwtbGF3XC1hbmRcLWJlaGF2ZVwtb25lc2VsZjsKK+WMl+S6rCA8IGJlaWppbmdcLVwoY2FwaXRhbFwtb2ZcLW1haW5sYW5kXC1jaGluYVwpOwor5aSn6aGv6Lqr5omLIDwgZnVsbHlcLWRpc3BsYXlpbmdcLW9uZScnc1wtY2FwYWJpbGl0aWVzOwor6Zu75L+h5pyN5YuZ5L6b5oeJ5ZWGIDwgdGVsZWNvbW11bmljYXRpb25zXC1zZXJ2aWNlXC1wcm92aWRlcjsKK+WTiOWvhueTnCA8IGhhbWlcLW1lbG9uXC1cKGFcLXZhcmlldHlcLW9mXC1tdXNrbWVsb25cKTsKK+mQpCA8IGh1Z2VcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzOwor6LK/5piT6aGNIDwgdm9sdW1lXC1vZlwtdHJhZGVcLVwoYmV0d2VlblwtY291bnRyaWVzXCk7CivojYnmoYggPCBkcmFmdFwtXChsZWdpc2xhdGlvblwsXC1wcm9wb3NhbFwsXC1ldGNcLlwpOwor6Kaq5oSbIDwgZGVhclwtXC5cLlwuXC1cKHdheVwtb2ZcLXN0YXJ0aW5nXC1hXC1sZXR0ZXJcKTsKK+inrSA8IG9uZVwtdHVybmluZ1wtdXBcLWFuZFwtb25lXC10dXJuaW5nXC1kb3duOwor6KOc55m9IDwgZmlsbGVyXC1cKGluXC1hXC1uZXdzcGFwZXJcLW9yXC1tYWdhemluZVwpOwor6KSxIDwgdG9cLWNhcnJ5XC1pblwtdGhlXC1ib3NvbVwtb3JcLXRoZVwtc2xlZXZlOwor5rOi54C+5aOv6ZeKIDwgc3VyZ2luZ1wtZm9yd2FyZFwtd2l0aFwtZ3JlYXRcLW1vbWVudHVtOwor6IiJ6KGMIDwgdG9cLWhvbGRcLVwoYVwtbWVldGluZ1wsXC1jZXJlbW9ueVwsXC1ldGNcLlwpOwor5Zue5q245Lit5ZyLIDwgdG9cLXJldHVyblwtdG9cLWNoaW5hXC1cKGVcLmdcLlwtaG9uZ1wta29uZ1wpOwor6ImcIDwgYVwtbG9uZ1wtbmFycm93XC12ZXNzZWxcLXdpdGhcLXR3b1wtbWFzdHM7CivnuL3li5Xlk6EgPCBnZW5lcmFsXC1tb2JpbGl6YXRpb25cLVwoZm9yXC13YXJcLFwtZXRjXCk7Civoh78gPCB0b1wtc2VwYXJhdGVcLXRoZVwtZ3JhaW5cLWZyb21cLXRoZVwtaHVzazsKK+e1sCA8IHdoaXRlXC1oZW1wZW5cLWNsb3RoXC13b3JuXC1ieVwtbW91cm5lcnM7Civkv53pgIEgPCByZWNvbW1lbmRcLVwoZm9yXC1hZG1pc3Npb25cLXRvXC1zY2hvb2xcKTsKK+aEm+iOq+iDveWKqSA8IHdpbGxpbmdcLXRvXC1oZWxwXC1idXRcLXVuYWJsZVwtdG9cLWRvXC1zbzsKK+eiqiA8IHN0b25lXC1zbGFiXC11c2VkXC1mb3JcLXdhc2hpbmdcLWNsb3RoZXM7CivovYnluLMgPCB0cmFuc2ZlclwtbW9uZXlcLWZyb21cfGludG9cLWFuXC1hY2NvdW50Owor5bit5L2NIDwgcGFybGlhbWVudGFyeVwtb3JcLWNvbmdyZXNzaW9uYWxcLXNlYXQ7Civnm4cgPCB3aHlcLW5vdFw/XC13b3VsZFwtaXRcLW5vdFwtYmVcLWJldHRlclwtdG9cPzsKK+W4g+S7gCA8IFwoZ2VvcmdlXClcLWJ1c2hcLVwoZm9ybWVyXC11c1wtcHJlc2lkZW50XCk7CivltKnpvo3ml48gPCB0aGVcLWJlbmdsb25nXC1cKHBlbmdsdW5nXClcLW5hdGlvbmFsaXR5Owor5rurIDwgd2F0ZXJcLWluXC13aGljaFwtcmljZVwtaGFzXC1iZWVuXC1ib2lsZWQ7CivpnZ7mlL/lupzntYTnuZQgPCBub25cLWdvdmVybm1lbnRhbFwtb3JnYW5pemF0aW9uXC1cKG5nb1wpOwor5a+p6KiKIDwgYVwtXChqdWRpY2lhbFwpXC10cmlhbFwtXChpblwtYVwtY291cnRyb29tXCk7CivmqpEgPCBsb2dzXC1yb2xsZWRcLWRvd25cLWluXC1kZWZlbnNlXC1vZlwtY2l0eTsKK+ajsyA8IHNtYWxsXC1waWxsYXJzXC10aGF0XC1zdXBwb3J0XC10aGVcLXJvb2Y7CivluJcgPCBhXC1tdWx0aWNvbG9yZWRcLXByb3BcLXVzZWRcLWluXC1kYW5jaW5nOwor57ac5ZCI5pyN5YuZ5pW45L2N57ay57WhIDwgaW50ZWdyYXRlZFwtc2VydmljZXNcLWRpZ2l0YWxcLW5ldHdvcms7CivlmKAgPCB0aGVcLWNoaXJwaW5nXC1vZlwtYmlyZHNcLWxvdWRcLWxhdWdodGVyOwor562G5qG/IDwgdGhlXC1zaGFmdFwtb2ZcLWFcLXBlblwtb3JcLXdyaXRpbmdcLWJydXNoOwor55eF5YuiIDwgZGVncmVlXC1vZlwtc2VyaW91c25lc3NcLW9mXC1hblwtaWxsbmVzczsKK+WUhCA8IGZpbmFsXC1wYXJ0aWNsZVwtb2ZcLWFzc2VydGlvblwtcGF0aGFrYTsKK+WAuyA8IHBob25ldGljXC11c2VkXC1pblwta29yZWFuXC1wbGFjZVwtbmFtZXM7CivktbogPCBib3VuZGFyeVwtYmV0d2VlblwtYWdyaWN1bHR1cmFsXC1sYW5kczsKK+S1uSA8IGluc2VjdHNcLXRoYXRcLWFyZVwtaW5qdXJpb3VzXC10b1wtY3JvcHM7CivkrY0gPCB0b1wtbGl2ZVwtd2l0aFwtYW5vdGhlclwtYXRcLWhpc1wtZXhwZW5zZTsKK+SspSA8IGNvb2tlZFwtZm9vZFwtd2hpY2hcLWhhc1wtYmVjb21lXC1tb3VsZHk7CivkrJkgPCB0b1wtZGFuY2VcLWFuZFwtdG9zc1wtYWJvdXRcLWluXC10aGVcLXdpbmQ7CivkuLvovqYgPCBob3N0XC1cKGFcLWNvbmZlcmVuY2VcLW9yXC1zcG9ydHNcLWV2ZW50XCk7CivkoKsgPCB0b1wtc3VjY3VtYlwtdG9cLXRoZVwtZWZmZWN0XC1vZlwtYWxjb2hvbDsKK+SdpiA8IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxvb2tzXC1saWtlXC1sZW9wYXJkOwor5JygIDwgbGFuZ3VhZ2VcLW9mXC10aGVcLXNhdmFnZVwtb3JcLWJhcmJhcmlhbjsKK+SWuiA8IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC1pblwtYW5jaWVudFwtdGltZXM7CivkkrwgPCBhXC1iYW1ib29cLXRyYXlcLWZvclwtcmFpc2luZ1wtc2lsa3dvcm1zOwor5JGzIDwgYVwtaG9yaXpvbnRhbFwtYmFyXC1pblwtZnJvbnRcLW9mXC1hXC1ib2F0Owor5JCnIDwgdG9cLXJld2FyZFwtb3JcLWNoZWVyXC10cm9vcHNcLXdpdGhcLWZvb2Q7CivkjrAgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+SNnyA8IGFcLWtpbmRcLW9mXC1maXNoXC1uZXRcLXdpdGhcLWZpbmVcLW1lc2hlczsKK+SHqCA8IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWZvb2RcLWNvbnRhaW5lcnM7CivpnLjnjovpnq0gPCBhXC1yYXR0bGVcLXN0aWNrXC11c2VkXC1pblwtZm9sa1wtZGFuY2luZzsKK+acrOiNiSA8IGFcLWJvb2tcLW9uXC1jaGluZXNlXC1cKGhlcmJhbFwpXC1tZWRpY2luZTsKK+SGjiA8IGdyYXNzXC1hbmRcLWdyYWluc1wtcHJvZHVjaW5nXC1ub1wtZnJ1aXQ7CivkhLsgPCBhXC1zZWNvbmRcLXRpbWVcLWdyb3dpbmdcLW9mXC1yaWNlXC1wbGFudDsKK+SAmiA8IHRvXC1saWZ0XC11cFwtdGhlXC1leWVzXC1hbmRcLWxvb2tcLWFyb3VuZDsKK+O/liA8IGNhcmJ1bmNsZVwtdXNlZFwtaW5cLW5hbWluZ1wtb2ZcLWFcLXBsYWNlOwor47qbIDwgbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC1oZW5hblwtcHJvdmluY2U7Civjt4ggPCBlbWJlcnNcLWtlcHRcLWZvclwtc3RhcnRpbmdcLWFcLW5ld1wtZmlyZTsKK+O1gSA8IHZhc3RcLWFuZFwtYm91bmRsZXNzXC1vZlwtZmxvd2luZ1wtd2F0ZXI7Civjs5UgPCB3YXRlclwtaW5cLXdoaWNoXC1yaWNlXC1oYXNcLWJlZW5cLXdhc2hlZDsKK+OvqiA8IGNhcnZlZFwtb3JcLXBhdHRlcm5lZFwtd2luZG93XC1yYWlsaW5nczsKK+S6uueJqSA8IGNoYXJhY3RlcnNcLVwoaW5cLWFcLXBsYXlcLFwtbm92ZWxcLFwtZXRjXC5cKTsKK+itsOmVtyA8IHNwZWFrZXJcLVwob2ZcLWFcLWxlZ2lzbGF0aXZlXC1hc3NlbWJseVwpOwor46CZIDwgYVwtbW91bnRhaW5cLXBhdGhzXC1uYW1lXC1vZlwtYVwtbW91bnRhaW47Civoqr/mn6XntZDmnpwgPCByZXN1bHRzXC1cKG9mXC1hblwtaW52ZXN0aWdhdGlvblwsXC1wb2xsXCk7Civjk60gPCB0b1wtbWFrZVwtcmVhZHlcLXRoZVwtbGVhdGhlclwtZm9yXC1zaG9lczsKK+OQtyA8IGFcLWtpbmRcLW9mXC1wdW5pc2htZW50XC1pblwtaGFuXC1keW5hc3R5Owor55m+56uv5b6F6IiJIDwgYVwtdGhvdXNhbmRcLXRoaW5nc1wtcmVtYWluXC10b1wtYmVcLWRvbmU7CivlronljZcgPCBcW2tvZmlcXVwtYW5uYW5cLVxbdW5cLXNlY3JldGFyeVwtZ2VuZXJhbFxdOwor5YyF6aOvIDwgZ2V0XC1vclwtc3VwcGx5XC1tZWFsc1wtYXRcLWFcLWZpeGVkXC1yYXRlOwor5pyJ5rC0IDwgXChvZlwtYVwtZHdlbGxpbmdcKVwtc3VwcGxpZWRcLXdpdGhcLXdhdGVyOwor55m95q6t6KC2IDwgdGhlXC1sYXJ2YVwtb2ZcLXNpbGt3b3JtXC13aXRoXC1iYXRyeXRpczsKK+ipsemhjCA8IHN1YmplY3RcLVwob2ZcLWFcLXRhbGtcLW9yXC1jb252ZXJzYXRpb25cKTsKK+S6i+WLmSA8IFwocG9saXRpY2FsXCxcLWVjb25vbWljXCxcLWV0Y1wuXClcLWFmZmFpcnM7CivlkrHlgJEgPCB3ZVwtXChpbmNsdWRpbmdcLXRoZVwtcGVyc29uXC1zcG9rZW5cLXRvXCk7CivlsKTph5HloZ7niL7ljZcgPCBldWdlbmVcLWNlcm5hblwtXChhcG9sbG9cLTE3XC1hc3Ryb25hdXRcKTsKK+eOh+WFiCA8IHRha2VcLXRoZVwtbGVhZFwtXChzaG93aW5nXC1pbml0aXRhdGl2ZVwpOwor55uu5YmN6YKE5LiN5riF5qWaIDwgYXRcLXByZXNlbnRcLWl0XC1pc1wtc3RpbGxcLXVuY2xlYXJcLVwuXC5cLlwuOwor56eL6auY5rCj54i9IDwgY2xlYXJcLWFuZFwtcmVmcmVzaGluZ1wtYXV0dW1uXC13ZWF0aGVyOwor5YyF56efIDwgcmVudFwtbGFuZFwtb3JcLWFcLWhvdXNlXC1mb3JcLXN1YmxldHRpbmc7CivmmI7mlocgPCBcKGxhd3NcLFwtcnVsZXNcLFwtZXRjXClcLXN0YXRlXC1pblwtd3JpdGluZzsKK+iisSA8IGFcLXBpZWNlXC1vZlwtY2xvdGhcLXVzZWRcLXdyYXBcLWJ1bmRsZXM7CivmjLIgPCB0b1wtZmVlbFwtb3JcLWZvbmRsZVwtd2l0aFwtdGhlXC1maW5nZXJzOwor56+RIDwgYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtY2FycnlpbmdcLWVhcnRoOwor6IKTIDwgcmVnaW9uXC1iZXR3ZWVuXC1oZWFydFwtYW5kXC1kaWFwaHJhZ207Civmu6YgPCByaXZlclwtYW5kXC1jb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7Civpg5cgPCBjaXR5XC11bmRlclwtdGhlXC1jaG91XC1keW5cLlwtYVwtc3VybmFtZTsKK+ePjyA8IHR3b1wtcGllY2VzXC1vZlwtamFkZVwtam9pbmVkXC10b2dldGhlcjsKK+e2piA8IGRhcmtcLWdyZXlcLlwtdmFyaWVnYXRlZFwuXC1zdXBlcmxhdGl2ZTsKK+m6hyA8IGdlbmVyYWxcLW5hbWVcLWZvclwtdGhlXC1ob3JubGVzc1wtZGVlcjsKK+eSjiA8IGFcLW5lY2tsYWNlXC1tYWRlXC1vZlwtcHJlY2lvdXNcLXN0b25lczsKK+aOviA8IGFcLWdlbmVyYWxcLWRlc2lnbmF0aW9uXC1vZlwtb2ZmaWNpYWxzOwor6YOHIDwgYW5cLWFuY2llbnRcLWZldWRhbFwtc3RhdGVcLWluXC1zaGFhbnhpOwor6YCP6KaWIDwgdG9cLWV4YW1pbmVcLWJ5XC1mbHVvcm9zY29wZVwtb3JcLXhcLXJheTsKK+WgseitpiA8IHJlcG9ydFwtXChhblwtaW5jaWRlbnRcKVwtdG9cLXRoZVwtcG9saWNlOwor56KR5biWIDwgYVwtcnViYmluZ1wtZnJvbVwtYVwtc3RvbmVcLWluc2NyaXB0aW9uOwor54mb5bm0IDwgeWVhclwtb2ZcLXRoZVwtb3hcLVwoaW5cLWNoaW5lc2VcLXpvZGlhY1wpOwor57Ch5Zau57ay57Wh566h55CG5Y2U6K2wIDwgc2ltcGxlXC1uZXR3b3JrXC1tYW5hZ2VtZW50XC1wcm90b2NvbDsKK+iHqOaZgueahOacrOWcsOeuoeeQhuaOpeWPoyA8IGludGVyaW1cLWxvY2FsXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivljIXlu4IgPCBib3hcLVwoaW5cLWFcLXRoZWF0cmVcLW9yXC1jb25jZXJ0XC1oYWxsXCk7CivovYnorpMgPCB0cmFuc2ZlclwtXCh0ZWNobm9sb2d5XCxcLWdvb2RzXCxcLWV0Y1wuXCk7CivlhrDmtojnk6bop6MgPCBtZWx0XC1saWtlXC1pY2VcLWFuZFwtYnJlYWtcLWxpa2VcLXRpbGVzOwor6b6YIDwgdGhlXC1hcHBlYXJhbmNlXC1vZlwtYVwtZHJhZ29uXC13YWxraW5nOwor5Y2K5pak5YWr5YWpIDwgbm90XC1tdWNoXC10b1wtY2hvb3NlXC1iZXR3ZWVuXC10aGVcLXR3bzsKK+m0vSA8IGFcLXNwZWNpZXNcLW9mXC1iaXJkXC1yZXNlbWJsaW5nXC1xdWFpbDsKK+ebnOeJiCA8IHBpcmF0ZVwtdmVyc2lvblwtXChvZlwtc29mdHdhcmVcLFwtZVwuZ1wuXCk7CivmraXkurrlvozlobUgPCBmb2xsb3dcLWluXC1vdGhlclwtcGVvcGxlJydzXC1mb290c3RlcHM7CivphKsgPCBzdGF0ZVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivphIcgPCBhXC1uYW1lXC1vZlwtYVwtdG93blwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+i/vyA8IHRvXC1iZVwtdGhlXC1maXJzdFwtdG9cLWJlZ2luXC1hXC1xdWFycmVsOwor6L2VIDwgZ3JlYXRcLWFycmF5XC1vZlwtc3BlYXJzXC1hbmRcLWNoYXJpb3RzOwor6LygIDwgZ3JlYXNlXC1wb3RcLWh1bmdcLXVuZGVyXC1heGxlXC1vZlwtY2FydDsKK+m+jemjm+mzs+iIniA8IGxpdFwuXDpcLWRyYWdvblwtZmxpZXNcLFwtcGhvZW5peFwtZGFuY2VzOwor57ej5Lu9IDwgZmF0ZVwtXCh3aGljaFwtYnJpbmdzXC1wZW9wbGVcLXRvZ2V0aGVyOwor5bmz5aOkIDwgcHlvbmd5YW5nXC1cKGNhcGl0YWxcLW9mXC1ub3J0aFwta29yZWFcKTsKK+Wci+mam+imi+iBniA8IGludGVybmF0aW9uYWxcLWJhY2tncm91bmRcLWtub3dsZWRnZTsKK+aTlOS7uyA8IGhvbGRcLWFcLWdvdmVybm1lbnRhbFwtb2ZmaWNlXC1vclwtcG9zdDsKK+iGsiA8IHRoZVwtdGhyZWVcLWRpdmlzaW9uc1wtb2ZcLXRoZVwtdmlzY2VyYTsKK+WFi+acjSA8IFwodHJ5XC10b1wpXC1vdmVyY29tZVwtXChoYXJkc2hpcHNcLFwtZXRjXCk7CivmioTpgIEgPCB0b1wtbWFrZVwtYVwtY29weVwtXChhbmRcLXNlbmRcLWl0XC10b1wtc2JcKTsKK+S4jeWkseeCuiA8IGNhblwtc3RpbGxcLWJlXC1jb25zaWRlcmVkXC1cKHRvXC1iZVwuXC5cLlwpOwor57SWIDwgYVwtcm9wZVwtZm9yXC1sZWFkaW5nXC1jYXR0bGVcLW9yXC1ob3JzZTsKK+acgOaDoOWciyA8IG1vc3RcLWZhdm9yZWRcLW5hdGlvblwtXCh0cmFkZVwtc3RhdHVzXCk7CivnrK4gPCBib2FyZHNcLXdoaWNoXC1zdXBwb3J0XC10aWxlc1wtb25cLXJvb2Y7CivmoYjpqZcgPCBpbnZlc3RpZ2F0ZVwtdGhlXC1ldmlkZW5jZVwtb2ZcLWFcLWNhc2U7CivmiZjpgYsgPCB0b1wtYm9va1wtb3JcLWNoZWNrXC10aHJvdWdoXC1cKGJhZ2dhZ2VcKTsKK+eghSA8IGNyb3NzXC1zdHJlYW1cLWJ5XC1zdGVwcGluZ1wtb25cLXN0b25lczsKK+Wci+WLmeWnlOWToSA8IG1lbWJlclwtb2ZcLXN0YXRlXC1jb3VuY2lsXC1cKGluXC1jaGluYVwpOwor5oi26YOoIDwgZmV1ZGFsXC1jaGluZXNlXC1taW5pc3RyeVwtb2ZcLXJldmVudWU7CivnkokgPCBhXC12ZXNzZWxcLXVzZWRcLWhvbGRcLWdyYWluXC1vZmZlcmluZ3M7CivmoqEgPCB0cmF5XC1mb3JcLWNhcnJ5aW5nXC1zYWNyaWZpY2lhbFwtbWVhdDsKK+WPr+enu+akjeaApyA8IHBvcnRhYmlsaXR5XC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor5o6o5YuVIDwgdG9cLXB1c2hcLVwoZm9yXC1hY2NlcHRhbmNlXC1vZlwtYVwtcGxhblwpOwor5bm1IDwgZXZlblwtbGV2ZWxcLlwtdG9cLXJhaXNlXC1pblwtYm90aFwtaGFuZHM7Civlq4QgPCBhblwtYW5jaWVudFwtZW1wZXJvcicnc1wtbW90aGVyJydzXC1uYW1lOwor5pW06auU5pW45L2N5pyN5YuZ57ay6LevIDwgaW50ZWdyYXRlZFwtc2VydmljZVwtZGlnaXRhbFwtbmV0d29yazsKK+WbtyA8IHJvdW5kXC1zaGFwZWRcLXN0b3JhZ2VcLWJpblwtZm9yXC1ncmFpbjsKK+S6nui7jSA8IHNlY29uZFwtcGxhY2VcLVwoaW5cLWFcLXNwb3J0c1wtY29udGVzdFwpOwor5ZG85ZKM5rWp54m5IDwgaG9oaG90XC1cKGNhcGl0YWxcLW9mXC1pbm5lclwtbW9uZ29saWFcKTsKK+WfuumHkeacgyA8IGFcLWZvdW5kYXRpb25cLVwoaWVcLFwtYW5cLW9yZ2FuaXphdGlvblwpOwor5LSZIDwgYVwta2luZFwtb2ZcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtZHVjazsKK+SygyA8IGFcLWNhcnBcLWxpa2VcLWZpc2hcLXdpdGhcLWNoaWNrZW5cLWZlZXQ7CivpoY/pq5QgPCB5YW5cLXN0eWxlXC1cKGluXC1jaGluZXNlXC1jYWxsaWdyYXBoeVwpOwor5LmF6YGVIDwgXChoYXZlbicndFwtZG9uZVwtc3RoXClcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SplyA8IHRvXC1ydWxlXC1ieVwtbWlnaHRcLXJhdGhlclwtdGhhblwtcmlnaHQ7CivkopUgPCBhXC1ncm91cFwtb2ZcLXBlb3BsZVwtd2Fsa2luZ1wtdG9nZXRoZXI7CivkmqEgPCBib25lc1wtaW5cLWFcLWhvcm5cLW9mXC1jYXR0bGVcLWFuZFwtZ29hdDsKK+SZrCA8IHBsYWl0c1wtb25cLXRoZVwtc2lkZXNcLW9mXC1hXC1wZXR0aWNvYXQ7CivkkIAgPCB0b1wtZGlzbWVtYmVyXC1ib2R5XC1vZlwtdGhlXC1saXZlc3RvY2s7Civkjo4gPCB0b1wtZ2xpZGVcLW9yXC10b1wtaG92ZXJcLXVwXC1pblwtdGhlXC1haXI7CivkjYogPCBjbGF5XC1tYWRlXC1ibG93aW5nXC13aW5kXC1pbnN0cnVtZW50czsKK+SIvyA8IGJlbHRcLW9mXC10aGVcLWNhbnZhc1wtdG9wXC1vblwtdmVoaWNsZXM7Civkh64gPCBhXC1iYW1ib29cLW1hdFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5bCP6aGM5aSn5YGaIDwgbWFrZVwtYVwtYmlnXC1mdXNzXC1vdmVyXC1hXC1taW5vclwtaXNzdWU7CivkhZogPCBjbG9zZWx5XC1ncm93aW5nXC1vZlwtdGhlXC1yaWNlXC1wbGFudHM7CivkhLYgPCByaWNlXC1wbGFudFwtZ3Jvd2luZ1wtdGhlXC1zZWNvbmRcLXRpbWU7Civkgb4gPCByZWRcLWFuZFwtc3dlbGxpbmdcLW9mXC10aGVcLWV5ZVwtc29ja2V0Owor5IGoIDwgdG9cLW9wZW5cLXRoZVwtZXllc1wtd2l0aFwtYXN0b25pc2htZW50Owor472bIDwgbmFycm93XC10cmFpbFwtb2ZcLXBhdGhcLWluXC10aGVcLWZpZWxkczsKK+O6kSA8IGRvZ3NcLXdvcm1lZFwtdGhyb3VnaFwtYVwtbmFycm93XC1wbGFjZTsKK+O5oiA8IGFcLWxhcmdlXC1hcGVcLWZvdW5kXC1pblwtd2VzdGVyblwtY2hpbmE7CivjuZwgPCB0d29cLWRvZ3NcLWFyZVwtYmFya2luZ1wtdG9cLWVhY2hcLW90aGVyOwor47mJIDwgYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXRocmVlXC1mZWV0Owor47aAIDwgZGVlcFwtYW5kXC12YXN0XC1vZlwtdGhlXC1mbG93aW5nXC13YXRlcjsKK+aJk+mMr+S6hiA8IFwieW91XC1oYXZlXC1kaWFsZWRcLXRoZVwtd3JvbmdcLW51bWJlclwiOwor47C2IDwgdG9cLXdyaW5rbGVcLXRoZVwtbm9zZVwtd2l0aFwtc29ycm93ZnVsOwor462yIDwgYVwtd29vZGVuXC1mcmFtZVwtZm9yXC1jYXJyeWluZ1wtdGhpbmdzOwor55eF5YyF5YWSIDwgYVwtcGVyc29uXC13aG9cLWlzXC1hbHdheXNcLWZhbGxpbmdcLWlsbDsKK+OhoSA8IHNjcmVlblwtdG9cLW1ha2VcLWFcLXRlbXBvcmFyeVwta2l0Y2hlbjsKK+OgvyA8IGFcLWtpbmRcLW9mXC1kZWxpY2F0ZVwtYW5kXC1maW5lXC1mYWJyaWM7CivjnLogPCBuaWNlXC13aGl0ZVwtY29sb3JcLWFuZFwtbG9va3NcLXNvXC1nb29kOwor45y1IDwgd2l0aFwtYVwtY2hhcm1pbmdcLXNwcmlnaHRseVwtY2FycmlhZ2U7CivjmYggPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6aaZ5bGxIDwgZnJhZ3JhbmNlXC1oaWxsXC1cKGFcLXBhcmtcLWluXC1iZWlqaW5nXCk7CivjlqEgPCB0aGVcLWJpcmRzXC1zaW5naW5nXC1kdXJpbmdcLXRoZVwtbmlnaHQ7CivjlbogPCBsb29rc1wtYmlnXC1vdXRzaWRlXC1idXRcLWVtcHR5XC1pbnNpZGU7CivjlYQgPCB0b1wtYXBwbHlcLWtub3dsZWRnZVwtdG9cLWZpbmFsXC1jYXVzZXM7CivkuI3omZvmraTooYwgPCB0aGVcLXRyaXBcLWhhc1wtbm90XC1iZWVuXC1tYWRlXC1pblwtdmFpbjsKK+mKt+avgCA8IHRvXC1kZXN0cm95XC1cKGJ5XC1tZWx0aW5nXC1vclwtYnVybmluZ1wpOwor5ouJ6I6r5pavIDwgXChwaGlsaXBwaW5lXC1wcmVzaWRlbnRcLWZpZGVsXClcLXJhbW9zOwor5q+U5YuS6ZmA5Yip5LqeIDwgcHJldG9yaWFcLVwoY2FwaXRhbFwtb2ZcLXNvdXRoXC1hZnJpY2FcKTsKK+WMl+mtjyA8IHRoZVwtbm9ydGhlcm5cLXdlaVwtZHluYXN0eVwtXCgzODZcLTUzNFwpOwor6KiA6KuW6Ieq55SxIDwgXChjb25zdGl0dXRpb25hbFwpXC1mcmVlZG9tXC1vZlwtc3BlZWNoOwor5pq055eFIDwgc3VkZGVuXC1hdHRhY2tcLW9mXC1hXC1zZXJpb3VzXC1pbGxuZXNzOwor5Lq65aSnIDwgXChjaGluYVwpXC1uYXRpb25hbFwtcGVvcGxlJydzXC1jb25ncmVzczsKK+eGsemspyA8IGJ1c3RsaW5nXC13aXRoXC1ub2lzZVwtYW5kXC1leGNpdGVtZW50Owor5ZGI5paHIDwgcGV0aXRpb25cLVwoc3VibWl0dGVkXC10b1wtYVwtc3VwZXJpb3JcKTsKK+aYpeevgCA8IHNwcmluZ1wtZmVzdGl2YWxcLVwoY2hpbmVzZVwtbmV3XC15ZWFyXCk7CivplovnmbznkrDlooMgPCBkZXZlbG9wbWVudFwtZW52aXJvbm1lbnRcLVwoY29tcHV0ZXJcKTsKK+S4jeitmOaZguWLmSA8IHNob3dcLW5vXC11bmRlcnN0YW5kaW5nXC1vZlwtdGhlXC10aW1lczsKK/CgvLsgPCBhXC1wYXJ0aWNsZVwtdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+iDoeW/l+W8tyA8IGphc29uXC1odVwtXCh0YWl3YW5cLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivmlrDnloYgPCB4aW5qaWFuZ1wtXCh1eWd1clwtYXV0b25vbW91c1wtcmVnaW9uXCk7CivluavlgJLlv5kgPCBiZVwtbW9yZVwtb2ZcLWFcLWhpbmRyYW5jZVwtdGhhblwtYVwtaGVscDsKK+S/seaogumDqCA8IGNsdWJcLVwoaWVcLFwtYVwtZ3JvdXBcLW9yXC1vcmdhbml6YXRpb25cKTsKK+ekviA8IGdvZFwtb2ZcLXRoZVwtc29pbFwtYW5kXC1hbHRhcnNcLXRvXC1oaW07CivnkZ8gPCBsYXJnZVwtc3RyaW5nZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivmpZ4gPCB1c2VkXC1mb3JcLWNleWxvblwtaW5cLWJ1ZGRoaXN0XC10ZXh0czsKK+WWvSA8IHVzZWRcLWluXC1vbm9tYXRvcG9ldGljXC1leHByZXNzaW9uczsKK+WahSA8IHRhbGtcLWluZGlzdGluY3RseVwtYW5kXC1mYWx0ZXJpbmdseTsKK+ijsSA8IHRvXC1tb3VudFwtbWFwc1wtb3JcLXNjcm9sbHNcLXRvXC1wYXN0ZTsKK+eMoiA8IGFcLWtpbmRcLW9mXC1tb25rZXlcLWZvdW5kXC1pblwtd1wuY2hpbmE7CivonK4gPCBhXC1mYWJ1bG91c1wtY3JlYXR1cmVcLWxpa2VcLWFcLXR1cnRsZTsKK+eioSA8IHN0b25lXC1yb2xsZXJcLXVzZWRcLXRvXC1sZXZlbFwtZmllbGRzOwor6YSjIDwgbmFtZVwtb2ZcLWFuY2llbnRcLWNpdHlcLWluXC1uXC5qaWFuZ3N1Owor57KiIDwgZ3JhaW5cLW9mZmVyZWRcLWluXC1yaXR1YWxcLXNhY3JpZmljZTsKK+ewpiA8IGxhcmdlXC11bWJyZWxsYVwtd2l0aFwtYVwtbG9uZ1wtaGFuZGxlOwor6J6TIDwgYVwtc21hbGxcLWNpY2FkYVwtd2l0aFwtYVwtc3F1YXJlXC1oZWFkOwor5LiN5pmC5LmL6ZyAIDwgYVwtcG9zc2libGVcLXBlcmlvZFwtb2ZcLXdhbnRcLW9yXC1uZWVkOwor5YWs5YWx5Lqk5o+b6Zu76Kmx57ay6LevIDwgcHVibGljXC1zd2l0Y2hlZFwtdGVsZXBob25lXC1uZXR3b3JrOwor57ay57WhIDwgXChjb21wdXRlclwsXC10ZWxlY29tXCxcLWV0Y1wuXClcLW5ldHdvcms7Civku6XniZnpgoTniZkgPCBhXC10b290aFwtZm9yXC1hXC10b290aFwtXChyZXRhbGlhdGlvblwpOwor5aOB5q+vIDwgdGFwZXN0cnlcLVwodXNlZFwtYXNcLWFcLXdhbGxcLWhhbmdpbmdcKTsKK+aTpua+oSA8IHJ1Ylwtb25lc2VsZlwtZG93blwtd2l0aFwtYVwtd2V0XC10b3dlbDsKK+iqjeWumiA8IG1haW50YWluXC1cKHRoYXRcLXNvbWV0aGluZ1wtaXNcLXRydWVcKTsKK+eZvuaIsOeZvuWLnSA8IGVtZXJnZVwtdmljdG9yaW91c1wtaW5cLWV2ZXJ5XC1iYXR0bGU7CivprYogPCBhXC1teXRoaWNhbFwtY3JlYXR1cmVcLXNhaWRcLWh1cmxcLXNhbjsKK+WIhuatpyA8IGRpZmZlcmVuY2VcLVwob2ZcLW9waW5pb25cLFwtcG9zaXRpb25cKTsKK+WLnuWLleevgCA8IGludGVybmF0aW9uYWxcLWxhYm9yXC1kYXlcLVwobWF5XC1kYXlcKTsKK+mfkCA8IGtuZWVcLXBhZFwtbWFkZVwtb2ZcLXJlZFwtZHllZFwtbGVhdGhlcjsKK+mAo+aIsCA8IGxpZW5cLWNoYW5cLVwodGFpd2FuXC12aWNlXC1wcmVzaWRlbnRcKTsKK+aKseeyl+iFvyA8IGxhdGNoXC1vblwtdG9cLXRoZVwtcmljaFwtYW5kXC1wb3dlcmZ1bDsKK+WItuW6piA8IFwocG9saXRpY2FsXClcLXN5c3RlbVwtb3JcLWluc3RpdHV0aW9uOwor6KOc57+SIDwgdGFrZVwtbGVzc29uc1wtYWZ0ZXJcLXNjaG9vbFwtb3JcLXdvcms7CivnlLHmraTlj6/oposgPCBmcm9tXC10aGlzXCxcLWl0XC1jYW5cLWJlXC1zZWVuXC10aGF0XC5cLlwuOwor6IGv6YKm6Zu75L+h5Lqk6YCa5aeU5ZOh5pyDIDwgZmVkZXJhbFwtY29tbXVuaWNhdGlvbnNcLWNvbW1pc3Npb247Civlu7rkuqQgPCB0b1wtZXN0YWJsaXNoXC1kaXBsb21hdGljXC1yZWxhdGlvbnM7Civou48gPCBjcm9zc1wtYmFyXC1hdFwtZW5kXC1vZlwtcG9sZXNcLW9mXC1jYXJ0Owor54Gr54G9IDwgZmlyZVwtXCh0aGF0XC1idXJuc1wtYnVpbGRpbmdzXCxcLWV0Y1wuXCk7CivlgpnoqrIgPCBcKG9mXC1hXC10ZWFjaGVyXClcLXRvXC1wcmVwYXJlXC1sZXNzb25zOwor6YeR5q2j5pelIDwga2ltXC1qb25nXC1pbFwtXChub3J0aFwta29yZWFuXC1sZWFkZXJcKTsKK+mWi+a8lCA8IFwob2ZcLWFcLXBsYXlcLFwtbW92aWVcLFwtZXRjXC5cKVwtdG9cLWJlZ2luOwor5YKZ6I2SIDwgcHJlcGFyZVwtYWdhaW5zdFwtbmF0dXJhbFwtZGlzYXN0ZXJzOwor6JaAIDwgdGhlXC1oaXBwdXJpc1wtb3JcLW1hcmUnJ3NcLXRhaWxcLXBsYW50Owor5LiN5pG46aCtIDwgbm90XC1hY3F1YWludGVkXC13aXRoXC10aGVcLXNpdHVhdGlvbjsKK+WFqOacgyA8IHBsZW5hcnlcLXNlc3Npb25cLVwoYXRcLWFcLWNvbmZlcmVuY2VcKTsKK+mtj+S6rOeUnyA8IHdlaVwtamluZ3NoZW5nXC1cKGNoaW5lc2VcLWRpc3NpZGVudFwpOwor6IGdIDwgdG9cLWN1dFwtdGhlXC1sZWZ0XC1lYXJzXC1vZlwtdGhlXC1zbGFpbjsKK+iAlCA8IHRvXC1ob2VcLXVwXC10aGVcLWVhcnRoXC1hcm91bmRcLXBsYW50czsKK+S+v+mboyA8IHJldG9ydFwtd2l0aFwtY2hhbGxlbmdpbmdcLXF1ZXN0aW9uczsKK+etlOi+ryA8IHRvXC1yZXBseVwtXCh0b1wtYW5cLWFjY3VzYXRpb25cLFwtZVwuZ1wuXCk7CivnsKsgPCBtdXNpY2FsXC1pbnN0cnVtZW50XC1saWtlXC1wYW5cLXBpcGVzOwor57CoIDwgYVwtYmVhbVwtZm9yXC1oYW5naW5nXC1iZWxsc1wtb3JcLWRydW1zOwor56SzIDwgbmFtZVwtb2ZcLXBsYWNlXC1pblwtc2hhblwteGlcLXByb3ZpbmNlOwor5a+46I2J5LiN55SfIDwgXCJub3RcLWV2ZW5cLWFcLWJsYWRlXC1vZlwtZ3Jhc3NcLWdyb3dzXCI7CivnoqsgPCBjb2Fyc2VcLXN0b25lXC1cKHVzZWRcLWZvclwtd2hldHN0b25lXCk7Civnkq8gPCBqYWRlXC1vcm5hbWVudFwtaW5cLXRoZVwtc2VhbXNcLW9mXC1jYXA7CivnkK8gPCBhXC1qYWRlXC10dWJlXC11c2VkXC1hc1wtYW5cLWluc3RydW1lbnQ7CivnjoEgPCBhXC1kb2dcLXdpdGhcLWFcLWxvbmdcLXNub3V0XC1vclwtbXV6emxlOwor5ZyW5pu4IDwgYm9va3NcLVwoaW5cLWFcLWxpYnJhcnlcLW9yXC1ib29rc3RvcmVcKTsKK+WutumVtyA8IHRoZVwtcGFyZW50XC1vclwtZ3VhcmRpYW5cLW9mXC1hXC1jaGlsZDsKK+WbnuatuCA8IHRvXC1yZXR1cm5cLVwodG9cLXByZXZpb3VzXC1jb25kaXRpb25cKTsKK+aTpuS6ruecvOedmyA8IHJlbW92ZVwtdGhlXC1zY2FsZXNcLWZyb21cLW9uZScnc1wtZXllczsKK+ijnOWBj+aVkeW8iiA8IHJlbWVkeVwtZGVmZWN0c1wtYW5kXC1yZWN0aWZ5XC1lcnJvcnM7Civmo58gPCB0aGVcLW1haW5cLWJlYW1zXC1zdXBwb3J0aW5nXC1hXC1ob3VzZTsKK+mqqOazlSA8IGJvbmVcLVwocHJvcGVydHlcLW9mXC1hXC1icnVzaFwtc3Ryb2tlXCk7Civnmb7lt53mrbjmtbcgPCBhbGxcLXRoaW5nc1wtdGVuZHNcLWluXC1vbmVcLWRpcmVjdGlvbjsKK+iqk+S4jeWPjeaClCA8IHRvXC12b3dcLW5vdFwtdG9cLWJyZWFrXC1vbmUnJ3NcLXByb21pc2U7CivlkIPkuI3kuIogPCBiZVwtdW5hYmxlXC10b1wtZ2V0XC1zb21ldGhpbmdcLXRvXC1lYXQ7CivmiKAgPCBhXC1zd29yZFwuXC1wb3R0ZXInJ3NcLWNsYXlcLlwtdG9cLWdhdGhlcjsKK+enkeWtuOe3qOi8ryA8IHNjaWVuY2VcLWVkaXRvclwtXChvZlwtYVwtcHVibGljYXRpb25cKTsKK+aYgummlumXiuatpSA8IHN0cmlkZVwtZm9yd2FyZFwtd2l0aFwtb25lJydzXC1jaGluXC11cDsKK+aXpee2k+aMh+aVuCA8IG5pa2tlaVwtaW5kZXhcLVwob2ZcLWphcGFuZXNlXC1zdG9ja3NcKTsKK+enkemahiA8IGNvbG9nbmVcLFwtZ2VybWFueVwtb3JcLWNvbG9uXCxcLXBhbmFtYTsKK+aJk+a2iCA8IGRpc3BlbFwtXChkb3VidHNcLFwtbWlzZ2l2aW5nc1wsXC1ldGNcLlwpOwor5ZGtIDwgZmluYWxcLXBhcnRpY2xlXC1leHByZXNzaW5nXC1jb25zZW50Owor5ZGhIDwgdGhlXC1jb3JuZXJzXC1vZlwtdGhlXC1tb3V0aFwtdGhlXC1saXBzOwor55a+55eF6aCQ6Ziy5Lit5b+DIDwgXCh1XC5zXC5cKVwtY2VudGVyXC1mb3JcLWRpc2Vhc2VcLWNvbnRyb2w7CivktqwgPCBoYXJkXC1maW5zXC1vblwtdGhlXC1iYWNrXC1vZlwtYVwtZHJhZ29uOwor5LaFIDwgYVwtbWFybW90XC1saWtlXC1yYXRcLXdpdGhcLWFcLWJpZ1wtaGVhZDsKK+S0kyA8IGdlbmVyYWxcLXRlcm1cLWZvclwtc21hbGxcLWJpcmRcLWdyb3VwOwor5KyXIDwgYmxvd25cLW9yXC10b3NzZWRcLWFib3V0XC1ieVwtdGhlXC13aW5kOwor5KeJIDwgbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtaGFuXC1keW5hc3R5Owor5KW2IDwgY29va2luZ1wtdXRlbnNpbFwtdXNlZFwtaW5cLW9sZFwtdGltZXM7CivkpawgPCBhXC1tdXNpY2FsXC1pbnN0cnVtZW50XC1pblwtb2xkXC10aW1lczsKK+SjnCA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjjCA8IHJlc2lkZW5jZVwtb2ZcLWFcLXByaW5jZVwtb3JcLW5vYmlsaXR5Owor5KGdIDwgYVwtcmVhclwtY292ZXJpbmdcLW9mXC1hXC1iaWdcLWNhcnJpYWdlOwor5KGKIDwgdGhlXC1wcm90cnVkZWRcLXNpZGVzXC1vZlwtYVwtY2FycmlhZ2U7CivkoJogPCB0b1wtc3RlcFwtb25cLXRoZVwtZ3JvdW5kXC13aXRoXC1hXC1iYW5nOwor5JaDIDwgdGhlXC13YXRlclwtaXNcLXdhdmluZ1wtaW5cLXRoZVwtYnJlZXplOwor5JKnIDwgYVwtdmVzc2VsXC1vclwtdXRlbnNpbFwtbWFkZVwtb2ZcLXN0cmF3Owor5I2yIDwgYVwta2luZFwtb2ZcLXNoZWVwXC13aXRoXC1jdXJsZWRcLWhhaXJzOwor5Iu4IDwgYmFja1wtY2VudGVyXC1zdXR1cmVcLW9mXC10aGVcLWNsb3RoZXM7Civki5sgPCB0aGVcLWNsdXN0ZXJlZFwtZW1icm9pZGVyeVwtcGF0dGVybnM7CivkipYgPCB0b1wtZWF0XC1yaWNlXC1ncnVlbFwtbWl4ZWRcLXdpdGhcLW1lYXQ7CivkhoUgPCB0b1wtYWNjdW11bGF0ZVwtb3JcLXRvXC1zdG9yZVwtdXBcLXJpY2U7CivkgqcgPCByb2Nrc1wtY2x1c3RlcmVkXC1waWxlXC11cFwtdG9nZXRoZXJzOwor5IC/IDwgdG9cLWhhdmVcLWFcLWNhc3VhbFwtYW5kXC1zaG9ydFwtZ2xhbmNlOwor5om+5YiwIDwgZmluZFwtXCh3aGF0XC1vbmVcLXdhc1wtc2VhcmNoaW5nXC1mb3JcKTsKK+WPrOmWiyA8IGNvbnZlbmVcLVwoYVwtY29uZmVyZW5jZVwtb3JcLW1lZXRpbmdcKTsKK+O5lyA8IGNhdHRsZVwtYW5kXC1zaGVlcFwtaGF2ZVwtbm9cLWNoaWxkcmVuOwor47ayIDwgbWVhc3VyaW5nXC11bml0XC1mb3JcLXRoZXJtb2R5bmFtaWNzOwor47W6IDwgbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47WQIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor47WLIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor47GSIDwgdG9cLXNjb2xkXC1vclwtYmxhbWVcLWluXC1hXC1sb3VkXC12b2ljZTsKK+OuviA8IGFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+OsiCA8IHRoZVwtc3VuXC13YXNcLXNoaW5pbmdcLWFuZFwtaXQnJ3NcLXdhcm07CivjqoogPCBpbmZlc3RlZFwtd2l0aFwtYmFuZGl0c1wtYW5kXC1yb2JiZXJzOwor46iYIDwgdG9cLWJsb3dcLXRoZVwtbm9zZVwtd2l0aFwtdGhlXC1maW5nZXJzOwor45++IDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtY291bnR5XC1qaWFuOwor45+4IDwgbmFtZVwtb2ZcLXBhdmlsaW9uXC1pblwtYW5jaWVudFwtY2hpbmE7Civjn4IgPCBuYW1lXC1vZlwtY2FwZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+WRvOexsiA8IGNhbGxcLW9uXC1cKHNvbWVvbmVcLXRvXC1kb1wtc29tZXRoaW5nXCk7CivjmqogPCB0b1wtbWFrZVwtYVwtZGVjZXB0aXZlXC1zaG93XC1vZlwtcG93ZXI7Civpm7vohabovJTliqnoqK3oqIjoiIfnuarlnJYgPCBjb21wdXRlclwtYWlkZWRcLWRlc2lnblwtYW5kXC1kcmF3aW5nOwor45KNIDwgdXR0ZXJseVwtd2VhcnlcLWluXC1ib2R5XC1hbmRcLXNwaXJpdHM7CivjkIwgPCBhXC10cmliZVwtb2ZcLXNhdmFnZXNcLWluXC1zb3V0aFwtY2hpbmE7Civnp5HniL4gPCBcKGhlbG11dFwpXC1rb2hsXC1cKGdlcm1hblwtY2hhbmNlbGxvclwpOwor6b2L5pyIIDwgcmFtYWRhblwtXChtdXNsaW1cLW1vbnRoXC1vZlwtZmFzdGluZ1wpOwor5b6X5a+46YCy5bC6IDwgbGl0ZXJhbFw6XC1nZXRcLWFuXC1pbmNoXCxcLXdhbnRcLWFcLWZvb3Q7CivotbfkvoYgPCBiZWdpbm5pbmdcLW9yXC1jb250aW51aW5nXC1hblwtYWN0aW9uOwor5YyX6b2KIDwgdGhlXC1ub3J0aGVyblwtcWlcLWR5bmFzdHlcLVwoNTUwXC01NTdcKTsKK+WMl+a0i+i7jemWpSA8IHRoZVwtbm9ydGhlcm5cLXdhcmxvcmRzXC1cKDE5MTJcLTE5MjdcKTsKK+WQkOeplyA8IHRvXC1oYXZlXC10aGVcLWVhcnNcLW9mXC1ncmFpblwtY29tZVwtdXA7CivlpKfmg5HkuI3op6MgPCBkb1wtbm90XC11bmRlcnN0YW5kXC1hXC1jZXJ0YWluXC10aGluZzsKK+iri+mhmCA8IHBldGl0aW9uXC1cKGZvclwtYWN0aW9uXC10b1wtYmVcLXRha2VuXCk7CivljYrml6XliLblrbjmoKEgPCBoYWxmXC1kYXlcLVwob3JcLWRvdWJsZVwtc2hpZnRcLXNjaG9vbFwpOwor5piO5paH6KaP5a6aIDwgZXhwcmVzc2x5XC1zdGlwdWxhdGVkXC1cKGluXC13cml0aW5nXCk7Civkuqvlj5cgPCB0b1wtZW5qb3lcLVwocmlnaHRzXCxcLWJlbmVmaXRzXCxcLWV0Y1wuXCk7CivlpKfluq3lu6PnnL4gPCBwdWJsaWNcLXBsYWNlXC13aXRoXC1udW1lcm91c1wtcGVvcGxlOwor55m+54Sh5LiA5aSxIDwgbm9cLWRhbmdlclwtb2ZcLWFueXRoaW5nXC1nb2luZ1wtd3Jvbmc7CivkuInls70gPCB0aGVcLXRocmVlXC1jaGFuZ2ppYW5nXC1yaXZlclwtZ29yZ2VzOwor5Y+W5pqWIDwgdG9cLXdhcm1cLW9uZXNlbGZcLVwoYnlcLWFcLWZpcmVcLFwtZXRjXC5cKTsKK+S6uuasiuingOWvnyA8IGh1bWFuXC1yaWdodHNcLXdhdGNoXC1cKG9yZ2FuaXphdGlvblwpOwor6Zmi6ZW3IDwgcHJlc2lkZW50XC1cKG9mXC1hXC11bml2ZXJzaXR5XCxcLWV0Y1wuXCk7CivmqqLlr5/lrpggPCB0aGVcLXByb3NlY3V0aW9uXC1cKGluXC1hXC1jb3VydFwtY2FzZVwpOwor5YKZ6ICM5LiN55SoIDwgaGF2ZVwtc29tZXRoaW5nXC1yZWFkeVwtanVzdFwtaW5cLWNhc2U7CivoqIDoq5YgPCBleHByZXNzaW9uXC1vZlwtXChwb2xpdGljYWxcKVwtb3BpbmlvbjsKK+aHieeUqOeoi+W8j+S7i+mdoiA8IGFwcGxpY2F0aW9uXC1wcm9ncmFtbWluZ1wtaW50ZXJmYWNlOwor5o27IDwgdG9cLXR3aXN0XC1vclwtbmlwXC13aXRoXC10aGVcLWZpbmdlcnM7CivmiIwgPCBlbGV2ZW50aFwtb2ZcLXRlcnJlc3RyaWFsXC1icmFuY2hlczsKK+aQkyA8IHRvXC1ydWJcLW9yXC1yb2xsXC1iZXR3ZWVuXC10aGVcLWhhbmRzOwor5bCnIDwgYVwtbGVnZW5kYXJ5XC1hbmNpZW50XC1lbXBlcm9yXC1zYWdlOwor5am2IDwgd2lmZVwtb2ZcLWZhdGhlcicnc1wteW91bmdlclwtYnJvdGhlcjsKK+aOrCA8IHRvXC1ncmFzcFwtb3JcLWhvbGRcLXdpdGhcLWJvdGhcLWhhbmRzOwor5bmbIDwgc2Nyb2xsXC1vZlwtc2lsa1wtb3JcLWNsb3RoXC1wcmVzZW50ZTsKK+ajgiA8IGNhcnZlZFwtb3JcLXBhdHRlcm5lZFwtd2luZG93XC1zaWxsczsKK+awsiA8IGxpZmVcLWdpdmluZ1wtaW5mbHVlbmNlc1wtb2ZcLW5hdHVyZTsKK+ianSA8IGhhaXJ5XC1hbmRcLXBvaXNvbm91c1wtY2F0ZXJwaWxsYXJzOwor5r6nIDwgcml2ZXJcLWluXC1ub3J0aGVyblwtaHVuYW5cLXByb3ZpbmNlOwor562uIDwgZGl2aW5hdGlvblwtd2l0aFwtc3RhbGtzXC1vZlwtcGxhbnRzOwor56yqIDwgYVwtY29hcnNlXC1tYXRcLW9mXC1ydXNoZXNcLW9yXC1iYW1ib287CivpppMgPCBmcmllZFwtcm91bmRcLWNha2VzXC1vZlwtd2hlYXRcLWZsb3VyOwor566QIDwgdG9cLWRyYXdcLWFcLWJhbWJvb1wtYm93XC1vclwtY3Jvc3Nib3c7CivmiYMgPCBhXC1kb29yXC1iYXJcLXBsYWNlZFwtb3V0c2lkZVwtYVwtZG9vcjsKK+S7iSA8IHN1cm5hbWVcLW9mXC10aGVcLW1vdGhlclwtb2ZcLW1lbmNpdXM7Civnr4DlpJbnlJ/mnp0gPCBuZXdcLXByb2JsZW1zXC1jb21wbGljYXRlXC1hblwtaXNzdWU7CivpvLvpnZLoh4nohasgPCBhXC1ibG9vZHlcLW5vc2VcLWFuZFwtYVwtc3dvbGxlblwtZmFjZTsKK+aUv+eVjCA8IHBvbGl0aWNhbFwtYW5kXC1nb3Zlcm5tZW50XC1jaXJjbGVzOwor5oCn5YilIDwgZGlzdGluZ3Vpc2hpbmdcLWJldHdlZW5cLXRoZVwtc2V4ZXM7CivpgZXnpoEgPCB0b1wtdmlvbGF0ZVwtYVwtcHJvaGlidGl0aW9uXC1vclwtYmFuOwor6YWs5ZKMIDwgdG9cLXJlc3BvbmRcLXRvXC1hXC1wb2VtXC13aXRoXC1hXC1wb2VtOwor5aCx6ICDIDwgZW50ZXJcLW9uZXNlbGZcLWZvclwtYW5cLWV4YW1pbmF0aW9uOwor5YyX5ZyLIDwgdGhlXC1ub3J0aGVyblwtcGFydFwtb2ZcLXRoZVwtY291bnRyeTsKK+S8gealreeuoeeQhiA8IGJ1c2luZXNzXC1tYW5hZ2VtZW50XC1cKGFzXC1hXC1zdHVkeVwpOwor5aSW5a2rIDwgZ3JhbmRzb25cLVwoc29uXC1vZlwtb25lJydzXC1kYXVnaHRlclwpOwor5YWJ57qW5YiG5L2I5byP5pW45pOa5LuL6Z2iIDwgZmliZXJcLWRpc3RyaWJ1dGVkXC1kYXRhXC1pbnRlcmZhY2U7CivlnoPlnL7ou4ogPCBnYXJiYWdlXC10cnVja1wtXChvclwtb3RoZXJcLXZlaGljbGVcKTsKK+Wkp+WciyA8IGFcLXBvd2VyXC1cKGllXCxcLWFcLWRvbWluYW50XC1jb3VudHJ5XCk7Civpqr4gPCBhbnlcLW9iamVjdFwtdGhhdFwtc3RpY2tzXC1pblwtdGhyb2F0Owor5o6i6KaqIDwgdG9cLWdvXC1ob21lXC10b1wtdmlzaXRcLW9uZScnc1wtZmFtaWx5Owor5biD5rOV576FIDwgYnVmZmFsb1wtXChjaXR5XC1pblwtbmV3XC15b3JrXC1zdGF0ZVwpOwor5YWr5pyD56m0IDwgdGhlXC1laWdodFwtc3RyYXRlZ2ljXC1uZXJ2ZVwtcG9pbnRzOwor6Zuj5LulIDwgaGFyZFwtdG9cLVwocHJlZGljdFwsXC1pbWFnaW5lXCxcLWV0Y1wuXCk7CivloLHmlYggPCByZW5kZXJcLXNlcnZpY2VcLXRvXC1yZXBheVwta2luZG5lc3M7CivphrwgPCBvZmZlclwtZm9vZFwtYW5kXC13aW5lXC1vbmUnJ3NcLWd1ZXN0czsKK+i8pyA8IGN1cnRhaW5lZFwtY2FycmlhZ2VcLXVzZWRcLWJ5XC13b21lbjsKK+i7mSA8IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZVwtdG9cLWFycmFuZ2U7CivopqrmiJogPCBcKGFcKVwtcmVsYXRpdmVcLVwoaWVcLFwtZmFtaWx5XC1tZW1iZXJcKTsKK+eCuuacnyA8IFwodG9cLWJlXC1kb25lXClcLWJ5XC1cKGFcLWNlcnRhaW5cLWRhdGVcKTsKK+i+suabhiA8IHRoZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWNhbGVuZGFyOwor6LSBIDwgdG9cLWRlZmVhdFwtdG9cLXNwb2lsXC1vclwtYmVcLXNwb2lsZWQ7Civos48gPCBwZWFybHNcLW9yXC1zaGVsbHNcLXN0cnVuZ1wtdG9nZXRoZXI7Civoq4ogPCB0b1wtbWFrZVwtYVwtanVkaWNpYWxcLWludmVzdGlnYXRpb247CivmjInoqqogPCBpblwtdGhlXC1vcmRpbmFyeVwtY291cnNlXC1vZlwtZXZlbnRzOwor6YCj5Lu7IDwgY29udGludWVcLWluXC1cKGFcLXBvbGl0aWNhbFwpXC1vZmZpY2U7Civnn67lrZDoo6Hmi5TlsIfou40gPCBjaG9vc2VcLXRoZVwtYmVzdFwtcGVyc29uXC1hdmFpbGFibGU7Civoh4norZwgPCB0eXBlc1wtb2ZcLWZhY2lhbFwtbWFrZXVwXC1pblwtb3BlcmFzOwor57qZIDwgc3RyaW5nXC1vblwtd2hpY2hcLWNvaW5zXC1hcmVcLXN0cnVuZzsKK+ettCA8IHR5cGVcLW9mXC1ncmFzc1wtdXNlZFwtaW5cLWRpdmluYXRpb247Civplovluq0gPCBiZWdpblwtYVwtXChqdWRpY2lhbFwpXC1jb3VydFwtc2Vzc2lvbjsKK+WFrOWvqSA8IHB1YmxpY1wtdHJpYWxcLVwoaW5cLWFcLWNvdXJ0XC1vZlwtbGF3XCk7CivnkIcgPCBjb2Fyc2VcLXZhcmlldHlcLW9mXC1qYXNwZXJcLW9yXC1qYWRlOwor5L2G6aGYIDwgaWZcLW9ubHlcLVwoaXRcLXdlcmVcLXBvc3NpYmxlXC10b1wuXC5cLlwpOwor6ZaL5pmu5pWmIDwgY2FwZVwtdG93blwtXChjaXR5XC1pblwtc291dGhcLWFmcmljYVwpOwor6LaK5L6G6LaK5Zq06YeNIDwgdG9cLWJlY29tZVwtbW9yZVwtc2VyaW91c1wtZXZlcnlcLWRheTsKK+S4jeisgOiAjOWQiCA8IGFncmVlXC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor5o2o5b6XIDwgdG9cLWJlXC13aWxsaW5nXC10b1wtcGFydFwtd2l0aFwtXChzdGhcKTsKK+ajqyA8IHRob3JueVwtc2hydWJcLXdpdGhcLXllbGxvd1wtZmxvd2VyczsKK+imi+S4jeW+lyA8IG1heVwtbm90XC1iZVwtc2VlblwtYnlcLW9yXC1leHBvc2VkXC10bzsKK+aXkyA8IHNlcnJhdGVkXC1lZGdlc1wtb25cLWFcLWNoaW5lc2VcLWZsYWc7CivmjIHmnIkgPCBob2xkXC1cKGVnXCxcLXBhc3Nwb3J0XCxcLXZpZXdzXCxcLWV0Y1wuXCk7CivmipfniK0gPCBtYWtlXC1hXC1zdGFuZFwtYW5kXC1maWdodFwtXChhZ2FpbnN0XCk7Civov5HkuY7lkIzmraXmlbjkvY3pmo7lsaQgPCBwbGVzaW9jaHJvbm91c1wtZGlnaXRhbFwtaGllcmFyY2h5Owor5oyJ5YW15LiN5YuVIDwgbm90XC10aHJvd1wtdGhlXC10cm9vcHNcLWludG9cLWJhdHRsZTsKK+W2siA8IGFcLW5hbWVcLW9mXC1hblwtb2xkXC10b3duXC1pblwtc2ljaHVhbjsKK+evpuWtkCA8IGFcLWRvdWJsZVwtZWRnZWRcLWZpbmVcLXRvb3RoZWRcLWNvbWI7CivmipXmqZ8gPCBiZVwtYVwtc3BlY3VsYXRvclwtXChwcm9maXRcLXNlZWtpbmdcKTsKK+WhsSA8IHBsYWNlXC1uYW1lXC1pblwtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+WJqCA8IHNvdW5kXC1vZlwtc29tZXRoaW5nXC1iZWluZ1wtc21hc2hlZDsKK+aMquWAnyA8IHRvXC1ib3Jyb3dcLW1vbmV5XC1mb3JcLWFcLXNob3J0XC10aW1lOwor5a6w55u4IDwgcHJpbWVcLW1pbmlzdGVyXC1cKGluXC1mZXVkYWxcLWNoaW5hXCk7CivkuIDkuK3kuIDoh7ogPCBcIm9uZVwtY2hpbmFcLFwtb25lXC10YWl3YW5cIlwtXChwb2xpY3lcKTsKK+S1rCA8IGJsYWNrXC1zb3VuZFwtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivktI0gPCBhXC1raW5kXC1vZlwtc3RyYW5nZVwtYW5kXC13ZWlyZFwtYmlyZDsKK+S0iSA8IGdlbmVyYWxcLXRlcm1cLWZvclwtYVwtZ3JvdXBcLW9mXC1iaXJkOwor5LOwIDwgYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC13aWxkXC1nb29zZTsKK+SxmSA8IGFcLXNtYWxsXC1raW5kXC1vZlwtdHVuYVwtb3JcLXN0dXJnZW9uOwor5LCUIDwgZHJlc3NlZFwtaGFpclwtaW5cLWFcLWhvcml6b250YWxcLXdheTsKK+SqrCA8IHNvdW5kXC1vZlwtcHJlc3NpbmdcLXNvbWV0aGluZ1wtZG93bjsKK+SprCA8IGFuXC1vcm5hbWVudGFsXC1pdGVtXC1vblwtYVwtc2NhYmJhcmQ7Civkp7UgPCBhXC1iaXJkXC1saWtlXC10aGVcLXNlY3JldGFyeVwtZmFsY29uOwor5KaOIDwgYVwtbWVjaGFuaWNhbFwtZGV2aWNlXC1mb3JcLWxlYWRcLW9yZTsKK+SlviA8IHRvXC1tZWx0XC1vclwtY2FzdFwtYnlcLXVzaW5nXC1hXC1tb3VsZDsKK+SlmSA8IGFcLXNwZWN1bHVtXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkpLcgPCBhXC1sYW5jZVwtd2l0aFwtdGhyZWVcLW9yXC10d29cLXBvaW50czsKK+S4reaXpemfk+i2iiA8IGNoaW5hXCxcLWphcGFuXCxcLWtvcmVhXCxcLWFuZFwtdmlldG5hbTsKK+SjoiA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2BIDwgYVwta2luZFwtb2ZcLXdpbGRcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+SbtiA8IHdyaXRpbmdzXC1ldWxvZ2l6aW5nXC1hZGVhZFwtcGVyc29uOwor6Jmb6IWVIDwgZW1wdHlcLXdyaXN0XC1cKG1ldGhvZFwtb2ZcLXBhaW50aW5nXCk7Civkl6QgPCBhXC1raW5kXC1vZlwtd29ybVwtcHJvZHVjZWRcLWluXC13YXRlcjsKK+WPluW+l+Wkp+WtuOWtuOS9jSA8IHRvXC1vYnRhaW5cLWFcLXVuaXZlcnNpdHlcLWVkdWNhdGlvbjsKK+SNsCA8IGFcLXBsYWd1ZVwtb3JcLWFcLXBlc3RpbGVuY2VcLW9mXC1nb2F0Owor5IqKIDwgd2VsbFwtYm9pbGVkXC1jb25nZWVcLW9yXC1yaWNlXC1ncnVlbDsKK+SJiCA8IGFcLWtpbmRcLW9mXC1iYW1ib29cLXdpdGhcLWFcLXJlZFwtc2tpbjsKK+SHiCA8IHRvXC1wdXRcLWludG9cLWFcLWN1cGJvYXJkXC1vclwtY2xvc2V0Owor5IeAIDwgb3JuYW1lbnRzXC1vZlwtZmluZVwtZmVhdGhlclwtb3JcLWZ1cjsKK+SFuSA8IGFcLWtpbmRcLW9mXC1kcmlsbFwtZm9yXC1zb3dpbmdcLWdyYWluOwor5IWpIDwgY3Jvb2tlZFwtYW5kXC13aW5kaW5nXC1vZlwtdGhlXC1ncmFzczsKK+SEtyA8IGFcLW1lYXN1cmVtZW50XC1lcXVhbFwtdG9cLTEyMFwtY2F0dHk7Civkg6ogPCBhXC1wbGF0Zm9ybVwtZm9yXC1zYWNyaWZpY2lhbFwtcml0ZXM7Civkgp4gPCBhXC10aG9ybnlcLXRyZWVcLWFib3V0XC0xNVwtZmVldFwtaGlnaDsKK+WJtei+puS6uiA8IGZvdW5kZXJcLVwob2ZcLWFuXC1pbnN0aXR1dGlvblwsXC1ldGNcKTsKK+O6nCA8IGZpZXJjZVwtZG9nXC13aXRoXC1sb25nXC1zaGFnZ3lcLWhhaXI7CivjuokgPCBhXC1maWVyY2VcLWFuaW1hbFwtb2ZcLXRoZVwtZG9nXC10cmliZTsKK+S4jeirliA8IG5vXC1tYXR0ZXJcLVwod2hhdFwsXC13aG9cLFwtaG93XCxcLWV0Y1wuXCk7CivjuaEgPCBhXC1ydXNoXC1hbmRcLWltcGF0aWVudFwtZGlzcG9zaXRpb247CivjuKEgPCBib2FyZFwtdG9cLWJsb2NrXC10aGVcLXdhdGVyXC1jdXJyZW50Owor47iaIDwgc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkXC1hbmRcLWNsZWFyOwor47StIDwgaW1tZWFzdXJhYmxlXC1kZXB0aFwtb3JcLXByb2Z1bmRpdHk7CivjsaggPCB0b1wtcHJlcGFyZVwtYVwtYm9keVwtZm9yXC10aGVcLWNvZmZpbjsKK+S/neS/riA8IGd1YXJhbnRlZVwtdG9cLWtlZXBcLWluXC1nb29kXC1yZXBhaXI7CivjrIcgPCBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1hbmNpZW50XC1jaGluYTsKK+OpvSA8IGJyYW5jaGVzXC10b1wtYmVcLWFcLXBhcmFzaXRlXC1hXC10cmVlOwor46iSIDwgdG9cLWN1dFwtb3BlblwtYW5kXC1jbGVhblwtXC1cLVwtYXNcLWZpc2g7Civph5HpgoogPCBwaG5vbVwtcGVuaFwtXChjYXBpdGFsXC1vZlwtY2FtYm9kaWFcKTsKK+OisiA8IHRoZVwtNXRoXC1vZlwtdGhlXC1laWdodFwtZGlhZ3JhbXNcLeWFq+WNpjsKK+OfqCA8IGFcLWZvdW50YWluXC1pblwtdGhlXC1zaWRlXC1vZlwtYVwtaGlsbDsKK+ObjSA8IHRvXC1oYXZlXC1vbmUnJ3NcLWFtYml0aW9uXC1mdWxmaWxsZWQ7CivjmqEgPCBzdGFuZGluZ1wtd2l0aG91dFwtYVwtc3RyYWlnaHRcLWJhY2s7CivjmokgPCB0b1wtbWFrZVwtYVwtcHJvZml0XC1vblwtc2VsbFwtYW5kXC1idXk7CivkvrXkvZQgPCB0b1wtaW52YWRlXC1hbmRcLW9jY3VweVwtXCh0ZXJyaXRvcnlcKTsKK+OVoyA8IGFcLW1hcnNoXC1hdFwtdGhlXC1mb290XC1vZlwtdGhlXC1oaWxsczsKK+afr+WvhiA8IGtlcm1pdFwtXChjb21tdW5pY2F0aW9uc1wtcHJvdG9jb2xcKTsKK+S6q+aciSA8IGVuam95XC1cKHJpZ2h0c1wsXC1wcml2aWxlZ2VzXCxcLWV0Y1wuXCk7Civnpq7ngq4gPCBhXC1ndW5cLXNhbHV0ZVwtXChlZ1wsXC0yMVwtZ3VuXC1zYWx1dGVcKTsKK+eqgeWOpSA8IHR1cmtpY1wtXChtaW5vcml0eVwtZ3JvdXBcLWluXC1jaGluYVwpOwor5oiI54i+5be05Zas5aSrIDwgXChmb3JtZXJcLXNvdmlldFwtbGVhZGVyXClcLWdvcmJhY2hldjsKK+mAvOS+m+S/oSA8IG9idGFpblwtY29uZmVzc2lvbnNcLWJ5XC1jb21wdWxzaW9uOwor5a6J5L+dIDwgXChhYmJyZXZpYXRpb25cKVwtbWFpbnRhaW5cLXNlY3VyaXR5Owor5aO96bq1IDwgYmlydGhkYXlcLW5vb2RsZXNcLVwoZm9yXC1sb25nZXZpdHlcKTsKK+a1tOWupCA8IGJhdGhyb29tXC1cKHJvb21cLXVzZWRcLWZvclwtYmF0aGluZ1wpOwor5Luk5Lq6IDwgY2F1c2VcLXNvbWVvbmVcLXRvXC1cKGJlXCxcLWZlZWxcLFwtZXRjXCk7CivlvaLlvbHkuI3pm6IgPCBpbnNlcGFyYWJsZVwtXChhc1wtZm9ybVwtYW5kXC1zaGFkb3dcKTsKK+WVhualreeJiOacrCA8IGNvbW1lcmNpYWxcLXZlcnNpb25cLVwob2ZcLXNvZnR3YXJlXCk7Civnmb7oroDkuI3ljq0gPCBiZVwtd29ydGhcLXJlYWRpbmdcLWFcLWh1bmRyZWRcLXRpbWVzOwor6Zmk6Z2eIDwgb25seVwtaWZcLVwoXC5cLlwuXCxcLW9yXC1vdGhlcndpc2VcLFwtXC5cLlwuXCk7CivmrafoppYgPCBkaXNjcmltaW5hdGlvblwtXChhZ2FpbnN0XC1zb21lb25lXCk7CivmlZfokL0gPCBkZWNsaW5lXC1cKGluXC13ZWFsdGhcLWFuZFwtcG9zaXRpb25cKTsKK+eEoemMqyA8IHd1eGlcLVwoY2l0eVwpXCxcLWluXC1qaWFuZ3N1XC1wcm92aW5jZTsKK+WIhuazouWkmuW3pSA8IHdhdmVsZW5ndGhcLWRpdmlzaW9uXC1tdWx0aXBsZXhpbmc7Civlv4XnlLHkuYvot68gPCB0aGVcLXJvYWRcLW9uZVwtbXVzdFwtZm9sbG93XC1vclwtdGFrZTsKK+S7rCA8IGFkanVuY3RcLXByb25vdW5cLWluZGljYXRlXC1wbHVyYWw7CivlkaIgPCBpbnRlcnJvZ2F0aXZlXC1vclwtZW1waGF0aWNcLWZpbmFsOwor5qW8IDwgYnVpbGRpbmdcLW9mXC10d29cLW9yXC1tb3JlXC1zdG9yaWVzOwor6I2vIDwgbGVhZlwtb2ZcLWRhaHVyaWFuXC1hbmdlbGljYVwtcGxhbnQ7CivpvY4gPCB0YWtlXC1pblwtYm90aFwtaGFuZHNcLWFuZFwtb2ZmZXJcLXRvOwor5LiIIDwgdW5pdFwtb2ZcLWxlbmd0aFwtZXF1YWxcLTNcLjNcLW1ldGVyczsKK+aMkSA8IGFcLWxvYWRcLWNhcnJpZWRcLW9uXC10aGVcLXNob3VsZGVyczsKK+elnSA8IHByYXlcLWZvclwtaGFwcGluZXNzXC1vclwtYmxlc3NpbmdzOwor5p2JIDwgdmFyaW91c1wtc3BlY2llc1wtb2ZcLXBpbmVcLWFuZFwtZmlyOwor5pynIDwgY29uZGl0aW9uXC1vclwtYXBwZWFyYW5jZVwtb2ZcLW1vb247CivpnLggPCBydWxlXC1ieVwtbWlnaHRcLXJhdGhlclwtdGhhblwtcmlnaHQ7CivnrqogPCBzbWFsbFwtYmFtYm9vXC1iYXNrZXRcLWZvclwtaG9sZGluZzsKK+mGpCA8IGFueVwtamFtXC1saWtlXC1vclwtcGFzdGVcLWxpa2VcLWZvb2Q7CivngpUgPCB0aGVcLWJyaWNrXC1iZWRcLWluXC1ub3J0aGVyblwtY2hpbmE7CivkuqUgPCBsYXN0XC1vZlwtdHdlbHZlXC1lYXJ0aGx5XC1icmFuY2hlczsKK+eypCA8IGd1YW5nZG9uZ1wtYW5kXC1ndWFuZ3hpXC1wcm92aW5jZXM7Civnsr0gPCBkdW1wbGluZ1wtbWFkZVwtb2ZcLWdsdXRpbm91c1wtcmljZTsKK+mZhyA8IG1vdW50YWluXC1sb2NhdGVkXC1iZXR3ZWVuXC1zaGFueGk7Civpl74gPCB2aWxsYWdlXC1vZlwtdHdlbnR5XC1maXZlXC1mYW1pbGllczsKK+mDpiA8IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+mehSA8IGxlYXRoZXJcLXN0cmFwXC1vdmVyXC1ob3JzZScnc1wtbmVjazsKK+mToSA8IHNpY2tsZVwtZm9yXC1jdXR0aW5nXC1ncmFzc1wtb3JcLWhheTsKK+mqpyA8IGdhbGxvcFwtYWJvdXRcLXdpdGhcLWhlYWRcLXVwbGlmdGVkOwor6aqiIDwgaG9yc2VcLXdpdGhcLWFcLWJsdWlzaFwtd2hpdGVcLWNvbG9yOwor6JuzIDwga2luZFwtb2ZcLXNuYWlsXC13aXRoXC1zcGlyYWxcLXNoZWxsOwor6YKzIDwgYVwtZGVwYXJ0bWVudFwtaW5cLXRoZVwtc3RhdGVcLW9mXC1sdTsKK+mDoiA8IHN0YXRlXC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+mqliA8IHR3b1wtb3V0c2lkZVwtb25lc1wtaW5cLXRocmVlXC1ob3JzZTsKK+i9uCA8IGNyb3NzXC1ib2FyZFwtYXRcLXJlYXJcLW9mXC1jYXJyaWFnZTsKK+eunCA8IGFuY2llbnRcLXN0cmluZ1wtbXVzaWNcLWluc3RydW1lbnQ7Civpg5AgPCBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivovbkgPCBydW5cLW92ZXJcLXNvbWV0aGluZ1wtd2l0aFwtdmVoaWNsZTsKK+agnSA8IGFcLWJ1aWxkZXInJ3NcLWZyYW1lXC1mb3JcLW1lYXN1cmluZzsKK+eNjSA8IGFuXC1hbmltYWxcLXdoaWNoXC1lYXRzXC1pdHNcLW1vdGhlcjsKK+iyoOiyrOS6uiA8IHBlcnNvblwtaW5cLWNoYXJnZVwtXChvZlwtc29tZXRoaW5nXCk7Civlp5DlpKsgPCBicm90aGVyXC1pblwtbGF3XC1cKGh1c2JhbmQnJ3NcLXNpZGVcKTsKK+WNgeS4iee2kyA8IHRoZVwtdGhpcnRlZW5cLWNvbmZ1Y2lhblwtY2xhc3NpY3M7Civlr6bmmYLmk43kvZznkrDlooMgPCByZWFsXC10aW1lXC1vcGVyYXRpbmdcLWVudmlyb25tZW50Owor54m55Y2AIDwgc3BlY2lhbFwtXChhZG1pbmlzdHJhdGl2ZVwpXC1yZWdpb247Civml6XlnJMgPCBqYXBhbmVzZVwteWVuXC1cKHVuaXRcLW9mXC1jdXJyZW5jeVwpOwor55eF6J+y5a6zIDwgcGxhbnRcLWRpc2Vhc2VzXC1hbmRcLWluc2VjdFwtcGVzdHM7Civkuqjnibnms7DnvoUgPCBodW50ZXJcLXR5bG9cLVwoaG9sbHl3b29kXC1hY3RyZXNzXCk7Civlo4Hmq6UgPCBhXC1idWlsdFwtaW5cLXdhcmRyb2JlXC1vclwtY3VwYm9hcmQ7CivplonploDpgKDou4ogPCBtYWtlXC1hXC1jYXJ0XC1iZWhpbmRcLWNsb3NlZFwtZG9vcnM7Civpgb/mmpEgPCBiZVwtYXdheVwtZm9yXC10aGVcLXN1bW1lclwtaG9saWRheXM7CivmraXmkJYgPCBkYW5nbGluZ1wtb3JuYW1lbnRcLXdvcm5cLWJ5XC13b21lbjsKK+Wci+mam+WVhualreapn+WZqCA8IGludGVybmF0aW9uYWxcLWJ1c2luZXNzXC1tYWNoaW5lczsKK+m8lyA8IHNtYWxsXC1yZXZvbHZpbmdcLWRydW1cLXdpdGhcLWtub2JzOwor6bySIDwgbGFyZ2VcLXRyaXBvZFwtY2FsZHJvblwtd2l0aFwtc21hbGw7CivptpYgPCBsYXJnZVwtd2F0ZXJmb3dsXC13aXRoXC1uYWtlZFwtaGVhZDsKK+mohCA8IG5hbWVcLW9mXC1hXC1sZWdlbmRhcnlcLXN3aWZ0XC1ob3JzZTsKK+mkliA8IGZvb2RcLWl0ZW1cLXNldFwtb3V0XC1mb3JcLXNob3dcLW9ubHk7CivpoKMgPCB0b1wtdmlld1wtb3RoZXJzXC13aXRoXC1yYWlzZWRcLWV5ZXM7CivpgqbkuqQgPCByZWxhdGlvbnNcLWJldHdlZW5cLXR3b1wtY291bnRyaWVzOwor6YS0IDwgcGxhY2VcLWluXC10b2RheScnc1wtaG9uYW5cLXByb3ZpbmNlOwor6YSaIDwgcGxhY2VcLWluXC10b2RheScnc1wtaGViZWlcLXByb3ZpbmNlOwor6YOUIDwgcGxhY2VcLW5hbWVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpgr0gPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtaGFuXC1keW5hc3R5Owor6LuoIDwgbGF0dGljZVwtd29ya1wtb25cLWZyb250XC1hbmRcLXNpZGVzOwor6LiLIDwgdGhlXC1mb290XC1vclwtZmVldFwtY2FzdFwtb2ZcLWFcLXBsYXk7Civmlbjmk5rpj4jot6/pgKPmjqXorZjliKXnorwgPCBkYXRhXC1saW5rXC1jb25uZWN0aW9uXC1pZGVudGlmaWVyOwor6KWtIDwgdHVja1wtdXBcLWhlbVwtb2ZcLWdhcm1lbnRcLWFuZFwtd3JhcDsKK+ijiyA8IGNvdHRvblwtY2xvdGhlc1wtb2ZcLWFcLWJveVwtc2VydmFudDsKK+ihuiA8IHNsaXRcLWluXC1nYXJtZW50XC10b1wtYWlkXC1tb3ZlbWVudDsKK+igqCA8IGFcLWtpbmRcLW9mXC1zcGlkZXJcLXdpdGhcLWxvbmdcLWxlZ3M7CivonqMgPCBteXRob2xvZ2ljYWxcLXdpbmdsZXNzXC1kcmFnb25cLW9mOwor5o+Q54WJIDwgdG9cLWV4dHJhY3RcLVwob3JlXCxcLW1pbmVyYWxzXCxcLWV0Y1wpOwor6IukIDwgYnJhc3NpY2FcLWNhbXBlc3RyaXNcLXN1YnNwXC5cLXJhcGE7CivmqYvmjqUgPCBicmlkZ2luZ1wtXChpblwtY29tcHV0ZXJcLW5ldHdvcmtzXCk7CivoiZUgPCB0d29cLWJvYXRzXC1mYXN0ZW5lZFwtc2lkZVwtYnlcLXNpZGU7CivlhavmlrkgPCB0aGVcLWVpZ2h0XC1wb2ludHNcLW9mXC10aGVcLWNvbXBhc3M7CivohqsgPCB0aGVcLWZhdFwtY292ZXJpbmdcLXRoZVwtaW50ZXN0aW5lczsKK+aCsuWWnOS6pOmbhiA8IG1peGVkXC1mZWVsaW5nc1wtb2ZcLWdyaWVmXC1hbmRcLWpveTsKK+WFp+aUvyA8IGludGVybmFsXC1hZmZhaXJzXC1cKG9mXC1hXC1jb3VudHJ5XCk7CivnuJcgPCBzYWNrY2xvdGhcLXdvcm5cLW9uXC1icmVhc3RcLWR1cmluZzsKK+i/q+S9vyA8IGZvcmNlXC1cKHNvbWVvbmVcLXRvXC1kb1wtc29tZXRoaW5nXCk7Civnr6ogPCBhXC1iYW1ib29cLWZsdXRlXC13aXRoXC1zZXZlblwtaG9sZXM7CivlkIPkuI3mnI0gPCBub3RcLWJlXC1hY2N1c3RvbWVkXC10b1wtZWF0aW5nXC1zdGg7Civplbflu4ogPCB0aGVcLWxvbmdcLWNvcnJpZG9yXC1hdFwteWlcLWhlXC15dWFuOwor556WIDwgYVwtY2F0YXJhY3RcLW9yXC1maWxtXC1vdmVyXC10aGVcLWV5ZTsKK+S4jeS/rumCiuW5hSA8IG5vdFwtY2FyZVwtYWJvdXRcLW9uZScnc1wtYXBwZWFyYW5jZTsKK+eVpCA8IHBsYWNlXC1mb3JcLXdvcnNoaXBwaW5nXC10aGVcLWhhdmVuOwor5YWD5bilIDwgYVwtbWFyc2hhbFwtXChpblwtdGhlXC1hcm1lZFwtZm9yY2VzXCk7CivnlJcgPCBlYXJ0aGVud2FyZVwtdmVzc2VsXC1pblwtdHdvXC1wYXJ0czsKK+espuWQiOe+juWci+WIqeebiiA8IGluXC1saW5lXC13aXRoXC1hbWVyaWNhblwtaW50ZXJlc3RzOwor5aSn5b+r5Lq65b+DIDwgdG9cLXRoZVwtc2F0aXNmYWN0aW9uXC1vZlwtZXZlcnlvbmU7CivmoKHplbcgPCBcKGNvbGxlZ2VcLFwtdW5pdmVyc2l0eVwpXC1wcmVzaWRlbnQ7Civng7MgPCB0b1wtdHJhdmVsXC1ieVwtdGhlXC1saWdodFwtb2ZcLXRvcmNoOwor54GVIDwgc2hvcnRcLW5hbWVcLWZvclwtZ3Vhbmd4aVwtcHJvdmluY2U7CivppqzlsLzmi4kgPCBtYW5pbGFcLVwoY2FwaXRhbFwtb2ZcLXBoaWxpcHBpbmVzXCk7CivplovliIAgPCB0b1wtcGVyZm9ybVwtb3JcLWhhdmVcLWFuXC1vcGVyYXRpb247CivmsrQgPCBmb3VsXC1hbmRcLXBvaXNvbm91c1wtaW5cLWNvbmZ1c2lvbjsKK+aokCA8IGFcLWxvb2tvdXRcLXR1cnJldFwtb25cLWFcLWNpdHlcLXdhbGw7Civmo7sgPCBraW5kXC1vZlwtd29vZFwtZnJvbVwtd2hpY2hcLXBlcmZ1bWU7CivovKnliIYgPCBzZW5pb3JpdHlcLWluXC10aGVcLWZhbWlseVwtb3JcLWNsYW47CivmnowgPCB2YXJpZXR5XC1vZlwtZWxtXC13aXRoXC1zbWFsbFwtc2VlZHM7Civpnq3plbfojqvlj4ogPCBiZXlvbmRcLXRoZVwtcmVhY2hcLW9mXC1vbmUnJ3NcLXBvd2VyOwor5LiN5a2454Sh6KGTIDwgaGF2ZVwtbmVpdGhlclwtbGVhcm5pbmdcLW5vclwtc2tpbGw7Civmh4noqbLoqqogPCBpdFwtc2hvdWxkXC1iZVwtbWVudGlvbmVkXC10aGF0XC1cLlwuXC47CivkuI3lvpfkuI0gPCBoYXZlXC1ub1wtY2hvaWNlXC1vclwtb3B0aW9uXC1idXRcLXRvOwor5LiN5a+S6ICM5oWEIDwgc2hpdmVyXC1hbGxcLW92ZXJcLXRob3VnaFwtbm90XC1jb2xkOwor5bC+54mZIDwgYVwteWVhclwtZW5kXC1kaW5uZXJcLWZvclwtZW1wbG95ZWVzOwor54+t6LyqIDwgcmVndWxhclwtcGFzc2VuZ2VyXC1vclwtY2FyZ29cLXNoaXA7Civlnp8gPCBjbGF5XC1zaGVlcFwtYnVyaWVkXC13aXRoXC10aGVcLWRlYWQ7Civmiqjmk4ogPCBhdHRhY2tcLVwodmVyYmFsbHlcLW9yXC1pblwtd3JpdGluZ1wpOwor6Iie5Y+wIDwgXCh0aGVhdHJpY2FsXC1vclwtcG9saXRpY2FsXClcLXN0YWdlOwor5ZKgIDwgdG9cLXdoaXNwZXJcLlwtdG9cLWJsYW1lXC10b1wtc2xhbmRlcjsKK+WPpyA8IHRvXC1jdXRcLW1lYXRcLW9mZlwtYXdheVwtZnJvbVwtYm9uZXM7CivlhpQgPCBjYXBcLXdvcm5cLWR1cmluZ1wtdGhlXC15aW5cLWR5bmFzdHk7CivkurwgPCB0b1wtYXNzZW1ibGVcLlwtdG9cLWdhdGhlclwtdG9nZXRoZXI7CivkuYQgPCBzaGltZVw6XC10b1wtZmluZFwtYVwtcGxhY2VcLXRvXC1kd2VsbDsKK+S1uCA8IHRoZVwtdG9hZFwtdGhhdFwtbGl2ZXNcLWluXC10aGVcLW1vb247Civks6EgPCBhXC1raW5kXC1vZlwtYmlyZFwtaW5cLWFuY2llbnRcLWJvb2tzOwor5YyX5LyQ6LuNIDwgdGhlXC1ub3J0aGVyblwtZXhwZWRpdGlvbmFyeVwtYXJteTsKK+SyniA8IGFcLXNlY29uZFwtZ2VuZXJhbFwtbmFtZVwtZm9yXC1wZXJjaDsKK+SxjCA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC10aGVcLWdsb2JlZmlzaDsKK+SwnSA8IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3RcLWZvclwtY29va2luZzsKK+SwgCA8IGRyZXNzZWRcLWhhaXJcLW9mXC1hXC1jaGluZXNlXC13b21hbjsKK+SuuCA8IHRvXC1tb3ZlXC1zbG93bHlcLWFuZFwtdGhlblwtc3dpZnRseTsKK+SsuyA8IHRvXC1lbnRlcnRhaW5cLWFcLWRlcGFydGluZ1wtZnJpZW5kOwor5Kq+IDwgdG9cLWRlYWxcLXdpdGhcLWFmZmFpcnNcLWNhdXRpb3VzbHk7Civkqo0gPCBhXC1jb250YWluZXJcLWZvclwtYm93c1wtYW5kXC1hcnJvd3M7CivkqKMgPCBsZWF0aGVyXC10b1wtYmVcLW1vaXN0ZW5lZFwtYnlcLXJhaW47Civou5/pq5Tlh7rniYjljZTmnIMgPCBzb2Z0d2FyZVwtcHVibGlzaGVyc1wtYXNzb2NpYXRpb247Civko6MgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLW5hbWVcLW9mXC1hXC1wbGFjZTsKK+SfmiA8IHRvXC1zaXRcLXdpdGhcLXRoZVwtbGVnc1wtc3ByZWFkXC1vdXQ7CivknLcgPCBmZXJtZW50ZWRcLWFuZFwtc2Vhc29uZWRcLXNveWJlYW5zOwor5JyqIDwgbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtb2xkXC10aW1lczsKK+SbgCA8IHJlYXNvbmFibGVcLWF1dGhvcml0eVwtc3RhdGVtZW50czsKK+SYhSA8IGFcLXNtYWxsXC1nYWRmbGllc1wtYW5kXC1tb3NxdWl0b2VzOwor5Y+v56e75qSNIDwgcG9ydGFibGVcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7CivkkIMgPCBmYXRcLWluXC10aGVcLWFiZG9tZW5cLW9yXC1pbnRlc3RpbmU7CivkjZsgPCBhXC1raW5kXC1vZlwtdG9vbFwtdXNlZFwtdG9cLWdldFwtZmlzaDsKK+SKpCA8IHZlZ2V0YWJsZVwtbWl4ZWRcLXdpdGhcLXRoaWNrXC1zb3VwOwor5IKyIDwgc3RhbmRhcmRcLXdlaWdodHNcLXVzZWRcLWluXC1zY2FsZXM7CivkgbAgPCB0b1wtbG9va1wtaW5cLWFcLWV2aWxcLW9yXC13aWNrZWRcLXdheTsKK+O8liA8IGdvdXJkXC11c2VkXC1hc1wtYVwtbGFkbGVcLW9yXC1kaXBwZXI7Civju6sgPCBhXC1nZW1cLW9yXC1vcm5hbWVudFwtb25cLWFcLXNjYWJiYXJkOwor54yb6LeMIDwgZHJvcFwtc2hhcnBseVwtXChlZ1wsXC1zdG9ja1wtcHJpY2VzXCk7CivlsaTlh7rkuI3nqq4gPCB0b1wtY29tZVwtb3V0XC1vbmVcLWFmdGVyXC10aGVcLW90aGVyOwor5L+h5Lu2IDwgYVwtbGV0dGVyXC1cKGllXCxcLXNlbnRcLWluXC10aGVcLW1haWxcKTsKK+OsuSA8IHRlbmRvbnNcLW9mXC10aGVcLWhlZWxcLW9mXC10aGVcLWZvb3Q7CivjrIEgPCB0aGVcLXN1blwtaXNcLXNoaW5pbmdcLW9uXC10aGVcLXdhdGVyOwor46WGIDwgaW5kdWxnZW50XC1hbmRcLXdpdGhvdXRcLXJlc3RyYWludDsKK+WFq+e0muW3peizh+WItiA8IGVpZ2h0XC1ncmFkZVwtd2FnZVwtc2NhbGVcLVwoc3lzdGVtXCk7Civjl5ggPCB0b1wtYml0ZVwtdGhlXC1oYXJkXC1hbmRcLXNvbGlkXC1mb29kOwor5L2/5ZG9IDwgYVwtXChkaXBsb21hdGljXC1vclwtb3RoZXJcKVwtbWlzc2lvbjsKK+OToiA8IHRvXC1jdXRcLXRoZVwtZmxlc2hcLWZyb21cLXRoZVwtYm9uZXM7Civjk5QgPCBmYWRlZFwtYW5kXC1mYWxsZW5cLVwtXC1cLWFzXC1ibG9zc29tczsKK+OSuyA8IHRvXC1nb1wtZm9yd2FyZFwtd2l0aFwtZXllc1wtY292ZXJlZDsKK+S4ueeariA8IHRoZVwtcm9vdFwtYmFya1wtb2ZcLXRoZVwtcGVvbnlcLXRyZWU7CivlrprlgZogPCB0b1wtaGF2ZVwtc29tZXRoaW5nXC1tYWRlXC10b1wtb3JkZXI7CivlnKjlr4bliIfms6jmhI8gPCB0b1wtcGF5XC1jbG9zZVwtYXR0ZW50aW9uXC1cKHRvXC1zdGhcKTsKK+WuieawkeWRiuekuiA8IGFcLW5vdGljZVwtdG9cLXJlYXNzdXJlXC10aGVcLXB1YmxpYzsKK+advuS4i+mbu+awo+W3pealrSA8IG1hdHN1c2hpdGFcLWVsZWN0cm9uaWNzXC1pbmR1c3RyeTsKK+mHjeeUqCA8IHRvXC1wdXRcLWluXC1hblwtaW1wb3J0YW50XC1wb3NpdGlvbjsKK+e0sOiPjOatpuWZqCA8IGJpb2xvZ2ljYWxcLXdlYXBvblwtXCh1c2luZ1wtZ2VybXNcKTsKK+avlOizvSA8IFxbYXRobGV0aWNcLW9yXC1vdGhlclxdXC1jb21wZXRpdGlvbjsKK+WIpemWi+eUn+mdoiA8IHN0YXJ0XC1zb21ldGhpbmdcLW5ld1wtb3JcLW9yaWdpbmFsOwor5pWY6L+wIDwgcmVsYXRlXC1cKGFcLXN0b3J5XC1vclwtaW5mb3JtYXRpb25cKTsKK+WKoOmHjSA8IGJlY29tZVx8bWFrZVwtbW9yZVwtc2VyaW91c1x8Z3JhdmVyOwor6JSa54K6IDwgdG9cLWFmZm9yZFwtXChhXC12aWV3XC1vZlwtc3RoXCxcLWVcLmdcLlwpOwor57aT5r+f5a24IDwgZWNvbm9taWNzXC1cKGFzXC1hXC1maWVsZFwtb2ZcLXN0dWR5XCk7Civpm7voh7ogPCByYWRpb1wtXChvclwtYnJvYWRjYXN0aW5nXClcLXN0YXRpb247CivlpoLpo6LkvLzmuLQgPCB0aGlyc3RpbmdcLW9yXC1odW5nZXJpbmdcLWZvclwtc3RoXC47CivplovlnIvlhYPli5sgPCBmb3VuZGluZ1wtZmF0aGVyc1wtXChvZlwtYVwtY291bnRyeVwpOwor56KR5p6XIDwgdGhlXC1mb3Jlc3RcLW9mXC1zdGVsZXNcLVwoaW5cLXhpJydhblwpOwor5bm5IDwgdHJ1bmtcLW9mXC10cmVlXC1vclwtb2ZcLWh1bWFuXC1ib2R5Owor5bC6IDwgY2hpbmVzZVwtbWVhc3VyZVwtYXBwcm94XC5cLScnZm9vdCcnOwor57GzIDwgaHVsbGVkXC1vclwtaHVza2VkXC11bmNvb2tlZFwtcmljZTsKK+m5jyA8IGZhYnVsb3VzXC1iaXJkXC1vZlwtZW5vcm1vdXNcLXNpemU7CivlloIgPCBpbnRlcmplY3Rpb25cLXRvXC1jYWxsXC1hdHRlbnRpb247CivmvYcgPCBzb3VuZFwtb2ZcLWJlYXRpbmdcLXdpbmRcLWFuZFwtcmFpbjsKK+emuSA8IGxlZ2VuZGFyeVwtaHNpYVwtZHluYXN0eVwtZm91bmRlcjsKK+aWnyA8IHRvXC1wb3VyXC13aW5lXC1vclwtdGVhXC1pbnRvXC1hXC1jdXA7CivokLwgPCB0aGVcLXN0ZW1cLWFuZFwtY2FseXhcLW9mXC1hXC1mbG93ZXI7CivpmIAgPCBwb3dlcmZ1bFwtYW5kXC1pbmZsdWVudGlhbFwtZ3JvdXA7CivmpbcgPCBtb2RlbFwtc3R5bGVcLW9mXC1jaGluZXNlXC13cml0aW5nOwor6L6EIDwgc2lkZXNcLW9mXC1jaGFyaW90XC13aGVyZVwtd2VhcG9uczsKK+S/kSA8IHdvb2RlblwtZmlndXJlXC1idXJpZWRcLXdpdGhcLWRlYWQ7CivlmLkgPCB1c2VkXC1kZXNjcmliZVwtY2xhcml0eVwtb2ZcLXZvaWNlOwor6L28IDwgaG9yaXpvbnRhbFwtd29vZGVuXC1iYXJcLWluXC1mcm9udDsKK+mmkSA8IHRpbWVcLW9mXC1mYW1pbmVcLW9yXC1jcm9wXC1mYWlsdXJlOwor5LylIDwgZ2hvc3RcLW9mXC1vbmVcLWRldm91cmVkXC1ieVwtdGlnZXI7Civnu7YgPCBzaWxrXC1yaWJib25cLWF0dGFjaGVkXC1hc1wtYVwtc2VhbDsKK+msiCA8IGZpbmVcLWdyb3d0aFwtb2ZcLWhhaXJcLWN1cmx5XC1oYWlyOwor56OUIDwgZG93bndhcmRcLXN0cm9rZVwtc2xhbnRpbmdcLXJpZ2h0Owor6KOiIDwgZm9sZGluZ1wtcHVyc2VcLWluc2VydGVkXC1pblwtYmVsdDsKK+aeuCA8IGtpbmRcLW9mXC1hc3BlblwtZm91bmRcLWluXC1zaWNodWFuOwor6IqKIDwgZXh1YmVyYW50XC1hbmRcLXZpZ29yb3VzXC1mb2xpYWdlOwor6YSEIDwgbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtc2hhbmRvbmc7CivpvLkgPCBhXC1raW5kXC1vZlwtaW5zZWN0aXZvcm91c1wtcm9kZW50Owor6I68IDwgYW5cLWVkaWJsZVwtd2F0ZXJcLXBsYW50XC1icmFzZW5pYTsKK+WcrCA8IHBsYXN0ZXJcLW92ZXJcLXdpdGhcLWxheWVyXC1vZlwtbXVkOwor6I6pIDwgbWVtYnJhbmVcLWxpbmluZ1wtaW5zaWRlXC1vZlwtcmVlZDsKK+ivtiA8IGFuXC1leGNsYW1hdGlvblwtb2ZcLWNvbmZpcm1hdGlvbjsKK+ikmSA8IHBhcGVyXC1vclwtY2xvdGhcLXBhc3RlZFwtdG9nZXRoZXI7Civnm7TmjqXmlbjmk5ogPCBkYXRhXC1kaXJlY3RcLVwoaW5cLWxhblwtZW11bGF0aW9uXCk7CivlpJbngZggPCB3YWl0YW5cLVwodGhlXC1idW5kXClcLFwtaW5cLXNoYW5naGFpOwor6K2J5a+mIDwgY29uZmlybVwtXChzb21ldGhpbmdcLXRvXC1iZVwtdHJ1ZVwpOwor5oSb6Z2i5a2QIDwgYmVcLWNvbmNlcm5lZFwtYWJvdXRcLWZhY2VcLXNhdmluZzsKK+itsOWToSA8IG1lbWJlclwtXChvZlwtYVwtbGVnaXNsYXRpdmVcLWJvZHlcKTsKK+WgseihqCA8IGZvcm1zXC1mb3JcLXJlcG9ydGluZ1wtc3RhdGlzdGljczsKK+aYjuWgsSA8IG1pbmdcLXBhb1wtbmV3c3BhcGVyXC1cKGhvbmdcLWtvbmdcKTsKK+WJjeeoiyA8IGZ1dHVyZVwtXChjYXJlZXJcLFwtZXRjXClcLXByb3NwZWN0czsKK+eZu+mWgCA8IHBheVwtYVwtdmlzaXRcLXRvXC1zb21lb25lJydzXC1ob3VzZTsKK+mCiuawkSA8IHBlb3BsZVwtbGl2aW5nXC1vblwtdGhlXC1mcm9udGllcnM7CivpgqPmnKsgPCBpZlwtdGhhdCcnc1wtdGhlXC1jYXNlXCxcLXRoZW5cLVwoXC5cLlwuXCk7CivmlYjmh4kgPCBlZmZlY3RcLVwoZWdcLFwtZ3JlZW5ob3VzZVwtZWZmZWN0XCk7CivloqjniL7nvL0gPCBtZWxib3VybmVcLVwoYW5cLWF1c3RyYWxpYW5cLWNpdHlcKTsKK+atueW+kiA8IGV2aWxcLXBlcnNvblwtd2hvXC1jb21taXRzXC1jcmltZXM7CivmlLblvqkgPCByZWNvdmVyXC1cKGxvc3RcLXRlcnJpdG9yeVwsXC1ldGNcLlwpOwor5YKy6aqoIDwgbG9mdHlcLWFuZFwtdW55aWVsZGluZ1wtY2hhcmFjdGVyOwor5pa35LqkIDwgYnJlYWtcLW9mZlwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor6Zu76IWm6IiH6Zu76Kmx57O757Wx5pW05ZCIIDwgY29tcHV0ZXJcLXRlbGVwaG9ueVwtaW50ZWdyYXRpb247CivptosgPCBhXC1zZWFcLWJpcmRcLXdpdGhcLWFcLXdoaXRlXC1icmVhc3Q7Civpr48gPCBhXC1kaWFsZWN0XC5cLlwuXC5cLlwuXC5cLlwtbmFtZVwtb2ZcLWZpc2g7CivppYEgPCBjYXJyeVwtbWVhbFwtdG9cLXdvcmtlcnNcLWluXC1maWVsZDsKK+aXpeacrOmbu+Wgsembu+ipseWFrOWPuCA8IG5pcHBvblwtdGVsZWdyYXBoXC1hbmRcLXRlbGVwaG9uZTsKK+mOqyA8IG9ybmFtZW50XC1vdmVyXC10aGVcLWhvcnNlJydzXC1oZWFkOwor5YKz57Wx6Yar6JelIDwgXChjaGluZXNlXClcLXRyYWRpdGlvbmFsXC1tZWRpY2luZTsKK+i1mSA8IGdpZnRcLW9mXC1tb25leVwtaGVscFwtcGF5XC1mdW5lcmFsOwor5pyJ5Y+y5Lul5L6GIDwgc2luY2VcLXRoZVwtYmVnaW5uaW5nXC1vZlwtaGlzdG9yeTsKK+W4s+aItiA8IFwoYmFua1wsXC1jb21wdXRlclwsXC1ldGNcLlwpXC1hY2NvdW50Owor6KmkIDwgdG9cLW1ha2VcLXdpbGRcLXN0YXRlbWVudHNcLXRvXC1saWU7CivmoLjlqIHmh77mlL/nrZYgPCBwb2xpY3lcLW9mXC1udWNsZWFyXC1pbnRpbWlkYXRpb247CivomLQgPCB5b3VuZ1wtc2hvb3RzXC1vZlwtdGhlXC1yYXBldHVybmlwOwor6I6dIDwgdG9cLWNob3BcLXN0cmF3XC1maW5lXC1mb3JcLWFuaW1hbHM7CivntKLmnbDntI0gPCBzb2pvdXJuZXJcLVwobWFydGlhblwtbGFuZFwtcm92ZXJcKTsKK+iFoCA8IGJldHdlZW5cLXRoZVwtc2tpblwtYW5kXC10aGVcLWZsZXNoOwor5YyF5rK755m+55eFIDwgZ3VhcmFudGVlXC10b1wtY3VyZVwtYWxsXC1kaXNlYXNlczsKK+e/vyA8IHN0cmVhbWVyXC1hZG9ybmVkXC13aXRoXC1mZWF0aGVyczsKK+etpSA8IHJvdW5kXC1zaGFwZWRcLWJhbWJvb1wtYmFza2V0XC1mb3I7Civlm7rnhLYgPCBhZG1pdHRlZGx5XC1cKGl0JydzXC10cnVlXC10aGF0XC5cLlwuXCk7Civnl4QgPCBzY3JvZnVsb3VzXC1zd2VsbGluZ3NcLWFuZFwtc29yZXM7CivkuK3oj6/kurrmsJHlhbHlkozlnIsgPCB0aGVcLXBlb3BsZScnc1wtcmVwdWJsaWNcLW9mXC1jaGluYTsKK+eOpCA8IGFcLWtpbmRcLW9mXC1nZW1cLWluZmVyaW9yXC10b1wtamFkZTsKK+acjeWLmeW7o+WRiuWNlOitsCA8IHNlcnZpY2VcLWFkdmVydGlzZW1lbnRcLXByb3RvY29sOwor54WgIDwgdG9cLWZyeVwtaW5cLWZhdFwtb3JcLW9pbFwuXC10b1wtc2NhbGQ7Civoh7rnjaggPCB0YWl3YW5cLWluZGVwZW5kZW5jZVwtXChtb3ZlbWVudFwpOwor5r2PIDwgZmFyZXNoYXJlXC1yZWNsYWltZWRcLWZyb21cLXJpdmVyOwor5ry8IDwgaGF2aW5nXC10aGVcLWFwcGVhcmFuY2VcLW9mXC1kZXB0aDsKK+S/neiLlyA8IGtlZXBcLWFcLWZ1bGxcLXN0YW5kXC1vZlwtc2VlZGxpbmdzOwor5qyeIDwgdGhlXC1sYXR0aWNlXC1vZlwtYVwtd2luZG93XC1hXC1zaWxsOwor5oyJ6ZyA5YiG6YWNIDwgZGlzdHJpYnV0aW9uXC1hY2NvcmRpbmdcLXRvXC1uZWVkOwor5LiW6LK/57WE57mUIDwgd3RvXC1cKHdvcmxkXC10cmFkZVwtb3JnYW5pemF0aW9uXCk7Civmm5ogPCB0d2lsaWdodFwtanVzdFwtYmVmb3JlXC1zdW5cLXJpc2VzOwor5rKS5pyJ5LuA6bq8IDwgdGhlcmUnJ3NcLW5vdGhpbmdcLVwoXC5cLlwuXC1hYm91dFwtaXRcKTsKK+aWmiA8IGFcLXNtYWxsXC1jdXBcLW9mXC1zdG9uZVwtd2l0aFwtZWFyczsKK+aMieWLnuWIhumFjSA8IGRpc3RyaWJ1dGlvblwtYWNjb3JkaW5nXC10b1wtd29yazsKK+i3r+eUsSA8IHJvdXRpbmdcLVwoaW5cLWNvbXB1dGVyXC1uZXR3b3Jrc1wpOwor5bCN576OIDwgXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtYW1lcmljYTsKK+aMh+aVuCA8IFwobnVtZXJpY2FsXCxcLXN0YXRpc3RpY2FsXClcLWluZGV4Owor562G55WrIDwgc3Ryb2tlc1wtb2ZcLWFcLWNoaW5lc2VcLWNoYXJhY3RlcjsKK+aJiiA8IHVwcmlnaHRcLWJhclwtZm9yXC1mYXN0ZW5pbmdcLWRvb3I7CivmhZwgPCBuYW1lXC1vZlwtYVwtbW9ua1wtaW5cLXRhbmdcLWR5bmFzdHk7CivnqbropbIgPCBcKG1pbGl0YXJ5XClcLWF0dGFja1wtZnJvbVwtdGhlXC1haXI7CivltKAgPCBwbGFjZVwtbmFtZVwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor6KGo5aCxIDwgc3RhdGlzdGljYWxcLXRhYmxlc1wtYW5kXC1yZXBvcnRzOwor5bKdIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtc2hhbmRvbmc7Civmi5jmirwgPCBcKGFycmVzdFwtYW5kXClcLXRha2VcLWludG9cLWN1c3RvZHk7Civoq4flvpfkvoYgPCBhYmxlXC10b1wtdGFsa1wtdG9cLW9yXC1nZXRcLW9uXC13aXRoOwor5aCtIDwgYVwtZHJ5XC1tb2F0XC1vdXRzaWRlXC1hXC1jaXR5XC13YWxsOwor5aCOIDwgY2hhcmFjdGVyXC11c2VkXC1mb3JcLXBsYWNlXC1uYW1lczsKK+WauSA8IGFcLXBhcnRpY2xlXC1pbXBseWluZ1wtY29tcGxldGlvbjsKK+mYv+aLieacqOWcliA8IGFsbWF0eVwtXChjYXBpdGFsXC1vZlwta2F6YWtoc3RhblwpOwor5YyzIDwgbGFkaWVzXC10b2lsZXRcLWNhc2VcLXdpdGhcLW1pcnJvcjsKK+WItSA8IHB1bmlzaG1lbnRcLWJ5XC1jdXR0aW5nXC1vZmZcLWVhcnM7CivlsJrmm7ggPCBoaWdoXC1vZmZpY2lhbFwtaW5cLWFuY2llbnRcLWNoaW5hOwor5LKBIDwgZ2VuZXJhbFwtdGVybVwtb2ZcLWFcLWtpbmRcLW9mXC1maXNoOwor5LiD5bGk5p625qeLIDwgc2V2ZW5cLWxheWVyXC1hcmNoaXRlY3R1cmVcLVwob3NpXCk7CivksJogPCB0aGVcLXRvcFwtcGFydFwtb2ZcLXRoZVwtcmljZVwtZ3J1ZWw7Civkr7UgPCBoYWlyXC1zdHlsZVwtZm9yXC1saXR0bGVcLWNoaWxkcmVuOwor5K+kIDwgYm9uZXdhcmVcLXVzZWRcLXRvXC1jb21iXC10aGVcLWhhaXI7Civkr5IgPCB0aGVcLXVwcGVyXC1wYXJ0XC1vZlwtdGhlXC1zaGluYm9uZTsKK+SulCA8IGFcLXlvdW5nXC1hbmRcLWZsZWV0XC1mb290ZWRcLWhvcnNlOwor5K26IDwgYVwtaG9yc2VcLXRvXC1yYWlzZVwtaXRzXC1oZWFkXC1oaWdoOwor5KuuIDwgdG9cLWJlbmRcLW9yXC1sb3dlclwtb2ZcLW9uZScnc1wtaGVhZDsKK+SrhiA8IHRoZVwtZnJvbnRcLWFuZFwtYmFja1wtb2ZcLXRoZVwtbmVjazsKK+SnkiA8IHN0ZXBzXC1sZWFkaW5nXC11cFwtdG9cLWFcLWJ1aWxkaW5nOwor5KSbIDwgY29tcG9uZW50XC1wYXJ0c1wtb2ZcLWFcLWNyb3NzXC1ib3c7Civko7kgPCB0b1wtYnJld1wtMTBcLXBlcmNlbnRcLW9mXC10aGVcLXdpbmU7Civko7UgPCB0b1wtYnJld1wtdGhlXC13aW5lXC1hXC1zZWNvbmRcLXRpbWU7Civko6wgPCB0aGVcLXNoaW55XC1jb2xvcmZ1bFwtb2ZcLXRoZVwtd2luZTsKK+iBs+eriyA8IHRvXC10b3dlclwtYWJvdmVcLVwob25cLXRvcFwtb2ZcLXN0aFwpOwor5KK+IDwgbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zbWFsbFwtc3RhdGU7CivkoYMgPCBhXC10b29sXC1mb3JcLWJydXNoaW5nXC10aGVcLXRocmVhZDsKK+ScsiA8IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtb2xkXC1jaGluYTsKK+ePree1hCA8IHRlYW1zXC1hbmRcLWdyb3Vwc1wtXChpblwtZmFjdG9yaWVzOwor5JiTIDwgdGhpY2tcLWJsb29kXC1vZlwtY2F0dGxlXC1hbmRcLWdvYXQ7Civkk78gPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtbG90dXNcLWZsb3dlcjsKK+STuSA8IHRvXC1zdHVmZlwtZnVsbFwtYW5kXC10b1wtZ3VscFwtZG93bjsKK+SNgSA8IHRoZVwtaGVtXC1vclwtYm9yZGVyXC1vZlwtYVwtZ2FybWVudDsKK+SLtCA8IHNpbGtcLWZhYnJpY3NcLXdpdGhcLW1peGVkXC1jb2xvcnM7Civki7MgPCBjbG90aFwtb3JcLXBhcGVyXC1wYXN0ZWRcLXRvZ2V0aGVyOwor5Lyv5q+NIDwgd2lmZVwtb2ZcLWZhdGhlcicnc1wtZWxkZXJcLWJyb3RoZXI7CivkiaQgPCBhXC1iYW1ib29cLXdhcmVcLWZvclwtd2FzaGluZ1wtcmljZTsKK+SJmyA8IGJhbWJvb1wtYmFza2V0XC1mb3JcLXdhc2hpbmdcLXJpY2U7CivkiZMgPCBtYXR0cmVzc1wtbWFkZVwtb2ZcLWJhbWJvb1wtc3RyaXBzOwor5IesIDwgdGhpblwtYmFtYm9vXC1sYXRoc1wta25pdHRlZFwtc2FpbDsKK+SHpyA8IHRvXC1maWxsXC1hblwtb3BlbmluZ1wtd2l0aFwtYmFtYm9vOwor5IShIDwgbm9ydGhlcm5cLW1pbm9yaXR5XC1ldGhuaWNcLWdyb3VwOwor5IO2IDwgcnVnZ2VkXC1hbmRcLXVuZXZlblwtb2ZcLXRoZVwtcm9ja3M7Civkg5ogPCBydWdnZWRcLWxhbmRcLW9mXC1zYW5kXC1hbmRcLXBlYmJsZTsKK+SDgiA8IGR1bGxcLXNvdW5kXC1vZlwtdGhlXC10b2xsaW5nXC1iZWxsOwor47yhIDwgYVwtc21hbGxcLWphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoOwor47W3IDwgdHVyYnVsZW50XC1mbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+S4reiXpSA8IFwodHJhZGl0aW9uYWxcKVwtY2hpbmVzZVwtbWVkaWNpbmU7Civoqp7pn7PpgJroqIrpgJrpgZMgPCB2b2ljZVwtXChjb21tdW5pY2F0aW9uc1wpXC1jaGFubmVsOwor47K5IDwgdGhlXC1kcnlcLXNvaWxcLW9uXC10aGVcLXJpdmVyXC1zaWRlOwor47KdIDwgZmluZVwtaGFpclwtb2ZcLWJpcmRzXC1hbmRcLWFuaW1hbHM7Civjr4UgPCB0aGVcLWJyYW5jaGVzXC1ncm93aW5nXC1kb3dud2FyZHM7CivjroIgPCBhblwtYXBwbGlhbmNlXC11c2VkXC10b1wtbGlmdFwtZm9vZDsKK+OspCA8IHdldFwtY2xvdGhlc1wtbm90XC1jb21wbGV0ZWx5XC1kcnk7Civjqr4gPCB0b1wtY3V0XC10aGVcLWZsZXNoXC1mcm9tXC10aGVcLWJvbmU7CivjqJkgPCB0b1wtY2xhc3BcLW9yXC1ob2xkXC11bmRlclwtdGhlXC1hcm07CivjprIgPCBhXC1wYXJ0aWNsZVwtZXhwcmVzc2luZ1wtc3VycHJpc2U7CivjpYsgPCBzb3VuZFwtb2ZcLXRoZVwtYW5ndWlzaFwtb2ZcLXNvcnJvdzsKK+OkryA8IGNsZXZlclwtb3JcLXNtYXJ0XC1pblwtYVwtc21hbGxcLXdheTsKK+OklCA8IHRvXC1jb25jZWRlXC1vclwtc3VibWl0XC13aWxsaW5nbHk7Civjo4cgPCBhXC1raW5kXC1vZlwtYmVhc3RcLXdpdGhcLWxvbmdcLWhhaXI7CivjoZ4gPCBhXC1zYWNrXC11c2VkXC10b1wtZmVlZFwtdGhlXC1ob3JzZXM7CivjoKMgPCBhXC1tb3VudGFpblwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor456vIDwgdGhlXC10dXJuaW5nXC1hcmVhXC1vZlwtYVwtbW91bnRhaW47Civnj63kuLvku7sgPCBhXC10ZWFjaGVyXC1pblwtY2hhcmdlXC1vZlwtYVwtY2xhc3M7CivjnIYgPCBjb21tb25seVwta25vd25cLWFzXC1tb3RoZXJcLWluXC13dTsKK+OZmiA8IHJlZFwtY29sb3JlZFwtaGFyZFwtYW5kXC1zb2xpZFwtbXVkOwor45ieIDwgeWVsbGluZ1wtc291bmRcLW9mXC10b3dpbmdcLWFcLWJvYXQ7CivjlKkgPCBoYWlyXC1vcm5tZW50c1wtdXNlZFwtaW5cLW9sZFwtdGltZTsKK+OUgCA8IHRvXC1icmFuZFwtY3JpbWluYWxzXC1vblwtdGhlXC1mYWNlOwor5pqX6KKLIDwgY2FtZXJhXC1iYWdcLVwoZm9yXC1jaGFuZ2luZ1wtZmlsbVwpOwor5Y+v6YG45pOH5Lif5qOEIDwgZGlzY2FyZFwtZWxpZ2libGVcLVwoZnJhbWVcLXJlbGF5XCk7CivomZXmsbogPCBleGVjdXRlXC1cKGFcLWNvbmRlbW5lZFwtY3JpbWluYWxcKTsKK+aHieacieeboeaciSA8IGV2ZXJ5dGhpbmdcLVwob25lXC1jb3VsZFwtaW1hZ2luZVwpOwor5paw6a6uIDwgZnJlc2hcLVwoZXhwZXJpZW5jZVwsXC1mb29kXCxcLWV0Y1wuXCk7CivlsI7oiKrlk6EgPCBuYXZpZ2F0b3JcLVwob25cLWFcLXBsYW5lXC1vclwtYm9hdFwpOwor5Y+r6IGyIDwgeWVsbGluZ1wtXChzb3VuZFwtbWFkZVwtYnlcLXBlcnNvblwpOwor54+t5birIDwgd2l0aGRyYXdcLXRyb29wc1wtZnJvbVwtdGhlXC1mcm9udDsKK+WTgOaCvCA8IGdyaWV2ZVwtXChtb3VyblwpXC1vdmVyXC1zYicnc1wtZGVhdGg7Civnp5HmgakgPCBjb2hlblwtXCh1XC5zXC5cLWRlZmVuY2VcLXNlY3JldGFyeVwpOwor5pWX6ZmjIDwgYmVcLWRlZmVhdGVkXC1vblwtdGhlXC1iYXR0bGVmaWVsZDsKK+ecvuitsOmZoiA8IGhvdXNlXC1vZlwtcmVwcmVzZW50YXRpdmVzXC1cKHVzYVwpOwor5YyF6LOgIDwgZ3VhcmFudGVlXC10b1wtcGF5XC1jb21wZW5zYXRpb25zOwor5ZCN5qyhIDwgcG9zaXRpb25cLWluXC1hXC1yYW5raW5nXC1vZlwtbmFtZXM7Civlq4Llq4IgPCBzaXN0ZXJcLWluXC1sYXdcLVwoaHVzYmFuZCcnc1wtc2lkZVwpOwor5aWJ6KGMIDwgdG9cLXB1cnN1ZVwtXChhXC1jb3Vyc2VcLFwtYVwtcG9saWN5XCk7CivpnZLlsbHntqDmsLQgPCB2ZXJkYW50XC1oaWxsc1wtYW5kXC1ncmVlblwtd2F0ZXJzOwor5ZG85ZaaIDwgY2FsbFwtb3V0XC1cKHNvbWVvbmUnJ3NcLW5hbWVcLFwtZXRjXCk7CivwoICBIDwgdGhlXC1vcmlnaW5hbFwtZm9ybVwtZm9yXC3kuINcLXVcKzRlMDM7CivwoICAIDwgdGhlXC1zb3VuZFwtbWFkZVwtYnlcLWJyZWF0aGluZ1wtaW47CivombnmqYvmqZ/loLQgPCBob25ncWlhb1wtYWlycG9ydFwtXChpblwtc2hhbmdoYWlcKTsKK+e1seS4gOaLm+eUnyA8IG5hdGlvbmFsXC11bmlmaWVkXC1lbnRyYW5jZVwtZXhhbTsKK+ekuuWogSA8IGhvbGRcLWFcLVwocHJvdGVzdFwpXC1kZW1vbnN0cmF0aW9uOwor5p2x6YOo5pmC6ZaTIDwgXCh1XC5zXC5cKVwtZWFzdGVyblwtXChzdGFuZGFyZFwpXC10aW1lOwor55W25LqL5Lq6IDwgcGVyc29uc1wtaW52b2x2ZWRcLW9yXC1pbXBsaWNhdGVkOwor5pmC5aSn5pmC5bCPIDwgc29tZXRpbWVzXC1iaWdcLFwtc29tZXRpbWVzXC1zbWFsbDsKK+W4uOimj+mKhembu+ipsee3miA8IG9yZGluYXJ5XC1jb3BwZXJcLXRlbGVwaG9uZVwtbGluZTsKK+i/piA8IGNoYXJhY3RlclwtZm9yXC10cmFuc2xpdGVyYXRpb247CivlurUgPCBidWRkaGlzdFwtbW9uYXN0ZXJ5XC1vclwtbnVubmVyeTsKK+W6miA8IHNldmVudGhcLW9mXC10ZW5cLWN5Y2xpY2FsXC1zdGVtczsKK+i2oyA8IHdoYXRcLWF0dHJhY3RzXC1vbmUnJ3NcLWF0dGVudGlvbjsKK+eVlCA8IGJvdW5kYXJ5XC1wYXRoXC1kaXZpZGluZ1wtZmllbGRzOwor5aS+IDwgYmVcLXdlZGdlZFwtb3JcLWluc2VydGVkXC1iZXR3ZWVuOwor6L6GIDwgbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdmVoaWNsZXM7CivmgJQgPCBhXC1kaXNlYXNlXC1yZXNlbWJsaW5nXC1uZXVyb3NpczsKK+mZjCA8IGZvb3RcLXBhdGhcLWJldHdlZW5cLXJpY2VcLWZpZWxkczsKK+mqhiA8IGFcLXdoaXRlXC1ob3JzZVwtd2l0aFwtYmxhY2tcLW1hbmU7CivmpaMgPCBjcm9zc2JlYW1cLWFib3ZlXC1vclwtdW5kZXJcLWdhdGU7CivnkqcgPCBwaWVjZVwtb2ZcLWphZGVcLXdpdGhcLWhvbGVcLWluXC1pdDsKK+iGuyA8IHJhbmtcLW9kb3JcLVwob2ZcLXNoZWVwXC1vclwtZ29hdHNcKTsKK+eOkSA8IHBlYXJsXC10aGF0XC1pc1wtbm90XC1xdWl0ZVwtcm91bmQ7CivllKIgPCBmbHV0ZVwtbGlrZVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+algiA8IGFcLXJhZnRcLlwtdG9cLWhld1wuXC10b1wtZmVsbFwtdHJlZXM7CivnipIgPCBlbnRlcnRhaW5cLXZpY3RvcmlvdXNcLXNvbGRpZXJzOwor55+NIDwgbG9va1wtYWJvdXRcLWluXC1mcmlnaHRcLW9yXC1hbGFybTsKK+aTpCA8IHRvXC1ibG93XC10aGVcLW5vc2VcLXdpdGhcLWZpbmdlcnM7CivoiqEgPCBwbGFudFwtYWxsaWVkXC10b1wtdGhlXC13YXRlcmxpbHk7CivnsbwgPCBub25cLWdsdXRpbm91c1wtbG9uZ1wtZ3JhaW5cLXJpY2U7CivmoaEgPCBiZW50XC1vclwtdHdpc3RlZFwtcGllY2VcLW9mXC13b29kOwor6bu7IDwgc3BlY2lhbFwtcGF0dGVyblwtb2ZcLWVtYnJvaWRlcnk7CivltZ0gPCBnb3Vsb3VcLW1vdW50YWluXC1wZWFrXC1pblwtaHVuYW47Civlnq0gPCBjaGFyYWN0ZXJcLXVzZWRcLWluXC1wbGFjZVwtbmFtZXM7CivnoZYgPCBcPGFyY2hcPlwtdG93blwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+mCoSA8IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLXNpY2h1YW47CivorqAgPCBzaW1wbGlmaWVkXC1rYW5neGlcLXJhZGljYWxcLTE0OTsKK+WZuyA8IGNoYXJhY3RlclwtdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor55asIDwgc2Nyb2Z1bG91c1wtbHVtcHNcLW9yXC1zd2VsbGluZ3M7CivolJ8gPCBmcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47CivlnqcgPCB2YXJpYWJsZVwtdW5pdFwtb2ZcLWxhbmRcLW1lYXN1cmU7CivprI8gPCBhXC1jb2lmZnVyZVwtb25cLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+etmCA8IFwoYVwtbWVhc3VyZVwtb2ZcLXdpZHRoXC1vZlwtY2xvdGhcKTsKK+e8kSA8IGNvcmRcLWJpbmRpbmdcLW9uXC1oaWx0XC1vZlwtc3dvcmQ7CivnsJYgPCBiYW1ib29cLXRyYXBcLWZvclwtY2F0Y2hpbmdcLWZpc2g7CivluosgPCBhXC1jdXBib2FyZFwtb3JcLXBhbnRyeVwtdG9cLXN0b3JlOwor55SNIDwgcmFmdGVyc1wtc3VwcG9ydGluZ1wtcm9vZlwtdGlsZXM7CivlkIPliIAgPCBwZW5ldHJhdGlvblwtb2ZcLWFcLWN1dHRpbmdcLXRvb2w7CivlkITkvY0gPCBldmVyeWJvZHlcLVwoYVwtdGVybVwtb2ZcLWFkZHJlc3NcKTsKK+mfk+WckyA8IGtvcmVhblwtd29uXC1cKHVuaXRcLW9mXC1jdXJyZW5jeVwpOwor5LiN6L6t6ICM5YilIDwgbGVhdmVcLXdpdGhvdXRcLXNheWluZ1wtZ29vZFwtYnllOwor55m+6IG95LiN5Y6tIDwgd29ydGhcLWhlYXJpbmdcLWFcLWh1bmRyZWRcLXRpbWVzOwor5L2O6ZqO6Kqe6KiAIDwgbG93XC1sZXZlbFwtXChjb21wdXRlclwpXC1sYW5ndWFnZTsKK+S4jei2s+eCuuiokyA8IG5vdFwtdG9cLWJlXC10YWtlblwtYXNcLWFuXC1leGFtcGxlOwor5aCx56S+IDwgZ2VuZXJhbFwtb2ZmaWNlXC1vZlwtYVwtbmV3c3BhcGVyOwor55m86LehIDwgdG9cLXJpc2VcLXRvXC1wb3dlclwtYW5kXC1wb3NpdGlvbjsKK+aUr+aPtCA8IHByb3ZpZGVcLWFzc2lzdGFuY2VcLW9yXC1iYWNraW5nOwor6KeA5risIDwgXChzY2llbnRpZmljXCxcLWV0Y1wpXC1vYnNlcnZhdGlvbjsKK+mBleW/gyA8IGFnYWluc3RcLW9uZXNcLXdpbGxcLW9yXC1mZWVsaW5nczsKK+mnuSA8IGJsYWNrXC1ob3JzZVwtd2l0aFwtYVwtd2hpdGVcLWZhY2U7CivppY4gPCB3aW5lXC1hbmRcLWZvb2RcLWVhdGVuXC13aXRoXC13aW5lOwor5ZCM5q2l5pW45L2N6ZqO5bGkIDwgc3luY2hyb25vdXNcLWRpZ2l0YWxcLWhpZXJhcmNoeTsKK+aLvOmfsyA8IHBpbnlpblwtXChjaGluZXNlXC1yb21hbml6YXRpb25cKTsKK+Wkp+WQueWkp+aTgiA8IG1ha2VcLWFuXC1leGhpYml0aW9uXC1vZlwtb25lc2VsZjsKK+mHhCA8IHdpbmVcLWJyZXdcLWZvclwtdGhlXC1zZWNvbmRcLXRpbWU7Civph4EgPCBzbWVhclwtd2l0aFwtYmxvb2RcLWluXC1zYWNyaWZpY2U7CivlooPlpJYgPCBvdXRzaWRlXC1cKGFcLWNvdW50cnknJ3NcKVwtYm9yZGVyczsKK+S4iua1t+aIsuWKh+WtuOmZoiA8IHNoYW5naGFpXC10aGVhdHJpY2FsXC1pbnN0aXR1dGU7Civov6cgPCBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWVcLWFycmFuZ2U7CivovZggPCB0ZWFyXC1hc3VuZGVyXC1iZXR3ZWVuXC1jaGFyaW90czsKK+i8mSA8IHNpZGVzXC1vZlwtY2hhcmlvdFwtd2VyZVwtd2VhcG9uczsKK+aLjOmdoiA8IG5vb2RsZXNcLXNlcnZlZFwtd2l0aFwtc295XC1zYXVjZTsKK+ebtOaOpSA8IGRpcmVjdFwtXChvcHBvc2l0ZVwtb2ZcLWluZGlyZWN0XCk7CivoqYAgPCBnYXJydWxvdXNcLXRvXC13aGlzcGVyXC5cLXRvXC1qb2tlOwor6Ki5IDwgdG9cLWJlZ3VpbGVcLXdpdGhcLWZhbHNlXC1zdG9yaWVzOwor6JeKIDwgYVwta2luZFwtb2ZcLWJlYW5cLXdpdGhcLWZsYXRcLXBvZHM7CivlronkuYvoi6XntKAgPCBiZWFyXC1oYXJkc2hpcFwtd2l0aFwtZXF1YW5pbWl0eTsKK+iIoCA8IGxvbmdcLW5hcnJvd1wta25pZmVcLXNoYXBlZFwtYm9hdDsKK+mPoemgrSA8IGNhbWVyYVwtc2hvdFwtXChpblwtYVwtbW92aWVcLFwtZXRjXCk7Civnv6MgPCBmZWF0aGVyc1wtdXNlZFwtZGVjb3JhdGVcLWNvZmZpbjsKK+iOq+S4jSA8IHRoZXJlXC1pc1wtbm9cLW9uZVwtXCh3aG9cLWRvZXNuJyd0XCk7CivpgIHkurogPCB0b1wtc2VlXC1cKG9yXC13YWxrXClcLXNvbWVvbmVcLWhvbWU7Civnmb3mlocgPCB0aGVcLXRleHRcLW9mXC1hblwtYW5ub3RhdGVkXC1ib29rOwor57iTIDwgb3JhbmdlXC1vclwtcmVkZGlzaFwteWVsbG93XC1zaWxrOwor6KW/5ZOI5Yqq5YWLIDwgXChraW5nXClcLXNpaGFub3VrXC1cKG9mXC1jYW1ib2RpYVwpOwor5bCH6aCYIDwgaGlnaFwtcmFua2luZ1wtbWlsaXRhcnlcLW9mZmljZXI7CivmrrrkurrmoYjku7YgPCBcKGNhc2VcLW9mXCxcLWluY2lkZW50XC1vZlwpXC1tdXJkZXI7Civns48gPCByaWNlXC1ncml0c1wtbGVmdFwtYWZ0ZXJcLWh1bGxpbmc7Civnr5ggPCBhXC11dGVuc2lsXC11c2VkXC10b1wtZmlsdGVyXC13aW5lOwor57SF57ag54eIIDwgXChyZWRcLWFuZFwtZ3JlZW5cKVwtdHJhZmZpY1wtbGlnaHQ7CivmjozmrIogPCB3aWVsZFwtXChwb2xpdGljYWxcLFwtZXRjXC5cKVwtcG93ZXI7Civkv4PpgLIgPCB0b1wtcHJvbW90ZVwtXChhblwtaWRlYVwtb3JcLWNhdXNlXCk7Civnn7AgPCBhcnJvd1wtd2l0aFwtYXR0YWNoZWRcLXNpbGtcLWNvcmQ7CivlhazlrokgPCBcKG1pbmlzdHJ5XC1vZlwpXC1wdWJsaWNcLXNlY3VyaXR5Owor546DIDwgYVwtbGFyZ2VcLWFwZVwtZm91bmRcLWluXC13XC5cLWNoaW5hOwor54yHIDwgdGhlXC1zY3JlYW1cLW9yXC1yb2FyXC1vZlwtYVwtdGlnZXI7CivnibggPCB0aGVcLWZlbWFsZVwtb2ZcLWNlcnRhaW5cLWFuaW1hbHM7Civog4zpgZPogIzpprMgPCBydW5cLWluXC10aGVcLW9wcG9zaXRlXC1kaXJlY3Rpb247Civmu5kgPCB3YXRlcnNcLWNvbnZlcmdpbmdcLXRvXC1vbmVcLXNwb3Q7CivlgrPovLjmjqfliLbljZTlrpogPCB0cmFuc21pc3Npb25cLWNvbnRyb2xcLXByb3RvY29sOwor55eF5qC5IDwgYW5cLWluY29tcGxldGVseVwtY3VyZWRcLWlsbG5lc3M7Civoo5zloLEgPCBtYWtlXC1hXC1yZXBvcnRcLWFmdGVyXC10aGVcLWV2ZW50Owor6YeN6KSH56+AIDwgcmVwZWF0ZWRcLXNlZ21lbnRcLVwobmV0d29ya2luZ1wpOwor5qSKIDwgdG9cLWZpdFwtYVwtaGFuZGxlXC1pbnRvXC1hXC1zb2NrZXQ7CivkuI3lkI3kuIDmlocgPCB3aXRob3V0XC1hXC1wZW5ueVwtdG9cLW9uZScnc1wtbmFtZTsKK+S4jeeEoeWwj+ijnCA8IG5vdFwtYmVcLXdpdGhvdXRcLXNvbWVcLWFkdmFudGFnZTsKK+WwjeiHuiA8IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLXRhaXdhbjsKK+adv+m8kyA8IGFcLXNtYWxsXC1kcnVtXC1mb3JcLW1hcmtpbmdcLXRpbWU7CivmmpAgPCB0aGVcLWJyaWdodFwtc2hpbmluZ1wtb2ZcLXRoZVwtc3VuOwor5pizIDwgdGhlXC1kZWNsaW5pbmdcLXN1blwtaW5cLXRoZVwtd2VzdDsKK+eJueWIpeihjOaUv+WNgCA8IHNwZWNpYWxcLWFkbWluaXN0cmF0aXZlXC1yZWdpb247CivotIXov7AgPCB0b1wtc2F5XC1tb3JlXC10aGFuXC1pc1wtbmVjZXNzYXJ5Owor5o2sIDwgcHJlc3NcLWRvd25cLWhlYXZpbHlcLXdpdGhcLWhhbmRzOwor5oqUIDwgdGFrZVwtb3JcLWhvbGRcLXVwXC1pblwtYm90aFwtaGFuZHM7Civlr6bogpggPCBmdWxsXC1hcm1cLVwobWV0aG9kXC1vZlwtcGFpbnRpbmdcKTsKK+a3mOmHkSA8IHBhbm5pbmdcLVwoZm9yXC1wcmVjaW91c1wtbWV0YWxzXCk7CivltL4gPCBwbGFjZVwtbmFtZVwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civls6sgPCBtb3VudGFpblwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+WnhSA8IHdvbWFuXC1hdFwtdGltZVwtb2ZcLW1lbnN0cnVhdGlvbjsKK+WjvCA8IHBhbGFjZVwtY29ycmlkb3JcLW9yXC1wYXNzYWdld2F5Owor5aONIDwgbW9hdFwtYXJvdW5kXC1hXC1jaXR5XC5cLWFcLWNoYW5uZWw7CivliqDlvLfnrqHliLYgPCB0b1wtdGlnaHRlblwtY29udHJvbFwtXChvdmVyXC1zdGhcKTsKK+WVqSA8IHBhcnRpY2xlXC1pbXBseWluZ1wtcHJvYmFiaWxpdHk7Civlj5AgPCB0b1wtcHJpY2tcLWFcLWRvZ1wtdG9cLW1ha2VcLWhpbVwtZ287CivljZAgPCBzd2FzdGlrYVwtZm91cnRoXC1vZlwtYXVzcGljaW91czsKK+aIiOeIviA8IFwoYWxcKVwtZ29yZVwtXCh1c1wtdmljZVwtcHJlc2lkZW50XCk7CivktpUgPCBpcnJlZ3VsYXJcLWFuZFwtcHJvbWluZW50XC10ZWV0aDsKK+S1mCA8IGRvc2VuJyd0XC10XC1zdGlja1wtdG9cLWVhY2hcLW90aGVyOwor5LK1IDwgYVwtZ2VuZXJhbFwtbmFtZVwtb2ZcLXNtYWxsXC1iaXJkczsKK+S6guiqqiA8IHRvXC1tYWtlXC1pcnJlc3BvbnNpYmxlXC1yZW1hcmtzOwor5K+GIDwgc21hbGxcLWFuZFwtdGhpblwtcGllY2VcLW9mXC1ib25lczsKK+S6uuawkeaXpeWgsSA8IHJlbm1pblwtcmliYW9cLVwocGVvcGxlJydzXC1kYWlseVwpOwor5KuyIDwgdGhpblwtYW5kXC1zaWNrbHlcLWluXC1hcHBlYXJhbmNlOwor5KukIDwgYmV0d2VlblwtdGhlXC1leWVicm93c1wtYW5kXC1leWVzOwor5KuhIDwgYVwtbG9uZ1wtc2hhcGVcLW9mXC1oZWFkXC1hbmRcLWZhY2U7Civkq4sgPCBmZW1hbGVcLWF0dGVuZGFudHNcLW9yXC1zZXJ2YW50czsKK+mWi+Wni+S7peWJjSA8IGJlZm9yZVwtdGhlXC1iZWdpbm5pbmdcLVwob2ZcLXN0aFwpOwor5KeQIDwgYVwtbW91bnRhaW5cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5KWjIDwgYW5cLWluc3RydW1lbnRcLWZvclwtYm9yaW5nXC13b29kOwor5KWJIDwgdGhlXC1jdXJ2ZWRcLWlyb25cLXBhcnRcLW9mXC1hXC1ob2U7CivkpJIgPCB3aW5lXC1tYWRlXC1mcm9tXC1nbHV0aW5vdXNcLXJpY2U7CivkpI0gPCByb3R0ZW5cLXBhc3RlXC1vclwtc295YmVhblwtc2F1Y2U7CivkuI3orZjlpKfpq5QgPCBmYWlsXC10b1wtc2VlXC10aGVcLWxhcmdlclwtaXNzdWVzOwor5KC9IDwgaGVpZ2h0XC1vclwtc3RhdHVyZVwtb2ZcLWFcLXBlcnNvbjsKK+SgsSA8IHRvXC13YWxrXC1zbG93bHlcLWFuZFwtY2F1dGlvdXNseTsKK+SfpyA8IHNvdW5kXC1vZlwtdHJlYWRpbmdcLW9yXC1zdGVwcGluZzsKK+SehyA8IGdpZnRzXC10b1wtc3VwZXJpb3JzXC1vclwtZnJpZW5kczsKK+SdvSA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLWluXC1vbGRcLWNoaW5hOwor5YW15bel5bugIDwgbXVuaXRpb25zXC1vclwtb3JkbmFuY2VcLWZhY3Rvcnk7CivknZkgPCBhXC1raW5kXC1vZlwtYW5pbWFsXC1saWtlXC1hXC10aWdlcjsKK+SciCA8IHRvXC1zcGVha1wtb25cLWJlaGFsZlwtb2ZcLWFub3RoZXI7CivkmLMgPCBhXC1nYXJtZW50XC1vZlwtc2luZ2xlXC10aGlja25lc3M7Civkj7wgPCB3aGF0XC1pc1wtbGVmdFwtb3Zlclwtb2ZcLXRoZVwtZm9vZDsKK+S4jeaJk+iHquaLmyA8IGNvbmZlc3NcLXdpdGhvdXRcLWJlaW5nXC1wcmVzc2VkOwor5I6iIDwgdG9cLW1lYXN1cmVcLWJ5XC1waW50c1wtYW5kXC1wZWNrczsKK+SOkSA8IGZseWluZ1wtb3ZlclwtdGhlXC13YXRlclwtc3VyZmFjZTsKK+SNriA8IHlvdW5nXC1nb2F0XC11bmRlclwtb25lXC15ZWFyXC1vbGQ7CivkjYIgPCB0b29sc1wtdG9cLWRyYXdcLXdhdGVyXC1vclwtbGlxdWlkOwor5Iy/IDwgdGhlXC1icmVhZHRoXC1vZlwtY2xvdGhcLW9yXC1wYXBlcjsKK+SMlyA8IHRoZVwtbGVmdFwtb3Zlclwtb2ZcLWRyYXdpbmdcLXNpbGs7CivkjIggPCB0b1wtZ2V0XC1zb21ldGhpbmdcLXdpdGhcLWFcLWxhc3NvOwor5LiA6IiJ5YWp5b6XIDwga2lsbFwtdHdvXC1iaXJkc1wtd2l0aFwtb25lXC1zdG9uZTsKK+S4jei7jCA8IGFnYWluc3RcLXRoZVwtbGF3XC1vclwtZGlzY2lwbGluZTsKK+SJpSA8IGFcLXNtYWxsXC1iYXNrZXRcLWZvclwtY2hvcHN0aWNrczsKK+WNiui6q+WDjyA8IGhhbGZcLWxlbmd0aFwtcGhvdG9cLW9yXC1wb3J0cmFpdDsKK+SGuiA8IHdoaXJsaW5nXC1vZlwtdGhlXC1mbG93aW5nXC13YXRlcjsKK+SFoiA8IG1hdHVyZVwtb3JcLXJpcGVuXC1vZlwtdGhlXC1ncmFpbnM7Civkv53llYYgPCBwcmVzZXJ2YXRpb25cLW9mXC1zb2lsXC1tb2lzdHVyZTsKK+O/tiA8IHRoZVwtc2lkZXNcLW9mXC1hXC1zaG9lXC1vclwtZ3V0dGVyOwor472wIDwgY2FydmVkXC13aW5kb3dcLWZyYW1lXC1vblwtYVwtZG9vcjsKK+S9nOaIsCA8IGNvbmR1Y3RcLVwobWlsaXRhcnlcLW9wZXJhdGlvbnNcKTsKK+O5giA8IHVudGFtZWRcLWFuZFwtaW5kb2NpbGl0eVwtY2F0dGxlOwor47SEIDwgdGhlXC13YXRlclwtZmxvd2luZ1wtaW5cLWFcLXR1cm5lZDsKK+S4luihjCA8IFxbYWJicmV2aWF0aW9uXC1mb3JcXVwtd29ybGRcLWJhbms7CivjsIkgPCB0aGVcLWhhemVsXC1udXRcLW9yXC1maWxiZXJ0XC10cmVlOwor5Lit6I+vIDwgY2hpbmFcLVwoYWx0ZXJuYXRlXC1mb3JtYWxcLW5hbWVcKTsKK+OtnyA8IHRvcnR1cmVcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OrkCA8IGRpc3RhbnRcLWFuZFwtaW5kaXN0aW5ndWlzaGFibGU7CivjobsgPCBuYW1lXC1vZlwtYVwtc21hbGxcLWFuY2llbnRcLXN0YXRlOwor5L615YWlIDwgdG9cLW1ha2VcLVwobWlsaXRhcnlcKVwtaW5jdXJzaW9uczsKK+eQg+aqryA8IHRhYmxlXC1cKGZvclwtZ2FtZXNcLXVzaW5nXC1iYWxsc1wpOwor45uQIDwgd2lmZVwtb2ZcLW9uZScnc1wtZWxkZXInJ3NcLWJyb3RoZXI7CivjmoYgPCB0b1wtZG9cLXNvbWV0aGluZ1wtaW5cLWFuXC1vbGRcLXdheTsKK+OWnyA8IHRvXC1kZWxpdmVyXC1vdmVyXC10b1wtcGVyc29uYWxseTsKK+S4i+iHuiA8IHN0ZXBcLWRvd25cLVwoZnJvbVwtb2ZmaWNlXCxcLWV0Y1wuXCk7CivosqrmsaEgPCBcKHBvbGl0aWNhbFwsXC1tb3JhbFwpXC1jb3JydXB0aW9uOwor5Lit57SaIDwgbWlkZGxlXC1sZXZlbFwtXChpblwtYVwtaGllcmFyY2h5XCk7CivmnInnmoQgPCBcKHRoZXJlXC1hcmVcKVwtc29tZVwtXCh3aG9cLWFyZVwuXC5cLlwpOwor6JOL6aOvIDwgcmljZVwtd2l0aFwtbWVhdFwtYW5kXC12ZWdpdGFibGVzOwor5LiN6YCf5LmL5a6iIDwgdW5pbnZpdGVkXC1vclwtdW5leHBlY3RlZFwtZ3Vlc3Q7CivkuIvnj60gPCB0b1wtY29tZVwtb3JcLWdvXC1vclwtZ2V0XC1vZmZcLXdvcms7Civnmbzpm7vph48gPCBcKGdlbmVyYXRlZFwpXC1lbGVjdHJpY2FsXC1lbmVyZ3k7CivkuI3lvpfopoHpoJggPCBmYWlsXC10b1wtZ3Jhc3BcLXRoZVwtbWFpblwtcG9pbnRzOwor5YyF6Yq3IDwgaGF2ZVwtZXhjbHVzaXZlXC1zZWxsaW5nXC1yaWdodHM7CivpgLLooYzoqr/mn6UgPCB0b1wtY2FycnlcLW91dFwtYW5cLWludmVzdGlnYXRpb247CivorpPnkIMgPCB0b1wtY29uY2VkZVwtcG9pbnRzXC1cKGluXC1hXC1nYW1lXCk7Civmm7jmiL8gPCBzdHVkeVwtXChpXC5lXC5cLXRoZVwta2luZFwtb2ZcLXJvb21cKTsKK+mAmueUqOizh+a6kOitmOWIpeiZnyA8IHVuaXZlcnNhbFwtcmVzb3VyY2VcLWlkZW50aWZpZXI7Civoqo3orZggPCBiZVwtYWNxdWFpbnRlZFwtd2l0aFwtXChhXC1wZXJzb25cKTsKK+WNu+eXhSA8IHRvXC1wcmV2ZW50XC1vclwtdHJlYXRcLWFcLWRpc2Vhc2U7CivpgbLpgbIgPCBcKGJlXClcLWxhdGVcLVwod2l0aFwtYVwtdGFza1wsXC1ldGNcLlwpOwor5aSn6KGX5bCP5be3IDwgbGFyZ2VcLXN0cmVldHNcLWFuZFwtc21hbGxcLWxhbmVzOwor8KCAhSA8IGFuXC1hbHRlcm5hdGVcLWZvcm1cLW9mXC11XCs0ZWE1XC3kuqU7Civlvrfnj60gPCBkdXJiYW5cLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+S/neWuieaXjyA8IHRoZVwtYmFvYW5cLVwocGFvYW5cKVwtbmF0aW9uYWxpdHk7Civmk7rovKogPCBiYWxhbmNlXC1cKG9mXC1hXC13YXRjaFwtb3JcLWNsb2NrXCk7Civmk7roqK0gPCBmdXJuaXNoXC1hbmRcLWRlY29yYXRlXC1cKGFcLXJvb21cKTsKK+axn+a+pOawkSA8IGppYW5nXC16ZW1pblwtXChjaGluZXNlXC1wcmVtaWVyXCk7CivnhrHnt5ogPCBob3RsaW5lXC1cKGNvbW11bmljYXRpb25zXC1saW5rXCk7Civms5XliLYgPCBsZWdhbFwtc3lzdGVtXC1hbmRcLWluc3RpdHV0aW9uczsKK+S7tiA8IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLWFydGljbGU7CivlkJcgPCBmaW5hbFwtaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7Civpur0gPCBpbnRlcnJvZ2F0aXZlXC1maW5hbFwtcGFydGljbGU7Civnn6MgPCBwYXJ0aWNsZVwtb2ZcLWNvbXBsZXRlZFwtYWN0aW9uOwor5LmSIDwgdXNlZFwtd2l0aFwtcG9uZ1wtZm9yXC1waW5nXC1wb25nOwor5LmTIDwgdXNlZFwtd2l0aFwtcGluZ1wtZm9yXC1waW5nXC1wb25nOwor5ZKaIDwgdXNlZFwtYXNcLWRlc2NyaXB0aW9uXC1vZlwtc291bmQ7CivnkIUgPCBhXC12YXJpZXR5XC1vZlwtd2hpdGVcLWNhcm5lbGlhbjsKK+WtsCA8IHdob1w/XC13aGljaFw/XC13aGF0XD9cLXdoaWNoXC1vbmVcPzsKK+aIiiA8IGZpZnRoXC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5riyIDwgYWRkXC1yZXBlYXRlZFwtd2FzaGVzXC1vZlwtY29sb3I7CivlkqsgPCBmb290XC1tZWFzdXJlXC1vZlwtemhvdVwtZHluYXN0eTsKK+mltyA8IHJhdGlvbnNcLWFuZFwtcGF5XC1mb3JcLXNvbGRpZXJzOwor5rG2IDwgYVwtcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civlj4EgPCBiYW5rXC1mb3JtXC1vZlwtbnVtZXJhbFwtJyd0aHJlZScnOwor5aOsIDwgbmludGhcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7Civmn6kgPCBjb2ZmaW5cLXdoaWNoXC1jb250YWluc1wtY29ycHNlOwor5qGgIDwgdGhlXC1mb3JraW5nXC1icmFuY2hcLW9mXC1hXC10cmVlOwor55SPIDwgYVwtc3F1YXRcLWphclwtZm9yXC1ob2xkaW5nXC13aW5lOwor56yeIDwgYmFtYm9vXC1yb2RcLXVzZWRcLWZvclwtYmVhdGluZ3M7CivpmJcgPCBhXC1wbGFjZVwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+mTiSA8IGRldmljZVwtZm9yXC1jYXJyeWluZ1wtYVwtdHJpcG9kOwor6KelIDwgYVwtY3VwXC1tYWRlXC1vZlwtaG9yblwtb2JzdGluYXRlOwor6KOjIDwgZHJhd1wtb25lJydzXC1oYW5kc1wtaW50b1wtc2xlZXZlOwor5bSDIDwgbW91bnRhaW5cLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+e9mCA8IHNjcmVlblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5rCHIDwgdGhpY2tcLXJvdWdoXC1zZXJnZVwtZnJvbVwtdGliZXQ7Civln7QgPCBzb2lsXC13aXRoXC1sYXJnZVwtY2xheVwtY29udGVudDsKK+aYtCA8IG9uZVwtb2ZcLXRoZVwtMjhcLWNvbnN0ZWxsYXRpb25zOwor6I+5IDwgc2FsdGVkXC1vclwtcGlja2xlZFwtdmVnZXRhYmxlczsKK+WQhOWkp+i7jeWNgCA8IFwidGhlXC1ncmVhdGVyXC1taWxpdGFyeVwtYXJlYXNcIjsKK+awtOW5syA8IGxldmVsXC1cKG9mXC1hY2hpZXZlbWVudFwsXC1ldGNcLlwpOwor5aSr5qyKIDwgYXV0aG9yaXR5XC1vdmVyXC10aGVcLWhvdXNlaG9sZDsKK+WNsOWwvCA8IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtaW5kb25lc2lhOwor6K6K5YO5IDwgYXBwcmFpc2VcLWF0XC10aGVcLWN1cnJlbnRcLXJhdGU7CivlubTlpJzpo68gPCBuZXdcLXllYXInJ3NcLWV2ZVwtZmFtaWx5XC1kaW5uZXI7CivlprnlpKsgPCBicm90aGVyXC1pblwtbGF3XC1cKHdpZmUnJ3NcLXNpZGVcKTsKK+mAsuiAjCA8IGFuZFwtdGhlblwtXCh3aGF0XC1mb2xsb3dzXC1uZXh0XCk7CivmnY7nmbvovJ0gPCBsZWVcLXRlbmdcLWh1aVwtXCh0YWl3YW5cLWxlYWRlclwpOwor6Zmj57eaIDwgYVwtZnJvbnRcLVwoaWVcLFwtbWlsaXRhbnRcLWdyb3VwXCk7CivlkbznsbLnvo7lnIsgPCB0b1wtY2FsbFwtb25cLXRoZVwtdW5pdGVkXC1zdGF0ZXM7CivlgrPntbHkuK3lnIvphqvol6UgPCBjaGluZXNlXC10cmFkaXRpb25hbFwtbWVkaWNpbmU7CivmrbLmnIggPCB0aGVcLXllYXJzXC1vZlwtYVwtcGVyc29uJydzXC1saWZlOwor6LGQ6KGj6Laz6aOfIDwgaGF2ZVwtYW1wbGVcLWZvb2RcLWFuZFwtY2xvdGhpbmc7CivkuI3nn6Xlpb3mrbkgPCBub3RcLWtub3dcLXdoYXQnJ3NcLWdvb2RcLWZvclwtb25lOwor5q245bGsIDwgYmVcLXVuZGVyXC10aGVcLWp1cmlzZGljdGlvblwtb2Y7CivlnKjph44gPCBiZVwtb3V0XC1vZlwtXChwb2xpdGljYWxcKVwtb2ZmaWNlOwor5bug5oi/IDwgYVwtYnVpbGRpbmdcLXVzZWRcLWFzXC1hXC1mYWN0b3J5Owor5Yik5rG6IDwganVkZ21lbnRcLVwoYnlcLWFcLWNvdXJ0XC1vZlwtbGF3XCk7Civlm7Dpm6MgPCBcKGZpbmFuY2lhbFwsXC1ldGNcLlwpXC1kaWZmaWN1bHR5Owor6bWtIDwgYVwtc21hbGxcLWJpcmRcLXdpdGhcLWJsYWNrXC1uZWNrOwor5aSn6Ieq54S2IDwgbmF0dXJlXC1cKGFzXC1pblwtbW90aGVyXC1uYXR1cmVcKTsKK+e2sueuoeaOpeWPoyA8IG5ldHdvcmtcLW1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+makiA8IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLW1vdW50YWluOwor5o6b6JmfIDwgdG9cLXJlZ2lzdGVyXC1cKGFcLWxldHRlclwsXC1ldGNcLlwpOwor6KOc6IuXIDwgZmlsbFwtdGhlXC1nYXBzXC13aXRoXC1zZWVkbGluZ3M7CivmoLnmk5rkuIrooaggPCBhY2NvcmRpbmdcLXRvXC10aGVcLWFib3ZlXC10YWJsZTsKK+atpuWKmyA8IFwobWFrZVwtdXNlXC1vZlwpXC1taWxpdGFyeVwtZm9yY2U7CivmlL7lgYcgPCB0b1wtaGF2ZVwtYVwtaG9saWR5XC1vclwtdmFjYXRpb247CivphoEgPCBhXC1raW5kXC1vZlwtZ3JlZW5cLWNvbG9yZWRcLXdpbmU7CivoiInph40gPCBcKHRoZVwtc3BvcnRcLW9mXClcLXdlaWdodGxpZnRpbmc7Civpgr8gPCBhXC1zdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+i9liA8IGZyYW1ld29ya1wtb2ZcLWxhdHRpY2VcLW9uXC1jYXJ0Owor5Zq06KmeIDwgXChjcml0aWNpemVcLFwtZXRjXC5cKVwtZm9yY2VmdWxseTsKK+intSA8IGFcLWN1cFwtbWFkZVwtb2ZcLWNvcm5cLW9ic3RpbmF0ZTsKK+iPr+ebm+mgk+aZguWgsSA8IHdhc2hpbmd0b25cLXRpbWVzXC1cKG5ld3NwYXBlclwpOwor5aKD5YWnIDwgd2l0aGluXC1cKGFcLWNvdW50cnknJ3NcKVwtYm9yZGVyczsKK+iPr+S6uiA8IGV0aG5pY1wtY2hpbmVzZVwtcGVyc29uXHxwZW9wbGU7CivmqYvmnKwgPCBcKGphcGFuZXNlXC1zdXJuYW1lXClcLWhhc2hpbW90bzsKK+WcsOeariA8IGxvdFwsXC1zZWN0aW9uXC1vZlwtbGFuZFwsXC1ncm91bmQ7Civnq4vmlrnnsbMgPCBjdWJpY1wtbWV0ZXJcLVwodW5pdFwtb2ZcLXZvbHVtZVwpOwor6L2J5qmfIDwgXCh0YWtlXC1hXClcLXR1cm5cLWZvclwtdGhlXC1iZXR0ZXI7Civlm7rlrpromZvmk6zpgKPmjqUgPCBwZXJtYW5lbnRcLXZpcnR1YWxcLWNvbm5lY3Rpb247CivluLjlp5QgPCBtZW1iZXJcLW9mXC1zdGFuZGluZ1wtY29tbWl0dGVlOwor5ZCD5LiN5raIIDwgYmVcLXVuYWJsZVwtdG9cLXN0YW5kXC1cKGV4ZXJ0aW9uOwor5oqV56Wo56uZIDwgcG9sbGluZ1wtc3RhdGlvblwtXChmb3JcLWFcLXZvdGVcKTsKK+iAhyA8IHdyaW5rbGVkXC1mYWNlXC1vZlwtdGhlXC1lbGRlcmx5Owor5760IDwgcmFua1wtb2RvdXJcLW9mXC1zaGVlcFwtb3JcLWdvYXRzOwor5b6X56Wo546HIDwgcGVyY2VudGFnZVwtb2ZcLXZvdGVzXC1vYnRhaW5lZDsKK+e1gyA8IHN0cmluZ1wtb25cLW11c2ljYWxcLWluc3RydW1lbnQ7CivlnIvpmLLliKnnm4ogPCBcKG5hdGlvbmFsXClcLWRlZmVuY2VcLWludGVyZXN0czsKK+mWi+aUvuezu+e1seS6kumAoyA8IG9wZW5cLXN5c3RlbXNcLWludGVyY29ubmVjdGlvbjsKK+etuyA8IHBsYWNlXC1uYW1lXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor56uaIDwgc3RhbmRcLWFuZFwtd2FpdFwtZm9yXC1sb25nXC10aW1lOwor6LW36aObIDwgdG9cLXRha2VcLW9mZlwtXChpblwtYW5cLWFpcnBsYW5lXCk7CivplovluZUgPCB0b1wtb3BlblwtXChhXC1jb25mZXJlbmNlXCxcLWVcLmdcLlwpOwor5omT6YedIDwgdG9cLWdpdmVcLW9yXC1oYXZlXC1hblwtaW5qZWN0aW9uOwor552ZIDwgdG9cLXJvbGxcLXRoZVwtZXllYmFsbHNcLXRvXC1sb29rOwor55GCIDwgXChzdG9uZVwtd2hpY2hcLXJlc2VtYmxlc1wtamFkZVwpOwor5pys5pyr5YCS572uIDwgdGFrZVwtdGhlXC1icmFuY2hcLWZvclwtdGhlXC1yb290Owor54e6IDwgdGhlXC1kcnlcLWF0XC10aGVcLWZpcmVcLXRvXC1yb2FzdDsKK+eAlCA8IHJpdmVyXC1uYW1lXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5oqx6aCt55eb5ZOtIDwgY3J5XC1vblwtZWFjaFwtb3RoZXInJ3NcLXNob3VsZGVyOwor5rGnIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmdkb25nOwor55Kn6KydIDwgZGVjbGluZVwtXChhXC1naWZ0XClcLXdpdGhcLXRoYW5rczsKK+aptSA8IHdvb2RcLXBsYWNlZFwtdW5kZXJcLXJvb2ZcLXRpbGVzOwor5bCN6I+vIDwgXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtY2hpbmE7CivkuI3kuIDogIzotrMgPCBieVwtbm9cLW1lYW5zXC1hblwtaXNvbGF0ZWRcLWNhc2U7Civmm4ggPCB0d2lsaWdodFwtanVzdFwtYmVmb3JlXC1zdW5yaXNlOwor5pefIDwgYW5cLW1pbGl0YXJ5XC1mbGFnXC1vYVwtc3RhbmRhcmQ7CivlhIDlmaggPCBcKHNjaWVudGlmaWNcLFwtZXRjXClcLWluc3RydW1lbnQ7Civljp/lrZDnp5HlrbjlrrbpgJrloLEgPCBqb3VybmFsXC1vZlwtYXRvbWljXC1zY2llbnRpc3RzOwor56m26L6mIDwgdG9cLWludmVzdGlnYXRlXC1hbmRcLWRlYWxcLXdpdGg7CivlkIPkuI3kvY8gPCBiZVwtdW5hYmxlXC10b1wtYmVhclwtb3JcLXN1cHBvcnQ7CivmiaggPCBwaWNrXC11cFwtd2l0aFwtZm9ya1wtb3JcLXBpbmNlcnM7CivlubAgPCBjdXJ0YWluXC1hdFwtZnJvbnRcLW9mXC1jYXJyaWFnZTsKK+WogCA8IG5hbWVcLW9mXC1hXC1jb25jdWJpbmVcLW9mXC1kaVwta3U7Civnmb3ntJnpu5HlrZcgPCBcKHdyaXR0ZW5cKVwtaW5cLWJsYWNrXC1hbmRcLXdoaXRlOwor5Z+EIDwgd2hpcmxpbmdcLW9mXC1kdXN0XC1pblwtdGhlXC13aW5kOwor5a6a572qIDwgY29udmljdFwtXChzb21lb25lXC1vZlwtYVwtY3JpbWVcKTsKK+acrOmhjCA8IHRoZVwtc3ViamVjdFwtdW5kZXJcLWRpc2N1c3Npb247Civog4znsI0gPCBhXC1iYXNrZXRcLWNhcnJpZWRcLW9uXC10aGVcLWJhY2s7CivljJfkuqzol53ooZPlrbjpmaIgPCBiZWlqaW5nXC1hY2FkZW15XC1vZlwtZmluZVwtYXJ0czsKK+S4jeeijueOu+eSgyA8IHNoYXR0ZXJwcm9vZlwtb3JcLXNhZmV0eVwtZ2xhc3M7CivmnInpl5wgPCB0b1wtaGF2ZVwtc29tZXRoaW5nXC10b1wtZG9cLXdpdGg7CivkvobmupAgPCBzb3VyY2VcLVwob2ZcLWluZm9ybWF0aW9uXCxcLWV0Y1wpOwor5LWgIDwgcnVzaGVzXC11c2VkXC1mb3JtXC1tYWtpbmdcLW1hdHM7Civks40gPCBhXC1raW5kXC1vZlwtcGhlYXNhbnRcLWxpa2VcLWJpcmQ7CivnjbLph4sgPCBvYnRhaW5cLXJlbGVhc2VcLVwoZnJvbVwtcHJpc29uXCk7CivksbEgPCBhXC1raW5kXC1vZlwtc2xpcHBlcnlcLWxvbmdcLWZpc2g7CivkrocgPCBibGFja1wtaG9yc2VcLXdpdGhcLXdoaXRlXC10aGlnaDsKK+WwjeaXpSA8IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWphcGFuOwor5KygIDwgdGhlXC1mYWxsaW5nXC1vZlwtc25vd1wtYW5kXC1yYWluOwor5KqtIDwgYVwta2luZFwtb2ZcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkqokgPCBtZXRhbFwtZGVjb3JhdGlvblwtb25cLWFcLWhhbHRlcjsKK+SpoSA8IGFcLWtpbmRcLW9mXC1ib290c1wtaW5cLW9sZFwtdGltZXM7CivojqvoobfkuIDmmK8gPCBjYW5ub3RcLWRlY2lkZVwtd2hpY2hcLWlzXC1yaWdodDsKK+SmnCA8IG5hbWVcLW9mXC1hXC1zdGF0ZVwtaW5cLW9sZFwtdGltZXM7CivkpbogPCBuYW1lXC1vZlwtYVwtZG91YmxlXC1lZGdlZFwtc3dvcmQ7CivkpZUgPCB0aGVcLWJsYWRlXC1vclwtZWRnZVwtb2ZcLWFcLXNwYWRlOwor5KSJIDwgZW1wdGllZFwtdGhlXC1kcmlua1wtY29tcGxldGVseTsKK+SjoSA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLW9sZFwtdGltZXM7CivkoZEgPCB0aGVcLXJpbVwtb3JcLWZlbGxvZVwtb2ZcLWFcLXdoZWVsOwor5KC0IDwgd2l0aFwtYVwtc3ltbWV0cmljXC13ZWxsXC1mb3JtZWQ7CivknbUgPCB0b1wtdGhhbmtcLXdpdGhcLW1vbmV5XC1vclwtZ2lmdHM7CivkmZcgPCBhXC1zd2FkZGxpbmdcLWNsb3RoXC1mb3JcLWluZmFudDsKK+SYuyA8IGN1cnRhaW5cLW9uXC1hXC1jYXJyaWFnZVwtb3JcLWNhcjsKK+SYuiA8IGFcLXNlYW1cLXdoaWNoXC1oYXNcLWNvbWVcLXVuc2V3bjsKK+SYtSA8IGhpc3NpbmdcLXNvdW5kXC1vZlwtdGhlXC1jbG90aGVzOwor5JSbIDwgZmlicm91c1wtcGxhbnRcLW9mXC13aGljaFwtY2xvdGg7CivkkbkgPCBhXC1udW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1zaGlwczsKK+SNoCA8IHR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IyLIDwgYVwtaGVyY2hpZWZcLWh1bmdcLWF0XC10aGVcLXdhaXN0Owor5IupIDwgcHJldHR5XC1hbmRcLWZpbmVcLXNpbGtcLWZhYnJpY3M7Civki48gPCB0aGlja1wtYW5kXC1iaWdcLXJvcGVzXC1vclwtY29yZHM7Civki4sgPCBhXC1raW5kXC1vZlwtc3ByaW5nXC1maXNoaW5nXC1uZXQ7CivlhavlnIvoga/ou40gPCB0aGVcLWVpZ2h0XC1wb3dlclwtYWxsaWVkXC1mb3JjZTsKK+SGtiA8IG5vaXNlXC1vZlwtYVwtbW91c2VcLWluXC10aGVcLWNhdmU7CivkhbMgPCBzdGFsa1wtb2ZcLXRoZVwtcGFuaWNsZWRcLW1pbGxldDsKK+SFrSA8IGFcLXZhcmlldHlcLW9mXC1wYW5pY2xlZFwtbWlsbGV0Owor5IWMIDwgc3RhbGtcLW9mXC13aGVhdFwtb3JcLXJpY2VcLXBsYW50Owor5IOLIDwgYVwtZmluZVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgrUgPCBzb3VuZFwtb2ZcLWJ1bXBpbmdcLW9yXC1zdHJpa2luZzsKK+SCqyA8IG5vaXNlXC1vZlwtc3RvbmVzXC1yb2xsaW5nXC1kb3duOwor5ICzIDwgbm90XC10b1wtbG9va1wtc3RyYWlnaHRcLWZvcndhcmQ7CivjvrQgPCB0aGVcLWVyeXRoZW1hXC1vZlwtYWNuZVwtcm9zYWNlYTsKK+WkmuW5tOS7peS+hiA8IGZvclwtbWFueVwteWVhcnNcLVwoaW5cLXRoZVwtcGFzdFwpOwor47mlIDwgYVwteWVsbG93XC1kb2dcLXdpdGhcLWJsYWNrXC1oZWFkOwor47mBIDwgZ2VuZXJhbGx5XC1jYWxsZWRcLXRoZVwtYW5pbWFsczsKK+O1tSA8IHN3aWZ0XC1jdXJyZW50c1wtb2ZcLXRoZVwtc3RyZWFtOwor47WOIDwgYVwtbW91bnRhaW5cLXN0cmVhbVwtb3JcLXRvcnJlbnQ7CivjtJogPCB0aGVcLXNtYWxsXC1kaXRjaFwtaW5cLXRoZVwtZmllbGQ7Civnn6XorZjnlKLmrIogPCBpbnRlbGxlY3R1YWxcLXByb3BlcnR5XC1yaWdodHM7CivmhovmsKMgPCBmZWVsXC1zdWZmb2NhdGVkXC1vclwtb3BwcmVzc2VkOwor47CGIDwgYW5cLWluc3RydW1lbnRcLXRvXC1ibG93XC1hXC1maXJlOwor47CBIDwgYVwtdHJlZVwtd2l0aFwtc2xhbnRlZFwtYnJhbmNoZXM7Civjr7MgPCBhXC1raW5kXC1vZlwtdG9vbFwtdG9cLWFkanVzdFwtYm93Owor46WcIDwgdW5zdWNjZXNzZnVsXC1pblwtb25lJydzXC1jYXJlZXI7CivjobEgPCB0b1wtY2F1dGVyaXplXC1ieVwtYnVybmluZ1wtbW94YTsKK+OgsSA8IHRvXC1zZXRcLXdpdGhcLXRoZVwtbGVnc1wtY2xvc3NlZDsKK+OcjCA8IGFcLWRpZmZlcmVudFwtbmFtZVwtZm9yXC1icmVhc3RzOwor45m+IDwgaGlsbHNcLXdpdGhcLWxvdHNcLW9mXC1iaWdcLXJvY2tzOwor45mbIDwgYVwtcGVyc29uJydzXC1uYW1lXC1pblwtb2xkXC10aW1lczsKK+OXviA8IHRvXC1naXZlXC12ZW50XC10b1wtdGhlXC1mZWVsaW5nczsKK+OXhiA8IHNvdW5kXC1vZlwtdGhlXC1yaW5nZWRcLXBoZWFzYW50Owor45OzIDwgdXNlXC1rbmlmZVwtdG9cLXNwbGl0XC1zb21ldGhpbmc7CivjkZ8gPCBpbnNpbmNlcmVcLWFuZFwtY3VubmluZ1wtcGVyc29uOwor6Ieq5rK75Y2AIDwgYXV0b25vbW91c1wtcmVnaW9uXC1cKGluXC1jaGluYVwpOwor5ZCM6IOeIDwgZmVsbG93XC1jaXRpemVuXC1vclwtY291bnRyeW1hbjsKK+WMvumhjSA8IGFcLWhvcml6b250YWxcLWluc2NyaWJlZFwtYm9hcmQ7Civlu6Pmkq3lkozmnKrnn6XmnI3li5nlmaggPCBicm9hZGNhc3RcLWFuZFwtdW5rbm93blwtc2VydmVyOwor56K66Ki6IDwgdG9cLW1ha2VcLWFcLWRlZmluaXRlXC1kaWFnbm9zaXM7CivlvLXntJTlpoIgPCBcKGFtZXJpY2FuXC1hdXRob3JcKVwtaXJpc1wtY2hhbmc7CivlroPlgJEgPCB0aGV5XC1cKGZvclwtaW5hbmltYXRlXC1vYmplY3RzXCk7Civnj77loLQgPCBzY2VuZVwtXChvZlwtZXZlbnRcLW9yXC1pbmNpZGVudFwpOwor5oSb5oOFIDwgbG92ZVwtXChiZXR3ZWVuXC1tYW5cLWFuZFwtd29tYW5cKTsKK+iuiuevgCA8IG1ha2VcLWFcLXBvbGl0aWNhbFwtcmVjYW50YXRpb247CivoqpPmrbvkuI3pmY0gPCB0b1wtdm93XC10b1wtZmlnaHRcLXRvXC10aGVcLWRlYXRoOwor5rKS5pyJ5b+F6KaBIDwgdGhlcmVcLWlzXC1ub1wtbmVlZFwtdG9cLVwoZG9cLXN0aFwpOwor5raJ5auMIDwgdG9cLWJlXC1hXC1zdXNwZWN0XC1cKGluXC1hXC1jcmltZVwpOwor54+t5YuZ5pyDIDwgYVwtcm91dGluZVwtbWVldGluZ1wtb2ZcLWFcLXNxdWFkOwor5paw5b636KOhIDwgbmV3XC1kZWxoaVwtXChjYXBpdGFsXC1vZlwtaW5kaWFcKTsKK+WPjeWwjem7qCA8IG9wcG9zaXRpb25cLVwocG9saXRpY2FsXClcLXBhcnR5Owor5aSx6LazIDwgdG9cLXRha2VcLWFcLXdyb25nXC1zdGVwXC1pblwtbGlmZTsKK+S4reaWh+W7o+aSrSA8IGNoaW5lc2VcLVwobGFuZ3VhZ2VcKVwtYnJvYWRjYXN0Owor56e75q6W5omL6KGTIDwgXChvcmdhblwpXC10cmFuc3BsYW50XC1vcGVyYXRpb247CivniqfnibIgPCBzYWNyaWZpY2VcLVwob25lJydzXC1saWZlXCxcLWV0Y1wuXCk7Civkup7kvK8gPCBhYmVcLVwoc2hvcnRcLWZvcm1cLWZvclwtYWJyYWhhbVwpOwor54yc5b+MIDwgYmVcLXN1c3BpY2lvdXNcLWFuZFwtamVhbG91c1wtb2Y7Civpu6jlhacgPCB3aXRoaW5cLXRoZVwtXChjb21tdW5pc3RcKVwtcGFydHk7CivoqqrmmI7mm7ggPCBzeW5vcHNpc1wtXChvZlwtYVwtcGxheVwtb3JcLWZpbG1cKTsKK+WLleiVqSA8IFwoc29jaWFsXC1vclwtcG9saXRpY2FsXClcLXVucmVzdDsKK+eOi+S4uSA8IHdhbmdcLWRhblwtXChjaGluZXNlXC1kaXNzaWRlbnRcKTsKK+WPm+S6gue9qiA8IHRoZVwtY3JpbWVcLW9mXC1hcm1lZFwtcmViZWxsaW9uOwor5rWq5a2Q5Zue6aCtIDwgdGhlXC1yZXR1cm5cLW9mXC1hXC1wcm9kaWdhbFwtc29uOwor5beu5b6X5aSaIDwgZmFsbFwtc2hvcnRcLWJ5XC1hXC1sYXJnZVwtYW1vdW50Owor5LiN5oCl5LmL5YuZIDwgYVwtbWF0dGVyXC1vZlwtbm9cLWdyZWF0XC11cmdlbmN5Owor6Zu756OB5bmy5pO+IDwgZWxlY3Ryb21hZ25ldGljXC1pbnRlcmZlcmVuY2U7Civlj7DngaPoqbEgPCB0YWl3YW5lc2VcLWNoaW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+WVpiA8IGZpbmFsXC1wYXJ0aWNsZVwtb2ZcLWFzc2VydGlvbjsKK+e7vCA8IGFycmFuZ2VcLXRocmVhZHNcLWZvclwtd2VhdmluZzsKK+aLrSA8IHdpcGVcLWF3YXlcLXN0YWluc1wtd2l0aFwtY2xvdGg7Civlj64gPCBleGhvcnRcLW9yXC1lbmpvaW5cLXJlcGVhdGVkbHk7CivmiJ8gPCBoYWxiZXJkXC13aXRoXC1jcmVzY2VudFwtYmxhZGU7Civlh5sgPCB0b1wtc2hpdmVyXC13aXRoXC1jb2xkXC1vclwtZmVhcjsKK+agiyA8IG1haW5cLWJlYW1zXC1zdXBwb3J0aW5nXC1ob3VzZTsKK+mrpiA8IGZsb3dpbmdcLWhhaXJcLW9mXC15b3VuZ1wtY2hpbGQ7CivnrZ0gPCBzdHJpbmdlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+S4mSA8IHRoaXJkXC1vZlwtdGhlXC1oZWF2ZW5seVwtc3RlbXM7CivmsoIgPCByaXZlclwtaW5cLXNvdXRoZWFzdFwtc2hhbmRvbmc7CivnrIggPCBiYW1ib29cLWJveFwtdXNlZFwtY2FycnlcLWJvb2tzOwor55OiIDwgbGFkbGVcLW1hZGVcLWZyb21cLWRyaWVkXC1nb3VyZDsKK+ewpyA8IHJlZWRcLW9mXC13b29kd2luZFwtaW5zdHJ1bWVudDsKK+ibnyA8IHNjYWx5XC1kcmFnb25cLXdpdGhcLWZvdXJcLWxlZ3M7CivmlZUgPCBhblwtaW1wZXJpYWxcLW9yZGVyXC1vclwtZGVjcmVlOwor6KOfIDwgYVwtY2Fzc29ja1wtb3JcLXJvYmVcLW9mXC1hXC1tb25rOwor56K0IDwgY2hpcHBlZFwtZWRnZVwtb2ZcLWFcLWNvbnRhaW5lcjsKK+eYtCA8IG1hbGFyaWFcLXBlc3RpbGVudGlhbFwtdmFwb3JzOwor57q2IDwgZ3JlZW5cLXNpbGtcLXRocmVhZFwtb3JcLXRhc3NlbDsKK+e9oSA8IHRoZVwtbmFtZVwtb2ZcLWFcLWNlcnRhaW5cLXN0YXJzOwor55m4IDwgbGFzdFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+aphyA8IGFcLXNsZWRnZVwtZm9yXC10cmFuc3BvcnRhdGlvbjsKK+eaiyA8IHRoZVwtaGlnaFwtbGFuZFwtYWxvbmdcLWFcLXJpdmVyOwor5r2NIDwgY291bnR5XC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5rSZIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmRvbmc7CivnjaAgPCB0b1wtaHVudFwtYXRcLW5pZ2h0XC1ieVwtdG9yY2hlczsKK+m6kiA8IGxlZ2VuZGFyeVwtYXVzcGljaW91c1wtYW5pbWFsOwor54+pIDwgdGhlXC10b3BcLWdlbVwtb2ZcLXRoZVwtcGVuZGFudHM7CivosKUgPCB0b1wtY29uZmVyXC1wb3N0aHVtb3VzXC10aXRsZXM7Civnp6sgPCBnbHV0aW5vdXNcLXZhcmlldHlcLW9mXC1taWxsZXQ7Civnq70gPCBhbmNpZW50XC13b29kd2luZFwtaW5zdHJ1bWVudDsKK+W0riA8IFwoZWxlbWVudFwtaW5cLW1vdW50YWluXC1uYW1lc1wpOwor5oSAIDwgdG9cLWNoYW5nZVwtb25lJydzXC1jb3VudGVuYW5jZTsKK+mEoiA8IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLWhvbmFuOwor55mNIDwgdW5oZWFsdGh5XC1tYXJrc1wtb25cLXRoZVwtc2tpbjsKK+mEniA8IGNvdW50eVwtaW5cLXpoZWppYW5nXC1wcm92aW5jZTsKK+mbkiA8IGJsYWNrXC1ob3JzZVwtd2l0aFwtd2hpdGVcLW1hbmU7Civml5IgPCBmcmluZ2VzXC1vZlwtcGVhcmxzXC1vblwtY3Jvd25zOwor55CKIDwgYVwtcGxhY2VcLWluXC1lYXN0ZXJuXC1zaGFuZG9uZzsKK+iaqCA8IGFcLWtpbmRcLW9mXC13YXRlclwtYmVldGxlXC1jYXNoOwor5q+zIDwgZmluZVwtaGFpclwtb3JcLWZ1clwtb25cLWFuaW1hbHM7CivnmKUgPCB0b1wtcmVjb3ZlclwtZnJvbVwtYW55XC1kaXNlYXNlOwor5rWIIDwgcml2ZXJcLWluXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5ZinIDwgXChwaG9uZXRpY1wpXC1hc1wtaW5cLXB5cmltaWRpbmU7CivkuI3mmJPkuYvoq5YgPCBwZXJmZWN0bHlcLXNvdW5kXC1wcm9wb3NpdGlvbjsKK+S8vOS5juW+iOWuieWFqCA8IHRvXC1hcHBlYXJcLVwodG9cLWJlXClcLXZlcnlcLXNhZmU7CivmsbrlrpogPCB0b1wtZGVjaWRlXC1cKHRvXC1kb1wtc29tZXRoaW5nXCk7Civlp4rlprkgPCBcKG9sZGVyXC1hbmRcLXlvdW5nZXJcKVwtc2lzdGVyczsKK+mAvOiCliA8IGJlYXJcLWFcLWNsb3NlXC1yZXNlbWJsYW5jZVwtdG87CivokYnliKnmrL0gPCBcKHJ1c3NpYW5cLXByZXNpZGVudFwpXC15ZWx0c2luOwor5b6p5a+pIDwgcmVleGFtaW5lXC1cKGFcLWp1ZGljaWFsXC1jYXNlXCk7CivlhaXploAgPCBpbnRyb2R1Y3Rpb25cLVwodG9cLWFcLXN1YmplY3RcKTsKK+eZvemcsiA8IHdoaXRlXC1kZXdcLVwoMTV0aFwtc29sYXJcLXRlcm1cKTsKK+WQhOeoruWQhOaooyA8IHZhcmlvdXNcLXNvcnRzXC1hbmRcLXZhcmlldGllczsKK+ijnOmrlCA8IGNvbXBsZW1lbnRcLVwoaW5cLWJsb29kXC1zZXJ1bVwpOwor6KmV5q+UIDwgdG9cLWV2YWx1YXRlXC1cKGJ5XC1jb21wYXJpc29uXCk7CivkuI3pgZXovrLmmYIgPCBub3RcLW1pc3NcLXRoZVwtZmFybWluZ1wtc2Vhc29uOwor6buD5rWm5rGfIDwgaHVhbmdwdVwtcml2ZXJcLVwoaW5cLXNoYW5naGFpXCk7CivovYnouqsgPCBcKG9mXC1hXC1wZXJzb25cKVwtdG9cLXR1cm5cLXJvdW5kOwor54iq5ZOHIDwgamF2YVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+aViOW/oCA8IHZvd1wtbG95YWx0eVwtYW5kXC1kZXZvdGlvblwtdG87CivkuoLkvZzmsbrlrpogPCB0b1wtbWFrZVwtYXJiaXRyYXJ5XC1kZWNpc2lvbnM7CivmjqHovqYgPCBidXlcLW9uXC1hXC1jb25zaWRlcmFibGVcLXNjYWxlOwor5byf5aa5IDwgc2lzdGVyXC1pblwtbGF3XC1cKHdpZmUnJ3NcLXNpZGVcKTsKK+mZt+aWvCA8IGNhdWdodFwtaW5cLVwoYVwtYmFkXC1zaXR1YXRpb25cKTsKK+m1viA8IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtY3JhbmU7CivlpJbljK8gPCBmb3JlaWduXC1cKGN1cnJlbmN5XClcLWV4Y2hhbmdlOwor5aSn5Zmo5pma5oiQIDwgZ3JhbmRcLXRhbGVudHNcLW1hdHVyZVwtc2xvd2x5Owor5pGY55SxIDwgaGlnaFwtcG9pbnRzXC1cKG9mXC1hXC1kb2N1bWVudFwpOwor6a6oIDwgZXBpbmVwaGVsdXNcLXNlcHRlbWZhc2NpYXR1czsKK+mjpiA8IHdlbGxcLWJvaWxlZFwtY29uZ2VlXC1vclwtZ3J1ZWw7Civpm4ogPCB0aGVcLWNyb3dcLW9mXC1hXC1tYWxlXC1waGVhc2FudDsKK+mauiA8IGFcLWJpcmRcLWZseWluZ1wtaGlnaFwtYW1iaXRpb247Civog4zljIXoorEgPCBoYXZlXC1hXC13ZWlnaHRcLW9uXC1vbmUnJ3NcLW1pbmQ7CivmjInmraXlsLHnj60gPCBmb2xsb3dcLXRoZVwtcHJlc2NyaWJlZFwtb3JkZXI7CivlpJbkuqTpg6jplbcgPCBtaW5pc3Rlclwtb2ZcLWZvcmVpZ25cLWFmZmFpcnM7CivphrEgPCB0b1wtYnJld1wtZm9yXC10aGVcLXNlY29uZFwtdGltZTsKK+mFliA8IHdpbmVcLXdpdGhcLWJpcmRcLXBvaXNvblwtYWRkZWQ7Civnmb7lsLrmnYbpoK3mm7Tnm6HkuIDmraUgPCBtYWtlXC1zdGlsbFwtZnVydGhlclwtcHJvZ3Jlc3M7CivphL8gPCBjb3VudHlcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7CivphI0gPCBhXC10b3duXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6LmaIDwgdHJlYWRcLXRocm91Z2hcLW11ZFwtYW5kXC13YXRlcjsKK+S4reWkruaDheWgseWxgCA8IGNlbnRyYWxcLWludGVsbGlnZW5jZVwtYWdlbmN5Owor5YG06Lq6IDwgdG9cLWxpZVwtZG93blwtXChvblwtb25lJydzXC1zaWRlXCk7CivloLHmiLblj6MgPCBhcHBseVwtZm9yXC1hXC1yZXNpZGVudFwtcGVybWl0Owor6KSYIDwgY2VyZW1vbmlhbFwtZ293bnNcLW9mXC1hXC1xdWVlbjsKK+ifsCA8IHNtYWxsXC1zcGlkZXJcLXdpdGhcLWxvbmdcLWxlZ3M7Civom5UgPCB0aGVcLWNvbW1vblwtaW50ZXN0aW5hbFwtd29ybXM7CivmnI3li5nmj5DkvpvllYYgPCBcKGludGVybmV0XClcLXNlcnZpY2VcLXByb3ZpZGVyOwor5pCc5o2VIDwgaHVudFwtYW5kXC1hcnJlc3RcLVwoZnVnaXRpdmVzXCk7Civmj7nmm7ggPCByZWNpdGVcLWFcLWxlc3NvblwtZnJvbVwtbWVtb3J5Owor5bm45YWNIDwgbmFycm93bHlcLWFuZFwtbHVja2lseVwtZXNjYXBlOwor5LiN55m75aSn6ZuF5LmL5aCCIDwgbm90XC1hcHBlYWxcLXRvXC1yZWZpbmVkXC10YXN0ZTsKK+iCtyA8IGFyZWFcLWJldHdlZW5cLXdhaXN0XC1hbmRcLWhpcHM7CivoiInkuJbnn5rnm64gPCBhdHRyYWN0XC13b3JsZHdpZGVcLWF0dGVudGlvbjsKK+eNqOaWt+WwiOihjCA8IGFjdFwtaW5cLWFuXC1hcmJpdHJhcnlcLWZhc2hpb247CivnsYQgPCBhXC1iYXNrZXRcLWZvclwtY2FycnlpbmdcLWVhcnRoOwor5ZyL6Zqb57SaIDwgXChhdFwtYW5cKVwtaW50ZXJuYXRpb25hbFwtbGV2ZWw7CivnrY4gPCB0aGluXC1vdXRzaWRlXC1za2luXC1vZlwtYmFtYm9vOwor556kIDwgdG9cLWJsaW5rXC1vclwtdHdpdGNoXC10aGVcLWV5ZXM7CivnrqHnkIbkv6Hmga/luqsgPCBtYW5hZ2VtZW50XC1pbmZvcm1hdGlvblwtYmFzZTsKK+iPr+ebm+mgk+mDteWgsSA8IHdhc2hpbmd0b25cLXBvc3RcLVwobmV3c3BhcGVyXCk7CivlnIvmqJkgPCBndW9iaWFvXC1cKGVuY29kaW5nXC1zdGFuZGFyZFwpOwor5L6/6KGAIDwgaGF2aW5nXC1ibG9vZFwtaW5cLW9uZScnc1wtc3Rvb2w7Civmt6AgPCBsdXh1cmlhbnRcLVwob2ZcLXdhdGVyXC1wbGFudHNcKTsKK+a1sCA8IGF0dGVuZFwtXChvZmZpY2lhbFwtZnVuY3Rpb25zXCk7Civnl4XmqZ8gPCBpbnRlcnByZXRhdGlvblwtb2ZcLXRoZVwtY2F1c2U7Civms5EgPCB0aGVcLXZpdHJlb3VzXC1nbGF6ZVwtb25cLWNoaW5hOwor5q6oIDwgdG9cLW9wZW5cLWFzXC1hblwtdWxjZXJcLW9yXC1zb3JlOwor5omN6I+vIDwgbGl0ZXJhcnlcLW9yXC1hcnRpc3RpY1wtdGFsZW50Owor5oyH5rOVIDwgZmluZ2VyXC1tZXRob2RcLVwoaW5cLXBhaW50aW5nXCk7Civlr7bol48gPCBwcmVjaW91c1wtXChtaW5lcmFsXClcLWRlcG9zaXRzOwor5o+Q5YmNIDwgdG9cLXNoaWZ0XC10b1wtYW5cLWVhcmxpZXJcLWRhdGU7CivovKnlh7ogPCBjb21lXC1mb3J0aFwtaW5cLWxhcmdlXC1udW1iZXJzOwor5p6PIDwgYVwtdmFyaWV0eVwtb2ZcLWV2ZXJncmVlblwtdHJlZTsKK+adv+m0qCA8IHByZXNzZWRcLVwoZHJpZWRcKVwtc2FsdGVkXC1kdWNrOwor5ouU5rW3IDwgZWxldmF0aW9uXC1cKGFib3ZlXC1zZWFcLWxldmVsXCk7CivpoZjmhI/kuI3poZjmhI8gPCB3aGV0aGVyXC1vbmVcLXdhbnRzXC10b1wtb3JcLW5vdDsKK+WQg+S4jeS+hiA8IG5vdFwtYmVcLWZvbmRcLW9mXC1jZXJ0YWluXC1mb29kOwor5pCHIDwgdG9cLXByZXNzXC1kb3duXC13aXRoXC10aGVcLWhhbmQ7Civmk5rloLHlsI4gPCBhY2NvcmRpbmdcLXRvXC1cKG5ld3NcKVwtcmVwb3J0czsKK+i2heaWh+S7tuWCs+i8uOWNlOWumiA8IGh5cGVydGV4dFwtdHJhbnNmZXJcLXByb3RvY29sOwor5by4IDwgYVwtYm93XC1zdHJldGNoZWRcLXRvXC10aGVcLWZ1bGw7Civlt6AgPCBzdHJlYW1zXC1ydW5uaW5nXC11bmRlcmdyb3VuZDsKK+W0mSA8IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdzdTsKK+WAq+aVpiA8IGxvbmRvblwtXChjYXBpdGFsXC1vZlwtZW5nbGFuZFwpOwor5aCzIDwgbGFuZFwtYWxsb3RtZW50XC1mZXVkYWxcLW5vYmxlOwor5YyX5Lqs6Kqe6KiA5a246ZmiIDwgYmVpamluZ1wtbGFuZ3VhZ2VzXC1pbnN0aXR1dGU7CivlmZUgPCB0b1wtc3BlYWtcLWZhbHNlbHlcLW9yXC13cm9uZ2x5Owor5qKd5qy+IDwgY2xhdXNlXC1cKG9mXC1jb250cmFjdFwtb3JcLWxhd1wpOwor55eF5L6LIDwgXFttZWRpY2FsXF1cLWNhc2VcLVxbb2ZcLWlsbG5lc3NcXTsKK+WZqOWumCA8IG9yZ2FuXC1cKHBhcnRcLW9mXC1ib2R5XC10aXNzdWVcKTsKK+S4qSA8IHRvXC1qb2luXC1vclwtY29ubmVjdFwtdGhlXC12aW5lOwor5LiSIDwgdGhlXC1wZXJpb2RcLWZyb21cLTFcLXRvXC0zXC1hXC5tXC47CivktYUgPCB0b1wtZXh0cmFjdFwtYnlcLWFwcGx5aW5nXC1oZWF0Owor5LSzIDwgZGlzdGlsbGVyJydzXC1ncmFpbnNcLW9yXC15ZWFzdDsKK+SzniA8IGJpcmRzXC1mbHlpbmdcLWFsbFwtZGlyZWN0aW9uczsKK+SziiA8IGFcLXdpbGRcLWR1Y2tcLWxpa2VcLXdhdGVyXC1iaXJkOwor5LODIDwgYVwta2luZFwtb2ZcLXBob2VuaXhcLWxpa2VcLWJpcmQ7CivkqrcgPCB0b1wtdG9pbFwtb3JcLWxhYm9yXC1zZWR1bG91c2x5Owor5KqHIDwgY3VzaGlvbmVkXC1zZWF0XC1vblwtYVwtdmVoaWNsZTsKK+SpvyA8IGFcLWJpZ1wtZHJ1bVwtdXNlZFwtaW5cLXRoZVwtYXJteTsKK+SnmCA8IGFcLWxvd1wtd2FsbFwtb25cLXRoZVwtcm9hZFwtc2lkZTsKK+SmsiA8IGVhdmVzXC1vZlwtYVwtYW5jZXN0cmFsXC10ZW1wbGU7CivkpLsgPCBoZWF2eVwtaXJvblwtcGFydFwtb2ZcLWFcLXBsb3VnaDsKK+SjsiA8IHRvXC1oZWF0XC10aGVcLXdpbmVcLW92ZXJcLW5pZ2h0Owor5KKvIDwgdG9cLWNob29zZVwtb3JcLXNlbGVjdFwtY2FyZWZ1bDsKK+SgiyA8IGJlbGxcLXNoYXBlZFwtd2l0aFwtbGFyZ2VcLWJhc2U7Civkn64gPCB0b1wtY3Jhd2xcLW9uXC1oYW5kc1wtYW5kXC1rbmVlczsKK+ScuCA8IHNtYWxsXC1waWVjZXNcLW9mXC1iZWFuXC1zdGFsa3M7CivknIcgPCB0b1wtc3BlYWtcLW5vdFwtaW5cLWFcLWNsZWFyXC13YXk7Civnj63ntJogPCBjbGFzc2VzXC1vclwtZ3JhZGVzXC1pblwtc2Nob29sOwor5JqjIDwgY3Jvb2tlZFwtaG9ybnNcLW9mXC10aGVcLWFuaW1hbDsKK+SanCA8IGNhdHRsZVwtd2l0aFwtY3Jvc3N3aXNlXC1ob3JuczsKK+SZoyA8IHJhZ2dlZFwtZ2FybWVudHNcLW9yXC1jbG90aGluZzsKK+SZlSA8IGNsb3RoZXNcLXRoYXRcLWhhdmVcLW5vXC1saW5pbmc7CivkmZQgPCBjbG90aGVzXC1tYWRlXC1vZlwtcG9vclwtZmFicmljOwor5JmTIDwgdGhlXC1sb3dlclwtcGFydFwtb2ZcLWFcLWdhcm1lbnQ7CivkmKUgPCB0aGVcLWZyb250XC1vZlwtYVwtY2hpbmVzZVwtZ293bjsKK+SYgSA8IGFcLWJsdWVcLWdyZWVuXC1jb2xvcmVkXC1jaWNhZGE7Civkl7UgPCBhXC1kaXNlYXNlXC1hdHRhY2tlZFwtc2lsa3dvcm07Civkla4gPCBmbG93ZXJcLW9mXC10aGVcLWNocnlzYW50aGVtdW07CivklKUgPCBjb21tb25cLXZhcmlldHlcLW9mXC1hcnRlbWlzaWE7CivklJ8gPCBzaGFrZVwtYW5kXC13YXZlXC1vZlwtdGhlXC1ncmFzczsKK+eXheavkuWtuCA8IHZpcm9sb2d5XC1cKHN0dWR5XC1vZlwtdmlydXNlc1wpOwor5JC8IDwgdGhpblwtbWVtYnJhbmVcLW9mXC10aGVcLXRocm9hdDsKK+SQryA8IHVnbHlcLWFwcGVhcmFuY2VcLW9mXC1hXC1wZXJzb247CivkkJEgPCB0aGluXC1jdXRcLW9mXC10aGVcLXNsaWNlZFwtbWVhdDsKK+SNuiA8IGFcLWxlZ2VuZGFyeVwtZ29hdFwtbGlrZVwtYmVhc3Q7CivkjLwgPCBhXC1raW5kXC1vZlwtZmluZVwtc2lsa1wtZmFicmljczsKK+SMhCA8IGFcLXJvcGVcLWZvclwtZHJhd2luZ1wtdXBcLXdhdGVyOwor56eB5Lq66ZGw5YyZIDwgcHJpdmF0ZVwta2V5XC1cKGluXC1lbmNyeXB0aW9uXCk7Civkip4gPCB0b1wtcm9sbFwtcm91bmRcLXdpdGhcLXRoZVwtaGFuZDsKK+SJuiA8IGRldGVyaW9yYXRlZFwtYW5kXC1iZWNvbWVcLXJlZDsKK+SJuSA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5Im4IDwgc2xpcHNcLW9mXC1iYW1ib29cLWZvclwtd3JpdGluZzsKK+SIsiA8IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWZpc2hpbmc7Civkh7ogPCBiZWFuc1wtYW5kXC1wZWFzXC1jb2xsZWN0aXZlbHk7Civkh7UgPCBvbmVcLW9mXC10aGVcLXdpbmRcLWluc3RydW1lbnRzOwor5oay5rOVIDwgY29uc3RpdHV0aW9uXC1cKG9mXC1hXC1jb3VudHJ5XCk7CivkhaogPCBkaXNlYXNlXC1vZlwtdGhlXC1wcml2YXRlXC1wYXJ0Owor5ISwIDwgZm9ydHlcLWJ1bmRsZXNcLW9mXC1yaWNlXC1wbGFudDsKK+SDhyA8IGlua1wtZm9yXC1pbXByaW50aW5nXC1vZlwtc2VhbHM7CivkgJEgPCB0b1wtZ291Z2VcLW91dFwtYW5cLWV5ZVwtb3JcLWV5ZXM7CivjvY4gPCB0aGVcLXByb2Z1bmRpdHlcLW9mXC10aGVcLWhhcmVtOwor47ygIDwgYVwtY3JvY2tcLXdpdGhcLW5hcnJvd1wtb3BlbmluZzsKK+O6rCA8IGFcLWxhcmdlXC1waWVjZVwtb2ZcLWphZGVcLXN0b25lOwor47qSIDwgYmFya2luZ1wtb2ZcLWFcLWZyaWdodGVuZWRcLWRvZzsKK+S4jeirsSA8IHdpdGhvdXRcLWNvbmNlYWxpbmdcLWFueXRoaW5nOwor47mWIDwgdG9cLWZlZWRcLWFuaW1hbHNcLXdpdGhcLWdyYWluczsKK+O4kiA8IHRvXC1hYnN1cmRcLXB1cnN1aXRcLW9yXC1kZXNpcmU7CivlnLDlnYDop6PmnpDljZTorbAgPCBhZGRyZXNzXC1yZXNvbHV0aW9uXC1wcm90b2NvbDsKK+OugCA8IHRvb2xcLXRvXC1jbGVhclwtb3V0XC10aGVcLXdhdGVyOwor462VIDwgYVwtYm9hcmRcLWZvclwtY2FycnlpbmdcLXRoaW5nczsKK+OphiA8IHRvXC1iZVwtaW5cLWZ1bGxcLXBvc3Nlc3Npb25cLW9mOwor6ICM5LiN6ZyAIDwgd2l0aG91dFwtbmVlZGluZ1wtXCh0b1wtc29cLXN0aFwpOwor46eVIDwgdG9cLWZlZWxcLW9yXC10b3VjaFwtd2l0aFwtaGFuZHM7Civjp4IgPCBhXC1jYXZlXC1hXC1ob2xkXC1pblwtdGhlXC1ncm91bmQ7CivjppAgPCBhXC1zdHJhaWdodGZvcndhcmRcLWNoYXJhY3RlcjsKK+WuieaPkiA8IHBsYWNlXC1pblwtYVwtY2VydGFpblwtcG9zaXRpb247CivjpbQgPCBkb1wtbm90XC1jYXJlXC1hYm91dFwtc29tZXRoaW5nOwor5Lqk5o+b5qmfIDwgc3dpdGNoXC1cKHRlbGVjb21tdW5pY2F0aW9uc1wpOwor76SaIDwgd2hpdGVcLWhvcnNlXC13aXRoXC1ibGFja1wtbWFuZTsKK+OhtSA8IHJvb2ZcLW9mXC10aGVcLWhvdXNlXC1jb25uZWN0ZWQ7CivjoJ8gPCBhXC1tb3VudGFpblwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Y+k6LmfIDwgcGxhY2VzXC1vZlwtaGlzdG9yaWNcLWludGVyZXN0Owor45u9IDwgdG9cLXdhbGtcLXNsb3dseVwtbGlrZVwtYVwtd29tYW47Civjm64gPCB3aWZlXC1vZlwtb25lJydzXC1lbGRlclwtYnJvdGhlcjsKK+OTiCA8IHNvdW5kXC1vZlwtZmx5aW5nXC1vclwtc3BlZWRpbmc7CivjkqsgPCBjaG9rZWRcLWFuZFwtdW5hYmxlXC10b1wtYnJlYXRoOwor45KWIDwgdGhlXC1yb290XC1zdG9ja1wtb2ZcLXRoZVwtbG90dXM7CivmsKPpq5QgPCBnYXNcLVwoaWVcLFwtZ2FzZW91c1wtc3Vic3RhbmNlXCk7CivlpKfpmbjoqbEgPCBtYWlubGFuZFwtY2hpbmVzZVwtXChsYW5ndWFnZVwpOwor5a2r5a2QIDwgZ3JhbmRzb25cLVwoc29uXC1vZlwtb25lJydzXC1zb25cKTsKK+WllOmosCA8IFwob2ZcLXdhdmVzXClcLXRvXC1zdXJnZVwtZm9yd2FyZDsKK+WNu+S5i+S4jeaBrSA8IHRvXC1yZWZ1c2VcLXdvdWxkXC1iZVwtaW1wb2xpdGU7CivkuqTmj5vlmaggPCBcKHRlbGVjb21cLW9yXC1uZXR3b3JrXClcLXN3aXRjaDsKK+mAmuioiuekviA8IGFcLW5ld3NcLXNlcnZpY2VcLVwoZWdcLFwteGluaHVhXCk7Civpg7Xpm7sgPCBwb3N0XC1hbmRcLXRlbGVjb21tdW5pY2F0aW9uczsKK+WVj+WAmSA8IGdpdmVcLXNvbWVvbmVcLW9uZScnc1wtcmVzcGVjdHM7CivnpZbniLYgPCBncmFuZGZhdGhlclwtXChmYXRoZXInJ3NcLXNpZGVcKTsKK+aEm+WlveiAhSA8IGxvdmVyXC1cKG9mXC1hcnRcLFwtc3BvcnRzXCxcLWV0Y1wpOwor5rG6562WIDwgXChtYWtlXC1hXClcLXN0cmF0ZWdpY1wtZGVjaXNpb247CivnpZbmr40gPCBncmFuZG1vdGhlclwtXChmYXRoZXInJ3NcLXNpZGVcKTsKK+Wci+mam+iyqOW5o+WfuumHkee1hOe5lCA8IGludGVybmF0aW9uYWxcLW1vbmV0YXJ5XC1mdW5kOwor6aas5aSq56aP6Z+zIDwgZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1tYXR0aGV3Owor6Yed54G4IDwgYWN1cHVuY3R1cmVcLWFuZFwtbW94aWJ1c3Rpb247Civpm7voqbHmnIPorbAgPCBcKHRlbGVwaG9uZVwpXC1jb25mZXJlbmNlXC1jYWxsOwor5LiA5pemIDwgaW5cLWNhc2VcLVwoc29tZXRoaW5nXC1oYXBwZW5zXCk7Civlo73ovrAgPCBiaXJ0aGRheVwtXChvZlwtYW5cLW9sZFwtcGVyc29uXCk7CivkuI3okL3nqqDoh7wgPCBub3RcLWZvbGxvd1wtdGhlXC1iZWF0ZW5cLXRyYWNrOwor5oyJ54Wn6KiI5YqDIDwgYWNjb3JkaW5nXC10b1wtXCh0aGVcKVwtcGxhblwtXC5cLlwuOwor5YWs5a6J6YOoIDwgbWluaXN0cnlcLW9mXC1wdWJsaWNcLXNlY3VyaXR5Owor5oqx5LiN5bmzIDwgYmVcLW91dHJhZ2VkXC1ieVwtYW5cLWluanVzdGljZTsKK+S6i+aDheimgeWBmiA8IHRoaW5nXC10aGF0XC1uZWVkc1wtdG9cLWJlXC1kb25lOwor5b6p55SmIDwgcmVjb3ZlcnlcLVwoaGVhbHRoXCxcLWVjb25vbWljXCk7CivmmYLmnJ8gPCBhXC1wZXJpb2RcLWluXC10aW1lXC1vclwtaGlzdG9yeTsKK+WQhOWcsCA8IGluXC1hbGxcLXBhcnRzXC1vZlwtXChhXC1jb3VudHJ5XCk7CivnlLflrZDmvKIgPCBtYW5cLVwoaVwuZVwuXC1tYW5seVwsXC1tYXNjdWxpbmVcKTsKK+eVpiA8IHNlY3Rpb25zXC1pblwtdmVnZXRhYmxlXC1mYXJtOwor55S6IDwgcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7Civlm4EgPCBtb3ZlXC1saXBzXC1hc1wtd2hlblwtc3BlYWtpbmc7CivkvKYgPCBub3JtYWxcLWh1bWFuXC1yZWxhdGlvbnNoaXBzOwor5ZibIDwgZmluYWxcLWV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+iQqCA8IGJ1ZGRoaXN0XC1nb2RzXC1vclwtaW1tb3J0YWxzOwor5qGQIDwgbmFtZVwtYXBwbGllZFwtdmFyaW91c1wtdHJlZXM7CivokoIgPCBwZWR1bmNsZVwtb3JcLXN0ZW1cLW9mXC1wbGFudHM7CivntLogPCBkYXJrXC1ibHVlXC1vclwtcmVkZGlzaFwtY29sb3I7Civmo7UgPCBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10cmVlczsKK+aGiyA8IHRvXC1zdXBwcmVzc1wtaW5uZXJcLWZlZWxpbmdzOwor5a2cIDwgYmVcLWFzXC1kaWxpZ2VudFwtYXNcLXBvc3NpYmxlOwor57KxIDwgYmV0dGVyXC12YXJpZXRpZXNcLW9mXC1taWxsZXQ7Civls5IgPCBtb3VudGFpblwtaW5cLWdhbnN1XC1wcm92aW5jZTsKK+amqCA8IHRvXC1wcmVzc1wtb3JcLWV4dHJhY3RcLWp1aWNlczsKK+mEsSA8IGNvdW50eVwtYW5kXC1sYWtlXC1pblwtamlhbmd4aTsKK+iPoCA8IHNwaW5hY2hcLWFuZFwtc2ltaWxhclwtZ3JlZW5zOwor5reeIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtamlhbmdzdTsKK+a3hCA8IHJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5oKxIDwgdG9cLWJlXC1kZXNpcm91c1wtb2ZcLXNwZWFraW5nOwor5ryvIDwgcml2ZXJcLWluXC1ub3J0aGVyblwtc2hhbmRvbmc7CivolZkgPCBzcGVjaWVzXC1vZlwtZnJhZ3JhbnRcLW9yY2hpZDsKK+a7gSA8IGRpc3RyaWN0XC1pblwtYW5odWlcLXByb3ZpbmNlOwor54uBIDwgYVwtdHJpYmVcLW9mXC1zY3l0aGlhblwtbm9tYWRzOwor6YWiIDwgdG9hc3RcLW9uZScnc1wtaG9zdFwtd2l0aFwtd2luZTsKK+ihvyA8IGNvbGxhclwtb3JcLWxhcGVsXC1vZlwtZ2FybWVudDsKK+W2nSA8IHBhdGhcLWxlYWRpbmdcLXVwXC1hXC1tb3VudGFpbjsKK+aXgyA8IHNpbGtcLWJhbm5lclwtd2l0aFwtYmVudFwtcG9sZTsKK+m9kSA8IGJyZWFrXC1vclwtc21hc2hcLWludG9cLXBpZWNlczsKK+iEmCA8IGludGVybmFsXC1jYXZpdHlcLW9mXC1zdG9tYWNoOwor6ZWSIDwgbWVhc3VyZVwtb2ZcLXdlaWdodFwtZm9yXC1nb2xkOwor55ytIDwgZXZpbFwtbG9va1wtb2ZcLWRlZXBcLXNldFwtZXllczsKK+mUliA8IHRoZVwtY29sb3JcLW9mXC10aGVcLWFcLW1pbmVyYWw7CivpgpkgPCBtb3VudGFpblwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+aVqyA8IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivokJEgPCBncmFzc1wtdXNlZFwtZm9yXC1tYWtpbmdcLW1hdHM7Civop68gPCB3aW5lXC1nb2JsZXRcLW1hZGVcLWZyb21cLWhvcm47CivoiKMgPCB0b1wtbW9vclwtYVwtYm9hdFwtdG9cLXRoZVwtYmFuazsKK+eikeaWhyA8IGFuXC1pbnNjcmlwdGlvblwtb25cLWFcLXRhYmxldDsKK+W3tOWFkueLlyA8IHBla2luZ2VzZVwtXChhXC1icmVlZFwtb2ZcLWRvZ1wpOwor5LiA6Lev5bmz5a6JIDwgdG9cLWhhdmVcLWFcLXBsZWFzYW50XC1qb3VybmV5Owor57SQ57SE5pmC5aCxIDwgbmV3XC15b3JrXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+WPsOWMlyA8IHRhaXBlaVwtXChjYXBpdGFsXC1vZlwtdGFpd2FuXCk7CivluLjllY/llY/poYwgPCBmcmVxdWVudGx5XC1hc2tlZFwtcXVlc3Rpb25zOwor55m+5a2U5Y2D55ihIDwgcmlkZGxlZFwtd2l0aFwtZ2FwaW5nXC13b3VuZHM7CivlhbXpgKPnpo3ntZAgPCByYXZhZ2VkXC1ieVwtc3VjY2Vzc2l2ZVwtd2FyczsKK+ays+WFpyA8IGhhbm9pXC1cKGNhcGl0YWxcLW9mXC12aWV0bmFtXCk7Civph4/lipsgPCB0b1wtZXN0aW1hdGVcLW9uZScnc1wtc3RyZW5ndGg7CivmnKzlnLDnrqHnkIbnlYzpnaIgPCBsb2NhbFwtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor6ZW35pyf5Lul5L6GIDwgZXZlclwtc2luY2VcLWFcLWxvbmdcLXRpbWVcLWFnbzsKK+WtmOi7iuiZlSA8IHBhcmtpbmdcLWxvdFwtXChmb3JcLWJpY3ljbGVzXCk7CivmlqHml4sgPCBtZWRpYXRlXC1cKGFcLWNvbmZsaWN0XCxcLWV0Y1wuXCk7CivnmbzlsZXmoLjmrablmaggPCB0b1wtZGV2ZWxvcFwtbnVjbGVhclwtd2VhcG9uczsKK+WuieWutuiQveaItiA8IG1ha2VcLW9uZScnc1wtaG9tZVwtaW5cLWFcLXBsYWNlOwor5YWl5pyo5LiJ5YiGIDwgd3JpdHRlblwtaW5cLWFcLWZvcmNlZnVsXC1oYW5kOwor54mM5Yy+IDwgYm9hcmRcLVwoYXR0YWNoZWRcLXRvXC1hXC13YWxsXCk7Civli5XmiYsgPCB0b1wtaGl0XC13aXRoXC1oYW5kc1wtb3JcLWZpc3RzOwor6by754mb5YWSIDwgaGFyZGVuZWRcLW11Y3VzXC1pblwtbm9zdHJpbHM7CivmraXmnIggPCB0b1wtc3Ryb2xsXC1iZW5lYXRoXC10aGVcLW1vb247CivnlbDmraXlgrPovLjmqKHlvI8gPCBhc3luY2hyb25vdXNcLXRyYW5zZmVyXC1tb2RlOwor6KqT5birIDwgdG9cLXZvd1wtYmVmb3JlXC1vbmUnJ3NcLXRyb29wczsKK+mDqOWnlCA8IG1pbmlzdHJpZXNcLWFuZFwtY29tbWlzc2lvbnM7Civpm6PmgKogPCBcKGl0JydzXClcLW5vXC13b25kZXJcLVwodGhhdFwuXC5cLlwpOwor5YeN57WQIDwgXChsb2FuXCxcLXdhZ2VcLFwtcHJpY2VcKVwtZnJlZXplOwor5pa95YqgIDwgZXhlcnRcLVwoZWZmb3J0XC1vclwtcHJlc3N1cmVcKTsKK+imlueqlyA8IHdpbmRvd3NcLVwob3BlcmF0aW5nXC1zeXN0ZW1cKTsKK+W3qOiRlyA8IG1vbnVtZW50YWxcLVwobGl0ZXJhcnlcKVwtd29yazsKK+WIhuaZguWkmuW3pSA8IHRpbWVcLWRpdmlzaW9uXC1tdWx0aXBsZXhpbmc7Civli5/ljJYgPCB0b1wtY29sbGVjdFwtYWxtc1wtXChidWRkaGlzbVwpOwor5qC55rex6JKC5Zu6IDwgZGVlcFwtcm9vdGVkXC1cKHByb2JsZW1cLFwtZXRjXCk7Civlj5vorornmoTnnIHku70gPCByZW5lZ2FkZVwtcHJvdmluY2VcLVwodGFpd2FuXCk7Civpg6jkuIsgPCB0cm9vcHNcLXVuZGVyXC1vbmUnJ3NcLWNvbW1hbmQ7CivpprUgPCBob3JzZVwtd2l0aFwtd2hpdGVcLWJhY2tcLWxlZ3M7Civpo6MgPCBkaXNwbGF5XC1mb29kXC1mb3JcLXNob3dcLW9ubHk7CivmmJ/ls7bml6XloLEgPCBzaW5nXC10YW9cLWRhaWx5XC1cKG5ld3NwYXBlclwpOwor6ZeSIDwgdXBwZXJcLXN0b3J5XC1kb29yXC1vclwtd2luZG93Owor5YWo56iLIDwgXChkdXJpbmdcLWFuXClcLWVudGlyZVwtam91cm5leTsKK+mVt+evhyA8IGxlbmd0aHlcLVwocmVwb3J0XC1vclwtc3BlZWNoXCk7Civpm7vohabovJTliqnmlZnmnZAgPCBjb21wdXRlclwtYWlkZWRcLWluc3RydWN0aW9uOwor6KW/5rmWIDwgdGhlXC13ZXN0XC1sYWtlXCxcLWluXC1oYW5nemhvdTsKK+WuouaItuapn+acjeWLmeWZqOeSsOWigyA8IGNsaWVudFwtc2VydmVyXC1lbnZpcm9uZW1lbnQ7CivpioEgPCBhXC13ZWlnaHRcLW9mXC10aGlydHlcLWNhdHRpY3M7CivphoogPCB0b1wtcG91clwtd2luZVwtaW5cLWFcLWxpYmF0aW9uOwor6YO/IDwgY291bnR5XC1pblwtc2hhYW54aVwtcHJvdmluY2U7Civpg7MgPCBzdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDoCA8IHBsYWNlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOaIDwgdG93bnNcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivovKQgPCBhXC1wYWxsXC10b1wtY292ZXJcLXRoZVwtaGVhcnNlOwor5pKl5byEIDwgbW92ZVwtdG9cLWFuZFwtZnJvXC1cKHdpdGhcLWhhbmQ7CivooajoqJggPCBzb21ldGhpbmdcLWdpdmVuXC1hc1wtYVwtdG9rZW47CivouJIgPCB0b1wtc2xpcFwtYW5kXC1zcHJhaW5cLWFcLWJsaW1iOwor6KGo6KOhIDwgdGhlXC1vdXRzaWRlXC1hbmRcLXRoZVwtaW5zaWRlOwor6KaQIDwgYVwtc2xlZXBcLXRvXC1yZWFsaXplXC10b1wtZmVlbDsKK+ahg+iKsemBiyA8IGx1Y2tcLXdpdGhcLXRoZVwtb3Bwb3NpdGVcLXNleDsKK+mbu+S/oeacjeWLmSA8IHRlbGVjb21tdW5pY2F0aW9uc1wtc2VydmljZTsKK+mAvOWCtSA8IHByZXNzXC1mb3JcLXBheW1lbnRcLW9mXC1kZWJ0czsKK+WFrOmWi+mRsOWMmSA8IHB1YmxpY1wta2V5XC1cKGluXC1lbmNyeXB0aW9uXCk7CivomaEgPCBzdXBwb3J0XC1zdHJ1Y3R1cmVcLWZvclwtYmVsbDsKK+iWviA8IGx1eHVyaWFudFwtZ3Jvd3RoXC1vZlwtZmxvd2VyOwor5byX5aGe5aWHIDwgdmVyc2FjZVwtXChmYXNoaW9uXC1kZXNpZ25lclwpOwor6IyIIDwgYVwtcGxhbnRcLXlpZWxkaW5nXC1hXC1yZWRcLWR5ZTsKK+aZrumAmuipsSA8IG1hbmRhcmluXC1cKGNvbW1vblwtbGFuZ3VhZ2VcKTsKK+mbu+S/oee2sui3ryA8IHRlbGVjb21tdW5pY2F0aW9uc1wtbmV0d29yazsKK+iGhiA8IHRoZVwtY29ycFwtb2ZcLWFcLWJpcmRcLW9yXC1mb3dsOwor6Zu76IWm6LyU5Yqp5bel56iLIDwgY29tcHV0ZXJcLWFpZGVkXC1lbmdpbmVlcmluZzsKK+aEn+afk+S6uuaVuCA8IG51bWJlclwtb2ZcLWluZmVjdGVkXC1wZXJzb25zOwor562G6YuSIDwgdGhlXC10aXBcLW9mXC1hXC13cml0aW5nXC1icnVzaDsKK+WgseWIiiA8IG5ld3NwYXBlcnNcLWFuZFwtcGVyaW9kaWNhbHM7Civnmb7mraXnqb/mpYogPCBzaG9vdFwtd2l0aFwtZ3JlYXRcLXByZWNpc2lvbjsKK+e9rSA8IGRyYWdcLW5ldFwtbWFkZVwtb2ZcLWZpbmVcLW1lc2g7CivnvY8gPCBlYXJ0aGVuXC1zdGFuZFwtZm9yXC13aW5lXC1qdWc7CivnvY0gPCBsYXJnZVwtZWFydGhlbndhcmVcLXdpbmVcLWphcjsKK+a8lOismyA8IFwoZ2l2ZVwpXC1hXC1zcGVlY2hcLW9yXC1sZWN0dXJlOwor57m4IDwgaGVtXC1vclwtYm9yZGVyXC1vZlwtYVwtZ2FybWVudDsKK+Wci+eItiA8IGZhdGhlclx8Zm91bmRlclwtb2ZcLWFcLW5hdGlvbjsKK+evnyA8IGx1eHVyaWFudFwtZ3Jvd3RoXC1vZlwtYmFtYm9vOwor5L6d6Z2gIDwgcmVseVwtb25cLVwoZm9yXC1zdXBwb3J0XCxcLWV0Y1wpOwor5omA6ZW3IDwgaGVhZFwtb2ZcLWFuXC1pbnN0aXR1dGVcLFwtZXRjXC47CivnqoYgPCB0b1wtcHV0XC1hXC1jb2ZmaW5cLWluXC1hXC1ncmF2ZTsKK+elsiA8IG9taW5vdXNcLW9yXC1zaW5pc3Rlclwtc3Bpcml0Owor5bm+5bm05L6GIDwgZm9yXC10aGVcLXBhc3RcLXNldmVyYWxcLXllYXJzOwor6Iul5bmyIDwgYVwtY2VydGFpblwtbnVtYmVyXHxhbW91bnRcLW9mOwor55mVIDwgbG9zc1wtb2ZcLXRoZVwtc2Vuc2VcLW9mXC1zbWVsbDsKK+mgpOWSjOWckiA8IHN1bW1lclwtcGFsYWNlXC1cKGluXC1iZWlqaW5nXCk7Civnq7bpgbggPCBydW5cLWZvclwtXChlbGVjdG9yYWxcKVwtb2ZmaWNlOwor5pC25YWIIDwgdG9cLXJ1c2hcLVwodG9cLWRvXC1zdGhcLXVyZ2VudFwpOwor54+bIDwgcXVpY2tseVwtZGV0ZXJpb3JhdGluZ1wtamFkZTsKK+WBnOeVmSA8IHN0YXlcLXNvbWV3aGVyZVwtdGVtcG9yYXJpbHk7CivmvrcgPCB3YXRlclwtb3ZlcmZsb3dpbmdcLWRpZmZ1c2VkOwor5Ye654++5oSP5aSWIDwgXCh0b1wtYXBwZWFyXClcLXVuZXhwZWN0ZWRcKGx5XCk7Civmr6kgPCBhXC1sZWF0aGVyXC1iYWxsXC1mb3JcLWtpY2tpbmc7Civnl4XmoKogPCBkaXNlYXNlZFwtb3JcLWluZmVjdGVkXC1wbGFudDsKK+S/l+eosSA8IGJlXC1jb21tb25seVwtcmVmZXJyZWRcLXRvXC1hczsKK+aPuSA8IGNhcnJ5XC10aGluZ3NcLW9uXC1vbmUnJ3NcLWJhY2s7Civmj4EgPCBzb3VuZFwtb2ZcLXNldHRpbmdcLXVwXC1hXC1rb3RvOwor5LiA6Ke45Y2z55m8IDwgY291bGRcLWhhcHBlblwtYXRcLWFueVwtbW9tZW50Owor6KGM5bCHIDwgYmVcLWFib3V0XC10b1wtXChkb1wtc29tZXRoaW5nXCk7CivotrPnkIMgPCBmb290YmFsbFwtXChicml0aXNoXC1lbmdsaXNoXCk7Civnupboiq/nm7TlvpEgPCBjb3JlXC1kaWFtZXRlclwtXChvZlwtYVwtZmliZXJcKTsKK+WqpyA8IG15dGhvbG9naWNhbFwtc25haWxcLWdvZGRlc3M7Civog4zohIogPCB0aGVcLWJhY2tcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor5ZuJIDwgZXhjbGFtYXRvcnlcLWZpbmFsXC1wYXJ0aWNsZTsKK+WuouaItuacjeWLmeWZqOe1kOaniyA8IGNsaWVudFwtc2VydmVyXC1hcmNoaXRlY3R1cmU7CivlmLcgPCB0aGVcLXJvYXJpbmdcLW9mXC13aWxkXC1iZWFzdHM7CivpgLLooYzkuqTmmJMgPCB0b1wtY2FycnlcLW91dFwtYVwtdHJhbnNhY3Rpb247Civmipfmk4ogPCByZXNpc3RcLVwoYVwtbWlsaXRhcnlcLWF0dGFja1wpOwor5YmeIDwgY2FydmluZ1wtb3JcLWVuZ3JhdmluZ1wta25pZmU7CivppqzkvobkurogPCBtYWxheXNpYW5cLXBlcnNvblwtb3JcLXBlb3BsZTsKK+WGjyA8IGFidXRpbG9uXC1hdmljZW5uYWVcLVwocGxhbnRcKTsKK+WIpeWHuuW/g+ijgSA8IGFkb3B0XC1hblwtb3JpZ2luYWxcLWFwcHJvYWNoOwor5bCL5qmfIDwgdG9cLWxvb2tcLWZvclwtYW5cLW9wcG9ydHVuaXR5Owor5LmrIDwgdXNlZFwtaW5cLWtvcmVhblwtcGxhY2VcLW5hbWVzOwor5a+m5rOBIDwgd2hhdFwtaXNcLWFjdHVhbGx5XC1oYXBwZW5pbmc7CivktYYgPCBncmFpbnNcLWZyb21cLXRoZVwtZGlzdGlsbGVyeTsKK+SyryA8IGFcLWtpbmRcLW9mXC1ibGFja1wtc21hbGxcLWJpcmQ7Civkr5MgPCB0aGVcLWhlYWRcLWJvbmVcLW9mXC1saXZlc3RvY2s7CivkrrYgPCBmbG9ja1wtb2ZcLWhvcnNlc1wtc3RhbXBlZGluZzsKK+SuoyA8IGFcLXllbGxvd1wtd2l0aFwtYVwtd2hpdGVcLXRhaWw7CivlqpLpq5TmjqXlj6PpgKPmjqXlmaggPCBtZWRpdW1cLWludGVyZmFjZVwtY29ubmVjdG9yOwor5bqV54m55b6LIDwgZGV0cm9pdFwtXChhXC1jaXR5XC1pblwtdGhlXC11c1wpOwor5KyxIDwgY29hcnNlXC1ncmFpbnNcLXN1Y2hcLWFzXC1jb3JuOwor5Lit5ZyL56eR5a246ZmiIDwgY2hpbmVzZVwtYWNhZGFteVwtb2ZcLXNjaWVuY2U7CivkqbIgPCBhXC10b29sXC11c2VkXC10b1wtY3V0XC1sZWF0aGVyOwor5KmaIDwgdG9cLW1lbmRcLXRoZVwtc29sZXNcLW9mXC1zaG9lczsKK+eZvueZvOeZvuS4rSA8IGV2ZXJ5XC1zaG90XC1oaXRzXC10aGVcLXRhcmdldDsKK+S4gembsiA8IGRpbmdcLXl1blwtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor6Jmb5pOs6YCa6YGT6YCj5o6lIDwgdmlydHVhbFwtY2hhbm5lbFwtY29ubmVjdGlvbjsKK+ShpiA8IHRoZVwtZW1wdHlcLXNwYWNlXC1vZlwtYVwtd2hlZWw7CivmoYjmnb8gPCBrbmVhZGluZ1wtb3JcLWNob3BwaW5nXC1ib2FyZDsKK+SgiSA8IHRvXC1ydW5cLWF3YXlcLW9yXC1lc2NhcGVcLWZyb207CivknpEgPCBhXC1yZWRcLXN3ZWxsaW5nXC1vZlwtdGhlXC1za2luOwor5L+d5a6IIDwgXChwb2xpdGljYWxseVwpXC1jb25zZXJ2YXRpdmU7Civkm68gPCB0aGVcLXJlYXNvbmFibGVcLW9mXC1zcGVla2luZzsKK+SWhSA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklIUgPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLXRyZWVzOwor5JKxIDwgdHdpZ3NcLW9mXC1oZW1wXC11c2VkXC1mb1wtZnVlbDsKK+SOtyA8IGFuXC1vbGRcLW1hblwtd2l0aFwtd2hpdGVcLWhhaXI7CivkuI3pgIEgPCBkb24nJ3RcLWJvdGhlclwtdG9cLXNlZVwtbWVcLW91dDsKK+SMoCA8IGhvbGRcLW9uXC10b1wtb25lJydzXC1vd25cLXZpZXdzOwor6Z2i5Zqu5bCN6LGh55qE5oqA6KGTIDwgb2JqZWN0XC1vcmllbnRlZFwtdGVjaG5vbG9neTsKK+elnumBkyA8IHNoaW50b1wtXChqYXBhbmVzZVwtcmVsaWdpb25cKTsKK+SLgCA8IHNob2VzXC1tYWRlXC1vZlwtaGVtcFwtb3JcLWhhaXI7Civkiq4gPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYWluOwor5ImCIDwgYVwtYmFza2V0XC1mb3JcLWVhcnRoXC1vclwtc29pbDsKK+SHliA8IHJvcGVcLW1hZGVcLW9mXC1iYW1ib29cLXN0cmlwczsKK+SGgCA8IHRvXC1jb3JydXB0XC1vclwtYmVcLWNvcnJ1cHRlZDsKK+SFviA8IHN0YXJ0aW5nXC10b1wtcHV0XC1mb3J0aFwtZWFyczsKK+SFrCA8IHNtYWxsXC1idW5kbGVcLW9mXC1yaWNlXC1wbGFudDsKK+Wwh+WwsSA8IGFjY2VwdFwtXChhXC1iaXRcLXJlbHVjdGFudGx5XCk7CivkuI3kuqLkuI3ljZEgPCBuZWl0aGVyXC1oYXVnaHR5XC1ub3JcLWh1bWJsZTsKK+SBjiA8IHRvXC1tYWtlXC1hXC1jbG9zZVwtaW5zcGVjdGlvbjsKK+SAiiA8IGFcLWtpbmRcLW9mXC13YXRlclwtY29udGFpbmVyczsKK+aHt+aKsSA8IFwod2l0aGluXC1zb21lb25lJydzXClcLWVtYnJhY2U7CivjvKkgPCBjb25jYXZlXC1jaGFubmVsc1wtb2ZcLXRpbGluZzsKK+eUqOaItuerr+ioreWCmSA8IGN1c3RvbWVyXC1wcmVtaXNlXC1lcXVpcG1lbnQ7Civmg4Xms4HkuIsgPCB1bmRlclwtXCh0aGlzXClcLWNpcmN1bXN0YW5jZXM7CivjuqAgPCBhXC1ibGFja1wtYXBlXC13aXRoXC1sb25nXC10YWlsOwor47qVIDwgdGhlXC1maWdodGluZ1wtc291bmRcLW9mXC1kb2dzOwor47maIDwgc291bmRcLW9mXC1jYWxsaW5nXC10b1wtYVwtY2FsZjsKK+O3tiA8IHRvXC1kcnlcLW9yXC13YXJtXC1uZWFyXC1hXC1maXJlOwor5rqr5ZOl6I+vIDwgdmFuY291dmVyXC1cKGNpdHlcLWluXC1jYW5hZGFcKTsKK+O3gyA8IGZpcmVcLWJ1cm5zXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivjtJQgPCB0aGVcLW5vaXNlXC1vZlwtZmxvd2luZ1wtd2F0ZXI7CivjtIsgPCBkZWVwXC1hbmRcLWNsZWFyXC1cLXRvXC11cmluYXRlOwor47OnIDwgdGhlXC13YXRlclwtZmxvd2luZ1wtZnJvbVwtXC5cLlwuOwor47G9IDwgdG9cLWhpdFwtb3JcLXRvXC1zdHJpa2VoZWF2aWx5Owor47G7IDwgZGlzZWFzZXNcLW9mXC1kdW1iXC1jcmVhdHVyZXM7CivjsaEgPCB0aGVcLXNvdWxcLW91dFwtb2ZcLW9uZScnc1wtYm9keTsKK+OxlCA8IGFcLXNtYWxsXC1xdWFudGl0eVwtb3JcLW51bWJlcjsKK+OvnyA8IGZvb3RcLW9mXC1hXC1oaWxsXC1vclwtbW91bnRhaW47Civjra4gPCBhXC1raW5kXC1vZlwtbGlxdW9yXC1jb250YWluZXI7Civlj7PpgoogPCByaWdodFwtXChhc1wtb3Bwb3NlZFwtdG9cLWxlZnRcKTsKK+S4jeetieWDueS6pOaPmyA8IGV4Y2hhbmdlXC1vZlwtdW5lcXVhbFwtdmFsdWVzOwor55m96aCt57+BIDwgcm9vdFwtb2ZcLWNoaW5lc2VcLXB1bHNhdGlsbGE7CivvqIwgPCBkdXBsaWNhdGVcLW9mXC1iaWdcLWZpdmVcLWE0NjE7Civnmb3lo4HnhKHnkZUgPCBpbXBlY2NhYmxlXC1tb3JhbFwtaW50ZWdyaXR5Owor46aDIDwgcGVyZmVjdFwtcGVyc29uYWxcLWNoYXJhY3RlcjsKK+ekvuirliA8IGVkaXRvcmlhbFwtXChpblwtYVwtbmV3c3BhcGVyXCk7CivlrrbluLggPCB0aGVcLWRhaWx5XC1saWZlXC1vZlwtYVwtZmFtaWx5Owor46WNIDwgdG9cLWJlYXJcLWplYWxvdXNcLWhhdHJlZFwtZm9yOwor46SsIDwgZnVsbFwtb2ZcLWFuZ2VyXC1hbmRcLXZleGF0aW9uOwor46SOIDwgYVwtbW9kZWxcLW9yXC10eXBpY2FsXC1leGFtcGxlOwor46SEIDwgcmFnaW5nXC1hbmltb3NpdHlcLW9yXC1oYXRyZWQ7Civjo6cgPCB0aGVcLXN1Y2Nlc3Npb25cLWluXC1hXC1mYW1pbHk7Civjo6MgPCB0b1wtd2Fsa1wtaW5cLWFuXC11bnN0ZWFkeVwtd2F5Owor46K4IDwgZGV2aWNlXC1mb3JcLXJlZ3VsYXRpbmdcLWJvd3M7CivjopIgPCBhblwtYWxtb3N0XC1jb2xsYXBzaW5nXC1ob3VzZTsKK+abuOiBliA8IGFcLWdyZWF0XC1jYWxsaWdyYXBoeVwtbWFzdGVyOwor45yqIDwgbmFtZVwtb2ZcLWFcLWZhbWlseVwtb3JcLWFcLWNsYW47CivjnJUgPCByZWxhdGl2ZXNcLXRocm91Z2hcLW1hcnJpYWdlOwor45uyIDwgdGhlXC1oYWlyXC1vblwtdGhlXC1odW1hblwtaGVhZDsKK+OavyA8IGFcLWdvZGRlc3MnJ3NcLW5hbWVcLWluXC1sZWdlbmQ7CivjmaEgPCBhXC1raW5kXC1vZlwtZWF0YWJsZVwtbXVzaHJvb207CivjmLkgPCB0b1wtc3ByZWFkXC1zb2lsXC1vblwtdGhlXC1yb2FkOwor5Lit5paH54mIIDwgY2hpbmVzZVwtXChsYW5ndWFnZVwpXC12ZXJzaW9uOwor45ikIDwgY2lyY2xlXC1vZlwtdGhlXC1tb3ZpbmdcLXdhdGVyOwor45aoIDwgaW5kaXN0aW5jdFwtbmFzYWxcLXV0dGVyYW5jZTsKK+OSvSA8IGFcLWtpbmRcLW9mXC1jYXBcLWZvclwtY2hpbGRyZW47Civpq5jkuK3nlJ8gPCBzZW5pb3JcLWhpZ2hcLXNjaG9vbFwtc3R1ZGVudDsKK+OQliA8IGFcLXRyYW5zbGF0ZWRcLW5hbWVcLW9mXC1pbmRpYTsKK+izh+acrCA8IGNhcGl0YWxcLVwoYXNcLWluXC1jYXBpdGFsaXNtXCk7Civmnb/nvr3nkIMgPCBiYXR0bGVkb3JlXC1hbmRcLXNodXR0bGVjb2NrOwor6aKo55C0IDwgb3JnYW5cLVwobXVzaWNhbFwtaW5zdHJ1bWVudFwpOwor5a2X5biWIDwgY29weWJvb2tcLVwoZm9yXC1jYWxsaWdyYXBoeVwpOwor5pWX5a2Q5Zue6aCtIDwgcmV0dXJuXC1vZlwtdGhlXC1wcm9kaWdhbFwtc29uOwor6Kiq5ZWP576O5ZyLIDwgdG9cLXZpc2l0XC10aGVcLXVuaXRlZFwtc3RhdGVzOwor5LiN5aSx5pmC5qmfIDwgc2VpemVcLXRoZVwtb3Bwb3J0dW5lXC1tb21lbnQ7CivlronliIYgPCBub3RcLWdvXC1iZXlvbmRcLW9uZScnc1wtYm91bmRzOwor5pqX56yRIDwgbGF1Z2hcLWluXC1cKHVwXClcLW9uZScnc1wtc2xlZXZlOwor5bCO5b2I5r2b6ImHIDwgXChndWlkZWRcKVwtbWlzc2lsZVwtc3VibWFyaW5lOwor576O546yIDwgbWVpXC1saW5nXC1cKGFcLXBlcnNvbicnc1wtbmFtZVwpOwor56Kn6KGAIDwgYmxvb2RcLXNoZWRcLWluXC1hXC1qdXN0XC1jYXVzZTsKK+WPg+WFqemZoiA8IGJvdGhcLWhvdXNlc1wtb2ZcLXVzXC1jb25ncmVzczsKK+a0quajriA8IGh1blwtc2VuXC1cKGNhbWJvZGlhblwtbGVhZGVyXCk7CivnqJ/lkYogPCByZXBvcnRcLVwodG9cLW9uZScnc1wtc3VwZXJpb3JcKTsKK+mBuumrlCA8IHJlbWFpbnNcLVwob2ZcLWFcLWRlYWRcLXBlcnNvblwpOwor6YG/6aKoIDwgdGFrZVwtc2hlbHRlclwtZnJvbVwtdGhlXC13aW5kOwor56aP5bu6IDwgZnVqaWFuXC1cKHByb3ZpbmNlXC1vZlwtY2hpbmFcKTsKK+WuieWmguazsOWxsSA8IGFzXC1zZWN1cmVcLWFzXC1tb3VudFwtdGFpc2hhbjsKK+WLmOiqpCA8IHRvXC1jb3JyZWN0XC1wcmludGluZ1wtZXJyb3JzOwor5Y2H57SaIDwgdG9cLWVzY2FsYXRlXC1cKGluXC1pbnRlbnNpdHlcKTsKK+W8t+iqvyA8IHRvXC1lbXBoYXNpemVcLVwoYVwtc3RhdGVtZW50XCk7CivogIzkuJQgPCBub3RcLW9ubHlcLVwuXC5cLlwtYnV0XC1hbHNvXC1cLlwuXC5cLjsKK+mBt+mDvSA8IHRvXC1tb3ZlXC10aGVcLWNhcGl0b2xcLVwoY2l0eVwpOwor5LiN576p5LmL6LKhIDwgaWxsXC1nb3R0ZW5cLXdlYWx0aFwtb3JcLWdhaW5zOwor6YeN6KaB55qE5pivIDwgaXRcLWlzXC1pbXBvcnRhbnRcLVwodGhhdFwpXC1cLlwuXC47CivkuI3kvYYgPCBub3RcLW9ubHlcLVwoXC5cLlwuXC1idXRcLWFsc29cLlwuXC5cKTsKK+WMheeUoiA8IG1ha2VcLWFcLXByb2R1Y3Rpb25cLWNvbnRyYWN0Owor55mf6J6655enIDwgY2hvbGVyYVwtXCh3aXRoXC1kZWh5ZHJhdGlvblwpOwor5bGKIDwgbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdGltZTsKK+iwgSA8IHdob1w/XC13aG9tXD9cLXdob3NlXD9cLWFueW9uZVw/Owor6Zi/IDwgcHJlZml4XC1mb3JcLXBlb3BsZScnc1wtbmFtZXM7CivojqIgPCBwb2RzXC1vZlwtbGVndW1pbm91c1wtcGxhbnRzOwor54uEIDwgdHJpYmVcLWZyb21cLW5vcnRoZXJuXC1jaGluYTsKK+e5sCA8IHRvXC1yZWVsXC1zaWxrXC1mcm9tXC1jb2Nvb25zOwor5ryTIDwgcml2ZXJcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+WSiyA8IHF1ZXN0aW9uXC1mb3JtaW5nXC1wYXJ0aWNsZTsKK+m6nyA8IGZlbWFsZVwtb2ZcLWNoaW5lc2VcLXVuaWNvcm47CivmuK0gPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGk7CivoipwgPCBsdXh1cmlvdXNcLWdyb3d0aFwtb2ZcLXdlZWRzOwor57uOIDwgdG9cLXVucmF2ZWxcLW9yXC11bnJlZWxcLXNpbGs7CivnkpAgPCBiZWF1dGlmdWxcLXZhcmlldHlcLW9mXC1qYWRlOwor6Z+2IDwgbXVzaWNcLW9mXC10aGVcLWVtcGVyb3JcLXNodW47CivprJ8gPCBkcmVzc1wtaGFpclwtaW5cLWNvaWxlZFwta25vdDsKK+e9giA8IGxvbmdcLW5lY2tlZFwtamFyXC1vclwtYm90dGxlOwor6Z2zIDwgc3RyYXBcLW9uXC1hXC1ob3JzZScnc1wtYnJlYXN0Owor5remIDwgcml2ZXJcLWluXC1qaWFuZ3hpXC1wcm92aW5jZTsKK+aQoSA8IHRvXC1wdXNoXC1vdmVyXC1vclwtcHVzaFwtYmFjazsKK+iJriA8IHNldmVudGhcLW9mXC1laWdodFwtZGlhZ3JhbXM7CivmuZ8gPCByaXZlclwtaW5cLXFpbmdoYWlcLXByb3ZpbmNlOwor54yxIDwgYVwtbW9ua2V5XC13aXRoXC15ZWxsb3dcLWhhaXI7CivmtqogPCByaXZlclwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5LqzIDwgbmFtZVwtb2ZcLWRpc3RyaWN0XC1pblwtYW5odWk7CivolLogPCBydXNoXC11c2VkXC1mb3JcLW1ha2luZ1wtbWF0czsKK+eQrCA8IHRoZVwtdmlydHVlXC1vZlwtYVwtZ2VudGxlbWFuOwor54yXIDwgZXhjbGFtYXRpb25cLW9mXC1hZG1pcmF0aW9uOwor6byZIDwgZHJ1bVwtY2FycmllZFwtb25cLWhvcnNlYmFjazsKK+iVsiA8IHZhcmlldHlcLW9mXC1hcnRlbWlzaWFcLXNlZWs7Civnk54gPCB5b3VuZ1wtbWVsb25zXC1qdXN0XC1mb3JtaW5nOwor6L6BIDwgY2FydFwtd2hlZWxcLXdpdGhcLW5vXC1zcG9rZXM7CivphYYgPCBuYW1lXC1vZlwtemhvdVwtcGVyaW9kXC1zdGF0ZTsKK+WMl+acnSA8IHRoZVwtbm9ydGhlcm5cLWR5bmFzdGllc1wtXChhOwor6LaF5paH5pys5qiZ6KiY6Kqe6KiAIDwgaHlwZXJ0ZXh0XC1tYXJrdXBcLWxhbmd1YWdlOwor5rC45LmF6Jmb6Zu76LevIDwgcGVybWFuZW50XC12aXJ0dWFsXC1jaXJjdWl0Owor5YyF5pSsIDwgdW5kZXJ0YWtlXC10aGVcLXdob2xlXC10aGluZzsKK+WLnuaVmSA8IHJlZWR1Y2F0aW9uXC10aHJvdWdoXC1sYWJvcjsKK+WNiuWgtCA8IGhhbGZcLW9mXC1hXC1nYW1lXC1vclwtY29udGVzdDsKK+mAmuS/oeaKgOihkyA8IGNvbW11bmljYXRpb25zXC10ZWNobm9sb2d5Owor55m86YGUIDwgZGV2ZWxvcGVkXC1cKGNvdW50cnlcLFwtZXRjXC5cKTsKK+WhnueIvue2reS6nuWFi+e+heWcsOS6nuiqniA8IHNlcmJvXC1jcm9hdGlhblwtXChsYW5ndWFnZVwpOwor54CJ6ZyyIDwgdG9cLWxlYWtcLW91dFwtXChpbmZvcm1hdGlvblwpOwor5q2y5pW4IDwgYWdlXC1cKG51bWJlclwtb2ZcLXllYXJzXC1vbGRcKTsKK+WkluWMr+WEsuWCmSA8IGZvcmVpZ25cLWV4Y2hhbmdlXC1yZXNlcnZlczsKK+mWi+iorSA8IG9mZmVyXC1cKGdvb2RzXC1vclwtc2VydmljZXNcKTsKK+W7o+adsSA8IGd1YW5nZG9uZ1wtcHJvdmluY2VcLFwtY2hpbmE7CivmlL7lv4MgPCB0b1wtc2V0XC1vbmUnJ3NcLW1pbmRcLWF0XC1yZXN0Owor6a2v6L+FIDwgbmFtZVwtb2ZcLWFuXC1hdXRob3JcLFwtbHVcLXh1bjsKK+mBmeacmyA8IHRvXC1sb29rXC1pbnRvXC10aGVcLWRpc3RhbmNlOwor6Zu75a2Q6YO15Lu25YKz6YCB5pyN5YuZIDwgXChlXC1cKW1haWxcLWRlbGl2ZXJ5XC1zZXJ2aWNlOwor6KOc6LazIDwgYnJpbmdcLXVwXC10b1wtZnVsbFwtc3RyZW5ndGg7CivpgI/pgJrmgKcgPCB0cmFuc3BhcmVuY3lcLVwobmV0d29ya2luZ1wpOwor54as5aScIDwgc3RheVwtdXBcLWxhdGVcLW9yXC1hbGxcLW5pZ2h0Owor6bC8IDwgdGhlXC13ZWF0aGVyXC1vclwtZG9qb1wtbG9hY2g7Civpq5TpqZcgPCB0b1wtZXhwZXJpZW5jZVwtZm9yXC1vbmVzZWxmOwor5pKV5q+AIDwgdGVhclwtdXBcLVwoYVwtY29udHJhY3RcLFwtZXRjXCk7Civlgr7pircgPCB0b1wtZHVtcFwtXChnb29kc1wsXC1wcm9kdWN0c1wpOwor6Z+UIDwgYVwtd3JhcHBlclwtb3JcLWNhc2VcLWZvclwtYm93Owor55yL5rOVIDwgd2F5XC1vZlwtbG9va2luZ1wtYXRcLWFcLXRoaW5nOwor6ZmXIDwgYVwtc3RlZXBcLWhpbGxcLlwtcHJlY2lwaXRvdXM7Civnh5/mpa3poY0gPCBzdW1cLW9yXC12b2x1bWVcLW9mXC1idXNpbmVzczsKK+mPviA8IHRoZVwtdHJpZ2dlclwtb2ZcLWFcLWNyb3NzYm93Owor6Zec5rOoIDwgZm9sbG93XC1cKGFuXC1pc3N1ZVwpXC1jbG9zZWx5Owor6YSgIDwgY291bnR5XC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mEjiA8IGFcLXBsYWNlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5Ymd5ZWEIDwgdGFwXC1cKG9uXC1hXC1kb29yXC1vclwtd2luZG93XCk7CivovqjmnpAgPCBkaWZmZXJlbnRpYXRlXC1hbmRcLWFuYWx5c2U7CivkuI3ovq3ovpvoi6YgPCBtYWtlXC1ub3RoaW5nXC1vZlwtaGFyZHNoaXBzOwor56iL5byP55CG5ZOhIDwgcHJvZ3JhbVwtbWFuYWdlclwtXCh3aW5kb3dzXCk7Civop7cgPCB0b1wtcHJvY2Vzc1wtb3JcLWNhcnZlXC1ob3JuczsKK+awkeS4u+m7qOS6uiA8IGFcLWRlbW9jcmF0aWNcLXBhcnR5XC1tZW1iZXI7CivonbAgPCB2aXBlcmFcLXJ1c3NlbGlpXC1zaWFtZW5zaXM7CivljYHlhITkvY3lhYPku6XlpKrntrLntaHoga/nm58gPCBnaWdhYml0XC1ldGhlcm5ldFwtYWxsaWFuY2U7CivokbYgPCBkcmFiYVwtbmVtZXJvc2FcLWJlYmVcLWNhcnBhOwor6IqUIDwgYVwtZ2VuZXJhbFwtdGVybVwtZm9yXC1wbGFudHM7CivohqUgPCBlZ2dzXC1vZlwtYmlyZHNcLW9yXC1yZXB0aWxlczsKK+S4ieWNgeW5tOS+hiA8IGZvclwtdGhlXC1wYXN0XC10aGlydHlcLXllYXJzOwor5oqA6KGT55m85bGVIDwgdGVjaG5vbG9naWNhbFwtZGV2ZWxvcG1lbnQ7CivlnIvnlKIgPCBtYWRlXC1pblwtb25lJydzXC1vd25cLWNvdW50cnk7Civpq5jnrYnlrbjmoKEgPCBjb2xsZWdlc1wtYW5kXC11bml2ZXJzaXRpZXM7Civnmb3ml48gPCB0aGVcLWJhaVwtXChwYWlcKVwtbmF0aW9uYWxpdHk7CivnupEgPCB0b1wtc29mdGVuXC1oZW1wXC1ieVwtYm9pbGluZzsKK+WOn+WboOW+iOewoeWWriA8IHRoZVwtcmVhc29uXC1pc1wtdmVyeVwtc2ltcGxlOwor57GpIDwgYmFtYm9vXC1jb250YWluZXJcLWZvclwtZm9vZDsKK+exnSA8IGFcLXR1YmVcLXRvXC1ob2xkXC1jaG9wc3RpY2tzOwor5bq35raF54uE5qC8IDwgY29ubmVjdGljdXRcLVwoc3RhdGVcLWluXC11c1wpOwor56yOIDwgYmFtYm9vXC13aXRoXC1ibGFja1wtcGF0Y2hlczsKK+WWrumAo+aOpeermSA8IHNpbmdsZVwtYXR0YWNobWVudFwtc3RhdGlvbjsKK+emmCA8IGltcGVyaWFsXC1hbmNlc3Rvclwtd29yc2hpcDsKK+efruWAi+WFkiA8IGFcLXBlcnNvblwtb2ZcLXNob3J0XC1zdGF0dXJlOwor55eF55mSIDwgcmVjb3ZlclwtXChmcm9tXC1hblwtaWxsbmVzc1wpOwor56SEIDwgcGxhY2VcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+WvrOmZkCA8IGV4dGVuZFwtXChhXC1kZWFkbGluZVwsXC1ldGNcLlwpOwor55KqIDwgcGVhcmxcLXBlbmRhbnRzXC1vblwtY29yb25ldDsKK+eRvSA8IHRpbmtsaW5nXC1vZlwtamFkZVwtcGVuZGFudHM7CivnjLIgPCBzbW9rZVwtb3JcLWZsYW1lc1wtZnJvbVwtZmlyZTsKK+espuWQiOaomea6liA8IHRvXC1jb21wbHlcLXdpdGhcLWFcLXN0YW5kYXJkOwor56S65aiB6YGK6KGMIDwgYVwtXChwcm90ZXN0XClcLWRlbW9uc3RyYXRpb247Civms5wgPCBhXC1yaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+azkiA8IGFcLXJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5rGtIDwgY29uZmx1ZW5jZVwtb2ZcLXR3b1wtc3RyZWFtczsKK+arvSA8IHNoYXBlXC13b29kXC1ieVwtdXNlXC1vZlwtaGVhdDsKK+aZrCA8IGZpcnN0XC1iaXJ0aGRheVwtb2ZcLWFcLWNoaWxkOwor6KGo5oWLIDwgbWFrZVwta25vd25cLW9uZScnc1wtcG9zaXRpb247CivlrqPoqpMgPCBzd2VhclwtYW5cLW9hdGhcLVwob2ZcLW9mZmljZVwpOwor5aSn5pW155W25YmNIDwgY29uZnJvbnRcLWFcLXBvd2VyZnVsXC1lbmVteTsKK+aCiiA8IHdpc2VcLlwtdG9cLWtub3dcLWludHVpdGl2ZWx5Owor5ouc5pybIDwgY2FsbFwtdG9cLXBheVwtb25lJydzXC1yZXNwZWN0Owor5b2NIDwgdG9cLWRyYXdcLWFcLWJvd1wtdG9cLXRoZVwtZnVsbDsKK+aguOWkp+WciyA8IGFcLW51Y2xlYXJcLXBvd2VyXC1cKGNvdW50cnlcKTsKK+W6hSA8IGFuXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+eglOijvemBjueoiyA8IG1hbnVmYWN0dXJpbmdcLWVudmlyb25tZW50Owor56+H5bmFIDwgXCh0YWtlXC11cFwtb3JcLWRldm90ZVwpXC1zcGFjZTsKK+WPjeWUh+ebuOitjyA8IGFuc3dlclwtYmFja1wtc2FyY2FzdGljYWxseTsKK+aguOi9n+eCuOapnyA8IG51Y2xlYXJcLWJvbWJlclwtXChhaXJjcmFmdFwpOwor5biM6IeY6KqeIDwgXChtb2Rlcm5cKVwtZ3JlZWtcLVwobGFuZ3VhZ2VcKTsKK+mmluebuCA8IFwoamFwYW5lc2VcKVwtcHJpbWVcLW1pbmlzdGVyOwor5pmC6ZaT5YWnIDwgd2l0aGluXC1cKGFcLXBlcmlvZFwtb2ZcLXRpbWVcKTsKK+e2sue1oeeuoeeQhuezu+e1sSA8IG5ldHdvcmtcLW1hbmFnZW1lbnRcLXN5c3RlbTsKK+aKiuW8jyA8IHBlcnNvblwtc2tpbGxlZFwtaW5cLWFcLXRyYWRlOwor5LW1IDwgeWVsbG93aXNoXC1ibGFja1wtYW5kXC13aGl0ZTsKK+S1qyA8IGxpZ2h0XC1yZWRcLXllbGxvd2lzaFwtYmxhY2s7CivktJsgPCB0b1wtbWFrZVwtZGVjb2N0aW9uXC1vZlwtc2FsdDsKK+SztyA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1jaGlja2VuOwor5LOGIDwgYVwta2luZFwtb2ZcLXNwZWNpZXNcLW9mXC1teW5hOwor5LCCIDwgYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7CivkrpUgPCBob3JzZVwtd2l0aFwtd2hpdGVcLWZvcmVoZWFkOwor5K2oIDwgd2luZVwtcG91cmVkXC1pblwtYVwtbGliYXRpb247Civkq4AgPCB0aGVcLWxvd2VyXC1lbmRcLW9mXC10aGVcLWphd3M7CivkqZ0gPCB0b1wtdGFuXC1hbmRcLXNvZnRlblwtbGVhdGhlcjsKK+S4jeW+l+S6uuW/gyA8IG5vdFwtZW5qb3lcLXBvcHVsYXJcLXN1cHBvcnQ7Civmt5jnsa4gPCBiYXNrZXRcLVwoZm9yXC13YXNoaW5nXC1yaWNlXCk7CivkpIIgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdmluZWdhcjsKK+eUpeWlsyA8IG5pZWNlXC1cKHNpc3Rlcicnc1wtZGF1Z2h0ZXJcKTsKK+SjtCA8IHRvXC1sb3NlXC10ZW1wZXJcLXdoZW5cLWRydW5rOwor5KOGIDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWdhb21pOwor5KKyIDwgdG9cLWdvXC1hbGxcLXRoZVwtd2F5XC1mb3J3YXJkOwor5KKuIDwgcmFwaWRcLW1hcmNoaW5nXC1vclwtcnVubmluZzsKK+SioSA8IHRvXC1zdGFtcFwtdGhlXC1mb290XC1mb3J3YXJkOwor5KG5IDwgdGhlXC1sb3dcLXJlYXJcLW9mXC1hXC1jaGFyaW90Owor5KGvIDwgc291bmRcLW9mXC1tb3ZpbmdcLWNhcnJpYWdlczsKK+ShoSA8IHRvXC1nZXRcLXVwXC1pbnRvXC1hXC1jYXJyaWFnZTsKK+ebtOiogOS4jeirsSA8IHNwZWFrXC1mcmFua2x5XC1hbmRcLWJsdW50bHk7Civmma/lsbHlhazlnJIgPCBuYW1lXC1vZlwtYVwtcGFya1wtaW5cLWJlaWppbmc7CivkmLggPCB0aGVcLWxvd2VyXC1mcm9udFwtb2ZcLWFcLXJvYmU7CivkmJIgPCBib3knJ3NcLXJlcHJvZHVjdGl2ZVwtb3JnYW5zOwor5JWEIDwgbWVhdFwtaW5cLXRoZVwtZm9ybVwtb2ZcLXBhc3RlOwor5JOLIDwgZWxtXC1zZWVkc1wtXC1cLVwtdXNlZFwtYXNcLWZvb2Q7CivkkaIgPCBhXC1rbmlmZVwtc2hhcGVkXC1zbWFsbFwtYm9hdDsKK+SRiCA8IG1lYXRcLXRvXC1vZmZlclwtZm9yXC13b3JzaGlwOwor5ryi5Lq6IDwgaGFuXC1jaGluZXNlXC1wZXJzb25cfHBlb3BsZTsKK+SNryA8IGdhb3RcLXdpdGhcLWRpZmZlcmVudFwtaG9ybnM7CivkjaIgPCBuZXR0ZWRcLXZlaW5lZFwtd2luZG93XC1zaWxsOwor5IufIDwgdGhlXC13ZWlnaHRcLW9uXC1hXC1zdGVlbHlhcmQ7CivkirYgPCBhXC1yb3BlXC1mb3JcLWxlYWRpbmdcLWNhdHRsZTsKK+S4lueVjOihm+eUn+e1hOe5lCA8IHdvcmxkXC1oZWFsdGhcLW9yZ2FuaXphdGlvbjsKK+S8uuapnyA8IHRvXC13YXRjaFwtZm9yXC1vbmUnJ3NcLWNoYW5jZTsKK+SJlyA8IGFcLXJlY2VwdGFjbGVcLW9yXC1jb250YWluZXI7CivkhLggPCBncmFpbnNcLXByb2R1Y2luZ1wtbm9cLWZydWl0Owor5ISSIDwgcmlwZW5pbmdcLW9mXC1wYWRkeVwtb3JcLXJpY2U7Civkg4EgPCB1bmV2ZW5cLW9yXC1ydWdnZWRcLXRlcnJhaW5zOwor5IGUIDwgYmlnXC1leWVzXC1wcm90dWJlcmFudFwtZXllczsKK+O/sCA8IGR1cmFibGVcLWFuZFwtc29saWRcLWxlYXRoZXI7CivpoLjpg6ggPCB0aGVcLW5lY2tcLWFyZWFcLW9mXC10aGVcLWJvZHk7Civjv4IgPCBvYnN0cmFjdGlvblwtb2ZcLXRoZVwtYm93ZWxzOwor4761IDwgYVwtZGFya1wtY29sb3JlZFwtYmlydGhcLW1hcms7CivjvpwgPCB3ZWFrXC1icmVhdGhcLW9mXC1hXC1zaWNrXC1tYW47Civjvb4gPCBhXC1raW5kXC1vZlwtd29tYW4nJ3NcLWRpc2Vhc2U7CivpgJroqIroh6rli5XljJYgPCBjb21tdW5pY2F0aW9uc1wtYXV0b21hdGlvbjsKK+O4siA8IGFcLWtpbmRcLW9mXC1tb3VudGFpblwtY2F0dGxlOwor47evIDwgc21va2VcLWFuZFwtZHVzdFwtZXZlcnl3aGVyZTsKK+O2uiA8IHRoZVwtbGlnaHRcLW9yXC1nbG93XC1vZlwtZmlyZTsKK+O1vSA8IHRoZVwtc3RyZW5ndGhcLW9mXC1hXC1jdXJyZW50Owor47GlIDwgdGhlXC1ldmlsXC1zcGlyaXRzXC1jb21lXC1vdXQ7CivjsKYgPCB0b1wtYnJlYXRoXC13aXRoXC1tb3V0aFwtb3BlbjsKK+OwlCA8IGFcLWtpbmRcLW9mXC1lZGlibGVcLW11c2hyb29tOwor47COIDwgYVwtd29vZGVuXC1wZXN0bGVcLW9yXC1yYW1tZXI7CivjrZsgPCBhXC1raW5kXC1vZlwtY2xpbWJpbmdcLXBsYW50czsKK+OpoCA8IGFcLWZpZXJjZVwtb3JcLWJsb29keVwtYmF0dGxlOwor46abIDwgdG9cLXdhbGtcLWluXC1hXC1jb21wb3NlZFwtd2F5Owor6Z2i6Ieo5Zuw6ZujIDwgdG9cLWJlXC1mYWNlZFwtd2l0aFwtcHJvYmxlbXM7Civog4zlvbEgPCBhXC12aWV3XC1vZlwtc29tZWJvZHknJ3NcLWJhY2s7CivjoJ0gPCBsb2Z0eVwtYW5kXC1zdGVlcFwtbW91bnRhaW5zOwor46CQIDwgaGlnaFwtYW5kXC1wb2ludGVkXC1tb3VudGFpbjsKK+OemiA8IHRvXC1waWxlXC11cFwtbGF5ZXJcLWJ5XC1sYXllcjsKK+OcryA8IGFcLXdvcmRcLXRvXC1kZXNpZ25hdGVcLXdvbWFuOwor45yuIDwgdG9cLWdvXC1iZXlvbmRcLW5vcm1hbFwtbGltaXQ7CivkuI3li5nmraPmpa0gPCBub3RcLWVuZ2FnZVwtaW5cLWhvbmVzdFwtd29yazsKK+OakyA8IHRpZVwtYmVhbXNcLW9mXC1hXC1zbWFsbFwtYm9hdDsKK+eLoeiztCA8IHRvXC1kZW55XC1cKHRocm91Z2hcLXNvcGhpc21cKTsKK+OYjCA8IHRvXC1sYXVnaFwtd2l0aG91dFwtc3RvcHBpbmc7Civjl6YgPCBhXC1sb3VkXC1hbmRcLWNvbmZ1c2VkXC1ub2lzZTsKK+OXmiA8IHZleGluZ2x5XC12ZXJib3NlXC1vclwtd29yZHk7Civjl5UgPCB0aGVcLWNyb3dpbmdcLW9mXC1hXC1waGVhc2FudDsKK+OWhCA8IHNvdW5kXC1vZlwtY2FsbGluZ1wtY2hpY2tlbnM7CivjlZogPCBjbGF3c1wtb2ZcLWJpcmRzXC1vclwtYW5pbWFsczsKK+aEm+eQhuS4jeeQhiA8IGxvb2tcLWNvbGRcLWFuZFwtaW5kaWZmZXJlbnQ7CivjkLMgPCBoaWdoXC1hbmRcLWxldmVsXC1vblwtdGhlXC10b3A7Civororos6MgPCBzZWxsXC1vZmZcLVwob25lJydzXC1wcm9wZXJ0eVwpOwor5LiL5bel5aSrIDwgdG9cLXB1dFwtaW5cLXRpbWVcLWFuZFwtZW5lcmd5Owor5rG66LO9IDwgZmluYWxzXC1cKG9mXC1hXC1jb21wZXRpdGlvblwpOwor5p2/5pu4IDwgd3JpdGluZ1wtb25cLXRoZVwtYmxhY2tib2FyZDsKK+ePgOaWryA8IHBlcnRoXC1cKGNpdHlcLWluXC1hdXN0cmFsaWFcKTsKK+aUueWWhOmAmuioiiA8IHRvXC1pbXByb3ZlXC1jb21tdW5pY2F0aW9uczsKK+e4veWPg+isgOmVtyA8IFwobWlsaXRhcnlcKVwtY2hpZWZcLW9mXC1zdGFmZjsKK+aEm+aGkCA8IHNob3dcLXRlbmRlclwtYWZmZWN0aW9uXC1mb3I7CivmmrTmvLIgPCByaXNlXC1zdWRkZW5seVwtYW5kXC1zaGFycGx5Owor6YyE5YWxIDwgdG9cLXRha2VcLWRvd25cLWFcLWNvbmZlc3Npb247CivmnKzlrrYgPCBhXC1tZW1iZXJcLW9mXC10aGVcLXNhbWVcLWNsYW47CivpnaLoh6ggPCBiZVwtZmFjZWRcLXdpdGhcLVwoYVwtcHJvYmxlbVwpOwor6IOM5L+h5qOE576pIDwgYnJlYWtcLWZhaXRoXC13aXRoXC1zb21lYm9keTsKK+WAvOW+l+azqOaEj+eahOaYryA8IGl0JydzXC13b3J0aFwtbm90aW5nXC10aGF0XC5cLlwuOwor6Leo5ZyL5YWs5Y+4IDwgdHJhbnNuYXRpb25hbFwtY29ycG9yYXRpb247Civml6XmnKzkurogPCBqYXBhbmVzZVwtcGVyc29uXC1vclwtcGVvcGxlOwor5YWx5ZKM6buo5Lq6IDwgYVwtcmVwdWJsaWNhblwtcGFydHlcLW1lbWJlcjsKK+axoOa5ryA8IGxhcmdlXC1wb29sXC1pblwtYVwtYmF0aGhvdXNlOwor54Sh6ZmQ5pyfIDwgdW5saW1pdGVkXC1cKHRpbWVcKVwtZHVyYXRpb247CivnjY7li7UgPCByZXdhcmRcLVwoYXNcLWVuY291cmFnZW1lbnRcKTsKK+mghuW3riA8IFwodHJhZGVcLW9yXC1idWRnZXRcKVwtc3VycGx1czsKK+eSsOeQg+WumuS9jeezu+e1sSA8IGdsb2JhbFwtcG9zaXRpb25pbmdcLXN5c3RlbTsKK+WInemBuCA8IFwodXNcKVwtcHJpbWFyaWVzXC1cKGVsZWN0aW9uXCk7CivluJXomK3ljaEgPCBwYWxhbmthXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivloLHpircgPCBzdWJtaXRcLWFuXC1leHBlbnNlXC1hY2NvdW50Owor6JyAIDwgbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+a0myA8IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+WPlCA8IGZhdGhlcicnc1wteW91bmdlclwtYnJvdGhlcjsKK+e1uSA8IGtpbmRcLW9mXC10aGlja1wtc3RpZmZcLXNpbGs7CivnvakgPCBiYXNrZXRcLWZvclwtY2F0Y2hpbmdcLWZpc2g7CivlpLcgPCBhbmNpZW50XC1iYXJiYXJpYW5cLXRyaWJlczsKK+egsCA8IHNvdW5kXC1vZlwtY3Jhc2hpbmdcLXN0b25lczsKK+WTjiA8IGludGVyamVjdGlvblwtb2ZcLXN1cnByaXNlOwor5pyUIDwgZmlyc3RcLWRheVwtb2ZcLWx1bmFyXC1tb250aDsKK+aPoyA8IHB1dFwtdGhpbmdzXC11bmRlclwtY2xvdGhlczsKK+W1iyA8IG9tZWlcLW1vdW50YWluXC1pblwtc2ljaHVhbjsKK+e8iSA8IHRvXC1zZXdcLWluXC1jbG9zZVwtc3RpdGNoZXM7CivlmbYgPCB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uczsKK+aOsCA8IHRvXC1icmVha1wtd2l0aFwtYm90aFwtaGFuZHM7CivpnIYgPCBhXC1zdWRkZW5cLXBlYWxcLW9mXC10aHVuZGVyOwor5ryzIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGVuYW47Civlt7MgPCBzaXh0aFwtb2ZcLXR3ZWx2ZVwtYnJhbmNoZXM7Civll50gPCBjYWNrbGluZ1wtb2ZcLWZvd2xzXC10b1wtZ2FnOwor5aeYIDwgaWxsaWNpdFwtc2V4dWFsXC1yZWxhdGlvbnM7CivpnI8gPCBmYWxsaW5nXC1vZlwtc25vd1wtYW5kXC1yYWluOwor6YO4IDwgY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor5ZGmIDwgdGhlXC1ibGVhdGluZ1wtb2ZcLXRoZVwtZGVlcjsKK+aOriA8IHRvXC1iZWFyXC1vblwtdGhlXC1zaG91bGRlcnM7CivojoYgPCBhXC1raW5kXC1vZlwtbGVnZW5kYXJ5XC10cmVlOwor6ZihIDwgZm9vdHBhdGhzXC1iZXR3ZWVuXC1maWVsZHM7CivpuKogPCBzcGVjaWVzXC1vZlwtdGFpd2FuXC1waWdlb247CivmsJAgPCBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXRyaWJlOwor5ZGkIDwgcHVyaW5lXC1pblwtY2hlbVwuXC1jb21wb3VuZDsKK+WslyA8IHN1Y2Nlc3Npb25cLXRvXC10aGVcLXRocm9uZTsKK+injyA8IG1lZXRcLW9yXC1zZWVcLXVuZXhwZWN0ZWRseTsKK+a/riA8IGNvdW50eVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mDtCA8IGNvdW50eVwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+i9viA8IGxvd1wtcmVhclwtcG9ydGlvblwtb2ZcLWNhcnQ7CivnqJ4gPCBncmFpblwtcmVhZHlcLWZvclwtZ3JpbmRpbmc7Civpg6cgPCBjb3VudHlcLWluXC1odWJlaVwtcHJvdmluY2U7CivoubwgPCB3ZWJiZWRcLWZlZXRcLW9mXC13YXRlcmZvd2w7CivnlJEgPCBib2lsZXJcLWZvclwtc3RlYW1pbmdcLXJpY2U7CivlppcgPCB3aWZlXC1vZlwtbW90aGVyJydzXC1icm90aGVyOwor5rWgIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHViZWk7Civps5QgPCBzd2ltbWluZ1wtYmxhZGRlclwtb2ZcLWZpc2g7Civnr4wgPCBhbmNpZW50XC1tdXNpY1wtaW5zdHJ1bWVudDsKK+enlSA8IGVtcHR5XC1ncmFpblwtb3JcLXJpY2VcLWh1c2s7CivnkJogPCBvcm5hbWVudGFsXC1nZW1zXC1mb3JcLWJlbHQ7CivpsrUgPCBjcnlwdG9icmFuY2h1c1wtamFwb25pY3VzOwor6ImoIDwgbG9uZ1wtYW5kXC1uYXJyb3dcLXdhclwtYm9hdDsKK+a2kSA8IHJpdmVyXC1pblwtc2hhbnNpXC1wcm92aW5jZTsKK+mbqSA8IG9mZmVyXC1zYWNyaWZpY2VcLWZvclwtcmFpbjsKK+S9viA8IGFcLXJvd1wtb3JcLWZpbGVcLW9mXC1kYW5jZXJzOwor57yCIDwgdGhlXC13b29mXC1vZlwtYVwtd292ZW5cLWl0ZW07CivoibQgPCB0aGVcLWNvdW50ZW5hbmNlXC1jaGFuZ2luZzsKK+a7jyA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlYmVpOwor5Lq65rCR5bmjIDwgY2hpbmVzZVwtdW5pdFwtb2ZcLWN1cnJlbmN5Owor6aas5Y+v56aP6Z+zIDwgZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1tYXJrOwor5rWB5rCT572qIDwgdGhlXC1jcmltZVwtb2ZcLWhvb2xpZ2FuaXNtOwor5Z+O6ZecIDwgYXJlYVwtb3V0c2lkZVwtYVwtY2l0eVwtZ2F0ZTsKK+mMhOmfs+apnyA8IFwodGFwZVwpXC1yZWNvcmRpbmdcLW1hY2hpbmU7CivpgYvnrpcgPCBcKG1hdGhlbWF0aWNhbFwpXC1vcGVyYXRpb247Civlt57plbcgPCBnb3Zlcm5vclwtXChvZlwtYVwtdXNcLXN0YXRlXCk7Civmr4/lubTkuIDluqYgPCBvbmNlXC1hXC15ZWFyXC1cKGV2ZXJ5XC15ZWFyXCk7Civln5/lkI3oqLvlhoogPCBkb21haW5cLW5hbWVcLXJlZ2lzdHJhdGlvbjsKK+S7o+S5i+S7pSA8IFwoaGFzXC1iZWVuXClcLXJlcGxhY2VkXC13aXRoOwor6YOo5bGsIDwgYWZmaWxpYXRlZFwtdG9cLWFcLW1pbmlzdHJ5Owor5byV5pOOIDwgZW5naW5lXC1cKHRyYW5zbGl0ZXJhdGlvblwpOwor5YW16LK056We6YCfIDwgc3BlZWRcLWlzXC1wcmVjaW91c1wtaW5cLXdhcjsKK+iuiuaIsuazlSA8IHBlcmZvcm1cLWNvbmp1cmluZ1wtdHJpY2tzOwor5aSa6YKK5ZCI5L2cIDwgbXVsdGlsYXRlcmFsXC1jb29wZXJhdGlvbjsKK+eZvOihjOmhjSA8IFwocGVyaW9kaWNhbFwpXC1jaXJjdWxhdGlvbjsKK+eZu+iomCA8IHRvXC1yZWdpc3RlclwtXChvbmUnJ3NcLW5hbWVcKTsKK+WNgeS4ieaXpSA8IHRoaXJ0aWV0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivluYDpppblrprnlYznrKYgPCBzdGFydFwtb2ZcLWZyYW1lXC1kZWxpbWl0ZXI7CivmipXmlL7luILloLQgPCB0b1wtcHV0XC1zdGhcLW9uXC10aGVcLW1hcmtldDsKK+apn+e1hCA8IGZsaWdodFwtY3Jld1wtXChvblwtYVwtcGxhbmVcKTsKK+m3niA8IHRoZVwtdHVycXVvaXNlXC1raW5nZmlzaGVyOwor5LiL5Y2K6LqrIDwgbG93ZXJcLWhhbGZcLW9mXC1vbmUnJ3NcLWJvZHk7CivptYEgPCBteWN0aWNvcmF4XC1wcmFzaW5vc2NlbGVzOwor6I2S54Sh5Lq654WZIDwgZGVzb2xhdGVcLWFuZFwtdW5pbmhhYml0ZWQ7CivprrAgPCBhXC1zbWFsbFwta2luZFwtb2ZcLXN0dXJnZW9uOwor6YG85a+nIDwgbGlhb25pbmdcLXByb3ZpbmNlXCxcLWNoaW5hOwor6augIDwgc2hhdmVcLWhlYWRcLWFzXC1wdW5pc2htZW50Owor6aiVIDwgbmFtZVwtb2ZcLWFcLWZhYnVsb3VzXC1ob3JzZTsKK+eFp+W4uCA8IFwoYnVzaW5lc3NcLFwtZXRjXClcLWFzXC11c3VhbDsKK+mfgiA8IGFcLXNhZGRsZVwtZmxhcFwuXC10cmFwcGluZ3M7Civlm6DnibnntrLmj5DkvpvllYYgPCBpbnRlcm5ldFwtc2V2aWNlXC1wcm92aWRlcjsKK+e0hOe/sOemj+mfsyA8IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtam9objsKK+mZtCA8IGFcLXBhcmFwZXRcLW9uXC1hXC1jaXR5XC13YWxsOwor6ZekIDwgd2FsbFwtYXJvdW5kXC1tYXJrZXRcLXBsYWNlOwor5Y2w5q2Q6Kqe6KiAIDwgaW5kb1wtZXVyb3BlYW5cLVwobGFuZ3VhZ2VcKTsKK+aSq+aRuCA8IGdlbnRseVwtY2FyZXNzXC1hbmRcLXN0cm9rZTsKK+WIh+aWtyA8IGN1dFwtb2ZmXC1cKGFcLXN1cHBseVwsXC1ldGNcLlwpOwor57ay57Wh5pON5L2c57O757WxIDwgbmV0d29ya1wtb3BlcmF0aW5nXC1zeXN0ZW07Civnv5Lku6XngrrluLggPCBiZVwtYWNjdXN0b21lZFwtb3JcLXVzZWRcLXRvOwor5YW16I2S6aas5LqCIDwgdHVybW9pbFwtYW5kXC1jaGFvc1wtb2ZcLXdhcjsKK+W7uuWItiA8IG9yZ2FuaXphdGlvbmFsXC1zdHJ1Y3R1cmU7CivkuI3mib/oqo3kuLvnvqkgPCBwb2xpY3lcLW9mXC1ub25yZWNvZ25pdGlvbjsKK+mAgOW9uSA8IHJldGlyZVwtZnJvbVwtdGhlXC1taWxpdGFyeTsKK+mBleWPjSA8IHRvXC12aW9sYXRlXC1cKGFcLWxhd1wsXC1lXC5nXC5cKTsKK+W5q+W7miA8IGhlbHBcLWluXC10aGVcLW1lc3NcLWtpdGNoZW47CivkuI3li5XogbLoibIgPCBtYWludGFpblwtb25lJydzXC1jb21wb3N1cmU7Civmta7pu57pgYvnrpcgPCBmbG9hdGluZ1wtcG9pbnRcLW9wZXJhdGlvbjsKK+i0kSA8IFw8YWJicnZcPlwtamlhbmd4aVwtcHJvdmluY2U7Civoo5znqIUgPCBwYXlcLWFcLXRheFwtb25lXC1oYXNcLWV2YWRlZDsKK+iooSA8IHRvXC1jaGFudFwtdG9cLW1vYW5cLXRvXC1zaWdoOwor6KWy5pOKIDwgXChtYWtlXC1hXClcLXN1cnByaXNlXC1hdHRhY2s7CivlhafmlL/pg6jplbcgPCBtaW5pc3Rlclwtb2ZcLXRoZVwtaW50ZXJpb3I7Civnmb3mt6ggPCBcKG9mXC1za2luXClcLWZhaXJcLWFuZFwtY2xlYXI7Civom4EgPCBwb21wb25pYVwtbWFjdWxhdGlvY29sbGlzOwor5beh5p+lIDwgdG9cLWdvXC1hcm91bmRcLWFuZFwtaW5zcGVjdDsKK+iYgCA8IGZhbGxpbmdcLWxlYXZlc1wtYW5kXC1iYXJrczsKK+iXuiA8IHJ1c2hcLXVzZWRcLWluXC1tYWtpbmdcLW1hdHM7CivlhbXmm7ggPCBhXC1ib29rXC1vblwtdGhlXC1hcnRcLW9mXC13YXI7Civoj7QgPCBzbWFsbFwtYnVkZGhpc3RcLW1vbmFzdGVyeTsKK+m8u+mHneeZguazlSA8IG5vc2VcLWFjdXB1bmN0dXJlXC10aGVyYXB5Owor6I6UIDwgZnJpdGlsbGFyaWFcLXZlcnRpY2lsbGF0YTsKK+iMvCA8IGNocnlzYW50aGVtdW1cLWNvcm9uYXJpdW07CivoiaUgPCBhblwtb2FyXC1vclwtcGFkZGxlXC5cLXRvXC1yb3c7CivnlKLpircgPCBwcm9kdWN0aW9uXC1hbmRcLW1hcmtldGluZzsKK+iGmSA8IGNhbGxvdXNcLXNraW5cLW9uXC10aGVcLWZlZXQ7CivohZwgPCBxdWlja2VuaW5nXC1vZlwtdGhlXC1mb2V0dXM7CivogrMgPCB0aGVcLWNvcm5lcnNcLW9mXC10aGVcLW1vdXRoOwor6ZeM5bC+IDwgYXBwZW5kaXhcLVwoaW5cLWh1bWFuXC1ib2R5XCk7Civnv5sgPCBsb29rXC1vZlwtcnVtcGxlZFwtZmVhdGhlcnM7CivnvZ0gPCBuZXRcLWZvclwtY2F0Y2hpbmdcLXJhYmJpdHM7CivluYXlk6EgPCBhXC1jb3VudHJ5JydzXC1zdXJmYWNlXC1hcmVhOwor6Jmb5pOs55Kw5aKDIDwgdGhlb3JoZXRpY2FsXC1lbnZpcm9ubWVudDsKK+aSpeS7mCA8IGFwcHJvcHJpYXRlXC1zdW1cLW9mXC1tb25leTsKK+e3jCA8IHRhc3NlbHNcLWhhbmdpbmdcLWZyb21cLWhhdDsKK+WvhuWIh+azqOaEjyA8IGNsb3NlXC1hdHRlbnRpb25cLVwodG9cLXN0aFwpOwor5ZyL54efIDwgc3RhdGVcLXJ1blwtXChjb21wYW55XCxcLWV0Y1wpOwor5ZyW5YOP55So5oi25LuL6Z2iIDwgZ3JhcGhpY2FsXC11c2VyXC1pbnRlcmZhY2U7CivnrbggPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1ob25hbjsKK+mdouWaruWwjeixoeiqnuiogCA8IG9iamVjdFwtb3JpZW50ZWRcLWxhbmd1YWdlOwor5pCN5aSxIDwgYVwtXChmaW5hbmNpYWxcLFwtZXRjXC5cKVwtbG9zczsKK+i+puWFrCA8IGhhbmRsZVwtb2ZmaWNpYWxcLWJ1c2luZXNzOwor5qWK55m+57+w5aSn5a24IDwgYnJpZ2hhbVwteW91bmdcLXVuaXZlcnNpdHk7CivnkqAgPCBhXC1waWVjZVwtb2ZcLXByZWNpb3VzXC1qYWRlOwor5462IDwgbmFtZVwtb2ZcLW9uZVwta2luZFwtb2ZcLWphZGU7CivnjZ4gPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWRvZzsKK+S4jeaLmOS4gOagvCA8IG5vdFwtc3RpY2tcLXRvXC1vbmVcLXBhdHRlcm47CivkvZnpnIcgPCBcKGVhcnRocXVha2VcKVwtYWZ0ZXJzaG9ja3M7CivnlZrnrpUgPCBhXC1iYW1ib29cLW9yXC13aWNrZXJcLXNjb29wOwor54GoIDwgdGhlXC1yaXZlclwtZ2FuXC1pblwtamlhbmd4aTsKK+a/siA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1bmFuOwor5a6M5YWo5oeC5b6XIDwgdG9cLXVuZGVyc3RhbmRcLWNvbXBsZXRlbHk7CivnqoHpoa8gPCBtYWtlXC1zb21ldGhpbmdcLXN0YW5kXC1vdXQ7CivkuI3lubPliYfps7QgPCB3aGVyZVwtdGhlcmVcLWlzXC1pbmp1c3RpY2U7CivmtKcgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1ob25hbjsKK+aguOS4jeaTtOaVoyA8IG51Y2xlYXJcLW5vbnByb2xpZmVyYXRpb247Civmj6HlipsgPCBcKHN0cmVuZ3RoXC1vZlwtb25lJydzXClcLWdyaXA7CivmqKcgPCB6YW50aG94eWx1bVwtYWlsYW50aG9pZGVzOwor5qakIDwgcGVyY2hcLWZvclwtZm93bHNcLXJvb3N0XC1vbjsKK+WFp+aUv+mDqCA8IG1pbmlzdHJ5XC1vZlwtdGhlXC1pbnRlcmlvcjsKK+WFseWQjOmWmOmBk+S7i+mdoiA8IGNvbW1vblwtZ2F0ZXdheVwtaW50ZXJmYWNlOwor5pO66ISr5Y2x5qmfIDwgdG9cLWJyZWFrXC1vdXRcLW9mXC1hXC1jcmlzaXM7CivmoIIgPCBhXC1raW5kXC1vZlwtZXZlcmdyZWVuXC10cmVlOwor5a+M5biD6LO054m5IDwgZnVsbGJyaWdodFwtXChzY2hvbGFyc2hpcFwpOwor5pehIDwgY2hva2VcLW9uXC1zb21ldGhpbmdcLWVhdGVuOwor6aas6KOhIDwgbWFsaVwtXChuYW1lXC1vZlwtYVwtY291bnRyeVwpOwor5pKLIDwgdG9cLXJ1YlwtYmV0d2VlblwtdGhlXC1oYW5kczsKK+eXheaFiyA8IG1vcmJpZFwtb3JcLWFibm9ybWFsXC1zdGF0ZTsKK+aOp+WItiA8IHRvXC1cKGhhdmVcKVwtY29udHJvbFwtXChvdmVyXCk7CivmkqXkuoLlj43mraMgPCBicmluZ1wtb3JkZXJcLW91dFwtb2ZcLWNoYW9zOwor5oOMIDwgdG9cLWJlYXJcLWFcLWdydWRnZVwtYWdhaW5zdDsKK+S9s+iDvSA8IGNhbm9uXC1cKGphcGFuZXNlXC1jb21wYW55XCk7Civnl4XlrrYgPCBhXC1wYXRpZW50XC1hbmRcLWhpc1wtZmFtaWx5Owor55aR5oORIDwgXChhXC1zZW5zZVwtb2ZcKVwtdW5jZXJ0YWludHk7CivltLYgPCBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1oaWxsOwor5bSBIDwgYVwtcGxhY2VcLWluXC10YWl3YW5cLXRhaW5hbjsKK+WwniA8IGZ1ZWxcLXVzZWRcLWZvclwtc2FjcmlmaWNlczsKK+eEoem7qOa0viA8IHBvbGl0aWNhbGx5XC11bmFmZmlsaWF0ZWQ7CivmiZPniYwgPCB0b1wtcGxheVwtbWFoam9uZ1wtb3JcLWNhcmRzOwor5aWeIDwgdGhlXC1zdHJpZGVcLW1hZGVcLWJ5XC1hXC1tYW47CivlpJcgPCB0b1wtdHVyblwtb3Zlclwtd2hlblwtYXNsZWVwOwor6K6K6Zu756uZIDwgXCh0cmFuc2Zvcm1lclwpXC1zdWJzdGF0aW9uOwor5YGa5a6iIDwgdG9cLWJlXC1hXC1ndWVzdFwtb3JcLXZpc2l0b3I7CivlronnrKzmlq/lsbEgPCB0aGVcLWFuZGVzXC1tb3VudGFpblwtcmFuZ2U7Civlh5wgPCBzaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor5YOwIDwgYW5jaWVudFwtYWJvcmlnaW5hbFwtdHJpYmU7Civnmb7nhYnmiJDpi7wgPCBiZVwtdGVtcGVyZWRcLWludG9cLWFcLXN0ZWVsOwor6KGM5L2/IDwgZXhlcmNpc2VcLVwoYVwtcmlnaHRcLFwtZXRjXC5cKTsKK+ethuaMuiA8IFwoc3RhbmRpbmdcKVwtdmVyeVwtc3RyYWlnaHQ7CivliIbkvYjlvI/ntZDmp4sgPCBkaXN0cmlidXRlZFwtYXJjaGl0ZWN0dXJlOwor5a6J56WeIDwgY2FsbVwtXChzb290aGVcKVwtdGhlXC1uZXJ2ZXM7CivogbPogqkgPCB0b1wtc2hydWdcLW9uZScnc1wtc2hvdWxkZXJzOwor5LqDIDwgbmFtZVwtb2ZcLWFcLWtpbmRcLW9mXC1hbmltYWw7CivkubogPCBwYWludGluZ1wtdG9vbFwtcGxhY2VcLW5hbWU7CivkubYgPCBrb3JlYW5cLXBsYWNlXC1uYW1lXC1waG9saGE7CivktYIgPCB0b1wtZ3JpbmRcLXdoZWF0XC10b1wtcG93ZGVyOwor5LKzIDwgYmlyZHNcLWZseWluZ1wtdXBcLWFuZFwtZG93bjsKK+Wci+WLmeasoeWNvyA8IHVuZGVyXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZTsKK+SymyA8IGFuXC1hbmNpZW50XC1uYW1lXC1mb3JcLXR1bmE7CivksoQgPCBhXC1raW5kXC1vZlwtZmlpc2hcLWluXC1vY2VhbjsKK+SwjSA8IGFcLWtpbmRcLW9mXC1kYXJrXC1yZWRcLXBhaW50Owor5LCGIDwgYmVhdXRpZnVsXC1hbmRcLWhhaXJ5XC1tYW5lOwor5K+WIDwgdGhlXC1tdXNjbGVzXC1vZlwtdGhlXC10aGlnaDsKK+WNiuS/oeWNiueWkSA8IGhhbGZcLWJlbGlldmVcLFwtaGFsZlwtZG91YnQ7CivkrLMgPCBjYWtlc1wtbWFkZVwtb2ZcLXJpY2VcLWZsb3VyOwor5KuvIDwgdG9cLXRha2VcLWFcLWNhc3VhbFwtbG9va1wtYXQ7Civmt7HnqbogPCBkZWVwXC1zcGFjZVwtXChvdXRlclwtc3BhY2VcKTsKK+SqgCA8IGtub3duXC10b2dldGhlclwtYXNcLXNhZGRsZTsKK+SokiA8IHNvdW5kXC1vZlwtdGhlXC13YXRlclwtZHJvcHM7CivllJDntI0gPCB0YW5uZXJcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor5KaoIDwgYVwtZG9vclwtY3VydGFpblwtb3JcLXNjcmVlbjsKK+SkryA8IGNvbnRhaW5lclwtZm9yXC10aGlja1wtc291cDsKK+acqOS5g+S8iiA8IG11bW15XC1cKHByZXNlcnZlZFwtY29ycHNlXCk7CivkoY0gPCB0aGVcLWxpbmNoXC1waW5cLW9mXC1hXC1zaGVlbDsKK+SflyA8IHRvXC1zdGFuZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5J+DIDwgdG9cLW1vdmVcLW9yXC1tYXJjaFwtc3dpZnRseTsKK+SatiA8IHRvXC1zY29sZFwtaW5cLWFcLWxvdWRcLXZvaWNlOwor5JmcIDwgbGVnZW5kYXJ5XC1tb3VudGFpblwtZGVpdHk7CivkmYggPCBhXC1sb29zZVwtZ2FybWVudFwtb3JcLWNsb2FrOwor5JmHIDwgY2xvdGhlc1wtb2ZcLWNvYXJzZVwtZmFicmljOwor5JeCIDwgZGllbXljdHlsdXNcLXB5cnJob2dhc3RlcjsKK+SUoyA8IGFcLXRyaWJlXC1pblwtYW5jaWVudFwtdGltZXM7Civkk7QgPCBlZGlibGVcLWZ1bmd1c1wtZnJvbVwtdHJlZXM7CivkkY4gPCBzb3VwXC1vZlwtcGlnJydzXC1pbnRlc3RpbmVzOwor5JC7IDwgYmlnXC1waWVjZXNcLW9mXC1kcmllZFwtbWVhdDsKK+SQuSA8IHBlcnNlcnZlZFwtYW5kXC1kcmllZFwtbWVhdDsKK+SQsCA8IHRvXC1vZmZlclwtZm9vZFwtYXNcLXRyaWJ1dGU7CivlpJbkuqTpg6ggPCBmb3JlaWduXC1hZmZhaXJzXC1taW5pc3RyeTsKK+SQgiA8IGZhdFwtb2ZcLWFuaW1hbHNcLW9yXC1wbGFudHM7CivkjrUgPCB0b1wtbG9va1wtc3RyYWlnaHRcLWZvcndhcmQ7CivkipAgPCBmbHVmZnlcLXN0dWZmZWRcLWR1bXBsaW5nczsKK+SKjSA8IHRoaWNrXC1jb25nZWVcLW9yXC1wb3JyaWRnZTsKK+aMgeS4jeWQjOaUv+imiyA8IFwocG9saXRpY2FsbHlcKVwtZGlzc2VudGluZzsKK+SHjyA8IHRvXC1waWxlXC1vbmVcLXVwb25cLWFub3RoZXI7CivkhJwgPCBoYXBwaW5lc3NcLWFuZFwtd2VsbFwtYmVpbmc7CivkhJYgPCB1c2VkXC1pblwtbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SDoiA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtbG9mdHk7CivkgYcgPCB0b1wtbG9va1wtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+SAqyA8IG5hcnJvd1wtYW5kXC1kaW1cLWV5ZVwtc2lnaHQ7Civjv7ogPCBqdXR0aW5nXC1vblwtdGhlXC1lcGlkZXJtaXM7CivlkYjoq4sgPCB0b1wtc3VibWl0XC1cKHRvXC1zdXBlcmlvcnNcKTsKK+O9kiA8IHRoZVwtY2hpbGRyZW5cLW9mXC1hXC1zaXN0ZXI7CivjvL8gPCB0aGVcLWJyaWNrXC13YWxsXC1vZlwtYVwtd2VsbDsKK+O8myA8IGxvbmdcLW5lY2tlZFwtd2luZVwtdmVzc2VsczsKK+O7qiA8IGFcLWtpbmRcLW9mXC1qYWRlXC1maW5lXC1qYWRlOwor47aFIDwgZHJpZWRcLXVwXC1tb3VudGFpblwtY3JlZWtzOwor5LiK6Ki0IDwgYXBwZWFsXC1cKGFcLWp1ZGljaWFsXC1jYXNlXCk7CivjtaIgPCBhXC1tYXJzaFwtaW5cLWFuY2llbnRcLXRpbWVzOwor47SwIDwgYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+aHt+W/tSA8IHRvXC1jaGVyaXNoXC10aGVcLW1lbW9yeVwtb2Y7Civjs40gPCBhXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OKIDwgdGhlXC1mbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+OyiiA8IHRvXC11bmRlcnN0YW5kXC10aG9yb3VnaGx5Owor47C+IDwgc29uZ3NcLW9mXC10aGVcLXBlb3BsZVwtb2ZcLealmjsKK+OwvSA8IHRvXC1leGVydFwtb25lc2VsZlwtdG9cLXllbGw7Civjr6sgPCBhXC13YXR0bGVcLW9yXC1iYW1ib29cLWZlbmNlOwor466mIDwgYnJhbmNoZXNcLWdyb3dpbmdcLXVwd2FyZHM7Civnibnpu54gPCBjaGFyYWN0ZXJpc3RpY1wtXChmZWF0dXJlXCk7CivlrZfmr40gPCBsZXR0ZXJcLVwob2ZcLXRoZVwtYWxwaGFiZXRcKTsKK+OqmyA8IHRvXC1wb3VuZFwtcm9ja3NcLXRvXC1waWVjZXM7CivjqpkgPCB0b1wtZ29cLXRvXC10aGVcLXZlcnlcLXNvdXJjZTsKK+OprSA8IHRvXC1kaXN0dXJiXC1vclwtdG9cLWFnaXRhdGU7Civmi5TngavnvZDlhZIgPCBkZXRhY2hhYmxlXC1zdG92ZVwtY2hpbW5leTsKK+WQjOisgCA8IHRvXC1jb25zcGlyZVwtd2l0aFwtc29tZW9uZTsKK+OhqiA8IHRoZVwtdmFybmlzaFwtb25cLXRoZVwtZmxvb3I7CivjoacgPCB0b1wtc3RyZXRjaFwtb3BlblwtcGFpbnRpbmc7CivjoIcgPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLXJpZGdlOwor5qGD5ZySIDwgdGFveXVhblwtXChjaXR5XC1pblwtdGFpd2FuXCk7CivjnL8gPCBuYW1lXC1vZlwtYVwtZmlzaFwtaW5cLWxlZ2VuZDsKK+axn+mdoiA8IHRoZVwtc3VyZmFjZVwtb2ZcLXRoZVwtcml2ZXI7Civjl6kgPCBzb3VuZFwtb2ZcLWVuZHVyZVwtY29sZG5lc3M7Civjl6cgPCB0b1wtc2NvbGRcLXdpdGhcLWxvdWRcLXZvaWNlOwor5Y+k5biM6IeY6KqeIDwgYW5jaWVudFwtZ3JlZWtcLVwobGFuZ3VhZ2VcKTsKK+OToSA8IHRoZVwtbWlkZGxlXC1wYXJ0XC1vZlwtYVwtYm93Owor45CoIDwgYVwta2luZFwtb2ZcLWZpc2hcLWluXC1sZWdlbmQ7CivpgbLmtannlLAgPCBjaGluZXNlXC1kZWZlbnNlXC1taW5pc3RlcjsKK+eikemhjSA8IHRoZVwtdG9wXC1wYXJ0XC1vZlwtYVwtdGFibGV0Owor5Ly05aWPIDwgdG9cLWFjY29tcGFueVwtXChtdXNpY2FsbHlcKTsKK+WMl+a6q+W4tiA8IHRoZVwtbm9ydGhcLXRlbXBlcmF0ZVwtem9uZTsKK+aJk+mbu+ipsSA8IHRvXC1tYWtlXC1hXC10ZWxlcGhvbmVcLWNhbGw7Civlj7Pnv7wgPCBcKHBvbGl0aWNhbGx5XClcLXJpZ2h0XC13aW5nOwor5rWZ5rGfIDwgemhlamlhbmdcLXByb3ZpbmNlXCxcLWNoaW5hOwor5Lq65rCR6Kej5pS+6LuNIDwgcGVvcGxlJydzXC1saWJlcmF0aW9uXC1hcm15Owor6K2Y6KaLIDwga25vd2xlZGdlXC1hbmRcLWV4cGVyaWVuY2U7CivosrfluLMgPCB0b1wtc2hvd1wtcmVzcGVjdFwtXChmb3JcLXNiXCk7Civmmpfnrq0gPCBhdHRhY2tcLWJ5XC1hXC1oaWRkZW5cLWVuZW15Owor5rex5ZyzIDwgc2hlbnpoZW5cLVwoY2l0eVwtaW5cLWNoaW5hXCk7CivnqIvluqYgPCBkZWdyZWVcLVwobGV2ZWxcLW9yXC1leHRlbnRcKTsKK+Wkp+mXnCA8IFwocmVhY2hcLWFcKVwtY3JpdGljYWxcLXBvaW50Owor5b6e5aSW6KGo5L6G55yLIDwgbG9va2luZ1wtZnJvbVwtdGhlXC1vdXRzaWRlOwor6aCt54mIIDwgXChuZXdzcGFwZXInJ3NcKVwtZnJvbnRcLXBhZ2U7CivljYPntbLokKznuLcgPCBsaW5rZWRcLWluXC1jb3VudGxlc3NcLXdheXM7CivmmKXoga8gPCBzcHJpbmdcLWZlc3RpdmVsXC1jb3VwbGV0czsKK+WFrOecvumbu+S/oee2sui3ryA8IHB1YmxpY1wtdGVsZXBob25lXC1uZXR3b3JrOwor5Lqk5o+b6Jmb6Zu76LevIDwgc3dpdGNoZWRcLXZpcnR1YWxcLWNpcmN1aXQ7Civku6XkvoYgPCBzaW5jZVwtXChhXC1wcmV2aW91c1wtZXZlbnRcKTsKK+iTruiKsSA8IGxvdHVzXC1cKGNvbXB1dGVyXC1jb21wYW55XCk7CivkuI3ml6UgPCB3aXRoaW5cLXRoZVwtbmV4dFwtZmV3XC1kYXlzOwor6KuS6KejIDwgXChyZWFjaFwpXC1hblwtdW5kZXJzdGFuZGluZzsKK+egtOWcn+WFuOemriA8IGdyb3VuZFwtYnJlYWtpbmdcLWNlcmVtb255Owor5pWZ5a245qmf5qeLIDwgZWR1Y2F0aW9uYWxcLW9yZ2FuaXphdGlvbjsKK+S4jemBuuS9meWKmyA8IHNwYXJlXC1ub1wtcGFpbnNcLW9yXC1lZmZvcnQ7CivooajnpLrmlazmhI8gPCByZXNwZWN0ZnVsXCxcLXNob3dcLXJlc3BlY3Q7Civok4vnq6AgPCB0b1wtYWZmaXhcLWFcLXNlYWxcLVwodG9cLXN0aFwpOwor5q2i55eb5rOVIDwgbWV0aG9kXC1vZlwtcmVsaWV2aW5nXC1wYWluOwor6Ke46Zu7IDwgdG9cLWdldFwtYW5cLWVsZWN0cmljXC1zaG9jazsKK+S4u+WLlSA8IFwodG9cLXRha2VcLXRoZVwpXC1pbml0aWF0aXZlOwor6Lev5Yqg56aP6Z+zIDwgZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1sdWtlOwor6Ki06KqqIDwgdGVsbFwtXCh0b1wtYW5vdGhlclwtcGVyc29uXCk7CivnuL3ntbEgPCBwcmVzaWRlbnRcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+WgsemgrSA8IG1hc3RoZWFkXC1cKG9mXC1hXC1uZXdzcGFwZXI7CivljZfmspkgPCBuYW5zaGFcLVwoc3ByYXRseVwpXC1pc2xhbmRzOwor6YCa6YGTIDwgXChjb21tdW5pY2F0aW9uc1wpXC1jaGFubmVsOwor5pS/57i+IDwgXChwb2xpdGljYWxcKVwtYWNoaWV2ZW1lbnRzOwor556lIDwgdGFrZVwtZmxlZXRpbmdcLWdsYW5jZVwtYXQ7Civlt54gPCBhZG1pbmlzdHJhdGl2ZVwtZGl2aXNpb247CivlkKcgPCBlbXBoYXRpY1wtZmluYWxcLXBhcnRpY2xlOwor5p+QIDwgY2VydGFpblwtdGhpbmdcLW9yXC1wZXJzb247CivnpaggPCBzbGlwXC1vZlwtcGFwZXJcLW9yXC1iYW1ib287CivogLYgPCB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uOwor5Y6YIDwgdGhvdXNhbmR0aFwtcGFydFwtb2ZcLXRhZWw7Civlva0gPCBuYW1lXC1vZlwtYW5jaWVudFwtY291bnRyeTsKK+iCtCA8IGNvb2tlZFwtb3JcLXByZXBhcmVkXC1tZWF0Owor5L+OIDwgY2hvcHBpbmdcLWJvYXJkXC1vclwtYmxvY2s7Civmt64gPCByaXZlclwtaW5cLWFuaHVpXC1wcm92aW5jZTsKK+WTpiA8IG9oXD9cLXJlYWxseVw/XC1pc1wtdGhhdFwtc29cPzsKK+mUpCA8IGJhbGFuY2VcLXdlaWdodFwtb25cLXNjYWxlOwor5LueIDwgYW5jaWVudFwtdW5pdFwtb2ZcLW1lYXN1cmU7Civoiq0gPCBwbGFudGFpblwtb3JcLWJhbmFuYVwtcGFsbTsKK+ejiiA8IHBpbGVcLW9mXC1yb2Nrc1wtb3JcLXN0b25lczsKK+WRuCA8IGV4cHJlc3Npb25cLW9mXC1yZXByaW1hbmQ7Civmi7cgPCB0b3J0dXJlXC1hbmRcLWludGVycm9nYXRlOwor5oq/IDwgcHVja2VyXC11cFwtbGlwc1wtaW5cLXNtaWxlOwor5Y2JIDwgZ2VuZXJhbFwtdGVybVwtZm9yXC1wbGFudHM7Civpq7sgPCBoYWlyXC1yb2xsZWRcLXVwXC1pblwtYVwtYnVuOwor6KOGIDwgY3JvdGNoXC1vclwtc2VhdFwtb2ZcLXBhbnRzOwor6JiRIDwgdHlwZVwtb2ZcLWVkaWJsZVwtbXVzaHJvb207Civlkr8gPCBkZXNjcmlwdGl2ZVwtb2ZcLWNyZWFraW5nOwor56++IDwgYmFtYm9vXC1zcGxpbnRzXC1vclwtc2xhdHM7Civmt4cgPCByaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+iTkSA8IHJhaW5cLWNvYXRcLW1hZGVcLW9mXC1zdHJhdzsKK+aqrCA8IHR5cGVcLW9mXC1sb2N1c3RcLW9yYWNhY2lhOwor5reZIDwgZ3VyZ2xpbmdcLXNvdW5kXC1vZlwtd2F0ZXI7CivmrpMgPCBkcmVzc1wtY29ycHNlXC1mb3JcLWJ1cmlhbDsKK+eQpSA8IGpld2VsXC1pblwtc2hhcGVcLW9mXC10aWdlcjsKK+a9niA8IHJpdmVyXC1pblwtbm9ydGhlcm5cLWNoaW5hOwor6YaNIDwgZXNzZW50aWFsXC1vaWxcLW9mXC1idXR0ZXI7Civlpq8gPCB3aXZlc1wtb2ZcLW9uZScnc1wtYnJvdGhlcnM7CivluI8gPCBjdXJ0YWluXC10aGF0XC1mb3Jtc1wtd2FsbDsKK+eTkiA8IGNlcmVtb25pYWxcLWxpYmF0aW9uXC1jdXA7CivnkZcgPCBsYXJnZVwtcmluZ1wtb2ZcLWZpbmVcLWphZGU7Civmtp4gPCByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+eIuyA8IGRpYWdyYW1zXC1mb3JcLWRpdmluYXRpb247CivplJ8gPCBhbmNpZW50XC10cmVhc3VyZWRcLXN3b3JkOwor6IqXIDwgZnJhZ3JhbnRcLXNtZWxsXC1vZlwtZ3JhaW47CivmpaYgPCBhXC1sYXN0XC1mb3JcLW1ha2luZ1wtc2hvZXM7CivoiIEgPCBjYXJyeVwtb25cLW9uZScnc1wtc2hvdWxkZXI7Civmu6AgPCByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+W/jOaBqCA8IGhhdGVcLVwoZHVlXC10b1wtZW52eVwsXC1ldGNcKTsKK+mbueeBvSA8IGRpc2FzdGVyXC1jYXVzZWRcLWJ5XC1oYWlsOwor5Ye66KiqIDwgdmlzaXRcLWFcLWZvcmVpZ25cLWNvdW50cnk7CivmoLjmrablmajmnZDmlpkgPCBudWNsZWFyXC13ZWFwb25cLW1hdGVyaWFsOwor6YCa6KiK6KGM5qWtIDwgY29tbXVuaWNhdGlvbnNcLWluZHVzdHJ5Owor5YyX5Y2K55CDIDwgdGhlXC1ub3J0aGVyblwtaGVtaXNwaGVyZTsKK+mbmee1nue3miA8IHVuc2hpZWxkZWRcLXR3aXN0ZWRcLXBhaXQ7CivnmbzkvYjmlrDou5/ku7YgPCB0b1wtcmVsZWFzZVwtbmV3XC1zb2Z0d2FyZTsKK+aWkeaWkSA8IGZ1bGxcLW9mXC1zdGFpbnNcLW9yXC1zcG90czsKK+ilv+ijnSA8IFwod2VzdGVyblwtc3R5bGVcKVwtY2xvdGhlczsKK+WKoOayuSA8IHRvXC1tYWtlXC1hblwtZXh0cmFcLWVmZm9ydDsKK+WLn+aNkCA8IHRvXC1zb2xpY3RcLWNvbnRyaWJ1dGlvbnM7CivlsIjlsazntpPmv5/ljYAgPCBleGNsdXNpdmVcLWVjb25vbWljXC16b25lOwor55q06KOCIDwgY2hhcFwtXChsaXBzXCxcLXNraW5cLFwtZXRjXC5cKTsKK+imi+iBniA8IHdoYXRcLW9uZVwtc2Vlc1wtYW5kXC1oZWFyczsKK+WMheaJv+WItiA8IHJlc3BvbnNpYmxlXC1jcmV3XC1zeXN0ZW07CivljZfkuqwgPCBuYW5qaW5nXC1cKGNpdHlcLWluXC1jaGluYVwpOwor6KaP57SEIDwgdGVybXNcLVwob2ZcLWFuXC1hZ3JlZW1lbnRcKTsKK+atuOW/gyA8IGNvbnZlcnRlZFwtdG9cLVwocmVsaWdpb25cKTsKK+mAvOatuyA8IGhvdW5kXC1zb21lYm9keVwtdG9cLWRlYXRoOwor5pys5L2N5Li7576pIDwgc2VsZmlzaFwtZGVwYXJ0bWVudGFsaXNtOwor54K65omA5qyy54K6IDwgZG9cLXdoYXRldmVyXC1vbmVcLXBsZWFzZXM7CivkurrmsJHms5XpmaIgPCBwZW9wbGUnJ3NcLWNvdXJ0XC1cKG9mXC1sYXdcKTsKK+WVhualreapn+aniyA8IGNvbW1lcmNpYWxcLW9yZ2FuaXphdGlvbjsKK+m8jyA8IGNvdmVyXC1vZlwtdHJpcG9kXC1jYWxkcm9uOwor6buwIDwgeW91bmdcLWdpcmwnJ3NcLWhhaXJcLXN0eWxlOwor57Wx5rK7IDwgXChwb2xpdGljYWxcKVwtcnVsZVwtXChvdmVyXCk7Civoo5zoqrIgPCBtYWtlXC11cFwtYVwtbWlzc2VkXC1sZXNzb247CivpgJnmqKMgPCB0aGlzXC1cKGtpbmRcLW9mXCxcLXNvcnRcLW9mXCk7Civmkq3mlL7mqZ8gPCBwbGF5ZXJcLVwoZVwuZ1wuXC1jZFwtcGxheWVyXCk7CivpgZTmiJAgPCB0b1wtcmVhY2hcLVwoYW5cLWFncmVlbWVudFwpOwor55m+6IisIDwgaW5cLWh1bmRyZWRcLWFuZFwtb25lXC13YXlzOwor6ayCIDwgdGhlXC1oYWlyXC1vblwtdGhlXC10ZW1wbGVzOwor56aB5q2i5qC45q2m5Zmo6Kmm6amX5qKd57SEIDwgbnVjbGVhclwtdGVzdFwtYmFuXC10cmVhdHk7Civpp64gPCBhXC1raW5kXC1vZlwtZmllcmNlXC1hbmltYWw7CivkuI3nv7zogIzpo5sgPCBkaXNhcHBlYXJcLXdpdGhvdXRcLXRyYWNlOwor5o6I6KiIIDwgdG9cLWNvbmZpZGVcLWFcLXBsYW5cLXRvXC1zYjsKK+eVouaBreeVouaVrCA8IHJldmVyZW50XC1hbmRcLXJlc3BlY3RmdWw7Civnp5HnoJTkurrlk6EgPCBcKHNjaWVudGlmaWNcKVwtcmVzZWFyY2hlcjsKK+WgseabiSA8IGhlcmFsZFwtdGhlXC1icmVha1wtb2ZcLWRheTsKK+aTmue1seioiCA8IGFjY29yZGluZ1wtdG9cLXN0YXRpc3RpY3M7CivpgI/pnLLmtojmga8gPCB0b1wtZGlzY2xvc2VcLWluZm9ybWF0aW9uOwor5Lit5ZyL5pmC5aCxIDwgY2hpbmFcLXRpbWVzXC1cKG5ld3NwYXBlclwpOwor6YS+IDwgcGxhY2VcLWluXC1odWJlaVwtcHJvdmluY2U7CivphKwgPCBwbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mEmCA8IHN0YXRlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5Yip5biCIDwgXCJsYWlcLXNlZVwiXC1cKGx1Y2t5XC1tb25leVwpOwor6YOwIDwgYmlydGhwbGFjZVwtb2ZcLWNvbmZ1Y2l1czsKK+mCpyA8IHRvd25cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5YG06YeNIDwgcGxhY2VcLWV4dHJhXC1lbXBoYXNpc1wtb247CivloLHmgakgPCBwYXlcLWFcLWRlYnRcLW9mXC1ncmF0aXR1ZGU7CivnlZnlrbjnlJ8gPCBzdHVkZW50XC1zdHVkeWluZ1wtYWJyb2FkOwor5aiB5buJ5pav5aChIDwgd2lsbGlhbXNidXJnXC1cKHZpcmdpbmlhXCk7Civkvr/lrpzooYzkuosgPCBhY3RcLWF0XC1vbmUnJ3NcLWRpc2NyZXRpb247CivluavlrZAgPCBvdXRlclwtXChvZlwtY2FiYmFnZVwsXC1ldGNcKTsKK+iHquixqiA8IFwoZmVlbFwtYVwtc2Vuc2VcLW9mXClcLXByaWRlOwor5Y+N6Imm6ImH5beh6Iiq5bCO5b2IIDwgYW50aVwtc2hpcFwtY3J1aXNlXC1taXNzbGU7CivomrsgPCBzbWFsbFwtc3BlY2llc1wtb2ZcLWNpY2FkYTsKK+iSsSA8IGdhbWJsaW5nXC1nYW1lXC13aXRoXC1kaWNlOwor6JGnIDwgaGVsZW9jaGFyaXNcLXBsYW50YWdpbmVhOwor5rWB5Lqh5Zyo5rW35aSWIDwgdG9cLWJlXC1pblwtZXhpbGVcLW92ZXJzZWFzOwor6Ziy5YuZIDwgXChwZXJ0YWluaW5nXC10b1wpXC1kZWZlbnNlOwor5qWt57i+IDwgb3V0c3RhbmRpbmdcLWFjaGlldmVtZW50Owor6IiyIDwgc21hbGxcLWJvYXRcLXdpdGhcLXdpbmRvd3M7CivllYbmpa3nrqHnkIYgPCBidXNpbmVzc1wtYWRtaW5pc3RyYXRpb247CivnlZnoqIAgPCB0b1wtbGVhdmVcLW9uZScnc1wtY29tbWVudHM7CivnvqsgPCB0aGVcLXNrZWxldG9uXC1vZlwtYVwtc2hlZXA7CivlubTkvoYgPCBvdmVyXC10aGVcLWxhc3RcLVwuXC5cLlwteWVhcnM7Civnvb0gPCBhXC1raW5kXC1vZlwtd29vbGVuXC1mYWJyaWM7Civplovmi40gPCBiZWdpblwtc2hvb3RpbmdcLVwoYVwtZmlsbVwpOwor5YiG5LmLIDwgXChpbmRpY2F0aW5nXC1hXC1mcmFjdGlvblwpOwor57K6IDwgcG9saXNoZWRcLXJpY2VcLW9yXC1taWxsZXQ7CivlpJrlubTkvoYgPCBmb3JcLXRoZVwtcGFzdFwtbWFueVwteWVhcnM7Civnr6cgPCBjcmVlbFwtZm9yXC10cmFwcGluZ1wtZmlzaDsKK+evmyA8IGN1dGljbGVcLW9mXC1iYW1ib29cLXBsYW50Owor5Z+656SO6YCf546HIDwgYmFzaWNcLXJhdGVcLVwoYXNcLWluXC1pc2RuXCk7CivnrZTorJ0gPCB0b1wtZXhwcmVzc1wtb25lJydzXC10aGFua3M7CivnpZQgPCB3b3JzaGlwXC1vbmUnJ3NcLWFuY2VzdG9yczsKK+ethuirhyA8IGNvbnZlcnNhdGlvblwtYnlcLXdyaXRpbmc7CivnkarpupcgPCBtYWxpXC1cKGFcLXBlcnNvbicncycnXC1uYW1lXCk7CivnnZYgPCB0b1wtc3RhcmVcLXN0cmFpZ2h0XC1haGVhZDsKK+ecoiA8IGV5ZXNcLXdpdGhvdXRcLWJyaWdodG5lc3M7Civnl4fni4AgPCBzeW1wdG9tXC1cKG9mXC1hblwtaWxsbmVzc1wpOwor55W+IDwgZmllbGRzXC1kaXZpZGVkXC1ieVwtZGlrZXM7CivnkrIgPCBwZW5kYW50XC1naXJkbGVcLW9ybmFtZW50Owor55G/IDwgYVwtYmxhY2tcLXN0b25lXC1saWtlXC1qYWRlOwor55GvIDwga2luZFwtb2ZcLXdoaXRlXC1jb3JuZWxpYW47CivnkaIgPCBnZW1cLW9ybmFtZW50c1wtZm9yXC1iZWx0czsKK+ePtiA8IHdoaXRlXC1qYWRlXC13b3JuXC1vblwtYmVsdDsKK+S4reeni+evgCA8IHRoZVwtbWlkXC1hdXR1bW5cLWZlc3RpdmFsOwor546VIDwgaW5mZXJpb3JcLXZhcmlldHlcLW9mXC1nZW07CivkvZTpoJggPCB0b1wtb2NjdXB5XC1cKGFcLXRlcnJpdG9yeVwpOwor54yIIDwgZG9nXC13aXRoXC1zaG9ydFwtc2hpbmJvbmU7CivmiYvlr6vorZjliKUgPCBoYW5kd3JpdGluZ1wtcmVjb2duaXRpb247CivmvokgPCB0b1wtd2FzaFwtbmFtZVwtb2ZcLWFcLXBsYWNlOwor5r2WIDwgbmFtZVwtb2ZcLWFcLWNlcnRhaW5cLXJpdmVyOwor6Z2e55uI5Yip55qE57WE57mUIDwgbm9uXC1wcm9maXRcLW9yZ2FuaXphdGlvbjsKK+aumSA8IHRvXC1kaWVcLWJ5XC10YWtpbmdcLXBvaXNvbjsKK+atgSA8IHVuc2F0aXNmaWVkXC1cKG9mXC1lYXRpbmdcKTsKK+asqCA8IHRvXC1ibG93XC1vclwtYnJlYXRoZVwtdXBvbjsKK+asjyA8IHRyZWVcLXRoZVwtaG9yc2VcLWNoZXN0bnV0Owor5qqHIDwgd29vZGVuXC1yYW1tZXJcLW9yXC1wZXN0bGU7CivmqZQgPCBhXC13b29kZW5cLWNob3BwaW5nXC1ibG9jazsKK+ioiuaBr+iZleeQhuezu+e1sSA8IG1lc3NhZ2VcLWhhbmRsaW5nXC1zeXN0ZW07CivlgpnmlpkgPCBnZXRcLXRoZVwtbWF0ZXJpYWxzXC1yZWFkeTsKK+WdpuWFiyA8IHRhbmtcLVwobWlsaXRhcnlcLXZlaGljbGVcKTsKK+mmrOi3r+WPoyA8IGludGVyc2VjdGlvblwtXChvZlwtcm9hZHNcKTsKK+Wbm+W3nSA8IHNpY2h1YW5cLXByb3ZpbmNlXCxcLWNoaW5hOwor5oC4IDwgY25zXC0yXC0yYTQwXC1pc1wtZGlmZmVyZW50Owor5q+U5q+U55qG5pivIDwgY2FuXC1iZVwtZm91bmRcLWV2ZXJ5d2hlcmU7CivkuI3mirXmipfkuLvnvqkgPCBwb2xpY3lcLW9mXC1ub25yZXNpc3RhbmNlOwor6LKp6YGLIDwgdG9cLXRyYW5zcG9ydFwtXChmb3JcLXNhbGVcKTsKK+WihCA8IHRoZVwtc3RlcHNcLW9mXC1hXC1zdGFpcndheTsKK+aVuOWtl+ioguizvOe3mui3ryA8IGRpZ2l0YWxcLXN1YnNjcmliZXJcLWxpbmU7Civmo4ToiIrmj5vmlrAgPCB0b1wtdHVyblwtb3ZlclwtYVwtbmV3XC1sZWFmOwor5LuK6K2vIDwgbW9kZXJuXC1sYW5ndWFnZVwtdmVyc2lvbjsKK+S4jeaDheS5i+iriyA8IG15XC1wcmVzdW1wdHVvdXNcLXJlcXVlc3Q7CivllasgPCBpbnRlcmplY3Rpb25cLW9mXC13YXJuaW5nOwor5oqV5pS+IDwgdG9cLXB1dFwtaW5cLVwoY2lyY3VsYXRpb25cKTsKK+WQmiA8IHVzZWRcLXRvXC1yZXByZXNlbnRcLXNvdW5kOwor5YyBIDwgamFwYW5lc2VcLXVuaXRcLW9mXC13ZWlnaHQ7Civnl4XlgJIgPCBiZVwtZG93blwtd2l0aFwtYW5cLWlsbG5lc3M7Civmi7fllY8gPCB0b1wtcXVlc3Rpb25cLXZpYVwtdG9ydHVyZTsKK+S7viA8IHRvXC1oYW5nXC1vclwtYm93XC10aGVcLWhlYWQ7Civktp0gPCBncm93aW5nXC1pcnJlZ3VsYXJcLXRlZXRoOwor5LWIIDwgdW5zbWVsdGVkXC1oZW1wXC1hbmRcLXNpbGs7CivktYAgPCBjb2Fyc2VcLWNydW1ic1wtb2ZcLWJhcmxleTsKK+S0kSA8IGFcLWxlZ2VuZGFyeVwtd2VpcmVkXC1iaXJkOwor5LSHIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLWNyYW5lOwor5LSBIDwgYVwta2luZFwtb2ZcLXJhdFwtbGlrZVwtYmlyZDsKK+SzsiA8IGFcLXN3YXJtXC1vZlwtZmx5aW5nXC1iaXJkczsKK+SytCA8IGFcLWtpbmRcLW9mXC12ZW5vbW91c1wtYmlyZDsKK+SxviA8IGFcLWNhcnBcLWxpa2VcLXNhdm9yeVwtZmlzaDsKK+SwqyA8IG5pbWJsZVwtYW5kXC1hY3RpdmVcLWdob3N0Owor6ZuZ6YCj5o6l56uZIDwgZHVhbFwtYXR0YWNobWVudFwtc3RhdGlvbjsKK+SthyA8IHRvXC1iZVwtY2hvY2tlZFwtd2l0aFwtZm9vZDsKK+SthiA8IHNtYWxsXC1jaGlsZHJlblwtZWF0XC1sZXNzOwor5KyyIDwgdG9cLWVhdFwtdG9cLXRoZVwtaGFsZlwtZnVsbDsKK+SsqiA8IGFcLWtpbmRcLW9mXC1jb29rZWRcLW5vb2RsZTsKK+SsmyA8IHRoZVwtcm9hcmluZ1wtb2ZcLXRoZVwtd2luZDsKK+aCo+mboyA8IHRyaWFsc1wtYW5kXC10cmlidWxhdGlvbnM7CivkqJcgPCBleGNlc3NpdmVcLXJhaW5cLWFuZFwtc25vdzsKK+SohSA8IHNtYWxsXC1iaXJkc1wtXC1cLVwtdGhlXC13cmVuOwor6Y2b54WJIDwgdG9cLWRvXC1waHlzaWNhbFwtdHJhaW5pbmc7CivkpZYgPCBzaWx2ZXJcLW9mXC1nb2xkXC1maWxhZ3JlZTsKK+SljyA8IHVuZml0dGVkXC1mb3JcLWVhY2hcLW90aGVyOwor5KSlIDwgYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnRzOwor5KKcIDwgdGhlXC1tYXJyaWFnZVwtb2ZcLWFcLXdvbWFuOwor5KG9IDwgdGhlXC1zaGFmdHNcLW9mXC1hXC12ZWhpY2xlOwor5KG6IDwgdGhlXC1lbmRcLW9mXC1hblwtYXhsZVwtdHJlZTsKK+ShoyA8IGFcLXBpZWNlXC1vZlwtY3VydmVkXC1ib2FyZDsKK+SgoyA8IG5ldFwtdG9cLXRyYXBcLXRoZVwtYW5pbWFsczsKK+SdiCA8IGFcLWJpZ1wtYW5kXC1zdHJlbnVvdXNcLXBpZzsKK+SakCA8IGdldHRpbmdcLXJlZFwtaW5cLXRoZVwtZXllczsKK+SaiiA8IHRvXC1sb29rXC1mcm9tXC1hXC1kaXN0YW5jZTsKK+SZkCA8IGZ1cnNcLWFuZFwtbGluZW5cLWdhcm1lbnRzOwor5JiGIDwgYVwtc2Vjb25kXC1mb3JtXC1lYXJ0aHdvcm07Civkl6AgPCB0aGVcLWxhcnZhXC1vZlwtbW9zcXVpdG9lczsKK+SXlCA8IGFcLWhvdXNlXC1saXphcmRcLW9yXC1nZWNrbzsKK+SWsSA8IGxhcmdlXC1zaHJpbXBcLWluXC10aGVcLXNlYTsKK+SUviA8IGFcLWtpbmRcLW9mXC1mcmFncmFudFwtaGVyYjsKK+STsSA8IGFcLWtpbmRcLW9mXC1oZXJiXC1tZWRpY2luZTsKK+aItOe2reaWryA8IGRhdmlzXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+ijnOWKqee1hOe5lCA8IGF1eGlsaWFyeVwtb3JnYW5pemF0aW9uczsKK+SQpCA8IGRyaWVkXC1hbmRcLXNlYXNvbmVkXC1tZWF0Owor5JCQIDwgY3VydmVkXC1wYXJ0XC1vZlwtdGhlXC1rbmVlOwor5I+ZIDwgYnJpbmVcLWZyb21cLXBpY2tsZWRcLW1lYXQ7Civkj5UgPCB0b1wtY29va1wtZm9vZFwtdGhvcm91Z2hseTsKK+e0heaok+WkoiA8IGFcLWRyZWFtXC1vZlwtcmVkXC1tYW5zaW9uczsKK+SNuSA8IG9kb3JcLW9mXC1hXC1zaGVlcFwtb3JcLWdvYXQ7CivkjZkgPCBuZXRzXC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+SNmCA8IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtbmV0czsKK+SNkyA8IG5ldFwtZm9yXC1jYXRjaGluZ1wtcmFiYml0Owor5IurIDwgdG9cLXdpbmRcLXJvdW5kXC10aGVcLXJvcGVzOwor5IuoIDwgdG9cLXNldFwtaW5cLW9yZGVyXC10aGVcLW9sZDsKK+SKtCA8IGZvb2RcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SKqiA8IGNvYXJzZVwtcmljZVwtXC1cLVwtdW5odWxsZWQ7CivkiZwgPCB5b3VuZ1wtYW5kXC10ZW5kZXJcLWJhbWJvbzsKK+SJliA8IGZyYW1ld29ya1wtb2ZcLWFcLWNhcnJpYWdlOwor5IeXIDwgYmFtYm9vXC13aXRoXC1sb25nXC1qb2ludHM7Civkh5EgPCBhXC1zdGFuZGluZ1wtc2hvcnRcLXBlcnNvbjsKK+SGiiA8IHVuaHVza2VkXC1nbHV0aW5vdXNcLXJpY2U7CivkhokgPCB0aGVcLXN3aW5nXC1vZlwtcmljZVwtcGxhbnQ7Civom5nms7MgPCBcKHN3aW1taW5nXClcLWJyZWFzdHN0cm9rZTsKK+SDiSA8IGFcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5oCO6bq8IDwgXChpbnRlcnJvZ2F0aXZlXC1wcm9ub3VuXCk7CivkgYwgPCB0b1wtc2VlXC1mb3JcLWFcLXNob3J0XC10aW1lOwor476AIDwgdG9cLWJlXC13ZWFrZWRcLWJ5XC1kaXNlYXNlOwor4724IDwgZGlzZWFzZXNcLW9mXC10aGVcLWFiZG9tZW47CivlnKjku4rlubTlubTlupUgPCBhdFwtdGhlXC1lbmRcLW9mXC10aGlzXC15ZWFyOwor47ynIDwgdGlsZXNcLWluXC1jeWxpbmRlclwtc2hhcGU7CivpgY7kuI3ljrsgPCBtYWtlXC1saWZlXC1kaWZmaWN1bHRcLWZvcjsKK+O5siA8IGFcLWZyaWdodGVuZWRcLXBpZ1wtb3JcLWRvZzsKK+O5riA8IGFcLWtpbmRcLW9mXC1hbmltYWxcLVwtdGFwaXI7CivjuZ0gPCBhXC1sZWdlbmRhcnlcLXdpbGRcLWFuaW1hbDsKK+O5kSA8IGFcLWZvdXJcLXllYXJzXC1vbGRcLWNhdHRsZTsKK+O5iiA8IGFcLWNhdHRsZVwtb2ZcLXdoaXRlXC1jb2xvcjsKK+O5hiA8IHRoZVwtY291bHRlclwtb2ZcLWFcLXBsb3VnaDsKK+Wbnumhp+att+WPsiA8IHRvXC1sb29rXC1iYWNrXC1hdFwtaGlzdG9yeTsKK+mAmuioiuWNlOWumiA8IGNvbW11bmljYXRpb25zXC1wcm90b2NvbDsKK+O4iyA8IG1lYXRzXC11c2VkXC1pblwtc2FjcmlmaWNlOwor47euIDwgc2NvcmNoZWRcLW9yXC1idXJuZWRcLXdvb2Q7Civjt6sgPCBmaXJlXC1jYXVzaW5nXC1ieVwtZHJ5bmVzczsKK+O2kiA8IHRoZVwtY3VycmVudFwtb2ZcLWFcLXN0cmVhbTsKK+O0siA8IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZTsKK+O0kSA8IHRvXC10cmFjZVwtdXBcLXRvXC1hXC1zb3VyY2U7CivjtI8gPCB0aGVcLXBvbmRcLXdhdGVyXC1pc1wtc3RpbGw7Civjsr8gPCBleHRlbnNpdmVcLWJvZHlcLW9mXC13YXRlcjsKK+OyhCA8IHVuYnVybnRcLWJyaWNrc1wtb3JcLXRpbGVzOwor47GsIDwgY2Fubm90XC1yZWNvZ25pemVcLXBlb3BsZTsKK+OvmSA8IHRoZVwtYnVja3Rob3JuXC1vclwtanVqdWJlOwor6aeQ5a6IIDwgXChtYW5cLWFcLXBvc3RcLWFuZFwpXC1kZWZlbmQ7Civjrb4gPCB0b1wtY3V0XC10aGVcLXRpbWJlclwtYXBhcnQ7CivmuqvlkowgPCBtb2RlcmF0ZVwtXChwb2xpY3lcLFwtZXRjXC5cKTsKK+OtgyA8IHRoZVwtbGFyZ2VcLXJvcGVcLW9mXC1hXC1uZXQ7CivjrYIgPCBoZWlnaHRcLW9mXC10aGVcLWVuZFwtcG9pbnQ7CivjrLsgPCBpblwtYmV0d2Vlblwtb2ZcLXRoZVwtZmxlc2g7CivlkKboqo0gPCB0b1wtZGVjbGFyZVwtdG9cLWJlXC11bnRydWU7Civjp68gPCBhXC1idWNrZXRcLW1hZGVcLW9mXC13aWxsb3c7Civjp6UgPCB0b1wtbmlwXC13aXRoXC10aGVcLWZpbmdlcnM7Civjpr0gPCB3aXRoXC1lbGVnYW50XC1hcHBlYXJhbmNlOwor5oOF5aCx6JmVIDwgc291cmNlXC1cKG9mXC1pbmZvcm1hdGlvblwpOwor46a6IDwgYVwtbGFuY2VcLXdpdGhcLXR3b1wtcG9pbnRzOwor46aHIDwgYVwtcGVhY2VmdWxcLW9yXC1lYXN5XC1tb29kOwor46WFIDwgdXNlZFwtaW5cLWFcLXBlcnNvbicnc1wtbmFtZTsKK+OkjCA8IHRvXC1oYXZlXC1vbmUnJ3NcLWhlYXJ0XC1vd247Civjo7sgPCB0b1wtcmVtZWR5XC1ieVwtcHVuaXNobWVudDsKK+OjqiA8IHRvXC13YWxrXC13aXRoXC1zbG93XC1zdGVwczsKK+OjhiA8IHRvXC1sb29zZVwtdGhlXC1ib3dcLXN0cmluZzsKK+OiviA8IHRoZVwtY3VydmVkXC1lbmRcLW9mXC1hXC1ib3c7CivjorUgPCBwb3dlcmZ1bFwtYW5kXC1zdHJvbmdcLWJvdzsKK+OhuSA8IHRvXC1yZWx5XC11cG9uXC1lYWNoXC1vdGhlcjsKK+OhkiA8IGFcLWNhbGljb1wtc2Fja1wtZm9yXC1ncmFpbjsKK+OhjyA8IHRvXC1jdXRcLWFcLXN0cmlwXC1vZlwtY2xvdGg7CivjnrwgPCB0b1wtcmVzcGVjdGZ1bGx5XC1yZWNlaXZlOwor45qsIDwgYVwtbGFkeVwtc3RhcnRcLXRvXC1kb2xsXC11cDsKK+OaliA8IHRvXC1jb21lXC1vdXRcLXRvXC10aGVcLW9wZW47CivjmYogPCBhblwtYXJlYVwtb2ZcLWxldmVsXC1ncm91bmQ7CivjlbggPCBzb3VuZFwtb2ZcLXJvbGxpbmdcLWFcLWJvYXQ7CivjlKQgPCB0b1wtZXhlcnRcLW9uZScnc1wtc3RyZW5ndGg7CivohZDmlZfnvaogPCB0aGVcLWNyaW1lXC1vZlwtY29ycnVwdGlvbjsKK+OSpCA8IHRvXC1oYXZlXC1vbmUnJ3NcLWhlYXJ0XC13b247CivjkpkgPCB0b1wtaGFuZFwtb3JcLWJvd1wtdGhlXC1oZWFkOwor5q2l5bGl57at6ImxIDwgaGF2ZVwtZGlmZmljdWx0eVwtd2Fsa2luZzsKK+WFseWQjOevqemBuCA8IGNvbGxhYm9yYXRpdmVcLWZpbHRlcmluZzsKK+eZveibh+WCsyA8IHRhbGVcLW9mXC10aGVcLXdoaXRlXC1zbmFrZTsKK+Wkp+mpmuWwj+aAqiA8IG11Y2hcLWZ1c3NcLWFib3V0XC1ub3RoaW5nOwor6L6v6Ki85ZSv54mp5Li7576pIDwgZGlhbGVjdGljYWxcLW1hdGVyaWFsaXNtOwor5rGf6KW/IDwgamlhbmd4aVwtcHJvdmluY2VcLFwtY2hpbmE7CivmhJvmkqsgPCB0b1wtc2hvd1wtdGVuZGVyXC1jYXJlXC1mb3I7Civlj4PoiIcgPCB0b1wtcGFydGljaXBhdGVcLVwoaW5cLXN0aFwpOwor5riv5Lq6IDwgaG9uZ1wta29uZ1wtcGVyc29uXHxwZW9wbGU7Civpu4PmsrMgPCB5ZWxsb3dcLXJpdmVyXC1cKGh1YW5nXC1oZVwpOwor5rGf6JiHIDwgamlhbmdzdVwtcHJvdmluY2VcLFwtY2hpbmE7Civku7vlkb0gPCB0b1wtYXBwb2ludFwtYW5kXC1ub21pbmF0ZTsKK+WFrOWuieWumOWToSA8IHB1YmxpY1wtc2FmZXR5XC1vZmZpY2lhbHM7CivppIXlrZAgPCBtYWl6ZVwtb3JcLW1pbGxldFwtcGFuY2FrZTsKK+acn+aUtyA8IGVuZFwtb2ZcLXRlcm1cLWV4YW1pbmF0aW9uOwor57i96aGNIDwgdG90YWxcLVwoYW1vdW50XC1vclwtdmFsdWVcKTsKK+isguiqniA8IFwoZ3JhbW1hdGljYWxcKVwtcHJlZGljYXRlOwor5Y2K5oiQ5ZOBIDwgc2VtaVwtbWFudWZhY3R1cmVkXC1nb29kczsKK+S4reaXrCA8IG1pZGRsZVwtdGhpcmRcLW9mXC1hXC1tb250aDsKK+S4i+aXrCA8IGxhc3RcLXRoaXJkXC1vZlwtdGhlXC1tb250aDsKK+WCs+i8uOaKgOihkyA8IHRyYW5zbWlzc2lvblwtdGVjaG5vbG9neTsKK+iyneWFiyA8IGJha2VyXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+S6guWQgyA8IHRvXC1lYXRcLWluZGlzY3JpbWluYW50bHk7CivlpZTpoK3lhZIgPCBzb21ldGhpbmdcLXRvXC1zdHJpdmVcLWZvcjsKK+WGsOWkqembquWcsCA8IGFcLXdvcmxkXC1vZlwtaWNlXC1hbmRcLXNub3c7CivmlL/lupzmqZ/mp4sgPCBnb3Zlcm5tZW50XC1vcmdhbml6YXRpb247CivkuK3ovYnnq5kgPCBodWJcLVwobmV0d29ya1wtZXF1aXBtZW50XCk7CivmganmgKggPCBcKGZlZWxpbmdcLW9mXClcLXJlc2VudG1lbnQ7CivkuI3lpJYgPCBub3RcLWJleW9uZFwtdGhlXC1zY29wZVwtb2Y7CivmnI3liJEgPCBzZXJ2ZVwtYVwtcHJpc29uXC1zZW50ZW5jZTsKK+iOq+mdniA8IGNhblwtaXRcLWJlXC1wb3NzaWJsZVwtdGhhdDsKK+W7o+ilvyA8IGd1YW5neGlcLXByb3ZpbmNlXCxcLWNoaW5hOwor5LiN5Y+v55CG5Za7IDwgYmVcLWltcGVydmlvdXNcLXRvXC1yZWFzb247CivlpZTngIkgPCBcKG9mXC10b3JyZW50c1wpXC1ydXNoXC1kb3duOwor5LmIIDwgaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7CivooqsgPCBwYXNzaXZlXC1pbmRpY2F0b3JcLScnYnknJzsKK+eUsyA8IHRvXC1zdGF0ZVwtdG9cLWFcLXN1cGVyaW9yOwor5bKhIDwgcmlkZ2VcLW9yXC1jcmVzdFwtb2ZcLWhpbGw7CivnkLQgPCBjaGluZXNlXC1sdXRlXC1vclwtZ3VpdGFyOwor5ayMIDwgc2VkdWN0aXZlXC1hbmRcLWxvdmVhYmxlOwor572XIDwgbmV0XC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+aRuCA8IGdlbnRseVwtdG91Y2hcLXdpdGhcLWhhbmQ7Civku7AgPCByYWlzZVwtdGhlXC1oZWFkXC10b1wtbG9vazsKK+iHjSA8IGFiZG9taW5hbFwtYXJlYVwtb2ZcLWNyYWI7Civpg5EgPCBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hbjsKK+i0ryA8IGFcLXN0cmluZ1wtb2ZcLTEwMDBcLWNvaW5zOwor56utIDwgcHV0XC1mb3J0aFwtZ3JlYXRcLWVmZm9ydDsKK+enkiA8IGJlYXJkXC1vZlwtZ3JhaW5cLW9yXC1jb3JuOwor5aWaIDwgd2hlcmVcP1wtd2hhdFw/XC1ob3dcP1wtd2h5XD87Civnm48gPCBzbWFsbFwtY3VwXC1vclwtY29udGFpbmVyOwor6JCdIDwgdHlwZVwtb2ZcLWNyZWVwaW5nXC1wbGFudDsKK+aipyA8IHN0ZXJjdWxpYVwtcGxhdGFuaWZvbGlhOwor5ZKmIDwgZXhwcmVzc2lvblwtb2ZcLXN1cnByaXNlOwor562QIDwgYmFtYm9vXC1iYXNrZXRcLW9yXC1jaGVzdDsKK+iwjSA8IGFuXC1pbnRlbGxpZ2VuY2VcLXJlcG9ydDsKK+evsSA8IGJhbWJvb1wtb3JcLXdvb2RlblwtZmVuY2U7CivnkLYgPCBndWl0YXJcLWxpa2VcLWluc3RydW1lbnQ7CivmvbogPCBzb3VuZFwtb2ZcLWZsb3dpbmdcLXdhdGVyOwor5Z2zIDwgYVwtaG9sbG93XC1pblwtdGhlXC1ncm91bmQ7Civln4IgPCBkaXRjaGVzXC1mb3JcLWlycmlnYXRpb247CivlgIwgPCBhc3Npc3RhbnRcLWluXC13aW5lXC1zaG9wOwor6ZyBIDwgdG9cLWNsZWFyXC11cFwtYWZ0ZXJcLXJhaW47Civpgq8gPCBjaXR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor57KRIDwgdHNhbWJhXC1cKGZvb2RcLWluXC10aWJldFwpOwor6JuAIDwgaW5zZWN0c1wtdGhhdFwtZWF0XC1ib29rczsKK+WrpiA8IG5hbWVcLW9mXC1hXC1tb29uXC1nb2RkZXNzOwor6LWKIDwgYnV5XC1hbmRcLXNlbGxcLW9uXC1jcmVkaXQ7CivlvJEgPCB0b1wta2lsbFwtb25lJydzXC1zdXBlcmlvcjsKK+aRgSA8IHRvXC1wcmVzc1wtd2l0aFwtdGhlXC1oYW5kOwor55W5IDwgYVwtZmllbGRcLW9mXC0yMFwtb3JcLTMwXC1tdTsKK+inkCA8IGhhdmVcLWltcGVyaWFsXC1hdWRpZW5jZTsKK+iupiA8IGV4cG9zZVwtb3RoZXInJ3NcLXNlY3JldHM7Civml4QgPCBhXC1raW5kXC1vZlwtYW5jaWVudFwtZmxhZzsKK+i2tSA8IG5vaXNlXC1vZlwtdHJhbXBpbmdcLWZlZXQ7CivphbkgPCB0b1wtcG91clwtb3V0XC1hXC1saWJhdGlvbjsKK+WtsyA8IGJyZWVkXC1pblwtbGFyZ2VcLW51bWJlcnM7CivloYQgPCBlbGV2YXRlZFwtYmFua1wtaW5cLWZpZWxkOwor6J6IIDwgZGllbXllbGlsdXNcLXB5cm9nYXN0ZXI7CivnqqwgPCBhXC1zbWFsbFwtZG9vclwtb3JcLXdpbmRvdzsKK+essSA8IGFcLWJhc2tldFwtdHJhcFwtZm9yXC1maXNoOwor54m/IDwgc2hlZFwtb3JcLXBlblwtZm9yXC1jYXR0bGU7Civom5ggPCBhXC13ZWV2aWxcLWZvdW5kXC1pblwtcmljZTsKK+eVjiA8IGFcLWRyYWluXC1iZXR3ZWVuXC1maWVsZHM7Civogbfmpa3kuK3lrbggPCB2b2NhdGlvbmFsXC1oaWdoXC1zY2hvb2w7CivntrLot6/nr4Dpu57ku4vpnaIgPCBuZXR3b3JrXC1ub2RlXC1pbnRlcmZhY2U7CivmraPlnKjkuK3lnIvoqKrllY8gPCBkdXJpbmdcLWFcLXRyaXBcLXRvXC1jaGluYTsKK+mBuueVmSA8IFwobGVhdmVcLW9yXC1iZVwtYVwpXC1sZWdhY3k7CivluLjopo8gPCBjb252ZW50aW9uYWxcLVwod2VhcG9uc1wpOwor6Ieq6aOf5YW25p6cIDwgcmVhcFwtd2hhdFwtb25lXC1oYXNcLXNvd247CivorYnliLggPCBcKGZpbmFuY2lhbFwpXC1zZWN1cml0aWVzOwor5LiN6Zyy6IGy6ImyIDwgbm90XC1zaG93XC1vbmUnJ3NcLWZlZWxpbmc7CivmhZXpgZPlj4sgPCByZWxpZ2lvdXNcLWludmVzdGlnYXRvcjsKK+W+gOW4uCA8IGhhYml0dWFsbHlcLWluXC10aGVcLXBhc3Q7CivlpKfnhZ7poqjmma8gPCBkYW1wZW5pbmdcLW9uZScnc1wtc3Bpcml0Owor5Ymd5o6h5q+UIDwgc3RyaXBwaW5nXC10b1wtb3JlXC1yYXRpbzsKK+e+heabvOiqnuaXjyA8IHJvbWFuY2VcLWxhbmd1YWdlXC1ncm91cDsKK+WtsOiDveeUn+W3pyA8IHByYWN0aWNlXC1tYWtlc1wtcGVyZmVjdDsKK+WmluWGtiA8IHByZXR0eVwtYW5kXC1mbGlydGF0aW91czsKK+mdqeWRvSA8IFwocG9saXRpY2FsXClcLXJldm9sdXRpb247Civoq5blo4cgPCBmb3J1bVwtXChmb3JcLWRpc2N1c3Npb25cKTsKK+Wjn+aWtyA8IGVuam95XC1tYXJrZXRcLWRvbWluYW5jZTsKK+eJoeS4uSA8IHBlb255XC1cKHR5cGVcLW9mXC1mbG93ZXJcKTsKK+WgseeohSA8IGRlY2xhcmVcLWR1dGlhYmxlXC1nb29kczsKK+ebrueahOWcsCA8IGRlc3RpbmF0aW9uXC1cKGxvY2F0aW9uXCk7Civlhazoqo0gPCBwdWJsaWNseVwta25vd25cLVwodG9cLWJlXCk7Civll7fll7flvoXlk7ogPCBjcnlcLXBpdGVvdXNseVwtZm9yXC1mb29kOwor55m86KGoIDwgdG9cLWlzc3VlXC1cKGFcLXN0YXRlbWVudFwpOwor5LiN55eb5LiN55eSIDwgc2NyYXRjaGluZ1wtdGhlXC1zdXJmYWNlOwor5ZyL5YuZ6ZmiIDwgc3RhdGVcLWRlcGFydG1lbnRcLVwodXNhXCk7Civpva8gPCB0ZWV0aFwtZ3Jvd25cLWluXC1vbGRcLWFnZTsKK+mbu+WZqCA8IFwoZWxlY3RyaWNhbFwpXC1hcHBsaWFuY2U7CivpuaMgPCBmYWJ1bG91c1wtbXl0aGljYWxcLWJpcmQ7Civmrrfli6QgPCBwb2xpdGVseVwsXC1zb2xpY2l0b3VzbHk7CivljYHkupTlhIQgPCBvbmVcLWFuZFwtYVwtaGFsZlwtYmlsbGlvbjsKK+mwhiA8IHNjb21iZXJvbW9ydXNcLXNpbmVuc2lzOwor6a6TIDwgbWluY2VkXC1hbmRcLXNhbHRlZFwtZmlzaDsKK+e0heeHkuiCiSA8IHJlZFwtY29va2VkXC1cKHBvcmtcKVwtbWVhdDsKK+WIsOacnyA8IGJlY29tZVwtZHVlXC1cKGVnXCxcLWxvYW5zXCk7CivpqYwgPCBuYW1lXC1vZlwtYVwtZmFtb3VzXC1ob3JzZTsKK+WFrOWuieWxgCA8IHB1YmxpY1wtc2VjdXJpdHlcLWJ1cmVhdTsKK+eXhemZoiA8IGFcLXNwZWNpYWxpemVkXC1ob3NwaXRhbDsKK+iBr+e2sueSsOWigyA8IG5ldHdvcmtpbmdcLWVudmlyb25tZW50Owor6Z+5IDwgbXVzaWNcLW9mXC1iZWxsXC1hbmRcLWRydW07Civop6Pph4vln7fooYwgPCBpbnRlcnByZXRlZFwtXChjb21wdXRlclwpOwor5YWr5bCP5pmC5bel5L2c5Yi2IDwgZWlnaHRcLWhvdXJcLXdvcmtpbmdcLWRheTsKK+a2iOaBr+mdiOmAmuS6uuWjqyA8IGFcLXdlbGxcLWluZm9ybWVkXC1zb3VyY2U7Civpm5ggPCBkeWVcLW1hZGVcLWZyb21cLXJlZFwtc29pbDsKK+mYhyA8IGFcLWJ1ZGRoaXN0XC1oaWdoXC1wcmllc3Q7CivkuI3ov5Hkurrmg4UgPCBub3RcLWFtZW5hYmxlXC10b1wtcmVhc29uOwor6ZGQIDwgYm9sdFwtb2ZcLWFcLWNoaW5lc2VcLWxvY2s7CivmlL/msrvmqZ/mp4sgPCBwb2xpdGljYWxcLW9yZ2FuaXphdGlvbjsKK+mMhiA8IHRoZVwtY29sb3JcLW9mXC1hXC1taW5lcmFsOwor6YSQIDwgdG93blwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mBsCA8IGdydW50aW5nXC1zb3VuZFwtb2ZcLXBpZ3M7CivovqUgPCB2YXJpZXR5XC1vZlwtbWFyc2hcLWdyYXNzOwor55eF6LGhIDwgc3ltcHRvbVwtXChvZlwtYVwtZGlzZWFzZVwpOwor5pel5pys57aT5r+f5paw6IGeIDwgamFwYW5lc2VcLWVjb25vbWljXC1uZXdzOwor5qy65YeMIDwgdG9cLWJ1bGx5XC1hbmRcLWh1bWlsaWF0ZTsKK+mBjeWPiiA8IHRvXC1leHRlbmRcLVwoZXZlcnl3aGVyZVwpOwor6LCCIDwgY29uc3VsdFwtY2FyZWZ1bGx5XC13aXRoOwor57C9572yIDwgdG9cLXNpZ25cLVwoYW5cLWFncmVlbWVudFwpOwor6KmqIDwgZGlmZmljdWx0eVwtaW5cLXNwZWFraW5nOwor5aCx5bCOIDwgdG9cLWNvdmVyXC1cKHJlcG9ydFwpXC1uZXdzOwor6Ke/IDwgYVwtYm9ka2luXC1tYWRlXC1vZlwtaXZvcnk7CivluIPmnJcgPCBlbmdsaXNoXC1zdXJuYW1lXCxcLWJyb3duOwor6KaAIDwgdmFyaWFudFwtb2ZcLXJhZGljYWxcLTE0NjsKK+iknyA8IGlubmVyXC1zaGlydFwtb3JcLXNpbmdsZXQ7Civooa0gPCB0aGVcLWxhcGVsXC1vZlwtYVwtZ2FybWVudDsKK+ihpiA8IHNtb290aFwtb3V0XC10aGVcLWNsb3RoZXM7CivmqJnmupYgPCBcKGFuXC1vZmZpY2lhbFwpXC1zdGFuZGFyZDsKK+ioiuaBr+WCs+mBnuS4reS7iyA8IG1lc3NhZ2VcLXRyYW5zZmVyXC1hZ2VudDsKK+WPpuecvOebuOeciyA8IHRvXC12aWV3XC1pblwtYVwtbmV3XC1saWdodDsKK+iVlSA8IGNhcnlvcHRlcmlzXC1kaXZhcmljYXRhOwor6JSvIDwgYVwtdmFyaWV0eVwtb2ZcLWFydGVtaXNpYTsKK+iQtCA8IG1lZGljaW5hbFwtcG9pc29uXC1wbGFudDsKK+iPtiA8IHNwZWNpZXNcLW9mXC13YXRlclwtcGxhbnQ7Civkv6Hmga/mioDooZMgPCBpbmZvcm1hdGlvblwtdGVjaG5vbG9neTsKK+iEpCA8IHJhd1wtbWVhdFwtZm9yXC1zYWNyaWZpY2U7Civnmbznl4XnjocgPCBpbmNpZGVuY2VcLW9mXC1hXC1kaXNlYXNlOwor6ICsIDwgZHJpbGxcLWZvclwtc293aW5nXC1ncmFpbjsKK+eWkeWVj+WPpSA8IGludGVycm9nYXRpdmVcLXNlbnRhbmNlOwor6ICCIDwgdmFyaWFudFwtb2ZcLXJhZGljYWxcLTEyNTsKK+mAgOS8kSA8IHJldGlyZW1lbnRcLVwoZnJvbVwtd29ya1wpOwor57mmIDwgc3RyaW5nXC1vZlwtY29wcGVyXC1jb2luczsKK+S+huWbnuS+huWOu+WcsCA8IGJhY2t3YXJkc1wtYW5kXC1mb3J3YXJkczsKK+WuieWFqOiAg+aFriA8IHNlY3VyaXR5XC1jb25zaWRlcmF0aW9uOwor57eFIDwgc2lsa1wtb2ZcLXB1cnBsaXNoXC1jb2xvcjsKK+i2qOmZhCA8IHRvXC1pbmdyYXRpYXRpb25cLW9uc2VsZjsKK+atpOS4gOaZgiA8IHRoYXRcLXdhc1wtb25lXC1zaXR1YXRpb247Civnr6IgPCB0aGVcLW5hbWVcLW9mXC1iYW1ib29cLWhhdDsKK+ethui3oSA8IGFcLXBlcnNvbicnc1wtaGFuZHdyaXRpbmc7Civkv6Hmga/nrqHnkIYgPCBpbmZvcm1hdGlvblwtbWFuYWdlbWVudDsKK+eboeWKmyA8IGRvXC1vbmUnJ3NcLWJlc3RcLVwoZWZmb3J0XCk7CivntrLntaHlsaTljZTorbAgPCBuZXR3b3JrXC1sYXllclwtcHJvdG9jb2w7CivnrYboqJggPCB0YWtlXC1kb3duXC1cKGluXC13cml0aW5nXCk7CivkuI3lpb3mg7kgPCBub3RcLXRvXC1iZVwtdHJpZmxlZFwtd2l0aDsKK+ikpeWtkCA8IGNvdHRvblwtcGFkZGVkXC1tYXR0cmVzczsKK+eZiiA8IGFcLWRpc2Vhc2VcLW9mXC10aGVcLWhlYXJ0Owor55GxIDwgYVwtZ2VtXC11c2VkXC1hc1wtZWFyXC1wbHVnOwor6Lmm6Lmm6Lez6LezIDwgYm91bmNpbmdcLWFuZFwtdml2YWNpb3VzOwor54+jIDwgbmFtZVwtb2ZcLWFcLWtpbmRcLW9mXC1qYWRlOwor5468IDwgYmVhdXRpZnVsXC1jb2xvclwtb2ZcLWdlbTsKK+eJtyA8IGNvd1wtb3JcLW94XC1vZlwtb25lXC1jb2xvcjsKK+WEmOW/qyA8IGFzXC1xdWlja2x5XC1hc1wtcG9zc2libGU7CivpgJrkv6Hlr4bluqYgPCBjb21tdW5pY2F0aW9uc1wtZGVuc2l0eTsKK+S4jeW+l+W3siA8IGFjdFwtYWdhaW5zdFwtb25lJydzXC13aWxsOwor54SEIDwgcmlzaW5nXC1mbGFtZXNcLW9yXC1mdW1lczsKK+eDliA8IGNhbGFtaXRpZXNcLWZyb21cLWhlYXZlbjsKK+aykuacieW3ruWIpSA8IHRoZXJlXC1pc1wtbm9cLWRpZmZlcmVuY2U7Civmv4DmmIIgPCBhcm91c2VkXC10b1wtaW5kaWduYXRpb247CivkuI3oqIDogIzllrsgPCBpdFwtZ29lc1wtd2l0aG91dFwtc2F5aW5nOwor5bel5qWt5YyW5ZyL5a62IDwgaW5kdXN0cmlhbGl6ZWRcLWNvdW50cnk7CivmraXoqr/kuIDoh7QgPCB0b1wtYmVcLXVuaXRlZFwtaW5cLWFjdGlvbjsKK+erpeipsSA8IGNoaWxkcmVuJydzXC1mYWlyeVwtdGFsZXM7CivmrqIgPCBiZVwtaW5cLWdyZWF0XC1kaWZmaWN1bHR5Owor5qexIDwgZmlyZXdvb2RcLWZvclwtc2FjcmlmaWNlOwor5LiK5Y2K5bm0IDwgZmlyc3RcLWhhbGZcLVwob2ZcLWFcLXllYXJcKTsKK+S4jeimgeiHiSA8IGhhdmVcLW5vXC1zZW5zZVwtb2ZcLXNoYW1lOwor6IOM5Zyw6aKoIDwgYmVoaW5kXC1zb21lYm9keScnc1wtYmFjazsKK+eUqOaItuWIsOe2sue1oeeahOaOpeWPoyA8IHVzZXJcLW5ldHdvcmtcLWludGVyZmFjZTsKK+acjyA8IGxpZ2h0XC1vZlwtY3Jlc2NlbnRcLW1vb247Civml5AgPCBhblwtZW1icm9pZGVyZWRcLXBlbm5hbnQ7CivmlJkgPCB0b1wtZ2l2ZVwtYVwtaGVscGluZ1wtaGFuZDsKK+aPkOS6pCA8IHN1Ym1pdFwtXChhXC1yZXBvcnRcLFwtZXRjXCk7CivmkbAgPCB0b1wtc2VpemVcLXdpdGhcLXRoZVwtaGFuZDsKK+S+m+iBtyA8IGhvbGRcLWFuXC1vZmZpY2VcLW9yXC1wb3N0Owor5pGAIDwgdG9cLWNvdmVyXC13aXRoXC10aGVcLWhhbmQ7CivmkL4gPCB0b1wtY3J1c2hcLXdpdGhcLXRoZVwtaGFuZDsKK+S+huiHqiA8IHRvXC1jb21lXC1mcm9tXC1cKGFcLXBsYWNlXCk7Civlrproqp4gPCBhdHRyaWJ1dGl2ZVwtXChtb2RpZmllclwpOwor6L+R5bm05L6GIDwgZm9yXC10aGVcLXBhc3RcLWZld1wteWVhcnM7CivmgLkgPCBhXC1wb2xpdGVcLXZlcnNpb25cLW9mXC1oZTsKK+a8gua1gSA8IGNhcnJpZWRcLWJ5XC10aGVcLWN1cnJlbnQ7CivluoggPCB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lczsKK+W1tiA8IGxvd1wtcGFydFwtb2ZcLWFcLW1vdW50YWluOwor5a2SIDwgbGFydmFlXC1vZlwtdGhlXC1tb3NxdWl0bzsKK+ajhOasiiA8IHRvXC1hYnN0YWluXC1mcm9tXC12b3Rpbmc7CivmjY/lkIggPCB0b1wtYWN0XC1hc1wtYVwtZ29cLWJldHdlZW47Civlo5YgPCBvcGVuXC1zcGFjZVwtYWxvbmdcLXdhdGVyOwor55Sy5p2/IDwgZGVja1wtXChvZlwtYVwtYm9hdFwsXC1ldGNcLlwpOwor5YW26Ieq6LqrIDwgb25lJydzXC1vd25cLVwocmVzcGVjdGl2ZVwpOwor5pWZ576p5ZKM6IGW57SEIDwgZG9jdHJpbmVcLWFuZFwtY292ZW5hbnRzOwor5ZmAIDwgc3BpcnRcLW91dFwtb2ZcLXRoZVwtbW91dGg7CivmooXmtL4gPCB0aGVcLW1laVwtbGFuZmFuZ1wtc2Nob29sOwor54Gr54Sw5bGxIDwgdGhlXC1tb3VudGFpblwtb2ZcLWZsYW1lczsKK+a2iemBjiA8IGZvcmRcLVwoYVwtc3RyZWFtXCxcLXJpdmVyXCk7Civlj50gPCB0b1wtcmVzcGVjdGZ1bGx5XC1pbmZvcm07Civlt6XkvZznq5kgPCBcKGNvbXB1dGVyXClcLXdvcmtzdGF0aW9uOwor6auU5YWnIDwgaW50ZXJuYWxcLVwodG9cLXRoZVwtYm9keVwpOwor5LyuIDwgdG9cLW1ha2VcLWFcLWdyZWF0XC1lZmZvcnQ7CivpgJroqIrpgJrpgZMgPCBjb21tdW5pY2F0aW9uc1wtY2hhbm5lbDsKK+S2pSA8IHVuZXZlbmx5XC1maXR0aW5nXC10ZWV0aDsKK+S2pCA8IHNvdW5kXC1vZlwtY2hld2luZ1wtYm9uZXM7CivktoIgPCBhXC1zcXVpcnJlbFwtbGlrZVwtYW5pbWFsOwor5LOuIDwgdG9cLWxvb2tcLWF0XC1pblwtc3VycHJpc2U7CivkspogPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtc2hhZDsKK+aOoeioquiomOiAhSA8IGludmVzdGlnYXRpdmVcLXJlcG9ydGVyOwor5LC1IDwgbG9va3NcLWxpa2VcLWNvbW1vblwtY2FycDsKK+SwsCA8IGRyZWFyeVwtY3JpZXNcLW9mXC1naG9zdHM7CivkrrogPCBsdXh1cmlhbnRcLW9mXC10aGVcLWdyYXNzOwor5K6qIDwgdG9cLWdlbGRcLWFcLWhvcnNlXC1vclwtYXNzOwor5Km8IDwgc3RpdGNoZXNcLW9uXC1hXC1jb3ZlcmxldDsKK+SpjSA8IHRvXC1sb29rXC1wYWxlXC1vclwtcGFsbGlkOwor5Ki1IDwgcmFpbmVkXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkpoggPCB0b1wtc2lnaFwtaW5cLWxhbWVudGF0aW9uOwor5KWfIDwgYVwtbWV0YWxcLW1hcmtpbmdcLVwtc3Rha2U7CivohIrmpI4gPCBiYWNrXC1cKG9mXC1hXC12ZXJ0aWJyYXRlXCk7CivkvK/niLYgPCBmYXRoZXInJ3NcLWVsZGVyXC1icm90aGVyOwor5KKOIDwgaW5kaWNhdGluZ1wtZXhjbGFtYXRpb247CivkobUgPCBkZWNvcmF0aW9uXC1vblwtY2FycmlhZ2U7CivkobAgPCBzdHJvbmdcLWFuZFwtZHVyYWJsZVwtaHViOwor5KGsIDwgY292ZXJpbmdcLW9mXC1hXC1jYXJyaWFnZTsKK+ShgSA8IG5vdFwtd2VsbFwtZm9ybWVkXC1maWd1cmU7Civkn70gPCBzY2F0dGVyZWRcLW9yXC1kaXNwZXJzZWQ7CivknpggPCB0b1wtZ29cLXN0cmFpZ2h0XC1mb3J3YXJkOwor5J2iIDwgYW5cLWFuaW1hbFwtaW5cLW9sZFwtdGltZXM7Civkv53lrokgPCBlbnN1cmVcLXB1YmxpY1wtc2VjdXJpdHk7CivknZMgPCBsb25nXC1iZWFyZFwtb3JcLXdoaXNrZXJzOwor5Jy6IDwgaHVza2luZ1wtYmVhbnNcLWZvclwtY2FrZTsKK+ScoSA8IHRvXC1zbWVsbFwtdGhlXC1mcmFncmFudHM7Civkm5kgPCB0b1wtc21lbGxcLXRoZVwtZnJhZ3JhbmNlOwor5JqeIDwgdGhlXC1taWRkbGVcLW9mXC10aGVcLWhvcm47CivljbDmrZDkurogPCBpbmRvXC1ldXJvcGVhblwtXChwZXJzb25cKTsKK+SZhCA8IGNsb3RoZXNcLXdpdGhcLXRoaWNrXC1oZW07CivkmL0gPCBjbG90aGluZ1wtYW5kXC1vcm5hbWVudHM7CivklbQgPCBhXC1zZWNvbmRcLWZvclwtbW9ua3Nob29kOwor5JSgIDwgdGhpblwtcm9vdFwtb2ZcLXRoZVwtbG90dXM7Civkj6kgPCB0b1wtc2hydWdcLXRoZVwtc2hvdWxkZXJzOwor5I2xIDwgdGhlXC13aWxkXC1nb2F0XC1vclwtc2hlZXA7Civki6ogPCBmaW5lXC1hbmRcLWRlbGljYXRlXC1zaWxrOwor5IqPIDwgbWl4aW5nXC1yaWNlXC13aXRoXC1icm90aDsKK+SIhCA8IGFcLWtpbmRcLW9mXC1zb2xpZFwtYmFtYm9vOwor5LiK6LqrIDwgdXBwZXJcLXBhcnRcLW9mXC10aGVcLWJvZHk7Civkh6MgPCBiYW1ib29cLXdpdGhcLXdoaXRlXC1iYXJrOwor5ISgIDwgdG9cLXNhY3JpZmljZVwtdG9cLWhlYXZlbjsKK+SDpyA8IHNvdW5kXC1vZlwtZmFsbGluZ1wtcm9ja3M7CivkgIQgPCBjb250YWluZXJcLWZ1bGxcLW9mXC1mb29kOwor47+LIDwgYVwta2luZFwtb2ZcLXNraW5cLWRpc2Vhc2U7CivjvJ4gPCBqYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aDsKK+O6niA8IHRvXC1zaWduXC1pblwtbGFtZW50YXRpb247CivlnablhYvou4ogPCB0YW5rXC1cKGFybW9yZWRcLXZlaGljbGVcKTsKK+O4ryA8IGFcLWZpbmVcLWJyZWVkXC1vZlwtY2F0dGxlOwor5q+U6LyD6ICM6KiAIDwgY29tcGFyYXRpdmVseVwtc3BlYWtpbmc7Civjta8gPCBzb3VuZFwtb2ZcLXdhdGVyXC1mbG93aW5nOwor47OvIDwgZ29kZGVzc1wtb2ZcLWFuXC1pbmtcLXNsYWI7CivjsYYgPCB0b1wtc21pbGVcLWF0XC1lYWNoXC1vdGhlcjsKK+OwqCA8IHRvXC10YWtlXC1icmVhdGhcLW9yXC1yZXN0Owor466RIDwgc291bmRcLW9mXC1icm9rZW5cLXN0aWNrczsKK+OtryA8IHRyZWVcLXdpdGhcLXNtYWxsXC1sZWF2ZXM7CivlrZfmrrUgPCBcKG51bWVyaWNcLFwtZGF0ZGFcKVwtZmllbGQ7Civjq4ogPCBmbHV0dGVyaW5nXC1vZlwtdGhlXC1mbGFnOwor46qjIDwgYVwtcGxhY2VcLWluXC1oYW5cLWR5bmFzdHk7Civjqp8gPCB0b1wtcmVnYXJkXC1hc1wtaW1wb3J0YW50Owor46qeIDwgdG9cLWJlXC1oZWxkXC1ieVwtdGhlXC1oYW5kOwor46m6IDwgYVwtY3JhY2tcLW9uXC10aGVcLXV0ZW5zaWw7CivjqZwgPCB0b1wtYmVcLWluXC1wb3NzZXNzaW9uXC1vZjsKK+OpjiA8IHRvXC1wcmVzc1wtd2l0aFwtYVwtZmluZ2VyOwor46e2IDwgdGhlXC1qaW5nbGluZ1wtb2ZcLW1ldGFsczsKK+OnmSA8IHRvXC1naXZlXC1hXC1wbGF5ZnVsXC1ibG93Owor46eDIDwgdG9cLXJlY2VpdmVcLXdoYXRcLWlzXC1kdWU7CivjpqMgPCB0b1wtdGFsa1wtaW5cLW9uZScnc1wtc2xlZXA7CivjpoQgPCBoYXJkXC10b1wtc2F5XC1vclwtcHJlZGljdDsKK+OkiiA8IGNoZWVyZnVsXC1hbmRcLWV4dWJlcmFudDsKK+S4puiIiSA8IGRldmVsb3BcLXNpbXVsdGFuZW91c2x5Owor46KJIDwgYVwtcm9vbVwtd2l0aFwtb3Blblwtc3BhY2U7CivkuIDomZ8gPCBmaXJzdFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+OglCA8IHNoYXBlc1wtb2ZcLXRoZVwtbW91bnRhaW47Civjn7sgPCB0aGVcLW1vYXRcLWFyb3VuZFwtYVwtY2l0eTsKK+mboumWi+aVhemEiSA8IHRvXC1sZWF2ZVwtb25lJydcLWhvbWVsYW5kOwor45uzIDwgYW5cLWFibm9tYWxcLXVuYm9yblwtYmFieTsKK+OatyA8IHRoZVwtYnJlYXN0c1wtb2ZcLWFcLXdvbWFuOwor45mzIDwgcnVnZ2VkbmVzc1wtb2ZcLXRoZVwtcm9hZDsKK+OZpCA8IGFcLWNyYWNrXC1pblwtZWFydGhlbndhcmU7CivjmZggPCB1c2VkXC1pblwtbmFtaW5nXC1hXC1wbGFjZTsKK+OXgiA8IHRvXC1rZWVwXC10aGVcLW1vdXRoXC1zaHV0Owor45aQIDwgc291bmRcLW9mXC1jYWxsaW5nXC1kdWNrczsKK+OUtCA8IGFncmljdWx0dXJhbFwtaW1wbGVtZW50Owor45O5IDwgYVwtc2hhcnBcLXBvaW50ZWRcLXdlYXBvbjsKK+OTpiA8IHRvXC1kZWxpYmVyYXRlXC1hbmRcLXBsYW47Civjk5ggPCBqYWRlXC13aXRoXC1zb21lXC1kZWZlY3RzOwor5LiN5YOP5qijIDwgaW5cLW5vXC1zaGFwZVwtdG9cLWJlXC1zZWVuOwor5a+p5YikIDwgcHV0XC1cKHNvbWVvbmVcKVwtdG9cLXRyaWFsOwor5ZCQ6JWDIDwgYW5jaWVudFwtbmFtZVwtZm9yXC10aWJldDsKK+a4rOWumiA8IHRvXC1zdXJ2ZXlcLWFuZFwtZXZhbHVhdGU7Civms7DnvoUgPCBcKGVuZ2xpc2hcLXN1cm5hbWVcKVwtdHlsbzsKK+WQnuiBsiA8IHRvXC1zd2FsbG93XC1vbmUnJ3NcLWNyaWVzOwor6K6K5YiG5rOVIDwgY2FsY3VsdXNcLW9mXC12YXJpYXRpb25zOwor6LKh5pyDIDwgZmluYW5jZVwtYW5kXC1hY2NvdW50aW5nOwor6YCa5L+h57ay57WhIDwgY29tbXVuaWNhdGlvbnNcLW5ldHdvcms7CivkuqTmmJMgPCBcKGJ1c2luZXNzXClcLXRyYW5zYWN0aW9uOwor6KW/6YGK6KiYIDwgcGlsZ3JpbWFnZVwtdG9cLXRoZVwtd2VzdDsKK+aVuOWtl+mAmuS/oSA8IGRpZ2l0YWxcLWNvbW11bmljYXRpb25zOwor54++5b25IDwgXChtaWxpdGFyeVwpXC1hY3RpdmVcLWR1dHk7CivlhbHnlKLpu6jlk6EgPCBjb21tdW5pc3RcLXBhcnR5XC1tZW1iZXI7CivmsJHpgbggPCBkZW1vY3JhdGljYWxseVwtZWxlY3RlZDsKK+a1t+aLlCA8IGhlaWdodFwtYWJvdmVcLXNlYVwtbGV2ZWw7CivntrLot6/mnrbmp4sgPCBuZXR3b3JrXC1pbmZyYXN0cnVjdHVyZTsKK+enkeaKgCA8IHNjaWVuY2VcLWFuZFwtdGVjaG5vbG9neTsKK+S7u+WFjSA8IHRvXC1hcHBvaW50XC1hbmRcLWRpc21pc3M7CivnlaLmpa3nlJ8gPCBncmFkdWF0ZVwtXChvZlwtYVwtc2Nob29sXCk7CivkuoLlr6sgPCB0b1wtd3JpdGVcLXdpdGhvdXRcLWJhc2lzOwor6Zu26YyiIDwgY2hhbmdlXC1cKHNhaWRcLW9mXC1tb25leVwpOwor5LiN5pyNIDwgbm90XC1hY2NlcHRcLVwoc29tZXRoaW5nXCk7CivpvLvlhZIgPCBhXC1ob2xlXC1pblwtYW5cLWltcGxlbWVudDsKK+aEn+WYhiA8IHRvXC1zaWdoXC1cKHdpdGhcLWZlZWxpbmdcKTsKK+WMluijnSA8IFwob2ZcLWFjdG9yc1wpXC10b1wtbWFrZVwtdXA7CivkupHljZcgPCB5dW5uYW5cLXByb3ZpbmNlXCxcLWNoaW5hOwor5pyN5a6MIDwgc2VydmVcLW91dFwtXChhXC1zZW50ZW5jZVwpOwor6buD5bGxIDwgbXRcLlwtaHVhbmdcLVwoaHVhbmdcLXNoYW5cKTsKK+WPpOazoiA8IGd1Ym9cLVwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+eMnOaLsyA8IGFcLWZpbmdlclwtZ3Vlc3NpbmdcLWdhbWU7Civnvo7lnIvkuYvpn7MgPCB2b2ljZVwtb2ZcLWFtZXJpY2FcLXJhZGlvOwor6IOM6buR6Y2LIDwgdG9cLWJlXC1tYWRlXC1hXC1zY2FwZWdvYXQ7CivliqnoqZ4gPCBwYXJ0aWNsZVwtXChncmFtbWF0aWNhbFwpOwor6Z2I5pWP5bqmIDwgXChsZXZlbFwtb2ZcKVwtc2Vuc2l0aXZpdHk7CivmqJnmupbntYTnuZQgPCBzdGFuZGFyZHNcLW9yZ2FuaXphdGlvbjsKK+eNqOaUrOW4guWgtCA8IHRvXC1tb25vcG9saXplXC1hXC1tYXJrZXQ7Civop4kgPCB0b1wtd2FrZVwtdXBcLWZyb21cLXNsZWVwOwor55KwIDwgamFkZVwtcmluZ1wtb3JcLWJyYWNlbGV0Owor5YiSIDwgdG9cLXJvd1wtb3JcLXBhZGRsZVwtYm9hdDsKK+WgqiA8IGFkZXF1YXRlbHlcLWNhcGFibGVcLW9mOwor5ZC0IDwgbmFtZVwtb2ZcLXdhcnJpbmdcLXN0YXRlOwor6bO0IDwgY3J5XC1vZlwtYmlyZFwtb3JcLWFuaW1hbDsKK+WRiSA8IG9uZVwtb2ZcLXdhcnJpbmdcLXN0YXRlczsKK+mmsyA8IGdvXC1xdWlja2x5XC1vclwtc3dpZnRseTsKK+amjiA8IHNtYWxsXC1ldmVyZ3JlZW5cLXNocnViOwor5ae7IDwgcmVsYXRpdmVzXC1ieVwtbWFycmlhZ2U7CivnrZIgPCB0aGlja1wtcGllY2VcLW9mXC1iYW1ib287CivluJggPCBmbGFnXC1zaWduXC1vZlwtYVwtdGF2ZXJuOwor56i7IDwgcmljZVwtZ3Jvd2luZ1wtaW5cLWZpZWxkOwor56awIDwgb25lJydzXC1kZWNlYXNlZFwtZmF0aGVyOwor5YmCIDwgbWVkaWNpbmFsXC1wcmVwYXJhdGlvbjsKK+ePgiA8IGluZmVyaW9yXC1raW5kXC1vZlwtamFkZTsKK+WYnyA8IHNvdW5kXC1vZlwtaG9yblwtdG9vdGluZzsKK+eRnCA8IGZsYXdsZXNzXC1nZW1cLW9yXC1qZXdlbDsKK+ePkSA8IGFcLWdlbVwtY3V0XC1saWtlXC1kcmFnb247Civor6wgPCBtYWtlXC1mYWxzZVwtYWNjdXNhdGlvbjsKK+WrliA8IHBhdHJvbml6ZVwtcHJvc3RpdHV0ZXM7Civpo5IgPCB0aGVcLXNvdW5kXC1vZlwtdGhlXC13aW5kOwor6ZSiIDwgcnVuXC1tZXRhbFwtaW50b1wtY3JhY2tzOwor5o6WIDwgc3VwcG9ydFwtd2l0aFwtdGhlXC1hcm1zOwor5qOjIDwga2VycmlhXC1qYXBvbmljYVwtcGxhbnQ7Civoj4EgPCBmbG93ZXJcLW9mXC1sZWVrXC1mYW1pbHk7CivlkqkgPCB0aGVcLWJsZWF0aW5nXC1vZlwtc2hlZXA7Civnj4kgPCBzdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+mSjiA8IHRvb2xcLWZvclwtYm9yaW5nXC1ob2xlczsKK+aKnyA8IHJvbGxcLWFyb3VuZFwtd2l0aFwtaGFuZDsKK+i2uCA8IHNlbGxcLW9yXC1idXlcLXdob2xlc2FsZTsKK+WmoyA8IG9uZScnc1wtZGVjZWFzZWRcLW1vdGhlcjsKK+W1iiA8IGRpc3RyaWN0XC1pblwtc2hhb2hzaW5nOwor56y4IDwgZmxhdFwtYmFza2V0XC1mb3JcLWdyYWluOwor6IKrIDwgdGhlXC1naXp6YXJkXC1vZlwtYVwtZm93bDsKK+iLqyA8IHJ1c2hcLW9yXC1zdHJhd1wtbWF0dGluZzsKK+WzpCA8IGhpZ2hcLXBvaW50ZWRcLW1vdW50YWluOwor56etIDwgb25lXC10aG91c2FuZFwtbWlsbGlvbnM7Civlp5IgPCB3aWZlXC1vZlwtZWxkZXJcLWJyb3RoZXI7Civok7AgPCB0b1wtaW5jcmVhc2VcLWZpdmVcLWZvbGQ7CivokowgPCBhcnRlbWlzaWFcLXN0ZWxsZXJpYW5hOwor6YWDIDwgdGhlXC1zcGlyaXRcLW9mXC1hXC1iZWluZzsKK+ezlyA8IHBhcmNoZWRcLXdoZWF0XC1vclwtcmljZTsKK+i+iyA8IGV4dGVyaW9yXC1yaW1cLW9mXC13aGVlbDsKK+mrqyA8IGNoaWxkcmVuJydzXC1oYWlyXC1zdHlsZTsKK+iZuiA8IGxhcmdlXC1wb2lzb25vdXNcLXNuYWtlOwor6Ya1IDwgY29udHJpYnV0ZVwtZm9yXC1kcmlua3M7CivomqwgPCBhXC12YXJpZXR5XC1vZlwtYml2YWx2ZXM7Civoo7wgPCB0b1wtdGFrZVwtb2ZmXC1vbmUnJ3NcLXRvcDsKK+ectSA8IGV5ZXNcLWRpc2Vhc2VkXC1hbmRcLWRpbTsKK+aetSA8IGhvbGxvXC1zdHVtcFwtb2ZcLWFcLXRyZWU7CivomKkgPCBhcnRlbWlzaWFcLXN0ZWxsYXJpYW5hOwor6K6T5Z2QIDwgdG9cLWdpdmVcLXVwXC1vbmUnJ3NcLXNlYXQ7CivlvazlvazmnInnpq4gPCByZWZpbmVkXC1hbmRcLWNvdXJ0ZW91czsKK+e2sue1oeeuoeeQhuWToSA8IG5ldHdvcmtcLWFkbWluaXN0cmF0b3I7Civmsrnlg7kgPCBvaWxcLVwocGV0cm9sZXVtXClcLXByaWNlOwor6Luf56Gs5Lu2IDwgc29mdHdhcmVcLWFuZFwtaGFyZHdhcmU7Civlt6jpoY0gPCBhXC1odWdlXC1zdW1cLVwob2ZcLW1vbmV5XCk7CivlpZTmlL4gPCBib2xkXC1hbmRcLXVucmVzdHJhaW5lZDsKK+W+l+aEjyA8IFwoYmVcKVwtcHJvdWRcLW9mXC1vbmVzZWxmOwor5a6M5YWo5YW85a65IDwgY29tcGxldGVseVwtY29tcGF0aWJsZTsKK+eGsemWgOiyqCA8IGdvb2RzXC1pblwtZ3JlYXRcLWRlbWFuZDsKK+mAmuS/oemHjyA8IGNvbW11bmljYXRpb25zXC12b2x1bWU7CivlpZTlv5kgPCBiZVwtYnVzeVwtcnVzaGluZ1wtYWJvdXQ7Civop4DmuKzooZvmmJ8gPCBvYnNlcnZhdGlvblwtc2F0ZWxsaXRlOwor5Ymb55u0IDwgdXByaWdodFwtYW5kXC1vdXRzcG9rZW47Civlt6Hpgo8gPCBiZVwtb25cLVwocG9saWNlXClcLXBhdHJvbDsKK+elneizgOipniA8IGNvbmdyYXR1bGF0b3J5XC1zcGVlY2g7Civpm7vohabovJTliqnoqK3oqIggPCBjb21wdXRlclwtYWlkZWRcLWRlc2lnbjsKK+mZjeemjyA8IGJsZXNzaW5nc1wtZnJvbVwtaGVhdmVuOwor54K46JelIDwgZXhwbG9zaXZlXC1cKHN1YnN0YW5jZVwpOwor5bm+5Y2B5bm0IDwgc2V2ZXJhbFwtdGVuc1wtb2ZcLXllYXJzOwor5aSi5oOzIDwgdG9cLWRyZWFtXC1vZlwtXChpblwtdmFpblwpOwor6Ziy56m6IDwgYW50aVwtYWlyY3JhZnRcLWRlZmVuc2U7CivkuInokKzkuIPljYMgPCB0aGlydHlcLXNldmVuXC10aG91c2FuZDsKK+WFiOmAsiA8IGFkdmFuY2VkXC1cKHRlY2hub2xvZ3lcKTsKK+Wkp+i1puWci+mamyA8IGFtbmVzdHlcLWludGVybmF0aW9uYWw7Civmg4XloLHlrpjlk6EgPCBpbnRlbGxpZ2VuY2VcLW9mZmljaWFsOwor5aWU5ZG9IDwgcnVzaFwtYWJvdXRcLW9uXC1lcnJhbmRzOwor5q+U5pa56KqqIDwgdG9cLW1ha2VcLWFuXC1hbmFsb2d5XC5cLlwuOwor6Zu756OB5Zmq6IGyIDwgZWxlY3Ryb21hZ25ldGljXC1ub2lzZTsKK+mVt+mAlOe2sui3ryA8IGxvbmdcLWRpc3RhbmNlXC1uZXR3b3JrOwor6Iqd5Yqg5ZOl5aSn5a24IDwgdW5pdmVyc2l0eVwtb2ZcLWNoaWNhZ287Civop6PmsbogPCB0b1wtc2V0dGxlXC1cKGFcLWRpc3B1dGVcKTsKK+m8gyA8IHRoZVwtZWRpYmxlXC13YXRlclwtZnJvZzsKK+m6peiKveezliA8IG1hbHRvc2VcLVwoc3dlZXRcLXN5cnVwXCk7Civpt4AgPCB0aGVcLWZpc2hpbmdcLWNvcm1vcmFudDsKK+e+juiBr+ekviA8IGFzc29jaWF0ZWRcLXByZXNzXC1cKGFwXCk7CivptKAgPCBhXC1raW5kXC1vZlwtbmlnaHRpbmdhbGU7CivpmLLmsrsgPCBcKHByZXZlbnRpb25cLWFuZFwpXC1jdXJlOwor6bCkIDwgc2VyaW9sYVwtcWlucXVlcmFkaWF0YTsKK+avlOiJsuWIhuaekCA8IGNvbG9yaW1ldHJpY1wtYW5hbHlzaXM7Civpr4QgPCBsZXBpZG90cmlnbGFcLXN0cmF1Y2hpOwor6auIIDwgZGVmaW5lZFwtYXNcLXRoZVwtcGVsdmlzOwor5o6o6Jam5L+hIDwgcmVjb21tZW5kYXRpb25cLWxldHRlcjsKK+W6q+eIvuW+t+S6uiA8IGt1cmRpc2hcLXBlcnNvblx8cGVvcGxlOwor5b6u6Luf5YWs5Y+4IDwgbWljcm9zb2Z0XC1jb3Jwb3JhdGlvbjsKK+WIhuapnyA8IFwodGVsZXBob25lXClcLWV4dGVuc2lvbjsKK+miuCA8IGNvb2xcLWJyZWV6ZVwtb2ZcLWF1dHVtbjsKK+ecvuacmyA8IHBlb3BsZScnc1wtZXhwZWN0YXRpb25zOwor5LiN6K2Y5oqs6IiJIDwgZmFpbFwtdG9cLWFwcHJlY2lhdGVcLXNiOwor55m957OWIDwgXChyZWZpbmVkXClcLXdoaXRlXC1zdWdhcjsKK+aTgeaItCA8IHRvXC1zdXBwb3J0XC1cKGFcLXBlcnNvblwpOwor5bit5Y235Lqe5rSyIDwgdG9cLXN3ZWVwXC10aHJvdWdoXC1hc2lhOwor6KGo6YGUIDwgdG9cLXZvaWNlXC1cKGFuXC1vcGluaW9uXCk7Civlub7lpKnkvoYgPCBmb3JcLXRoZVwtcGFzdFwtZmV3XC1kYXlzOwor5aCx5pmCIDwgZ2l2ZVwtdGhlXC1jb3JyZWN0XC10aW1lOwor6Zqo5ZKMIDwgYW1pYWJsZVwtXChkaXNwb3NpdGlvblwpOwor5L2c5qWt55Kw5aKDIDwgb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+mFjiA8IGRvdWJsZVwtZmVybWVudGVkXC13aW5lOwor5Ye95o6IIDwgY29ycmVzcG9uZGVuY2VcLWNvdXJzZTsKK+i/t+aIgCA8IHRvXC1iZVwtaW5mYXR1YXRlZFwtd2l0aDsKK+mZuOa1t+epuuS4iei7jSA8IGFybXlcLFwtbmF2eVwsXC1haXJcLWZvcmNlOwor5oqV5LqG56WoIDwgcGFzdFwtdGVuc2VcLW9mXC10b1wtdm90ZTsKK+iCr+WwvOi/qiA8IGtlbm5lZHlcLVwocHJvcGVyXC1uYW1lXCk7Civmi5fpmbcgPCBnZW9sb2dpY2FsXC1kZXByZXNzaW9uOwor5YWN55arIDwgaW1tdW5pdHlcLVwodG9cLWRpc2Vhc2VcKTsKK+WFrOeEtiA8IFwoZG9cLXNvbWV0aGluZ1wpXC1vcGVubHk7CivmmbrmhafnlKLmrIogPCBpbnRlbGxlY3R1YWxcLXByb3BlcnR5Owor6LC6IDwgdGhlXC1tb3V0aFwtb2ZcLWFcLXZhbGxleTsKK+WgheaMgSA8IHRvXC1jb250aW51ZVwtdXBob2xkaW5nOwor5Ye65beuIDwgYmVcLW9uXC1hXC1idXNpbmVzc1wtdHJpcDsKK+iguCA8IGF1bGFjb3Bob3JhXC1mZW1vcmFsaXM7CivmvLjpgLIgPCBwcm9ncmVzc1wtc3RlcFwtYnlcLXN0ZXA7CivonLogPCByZWZsZWN0aW9uXC1vZlwtcmFpbmJvdzsKK+acrOWcn+WMlui7n+S7tiA8IHNvZnR3YXJlXC1sb2NhbGl6YXRpb247CivomJggPCBhXC1raW5kXC1vZlwtd2lsZFwtZ2luZ2VyOwor6ZmQ5Yi2IDwgXChpbXBvc2VcKVwtcmVzdHJpY3Rpb25zOwor6JWaIDwgdGhlXC1jYWx5eFwtb2ZcLWFcLWZsb3dlcjsKK+S/neitt+WNgCA8IGNvbnNlcnZhdGlvblwtZGlzdHJpY3Q7CivokbkgPCBraW5kXC1vZlwtY2hyeXNhbnRoZW11bTsKK+iQuyA8IHNtYWxsXC1idWRkaGlzdFwtdGVtcGxlOwor5bm05YidIDwgYmVnaW5uaW5nXC1vZlwtdGhlXC15ZWFyOwor6IiaIDwgdG9cLXB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+Wlp+W+t+izvSA8IHRoZVwtb2R5c3NleVwsXC1ieVwtaG9tZXI7Civpq5jntJrlrpjlk6EgPCBoaWdoXC1yYW5raW5nXC1vZmZpY2lhbDsKK+WNiuWknOS4ieabtCA8IGluXC10aGVcLWRlcHRoXC1vZlwtbmlnaHQ7CivnrYbpjIQgPCBwdXRcLWRvd25cLVwoaW5cLXdyaXRpbmdcKTsKK+aMieiEiCA8IGZlZWxcLVwodGFrZVwpXC10aGVcLXB1bHNlOwor57m0IDwgYVwta2luZFwtb2ZcLWZpc2hpbmdcLW5ldDsKK+ervCA8IGJhbWJvb1wtY292ZXJcLWZvclwtYm9hdDsKK+WPlua2iOemgeS7pCA8IHRvXC1saWZlXC1hXC1wcm9oaWJpdGlvbjsKK+emqCA8IHByYXlcLWZvclwtZ29vZFwtZm9ydHVuZTsKK+aLm+iBmCA8IHRha2VcLWpvYlwtYXBwbGljYXRpb25zOwor6LaK5Y2X6KqeIDwgdmlldG5hbWVzZVwtXChsYW5ndWFnZVwpOwor55mlIDwgb2JzdHJ1Y3Rpb25cLW9mXC1ib3dlbHM7Civnl48gPCBhXC1icnVpc2VcLW9yXC1jb250dXNpb247CivmjIHkuI3lkIzmlL/opovogIUgPCBcKHBvbGl0aWNhbFwpXC1kaXNzaWRlbnQ7CivlhYnlt54gPCBrd2FuZ2p1XC1cKHNvdXRoXC1rb3JlYVwpOwor5a+m6Zqb5oeJ55SoIDwgcHJhY3RpY2FsXC1hcHBsaWNhdGlvbjsKK+eSoSA8IGphZGVcLWxvb2tcLWFsaWtlXC1zdG9uZTsKK+W3peWVhiA8IGluZHVzdHJ5XC1hbmRcLWNvbW1lcmNlOwor5r6z5rSyIDwgYXVzdHJhbGlhXC1cKGNvbnRpbmVudFwpOwor55Sf55Si6IO95YqbIDwgbWFudWZhY3R1cmluZ1wtYWJpbGl0eTsKK+e4vee1semBuOiIiSA8IHByZXNpZGVudGlhbFwtZWxlY3Rpb247Civnmq7lhZIgPCBcKGRvdWdoXCxcLWV0Y1wuXCl3cmFwcGVyczsKK+a+giA8IGNsZWFyXC1hbmRcLXN0aWxsXC13YXRlcjsKK+eUmOiChSA8IGdhbnN1XC1wcm92aW5jZVwsXC1jaGluYTsKK+S4jeaTh+aJi+autSA8IGJ5XC1mYWlyXC1tZWFuc1wtb3JcLWZvdWw7Civmt5wgPCByb2FyXC1vZlwtZGFzaGluZ1wtd2F2ZXM7CivmsocgPCBmbG93aW5nXC1hbmRcLWVuZ3VsZmluZzsKK+WuiemWkiA8IHBlYWNlZnVsXC1hbmRcLWNhcmVmcmVlOwor6Imx5beoIDwgdmVyeVwtZGlmZmljdWx0XC1cKHRhc2tcKTsKK+igu+apqyA8IHJ1ZGVcLWFuZFwtdW5yZWFzb25hYmxlOwor57C95a2XIDwgdG9cLXNpZ25cLVwoYVwtc2lnbmF0dXJlXCk7Civmmo4gPCBzdW5cLWJlZ2lubmluZ1wtZGVjbGluZTsKK+WuiemBqSA8IHF1aWV0XC1hbmRcLWNvbWZvcnRhYmxlOwor5ZyL6Zqb5qiZ5rqWIDwgaW50ZXJudGlvbmFsXC1zdGFuZGFyZDsKK+mHkemZteWkp+WtuCA8IHVuaXZlcnNpdHlcLW9mXC1uYW5raW5nOwor55Ww6LOq57ay6LevIDwgaGV0ZXJvZ2VuZW91c1wtbmV0d29yazsKK+eZveaJi+i1t+WutiA8IGJ1aWxkXC11cFwtZnJvbVwtbm90aGluZzsKK+W1vCA8IHdpbmRpbmdcLW1vdW50YWluXC1wYXRoOwor6JGh6JCE54mZ6KqeIDwgcG9ydHVndWVzZVwtXChsYW5ndWFnZVwpOwor5ris6ImvIDwgdG9cLXN1cnZleVwtYW5kXC1tZWFzdXJlOwor6LOH5paZ5YKz6YCB5pyN5YuZIDwgZGF0YVwtZGVsaXZlcnlcLXNlcnZpY2U7Civnj63ou4ogPCByZWd1bGFyXC1idXNcLVwoc2VydmljZVwpOwor5Z+1IDwgaGFyZGVuZWRcLWRpcnRcLW9yXC1jbGF5Owor5Ze7IDwgdG9cLXNjcmVlblwuXC1sb3F1YWNpb3VzOwor5qGI55SxIDwgbWFpblwtcG9pbnRzXC1vZlwtYVwtY2FzZTsKK+iytuisqyA8IGJhbmlzaFwtZnJvbVwtdGhlXC1jb3VydDsKK+m7g+mtmiA8IHllbGxvd1wtY3JvYWtlclwtXChmaXNoXCk7CivouqvkuJYgPCBvbmUnJ3NcLWxpZmVcLWV4cGVyaWVuY2U7CivmirHmgaggPCBoYXZlXC1hXC1nbmF3aW5nXC1yZWdyZXQ7CivljJ8gPCBkaXZhblwtZm9yXC10d29cLXBlcnNvbnM7Civlib4gPCB0b1wtcGlja1wtdXBcLXdpdGhcLWtuaWZlOwor5Zub5bm05YmNIDwgZm91clwteWVhcnNcLXByZXZpb3VzbHk7Civoh6rlj6QgPCBcKHNpbmNlXClcLWFuY2llbnRcLXRpbWVzOwor5LWXIDwgdG9cLWNsZWFuXC10aGVcLXdpdGhlcmVkOwor5LWEIDwgdG9cLWJvaWxcLW9yXC1zdGV3XC13aGVhdDsKK+SzuSA8IGFcLWtpbmRcLWRvdmVcLWxpa2VcLWJpcmQ7Civks50gPCBhXC1raW5kXC1vZlwtc21hbGxcLWJpcmRzOwor5LGfIDwgYVwta2luZFwtb2ZcLXNpbHZlclwtZmlzaDsKK+S7i+izquioquWVj+aOp+WItiA8IG1lZGl1bVwtYWNjZXNzXC1jb250cm9sOwor5K+vIDwgaGFuZ1wtZG93blwtb2ZcLXRoZVwtaGFpcjsKK+SvrSA8IG9mXC1uaWNlXC1hbmRcLWdvb2RcLWhhaXI7CivkroQgPCBhblwtb25lXC15ZWFyXC1vbGRcLWhvcnNlOwor56yG5paXIDwgcm91bmRcLWJvdHRvbWVkXC1iYXNrZXQ7CivkuIDoh4LkuYvlipsgPCBcKGxlbmRcKVwtYVwtaGVscGluZ1wtaGFuZDsKK+SqpSA8IHNoYWxsb3RzXC1vclwtc2NhbGxpb25zOwor5KmpIDwgYVwtbWVhc3VyZVwtb2ZcLWNhcGFjaXR5Owor5Ka9IDwgYW5cLWVhc3RcLWFuZFwtd2VzdFwtd2FsbDsKK+ijvemAoOWVhiA8IG1hbnVmYWN0dXJpbmdcLWNvbXBhbnk7CivkppogPCB3aWRlXC1vcGVuXC1vZlwtdGhlXC1kb29yOwor5KaMIDwgdGhlXC1kb29yXC1pc1wtd2lkZVwtb3BlbjsKK+S6jOiZnyA8IDJcLW5kXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor5KWIIDwgdGhlXC1zeW1ib2xcLWZvclwtY29iYWx0Owor5LiN5YCr5LiN6aGeIDwgbmVpdGhlclwtZmlzaFwtbm9yXC1mb3dsOwor5KSXIDwgdGFzdGVcLW9mXC1zdHJvbmdcLWRyaW5rOwor5KKpIDwgdG9cLWZvcmJpZFwtdG9cLXByb2hpYml0Owor5KG2IDwgdmVoaWNsZXNcLWFuZFwtZ2FybWVudHM7CivknpogPCB0b1wtaGFuZ1wtb25cLWFcLWJpZ1wtdHJlZTsKK+SdliA8IHJlcHRpbGVzXC13aXRob3V0XC1mZWV0Owor5JuxIDwgdG9cLXRhbGtcLXVucmVtaXR0aW5nbHk7Civkm4ogPCBjaGVlcmZ1bFwtYWxsXC10aGVcLXRpbWU7Civkm4MgPCB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor5JiQIDwgdGhlXC1ibGVlZFwtYXRcLXRoZVwtbm9zZTsKK+SXiSA8IGFcLXNtYWxsXC1zb2xpdGFyeVwtd2FzcDsKK+WfuuacrOWOn+eQhiA8IGZ1bmRhbWVudGFsXC1wcmluY2lwbGU7CivklpQgPCBhXC1raW5kXC1vZlwtd2hpdGVcLXRpZ2VyOwor5JaNIDwgdG9cLWFjdFwtd2l0aFwtcmV2ZXJlbmNlOwor5JS1IDwgZnJhZ3JhbnRcLXRob3JvdWdod29ydDsKK+iyoee2kyA8IGZpbmFuY2VcLWFuZFwtZWNvbm9taWNzOwor5JSKIDwgZGVuc2VcLWdyb3d0aFwtb2ZcLWdyYXNzOwor5JOSIDwgc2NpcnB1c1wtY3lwZXJpbnVzXC12YXI7CivmkqvppIrmiJDkurogPCB0b1wtYnJpbmdcLXVwXC1cKGFcLWNoaWxkXCk7CivkkqYgPCBncmFzc1wtZmxvYXRzXC1vblwtd2F0ZXI7CivkkoQgPCBmdWxseVwtbGFkZW5cLW9mXC1hXC1ib2F0Owor5JGdIDwgYVwtc21hbGxcLWN1cFwtd2l0aFwtZWFyczsKK+SPpCA8IHRvcFwtb2ZcLXRoZVwtaHVtYW5cLWhlYWQ7CivkuLvoqp4gPCBcKGdyYW1tYXRpY2FsXClcLXN1YmplY3Q7CivkjrYgPCBvZmZlcmluZ1wtYmxvb2RcLXRvXC1nb2Q7CivpgJrkv6HmnI3li5kgPCBjb21tdW5pY2F0aW9uXC1zZXJ2aWNlOwor5I6aIDwgdGhlXC1lbmRcLW9mXC1iaXJkXC13aW5nczsKK+SOliA8IHNvYXJpbmdcLXVwXC1pblwtdGhlXC1za3k7CivkjKcgPCBhXC1raW5kXC1vZlwtc2lsa1wtZmFicmljOwor5IyfIDwgdG9cLXdlYXZlXC1zaWxrXC1yaWJib25zOwor5ZiW5ZiWIDwgdG9cLWNsaWNrXC1vbmUnJ3NcLXRvbmd1ZTsKK+SLgiA8IGRyZXNzZXNcLWZvclwtdGhlXC1icmlkZTsKK+SIpyA8IHNraW5cLW9mXC1iYW1ib29cLXNob290czsKK+SIniA8IGFuY2llbnRcLW5hbWVcLW9mXC1pbmRpYTsKK+SHviA8IGFcLWZsdXRlXC13aXRoXC0yM1wtdHViZXM7Civkh7AgPCBhXC1iYW1ib29cLWJpbmRlZFwtdG9yY2g7Civkh6EgPCB0aGVcLXNodXR0bGVcLW9mXC1hXC1sb29tOwor5IagIDwgYVwtZ292ZXJubWVudFwtb2ZmaWNpYWw7CivkhpsgPCBzb21ldGhpbmdcLWluXC10aGVcLWNhdmU7CivpvLvnpZYgPCB0aGVcLWVhcmxpZXN0XC1hbmNlc3RvcjsKK+SFlyA8IGZvdXJcLWJ1bmRsZVwtb2ZcLWdyYWluczsKK+WPjemdqeWRvSA8IGNvdW50ZXJcLXJldm9sdXRpb25hcnk7Civkga0gPCB0b1wtZ2l2ZVwtYW5cLWFuZ3J5XC1sb29rOwor5IGaIDwgYVwta2luZFwtb2ZcLWV5ZVwtZGlzZWFzZTsKK+SAvSA8IHRvXC1sb29rXC1hdFwtZWFjaFwtb3RoZXI7CivkgKAgPCBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWU7CivkgJMgPCB0b1wtdHVyblwtb25lJydzXC1leWVzXC10bzsKK+O/tCA8IHdpZGVcLXBpZWNlXC1vZlwtbGVhdGhlcjsKK+O/qyA8IHRvXC1zcGxpdFwtdGFuZ2xlZFwtaGVtcDsKK+O/jyA8IHBhcmFseXNpc1wtb2ZcLXRoZVwtYm9keTsKK+O+viA8IGRpc2Vhc2VcLW9mXC10aGVcLXRocm9hdDsKK+O8siA8IHNvdW5kXC1vZlwtYnJva2VuXC10aWxlczsKK+aIgOaEmyA8IHRvXC1oYXZlXC1hXC1sb3ZlXC1hZmZhaXI7CivjvJAgPCBhXC1raW5kXC1vZlwtd2hpdGVcLW1lbG9uOwor47m2IDwgYVwta2luZFwtb2ZcLXdpbGRcLWFuaW1hbDsKK+O5piA8IGRvZ1wtd2l0aFwtYVwtc2hvcnRcLXRhaWw7CivjuZQgPCBjYXR0bGVcLXdpdGhcLWxvbmdcLWJhY2s7CivmmrTot4wgPCBzdGVlcFwtZmFsbFwtXChpblwtcHJpY2VcKTsKK+O1qCA8IGFcLWRyeVwtbGFuZFwtaW5cLWFcLXJpdmVyOwor47OIIDwgYVwtZ3JlYXRcLWZsb3dcLW9mXC13YXRlcjsKK+iuk+mWiyA8IHRvXC1nZXRcLW91dFwtb2ZcLXRoZVwtd2F5Owor47GfIDwgdG9cLXJpcFwtb3BlblwtdGhlXC1mbGVzaDsKK+OwhCA8IGFcLXNtYWxsXC1jaGVzdG51dFwtdHJlZTsKK+OulyA8IHRoZVwtaGFuZGxlXC1vZlwtYVwtc3BlYXI7CivjrY0gPCBjYXBpdGFsXC1mb3JtXC1vZlwtc2V2ZW47CivjrKAgPCB0b1wtZXhwb3NlXC10b1wtc3VubGlnaHQ7CivmqpTmoYjliIbphY3ljYAgPCBmaWxlXC1hbGxvY2F0aW9uXC10YWJsZTsKK+OpnyA8IHRvXC1zZXdcLXNvbWVcLW9ybmFtZW50czsKK+OojCA8IHRvXC1taWxrXC1hXC1jb3dcLW9yXC1nb2F0Owor5bCx5L6/IDwgYXRcLVwoeW91clwpXC1jb252ZW5pZW5jZTsKK+WPr+i6qyA8IHRvXC1maXRcLXdlbGxcLVwoY2xvdGhlc1wpOwor56eR56CUIDwgXChzY2llbnRpZmljXClcLXJlc2VhcmNoOwor46CLIDwgYVwtbG9mdHlcLW1vdW50YWluXC1wZWFrOwor45+eIDwgcHJlY2lwaXRvdXNcLWFuZFwtbG9mdHk7Civjn50gPCB0b1wtYmFua1wtdXBcLXdpdGhcLWVhcnRoOwor45+cIDwgc2hhcGVcLW9mXC10aGVcLW1vdW50YWluOwor45+WIDwgYVwtZGlhbGVjdFwtb2ZcLW1pbm9yaXR5Owor45+OIDwgYVwtbG9uZ1wtbW91bnRhaW5cLXJpZGdlOwor456BIDwgY2FuXC1ub3RcLXdhbGtcLW5vcm1hbGx5Owor45iwIDwgbmFtZVwtb2ZcLWFcLW9sZFwtY291bnRyeTsKK+OYoSA8IGFcLXBlblwtZm9yXC13aWxkXC1iZWFzdHM7CivjmJYgPCB0b1wtbWFrZVwtYVwtZGlzdHVyYmFuY2U7CivogIHlhanlj6MgPCBhblwtb2xkXC1tYXJyaWVkXC1jb3VwbGU7Civjl4EgPCB0aGVcLXJvb2ZcLW9mXC10aGVcLW1vdXRoOwor45aXIDwgaGlnaFwtcmlkZ2VzXC1vZlwtY2xpZmZzOwor5Zyw5bCN56m65bCO5b2IIDwgZ3JvdW5kXC10b1wtYWlyXC1taXNzaWxlOwor45WiIDwgcHJvZm91bmRcLXNpZ25pZmljYW5jZTsKK+WPr+isgiA8IGl0XC1jb3VsZFwtZXZlblwtYmVcLXNhaWQ7CivorpPot68gPCB0b1wtbWFrZVwtd2F5XC1cKGZvclwtc3RoXCk7CivjkoYgPCB0b1wtZ2F0aGVyXC10aGVcLWhhcnZlc3Q7CivmiLbkuLsgPCBoZWFkXC1vZlwtdGhlXC1ob3VzZWhvbGQ7CivpoJLooYwgPCBpc3N1ZVwtZm9yXC1lbmZvcmNlbWVudDsKK+Wci+eHn+S8gealrSA8IG5hdGlvbmFsaXplZFwtaW5kdXN0cnk7CivkuozljYHlhavomZ8gPCAyOHRoXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor5rmW5Y2XIDwgaHVuYW5cLXByb3ZpbmNlXCxcLWNoaW5hOwor5pys5Zu65p6d5qauIDwgd2hlblwtdGhlXC1yb290XC1pc1wtZmlybTsKK+WCs+i8uOioreWCmSA8IHRyYW5zbWlzc2lvblwtZmFjaWxpdHk7CivppJjmlbggPCBcKG51bWVyaWNhbFwpXC1yZW1haW5kZXI7CivkuI3nrqEgPCBub1wtbWF0dGVyXC1cKHdoYXRcLFwtaG93XCk7CivniYjpnaIgPCBzcGFjZVwtb2ZcLWFcLXdob2xlXC1wYWdlOwor5LiN5piv5ZGz5YWSIDwgbm90XC10aGVcLXJpZ2h0XC1mbGF2b3VyOwor5LiN56aBIDwgY2FuJyd0XC1oZWxwXC1cKGRvaW5nXC1zdGg7CivpmqjmqZ/mmYLplpMgPCByYW5kb21cLXBlcmlvZFwtb2ZcLXRpbWU7CivmmI/ov7cgPCB0b1wtbG9zZVwtY29uc2Npb3VzbmVzczsKK+WQkOe1riA8IHRoZVwtb3BlbmluZ1wtb2ZcLWFcLWJvbGw7Civpi6rlubMgPCBzcHJlYWRcLW91dFwtXChtYXRlcmlhbFwpOwor5YKz6Ly46Led6ZuiIDwgdHJhbnNtaXNzaW9uXC1kaXN0YW5jZTsKK+aLnOaKiuWtkCA8IGJlY29tZVwtc3dvcm5cLWJyb3RoZXJzOwor5YyX5a+S5bi2IDwgdGhlXC1ub3J0aFwtZnJpZ2lkXC16b25lOwor5LiN55CGIDwgcmVmdXNlXC10b1wtYWNrbm93bGVkZ2U7Civororoh4kgPCBzdWRkZW5seVwtdHVyblwtaG9zdGlsZTsKK+WNsOW6puWwvOilv+S6nuiqniA8IGluZG9uZXNpYW5cLVwobGFuZ3VhZ2VcKTsKK+a1t+aWryA8IGhheWVzXC1cKG1pY3JvY29tcHV0ZXJcKTsKK+adseW+tyA8IFwoZm9ybWVyXClcLWVhc3RcLWdlcm1hbnk7CivmmpfnpIEgPCBzdWJtZXJnZWRcLXJlZWZcLVwocm9ja1wpOwor6LK35aW9IDwgdG9cLWluZ3JhdGlhdGVcLW9uZXNlbGY7Civlhavot6/ou40gPCB0aGVcLWVpZ2h0aFwtcm91dGVcLWFybXk7Civmmpfnlr4gPCB1bm1lbnRpb25hYmxlXC1kaXNlYXNlOwor6IGz5YuVIDwgdG9cLWNyZWF0ZVwtYVwtc2Vuc2F0aW9uOwor5Y+m6LW354iQ54G2IDwgdG9cLXN0YXJ0XC1mcm9tXC1zY3JhdGNoOwor6aaW6IWm5pyD6K2wIDwgbGVhZGVyc2hpcFwtY29uZmVyZW5jZTsKK+adv+WHsyA8IHdvb2RlblwtYmVuY2hcLW9yXC1zdG9vbDsKK+S4jeaahyA8IGhhdmVcLW5vXC10aW1lXC1cKGZvclwtc3RoOwor5oKy5oakIDwgZ3JpZWZcLWFuZFwtaW5kaWduYXRpb247CivkuI3kv6Hku7vmipXnpaggPCB2b3RlXC1vZlwtbm9cLWNvbmZpZGVuY2U7CivljZfljJfmpbUgPCBzb3V0aFwtYW5kXC1ub3J0aFwtcG9sZXM7CivlpoLlh7rkuIDovY0gPCBiZVwtcHJlY2lzZWx5XC10aGVcLXNhbWU7CivokaPkuovplbcgPCBjaGFpcm1hblwtb2ZcLXRoZVwtYm9hcmQ7CivmnKzkurrnmoTop4Dpu54gPCBcKG9uZScnc1wpXC1wZXJzb25hbFwtdmlldzsKK+eJueeUoiA8IHNwZWNpYWxcLWxvY2FsXC1wcm9kdWN0Owor6JWt5qKdIDwgXChlY29ub21pY1wpXC1kZXByZXNzaW9uOwor5LiN6KGM5LqGIDwgb25cLXRoZVwtcG9pbnRcLW9mXC1kZWF0aDsKK+efruadhuWTgeeoriA8IHNob3J0XC1zdGFsa2VkXC12YXJpZXR5Owor5q6v6JGsIDwgZnVuZXJhbFwtYW5kXC1pbnRlcm1lbnQ7Civlkb3ku6QgPCBcKGFuXClcLW9yZGVyXC1vclwtY29tbWFuZDsKK+a1geS6oSA8IHRvXC1cKGZvcmNlXC1pbnRvXClcLWV4aWxlOwor57We55uh6IWm5rGBIDwgdG9cLXdyYWNrXC1vbmUnJ3NcLWJyYWluczsKK+WFieejgeein+apnyA8IG1hZ25ldG9cLW9wdGljYWxcLWRyaXZlOwor5Y2h6KW/5bC8IDwgY2Fzc2luaVwtXChwcm9wZXJcLW5hbWVcKTsKK+WNkeaxoSA8IGRlc3BpY2FibGVcLWFuZFwtZmlsdGh5Owor5ZyL5pyJ5LyB5qWtIDwgbmF0aW9uYWxpemVkXC1idXNpbmVzczsKK+aatOWNkiA8IGRpZVwtb2ZcLXN1ZGRlblwtaWxsbmVzczsKK+mAvOimliA8IGxvb2tcLWF0XC1mcm9tXC1jbG9zZVwtdXA7Civml7rmnIggPCBidXN5XC1cKGJ1c2luZXNzXClcLW1vbnRoOwor5LuAIDwgZmlsZVwtb2ZcLXRlblwtc29sZGllcnM7CivosqwgPCBvbmUnJ3NcLXJlc3BvbnNpYmlsaXR5Owor54i1IDwgZmV1ZGFsXC10aXRsZVwtb3JcLXJhbms7CivllYogPCBleGNsYW1hdG9yeVwtcGFydGljbGU7CivmpZogPCBuYW1lXC1vZlwtZmV1ZGFsXC1zdGF0ZTsKK+aJmCA8IHRvXC1ob2xkXC11cFwtd2l0aFwtcGFsbTsKK+axsiA8IGRyYXdcLXdhdGVyXC1mcm9tXC13ZWxsOwor6a2FIDwga2luZFwtb2ZcLWZvcmVzdFwtZGVtb247CivkvIogPCB0aGlyZFwtcGVyc29uXC1wcm9ub3VuOwor6bi/IDwgc3BlY2llc1wtb2ZcLXdpbGRcLXN3YW47Civlp6UgPCBtYXRlcm5hbFwtZ3JhbmRtb3RoZXI7CivmjacgPCBob2xkXC11cFwtaW5cLXR3b1wtaGFuZHM7CivkuZkgPCBzZWNvbmRcLWhlYXZlbicnc1wtc3RlbTsKK+WQgSA8IGludGVyamVjdGlvblwtJydhbGFzXCEnJzsKK+WnqCA8IG1vdGhlclwvd2lmZScnc1wtc2lzdGVyOwor5LqpIDwgY2hpbmVzZVwtbGFuZFwtbWVhc3VyZTsKK+WDtSA8IHN0aWZmXC1hbmRcLW1vdGlvbmxlc3M7Civmi7EgPCBmb2xkXC1oYW5kc1wtb25cLWJyZWFzdDsKK+emviA8IGdyYWluXC1zdGlsbFwtb25cLXN0YWxrOwor5ZehIDwgc291bmRcLW9mXC1mbHlpbmdcLWJlZXM7CivnjKkgPCBzcGVjaWVzXC1vZlwtb3Jhbmd1dGFuOwor54ueIDwgZmVyb2Npb3VzXC1hcHBlYXJhbmNlOwor5ouIIDwgcGlja1wtdXBcLXdpdGhcLWZpbmdlcnM7CivpmZsgPCBzdGVwc1wtbGVhZGluZ1wtdGhyb25lOwor6bivIDwgZmVtYWxlXC1tYW5kYXJpblwtZHVjazsKK+WNryA8IHRoXC1vZlwtZWFydGhcLWJyYW5jaGVzOwor54agIDwgYnJpZ2h0XC1hbmRcLXNwYXJrbGluZzsKK+mYgiA8IGJsb2NrZWRcLW9yXC1zZXBhcmF0ZWQ7Civmt4UgPCB3YXRlclwtdXNlZFwtd2FzaFwtcmljZTsKK+S9miA8IGluZHVsZ2VcLWluXC1wbGVhc3VyZXM7CivovpogPCBydW1ibGluZ1wtb2ZcLXZlaGljbGVzOwor5be9IDwgdGhcLW9mXC10aGVcLThcLXRyaWdyYW1zOwor6KiHIDwgdGhlXC1zb3VuZFwtb2ZcLWFcLWNyYXNoOwor54u6IDwgdGhlXC1zbmFybGluZ1wtb2ZcLWRvZ3M7CivmtZQgPCBzdGVlcFwtYmFua1wtYnlcLXN0cmVhbTsKK+iTiiA8IGx1eHVyaWFudFwtdmVnZXRhdGlvbjsKK+iToCA8IGdyYWNpbGFyaWFcLXZlcnJ1Y29zYTsKK+iPgCA8IGx1eHVyaWFuY2VcLW9mXC1ncm93dGg7Civog5cgPCBwdXN0dWxlc1wtb2ZcLWFueVwta2luZDsKK+migyA8IGZseVwtZG93blwtb3JcLWRvd253YXJkOwor5Z6GIDwgYmxhY2tcLWNsb2RzXC1vZlwtZWFydGg7CivmqJcgPCBhaWxhbnRodXNcLWdsYW5kdWxvc2E7CivomqcgPCBhXC1yZWRcLXNwb3R0ZWRcLWxpemFyZDsKK+e8tiA8IGVhcnRoZW5cLWNyb2NrXC1vclwtamFyOwor6LGzIDwgYVwtemhvdVwtZHluYXN0eVwtc3RhdGU7CivovbogPCBzbWFsbFwtbGlnaHRcLWNhcnJpYWdlOwor6YCvIDwgbGVhdmVcLXdpdGhvdXRcLXJlYXNvbjsKK+WIl+i7iiA8IHRyYWluXC1cKHJhaWx3YXlcLXRlcm1cKTsKK+WPi+WlvSA8IGZyaWVuZGx5XC1cKHJlbGF0aW9uc1wpOwor5quD6YKKIDwgdG9cLWxpZVwtb25cLW9uZScnc1wtc2lkZTsKK+WItuijgSA8IFwoZWNvbm9taWNcKVwtc2FuY3Rpb25zOwor56S+5LqkIDwgXChzb2NpYWxcKVwtaW50ZXJhY3Rpb247Civmk43ooYwgPCBcKHN0dWRlbnQnJ3NcKVwtYmVoYXZpb3I7CivlhYnno4Hnop8gPCBtYWduZXRvXC1vcHRpY2FsXC1kaXNrOwor57eo57WEIDwgb3JnYW5pemVcLWludG9cLWdyb3VwczsKK+imqui/kSA8IGdldFwtY2xvc2VcLXRvXC1zb21lb25lOwor5Y2a6Ka95pyDIDwgXChpbnRlcm5hdGlvbmFsXClcLWZhaXI7CivlpJrnqK7oqp7oqIDmlK/mjIEgPCBtdWx0aWxpbmd1YWxcLXN1cHBvcnQ7CivntZDoq5YgPCBcKHJlYWNoXC1hXClcLWNvbmNsdXNpb247Civpl6Hov7AgPCBleHBvdW5kXC1cKGFcLXBvc2l0aW9uXCk7Civntq3lkL7niL7kurogPCB1aWdodXJcLXBlcnNvblx8cGVvcGxlOwor6ZaL6Zmk5a2457GNIDwgdG9cLWV4cGVsXC1mcm9tXC1zY2hvb2w7Civlv4Plr5IgPCBiZVwtdmVyeVwtZGlzYXBwb2ludGVkOwor57WE6KOdIDwgYXNzZW1ibGVcLWFuZFwtaW5zdGFsbDsKK+iqk+atuyA8IHRvXC1wbGVkZ2VcLW9uZScnc1wtbGlmZTsKK+S4gOiIrOaApyA8IFwoaW5cKVwtZ2VuZXJhbFwtXCh0ZXJtc1wpOwor5Z+O6YSJIDwgY2l0eVwtYW5kXC1jb3VudHJ5c2lkZTsKK+WNlOWumiA8IFwocmVhY2hcLWFuXClcLWFncmVlbWVudDsKK+mAi+mAg+iXqiA8IHJlZnVnZVwtZm9yXC1mdWdpdGl2ZXM7CivpppbluK3ku6PooaggPCBjaGllZlwtcmVwcmVzZW50YXRpdmU7CivmsLTln58gPCBcKHRlcnJpdG9yaWFsXClcLXdhdGVyczsKK+WLu+aVtCA8IG5lYXRcLWFuZFwtd2VsbFwtc3BhY2VkOwor55m955y854+gIDwgdGhlXC13aGl0ZVwtb2ZcLXRoZVwtZXllOwor54mp55CG57WQ5qeLIDwgcGh5c2ljYWxcLWNvbXBvc2l0aW9uOwor5YWn6ZajIDwgXChnb3Zlcm5tZW50XClcLWNhYmluZXQ7Civlu6DniYwgPCBicmFuZFwtXChvZlwtYVwtcHJvZHVjdFwpOwor5aW25aW2IDwgcGF0ZXJuYWxcLWdyYW5kbW90aGVyOwor57eo5qyhIDwgb3JkZXJcLW9mXC1hcnJhbmdlbWVudDsKK+Wci+acg+itsOmVtyA8IHNwZWFrZXJcLW9mXC10aGVcLWhvdXNlOwor5oeJ55So5bmz5Y+wIDwgYXBwbGljYXRpb25cLXBsYXRmb3JtOwor5pWZ5o6IIDwgdW5pdmVyc2l0eVwtcHJvZmVzc29yOwor5Yui5b+FIDwgaXNcLWJvdW5kXC10b1wtXChoYXBwZW5cKTsKK+WiqOaxgSA8IHByZXBhcmVkXC1jaGluZXNlXC1pbms7CivlpKflsIcgPCBhXC1nZW5lcmFsXC1vclwtYWRtaXJhbDsKK+awo+S6uiA8IHRvXC1nZXRcLXNvbWVvbmVcLWFuZ3J5Owor5YyF5aC0IDwgYm9va1wtYVwtd2hvbGVcLXRoZWF0cmU7Civlha3omZ8gPCA2dGhcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivljIjniZnliKnoqp4gPCBodW5nYXJpYW5cLVwobGFuZ3VhZ2VcKTsKK+ipnuW9mSA8IFwobGlzdFwtb2ZcKVwtdm9jYWJ1bGFyeTsKK+i7n+mrlOmFjemAgeiAhSA8IHNvZnR3YXJlXC1kaXN0cmlidXRvcjsKK+S4jeS/oeS7u+ahiCA8IG5vXC1jb25maWRlbmNlXC1tb3Rpb247CivpvZ4gPCB0b1wtZGlzcGxheVwtdGhlXC10ZWV0aDsKK+m8iCA8IGFcLWZyZXNoXC13YXRlclwtdHVydGxlOwor6byCIDwgYVwta2luZFwtb2ZcLXNlYVwtdHVydGxlOwor5o2V6J+y6JGJIDwgaW5zZWN0XC1jYXRjaGluZ1wtbGVhZjsKK+m4hyA8IGtpbmRcLW9mXC1iaXJkXC1vZlwtcHJleTsKK+aUneW9sSA8IHRvXC10YWtlXC1hXC1waG90b2dyYXBoOwor6biCIDwgYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor6berIDwgdHVycXVvaXNlXC1raW5nZmlzaGVyOwor6beBIDwgZmlzaGhhd2tcLWJvd1wtb3JcLXByb3c7CivmlLnlloTpl5zkv4IgPCB0b1wtaW1wcm92ZVwtcmVsYXRpb25zOwor6L6v55m9IDwgb2ZmZXJcLWFuXC1leHBsYW5hdGlvbjsKK+mwnCA8IGJpZ1wtbW91dGhlZFwtZmxvdW5kZXI7Civpq7ogPCB0aGVcLWhhaXJcLWRpc2hldmVsbGVkOwor5o6h6KiqIDwgY292ZXJcLVwoYVwtbmV3c1wtc3RvcnlcKTsKK+mqoyA8IGhvcnNlXC13aXRob3V0XC1zYWRkbGU7CivlgZzngavljZTorbAgPCBjZWFzZVwtZmlyZVwtYWdyZWVtZW50Owor6aS9IDwgbWFrZVwtcHJlc2VudFwtb2ZcLWZvb2Q7CivlhbXnq5kgPCBhcm15XC1zZXJ2aWNlXC1zdGF0aW9uOwor6Z+xIDwgd2lsZFwtb25pb25zXC1vclwtbGVla3M7Civou43osrsgPCBtaWxpdGFyeVwtZXhwZW5kaXR1cmU7CivkuozljYHkuozomZ8gPCAyMlwtbmRcLWRheVwtb2ZcLWFcLW1vbnRoOwor6ZyDIDwgbG9uZ1wtY29udGludWVkXC1yYWluczsKK+aTmuaCiSA8IGFjY29yZGluZ1wtdG9cLXJlcG9ydHM7CivliY3lubQgPCB0aGVcLXllYXJcLWJlZm9yZVwtbGFzdDsKK+mXjSA8IHRvd2VyXC1vdmVyXC1jaXR5XC1nYXRlOwor6KOc6ImyIDwgY29tcGxlbWVudGFyeVwtY29sb3VyOwor5pS75YuiIDwgXChtaWxpdGFyeVwpXC1vZmZlbnNpdmU7CivnorrmnInlhbbkuosgPCBcKGNvbmZpcm1cLXRvXC1iZVwpXC10cnVlOwor5aSn5Z6L5LyB5qWtIDwgbGFyZ2VcLXNjYWxlXC1pbmR1c3RyeTsKK+WIhuaTlCA8IHNoYXJlXC1yZXNwb25zaWJpbGl0eTsKK+mNsSA8IHRoaW5cLXBsYXRlc1wtb2ZcLW1ldGFsOwor5L2/5b6S6KGM5YKzIDwgYWN0c1wtb2ZcLXRoZVwtYXBvc3RsZXM7CivpibYgPCBzYWNyaWZpY2lhbFwtY2F1bGRyb247CivplovnmbwgPCBleHBsb2l0XC1cKGFcLXJlc291cmNlXCk7Civmrbfku6MgPCBzdWNjZXNzaXZlXC1keW5hc3RpZXM7CivphrAgPCBiaXR0ZXJcLXRhc3RlXC1pblwtd2luZTsKK+i/keaXpSA8IGluXC10aGVcLXBhc3RcLWZld1wtZGF5czsKK+WbnuioqiA8IFwocGF5XC1hXClcLXJldHVyblwtdmlzaXQ7Civlv4XkuI3lj6/lsJEgPCBhYnNvbHV0ZWx5XC1uZWNlc3Nhcnk7Civnl4XoroogPCBwYXRob2xvZ2ljYWxcLWNoYW5nZXM7Civlh4zmmaggPCBlYXJseVwtaW5cLXRoZVwtbW9ybmluZzsKK+i2giA8IHRvXC10YWtlXC1hZHZhbnRhZ2VcLW9mOwor5LiN6ZuF6KeAIDwgb2ZmZW5zaXZlXC10b1wtdGhlXC1leWU7CivmjqXmlLblmajpnYjmlY/luqYgPCByZWNlaXZlclwtc2Vuc2l0aXZpdHk7CivkuI3lnKjoqbHkuIsgPCBiZVwtbm90aGluZ1wtZGlmZmljdWx0Owor6Zmz6L+w5Y+lIDwgZGVjbGFyYXRpdmVcLXNlbnRlbmNlOwor6KWsIDwgbG93ZXJcLXBhcnRcLW9mXC1hXC1yb2JlOwor6YCZ5YCL5pyIIDwgdGhpc1wtXChjdXJyZW50XClcLW1vbnRoOwor6KKzIDwgc3ByZWFkXC1vbmUnJ3NcLWNsb3RoZXM7CivmrbfkvobmnIDkvY7pu54gPCBhbGxcLXRpbWVcLWxvd1wtXChwb2ludFwpOwor5YCN6aC75ZmoIDwgZnJlcXVlbmN5XC1tdWx0aXBsaWVyOwor5qez54uAIDwgY2VydGlmaWNhdGVcLW9mXC1tZXJpdDsKK+icmyA8IGh5ZHJvcGhpbHVzXC1jb2duYXR1czsKK+ibmiA8IGN5cnRveGlwaHVzXC1yaXRzZW1hZTsKK+awkeaXj+S4u+e+qeaDhee3kiA8IG5hdGlvbmFsaXN0XC1mZWVsaW5nczsKK+mgmOWwjuasiiA8IGxlYWRlcnNoaXBcLWF1dGhvcml0eTsKK+iWoiA8IHdvb2R5XC1jbGltYmluZ1wtcGxhbnQ7CivlgJrph40gPCB0b1wtcmVseVwtaGVhdmlseVwtdXBvbjsKK+e0gOW/teaXpSA8IGRheVwtb2ZcLWNvbW1lbW9yYXRpb247CivojIAgPCBvdmVyZ3Jvd25cLXdpdGhcLWdyYXNzOwor6IqEIDwgbWV0YXBsZXhpc1wtc3RhdW50b25pOwor5oeJ55So6Luf5Lu2IDwgYXBwbGljYXRpb25cLXNvZnR3YXJlOwor6Ii6IDwgcGxhY2VcLW5hbWVcLWluXC10YWl3YW47CivohKEgPCBzdHJpcHNcLW9mXC1kcmllZFwtbWVhdDsKK+aKiumFkiA8IHJhaXNlXC1vbmUnJ3NcLXdpbmVcLWN1cDsKK+i7jeeUqCA8IFwoZm9yXClcLW1pbGl0YXJ5XC1cKHVzZVwpOwor5Lqk5o+b5oqA6KGTIDwgc3dpdGNoaW5nXC10ZWNobm9sb2d5Owor57Gz5b6354i+5Lyv6KOhIDwgbWlkZGxlYnVyeVwtXChjb2xsZWdlXCk7Civkv53ph40gPCB0YWtlXC1jYXJlXC1vZlwtb25lc2VsZjsKK+WgseS7hyA8IHRvXC1yZXZlbmdlXC1cKG9uZXNlbGZcKTsKK+aKhOi6qyA8IHRvXC1zZWFyY2hcLVwoYVwtcGVyc29uXCk7CivnsoMgPCBlbXB0eVwtaHVza3NcLW9mXC1ncmFpbjsKK+eoi+W8j+iqnuiogCA8IHByb2dyYW1taW5nXC1sYW5ndWFnZTsKK+eZveajiee0mSA8IHN0ZW5jaWxcLXRpc3N1ZVwtcGFwZXI7CivnqqMgPCB0b1wtcnVzaFwtb3V0XC1vZlwtYVwtZGVuOwor56mHIDwgcGFuaWN1bVwtZnJ1bWVudGFjZXVtOwor5qOJ6KWWIDwgY290dG9uXC1wYWRkZWRcLWphY2tldDsKK+ejkiA8IHRvXC1mYWxsXC1mcm9tXC1vclwtaW50bzsKK+WEmOaXqSA8IGFzXC1lYXJseVwtYXNcLXBvc3NpYmxlOwor55+RIDwgdGhlXC1wdXBpbFwtb2ZcLXRoZVwtZXllOwor552NIDwgdG9cLWxvb2tcLWF0XC1mZWFyZnVsbHk7Civln7nkv64gPCB0b1wtcmVwYWlyXC1lYXJ0aHdvcmtzOwor5bCK6YeNIDwgdG9cLXZhbHVlXC1cKHNvbWV0aGluZ1wpOwor55S9IDwgZHJhaW5cLWJldHdlZW5cLWZpZWxkczsKK+eUgyA8IGJyaWNrXC13YWxsXC1vZlwtYVwtd2VsbDsKK+eZvOihqOiBsuaYjiA8IHRvXC1pc3N1ZVwtYVwtc3RhdGVtZW50Owor55CWIDwgY2FydmVkXC1qYWRlXC13aW5lXC1jdXA7CivnjqYgPCBicm9rZW5cLXBpZWNlXC1vZlwtamFkZTsKK+eXheeBtiA8IGZvY3VzXC1cKG9mXC1pbmZlY3Rpb25cKTsKK+WFqem7nuWNgeS5neWIhiA8IDJcLVw6MVwtOVwtXCh0aW1lXC1vZlwtZGF5XCk7CivkvrXopbIgPCB0b1wtaW52YWRlXC1hbmRcLWF0dGFjazsKK+eAsyA8IHRvXC1hcnJpdmVcLVwob2ZcLXdhdGVyXCk7Civpm7vlrZDlt6Xmpa0gPCBlbGVjdHJvbmljc1wtaW5kdXN0cnk7CivmvqwgPCB0b1wtcmFpblwtY29udGludW91c2x5Owor57Ch5py0IDwgc2ltcGxlXC1hbmRcLXVuYWRvcm5lZDsKK+mngemBiyA8IHRyYW5zcG9ydFwtYnlcLWxpZ2h0ZXI7CivmjKrnqqnlhZIgPCB0b1wtbW92ZVwtXCh0b1wtYVwtaG91c2VcKTsKK+WPrOmWi+acg+itsCA8IHRvXC1jYWxsXC1hXC1jb25mZXJlbmNlOwor5rSkIDwgYVwtZm91bnRhaW5cLW9yXC1zcHJpbmc7CivkvovoqIAgPCBpbnRyb2R1Y3RvcnlcLXJlbWFya3M7Civlgpnmn6UgPCBmb3JcLWZ1dHVyZVwtcmVmZXJlbmNlOwor5qe+IDwgcGFzdGVcLXdhbGxcLXdpdGhcLWRpcnQ7CivlvrflnIvkurogPCBnZXJtYW5cLXBlcnNvblx8cGVvcGxlOwor5qOoIDwgdGFsbHlcLW9yXC13b29kZW5cLXBhc3M7CivmoawgPCBwZWFyXC1hbmRcLW90aGVyXC10cmVlczsKK+WuiemAuCA8IGVhc3lcLWFuZFwtY29tZm9ydGFibGU7CivmlbMgPCB0b1wtZ292ZXJuXC1mb3JjZWZ1bGx5Owor5pWBIDwgdG9cLXdlaWdoXC1pblwtdGhlXC1oYW5kOwor55eF5oi/IDwgd2FyZFwtXChvZlwtYVwtaG9zcGl0YWxcKTsKK+eZvuS6i+mAmiA8IGtub3dsZWRnZWFibGVcLXBlcnNvbjsKK+ihqOW9sCA8IGNpdGVcLVwoaW5cLWRpc3BhdGNoZXNcKTsKK+aQjiA8IHRvXC1ydWJcLXdpdGhcLXRoZVwtaGFuZDsKK+S4jeatu+W/gyA8IHVud2lsbGluZ1wtdG9cLWdpdmVcLXVwOwor56Sm5rOJ5rC0IDwgbWluZXJhbFwtc3ByaW5nXC13YXRlcjsKK+WQg+S4jeS4iyA8IG5vdFwtZmVlbFwtbGlrZVwtZWF0aW5nOwor5bmA5qqi6amX5bqP5YiXIDwgZnJhbWVcLWNoZWNrXC1zZXF1ZW5jZTsKK+iQrOe2ree2siA8IHdvcmxkXC13aWRlXC13ZWJcLVwod3d3XCk7CivllYbmpa3mh4nnlKggPCBidXNpbmVzc1wtYXBwbGljYXRpb247Civmr4/ms4HmhIjkuIsgPCBzdGVhZGlseVwtZGV0ZXJpb3JhdGU7Civmi5zmnIMgPCBwYXlcLWFuXC1vZmZpY2lhbFwtY2FsbDsKK+WwiOeoiyA8IHNwZWNpYWxcLXB1cnBvc2VcLXRyaXA7CivlqpLpq5ToqKrllY/mjqfliLYgPCBtZWRpYVwtYWNjZXNzXC1jb250cm9sOwor5YG95bmjIDwgY291bnRlcmZlaXRcLWN1cnJlbmN5Owor6LuN5LqL5qmf5qeLIDwgbWlsaXRhcnlcLWluc3RpdHV0aW9uOwor5bWPIDwgYVwtbW91bnRhaW5cLWluXC1zaGVueGk7CivmiY3nlaUgPCBhYmlsaXR5XC1hbmRcLXNhZ2FjaXR5Owor5a2tIDwgdG9cLWNhcnJ5XC1vblwtdGhlXC1iYWNrOwor5Zub5bm05Yi255qE5aSn5a24IDwgZm91clwteWVhclwtdW5pdmVyc2l0eTsKK+WxpOasoSA8IGFycmFuZ2VtZW50XC1vZlwtaWRlYXM7CivliKTomZXmrbvliJEgPCB0b1wtc2VudGFuY2VcLXRvXC1kZWF0aDsKK+WriyA8IHNsZW5kZXJcLWFuZFwtZGVsaWNhdGU7CivlqaMgPCBtYXJyaWFnZVwtY29ubmVjdGlvbnM7CivnrYbms5UgPCB0ZWNobmlxdWVcLW9mXC13cml0aW5nOwor5a+m6auU5bGkIDwgcGh5c2ljYWxcLWxheWVyXC1cKG9zaVwpOwor5ZusIDwgdG9cLXJldHVyblwtdG9cLW9yXC1mcm9tOwor5Lqk6YCaIDwgXChhdXRvbW9iaWxlXClcLXRyYWZmaWM7Civnj77pmo7mrrUgPCBhdFwtdGhlXC1wcmVzZW50XC1zdGFnZTsKK+iyqOW5o+iytuWAvCA8IGN1cnJlbmN5XC1kZXZhbHVhdGlvbjsKK+WPm+Wci+e9qiA8IHRoZVwtY3JpbWVcLW9mXC10cmVhc29uOwor5oyJ54Wn5rOV5b6LIDwgYWNjb3JkaW5nXC10b1wtdGhlXC1sYXc7CivlioIgPCBjaGlzZWxcLWZvclwtZW5ncmF2aW5nOwor5ZWf56iLIDwgc2V0XC1vdXRcLW9uXC1hXC1qb3VybmV5Owor5LiN5a6M5YWo5Lit56uLIDwgaW1wZXJmZWN0XC1uZXV0cmFsaXR5Owor55Wr5aCxIDwgcGljdG9yaWFsXC1cKG1hZ2F6aW5lXCk7CivljJflm57mrbjnt5ogPCB0aGVcLXRyb3BpY1wtb2ZcLWNhbmNlcjsKK+WFi+mHjOaWr+aJmOW8lyA8IFwod2FycmVuXClcLWNocmlzdG9waGVyOwor6Zu75a2Q5YWD5Lu2IDwgZWxlY3Ryb25pY1wtY29tcG9uZW50Owor57aT5r+f6KGw6YCAIDwgXChlY29ub21pY1wpXC1yZWNlc3Npb247CivktpkgPCBzd2VsbGluZ1wtb2ZcLXRoZVwtZ3VtczsKK+S2iiA8IHRvXC1ibGVlZFwtYXRcLXRoZVwtbm9zZTsKK+WFieS6jOalteeuoSA8IGxpZ2h0XC1lbWl0dGluZ1wtZGlvZGU7CivktJ8gPCBhblwtb25lXC15ZWFyXC1vbGRcLWRlZXI7Civks7MgPCBhXC1raW5kXC1vZlwtc21hbGxcLWJpcmQ7Civks5EgPCBhXC1waGVhc2FudFwtbGlrZVwtYmlyZDsKK+SysSA8IGFcLWtpbmRcLW9mXC1ibGFja1wtYmlyZDsKK+SylSA8IHRoZVwteWFuZ3R6ZVwtcG9ycG9pc2U7CivksZAgPCBhXC1raW5kXC1vZlwtYmxhY2tcLWZpc2g7CivksYAgPCBhXC1raW5kXC1vZlwtc21hbGxcLWZpc2g7CivkvrXmk74gPCB0b1wtaW52YWRlXC1hbmRcLWhhcmFzczsKK+Wxj+W5lSA8IFwodHZcLW9yXC1tb3ZpZVwpXC1zY3JlZW47CivkrqEgPCBhXC1zdXBlcm5hdHVyYWxcLWhvcnNlOwor5K6CIDwgaG9yc2VcLXdpdGhcLWxvbmdcLWhhaXI7CivkrbcgPCBob3JzZVwtd2l0aFwtbG9uZ1wtbWFuZTsKK+SsqSA8IHRvXC1hYnN0YWluXC1mcm9tXC1tZWF0Owor5KyjIDwgYVwtc2FjcmlmaWNpYWxcLXZpY3RpbTsKK+SroCA8IHNob3J0XC1oYWlyXC1hbmRcLWJlYXJkOwor6Yym5qiZ6LO9IDwgY2hhbXBpb25zaGlwXC1jb250ZXN0Owor5Km9IDwgYVwtcXVpdmVyXC1vbmVcLWFcLWhvcnNlOwor5KmCIDwgdG9cLWNvbWVcLXRvXC10aGVcLWZyb250Owor55CD57ayIDwgbmV0XC1cKGZvclwtYmFsbFwtZ2FtZXNcKTsKK+SnlyA8IG1vdW50YWluc1wtY29sbGFwc2luZzsKK+SmpiA8IGFcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkpaQgPCB0aGVcLW5lY2tcLW9mXC1hXC1wZXN0bGU7CivkpYQgPCB0b1wtcGxhc3Rlclwtd2l0aFwtZ29sZDsKK+SkuCA8IHNob3J0XC1zcGVhclwtb3JcLWxhbmNlOwor5LiN56mp5bmz6KGhIDwgdW5zdGFibGVcLWVxdWlsaWJyaXVtOwor5ryi5YyWIDwgY2hpbmVzZVwtbG9jYWxpemF0aW9uOwor5KCRIDwgYmV0d2VlblwtdGhlXC1idXR0b2NrczsKK+SgiCA8IGhhcmRcLXRvXC1tb3ZlXC1mb3J3YXJkOwor5J+pIDwgaGFyZFwtb2ZcLXdhbGtcLWZvcndhcmQ7CivknpkgPCB0b1wtd2Fsa1wtaW5cLWh1cnJpZWRseTsKK+SdkSA8IGFcLWxvY2FsXC1wcm9kdWNlZFwtcGlnOwor5JynIDwgdG9cLWluc3VsdFwtd2l0aFwtd29yZHM7CivknJMgPCBhXC1zbGlwXC1vZlwtdGhlXC10b25ndWU7Civkm4wgPCB0b1wtcHJvdm9rZVwtb3JcLWFyb3VzZTsKK+SZriA8IHN0cmlwXC1vZlwtdGhlXC1jbG90aGVzOwor5Ji+IDwgbGVnc1wtb2ZcLXRoZVwtdHJvdXNlcnM7Civkv6Hmga/os4fmupAgPCBpbmZvcm1hdGlvblwtcmVzb3VyY2U7CivklasgPCBhXC1vbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+SUiCA8IGx1c2hcLWdyb3d0aFwtb2ZcLWdyYXNzOwor5YWt5Y2B5LqU5q2yIDwgc2l4dHlcLWZpdmVcLXllYXJzXC1vbGQ7CivkkaAgPCBsb25nXC1hbmRcLW5hcnJvd1wtYm9hdDsKK+SQuCA8IHRoZVwtYmFja1wtb2ZcLXRoZVwta25lZTsKK+SPvyA8IHRoZVwtY2FsZlwtb2ZcLXRoZVwtbGVnczsKK+SPoSA8IHVuY29va2VkXC1vclwtcmF3XC1tZWF0Owor5IqzIDwgdG9cLWJyZWFrXC1pbnRvXC1waWVjZXM7CivkirIgPCB0b1wtaHVsbFwtcmljZVwtcm91Z2hseTsKK+SKgiA8IHBvb3JcLXF1YWxpdHlcLW9mXC1yaWNlOwor5bCN5bOZIDwgbXV0dWFsXC1jb25mcm9udGF0aW9uOwor5ImRIDwgYmxhY2tcLXNraW5uZWRcLWJhbWJvbzsKK+SIpiA8IGFcLWN1cnZlZFwtYmFtYm9vXC13aGlwOwor5IiRIDwgdG9vbHNcLXRvXC11bnJlZWxcLXNpbGs7CivkiIEgPCB0b29sc1wtdXNlZFwtb25cLWFcLWJvYXQ7Civkh5ggPCB0b29sXC10b1wtY29sbGVjdFwtcm9wZTsKK+SGoyA8IGFib2RlXC1vZlwtdGhlXC1lbXBlcm9yOwor5IaPIDwgYVwta2luZFwtb2ZcLXJpY2VcLXBsYW50Owor5IWuIDwgYVwtZnVsbFwtaGVhZFwtb2ZcLWdyYWluOwor5IWTIDwgY3VydmVkXC1waWVjZVwtb2ZcLXdvb2Q7CivkhY8gPCByaWNlXC1ib2lsZWRcLXRvXC1ncnVlbDsKK+SEryA8IHRlblwtaGFuZGxlXC1vZlwtZ3JhaW5zOwor576O6LuNIDwgdXNcLWFybXlcfGFybWVkXC1mb3JjZXM7CivkhIIgPCB0b1wtcHJheVwtYW5kXC10b1wtY3Vyc2U7Civkg7AgPCBicmlja1wtb3JcLXN0b25lXC1zdGVwczsKK+SCkiA8IHNob3J0XC10b1wtY3VycnlcLWZhdm9yOwor5IKCIDwgdG9cLWdhemVcLWF0XC1pblwtdGVycm9yOwor5IGsIDwgdG9cLWFjdFwtcHJldGVudGlvdXNseTsKK+SAtyA8IHRvXC1oYXZlXC1xdWlja1wtZ2xhbmNlOwor5ICyIDwgZGlzZWFzZXNcLWluXC10aGVcLWV5ZXM7CivkvY3mlrwgPCBiZVwtc2l0dWF0ZWRcLVwoaW5cLFwtYXRcKTsKK+O/uCA8IHRvXC1jYXN0XC1vZmZcLXRoZVwtc2tpbjsKK+O/niA8IGFuXC1vbGRcLW1hblwtb2ZcLWVpZ2h0eTsKK+O9pCA8IGFcLXNtYWxsXC1wbG90XC1vZlwtbGFuZDsKK+O9oiA8IHRvXC1wbG91Z2hcLXRoZVwtZmllbGRzOwor472VIDwgbmV3XC1icmFuY2hlc1wtZ3Jvd2luZzsKK+O9gyA8IGFcLWJpZ1wtcGllY2VcLW9mXC1icmljazsKK+O8oiA8IGJyaWNrc1wtYW5cLWVhdGhlblwtamFyOwor47yJIDwgZ3JlZW5cLWNvbG9yZWRcLW1lbG9uczsKK+O7riA8IGJyaWdodFwtYW5kXC1icmlsbGlhbnQ7Civjuq4gPCBmaW5lXC1zdG9uZVwtbGlrZVwtamFkZTsKK+O6giA8IGJpZ1wtYW5kXC1zdHJvbmdcLXNoZWVwOwor47mYIDwgc2hpbmJvbmVcLW9mXC1hXC1jYXR0bGU7CivjuKogPCBhblwtb3hcLXdhbGtpbmdcLXNsb3dseTsKK+iuiumguyA8IGZyZXF1ZW5jeVwtY29udmVyc2lvbjsKK+ertueIreWKmyA8IGNvbXBldGl0aXZlXC1zdHJlbmd0aDsKK+O3mSA8IHRvXC1mcnlcLWluXC1mYXRcLW9yXC1vaWw7CivjtpQgPCBzd2lmdFwtYW5kXC10b3JyZW50aWFsOwor47WeIDwgYmVsbGllZFwtaW5cLXdhdGVyXC1nYXM7Civjs7wgPCBidWJibGluZ1wtb2ZcLWZvdW50YWluOwor47OaIDwgZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7Civjs5QgPCB0b1wtc29ha1wtb3JcLWJlXC1zb2FrZWQ7CivjsqsgPCBoYWlyXC1rbm90c1wtaW5cLWFcLW1lc3M7CivjsIsgPCBhXC1raW5kXC1vZlwtZnJ1aXRcLXRyZWU7Civjr4wgPCB0b1wtb3BlcmF0ZVwtb3JcLW1hbmFnZTsKK+aZuuiDveWkp+aokyA8IGludGVsbGlnZW50XC1idWlsZGluZzsKK+WwkeaVuOawkeaXjyA8IG1pbm9yaXR5XC1uYXRpb25hbGl0eTsKK+WWruWtlyA8IGluZGl2aWR1YWxcLWNoYXJhY3RlcjsKK+OtniA8IGFcLWtpbmRcLWluZmVyaW9yXC13b29kOwor462SIDwgYVwtZmFybWluZ1wtaW5zdHJ1bWVudDsKK+OpuyA8IHJ1Z2dlZFwtbW91bnRhaW5cLXBhdGg7CivjqZQgPCBhXC10b29sXC10b1wtbWFrZVwtYVwtYm93Owor46e5IDwgdG9cLXN0cmlrZVwtd2l0aFwtZmlzdHM7Civog4zlv4MgPCBhXC1zbGVldmVsZXNzXC1nYXJtZW50Owor5oi25Y+jIDwgcmVnaXN0ZXJlZFwtcmVzaWRlbmNlOwor46GZIDwgY3VydGFpblwtZm9yXC1jYXJyaWFnZTsKK+acrOenkSA8IHVuZGVyZ3JhZHVhdGVcLWNvdXJzZTsKK+OglyA8IGRlZXBcLWluXC10aGVcLW1vdW50YWluOwor456fIDwgc2F2aW5nc1wtYW5kXC1yZXNlcnZlczsKK+OZoyA8IHRvXC1waWxlXC1hXC1zYW5kXC1oaWxsczsKK+S+v+S4rSA8IGF0XC1vbmUnJ3NcLWNvbnZlbmllbmNlOwor45mRIDwgdGhlXC1jYW5vcHlcLW9mXC1oZWF2ZW47CivjmI4gPCB0aGVcLXJvYXJzXC1vZlwtYVwtdGlnZXI7CivpkZLlrprlp5Tlk6HmnIMgPCBldmFsdWF0aW9uXC1jb21taXR0ZWU7CivjmIUgPCB0b1wtaG9sZFwtaW5cLXRoZVwtbW91dGg7Civlr7blio0gPCBhXC1kb3VibGVcLWVkZ2VkXC1zd29yZDsKK+OVoSA8IHRoZVwtYmVkXC1vZlwtYVwtdG9ycmVudDsKK+OVjCA8IHRvXC1yYWlzZVwtdGhlXC1jdXJ0YWluOwor45SLIDwgY3V0XC1pbnRvXC10aGluXC1zbGljZXM7CivjkoUgPCB0b1wtdW5iaW5kXC10aGVcLWNvbGxhcjsKK+ORiSA8IGNhbm5vdFwtc3RyYWlnaHRlblwtdXA7Civphp7ph4AgPCBtdWxsXC1vdmVyXC1cKGFuXC1pc3N1ZVwpOwor5YWo6Z2i56aB5q2iIDwgY29tcGxldGVcLXByb2hpYml0aW9uOwor5pqX6JmfIDwgc2VjcmV0XC1zaWduYWxcLVwoc2lnblwpOwor6ICB54i6IDwgbWF0ZXJuYWxcLWdyYW5kZmF0aGVyOwor54+t5pyfIDwgc2NoZWR1bGVcLVwoZm9yXC1mbGlnaHQ7CivosrfmlrkgPCBidXllclwtXChpblwtY29udHJhY3RzXCk7CivlronlqJwgPCBhbm5hXC1cKHBlcnNvbicnc1wtbmFtZVwpOwor6ai+6aas5aSn6LuKIDwgbXVsZVwtYW5kXC1ob3JzZVwtY2FydHM7CivntpPmv5/nmbzlsZUgPCBlY29ub21pY1wtZGV2ZWxvcG1lbnQ7CivpgJroqIrns7vntbEgPCBjb21tdW5pY2F0aW9uXC1zeXN0ZW07CivosqzmiJAgPCBnaXZlXC1zb21lYm9keVwtYVwtdGFzazsKK+S4jeS6jOazlemWgCA8IHRoZVwtb25lXC1hbmRcLW9ubHlcLXdheTsKK+mCj+i8r+mPiOi3r+aOp+WItiA8IGxvZ2ljYWxcLWxpbmtcLWNvbnRyb2w7CivlpJrpurwgPCBob3dcLVwod29uZGVyZnVsXCxcLWV0Y1wpOwor6YWs6KydIDwgdG9cLXRoYW5rXC13aXRoXC1hXC1naWZ0Owor54Sh5YO554+N54+gIDwgcGVhcmxcLW9mXC1ncmVhdFwtcHJpY2U7CivlvoDov5QgPCB0b1wtZ29cLWJhY2tcLWFuZFwtZm9ydGg7CivljIXph5EgPCBjb3Zlclwtd2l0aFwtZ29sZFwtbGVhZjsKK+acquaIkOW5tOiAhSA8IG1pbm9yXC1cKG5vdFwtYW5cLWFkdWx0XCk7CivmmpHnhrEgPCBob3RcLVwoc3VtbWVyXClcLXdlYXRoZXI7Civlt6Hov7TliIbmnpDnq6/lj6MgPCByb3ZpbmdcLWFuYWx5c2lzXC1wb3J0Owor5LyK5pav6Jit5aChIDwgaXNsYW1hYmFkXC1cKHBha2lzdGFuXCk7CivpgYvli5XmnIMgPCBhXC1zcG9ydHNcLWNvbXBldGl0aW9uOwor5LiN5pu+IDwgbmV2ZXJcLVwoaGF2ZVwtZG9uZVwtc3RoOwor57i96YOoIDwgZ2VuZXJhbFwtaGVhZHF1YXJ0ZXJzOwor6LK25YC8IDwgdG9cLWJlY29tZVwtZGV2YWx1YXRlZDsKK+mBuumquCA8IFwoZGVhZFwpXC1odW1hblwtcmVtYWluczsKK+S6jOWNgeWbm+iZnyA8IDI0XC10aFwtZGF5XC1vZlwtYVwtbW9udGg7CivpoZ7mjqggPCB0b1wtcmVhc29uXC1ieVwtYW5hbG9neTsKK+Wkp+WkseaJgOacmyA8IGdyZWF0bHlcLWRpc3NhcG9pbnRlZDsKK+WSjOWlvSA8IHRvXC1iZWNvbWVcLXJlY29uY2lsZWQ7CivmnKzlnJ8gPCBvbmUnJ3NcLW5hdGl2ZVwtY291bnRyeTsKK+S6nuWAqyA8IGFhcm9uXC1cKGFcLW1hbicnc1wtbmFtZVwpOwor576e5oGlIDwgXChhXC1mZWVsaW5nXC1vZlwpXC1zaGFtZTsKK+WTiOS9myA8IGhhcnZhcmRcLVwodW5pdmVyc2l0eVwpOwor5pqR5pyfIDwgc3VtbWVyXC12YWNhdGlvblwtdGltZTsKK+S8gealrembhuWcmCA8IGluZHVzdHJ5XC1hc3NvY2lhdGlvbjsKK+euoeeQhuaOpeWPoyA8IG1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+WRvOWWiiA8IHNob3V0XC1cKHNsb2dhbnNcLFwtZXRjXCk7Civnub3ntJsgPCBpblwtcmlvdG91c1wtcHJvZnVzaW9uOwor5ZGI5aCxIDwgdG9cLVwoc3VibWl0XC1hXClcLXJlcG9ydDsKK+eUn+eUouioreWCmSA8IHByb2R1Y3Rpb25cLWVxdWlwbWVudDsKK+WNiueZvSA8IGZpZnR5XC1cKHllYXJzXC1vZlwtYWdlXCk7CivwoIGlIDwgdGhlXC1ob3Juc1wtb2ZcLWFcLXNoZWVwOwor6LeR6b6N5aWXIDwgdG9cLXBsYXlcLWFcLXNtYWxsXC1yb2xlOwor5piC54S2IDwgdXByaWdodFwtYW5kXC11bmFmcmFpZDsKK+mChOiqqiA8IHRvXC1hZGRcLVwoaW5cLXNwZWFraW5nXCk7Civmm7TliqAgPCBtb3JlXC1cKHRoYW5cLXN0aFwtZWxzZVwpOwor5b636Zu354i+IDwgXChqdW5lXC10ZXVmZWxcKVwtZHJleWVyOwor576p5YuZ5pWZ6IKyIDwgY3VtcHVsc29yeVwtZWR1Y2F0aW9uOwor54i654i6IDwgcGF0ZXJuYWxcLWdyYW5kZmF0aGVyOwor5YKz6Ly45o6n5Yi2IDwgdHJhbnNtaXNzaW9uXC1jb250cm9sOwor5LiN5YudIDwgY2Fubm90XC1iZWFyXC1vclwtc3RhbmQ7CivmlZfog4MgPCBzcG9pbFwtb25lJydzXC1hcHBldGl0ZTsKK+iuiuW/gyA8IGNlYXNlXC10b1wtYmVcLWZhaXRoZnVsOwor5LiN5oe35aW95oSPIDwgaGFyYm91clwtZXZpbFwtZGVzaWduczsKK+S4iuWAiyA8IGZpcnN0XC1cKG9mXC10d29cLXBhcnRzXCk7Civlj6rkuI3pgY7lub7lubTliY0gPCBvbmx5XC1hXC1mZXdcLXllYXJzXC1hZ287Civlub4gPCBob3dcLW1hbnlcP1wtaG93XC1tdWNoXD87CivlpY8gPCBtZW1vcmlhbGl6ZVwtZW1wZXJvcjsKK+aCqCA8IGhvbm9yaWZpY1wtZm9yXC0nJ3lvdScnOwor5ZCPIDwgZ292ZXJubWVudFwtb2ZmaWNpYWw7CivlhYAgPCB0b1wtY3V0XC1vZmZcLXRoZVwtZmVldDsKK+iDtCA8IHRoZVwtbGFyZ2VcLWludGVzdGluZTsKK+enpiA8IGZldWRhbFwtc3RhdGVcLW9mXC1xaW47CivmoYEgPCBjcm9zc1wtYmVhbXNcLW9mXC1yb29mOwor6I6OIDwga2luZFwtb2ZcLXNlZGdlXC1ncmFzczsKK+iWmyA8IGtpbmRcLW9mXC1tYXJzaFwtZ3Jhc3M7CivntaMgPCB0b1wtYmFzdGVcLWZvclwtc2V3aW5nOwor5oKWIDwgYmVcLWNvbnRyYWRpY3RvcnlcLXRvOwor6IqSIDwgbWlzY2FudGh1c1wtc2luZW5zaXM7CivlmLYgPCBuZWlnaGluZ1wtb2ZcLWFcLWhvcnNlOwor5Y+9IDwgc2lnaFwtaW5cLWRpc2FwcHJvdmFsOwor5Y6lIDwgcGVyc29uYWxcLXByb25vdW5cLWhlOwor5ZytIDwgamFkZVwtcG9pbnRlZFwtYXRcLXRvcDsKK+W+mCA8IHdhbGtcLWJhY2tcLWFuZFwtZm9ydGg7CivmmaQgPCBoYXZlXC1pbnRlcnZpZXdcLXdpdGg7CivoiLcgPCB0aGVcLXNpZGVzXC1vZlwtYVwtYm9hdDsKK+mCrCA8IHZhcmlvdXNcLXBsYWNlXC1uYW1lczsKK+ikkCA8IGNvYXJzZVwtd29vbGVuXC1jbG90aDsKK+mmiCA8IG9mZmVyXC1mb29kXC1zdXBlcmlvcjsKK+WUpyA8IGNoaXJwaW5nXC1vZlwtaW5zZWN0czsKK+WSlCA8IHVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+eBuCA8IGNhdXRlcml6ZVwtd2l0aFwtbW94YTsKK+mptyA8IHRlYW1cLW9mXC1mb3VyXC1ob3JzZXM7CivnsrwgPCBjbGVhclwtXChhc1wtb2ZcLXdhdGVyXCk7CivnvpogPCBzcGVjaWVzXC1vZlwtYW50ZWxvcGU7CivlkZMgPCB0YWxrXC1pblwtb25lJydzXC1zbGVlcDsKK+evmSA8IHBvbGVcLXVzZWRcLXB1bnRcLWJvYXQ7CivmuY0gPCByYXBpZFwtd2F0ZXJcLWN1cnJlbnQ7CivohI0gPCBtaW5jZWRcLW1lYXRcLW9yXC1maXNoOwor6Y+WIDwgdG9cLWZpZ2h0XC10b1wtdGhlXC1lbmQ7Civogr0gPCBhXC1jaGVtaWNhbFwtY29tcG91bmQ7Civpiq4gPCBiZWxsc1wtaHVuZ1wtb25cLWhvcnNlOwor56yzIDwgYVwtcmVlZFwtbGVhZlwtd2hpc3RsZTsKK+iWjyA8IHNlZWRcLW9mXC1qb2InJ3NcLXRlYXJzOwor5oKdIDwgdG9cLWxhdWdoXC1hdFwtdG9cLXBpdHk7CivosYcgPCBhXC1zbWFsbFwta2lkbmV5XC1iZWFuOwor5qGJIDwgZXVjYWx5cHR1c1wtZ2xvYnVsdXM7CivouYEgPCB0b1wtd2Fsa1wtd2l0aFwtYVwtbGltcDsKK+iFiCA8IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+ienyA8IGtpbmRcLW9mXC1jYXRlcnBpbGxhcjsKK+azriA8IHpob3VcLWR5bmFzdHlcLXNjaG9vbDsKK+mysyA8IHRoZVwtc2lsdmVyeVwtcG9tZnJldDsKK+mcqiA8IGxvbmdcLWFuZFwtaGVhdnlcLXJhaW47CivmnpggPCB0aGVcLWhhbmRsZVwtb2ZcLXRvb2xzOwor5ru5IDwgdGhlXC1iYW5rXC1vZlwtYVwtc3RlYW07CivlvbMgPCBzdGVwXC13aXRoXC1sZWZ0XC1mb290Owor5LqNIDwgdG9cLXRha2VcLXNtYWxsXC1zdGVwczsKK+egmCA8IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor5qCOIDwgY2hlc3RudXRcLWxlYXZlZFwtb2FrOwor6bmHIDwgdGhlXC1zaWx2ZXJcLXBoZWFzYW50Owor6IuMIDwgYXZlcnJob3JhXC1jYXJhbWJvbGE7Civpg5sgPCBvdXRlclwtd2FsbHNcLW9mXC1jaXR5Owor6YaiIDwgbWluY2VkXC1waWNrbGVkXC1tZWF0Owor55yaIDwgZGlzZWFzZVwtb2ZcLXRoZVwtZXllczsKK+ijiSA8IHNcLXNlYW1cLWluXC1hXC1nYXJtZW50Owor5bSmIDwgYVwtbW91bnRhaW5cLWluXC1rYW5zdTsKK+WFlSA8IGFcLWZlbWFsZVwtcmhpbm9jZXJvczsKK+iouuaWt+WKn+iDvSA8IGRpYWdub3N0aWNcLWZ1bmN0aW9uOwor6LKh5pS/6YOoIDwgbWluaXN0cnlcLW9mXC1maW5hbmNlOwor5aWU5rWBIDwgZmxvd1wtYXRcLWdyZWF0XC1zcGVlZDsKK+W7o+WRiuWVhiA8IGFkdmVydGlzaW5nXC1jb21wYW55Owor5LiA55m+5LqU5Y2B5aSa5bm0IDwgbW9yZVwtdGhhblwtMTUwXC15ZWFyczsKK+aXpeaWhyA8IGphcGFuZXNlXC1cKGxhbmd1YWdlXCk7Civppqzkvobopb/kup7oqp4gPCBtYWxhc2lhblwtXChsYW5ndWFnZVwpOwor5pKe6KaLIDwgdG9cLW1lZXRcLWJ5XC1hY2NpZGVudDsKK+W3rumhjSA8IGJhbGFuY2VcLVwoZmluYW5jaWFsXCk7CivljYrmiKogPCBoYWxmXC1cKG9mXC1hXC1zZWN0aW9uXCk7CivliZvnupQgPCBcKGp1c3RcKVwtYVwtbW9tZW50XC1hZ287CivmhbDlronlqaYgPCBjb21mb3J0XC13b21hblx8d29tZW47CivmipjlsITnjocgPCBpbmRleFwtb2ZcLXJlZnJhY3Rpb247Civlu6DnpKYgPCBmYWN0b3JpZXNcLWFuZFwtbWluZXM7CivlgrPovLjlqpLpq5QgPCB0cmFuc21pc3Npb25cLW1lZGl1bTsKK+i1t+atu+WbnueUnyA8IGFyaXNlXC1mcm9tXC10aGVcLWRlYWQ7CivnhrHng4ggPCB3YXJtXC1cKHdlbGNvbWVcLFwtZXRjXCk7Civpq5jpmo7oqp7oqIAgPCBoaWdoXC1sZXZlbFwtbGFuZ3VhZ2U7CivlubTku6PliJ0gPCBiZWdpbm5pbmdcLW9mXC1hblwtYWdlOwor5Lqe5rSy6IiH5aSq5bmz5rSL5Zyw5Y2AIDwgYXNpYVwtcGFjaWZpY1wtcmVnaW9uOwor6L6v6K23IDwgc3BlYWtcLWluXC1kZWZlbmNlXC1vZjsKK+e+juWci+S6uuawkSA8IHRoZVwtYW1lcmljYW5cLXBlb3BsZTsKK+WTpeWAq+avlOS6nuWkp+WtuCA8IGNvbHVtYmlhXC11bml2ZXJzaXR5Owor6Ziy56am5oCnIDwgZGVmZW5zaXZlXC1cKHdlYXBvbnNcKTsKK+mBjuS6huS6lOWIhumQmCA8IGZpdmVcLW1pbnV0ZXNcLXBhc3NlZDsKK+aJk+apq+eCriA8IHNwZWFrXC11bndhcnJhbnRlZGx5Owor5aSn5om5IDwgbGFyZ2VcLXF1YW50aXRpZXNcLW9mOwor6Z2i5Zqu6YCj5o6lIDwgY29ubmVjdGlvblwtb3JpZW50ZWQ7CivlsIjmpa3kurrmiY0gPCBleHBlcnRcLVwoaW5cLWFcLWZpZWxkXCk7CivnhKHnuKvpgKPmjqUgPCBzZWFtbGVzc1wtY29ubmVjdGlvbjsKK+e2geelqCA8IGtpZG5hcFwtXChmb3JcLXJhbnNvbVwpOwor55m96YqFIDwgY29wcGVyXC1uaWNrZWxcLWFsbG95Owor5YWL576F5Zyw5Lqe6KqeIDwgY3JvYXRpYW5cLVwobGFuZ3VhZ2VcKTsKK+e1seeosSA8IGNvbGxlY3RpdmVseVwtY2FsbGVkOwor55m86KiA5qyKIDwgdGhlXC1yaWdodFwtb2ZcLXNwZWVjaDsKK+W7ouawoyA8IHdhc3RlXC1cKGV4aGF1c3RcKVwtZ2FzOwor6KiO6KuW55qE6K2w6aGMIDwgdG9waWNcLW9mXC1kaXNjdXNzaW9uOwor5YyF5a2QIDwgc3RlYW1lZFwtc3R1ZmZlZFwtYnVuOwor57SF6JGJIDwgcmVkXC1hdXR1bW5hbFwtbGVhdmVzOwor5bGk6KaL6L+t5Ye6IDwgdG9cLW9jY3VyXC1mcmVxdWVudGx5Owor55m+6LKoIDwgZ2VuZXJhbFwtbWVyY2hhbmRpc2U7CivprKLpq64gPCBoYWlyXC1vblwtdGhlXC10ZW1wbGVzOwor576O5ZyL5Lul5aSWIDwgb3V0c2lkZVwtb2ZcLXRoZVwtdVwuc1wuOwor5YSY6YePIDwgYXNcLW11Y2hcLWFzXC1wb3NzaWJsZTsKK+i6q+mrmCA8IFwoYVwtcGVyc29uJydzXClcLWhlaWdodDsKK+aVmeWtuCA8IHRlYWNoZXJcLWFuZFwtc3R1ZGVudDsKK+mEmeS6uiA8IHlvdXJcLWh1bWJsZVwtc2VydmFudDsKK+WcsOWdgOeahOi9ieaPmyA8IGFkZHJlc3NcLXRyYW5zbGF0aW9uOwor5pWF5a6uIDwgdGhlXC1pbXBlcmlhbFwtcGFsYWNlOwor5pS/5bGAIDwgcG9saXRpY2FsXC1zaXR1YXRpb247Civnnb/mmbogPCB3aXNlXC1hbmRcLWZhcnNpZ2h0ZWQ7Civoh6rli5XlnLDlt6XkvZwgPCBhdXRvbWF0aWNcLW9wZXJhdGlvbjsKK+atpOaZguatpOWIuyA8IGF0XC10aGlzXC12ZXJ5XC1tb21lbnQ7CivpuJIgPCB0aGVcLWVhc3Rlcm5cLWphY2tkYXc7CivptrIgPCBzaWJlcmlhblwtZmx5Y2F0Y2hlcjsKK+W5tOS5i+S5hSA8IHBlcmlvZFwtb2ZcLVwuXC5cLlwteWVhcnM7Civoo5zop5IgPCBzdXBwbGVtZW50YXJ5XC1hbmdsZTsKK+mwtiA8IGtvbm9zaXJ1c1wtcHVuY3RhdHVzOwor6a+lIDwgcG9tYXRvbXVzXC1zYWx0YXRyaXg7Civpr5UgPCBjb3J5cGhhZW5hXC1oaXBwdXJ1czsKK+mutiA8IHNlYmFzdG9kZXNcLWd1bnRoZXJpOwor6YCy5pS7IDwgYXR0YWNrXC1cKG1pbGl0YXJpbHlcKTsKK+aTuuW8hCA8IG1vdmVcLWJhY2tcLWFuZFwtZm9ydGg7CivkuI3kuK3mhI8gPCBub3RcLXRvXC1vbmUnJ3NcLWxpa2luZzsKK+mjgiA8IHdpbmRcLWluXC1oaWdoXC1wbGFjZXM7Civpor4gPCBibG93aW5nXC1vZlwtdGhlXC13aW5kOwor6aCNIDwgdG9cLXJhaXNlXC1vbmUnJ3NcLWhlYWQ7Civpn5ggPCBhcmNoZXInJ3NcLXRodW1iXC1yaW5nOwor6Z6sIDwgYVwtcXVpdmVyXC1vblwtYVwtaG9yc2U7Civosr/mmJPkv53orbfkuLvnvqkgPCB0cmFkZVwtcHJvdGVjdGlvbmlzbTsKK+mBjeW4gyA8IGJlXC1mb3VuZFwtZXZlcnl3aGVyZTsKK+Wkmum7qOmBuOiIiSA8IG11bHRpcGFydHlcLWVsZWN0aW9uOwor6Zy2IDwgZG93bnBvdXJpbmdcLW9mXC1yYWluOwor6ZyuIDwgZGVuc2VuZXNzXC1vZlwtY2xvdWRzOwor5YWJ57qW6KGw5ribIDwgb3B0aWNhbFwtYXR0ZW51YXRpb247CivmlLnlkI0gPCB0b1wtY2hhbmdlXC1vbmVzXC1uYW1lOwor6ZG0IDwgdG9cLWVuZ3JhdmVcLW9yXC1jYXJ2ZTsKK+S4jeWLnuiAjOeNsiA8IHJlYXBcLXdpdGhvdXRcLXNvd2luZzsKK+mOhCA8IGlyaWRpdW1cLWVpbnN0ZWluaXVtOwor5oqA6KGT5qiZ5rqWIDwgdGVjaG5vbG9neVwtc3RhbmRhcmQ7Civoo5zogIMgPCBtYWtlXC11cFwtZXhhbWluYXRpb247CivplovnmbzpgY7nqIsgPCBkZXZlbG9wbWVudFwtcHJvY2VzczsKK+eZvuWIhuWItiA8IGh1bmRyZWRcLW1hcmtcLXN5c3RlbTsKK+mIgyA8IGFuY2llbnRcLXdpbmVcLXZlc3NlbDsKK+mFpyA8IHRvXC1wbGVkZ2VcLXdpdGhcLXdpbmU7CivliIbmnpDlrrYgPCBcKHBvbGl0aWNhbFwpXC1hbmFseXN0Owor5pKt5byEIDwgb3JkZXJcLXN1YmplY3RcLWFib3V0Owor5bm05bqVIDwgdGhlXC1lbmRcLW9mXC10aGVcLXllYXI7CivntITmq4MgPCBhcmtcLW9mXC10aGVcLWNvdmVuYW50Owor5bmr5belIDwgaGVscFwtd2l0aFwtZmFybVwtd29yazsKK+WgseW7oiA8IHJlcG9ydFwtYXNcLXdvcnRobGVzczsKK+mAmuS/oeiyoOi8iSA8IGNvbW11bmljYXRpb25zXC1sb2FkOwor5bi46KaP5q2m5ZmoIDwgY29udmVudGlvbmFsXC13ZWFwb247CivntbHoqIjntZDmnpwgPCBzdGF0aXN0aWNhbFwtcmVzdWx0czsKK+WPuOepuuimi+aFoyA8IGFcLWNvbW1vblwtb2NjdXJyZW5jZTsKK+eri+azleacgyA8IGxlZ2lzbGF0aXZlXC1jb3VuY2lsOwor5Z+35o6MIDwgd2llbGRcLVwocG93ZXJcLFwtZXRjXC5cKTsKK+iltCA8IGFcLW9uZVwtcGllY2VcLWdhcm1lbnQ7CivopIMgPCBhXC1zZWFtXC1pblwtYVwtZ2FybWVudDsKK+W8leWKm+WgtCA8IGdyYXZpdGF0aW9uYWxcLWZpZWxkOwor5YW15qyKIDwgbWlsaXRhcnlcLWxlYWRlcnNoaXA7CivooLAgPCBjZXJhbWJ5eFwtcnVnaWNvbGxpczsKK+ifqCA8IHRoZVwtc2liZXJpYW5cLWplcmJvYTsKK+idnSA8IHRoZVwtbGFydmFcLW9mXC1sb2N1c3Q7CivkuozljYHkuIPomZ8gPCAyN3RoXC1kYXlcLW9mXC1hXC1tb250aDsKK+mAvOS+myA8IGV4dG9ydFwtYVwtY29uZmVzc2lvbjsKK+imluiAjOS4jeimiyA8IHR1cm5cLWFcLWJsaW5kXC1leWVcLXRvOwor5L+d5a6J6Ieq5YuV5YyWIDwgc2VjdXJpdHlcLWF1dG9tYXRpb247CivolIogPCBuYXN0dXJ0aXVtXC1tb250YW51bTsKK+iThyA8IGZvbGxpY2xlc1wtb2ZcLXBsYW50czsKK+iRhyA8IGVsc2hvbHRyaWFcLXBhbHRyaW5pOwor6I6VIDwgbnltcGhvaWRlc1wtcGVsdGF0dW07CivojLMgPCBjeXBlcnVzXC1tYWxhY2NlbnNpczsKK+iLsyA8IHBldGFzaXRlc1wtamFwb25pY3VzOwor6ImrIDwgYm93XC1vclwtcHJvd1wtb2ZcLWJvYXQ7CivmtojogJfph48gPCByYXRlXC1vZlwtY29uc3VtcHRpb247Civpm7vlrZDmlofku7YgPCBlbGVjdHJvbmljXC1kb2N1bWVudDsKK+mWi+aUviA8IGxpZnRcLVwocmVzdHJpY3Rpb25zXCk7CivnmbvmnIggPCBnb1wtXCh1cFwpXC10b1wtdGhlXC1tb29uOwor576iIDwgZmluZVwtd29vbGVuXC1mYWJyaWNzOwor5qC46Zu756uZIDwgbnVjbGVhclwtcG93ZXJcLXBsYW50Owor576RIDwgYVwtZ3VpZGVcLXRvXC1nb29kbmVzczsKK+e1kOani+WKqeipniA8IHN0cnVjdHVyYWxcLXBhcnRpY2xlOwor5a2X5paf5Y+l6YWMIDwgd2VpZ2hpbmdcLWV2ZXJ5XC13b3JkOwor57myIDwgdG9cLXdvcmtcLWFzXC1hXC10YWlsb3I7CivluaPlgLwgPCB2YWx1ZVwtb2ZcLWFcLWN1cnJlbmN5Owor57aAIDwgYVwta2luZFwtb2ZcLXNhY2tjbG90aDsKK+aUv+ayu+mXnOS/giA8IHBvbGl0aWNhbFwtcmVsYXRpb25zOwor5Yaw5aC0IDwgc2thdGluZ1wtb3JcLWljZVwtcmluazsKK+ebuOS6kuWFvOWuuSA8IG11dHVhbGx5XC1jb21wYXRpYmxlOwor5bCL5LqL55Sf6Z2eIDwgdG9cLWxvb2tcLWZvclwtdHJvdWJsZTsKK+erkSA8IGJlXC12YXN0XC1hbmRcLWVuZGxlc3M7CivnppMgPCB0b1wtZHJpdmVcLW91dFwtZGVtb25zOwor56WQIDwgZGl2aW5lXC1pbnRlcnZlbnRpb247Civnm67liY0gPCBhdFwtdGhlXC1wcmVzZW50XC10aW1lOwor6KGo6Z2i5YyWIDwgY29tZVwtdG9cLXRoZVwtc3VyZmFjZTsKK+ethuitryA8IHdyaXR0ZW5cLXRyYW5zbGF0aW9uOwor562G6KmmIDwgd3JpdHRlblwtZXhhbWluYXRpb247Civnn5QgPCBicmlsbGlhbnRcLVwob2ZcLWV5ZXNcKTsKK+mXnOWIhyA8IGJlXC1kZWVwbHlcLWNvbmNlcm5lZDsKK+Wwj+Wvq+Wtl+avjSA8IGxvd2VyY2FzZVwtXChsZXR0ZXJzXCk7CivnnpUgPCBjYXRhcmFjdFwtaW5cLXRoZVwtZXllOwor6LWw6ZaLIDwgZ2V0XC1vdXRcLW9mXC10aGVcLXdheVwhOwor6KaG5LqhIDwgZmFsbFwtXChvZlwtYW5cLWVtcGlyZVwpOwor6Zu76Kmx5qmfIDwgdGVsZXBob25lXC1lcXVpcG1lbnQ7Civoo4HmlrcgPCBjb25zaWRlclwtYW5kXC1kZWNpZGU7CivnuL3ntbHlupwgPCBwcmVzaWRlbnRpYWxcLXBhbGFjZTsKK+e0gOWFgyA8IGJlZ2lubmluZ1wtb2ZcLWFuXC1lcmE7CivlhbXlnJggPCBsYXJnZVwtbWlsaXRhcnlcLXVuaXQ7CivovqbkuosgPCB0b1wtaGFuZGxlXC1cKGFmZmFpcnNcKTsKK+ezvuWBjyA8IHRvXC1jb3JyZWN0XC1hblwtZXJyb3I7CivmiY3orZggPCBhYmlsaXR5XC1hbmRcLWluc2lnaHQ7CivmjInnkIYgPCBhY2NvcmRpbmdcLXRvXC1yZWFzb247CivovJTluaMgPCBmcmFjdGlvbmFsXC1jdXJyZW5jeTsKK+aQreS8tCA8IHRyYXZlbFwtd2l0aFwtYW5vdGhlcjsKK+WcqOafkOeorueoi+W6puS4iiA8IHRvXC1hXC1jZXJ0YWluXC1leHRlbnQ7CivlnIvml5cgPCBmbGFnXC1cKG9mXC1hXC1jb3VudHJ5XCk7Civou43mlL8gPCBhcm15XC1hbmRcLWdvdmVybm1lbnQ7Civnl4Xms4EgPCBzdGF0ZVwtb2ZcLWFuXC1pbGxuZXNzOwor5YiG5L2I5byP57ay57WhIDwgZGlzdHJpYnV0ZWRcLW5ldHdvcms7CivnrqHnkIblip/og70gPCBtYW5hZ2VtZW50XC1mdW5jdGlvbjsKK+i9ieWQkSA8IGNoYW5nZVwtb2ZcLWRpcmVjdGlvbjsKK+api+aOpeWZqCA8IGJyaWRnZVwtXChuZXR3b3JraW5nXCk7Civnmb3ljbcgPCBibGFua1wtZXhhbWluZVwtcGFwZXI7Civmm7zlvrnmlq/nibnnt6jnorwgPCBtYW5jaGVzdGVyXC1lbmNvZGluZzsKK+WFq+S7mSA8IHRoZVwtZWlnaHRcLWltbW9ydGFsczsKK+i8g+WkpyA8IGNvbXBhcmF0aXZlbHlcLWxhcmdlOwor562G566XIDwgZG9cLWFcLXN1bVwtaW5cLXdyaXRpbmc7CivmoaogPCBteXRoaWNhbFwtZ2lhbnRcLXRyZWU7Civmj5Dlh7ogPCB0b1wtcmFpc2VcLVwoYW5cLWlzc3VlXCk7Civnmb3kurogPCB3aGl0ZVwtbWFuXC1hbmRcLXdvbWFuOwor5p+uIDwgZmxhdFwtcGllY2VzXC1vZlwtd29vZDsKK+WBmuazlSA8IHdheVwtb2ZcLWRvaW5nXC10aGluZ3M7CivmmrUgPCBkcnlcLWJ5XC1leHBvc2luZ1wtc3VuOwor5oq954WZIDwgc21va2VcLVwoYVwtY2lnYXJldHRlXCk7Civmlp0gPCBzbWFsbFwtamFkZVwtd2luZVwtY3VwOwor6KGo5oOFIDwgXChmYWNpYWxcKVwtZXhwcmVzc2lvbjsKK+ijnOWKqSA8IFwoZmluYW5jaWFsXClcLXN1YnNpZHk7CivmlYQgPCB0b1wtcHV0XC1mb3J0aFwtZWZmb3J0Owor6Iag54mHIDwgXChwaG90b2dyYXBoaWNcKVwtZmlsbTsKK+aSjSA8IHRvXC1ob2xkXC1pblwtdGhlXC1oYW5kOwor5LiN5pyf54S26ICM54S2IDwgaGFwcGVuXC11bmV4cGVjdGVkbHk7Civmj5UgPCByb2xsXC11cFwtdGhlXC1zbGVldmVzOwor5p+U6YGTIDwgXCh0aGVcLXNwb3J0XC1vZlwpXC1qdWRvOwor5Yqg5YC85Z6L57ay6LevIDwgdmFsdWVcLWFkZGVkXC1uZXR3b3JrOwor5o6h5Yi2IDwgY29sbGVjdFwtYW5kXC1wcm9jZXNzOwor5LiN5b6X5LqGIDwgZGVzcGVyYXRlbHlcLXNlcmlvdXM7CivmioTnjbIgPCB0b1wtc2VhcmNoXC1hbmRcLXNlaXplOwor6KGo5aeQIDwgb2xkZXJcLWZlbWFsZVwtY291c2luOwor5YiG5L2I5o6n5Yi2IDwgZGlzdHJpYnV0ZWRcLWNvbnRyb2w7CivlsJcgPCB5b3VuZ2VyXC1vZlwtYnJvdGhlcnM7Civou5/ku7YgPCBcKGNvbXB1dGVyXClcLXNvZnR3YXJlOwor5aOQIDwgdGhlXC1pbXBlcmlhbFwtc2lnbmV0Owor5oub5b6FIDwgdG9cLXJlY2VpdmVcLVwoZ3Vlc3RzXCk7Civmnb/mooHmqYsgPCBwbGF0ZVwtZ2lyZGVyXC1icmlkZ2U7CivlnpUgPCB1c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor5ouc5bm0IDwgcGF5XC1hXC1uZXdcLXllYXJcLWNhbGw7CivmoL3ot5/poK0gPCB0b1wtc3VmZmVyXC1hXC1zZXRiYWNrOwor5ZSaIDwgdm9taXRpbmdcLW9mXC1hbmltYWxzOwor5qC45bel56iLIDwgbnVjbGVhclwtZW5naW5lZXJpbmc7Civlm6DnibnntrLoga/pgJogPCBpbnRlcm5ldFwtY29ubmVjdGlvbjsKK+WRuiA8IHZvaWNlXC1vZlwtYW5nZXJcLXZhc3Q7CivkupLpgJogPCB0b1wtaW50ZXJjb21tdW5pY2F0ZTsKK+enkeWtuOeahOS6pOa1gSA8IHNjaWVudGlmaWNcLWV4Y2hhbmdlOwor5a6J55CG5pyDIDwgdW5cLXNlY3VyaXR5XC1jb3VuY2lsOwor57ay57Wh5oeJ55SoIDwgbmV0d29ya1wtYXBwbGljYXRpb247CivlgZggPCBhbmNpZW50XC1mYW1pbHlcLW5hbWU7Civnr6HkvY0gPCB0b1wtc2VpemVcLXRoZVwtdGhyb25lOwor5qmf5qKw57+76K2vIDwgbWFjaGluZVwtdHJhbnNsYXRpb247Civnvbfpu5wgPCBkaXNtaXNzXC1mcm9tXC1vZmZpY2U7Civktq8gPCB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+S2kiA8IG91dHN0YW5kaW5nXC1hYmlsaXR5Owor5LaMIDwgYVwtcHVzdHVsZVwtb3JcLXBpbXBsZTsKK+S2hCA8IHN0cmlwZWRcLW1vdHRsZWRcLXJhdDsKK+S1sSA8IHJlZFwtYW5kXC1ibGFja1wtY29sb3I7CivktZQgPCB0b1wtdHVyblwtb25cLXRoZVwtaGVlbDsKK+S0qiA8IGFcLWZhYnVsb3VzXC1jcmVhdHVyZTsKK+S0oCA8IGFcLXlvdW5nXC10YWlsZWRcLWRlZXI7Civlsazlr6YgPCB0dXJuXC1vdXRcLXRvXC1iZVwtdHJ1ZTsKK+SxpyA8IGFcLWtpbmRcLW9mXC1maXNoXC1lZWxzOwor5LCcIDwgYVwtbGFyZ2VcLWVhcnRoZW5cLXBvdDsKK+SutyA8IG1vdmVtZW50XC1vZlwtYVwtaG9yc2U7CivkroMgPCB0b1wtZ29cLWJlZm9yZVwtb3RoZXJzOwor5rS+6YGjIDwgc2VuZFwtXChvblwtYVwtbWlzc2lvblwpOwor5KuxIDwgYVwtcGFydFwtb2ZcLXRoZVwtc2t1bGw7Civkq6kgPCB0b1wtc2hha2VcLW9uZScnc1wtaGVhZDsKK+SqvyA8IHRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5Kq9IDwgaG9hcnlcLWhhaXJlZFwtcGVyc29uOwor5Km3IDwgdGhlXC1zaWRlc1wtb2ZcLWFcLXNob2U7CivkqacgPCB0b1wtdGllXC11cFwtaHVycmllZGx5Owor5KmMIDwgdG9cLWhhdmVcLWFcLXdvcm5cLWxvb2s7Civkp5QgPCB0b1wtbWVldFwtYXRcLXRoZVwtYmFuazsKK+SmmSA8IGFcLWdvdmVybm1lbnRcLWFnZW5jeTsKK+SlpyA8IGFcLWZpbmVcLWtpbmRcLW9mXC1qYWRlOwor6KiK5qGG5YKz6YCB5pyN5YuZIDwgZnJhbWVcLXJlbGF5XC1zZXJ2aWNlOwor5KSGIDwgYVwta2luZFwtb2ZcLXJpY2VcLXdpbmU7CivkpIEgPCBjb29rZWRcLW9yXC13ZWxsXC1kb25lOwor5KKLIDwgYVwtbWFyc2hhbFwtb3JcLWhlcmFsZDsKK+S4pumHjSA8IGxheVwtZXF1YWxcLXN0cmVzc1wtb247Civou5/ku7bmioDooZMgPCBzb2Z0d2FyZVwtdGVjaG5vbG9neTsKK+SfoyA8IGFuXC1hbmltYWxcLWluXC1sZWdlbmQ7CivknrMgPCB0b1wtc3R1bWJsZVwtYW5kXC1mYWxsOwor5J2gIDwgYVwta2luZFwtb2ZcLXdpbGRcLWJvYXI7CivknIEgPCB0b1wtYWJ1c2VcLWFuZFwtaW5zdWx0Owor5JmSIDwgdG9cLXN0b3JlXC1vclwtc2F2ZVwtdXA7CivkmY8gPCBzaG9ydFwtc2xlZXZlc1wtc2hpcnQ7CivkmYEgPCBjaGlsZHJlbicnc1wtZ2FybWVudHM7CivkmKogPCBjbG90aGVzXC13aXRob3V0XC1oZW07CivklqIgPCBmaXJzdFwtYm9yblwtc2lsa3dvcm07CivklpYgPCB0b1wtc2hvd1wtZmFtaWxpYXJpdHk7Civklb4gPCBhXC1raW5kXC1vZlwtdmVnZXRhYmxlOwor5JWYIDwgYVwtdmFyaWV0eVwtb2ZcLWZ1bmd1czsKK+SVgyA8IHRoZVwtc2hhZGVcLW9mXC1hXC10cmVlOwor5JO3IDwgbnltcGhvaWRlc1wtcGVsdGFsdW07Civkk40gPCBjcnVjaWZlcm91c1wtZmxvd2VyczsKK+SSiCA8IHNpZGVcLWJlYW1cLW9mXC1hXC1ib2F0Owor5JKAIDwgc2hvcnRcLWFuZFwtZGVlcFwtYm9hdDsKK+SRhyA8IG1lZGljaW5lXC1mb3JcLWFcLXNvcmU7CivkkK0gPCBhXC1kaXNjaGFyZ2VcLW9yXC1mbHV4Owor5I+5IDwgdG9cLXdhdGNoXC1zdGVhbHRoaWx5Owor5I+oIDwgdG9cLXN3ZWxsXC11cFwtZ3JlYXRseTsKK+SPhiA8IGJ1enppbmdcLWluXC10aGVcLWVhcnM7CivkjbcgPCB0b1wtY2hhc2VcLWVhY2hcLW90aGVyOwor5Iu5IDwgYnJlYWR0aFwtb2ZcLW1hdGVyaWFsOwor5IuwIDwgdG9cLWJpbmRcLW9yXC1yZXN0cmFpbjsKK+aJjeWtuCA8IHRhbGVudFwtYW5kXC1sZWFybmluZzsKK+iAleiAmCA8IHBsb3dpbmdcLWFuZFwtd2VlZGluZzsKK+aTuumWgOmdoiA8IGtlZXBcLXVwXC1hcHBlYXJhbmNlczsKK+ioiuahhuWCs+mAgee2sui3ryA8IGZyYW1lXC1yZWxheVwtbmV0d29yazsKK+SHvSA8IGFcLWNvYXJzZVwtYmFtYm9vXC1tYXQ7Civkhq8gPCBhXC1zaG9ydFwtc2hhcGVkXC1mYWNlOwor5IWvIDwgYVwtdmFyaWV0eVwtb2ZcLW1pbGxldDsKK+SFnyA8IHZhcmlldGllc1wtb2ZcLW1pbGxldDsKK+SFkiA8IGFcLXNoYXJwXC1lZGdlZFwtZ3Jhc3M7CivmhYjnpaUgPCBcKGFcKVwta2luZGx5XC1cKHBlcnNvblwpOwor5IGLIDwgd2l0aFwtb25lXC1leWVcLWNsb3NlZDsKK+SBgyA8IHRvXC1sb29rXC1hdHRlbnRpdmVseTsKK+SApCA8IGluc2lnaHRcLW9mXC1qZWFsb3VzeTsKK+SAoyA8IHRvXC1sb29rXC1zdGVhZGlseVwtYXQ7Civlpbbmsrnoj5zoirEgPCBjcmVhbWVkXC1jYXVsaWZsb3dlcjsKK+O/kyA8IGRpc2Vhc2VcLW9mXC10aGVcLWhvb2Y7CivlhYnnmbzpgIHlmaggPCBvcHRpY2FsXC10cmFuc21pdHRlcjsKK+O+uyA8IG5vdFwtYW55XC1wcm9ncmVzc2l2ZTsKK+O+tiA8IGRpc2Vhc2VcLW9mXC10aGVcLWtuZWU7CivlronmqIIgPCBwZWFjZVwtYW5kXC1oYXBwaW5lc3M7CivjvqIgPCBhXC1tYWxpZ25hbnRcLWRpc2Vhc2U7Civjva0gPCB2YWNhbnRcLWxvdFwtb3JcLXNwYWNlOwor472MIDwgdGhlXC1yaWRnZVwtb2ZcLWFcLXJvb2Y7CivjvYIgPCBhXC1jcmFja2VkXC1jb250YWluZXI7CivjvJkgPCBicmlja3dvcmtcLW9mXC1hXC13ZWxsOwor47ySIDwgYVwta2luZFwtb2ZcLWJpZ1wtbWVsb247CivntrLntaHnkrDlooMgPCBuZXR3b3JrXC1lbnZpcm9ubWVudDsKK+aEm+S6uuWmguW3sSA8IGxvdmVcLW90aGVyc1wtYXNcLXNlbGY7CivjuLYgPCBjb2xvclwtb2ZcLXRoZVwtb3h0YWlsOwor47i1IDwgdGhlXC1sb3dpbmdcLW9mXC1hblwtb3g7CivjuKUgPCBob3VzZWhvbGRcLXJlZ2lzdGVyczsKK+O4oiA8IGNyb3NzXC1iZWFtXC1vZlwtYVwtYmVkOwor47ieIDwgYmxvY2tzXC1mb3JcLXByaW50aW5nOwor47iTIDwgdG9cLWhhdmVcLWRpc2FwcGVhcmVkOwor47iAIDwgYmxhY2tlbmVkXC13aXRoXC1zb290Owor47ekIDwgcm9zeVwtY2xvdWRzXC1vZlwtZGF3bjsKK+momeWPliA8IHRvXC1nYWluXC1ieVwtY2hlYXRpbmc7CivjsocgPCB0aGVcLXJhdHRsZVwtb2ZcLWRydW1zOwor47G+IDwgYVwta2luZFwtb2ZcLW9ybmFtZW50czsKK+OxuSA8IHRvXC1kaWVcLWZyb21cLWRpc2Vhc2U7CivjsasgPCBkZXN0cm95ZWRcLW9yXC1ydWluZWQ7CivjsaogPCBzdHVwaWRcLWFuZFwtY29uZnVzZWQ7CivjsYogPCBhc3RobWF0aWNcLWJyZWF0aGluZzsKK+OxiSA8IG1vdmluZ1wtb2ZcLXRoZVwtbW91dGg7CivjsLQgPCB0b1wtZ3JhdGVcLW9uXC10aGVcLWVhcjsKK+OwryA8IHRoZVwtd2F5XC1vZlwtc3BlYWtpbmc7Civot6/pgI/npL4gPCByZXV0ZXJzXC1uZXdzXC1hZ2VuY3k7CivmtrzniL0gPCBjb29sXC1hbmRcLXJlZnJlc2hpbmc7Civpu6jntYQgPCBsZWFkaW5nXC1wYXJ0eVwtZ3JvdXA7CivkvovlpJYgPCBcKG1ha2VcLWFuXClcLWV4Y2VwdGlvbjsKK+OrryA8IGluXC1jb250cmF2ZW50aW9uXC1vZjsKK+izh+a6kCA8IFwobmF0dXJhbFwpXC1yZXNvdXJjZXM7CivllYbmnIMgPCBjaGFtYmVyXC1vZlwtY29tbWVyY2U7CivotaTlrZcgPCBcKGZpbmFuY2lhbFwpXC1kZWZpY2l0Owor46mmIDwgdG9cLWxlYWRcLWJ5XC10aGVcLWhhbmQ7CivjqZggPCB0b1wtbW9vclwtdG9cLXRoZVwtYmFuazsKK+OonSA8IHRoZVwtdmVyeVwtaGFyZFwtc3R1ZmY7Civjp4UgPCB0b1wtdHVyblwtdXBzaWRlXC1kb3duOwor46aTIDwgZGlmZmljdWx0XC1pbnRlbnRpb247CivjpZ0gPCB0b1wtYXJvdXNlXC10b1wtYWN0aW9uOwor6Zi/5ouJ5be06aasIDwgYWxhYmFtYVwtXCh1XC5zXC5zdGF0ZVwpOwor46KKIDwgdG9cLXNldFwtc2lkZVwtYnlcLXNpZGU7CivjooIgPCBvZlwtaGlnaGx5XC1zdHJhdGVnaWM7Civpi7Dpm6LlrZDpm7vmsaAgPCBsaXRoaXVtXC1pb25cLWJhdHRlcnk7CivntYLpu57lnLDlnYAgPCBkZXN0aW5hdGlvblwtYWRkcmVzczsKK+OfsSA8IHNoYXBlXC1vZlwtYVwtbW91bnRhaW47Civjn5MgPCBsb2Z0eVwtYW5kXC1kYW5nZXJvdXM7Civjn5IgPCBtb3VudGFpbnNcLWFkam9pbmluZzsKK+S4puiBryA8IHBhcmFsbGVsXC1jb25uZWN0aW9uOwor45irIDwgdG9cLWZhbGxcLWludG9cLWFcLXdlbGw7CivosqHmupAgPCBmaW5hbmNpYWxcLXJlc291cmNlczsKK+OXtiA8IHRvXC1leHBlbFwtdGhlXC1icmVhdGg7Civnp5HlrbjpmaIgPCBhY2FkZW15XC1vZlwtc2NpZW5jZXM7CivjlqogPCBzb3VuZFwtb2ZcLXN1cnByaXNpbmc7CivjlLkgPCBhXC1zdXJwbHVzXC1vclwtZXhjZXNzOwor45O3IDwgdG9cLWN1dFwtb2ZmXC10aGVcLW5vc2U7CivjkoQgPCBicml0dGxlXC1hbmRcLWZyaWFibGU7CivjkoMgPCBjYXBpdGFsXC1mb3JtXC1vZlwtdHdvOwor6YeP6K6KIDwgcXVhbnRpdGF0aXZlXC1jaGFuZ2U7CivogJDnhakgPCBwYXRpZW50XC1cKGFkamVjdGl2ZVwpOwor5LiZ57a4IDwgcG9seXByb3B5bGVuZVwtZmlicmU7CivkuozljYHlha3omZ8gPCAyNnRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+atpemAsuWItiA8IHN0ZXBcLWJ5XC1zdGVwXC1zeXN0ZW07CivliY3omIfoga8gPCBmb3JtZXJcLXNvdmlldFwtdW5pb247CivkuI3lnKjmhI8gPCBwYXlcLW5vXC1hdHRlbnRpb25cLXRvOwor5rG66K2wIDwgXChwYXNzXC1hXClcLXJlc29sdXRpb247CivpjK/lrZcgPCBpbmNvcnJlY3RcLWNoYXJhY3RlcjsKK+S4reWci+eVtuWxgCA8IGNoaW5lc2VcLWF1dGhvcml0aWVzOwor5Ly05ZSxIDwgdm9jYWxcLWFjY29tcGFuaW1lbnQ7CivorZjosqggPCB0b1wta25vd1wtd2hhdCcnc1wtd2hhdDsKK+eon+aApyA8IG5hdHVyYWxcLWRpc3Bvc2l0aW9uOwor6aCQ57+SIDwgdG9cLXByZXBhcmVcLWFcLWxlc3NvbjsKK+WQiOaDheWQiOeQhiA8IHJlYXNvbmFibGVcLWFuZFwtZmFpcjsKK+a1gea0viA8IHNjaG9vbFwtXChvZlwtdGhvdWdodFwpOwor55m+5L6d55m+6aCGIDwgZG9jaWxlXC1hbmRcLW9iZWRpZW50Owor5Y2K6Ieq6ICV6L6yIDwgc2VtaVwtdGVuYW50XC1wZWFzYW50Owor5ZOA5oaQIDwgZmVlbFwtY29tcGFzc2lvblwtZm9yOwor5Y+N5b2I5bCO5b2IIDwgYW50aW1pc3NpbGVcLW1pc3NpbGU7CivosqHlr7YgPCBtb25leVwtYW5kXC12YWx1YWJsZXM7CivnlJ/nlKLoqK3mlr0gPCBwcm9kdWN0aW9uXC1mYWNpbGl0eTsKK+iRoeiQhOeJmeS6uiA8IHBvcnR1Z3Vlc2VcLVwocGVyc29uXCk7CivkuovlrpwgPCBcKG1ha2VcKVwtYXJyYW5nZW1lbnRzOwor5pWX6aGeIDwgc2N1bVwtb2ZcLWFcLWNvbW11bml0eTsKK+S4jee1leWmgue4tyA8IGhhbmdpbmdcLWJ5XC1hXC10aHJlYWQ7Civml5fooo0gPCBjaGluZXNlXC1zdHlsZVwtZHJlc3M7CivplbfmnJ/nqanlrprmgKcgPCBsb25nXC10ZXJtXC1zdGFiaWxpdHk7CivmioDooZPnn6XorZggPCB0ZWNobmljYWxcLWtub3dsZWRnZTsKK+W+kOihjCA8IHdhbGtcLXNsb3dseVwsXC1zdHJvbGw7Civol4/ml48gPCB0aWJldGFuXC1uYXRpb25hbGl0eTsKK+aok+Wuh+iHquWLleWMliA8IGJ1aWxkaW5nXC1hdXRvbWF0aW9uOwor5aSW5a2r5aWzIDwgZGF1Z2h0ZXInJ3NcLWRhdWdodGVyOwor5Yaw6YaL6YW4IDwgZ2xhY2lhbFwtYWNldGljXC1hY2lkOwor576O5ZyL6LuN5Lq6IDwgYW1lcmljYW5cLXNlcnZpY2VtYW47CivpmL/mr5Topb/lsLzkup7kurogPCBhYnlzc2luaWFuXC1cKHBlcnNvblwpOwor5raI54KO6JelIDwgYW50aWJpb3RpY1wtbWVkaWNpbmU7CivnhafpoacgPCB0YWtlXC1cKGdvb2RcKVwtY2FyZVwtb2Y7Civlp5Tlk6HplbcgPCBoZWFkXC1vZlwtYVwtY29tbWl0dGVlOwor6KaW56qX5Yqg6YCf5ZmoIDwgd2luZG93c1wtYWNjZWxhcmF0b3I7CivorpPmraUgPCBcKG1ha2VcLWFcKVwtY29uY2Vzc2lvbjsKK+mCiumBoCA8IGZhclwtZnJvbVwtdGhlXC1jZW50ZXI7Civoj6/niL7ooZfml6XloLEgPCB3YWxsXC1zdHJlZXRcLWpvdXJuYWw7Civmk7rpl4ogPCBwYXJhZGVcLW9uZScnc1wtd2VhbHRoOwor5oOF5aCx5bGAIDwgaW50ZWxsaWdlbmNlXC1hZ2VuY3k7CivmmbTmnJcgPCBzdW5ueVwtYW5kXC1jbG91ZGxlc3M7CivmgrLlo68gPCBzb2xlbW5cLWFuZFwtc3RpcnJpbmc7CivlnIvpmpvosr/mmJMgPCBpbnRlcm5hdGlvbmFsXC10cmFkZTsKK+e9t+W4giA8IHNob3BrZWVwZXInJ3NcLXN0cmlrZTsKK+S4jeWmqCA8IHRoZXJlXC1pc1wtbm9cLWhhcm1cLWluOwor5Lq66YCg6Kqe6KiAIDwgYXJ0aWZpY2lhbFwtbGFuZ3VhZ2U7Civkup7lpKrntpPlkIjntYTnuZQgPCBhcGVjXC1cKG9yZ2FuaXphdGlvblwpOwor5Li55Y+DIDwgc2FsdmlhXC1taWx0aW9ycmhpemE7Civpm7bokL0gPCB3aXRoZXJlZFwtYW5kXC1mYWxsZW47CivljIXouqvlt6UgPCBpbmRlbnR1cmVkXC1sYWJvdXJlcjsKK+W+l+efpSA8IFwoZmluZFwtb3V0XC1hbmRcKVwta25vdzsKK+iuiuaVhSA8IGFuXC11bmZvcmVzZWVuXC1ldmVudDsKK+S4jeaVl+S5i+WcsCA8IGludmluY2libGVcLXBvc2l0aW9uOwor5oGQ5oCVIDwgXChpJydtXClcLWFmcmFpZFwtXCh0aGF0XCk7Civoh6rouqvliKnnm4ogPCBvbmUnJ3NcLW93blwtaW50ZXJlc3RzOwor5bug6KaPIDwgZmFjdG9yeVwtcmVndWxhdGlvbnM7CivpoJDlrpogPCBzY2hlZHVsZVwtaW5cLWFkdmFuY2U7CivkuI3lh6EgPCBvdXRcLW9mXC10aGVcLW9yZGluYXJ5Owor56u254it55Si5ZOBIDwgY29tcGV0aXRpdmVcLXByb2R1Y3Q7CivmlZfnuL4gPCBiZVwtdXR0ZXJseVwtZGVmZWF0ZWQ7CivmmrTliKkgPCBzdWRkZW5cLWh1Z2VcLXByb2ZpdHM7CivpnZ7moLjlnIvlrrYgPCBub25cLW51Y2xlYXJcLWNvdW50cnk7CivnvarlkI0gPCBhXC1cKGNyaW1pbmFsXClcLWNoYXJnZTsKK+S4jeS5jyA8IHRoZXJlXC1pc1wtbm9cLWxhY2tcLW9mOwor5ZCI5ZCMIDwgXChidXNpbmVzc1wpXC1jb250cmFjdDsKK+WMl+S6rOS6uiA8IHBlcnNvblwtZnJvbVwtYmVpamluZzsKK+awo+WAmeeLgOazgSA8IGNsaW1hdGljXC1jb25kaXRpb25zOwor546WIDwgYmxhY2tcLWNvbG9yZWRcLWphZGU7Civlk6ogPCB3aGljaFw/XC13aGVyZVw/XC1ob3dcPzsKK+eJsiA8IHNhY3JpZmljaWFsXC1hbmltYWw7CivmvKIgPCB0aGVcLWNoaW5lc2VcLXBlb3BsZTsKK+a8lSA8IHRyYW5zcG9ydFwtYnlcLXdhdGVyOwor6Zi0IDwgJydmZW1hbGUnJ1wtcHJpbmNpcGxlOwor5LuZIDwgdGFvaXN0XC1zdXBlclwtYmVpbmc7CivpqbsgPCB0b1wtYmVcLXN0YXRpb25lZFwtYXQ7Civoha4gPCBsb3dlclwtcGFydFwtb2ZcLWZhY2U7Civmi5IgPCB3YXJkXC1vZmZcLXdpdGhcLWhhbmQ7CivmoYIgPCBjYXNzaWFcLW9yXC1jaW5uYW1vbjsKK+actSA8IGNsdXN0ZXJcLW9mXC1mbG93ZXJzOwor5pu5IDwgbWluaXN0cnlcLW9mZmljaWFsczsKK+e9jiA8IGFuXC1lYXJ0aGVud2FyZVwtamFyOwor5Li4IDwgc21hbGxcLXJvdW5kXC1vYmplY3Q7Civnn6kgPCBjYXJwZW50ZXInJ3NcLXNxdWFyZTsKK+iFiiA8IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor6b6fIDwgdHVydGxlXC1vclwtdG9ydG9pc2U7CivpgrggPCBvZmZpY2lhbFwtcmVzaWRlbmNlOwor5L6DIDwgdXByaWdodFwtYW5kXC1zdHJvbmc7CivpgoIgPCB1bmV4cGVjdGVkXC1tZWV0aW5nOwor5oCvIDwgbGFja2luZ1wtaW5cLWNvdXJhZ2U7CivnlLggPCBzdWJ1cmJzXC1vZlwtY2FwaXRhbDsKK+aNniA8IHNjb29wXC1vdXRcLW9mXC13YXRlcjsKK+aJmyA8IGNhcnJ5XC1vblwtc2hvdWxkZXJzOwor6JmUIDwgYWN0XC13aXRoXC1yZXZlcmVuY2U7CivpnJYgPCBsb25nXC1zcGVsbFwtb2ZcLXJhaW47Civpn6cgPCBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+eRviA8IGJyaWxsaWFuY2VcLW9mXC1nZW1zOwor5qGUIDwgY2hpbmVzZVwtYmVsbGZsb3dlcjsKK+m4syA8IG1hbGVcLW1hbmRhcmluXC1kdWNrOwor6ZKXIDwgb3JuYW1lbnRhbFwtaGFpcnBpbjsKK+W3hSA8IHN1bW1pdFwtb2ZcLW1vdW50YWluOwor5qioIDwgb3NtYW50aHVzXC1mcmFncmFuczsKK+igoSA8IHdvb2RcLWJvcmluZ1wtaW5zZWN0Owor6LmCIDwgdHJhbXBsZVwtdW5kZXJcLWZvb3Q7CivpqqUgPCB0aG9yb3VnaGJyZWRcLWhvcnNlOwor5ZSBIDwgZXhwcmVzc1wtY29uZG9sZW5jZTsKK+mqhSA8IGFuXC1leGNlbGxlbnRcLWhvcnNlOwor56KJIDwgcm9vbVwtbWFkZVwtb2ZcLXN0b25lOwor55afIDwgaW50ZXJtaXR0ZW50XC1mZXZlcjsKK+e6oyA8IG5hbWVcLW9mXC1hblwtZW1wZXJvcjsKK+ejrCA8IG11c2ljYWxcLWluc3RydW1lbnQ7CivniL8gPCBoYWxmXC1vZlwtdHJlZVwtdHJ1bms7Civml44gPCBmbHV0dGVyaW5nXC1vZlwtZmxhZzsKK+WklCA8IG9uZVwtbGVnZ2VkXC1tb25zdGVyOwor5q6NIDwgdG9cLXN0YXJ2ZVwtdG9cLWRlYXRoOwor6aqKIDwgYVwtcHVyZVwtYmxhY2tcLWhvcnNlOwor5rmOIDwgZmx1c2hlZFwtd2l0aFwtZHJpbms7CivllrUgPCB0aGVcLW1ld1wtb2ZcLXRoZVwtY2F0Owor54SZIDwgZHJ5XC1vdmVyXC1zbG93XC1maXJlOwor57u+IDwgdG9cLXN0cmluZ1wtdG9nZXRoZXI7CivnnKYgPCBjb3JuZXJcLW9mXC10aGVcLWV5ZXM7CivnkYEgPCBmaW5lXC1waWVjZVwtb2ZcLWphZGU7CivnsrMgPCBub25cLWdsdXRpbm91c1wtcmljZTsKK+mkriA8IGFcLWxlZ2VuZGFyeVwtYW5pbWFsOwor5rGKIDwgYVwtYnJhbmNoaW5nXC1zdHJlYW07CivnvIMgPCBsaWdodFwteWVsbG93XC1jb2xvcjsKK+aqqSA8IHRoZVwtYm9sZVwtb2ZcLWFcLXRyZWU7CivlpYEgPCBsYWR5JydzXC12YW5pdHlcLWNhc2U7CivmpbggPCBtYWxsb3R1c1wtamFwb25pY3VzOwor6aq6IDwgdGlwXC1vZlwtYVwtbG9uZ1wtYm9uZTsKK+iXvyA8IGxvcGhhbnRodXNcLXJ1Z29zdXM7CivmqL4gPCB0aGVcLXNoYWRlXC1vZlwtdHJlZXM7CivphaQgPCB0b1wtZGVhbFwtaW5cLXNwaXJpdHM7Civoh4wgPCBkcm9wc2ljYWxcLXN3ZWxsaW5nOwor6LerIDwgc291bmRcLW9mXC1mb290c3RlcHM7Civntq4gPCBlbWJyb2lkZXJlZFwtYmFubmVyOwor6KezIDwgYW5cLWFuY2llbnRcLW1lYXN1cmU7CivmnYwgPCB0aGVcLXN0dW1wXC1mXC1hXC10cmVlOwor5bWrIDwgYVwtaGlsbFwtaW5cLXNoYW50dW5nOwor5pOXIDwgdG9cLWJlYXRcLXRoZVwtYnJlYXN0Owor6ISUIDwgc21hbGxcLWx1bXBcLW9mXC1tZWF0Owor6YaFIDwgdW5zdHJhaW5lZFwtc3Bpcml0czsKK+e+sCA8IGNhcmJvbnlsXC1cKHJhZGljYWxcKTsKK+ibuCA8IGxvbmdcLWxlZ2dlZFwtc3BpZGVyOwor556AIDwgdG9cLWxvb2tcLWF0XC1jbG9zZWx5Owor5q6zIDwgbmFtZVwtb2ZcLW9sZFwtd2VhcG9uOwor5bSeIDwgbW91bnRhaW5cLWluXC1zaGFueGk7CivlnrIgPCBoaWdoXC1hbmRcLWRyeVwtcGxhY2U7Civomb8gPCBhXC1raW5kXC1vZlwtc2NvcnBpb247CivnlrMgPCBjaGlsZGhvb2RcLWRpc2Vhc2VzOwor572+IDwgYVwtbGFyZ2VcLXNxdWFyZVwtbmV0Owor542sIDwgYVwtZmFidWxvdXNcLW1vbnN0ZXI7CivosqDosqzku7sgPCByZXNwb25zaWJpbGl0eVwtZm9yOwor5bmr6L6mIDwgYXNzaXN0XC1pblwtbWFuYWdpbmc7Civphazmh4kgPCBzb2NpYWxcLWludGVyYWN0aW9uOwor54Sh6KuWIDwgbm9cLW1hdHRlclwtd2hhdFx8aG93Owor5Y6f5a6aIDwgb3JpZ2luYWxseVwtcGxhbm5lZDsKK+mAmuihjCA8IGxpY2VuY2VcLVwoY29tcHV0ZXJcKTsKK+eSsOW9oue1kOaniyA8IHJpbmdcLWNvbmZpZ3VyYXRpb247Civlj7jku6QgPCBjb21tYW5kaW5nXC1vZmZpY2VyOwor57O+6ZuGIDwgdG9cLWdhdGhlclwtdG9nZXRoZXI7CivpgIHooYwgPCB0b1wtc2VlXC1zb21lb25lXC1vZmY7Civopb/nj63niZnoqp4gPCBzcGFuaXNoXC1cKGxhbmd1YWdlXCk7CivpgZXntIQgPCB0b1wtYnJlYWtcLWFcLXByb21pc2U7CivljbHlsYAgPCBwZXJpbG91c1wtc2l0dWF0aW9uOwor5LiA6Iis5L6G6KqqIDwgZ2VuZXJhbGx5XC1zcGVha2luZzsKK+i7n+S7tumWi+eZvOS6uuWToSA8IHNvZnR3YXJlXC1kZXZlbG9wZXI7CivmkqXomZ8gPCBkaWFsXC1cKGFcLXRlbGVwaG9uZVwpOwor5ZyL5rCR6buo6LuN6ZqKIDwgbmF0aW9uYWxpc3RcLWZvcmNlczsKK+mmluiFpuacg+aZpCA8IGxlYWRlcnNoaXBcLW1lZXRpbmc7Civororkv64gPCBiZWNvbWVcLXJldmlzaW9uaXN0Owor6YGV56ugIDwgdG9cLWJyZWFrXC10aGVcLXJ1bGVzOwor6YeN6KaB5ZWP6aGMIDwgYW5cLWltcG9ydGFudFwtaXNzdWU7CivntrLnrqEgPCBuZXR3b3JrXC1tYW5hZ2VtZW50Owor6JKZ5paHIDwgbW9uZ29saWFuXC1sYW5ndWFnZTsKK+aAp+S6pCA8IHNleHVhbFwtaW50ZXJjb3Vyc2U7CivkuK3lsbHoo50gPCBjaGluZXNlXC10dW5pY1wtc3VpdDsKK+e3rOeUuOiqniA8IGJ1cm1lc2VcLVwobGFuZ3VhZ2VcKTsKK+aUv+ayu+eKryA8IHBvbGl0aWNhbFwtcHJpc29uZXI7CivlubTku6XkvoYgPCBzaW5jZVwtdGhlXC15ZWFyXC1cLlwuXC47CivmlrDoj6/npL4gPCB4aW5odWFcLW5ld3NcLWFnZW5jeTsKK+S4jeS4reeUqCA8IHVuZml0XC1mb3JcLWFueXRoaW5nOwor5LiA5bCP5pmC5Lul5b6MIDwgYVwtc2hvcnRcLXRpbWVcLWxhdGVyOwor6aCY5YWI5Zyw5L2NIDwgbGVhZFwoaW5nXClcLXBvc2l0aW9uOwor6YCy5LiA5q2lIDwgXChvbmVcLXN0ZXBcKVwtZnVydGhlcjsKK+eJqeWDuSA8IFwoY29tbW9kaXR5XClcLXByaWNlczsKK+S/oeaBr+ezu+e1sSA8IGluZm9ybWF0aW9uXC1zeXN0ZW07CivlvozlpKkgPCBkYXlcLWFmdGVyXC10b21vcnJvdzsKK+aPkOS+m+WVhiA8IHByb3ZpZGVyXC1cKGNvbXBhbnlcKTsKK+WkquW5syA8IHBlYWNlXC1hbmRcLXNlY3VyaXR5Owor55+a5pybIDwgdG9cLWxvb2tcLWZvcndhcmRcLXRvOwor5Y2U5YqpIDwgcHJvdmlkZVwtYXNzaXN0YW5jZTsKK+aOoemiqCA8IGNvbGxlY3RcLWZvbGtcLXNvbmdzOwor56iu5peP5riF5rSXIDwgXCJldGhuaWNcLWNsZWFuc2luZ1wiOwor5o+P6YeRIDwgdG9cLW91dGxpbmVcLWluXC1nb2xkOwor5Yqp5pWZIDwgdGVhY2hpbmdcLWFzc2lzdGFudDsKK+Wkq+WppiA8IGFcLVwobWFycmllZFwpXC1jb3VwbGU7CivkuZLkuZPnkIPmqq8gPCB0YWJsZVwtdGVubmlzXC10YWJsZTsKK+iLseiqniA8IGVuZ2xpc2hcLVwobGFuZ3VhZ2VcKTsKK+mBi+awoyA8IGx1Y2tcLVwoZ29vZFwtb3JcLWJhZFwpOwor6Z2e5bi45Zq05Y6yIDwgdG9cLXB1bmlzaFwtc2V2ZXJlbHk7Civljp/omIfoga8gPCBmb21lclwtc292aWV0XC11bmlvbjsKK+aOoemMhCA8IGNvbGxlY3RcLWFuZFwtcmVjb3JkOwor54aK5o6MIDwgYmVhclwtcGF3XC1cKGFzXC1mb29kXCk7Civlhafpg6jntZDmp4sgPCBpbnRlcm5hbFwtc3RydWN1dHJlOwor5paw5YW1IDwgbmV3XC1cKGFybXlcKVwtcmVjcnVpdDsKK+aVuOaTmumAmuS/oSA8IGRhdGFcLWNvbW11bmljYXRpb247CivlpKnlronploAgPCB0aWFuYW5tZW5cLVwoc3F1YXJlXCk7CivpnZ7luLjmhJ/orJ0gPCBleHRyZW1lbHlcLWdyYXRlZnVsOwor6b6WIDwgZmxpZ2h0XC1vZlwtYVwtZHJhZ29uOwor5paD5ZG9IDwgbWVldFwtdmlvbGVudFwtZGVhdGg7CivpuJwgPCBhXC1zcGVjaWVzXC1vZlwtbXluYWg7Civpt70gPCBvcmllbnRhbFwtYnVsbGZpbmNoOwor5YWL6ZqG5oqA6KGTIDwgY2xvbmluZ1wtdGVjaG5vbG9neTsKK+mbu+WtkOe2sue1oSA8IGVsZWN0cm9uaWNcLW5ldHdvcms7CivptJcgPCBhbGNlZG9cLWJlbmdhbGVuc2lzOwor6bG1IDwgaHlwb3JoYW1wdXNcLXNhanVyaTsKK+WkseS6iyA8IFwoaGF2ZVwtYW5cKVwtYWNjaWRlbnQ7CivkuI3lj5fnkIYgPCByZWplY3RcLWFcLWNvbXBsYWludDsKK+msoCA8IHRvXC1tYWtlXC1hXC10b3BcLWtub3Q7CivnmbzpgZTlnIsgPCBkZXZlbG9waW5nXC1jb3VudHJ5Owor55m96bq15pu455SfIDwgcGFsZVwtZmFjZWRcLXNjaG9sYXI7Civot5HorabloLEgPCB0b1wtcnVuXC1mb3JcLXNoZWx0ZXI7CivppLwgPCBzYWNyaWZpY2lhbFwtdmljdGltOwor6Zu75L+hIDwgdGVsZWNvbW11bmljYXRpb25zOwor5o2o6LqrIDwgdG9cLWdpdmVcLW9uZScnc1wtbGlmZTsKK+mglCA8IGdvb2RcLWFuZFwtYmVhdXRpZnVsOwor6Iqd6JitIDwgaXJpc2VzXC1hbmRcLW9yY2hpZHM7CivosqHli5nou5/ku7YgPCBmaW5hbmNpYWxcLXNvZnR3YXJlOwor5pS55Y+jIDwgdG9cLWNvcnJlY3RcLW9uZXNlbGY7Civnmb3plovmsLQgPCBwbGFpblwtYm9pbGVkXC13YXRlcjsKK+aUv+WLmSA8IGdvdmVybm1lbnRcLWFmZmFpcnM7Civlhafnp5EgPCBtZWRpY2FsXC1kZXBhcnRtZW50Owor5YWD57SgIDwgXChjaGVtaWNhbFwpXC1lbGVtZW50Owor5Yqg5YWlIDwgdG9cLWJlY29tZVwtYVwtbWVtYmVyOwor5oub5b6F5pyDIDwgXChwcmVzc1wpXC1jb25mZXJlbmNlOwor6YG45Y2AIDwgZWxlY3RvcmFsXC1kaXN0cmljdDsKK+mHkiA8IGthbmd4aVwtcmFkaWNhbFwtMTY3Owor6YSuIDwgYW5jaWVudFwtcGxhY2VcLW5hbWU7CivlnJ/okZcgPCBuYXRpdmVcLFwtYWJvcmlnaW5hbDsKK+aHt+S/hOaYjiA8IHd5b21pbmdcLVwodXNcLXN0YXRlXCk7CivljaHmi4nlpYcgPCBrYXJhY2hpXC1cKHBha2lzdGFuXCk7Civmk43lroggPCBwZXJzb25hbFwtaW50ZWdyaXR5Owor6L2ZIDwgcmluZ3NcLW9uXC10aGVcLXlva2VzOwor5YKy6KaWIDwgdHVyblwtdXBcLW9uZScnc1wtbm9zZTsKK+i7sCA8IGFcLXJvd1wtb2ZcLWNhcnJpYWdlczsKK+WNiuimj+euoSA8IHNlbWljaXJjdWxhclwtY2FuYWw7Civppqzkvoboqp4gPCBtYWxheXNpYW5cLWxhbmd1YWdlOwor5Y+k5YW46Kqe6KiAIDwgY2xhc3NpY2FsXC1sYW5ndWFnZTsKK+iwvSA8IGFcLW1vdXRoXC1vclwtb3BlbmluZzsKK+iOq+WmgiA8IGl0XC13b3VsZFwtYmVcLWJldHRlcjsKK+e1kOW4syA8IHRvXC1zZXR0bGVcLWFjY291bnRzOwor5Zub6JmVIDwgYWxsXC1vdmVyXC10aGVcLXBsYWNlOwor5q+U5LiN5LiKIDwgY2FuJyd0XC1jb21wYXJlXC13aXRoOwor57ay6Lev6YCj5o6l5bGkIDwgbmV0d29ya1wtbGlua1wtbGF5ZXI7CivoqIEgPCBrYW5neGlcLXJhZGljYWxcLTE0OTsKK+iltSA8IGFcLXBsZWF0XC1pblwtYVwtc2tpcnQ7CivopLAgPCBsaWZ0XC11cFwtdGhlXC1za2lydHM7CivlnabnjocgPCBmcmFua1wtXChkaXNjdXNzaW9uXCk7CivpgYvkvZwgPCB0aHJlYWRcLVwoY29tcHV0aW5nXCk7CivlpJrnsbPlsLzliqDlhbHlkozlnIsgPCBkb21pbmljYW5cLXJlcHVibGljOwor6YCx5YiKIDwgd2Vla2x5XC1wdWJsaWNhdGlvbjsKK+iauSA8IGV1bG90YVwtcGVsaW9tcGhhbGE7CivolrcgPCBlbHNob3RyaWFcLXBhbHRyaW5pOwor5L+d6aeVIDwgZXNjb3J0XC10aGVcLWVtcGVyb3I7CivolbogPCBob3V0dHV5bmlhXC1jb3JkYXRhOwor6JO0IDwgZWRpYmxlXC13YXRlclwtcGxhbnQ7CivlhanlgIvkuK3lnIsgPCB0d29cLWNoaW5hXC1cKHBvbGljeVwpOwor6JG0IDwgcGh5c2FsaXNcLWFsa2VrZW5naTsKK+WFseaciSA8IHRvXC1oYXZlXC1hbHRvZ2V0aGVyOwor5aCx5ZacIDwgYW5ub3VuY2VcLWdvb2RcLW5ld3M7Civot5Hpm7sgPCBlbGVjdHJpY2FsXC1sZWFrYWdlOwor6I2FIDwgYW5zd2VyXDpcLXNtYWxsXC1iZWFuOwor6IyWIDwgYWxsaXVtXC12aWN0b3JpYWxpczsKK+Wci+mYsumDqCA8IGRlZmVuc2VcLWRlcGFydG1lbnQ7CivoiqMgPCBtZWRpY2luYWxcLXBsYW50YWdvOwor5pKl5Yi6IDwgc3BsYXNoXC1cKG9mXC1hXC1maXNoXCk7Civmi5zoposgPCBwYXlcLWFcLWZvcm1hbFwtdmlzaXQ7CivlpJbkvobmipXos4cgPCBmb3JlaWduXC1pbnZlc3RtZW50Owor6LaV5LiN5LiKIDwgY2FuJyd0XC1rZWVwXC11cFwtd2l0aDsKK+e/ryA8IGdsaXN0ZW5pbmdcLXBsdW1hZ2U7Civnv5YgPCBrc2NcLWV4dGVuc2lvblwtMzEwODsKK+WIneS4rSA8IGp1bmlvclwtaGlnaFwtc2Nob29sOwor576nIDwgY2FyYm94eWxcLVwocmFkaWNhbFwpOwor5Zyf6ICz5YW26KqeIDwgdHVya2lzaFwtXChsYW5ndWFnZVwpOwor5LiN5q2j5LmL6aKoIDwgdW5oZWFsdGh5XC10ZW5kZW5jeTsKK+aKhOmBkyA8IHRvXC10YWtlXC1hXC1zaG9ydGN1dDsKK+a8lOiqqiA8IFwoZGVsaXZlclwtYVwpXC1zcGVlY2g7CivopoHlnLAgPCBzdHJhdGVnaWNcLWxvY2F0aW9uOwor6L6m5aCxIDwgdG9cLXJ1blwtYVwtbmV3c3BhcGVyOwor6ZuG5oiQ6Zu76LevIDwgaW50ZWdyYXRlZFwtY2lyY3VpdDsKK+ezkiA8IGZvb2RcLWZvclwtYVwtam91cm5leTsKK+WHuuS7uyA8IHN0YXJ0XC1pblwtYVwtbmV3XC1qb2I7Civplonpl5zmlL/nrZYgPCBjbG9zZWRcLWRvb3JcLXBvbGljeTsKK+WFp+aDhSA8IGluc2lkZVwtaW5mb3JtYXRpb247Civmi7/kuLvmhI8gPCB0b1wtbWFrZVwtYVwtZGVjaXNpb247CivntrLntaHmioDooZMgPCBuZXR3b3JrXC10ZWNobm9sb2d5Owor5bi45aeU5pyDIDwgc3RhbmRpbmdcLWNvbW1pdHRlZTsKK+S4reWci+aUv+W6nCA8IGNoaW5lc2VcLWdvdmVybm1lbnQ7CivplovlsZUgPCBcKGJlZ2luXC10b1wpXC1kZXZlbG9wOwor5Luk54mM55Kw57ayIDwgdG9rZW5cLXJpbmdcLW5ldHdvcms7CivnmqogPCBsdXN0ZXJcLVwob2ZcLXBlYXJsc1wpOwor5aSn5piO6byO6byOIDwgYVwtZ3JhbmRcLXJlcHV0YXRpb247Civnl5wgPCBhXC1zY2FiYnlcLWJhbGRcLWhlYWQ7CivlpKflrbjnlJ8gPCB1bml2ZXJzaXR5XC1zdHVkZW50Owor55S/IDwgZmFybWluZ1wtcG9wdWxhdGlvbjsKK+iyv+aYk+e1hOe5lCA8IHRyYWRlXC1vcmdhbml6YXRpb247CivnlIsgPCBhXC1qYXJcLXdpdGhvdXRcLWVhcnM7CivnkKQgPCBqYWRlXC1vZlwtamFkZVwtYmVpbmc7CivnjpggPCBjb3VydFwtZHJlc3NcLWpld2VsczsKK+mBjeWcsOmWi+iKsSA8IGJsb3Nzb21cLWV2ZXJ5d2hlcmU7CivnjbMgPCBmaWVyY2VcLWRvZ1wtbG9va2luZzsKK+S/hOiqniA8IHJ1c3NpYW5cLVwobGFuZ3VhZ2VcKTsKK+WxseiFsyA8IGZvb3RcLW9mXC1hXC1tb3VudGFpbjsKK+eFjSA8IHRvXC1jb2xvdXJcLWJ5XC1zbW9rZTsKK+mrmOmAn+e2sue1oSA8IGhpZ2hcLXNwZWVkXC1uZXR3b3JrOwor54GlIDwgYVwtZ3JvdXBcLW9mXC1zcHJpbmdzOwor5bq35aWI54i+5aSn5a24IDwgY29ybmVsbFwtdW5pdmVyc2l0eTsKK+WFrOWPuCA8IFwoYnVzaW5lc3NcKVwtY29tcGFueTsKK+aLieelqCA8IGNhbXBhaWduXC1mb3JcLXZvdGVzOwor5omL6KGTIDwgc3VyZ2ljYWxcLW9wZXJhdGlvbjsKK+WFq+WNpiA8IHRoZVwtZWlnaHRcLWRpYWdyYW1zOwor54CP6Ka95ZmoIDwgYnJvd3NlclwtXChzb2Z0d2FyZVwpOwor6auU5rqrIDwgXChib2R5XClcLXRlbXBlcmF0dXJlOwor5pu46Z2i6Kix5Y+vIDwgd3JpdHRlblwtcGVybWlzc2lvbjsKK+azsiA8IGtpbmRcLW9mXC13aGl0ZVwtd2luZTsKK+S4lue0gOacqyA8IGVuZFwtb2ZcLXRoZVwtY2VudHVyeTsKK+awjSA8IGZpbmVcLXdvb2xsZW5cLWNsb3RoOwor5ryC56e7IDwgZHJpZnRcLVwoZWxlY3RyaWNhbFwpOwor6IGv5ZCI5YWs5aCxIDwgam9pbnRcLWFubm91bmNlbWVudDsKK+eglOeptuapn+aniyA8IHJlc2VhcmNoXC1pbnN0aXR1dGU7CivkvZvomK3oipLoqp4gPCBmbGVtaXNoXC1cKGxhbmd1YWdlXCk7CivlgZzmu68gPCBiZVwtYXRcLWFcLXN0YW5kc3RpbGw7CivlnIvmnIPorbDlk6EgPCBtZW1iZXJcLW9mXC1jb25ncmVzczsKK+acgOi/keW5vuW5tCA8IHRoZVwtbGFzdFwtZmV3XC15ZWFyczsKK+eyvuewoemWi+aUryA8IHRvXC1yZWR1Y2VcLXNwZW5kaW5nOwor5p+6IDwgYW5cLW9sZFwtbWFuJydzXC1zdGFmZjsKK+aduyA8IGxpZ3VzdHJ1bVwtc2luZW5lc2U7CivmnZkgPCBhXC10aW55XC13b29kZW5cLXBvc3Q7CivkuI3nva7lj6/lkKYgPCBkZWNsaW5lXC10b1wtY29tbWVudDsKK+i7jeWumCA8IFwobWlsaXRhcnlcKVwtb2ZmaWNlcjsKK+aYtyA8IHRvXC1mZWVkXC1hXC1wcmlzb25lcjsKK+aXvCA8IGdlbnRsZVwtYW5kXC1hZmZhYmxlOwor5aGe54i+57at5Lqe6KqeIDwgc2VyYmlhblwtXChsYW5ndWFnZVwpOwor5pOtIDwgdHJhcFwtY2F0Y2hcLWFuaW1hbHM7CivkuInop5LohbnluLYgPCBhdGhsZXRpY1wtc3VwcG9ydGVyOwor562G55u0IDwgcGVyZmVjdGx5XC1zdHJhaWdodDsKK+eUoueUnyA8IHRvXC1jb21lXC1pbnRvXC1iZWluZzsKK+mnkOiPryA8IHN0YXRpb25lZFwtaW5cLWNoaW5hOwor5pav55Om5biM6KOh6KqeIDwgc3dhaGlsaVwtXChsYW5ndWFnZVwpOwor5o6I5Y+XIDwgdG9cLWdpdmVcLWFuZFwtYWNjZXB0Owor55ar5oOFIDwgZXBpZGVtaWNcLXNpdHVhdGlvbjsKK+a3semAoCA8IGFkdmFuY2VkXC1cKHN0dWRpZXNcKTsKK+ihm+eUn+ioreWCmSA8IHNhbml0YXJ5XC1lcXVpcG1lbnQ7CivpgKDmiJDllY/poYwgPCB0b1wtY3JlYXRlXC1hblwtaXNzdWU7CivlvYQgPCBub2NrXC1hdFwtZW5kXC1vZlwtYm93Owor5o2o5ZG9IDwgdG9cLXJpc2tcLW9uZScnc1wtbGlmZTsKK+aTgeitt+iAhSA8IHN1cHBvcnRlclwtXChwZXJzb25cKTsKK+Wci+WLmeWNvyA8IHNlY3JldGFyeVwtb2ZcLXN0YXRlOwor5baoIDwgYmlnXC1yb2NreVwtbW91bnRhaW47Civoo4HkuKYgPCBjdXRcLWRvd25cLWFuZFwtbWVyZ2U7CivltZYgPCBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civkvb/nr4AgPCBcKGRpcGxvbWF0aWNcKVwtZW52b3k7CivlnIvlrrbmqJnmupbnorwgPCBnYlwtXChndW9cLWJpYW9cKVwtY29kZTsKK+WNiui8qeWtkCA8IGhhbGZcLW9mXC1hXC1saWZldGltZTsKK+acrOWIneWtkOWNiOe3miA8IHRoZVwtZmlyc3RcLW1lcmlkaWFuOwor5a625bqt5raI6LK76ICFIDwgaG91c2Vob2xkXC1jb25zdW1lcjsKK+WjnCA8IGVhcnRoZW5cLWphclwtb3JcLWp1ZzsKK+iHs+WwkSA8IFwodG9cLXNheVwtdGhlXClcLWxlYXN0Owor5aKQIDwgdG9cLWJ1aWxkXC13aXRoXC1zb2lsOwor56uZ566h55CGIDwgc3RhdGlvblwtbWFuYWdlbWVudDsKK+iyt+izoyA8IGJ1eWluZ1wtYW5kXC1zZWxsaW5nOwor5ZmLIDwgdG9cLXN3YWxsb3dcLWhhc3RpbHk7CivmuKznuaogPCB0b1wtc3VydmV5XC1hbmRcLWRyYXc7Civog4zntIQgPCBicmVha1wtYW5cLWFncmVlbWVudDsKK+iJsuaDheWwj+iqqiA8IHBvcm5vZ3JhcGhpY1wtbm92ZWw7Civlk7AgPCBpbmNvaGVyZW50XC1jaGF0dGVyOwor6Iqs6Jit6KqeIDwgZmlubmlzaFwtXChsYW5ndWFnZVwpOwor6LK05aaD6YaJ6YWSIDwgdGhlXC1kcnVua2VuXC1iZWF1dHk7Civororms5XlhZIgPCB0cnlcLWRpZmZlcmVudFwtd2F5czsKK+a1t+epuui7jSA8IG5hdnlcLWFuZFwtYWlyXC1mb3JjZTsKK+mbu+WtkOS/oeeusSA8IGVsZWN0cm9uaWNcLW1haWxib3g7Civot6/lvpEgPCByb3V0ZVwtXChuZXR3b3JraW5nXCk7CivkvbcgPCB0b1wtYWN0XC1jb250cmFyeVwtdG87CivoiInkvosgPCB0b1wtZ2l2ZVwtYW5cLWV4YW1wbGU7CivmkpLlk4jmi4nku6XljZfpnZ7mtLIgPCBzdWJcLXNhaGFyYW5cLWFmcmljYTsKK+S5kSA8IHN0YW5kXC1zaWRlXC1ieVwtc2lkZTsKK+aJjeaZuiA8IGFiaWxpdHlcLWFuZFwtd2lzZG9tOwor5LajIDwgdG9cLWdyaW5kXC10aGVcLXRlZXRoOwor5LafIDwgdG9cLWduYXNoXC10aGVcLXRlZXRoOwor5LWVIDwgYVwtdmFyaWV0eW9mXC1taWxsZXQ7CivktLEgPCBjYWtlc1wtYW5kXC1iaXNjdWl0czsKK+SzqCA8IHRoZVwtZmVtYWxlXC1waG9lbml4Owor5LOUIDwgYVwtcGlnZW9uXC1saWtlXC1iaXJkOwor5LGzIDwgYVwta2luZFwtb2ZcLXN0dXJnZW9uOwor5LGjIDwgYVwtbG9uZ1wtbmFycm93XC1maXNoOwor5LCqIDwgbWlzY2hpZXZvdXNcLXNwaXJpdDsKK+SvsSA8IHRoZVwtaGFpclwtc3RhbmRzXC11cDsKK+SvjyA8IHRoZVwtc2hvdWxkZXJcLWJsYWRlOwor5K6lIDwgY29sb3JcLW9mXC10aGVcLWhvcnNlOwor57Sw6I+M5oiwIDwgYmlvbG9naWNhbFwtd2FyZmFyZTsKK+StsCA8IHN0cm9uZ1wtc3dlZXRcLXNtZWxsOwor5K2LIDwgdG9cLWVhdFwtdG9cLXRoZVwtZnVsbDsKK+StgyA8IHRvXC1lYXRcLXRvXC10aGVcLWZvb2w7CivkrLQgPCBmb2RkZXJcLWZvclwtYW5pbWFsczsKK+SspyA8IHJvdW5kXC1zaGFwZWRcLWNha2VzOwor5omT5ouzIDwgdG9cLWRvXC1zaGFkb3dib3hpbmc7CivohIjmrIIgPCBiZWF0aW5nXC1cKG9mXC1oZWFydFwpOwor5KuQIDwgdG9cLWJlbmRcLW9uZScnc1wtaGVhZDsKK+SqjCA8IGN1c2hpb25cLWZvclwtc2FkZGxlOwor5KiGIDwgYVwta2luZFwtb2ZcLXBoZWFzYW50Owor5Ke8IDwgdGhlXC10aGVcLXNub3dcLWdvb3NlOwor5KemIDwgbmFtZVwtb2ZcLWFcLWhpbGxzaWRlOwor5paw5Yqg5Z2h5Lq6IDwgc2luZ2Fwb3JlYW5cLXBlcnNvbjsKK+SmriA8IGRvb3JcLW9mXC10aGVcLWNlbnRlcjsKK+iHquS4uyA8IHRvXC1hY3RcLWZvclwtb25lc2VsZjsKK+SmkiA8IHRoZVwtZG9vclwtaXNcLWNsb3NlZDsKK+SmkCA8IHRoZVwtYm9sdFwtb2ZcLWFcLWRvb3I7CivmnJ/osqggPCBmdXR1cmVzXC1cKG9uXC1nb29kc1wpOwor5KWzIDwgYVwtY2hlbWljYWxcLWVsZW1lbnQ7CivkpZ4gPCB0b1wtY3V0XC13aXRoXC1zaGVhcnM7CivkpZ0gPCBkZXNwZXJhdGVcLWZpZ2h0aW5nOwor5L615oiqIDwgdG9cLWhhY2tcLVwoY29tcHV0ZXJcKTsKK+SjuiA8IGZpbHRyYXRlZFwtdGhlXC13aW5lOwor6aCt6auuIDwgaGFpclwtXChvblwtdGhlXC1oZWFkXCk7CivkoaAgPCBzdHJvbmdcLWFuZFwtZHVyYWJsZTsKK+ShmyA8IG5hbWVcLW9mXC1hXC1jYXJyaWFnZTsKK+SgpyA8IGhhcmRcLXRvXC1nb1wtZm9yd2FyZDsKK+SfnSA8IHRvXC13YWxrXC1yaWdodFwtaW50bzsKK+SdniA8IG5hbWVcLW9mXC1hXC1pbW1vcnRhbDsKK+SbiSA8IHRvXC1pbmR1Y2VcLWJ5XC13b3JkczsKK+SapyA8IGN1cnZlZFwtd2l0aFwtYW5nbGVzOwor5aSn5Yqb55m85bGVIDwgdmlnb3JvdXNcLWV4cGFuc2lvbjsKK+SZgyA8IHNsZWV2ZWxlc3NcLWNsb3RoZXM7Civos6rnlpEgPCBjYWxsXC1pbnRvXC1xdWVzdGlvbjsKK+SXuyA8IGFcLWtpbmRcLW9mXC1zZWFcLWNyYWI7Civkl6ggPCBsZXBzaW1hXC1zYWNjaGFyaW5hOwor5JejIDwgaW5zZWN0XC1vZlwtbXVsYmVycnk7CivmnI3li5nopo/nq6AgPCBzZXJ2aWNlXC1yZWd1bGF0aW9uOwor5JanIDwgYVwtcG9pc29ub3VzXC1pbnNlY3Q7CivklpMgPCBvZlwtYVwtd2Fsa2luZ1wtdGlnZXI7CivklaogPCB0aGVcLXdhdGVyXC1wbGFudGFpbjsKK+SUvCA8IHNvdW5kXC1vZlwtdGhlXC1ncmFzczsKK+SUgyA8IGNvcmRhdGVcLWhvdXR0dXluaWE7Civkk6ggPCBsb25nXC1uZWNrZWRcLWJvdHRsZTsKK+STliA8IGNuaWRpdW1cLW9mZmljaW5hbGU7Civkk4MgPCBtZWxhbmNob2x5XC1hbmRcLXNhZDsKK+SSnSA8IHJvb3RcLW9mXC10aGVcLXRoYXRjaDsKK+mmluasoSA8IGZvclwtdGhlXC1maXJzdFwtdGltZTsKK+SRmSA8IHB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+SRhiA8IGZlZWxcLWxpa2VcLXZvbWl0aW5nOwor5Zyo5YKz6Ly46YGO56iL5LitIDwgd2hpbGVcLXRyYW5zbWl0dGluZzsKK+SQlCA8IG11c2NsZVwtb2ZcLXRoZVwtY2FsZjsKK+SOviA8IGJpZ1wtYW5kXC1yb3VuZFwtZXllczsKK+Wfn+WQjeacjeWLmeWZqCA8IGRvbWFpblwtbmFtZVwtc2VydmVyOwor5I60IDwgYVwtbGVnZW5kYXJ5XC1zcGlyaXQ7CivkjqogPCB0aGVcLXN0YWxrXC1vZlwtZ3JhaW47CivmooblrZAgPCB3YXRjaG1hbicnc1wtY2xhcHBlcjsKK+SOlCA8IGZpbmVcLWFuZFwtc29mdFwtaGFpcjsKK+SOjyA8IHlvdW5nXC1iaXJkc1wtZmx5aW5nOwor5rK56aSFIDwgZGVlcFwtZnJpZWRcLXBhbmNha2U7CivkjakgPCB0b1wtb2ZmZXJcLXByb3Zpc2lvbjsKK+SNoyA8IGFcLWtpbmRcLW9mXC1maXNoXC1uZXQ7CivkjI0gPCBmaW5lXC13b3ZlblwtcGF0dGVybjsKK+SMiSA8IHRoZVwtbGFyZ2VcLW9mXC1hXC1uZXQ7Civms4TpnLIgPCBsZWFrXC1cKGluZm9ybWF0aW9uXCk7Civki4ggPCB0b1wtYmluZFwtbG9vc2VcLWhlbXA7CivkiawgPCBjb2Fyc2VcLWJhbWJvb1wtbWF0czsKK+SIriA8IGFcLXdvdmVuXC1pbnN0cnVtZW50Owor5IezIDwgYVwtbWVtb3JhZHVtXC10YWJsZXQ7CivkhqogPCBjb2xvclwtb2ZcLXRoZVwtbGlnaHQ7CivkhqUgPCB0b1wtcGllcmNlXC10aHJvdWdoajsKK+SGkSA8IGFcLWxpdHRsZVwtcHJvdHJ1ZGVkOwor5oqV5YWlIDwgcHV0XC1pbnRvXC1vcGVyYXRpb247Civkhb0gPCBmcmFncmFuY2VcLW9yXC1hcm9tYTsKK+SFpyA8IGZpbmVcLXJpY2VcLXNlZWRsaW5nOwor5IWcIDwgdG9cLXN0b3JlXC11cFwtZ3JhaW5zOwor5ISaIDwgdG9cLXdvcnNoaXBcLXRoZVwtZ29kOwor5IOcIDwgYVwtZmluZVwtYmxhY2tcLXN0b25lOwor5IGKIDwgZGFya1wtYW5kXC1kZWVwXC1leWVkOwor5ICeIDwgd2l0aFwtaGVhdnlcLWV5ZWxpZHM7CivkgJcgPCB0b1wtbG9va1wtYXNrYW5jZVwtYXQ7CivmnpDnlpEgPCB0b1wtcmVzb2x2ZVwtYVwtZG91YnQ7Civjv4wgPCBsdW1wXC1pblwtdGhlXC10aHJvYXQ7Civnq63nm6HlhajlipsgPCB0b1wtc3BhcmVcLW5vXC1lZmZvcnQ7CivnkZ7lhbjoqp4gPCBzd2VkaXNoXC1cKGxhbmd1YWdlXCk7CivjvKMgPCBicmlja3NcLW9mXC10aGVcLXdlbGw7CivjvIcgPCBmaW5lXC1qYWRlXC1vclwtYWdhdGU7Civmtonlq4zkurogPCBcKGNyaW1pbmFsXClcLXN1c3BlY3Q7Civju5cgPCBhXC1zdHJpbmdcLW9mXC1wZWFybHM7Civju4ogPCBhXC1yZWRcLWNvbG9yZWRcLWphZGU7Civju4UgPCBqYWRlXC1kZWNvcmF0ZWRcLWNhcDsKK+iXj+iqniA8IHRpYmV0YW5cLVwobGFuZ3VhZ2VcKTsKK+S4jeaKmOS4jeaJoyA8IGFcLWh1bmRyZWRcLXBlclwtY2VudDsKK+O6pyA8IGFcLXdoaXRlXC15ZWxsb3dcLWRvZzsKK+O4vSA8IGFcLXR3b1wteWVhcnNcLW9sZFwtb3g7CivmnKjogLMgPCBlZGlibGVcLXRyZWVcLWZ1bmd1czsKK+O4iCA8IHNjb3JjaGVkXC1vclwtYnVybmVkOwor47ezIDwgY29sb3JcLW9mXC10aGVcLWZsYW1lOwor5ZaY5oGvIDwgdG9cLWdhc3BcLWZvclwtYnJlYXRoOwor5qOE5LiWIDwgdG9cLWxlYXZlXC10aGlzXC13b3JkOwor47eiIDwgYnVuZGxlXC1vZlwtY2hhcmNvYWw7Civjt6AgPCBhXC13aWxsXC1vJydcLXRoZVwtd2lzcDsKK+O1kyA8IHRoZVwtd2F0ZXJcLWlzXC1jbGVhcjsKK+O0viA8IHN3ZWxsaW5nXC1vclwtcmlzaW5nOwor5L215o2y5qmfIDwgcmliYm9uXC1sYXBcLW1hY2hpbmU7CivliKXli5XpmoogPCBzcGVjaWFsXC1kZXRhY2htZW50Owor47OCIDwgdG9cLWZvbGxvd1wtYVwtY291cnNlOwor47KhIDwgdGhpY2tcLWNvYXRcLW9mXC1oYWlyOwor47KXIDwgdG9cLXNtb290aFwtdGhlXC1oYWlyOwor5oSb56ixIDwgdGVybVwtb2ZcLWVuZGVhcm1lbnQ7Civnp5HnoJTmqKPmqZ8gPCByZXNlYXJjaFwtcHJvdG90eXBlOwor46+2IDwgdGhlXC1jb2lyXC1wYWxtXC10cmVlOwor46+yIDwgYVwtd29vZGVuXC1mcmFtZXdvcms7Civjr5sgPCBnb3VyZFwtc2hhcGVkXC1kYXRlczsKK+OuuyA8IHRvXC1zY3JhdGNoXC1saWdodGx5Owor5Y2A5Z+f57ay6LevIDwgbG9jYWxcLWFyZWFcLW5ldHdvcms7Civjro0gPCBhbWVtb3JhbmR1bVwtdGFibGV0Owor462oIDwgdGhlXC1jb2NvYVwtbnV0XC1wYWxtOwor462dIDwgbmFtZVwtb2ZcLWFcLXBhdmlsaW9uOwor55m86YCB5Yqf546HIDwgdHJhbnNtaXNzaW9uXC1wb3dlcjsKK+OstCA8IHRoZVwtbW9vblwtaXNcLWRpbW1lZDsKK+OskiA8IHRoZVwtc3VuXC1hcmVcLWRpbW1lZDsKK+OsjiA8IG1vdGVzXC1pblwtYVwtc3VuYmVhbTsKK+aUv+W6nOitpuWRiiA8IGdvdmVybm1lbnRcLXdhcm5pbmc7Civjq6YgPCBvZlwtbG9va1wtb2ZcLXRoZVwtc3VuOwor46q4IDwgdG9cLWZpbGxcLWFcLWN1cFwtd2l0aDsKK+OpgyA8IHRvXC10YWtlXC1vclwtY2FwdHVyZTsKK+OovSA8IHRvXC1jdXRcLW9yXC1yaXBcLW9wZW47CivjqKEgPCB0b1wtcHVzaFwtd2l0aFwtaGFuZHM7CivjqJwgPCB0b1wtaGVscFwtZWFjaFwtb3RoZXI7CivmoLjog73mioDooZMgPCBudWNsZWFyXC10ZWNobm9sb2d5Owor5bm06LyV5YyWIDwgbWFrZVwtbW9yZVwteW91dGhmdWw7CivlsIjlk6EgPCBhc3Npc3RhbnRcLWRpcmVjdG9yOwor46W4IDwgdG9cLXN5bXBhdGhpemVcLXdpdGg7CivjpaggPCB1bmhhcHB5XC1kaXNwbGVhc2VkOwor46SqIDwgdG9cLWZpbmRcLWZhdWx0XC13aXRoOwor46OMIDwgdG9cLWpvaW5cLXR3b1wtdGhpbmdzOwor46GvIDwgd2FsbFwtb2ZcLWFcLWJ1aWxkaW5nOwor6aCT6LazIDwgc3RhbXBcLVwob25lJydzXC1mZWV0XCk7CivliqDpgJ/lmaggPCBhY2NlbGVyYXRvclwtXChjb21wXCk7CivjmLMgPCBhXC1oaWxsb2NrXC1vclwtbW91bmQ7CivjmLEgPCB0b1wtZmFsbFwtaW50b1wtcnVpbnM7CivmhI/lpKfliKnoqp4gPCBpdGFsaWFuXC1cKGxhbmd1YWdlXCk7CivjmJwgPCBhXC1raW5kXC1vZlwtc2lsa3dvcm07CivjloUgPCBzb3VuZFwtb2ZcLWFcLXdoaXN0bGU7CivjloMgPCB0b1wtcm9hclwtb2ZcLWFuaW1hbHM7CivjlKIgPCB0b1wtYnJlYWtcLXNvbWV0aGluZzsKK+S4jeetieiZnyA8IHNpZ25cLW9mXC1pbmVxdWFsaXR5Owor54++5pyJIDwgY3VycmVudGx5XC1leGlzdGluZzsKK+ilv+WNiueQgyA8IHdlc3Rlcm5cLWhlbWlzcGhlcmU7CivpvLvmqJEgPCBicmlkZ2VcLW9mXC10aGVcLW5vc2U7Civlj4PotIogPCBkaXBsb21hdGljXC1vZmZpY2VyOwor5Lim56uLIDwgZXhpc3RcLXNpZGVcLWJ5XC1zaWRlOwor6LK/5piTIDwgXChjb21tZXJjaWFsXClcLXRyYWRlOwor5aSa56uv5Lit57m85ZmoIDwgbXVsdGlwb3J0XC1yZXBlYXRlcjsKK+WMl+S6rOWkp+WtuCA8IGJlaWppbmdcLXVuaXZlcnNpdHk7CivloLHli5nlk6EgPCB0ZWxlZ3JhcGhcLW9wZXJhdG9yOwor6YWs6YWiIDwgdG9cLWV4Y2hhbmdlXC10b2FzdHM7CivmtarmtowgPCBcKGVsZWN0cmljYWxcKVwtc3VyZ2U7CivkvZTlhYggPCB0b1wtdGFrZVwtcHJlY2VkZW5jZTsKK+iDjOWFiSA8IGJlXC1pblwtYVwtcG9vclwtbGlnaHQ7CivlhYnms6LplbcgPCBvcHRpY2FsXC13YXZlbGVuZ3RoOwor5rex5aScIDwgdmVyeVwtbGF0ZVwtYXRcLW5pZ2h0Owor5ZaJ5pOm6Z+zIDwgZ3V0dHVyYWxcLWZyaWNhdGl2ZTsKK+WFq+e0muW3pSA8IGVpZ2h0XC1ncmFkZVwtd29ya2VyOwor5L2b6JKZ54m5IDwgdmVybW9udFwtXFt1c1wtc3RhdGVcXTsKK+mcsumdoiA8IGFwcGVhclwtXChpblwtcHVibGljXCk7CivllYbli5kgPCBjb21tZXJjaWFsXC1hZmZhaXJzOwor6IGv6YKm5pS/5bqcIDwgZmVkZXJhbFwtZ292ZXJubWVudDsKK+eMnOeWkSA8IGhhcmJvdXJcLXN1c3BpY2lvbnM7CivnlJ/mtLvlv4XpnIDlk4EgPCBsaWZlJydzXC1uZWNlc3NpdGllczsKK+iytOWnkyA8IHdoYXRcLWlzXC15b3VyXC1uYW1lXD87CivnjJnnjbAgPCBtZWFuXC1hbmRcLWZlcm9jaW91czsKK+mAsuihjOe3qOeoiyA8IGV4ZWN1dGFibGVcLXByb2dyYW07CivmtrLlo5MgPCBoeWRyYXVsaWNcLXByZXNzdXJlOwor566h55CG56uZIDwgbWFuYWdlbWVudFwtc3RhdGlvbjsKK+m8u+WhniA8IGhhdmVcLWFcLXN0dWZmeVwtbm9zZTsKK+iZm+aTrOmAo+aOpSA8IHZpcnR1YWxcLWNvbm5lY3Rpb247Civpu57lv4MgPCBsaWdodFwtcmVmcmVzaG1lbnRzOwor5a6i5oi25oeJ55SoIDwgY2xpZW50XC1hcHBsaWNhdGlvbjsKK+S4jemaqOaEj+iCjCA8IGludm9sdW50YXJ5XC1tdXNjbGU7CivoqqrkuI3lrpogPCBjYW4nJ3RcLXNheVwtZm9yXC1zdXJlOwor5rOi5pav6KqeIDwgYm9zbmlhblwtXChsYW5ndWFnZVwpOwor5rW35Z+fIDwgdGVycml0b3JpYWxcLXdhdGVyczsKK+avlOippiA8IGhhdmVcLWFcLWNvbXBldGl0aW9uOwor5o6h5Y+W5o6q5pa9IDwgdG9cLWFkb3B0XC1hXC1tZWFzdXJlOwor5YSY5Y+v6IO9IDwgYXNcLWZhclwtYXNcLXBvc3NpYmxlOwor5ZOI5L2b5aSn5a24IDwgaGFydmFyZFwtdW5pdmVyc2l0eTsKK+mbu+i3ryA8IFwoZWxlY3RyaWNcKVwtY2lyY3VpdDsKK+S4reWwhyA8IGxpZXV0ZW5hbnRcLWdlbmVyYWw7CivljIXmib/ntYQgPCBcKHJlc3BvbnNpYmxlXClcLWNyZXc7Civnmb7okYnnrrEgPCB0aGVybW9tZXRlclwtc2NyZWVuOwor5pqX57ea5YWJ6K2cIDwgZGFya1wtbGluZVwtc3BlY3RydW07Civmlofol50gPCBsaXRlcmF0dXJlXC1hbmRcLWFydDsKK+eJiOeohSA8IHJveWFsdHlcLVwob25cLWJvb2tzXCk7Civpm7voppbnr4Dnm64gPCB0ZWxldmlzaW9uXC1wcm9ncmFtOwor5oOF5aCxIDwgXChzcHlcKVwtaW50ZWxsaWdlbmNlOwor57eo6YGjIDwgcmVvcmdhbml6ZVwtXCh0cm9vcHM7Civpgb/pm7flmaggPCBsaWdodG5pbmdcLWFycmVzdGVyOwor5b+F5LiN5Y+v5bCR57WE5oiQIDwgYWJzb2x1dGVcLW5lY2Vzc2l0eTsKK+azsOWxsSA8IHRhaXNoYW5cLVwobW91bnRhaW5cKTsKK+aCieWwvCA8IHN5ZG5leVwtXChhdXN0cmFsaWFcKTsKK+aIsOmspeapnyA8IGZpZ2h0ZXJcLVwoYWlyY3JhZnRcKTsKK+iWhOaDhSA8IGluY29uc3RhbnRcLWluXC1sb3ZlOwor5rCR55SoIDwgXChmb3JcKVwtY2l2aWxpYW5cLXVzZTsKK+e3qOitryA8IHRyYW5zbGF0ZVwtYW5kXC1lZGl0Owor56aP5YipIDwgXChtYXRlcmlhbFwpXC13ZWxmYXJlOwor57Ch55+t5LuL57S5IDwgYnJpZWZcLWludHJvZHVjdGlvbjsKK+a1t+eBo+aIsOeIrSA8IFwocGVyc2lhblwpXC1ndWxmXC13YXI7CivlnLDnkIPlpKfmsKMgPCBlYXJ0aCcnc1wtYXRtb3NwaGVyZTsKK+WQjOWtuCA8IFwoZmVsbG93XClcLWNsYXNzbWF0ZTsKK+S4jeWSjCA8IG5vdFwtZ2V0XC1hbG9uZ1wtd2VsbDsKK+S4jeWOrSA8IG5vdFwtbWluZFwtZG9pbmdcLXN0aDsKK+WPjeaEnyA8IFwoc3Ryb25nbHlcKVwtZGlzbGlrZTsKK+mHneWwjSA8IGluXC1jb25uZWN0aW9uXC13aXRoOwor5pyN5YuZ6LOq6YePIDwgcXVhbGl0eVwtb2ZcLXNlcnZpY2U7Civlj6blr4QgPCB0b1wtbWFpbFwtc2VwYXJhdGVseTsKK+iuiuW5uyA8IGNoYW5nZVwtaXJyZWd1bGFybHk7CivloLHpl5wgPCBkZWNsYXJlXC1hdFwtY3VzdG9tczsKK+e9suWQjSA8IHNpZ25cLVwoYVwtc2lnbmF0dXJlXCk7CivpgYropr0gPCB0b1wtZ29cLXNpZ2h0XC1zZWVpbmc7CivkuI3mlLvoh6rnoLQgPCBjb2xsYXBzZVwtb2ZcLWl0c2VsZjsKK+aWh+WMluWCs+e1sSA8IGN1bHR1cmFsXC10cmFkaXRpb247Civpoa/npLrlmaggPCBtb25pdG9yXC1cKGNvbXB1dGVyXCk7Civnmr8gPCBzaGFsbG93XC1jb250YWluZXI7CivlsZMgPCBnaWdhbnRpY1wtc3RyZW5ndGg7CivmtL4gPCBzY2hvb2xcLW9mXC10aG91Z2h0Owor5aeTIDwgb25lJydzXC1mYW1pbHlcLW5hbWU7CivnhY4gPCBmcnlcLWluXC1mYXRcLW9yXC1vaWw7CivopYEgPCBzd2FkZGxpbmdcLWNsb3RoZXM7Civlk4ggPCBzb3VuZFwtb2ZcLWxhdWdodGVyOwor6biaIDwgc3BlY2llc1wtb2ZcLXBhcnJvdDsKK+aspyA8IHRyYW5zbGl0XC5cOlwtZXVyb3BlOwor6K6iIDwgZHJhd1wtdXBcLWFncmVlbWVudDsKK+WBjyA8IGluY2xpbmVkXC1vbmVcLXNpZGU7CivmrZQgPCBibG93XC10aHJvdWdoXC1ub3NlOwor5Z+5IDwgYmFua1wtdXBcLXdpdGhcLWRpcnQ7CivmvKsgPCBvdmVyZmxvd1wtb2ZcLXdhdGVyOwor5L6gIDwgY2hpdmFscm91c1wtcGVyc29uOwor5aeGIDwgY2hpbGQnJ3NcLWdvdmVybmVzczsKK+ebkiA8IHNtYWxsXC1ib3hcLW9yXC1jYXNlOwor5YSSIDwgY29uZnVjaWFuXC1zY2hvbGFyOwor6ZiqIDwgaGlsbHNpZGVcLWZhcm1sYW5kOwor6L+IIDwgdGFrZVwtYVwtYmlnXC1zdHJpZGU7CivmjY8gPCBwaWNrXC13aXRoXC1maW5nZXJzOwor5rWZIDwgemhlamlhbmdcLXByb3ZpbmNlOwor562nIDwgYmFtYm9vXC13YXRlclwtcGlwZTsKK+iJmCA8IGNvdW50ZXJcLWZvclwtc2hpcHM7CivotoEgPCB0YWtlXC1hZHZhbnRhZ2VcLW9mOwor6YmiIDwgZWFydGhlbndhcmVcLWJhc2luOwor6JOsIDwgdHlwZVwtb2ZcLXJhc3BiZXJyeTsKK+i+liA8IGxpbmNocGluXC1vZlwtd2hlZWw7CivpgIUgPCBtZWV0XC11bmV4cGVjdGVkbHk7CivphaMgPCBlbmpveVwtaW50b3hpY2FudHM7CivppbogPCBzdHVmZmVkXC1kdW1wbGluZ3M7Civlko8gPCBzaW5nXC1zb25nXC1vclwtcG9lbTsKK+aQgCA8IGdpdmVcLWhlbHBpbmdcLWhhbmQ7CivmjbYgPCBzdHJpa2VcLXdpdGhcLXN0aWNrOwor5YioIDwgY2FycGVudGVyJydzXC1wbGFuZTsKK+iglSA8IGV1bWVuZXNcLXBvbGlmb21pczsKK+W0hiA8IGtvbmd0b25nXC1tb3VudGFpbjsKK+ebhSA8IHNtYWxsXC1jdXBcLW9yXC1ib3dsOwor5qKGIDwgd2F0Y2htYW4nJ3NcLXJhdHRsZTsKK+W1hyA8IG1vdW50YWluXC1pblwtaGVuYW47CivogLcgPCBlYXJzXC1oYW5naW5nXC1kb3duOwor576MIDwgcWlhbmdcLW5hdGlvbmFsaXR5Owor6IueIDwgYVwtdmFyaWV0eVwtb2ZcLXJ1c2g7Civol5wgPCBjaGVub3BvZGl1bVwtYWxidW07CivoiYQgPCBzdGVyblwtb2ZcLWFcLXZlc3NlbDsKK+WzgSA8IHllbGxvd1wtZGlydFwtbW91bnQ7CivplZQgPCBoaWdoXC1xdWFsaXR5XC1pcm9uOwor6bKrIDwgY2FyYXNzaXVzXC1hdXJhdHVzOwor6b6HIDwgdG9cLXNob3dcLXRoZVwtdGVldGg7Civmsq0gPCByaXZlclwtaW5cLXNoYW50dW5nOwor5qarIDwgbW9ydGlzZVwtYW5kXC10ZW5vbjsKK+iQiyA8IGx1eHVyaWFudFwtZm9saWFnZTsKK+mGriA8IHJlbGlnaW91c1wtc2VydmljZTsKK+eJnSA8IGZlbWFsZVwtb2ZcLXNwZWNpZXM7Civmm7cgPCB3aHlcP1wtd2hhdFw/XC13aGVyZVw/Owor55G3IDwgZmluZVwtcXVhbGl0eVwtamFkZTsKK+iApiA8IHBsb3dcLXNpZGVcLWJ5XC1zaWRlOwor6bi2IDwgdGhlXC1lYXN0ZXJuXC1lZ3JldDsKK+evpiA8IGZpbmVcLXRvb3RoZWRcLWNvbWI7CivlpoEgPCBhY3RcLWFzXC1nb1wtYmV0d2VlbjsKK+iNpSA8IGFcLWNvdW50eVwtaW5cLWhlbmFuOwor5oi9IDwgdG9cLWJhbGVcLW91dFwtd2F0ZXI7CivmnrMgPCB0cmlmb2xpYXRlXC1vcmFuZ2U7CivmpJAgPCB6ZWxrb3dhXC1hY3VtaW5hdGE7CivprYkgPCBhXC1raW5kXC1vZlwtbW9uc3RlcjsKK+miniA8IHRoZVwtdGVtcG9yYWxcLWJvbmU7CivogKkgPCB0b1wtcGxvdWdoXC5cLXRvXC1zb3c7Civlu6ggPCBnb3Zlcm5tZW50XC1vZmZpY2U7Civon64gPCB0eXBlXC1vZlwtZWFydGh3b3JtOwor6JuxIDwga2luZFwtb2ZcLWJ1dHRlcmZseTsKK+emsyA8IHByYXlcLW9yXC1zYWNyaWZpY2U7CivnnqIgPCBleWVzaWdodFwtb2JzY3VyZWQ7CivolLggPCBjb3VudGVyXC1mb3JcLXBsYW50Owor6J6FIDwgXChpbnRlc3RpbmFsXC13b3JtXCk7CivnpacgPCBhblwtYW5jZXN0cmFsXC1oYWxsOwor6KCDIDwgdGhlXC1zb2xpdGFyeVwtd2FzcDsKK+iBgyA8IGVhcnNcLXdpdGhvdXRcLXJpbXM7CivogJwgPCBzcGFkZVwtc2hhcGVkXC10b29sOwor5oWdIDwgZG9cLWV2aWxcLWluXC1zZWNyZXQ7CivlurMgPCBhXC1sb3dcLWJ1aWx0XC1ob3VzZTsKK+m8oiA8IGFcLXZhcmlldHlcLW9mXC1tb2xlOwor6Jq6IDwgYVwtYm9hXC1jb25zdHJpY3RvcjsKK+ehhyA8IGFcLWtpbmRcLW9mXC1taW5lcmFsOwor56GtIDwgYVwtY3J1ZGVcLXNhbHRwZXRyZTsKK+iDqCA8IGFcLWtpbmRcLW9mXC1wcm90ZWluOwor5aSW55WMIDwgdGhlXC1vdXRzaWRlXC13b3JsZDsKK+iuiuWkqSA8IGNoYW5nZVwtb2ZcLXdlYXRoZXI7Civmr5Tmv5UgPCBzcGVjaWZpY1wtaHVtaWRpdHk7Civlj6/ooYzmgKfnoJTnqbYgPCBmZWFzaWJpbGl0eVwtc3R1ZHk7CivntrLntaHpgbfnp7sgPCBuZXR3b3JrXC1taWdyYXRpb247Civpm7vohabou5/ku7YgPCBjb21wdXRlclwtc29mdHdhcmU7Civlv4Xkv67oqrIgPCBhXC1yZXF1aXJlZFwtY291cnNlOwor5b635paHIDwgZ2VybWFuXC1cKGxhbmd1YWdlXCk7Civlg4XmrKHkuo4gPCBzZWNvbmRcLW9ubHlcLXRvXC5cLlwuOwor5pyd6a6u6KqeIDwga29yZWFuXC1cKGxhbmd1YWdlXCk7Civos4fmlpnlgrPovLggPCBkYXRhXC10cmFuc21pc3Npb247CivljZHmgK8gPCBtZWFuXC1hbmRcLWNvd2FyZGx5Owor5YW16aasIDwgdHJvb3BzXC1hbmRcLWhvcnNlczsKK+aVuOaTmuW6q+i7n+S7tiA8IGRhdGFiYXNlXC1zb2Z0d2FyZTsKK+eiqeWjqyA8IG1hc3Rlcicnc1wtXChkZWdyZWVcKTsKK+ilv+ijoeeIvuWtl+avjSA8IGN5cmlsbGljXC1hbHBoYWJldDsKK+Wci+mYsumDqOmVtyA8IGRlZmVuY2VcLXNlY3JldGFyeTsKK+eZvemqqCA8IGJvbmVzXC1vZlwtdGhlXC1kZWFkOwor5beo5aSn5aOT5YqbIDwgZW5vcm1vdXNcLXByZXNzdXJlOwor54Wn55u4IDwgdGFrZVwtYVwtcGhvdG9ncmFwaDsKK+eZvemjryA8IHBsYWluXC1jb29rZWRcLXJpY2U7Civml6XlrZAgPCBhXC1cKGNhbGVuZGFyXClcLWRhdGU7Civlu7rnr4nmpa0gPCBidWlsZGluZ1wtaW5kdXN0cnk7CivmlL/msrvmsKPlgJkgPCBwb2xpdGljYWxcLWNsaW1hdGU7Civlu6Pln5/ntrLot68gPCB3aWRlXC1hcmVhXC1uZXR3b3JrOwor5pWZ5Y+L5aSn5pyDIDwgY2h1cmNoXC1jb25mZXJlbmNlOwor576O5ZyL6Iiq56m65YWs5Y+4IDwgYW1lcmljYW5cLWFpcmxpbmVzOwor5pWZ5p2QIDwgdGVhY2hpbmdcLW1hdGVyaWFsOwor6YSw5ZyLIDwgYm9yZGVyaW5nXC1jb3VudHJ5Owor5qmf6KO9IDwgbWFjaGluZVwtcHJvY2Vzc2VkOwor6ZW36YGUIDwgZXh0ZW5kXC1hc1wtbG9uZ1wtYXM7CivljJblpp0gPCB0b1wtcHV0XC1vblwtbWFrZVwtdXA7Civpm6PmjbEgPCB0cnlpbmdcLFwtZGlmZmljdWx0Owor5aSn5bGAIDwgZ2VuZXJhbFwtc2l0dWF0aW9uOwor5pKS6L+m5Yip5Lqe5pu4IDwgYm9va1wtb2ZcLXplY2hhcmlhaDsKK+aVj+aEnyA8IHNlbnNpdGl2ZVwtXChpc3N1ZVwpOwor57Sh57mUIDwgc3Bpbm5pbmdcLVwodGhyZWFkXCk7CivlpKflpJogPCBmb3JcLXRoZVwtbW9zdFwtcGFydDsKK+W+kuWIkSA8IFwocHJpc29uXClcLXNlbnRlbmNlOwor6LuN5LqL5Yqb6YePIDwgbWlsaXRhcnlcLXN0cmVuZ3RoOwor5rOi5aOr6aCT5aSn5a24IDwgYm9zdG9uXC11bml2ZXJzaXR5Owor5pSv5oyBIDwgdG9cLWJlXC1pblwtZmF2b3JcLW9mOwor57Sb57SbIDwgb25lXC1hZnRlclwtYW5vdGhlcjsKK+m6peWFi+e2rSA8IFwodGltb3RoeVwpXC1tY3ZlaWdoOwor5oeJ55So5bGkIDwgYXBwbGljYXRpb25cLWxheWVyOwor5qGM5Yil5p6XIDwgXChjaGFybGllXClcLWNoYXBsaW47Civpm7voqbHmnI3li5kgPCB0ZWxlcGhvbmVcLXNlcnZpY2U7Civok4vniL7oqp4gPCBnYWVsaWNcLVwobGFuZ3VhZ2VcKTsKK+S6pOaPm+S7peWkque2sue1oSA8IHN3aXRjaGVkXC1ldGhlcm5ldDsKK+WkluWciyA8IGZvcmVpZ25cLVwoY291bnRyeVwpOwor6Zi/5ouJ5Lyv6KqeIDwgYXJhYmljXC1cKGxhbmd1YWdlXCk7CivmjZXpo58gPCBjYXRjaFwtYW5kXC1mZWVkXC1vbjsKK+aUr+afseeUoualrSA8IG1haW5zdGF5XC1pbmR1c3RyeTsKK+eEoeaJgOisgiA8IHRvXC1iZVwtaW5kaWZmZXJlbnQ7CivlpJrnq5nlnLDlnYAgPCBtdWx0aWNhc3RcLWFkZHJlc3M7CivpvYQgPCByZWRcLXNvcmVzXC1vblwtbm9zZTsKK+e2k+a/n+WuieWFqCA8IGVjb25vbWljXC1zZWN1cml0eTsKK+m7nyA8IGJsYWNrXC1hbmRcLXNoaW5pbmc7CivpuYEgPCBzcGVjaWVzXC1vZlwtcGlnZW9uOwor6LyU6KqyIDwgc3Vic2lkaWFyeVwtY291cnNlOwor5aSW5Lqk6aKo5rOiIDwgZGlwbG9tYXRpY1wtY3Jpc2lzOwor6bW1IDwgc2NvcHNcLXNlbWl0b3JxdWVzOwor5YWr6IKhIDwgZWlnaHRcLVwtcGFydFwtZXNzYXk7CivlubPmsJEgPCBcKG9yZGluYXJ5XClcLXBlb3BsZTsKK+mDiuWNgCA8IHN1YnVyYmFuXC1kaXN0cmljdDsKK+WFqeiAhSA8IGJvdGhcLXNpZGVzXHx0aGluZ3M7CivprrggPCBzY2lhZW5hXC1hbGJpZmxvcmE7CivprasgPCB0aGVcLXlvdW5nXC1vZlwtZmlzaDsKK+mDqOS7vSA8IHBhcnRcLVwob2ZcLWFcLXdob2xlXCk7Civpq70gPCB0b1wtZHJlc3NcLXRoZVwtaGFpcjsKK+mbu+ipsee2sui3ryA8IHRlbGVwaG9uZVwtbmV0d29yazsKK+eZveiCiSA8IHBsYWluXC1ib2lsZWRcLXBvcms7CivppakgPCBzYWNyZmljaWFsXC12aWN0aW07CivpgorloZ4gPCBmcm9udGllclwtZm9ydHJlc3M7CivppIIgPCB0b1wtb2J0YWluXC1ieVwtaG9vazsKK+efs+WIuyA8IHN0b25lXC1pbnNjcmlwdGlvbjsKK+meuCA8IGxlYXRoZXJcLWFybVwtZ3VhcmQ7Civpnb8gPCB0aGVcLWxlZ1wtb2ZcLWFcLWJvb3Q7Civnt4rlr4YgPCBpbnNlcGFyYWJseVwtY2xvc2U7CivpmrggPCBiZVwtc3Vic2VydmllbnRcLXRvOwor5qmf5Zmo5Lq6IDwgbWVjaGFuaWNhbFwtcGVyc29uOwor6ZaqIDwgdG9cLWxvc2VcLWxvc3RcLWl0ZW07CivpgorljaEgPCBib3JkZXJcLWNoZWNrcG9pbnQ7Civnt6nlkowgPCB0b1wtZWFzZVwtXCh0ZW5zaW9uXCk7Civlj43pgY7kvoboqqogPCBvblwtdGhlXC1vdGhlclwtaGFuZDsKK+e2reaMgeiyuyA8IG1haW50ZW5hbmNlXC1jb3N0czsKK+mKoCA8IHJob2RpdW1cLXJ1dGhlbml1bTsKK+e3qOWNsCA8IGNvbXBpbGVcLWFuZFwtcHJpbnQ7CivpiZUgPCBwcm9tZXRoaXVtXC1icm9uemU7Civovqblhazoh6rli5XljJYgPCBvZmZpY2VcLWF1dG9tYXRpb247CivpiLMgPCBjb2x1bWJpdW1cLW5pb2JpdW07Civlh7Hml4sgPCByZXR1cm5cLXRyaXVtcGhhbnQ7CivmrZDmtLLoqp7oqIAgPCBldXJvcGVhblwtbGFuZ3VhZ2U7CivngInogpogPCB0b1wtaGF2ZVwtZGlhcnJob2VhOwor6YatIDwgbW91bGRzXC1vblwtbGlxdWlkczsKK+mGkSA8IHRvXC1zdHJhaW5cLXNwaXJpdHM7CivphbogPCBkcmlua1wtd2l0aFwtb3RoZXJzOwor57ay57Wh6Kit5YKZIDwgbmV0d29ya1wtZXF1aXBtZW50Owor55m955y8IDwgc3VwZXJjaWxpb3VzXC1sb29rOwor5p2/5pOm5YWSIDwgYmxhY2tib2FyZFwtZXJhc2VyOwor5pel55uK5aKe5YqgIDwgdG9cLWluY3JlYXNlXC1kYWlseTsKK+iyjSA8IGFcLWZveFwtbGlrZVwtYW5pbWFsOwor55y85bCWIDwgdG9cLWhhdmVcLWdvb2RcLWV5ZXM7CivosYsgPCBjZXJlbW9uaWFsXC12ZXNzZWw7CivloLHluLMgPCByZW5kZXJcLWFuXC1hY2NvdW50Owor57aT5r+f5Yqb6YePIDwgZWNvbm9taWNcLXN0cmVuZ3RoOwor6Ka8IDwgZXhwbGFpblwtaW5cLWRldGFpbDsKK+WQjOaAp+aIgCA8IGhvbW9zZXh1YWxcLVwobG92ZVwpOwor6KOc55m8IDwgc3VwcGx5XC1hZ2FpblwtXChzdGg7CivorormnKzliqDljrIgPCBiZWNvbWVcLWFnZ3JhdmF0ZWQ7CivkuI3lj4rnianli5XoqZ4gPCBpbnRyYW5zaXRpdmVcLXZlcmI7CivlhYnnupbmjqXlj6MgPCBvcHRpY2FsXC1pbnRlcmZhY2U7Civoq77osp3niL7lkozlubPnjY4gPCBub2JlbFwtcGVhY2VcLXByaXplOwor6JyUIDwgaW5sYWlkXC1zaGVsbFwtd29yazsKK+aKiumgrSA8IGxhYm91clwtY29udHJhY3RvcjsKK+WVhualreihjOeCuiA8IGJ1c2luZXNzXC1hY3Rpdml0eTsKK+i7jeiyu+mWi+aUryA8IG1pbGl0YXJ5XC1zcGVuZGluZzsKK+iYtSA8IHBoeXNhbGlzXC1hbmd1bGF0YTsKK+aAp+mot+aTviA8IHNleHVhbFwtaGFyYXNzbWVudDsKK+iXqCA8IGtpbmRcLW9mXC1yYXNwYmVycnk7CivolbggPCB3YXRlclwtbGlseScnc1wtbGVhZjsKK+iVkSA8IHZhbGVyaWFuYVwtdmlsbG9zYTsKK+i7n+S7tuW5s+iHuiA8IHNvZnR3YXJlXC1wbGF0Zm9ybTsKK+iRjiA8IGh1bXVsdXNcLWphcG9uaWN1czsKK+Wxj+manCA8IHByb3RlY3RpdmVcLXNjcmVlbjsKK+iPoyA8IGFydGVtaXNpYVwtYXBpYWNlYTsKK+iOmyA8IHN0YWxrc1wtb2ZcLWdyYXNzZXM7CivngavmmJ8gPCBtYXJzXC1cKHRoZVwtcGxhbmV0XCk7CivojI0gPCB0b1wtYmVcLWNpcmN1bXNwZWN0Owor6aiO6aasIDwgcmlkZVwtb25cLWhvcnNlYmFjazsKK+apq+aWt+eJqSA8IHRyYW5zdmVyc2VcLW9iamVjdDsKK+aKhOmMhCA8IHRvXC1tYWtlXC1hXC1jb3B5XC1vZjsKK+aPreabiSA8IGFubm91bmNlXC1wdWJsaWNseTsKK+e9myA8IGxhcmdlXC1maXNoaW5nXC1uZXQ7Civnmb3lsYjoj5wgPCBncmVhdGVyXC1jZWxhbmRpbmU7CivnuLAgPCBiYW5kXC1mb3JcLXRoZVwtaGFpcjsKK+e2jiA8IHNpbGtcLWJyYWlkZWRcLWNvcmQ7CivmjInlnJbntKLpqaUgPCB0cnlcLXRvXC1sb2NhdGVcLXN0aDsKK+e0rCA8IGtpbmRcLW9mXC10aGluXC1zaWxrOwor55eF56iLIDwgY291cnNlXC1vZlwtZGlzZWFzZTsKK+WCs+i8uOeOhyA8IHRyYW5zbWlzc2lvblwtcmF0ZTsKK+exuCA8IHBvd2RlcnlcLXN1YnN0YW5jZTsKK+W4jOS8r+S+huiqniA8IGhlYnJld1wtXChsYW5ndWFnZVwpOwor57GTIDwgYmlnXC13aW5ub3dcLWJhc2tldDsKK+mWi+eZvOmAseacnyA8IGRldmVsb3BtZW50XC1jeWNsZTsKK+evqCA8IGNvYXJzZVwtYmFtYm9vXC1tYXQ7CivnlLPoqLQgPCB0b1wtYXBwZWFsXC1cKHRvXC1zYlwpOwor5Ly65pyN5ZmoIDwgc2VydmVyXC1cKGNvbXB1dGVyXCk7CivkvpvpnIAgPCBzdXBwbHlcLWFuZFwtZGVtYW5kOwor5Zyw5q68IDwgdGhlXC1lYXJ0aCcnc1wtY3J1c3Q7CivplonluZUgPCB0aGVcLWN1cnRhaW5cLWZhbGxzOwor56WKIDwgcml2ZXJcLWluXC1zaGFuZG9uZzsKK+ebm+WQjSA8IGZhbW91c1wtcmVwdXRhdGlvbjsKK+W3peWnlCA8IHdvcmtpbmdcLWNvbW1pdHRlZTsKK+aIsOeVpeWkpeS8tCA8IHN0cmF0ZWdpY1wtcGFydG5lcjsKK+ethuiqvyA8IFwob2ZcLXdyaXRpbmdcKVwtdG9uZTsKK+WxleimvSA8IHRvXC1wdXRcLW9uXC1kaXNwbGF5Owor55m95biDIDwgcGxhaW5cLXdoaXRlXC1jbG90aDsKK+mdnOiEiOWQuOavkiA8IGludHJhdmVuZW91c1wtZHJ1ZzsKK+eYtSA8IGFcLXdhc3RpbmdcLWRpc2Vhc2U7CivnhKHmnJ/lvpLliJEgPCBsaWZlXC1pbXByaXNvbm1lbnQ7Civlt6XlnLAgPCBjb25zdHJ1Y3Rpb25cLXNpdGU7CivnkqsgPCBwZW5kYW50XC1vcm5hbWVudHM7Civnmb7liIbkuYvnmb4gPCBhXC1odW5kcmVkXC1wZXJjZW50Owor5qOV6ImyIDwgYnJvd25cLVwodGhlXC1jb2xvclwpOwor56+H55uuIDwgdGFibGVcLW9mXC1jb250ZW50czsKK+eOniA8IGFuXC1pbmZlcmlvclwtYWdhdGU7Civohp3kuIrlnovpm7vohaYgPCBsYXB0b3BcLVwoY29tcHV0ZXJcKTsKK+iQiua6q+aWr+WfuiA8IFwobW9uaWNhXClcLWxld2luc2t5Owor54aAIDwgdGhlXC1ibGF6ZVwtb2ZcLWZpcmU7CivkvY/pmaIgPCB0b1wtYmVcLWluXC1ob3NwaXRhbDsKK+WCs+i8uOacjeWLmSA8IHRyYW5zcG9ydFwtc2VydmljZTsKK+aQj+WLlSA8IGJlYXRcLXJoeXRobWljYWxseTsKK+aOpeW+hSA8IHJlY2VpdmVcLVwoYVwtdmlzaXRcKTsKK+eBjiA8IG1vdmVtZW50XC1vZlwtd2F0ZXI7Civlhazli5kgPCBvZmZpY2lhbFwtYnVzaW5lc3M7CivmuLAgPCBmb3JtaW5nXC1vclwtcmlzaW5nOwor5ouY55WZIDwgZGV0YWluXC1cKHByaXNvbmVyXCk7CivmtLYgPCB0aGVcLXJ1c2hcLW9mXC13YXRlcjsKK+e2nOWQiOW4g+e3miA8IGludGVncmF0ZWRcLXdpcmluZzsKK+Wci+mam+azlSA8IGludGVybmF0aW9uYWxcLWxhdzsKK+WFrOS9iCA8IHB1YmxpY2x5XC1hbm5vdW5jZTsKK+WFp+S6giA8IGludGVybmFsXC1kaXNvcmRlcjsKK+ihm+aYnyA8IFwoc3BhY2VcKVwtc2F0ZWxsaXRlOwor5ouN54WnIDwgdG9cLXRha2VcLWFcLXBpY3R1cmU7Civnl4XmlYUgPCBkaWVcLW9mXC1hblwtaWxsbmVzczsKK+ihneaTiiA8IFwoYmVcLXVuZGVyXClcLWF0dGFjazsKK+mVt+S5hSA8IFwoZm9yXC1hXClcLWxvbmdcLXRpbWU7CivmnKAgPCBjb2xvclwtb2ZcLXRoZVwtbW9vbjsKK+WCs+i8uOmAmumBkyA8IHRyYW5zcG9ydFwtY2hhbm5lbDsKK+aUv+W6nOmDqOmWgCA8IGdvdmVybm1lbnRcLWJyYW5jaDsKK+aalCA8IG5hbWVcLW9mXC1hXC1jb3VudHJ5Owor6YyE6Z+zIDwgXChzb3VuZFwpXC1yZWNvcmRpbmc7CivmlrDogZ7pgLHliIogPCBuZXdzd2Vla1wtbWFnYXppbmU7CivmlLAgPCB0b3RhbGx5XC1leGhhdXN0ZWQ7Civkv53npZAgPCBibGVzc1wtYW5kXC1wcm90ZWN0Owor5o6rIDwgYmVcLW9uXC1uaWdodFwtd2F0Y2g7CivmjbfloLEgPCByZXBvcnRcLW9mXC1zdWNjZXNzOwor5o2lIDwgdG9cLWJlbmRcLXRoZVwtd3Jpc3Q7CivlnJjlnJMgPCB0b1wtaGF2ZVwtYVwtcmV1bmlvbjsKK+ebtOaOpeertueIrSA8IGRpcmVjdFwtY29tcGV0aXRvcjsKK+S4reWkruWnlOWToeacgyA8IGNlbnRyYWxcLWNvbW1pdHRlZTsKK+mGq+eZgue2k+mplyA8IG1lZGljYWxcLWV4cGVydGlzZTsKK+W7o+aSreWcsOWdgCA8IGJyb2FkY2FzdFwtYWRkcmVzczsKK+aEsCA8IGNsZWFybmVzc1wtb2ZcLW1pbmQ7Civmjojli5sgPCB0b1wtYXdhcmRcLWFuXC1ob25vcjsKK+WTgOmztCA8IGFcLXBsYWludGl2ZVwtd2hpbmU7CivnlJ/nianmrablmaggPCBiaW9sb2dpY2FsXC13ZWFwb247CivlvJYgPCBwaG9uZXRpY1wtZm9yXC0nJ3RlJyc7Civmh4LooYwgPCB0b1wta25vd1wtdGhlXC1yb3BlczsKK+i7jeWNgCA8IGFcLW1pbGl0YXJ5XC1yZWdpb247Civkv53niL4gPCBcKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivosqHplqUgPCBmaW5hbmNpYWxcLW1hZ25hdGU7CivmmpfnhKHlpKnml6UgPCBjb21wbGV0ZVwtZGFya25lc3M7CivlsKggPCBzaGFnZ3lcLWhhaXJlZFwtZG9nOwor5ouN5pSdIDwgXChzaG9vdFwtYVwpXC1waWN0dXJlOwor5L615oiq6ICFIDwgXChjb21wdXRlclwpXC1oYWNrZXI7CivogIPpqZcgPCBcKHB1dFwtdG9cLXRoZVwpXC10ZXN0Owor5L+d5rqrIDwgaGVhdFwtcHJlc2VydmF0aW9uOwor6auY57Sa56CU56m2IDwgYWR2YW5jZWRcLXJlc2VhcmNoOwor5bGP5rCjIDwgaG9sZFwtb25lJydzXC1icmVhdGg7Civoh6rkuLvns7vntbEgPCBhdXRvbm9tb3VzXC1zeXN0ZW07Civnmb3ph5HmvKLlrq4gPCBidWNraW5naGFtXC1wYWxhY2U7CivpgYvooYzni4Dms4EgPCBvcGVyYXRpb25hbFwtc3RhdGU7CivlpIogPCBrYW5neGlcLXJhZGljYWxcLTM1Owor5Zuw6Zuj5Zyo5pa8IDwgdGhlXC1wcm9ibGVtXC1pc1wuXC5cLjsKK+aXpeiAs+abvOiqniA8IGdlcm1hbmljXC1sYW5ndWFnZTsKK+eon+izpiA8IG5hdHVyYWxcLWVuZG93bWVudDsKK+eXheWNsSA8IGJlXC1jcml0aWNhbGx5XC1pbGw7CivlgrPovLjljZTlrpogPCB0cmFuc2ZlclwtcHJvdG9jb2w7Civllr8gPCBjaGlycGluZ1wtb2ZcLWJpcmRzOwor5Za8IDwgdXNlZFwtcGhvbmV0aWNhbGx5Owor5Za5IDwgY2hlbWljYWxcLWNvbXBvdW5kOwor5L2155m8IDwgYmVcLWNvbXBsaWNhdGVkXC1ieTsKK+WTtSA8IHRoZVwtY3J5XC1vZlwtYVwtYmlyZDsKK+WTtCA8IGNyeWluZ1wtb2ZcLWluZmFudHM7CivosqHosr8gPCBmaW5hbmNlXC1hbmRcLXRyYWRlOwor5aSn5YiA6ZeK5panIDwgYm9sZFwtYW5kXC1kZWNpc2l2ZTsKK+eJueWIpeW+hemBhyA8IHNwZWNpYWxcLXRyZWF0bWVudDsKK+WQoiA8IHZvbWl0aW5nXC1vZlwtYVwtZG9nOwor5Yid5a246ICFIDwgYmVnaW5uaW5nXC1zdHVkZW50Owor5bCI55So57ay6LevIDwgZGVkaWNhdGVkXC1uZXR3b3JrOwor6KW/546L5q+NIDwgbmFtZVwtb2ZcLWFcLWdvZGRlc3M7CivkupTop5LlpKfmqJPlrpjlk6EgPCBwZW50YWdvblwtb2ZmaWNpYWw7CivmlZjliKnkup7mlocgPCBzeXJpYWNcLVwobGFuZ3VhZ2VcKTsKK+a8ouWtlyA8IGNoaW5lc2VcLWNoYXJhY3RlcjsKK+WuieepqSA8IHNtb290aFwtYW5kXC1zdGVhZHk7CivlgIggPCB0b1wtaW5kdWNlXC10b1wtY29tZTsKK+S/iCA8IHRvXC1pbmZvcm1cLXF1aWNrbHk7CivliLDpgqPlgIvmmYLlgJkgPCB1bnRpbFwtdGhpc1wtbW9tZW50Owor5LuCIDwgc3VycGx1c1wtb3JcLWV4Y2VzczsKK+WcqOmgreeJiCA8IG9uXC10aGVcLWZyb250XC1wYWdlOwor5bCI5qWtIDwgc3BlY2lhbGl6ZWRcLWZpZWxkOwor5LmqIDwgYVwtYmVuZFwtaW5cLWFcLXJpdmVyOwor6Lao5pmCIDwgdG9cLWZvbGxvd1wtZmFzaGlvbjsKK+S2sCA8IGZlYXRoZXJcLW9ybmFtZW50czsKK+S2liA8IGRpc2Vhc2VcLW9mXC10b25ndWU7CivktZwgPCB0b1wtcGxvdWdoXC1hbmRcLXNvdzsKK+S0iiA8IHRoZVwtY3Jvd1wtcGhlYXNhbnQ7Civku43oiIogPCBzdGlsbFwtXChyZW1haW5pbmdcKTsKK+SzpCA8IGFcLWtpbmRcLW9mXC1zdHJhbmdlOwor5LOZIDwgYVwtZWdyZXRcLWxpa2VcLWJpcmQ7Civmi5flj6MgPCBoYXJkXC10b1wtcHJvbm91bmNlOwor5K+lIDwgd2l0aFwtYVwtaGlnaFwtc2t1bGw7Civkr6IgPCBwYXJ0aWFsXC1wYXJhbHlzaXM7CivkrqsgPCBhXC1iaWdcLW11bGVcLWFuXC1hc3M7CivkrpogPCBkaXNlYXNlc1wtb2ZcLWhvcnNlOwor5K6QIDwgaW5cLWdvb2RcLWNvbmRpdGlvbjsKK+StlCA8IHN0ZWFtZWRcLWR1bXBsaW5nczsKK+SssCA8IGxpZ2h0XC1yZWZyZXNobWVudDsKK+SslSA8IHNvdW5kXC1vZlwtdGhlXC13aW5kOwor5KyNIDwgdGhlXC1zb3VuZFwtb2ZcLXdpbmQ7CivkrIYgPCBhXC1ibHVzdGVyaW5nXC1nYWxlOwor5KumIDwgdGhlXC1sb3dlclwtamF3Ym9uZTsKK+SrnyA8IGZhY2lhbFwtY29tcGxleGlvbjsKK+SrjSA8IHRvXC1ib3dcLW9uZScnc1wtaGVhZDsKK+SriSA8IGZhY2lhbFwtYXBwZWFyYW5jZTsKK+S4jeatoeiAjOaVoyA8IHBhcnRcLW9uXC1iYWRcLXRlcm1zOwor5KiVIDwgcG91cmluZ1wtd2l0aFwtcmFpbjsKK+S4reiPr+awkeWciyA8IHJlcHVibGljXC1vZlwtY2hpbmE7Civkp7ogPCB0aGVcLW1hbGVcLW9mXC1iaXJkczsKK+SmqiA8IHNvdW5kXC1vZlwtdGhlXC1kb29yOwor5ZaY5rCjIDwgdG9cLWJyZWF0aGVcLWRlZXBseTsKK+SmgyA8IHRvXC1kaWdcLXdpdGhcLWFcLWhvZTsKK+SjuyA8IGNvbG9yXC1vZlwtdGhlXC13aW5lOwor5ouc5YCSIDwgcHJvc3RyYXRlXC1vbmVzZWxmOwor5rOi6Jit6KqeIDwgcG9saXNoXC1cKGxhbmd1YWdlXCk7Civkop0gPCB0aGVcLW5leHRcLWluXC1vcmRlcjsKK+ShtyA8IG5vaXNlXC1vZlwtdmVoaWNsZXM7CivkoaogPCBmYW5cLW9mXC1hXC1jYXJyaWFnZTsKK+ShmSA8IGFuXC1hcm1lZFwtY2FycmlhZ2U7CivknpUgPCBjb2xvclwtb2ZcLXRoZVwtZmlyZTsKK+SegiA8IGZhaXJseVwtcHJvc3Blcm91czsKK+aJjeaAnSA8IGltYWdpbmF0aXZlXC1wb3dlcjsKK+SduiA8IHRvXC1waWVyY2VcLXRocm91Z2g7CivknbMgPCB0b1wta2lsbFwtZm9yXC1tb25leTsKK+SdsiA8IGZhcmV3ZWxsXC1wcmVzZW50czsKK+S4pumnlem9iumphSA8IHJ1blwtbmVja1wtYW5kXC1uZWNrOwor5rOi6Z+zIDwgYm9laW5nXC1cKGFpcmNyYWZ0XCk7CivovZ/ngrjmqZ8gPCBib21iZXJcLVwoYWlyY3JhZnRcKTsKK+ScoiA8IGNydWVsXC1hbmRcLXZpb2xlbnQ7Civpm6Pku6Xmh4nku5ggPCBoYXJkXC10b1wtZGVhbFwtd2l0aDsKK+SaoCA8IHVuYnJva2VuXC1maXJld29vZDsKK+SanSA8IG5ld1wtZ3Jvd2luZ1wtaG9ybnM7CivkmpogPCBob3JuXC1vZlwtYW5cLWFuaW1hbDsKK+SakSA8IHRvXC1zdGVhbFwtYVwtZ2xhbmNlOwor5JqAIDwgdG9cLXNlZVwtc3RlYWx0aGlseTsKK+SZtCA8IHRvXC1zb2FyXC1hc1wtYVwtYmlyZDsKK+SZqiA8IGFcLWxvb3BcLWZvclwtYnV0dG9uOwor5rSb5p2J56Ov5pmC5aCxIDwgbG9zXC1hbmdlbGVzXC10aW1lczsKK+SYjiA8IG5hbWVcLW9mXC1hblwtaW5zZWN0Owor56Gs5Lu25bmz6Ie6IDwgaGFyZHdhcmVcLXBsYXRmb3JtOwor5Je5IDwgaGFpcnlcLWNhdGVycGlsbGFyOwor5L2c5qWtIDwgc2Nob29sXC1hc3NpZ25tZW50Owor5a6Y5pa56Kqe6KiAIDwgb2ZmaWNpYWxcLWxhbmd1YWdlOwor6byT6IieIDwgaGVhcnRlbmluZ1wtXChuZXdzXCk7CivklacgPCB6aXphbmlhXC1sYXRpZm9saWE7CivklYYgPCByb3VuZFwtc3RyYXdcLXF1aWx0Owor6Yar5a245a62IDwgbWVkaWNhbFwtc2NpZW50aXN0Owor5JObIDwgbW9sZWN1bGFyXC1mb3JtdWxhOwor5JK9IDwgaWxsaWNpdW1cLWFuaXNhdHVtOwor5JKQIDwgZGlzdHVyYmVkXC1pblwtbWluZDsKK+SRvCA8IG9jZWFuXC1nb2luZ1wtbGluZXI7CivljJfkuqzov5Hpg4ogPCBzdWJ1cmJcLW9mXC1iZWlqaW5nOwor5JCgIDwgYmV0d2VlblwtdGhlXC1mbGVzaDsKK+SQmCA8IHRvXC1sYXVnaFwtaGVhcnRpbHk7Civkj7AgPCBhXC1raW5kXC1vZlwtaW5zZWN0czsKK+iPr+ebm+mgkyA8IHdhc2hpbmd0b25cLVwoZFwuY1wuXCk7Civkja0gPCBhXC1ld2VcLW9yXC1zaGVcLWdvYXQ7CivkjYcgPCBmbGF0XC1ib3R0b21cLWNyb2NrOwor5IyoIDwgdGhpblwtc2lsa1wtZmFicmljczsKK+SLuyA8IHRvXC1zcGluXC1hbmRcLXdlYXZlOwor5Iu6IDwgYVwtc3dpbmdcLWFcLWNydXBwZXI7Civki5ggPCB0b1wtaGFuZFwtYnlcLWFcLXJvcGU7CivmlofljJbnmoTkuqTmtYEgPCBjdWx0dXJhbFwtZXhjaGFuZ2U7Civkiq8gPCBncmFpbnNcLXdpdGhcLWJlYXJkOwor5ImMIDwgY3J1ZGVcLWJhbWJvb1wtbWF0czsKK+SIoCA8IGJvb2tzXC1hbmRcLXZvbHVtZXM7Civmlq/mtJvkvJDlhYvoqp4gPCBzbG92YWtcLVwobGFuZ3VhZ2VcKTsKK+ahiOaDhSA8IGRldGFpbHNcLW9mXC1hXC1jYXNlOwor5Lif6aOv56KXIDwgdG9cLWxvc2VcLW9uZScnc1wtam9iOwor5ISJIDwgYVwtcml0ZVwtb3JcLXNlcnZpY2U7CivosqHnpZ4gPCB0aGVcLWdvZFwtb2ZcLXdlYWx0aDsKK+SBhCA8IHRvXC1jbG9zZVwtdGhlXC1leWVzOwor5IC5IDwgdG9cLXdpbmtcLWV5ZWxhc2hlczsKK+avlOi8g+aWsCA8IGNvbXBhcmF0aXZlbHlcLW5ldzsKK+O/gyA8IGFuXC1veFwtaGVhZGVkXC1ib2lsOwor476xIDwgaW5jdXJhYmxlXC1kaXNlYXNlOwor472NIDwgYW5cLWVhcnRoZW5cLXZlc3NlbDsKK+O6vyA8IGFcLWphZGVcLWxpa2VcLXN0b25lOwor5aSW5ZyL5peF6YGK6ICFIDwgZm9yZWlnblwtdHJhdmVsbGVyOwor54++54uAIDwgY3VycmVudFwtc2l0dWF0aW9uOwor5bCP5aCxIDwgdGFibG9pZFwtbmV3c3BhcGVyOwor47a/IDwgdGhlXC1zbW9rZVwtd2VudFwtdXA7CivjtrQgPCBhXC12ZXJ5XC1ncmVhdFwtZmlyZTsKK+S4gOiIrOWOn+WJhyA8IGdlbmVyYWxcLXByaW5jaXBsZTsKK+O1qyA8IHdhdGVyXC1ndXNoaW5nXC1vdXQ7CivjtY0gPCBmaWxsZWRcLXdpdGhcLXdhdGVyOwor47WEIDwgbmFtZVwtb2ZcLWFcLWR5bmFzdHk7CivmnJ3ogZYgPCBtYWtlXC1hXC1waWxncmltYWdlOwor47OcIDwgdGhlXC1mbG93aW5nXC13YXRlcjsKK+OysiA8IGZpbmVcLWNvdHRvblwtY2xvdGg7CivjspggPCBmaW5lXC13b29sZW5cLWNsb3RoOwor47KLIDwgYVwta2luZFwtb2ZcLWFuaW1hbHM7CivjsoMgPCBzbW9vdGhcLWFuZFwtY3VydmVkOwor5L+d5YGlIDwgaGVhbHRoXC1wcm90ZWN0aW9uOwor46+/IDwgaGFuZGxlXC1vZlwtYVwtbGFkbGU7Civjr6YgPCB0aGVcLWdhbWVcLW9mXC1jaGVzczsKK+a3q+awtCA8IHNleHVhbFwtc2VjcmV0aW9uczsKK+OutSA8IGNvbW1vblwtc2FuZGFsd29vZDsKK+OuqCA8IGNvZGl1bVwtbWFjcm9uYXR1bTsKK+OumiA8IHRoZVwtY2hlc3RudXRcLXRyZWU7CivjrJsgPCB0b1wtZHJ5XC1pblwtdGhlXC1zdW47CivlsITpoLvlubLmk74gPCByYWRpb1wtaW50ZXJmZXJlY2U7Civjqa4gPCB0b1wtbGlmdFwtdXBcLW9yXC1vZmY7CivjqakgPCB0b1wtY29tZVwtdG9cLWFuXC1lbmQ7CivjqZkgPCBhXC1jb3JrXC1vclwtc3RvcHBlcjsKK+OooiA8IHRvXC1yaXBcLW9wZW5cLWZsZXNoOwor6Zu75L+h6JmfIDwgZWxlY3RyaWNhbFwtc2lnbmFsOwor5bCL5ZGzIDwgdG9cLXRoaW5rXC1zdGhcLW92ZXI7Civmnb/nhZkgPCBwbHVnXC1cKG9mXC10b2JhY2NvXCk7Civms6joppYgPCB3YXRjaFwtYXR0ZW50aXZlbHk7Civjo6IgPCB0b1wtcmVzdFwtZnJvbVwtd29yazsKK+OjkyA8IGxpdGVyYXJ5XC1pblwtdGFzdGU7Civjo40gPCBhXC1yYWlzZWRcLXBsYXRmb3JtOwor46KuIDwgdG9cLXVuc3RyaW5nXC1hXC1ib3c7CivjopEgPCBhXC1jb2xsYXBzZWRcLWhvdXNlOwor46KEIDwgYVwta2luZFwtb2ZcLXV0ZW5zaWw7Civms5Xoqp4gPCBmcmVuY2hcLVwobGFuZ3VhZ2VcKTsKK+OhnyA8IGJlZFwtbWF0c1wtZm9yXC1iYWJ5Owor46C3IDwgYVwtdmVzc2VsXC1mb3JcLXJpY2U7CivjoKUgPCBydWdnZWRcLWFuZFwtdW5ldmVuOwor45+0IDwgbHVtcFwtb25cLXRoZVwtaGlsbHM7Civjn6QgPCB6aHVhbmdcLWluXC1ndWFuZ3hpOwor45+DIDwgdG9cLWhhdmVcLWNoYXJnZVwtb2Y7Civjnq0gPCBuYW1lXC1vZlwtYW5cLWlzbGFuZDsKK+Wbm+mdouWFq+aWuSA8IGluXC1hbGxcLWRpcmVjdGlvbnM7CivjnYwgPCBwcm9sb25nZWRcLWlsbG5lc3M7Civjm7QgPCB0b1wtYW5nZXJcLXRvXC1hbm5veTsKK+OahSA8IHRvXC13b3JzaGlwXC1vZlwtZ29kOwor45mpIDwgYW5cLWVuY2xvc2luZ1wtd2FsbDsKK+OYpiA8IHdhbGxcLW1hZGVcLW9mXC1zb2lsOwor45iaIDwgYW5ncnlcLWFpclwtb2ZcLWxvb2s7Civjl7wgPCBlYXRpbmdcLW9yXC10YWxraW5nOwor45elIDwgc291bmRcLW9mXC1zdHJpa2luZzsKK+OWpyA8IGNhblwtbm90XC1zZWVcLWNsZWFyOwor45SdIDwgc3Ryb25nXC1yZXNpc3RhbmNlOwor45O+IDwgdG9cLXdvdW5kXC10aGVcLXNraW47Civnjajnq4sgPCB0b1wtYmVcLWluZGVwZW5kZW50Owor45GdIDwgdG9cLW1ha2VcLWFcLWZvb2xcLW9mOwor45GPIDwgdG9cLXN0YW5kXC1hbmRcLXdhaXQ7CivjkYogPCBhXC1raW5kXC1vZlwtZGlzZWFzZTsKK+enmOabuOmVtyA8IHNlY3JldGFyeVwtZ2VuZXJhbDsKK+i1sOWHuiA8IHRvXC1tb3ZlXC1hd2F5XC1mcm9tOwor6IGy5o+0IDwgc3VwcG9ydFwtXChhXC1jYXVzZVwpOwor56Sm6JePIDwgbWluZXJhbFwtcmVzb3VyY2VzOwor5a+r5L+hIDwgdG9cLXdyaXRlXC1hXC1sZXR0ZXI7CivkuInntq0gPCB0aHJlZVwtZGltZW5zaW9uYWw7CivnqbTlsYUgPCB0b1wtbGl2ZVwtaW5cLWFcLWNhdmU7Civni4Doqp4gPCBhZHZlcmJpYWxcLWFkanVuY3Q7CivlnKjlpKflpJrmlbjmg4Xms4HkuIsgPCBpblwtbW9zdFwtaW5zdGFuY2VzOwor6YWs6YeRIDwgXChtb25ldGFyeVwpXC1yZXdhcmQ7CivlnIvlrrblronlhaggPCBuYXRpb25hbFwtc2VjdXJpdHk7CivosqHmlL8gPCBmaW5hbmNlc1wtXChwdWJsaWNcKTsKK+a1t+a0i+a6q+W6piA8IG9jZWFuXC10ZW1wZXJhdHVyZTsKK+e2sumam+WNlOWumiA8IGludGVybmV0XC1wcm90b2NvbDsKK+WkluS6pOmXnOS/giA8IGZvcmVpZ25cLXJlbGF0aW9uczsKK+WuieWNsSA8IHNhZmV0eVwtYW5kXC1kYW5nZXI7Civlt7TlhYvlpI/osawgPCBiZXJrc2hpcmVcLVwoc3dpbmVcKTsKK+WQjeeosSA8IG5hbWVcLVwob2ZcLWFcLXRoaW5nXCk7Civnianos6ogPCBcKHBoeXNpY2FsXClcLW1hdHRlcjsKK+WQg+epvyA8IGZvb2RcLWFuZFwtY2xvdGhpbmc7CivoqIrmoYblgrPpgIHoq5blo4cgPCBmcmFtZVwtcmVsYXlcLWZvcnVtOwor56m05L2NIDwgYWN1cHVuY3R1cmVcLXBvaW50Owor5a245L2NIDwgZWR1Y2F0aW9uYWxcLWxldmVsOwor5ZCE55WMIDwgYWxsXC13YWxrc1wtb2ZcLWxpZmU7CivogLPlrZAgPCBoYW5kbGVcLVwob25cLWFcLXBvdFwpOwor5q2Q5rSy5Lq6IDwgZXVyb3BlYW5cLVwocGVyc29uXCk7CivmgJ3ntq0gPCBcKGxpbmVcLW9mXClcLXRob3VnaHQ7CivooZvnlJ/pg6ggPCBoZWFsdGhcLWRlcGFydG1lbnQ7Civmpa3nlYzmqJnmupYgPCBpbmR1c3RyeVwtc3RhbmRhcmQ7Civku6XlhY0gPCBpblwtb3JkZXJcLXRvXC1hdm9pZDsKK+S4gOWNg+S4g+eZvuiQrCA8IHNldmVudGVlblwtbWlsbGlvbjsKK+S6i+WvpiA8IFwodGhlXClcLWZhY3RcLVwodGhhdFwpOwor5pys5oCnIDwgbmF0dXJhbFwtaW5zdGluY3RzOwor6Zuj6aGMIDwgZGlmZmljdWx0XC1wcm9ibGVtOwor5aeU5ZOh5pyD5pyD6K2wIDwgY29tbWl0dGVlXC1tZWV0aW5nOwor6K6K55u4IDwgaW5cLWRpc2d1aXNlZFwtZm9ybTsKK+iyoeWLmSA8IGZpbmFuY2lhbFwtYWZmYWlyczsKK+acjeW9uSA8IHNlcnZlXC1pblwtdGhlXC1hcm15Owor6Yar55mCIDwgbWVkaWNhbFwtdHJlYXRtZW50Owor6Zm45Z+65bCO5b2IIDwgbGFuZFwtYmFzZWRcLW1pc3NsZTsKK+aVrOmHjSA8IHRvXC1yZXNwZWN0XC1kZWVwbHk7CivmmpfmsrMgPCB1bmRlcmdyb3VuZFwtcml2ZXI7CivpoLjmpI4gPCBjZXJ2aWNhbFwtdmVydGlicmE7CivntrLpu54gPCBub2RlXC1pblwtYVwtbmV0d29yazsKK+m7keWuoiA8IGhhY2tlclwtXChjb21wdXRlclwpOwor57qW6IqvIDwgY29yZVwtXChvZlwtYVwtZmliZXJcKTsKK+e3qOmaiiA8IGZvcm1cLWludG9cLWNvbHVtbnM7CivmlZfpgIAgPCByZXRyZWF0XC1pblwtZGVmZWF0Owor5pys5ZyLIDwgb25lJydzXC1vd25cLWNvdW50cnk7CivlpKrlubPmtIsgPCB0aGVcLXBhY2lmaWNcLW9jZWFuOwor5Y6f5Zug5pivIDwgdGhlXC1yZWFzb25cLWlzXC1cLlwuXC47CivoqIjnrpfmqZ/lt6Xmpa0gPCBjb21wdXRlclwtaW5kdXN0cnk7Civopb/nlarpm4Xmm7ggPCBib29rXC1vZlwtemVwaGFuaWFoOwor6Kqe6KiAIDwgXChzcG9rZW5cKVwtbGFuZ3VhZ2U7CivkuIDlubTljYogPCBhXC15ZWFyXC1hbmRcLWFcLWhhbGY7CivlsIjlrrboqZXoq5YgPCBleHBlcnRcLWNvbW1lbnRhcnk7CivpmL/niL7lt7TlsLzkup7kurogPCBhbGJhbmlhblwtXChwZXJzb25cKTsKK+S4jeWxkSA8IGRpc2RhaW5cLXRvXC1kb1wtc3RoOwor5ZqH5b6X55m85oqWIDwgdHJlbWJsZVwtd2l0aFwtZmVhcjsKK+WNiuelqCA8IGhhbGZcLXByaWNlXC10aWNrZXQ7CivnjajllLEgPCBcKGluXC1zaW5naW5nXClcLXNvbG87CivkuI3nlJjlv4MgPCBub3RcLXJlY29uY2lsZWRcLXRvOwor5Zub6ZaA6L2O6LuKIDwgc2VkYW5cLVwobW90b3JcLWNhclwpOwor56eB5Lq6IDwgcHJpdmF0ZVwtXChjaXRpemVuXCk7CivnjbLlh4YgPCBvYnRhaW5cLXBlcm1pc3Npb247CivlrqLmiLbmqZ8gPCBjbGllbnRcLVwoY29tcHV0ZXJcKTsKK+asiumRsCA8IGtleXNcLW9mXC1hdXRob3JpdHk7CivlpLHmpa3njocgPCB1bmVtcGxveW1lbnRcLXJhdGU7CivniIbnrqEgPCBjYXJ0cmlkZ2VcLWlnbml0ZXI7CivnpKbluoogPCBcKG1pbmVyYWxcKVwtZGVwb3NpdDsKK+aEm+S4jemHi+aJiyA8IGZvbmRsZVwtYWRtaXJpbmdseTsKK+atouihgCA8IHN0YW5jaFwtXChibGVlZGluZ1wpOwor5ZCN5a2XIDwgXChhXC1wZXJzb24nJ3NcKVwtbmFtZTsKK+itpuWvn+WxgCA8IHBvbGljZVwtZGVwYXJ0bWVudDsKK+WPsOW5oyA8IG5ld1wtdGFpd2FuXC1kb2xsYXI7Civpoaflj4ogPCB0YWtlXC1pbnRvXC1hY2NvdW50Owor5q245b+D6ICFIDwgcmVsaWdpb3VzXC1jb252ZXJ0Owor5rKS6Zec5L+CIDwgaXRcLWRvZXNuJyd0XC1tYXR0ZXI7CivkuIvljrsgPCBnb1wtZG93blwtXChkZXNjZW5kXCk7Civlvp7poK3liLDohbMgPCBmcm9tXC1oZWFkXC10b1wtZm9vdDsKK+WLu+eosSA8IHdlbGxcLXByb3BvcnRpb25lZDsKK+S4jeWKmyA8IG5vdFwtZG9cLW9uZScnc1wtYmVzdDsKK+mBk+isnSA8IHRvXC1leHByZXNzXC10aGFua3M7CivnoZ3nhZkgPCBzbW9rZVwtXChmcm9tXC1ndW5zXCk7Civol53kurogPCBwZXJmb3JtaW5nXC1hcnRpc3Q7CivljIXlnJLlhZIgPCBidXlcLXRoZVwtd2hvbGVcLWxvdDsKK+aVmee3tCA8IFwoYXRobGV0ZScnc1wpXC1jb2FjaDsKK+WHuumZoiA8IHRvXC1sZWF2ZVwtaG9zcGl0YWw7CivpmL/ph4wgPCBhbGlcLVwocHJvcGVyXC1uYW1lXCk7CivkuIDouqvmsZcgPCBzd2VhdGluZ1wtYWxsXC1vdmVyOwor6ZmE6L+RIDwgXChpblwtdGhlXClcLXZpY2luaXR5Owor5buj5pKt57ay6LevIDwgYnJvYWRjYXN0XC1uZXR3b3JrOwor56yo5Y+j5ouZ6IiMIDwgYXdrd2FyZFwtaW5cLXNwZWVjaDsKK+eJjOaokyA8IGRlY29yYXRlZFwtYXJjaHdheTsKK+W3tOaWr+WFi+iqniA8IGJhc3F1ZVwtXChsYW5ndWFnZVwpOwor54i25q+NIDwgZmF0aGVyXC1hbmRcLW1vdGhlcjsKK+iPr+WMl+W5s+WOnyA8IG5vcnRoXC1jaGluYVwtcGxhaW47CivmlZHmganoqIjlioMgPCBwbGFuXC1vZlwtc2FsdmF0aW9uOwor5LiqIDwgbnVtZXJhcnlcLWFkanVuY3Q7Civph4wgPCB1bml0XC1vZlwtZGlzdGFuY2U7CivpmLMgPCAnJ21hbGUnJ1wtcHJpbmNpcGxlOwor6KidIDwgZXhwcmVzc1wtc3VycHJpc2U7Civpu40gPCBnbHV0aW5vdXNcLW1pbGxldDsKK+WJpyA8IHRoZWF0cmljYWxcLXBsYXlzOwor6JiCIDwgc3RhbWVuXC1vclwtcGlzdGlsOwor5oy6IDwgdG9cLXN0YW5kXC11cHJpZ2h0Owor56GAIDwgZm91bmRhdGlvblwtc3RvbmU7CivoiIUgPCBtb3RoZXInJ3NcLWJyb3RoZXI7CivokKcgPCBjb21tb25cLWFydGVtaXNpYTsKK+S/uiA8IHBlcnNvbmFsXC1wcm9ub3VuOwor546yIDwgdGlua2xpbmdcLW9mXC1qYWRlOwor5o2pIDwgdHdpc3RcLXdpdGhcLWhhbmRzOwor6bubIDwgYmxhY2tlblwtZXllYnJvd3M7CivlpoYgPCB0b1wtYWRvcm5cLW9uZXNlbGY7CivluaIgPCBjYXJyaWFnZVwtY3VydGFpbjsKK+airSA8IHdlYXZlcicnc1wtc2h1dHRsZTsKK+a8qiA8IHJpcHBsZXNcLW9uXC13YXRlcjsKK+ectyA8IHRha2VcLWludGVyZXN0XC1pbjsKK+WLiyA8IG1lcml0b3Jpb3VzXC1kZWVkOwor55StIDwgdGhlcmVcLWlzXC1ub1wtbmVlZDsKK+eloCA8IGFuY2VzdHJhbFwtdGVtcGxlOwor6IiUIDwgbGlja1wtd2l0aFwtdG9uZ3VlOwor6JWKIDwgdW5vcGVuZWRcLWZsb3dlcnM7CivotaMgPCBqaWFuZ3hpXC1wcm92aW5jZTsKK+i3tyA8IHJhaXNlXC1vbmUnJ3NcLWZvb3Q7CivliYEgPCBjaG9wXC1ieVwtcG91bmRpbmc7CivolrAgPCBhXC1tZWRpY2luYWxcLWhlcmI7Civlj7wgPCBob2xkaW5nXC1pblwtbW91dGg7CivojbwgPCBiaXR0ZXJcLXZlZ2V0YWJsZTsKK+W+mSA8IG1vdmVcLW9uZScnc1wtYWJvZGU7CivmtpQgPCByaXZlclwtaW5cLXNoYWFueGk7CivmvaIgPCBleHBhbnNlXC1vZlwtd2F0ZXI7Civnp7ggPCBzdGFsa3NcLW9mXC1taWxsZXQ7CivoooggPCBidWRkaGlzdFwtY2Fzc29jazsKK+ePniA8IGtpbmRcLW9mXC1uZWNrbGFjZTsKK+WVviA8IHdhaWxpbmdcLW9mXC1jaGlsZDsKK+S6uyA8IHJhZGljYWxcLW51bWJlclwtOTsKK+WkmSA8IGVhcmx5XC1pblwtbW9ybmluZzsKK+m5mCA8IGFcLWtpbmRcLW9mXC1waWdlb247CivlqKkgPCBnaXZlXC1iaXJ0aFwtY2hpbGQ7Civlp50gPCBhXC1iZWF1dGlmdWxcLWdpcmw7Civmh5EgPCBiZVwtc2lja1wtYXRcLWhlYXJ0Owor6ZSJIDwgY2FycGVudGVyJydzXC1maWxlOwor5rSxIDwgYVwtbGFrZVwtaW5cLXl1bm5hbjsKK+idiCA8IHNtYWxsXC1ncmVlblwtZnJvZzsKK+W4vCA8IHdvbWVuJydzXC1oZWFkZ2VhcjsKK+eLjiA8IGJlXC1mYW1pbGlhclwtd2l0aDsKK+iDqiA8IGFycmFuZ2VcLWluXC1vcmRlcjsKK+ixoiA8IGRvbWVzdGljXC1hbmltYWxzOwor55yHIDwgYmxpbmRcLWluXC1vbmVcLWV5ZTsKK+e+vyA8IGxlZ2VuZGFyeVwtYXJjaGVyOwor6IqpIDwgc2FsdFwtbWFyc2hcLXBsYW50Owor6IytIDwgYW5cLWFxdWF0aWNcLWdyYXNzOwor6JOWIDwgY2FzdG9yXC1vaWxcLXBsYW50Owor5YKnIDwgZW50ZXJ0YWluXC1ndWVzdHM7CivolpwgPCBldmVyZ3JlZW5cLXNocnViczsKK+i2uiA8IHNpdFwtY3Jvc3NcLWxlZ2dlZDsKK+akuSA8IGFcLWNob3BwaW5nXC1ib2FyZDsKK+mciCA8IHRvcnJlbnRpYWxcLXJhaW5zOwor5pupIDwgaW5cLWFuY2llbnRcLXRpbWVzOwor5qCMIDwgc3VwcG9ydGluZ1wtYmxvY2s7Civlk5ogPCBjaGVtaWNhbFwtZWxlbWVudDsKK+etjCA8IGJhbWJvb1wtZmlzaFwtdHJhcDsKK+a1jSA8IGlycmlnYXRpb25cLWRpdGNoOwor54yBIDwgYVwta2luZFwtb2ZcLW1vbmtleTsKK+WVtiA8IFwtZFwtXCtcLWluZVwtXChjaGVtXC5cKTsKK+msryA8IHNhY3JpZmljaWFsXC13aW5lOwor6bK3IDwgcGFncm9zb211c1wtbWFqb3I7CivogbEgPCBiZW50XC1hbmRcLXR3aXN0ZWQ7CivliqIgPCBwdXRcLWZvcnRoXC1lZmZvcnQ7Civon6ogPCBhXC1raW5kXC1vZlwtY2ljYWRhOwor6LWGIDwgZmFyZXdlbGxcLXByZXNlbnQ7Civln68gPCBjb3Zlclwtd2l0aFwtZWFydGg7CivpspQgPCBraW5kXC1vZlwtc3R1cmdlb247CivnvaggPCBtZWRpY2FsXC1jb21wcmVzczsKK+WrnCA8IGh1c2JhbmQnJ3NcLXBhcmVudDsKK+a8pCA8IG1hcmluYXRlXC1pblwtc2FsdDsKK+WahiA8IGdpdmVcLWZvcnRoXC1zb3VuZDsKK+iWuSA8IGN5cGVydXNcLXJvdHVuZHVzOwor6IyGIDwgc3BlY2llc1wtb2ZcLWdyYXNzOwor56Oo5a2QIDwgbWlsbFwsXC1taWxsc3RvbmVzOwor5YWx55Si6buo6YOo6ZqKIDwgY29tbXVuaXN0XC1mb3JjZXM7CivlkI7kurogPCBsYXRlclwtZ2VuZXJhdGlvbjsKK+iIquepuuavjeiJpiA8IGFpcmNyYWZ0XC1jYXJyaWVyOwor6K2Y5a2XIDwgdG9cLWxlYXJuXC10b1wtcmVhZDsKK+S4reWci+Wkp+mZuCA8IGNoaW5lc2VcLW1haW5sYW5kOwor5b2x5YOP5pyD6K2wIDwgdmlkZW9cLWNvbmZlcmVuY2U7Civlv4PlvpcgPCBrbm93bGVkZ2VcLWdhaW5lZDsKK+aCsuatoembouWQiCA8IGpveXNcLWFuZFwtc29ycm93czsKK+eZvumHjOaMkeS4gCA8IG9uZVwtaW5cLWFcLWh1bmRyZWQ7Civnmb3ntLDog54gPCB3aGl0ZVwtYmxvb2RcLWNlbGw7Civoqp7ms5XooZPoqp4gPCBncmFtbWF0aWNhbFwtdGVybTsKK+axguWpmiA8IHByb3Bvc2VcLW1hcnJpYWdlOwor57eo55uuIDwgbWFrZVwtYVwtY2F0YWxvZ3VlOwor6Zu75rWBIDwgZWxlY3RyaWNcLWN1cnJlbnQ7Civln47pjq4gPCBjaXRpZXNcLWFuZFwtdG93bnM7Civlp5Tlk6EgPCBjb21taXR0ZWVcLW1lbWJlcjsKK+WjgeeVqyA8IG11cmFsXC1cKHBhaW50aW5nXCk7Civlp5PlkI0gPCBuYW1lXC1hbmRcLXN1cm5hbWU7CivmmK/lkKYgPCB3aGV0aGVyXC1cKG9yXC1ub3RcKTsKK+e4veapnyA8IGNlbnRyYWxcLWV4Y2hhbmdlOwor6YGO56iLIDwgY291cnNlXC1vZlwtZXZlbnRzOwor54aK54y0IDwgYXNzYW1lc2VcLW1hY2FxdWU7CivlpKfmnIMgPCBnZW5lcmFsXC1hc3NlbWJseTsKK+WfuuiqvyA8IFwoc3BlZWNoXClcLWtleW5vdGU7CivoqqTmnIMgPCB0b1wtbWlzdW5kZXJzdGFuZDsKK+abtOmrmOaAp+iDvSA8IGhpZ2hcLXBlcmZvcm1hbmNlOwor6LaF6auY6YCf5LmZ5aSq57ay6LevIDwgZ2lnYWJpdFwtZXRoZXJuZXQ7CivoqILnpaggPCB0b1wtaXNzdWVcLXRpY2tldHM7Civlo73moYMgPCBiaXJ0aGRheVwtcGVhY2hlczsKK+i7jeS6i+enkeWtuCA8IG1pbGl0YXJ5XC1zY2llbmNlOwor5pyN5YuZ5o+Q5L6b6ICFIDwgc2VydmljZVwtcHJvdmlkZXI7Civlmajlrpjnp7vmrpYgPCBvcmdhblwtdHJhbnNwbGFudDsKK+enu+WLleW8j+mbu+ipsSA8IG1vYmlsZVwtdGVsZXBob25lOwor5be06LGGIDwgXChwdXJnaW5nXClcLWNyb3RvbjsKK+WjveaYnyA8IGdvZFwtb2ZcLWxvbmdldml0eTsKK+W9seWDj+iZleeQhiA8IGltYWdlXC1wcm9jZXNzaW5nOwor5YWl6L+3IDwgdG9cLWJlXC1mYXNjaW5hdGVkOwor5piO5LujIDwgdGhlXC1taW5nXC1keW5hc3R5Owor5oCn6Zec5L+CIDwgc2V4dWFsXC1yZWxhdGlvbnM7Civkurrkuovpg6jploAgPCBwZXJzb25uZWxcLW9mZmljZTsKK+mAgOelqCA8IGJvdW5jZVwtXChhXC1jaGVja1wpOwor5r2b5Zyo5aiB6ISFIDwgcG90ZW50aWFsXC10aHJlYXQ7Civmrq/lhIDppKggPCB0aGVcLXVuZGVydGFrZXInJ3M7CivntbHoqIjmlbjmk5ogPCBzdGF0aXN0aWNhbFwtZGF0YTsKK+e5g+WtkCA8IGVtYnJvaWRlcnlcLWZyYW1lOwor5b6X5Ye6IDwgb2J0YWluXC1cKHJlc3VsdHNcKTsKK+WFjeiyuyA8IGZyZWVcLVwob2ZcLWNoYXJnZVwpOwor6YGy5pquIDwgcGFzdFwtb25lJydzXC1wcmltZTsKK+eglOiojuacgyA8IGRpc2N1c3Npb25cLWZvcnVtOwor5LiN5YiG6Z2S57SF55qC55m9IDwgaW5kaXNjcmltaW5hdGVseTsKK+eJueWumuWQq+e+qSA8IHNwZWNpZmljXC1tZWFuaW5nOwor6YeR6J6N57O757WxIDwgZmluYW5jaWFsXC1zeXN0ZW07CivlsI7oh7TmrbvkuqEgPCB0b1wtbGVhZFwtdG9cLWRlYXRoOwor5p2/5LiK6YeY6YeYIDwgdGhhdFwtY2xpbmNoZXNcLWl0Owor57ay5qmLIDwgXChuZXR3b3JrXClcLWJyaWRnZTsKK+WIl+eCuiA8IGJlXC1jbGFzc2lmaWVkXC1hczsKK+WpmuWkluaAp+aOpeinuCA8IGV4dHJhbWFyaXRhbFwtc2V4Owor5ZyL6ZiyIDwgbmF0aW9uYWxcLWRlZmVuY2U7CivmlYXlsYUgPCBmb3JtZXJcLXJlc2lkZW5jZTsKK+azoue+juavlOmHjeioiCA8IGJhdW1lXC1oeWRyb21ldGVyOwor6b2ZIDwgcHJvamVjdGluZ1wtdGVldGg7CivpubYgPCBzYWx0eVwtYW5kXC1iaXR0ZXI7Civlib3mgo0gPCBzd2lmdFwtYW5kXC1maWVyY2U7CivmrablrpggPCBtaWxpdGFyeVwtYXR0YWNoZTsKK+S4jeetiemCiuS4ieinkuW9oiA8IHNjYWxlbmVcLXRyaWFuZ2xlOwor6YGV5oayIDwgdW5jb25zdGl0dXRpb25hbDsKK+mvhiA8IHRoZVwtc2thdGVcLW9yXC1yYXk7Civli57li5UgPCBcKHBoeXNpY2FsXClcLWxhYm9yOwor54K655SfIDwgdG9cLW1ha2VcLWFcLWxpdmluZzsKK+mbu+iFpuS8gealrSA8IGNvbXB1dGVyXC1jb21wYW55Owor5YWs576KIDwgcmFtXC1cKG1hbGVcLXNoZWVwXCk7CivoiLnpmoogPCBmbGVldFwtXChvZlwtc2hpcHNcKTsKK+mtrCA8IHNvbGVcLW9yXC1mbG91bmRlcjsKK+W7o+W3niA8IGd1YW5nemhvdVwtXChjaXR5XCk7CivllInogbLlmIbmsKMgPCBoZWF2ZVwtZGVlcFwtc2lnaHM7CivkuI3lpb3mhI/mgJ0gPCBmZWVsXC1lbWJhcnJhc3NlZDsKK+mbu+WKmyA8IGVsZWN0cmljYWxcLXBvd2VyOwor6KOc6KGAIDwgZW5yaWNoXC10aGVcLWJsb29kOwor6aq0IDwgYVwtcHV0cmlkXC1jYXJjYXNlOwor5aSW5ZyL5oqV6LOH6ICFIDwgZm9yZWlnblwtaW52ZXN0b3I7CivpppggPCBjdXRcLW9mZlwtbGVmdFwtZWFyOwor5be05biD5Lqe5paw5bm+5YWn5LqeIDwgcGFwYXVcLW5ld1wtZ3VpbmVhOwor6LOH5paZ6YePIDwgcXVhbnRpdHlcLW9mXC1kYXRhOwor57eo6Lyv5a6kIDwgZWRpdG9yaWFsXC1vZmZpY2U7Civpo4AgPCBzb3VnaGluZ1wtb2ZcLXdpbmQ7Civnh4jlhYkgPCBcKHN0YWdlXClcLWxpZ2h0aW5nOwor6Z+dIDwgbGVhdGhlclwtYXJtXC1iYW5kOwor6Z+KIDwgYVwtY2FzZVwtZm9yXC1hXC1ib3c7CivpnrYgPCBiaWdcLWxlYXRoZXJcLWJlbHQ7CivpgI/mlK8gPCBcKGJhbmtcKVwtb3ZlcmRyYWZ0Owor5q2j5bi45bel5L2cIDwgbm9ybWFsXC1vcGVyYXRpb247Civpm5cgPCBhXC13aGl0ZVwtcGhlYXNhbnQ7CivpmqQgPCB0b1wtZmFsbFwtaW5cLXJ1aW5zOwor5YKz55yf55m86YCBIDwgZmF4XC10cmFuc21pc3Npb247Civpl6AgPCBnYXRlXC1vZlwtYVwtbWFya2V0Owor55Ww5oCn5oCn5o6l6Ke4IDwgaGV0ZXJvc2V4dWFsXC1zZXg7Civov7Tml4sgPCBtYW5ldXZlcmluZ1wtcm9vbTsKK+aLieS4geiqniA8IGxhdGluXC1cKGxhbmd1YWdlXCk7Civmk43kvZzns7vntbEgPCBvcGVyYXRpbmdcLXN5c3RlbTsKK+mKuyA8IGFudGltb255XC1zdGliaXVtOwor6YqnIDwgcG9pbnRcLW9mXC1hXC1zd29yZDsKK+mJgCA8IHBvdGFzc2l1bVwta2FsaXVtOwor55m956O3IDwgd2hpdGVcLXBob3NwaG9ydXM7CivpganphY3lsaQgPCBhZGFwdGF0aW9uXC1sYXllcjsKK+WHuumiqOmgrSA8IHRvXC1jcmVhdGVcLWFcLXN0aXI7CivloLHmjbcgPCByZXBvcnRcLWFcLXN1Y2Nlc3M7CivoqKrllY8gPCBwYXlcLWFcLXZpc2l0XC1cKHRvXCk7CivlgrPovLjlqpLnlYwgPCB0cmFuc3BvcnRcLW1ldGhvZDsKK+mZpOWklSA8IFwobmV3XC15ZWFyJydzXClcLWV2ZTsKK+i6tyA8IG9mXC1zaG9ydFwtc3RhdHVyZTsKK+i5sSA8IHRvXC1zdGFnZ2VyXC1hbG9uZzsKK+i5kCA8IHRha2VcLXNob3J0XC1zdGVwczsKK+ahjOS4iuWei+mbu+iFpiA8IGRlc2t0b3BcLWNvbXB1dGVyOwor6L6m5qGIIDwgdG9cLWhhbmRsZVwtYVwtY2FzZTsKK+izmSA8IGdpdmVcLWZvclwtY2hhcml0eTsKK+i2iumHjui7iiA8IG9mZlwtcm9hZFwtdmVoaWNhbDsKK+ixjyA8IGhhbGZcLWdyb3duXC1iZWFuczsKK+e2sue1oeebtOW+kSA8IG5ldHdvcmtcLWRpYW1ldGVyOwor6KiC5ZauIDwgXChwdXJjaGFzZVwpXC1vcmRlcjsKK+aIkOe+pOe1kOmaiiA8IGluXC1sYXJnZVwtbnVtYmVyczsKK+mBqemFjeWZqCA8IGFkYXB0ZXJcLVwoZGV2aWNlXCk7Civlia/kuLvluK0gPCB2aWNlXC1jaGFpcnBlcnNvbjsKK+iPr+WDkSA8IG92ZXJzZWFzXC1jaGluZXNlOwor6KqVIDwgdG9cLWJlYXJcLWNoaWxkcmVuOwor5ruR6bygIDwgbW91c2VcLVwoY29tcHV0ZXJcKTsKK+imgiA8IHRvXC10aHJvd1wtYVwtcmlkZXI7CivopbEgPCBsZWdzXC1vZlwtdHJvdXNlcnM7Civoo5sgPCB0b1wtd3JhcFwtYW5kXC1iaW5kOwor6KKXIDwgdW5saW5lZFwtZ2FybWVudHM7CivnhKHmiYDkuI3os6MgPCB0b1wtc2VsbFwtYW55dGhpbmc7CivooY4gPCB0b1wtZ2l2ZVwtcGxlYXN1cmU7Civon78gPCBhY3JpZGFcLWNoaW5lbnNpczsKK+ieiyA8IHNwaWRlclwtbWlsbGlwZWRlOwor6J27IDwgaW1tYXR1cmVcLWxvY3VzdHM7Civnl4Xoj4wgPCBoYXJtZnVsXC1iYWN0ZXJpYTsKK+iomOiAheaLm+W+heacgyA8IHByZXNzXC1jb25mZXJlbmNlOwor5o235YWL6KqeIDwgY3plY2hcLVwobGFuZ3VhZ2VcKTsKK+iZpSA8IHN0cmlwZWRcLXdpbGRcLWNhdDsKK+ethuW6leS4iyA8IGFiaWxpdHlcLXRvXC13cml0ZTsKK+mAsuS/riA8IGFkdmFuY2VkXC1zdHVkaWVzOwor6JemIDwgZWRpYmxlXC1tdXNocm9vbXM7CivplbfmsZ8gPCBjaGFuZ2ppYW5nXC1yaXZlcjsKK+iXiyA8IHNhbWJ1Y3VcLWphdmluaWNhOwor6JaDIDwgY3lwZXJ1c1wtYW11cmljdXM7CivpgJrnlKjpm7vlmaggPCBnZW5lcmFsXC1lbGVjdHJpYzsKK+iUhyA8IGx1eHVyaWFudFwtZ3Jvd3RoOwor5bm+5Y2DIDwgc2V2ZXJhbFwtdGhvdXNhbmQ7CivmnJ3prq7ljYrls7YgPCBrb3JlYW5cLXBlbmluc3VsYTsKK+iRmSA8IGNlbG9zaWFcLWFyZ2VudGVhOwor6I+JIDwgdGhlXC1ncmVlblwtYmFtYm9vOwor6IqYIDwgbWFsdmFcLXN5bHZlc3RyaXM7CivliLDkuoYgPCBpblwtXChhXC1wYXN0XC10aW1lXCk7CivmoLjljp/mlpkgPCBudWNsZWFyXC1tYXRlcmlhbDsKK+aciemXnOS6uuWjqyA8IHBlcnNvbnNcLWludm9sdmVkOwor5aCx5ZCNIDwgZW50ZXJcLW9uZScnc1wtbmFtZTsKK+WHuuWQjSA8IHdlbGxcLWtub3duXC1cKGZvclwpOwor5o6I542OIDwgdG9cLWF3YXJkXC1hXC1wcml6ZTsKK+mrlOiCsiA8IHBoeXNpY2FsXC1jdWx0dXJlOwor6IC25Yip57Gz5pu4IDwgYm9va1wtb2ZcLWplcmVtaWFoOwor6IC8IDwgZWFyc1wtd2l0aG91dFwtcmltOwor5LiN54it5rCjIDwgYmVcLWRpc2FwcG9pbnRpbmc7CivmvKLoqp4gPCBjaGluZXNlXC1sYW5ndWFnZTsKK+mHkeiejeW4guWgtCA8IGZpbmFuY2lhbFwtbWFya2V0Owor57a1IDwgdmFyaWNvbG9yZWRcLXNpbGs7CivntL0gPCBhXC1zdHJhbmRcLW9mXC1zaWxrOwor57O1IDwgZmVybWVudGluZ1wtZ3JhaW47Civns4ggPCBzYWNyaWZpY2lhbFwtcmljZTsKK+WFteW9uSA8IG1pbGl0YXJ5XC1zZXJ2aWNlOwor57GnIDwgY3J1ZGVcLWJhbWJvb1wtbWF0Owor5YyX5Yaw5rSLIDwgdGhlXC1hcmN0aWNcLW9jZWFuOwor5YWp5bK45bCN6KmxIDwgYmlsYXRlcmlhbFwtdGFsa3M7Civnrq8gPCBiYW1ib29cLXBhbGFucXVpbjsKK+euiiA8IGJhbWJvb1wtd2l0aFwtdGhpbjsKK+entyA8IHNvdW5kXC1vZlwtcmVhcGluZzsKK+ejpSA8IGFcLWhlYXBcLW9mXC1zdG9uZXM7CivnvoXlr4bmrZDoiIfmnLHpupfokYkgPCByb21lb1wtYW5kXC1qdWxpZXQ7CivnoKsgPCBhbmNlc3RyYWxcLXRhYmxldDsKK+eemCA8IGRlZXBseVwtc3Vua1wtZXllczsKK+eeiyA8IGdsYXJlXC13aXRoXC1hbmdlcjsKK+eVouiCliA8IHJlc2VtYmxlXC1jbG9zZWx5Owor552cIDwgdG9cLW9wZW5cLXRoZVwtZXllczsKK+S4jee2k+S5i+irhyA8IGFic3VyZFwtc3RhdGVtZW50Owor5bSp5ryPIDwgdXRlcmluZVwtYmxlZWRpbmc7Civnm6YgPCBsaWRcLW9mXC1hXC1jYWxkcm9uOwor55mJIDwgdG9cLWhhdGVcLWJpdHRlcmx5Owor5YaX5ZOhIDwgZXhjZXNzXC1wZXJzb25uZWw7CivlhbXlo6sgPCBvcmRpbmFyeVwtc29sZGllcjsKK+imgeS6uiA8IGltcG9ydGFudFwtcGVyc29uOwor5o6h5pOHIDwgc2VsZWN0XC1hbmRcLWFkb3B0Owor6Lip57eaIDwgc3RlcFwtb25cLXRoZVwtbGluZTsKK+eTnyA8IHRoZVwtYm90dGxlXC1nb3VyZDsKK+eMuCA8IGFcLWtpbmRcLW9mXC1hbmltYWw7Civlj4jkvobkuoYgPCBoZXJlXC13ZVwtZ29cLWFnYWluOwor55mx5a2QIDwgcGFyYWx5emVkXC1wZXJzb247Civni7sgPCBhXC1mYWJ1bG91c1wtYmVhc3Q7Civlt6jljKAgPCBtYXN0ZXJcLWNyYWZ0c21hbjsKK+mWseWFtSA8IHRvXC1yZXZpZXdcLXRyb29wczsKK+WCsuawoyA8IGFpclwtb2ZcLWFycm9nYW5jZTsKK+eDnCA8IGxpZ2h0XC1vZlwtdGhlXC1zdW47Civkvr/ooaMgPCBjaXZpbGlhblwtY2xvdGhlczsKK+e2sumam+e2sui3r+WNlOacgyA8IGludGVybmV0XC1zb2NpZXR5Owor6Lev55Sx5Y2U5a6aIDwgcm91dGluZ1wtcHJvdG9jb2w7CivmvqYgPCBwbGFjZVwtaW5cLXNpY2h1YW47CivmvqUgPCBhXC1ibG9ja2VkXC1zdHJlYW07CivmvpQgPCByYWRpYW5jZVwtb2ZcLWdlbXM7CivlsIvoqKogPCB0b1wtaW5xdWlyZVwtYWZ0ZXI7Civlr7bosp0gPCB0cmVhc3VyZWRcLW9iamVjdDsKK+mWseS4liA8IHRvXC1zZWVcLXRoZVwtd29ybGQ7CivmuKsgPCBiZWF0aW5nXC1vZlwtb2NlYW47CivnsKHmmI4gPCBzaW1wbGVcLWFuZFwtY2xlYXI7CivntrLot6/lubPlj7AgPCBuZXR3b3JrXC1wbGF0Zm9ybTsKK+WuiemgkyA8IGZpbmRcLWFcLXBsYWNlXC1mb3I7CivlhazlhawgPCBodXNiYW5kJydzXC1mYXRoZXI7Civkvovoqp4gPCBleGFtcGxlXC1zZW50YW5jZTsKK+avriA8IHRvXC1wdWxsXC1vdXRcLWhhaXI7Civmr6ogPCBzZXJnZVwtZnJvbVwtdGliZXQ7CivmqJsgPCBiZW5kaW5nXC1icmFuY2hlczsKK+mWg+S6riA8IGJyaWxsaWFudFwsXC1zaGlueTsKK+WFieaqoua4rOWZqCA8IG9wdGljYWxcLWRldGVjdG9yOwor5p6yIDwgbWFsZVwtbmV0dGxlXC1oZW1wOwor6Zu76IWm57ay6LevIDwgY29tcHV0ZXJcLW5ldHdvcms7CivmnpIgPCB0aGVcLWNvY29udXRcLXRyZWU7Civms6LniL7lpJrmtrIgPCBib3JkZWF1eFwtbWl4dHVyZTsKK+aWtSA8IHRvXC1jdXRcLXRvXC1waWVjZXM7Civmlp4gPCBhXC1zdGFja1wtb2ZcLWdyYWluOwor5pKaIDwgdHdpcmxcLWluXC1maW5nZXJzOwor5Y6f5a2Q56eR5a245a62IDwgYXRvbWljXC1zY2llbnRpc3Q7CivlnYfli6IgPCBiYWxhbmNlXC1vZlwtcG93ZXI7CivnmbzpgZTlnIvlrrYgPCBkZXZlbG9wZWRcLW5hdGlvbjsKK+WNgeWkmuWEhCA8IG92ZXJcLW9uZVwtYmlsbGlvbjsKK+W3sue2k+mAsuihjCA8IGFscmVhZHlcLXVuZGVyd2F5Owor5YKz6YCB5pyN5YuZIDwgZGVsaXZlcnlcLXNlcnZpY2U7CivmjLcgPCB0b1wtcHJvcGVsXC1hXC1ib2F0Owor5L+d55WZIDwgY29udGludWVcLXRvXC1oYXZlOwor5Lq66aCtIDwgbnVtYmVyXC1vZlwtcGVvcGxlOwor5o6l5Lq6IDwgdG9cLW1lZXRcLWFcLXBlcnNvbjsKK+iugOiAheS+huS/oSA8IHJlYWRlcicnc1wtbGV0dGVyczsKK+W8syA8IGNpcmN1bGFyXC1tZWFzdXJlOwor5bu1IDwgdG9cLWdvXC1vblwtY2lyY3VpdDsKK+S4gOS4i+WtkCA8IGluXC1hXC1zaG9ydFwtd2hpbGU7Civlk4jlt7TosLfmm7ggPCBib29rXC1vZlwtaGFiYWtrdWs7CivmoLjoqK3mlr0gPCBudWNsZWFyXC1mYWNpbGl0eTsKK+Wci+WKmyA8IGFcLW5hdGlvbicnc1wtcG93ZXI7Civnmb3lo4Hlvq7nkZUgPCBhXC1zbGlnaHRcLWJsZW1pc2g7CivljYHlub7lgIvmnIggPCB0ZW5cLW1vbnRoc1wtb3JcLXNvOwor6Z2e5pS/5bqcIDwgbm9uXC1nb3Zlcm5tZW50YWw7CivkuLvlubnnt5ogPCBiYWNrYm9uZVwtXChjYWJsZVwpOwor5ayOIDwgdG9cLWJlYXJcLW11bHRpcGxlOwor6Zu76KaW5qmfIDwgdGVsZXZpc2lvblwtXChzZXRcKTsKK+WqpCA8IGh1c2JhbmQnJ3NcLWZhbWlseTsKK+aJrua8lCA8IHBsYXlcLXRoZVwtcGFydFwtb2Y7CivmtYHooYznl4UgPCBlcGlkZW1pY1wtZGlzZWFzZTsKK+eXheWboCA8IGNhdXNlXC1vZlwtZGlzZWFzZTsKK+i7jeS6iyA8IG1pbGl0YXJ5XC1hZmZhaXJzOwor5L2U57eaIDwgYnVzeVwtXCh0ZWxlcGhvbmVcKTsKK+WxseadkSA8IG1vdW50YWluXC12aWxsYWdlOwor5L+h55So6K2JIDwgbGV0dGVyXC1vZlwtY3JlZGl0Owor5LiN5Yqg5oCd57SiIDwgd2l0aG91dFwtdGhpbmtpbmc7Civlm40gPCBkb3VibGVcLWhhcHBpbmVzczsKK+WasyA8IG15dGhpY2FsXC1lbXBlcm9yOwor5a246KGT55WMIDwgYWNhZGVtaWNcLWNpcmNsZXM7Civmi5DlvY4gPCB0b1wtdHVyblwtYVwtY29ybmVyOwor6IGa6K6KIDwgXChudWNsZWFyXClcLWZ1c2lvbjsKK+ihqOWGiiA8IHN0YXRpc3RpY2FsXC1mb3JtOwor5ZiFIDwgc291bmRcLW9mXC1zaWdoaW5nOwor5Zau5qih5YWJ57qWIDwgc2luZ2xlbW9kZVwtZmliZXI7CivmnIDlpKfog73lipsgPCBtYXhpbXVtXC1jYXBhY2l0eTsKK+ihm+aYn+WfjiA8IFwic2F0ZWxsaXRlXCJcLXRvd247Civll54gPCB0b1wtY29uc3VsdFwtYWJvdXQ7CivllrogPCB0b1wtYmVcLWxvY2F0ZWRcLWF0Owor5a+p55CGIDwgdG9cLWhlYXJcLVwoYVwtY2FzZVwpOwor5oqE5pysIDwgaGFuZHdyaXR0ZW5cLWNvcHk7CivoiJTlkK4gPCB0b1wtbGlja1wtYW5kXC1zdWNrOwor55qE5LiA56iuIDwgaXNcLW9uZVwtXChraW5kXC1vZlwpOwor5pu85b635ouJIDwgXChuZWxzb25cKVwtbWFuZGVsYTsKK+aciee3mumbu+imliA8IGNhYmxlXC10ZWxldmlzaW9uOwor5Y2w5Zyw6KqeIDwgaGluZGlcLVwobGFuZ3VhZ2VcKTsKK+S+v+apiyA8IHRlbXBvcmFyeVwtYnJpZGdlOwor5bel5qWt5YyWIDwgdG9cLWluZHVzdHJpYWxpemU7CivlhpMgPCBhXC1zZWNsdWRlZFwtcGxhY2U7CivkuI3ororos4fmnKwgPCBjb25zdGFudFwtY2FwaXRhbDsKK+WEiiA8IHJvdWdoXC1hbmRcLXJ1Z2dlZDsKK+WCnCA8IGFcLW1pbm9yaXR5XC10cmliZTsKK+ethuaIsCA8IHdyaXR0ZW5cLXBvbGVtaWNzOwor5L6/5pyNIDwgZXZlcnlkYXlcLWNsb3RoZXM7CivmhJ/orJ0gPCBcKGV4cHJlc3NcKVwtdGhhbmtzOwor5LaxIDwgYVwta2luZFwtb2ZcLXR1cnRsZTsKK+S1pCA8IHRvXC1jcmFja1wtb3JcLWNoYXA7CivktaMgPCB3aGl0ZVwtd2l0aFwtYmxhY2s7CivktYMgPCBhXC1raW5kXC1vZlwtYmFybGV5Owor5LSsIDwgY3J1bWJzXC1vZlwtYmFybGV5Owor5Ye654mI56S+IDwgcHVibGlzaGluZ1wtaG91c2U7CivkuIvppqwgPCBkaXNtb3VudFwtYVwtaG9yc2U7CivktIUgPCBhXC1sZWdlbmRhcnlcLWJpcmQ7Civmspbnuanls7YgPCBva2luYXdhXC1cKGlzbGFuZFwpOwor5LOiIDwgc21hbGxcLXdpbGRcLWdvb3NlOwor5LOQIDwgYW5cLW93bFwtbGlrZVwtYmlyZDsKK+WuieecoCA8IHNsZWVwXC1wZWFjZWZ1bGx5Owor5LKyIDwgYVwtaGF3a1wtbGlrZVwtYmlyZDsKK+WxpOWxpCA8IGxheWVyXC11cG9uXC1sYXllcjsKK+SwgyA8IGRpc2hldmVsbGVkXC1oYWlyOwor5K+zIDwgbG9vc2VseVwtYXJyYW5nZWQ7CivnrYbluL0gPCB0aGVcLWNhcFwtb2ZcLWFcLXBlbjsKK+SvhyA8IHRvXC1leGVydFwtb25lc2VsZjsKK+SutCA8IHVuc3RhYmxlXC13YWxraW5nOwor5K6zIDwgdG9cLWdpdmVcLWJpcnRoXC10bzsKK+SugSA8IGFcLXBhaXJcLW9mXC1ob3JzZXM7Civkq4wgPCBib3dlZFwtb25lJydzXC1oZWFkOwor5KqOIDwgc3RyaW5nc1wtb2ZcLWFcLWNhcDsKK+SppSA8IGFcLWJlbHRcLWZvclwtaG9yc2U7CivkqLsgPCByb2FyXC1vZlwtdGh1bmRlcnM7CivkqLQgPCBnYXRoZXJpbmdcLWNsb3VkczsKK+SosyA8IHRoZVwtcmFpblwtc3RvcHBlZDsKK+SojyA8IHNvdW5kXC1vZlwtcmFpbmluZzsKK+SoiiA8IGFcLWZsb2NrXC1vZlwtYmlyZHM7Civkp6EgPCBhXC1mb3J0aWZpZWRcLXdhbGw7CivosrbnvqkgPCBkZXJvZ2F0b3J5XC1zZW5zZTsKK+SnhCA8IG5hbWVcLW9mXC1hXC1wZXJzb247CivkppUgPCBiYW5nXC1vZlwtdGhlXC1kb29yOwor5KWbIDwgYVwta2luZFwtb2ZcLXNpY2tsZTsKK+mVt+W6puaMh+ekuuespiA8IGxlbmd0aFwtaW5kaWNhdG9yOwor5L2c5rOVIDwgY291cnNlXC1vZlwtYWN0aW9uOwor5KOuIDwgc21lbGxcLW9mXC1hbGNvaG9sOwor5KOrIDwgc291cmVkXC1iZWFuXC1jdXJkOwor5KKeIDwgcm93c1wtYW5kXC1jb2x1bW5zOwor5KGuIDwgdHJhY2VcLW9mXC1hXC13aGVlbDsKK+ShoiA8IGFcLXNtYWxsXC1jYXJyaWFnZTsKK+a8lOWToSA8IGFjdG9yXC1vclwtYWN0cmVzczsKK+SguyA8IHRvXC1iZW5kXC10aGVcLWJvZHk7CivpkZLliKUgPCB0b1wtZGlmZmVyZW50aWF0ZTsKK+SfiyA8IHRvXC1wcmVzc1wtZm9yd2FyZDsKK+S/neWvhiA8IG1haW50YWluXC1zZWNyZWN5Owor5J6MIDwgdG9cLWxvc2VcLWluXC10cmFkZTsKK+SdiyA8IGFcLWxpdHRsZVwtb2ZcLXBpZ3M7CivknYcgPCBncnVudGluZ1wtb2ZcLXBpZ3M7Civkm48gPCB0b1wtY2FsbFwtc29tZWJvZHk7Civkm44gPCB0b1wtc2hvdXRcLWluXC1yYWdlOwor5JuCIDwgdG9cLXNlcGFyYXRlXC1mcm9tOwor5JqUIDwgdG9cLWxvb2tcLXN1ZGRlbmx5Owor5JqSIDwgZXllc2lnaHRcLWJsdXJyZWQ7CivkmoMgPCB0b1wtcmVhbGl6ZVwtZnVsbHk7CivlgJ/liqkgPCB0b1wtZ2V0XC1oZWxwXC1mcm9tOwor5JmtIDwgdG9cLWxpZnRcLW9yXC1yYWlzZTsKK+mbu+ipseS/oeiZnyA8IHRlbGVwaG9uZVwtc2lnbmFsOwor5JiLIDwgYVwta2luZFwtb2ZcLWluc2VjdDsKK+awkeS4u+m7qCA8IGRlbW9jcmF0aWNcLXBhcnR5Owor5JePIDwgbmFtZVwtb2ZcLWFcLWluc2VjdDsKK+SWryA8IHBvaXNvbm91c1wtaW5zZWN0Owor5JaQIDwgc291bmRcLW9mXC1hXC10aWdlcjsKK+eUmOWcsCA8IFwobWFoYXRtYVwpXC1nYW5kaGk7Civku7/nnJ/mnI3li5nlmaggPCBlbXVsYXRpb25cLXNlcnZlcjsKK+SSoyA8IGx1c2hcLW9yXC1kZWxpY2F0ZTsKK+SRuCA8IGFcLWdyb3VwXC1vZlwtYm9hdHM7CivkkYUgPCBkaXp6eVwtYW5kXC1zbGVlcHk7CivkkKggPCBiYWNrXC1vZlwtdGhlXC1mb290Owor5I+SIDwgaGFsZlwtb2ZcLXRoZVwtYm9keTsKK+SPjyA8IHNpZ25zXC1hbmRcLWdyb2FuczsKK+SOryA8IHdpbnRlclwtcGxvdWdoaW5nOwor5I6CIDwgY29sb3JmdWxcLWZlYXRoZXI7Civpm7voppbliocgPCB0dlwtZHJhbWFcLXByb2dyYW07Civki6QgPCBwbGFpblwtd2hpdGVcLXNpbGs7Civki5QgPCB0b1wtYmFuZFwtdG9nZXRoZXI7CivkibcgPCBhXC1mZWF0aGVyXC1zY3JlZW47CivkiYkgPCBhXC13cml0aW5nXC10YWJsZXQ7CivkiJkgPCBiYW1ib29cLXRvXC13aXRoZXI7CivkiIggPCBhXC1raW5kXC1vZlwtYmFtYm9vOwor5rOo6YeNIDwgcGF5XC1hdHRlbnRpb25cLXRvOwor5Ia/IDwgdG9cLXRhbGtcLWluXC1zbGVlcDsKK+SGsiA8IGFcLXNwYWNpb3VzXC1ob3VzZTsKK+SGiCA8IHlvdW5nXC1hbmRcLXRlbmRlcjsKK+SFvCA8IGFcLWtpbmRcLW9mXC1ncmFpbnM7CivkhbogPCBncmFpblwtaW5cLXRoZVwtZWFyOwor6Ly75bCE5rOiIDwgcmFkaWF0aW9uXC1cKHdhdmVcKTsKK+aHuOaOmyA8IFwoY2FyXClcLXN1c3BlbnNpb247CivkgqogPCBoYXJkXC1iYXJyZW5cLWxhbmQ7CivkgIMgPCBhXC1raW5kXC1vZlwtdmVzc2VsOwor476mIDwgc2NhYlwtb3ZlclwtYVwtc29yZTsKK+O+gSA8IHdhbGtpbmdcLWxpa2VcLW1hZDsKK+O9riA8IGFcLXBvaW50XC1vZlwtbGlnaHQ7CivjvYogPCBjcmFja2luZ1wtb2ZcLXRpbGU7Civju5IgPCByZWRcLWNvbG9yZWRcLWphZGU7Civju4EgPCBhXC1raW5kXC1vZlwtamFzcGVyOwor5LiN6KydIDwgZG9uJyd0XC1tZW50aW9uXC1pdDsKK+O6tSA8IGJsYWNrXC1qYWRlXC1zdG9uZTsKK+O6tCA8IG5hbWVcLW9mXC1hXC1zcGlyaXQ7CivjuqYgPCBhXC1ydW5uaW5nXC1hbmltYWw7CivjubogPCBkb2dcLXRvXC10YWtlXC1mb29kOwor47mHIDwgYVwta2luZFwtb2ZcLWNhdHRsZTsKK+O4oyA8IGluXC1hbmNpZW50XC1jaGluYTsKK+acrOe+qSA8IG9yaWdpbmFsXC1tZWFuaW5nOwor47a+IDwgdG91Z2hcLWFuZFwtaG9uZXN0Owor47aNIDwgbmFtZVwtb2ZcLWFcLXN0cmVhbTsKK+S8tOaYnyA8IGNvbXBhbmlvblwtXChzdGFyXCk7Civkv53lhaggPCBzYXZlXC1mcm9tXC1kYW1hZ2U7CivjtKcgPCBvZlwtZmxvd2luZ1wtd2F0ZXI7CivlqIHniL7lo6voqp4gPCB3ZWxzaFwtXChsYW5ndWFnZVwpOwor5oqE5Lu2IDwgZHVwbGljYXRlXC1cKGNvcHlcKTsKK+OzvSA8IGFcLXdhdGVyeVwtZXhwYW5zZTsKK+OxtiA8IGFcLXN3ZWxsZW5cLWNvcnBzZTsKK+OxrSA8IGFuXC1pbmZlcnRpbGVcLWVnZzsKK+OwpCA8IHRvXC1sYXVnaFwtaGVydGlseTsKK+OwmyA8IG5hbWVcLW9mXC1hXC1jb3VudHk7CivjsIUgPCBlYXZlc1wtb2ZcLWFcLWhvdXNlOwor46+VIDwgc3RpY2tzXC1vclwtZnJhbWVzOwor46+DIDwgdGhlXC12YXJuaXNoXC10cmVlOwor55S35a2Q57GD55CDIDwgbWVuJydzXC1iYXNrZXRiYWxsOwor466TIDwgYW5cLWV4dHJlbWVcLWxpbWl0Owor4626IDwgdGhlXC1jaGVycnlcLWFwcGxlOwor6IGv6YKm5aSn5qiTIDwgZmVkZXJhbFwtYnVpbGRpbmc7Civjqq0gPCB0b1wtZHJhd1wtdG9nZXRoZXI7CivjqpYgPCBzb3VuZFwtb2ZcLWJlYXRpbmc7Civmma7pgJrllY/poYwgPCBjb21tb25cLXF1ZXN0aW9uczsKK+OovCA8IHRvXC10YWtlXC1ieVwtZm9yY2U7CivnvbfoqrIgPCBzdHVkZW50JydzXC1zdHJpa2U7Civjp7ogPCBhXC1maW5nZXJcLXdyYXBwZXI7CivovLjpgIHlqpLku4sgPCB0cmFuc3BvcnRcLW1lZGl1bTsKK+OmnCA8IHRvXC1tb3ZlXC10aGVcLW1pbmQ7Civmh4nmiLAgPCBmYWNlXC1hXC1jaGFsbGVuZ2U7CivmoLjlqIEgPCBudWNsZWFyXC1zdHJlbmd0aDsKK+OisCA8IHRvXC1zdHJldGNoXC1hXC1ib3c7CivomZznjbIgPCBjYXB0dXJlXC1cKHBlb3BsZVwpOwor46G9IDwgZGVwcmF2ZWRcLXRhbGtpbmc7CivjoYkgPCBhXC1raW5kXC1vZlwtZmFicmljOwor46CnIDwgYVwtbGl0dGxlXC1zbGFudGVkOwor46COIDwgYVwtbG9mdHlcLW1vdW50YWluOwor5pys56WoIDwgY2FzaGllcicnc1wtY2hlcXVlOwor6Ziy6KGb5q2m5ZmoIDwgZGVmZW5zaXZlXC13ZWFwb247CivjnasgPCBzaGFwZVwtb2ZcLXRoZVwtc2t5Owor452qIDwgYVwtc2xhbnRpbmdcLWhvdXNlOwor452pIDwgc3BhY2lvdXNseVwtcm9vbXM7CivpgY7ku73nsKHllq7ljJYgPCBvdmVyc2ltcGxpY2F0aW9uOwor45y0IDwgZGFya1wtYW5kXC1vYnNjdXJlOwor45ydIDwgdG9cLWNoZXJpc2hcLWFuZ2VyOwor45yIIDwgYVwtYmVhdWdpZnVsXC1mYWNlOwor6auU6IKy5LmL56qXIDwgd2luZG93XC1vblwtc3BvcnRzOwor5pu45a+r6Kqe6KiAIDwgd3JpdHRlblwtbGFuZ3VhZ2U7CivjmpwgPCB3aXRoXC1ncmVhdFwtcG93ZXI7CivjmpcgPCB3aXRoXC1hXC1iaWdcLW1vdXRoOwor45qHIDwgZHJhd1wtdGhlXC1mZWV0XC11cDsKK+OZniA8IGFcLXNtYWxsXC1tb3VudGFpbjsKK+OZjiA8IGJyZWFjaFwtb2ZcLWFcLXRhbms7CivjmYUgPCBhXC13YWxsZWRcLXZpbGlhZ2U7CivjmYAgPCBhXC12ZWdldGFibGVcLXBsb3Q7Civjl7sgPCBiYWJ5JydzXC1hbnN3ZXJpbmc7Civjl5kgPCB0b1wtc2hvdXRcLW9yXC1iYXdsOwor45WtIDwgdG9cLWJhcmtcLWFzXC1hXC1kb2c7CivjlakgPCBzb3VuZFwtb2ZcLXRhcHBpbmc7Civlronlvr0gPCBhbmh1aVwtXChwcm92aW5jZVwpOwor45WHIDwgcm9ja3NcLWNvbGxhcHNpbmc7CivjlJEgPCBhblwtaW5jaXNlZFwtd291bmQ7CivllYbmpa3ljJYgPCB0b1wtY29tbWVyY2lhbGl6ZTsKK+OSrSA8IGFuXC1lbGRlclwtYnJvdGhlcjsKK+OSgSA8IG9mXC1ncmVhdFwtc3RhdHVyZTsKK+ermeWPsCA8IHJhaWx3YXlcLXBsYXRmb3JtOwor5YWx5Lqr5bi25a+sIDwgc2hhcmVkXC1iYW5kd2lkdGg7CivjkIAgPCBoaWxsb2NrXC1vclwtbW91bmQ7CivmlofljJbpmpznpJkgPCBjdWx0dXJhbFwtYmFycmllcjsKK+ebtOaOpeW9semfvyA8IGRpcmVjdFwtaW5mbHVlbmNlOwor6IiH5q2k5ZCM5pmCIDwgYXRcLXRoZVwtc2FtZVwtdGltZTsKK+S4u+imgeS+hua6kCA8IHByaW5jaXBsZVwtc291cmNlOwor5Lq65rCR5YWs56S+IDwgcGVvcGxlJydzXC1jb21tdW5lOwor542y55uKIDwgb2J0YWluXC1hXC1iZW5lZml0Owor5LiL6Z2i6KuL55yLIDwgcGxlYXNlXC1zZWVcLWJlbG93Owor5LuK5piUIDwgcGFzdFwtYW5kXC1wcmVzZW50Owor5p2/5qCXIDwgY2hpbmVzZVwtY2hlc3RudXQ7CivlkLjnrqEgPCBcKGRyaW5raW5nXClcLXN0cmF3Owor5a625YuZIDwgaG91c2Vob2xkXC1kdXRpZXM7Civph5Hono3poqjms6IgPCBmaW5hbmNpYWxcLWNyaXNpczsKK+mWi+W5leW8jyA8IG9wZW5pbmdcLWNlcmVtb255Owor5a+m57+S55SfIDwgaW50ZXJuXC1cKHN0dWRlbnRcKTsKK+awkemWkyA8IGFtb25nXC10aGVcLXBlb3BsZTsKK+WpmuemriA8IHdlZGRpbmdcLWNlcmVtb255Owor6K2m6KGbIDwgXChzZWN1cml0eVwpXC1ndWFyZDsKK+efpeitmOW3peeoi+W4qyA8IGtub3dsZWRnZVwtd29ya2VyOwor5ZyL6LOT6aSoIDwgc3RhdGVcLWd1ZXN0aG91c2U7Civkub7mna8gPCB0b1wtZHJpbmtcLWFcLXRvYXN0Owor54y/54y0IDwgYXBlc1wtYW5kXC1tb25rZXlzOwor57ay57Wh5Y2U6K2wIDwgbmV0d29ya1wtcHJvdG9jb2w7CivkuKbmv4AgPCBzaHVudFwtZXhjaXRhdGlvbjsKK+mHj+e2sSA8IGRpbWVuc2lvblwtXCh1bml0XCk7Civos6rllY8gPCBcKGFza1wtYVwpXC1xdWVzdGlvbjsKK+iSkOmbhiA8IHRvXC1nYXRoZXJcLVwoZGF0YVwpOwor5LiJ5Y2D5Yiw5LqU5Y2D6JCsIDwgMzBcLXRvXC01MFwtbWlsbGlvbjsKK+S4jeiHs+aWvCA8IGNhbm5vdFwtZ29cLXNvXC1mYXI7CivmmpHnmJ8gPCB0cm9waWNhbFwtZGlzZWFzZTsKK+WNmuimvSA8IHJlYWRcLWV4dGVuc2l2ZWx5Owor5rex5YWlIDwgcGVuZXRyYXRlXC1kZWVwbHk7CivkuLnmoYIgPCBvcmFuZ2VcLW9zbWFudGh1czsKK+adv+WjgSA8IHdvb2RlblwtcGFydGl0aW9uOwor5p+Q5Lq6IDwgYVwtY2VydGFpblwtcGVyc29uOwor5pyI5puGIDwgbW9udGhseVwtY2FsZW5kYXI7Civmsrvnl4UgPCB0cmVhdFwtYW5cLWlsbG5lc3M7CivljYHoqqEgPCB0ZW5cLWNvbW1hbmRtZW50czsKK+eZveiho+aIsOWjqyA8IHdhcnJpb3JcLWluXC13aGl0ZTsKK+WuieWmguejkOefsyA8IGFzXC1zb2xpZFwtYXNcLXJvY2s7CivlpJbplbcgPCBmb3JlaWduXC1taW5pc3RlcjsKK+eZvuWIhum7niA8IHBlcmNlbnRhZ2VcLXBvaW50Owor6YWN6JelIDwgZGlzcGVuc2VcLVwoZHJ1Z3NcKTsKK+WKn+iDvembhiA8IGZ1bmN0aW9uXC1saWJyYXJ5Owor5a2X5LiyIDwgY2hhcmFjdGVyXC1zdHJpbmc7CivmlYXpmpzmjpLpmaQgPCBmYXVsdFwtcmVzb2x1dGlvbjsKK+mHkeiejeaUuemdqSA8IGZpbmFuY2lhbFwtcmVmb3JtOwor5LiA5YCL5Lit5ZyL5pS/562WIDwgb25lXC1jaGluYVwtcG9saWN5Owor5YyW5a245oiwIDwgY2hlbWljYWxcLXdhcmZhcmU7CivlpKflpJrmlbggPCBcKGdyZWF0XClcLW1ham9yaXR5Owor5aSn6YG4IDwgZ2VuZXJhbFwtZWxlY3Rpb247CivllJDku6MgPCB0aGVcLXRhbmdcLWR5bmFzdHk7CivmgKfnl4UgPCB2ZW5lcmVhbFwtZGlzZWFzZTsKK+WQm+asiiA8IG1vbmFyY2hpYWxcLXBvd2VyOwor6ZuM5oCn5o6l5Y+jIDwgZmVtYWxlXC1jb25uZWN0b3I7Civol4/mlocgPCB0aWJldGFuXC1sYW5ndWFnZTsKK+W/g+iHn+enu+auliA8IGhlYXJ0XC10cmFuc3BsYW50Owor6I+P6Jit6KqeIDwgZHV0Y2hcLVwobGFuZ3VhZ2VcKTsKK+S4gOW5tOWkmiA8IG1vcmVcLXRoYW5cLWFcLXllYXI7CivpgZnmjqfmk43kvZwgPCByZW1vdGVcLW9wZXJhdGlvbjsKK+ewoeWWrueahOiqqiA8IHRvXC1wdXRcLWl0XC1zaW1wbHk7CivlhYnmjqXmlLblmaggPCBvcHRpY2FsXC1yZWNlaXZlcjsKK+apn+aisOiqnuiogCA8IG1hY2hpbmVcLWxhbmd1YWdlOwor6IOh5b+X5piO5biCIDwgaG9cLWNoaVwtbWluaFwtY2l0eTsKK+iugOeJqSA8IHJlYWRpbmdcLW1hdGVyaWFsOwor6YKK6ZiyIDwgZnJvbnRpZXJcLWRlZmVuY2U7CivlhbHlkozpu6ggPCByZXB1YmxpY2FuXC1wYXJ0eTsKK+iElumguOWFkiA8IGJhY2tcLW9mXC10aGVcLW5lY2s7CivlkJHmnbEgPCB0b3dhcmRzXC10aGVcLWVhc3Q7CivlpKfnhKHnlY8gPCB1dHRlcmx5XC1mZWFybGVzczsKK+mbhumMpiA8IGJlc3RcLW9mXC10aGVcLWJlc3Q7CivnvbfmlZkgPCB0ZWFjaGVyJydzXC1zdHJpa2U7CivlpJboqp4gPCBmb3JlaWduXC1sYW5ndWFnZTsKK+iqsuihqCA8IHNjaG9vbFwtdGltZXRhYmxlOwor6Kqk6KejIDwgbWlzdW5kZXJzdGFuZGluZzsKK+S4jeefpeaJgOS6kSA8IG5vdFwta25vd1wtd2hhdFwtc2I7CivkuI3lv5kgPCB0aGVyZScnc1wtbm9cLWh1cnJ5Owor6LaF6auY6YCfIDwgdWx0cmFcLWhpZ2hcLXNwZWVkOwor6ZuG6YO1IDwgc3RhbXBcLWNvbGxlY3Rpbmc7Civlu6DplbcgPCBmYWN0b3J5XC1kaXJlY3RvcjsKK+iuiuazlSA8IHBvbGl0aWNhbFwtcmVmb3JtOwor5rOi5oqYIDwgdHdpc3RzXC1hbmRcLXR1cm5zOwor576k5bO2IDwgZ3JvdXBcLW9mXC1pc2xhbmRzOwor5aSq6Zm95b6u57O757Wx5YWs5Y+4IDwgc3VuXC1taWNyb3N5c3RlbXM7Civoga/luK3mnIPorbAgPCBqb2ludFwtY29uZmVyZW5jZTsKK+S6pOaPm+e2sui3ryA8IHN3aXRjaGVkXC1uZXR3b3JrOwor54qv5rOVIDwgdG9cLWJyZWFrXC10aGVcLWxhdzsKK+S4jeWwkSA8IG5vdFwtXChqdXN0XClcLWFcLWZldzsKK+W5tOm9oSA8IFwoYVwtcGVyc29uJydzXClcLWFnZTsKK+aAp+aOpeinuCA8IHNleHVhbFwtZW5jb3VudGVyOwor5q+U57+8IDwgZmx5XC13aW5nXC10b1wtd2luZzsKK+mqqOW5uee2sui3ryA8IGJhY2tib25lXC1uZXR3b3JrOwor6Luf5Lu25LyB5qWtIDwgc29mdHdhcmVcLWNvbXBhbnk7Civmi7/miYvoj5wgPCBzcGVjaWFsdHlcLVwoZGlzaFwpOwor5pa95rSX57SE57+wIDwgam9oblwtdGhlXC1iYXB0aXN0Owor56We5aWHIDwgbWFnaWNhbFwtbXlzdGljYWw7CivnpoHlk4EgPCBjb250cmFiYW5kXC1nb29kczsKK+WwvOW4jOexs+iomCA8IGJvb2tcLW9mXC1uZWhlbWlhaDsKK+Wgsee0meWgseWwjiA8IG5ld3NwYXBlclwtcmVwb3J0Owor5pyA5YWIIDwgXCh0aGVcKVwtdmVyeVwtZmlyc3Q7CivmmI7mt6ggPCBicmlnaHRcLWFuZFwtY2xlYW47Civph43mhbYgPCBjaG9uZ3FpbmdcLVwoY2l0eVwpOwor5amG5amGIDwgaHVzYmFuZCcnc1wtbW90aGVyOwor5LqS5pON5oCnIDwgaW50ZXJvcGVyYWJpbGl0eTsKK+WQg+WujCA8IHRvXC1maW5pc2hcLWVhdGluZzsKK+mAvOi/kSA8IHByZXNzXC1vblwtdG93YXJkczsKK+WgsemkqCA8IG5ld3NwYXBlclwtb2ZmaWNlOwor6Zu757qcIDwgXChlbGVjdHJpY1wpXC1jYWJsZTsKK+WKn+iDvee+pCA8IGZ1bmN0aW9uYWxcLWdyb3VwOwor54uA5oWLIDwgc3RhdGVcLW9mXC1hZmZhaXJzOwor5Lit5LuLIDwgYWdlbnRcLVwoY29tcHV0ZXJcKTsKK+S4jeWFiSA8IG5vdFwtdGhlXC1vbmx5XC1vbmU7CivmmpHlpKkgPCBob3RcLVwoc3VtbWVyXClcLWRheTsKK+WPjeWwjSA8IHRvXC1maWdodFwtYWdhaW5zdDsKK+S4jeS5hSA8IG5vdFwtbG9uZ1wtXChhZnRlclwpOwor6Zui6ZaL5YyX5LqsIDwgdG9cLWxlYXZlXC1iZWlqaW5nOwor5LiA6Lyp5a2QIDwgXChmb3JcKVwtYVwtbGlmZXRpbWU7CivnnaggPCBsb29rXC1hc2thbmNlXC1hdDsKK+aAjiA8IHdoYXRcP1wtd2h5XD9cLWhvd1w/Owor5pS2IDwgZ2F0aGVyXC10b2dldGhlcjsKK+WFmiA8IHBvbGl0aWNhbFwtcGFydHk7CivniYggPCBwcmludGluZ1wtYmxvY2tzOwor5a2jIDwgcXVhcnRlclwtb2ZcLXllYXI7CivniaEgPCBtYWxlXC1vZlwtYW5pbWFsczsKK+iouiA8IGV4YW1pbmVcLXBhdGllbnQ7Civlp5EgPCBmYXRoZXInJ3NcLXNpc3RlcjsKK+ikkyA8IHN3YWRkbGluZ1wtY2xvdGg7CivppoYgPCBwdWJsaWNcLWJ1aWxkaW5nOwor5ry/IDwgYW55XC10aGlja1wtZmx1aWQ7Civpm4QgPCBtYWxlXC1vZlwtc3BlY2llczsKK+S6vyA8IGh1bmRyZWRcLW1pbGxpb247Civlm7ogPCB0b1wtYmVjb21lXC1zb2xpZDsKK+a6qiA8IG1vdW50YWluXC1zdHJlYW07CivomZ4gPCBjb25jZXJuZWRcLWFib3V0Owor5ZeaIDwgc291bmRcLW9mXC1jcnlpbmc7CivolocgPCBvc211bmRhXC1yZWdhbGlzOwor5oiPIDwgdGhlYXRyaWNhbFwtcGxheTsKK+WPrCA8IGltcGVyaWFsXC1kZWNyZWU7CivnkZ4gPCBmZWxpY2l0b3VzXC1vbWVuOwor6ayiIDwgaGFpclwtb25cLXRlbXBsZXM7Civlg6cgPCBidWRkaGlzdFwtcHJpZXN0Owor5qqcIDwgY2hpbmVzZVwtY3lwcmVzczsKK+aqjiA8IHNtYWxsXC1yZWRcLWFwcGxlOwor6amFIDwgc3B1clwtYVwtaG9yc2VcLW9uOwor6IefIDwgaW50ZXJuYWxcLW9yZ2FuczsKK+WcsyA8IGZ1cnJvd1wtaW5cLWZpZWxkOwor57m7IDwgZmluZVwtc2lsa1wtZ3VhemU7CivlrZ8gPCBmaXJzdFwtaW5cLXNlcmllczsKK+e4iyA8IGNsaW1iXC1kb3duXC1yb3BlOwor6ZakIDwgc21hbGxcLXNpZGVcLWRvb3I7Civmlo4gPCB2ZWdldGFyaWFuXC1kaWV0Owor55uvIDwgcml2ZXRcLWdhemVcLXVwb247Civnsp8gPCB1bmh1c2tlZFwtbWlsbGV0Owor57GQIDwgY2xpbWJpbmdcLXBsYW50czsKK+aOuyA8IHNjcmF0Y2hcLWxpZ2h0bHk7Civkv5ggPCBwcmlzb25lclwtb2ZcLXdhcjsKK+aMviA8IGNsYXNwXC11bmRlclwtYXJtOwor5aqzIDwgZGF1Z2h0ZXJcLWluXC1sYXc7CivlrpkgPCB0aW1lXC1hc1wtY29uY2VwdDsKK+WNnCA8IGZvcnR1bmVcLXRlbGxpbmc7CivluJYgPCBpbnZpdGF0aW9uXC1jYXJkOwor6YCeIDwgaW5kdWxnZVwtb25lc2VsZjsKK+aPqiA8IGdyYXNwXC13aXRoXC1oYW5kOwor5LuRIDwgbG9naWNhbFwtcmVhc29uczsKK+eFniA8IG1hbGlnbmFudFwtZGVpdHk7Civps4wgPCBodWdlXC1zZWFcLXR1cnRsZTsKK+eeqSA8IHdhdGNoXC1jYXJlZnVsbHk7CivnlpogPCBjaHJvbmljXC1kaXNlYXNlOwor6JSTIDwgY3JlZXBpbmdcLXBsYW50czsKK+mqjyA8IGV4Y2VsbGVudFwtaG9yc2U7Civpl70gPCBmdWppYW5cLXByb3ZpbmNlOwor6KKFIDwgY3VybGluZ1wtdXB3YXJkczsKK+i+kCA8IHNwb2tlc1wtb2ZcLXdoZWVsOwor55CJIDwgc3BhcmtsaW5nXC1zdG9uZTsKK+iInCA8IGxlZ2VuZGFyeVwtcnVsZXI7CivovacgPCBjcnVzaFwtYnlcLXdlaWdodDsKK+a7hyA8IHl1bm5hblwtcHJvdmluY2U7CivmoZMgPCB2YXJpZXR5XC1vZlwtdHJlZTsKK+ajoCA8IGNyYWJcLWFwcGxlXC10cmVlOwor5ZCuIDwgc3Vja1wtd2l0aFwtbW91dGg7CivonLcgPCBjcmVlcFwtbGlrZVwtd29ybTsKK+aetyA8IGNhbmd1ZVwtc2NhZmZvbGQ7CivnvrIgPCBhbmNpZW50XC1lbXBlcm9yOwor5a2aIDwgYnJvb2RcLW92ZXJcLWVnZ3M7CivnmpEgPCBicmlsbGlhbnRcLXdoaXRlOwor57ylIDwgbGlnaHRcLWJsdWVcLXNpbGs7Civor4wgPCBwbGF5XC13aXRoXC13b3JkczsKK+azviA8IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+injiA8IGRlc2lyZVwtc3Ryb25nbHk7CivnjrogPCBpbXBlcmlhbFwtc2lnbmV0Owor5Y2eIDwgdG9cLWJlXC1pbXBhdGllbnQ7CivovpQgPCBicmlkbGVcLW9mXC1ob3JzZTsKK+i2lCA8IG5vdFwtcHJvZ3Jlc3Npbmc7CivlvpwgPCB3YWxraW5nXC1hbmRcLWZybzsKK+iNoCA8IHdhdGVyXC1jaGVzdG51dHM7CivmsZ4gPCBlbGVtZW50XC1tZXJjdXJ5Owor55W/IDwgaW1wZXJpYWxcLWRvbWFpbjsKK+iIgiA8IGdyaW5kXC1pblwtbW9ydGFyOwor57G0IDwgcHVyY2hhc2VcLWdyYWluczsKK+epsCA8IHN0YWxrc1wtb2ZcLWdyYWluOwor5ZeEIDwgaG9hcnNlXC1vZlwtdm9pY2U7CivmuJogPCBzbWFsbFwtc2FuZFwtYmFuazsKK+egnSA8IGJhbGFuY2VcLXdlaWdodHM7CivmnbwgPCBzaHV0dGxlXC1vZlwtbG9vbTsKK+m+gyA8IGlycmVndWxhclwtdGVldGg7Civli5AgPCBpbXBlcmlhbFwtZGVncmVlOwor55+4IDwgYVwtcm9ja1wtb3JcLWNsaWZmOwor6JWoIDwgcHRlcmlzXC1hcXVpbGluYTsKK+ixiSA8IGZlcm1lbnRlZFwtYmVhbnM7Civlvq0gPCBjb25zY3JpcHRcLWxhYm9yOwor6bqIIDwgc3BlY2llc1wtb2ZcLWRlZXI7CivolaQgPCBkcm9vcGluZ1wtbGVhdmVzOwor57uhIDwgcmF3XC1zaWxrXC1mYWJyaWM7CivoiqggPCBuYW1lXC1vZlwtYVwtcGxhbnQ7Civoi6MgPCBraW5kXC1vZlwtbGV0dHVjZTsKK+eimyA8IHNhbmRcLWFuZFwtZ3JhdmVsOwor6I6SIDwgaGVtcFwtbGlrZVwtcGxhbnQ7CivokIEgPCBraW5kXC1vZlwtZ3Jhc3NlczsKK+echCA8IHRvXC1sb29rXC1hc2thbmNlOwor5ZufIDwgdG9wXC1vZlwtdGhlXC1oZWFkOwor5bKjIDwgYVwtaGlsbFwtaW5cLWh1bmFuOwor5Ze+IDwgdG9cLXNldFwtYVwtZG9nXC1vbjsKK+iNnCA8IHNwZWNpZXNcLW9mXC1iZWFuOwor57OBIDwgYVwtZ3JhaW5cLW9mXC1yaWNlOwor57KdIDwgdW5wb2xpc2hlZFwtcmljZTsKK+ijsCA8IHRvXC1tZW5kXC1jbG90aGVzOwor6JaoIDwgZGVhdGhcLW9mXC1wcmluY2U7CivojJEgPCB0aGVcLWNvbnZvdnVsdnVzOwor57+uIDwgc3RlbVwtb2ZcLWZlYXRoZXI7CivoiZ8gPCBhbmNpZW50XC13YXJzaGlwOwor6byvIDwgZmx5aW5nXC1zcXVpcnJlbDsKK+egqSA8IG5hbWVcLW9mXC1hXC1zdG9uZTsKK+eCuyA8IGFcLWtpbmRcLW9mXC1jaGluYTsKK+aqqyA8IHNhc3NhZnJhc1wtdHp1bXU7Civni7QgPCBhXC1raW5kXC1vZlwtdGFwaXI7Civpq5jmlYjnjocgPCBoaWdoXC1lZmZpY2llbmN5Owor5aSp54i2IDwgaGVhdmVubHlcLWZhdGhlcjsKK+W5vuS5juWujOWFqCA8IGFsbW9zdFwtZW50aXJlbHk7CivnibnlvrUgPCBjaGFyYWN0ZXJpc3RpY3M7Civkv6Hmga/mmYLku6MgPCBpbmZvcm1hdGlvblwtYWdlOwor5pqR5YGHIDwgc3VtbWVyXC12YWNhdGlvbjsKK+aTuuiEqyA8IGJyZWFrXC1hd2F5XC1mcm9tOwor5Y2K5pW4IDwgaGFsZlwtdGhlXC1udW1iZXI7CivlhrDpnJwgPCBtb3JhbFwtaW50ZWdyaXR5Owor5Yu75rqcIDwgZXZlblwtYW5kXC1zbW9vdGg7Civljp/lp5QgPCB0aGVcLXdob2xlXC1zdG9yeTsKK+eUouWTgee2k+eQhiA8IHByb2R1Y3RcLW1hbmFnZXI7Civos4fmlpnpj4jntZDlsaQgPCBkYXRhXC1saW5rXC1sYXllcjsKK+i7jeS6i+WogeiEhSA8IG1pbGl0YXJ5XC10aHJlYXQ7Civnibnlr6sgPCBmZWF0dXJlXC1hcnRpY2xlOwor5pil5aSpIDwgc3ByaW5nXC1cKHNlYXNvblwpOwor57ay6Lev5pyN5YuZIDwgbmV0d29ya1wtc2VydmljZTsKK+eglOeptuS4reW/gyA8IHJlc2VhcmNoXC1jZW50ZXI7CivmraLnl5sgPCB0b1wtcmVsaWV2ZVwtcGFpbjsKK+WJjeS4jeS5hSA8IG5vdFwtbG9uZ1wtYmVmb3JlOwor5Y+b5LqCIDwgYXJtZWRcLXJlYmVsbGlvbjsKK+aWh+aqlCA8IFwoY29tcHV0ZXJcKVwtZmlsZTsKK+W0h+aLnOWEgOW8jyA8IHdvcnNoaXBcLXNlcnZpY2U7Civnt6znlLggPCBteWFubWFyXC1cKGJ1cm1hXCk7CivmlrnoiIjmnKroib4gPCB0b1wtYmVcLXVuZm9sZGluZzsKK+mbmemCiuiyv+aYkyA8IGJpbGF0ZXJhbFwtdHJhZGU7CivlpLHmnJsgPCBiZVwtZGlzYXBwb2ludGVkOwor6LuN5LqL6YOo6ZaAIDwgbWlsaXRhcnlcLWJyYW5jaDsKK+e2suermSA8IG5ldHdvcmtcLXN0YXRpb247CivpmaTmraTkuYvlpJYgPCBhcGFydFwtZnJvbVwtdGhpczsKK+WkqumZveWFrOWPuCA8IHN1blwtY29ycG9yYXRpb247CivlpJblnIvos4fmnKwgPCBmb3JlaWduXC1jYXBpdGFsOwor6ZaL6ZaAIDwgb3BlblwtXCh0aGVcKVwtZG9vcjsKK+eUn+eUoumaiiA8IHByb2R1Y3Rpb25cLXRlYW07CivntpPnrqEgPCBiZVwtaW5cLWNoYXJnZVwtb2Y7CivnlKjmiLbnt5ogPCBzdWJzY3JpYmVyXC1saW5lOwor576O5ZyL5Lq6IDwgYW1lcmljYW5cLXBlcnNvbjsKK+WNiuWkqSA8IGhhbGZcLW9mXC10aGVcLWRheTsKK+iqnuaXjyA8IGxhbmd1YWdlXC1icmFuY2g7CivlvoDlubQgPCBpblwtZm9ybWVyXC15ZWFyczsKK+aXpeWgsSA8IGRhaWx5XC1uZXdzcGFwZXI7CivlhYnpm7sgPCBvcHRvXC1lbGVjdHJpY2FsOwor55m96ZC1IDwgZ2FsdmFuaXplZFwtaXJvbjsKK+mbheatjCA8IHNvbmdcLW9mXC1zb2xvbW9uOwor5b285bK4IDwgdGhlXC1vdGhlclwtc2hvcmU7CivphY3lkIggPCBjb29yZGluYXRlXC13aXRoOwor5aCx57O7IDwgbmV3c3BhcGVyXC1jaGFpbjsKK+ixkOWvjOWkmuW9qSA8IHJpY2hseVwtY29sb3JmdWw7CivmqJnph48gPCBzY2FsYXJcLXF1YW50aXR5Owor5Y2X5YyXIDwgbm9ydGhcLWFuZFwtc291dGg7Civmr5TlrrkgPCBzcGVjaWZpY1wtdm9sdW1lOwor55yL5LiK5Y67IDwgaXRcLXdvdWxkXC1hcHBlYXI7Civnm4jomacgPCBwcm9maXRcLWFuZFwtbG9zczsKK+WLuOWwjiA8IHRyeVwtdG9cLWNvbnZpbmNlOwor6Zmj54efIDwgZ3JvdXBcLW9mXC1wZW9wbGU7Civlub7nmb4gPCBzZXZlcmFsXC1odW5kcmVkOwor5aSn5a+rIDwgY2FwaXRhbFwtbGV0dGVyczsKK+mBjua0uyA8IGxpdmVcLW9uZScnc1wtbGlmZTsKK+eJjOS9jSA8IG1lbW9yaWFsXC10YWJsZXQ7Civml6nkupsgPCBcKGFcLWJpdFwpXC1lYXJsaWVyOwor6Kqy5aSWIDwgZXh0cmFjdXJyaWN1bGFyOwor6Zu2562J5b6F54uA5oWLIDwgemVyb1wtd2FpdFwtc3RhdGU7CivmlLbmi74gPCB0b1wtcHV0XC1pblwtb3JkZXI7CivkuI3nmb3kuYvlhqQgPCB1bnJpZ2h0ZWRcLXdyb25nOwor57ay5q61IDwgbmV0d29ya1wtc2VnbWVudDsKK+W8n+W8nyA8IHlvdW5nZXJcLWJyb3RoZXI7CivpgbLml6kgPCBzb29uZXJcLW9yXC1sYXRlcjsKK+aIkuWCmeajruWatCA8IGhlYXZpbHlcLWd1YXJkZWQ7Civnn67lsI8gPCBzaG9ydFwtYW5kXC1zbWFsbDsKK+WNiumAlOiAjOW7oiA8IGdpdmVcLXVwXC1oYWxmd2F5Owor5q+U5YO5IDwgcHJpY2VcLXJlbGF0aW9uczsKK+m+kSA8IGhpZ2hcLWFuZFwtYnJpZ2h0Owor5paw5Lu7IDwgbmV3bHlcLWFwcG9pbnRlZDsKK+mcuOS9lCA8IGZvcmNpYmx5XC1vY2N1cHk7CivpvJUgPCByYXR0bGVcLW9mXC1kcnVtczsKK+W5vuWNgeWEhCA8IHNldmVyYWxcLWJpbGxpb247Civnl4XprZQgPCBzZXJpb3VzXC1pbGxuZXNzOwor5bi455SoIDwgaW5cLWNvbW1vblwtdXNhZ2U7CivlhrDno5ogPCBpY2VcLWNyZWFtXC1icmljazsKK+m0kiA8IHNwZWNpZXNcLW9mXC1sYXJrOwor55m96I+cIDwgY2hpbmVzZVwtY2FiYmFnZTsKK+m0giA8IHRoZVwtdGFpbG9yXC1iaXJkOwor6bO7IDwgdGhlXC13aWxkXC1waWdlb247Civps5MgPCBjaGluZXNlXC1oZXJyaW5nOwor6bGhIDwgdGhlXC1jdXR0bGVcLWZpc2g7CivpsYUgPCBhXC1raW5kXC1vZlwtdGVuY2g7CivkuI3lvoXoqqogPCBuZWVkbGVzc1wtdG9cLXNheTsKK+aJuemHj+eUn+eUoiA8IHRvXC1tYXNzXC1wcm9kdWNlOwor6a2wIDwgdGhlXC1mbHlpbmdcLWZpc2g7CivlnKjlvojlpJrmlrnpnaIgPCBpblwtbWFueVwtYXNwZWN0czsKK+mrviA8IHRhaWxcLW9mXC1hXC1jb21ldDsKK+mrtCA8IGRpc2hldmVsZWRcLWhhaXI7Civmk43kvZzpgJ/njocgPCBvcGVyYXRpbmdcLXNwZWVkOwor5by35YqgIDwgaW1wb3NlXC1ieVwtZm9yY2U7CivpqJggPCBhXC1waWViYWxkXC1ob3JzZTsKK+mlhyA8IHRvXC1lYXRcLXRvb1wtbXVjaDsKK+miuyA8IGZsb2F0aW5nXC1pblwtYWlyOwor6aKuIDwgc3Rvcm1cLXdoaXJsd2luZDsKK+WkluS6iyA8IGZvcmVpZ25cLWFmZmFpcnM7Civoga/lkIjnmbzooaggPCBqb2ludFwtc3RhdGVtZW50Owor6YKK5ZywIDwgYm9yZGVyXC1kaXN0cmljdDsKK+mfniA8IGFuXC1vcmFuZ2VcLWNvbG9yOwor6Z60IDwgc2FkZGxlXC11cFwtaG9yc2U7CivpnbggPCBhXC1jaGlsZCcnc1wtc2hvZXM7Civpm7EgPCBzbm93aW5nXC1oZWF2aWx5Owor6IiM6Z2iIDwgYmxhZGVcLW9mXC10b25ndWU7CivlibXoqJjpjIQgPCB0b1wtc2V0XC1hXC1yZWNvcmQ7CivokZfkvZwgPCBhXC1saXRlcmFyeVwtd29yazsKK+eZveexsyA8IFwocG9saXNoZWRcKVwtcmljZTsKK+eAleiHqCA8IG9uXC10aGVcLXZlcmdlXC1vZjsKK+S4jeWujOWFqOiRiSA8IGluY29tcGxldGVcLWxlYWY7Civpgbjllq4gPCBcKHNvZnR3YXJlXClcLW1lbnU7Civln7fms5UgPCBsYXdcLWVuZm9yY2VtZW50Owor6Y6kIDwgc291bmRcLW9mXC1hXC1iZWxsOwor5LiN5ZCN5pW4IDwgYWJzdHJhY3RcLW51bWJlcjsKK+mAsuWxlSA8IHRvXC1tYWtlXC1oZWFkd2F5Owor54K65q2kIDwgZm9yXC10aGlzXC1yZWFzb247Civphr4gPCB1bmZpbHRlcmVkXC13aW5lOwor5qC45Y+N5oeJ5aCGIDwgbnVjbGVhclwtcmVhY3RvcjsKK+e2k+a/n+aUuemdqSA8IGVjb25vbWljXC1yZWZvcm07CivphLkgPCBuYW1lXC1vZlwtYVwtc3RhdGU7Civlu6Dlj7IgPCBmYWN0b3J5XC1oaXN0b3J5Owor5YWJ56OBIDwgbWFnbmV0b1wtb3B0aWNhbDsKK+mamOWPoyA8IFwobW91bnRhaW5cKVwtcGFzczsKK+e2suWdgCA8IFwoaW50ZXJuZXRcKVwtc2l0ZTsKK+eVq+mdoiA8IFwocGljdHVyZVwpXC1mcmFtZTsKK+iPnOWcsCA8IHZlZ2V0YWJsZVwtZmllbGQ7CivnlZzpoZ4gPCBkb21lc3RpY1wtYW5pbWFsOwor6LqAIDwgdG9cLXN0dW1ibGVcLW92ZXI7CivnuL3ntpPnkIYgPCBnZW5lcmFsXC1tYW5hZ2VyOwor6LauIDwgZWFzaWx5XC1wcm92b2tlZDsKK+WNiuWjgeaxn+WxsSA8IGhhbGZcLW9mXC1jb3VudHJ5Owor5oqx6aSKIDwgYWRvcHRcLVwoYVwtY2hpbGRcKTsKK+WfjuaokyA8IGNpdHlcLWdhdGVcLXRvd2VyOwor6KuhIDwgcG9zdGh1bW91c1wtbmFtZTsKK+aOoeeoriA8IHNlZWRcLWNvbGxlY3Rpbmc7Civkv4Tlt7TlupXkup7mm7ggPCBib29rXC1vZlwtb2JhZGlhaDsKK+iokiA8IGhlc2l0YXRlXC10b1wtc2F5Owor5Y+k5YW46Z+z5qiCIDwgY2xhc3NpY2FsXC1tdXNpYzsKK+iKseeZvSA8IGdyaXp6bGVkXC1cKGhhaXJcKTsKK+S4jeWPr+WkmuW+lyA8IGhhcmRcLXRvXC1jb21lXC1ieTsKK+ilvCA8ICcna2ltb25vJydcLXNsZWV2ZTsKK+iljCA8IHVubGluZWRcLWdhcm1lbnQ7CivopKcgPCB1bmxpbmVkXC1jbG90aGVzOwor6YeN5paw6ZaL5aeLIDwgcmVzdW1lXCxcLXJlc3RhcnQ7CivlsY3pq5QgPCBcKGxpZmVsZXNzXClcLWJvZHk7CivlnJbnsL0gPCBcKGNvbXB1dGVyXClcLWljb247Civlt7TmnJsgPCBsb29rXC1mb3J3YXJkXC10bzsKK+iemiA8IGVyaXN0YWxpc1wtdGVuYXg7CivlsaTpm7IgPCBzdHJhdHVzXC1cKGNsb3VkXCk7Civmlbjnmb7okKwgPCBzZXZlcmFsXC1taWxsaW9uOwor5ou86LW35L6GIDwgdG9cLXB1dFwtdG9nZXRoZXI7CivnsYznorwgPCBiYXJnYWluaW5nXC1jaGlwOwor6Je2IDwgYVwta2luZFwtb2ZcLXBsYW50Owor6JWiIDwgZWRpYmxlXC1hbWFyYW50aDsKK+iVjSA8IGFsaXNtYVwtcGxhbnRhZ3M7CivolL4gPCBraW5kXC1vZlwtYnJhbWJsZTsKK+iSqCA8IGx1c2hcLXZlZ2V0YXRpb247CivokpMgPCBhblwtZWRpYmxlXC13YXRlcjsKK+mbu+WtkOmDteS7tiA8IGVsZWN0cm9uaWNcLW1haWw7CivpmY3lg7kgPCBwcmljZVwtcmVkdWN0aW9uOwor6JGRIDwgdGhlXC1yYXBlXC10dXJuaXA7CivnsbPnsonogokgPCByaWNlXC1mbG91clwtbWVhdDsKK+aomeaogSA8IFwobWFya2luZ1wpXC1zdGFrZTsKK+mWieacgyA8IGNsb3NlXC1hXC1tZWV0aW5nOwor6ImFIDwgYVwtZGVzcGF0Y2hcLWJvYXQ7CivntJTlsawgPCBwdXJlXC1hbmRcLXNpbXBsZTsKK+WFieamriA8IGhvbm9yXC1hbmRcLWdsb3J5Owor6IWiIDwgdGhlXC1jb2xsYXJcLWJvbmU7CivovqblrbggPCB0b1wtcnVuXC1hXC1zY2hvb2w7CivmqJnmnYYgPCBzdXJ2ZXlvcicnc1wtcG9sZTsKK+W5o+WItiA8IGN1cnJlbmN5XC1zeXN0ZW07CivloLHliLAgPCByZXBvcnRcLWZvclwtZHV0eTsKK+e9vyA8IG5ldFwtY2F0Y2hcLWJpcmRzOwor57aT5r+f5YmN6YCUIDwgZWNvbm9taWNcLWZ1dHVyZTsKK+W5tOS7vSA8IHBhcnRpY3VsYXJcLXllYXI7Civlt6XoroDlrbjmoKEgPCB0aGVcLXJlZm9ybWF0b3J5Owor5Z+65ZywIDwgXChtaWxpdGFyeVwpXC1iYXNlOwor5Zq06YeN6Zec5YiHIDwgc2VyaW91c1wtY29uY2VybjsKK+WFieaYjiA8IGJyaWdodFwtXChmdXR1cmVcKTsKK+mrmOaKgOihkyA8IGhpZ2hcLXRlY2hub2xvZ3k7Civkv53ph4sgPCByZWxlYXNlXC1vblwtYmFpbDsKK+e1jSA8IHRvXC1sYXlcLXRoZVwtd2FycDsKK+e2k+a/n+WNseapnyA8IGVjb25vbWljXC1jcmlzaXM7CivlsITpoLsgPCByYWRpb1wtZnJlcXVlbmN5Owor5YuV5oWL5Yqp6KmeIDwgYXNwZWN0XC1wYXJ0aWNsZTsKK+mWiemfs+evgCA8IGNsb3NlZFwtc3lsbGFibGU7CivnsJQgPCBhXC1jb2F0XC1yYWluY29hdDsKK+evsCA8IGFcLWJhbWJvb1wtYmFza2V0Owor6ayl54itIDwgc3RydWdnbGVcLVwod2l0aFwpOwor6KOh5qC5IDwgXChyb25hbGRcKVwtcmVhZ2FuOwor56mEIDwgcGFuaWNsZWRcLW1pbGxldDsKK+emiyA8IG9mZmVyXC1zYWNyaWZpY2U7Civno6ogPCBhXC1oaWdoXC1tb3VudGFpbjsKK+aatOi3s+WmgumbtyA8IHN0YW1wXC13aXRoXC1mdXJ5Owor5oqX6KGhIDwgY29udGVuZFwtYWdhaW5zdDsKK+e0muWIpSA8IFwobWlsaXRhcnlcKVwtcmFuazsKK+ethuiqpCA8IGFcLXNsaXBcLW9mXC1hXC1wZW47Civlhavlr7YgPCBlaWdodFwtdHJlYXN1cmVzOwor55m+5bm0IDwgYVwtaHVuZHJlZFwteWVhcnM7Civku6Xopb/ntZDmm7ggPCBib29rXC1vZlwtZXpla2llbDsKK+aRmOWAnyA8IHRvXC1ib3Jyb3dcLW1vbmV5Owor5YyW5a245q2m5ZmoIDwgY2hlbWljYWxcLXdlYXBvbjsKK+eYiCA8IHByb2xvbmdlZFwtZmV2ZXI7CivnmIMgPCBzb3Jlc1wtZnJvbVwtY29sZDsKK+eXviA8IGNocm9uaWNcLWlsbG5lc3M7Civnl7UgPCBhXC1oZWFydFwtc3ltcHRvbTsKK+eXriA8IGFcLXN3ZWxsZWRcLWJlbGx5Owor55egIDwgYWNoaW5nXC1vZlwtbGltYnM7Civnl4EgPCBjaHJvbmljXC1tYWxhcmlhOwor55WsIDwgcmVjbGFpbWVkXC1maWVsZDsKK+mVt+WumCA8IHNlbmlvclwtb2ZmaWNpYWw7CivomZvpm7vot68gPCB2aXJ0dWFsXC1jaXJjdWl0Owor55m76KiY55So5oi2IDwgcmVnaXN0ZXJlZFwtdXNlcjsKK+eoruaXj+S4u+e+qeiAhSA8IHJhY2lzdFwtXChwZXJzb25cKTsKK+eQrSA8IGphZGVcLWxpa2VcLXN0b25lOwor5b6e5Y675bm0IDwgc2luY2VcLWxhc3RcLXllYXI7Civnj6cgPCBtb3RoZXJcLW9mXC1wZWFybDsKK+WFpeWigyA8IGVudGVyXC1hXC1jb3VudHJ5Owor54+HIDwgY2FydmluZ1wtb25cLWphZGU7CivlmrTph43llY/poYwgPCBzZXJpb3VzXC1wcm9ibGVtOwor6IeC57SXIDwgXChibGFja1wpXC1hcm1iYW5kOwor546fIDwgc3RyZWFrc1wtaW5cLWphZGU7Civnlbbli5nkuYvmgKUgPCB1cmdlbnRcLXByaW9yaXR5Owor542xIDwgYVwta2luZFwtb2ZcLW90dGVyOwor6LuN5qChIDwgbWlsaXRhcnlcLXNjaG9vbDsKK+eLqyA8IG5hbWVcLW9mXC1hXC10cmliZTsKK+i7n+S7tuezu+e1sSA8IHNvZnR3YXJlXC1zeXN0ZW07CivniYQgPCB0b1wtd2Fsa1wtcmFwaWRseTsKK+eGkyA8IHRoZVwtYmFua1wtYVwtZmlyZTsKK+eEtSA8IHRvXC10ZW1wZXJcLXN0ZWVsOwor5oqK6Ii1IDwgaG9sZFwtdGhlXC1ydWRkZXI7Civoj7Llvovos5MgPCB0aGVcLXBoaWxpcHBpbmVzOwor6KKr5o2VIDwgYmVcLXVuZGVyXC1hcnJlc3Q7CivngJ4gPCBwb29sXC1pblwtYVwtcml2ZXI7CivmvZkgPCByaXZlclwtaW5cLXNoYW54aTsKK+e2sue1oeeAj+imveWZqCA8IG5ldHdvcmtcLWJyb3dzZXI7Civmu44gPCBjb3VudHlcLWluXC1oZW5hbjsKK+acrOaXj+iqniA8IG5hdGl2ZVwtbGFuZ3VhZ2U7Civms6kgPCByaXNpbmdcLW9mXC13YXRlcjsKK+izvOeJqeS4reW/gyA8IHNob3BwaW5nXC1jZW50ZXI7CivmspogPCBpc2xldFwtaW5cLXN0cmVhbTsKK+eZvuWNgSA8IGFcLWh1bmRyZWRcLW9yXC1zbzsKK+WdkOWlvSA8IHRvXC1zaXRcLXByb3Blcmx5Owor57WG6IWz55+zIDwgc3R1bWJsaW5nXC1ibG9jazsKK+aEn+afk+iAhSA8IGluZmVjdGVkXC1wZXJzb247CivlpJrmqKPljJYgPCBkaXZlcnNpZmljYXRpb247CivmpqEgPCBxdWVyY3VzXC1kZW50YXRhOwor5aOB5aOY5qOu5Zq0IDwgY2xvc2VseVwtZ3VhcmRlZDsKK+akuiA8IGJlYW1cLW9mXC1hXC1ob3VzZTsKK+e2sueuoeWToSA8IG5ldHdvcmtcLW1hbmFnZXI7CivluJbmkpLnvoXlsLzov6blvozmm7ggPCAyXC10aGVzc2Fsb25pYW5zOwor6Yym6ZueIDwgZ29sZGVuXC1waGVhc2FudDsKK+afjiA8IGNhbHl4XC1vZlwtZmxvd2VyOwor5p+BIDwgbGFyZ2VcLXRpZVwtYmVhbXM7CivmnqwgPCBhblwtZXZlblwtZ3JhaW5lZDsKK+iHquauuiA8IHRvXC1raWxsXC1vbmVzZWxmOwor5pyjIDwgdGhlXC1yaXNpbmdcLW1vb247Civnkarmi4nln7rmm7ggPCBib29rXC1vZlwtbWFsYWNoaTsKK+mrmOaYgiA8IGluXC1oaWdoXC1zcGlyaXRzOwor6LK/5piT5aSl5Ly0IDwgdHJhZGluZ1wtcGFydG5lcjsKK+epv+mBjiA8IHRvXC1wYXNzXC10aHJvdWdoOwor5YKZ5oiwIDwgcHJlcGFyZVwtZm9yXC13YXI7CivmnIjku73mnIPorbAgPCBtb250aGx5XC1tZWV0aW5nOwor5pG7IDwgYVwtZGVsaWNhdGVcLWhhbmQ7CivlronouqsgPCBtYWtlXC1vbmUnJ3NcLWhvbWU7CivmuLjoqqogPCBkcnVtXC11cFwtc3VwcG9ydDsKK+iHs+aWvCA8IGdvXC1zb1wtZmFyXC1hc1wtdG87CivmiIQgPCB0b1wtYmVcLWluXC1hd2VcLW9mOwor56CU56m25aCx5ZGKIDwgcmVzZWFyY2hcLXJlcG9ydDsKK+WFiOmAsuatpuWZqCA8IGFkdmFuY2VkXC13ZWFwb247CivnlJ/niakgPCBsaXZpbmdcLWNyZWF0dXJlOwor5oi257GNIDwgY2Vuc3VzXC1yZWdpc3RlcjsKK+Wkp+eZvOmbt+mchiA8IGV4dHJlbWVseVwtYW5ncnk7CivlvqwgPCB0b1wtd2FuZGVyXC1hYm91dDsKK+W8tCA8IHJlZFwtbGFjcXVlclwtYm93Owor576O5ZyL5pS/5bqcIDwgdVwuc1wuXC1nb3Zlcm5tZW50Owor5qCh6IiNIDwgc2Nob29sXC1idWlsZGluZzsKK+W3uSA8IG51cHRpYWxcLXdpbmVjdXA7CivkuI3lubLmtokgPCBub25pbnRlcmZlcmVuY2U7CivlloToia8gPCBnb29kXC1hbmRcLWhvbmVzdDsKK+W1jiA8IG1vdW50YWluXC1yZWNlc3M7Civkup7niL7nmbzlkozlpafnsbPliqAgPCBhbHBoYVwtYW5kXC1vbWVnYTsKK+WzniA8IGhpZ2hcLWFuZFwtdW5ldmVuOwor5aGe54i+54m56KqeIDwgY2VsdGljXC1sYW5ndWFnZTsKK+aguOatpuW6qyA8IG51Y2xlYXJcLWFyc2VuYWw7CivlrqLmiLbmqZ/ou5/ku7YgPCBjbGllbnRcLXNvZnR3YXJlOwor5o6q6L6t5by356GsIDwgc3Ryb25nbHlcLXdvcmRlZDsKK+i7jeWCmSA8IFwobWlsaXRhcnlcKVwtYXJtczsKK+mmluiFpiA8IGhlYWRcLVwob2ZcLXN0YXRlXCk7CivlronokawgPCBidXJ5XC1cKHRoZVwtZGVhZFwpOwor6Ieq5YuV5ZSu6LKo5qmfIDwgdmVuZGluZ1wtbWFjaGluZTsKK+WksiA8IGFkdmFuY2VcLXF1aWNrbHk7CivkuK3nvo7mtLIgPCBjZW50cmFsXC1hbWVyaWNhOwor5qW15YqbIDwgZG9cLWF0XC1hbGxcLWNvc3RzOwor6LeR5q2lIDwgdG9cLXdhbGtcLXF1aWNrbHk7CivlnbQgPCBhXC1jbG9kXC1vZlwtZWFydGg7CivllqMgPCB0b1wtYnJlYXRoZVwtdXBvbjsKK+WUsiA8IGZvcmNlZFwtbGF1Z2h0ZXI7Civlhazlj7jmnIPorbAgPCBjb21wYW55XC1tZWV0aW5nOwor6LK26KmeIDwgZGVyb2dhdG9yeVwtdGVybTsKK+S6kumAoyA8IGludGVyY29ubmVjdGlvbjsKK+WOnCA8IGFcLW1vdW50YWluXC1wZWFrOwor5aSp5Li75pWZIDwgY2F0aG9saWNcLWNodXJjaDsKK+WMiSA8IG5vaXNlXC1vZlwtd2F0ZXJzOwor5YyEIDwgdG9cLWJlZ1wtZm9yXC1hbG1zOwor5pS56K6K5b2i5YOPIDwgdHJhbnNmaWd1cmF0aW9uOwor5YqYIDwgbWFrZVwtaW50b1wtbWluY2U7CivmgrLps7QgPCB1dHRlclwtc2FkXC1jYWxsczsKK+a7v+aEjyA8IHRvXC1iZVwtc2F0aXNmaWVkOwor5rW36YGLIDwgc2hpcHBpbmdcLWJ5XC1zZWE7CivnlZnlrbggPCB0b1wtc3R1ZHlcLWFicm9hZDsKK+mHkeijoeWlhyA8IFwobmV3dFwpXC1naW5ncmljaDsKK+S+v+ainSA8IFwoaW5mb3JtYWxcKVwtbm90ZTsKK+WCvSA8IHRlcnJvclwtc3RyaWNrZW47CivnlJrmiJYgPCBzb1wtbXVjaFwtc29cLXRoYXQ7CivkvZQgPCBvY2N1cHlcLWJ5XC1mb3JjZTsKK+WxseWzsCA8IFwobW91bnRhaW5cKVwtcGVhazsKK+a6q+aflCA8IGdlbnRsZVwtYW5kXC1zb2Z0Owor5Lm4IDwgZmVtaW5pbmVcLXN1ZmZpeDsKK+mrmOS4rSA8IGhpZ2hcLWFuZFwtbWlkZGxlOwor55m+5YWS5YWr5Y2BIDwgYWJvdXRcLWFcLWh1bmRyZWQ7CivluJbmkpLnvoXlsLzov6bliY3mm7ggPCAxXC10aGVzc2Fsb25pYW5zOwor5LahIDwgc291bmRcLW9mXC1iaXRpbmc7Civkto4gPCBzb3VuZFwtb2ZcLWJyZWF0aDsKK+iDg+eXhSA8IHN0b21hY2hcLXRyb3VibGU7CivktL4gPCB0b1wtZ3JpbmRcLWJhcmxleTsKK+S0riA8IGNha2VzXC1wZlwtbGVhdmVuOwor5aSa5qih5YWJ57qWIDwgbXVsdGltb2RlXC1maWJlcjsKK+WQjOm9oSA8IG9mXC10aGVcLXNhbWVcLWFnZTsKK+i7n+S7tuW4guWgtCA8IHNvZnR3YXJlXC1tYXJrZXQ7CivmoKHlnJLpqqjlubkgPCBjYW1wdXNcLWJhY2tib25lOwor5K+EIDwgYVwtcGllYmFsa1wtaG9yc2U7Civkrr0gPCBiaXRcLWZvclwtYVwtaG9yc2U7CivkrrUgPCBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrrEgPCBhXC1raW5kXC1vZlwtYmVhc3Q7CivkrqcgPCBsb25nXC1oYWlyXC1ob3JzZTsKK+SuoiA8IGFcLXdhbGtpbmdcLWhvcnNlOwor5K6OIDwgYVwtcnVubmluZ1wtaG9yc2U7CivkrbwgPCBkYXJrXC1ibHVlXC1ob3JzZTsKK+SsqyA8IGNsYXJmaWVkXC1idXR0ZXI7CivkrIEgPCBhXC1saWdodFwtY3ljbG9uZTsKK+WQuOmfsyA8IHNvdW5kXC1hYnNvcmJpbmc7CivmspLmnInoga/nuasgPCB0b1wtYmVcLXVucmVsYXRlZDsKK+SqriA8IGJlYXV0aWZ1bFwtc291bmQ7CivkqpUgPCB0b1wtd3JhcFwtb3JcLWJhbmQ7CivkqbkgPCB0b1wtcmVwYWlyXC1zaG9lczsKK+SpkiA8IGRyZXNzZWRcLWxlYXRoZXI7CivpurvphokgPCB0b1wtYW5hZXN0aGV0aXplOwor5KmEIDwgdG9cLWZhY2VcLXRvXC1mYWNlOwor5KiiIDwgYVwtcGFzc2luZ1wtY2xvdWQ7CivkqJYgPCB0b1wtc3RvcFwtcmFpbmluZzsKK+SogCA8IHRvXC1sYXlcLWluXC1ncmFpbjsKK+SnryA8IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+e2sue1oeimj+WKg+S6uuWToSA8IG5ldHdvcmtcLXBsYW5uZXI7CivkpqsgPCBpbnNpZGVcLXRoZVwtZG9vcjsKK+aKleWllCA8IHRvXC1zZWVrXC1zaGVsdGVyOwor5KWXIDwgYVwtYnJhbmRpbmdcLWlyb247CivkpLEgPCBhXC1zb2xlbW5cLXBsZWRnZTsKK+SjtiA8IHVuc3RyYWluZWRcLXdpbmU7CivkvovmnIMgPCByZWd1bGFyXC1tZWV0aW5nOwor5YWx55Si6buoIDwgY29tbXVuaXN0XC1wYXJ0eTsKK+SipiA8IHRvXC1sZWFkXC10aGVcLXdheTsKK+SiliA8IHRvXC1iZVwtc2NhdHRlcmVkOwor5KKBIDwgdGlyZVwtb2ZcLWFcLXdoZWVsOwor5KG7IDwgc2hha2VcLW9mXC1hXC1jYXJ0Owor5KGoIDwgY29ubmVjdGVkXC1jYXJ0czsKK+mkheiCpSA8IGNha2VcLWZlcnRpbGl6ZXI7CivkoZAgPCB0b1wtbW92ZVwtc3dpZnRseTsKK+S4lueVjOacgOWkpyA8IHdvcmxkJydzXC1sYXJnZXN0Owor5KC1IDwgdG9cLXdlYXJcLWNsb3RoZXM7CivkoKggPCB3YWxraW5nXC1yYXBpZGx5Owor5bCW6Yqz5om56KmVIDwgc2hhcnBcLWNyaXRpY2lzbTsKK+S4jeimi+W+lyA8IG5vdFwtbmVjZXNzYXJpbHk7Civkna8gPCB0b1wtY2hhbmdlXC1oYW5kczsKK+SdkCA8IGFcLWNhc3RyYXRlZFwtaG9nOwor5JyEIDwgc2xvd1wtb25cLXRhbGtpbmc7Civkm7UgPCB0b1wtdGVhY2hcLW9yYWxseTsKK+SbnyA8IHdpbGRcLXN0YXRlbWVudHM7Civkm5QgPCB0b1wtaG9sZFwtaW5cLWhhbmQ7CivmmrTpm6ggPCB0b3JyZW50aWFsXC1yYWluOwor5JqmIDwgc2xhbnRlZFwtY29ybmVyczsKK+SapSA8IHRvXC1hZGp1c3RcLWFcLWJvdzsKK+SZuyA8IHRvXC1zdGVhbFwtYVwtbG9vazsKK+SZqCA8IHRvXC13cmFwXC1vclwtYmluZDsKK+SZnSA8IHVuZGVyXC1nYXJybWVudHM7Civkl74gPCBjb3JiaWN1bGFcLWxlYW5hOwor5Ja8IDwgdGhlXC1kdW5nXC1iZWV0bGU7CivklpkgPCBhXC1yZXN0aW5nXC10aWdlcjsKK+SWiSA8IHRvXC1yb2FyXC1vclwtaG93bDsKK+SVmSA8IHRvXC1zZXRcLWluXC1vcmRlcjsKK+SSjCA8IGRhcmtcLWJsdWVcLWNvbG9yOwor5I+yIDwgcHJvdHJ1ZGVkXC1ib25lczsKK+S+v+WutCA8IGluZm9ybWFsXC1kaW5uZXI7CivkjrMgPCBsb3NlXC1vZlwtdGhlXC1lYXI7CivkjokgPCB0b1wtd2Fsa1wtc3dpZnRseTsKK+S4iui/sCA8IGFib3ZlXC1tZW50aW9uZWQ7Civki7cgPCBhXC1raW5kXC1vZlwtdGhpY2s7CivkirUgPCB5b3VuZ1wtYW5kXC1zbWFsbDsKK+SKlyA8IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SKiSA8IHByZXNlcnZlZFwtZnJ1aXQ7CivkiacgPCBzb3VuZFwtb2ZcLWJhbWJvbzsKK+izgOW5tOeJhyA8IG5ld1wteWVhcicnc1wtY2FyZDsKK+SFtyA8IGFuXC1lYXJcLW9mXC1ncmFpbjsKK+SFsCA8IGFcLWtpbmRcLW9mXC1ncmFzczsKK+aomea6luWMliA8IHN0YW5kYXJkaXphdGlvbjsKK+SEriA8IGRhcmtcLXJpY2VcLXBsYW50Owor5ISVIDwgZ29kXC1vZlwtdGhlXC1sYW5kOwor6Zu76IWm57O757WxIDwgY29tcHV0ZXJcLXN5c3RlbTsKK+SDtyA8IGFcLWtpbmRcLW9mXC1zdG9uZTsKK+SDkiA8IHBvb3JcLWFuZFwtYmFycmVuOwor5IG0IDwga2VlcFwtb25cLWxvb2tpbmc7CivkgbMgPCB0b1wtbG9zZVwtb25lXC1leWU7Civlr6blvYggPCBsaXZlXC1hbW11bml0aW9uOwor6LKo5bmj5Y2x5qmfIDwgbW9uZXRhcnlcLWNyaXNpczsKK+SAiSA8IGZvb2RcLWNvbnRhaW5lcnM7Civjv7EgPCBkcnlcLWFuZFwtZGVjYXllZDsKK+O+qSA8IG1hbGlnbmFudFwtYm9pbHM7CivlhbHkuqvku6XlpKrntrLntaEgPCBzaGFyZWRcLWV0aGVybmV0Owor55Si5YC8IDwgdmFsdWVcLW9mXC1vdXRwdXQ7CivmmpfpgIHnp4vms6IgPCBtYWtlXC1leWVzXC1hdFwtc2I7Civkvb/mu7/mhI8gPCB0b1wtbWFrZVwtY29udGVudDsKK+elneizgCA8IHRvXC1jb25ncmF0dWxhdGU7CivjvJUgPCBwdWxwXC1vZlwtYVwtbWVsb247CivjvJQgPCBhXC1raW5kXC1vZlwtbWVsb247CivkuI3pj73pi7wgPCBzdGFpbmxlc3NcLXN0ZWVsOwor47yCIDwgYVwtY3JhY2tcLWluXC1qYWRlOwor47uNIDwgbmFtZVwtb2ZcLWFcLXN3b3JkOwor47qMIDwgZW5kbGVzc1wtYmFya2luZzsKK+S7peeCuiA8IGNvbnNpZGVyXC1cKHRoYXRcKTsKK+O5pyA8IGZveFwtbGlrZVwtYW5pbWFsOwor47ixIDwgaG9ybmxlc3NcLWNhdHRsZTsKK+O4qSA8IHRvXC1kZXNpc3RcLWFuXC1veDsKK+aguOW9iCA8IG51Y2xlYXJcLXdhcmhlYWQ7CivjuJEgPCBhXC1jb29raW5nXC1zdG92ZTsKK+WNsOW6puS6uiA8IGluZGlhblwtXChwZXJzb25cKTsKK+S4iuiqsiA8IHRvXC1hdHRlbmRcLWNsYXNzOwor5aWn6YGL5p2RIDwgb2x5bXBpY1wtdmlsbGFnZTsKK+O3jSA8IGFcLWNoZW1pY2FsXC10ZXJtOwor56ym5ZCIIDwgaW5cLWtlZXBpbmdcLXdpdGg7CivmioDlgIYgPCB0cmlja3lcLW1hbmV1dmVyOwor5pqX6YGp5oeJIDwgZGFya1wtYWRhcHRhdGlvbjsKK+aVuOS9jee2sui3ryA8IGRpZ2l0YWxcLW5ldHdvcms7Civjs78gPCByb2xsaW5nXC1iaWxsb3dzOwor47OXIDwgYmFua1wtb2ZcLWFcLXJpdmVyOwor47KUIDwgd29vbGVuXC10ZXh0aWxlczsKK+OxjiA8IGNhbm5vdFwtYmVcLWtub3duOwor47CsIDwgc2hvcnR3aW5kZWRuZXNzOwor47CXIDwgYVwta2luZFwtb2ZcLW1hcGxlOwor47CIIDwgbmljZVwtYW5kXC1wcmV0dHk7Civjr7EgPCBhblwtZW5sYXJnZWRcLWJhZzsKK+OvpCA8IHRoZVwtanVqdWJlXC10cmVlOwor46+UIDwgdG9cLWh1bGxcLWhlYXZpbHk7Civms7Doqp4gPCB0aGFpXC1cKGxhbmd1YWdlXCk7CivjrqEgPCB0b1wtbGlnaHRcLWFcLWZpcmU7Civlr7Xlo54gPCBzcG9pbFwtXChhXC1jaGlsZFwpOwor462kIDwgdGhlXC1jb252b2x2dWx1czsKK+S6pOeVjCA8IGNvbW1vblwtYm91bmRhcnk7CivomZvmk6zntrLntaEgPCB2aXJ0dWFsXC1uZXR3b3JrOwor5YWJ5piO5pel5aCxIDwgZ3VhbmdtaW5nXC1kYWlseTsKK+OroCA8IGFcLWtpbmRcLW9mXC13YXRlcjsKK+OqqyA8IHdpc2VcLWFuZFwtY2xldmVyOwor5q235Y+y5LmF6YGgIDwgYW5jaWVudFwtaGlzdG9yeTsKK+OnjiA8IGZvcmtlZFwtYnJhbmNoZXM7CivogIHnmb7lp5MgPCBvcmRpbmFyeVwtcGVvcGxlOwor46WeIDwgdG9cLXRoaW5rXC1kZWVwbHk7CivjpZsgPCB3aXRoXC1leHBlZGl0aW9uOwor46KeIDwgcm9vbXNcLWNvbm5lY3RlZDsKK+OijSA8IGFcLWxvbmdcLXZlcmFiZGFoOwor5aSr5aa75bqXIDwgZmFtaWx5XC1ydW5cLXNob3A7CivjobIgPCB0aWxlc1wtb25cLWFcLXJvb2Y7CivjoYAgPCByYWdnZWRcLWNsb3RoaW5nOwor45+UIDwgc3RlZXBcLWFuZFwtbG9mdHk7CivjnaUgPCBoYXZlXC1hXC1uaWdobWFyZTsKK+S4ieiQrCA8IHRoaXJ0eVwtdGhvdXNhbmQ7CivjnYUgPCB0b1wtZ2l2ZVwtc3Vja1wtdG87CivjnLIgPCB0b1wtaGF2ZVwtc3VycGx1czsKK+iyqOa6kCA8IHN1cHBseVwtb2ZcLWdvb2RzOwor45uwIDwgdG9cLW1hcnJ5XC1hXC13aWZlOwor45qmIDwgYVwtY2hhcm1pbmdcLWdpcmw7CivjmbwgPCBhXC1taWxpdGFyeVwtd2FsbDsKK+eql+W4mCA8IHdpbmRvd1wtY3VydGFpbnM7CivjmZcgPCBhXC1sdW1wXC1vZlwtZWFydGg7CivjmLogPCBjdWx0aXZhdGVkXC1sYW5kOwor5pyf56WoIDwgcHJvbWlzc29yeVwtbm90ZTsKK+OXvyA8IHRvXC1sYXVnaFwtbG91ZGx5Owor45WyIDwgdG9cLWdhZ1wtb3JcLWJyaWJlOwor45WYIDwgdG9cLXRha2VcLXBhcnRcLWluOwor45KfIDwgd2l0aFwtYVwtY2hhcm1pbmc7Civlj6Poqp4gPCBzcG9rZW5cLWxhbmd1YWdlOwor5pav5ouJ5aSr6KqeIDwgc2xhdmljXC1sYW5ndWFnZTsKK+engeeHnyA8IHByaXZhdGVseVwtb3duZWQ7CivlpJblnIvlhazlj7ggPCBmb3JlaWduXC1jb21wYW55Owor5a+S5YGHIDwgd2ludGVyXC12YWNhdGlvbjsKK+WTgOatjCA8IGFcLW1vdXJuZnVsXC1zb25nOwor5YWS5YyW6Z+7IDwgcmV0cm9mbGV4XC1maW5hbDsKK+eJvemAoyA8IFwoYmVcKVwtaW1wbGljYXRlZDsKK+aAp+ihjCA8IHNleHVhbFwtYWN0aXZpdHk7Civlrbjlo6sgPCBiYWNoZWxvclwtZGVncmVlOwor6LKg5pOUIDwgXChiZWFyXC1hXClcLWJ1cmRlbjsKK+WVhualreS4reW/gyA8IGJ1c2luZXNzXC1jZW50ZXI7CivkuIDnp5ggPCBmaXJzdFwtc2VjcmV0YXJ5Owor6Jel55O2IDwgbWVkaWNpbmVcLWJvdHRsZTsKK+aFmuaEpyA8IFwodG9cLWJlXClcLWFzaGFtZWQ7CivkurrmiY0gPCB0YWxlbnRlZFwtcGVyc29uOwor5LiN55SYIDwgdW5yZWNvbmNpbGVkXC10bzsKK+S4jeebuOS4iuS4iyA8IGVxdWFsbHlcLW1hdGNoZWQ7Civnj63lrZAgPCBvcmdhbml6ZWRcLWdyb3VwOwor5q+P6ZqUIDwgYXRcLWludGVydmFsc1wtb2Y7CivmhJvmiLQgPCBsb3ZlXC1hbmRcLWVzdGVlbTsKK+aEm+aIgCA8IGJlXC1pblwtbG92ZVwtd2l0aDsKK+apn+WvhuaWh+S7tiA8IHNlY3JldFwtZG9jdW1lbnQ7Civmna3lt54gPCBoYW5nemhvdVwtXChjaXR5XCk7CivllY/kuJYgPCB0b1wtYmVcLXB1Ymxpc2hlZDsKK+aCsuazoyA8IHdlZXBcLXdpdGhcLWdyaWVmOwor5rOV55CGIDwgbGVnYWxcLXByaW5jaXBsZTsKK+enqeW6jyA8IG9yZGVyXC1cKG9yZGVybHlcKTsKK+e2sue1oeaJk+WNsOapnyA8IG5ldHdvcmtcLXByaW50ZXI7CivlkI3niYcgPCBcKGJ1c2luZXNzXClcLWNhcmQ7Civml4XosrsgPCB0cmF2ZWxcLWV4cGVuc2VzOwor6LKh5ZyYIDwgZmluYW5jaWFsXC1ncm91cDsKK+aymeefsyA8IHNhbmRcLWFuZFwtc3RvbmVzOwor56aB5p6cIDwgZm9yYmlkZGVuXC1mcnVpdDsKK+mDtemBniA8IHRvXC1zZW5kXC1ieVwtbWFpbDsKK+adv+adv+WFreWNgeWbmyA8IHVuYWNjb21tb2RhdGluZzsKK+aekOWHuiA8IHRvXC1zZXBlcmF0ZVwtb3V0Owor56ys5LiA5YCL5bGk5qyhIDwgdGhlXC1maXJzdFwtc3RhZ2U7Civlhbfpq5ToqIjlioMgPCBhXC1jb25jcmV0ZVwtcGxhbjsKK+WllOilsiA8IGxvbmdcLXJhbmdlXC1yYWlkOwor5p2/5Yi3IDwgc2NydWJiaW5nXC1icnVzaDsKK+acjeW+niA8IG9iZXlcLVwoYW5cLW9yZGVyXCk7Civmlr3ooYwgPCB0b1wtcHV0XC1pblwtcGxhY2U7CivojqvlsLzljaHokIrmuqvmlq/ln7ogPCBtb25pY2FcLWxld2luc2t5Owor5paH5pu46JmV55CGIDwgd29yZFwtcHJvY2Vzc2luZzsKK+e9sOasviA8IFwoaW1wb3NlXC1hXClcLWZpbmU7Civpm4zpm4QgPCBtYWxlXC1hbmRcLWZlbWFsZTsKK+mCiumfsyA8IGxhdGVyYWxcLVwoc291bmRcKTsKK+avjeimqiA8IG1vdGhlclwtXChmb3JtYWxcKTsKK+acieiBr+e5qyA8IHRvXC1iZVwtY29ubmVjdGVkOwor56OB55ukIDwgXChjb21wdXRlclwpXC1kaXNrOwor6aCQ6Ziy5o6q5pa9IDwgcHJvdGVjdGl2ZVwtc3RlcDsKK+ekpualrSA8IG1pbmluZ1wtaW5kdXN0cnk7CivlhaznhLbooajnpLogPCB0b1wtc3RhdGVcLW9wZW5seTsKK+a1geWksSA8IGJlXC1kcmFpbmVkXC1hd2F5Owor5byV6LW3IDwgdG9cLWdpdmVcLXJpc2VcLXRvOwor8KOOtCA8IHN0dW1wXC1vZlwtYVwtdHJlZTsKK+itieeJqSA8IGV4aGliaXRcLVwobGVnYWxcKTsKK+e4q+ijnCA8IGRhcm5cLVwoY2xvdGhpbmdcKTsKK+e3qOmBuCA8IHNlbGVjdFwtYW5kXC1lZGl0Owor6LKg5YK157qN57qNIDwgaGVhdmlseVwtaW5cLWRlYnQ7Civlr6nliKTplbcgPCBwcmVzaWRpbmdcLWp1ZGdlOwor5LiK5a24IDwgdG9cLWdvXC10b1wtc2Nob29sOwor6aC75bi2IDwgZnJlcXVlbmN5XC1yYW5nZTsKK+aUv+imiyA8IHBvbGl0aWNhbFwtdmlld3M7CivmgrLlmIYgPCBzaWdoXC1tb3VybmZ1bGx5Owor5Y2K55SfIDwgaGFsZlwtYVwtbGlmZXRpbWU7CivljZrniakgPCBuYXR1cmFsXC1zY2llbmNlOwor57aT5r+f6auU5Yi2IDwgZWNvbm9taWNcLXN5c3RlbTsKK+S4jemBjueIvueIviA8IG1lcmVseVwtbWVkaW9jcmU7Civnm5zniYjogIUgPCBzb2Z0d2FyZVwtcGlyYXRlOwor5aSn6YOo5Lu9IDwgXChpblwpXC1sYXJnZVwtcGFydDsKK+a1geaEn+eXheavkiA8IGluZmx1ZW56YVwtdmlydXM7Civpg7XnpaggPCBcKHBvc3RhZ2VcKVwtc3RhbXA7CivmgbDlpb0gPCBhc1wtaXRcLXR1cm5zXC1vdXQ7CivmsKPmuqsgPCBhaXJcLXRlbXBlcmF0dXJlOwor55+u6IOWIDwgc2hvcnRcLWFuZFwtc3RvdXQ7Civoqp7ns7sgPCBsYW5ndWFnZVwtc3lzdGVtOwor6K6K5b2iIDwgYmVcLW91dFwtb2ZcLXNoYXBlOwor5Y2X5rW3IDwgc291dGhcLWNoaW5hXC1zZWE7CivlhrfmsKPmqZ8gPCBhaXJcLWNvbmRpdGlvbmVyOwor576O5YWDIDwgYW1lcmljYW5cLWRvbGxhcjsKK+S4luS6uiA8IFwoY29tbW9uXClcLXBlb3BsZTsKK+WQjeWWriA8IGxpc3RcLVwob2ZcLW5hbWVzXCk7Civpm7vno4EgPCBlbGVjdHJvbWFnbmV0aWM7CivmsJHmrIogPCBjaXZpbFwtbGliZXJ0aWVzOwor5pOa6KqqIDwgaXRcLWlzXC1zYWlkXC10aGF0Owor5Y6f5oCnIDwgb3JpZ2luYWxcLW5hdHVyZTsKK+ihm+eUn+WumOWToSA8IGhlYWx0aFwtb2ZmaWNpYWw7CivouoUgPCB3YWxrXC1jYXJlZnVsbHk7Civlt7QgPCBncmVhdGx5XC1kZXNpcmU7CivmnJ8gPCBwZXJpb2RcLW9mXC10aW1lOwor5Y+4IDwgdGFrZVwtY2hhcmdlXC1vZjsKK+eUpSA8IHNpc3Rlcicnc1wtY2hpbGQ7CivlsY8gPCBmb2xkaW5nXC1zY3JlZW47Civni5AgPCBzcGVjaWVzXC1vZlwtZm94Owor5rGJIDwgY2hpbmVzZVwtcGVvcGxlOwor5aa5IDwgeW91bmdlclwtc2lzdGVyOwor5LyBIDwgcGxhblwtYVwtcHJvamVjdDsKK+illiA8IG91dGVyXC1nYXJtZW50czsKK+WjgSA8IHBhcnRpdGlvblwtd2FsbDsKK+mfpiA8IHRhbm5lZFwtbGVhdGhlcjsKK+a9sCA8IGZsb29kaW5nXC1yaXZlcjsKK+ePoCA8IHByZWNpb3VzXC1zdG9uZTsKK+mUiyA8IHBvaW50XC1vZlwtc3BlYXI7Civkv5cgPCBzb2NpYWxcLWN1c3RvbXM7CivmqpAgPCBlYXZlc1wtb2ZcLWhvdXNlOwor6aqRIDwgcmlkZVwtaG9yc2ViYWNrOwor5Ye9IDwgY29ycmVzcG9uZGVuY2U7CivprY8gPCBraW5nZG9tXC1vZlwtd2VpOwor5p6aIDwgc3RhbGtcLW9mXC1zaHJ1YjsKK+S7siA8IG1pZGRsZVwtYnJvdGhlcjsKK+eQsyA8IGJlYXV0aWZ1bFwtamFkZTsKK+WHkSA8IHBpZWNlXC10b2dldGhlcjsKK+mDgSA8IHN3ZWV0XC1zbWVsbGluZzsKK+iKryA8IHBpdGhcLWZyb21cLXJ1c2g7CivnuJ4gPCB3aGl0ZVwtcmF3XC1zaWxrOwor5pesIDwgdGVuXC1kYXlcLXBlcmlvZDsKK+e2uiA8IGZpbmVcLXRoaW5cLXNpbGs7CivlpqggPCBpbnRlcmZlcmVcLXdpdGg7CivpqoQgPCBzcGlyaXRlZFwtaG9yc2U7CivmjrQgPCBib3hcLW9uZScnc1wtZWFyczsKK+WXryA8IGZpbmFsXC1wYXJ0aWNsZTsKK+WyrSA8IG1vdW50YWluXC1yaWRnZTsKK+a5mCA8IGh1bmFuXC1wcm92aW5jZTsKK+mKgyA8IGFuY2llbnRcLXdlYXBvbjsKK+mTriA8IGNsYW5naW5nXC1zb3VuZDsKK+iOuSA8IGx1c3Rlclwtb2ZcLWdlbXM7Civlg7sgPCBvdXRcLW9mXC10aGVcLXdheTsKK+a4uiA8IGVuZGxlc3NseVwtbG9uZzsKK+S9oyA8IGNvbW1pc3Npb25cLWZlZTsKK+WRmyA8IGNob2tlXC1ieVwtc21va2U7Civlh7AgPCBmZW1hbGVcLXBob2VuaXg7Civpl7ogPCBzbWFsbFwtZW50cmFuY2U7CivnvIAgPCBwYXRjaFwtdG9nZXRoZXI7CivnkosgPCBqYWRlXC1wbGF5dGhpbmc7Civmi7QgPCBiaW5kXC13aXRoXC1yb3BlOwor56enIDwgcmljZVwtc2VlZGxpbmdzOwor6JWDIDwgZm9yZWlnblwtdGhpbmdzOwor6YSCIDwgaHViZWlcLXByb3ZpbmNlOwor5qOxIDwgc3F1YXJlZFwtdGltYmVyOwor5qKXIDwgc3RlbVwtb2ZcLWZsb3dlcjsKK+iPsSA8IHdhdGVyXC1jaGVzdG51dDsKK+mVkSA8IHBvdW5kXC1zdGVybGluZzsKK+agqSA8IHNwZWNpZXNcLW9mXC1vYWs7Civnkp4gPCB1bnBvbGlzaGVkXC1nZW07Civpm68gPCBjbG91ZFwtcGF0dGVybnM7CivorrcgPCBzbG93XC1vZlwtc3BlZWNoOwor54uwIDwgZmllcmNlXC1sb29raW5nOwor5bOmIDwgbW91bnRhaW5cLXJhbmdlOwor5rmDIDwgc291bmRcLW9mXC13YXZlczsKK+idlyA8IGtpbmRcLW9mXC1sb2N1c3Q7CivnmpYgPCBhbmh1aVwtcHJvdmluY2U7CivphYsgPCBjaGllZlwtb2ZcLXRyaWJlOwor5aORIDwgYmVkXC1vZlwtdG9ycmVudDsKK+ezryA8IGdsdXRpbm91c1wtcmljZTsKK+eotyA8IGdvZFwtb2ZcLWNlcmVhbHM7Civlob4gPCB2aWxsYWdlXC1zY2hvb2w7Civni6kgPCB3aW50ZXJcLWh1bnRpbmc7CivmiI0gPCBkZWZlbmRcLWJvcmRlcnM7CivnkoAgPCBsdXN0cmVcLW9mXC1nZW1zOwor54mNIDwgd3JpdGluZ1wtdGFibGV0Owor6ZWMIDwgZW5ncmF2aW5nXC10b29sOwor6aWvIDwgZmFyZXdlbGxcLXBhcnR5Owor6bmCIDwgY2hpbmVzZVwtb3Jpb2xlOwor5ZuhIDwgb25lJydzXC1kYXVnaHRlcjsKK+a6nyA8IGRyaXp6bGluZ1wtcmFpbjsKK+mUjyA8IGtpbmRcLW9mXC1yYXBpZXI7CivlsZkgPCB0b1wtZWFzZVwtbmF0dXJlOwor546zIDwgdG9ydG9pc2VcLXNoZWxsOwor55GtIDwgYVwta2luZFwtb2ZcLWphZGU7CivmnYggPCBmb3JrXC1vZlwtYVwtdHJlZTsKK+WMkCA8IGZhbGxcLXByb3N0cmF0ZTsKK+egoyA8IGFcLXN0b25lXC1yb2xsZXI7Civpk6IgPCB1bml0XC1vZlwtd2VpZ2h0Owor6aqIIDwgdGVhbVwtb2ZcLWhvcnNlczsKK+WZsSA8IGxhdWdoXC1oZWFydGlseTsKK+ebsSA8IHdpZGVcLW9wZW5cLWV5ZXM7CivogIQgPCBlbGRlcmx5XC1wZXJzb247CivmppQgPCBiZXRlbFwtbnV0XC10cmVlOwor6K+kIDwgdG9cLWV4cG9zdHVsYXRlOwor6J2uIDwgdmVub21vdXNcLXNuYWtlOwor6aKNIDwgcml2ZXJcLWluXC1hbmh1aTsKK+alnSA8IG1lbGlhXC1qYXBvbmljYTsKK+idvCA8IGFcLW1vbGVcLWNyaWNrZXQ7CivojaogPCBhcm9tYXRpY1wtZ3Jhc3M7CivlqIwgPCBicm90aGVyJydzXC13aWZlOwor5pm3IDwgc2hhZG93c1wtb2ZcLXN1bjsKK+WXtSA8IHVzZWRcLWZvclwtc291bmQ7CivouIUgPCB0b1wtd2Fsa1wtYXJvdW5kOwor5o+GIDwgcHJpbWVcLW1pbmlzdGVyOwor54yVIDwgbWFjYWN1c1wtbW9ua2V5Owor5Y6dIDwgY3V0XC1vclwtZW5ncmF2ZTsKK+iRmiA8IG11bGJlcnJ5XC1mcnVpdDsKK+iAkiA8IGhhbmRsZVwtb2ZcLXBsb3c7Civkv4UgPCBvcm5hbWVudGFsXC1jYXA7Civoj70gPCBiZWFuc1wtYW5kXC1wZWFzOwor6Z6vIDwgc2FkZGxlXC1ibGFua2V0Owor6byQIDwgaW5jZW5zZVwtdHJpcG9kOwor6LCwIDwgYWNjdXNlXC1mYWxzZWx5Owor6aqxIDwgam9pbnRcLW9mXC1ib25lczsKK+ispiA8IHRcLXNwZWFrXC1zb2Z0bHk7Civno7QgPCBzdGVwc1wtb25cLWxlZGdlOwor5am6IDwgbmFtZVwtb2ZcLWFcLXN0YXI7CivloI0gPCBzaWRlXC1vZlwtYnJpZGdlOwor5qGrIDwgaG9yc2VcLWNoZXN0bnV0Owor5ry2IDwgaW5kZWNpcGhlcmFibGU7CivlraUgPCBvbmUnJ3NcLWNoaWxkcmVuOwor5rqxIDwgcml2ZXJcLWluXC1oZW5hbjsKK+m7pSA8IHRhdHRvb2luZ1wtZmFjZTsKK+i6kCA8IHRvXC1zdHJpZGVcLW92ZXI7Civoua8gPCBwYXdzXC1vZlwtYW5pbWFsOwor55uNIDwgd2hhdFw/XC13aHlcLW5vdFw/Owor5rqGIDwgcml2ZXJcLWluXC1odW5hbjsKK+ejsiA8IHRyaWRhY25hXC1naWdhczsKK+aYnSA8IGFcLWR1YWxcLXByb25vdW47Civmn70gPCB0eXBlXC1vZlwtd2lsbG93Owor57ysIDwgcGF0dGVybmVkXC1zaWxrOwor6am6IDwgbW91bnRlZFwtZXNjb3J0Owor6ZiKIDwgZ2F0ZVwtb2ZcLWhlYXZlbjsKK+iNqSA8IGFcLWtpbmRcLW9mXC13ZWVkOwor6IqOIDwgYVwta2luZFwtb2ZcLWhlcmI7Civpi4ggPCBzaWx2ZXJcLXBsYXRpbmc7CivpvoUgPCB0ZWV0aFwtcHJvdHJ1ZGU7CivmmaEgPCBsYXRlXC1hZnRlcm5vb247CivmqqAgPCBzdGFuZFwtZm9yXC1sYW1wOwor6YCtIDwgdG9cLWVzY2FwZVwtZnJvbTsKK+aTjeiqsiA8IG1pbGl0YXJ5XC1kcmlsbDsKK+S8iueUuOWckiA8IGdhcmRlblwtb2ZcLWVkZW47CivmiJDlk6HlnIsgPCBtZW1iZXJcLWNvdW50cnk7Civlhbfpq5TllY/poYwgPCBjb25jcmV0ZVwtaXNzdWU7CivljZTmnIMgPCBhblwtYXNzb2NpYXRpb247CivmlofniakgPCBjdWx0dXJhbFwtcmVsaWM7CivpgJroqIogPCBjb21tdW5pY2F0aW9uczsKK+WNseaIvyA8IGRlY3JlcGl0XC1ob3VzZTsKK+eJueW3pSA8IHNlY3JldFwtc2VydmljZTsKK+mbu+eHiCA8IGVsZWN0cmljXC1saWdodDsKK+mHo+mtmuiHuiA8IGRpYW95dVwtaXNsYW5kczsKK+WMl+altSA8IHRoZVwtbm9ydGhcLXBvbGU7CivopIfpn7vmr40gPCBjb21wb3VuZFwtZmluYWw7CivpoJDku5ggPCBwYXlcLWluXC1hZHZhbmNlOwor5ZyL6Ziy6aCQ566XIDwgZGVmZW5jZVwtYnVkZ2V0Owor5q665rCjIDwgbXVyZGVyb3VzXC1sb29rOwor56OB5aC0IDwgbWFnbmV0aWNcLWZpZWxkOwor6KOB5rib6LuN5YKZIDwgYXJtc1wtcmVkdWN0aW9uOwor54mZ5bqKIDwgYWx2ZW9sYXJcLXJpZGdlOwor5Y+D5YqgIDwgdG9cLXBhcnRpY2lwYXRlOwor5rCR5oSPIDwgcHVibGljXC1vcGluaW9uOwor5Ye65Y+j5ZWG5ZOBIDwgZXhwb3J0XC1wcm9kdWN0Owor5b6A5pelIDwgaW5cLWZvcm1lclwtZGF5czsKK+WLmOa4rCA8IHRvXC1pbnZlc3RpZ2F0ZTsKK+WGsOmHiyA8IFwob2ZcLW1pc2dpdmluZ3M7CivlpKfmqJMgPCBsYXJnZVwtYnVpbGRpbmc7CivmlLnpnanpgLLnqIsgPCByZWZvcm1cLXByb2Nlc3M7CivlhajnkIPos4foqIrntrIgPCB3b3JsZFwtd2lkZVwtd2ViOwor6JaE6IOO55O35ZmoIDwgZWdnc2hlbGxcLWNoaW5hOwor5oCq5Lq6IDwgc3RyYW5nZVwtcGVyc29uOwor54ef5qWtIDwgdG9cLWRvXC1idXNpbmVzczsKK+WhkeiGoCA8IHBsYXN0aWNcLWNlbWVudDsKK+aZmuS4iiA8IGluXC10aGVcLWV2ZW5pbmc7CivmlaPmraUgPCB0b1wtdGFrZVwtYVwtd2FsazsKK+itmOWIpSA8IHRvXC1kaXN0aW5ndWlzaDsKK+W5gOWkqumVtyA8IG92ZXJzaXplXC1mcmFtZTsKK+aTuuiVqeWQiueSsCA8IHN3aW5naW5nXC1yaW5nczsKK+WFqOeQg+awo+WAmSA8IGdsb2JhbFwtY2xpbWF0ZTsKK+WkseaOpyA8IG91dFwtb2ZcLWNvbnRyb2w7CivmlbjmnIggPCBzZXZlcmFsXC1tb250aHM7CivlvoDlvqkgPCB0b1wtcmVjaXByb2NhdGU7CivlsI3lpJbmlL/nrZYgPCBmb3JlaWduXC1wb2xpY3k7CivpnbbloLQgPCBzaG9vdGluZ1wtcmFuZ2U7Civns5bphosgPCBzd2VldFwtYW5kXC1zb3VyOwor5Ly055Sf5rCjIDwgYXNzb2NpYXRlZFwtZ2FzOwor5biz6JmfIDwgYWNjb3VudFwtbnVtYmVyOwor54iq5a2QIDwgXChhbmltYWwnJ3NcKVwtcGF3Owor5Yil566hIDwgbm9cLW1hdHRlclwtXCh3aG87CivpgLLooYzpgJrkv6EgPCB0b1wtY29tbXVuaWNhdGU7CivliKjnqIsgPCBwbGFuaW5nXC1sZW5ndGg7CivntKDoj5wgPCB2ZWdldGFibGVcLWRpc2g7CivkuI3lko7ml6LlvoAgPCBub3RcLWNlbnN1cmVcLXNiOwor6ZaL6LuKIDwgdG9cLWRyaXZlXC1hXC1jYXI7CivnhZnngasgPCBzbW9rZVwtYW5kXC1maXJlOwor6L2J6YGLIDwgdHJhbnNwb3J0YXRpb247Civlt6HoraYgPCBwb2xpY2VcLW9mZmljZXI7CivmoKHlnJLntrLntaEgPCBjYW1wdXNcLW5ldHdvcms7CivmlbjkvY3kv6HomZ8gPCBkaWdpdGFsXC1zaWduYWw7CivmlL7mmKAgPCBzaG93XC1cKGFcLW1vdmllXCk7CivniannkIblsaQgPCBwaHlzaWNhbFwtbGF5ZXI7Civoga/lkIjlnIsgPCB1bml0ZWRcLW5hdGlvbnM7Civoo73pgKAgPCB0b1wtbWFudWZhY3R1cmU7CivliKnnjocgPCBpbnRlcmVzdFwtcmF0ZXM7Civoi7HlnIvkurogPCBicml0aXNoXC1wZXJzb247CivnlJ/plbfmv4DntKAgPCBncm93dGhcLWhvcm1vbmU7Civnmb3nhrHljJYgPCB0dXJuXC13aGl0ZVwtaG90Owor5byx5bCPIDwgc21hbGxcLWFuZFwtd2VhazsKK+aVneWxoyA8IHdvcm5cLW91dFwtc2hvZXM7CivljYHkuIDmnIggPCBlbGV2ZW50aFwtbW9udGg7CivmjIfmj67kuK3lv4MgPCBjb21tYW5kXC1jZW50ZXI7Civnn67lrZAgPCBhXC1zaG9ydFwtcGVyc29uOwor5Y6f5a2Q5qC4IDwgYXRvbWljXC1udWNsZXVzOwor5oqK5YWE5byfIDwgc3dvcm5cLWJyb3RoZXJzOwor6YCf5rG6IDwgcXVpY2tcLWRlY2lzaW9uOwor6Zec56iFIDwgXChjdXN0b21zXClcLWR1dHk7Civnmb3omIcgPCBjb21tb25cLXBlcmlsbGE7Civmr5TlgLwgPCBzcGVjaWZpY1wtdmFsdWU7Civpm7voqbHnt5rot68gPCB0ZWxlcGhvbmVcLWxpbmU7Civln7rnnaMgPCBqZXN1c1wtXChjaHJpc3RcKTsKK+aOoui3ryA8IHRvXC1maW5kXC1hXC1wYXRoOwor6YGZ5o6nIDwgcmVtb3RlXC1jb250cm9sOwor5YyX5paX5pifIDwgdGhlXC1iaWdcLWRpcHBlcjsKK+mWi+eOqeeskSA8IHRvXC1wbGF5XC1hXC1qb2tlOwor6biOIDwgdGhlXC1tYW5nb1wtYmlyZDsKK+m2lyA8IGFcLWtpbmRcLW9mXC1oYXdrOwor5Lul5aSq57ay57Wh5bmAIDwgZXRoZXJuZXRcLWZyYW1lOwor6YGZ5oSfIDwgcmVtb3RlXC1zZW5zaW5nOwor55m96ImyIDwgd2hpdGVcLVwoY29sb3VyXCk7CivprqcgPCB0aGVcLXNoZWF0XC1maXNoOwor5pKl5qy+IDwgYWxsb2NhdGVcLWZ1bmRzOwor6ayYIDwgYmVhdXRpZnVsXC1oYWlyOwor6ayXIDwgaGVhZFwtb3JuYW1lbnRzOwor5bug5belIDwgZmFjdG9yeVwtd29ya2VyOwor6Kqe5rCj5Yqp6KmeIDwgbW9kYWxcLXBhcnRpY2xlOwor6auGIDwgc2hvdWxkZXJcLWJsYWRlOwor5q2j5aW9IDwganVzdFwtXChpblwtdGltZVwpOwor57SE5pu45Lqe6KiYIDwgYm9va1wtb2ZcLWpvc2h1YTsKK+aOouimliA8IHBheVwtYVwtdmlzaXRcLXRvOwor6aiMIDwgYVwtaG9yc2UnJ3NcLW1hbmU7CivppKEgPCBwYXN0cnlcLWZpbGxpbmc7CivppJcgPCBmb29kXC1pblwtdHJpcG9kOwor5byV5ZKOIDwgdGFrZVwtdGhlXC1ibGFtZTsKK+WvqeWIpOW4rSA8IGp1ZGdlbWVudFwtc2VhdDsKK+eZveeyieeXhSA8IHBvd2RlcnlcLW1pbGRldzsKK+WjgeWgsSA8IHdhbGxcLW5ld3NwYXBlcjsKK+aUueWWhCA8IHRvXC1tYWtlXC1iZXR0ZXI7CivntpPmv5/mnInmlYggPCBjb3N0XC1lZmZlY3RpdmU7CivloIXmsbrlkKboqo0gPCB0b1wtZmlybWx5XC1kZW55Owor6YCg5oiQIDwgdG9cLWJyaW5nXC1hYm91dDsKK+W5q+acgyA8IHNlY3JldFwtc29jaWV0eTsKK+mUqiA8IGFcLWtpbmRcLW9mXC10b29sOwor5pON5b+DIDwgdG9cLXdvcnJ5XC1hYm91dDsKK+mPtCA8IHRvXC1wbHVnXC1hXC1ob2xlOwor6Y6pIDwgbW91bHRcLXNhbWFyaXVtOwor5pu45a+r56ym6JmfIDwgd3JpdGluZ1wtc3ltYm9sOwor55m956iuIDwgdGhlXC13aGl0ZVwtcmFjZTsKK+mNhiA8IG1kXC1tZW5kZWxldml1bTsKK+mLqSA8IHBvaW50XC1vZlwtc3dvcmQ7Civpi4MgPCBsb2NrXC1sYW50aGFudW07Civoo5znvLogPCBmaWxsXC1hXC12YWNhbmN5Owor5Y+k5biM6IeYIDwgYW5jaWVudFwtZ3JlZWNlOwor6KW/5q2QIDwgd2VzdGVyblwtZXVyb3BlOwor5Lit5ZyL5Lq6IDwgY2hpbmVzZVwtcGVyc29uOwor6YCV5bqtIDwgdmVyeVwtZGlmZmVyZW50Owor5Y2h57SN57at5ouJ54i+6KeSIDwgY2FwZVwtY2FuYXZlcmFsOwor6KOc57a0IDwgbWVuZFwtXChjbG90aGVzXCk7CivkuI3nn6XmrbvmtLsgPCBhY3RcLXJlY2tsZXNzbHk7Civnm6PnnaPkurogPCBzdXBlcmludGVuZGVudDsKK+mbhuS4rSA8IHRvXC1jb25jZW50cmF0ZTsKK+mAqSA8IHRvXC1ydW5cLXF1aWNrbHk7CivpgbLliLAgPCB0b1wtYXJyaXZlXC1sYXRlOwor6Ly2IDwgbGlnaHRcLWNhcnJpYWdlOwor5rOi576F55qE5rW3IDwgdGhlXC1iYWx0aWNcLXNlYTsKK+i2uSA8IGtpY2tcLXdpdGhcLWhvb2Y7CivloLHlvqkgPCBtYWtlXC1yZXByaXNhbHM7CivnnJ/mg4UgPCByZWFsXC1zaXR1YXRpb247CivmoYzpnaLns7vntbEgPCBkZXNrdG9wXC1zeXN0ZW07CivmnbHljZfkup7lnIsgPCBzb3V0aGVhc3RcLWFzaWE7Civlt6jmtYEgPCBzdHJvbmdcLWN1cnJlbnQ7CivosaMgPCBwaWdcLW9mXC0zXC15ZWFyczsKK+ixliA8IGFcLXNoYWNrbGVkXC1waWc7CivpgIDlrbggPCB0b1wtcXVpdFwtc2Nob29sOwor6K6FIDwga25vd1wtaW5cLWRldGFpbDsKK+W7ieWDuSA8IGNoZWFwbHlcLXByaWNlZDsKK+Wwj+Wei+S8gealrSA8IHNtYWxsXC1idXNpbmVzczsKK+ipqCA8IGtpbmRcLW9mXC1jaWNhZGE7CivpoIbluo/mlbggPCBvcmRpbmFsXC1udW1iZXI7Civnl4XomZ8gPCBzaWNrXC1wZXJzb25uZWw7CivlnJjntZAgPCBcKGhvbGRcLWFcKVwtcmFsbHk7CivopIkgPCBzaG9ydFwtZ2FybWVudHM7CivlnI3nuZ4gPCByZXZvbHZlXC1hcm91bmQ7Civov5HlubQgPCByZWNlbnRcLXllYXJcKHNcKTsKK+ihgiA8IHRvXC1iZVwtZGVmZWF0ZWQ7CivooIIgPCBwb2Rpc21hXC1taWthZG87Civon7MgPCBhXC1raW5kXC1vZlwtY3JhYjsKK+ifrSA8IHZlcnlcLXNtYWxsXC1idWc7CivlgJLplokgPCB0b1wtZ29cLWJhbmtydXB0Owor6J6sIDwgZ3J1YnNcLWluXC1mcnVpdDsKK+WGt+aIsCA8IFwodGhlXClcLWNvbGRcLXdhcjsKK+icjiA8IG1vc3F1aXRvXC1sYXJ2YTsKK+izh+aWmeS7i+mdoiA8IGRhdGFcLWludGVyZmFjZTsKK+iZgCA8IG1pbmNlZFwtcGlja2xlczsKK+iWsyA8IG5hbWVcLW9mXC1hXC1oZXJiOwor6JaYIDwgcGxhbnRhZ29cLW1ham9yOwor5YO555uuIDwgXChtYXJrZWRcKVwtcHJpY2U7Civok68gPCBtZWRpY2luYWxcLWhlcmI7Civok48gPCBmcnVpdFwtb2ZcLXBsYW50Owor6JGlIDwgcnVidXNcLXBhbG1hdHVzOwor55eF6ISIIDwgYWJub3JtYWxcLXB1bHNlOwor5LiN5oCO6bq85qijIDwgbm90XC11cFwtdG9cLW11Y2g7CivmvLjoroogPCBncmFkdWFsXC1jaGFuZ2U7CivojJ4gPCBmcmFncmFudFwtcGxhbnQ7CivpnZ7luLjph43opoEgPCB2ZXJ5XC1pbXBvcnRhbnQ7CivntIDlv7UgPCB0b1wtY29tbWVtb3JhdGU7CivplovmnIMgPCBoYXZlXC1hXC1tZWV0aW5nOwor6Yar5a245bCI5a62IDwgbWVkaWNhbFwtZXhwZXJ0Owor6IqIIDwgYmxlYXRcLW9mXC1zaGVlcDsKK+WFiOmAsuawtOW5syA8IGFkdmFuY2VkXC1sZXZlbDsKK+WNgOWfn+e2sui3r+aKgOihkyA8IGxhblwtdGVjaG5vbG9neTsKK+WFqOaZryA8IHBhbm9yYW1pY1wtdmlldzsKK+WIgOWPiSA8IGtuaWZlXC1hbmRcLWZvcms7CivohKYgPCB1c2VkXC1pblwtJydsZWRlJyc7CivpgKPpjpblj43mh4kgPCBjaGFpblwtcmVhY3Rpb247CivnibnliKXmhJ/orJ0gPCBzcGVjaWFsXC10aGFua3M7Civkurrlo73kv53pmqogPCBsaWZlXC1pbnN1cmFuY2U7CivluIPluJsgPCBjbG90aFwtYW5kXC1zaWxrOwor5om+6YyiIDwgdG9cLWdpdmVcLWNoYW5nZTsKK+ijnOa2siA8IGZsdWlkXC1pbmZ1c2lvbjsKK+i1t+m7niA8IHN0YXJ0aW5nXC1wb2ludDsKK+WwseaYr+iqqiA8IGluXC1vdGhlclwtd29yZHM7CivloLHliIYgPCBjYWxsXC10aGVcLXNjb3JlOwor5pWZ6IKy55WMIDwgYWNhZGVtaWNcLXdvcmxkOwor5oy656uLIDwgdG9cLXN0YW5kXC1lcmVjdDsKK+S4jeW5s+etieainee0hCA8IHVuZXF1YWxcLXRyZWF0eTsKK+WFq+aIkCA8IGVpZ2h0eVwtcGVyY2VudDsKK+WFqeaJiyA8IGRvdWJsZVwtdGFjdGljczsKK+e1nCA8IGFcLW1hcmtpbmdcLWxpbmU7CivmjqHmsrkgPCBvaWxcLWV4dHJhY3Rpb247CivntL4gPCB0dXJuc1wtb3JcLXR3aXN0Owor57O6IDwgdG9cLWNvbGxhYm9yYXRlOwor6Leo6LaKIDwgdG9cLXN0ZXBcLWFjcm9zczsKK+i3kemBkyA8IGF0aGxldGljXC10cmFjazsKK+S4jeaVoueVtiA8IHlvdVwtZmxhdHRlclwtbWU7CivnsasgPCBiYW1ib29cLXV0ZW5zaWw7CivnrawgPCByZWVkXC1vZlwtYVwtbG9vbTsKK+WWmOS4jemBjuawo+S+hiA8IGNhbm5vdFwtYnJlYXRoZTsKK+aPoeaLsyA8IHRvXC1tYWtlXC1hXC1maXN0Owor5Ymv57i957WxIDwgdmljZVwtcHJlc2lkZW50Owor55Sa6Iez5pa8IDwgc29cLW11Y2hcLVwodGhhdFwpOwor5o+h5omLIDwgdG9cLXNoYWtlXC1oYW5kczsKK+eorSA8IHN0YWxrXC1vZlwtZ3JhaW47Civnsr7lubIgPCBjcmFja1wtXCh0cm9vcHNcKTsKK+mVt+W+gSA8IHRoZVwtbG9uZ1wtbWFyY2g7Civnl4Xnl5sgPCBzbGlnaHRcLWlsbG5lc3M7CivkuI3lubPooaEgPCBkaXNlcXVpbGlicml1bTsKK+egoiA8IHBpbGVcLW9mXC1zdG9uZXM7Civnn4kgPCBhblwtYW5ncnlcLWdsYXJlOwor552xIDwgdG9cLWdhemVcLXNsb3dseTsKK+edryA8IHRvXC1iZVwtYWdvbml6ZWQ7Civoi7Hlr7ggPCBcKGVuZ2xpc2hcKVwtaW5jaDsKK+ecoyA8IHByb21pbmVudFwtZXllczsKK+aOoeaUtueOhyA8IHJlY292ZXJ5XC1yYXRpbzsKK+iHqueUseWMliA8IGxpYmVyYWxpemF0aW9uOwor5qiZ5bC6IDwgc3VydmV5b3InJ3NcLXJvZDsKK+iWqemBlOWnhuS+r+izveWboCA8IHNhZGRhbVwtaHVzc2VpbjsKK+eSuCA8IGphZGUnJ3NcLXN0cmVha3M7CivnkpggPCBsdXN0ZXJcLW9mXC1qYWRlOwor5bCH6LuNIDwgXChhcm15XClcLWdlbmVyYWw7CivnjqUgPCBteXN0ZXJpb3VzXC1nZW07Civni6ggPCBoYXBhbGVcLWphY2NodXM7CivlhanlnIsgPCBib3RoXC1jb3VudHJpZXM7CivlhajlnIsgPCBlbnRpcmVcLWNvdW50cnk7CivniqggPCBwYW50aW5nXC1vZlwtY293Owor5LiN6YGp55SoIDwgbm90XC1hcHBsaWNhYmxlOwor5L2G5Lul55CG5pu4IDwgYm9va1wtb2ZcLWRhbmllbDsKK+eHiSA8IGhlYXRcLXdpdGhcLWZpcmU7Civnh4AgPCB0b1wtbWFrZVwtYVwtZmlyZTsKK+eGiSA8IFwoeWVsbG93XC1jb2xvclwpOwor6Lyp5a2QIDwgYWxsXC1vbmUnJ3NcLWxpZmU7Civplbfln44gPCB0aGVcLWdyZWF0XC13YWxsOwor6KGo5rG6IDwgZGVjaWRlXC1ieVwtdm90ZTsKK+aIkOmDvSA8IGNoZW5nZHVcLVwoY2l0eVwpOwor6ayl5pm6IDwgYmF0dGxlXC1vZlwtd2l0czsKK+WFq+WNgyA8IGVpZ2h0XC10aG91c2FuZDsKK+a6myA8IHRvXC1mb3JtXC1ob2xsb3c7CivmubEgPCBzb3VuZFwtb2ZcLXdhdGVyOwor5o235YWL5YWx5ZKM5ZyLIDwgY3plY2hcLXJlcHVibGljOwor55eF5q23IDwgbWVkaWNhbFwtcmVjb3JkOwor5riiIDwgcGxlYXNhbnRcLXNvdW5kOwor5rasIDwgd2F0ZXJ5XC1leHBhbnNlOwor57Ch5Zau5YyWIDwgc2ltcGxpZmljYXRpb247CivkvLjplosgPCB0b1wtc3RyZXRjaFwtb3V0Owor5rS/IDwgc3RhZ25hbnRcLXdhdGVyOwor6L+r5LiN5b6X5beyIDwgaGF2ZVwtbm9cLWNob2ljZTsKK+ipleWDueWIhumhniA8IHJhbmtcLFwtY2xhc3NpZnk7Civms4IgPCBjbGVhclwtYW5kXC1kZWVwOwor5ryU56S6IDwgdG9cLWRlbW9uc3RyYXRlOwor5rK3IDwgdG9cLXJlbW92ZVwtZXZpbDsKK+W+nuS6i+eglOeptiA8IHRvXC1kb1wtcmVzZWFyY2g7Civmrq0gPCBhXC1zdGlmZlwtY29ycHNlOwor5Lul6LO95Lqe5pu4IDwgYm9va1wtb2ZcLWlzYWlhaDsKK+m5vea5luWfjiA8IHNhbHRcLWxha2VcLWNpdHk7CivmqpYgPCB3aWxkXC1wZWFyXC10cmVlOwor5qm/IDwgcXVlcmN1c1wtZ2xhdWNhOwor5YKz5pKtIDwgdG9cLWRpc3NlbWluYXRlOwor5YWl5LyNIDwgZW50ZXJcLXRoZVwtYXJteTsKK+mmlumDvSA8IGNhcGl0YWxcLVwoY2l0eVwpOwor5qa+IDwgcGllY2VzXC1vZlwtd29vZDsKK+amoCA8IGNoaW5lc2VcLXF1aW5jZTsKK+amliA8IHBhcGVyXC1tdWxiZXJyeTsKK+akqiA8IG1hY2hpbHVzXC1uYW5tdTsKK+a9lOa3qCA8IGNsZWFuc2VcLVwoc2luc1wpOwor5qOQIDwgc3BlY2llc1wtb2ZcLXlldzsKK+aiiiA8IHNxdWVlemVcLW91dFwtb2Y7CivljYrmlbjku6XkuIogPCBtb3JlXC10aGFuXC1oYWxmOwor5p++IDwgc3RyYWlnaHRcLWdyYWluOwor5p+DIDwgZXVyeWFcLWphcG9uaWNhOwor6IiM5qC5IDwgYmFja1wtb2ZcLXRvbmd1ZTsKK+aqlOahiOWxrOaApyA8IGZpbGVcLWF0dHJpYnV0ZTsKK+abjyA8IG9uY2VcLXVwb25cLXRpbWU7CivooYzmlL8gPCBhZG1pbmlzdHJhdGlvbjsKK+ihgOijveWTgSA8IGJsb29kXC1wcm9kdWN0czsKK+aZoiA8IGxpZ2h0XC1vZlwtc3RhcnM7CivlsI/ogbIgPCBpblwtYVwtbG93XC12b2ljZTsKK+aYsCA8IHZhclwtb2ZcLScndG9cLWJlJyc7Civnr6HmlLkgPCB0b1wtdGFtcGVyXC13aXRoOwor5oiq6IezIDwgdXBcLXRvXC1cKGFcLXRpbWVcKTsKK+aUgiA8IHRvXC1iZWF0XC1hXC1kcnVtOwor6LW36I2JIDwgZHJhZnRcLVwoYVwtYmlsbFwpOwor5oyo5omTIDwgdGFrZVwtYVwtYmVhdGluZzsKK+WxpOeQhiA8IHN0cmF0aWZpY2F0aW9uOwor55CD6Z6LIDwgYXRobGV0aWNcLXNob2VzOwor6Y2L6LK8IDwgZnJpZWRcLWR1bXBsaW5nOwor5Ye56Z2i6Y+hIDwgY29uY2F2ZVwtbWlycm9yOwor5o6I5ZG9IDwgdG9cLWdpdmVcLW9yZGVyczsKK+mWi+W/g+aenCA8IHBpc3RhY2hpb1wtbnV0czsKK+W+nuS+huaykuaciSA8IGhhdmVcfGhhc1wtbmV2ZXI7Civku6Xmlq/luJboqJggPCBib29rXC1vZlwtZXN0aGVyOwor5pyA5L2z5Yip55uKIDwgYmVzdFwtaW50ZXJlc3RzOwor5LiW55WM6KqeIDwgd29ybGRcLWxhbmd1YWdlOwor5oOh5oCn5b6q55KwIDwgdmljaW91c1wtY2lyY2xlOwor5qC46IO9IDwgbnVjbGVhclwtZW5lcmd5Owor5rWu6bueIDwgZmxvYXRpbmdcLXBvaW50Owor5bmxIDwgb2ZmaWNpYWxcLWRyZXNzOwor5LiN55yB5Lq65LqLIDwgYmVcLXVuY29uc2Npb3VzOwor5befIDwgYVwtd2F0ZXJ5XC13YXN0ZTsKK+eZvueEoeiBiuiztCA8IGJvcmVkXC10b1wtZGVhdGg7CivooYzmmJ/pmpsgPCBpbnRlcnBsYW5ldGFyeTsKK+S4reW/g+iqniA8IHF1YWxpZmllZFwtd29yZDsKK+WPg+isgOmVtyA8IGNoaWVmXC1vZlwtc3RhZmY7Civoh6rlvp4gPCBzaW5jZVwtXChhXC10aW1lXCk7Civmo4Tmq7sgPCBhYmFuZG9uZWRcLWJhYnk7CivnlKLmrIogPCBwcm9wZXJ0eVwtcmlnaHQ7CivpvZLovKogPCBcKG1hY2hpbmVcKVwtZ2VhcjsKK+S+teeKryA8IHRvXC1pbmZyaW5nZVwtb247CivphqvlrbjkuK3lv4MgPCBtZWRpY2FsXC1jZW50ZXI7CivooYDlo5MgPCBibG9vZFwtcHJlc3N1cmU7CivpjITlg4/mqZ8gPCB2aWRlb1wtcmVjb3JkZXI7CivloZUgPCBhXC1ndXN0XC1vZlwtd2luZDsKK+WfhyA8IG5hbWVcLW9mXC1icmlkZ2U7CivlhYnkv6HomZ8gPCBvcHRpY2FsXC1zaWduYWw7CivntpzlkIjloLHlsI4gPCBzdW1tYXJ5XC1yZXBvcnQ7CivlmbkgPCBzb3VuZFwtb2ZcLWJlbGxzOwor5ZiTIDwgZ3VyZ2xpbmdcLXNvdW5kOwor5rib6IKlIDwgdG9cLWxvc2VcLXdlaWdodDsKK+S7o+ihqCA8IHJlcHJlc2VudGF0aXZlOwor5aSn5ZCM5bCP55WwIDwgYWxtb3N0XC1zaW1pbGFyOwor5ZWMIDwgYW5pbWFsXC1kaXNlYXNlOwor55Wr5bGVIDwgYXJ0XC1leGhpYml0aW9uOwor55Sf5pWIIDwgdG9cLXRha2VcLWVmZmVjdDsKK+aguOatpuWZqCA8IG51Y2xlYXJcLXdlYXBvbjsKK+mBlOS4jeWIsCA8IGNhbm5vdFwtYWNoaWV2ZTsKK+aJjeawoyA8IGxpdGVhcnlcLXRhbGVudDsKK+WOgyA8IHRvXC1sb29rXC11cHdhcmQ7Civlja0gPCBoaWdoXC5cLXRvXC1yYWlzZTsKK+WNgiA8IHRvXC1mbHlcLXJhcGlkbHk7CivljZHouqzlsYjnr4AgPCBib3dcLWFuZFwtc2NyYXBlOwor5oGt6LOA5paw56anIDwgaGFwcHlcLW5ld1wteWVhcjsKK+WwiOashCA8IHNwZWNpYWxcLWNvbHVtbjsKK+WtuOexjSA8IHNjaG9vbFwtcm9sbFwoc1wpOwor56aB6aOfIDwgZmFzdFwtXChub3RcLWVhdFwpOwor5YWL5p6X6aCTIDwgXChiaWxsXClcLWNsaW50b247CivkvJUgPCBjb21tb25cLWxhYm9yZXI7CivkuocgPCBrd3VreWVsXC1oYW1tZXI7CivktpQgPCBwcm9taW5lbnRcLWd1bXM7CivktpAgPCB0b1wtdGFrZVwtYnJlYXRoOwor5LaAIDwgc291bmRcLW9mXC1kcnVtczsKK+S1tiA8IGFcLWtpbmRcLW9mXC1mcm9nOwor5LWMIDwgcmVkZGlzaFwteWVsbG93Owor5LS0IDwgYVwta2luZFwtb2ZcLWNha2U7CivktKkgPCBhXC1raW5kXC1vZlwtZGVlcjsKK+S0mCA8IGFcLWtpbmRcLW9mXC1iaXJkOwor5LO4IDwgdGhlXC13aWxkXC1nb29zZTsKK+SzqyA8IGFcLXNtYWxsXC1waWdlb247CivksqIgPCBhXC1raW5kXC1vZlwtZmlzaDsKK+afkOeoriA8IHNvbWVcLWtpbmRcLVwob2ZcKTsKK+SwuSA8IHRoZVwtY3V0dGxlZmlzaDsKK+SwtCA8IGFcLXdhZnRpbmdcLWZpc2g7CivksKEgPCBhXC1maWVyY2VcLWdob3N0Owor5bCH5pyDIDwgd2lsbFwsXC1nb2luZ1wtdG87Civkr5sgPCB0aGVcLWtuZWVcLWJvbmVzOwor5K65IDwgYW5cLWFuZ3J5XC1ob3JzZTsKK+SuriA8IGFcLWtpbmRcLW9mXC1tdWxlOwor5K27IDwgYVwtc3dpZnR5XC1ob3JzZTsKK+StrSA8IHRoZVwtZWxkZXN0XC1zb247CivkrakgPCB0b1wtZmVlZFwtYVwtYmFieTsKK+WJjeeUn+WPrOWWmiA8IGZvcmVvcmRpbmF0aW9uOwor5K2BIDwgc3RpbmtpbmdcLXNtZWxsOwor5Ky6IDwgc2FtZVwtYXNcLXVcKzRiNTA7CivkrJggPCB0aGVcLXdpbmRcLWJsb3dzOwor5KySIDwgdG9cLWJsb3dcLWNoaWxseTsKK+ixjui1tyA8IGhvbGRcLXVwXC1cKGhpZ2hcKTsKK+e2sumam+mbu+ipsSA8IGludGVybmV0XC1waG9uZTsKK+SrqyA8IGh1bWFuXC1za2VsZXRvbjsKK+SqvCA8IHRoZVwtY2hlZWtcLWJvbmU7CivkqoggPCBhXC1sZWF0aGVyXC1iZWx0Owor5KmQIDwgdGllXC1pdFwtdGlnaHRseTsKK+SopSA8IGFcLXBvdXJpbmdcLXJhaW47Civkp6cgPCBoaWdoXC1tb3VudGFpbnM7Civlr7bmm7ggPCB0cmVhc3VyZWRcLWJvb2s7CivkprogPCBuYW1lXC1vZlwtYVwtaGlsbDsKK+SmpCA8IHNlZWRcLW9mXC1ncmFpbnM7CivkppEgPCB3aXRob3V0XC1hXC1kb29yOwor5KaPIDwgd2luZ1wtb2ZcLWFcLWRvb3I7CivogZboqpXnr4AgPCBjaHJpc3RtYXNcLXRpbWU7CivkpJYgPCBhXC1raW5kXC1vZlwtd2luZTsKK+SjjiA8IG5hbWVcLW9mXC1jb3VudHk7Civnmb3ku6TmtbcgPCB0aGVcLWJlcmluZ1wtc2VhOwor5KKoIDwgdG9cLXdhbGtcLXNsb3dseTsKK+ShviA8IGhpZ2hcLWNhcnRsb2FkczsKK+ShsiA8IHJpbVwtb2ZcLWFcLXdoZWVsOwor5pGp6ZaA57aTIDwgYm9va1wtb2ZcLW1vcm1vbjsKK+ShiSA8IGFcLWtpbmRcLW9mXC1jYXJ0Owor6JiL5p6c6Zu76IWmIDwgYXBwbGVcLWNvbXB1dGVyOwor5Jy9IDwgYVwta2luZFwtb2ZcLWJlYW47CivknJwgPCB3b3Jkc1wtb2ZcLWFuZ2VyOwor5JugIDwgdW5hYmxlXC10b1wtdGFsazsKK+WQg+mpmiA8IHRvXC1iZVwtc3RhcnRsZWQ7CivkmpYgPCBtb3VudGFpblwtZGVpdHk7CivkmoQgPCB0b1wtbWFrZVwtZnVuXC1vZjsKK+SZsyA8IHNwaXRpbmdcLWZsYW1lczsKK+SZpiA8IHVwcGVyXC1nYXJtZW50czsKK+SYoiA8IG9sZFwtYW5kXC1zaGFiYnk7Civkl7cgPCBhXC1raW5kXC1vZlwtd2FzcDsKK+SXqiA8IGFcLWtpbmRcLW9mXC13b3JtOwor5JeaIDwgZWdnc1wtb2ZcLW1hbnRpczsKK+SXkiA8IGFcLWtpbmRcLW9mXC1jbGFtOwor5JawIDwgYVwta2luZFwtb2ZcLWduYXQ7Civmkp7mk4rlvI/ljbDooajmqZ8gPCBpbXBhY3RcLXByaW50ZXI7CivklZogPCBhXC1zdHJhd1wtYmFza2V0Owor5JSVIDwgY2hpY2tlblwtYnJlYXN0Owor5JSLIDwgYVwta2luZFwtb2ZcLXRyZWU7CivlsI7lvYggPCBndWlkZWRcLW1pc3NpbGU7CivklIIgPCB2ZWdldGFibGVcLXNvdXA7CivmuIXniL0gPCBmcmVzaFwtYW5kXC1jb29sOwor5JOhIDwgYVwtbWVkaWNhbFwtaGVyYjsKK+SSkyA8IHRvXC1kb1wtdmlvbGVuY2U7CivkkocgPCBuYW1lXC1vZlwtYVwtc2hpcDsKK+SShSA8IGJlYXV0aWZ1bFwtZXllczsKK+SRtiA8IHNwcmlnaHRseVwtYm9hdDsKK+SRqyA8IHRvb2xzXC1mb3JcLWJvYXQ7CivkkaMgPCBhXC1zYWlsaW5nXC1ib2F0Owor5JGcIDwgdG9cLWVhdFwtaGVhdmlseTsKK+S6kuiBryA8IGludGVyY29ubmVjdGVkOwor5JCVIDwgb2lsXC1hbmRcLWdyZWFzZTsKK+SQjSA8IGV4Y2VsbGVudFwtZm9vZDsKK+SNoSA8IHNtYWxsXC1maXNoXC1uZXQ7CivkjZEgPCBhXC1uZXRcLW9yXC1zbmFyZTsKK+SNjSA8IHVuYnVybnRcLWJyaWNrczsKK+WUseeJhyA8IFwodmlueWxcKVwtcmVjb3JkOwor5Iy1IDwgbGFwZWxcLWFuZFwtYmVsdDsKK+SMsCA8IGNvbm5lY3RlZFwtc2lsazsKK+SMpSA8IHRvXC1zZXdcLWNsb3RoZXM7CivkjKEgPCB0b1wtd2luZFwtYXJvdW5kOwor5LqM6ICFIDwgYm90aFwtXFtvZlwtdGhlbVxdOwor5Iu9IDwgaGVtcGVuXC1zYW5kYWxzOwor5IuvIDwgY3J1Y2lhbFwtcG9pbnRzOwor5IuiIDwgdG9cLXR3aXN0XC1yb3BlczsKK+SKvCA8IG1lYXN1cmluZ1wtdW5pdDsKK+aJjeWtkCA8IGdpZnRlZFwtc2Nob2xhcjsKK+S+teWusyA8IHRvXC1lbmNyb2FjaFwtb247CivkiqggPCBzdG9yaW5nXC1ncmFpbnM7CivkiLcgPCBhXC1iYW1ib29cLWZlbmNlOwor5IiaIDwgYVwtYmFtYm9vXC1zaG9vdDsKK+S4jeiEm+iAjOi1sCA8IGdldFwtcm91bmRcLWZhc3Q7Civkh6sgPCBiYW1ib29cLXNwbGludHM7Civkh4UgPCB0b1wtc3RhbmRcLXN0aWxsOwor5LiJ6Lyq6LuK5LyVIDwgcGVkaWNhYlwtZHJpdmVyOwor5a+25bqrIDwgdHJlYXN1cmVcLWhvdXNlOwor5L+d5ZauIDwgZ3VhcmFudGVlXC1zbGlwOwor6aO957aT6aKo6ZycIDwgd2VhdGhlclwtYmVhdGVuOwor5IWlIDwgcmlwZW5pbmdcLWNyb3BzOwor5bCP5a24IDwgcHJpbWFyeVwtc2Nob29sOwor5LuU55WcIDwgbmV3Ym9yblwtYW5pbWFsOwor5IO5IDwgamFkZVwtYW5kXC1zdG9uZTsKK+SDoSA8IGFcLXNtYWxsXC1wZWJibGU7CivmnKzoibIgPCBuYXR1cmFsXC1jb2xvdXI7Civkg48gPCBhXC1raW5kXC1vZlwtcm9jazsKK+SDjCA8IHJvY2t5XC1tb3VudGFpbjsKK+S+huW+gCA8IHRvXC1jb21lXC1hbmRcLWdvOwor5IKMIDwgYVwtc2hvcnRcLXdlYXBvbjsKK+WFqOW/g+WFqOaEjyA8IGhlYXJ0XC1hbmRcLXNvdWw7CivkgaQgPCBtb2lzdGVuZWRcLWV5ZXM7CivkgY8gPCBmYXJzaWdodGVkbmVzczsKK+SAuiA8IHNxdWludGluZ1wtZXllczsKK+W3pealreeahOW3qOmgrSA8IGluZHVzdHJ5XC1tb2dvbDsKK+O9piA8IHJlY2xhaW1lZFwtbGFuZDsKK+O9pSA8IGZlcnRpbGVcLWZpZWxkczsKK+O9iyA8IGFcLWtpbmRcLW9mXC10aWxlOwor472EIDwgYW5cLWVhcnRoZW5cLWphcjsKK+mhjOi3iyA8IHNob3J0XC1jb21tZW50czsKK+O4qyA8IGNhc3RyYXRlZFwtYnVsbDsKK+O4pCA8IGJyb2tlblwtbGVhdGhlcjsKK+O4iiA8IGZpZXJjZVwtb2ZcLWZpcmU7CivjtqAgPCB3YXRlclwtY3VycmVudHM7CivkuI3op6MgPCBub3RcLXVuZGVyc3RhbmQ7Civms7DnsbPniL7oqp4gPCB0YW1pbFwtbGFuZ3VhZ2U7CivjtZggPCBncmVhdFwtY3VycmVudHM7Civmh67mha4gPCBcKGZlZWxcKVwtYW54aWV0eTsKK+O0uCA8IHN3aWZ0XC1jdXJyZW50czsKK+eKr+S4jeiRlyA8IG5vdFwtd29ydGh3aGlsZTsKK+O0mSA8IHdhdGVyXC1kcmlwcGluZzsKK+OzgyA8IHRvXC10ZW1wZXJcLWlyb247Civjso8gPCBmbHlpbmdcLWZlYXRoZXI7CivkvZnmgrggPCBsaW5nZXJpbmdcLWZlYXI7CivjsY8gPCB0aGVcLXJpZ2h0XC1zaWRlOwor5oiQ5bCxIDwgYWNjb21wbGlzaG1lbnQ7CivjrbsgPCB0aGVcLWNyYWJcLWFwcGxlOwor5LiN55So6KydIDwgeW91JydyZVwtd2VsY29tZTsKK+OtjyA8IGFcLWtpbmRcLW9mXC13b29kOwor462EIDwgYVwta2luZ1wtb2ZcLXRyZWU7Civlrrnlv40gPCB0b1wtcHV0XC11cFwtd2l0aDsKK+OrjyA8IGFcLWtpbmRcLW9mXC1mbGFnOwor46uCIDwgdG9cLWNob3BcLW9yXC1jdXQ7Civnvbfoq5YgPCBhYmFuZG9uZWRcLWlkZWE7CivmgqPomZUgPCBhZmZsaWN0ZWRcLXBhcnQ7CivjqIcgPCB0b1wtc3dlZXBcLWNsZWFuOwor46W6IDwgdG9cLWJsb3dcLWFcLWZpcmU7CivkuI3mnJ/ogIzpgYcgPCBtZWV0XC1ieVwtY2hhbmNlOwor46WJIDwgYVwtbGl0dGxlXC1hbmdyeTsKK+OlhyA8IHRvXC1iZVwtcGVydmVyc2U7CivjpL4gPCBub3RcLWRvaW5nXC13ZWxsOwor46SWIDwgdG9cLWhhdmVcLXdpc2RvbTsKK+OjpiA8IGFcLXdpbmRpbmdcLXBhdGg7Civmnrbmp4sgPCBpbmZyYXN0cnVjdHVyZTsKK+eptOaSrSA8IGJ1bmNoXC1wbGFudGluZzsKK+WNiuiHquWLlSA8IHNlbWlcLWF1dG9tYXRpYzsKK+OhnCA8IHJhZ2dlZFwtY2xvdGhlczsKK+aHt+WtlSA8IHRvXC1iZVwtcHJlZ25hbnQ7CivjoKggPCBtaXN0eVwtbW91bnRhaW47CivjoKEgPCBoaWdoXC1hbmRcLWxvZnR5Owor45+/IDwgaGlnaFwtYW5kXC1zdGVlcDsKK+iBt+alrSA8IGpvYlwtb2NjdXBhdGlvbjsKK+WFp+iSmeWPpCA8IGlubmVyXC1tb25nb2xpYTsKK+mAgOS8kemHkSA8IHJldGlyZW1lbnRcLXBheTsKK+eVmeiogOewvyA8IHZpc2l0b3InJ3NcLWJvb2s7CivjnqkgPCBtb3VudGFpblwtdmFwb3I7CivjnpcgPCB0aGVcLW1hbGVcLW9yZ2FuOwor5Lu75pyfIDwgdGVybVwtb2ZcLW9mZmljZTsKK+OeiiA8IHVuYWJsZVwtdG9cLXdhbGs7CivjnbAgPCB1bmFibGVcLXRvXC1tZWV0Owor452bIDwgYWhhbHRpbmdcLXBsYWNlOwor45ykIDwgZm9vbGluZ1wtYXJvdW5kOwor45yRIDwgYW5cLW9sZGVyXC13b21hbjsKK+i/keS5juWQjOatpSA8IHBsZXNpb2Nocm9ub3VzOwor45upIDwgc2lzdGVyc1wtaW5cLWxhdzsKK+ObgiA8IHdlYWtcLWFuZFwtc21hbGw7CivjmoMgPCB0b1wtdGFrZVwtYVwtaGludDsKK+OZtyA8IGxvd1wtbHlpbmdcLWFyZWE7CivkuI3oiIggPCBvdXRcLW9mXC1mYXNoaW9uOwor45aiIDwgdG9cLXJlamVjdFwtZm9vZDsKK+OVpCA8IGFcLXByb3VkXC10ZW1wZXI7CivnkIPmo5IgPCBcKGJhc2ViYWxsXClcLWJhdDsKK+OUmSA8IGdyZWF0XC1zdHJlbmd0aDsKK+OSmyA8IHRvXC1zdGFuZFwtYWxvbmU7CivjkoAgPCBkb1wtbm90XC1mZWFyXC10bzsKK+izh+agvCA8IHF1YWxpZmljYXRpb25zOwor5p2x5rW3IDwgZWFzdFwtY2hpbmFcLXNlYTsKK+atu+S6oeeOhyA8IG1vcnRhbGl0eVwtcmF0ZTsKK+WTpeacrOWTiOaguSA8IGNvcGVuaGFnZW5cLVw/XD9cPzsKK+adseatkCA8IGVhc3Rlcm5cLWV1cm9wZTsKK+S7u+aGkSA8IG5vXC1tYXR0ZXJcLXdoYXQ7Civku4rmnJ0gPCBhdFwtdGhlXC1wcmVzZW50Owor5L2c5ZOBIDwgd29ya3NcLVwob2ZcLWFydFwpOwor5oaL5oK2IDwgZmVlbFwtb3BwcmVzc2VkOwor6aO85qe9IDwgZmVlZGluZ1wtdHJvdWdoOwor6K2m6LuKIDwgcG9saWNlXC12ZWhpY2xlOwor5a+S5Ya3IDwgY29sZFwtXChjbGltYXRlXCk7Civlk4joqbLmm7ggPCBib29rXC1vZlwtaGFnZ2FpOwor5a6J5aW9IDwgc2FmZVwtYW5kXC1zb3VuZDsKK+a2suaZtiA8IGxpcXVpZFwtY3J5c3RhbDsKK+WPg+ingCA8IHRvXC1sb29rXC1hcm91bmQ7CivpmL/kvI/kvL3lvrfnvoXlrprlvosgPCBhdm9nYWRybycnc1wtbGF3Owor5pO65pSk5a2QIDwgc2V0XC11cFwtYVwtc3RhbGw7Civlj6/og70gPCBtaWdodFwtXChoYXBwZW5cKTsKK+mmluWFiCA8IGZpcnN0XC1cKG9mXC1hbGxcKTsKK+eRnuWjq+S6uiA8IHN3aXNzXC1cKHBlcnNvblwpOwor5q+P56uv5Y+j5YO55qC8IDwgcHJpY2VcLXBlclwtcG9ydDsKK+a2suaFiyA8IGxpcXVpZFwtXChzdGF0ZVwpOwor5a2V5ammIDwgcHJlZ25hbnRcLXdvbWFuOwor5LmY5rOVIDwgbXVsdGlwbGljYXRpb247Civlt67kuI3lpJogPCBhbG1vc3RcLFwtbmVhcmx5Owor5a6a5YO5IDwgdG9cLXNldFwtYVwtcHJpY2U7Civmi6zlvKfoo6EgPCBpblwtcGFyZW50aGVzZXM7CivmmpfnrrEgPCBjYW1lcmFcLWJlbGxvd3M7CivmuJvliJEgPCByZWR1Y2VcLXBlbmFsdHk7Civnmb7nsbPos73ot5EgPCAxMDBcLW1ldHJlXC1kYXNoOwor5L+h6Jmf6Ie6IDwgc2lnbmFsXC1zdGF0aW9uOwor5LiW55WM5LiKIDwgXChvZlwtdGhlXClcLXdvcmxkOwor6Kq/5p+l5aCx5ZGKIDwgbWVtb2lyXCxcLXJlcG9ydDsKK+Wck+ePoOethiA8IGJhbGxcLXBvaW50XC1wZW47CivkuK3mrZAgPCBjZW50cmFsXC1ldXJvcGU7CivlhajnkIPmsKPlgJnljYfmuqsgPCBnbG9iYWxcLXdhcm1pbmc7Civniq/nvaogPCBcKGNvbW1pdFwpXC1jcmltZTsKK+S7veWFkiA8IGRlZ3JlZVwsXC1leHRlbnQ7Civot5Hohb/lhZIgPCB0b1wtcnVuXC1lcnJhbmRzOwor5LiN5q2j5bi454uA5rOBIDwgYWJub3JtYWxcLXN0YXRlOwor54m56ImyIDwgY2hhcmFjdGVyaXN0aWM7CivkuK3mlrcgPCB0b1wtZGlzY29udGludWU7Civnp5XlrZAgPCBibGlnaHRlZFwtZ3JhaW47CivkuJbnlYzntpPmv58gPCBnbG9iYWxcLWVjb25vbXk7CivmnInlvoUgPCBub3RcLXlldFwtXChkb25lXCk7CivpoYzmnZAgPCBzdWJqZWN0XC1tYXR0ZXI7CivnpKbms4kgPCBtaW5lcmFsXC1zcHJpbmc7CivpgJrnlKjmsb3ou4ogPCBnZW5lcmFsXC1tb3RvcnM7Civmr5vooaMgPCBcKHdvb2xcKVwtc3dlYXRlcjsKK+iyrOS7uyA8IHJlc3BvbnNpYmlsaXR5Owor5YyX5Lqs6YCx5aCxIDwgYmVpamluZ1wtcmV2aWV3Owor5Y2K6IG3IDwgcGFydFwtdGltZVwtd29yazsKK+azoueLgOeGsSA8IHVuZHVsYW50XC1mZXZlcjsKK+mhr+W+lyA8IGFwcGVhclwtXCh0b1wtYmVcKTsKK+S4jeW/jSA8IGNhbm5vdFwtYmVhclwtdG87Civnn6XorZjluqsgPCBrbm93bGVkZ2VcLWJhc2U7CivmupDpu57lnLDlnYAgPCBzb3VyY2VcLWFkZHJlc3M7CivpgJnmrKHljbHmqZ8gPCBwcmVzZW50XC1jcmlzaXM7CivlpJrlt6XpgYvkvZwgPCBtdWx0aXRocmVhZGluZzsKK+WqveWSqiA8IG11bW15XC1cKG1vdGhlclwpOwor5rOi5oGpIDwgYm9ublwtXChnZXJtYW55XCk7CivmlZfoqLQgPCBsb3NlXC1hXC1sYXdzdWl0Owor6Zu75L+h5bGAIDwgY2VudHJhbFwtb2ZmaWNlOwor5aO96KGjIDwgYnVyaWFsXC1jbG90aGVzOwor6KW/5Y2X5LqeIDwgc291dGh3ZXN0XC1hc2lhOwor5LqM5rCn5YyW56KzIDwgY2FyYm9uXC1kaW94aWRlOwor5pO66ZCYIDwgcGVuZHVsdW1cLWNsb2NrOwor5pKl6Jmf55ukIDwgdGVsZXBob25lXC1kaWFsOwor5YyX57evIDwgbm9ydGhcLWxhdGl0dWRlOwor5Y+K5qC8IDwgdG9cLXBhc3NcLWFcLXRlc3Q7Civms5Xluq0gPCBjb3VydFwtXChvZlwtbGF3XCk7CivpgJnpoZ4gPCB0aGlzXC1raW5kXC1cKG9mXCk7CivntrLntaHoqK3oqIggPCBuZXR3b3JrXC1kZXNpZ247CivlvozlhanogIUgPCB0aGVcLWxhdHRlclwtdHdvOwor5Li75L+uIDwgXChzY2hvb2xcKVwtbWFqb3I7CivorormiJAgPCB0b1wtY2hhbmdlXC1pbnRvOwor5bug56au5oucIDwgZGF5XC1vZmZcLVwod29ya1wpOwor5LiN5ZCIIDwgbm90XC1jb25mb3JtXC10bzsKK+mWi+aUvuW8j+ezu+e1sSA8IG9wZW5cLXN5c3RlbVwoc1wpOwor5paR56u5IDwgbW90dGxlZFwtYmFtYm9vOwor5LiN5Y+KIDwgbm90XC1hc1wtZ29vZFwtYXM7CivliIbpoZ4gPCBjbGFzc2lmaWNhdGlvbjsKK+WFqeeZvuWEhCA8IHR3ZW50eVwtYmlsbGlvbjsKK+eEoemAo+aOpSA8IGNvbm5lY3Rpb25sZXNzOwor6YeN5bu6IDwgcmVjb25zdHJ1Y3Rpb247CivnjJzorI7lhZIgPCBndWVzc1wtYVwtcmlkZGxlOwor6KuL55yLIDwgcGxlYXNlXC1zZWVcLVwuXC5cLjsKK+S6lOW5tOioiOWKgyA8IGZpdmVcLXllYXJcLXBsYW47CivmsKvmsKMgPCBoeWRyb2dlblwtXChnYXNcKTsKK+W4guWgtOe2k+a/nyA8IG1hcmtldFwtZWNvbm9teTsKK+aqlOahiOWft+ihjCA8IGZpbGVcLWV4ZWN1dGlvbjsKK+S6kuWLlembu+imliA8IGludGVyYWN0aXZlXC10djsKK+e+juW3ruS6iyA8IGFcLXRlcnJpZmljXC1qb2I7CivmlbjnqK4gPCBudW1lcm91c1wtdHlwZXM7CivlhrDpu54gPCBmcmVlemluZ1wtcG9pbnQ7CivmrZDmtLLoga/nm58gPCBldXJvcGVhblwtdW5pb247Civoj6/oo5QgPCBldGhuaWNcLWNoaW5lc2U7CivkuI3ku4EgPCBub3RcLWJlbmV2b2xlbnQ7CivmlLbogb0gPCB0b1wtbGlzdGVuXC1cKHRvXCk7Civnu48gPCBjbGFzc2ljXC13b3JrczsKK+W8nyA8IHlvdW5nXC1icm90aGVyOwor5bu7IDwgY2lyY2xlXC1hcm91bmQ7CivlhbMgPCBmcm9udGllclwtcGFzczsKK+W4nSA8IHN1cHJlbWVcLXJ1bGVyOwor55WqIDwgdG9cLXRha2VcLXR1cm5zOwor55WlIDwgYXBwcm94aW1hdGVseTsKK+WFsSA8IHRvZ2V0aGVyXC13aXRoOwor5LmJIDwgcmlnaHRcLWNvbmR1Y3Q7Civlq4IgPCBzaXN0ZXJcLWluXC1sYXc7Civlk6UgPCBlbGRlclwtYnJvdGhlcjsKK+WppiA8IG1hcnJpZWRcLXdvbWVuOwor6KijIDwgdGFrZVwtbGVhdmVcLW9mOwor5pePIDwgYVwtZmFtaWx5XC1jbGFuOwor5aWqIDwgdGFrZVwtYnlcLWZvcmNlOwor56yUIDwgd3JpdGluZ1wtYnJ1c2g7CivoorcgPCBsaW5lZFwtZ2FybWVudDsKK+eArCA8IHN3aWZ0XC1jdXJyZW50Owor5LyvIDwgb2xkZXJcLWJyb3RoZXI7CivmvLIgPCByaXNlXC1pblwtcHJpY2U7CivnpLwgPCBzb2NpYWxcLWN1c3RvbTsKK+WYqSA8IHJ1c2hpbmdcLXNvdW5kOwor5ZWjIDwgaG9sZFwtaW5cLW1vdXRoOwor5rOKIDwgYW5jaG9yXC12ZXNzZWw7Civmsr8gPCBmb2xsb3dcLWNvdXJzZTsKK+WShCA8IG5vaXNlXC1vZlwtcmFnZTsKK+iPiiA8IGNocnlzYW50aGVtdW07CivlsrMgPCBtb3VudGFpblwtcGVhazsKK+WMuSA8IGJvbHRcLW9mXC1jbG90aDsKK+mihyA8IGxlYW5cLW9uZVwtc2lkZTsKK+aZqCA8IGVhcmx5XC1tb3JuaW5nOwor5pKeIDwga25vY2tcLWFnYWluc3Q7CivmhIggPCBtb3JlXC1hbmRcLW1vcmU7Civmp4cgPCB0aXBcLW9mXC1hXC10cmVlOwor6aeFIDwgcmVsYXlcLXN0YXRpb247CivppYUgPCBzdGVhbWVkXC1icmVhZDsKK+eCuCA8IHRvXC1mcnlcLWluXC1vaWw7CivohIggPCBibG9vZFwtdmVzc2VsczsKK+e7qiA8IGVuZFwtb2ZcLXRocmVhZDsKK+mjvCA8IHJhaXNlXC1hbmltYWxzOwor5qKTIDwgY2F0YWxwYVwtb3ZhdGE7CivogowgPCBtdXNjbGVcLXRpc3N1ZTsKK+S9qSA8IGJlbHRcLW9ybmFtZW50Owor572yIDwgcHVibGljXC1vZmZpY2U7CivmkK0gPCBqb2luXC10b2dldGhlcjsKK+aglyA8IGNoZXN0bnV0XC10cmVlOwor5qGRIDwgbXVsYmVycnlcLXRyZWU7CivpnoQgPCB0b1wtd29ya1wtaGlkZXM7CivmnZMgPCBoYW5kbGVcLW9mXC1jdXA7CivkvYMgPCB0ZW5hbnRcLWZhcm1lcjsKK+i0oSA8IG9mZmVyXC10cmlidXRlOwor5puHIDwgYmVjb21lXC1jbG91ZHk7CivkupkgPCBleHRlbmRcLWFjcm9zczsKK+ivniA8IGJlYXJcLWNoaWxkcmVuOwor5pm0IDwgY2xlYXJcLXdlYXRoZXI7CivloZEgPCBtb2RlbFwtaW5cLWNsYXk7CivmtaYgPCBiYW5rXC1vZlwtcml2ZXI7CivnsZQgPCBiYW1ib29cLWJhc2tldDsKK+aFjiA8IGFjdFwtd2l0aFwtY2FyZTsKK+iOiSA8IHdoaXRlXC1qYXNtaW5lOwor5o2XIDwgbWFrZVwtcHJvZ3Jlc3M7CivloYwgPCBmYWxsXC1pblwtcnVpbnM7Civnq5YgPCBwZXJwZW5kaWN1bGFyOwor6ZmVIDwgbW91bnRhaW5cLXBhc3M7Civmg5ogPCBhYnNlbnRcLW1pbmRlZDsKK+a3gCA8IHNoYWxsb3dcLXdhdGVyOwor5reYIDwgd2FzaFwtaW5cLXNpZXZlOwor55GwIDwgZXh0cmFvcmRpbmFyeTsKK+WeqyA8IGFkdmFuY2VcLW1vbmV5Owor54G2IDwga2l0Y2hlblwtcmFuZ2U7Civmr5MgPCBnaXZlXC1iaXJ0aFwtdG87CivlkqcgPCBzdHJldGNoXC1tb3V0aDsKK+WljiA8IHN0cmlkZVwtb2ZcLW1hbjsKK+a0vSA8IHRvXC1ibGVuZFwtd2l0aDsKK+eRtiA8IHByZWNpb3VzXC1qYWRlOwor6ZKwIDwgcmFyZVwtdHJlYXN1cmU7CivnkZsgPCBsdXN0ZXJcLW9mXC1nZW07CivmrokgPCBkaWVcLWZvclwtY2F1c2U7CivllKwgPCB0b1wtaW50aW1pZGF0ZTsKK+eYqiA8IHNocml2ZWxsZWRcLXVwOwor5ZSGIDwgbWFrZVwtbWlzY2hpZWY7CivlspogPCBtb3VudGFpblwtbWlzdDsKK+ahpiA8IHR5cGVcLW9mXC1iaXJjaDsKK+a2nyA8IGZsb3dpbmdcLXdhdGVyOwor6aOVIDwgc291bmRcLW9mXC13aW5kOwor5Z23IDwgY2xvZFwtb2ZcLWVhcnRoOwor6ZGrIDwgdXNlZFwtaW5cLW5hbWVzOwor56yLIDwgYmFtYm9vXC1zaG9vdHM7CivojYMgPCBhcm9tYXRpY1wtaGVyYjsKK+mmhCA8IGR1bXBsaW5nXC1zb3VwOwor56m5IDwgaGlnaFwtYW5kXC12YXN0Owor5byIIDwgY2hpbmVzZVwtY2hlc3M7Civpqa4gPCBjYXJyeVwtb25cLWJhY2s7CivoiqUgPCBtdXN0YXJkXC1wbGFudDsKK+eCnCA8IGJyaWxsaWFudFwtcmVkOwor5bKcIDwgcm9ja1wtbW91bnRhaW47CivnuqsgPCB0aHJlYWRcLW5lZWRsZTsKK+ahgCA8IGNoaWNrZW5cLXJvb3N0Owor5ouuIDwgbGFib3JpbmdcLWhhcmQ7CivnuqUgPCBpbmZlcmlvclwtc2lsazsKK+W/pCA8IGluc3Vib3JkaW5hdGU7CivpuL4gPCBmYWJ1bG91c1wtYmlyZDsKK+WYgSA8IHRvXC1iZVwtZ3JpZXZlZDsKK+i+jiA8IGFcLXN1cHBseVwtY2FydDsKK+iKqyA8IGRhcGhuZVwtZ2Vua3dhOwor5LynIDwgdnVsZ2FyXC1wZXJzb247Civms6AgPCBuaWNlXC1hbmRcLWNvb2w7CivnuLsgPCBoYWx0ZXJcLWZvclwtb3g7CivouL0gPCB0b1wtd2Fsa1wtYWxvbmU7Civota0gPCByZWRkaXNoXC1icm93bjsKK+migCA8IHRhbGxcLWFuZFwtc2xpbTsKK+afmCA8IGFcLXRob3JueVwtdHJlZTsKK+iwlCA8IGhvbmVzdFwtc3BlZWNoOwor6aqTIDwgcGllYmFsZFwtaG9yc2U7CivltKcgPCBoaWdoXC1tb3VudGFpbjsKK+mFmiA8IGNhcmJvbGljXC1hY2lkOwor5aSkIDwgZGlzdGFudFwtcGxhY2U7CivmmowgPCBpblwtb3Bwb3NpdGlvbjsKK+aAjSA8IHRvXC1iZVwtYXNoYW1lZDsKK+i0vSA8IGdpZnRcLXN1cGVyaW9yOwor5q+WIDwgZ3VhcmRcLWFnYWluc3Q7Civov5MgPCB0b1wtZ29cLXRvXC1tZWV0Owor5q+1IDwgbG9uZ1wtZmVhdGhlcnM7CivnnZogPCBjb3JuZXJcLW9mXC1leWU7Civmr70gPCBhXC1zaHV0dGxlY29jazsKK+WDsyA8IG1pbm9yaXR5XC1uYW1lOwor6L6PIDwgaHVic1wtb2ZcLXdoZWVsOwor5peGIDwgZmxhZ1wtb3JuYW1lbnQ7CivojYcgPCBhXC13YXRlclwtcGxhbnQ7Civlja4gPCBtZWFzdXJpbmdcLWN1cDsKK+mroSA8IHRvXC1zaGVhclwtdHJlZTsKK+mznCA8IG1hbmRhcmluXC1maXNoOwor6byNIDwgbGFyZ2VcLXJlcHRpbGU7CivnrKsgPCBwbGFua3NcLW9mXC1iZWQ7CivnvKEgPCBhXC1icmlkYWxcLXZlaWw7Civnu6ggPCBjb2Fyc2VcLXBvbmdlZTsKK+iKsCA8IHdhdGVyXC1jYWx0cm9wOwor6a2DIDwgZHJvdWdodFwtZGVtb247CivoiLMgPCBzdGVyblwtb2ZcLXNoaXA7CivlsaYgPCBzdHJhd1wtc2FuZGFsczsKK+iTkCA8IHN0cmF3XC1iZWRcLW1hdDsKK+mKjiA8IGV5ZVwtb2ZcLWFuXC1heGU7CivphqMgPCBjYXJib2h5ZHJhdGVzOwor6JuRIDwgYVwtbWFyaW5lXC1jcmFiOwor5qSgIDwgd29vZGVuXC10YWJsZXQ7CivlqrggPCBhblwtdWdseVwtd29tYW47CivppocgPCBzdGlyXC1hbmRcLWNvb2s7CivnlJkgPCBzdWdhclwtcHJvZHVjdDsKK+iWpCA8IGFsbGl1bVwtYmFrZXJpOwor5aGlIDwgZHJ5XC1jbGF5XC1sdW1wOwor5qqU5qGI6L2J6YCBIDwgZmlsZVwtdHJhbnNmZXI7Civoq77osp3niL4gPCBub2JlbFwtXChwcml6ZVwpOwor6I+y6I+yIDwgdmVyeVwtZnJhZ3JhbnQ7CivmmILmj5ogPCBoaWdoXC1zcGlyaXRlZDsKK+S/neitiemHkSA8IGVhcm5lc3RcLW1vbmV5Owor56OB5bi2IDwgbWFnbmV0aWNcLXRhcGU7Civop6Poqr8gPCB0b1wtZGVtb2R1bGF0ZTsKK+WMl+a1tyA8IHRoZVwtbm9ydGhcLXNlYTsKK+iWhOWIqSA8IHNtYWxsXC1wcm9maXRzOwor5o6S5bGx5YCS5rW3IDwgZWFydGhcLXNoYWtpbmc7CivmmZrloLEgPCBldmVuaW5nXC1wYXBlcjsKK+aYn+W6pyA8IGNvbnN0ZWxsYXRpb247Civmv4DlhYnmiZPlvJXmqZ8gPCBsYXNlclwtcHJpbnRlcjsKK+WGsOmeiyA8IHNrYXRpbmdcLWJvb3RzOwor5o6b6Jmf6K2JIDwgcmVnaXN0ZXJcLWNhcmQ7Civlu6DntbIgPCBmaWxhdHVyZVwtc2lsazsKK+efm+ebviA8IGNvbnRyYWRpY3Rvcnk7Civlh7ros6MgPCB0b1wtc2VsbFwtXChvZmZcKTsKK+WIsOiZlSA8IGluXC1hbGxcLXBsYWNlczsKK+e2k+eHn+iyu+eUqCA8IGJ1c2luZXNzXC1jb3N0Owor5Y6f5a2Q6IO9IDwgYXRvbWljXC1lbmVyZ3k7Civlj6Tku6MgPCBhbmNpZW50XC10aW1lczsKK+aWsOaciCA8IGNyZXNjZW50XC1tb29uOwor57SA5b+16aSoIDwgbWVtb3JpYWxcLWhhbGw7Civllq7pn7vmr40gPCBzaW1wbGVcLWZpbmFsczsKK+WNs+WwhyA8IG9uXC10aGVcLWV2ZVwtb2Y7CivljZHlvq4gPCBwZXR0eVwtYW5kXC1sb3c7CivljbHlrrMgPCB0b1wtamVvcGFyZGl6ZTsKK+ebtOaIquS6hueVtiA8IHBsYWluXC10YWxraW5nOwor5Ya35oiw5Lul5b6MIDwgcG9zdFwtY29sZFwtd2FyOwor5pyJ5Y+v6IO9IDwgaXQnJ3NcLXBvc3NpYmxlOwor5Yio6IqxIDwgd29vZFwtc2hhdmluZ3M7Civojqjoj6ogPCBibGFja1wtaGVuYmFuZTsKK+iqv+afpSA8IGludmVzdGlnYXRpb247CivntoHohb8gPCBsZWdcLXdyYXBwaW5nczsKK+WIl+iIiSA8IFwobWFrZVwtYVwpXC1saXN0Owor6YGp55SoIDwgYmVcLWFwcGxpY2FibGU7CivmkZjoqJggPCB0b1wtdGFrZVwtbm90ZXM7CivlhYPpppYgPCBoZWFkXC1vZlwtc3RhdGU7CivmnKrmj5Dlj4ogPCBub3RcLW1lbnRpb25lZDsKK+aWueW8jyA8IHdheVwtXChvZlwtbGlmZVwpOwor5pel5aScIDwgZGF5XC1hbmRcLW5pZ2h0Owor6Iqd6bq7IDwgc2VzYW1lXC1cKHNlZWRcKTsKK+acrOeUn+eHiCA8IGJ1bnNlblwtYnVybmVyOwor54mM5Z2KIDwgbWVtb3JpYWxcLWFyY2g7Civlv4Poh5/nl4UgPCBoZWFydFwtZGlzZWFzZTsKK+WJjeeUnyA8IHByZVwtZXhpc3RlbmNlOwor5Yui5Zyo5b+F6KGMIDwgYmVcLWltcGVyYXRpdmU7CivmmIflgLwgPCByaXNlXC1pblwtdmFsdWU7CivljYHkupTlubQgPCBmaWZ0ZWVuXC15ZWFyczsKK+exs+mjryA8IFwoY29va2VkXClcLXJpY2U7CivphKflsI/lubMgPCBkZW5nXC14aWFvcGluZzsKK+i9iemBkyA8IG1ha2VcLWFcLWRldG91cjsKK+iIiue0hOWFqOabuCA8IG9sZFwtdGVzdGFtZW50Owor6ZW36YCUIDwgbG9uZ1wtZGlzdGFuY2U7Civml6XliY0gPCB0aGVcLW90aGVyXC1kYXk7Civlub7lgIvlsI/mmYIgPCBzZXZlcmFsXC1ob3VyczsKK+mCo+m0u+abuCA8IGJvb2tcLW9mXC1uYWh1bTsKK+e2sue1oeWxpCA8IG5ldHdvcmtcLWxheWVyOwor5aKc5q+AIDwgXChwbGFuZVwpXC1jcmFzaDsKK+mbmeaJiyA8IHBhaXJcLW9mXC1oYW5kczsKK+WTpeael+WkmuW+jOabuCA8IDJcLWNvcmludGhpYW5zOwor5Y2X5LqeIDwgc291dGhlcm5cLWFzaWE7CivliIrnmbsgPCBjYXJyeVwtYVwtc3Rvcnk7CivoqoflvLUgPCB0b1wtZXhhZ2dlcmF0ZTsKK+mbo+W/mCA8IHVuZm9yZ2V0dGFibGU7CivlpKrlpKogPCBtYXJyaWVkXC13b21hbjsKK+aSpeeUqCA8IGFwcHJvcHJpYXRpb247Civlr6nliKTmrIQgPCBqdWRnZW1lbnRcLWJhcjsKK+Wig+azgSA8IGNpcmN1bXN0YW5jZXM7CivmsJHkuosgPCBjaXZpbFwtbWF0dGVyczsKK+Wls+S9oyA8IFwoZmVtYWxlXClcLW1haWQ7CivkuI3lj6/nvLrlsJEgPCBpbmRpc3BlbnNhYmxlOwor5YuY5a+fIDwgcmVjb25uYWlzYW5jZTsKK+exjOmbhiA8IGNvbGxlY3RcLW1vbmV5Owor5pON5ryUIDwgZGVtb25zdHJhdGlvbjsKK+eZveiKseiKsSA8IHNoaW5pbmdcLXdoaXRlOwor5bu656+J5a24IDwgYXJjaGl0ZWN0dXJhbDsKK+imlueql+Wfuua6liA8IHdpbmRvd3NcLWJhc2VkOwor6Zu76YO15L2N572uIDwgZW1haWxcLWFkZHJlc3M7Civlubvnh4ggPCBsYXRlcm5cLXNsaWRlczsKK+eglOeptumgmOWfnyA8IHJlc2VhcmNoXC1hcmVhOwor5Lit5ZyL5byPIDwgY2hpbmVzZVwtc3R5bGU7CivliqDlv6sgPCB0b1wtYWNjZWxlcmF0ZTsKK+WGsOezliA8IGNyeXN0YWxcLXN1Z2FyOwor5ZyL6ZqbIDwgaW50ZXJuYXRpb25hbDsKK+WNiuWksealrSA8IHNlbWlcLWVtcGxveWVkOwor6ayl6ZueIDwgY29ja1wtZmlnaHRpbmc7CivpgY7mmYIgPCBvbGRcLWZhc2hpb25lZDsKK+mAsuaOpeacjeWLmSA8IGFjY2Vzc1wtc2VydmVyOwor6Zqo5oSPIDwgYXNcLW9uZVwtd2lzaGVzOwor5aSx5YipIDwgc3VmZmVyXC1kZWZlYXQ7CivooajmsbrmrIogPCByaWdodFwtdG9cLXZvdGU7CivnqbrplpPnq5kgPCBzcGFjZVwtc3RhdGlvbjsKK+aQjeiAlyA8IHdlYXJcLWFuZFwtdGVhcjsKK+ebuOeVtiA8IGVxdWl2YWxlbnRcLXRvOwor6YCQ5q2lIDwgcHJvZ3Jlc3NpdmVseTsKK+m1qSA8IG93bFwtbGlrZVwtYmlyZDsKK+Wkp+WFrOWPuCA8IGxhcmdlXC1jb21wYW55Owor5LiN6KiY5ZCN5oqV56WoIDwgc2VjcmV0XC1iYWxsb3Q7CivkuozmrKHlpKfmiLAgPCB3b3JsZFwtd2FyXC10d287Civlub7mrKEgPCBzZXZlcmFsXC10aW1lczsKK+W3qOe0sCA8IGJpZ1wtYW5kXC1zbWFsbDsKK+W5vuaooyA8IHNldmVyYWxcLWtpbmRzOwor5aSn5L2/IDwgYW5cLWFtYmFzc2Fkb3I7Civnt6jlr6kgPCByZWFkXC1hbmRcLWVkaXQ7CivlvLfljJYgPCB0b1wtc3RyZW5ndGhlbjsKK+mBv+WtlSA8IGNvbnRyYWNlcHRpb247Civpq4MgPCBzaG91bGRlclwtYm9uZTsKK+S4jeWIl+mhm+iruOWztiA8IGJyaXRpc2hcLWlzbGVzOwor6aqqIDwgY3Jvb2tlZFwtYm9uZXM7CivlpKflrrnph48gPCBoaWdoXC1jYXBhY2l0eTsKK+Wkp+S6iyA8IGFcLW1ham9yXC1ldmVudDsKK+aliueZvue/sCA8IGJyaWdoYW1cLXlvdW5nOwor5aSn5ZWP6aGMIDwgZ3JlYXRcLXByb2JsZW07CivppqMgPCBmcmFncmFudFwtb2RvcjsKK+aVmeWPiyA8IGNodXJjaFwtbWVtYmVyOwor5YWJ5Yqf546HIDwgb3B0aWNhbFwtcG93ZXI7CivpgJ/mlYggPCBxdWlja1wtcmVzdWx0czsKK+mkmiA8IHByZXBhcmVkXC1tZWF0Owor5qyK5aiB5oCnIDwgYXV0aG9yaXRhdGl2ZTsKK+WIqeaWvCA8IGJlXC1iZW5lZmljaWFsOwor5Yid5pyfIDwgaW5pdGlhbFwtc3RhZ2U7CivlpbPmnIvlj4sgPCBmZW1hbGVcLWZyaWVuZDsKK+WfuuacrOamguW/tSA8IGJhc2ljXC1jb25jZXB0Owor5LiN5ZGo5bu2IDwgdW5kaXN0cmlidXRlZDsKK+meriA8IGxlYXRoZXJcLXNob2VzOwor6Kmi5ZWPIDwgaW5xdWlyZVwtYWJvdXQ7CivpnJ0gPCBkcm9wc1wtb2ZcLXJhaW47CivmkYHph6blhZIgPCBzbmFwXC1mYXN0ZW5lcjsKK+atu+WIkSA8IGRlYXRoXC1wZW5hbHR5Owor6ZOWIDwgcGVyc29uJydzXC1uYW1lOwor55m955qu5p2+IDwgbGFjZWJhcmtcLXBpbmU7CivpjKEgPCBhXC1raW5kXC1vZlwtcGVuOwor5YW155eeIDwgYXJteVwtcmlmZnJhZmY7CivlrZjlhLLlmaggPCBtZW1vcnlcLVwodW5pdFwpOwor6LK/5piT6aCG5beuIDwgdHJhZGVcLXN1cnBsdXM7CivlvYzov6bmm7ggPCBib29rXC1vZlwtbWljYWg7CivpiIQgPCBhXC13aW5lXC1mbGFnb247Civmrablmajns7vntbEgPCB3ZWFwb25cLXN5c3RlbTsKK+mHrSA8IHRpcmVcLW9mXC13aGVlbDsKK+mGqCA8IGRyZWdzXC1vZlwtd2luZTsKK+mrlOmHjSA8IFwoYm9keVwpXC13ZWlnaHQ7Civnmb3noJIgPCB3aGl0ZVwtYXJzZW5pYzsKK+aiheWhnui/quaWr+WllOmmsyA8IG1lcmNlZGVzXC1iZW56Owor55u45p62IDwgcGljdHVyZVwtZnJhbWU7CivovqEgPCByZWNyaW1pbmF0aW9uOwor5a6255So6Zu76IWmIDwgaG9tZVwtY29tcHV0ZXI7Civnj77ku6PljJYgPCBtb2Rlcm5pemF0aW9uOwor6L2PIDwgc2xlZXBpbmdcLWNhcnQ7CivlhbXnh58gPCBtaWxpdGFyeVwtY2FtcDsKK+S4u+emseaWhyA8IGxvcmQnJ3NcLXByYXllcjsKK+W4guawkSA8IGNpdHlcLXJlc2lkZW50Owor5bqt5ZySIDwgZmxvd2VyXC1nYXJkZW47Civot64gPCBoYXN0eVwtd2Fsa2luZzsKK+i9n+eCuCA8IFwoZHJvcFwtYVwpXC1ib21iOwor6YGO5Y67IDwgXChpblwtdGhlXClcLXBhc3Q7Civos64gPCBmYXJld2VsbFwtZ2lmdDsKK+iJpuiJhyA8IG5hdmFsXC12ZXNzZWxzOwor5aSn5YWs54Sh56eBIDwganVzdFwtYW5kXC1mYWlyOwor5ZOl5p6X5aSa5YmN5pu4IDwgMVwtY29yaW50aGlhbnM7CivlhrDmnJ8gPCBnbGFjaWFsXC1lcG9jaDsKK+mXnOaWvCA8IHBlcnRhaW5pbmdcLXRvOwor5Ymb5YmbIDwganVzdFwtcmVjZW50bHk7Civlu6DkuLsgPCBmYWN0b3J5XC1vd25lcjsKK+WGjeasoSA8IG9uZVwtbW9yZVwtdGltZTsKK+isjSA8IGh1bW1pbmdcLXNvdW5kOwor5paw57SE5YWo5pu4IDwgbmV3XC10ZXN0YW1lbnQ7CivoprYgPCB0b1wtbG9va1wtYWJvdXQ7CivoppQgPCB0b1wtc2VhcmNoXC1mb3I7CivopZogPCBncmF2ZVwtY2xvdGhlczsKK+asiuWKmyA8IFwod2llbGRcKVwtcG93ZXI7CivooLUgPCBsYXJnZVwtdHVydGxlczsKK+ewv+exjSA8IGFjY291bnRcLWJvb2tzOwor6J6+IDwgdGhlXC1lYXJ0aHdvcm07CivonqUgPCB0aGVcLWhvdXNlXC1mbHk7CivonpkgPCBncnVic1wtaW5cLXdvb2Q7Civom4UgPCBhXC1jYXRlcnBpbGxhcjsKK+apq+aOgyA8IHRvXC1zd2VlcFwtYXdheTsKK+W6puWBhyA8IGdvXC1vblwtaG9saWRheTsKK+iYryA8IHRvXC10b3NzXC1hYm91dDsKK+eVsOizqiA8IGhldGVyb2dlbmVvdXM7Civou4rnq5kgPCBcKGJ1c1wpXC1zdGF0aW9uOwor5Lqe5rSy5ZyL5a62IDwgYXNpYW5cLWNvdW50cnk7CivmmrTpoqjpqZ/pm6ggPCB2aW9sZW50XC1zdG9ybTsKK+iUjiA8IHRoZWFcLXNpbmVuc2lzOwor5YKZ6IezIDwgdG9cLXRoZVwtdXRtb3N0Owor6JG9IDwgdHlwZVwtb2ZcLWdyYWluOwor6I+8IDwgcnVzaFwtb3JcLXNlZGdlOwor6I+6IDwgYWx0aGFlYVwtcm9zZWE7Civot5HpnosgPCBydW5uaW5nXC1zaG9lczsKK+iPkSA8IHRvXC13ZWVkXC1ncmFzczsKK+WgseWWriA8IHRheGF0aW9uXC1mb3JtOwor6I6nIDwgZWRpYmxlXC1ncmVlbnM7CivojKUgPCBydWJ1c1wtdG9ra3VyYTsKK+mRkuizniA8IHRvXC1hcHByZWNpYXRlOwor6IuYIDwgaW5kaWFuXC1tYWxsb3c7CivpgJnkvY0gPCB0aGlzXC1cKHBlcnNvblwpOwor5Zuw56qYIDwgZW1iYXJyYXNzbWVudDsKK+mZjeS4liA8IGNvbWVcLXRvXC1lYXJ0aDsKK+iEpSA8IHBlbHZpY1wtY2F2aXR5Owor5L6/6aOvIDwgYVwtc2ltcGxlXC1tZWFsOwor6IOyIDwgaHlkcm94eWxhbWluZTsKK+i8u+ainSA8IFwod2hlZWxcKVwtc3Bva2U7Civlpb3lub7lubQgPCBzZXZlcmFsXC15ZWFyczsKK+e9syA8IHdvb2Rlblwtc2NyZWVuOwor57yHIDwgcmVkZGlzaFwtY29sb3I7CivmiZPplosgPCB0b1wtYnJlYWtcLW9wZW47CivllK7npajomZUgPCB0aWNrZXRcLW9mZmljZTsKK+eZvOaPriA8IGJyaW5nXC10b1wtYmVhcjsKK+ezrSA8IHJpY2VcLWR1bXBsaW5nOwor5o2J5Y+W5ZyW5YOPIDwgY2FwdHVyZVwtaW1hZ2U7Civnsb4gPCB1bmh1bGxlZFwtcmljZTsKK+exnCA8IGJhbWJvb1wtc2hlYXRoOwor5YWt6bue5Y2KIDwgaGFsZlwtcGFzdFwtc2l4Owor6ZaL5b+DIDwgdG9cLWZlZWxcLWhhcHB5Owor54Sh5oSP6K2YIDwgdW5jb25zY2lvdXNseTsKK+WvpumplyA8IHRvXC1leHBlcmltZW50Owor56y1IDwgYVwtYmFtYm9vXC1mb3JtOwor56ytIDwgYmFtYm9vXC1zY3JlZW47CivovYnlvY4gPCB0dXJuXC1cKGFyb3VuZFwpOwor5qGI6aCtIDwgb25cLW9uZScnc1wtZGVzazsKK+aLnOmHkeS4u+e+qSA8IG1vbmV5XC13b3JzaGlwOwor5rC45LmF5ZKM5bmzIDwgbGFzdGluZ1wtcGVhY2U7CivnoJ4gPCB0b1wtc21hc2hcLXJvY2s7Civnn54gPCBib3JlXC13aXRoXC1hd2w7CivovqjliKUgPCBkaWZmZXJlbnRpYXRlOwor5oqE6KWyIDwgdG9cLXBsYWdpYXJpemU7CivovqbliLAgPCB0b1wtYWNjb21wbGlzaDsKK+WFiOW+jCA8IGluXC1zdWNjZXNzaW9uOwor55Wc6IKlIDwgYW5pbWFsXC1tYW51cmU7Civmjqjli5XlipsgPCBkcml2aW5nXC1mb3JjZTsKK+aLiee+jiA8IGxhdGluXC1hbWVyaWNhOwor5qC46Zu7IDwgbnVjbGVhclwtcG93ZXI7Civotorph44gPCBjcm9zc1wtY291bnRyeTsKK+eSgiA8IGphZGVcLW9ybmFtZW50Owor55CVIDwgdHlwZVwtb2ZcLXBlYXJsOwor542ZIDwgZGllXC12aW9sZW50bHk7CivlhazlnJIgPCBhXC1wdWJsaWNcLXBhcms7Civnmb7lp5MgPCBjb21tb25cLXBlb3BsZTsKK+WTiOiWqeWFi+S6uiA8IGthemFraFwtcGVyc29uOwor54G95Y2AIDwgZGlzYXN0ZXJcLWFyZWE7Civpgb/poqjomZUgPCBsZWVcLFwtd2luZHN0b3A7CivniYEgPCBtb29yaW5nXC1zdGFrZTsKK+ani+aIkCA8IHRvXC1jb25zdGl0dXRlOwor54awIDwgZ3JlYXRcLWRyb3VnaHQ7Civkv53ol48gPCBrZWVwXC1pblwtc3RvcmU7CivnkZ7pppkgPCB3aW50ZXJcLWRhcGhuZTsKK+aLjOeoriA8IHNlZWRcLWRyZXNzaW5nOwor57GM5o6qIDwgcmFpc2VcLVwobW9uZXlcKTsKK+ajhOe9riA8IHRvXC10aHJvd1wtYXdheTsKK+S9v+eUqOmHjyA8IHZvbHVtZVwtb2ZcLXVzZTsKK+izo+m7niA8IHNlbGxpbmdcLXBvaW50Owor55im5byxIDwgdGhpblwtYW5kXC13ZWFrOwor5rWsIDwgbmF1dGljYWxcLW1pbGU7Civnmb3ljKogPCB3aGl0ZVwtYmFuZGl0czsKK+iCiemrlCA8IHBoeXNpY2FsXC1ib2R5Owor5qy1IDwgdG9cLXRyZWF0XC13ZWxsOwor5qyTIDwgYVwtY3Jvc3NcLXBpZWNlOwor5Y2K5bCO6auUIDwgc2VtaWNvbmR1Y3RvcjsKK+WCmeahiCA8IHB1dFwtb25cLXJlY29yZDsKK+arjCA8IGFcLWtpbmRcLW9mXC1ob2U7Civmqq4gPCBibG9ja1wtb2ZcLXdvb2Q7Civlt6HoiKrlsI7lvYggPCBjcnVpc2VcLW1pc3NsZTsKK+S4jeWPr+iDveeahOS6iyA8IGltcG9zc2liaWxpdHk7CivmpowgPCB3b29kZW5cLWxhZGRlcjsKK+eZvuWIhuS5i+S6lOWNgSA8IGZpZnR5XC1wZXJjZW50Owor6ayl5b+XIDwgd2lsbFwtdG9cLWZpZ2h0Owor5omB6I2zIDwgaHlhY2ludGhcLWJlYW47Civnmb7lgI0gPCBhXC1odW5kcmVkZm9sZDsKK+almSA8IG5hbWVcLW9mXC1wbGFudDsKK+ethuetkiA8IHBlblwtY29udGFpbmVyOwor5qK5IDwgdGhlXC1hcmVjYVwtbnV0Owor5a+26JeNIDwgc2FwcGhpcmVcLWJsdWU7Civmoo4gPCBzaWNrbGVcLWhhbmRsZTsKK+agsCA8IGFcLWJhbWJvb1wtcmFmdDsKK+a7sueisyA8IGNhcmJ1cml6YXRpb247CivmmrTlipvniq/nvaogPCB2aW9sZW50XC1jcmltZTsKK+acqSA8IGt3dWt5ZWxcOlwtcmFuazsKK+a4oemBjiA8IHRvXC1jcm9zc1wtb3ZlcjsKK+Wtl+mbhiA8IGNoYXJhY3Rlclwtc2V0Owor6aeB5q685qeNIDwgbWF1c2VyXC1waXN0b2w7CivkvZXopb/pmL/mm7ggPCBib29rXC1vZlwtaG9zZWE7CivnqbrpgYsgPCBhaXJcLXRyYW5zcG9ydDsKK+Wlp+WFi+aLieiNt+mmrOW4giA8IG9rbGFob21hXC1jaXR5Owor5pCiIDwgdG9cLXN0aWNrXC1pbnRvOwor5o6tIDwgdG9cLW1hbmlwdWxhdGU7CivmjLYgPCBob2xkXC1pblwtaGFuZHM7Civmi5UgPCB0b1wtZHJhZ1wtYWZ0ZXI7CivmioMgPCB0b1wtY2xhcFwtaGFuZHM7CivkuI3miJDmlofms5UgPCB1bndyaXR0ZW5cLWxhdzsKK+aIuiA8IHN0b25lXC1ib2FyZGVyOwor5oi5IDwgaW5cLWRpZmZpY3VsdHk7Civpq5jpgJ/kuZnlpKrntrLot68gPCBmYXN0XC1ldGhlcm5ldDsKK+S4jeaWueS+vyA8IGluY29udmVuaWVuY2U7CivmspLntpPpqZcgPCBpbmV4cGVyaWVuY2VkOwor6KGo5bGkIDwgc3VyZmFjZVwtbGF5ZXI7CivmgL4gPCBtb3VudGFpblwtbmFtZTsKK+Wck+WRqCA8IGNpcmN1bWZlcmVuY2U7Civlvb0gPCBnb1wtdG9cLWFuZFwtZnJvOwor5b2yIDwgeWVsbG93XC1kcmFnb247CivlvZQgPCB0b1wtY2FydmVcLXdvb2Q7CivkuLvml6XlrbggPCBzdW5kYXlcLXNjaG9vbDsKK+eXheWusyA8IHBsYW50XC1kaXNlYXNlOwor5bewIDwgYW5cLWF0b21cLWdyb3VwOwor5ZSu6LKoIDwgdG9cLXNlbGxcLWdvb2RzOwor5bOCIDwgbmFtZVwtb2ZcLXBsYWNlOwor5pyJ5Yqp5LqOIDwgY29udHJpYnV0ZVwtdG87Civlr4AgPCBmZXVkYWxcLWVzdGF0ZTsKK+iIjOWwliA8IHRpcFwtb2ZcLXRvbmd1ZTsKK+ahiOeosSA8IGNvdW50ZXJcLXNjYWxlOwor5aqiIDwgYmVcLWplYWxvdXNcLW9mOwor5raI6ZiyIDwgZmlyZVwtZmlnaHRpbmc7CivllonntZAgPCBhZGFtJydzJydcLWFwcGxlOwor5bO25ZyLIDwgaXNsYW5kXC1uYXRpb247CivprKfkuosgPCBjYXVzZVwtdHJvdWJsZTsKK+S6rOmDvSA8IGt5b3RvXC1cKGphcGFuXCk7Civlm5vljYMgPCBmb3VyXC10aG91c2FuZDsKK+eVtuW5tCA8IGluXC10aG9zZVwtZGF5czsKK+WeuyA8IGFuXC1lbWJhbmttZW50Owor6LKh6L+3IDwgbW9uZXlcLWdydWJiZXI7CivkuInljYHlhIQgPCB0aHJlZVwtYmlsbGlvbjsKK+eQhuinoyA8IHRvXC1jb21wcmVoZW5kOwor5ZqaIDwgYXJndW1lbnRhdGl2ZTsKK+S4jeWHjea4ryA8IGljZVwtZnJlZVwtcG9ydDsKK+atpeipseapnyA8IHdhbGtpZVwtdGFsa2llOwor5a+G56K8IDwgXChzZWNyZXRcKVwtY29kZTsKK+evieWfjiA8IGZvcnRpZmljYXRpb247CivlkqEgPCBzaWRlXC1vZlwtbW91dGg7CivooZvlhbUgPCBcKGJvZHlcKVwtZ3VhcmRcKTsKK+iJvua7i+eXheaKl+mrlCA8IGFpZHNcLWFudGlib2R5Owor6ZuG57ea5ZmoIDwgaHViXC1cKG5ldHdvcmtcKTsKK+eWkeWVjyA8IGludGVycm9nYXRpb247Civlh58gPCB0b1wtYmVcLXJ1ZGVcLXRvOwor5ZaJ55enIDwgc2NhcmxldFwtZmV2ZXI7CivlgIvmgKcgPCBpbmRpdmlkdWFsaXR5Owor5YS5IDwgdG9cLWFjY3VtdWxhdGU7CivlhLIgPCB0b1wtc2F2ZVwtbW9uZXk7CivlhJsgPCB0b1wtc2tpcFwtYWJvdXQ7CivkuI3oiJLpgakgPCB1bmNvbWZvcnRhYmxlOwor5YKSIDwgcGVyc29uYWxcLW5hbWU7CivlhanljYPlubQgPCB0aGVcLXllYXJcLTIwMDA7CivmqJnmnKzon7IgPCBzcGlkZXJcLWJlZXRsZTsKK+WVn+ekuiA8IGVubGlnaHRlbm1lbnQ7CivpgLLlh7rlj6MgPCBpbXBvcnRcfGV4cG9ydDsKK+S4jeWPr+S+teeKr+asiiA8IGludmlvbGFiaWxpdHk7CivkvoIgPCB0b1wtY29tbWlzc2lvbjsKK+WQkeilv+WNlyA8IHNvdXRod2VzdHdhcmQ7Civoh7Tlh70gPCBzZW5kXC1hXC1sZXR0ZXI7CivkuaggPCB0aGVcLWJlZ2lubmluZzsKK+S2miA8IGRlY2F5ZWRcLXRvb3RoOwor5LaIIDwgYVwta2luZFwtb2ZcLXJhdDsKK+S1vyA8IGFcLXNpbGVudFwtZHJ1bTsKK+S1gSA8IGRlY2F5ZWRcLWRvdWdoOwor5LSwIDwgYVwtZmFtaWx5XC1uYW1lOwor5LK6IDwgYmlyZHNcLXNpbmdpbmc7CivksoUgPCB0aGVcLWdsb2JlZmlzaDsKK+SwuyA8IHRvXC1jYXRjaFwtZmlzaDsKK+aEj+itmCA8IGNvbnNjaW91c25lc3M7CivksLEgPCBuYW1lXC1vZlwtYVwtZ29kOwor5ZSu56Wo5ZOhIDwgdGlja2V0XC1zZWxsZXI7Civkr4UgPCBhXC1zd2lmdFwtaG9yc2U7CivkroggPCB0b1wtZ29cLXN3aWZ0bHk7Civkq78gPCBhXC1jb29sXC1icmVlemU7Civkq7QgPCB3ZWFrXC1hbmRcLWR1bGw7Civoga/ntaEgPCBjb21tdW5pY2F0aW9uOwor5ZSu56Wo5Y+jIDwgdGlja2V0XC13aW5kb3c7CivmiYHmk5QgPCBjYXJyeWluZ1wtcG9sZTsKK+SrgSA8IHRoZVwtZmlyc3RcLXNvbjsKK+SqqyA8IGFuY2llbnRcLW11c2ljOwor5KqSIDwgbGVhdGhlclwtcGFudHM7Civkqb4gPCBoZXJiXC1tZWRpY2luZTsKK+SppCA8IHRvXC1sZWFkXC1hblwtb3g7CivkqaMgPCBzaG9lXC1jdXNoaW9uczsKK+SpniA8IGFcLXNhZGRsZVwtZmxhcDsKK+SojiA8IGRlZXBcLWFuZFwtZGFyazsKK+WuieWumuWMliA8IHN0YWJpbGl6YXRpb247Civkp5YgPCBhXC1zbWFsbFwtbW91bmQ7CivkprQgPCBvcGVuXC10aGVcLWRvb3I7CivkprMgPCBiZXR3ZWVuXC1zdGVwczsKK+S6pOaPm+erryA8IHN3aXRjaGVkXC1wb3J0Owor5ZOA6JmfIDwgY3J5XC1waXRlb3VzbHk7CivkpqEgPCBhXC1kb29yXC1rZWVwZXI7CivkpakgPCBob29rc1wtdG9cLWhhbmc7CivkpLUgPCBhXC10aW55XC1uZWVkbGU7CivkpI4gPCBzb3liZWFuXC1zYXVjZTsKK+SkgyA8IGRydW5rZW5cLXNvdW5kOwor5KOwIDwgdG9cLXBvb2xcLW1vbmV5Owor5KKnIDwgdG9cLWdvXC1mb3J3YXJkOwor5KKaIDwgYVwtbmFycm93XC1wYXRoOwor5KKDIDwgdG9cLWFkbWluaXN0ZXI7CivkoaUgPCBhXC1tb3ZpbmdcLWNhcnQ7Civkn5ggPCB0b1wtc3RyYWlnaHRlbjsKK+SfiiA8IHNob3J0XC1zdHJpZGVzOwor5qGC5p6XIDwgZ3VpbGluXC1cKGNpdHlcKTsKK+SegSA8IGNvcnJlc3BvbmRpbmc7CivknbYgPCB0b1wtbGV2eVwtdGF4ZXM7CivknawgPCBhXC13ZWFsdGh5XC1tYW47Civph5Hpu4MgPCBnb2xkZW5cLXllbGxvdzsKK+SbviA8IGZhbWlsaWFyXC13aXRoOwor5LiN55u45bmyIDwgYmVcLWlycmVsZXZhbnQ7Civnm67mqJnluILloLQgPCB0YXJnZXRcLW1hcmtldDsKK+SbkCA8IGFuXC1leHByZXNzaW9uOwor5aSp5puJ5b6XIDwgaGVhdmVuXC1rbm93c1whOwor5JqVIDwgdG9cLXNlYXJjaFwtb3V0Owor5Jm5IDwgdG9cLXZvbWl0XC1taWxrOwor5JmlIDwgc2hpbnlcLWRyZXNzZXM7CivkmaIgPCBzaG9ydFwtdFwtc2hpcnQ7CivkmaAgPCBzaG9ydFwtY2xvdGhlczsKK+SZnyA8IGhlYXZ5XC1jbG90aGVzOwor5JmeIDwgd29vbGVuXC1zdHJpbmc7CivkmYUgPCB0aGVcLXdhaXN0bGluZTsKK+i3qOWciyA8IHRyYW5zbmF0aW9uYWw7Civkl5cgPCB0aGVcLW1pbGxpcGVkZTsKK+SWqSA8IGFcLWtpbmRcLW9mXC1iZWU7CivklpEgPCBhXC13aGl0ZVwtdGlnZXI7CivklocgPCBmcmFncmFudFwtaGVyYjsKK+a8lOWHuiA8IFwoYWN0aW5nXClcLXBsYXk7CivlkIPpo68gPCB0b1wtZWF0XC1hXC1tZWFsOwor5JKOIDwgd2l0aG91dFwtY29sb3I7CivkkbIgPCB0b1wtcm93XC1hXC1ib2F0Owor5JGlIDwgYVwtbW92aW5nXC1ib2F0Owor5JCyIDwgaGFsZlwtcmF3XC1tZWF0Owor5JCZIDwgdGhlXC1kaWFwaHJhZ207Civkj5ggPCBhXC1iaWdcLWFiZG9tZW47Civkj4QgPCBub3RcLXRvXC1saXN0ZW47CivkuI3pgJogPCBiZVwtb2JzdHJ1Y3RlZDsKK+acgOmrmOazlemZoiA8IHN1cHJlbWVcLWNvdXJ0Owor5I29IDwgYVwtZmllcmNlXC1nb2F0Owor5I28IDwgc2FsdGVkXC1tdXR0b247CivkjaogPCBjYXN0cmF0ZWRcLXJhbTsKK+SNpCA8IHRvXC1zdHJhaW5cLW91dDsKK+aIkuaMhyA8IFwoZmluZ2VyXClcLXJpbmc7CivmnIDlvozmm7TmlrAgPCBsYXRlc3RcLXVwZGF0ZTsKK+SMmSA8IGhhbmtcLW9mXC1yb3BlczsKK+SMhSA8IGFcLXRoaWNrXC1yb3BlczsKK+SLpiA8IHJhdmVsbGVkXC1zaWxrOwor5IudIDwgYVwtdGhyb2F0XC1iYW5kOwor5p2P5LuB6LGG6IWQIDwgYWxtb25kXC1qdW5rZXQ7Civkir0gPCBhXC1maW5lXC10aHJlYWQ7CivkipQgPCBwb2xpc2hlZFwtcmljZTsKK+SJqSA8IGFcLWJhbWJvb1wtd2FyZTsKK+SJqCA8IGJhbWJvb1wtam9pbnRzOwor5Ii+IDwgbW92ZVwtYVwtbGl0dGxlOwor5IizIDwgYVwtd2luZG93XC1sZWFmOwor5bCR5bCHIDwgbWFqb3JcLWdlbmVyYWw7CivkhpogPCB0b1wtZ29cLXRocm91Z2g7CivmnZzntZUgPCBwdXRcLWFuXC1lbmRcLXRvOwor5IWbIDwgaHVza3NcLW9mXC1yaWNlOwor5IOzIDwgZmFsbGluZ1wtc3RvbmU7CivkgrYgPCB0aGVcLWNydXN0YWNlYTsKK+SClyA8IHRvXC1iZVwtY2FyZWZ1bDsKK+SCjiA8IGFcLXNob3J0XC1zcGVhcjsKK+SCgSA8IGFuXC1hbmdyeVwtbG9vazsKK+SBmSA8IGVsb3F1ZW50XC1leWVzOwor5ICuIDwgc2lnaHRcLWJsdXJyZWQ7CivkgK0gPCB3aXRoXC1iaWdcLWV5ZXM7CivkgJYgPCB0b1wtbG9va1wtdXBcLXRvOwor5ICVIDwgYW5ncnlcLWdsYW5jZXM7CivmmpfpjpYgPCBidWlsdFwtaW5cLWxvY2s7Civjv6wgPCBuYXNhbFwtZGlzZWFzZTsKK+O+vSA8IHN3ZWxsaW5nXC1mZWV0Owor472yIDwgZ3JpcGluZ1wtY29saWM7CivjvYcgPCB1bmJ1cm50XC10aWxlczsKK+O8tSA8IGFcLXNtYWxsXC1iYXNpbjsKK+O8nyA8IGFcLXRpbGVkXC1ob3VzZTsKK+O8jiA8IGFcLXNtYWxsXC1tZWxvbjsKK+O7viA8IGphZGVcLWFydGljbGVzOwor5ZCM55uf5ZyLIDwgY29uZmVkZXJhdGlvbjsKK+O6iCA8IHRvXC1nb1wtaHVudGluZzsKK+O5uSA8IGFcLWtpbmRcLW9mXC1kb2c7CivjubUgPCBhXC1odW50aW5nXC1kb2c7CivjubMgPCBhXC1raW5kXC1vZlwtYXBlOwor5oey5oiSIDwgdG9cLWRpc2NpcGxpbmU7CivpgJnnqK7mlrnlvI8gPCBcKGluXClcLXRoaXNcLXdheTsKK+S4i+iqsiA8IGNsYXNzXC1pc1wtb3ZlcjsKK+S4jeipsyA8IG5vdFwtaW5cLWRldGFpbDsKK+O4hCA8IGFcLXJhZ2luZ1wtZmlyZTsKK+O3viA8IGJsYXplXC1vZlwtZmlyZTsKK+WPjemfvyA8IHJlcGVyY3Vzc2lvbnM7Civjt5YgPCB0b1wtc2hpbmVcLXVwb247Civjt5UgPCBoZWFyaW5nXC1zb3VuZDsKK+O3kiA8IHRvXC1jb29rXC1tZWFsczsKK+O2mCA8IGZ1bGxcLW9mXC13YXRlcjsKK+Wlp+mBi+acgyA8IG9seW1waWNcLWdhbWVzOwor47WzIDwgY3J5c3RhbFwtY2xlYXI7CivjtaAgPCB0b1wtZ3VzaFwtZm9ydGg7CivjtL0gPCB3YXRlclwtY3VycmVudDsKK+O0qyA8IGdyZWF0XC1mbG93aW5nOwor47SmIDwgdG9cLXdhc2hcLWhhbmRzOwor47SlIDwgZ3JlYXRcLWJpbGxvd3M7CivjtJAgPCBncmVhdFwtY3VycmVudDsKK+S/neitt+S4u+e+qSA8IHByb3RlY3Rpb25pc207CivjspsgPCBoYWlyeVwtYW5pbWFsczsKK+WcqOacquS+hiA8IGluXC10aGVcLWZ1dHVyZTsKK+Wuv+aAqCA8IGFuXC1vbGRcLWdydWRnZTsKK+OwuyA8IGFzc2VzXC1icmF5aW5nOwor47CPIDwgYVwtYmFtYm9vXC1wb2xlOwor47CMIDwgdG9cLW1vbm9wb2xpemU7Civjrb8gPCBvYmxpcXVlXC1hbmdsZTsKK+WWruWtkCA8IGxpc3RcLW9mXC1pdGVtczsKK+OtkyA8IGFcLXBpbGxhclwtYXJjaDsKK+iyoueNuyA8IHRvXC1jb250cmlidXRlOwor46ylIDwgdG9cLXN1blwtdG9cLWFpcjsKK+WPq+mGkiA8IHRvXC1jYWxsXC1hd2FrZTsKK+OshCA8IHdhcm1cLWFuZFwtZGFtcDsKK+OrnyA8IGRheVwtYWZ0ZXJcLWRheTsKK+WNl+e+jua0siA8IHNvdXRoXC1hbWVyaWNhOwor576O6KGTIDwgdGhlXC1maW5lXC1hcnRzOwor46mlIDwgZGVsaWNhdGVcLWhhbmQ7CivjqJ4gPCB0b1wtZmVlbFwtYWJvdXQ7Civjp7wgPCB0b1wtZGlzdHJpYnV0ZTsKK+OntyA8IHRvXC13aXBlXC10ZWFyczsKK+OmqyA8IGxheFwtYW5kXC1jcnVkZTsKK+OmjCA8IGtlZW5cLW9yXC1zaGFycDsKK+OlvCA8IHRvXC1iZVwtbmVhclwtdG87Civjo78gPCBwYWluZnVsbHlcLXNhZDsKK+OjpCA8IHRvXC10cmVhZFwtdXBvbjsKK+OiuyA8IHRvXC1kcmF3XC1hXC1ib3c7CivjopYgPCBhXC1zdG9yZVwtaG91c2U7CivkuIPnmb7okKwgPCBzZXZlblwtbWlsbGlvbjsKK+OgtCA8IGFcLXBpbGxvd1wtY2FzZTsKK+OgmyA8IG5hbWVcLWFcLWNvdW50eTsKK+aciOeQg+ihqOmdoiA8IGx1bmFyXC1zdXJmYWNlOwor45+tIDwgdGhlXC1taW5cLXJpdmVyOwor6IO95aSgIDwgYmVcLWNhcGFibGVcLW9mOwor456sIDwgY2xvc2VcLW9yXC1uZWFyOwor456LIDwgc29mdFwtYW5kXC1tZWVrOwor5a625bGsIDwgZmFtaWx5XC1tZW1iZXI7CivjnbsgPCBiYXJlbHlcLWVub3VnaDsKK+OdgyA8IHRvXC1iZWFyXC1hXC1zb247CivlnLDmlrnlgZzou4ogPCBwYXJraW5nXC1wbGFjZTsKK+ObkiA8IGNhblwtbm90XC1zcGVhazsKK+OatCA8IGFcLXByZXR0eVwtZ2lybDsKK+m8u+a3tSA8IG5hc29zaW51c2l0aXM7Civmh4LlvpcgPCB0b1wtdW5kZXJzdGFuZDsKK+OYmyA8IGFcLWRlZXBcLXZhbGxleTsKK+acieiJr+W/gyA8IGNvbnNjaWVudGlvdXM7CivjmJMgPCBwcm9saXhcLXNwZWVjaDsKK+OYiSA8IHRvXC1tYWtlXC1zb3VuZDsKK+OXtCA8IGRvZ3NcLWZpZ2h0aW5nOwor45WwIDwgc291bmRcLWFuZ3JpbHk7CivjlaogPCBiaXJkcycnXC1jaGlycHM7CivjlZkgPCBhXC13aWx5XC1yYWJiaXQ7CivjlYkgPCB0b1wtZGlnXC1hXC1ob2xlOwor45SlIDwgZnVsbFwtb2ZcLWFuZ2VyOwor45O0IDwgdG9cLWN1dFwtaW5cLXR3bzsKK+WNium7niA8IHRoZVwtbGVhc3RcLWJpdDsKK+OTliA8IGJpdHRlcmx5XC1jb2xkOwor5Lul5aSq57ay57Wh56uv5Y+jIDwgZXRoZXJuZXRcLXBvcnQ7CivjkaUgPCBkaXNyZXNwZWN0ZnVsOwor6Ymb562GIDwgXChsZWFkXClcLXBlbmNpbDsKK+WWruWQkSA8IHVuZGlyZWN0aW9uYWw7CivjkLAgPCB0b1wtYmVsaWV2ZVwtaW47Civlj5fos4QgPCBhY2NlcHRcLWJyaWJlczsKK+m8u+mjvOazlSA8IG5hc2FsXC1mZWVkaW5nOwor55+l5ZCN5Lq65aOrIDwgcHVibGljXC1maWd1cmU7CivntITmi7/mm7ggPCBib29rXC1vZlwtam9uYWg7CivkvovlgYcgPCBsZWdhbFwtaG9saWRheTsKK+awtOmdoiA8IHdhdGVyXC1zdXJmYWNlOwor5q2l6KGM6J+yIDwgZ3JvdW5kXC1iZWV0bGU7Civnp7vmrpYgPCB0b1wtdHJhbnNwbGFudDsKK+i1t+S8jyA8IHVwc1wtYW5kXC1kb3duczsKK+iuiuiqvyA8IG1vZGlmaWVkXC10b25lOwor5Y+L6Kq8IDwgY29tcGFuaW9uc2hpcDsKK+e+juWci+Wci+acgyA8IHVcLnNcLlwtY29uZ3Jlc3M7Civlk4DmqIIgPCBmdW5lcmFsXC1tdXNpYzsKK+S4jeW5uOeahOaYryA8IHVuZm9ydHVuYXRlbHk7Civlr4zkuo4gPCB0b1wtYmVcLWZ1bGxcLW9mOwor5L6/5q2l6LWwIDwgbWFyY2hcLWF0XC1lYXNlOwor6IGy5bi2IDwgdm9jYWxcLWNvcmRcKHNcKTsKK+S4jeefpSA8IHVua25vd2luZ1wobHlcKTsKK+Wtq+WlsyA8IGdyYW5kZGF1Z2h0ZXI7CivlhYnnupbpm7vnupwgPCBvcHRpY2FsXC1maWJlcjsKK+ekvuS6pOiqnuiogCA8IGxpbmd1YVwtZnJhbmNhOwor5ra85b+rIDwgbmljZVwtYW5kXC1jb2xkOwor5LiJ55m+IDwgdGhyZWVcLWh1bmRyZWQ7CivpgKPmjqXoh7MgPCB0b1wtY29ubmVjdFwtdG87CivkuqzmiLIgPCBiZWlqaW5nXC1vcGVyYTsKK+S9juS6jiA8IGJlXC1sb3dlclwtdGhhbjsKK+mztuWwvuiKsSA8IGlyaXNcLVwoZmxvd2VyXCk7CivljZfpg6ggPCBzb3V0aGVyblwtcGFydDsKK+iuiuiJsiA8IGNoYW5nZVwtY29sb3VyOwor5Y2K5a6Y5pa5IDwgc2VtaVwtb2ZmaWNpYWw7CivljJfpnaIgPCBub3J0aGVyblwtc2lkZTsKK+S4iuePrSA8IHRvXC1nb1wtdG9cLXdvcms7Civnmb7np5Hlhajmm7ggPCBlbmN5Y2xvcGFlZGlhOwor5ZCE56iuIDwgZXZlcnlcLWtpbmRcLW9mOwor6LKd5b2rIDwgc2hlbGxcLWNhcnZpbmc7Civml6Xou40gPCBqYXBhbmVzZVwtYXJteTsKK+WKn+eOh+aDoeWMliA8IHBvd2VyXC1wZW5hbHR5Owor5Y2X6LaKIDwgc291dGhcLXZpZXRuYW07CivmhJvmho4gPCBsb3ZlXC1hbmRcLWhhdGU7Civogbflk6EgPCBvZmZpY2VcLXdvcmtlcjsKK+a0i+a6oiA8IGJyaW1taW5nXC13aXRoOwor5LiN5Y+v5oqX5YqbIDwgZm9yY2VcLW1hamV1cmU7CivljZToqr8gPCB0b1wtY29vcmRpbmF0ZTsKK+Wkp+mYqiA8IG9zYWthXC1cKGphcGFuXCk7CivogIPmha4gPCB0b1wtdGhpbmtcLW92ZXI7CivnlJ/lkb3nmoTpgbrot6EgPCB0cmFjZVwtb2ZcLWxpZmU7CivljJfpg6ggPCBub3J0aGVyblwtcGFydDsKK+WFvOWuueaApyA8IGNvbXBhdGliaWxpdHk7Civop6Plo5PnuK4gPCB0b1wtZGVjb21wcmVzczsKK+acrOaEjyA8IG9yaWdpbmFsXC1pZGVhOwor5ZC45q+SIDwgdG9cLXRha2VcLWRydWdzOwor5Lit5ZyL6YqA6KGMIDwgYmFua1wtb2ZcLWNoaW5hOwor5rOz5rGgIDwgc3dpbW1pbmdcLXBvbmQ7CivkuIDmraUgPCBcKHNpbmdsZVwpXC1zdGVwOwor5YyX6LaKIDwgbm9ydGhcLXZpZXRuYW07Civpn7/mh4nmmYLplpMgPCByZXNwb25zZVwtdGltZTsKK+mbnOmghSA8IG1pc2NlbGxhbmVvdXM7CivlgrPovLjmqKHlvI8gPCB0cmFuc2ZlclwtbW9kZTsKK+aOoeajieapnyA8IGNvdHRvblwtcGlja2VyOwor5aSW6YOoIDwgZXh0ZXJuYWxcLXBhcnQ7CivogZ7kurogPCBmYW1vdXNcLXBlcnNvbjsKK+WJjeaJgOacquaciSA8IHVucHJlY2VkZW50ZWQ7CivlkozlsJogPCBidWRkaGlzdFwtbW9uazsKK+iYh+W3niA8IHN1emhvdVwtXChjaXR5XCk7CivnpKbmsLQgPCBtaW5lcmFsXC13YXRlcjsKK+aakeawoyA8IFwoc3VtbWVyXClcLWhlYXQ7CivkuIDkuZ3kuZ3kuIPlubQgPCB0aGVcLXllYXJcLTE5OTc7Civlk4DlkYogPCBiZWdcLXBpdGVvdXNseTsKK+WkluiyvyA8IGZvcmVpZ25cLXRyYWRlOwor6YG/6ZujIDwgXFt0YWtlXF1cLXJlZnVnZTsKK+WMheiisSA8IGNsb3RoXC13cmFwcGVyOwor5oSf5YaSIDwgdG9cLWNhdGNoXC1jb2xkOwor5b2p6JqMIDwgcGFpbnRlZFwtc2hlbGw7Civoiq3olYnmiYcgPCBwYWxtXC1sZWFmXC1mYW47Civnpq7loIIgPCBhc3NlbWJseVwtaGFsbDsKK+e4veioiCA8IFwoZ3JhbmRcKVwtdG90YWw7CivlqJvmqIIgPCBlbnRlcnRhaW5tZW50Owor5Lit5a24IDwgbWlkZGxlXC1zY2hvb2w7CivkupTkuIAgPCA1XC0xXC1cKG1heVwtMXN0XCk7Civno4HniYcgPCBtYWduZXRpY1wtZGlzazsKK+acg+WgtCA8IG1lZXRpbmdcLXBsYWNlOwor5aq+5ZKMIDwgdG9cLW1ha2VcLXBlYWNlOwor5YWs5YWD5YmNIDwgYmVmb3JlXC1jaHJpc3Q7CivkuIrluIIgPCBvblwtdGhlXC1tYXJrZXQ7CivoqKrllY/mlrnlvI8gPCBhY2Nlc3NcLW1ldGhvZDsKK+aqlOahiOW7uueriyA8IGZpbGVcLWNyZWF0aW9uOwor56eB5YipIDwgcGVyc29uYWxcLWdhaW47CivpgbLpiI0gPCBzbG93XC1cKHdpdHRlZFwpOwor5rOi576O5bqmIDwgYmF1bWVcLWRlZ3JlZXM7CivljJfnvo4gPCBub3J0aFwtYW1lcmljYTsKK+e2k+mplyA8IHRvXC1leHBlcmllbmNlOwor5Ye655Sf5pel5pyfIDwgZGF0ZVwtb2ZcLWJpcnRoOwor5LiN5Y+v5oCd6K2wIDwgaW5jb25jZWl2YWJsZTsKK+agvOWtkOiKseWRoiA8IHBsYWlkXCxcLXRhcnRhbjsKK+axsuawtCA8IHRvXC1kcmF3XC13YXRlcjsKK+eNsuWLnSA8IGJlXC12aWN0b3Jpb3VzOwor6KeA6bueIDwgcG9pbnRcLW9mXC12aWV3Owor5Y2K5b6p6LO9IDwgZWlnaHRoXC1maW5hbHM7CivmsLTniZsgPCB3YXRlclwtYnVmZmFsbzsKK+mbmeeUn+WFhOW8nyA8IHR3aW5cLWJyb3RoZXJzOwor5ZCM5bm0IDwgdGhlXC1zYW1lXC15ZWFyOwor5pyA5aSn6YCf546HIDwgbWF4aW11bVwtc3BlZWQ7CivorormmJ8gPCB2YXJpYWJsZVwtc3RhcjsKK+mCiueVjOe3miA8IGJvdW5kYXJ5XC1saW5lOwor6JiH5L+EIDwgc292aWV0XC1ydXNzaWE7Civnj77lr6bmg4Xms4EgPCBjdXJyZW50XC1zdGF0ZTsKK+atpeihjCA8IHRvXC1nb1wtb25cLWZvb3Q7Civmk4XplbcgPCB0b1wtYmVcLWdvb2RcLWF0Owor5LiN5ZW7IDwgbm90XC1sZXNzXC10aGFuOwor54mM54WnIDwgbGljZW5zZVwtcGxhdGU7CivmlK/mjIHnjocgPCBzdXBwb3J0XC1sZXZlbDsKK+ippuS4gOippiA8IHRvXC1oYXZlXC1hXC10cnk7CivmmpflrrMgPCBraWxsXC1zZWNyZXRseTsKK+WMhee+heiQrOixoSA8IGFsbFwtZW1icmFjaW5nOwor5YuD6IiIIDwgcmlzZVwtc3VkZGVubHk7CivorormhYsgPCBtZXRhbW9ycGhvc2lzOwor5oCn5oW+IDwgc2V4dWFsXC1kZXNpcmU7CivljK/njocgPCBleGNoYW5nZVwtcmF0ZTsKK+ayu+WuiSA8IGxhd1wtYW5kXC1vcmRlcjsKK+imlumgu+evgOebriA8IHZpZGVvXC1wcm9ncmFtOwor6ZuM6IqxIDwgZmVtYWxlXC1mbG93ZXI7CivlhajkuJbnlYznrKzkuIAgPCB3b3JsZCcnc1wtZmlyc3Q7CivlpJrnqK4gPCBtYW55XC1raW5kc1wtb2Y7CivlkLjlhaUgPCB0b1wtYnJlYXRoZVwtaW47Civororlt6UgPCBleGNoYW5nZVwtd29yazsKK+S4i+iHs+S4iiA8IGJvdHRvbVwtdG9cLXRvcDsKK+WPl+WusyA8IHRvXC1iZVwtaW5qdXJlZDsKK+aJvuS4jeWIsCA8IGNvdWxkbicndFwtZmluZDsKK+axuuW/gyA8IGRldGVybWluYXRpb247CivkuIvku6QgPCBnaXZlXC1hblwtb3JkZXI7CivojqvpgIYgPCB2ZXJ5XC1mcmllbmRseTsKK+e+hemmrOWtl+avjSA8IHJvbWFuXC1sZXR0ZXJzOwor5q+U54axIDwgc3BlY2lmaWNcLWhlYXQ7CivkuI3lj6/lkI3ni4AgPCBpbmRlc2NyaWJhYmxlOwor556zIDwgcHVwaWxcLW9mXC1leWU7CivkuIcgPCB0ZW5cLXRob3VzYW5kOwor5biDIDwgY290dG9uXC1jbG90aDsKK+mAmiA8IHBhc3NcLXRocm91Z2g7Civmj5AgPCBob2xkXC1pblwtaGFuZDsKK+S6rCA8IGNhcGl0YWxcLWNpdHk7CivnlJogPCBncmVhdFwtZXh0ZW50Owor5ZGoIDwgemhvdVwtZHluYXN0eTsKK+WwuyA8IGVuZFwtb2ZcLXNwaW5lOwor5a60IDwgdG9cLWVudGVydGFpbjsKK+WusCA8IHRvXC1zbGF1Z2h0ZXI7Civniq8gPCBjb21taXRcLWNyaW1lOwor5amiIDwgc2VydmFudFwtZ2lybDsKK+WPgiA8IHRha2VcLXBhcnRcLWluOwor5o6MIDwgcGFsbVwtb2ZcLWhhbmQ7Civlp78gPCBvbmUnJ3NcLW1hbm5lcjsKK+WniSA8IGVsZGVyXC1zaXN0ZXI7CivmlpcgPCBjaGluZXNlXC1wZWNrOwor5ZG8IDwgYnJlYXRoZVwtc2lnaDsKK+ihnSA8IHJ1c2hcLWFnYWluc3Q7CivonrogPCBzcGlyYWxcLXNoZWxsOwor5Z2KIDwgbmVpZ2hib3Job29kOwor5bC8IDwgYnVkZGhpc3RcLW51bjsKK+m8viA8IHNub3JlXC1sb3VkbHk7Civlj7YgPCB0b1wtaGFybW9uaXplOwor6YeOIDwgb3BlblwtY291bnRyeTsKK+enuyA8IGNoYW5nZVwtcGxhY2U7CivllJAgPCB0YW5nXC1keW5hc3R5Owor56eAIDwgZWFyXC1vZlwtZ3JhaW47CivokrIgPCB0eXBlXC1vZlwtcnVzaDsKK+W6hiA8IGNvbmdyYXR1bGF0ZTsKK+iSnyA8IGJldGVsXC1wZXBwZXI7CivmsZcgPCBwZXJzcGlyYXRpb247Civmi5wgPCBkb1wtb2JlaXNhbmNlOwor6JmRIDwgYmVcLWNvbmNlcm5lZDsKK+WuiyA8IHNvbmdcLWR5bmFzdHk7Civog4YgPCBnYWxsXC1ibGFkZGVyOwor5YmWIDwgc3BsaXRcLWluXC10d287Civlh6QgPCBtYWxlXC1waG9lbml4Owor6K+iIDwgaW5xdWlyZVwtaW50bzsKK+etkSA8IGFuY2llbnRcLWx1dGU7CivlgbYgPCBhY2NpZGVudGFsbHk7Civpo70gPCBlYXRcLWhlYXJ0aWx5Owor6IOOIDwgdW5ib3JuXC1jaGlsZDsKK+aCnyA8IHRvXC1hcHByZWhlbmQ7CivogoUgPCBwYXlcLXJlc3BlY3RzOwor5L6YIDwgZGlzYXBwb2ludGVkOwor56WtIDwgc2FjcmlmaWNlXC10bzsKK+WuqiA8IGNvbnN0aXR1dGlvbjsKK+eikSA8IHN0b25lXC10YWJsZXQ7CivmmIwgPCBsaWdodFwtb2ZcLXN1bjsKK+aQuiA8IGxlYWRcLWJ5XC1oYW5kOwor5Y6mIDwgYmlnXC1idWlsZGluZzsKK+S7hiA8IGZhbGxcLWZvcndhcmQ7CivlpqUgPCBzYXRpc2ZhY3Rvcnk7Civmna0gPCBjcm9zc1wtc3RyZWFtOwor6LWgIDwgZ2l2ZVwtcHJlc2VudDsKK+iFlCA8IGNoZXN0XC1jYXZpdHk7CivlrZ0gPCBmaWxpYWxcLXBpZXR5Owor56y5IDwgc21hbGxcLWJhbWJvbzsKK+esmyA8IGJhbWJvb1wtZmx1dGU7CivmracgPCBmb3JrXC1vZlwtcm9hZDsKK+mJmyA8IGxlYWRcLXBsdW1idW07CivlloMgPCBrZWVwXC10YWxraW5nOwor6IixIDwgaG9sZFwtb2ZcLXNoaXA7CivphpwgPCB1Z2x5XC1sb29raW5nOwor6KOYIDwgZnVyXC1nYXJtZW50czsKK+agvSA8IHRvXC1jdWx0aXZhdGU7Civor6cgPCBiZVwtc3VycHJpc2VkOwor6ZiOIDwgdmlsbGFnZVwtZ2F0ZTsKK+aEoyA8IGJlXC1pblwtYVwtZGF6ZTsKK+eQqiA8IHR5cGVcLW9mXC1qYWRlOwor5ailIDwgYmVcLWJlYXV0aWZ1bDsKK+WSqiA8IHNvdW5kXC1vZlwtY2F0Owor5riXIDwgc29ha1wtdGhyb3VnaDsKK+iRqyA8IGJvdHRsZVwtZ291cmQ7CivlnaogPCBsZXZlbFwtZ3JvdW5kOwor5Z2eIDwgZW50cmVuY2htZW50Owor5qmhIDwgY2hlc3RudXRcLW9hazsKK+e1riA8IHdhc3RlXC1jb3R0b247Civot4QgPCB3YWxrXC1yYXBpZGx5Owor5bG5IDwgdG9cLXJpc2VcLWhpZ2g7Civmg5ggPCBkaXNjb25jZXJ0ZWQ7Civmj6kgPCBydWJcLWFuZFwtd2lwZTsKK+aloCA8IG5hbWVcLW9mXC10cmVlOwor6bqTIDwgZm9vdFwtb2ZcLWhpbGw7CivmgbsgPCBmZWVsXC1hbmd1aXNoOwor5qGFIDwgbWFzdFwtb2ZcLXNoaXA7CivpqosgPCBnYWxsb3BcLWhvcnNlOwor6LmSIDwgdG9cLWp1bXBcLW92ZXI7CivnpYAgPCB0b1wtc2FjcmlmaWNlOwor5a+wIDwgZ3JlYXRcLWRvbWFpbjsKK+aWkyA8IG11bHRpY29sb3JlZDsKK+S8qyA8IGxvb2tcLXRvd2FyZHM7Civouo8gPCB0cmFtcGxlXC1kb3duOwor5rK9IDwgYnV5XC1hbmRcLXNlbGw7Civnj6UgPCBlYXJcLW9ybmFtZW50Owor56yGIDwgYmFtYm9vXC1mZW5jZTsKK+iZrCA8IHlvdW5nXC1kcmFnb247Civmg6wgPCBiZVwtc2F0aXNmaWVkOwor57yoIDwgYVwtY2hpblwtc3RyYXA7Civlir4gPCBleGFtaW5lXC1pbnRvOwor5ZikIDwgc2Vla1wtZnJpZW5kczsKK+ivgyA8IHNjb2xkXC1sb3VkbHk7Civlhr0gPCBjb2xkXC1hbmRcLXJhdzsKK+mjqCA8IGhvc3RcLWJhbnF1ZXQ7CivmgI8gPCBkaXNjb250ZW50ZWQ7CivlhqIgPCBidXJpYWxcLW1vdW5kOwor5ZezIDwgaW50ZXJqZWN0aW9uOwor5a6VIDwgc3RvbmVcLXF1YXJyeTsKK+iAhiA8IG1hblwtb2ZcLXNpeHR5Owor6Z2TIDwgbWFrZVwtdXBcLWZhY2U7Civom7AgPCB0b1wtaGliZXJuYXRlOwor5o68IDwgdGhyb3dcLWdyb3VuZDsKK+WbpCA8IGdyYWluXC1iYXNrZXQ7CivnrbEgPCBkd2FyZlwtYmFtYm9vOwor5qifIDwgY2FtcGhvclwtdHJlZTsKK+mypSA8IHJlZXZlcycnXC1zaGFkOwor6YC1IDwgdGhvcm91Z2hmYXJlOwor5bK3IDwgbWluXC1tb3VudGFpbjsKK+aesCA8IHNtb290aFwtYm9hcmQ7CivlsZAgPCB3b29kZW5cLXNob2VzOwor6IObIDwgdGhlXC1zaG91bGRlcjsKK+m5niA8IHNwYXJyb3dcLWhhd2s7CivnioQgPCBhbmltYWxcLWhvcm5zOwor6Le5IDwgd2FuZGVyXC1hYm91dDsKK+aYsSA8IGJyaWdodFwtbGlnaHQ7CivmuYQgPCB3YXRlcicnc1wtZWRnZTsKK+iPhSA8IGNvYXJzZVwtZ3Jhc3M7Civnu7sgPCBhZmZlY3Rpb25hdGU7Civnr4EgPCBiYW1ib29cLWdyb3ZlOwor6LWFIDwgcHJlcGFyZWRcLWZvcjsKK+akgSA8IG91dGVyXC1jb2ZmaW47CivnurAgPCBzcG9pbGVkXC1zaWxrOwor6byLIDwgbGFyZ2VcLXR1cnRsZTsKK+mGkCA8IHB1cmVzdFwtY3JlYW07CivpvokgPCB1bmV2ZW5cLXRlZXRoOwor6Iu7IDwga2luZFwtb2ZcLWhlcmI7CivprKMgPCBob3JzZScnc1wtbWFuZTsKK+e8lyA8IGZpc2hpbmdcLWxpbmU7CivmuasgPCBhXC1zbWFsbFwtcG9uZDsKK+S7nyA8IG9uZVwtdGhvdXNhbmQ7CivomrYgPCBraW5kXC1vZlwtY2xhbTsKK+ibhCA8IG1vbGVcLWNyaWNrZXQ7Civmr4IgPCBodWJcLW9mXC13aGVlbDsKK+eVmiA8IHN0cmF3XC1iYXNrZXQ7CivmtIQgPCBhXC1iYWNrXC13YXRlcjsKK+mjpyA8IGV2ZW5pbmdcLW1lYWw7CivphqogPCB1bmNsZWFyXC13aW5lOwor6aqdIDwgZmFtb3VzXC1ob3JzZTsKK+mqkiA8IG1vdGhlclwtaG9yc2U7Civmh5QgPCBiZVwtYWZyYWlkXC1vZjsKK+WKkyA8IGN1dFwtb2ZmXC1ub3NlOwor6LiUIDwgdG9cLWdldFwtYWhlYWQ7CivpoqEgPCB0aGVcLWZvcmVoZWFkOwor5r2yIDwgZHJpdmluZ1wtcmFpbjsKK+e8ryA8IHNpbGtcLWZhYnJpY3M7CivnlJMgPCBnbGF6ZWRcLXRpbGVzOwor6I2sIDwgYVwtcGxhbnRcLW5hbWU7Civmn5IgPCBudW1iZXJcLXNldmVuOwor55izIDwgdG9cLWJlXC1oZWFsZWQ7CivosIcgPCBzcGVha1wtaWxsXC1vZjsKK+S5hyA8IHRvXC1kZXBlbmRcLW9uOwor5YW25LuW55qE5Lq6IDwgb3RoZXJcLXBlb3BsZTsKK+WKoOe3iiA8IHRvXC1pbnRlbnNpZnk7CivokKzkuovpgZQgPCBtYXN0ZXJcKGNhcmRcKTsKK+edoeimuiA8IHRvXC1nb1wtdG9cLWJlZDsKK+aXqeacnyA8IGVhcmx5XC1wZXJpb2Q7CivntITnj6Xmm7ggPCBib29rXC1vZlwtam9lbDsKK+WqkumrlOWgseWwjiA8IG1lZGlhXC1yZXBvcnQ7Civnm7jpl5wgPCBpbnRlcnJlbGF0ZWQ7Civoib7mu4vnl4XmgqPogIUgPCBhaWRzXC1wYXRpZW50Owor54Gr6b6NIDwgZmllcnlcLWRyYWdvbjsKK+WQiOS9nCA8IHRvXC1jb29wZXJhdGU7Civos6DlhJ/ph5EgPCBjb21wZW5zYXRpb247CivnsL/oqJjnrqHnkIblk6EgPCBjb21taXNzYXJpYW47CivmmbrlipsgPCBpbnRlbGxpZ2VuY2U7CivnpLrlqIHogIUgPCBkZW1vbnN0cmF0b3I7CivmmJTlubQgPCBmb3JtZXJcLXllYXJzOwor5ZKM5bmz5qKd57SEIDwgcGVhY2VcLXRyZWF0eTsKK+avm+S4u+W4rSA8IGNoYWlybWFuXC1tYW87CivnpKbkupUgPCBtaW5lXC1cKHNoYWZ0XCk7Civnhp/nn6UgPCBhY3F1YWludGFuY2U7CivmlK/npaggPCBcKGJhbmtcKVwtY2hlY2s7Civlu7rnr4nniakgPCBcKGFcKVwtYnVpbGRpbmc7Civlp5Dlp5AgPCBvbGRlclwtc2lzdGVyOwor6IKh56Wo5biC5aC0IDwgc3RvY2tcLW1hcmtldDsKK+mWseimveWupCA8IHJlYWRpbmdcLXJvb207CivorabloLEgPCBcKGZpcmVcKVwtYWxhcm07CivlvozmnpwgPCBjb25zZXF1ZW5jZXM7CivkuI3lkI3orb0gPCBkaXNyZXB1dGFibGU7CivmlLbnm6QgPCBtYXJrZXRcLWNsb3NlOwor5Z+O6ZiyIDwgY2l0eVwtZGVmZW5jZTsKK+mgguS9jyA8IHRvXC13aXRoc3RhbmQ7Civopb/pg6ggPCB3ZXN0ZXJuXC1wYXJ0Owor5aW95oSfIDwgZ29vZFwtb3BpbmlvbjsKK+apn+aisOeivCA8IG1hY2hpbmVcLWNvZGU7CivlpLHmpa0gPCB1bmVtcGxveW1lbnQ7Civmk4Xoh6ogPCB1bmF1dGhvcml6ZWQ7CivlpKfpqZrlpLHoibIgPCBhcHByZWhlbnNpdmU7Civpq5jlsaTml4XppKggPCBsdXh1cnlcLWhvdGVsOwor6YCV6IeqIDwgb25cLW9uZScnc1wtb3duOwor6L+R6KaWIDwgc2hvcnRzaWdodGVkOwor5q2l54qBIDwgd2Fsa2luZ1wtcGxvdzsKK+S4jeaIkOWKnyA8IHVuc3VjY2Vzc2Z1bDsKK+awtOa7uOWCsyA8IHdhdGVyXC1tYXJnaW47CivkuI3ph43oppYgPCBpbmRpZmZlcmVuY2U7Civplovpl5wgPCBwb3dlclwtc3dpdGNoOwor5Y675LiWIDwgdG9cLXBhc3NcLWF3YXk7Civkup7mtLLoiIflpKrlubPmtIsgPCBhc2lhXC1wYWNpZmljOwor5Y2B5Lmd5q2yIDwgMTlcLXllYXJzXC1vbGQ7CivpnYjnmoTkuJbnlYwgPCBzcGlyaXRcLXdvcmxkOwor5aSa5pa5IDwgaW5cLW1hbnlcLXdheXM7CivmkLbos7wgPCBwYW5pY1wtYnV5aW5nOwor5beh6L+0IDwgdG9cLWdvXC1hcm91bmQ7CivpgJnnqK4gPCB0aGlzXC1raW5kXC1vZjsKK+Wkp+aEjyA8IGdlbmVyYWxcLWlkZWE7CivljYrmlofnm7IgPCBzZW1pbGl0ZXJhdGU7CivliKXnqLEgPCBhbm90aGVyXC1uYW1lOwor5q2l5q2lIDwgc3RlcFwtYnlcLXN0ZXA7CivljZTllYYgPCBjb25zdWx0XC13aXRoOwor55+u5pifIDwgZHdhcmZcLVwoc3RhclwpOwor5qC45q2m5Zmo6Kmm6amXIDwgbnVjbGVhclwtdGVzdDsKK+S4meeDr+mFuCA8IGFjcnlsaWNcLWFjaWQ7CivljYrnhp/nt7QgPCBzZW1pXC1za2lsbGVkOwor6YKj5pmCIDwgYXRcLXRoYXRcLXRpbWU7CivlkIPkuI3plosgPCBiZVwtdW5wb3B1bGFyOwor5aSn5birIDwgZ3JlYXRcLW1hc3RlcjsKK+e1hOe5lCA8IG9yZ2FuaXphdGlvbjsKK+WHuuS5jumgkOaWmSA8IHVuZXhwZWN0ZWRseTsKK+mAmueUqCA8IGNvbW1vblwtXCh1c2VcKTsKK+WkmuW3pSA8IHRvXC1tdWx0aXBsZXg7Civns77okZsgPCBlbnRhbmdsZW1lbnQ7CivoqabmjqIgPCB0b1wtc291bmRcLW91dDsKK+Wkq+WmuyA8IG1hblwtYW5kXC13aWZlOwor5Zyw5pa55Li7576pIDwgXCJsb2NhbFwtXC1pc21cIjsKK+mBk+atiSA8IHRvXC1hcG9sb2dpemU7CivmlYXmhI8gPCBkZWxpYmVyYXRlbHk7Civoq4vllY8gPCBtYXlcLWlcLWFza1wuXC5cLjsKK+a/gOWFieWUseeJhyA8IGNvbXBhY3RcLWRpc2s7CivkuozljYHkuIDkuJbntIAgPCAyMXN0XC1jZW50dXJ5Owor5Ye655m8IDwgdG9cLXN0YXJ0XC1vdXQ7CivnuK7lr6sgPCBhYmJyZXZpYXRpb247CivkuK3lpK7pioDooYwgPCBjZW50cmFsXC1iYW5rOwor5aOB5o6bIDwgd2FsbFwtaGFuZ2luZzsKK+eGn+aCiSA8IHRvXC1rbm93XC13ZWxsOwor54af5oCdIDwgZGVsaWJlcmF0aW9uOwor5pW05aSpIDwgYWxsXC1kYXlcLWxvbmc7CivpsYnnlLIgPCB0dXJ0bGVcLXNoZWxsOwor6Lqr6auUIDwgXChodW1hblwpXC1ib2R5Owor5pav5a+G57SE55GfIDwgam9zZXBoXC1zbWl0aDsKK+ezvue6jyA8IGJlXC1lbnRhbmdsZWQ7CivkuI3lkIjnkIYgPCB1bnJlYXNvbmFibGU7Civnm67liY3kuJbnlYwgPCBtb2Rlcm5cLXdvcmxkOwor6KSH6KO9IDwgdG9cLWR1cGxpY2F0ZTsKK+maiuaXlyA8IHRlYW1cLXBlbm5hbnQ7CivliqDlvLcgPCB0b1wtcmVpbmZvcmNlOwor5Ye6542EIDwgbGVhdmVcLXByaXNvbjsKK+S4jeaEieW/qyA8IGRpc2FncmVlYWJsZTsKK+irh+WIpCA8IHRvXC1uZWdvdGlhdGU7CivnnIvnl4UgPCBzZWVcLWFcLWRvY3RvcjsKK+awkeaEj+iqv+afpSA8IG9waW5pb25cLXBvbGw7CivlvojkuI0gPCB2ZXJ5XC11blwtXC5cLlwuXC47Civmr4XlipsgPCBwZXJzZXZlcmFuY2U7CivokL3lr6YgPCB0b1wtaW1wbGVtZW50Owor5pSv5bqXIDwgYnJhbmNoXC1zdG9yZTsKK+m9hiA8IHN0dWZmZWRcLW5vemU7CivpvL0gPCBjbG9nZ2VkXC1ub3NlOwor55m96JavIDwgc3dlZXRcLXBvdGF0bzsKK+e2teaXlyA8IGNvbG9yZWRcLWZsYWc7CivppIrpm57loLQgPCBjaGlja2VuXC1mYXJtOwor6bqVIDwgbXVudGphY1wtZGVlcjsKK+ePvuS7o+mfs+aogiA8IG1vZGVyblwtbXVzaWM7Civlm57poacgPCB0b1wtbG9va1wtYmFjazsKK+aureWMliA8IGJlY29tZVwtcmlnaWQ7Civps5AgPCB0aGVcLW5hdXRpbHVzOwor6bGRIDwgdGhlXC1zdHVyZ2VvbjsKK+mxgiA8IG5hbWVcLW9mXC1maXNoOwor6KO96YCg5qWt6ICFIDwgbWFudWZhY3R1cmVyOwor6Iad5LiK5Z6LIDwgbGFwdG9wXC1cKGFkalwpOwor54CP6Ka9IDwgdG9cLXNraW1cLW92ZXI7Civlv4PnkIblrbjlrrYgPCBwc3ljaG9sb2dpc3Q7CivpraYgPCBzaGFya1wtZmFtaWx5Owor6ay1IDwgYmlnXC1pcm9uXC1wb3Q7CivprIUgPCB1bmtlbXB0XC1oYWlyOwor6Kqy5L2ZIDwgYWZ0ZXJcLXNjaG9vbDsKK+i7iumBkyA8IHRyYWZmaWNcLWxhbmU7CivmraPlpoIgPCBiZVwtanVzdFwtbGlrZTsKK+mpiCA8IGJsYWNrXC1ob3JzZXM7CivpqIYgPCBkaXZpbmVcLWhvcnNlOwor6aecIDwgc3Ryb25nXC1ob3JzZTsKK+mnlyA8IGNoYXR0ZXJcLW1hcms7CivmnInmop3mnInnkIblnLAgPCBtZXRob2RpY2FsbHk7CivkuI3mmK/njqnlhZLnmoQgPCBpdCcnc1wtbm9cLWpva2U7Civlr6bpmpvmgKcgPCBwcmFjdGljYWxpdHk7CivljYHkuIDlubQgPCBlbGV2ZW5cLXllYXJzOwor6aSAIDwgdGFpbnRlZFwtZm9vZDsKK+S4jeiDveaKteaKlyA8IGlycmVzaXN0aWJsZTsKK+mirSA8IHN3YXlcLWluXC13aW5kOwor57SZ54mMIDwgcGxheWluZ1wtY2FyZDsKK+mepiA8IGxlYXRoZXJcLXN0YXA7CivpgY7looPnsL3oqLwgPCB0cmFuc2l0XC12aXNhOwor6ZyRIDwgYmVcLW1vaXN0ZW5lZDsKK+mZgSA8IGFcLXN0ZWVwXC1iYW5rOwor55m857SFIDwgZmx1c2hcLVwoZmFjZVwpOwor6ZuG5ZCIIDwgY29uZ3JlZ2F0aW9uOwor6YCf5oiQIDwgY3Jhc2hcLWNvdXJzZTsKK+mXkSA8IHRoZVwtZG9vcnNpbGw7CivlhYnnt5ogPCBvcHRpY2FsXC1saW5lOwor6ZWoIDwgcHJhc2VvZHltaXVtOwor5Yqq5YqbIDwgZ3JlYXRcLWVmZm9ydDsKK+W8leWFpSA8IHRvXC1kcmF3XC1pbnRvOwor5bug5Z2AIDwgZmFjdG9yeVwtc2l0ZTsKK+mPtyA8IHByb3RhY3Rpbml1bTsKK+ebuOS8vOaApyA8IHJlc3NlbWJsYW5jZTsKK+mdnuWQjOatpSA8IGFzeW5jaHJvbm91czsKK+mNiiA8IHNtZWx0XC1tZXRhbHM7CivpjIggPCB0b1wtYmVuZFwtaXJvbjsKK+WCs+mBk+abuCA8IGVjY2xlc2lhc3RlczsKK+maqOWQjCA8IGFjY29tcGFueWluZzsKK+iAtuepjOWfuuedoyA8IGplc3VzXC1jaHJpc3Q7CivnhpLlhYkgPCBmbG91cmVzY2VuY2U7CivoqJjogIXloLHlsI4gPCBwcmVzc1wtcmVwb3J0Owor6YeqIDwgYW5cLWFsbXNcLWJvd2w7Civlu6PlkYogPCB0b1wtYWR2ZXJ0aXNlOwor6Ya9IDwga2luZFwtb2ZcLXdpbmU7CivmjKjov5EgPCBnZXRcLWNsb3NlXC10bzsKK+e3qOWKhyA8IHdyaXRlXC1hXC1wbGF5Owor5aOT5YCSIDwgb3ZlcndoZWxtaW5nOwor5o6h6ISCIDwgdHJlZVwtdGFwcGluZzsKK+mDmSA8IHRvXC1iZVwtZXhpbGVkOwor6YKyIDwgZ29vZFwtbG9va2luZzsKK+i/oyA8IHRvXC1sZWFwXC1vdmVyOwor6YCf5a+rIDwgcXVpY2tcLXNrZXRjaDsKK+WkmuW3peS9nOalrSA8IG11bHRpdGFrc2luZzsKK+eZvOiogOS6uiA8IHNwb2tlc3BlcnNvbjsKK+i4vCA8IHRvXC1mYWxsXC1mbGF0Owor6LikIDwgYnV0dFwtYWdhaW5zdDsKK+mbhuS4reWZqCA8IGNvbmNlbnRyYXRvcjsKK+S4jeWkp+mbouWFkiA8IHByZXR0eVwtY2xvc2U7CivpgLHlnI0gPCBzdXJyb3VuZGluZ3M7Civmv77ntJkgPCBmaWx0ZXJcLXBhcGVyOwor6LOJIDwgdG9cLWdpdmVcLWFsbXM7CivosoYgPCBzbWFsbFwtYmFkZ2VyOwor6LG2IDwgY2FzdHJhdGVcLXBpZzsKK+i2s+eQg+i/tyA8IGZvb3RiYWxsXC1mYW47CivmnKzkvobpnaLnm64gPCB0cnVlXC1jb2xvdXJzOwor6Kiq5L+EIDwgdmlzaXRcLXJ1c3NpYTsKK+aLlOmMqCA8IHdlaWdoXC1hbmNob3I7CivmqJnnh4ggPCBiZWFjb25cLWxpZ2h0Owor5Yaw5pm2IDwgaWNlXC1jcnlzdGFsczsKK+iqviA8IHNwZWFrXC1nZW50bHk7Civlub7lpKkgPCBzZXZlcmFsXC1kYXlzOwor5o6I57K+IDwgaW5zZW1pbmF0aW9uOwor6auS6KmxIDwgYmFkXC1sYW5ndWFnZTsKK+WHueWyuCA8IGNvbmNhdmVcLWJhbms7CivopZsgPCBmaW5lXC1jbG90aGVzOwor6KWGIDwgaG9vZFwtb3JcLWNvd2w7CivpgY7kvoYgPCB0b1wtY29tZVwtb3ZlcjsKK+aTjeWLniA8IHRvXC13b3JrXC1oYXJkOwor6YKj5qij55qEIDwgdGhhdFwta2luZFwtb2Y7CivlhYnmupAgPCBsaWdodFwtc291cmNlOwor57KX5L+X55qE6ZqO57SaIDwgdnVsZ2FyXC1jbGFzczsKK+mAn+WHjSA8IHF1aWNrXC1mcmVlemU7CivntrLot6/nr4Dpu54gPCBuZXR3b3JrXC1ub2RlOwor5Z2Q54miIDwgaW1wcmlzb25tZW50Owor6KOc54mZIDwgZmlsbFwtYVwtdG9vdGg7CivliKjliIAgPCBwbGFuaW5nXC10b29sOwor5oqK6ZecIDwgZ3VhcmRcLWFcLXBhc3M7CivmiZPljbDmnI3li5nlmaggPCBwcmludFwtc2VydmVyOwor5LiN5Y+v5pS25ou+IDwgaXJyZW1lZGlhYmxlOwor5Y2K6YKK5aSpIDwgaGFsZlwtdGhlXC1za3k7CivokZwgPCBzbWlsYXhcLWNoaW5hOwor6JCpIDwgc2NhbmRlbnRcLWhvcDsKK+iQmCA8IG5hcGh0aGFubGVuZTsKK+iHquihmyA8IHNlbGZcLWRlZmVuc2U7Civos5Popb/ms5XlsLzkup4gPCBwZW5uc3lsdmFuaWE7CivojqYgPCBqdW5nbGVcLWdyYXNzOwor5ZyL5a625qmf5a+GIDwgc3RhdGVcLXNlY3JldDsKK+mZm+S4iyA8IHlvdXJcLW1hamVzdHk7CivlhavmnIggPCBlaWdodGhcLW1vbnRoOwor6IqaIDwgZ3JlZW5cLXNwcm91dDsKK+WCmeiAgyA8IFwoYW5cLWFwcGVuZGl4Owor6IqRIDwgd2hpdGVcLW1pbGxldDsKK+W5tOWJjSA8IFwuXC5cLnllYXJzXC1hZ287CivohpcgPCB1Z2x5XC1hbmRcLWZhdDsKK+mWi+aUryA8IGV4cGVuZGl0dXJlczsKK+aNj+epjSA8IGNoaXJvcHJhY3RpYzsKK+iRoeiQhOmFkiA8IFwoZ3JhcGVcKVwtd2luZTsKK+iCmSA8IGFcLXNtYWxsXC13b3JtOwor576AIDwgZmlzaGluZ1wtdHJhcDsKK+iqv+afpeS6uuWToSA8IGludmVzdGlnYXRvcjsKK+atpuijnemDqOmaiiA8IGFybWVkXC1mb3JjZXM7CivloLHlg7kgPCBxdW90ZWRcLXByaWNlOwor6L+35L+hIDwgc3VwZXJzdGl0aW9uOwor57qBIDwgc2hhZGVcLW9mXC1yZWQ7CivnuZkgPCB0b1wtaW50ZXJwcmV0Owor57iVIDwgdGFuZ2xlZFwtaGVtcDsKK+i9ieaPmyA8IHRvXC10cmFuc2Zvcm07CivmkKzlrrYgPCBtb3ZlXC1cKGhvdXNlXCk7CivmiLbpoK0gPCBiYW5rXC1hY2NvdW50Owor6L6y5L2c54mpIDwgXChmYXJtXClcLWNyb3BzOwor57GvIDwgYmFtYm9vXC1jaGVzdDsKK+Wbm+WNgeWkmiA8IG1vcmVcLXRoYW5cLTQwOwor6Kaq5L+hIDwgdHJ1c3RlZFwtYWlkZTsKK+etpCA8IHlvdW5nXC1iYW1ib287CivooYznqIsgPCB0cmF2ZWxcLXJvdXRlOwor562NIDwgYmFtYm9vXC1zaG9vdDsKK+ethSA8IGJhbWJvb1wtYnJ1c2g7CivlmrTnq6MgPCB0aWdodFwuc3RyaWN0Owor6K2J5a+m56auIDwgY29uZmlybWF0aW9uOwor5ZCN6YyE5pyN5YuZIDwgbmFtZVwtc2VydmljZTsKK+enrCA8IGJsYWNrXC1taWxsZXQ7CivnnIvkvZwgPCBsb29rXC11cG9uXC1hczsKK+iqnumfs+S/oeiZnyA8IHZvaWNlXC1zaWduYWw7Civlr6fpoZggPCB3b3VsZFwtcmF0aGVyOwor56WYIDwgdG9cLWNhbGN1bGF0ZTsKK+ejoCA8IHNhbFwtYW1tb25pYWM7CivnorYgPCBhXC1mbG9vZFwtZ2F0ZTsKK+aOpeaenSA8IFwodHJlZVwpXC1ncmFmdDsKK+aOiOasiiA8IHRvXC1hdXRob3JpemU7Civnn7wgPCBzdG9uZVwtYnJpZGdlOwor6ZaL5a24IDwgc2Nob29sXC1vcGVuczsKK+edkiA8IHRvXC1nbGFuY2VcLWF0Owor5L+d6K2JIDwgdG9cLWd1YXJhbnRlZTsKK+aJueiplSA8IHRvXC1jcml0aWNpemU7CivlrofoiKrlsYAgPCBzcGFjZVwtYWdlbmN5Owor55qmIDwgYnJpZ2h0XC13aGl0ZTsKK+S7pOS6uumpmueVsCA8IHN1cnByaXNpbmdseTsKK+eYuiA8IGFuYWxcLWZpc3R1bGE7CivljrvlnIvlpJYgPCB0b1wtZ29cLWFicm9hZDsKK+eWvyA8IHByaWNrbHlcLWhlYXQ7Civmi5TntbIgPCB3aXJlXC1kcmF3aW5nOwor5omT6LOtIDwgXChtYWtlXC1hXClcLWJldDsKK+WEquaDoCA8IHByZWZlcmVudGlhbDsKK+esrOS6jOS9jSA8IHNlY29uZFwtcGxhY2U7CivlhazloLEgPCBhbm5vdW5jZW1lbnQ7Civln7rnpI7oqK3mlr0gPCBiYXNlXC1zdGF0aW9uOwor5a+G6ZuGIDwgY29uY2VudHJhdGVkOwor5o6I5pmCIDwgdGltZVwtc2VydmljZTsKK+WcqOaXgSA8IGJ5XC1cKGFcLXBsYWNlXCk7CivlkIzmmYLku6MgPCBjb250ZW1wb3Jhcnk7Civnjo0gPCBpbGxcLXRlbXBlcmVkOwor5ou855ukIDwgY29sZFwtcGxhdHRlcjsKK+eLhiA8IHBla2luZXNlXC1kb2c7CivniYIgPCBmZW1hbGVcLXNoZWVwOwor5o2Q5qy+IDwgZG9uYXRlXC1tb25leTsKK+WJr+e4veeQhiA8IHZpY2VcLXByZW1pZXI7CivlnIvmnIkgPCBuYXRpb25hbGl6ZWQ7Civns7vkuIogPCB0b1wtYnVja2xlXC11cDsKK+iDjOmboiA8IGRldmlhdGVcLWZyb207CivmjInnhacgPCBhY2NvcmRpbmdcLXRvOwor5YG254S2IDwgaW5jaWRlbnRhbGx5Owor5ZaJ6Y+hIDwgbGFyeW5nb3Njb3BlOwor6IOM6ZmwIDwgaW5cLXRoZVwtc2hhZGU7CivnlJ/lkb3ot6HosaEgPCBzaWduXC1vZlwtbGlmZTsKK+WFqeWNgyA8IHR3b1wtdGhvdXNhbmQ7Civmu4ogPCBhXC1yaXZlclwtbmFtZTsKK+i3r+W+l+iomCA8IGJvb2tcLW9mXC1ydXRoOwor5o+S5ZyWIDwgaWxsdXN0cmF0aW9uOwor5rOWIDwgc3RpbGxcLXdhdGVyczsKK+efpeitmOWIhuWtkCA8IGludGVsbGVjdHVhbDsKK+euoeeQhiA8IHRvXC1zdXBlcnZpc2U7CivkuInlkIjkuIAgPCB0aHJlZVwtaW5cLW9uZTsKK+aviCA8IGZlcnRpbGVcLWVnZ3M7CivmrpwgPCBoYWxmXC1zaXR0aW5nOwor5Zub55m+6JCsIDwgZm91clwtbWlsbGlvbjsKK+aiheiKsSA8IHBsdW1cLWJsb3Nzb207CivpmL/mkanlj7jmm7ggPCBib29rXC1vZlwtYW1vczsKK+eVtueEtiA8IG9ubHlcLW5hdHVyYWw7CivmqZIgPCB3b29kXC1zdHJlYWtzOwor6auY6LOq6YePIDwgaGlnaFwtcXVhbGl0eTsKK+aomeWDuSA8IG1hcmtcLWFcLXByaWNlOwor5qe7IDwgemVsa292YVwtdHJlZTsKK+ajkuehqyA8IHJvbGxcLXN1bHBodXI7Civmp5QgPCB3YXRlclwtcHVsbGV5Owor5aSi5ri455eHIDwgdG9cLXNsZWVwd2FsazsKK+iAtuWIqeexs+WTgOatjCA8IGxhbWVudGF0aW9uczsKK+mlhemgrSA8IHN0ZWFtZWRcLXJvbGw7Civkv53nrqEgPCB0YWtlXC1jYXJlXC1vZjsKK+eUqOaItuWumue+qSA8IHVzZXJcLWRlZmluZWQ7CivlnoLkuIsgPCB0b1wtaGFuZ1wtZG93bjsKK+aIkOWQieaAneaxlyA8IGdlbmdoaXNcLWtoYW47CivmkZkgPCB0b1wtdHJhbnNwb3J0Owor6KOB5ZOhIDwgdG9cLWN1dFwtc3RhZmY7CivmuIXphpIgPCBjbGVhclwtaGVhZGVkOwor6KOc5YWFIDwgdG9cLXJlcGxlbmlzaDsKK+S4jee1kOebnyA8IG5vbmFsaWdubWVudDsKK+aPkSA8IHRvXC1mYWJyaWNhdGU7CivlhavntJrpoqggPCBmb3JjZVwtOFwtd2luZDsKK+aIiSA8IGFcLWJhdHRsZVwtYXhlOwor5L6/56eYIDwgY29uc3RpcGF0aW9uOwor55eF5bqKIDwgaG9zcGl0YWxcLWJlZDsKK+W5vOWFkuWckiA8IGtpbmRlcmdhcnRlbjsKK+ahlOWtkOawtCA8IG9yYW5nZVwtanVpY2U7Civmnpjpkb8gPCBpbmNvbXBhdGlibGU7CivkuLvlubnntrLot68gPCBjb3JlXC1uZXR3b3JrOwor5bu5IDwgdG9cLXBlcnNlY3V0ZTsKK+WJtemAoOaApyA8IGNyZWF0aXZlbmVzczsKK+WaruW+gCA8IHRvXC15ZWFyblwtZm9yOwor6Ieq5ouUIDwgZnJlZVwtb25lc2VsZjsKK+W4qCA8IGhhbmRrZXJjaGllZjsKK+W2oiA8IGhpZ2hcLW9yXC10YWxsOwor5bGYIDwgdGhlXC15b3VuZ2VzdDsKK+iIquWkqSA8IHNwYWNlXC1mbGlnaHQ7Civpq5jlr4YgPCBoaWdoXC1kZW5zaXR5Owor6KGo5ZyfIDwgc3VyZmFjZVwtc29pbDsKK+att+S7o+W/l+S4iyA8IDJcLWNocm9uaWNsZXM7Civmrbfku6Plv5fkuIogPCAxXC1jaHJvbmljbGVzOwor5auyIDwgZ3JhbmRcLW1vdGhlcjsKK+iznuitmCA8IGFwcHJlY2lhdGlvbjsKK+a2iOmZpCA8IHRvXC1lbGltaW5hdGU7CivnkZ7oibIgPCBsb3ZlbHlcLWNvbG9yOwor6IG96KqqIDwgdG9cLWhlYXJcLXRvbGQ7CivlkajnuL3nkIYgPCBwcmVtaWVyXC16aG91Owor5Z+35pS/6buoIDwgcnVsaW5nXC1wYXJ0eTsKK+eVtuW/gyA8IHRvXC10YWtlXC1jYXJlOwor55Ww5oCnIDwgaGV0ZXJvc2V4dWFsOwor5Lqk6YuSIDwgY3Jvc3NcLXN3b3JkczsKK+iIiOWlriA8IFwoYmVcKVwtZXhjaXRlZDsKK+aMh+S7pOWQjeWtlyA8IGNvbW1hbmRcLW5hbWU7Civnpr3poZ4gPCBiaXJkXC1zcGVjaWVzOwor5q+N6Kaq56+AIDwgbW90aGVyJydzXC1kYXk7Civllq0gPCBjb25kb2xlXC13aXRoOwor5LiA5bCP6YOo5YiGIDwgYVwtc21hbGxcLXBhcnQ7Civlgb3lloQgPCBoeXBvY3JpdGljYWw7CivmirHmhKcgPCBmZWVsXC1hc2hhbWVkOwor5ZG5IDwgdG9cLWVhdFwtZ3Jhc3M7CivkuIDkuIvlhZIgPCBhXC1saXR0bGVcLWJpdDsKK+iyoOiyrCA8IGluXC1jaGFyZ2VcLW9mOwor54++6KGMIDwgYmVcLWluXC1lZmZlY3Q7CivlsYjmnI0gPCB0b1wtc3VycmVuZGVyOwor5Y63IDwgdGhlXC1mb3JlXC1hcm07CivmuJvnt6kgPCB0b1wtc2xvd1wtZG93bjsKK+WLoyA8IGFjaGlldmVtZW50czsKK+S4i+m9kiA8IGJvdHRvbVwtdGVldGg7CivlqpLpq5QgPCBcKG5ld3NcKVwtbWVkaWE7CivlibcgPCB0b1wtbGV2ZWxcLW9mZjsKK+mpmuaElSA8IGFzdG9uaXNobWVudDsKK+eVtuWgtCA8IGF0XC10aGVcLXNjZW5lOwor6KSH6KO95ZOBIDwgcmVwcm9kdWN0aW9uOwor5YSXIDwgY29tcGFyZVwtd2l0aDsKK+WPuOazleasiiA8IGp1cmlzZGljdGlvbjsKK+Wpmum9oSA8IG1hcnJ5aW5nXC1hZ2U7CivmirHlsYggPCBmZWVsXC13cm9uZ2VkOwor5L2U5L6/5a6cIDwgYWR2ZW50YWdlb3VzOwor5L2tIDwgdW5zdWJtaXNzaXZlOwor6aOf6K2cIDwgY29va2VyeVwtYm9vazsKK+S4vCA8IGJvd2xcLW9mXC1mb29kOwor5Lim6Z2eIDwgcmVhbGx5XC1pc24nJ3Q7CivnqoHnoLQgPCBicmVha3Rocm91Z2g7CivpvLvkuK3pmpQgPCBuYXNhbFwtc2VwdHVtOwor5paw6IGe6JmVIDwgbmV3c1wtc2VydmljZTsKK+S+teaZqCA8IHRvd2FyZHNcLWRhd247CivktLwgPCB0b1wtZXh0aXJwYXRlOwor5LSVIDwgYVwtd29vZHBlY2tlcjsKK+a8ouWfjiA8IHNlb3VsXCxcLWtvcmVhOwor5LOWIDwgZmx5aW5nXC1iaXJkczsKK+SynCA8IGxvdHNcLW9mXC1maXNoOwor5LGKIDwgcm9lXC1vclwtc3Bhd247Civkr7YgPCBmYWlyXC1vZlwtaGFpcjsKK+SvpyA8IGFcLXNtYWxsXC1oYWxsOwor6YGL5YuV6Z6LIDwgc3BvcnRzXC1zaG9lczsKK+SunyA8IGJpZ1wtYW5kXC10YWxsOwor5bCR5pW4IDwgc21hbGxcLW51bWJlcjsKK+SukSA8IGFcLWdyYXlcLWhvcnNlOwor5K2YIDwgd2VsbFwtc3RhY2tlZDsKK+StliA8IGFuaW1hbFwtZmVlZHM7Civmi4zlkowgPCBtaXhcLWFuZFwtc3RpcjsKK+StiSA8IG1hc2hlZFwtYmVhbnM7CivkrJwgPCBldmlsXC1zcGlyaXRzOwor5KyaIDwgdG9cLW1vdmVcLWZhc3Q7CivkrIsgPCB2aW9sZW50XC13aW5kOwor5rWB6YCaIDwgdG9cLWNpcmN1bGF0ZTsKK+SrqCA8IHRhbGxcLWFuZFwtYmlnOwor5KuaIDwgc2hvcnRcLWhlYWRlZDsKK+SrlSA8IHNtYWxsXC1oZWFkZWQ7CivlkqjoqaIgPCBjb25zdWx0YXRpdmU7Civkq4cgPCB0aGVcLXdoaXNrZXJzOwor5omS5ouJIDwgcHVzaFwtbGlnaHRseTsKK+SquSA8IGFcLWxhcmdlXC1mYWNlOwor5KqhIDwgdG9cLWZhbGxcLWRvd247CivkqosgPCBzaWxrXC1jb3JkYWdlOwor5KmPIDwgYVwtc21hbGxcLWZhY2U7CivkqYsgPCBhXC1ncmVlblwtZmFjZTsKK+SphyA8IGFcLXNtYWxsXC1oZWFkOwor5bCI5pS/IDwgZGljdGF0b3JzaGlwOwor5Ki2IDwgdGh1bmRlcnN0b3JtOwor5KiyIDwgYVwtc21hbGxcLWhhcmU7CivkqKogPCBhXC1kdXN0XC1zdG9ybTsKK+SonSA8IGFcLXB1cmVcLXdvbWFuOwor5KiIIDwgYVwtc21hbGxcLWJpcmQ7Civpo7zojYkgPCBmb3JhZ2VcLWdyYXNzOwor5KeiIDwgYVwtcm91Z2hcLXJvYWQ7Civkp5kgPCBhXC1oaWdoXC1tb3VuZDsKK+m8u+iFlCA8IG5hc2FsXC1jYXZpdHk7CivmoLjovZ/ngrggPCBudWNsZWFyXC1ib21iOwor5rW06KGAIDwgYmxvb2RcLXNvYWtlZDsKK+SlgyA8IGFcLWJpZ1wtaGFtbWVyOwor5KSsIDwgYVwtc21hbGxcLWdvbmc7CivkpKMgPCBhXC1tZXRhbFwtcmluZzsKK+SkiyA8IHllbGxvd1wtZmFjZWQ7Civko74gPCBjaGVlc2VcLWRyZWdzOwor5KO8IDwgbWl4ZWRcLXN0YXJjaDsKK+WxrOWciyA8IHZhc3NhbFwtc3RhdGU7CivkoJQgPCBmYXJcLWFuZFwtZGVlcDsKK+SfvyA8IHRvXC1yZXZlcmVuY2U7Civkn7kgPCB0b1wtaG9wXC1hYm91dDsKK+i9ieizrOWNoSA8IGFcLWRlYml0XC1jYXJkOwor6Yu8562GIDwgZm91bnRhaW5cLXBlbjsKK+SflSA8IHRvXC1zdGVwXC11cG9uOwor5J6xIDwgdG9cLWZhbGxcLW92ZXI7CivknqcgPCBoYXJkXC10b1wtd2FsazsKK+WBieS6uiA8IGdyZWF0XC1wZXJzb247Civlronnh58gPCBwaXRjaFwtYVwtY2FtcDsKK+WSjOinoyA8IGNvbmNpbGlhdG9yeTsKK+mdouWwjemdoiA8IGZhY2VcLXRvXC1mYWNlOwor5JqqIDwgY3VydmVkXC1ob3JuczsKK+aineWtkCA8IGFcLXNob3J0XC1ub3RlOwor5o+u6ZyN54Sh5bqmIDwgZXh0cmF2YWdhbmNlOwor5qC55pysIDwgXChub3RcKVwtYXRcLWFsbDsKK+SYhCA8IGNpY2FkYVwtZmFtaXk7CivkmIAgPCBncmFzc2hvcHBlcnM7Civkl6cgPCBsaWJlbGx1bGlkYWU7CivnqK7nqK4gPCBhbGxcLWtpbmRzXC1vZjsKK+SWniA8IGFcLXNlYVwtaW5zZWN0Owor5JW7IDwgdG9cLWFkaGVyZVwtdG87CivklbogPCBkZW5zZVwtZ3Jvd3RoOwor5JWdIDwgbWVkaWNhbFwtaGVyYjsKK+SViyA8IG9mXC1lbG1cLWdyb3VwOwor5JOvIDwgd2F0ZXJcLXBlcHBlcjsKK+eZu+mZuOaciOeQgyA8IG1vb25cLWxhbmRpbmc7CivopIflr6vntJkgPCBjYXJib25cLXBhcGVyOwor5JG9IDwgYVwtbGFyZ2VcLWJvYXQ7CivkkbUgPCBhXC1zbWFsbFwtYm9hdDsKK+azlemZoiA8IGNvdXJ0XC1vZlwtbGF3Owor5JCFIDwgdGhlXC1idXR0b2NrczsKK+SPgCA8IGluaGFybW9uaW91czsKK+SOmCA8IGJpcmRzXC1mbHlpbmc7CivmsrPppqwgPCBoaXBwb3BvdGFtdXM7CivnlJ/lkb0gPCBsaWZlXC1cKGZvcmNlXCk7CivkjYQgPCBhblwtaW5kZW50dXJlOwor5Iy2IDwgXClcLWJsYWNrXC1zaWxrOwor5IyHIDwgYVwtdGhpY2tcLXJvcGU7CivkuLvop5IgPCBsZWFkaW5nXC1yb2xlOwor5rer54ylIDwgYWJvbWluYXRpb25zOwor55Si5Y21IDwgbGF5XC1cKGFuXC1lZ2dcKTsKK+aenOeariA8IFwoZnJ1aXRcKVwtcGVlbDsKK+SKhSA8IHRvXC1zb2FrXC1yaWNlOwor5ImvIDwgZHJpZWRcLWJhbWJvbzsKK+SJlSA8IGFcLWJhbWJvb1wtaGF0Owor5ImUIDwgYmFtYm9vXC1zbGlwczsKK+SInyA8IGJyb2tlblwtc291bmQ7Civkh7ggPCBhXC1iYW1ib29cLW1hdDsKK+SHnSA8IHRvXC1icmVha1wtb2ZmOwor5IaiIDwgdG9cLXBlbmV0cmF0ZTsKK+SGnyA8IGNvcmVzcG9uZGluZzsKK+SGjSA8IGN1dHRlZFwtY3JvcHM7CivkuI3otrMgPCBpbnN1ZmZpY2llbnQ7CivkhYEgPCB0b1wtaHVza1wtcmljZTsKK+aJk+WtlOWZqCA8IGhvbGVcLXB1bmNoZXI7Civkg7IgPCBhXC1ncmVhdFwtcm9jazsKK+SDryA8IHNtYWxsXC1zdG9uZXM7Civkg50gPCBydWdnZWRcLXJvY2tzOwor5IKQIDwgc2hvcnRcLXN0dXBpZDsKK+SBpyA8IHRvXC1vcGVuXC13aWRlOwor5a625pS/IDwgaG91c2VrZWVwaW5nOwor5LiN6LKyIDwgaW1tZWFzdXJhYmxlOwor5ICBIDwgYVwtc21hbGxcLWJvd2w7Civjv7UgPCBzb2Z0XC1sZWF0aGVyOwor47+yIDwgYVwtZmllcmNlXC1kb2c7Civjv6ogPCBza2luXC1kaXNlYXNlOwor47+KIDwgdmVyeVwtcGFpbmZ1bDsKK+O+lCA8IGxvbmdcLWlsbG5lc3M7Civku4DpurzmmK8gPCB3aGF0XC1pc1wtXC5cLlwuXD87Civou43kuovmj7TliqkgPCBtaWxpdGFyeVwtYWlkOwor5Ye56YCP6Y+hIDwgY29uY2F2ZVwtbGVuczsKK+O8iyA8IHRoZVwtY3VjdW1iZXI7CivmnKzmnKzkuLvnvqkgPCBib29rXC13b3JzaGlwOwor47qWIDwgZG9nc1wtYmFya2luZzsKK+O6jiA8IGZpZXJjZVwtYmVhc3Q7CivkupTop5LlpKfmqJMgPCB0aGVcLXBlbnRhZ29uOwor47i+IDwgdG9cLWZpbGxlZFwtdXA7CivjuK0gPCB0aGVcLW9wcG9zaXRlOwor47e5IDwgaW50ZW5zZVwtaGVhdDsKK+O2lSA8IHRvXC13YXNoXC1yaWNlOwor5L2c5oSbIDwgdG9cLW1ha2VcLWxvdmU7CivjtYogPCBtb3ZpbmdcLWltYWdlOwor47SVIDwgdG9cLWJvaWxcLWF3YXk7Civjs54gPCBkZWVwXC1hbmRcLWZhcjsKK+OzkSA8IHRvXC1mbG93XC1vdmVyOwor47C3IDwgcmVzdXJyZWN0aW9uOwor46+gIDwgYVwtY3Jvc3NcLWJlYW07Civjr5wgPCBkZWNheWVkXC13b29kOwor466uIDwgYVwtd2VsbFwtc3dlZXA7CivjrqwgPCBhXC1mcnVpdFwtdHJlZTsKK+iYh+iBryA8IHNvdmlldFwtdW5pb247CivjrLUgPCB0aGVcLXNoaW5ib25lOwor5pGp6KW/5b6L5rOVIDwgbGF3XC1vZlwtbW9zZXM7Civjq5IgPCBoYW5kc1wtam9pbmVkOwor5a6z5oCVIDwgdG9cLWJlXC1hZnJhaWQ7Civjq4MgPCBmbGFnc1wtZmx5aW5nOwor46uBIDwgdG9cLWN1dFwtYXBhcnQ7CivmmZrplpMgPCBldmVuaW5nXC10aW1lOwor5LqU55m+IDwgZml2ZVwtaHVuZHJlZDsKK+OntCA8IHRvXC1ydWJcLWhhbmRzOwor46aOIDwgY2FudGFua2Vyb3VzOwor46W1IDwgdG9cLWRpc2hvbm91cjsKK+OkpyA8IGNvbmNpbGlhdGlvbjsKK+OjkiA8IGhhaXJcLXJhaXNpbmc7Civjo5EgPCBkb3VibGVcLWltYWdlOwor6L+F6YCf6JST5bu2IDwgcmFwaWRcLXNwcmVhZDsKK+OilyA8IGFcLWhpZ2hcLWhvdXNlOwor46GUIDwgb2lsZWRcLWNhbGljbzsKK+OhhSA8IHN0b3JhZ2VcLXJvb207CivorYnpqZcgPCByZWFsXC1yZXN1bHRzOwor46C+IDwgYVwtZGlzaFwtY2xvdGg7Civmh4rmgpQgPCBmZWVsXC1yZW1vcnNlOwor46CSIDwgbW91bnRhaW5cLXRvcDsKK+OfkCA8IGJpZ1wtYW5kXC1oaWdoOwor45+HIDwgYVwtbGFuZFwtc2xpZGU7CivjnqIgPCB0b1wtYXJyaXZlXC1hdDsKK+OemyA8IHJlZFwtc2xpcHBlcnM7CivjnoUgPCBub3RcLXN0cmFpZ2h0Owor5Y+k576F6aasIDwgYW5jaWVudFwtcm9tZTsKK+OclyA8IGNvdmV0b3VzbmVzczsKK+ObvCA8IHRvXC1pbnRlcnJ1cHQ7Civkv4TkuK0gPCBydXNzaWFcLWNoaW5hOwor45ulIDwgdG9cLXByb3N0cmF0ZTsKK+ObiiA8IHRvXC1zcGVjdWxhdGU7CivkuozljYHokKwgPCAyMDBcLXRob3VzYW5kOwor45iiIDwgYVwtcm91bmRcLWNhdmU7CivjmI0gPCBzb3VuZFwtb2ZcLXJhdDsKK+iuiumAnyA8IHNwZWVkXC1jaGFuZ2U7CivjlrcgPCBiaXJkXC1zaW5naW5nOwor5bm06LyV5Lq6IDwgeW91bmdcLXBlb3BsZTsKK+OWoCA8IGFuXC1hdXhpbGlhcnk7Civjla8gPCBzbG93XC10b25ndWVkOwor5a6J5b+DIDwgZmVlbFwtYXRcLWVhc2U7CivjlZIgPCBhXC1sb2Z0eVwtcGVhazsKK+OUrCA8IHRvXC1lc3RhYmxpc2g7CivjlKYgPCB0b1wtZW5jb3VyYWdlOwor45SVIDwgd2l0aFwtcHVycG9zZTsKK+OUgyA8IHRvXC1jdXRcLXNob3J0Owor45OjIDwgdG9cLXNpbmtcLWludG87CivkurrmsJEgPCBcKHRoZVwpXC1wZW9wbGU7CivlsIfkvoYgPCBcKHRoZVwpXC1mdXR1cmU7CivjkaogPCBhXC1nZW5lcmF0aW9uOwor45GUIDwgYWxsXC10b2dldGhlcjsKK+OQuCA8IHRvXC1vd25cLW1vbmV5Owor45C0IDwgdG9cLWRyYWdcLWRvd247CivpoYzoirEgPCB0aXRsZVwtZGVzaWduOwor5Y+v6KeAIDwgY29uc2lkZXJhYmxlOwor5Lq65qyKIDwgaHVtYW5cLXJpZ2h0czsKK+S5kuS5k+eQgyA8IHRhYmxlXC10ZW5uaXM7Civpmo7ntJrlvI8gPCBoaWVyYXJjaGljYWw7Civku6Xmlq/mi4noqJggPCBib29rXC1vZlwtZXpyYTsKK+i2leS4iiA8IGtlZXBcLXVwXC13aXRoOwor6IG96Kqq6YGOIDwgdG9cLWhlYXJcLXNhaWQ7Civpl4zlsL7ngo4gPCBhcHBlbmRpY2l0aXM7Civnp7vmsJEgPCB0b1wtaW1taWdyYXRlOwor5LuK5pmoIDwgdGhpc1wtbW9ybmluZzsKK+WvhuWPiyA8IGNsb3NlXC1mcmllbmQ7CivljZfpnZ4gPCBzb3V0aFwtYWZyaWNhOwor5LiN56ymIDwgaW5jb25zaXN0ZW50Owor6ZaL5pS+5byP57ay6LevIDwgb3BlblwtbmV0d29yazsKK+S4ueeUsCA8IHB1YmljXC1yZWdpb247CivljYrpn78gPCBoYWxmXC10aGVcLWRheTsKK+S4u+eSsCA8IHByaW1hcnlcLXJpbmc7CivlpKfkuIDkupsgPCBhXC1iaXRcLWJpZ2dlcjsKK+S9oOWAkSA8IHlvdVwtXChwbHVyYWxcKTsKK+S4gOebtCA8IGNvbnRpbnVvdXNseTsKK+eUn+eJqeaIsCA8IGdlcm1cLXdhcmZhcmU7CivkuI3nn6XmiYDmjqogPCBiZVwtYXRcLWFcLWxvc3M7CivmmpfnrpcgPCBwbG90XC1hZ2FpbnN0Owor5bu66Kit5oCnIDwgY29uc3RydWN0aXZlOwor5Lqu5bqmIDwgaWxsdW1pbmF0aW9uOwor5Y+D6ICDIDwgY29uc3VsdGF0aW9uOwor5ZaJ5aGe6Z+zIDwgZ2xvdHRhbFwtc3RvcDsKK+Wjr+m6lyA8IG1hZ25pZmljZW5jZTsKK+m7qOaUvyA8IHBhcnR5XC1wb2xpY3k7CivmqpTmoYjmnI3li5kgPCBmaWxlXC1zZXJ2b2NlOwor6JmQ5b6FIDwgbWlzdHJlYXRtZW50Owor5oSf5oGpIDwgdGhhbmtzZ2l2aW5nOwor5aSn6YO95pyDIDwgbWV0cm9wb2xpdGFuOwor572w55CDIDwgcGVuYWx0eVwtc2hvdDsKK+iyu+WfjiA8IHBoaWxhZGVscGhpYTsKK+acgOS9jum7niA8IGxvd2VzdFwtcG9pbnQ7CivmsrnnlasgPCBvaWxcLXBhaW50aW5nOwor576O5rSyIDwgdGhlXC1hbWVyaWNhczsKK+iyp+WbsCA8IGltcG92ZXJpc2hlZDsKK+mZjeiQveWcsOm7niA8IGxhbmRpbmdcLXNpdGU7Civln7rnnaPmlZkgPCBjaHJpc3RpYW5pdHk7CivlpKfph48gPCBncmVhdFwtYW1vdW50Owor6aCC55SoIDwgdG9cLWJlXC1vZlwtdXNlOwor5a6J55yg6YWuIDwgbWV0aGFxdWFsb25lOwor5pqX54GYIDwgaGlkZGVuXC1zaG9hbDsKK+iXpeaWuSA8IHByZXNjcmlwdGlvbjsKK+ippumpl+aApyA8IGV4cGVyaW1lbnRhbDsKK+S4u+aMgSA8IHByZXNpZGVcLW92ZXI7CivpioDluZUgPCBtb3ZpZVwtc2NyZWVuOwor6ICB5a62IDwgbmF0aXZlXC1wbGFjZTsKK+aal+a9riA8IHVuZGVyY3VycmVudDsKK+iyt+WDuSA8IGJ1eWluZ1wtcHJpY2U7CivlpJrpgoogPCBtdWx0aWxhdGVyYWw7Civnj77ku6MgPCBtb2Rlcm5cLXRpbWVzOwor5LuW5Lq6IDwgb3RoZXJcLXBlcnNvbjsKK+S5i+W+jCA8IGFmdGVyXCh3YXJkc1wpOwor5oWj5L6LIDwgY29udmVudGlvbmFsOwor5Lim5o6SIDwgc2lkZVwtYnlcLXNpZGU7CivogJXlnLAgPCBhcmlhYmxlXC1sYW5kOwor6LK05peP5YyWIDwgYXJpc3RvY3JhdGljOwor5rW05aC0IDwgYmF0aGluZ1wtc3BvdDsKK+S6lOeZvuiQrCA8IGZpdmVcLW1pbGxpb247Civok4voj5wgPCBsZWFmXC1tdXN0YXJkOwor5Yaw5rSy55+zIDwgaWNlbGFuZFwtc3BhcjsKK+aguOi7jeWCmSA8IG51Y2xlYXJcLWFybXM7CivkuI3mi5ggPCBub3RcLXN0aWNrXC10bzsKK+S4ieWNgeS6lOWEhCA8IDNcLVwuNVwtYmlsbGlvbjsKK+mereegsiA8IGZpcmVjcmFja2VyczsKK+S6jOWNgeWFreatsiA8IDI2XC15ZWFyc1wtb2xkOwor5oSf5YuVIDwgdG9cLW1vdmVcLVwoc2JcKTsKK+aEj+WRsyA8IHNpZ25pZmljYW5jZTsKK+mAn+iomOWToSA8IHN0ZW5vZ3JhcGhlcjsKK+eZveawtOazpSA8IHdoaXRlXC1jZW1lbnQ7CivkuI3mhKcgPCBiZVwtd29ydGh5XC1vZjsKK+mdtue0mSA8IHRhcmdldFwtc2hlZXQ7Civmlbjmk5rntrLntaEgPCBkYXRhXC1uZXR3b3JrOwor6b6Q54S25aSn54mpIDwgaHVnZVwtbW9uc3RlcjsKK+ixoeiBsuipniA8IG9ub21hdG9wb2VpYTsKK+aEiOWKoCA8IGFsbFwtdGhlXC1tb3JlOwor6YGg6ZuiIDwgcmVtb3ZlZFwtZnJvbTsKK+WSjOWWhCA8IGdvb2RcLW5hdHVyZWQ7Civoqo3orYkgPCBhdXRoZW50aWNhdGU7CivliKjpvZIgPCBnZWFyXC1zaGFwaW5nOwor5rOo5oSPIDwgdGFrZVwtbm90ZVwtb2Y7CivpoqjlkbMgPCBsb2NhbFwtZmxhdm9yOwor57mh6IqxIDwgdG9cLWVtYnJvaWRlcjsKK+aal+aOoiA8IHNlY3JldFwtYWdlbnQ7CivmmrTmgJIgPCB2aW9sZW50XC1yYWdlOwor5LiN5a65IDwgbm90XC10b2xlcmF0ZTsKK+S4jeWunCA8IG5vdFwtc3VpdGFibGU7Civniq/mr5IgPCBpbGxlZ2FsXC1kcnVnOwor5LiW55WM55+l5ZCNIDwgd29ybGRcLWZhbW91czsKK+W5gOagvOW8jyA8IGZyYW1lXC1mb3JtYXQ7CivlpKfoh7QgPCBtb3JlXC1vclwtbGVzczsKK+S4jeWmgiA8IG5vdFwtZXF1YWxcLXRvOwor5b6X56WoIDwgdm90ZVwtZ2V0dGluZzsKK+a0vuWIpSA8IGRlbm9taW5hdGlvbjsKK+e3mui7uCA8IHRocmVhZFwtc3Bvb2w7CivmnInliKkgPCBhZHZhbnRhZ2VvdXM7CivooZvnlJ/ntJkgPCB0b2lsZXRcLXBhcGVyOwor6KiC6ZaxIDwgc3Vic2NyaXB0aW9uOwor5oGi5b6pIDwgdG9cLXJlaW5zdGF0ZTsKK+mAmemghSA8IHRoaXNcLVwodGhpbmdcKTsKK+W/q+mAn+eZvOWxlSA8IHJhcGlkXC1ncm93dGg7CivlpJrnqK7oqp7oqIAgPCBtdWx0aWxpbmd1YWw7Civlj6/mg5wgPCBpdFwtaXNcLWFcLXBpdHk7CivnlbbmmYLnmoQgPCBvZlwtdGhhdFwtdGltZTsKK+WpmuWkliA8IGV4dHJhbWFyaXRhbDsKK+S4jeWWriA8IG5vdFwtdGhlXC1vbmx5Owor5a6J5YWo5ZWP6aGMIDwgc2FmZXR5XC1pc3N1ZTsKK+S5i+S4gCA8IG9uZVwtb2ZcLVwoc3RoXCk7CivlooPpgYcgPCBjaXJjdW1zdGFuY2U7Civph47lv4MgPCB3aWxkXC1zY2hlbWVzOwor5Y275q2lIDwgdG9cLXN0ZXBcLWJhY2s7CivkuK3kv4QgPCBjaGluYVwtcnVzc2lhOwor5Y2x5q6GIDwgZ3JhdmVcLWRhbmdlcjsKK+S4reS6niA8IGNlbnRyYWxcLWFzaWE7CivorormgKcgPCBkZW5hdHVyYXRpb247Civljp/mlpkgPCByYXdcLW1hdGVyaWFsOwor5raI6Ziy5qCTIDwgZmlyZVwtaHlkcmFudDsKK+S4jeWIqSA8IHVuZmF2b3VyYWJsZTsKK+mAj+aYjuW6piA8IHRyYW5zcGFyZW5jeTsKK+eIhueZvCA8IHRvXC1icmVha1wtb3V0Owor5aSa56uZIDwgbXVsdGlzdGF0aW9uOwor5rCn5rCjIDwgb3h5Z2VuXC1cKGdhc1wpOwor5b+15pelIDwgbWVtb3JpYWxcLWRheTsKK+WQhOWciyA8IGVhY2hcLWNvdW50cnk7CivkuI3kvr8gPCBpbmNvbnZlbmllbnQ7CivmmYLmhYsgPCBcKHZlcmJcKVwtdGVuc2U7CivnvoXliJcgPCB0b1wtc3BlYWRcLW91dDsKK+S4gOWEhCA8IDFcLTAwXC1taWxsaW9uOwor5pq05YuVIDwgaW5zdXJyZWN0aW9uOwor6Z225qmfIDwgdGFyZ2V0XC1kcm9uZTsKK+mBi+ihjCA8IGJlXC1pblwtbW90aW9uOwor57eo6IieIDwgY2hvcmVvZ3JhcGh5Owor5LqM5Y2B5LiDIDwgdHdlbnR5XC1zZXZlbjsKK+S7pSA8IGJ5XC1tZWFuc1wtb2Y7CivovrIgPCBhZ3JpY3VsdHVyZTsKK+W+hCA8IG5hcnJvd1wtcGF0aDsKK+WHoCA8IHNtYWxsXC10YWJsZTsKK+S+vyA8IGNvbnZlbmllbmNlOwor55S1IDwgZWxlY3RyaWNpdHk7Civnmb4gPCBvbmVcLWh1bmRyZWQ7Civot6MgPCBiYXJlXC1mb290ZWQ7CivotIUgPCB1bm5lY2Vzc2FyeTsKK+WKnyA8IGFjaGlldmVtZW50Owor5rGfIDwgbGFyZ2VcLXJpdmVyOwor5rOoIDwgY29uY2VudHJhdGU7CivniacgPCB0ZW5kXC1jYXR0bGU7CivlqZogPCBnZXRcLW1hcnJpZWQ7CivliIogPCBwdWJsaWNhdGlvbjsKK+eGnyA8IHdlbGxcLWNvb2tlZDsKK+mlrSA8IGNvb2tlZFwtcmljZTsKK+WloiA8IGV4dHJhdmFnYW50Owor5p+lIDwgaW52ZXN0aWdhdGU7Civnq6AgPCBjb21wb3NpdGlvbjsKK+aMiSA8IHB1dFwtaGFuZFwtb247CivonaAgPCBraW5kXC1vZlwtYmF0Owor6J2VIDwgbmliYmxlXC1hd2F5Owor5ZuwIDwgdG9cLXN1cnJvdW5kOwor6ZmpIDwgbmFycm93XC1wYXNzOwor57uDIDwgdG9cLXByYWN0aWNlOwor5rqvIDwgZ29cLXVwc3RyZWFtOwor5riJIDwgZm9yZFwtc3RyZWFtOwor6LSlIDwgYmVcLWRlZmVhdGVkOwor57q3IDwgaW5cLWRpc29yZGVyOwor57y6IDwgYmVcLXNob3J0XC1vZjsKK+mBrSA8IGNvbWVcLWFjcm9zczsKK+aItCA8IHdlYXJcLW9uXC10b3A7Civli6QgPCBpbmR1c3RyaW91czsKK+mrhCA8IGJvbmVcLW1hcnJvdzsKK+WKuSA8IGVmZmljYWNpb3VzOwor6LKMIDwgY291bnRlbmFuY2U7CivnuYEgPCBjb21wbGljYXRlZDsKK+afsyA8IHdpbGxvd1wtdHJlZTsKK+WHhCA8IGJpdHRlclwtY29sZDsKK+mcniA8IHJvc3lcLWNsb3VkczsKK+mjtCA8IHN3ZWV0XC1tZWF0czsKK+iBqiA8IGludGVsbGlnZW50Owor5YCmIDwgYmVcLXRpcmVkXC1vZjsKK+aRlCA8IGZhbGxcLWdyb3VuZDsKK+mGiSA8IGludG94aWNhdGVkOwor5rabIDwgbGFyZ2VcLXdhdmVzOwor6ZSFIDwgY29va2luZ1wtcG90Owor5LuUIDwgc21hbGxcLXRoaW5nOwor5pyDIDwgdG9cLWFzc2VtYmxlOwor5ouGIDwgdG9cLWJyZWFrXC11cDsKK+e/oCA8IGNvbG9yXC1ncmVlbjsKK+aZlSA8IGhhbG9cLWluXC1za3k7CivovqggPCBkaXN0aW5ndWlzaDsKK+iRmyA8IGVkaWJsZVwtYmVhbjsKK+i9vyA8IHNlZGFuXC1jaGFpcjsKK+aUqyA8IHNuYXRjaFwtYXdheTsKK+mNmyA8IGZvcmdlXC1tZXRhbDsKK+WOlSA8IG1pbmdsZVwtd2l0aDsKK+ervyA8IGJhbWJvb1wtcG9sZTsKK+WIuCA8IGNlcnRpZmljYXRlOwor56mJIDwgeW91bmdcLWdyYWluOwor6amzIDwgdmFyaWNvbG9yZWQ7CivmhpQgPCBiZVwtd29yblwtb3V0Owor57KeIDwgZ3JvdW5kXC1yaWNlOwor6YGCIDwgY29tcGx5XC13aXRoOwor6Zq2IDwgc3Vic2VydmllbnQ7CivnvLggPCBlYXJ0aGVuXC1qdWc7CivogqIgPCBodW1hblwtbGltYnM7CivlsLQgPCBlbWJhcnJhc3NlZDsKK+WRkCA8IHJhaXNlXC12b2ljZTsKK+miliA8IHJpY2VcLXRhc3NlbDsKK+egpSA8IGFcLXdoZXRzdG9uZTsKK+WtlSA8IGJlXC1wcmVnbmFudDsKK+mSniA8IHBhcGVyXC1tb25leTsKK+eQoiA8IHBvbGlzaFwtamFkZTsKK+e7vSA8IHJpcHBlZFwtc2VhbTsKK+WloCA8IHBheVwtcmVzcGVjdDsKK+a+nCA8IG92ZXJmbG93aW5nOwor5oOVIDwgYmVcLWNhdXRpb3VzOwor6La0IDwgbHlpbmdcLXByb25lOwor6ZqLIDwgc3VpXC1keW5hc3R5Owor556EIDwgdGFrZVwtYWltXC1hdDsKK+elnyA8IGV2aWxcLXNwaXJpdDsKK+WXlCA8IGJlXC1hbmdyeVwtYXQ7CivlpZUgPCBpblwtc2VxdWVuY2U7CivmprQgPCBwb21lZ3JhbmF0ZTsKK+ajmCA8IGp1anViZVwtdHJlZTsKK+WzmSA8IHN0YW5kXC1lcmVjdDsKK+egjCA8IHN0b25lXC1zdGVwczsKK+ankCA8IGxvY3VzdFwtdHJlZTsKK+mzniA8IGZpc2hcLXNjYWxlczsKK+eCvSA8IGJ1cm5pbmdcLWhvdDsKK+i/giA8IGRvY3RyaW5haXJlOwor57yqIDwgd2luZFwtYXJvdW5kOwor5YeLIDwgYmVcLXdpdGhlcmVkOwor57ykIDwgZmxvdXJpc2hpbmc7Civpm7MgPCB0aHVuZGVyY2xhcDsKK+mpuCA8IGV4dHJhXC1ob3JzZTsKK+WXtyA8IGxvdWRcLWNsYW1vcjsKK+eCliA8IHN0ZXdcLXNsb3dseTsKK+iwjyA8IHJlbW9uc3RyYXRlOwor56+GIDwgc2VhbFwtc2NyaXB0Owor5a6mIDwgb2ZmaWNpYWxkb207Civnk64gPCBlYXJ0aGVuXC1qYXI7CivmnJUgPCBwcm9ub3VuXC0nJ2knJzsKK+mYkSA8IGRvb3JcLXNjcmVlbjsKK+WNpCA8IHNhbGluZVwtc29pbDsKK+WUjyA8IHdlZXBcLW9yXC1zb2I7CivmsakgPCBydW5cLXN3aWZ0bHk7CivmppUgPCBiYW55YW5cLXRyZWU7Civpl7AgPCBpbnRlcmNhbGFyeTsKK+aYiiA8IHN1bW1lclwtdGltZTsKK+eOtyA8IGZsYXdcLWluXC1nZW07CivpmJkgPCB3YXRjaFwtdG93ZXI7Civms4wgPCB0b1wtc2VlcFwtb3V0Owor54O9IDwgc2lnbmFsXC1maXJlOwor5a21IDwgc2l0XC1vblwtZWdnczsKK+akrSA8IG92YWxcLXNoYXBlZDsKK+eXiSA8IGNvbnZ1bHNpb25zOwor5YydIDwgZnVsbFwtY2lyY2xlOwor6aWqIDwgY29va2VkXC1mb29kOwor5baZIDwgcHJlY2lwaXRvdXM7CivpoqcgPCBjaGVla1wtYm9uZXM7CivplZcgPCBib3JpbmdcLXRvb2w7Civmj7YgPCBtYWtlXC1mdW5cLW9mOwor54K3IDwgY2FuZGxlXC13aWNrOwor6LSyIDwgZm9yZ2VcLWFoZWFkOwor6JqxIDwgZ3Jhc3Nob3BwZXI7Civnl6ggPCBjb25zdW1wdGlvbjsKK+a/giA8IGFcLXdhdGVyZmFsbDsKK+axkCA8IG5pZ2h0XC10aWRlczsKK+etoCA8IGJhbWJvb1wtc2tpbjsKK+awpCA8IGhhbmdpbmdcLWZvZzsKK+eXlCA8IGhlbW9ycmhvaWRzOwor6La/IDwgdG9cLXRyZWFkXC1vbjsKK+inniA8IHdpbmVcLXZlc3NlbDsKK+aMuSA8IHRvXC1iYWxlXC1vdXQ7CivohpEgPCB0aGVcLWtuZWVjYXA7CivllLMgPCBjcnlcLW9mXC1iaXJkOwor56SFIDwgc3RvbmVcLWJsb2NrOwor566UIDwgcmVlZFwtc2NyZWVuOwor6LG4IDwgcmFkaWNhbFwtMTUzOwor54ODIDwgaHlkcm9jYXJib247CivnoK0gPCBzdG9uZVwtcHJvYmU7Civmvo0gPCB0aW1lbHlcLXJhaW47CivpvosgPCB0b290aFwtZGVjYXk7CivnvLEgPCBhdHRhY2hlZFwtdG87CivlpYIgPCBiZVwtbnVtZXJvdXM7Civpu6kgPCB0b1wtZGlzaG9ub3I7Civlo4UgPCB0b1wtb2JzdHJ1Y3Q7CivmvrYgPCBzdGlsbFwtd2F0ZXI7CivppI0gPCBiZVwtc2F0aWF0ZWQ7CivmnqUgPCB0eXBlXC1vZlwtb2FrOwor5qGVIDwgdGFsbG93XC10cmVlOwor6bKiIDwgc2lsdmVyXC1jYXJwOwor6LaxIDwgZ29cLWluXC1odXJyeTsKK+WmqyA8IGZhbWlseVwtbmFtZTsKK+aaviA8IG1vcm5pbmdcLXN1bjsKK+iNpiA8IGJyaW5kbGVkXC1veDsKK+mCmyA8IGluXC1kaXN0cmVzczsKK+aIoiA8IHRvXC1wdXRcLWF3YXk7CivmpqcgPCB0eXBlXC1vZlwteWV3Owor5aCHIDwgeWVsbG93XC1sb2FtOwor5YqsIDwgYmVcLWRpbGlnZW50Owor6a2IIDwgbWlzY2hldmlvdXM7CivpjaogPCBhblwtaXJvblwtcGFuOwor6JyjIDwgZHVuZ1wtYmVldGxlOwor55emIDwgXChmbGF0XClcLW1vbGU7CivmiKwgPCBleHRlcm1pbmF0ZTsKK+WXiSA8IGJpcmQnJ3NcLWNyb3A7CivlhIsgPCBhXC1zbWFsbFwtamFyOwor6JqcIDwgcGxhbnRcLWxvdXNlOwor57KcIDwgc2VsbFwtZ3JhaW5zOwor5pSuIDwgdG9cLWZlbmRcLW9mZjsKK+iLjiA8IGNoaW5hXC1ncmFzczsKK+WdqSA8IGVhcnRoZW53YXJlOwor5qaJIDwgdHlwZVwtb2ZcLWVsbTsKK+eOoiA8IHBvcnBoeXJpdGVzOwor57uBIDwgdG9cLWNvbnRyYWN0Owor5r2GIDwgdGlueVwtc3RyZWFtOwor6au5IDwgcmVkXC1sYWNxdWVyOwor6KeWIDwgdG9cLWxvbmdcLWZvcjsKK+ietSA8IGFcLWNocnlzYWxpczsKK+adqiA8IHRpcFwtb2ZcLXR3aWc7CivluYIgPCBjb3ZlclwtY2xvdGg7CivnoZcgPCBiYXJyZW5cLWxhbmQ7CivohJ4gPCBtaW5jZWRcLW1lYXQ7CivovbUgPCBlbmRcLW9mXC1heGxlOwor5qWXIDwgYmFyXC1vZlwtZG9vcjsKK+ahhCA8IGFcLWNvaXJcLXBhbG07CivloKAgPCBiYXR0bGVtZW50czsKK+S/nCA8IHRvXC10cnVzdFwtdG87Civlo5PnuK4gPCB0b1wtY29tcHJlc3M7CivlpKfopo/mqKEgPCBsYXJnZVwtc2NhbGU7Civluqbph4/ooaEgPCBtZWFzdXJlbWVudDsKK+iIquepuuihkyA8IGFlcm9uYXV0aWNzOwor6Kiq6I+vIDwgdmlzaXRcLWNoaW5hOwor6KqN55+lIDwgYWNrbm93bGVkZ2U7Civlj6vlloogPCBleGNsYW1hdGlvbjsKK+ioquWVj+iAhSA8IGludGVydmlld2VyOwor5rKJ6YeN5omT5pOKIDwgdG9cLWhpdFwtaGFyZDsKK+mAo+ipniA8IGNvbmp1bmN0aW9uOwor5aW95pyL5Y+LIDwgZ29vZFwtZnJpZW5kOwor5Zub6Z2i6auUIDwgdGV0cmFoZWRyb247Civoh6rnhLbogIznhLYgPCBpbnZvbHVudGFyeTsKK+W8iuerryA8IG1hbHByYWN0aWNlOwor6Z2e5qC4IDwgbm9uXC1udWNsZWFyOwor5ouU6YeY6YyYIDwgY2xhd1wtaGFtbWVyOwor55Sz5ZG96KiYIDwgZGV1dGVyb25vbXk7CivmlLbnqasgPCBhY3F1aXNpdGlvbjsKK+aJjeWklua1gSA8IGJyYWluXC1kcmFpbjsKK+awkeaXjyA8IG5hdGlvbmFsaXR5Owor5LiN6LSK5LiA6KmeIDwga2VlcFwtc2lsZW50Owor5pqX5LqVIDwgYmxpbmRcLXNoYWZ0Owor5pqX5LitIDwgaW5cLXRoZVwtZGFyazsKK+efmuebriA8IHRvXC1mb2N1c1wtb247CivluIPpnosgPCBjbG90aFwtc2hvZXM7Civkurrpq5TlmajlrpggPCBodW1hblwtb3JnYW47Civln4vpoK0gPCBzdGVhbWVkXC1idW47CivlibXkvZzlipsgPCBvcmlnaW5hbGl0eTsKK+eZveefruaYnyA8IHdoaXRlXC1kd2FyZjsKK+WIpOiZlSA8IHRvXC1zZW50YW5jZTsKK+awkeaXj+S4u+e+qSA8IG5hdGlvbmFsaXNtOwor5Yi76IumIDwgaGFyZHdvcmtpbmc7CivmqJnpu54gPCBwdW5jdHVhdGlvbjsKK+eZvem6tSA8IHdoZWF0XC1mbG91cjsKK+WGkumaqiA8IHRha2VcLWFcLXJpc2s7Civnmb3ptrQgPCB3aGl0ZVwtY3JhbmU7CivkuI3otIrmiJAgPCBkaXNhcHByb3ZhbDsKK+W+gOaYlCA8IGluXC10aGVcLXBhc3Q7CivljYrmnIjliIogPCBzZW1pbW9udGhseTsKK+mCiueWhiA8IGJvcmRlclwtYXJlYTsKK+iuk+S9jSA8IHRvXC1hYmRpY2F0ZTsKK+aAquWDuyA8IHBlY3VsaWFyaXR5Owor5b6B5pS2IDwgbGV2eVwtXChmaW5lXCk7Civmr43mnb8gPCBtb3RoZXJib2FyZDsKK+mcgOaxgiA8IHJlcXVpcmVtZW50Owor5aSn5qWtIDwgZ3JlYXRcLWNhdXNlOwor5pe65a2jIDwgYnVzeVwtc2Vhc29uOwor5YKZ55So55KwIDwgYmFja3VwXC1yaW5nOwor5b+F5a6aIDwgYmVcLWJvdW5kXC10bzsKK+WNiuW5tCA8IGhhbGZcLWFcLXllYXI7CivoqrLmoYwgPCBzY2hvb2xcLWRlc2s7Civmu7TnrZTogbIgPCB0aWNrXC1cKHRvY2tcKTsKK+mWk+malCA8IGNvbXBhcnRtZW50Owor6YGy55aRIDwgdG9cLWhlc2l0YXRlOwor6Z2I5oSfIDwgaW5zcGlyYXRpb247Civnsr7lrZDlr4bluqYgPCBzcGVybVwtY291bnQ7CivmuqvluqboqIggPCB0aGVybW9ncmFwaDsKK+mBt+Wxheenu+awkSA8IGltbWlncmF0aW9uOwor5LiN6YeN6KaBIDwgdW5pbXBvcnRhbnQ7Civph47nlJ/li5XniakgPCB3aWxkXC1hbmltYWw7CivoqqrmnI0gPCB0b1wtcGVyc3VhZGU7CivliLbntIQgPCB0b1wtcmVzdHJpY3Q7CivmnInlvbHpn78gPCBpbmZsdWVudGlhbDsKK+mej+WbuiA8IGNvbnNvbGlkYXRlOwor55m86Zu75bugIDwgcG93ZXJcLXBsYW50Owor6IGW6KqV6ICB5Lq6IDwgc2FudGFcLWNsYXVzOwor5YyF5ousIDwgdG9cLWNvbXByaXNlOwor5aal5ZaEIDwgYXBwcm9wcmlhdGU7Civovq/oqLwgPCBkaWFsZWN0aWNhbDsKK+a1qua8q+S4u+e+qSA8IHJvbWFudGljaXNtOwor5p+P5p6X54mGIDwgYmVybGluXC13YWxsOwor54CJ6bm9IDwgZXBzb21cLXNhbHRzOwor5LiN5Y+v55+l6KuWIDwgYWdub3N0aWNpc207CivkuI3liIflr6bpmpsgPCB1bnJlYWxpc3RpYzsKK+WFuOWei+eUqOmAlCA8IHR5cGljYWxcLXVzZTsKK+WvjOaWvOaDs+WDjyA8IGltYWdpbmF0aXZlOwor5beh6YKP6ImHIDwgcGF0cm9sXC1ib2F0Owor5LiN5ZCr57OKIDwgdW5hbWJpZ3VvdXM7CivmnKzlnJ/ljJYgPCB0b1wtbG9jYWxpemU7CivljbPliLsgPCBpbW1lZGlhdGVseTsKK+WuieWFqOeHiCA8IHNhZmV0eVwtbGFtcDsKK+WLmOaOoiA8IGV4cGxvcmF0aW9uOwor5pyJ5oSP5oCdIDwgaW50ZXJlc3Rpbmc7CivljZrlj5YgPCB0cnlcLXRvXC1nYWluOwor56qX546755KDIDwgd2luZG93XC1wYW5lOwor5pS+5qOEIDwgdG9cLXJlbm91bmNlOwor5Yaw6JuLIDwgZnJvemVuXC1lZ2dzOwor6YO15bGAIDwgcG9zdFwtb2ZmaWNlOwor6ZuZ5pW4IDwgZXZlblwtbnVtYmVyOwor6JKQ5bCLIDwgdG9cLWxvb2tcLWZvcjsKK+eZvemBkyA8IG1vb24nJ3NcLXBhdGg7Civli5XmhYsgPCBkZXZlbG9wbWVudDsKK+awuOS5hSA8IGV2ZXJsYXN0aW5nOwor55m86YCBIDwgdG9cLXRyYW5zbWl0Owor6YWN5YKZIDwgdG9cLWFsbG9jYXRlOwor5paw6KW/6JitIDwgbmV3XC16ZWFsYW5kOwor5q+U5aaCIDwgZm9yXC1leGFtcGxlOwor5ZyL5LqL6Kiq5ZWPIDwgc3RhdGVcLXZpc2l0Owor5YWL6KOh5aeG5p6X5a6uIDwgdGhlXC1rcmVtbGluOwor5aSa5bGxIDwgbW91bnRhaW5vdXM7CivljYrljYrmi4nmi4kgPCBpbmNvbXBsZXRlZDsKK+mbu+W3pSA8IGVsZWN0cmljaWFuOwor57SF6ImyIDwgcmVkXC1cKGNvbG9yXCk7Civmj4/ov7AgPCB0b1wtZGVzY3JpYmU7CivljYHlhIQgPCBvbmVcLWJpbGxpb247CivkuI3lj6/liIbpm6IgPCBpbnNlcGFyYWJsZTsKK+WFteifuyA8IHNvbGRpZXJcLWFudDsKK+avgOWjniA8IGRlc3RydWN0aW9uOwor5YmK5ribIDwgdG9cLWN1dFwtZG93bjsKK+aXpeS4rSA8IGphcGFuXC1jaGluYTsKK+mbu+e6nOiqv+WItuino+iqv+WZqCA8IGNhYmxlXC1tb2RlbTsKK+maqOaZgiA8IGF0XC1hbnlcLXRpbWU7CivkuIDljYPpm7bkupTljYHlhIQgPCAxMDVcLWJpbGxpb247Civplbfoq4cgPCBhXC1sb25nXC10YWxrOwor6KOc6YG4IDwgYnlcLWVsZWN0aW9uOwor5pWX6KGA55eHIDwgc2VwdGljYWVtaWE7CivnhKHnlKLpmo7ntJogPCBwcm9sZXRhcmlhdDsKK+iQveW+jCA8IGZhbGxcLWJlaGluZDsKK+WIhuS9iOW8jyA8IGRpc3RydWJ1dGVkOwor5aSx5Y675oSP6K2YIDwgdW5jb25zY2lvdXM7CivmjqjpgbIgPCB0b1wtcG9zdHBvbmU7Civnmb7okKzlr4znv4EgPCBtaWxsaW9uYWlyZTsKK+iytOaXj+ekvuacgyA8IGFyaXN0b2NyYWN5Owor5pON5rOVIDwgZHJpbGxcLXJ1bGVzOwor6LuN6ZqKIDwgYXJteVwtdHJvb3BzOwor5qi56JGJIDwgdHJlZVwtbGVhdmVzOwor5Ymb5p62IDwgcmlnaWRcLWZyYW1lOwor6KuH5YiwIDwgdG9cLXJlZmVyXC10bzsKK+WGjeiAhSA8IGZ1cnRoZXJtb3JlOwor6Kq/5Yi2IDwgdG9cLW1vZHVsYXRlOwor5Z+655+zIDwgY29ybmVyc3RvbmU7CivlvoDkuosgPCBwYXN0XC1ldmVudHM7CivpuoAgPCBmZW1hbGVcLWRlZXI7CivlpKflip8gPCBncmVhdFwtbWVyaXQ7CivmnInkupvkurogPCBzb21lXC1wZW9wbGU7Civoo4Hou40gPCBkaXNhcm1hbWVudDsKK+iqoeWRvSA8IGNvbW1hbmRtZW50Owor6biPIDwgdHJvcGljXC1iaXJkOwor5YWn6IejIDwgY2hhbWJlcmxhaW47Civms6LlpJrpu47lkIQgPCBwdWVydG9cLXJpY287CivptLogPCB0aGVcLXBlbGljYW47Civnq4vms5XmqZ/pl5wgPCBsZWdpc2xhdHVyZTsKK+mxoCA8IG1pbmNlZFwtZmlzaDsKK+msmSA8IG1hdHRlZFwtaGFpcjsKK+WdpuiVqSA8IG1hZ25hbmltb3VzOwor5LiN5ZCQ5rCjIDwgdW5hc3BpcmF0ZWQ7CivkuLvopoHljp/lm6AgPCBtYWluXC1yZWFzb247Civlop7lvLcgPCB0b1wtaW5jcmVhc2U7CivpqZQgPCBibGFja1wtaG9yc2U7CivpqYcgPCBoZWF2eVwtaG9yc2U7CivmnInntpPpqZcgPCBleHBlcmllbmNlZDsKK+mZkOaWvCA8IHJlc3RyaWN0XC1hdDsKK+mWiee2kyA8IGFtZW5vcnJob2VhOwor6KqN5Ye6IDwgcmVjb2duaXRpb247CivlhY3ogbcgPCBkZWdyYWRhdGlvbjsKK+W3peeoiyA8IGVuZ2luZWVyaW5nOwor6KiY5b6XIDwgdG9cLXJlbWVtYmVyOwor5pO65biDIDwgb3JkZXJcLWFib3V0Owor6aCLIDwgdG9cLWNhcmVcLWZvcjsKK+mAj+aYjiA8IHRyYW5zcGFyZW50Owor5Yqb5ZyWIDwgdHJ5XC1oYXJkXC10bzsKK+acieeUn+S7peS+hiA8IHNpbmNlXC1iaXJ0aDsKK+meqyA8IGludGVycm9nYXRlOwor6LKd5Yqg54i+5rmWIDwgbGFrZVwtYmFpa2FsOwor5YW456auIDwgY2VsZWJyYXRpb247CivliJHmnJ8gPCBwcmlzb25cLXRlcm07Civnsr7nsKEgPCB0b1wtc2ltcGxpZnk7CivlkozlubPmnIPoq4cgPCBwZWFjZVwtdGFsa3M7CivoirHojLYgPCBzY2VudGVkXC10ZWE7CivmlaPkvYggPCBkaXNzZW1pbmF0ZTsKK+ewv+iomCA8IGJvb2trZWVwaW5nOwor5aSq5bmz5rSL6YCx6YKKIDwgcGFjaWZpY1wtcmltOwor6Ke45oCSIDwgcHJvdm9jYXRpb247CivmlKrlkowgPCB0b1wtbWl4XC1cKHVwXCk7CivpgLHlubQgPCBhbm5pdmVyc2FyeTsKK+e1leacmyA8IGRlc3BlcmF0aW9uOwor5pWX5LuXIDwgbG9zdFwtYmF0dGxlOwor5LiN6K6K5YO55qC8IDwgZml4ZWRcLXByaWNlOwor6ZCmIDwgY2FsaWZvcm5pdW07CivntZDmnZ8gPCB0ZXJtaW5hdGlvbjsKK+eEoeaEjyA8IGluYWR2ZXJ0YW50Owor6Y+7IDwgcGhvc3Bob25pdW07CivnlLfmnIvlj4sgPCBtYWxlXC1mcmllbmQ7Civnm7jmr5QgPCBjb21wYXJlZFwtdG87CivopobmspIgPCBhbm5paGlsYXRlZDsKK+eZveearuabuCA8IHdoaXRlXC1wYXBlcjsKK+mNkCA8IGFcLWhlYWRzdGFsbDsKK+ecieaioiA8IHRpcFwtb2ZcLWJyb3c7CivliIfmj5sgPCB0b1wtY3V0XC1vdmVyOwor57+76K2v6ICFIDwgaW50ZXJwcmV0ZXI7Civlhannmb4gPCB0d29cLWh1bmRyZWQ7CivlpbPnubzmib/kurogPCBpbmhlcml0cmVzczsKK+WBh+ioreiqnuawoyA8IHN1Ymp1bmN0aXZlOwor5Zyw5b+D5ZC45YqbIDwgZ3Jhdml0YXRpb247CivphrkgPCBzdHJvbmdcLXdpbmU7CivphpMgPCBzYWx0ZWRcLW1lYXQ7CivkuI3ms6jmhI8gPCB0aG91Z2h0bGVzczsKK+ipleWDuSA8IHRvXC1ldmFsdWF0ZTsKK+mFjyA8IG1pbGxldFwtd2luZTsKK+S/neS4jeS9jyA8IG1vc3RcLWxpa2VseTsKK+W0qeijgiA8IGJ1cnN0XC1hcGFydDsKK+W3tOWTiOmmrCA8IHRoZVwtYmFoYW1hczsKK+a/gOWFieS6jOalteeuoSA8IGxhc2VyXC1kaW9kZTsKK+eZvOmAgeWZqCA8IHRyYW5zbWl0dGVyOwor5Yqg5LulIDwgaW5cLWFkZGl0aW9uOwor5oyJ6YiVIDwgcHVzaFwtYnV0dG9uOwor6L+KIDwgdG9cLWdvXC1yb3VuZDsKK+WgseaHiSA8IHJldHJpYnV0aW9uOwor5bm+5bm0IDwgYVwtZmV3XC15ZWFyczsKK+ebvOacmyA8IHRvXC1ob3BlXC1mb3I7Civpmorlk6EgPCB0ZWFtXC1tZW1iZXI7CivooYzouaQgPCB3aGVyZWFib3V0czsKK+aUr+S7mCA8IHBheVwtXChtb25leVwpOwor56ys5LiA56ugIDwgY2hhcHRlclwtb25lOwor6YGL6LKo6aas6LuKIDwgY2FyZ29cLXdhZ29uOwor6KGo6KqeIDwgcHJlZGljYXRpdmU7CivovKYgPCBhXC1oYW5kXC1jYXJ0Owor6Ki75YaKIDwgdG9cLXJlZ2lzdGVyOwor6ZmE5bGsIDwgc3Vib3JkaW5hdGU7CivpgKPnkrDlnJYgPCBjb21pY1wtc3RyaXA7Civlgb3ou40gPCBwdXBwZXRcLWFybXk7CivlhKrnp4AgPCBvdXRzdGFuZGluZzsKK+i0lyA8IGNvdW50ZXJmZWl0Owor6LKYIDwgdGhlXC1wYW50aGVyOwor6auU6LK8IDwgY29uc2lkZXJhdGU7CivosaYgPCBhXC13aWxkXC1ib2FyOwor6LGYIDwgYVwtc21hbGxcLXBpZzsKK+Wft+aUvyA8IGJlXC1pblwtcG93ZXI7CivlnKjlnLDkuIsgPCB1bmRlcmdyb3VuZDsKK+esrOS4ieS4lueVjCA8IHRoaXJkXC13b3JsZDsKK+mtmuervyA8IGZpc2hpbmdcLXJvZDsKK+eEoemXnOe3iuimgSA8IGluZGlmZmVyZW50Owor5biM5pybIDwgcm9cLXdpc2hcLWZvcjsKK+e0hOacgyA8IGFwcG9pbnRtZW50Owor6auU6KqNIDwgcmVhbGl6YXRpb247Civlubjlpb0gPCBmb3J0dW5hdGVseTsKK+aOiOeyiSA8IHBvbGxpbmF0aW9uOwor6KexIDwgdGFydGFyXC1ob3JuOwor6KS1IDwgYnJpZGFsXC12ZWlsOwor6KO954mHIDwgbW92aWVtYWtpbmc7CivlgrPnnJ/mqZ8gPCBmYXhcLW1hY2hpbmU7CivmqZ/mnIMgPCBvcHBvcnR1bml0eTsKK+mXnOaKvCA8IHB1dFwtaW5cLWphaWw7CivlpKfkvr/kub7nh6UgPCBjb25zdGlwYXRlZDsKK+ijneeUsui7iiA8IGFybW9yZWRcLWNhcjsKK+igiyA8IGNhdGVycGlsbGFyOwor5LiN5YGP5LiN5YCaIDwgZXZlblwtaGFuZGVkOwor6J+bIDwgYVwtbGFuZFwtY3JhYjsKK+eBjOa6iSA8IHRvXC1pcnJpZ2F0ZTsKK+mAmuWRiiA8IHRvXC1hbm5vdW5jZTsKK+idmyA8IHRoZVwtc293XC1idWc7CivonY0gPCBhXC1jZW50aXBlZGU7CivpqZXpmb0gPCBibGF6aW5nXC1zdW47CivliY3ku7sgPCBwcmVkZWNlc3NvcjsKK+iXmiA8IHdhdGVyXC1wbGFudDsKK+WIhuaVo+azqOaEjyA8IHRvXC1kaXN0cmFjdDsKK+iXhCA8IGVkaWJsZVwtZmVybjsKK+i7n+einyA8IGZsb3BweVwtZGlzazsKK+iTqiA8IHBhcGVyXC1wbGFudDsKK+iTgiA8IGx1Y2t5XC1wbGFjZTsKK+iSrSA8IHRvXC1jdXRncmFzczsKK+iQkCA8IGx1Y2t5XC1wbGFudDsKK+iPoiA8IHRvXC1pbmN1YmF0ZTsKK+eNsuebiuiAhSA8IGJlbmVmaWNpYXJ5Owor5bGP6ZaAIDwgc2NyZWVuXC1kb29yOwor5ouc6KiqIDwgcGF5XC1hXC12aXNpdDsKK+WNiumAj+aYjiA8IHRyYW5zbHVjZW50Owor6ImXIDwgYm93XC1vZlwtanVuazsKK+mAgOWHuiA8IHRvXC13aXRoZHJhdzsKK+aOoeeFpCA8IGNvYWxcLW1pbmluZzsKK+esrOS4gOa1gSA8IGZpcnN0XC1jbGFzczsKK+W5s+WHoSA8IGNvbW1vbnBsYWNlOwor6KyA5q665qGIIDwgbXVyZGVyXC1jYXNlOwor5ous6JmfIDwgcGFyZW50aGVzaXM7Civog5QgPCByb3R0ZW5cLW1lYXQ7CivogoggPCB0b1wtY29tbWVuY2U7CivogaYgPCB0aGVcLWhlYXJpbmc7CivogJEgPCBzcGVjaWFsaXplZDsKK+e+liA8IGFcLWJsYWNrXC1yYW07CivnjY7lrbjph5EgPCBzY2hvbGFyc2hpcDsKK+e9sSA8IGZpc2hpbmdcLW5ldDsKK+a7sumAjyA8IHRvXC1wZXJtZWF0ZTsKK+e9oCA8IGFuaW1hbFwtdHJhcDsKK+e9kiA8IHJhZGljYWxcLTEyMjsKK+WBt+iBvSA8IHRvXC1ldmVzZHJvcDsKK+WHuuWFtSA8IHNlbmRcLXRyb29wczsKK+WfueWcnyA8IHRvXC1lYXJ0aFwtdXA7CivplovmiLAgPCBzdGFydFwtYVwtd2FyOwor5YiG5L2IIDwgZGlzdHJpYnV0ZWQ7Civov7fkurogPCBmYXNjaW5hdGluZzsKK+S4jeWLleeUoiA8IHJlYWxcLWVzdGF0ZTsKK+ezoiA8IHJpY2VcLXNuYWNrczsKK+WHuuS+hiA8IHRvXC1jb21lXC1vdXQ7Civkv6HpgZMgPCBzaWduYWxcLXBhdGg7CivllZ/npLrpjIQgPCByZXZlbGF0aW9uczsKK+ewuSA8IHRhbGxcLWJhbWJvbzsKK+ewtSA8IGZpbmVcLWJhbWJvbzsKK+ewsCA8IGJhbWJvb1wtcmFmdDsKK+mtlOazlSA8IGVuY2hhbnRtZW50Owor55Sz6KuLIDwgYXBwbHlcLVwoZm9yXCk7CivnrKzkuInmlrkgPCB0aGlyZFwtcGFydHk7CivnrakgPCBiYW1ib29cLXBpcGU7CivnrYogPCBiYW1ib29cLXJvcGU7CivnrYcgPCBiYW1ib29cLW5hbWU7Civot5Hou4ogPCByYWNpbmdcLWJpa2U7CivnrK8gPCBhXC1iaXJkXC1jYWdlOwor6KGo6JKZ5a2QIDwgd2F0Y2hcLWdsYXNzOwor5pO65p625a2QIDwgcHV0XC1vblwtYWlyczsKK+equCA8IGZhaW50XC1zb3VuZDsKK+S4jeeiuuWumiA8IHVuY2VydGFpbnR5Owor5YWr5bm0IDwgZWlnaHRcLXllYXJzOwor56m1IDwgZGVlcFwtaG9sbG93Owor6LaF57Sa5biC5aC0IDwgc3VwZXJtYXJrZXQ7Civno7kgPCBzdG9uZVwtd2VkZ2U7CivnopQgPCBcLzJcLXByXC1zdG9uZTsKK+exjOasviA8IGZ1bmRyYWlzaW5nOwor5Z+f5ZCNIDwgZG9tYWluXC1uYW1lOwor56CDIDwgd2hpdGVcLXN0b25lOwor5561IDwgdG9cLXN0YXJlXC1hdDsKK+WPpOWFuOa0viA8IGNsYXNzaWNpc3RzOwor5YWr5a2XIDwgY2hhcmFjdGVyXC04Owor55u45Ly8IDwgdG9cLXJlc2VtYmxlOwor5oyq55SoIDwgdG9cLWVtYmV6emxlOwor5Y+v6KGM5oCnIDwgZmVhc2liaWxpdHk7CivnnKUgPCBleWVcLXNvY2tldHM7CivnnJEgPCBzdW5rZW5cLWV5ZXM7CivnnIogPCBkaW1cLXNpZ2h0ZWQ7CivnmJogPCB0b1wtaGljY291Z2g7Civnl7MgPCBwb2NrXC1tYXJrZWQ7Civnl60gPCBtZW5vcnJoYWdpYTsKK+eXgyA8IGluZGlnZXN0aW9uOwor6KOd5omuIDwgZHJlc3NcLXVwXC1hczsKK+WfjuWNgCA8IGNpdHlcLXByb3BlcjsKK+a6nemAmiA8IGNvbW11bmljYXRlOwor54K65LqGIDwgaW5cLW9yZGVyXC10bzsKK+eZveWuriA8IHdoaXRlXC1ob3VzZTsKK+WQiOazleWMliA8IHRvXC1sZWdhbGl6ZTsKK+WGoOWGlSA8IHJveWFsXC1jcm93bjsKK+ePvSA8IGphZGVcLXRhYmxldDsKK+WDj+aooyA8IHByZXNlbnRhYmxlOwor5ben5ZCIIDwgY29pbmNpZGVuY2U7Civni6IgPCBhbmltYWxcLW5hbWU7CivmiLDou4ogPCB3YXJcLWNoYXJpb3Q7CivmjqLnhafnh4ggPCBzZWFyY2hsaWdodDsKK+WuieWvp+eJhyA8IG1lcHJvYmFtYXRlOwor55m95aScIDwgd2hpdGVcLW5pZ2h0Owor5piv5LiN5pivIDwgaXNcLW9yXC1pc24nJ3Q7CivoirHlupcgPCBmbG93ZXJcLXNob3A7Civkvr/opr0gPCBicmllZlwtZ3VpZGU7Civnh5YgPCByZWhlYXRcLWZvb2Q7CivoiIrniYggPCBvbGRcLXZlcnNpb247CivlpJrlt6XlmaggPCBtdWx0aXBsZXhlcjsKK+eFnyA8IGJyaWdodFwtcm9vbTsKK+eFjyA8IGRyeVwtYnlcLWZpcmU7CivnhYYgPCByYWdpbmdcLWZpcmU7Civlm6DmraQgPCB0aGF0XC1pc1wtd2h5Owor5r2+IDwgY2xlYXJcLXdhdGVyOwor5Yue5YuV5YqbIDwgbGFib3JcLWZvcmNlOwor6Kqe6KiA5a24IDwgbGluZ3Vpc3RpY3M7CivmvaAgPCB0b1wtYmxvd1wtb3V0Owor5ru3IDwgdGhpY2tcLWdyYXZ5Owor5YiG5pyf5LuY5qy+IDwgaW5zdGFsbG1lbnQ7CivnkZ7pm6ogPCB0aW1lbHlcLXNub3c7CivmuJ8gPCBub3RcLWZsb3dpbmc7CivlhazlhYMgPCBcKHllYXJcKVwtYVwuZFwuOwor5rWhIDwgYnVyc3RcLWZvcnRoOwor5bm46YGL5YWSIDwgYVwtbHVja3lcLWd1eTsKK+aysCA8IHRvXC1sZXRcLWRyb3A7CivoibLmg4UgPCBwb3Jub2dyYXBoeTsKK+acrOizquS4iiA8IGVzc2VudGlhbGx5Owor5Zyw5LiL5rC0IDwgZ3JvdW5kd2F0ZXI7CivnlLPoq4vmm7ggPCBhcHBsaWNhdGlvbjsKK+ausCA8IGFuXC1hYm9ydGlvbjsKK+eZveWIgyA8IG5ha2VkXC1zd29yZDsKK+eZvOWHuiA8IHRvXC1zZW5kXC1vdXQ7CivmlZnogrLmgKcgPCBpbnN0cnVjdGl2ZTsKK+WwseiBtyA8IHRha2VcLW9mZmljZTsKK+e5vOaJv+asiiA8IGluaGVyaXRhbmNlOwor5qeiIDwgYVwtaGFyZFwtd29vZDsKK+aLlOeHnyA8IHN0cmlrZVwtY2FtcDsKK+aKiuepqSA8IHRydXN0d29ydGh5Owor5qKYIDwgYmFtYm9vXC10dWJlOwor5qKWIDwgYVwtcGFsbVwtdHJlZTsKK+aihCA8IGFcLXNvZnRcLXdvb2Q7CivkuJbnlYzosr/mmJMgPCB3b3JsZFwtdHJhZGU7CivoiJLmnI0gPCBjb21mb3J0YWJsZTsKK+aYnCA8IHRvXC1vcGVuXC1vdXQ7CivmmIkgPCBicmlnaHRcLWRhd247Civml4kgPCB0b1wtc3RhdGVcLXRvOwor5omL57qMIDwgZm9ybWFsaXRpZXM7CivmjInmnJ8gPCBvblwtc2NoZWR1bGU7CivmkY4gPCB0b1wtc3RyYW5nbGU7CivmlZflrrblrZAgPCBzcGVuZHRocmlmdDsKK+i4qeawtCA8IHRyZWFkXC13YXRlcjsKK+Wuo+iogCA8IGRlY2xhcmF0aW9uOwor6I6O5aOr5q+U5LqeIDwgc2hha2VzcGVhcmU7CivlsYDpmZDmgKcgPCBsaW1pdGF0aW9uczsKK+aFiSA8IHRvXC1icmluZ1wtdXA7CivllK7osqjlk6EgPCBzYWxlc3BlcnNvbjsKK+WPr+WwiuaVrCA8IHJlc3BlY3RhYmxlOwor5YG35oe2IDwgdG9cLWdvb2ZcLW9mZjsKK+m8u+mfsyA8IG5hc2FsXC1zb3VuZDsKK+mdnuaVuOWtlyA8IG5vblwtbnVtZXJpYzsKK+W+uyA8IGFcLXdpZGVcLXJvb207Civlm7DlooMgPCBwcmVkaWNhbWVudDsKK+eIhuexs+iKsSA8IHB1ZmZlZFwtcmljZTsKK+S4ieWNgeWkqSA8IHRoaXJ0eVwtZGF5czsKK+a7sua/viA8IHBlcmNvbGF0aW9uOwor5bywIDwgZW5kc1wtb2ZcLWJvdzsKK+Wbm+WIhuS5i+S4gCA8IG9uZVwtcXVhcnRlcjsKK+eXheWuuSA8IHNpY2tseVwtbG9vazsKK+aIkOe4viA8IHBlcmZvcm1hbmNlOwor5Lq66ZaTIDwgbWFuJydzXC13b3JsZDsKK+err+ermSA8IGVuZFwtc3RhdGlvbjsKK+iMheWxi+mggiA8IHRoYXRjaFwtcm9vZjsKK+ihjeWwhCA8IGRpZmZyYWN0aW9uOwor5bSqIDwgcm9ja3lcLXBlYWtzOwor5Zue5aCxIDwgXChpblwpXC1yZXR1cm47CivkuInljYHlm5sgPCB0aGlydHlcLWZvdXI7CivlsbAgPCBkaXNvYmVkaWVudDsKK+WxnSA8IHN0cmF3XC1zaG9lczsKK+WwnCA8IGFcLWNoaWxkXC10b3k7CivlmajlrpjmjZDnjbvogIUgPCBvcmdhblwtZG9ub3I7CivoqIrmoYblgrPpgIEgPCBmcmFtZVwtcmVsYXk7CivmgKfkvLTkvrYgPCBzZXhcLXBhcnRuZXI7CivlrJQgPCBiYWJ5XC1yYWJiaXQ7CivmiJbnqLEgPCBhbHNvXC1jYWxsZWQ7CivkubPnmb3oibIgPCBtaWxreVwtd2hpdGU7Civnlavmj5LlnJbogIUgPCBpbGx1c3RyYXRvcjsKK+esrOS6jOasoeS4lueVjOWkp+aIsCA8IHdvcmxkXC13YXJcLTI7Civpq5jlo5MgPCBoaWdoXC1oYW5kZWQ7Civlob8gPCBzbWFsbFwtbW91bmQ7Civku7Loo4EgPCBhcmJpdHJhdGlvbjsKK+WgiiA8IHdoaXRlXC1lYXJ0aDsKK+WenSA8IGRpbGFwaWRhdGVkOwor5Z6UIDwgdG9cLXJlc3RyYWluOwor5YC85b6XIDwgdG9cLWJlXC13b3J0aDsKK+eVsOW4uCA8IGV4Y2VwdGlvbmFsOwor6ZG95a2UIDwgYm9yZVwtYVwtaG9sZTsKK+iTi+eEtuaApyA8IHByb2JhYmlsaXR5Owor5paH5Lu25pyN5YuZ5ZmoIDwgZmlsZVwtc2VydmVyOwor55W25bGAIDwgYXV0aG9yaXRpZXM7Civllo4gPCBhXC13cnlcLW1vdXRoOwor6auY5ZSxIDwgc2luZ1wtbG91ZGx5Owor6LaK5Y2X5oiw54itIDwgdmlldG5hbVwtd2FyOwor5ZS5IDwgdG9cLXNtaWxlXC1hdDsKK+S7i+ipniA8IHByZXBvc2l0aW9uOwor5Y+v6IO95oCnIDwgcG9zc2liaWxpdHk7CivlkoUgPCB0b1wtc3BpdFwtb3V0Owor6Iie5YqHIDwgZGFuY2VcLWRyYW1hOwor5Y+7IDwgcGxhY2VcLW5hbWVzOwor5Y6+IDwgbGlnaHRseVwtdGFwOwor5YKR5Ye6IDwgaWxsdXN0cmlvdXM7CivnlobloLQgPCBiYXR0bGVmaWVsZDsKK+eZu+WxseWutiA8IG1vdW50YWluZWVyOwor5L+h5pyNIDwgdG9cLWNvbnZpbmNlOwor5YyvIDwgYVwtY29uY291cnNlOwor5YugIDwgam9pblwtZm9yY2VzOwor54Sh5omA5LiN5ZyoIDwgb21uaXByZXNlbnQ7CivlirwgPCBiZVwtZGlzY3JlZXQ7CivohL7msKMgPCB0ZW1wZXJhbWVudDsKK+S4jeWHuuaJgOaWmSA8IGFzXC1leHBlY3RlZDsKK+S4ium9kiA8IHVwcGVyXC10ZWV0aDsKK+aFsOiXiSA8IGNvbnNvbGF0aW9uOwor5YmmIDwgdG9cLWNhc3RyYXRlOwor5p2/6KaPIDwgcGxhdGVcLWdhdWdlOwor5YepIDwgd2ludHJ5XC13aW5kOwor55eF5Lq6IDwgc2lja1wtcGVyc29uOwor6ZGS5a6aIDwgdG9cLWFwcHJhaXNlOwor5LiW55WM5ZKM5bmzIDwgd29ybGRcLXBpZWNlOwor5YKZ5Lu2IDwgc3BhcmVcLXBhcnRzOwor5ZOy5a245a62IDwgcGhpbG9zb3BoZXI7CivnlJ/miJAgPCBiZVwtcHJvZHVjZWQ7Civkvr/mobYgPCBjaGFtYmVyXC1wb3Q7Civlgo8gPCB0b1wtd2FyZFwtb2ZmOwor6ISr5rCnIDwgZGVveGlkYXRpb247Civmg4XpoZggPCB3aWxsaW5nbmVzczsKK+eUn+aFiyA8IHdheVwtb2ZcLWxpZmU7CivmjIflh7ogPCB0b1wtaW5kaWNhdGU7Civkv5sgPCBtYWtlXC1lZmZvcnQ7Civns7vliJfniYcgPCBmaWxtXC1zZXJpZXM7CivpmL/lr4zmsZcgPCBhZmdoYW5pc3RhbjsKK+S9uSA8IGRlcGVuZFwtdXBvbjsKK+a0m+adieejryA8IGxvc1wtYW5nZWxlczsKK+aJgeahgyA8IGFsbW9uZFwtdHJlZTsKK+i3i+aJiCA8IGRvbWluZWVyaW5nOwor5LaqIDwgc2hhcnBcLXRlZXRoOwor6Zmw5ra86JmVIDwgc2hhZHlcLXBsYWNlOwor5L+u5b6pIDwgcmVzdG9yYXRpb247CivktbQgPCBibGFja1wtY29sb3I7CivktbMgPCBsaWdodFwtYmxhY2s7CivktakgPCBkYXJrXC15ZWxsb3c7CivnrYblv4MgPCBwZW5jaWxcLWxlYWQ7CivksrsgPCB0aGVcLXN3YWxsb3c7Civkv6Hmga8gPCBpbmZvcm1hdGlvbjsKK+SxvSA8IHRoZVwtcG9tZnJldDsKK+SxuiA8IGFcLW1hbGVcLWNyYWI7CivksZIgPCBzYWx0ZWRcLWZpc2g7CivovYnkvobovYnljrsgPCByb3ZlXC1hcm91bmQ7CivkuI3poacgPCBpblwtc3BpdGVcLW9mOwor5K6YIDwgeW91bmdcLWhvcnNlOwor56uL5rOVIDwgbGVnaXNsYXRpb247CivlsI3mlrkgPCBjb3VudGVycGFydDsKK+epuueZvSA8IGJsYW5rXC1zcGFjZTsKK+eUt+WlsyA8IG1hbGVcLWZlbWFsZTsKK+SrsyA8IGh1bWFuXC1za3VsbDsKK+SrsCA8IHNwYXJzZVwtaGFpcjsKK+SrrSA8IGJhbGRcLWhlYWRlZDsKK+mHnemLkuebuOWwjSA8IHRpdFwtZm9yXC10YXQ7Civkq4QgPCBiZXR0ZXJcLXRoYW47CivkqrQgPCB0aGVcLW9jY2lwdXQ7CivkvLjnuK7mgKcgPCBmbGV4aWJpbGl0eTsKK+SqhCA8IGdyZWF0XC1ibGF6ZTsKK+SpuyA8IHRvXC1iZVwtY2hpZWY7CivkqZwgPCBkZXNjZW5kYW50czsKK+mWieacg+eliOemsSA8IGJlbmVkaWN0aW9uOwor5KixIDwgc3BpbHRcLXdhdGVyOwor5KeTIDwgYVwtYmlnXC1tb3VuZDsKK+SmtyA8IHRvXC1zdHJ1Z2dsZTsKK+eVtuWBmiA8IHRvXC10cmVhdFwtYXM7CivkppggPCBhXC10aHJlc2hvbGQ7CivplonlhYPpn7MgPCBjbG9zZVwtdm93ZWw7CivkpYAgPCB0b1wtcHVsbFwtb3V0Owor5KStIDwgdG9cLW9ybmFtZW50Owor5KSFIDwgc291dGhlcndvb2Q7Civot5vlrZAgPCBsYW1lXC1wZXJzb247CivkuI3lj6/kvLDph48gPCBpbmVzdGltYWJsZTsKK+S6lOiQrCA8IDUwXC10aG91c2FuZDsKK+SgnSA8IHRvXC1zdGFuZFwtdXA7CivkoI0gPCBhdFwtdGhlXC1mZWV0Owor5pyA5aSn5YyWIDwgdG9cLW1heGltaXplOwor5J+FIDwgdG9cLWdvXC1haGVhZDsKK+SfgSA8IGFcLWZvb3RcLXJhY2U7Civknr0gPCB0b1wtbGllXC1mbGF0Owor5J6oIDwgaGFsZlwtYVwtcGFjZTsKK+SehCA8IHRvXC1kaXNwZXJzZTsKK+SdgCA8IGdhcmRlblwtcGVhczsKK+ScsCA8IGRlZXBcLXZhbGxleTsKK+S/neWtmCA8IHRvXC1jb25zZXJ2ZTsKK+SclyA8IGFuZ3J5XC13b3JkczsKK+SchiA8IGhhc3R5XC13b3JkczsKK+SbmCA8IHRvXC10aGlua1wtb2Y7CivkmrMgPCBkb1wtbm90XC1rbm93Owor5JqyIDwgdG9cLWxhdWdoXC1hdDsKK+a3mOelniA8IHRyb3VibGVzb21lOwor5Jm+IDwgdG9cLXdhaXRcLWZvcjsKK+SZsSA8IGFcLWxvbmdcLWNvYXQ7CivkmbAgPCBuZXdcLWZlYXRoZXI7CivkmYIgPCBzaG9ydFwtcGFudHM7CivnrYbloqggPCBwZW5cLWFuZFwtaW5rOwor5JeWIDwgdGhlXC1yYWluYm93Owor6JaR6aSFIDwgZ2luZ2VyYnJlYWQ7CivnrKzljYHkuIMgPCBzZXZlbnRlZW50aDsKK+SVuCA8IHdoZWF0XC1zdHJhdzsKK+a6q+W6piA8IHRlbXBlcmF0dXJlOwor5JS/IDwgbHVzaFwtZ3Jvd3RoOwor6LeR5aOYIDwgYmFzZXJ1bm5pbmc7CivplovmlL7ns7vntbEgPCBvcGVuXC1zeXN0ZW07CivonJzmoYMgPCBob25leVwtcGVhY2g7CivpkZLkuo4gPCBpblwtbGlnaHRcLW9mOwor5JKLIDwgYWlyXC1jdXJyZW50Owor5Y+v6amaIDwgYXN0b25pc2hpbmc7CivmnInpmZDlhazlj7ggPCBjb3Jwb3JhdGlvbjsKK+epuumWk+aOoua4rCA8IHNwYWNlXC1wcm9iZTsKK+SQmiA8IGdvb2RcLWdyYWNlczsKK+SPtiA8IHRoZVwtc3RvbWFjaDsKK+SPlCA8IHRvXC1lYXRcLW1lYXQ7Civkvr/lrpwgPCBpbmV4cGVuc2l2ZTsKK+WTsuWtuOS4iiA8IHBoaWxvc29waGljOwor5ZCm5pyJ5pWIIDwgaW5lZmZpY2llbnQ7CivkuI3ov60gPCBjYW5ub3RcLWNvcGU7CivljJfmnJ3prq4gPCBub3J0aFwta29yZWE7CivkjKogPCB0b1wtY29udGludWU7CivkjKYgPCBncmVlblwtY29sb3I7CivlkInniL7lkInmlq/mlq/lnaYgPCBraXJnaGl6c3RhbjsKK+aJi+WvqyA8IGhhbmR3cml0aW5nOwor5IqtIDwgdG9cLW92ZXJ0dXJuOwor5IqrIDwgY29hcnNlXC1yaWNlOwor5IqiIDwgdGhpY2tcLWZsdWlkOwor5IqTIDwgdG9cLXBhc3RlXC11cDsKK+S4i+i8iSA8IHRvXC1kb3dubG9hZDsKK+SJnSA8IGJhbWJvb1wtd2FyZTsKK+SIuCA8IGFcLWJpZ1wtY2hlc3Q7CivouI/kuIogPCBzZXRcLWZvb3RcLW9uOwor5IazIDwgZmFyXC1kaXN0YW50Owor5IaYIDwgYWN1cHVuY3R1cmU7CivkhpYgPCBhXC1iaWdcLWhvdXNlOwor5IWEIDwgbG9uZ1wtZ3JhaW5zOwor5IS9IDwgY29tbW9uXC1yaWNlOwor5IOtIDwgYVwtc3RvbmVcLWJveDsKK+eSsOW9oiA8IHJpbmdcLXNoYXBlZDsKK+SCsSA8IHRvXC13ZWFyXC1vdXQ7CivkgpMgPCByZWd1bGF0aW9uczsKK+SBuyA8IHByZXR0eVwtZXllczsKK+SBtyA8IGJyaWdodFwtZXllczsKK+SBsSA8IGhvbGxvd1wtZXllZDsKK+S9iOaZryA8IFwoc3RhZ2VcKVwtc2V0Owor5ICCIDwgYVwtYmlnXC1iYXNpbjsKK+WfuuekjuWVj+mhjCA8IGJhc2ljXC1pc3N1ZTsKK+O/oyA8IHdoaXRlXC1jb2xvcjsKK+O/mCA8IHRvXC1nZXRcLXNpY2s7CivjvrogPCBleWVcLWRpc2Vhc2U7Civjvp0gPCB0b1wtbGVha1wtb3V0Owor6ai35YuVIDwgZGlzdHVyYmFuY2U7CivjvoggPCBodW5jaGJhY2tlZDsKK+O+gyA8IGh1bXBcLWJhY2tlZDsKK+O9qiA8IHBhZGR5XC1maWVsZDsKK+aCsuingCA8IHBlc3NpbWlzdGljOwor5Y+j6aaZ57OWIDwgY2hld2luZ1wtZ3VtOwor47yYIDwgb2ZcLW1vdW50YWluOwor47yTIDwgbWVsb25cLXNlZWRzOwor6KW/5LmD5bGxIDwgbW91bnRcLXNpbmFpOwor47uTIDwgYVwtZmluZVwtamFkZTsKK+e+juiyjCA8IGdvb2Rsb29raW5nOwor6bq76JelIDwgYW5hZXN0aGV0aWM7CivjuaAgPCBhXC1zbWFsbFwtYmlnOwor6YKB6Zi/5a+G54GYIDwgbWlhbWlcLWJlYWNoOwor47igIDwgdGhpY2tcLXN0aWNrOwor5bCP5Z6LIDwgc21hbGxcLXNjYWxlOwor47WkIDwgdG9cLW92ZXJmbG93Owor47SYIDwgdG9cLW9vemVcLW91dDsKK+mHkeWxrOadvyA8IG1ldGFsXC1wbGF0ZTsKK+OysCA8IGFcLWhhaXJ5XC1kb2c7CivjsLIgPCB0b1wtYmxvd1wtb2ZmOwor46+IIDwgc21hbGxcLXRyZWVzOwor6aGM6KmeIDwgaW5zY3JpcHRpb247Civjrp0gPCBhbmdsZVwtc3RlZWw7CivjrbQgPCB0aGVcLW9zY2luZXM7CivjrY4gPCBhXC10YWxsXC10cmVlOwor6Laj5ZGzIDwgdG9cLWludGVyZXN0Owor5L+h5LuwIDwgZmlybVwtYmVsaWVmOwor46ypIDwgYVwtdGlueVwtc3RhcjsKK+iCoeadsSA8IHN0b2NraG9sZGVyOwor6Y6u5aOTIDwgc3VwcHJlc3Npb247Civjq5ggPCBkaXNhcHBlYXJlZDsKK+adv+eJmSA8IGZyb250XC10b290aDsKK+azs+iksiA8IHN3aW1cLXRydW5rczsKK+WQjOizqiA8IGhvbW9nZW5lb3VzOwor46mFIDwgdG9cLWRyYXdcLW91dDsKK+WFqeeZvuiQrCA8IHR3b1wtbWlsbGlvbjsKK+OotSA8IHRvXC1jdXRcLWF3YXk7CivjqLQgPCB0b1wtdHVybm92ZXI7CivjqJUgPCB0b1wtc2hvdWxkZXI7CivnkrDlooMgPCBlbnZpcm9ubWVudDsKK+OnlCA8IHRvXC1kaXN0dXJiZTsKK+S/rueQhuW7oCA8IHJlcGFpclwtc2hvcDsKK+OmkiA8IHRvXC1kZWNlaXZlZDsKK+OkoSA8IHRvXC1zdXJwcmlzZTsKK+OklSA8IG1lbGFuY2hvbG95Owor46SBIDwgdG9cLWRpc2dyYWNlOwor46O+IDwgZG9cLW5vdFwtY2FyZTsKK+OjtSA8IHRvXC1ydW5cLWF3YXk7Civjo6UgPCB0b1wtc3RvcmVcLXVwOwor46KTIDwgdG9cLXNlcGFyYXRlOwor5p6c5rGBIDwgZnJ1aXRcLWp1aWNlOwor6ICV55WcIDwgZmFybVwtYW5pbWFsOwor5aKe6ZW3546HIDwgZ3Jvd3RoXC1yYXRlOwor6YeN6L+UIDwgcmV0dXJuXC1cKHRvXCk7CivkuJ/oh4kgPCBodW1pbGlhdGlvbjsKK+OdtCA8IGFcLXJvdW5kXC1vZmY7CivjnZQgPCBkZWVwXC1ib3R0b207CivmiJHlnIsgPCBvdXJcLWNvdW50cnk7CivjnKMgPCBhXC1sYXN0XC1uYW1lOwor45yOIDwgc2xhdmVcLWdpcmxzOwor45uRIDwgdGhyZWVcLXdvbWVuOwor45q+IDwgdG9cLWhhdmVcLWZ1bjsKK+eOu+aEj+iAs+WumuW+iyA8IGJveWxlJydzXC1sYXc7CivjmLYgPCBhXC1oZW5cLXJvb3N0Owor6Lqr5b+D54i95b+rIDwgcmVmcmVzaG1lbnQ7CivjmKUgPCB0b1wtaW52ZWlnbGU7CivkvYjlsYAgPCBhcnJhbmdlbWVudDsKK+S7luWAkemDvSA8IGFsbFwtb2ZcLXRoZW07CivororpgJogPCBiZVwtZmxleGlibGU7CivpvLvmtpUgPCBuYXNhbFwtbXVjdXM7Civjlr0gPCB0b1wtY2FsbFwtb3V0Owor6LK45qy+IDwgXChiYW5rXClcLWxvYW47CivjlpEgPCB0b1wtc2hvdXRcLWF0Owor45S8IDwgdG9cLWZpdFwtaW50bzsKK+OUtiA8IGFcLXNtYWxsXC1jdXA7CivjlI8gPCB0b1wtY3V0XC1vcGVuOwor45OpIDwgaG9ybmVkXC1oYWlyOwor5rqW5YKZIDwgcHJlcGFyYXRpb247CivjkqggPCBhblwtaW1tb3J0YWw7CivlronlurcgPCBnb29kXC1oZWFsdGg7CivpoJDoqIggPCB0b1wtZm9yZWNhc3Q7Civnpa3lj7jmrIrooZMgPCBwcmllc3RjcmFmdDsKK+mhnuS8vOm7niA8IHJlc2VtYmxhbmNlOwor6YeP6KmeIDwgbWVhdXJlXC13b3JkOwor6ZuZ5Lq65oi/IDwgZG91YmxlXC1yb29tOwor5ZCN6JGXIDwgbWFzdGVycGllY2U7Civnvo7ooZPppKggPCBhcnRcLWdhbGxlcnk7Civku7vmhI8gPCBhcmJpdHJhcmlseTsKK+WuieWutiA8IHNldHRsZVwtZG93bjsKK+mlkuaBlSA8IGZvcmdpdmVuZXNzOwor5a6H5a6ZIDwgb3V0ZXJcLXNwYWNlOwor55Ge5aOrIDwgc3dpdHplcmxhbmQ7CivlnKjpgJnmnJ/plpMgPCBkdXJpbmdcLXRpbWU7Civlloflj60gPCBsb3Vkc3BlYWtlcjsKK+e0hOS8r+iomCA8IGJvb2tcLW9mXC1qb2I7CivnhKHms5Xlv43lj5cgPCBpbnRvbGVyYWJsZTsKK+aCsuWWnOWKhyA8IHRyYWdpY29tZWR5Owor6aeB5YCSIDwgZGVtb2xpc2hcLXNiOwor5Y2K5bCB5bu6IDwgc2VtaVwtZmV1ZGFsOwor5rW05rGgIDwgcHVibGljXC1iYXRoOwor5Y+N5YuV5YiG5a2QIDwgcmVhY3Rpb25hcnk7Civlr6bos6rmgKcgPCBzdWJzdGFudGl2ZTsKK+iuiuWjk+WZqCA8IHRyYW5zZm9ybWVyOwor5L2/55So5pa55L6/IDwgZWFzeVwtdG9cLXVzZTsKK+WllOmmsyA8IHJ1blwtcXVpY2tseTsKK+ePvuW5tCA8IGN1cnJlbnRcLWFnZTsKK+eEoeazleW9ouWuuSA8IHVuc3BlYWthYmxlOwor6JiL5p6c5rGBIDwgYXBwbGVcLWp1aWNlOwor56S656+EIDwgZGVtb25zdHJhdGU7CivkuqTmj5sgPCB0b1wtZXhjaGFuZ2U7Civol6XniakgPCBtZWRpY2FtZW50czsKK+acieWQjOaDheW/gyA8IHN5bXBhdGhldGljOwor5pqX6KiY5YWSIDwgc2VjcmV0XC1tYXJrOwor6YSZ6ZmLIDwgc3VwZXJmaWNpYWw7CivlpJzptq8gPCBuaWdodGluZ2FsZTsKK+mkkOW7syA8IGRpbmluZ1wtaGFsbDsKK+WogeiEhSA8IHRvXC10aHJlYXRlbjsKK+epuuWJjSA8IHVucHJlY2VkZW50Owor6aCQ57SEIDwgcmVzZXJ2YXRpb247CivnorDoposgPCB0b1wtcnVuXC1pbnRvOwor5p+l5Ye6IDwgdG9cLWZpbmRcLW91dDsKK+WNiumCiiA8IGhhbGZcLW9mXC1zdGg7CivmmpfnpLogPCBkcm9wXC1hXC1oaW50Owor5Lqk5b6AIDwgYXNzb2NpYXRpb247CivphY3pgIHogIUgPCBkaXN0cmlidXRvcjsKK+abuOazlSA8IGNhbGxpZ3JhcGh5Owor6YeR6YqA6IqxIDwgaG9uZXlzdWNrbGU7CivlhYPogIHpmaIgPCB1cHBlclwtaG91c2U7CivljZPotoogPCBkaXN0aW5jdGlvbjsKK+iCoeWDuSA8IHN0b2NrXC1wcmljZTsKK+S5neaciCA8IG5pbnRoXC1tb250aDsKK+S4u+asiiA8IHNvdmVyZWlnbnR5Owor5Y+v5oOz5YOPIDwgY29uY2VpdmFibGU7CivlpJrppJggPCBzdXBlcmZsdW91czsKK+iBveWPliA8IGhlYXJcLVwobmV3c1wpOwor5oSf5oCnIDwgc2Vuc2liaWxpdHk7CivllYbkurogPCBidXNpbmVzc21hbjsKK+emgeatoiA8IHRvXC1wcm9oaWJpdDsKK+enieaJvyA8IHRha2VcLW9yZGVyczsKK+WUruWDuSA8IHRvXC1zZWxsXC1mb3I7CivlrIzlqpogPCBmbGlydGF0aW91czsKK+mggeeivCA8IHBhZ2VcLW51bWJlcjsKK+S6pOWqviA8IHRvXC1oYXZlXC1zZXg7CivkuIrmtYEgPCB1cHBlclwtY2xhc3M7Civkv6HnlKjljaEgPCBjcmVkaXRcLWNhcmQ7CivpnLjpgZMgPCBvdmVyYmVhcmluZzsKK+azoueAviA8IGdyZWF0XC13YXZlczsKK+S4jeatoiA8IGluY2Vzc2FudGx5Owor54it6K2wIDwgY29udHJvdmVyc3k7CivkuK3mnbEgPCBtaWRkbGVcLWVhc3Q7CivlpbPnrqHlrrYgPCBob3VzZWtlZXBlcjsKK+S4gOWNg+Wbm+eZvuWEhCA8IDE0MFwtYmlsbGlvbjsKK+S4ueaWuSA8IGZvbGtcLXJlbWVkeTsKK+mHjeeWiiA8IG92ZXJsYXBwaW5nOwor5Lit5pelIDwgY2hpbmFcLWphcGFuOwor6Ieq55Sx6YG45pOH5qyKIDwgZnJlZVwtYWdlbmN5Owor5Zac5q2h5ZC15p62IDwgcXVhcnJlbHNvbWU7CivmnInlrrPnmoQgPCBkZXN0cnVjdGl2ZTsKK+mHjeePviA8IHRvXC1yZWFwcGVhcjsKK+aooeeziumCj+i8ryA8IGZ1enp5XC1sb2dpYzsKK+mdtuiIuSA8IHRhcmdldFwtc2hpcDsKK+WNg+iQrCA8IHRlblwtbWlsbGlvbjsKK+S4gOaciCA8IGZpcnN0XC1tb250aDsKK+eKr+eXhSA8IHRvXC1mYWxsXC1pbGw7CivlkIzmraUgPCBzeW5jaHJvbm91czsKK+WTuuS5syA8IGJyZWFzdFwtZmVlZDsKK+S4u+W8tSA8IHRvXC1hZHZvY2F0ZTsKK+WpmuacnyA8IHdlZGRpbmdcLWRheTsKK+aal+auuiA8IGFzc2Fzc2luYXRlOwor5Li75bitIDwgY2hhaXJwZXJzb247CivljbHnr6QgPCBkZWF0aGx5XC1pbGw7CivkupLli5UgPCBpbnRlcmFjdGl2ZTsKK+WkqeeEtuawoyA8IG5hdHVyYWxcLWdhczsKK+S+m+ihgOiAhSA8IGJsb29kXC1kb25vcjsKK+S4reW5tCA8IG1pZGRsZVwtYWdlZDsKK+eHn+mkiuWTgSA8IG5vdXJpc2htZW50Owor6LKd5LiYIDwgc2hlbGxcLW1vdW5kOwor5oSP5ZCRIDwgZGlzcG9zaXRpb247Civpganmh4nmgKcgPCBzdWl0YWJpbGl0eTsKK+ayiOa+sSA8IHByZWNpcGl0YXRlOwor5aSp5paH5Y+wIDwgb2JzZXJ2YXRvcnk7Civpkb/nn7PloLQgPCByb2NrXC1xdWFycnk7CivlsLHvuY3ogIzoqIAgPCBjb25zaWRlcmluZzsKK+S4ieW5tCA8IHRocmVlXC15ZWFyczsKK/ChvbEgPCBhXC1oaWdoXC1oaWxsOwor5LiK5bGkIDwgdXBwZXJcLWxheWVyOwor5aOv6KeAIDwgc3BlY3RhY3VsYXI7CivmnInpgbjoiInmrIogPCBjb25zdGl0dWVudDsKK+aUv+iuiiA8IGNvdXBcLWQnJ2V0YXQ7CivnpZ7lrbggPCB0aGVvbG9naWNhbDsKK+a4rOmpl+e1kOaenCA8IHRlc3RcLXJlc3VsdDsKK+WQiOW9sSA8IGpvaW50XC1waG90bzsKK+WmgueVqyA8IHBpY3R1cmVzcXVlOwor5LiN5aCqIDwgY2Fubm90XC1iZWFyOwor57WC6bueIDwgZGVzdGluYXRpb247CivniIbnq7kgPCBmaXJlY3JhY2tlcjsKK+euoeWutuiBt+WLmSA8IHN0ZXdhcmRzaGlwOwor5bCP5rG96LuKIDwgY29tcGFjdFwtY2FyOwor54m55qyKIDwgcHJlcm9nYXRpdmU7CivonrrntbLliIAgPCBzY3Jld2RyaXZlcjsKK+eLl+S6pOWqvuiIrCA8IGRvZ2d5XC1zdHlsZTsKK+WIhumboiA8IHRvXC1zZXBlcmF0ZTsKK+WJr+S9nOeUqCA8IHNpZGVcLWVmZmVjdDsKK+emgeS7pCA8IHByb2hpYml0aW9uOwor5LiN5YWNIDwgdW5hdm9pZGFibGU7CivoqpPntIQgPCBob25vclwtYm91bmQ7CivorYnmm7ggPCBjcmVkZW50aWFsczsKK+ayiOaAnSA8IGNvbnRlbXBsYXRlOwor6Kej6YeLIDwgZXhwbGFuYXRpb247CivnpIHls7YgPCByZWVmXC1pc2xhbmQ7Civmpq7njbLoq77osp3niL7njY4gPCBub2JlbFwtcHJpemU7CivkuozljYHlhIQgPCB0d29cLWJpbGxpb247Civov47poqggPCBpblwtdGhlXC13aW5kOwor56e75qSN5oCnIDwgcG9ydGFiaWxpdHk7CivlpoLmraQgPCBpblwtdGhpc1wtd2F5Owor5oKg5LmFIDwgZXN0YWJsaXNoZWQ7CivlsIjmnInlkI3oqZ4gPCBwcm9wZXJcLW5vdW47CivkuIrkuIsgPCB1cFwtYW5kXC1kb3duOwor5LqM5Y2B5LqUIDwgdHdlbnR5XC1maXZlOwor5pyL5q+U54K65aW4IDwgdG9cLWNvbnNwaXJlOwor5pCs5byE5piv6Z2eIDwgc293XC1kaXNjb3JkOwor55qEIDwgcG9zc2Vzc2l2ZTsKK+i+vCA8IGNyb3dkXC1pbnRvOwor6L67IDwgY3Jvc3Nyb2FkczsKK+iDvSA8IHRvXC1iZVwtYWJsZTsKK+mDvSA8IG1ldHJvcG9saXM7CivmlocgPCBsaXRlcmF0dXJlOwor6L2NIDwgd2Fnb25cLXJ1dHM7CivovKkgPCBnZW5lcmF0aW9uOwor55ypIDwgdG9cLWNvbmZ1c2U7CivnnKAgPCBjbG9zZVwtZXllczsKK+i8nSA8IGJyaWdodG5lc3M7CivlvJAgPCBudW1iZXJcLXR3bzsKK+iAhSA8IHRoYXRcLXdoaWNoOwor5LiaIDwgcHJvZmVzc2lvbjsKK+W6nCA8IHByZWZlY3R1cmU7CivmlL8gPCBnb3Zlcm5tZW50Owor5LqnIDwgZ2l2ZVwtYmlydGg7CivlnLogPCBvcGVuXC1zcGFjZTsKK+avlCA8IHRvXC1jb21wYXJlOwor55ayIDwgZmVlbFwtdGlyZWQ7CivnlLsgPCBhXC1wYWludGluZzsKK+acmyA8IHRvXC1sb29rXC1hdDsKK+izuiA8IG1ha2VcLW1vbmV5Owor5YWtIDwgbnVtYmVyXC1zaXg7CivlsaEgPCBmcmVxdWVudGx5Owor5bCkIDwgZXNwZWNpYWxseTsKK+WwiCA8IG1vbm9wb2xpemU7Civln7ogPCBmb3VuZGF0aW9uOwor5Y+MIDwgc2V0XC1vZlwtdHdvOwor5a2rIDwgZ3JhbmRjaGlsZDsKK+WsqiA8IGNvdXJ0XC1sYWR5Owor56a7IDwgcmFyZVwtYmVhc3Q7CivlqpIgPCBnb1wtYmV0d2VlbjsKK+iqjCA8IHdyaXRlXC1kb3duOwor6KqHIDwgZXhhZ2dlcmF0ZTsKK+WTjSA8IG1ha2VcLXNvdW5kOwor5am/IDwgc29uXC1pblwtbGF3Owor54itIDwgdG9cLWRpc3B1dGU7CivlmaggPCByZWNlcHRhY2xlOwor54efIDwgZW5jYW1wbWVudDsKK+WmmSA8IG15c3RlcmlvdXM7Civog6EgPCByZWNrbGVzc2x5Owor5aaTIDwgcHJvc3RpdHV0ZTsKK+ilpiA8IHNob3J0XC1jb2F0Owor5aOxIDwgbnVtYmVyXC1vbmU7Civpg60gPCBvdXRlclwtcGFydDsKK+iuqCA8IHRvXC1kaXNjdXNzOwor5ruFIDwgZXh0aW5ndWlzaDsKK+iZnCA8IHRvXC1jYXB0dXJlOwor56evIDwgYWNjdW11bGF0ZTsKK+iPnCA8IHZlZ2V0YWJsZXM7Civll6MgPCB0b1wtY29ubmVjdDsKK+WXnCA8IGJlXC1mb25kXC1vZjsKK+S7iyA8IGZvcmVydW5uZXI7CivntKIgPCBsYXJnZVwtcm9wZTsKK+S4gSA8IG1hbGVcLWFkdWx0Owor6YGNIDwgZXZlcnl3aGVyZTsKK+iSlCA8IHRyYW5zcGxhbnQ7Civmh4IgPCB1bmRlcnN0YW5kOwor6YeKIDwgaW50ZXJwcmV0ZTsKK+e6tSA8IGluZHVsZ2VcLWluOwor5q20IDwgdGFrZVwtcGxhY2U7Civku4EgPCBodW1hbmVuZXNzOwor5qqAIDwgc2FuZGFsd29vZDsKK+WJiiA8IHNjcmFwZVwtb2ZmOwor5YiRIDwgcHVuaXNobWVudDsKK+WygiA8IGhvd1w/XC13aGF0XD87CivpmoYgPCBwcm9zcGVyb3VzOwor5YiDIDwgZWRnZWRcLXRvb2w7CivmnpAgPCBzcGxpdFwtd29vZDsKK+iFuCA8IGludGVzdGluZXM7CivmpZMgPCBtYXBsZVwtdHJlZTsKK+mkhSA8IHJpY2VcLWNha2VzOwor5YKNIDwgYnlcLXNpZGVcLW9mOwor5qCTIDwgd29vZGVuXC1wZWc7Civlh68gPCB0cml1bXBoYW50Owor5oGtIDwgcmVzcGVjdGZ1bDsKK+eluCA8IG1pc2ZvcnR1bmU7CivnpoUgPCBtZWRpdGF0aW9uOwor5p+vIDwgYXhlXC1oYW5kbGU7CivmjZAgPCBjb250cmlidXRlOwor6LiqIDwgZm9vdHByaW50czsKK+WxgSA8IGJyZWFrXC13aW5kOwor6LCKIDwgZnJpZW5kc2hpcDsKK+WCqCA8IHNhdmVcLW1vbmV5Owor6ZuBIDwgd2lsZFwtZ29vc2U7CivmkYogPCBzcHJlYWRcLW91dDsKK+WQqCA8IG1ldHJpY1wtdG9uOwor5LmNIDwgZmlyc3RcLXRpbWU7CivpmYAgPCBzdGVlcFwtYmFuazsKK+e2vyA8IGNvdHRvblwtd2FkOwor57axIDwgaGVhdnlcLXJvcGU7CivmipEgPCBwcmVzc1wtZG93bjsKK+W9rCA8IGN1bHRpdmF0ZWQ7Civmkq4gPCBsaXR0bGVcLWJpdDsKK+eypSA8IHJpY2VcLWdydWVsOwor6JuuIDwgYmFyYmFyaWFuczsKK+euuCA8IGNob3BzdGlja3M7CivnrbUgPCBiYW1ib29cLW1hdDsKK+iJhyA8IHNtYWxsXC1ib2F0Owor5o2MIDwgYnJlYWtcLW9wZW47CivnrKAgPCBiYW1ib29cLWhhdDsKK+W6niA8IGRpc29yZGVybHk7Civnq50gPCB0b1wtY29tYmluZTsKK+aJiSA8IGRvb3JcLXBhbmVsOwor5Z2dIDwgZW1iYW5rbWVudDsKK+aGpyA8IGlycmVzb2x1dGU7CivnlKkgPCB0aHJvd1wtYXdheTsKK+mFjCA8IHNlcnZlXC13aW5lOwor56OQIDwgbGFyZ2VcLXJvY2s7CivovoUgPCBjaGVla1wtYm9uZTsKK+aNoSA8IHRvXC1waWNrXC11cDsKK+i5iCA8IHN0YW1wXC1mZWV0Owor5pmSIDwgZHJ5XC1pblwtc3VuOwor5q28IDwgYW5uaWhpbGF0ZTsKK+a2qSA8IGFzdHJpbmdlbnQ7CivpnI4gPCBsaWdodFwtcmFpbjsKK+e7uCA8IHNpbGtcLWNsb3RoOwor55yvIDwgYmVcLWJsaW5kZWQ7Civlr4UgPCB0b1wtcmVzcGVjdDsKK+ectiA8IGV5ZVwtc29ja2V0Owor56KfIDwgc21hbGxcLWRpc2g7CivolbQgPCB0b1wtY29sbGVjdDsKK+i/rSA8IHJlcGVhdGVkbHk7Civml60gPCByaXNpbmdcLXN1bjsKK+aCjSA8IGNvdXJhZ2VvdXM7CivmnqIgPCBkb29yXC1oaW5nZTsKK+i3iyA8IGdvXC1ieVwtZm9vdDsKK+WcqiA8IFwocGhvbmV0aWNcKTsKK+aQlCA8IHRvXC1zY3JhdGNoOwor5ZqOIDwgY3J5XC1sb3VkbHk7CivmsZsgPCBoaWdoXC13YXRlcjsKK+iEryA8IGRyaWVkXC1tZWF0Owor5ZeSIDwgdG9cLWRlc3BhaXI7Civlop8gPCBoaWdoXC1tb3VuZDsKK+mmiyA8IGdsdXR0b25vdXM7Civoua0gPCB0b1wtc2h1ZmZsZTsKK+a+iCA8IHRob3JvdWdobHk7CivnvK0gPCB3aW5kXC1yb3VuZDsKK+WWsyA8IHdoaXNwZXJpbmc7CivlvKcgPCB3b29kZW5cLWJvdzsKK+aDhiA8IGRpc3RyZXNzZWQ7CivmkrUgPCBkcml2ZVwtYXdheTsKK+i9tiA8IHJ1c2hcLWZvcnRoOwor56q/IDwgbWluZVwtc2hhZnQ7CivmqLUgPCB3b29kY3V0dGVyOwor54qAIDwgcmhpbm9jZXJvczsKK+e7miA8IHZhcmllZ2F0ZWQ7Civol5UgPCBsb3R1c1wtcm9vdDsKK+aRniA8IHRvXC1waWxlXC11cDsKK+a7pCA8IHN0cmFpblwtb3V0Owor57yIIDwgaW5kaXN0aW5jdDsKK+iCqiA8IGFuaW1hbFwtZmF0Owor55SEIDwgdG9cLWV4YW1pbmU7Civpk5sgPCBmcnlpbmdcLXBhbjsKK+WroSA8IGxlZ2FsXC13aWZlOwor56O3IDwgcGhvc3Bob3J1czsKK+e/oSA8IGtpbmdmaXNoZXI7CivpnK0gPCBjbG91ZHlcLXNreTsKK+iIqyA8IGZhbmN5XC1ib2F0Owor57qoIDwgd2hpdGVcLXNpbGs7CivmprcgPCBmb290YnJpZGdlOwor6JSXIDwgc3VnYXJcLWNhbmU7CivlvZcgPCBicm9vbXN0aWNrOwor5ZafIDwgaGVhdmVcLXNpZ2g7CivllpEgPCB0b1wtYmVcLWR1bWI7Civpsb8gPCBjdXR0bGVmaXNoOwor5YCcIDwgcmFpc2VcLWhpZ2g7Civmu4IgPCB0b3JyZW50aWFsOwor5b+7IDwgZGVsaWdodGZ1bDsKK+eHpyA8IGZsaW50c3RvbmU7CivnqJQgPCByaXBlXC1ncmFpbjsKK+miiSA8IGZseVwtdXB3YXJkOwor6Ii4IDwgbGFyZ2VcLWJvYXQ7CivnnJkgPCB0b1wtZ2F6ZVwtYXQ7CivnmIAgPCBhXC1oZW1hdG9tYTsKK+WkryA8IGhlYXZ5XC1sb2FkOwor6bKgIDwgZmlzaFwtYm9uZXM7CivojI8gPCB0YWxsXC1ncmFzczsKK+iMryA8IGNoaW5hXC1yb290Owor6bKnIDwgZ2lhbnRcLWZpc2g7CivpgKYgPCBtZWFuZGVyaW5nOwor6aqcIDwgd2lsZFwtaG9yc2U7CivmrLkgPCBmaWVyY2VcLWRvZzsKK+e8myA8IGRlY29yYXRpdmU7Civoi5UgPCBydXNoXC1wbGFudDsKK+mhuCA8IGxhcmdlXC1mYWNlOwor57ymIDwgcGxhaW5cLXNpbGs7CivluJkgPCBib29rXC1jb3ZlcjsKK+mzgyA8IGZpc2hcLWdpbGxzOwor6Ya0IDwgc3dlZXRcLXdpbmU7CivovoogPCB0dXJuXC1yb3VuZDsKK+WymCA8IHN0ZWVwXC1oaWxsOwor5YCsIDwgbm90aWNlYWJsZTsKK+myniA8IGRyaWVkXC1maXNoOwor57yBIDwgYmxhY2tcLXNpbGs7CivnrqcgPCByYXR0YW5cLWJveDsKK+WigSA8IHRvXC1wbGFzdGVyOwor5720IDwgYnJvd25cLWJlYXI7CivniLAgPCBsZWFkXC1vblwtdG87CivmnbIgPCBicmlnaHRcLXN1bjsKK+eZlCA8IGh5c3RlcmljYWw7CivojpwgPCBhdmVuYVwtbnVkYTsKK+WfmSA8IGluc3RydW1lbnQ7Civnjb4gPCB0aGVcLWJhZGdlcjsKK+mDqyA8IHBsYWNlXC1uYW1lOwor6JuPIDwgcmF6b3JcLWNsYW07CivluJEgPCBhXC10cmVhc3VyeTsKK+aPoCA8IHRvXC1wdWxsXC11cDsKK+i2kSA8IGNhbicndFwtbW92ZTsKK+mYjSA8IGdhdGVrZWVwZXI7CivmjoogPCB0b1wtZXh0cmFjdDsKK+mVnSA8IGR5c3Byb3NpdW07CivnoJcgPCBnaWFudFwtY2xhbTsKK+WrqyA8IHVnbHlcLXdvbWFuOwor6LeXIDwgdGhlXC1pbnN0ZXA7CivmtbwgPCB0b1wtcmVxdWVzdDsKK+WXjCA8IHRoZVwtdGhyb2F0Owor5rGGIDwgdG9cLXBhcmJvaWw7CivliK0gPCBjdXRcLXRocm9hdDsKK+mrgiA8IHRoZVwtcGVsdmlzOwor6ZK8IDwgbW9seWJkZW51bTsKK+aGnSA8IHRvXC1kaXNsaWtlOwor54KFIDwgYnJpbGxpYW5jZTsKK+masyA8IHRvXC1kZXN0cm95Owor6IybIDwgcmFudW5jdWx1czsKK+ezhyA8IGRyaWVkXC1yaWNlOwor6ZKGIDwgZ2Fkb2xpbml1bTsKK+a+jCA8IHRvXC1leGhhdXN0Owor5bqAIDwgdG9cLXByZXBhcmU7CivnirQgPCBhXC13aWxkXC1kb2c7Civln48gPCBhXC1ib3VuZGFyeTsKK+iwriA8IHRvXC1zbGFuZGVyOwor57iu55+tIDwgdG9cLWN1cnRhaWw7CivmlLnntYQgPCByZW9yZ2FuaXplOwor5rKS5ZWP6aGMIDwgbm9cLXByb2JsZW07CivnrKzkupTpoZ4gPCBjYXRlZ29yeVwtNTsKK+aTgeittyA8IHRvXC1lbmRvcnNlOwor6YCy6KGMIDwgdG9cLWFkdmFuY2U7CivlpZTms6IgPCBydXNoXC1hYm91dDsKK+W+jOavjSA8IHN0ZXBtb3RoZXI7CivmlaPnmbwgPCBkaXN0cmlidXRlOwor5aSx54GrIDwgY2F0Y2hcLWZpcmU7CivoqpXnlJ8gPCB0b1wtYmVcLWJvcm47CivlpJrniL4gPCBcKGJvYlwpXC1kb2xlOwor5be05p6v5a+n5Li7576pIDwgYmFrdW5pbmlzbTsKK+W9vOatpCA8IGVhY2hcLW90aGVyOwor6aCQ5YWIIDwgYmVmb3JlaGFuZDsKK+mXnOmWgCA8IGNsb3NlXC1kb3duOwor6YGV6IOMIDwgdG9cLXZpb2xhdGU7CivlhrDmn5Pmn5PmlpkgPCBhem9pY1wtZHllczsKK+e1seioiCA8IHN0YXRpc3RpY3M7Civlh73os7wgPCBtYWlsXC1vcmRlcjsKK+WjgeeriyA8IFwob2ZcLWNsaWZmczsKK+aYpeWtoyA8IHNwcmluZ3RpbWU7CivpoJLkvYggPCBwcm9tdWxnYXRlOwor5q+P5qyhIDwgZXZlcnlcLXRpbWU7Civnt6jnqIsgPCB0b1wtcHJvZ3JhbTsKK+WIhuipniA8IHBhcnRpY2lwbGU7CivlvozmnJ8gPCBsYXRlXC1zdGFnZTsKK+aViOeUqCA8IHVzZWZ1bG5lc3M7Civns6fpo58gPCBmb29kc3R1ZmZzOwor6I2S6YeOIDwgd2lsZGVybmVzczsKK+aSkuisiiA8IHRlbGxcLWFcLWxpZTsKK+eHg+eHkiA8IGNvbWJ1c3Rpb247CivlvITnm7QgPCBzdHJhaWdodGVuOwor6YG356e7IDwgdG9cLW1pZ3JhdGU7CivpnZ7lrpjmlrkgPCB1bm9mZmljaWFsOwor5aSn5rCjIDwgYXRtb3NwaGVyZTsKK+iqjeeCuiA8IHRvXC1iZWxpZXZlOwor6ZmN6JC9IDwgdG9cLWRlc2NlbmQ7CivliY3ogIUgPCB0aGVcLWZvcm1lcjsKK+aViOeOhyA8IGVmZmljaWVuY3k7Civpnbblv4MgPCBidWxsJydzXC1leWU7CivlnIvmsJHpu6ggPCBrdW9taW50YW5nOwor5YuD54S2IDwgYWdpdGF0ZWRseTsKK+ism+W4qyA8IGluc3RydWN0b3I7Civlj5bku6MgPCBzdWJzdGl0dXRlOwor5paw5pWZIDwgcHJvdGVzdGFudDsKK+WkmuasoSA8IG1hbnlcLXRpbWVzOwor5aWH5pW4IDwgb2RkXC1udW1iZXI7Civlv4XlsIcgPCBpbmV2aXRhYmx5Owor6Zmw57K+IDwgc2V4XC1mbHVpZHM7Civnmb3oibLpq5QgPCBsZXVjb3BsYXN0Owor5aaW5ayIIDwgZW5jaGFudGluZzsKK+S4jeiAkOeFqSA8IGltcGF0aWVuY2U7Civnmb7liIbnjocgPCBwZXJjZW50YWdlOwor57m85om/IDwgdG9cLWluaGVyaXQ7Civku6TniYznkrAgPCB0b2tlblwtcmluZzsKK+aTjee4sSA8IHRvXC1vcGVyYXRlOwor5YWo6Z2iIDwgYWxsXC1hcm91bmQ7Civlm5vlgIvlsI/mmYIgPCBmb3VyXC1ob3VyczsKK+WOmOWNhyA8IGNlbnRpbGl0ZXI7Civoqr/mlbQgPCBhZGp1c3RtZW50Owor6I2S6KysIDwgcmlkaWN1bG91czsKK+iHqueZveabuCA8IGNvbmZlc3Npb247CivlsZXopr3mnIMgPCBleGhpYml0aW9uOwor55m96aCtIDwgaG9hcnlcLWhlYWQ7CivlpKnmloflrbjlrrYgPCBhc3Ryb25vbWVyOwor5rG65LiNIDwgbm90XC1hdFwtYWxsOwor6Kqq5piOIDwgdG9cLWV4cGxhaW47CivnnLzoirHnuZrkuoIgPCBiZVwtZGF6emxlZDsKK+mtr+S9m+eIvuWuriA8IHRoZVwtbG91dnJlOwor5Ye66ImyIDwgcmVtYXJrYWJsZTsKK+S4jeWgquW/jeWPlyA8IHVuYmVhcmFibGU7Civpq5jpgJ/njocgPCBoaWdoXC1zcGVlZDsKK+WFjemZpCA8IHRvXC1wcmV2ZW50Owor5aal5Y2UIDwgY29tcHJvbWlzZTsKK+W3qOi8qiA8IGxhcmdlXC1zaGlwOwor54Wn54mHIDwgcGhvdG9ncmFwaDsKK+mZhOethiA8IHBvc3RzY3JpcHQ7Civopqroh6ogPCBwZXJzb25hbGx5Owor6Kqq5LiN5Ye66Kmx5L6GIDwgc3BlZWNobGVzczsKK+Wom+aoguS4reW/gyA8IHJlY3JlYXRpb247CivmlLnmraMgPCB0b1wtY29ycmVjdDsKK+Wkp+WfjuW4giA8IG1ham9yXC1jaXR5Owor6Ieq55Sx6LK/5piTIDwgZnJlZVwtdHJhZGU7CivljYrlnJMgPCBzZW1pY2lyY2xlOwor54it5aWqIDwgZmlnaHRcLW92ZXI7Civnn63mnJ8gPCBzaG9ydFwtdGVybTsKK+avj+W5tCA8IGV2ZXJ5XC15ZWFyOwor5Zas5rK75pWmIDwgZ2VvcmdldG93bjsKK+S4ieWIhuS5i+S6jCA8IHR3b1wtdGhpcmRzOwor5YKz6YGT6ICFIDwgbWlzc2lvbmFyeTsKK+aVteaJiyA8IGFudGFnb25pc3Q7CivljbDlg48gPCBpbXByZXNzaW9uOwor5LiN5Y+v6IO9IDwgaW1wb3NzaWJsZTsKK+eyvumAmiA8IHByb2ZpY2llbnQ7CivlvojlpKcgPCB0cmVtZW5kb3VzOwor55m96YWSIDwgc3Bpcml0XC11c3U7CivpjITpn7PluLYgPCBhdWRpb1wtdGFwZTsKK+iNieiOkyA8IHN0cmF3YmVycnk7CivpjKvlronlsbEgPCBtb3VudFwtemlvbjsKK+WhlOWQieWFi+aWr+WdpiA8IHRhamlraXN0YW47CivloLHnq6AgPCBuZXdzcGFwZXJzOwor5aSa5bm0IDwgbWFueVwteWVhcnM7Civoqp7lvZkgPCB2b2NhYnVsYXJ5Owor5pep5YWIIDwgcHJldmlvdXNseTsKK+e4vee1seS7u+acnyA8IHByZXNpZGVuY3k7CivniYzlg7kgPCBsaXN0XC1wcmljZTsKK+W3q+ihkyA8IHdpdGNoY3JhZnQ7CivpgY7muKEgPCB0cmFuc2l0aW9uOwor5o6i6ZqqIDwgdG9cLWV4cGxvcmU7CivlpKflrbggPCB1bml2ZXJzaXR5Owor54Sh55CGIDwgaXJyYXRpb25hbDsKK+WNiuWDuSA8IGhhbGZcLXByaWNlOwor5Y2A5YilIDwgZGlmZmVyZW5jZTsKK+mXnOiBryA8IGJlXC1yZWxhdGVkOwor56Gs56OB55ukIDwgaGFyZFwtZHJpdmU7CivlnLDpnIcgPCBlYXJ0aHF1YWtlOwor6KeA55y+IDwgc3BlY3RhdG9yczsKK+aOkumaiiA8IHRvXC1saW5lXC11cDsKK+aUquaTviA8IHRvXC1kaXN0dXJiOwor5LiN5Y+v6YC+6LaKIDwgaW1wYXNzYWJsZTsKK+aVuOWtuCA8IG1hdGhlbWF0aWM7CivnhrHlv4MgPCBlbnRodXNpYXNtOwor5Yqg5Yip56aP5bC85LqeIDwgY2FsaWZvcm5pYTsKK+att+WPsuS4iiA8IGhpc3RvcmljYWw7CivoqJjluLPlk6EgPCBib29ra2VlcGVyOwor6Zu75a2QIDwgZWxlY3Ryb25pYzsKK+eZveipsSA8IHZlcm5hY3VsYXI7Civngrjns5UgPCBmcmllZFwtY2FrZTsKK+aVo+WwhCA8IHNjYXR0ZXJpbmc7Civok4vkuJYgPCB1bnJpdmVsbGVkOwor57eo5o6SIDwgdG9cLWFycmFuZ2U7CivmjZXprZogPCBjYXRjaFwtZmlzaDsKK+WFgeirviA8IHRvXC1wcm9taXNlOwor6Kq/5ZKMIDwgaGFybW9uaW91czsKK+W+jOS+hiA8IGFmdGVyd2FyZHM7Civkvb/lpLHmnJsgPCBkaXNhcHBvaW50Owor5aSn5ZacIDwgZXh1bHRhdGlvbjsKK+ioreaWvSA8IGZhY2lsaXRpZXM7Civmlrnkvr8gPCBjb252ZW5pZW50Owor5q2k5b6MIDwgYWZ0ZXJcLXRoaXM7CivluqfmqJkgPCBjb29yZGluYXRlOwor57aT5q23IDwgZXhwZXJpZW5jZTsKK+aoguingCA8IG9wdGltaXN0aWM7CivlpKrlj6QgPCBpbW1lbW9yaWFsOwor6Zui5amaIDwgdG9cLWRpdm9yY2U7CivmlZnloILlopPlnLAgPCBjaHVyY2h5YXJkOwor6b6iIDwgaW5cLWhhcm1vbnk7Civnh4jloZQgPCBsaWdodGhvdXNlOwor5Ye654mIIDwgdG9cLXB1Ymxpc2g7CivlhbXoiLkgPCBtYW5cLW9mXC13YXI7CivooYzmlL/plbflrpggPCBtYWdpc3RyYXRlOwor6bynIDwgdGhlXC1tYXJtb3Q7CivpvIQgPCB0aGVcLXNwaWRlcjsKK+m7uSA8IGVtYnJvaWRlcnk7Civpu7IgPCBncmV5XC1ibGFjazsKK+m7pCA8IGJsdWVcLWJsYWNrOwor5YK36aKoIDwgY2F0Y2hcLWNvbGQ7CivmlL7lsIQgPCB0b1wtcmFkaWF0ZTsKK+avlOS+iyA8IHByb3BvcnRpb247CivpuLogPCBob3JuZWRcLW93bDsKK+maqOW+jCA8IHNvb25cLWFmdGVyOwor5YmN5pmvIDwgZm9yZWdyb3VuZDsKK+mBt+W7tiA8IGxvbmdcLWRlbGF5Owor6KOc6KqeIDwgY29tcGxlbWVudDsKK+m1kiA8IG15bmFoXC1iaXJkOwor6bS3IDwgd29vZHBlY2tlcjsKK+WKoOWvhiA8IHRvXC1lbmNyeXB0Owor5pW05ZCIIDwgdG9cLWNvbmZvcm07Civmib/ljIXkurogPCBjb250cmFjdG9yOwor6YGV5oqXIDwgdG9cLWRpc29iZXk7Civnm6PnnaMgPCB0b1wtY29udHJvbDsKK+mzsiA8IHR1cnRsZWRvdmU7CivmloflhbcgPCBzdGF0aW9uZXJ5Owor5q+P5Lq6IDwgcGVyXC1wZXJzb247Civnianos6rkuIogPCBtYXRlcmlhbGx5Owor6bKwIDwgc21hbGxcLWZpc2g7CivpmLLmsLQgPCB3YXRlcnByb29mOwor6bGHIDwgYW5nbGVyZmlzaDsKK+iytOaXj+irluiAhSA8IGFyaXN0b2NyYXQ7CivljYrlhazplosgPCBzZW1pXC1vdmVydDsKK+S9v+WFjemZpCA8IGdldFwtcmlkXC1vZjsKK+abtOiho+WupCA8IGNoYW5nZXJvb207CivproEgPCB0aGVcLWJvbml0bzsKK+mAgOatpSA8IGRlZ2VuZXJhdGU7CivpganluqYgPCBtb2RlcmF0ZWx5Owor6a2bIDwgdGhlXC1tdWxsZXQ7CivpgaDlvoEgPCBleHBlZGl0aW9uOwor6ayoIDwgYm9pc3Rlcm91czsKK+msnCA8IHRvXC1nb1wtYmFsZDsKK+eZveiHiSA8IHdoaXRlXC1mYWNlOwor57i95YWxIDwgYWx0b2dldGhlcjsKK+mroyA8IHNpbWlsYXJcLXRvOwor6auBIDwgdGhpZ2hcLWJvbmU7Civop6PmnpAgPCB0b1wtYW5hbHl6ZTsKK+molyA8IHRvXC1zd2luZGxlOwor6aiLIDwgdGFsbFwtaG9yc2U7CivpqIkgPCBmaW5lXC1ob3JzZTsKK+mnsCA8IGdyZXlcLWhvcnNlOwor6aa5IDwgcG9zdFwtaG9yc2U7CivoqablnJYgPCB0b1wtYXR0ZW1wdDsKK+iJpui8iSA8IHNoaXBcLWJhc2VkOwor55+l5ZCNIDwgd2VsbFwta25vd247CivlpJrkuosgPCBtZWRkbGVzb21lOwor5Yaw55CDIDwgaWNlXC1ob2NrZXk7Civop6PmlL4gPCBsaWJlcmF0aW9uOwor6Z6hIDwgbGVnXC13YXJtZXI7CivpnZ0gPCB0aGVcLWhlYXZlbjsKK+WBvemggiA8IGZhbHNlXC1yb29mOwor6auY6ZqOIDwgaGlnaFwtbGV2ZWw7CivmjY/pgKAgPCB0b1wtbWFrZVwtdXA7Civpmq4gPCB0aVwtcmlzZVwtdXA7CivpmbsgPCBzbWFsbFwtaGlsbDsKK+aWsOiBnuiomOiAhSA8IGpvdXJuYWxpc3Q7Civmk4HmirEgPCB0b1wtZW1icmFjZTsKK+mbtuS4iyA8IGJlbG93XC16ZXJvOwor6ZefIDwgcGVhY2VmdWxseTsKK+meremXouWFpeijoSA8IHBlbmV0cmF0ZWQ7CivotoXlqpLpq5QgPCBoeXBlcm1lZGlhOwor6ZWaIDwgc21hbGxcLWNvaW47CivplKwgPCBsb25nXC1zcGVhcjsKK+S4jeaYjueiuiA8IGluZGVmaW5pdGU7CivpkrcgPCBwcm9tZXRoaXVtOwor5pS+5Ye6IDwgdG9cLWxldFwtb2ZmOwor6ZC2IDwgbWV0YWxcLXJpbmc7CivpkJogPCBzb2Z0XC1zdGVlbDsKK+WFrOefsyA8IGhlY3RvbGl0ZXI7CivpkJIgPCBsYXdyZW5jaXVtOwor6ZCAIDwgYVwtY3VwYm9hcmQ7CivkuI3mma/msKMgPCBkZXByZXNzaW9uOwor5LuW5YCR6Ieq5bexIDwgdGhlbXNlbHZlczsKK+izh+acrOWutiA8IGNhcGl0YWxpc3Q7CivpjqogPCB0b1wtZW5ncmF2ZTsKK+mOmyA8IGxhcmdlXC1iZWxsOwor5aCx5pW4IDwgbnVtYmVyXC1vZmY7CivpjYAgPCB0ZWNobmV0aXVtOwor5pS25YWlIDwgdG9cLXRha2VcLWluOwor6Kme5YW4IDwgZGljdGlvbmFyeTsKK+ioreWcqCA8IGxvY2F0ZWRcLWF0Owor6ZmQ5bqmIDwgbGltaXRhdGlvbjsKK+ijseeziiA8IHdhbGxcLXBhcGVyOwor6YiKIDwgY2Fkb2xpbml1bTsKK+mGoSA8IHdpbmVcLXByZXNzOwor6YadIDwgd2hpdGVcLXdpbmU7CivmqqLmn6UgPCBpbnNwZWN0aW9uOwor6YWFIDwgcmFpc2VcLWZlZXQ7CivpmL/loZ7mi5znloYgPCBhemVyYmFpamFuOwor54CG6IG3IDwgd3Jvbmdkb2luZzsKK+W6h+W7lSA8IFwob2ZcLWFcLXRyZWU7CivkuozmiYvosqggPCBzZWNvbmRoYW5kOwor6Zmw5aSpIDwgY2xvdWR5XC1kYXk7CivntYLmlrwgPCBldmVudHVhbGx5Owor6KiC5amaIDwgZW5nYWdlbWVudDsKK+mZuOWfuiA8IGxhbmRcLWJhc2VkOwor6YKP6Lyv54K45b2IIDwgbG9naWNcLWJvbWI7Civlu5rlj7ggPCBjb29rXCxcLWNoZWY7CivlgrPoqqogPCBpdFwtaXNcLXNhaWQ7CivliLblrpogPCB0b1wtZHJhd1wtdXA7CivmmJPmjqXov5EgPCBhY2Nlc3NpYmxlOwor6YCsIDwgdG9cLXNjYXR0ZXI7CivpgJ/lsIQgPCByYXBpZFwtZmlyZTsKK+mBuuWCsyA8IGhlcmVkaXRhcnk7CivoiInovqYgPCB0b1wtY29uZHVjdDsKK+WIqeWusyA8IGZvcm1pZGFibGU7CivouqkgPCB0YWtlXC1xdWljazsKK+WFpeeNhCA8IGdvXC10b1wtamFpbDsKK+exs+eyiSA8IHJpY2VcLWZsb3VyOwor5ZyW6Kej6Kqq5piOIDwgaWxsdXN0cmF0ZTsKK+S4jeWxiOS4jeaSkyA8IHVueWllbGRpbmc7CivouKcgPCB1bmVhc2luZXNzOwor6LicIDwgdG9cLXN0dW1ibGU7CivouJYgPCB0cmFtcGxlXC1vbjsKK+i+suadkSA8IHJ1cmFsXC1hcmVhOwor5oOz5YOP5YqbIDwgY29uY2VwdGlvbjsKK+i3kCA8IHRvXC10cmFtcGxlOwor5Ymv5YiKIDwgc3VwcGxlbWVudDsKK+acieaxuuW/gyA8IGRldGVybWluZWQ7CivmqYTmrJbmqLkgPCBvbGl2ZVwtdHJlZTsKK+aTjeWgtCA8IHBsYXlncm91bmQ7Civln7rmlrwgPCBiZWNhdXNlXC1vZjsKK+ihjeiuiiA8IHRvXC1kZXZlbG9wOwor5YWo54S2IDwgY29tcGxldGVseTsKK+Wkp+iFpuatu+S6oSA8IGJyYWluXC1kZWFkOwor5ZyY6IGaIDwgdG9cLXJldW5pdGU7CivosYAgPCB0b1wtcXVhcnJlbDsKK+eIreirlum7niA8IGNvbnRlbnRpb247Civnmb3ni5AgPCBhcmN0aWNcLWZveDsKK+aTgeWhniA8IGNvbmdlc3Rpb247CivoqI7ljq0gPCBkaXNndXN0aW5nOwor6KyqIDwgdG9cLWNvbnN1bHQ7Civnmb3nhr4gPCB3aGl0ZVwtaGVhdDsKK+ikh+mbnOaApyA8IGNvbXBsZXhpdHk7Civnmb3nhoogPCBwb2xhclwtYmVhcjsKK+eZveeFpCA8IGFudGhyYWNpdGU7CivlgJrpnaAgPCB0b1wtbGVhblwtb247CivlubzlpbMgPCB5b3VuZ1wtZ2lybDsKK+ingOWvnyA8IHRvXC1vYnNlcnZlOwor5L2/55So6ICF5Lit5LuLIDwgdXNlclwtYWdlbnQ7CivlhbXms5UgPCBhcnRcLW9mXC13YXI7CivnlbbpgbggPCBiZVwtZWxlY3RlZDsKK+imuCA8IHN0ZWFsXC1sb29rOwor55uj5o6nIDwgdG9cLW1vbml0b3I7CivntZDlsYAgPCBjb25jbHVzaW9uOwor6KOqIDwgdGhlXC1zbGVldmU7CivmrKDkvbMgPCBzdWJvcHRpbWFsOwor6YCx5YiwIDwgdGhvdWdodGZ1bDsKK+imj+W+iyA8IGRpc2NpcGxpbmU7Civon6sgPCBzaWx2ZXJmaXNoOwor6J+jIDwgbG91c2VcLWVnZ3M7CivnrqHovYQgPCBhZG1pbmlzdGVyOwor6J+BIDwgYVwtbW9zcXVpdG87Civog6HmgJ3kuoLmg7MgPCBpbWFnaW5pbmdzOwor5aW254mb5aC0IDwgZGFpcnlcLWZhcm07CivmqLnmqIEgPCB0cmVlXC1zdHVtcDsKK+ilr+aJmCA8IHRvXC1zZXRcLW9mZjsKK+ibnCA8IHdvb2RcLWxvdXNlOwor5pON5YW4IDwgZHJpbGxcLWJvb2s7Civot5HppqwgPCBob3JzZVwtcmFjZTsKK+iWpyA8IGRyaWVkXC1mb29kOwor5qqi5a+fIDwgdG9cLWluc3BlY3Q7CivolaEgPCBoZW1wXC1zZWVkczsKK+W3qOaYnyA8IGdpYW50XC1zdGFyOwor5a2X56+A5pW4IDwgYnl0ZVwtY291bnQ7Civok7cgPCBtb3RoZXJ3b3J0Owor6ZmE5YqgIDwgYWRkaXRpb25hbDsKK+iSvSA8IGFudGhyYWNlbmU7CivokqYgPCB0b1wtbWVhc3VyZTsKK+iSliA8IHBsYW50XC1uYW1lOwor5LiA5YiH5LqL54mpIDwgZXZlcnl0aGluZzsKK+iRryA8IG9ycmlzXC1yb290Owor5q2M576F6KW/5pu4IDwgY29sb3NzaWFuczsKK+ebuOWwjSA8IHJlbGF0aXZlbHk7CivnhKHlg7kgPCBpbnZhbHVhYmxlOwor5pCP5paXIDwgdG9cLXdyZXN0bGU7CivojbUgPCBwb2xlbW9uaXVtOwor5Ye655Sf5ZywIDwgYmlydGhwbGFjZTsKK+S4jeeUseiHquS4uyA8IGNhbicndFwtaGVscDsKK+aLnOiolyA8IHJlcXVlc3RcLXNiOwor5o6S55CDIDwgdm9sbGV5YmFsbDsKK+W6l+S4uyA8IHNob3BcLW93bmVyOwor5LiN5LiL5LqOIDwgYXNcLW1hbnlcLWFzOwor55O26aC4IDwgYm90dGxlbmVjazsKK+W5q+WKqSA8IGFzc2lzdGFuY2U7CivohKogPCBlcnlzaXBlbGFzOwor6ISXIDwgY29pbmNpZGluZzsKK+W5q+WHtiA8IGFjY29tcGxpY2U7Civlhazmkq4gPCBtaWxsaWxpdGVyOwor6IKmIDwgbGFyZ2VcLWhlYWQ7CivnsYPnkIMgPCBiYXNrZXRiYWxsOwor5oqx6LKgIDwgYXNwaXJhdGlvbjsKK+abvOW+ueaWr+eJuSA8IG1hbmNoZXN0ZXI7CivkvL3ppqzlsITnt5ogPCBnYW1tYVwtcmF5czsKK+Wkp+WqkumrlCA8IG1hY3JvbWVkaWE7CivnrpfooZMgPCBhcml0aG1ldGljOwor5o6o5risIDwgY29uamVjdHVyZTsKK+imgeWhniA8IHN0cm9uZ2hvbGQ7Civnmb3ml5cgPCB3aGl0ZVwtZmxhZzsKK+a7v+i2syA8IHRvXC1zYXRpc2Z5Owor6amF6YCQIDwgYmFuaXNobWVudDsKK+alteeCuum+kOWkpyA8IG1vbnVtZW50YWw7CivnuZAgPCBmaW5lXC1jbG90aDsKK+WCmeW/mOmMhCA8IG1lbW9yYW5kdW07CivnuIcgPCBkZWNvcmF0aW9uOwor6KGo56S6IDwgdG9cLWV4cHJlc3M7CivmjKjlgIvlhZIgPCBvbmVcLWJ5XC1vbmU7CivovrLlnJIgPCBwbGFudGF0aW9uOwor5YWE5byf5pyDIDwgZnJhdGVybml0eTsKK+eVmeiBsuapnyA8IGdyYW1vcGhvbmU7CivntbogPCBmaW5lXC1saW5lbjsKK+acieWIqeWPr+WcliA8IHByb2ZpdGFibGU7CivntZsgPCBzaWxrXC1icmFpZDsKK+e1liA8IGZpbmVcLXNpbGtzOwor57WTIDwgb2JzdHJ1Y3RlZDsKK+aKleizhyA8IGludmVzdG1lbnQ7CivnsrsgPCBwcm92aXNpb25zOwor54Sh5omA5LiN6IO9IDwgb21uaXBvdGVudDsKK+eci+WIsCA8IHNlZVwtXCh0aGF0XCk7Civmj5DmmIcgPCB0b1wtcHJvbW90ZTsKK+WTiOiWqeWFi+aWr+WdpiA8IGthemFraHN0YW47CivnsKUgPCBsYXJnZVwtcGlwZTsKK+WIhumbouS4u+e+qSA8IHNlcGFyYXRpc207CivlhYzmj5sgPCB0b1wtY29udmVydDsKK+S4lueVjOmKgOihjCA8IHdvcmxkXC1iYW5rOwor6buR6I6T5a2QIDwgYmxhY2tiZXJyeTsKK+eviyA8IHJhdHRvblwtYm94Owor566gIDwgaG9yc2VcLXdoaXA7CivnrpogPCBicmllZlwtbm90ZTsKK+WFrOW8lSA8IGhlY3RvbWV0ZXI7CivnqrAgPCBicmlja1wta2lsbjsKK+WwiOmWgCA8IHNwZWNpYWxpc3Q7Civnqa0gPCB3aWxkXC1ncmFpbjsKK+eci+S+hiA8IGFwcGFyZW50bHk7Civoh4noibIgPCBjb21wbGV4aW9uOwor6I2J5Y+iIDwgdW5kZXJicnVzaDsKK+WFvOWuuSA8IGNvbXBhdGlibGU7CivlnKjkuIvpnaIgPCB1bmRlcm5lYXRoOwor56WFIDwgY2FsYW1pdGllczsKK+S4jeiuiuWMliA8IGludmFyaWFibHk7Civou43muK8gPCBuYXZhbFwtcG9ydDsKK+aMieeriyA8IG9yZGluYXRpb247CivnlJ/oqIggPCBsaXZlbGlob29kOwor56ORIDwgc3RvbmVcLW1pbGw7Civmjozmq4MgPCBzaG9wa2VlcGVyOwor6KGo54++IDwgZXhwcmVzc2lvbjsKK+WFqeWyuCA8IGJpbGF0ZXJpYWw7CivnoYMgPCBhXC1yZWRcLW1vbGU7CivlhbHlrZggPCB0b1wtY29leGlzdDsKK+ednyA8IGNsZWFyXC1leWVkOwor5Zua54qvIDwgYVwtcHJpc29uZXI7CivlgYnnuL4gPCBncmVhdFwtYWN0czsKK+ihjeeUnyA8IGRlcnZpYXRpdmU7CivlhrDliIAgPCBpY2VcLXNrYXRlczsKK+aOpeaUtiA8IHRvXC1yZWNlaXZlOwor5oqA6KGTIDwgdGVjaG5vbG9neTsKK+eWlSA8IGhlYWRcLXNvcmVzOwor55WTIDwgcmljZVwtZmllbGQ7CivnlYEgPCB0b1wtZ2l2ZVwtdG87Civlrr/poYwgPCBhc3NpZ25tZW50Owor6ZmM55Sf5Lq6IDwgYVwtc3RyYW5nZXI7CivnjpQgPCBncmVlblwtamFkZTsKK+mtmuaOkiA8IGZpc2hcLXN0ZWFrOwor54Sh5omA5LiN55+lIDwgb21uaXNjaWVudDsKK+aMh+eUsiA8IGZpbmdlcm5haWw7CivplovmnIPnpYjnprEgPCBpbnZvY2F0aW9uOwor5a246b2hIDwgc2Nob29sXC1hZ2U7CivnipsgPCBhXC1ibGFja1wtb3g7CivkuI3pgannlbYgPCBpbmFkZXF1YXRlOwor5o2o5qOEIDwgdG9cLWdpdmVcLXVwOwor6Zu76KaW6Ie6IDwgdHZcLXN0YXRpb247CivniY8gPCBwcml2eVwtaG9sZTsKK+eIqyA8IHJhZGljYWxcLTg3Owor5L2/6YaJIDwgaW50b3hpY2F0ZTsKK+aLmOemgSA8IGNvbnN0cmFpbnQ7CivnhoUgPCBzbW9vdGhcLW91dDsKK+Wci+acgyA8IHBhcmxpYW1lbnQ7CivpoJjlsI7og73lipsgPCBsZWFkZXJzaGlwOwor6LaF6LaKIDwgdG9cLXN1cnBhc3M7CivngbogPCBjYW5kbGVcLWVuZDsKK+eBkiA8IHRvXC1zcGF0dGVyOwor5o6o5bujIDwgcG9wdWxhcml6ZTsKK+S4u+WKm+iJpiA8IGJhdHRsZXNoaXA7Civmv5kgPCB0b1wtcmV2b2x2ZTsKK+a/hiA8IHJpdmVyXC1iYW5rOwor5L2j6YeRIDwgY29tbWlzc2lvbjsKK+eZveWWiSA8IGRpcGh0aGVyaWE7CivmjojmhI8gPCB0b1wtaW5zcGlyZTsKK+WFrOWIhiA8IGNlbnRpbWV0ZXI7CivnrYbogIUgPCB0aGVcLWF1dGhvcjsKK+azhiA8IGxpY2VudGlvdXM7Civkv53ogrIgPCBjaGlsZFwtY2FyZTsKK+eZveWNgCA8IHdoaXRlXC1hcmVhOwor5o+55YK1IDwgYmVcLWluXC1kZWJ0Owor5ryr55WrIDwgY2FyaWNhdHVyZTsKK+ihjOS4jemAmiA8IHdvbicndFwtd29yazsKK+WBnOeBqyA8IGNlYXNlXC1maXJlOwor56u254it6ICFIDwgY29tcGV0aXRvcjsKK+iJr+W/gyA8IGNvbnNjaWVuY2U7Civmq74gPCB0aGVcLXBvbWVsbzsKK+WWruiqvyA8IG1vbm90b25vdXM7CivmqrwgPCByaWRnZVwtcG9sZTsKK+ihqOaYjiA8IG1ha2VcLWtub3duOwor5pyJ57O757WxIDwgc3lzdGVtYXRpYzsKK+aykuS6uuS9jyA8IHVub2NjdXBpZWQ7CivmprwgPCB3aW5lXC1nbGFzczsKK+ampiA8IHRyZWVcLXRydW5rOwor5YuV54mp5a24IDwgem9vbG9naWNhbDsKK+aktSA8IHBvbXBlbG1vdXM7CivmpLMgPCB0aGVcLXBpdm90czsKK+aooeS7vyA8IHRvXC1pbWl0YXRlOwor5oSP6KaL5LiN5ZCIIDwgZGlzc2Vuc2lvbjsKK+ebp+ajruWgoSA8IGx1eGVtYm91cmc7CivnmbzkvYggPCB0b1wtcmVsZWFzZTsKK+esrOS4g+WNgSA8IHNldmVudGlldGg7CivmoJsgPCB0aGVcLWxpY2hlZTsKK+agmCA8IGZydWl0XC10cmVlOwor5qKd57SEIDwgdHJlYXR5cGFjdDsKK+WwjuiIqiA8IG5hdmlnYXRpb247CivmjpLlpJYgPCB4ZW5vcGhvYmljOwor5bCO6Ie0IDwgdG9cLWxlYWRcLXRvOwor5bGV56S6IDwgdG9cLW9wZW5cLXVwOwor5Yaw5Yed5ZmoIDwgY3J5b3Bob3J1czsKK+Wwi+iIiyA8IHRvXC1wcm92b2tlOwor5p2iIDwgd29vZHdvcmtlcjsKK+WFiOS+iyA8IGFudGVjZWRlbnQ7Civos5PppKggPCBndWVzdGhvdXNlOwor5qiT5LiLIDwgZG93bnN0YWlyczsKK+aWoiA8IHRvXC1wbHVuZGVyOwor5omT57WQIDwgdGllXC1hXC1rbm90Owor5a2f5Yqg5ouJ5ZyLIDwgYmFuZ2xhZGVzaDsKK+iHhua4rCA8IGFzc3VtcHRpb247Civlv4PnkIblrbggPCBwc3ljaG9sb2d5Owor5pOqIDwgdG9cLXR1Y2tcLWluOwor5pKxIDwgdG9cLXNob3J0ZW47CivmsKPllpjllpggPCBicmVhdGhsZXNzOwor5ouU5rKzIDwgdHVnXC1vZlwtd2FyOwor56ys5LiA5L6LIDwgZmlyc3RcLWNhc2U7CivnlJ/nlKIgPCB0b1wtcHJvZHVjZTsKK+ijnOWEnyA8IGNvbXBlbnNhdGU7CivmjrEgPCBwaWNrcG9ja2V0Owor5o6OIDwgZHJhZ1wtYXNpZGU7Civkurrpq5QgPCBodW1hblwtYm9keTsKK+iDnuihoyA8IGFmdGVyYmlydGg7CivmjJbmjpggPCBleGNhdmF0aW9uOwor5Zub5bm0IDwgZm91clwteWVhcnM7Civnmb7liIbkuYvkuZ3ljYEgPCA5MFwtcGVyY2VudDsKK+aJoSA8IGRyYWdcLWFsb25nOwor6aSQ6aSoIDwgcmVzdGF1cmFudDsKK+iBlumdiCA8IGhvbHlcLWdob3N0Owor5oa4IDwgdG9cLWZsYXR0ZXI7CivmjIfmjqcgPCBhY2N1c2F0aW9uOwor5oaNIDwgYmVcLWhhdWdodHk7CivmhoAgPCB0b1wtcmVseVwtb247CivlvJXkurrms6jmhI8gPCBhdHRyYWN0aXZlOwor5omL56i/IDwgbWFudXNjcmlwdDsKK+aKueayuSA8IHRvXC1hbm5vaW50Owor5oSTIDwgcHJvZmxpZ2F0ZTsKK+ihqOWwuiA8IHJlYXJcLXNpZ2h0Owor5oOPIDwgYXZhcmljaW91czsKK+aRqeWkqeaRnyA8IHNreXNjcmFwZXI7CivnlaLmpa0gPCBncmFkdWF0aW9uOwor5oGbIDwgZGlzb3JkZXJlZDsKK+WbuuWftyA8IHBlcnNpc3RlbnQ7CivmgLIgPCBiZVwtYW54aW91czsKK+W9vyA8IHJlc2VtYmxpbmc7Civmn6XoqaIgPCB0b1wtaW5xdWlyZTsKK+W8hyA8IGNvdmVyXC1vdmVyOwor5buAIDwgdG9cLWNvbmNlYWw7Civlv5jmganosqDnvqkgPCB1bmdyYXRlZnVsOwor55aR5oWuIDwgaGVzaXRhdGlvbjsKK+WWieiIjCA8IG1vdXRocGllY2U7Civoga/pgJogPCBjb25uZWN0aW9uOwor5b6X5LiN5YiwIDwgY2Fubm90XC1nZXQ7Civpp5DntK4gPCB0b1wtc3RhdGlvbjsKK+ewveWHuiA8IHRvXC1sb2dcLW9mZjsKK+WxhCA8IHRoZVwtdmFnaW5hOwor6YeN6KaB5oCnIDwgaW1wb3J0YW5jZTsKK+mkhemQuiA8IGJha2luZ1wtcGFuOwor5a68IDwgdHlyYW5uaWNhbDsKK+aKgOihk+WToSA8IHRlY2huaWNpYW47CivpjpfnrqEgPCBndW5cLWJhcnJlbDsKK+WqnyA8IGx1c3RcLWFmdGVyOwor6ZC15p2/IDwgaXJvblwtcGFuZWw7Civpj4jnkrAgPCBjaGFpblwtbGluazsKK+ebuOWQjOWQjeWtlyA8IGxpa2VcLW5hbWVkOwor56ut55uhIDwgZXhoYXVzdGlvbjsKK+i7jeS6uiA8IHNlcnZpY2VtYW47Civkvb/kurrkv6HmnI0gPCBjb252aW5jaW5nOwor6ICB6aCtIDwgb2xkXC1mZWxsb3c7CivlkajmgankvoYgPCB6aG91XC1lbmxhaTsKK+ePvuixoSA8IGFwcGVhcmFuY2U7Civpjq7nl5sgPCBhbmFsZ2VzaWFjOwor5aCDIDwgY29tcGxpYW5jZTsKK+acieiIiOi2oyA8IGludGVyZXN0ZWQ7Civoh6rlsIogPCBzZWxmXC1wcmlkZTsKK+Wumue+qSA8IGRlZmluaXRpb247CivlnKYgPCB3YXRlclwtZ2F0ZTsKK+WbjCA8IGxvcXVhY2lvdXM7CivlmrIgPCByZWFkXC1hbG91ZDsKK+S4jee2k+aEjyA8IGNhcmVsZXNzbHk7Civnq7bniK0gPCB0b1wtY29tcGV0ZTsKK+aJk+Wtl+apnyA8IHR5cGV3cml0ZXI7CivllL0gPCB0b1wtdHdpdHRlcjsKK+WvpuePviA8IHRvXC1hY2hpZXZlOwor5YK35LqhIDwgY2FzdWFsdGllczsKK+WRtCA8IGJyZWF0aGVcLW9uOwor5YCN5aKe5ZmoIDwgbXVsdGlwbGllcjsKK+alreS9mSA8IHNwYXJlXC10aW1lOwor6YeR5bGs57eaIDwgbWV0YWxcLXdpcmU7CivooYzliJcgPCBwcm9jZXNzaW9uOwor5Y2dIDwgaGFpclwtc3R5bGU7Civnl4XlgYcgPCBzaWNrXC1sZWF2ZTsKK+acn+mZkCA8IHRpbWVcLWxpbWl0Owor5YqPIDwgdG9cLWJ1dGNoZXI7Civpm7vlrZDnqbrplpMgPCBjeWJlcnNwYWNlOwor5YaYIDwgdG9cLW1vdmVcLW9uOwor6K2Y5Yil6JmfIDwgaWRlbnRpZmllcjsKK+aKiuaIsiA8IGFjcm9iYXRpY3M7CivnlJ/mnInmrIogPCBiaXJ0aHJpZ2h0Owor5YGtIDwgdHJhbnNncmVzczsKK+WBnSA8IG5vdFwtZmFjaW5nOwor5raI6LK7IDwgdG9cLWNvbnN1bWU7CivmjIHljaHkurogPCBjYXJkaG9sZGVyOwor6KGM5Lq6IDwgcGVkZXN0cmlhbjsKK+WAgCA8IGJld2lsZGVyZWQ7Civmr5vmvqTmnbEgPCBtYW9cLXplZG9uZzsKK+abuOmdoiA8IGluXC13cml0aW5nOwor5YWt5Y2B5LqUIDwgc2l4dHlcLWZpdmU7CivkvLcgPCBkZXNjZW5kZW50Owor5aSa5aqS6auUIDwgbXVsdGltZWRpYTsKK+evgOWItiA8IHRlbXBlcmFuY2U7CivmirXmipflipsgPCByZXNpc3RhbmNlOwor6IWQ5pWXIDwgY29ycnVwdGlvbjsKK+S2qyA8IGZpbmVcLXRlZXRoOwor5LaJIDwgZ3VpbmVhXC1waWc7CivktaogPCBwdXJlXC1ibGFjazsKK+S1nSA8IGRhcmtcLWJsYWNrOwor54246YarIDwgdmV0ZXJpbmFyeTsKK+W+ruS4jei2s+mBkyA8IG5lZ2xpZ2libGU7CivlgZrlh7ogPCB0b1wtcHV0XC1vdXQ7CivkvZzngrogPCBhY2NvbXBsaXNoOwor5LOVIDwgdGhlXC1waWdlb247Civks4wgPCB0aGVcLWN1Y2tvbzsKK+aKmOWwhCA8IHJlZnJhY3Rpb247CivksZ0gPCBibGFja1wtY2FycDsKK+SxhCA8IGFcLWZsYXRmaXNoOwor5ZaJ54KOIDwgbGFyeW5naXRpczsKK+SwrCA8IHdpbGRcLWdob3N0Owor5L+h5b+DIDwgY29uZmlkZW5jZTsKK+SwhCA8IHNob3J0XC1oYWlyOwor5K+UIDwgdG9cLWluY2xpbmU7Civkr4wgPCB0aGVcLXNhY3J1bTsKK+ePjeiXjyA8IGNvbGxlY3Rpb247CivlpKfkuLvmlZkgPCBhcmNoYmlzaG9wOwor5K6NIDwgY3VybGluZ1wtdXA7CivkrbggPCBhXC1zdGFsbGlvbjsKK+ippueul+ihqCA8IHNwZWFkc2hlZXQ7CivkrLcgPCB3ZWxsXC1mZWVkXC47CivogZbogbcgPCBwcmllc3Rob29kOwor5KulIDwgYVwtd3J5XC1uZWNrOwor6YGU6LO05ZaH5ZibIDwgZGFsYWlcLWxhbWE7CivkqrogPCB0ZWV0aHJpZGdlOwor5KqgIDwgcHVsdmVyaXplZDsKK+mMtuebpCA8IGRpYWxcLXBsYXRlOwor5KmxIDwgYVwtc2NhYmJhcmQ7CivmoYPmqLkgPCBwZWFjaFwtdHJlZTsKK+eZveWPo+mQtSA8IHdoaXRlXC1pcm9uOwor5KmBIDwgdGhpblwtaGFpcnM7Civllq7mqKEgPCBzaW5nbGVtb2RlOwor5Ki9IDwgdG9cLXJlc29sdmU7CivkqKkgPCB0aGVcLXNwaXJpdDsKK+S4jeaPo+WGkuaYpyA8IHZlbnR1cmVcLXRvOwor5Ke/IDwgdGhlXC1tYWdwaWU7Civkp6MgPCB0b1wtc3RvcFwtdXA7Civmg7PosaEgPCB0b1wtaW1hZ2luZTsKK+SmryA8IHZlcnlcLWRlbnNlOwor5LiL6ZmNIDwgdG9cLWRlY2xpbmU7Civkpo0gPCB0b1wtaW5jbHVkZTsKK+SkviA8IHRvXC1jb250YWluOwor5KS9IDwgZmFybVwtdG9vbHM7CivlsaTlo5MgPCBsYW1pbmF0aW9uOwor56ys5Y2B5YWrIDwgZWlnaHRlZW50aDsKK+WRqOmAnyA8IGN5Y2xlXC10aW1lOwor5pq06aKoIDwgc3Rvcm1cLXdpbmQ7Civlr6bpqZflrqQgPCBsYWJvcmF0b3J5Owor5KGnIDwgYVwtY2FycmlhZ2U7CivkoZogPCBpbXBsZW1lbnRzOwor5bGs5ZywIDwgZGVwZW5kZW5jeTsKK+ShjiA8IGFcLXdpbmRsYXNzOwor5KC4IDwgb2JzZXF1aW91czsKK+SgtiA8IHRvXC1wcm9qZWN0Owor5KCpIDwgdG9cLXVyaW5hdGU7CivkoJ8gPCB0b1wtdHJpcFwtdXA7CivmvLLlg7kgPCBhcHByZWNpYXRlOwor5KCYIDwgb25lXC1sZWdnZWQ7CivogZbntpMgPCBob2x5XC1iaWJsZTsKK+S7v+ecnyA8IHRvXC1lbXVsYXRlOwor55yB55Wl56ym6JmfIDwgYXBvc3Ryb3BoZTsKK+S4jeWwjeeitOWFkiA8IG5vdFwtcHJvcGVyOwor5LuL57S5IDwgdG9cLXByZXNlbnQ7Civkn5kgPCB0b1wtc3RhZ2dlcjsKK+SfhCA8IGluXC1hXC1odXJyeTsKK+SdvyA8IGhvbm91cmFiZWw7CivknbcgPCBzZWN1cml0aWVzOwor5J2xIDwgdG9cLXRyb3VibGU7CivknJkgPCBub3RcLWNsZXZlcjsKK+SciyA8IHRvXC1zdXNwZW5kOwor57y66bueIDwgd2Vha1wtcG9pbnQ7Civkm7IgPCB0b1wtZGVjZWl2ZTsKK+SbpiA8IGxpdGlnYXRpb247Civkm4QgPCB0b1wtY29uc29sZTsKK+acrOihjCA8IG9uZScnc1wtbGluZTsKK+a7suWdkSA8IHNld2FnZVwtcGl0Owor56u25oqAIDwgdG91cm5hbWVudDsKK+esrOWNgeS5nSA8IG5pbmV0ZWVudGg7CivklrMgPCBqZWxseVwtZmlzaDsKK+mQteWMoCA8IGJsYWNrc21pdGg7Civku7vnlKggPCB0b1wtYXBwb2ludDsKK+adv+e0mSA8IHBhcGVyYm9hcmQ7CivnrKzljYHkuIkgPCB0aGlydGVlbnRoOwor5JWhIDwgY29tcG9zaXRhZTsKK+apn+mXnOi7iiA8IGxvY29tb3RpdmU7Civkv53mvZTnrrEgPCBsaXR0ZXJcLWJpbjsKK+SUmCA8IGZpc2hcLXBhc3RlOwor6ICB5bm05Lq6IDwgb2xkXC1wZW9wbGU7Civkk7UgPCB0b1wtYmxvc3NvbTsKK+azoumVtyA8IHdhdmVsZW5ndGg7Civkk6QgPCB2ZWdldGF0aW9uOwor5bCI5b+DIDwgYWJzb3JwdGlvbjsKK+SThiA8IHRvXC1jdXRcLXRoZTsKK+SSoiA8IHN3ZWV0XC1mbGFnOwor55m86IGy5rOVIDwgaW50b25hdGlvbjsKK+SRrSA8IHdhclwtdmVzc2VsOwor5JGNIDwgdG9cLXN3YWxsb3c7CivkkKIgPCB0b1wtd3JpbmtsZTsKK+SPrSA8IHRoZVwtY2hlZWtzOwor5I+MIDwgdG9cLXZpYnJhdGU7Civkjp8gPCB0b1wtZmF3blwtb247CivlgIvliKUgPCBpbmRpdmlkdWFsOwor5pyD6KiIIDwgYWNjb3VudGFudDsKK+SNtSA8IHlvdW5nXC1nb2F0Owor5I2eIDwgYVwtZHJhZ1wtbmV0Owor5I2XIDwgdG9cLWhhbmdcLXVwOwor5I2UIDwgYVwtZnVsbFwtbmV0Owor5oSP5oOz5LiN5YiwIDwgdW5leHBlY3RlZDsKK+a1geihgCA8IHNoZWRcLWJsb29kOwor6IKJ54mHIDwgbWVhdFwtc2xpY2U7Civki7EgPCBhXC13aWxkXC15YWs7CivlhrDkuIrpgYvli5UgPCBpY2VcLXNwb3J0czsKK+WFrOmWi+iojuirluacgyA8IG9wZW5cLWZvcnVtOwor5IqpIDwgcmljZVwtZ3Jhdnk7CivmuqvlrqQgPCBncmVlbmhvdXNlOwor576O5LmD5ruL6YasIDwgbWF5b25uYWlzZTsKK+S4jeW5s+WHoSA8IG1hcnZlbGxvdXM7CivmipHliLYgPCB0b1wtaW5oaWJpdDsKK+SHjiA8IHRvXC1zdGFydGxlOwor5L2c5paZIDwgY29uZGltZW50czsKK+SHhyA8IHRoZVwtcGVvcGxlOwor5IaLIDwgdGhlXC1hdXR1bW47CivkhZQgPCBkZWFkXC1jcm9wczsKK+W0keW0meWxsSA8IG10XC5cLWt1bmx1bjsKK+S+v+WjuiA8IGJlZFwtdXJpbmFsOwor5ISfIDwgdG9cLXdvcnNoaXA7Civkvb/mgJIgPCBleGFzcGVyYXRlOwor5L6d5bGsIDwgZGVwZW5kZW5jZTsKK+SBniA8IGFcLXByb3ZpbmNlOwor5IGBIDwgc3RyYWJpc211czsKK+etieWIsCA8IHdhaXRcLXVudGlsOwor5bCP5aeQIDwgeW91bmdcLWxhZHk7Civku6PooajlnJggPCBkZWxlZ2F0aW9uOwor472oIDwgZnJhZ21lbnRlZDsKK+O9oyA8IGFcLWZyb250aWVyOwor472YIDwgYm9yZGVybGFuZDsKK+ahjOW4gyA8IHRhYmxlY2xvdGg7CivjvLkgPCBlYXJ0ZW53YXJlOwor6IOM5pmvIDwgYmFja2dyb3VuZDsKK+S4jeiuiiA8IHVuY2hhbmdpbmc7CivkuIDosqsgPCBjb25zaXN0ZW50Owor47qzIDwgYmxhY2tcLW1pY2E7CivjuoUgPCB0aGVcLW1vbmtleTsKK+aJueWHhiA8IHRvXC1hcHByb3ZlOwor47ioIDwgYVwtYmlnXC1idWxsOwor47iMIDwgdG9cLXR3aW5rbGU7Civjt7cgPCB0aGlja1wtc291cDsKK+O2rSA8IGFsbW9zdFwtZHJ5Owor47acIDwgZGVlcFwtd2F0ZXI7Civnp5Hns7sgPCBkZXBhcnRtZW50Owor47WAIDwgd2F0ZXJcLWZsb3c7CivmhIHnt5IgPCBtZWxhbmNob2x5Owor56We6KmxIDwgZmFpcnlcLXRhbGU7CivkvY/miYAgPCBoYWJpdGF0aW9uOwor5b2x5YOP5qqUIDwgaW1hZ2VcLWZpbGU7Civjsq8gPCBsb25nXC1oYWlyeTsKK+mhm+imhiA8IHN1YnZlcnNpb247CivjsowgPCBkb2cnJ3NcLWhhaXI7CivjsokgPCBlZ2dcLXNoZWxsczsKK+OxpiA8IHRvXC1kaXNjYXJkOwor47GcIDwgcGVzdGlsZW5jZTsKK+ahiOWtkCA8IGxvbmdcLXRhYmxlOwor46+HIDwgYVwtc3RvY2thZGU7CivlsYXkvY/ogIUgPCBpbmhhYml0YW50Owor46yxIDwgdG9cLXJlcGxhY2U7CivjrKogPCB0b1wtZm9sZFwtdXA7Civjq6QgPCBhXC1sb25nXC1kYXk7CivjqowgPCB0b1wtbGVhZFwtb247CivjqbkgPCB0b1wtcGlsZVwtb247CivjqZ4gPCB0b1wtYmFja1wtdXA7CivjqK8gPCB0b1wtZW5sYXJnZTsKK+OoriA8IHRvXC1saWZ0XC11cDsKK+a3mOaxsCA8IHRvXC1kaWVcLW91dDsKK+iCpeaWmSA8IGZlcnRpbGl6ZXI7CivjpoIgPCBjb25zdGFudGx5Owor46W2IDwgdG9cLWZpbGxcLXVwOwor46WjIDwgdG9cLWJlbmVmaXQ7CivjpLcgPCB0b1wtZGViYXVjaDsKK+OkkCA8IGRpc2hhcm1vbnk7Civni6Hovq8gPCB0b1wtcXVpYmJsZTsKK+OjvSA8IHRvXC1mb3JnaXZlOwor46OFIDwgYm93XC1zdHJpbmc7Civjo4AgPCB0b1wtcmVib3VuZDsKK+OirSA8IGFcLWJvd1wtY2FzZTsKK+OimiA8IGFcLWNvcnJpZG9yOwor46KPIDwgYVwtY2Vzc3Bvb2w7CivjoaUgPCB0b1wtY3VybFwtdXA7CivmmrTooYwgPCBzYXZhZ2VcLWFjdDsKK+Wbm+eZvuWEhCA8IDQwXC1iaWxsaW9uOwor5a+m5ZyoIDwgaW5cLXJlYWxpdHk7Civoib7mu4vnl4Xnl4Xmr5IgPCBhaWRzXC12aXJ1czsKK+OeoCA8IG1hbGVcLW9yZ2FuOwor6Zm46LuN5Lit5bCJIDwgbGlldXRlbmFudDsKK+OejiA8IGJvZHlcLXdhc3RlOwor452vIDwgdG9cLXNvam91cm47CivjmqAgPCBmdWxsXC1ncm93bjsKK+OZuiA8IGNyb3NzXC1yb2FkOwor6LaF5Y2HIDwgZXhhbHRhdGlvbjsKK+WPm+i7jSA8IHJlYmVsXC1hcm15Owor45inIDwgcHJlY2VkZW5jZTsKK+eNuOeptCA8IGFuaW1hbFwtZGVuOwor45esIDwgdGhpY2tcLWxpcHM7Civjl6sgPCB0b1wtd2hpc3BlcjsKK+W9quW9ouWkp+a8oiA8IGJ1cmx5XC1jaGFwOwor6K2m6ZCYIDwgYWxhcm1cLWJlbGw7CivjloYgPCB0b1wtY29uZGVtbjsKK+iDluWtkCA8IGZhdFwtcGVyc29uOwor45WNIDwgdG9cLWhlYXBcLXVwOwor45WGIDwgZmluZVwtc3RvbmU7CivjlLcgPCB0b1wtc2VjcmV0ZTsKK+OUmCA8IHRvXC1kZWdyYWRlOwor45STIDwgdG9cLXN0YW1tZXI7CivjlIwgPCB0b1wtY3V0XC1vZmY7Civjk7ogPCBjYXN0cmF0aW9uOwor5a2Y5pS+IDwgdG9cLWRlcG9zaXQ7CivppJPmrbsgPCBzdGFydmF0aW9uOwor45K3IDwgdG9cLXByb3NwZXI7CivjkKQgPCB0b1wtaW1wbG9yZTsKK+iQrOS6i+mBlOWNoSA8IG1hc3RlcmNhcmQ7CivkvbXlkJ4gPCBzd2FsbG93XC11cDsKK+WtuOW+kiA8IGFwcHJlbnRpY2U7Civmnb/mqIEgPCBzaGVldFwtcGlsZTsKK+WQpuaxuuasiiA8IHZldG9cLXBvd2VyOwor5oiQ5YiGIDwgaW5ncmVkaWVudDsKK+W0h+aLnOiAhSA8IHdvcnNoaXBwZXI7CivmgpTnvaogPCBjb252aWN0aW9uOwor6IO95YqbIDwgY2FwYWJpbGl0eTsKK+aIsuWKh+WMliA8IHRoZWF0cmljYWw7Civlv4XpoIggPCB0b1wtaGF2ZVwtdG87Civogq/lrpogPCB0b1wtYmVcLXN1cmU7Civku7vmgKcgPCBjYXByaWNpb3VzOwor546L54mMIDwgdHJ1bXBcLWNhcmQ7CivmlrDogZ7lqpLpq5QgPCBuZXdzXC1tZWRpYTsKK+WgheWumuS4jeenuyA8IHVuc3dlcnZpbmc7CivpnZ7nm4jliKkgPCBub25cLXByb2ZpdDsKK+WNl+mdoiA8IHNvdXRoXC1zaWRlOwor5L2/5a655piTIDwgZmFjaWxpdGF0ZTsKK+eglOeptuWToSA8IHJlc2VhcmNoZXI7CivoloTojbcgPCBmaWVsZFwtbWludDsKK+mmrOWKmyA8IGhvcnNlcG93ZXI7CivmnIjnkIMgPCBcKHRoZVwpXC1tb29uOwor54++5oiQIDwgcmVhZHlcLW1hZGU7CivorbDoq5YgPCB0b1wtY29tbWVudDsKK+miqOa/lSA8IHJoZXVtYXRpc207CivnvqTnnL4gPCB0aGVcLW1hc3NlczsKK+S4ieaciOS6jOWNgeS4ieiZnyA8IG1hcmNoXC0yM3JkOwor5q2k5pmC5Lul5YmNIDwgaGVyZXRvZm9yZTsKK+S7geaFiCA8IGJlbmV2b2xlbnQ7Civnm67mk4rogIUgPCBleWV3aXRuZXNzOwor5LuK5b6MIDwgaGVuY2Vmb3J0aDsKK+iZm+aTrCA8IGZpY3RpdGlvdXM7CivlsIjploDljJYgPCBzcGVjaWFsaXplOwor5aSa6buoIDwgbXVsdGlwYXJ0eTsKK+S4jeeVtiA8IHVuc3VpdGFibGU7CivmsojokL0gPCBzaW5rXCxcLWZhbGw7CivorJvov7AgPCB0YWxrXC1hYm91dDsKK+Wuo+S9iCA8IHRvXC1kZWNsYXJlOwor5pGp5omY6LuKIDwgbW90b3JjeWNsZTsKK+acnemuruaIsOeIrSA8IGtvcmVhblwtd2FyOwor6byT5o6MIDwgdG9cLWFwcGxhdWQ7Civku6XlpJYgPCBhcGFydFwtZnJvbTsKK+ioguizvOiAhSA8IHN1YnNjcmliZXI7CivniIbpn7MgPCBzb25pY1wtYm9vbTsKK+Wkp+mrlCA8IGluXC1nZW5lcmFsOwor6aOf5oyHIDwgZm9yZWZpbmdlcjsKK+eJtOinuCA8IGNvbnRyYWRpY3Q7CivnqIvluo8gPCBwcm9jZWR1cmVzOwor5piO6KiAIDwgcHJvbm91bmNlZDsKK+mhr+W+rumPoSA8IG1pY3Jvc2NvcGU7CivmnKzmnIggPCB0aGlzXC1tb250aDsKK+WOn+eUn+izqiA8IHByb3RvcGxhc207CivlpJrmlrnpnaIgPCBtYW55XC1zaWRlZDsKK+WTsuWtuCA8IHBoaWxvc29waHk7CivmsKPosaEgPCBtZXRlb3JvbGd5Owor5LqS5oOgIDwgcmVjaXByb2NhbDsKK+WQq+eHkCA8IHBob3NwaG9yaWM7Civmm7TmraMgPCBjb3JyZWN0aW9uOwor6buR5p2/IDwgYmxhY2tib2FyZDsKK+aWsOiBnuWtuCA8IGpvdXJuYWxpc207CivkuI3lrproqZ4gPCBpbmZpbml0aXZlOwor6aCQ55+lIDwgYW50aWNpcGF0ZTsKK+S7peWPiiA8IGFzXC13ZWxsXC1hczsKK+S4u+agvCA8IG5vbWluYXRpdmU7CivpjITlj5YgPCB0b1wtcmVjcnVpdDsKK+aWsOmDjiA8IGJyaWRlZ3Jvb207CivogIzlvowgPCBhZnRlclwtdGhhdDsKK+aCsuatjCA8IHNhZFwtbWVsb2R5Owor5Lq65Z2HIDwgcGVyXC1jYXBpdGE7Civlj6/nlpEgPCBzdXNwaWNpb3VzOwor6ICM5beyIDwgdGhhdCcnc1wtYWxsOwor6Zuj5Lul572u5L+hIDwgaW5jcmVkaWJsZTsKK+a1tOW3viA8IGJhdGhcLXRvd2VsOwor5ZCK54eIIDwgY2hhbmRlbGllcjsKK+WFseWSjOaUv+mrlCA8IHJlcHVibGljYW47CivogbLlg7kgPCByZXB1dGF0aW9uOwor5LiN57Ch5ZauIDwgbm90XC1zaW1wbGU7Civlj5flgrflrrMgPCBiZVwtaW5qdXJlZDsKK+err+ezu+e1sSA8IGVuZFwtc3lzdGVtOwor6JaE54mHIDwgdGhpblwtc2xpY2U7Civmm7TmlrAgPCB1cFwtdG9cLWRhdGU7CivpoavmoJcgPCB0b1wtdHJlbWJsZTsKK+mbhumrlCA8IGNvbGxlY3RpdmU7CivlpJbkuqTmiYvohZUgPCBkaXBsb21hdGljOwor5pWX6ZyyIDwgXChvZlwtYVwtcGxvdDsKK+ippumplyA8IGV4cGVyaW1lbnQ7Civkurrlj6MgPCBwb3B1bGF0aW9uOwor5LiJ55m+5YSEIDwgMzBcLWJpbGxpb247CivmrbjpoIYgPCBzdWJtaXNzaW9uOwor5aSx6LmkIDwgYmVcLW1pc3Npbmc7Civpo73lkowgPCBzYXR1cmF0aW9uOwor5q2h6aiwIDwganViaWxhdGlvbjsKK+W+jOijlCA8IGRlc2NlbmRhbnQ7Civph5HniYwgPCBnb2xkXC1tZWRhbDsKK+mdnuWwjeeosSA8IGFzeW1tZXRyaWM7CivkuI3mnIMgPCBpbXByb2JhYmxlOwor5LiK5pyIIDwgbGFzdFwtbW9udGg7CivljYrmsbros70gPCBzZW1pZmluYWxzOwor56Kn57agIDwgZGFya1wtZ3JlZW47CivogIHlpZcgPCBvbGRcLXRoaW5nczsKK+WPiueJqSA8IHRyYW5zaXRpdmU7CivojqvpoIjmnIkgPCBncm91bmRsZXNzOwor5LiN6LK36LOsIDwgbm90XC1idXlcLWl0Owor56OB55uk6amF5YuV5ZmoIDwgZGlzbFwtZHJpdmU7Civpm7vou4ogPCB0cm9sbGV5YnVzOwor6aGn5oWuIDwgbWlzZ2l2aW5nczsKK+WPr+avlCA8IGNvbXBhcmFibGU7CivohZPnq4vmr5Tmm7ggPCBwaGlsaXBpYW5zOwor5LqL5YWIIDwgaW5cLWFkdmFuY2U7CivorabniqwgPCBwb2xpY2VcLWRvZzsKK+WJm+mrlCA8IHJpZ2lkXC1ib2R5Owor5pmv5rCjIDwgcHJvc3Blcml0eTsKK+WNnOetriA8IGRpdmluYXRpb247CivlpbPoo53oo4HnuKvluKsgPCBkcmVzc21ha2VyOwor5LiN5b+rIDwgYmVcLXVuaGFwcHk7CivlpbPlrbjnlJ8gPCBzY2hvb2xnaXJsOwor5pS56YCyIDwgdG9cLWltcHJvdmU7Civpm7voppYgPCB0ZWxldmlzaW9uOwor5b6M6ICFIDwgdGhlXC1sYXR0ZXI7Civnuo/nuZ4gPCBpbnRlcnR3aW5lOwor5Yqg6YCfIDwgYWNjZWxlcmF0ZTsKK+irs+e3tCA8IGNvbnZlcnNhbnQ7CivkuIvlgIvmnIggPCBuZXh0XC1tb250aDsKK+mojuWjq+miqOagvCA8IGtuaWdodGhvb2Q7Civpj4jot6/lsaQgPCBsaW5rXC1sYXllcjsKK+S4gOW6piA8IGZvclwtYVwtdGltZTsKK+atoei/jiA8IHRvXC13ZWxjb21lOwor5YyW5aad6Iie5pyDIDwgbWFzcXVlcmFkZTsKK+WiqOmPoSA8IHN1bmdsYXNzZXM7CivliZ3pm6IgPCBcKG9mXC10aXNzdWU7CivlvYjol6UgPCBhbW11bml0aW9uOwor5rqr5ZKM5oCnIDwgdGVuZGVybmVzczsKK+S4jeWuiSA8IGludHJhbnF1aWw7CivmnJ/liIogPCBwZXJpb2RpY2FsOwor55+l6Ka6IDwgcGVyY2VwdGlvbjsKK+aJgOacieiAhSA8IHByb3ByaWV0b3I7CivlkIzmg4UgPCBjb21wYXNzaW9uOwor6YGp6YWNIDwgYWRhcHRhdGlvbjsKK+WQiOaEjyA8IGFjY2VwdGFibGU7CivlpKfoh6MgPCBjaGFuY2VsbG9yOwor5ZCM5oCnIDwgaG9tb3NleHVhbDsKK+aXpeebiiA8IGRheVwtYnlcLWRheTsKK+WNiuepuuS4rSA8IGluXC1taWRcLWFpcjsKK+acrOS7vSA8IG9uZScnc1wtZHV0eTsKK+Wls+acjeeJqeWToSA8IHN0ZXdhcmRlc3M7CivmspLmnInnn6XoprogPCBpbnNlbnNpYmxlOwor5LiN562J5byPIDwgaW5lcXVhbGl0eTsKK+acg+WPiyA8IG1lbWJlcnNoaXA7CivmmpfplpPlhZIgPCBpbm5lclwtcm9vbTsKK+iHquWLleWMliA8IGF1dG9tYXRpb247CivkuI3lpKAgPCBub3RcLWVub3VnaDsKK+WWruaWuemdoiA8IHVuaWxhdGVyYWw7Civnp4HkuIsgPCBpblwtcHJpdmF0ZTsKK+azouWzsCA8IHdhdmVcLWNyZXN0Owor5LiJ5aSpIDwgdGhyZWVcLWRheXM7Civlj43ml6UgPCBhbnRpXC1qYXBhbjsKK+W7uuitsCA8IHRvXC1wcm9wb3NlOwor5L2b5pWZ5b6SIDwgYVwtYnVkZGhpc3Q7Civms6LlsI4gPCB3YXZlXC1ndWlkZTsKK+WpouWlsyA8IHNsYXZlXC1naXJsOwor5rKS5pS2IDwgY29uZmlzY2F0ZTsKK+W/q+a0uyA8IGdheVwsXC1oYXBweTsKK+WPr+aCsiA8IGxhbWVudGFibGU7CivoqZXoqLsgPCBjb21tZW50YXJ5Owor5b+F54S2IDwgaW5ldml0YWJsZTsKK+WNiueQgyA8IGhlbWlzcGhlcmU7Civpn7/mh4kgPCByZXNwb25kXC10bzsKK+Wkp+e2sSA8IG1haW5cLXBvaW50Owor5rCj5Yui5rS25rS2IDwgYWdncmVzc2l2ZTsKK+eDpOm0qCA8IHJvYXN0XC1kdWNrOwor5q2M6KmeIDwgc29uZ1wtbHlyaWM7CivkuKblhaUgPCBtZXJnZVwtaW50bzsKK+W8seiEiCA8IHdlYWtcLXB1bHNlOwor5pON6Ii15a6kIDwgcGlsb3Rob3VzZTsKK+WOn+acrCA8IG9yaWdpbmFsbHk7CivlkLjlkK4gPCB0b1wtc3Vja1wtaW47CivniIbnoLQgPCB0b1wtYmxvd1wtdXA7CivpgZPos4AgPCBjb21wbGltZW50Owor5Y+W5b6XIDwgdG9cLWFjcXVpcmU7CivkuIrljYogPCBmaXJzdFwtaGFsZjsKK+aVmeiCsiA8IHRvXC1lZHVjYXRlOwor5LiN5YuVIDwgbW90aW9ubGVzczsKK+S4g+WNgeW5tOS7oyA8IHRoZVwtMTk3MCcnczsKK+ilv+m7niA8IHdlc3RcLXBvaW50Owor5paX55y8IDwgY3Jvc3NcLWV5ZWQ7CivnnLzpj6EgPCBzcGVjdGFjbGVzOwor5LiN5YKZIDwgdW5wcmVwYXJlZDsKK+aBq+WahyA8IGludGltaWRhdGU7CivlpYnnjbsgPCBjb25zZWNyYXRlOwor5LiN5L6dIDwgbm90XC1jb21wbHk7Civpm7vllLHmqZ8gPCBwaG9ub2dyYXBoOwor5paH55uyIDwgaWxsaXRlcmF0ZTsKK+aYjuaZuiA8IG5vdFwtdW53aXNlOwor5rWB56iL5ZyWIDwgZmxvd1wtY2hhcnQ7Civnm6PnnaPogIUgPCBzdXBlcnZpc29yOwor5LiA55m+5LqU5Y2B5YSEIDwgMTVcLWJpbGxpb247Civmkp7ph50gPCBmaXJpbmdcLXBpbjsKK+WNl+altSA8IHNvdXRoXC1wb2xlOwor5omA5pyJ54mpIDwgYmVsb25naW5nczsKK+imlueql+aWsOaKgCA8IHdpbmRvd3NcLW50Owor5LqM5Y2B5LiAIDwgdHdlbnR5XC1vbmU7CivkuoYgPCB0b1wtZmluaXNoOwor5a2QIDwgb2Zmc3ByaW5nOwor5b65IDwgcGVuZXRyYXRlOwor6KaBIDwgbmVjZXNzYXJ5Owor6L6xIDwgaHVtaWxpYXRlOwor552AIDwgbWFrZVwtbW92ZTsKK+aIkCA8IGNvbXBsZXRlZDsKK+edoyA8IHN1cGVydmlzZTsKK+i8ryA8IGdhdGhlclwtdXA7CivlvKUgPCBleHRlbnNpdmU7Civnvo4gPCBiZWF1dGlmdWw7Civlu4IgPCBzaWRlXC1yb29tOwor6ZeuIDwgYXNrXC1hYm91dDsKK+W6rSA8IGNvdXJ0eWFyZDsKK+eZgiA8IGJlXC1oZWFsZWQ7Civnl7ogPCBwYXJhbHlzaXM7Civlt64gPCB0b1wtZGlmZmVyOwor6Zq+IDwgZGlmZmljdWx0Owor6LaFIDwganVtcFwtb3ZlcjsKK+eVsCA8IGRpZmZlcmVudDsKK+S6siA8IHJlbGF0aXZlczsKK+eVqyA8IGRlbGluZWF0ZTsKK+eVnCA8IGxpdmVzdG9jazsKK+eVkSA8IGRyeVwtZmllbGQ7CivnlJggPCBzd2VldG5lc3M7CivorqQgPCByZWNvZ25pemU7CivosrQgPCBleHBlbnNpdmU7Civosp0gPCBzZWFcLXNoZWxsOwor6L6+IDwgYXJyaXZlXC1hdDsKK+S8lyA8IG11bHRpdHVkZTsKK+WAkiA8IGZhbGxcLW92ZXI7CivnjqkgPCBwbGF5XC13aXRoOwor5YOPIDwgYVwtcGljdHVyZTsKK+WuhSA8IHJlc2lkZW5jZTsKK+aNriA8IHRvXC1vY2N1cHk7Civora8gPCB0cmFuc2xhdGU7CivorasgPCB0YWxrYXRpdmU7CivpgKAgPCBjb25zdHJ1Y3Q7CivlqrwgPCBvbGRcLXdvbWFuOwor54qgIDwgc2FjcmlmaWNlOwor54mSIDwgZG9jdW1lbnRzOwor54mMIDwgc2lnbmJvYXJkOwor54iQIDwgZmlyZXBsYWNlOwor5LmFIDwgbG9uZ1wtdGltZTsKK+WmviA8IGNvbmN1YmluZTsKK+WInSA8IGJlZ2lubmluZzsKK+mZpCA8IGVsaW1pbmF0ZTsKK+WGtSA8IGNvbmRpdGlvbjsKK+S5sSA8IGNvbmZ1c2lvbjsKK+WImyA8IGVzdGFibGlzaDsKK+emjyA8IGhhcHBpbmVzczsKK+WBhyA8IGZhbHNlaG9vZDsKK+mhviA8IGxvb2tcLWJhY2s7CivooLYgPCBzaWxrd29ybXM7CivmuJAgPCBncmFkdWFsbHk7CivnnqcgPCBnbGFuY2VcLWF0Owor5Z+SIDwgZW5jbG9zdXJlOwor5Z+DIDwgZmluZVwtZHVzdDsKK+ieoiA8IGdsb3dcLXdvcm07CivpgIAgPCBzdGVwXC1iYWNrOwor6Jy7IDwgZHJhZ29uZmx5Owor57+7IDwgZmxpcFwtb3ZlcjsKK+WcjyA8IHRvXC1jaXJjbGU7Civmma4gPCB1bml2ZXJzYWw7Civom7kgPCBjaHJ5c2FsaXM7CivkuLQgPCBkcmF3XC1uZWFyOwor5Y2PIDwgYmVcLXVuaXRlZDsKK+a5ryA8IGhvdFwtd2F0ZXI7CivkvosgPCBwcmVjZWRlbnQ7CivmtLIgPCBjb250aW5lbnQ7Civmnb4gPCBwaW5lXC10cmVlOwor5LyZIDwgY29tcGFuaW9uOwor5q+rIDwgZmluZVwtaGFpcjsKK+iVjiA8IGJ1Y2t3aGVhdDsKK+i+kyA8IHRyYW5zcG9ydDsKK+aKmCA8IGJyZWFrXC1vZmY7CivmsbAgPCBleGNlc3NpdmU7CivlkJsgPCBzb3ZlcmVpZ247CivljbEgPCBkYW5nZXJvdXM7CivmpoIgPCBnZW5lcmFsbHk7CivljoQgPCBhZHZlcnNpdHk7CivmsYcgPCBjb25jb3Vyc2U7CivljokgPCB3aGV0c3RvbmU7CivpmYQgPCBhZGhlcmVcLXRvOwor6IKpIDwgc2hvdWxkZXJzOwor6a2YIDwgbmlnaHRtYXJlOwor6I2SIDwgd2FzdGVsYW5kOwor6ayxIDwgbHV4dXJpYW50Owor5YygIDwgY3JhZnRzbWFuOwor5YyCIDwgZnJhZ3JhbmNlOwor5Yu4IDwgcmVjb21tZW5kOwor6aOYIDwgd2hpcmx3aW5kOwor54KuIDwgbGFyZ2VcLWd1bjsKK+mDjiA8IGdlbnRsZW1hbjsKK+mZqiA8IGFjY29tcGFueTsKK+WHnSA8IGNvYWd1bGF0ZTsKK+WJqSA8IGxlZnRvdmVyczsKK+mlkiA8IGJvdW50aWZ1bDsKK+iCmCA8IHRoZVwtZWxib3c7CivogpYgPCBsb29rXC1saWtlOwor5pioIDwgeWVzdGVyZGF5Owor5pqCIDwgdGVtcG9yYXJ5Owor6YCSIDwgaGFuZFwtb3ZlcjsKK+elpSA8IGdvb2RcLWx1Y2s7CivlgLkgPCB0ZW1wZXJhdGU7Civku5cgPCByZWx5XC11cG9uOwor5p+/IDwgcGVyc2ltbW9uOwor6ZSuIDwgZG9vclwtYm9sdDsKK+aeryA8IGRyaWVkXC1vdXQ7CivojrEgPCBnb29zZWZvb3Q7CivotZQgPCBpbmRlbW5pZnk7CivpgKIgPCBjb21lXC11cG9uOwor552BIDwgb3BlblwtZXllczsKK+WYvyA8IGJlXC1zaWxlbnQ7CivotKogPCBiZVwtZ3JlZWR5Owor6YCdIDwgcGFzc1wtYXdheTsKK+iJviA8IGFydGVtaXNpYTsKK+iijSA8IGxvbmdcLWdvd247CivlhqQgPCBncmlldmFuY2U7Civov6ogPCBlbmxpZ2h0ZW47CivlmIkgPCBleGNlbGxlbnQ7Civplr4gPCB0aHJlc2hvbGQ7Civntr4gPCB0aGluXC1zaWxrOwor6IaAIDwgdXBwZXJcLWFybTsKK+mhvSA8IG9ic3RpbmF0ZTsKK+atiSA8IGRlZmljaWVudDsKK+W4hSA8IGNvbW1hbmRlcjsKK+aGviA8IHRvXC1yZWdyZXQ7CivlioggPCBjdXRcLWFwYXJ0Owor5ouCIDwgc2hha2VcLW9mZjsKK+etiCA8IGFycm93XC1lbmQ7CivnhqwgPCBjb29rXC1kb3duOwor56i8IDwgc293XC1ncmFpbjsKK+aBjSA8IHNlZW1pbmdseTsKK+e7oyA8IGVtYnJvaWRlcjsKK+aHgyA8IGNvdXJ0ZW91czsKK+ihrCA8IHVuZGVyd2VhcjsKK+aFiiA8IHRvXC1yZXNlbnQ7Civmva0gPCBkZWVwXC1wb29sOwor56GdIDwgc2FsdHBldGVyOwor6aqkIDwgcHJvY2VkdXJlOwor5b+/IDwgZ2V0XC1hbmdyeTsKK+WdoCA8IGZhbGxcLWRvd247CivonbYgPCBidXR0ZXJmbHk7CivnhIkgPCB0aGVyZXVwb247CivnpoAgPCByZXBvcnRcLXRvOwor5oyrIDwgcHVzaFwtZG93bjsKK+mzhCA8IGFsbGlnYXRvcjsKK+iwkCA8IGhhcm1vbml6ZTsKK+WxjiA8IGV4Y3JlbWVudDsKK+iRsSA8IHNjYWxsaW9uczsKK+aeoyA8IGRhdGVcLXRyZWU7CivosLQgPCByZXByaW1hbmQ7CivmsbkgPCB0dXJidWxlbnQ7Civms7sgPCBkcmFpblwtb2ZmOwor54CRIDwgd2F0ZXJmYWxsOwor5qiKIDwgYVwtcmFpbGluZzsKK+aVmyA8IGRyYXdcLWJhY2s7CivojLUgPCBhXC1jdXNoaW9uOwor5qOVIDwgaGVtcFwtcGFsbTsKK+i+lyA8IHR1cm5cLW92ZXI7CivmgaQgPCBzaG93XC1waXR5Owor5L6IIDwgbHV4dXJpb3VzOwor5rKBIDwgc29ha1wtaW50bzsKK+WMoyA8IHNtYWxsXC1ib3g7CivmjY4gPCB0b1wtc2VsZWN0Owor55eeIDwgZHlzcGVwc2lhOwor552QIDwgc3F1aW50XC1hdDsKK+WepiA8IGN1bHRpdmF0ZTsKK+a1kiA8IHJpdmVyYmFuazsKK+iRtSA8IHN1bmZsb3dlcjsKK+edqyA8IGV5ZWxhc2hlczsKK+WTuiA8IGNoZXdcLWZvb2Q7Civnq6MgPCB0ZXJtaW5hdGU7Civlm5QgPCBtdXR0ZXJpbmc7Civol5AgPCBkaXNyZWdhcmQ7Civln6AgPCBwb3J0XC1jaXR5Owor6I2kIDwgbWVhdFwtZGlldDsKK+ickiA8IG1pbGxpcGVkZTsKK+iPhyA8IG11c2hyb29tczsKK+ixmiA8IHNtYWxsXC1waWc7CivmspMgPCBjb25uZWN0ZWQ7CivlvKkgPCBjcm9zc1wtYm93Owor5q6HIDwgZGllXC15b3VuZzsKK+agiCA8IHdhcmVob3VzZTsKK+mGuiA8IGdldFwtZHJ1bms7CivonIggPCBjZW50aXBlZGU7CivmhKsgPCBndWlsZWxlc3M7CivosJkgPCB2ZXJzZWRcLWluOwor54a5IDwgZGltXC1saWdodDsKK+aAgiA8IGluc3RpZ2F0ZTsKK+mBmyA8IHRha2VcLXdhbGs7Civpur4gPCBhXC1wZW5uYW50Owor5aqyIDwgbWFycnlcLW9mZjsKK+mVgSA8IG1hZ25lc2l1bTsKK+aksCA8IHBhbG1cLXRyZWU7Civnl6IgPCBkeXNlbnRlcnk7Civll5EgPCBlYXRcLXNlZWRzOwor6JqvIDwgZWFydGh3b3JtOwor6JyaIDwgY29ja3JvYWNoOwor6ZiGIDwgaGlnaFwtZG9vcjsKK+aTgCA8IHJvbGxcLWZsYXQ7CivooqQgPCBsb25naXR1ZGU7Civpup0gPCBtdXNrXC1kZWVyOwor5L27IDwgZnJpdm9sb3VzOwor6ZK+IDwgcG90YXNzaXVtOwor5a2RIDwgcmVtYWluaW5nOwor5qqEIDwgY2FsbFwtYXJtczsKK+majSA8IGRyeVwtZGl0Y2g7Civor78gPCBwYXNzXC1idWNrOwor6YCEIDwgYVwtc3VybmFtZTsKK+aijyA8IGhhbmRjdWZmczsKK+mSuiA8IGJyb2FkXC1heGU7Civmn5EgPCB0YW5nZXJpbmU7CivkuZwgPCB0b1wtc3F1aW50Owor5aiyIDwgYVwtZ29kZGVzczsKK+W/nSA8IGRpc2dyYWNlZDsKK+ivriA8IGNyaXRpY2l6ZTsKK+mzjyA8IGh1Z2VcLWZpc2g7CivonIcgPCBqZWxseWZpc2g7Civliq0gPCBlbmNvdXJhZ2U7CivnmaMgPCByaW5nd29ybXM7Civnu6YgPCBzaWxrXC1jb3JkOwor6ZK4IDwgcGx1dG9uaXVtOwor6aaXIDwgY2hlZWtib25lOwor6ZSwIDwgbWFuZ2FuZXNlOwor5L6qIDwgYVwtY29tcGFueTsKK+WHqyA8IHdpbGRcLWR1Y2s7Civnl7EgPCBoZWF0XC1yYXNoOwor55eIIDwgY2FyYnVuY2xlOwor5oKMIDwgYnJvdGhlcmx5Owor5Ya8IDwgXChzdXJuYW1lXCk7CivpuacgPCBwYXJ0cmlkZ2U7CivmgpIgPCBzb3Jyb3dmdWw7CivmgIMgPCByZWdyZXRmdWw7CivlopIgPCB3ZXRcLXRpbHRoOwor6Ki+IDwgYmFkXC1tb3V0aDsKK+WcriA8IGRlc3Ryb3llZDsKK+myiCA8IHNlYVwtcGVyY2g7CivmlIkgPCB0b1wtYmVja29uOwor6bKHIDwgc2hlYXRmaXNoOwor6IaIIDwgZGlhcGhyYWdtOwor54qNIDwgYVwtYnVsbG9jazsKK+mUlyA8IGdlcm1hbml1bTsKK+mOjyA8IHB1cmVcLWdvbGQ7CivplYUgPCBhbWVyaWNpdW07CivovoIgPCBhXC1jaGFyaW90Owor6Le4IDwgY2xlYXJcLXdheTsKK+eFsyA8IGJlXC1idXJuZWQ7Civnib4gPCB0b1wtb3Bwb3NlOwor5piAIDwgc3VuXC1saWdodDsKK+S5qSA8IHRvXC1kaXZpbmU7Civnvp8gPCBoeWRyb3hpZGU7Civojb0gPCBjb3JpYW5kZXI7Civnu6AgPCB3ZWxsXC1yb3BlOwor5ZOTIDwgZ2FycnVsb3VzOwor6ISsIDwgYVwtYmxhZGRlcjsKK+aIoSA8IHN1Ymp1Z2F0ZTsKK+i+hyA8IGhhbmRcLWNhcnQ7CivpuZogPCBjb3Jtb3JhbnQ7CivplZ4gPCBhcnJvd2hlYWQ7Civoj7AgPCB3aWxkXC1yaWNlOwor6KCWIDwgaW5jaFwtd29ybTsKK+mTqyA8IGxhcmdlXC1ob2U7CivmsJggPCBkZXV0ZXJpdW07Civpu74gPCB0b1wtc3RyaXZlOwor6ZWnIDwgbGFudGhhbnVtOwor5Z6hIDwgcGxvd1wtc29pbDsKK+eClCA8IGFjZXR5bGVuZTsKK+mVsSA8IHl0dGVyYml1bTsKK+mSlSA8IG5lb2R5bWl1bTsKK+W/rSA8IGRlbGlnaHRlZDsKK+iLtCA8IHNhY2tjbG90aDsKK+iwsyA8IHRvXC1kZWNpZGU7Civpkq8gPCBwYWxsYWRpdW07CivnorIgPCB0ZWxsdXJpdW07CivnkqkgPCBqYWRlXC1yaW5nOwor6aWrIDwgc3VyZmVpdGVkOwor5pKZIDwgZWNvbm9taXplOwor6JO8IDwgc21hcnR3ZWVkOwor6aWUIDwgYnJlYWtmYXN0Owor6ZS2IDwgc3Ryb250aXVtOwor5piDIDwgYWZ0ZXJub29uOwor5ZSqIDwgdG9cLXJlY2l0ZTsKK+WEhyA8IGluZ2VuaW91czsKK+mytCA8IGZpc2hcLWd1dHM7CivpsoUgPCBmaXNoXC1uYW1lOwor6ZONIDwgYmVyeWxsaXVtOwor54azIDwgdG9cLXNwcmVhZDsKK+iDjSA8IGd1YW5pZGluZTsKK+mykCA8IGdsb2JlZmlzaDsKK+mFkCA8IGFuaHlkcmlkZTsKK+ihhCA8IGVwaXN0YXhpczsKK+efpyA8IG11Y2hcLW1vcmU7CivmgqsgPCBzaW5jZXJpdHk7CivohqYgPCBwaG9zcGhpbmU7CivnvKMgPCBmaW5lXC1zaWxrOwor5a6EIDwgYVwtdHJhaXRvcjsKK+mYjCA8IHdlblwteGlhbmc7CivphZ4gPCBwaHRoYWxlaW47CivmlLbnuK4gPCBwdWxsXC1iYWNrOwor5aSa55aRIDwgc2tlcHRpY2FsOwor5ZCI5YqbIDwgY29vcGVyYXRlOwor54iG54K4IDwgZXhwbG9zaW9uOwor57iu5bCP5qih5Z6LIDwgbWluaWF0dXJlOwor5Ymy6I2JIDwgbW93XC1ncmFzczsKK+iuiuWljyA8IHZhcmlhdGlvbjsKK+mgmOWPlyA8IHRvXC1hY2NlcHQ7Civku6XlvJfmiYDmm7ggPCBlcGhlc2lhbnM7Civli5Xnm6ogPCBjb21tb3Rpb247Civlj6/lk4AgPCBtaXNlcmFibHk7CivmspLmnInlvaLni4AgPCBzaGFwZWxlc3M7Civoj6DomL8gPCBwaW5lYXBwbGU7CivnqanlrprmgKcgPCBzdGFiaWxpdHk7CivljprluqYgPCB0aGlja25lc3M7CivpgJ/oqJggPCBzaG9ydGhhbmQ7CivnlKjmiLbmlbjmk5ogPCB1c2VyXC1kYXRhOwor5b6Q5q2lIDwgdG9cLXN0cm9sbDsKK+ilv+mdoiA8IHdlc3RcLXNpZGU7CivpgKPmjqXlmaggPCBjb25uZWN0b3I7CivmkZjpmaQgPCB0b1wtZXhjaXNlOwor6K2m5a6YIDwgY29uc3RhYmxlOwor6ZaL55m85Lq65ZOhIDwgZGV2ZWxvcGVyOwor5ZCN5Lq6IDwgcGVyc29uYWdlOwor6JST5bu2IDwgdG9cLWV4dGVuZDsKK+WcsOizquWtuOWutiA8IGdlb2xvZ2lzdDsKK+WQjOS6iyA8IGNvbGxlYWd1ZTsKK+W9ouWuuei+rSA8IGFkamVjdGl2ZTsKK+WNiuaXlyA8IGhhbGZcLW1hc3Q7Civph5HljKAgPCBnb2xkc21pdGg7CivlkIzkuIAgPCBpZGVudGljYWw7Civlj6/lvpfliLAgPCBhdmFpbGFibGU7CivnorDlt6cgPCBieVwtY2hhbmNlOwor56eR5a245a62IDwgc2NpZW50aXN0Owor5pmu5Y+KIDwgd2lkZXNwZWFkOwor6Kit572uIDwgdG9cLXNldFwtdXA7Civlv5fpoZjogIUgPCB2b2x1bnRlZXI7Civnh5Lnh6wgPCBidXJuXC1kb3duOwor5piO5bm0IDwgbmV4dFwteWVhcjsKK+aTpumCiueQgyA8IGVkZ2VcLWJhbGw7Civlj6TlhbggPCBjbGFzc2ljYWw7Civlj6vlgZogPCBiZVwtY2FsbGVkOwor57ag6Iy2IDwgZ3JlZW5cLXRlYTsKK+aAjum6vOaooyA8IGhvd1wtYWJvdXQ7CivmiYDmnInmrIogPCBvd25lcnNoaXA7CivliKXomZUgPCBlbHNld2hlcmU7Civov7Doqp4gPCBwcmVkaWNhdGU7Civnmb3loLHntJkgPCBuZXdzcHJpbnQ7CivpmLLooZsgPCB0b1wtZGVmZW5kOwor6KiO6KuW5pyDIDwgc3ltcG9zaXVtOwor5pWZ54i2IDwgZ29kZmF0aGVyOwor5Y+X5YOxIDwgbWVyY2VuYXJ5Owor6Kqe5rqQIDwgZXR5bW9sb2d5Owor6Kqq5rOVIDwgc3RhdGVtZW50Owor5Z+O6ZaAIDwgY2l0eVwtZ2F0ZTsKK+aOpeWPl+iAhSA8IHJlY2lwaWVudDsKK+eUn+eJqeWtuOWutiA8IGJpb2xvZ2lzdDsKK+mdiOaVjyA8IHNlbnNpdGl2ZTsKK+WKqeeQhiA8IGFzc2lzdGFudDsKK+avj+WAi+S6uiA8IGV2ZXJ5Ym9keTsKK+S4jeiCsuaApyA8IHN0ZXJpbGl0eTsKK+aqouafpeWToSA8IGluc3BlY3RvcjsKK+irluaWtyA8IGluZmVyZW5jZTsKK+WPl+S6iyA8IHJlY2VwaWVudDsKK+eGrOeFjiA8IHN1ZmZlcmluZzsKK+WIhuiZnyA8IHNlbWljb2xvbjsKK+WOn+WRiiA8IGNvbXBsYWludDsKK+eZvemtmiA8IHdoaXRlZmlzaDsKK+ihqOePvuWeiyA8IHBoZW5vdHlwZTsKK+WkmuaooyA8IGRpdmVyc2l0eTsKK+WkmuaooSA8IG11bHRpbW9kZTsKK+eEoeiDvSA8IGluYWJpbGl0eTsKK+eZvemrlCA8IGxlYW5cLXR5cGU7CivmqJnpq5ggPCBlbGV2YXRpb247CivlppblqpogPCBzZWR1Y3RpdmU7CivnhKHogbIgPCBub2lzZWxlc3M7CivljYHlubQgPCB0ZW5cLXllYXJzOwor5Y2K5bO2IDwgcGVuaW5zdWxhOwor5LiN5Y+v56Oo5ruFIDwgaW5kZWxpYmxlOwor6YCj57qMIDwgY29udGlub3VzOwor5Y6f5YmHIDwgcHJpbmNpcGxlOwor55qu6Z6L5YygIDwgc2hvZW1ha2VyOwor6Zi/5q+U6KW/5bC85LqeIDwgYWJ5c3NpbmlhOwor6YSt5beeIDwgemhlbmd6aG91Owor6KiI562WIDwgc3RyYXRhZ2VtOwor5bqV57eaIDwgdW5kZXJsaW5lOwor6ZaD6Zu7IDwgbGlnaHRuaW5nOwor5byV5rihIDwgZXh0cmFkaXRlOwor5L+d6K236ICFIDwgcHJvdGVjdG9yOwor5pWZ5q+NIDwgZ29kbW90aGVyOwor5paH5piOIDwgY2l2aWxpemVkOwor5YG95ZCb5a2QIDwgaHlwb2NyeXRlOwor55u06Ka6IDwgaW50dWl0aW9uOwor5aOB54eIIDwgd2FsbFwtbGFtcDsKK+eZvOmfsyA8IHByb25vdW5jZTsKK+WOmOWFiyA8IGNlbnRpZ3JhbTsKK+mmrOi5hOmQtSA8IGhvcnNlc2hvZTsKK+aTlOaetuW6iiA8IHN0cmV0Y2hlcjsKK+eEoeexnyA8IHNjb3VuZHJlbDsKK+WKoOa3sSA8IHRvXC1kZWVwZW47Civln7fooYwgPCBpbXBsZW1lbnQ7Civpm7nmmrQgPCBoYWlsc3Rvcm07Civnorrkv6EgPCBjb25maWRlbnQ7CivpgqPmqKMgPCB0aGF0XC1raW5kOwor5YWs6YeMIDwga2lsb21ldGVyOwor6Kqg5pGvIDwgc2luY2VyZWx5Owor5beu6LedIDwgZGlzcGFyaXR5Owor5LiN5Lqm5qiC5LmOIDwgZXh0cmVtZWx5Owor6KWv6KOZIDwgcGV0dGljb2F0Owor6bC+6IagIDwgaXNpbmdsYXNzOwor5oyJ54Wn5a2X6Z2iIDwgbGl0ZXJhbGx5Owor6K2J5Lu2IDwgcGFwZXJ3b3JrOwor57Sw6I+MIDwgYmFjdGVyaWFsOwor6JK85aSpIDwgZmlybWFtZW50Owor5LiJ5YiG5LmL5LiAIDwgb25lXC10aGlyZDsKK+e3qeayliA8IHRvXC1idWZmZXI7CivpgbjmtL4gPCBzZXRcLWFwYXJ0Owor5LiN5a6M5ZaEIDwgaW1wZXJmZWN0Owor5aSn5b+XIDwgaGlnaFwtYWltczsKK+i8lOmfsyA8IGNvbnNvbmFudDsKK+W8teaPmiA8IHB1YmxpY2l6ZTsKK+ino+eivCA8IHRvXC1kZWNvZGU7Civmkq3nqK4gPCBzb3dcLXNlZWRzOwor5YyW5a24IDwgY2hlbWlzdHJ5Owor5aCx57SZIDwgbmV3c3BhcGVyOwor54Sh55+lIDwgaWdub3JhbmNlOwor5o6l6aeBIDwgdG9cLWFjY2VzczsKK+S4jeWPr+aVkeiXpSA8IGluY3VyYWJsZTsKK+W+iOWkmiA8IHZlcnlcLW1hbnk7CivogLbot6/mkpLlhrcgPCBqZXJ1c2FsZW07Civpm5nmlrkgPCBiaWxhdGVyYWw7CivmmbTpm6jooaggPCBiYXJvbWV0ZXI7CivljYPnpqflubQgPCBtaWxsZW5pdW07CivplbfpgaAgPCBsb25nXC10ZXJtOwor5Y2D5ZGoIDwga2lsb2hlcnR6Owor6YGO5r++IDwgdG9cLWZpbHRlcjsKK+iku+eAhueahOipsSA8IGJsYXNwaGVteTsKK+Wlh+WmmSA8IGZhbnRhc3RpYzsKK+WGsOiTiyA8IGljZVwtc2hlZXQ7CivlnIvlhafmiLDniK0gPCBjaXZpbFwtd2FyOwor5Y2x5Zyw6aas5ouJIDwgZ3VhdGFtYWxhOwor6YGZ5risIDwgdGVsZW1ldHJ5Owor5o6l54+t5Lq6IDwgc3VjY2Vzc29yOwor6L6y6IiNIDwgZmFybWhvdXNlOwor5Ymq6LK857C/IDwgc2NyYXBib29rOwor5YGJ5pm25bKpIDwgcGVnbWF0aXRlOwor57SF6JOuIDwgcmVkXC1sb3R1czsKK+aMh+ekuuespiA8IGluZGljYXRvcjsKK+WFseitmCA8IGNvbnNlbnN1czsKK+WKoOWvhuW+jOeahCA8IGVuY3J5cHRlZDsKK+acieaUu+aTiuaApyA8IG9mZmVuc2l2ZTsKK+Wkp+WwjyA8IGRpbWVuc2lvbjsKK+aDoeWQjeaYreW9sCA8IG5vdG9yaW91czsKK+S/neaDoOW4qyA8IGNvbWZvcnRlcjsKK+Wkp+WutiA8IGF1dGhvcml0eTsKK+eIreWPliA8IGZpZ2h0XC1mb3I7Civmr4/lpKkgPCBldmVyeVwtZGF5Owor57aT5r+f5a245a62IDwgZWNvbm9taXN0Owor5pS75pOKIDwgdG9cLWF0dGFjazsKK+e0heiMtiA8IGJsYWNrXC10ZWE7CivmloflrZcgPCBjaGFyYWN0ZXI7CivluLjntqAgPCBldmVyZ3JlZW47Civmrpjlu6IgPCBkZWZvcm1pdHk7CivpmrHmmaYgPCBvYnNjdXJpdHk7Civlu7rnr4nluKsgPCBhcmNoaXRlY3Q7CivnhafmqKMgPCBhc1wtYmVmb3JlOwor5pa55ZCRIDwgZGlyZWN0aW9uOwor54Sw54GrIDwgZmlyZXdvcmtzOwor5pWR5oGpIDwgc2FsdmF0aW9uOwor6Zi/56m65Yqg55OcIDwgYWNvbmNhZ3VhOwor5Yqg5ouJ5aSq5pu4IDwgZ2FsYXRpYW5zOwor5b6M5YukIDwgbG9naXN0aWNzOwor5aeU5ZOh5pyDIDwgY29tbWl0dGVlOwor57ay6Zqb6Imy5oOFIDwgY3liZXJwb3JuOwor6L6m572qIDwgdG9cLXB1bmlzaDsKK+imgee3iiA8IGltcG9ydGFudDsKK+awkeS4uyA8IGRlbW9jcmFjeTsKK+WLmeWvpiA8IHByYWdtYXRpYzsKK+aOqOmKtyA8IHRvXC1tYXJrZXQ7CivlvZnloLEgPCB0b1wtcmVwb3J0Owor6KaB57SgIDwgZXNzZW50aWFsOwor6Iiq5rW36ICFIDwgbmF2aWdhdG9yOwor5aSi5aKDIDwgZHJlYW1sYW5kOwor6Kqy5aCCIDwgY2xhc3Nyb29tOwor5aCx55WMIDwgdGhlXC1wcmVzczsKK+WNgeS4gyA8IHNldmVudGVlbjsKK+eBq+iXpSA8IGd1bnBvd2RlcjsKK+iouuaWtyA8IGRpYWdub3NpczsKK+avq+WFiyA8IG1pbGxpZ3JhbTsKK+WJr+acrCA8IGR1cGxpY2F0ZTsKK+iKseeyiemBjuaVjyA8IGhheVwtZmV2ZXI7Civlu6Pmkq0gPCBicm9hZGNhc3Q7CivmlZflsYAgPCBsb3N0XC1nYW1lOwor6YOK5aSWIDwgb3V0c2tpcnRzOwor55m96KCfIDwgd2hpdGVcLXdheDsKK+WHuuePviA8IHRvXC1hcHBlYXI7CivlhrDns5UgPCBpY2VcLWNyZWFtOwor5YWB6KixIDwgdG9cLXBlcm1pdDsKK+Wwj+WQg+W6lyA8IHNuYWNrXC1iYXI7Civlvozku6MgPCBwb3N0ZXJpdHk7Civntq3lo6vljaEgPCB2aXNhXC1jYXJkOwor54K65pmC6YGO5pepIDwgcHJlbWF0dXJlOwor6IGv5ZCI57WE57mUIDwgc3luZGljYXRlOwor5qeL6YCgIDwgc3RydWN0dXJlOwor6b2zIDwgdG9vdGhsZXNzOwor6b2tIDwgdG9vdGhhY2hlOwor5aW95aWH5b+DIDwgY3VyaW9zaXR5Owor5Yu+5YqDIDwgdG9cLXNrZXRjaDsKK+S6uueJqeaPj+WvqyA8IHBvcnRyYXlhbDsKK+WinuaPtCA8IHJlaW5mb3JjZTsKK+eEoeavlCA8IG1hdGNobGVzczsKK+aVmeWjqyA8IGNodXJjaG1hbjsKK+asoeaVuCA8IGZyZXF1ZW5jeTsKK+Wkp+WKmyA8IGVuZXJnZXRpYzsKK+aUv+ayu+aApyA8IHBvbGl0aWNhbDsKK+a7kem8oOWiiiA8IG1vdXNlXC1wYWQ7Civlo6/lpKcgPCB0b1wtZXhwYW5kOwor6be+IDwgYVwtc3dhbGxvdzsKK+m3rSA8IHdhdGVyXC1oZW47Civmi5znianmlZkgPCBmZXRpc2hpc207CivpgbXlvqogPCB0b1wtZm9sbG93Owor6belIDwgdGhlXC1lZ3JldDsKK+mBqeaEjyA8IGFncmVlYWJsZTsKK+m3jyA8IGJpcmRcLW5hbWU7CivptqEgPCBjcm9zc2JpbGw7Civoqr/lgZwgPCByZWNvbmNpbGU7CivptbcgPCBjb1wtd29ya2VyOwor5bmy5raJIDwgaW50ZXJmZXJlOwor6bOiIDwgc25ha2VoZWFkOwor56S+5pyD5Li7576p6ICFIDwgc29jaWFsaXN0Owor5L2O6YCf546HIDwgbG93XC1zcGVlZDsKK+myjiA8IGtpbmdcLWNyYWI7CivpsbcgPCBjcm9jb2RpbGU7Civli6Tli4kgPCBkaWxpZ2VuY2U7CivmrL7lvoUgPCBlbnRlcnRhaW47Civku6TkurrmrL3kvakgPCBhZG1pcmFibGU7Civpr6AgPCB0b1wtY29uZmVyOwor55m86Iq9IDwgZ2VybWluYXRlOwor6a6mIDwgc25ha2VmaXNoOwor5pKl5q2jIDwgc2V0XC1yaWdodDsKK+mtniA8IGZpc2hcLXRyYXA7CivpmL/lpYfph4zmlq8gPCBhZXNjaHlsdXM7Civlo73lkb0gPCBsaWZlXC1zcGFuOwor6ayWIDwgd2lsZFwtaGFpcjsKK+mrpyA8IGxvbmdcLWhhaXI7Civpq5cgPCB0aGVcLXNrdWxsOwor5o+Q5pGp5aSq5ZCO5pu4IDwgMlwtdGltb3RoeTsKK+mqrSA8IHNoaW5cLWJvbmU7CivmlL/msrvlsYAgPCBwb2xpdGJ1cm87CivntpPmlocgPCBzY3JpcHR1cmU7Civpm7bllK7llYYgPCB0cmFkZXNtYW47CivmlbLlhaUgPCB0b1wta2V5XC1pbjsKK+maiuW9oiA8IGZvcm1hdGlvbjsKK+mopyA8IHRhblwtaG9yc2U7CivpqJAgPCB0b1wtdmVyaXR5Owor5aSp5LiKIDwgY2VsZXN0aWFsOwor6ae4IDwgZ2FsbG9waW5nOwor5pS/5rK75a62IDwgc3RhdGVzbWFuOwor6aWgIDwgcmljZVwtY2FrZTsKK+i+pueQhiA8IHRvXC1oYW5kbGU7CivppLEgPCBkcnlcLWdvb2RzOwor5a6J5YWo5bi2IDwgc2VhdFwtYmVsdDsKK+Wtn+WKoOaLieiqniA8IGJlbmdhbGVzZTsKK+iou+WumiA8IGJlXC1kb29tZWQ7CivnhKHmlbggPCBjb3VudGxlc3M7CivmlLblm54gPCB0b1wtcmVnYWluOwor5aSW5LqkIDwgZGlwbG9tYWN5Owor6YGO5bqmIDwgZXhjZWVkaW5nOwor5pON5oyBIDwgdG9cLW1hbmFnZTsKK+eZu+W7o+WRiiA8IGFkdmVydGlzZTsKK+aqoua4rCA8IHRvXC1kZXRlY3Q7Civnn67lh7MgPCBsb3dcLXN0b29sOwor6ZqO5bGkIDwgaGllcmFyY2h5Owor6Z2qIDwgdG9cLWNvYmJsZTsKK+mmmeaqs+mFkiA8IGNoYW1wYWduZTsKK+mdpyA8IHdhc2hcLWZhY2U7Civoh7Ppq5ggPCBwYXJhbW91bnQ7CivpnYAgPCBkcml6emxpbmc7CivmjpLooYwgPCBzZW5pb3JpdHk7CivpnIIgPCBmaW5lXC1yYWluOwor5YmN5b6AIDwgbGVhdmVcLWZvcjsKK+aVmeWEgCA8IG9yZGluYW5jZTsKK+apn+aisOijnee9riA8IG1hY2hpbmVyeTsKK+magyA8IHRvXC1leGNlZWQ7CivlorPlopMgPCBzZXB1bGNoZXI7CivntpzlkIjmgKcgPCBzeW50aGVzaXM7Civlhaznp4kgPCBraWxvbGl0ZXI7CivpmLvmkpMgPCB0b1wtdGh3YXJ0Owor5YKz6YCBIDwgdG9cLWNvbnZleTsKK+mWuiA8IGxvb2tcLWRvd247Civpgbrlm5EgPCB0ZXN0YW1lbnQ7CivmraHlkbwgPCBjaGVlclwtZm9yOwor6ZSrIDwgYmVya2VsaXVtOwor6ZSGIDwgemlyY29uaXVtOwor6ZK2IDwgY29sdW1iaXVtOwor6YGK5a6iIDwgdHJhdmVsbGVyOwor6ZKMIDwgcnV0aGVuaXVtOwor5pGB6YeY5YWSIDwgdGh1bWJ0YWNrOwor6ZKBIDwgYVwtbWF0dG9jazsKK+aWh+WFt+WVhiA8IHN0YXRpb25lcjsKK+aWsOWKoOWdoSA8IHNpbmdhcG9yZTsKK+WfjueJhiA8IGNpdHlcLXdhbGw7CivlhafnorwgPCB0b1wtZW5jb2RlOwor6ZC7IDwgZHJ1bXN0aWNrOwor5pGn5q6YIDwgdG9cLXJhdmFnZTsKK+aSnuaTiiA8IHRvXC1zdHJpa2U7CivliqDliocgPCBhZ2dyYXZhdGU7Civpj5sgPCB0b1wtcG9saXNoOwor6Zi75oqXIDwgaW1wZWRhbmNlOwor5o2Q6LSIIDwgdG9cLWRvbmF0ZTsKK+iHqumhmCA8IHZvbHVudGFyeTsKK+mOvyA8IG5lcHR1bml1bTsKK+aoueeariA8IHRyZWVcLWJhcms7Civpjp4gPCBwbG93c2hhcmU7Civpmqjlk6EgPCBhdHRlbmRhbnQ7CivlhYnnrYYgPCBsaWdodFwtcGVuOwor5aCx5pSkIDwgbmV3c3N0YW5kOwor5Ye65pa8IDwgYmVcLWR1ZVwtdG87CivnhKHlvaIgPCBpbnZpc2libGU7Civoo53nva4gPCBlcXVpcG1lbnQ7CivpiIwgPCB0b1wtcGllcmNlOwor5pWF5LqLIDwgbmFycmF0aXZlOwor5YWx55SiIDwgY29tbXVuaXN0Owor5o6o57+7IDwgb3ZlcnRocm93Owor6aCY5LqL6aSoIDwgY29uc3VsYXRlOwor5ZyS6JedIDwgZ2FyZGVuaW5nOwor5YqD5YiGIDwgdG9cLWRpdmlkZTsKK+WCs+iomCA8IGJpb2dyYXBoeTsKK+i/t+aDkSA8IHRvXC1wdXp6bGU7CivliqDkuIogPCB0b1wtcHV0XC1pbjsKK+i8mCA8IGFcLWNhclwtcnV0Owor6YCa5a61IDwgb3Zlcm5pZ2h0Owor6LuEIDwgdG9cLWdvdmVybjsKK+i6lCA8IGZvbGxvd1wtaW47Civlu6PlgrMgPCBwcm9wYWdhdGU7CivnmbznlJ8gPCB0b1wtaGFwcGVuOwor6LepIDwgdG9cLXdhZGRsZTsKK+i2heiBr+e1kCA8IGh5cGVybGluazsKK+i2nSA8IHRvXC1wdXJzdWU7Civotb8gPCBsYXRlXC1zbG93Owor57WE5oiQIDwgY29tcG9uZW50Owor5o6l566hIDwgdGFrZVwtb3ZlcjsKK+ixtSA8IHlvdW5nXC1waWc7CivnuL3mnIPmnIPplbcgPCBwcmVzaWRlbnQ7CivpmoblhqwgPCBtaWR3aW50ZXI7Civlh7nluqYgPCBjb25jYXZpdHk7CivmvKvplbcgPCB2ZXJ5XC1sb25nOwor55WM6Z2iIDwgaW50ZXJmYWNlOwor5Ym15L2cIDwgdG9cLWNyZWF0ZTsKK+WIsOebruWJjeeCuuatoiA8IHVudGlsXC1ub3c7CivorYogPCB3cmFuZ2xpbmc7CivorYUgPCB3cmlnZ2xpbmc7Civoq50gPCBrbm93bGVkZ2U7Civmr6vnhKHnlpHllY8gPCBjZXJ0YWludHk7CivntpzlkIggPCBjb21wb3NpdGU7CivmiqvpnLIgPCB0b1wtcmV2ZWFsOwor55yL5b6FIDwgbG9va1wtdXBvbjsKK+mZt+WFpSA8IHNpbmtcLWludG87CivoobDokL0gPCBkZWNvbXBvc2U7CivmkqXlpY8gPCBwaXp6aWNhdG87Civov6vlrrMgPCBwZXJzZWN1dGU7CivpgLLljJYgPCBldm9sdXRpb247CivmtYHooYzmgKfmhJ/lhpIgPCBpbmZsdWVuemE7Civoo7IgPCB3YWlzdGNvYXQ7Civovq/miY0gPCBlbG9xdWVuY2U7Civoh6rosqAgPCBjb25jZWl0ZWQ7CivonowgPCBhXC1zdHJpcGVkOwor5biC5pS/IDwgbXVuaWNpcGFsOwor5YS854S2IDwganVzdFwtbGlrZTsKK+S/neeah+m7qCA8IHJveWFsaXN0czsKK+e1leWmmSA8IGV4cXVpc2l0ZTsKK+adseWMl+aWuSA8IG5vcnRoZWFzdDsKK+aKlemZjSA8IHN1cnJlbmRlcjsKK+ewveeroCA8IHNpZ25hdHVyZTsKK+iYniA8IHdpbGRcLXZpbmU7CivntoHljKogPCBraWRuYXBwZXI7CivnhKHlipsgPCBwb3dlcmxlc3M7Civlpb3okIrloaIgPCBob2xseXdvb2Q7Civmk5Tkv50gPCBndWFyYW50ZWU7CivmjqjnkIYgPCByZWFzb25pbmc7CivolZcgPCBsZXVjYWNlbmU7Civlm6DogIwgPCB0aGVyZWZvcmU7CivpgIblkJEgPCBiYWNrd2FyZHM7Civok4YgPCBzdHJhd1wtbWF0Owor5oyJ6JqKIDwgYW5vcGhlbGVzOwor5qij5qmfIDwgcHJvdG90eXBlOwor6JKiIDwgaGVkeXNhcnVtOwor5Yio5YawIDwgd2F0ZXJcLWljZTsKK+W4tuWvrCA8IGJhbmR3aWR0aDsKK+iRkyA8IHZlZ2V0YWJsZTsKK+eVsOitsCA8IG9iamVjdGlvbjsKK+imj+WumiA8IHByb3Zpc2lvbjsKK+WxlemWiyA8IHRvXC11bmZvbGQ7CivovKrmtYEgPCBhbHRlcm5hdGU7CivmjIHkuYXmgKcgPCBjb25zdGFuY3k7CivlgrPntbEgPCB0cmFkaXRpb247CivlgY/oposgPCBwcmVqdWRpY2U7Civnmb3ooYDnl4UgPCBsZXVrYWVtaWE7CivlhajkuJbnlYwgPCB3b3JsZHdpZGU7CivlnLDnkIYgPCBnZW9ncmFwaHk7CivlnLDnkIMgPCB0aGVcLWVhcnRoOwor6IuZIDwgYVwtcGlnXC1zdHk7CivoirwgPCB0b1wtY2hvb3NlOwor6ZmN5L2OIDwgdG9cLXJlZHVjZTsKK+S/nemaqiA8IGluc3VyYW5jZTsKK+S/nemanCA8IHRvXC1lbnN1cmU7CivoiaMgPCBzdGVyblwtb2FyOwor5aC05ZCIIDwgc2l0dWF0aW9uOwor6ImOIDwgZmFzdFwtYm9hdDsKK+WgseWRiiA8IHRvXC1pbmZvcm07CivoiJ0gPCBsaW5jaFwtcGluOwor6IiYIDwgYVwtbWFuc2lvbjsKK+iHryA8IHRvXC1wcmFpc2U7CivmvrPlpKfliKnkup4gPCBhdXN0cmFsaWE7CivlhazmlpcgPCBkZWNhbGl0ZXI7Civov5Tlm54gPCByZXR1cm5cLXRvOwor5aSn5a+r6Y6W5a6aIDwgY2Fwc1wtbG9jazsKK+WIhuWJsiA8IHRvXC1jdXRcLXVwOwor6IOmIDwgdGhlXC1uYXZlbDsKK+aJgemqqCA8IGZsYXRcLWJvbmU7CivogKUgPCBmYXJtXC10b29sOwor5762IDwgcmFua1wtb2RvcjsKK+S/nemPoiA8IGJvZHlndWFyZDsKK+i3kemMtiA8IHN0b3B3YXRjaDsKK+e0meWkviA8IHBhcGVyY2xpcDsKK+e9gSA8IGFcLWNpc3Rlcm47CivnmbzmmI4gPCB0b1wtaW52ZW50Owor5qih5pOsIDwgaW1pdGF0aW9uOwor5Y2K5bel5Y2K6K6AIDwgcGFydFwtd29yazsKK+a/gOeZvCA8IHRvXC1hcm91c2U7Civlho3luqYgPCBvbmNlXC1tb3JlOwor57O+5a+fIDwgdG9cLXBpY2tldDsKK+aLt+iKsSA8IHRvXC1lbWJvc3M7CivmiJHlgJHoh6rlt7EgPCBvdXJzZWx2ZXM7CivmvZvoiYcgPCBzdWJtYXJpbmU7Civov7fkvY8gPCBmYXNjaW5hdGU7Civoib7ngrcgPCBtb3hhXC1jb25lOwor5Zua56aBIDwgY2FwdGl2aXR5Owor57elIDwgc3dhZGRsaW5nOwor576F5b655pav54m5IDwgcm9jaGVzdGVyOwor5L6/6ZaAIDwgc2lkZVwtZG9vcjsKK+aKl+itsOiAhSA8IHByb3Rlc3RlcjsKK+iho+W4vemWkyA8IGNsb2Frcm9vbTsKK+S4gOWMuemmrCA8IG9uZVwtaG9yc2U7CivmnInmmYLlgJkgPCBzb21ldGltZXM7Civns7AgPCByaWNlXC1iYWxsOwor57OdIDwgc2NhdHRlcmVkOwor5YCZ6YG45Lq6IDwgY2FuZGlkYXRlOwor566h5bym5qiC5ZyYIDwgb3JjaGVzdHJhOwor5ZCR5YyX5ZywIDwgbm9ydGh3YXJkOwor57GoIDwgdHJvdXNzZWF1Owor5LiL5rG65b+DIDwgZGV0ZXJtaW5lOwor6KaP5Yu4IDwgdG9cLWFkdmlzZTsKK+ihqOeariA8IGVwaWRlcm1pczsKK+ihqOeZvSA8IHZpbmRpY2F0ZTsKK+eZveaXpeWBmuWkoiA8IGRheVwtZHJlYW07Civnq5UgPCBkZWNpbGl0ZXI7Civkv53orYnkurogPCBndWFyYW50b3I7Civnq4YgPCBleGhhdXN0ZWQ7CivnnIvlgZogPCByZWdhcmRcLWFzOwor56qLIDwgaW5cLWFcLWhvbGU7CivnqKwgPCBnbHV0aW5vdXM7CivkuIrmmJ/mnJ8gPCBsYXN0XC13ZWVrOwor5YWH5omLIDwgYXNzYWlsYW50Owor5a+s6aC7IDwgYnJvYWRiYW5kOwor6KW/5Y2XIDwgc291dGh3ZXN0Owor6KW/5YyXIDwgbm9ydGh3ZXN0Owor56S9IDwgYmxlc3NpbmdzOwor56SeIDwgXChtaW5lcmFsXCk7Civnsr7lt6cgPCBlbGFib3JhdGU7CivnrKzkuozljYEgPCB0d2VudGlldGg7CivltoTmlrAgPCBicmFuZFwtbmV3Owor56KGIDwgYXJyb3dcLXRpcDsKK+aJk+mAsiA8IHRvXC1icmVhY2g7CivnoKwgPCBiaWdcLXN0b25lOwor5YWs5a+4IDwgZGVjaW1ldGVyOwor5YWs5a+TIDwgYXBhcnRtZW50Owor5bi45Lu7IDwgcGVybWFuZW50Owor5YWJ5b2pIDwgaG9ub3JhYmxlOwor552h6YGO6aCtIDwgb3ZlcnNsZWVwOwor5oyH56S6IDwgcG9pbnRcLW91dDsKK+eclSA8IHJlc3RyYWludDsKK+eXheeQhiA8IHBhdGhvbG9neTsKK+S7u+S9leWFtuS7liA8IGFueVwtb3RoZXI7Civovpvli54gPCBsYWJvcmlvdXM7CivmkI3lo54gPCB0b1wtZGFtYWdlOwor55itIDwgYVwtd2hpdGxvdzsKK+eYnCA8IGFcLXBvbHlwdXM7Civlt7Tli5Lmlq/lnaYgPCBwYWxlc3RpbmU7Civnl6EgPCBhXC1kaXNlYXNlOwor5Yip5pyq6KiYIDwgbGV2aXRpY3VzOwor56ul5a2Q6LuNIDwgYm95XC1zY291dDsKK+eVsSA8IHRvXC1kZXRhaW47CivlmInoqLEgPCBmYXZvcmFibGU7CivnlYsgPCB0aWxsXC1sYW5kOwor5YWr5aSpIDwgZWlnaHRcLWRheTsKK+eUpiA8IGJlXC1yZWJvcm47Civnk7ggPCBoZWN0b2dyYW07Civmi5LntZUgPCB0b1wtcmVmdXNlOwor6KaB5LiNIDwgb3RoZXJ3aXNlOwor55K/IDwgZmluZVwtamFkZTsKK+aomeWumiA8IGRlbWFyY2F0ZTsKK+eRtCA8IHR3aW5cLWdlbXM7CivnkaMgPCBmcmFnbWVudHM7CivovLvlsIQgPCByYWRpYXRpb247Civlm5vljYHlha0gPCBmb3J0eVwtc2l4Owor5o6S5pS+IDwgZGlzY2hhcmdlOwor6auU54++IDwgdG9cLWVtYm9keTsKK+ihsOa4myA8IHRvXC13ZWFrZW47CivnsYPmnb8gPCBiYWNrYm9hcmQ7CivlnKjvuY3ml4HpgoogPCBhbG9uZ3NpZGU7Civppqzpnq0gPCBob3JzZXdoaXA7CivnjYAgPCB0b1wtZ2F0aGVyOwor56ys5Lmd5Y2BIDwgbmluZXRpZXRoOwor54uzIDwgYXJtYWRpbGxvOwor54e2IDwgdG9cLXNjb3JjaDsKK+eVouernyA8IGFmdGVyXC1hbGw7Civnhr8gPCBicmlsbGlhbnQ7CivlhYjopovkuYvmmI4gPCBmb3Jlc2lnaHQ7CivkvY7pmo4gPCBsb3dcLWxldmVsOwor5omA6KyCIDwgc29cLWNhbGxlZDsKK+a9sOeImyA8IHRvXC1mZXN0ZXI7CivlhLLlrZggPCBzdG9ja3BpbGU7Civou4rliY3nh4ggPCBoZWFkbGlnaHQ7Civmv6kgPCBwb3VyXC1kb3duOwor5o6b5b+1IDwgY29uY2VybmVkOwor5a6H6Iiq5ZOhIDwgYXN0cm9uYXV0Owor6L2f5YuVIDwgc2Vuc2F0aW9uOwor6Ie654eIIDwgZGVza1wtbGFtcDsKK+S9v+WbsOeqmCA8IGVtYmFycmFzczsKK+a5vCA8IGJsYWNrXC1tdWQ7CivmuYUgPCBib2lsXC1zaWxrOwor5repIDwgcGFzc1wtb3ZlcjsKK+WvpuizqiA8IHN1YnN0YW5jZTsKK+maqOS5i+iAjOW+jCA8IGZyb21cLXRoYXQ7CivmtrcgPCByYWluc3Rvcm07CivmtJEgPCB3aGlybHBvb2w7Civlt6flhYvlipsgPCBjaG9jb2xhdGU7CivmnInpm4Tlv4MgPCBhbWJpdGlvdXM7CivmroggPCBpbmZlcnRpbGU7CivmrJUgPCB0cmVlXC1uYW1lOwor5qSN54mpIDwgYm90YW5pY2FsOwor56m66ZiyIDwgYWlyXC1mb3JjZTsKK+WFpeS+tSA8IHRvXC1pbnZhZGU7CivomZXnkIblmaggPCBwcm9jZXNzb3I7CivkuLvnrqHkurrlk6EgPCBleGVjdXRpdmU7CivmqZogPCB0YWxsXC10cmVlOwor5YWs5LiIIDwgZGVjYW1ldGVyOwor6Ly45Ye6IDwgdG9cLWV4cG9ydDsKK+amqiA8IGhlYWRib2FyZDsKK+efpeabtOmzpSA8IHJlZGJyZWFzdDsKK+WVn+ekuuiAhSA8IHJldmVsYXRvcjsKK+i8uOWFpSA8IHRvXC1pbXBvcnQ7CivnrYnnrYkgPCBldFwtY2V0ZXJhOwor56ys5LiJ5Y2BIDwgdGhpcnRpZXRoOwor5qOWIDwgZG9vclwtc3RvcDsKK+ainCA8IGNob3BzdGljazsKK+a/gOaAkiA8IGluZnVyaWF0ZTsKK+agsSA8IGxhcmdlXC1wZWc7CivmoK0gPCBraW5nXC1wb3N0Owor5qCSIDwgY3Jvc3NcLWJhcjsKK+WBnOaziiA8IGFuY2hvcmFnZTsKK+afiCA8IGNvbnRhaW5lcjsKK+aemSA8IHRyZWVcLWtub3Q7Civnmb3pjqLnpKYgPCBzY2hlZWxpdGU7CivmnJ4gPCBmdWxsXC15ZWFyOwor5omL5o+Q5YyFIDwgXChoYW5kXCliYWc7CivmioDooZPmgKcgPCB0ZWNobmljYWw7CivmvLLmva4gPCBoaWdoXC10aWRlOwor5pqNIDwgc3Vuc3Ryb2tlOwor5a626K2cIDwgZ2VuZWFsb2d5Owor6ama55WwIDwgYW1hemVtZW50Owor6LyU5YqpIDwgdG9cLWFzc2lzdDsKK+aXqiA8IHVuaXRlZFwtaW47Civmj5DkvpsgPCB0b1wtc3VwcGx5Owor5LiN6Kqg5a+mIDwgZGlzaG9uZXN0Owor6LGM6LGG57KlIDwgcGVhXC1ncnVlbDsKK+iuiua1geWZqCA8IGNvbnZlcnRlcjsKK+aUiyA8IHRvXC1jbHV0Y2g7CivmlIMgPCBwcmVjZWRpbmc7Civmk5AgPCB0b1wtcHV0XC1vbjsKK+mrlOaTjSA8IGd5bW5hc3RpYzsKK+aRvSA8IHRocm93XC1vdXQ7Civmj5DmkanlpKrliY3mm7ggPCAxXC10aW1vdGh5Owor5pGuIDwgdG9cLXJhdHRsZTsKK+aPpSA8IHNjcmF0Y2hlcjsKK+S+v+euiyA8IG5vdGVwYXBlcjsKK+iBlumkkCA8IHNhY3JhbWVudDsKK+iyoeWLmeenmOabuCA8IHRyZWFzdXJlcjsKK+aJueeZvCA8IHdob2xlc2FsZTsKK+i2lee3iiA8IGh1cnJpZWRseTsKK+aJs+mBk+WToSA8IHBvaW50c21hbjsKK+aJpCA8IHRvXC10aHJ1c3Q7CivpqqjmnrYgPCBmcmFtZXdvcms7CivmiJwgPCB0b1wtc2NyYXBlOwor5YG15o6iIDwgZGV0ZWN0aXZlOwor5YWp5pif5pyfIDwgZm9ydG5pZ2h0Owor5oyR5oiwIDwgY2hhbGxlbmdlOwor5qC85byP5YyWIDwgdG9cLWZvcm1hdDsKK+iiq+WRiiA8IGRlZmVuZGFudDsKK+azouWIqeWwvOilv+S6niA8IHBvbHluZXNpYTsKK+aCgSA8IGlycml0YWJsZTsKK+aBkSA8IHRvXC1jaGFuZ2U7CivmgLogPCB0b1wtZW5kdXJlOwor5oCeIDwgdG9cLWdyaWV2ZTsKK+aAlyA8IG9ic2VydmFudDsKK+aOoeefs+WgtCA8IHN0b25lXC1waXQ7CivliqDli5Lmr5QgPCBjYXJpYmJlYW47Civpm7vloLHmqZ8gPCB0ZWxlZ3JhcGg7Civosp3poZ4gPCBzaGVsbGZpc2g7CivlnKjlhacgPCBpbmNsdWRpbmc7Civmi7/miYsgPCBleHBlcnRcLWluOwor5bel5L2c6KGoIDwgd29ya3NoZWV0Owor5pq06aKo6ZuqIDwgc25vd3N0b3JtOwor56uK6IG9IDwgZWF2ZXNkcm9wOwor5bu+IDwgdHdvXC1oYW5kczsKK+W6iSA8IGFcLXZpbGxhZ2U7CivluakgPCB0cmFwcGluZ3M7CivluZkgPCBhXC1jdXJ0YWluOwor5a6/6IiNIDwgZG9ybWl0b3J5Owor5bGx5rC0IDwgbGFuZHNjYXBlOwor5Zub5aSpIDwgZm91clwtZGF5czsKK+aMuuWlvSA8IHZlcnlcLWdvb2Q7CivnsL3lhaUgPCB0b1wtbG9nXC1vbjsKK+mmrOiDjCA8IGhvcnNlYmFjazsKK+mpleawoyA8IGFycm9nYW5jZTsKK+eWkeW/gyA8IHN1c3BpY2lvbjsKK+a4uuiMqyA8IHVuY2VydGFpbjsKK+WvvSA8IGFcLWhhbmRmdWw7CivmloflrZfmqpQgPCB0ZXh0XC1maWxlOwor5a+YIDwgcHV0XC1hc2lkZTsKK+a/gOWLlSA8IHRvXC1leGNpdGU7Civlq5sgPCBjb21wbGlhbnQ7CivlqqwgPCBnb3Zlcm5lc3M7CivlqpUgPCB1bmRlY2lkZWQ7Civmt7voo5wgPCBmaWxsXC1cKHVwXCk7Civosr/mmJPmiLAgPCB0cmFkZVwtd2FyOwor5aWJ5om/6ICFIDwgZmxhdHRlcmVyOwor55Sf6IKy6IO95YqbIDwgZmVydGlsaXR5Owor5L+u5q2jIDwgdG9cLXJldmlzZTsKK+aMh+aPruiAhSA8IGNvbmR1Y3RvcjsKK+WkjCA8IHRvXC1kYXdkbGU7Civmn5DomZUgPCBzb21ld2hlcmU7CivloZ0gPCBmbGF0XC1iYW5rOwor5Y+D6ICD5pu4IDwgcmVmZXJlbmNlOwor5YWx5Lqr6Luf6auUIDwgc2hhcmV3YXJlOwor6LKo6LyqIDwgZnJlaWdodGVyOwor5Y2K6KGw5pyfIDwgaGFsZlwtbGlmZTsKK+WciiA8IHJlc3RcLXJvb207Civpq5TlnJggPCBjb21tdW5pdHk7CivmirXmipcgPCB0b1wtcmVzaXN0Owor5LiN5Y+X5q2h6L+OIDwgdW53ZWxjb21lOwor5ZmBIDwgbmFzdGluZXNzOwor6aKx6aKoIDwgaHVycmljYW5lOwor5ZiRIDwgdG9cLW1lbmFjZTsKK+aLieaWkOeJuSA8IGxhZmF5ZXR0ZTsKK+i0lue9qiA8IGF0b25lbWVudDsKK+WvteeJqSA8IGhvdXNlXC1wZXQ7CivogZboqpUgPCBjaHJpc3RtYXM7Civlk6sgPCB0b1wtY2Fqb2xlOwor5ZK1IDwgdG9cLXJldmlsZTsKK+S4jee1kOaenCA8IGZydWl0bGVzczsKK+WRpyA8IHRvXC1yZWJ1a2U7CivlgYflrpogPCB0b1wtYXNzdW1lOwor55Sz6KuL5Lq6IDwgYXBwbGljYW50Owor6KGM5YuVIDwgb3BlcmF0aW9uOwor5Li76auUIDwgbWFpblwtcGFydDsKK+aJi+azlSA8IHRlY2huaXF1ZTsKK+a2iOmBoyA8IGFtdXNlbWVudDsKK+WHuueJiOiAhSA8IHB1Ymxpc2hlcjsKK+WPhSA8IHRvXC1jb3VuZWw7CivljpMgPCBwcmVjaXBpY2U7Civlh7nlh7jljbDliLcgPCBlbWJvc3Npbmc7CivlsLHmpa0gPCBnZXRcLWFcLWpvYjsKK+eWhuWfnyA8IHRlcnJpdG9yeTsKK+acrOaYn+acnyA8IHRoaXNcLXdlZWs7CivljJggPCB0aGVcLWJyYWluOwor5YupIDwgd29ya1wtaGFyZDsKK+aAquS4jeW+lyA8IG5vXC13b25kZXI7CivmkpLpg73oqbLkurogPCBzYWRkdWNlZXM7Civmib/mk5QgPCB1bmRlcnRha2U7CivliJQgPCBzY29vcFwtb3V0Owor6Ia95bCPIDwgY293YXJkaWNlOwor5Ye3IDwgZGlydFwtY2xvZDsKK+WHmSA8IGFuXC1pY2ljbGU7CivlibXpgKDlipsgPCBpbmdlbnVpdHk7CivlsazmgKcgPCBhdHRyaWJ1dGU7CivlhYcgPCBhdHJvY2lvdXM7CivkuLvpoIEgPCBob21lXC1wYWdlOwor5Y+v5a655b+NIDwgdG9sZXJhYmxlOwor5pyD6Z2iIDwgbWVldFwtd2l0aDsKK+WCuiA8IHRvXC1oaW5kZXI7CivmiJDngrogPCB0b1wtYmVjb21lOwor5Lqk6Kq8IDwgY29tbXVuaW9uOwor5ZyW5pu4566h55CG5ZOhIDwgbGlicmFyaWFuOwor5Z+65pys5LiKIDwgYmFzaWNhbGx5Owor5L6OIDwgdG9cLXNvb3RoZTsKK+S8uyA8IG1lc3NlbmdlcjsKK+S8iyA8IGRlY2VwdGl2ZTsKK+a9m+WKmyA8IHBvdGVudGlhbDsKK+eou+iNieS6uiA8IHNjYXJlY3JvdzsKK+WtuOerpSA8IHNjaG9vbGJveTsKK+WkmueUqOaItiA8IG11bHRpdXNlcjsKK+iHquWLlSA8IGF1dG9tYXRpYzsKK+WFseeUouS4u+e+qSA8IGNvbW11bmlzbTsKK+S2syA8IHRvXC1sb29rdXA7CivktpEgPCB0b1wtc25lZXplOwor6KCV5YuVIDwgdG9cLXdpZ2dsZTsKK+aJk+aVlyA8IHRvXC1kZWZlYXQ7CivosarosawgPCBwb3JjdXBpbmU7CivkuI3ku6XngrrnhLYgPCBvYmplY3RcLXRvOwor5LO6IDwgdGhlXC1xdWFpbDsKK+a1gemHjyA8IGZsb3dcLXJhdGU7CivksqggPCB3aWxkXC1zd2FuOwor56S+5pyD5Li7576pIDwgc29jaWFsaXNtOwor5LGIIDwgZmlzaFwtcHVscDsKK+SwpSA8IGFcLWN5Y2xvbmU7Civos5zntaYgPCB0b1wtYmVzdG93Owor6Jyc5pyI5YGH5pyfIDwgaG9uZXltb29uOwor5K+mIDwgdGlueVwtYm9uZTsKK+SunCA8IHRvXC1nYWxsb3A7Civmi5vli58gPCB0b1wtcmVjdWl0Owor5K2sIDwgdG9cLWtvd3RvdzsKK+WwjeaWvCA8IHJlZ2FyZGluZzsKK+StmyA8IHRhc3RlbGVzczsKK+StkSA8IGluY29ycnVwdDsKK+WQjOePreWQjOWtuCA8IGNsYXNzbWF0ZTsKK+SstiA8IHRvXC1zdHJhdmU7Civkq7sgPCBhXC10eXBob29uOwor5KuUIDwgYVwtc2VydmFudDsKK+S4iumdoiA8IG9uXC10b3BcLW9mOwor57695q+b55CDIDwgYmFkbWludG9uOwor5KmmIDwgdGhlXC1yZWluczsKK+S6lOiZnyA8IHRoZVwtZmlmdGg7CivkqK0gPCB0aGVcLXNraWVzOwor5KiNIDwgZGVlcFwtcG9uZDsKK+SmtSA8IGluY2FwYWJsZTsKK+SmrCA8IGFcLXZhY2FuY3k7CivkpoYgPCBhXC1iaWdcLWhvZTsKK+aLhuWNuCA8IHRvXC11bmxvYWQ7CivmlZHorbfou4ogPCBhbWJ1bGFuY2U7Civom4vnmb0gPCBlZ2dcLXdoaXRlOwor56ys5Y2B5YWtIDwgc2l4dGVlbnRoOwor5KKxIDwgdG9cLXNsaWdodDsKK+SinyA8IHRvXC10cmF2ZWw7CivlkJ7po58gPCB0b1wtZGV2b3VyOwor5KKNIDwgdG9cLWhhc3RlbjsKK+S9v+eUn+awoyA8IGRpc3BsZWFzZTsKK+iDg+eCjiA8IGdhc3RyaXRpczsKK+WwjeaKlyA8IHdpdGhzdGFuZDsKK+SgsiA8IHRvXC1saXN0ZW47CivkoK8gPCB0b1wtYXNjZW5kOwor5KCuIDwgdG9cLXByYW5jZTsKK+SfuyA8IGJhcmVcLWZlZXQ7Civkn54gPCB0b1wtZmFsdGVyOwor5LiN5YWs5q2jIDwgaW5qdXN0aWNlOwor6ISr5o6JIDwgc3RyaXBcLW9mZjsKK+mmmea4ryA8IGhvbmdcLWtvbmc7Civkn4wgPCBkaXZlcmdpbmc7CivknrwgPCB0b1wtZXNjYXBlOwor5J6SIDwgcmVkXC1jb2xvcjsKK+SekCA8IHBsZW50aWZ1bDsKK+SeiSA8IGFcLXN1cnBsdXM7CivknK0gPCB0b1wtZHJlZGdlOwor5a+m5pmCIDwgcmVhbFwtdGltZTsKK+iCuueCjiA8IHBuZXVtb25pYTsKK+ScnyA8IHRvXC12ZXJpZnk7CivlhYnlsITnt5ogPCBsaWdodFwtcmF5Owor5Ju7IDwgdG9cLWluZHVjZTsKK+SbuSA8IHRvXC1hY2N1c2U7Civkm7MgPCB0b1wtbWFsaWduOwor5JusIDwgYmFieVwtdGFsazsKK+SbqiA8IGxvcXVhY2l0eTsKK+SbiyA8IHRvXC1zY2hlbWU7Civkm4EgPCB0b1wtbXVybXVyOwor5oW256WdIDwgY2VsZWJyYXRlOwor5Jm4IDwgdG9cLW9idGFpbjsKK+WkluWci+S6uiA8IGZvcmVpZ25lcjsKK+SYvCA8IHN0b2NraW5nczsKK+WusOauuiA8IHNsYXVnaHRlcjsKK+esrOWNgeS6lCA8IGZpZnRlZW50aDsKK+SYkSA8IHRoZVwtcHVsc2U7CivklakgPCBkcnlcLWZydWl0Owor5rWq6JWpIDwgdG9cLWxvaXRlcjsKK+SUsyA8IGNoaWNrbGluZzsKK+STsCA8IGFic2ludGhpbjsKK+afkOeJqSA8IHNvbWV0aGluZzsKK+SSiiA8IGFcLXBhdGllbnQ7CivkkaogPCBhXC1zYWlsaW5nOwor5JGTIDwgYVwtbG9va291dDsKK+a0peiyvCA8IGFsbG93YW5jZTsKK+SQuiA8IGRlbGljaW91czsKK+SQmyA8IHRvXC1sb29zZW47CivkkIYgPCBiaWdcLWJlbGx5Owor5I+9IDwgbWVhdFwtcHVscDsKK+SPrCA8IHRoZVwtc3BpbmU7Civkj6AgPCBtZWF0XC1zb3VwOwor5I+eIDwgdGhlXC1iZWxseTsKK+iCneeCjiA8IGhlcGF0aXRpczsKK+SOoSA8IHRvXC1zaHJpbms7CivmtojogJcgPCB0b1wtdXNlXC11cDsKK+SOgyA8IGZpbmVcLWRvd247CivpmL/moLnlu7cgPCBhcmdlbnRpbmE7CivkjY4gPCBhXC1zcGluZGxlOwor5IyyIDwgbGlnaHRcLXJlZDsKK+SMmyA8IGVudG91cmFnZTsKK+SLoCA8IHRvXC1yZXBhaXI7CivkirAgPCBmb29kc3R1ZmY7CivkipwgPCBkdW1wbGluZ3M7CivkibwgPCBtYXRlcmlhbHM7CivkuIrovIkgPCB0b1wtdXBsb2FkOwor6Jit6IqxIDwgY3ltYmlkaXVtOwor5pu46KiYIDwgc2VjcmV0YXJ5Owor5rWq6Ii5IDwgc3dpbmdib2F0Owor5YG95ZaE6ICFIDwgaHlwb2NyaXRlOwor5IeQIDwgdG9cLWFycml2ZTsKK+Wwj+WvqyA8IGxvd2VyY2FzZTsKK+SGkCA8IGFcLWNvdW50cnk7Civonrrml4vmp7MgPCBwcm9wZWxsZXI7CivnlKjlhbcgPCBhcHBsaWFuY2U7Civlj6TpoqggPCBhbnRpcXVpdHk7CivkhYMgPCBsYXRlXC1jcm9wOwor5a6J5q2HIDwgZ29cLXRvXC1iZWQ7Civkg6kgPCBhXC1taW5lcmFsOwor5a625pePIDwgaG91c2Vob2xkOwor5IOVIDwgc3RvbmV3YXJlOwor6Ieq5YuV5qiT5qKvIDwgZXNjYWxhdG9yOwor57eK5oCl5LqL5Lu2IDwgZW1lcmdlbmN5Owor5IOAIDwgbWlsbHN0b25lOwor5L2V5pWFIDwgd2hlcmVmb3JlOwor6IWz5Y2wIDwgZm9vdHByaW50Owor55O35ZmoIDwgY2hpbmF3YXJlOwor6LKv5rC06JmVIDwgcmVzZXJ2b2lyOwor5IGQIDwgZGVlcFwtZXllZDsKK+erpeW5tCA8IGNoaWxkaG9vZDsKK+WNsOW6puWwvOilv+S6niA8IGluZG9uZXNpYTsKK+WNiua1gemrlCA8IHNlbWlmbHVpZDsKK+SArCA8IHRvXC1nbGFuY2U7CivkgKEgPCB0b1wtc3B5XC1vbjsKK+SAkCA8IHRvXC1yZWdhcmQ7CivotbfluoogPCB0b1wtZ2V0XC11cDsKK+O/vyA8IHdpbmVcLWN1cHM7CivmsJHkuLvkuLvnvqnogIUgPCBkZW1vY3JhdHM7Civjv58gPCBoZVwtYnJpZ2h0Owor5b6B5pyN6ICFIDwgY29ucXVlcm9yOwor476lIDwgYmVsbHlhY2hlOwor476jIDwgdG9cLXNoaXZlcjsKK+S7iueUnyA8IHRoaXNcLWxpZmU7CivmjZXpvKDlmaggPCBtb3VzZXRyYXA7CivjvZ4gPCB0b1wtcmVtYWluOwor472JIDwgYVwtYmlnXC1qYXI7CivjvLogPCBwb3JjZWxhaW47CivororoibLpvo0gPCBjaGFtZWxlb247CivjvJogPCBlYXJ0aHdhcmU7CivlsI3mipfogIUgPCBhZHZlcnNhcnk7CivmnKzogbcgPCBvbmUnJ3NcLWpvYjsKK+mAgOm7kea/gOe0oCA8IG1lbGF0b25pbjsKK+iDjOaWnCA8IGFudGljbGluZTsKK+aatOi6gSA8IGlyYXNjaWJsZTsKK+axoOm5vSA8IGxha2VcLXNhbHQ7CivoloTmsrnlsaQgPCBvaWxcLXNoZWV0Owor5LiN6KixIDwgbm90XC1hbGxvdzsKK+WVhuaomSA8IHRyYWRlbWFyazsKK+mjr+eilyA8IHJpY2VcLWJvd2w7CivnhKHnn6XoprogPCBzZW5zZWxlc3M7CivmmaTpnaIgPCBpbnRlcnZpZXc7Civph43plosgPCB0b1wtcmVvcGVuOwor47WUIDwgbm90XC1jbGVhcjsKK+iuiumdqSA8IHRyYW5zZm9ybTsKK+O0gSA8IHRvXC1hZGRcLXRvOwor55m95LqR5q+NIDwgbXVzY292aXRlOwor47OoIDwgdG9cLXNwbGFzaDsKK+aIquWlqiA8IGludGVyY2VwdDsKK+W9q+WIu+WTgSA8IHNjdWxwdHVyZTsKK+a3seawtCA8IGRlZXB3YXRlcjsKK+OwliA8IHRoZVwtb2xpdmU7Civjr7ogPCBhXC1jYWJpbmV0Owor6K6K54Sm6Led6Y+h6aCtIDwgem9vbVwtbGVuczsKK+OvryA8IHNtYWxsXC1jdXA7Civjr50gPCBwYXVsb3duaWE7CivjrpkgPCBhXC1waXRmYWxsOwor462iIDwgbWVjaGFuaWNzOwor6LW35aeLIDwgb3JpZ2luYXRlOwor46y/IDwgbW9vbmxpZ2h0Owor56WH6K6AIDwgcmVhZFwtb25seTsKK+OsqyA8IGNsZWFyXC1za3k7CivkuIDljYPlmbggPCAxMDAwXC10b25zOwor5LiN6KaP5YmHIDwgaXJyZWd1bGFyOwor5rOi54uA6ZuyIDwgdW5kdWxhdHVzOwor5a245pyDIDwgaW5zdGl0dXRlOwor46qIIDwgdG9cLWxldFwtZ287CivjqZIgPCB0b1wtYXJyZXN0Owor46mHIDwgdGhlXC10aHVtYjsKK+OotiA8IHRvXC10aHJlc2g7CivjqIkgPCB0b1wtc21vb3RoOwor46epIDwgdG9cLWRpc3BlbDsKK+OnlyA8IHRvXC1jbGF0Y2g7CivvprsgPCBvZmZpY2lhbHM7Civjpq8gPCBhXC1jZXJ0YWluOwor46aWIDwgcmVzZW50ZnVsOwor46W+IDwgbW9ydGlmaWVkOwor46WzIDwgdG9cLXN1cnZleTsKK+OlpiA8IHNhdGlzZmllZDsKK+OlgCA8IGV4Y2x1c2l2ZTsKK+OktSA8IGNvcGFzc2lvbjsKK+acq+erryA8IGV4dHJlbWl0eTsKK+OkhyA8IHRlcnJpZmllZDsKK+OkhiA8IG5hdXNlYXRlZDsKK+OjuiA8IHRoZVwtaGVhcnQ7Civnk5zliIYgPCBwYXJ0aXRpb247CivjoqEgPCB0b1wtZXhob3J0Owor46G8IDwgYVwtZ3JhbmFyeTsKK+OhuiA8IGFcLWNvdHRhZ2U7CivjoZcgPCByZWRcLXBhcGVyOwor46CYIDwgYW5cLWlzbGFuZDsKK+a2jOePviA8IHNwcmluZ1wtdXA7Civnpq7nr4AgPCBldGlxdWV0dGU7CivororphpwgPCBkaXNmaWd1cmU7CivjnLsgPCB0b1wtYWRtaXJlOwor6JyC5beiIDwgaG9uZXljb21iOwor45yYIDwgZGVsaWNhdGVkOwor45yPIDwgbGFzdFwtbmFtZTsKK+S4ree+jiA8IGNoaW5hXC11c2E7Civjm74gPCBub3RcLWNsZWFuOwor5pqX6KqeIDwgY29kZVwtd29yZDsKK+aTtOmfs+WZqCA8IG1lZ2FwaG9uZTsKK+S4jeimi+S6hiA8IGRpc2FwcGVhcjsKK+OasCA8IGFuXC1lbWJyeW87CivjmpsgPCBjb3JwdWxlbnQ7CivjmpggPCBhXC1wYXJ0bmVyOwor6YeN6LmIIDwgdG9cLXJlcGVhdDsKK+OYoyA8IGNvbXBhc3NlczsKK+OXsyA8IGZvcmdldGZ1bDsKK+S5neaciOS7vSA8IHNlcHRlbWJlcjsKK+i2heaWh+acrCA8IGh5cGVydGV4dDsKK+Wfuuedo+aVmeW+kiA8IGNocmlzdGlhbjsKK+OVuSA8IGFcLWJ1Y2tsZXI7CivjlZUgPCBkZWNlcHRpb247CivjlZEgPCBhXC1raXRjaGVuOwor5LyR5oiwIDwgYXJtaXN0aWNlOwor45WLIDwgcm9ja1wtbGFuZDsKK+OViCA8IHRvXC1saW5nZXI7CivjlKcgPCB0b1wtaW5jaXRlOwor6K6A5pu45Lq6IDwgYVwtc2Nob2xhcjsKK+OTiyA8IHRvXC1mcmVlemU7Civjk4QgPCB0b1wtcGxvdWdoOwor5Y+b6LOjIDwgdG9cLWJldHJheTsKK+ORpyA8IHBlcnR1cmJlZDsKK+ORhCA8IHRvXC1pbnN1bHQ7CivjkK8gPCB0b1wtZW1wbG95Owor5Ly45bGVIDwgZXh0ZW5zaW9uOwor5LiA6Ie0IDwgdW5hbmltb3VzOwor5byV55So5Y+lIDwgcXVvdGF0aW9uOwor6ICB54mMIDwgb2xkXC1icmFuZDsKK+WmlumiqCA8IGV2aWxcLXdpbmQ7CivpjLbluLYgPCB3YXRjaGJhbmQ7CivmuJvlsJEgPCB0b1wtbGVzc2VuOwor5pyJ55uKIDwgd2hvbGVzb21lOwor56uL5Yi7IDwgZm9ydGh3aXRoOwor5YWr5YCN6auUIDwgb2N0b3Bsb2lkOwor5rex5oCdIDwgdG9cLXBvbmRlcjsKK+mHjuiguyA8IGJhcmJhcm91czsKK+iyoeadsSA8IHNob3Bvd25lcjsKK+iZm+aniyA8IGltYWdpbmFyeTsKK+iiq+emgeatoiA8IGZvcmJpZGRlbjsKK+iBr+aDsyA8IGFzc29jaWF0ZTsKK+a1uOaykiA8IGltbWVyc2lvbjsKK+a3kuaFmCA8IG1pc2VyYWJsZTsKK+S4gOevhyA8IG9uZVwtc2lkZWQ7Civku4vos6roqKrllY/mjqfliLblsaQgPCBtYWNcLWxheWVyOwor5LiN6Ieq54S2IDwgdW5uYXR1cmFsOwor5pyf5ru/IDwgdG9cLWV4cGlyZTsKK+itpuimuiA8IHZpZ2lsYW5jZTsKK+WOn+irkiA8IHRvXC1leGN1c2U7Civlrrbkv7EgPCBmdXJuaXR1cmU7Civpq5jnp5HmioAgPCBoaWdoXC10ZWNoOwor5oSf5p+TIDwgaW5mZWN0aW9uOwor5a2U5a2QIDwgY29uZnVjaXVzOwor5Lqe5qC86ZaA6L6yIDwgYWdhbWVtbm9uOwor5a625LqLIDwgaG91c2V3b3JrOwor5oCq54mp5Ly8IDwgbW9uc3Ryb3VzOwor5Yaw5qON5YWSIDwgaWNlXC1sb2xseTsKK+S7iuW5tCA8IHRoaXNcLXllYXI7Civnmb3nj63lhZIgPCBkYXlcLXNoaWZ0Owor5LiA55m+IDwgYVwtaHVuZHJlZDsKK+S7suWkjyA8IG1pZHN1bW1lcjsKK+itieipniA8IHRlc3RpbW9ueTsKK+S4jemAnuS5i+W+kiA8IGRlc3BlcmFkbzsKK+eqgeWHuiA8IHByb21pbmVudDsKK+aYn+acn+S4iSA8IHdlZG5lc2RheTsKK+aDoeavkiA8IG1hbGljaW91czsKK+mHjuigu+S6uiA8IGJhcmJhcmlhbjsKK+WNgeWtl+i7jSA8IGNydXNhZGVyczsKK+mcsumfkyA8IHRvXC1leHBvc2U7Civms5XlnIvkurogPCBmcmVuY2htYW47CivkupTljYPlmbggPCA1MDAwXC10b25zOwor5b2x6Z+/IDwgaW5mbHVlbmNlOwor5pq055m8IDwgYnJlYWtcLW91dDsKK+aHieS7mCA8IGRlYWxcLXdpdGg7CivmnInmr5IgPCBwb2lzb25vdXM7CivlvLHpubwgPCB3ZWFrXC1iYXNlOwor5rG96Ii5IDwgc3RlYW1ib2F0Owor6YGH6Zuj6Ii5IDwgc2hpcHdyZWNrOwor5Y+v56yRIDwgbGF1Z2hhYmxlOwor5Y2K6LyJIDwgaGFsZlwtbG9hZDsKK+W+rui7nyA8IG1pY3Jvc29mdDsKK+S7meWigyA8IGZhaXJ5bGFuZDsKK+aXqOi2oyA8IG9iamVjdGl2ZTsKK+Wkp+mhniA8IG1haW5cLXR5cGU7CivmnKzmlocgPCB0aGlzXC10ZXh0Owor576K55qu57SZIDwgcGFyY2htZW50Owor5oak5oak5LiN5bmzIDwgaW5kaWduYW50Owor54ef6aSKIDwgbnV0cml0aW9uOwor5Y+N6Imm6ImHIDwgYW50aVwtc2hpcDsKK+WNlOitsCA8IGFncmVlbWVudDsKK+mCo+m6vCA8IHNvXC1cKG11Y2hcKTsKK+W/hemcgOWTgSA8IG5lY2Vzc2l0eTsKK+eip+iXjSA8IGRhcmtcLWJsdWU7CivlvoXpgYcgPCB0cmVhdG1lbnQ7CivkuIvlgIvmmJ/mnJ8gPCBuZXh0XC13ZWVrOwor5ZCI55CGIDwgcmF0aW9uYWxlOwor546p5byEIDwgcmVzb3J0XC10bzsKK+aXgei3ryA8IHRvXC1ieXBhc3M7CivlpJzplpMgPCBuaWdodHRpbWU7Civmr5TphLAgPCBuZWlnaGJvdXI7Civmm7jmnrYgPCBib29rc2hlbGY7CivmnInmlYggPCBlZmZlY3RpdmU7CivnvL3nm4IgPCBhbG1zXC1ib3dsOwor55+z54Gw55+zIDwgbGltZXN0b25lOwor6LOH5YqpIDwgc3Vic2lkaXplOwor5q235Y+y5a245a62IDwgaGlzdG9yaWFuOwor5L+u6YGT6ZmiIDwgbW9uYXN0ZXJ5Owor5LiK5qyhIDwgbGFzdFwtdGltZTsKK+acm+mBoOmPoSA8IHRlbGVzY29wZTsKK+aTuuioreWFkiA8IG9ybmFtZW50czsKK+S6lOWkqSA8IGZpdmVcLWRheXM7Civlv4PpnYjkuIogPCBzcGlyaXR1YWw7Civml4Hop4AgPCBzcGVjdGF0b3I7CivloIXlv43kuI3mi5QgPCBmb3J0aXR1ZGU7Civku4vlhaUgPCBpbnRlcnZlbmU7Civku6XkuIogPCBtb3JlXC10aGFuOwor55+b6aCtIDwgc3BlYXJoZWFkOwor5aSi6YG6IDwgd2V0XC1kcmVhbTsKK+WkqeaWh+WtuCA8IGFzdHJvbm9teTsKK+W3tOavlOWmpSA8IGJhcmJpdG9uZTsKK+azouautSA8IHdhdmVcLWJhbmQ7Civpm6LplosgPCB0b1wtZGVwYXJ0Owor5a+m6LOq5LiKIDwgdmlydHVhbGx5Owor5ZCQ5rCjIDwgYXNwaXJhdGVkOwor5p2x5Y2XIDwgc291dGhlYXN0Owor5aWH6KeAIDwgc3BlY3RhY2xlOwor5pS56Z2pIDwgdG9cLXJlZm9ybTsKK+aEm+WciyA8IHBhdHJpb3RpYzsKK+S4jeaWtyA8IHVuY2Vhc2luZzsKK+acquWpmiA8IHVubWFycmllZDsKK+W8semFuCA8IHdlYWtcLWFjaWQ7CivkuZjlrqIgPCBwYXNzZW5nZXI7CivphY3nva4gPCB0b1wtZGVwbG95Owor5aSx6Kq/IDwgaW1iYWxhbmNlOwor5pys5aOYIDwgaG9tZVwtYmFzZTsKK+S6uuS6iyA8IHBlcnNvbm5lbDsKK+acieaEj+itmCA8IGNvbnNjaW91czsKK+abuOW6lyA8IGJvb2tzdG9yZTsKK+WPl+Wus+iAhSA8IGNhc3VsdGllczsKK+S4jeWujOe+jiA8IGRlZmVjdGl2ZTsKK+WPuOapnyA8IGNoYXVmZmV1cjsKK+adseS6niA8IGVhc3RcLWFzaWE7CivlkIjmoLwgPCBxdWFsaWZpZWQ7Civmg4Xnt5LljJYgPCBlbW90aW9uYWw7CivogJDlipsgPCBlbmR1cmFuY2U7CivmlK/mjIHogIUgPCBzdXBwb3J0ZXI7CivmmI7norogPCBjbGVhclwtY3V0Owor5LiN5oOcIDwgbm90XC1zdGludDsKK+WAn+abuOWWriA8IGJvb2tcLXNsaXA7CivkuLvlqaYgPCBob3VzZXdpZmU7CivooajmhI/mloflrZcgPCBpZGVvZ3JhcGg7CivpgJrosqjohqjohLkgPCBpbmZsYXRpb247CivnjqnlhbcgPCBwbGF5dGhpbmc7Civpm7voqbEgPCB0ZWxlcGhvbmU7Civmlr3ogqUgPCBmZXJ0aWxpemU7CivnrKzlhavljYEgPCBlaWdodGlldGg7Civph4znqIvnopEgPCBtaWxlc3RvbmU7CivkuI3lt7IgPCBlbmRsZXNzbHk7Civpm5zosqggPCBncm9jZXJpZXM7CivmnKjljKAgPCBjYXJwZW50ZXI7CivphqzmsrkgPCBzb3lcLXNhdWNlOwor5LiN5oOF6aGYIDwgdW53aWxsaW5nOwor6Ke46ayaIDwgdGVudGFjbGVzOwor5LiL5a6a576pIDwgdG9cLWRlZmluZTsKK+aTpumfsyA8IGZyaWNhdGl2ZTsKK+WRqOWcjSA8IGVuY29tcGFzczsKK+WwjeS4jei1tyA8IGknJ21cLXNvcnJ5Owor5LiN5bCNIDwgaW5jb3JyZWN0Owor5b+D55uuIDwgbWVudGFsaXR5Owor5Y+v5pWsIDwgdmVuZXJhYmxlOwor5aSn6I2zIDwgc295YVwtYmVhbjsKK/CipZ4gPCBzYW1lXC1hc1wt5b+hOwor5YGH6LGh54mZIDwgY2VsbHVsb2lkOwor6ZmN6JC95YKYIDwgcGFyYWNodXRlOwor5rOi5bmFIDwgYW1wbGl0dWRlOwor5Y+z5omLIDwgcmlnaHRoYW5kOwor5rWB5YWlIDwgZmxvd1wtaW50bzsKK+azqOWwhCA8IGluamVjdGlvbjsKK+ehrOebpCA8IGhhcmRcLWRpc2s7Civlip/oqrIgPCBjbGFzc3dvcms7CivpgLHplbcgPCBwZXJpbWV0ZXI7Civos7zosrfogIUgPCBwdXJjaGFzZXI7CivlpKfmlZnloIIgPCBjYXRoZWRyYWw7CivntYTnuZTogIUgPCBvcmdhbml6ZXI7CivlqZrlp7sgPCBtYXRyaW1vbnk7CivkuI3lnKggPCBub3RcLWJlXC1pbjsKK+S4meeoruWwhOe3miA8IGdhbW1hXC1yYXk7Civpnq3mr5sgPCBmbGFnZWxsdW07CivmkqvppIogPCB0b1wtZm9zdGVyOwor5Yiq6ZmkIDwgdG9cLWRlbGV0ZTsKK+mBoOi2syA8IGV4Y3Vyc2lvbjsKK+eEoemZkCA8IHVubGltaXRlZDsKK+mgkeW8tyA8IHRlbmFjaW91czsKK+eEoemXnCA8IHVucmVsYXRlZDsKK+iSuOeZvCA8IGV2YXBvcmF0ZTsKK+WPpOaAqiA8IGVjY2VudHJpYzsKK+W+l+eVtiA8IGV4cGVkaWVudDsKK+ayueW4gyA8IHRhcnBhdWxpbjsKK+S4i+WUhyA8IGxvd2VyXC1saXA7CivkuIrllIcgPCB1cHBlclwtbGlwOwor6IGW6L+t5ZOlIDwgc2FuXC1kaWVnbzsKK+mggeW/gyA8IHR5cGVcLXBhZ2U7CivmsaHmn5MgPCBwb2xsdXRpb247CivmhI/msKPnm7jmipUgPCBjb25nZW5pYWw7CivplbfmlrnlvaIgPCByZWN0YW5nbGU7CivliY3pgJQgPCBwcm9zcGVjdHM7CivnhoronIIgPCBidW1ibGViZWU7CivnuL3ntZAgPCBzdW1tYXJpemU7CivlkLjlj5YgPCB0b1wtYWJzb3JiOwor6YCx6YKKIDwgcGVyaXBoZXJ5Owor5bm06ZmQIDwgYWdlXC1saW1pdDsKK+S4i+WIlyA8IGZvbGxvd2luZzsKK+mhjOWQjSA8IGF1dG9ncmFwaDsKK+WkmuerryA8IG11bHRpcG9ydDsKK+aViOiDvSA8IGVmZmljaWVudDsKK+eBsOeNteeKrCA8IGdyZXlob3VuZDsKK+eNsuaatOWIqeiAhSA8IHByb2ZpdGVlcjsKK+S4jeWBnCA8IGluY2Vzc2FudDsKK+Wkp+egsiA8IGFydGlsbGVyeTsKK+S4jeWAvCA8IG5vdFwtd29ydGg7CivmspnlsqkgPCBzYW5kc3RvbmU7Civms6Llj4ogPCBzcHJlYWRcLXRvOwor5b6u5rOiIDwgbWljcm93YXZlOwor54Sh6L6cIDwgaW5ub2NlbmNlOwor5qyh6KaBIDwgc2Vjb25kYXJ5Owor5LiN5LqIIDwgbm90XC1ncmFudDsKK+WOu+W5tCA8IGxhc3RcLXllYXI7CivkuI3kuoYgPCB1bmFibGVcLXRvOwor6Z+M5oCnIDwgdG91Z2huZXNzOwor54mI5qyKIDwgY29weXJpZ2h0Owor5ZCR5Y2XIDwgc291dGh3YXJkOwor5rCR5q2MIDwgZm9sa1wtc29uZzsKK+WNs+aZgiA8IGltbWVkaWF0ZTsKK+e/kuaFo+aApyA8IGN1c3RvbWFyeTsKK+W5uOmBiyA8IGZvcnR1bmF0ZTsKK+e+juS4rSA8IHVzYVwtY2hpbmE7Civnhp/nt7QgPCBwcmFjdGljZWQ7Civlv7UgPCB0aGlua1wtb2Y7CivkvJogPCBhc3NlbWJsZTsKK+WtpiA8IGxlYXJuaW5nOwor5b6SIDwgZGlzY2lwbGU7CivnnaYgPCBmcmllbmRseTsKK+aXoCA8IG5lZ2F0aXZlOwor5pa5IDwgYVwtc3F1YXJlOwor5YmNIDwgaW5cLWZyb250Owor55yJIDwgZXllYnJvd3M7CivnnIEgPCBwcm92aW5jZTsKK+ebtCA8IHN0cmFpZ2h0Owor5buiIDwgYWJyb2dhdGU7Civnm5sgPCBhYnVuZGFudDsKK+i7kiA8IGNhcnJpYWdlOwor5YWoIDwgbWFpbnRhaW47Civlu4ogPCBjb3JyaWRvcjsKK+eauiA8IHdyaW5rbGVzOwor5bq3IDwgcGVhY2VmdWw7Civpl7QgPCBtaWRwb2ludDsKK+i6iiA8IGhlc2l0YXRlOwor56ysIDwgc2VxdWVuY2U7CivlubsgPCBpbGx1c2lvbjsKK+eZhyA8IGVwaWxlcHN5Owor5bGxIDwgbW91bnRhaW47Civlt74gPCBrZXJjaGllZjsKK+W3pyA8IHNraWxsZnVsOwor6LedIDwgZGlzdGFuY2U7CivnlYwgPCBib3VuZGFyeTsKK+S7uyA8IHRydXN0XC10bzsKK+WPsCA8IHBsYXRmb3JtOwor6LGhIDwgZWxlcGhhbnQ7CivpopggPCBmb3JlaGVhZDsKK+izoiA8IHZpcnR1b3VzOwor6LOHIDwgcHJvcGVydHk7CivosrwgPCBwYXN0ZVwtdG87CivosrsgPCBleHBlbnNlczsKK+WxpSA8IGZvb3R3ZWFyOwor5q2mIDwgbWlsaXRhcnk7CivnkLIgPCBuZWNrbGFjZTsKK+WwoCA8IHZlcnlcLWZldzsKK+WujCA8IGNvbXBsZXRlOwor5Y2zIDwgcHJvbXB0bHk7Civlr7UgPCBmYXZvcml0ZTsKK+ivrSA8IGxhbmd1YWdlOwor54+NIDwgcHJlY2lvdXM7CivllYYgPCBjb21tZXJjZTsKK+WunSA8IHRyZWFzdXJlOwor5Y2DIDwgdGhvdXNhbmQ7CivlrpwgPCBzdWl0YWJsZTsKK+WumCA8IG9mZmljaWFsOwor56uZIDwgc3RhbmRcLXVwOwor6K2sIDwgbWV0YXBob3I7CivpppkgPCBmcmFncmFudDsKK+S8vCA8IHJlc2VtYmxlOwor5ayiIDwgdHJvdWJsZWQ7Civomb0gPCBhbHRob3VnaDsKK+S4lCA8IG1vcmVvdmVyOwor6LCDIDwgdHJhbnNmZXI7Civlq4kgPCBqZWFsb3VzeTsKK+eLgyA8IHRvXC1jb3ZldDsKK+WrgSA8IHRvXC1tYXJyeTsKK+WqmiA8IGNoYXJtaW5nOwor6KqYIDwgcGVyc3VhZGU7CivoqoQgPCBldWxvZ2l6ZTsKK+ipsyA8IGRldGFpbGVkOwor6KmwIDwgcXVlc3Rpb247Civmg4ogPCBmcmlnaHRlbjsKK+aUryA8IGRpc3BlcnNlOwor56qBIDwgc3VkZGVubHk7CivoqZUgPCBhcHByYWlzZTsKK+WooCA8IHByZWduYW50Owor5Y+lIDwgc2VudGVuY2U7CivmmL4gPCBtYW5pZmVzdDsKK+WiniA8IGluY3JlYXNlOwor5paZIDwgY29uc2lkZXI7CivlpoogPCBjb25jZWl2ZTsKK+e7rSA8IGNvbnRpbnVlOwor54KtIDwgY2hhcmNvYWw7Civlm7QgPCBzdXJyb3VuZDsKK+eBvSA8IGNhbGFtaXR5Owor5aGaIDwgY2VtZXRlcnk7CivngJUgPCBhcHByb2FjaDsKK+a/uiA8IHNwcmlua2xlOwor5r+vIDwgd2FzaFwtb3V0Owor5Z6jIDwgbG93XC13YWxsOwor5LmgIDwgcHJhY3RpY2U7CivlnoIgPCBsZXRcLWRvd247CivlnYIgPCBoaWxsc2lkZTsKK+elliA8IGFuY2VzdG9yOwor5LyYIDwgc3VwZXJpb3I7Civmu68gPCBibG9ja1wtdXA7CivmuqIgPCBvdmVyZmxvdzsKK+a4qSA8IGx1a2V3YXJtOwor6JqKIDwgbW9zcXVpdG87CivpubggPCBhbGthbGluZTsKK+WZqiA8IGJlXC1ub2lzeTsKK+WYsiA8IHJpZGljdWxlOwor5ribIDwgZGVjcmVhc2U7CivlmJQgPCB0b1wtdm9taXQ7CivmgakgPCBraW5kbmVzczsKK+iEsSA8IHRha2VcLW9mZjsKK+a2uCA8IGRyaWVkXC11cDsKK+WWqiA8IG1vdXJuaW5nOwor5aWUIDwgcnVuXC1mYXN0Owor5raMIDwgc3VyZ2VcLXVwOwor56aBIDwgcmVzdHJpY3Q7Civmta4gPCB0b1wtZmxvYXQ7CivkupIgPCBtdXR1YWxseTsKK+aQniA8IHRvXC1jbGVhcjsKK+acsSA8IGNpbm5hYmFyOwor5Z+fIDwgZGlzdHJpY3Q7CivmnZAgPCBtYXRlcmlhbDsKK+WBtyA8IHRvXC1zdGVhbDsKK+iTiSA8IGhpYmlzY3VzOwor5oq9IDwgZHJhd1wtb3V0Owor5LuqIDwgY2VyZW1vbnk7CivljbggPCBsYXlcLWRvd247Civlv4YgPCByZW1lbWJlcjsKK+malCA8IHNlcGFyYXRlOwor5Y2TIDwgcHJvZm91bmQ7CivmjZ8gPCBkaW1pbmlzaDsKK+iMhCA8IGVnZ3BsYW50Owor5Yu/IDwgbXVzdFwtbm90Owor6autIDwgbXVzdGFjaGU7CivpgaUgPCBmYXJcLWF3YXk7Civmq5sgPCBjb21iXC1vdXQ7CivluIEgPCBjdXJyZW5jeTsKK+WLiSA8IGVuZGVhdm9yOwor6aq4IDwgc2tlbGV0b247CivliqogPCB0b1wtZXhlcnQ7CivokI0gPCBkdWNrd2VlZDsKK+aohSA8IGZpclwtdHJlZTsKK+e8qSA8IGNvbnRyYWN0Owor6IelIDwgbGllXC1kb3duOwor5oWVIDwgbG9uZ1wtZm9yOwor6IejIDwgbWluaXN0ZXI7CivmjKEgPCBvYnN0cnVjdDsKK+iGnCA8IG1lbWJyYW5lOwor5qabIDwgaGF6ZWxudXQ7Civkv4ogPCB0YWxlbnRlZDsKK+aenSA8IGJyYW5jaGVzOwor6Zm3IDwgc3VibWVyZ2U7Civli5IgPCBzdHJhbmdsZTsKK+iBiiA8IHNvbWV3aGF0Owor6aO+IDwgZGVjb3JhdGU7CivmlpwgPCBzbGFudGluZzsKK+aWkCA8IGdyYWNlZnVsOwor5qKfIDwgb3dsXC10aHVzOwor5YKYIDwgdW1icmVsbGE7Civkuq0gPCBwYXZpbGlvbjsKK+azmyA8IHRvXC1kcmlmdDsKK+espiA8IGlcLmRcLlwtdGFnOwor5YWBIDwgdG9cLWdyYW50Owor6LeoIDwgc3RyYWRkbGU7CivmjqkgPCB0b1wtY292ZXI7CivpoIMgPCBhXC1tb21lbnQ7Civmn7QgPCBmaXJld29vZDsKK+S/ryA8IGJvd1wtZG93bjsKK+S/pSA8IHJpY2tzaGF3Owor6YK7IDwgbmVpZ2hib3I7Civpqb4gPCB0b1wtZHJpdmU7Civnvp4gPCBkaXNncmFjZTsKK+ijpCA8IHRyb3VzZXJzOwor5LywIDwgbWVyY2hhbnQ7CivpnpggPCBzY2FiYmFyZDsKK+WSkCA8IGluc3RydWN0Owor5oGSIDwgY29uc3RhbnQ7Civns58gPCBzZWRpbWVudDsKK+aJriA8IGRyZXNzXC11cDsKK+abnCA8IGdsb3Jpb3VzOwor5pqiIDwgc21vb3RobHk7CivmirwgPCBtb3J0Z2FnZTsKK+aImiA8IHJlbGF0aXZlOwor56mGIDwgbWFqZXN0aWM7CivlmLsgPCBtaXJ0aGZ1bDsKK+S4piA8IGVxdWFsXC10bzsKK+aYlCA8IGZvcm1lcmx5Owor6ZeYIDwgc3RydWdnbGU7CivnnqogPCBzdGFyZVwtYXQ7CivmlqUgPCB0b1wtc2NvbGQ7CivliaogPCBzY2lzc29yczsKK+WnmiA8IGhhbmRzb21lOwor5o6PIDwgdGFrZVwtb3V0Owor6ZaTIDwgaW50ZXJ2YWw7Civmg7kgPCBpcnJpdGF0ZTsKK+ewvyA8IHJlZ2lzdGVyOwor6Iq3IDwgYW5nZWxpY2E7Civno4EgPCBtYWduZXRpYzsKK+avhSA8IHJlc29sdXRlOwor56ylIDwgYVwtaGFtcGVyOwor5ouYIDwgcmVzdHJhaW47CivkvJAgPCBjdXRcLWRvd247Civnq4ogPCBzZWNyZXRseTsKK+mKmCA8IGluc2NyaWJlOwor5oSJIDwgcGxlYXNhbnQ7CivnqpwgPCBydW5cLWF3YXk7Civlr6ggPCBzdG9ja2FkZTsKK+aIuyA8IHBlcnZlcnNlOwor5rKqIDwgc2hhbmdoYWk7Civph5wgPCBjYXVsZHJvbjsKK+WXpCA8IGxhdWdoXC1hdDsKK+WosSA8IHBsZWFzdXJlOwor56aEIDwgYmxlc3Npbmc7CivmhJUgPCBzdGFydGxlZDsKK+WVoSA8IG1vcnBoaW5lOwor5ZuaIDwgcHJpc29uZXI7CivotKYgPCBhY2NvdW50czsKK+eTtyA8IGNyb2NrZXJ5Owor6IWlIDwgcmF3XC1tZWF0Owor5ZK4IDwgdG9nZXRoZXI7CivnlqsgPCBlcGlkZW1pYzsKK+WVqiA8IHN5bGxhYmxlOwor6IaoIDwgdG9cLXN3ZWxsOwor5ZCxIDwgY2hpcnBpbmc7Civoj4wgPCBtdXNocm9vbTsKK+eQkCA8IHRyaWZsaW5nOwor6IufIDwgY2FyZWxlc3M7CivltJsgPCB0b3dlcmluZzsKK+WHuCA8IHByb3RydWRlOwor5ZiAIDwgYmFja2JpdGU7Civpk5AgPCBzaGFja2xlczsKK+iwlSA8IHByb2NsYWltOwor6L+4IDwgZ3VzaFwtb3V0Owor5YmUIDwgcGlja1wtb3V0Owor5YaAIDwgaG9wZVwtZm9yOwor56CaIDwgaW5rc3RvbmU7CivmjY0gPCB3YXJkXC1vZmY7Civoh4AgPCBidXR0b2NrczsKK+WAlCA8IHN0dWJib3JuOwor5aWEIDwgZXJlXC1sb25nOwor5L6lIDwgYmVcLWx1Y2t5Owor5qK1IDwgYnVkZGhpc3Q7CivopKUgPCBtYXR0cmVzczsKK+aZliA8IHN1bnNoaW5lOwor55W0IDwgZmFybWxhbmQ7Civnnp8gPCBnbGFyZVwtYXQ7CivnmLggPCBsYW1lbmVzczsKK+a+jiA8IHNwbGF0dGVyOwor5r2mIDwgdG9cLWZsb29kOwor5YGOIDwgY2xpbmdcLXRvOwor6J2OIDwgc2NvcnBpb247CivnsLggPCB3aW5ub3dlcjsKK+W6tiA8IG51bWVyb3VzOwor5pKCIDwgcHV0XC1kb3duOwor5pmXIDwgcHJlXC1kYXduOwor6LmKIDwgZm9vdHBhdGg7CivpmIkgPCBjYXN0cmF0ZTsKK+a3hiA8IGNvbmZ1c2VkOwor6JCmIDwgZW50YW5nbGU7CivmpoYgPCBlbG1cLXRyZWU7CivnjJ0gPCBhYnJ1cHRseTsKK+abpiA8IHN1bmxpZ2h0Owor5rikIDwgc3dlbGxpbmc7CivovpggPCB3aW5kbGFzczsKK+mTnSA8IGFsdW1pbnVtOwor5o2LIDwgdG9cLXBsdWNrOwor6Jm7IDwgaG9yc2VmbHk7CivnnowgPCBkb3plXC1vZmY7Civkup8gPCB1cmdlbnRseTsKK+W+qCA8IGRvdWJ0ZnVsOwor5ZWQIDwgdG9cLXRhc3RlOwor6ZWvIDwgYnJhY2VsZXQ7CivliL0gPCBhbXB1dGF0ZTsKK+iXuyA8IHNwbGVuZGlkOwor5oOwIDwgaW5kb2xlbnQ7Civnh5QgPCB0b1wtcm9hc3Q7Civmtp0gPCBpbnVuZGF0ZTsKK+e7myA8IGRlZXBcLXJlZDsKK+awryA8IGNobG9yaW5lOwor5Z2NIDwgY29sbGFwc2U7Civlv5AgPCB0aW1vcm91czsKK+auoSA8IGVuY29mZmluOwor5pi1IDwgaW50aW1hdGU7Civkv58gPCB3YWl0XC1mb3I7CivmoaIgPCBoYXJkd29vZDsKK+m7jyA8IHN0aWNrXC10bzsKK+eXmCA8IHNtYWxscG94Owor5qefIDwgYmV0ZWxudXQ7Civpn60gPCBzY2FsbGlvbjsKK+iUqyA8IHdpdGhlcmVkOwor6IaCIDwgYmFja2JvbmU7Civog6sgPCBzaGluYm9uZTsKK+iHgyA8IHN3ZWxsXC11cDsKK+WyjCA8IHBlcmlsb3VzOwor546OIDwgamluZ2xpbmc7CivpmrwgPCBhcXVpbGluZTsKK+mZsiA8IGZyb250aWVyOwor6LC2IDwgcHJvcGhlY3k7CivlgbsgPCBodW1wYmFjazsKK+mTgiA8IHBsYXRpbnVtOwor57qbIDwgYVwtYmFubmVyOwor6ZOsIDwgY2hyb21pdW07Civog7AgPCBwYW5jcmVhczsKK+imgyA8IHJlYWNoXC10bzsKK+edviA8IHRlc3RpY2xlOwor5YCoIDwgYXJyb2dhbnQ7CivorqMgPCBvYml0dWFyeTsKK+mSmyA8IHRpdGFuaXVtOwor5rWDIDwgc2F0dXJhdGU7Civml5YgPCByb21hbnRpYzsKK+e8mSA8IHJlZFwtc2lsazsKK+ihviA8IGNvdmVybGV0Owor5a64IDwgaW1wZXJpYWw7CivkvZ4gPCBmbGF0dGVyeTsKK+iblCA8IHRhcGV3b3JtOwor5rCFIDwgb3ZlcmNvYXQ7CivmsJ8gPCBmbHVvcmluZTsKK+awsCA8IGN5YW5vZ2VuOwor6bKfIDwgc3R1cmdlb247CivnoZIgPCBzZWxlbml1bTsKK+iIqCA8IGFcLXNhbXBhbjsKK+eDiiA8IHRvXC1zbWVsdDsKK+iQsSA8IGRheVwtbGlseTsKK+eWuCA8IGphdW5kaWNlOwor6ZOKIDwgdGhhbGxpdW07Civor4IgPCBleGVnZXNpczsKK+mbiSA8IHBoZWFzYW50Owor6aKiIDwgbHVtaW5vdXM7CivmoIAgPCBnYXJkZW5pYTsKK+ivkiA8IGJlcXVlYXRoOwor6aKfIDwgZGF3ZGxpbmc7Civoi4sgPCBhbWFyYW50aDsKK+eAoyA8IHNlYVwtbWlzdDsKK+eunSA8IHR3ZWV6ZXJzOwor5qWuIDwgbXVsYmVycnk7CivpgYQgPCB0b1wtaHVycnk7CivpkpIgPCB2YW5hZGl1bTsKK+iLtyA8IGxpY29yaWNlOwor6ZKoIDwgdHVuZ3N0ZW47Civln7ggPCBhXC1ib3JkZXI7Civlq5IgPCBkYXVnaHRlcjsKK+eZnCA8IGVyeXRoZW1hOwor6bi5IDwgdGhlXC1jcm93Owor5pubIDwgdHdpbGlnaHQ7CivpqpggPCBzdGFsbGlvbjsKK+WduyA8IGFuXC1pc2xldDsKK+inqyA8IHRvXC1zdGFydDsKK+mTtSA8IGFtbW9uaXVtOwor5rCpIDwgYXJnb25pdW07CivljaMgPCB3aW5lXC1wb3Q7CivplJEgPCBhbnRpbW9ueTsKK+mGmyA8IGFsZGVoeWRlOwor6ZK9IDwgdGFudGFsdW07CivnoLwgPCBjb25jcmV0ZTsKK+eGmCA8IHRvXC1zdGVhbTsKK+eqqCA8IGFcLWNlbGxhcjsKK+agsiA8IG1hbmdyb3ZlOwor6bKjIDwgc2tpcGphY2s7Civpk7cgPCBydWJpZGl1bTsKK+mTlSA8IGV1cm9waXVtOwor6ZKLIDwgcG9sb25pdW07CivnoJEgPCB0b1wtZ3JpbmQ7CivmtKsgPCB0b1wtZGl0Y2g7Civln5ogPCBjcnVjaWJsZTsKK+WepCA8IGFudFwtaGlsbDsKK+WNuiA8IHdpbmVjdXBzOwor5ZiPIDwgZmVsaWNpdHk7Civpsr0gPCBmbGF0ZmlzaDsKK+myrSA8IG1hY2tlcmVsOwor6ZKqIDwgc2NhbmRpdW07CivpkqsgPCBmcmFuY2l1bTsKK+mSkCA8IHNhbWFyaXVtOwor56WTIDwgZXhvcmNpc2U7CivmoLMgPCBhXC1iYXNrZXQ7CivlkLIgPCBzbWlsZVwtYXQ7CivojrAgPCBjYW1waGFuZTsKK+iKtCA8IGZsdW9yZW5lOwor6LWcIDwgYWJzdHJ1c2U7CivmlLnnt6ggPCB0b1wtYWRhcHQ7Civnmb3lhafpmpwgPCBjYXRhcmFjdDsKK+Wjk+e3iiA8IGNvbXByZXNzOwor6Yar5a24IDwgbWVkaWNpbmU7CivlkJ7kvbUgPCB0b1wtYW5uZXg7CivpnYjmtLsgPCBmbGV4aWJsZTsKK+Wkp+evt+i7iiA8IHNjaG9vbmVyOwor5paH5427IDwgZG9jdW1lbnQ7CivlpJbnlKggPCBleHRlcm5hbDsKK+ebo+itt+S6uiA8IGd1YXJkaWFuOwor6YKK57eaIDwgc2lkZWxpbmU7CivmraPntbEgPCBvcnRob2RveDsKK+aWr+a0m+S8kOWFiyA8IHNsb3Zha2lhOwor6aC75LuNIDwgZnJlcXVlbnQ7Civnt6/nt5ogPCBsYXRpdHVkZTsKK+S4jeWQiOmBqSA8IGltcHJvcGVyOwor54Sh6KqkIDwgdmVyaWZpZWQ7Civml6Xmm4YgPCBjYWxlbmRhcjsKK+WJneiQvSA8IHBlZWxcLW9mZjsKK+mgkOWNnCA8IGZvcmV0ZWxsOwor6Ky55oWOIDwgY2F1dGlvdXM7CivojLbppKggPCB0ZWFob3VzZTsKK+S8gealremWk+e2sui3ryA8IGV4dHJhbmV0Owor6KeA5a+f6ICFIDwgb2JzZXJ2ZXI7Civps6XnsaAgPCBiaXJkY2FnZTsKK+W7uueviSA8IGJ1aWxkaW5nOwor6Jel5YqR5aOrIDwgZHJ1Z2dpc3Q7CivkuI3kv6Hku7sgPCBtaXN0cnVzdDsKK+W7uueriyA8IGNyZWF0aW9uOwor5Zug54m557ayIDwgaW50ZXJuZXQ7Civlv4PmiYsgPCBuZXdcLWhhbmQ7CivlhrDpmpkgPCBjcmV2YXNzZTsKK+mcuOasiiA8IGhlZ2Vtb255Owor5Y2x5oClIDwgY3JpdGljYWw7CivpmpnnuKsgPCBhcGVydHVyZTsKK+WwjeeoseaApyA8IHN5bW1ldHJ5Owor6Kaq6LqrIDwgcGVyc29uYWw7CivnorrlrpogPCBkZWZpbml0ZTsKK+aqoua4rOWZqCA8IGRldGVjdG9yOwor57WC6LqrIDwgbGlmZWxvbmc7CivprZTooZPluKsgPCBtYWdpY2lhbjsKK+iomOiAhSA8IHJlcG9ydGVyOwor6KaP6YG/IDwgdG9cLWV2YWRlOwor54mn5birIDwgY2hhcGxhaW47CivmlLbnm4ogPCBlYXJuaW5nczsKK+W5s+ihjCA8IHBhcmFsbGVsOwor5b+g5a+mIDwgZmFpdGhmdWw7CivmraXnmbwgPCBmb290d29yazsKK+WIhuijgiA8IHNwbGl0XC11cDsKK+aWsOabuCA8IG5ld1wtYm9vazsKK+S4jeacveeahCA8IGltbW9ydGFsOwor5Y+j5LqkIDwgb3JhbFwtc2V4Owor5Ym156uLIDwgdG9cLWZvdW5kOwor54Wk566xIDwgY29hbFwtYm94Owor5rK554K45ZyI6aSFIDwgZG91Z2hudXQ7CivnvLrkuY8gPCBzaG9ydGFnZTsKK+aXpeW+jCA8IHNvbWV0aW1lOwor5q235Y+y5oCnIDwgaGlzdG9yaWM7Civlm6DvuY3kuYvmlYUgPCBpbmFzbXVjaDsKK+eBvemboyA8IGRpc2FzdGVyOwor5b655bqVIDwgdGhvcm91Z2g7CivmqrjmqqzmsLQgPCBsZW1vbmFkZTsKK+mxieijmSA8IGNhbGlwYXNoOwor6K2m5Y+lIDwgYXBob3Jpc207Civml6nlt7IgPCBsb25nXC1hZ287CivnoLTmm4kgPCBkYXlicmVhazsKK+mbqOa7tCA8IHJhaW5kcm9wOwor5Lul5aSq57ayIDwgZXRoZXJuZXQ7CivmmI7lpKkgPCB0b21vcnJvdzsKK+WmluWtvSA8IGV2aWxkb2VyOwor6Zu75rCjIDwgZWxlY3RyaWM7CivphazloLEgPCB0b1wtcmVwYXk7CivosqDph43mk5QgPCBidXJkZW5lZDsKK+mBuueUoiA8IGhlcml0YWdlOwor56Gs5bqmIDwgaGFyZG5lc3M7CivnhKHogYogPCBub25zZW5zZTsKK+apq+mBjiA8IHRyYXZlcnNlOwor6ZuN5a655aSn5bqmIDwgZ2VuZXJvdXM7CivlvoHmiLAgPCBjYW1wYWlnbjsKK+iqsuacrCA8IHRleHRib29rOwor5YeL6KydIDwgbGFuZ3Vpc2g7CivljYHkuozmnIggPCBkZWNlbWJlcjsKK+ioiOeulyA8IHRvXC1jb3VudDsKK+mWi+mZpCA8IHRvXC1leHBlbDsKK+e6luW3pyA8IGRlbGljYXRlOwor5pOm57ay55CDIDwgbmV0XC1iYWxsOwor54Sh57irIDwgc2VhbWxlc3M7CivlhqDou40gPCBjaGFtcGlvbjsKK+WHhuiosSA8IHRvXC1hbGxvdzsKK+mbu+airyA8IGVsZXZhdG9yOwor6JOL5bGkIDwgY2FwXC1yb2NrOwor6Z2i5bCNIDwgY29uZnJvbnQ7CivnhKHnt5ogPCB3aXJlbGVzczsKK+iBluS/nee+hSA8IHN0XC5cLXBhdWw7CivpgJrntIUgPCB2ZXJ5XC1yZWQ7CivljIXmioQgPCBvdXRmbGFuazsKK+i+qOiqjSA8IGlkZW50aWZ5Owor5Y6f5L6GIDwgb3JpZ2luYWw7Civlpb3lpb3lhZLlnLAgPCBwcm9wZXJseTsKK+WkmuaVuCA8IG1ham9yaXR5Owor54mp5ZOBIDwgYXJ0aWNsZXM7CivmlL/msrsgPCBwb2xpdGljczsKK+WNiuWknCA8IG1pZG5pZ2h0Owor5paw5bm0IDwgbmV3XC15ZWFyOwor5peF5a6iIDwgdHJhdmVsZXI7CivpgLznnJ8gPCBsaWZlbGlrZTsKK+mojuWjq+awo+amgiA8IGNoaXZhbHJ5Owor6KW/6KOh54i+IDwgY3lyaWxsaWM7Civlhazph5AgPCBkZWNpZ3JhbTsKK+auuuaIriA8IG1hc3NhY3JlOwor6Im+5b636JW+5b63IDwgYWRlbGFpZGU7CivlipvmsKMgPCBzdHJlbmd0aDsKK+WFp+mDqCA8IGludGVyaW9yOwor57mh5bi3IDwgdGFwZXN0cnk7CivlpKrlv5kgPCB0b29cLWJ1c3k7CivnnaHnnKAgPCBzbGVlcGluZzsKK+WNgeWbmyA8IGZvdXJ0ZWVuOwor5bi45Z2Q5rG96LuK6ICFIDwgbW90b3Jpc3Q7CivlubPnrYkgPCBlcXVhbGl0eTsKK+WMheWxpCA8IGNsYWRkaW5nOwor5rG96LuK5bGV6Ka95pyDIDwgY2FyXC1zaG93Owor5YaN6KaLIDwgZ29vZFwtYnllOwor5Y+v5pOm5a+rIDwgZXJhc2FibGU7CivlhY3osrvou5/ku7YgPCBmcmVld2FyZTsKK+WNseS6oSA8IGF0XC1zdGFrZTsKK+W3p+ioiCA8IG1hbmV1dmVyOwor6JGX5omLIDwgY29tbWVuY2U7CivmoYPoirHlv4PmnKggPCBtYWhvZ2FueTsKK+ebsuiFuCA8IGFwcGVuZGl4Owor54mn576K6ICFIDwgc2hlcGhlcmQ7CivmlK/mn7EgPCBtYWluc3RheTsKK+W9ouWuuSA8IGRlc2NyaWJlOwor54Sh55aRIDwgbm9cLWRvdWJ0Owor5by35oKNIDwgdmFsbGlhbnQ7Civnspfph44gPCBpbnNvbGVudDsKK+iii+m8oCA8IGthbmdhcm9vOwor6Luf6auUIDwgc29mdHdhcmU7CivmlrDlnosgPCBuZXdcLXR5cGU7Civln7nogrIgPCB0b1wtdHJhaW47CivnhaTmsrkgPCBrZXJvc2VuZTsKK+WKoOaZgiA8IG92ZXJ0aW1lOwor5qiZ5rqW6KaP5qC8IDwgc3RhbmRhcmQ7CivlhYnovJ0gPCByYWRpYW5jZTsKK+W+qeWFgyA8IHJlY292ZXJ5Owor5Y2B5YWrIDwgZWlnaHRlZW47CivlpJrlsJEgPCBob3dcLW11Y2g7CivljYHlhYsgPCBkZWNhZ3JhbTsKK+WcsOmbtyA8IGxhbmRtaW5lOwor5aaC5LuKIDwgbm93YWRheXM7Civpgqrmg6EgPCBzaW5pc3RlcjsKK+eEoeirluS9leaZgiA8IHdoZW5ldmVyOwor6KeA55yLIDwgdG9cLXdhdGNoOwor5b6X5YiGIDwgdG9cLXNjb3JlOwor562G6KiY5pysIDwgbm90ZWJvb2s7Civou4Dpq5QgPCB0aGVcLWJvZHk7Civnoazku7YgPCBoYXJkd2FyZTsKK+WkqeWggiA8IHBhcmFkaXNlOwor6Jaw6KGj6I2JIDwgbGF2ZW5kZXI7CivljYHkuZ0gPCBuaW5ldGVlbjsKK+WFieitnCA8IHNwZWN0cnVtOwor6KOc6YG6IDwgYWRkZW5kdW07CivpgaDmnbEgPCBmYXJcLWVhc3Q7Civlub7kuY7mspLmnIkgPCBzY2FyY2VseTsKK+WNgeS4iSA8IHRoaXJ0ZWVuOwor5LiN5b+F6KaBIDwgbmVlZGxlc3M7CivmqZ/og70gPCBmdW5jdGlvbjsKK+iSmeWPpCA8IG1vbmdvbGlhOwor54mn5bir5LmL6IG3IDwgbWluaXN0cnk7CivpgaDmma8gPCBwcm9zcGVjdDsKK+e0kOe0hCA8IG5ld1wteW9yazsKK+aPkOitsCA8IHByb3Bvc2FsOwor6YCy5q2lIDwgcHJvZ3Jlc3M7Civpm7vloLEgPCB0ZWxlZ3JhbTsKK+iri+mhmOabuCA8IHBldGl0aW9uOwor6LuK6ZaTIDwgd29ya3Nob3A7CivlvoDkvoYgPCBkZWFsaW5nczsKK+W8leWwjiA8IHRvXC1ndWlkZTsKK+m+kyA8IGFcLWhhbHRlcjsKK+ijneiyqCA8IHNoaXBwaW5nOwor5Yqb5bqmIDwgZHluYW1pc207CivmipXos4fogIUgPCBpbnZlc3RvcjsKK+mBjuaWvCA8IHRvb1wtbXVjaDsKK+m8miA8IGRydW1taW5nOwor55uj56aBIDwgaW1wcmlzb247CivlhrDnqpYgPCBpY2Vob3VzZTsKK+WggueahyA8IGltcG9zaW5nOwor6bquIDwgcG9ycmlkZ2U7CivnnIHnlaUgPCBvbWlzc2lvbjsKK+WFreWNgeWbm+iQrCA8IDY0XC0wXC0wMDA7Civlr4TnlJ/niakgPCBwYXJhc2l0ZTsKK+iCr+WhlOWfuiA8IGtlbnR1Y2t5Owor5q+N5L+CIDwgbWF0ZXJuYWw7Civmn6zln5Tlr6ggPCBjYW1ib2RpYTsKK+m1mSA8IGFcLXNocmlrZTsKK+aOoeiytyA8IHB1cmNoYXNlOwor6LyV6KaWIDwgY29udGVtcHQ7Civnsr7oh7QgPCBkZWxpY2FjeTsKK+mzriA8IGNoaWNrZW5zOwor6YGy5bu2IDwgdG9cLWRlbGF5Owor6bK6IDwgY2F0XC1maXNoOwor5pSc5bi2IDwgdG9cLWNhcnJ5Owor5bu25bGVIDwgdG9cLXNjYWxlOwor6a+6IDwgYmxvd2Zpc2g7CivkuIDlsI/mmYIgPCBvbmVcLWhvdXI7Civpg6jkvY0gPCBwb3NpdGlvbjsKK+iSmeaJmOe+heaLiSA8IG1vdG9yb2xhOwor5Lq66KGM6YGTIDwgc2lkZXdhbGs7CivprIsgPCBmb3JlbG9jazsKK+msgCA8IHRvXC1zaGF2ZTsKK+mrtSA8IHdoaXNrZXJzOwor5YWn572uIDwgaW50ZXJuYWw7CivpmZDmnJ8gPCBkZWFkbGluZTsKK+WuieWFqOaApyA8IHNlY3VyaXR5Owor6auOIDwgaGlwXC1ib25lOwor6KiY5oa2IDwgbWVtb3JpZXM7CivpgbflsLEgPCB0b1wteWllbGQ7CivlvLfli4EgPCBwb3dlcmZ1bDsKK+auuuS6uiA8IGhvbWljaWRlOwor5YaN5L+d6Ki8IDwgcmVhc3N1cmU7Civpp6YgPCB0b1wtbW91bnQ7CivppqkgPCBhcm9tYXRpYzsKK+S6uuW3pea1geeUoiA8IGFib3J0aW9uOwor5Ymb5oCnIDwgcmlnaWRpdHk7CivppKsgPCBkdW1wbGluZzsKK+mkqSA8IGhpY2NvdWdoOwor6aSfIDwgbGliYXRpb247CivppJkgPCB0b1wtYWRvcm47CivporEgPCB0YWlwaG9vbjsKK+WLg+WLgyA8IHRocml2aW5nOwor5pOB5pOgIDwgdG9cLWNyb3dkOwor5o6I6KqyIDwgdG9cLXRlYWNoOwor6Kej5pWjIDwgZGlzc29sdmU7Civpn6EgPCBnb3JnZW91czsKK+mfoCA8IGtuZWVcLXBhZDsKK+mZsOaApyA8IGZlbWluaW5lOwor6Z26IDwgc3RvY2tpbmc7Civli5XkvZwgPCBtb3ZlbWVudDsKK+mbnuWwvumFkiA8IGNvY2t0YWlsOwor5pWm5L+DIDwgdG9cLXByZXNzOwor6ZyoIDwgY2xvdWRpbmc7CivmqYTmrJbnkIMgPCBmb290YmFsbDsKK+mbh+WToSA8IGVtcGxveWVlOwor54CJ6JelIDwgbGF4YXRpdmU7Civmj5vnva4gPCBkaXNwbGFjZTsKK+W5s+W6lemNiyA8IHNhdWNlcGFuOwor57SA5b+156KRIDwgbW9udW1lbnQ7CivlnJborIAgPCBjb25zcGlyZTsKK+iRo+S6iyA8IGRpcmVjdG9yOwor5YuV5Lq6IDwgdG91Y2hpbmc7CivpmLggPCBkaXN0cmVzczsKK+mYu+aTiiA8IHRvXC1jaGVjazsKK+ijnOiKsSA8IGFwcGxpcXVlOwor6ZWlIDwgbHV0ZXRpdW07CivloZfmirkgPCB0b1wtc21lYXI7Civoo53oiLkgPCBzaGlwbWVudDsKK+asuuWjkyA8IHRvXC1idWxseTsKK+iNkua2vCA8IGRlc29sYXRlOwor5Ye55p2/IDwgaW50YWdsaW87CivliqPli6IgPCBpbmZlcmlvcjsKK+WWh+WPreawtOS7mSA8IGRhZmZvZGlsOwor5YiG5pW4IDwgZnJhY3Rpb247Civlo5PlipsgPCBwcmVzc3VyZTsKK+mCo+WAiyA8IHRoYXRcLW9uZTsKK+eEoeaDhSA8IHBpdGlsZXNzOwor5pOm5a+rIDwgdG9cLWVyYXNlOwor5aOT5Yi2IDwgc3VwcHJlc3M7Civnsr7norogPCBhY2N1cmF0ZTsKK+mNqSA8IG5vYmVsaXVtOwor6Y2aIDwgZnJvbnRsZXQ7CivkvrXlhaXogIUgPCBpbnRydWRlcjsKK+e2k+W4uCA8IGV2ZXJ5ZGF5Owor6YySIDwgYWN0aW5pdW07CivmlLnpnanogIUgPCByZWZvcm1lcjsKK+atpeWFtSA8IGluZmFudHJ5Owor6YqNIDwgYVwtc2lja2xlOwor5bmz5oi/IDwgYnVuZ2Fsb3c7CivlhrDmtrwgPCBpY2VcLWNvbGQ7CivkvIHmpa3lhafntrLot68gPCBpbnRyYW5ldDsKK+W5u+aDsyA8IGRlbHVzaW9uOwor5bqP5bmVIDwgcHJvbG9ndWU7CivphoYgPCB3aW5lXC1jdXA7CivphoMgPCBtYXJpbmF0ZTsKK+mFsiA8IGhhbmdvdmVyOwor6YSIIDwgc2xpcHBlcnM7Civpgb/lhY0gPCB0b1wtYXZlcnQ7CivloLTmiYAgPCBsb2NhdGlvbjsKK+mChSA8IGhlc2l0YW50Owor6ZuH5Li7IDwgZW1wbG95ZXI7Civmj63nmbwgPCBkaXNjbG9zZTsKK+i/uyA8IHRvXC1zaGlmdDsKK+WCs+ioiiA8IHN1YnBvZW5hOwor6KmV5LywIDwgZXZhbHVhdGU7CivmiYvmj5DnrrEgPCBzdWl0Y2FzZTsKK+WBvemAoCA8IHRvXC1mb3JnZTsKK+eBq+eJhiA8IGZpcmV3YWxsOwor6L2KIDwgYXhsZVwtdGlwOwor6LysIDwgYVwtaGVhcnNlOwor5Ye25omLIDwgbXVyZGVyZXI7CivkuI3lkIzmhI8gPCBkaXNhZ3JlZTsKK+WFseWSjOWciyA8IHJlcHVibGljOwor54Sh5a6zIDwgaGFybWxlc3M7Civou5/oho8gPCBvaW50bWVudDsKK+i5viA8IHRvXC1zcXVhdDsKK+aOjOiBsiA8IGFwcGxhdXNlOwor6KGo6KeAIDwgYXBwYXJlbnQ7CivouacgPCB0b1wtc3BvaWw7Civln4vmspIgPCBvYmxpdmlvbjsKK+W5s+W4uCA8IG9yZGluYXJ5Owor6LimIDwgdGhlXC1zaGluOwor5ouU6ZmkIDwgcHVsbFwtb3V0Owor5aKe5YqgIDwgdG9cLXJhaXNlOwor6LeCIDwgY3JlZXBpbmc7CivnhKHoq5bkvZXkuosgPCBhbnl0aGluZzsKK+aRqeaTpiA8IGZyaWN0aW9uOwor6Ka65b6XIDwgdG9cLXRoaW5rOwor6auY6LK0IDwgZ3JhbmRldXI7Civmo5Lno6jmqZ8gPCByb2RcLW1pbGw7CivlhYXnlbYgPCBzZXJ2ZVwtYXM7CivngrrmmYIgPCB0aW1ld2lzZTsKK+mBlOWIsCA8IHRvXC1yZWFjaDsKK+ixjiA8IHZlcnRpY2FsOwor6KW/5pa5IDwgdGhlXC13ZXN0Owor57K+5Yqb5YWF5rKbIDwgdmlnb3JvdXM7CivorbkgPCB0b1wtc2hvdXQ7CivpgJrloLEgPCBidWxsZXRpbjsKK+aSpeWtkCA8IHBsZWN0cnVtOwor5oqX6auUIDwgYW50aWJvZHk7Civoh6jov5EgPCBjbG9zZVwtdG87CivojqvlpKcgPCBncmVhdGVzdDsKK+WTpeWAq+W4g+e0gCA8IGNvbHVtYnVzOwor5YiH5a+mIDwgZmVhc2libGU7Civoq4YgPCB0b1wtY2hlYXQ7CivoqYsgPCB0b1wtY3Vyc2U7CivoqYogPCBwbGVhc2luZzsKK+WIhuWtkCA8IG1vbGVjdWxlOwor55u45oeJIDwgcmVsZXZhbnQ7Civlt6bovKrmiYvmp40gPCByZXZvbHZlcjsKK+mYu+WhniA8IHRvXC1ibG9jazsKK+iltiA8IGlnbm9yYW50Owor57WV5bCNIDwgYWJzb2x1dGU7CivopasgPCByYWluY29hdDsKK+WIhuWoqSA8IGRlbGl2ZXJ5Owor566h6YGTIDwgcGlwZWxpbmU7Civlk6XlgKvmr5Tkup4gPCBjb2xvbWJpYTsKK+mBiuS8tCA8IHBsYXltYXRlOwor5bel5qWtIDwgaW5kdXN0cnk7CivlhrDmjpIgPCBpY2VcLXJhZnQ7CivpgLLlhaUgPCB0b1wtZW50ZXI7CivlsI/lpJzmm7IgPCBzZXJlbmFkZTsKK+Wwj+aomemhjCA8IHN1YnRpdGxlOwor6Lev6Z2iIDwgcGF2ZW1lbnQ7CivonZ8gPCBoZWRnZWhvZzsKK+idjyA8IFwoaW5zZWN0XCk7CivmkpLmr43ogLPoqJjkuIsgPCAyXC1zYW11ZWw7CivmkpLmr43ogLPoqJjkuIogPCAxXC1zYW11ZWw7CivmnInmqZ/pq5QgPCBvcmdhbmlzbTsKK+ebtOW+kSA8IGRpYW1ldGVyOwor54Sh5ZCNIDwgbmFtZWxlc3M7CivloLXloZ4gPCBibG9ja2FnZTsKK+aSpOWbniA8IHdpdGhkcmF3Owor6JqzIDwgYW50XC1lZ2dzOwor57aT5YW4IDwgY2xhc3NpY3M7CivmrbvooZrooZUgPCBkZWFkXC1lbmQ7CivpqLDpqLAgPCBzdGVhbWluZzsKK+S6pOmfv+absiA8IHN5bXBob255Owor6YC85Lq6IDwgcHJlc3Npbmc7CivnhKHliqkgPCBoZWxwbGVzczsKK+aOoeeUqCA8IHRvXC1hZG9wdDsKK+W3suaVhSA8IHRoZVwtbGF0ZTsKK+eZvOaxlyA8IHRvXC1zd2VhdDsKK+Wci+eriyA8IG5hdGlvbmFsOwor5pmC6ZaT6KGoIDwgc2NoZWR1bGU7CivolIkgPCBlYXJ0aFwtdXA7CivnrrToqIAgPCBwcm92ZXJiczsKK+ijnOeIkCA8IGZldHRsaW5nOwor6Ieq6KO9IDwgaG9tZW1hZGU7CivokZYgPCBmb2xsaWNsZTsKK+mgreWQkeWJjSA8IGhlYWRsb25nOwor6Zi75YqbIDwgb2JzdGFjbGU7CivmjqLpmqrogIUgPCBleHBsb3JlcjsKK+igleiglSA8IHdpZ2dsaW5nOwor6ImpIDwgdGhvbGVwaW47CivpgIHliKUgPCBmYXJld2VsbDsKK+iJjCA8IHRvXC1jYXVsazsKK+eEoeS6uiA8IHVubWFubmVkOwor5YWs5pakIDwga2lsb2dyYW07CivlkJvkuLvmlL/msrsgPCBtb25hcmNoeTsKK+WPl+mbo+iAhSA8IHN1ZmZlcmVyOwor5oq96LGhIDwgYWJzdHJhY3Q7Civlh7rlj6MgPCB0b1wtc3BlYWs7CivohLAgPCB0aGVcLW5lY2s7CivopqrlloQgPCBnb29kd2lsbDsKK+iIiOiHtCA8IGludGVyZXN0Owor6YCU5LitIDwgZW5cLXJvdXRlOwor6IKPIDwgY29wdWxhdGU7CivplpPmjqUgPCBpbmRpcmVjdDsKK+mQtei3ryA8IHJhaWxyb2FkOwor5pCs5byEIDwgbW92ZVwtc3RoOwor5be05ouJ5ZytIDwgcGFyYWd1YXk7CivmqJnmnKwgPCBzcGVjaW1lbjsKK+esrOS4gOatpSA8IHN0ZXBcLW9uZTsKK+iqv+WRs+axgSA8IGRyZXNzaW5nOwor6YCA5L2NIDwgYWJkaWNhdGU7CivnvYcgPCBhXC1nb2JsZXQ7CivpgIPkuqEgPCBmdWdpdGl2ZTsKK+aIsOmspSA8IHRvXC1maWdodDsKK+e1seS4gCA8IHRvXC11bmlmeTsKK+WIkeS6iyA8IGNyaW1pbmFsOwor5pW45pOa5bqrIDwgZGF0YWJhc2U7CivnuL8gPCBzdHJlYW1lcjsKK+e4tCA8IHRvd1wtbGluZTsKK+WCteasiuS6uiA8IGNyZWRpdG9yOwor6KGd56qBIDwgY29uZmxpY3Q7Civov73kuIogPCBvdmVydGFrZTsKK+e2ryA8IHRvXC1icmFpZDsKK+e2qiA8IGRhcmtcLXJlZDsKK+iIquepuiA8IGF2aWF0aW9uOwor5L+u6L6tIDwgcmhldG9yaWM7Civmv77mtrIgPCBmaWx0cmF0ZTsKK+S6uuWPo+eooOWvhiA8IHBvcHVsb3VzOwor57SeIDwgYVwtZnJpbmdlOwor5bCN6Z2iIDwgb3Bwb3NpdGU7Civlh73ku7YgPCBsZXR0ZXJlczsKK+W8n+WFhOWAkSA8IGJyZXRocmVuOwor5bCP6Kqq5a62IDwgbm92ZWxpc3Q7CivnsaMgPCBib3dcLWNhc2U7CivnsKwgPCBcKGJhbWJvb1wpOwor6aa06bm/IDwgcmVpbmRlZXI7CivpqZroqJ0gPCBjb25mb3VuZDsKK+aNleeNsiA8IHRvXC1jYXRjaDsKK+aOoeaooyA8IHNhbXBsaW5nOwor57SU5ZOBIDwgc3Rlcmxpbmc7Civov5HkvoYgPCByZWNlbnRseTsKK+enjyA8IHRvXC13YXN0ZTsKK+esrOS6lOWNgSA8IGZpZnRpZXRoOwor5LiJ5piO5rK7IDwgc2FuZHdpY2g7Civlr7rpmaIgPCBjbG9pc3RlcjsKK+etlOipsSA8IHRvXC1yZXBseTsKK+WCrOWMluWKkSA8IGNhdGFseXN0Owor54Gr5bGxIDwgdm9sY2FuaWM7Civlhbblr6YgPCBhY3R1YWxseTsKK+eUn+ipniA8IG5ld1wtd29yZDsKK+ejnyA8IG1lZGlvY3JlOwor5qK16KqeIDwgc2Fuc2tyaXQ7Civnoo8gPCBjb2xvdXJlZDsKK+S+v+mBkyA8IHNob3J0Y3V0Owor5raI6LK76ICFIDwgY29uc3VtZXI7Civlr6fpnZwgPCB0cmFucXVpbDsKK+eguSA8IGFzdGF0aW5lOwor55+LIDwgdG9cLXN0YXJlOwor5bCB6Y6WIDwgYmxvY2thZGU7Civkv6/oppYgPCBvdmVybG9vazsKK+eekyA8IHRvXC1zbGVlcDsKK+edjyA8IGJlXC10aXJlZDsKK+W8leS6uuazqOebriA8IHN0cmlraW5nOwor552FIDwgYmlnXC1leWVkOwor5r+V5rCjIDwgbW9pc3R1cmU7Civnm6wgPCBzYWx0XC1waXQ7CivpmL/lpYfmrbfmlq8gPCBhY2hpbGxlczsKK+eyvuWvhiA8IGFjY3VyYWN5Owor6Iy25YyZIDwgdGVhc3Bvb247CivlhYTlvJ8gPCBicm90aGVyczsKK+eZkiA8IGdldFwtd2VsbDsKK+eZgyA8IHdlYWtuZXNzOwor55i8IDwgc2lja25lc3M7CivnmLYgPCB0b1wtY291Z2g7CivnmLAgPCBzY3JvZnVsYTsKK+iIiOebmyA8IGZsb3VyaXNoOwor5YCY6IulIDwgcHJvdmlkZWQ7Civpl5zkv4IgPCByZWxhdGlvbjsKK+eZvOWwhCA8IHRvXC1zaG9vdDsKK+eTqSA8IGtpbG93YXR0Owor55CrIDwgb3JuYW1lbnQ7CivmjqHmjpggPCBleGNhdmF0ZTsKK+i2iumBjiA8IHRvXC1jcm9zczsKK+ePtyA8IFwvMlwtcHJcLXN0Owor5YW15ZmoIDwgd2VhcG9ucnk7Civmi5Tnr4AgPCBqb2ludGluZzsKK+a8lOe/kiA8IGV4ZXJjaXNlOwor5aWn5b635L+u5pavIDwgb2R5c3NldXM7CivntIrkuoIgPCBkaXNvcmRlcjsKK+i3s+iIniA8IHRvXC1kYW5jZTsKK+eKjiA8IHRoZVwtemVidTsKK+eJsyA8IFwoYm92aW5lXCk7Civnr4TnlocgPCBjYXRlZ29yeTsKK+WFteWToSA8IHNvbGRpZXJzOwor5ruy6ImyIDwgYmxlZWRpbmc7CivnhqQgPCBcKHBlcnNvblwpOwor6JuL6buDIDwgZWdnXC15b2xrOwor54SMIDwgdG9cLWxpZ2h0Owor54KkIDwgaWxsdW1pbmU7Civog4zpnaIgPCB0aGVcLWJhY2s7CivngKEgPCBzbGlwcGVyeTsKK+WdpuahkeWwvOS6niA8IHRhbnphbmlhOwor6LyU5bCOIDwgdG9cLWNvYWNoOwor5a+26LK0IDwgdmFsdWFibGU7CivmvY4gPCByaXBwbGluZzsKK+WFpeWPoyA8IGVudHJhbmNlOwor5rmiIDwgYmF0aHJvb207CivplovlibUgPCBpbml0aWF0ZTsKK+S+teidlSA8IHRvXC1lcm9kZTsKK+aJgeifsiA8IGZsYXR3b3JtOwor57aT6Zm46LevIDwgb3ZlcmxhbmQ7Civlrrnph48gPCBjYXBhY2l0eTsKK+aPj+WcliA8IHRvXC10cmFjZTsKK+Wbm+aciOWNgeS4g+iZnyA8IGFwcmlsXC0xNzsKK+i1pOi2syA8IGJhcmVmb290Owor5rOQIDwgdG9cLXdyaXRlOwor5rKNIDwgZnJlZXppbmc7CivlnKjmiLblpJYgPCBvdXRkb29yczsKK+awiSA8IHJlc3RsZXNzOwor5q++IDwgYVwtY29hcnNlOwor5q+7IDwgdG9cLW1vdWx0Owor5LiN6aGn5LiA5YiHIDwgcmVja2xlc3M7Civmrr0gPCBtaXhlZFwtdXA7Civoo73lk4EgPCBwcm9kdWN0czsKK+WFseS6qyA8IHRvXC1zaGFyZTsKK+asmyA8IGFcLWhhbmRsZTsKK+aTpuajkueQgyA8IGZvdWxcLXRpcDsKK+argyA8IGN1cGJvYXJkOwor5YWs5Li7IDwgcHJpbmNlc3M7Civmj5DlkI0gPCBub21pbmF0ZTsKK+Wbm+aWuSA8IGZvdXJcLXdheTsKK+S4reS4lue0gCA8IG1lZGlldmFsOwor5qiaIDwgYVwtcHVsbGV5Owor57KX5Y6yIDwgYWJyYXNpdmU7Civlgr7ogb3ogIUgPCBsaXN0ZW5lcjsKK+akhCA8IHRvXC1ncmFmdDsKK+aisSA8IGRvb3JzaWxsOwor5o6l5pS25ZmoIDwgcmVjZWl2ZXI7Civli6LlpoLnoLTnq7kgPCBzd2VlcGluZzsKK+iHquayuyA8IGF1dG9ub215Owor6auY5p62IDwgb3ZlcmhlYWQ7Civlm7Dmg5EgPCBiZXdpbGRlcjsKK+afpCA8IGhhd3Rob3JuOwor5p67IDwgbG9uZ1wtb2FyOwor56yR6IGyIDwgbGF1Z2h0ZXI7CivovrLlrrbluq3pmaIgPCBmYXJteWFyZDsKK+advum8oCA8IHNxdWlycmVsOwor5a625bqt5L2c5qWtIDwgaG9tZXdvcms7CivlhYjku6QgPCBzaGlsbGluZzsKK+a4oOmBkyA8IGNoYW5uZWxzOwor5pihIDwgbG9uZ1wtZGF5Owor5qCh6KiCIDwgcmV2aXNpb247Civml5ggPCBhXC1wZW5ub247Civmo5LnkIMgPCBiYXNlYmFsbDsKK+WEquWFiCA8IHByaW9yaXR5Owor5pWqIDwgdG9cLXdlaWdoOwor5pSeIDwgdG9cLXNwbGl0Owor5pOpIDwgdG9cLXN0YWluOwor5Zm05rOJIDwgZm91bnRhaW47CivmkbcgPCB0b1wta25vY2s7CivmkLUgPCB3aXBlXC1vZmY7CivmkLIgPCB0b1wtc2VpemU7CivmkIsgPCB0b1wtdGh1bXA7Civmj7AgPCBwb2tlXC1vdXQ7Civmj5wgPCBjb3ZlclwtdXA7Civou43lo6sgPCBzZXJnZWFudDsKK+aPjCA8IHRvXC1zaGFrZTsKK+iho+W7miA8IHdhcmRyb2JlOwor5ouRIDwgdG9cLWNsYW1wOwor5Lu96YePIDwgcXVhbnRpdHk7CivmiYUgPCBnYXRlXC1iYXI7Civmh4noqbIgPCBvdWdodFwtdG87CivmjqHlhYkgPCBsaWdodGluZzsKK+aHlSA8IHNhdGlhdGVkOwor5oaqIDwgY29tcG9zZWQ7CivokaHokITniZkgPCBwb3J0dWdhbDsKK+ijgeWIpCA8IGp1ZGdtZW50Owor5Y2z5bCH5L6G6IeoIDwgaW1taW5lbnQ7CivmhasgPCB0b1wtYWxhcm07CivmhYUgPCBhZ2l0YXRlZDsKK+aFgSA8IGRpc2hvbm9yOwor5Lq66aGeIDwgaHVtYW5pdHk7CivkvLDoqIggPCBlc3RpbWF0ZTsKK+aDlCA8IGNoZWVyZnVsOwor5Z2Q5LiLIDwgc2l0XC1kb3duOwor5Zue5a62IDwgaG9tZXdhcmQ7Civkvb/ogIUgPCBlbWlzc2FyeTsKK+aBnSA8IGNhcmVmcmVlOwor5omT56C0IDwgdG9cLWJyZWFrOwor5oGMIDwgdG9cLXdvcnJ5Owor5YGH5pyfIDwgdmFjYXRpb247CivkuI3mraPluLggPCBhYm5vcm1hbDsKK+iho+WtkCA8IGNvdmVyaW5nOwor6Z+z5qiC5YWJ56KfIDwgbXVzaWNcLWNkOwor6Lu85LqLIDwgYW5lY2RvdGU7Civlu6QgPCB0b1wtcGxhY2U7CivmirHmrYkgPCBiZVwtc29ycnk7CivmpbXlpb0gPCBmYWJ1bG91czsKK+alteWkpyA8IGVub3Jtb3VzOwor55WM5qiZIDwgbGFuZG1hcms7CivkuI3pgI/msKMgPCBhaXJ0aWdodDsKK+S6lOW9qeizk+e0myA8IGNvbG9yZnVsOwor5bi1IDwgcmVtbmFudHM7Civnr4DmhbYgPCBmZXN0aXZhbDsKK+aaluawo+apnyA8IHJhZGlhdG9yOwor5batIDwgZWxldmF0ZWQ7CivpmL/ogq/oibIgPCBhcmthbnNhczsKK+elnuWtuOeglOeptuaJgCA8IHNlbWluYXJ5Owor6ayn5Y2AIDwgZG93bnRvd247CivlsoogPCBmb290aGlsbDsKK+m8k+WQueiAhSA8IGFkdm9jYXRlOwor5L6155WlIDwgaW52YXNpb247CivkvbXntJcgPCBkb3VibGluZzsKK+eXheWkqyA8IHNpY2tcLW1hbjsKK+aOiOS6iCA8IHRvXC1hd2FyZDsKK+WcsOS4i+WupCA8IGJhc2VtZW50Owor5ZyL5YWnIDwgZG9tZXN0aWM7CivlrqwgPCBhcmNoaXZlczsKK+WsrCA8IG1pc3RyZXNzOwor57Ch5YyWIDwgc2ltcGxpZnk7CivmvKLlr4bniL7poJMgPCBoYW1pbHRvbjsKK+iyt+mAmiA8IHRvXC1icmliZTsKK+WGkueKr+iAhSA8IG9mZmVuZGVyOwor5aemIDwgYWR1bHRlcnk7Civnr6HlpaogPCB0b1wtdXN1cnA7Civoh6jluoogPCBjbGluaWNhbDsKK+S/neecn+W6piA8IGZpZGVsaXR5Owor5qC956iuIDwgdG9cLXBsYW50Owor5oiw55WlIDwgc3RyYXRlZ3k7CivlnJLkuIEgPCBnYXJkZW5lcjsKK+acrOmrlCA8IG5vdW1lbm9uOwor5Lq66YCgIDwgbWFuXC1tYWRlOwor6Kqe6KiA5a245a62IDwgbGluZ3Vpc3Q7CivlsYXmsJEgPCByZXNpZGVudDsKK+iFs+atpSA8IGZvb3RzdGVwOwor5Z+8IDwgaGVhZGxhbmQ7Civmi7zlrZcgPCBzcGVsbGluZzsKK+adsemDqCA8IHRoZVwtZWFzdDsKK+S4jemrlOmdoiA8IHNoYW1lZnVsOwor6auY5ZywIDwgaGlnaGxhbmQ7Civlm7rku7YgPCBmaXJtd2FyZTsKK+m+jemgreiAgeWkpyA8IGJpZ1wtYm9zczsKK+iFk+WIqemWgOabuCA8IHBoaWxlbW9uOwor6ZGy5bWMIDwgdG9cLWlubGF5Owor5qWt5YuZIDwgYnVzaW5lc3M7CivlgI3mlbggPCBtdWx0aXBsZTsKK+WwjeeFpyA8IGNvbnRyYXN0Owor5ZuuIDwgaW52ZWlnbGU7CivogqnohoAgPCBzaG91bGRlcjsKK+i6q+S7vSA8IGlkZW50aXR5Owor5ZeDIDwgdG9cLWZsdXRlOwor5bCx5q2kIDwgYW5kXC10aHVzOwor5Z+D5aGe5L+E5q+U5LqeIDwgZXRoaW9waWE7CivllYcgPCB0b1wtc3RhbGs7CivnrYbmnrYgPCBwZW5cLXJhY2s7CivllKUgPCBhXC1idW5kbGU7CivnlJ/ml6UgPCBiaXJ0aGRheTsKK+WRoCA8IHRvXC1zcHVydDsKK+mQmOaTuiA8IHBlbmR1bHVtOwor5bCP6KGd56qBIDwgc2tpcm1pc2g7Civlj5IgPCBvYmVkaWVudDsKK+WOtSA8IGFcLXNwcmluZzsKK+aKseaAqCA8IGNvbXBsYWluOwor5Y28IDwgdW5zdGVhZHk7CivljbkgPCBzeW1wYXRoeTsKK+WtuOe/kiA8IHRvXC1sZWFybjsKK+aKmOaJoyA8IGRpc2NvdW50Owor5YuMIDwgdG9cLWxhYm9yOwor5Yq7IDwgZmx1cnJpZWQ7Civmh7jnlpEgPCBzdXNwZW5zZTsKK+WKmSA8IGFcLWRpdmlkZTsKK+aHt+eWkSA8IHRvXC1kb3VidDsKK+eVtuWkqSA8IHRoYXRcLWRheTsKK+WJnyA8IHRvXC1wcmljazsKK+mNteebpCA8IGtleWJvYXJkOwor5YelIDwgdG9cLWR3ZWxsOwor5YaHIDwgaGF2ZVwtbm90Owor5o6S5rC05rigIDwgZHJhaW5hZ2U7Civlt7Tln7rmlq/lnaYgPCBwYWtpc3RhbjsKK+m6u+mGieWKkSA8IG5hcmNvdGljOwor5YODIDwgcHJlcGFyZWQ7CivlrrbnlKggPCBob21lXC11c2U7CivkvbQgPCBhXC1zZWNvbmQ7CivooqvkvrXlrrMgPCBzdHJpY2tlbjsKK+iHtOWKmyA8IHdvcmtcLWZvcjsKK+S6lOinkiA8IHBlbnRhZ29uOwor5LayIDwgdGhlXC1lZGdlOwor5LWyIDwgcmF3XC1oZW1wOwor5LWaIDwga2FvbGlhbmc7CivktZMgPCB0aGVcLW1vbGU7CivktYkgPCBhYnV0aWxvbjsKK+S0uyA8IGRyeVwtZm9vZDsKK+S0qyA8IGFudGVsb3BlOwor5oi/5p2xIDwgbGFuZGxvcmQ7CivktJogPCBzYWx0cG9uZDsKK+SzuyA8IGFuXC1lYWdsZTsKK+S/ruW7uiA8IHRvXC1idWlsZDsKK+SyliA8IGJpZ1wtZmlzaDsKK+ioiOeul+apnyA8IGNvbXB1dGVyOwor56qB55m8IDwgb3V0YnVyc3Q7CivksJ8gPCB0aGVcLXNvdWw7Civkr6ogPCBiaWdcLWhlYWQ7Civkv6HlvpIgPCBiZWxpZXZlcjsKK+SvmiA8IHRoZVwtcmliczsKK+SviSA8IHRvXC1jaG9rZTsKK+eZveacqOiAsyA8IHRyZW1lbGxhOwor5omT5o6DIDwgdG9cLWNsZWFuOwor5oqA5belIDwgbWVjaGFuaWM7CivmjIHkuYUgPCBkdXJhdGlvbjsKK+StsSA8IGFcLWxpdHRsZTsKK+miqOi7iiA8IHdpbmRtaWxsOwor542o6KOB6ICFIDwgZGljdGF0b3I7CivkrIkgPCBob3RcLXdpbmQ7Civkq7cgPCB0aGVcLWpvd2w7CivmiYvmj5AgPCBwb3J0YWJsZTsKK+S4jemdiCA8IG5vdFwtd29yazsKK+SrgyA8IHRoZVwtbGlwczsKK+SqtiA8IHRoZVwtY2hpbjsKK+SqqSA8IHRvXC1jaGFudDsKK+SqnCA8IGFcLXNoaWVsZDsKK+SqkSA8IHRvXC1zdGljazsKK+SqhSA8IGFcLXF1aXZlcjsKK+SpoCA8IGFcLWdpcmRsZTsKK+SpiSA8IHRoZVwtZmFjZTsKK+SpiCA8IGFcLXBsdW1weTsKK+SovCA8IGR5ZXN0dWZmOwor55Sf5a2YIDwgdG9cLWV4aXN0Owor6LOm56iFIDwgdGF4YXRpb247Civkp6sgPCBhXC10cmVuY2g7Civkp4EgPCB0b1wtbGVhdmU7CivmtbTooaMgPCBiYXRocm9iZTsKK+S4gOmdoiA8IG9uZVwtc2lkZTsKK+SlrSA8IGV2aWRlbmNlOwor5oGQ6b6NIDwgZGlub3NhdXI7CivoqJjpjITlk6EgPCByZWNvcmRlcjsKK+SkvyA8IHRvXC1jYXJ2ZTsKK+SktiA8IGFcLWhhbW1lcjsKK+SksyA8IGFcLW1pcnJvdzsKK+W3tOW3tOWkmuaWryA8IGJhcmJhZG9zOwor5KSrIDwgYVwtY2hpc2VsOwor5KSQIDwgdG9cLWRyaW5rOwor55Wr5YOPIDwgcG9ydHJhaXQ7CivnlbbkvZwgPCB0cmVhdFwtYXM7Civnpq7osowgPCBjb3VydGVzeTsKK+SikCA8IHRvXC1nb1wtdG87CivomIfmoLzomK0gPCBzY290bGFuZDsKK+S/oeWwgSA8IGVudmVsb3BlOwor5KC+IDwgdG9cLWRvZGdlOwor5KCsIDwgaW5zb21uaWE7CivkoJ4gPCB3cmlua2xlZDsKK+iBsueosSA8IHRvXC1jbGFpbTsKK+SggSA8IHRvXC1nb1wtdXA7Civkn7ggPCB0aGVcLWNhbGY7CivlsI3miYsgPCBvcHBvbmVudDsKK+S/oeWuiCA8IGFiaWRlXC1ieTsKK+SeriA8IHRvXC1jcmF3bDsKK+iBlue0hCA8IGNvdmVuYW50Owor5qCh5q2jIDwgcmVndWxhdGU7CivknYIgPCB0b1wtZXJlY3Q7CivknKwgPCBhXC1jYXZlcm47CivknJggPCB0b1wtZ3VhcmQ7CivknJAgPCB0b1wtbGliZWw7CivknIMgPCB0b1wtYmxhbWU7Civkm5IgPCB0b1wtYXJndWU7Civph43pu54gPCBlbXBoYXNpczsKK+SbhyA8IHRvXC1sYXVnaDsKK+SatyA8IHRvXC10cmVhdDsKK+SaryA8IHRvXC1xdWVsbDsKK+iBveecviA8IGF1ZGllbmNlOwor6JGh6JCE5ZySIDwgdmluZXlhcmQ7CivkmKsgPCBvbGRcLXJhZ3M7CivkmJwgPCBhXC1uYXBraW47CivkmIkgPCBzaWxrd29ybTsKK+mojuW4qyA8IGhvcnNlbWFuOwor56en6IuXIDwgc2VlZGxpbmc7Civkl5ggPCBhXC13ZWV2aWw7Civkl4ggPCBhXC1nYWRmbHk7Civkvb/oiIjlpa4gPCBleGNpdGluZzsKK+SXhyA8IHRoZVwtdG9hZDsKK+SWuyA8IGVwaGVtZXJhOwor5JakIDwgdG9cLWNyZWVwOwor5JabIDwgb2ZcLXRpZ2VyOwor56ys5Y2B5LiAIDwgZWxldmVudGg7Civmga3poIYgPCBkZWZlcmVudDsKK+mNteanvSA8IGtleVwtc2xvdDsKK+izvOeJqSA8IHNob3BwaW5nOwor5Zau5pOaIDwgcmVjZWlwdHM7CivmnIPoroogPCB2YXJpYWJsZTsKK+STlSA8IHBvbHlnYWxhOwor5JKzIDwgYVwtZmxvd2VyOwor5bCR5bm0IDwganV2ZW5pbGU7CivpqJnlrZAgPCBzd2luZGxlcjsKK+iBr+ebnyA8IGFsbGlhbmNlOwor5JGYIDwgdG9cLXBvdW5kOwor5JGDIDwgZGltXC1tb29uOwor5JCSIDwgbm90XC1maW5lOwor5pa556iL5byPIDwgZXF1YXRpb247Civot6/lj6MgPCBjcm9zc2luZzsKK+SPnyA8IGZhdFwtbWVhdDsKK+iZlee9sCA8IHBlbmFsaXplOwor5I+JIDwgdG9cLXdhdmVyOwor5I+IIDwgdG9cLXVuaXRlOwor6YeR6a2aIDwgZ29sZGZpc2g7CivkjrIgPCBlYXJcLWxvYmU7CivkjqMgPCBhXC1wbG91Z2g7CivlvavliLvlrrYgPCBzY3VscHRvcjsKK+SMtyA8IGFcLXRocmVhZDsKK+SMryA8IGFcLXRydWJhbjsKK+SMqyA8IGFcLWhhd3NlcjsKK+WQq+mHjyA8IGNvbnRlbnRzOwor5IyDIDwgcmF3XC1zaWxrOwor6Zi/5omY5ZOBIDwgYXRyb3BpbmU7Civki6EgPCB0b1wtcmVsYXg7Civki4MgPCBzdGluZ2luZzsKK+SKuCA8IHRvXC10d2lzdDsKK+SKnSA8IHRvXC1leGlsZTsKK+eUqOWKnyA8IGRpbGlnZW50Owor5IqBIDwgbGVhdmluZ3M7CivkibsgPCByZWRcLXJpY2U7CivkibEgPCBhXC1jcmFkbGU7CivkiZIgPCBhXC13aW5ub3c7CivkiLYgPCBhblwtYXJyb3c7CivlnLDljYDmgKcgPCByZWdpb25hbDsKK+SHjCA8IHRvXC1zdGFuZDsKK+SGuCA8IHNwYWNpb3VzOwor562G5ZCNIDwgcGVuXC1uYW1lOwor5L2b5pWZIDwgYnVkZGhpc207Civlj6/pnaAgPCByZWxpYWJsZTsKK+S4ieinkuW9oiA8IHRyaWFuZ2xlOwor5a+T5omAIDwgZHdlbGxpbmc7Civkg5EgPCBzcGVja2xlczsKK+SBpSA8IHRvXC1ibGluazsKK+SBnCA8IGJpZ1wtZXllczsKK+eUseS9mSA8IG93aW5nXC10bzsKK+SAiCA8IGFcLXZlc3NlbDsKK+O/oiA8IHRvXC1zaGluZTsKK+O/oSA8IGFcLWhlbG1ldDsKK+O/iCA8IGFuXC11bGNlcjsKK+O/hSA8IHJpbmd3b3JtOwor4764IDwgYVwtc2NhYmJ5Owor6aCB6Z2iIDwgd2ViXC1wYWdlOwor476NIDwgZGlzZWFzZXM7CivjvbkgPCB0b1wtZmFpbnQ7CivmuLTmnJsgPCBkZXNpcm91czsKK+acrOiDvSA8IGluc3RpbmN0Owor5Zec5aW9IDwgZm9uZG5lc3M7CivntYLnq6/nlKjmiLYgPCBlbmRcLXVzZXI7CivloqjmsLTnk7bmnrYgPCBpbmtzdGFuZDsKK+O6miA8IGFuXC1vdHRlcjsKK+iqmOaLkOiAhSA8IGFiZHVjdG9yOwor57y66Zm3IDwgYVwtZGVmZWN0Owor47qHIDwgYVwtd2FyZGVuOwor47m4IDwgdGhlXC1saW9uOwor6JuL5q68IDwgZWdnc2hlbGw7CivmiLLliofmgKcgPCBkcmFtYXRpYzsKK+aHsue9sOaApyA8IHB1bml0aXZlOwor47idIDwgYVwtc2hvdmVsOwor5YWr6KeS5qWTIDwgYWxhbmdpdW07Civjt4AgPCBzb2xpdGFyeTsKK+O2vCA8IHZlcnlcLWhvdDsKK+O0tiA8IHRvXC13YXRlcjsKK+a7keWGsCA8IHRvXC1za2F0ZTsKK+O0iiA8IGFuXC1hYnlzczsKK+OzqyA8IHJlcGVhdGVkOwor47OSIDwgc3RhdHV0ZXM7CivljJfmtbfpgZMgPCBob2trYWlkbzsKK+OytyA8IG5pdHJvZ2VuOwor47KzIDwgdG9cLXRvdWNoOwor5a6X5pWZIDwgcmVsaWdpb247CivkvY7miJDmnKwgPCBsb3dcLWNvc3Q7Civjsb8gPCB0aGVcLWh1c2s7CivjsbogPCB0aGVcLXNraW47CivjsaIgPCB0aGVcLWRlYWQ7CivjsZcgPCBhXC1icmVhdGg7Civlkb3ohIggPCBsaWZlbGluZTsKK+S5g+iHsyA8IGFuZFwtZXZlbjsKK+enn+eohSA8IGxhbmRcLXRheDsKK+S4jeihjCA8IHdvbicndFwtZG87CivlrojmmYIgPCBwdW5jdHVhbDsKK+OurSA8IGFcLWNhc2tldDsKK+aal+i9iSA8IGJsYWNrb3V0Owor5omT5Y2wIDwgdG9cLXByaW50Owor46ynIDwgYVwtY29sbGFyOwor5piO5L+h54mHIDwgcG9zdGNhcmQ7CivmlZHotJbkuLsgPCByZWRlZW1lcjsKK+OrvSA8IGRhcmtuZXNzOwor46qQIDwgdW5zdGFibGU7CivosoLnmq4gPCBtaW5rXC1mdXI7CivjqaggPCB0b1wtY3JhY2s7CivjqZMgPCB0b1wtd291bmQ7CivphqvpmaIgPCBob3NwaXRhbDsKK+OokyA8IHRvXC1jbG9zZTsKK+OogSA8IHRvXC10aHJvdzsKK+OntSA8IHRvXC1leGFjdDsKK+OnsSA8IHRvXC1icmluZzsKK+azs+ihoyA8IHN3aW1zdWl0Owor46a/IDwgYVwtd2luZG93Owor5rea5rC0IDwgdGVhcmRyb3A7CivnlJ/lkb3lipsgPCB2aXRhbGl0eTsKK+OlsCA8IG1vdXJuZnVsOwor46WBIDwgbW9yYWxpdHk7CivjpK4gPCBhblwtZXJyb3I7CivjpI8gPCBncmlldm91czsKK+iCieahgiA8IGNpbm5hbW9uOwor46OrIDwgdGhlXC1oZWVsOwor5rib5o6JIDwgc3VidHJhY3Q7Civjo54gPCB0b1wtd2Fsa2k7CivpvLvngo4gPCByaGluaXRpczsKK+OguSA8IGFcLXR1cmJhbjsKK+eUoumHj+WkmiA8IGZydWl0ZnVsOwor55yL5a6I6ICFIDwgd2F0Y2htYW47CivjoIogPCBhXC1ydWdnZWQ7Civms5XliKnos73kurogPCBwaGFyaXNlZTsKK+OetyA8IGx1eHVpYW50Owor5ZCR6KW/IDwgd2VzdHdhcmQ7Civlj5vpgIYgPCB0b1wtcmViZWw7CivjnpEgPCB0aGVcLXRhaWw7CivjnokgPCBiaWdcLWZvb3Q7Civjna0gPCB0b1wtYXdha2U7CivjnZggPCBoYXJtb25veTsKK+OctiA8IGFcLWNvdXBsZTsKK+aIsOWNgCA8IHdhclwtem9uZTsKK+WPseiyrCA8IHJlcHJvYWNoOwor5L2U6aCY6ICFIDwgb2NjdXBhbnQ7Civnp5HnvoXmi4nlpJogPCBjb2xvcmFkbzsKK+iynua9lCA8IGNoYXN0aXR5Owor45miIDwgYVwtdHJvd2VsOwor45mDIDwgYVwtY2F2aXR5Owor5qCX5a2QIDwgY2hlc3RudXQ7CivjmJkgPCB0b1wtZ3JvYW47CivjmIAgPCB0b1wtc291bmQ7CivkuK3nubwgPCB0b1wtcmVsYXk7Civjl6ogPCBtb3V0aGZ1bDsKK+OXnCA8IHRvXC1zbWVsbDsKK+OXiSA8IGluY2lzaXZlOwor45apIDwgbm90XC1wdXJlOwor45W8IDwgdG9cLWJyYXdsOwor6Y6u5Y2AIDwgdG93bnNoaXA7CivjlZsgPCBhXC1mcmllbmQ7CivjlZAgPCBpbmNsaW5lZDsKK+OViiA8IHRvXC1zbGFudDsKK+adv+ayuSA8IGxlYWZcLWZhdDsKK+WMquW+kumbhuWcmCA8IGdhbmdzdGVyOwor45OTIDwgdGhpblwtaWNlOwor45K5IDwgdG9cLXVwc2V0Owor5oe45Z6CIDwgb3Zlcmhhbmc7CivlsITpoLvlmarpn7MgPCByZlwtbm9pc2U7CivphZLprLwgPCBkcnVua2FyZDsKK+S4jeiCliA8IHVud29ydGh5Owor54+t5qmfIDwgYWlybGluZXI7CivjkJwgPCBhblwtZW5lbXk7Civkvb/lkIPpqZogPCBhc3RvbmlzaDsKK+eql+WtkCA8IGNhc2VtZW50Owor5oeJ5bCNIDwgcmVzcG9uc2U7CivkuqTmtYEgPCBleGNoYW5nZTsKK+WPm+iuiiA8IHJlbmVnYWRlOwor5oiw5LqLIDwgZmlnaHRpbmc7CivlubjlrZjogIUgPCBzdXJ2aXZvcjsKK+S6uumBk+S4u+e+qSA8IGh1bWFuaXNtOwor5LiA5b+D5LiA5oSPIDwgaW50ZW50bHk7Civmq7voirHojYkgPCBwcmltcm9zZTsKK+aguOWHhiA8IHNhbmN0aW9uOwor5pif5pyf5ZubIDwgdGh1cnNkYXk7CivmsbrlrprmgKcgPCBkZWNpc2l2ZTsKK+aXpeiAs+abvCA8IGdlcm1hbmljOwor6K206LKsIDwgZGVub3VuY2U7CivmoYjku7YgPCBsYXdcLWNhc2U7Civlub7kvZXlrbggPCBnZW9tZXRyeTsKK+Wnu+imqiA8IGFmZmluaXR5Owor5p2R5rCRIDwgdmlsbGFnZXI7CivmhbfmhaggPCB2ZWhlbWVudDsKK+irlum7niA8IGFyZ3VtZW50Owor5YK+5ZCR5pa8IDwgcHJvbmVcLXRvOwor6buD55OcIDwgY3VjdW1iZXI7Civmmpfoh6ogPCBpbndhcmRseTsKK+aHiuWWqiA8IGRlamVjdGVkOwor56iA5pyJIDwgdW5jb21tb247Civpo5vmqZ8gPCBhaXJwbGFuZTsKK+WupOWPiyA8IHJvb21tYXRlOwor6LK25oqRIDwgYmVsaXR0bGU7Civog4zljIUgPCBrbmFwc2FjazsKK+eyvuelnumMr+S6giA8IGluc2FuaXR5Owor6buo5rS+IDwgcGFydGlzYW47CivlrZDlsaQgPCBzdWJsYXllcjsKK+mjsuaWmSA8IGJldmVyYWdlOwor5LiJ5pyI5LqM5Y2B5LiA6JmfIDwgbWFyY2hcLTIxOwor5Lq65omLIDwgbWFucG93ZXI7CivmmJ/mnJ/lha0gPCBzYXR1cmRheTsKK+mYsuWuiOiAhSA8IGRlZmVuZGVyOwor5LqM5pyIIDwgZmVicnVhcnk7CivmspLokL0gPCBkb3duZmFsbDsKK+WQq+eisyA8IGNhcmJvbmljOwor5ZiJ5bm06I+v5pyDIDwgY2Fybml2YWw7CivmnIDngrogPCB0aGVcLW1vc3Q7CivljZrojKjnk6bntI0gPCBib3Rzd2FuYTsKK+S4jeeUqCA8IG5lZWRcLW5vdDsKK+miqOawtCA8IGZlbmdzaHVpOwor5rC06LevIDwgd2F0ZXJ3YXk7CivlrZDlpbMgPCBjaGlsZHJlbjsKK+S6i+aVhSA8IGFjY2lkZW50Owor5Yi65r+A54mpIDwgc3RpbXVsdXM7Civlo5/mlrfosqnos6MgPCBtb25vcG9seTsKK+S4jeeNqCA8IG5vdFwtb25seTsKK+Wlp+WFi+aLieiNt+mmrCA8IG9rbGFob21hOwor5a215YyWIDwgYnJlZWRpbmc7Civpnq3on7IgPCB3aGlwd29ybTsKK+S4jeeIvSA8IG5vdFwtd2VsbDsKK+S/neWKoOWIqeS6niA8IGJ1bGdhcmlhOwor5oeC5LqLIDwgc2Vuc2libGU7Civpo5/mhb4gPCBhcHBldGl0ZTsKK+mch+mpmiA8IHRvXC1zaG9jazsKK+WQuOeFmSA8IHRvXC1zbW9rZTsKK+isneisnSA8IHRvXC10aGFuazsKK+S4jea/nyA8IG5vdFwtZ29vZDsKK+mgreeXmyA8IGhlYWRhY2hlOwor5pqX55uSIDwgbWFnYXppbmU7CivkuK3mraIgPCB0b1wtY2Vhc2U7CivorJvoqbEgPCBhXC1zcGVlY2g7CivmnpflnLAgPCB3b29kbGFuZDsKK+aetuWLoiA8IGF0dGl0dWRlOwor6LK05peP6Lqr5Lu9IDwgbG9yZHNoaXA7CivkuI3kv6HnlKggPCBkaXN0cnVzdDsKK+WkqumVtyA8IG92ZXJzaXplOwor5Yui6aCtIDwgbW9tZW50dW07CivmhJrlvIQgPCBkZXJpc2lvbjsKK+W+gOmChCA8IGNvbnRhY3RzOwor56Sm55SiIDwgbWluZXJhbHM7Civmj5Dkvpvoq7ggPCBwcm92aWRlcjsKK+eIkOmCiiA8IGZpcmVzaWRlOwor6IKM6IKJ55m86YGUIDwgbXVzY3VsYXI7Civlt6XnqIvluKsgPCBlbmdpbmVlcjsKK+iuiueoriA8IG11dGF0aW9uOwor5Lit57m85ZmoIDwgcmVwZWF0ZXI7Civoq5bov7AgPCB0cmVhdGlzZTsKK+a0i+eQteeQtiA8IG1hbmRvbGluOwor6IGW5YyWIDwgc2FuY3RpZnk7Civmg6HkvZzliocgPCBtaXNjaGllZjsKK+mHjeeUsyA8IHJlYWZmaXJtOwor5pq05rSqIDwgYVwtc3VkZGVuOwor5a2Q5Y2I57eaIDwgbWVyaWRpYW47Civoo73kvZzogIUgPCBwcm9kdWNlcjsKK+S4jeWcqOS5jiA8IG5vdFwtbWluZDsKK+mkoeWFkiA8IHN0dWZmaW5nOwor6Z+z5qiC5a62IDwgbXVzaWNpYW47Civkvb/purvnl7ogPCBwYXJhbHl6ZTsKK+WNg+Wtl+evgCA8IGtpbG9ieXRlOwor6K6K6Zi75ZmoIDwgdGhlb3N0YXQ7CivmtYHmhJ/nlqvoi5cgPCBmbHVcLXNob3Q7CivmtbflpJYgPCBvdmVyc2VhczsKK+eOi+WutiA8IHByaW5jZWx5Owor5ZOo5YW1IDwgc2VudGluZWw7Civmg7PlrrYgPCBob21lc2ljazsKK+iyt+S4uyA8IGN1c3RvbWVyOwor6aCQ5risIDwgZm9yZWNhc3Q7Civnvo7ml6UgPCB1c1wtamFwYW47CivosqDlgrUgPCBpbmRlYnRlZDsKK+mbqOmHjyA8IHJhaW5mYWxsOwor5Y+45rOVIDwganVkaWNpYWw7CivlpbPmiL/mnbEgPCBsYW5kbGFkeTsKK+W3peS9nOmBjuW6piA8IG92ZXJ3b3JrOwor5Yqg6ZW3IDwgbGVuZ3RoZW47CivlkJDmo4QgPCB0b1wtc3B1cm47CivomZXliIYgPCBkaXNwb3NhbDsKK+aXpee+jiA8IGphcGFuXC11czsKK+WinumrmCA8IGhlaWdodGVuOwor6YGy6aCTIDwgaW5hY3RpdmU7CivosqHkuLsgPCByaWNoXC1tYW47CivlpKLoqbEgPCBkYXlkcmVhbTsKK+aPkOS+m+iAhSA8IHN1cHBsaWVyOwor5LiN5oeIIDwgdW50aXJpbmc7CivmnIDlsJEgPCBzbWFsbGVzdDsKK+WgheWbuuaApyA8IGZpcm1uZXNzOwor6K2354WnIDwgcGFzc3BvcnQ7CivkuLvlrrAgPCBkb21pbmF0ZTsKK+WkouimiyA8IHRvXC1kcmVhbTsKK+S4jeaAlSA8IGZlYXJsZXNzOwor5rKW5rSXIDwgdG9cLXJpbnNlOwor5LiN5b6IIDwgbm90XC12ZXJ5Owor55m95YyW55eFIDwgYWxiaW5pc207CivlibfpmaQgPCByb290XC1vdXQ7CivnpZ7mgKcgPCBkaXZpbml0eTsKK+e4veijgSA8IGNoYWlybWFuOwor5rKJ5rW4IDwgcGVybWVhdGU7CivnrKzlha3ljYEgPCBzaXh0aWV0aDsKK+e+juW+tyA8IGFcLXZpcnR1ZTsKK+mbhOi+ryA8IGVsb3F1ZW50Owor6bue5ZCNIDwgcm9sbGNhbGw7Civosarkv6AgPCBjYXZhbGllcjsKK+aWh+aYjuWMliA8IGNpdmlsaXplOwor5aSW6JmfIDwgbmlja25hbWU7CivmtbfkuIogPCBtYXJpdGltZTsKK+eGseiqoCA8IGRldm90aW9uOwor5ZCI5oiQIDwgY29tcG91bmQ7CivlpJbkuqTlrpggPCBkaXBsb21hdDsKK+WQjOaEjyA8IHRvXC1hZ3JlZTsKK+WQkeW+jCA8IGJhY2t3YXJkOwor5pyN5YuZIDwgdG9cLXNlcnZlOwor5rCR55y+IDwgcG9wdWxhY2U7CivlqIHmnJsgPCBwcmVzdGlnZTsKK+a0u+WLlSA8IGFjdGl2aXR5Owor5Y+b5pWZIDwgYXBvc3RhY3k7Civnmb3pm7Lnn7MgPCBkb2xvbWl0ZTsKK+Wkp+iDvSA8IGFsbWlnaHR5Owor5pmC5qmfIDwgb2NjYXNpb247Civlj43mmKAgPCByZWFjdGlvbjsKK+aWh+iBtyA8IGNpdmlsaWFuOwor5ama5auBIDwgbWFycmlhZ2U7CivlkJvlrZAgPCBub2JsZW1hbjsKK+eJuea0viA8IGRpc3BhdGNoOwor5L2/57+S5oWjIDwgYWNjdXN0b207CivkuIDlnJggPCByZWdpbWVudDsKK+aSremfsyA8IHRyYW5zbWl0Owor5Y+w5bqnIDwgcGVkZXN0YWw7CivpgY7ovIkgPCBvdmVybG9hZDsKK+elluWciyA8IGhvbWVsYW5kOwor5rOw5ZyLIDwgdGhhaWxhbmQ7Civop6PplosgPCB0b1wtdW50aWU7CivmhJvlm6Dmlq/lnaYgPCBlaW5zdGVpbjsKK+aal+WupCA8IGRhcmtyb29tOwor5aW254mbIDwgbWlsa1wtY293Owor5Yaw5pm255+zIDwgY3J5b2xpdGU7CivlubTpnZIgPCB5b3V0aGZ1bDsKK+S4gOWRqCA8IG9uZVwtd2VlazsKK+S4gOWQkSA8IGFsbFwtbG9uZzsKK+abneWFiSA8IGV4cG9zdXJlOwor5LiN5bCP5b+DIDwgaGVlZGxlc3M7CivntI3nqIXkurogPCB0YXhwYXllcjsKK+eEoeirluS9leiZlSA8IGFueXdoZXJlOwor5YaN5Ye654++IDwgcmVhcHBlYXI7CivkuIDljJkgPCBzcG9vbmZ1bDsKK+eglOeptiA8IHJlc2VhcmNoOwor5oCg5oOwIDwgaWRsZW5lc3M7CivljIXnmq4gPCB3cmFwcGluZzsKK+mdoOiDjOakhSA8IGFybWNoYWlyOwor5aWJ54++IDwgb2ZmZXJpbmc7CivkuI3lgKYgPCB0aXJlbGVzczsKK+aTjeS9nOiAhSA8IG9wZXJhdG9yOwor6KiC6LO8IDwgdG9cLW9yZGVyOwor57Wy54uA54mpIDwgZmlsYW1lbnQ7CivmlpHnmb0gPCBncml6emxlZDsKK+aatOWKmyA8IHZpb2xlbmNlOwor6K2m5oOVIDwgdmlnaWxhbnQ7Civms6Lli5UgPCB1bmR1bGF0ZTsKK+Wlh+eJuSA8IHBlY3VsaWFyOwor5b+g5pa8IDwgbG95YWxcLXRvOwor55m85piO5a62IDwgaW52ZW50b3I7CivpgbjoiIkgPCB0b1wtZWxlY3Q7CivlpKfopb/mtIsgPCBhdGxhbnRpYzsKK+mfjOW4tiA8IGxpZ2FtZW50Owor6L+3IDwgYmV3aXRjaDsKK+i/sCA8IG5hcnJhdGU7Civov6UgPCBkaXN0YW50Owor5LitIDwgY2VudHJhbDsKK+W/lyA8IHB1cnBvc2U7Civov44gPCByZWNlaXZlOwor5b+MIDwgamVhbG91czsKK+WSjCA8IGhhcm1vbnk7Civovq8gPCBkaXNwdXRlOwor5Y67IDwgZ29cLWF3YXk7Civlr7kgPCBjb3JyZWN0Owor556gIDwgbG9va1wtYXQ7CivlvosgPCBzdGF0dXRlOwor5b25IDwgc2VydmljZTsKK+W8tSA8IHN0cmV0Y2g7Civlt7IgPCBhbHJlYWR5Owor5byYIDwgZW5sYXJnZTsKK+W8lSA8IHRvXC1wdWxsOwor5byUIDwgY29uZG9sZTsKK+i8gyA8IGNvbXBhcmU7CivmhI8gPCB0aG91Z2h0Owor6L+bIDwgYWR2YW5jZTsKK+eboSA8IGV4aGF1c3Q7Civlu4kgPCB1cHJpZ2h0Owor5oOFIDwgZmVlbGluZzsKK+easCA8IHBpbXBsZXM7CivlupYgPCBraXRjaGVuOwor6LqTIDwgc3R1bWJsZTsKK+W6hCA8IHZpbGxhZ2U7CivlubYgPCBjb21iaW5lOwor6LmgIDwgc3RlcFwtb247CivnmZYgPCBjcmF2aW5nOwor5bmVIDwgY3VydGFpbjsKK+S7oyA8IHJlcGxhY2U7CivluKsgPCB0ZWFjaGVyOwor5oC7IDwgY29sbGVjdDsKK+eXtCA8IGZvb2xpc2g7CivljY4gPCBmbG93ZXJ5Owor55eHIDwgZGlzZWFzZTsKK+eXhSA8IGlsbG5lc3M7Civlj40gPCByZXZlcnNlOwor55aOIDwgbmVnbGVjdDsKK+WKoSA8IGFmZmFpcnM7CivltKkgPCBydXB0dXJlOwor54m5IDwgc3BlY2lhbDsKK+acjSA8IGNsb3RoZXM7Civos70gPCBjb21wZXRlOwor6LORIDwgcmVsaWV2ZTsKK+enkSA8IHNlY3Rpb247CivosasgPCByZWxheGVkOwor6IGUIDwgY29ubmVjdDsKK+S/nSA8IHByb3RlY3Q7CivpnakgPCBsZWF0aGVyOwor5bCKIDwgcmVzcGVjdDsKK+WTgSA8IGFydGljbGU7CivlsIkgPCBvZmZpY2VyOwor5aOrIDwgc2Nob2xhcjsKK+mHjyA8IG1lYXN1cmU7CivnqIsgPCBqb3VybmV5Owor5a+pIDwgZXhhbWluZTsKK+aegSA8IGV4dHJlbWU7Civku6QgPCBjb21tYW5kOwor5pyqIDwgbm90XC15ZXQ7CivmjIEgPCBzdXN0YWluOwor5Y6GIDwgaGlzdG9yeTsKK+WuoyA8IGRlY2xhcmU7CivlrpcgPCBsaW5lYWdlOwor6K6uIDwgY29uc3VsdDsKK+eOhyA8IHRvXC1sZWFkOwor5aeUIDwgYXBwb2ludDsKK+WFtSA8IHNvbGRpZXI7CivlrZQgPCBvcGVuaW5nOwor6Ky5IDwgcHJ1ZGVudDsKK+ismyA8IGV4cGxhaW47CivmoLwgPCBwYXR0ZXJuOwor6Ku4IDwgc2V2ZXJhbDsKK+irpiA8IGNhcmVmdWw7CivmgJUgPCB0b1wtZmVhcjsKK+eLoSA8IGN1bm5pbmc7Civlh4YgPCBhcHByb3ZlOwor57K+IDwgZXNzZW5jZTsKK+ernyA8IGZpbmFsbHk7CivoqqAgPCBzaW5jZXJlOwor5pW0IDwgb3JkZXJseTsKK+WpiSA8IGFtaWFibGU7CivlpIcgPCBwcmVwYXJlOwor5Y+mIDwgYW5vdGhlcjsKK+mZiCA8IGV4aGliaXQ7CivmlYUgPCBhbmNpZW50Owor6KibIDwgc3dpbmRsZTsKK+iolyA8IGVudHJ1c3Q7CivoqIogPCBpbnF1aXJlOwor54iGIDwgY3JhY2tsZTsKK+aJuSA8IGNvbW1lbnQ7CivpgIEgPCBzZWVcLW9mZjsKK+WlhyA8IHN0cmFuZ2U7Civnh5UgPCBzd2FsbG93Owor54eIIDwgbGFudGVybjsKK+a4uCA8IHRvXC1zd2ltOwor5Lu9IDwgcG9ydGlvbjsKK+aVoiA8IHRvXC1kYXJlOwor54W9IDwgc3RpclwtdXA7CivmnJ0gPCBkeW5hc3R5Owor6IKyIDwgcHJvZHVjZTsKK+WbviA8IGRpYWdyYW07CivliJggPCBzdXJuYW1lOwor5aSVIDwgZXZlbmluZzsKK+aJvyA8IGluaGVyaXQ7CivkuaEgPCBjb3VudHJ5Owor6KOBIDwgY3V0XC1vdXQ7CivmvJQgPCBwZXJmb3JtOwor6KKCIDwgc2xlZXZlczsKK+ihsCA8IGRlY2xpbmU7CivloZ4gPCBzdG9wXC11cDsKK+aZryA8IHNjZW5lcnk7CivooKIgPCB3cmlnZ2xlOwor5L6dIDwgcmVseVwtb247CivngJ0gPCB0cmlja2xlOwor6IOcIDwgdmljdG9yeTsKK+a/oSA8IGltbWVyc2U7Civmv58gPCB0b1wtaGVscDsKK+ifiyA8IGNyaWNrZXQ7CivmvIYgPCB2YXJuaXNoOwor5ryBIDwgdG9cLWZpc2g7CivmlaMgPCBzY2F0dGVyOwor6JuGIDwgbWFnZ290czsKK+absiA8IGNyb29rZWQ7CivmurYgPCB0b1wtbWVsdDsKK+WOgiA8IGZhY3Rvcnk7Civogq8gPCB3aWxsaW5nOwor5oqTIDwgc2NyYXRjaDsKK+iZqyA8IGluc2VjdHM7CivmuacgPCB3ZWxsXC11cDsKK+mdoCA8IGxlYW5cLW9uOwor5o6IIDwgZ2l2ZVwtdG87CivmuIcgPCB0aGlyc3R5Owor5re6IDwgc2hhbGxvdzsKK+a3qyA8IG9ic2NlbmU7Civpt4QgPCBjaGlja2VuOwor5ZeHIDwgbWlzZXJseTsKK+aKsSA8IGVtYnJhY2U7CivnnZsgPCBleWViYWxsOwor5ousIDwgaW5jbHVkZTsKK+mZjSA8IGRlc2NlbmQ7Civnp4EgPCBwcml2YXRlOwor6JSRIDwgZGlzZGFpbjsKK+azoSA8IGJ1YmJsZXM7Civpl7kgPCBxdWFycmVsOwor6YaSIDwgd2FrZVwtdXA7CivmsowgPCBjaGFvdGljOwor5pq0IDwgdmlvbGVudDsKK+aKoiA8IHBsdW5kZXI7Civnr4cgPCBjaGFwdGVyOwor6bGIIDwgY29kZmlzaDsKK+ivuCA8IHZhcmlvdXM7Civlj60gPCB0cnVtcGV0Owor5Y+ZIDwgZXhwcmVzczsKK+WOrSA8IGRpc2xpa2U7Civpm4UgPCBlbGVnYW50Owor6Zu3IDwgdGh1bmRlcjsKK+erniA8IGNvbnRlbmQ7Civmk40gPCBjb25kdWN0Owor6K+6IDwgcHJvbWlzZTsKK+WMhiA8IGhhc3RpbHk7CivmrIUgPCB6ZWxrb3ZhOwor6Iu6IDwgYmVycmllczsKK+iLlyA8IHNwcm91dHM7CivnorAgPCBjb2xsaWRlOwor6IuRIDwgcGFzdHVyZTsKK+S7vyA8IGltaXRhdGU7CivmqZ8gPCBtYWNoaW5lOwor5qCPIDwgcmFpbGluZzsKK+WIiCA8IGN1dFwtb2ZmOwor54ugIDwgdmljaW91czsKK+aYoCA8IHByb2plY3Q7Civlv6AgPCBsb3lhbHR5Owor5omOIDwgcHVsbFwtdXA7CivohbkgPCBzdG9tYWNoOwor6IiSIDwgb3BlblwtdXA7Civlh7YgPCBjdWxwcml0Owor5oWwIDwgY29tZm9ydDsKK+mkmCA8IHN1cnBsdXM7CivmkpIgPCByZWxlYXNlOwor5oSBIDwgYW54aWV0eTsKK+aWpCA8IGFcLWNhdHR5Owor5YORIDwgc29qb3VybjsKK+aJtiA8IHN1cHBvcnQ7Civmr4EgPCBkZXN0cm95Owor5qKwIDwgd2VhcG9uczsKK+i/nSA8IGRpc29iZXk7CivkuKIgPCBkaXNjYXJkOwor6IKGIDwgaW5kdWxnZTsKK+e7lSA8IGVudHdpbmU7CivogbMgPCB1cmdlXC1vbjsKK+iIsCA8IHdhcnNoaXA7CivmgbwgPCBhbmdlcmVkOwor6L6jIDwgcGVwcGVyeTsKK+aXiyA8IHJldm9sdmU7CivlgIkgPCBncmFuYXJ5Owor572aIDwgcGVuYWx0eTsKK+aLviA8IHBpY2tcLXVwOwor5oGiIDwgcmVzdG9yZTsKK+e/gSA8IG9sZFwtbWFuOwor5769IDwgZmVhdGhlcjsKK+aKliA8IHRyZW1ibGU7Civkvq8gPCBtYXJxdWlzOwor5oORIDwgY29uZnVzZTsKK+mblSA8IGVuZ3JhdmU7Civlr78gPCBvbGRcLWFnZTsKK+mUpiA8IGJyb2NhZGU7CivmnY8gPCBhcHJpY290Owor5oWMIDwgbmVydm91czsKK+WxoCA8IGJ1dGNoZXI7Civmn48gPCBjeXByZXNzOwor6ZyNIDwgcXVpY2tseTsKK+mZtiA8IHBvdHRlcnk7CivmkYQgPCB0YWtlXC1pbjsKK+mXryA8IHJ1c2hcLWluOwor5omwIDwgZGlzdHVyYjsKK+mbgCA8IHNwYXJyb3c7CivpmIEgPCBjaGFtYmVyOwor5Y2iIDwgY290dGFnZTsKK+afnCA8IGNhYmluZXQ7CivmmocgPCBsZWlzdXJlOwor5oSnIDwgYXNoYW1lZDsKK+aZtiA8IGNyeXN0YWw7CivmmZ0gPCBkYXl0aW1lOwor562LIDwgbXVzY2xlczsKK+aSkSA8IHByb3BcLXVwOwor5aGrIDwgZmlsbFwtaW47Civml7ogPCBwcm9zcGVyOwor6ICXIDwgY29uc3VtZTsKK+aCpiA8IHBsZWFzZWQ7CivmlpEgPCBtb3R0bGVkOwor6Le1IDwgdHJhbXBsZTsKK+aDtiA8IGZlYXJmdWw7CivnsL4gPCBhXC1ibGluZDsKK+i0qSA8IHBlZGRsZXI7CivmiIggPCBoYWxiZXJkOwor6ZCQIDwgZmV0dGVyczsKK+iZuSA8IHJhaW5ib3c7Civlr6EgPCB3aWRvd2VkOwor6YOKIDwgc3VidXJiczsKK+W+vSA8IGFcLWJhZGdlOwor6bKNIDwgYWJhbG9uZTsKK+eshCA8IGhhaXJwaW47Civmsr4gPCBtb2lzdGVuOwor556SIDwgZGVjZWl2ZTsKK+ergyA8IGZ1cm5hY2U7Civoo5QgPCBwcm9nZW55Owor5YyqIDwgYmFuZGl0czsKK+amnCA8IHBsYWNhcmQ7CivmnokgPCB1c2VsZXNzOwor6aqHIDwgdGVycmlmeTsKK+aSsCA8IGNvbXBvc2U7CivlnoMgPCBnYXJiYWdlOwor6am8IDwgYVwtY2FtZWw7CivosbkgPCBsZW9wYXJkOwor57y0IDwgZGVsaXZlcjsKK+WTqCA8IHdoaXN0bGU7CivlmrwgPCBwcmF0dGxlOwor5pinIDwgb2JzY3VyZTsKK+aXsSA8IGRyb3VnaHQ7CivogYIgPCB3aGlzcGVyOwor6I69IDwgdGhpY2tldDsKK+WOriA8IHNlcnZhbnQ7CivojKggPCBjYWx0cm9wOwor57KYIDwgdmlzY291czsKK+acvSA8IGRlY2F5ZWQ7CivnhJUgPCBzaGluaW5nOwor54aEIDwgcHV0XC1vdXQ7CivpgL4gPCBnb1wtb3ZlcjsKK+mGiyA8IHZpbmVnYXI7CivmlowgPCByZWZpbmVkOwor5oGVIDwgZm9yZ2l2ZTsKK+aypiA8IGJlXC1sb3N0Owor5bKxIDwgZGFpc2hhbjsKK+iusyA8IGNvbmNlYWw7CivlspQgPCBkaXZlcmdlOwor5Z6SIDwgcmFtcGFydDsKK+e/mCA8IHR1cm5cLXVwOwor6KeRIDwgcGVlcFwtYXQ7Civmi44gPCB0b1wtaGF1bDsKK+WZnCA8IHZlcmJvc2U7Civlh7kgPCBjb25jYXZlOwor5pKpIDwgbGlmdFwtdXA7CivltL0gPCBhXC1jaGlsZDsKK+a2hSA8IGJsYWNrZW47CivnsIwgPCBmYWxsaW5nOwor6K+bIDwgZXhlY3V0ZTsKK+aOsyA8IGNhcHR1cmU7CivppoUgPCBmaWxsaW5nOwor56GFIDwgc2lsaWNvbjsKK+aKqCA8IGltcGVhY2g7Civogr4gPCBraWRuZXlzOwor6ZStIDwgc3BpbmRsZTsKK+iMrCA8IGhhcnZlc3Q7CivosKQgPCBzbGFuZGVyOwor6ZKzIDwgcGluY2VyczsKK+edvSA8IHN0YXJpbmc7CivpmLEgPCBwaXRmYWxsOwor5rGAIDwgc2FuZGJhcjsKK+enpCA8IGJhbGFuY2U7Civmmb4gPCBhaXJcLWRyeTsKK+i3miA8IHN0YWdnZXI7Civojp4gPCBzbWlsaW5nOwor6bilIDwgc2VhZ3VsbDsKK+iRhiA8IHJlc2VydmU7CivmsKIgPCBhbW1vbmlhOwor5binIDwgcGljdHVyZTsKK+S9ryA8IHByZXRlbmQ7Civng6wgPCBjaW5kZXJzOwor6JqMIDwgb3lzdGVyczsKK+iwhiA8IHBhdGllbnQ7CivnmZ4gPCBsZXByb3N5Owor5ZWEIDwgdG9cLXBlY2s7Civnh44gPCB0b1wtYnVybjsKK+i/syA8IHBhc3NcLWJ5Owor5oG4IDwgc2FkbmVzczsKK+WSgiA8IHRvXC1zdWNrOwor55u5IDwgdG9cLWRvemU7Civkv74gPCBzb1wtdGhhdDsKK+iwmiA8IHByb3ZlcmI7CivmjrggPCB0b1wtZHVzdDsKK+WMriA8IHRvXC1sYWNrOwor5bmhIDwgcGVubmFudDsKK+WbsSA8IGNoaW1uZXk7CivltIIgPCBsYW9zaGFuOwor6J2MIDwgdGFkcG9sZTsKK+mTgCA8IHVyYW5pdW07CivmjJsgPCB0YW5nbGVkOwor57uvIDwgc2NhcmxldDsKK+m4qCA8IGJ1c3RhcmQ7CivonJcgPCBhXC1zbmFpbDsKK+aBqyA8IGluXC1wYWluOwor6LCAIDwgZmxhdHRlcjsKK+i4riA8IHRpcFwtdG9lOwor6aaKIDwgc3BvaWxlZDsKK+mSmSA8IGNhbGNpdW07CivmjbEgPCBwdXRcLW9mZjsKK+iSvyA8IG11Z3dvcnQ7CivphbYgPCBlbnp5bWVzOwor6KGiIDwgaGlnaHdheTsKK+ejuiA8IHN1bHBodXI7CivouakgPCB0b1wtbGltcDsKK+a1oyA8IHRvXC13YXNoOwor55a5IDwgbWVhc2xlczsKK+mdpSA8IGRpbXBsZXM7CivmhIYgPCBhXC1mYXVsdDsKK+m4tSA8IG9zdHJpY2g7CivnqpUgPCBzbGVuZGVyOwor6L+pIDwgYmVcLW5lYXI7CivkvbAgPCBodW5kcmVkOwor6ZK5IDwgY3ltYmFsczsKK+mdvCA8IHRhcnRhcnM7CivnhbIgPCB0b1wtaGVhdDsKK+eNkCA8IHJvZWJ1Y2s7CivkvZ0gPCByaWNrZXRzOwor6JOfIDwgY2lyY2l1bTsKK+m7nCA8IGRpc21pc3M7CivmkYggPCBleGNsdWRlOwor6aOTIDwgY3ljbG9uZTsKK+iDsSA8IGJsYWRkZXI7Civppb0gPCBmZXJydWxlOwor6aaPIDwgZGlzdGlsbDsKK+iLryA8IGJlbnplbmU7Civmt7wgPCBhXC1mbG9vZDsKK+mTsSA8IGlyaWRpdW07CivokakgPCBmbG93ZXJzOwor6YChIDwgcmV0cmVhdDsKK+mAtiA8IHdpbmRpbmc7CivokLggPCBkb2d3b29kOwor5oydIDwgdG9cLWJlYXQ7CivnhrUgPCBlbnRyb3B5Owor54WoIDwgdG9cLXN0ZXc7CivnoJIgPCBhcnNlbmljOwor5pmBIDwgbW9ybmluZzsKK+WHhyA8IGRld2Ryb3A7CivlmZggPCBwb3V0aW5nOwor5ZSjIDwgY2hhdHRlcjsKK+mqoCA8IGNoYXJnZXI7CivmgIQgPCBhbm5veWVkOwor6ZSCIDwgbGl0aGl1bTsKK+eWpSA8IHNjYWJpZXM7CivnqJcgPCBkYXJuZWxzOwor5rSuIDwgY2xlYW5zZTsKK+mFriA8IGtldG9uZXM7CivohZogPCBidXR0b2NrOwor6IWxIDwgdGVuZG9uczsKK+mmlCA8IHRvXC1mZWVkOwor5pCgIDwgdG9cLWRhdWI7CivphaEgPCBmbHVzaGVkOwor5ZGSIDwgdW5jbGVhcjsKK+eXpyA8IGNob2xlcmE7CivnrKQgPCBhXC1icm9vbTsKK+mfqyA8IHNlY3JldGU7CivmgJsgPCBncmlldmVkOwor55q0IDwgY2hhcHBlZDsKK+edoiA8IGdhemVcLWF0Owor5aGsIDwgcGxhdGVhdTsKK+ieryA8IG5pcHBlcnM7CivnjZIgPCBtYXN0aWZmOwor5rKGIDwgYVwtZmVycnk7CivluJQgPCBhXC1za2lydDsKK+iWhSA8IHRvXC13ZWVkOwor6I60IDwgbGV0dHVjZTsKK+aNrSA8IHRvXC1vcGVuOwor6JGtIDwgYnVscnVzaDsKK+WApSA8IGJvb3Jpc2g7CivmurQgPCBicm9taW5lOwor5bubIDwgYVwtc3RvcmU7Civmj7ggPCBoYW5kZnVsOwor5Lu1IDwgc2ltaWxhcjsKK+mriyA8IGhpcGJvbmU7CivogrEgPCBmb3JlYXJtOwor6JqNIDwgbXVzc2VsczsKK+mVkyA8IGdhbGxpdW07Civpk4sgPCBiaXNtdXRoOwor6IOdIDwgY2FsbG91czsKK+i1jSA8IHByZXNlbnQ7Civnv6UgPCB0b1wtc29hcjsKK+icniA8IGdyYXBzdXM7CivosKAgPCBjb3Vuc2VsOwor55+sIDwgYVwtZHdhcmY7CivmurIgPCB1cmluYXRlOwor6JW7IDwgYnVkZGluZzsKK+m5iCA8IHBlbGljYW47CivplYkgPCBjYWRtaXVtOwor6KyHIDwgc3R1dHRlcjsKK+aGtyA8IHBhaW5mdWw7CivosKEgPCByaXNlXC11cDsKK+ikiiA8IGNyYW1wZWQ7Civpko0gPCB0aG9yaXVtOwor5rCqIDwga3J5cHRvbjsKK+i/riA8IHRvXC1yaXNlOwor6JONIDwgbWlsZm9pbDsKK+ievSA8IGthdHlkaWQ7CivliYAgPCBzaGFycGVuOwor6LmAIDwgdG9cLXNraXA7CivplI4gPCBjYWVzaXVtOwor6ZKHIDwgeXR0cml1bTsKK+awmiA8IHRyaXRpdW07CivnirggPCBtYW1tb3RoOwor6I+4IDwgdG9cLWZhZGU7CivpsrEgPCBoZXJyaW5nOwor6LqeIDwgdG9cLXdhbGs7Civpk4wgPCBuaW9iaXVtOwor55WAIDwgdG9cLWdpdmU7CivpgZggPCB0b1wtbWVldDsKK+aztyA8IHJhaW5pbmc7CivokqEgPCBidXJkb2NrOwor6auMIDwga25lZWNhcDsKK+mzmSA8IGJpZ2hlYWQ7CivntbcgPCBjb25maW5lOwor566mIDwgYmVkXC1tYXQ7CivnmJggPCBmaXN0dWxhOwor6ZWEIDwgZmVybWl1bTsKK+elhiA8IG9ybWF6ZGE7Civlq6AgPCBhXC13aWRvdzsKK+aQtCA8IGV4dHJhY3Q7Civlg6YgPCB0b1wtaGVpcjsKK+eJveaJryA8IGludm9sdmU7CivnnIvlvpfoposgPCB2aXNpYmxlOwor5ama5LqLIDwgd2VkZGluZzsKK+aqoumWsSA8IGluc3BlY3Q7CivoqLToi6YgPCBncnVtYmxlOwor5pyJ6LOH5qC8IDwgZW50aXRsZTsKK+aaq+WBnCA8IHN1c3BlbmQ7CivmraHov47lhYnoh6ggPCB3ZWxjb21lOwor6Ke46KeSIDwgYW50ZW5uYTsKK+Wck+efs+mgrSA8IGJvdWxkZXI7CivnvbfkvJEgPCBnaXZlXC11cDsKK+Wlp+WcsOWIqSA8IGF1c3RyaWE7Civoqo3nnJ8gPCBlYXJuZXN0Owor5pmC5bCaIDwgZmFzaGlvbjsKK+eJiOacrCA8IHZlcnNpb247CivluoforbcgPCBzaGVsdGVyOwor6YW45oCnIDwgYWNpZGl0eTsKK+e3qOe6giA8IGNvbXBpbGU7CivlkJvkuLsgPCBtb25hcmNoOwor57i955CGIDwgcHJlbWllcjsKK+WkqeeEtiA8IG5hdHVyYWw7CivnnaHooaMgPCBwYWphbWFzOwor5pW055CGIDwgYXJyYW5nZTsKK+eFmeiNiSA8IHRvYmFjY287Civnh6bniJsgPCBnbGl0dGVyOwor5Y+v5YuVIDwgbW92YWJsZTsKK+awtOaJiyA8IG1hcmluZXI7CivlgrPpgZPpg6ggPCBtaXNzaW9uOwor5Y+j5ZCDIDwgc3RhbW1lcjsKK+WJteS4lue0gCA8IGdlbmVzaXM7Civoj4/omK0gPCBob2xsYW5kOwor6I+g6I+cIDwgc3BpbmFjaDsKK+WNgeaciCA8IG9jdG9iZXI7CivljYPkvY3lhYMgPCBraWxvYml0Owor5o+a6IGy5ZmoIDwgc3BlYWtlcjsKK+avm+avryA8IGJsYW5rZXQ7CivnrqHnkIblk6EgPCBtYW5hZ2VyOwor6Zm96Ie6IDwgYmFsY29ueTsKK+eLguWWnCA8IGVjc3Rhc3k7CivmsLjmgYYgPCBldGVybmFsOwor6KuL5rGCIDwgcmVxdWVzdDsKK+a1t+i7jee4veWPuOS7pCA8IGFkbWlyYWw7Civlh7rotbAgPCB0b1wtZmxlZTsKK+iAgeizh+agvCA8IHZldGVyYW47CivmlYjnm4ogPCBiZW5lZml0Owor6YeN5YqbIDwgZ3Jhdml0eTsKK+mHkemKgOWhiiA8IGJ1bGxpb247CivnorzlrZcgPCBudW1lcmFsOwor5byE56KOIDwgY3J1bWJsZTsKK+aymeS4gemtmiA8IHNhcmRpbmU7Civlp5DlprkgPCBzaXN0ZXJzOwor55uu6YyEIDwgY2F0YWxvZzsKK+W/g+aEmyA8IGJlbG92ZWQ7CivlvITnn60gPCBzaG9ydGVuOwor54Sh6JmVIDwgbm93aGVyZTsKK+iuiuWOmiA8IHRoaWNrZW47CivlppbmgKogPCBtb25zdGVyOwor57eK57eKIDwgY2xvc2VseTsKK+maseengSA8IHByaXZhY3k7Civpl5zpjbUgPCBjcnVjaWFsOwor5ae/5YuiIDwgcG9zdHVyZTsKK+WuieaPkOeTnOWztiA8IGFudGlndWE7Civllqrlv4Pnl4Xni4IgPCBsdW5hdGljOwor5by354OIIDwgaW50ZW5zZTsKK+WlveaIsCA8IHdhcmxpa2U7CivlvITnmrogPCBjcnVtcGxlOwor55u46YCjIDwgdG9cLWxpbms7Civmlofms5UgPCBncmFtbWFyOwor5Y+k5L6GIDwgb2xkdGltZTsKK+WkqeawoyA8IHdlYXRoZXI7CivphZLlu6AgPCBicmV3ZXJ5Owor5b6B5pyNIDwgY29ucXVlcjsKK+e0oumBkyA8IHJvcGV3YXk7CivpmbjnuowgPCBpblwtdHVybjsKK+maseeeniA8IHRvXC1oaWRlOwor5aSW5rWBIDwgb3V0ZmxvdzsKK+W3pemgrSA8IGZvcmVtYW47CivpgaDnq68gPCBmYXJcLWVuZDsKK+WHuue0jeWToSA8IGNhc2hpZXI7CivliqDnlJwgPCBzd2VldGVuOwor6Z+z5L+hIDwgbWVzc2FnZTsKK+manOekmSA8IGJhcnJpZXI7CivorablkYogPCB0b1wtd2FybjsKK+eEtuiAjCA8IGhvd2V2ZXI7CivlpKfmpoIgPCByb3VnaGx5Owor5oSb6YGK546pIDwgcGxheWZ1bDsKK+agvOWtkOajieW4gyA8IGdpbmdoYW07Civpi7znkLTlrrYgPCBwaWFuaXN0Owor6Zu75rGgIDwgYmF0dGVyeTsKK+avlOaWuSA8IGFuYWxvZ3k7CivoqIjmlbjogIUgPCBjb3VudGVyOwor6YCA6JC9IDwgc3Vic2lkZTsKK+iuiuS6giA8IHR1cm1vaWw7CivnhrHmva4gPCB1cHN1cmdlOwor6Kej5YmW5a24IDwgYW5hdG9teTsKK+asuueeniA8IHRvXC1mb29sOwor5pyJ5a245ZWPIDwgbGVhcm5lZDsKK+itsOWDuSA8IGJhcmdhaW47CivnupblvLEgPCBmcmFnaWxlOwor6KaL6K2JIDwgd2l0bmVzczsKK+WKoOeGsSA8IGhlYXRpbmc7CivljYrlkIrlrZAgPCBkYWJibGVyOwor6Z2e5bi4IDwgdW51c3VhbDsKK+WLh+awoyA8IGNvdXJhZ2U7CivlpLHmlYggPCB0b1wtZmFpbDsKK+WFiOmphSA8IHBpb25lZXI7Civniq/kurogPCBjb252aWN0Owor6Zuj5rCRIDwgcmVmdWdlZTsKK+mBuueJqSA8IHJlbW5hbnQ7Civmr5LmiZMgPCBiZWF0XC11cDsKK+mGnOS6iyA8IHNjYW5kYWw7CivpmY3ntJogPCBkZWdyYWRlOwor54Sm57OWIDwgY2FyYW1lbDsKK+aRmOimgSA8IHN1bW1hcnk7CivpgLLnqIsgPCBwcm9jZXNzOwor5pGU6KeSIDwgd3Jlc3RsZTsKK+WMheaJjiA8IHdyYXBcLXVwOwor5bui54mpIDwgcnViYmlzaDsKK+WkqeiKseadvyA8IGNlaWxpbmc7CivmrpjmoKogPCBzdHViYmxlOwor5aW95aWHIDwgY3VyaW91czsKK+eZu+mZuCA8IHRvXC1sYW5kOwor55uj6KaWIDwgb3ZlcnNlZTsKK+W9ouaIkCA8IHRvXC1mb3JtOwor57i95pW4IDwgYVwtdG90YWw7CivlvrflnIsgPCBnZXJtYW55Owor57Wx57WxIDwgdG90YWxseTsKK+Wkp+ebpOWtkCA8IHBsYXR0ZXI7CivnhKHnqq4gPCBlbmRsZXNzOwor55+u5p6XIDwgY29wcGljZTsKK+Wig+eVjCA8IGJvdW5kcnk7CivkuI3og73kuI0gPCBoYXZlXC10bzsKK+W8hOatqiA8IGRpc3RvcnQ7CivlhrDooosgPCBpY2VcLWJhZzsKK+WHuuWFpeWPoyA8IGdhdGV3YXk7CivmtojpmLLpmorlk6EgPCBmaXJlbWFuOwor6LW355q657SLIDwgc2hyaXZlbDsKK+mWseiugCA8IHRvXC1yZWFkOwor6YO15beuIDwgcG9zdG1hbjsKK+mdouWariA8IHRvXC1mYWNlOwor6Ke455m8IDwgdHJpZ2dlcjsKK+eAnemdkiA8IGFzcGhhbHQ7CivljbPkvr8gPCBldmVuXC1pZjsKK+Wkp+W7iCA8IGVkaWZpY2U7CivnmbzphbUgPCBmZXJtZW50Owor5bm456aPIDwgYmxlc3NlZDsKK+eEoeebiiA8IG5vXC1nb29kOwor6Ziy56amIDwgZGVmZW5zZTsKK+att+aZgiA8IHRvXC1sYXN0Owor5omY5YWS5omAIDwgbnVyc2VyeTsKK+iJt+e0heiJsiA8IGNyaW1zb247CivnibnoqLHni4AgPCBjaGFydGVyOwor5ouW5puz5qmfIDwgdHJhY3RvcjsKK+eJiOWIuyA8IGNhcnZpbmc7CivphY3lgbYgPCBjb25zb3J0Owor6aCQ6KiA5a62IDwgcHJvcGhldDsKK+aVkeaPtCA8IHRvXC1zYXZlOwor5pel5Ye6IDwgc3VucmlzZTsKK+awo+WAmSA8IGNsaW1hdGU7CivnuYPluLYgPCBiYW5kYWdlOwor6YCX55WZIDwgc3RheVwtYXQ7CivliKnnlKggPCBleHBsb2l0Owor5Y2A5Y2AIDwgdHJpdmlhbDsKK+iDjOWPm+iAhSA8IHRyYWl0b3I7Civlvq7lhYkgPCBnbGltbWVyOwor5q+P5aScIDwgbmlnaHRseTsKK+mBleazlSA8IGlsbGVnYWw7Civlh7rnp58gPCB0b1wtcmVudDsKK+mbgOaWkSA8IGZyZWNrbGU7CivlpKfkvb/ppKggPCBlbWJhc3N5Owor5aSn6I2J5Y6fIDwgcHJhaXJpZTsKK+eJqeeQhuWtuCA8IHBoeXNpY3M7CivmlLbmk5ogPCByZWNlaXB0Owor5Y2B5YWtIDwgc2l4dGVlbjsKK+e5quWcliA8IHRvXC1kcmF3Owor55+l5oKJIDwgdG9cLWtub3c7CivnhrHmg4UgPCBjb3JkaWFsOwor5Y2B5YCNIDwgdGVuZm9sZDsKK+WJm+avmyA8IGJyaXN0bGU7Civmqavoh6UgPCByZWNsaW5lOwor5Yi65r+AIDwgcHJvdm9rZTsKK+e2k+a/nyA8IGVjb25vbXk7CivntLDnr4AgPCBkZXRhaWxzOwor5omz5LiN5YCS5YWSIDwgdHVtYmxlcjsKK+aogui2oyA8IGRlbGlnaHQ7CivniKzon7Lli5XniakgPCByZXB0aWxlOwor57Si6aas6KOhIDwgc29tYWxpYTsKK+WNgeS6lCA8IGZpZnRlZW47CivlpJrlpKcgPCBob3dcLWJpZzsKK+WFseiZlSA8IGNvZXhpc3Q7CivmlKrmi4wgPCB0b1wtc3RpcjsKK+i8lei8lSA8IGxpZ2h0bHk7Civlu6Pmkq3ntrIgPCBuZXR3b3JrOwor5be05qC86YGUIDwgYmFnaGRhZDsKK+WIqea9pCA8IHByb2ZpdHM7CivlpJbnp5HphqvnlJ8gPCBzdXJnZW9uOwor6KOd6LyJIDwgdG9cLWxvYWQ7CivljIXlkKsgPCBjb250YWluOwor5pOv5qOEIDwgYWJhbmRvbjsKK+WcqO+5jeS5i+mWkyA8IGJldHdlZW47CivnmbzooYwgPCBwdWJsaXNoOwor55m96J+7IDwgdGVybWl0ZTsKK+mBuOaJiyA8IGF0aGxldGU7CivlpLHljrsgPCB0b1wtbG9zZTsKK+i8quipoiA8IHRvXC1wb2xsOwor6Iqx6LK7IDwgZXhwZW5zZTsKK+iRieWtkCA8IGZvbGlhZ2U7CivojYnnqL8gPCBvdXRsaW5lOwor5q2m5bqrIDwgYXJzZW5hbDsKK+mKgOihjOalrSA8IGJhbmtpbmc7CivlvITlubMgPCBmbGF0dGVuOwor5Yi25q2iIDwgdG9cLWN1cmI7CivnhafmkKwgPCB0b1wtY29weTsKK+m+oSA8IHRvXC1ibG93Owor6KOc6LK8IDwgc3Vic2lkeTsKK+m9sCA8IHRvXC1iaXRlOwor6b2pIDwgdG9cLWNoZXc7CivmraPluLggPCByZWd1bGFyOwor6by3IDwgYVwtbW91c2U7CivmlofljJYgPCBjdWx0dXJlOwor5bSp6Zm3IDwgZmFsbFwtaW47CivpuJEgPCBhXC1sYXJnZTsKK+W3tOe1kCA8IGZhd25cLW9uOwor6befIDwgcGhvZW5peDsKK+m2uiA8IHdhZ3RhaWw7CivptrkgPCB0aGVcLW93bDsKK+aJi+aOqOi7iiA8IHRyb2xsZXk7CivnmrrntIsgPCB3cmlua2xlOwor5qyK5p2WIDwgc2NlcHRlcjsKK+eZvuiQrCA8IG1pbGxpb247CivlpJrljYogPCBjaGllZmx5Owor6YCx5pyrIDwgd2Vla2VuZDsKK+m0qyA8IGFcLXNuaXBlOwor5Yid5q2lIDwgaW5pdGlhbDsKK+WLnuWLleiAhSA8IGxhYm9yZXI7Civnhanmg7EgPCBhZ29uaXplOwor6bKaIDwgYW5jaG92eTsKK+eFqeaCtiA8IGFuZ3Vpc2g7CivluavmtL4gPCBmYWN0aW9uOwor576O5rSy6LG5IDwgcGFudGhlcjsKK+ihqOmdoiA8IHN1cmZhY2U7Civns5/ns5UgPCB0b29cLWJhZDsKK+e4veWJhyA8IHByb2ZpbGU7Civpmqrls7sgPCBhcmR1b3VzOwor5Yi25pyNIDwgdW5pZm9ybTsKK+WDj+mKgCA8IHNpbHZlcnk7CivprZwgPCBtZXJtYWlkOwor5YmN5o+QIDwgcHJlbWlzZTsKK+e2reaMgSA8IHRvXC1rZWVwOwor5o6l6Ke4IDwgY29udGFjdDsKK+iKseW0l+efsyA8IGdyYW5pdGU7CivlpKXkvLQgPCBwYXJ0bmVyOwor6aqrIDwgYmVcLWJlbnQ7CivpqokgPCBydW5uaW5nOwor5pOB5pyJIDwgdG9cLWhhdmU7CivlnKjlhbbkuK0gPCB0aGVyZWluOwor6amZIDwgXChob3JzZVwpOwor6amSIDwgZGFwcGxlZDsKK+atpOWkliA8IGJlc2lkZXM7CivlvLfliLYgPCBlbmZvcmNlOwor6LuK6LybIDwgdmVoaWNsZTsKK+iKrOiYrSA8IGZpbmxhbmQ7CivmlbjkvY0gPCBkaWdpdGFsOwor5Y2B5YSE5L2N5YWDIDwgZ2lnYWJpdDsKK+miqyA8IGFcLXN0b3JtOwor5Z+354WnIDwgbGljZW5zZTsKK+eEoeaViCA8IGluXC12YWluOwor6Z+jIDwgYm93XC1iYWc7Civpn4UgPCBoYXJuZXNzOwor57SZ54WZIDwgY2lnYXJldDsKK+ecuuacmyA8IGxvb2tvdXQ7Civpl5znhacgPCBjb25jZXJuOwor6ZuaIDwgYVwtaGVyb247CivlhrDniYcgPCBib3JuZW9sOwor5YqH5aC0IDwgdGhlYXRlcjsKK+eGseWIhyA8IGZlcnZlbnQ7Civpmb4gPCBpblwtZmlsZTsKK+S6lOaciOWNgeS6lOiZnyA8IG1heVwtMVwtNTsKK+mZniA8IHByb21vdGU7CivpmLvmlJQgPCB0b1wtc3RvcDsKK+mYpyA8IHNsb3Bpbmc7CivlvJ/lhYQgPCBicm90aGVyOwor55yJ5q+bIDwgZXllYnJvdzsKK+iiq+ikpSA8IGJlZGRpbmc7Civmk7rlrZAgPCBtYWxhcmlhOwor5pOU5b+DIDwgYW54aW91czsKK+i6q+mrlOmanOWusyA8IGNyaXBwbGU7CivlhaznpL4gPCBjb21tdW5lOwor6ZO9IDwgdGVyYml1bTsKK+mTvCA8IHJoZW5pdW07Civpk6ogPCBoYWZuaXVtOwor6ZOlIDwgdGh1bGl1bTsKK+mTkSA8IHJob2RpdW07CivpkqwgPCBob2xtaXVtOwor57WQ5p6cIDwgb3V0Y29tZTsKK+atsuWFpSA8IHJldmVudWU7CivloorlrZAgPCBjdXNoaW9uOwor55uj5risIDwgbW9uaXRvcjsKK+aiteW4neWyoSA8IHZhdGljYW47CivlkIznvqnlrZcgPCBzeW5vbnltOwor6Yy2IDwgYVwtd2F0Y2g7CivprKLop5IgPCB0ZW1wbGVzOwor6YyAIDwgXChtZXRhbFwpOwor5o+t56S6IDwgdG9cLXNob3c7Civpi4ogPCBhXC1wb2tlcjsKK+mLgiA8IGJpdFwtY3VwOwor55eV6LehIDwgdmVzdGlnZTsKK+WJneWlqiA8IGRlcHJpdmU7CivovrLmsJEgPCBwZWFzYW50Owor5oSb5ZyL6ICFIDwgcGF0cmlvdDsKK+W7oOWVhiA8IGNvbXBhbnk7CivlpbPkuLvkurogPCBob3N0ZXNzOwor55m95qa055+zIDwgbGV1Y2l0ZTsKK+S9oOiHquW3sSA8IHRoeXNlbGY7CivlhpLnhZkgPCBzbW9raW5nOwor57Ch6KaBIDwgY29uY2lzZTsKK+e0hea1tyA8IHJlZFwtc2VhOwor5Yaw5rKzIDwgZ2xhY2lhbDsKK+e0lOatoyA8IGdlbnVpbmU7CivliKjlt6UgPCBwbGFuaW5nOwor5rS+57Wm5bel5L2cIDwgdG9cLXRhc2s7CivlubvlvbEgPCBwaGFudG9tOwor6Ieq55Sx5rS+IDwgbGliZXJhbDsKK+aLlOmggiA8IHRvcHBpbmc7Civnlr7otbAgPCBzY2FtcGVyOwor6L2SIDwgY2hhcmlvdDsKK+W3sua7hSA8IGV4dGluY3Q7CivnsaDnvakgPCBlbnZlbG9wOwor6LuyIDwgYVwtd2hlZWw7Civou5ggPCB3YXJcLWNhcjsKK+ieoueBq+ifsiA8IGZpcmVmbHk7CivouqYgPCB0b1wtanVtcDsKK+i6nSA8IHRvXC1wYXNzOwor55m+5YiG5LmLIDwgcGVyY2VudDsKK+mshue3iuW4tiA8IGVsYXN0aWM7CivolpTolofoirHolb4gPCByb3NlYnVkOwor6ZmE5a+EIDwgZW5jbG9zZTsKK+eEoeirluS9leS6uiA8IHdob2V2ZXI7Civot6wgPCB0b1wtc3RlcDsKK+WvhOWuv+eUnyA8IGJvYXJkZXI7Civot5UgPCBzaHVmZmxlOwor6La3IDwgdG9cLWpvbHQ7CivntajluIMgPCBmbGFubmVsOwor5YSY566hIDwgZGVzcGl0ZTsKK+mYu+WwvCA8IGRhbXBpbmc7CivnlJzpu54gPCBkZXNzZXJ0Owor55m854++IDwgdG9cLWZpbmQ7CivotIcgPCBhZmZhYmxlOwor6LSDIDwgdG9cLWVhcm47CivploPniI0gPCBmbGlja2VyOwor6KGj6KOdIDwgZ2FybWVudDsKK+iznSA8IHByZWlvdXM7CivlgpnoqLsgPCByZW1hcmtzOwor6Zeh5piOIDwgY2xhcmlmeTsKK+WPl+atoei/jiA8IHBvcHVsYXI7CivosZcgPCBjbGFtb3VyOwor5Yiw5aC0IDwgc2hvd1wtdXA7Civnm5vmnIMgPCBwYWdlYW50Owor6K6MIDwgYVwtZmVhc3Q7CivorLMgPCB0b1wtc2luZzsKK+ishiA8IGJlZ3VpbGU7Civpo5vmqZ/loLQgPCBhaXJwb3J0Owor6Km+IDwgbm9pc2lseTsKK+WBveitiSA8IHBlcmp1cnk7CivoqasgPCB0b1wtYnJhZzsKK+iphSA8IHRvXC1zZWxsOwor54Wn5LquIDwgbGlnaHRlbjsKK+mZs+WIlyA8IGRpc3BsYXk7CivpmL/niL7lj4rliKnkup4gPCBhbGdlcmlhOwor6KehIDwgYW50bGVyczsKK+mZveWCmCA8IHBhcmFzb2w7CivlsbHpoIIgPCBoaWxsdG9wOwor5o6M566hIDwgY29udHJvbDsKK+ilnCA8IGZsdXR0ZXI7CivopYMgPCBjb21tZW5kOwor6KSUIDwgY29tcGxleDsKK+iiuiA8IGhvbGRcLXVwOwor5pOg5YWlIDwgaW50cnVkZTsKK+ihtSA8IGNoZW1pc2U7CivmrIrliKkgPCBhXC1wb3dlcjsKK+iKseeSsCA8IGdhcmxhbmQ7CivlhazmsJEgPCBjaXRpemVuOwor5be05p6XIDwgYmFocmFpbjsKK+WBveijnSA8IHRvXC1mYWtlOwor5aCF5by3IDwgc3RhdW5jaDsKK+aWr+eTpuW4jOijoSA8IHN3YWhpbGk7CivoiKrnqbrpg7Xku7YgPCBhaXJtYWlsOwor5Lqe54m56Jit5aSnIDwgYXRsYW50YTsKK+mAsumAgOWFqemboyA8IGRpbGVtbWE7CivlubPlnYcgPCBhdmVyYWdlOwor5a+m6Zqb5LiKIDwgaW5cLWZhY3Q7CivliLrliIAgPCBiYXlvbmV0Owor57C4566VIDwgZHVzdHBhbjsKK+WFhea7vyA8IGZ1bGxcLW9mOwor5biz5biYIDwgZHJhcGVyeTsKK+iWvSA8IFwoZ3Jhc3NcKTsKK+iWtiA8IHRvXC1idXJ5Owor5Y+N5oeJ5aCGIDwgcmVhY3RvcjsKK+iWkyA8IGdpbnNlbmc7Civmv4DntKAgPCBob3Jtb25lOwor6Kej5YmWIDwgZGlzc2VjdDsKK+iOiuWatCA8IHN0YXRlbHk7CivlubPlj7AgPCB0ZXJyYWNlOwor6I+qIDwgaGVuYmFuZTsKK+iPpyA8IHN0aWJlbmU7Civmi43os6MgPCBhdWN0aW9uOwor5ruL6aSKIDwgbm91cmlzaDsKK+ino+WDsSA8IHRvXC1maXJlOwor6I6AIDwgdG9cLWZhcm07CivliLDkvoYgPCBhcnJpdmFsOwor5bqK5YG0IDwgYmVkc2lkZTsKK+aomeanjSA8IGphdmVsaW47Civnlqvoi5cgPCB2YWNjaW5lOwor6LaF6b2hIDwgdG9vXC1vbGQ7Civlm6DntKAgPCBlbGVtZW50Owor5Yaw5bedIDwgZ2xhY2llcjsKK+mXiuW6piA8IGJyZWFkdGg7CivoiJMgPCB0b1wtbGljazsKK+iHnSA8IGJlXC1iYXJlOwor6L2f5pOKIDwgYm9tYmFyZDsKK+iFliA8IHBlcHRvbmU7CivlhrDls7YgPCBpY2VsYW5kOwor55Ww5pWZ5b6SIDwgaGVhdGhlbjsKK+WclueVqyA8IGRyYXdpbmc7CivohJ0gPCBkaXN0ZW5kOwor5YiG5p6Q5Lq65aOrIDwgYW5hbHlzdDsKK+WGsOWxsSA8IGljZWJlcmc7CivlpJbpgqbkurogPCBnZW50aWxlOwor56e75rCR6ICFIDwgbWlncmFudDsKK+S4jeWQieWIqSA8IG9taW5vdXM7CivnvZYgPCBrd3VreWVsOwor5pyA5L2O6ZmQ5bqmIDwgbWluaW11bTsKK+e8siA8IHRvXC1yZWVsOwor55mC5rOVIDwgdGhlcmFweTsKK+WJtemAoOiAhSA8IGNyZWF0b3I7CivlsJbpoIIgPCBzdGVlcGxlOwor6IW56YOoIDwgYWJkb21lbjsKK+eZvOaUviA8IHByb3ZpZGU7CivnmIvni4IgPCBtYWRuZXNzOwor57eBIDwgdG9cLWpvaW47Civmj5Lmm7IgPCBlcGlzb2RlOwor57WqIDwgbWF0dGluZzsKK+WFi+S7gOexs+eIviA8IGthc2htaXI7CivlpbPoi7Hpm4QgPCBoZXJvaW5lOwor5rS75YuV5oi/5bGLIDwgdHJhaWxlcjsKK+S7gOS4gOWlieeNuyA8IHRpdGhpbmc7CivlhafnvoXnlaIgPCBuYWlyb2JpOwor5oqX6K2wIDwgcHJvdGVzdDsKK+W4tuWLlSA8IHRvXC1zcHVyOwor5YWs5byPIDwgZm9ybXVsYTsKK+eskyA8IHRvXC1jb21iOwor5aKo6KW/5ZOl5Lq6IDwgbWV4aWNhbjsKK+eBveWusyA8IHNjb3VyZ2U7CivoirHmnZ8gPCBib3VxdWV0Owor5bey5amaIDwgbWFycmllZDsKK+eXkueXkiA8IHRvXC1pdGNoOwor5L2/6auY6LK0IDwgZGlnbmlmeTsKK+S+i+mhjCA8IGV4YW1wbGU7CivnqIcgPCB0b1wtYmluZDsKK+WEquaWvCA8IHN1cnBhc3M7CivntYLkuo4gPCBhdFwtbGFzdDsKK+WKoOamruiAgOaWvCA8IGdsb3JpZnk7CivnpoIgPCB0b1wtcHJheTsKK+S/oeiztCA8IGNvbmZpZGU7CivoiqXmnKsgPCBtdXN0YXJkOwor5Zyw6LOq5a24IDwgZ2VvbG9neTsKK+WGt+WNuyA8IGNvb2xpbmc7CivmoYzpnaIgPCBkZXNrdG9wOwor5bGl6KGMIDwgZnVsZmlsbDsKK+eah+W4nSA8IGVtcGVyb3I7CivnooMgPCBcKHN0b25lXCk7Civnr4fnq6AgPCB3cml0aW5nOwor55+fIDwgJydcLWxhbmNlOwor556vIDwgdG9cLXBlZXA7CivkuI3lubLkuI3mt6ggPCB1bmNsZWFuOwor5a+s6ZeKIDwgZXhwYW5zZTsKK+mXnOmNteipniA8IGtleXdvcmQ7CivlhaflrrkgPCBjb250ZW50Owor55y9IDwgdG9cLWdhemU7CivnnLQgPCBkYXp6bGVkOwor5LiJ5L2N5LiA6auUIDwgdHJpbml0eTsKK+WCsueEtiA8IGxvZnRpbHk7Civlt7Tmnb7nrqEgPCBiYXNzb29uOwor5Zug54K6IDwgYmVjYXVzZTsKK+aoteWkqyA8IHdvb2RtYW47CivluIPpmobov6ogPCBidXJ1bmRpOwor55WQIDwgdG9cLWZpbGw7Civoh6rnp4EgPCBzZWxmaXNoOwor5YW45Z6LIDwgdHlwaWNhbDsKK+iMtuWFtyA8IHRlYVwtc2V0Owor55SUIDwgYmlnXC1qYXI7Civns4rloZcgPCBtdWRkbGVkOwor55ObIDwgc2NhcHRyZTsKK+eSuiA8IGFcLWNyYWNrOwor55KKIDwgcmVkZGlzaDsKK+iSmeWkp+aLvyA8IG1vbnRhbmE7CivnjbkgPCBhXC1ob3VuZDsKK+eCreeWveeXhSA8IGFudGhyYXg7CivnjZogPCBzcGFuaWVsOwor5YWs55uK5LqL5qWtIDwgdXRpbGl0eTsKK+evgOebriA8IHByb2dyYW07Civpkb3nn7MgPCBkaWFtb25kOwor5ZyS5p6XIDwgZ2FyZGVuczsKK+eLiSA8IGZveFwtY3ViOwor6LuM5p6VIDwgc2xlZXBlcjsKK+iLseWciyA8IGVuZ2xhbmQ7Civpppbpo74gPCBqZXdlbHJ5Owor5pel5bi45bel5L2cIDwgcm91dGluZTsKK+W3peWMoCA8IGFydGlzYW47Civnhq8gPCBieVwtZmlyZTsKK+S/mOiZnCA8IGNhcHRpdmU7CivnhbsgPCB0b1wtd2FybTsKK+iHgueroCA8IGFybWJhbmQ7Civoh6rnlLEgPCBmcmVlZG9tOwor5Y+y5a+G54m5IDwgc2NobWl0dDsKK+eBtCA8IHRvXC1iYWtlOwor5biD5LiBIDwgcHVkZGluZzsKK+eAuSA8IHRvXC1ib2lsOwor5ZyN5pS7IDwgYmVzaWVnZTsKK+WWnemHhyA8IGFjY2xhaW07CivmvpAgPCBiaWxsb3dzOwor55Sf6IKyIDwgdG9cLWJlYXI7CivotaTpgZMgPCBlcXVhdG9yOwor5r2sIDwgYVwtcmFwaWQ7Civlr4zlo6vpgJogPCBmdWppdHN1Owor55S35oCn6Kaq5bGsIDwga2luc21hbjsKK+a6piA8IGRyaXp6bGU7CivploDlj6MgPCBkb29yd2F5Owor54O56Kq/6KGTIDwgY29va2VyeTsKK+iyqOeJqemBi+i8uCA8IGZyZWlnaHQ7CivmkI3lgrcgPCB0b1wtaGFybTsKK+a4vCA8IHJpcHBsZXM7CivmuKcgPCB0b1wtZHJvcDsKK+i6q+adkCA8IHN0YXR1cmU7Civoi7Hli4cgPCBicmF2ZXJ5Owor5Y2w5Yi36ICFIDwgcHJpbnRlcjsKK+a3t+WQiOeJqSA8IG1peHR1cmU7CivpmL/lhYvlgKsgPCBhY2hlcm9uOwor5ra2IDwgdG9cLXNwaXQ7CivmtpIgPCBtZWFuZGVyOwor5rS4IDwgc3BhcmtsZTsKK+eJmeenkemGq+eUnyA8IGRlbnRpc3Q7CivllY/poYwgPCBwcm9ibGVtOwor5a+E6YCBIDwgdG9cLXNlbmQ7Civlgr7mlpwgPCBpbmNsaW5lOwor6YOh5rK75a6J5a6YIDwgc2hlcmlmZjsKK+eEoeelnuirliA8IGF0aGVpc207CivmsYsgPCB0b1wtcG91cjsKK+S4jeWLleaQliA8IHVubW92ZWQ7CivmsLwgPCB0b1wtc2luazsKK+WbsOaTviA8IHBlcnBsZXg7CivmsJUgPCBwcm90aXVtOwor5oq85rKZ6b6NIDwgYWJzYWxvbTsKK+aKhOe2siA8IGRpcFwtbmV0Owor5q2cIDwgZnVyaW91czsKK+WatOatoyA8IHN0ZXJubHk7CivlgqznnKDmm7IgPCBsdWxsYWJ5Owor5Lqe5Lyv5ouJ572VIDwgYWJyYWhhbTsKK+aIluiosSA8IHBlcmhhcHM7Civmpq7lubggPCBob25vcmVkOwor5YWL576F5Zyw5LqeIDwgY3JvYXRpYTsKK+mmrOi5rCA8IHN0aXJydXA7CivmqYYgPCB3aXRob3V0Owor5ZWG6ZqKIDwgY2FyYXZhbjsKK+eJm+mgreeKrCA8IGJ1bGxkb2c7CivlrbjpmaIgPCBjb2xsZWdlOwor5YO15bGAIDwgaW1wYXNzZTsKK+aNleaJiyA8IGNhdGNoZXI7CivmpqIgPCBhXC1mcmFtZTsKK+aKleelqCA8IHRvXC12b3RlOwor5L2/6a2U5rOVIDwgY29uanVyZTsKK+WFqOelnueBjOazqCA8IHJhcHR1cmU7CivmpJcgPCBcKHBsYW50XCk7CivlronkuYPov5EgPCBhbmFsZ2luOwor6JuL55m96LOqIDwgcHJvdGVpbjsKK+WwiOenkemZouagoSA8IGFjYWRlbXk7CivooYzmnY4gPCBsdWdnYWdlOwor5o+Q5YiwIDwgbWVudGlvbjsKK+mpleefnCA8IGhhdWdodHk7Civoip3liqDlk6UgPCBjaGljYWdvOwor5YWr5bi26a2aIDwgb2N0b3B1czsKK+a0l+iho+W6lyA8IGxhdW5kcnk7Civkv6HnrrEgPCBtYWlsYm94Owor5p68IDwgYVwtdGFibGU7CivmnpMgPCBjYXBpdGFsOwor5p24IDwgdG9cLWtpbGw7CivmnL4gPCB0b1wtYnVtcDsKK+amguW/tSA8IGNvbmNlcHQ7CivkuI3lvpfli4EgPCBhd2t3YXJkOwor5Zyw5Z2AIDwgYWRkcmVzczsKK+WtlOmbgCA8IHBlYWNvY2s7Civmu5HnqL0gPCBjb21pY2FsOwor5pW+IDwgdG9cLXJ1bGU7Civmla8gPCB0b1wtZGVmeTsKK+aVnCA8IGZpbGxcLXVwOwor5L2O6Kq/IDwgbG93XC1rZXk7Civmk7ggPCB0b1wtaG9sZDsKK+aMieaZgiA8IG9uXC10aW1lOwor5pGgIDwgZ2VuZXJhbDsKK+mVt+mguOm5vyA8IGdpcmFmZmU7CivmiZPnrpcgPCB0b1wtcGxhbjsKK+aOryA8IG9wcHJlc3M7CivlsI/ntYQgPCBhXC1ncm91cDsKK+aMjSA8IGNvbGxhdGU7CivlpbPpq5jpn7MgPCBzb3ByYW5vOwor5oyJ5pGpIDwgbWFzc2FnZTsKK+aKiCA8IHRvXC1iZW5kOwor5om9IDwgdG9cLW1vdmU7Civos6rph48gPCBxdWFsaXR5Owor56+A5pelIDwgaG9saWRheTsKK+avlOWIqeaZgiA8IGJlbGdpdW07CivkuI3oqr/lkowgPCBkaXNjb3JkOwor5oewIDwgYmVcLWdsYWQ7Civmh6sgPCBlbnJhZ2VkOwor5pyJ6Zmw5b2xIDwgc2hhZG93eTsKK+aHmyA8IGFsYXJtZWQ7Civmh4UgPCBiYXNoZnVsOwor55Si54mpIDwgcHJvZHVjdDsKK+S+m+e1piA8IGZ1cm5pc2g7Civmg6MgPCBvdmVyYWxsOwor5oOHIDwgYmVcLWtpbmQ7CivoiJ7lvIQgPCB0b1wtd2F2ZTsKK+aMh+mXnOevgCA8IGtudWNrbGU7CivmiZPnoo4gPCBzaGF0dGVyOwor5oGJIDwgbWVhbmluZzsKK+WcqOWJjSA8IGZvcndhcmQ7CivntaboiIfos4fmoLwgPCBxdWFsaWZ5Owor5LiD5pyI5LiJ5Y2B6JmfIDwganVseVwtMzA7CivmnY7ptawgPCBsaVwtcGVuZzsKK+WuieiorSA8IGluc3RhbGw7Civosqzpm6MgPCBjZW5zdXJlOwor5bO25ba8IDwgaXNsYW5kczsKK+afpeiqvyA8IGlucXVpcnk7Civkvr/nm4YgPCBiZWRcLXBhbjsKK+igseaDkSA8IGVuY2hhbnQ7Civlu4wgPCB1bmljb3JuOwor5ruy5ryPIDwgc2VlcGFnZTsKK+W5s+W4uOaXpSA8IHdlZWtkYXk7Civoga/pgqYgPCBmZWRlcmFsOwor5ryC5rOKIDwgZHJpZnRlcjsKK+WEsuiXj+WupCA8IHN0b3JhZ2U7CivlmbjmlbggPCB0b25uYWdlOwor5YyI54mZ5YipIDwgaHVuZ2FyeTsKK+WVhuiojiA8IGRpc2N1c3M7Civpppnoj5wgPCBwYXJzbGV5Owor5rW36a6uIDwgc2VhZm9vZDsKK+iHpeaIvyA8IGJlZHJvb207CivljbDlnLDlronpgqMgPCBpbmRpYW5hOwor5YOl5YCWIDwgbHVja2lseTsKK+WCs+WWriA8IGxlYWZsZXQ7CivkuI3lvpfogIznn6UgPCB1bmtub3duOwor5aKT6KqM6YqYIDwgZXBpdGFwaDsKK+mmmeiFuCA8IHNhdXNhZ2U7CivoiKrnqbrlhazlj7ggPCBhaXJsaW5lOwor5aqeIDwgYXRcLWVhc2U7CivotbDnp4EgPCBzbXVnZ2xlOwor5pyJ6ICQ5LmF5YqbIDwgZHVyYWJsZTsKK+S4gOacg+WFkiA8IGFcLXdoaWxlOwor5LiN6YGT5b63IDwgaW1tb3JhbDsKK+m+jeidpiA8IGxvYnN0ZXI7Civng4/lhYvomK0gPCB1a3JhaW5lOwor5aSq6Zm96buR5a2QIDwgc3Vuc3BvdDsKK+WcqOWupOWFpyA8IGluZG9vcnM7CivlpKMgPCBhXC1kcmVhbTsKK+WjnSA8IGFcLW1vdW5kOwor5biM5Lyv5L6G5pu4IDwgaGVicmV3czsKK+WhkyA8IHBsYXN0ZXI7CivmpLDlrZAgPCBjb2NvbnV0Owor6ZGS5oiSIDwgd2FybmluZzsKK+WghCA8IHBhcmFwZXQ7Civku6PoqZ4gPCBwcm9ub3VuOwor5Z+XIDwgYVwtd2hhcmY7CivkuLnpuqUgPCBkZW5tYXJrOwor5LiN6Zui5YWSIDwgbm90XC1iYWQ7CivlnJUgPCBsaWJyYXJ5Owor5ZyCIDwgcGlnXC1zdHk7Civnlavlu4ogPCBnYWxsZXJ5Owor55m96JuL55m9IDwgYWxidW1pbjsKK+WaiiA8IHRvXC1wYW50Owor5Li75bit6Ie6IDwgcm9zdHJ1bTsKK+ihneWKmyA8IGltcHVsc2U7CivpoZ7lm7rphocgPCBzdGVyb2lkOwor5ZalIDwgYVwtcGxhY2U7Civlroznvo4gPCBwZXJmZWN0Owor5bGV5pybIDwgb3V0bG9vazsKK+ipleitsOacgyA8IGNvdW5jaWw7CivmnInluIzmnJsgPCBob3BlZnVsOwor56uK55ucIDwgYnVyZ2xhcjsKK+WUniA8IHRvXC1nYXNwOwor5ZSFIDwgYVwtc291bmQ7Civlrrbnpr0gPCBwb3VsdHJ5Owor5YK35a+S55eHIDwgdHlwaG9pZDsKK+WSviA8IGFcLW5vaXNlOwor5ZKJIDwgYW5cLWVjaG87CivlpafmnpfljLnlhYsgPCBvbHltcGljOwor5Yiw6YKj6KOhIDwgdGhpdGhlcjsKK+WRvyA8IHRvXC15YXduOwor5ZGsIDwgdG9cLXJlc3Q7Civkup7liKnmoZHpgqMgPCBhcml6b25hOwor5ZGMIDwgdG9cLWNhbGw7CivnqbrnvLogPCB2YWNhbmN5Owor5pyA6auYIDwgaGlnaGVzdDsKK+eVq+WutiA8IHBhaW50ZXI7CivppIrogIHph5EgPCBwZW5zaW9uOwor55ay5YueIDwgZmF0aWd1ZTsKK+WNsiA8IGVtaW5lbnQ7CivljKcgPCBhXC10cnVuazsKK+S4jem9kiA8IGRlc3Bpc2U7CivmipXmiYsgPCBwaXRjaGVyOwor5rW36YKKIDwgc2Vhc2lkZTsKK+iTi+S4luWkquS/nSA8IGdlc3RhcG87CivlmYHlv4MgPCB0b1wtaGF0ZTsKK+Wwi+axgiA8IHRvXC1zZWVrOwor5YS2IDwgdmFsaWFudDsKK+Wwj+WGiuWtkCA8IGJvb2tsZXQ7CivlhKYgPCBtaWxsaW5nOwor5YSkIDwgb25cLWR1dHk7CivmnKrmraboo50gPCB1bmFybWVkOwor5Zm05aKoIDwgaW5rXC1qZXQ7CivmnInpmZAgPCBsaW1pdGVkOwor5omY5p62IDwgYnJhY2tldDsKK+S+hyA8IGFcLWNsYXNzOwor5LyAIDwgZXhjaXRlZDsKK+acgOmVtyA8IGxvbmdlc3Q7Civkub8gPCB0b1wtY3VyZTsKK+S5rCA8IHRvXC1oYW5nOwor5omz5omLIDwgc3Bhbm5lcjsKK+S+v+aWvCA8IGVhc3lcLXRvOwor5rW36LGaIDwgZG9scGhpbjsKK+aEm+ittyA8IGNoZXJpc2g7CivktqkgPCB0b1wtZ25hdzsKK+aEm+Wxi+WPiueDjyA8IGxvdmVcLW1lOwor56+A5YSJIDwgdGhyaWZ0eTsKK+elnumrlCA8IGdvZGhlYWQ7CivktKcgPCB2ZW5pc29uOwor5Lit6ZaTIDwgYmV0d2l4dDsKK+SynSA8IHBvbWZyZXQ7CivkspQgPCBhXC13aGFsZTsKK+aEn+imuiA8IHRvXC1mZWVsOwor5pyJ5bmr5YqpIDwgaGVscGZ1bDsKK+SxiSA8IHRoZVwtZWVsOwor5LCeIDwgdG9cLWNvb2s7CivlraTnq4sgPCBpc29sYXRlOwor5K68IDwgcGllYmFsZDsKK+eVtuWJjSA8IGN1cnJlbnQ7CivkrqYgPCB1bnRhbWVkOwor5bGk5a2QIDwgc3RyYXR1bTsKK+StoCA8IGFcLXNuYWNrOwor55So5a2XIDwgZGljdGlvbjsKK+SsjiA8IGhvdFwtYWlyOwor6Zi/5ouJ5LyvIDwgYXJhYmlhbjsKK+SrmCA8IGhlYWx0aHk7Civkv4PmiJAgPCBwcm9jdXJlOwor5a6J55O/IDwgYW1wb3VsZTsKK+SqoyA8IHNtYXNoZWQ7Civoh7PkuIogPCBzdXByZW1lOwor5KmzIDwgdGFubmluZzsKK+SplCA8IHRoZVwtaGVtOwor5Lul6aas5YWn5YipIDwgZW1hbnVlbDsKK+SoniA8IHRvXC1yYWluOwor5LiA6aCFIDwgYW5cLWl0ZW07CivkqIIgPCBhXC1jaGljazsKK+SnnyA8IHRvXC1za2luOwor6Zi/5ouJ5LiBIDwgYWxhZGRpbjsKK+S4jeimuuWvnyA8IHVuYXdhcmU7CivmuIXnnJ8gPCBpc2xhbWljOwor5KaLIDwgdG9cLWdyb3c7CivllpzmraEgPCB0b1wtbGlrZTsKK+eUmOiXjeiPnCA8IGNhYmJhZ2U7CivkpJ8gPCBhXC1zcGFkZTsKK+S4iumWgCA8IGRyb3BcLWluOwor5KK2IDwgYVwtc3RhdGU7CivlrbjnlJ8gPCBzdHVkZW50Owor5aWz5L+u6YGTIDwgY29udmVudDsKK+SimSA8IHRvXC1ydWluOwor542O6YeRIDwgcHJlbWl1bTsKK+imj+WKg+S6uuWToSA8IHBsYW5uZXI7CivkoLwgPCB0b1wtd2VhcjsKK+S6uue+pCA8IGFcLWNyb3dkOwor5YGH5L2/IDwgc3VwcG9zZTsKK+eZvOePvueJqSA8IGZpbmRpbmc7Civmm7TpgaAgPCBmYXJ0aGVyOwor5Zyo5LiL5pa5IDwgYmVuZWF0aDsKK+mpmuWahyA8IGhvcnJpZnk7CivknJYgPCB0b1wtdGFsazsKK+SciSA8IHRvXC1qZXN0Owor5Ju3IDwgdG9cLW9iZXk7Civkm7AgPCBza2V0Y2h5Owor6JK45rG95qmfIDwgc3RlYW1lcjsKK+SasSA8IGhvbmVzdHk7Civkmq4gPCB0aGlja2VyOwor5JqXIDwgdG9cLWxpZnQ7Civkmo8gPCB0b1wtbG92ZTsKK+S4memFriA8IGFjZXRvbmU7CivlsI/ngJHluIMgPCBjYXNjYWRlOwor5oWI5ZaE5qmf5qeLIDwgY2hhcml0eTsKK+eUt+aAp+WwiueosSA8IGVzcXVpcmU7CivkmLEgPCB3ZWFsdGh5Owor5JigIDwgZ3JlYXZlczsKK+SYnSA8IGFcLXNoaXJ0Owor56ys5Y2B5LqMIDwgdHdlbGZ0aDsKK+S4jeS4ieS4jeWbmyA8IGR1YmlvdXM7CivmiY3lubIgPCBhYmlsaXR5Owor6aaZ5rC0IDwgcGVyZnVtZTsKK+mmmeawoyA8IGluY2Vuc2U7CivklpogPCBhXC10aWdlcjsKK+aIkOaWhyA8IHdyaXR0ZW47CivklLogPCBoZWFkaW5nOwor5ZCQ6ZyyIDwgdG9cLXRlbGw7CivmnKrmsbrlrpogPCBwZW5kaW5nOwor6LaV5b+rIDwgYXRcLW9uY2U7CivmnIPorbAgPCBtZWV0aW5nOwor6aOb6Ii5IDwgYWlyc2hpcDsKK+abvOiwtyA8IGJhbmdrb2s7CivkkrYgPCB0aGVcLXNreTsKK+WIl+eOi+e0gOS4iyA8IDJcLWtpbmdzOwor5YiX546L57SA5LiKIDwgMVwta2luZ3M7CivkkacgPCBhXC1zaG9ydDsKK+SQvyA8IGdpenphcmQ7CivkkLcgPCBwYXVuY2h5Owor5JC0IDwgbHVtYmFnbzsKK+SQqyA8IG9iZXNpdHk7Civkj5YgPCBhXC13b3VuZDsKK+SPhyA8IHRvXC1oZWFyOwor5I6pIDwgdG9cLXRpbGw7Civml4XpgYrogIUgPCB0b3VyaXN0Owor5Li76KmeIDwgc3ViamVjdDsKK+ayiem7mCA8IHNpbGVuY2U7CivmiZPlrZcgPCB0b1wtdHlwZTsKK+WPl+iol+S6uiA8IHRydXN0ZWU7CivkjJggPCB0b1wta25pdDsKK+SMlCA8IHRvXC1zb2FrOwor5IyBIDwgYVwtcGxlYXQ7Civki44gPCB0b1wtbWVuZDsKK+SKnyA8IGFkb3JuZWQ7CivkipggPCBhXC1ncmFpbjsKK+SJoiA8IGFcLXNpZXZlOwor5ImOIDwgYVwtY292ZXI7CivkiKwgPCBhXC1zbWFsbDsKK+WutOacgyA8IGJhbnF1ZXQ7Civkh5QgPCBhdHJvcGh5Owor5IeNIDwgdG9cLXdhaXQ7CivpoJjpmoogPCBjYXB0YWluOwor5pyI6J2VIDwgZWNsaXBzZTsKK+SEjyA8IGJpemFycmU7CivlgInkv4MgPCBodXJyaWVkOwor6IKl5rKDIDwgZmVydGlsZTsKK+SCgCA8IHRvXC13aW5rOwor5Y+s6ZuGIDwgY29udmVuZTsKK+SBmyA8IHRvXC1sb29rOwor56We6LehIDwgbWlyYWNsZTsKK+S9v+W+kiA8IGFwb3N0bGU7CivjvrcgPCB0b1wtYWNoZTsKK+O+oCA8IGFcLWZldmVyOwor476fIDwgcmVsYXBzZTsKK+O+mCA8IGFpbG1lbnQ7CivjvpUgPCBhXC1jaGlsbDsKK+O+hiA8IGVjZHlzaXM7CivjvoUgPCBkZWZlY3RzOwor6Zm46LuN5LiK5qChIDwgY29sb25lbDsKK+O9liA8IGFcLWh1bWFuOwor47y8IDwgYVwtbGFkbGU7CivjvLcgPCBhXC1iYXNpbjsKK+iEueWkpyA8IHN3b2xsZW47CivjvJcgPCBhXC1icmljazsKK+iZm+ani+Wwj+iqqiA8IGZpY3Rpb247Civlr7blr7YgPCBkYXJsaW5nOwor47qyIDwgYnV0dG9uczsKK+O6iiA8IGFcLWJlYXN0Owor47meIDwgdG9cLWJhcms7CivjuZsgPCBhXC10YW1lZDsKK+etieWAmSA8IHdhaXRpbmc7Civot4zliLAgPCB0b1wtZmFsbDsKK+aHuuaClCA8IGNvbmZlc3M7Civjt5MgPCBhXC10b3JjaDsKK+O3iSA8IHRvXC1pcm9uOwor5oi25aSWIDwgb3V0ZG9vcjsKK+efs+WNl+WxrCA8IGhlYXRoZXI7Civlr6zlrrkgPCBsZW5pZW50Owor47WSIDwgYm9pbGluZzsKK+O1jCA8IHRvXC1mbG93Owor47WFIDwgYVwtcml2ZXI7Civog73lubkgPCBjYXBhYmxlOwor5LiN6KaLIDwgbm90XC1zZWU7CivjtIcgPCB0b1wtd2FkZTsKK+OzrSA8IHNwaXR0bGU7Civjs6wgPCBhblwtZWRkeTsKK+S9j+aIvyA8IGhvdXNpbmc7Civjs5kgPCBhXC1icm9vazsKK+aIsOWjqyA8IGZpZ2h0ZXI7CivjsoIgPCB0b1wtcHVzaDsKK+OxliA8IHRvXC1zdGF5Owor47GMIDwgdG9cLXRha2U7Civnv6Hnv6AgPCBlbWVyYWxkOwor5bCK5Zq0IDwgZGlnbml0eTsKK+iWhOeDpOmkhSA8IHBhbmNha2U7Civjr5MgPCBhXC1jb3VjaDsKK+OvkCA8IHR1YnVsYXI7Civjr4sgPCBhXC1jaGVzdDsKK+WvhuW6piA8IGRlbnNpdHk7CivjrpsgPCBhXC1zcG9vbjsKK+OtqiA8IGFcLXNocnViOwor5q+S6I2J5ZCNIDwgaGVtbG9jazsKK+OrtCA8IHRvXC1yb2FyOwor46udIDwgdGhlXC1zdW47CivlnLDlubPnt5ogPCBob3Jpem9uOwor5bCW5Y+rIDwgc2NyZWVjaDsKK+OpsCA8IHRvXC1zdGFiOwor5aW56Ieq5bexIDwgaGVyc2VsZjsKK+WuieaSqyA8IHBsYWNhdGU7CivjqLcgPCB0b1wtd2lwZTsKK+mggumHnSA8IHRoaW1ibGU7CivjqLAgPCB0b1wtdHVybjsKK+aguOWtkCA8IG51Y2xlYXI7CivkvJHmnIMgPCBhZGpvdXJuOwor6LKi54mpIDwgdHJpYnV0ZTsKK+OnuyA8IGFcLXRob3JuOwor46a5IDwgYVwtc3BlYXI7Civjpq0gPCB0b1wtcGl0eTsKK+mjm+ebpCA8IGZyaXNiZWU7Civmt5jmsKMgPCBuYXVnaHR5Owor46WSIDwgY29ycnVwdDsKK+mojuWFtSA8IGNhdmFscnk7CivjpLogPCBibHVycmVkOwor46O3IDwgd2Fsa2luZzsKK+efruWjr+e0oCA8IGN5Y29jZWw7CivlpJbnp5HmiYvooZMgPCBzdXJnZXJ5Owor46G4IDwgYVwtaG91c2U7CivnrKzkuIMgPCBzZXZlbnRoOwor46GoIDwgYVwtbGFiZWw7CivjoZggPCBzY3JlZW5zOwor46GTIDwgZHJhd2VyczsKK+OhgiA8IHJlbWFpbnM7Civkv4Pkvb8gPCBzcHVyXC1vbjsKK+miqOeusSA8IGJlbGxvd3M7Civjn6cgPCBhXC1jbGlmZjsKK+a1tOebhiA8IGJhdGh0dWI7CivjnrogPCBhXC10cmliZTsKK+e+pOiKsSA8IGJsb3Nzb207CivlkIToibLlkITmqKMgPCBkaXZlcnNlOwor5L2b576F6KOh6YGUIDwgZmxvcmlkYTsKK+mmrOWtkCA8IGNvbW1vZGU7CivotorljZcgPCB2aWV0bmFtOwor5ZCR5L2V6JmVIDwgd2hpdGhlcjsKK+OckyA8IHdvbWFubHk7CivnqbrmiLAgPCBhaXJcLXdhcjsKK+aIkOWciCA8IHdyZWF0aGU7CivjnIcgPCB1bmhhcHB5Owor5oeJ5b6XIDwgZGVzZXJ2ZTsKK+aIsOWLnSA8IHByZXZhaWw7CivjmqIgPCBhXC1zbGF2ZTsKK+S4jeiLnyA8IG5vdFwtbGF4Owor57GD5p2/55CDIDwgcmVib3VuZDsKK+S9j+WuvyA8IGxvZGdpbmc7CivjmZQgPCBhXC1mZW5jZTsKK+OZjyA8IGNhdmVybnM7CivororpgbcgPCBjaGFuZ2VzOwor45ipIDwgdG9cLW1hdGU7Civjl4MgPCB0aGVcLWxpcDsKK+WwgeWFpSA8IGluY2xvc2U7CivppqzlhYvmgJ3kuLvnvqkgPCBtYXJ4aXNtOwor45WfIDwgdG9cLXNpZ247CivjlZ4gPCBhXC1icnVzaDsKK+OUvyA8IGFcLXRhbGx5Owor45ShIDwgZ3JlYXRseTsKK+OUgiA8IHRvXC1wYXJlOwor45OwIDwgdG9cLXJpdmU7Civjk58gPCB0b1wtcGVlbDsKK+OStCA8IHRvXC1jb21lOwor45KmIDwgcHVwcGV0czsKK+iBveW+l+imiyA8IGF1ZGlibGU7Civph47ospMgPCB3aWxkY2F0Owor45KVIDwgdW55aWVsZDsKK+OSkSA8IGdyb3dcLXVwOwor5Luj5pu/IDwgaW5zdGVhZDsKK+ORhSA8IHRvXC1tYWtlOwor5qGI5Y23IDwgcmVjb3JkczsKK+eZvuaFleWkpyA8IGJlcm11ZGE7Civku6PmlbggPCBhbGdlYnJhOwor5pyJ5qKd57SLIDwgc3RyaXBlZDsKK+acqOeTpiA8IHNoaW5nbGU7CivmiJDlip8gPCBzdWNjZXNzOwor5a6J5oGv5pelIDwgc2FiYmF0aDsKK+S4reeriyA8IG5ldXRyYWw7CivkuJbntIAgPCBjZW50dXJ5Owor5L2O5ZywIDwgbG93bGFuZDsKK+a1t+a+oSA8IHNlYXdlZWQ7Civku4rmmZogPCB0b25pZ2h0Owor6KOB57SZ5qmfIDwgdHJpbW1lcjsKK+WTgOaxgiA8IGVudHJlYXQ7CivmtJfnpq4gPCBiYXB0aXNtOwor5aaT6ZmiIDwgYnJvdGhlbDsKK+S4jeetiSA8IHRvXC12YXJ5Owor5YWs54i15aSr5Lq6IDwgZHVjaGVzczsKK+WQjee+qSA8IHRpdHVsYXI7CivmtojmpbUgPCBwYXNzaXZlOwor5rC06YqAIDwgbWVyY3VyeTsKK+aaiOiIuSA8IHNlYXNpY2s7Civmh7fmlbXmhI8gPCBob3N0aWxlOwor6IG35belIDwgd29ya2VyczsKK+Wtn+WtkCA8IG1lbmNpdXM7Civlrpjlj7ggPCBsYXdzdWl0Owor6Z2e6ZujIDwgcmVwcm9vZjsKK+awuOmBoCA8IGZvcmV2ZXI7CivphazovIkgPCBwYXlsb2FkOwor6IG95a+rIDwgZGljdGF0ZTsKK+iZp+aQjSA8IGRlZmljaXQ7CivpurvnhakgPCB0cm91YmxlOwor6Zi/54i+5be05bC85LqeIDwgYWxiYW5pYTsKK+W9vOW+l+W+jOabuCA8IDJcLXBldGVyOwor5Ym156uL6ICFIDwgZm91bmRlcjsKK+e2reS7luWRvSA8IHZpdGFtaW47CivorY/oqpogPCBjeW5pY2FsOwor56K66KqNIDwgY29uZmlybTsKK+ijnee9rueJqSA8IGZpeHR1cmU7CivnjovmrIogPCByb3lhbHR5Owor54675Yip57at5LqeIDwgYm9saXZpYTsKK+S8geWcliA8IGF0dGVtcHQ7Civlj4PorbDlk6EgPCBzZW5hdG9yOwor576F55ukIDwgY29tcGFzczsKK+aYn+acn+S6jCA8IHR1ZXNkYXk7Civnj77lr6YgPCByZWFsaXR5Owor6LOq5ZywIDwgdGV4dHVyZTsKK+mfs+aoguacgyA8IGNvbmNlcnQ7CivotIrliqkgPCBzcG9uc29yOwor5b+g6KqgIDwgZGV2b3RlZDsKK+mrlOiCsuWgtCA8IHN0YWRpdW07CivphK3ph40gPCBzZXJpb3VzOwor5Y2w5YOP5rex5Yi7IDwgaW1wcmVzczsKK+WNiumAlCA8IGhhbGZ3YXk7Civlpb3ovYkgPCBpbXByb3ZlOwor5oOh5qONIDwgdmlsbGFpbjsKK+aEm+eIvuiYrSA8IGlyZWxhbmQ7CivpgIPkuqHogIUgPCBydW5hd2F5Owor6by75a2UIDwgbm9zdHJpbDsKK+WTgOaAnSA8IHBlbnNpdmU7CivmjIflsI7mlZnmjoggPCBhZHZpc2VyOwor54yW542XIDwgcmFtcGFudDsKK+aenOWckiA8IG9yY2hhcmQ7Civml4HpgoogPCBsYXRlcmFsOwor5ZKv5ZKv56yRIDwgY2h1Y2tsZTsKK+eUn+eJqeWtuCA8IGJpb2xvZ3k7Civpo5vlvYggPCBtaXNzaWxlOwor6IG95YqbIDwgaGVhcmluZzsKK+S9v+aGpOaFqCA8IG91dHJhZ2U7Civml6XoqowgPCBqb3VybmFsOwor5bGF5L2P5pa8IDwgaW5oYWJpdDsKK+WklumdoiA8IG91dHNpZGU7Civpm4Tpu4MgPCByZWFsZ2FyOwor5pyD5pyfIDwgc2Vzc2lvbjsKK+S4jeazlSA8IGxhd2xlc3M7CivkuI3nn6XkvZXmlYUgPCBzb21laG93Owor5reh5YWJIDwgc2hpbW1lcjsKK+W9jOizveS6niA8IG1lc3NpYWg7CivmspLnlJrpurwgPCBub3RoaW5nOwor5aSn6YyvIDwgYmx1bmRlcjsKK+iAgeW5tCA8IGVsZGVybHk7CivorornoawgPCBzdGlmZmVuOwor5rW35bK4IDwgY29hc3RhbDsKK+eFmeeBsOe8uCA8IGFzaHRyYXk7CivnpKbniakgPCBtaW5lcmFsOwor6JGX6Zm4IDwgbGFuZGluZzsKK+S4jeWcqOS6hiA8IGJlXC1kZWFkOwor57Sh57mU5ZOBIDwgdGV4dGlsZTsKK+enkeWtuCA8IHNjaWVuY2U7CivmtrLljJYgPCBsaXF1aWZ5Owor6Zi/5Y+45Yy55p6XIDwgYXNwaXJpbjsKK+aWueiogCA8IGRpYWxlY3Q7Civlj6TniakgPCBhbnRpcXVlOwor5pel6JC9IDwgc3VuZG93bjsKK+mHkeWFiemWg+eIjSA8IHNwYW5nbGU7Civpg7XosrsgPCBwb3N0YWdlOwor5puW5pinIDwgaWxsaWNpdDsKK+S4jeS6uumBkyA8IGluaHVtYW47Civpm4Tpm54gPCByb29zdGVyOwor5pS+6ZaLIDwgdW5sZWFzaDsKK+iiq+aykuaUtiA8IGZvcmZlaXQ7CivlpbTpmrjliLbluqYgPCBzbGF2ZXJ5Owor576o5oWVIDwgZW52aW91czsKK+i3r+ilv+W8lyA8IGx1Y2lmZXI7CivljJblrbjlrrYgPCBjaGVtaXN0Owor6aSF5Lm+IDwgYmlzY3VpdDsKK+acieWusyA8IGhhcm1mdWw7CivphZLnsr4gPCBhbGNvaG9sOwor56S+5pyDIDwgc29jaWV0eTsKK+aatOaUvyA8IHR5cmFubnk7CivnjovlnIsgPCBraW5nZG9tOwor5piT56KOIDwgYnJpdHRsZTsKK+mHmOatuyA8IGNydWNpZnk7CivoqJPnt7TogIUgPCB0cmFpbmVyOwor5riF5r2U5ZmoIDwgY2xlYW5lcjsKK+mhp+W/jCA8IHNjcnVwbGU7CivmhIjlkIggPCB0b1wtaGVhbDsKK+ips+i/sCA8IHJlY291bnQ7CivpoZjmhI8gPCB0b1wtd2lzaDsKK+aEm+W+t+eOsiA8IGFkZWxpbmU7Civov6vliIfmgKcgPCB1cmdlbmN5Owor546p5YWSIDwgdG9cLXBsYXk7CivlpbPmvJTlk6EgPCBhY3RyZXNzOwor5Lit5a2QIDwgbmV1dHJvbjsKK+mHkeapmCA8IGt1bXF1YXQ7CivpnIDopoEgPCB0b1wtbmVlZDsKK+aClOaBqCA8IHJlbW9yc2U7CivmnIDlpKcgPCBiaWdnZXN0Owor5pyA5aSaIDwgYXRcLW1vc3Q7CivogJXkvZwgPCBmYXJtaW5nOwor5oCl5rWBIDwgdG9ycmVudDsKK+W3tOavlOWAqyA8IGJhYnlsb247CivogIHlhawgPCBodXNiYW5kOwor5ayw5YWS5pyfIDwgaW5mYW5jeTsKK+eZvuiRieeqlyA8IHNodXR0ZXI7Civpgb/lvYjlnZEgPCBmb3hob2xlOwor6aas5L6G6KW/5LqeIDwgbWFsYXNpYTsKK+WxseiDoeahg+acqCA8IGhpY2tvcnk7CivohKvooaPmnI0gPCB1bmRyZXNzOwor5LmP5ZGzIDwgdGVkaW91czsKK/ChnLEgPCB0b1wtZW52eTsKK+WRvOWQuCA8IGJyZWF0aGU7CivnjJzluqYgPCBzdXJtaXNlOwor5ZG75ZCfIDwgdG9cLW1vYW47CivlvbzlvpfliY3mm7ggPCAxXC1wZXRlcjsKK+mBtOmBuCA8IHRvXC1waWNrOwor5aWz56WeIDwgZ29kZGVzczsKK+aDs+WDjyA8IGltYWdpbmU7Civmpa3ppJjogIUgPCBhbWF0ZXVyOwor5ZCM5b+XIDwgY29tcmFkZTsKK+aykuaciSA8IGhhdmVuJyd0Owor5Y2X55OcIDwgcHVtcGtpbjsKK+iuiuaaliA8IHdhcm1pbmc7Civph5HlrZfloZQgPCBweXJhbWlkOwor5rCj55CDIDwgYmFsbG9vbjsKK+eLguaatCA8IGZyYW50aWM7Civku5boh6rlt7EgPCBoaW1zZWxmOwor5ZCK5bqKIDwgaGFtbW9jazsKK+WPiuaZgiA8IGluXC10aW1lOwor6YOo572yIDwgZGlzcG9zZTsKK+S5n+S4jSA8IG5laXRoZXI7Civlj6/mhpAgPCBwaXRpZnVsOwor5aWz55qHIDwgZW1wcmVzczsKK+WumuWxheiAhSA8IHNldHRsZXI7CivkuIDlpKkgPCBvbmVcLWRheTsKK+S6jOWNgeWkmiA8IG92ZXJcLTIwOwor5pS56KOdIDwgcmVtb2RlbDsKK+mYv+mjmyA8IGhvb2RsdW07Civlj6/mgaggPCBoYXRlZnVsOwor5pS255WZ5omAIDwgYmFycmFjazsKK+azleWumCA8IGFcLWp1ZGdlOwor576O5ZyLIDwgYW1lcmljYTsKK+acgOS9syA8IG9wdGltdW07Civlub3pnYggPCBzcGVjdGVyOwor6YGL6L2JIDwgdG9cLXdvcms7CivpgYvovLggPCB0cmFuc2l0Owor5oKy5YqHIDwgdHJhZ2VkeTsKK+abuOS/oSA8IGVwaXN0bGU7Civlio3ooZMgPCBmZW5jaW5nOwor5bCx5a+i5pmC6ZaTIDwgYmVkdGltZTsKK+e3kuiogCA8IHByZWZhY2U7CivoqofogIAgPCBwcm91ZGx5Owor57y65bitIDwgYWJzZW5jZTsKK+S4gOWPoyA8IHJlYWRpbHk7CivkuIPljYEgPCBzZXZlbnR5Owor54eV6bql57KlIDwgb2F0bWVhbDsKK+aWsOeUnyA8IG5ld2Jvcm47CivkuI3lho0gPCBub1wtbW9yZTsKK+S6nuaLieW3tOmmrCA8IGFsYWJhbWE7CivkuJbkv5cgPCBwcm9mYW5lOwor5bm06ZGRIDwgYWxtYW5hYzsKK+avlOeVqyA8IGdlc3R1cmU7Civph4/lrZAgPCBxdWFudHVtOwor54y/5Lq6IDwgYXBlXC1tYW47Civlj6vlpb0gPCBhcHBsYXVkOwor6Ieq6KGM6LuKIDwgYmljeWNsZTsKK+mAkOmAgCA8IHJlcHVsc2U7CivmsJHmlbjoqJggPCBudW1iZXJzOwor5bCP5paR6bueIDwgc3BlY2tsZTsKK+azqOWFpSA8IHBvdXJcLWluOwor5q2j576pIDwganVzdGljZTsKK+S9v+WOreeFqSA8IGRpc2d1c3Q7Civoib7ov6rnlJ8gPCBhZGRpc29uOwor5pivIDwgaW5kZWVkOwor6L+rIDwgY29lcmNlOwor5b+cIDwgc2hvdWxkOwor5b+YIDwgZm9yZ2V0Owor5Zu9IDwgbmF0aW9uOwor6L+UIDwgcmV0dXJuOwor5b+NIDwgZW5kdXJlOwor6L+EIDwgZXh0ZW5kOwor5b+FIDwgc3VyZWx5Owor5Ye6IDwgZ29cLW91dDsKK+i+vyA8IGZvbGxvdzsKK+eevCA8IGV5ZWxpZDsKK+W+lyA8IG9idGFpbjsKK+i+tyA8IHNtb290aDsKK+W+tCA8IHN1bW1vbjsKK+W+syA8IHZpcnR1ZTsKK+eerSA8IGJyaWdodDsKK+i+myA8IGJpdHRlcjsKK+W+kCA8IHNsb3dseTsKK+W+jCA8IGJlaGluZDsKK+W+iiA8IGxpbmdlcjsKK+W9sSA8IHNoYWRvdzsKK+S6iyA8IGFmZmFpcjsKK+i9nyA8IHJ1bWJsZTsKK+W9iCA8IHBlbGxldDsKK+S4uyA8IG1hc3RlcjsKK+W8tyA8IHN0cm9uZzsKK+W8myA8IGxvb3NlbjsKK+awkSA8IHBlb3BsZTsKK+ecjCA8IGNvdW50eTsKK+eOsCA8IGFwcGVhcjsKK+WIhiA8IGRpdmlkZTsKK+S6myA8IGxpdHRsZTsKK+ebuCA8IG11dHVhbDsKK+eQhiA8IHJlYXNvbjsKK+ebiiA8IHByb2ZpdDsKK+ivnSA8IHNwZWVjaDsKK+WQkSA8IHRvd2FyZDsKK+WumiA8IGRlY2lkZTsKK+W6qyA8IGFybW9yeTsKK+W6piA8IGRlZ3JlZTsKK+W6lSA8IGJvdHRvbTsKK+aJkyA8IHN0cmlrZTsKK+S9jSA8IHRocm9uZTsKK+W6jyA8IHNlcmllczsKK+W5vCA8IGluZmFudDsKK+W5siA8IG9wcG9zZTsKK+WGhSA8IGluc2lkZTsKK+eZqiA8IHNwYXNtczsKK+WKoCA8IGFkZFwtdG87CivljJYgPCBjaGFuZ2U7CivnmYwgPCBjYW5jZXI7CivluLggPCBjb21tb247CivouLAgPCBleGNlZWQ7CivluIIgPCBtYXJrZXQ7CivmiY0gPCB0YWxlbnQ7CivkvY8gPCByZXNpZGU7CivlkZggPCBtZW1iZXI7Civlt7sgPCBzY3JvbGw7CivmgKcgPCBuYXR1cmU7CivmiqUgPCByZXBvcnQ7CivnpZ4gPCBzcGlyaXQ7CivmlbAgPCBudW1iZXI7Civot6EgPCBzZWFyY2g7Civljp8gPCBzb3VyY2U7Civlt6EgPCBwYXRyb2w7Civlt50gPCBzdHJlYW07CivnloogPCByZXBlYXQ7Civns7sgPCBzeXN0ZW07CivnlaAgPCBnYXJkZW47CivorrAgPCByZWNvcmQ7CivmnpcgPCBmb3Jlc3Q7Civnu58gPCBnb3Zlcm47CivlrZcgPCBsZXR0ZXI7Civls7YgPCBpc2xhbmQ7Civos6ogPCBtYXR0ZXI7CivorrogPCBkZWJhdGU7CivosrAgPCBib3Jyb3c7CivmjIcgPCBmaW5nZXI7CivosqEgPCB3ZWFsdGg7CivoirEgPCBmbG93ZXI7CivlsaQgPCBzdG9yZXk7CivmnaEgPCBjbGF1c2U7CivlsY0gPCBjb3Jwc2U7CivlsYAgPCBidXJlYXU7Civlip4gPCBtYW5hZ2U7CivosLcgPCB2YWxsZXk7Civln44gPCBjYXN0bGU7CivniLYgPCBmYXRoZXI7CivlsI4gPCBkaXJlY3Q7Civlr6cgPCByZXBvc2U7Civpu4QgPCB5ZWxsb3c7CivlvrcgPCBldGhpY3M7CivlrrMgPCBpbmp1cmU7Civlrq4gPCBwYWxhY2U7Civlj4sgPCBmcmllbmQ7CivlroggPCBkZWZlbmQ7CivoroMgPCBwcmFpc2U7CivpmYUgPCBib3JkZXI7CivljZUgPCBzaW5nbGU7CivlraQgPCBvcnBoYW47CivmoKEgPCBzY2hvb2w7CivnjYQgPCBwcmlzb247CivnjL4gPCBjcmFmdHk7CivorJkgPCBodW1ibGU7CivorI4gPCByaWRkbGU7Civni7kgPCBuYXJyb3c7Civmr40gPCBtb3RoZXI7Civni5kgPCBhblwtYXBlOwor5ZuiIDwgc3BoZXJlOwor54uCIDwgaW5zYW5lOwor6KqyIDwgbGVzc29uOwor5oubIDwgYmVja29uOwor5YW0IDwgdGhyaXZlOwor57qmIDwgdHJlYXR5Owor6KmpIDwgcG9ldHJ5Owor57udIDwgdG9cLWN1dDsKK+mAiSA8IGNob29zZTsKK+aYnyA8IGFcLXN0YXI7CivoqLQgPCBhY2N1c2U7CivniJsgPCByb3R0ZW47CivmtoggPCB2YW5pc2g7Civnh60gPCBjYW5kbGU7Civlp6sgPCBiZWF1dHk7CivmnaggPCB3aWxsb3c7CivkuKUgPCBzdHJpY3Q7CivnhoogPCBhXC1iZWFyOwor5aaEIDwgYWJzdXJkOwor6IuPIDwgcmV2aXZlOwor562UIDwgYW5zd2VyOwor5aWuIDwgc3RyaXZlOwor54WpIDwgYm90aGVyOwor6KWkIDwgcmFnZ2VkOwor5L6bIDwgc3VwcGx5Owor5aSuIDwgY2VudGVyOwor5YiXIDwgYVwtbGluZTsKK+eEpiA8IGJ1cm5lZDsKK+m+mSA8IGRyYWdvbjsKK+WkjyA8IHN1bW1lcjsKK+aYpSA8IHNwcmluZzsKK+aAgSA8IG1hbm5lcjsKK+iiliA8IHNsZWV2ZTsKK+iiiyA8IHBvY2tldDsKK+WJryA8IGFzc2lzdDsKK+WknyA8IGVub3VnaDsKK+ihlyA8IHN0cmVldDsKK+a/gCA8IGFyb3VzZTsKK+mTtiA8IHNpbHZlcjsKK+mYtSA8IGNvbHVtbjsKK+eugCA8IHNpbXBsZTsKK+avkiA8IHBvaXNvbjsKK+a5liA8IGFcLWxha2U7CivonYkgPCBjaWNhZGE7Civov70gPCBwdXJzdWU7CivpvKwgPCB3ZWFzZWw7Civnu5wgPCBlbm1lc2g7CivmvKAgPCBkZXNlcnQ7CivonJggPCBzcGlkZXI7CivljaAgPCBkaXZpbmU7CivlnJMgPCBjaXJjbGU7CivlhbAgPCBvcmNoaWQ7CivpmLYgPCBzdGFpcnM7Civpu5kgPCBzaWxlbnQ7CivkvZsgPCBidWRkaGE7CivmlYggPCByZXN1bHQ7CivmlLsgPCBhdHRhY2s7CivnrZYgPCBzY2hlbWU7CivogqEgPCB0aGlnaHM7CivojqsgPCBkb1wtbm90Owor5ZiYIDwgZXhoYWxlOwor56qXIDwgd2luZG93Owor5re7IDwgYXBwZW5kOwor5re3IDwgdG9cLW1peDsKK+m3siA8IGNvbmRvcjsKK+WNmiA8IGdhbWJsZTsKK+iXpCA8IHJhdHRhbjsKK+aZuiA8IHdpc2RvbTsKK+aKlyA8IHJlc2lzdDsKK+WWsCA8IHRvXC1lYXQ7CivllqcgPCBsaXZlbHk7CivllokgPCB0aHJvYXQ7CivmtZogPCBkcmVkZ2U7CivpgIMgPCBlc2NhcGU7CivllLggPCByZWNpdGU7CivpnZYgPCBwYWNpZnk7Civnp5ggPCBzZWNyZXQ7CivmrLIgPCBkZXNpcmU7CivlvoEgPCBpbnZhZGU7Civnp4sgPCBhdXR1bW47CivlkLggPCBpbmhhbGU7Civps6kgPCBwaWdlb247CivmgrIgPCBzb3Jyb3c7CivmoaUgPCBicmlkZ2U7CivokrsgPCBydXNoZXM7CivokaEgPCBncmFwZXM7CivmsZogPCBmaWx0aHk7Civog7ggPCBicmVhc3Q7Civpgq4gPCBwb3N0YWw7CivlkJ0gPCBzdGluZ3k7CivmqKogPCBhY3Jvc3M7CivokI4gPCB3aXRoZXI7Civoj6sgPCBjZWxlcnk7Civmi6kgPCBzZWxlY3Q7CivmgaggPCBoYXRyZWQ7Civnq7kgPCBiYW1ib287Civoj5MgPCBmcnVpdHM7Civml5cgPCBiYW5uZXI7CivmrrsgPCBjYXNpbmc7CivnqLMgPCBzdGFibGU7Civov7kgPCB0cmFjZXM7CivpkoggPCBuZWVkbGU7Civmq7sgPCBjaGVycnk7CivlvIMgPCByZWplY3Q7CivntKsgPCBwdXJwbGU7Civmi5QgPCB1cHJvb3Q7Civoip0gPCBzZXNhbWU7CivotY8gPCByZXdhcmQ7Civmj5IgPCBpbnNlcnQ7CivpqaIgPCBkb25rZXk7CivlhqwgPCB3aW50ZXI7CivmiakgPCBleHBhbmQ7CivmqZggPCBvcmFuZ2U7CivpgLwgPCBjb21wZWw7CivpqLcgPCBoYXJhc3M7CivliLkgPCB0ZW1wbGU7CivplZwgPCBtaXJyb3I7CivmqJkgPCBhXC1tYXJrOwor6IiMIDwgdG9uZ3VlOwor5qe9IDwgdHJvdWdoOwor6Ie8IDwgbW9ydGFyOwor5LyPIDwgY3JvdWNoOwor5oSkIDwgcmVzZW50Owor5L+EIDwgc3VkZGVuOwor5YeNIDwgZnJlZXplOwor5qeMIDwgaGFtbWVyOwor6Zi7IDwgaW1wZWRlOwor6aWRIDwgc3RhcnZlOwor6IWRIDwgYm93ZWxzOwor5YWOIDwgcmFiYml0Owor6IWLIDwgYXJtcGl0Owor5YSYIDwgdXRtb3N0Owor5bSHIDwgZXN0ZWVtOwor6aSTIDwgaHVuZ3J5Owor5qO6IDwgY29mZmluOwor57KJIDwgcG93ZGVyOwor55u+IDwgc2hpZWxkOwor6aOiIDwgaHVuZ2VyOwor5o2VIDwgYXJyZXN0Owor5qKvIDwgbGFkZGVyOwor6IGYIDwgZW5nYWdlOwor5qKDIDwgYVwtY2x1YjsKK+mhqyA8IHNoaXZlcjsKK+mXtyA8IGdsb29teTsKK+aClCA8IHJlcGVudDsKK+mCgCA8IGludml0ZTsKK+mgrCA8IGNoZWVrczsKK+aCoyA8IHN1ZmZlcjsKK+S4kCA8IGJlZ2dhcjsKK+afsSA8IHBpbGxhcjsKK+afmiA8IHBvbWVsbzsKK+afhCA8IGhhbmRsZTsKK+S+riA8IGluc3VsdDsKK+mTnCA8IGNvcHBlcjsKK+aelSA8IHBpbGxvdzsKK+adtSA8IHBlc3RsZTsKK+aJryA8IHJpcFwtdXA7CivotosgPCBoYXN0ZW47CivkuLIgPCBzdHJpbmc7Civpm7IgPCBjbG91ZHM7Civpm4wgPCBmZW1hbGU7Civpm4cgPCBlbXBsb3k7CivpmoUgPCBjb3JuZXI7CivnuZUgPCByZXBhaXI7Civmo4kgPCBjb3R0b247CivnuJsgPCB0b1wtdGllOwor6LCFIDwgZXhjdXNlOwor5ZGIIDwgc3VibWl0Owor57eaIDwgdGhyZWFkOwor5pW3IDwgc3ByZWFkOwor6IS+IDwgc3BsZWVuOwor57SzIDwgZ2lyZGxlOwor6bmwIDwgZmFsY29uOwor5oSaIDwgc3R1cGlkOwor57OeIDwgbWFudXJlOwor57KnIDwgdG9pbGV0Owor5o6hIDwgZ2F0aGVyOwor5biVIDwgdHVyYmFuOwor5LirIDwgZm9ya2VkOwor5ouQIDwga2lkbmFwOwor5YCqIDwgZmVlYmxlOwor6YyQIDwgZ2ltbGV0Owor56+uIDwgYmFza2V0Owor5L6EIDwgbmVwaGV3Owor5Y+JIDwgY3JvdGNoOwor5oCWIDwgdGVycm9yOwor6aKBIDwgY29uZmVyOwor5ZKVIDwgbXVtYmxlOwor6Ii1IDwgcnVkZGVyOwor5oOpIDwgcHVuaXNoOwor5ZKWIDwgY29mZmVlOwor5rezIDwgaG9uZXN0Owor54y0IDwgbW9ua2V5Owor6ZyJIDwgbWlsZGV3Owor5oK8IDwgZ3JpZXZlOwor6YCNIDwgcmFtYmxlOwor6ICNIDwgZnJvbGljOwor5o2GIDwgdGllXC11cDsKK+mBiiA8IHdhbmRlcjsKK+W7vyA8IHR3ZW50eTsKK+iFuyA8IGdyZWFzeTsKK+e8hiA8IGhhd3NlcjsKK+mekSA8IHRhdGFyczsKK+aFtyA8IGFyZGVudDsKK+evtyA8IGF3bmluZzsKK+iNhiA8IHRob3JuczsKK+iGjyA8IGdyZWFzZTsKK+mejSA8IHNhZGRsZTsKK+edrCA8IG5vdGljZTsKK+e7pSA8IHNvb3RoZTsKK+awpyA8IG94eWdlbjsKK+WptyA8IHByZXR0eTsKK+WHvyA8IGNoaXNlbDsKK+W3qyA8IHdpemFyZDsKK+iZviA8IHNocmltcDsKK+S8tiA8IGxvbmVseTsKK+akkiA8IHBlcHBlcjsKK+aPliA8IHNhbHV0ZTsKK+WGiSA8IHRlbmRlcjsKK+i4sSA8IHN0cm9sbDsKK+eMrCA8IHZ1bGdhcjsKK+ikgiA8IGphY2tldDsKK+ezmSA8IGNvYXJzZTsKK+mXuCA8IHNsdWljZTsKK+mikyA8IHJ1aW5lZDsKK+WxiSA8IGRyYXdlcjsKK+WIgSA8IHRyaWNreTsKK+a0vCA8IGhvbGxvdzsKK+iSnCA8IGdhcmxpYzsKK+a4oyA8IHJlZnVzZTsKK+aFkSA8IGFmcmFpZDsKK+W/jyA8IHJlZ3JldDsKK+eiviA8IHJvbGxlcjsKK+eWmSA8IHBpbXBsZTsKK+a8iSA8IGZpbHRlcjsKK+mapyA8IHR1bm5lbDsKK+mFpSA8IGJ1dHRlcjsKK+mSriA8IGJ1dHRvbjsKK+a8sSA8IGdhcmdsZTsKK+eblCA8IGhlbG1ldDsKK+ejiyA8IHBvbGlzaDsKK+iViSA8IGJhbmFuYTsKK+eXsCA8IHBobGVnbTsKK+e+gSA8IGhhbHRlcjsKK+ivjyA8IGRlY3JlZTsKK+mdtiA8IHRhcmdldDsKK+mFnSA8IGxpcXVvcjsKK+S6tSA8IHNsaWdodDsKK+iygiA8IG1hcnRlbjsKK+iBhiA8IGxpc3RlbjsKK+mfrCA8IHNoZWF0aDsKK+m5iiA8IG1hZ3BpZTsKK+WNhSA8IHRoaXJ0eTsKK+eisyA8IGNhcmJvbjsKK+ehqyA8IHN1bGZ1cjsKK+mVsCA8IHNpY2tsZTsKK+a2jiA8IHNhbGl2YTsKK+WjlSA8IHRyZW5jaDsKK+mUmiA8IGFuY2hvcjsKK+mSoCA8IHNvZGl1bTsKK+edvyA8IHNocmV3ZDsKK+iOuiA8IG9yaW9sZTsKK+iDryA8IHBlbHZpczsKK+i3uyA8IGFzY2VuZDsKK+mzliA8IHR1cnRsZTsKK+iFvCA8IG1vZGVzdDsKK+WokyA8IGNvbXBseTsKK+WIjiA8IGJlaGVhZDsKK+i5mSA8IHVyZ2VudDsKK+iDmiA8IGVtYnJ5bzsKK+iNlCA8IGxpY2hlZTsKK+mUtSA8IHRpbmtsZTsKK+iMpyA8IGNvY29vbjsKK+ifkiA8IHB5dGhvbjsKK+m5gyA8IGN1Y2tvbzsKK+eNlyA8IHVucnVseTsKK+iSryA8IGFcLXJ1c2g7Civmso8gPCBpbmZ1c2U7Civlmo8gPCBzbmVlemU7CivnoL4gPCBncmF2ZWw7CivkvZ8gPCBhXC1uYW1lOwor6IycIDwgbWFkZGVyOwor5omIIDwgZXNjb3J0Owor5ZKbIDwgZW5qb2luOwor5rOXIDwgbXVjb3VzOwor6ZS5IDwgc2hvdmVsOwor6bmXIDwgb3NwcmV5Owor5YShIDwgcHVwcGV0Owor6J6CIDwgbWFudGlzOwor6IuTIDwgZnVuZ3VzOwor5Y+1IDwgY2Fubm90Owor5a+uIDwgc2hhbnR5Owor54q3IDwgZmllcmNlOwor5rKxIDwgcml2ZXJzOwor55ahIDwgdWxjZXJzOwor5b6VIDwgaW5kdWNlOwor6aqbIDwgZ2FsbG9wOwor5b6JIDwgd29uZGVyOwor6LCqIDwgY2hhcmdlOwor5L+aIDwgcnVzdGljOwor5L+qIDwgc3BvdXNlOwor6Ie+IDwgbW9tZW50Owor5ay0IDwgdG9cLXdpbjsKK+eDqSA8IHJhZ291dDsKK+mTpCA8IGluZ290czsKK+iMgSA8IHNwcm91dDsKK+iIoiA8IHNhbXBhbjsKK+einCA8IGdyaXR0eTsKK+WDrSA8IGFzc3VtZTsKK+eimCA8IGlvZGluZTsKK+eDryA8IGFsa2VuZTsKK+WbvyA8IHBlblwtdXA7Civlm6sgPCBlbnRpcmU7CivplY0gPCBuaWNrZWw7CivmqZAgPCBhXC1zYWNrOwor5p23IDwgbG9xdWF0Owor6IGSIDwgY2xhbW9yOwor576vIDwgd2V0aGVyOwor56ejIDwgZm9kZGVyOwor5qi9IDwgZ29ibGV0Owor54SWIDwgc2ltbWVyOwor6L2zIDwgcHVsbGV5Owor6ZWtIDwgcmFkaXVtOwor5q6EIDwgdG9cLWVuZDsKK+ivsCA8IGluZm9ybTsKK+iOhSA8IGF0dGVuZDsKK+iuqyA8IGZpbmlzaDsKK+a3rCA8IHRlbXBlcjsKK+WYrCA8IHRvXC1sYXA7Civng7cgPCBhbGthbmU7Civom44gPCBveXN0ZXI7CivnhLEgPCBmbGFtZXM7CivonKUgPCBsaXphcmQ7CivokbogPCB0aGF0Y2g7Civmgb0gPCBkZXZpc2U7Civok78gPCBjbG92ZXI7CivnmIwgPCBzZXZlcmU7CivllrEgPCBncmFtbWU7CivpkrQgPCBjb2JhbHQ7CivosokgPCBiYWRnZXI7CivonIkgPCBtYXlmbHk7CivpspEgPCBzYWxtb247CivlqIggPCBsb3ZlbHk7CivojaggPCBuZXR0bGU7Civnq6YgPCByZXZlcmU7Civni5IgPCBiYWJvb247CivomLwgPCBtaWxsZXQ7CivojLQgPCBmZW5uZWw7CivpsqYgPCBtaW5ub3c7CivmuIwgPCBzdHJhaW47CivpmJogPCBnbGFuY2U7Civnj5AgPCBlbmFtZWw7CivpnZsgPCBpbmRpZ287Civpu6cgPCBhXC1kYXJrOwor6KCTIDwgbWlkZ2VzOwor5qm8IDwgY2l0cnVzOwor6a2NIDwgZGVtb25zOwor57+KIDwgZmx5aW5nOwor6ZWPIDwgZGlzdGlsOwor6IO8IDwgY2FsbHVzOwor54qPIDwgeWFrXC1veDsKK+eimiA8IHN1YnVyYjsKK+iFrSA8IHBhbGF0ZTsKK+mznyA8IGJhcmJlbDsKK+augiA8IHRvXC1kaWU7CivnrZogPCB3aWNrZXI7Civnlp0gPCBoZXJuaWE7CivpqoAgPCBhblwtb2xkOwor6JKXIDwgXChoZXJiXCk7Civoj58gPCBkb2RkZXI7CivpmYkgPCBkZWZpbGU7CivnlqAgPCBhXC1zb3JlOwor5pewIDwgc3Vuc2V0Owor6IGNIDwgZWFyd2F4Owor6ZSHIDwgb3NtaXVtOwor6ZKhIDwgYmFyaXVtOwor6KW7IDwgYVwtbG9vcDsKK+mTkiA8IGVyYml1bTsKK+mTiCA8IGNlcml1bTsKK+aktCA8IHBvcGxhcjsKK+iLoSA8IGJhcmxleTsKK+iIhCA8IGFcLXNob2U7CivpuKsgPCB0aHJ1c2g7CivplJQgPCBjdXJpdW07Civpk58gPCBpbmRpdW07CivnnI0gPCBzdW5rZW47CivmobcgPCByYWZ0ZXI7Civoi4QgPCBiZW56eWw7CivpmZQgPCBhXC1zdGVwOwor6aq2IDwgY29jY3l4Owor6bK7IDwgbXVsbGV0Owor6J6oIDwgaW5zZWN0Owor6Jm8IDwgYVwtZmxlYTsKK+eYlSA8IGFzdGhtYTsKK+mVmCA8IHRyb3dlbDsKK+iDgiA8IGFyc2luZTsKK+iPlCA8IHR1cm5pcDsKK+W+nuatpCA8IHRoZW5jZTsKK+mzpee+vSA8IHBpbmlvbjsKK+e3qOiAhSA8IGVkaXRvcjsKK+iqpOeUqCA8IG1pc3VzZTsKK+W8t+ebnCA8IGJhbmRpdDsKK+ipqeevhyA8IHBzYWxtczsKK+aWueazlSA8IG1ldGhvZDsKK+aUv+etliA8IHBvbGljeTsKK+WTuuS5s+WLleeJqSA8IG1hbW1hbDsKK+S8iuWwvOS8iuW+tyA8IGFlbmVpZDsKK+itpuWvnyA8IHBvbGljZTsKK+Wjq+W4q+iomCA8IGp1ZGdlczsKK+eZvOmbu+apnyA8IGR5bmFtbzsKK+e9quS6uiA8IHNpbm5lcjsKK+Wkp+eCriA8IGNhbm5vbjsKK+Wkp+eBvSA8IHBsYWd1ZTsKK+WhnueIvue2reS6niA8IHNlcmJpYTsKK+WQieS7liA8IGd1aXRhcjsKK+avgOa7hSA8IHBlcmlzaDsKK+ephuaWr+aelyA8IG11c2xpbTsKK+mWi+i7iuS6uiA8IGRyaXZlcjsKK+W4tumHpiA8IGJ1Y2tsZTsKK+WLleeJqSA8IGFuaW1hbDsKK+S9v++5jeixkOWvjCA8IGVucmljaDsKK+e3iue4riA8IHJlZHVjZTsKK+eHkueEpiA8IHNjb3JjaDsKK+mgmOS6iyA8IGNvbnN1bDsKK+WYtuWVnuiBsiA8IGhvYXJzZTsKK+Wkp+a1qiA8IGJpbGxvdzsKK+edoeiRlyA8IGFzbGVlcDsKK+awo+aBryA8IGJyZWF0aDsKK+aTsee9riA8IHNoZWx2ZTsKK+aVtOa9lCA8IG5lYXRseTsKK+W8iueXhSA8IG1hbGFkeTsKK+mBuOelqCA8IGFcLXZvdGU7Civlib3nq4ogPCBwaXJhdGU7Civnt6jnorwgPCBjb2Rpbmc7Civmi5TlsJblhZIgPCB0aXB0b3A7Civlt6jpoK0gPCB0eWNvb247CivpoILkuosgPCB1c2VmdWw7CivmkpXoo4IgPCBtYW5nbGU7CivpmYTokZcgPCBhZGhlcmU7CivkvIrlsLzkup7mlq8gPCBhZW5lYXM7CivmraPnlbYgPCB0aW1lbHk7CivmgJLlkLwgPCBiZWxsb3c7CivlpYfmma8gPCBtYXJ2ZWw7CivniYjlvI8gPCBmb3JtYXQ7CivpqYXpgJDlh7rlooMgPCBkZXBvcnQ7CivpgaDnqIsgPCByZW1vdGU7CivljYrlvpEgPCByYWRpdXM7CivpmY3oh6ggPCBiZWZhbGw7CivnrqHnkIbkurogPCBrZWVwZXI7CivphpzljJYgPCBkZWZhbWU7Civni4LkurogPCBtYWRtYW47CivlpKfmobYgPCBiYXJyZWw7CivmnInkurrmg4UgPCBodW1hbmU7Civopb/ntIXmn78gPCB0b21hdG87CivnnIvoposgPCB0b1wtc2VlOwor6Kej6ISrIDwgcmVsaWVmOwor56C05pWXIDwgYmVhdGVuOwor5peX5bmfIDwgZW5zaWduOwor5rC05aO6IDwga2V0dGxlOwor5q6W5rCRIDwgY29sb255Owor5peL5b6LIDwgbWVsb2R5Owor5YuV5qmfIDwgbW90aXZlOwor5Y6t5YCmIDwgZHJlYXJ5Owor5YWn6Zm4IDwgaW5sYW5kOwor5bel6YyiIDwgc2FsYXJ5Owor5YWs6ZaLIDwgcHVibGljOwor5Y6f5YWIIDwgZm9ybWVyOwor5YWr6ZaLIDwgb2N0YXZvOwor54aK54aKIDwgcmFnaW5nOwor55+t5q2MIDwgYmFsbGFkOwor5Y2a5aOrIDwgZG9jdG9yOwor5b+g5ZGKIDwgYWR2aWNlOwor56Cy5omLIDwgZ3VubmVyOwor5aSa5pifIDwgc3RhcnJ5Owor5b6L5birIDwgbGF3eWVyOwor5YWr5YiG6Z+z56ymIDwgcXVhdmVyOwor5b6u5aaZIDwgc3VidGxlOwor5aW95aW9IDwgbmljZWx5Owor57i95pivIDwgYWx3YXlzOwor6ZaL6Y6WIDwgdW5sb2NrOwor5q2l5risIDwgcGFjaW5nOwor54ef5pWRIDwgcmVzY3VlOwor5pWs5pyNIDwgYWRtaXJlOwor5aSp56u654mh5Li5IDwgZGFobGlhOwor5b6X5a6cIDwgcHJvcGVyOwor5Yid57SaIDwganVuaW9yOwor6LyV6ayGIDwgZ2VudGxlOwor54iQ5bqKIDwgaGVhcnRoOwor6KyK5aCxIDwgdG9cLWxpZTsKK+eiuuS/nSA8IGVuc3VyZTsKK+mbouWlh+aciei2oyA8IHF1YWludDsKK+mBi+eUqCA8IHRvXC11c2U7CivntbLntaggPCB2ZWx2ZXQ7CivniYjlnJYgPCBkb21haW47CivmlL/mrIogPCByZWdpbWU7CivlvojlsJEgPCBzZWxkb207CivniLXlo6sgPCBrbmlnaHQ7Civopa/oo6EgPCBsaW5pbmc7CivorJnlkowgPCBtZWVrbHk7CivntrLnkIMgPCB0ZW5uaXM7CivojZLolaogPCBiYXJyZW47Civpm7vlvbHpmaIgPCBjaW5lbWE7CivlpKnmgKcgPCBpbmJvcm47CivlsI/lppbnsr4gPCBnb2JsaW47Civph5HntbLpm4AgPCBjYW5hcnk7CivmrZDmtLIgPCBldXJvcGU7Civli77lvJUgPCBzZWR1Y2U7CivnhrHmnJsgPCBhc3BpcmU7Civnsr7pgbggPCBjaG9zZW47Civoqpjmi5AgPCBhYmR1Y3Q7CivoqqDmh4cgPCBoZWFydHk7Civli5XlkI3oqZ4gPCBnZXJ1bmQ7CivpgJrnn6UgPCBub3RpZnk7CivliLrnl5sgPCB0aW5nbGU7CivlvrXlj6wgPCBlbmxpc3Q7CivmraHmqIIgPCBnYWlldHk7Civnq7bos73ogIUgPCBwbGF5ZXI7CivlhYjpi5IgPCBoZXJhbGQ7Civnt6jlubTlj7IgPCBhbm5hbHM7CivmlbXmhI8gPCBlbm1pdHk7Civlt7Topb8gPCBicmF6aWw7CivnvLrmsKfnl4cgPCBhbm94aWE7Civnianku7YgPCBvYmplY3Q7CivljbjkuIsgPCB1bmxvYWQ7CivljIXlrrkgPCBwYXJkb247Civoqpjmg5EgPCBlbnRpY2U7CivniafkurogPCBwYXN0b3I7CivlpKflnLDmtJ4gPCBjYXZlcm47CivlpJblvaIgPCBmaWd1cmU7CivpmqjmqZ8gPCByYW5kb207CivlhbXoroogPCBtdXRpbnk7CivnmbzlmI7lmI7ogbIgPCByYXR0bGU7CivmlY/mjbcgPCBuaW1ibGU7CivniZvku5QgPCBjb3dib3k7Civmj5DphpIgPCByZW1pbmQ7Civop7jniq8gPCBvZmZlbmQ7Civlparlj5YgPCBzbmF0Y2g7CivlpKvlrZAgPCBwZWRhbnQ7CivlpKrlrZAgPCBwcmluY2U7CivnnJ/nqbogPCB2YWN1XDptOwor5q665a6zIDwgbXVyZGVyOwor5q6Y5b+NIDwgYmxvb2R5Owor6ZaS6KmxIDwgZ29zc2lwOwor6L6t6IG3IDwgcmVzaWduOwor57ea5qKdIDwgc3RyZWFrOwor5ruR57+U5qmfIDwgZ2xpZGVyOwor5b6S5YueIDwgZnV0aWxlOwor5b6X5YiwIDwgdG9cLWdldDsKK+W4jOiHmCA8IGdyZWVjZTsKK+a/uumWiyA8IHNwbGFzaDsKK+mBiuattyA8IHRyYXZlbDsKK+W+qeS7hyA8IGF2ZW5nZTsKK+aumOmkmOeJqSA8IGxpdHRlcjsKK+Wjk+aJgSA8IHNxdWFzaDsKK+ipqeaEjyA8IHBvZXRpYzsKK+aUneaUvyA8IHJlZ2VudDsKK+aomeiqniA8IHNsb2dhbjsKK+S4jeWPr+WRiuS6uiA8IGhpZGRlbjsKK+eZvOiqkyA8IHRvXC12b3c7CivmqaHohqAgPCBydWJiZXI7CivlipvotrPku6XlgZogPCBhZmZvcmQ7CivlnKjvuY3mnJ/plpMgPCBkdXJpbmc7CivlnLDpkLUgPCBzdWJ3YXk7CivljYHkuIAgPCBlbGV2ZW47Civlvp7kuosgPCBnb1wtZm9yOwor54ax5bi2IDwgdHJvcGljOwor5pyJ6LKs5Lu7IDwgbGlhYmxlOwor6Zuc5belIDwgcG9ydGVyOwor5Ye655SiIDwgb3V0cHV0Owor5aWi5L6IIDwgbHV4dXJ5Owor5o6b6YmkIDwgY291cGxlOwor57SU57K5IDwgcHVyZWx5Owor56iu5peP5Li7576pIDwgcmFjaXNtOwor5a2p5a2Q5rCjIDwgYm95aXNoOwor5bCP54md54mbIDwgaGVpZmVyOwor6LeR5q2l6ICFIDwgcnVubmVyOwor6Zyy5Ye6IDwgZXhwb3NlOwor5pSA5piHIDwgcmlzaW5nOwor6Kej5ri0IDwgcXVlbmNoOwor5q2M5omLIDwgc2luZ2VyOwor5ZCQ57as6ZueIDwgdHVya2V5Owor5beh6IiqIDwgY3J1aXNlOwor5biD57eaIDwgd2lyaW5nOwor5q2j5byPIDwgZm9ybWFsOwor5Yaw566xIDwgaWNlYm94Owor54Sh5rOVIDwgdW5hYmxlOwor6YCV5rWBIDwgcnVub2ZmOwor5aSn5ZCDIDwgZ29iYmxlOwor5q+r5LiNIDwgaGFyZGx5Owor6YGT5pWZIDwgdGFvaXNtOwor6b21IDwgdW5ldmVuOwor6Ki65omAIDwgY2xpbmljOwor6YG65oGoIDwgZ3J1ZGdlOwor6byrIDwgbWFybW90Owor6byUIDwgYVwtZHJ1bTsKK+mshumkhSA8IG11ZmZpbjsKK+WKoOW0mSA8IGdhbGxvbjsKK+m5qCA8IGFudGh1czsKK+i3qOaOpeWZqCA8IGp1bXBlcjsKK+aVmeWggiA8IGNodXJjaDsKK+m3hyA8IGNoaWNrczsKK+m2vSA8IGFcLWhhd2s7CivptrggPCBzaXNraW47CivoqZ7lsL4gPCBzdWZmaXg7CivptYAgPCBob29wb2U7CivpgLHmnJ8gPCBwZXJpb2Q7CivptKIgPCBcKGR1Y2tcKTsKK+iyoOaTlOiAhSA8IGJlYXJlcjsKK+mbtuWUriA8IHJldGFpbDsKK+m0gyA8IHNocmlrZTsKK+WcqOi7iiA8IGFib2FyZDsKK+W+kuatpeaXheihjCA8IGhpa2luZzsKK+mxjiA8IFwoZmlzaFwpOwor6bGGIDwgcG91bHBlOwor6Iy256KXIDwgdGVhY3VwOwor57ee5bi2IDwgcmliYm9uOwor5YiG5rS+IDwgYXNzaWduOwor5ZCI5ZSx5ZyYIDwgY2hvcnVzOwor6Zi75qmIIDwgdGh3YXJ0Owor5pCW57GDIDwgY3JhZGxlOwor6aCY5bCO6ICFIDwgbGVhZGVyOwor6JGX5ZCNIDwgZmFtb3VzOwor5by35YuiIDwgbWlnaHR5Owor57Su54efIDwgZW5jYW1wOwor6amrIDwgaG9yc2VzOwor5Ye55rSeIDwgY2F2aXR5Owor5byx5YyWIDwgd2Vha2VuOwor6Zmw5oi2IDwgdmFnaW5hOwor5pOK5pWXIDwgZGVmZWF0Owor6YCy5o6lIDwgYWNjZXNzOwor6aa/IDwgYW5cLWFzczsKK+e1leawoyA8IGV4cGlyZTsKK+absuajjeeQgyA8IGhvY2tleTsKK+iovOWvpiA8IHZlcmlmeTsKK+mkpCA8IGluY2l0ZTsKK+mAo+aTiiA8IGJhdHRlcjsKK+aVmeWNgCA8IHBhcmlzaDsKK+eBq+eurSA8IHJvY2tldDsKK+maseWjqyA8IGhlcm1pdDsKK+i3r+eUseWZqCA8IHJvdXRlcjsKK+efreWKjSA8IGRhZ2dlcjsKK+mhkiA8IHNvbGVtbjsKK+W8t+WBpSA8IHN0dXJkeTsKK+S4gOevgFwo6KmpXCkgPCBzdGFuemE7CivmrablmaggPCB3ZWFwb247CivpnpogPCBicmlkbGU7CivnhaTlsZEgPCBjaW5kZXI7CivlubPmnb8gPCB0YWJsZXQ7Civlh7nmp70gPCBzb2NrZXQ7CivliK7mjokgPCBzY3JhcGU7Civpq5jpm4UgPCBkYWludHk7Civpm4IgPCBcKGJpcmRcKTsKK+eItuavjeimqiA8IHBhcmVudDsKK+atoeWWnCA8IGpveWZ1bDsKK+WIhuaenSA8IGJyYW5jaDsKK+atpeWTqCA8IHNlbnRyeTsKK+WCs+mBlCA8IGNvbnZleTsKK+WMluWmneWTgSA8IG1ha2V1cDsKK+aApeS/g+iBsiA8IHBhdHRlcjsKK+mXiSA8IGN1cnZlZDsKK+ihoemHjyA8IHdlaWdodDsKK+S9v+ehrOWMliA8IGhhcmRlbjsKK+mqqOmrkyA8IG1hcnJvdzsKK+mTryA8IGNlc2l1bTsKK+aQlOeZoiA8IHRpY2tsZTsKK+mbleWDjyA8IHN0YXR1ZTsKK+mRniA8IHNvbGRlcjsKK+ato+WNiCA8IG1pZGRheTsKK+mRgCA8IGlvbml1bTsKK+mQnSA8IGFcLXBpY2s7CivpjpIgPCB0b1wtaG9lOwor5Lqk5piT6ICFIDwgZGVhbGVyOwor6Y6FIDwgdG9cLXNhdzsKK+aSq+aKsSA8IGNhcmVzczsKK+mMqSA8IHZlc3NlbDsKK+aVkeS4uyA8IHNhdmlvcjsKK+eymOeymCA8IHN0aWNreTsKK+aXpeWFp+eTpiA8IGdlbmV2YTsKK+mLmSA8IG1pc2ZpdDsKK+W3tOeIviA8IGJhbHRpYzsKK+eahOeiuiA8IHJlYWxseTsKK+mLhSA8IHppbmN1bTsKK+mBjuWksSA8IGRlZmVjdDsKK+mKgOihjOWutiA8IGJhbmtlcjsKK+akjeeJqeWtuCA8IGJvdGFueTsKK+e0gOW/teeNjiA8IHRyb3BoeTsKK+mFtCA8IGxlYXZlbjsKK+mVt+efrSA8IGxlbmd0aDsKK+W5q+aJiyA8IGhlbHBlcjsKK+WBvemAoOeahCA8IGZvcmdlZDsKK+aXheihjOijneWCmSA8IG91dGZpdDsKK+mZhOW6uCA8IHZhc3NhbDsKK+mBqeWQiCA8IHRvXC1maXQ7CivnrKzkuozmrKEgPCBzZWNvbmQ7Civpq5jpgZQgPCBhdHRhaW47CivptZ3ljbXnn7MgPCBwZWJibGU7CivmnInmsKPmtL4gPCBsb3JkbHk7CivlgrXli5nkurogPCBkZWJ0b3I7CivoirHnsokgPCBwb2xsZW47CivpgIwgPCBwbGVhc2U7Civov40gPCBmYWx0ZXI7CivovZwgPCBoZWFyc2U7Civnmb3nl7QgPCBpZGlvY3k7Civls73osLcgPCBjYW55b247CivouqcgPCBzYW5kYWw7CivooajopqogPCBjb3VzaW47Civop4Dlv7UgPCBub3Rpb247CivouKEgPCBjdXJsZWQ7Civoo4HnuKsgPCB0YWlsb3I7CivmjqHntI0gPCBhY2NlcHQ7Civoo5znqK4gPCByZXNlZWQ7CivlsI/nop/lrZAgPCBzYXVjZXI7CivosqogPCBncmVlZHk7CivlhrDmn7EgPCBpY2ljbGU7CivoiJ7ouYjlrrYgPCBkYW5jZXI7CivpmL/lp6ggPCBhdW50aWU7Civnt5rkuIogPCBvbmxpbmU7CivorYYgPCBzY3JlYW07Civoq7UgPCBtdXR0ZXI7CivpqZrpp60gPCBmcmlnaHQ7CivntKDmj48gPCBza2V0Y2g7CivplpLmt7cgPCBsb2l0ZXI7CivoqbsgPCBvcmRlcnM7CivoqZcgPCB0b1wtc3B5Owor5pGf5oqxIDwgdG9cLWh1ZzsKK+iHqui6qyA8IGl0c2VsZjsKK+mAsuWPoyA8IGltcG9ydDsKK+aOoeekpiA8IG1pbmluZzsKK+ilriA8IGNvbGxhcjsKK+aTvuS6giA8IGluZmVzdDsKK+e1kOWwviA8IGVuZGluZzsKK+mWo+aokyA8IGdhcnJldDsKK+iKseeUnyA8IHBlYW51dDsKK+iimiA8IGdyZWF2ZTsKK+mBjuS7vSA8IHVuZHVseTsKK+mpn+mbqCA8IHNob3dlcjsKK+W5g+W5lSA8IHNjcmVlbjsKK+S9v+a/lemAjyA8IGRyZW5jaDsKK+igqSA8IGFcLXRvYWQ7CivooIEgPCBsYXJ2YWU7CivlqIHlo6vlv4zphZIgPCB3aGlza3k7CivlhYnmvqQgPCBsdXN0ZXI7CivpgJ3ljrsgPCBlbGFwc2U7Civom6MgPCBiZWV0bGU7Civom4wgPCBjcmlja2U7CivlhYnmu5EgPCBnbG9zc3k7CivpgJXlkJEgPCByYWRpYWw7CivomZYgPCB0b1wtY3J5Owor5om56KmV5a62IDwgY3JpdGljOwor55u45beuIDwgZGlmZmVyOwor6JaRIDwgZ2luZ2VyOwor6Zec5b+DIDwgY2FyaW5nOwor5Zyo5rex6JmVIDwgZGVlcGx5Owor6JSUIDwgcmFkaXNoOwor6JOaIDwgb3hhbGljOwor6JKOIDwgcGluYW5lOwor5oq16YGUIDwgYXJyaXZlOwor5Yud5Yip6ICFIDwgdmljdG9yOwor5Zyw55SiIDwgZXN0YXRlOwor6YCj5a2X56ym6JmfIDwgaHlwaGVuOwor6I+GIDwganVuZ2xlOwor5bui6Zmk6LuN5YKZIDwgZGlzYXJtOwor5bGA6Z2iIDwgYXNwZWN0Owor6IyiIDwgc2VkZ2VzOwor6Lm66Lm65p2/IDwgc2Vlc2F3Owor5r6x57KJIDwgc3RhcmNoOwor5qiZ5qacIDwgZmxhdW50Owor6ImiIDwgYVwtbWFzdDsKK+a7kembqiA8IHRvXC1za2k7Civlm57ntZUgPCByZWJ1ZmY7CivoparluLYgPCBnYXJ0ZXI7CivntoHkvY8gPCBmYXN0ZW47CivnnLzlhYkgPCB2aXNpb247Civno6jlnYrkuLsgPCBtaWxsZXI7CivmqKPmnKwgPCBzYW1wbGU7Civng4jlo6sgPCBtYXJ0eXI7Civnsr7mmI4gPCBhc3R1dGU7CivohbPpkJAgPCBmZXR0ZXI7Civog7kgPCBjb29rZWQ7Civnmb3mnpwgPCBnaW5rZ287CivluIbluIMgPCBjYW52YXM7Civot7PpgLIgPCBwbHVuZ2U7CivmnInpl5zpgKMgPCByZWxhdGU7CivlpJrmqLnmnKggPCB3b29kZWQ7CivpmYTkuIogPCBhdHRhY2g7CivmiqzotbcgPCB1cGxpZnQ7CivpoZvlgJLpgY7kvoYgPCBpbnZlcnQ7CivogKQgPCBwbG91Z2g7CivlkLHlkLHogbIgPCBzcXVlYWs7Civlub7kuY4gPCBhbG1vc3Q7CivngInmuZYgPCBsYWdvb247CivnvasgPCBoaW5kZXI7CivnvaUgPCBpbXBldGU7CivnsKHnm7QgPCBzaW1wbHk7CivmnKrlrozmiJAgPCB1bmRvbmU7CivnuaggPCBhXC1rbm90Owor5YWJ5pivIDwgc29sZWx5Owor57iGIDwgYVwtcm9wZTsKK+e1puS6iCA8IGFjY29yZDsKK+S4g+aciOS4gOiZnyA8IGp1bHlcLTE7CivopIfmlbggPCBwbHVyYWw7Civnmb3mkK0gPCBub1wtdXNlOwor6a2U6LO95YWLIDwgbW9zYWljOwor6Iiq56iLIDwgZmxpZ2h0Owor57SpIDwgdG9cLXNldzsKK+e0nyA8IGFcLXNhc2g7CivntIMgPCBhXC1jb3JkOwor5o+05omLIDwgc3VjY29yOwor5bid5ZyLIDwgZW1waXJlOwor6Iy25aO6IDwgdGVhcG90Owor5Lyv5Luy5Y+U5a2jIDwgZWxkZXN0Owor57GyIDwgYXBwZWFsOwor55uf5ZyLIDwgYWxsaWVzOwor57CJIDwgZGVwdXR5Owor6KOB5rG6IDwgcnVsaW5nOwor56+lIDwgYnVsZ2xlOwor5a+m6auUIDwgZW50aXR5Owor566ZIDwgcXVpdmVyOwor54OP5bmy6YGUIDwgdWdhbmRhOwor57Si5Y+WIDwgdG9cLWFzazsKK+W4reWNtyA8IGVuZ3VsZjsKK+S4jeeiuuWvpiA8IHVudHJ1ZTsKK+WcsOavryA8IGNhcnBldDsKK+eriSA8IGFcLWhvbGU7CivlhavluqYgPCBvY3RhdmU7CivnlKjoqp4gPCBzeW50YXg7CivpvLvlj6Ppg6jliIYgPCBtdXp6bGU7CivlsJbogbLllbzlk60gPCBzcXVlYWw7Civnr4DntIQgPCBmcnVnYWw7CivnpY8gPCBzaHJpbmU7CivovqblhazlrqQgPCBvZmZpY2U7Civmib/oq74gPCBlZmZvcnQ7CivooZvnlJ8gPCBoZWFsdGg7Civoo5zmlZEgPCByZW1lZHk7Civkv67oqIIgPCByZXZpc2U7CivnvoXppqzmm7ggPCByb21hbnM7Civov4Tku4ogPCBzb1wtZmFyOwor5a+m6ZqbIDwgYWN0dWFsOwor552qIDwgc3B5XC1vbjsKK+ecviA8IG1hc3NlczsKK+WYl+ippiA8IHRvXC10cnk7CivlnoLluZUgPCBjYW5vcHk7CivooJ/nrYYgPCBjcmF5b247CivmnI3li5nlk6EgPCB3YWl0ZXI7Civlkb3pgYvoqLvlrpogPCBvcmRhaW47CivkurrpoK3njYXouqsgPCBzcGhpbng7CivnmoAgPCBrZXJuZWw7CivkuI3lubjkuYvkuosgPCBtaXNoYXA7CivonJjom5vntrIgPCBjb2J3ZWI7CivnloMgPCBoYW1sZXQ7Civln7fkuosgPCBkZWFjb247Civnlb0gPCBncm91bmQ7CivmiJDplbcgPCBtYXR1cmU7Civmup3pgZMgPCBncm9vdmU7CivpmL/nsbPlt7QgPCBhbW9lYmE7CivovrLkurogPCBmYXJtZXI7Civmu77okL0gPCB0dW1ibGU7Civono3op6MgPCBtb2x0ZW47CivlnJbmoYggPCBkZXNpZ247CivohZToqr8gPCBhY2NlbnQ7Civkv67oo5zljKAgPCB0aW5rZXI7CivotbDpjK8gPCBhc3RyYXk7Civnj5QgPCBcKGphZGVcKTsKK+eOkyA8IHBlYXJseTsKK+evgOecgSA8IHNhdmluZzsKK+eMuiA8IGphY2thbDsKK+S/oeiZnyA8IHNpZ25hbDsKK+Wwj+iykyA8IGtpdHRlbjsKK+ihjOeCuiA8IGFjdGlvbjsKK+Wkp+eQhuefsyA8IG1hcmJsZTsKK+WcqO+5jeS5i+aXgSA8IGJlc2lkZTsKK+aMgeacieS6uiA8IGhvbGRlcjsKK+eFgyA8IHJlbW92ZTsKK+aSkuWTiOaLiSA8IHNhaGFyYTsKK+Wkp+mQruWIgCA8IHNjeXRoZTsKK+Wfi+S8jyA8IGFtYnVzaDsKK+e0hOe/sOS6jOabuCA8IDJcLWpvaG47CivlsI3oqbEgPCBkaWFsb2c7CivnrKbomZ8gPCBzeW1ib2w7CivngIwgPCBwbGVudHk7Civog7jph50gPCBicm9vY2g7Civmv7UgPCBhXC1iYW5rOwor5pCt5LmYIDwgZW1iYXJrOwor5r68IDwgYmxlYWNoOwor5aib5qiC5aC0IDwgcmVzb3J0Owor5YWr5Y2BIDwgZWlnaHR5Owor57C45o+aIDwgd2lubm93Owor5qOS57OWIDwgc3Vja2VyOwor566X55ukIDwgYWJhY3VzOwor6YaD6buD55OcIDwgcGlja2xlOwor5rioIDwgYVwtY292ZTsKK+a3nyA8IHR1cmJpZDsKK+eyvuWKmyA8IGVuZXJneTsKK+aUtuWJsuiAhSA8IHJlYXBlcjsKK+WCs+afkyA8IGluZmVjdDsKK+W3peS6uiA8IHdvcmtlcjsKK+a0nyA8IHNuaXZlbDsKK+azrSA8IGFcLXJhZnQ7CivmsKsgPCBhbW9uaWE7CivotbfoqLQgPCB0b1wtc3VlOwor6J2X6J+yIDwgbG9jdXN0Owor5YKz5pWZIDwgcHJlYWNoOwor6LyD5aW9IDwgYmV0dGVyOwor6Iqx5ZyIIDwgd3JlYXRoOwor5qmwIDwgYVwtc3BhcjsKK+iFjuiHnyA8IGtpZG5leTsKK+appCA8IHN0YW1lbjsKK+apnCA8IGFcLXBvc3Q7CivmqZUgPCBhXC1wcm9wOwor5qiyIDwganVqdWJlOwor6Lev56iLIDwgY291cnNlOwor5YWI5YmNIDwgYmVmb3JlOwor5oaC6ayxIDwgc3VsbGVuOwor6J665peL6YmXIDwgd3JlbmNoOwor5Y+D6K2w6ZmiIDwgc2VuYXRlOwor56mX6aO+IDwgdGFzc2VsOwor5qWiIDwgdGluZGVyOwor55Ge6YeRIDwgcnVpamluOwor5oqx55eFIDwgYmVcLWlsbDsKK+WCs+aOiCA8IGltcGFydDsKK+i7iuW6qyA8IGdhcmFnZTsKK+a4rOmHjyA8IHN1cnZleTsKK+Wtl+mmliA8IHByZWZpeDsKK+mtmuWkqyA8IGZpc2hlcjsKK+akpyA8IGd1dHRlcjsKK+ajgyA8IGFcLXBlYXI7CivmobIgPCBxdWluY2U7CivoirHlk6ggPCBnYXJpc2g7CivovJXlkqwgPCBuaWJibGU7Civmop3ntIsgPCBzdHJpcGU7Civoh7TmrbsgPCBkZWFkbHk7Civku7vkvZXkurogPCBhbnlvbmU7CivotJbph5EgPCByYW5zb207CivooYzmmJ8gPCBwbGFuZXQ7Civmm4AgPCBzdG9ybXk7Civlm57mhrYgPCByZWNhbGw7CivnqYDpoZ4gPCBjZXJlYWw7CivlgbXmn6UgPCBkZXRlY3Q7Civml7sgPCBoZWF2ZW47CivlrrnoqLEgPCBwZXJtaXQ7CivmlaEgPCByZWJ1a2U7CivmlYIgPCBkZWR1Y3Q7CivljYHlm5vooYzoqakgPCBzb25uZXQ7Civmk5MgPCB0b1wtcnViOwor5pyJ6YGT5b63IDwgY2hhc3RlOwor5ryj5ryqIDwgcmlwcGxlOwor5LqM6ICF5LmL5LiAIDwgZWl0aGVyOwor5o29IDwgY2x1dGNoOwor5ZyL5aSWIDwgYWJyb2FkOwor5ray6auUIDwgbGlxdWlkOwor6Jed6KGT5a62IDwgYXJ0aXN0Owor5bSO5baHIDwgcnVnZ2VkOwor6aSR6aSRIDwgcGFzdHJ5Owor6aSQ6aOyIDwgcmVwYXN0Owor5L2/6Iao6IS5IDwgZGlsYXRlOwor5L2V6JmVIDwgd2hlbmNlOwor5L+h55SoIDwgY3JlZGl0Owor57SE57+w5LiJ5pu4IDwgM1wtam9objsKK+Wwj+aPkOeQtCA8IGZpZGRsZTsKK+WboOWtkCA8IGZhY3RvcjsKK+aBnyA8IHNjYXJlZDsKK+aLs+aTiiA8IGJveGluZzsKK+i7n+WMliA8IHNvZnRlbjsKK+WuieipsyA8IHNlcmVuZTsKK+aHtua0i+a0iyA8IGxhemlseTsKK+e0hOe/sOS4gOabuCA8IDFcLWpvaG47CivmiaPnlZkgPCBkZXRhaW47Civmnb7pm54gPCBncm91c2U7CivlvKMgPCBtaWRkbGU7Civpq5jluqYgPCBoZWlnaHQ7Civlu4YgPCBhXC1yb29tOwor55Ww5pWZIDwgaGVyZXN5Owor5bekIDwgYVwtbWFuZTsKK+W3mCA8IHN1bW1pdDsKK+W2kyA8IGJvc2hhbjsKK+W0vyA8IGNsaWZmczsKK+WcsOS4uyA8IGFcLWhvc3Q7CivppqzmiLLlnJggPCBjaXJjdXM7Civpq5jlsbEgPCBhbHBpbmU7CivnlJ/mtq8gPCBjYXJlZXI7CivkvZzogIUgPCBhdXRob3I7CivmjKrlqIEgPCBub3J3YXk7CivlsIUgPCBzdWJkdWU7CivlsIvnmoQgPCBob21pbmc7Civlr44gPCBkcm93c3k7CivppqzpiLTolq8gPCBwb3RhdG87Civlrb4gPCBhXC1iYWJ5Owor5L2/6L2J5ZCRIDwgZGl2ZXJ0Owor5rKS5pyJ5Lq6IDwgbm9ib2R5Owor5ayDIDwgc2lzdGVyOwor5auqIDwgaGFua2VyOwor5am8IDwgcGVyc29uOwor5Y2a54mp6aSoIDwgbXVzZXVtOwor5aiSIDwgbWF0cm9uOwor5pyL6buoIDwgY2xpcXVlOwor56au5ouc5aCCIDwgY2hhcGVsOwor5re36KGAIDwgaHlicmlkOwor6LeL5raJIDwgdHJ1ZGdlOwor5aSsIDwgcGFydGVkOwor5YOF5YOFIDwgYmFyZWx5Owor5ryP5paXIDwgZnVubmVsOwor5LiN6YCP5piOIDwgb3BhcXVlOwor5aCnIDwgYWRqb2luOwor5Lmz6aCtIDwgbmlwcGxlOwor55CG6KuWIDwgdGhlb3J5Owor5LuL6LOqIDwgbWVkaXVtOwor5Zq/IDwgYVwtbHVtcDsKK+eUseaWvCA8IGR1ZVwtdG87CivlmZogPCBmYXRob207CivlkozpoqggPCBicmVlemU7CivlloYgPCBhXC1zYWdlOwor5om25qSNIDwgZm9zdGVyOwor55Kw55CDIDwgZ2xvYmFsOwor5ZSrIDwgdG9cLWh1bTsKK+mZpOS6huS5i+WkliA8IGV4Y2VwdDsKK+WUiCA8IHRvXC1zb2I7Civlk6QgPCBqYXJnb247Civkvr/msaAgPCB1cmluYWw7Civlka4gPCB0b1wtc2l0Owor5Y6OIDwgc2V0dGxlOwor5a6j56ixIDwgYXNzZXJ0Owor5ZOA6L6tIDwgbGFtZW50Owor5omB5qGD6auUIDwgdG9uc2lsOwor5YuEIDwgYWN0aXZlOwor5Lm+6YWqIDwgY2hlZXNlOwor5pu06auYIDwgaGlnaGVyOwor5YGM5aSnIDwgc29cLWJpZzsKK+ato+aWueW9oiA8IHNxdWFyZTsKK+iCjOiCiSA8IG11c2NsZTsKK+mpmuaBkCA8IGFwcGFsbDsKK+WPr+S/oeS7uyA8IHRydXN0eTsKK+aWh+WtuOWutiA8IHdyaXRlcjsKK+aJi+anjSA8IHBpc3RvbDsKK+WDrCA8IGNsZXZlcjsKK+WCjiA8IHRvcHBsZTsKK+enu+WLleW8jyA8IG1vYmlsZTsKK+WutueVnCA8IGNhdHRsZTsKK+emj+mfsyA8IGdvc3BlbDsKK+i1t+a6kCA8IG9yaWdpbjsKK+WAgyA8IGRhbWFnZTsKK+S6gui3syA8IGJvdW5jZTsKK+WIsOatpOiZlSA8IGhpdGhlcjsKK+iGveWkpyA8IGRhcmluZzsKK+S7miA8IHRvXC1mbHk7Civoo73pmbblt6XkurogPCBwb3R0ZXI7CivlgaXlhaggPCByb2J1c3Q7CivktoEgPCBub2lzZXM7CivktacgPCB0b1wtZHllOwor5LSlIDwgYVwtc3RhZzsKK+SzviA8IGFuXC1vd2w7Civmi4zlmLQgPCBiaWNrZXI7CivmiZPmk4ogPCB0b1wtaGl0Owor5LOHIDwgcGFycm90Owor56yo5ouZIDwgY2x1bXN5Owor5LK5IDwgb3NwZXJ5Owor5Lq65Y+j6Kq/5p+lIDwgY2Vuc3VzOwor5LKMIDwgYVwtZmlzaDsKK+SxlSA8IGxhYnJ1czsKK+SwoyA8IGFuXC1lbGY7CivnkZXnlrUgPCBzdGlnbWE7Civkr6ggPCB0b1wtcmFwOwor5K+BIDwgYVwtbXVsZTsKK+WiqOilv+WTpSA8IG1leGljbzsKK+a4heecn+WvuiA8IG1vc3F1ZTsKK+StqiA8IGdyYWluczsKK+StpSA8IGFcLWJhaXQ7CivkrYwgPCBjb25nZWU7CivkrLggPCBhXC1tZWFsOwor5KyRIDwgYVwtZ2FsZTsKK+SrrCA8IHRvXC1ib3c7Civmtbfoo6EgPCBtYXJpbmU7CivlkbPpgZMgPCBmbGF2b3I7CivkqLogPCBjbG91ZHk7CivkqJ8gPCBwdWRkbGU7CivkqIcgPCBhXC1wYWlyOwor54Sh6KuW5aaC5L2VIDwgYW55aG93Owor5Ke0IDwgYVwtYmlyZDsKK+SnkSA8IGFcLWRpa2U7Civlh7rln4Plj4roqJggPCBleG9kdXM7Civlronlk6Xmi4kgPCBhbmdvbGE7CivmnInol6Xnma7ogIUgPCBhZGRpY3Q7CivkpaogPCB0b1wtY3VwOwor5KWoIDwgYVwtZmlsZTsKK+SljSA8IGFcLXdoaXA7Civku6XoibLliJcgPCBpc3JhZWw7Civnp4Hoqp4gPCBtdXJtdXI7Civph6PprZrnlKjlhbcgPCB0YWNrbGU7CivmnIDov5EgPCByZWNlbnQ7Civko5ggPCBhXC1oYWxsOwor5riF55imIDwgbWVhZ2VyOwor5KOIIDwgYVwtbGFuZTsKK+mHmOabuOmHnSA8IHN0YXBsZTsKK+WyuOS4iiA8IGFzaG9yZTsKK+eFp+ebuOapnyA8IGNhbWVyYTsKK+SgsCA8IGNvaWxlZDsKK+SgpCA8IHRvZGRsZTsKK+e0oee5lOiAhSA8IHdlYXZlcjsKK+S4remAlCA8IG1pZHdheTsKK+aWr+aLieWkqyA8IHNsYXZpYzsKK+SdnCA8IGFcLWxpb247CivknYQgPCBjb3dwZWE7Civkv4TnvoXmlq8gPCBydXNzaWE7CivknJ4gPCBhXC1kb3NlOwor5pyo6KO9IDwgd29vZGVuOwor5a6J54S2IDwgc2FmZWx5Owor6aOi6I2SIDwgZmFtaW5lOwor5JiwIDwgYVwtaG9vZDsKK+i2vuWwliA8IHRpcHRvZTsKK+SYrCA8IGFybW91cjsKK+SYjCA8IGdhZGZseTsKK+SXqyA8IGFcLWZyb2c7CivklrkgPCB3ZWV2aWw7Civkv6HlpYkgPCBiZWxpZWY7CivmiJDmlYggPCBlZmZlY3Q7CivklK8gPCBzYWx0ZWQ7Civnk7blrZAgPCBib3R0bGU7CivklKIgPCBjYXRoYXk7CivklI8gPCBhXC1sdXNoOwor5LiJ6YeNIDwgdHJlYmxlOwor5JOmIDwgYVwtcnVsZTsKK+WuouawoyA8IHBvbGl0ZTsKK+SThCA8IGdyYXNzeTsKK+a1ruiRlyA8IGFmbG9hdDsKK+iuium7kSA8IGRhcmtlbjsKK+SSiSA8IGFcLWxvbmc7CivkkoIgPCBhblwtb2FyOwor5byT566t5omLIDwgYXJjaGVyOwor5JG6IDwgYVwtc2FpbDsKK+SRtCA8IGFcLWJvYXQ7Civmta7oj68gPCB2YW5pdHk7CivkkKYgPCBzbGVlcHk7CivkkKUgPCBzdGlua3k7Civpp4HmlqUgPCByZWZ1dGU7CivkuI3pgakgPCB1bndlbGw7Civkj6ogPCB0ZW5kb247Civnvp7ovrEgPCBiYWZmbGU7CivnlZnkuIsgPCByZW1haW47Civkj6MgPCBtYWdnb3Q7CivkuIrpgoogPCB1cHNpZGU7CivkjrEgPCBhXC1kcmFnOwor6IOh5qGDIDwgd2FsbnV0Owor5I2DIDwgYVwtdmFzZTsKK+WwgeW7uiA8IGZldWRhbDsKK+WSjOiXuSA8IGtpbmRseTsKK+SLkCA8IGZhYnJpYzsKK+SKpyA8IGFcLWZhcnQ7CivloZ7niL7nibkgPCBjZWx0aWM7CivkipsgPCBzaHJlZHM7Civnqb/mtJ4gPCBwaWVyY2U7CivkiLQgPCBhXC1jYWdlOwor5IiOIDwgYVwtbGVhZjsKK+SHmiA8IHRvXC10YXA7Civkh4EgPCBhXC1jYXZlOwor5Ia8IDwgYVwtbmVzdDsKK+SGriA8IHRvXC1kaXA7CivkhpkgPCBhXC1raWxuOwor5a6i5qOnIDwgdGF2ZXJuOwor5Y+p6aCtIDwga293dG93Owor5oi/5a6iIDwgdGVuYW50Owor56ys5ZubIDwgZm91cnRoOwor5IS5IDwgYVwteWVhcjsKK+mHjumkkCA8IHBpY25pYzsKK+SEmCA8IGFcLXJpdGU7Civkg6UgPCBzdG9uZXM7CivlsIjlrrYgPCBleHBlcnQ7CivkgrcgPCBicm9rZW47Civkvb/lvpcgPCB1c2FibGU7Civjv7wgPCBhXC1ib3dsOwor47+7IDwgYVwtdHJheTsKK+aJk+Wtl+WToSA8IHR5cGlzdDsKK+O/rSA8IGNyYWNrczsKK+O/pyA8IGZpZWxkczsKK+icg+aZryA8IG1pcmFnZTsKK+O/lCA8IGFcLXdhcnQ7Civlj43pp4EgPCByZXRvcnQ7CivlsJHlpbMgPCBtYWlkZW47CivjvbcgPCBkcm9wc3k7CivjvL4gPCBicmlja3M7Civmtbfntr8gPCBzcG9uZ2U7CivmmJ/mnJ/ml6UgPCBzdW5kYXk7CivjvIQgPCBwZWFybHM7CivnlKjkuo4gPCB1c2VcLWluOwor47i/IDwgYVwtY2FsZjsKK+aZmumjryA8IHN1cHBlcjsKK+O3iyA8IGVtYmVyczsKK+iRoeiQhOS5viA8IHJhaXNpbjsKK+izreazqCA8IHN0YWtlczsKK+O2pCA8IHRvXC1mcnk7CivjtoggPCBjcmVla3M7CivnpZ7oq60gPCBvcmFjbGU7CivjtZ0gPCBtb3Zpbmc7CivkuI3opoEgPCBkb24nJ3RcITsKK+O0niA8IGZsdWVudDsKK+aIkeiHquW3sSA8IG15c2VsZjsKK+adkOepjSA8IHZvbHVtZTsKK+aJgeWckyA8IG9ibGF0ZTsKK+OzjCA8IG1hcnNoeTsKK+OxniA8IGRhbmdlcjsKK+OxjSA8IHRvXC1vd2U7Civlj67piLQgPCBqaW5nbGU7CivjsIMgPCBhXC10cmVlOwor5aSn5q2l6LWwIDwgc3RyaWRlOwor56ys5YWrIDwgZWlnaHRoOwor5LiK6KGrIDwgYmxvdXNlOwor466WIDwgdG9cLWxheTsKK+OtsSA8IGFcLWNhc2U7Civmr5TovIPllpzmraEgPCBwcmVmZXI7Civlr7bloZQgPCBwYWdvZGE7Civjq7ogPCBieWdvbmU7CivkuI3lhazlubMgPCB1bmZhaXI7CivlrqLmiLYgPCBjbGllbnQ7Civjq4UgPCBhXC1mbGFnOwor46q5IDwgdG9cLXJvYjsKK+OpsiA8IGFcLWZpc3Q7Civoiq3olb7oiJ4gPCBiYWxsZXQ7CivjqL4gPCBhXC10eXBlOwor46enIDwgYVwtY29tYjsKK+WutuW6rSA8IGZhbWlseTsKK+afj+aelyA8IGJlcmxpbjsKK+OmlCA8IHNpbGtseTsKK+aciee9qiA8IGd1aWx0eTsKK+OmiiA8IGxhdmlzaDsKK+OmhSA8IHVuZWFzeTsKK+mNteW4vSA8IGtleWNhcDsKK+Wwj+WMhSA8IHBhY2tldDsKK+S6qOeJuSA8IGh1bnRlcjsKK+aJk+WCtyA8IGJydWlzZTsKK+mggemCiiA8IG1hcmdpbjsKK+aJi+WGiiA8IG1hbnVhbDsKK+OhgSA8IGFcLXJvYmU7CivjoLIgPCByaXBwZWQ7CivniZnpvZIgPCBkZW50YWw7CivlkI3oqIAgPCBzYXlpbmc7CivjnbkgPCBhXC1oYXJlOwor6ICA55y8IDwgZGF6emxlOwor5Lyv5Yip6IyyIDwgYmVsaXplOwor5riv5b2OIDwgaGFyYm9yOwor6IOM5bi2IDwgYnJhY2VzOwor6J665peL5b2iIDwgc3BpcmFsOwor45q8IDwgYVwtZ2lybDsKK+OauyA8IHNvZG9teTsKK+OajCA8IGFcLWJhbmQ7CivjmbkgPCBhXC1kYW1wOwor5q+U6LyD5bCRIDwgbGVzc2VyOwor54qv6YyvIDwgdG9cLWVycjsKK+WcqOatpOiZlSA8IGhlcmVpbjsKK+aatOiZkCA8IGJydXRhbDsKK+iiq+Wus+S6uiA8IHZpY3RpbTsKK+mYv+WkmuWwvOaWryA8IGFkb25pczsKK+azouiYrSA8IHBvbGFuZDsKK+OUuiA8IGFuXC1hZ2U7CivjlIkgPCB0b1wtZGlnOwor45O1IDwgc3dvcmRzOwor45OgIDwgYVwtZmxhdzsKK+OThSA8IGZyb3plbjsKK+aYn+mbsiA8IG5lYnVsYTsKK+a1t+eLuCA8IGJlYXZlcjsKK+mYv+azoue+hSA8IGFwb2xsbzsKK+S+neWBjiA8IG5lc3RsZTsKK+aHpuWkqyA8IGNvd2FyZDsKK+S9v+iAs+iBviA8IGRlYWZlbjsKK+S8keaDnCA8IHJlY2VzczsKK+iTrOmshiA8IGZsdWZmeTsKK+ejgemQtSA8IG1hZ25ldDsKK+agoeWckiA8IGNhbXB1czsKK+iuiuizqiA8IGdvXC1iYWQ7Civnvqnos6PmnIMgPCBiYXphYXI7CivnvorogokgPCBtdXR0b247Civlt6XkvZzlrqQgPCBzdHVkaW87CivlkIrokZcgPCBkYW5nbGU7CivntKvnvoXomK3oibIgPCB2aW9sZXQ7CivploDlpJbmvKIgPCBsYXltYW47Civmho7mg6EgPCBsb2F0aGU7CivpgI/ljbDniYjljbDliLcgPCBvZmZzZXQ7CivlnKjpmYTov5EgPCBuZWFyYnk7Civmho7mgaggPCBkZXRlc3Q7CivloZfmsrnmlrwgPCBhbm9pbnQ7Civpm5zosqjllYYgPCBncm9jZXI7CivllpzliocgPCBjb21lZHk7Civlr5LlhqwgPCB3aW50cnk7CivosrbmlqUgPCBkZW1vdGU7Civllq7kvY0gPCBhXC11bml0Owor55CD5ouNIDwgcmFja2V0Owor57at5ZC+54i+IDwgdWlnaHVyOwor6Iux6ZuE5byPIDwgaGVyb2ljOwor5a2Q5b2IIDwgYnVsbGV0Owor55CG6auu5birIDwgYmFyYmVyOwor5YKt5Lq66aCY54+tIDwgYnV0bGVyOwor5a6J5Z+5IDwgYW1wZXJlOwor6aOf5qe9IDwgbWFuZ2VyOwor6IOM5Y+bIDwgYmV0cmF5Owor6LSW5ZueIDwgcmVkZWVtOwor542o54m5IDwgdW5pcXVlOwor5q+b57mU6YGL5YuV6KGrIDwgamVyc2V5Owor6YeR6ImyIDwgZ29sZGVuOwor6LW35rOh5rKrIDwgc2VldGhlOwor5LiN5oiw5LiN5ZKMIDwgbm9cLXdhcjsKK+WupOWFpyA8IGluZG9vcjsKK+izk+WuoiA8IGd1ZXN0czsKK+eRnuWFuCA8IHN3ZWRlbjsKK+i0iuWQjCA8IGFzc2VudDsKK+iWhOe0mSA8IHRpc3N1ZTsKK+aCtueGsSA8IHN1bHRyeTsKK+aYn+acn+S6lCA8IGZyaWRheTsKK+aYn+acn+S4gCA8IG1vbmRheTsKK+ePvuWtmCA8IGV4dGFudDsKK+mkkOW3viA8IG5hcGtpbjsKK+S7peWkqiA8IGV0aGVyXC07Civlt7TniL7lubIgPCBiYWxrYW47CivnkaPkuosgPCB0cmlmbGU7CivmoLzmoLznrJEgPCBnaWdnbGU7CivpoJDnrpcgPCBidWRnZXQ7CivlrZ/liqDmi4kgPCBiZW5nYWw7CivpnZLpioUgPCBicm9uemU7CivpoJHnq6UgPCB1cmNoaW47CivmnIPmrbsgPCBtb3J0YWw7CivkuI3nhLYgPCBub3RcLXNvOwor6K6A6ICFIDwgcmVhZGVyOwor5rSq5rC0IDwgZGVsdWdlOwor55m96Jit5ZywIDwgYnJhbmR5Owor5pyo5paZIDwgbHVtYmVyOwor5oSb5b636I+vIDwgZWR3YXJkOwor5rex5YyWIDwgZGVlcGVuOwor54++5ZyoIDwgbW9kZXJuOwor6JiH5qC86Jit5bi9IDwgYm9ubmV0Owor6K6K57SFIDwgcmVkZGVuOwor5rib5L2O6YCf5bqmIDwgcmV0YXJkOwor54yW54uCIDwgc2F2YWdlOwor5reo5YyWIDwgcHVyaWZ5Owor5b6M6YCAIDwgcmVjb2lsOwor6Zi/5ouJ5pav5YqgIDwgYWxhc2thOwor54mH6KqeIDwgcGhyYXNlOwor5rWB5pifIDwgbWV0ZW9yOwor5oKy5q2OIDwgYmV3YWlsOwor5a2Y5YSyIDwgbWVtb3J5Owor5L2/5YW36auU5YyWIDwgZW1ib2R5Owor5YW4542E6ZW3IDwgd2FyZGVuOwor55yL5LiN6KaLIDwgdW5zZWVuOwor5L2/5L2c5ZiUIDwgc2lja2VuOwor6LGh5b61IDwgZW1ibGVtOwor5LiN5q+UIDwgdW5saWtlOwor5aSn6YyYIDwgc2xlZGdlOwor5pyA5pawIDwgbGF0ZXN0Owor5Li75pWZIDwgYmlzaG9wOwor5oGQ5rC055eFIDwgcmFiaWVzOwor6JmV5aWzIDwgdmlyZ2luOwor6LOj5Li7IDwgc2VsbGVyOwor576K5q+bIDwgZmxlZWNlOwor5ZCr5rC0IDwgd2F0ZXJ5Owor5Yqg77mN5pa8IDwgaW1wb3NlOwor6JmV5aKDIDwgcGxpZ2h0Owor6K2w56iLIDwgYWdlbmRhOwor5oOh5oSPIDwgbWFsaWNlOwor5pys5beeIDwgaG9uc2h1Owor5qmh55qu5pC9IDwgZXJhc2VyOwor5pW46YePIDwgYW1vdW50Owor5pa36KiAIDwgYWZmaXJtOwor5rWq5a2QIDwgbG9hZmVyOwor5pyJ5oSPIDwgaW50ZW5kOwor5rOi5aOr6aCTIDwgYm9zdG9uOwor5ZCN5rWBIDwgZ2VudHJ5Owor5Y+w54GjIDwgdGFpd2FuOwor5LiN5pm6IDwgdW53aXNlOwor5pWF6ZqcIDwgZ2xpdGNoOwor5ZCI5rOVIDwgbGF3ZnVsOwor5ZCN5rCjIDwgcmVwdXRlOwor5aSn6LevIDwgYXZlbnVlOwor5rW35aCxIDwgcG9zdGVyOwor5Lqm5Y2zIDwgbmFtZWx5Owor57aT57SA5Lq6IDwgYnJva2VyOwor57SF6Ji/6JSUIDwgY2Fycm90Owor5oKE5oKE5ZywIDwgZ2VudGx5Owor5pqW5rCjIDwgaGVhdGVyOwor5L2/77mN6IO95aSgIDwgZW5hYmxlOwor5ZC45pS2IDwgYWJzb3JiOwor5oSP5ZyWIDwgaW50ZW50Owor57ej6aO+IDwgZnJpbmdlOwor6YG/6Zuj5omAIDwgcmVmdWdlOwor5ZGo5bm0IDwgYW5udWFsOwor55m96bq15YWSIDwgaGVyb2luOwor5Y+j5ri0IDwgdGhpcnN0Owor6Yed5rOVIDwgc3RpdGNoOwor5raI5YyWIDwgZGlnZXN0Owor5q2j6ZaAIDwgcG9ydGFsOwor5rW35ZOhIDwgc2FpbG9yOwor5ZCQ5qC5IDwgaXBlY2FjOwor6ZuZ6YeNIDwgZG91YmxlOwor6Z2S6IuUIDwgbGljaGVuOwor5aSa6K6KIDwgZmlja2xlOwor6YmL5bqKIDwgcGxhbmVyOwor6aO86aSK6ICFIDwgZmVlZGVyOwor5ZCN5pybIDwgcmVub3duOwor5Y+W5raIIDwgY2FuY2VsOwor6YKj6YKKIDwgeW9uZGVyOwor5be05pav5YWLIDwgYmFzcXVlOwor5YqI6ZaLIDwgY2xlYXZlOwor6YWS56qpIDwgZGltcGxlOwor5YuV6K2wIDwgbW90aW9uOwor5pS+6YCQIDwgYmFuaXNoOwor6YWN56ixIDwgd29ydGh5Owor5rS75aGeIDwgcGlzdG9uOwor6I6r5pav56eRIDwgbW9zY293Owor8KWcjCA8IGFcLWNvYXQ7CivmnY/ku4EgPCBhbG1vbmQ7CivmnIjmoYLmqLkgPCBsYXVyZWw7CivpoJDmnJ8gPCBleHBlY3Q7Civnp4nlhawgPCBqdXN0bHk7CivnprHlkYogPCBwcmF5ZXI7Civmm7TlpKcgPCBiaWdnZXI7CivkuZ3ljYEgPCBuaW5ldHk7CivnoLToiIogPCBzaGFiYnk7CivkuIDluLYgPCByZWdpb247CivnoqfnjokgPCBqYXNwZXI7Civlvq7oloTnmoQgPCBtZWFncmU7Civlj6rmmK8gPCBtZXJlbHk7CivlsI/mt5jmsKMgPCByYXNjYWw7Civmg6HljJYgPCB3b3JzZW47CivkuIDlsYAgPCBpbm5pbmc7CivnhKHms5XnhKHlpKkgPCBvdXRsYXc7CivmnKrkvoYgPCBmdXR1cmU7CivphInntLMgPCBzcXVpcmU7Civoqa3oqIggPCBkZWNlaXQ7CivosYHlhY0gPCBleGVtcHQ7Civlv4PnkIYgPCBtZW50YWw7CivniaLniaIgPCBmaXJtbHk7Civpoqjkv5cgPCBjdXN0b207CivwoICJIDwgYVwtaGlsbDsKK+WJtei+piA8IGxhdW5jaDsKK+mBjumHjyA8IGV4Y2VzczsKK+i1t+iotOiAhSA8IHN1aXRvcjsKK+eGlOinoyA8IGZ1c2lvbjsKK+efs+iLsSA8IHF1YXJ0ejsKK+W3tOaLv+mmrCA8IHBhbmFtYTsKK+WMheeuoSA8IGFzc3VyZTsKK+WLleiEiCA8IGFydGVyeTsKK+acgOS9jiA8IGxvd2VzdDsKK+elreWPuCA8IHByaWVzdDsKK+eJueatpCA8IGhlcmVieTsKK+mbjOiViiA8IHBpc3RpbDsKK+W5sumgkCA8IG1lZGRsZTsKK+WMluefsyA8IGZvc3NpbDsKK+aNlemvqOiIuSA8IHdoYWxlcjsKK+awtOazpSA8IGNlbWVudDsKK+awtOazoSA8IGJ1YmJsZTsKK+a8lOiqquiAhSA8IG9yYXRvcjsKK+iTi+eIviA8IGdhZWxpYzsKK+WJjei8qSA8IHNlbmlvcjsKK+aTuuaoo+WtkCA8IGRvXC1zdGg7Civlia/oqZ4gPCBhZHZlcmI7CivljbHmqZ8gPCBjcmlzaXM7CivkuI3lhawgPCB1bmp1c3Q7Civms5XlnIsgPCBmcmFuY2U7CivmsonmgJ0gPCBwb25kZXI7CivmmpfloKEgPCBidW5rZXI7Civni5flsYsgPCBrZW5uZWw7CivmmrTlkJsgPCB0eXJhbnQ7Civms6Lmlq/lsLzkup4gPCBib3NuaWE7CivkuInlgI0gPCB0cmlwbGU7CivpnJznmb0gPCBmcm9zdHk7CivlkKbliYcgPCBpZlwtbm90Owor5YiG6ZCYIDwgbWludXRlOwor6JGs56auIDwgYnVyaWFsOwor5rC05qG2IDwgYnVja2V0Owor5pKk6Yq3IDwgcmVwZWFsOwor5Yqg5ou/5aSnIDwgY2FuYWRhOwor5Y+N5bCEIDwgcmVmbGV4Owor5LiN5Li5IDwgYmh1dGFuOwor6Z2e5rSyIDwgYWZyaWNhOwor5Ymd6J2VIDwgZGVudWRlOwor5LiA5LiyIDwgc3RyYW5kOwor57qW5q+bIDwgY2lsaXVtOwor55+zIDwgc3RvbmU7Civnn60gPCBzaG9ydDsKK+W/qyA8IHJhcGlkOwor5ZyoIDwgYmVcLWF0Owor5LuWIDwgb3RoZXI7Civnn6IgPCBhcnJvdzsKK+WIsCA8IGdvXC10bzsKK+ivtCA8IHNwZWFrOwor6L+FIDwgcXVpY2s7CivlnLAgPCBlYXJ0aDsKK+W/gyA8IGhlYXJ0Owor5LiLIDwgdW5kZXI7Civovq0gPCB3b3JkczsKK+W+riA8IHNtYWxsOwor5a62IDwgaG91c2U7CivlvqEgPCBkcml2ZTsKK+WQjiA8IHF1ZWVuOwor5b6FIDwgdHJlYXQ7Civov5ggPCBzdGlsbDsKK+WPkSA8IGlzc3VlOwor5b2rIDwgY2FydmU7Civmg7MgPCB0aGluazsKK+edoSA8IHNsZWVwOwor6L2JIDwgc2hpZnQ7CivmiYAgPCBwbGFjZTsKK+i8qiA8IHdoZWVsOwor5LiJIDwgdGhyZWU7CivovJUgPCBsaWdodDsKK+W8jyA8IHN0eWxlOwor5qC3IDwgc2hhcGU7Civlu7ogPCBidWlsZDsKK+W7tiA8IGRlbGF5Owor55uyIDwgYmxpbmQ7Civlu6MgPCBicm9hZDsKK+WjsCA8IHNvdW5kOwor5belIDwgbGFib3I7Civnm4YgPCBiYXNpbjsKK+ebgyA8IGdsYXNzOwor5q2jIDwgcmlnaHQ7CivlurggPCB1c3VhbDsKK+WlsyA8IHdvbWFuOwor5YqbIDwgcG93ZXI7CivoupEgPCB3YXZlcjsKK+WboCA8IGNhdXNlOwor6YeNIDwgaGVhdnk7CivnmocgPCByb3lhbDsKK+W6hyA8IGNvdmVyOwor5qyhIDwgb3JkZXI7Civlj6MgPCBtb3V0aDsKK+eZvSA8IHdoaXRlOwor5bm9IDwgcXVpZXQ7CivmlZkgPCB0ZWFjaDsKK+WGjSA8IGFnYWluOwor5rCUIDwgc3RlYW07Civkv6EgPCB0cnVzdDsKK+WMlyA8IG5vcnRoOwor6LmyIDwgc3F1YXQ7CivouZ8gPCB0cmFjZTsKK+W5hSA8IHBpZWNlOwor5YWlIDwgZW50ZXI7CivlhYggPCBmaXJzdDsKK+awtCA8IHdhdGVyOwor5be3IDwgYWxsZXk7CivnrJEgPCBzbWlsZTsKK+eriyA8IHN0YW5kOwor6LeqIDwga25lZWw7CivpqawgPCBob3JzZTsKK+W3qCA8IGxhcmdlOwor55aRIDwgZG91YnQ7CivliKkgPCBnYWluczsKK+aenCA8IGZydWl0Owor6LWnIDwgYmx1c2g7Civoh7MgPCByZWFjaDsKK+a4hSA8IGNsZWFyOwor54mpIDwgdGhpbmc7CivltYwgPCBpbmxheTsKK+eUsiA8IGFybW9yOwor55SwIDwgZmllbGQ7CivorrggPCBhbGxvdzsKK+WFqyA8IGVpZ2h0Owor5bSWIDwgY2xpZmY7CivltI4gPCByb3VnaDsKK+WNlyA8IHNvdXRoOwor6ImyIDwgY29sb3I7Civnk5wgPCBtZWxvbjsKK+eulyA8IGNvdW50Owor6LOKIDwgdGhpZWY7Civosq8gPCBzdG9yZTsKK+iyqCA8IGdvb2RzOwor5q+PIDwgZXZlcnk7CivlsawgPCBjbGFzczsKK+ixqiA8IGJyYXZlOwor6LGGIDwgYmVhbnM7CivkuIMgPCBzZXZlbjsKK+WwliA8IHNoYXJwOwor5bCEIDwgc2hvb3Q7CivnqbogPCBlbXB0eTsKK+aKgCA8IHNraWxsOwor5a+6IDwgY291cnQ7Civlr6sgPCB3cml0ZTsKK+iLsSA8IHBldGFsOwor5a+GIDwgZGVuc2U7CivpkrEgPCBtb25leTsKK+WuuSA8IGxvb2tzOwor5a61IDwgbmlnaHQ7Civlp4sgPCBiZWdpbjsKK+WuoiA8IGd1ZXN0Owor54mHIDwgc2xpY2U7CivnoJQgPCBncmluZDsKK+aXqSA8IGVhcmx5Owor5427IDwgb2ZmZXI7CivnjbogPCBvdHRlcjsKK+eNuCA8IGJlYXN0Owor542oIDwgYWxvbmU7CivoraYgPCBndWFyZDsKK+WtmCA8IGV4aXN0Owor6K2JIDwgcHJvb2Y7CivorJ0gPCB0aGFuazsKK+eMnCA8IGd1ZXNzOwor5ayJIDwgZW5qb3k7Civpu5EgPCBibGFjazsKK+isgSA8IHZpc2l0Owor5YmRIDwgc3dvcmQ7CivkuZAgPCBoYXBweTsKK+e6pyA8IGxldmVsOwor5Li+IDwgcmFpc2U7Civor4EgPCBwcm92ZTsKK+eFpyA8IHNoaW5lOwor6KqTIDwgc3dlYXI7CivnvqQgPCBncm91cDsKK+iqgiA8IHRlbXB0Owor5LykIDwgd291bmQ7Civmlq0gPCBzZXZlcjsKK+S7tyA8IHByaWNlOwor6ISRIDwgYnJhaW47Civop4QgPCBydWxlczsKK+WokSA8IGRhbmNlOwor56C0IDwgYnJlYWs7Civms70gPCBtYXJzaDsKK+eHuyA8IHNtb2tlOwor57SnIDwgdGVuc2U7Civop7ggPCB0b3VjaDsKK+ijhSA8IGRyZXNzOwor5rKzIDwgcml2ZXI7CivooYAgPCBibG9vZDsKK+aKlSA8IHRocm93Owor5aW0IDwgc2xhdmU7CivliIAgPCBrbmlmZTsKK+ilnyA8IGxhcGVsOwor5ZadIDwgZHJpbms7CivopKogPCBzdHJpcDsKK+WkoiA8IGRyZWFtOwor6ZSZIDwgZXJyb3I7CivmoYggPCB0YWJsZTsKK+WNsCA8IHByaW50Owor5aOTIDwgcHJlc3M7Civng4ggPCBmaWVyeTsKK+WjhyA8IGFsdGFyOwor6KOCIDwgc3BsaXQ7CivoorQgPCBwYW50czsKK+WikyA8IGdyYXZlOwor54KOIDwgZmxhbWU7CivngbAgPCBhc2hlczsKK+WhlyA8IHNtZWFyOwor5pWMIDwgZW5lbXk7CivloZQgPCB0b3dlcjsKK+aAgCA8IGJvc29tOwor572qIDwgY3JpbWU7Civon7IgPCB3b3JtczsKK+a/sSA8IGJlYWNoOwor5pGYIDwgcGx1Y2s7Civmlr0gPCBncmFudDsKK+aooSA8IG1vZGVsOwor6I2JIDwgZ3Jhc3M7Civmv4MgPCB0aGljazsKK+a/gSA8IG11ZGR5Owor5L+uIDwgc3R1ZHk7CivlkbMgPCB0YXN0ZTsKK+e7hyA8IHdlYXZlOwor6b6VIDwgbmljaGU7Civonb8gPCBmbGllczsKK+WFjSA8IHNwYXJlOwor5rOiIDwgd2F2ZXM7CivmvZQgPCBjbGVhbjsKK+a0iyA8IG9jZWFuOwor5Z2HIDwgZXF1YWw7CivlpZYgPCBwcml6ZTsKK+mhvyA8IHBhdXNlOwor5ryCIDwgZmxvYXQ7CivliKQgPCBqdWRnZTsKK+aLhSA8IGNhcnJ5Owor5p2/IDwgcGxhbms7Civpkp8gPCBjbG9jazsKK+m7kCA8IHN0aWNrOwor6JuHIDwgc25ha2U7CivmnoQgPCBmcmFtZTsKK+a6uiA8IGRyb3duOwor6bqmIDwgd2hlYXQ7Civmup0gPCBkaXRjaDsKK+a6nCA8IHNsaWRlOwor6IKJIDwgZmxlc2g7CivnurggPCBwYXBlcjsKK+iZmiA8IGZhbHNlOwor6JmOIDwgdGlnZXI7CivlmYwgPCBzY29sZDsKK+adgiA8IG1peGVkOwor5oCSIDwgYW5nZXI7CivnqL8gPCBkcmFmdDsKK+a4piA8IHN3aXJsOwor5rihIDwgY3Jvc3M7CivnvaIgPCBjZWFzZTsKK+m3uiA8IGhlcm9uOwor6be5IDwgZWFnbGU7Civol6kgPCBmZW5jZTsKK+iXpSA8IGRydWdzOwor6bKcIDwgZnJlc2g7Civll4UgPCBzbWVsbDsKK+iXgSA8IHN0cmF3Owor6ba0IDwgY3JhbmU7CivmnqogPCBzcGVhcjsKK+a2ryA8IHNob3JlOwor5raZIDwgdGVhcnM7CivphY0gPCBtYXRjaDsKK+a1tCA8IGJhdGhlOwor5Y2HIDwgYXJpc2U7CivmtZwgPCBjcmVlazsKK+iUrSA8IHNoYWRlOwor5rSlIDwgZmVycnk7CivprLwgPCBnaG9zdDsKK+iTriA8IGxvdHVzOwor6YG/IDwgYXZvaWQ7CivkuqEgPCBkZWF0aDsKK+mXqiA8IGZsYXNoOwor6ZyHIDwgc2hha2U7CivlkrMgPCBjb3VnaDsKK+e7vyA8IGdyZWVuOwor5ZKOIDwgZmF1bHQ7CivnurMgPCBhZG1pdDsKK+WRqiA8IGN1cnNlOwor56ulIDwgY2hpbGQ7CivkvJ8gPCBncmVhdDsKK+axgSA8IGp1aWNlOwor6I2jIDwgZ2xvcnk7CivlkJAgPCB2b21pdDsKK+mwjCA8IGxvYWNoOwor5ZaKIDwgc2hvdXQ7CivlkIkgPCBsdWNreTsKK+mAkCA8IGNoYXNlOwor5Y+pIDwga25vY2s7Civmo4AgPCBjaGVjazsKK+aPoSA8IGdyYXNwOwor54mZIDwgdG9vdGg7CivmrpYgPCBicmVlZDsKK+WNvyA8IG5vYmxlOwor5q2vIDwgdGVldGg7CivmraogPCBzbGFudDsKK+ajiyA8IGNoZXNzOwor6a2UIDwgZGVtb247CivohbAgPCB3YWlzdDsKK+aihSA8IHBsdW1zOwor6ZKiIDwgc3RlZWw7CivojLkgPCByb290czsKK+asuiA8IGNoZWF0Owor6ayaIDwgYmVhcmQ7CivljJkgPCBzcG9vbjsKK+WMjSA8IGNyYXdsOwor6IyFIDwgcmVlZHM7CivntK8gPCB0aXJlZDsKK+acqyA8IGZpbmFsOwor57OKIDwgcGFzdGU7CivnqI4gPCB0YXhlczsKK+aDryA8IGhhYml0Owor5YC+IDwgdXBzZXQ7CivotLggPCB0cmFkZTsKK+aJqyA8IHN3ZWVwOwor5ZCTIDwgc2NhcmU7CivliYMgPCBzaGF2ZTsKK+WItyA8IGJydXNoOwor576KIDwgc2hlZXA7CivmiZEgPCBwb3VuZDsKK+WAjSA8IHRpbWVzOwor5Ya2IDwgc21lbHQ7CivohrMgPCBtZWFsczsKK+WFvCA8IHVuaXRlOwor6Z6LIDwgc2hvZXM7CivmjKQgPCBjcm93ZDsKK+milyA8IGdyYWluOwor5oOgIDwgZmF2b3I7CivohZUgPCB3cmlzdDsKK+ahgyA8IHBlYWNoOwor5Z2hIDwgc2xvcGU7CivlhJ8gPCByZXBheTsKK+akjSA8IHBsYW50Owor6ISKIDwgc3BpbmU7CivmpIUgPCBjaGFpcjsKK+iCmiA8IGJlbGx5Owor5qOyIDwgcGVyY2g7Civogp0gPCBsaXZlcjsKK+eWryA8IGNyYXp5Owor6IC7IDwgc2hhbWU7Civkvo0gPCBzZXJ2ZTsKK+ihqyA8IHNoaXJ0Owor6ZK7IDwgZHJpbGw7Civls6EgPCBnb3JnZTsKK+mfuyA8IHJoeW1lOwor5LiRIDwgY2xvd247CivmvrMgPCBpbmxldDsKK+eWvCA8IGFjaGVzOwor5qGjIDwgc2hlbGY7CivnjpsgPCBhZ2F0ZTsKK+mdtCA8IGJvb3RzOwor5YKyIDwgcHJvdWQ7CivpnJwgPCBmcm9zdDsKK+WQtSA8IGFyZ3VlOwor6YKqIDwgd3Jvbmc7CivohIYgPCBjcmlzcDsKK+absyA8IHRyYWlsOwor6ZuiIDwgbGVhdmU7Civlj5sgPCByZWJlbDsKK+e/vCA8IHdpbmdzOwor55ScIDwgc3dlZXQ7CivpmpkgPCBjcmFjazsKK+WChSA8IHR1dG9yOwor5Za3IDwgc3B1cnQ7CivlqLYgPCBtYXJyeTsKK+mXhyA8IGNsb3NlOwor57OWIDwgc3VnYXI7Civnj4ogPCBjb3JhbDsKK+eguCA8IHNtYXNoOwor57WeIDwgdHdpc3Q7CivovaggPCB0cmFjazsKK+exliA8IHRhbGx5Owor5pOSIDwgY2F0Y2g7Civmj4MgPCBzaGVhcjsKK+eukiA8IGJyb29tOwor6Y2uIDwgYnJhc3M7Civll5MgPCB2b2ljZTsKK+WVpSA8IHdoYXRcPzsKK+icnCA8IGhvbmV5Owor6YuPIDwgdG9uZ3M7Civogr8gPCBzd2VsbDsKK+ijmSA8IHNraXJ0Owor5bC/IDwgdXJpbmU7CivpgK4gPCBzZWl6ZTsKK+WAoSA8IGd1aWRlOwor5YWcIDwgcG91Y2g7CivprYQgPCB2aWdvcjsKK+ezlSA8IGNha2VzOwor56iaIDwgeW91bmc7CivpiI0gPCBibHVudDsKK+emvSA8IGJpcmRzOwor5oa6IDwgcGVhY2U7Civpk74gPCBjaGFpbjsKK+aGrCA8IHJvdXNlOwor5YezIDwgYmVuY2g7CivphawgPCB0b2FzdDsKK+eBvyA8IHZpdmlkOwor5pSAIDwgY2xpbWI7CivmsqsgPCBmcm90aDsKK+mtgSA8IGNoaWVmOwor5rulIDwgZmxvb2Q7CivmiLMgPCBwcmljazsKK+ahqSA8IHN0YWtlOwor6IK6IDwgbHVuZ3M7CivnurEgPCBnYXV6ZTsKK+mZoSA8IHN0ZWVwOwor54OrIDwgc2NhbGQ7CivpuYUgPCBnb29zZTsKK+aVniA8IHJvb215Owor5bOoIDwgbG9mdHk7CivomZAgPCBjcnVlbDsKK+i+qyA8IGJyYWlkOwor5oCmIDwgZWFnZXI7CivmtYcgPCBzcHJheTsKK+iGmyA8IGNoZXN0Owor6Ze1IDwgbW91cm47CivoopwgPCBzb2NrczsKK+i0vyA8IGJyaWJlOwor5aKFIDwgdmlsbGE7Civnp70gPCBkaXJ0eTsKK+WRuyA8IGdyb2FuOwor5ounIDwgcGluY2g7CivmnaAgPCBsZXZlcjsKK+e8jiA8IHNhdGluOwor5oOuIDwgZHJlYWQ7CivlmZcgPCBidXJzdDsKK+eftiA8IGpldHR5Owor57CHIDwgc3dhcm07Civmh4ogPCB2ZXhlZDsKK+aLhyA8IHRodW1iOwor6ZOyIDwgc3BhZGU7Civlk70gPCBjaG9rZTsKK+WGlSA8IGNyb3duOwor55auIDwgdHVtb3I7CivotYMgPCBib290eTsKK+WpiiA8IHdob3JlOwor6ZSvIDwgYVwtc2F3Owor5ZiIIDwgbm9pc3k7CivnvLAgPCByZWluczsKK+iuqiA8IGFidXNlOwor5b+hIDwgYVwtc2FkOwor6aaNIDwgYnJlYWQ7CivpooUgPCBza3VsbDsKK+eDmSA8IGJyYW5kOwor5Z+UIDwgcGxhaW47CivpmJwgPCBtb3VuZDsKK+eCrCA8IHRvcmNoOwor54KZIDwgcm9hc3Q7CivlqaogPCBjb3ZldDsKK+i5kSA8IHRyZWFkOwor56u6IDwgaW5kaWE7CivliYwgPCBzbGFzaDsKK+etmyA8IHNpZXZlOwor56+hIDwgdXN1cnA7CivpsrggPCB3aGFsZTsKK+aKoSA8IHN3aW5nOwor5rauIDwgcmluc2U7CivphbUgPCB5ZWFzdDsKK+aphCA8IG9saXZlOwor6ZuPIDwgY2hpY2s7CivmtqcgPCBicm9vazsKK+iFuiA8IGdsYW5kOwor5b+xIDwgdHJ1dGg7CivonL8gPCBjcmVlcDsKK+mVgCA8IHBsYXRlOwor6IOtIDwgcm91Z2U7CivotbMgPCBncmFuZDsKK+ezoCA8IGNoYWZmOwor5bibIDwgc2lsa3M7CivpsqggPCBzaGFyazsKK+i4nSA8IGFua2xlOwor55yIIDwgZ2xvYXQ7CivlgK0gPCBkd2FyZjsKK+mVkCA8IHN0b3ZlOwor6JmxIDwgbG91c2U7CivmkJAgPCBjcmFtcDsKK+aImyA8IGxhbmNlOwor5ZGDIDwgYmVsY2g7Civmpq0gPCBraW9zazsKK+mFqiA8IGNyZWFtOwor5a2AIDwgd2lkb3c7CivlraogPCB0d2luczsKK+eesCA8IHdhdGNoOwor5rCuIDwgeGVub247Civnl6MgPCBzcG90czsKK+aRkiA8IGV4cGVsOwor5L+4IDwgd2FnZXM7CivmhKAgPCBhbmdyeTsKK+aJqiA8IHN0b2tlOwor57uJIDwgY3JlcGU7Civnj4AgPCBhbWJlcjsKK+ivqSA8IGJvYXN0Owor6IqNIDwgcGVvbnk7CivopLYgPCBwbGVhdDsKK+mFlyA8IGRydW5rOwor5p+gIDwgbGVtb247Civor5kgPCB0ZWFzZTsKK+e7uiA8IHNrZWluOwor6YeJIDwgZ2xhemU7CivlrZsgPCBjb21ldDsKK+akvSA8IGJlYW1zOwor6aKmIDwgZnJvd247Civmt5YgPCBzbHVzaDsKK+iOoCA8IHdlZWRzOwor5qmbIDwgYVwtcGVnOwor6JK6IDwgZnVyemU7Civnv5UgPCBhZ3JlZTsKK+mcviA8IG1pc3R5Owor56CnIDwgYW52aWw7Civog7ogPCBhbWluZTsKK+ibrSA8IGxlZWNoOwor6K+oIDwgam9rZXM7CivmgKsgPCBzb3JyeTsKK+allCA8IHdlZGdlOwor55a9IDwgdWxjZXI7CivmoaQgPCBhbGRlcjsKK+mThiA8IHJpdmV0Owor5pK6IDwgaHVycnk7CivogoQgPCBsZWFybjsKK+WtoiA8IHNwb3JlOwor6bKyIDwgc3Bhd247Civpk6ggPCB3ZWlnaDsKK+ixlSA8IGFcLXBpZzsKK+esiiA8IGxhZGxlOwor5ZuXIDwgZXJlY3Q7Civpk6kgPCBtb3VsdDsKK+m5kSA8IHF1YWlsOwor5ZWBIDwgY2hpcnA7CivphpogPCBldGhlcjsKK+eQsCA8IGpld2VsOwor6L+oIDwgdW50aWw7CivpuawgPCBzbmlwZTsKK+WCiCA8IHRyaWJlOwor6ZOwIDwgaGluZ2U7CivnobwgPCBib3JheDsKK+mFryA8IGVzdGVyOwor6ZWqIDwgY29pbnM7CivmiaYgPCBwcm9iZTsKK+a6tyA8IHByaXZ5Owor5L+zIDwgYWN0b3I7CivomJYgPCBzdHVtcDsKK+WigCA8IHBvcmNoOwor5ZaIIDwgbXVzaWM7CivlkKEgPCBibGFtZTsKK+eYiiA8IHdhcnRzOwor5Y6jIDwgc2hlbGw7Civns4UgPCBibGVuZDsKK+mYjyA8IGJsb2NrOwor6bKCIDwgYnJlYW07Civmur0gPCBtb2lzdDsKK+ewjyA8IGFcLWJveDsKK+ijpSA8IGZvbGRzOwor57yzIDwgbm9vc2U7CivpvqAgPCBmbHV0ZTsKK+idpCA8IGxhcnZhOwor5Z+tIDwgYVwtZGFtOwor6bK2IDwgc2hlYXQ7CivplJ4gPCBpbmdvdDsKK+awoSA8IHJhZG9uOwor5qetIDwgbWFwbGU7CivlvZggPCBzd2luZTsKK+W9liA8IGFcLWhvZzsKK+a7lyA8IGRyYWluOwor5buRIDwgYVwtaHV0Owor5YyPIDwgZ291cmQ7Civnr7wgPCBzZWRhbjsKK+ibniA8IHNuYWlsOwor55KBIDwgXChnZW1cKTsKK+e7lyA8IGJhc3RlOwor5Z+YIDwgcm9vc3Q7Civlt7Tpu44gPCBwYXJpczsKK+S7o+eQhuS6uiA8IGFnZW50Owor6YGK6JWpIDwgc3RyYXk7CivlvITns58gPCBzcG9pbDsKK+aBqeWFuCA8IGdyYWNlOwor5aSn54i6IDwgdW5jbGU7Civml6XmnKwgPCBqYXBhbjsKK+WPr+WPryA8IGNvY29hOwor5Y+v5Y+jIDwgdGFzdHk7Civlu7bnt6kgPCBkZWZlcjsKK+WnquWlsyA8IG5pZWNlOwor6Zm36JC9IDwgc2x1bXA7CivniZvmjpIgPCBzdGVhazsKK+masee0hCA8IHZhZ3VlOwor5ZCI5L21IDwgYW5uZXg7Civorbflo6sgPCBudXJzZTsKK+aziuS9jSA8IGJlcnRoOwor542o5pyo6IifIDwgY2Fub2U7Civmop3mnb/nrrEgPCBjcmF0ZTsKK+mZs+WIl+iHuiA8IHN0YWxsOwor6YGK6ImHIDwgYmFyZ2U7CivpmbDojpYgPCBwZW5pczsKK+aZuuWIqSA8IGNoaWxlOwor5aOT56KOIDwgY3J1c2g7Civmr4/mr48gPCBvZnRlbjsKK+mfk+WciyA8IGtvcmVhOwor55+z54uAIDwgc3Rvbnk7CivnlLfkv67pgZPpmaLplbcgPCBhYmJvdDsKK+WIpeiZnyA8IGFsaWFzOwor5byV55SoIDwgcXVvdGU7CivluILplbcgPCBtYXlvcjsKK+eIkOaetiA8IGdyYXRlOwor5qmf6ZecIDwgb3JnYW47Civms6XmsLTljKAgPCBtYXNvbjsKK+m0ieeJhyA8IG9waXVtOwor5qSN54mp576kIDwgZmxvcmE7CivlnKjpq5jomZUgPCBhbG9mdDsKK+aSkOerv+i3syA8IHZhdWx0Owor5pS+54mnIDwgZ3JhemU7Civmr4/ml6UgPCBkYWlseTsKK+Wll+aIvyA8IHN1aXRlOwor6YGV56SZIDwgdGFib287CivlhKrpu54gPCBtZXJpdDsKK+W+mOW+iiA8IGhvdmVyOwor6KaW6Ka6IDwgc2lnaHQ7CivmlZjliKnkup4gPCBzeXJpYTsKK+WIgOiRiSA8IGJsYWRlOwor5pGp6KW/IDwgbW9zZXM7CivomZvlvLXogbLli6IgPCBibHVmZjsKK+iqv+WItuino+iqv+WZqCA8IG1vZGVtOwor6Z2S5bm0IDwgeW91dGg7CivmqJnpoYwgPCB0aXRsZTsKK+awqOWfuiA8IGFtaW5vOwor5qmf6Lu4IDwgYXJib3I7CivphpLkvoYgPCB3YWtlbjsKK+mWgOmWgiA8IGxhdGNoOwor6Z2I5benIDwgaGFuZHk7CivlhYPpn7MgPCB2b3dlbDsKK+WFi+mahiA8IGNsb25lOwor5pW05pW0IDwgd2hvbGU7CivljK/lr4QgPCByZW1pdDsKK+WJgeeijiA8IG1pbmNlOwor6Kq/5oOFIDwgZmxpcnQ7CivmnKrmiJDlubTkurogPCBtaW5vcjsKK+WMhuW/mSA8IGhhc3R5Owor5q+b5be+IDwgdG93ZWw7CivoirPpppkgPCBiYWxteTsKK+W5tOe0miA8IGdyYWRlOwor57Sr5LiB6aaZIDwgbGlsYWM7CivmlaPmlocgPCBwcm9zZTsKK+S4jeaWsOmuriA8IHN0YWxlOwor6KW/6JePIDwgdGliZXQ7CivlpKfovrLloLQgPCByYW5jaDsKK+eBq+i7iiA8IHRyYWluOwor5q275p2/IDwgcmlnaWQ7Civnn5vmn4QgPCBzaGFmdDsKK+mVt+mHmCA8IHNwaWtlOwor5q2l5qeNIDwgcmlmbGU7CivliLvnl5UgPCBub3RjaDsKK+mBuOawkSA8IHZvdGVyOwor6a2U6ay8IDwgZGV2aWw7CivmlrDlqJggPCBicmlkZTsKK+isoOWCsyA8IHJ1bW9yOwor5paw5aWHIDwgbm92ZWw7CivnhaTmuKMgPCBzbGFjazsKK+iKsemWiyA8IGJsb29tOwor54mp5Li7IDwgb3duZXI7CivlvYjlvJMgPCBzbGluZzsKK+WkmuawtOWIhiA8IGp1aWN5Owor5aCx56qpIDwgYnJvb2Q7CivpurXljIXluKvlgoUgPCBiYWtlcjsKK+mbu+W9sSA8IG1vdmllOwor5pG457SiIDwgZ3JvcGU7CivpgJ/njocgPCBzcGVlZDsKK+egtOWjniA8IHdyZWNrOwor57SE6I6rIDwgYWJvdXQ7Civlo4HmnrYgPCBsZWRnZTsKK+WRvOWPq+WZqCA8IHBhZ2VyOwor6ZqO5q61IDwgc3RhZ2U7CivljYHliIYgPCBmdWxseTsKK+WcsOmdoiA8IGZsb29yOwor6Ku35Yi6IDwgaXJvbnk7Civnmb3osrsgPCB3YXN0ZTsKK+mBi+aysyA8IGNhbmFsOwor5YWr6KeSIDwgYW5pc2U7CivpmbDmtrwgPCBzaGFkeTsKK+aTpua0lyA8IHNjb3VyOwor54ax5b+xIDwgYXJkb3I7CivntqDmtLIgPCBvYXNpczsKK+S4i+awtOmBkyA8IHNld2VyOwor5Zu66auUIDwgc29saWQ7Civlg6fpmaIgPCBhYmJleTsKK+aOqOmBuCA8IGVsZWN0Owor5o6o6YCyIDwgaW1wZWw7Civpl5znr4AgPCBqb2ludDsKK+W+nuS+huS4jSA8IG5ldmVyOwor6Imm6ZqKIDwgZmxlZXQ7Civmr5TliIYgPCBzY29yZTsKK+WJm+aenCA8IGNvbmdvOwor54Gr6IqxIDwgc3Bhcms7CivlvbHlg48gPCBpbWFnZTsKK+ebnOeriiA8IHN0ZWFsOwor6bq6IDwgZmxvdXI7CivpupggPCBzY2VudDsKK+m5viA8IHNhbHR5Owor6biyIDwgbXluYWg7CivkuozmpbXnrqEgPCBkaW9kZTsKK+edoeakhSA8IGNvdWNoOwor56u25oqA5aC0IDwgYXJlbmE7CivliqDlr6wgPCB3aWRlbjsKK+m0qiA8IHN3b29wOwor5Y+v5pOm5a+r5Y+v57eo56iL56WH6K6A5a2Y5YSy5ZmoIDwgZXByb207Civoqqrlh7ogPCB1dHRlcjsKK+a+s+mWgCA8IGFvbWVuOwor5o6o6KuWIDwgaW5mZXI7Civns6Lns4ogPCBmb2dneTsKK+mwniA8IHNxdWlkOwor5YuV5ZCRIDwgdHJlbmQ7CivlpKnkvb8gPCBhbmdlbDsKK+ikkOiJsiA8IGJyb3duOwor6ayG6ZaLIDwgbG9vc2U7Civmq7jmnKggPCBiZWVjaDsKK+mDqOS7tiA8IHBhcnRzOwor6LuM6YGTIDwgb3JiaXQ7CivprI4gPCBmYXZ1czsKK+mWg+iAgCA8IGdsaW50Owor6Iet6bysIDwgc2t1bms7Civpq7MgPCBzdGF0ZTsKK+mrsiA8IGFcLXdpZzsKK+eWvumiqCA8IGJsYXN0Owor5pSk5a2QIDwgYm9vdGg7CivlpKfkurogPCBhZHVsdDsKK+m6pemYv+WvhiA8IG1pYW1pOwor5Ye65rKSIDwgaGF1bnQ7Civpp54gPCBjYW1lbDsKK+mBk+W+tyA8IG1vcmFsOwor55m86IGyIDwgdm9jYWw7CivplbfogIEgPCBlbGRlcjsKK+S8keaBr+WupCA8IGxvYmJ5Owor5qi557GsIDwgaGVkZ2U7CivppZggPCBncnVlbDsKK+eQg+eLgOeJqSA8IGdsb2JlOwor6aSqIDwgZmVhc3Q7CivppKYgPCBjYW5keTsKK+W4neeOiyA8IHJlZ2FsOwor5by35YWJIDwgZ2xhcmU7Civpo7YgPCBvZG91cjsKK+mjkSA8IHN0b3JtOwor6LuM6LehIDwgbG9jdXM7Civou4zot50gPCBnYXVnZTsKK+ijnOiXpSA8IHRvbmljOwor5bCN5pW16ICFIDwgcml2YWw7Civlub3mmpcgPCBnbG9vbTsKK+aTlOaHriA8IHdvcnJ5Owor5qau6K29IDwgaG9ub3I7CivprZTooZMgPCBtYWdpYzsKK+megyA8IGJvYXJkOwor6Z2mIDwgdGltaWQ7CivpnLEgPCBjbG91ZDsKK+mcmSA8IHNsZWV0Owor6ZaL56uvIDwgc3RhcnQ7Civpm57lhqAgPCBjcmVzdDsKK+mZvCA8IGlzbGV0Owor6Zi5IDwgYVwtcGVuOwor5YiH5pybIDwgY3JhdmU7CivlhqzpnZLmqLkgPCBob2xseTsKK+aomeexpCA8IGxhYmVsOwor6ZWfIDwgbGF0aGU7CivnhLblvowgPCBhZnRlcjsKK+mCo+WFkiA8IHRoZXJlOwor6ZKDIDwgbWV0YWw7CivlnJbooaggPCBjaGFydDsKK+WcjeijmSA8IGFwcm9uOwor57KX57OZIDwgY3J1ZGU7CivmnpzlrZDlh40gPCBqZWxseTsKK+Wkp+WcsOWcliA8IGF0bGFzOwor5Ymq5aCxIDwgc2NyYXA7Civopo/mqKEgPCBzY2FsZTsKK+mCo+S6myA8IHRob3NlOwor6YiHIDwgYW5cLWF4Owor6L6m5rOVIDwgbWVhbnM7CivoiLnosqggPCBjYXJnbzsKK+atjOWKhyA8IG9wZXJhOwor54OP5pyoIDwgZWJvbnk7Civpm4XlkITmm7ggPCBqYW1lczsKK+eyieethiA8IGNoYWxrOwor57WV5oqAIDwgc3R1bnQ7Civoh4npoLAgPCBjaGVlazsKK+eZveeZoSA8IGlkaW90Owor6KeS5bqmIDwgYW5nbGU7Civnmbznl4UgPCBvbnNldDsKK+aEn+WMlumkheS5viA8IHdhZmVyOwor5Z+65pysIDwgYmFzaWM7CivngavnhLAgPCBibGF6ZTsKK+aOoue0oiA8IHF1ZXN0Owor5aGr5aGeIDwgc3R1ZmY7Civns5bmvL8gPCBzeXJ1cDsKK+eyieeijiA8IGNyYXNoOwor6Iux5Luj54i+IDwgaW50ZWw7CivosqQgPCBzdGVwczsKK+iIiei1tyA8IGhlYXZlOwor6LGUIDwgcGx1bXA7CivpgJnlpKkgPCB0b2RheTsKK+iumSA8IGNoZWVyOwor6K2BIDwgbm9pc2U7CivlsLzpvo0gPCBueWxvbjsKK+avm+iMuOiMuCA8IGhhaXJ5Owor6ZqK5LyNIDwgcmFua3M7Civop5QgPCBjYXR0eTsKK+W5heW6piA8IHdpZHRoOwor5qmh5pyoIDwgb2FrZW47Civnsr7mtrIgPCBzZW1lbjsKK+W6iuWWriA8IHNoZWV0Owor5YmD5YiAIDwgcmF6b3I7CivooJcgPCBcKGFwZVwpOwor5bC85pel54i+IDwgbmlnZXI7Civon6IgPCBjYXVsazsKK+WHs+WtkCA8IHN0b29sOwor6Ia96YePIDwgbmVydmU7CivonZggPCBnZWNrbzsKK+WGjeacgyA8IGFkaWV1Owor5qqz5a2QIDwgYmluemk7CivlhanmrKEgPCB0d2ljZTsKK+S/rumjviA8IGFkb3JuOwor57Si5byVIDwgaW5kZXg7Civlg7XnoawgPCBzdGFyazsKK+iYkyA8IHRoeW1lOwor6JiLIDwgYXBwbGU7Civlt6XmnIMgPCB1bmlvbjsKK+ijgueXlSA8IGNoYXNtOwor57Sw5bCPIDwgcGV0dHk7CivpqYXpmaQgPCByZXBlbDsKK+aoueaelyA8IHdvb2RzOwor5r2b6KGMIDwgc25lYWs7CivlnoLmrbsgPCBkeWluZzsKK+aouuacqCA8IGJpcmNoOwor6I6/IDwgdGhvcm47CivlhazmnIMgPCBndWlsZDsKK+iLtiA8IHdlYXJ5Owor5pS26Z+z5qmfIDwgcmFkaW87CivmkJPmj4kgPCBrbmVhZDsKK+iHvSA8IGFcLXBpdDsKK+iHsiA8IGp1bXB5Owor6IebIDwgYnJvdGg7CivpgJnkupsgPCB0aGVzZTsKK+W6h+S9kSA8IGJsZXNzOwor5YGH6KOdIDwgZmVpZ247Civovq7lrZAgPCBwbGFpdDsKK+mZjeS4iyA8IGxvd2VyOwor6IWhIDwgbGluZXM7CivmqJPmoq8gPCBzdGFpcjsKK+esrOS4ieasoSA8IHRoaXJkOwor6auY6IGyIDwgYWxvdWQ7CivlsIrprZogPCB0cm91dDsKK+iClSA8IHRvdWdoOwor5Zue562UIDwgcmVwbHk7CivogJ4gPCBmbGFpbDsKK+aLm+W+heWToSA8IHVzaGVyOwor57Ch55+tIDwgYnJpZWY7Civnv70gPCB3aGlycjsKK+WbpOepjSA8IGhvYXJkOwor57+EIDwgd2luZHM7Civpp7/ppqwgPCBzdGVlZDsKK+e9iSA8IGFcLXBvdDsKK+iJsueLvCA8IHNhdHlyOwor57q7IDwgcmFtaWU7CivovYnmkq0gPCByZWxheTsKK+aJuemHjyA8IGJhdGNoOwor57iPIDwgcHVyc2U7CivntowgPCBjbG90aDsKK+earuW4tiA8IHN0cmFwOwor5pKS5L2GIDwgc2F0YW47CivlhrDloZQgPCBzZXJhYzsKK+eyjiA8IG1ldHJlOwor566bIDwgYnVnbGU7CivovJXmn5MgPCB0aW5nZTsKK+etsCA8IGNhYmxlOwor562mIDwgYVwta2V5Owor56uUIDwgbGl0cmU7Civmi5voh7QgPCBpbmN1cjsKK+S4gOe3muW+ruWFiSA8IGdsZWFtOwor56mnIDwgc2hlYWY7CivmoJfpvKAgPCBidW5ueTsKK+W3q+WphiA8IHdpdGNoOwor6ZaA5buKIDwgc3Rvb3A7CivnpLYgPCBhXC1qdWc7CivmhI/lpKfliKkgPCBpdGFseTsKK+ejiCA8IHJvY2t5Owor54OY5Lm+IDwgcGFyY2g7CivmsLTlubPpnaIgPCBwbGFuZTsKK+WFrOWwuiA8IG1ldGVyOwor55+TIDwgZmFpbnQ7Civnno8gPCByb3VuZDsKK+S6num6u+W4gyA8IGxpbmVuOwor55y5IDwgcHVwaWw7CivkupToirHlhavploAgPCBteXJpZDsKK+ebjuWPuCA8IG91bmNlOwor55q9IDwgc2N1cmY7CivpqI7ou4ogPCBjeWNsZTsKK+eyvuWtkCA8IHNwZXJtOwor55mhIDwgc2lsbHk7Civlh4zkuoIgPCBjaGFvczsKK+S/muiqniA8IHNsYW5nOwor57SF5YipIDwgYm9udXM7CivmupzlhrDpnosgPCBza2F0ZTsKK+eUjiA8IGJyaWNrOwor5L2c5ZO86IGyIDwgc25vcnQ7Civln4Plj4ogPCBlZ3lwdDsKK+ijvemAoOiAhSA8IG1ha2VyOwor55GUIDwgXChqYWRlOwor54+WIDwgY2FyYXQ7CivnrKboqJggPCB0b2tlbjsKK+WWqumQmCA8IGtuZWxsOwor6IS56LW3IDwgYnVsZ2U7CivlhazlmbggPCB0b25uZTsKK+eEoeeUn+WRvSA8IGluZXJ0Owor54mcIDwgYW5cLW94Owor54mUIDwgZ2FibGU7CivpharovrLmpa0gPCBkYWlyeTsKK+eUn+iLlCA8IG1vc3N5Owor6aiZ6KGTIDwgdHJpY2s7CivmiZPoo70gPCBmb3JnZTsKK+eBoyA8IGFcLWJheTsKK+iFkOidlSA8IHJ1c3R5Owor5rC06JK45rCjIDwgdmFwb3I7Civlha3ljYEgPCBzaXh0eTsKK+WFrOWNhyA8IGxpdGVyOwor5Ly86ZuqIDwgc25vd3k7Civnl4Xmr5IgPCB2aXJ1czsKK+aOqOW0hyA8IHZhbHVlOwor6Lev57eaIDwgcm91dGU7Civlt6jkurogPCBnaWFudDsKK+WDj+eJh+ewvyA8IGFsYnVtOwor5omL6JedIDwgY3JhZnQ7CivotIjoiIfogIUgPCBnaXZlcjsKK+aWnOe0i+i7n+WRoiA8IHR3ZWVkOwor5rGzIDwgaGVuYW47CivlvrflhYvolqnmlq8gPCB0ZXhhczsKK+mmrOmBlCA8IG1vdG9yOwor5Zub5pyIIDwgYXByaWw7CivmrpEgPCBzd29vbjsKK+WFtuS4rSA8IGFtb25nOwor5q2IIDwgc29uZ3M7CivmrLggPCBzaWdoczsKK+a7kee/lCA8IGdsaWRlOwor5aSp6JeN6ImyIDwgYXp1cmU7CivoobDmlZcgPCBkZWNheTsKK+iLm+WIuyA8IGhhcnNoOwor5qqoIDwgbWFuZ287CivnqbrplpMgPCBzcGFjZTsKK+aolSA8IHNocnViOwor5o6g5aWqIDwgaGFycnk7Civlr5/oprogPCBhd2FyZTsKK+Wxi+ewtyA8IGVhdmVzOwor5qC86KiAIDwgbWF4aW07CivmpYUgPCBidWFyZDsKK+eTo+iGnCA8IHZhbHZlOwor5qSIIDwgY2VkYXI7Civmo4EgPCBqb2lzdDsKK+WcjeW3viA8IHNjYXJmOwor5a+T6KiAIDwgZmFibGU7CivooqvlrZAgPCBxdWlsdDsKK+agjSA8IGFcLWxvdDsKK+Wwj+iIjCA8IHV2dWxhOwor5bCx57eSIDwgcmVhZHk7Civou4DlubkgPCB0cnVuazsKK+aJi+iCmCA8IGVsYm93Owor5a6i6LuKIDwgY29hY2g7Civoib7lp6wgPCBhZ2dpZTsKK+mjm+ihjOWToSA8IHBpbG90Owor5Zyo5aSWIDwgb3V0ZXI7CivltIfmi5wgPCBhZG9yZTsKK+WFheS7vSA8IGFtcGxlOwor6auY5piOIDwgc21hcnQ7Civnl5vmgaggPCBhYmhvcjsKK+eXm+W/qyA8IGpvbGx5Owor5o2Q6LSI6ICFIDwgZG9ub3I7CivmlZQgPCBnYXZlbDsKK+ilv+ePreeJmSA8IHNwYWluOwor55S354i1IDwgYmFyb247Civlm7rlrpogPCBmaXhlZDsKK+Wwlue0sCA8IHRhcGVyOwor6Iqx5L+PIDwgZmFuY3k7CivotavojLIgPCBoZXJ0ejsKK+aMjCA8IGZpZ2h0Owor5o+Q5aSa5pu4IDwgdGl0dXM7CivlnI3ln44gPCBzaWVnZTsKK+aJoiA8IGNhcGVyOwor6Ie05pWsIDwgZ3JlZXQ7Civou43lnJggPCBjb3JwczsKK+aEgyA8IHJlbGF4Owor5o6S5YiXIDwgYXJyYXk7Civkv4/nmq4gPCBzYXVjeTsKK+iInuW8iiA8IGZyYXVkOwor5oK+IDwgbmFpdmU7Civoo5zkuIEgPCBwYXRjaDsKK+eUn+m6teezsCA8IGRvdWdoOwor5ru/6Lqr5aG15Z+DIDwgZHVzdHk7CivmvL/mnpwgPCBiZXJyeTsKK+mYv+aLieaRqSA8IGFsYW1vOwor6a2F5YqbIDwgY2hhcm07CivmvILmuLggPCBkcmlmdDsKK+W9kSA8IHNub3V0Owor6Kq/5ZGz6IKJ5rGBIDwgZ3Jhdnk7CivmvZHmjokgPCBzcGlsbDsKK+W4kiA8IGFcLWJhZzsKK+izh+mHkSA8IGZ1bmRzOwor55S36auY6Z+zIDwgdGVub3I7CivkuIDpu57lhZIgPCBhXC1iaXQ7Civltp4gPCByaWRnZTsKK+iHquaIkSA8IHNlbGZcLTsKK+aenOmFkiA8IGNpZGVyOwor5bSaIDwgaGlsbHk7CivmjbflhYsgPCBjemVjaDsKK+eUqOazlSA8IHVzYWdlOwor5a2Y6LKoIDwgc3RvY2s7Civpq5jlsJogPCBub2JseTsKK+aLjeaTiiA8IHNtYWNrOwor5auaIDwgc2Nvcm47CivlsI/mqLnmnpcgPCBncm92ZTsKK+W4g+iQiueIviA8IGJsYWlyOwor5Zyo77mN5LmL5LiLIDwgYmVsb3c7CivlnKjvuY3kuYvkuIogPCBhYm92ZTsKK+a/gOWFiSA8IGxhc2VyOwor5a6J6I+vIDwgYW53YXI7Civmi4LmjoMgPCB3aGlzazsKK+iIueWPqiA8IHNoaXBzOwor5aOGIDwgc3RpZmY7CivlorogPCB3YWxsczsKK+WijSA8IHBhaW50Owor5aGZIDwgdHJ1bHk7Civlm5vljYEgPCBmb3J0eTsKK+WdsCA8IHdpbGRzOwor5pKl54Gr5qONIDwgcG9rZXI7CivlmbogPCBzdG9yeTsKK+WXkCA8IGFsYXNcITsKK+a1gemrlCA8IGZsdWlkOwor5Za0IDwgaGVsbG87CivllbIgPCBhXC1mZXc7CivllY0gPCBjcmVhazsKK+WTtiA8IGJsZWF0Owor5ZKNIDwgbGF1Z2g7CivlkLAgPCBjbGFuZzsKK+evhOWcjSA8IHJhbmdlOwor5Y66IDwgdG9cLWdvOwor5Y6WIDwgYnVsa3k7CivkuInoibLntKvnvoXomK0gPCBwYW5zeTsKK+S/ruaUuSA8IGFtZW5kOwor5pyJ6aKoIDwgd2luZHk7CivpqZrmhYwgPCBwYW5pYzsKK+WcqOaXgemCiiA8IGFzaWRlOwor5YanIDwgYVwtYnVkOwor5Li76aGMIDwgdGhlbWU7Civnh5/mpa3lk6EgPCBjbGVyazsKK+WTquijoSA8IHdoZXJlOwor5ZyL6Zqb6Zu75aCx6Zu76Kmx5ZKo6Kmi5aeU5ZOh5pyDIDwgY2NpdHQ7CivorabloLHlmaggPCBzaXJlbjsKK+eVtuWcsCA8IGxvY2FsOwor5YCJ5bqrIDwgZGVwb3Q7CivkvbogPCBmYWlyeTsKK+S8iue0oiA8IGFlc29wOwor5YuV5oWL5b2x5YOPIDwgdmlkZW87CivkuInop5LmtLIgPCBkZWx0YTsKK+eskeaelyA8IGh1bW9yOwor5aiB54i+5aOrIDwgd2FsZXM7Civmo5rlrZAgPCBzaGFjazsKK+S2hyA8IGFcLXJhdDsKK+iCr+WwvOS6niA8IGtlbnlhOwor55S35a2QIDwgYVwtbWFuOwor6IKh56WoIDwgc2hhcmU7Civks7EgPCBkdWNrczsKK+m6teWMheeariA8IGNydXN0Owor6IKl56KpIDwgc3RvdXQ7Civkr40gPCBib25lczsKK+efs+WNl+aouSA8IGhlYXRoOwor5ou05L2PIDwgaGl0Y2g7CivooKLkuosgPCBmb2xseTsKK+SquyA8IGFcLWNhcDsKK+SplSA8IGNsb2dzOwor5LiL6ZuoIDwgcmFpbnk7CivpqZrlpYcgPCBhbWF6ZTsKK+SouSA8IHN3aWZ0Owor5Zm05Ye6IDwgc3BvdXQ7Civkp6ogPCBzaXNzeTsKK+SmniA8IGV4dHJhOwor5KWTIDwgYVwtaG9lOwor5KSZIDwgZHJlZ3M7CivohbHlrZAgPCBzaW5ldzsKK+abtOmBsiA8IGxhdGVyOwor6buR6LKCIDwgc2FibGU7CivknZIgPCBhXC1zb3c7Civkmp8gPCBob3JuczsKK+ieuue1sumHmCA8IHNjcmV3Owor5JqJIDwgb1wtc2VlOwor5rKZ6b6NIDwgc2Fsb247Civkl5UgPCBiZW5kczsKK+S/neWnhiA8IG5hbm55Owor5ZSx6Kmp54+tIDwgY2hvaXI7Civmi4nkuIEgPCBsYXRpbjsKK+SRgSA8IGZhdHR5Owor5pyD6KuHIDwgdGFsa3M7CivohIjmkI8gPCBwdWxzZTsKK+SPsyA8IG9sZWluOwor5I+vIDwgbW9sZXM7CivkjaUgPCBzbW9reTsKK+mHkemrriA8IGJsb25kOwor5I2MIDwgYVwtamFyOwor5LiJ5Y2D5LqU55m+IDwgM1wtNTAwOwor5IyRIDwgdGlnaHQ7CivkjJAgPCByb3BlczsKK+SKuyA8IHNpbGt5Owor5bCP5bGLIDwgY2FiaW47CivkiIkgPCBhXC1mYW47CivlmI7lmI4gPCBxdWFjazsKK+SEpSA8IGFcLWdvZDsKK+SEoiA8IHBpb3VzOwor5L6/5aOrIDwgcGVubnk7CivogLbnqYwgPCBqZXN1czsKK+SDmSA8IHJvY2tzOwor6Yu855C0IDwgcGlhbm87CivpqI7lo6sgPCByaWRlcjsKK+aJi+WllyA8IGdsb3ZlOwor6Lef5YmNIDwgZnJvbnQ7Civkv67liaogPCBwcnVuZTsKK+O+miA8IGl0Y2h5Owor6aaZ5paZIDwgc3BpY2U7CivkvLrmnI0gPCBzZXJ2bzsKK+enn+e0hCA8IGxlYXNlOwor47yPIDwgYVwtYmFkOwor5bCW5aGUIDwgc3BpcmU7Civll7blmLAgPCBzZXJnZTsKK+axoem7niA8IHN0YWluOwor5rOV6YOOIDwgZnJhbmM7CivmtLvokZcgPCBhbGl2ZTsKK+O6gyA8IGFcLWRvZzsKK+O5uyA8IHB1cHB5Owor47mLIDwgYVwtY293Owor6IKF5riFIDwgcHVyZ2U7CivjuIMgPCBhXC1kb3Q7CivnmbzniaLpqLcgPCB3aGluZTsKK+a3ueaykiA8IGZsdXNoOwor56ys5Y2BIDwgdGVudGg7CivmmYLpq6YgPCB2b2d1ZTsKK+aJk+WRvCA8IHNub3JlOwor47C8IDwgZ3JlZWQ7CivppJjnh7wgPCBlbWJlcjsKK+OvtyA8IGRhdGVzOwor56ys5YWtIDwgc2l4dGg7CivjrqUgPCBzYWlsczsKK+e+veiOliA8IHF1aWxsOwor5bCB5ZywIDwgbWFub3I7CivpoYzop6MgPCBub3RlczsKK+mVt+mguOeTtiA8IGZsYXNrOwor5LiA6KGMIDwgcGFydHk7CivjqJcgPCBhbGVydDsKK+OogyA8IGFcLXJvdzsKK+Wwj+WQgyA8IHNuYWNrOwor5a6J5YWo55CG5LqL5pyDIDwgdGhlXC11Owor46eNIDwgYWxpa2U7Civnj43nj6AgPCBwZWFybDsKK+m8u+eFmSA8IHNudWZmOwor5rSL6JSlIDwgb25pb247CivnpLrlqIHpgYvli5UgPCByYWxseTsKK+i2o+WKhyA8IGZhcmNlOwor5L2O5buJIDwgY2hlYXA7Civlk4Dnl5sgPCBncmllZjsKK+esrOS6lCA8IGZpZnRoOwor56ys5LmdIDwgbmludGg7CivjobYgPCBkd2VsbDsKK+OhkCA8IGZsYWdzOwor46GMIDwgYVwtaGF0Owor46GHIDwgY29sYXI7CivmnInnt5ogPCB3aXJlZDsKK+OeviA8IGFcLW51bjsKK+OelSA8IGNoaXBzOwor456SIDwgbHVzdHk7CivmiLLliocgPCBkcmFtYTsKK+i8ieiyqOaxvei7iiA8IGxvcnJ5Owor572p6KGrIDwgc21vY2s7CivjlqQgPCB3cmF0aDsKK+OVjiA8IGNhdmVzOwor55q655yJ6aCtIDwgc2Nvd2w7Civjk50gPCBhXC1sYXc7Civjk4EgPCBhXC1uZXQ7CivjkqkgPCBuYWtlZDsKK+OSjCA8IGFsb25nOwor546H55u0IDwgZnJhbms7CivjkLEgPCBidXNoeTsKK+aZr+ixoSA8IHNjZW5lOwor6LGh54mZIDwgaXZvcnk7Civllp3lj7EgPCBjaGlkZTsKK+eQtOW8piA8IGNob3JkOwor542O56ugIDwgbWVkYWw7CivlrZDmiL8gPCBvdmFyeTsKK+aAquiqlSA8IGZyZWFrOwor5rex5bqmIDwgZGVwdGg7CivljYjppJAgPCBsdW5jaDsKK+eNteeKrCA8IGhvdW5kOwor55CG5oOzIDwgaWRlYWw7CivogL3mk7EgPCB0YXJyeTsKK+aXhemkqCA8IGhvdGVsOwor6aas5L6GIDwgbWFsYXk7CivppqzkvJUgPCBncm9vbTsKK+Wkp+m5vyA8IG1vb3NlOwor6IGW5b6SIDwgc2FpbnQ7CivkuJbnlYwgPCB3b3JsZDsKK+S8iuaWr+iYreaVmSA8IGlzbGFtOwor5rib5Y67IDwgbWludXM7CivkurrmgKcgPCBodW1hbjsKK+aFiOaCsiA8IG1lcmN5Owor6KuW6aGMIDwgdG9waWM7CivljaHou4ogPCB0cnVjazsKK+e9jOeynyA8IHBvcHB5Owor5paR6aasIDwgemVicmE7CivlpZfpkJggPCBjaGltZTsKK+WuiOWAmSA8IGFiaWRlOwor5p2/5bKpIDwgc2xhdGU7CivpoK3nmq4gPCBzY2FscDsKK+WNkeizpCA8IGxvd2x5Owor5Y2H6LW3IDwgaG9pc3Q7CivmtYHmtarogIUgPCByb3ZlcjsKK+iyneWvpyA8IGJlbmluOwor5peL6L2JIDwgd2hpcmw7CivngYzmnKjlj6IgPCBzY3J1YjsKK+aXpeiomCA8IGRpYXJ5Owor5LmD5pivIDwgdG9cLWJlOwor5paw6L+RIDwgbmV3bHk7CivlkLjmsKMgPCBzbmlmZjsKK+iqmOmZtyA8IHNuYXJlOwor5p2T5a2QIDwgc2Nvb3A7CivmhJ/lrpggPCBzZW5zZTsKK+acrOW9sSA8IHVtYnJhOwor5Lq65ZOhIDwgc3RhZmY7CivnuozoqIIgPCByZW5ldzsKK+abtOaUuSA8IGFsdGVyOwor5ZCJ5pmu6LO95Lq6IDwgZ3lwc3k7CivmlLbppIogPCBhZG9wdDsKK+aAqueVsCA8IHdlaXJkOwor6LKT5ZKqIDwga2l0dHk7CivmsrzmvqQgPCBnbGFkZTsKK+eijuW4g+ainSA8IHNocmVkOwor5rGh56miIDwgbmFzdHk7CivkuInmnIggPCBtYXJjaDsKK+WFp+WcqOeahCA8IGlubmVyOwor6Zu76YO1IDwgZW1haWw7Civli53pgY4gPCBleGNlbDsKK+itieeroCA8IGJhZGdlOwor5rW35ZywIDwgaGFpdGk7Civpm7fpgZQgPCByYWRhcjsKK+mssemHkemmmSA8IHR1bGlwOwor5aSx6KqkIDwgbGFwc2U7CivpgorpmpsgPCBsaW1pdDsKK+eLgueGsSA8IGNyYXplOwor5LqU5Y2BIDwgZmlmdHk7Civpm6rojITnhZkgPCBjaWdhcjsKK+adseS6rCA8IHRva3lvOwor5q+S6JuHIDwgdmlwZXI7CivpoIzmrYwgPCBjYXJvbDsKK+WSleWalSA8IGdydW50Owor5LiA5omTIDwgZG96ZW47Civoqabph5EgPCBhc3NheTsKK+mgreaaiCA8IGRpenp5Owor5ZC556yb6ICFIDwgcGlwZXI7CivkuIDlt7TmjowgPCBzcGFuazsKK+eEpum7niA8IGZvY3VzOwor57Wx5rK76ICFIDwgcnVsZXI7Civnupbntq0gPCBmaWJlcjsKK+S6i+S7tiA8IGV2ZW50Owor6YCX6bueIDwgY29tbWE7Civlkoblk64gPCBncm93bDsKK+WRvOWPq+iBsiA8IHdob29wOwor6YKP6LyvIDwgbG9naWM7Civmm7Tlo54gPCB3b3JzZTsKK+W6p+WPs+mKmCA8IG1vdHRvOwor5LiJ56ic6Y+hIDwgcHJpc207CivkuK3lnIsgPCBjaGluYTsKK+WkmuiRiSA8IGxlYWZ5Owor5LiA5bGkIDwgbGF5ZXI7Civnh7vogokgPCBiYWNvbjsKK+aToumZniA8IGV4YWx0Owor5oSb5YWL5pav5YWJIDwgeFwtcmF5Owor5aSn6IW/IDwgdGhpZ2g7CivmnKzkurogPCBpXC1cKG1lOwor6Z+75paHIDwgdmVyc2U7CivnhorospMgPCBwYW5kYTsKK+aWkee+miA8IGdvcmFsOwor55+u5aKp5aKpIDwgcHVkZ3k7CivokaHokIQgPCBncmFwZTsKK+eNjuWTgSA8IGF3YXJkOwor6buP5L2PIDwgY2xpbmc7Civlj6/mgJUgPCBhd2Z1bDsKK+mBjumBkyA8IGFpc2xlOwor56Sm5belIDwgbWluZXI7CivmrYzorKAgPCBjaGFudDsKK+aymeaLiSA8IHNhbGFkOwor5paX56+3IDwgY2xvYWs7CivmnIjku70gPCBtb250aDsKK+mbm+iPiiA8IGRhaXN5Owor5YyF56mAIDwgbWFpemU7CivpmL/niL7ms5UgPCBhbHBoYTsKK+mAvOi/qyA8IGZvcmNlOwor5aqS5LuLIDwgbWVkaWE7Civlk6rkuIDlgIsgPCB3aGljaDsKK+aVmee+qSA8IGNyZWVkOwor5ZCI6IKh57eaIDwgdHdpbmU7CivpoIHlsqkgPCBzaGFsZTsKK+eRnuWFuOS6uiA8IHN3ZWRlOwor5Y6t5oOhIDwgbG9hdGg7Civkvb/nvp7mhKcgPCBhYmFzaDsKK+aYj+aalyA8IGR1c2t5Owor5q+U546HIDwgcmF0aW87CivpnI7nnLwgPCBibGluazsKK+aZtOWkqSA8IHN1bm55Owor55S35a2Q5rCjIDwgbWFubHk7Civkvb/lqJvmqIIgPCBhbXVzZTsKK+aciSA8IGhhdmU7Civnn6UgPCBrbm93Owor6L+ZIDwgdGhpczsKK+efnCA8IHBpdHk7Civlv5kgPCBidXN5Owor5p2lIDwgY29tZTsKK+i/kSA8IG5lYXI7CivpgZMgPCBwYXRoOwor5LmfIDwgYWxzbzsKK+aXtiA8IHRpbWU7CivlubQgPCB5ZWFyOwor5567IDwgbG9vazsKK+i+uiA8IGVkZ2U7CivlsLEgPCBqdXN0Owor6YKjIDwgdGhhdDsKK+eUnyA8IGxpZmU7Civoh6ogPCBzZWxmOwor556sIDwgd2luazsKK+i/hyA8IHBhc3M7CivlvqogPCBvYmV5Owor5b6eIDwgZnJvbTsKK+WkmiA8IG11Y2g7Civlpb0gPCBnb29kOwor6LW3IDwgcmlzZTsKK+WPqiA8IG9ubHk7CivkvZwgPCBtYWtlOwor5b2TIDwgYmVhcjsKK+W9oiA8IGZvcm07CivlvIAgPCBvcGVuOwor5omLIDwgaGFuZDsKK+W8sSA8IHdlYWs7CivmnKwgPCByb290Owor5aS0IDwgaGVhZDsKK+ecnyA8IHJlYWw7CivpnaIgPCBmYWNlOwor5YWsIDwgZmFpcjsKK+WQjCA8IHNhbWU7CivliqggPCBtb3ZlOwor6ZW/IDwgbG9uZzsKK+i8iSA8IGxvYWQ7CivlsIYgPCB3aWxsOwor6LqrIDwgYm9keTsKK+mrmCA8IGhpZ2g7CivmioogPCBob2xkOwor55ulIDwgd2FzaDsKK+aciCA8IG1vb247Civnp40gPCBzZWVkOwor6LuNIDwgYXJteTsKK+i7iiA8IGNhcnQ7Civpg6ggPCBwYXJ0Owor5ZCNIDwgbmFtZTsKK+eariA8IHNraW47CivmnLogPCBkZXNrOwor57uZIDwgZ2l2ZTsKK+etiSA8IHJhbms7CivluqcgPCBzZWF0Owor5b6IIDwgdmVyeTsKK+acgCA8IG1vc3Q7CivlupcgPCBzaG9wOwor6LqNIDwgc2tpcDsKK+i1sCA8IHdhbGs7Civlm5sgPCBmb3VyOwor6ZeoIDwgZ2F0ZTsKK+S4nCA8IGVhc3Q7CivluoEgPCBoYWxsOwor6KW/IDwgd2VzdDsKK+W5syA8IGZsYXQ7CivlkKwgPCBoZWFyOwor5bm4IDwgbHVjazsKK+i5tCA8IGtpY2s7CivkupQgPCBmaXZlOwor5bi3IDwgdGVudDsKK+W4tiA8IGJlbHQ7CivluIwgPCByYXJlOwor6LiKIDwgbGVhcDsKK+S5piA8IGJvb2s7CivkuZ0gPCBuaW5lOwor6LezIDwganVtcDsKK+i3ryA8IHJvYWQ7Civnl6kgPCB0aGluOwor5rS7IDwgbGl2ZTsKK+W3piA8IGxlZnQ7Civlt6MgPCBuZXN0Owor6KGoIDwgc2hvdzsKK+i3nyA8IGhlZWw7Civnl5sgPCBwYWluOwor55eVIDwgc2NhcjsKK+eXkiA8IGl0Y2g7CivmhJ8gPCBmZWVsOwor6LazIDwgZm9vdDsKK+mHkSA8IGdvbGQ7CivkvZUgPCB3aGF0Owor5pu0IDwgbW9yZTsKK+eWiyA8IHJvbGw7CivlgZogPCB3b3JrOwor6K6hIDwgcGxhbjsKK+eOiyA8IGtpbmc7CivlkIQgPCBlYWNoOwor55WZIDwgc3RvcDsKK+eVjyA8IGZlYXI7CivnlLcgPCBtYWxlOwor6aOOIDwgd2luZDsKK+W0lyA8IHBvc3Q7Civmr5sgPCBoYWlyOwor5bOwIDwgcGVhazsKK+eIsSA8IGxvdmU7Civnk6YgPCB0aWxlOwor6LOjIDwgc2VsbDsKK+izgyA8IHJlbnQ7CivosrggPCBsZW5kOwor5bK4IDwgYmFuazsKK+e7kyA8IGtub3Q7CivlsqwgPCBjYXBlOwor5rWBIDwgZmxvdzsKK+iypyA8IHBvb3I7CivpnZIgPCBibHVlOwor566hIDwgcGlwZTsKK+i/niA8IGpvaW47CivpmJ8gPCB0ZWFtOwor5bGRIDwgYml0czsKK+mihiA8IG5lY2s7CivlsYggPCBiZW5kOwor5bC+IDwgdGFpbDsKK+WNiiA8IGhhbGY7CivlgJkgPCB3YWl0Owor5q2lIDwgc3RlcDsKK+a3sSA8IGRlZXA7CivljLogPCBhcmVhOwor5bCLIDwgc2VlazsKK+eQgyA8IGJhbGw7CivlkYogPCB0ZWxsOwor5a+4IDwgaW5jaDsKK+a7oSA8IGZpbGw7CivmnY4gPCBwbHVtOwor5oGvIDwgcmVzdDsKK+WvkiA8IGNvbGQ7Civlr4QgPCBzZW5kOwor5Y+WIDwgdGFrZTsKK+WupCA8IHJvb207CivlrpsgPCBzZWVtOwor5a2pIDwgYmFieTsKK+W5vyA8IHdpZGU7CivnjokgPCBqYWRlOwor54GrIDwgZmlyZTsKK+iugCA8IHJlYWQ7Civorb0gPCBmYW1lOwor5YiZIDwgcnVsZTsKK+WksSA8IGxvc2U7CivljIUgPCB3cmFwOwor54y2IDwgbGlrZTsKK+iQvSA8IGZhbGw7CivmtY4gPCBoZWxwOwor6KyhIDwgc2luZzsKK+e8liA8IGtuaXQ7CivosIggPCB0YWxrOwor5ouJIDwgcHVsbDsKK+eLvCA8IHdvbGY7CivmnYAgPCBraWxsOwor5auMIDwgaGF0ZTsKK+WFiyA8IGdyYW07CivlhrIgPCBzb2FyOwor5o6oIDwgcHVzaDsKK+ensCA8IGNhbGw7CivoqaYgPCB0ZXN0Owor5Y+3IDwgbWFyazsKK+S6miA8IGFzaWE7CivmuK8gPCBwb3J0Owor6IisIDwgc29ydDsKK+eIqiA8IGNsYXc7CivliJogPCBoYXJkOwor6ZmGIDwgbGFuZDsKK+ehriA8IHN1cmU7CivlhbcgPCB0b29sOwor5aiBIDwgcG9tcDsKK+e6vyA8IGxpbmU7Civop6YgPCBidXR0Owor6KeSIDwgaG9ybjsKK+eHkiA8IGJ1cm47CivlprsgPCB3aWZlOwor6ZyAIDwgbmVlZDsKK+mFkiA8IHdpbmU7Civpk4EgPCBpcm9uOwor6KaXIDwgcGVlazsKK+WMuyA8IGN1cmU7CivopbIgPCByYWlkOwor54WuIDwgY29vazsKK+WcnyA8IHNvaWw7Civova8gPCBzb2Z0Owor54WkIDwgY29hbDsKK+WllyA8IGNhc2U7CivmiLcgPCBkb29yOwor6IOMIDwgYmFjazsKK+aalyA8IGRhcms7CivpobsgPCBtdXN0Owor6KO4IDwgYmFyZTsKK+agkSA8IHRyZWU7CivmsokgPCBzaW5rOwor6IGMIDwgZHV0eTsKK+e7hiA8IGZpbmU7Civoo5wgPCBtZW5kOwor6KKiIDwgcm9iZTsKK+aXgSA8IHNpZGU7CivlobUgPCBkdXN0Owor5aGpIDwgc2FsdDsKK+atjCA8IHNvbmc7CivngYwgPCBwb3VyOwor5aGAIDwgd2FsbDsKK+WgpCA8IGRpa2U7CivmgbYgPCBldmlsOwor5aCGIDwgaGVhcDsKK+aFoiA8IHNsb3c7CivloIAgPCBjYXZlOwor6J+7IDwgYW50czsKK+iXjyA8IGhpZGU7Civln4sgPCBidXJ5Owor5r65IDwgY2FsbTsKK+WeoiA8IGRpcnQ7Civono0gPCBtZWx0Owor5r2uIDwgdGlkZTsKK+aVkSA8IHNhdmU7CivkuJ0gPCBzaWxrOwor6b2KIDwgZXZlbjsKK+m8uyA8IG5vc2U7CivmvKwgPCBzb2FrOwor6byTIDwgZHJ1bTsKK+a8jyA8IGxlYWs7CivlvZUgPCBjb3B5Owor6YGHIDwgbWVldDsKK+iIuSA8IHNoaXA7Civpu7QgPCBtb2xkOwor5ru0IDwgZHJpcDsKK+mbqCA8IHJhaW47Civom5kgPCBmcm9nOwor5ruRIDwgc2xpcDsKK+m6uyA8IGhlbXA7CivomqQgPCBmbGVhOwor6bm/IDwgZGVlcjsKK+aymSA8IHNhbmQ7CivlmZsgPCBiaXRlOwor5ouNIDwgY2xhcDsKK+aOiSA8IHR1cm47Civlk60gPCB3ZWVwOwor5ZiGIDwgc2lnaDsKK+WNiCA8IG5vb247CivljaEgPCBjYXJkOwor6ZuqIDwgc25vdzsKK+a3tSA8IGd1bGY7CivmtrwgPCBjb29sOwor5Yi6IDwgc3RhYjsKK+iWqiA8IGZ1ZWw7CivpsbwgPCBmaXNoOwor5ZaYIDwgcGFudDsKK+ebmCA8IHRyYXk7CivolpQgPCByb3NlOwor5p62IDwgcmFjazsKK+asviA8IGl0ZW07CivmtaogPCB3YXZlOwor6JWpIDwgcG9uZDsKK+a0qiA8IHZhc3Q7CivplYcgPCB0b3duOwor5rWEIDwgcHVyZTsKK+aXhSA8IHRyaXA7CivllL4gPCBzcGl0Owor6aqoIDwgYm9uZTsKK+WUliA8IGR1bWI7CivptIkgPCBjcm93Owor5ZSHIDwgbGlwczsKK+azsyA8IGRpdmU7Civlk7IgPCB3aXNlOwor5ZOpIDwgbWlsZTsKK+WcoyA8IGhvbHk7Civps6UgPCBiaXJkOwor5pmTIDwgZGF3bjsKK+ayvCA8IGxha2U7Civohb8gPCBsZWdzOwor5o6iIDwgZmluZDsKK+iRpiA8IHJlZWQ7CivmsaAgPCBwb29sOwor6JGJIDwgbGVhZjsKK+adnyA8IGJpbmQ7CivlkYYgPCBkdWxsOwor5ZC7IDwga2lzczsKK+WQuSA8IGJsb3c7CivmsI8gPCBjbGFuOwor562+IDwgc2lnbjsKK+awiCA8IGZlbHQ7CivlpbYgPCBtaWxrOwor6I+pIDwgaGVyYjsKK+WPoiA8IGJ1c2g7CivmjIIgPCBoYW5nOwor6IiqIDwgc2FpbDsKK+aLsyA8IGZpc3Q7CivkuZggPCByaWRlOwor5Z2AIDwgc2l0ZTsKK+avhiA8IGJlYXQ7CivprYIgPCBzb3VsOwor5LmUIDwgdGFsbDsKK+eyriA8IGZvb2Q7CivmlY8gPCBmYXN0Owor6IyOIDwgc3RlbTsKK+mbtiA8IHplcm87Civli74gPCBob29rOwor5LmDIDwgdGhlbjsKK+aKrCA8IGxpZnQ7Civoi5QgPCBtb3NzOwor5YaSIDwgcmlzazsKK+aqoyA8IG1hc3Q7Civpl60gPCBzaHV0Owor56KXIDwgYm93bDsKK+WJpSA8IHBlZWw7Civom4sgPCBlZ2dzOwor5L+DIDwgdXJnZTsKK+adsCA8IGhlcm87CivoiJ8gPCBib2F0Owor6L+fIDwgbGF0ZTsKK+i1liA8IHJlbHk7Civpp5IgPCBjb2x0Owor6aa0IDwgdGFtZTsKK+iGnSA8IGtuZWU7Civmi5YgPCBkcmFnOwor5piPIDwgZHVzazsKK+aIkiA8IHdhcm47CivpobUgPCBwYWdlOwor5LqVIDwgd2VsbDsKK+iEhyA8IHJpYnM7CivkuY8gPCBsYWNrOwor6IOeIDwgd29tYjsKK+aiqCA8IHBlYXI7CivphbggPCB0YXJ0Owor5qG2IDwgcGFpbDsKK+e7qSA8IHNwaW47Civmk6YgPCB3aXBlOwor5q63IDwgbWFueTsKK+iAlSA8IHBsb3c7CivmmpYgPCB3YXJtOwor6ZSBIDwgbG9jazsKK+egjSA8IGhhY2s7CivmhYggPCBraW5kOwor5765IDwgc291cDsKK+merSA8IHdoaXA7CivnvqggPCBlbnZ5Owor5pKkIDwgb21pdDsKK+etuSA8IGNoaXA7CivmnZYgPCBjYW5lOwor6ZywIDwgaGFpbDsKK+a7iyA8IGdyb3c7CivosLEgPCBsaXN0Owor5LiYIDwgaGlsbDsKK+adhiA8IHBvbGU7CivpmoggPCBjb3ZlOwor57qCIDwgZWRpdDsKK+WUiSA8IGFsYXM7CivnrLwgPCBjYWdlOwor57mqIDwgZHJhdzsKK+e5qSA8IHJvcGU7Civnn78gPCBtaW5lOwor6ZWWIDwgZGFydDsKK+WFhiA8IG9tZW47CivmiqsgPCB3ZWFyOwor5YC6IDwgZGVidDsKK+WgoSA8IGZvcnQ7CivpooIgPCBsYXVkOwor57WGIDwgbG9vcDsKK+mSiSA8IG5haWw7Civlk4QgPCBjb2F4Owor6ZODIDwgYmVsbDsKK+WlkSA8IGRlZWQ7Civmh5IgPCBsYXp5Owor54yOIDwgaHVudDsKK+aRuiA8IGZvbGQ7CivnrosgPCBub3RlOwor5o2yIDwgY3VybDsKK+engyA8IGJhbGQ7CivpuK0gPCBkdWNrOwor5ZC8IDwgcm9hcjsKK+equiA8IHBlZXA7Civlj6AgPCBwaWxlOwor6YqRIDwgbWlsbDsKK+mAuCA8IGZsZWU7CivotLEgPCBtZWFuOwor54uuIDwgbGlvbjsKK+WmriA8IG1haWQ7CivnqpEgPCBraWxuOwor5oW+IDwgbHVzdDsKK+eltyA8IHByYXk7CivouYQgPCBob29mOwor54OkIDwgYmFrZTsKK+WwrCA8IGxpbXA7CivpgLEgPCB3ZWVrOwor5oCgIDwgaWRsZTsKK+iDtiA8IGdsdWU7CivmorMgPCBjb21iOwor5ZWkIDwgYmVlcjsKK+mFvyA8IGJyZXc7CivmjaMgPCBodWxsOwor5ZmiIDwgbW9hbjsKK+eqnyA8IGhvbGU7CivlhZEgPCBjYXNoOwor5rK4IDwgYm9pbDsKK+eYviA8IHJhc2g7Civlpp4gPCBnaXJsOwor5bicIDwgZmxhZzsKK+iVviA8IGJ1ZHM7Civpk4UgPCBsZWFkOwor6ZSjIDwgZ29uZzsKK+WXpiA8IHN1Y2s7CivovbQgPCBheGxlOwor5raVIDwgdGVhcjsKK+WQhiA8IGJhd2w7CivogYsgPCBkZWFmOwor5YufIDwgbGV2eTsKK+eagiA8IHNvYXA7Civon7kgPCBjcmFiOwor5ZSgIDwgY2hhdDsKK+WVgyA8IGduYXc7CivnvpQgPCBsYW1iOwor6ZSIIDwgcnVzdDsKK+iFkyA8IGNhbGY7CivpqqEgPCBtdWxlOwor6YaHIDwgcmljaDsKK+e6rCA8IHdvb2Y7Civom6QgPCBjbGFtOwor5ZGxIDwgd2FpbDsKK+aIjiA8IGFybXM7CivolLwgPCBsdXNoOwor56SBIDwgcmVlZjsKK+mXqSA8IGJvbHQ7Civot5sgPCBsYW1lOwor5YGMIDwgdGh1czsKK+eujSA8IGhvb3A7Civon6AgPCBjb2lsOwor5o6CIDwgaGVmdDsKK+mBkCA8IGFmYXI7CivlkKAgPCBiYXJrOwor6Ju+IDwgbW90aDsKK+iAmCA8IHdlZWQ7Civon74gPCB0b2FkOwor562PIDwgcmFmdDsKK+mypCA8IGNhcnA7CivoiosgPCB0YXJvOwor6bmqIDwgd3JlbjsKK+iclSA8IG1vbHQ7CivnhIogPCB3ZWxkOwor6ICZIDwgcmFrZTsKK+e8hCA8IHNlYWw7CivmvKkgPCBlZGR5Owor6aW1IDwgYmFpdDsKK+iwkSA8IGplZXI7Civpoo8gPCBjaGluOwor6IquIDwgdGlueTsKK+eSqCA8IGdlbXM7Civms7UgPCBwdW1wOwor6LGMIDwgcGVhczsKK+WgkSA8IG1vYXQ7CivnlrUgPCBmbGF3Owor5qaIIDwgcGFsbTsKK+msgyA8IG1hbmU7Civlkp0gPCBoaXNzOwor6YKLIDwgcmFnczsKK+iDpCA8IGhlaXI7CivnspUgPCBsZWVzOwor5oyeIDwgZmxvZzsKK+mVqyA8IGxhbXA7CivpmIQgPCBsb3RzOwor6ZSMIDwgemluYzsKK+WWmSA8IGJlYWs7CivogpsgPCBhbnVzOwor55eCIDwgc2NhYjsKK+m4oiA8IGtpdGU7Civova0gPCB5b2tlOwor5rS1IDwgdHJ1ZTsKK+azhSA8IHN3aW07Civnn74gPCBhbHVtOwor6JqpIDwgd29ybTsKK+m4tyA8IGhhd2s7CivogIsgPCBhZ2VkOwor5Z2oIDwgbHVtcDsKK+eWsSA8IGFjbmU7CivniKggPCBvdmVuOwor5ouKIDwgc2xhcDsKK+mqnyA8IGdlbGQ7CivlnLkgPCB0b21iOwor6b6IIDwgZ3VtczsKK+mYiyA8IGZldWQ7CivphbAgPCBhY3lsOwor55ajIDwgd2FydDsKK+epkSA8IGZhcm07CivnpLsgPCBjdWx0Owor5L2kIDwga2F3YTsKK+m6uCA8IGJyYW47Civoj5YgPCBpcmlzOwor5auxIDwgbGFkeTsKK+iwnSA8IGJyYWc7CivmsJYgPCBuZW9uOwor6LeWIDwgc29sZTsKK+iaiyA8IGduYXQ7Civlgb4gPCBydWluOwor55aSIDwgc2ljazsKK+WZjSA8IGNoZXc7CivmtLMgPCBkYW1wOwor54KxIDwgc29vdDsKK+iGqiA8IHBvcms7Civnu7IgPCBjb3JkOwor5a6AIDwgcm9vZjsKK+W4tumcsiA8IGRld3k7CivoloTlkb0gPCBcKHVzdTsKK+WKn+e4viA8IGZlYXQ7CivmmrTkuoIgPCByaW90Owor54ib5rOlIDwgb296ZTsKK+aXpeacnyA8IGRhdGU7Civlp6jlqr0gPCBhdW50Owor5LyK5ouJ5YWLIDwgaXJhcTsKK+W5veiwtyA8IGRlbGw7CivmlZnnmocgPCBwb3BlOwor5ZCR5LiLIDwgZG93bjsKK+mAn+ihjCA8IHJ1c2g7CivmnInog73lipsgPCBhYmxlOwor6YCZ6KOhIDwgaGVyZTsKK+e8uuWPoyA8IG5pY2s7Civljp/lrZAgPCBhdG9tOwor54uC5ZCgIDwgaG93bDsKK+W/g+aDhSA8IG1vb2Q7Civph47lhZQgPCBoYXJlOwor5Z+66YeRIDwgZnVuZDsKK+Wfg+exs+eIviA8IGVtaXI7Civnn7PniYcgPCBzbGFiOwor5ZKW5ZWh6aSoIDwgY2FmZTsKK+WGsOmOriA8IGljZWQ7Civnhr7nhrEgPCBnbG93Owor55+z54GwIDwgbGltZTsKK+earumerSA8IGxhc2g7CivlhrfphbcgPCBncmltOwor56Gs5bmjIDwgY29pbjsKK+WHneimliA8IGdhemU7CivmlZnmtL4gPCBzZWN0Owor5YWs6ZueIDwgY29jazsKK+inkuiJsiA8IHJvbGU7CivnupbluqYgPCBzaXplOwor5aWJ5om/IDwgZmF3bjsKK+mcsum9kuiAjOeskSA8IGdyaW47CivoqrLmlocgPCB0ZXh0Owor6ZW36Z20IDwgYm9vdDsKK+eJouWbuiA8IGZpcm07Civnmb7pnYggPCBsYXJrOwor6YCa6KGM56iFIDwgdG9sbDsKK+eOieicgOm7jSA8IGNvcm47CivpgI/ntIUgPCByb3N5Owor5pW45pOaIDwgZGF0YTsKK+ipqeatjCA8IHBvZW07CivlsI/mr5von7IgPCBzbHVnOwor5qiC6ZqKIDwgYmFuZDsKK+awo+WRsyA8IG9kb3I7CivnhKHnpq4gPCBydWRlOwor6YO95biCIDwgY2l0eTsKK+ilv+iWhCA8IGNha2U7CivmnIDkuLvopoEgPCBtYWluOwor6Zuq5pKsIDwgc2xlZDsKK+mBqOa4uCA8IHJvYW07Civmr5LlrrMgPCBiYW5lOwor54y25LuW5beeIDwgdXRhaDsKK+e0sOiDniA8IGNlbGw7CivljZHliqMgPCBiYXNlOwor5b6p5Y6fIDwgaGVhbDsKK+WIpeeahCA8IGVsc2U7CivlhazosawgPCBib2FyOwor6Kq/5a2QIDwgdHVuZTsKK+ecvOeciyA8IHNvb247CivpnaLlhbcgPCBtYXNrOwor5byn5b2iIDwgYXJjaDsKK+S9v+WPl+WCtyA8IGh1cnQ7CivnmKbplbcgPCBzbGltOwor6Iqx6YKKIDwgbGFjZTsKK+Whq+a7vyA8IGNyYW07Civoq77kup4gPCBub2FoOwor5aSW5aWXIDwgY29hdDsKK+mVt+ilqiA8IGhvc2U7Civnq4vmlrnpq5QgPCBjdWJlOwor6ZW36KKNIDwgZ293bjsKK+W8t+WnpiA8IHJhcGU7CivnhafmlpkgPCB0ZW5kOwor5o6h6YKRIDwgZmllZjsKK+aOoOmBjiA8IGZsaXQ7CivngbDoibIgPCBncmF5Owor55m96aqo6aCCIDwgY29vdDsKK+e0sOeciyA8IHBlZXI7Civpu7YgPCBtb2xlOwor6KSq6ImyIDwgZmFkZTsKK+m6miA8IGJ1Y2s7Civpganmh4kgPCBzdWl0Owor6bqMIDwgc3RhZzsKK+m6gyA8IHRpbGw7CivpuYYgPCBteW5hOwor5LiA6KeS6YqA5bmjIDwgZGltZTsKK+WJneaOiSA8IHBhcmU7Civpg7Xku7YgPCBtYWlsOwor556R5oOzIDwgbXVzZTsKK+mBiuaIsiA8IGdhbWU7Civnr4Dpu54gPCBub2RlOwor6aivIDwgbG91ZDsKK+mnvSA8IGdyZXk7CivmjbLou7ggPCByZWVsOwor6aWMIDwgZmVlZDsKK+aVo+WHuiA8IHNoZWQ7Civpo6EgPCBtZWFsOwor5bei56m0IDwgbGFpcjsKK+a0i+Wog+WogyA8IGRvbGw7CivpmL/mm7wgPCBvbWFuOwor5bug5a2QIDwgeWFyZDsKK+i6sumBvyA8IHNodW47CivnhrHlipsgPCBoZWF0Owor6ZieIDwgdmVpbjsKK+S4i+S4gOasoSA8IG5leHQ7Civmt7rpu4PoibIgPCBidWZmOwor6ZeGIDwgYm9zczsKK+ewveiovCA8IHZpc2E7Civps7Tlj6sgPCBob290Owor6ZWpIDwgcGljazsKK+mVlSA8IGZ1c2U7CivpkaIgPCBmaWxlOwor6ZCpIDwgbGVuczsKK+aUtuWJsiA8IHJlYXA7CivntrLlrZQgPCBtZXNoOwor6Zuc5LqCIDwgbWVzczsKK+aOieiQvSA8IGZsb3A7Civpo7Lpo5/nmYLppIogPCBkaWV0Owor6Kmp5Lq6IDwgYmFyZDsKK+Wkp+iii+WtkCA8IHNhY2s7CivooajosaEgPCBpZGVhOwor6IiS6YGpIDwgY296eTsKK+iLseeVnSA8IGFjcmU7CivmraXkvJAgPCBwYWNlOwor6L2XIDwgZmFpbDsKK+aOpee4qyA8IHNlYW07CivlhazniZsgPCBidWxsOwor57KX56CCIDwgZ3JpdDsKK+WFrOeItSA8IGR1a2U7Civot7wgPCBiZW50Owor5Ye656ef6LuKIDwgdGF4aTsKK+i3siA8IGhvb2Q7Civoj5zllq4gPCBtZW51Owor5qmr5qiRIDwgYmVhbTsKK+iztSA8IGdpZnQ7CivooZPoqp4gPCB0ZXJtOwor5Ymb5YuBIDwgYm9sZDsKK+ihmuihlSA8IGxhbmU7Civoib7ntaggPCBtb3hhOwor6KqnIDwgaHVnZTsKK+innSA8IGdvcmU7CivlhYjopovogIUgPCBzZWVyOwor6Iqx55O2IDwgdmFzZTsKK+igrSA8IGJlZXM7CivmqZ/mmbogPCB0YWN0Owor5YK+6IG9IDwgaGFyazsKK+ieiSA8IHdhc3A7CivpkJjpoK0gPCBob3VyOwor6JiSIDwgXDoxNDM7Civol58gPCB2aW5lOwor54K45b2IIDwgYm9tYjsKK+WbnuiBsiA8IGVjaG87Civok6sgPCBkb2NrOwor6Kej5YeNIDwgdGhhdzsKK+iQnCA8IGM1aDg7Civoj74gPCBiZWV0Owor6ZW35qeNIDwgcGlrZTsKK+WFreaciCA8IGp1bmU7Civlg7HnlKggPCBoaXJlOwor5ZyT55ukIDwgZGlzazsKK+WcsOeNhCA8IGhlbGw7CivniLXlo6voiJ4gPCBqYXp6Owor6Zi/5YCRIDwgYW1lbjsKK+iFtiA8IG1lYXQ7CivohLIgPCB1cmVhOwor6Lev6YKKIDwgY3VyYjsKK+imluWcliA8IHZpZXc7CivmkofljrsgPCBza2ltOwor6L6y5aW0IDwgc2VyZjsKK+iJvua7i+eXhSA8IGFpZHM7CivluLPllq4gPCBiaWxsOwor6I2J5Z2qIDwgbGF3bjsKK+aQtuWlqiA8IHNuYXA7Civpm7vnh4jms6EgPCBidWxiOwor56uBIDwgYm9yZTsKK+epnCA8IHJpY2U7CivnprggPCBydW1wOwor5YO55qy+IDwgY29zdDsKK+aoo+W8jyA8IHR5cGU7CivmkI3lrrMgPCBoYXJtOwor5qih5byPIDwgbW9kZTsKK+ebn+WPiyA8IGFsbHk7Civnn7sgPCB0b2lsOwor55a855ebIDwgYWNoZTsKK+aok+W7giA8IGxvZnQ7Civnm67nnqrlj6PlkYYgPCBzdHVuOwor5bGB6KmxIDwgc2hpdDsKK+mPiOi3ryA8IGxpbms7CivnjLblpKfmm7ggPCBqdWRlOwor5L2O6Z+zIDwgYmFzczsKK+eUqOiGsyA8IGRpbmU7CivnrJHoqbEgPCBqb2tlOwor5bGx576KIDwgZ29hdDsKK+ertuizvSA8IHJhY2U7CivnrKjom4sgPCBmb29sOwor5bKp55+zIDwgcm9jazsKK+eVpeeivCA8IGNvZGU7CivmtrQgPCBkYXViOwor6LyD5bCRIDwgbGVzczsKK+eZvuWQiCA8IGxpbHk7CivohbDogokgPCBsb2luOwor5Zyw5bi2IDwgem9uZTsKK+mWo+S4iyA8IHNpcmU7Civpvo3pqqggPCBrZWVsOwor5aSn6aCt6YeYIDwgdGFjazsKK+S/nee+hSA8IHBhdWw7CivoibLlvakgPCB0aW50Owor5qqNIDwgaWxleDsKK+anuSA8IHNwYXI7CivmjbLluLYgPCB0YXBlOwor5qSRIDwgb3ZhbDsKK+mNjemHkSA8IGdpbGQ7CivmjIfmqJkgPCBub3JtOwor6KGd5pKeIDwgZGFzaDsKK+afoyA8IHNpbGw7CivlsqnmvL8gPCBsYXZhOwor5p+CIDwgaGVsbTsKK+aPoeS9jyA8IGdyaXA7CivmnJggPCB3YW5lOwor5ZyT5bGL6aCCIDwgZG9tZTsKK+aTqyA8IHR1Y2s7CivnrZbnlaUgPCBwbG90Owor5pGyIDwgcmF6ZTsKK+aQmCA8IHByb3A7Civkup7pursgPCBmbGF4Owor5o6eIDwgZWFzeTsKK+WciOWllyA8IHRyYXA7Civpm5nog57og44gPCB0d2luOwor57GD5ZyIIDwgcmluZzsKK+iGveaxgSA8IGdhbGw7CivmhrAgPCB3aWx5Owor5oCzIDwgd2lsZDsKK+aOoeS8kCA8IGZlbGw7CivkuIDloYrpurUgPCBsb2FmOwor6Zu75qmf5Y+K6Zu75a2Q5a245bel56iL5bir6IGv5ZCI5pyDIDwgaWVlZTsKK+WAn+asviA8IGxvYW47CivliLDvuY3kuYvkuIogPCBvbnRvOwor6KKW5Y+jIDwgY3VmZjsKK+WFqOmrlOS6uuWToSA8IGNyZXc7Civkvb/nlKjogIUgPCB1c2VyOwor56eY6a2vIDwgcGVydTsKK+WDp+S+tiA8IG1vbms7CivlrbsgPCBsYXN0Owor5ouW5ouJIDwgaGF1bDsKK+WqiiA8IHN0YXI7CivlqLggPCB1Z2x5Owor6YGg56iL55uj5o6nIDwgcm1vbjsKK+WcqO+5jeS5i+S4rSA8IGFtaWQ7CivlnI3kvY8gPCBnaXJkOwor5aekIDwgbWF0ZTsKK+ajjeajkiA8IGNsdWI7Civmi43miZMgPCBmbGFwOwor6aO+6YeYIDwgc3R1ZDsKK+WBj+W3riA8IGJpYXM7CivpqrDlrZAgPCBkaWNlOwor6IGW6KmpIDwgaHltbjsKK+WkluWwj+iFvyA8IHNoaW47Civpi6roqK0gPCBwYXZlOwor5ZC9IDwgJydvbScnOwor6JuL55m955+zIDwgb3BhbDsKK+aer+iQjiA8IHdpbHQ7CivliJwgPCBjaG9wOwor5YiTIDwgdHJpbTsKK+S4gOWIhumMoiA8IGNlbnQ7CivnlrLlgKYgPCB0aXJlOwor6LOi6IO9IDwgc2FnZTsKK+a1t+i7jSA8IG5hdnk7Civoh63lkbMgPCBmdW1lOwor5L6cIDwgbGllczsKK+S8sSA8IHRob3U7Civlgbblg48gPCBpZG9sOwor5bCP6LW36YeN5qmfIDwgamFjazsKK+i3qOW6piA8IHNwYW47Civks7wgPCBndWxsOwor5p6c6IKJIDwgcHVscDsKK+SxtCA8IHR1bmE7Civkr5UgPCBib255Owor5ZG96YGLIDwgZmF0ZTsKK+Wtl+evgCA8IGJ5dGU7CivnvoXppqwgPCByb21lOwor6ICD6KmmIDwgZXhhbTsKK+SnuyA8IGRvdmU7CivlgI3loZQgPCBiZXRhOwor5ZyT6YyQ6auUIDwgY29uZTsKK+aCoOmWkiA8IGVhc2U7CivkvK/niLUgPCBlYXJsOwor5ZGo6YGKIDwgdG91cjsKK+ShgCA8IG51ZGU7CivkoI8gPCBmZWV0Owor5Jq9IDwgbmV3czsKK+eQteeQtiA8IGx1dGU7CivkmYogPCBhcmlkOwor6Iag5Y23IDwgZmlsbTsKK+SWrSA8IGdydWI7CivlsIjnlKjpm4bmiJDpm7vot68gPCBhc2ljOwor5JK6IDwgY2xheTsKK+WTgeiEqyA8IHBpbnQ7CivlsI/ls7YgPCBpc2xlOwor6JaE6ZynIDwgbWlzdDsKK+S9leaZgiA8IHdoZW47Civlj6PpoK0gPCBvcmFsOwor5Luk54uAIDwgd3JpdDsKK+SBhiA8IGV5ZXM7CivkgYUgPCByYWdlOwor6JWo6aGeIDwgZmVybjsKK+SAgCA8IGN1cHM7Civjv5kgPCBmdWxsOwor4765IDwgbGVhbjsKK+aKk+S9jyA8IGdyYWI7CivonILonJzphZIgPCBtZWFkOwor5qC45b+DIDwgY29yZTsKK+axuumspSA8IGR1ZWw7CivosYbohZAgPCB0b2Z1Owor5ZKS5721IDwgZGFtbjsKK+OyuyA8IHN1bms7CivjsrQgPCBtaW5kOwor47KcIDwgcnVnczsKK+OwqyA8IGdsYWQ7CivjsJ8gPCBob3BlOwor466kIDwgcGluZTsKK+icguaIvyA8IGhpdmU7CivjrpIgPCB3b29kOwor46uxIDwgbWlsZDsKK+mmrOW7hCA8IGJhcm47Civkup7nlbYgPCBhZGFtOwor57+F6IaAIDwgd2luZzsKK+mHkeWxrOiWhOeJhyA8IGZvaWw7CivkvIrmnJcgPCBpcmFuOwor5Li7576pIDwgXC1pc207CivpuqXoir0gPCBtYWx0Owor54u56LC3IDwgZ2xlbjsKK+eJoem5vyA8IGhhcnQ7CivlnKjkuYvkuIogPCBvdmVyOwor5ZCN6KmeIDwgbm91bjsKK+WtmOaguSA8IHN0dWI7CivpoK3ohabmuIXmpZogPCBzYW5lOwor45qnIDwgYWdpbDsKK+WPsuipqSA8IGVwaWM7CivosrTlqabkurogPCBkYW1lOwor5a625ZySIDwgaG9tZTsKK+eJm+mjsiA8IGd1bHA7Civos7rlvpcgPCBlYXJuOwor6LGO55C0IDwgaGFycDsKK+S4gOe+pCA8IGdhbmc7Civpn7Poqr8gPCB0b25lOwor5p2/5qKdIDwgbGF0aDsKK+iytOaXjyA8IGxvcmQ7Civlk4jmrKAgPCB5YXduOwor6LGs5rK5IDwgbGFyZDsKK+mMq+WuiSA8IHppb247CivnjbXniakgPCBwcmV5Owor57SF5a+255+zIDwgcnVieTsKK+eKr+imjyA8IGZvdWw7Civou5/mnKjloZ4gPCBjb3JrOwor5rK56IaPIDwgYmFsbTsKK+ePreaIvyA8IGphaWw7CivmlpHpu54gPCBzcG90Owor5rWu5qiZIDwgYnVveTsKK+WutuS8mSA8IGNoYXA7CivlvozpnaIgPCByZWFyOwor5aSp6bWdIDwgc3dhbjsKK+aVtOm9iiA8IHRpZHk7CivlnKjmsLTmraXooYwgPCB3YWRlOwor5q+N6aasIDwgbWFyZTsKK+Wtl+WeiyA8IGZvbnQ7CivlronlhaggPCBzYWZlOwor57KJ57SF6ImyIDwgcGluazsKK+WtpOWWriA8IGxvbmU7CivmnKjmobYgPCBjYXNrOwor6aO+5bi2IDwgc2FzaDsKK+iAgeaSviA8IGxhb3M7CivmnKbmnKcgPCBibHVyOwor6Kqy6aGMIDwgdGFzazsKK+ePoOWtkCA8IGJlYWQ7CivlkbzlkbzogbIgPCB3aGlyOwor5b+r5q2l6LeRIDwgdHJvdDsKK+azoueJuSA8IGJhdWQ7Civph47npr0gPCBmb3dsOwor5pqI55ypIDwgZGF6ZTsKK+iqquisiuiAhSA8IGxpYXI7Civmn5DkupsgPCBzb21lOwor5by36aKoIDwgZ2FsZTsKK+m6u+acqCA8IG51bWI7Civpmarlr6nlnJggPCBqdXJ5Owor6Z+B57mpIDwgcmVpbjsKK+WQpuaxuiA8IHZldG87CivmspnnmbwgPCBzb2ZhOwor5LuW5YCRIDwgdGhleTsKK+azoeayqyA8IGZvYW07CivniZvogokgPCBiZWVmOwor5LiD5pyIIDwganVseTsKK+S4gOacjSA8IGRvc2U7CivosYblrZAgPCBiZWFuOwor5aq95aq9IDwgbWFtYTsKK+aVj+mKsyA8IGtlZW47CivmsrnmsrkgPCBvaWx5Owor5YyF6KOdIDwgcGFjazsKK+axoeeXlSA8IGJsb3Q7CivnjJvmkp4gPCBzbGFtOwor6Z2i572pIDwgdmVpbDsKK+mereeXlSA8IHdlbHQ7Civkup7kuIEgPCBhZGVuOwor542o5aWPIDwgc29sbzsKK+aykOa1tCA8IGJhdGg7CivmnIDlpb0gPCBiZXN0Owor6KqT6KmeIDwgb2F0aDsKK+WLleipniA8IHZlcmI7Civpq5jniL7lpKvnkIMgPCBnb2xmOwor5pq05b6SIDwgdGh1ZzsKK+axveawtCA8IHNvZGE7Civnn63opaogPCBzb2NrOwor5byV6K2JIDwgY2l0ZTsKK+mIleW4tiA8IGJvbmQ7CivliY3pnaIgPCBmb3JlOwor6Zmj6aKoIDwgZ3VzdDsKK+aDoeWKoyA8IHZpbGU7Civmr5vnt5ogPCB5YXJuOwor5YyX57SEIDwgbmF0bzsKK+mHjeaTiiA8IGJhbmc7CivmraXoqr8gPCBnYWl0Owor6YCa6aKoIDwgYWlyeTsKK+iuiuaPmyA8IHZhcnk7Civokrznmb0gPCBwYWxlOwor5rC05ru0IDwgZHJvcDsKK+e5lOW4g+apnyA8IGxvb207Civpm7voqbHpiLTogbIgPCBidXp6Owor5pS26JePIDwga2VlcDsKK+mbu+e3miA8IHdpcmU7CivkuIDlkLkgPCBwdWZmOwor5q+b55quIDwgcGVsdDsKK+mBi+iyuyA8IGZhcmU7Civlo4HombEgPCB0aWNrOwor5pKl6ZaLIDwgcG9rZTsKK+i/t+mZoyA8IG1hemU7Civol6XkuLggPCBwaWxsOwor5YWJ57qW5YiG5L2I5pW45pOa5o6l5Y+jIDwgZmRkaTsKK+mcsueHnyA8IGNhbXA7Civmr5LniakgPCBwZXN0Owor5LiAIDwgb25lOwor5Lq6IDwgbWFuOwor5oiRIDwgb3VyOwor5aSnIDwgYmlnOwor5LiKIDwgdG9wOwor5L2gIDwgeW91Owor5Y+vIDwgbWF5Owor5aW5IDwgc2hlOwor5aSpIDwgc2t5Owor6ICMIDwgYW5kOwor54S2IDwgeWVzOwor5rKhIDwgbm90Owor5pelIDwgc3VuOwor5b2pIDwgaHVlOwor5Y2BIDwgdGVuOwor55SoIDwgdXNlOwor55y8IDwgZXllOwor6KeBIDwgc2VlOwor6ICBIDwgb2xkOwor5LikIDwgdHdvOwor5aSWIDwgb3V0Owor5rOVIDwgbGF3Owor54K5IDwgZG90Owor55ucIDwgcm9iOwor5YW2IDwgaGlzOwor5YS/IDwgc29uOwor5pawIDwgbmV3Owor5bqKIDwgYmVkOwor55qGIDwgYWxsOwor5rW3IDwgc2VhOwor5bCRIDwgZmV3Owor5bi9IDwgaGF0Owor5Y+rIDwgY3J5Owor5q27IDwgZGllOwor5pS+IDwgcHV0Owor5LuKIDwgbm93Owor6LWkIDwgcmVkOwor55WiIDwgZW5kOwor5oiYIDwgd2FyOwor6LO8IDwgYnV5Owor55O2IDwganVnOwor6K+3IDwgYXNrOwor5LqkIDwgbWl4Owor5ZCDIDwgZWF0Owor6L+QIDwgcnVuOwor572RIDwgbmV0Owor6aOeIDwgZmx5Owor54y/IDwgYXBlOwor54yrIDwgY2F0Owor54yqIDwgcGlnOwor5Z2QIDwgc2l0Owor6KyCIDwgc2F5Owor54uXIDwgZG9nOwor5YiHIDwgY3V0Owor6KqkIDwgZXJyOwor54OtIDwgaG90Owor54mbIDwgY293Owor5L2OIDwgbG93Owor5LuNIDwgeWV0Owor6ISaIDwgbGVnOwor5aWIIDwgYnV0Owor5o6SIDwgcm93Owor5aOeIDwgYmFkOwor5rm+IDwgYmF5Owor5aKoIDwgaW5rOwor6KGTIDwgYXJ0Owor5r+YIDwgbXVkOwor5r+VIDwgd2V0Owor6ZyyIDwgZGV3Owor6b2iIDwgYWdlOwor6J2ZIDwgYmF0Owor6J2LIDwgd2F4Owor6bygIDwgcmF0Owor6JyCIDwgYmVlOwor5pGHIDwgd2FnOwor5rK5IDwgb2lsOwor6JeJIDwgbWF0Owor5rayIDwgc2FwOwor6JavIDwgeWFtOwor6ICzIDwgZWFyOwor5ZaLIDwgbmFnOwor5ZWcIDwgc2lwOwor5ZOAIDwgc2FkOwor5YawIDwgaWNlOwor5p2vIDwgY3VwOwor5rCjIDwgYWlyOwor6JCMIDwgYnVkOwor6YCUIDwgd2F5Owor6Iy2IDwgdGVhOwor5Y21IDwgZWdnOwor5pKtIDwgc293Owor6IeCIDwgYXJtOwor5qy3IDwgc29iOwor5YyaIDwgYm94Owor5pGpIDwgcnViOwor5YagIDwgY2FwOwor6Iq4IDwgcnVlOwor57yYIDwgaGVtOwor5p+TIDwgZHllOwor6Ia/IDwgcHVzOwor5qa7IDwgY290Owor5YaGIDwgeWVuOwor6IWQIDwgcm90Owor6ISCIDwgZmF0Owor5o+0IDwgYWlkOwor5ZO8IDwgaHVtOwor5YG1IDwgc3B5Owor6aGOIDwgamF3Owor572QIDwgamFyOwor5o23IDwgd2luOwor6ZynIDwgZm9nOwor5Lm+IDwgZHJ5Owor57ydIDwgc2V3Owor5oqaIDwgcGF0Owor5oyWIDwgZGlnOwor5omHIDwgZmFuOwor5LmeIDwgYmVnOwor6LWMIDwgYmV0Owor5qygIDwgb3dlOwor5rCbIDwgZ2FzOwor57egIDwgdGllOwor54KSIDwgZnJ5Owor6ZShIDwgdGluOwor5Z2RIDwgcGl0Owor5pKVIDwgcmlwOwor56OVIDwgaGl0Owor6LCOIDwgbGllOwor6YqcIDwgYml0Owor6LWLIDwgdGF4Owor5ZuKIDwgYmFnOwor5pCCIDwgaHVnOwor5byTIDwgYm93Owor5bqQIDwgaHV0Owor5q+vIDwgcnVnOwor6ZKlIDwga2V5Owor5panIDwgYXhlOwor6LmmIDwgaG9wOwor6L+iIDwgZmFyOwor6JqCIDwgYW50Owor6ZSEIDwgaG9lOwor5o2FIDwgamFiOwor5qGoIDwgb2FyOwor54u4IDwgZm94Owor54yWIDwgbWFkOwor6La+IDwgdG9lOwor6Ji4IDwgZGlwOwor55CmIDwgZ2VtOwor55W4IDwgb2RkOwor5Z2vIDwgZGFtOwor6bOdIDwgZWVsOwor5oCpIDwgc2h5Owor6bugIDwgc2x5Owor6ZSbIDwgYWR6Owor6bqLIDwgZWxrOwor6bONIDwgZmluOwor5YiNIDwgbW93Owor5p+eIDwgb2FrOwor6Z6jIDwgdGFuOwor5YOWIDwgam95Owor576dIDwgcmFtOwor5Z+kIDwgYWRkOwor56m655m96bueIDwgZ2FwOwor5rGC5oSbIDwgd29vOwor5ZCM5L2NIDwgcGFyOwor54K655Sa6bq8IDwgd2h5Owor5Y+X5YiwIDwgZ2V0Owor5Y+v5LulIDwgY2FuOwor6YWS5buKIDwgYmFyOwor55S35a2p5a2QIDwgYm95Owor5ray5pm26aGv56S6IDwgbGNkOwor56C05biDIDwgcmFnOwor5by35ouJIDwgdHVnOwor54Sh6Iqx5p6cIDwgZmlnOwor57aT55SxIDwgdmlhOwor6Kit5rOVIDwgdHJ5Owor5aaC5L2VIDwgaG93Owor55y855WMIDwga2VuOwor5bm85424IDwgY3ViOwor6Zui5a2QIDwgaW9uOwor6LKT5Y+r6IGyIDwgbWV3Owor54Sm5rK5IDwgdGFyOwor6YCA5r2uIDwgZWJiOwor6b2jIDwgYWN0Owor54Gr6IW/IDwgaGFtOwor6bmLIDwgZW11Owor6Zmw5pqXIDwgZGltOwor57i95ZKMIDwgc3VtOwor6bSeIDwgb3dsOwor6bKVIDwgcm9lOwor6ay3IDwgcG90Owor6ayGIDwgbGF4Owor6auiIDwgd2lnOwor56CN5LyQIDwgaGV3Owor5Yi65o6iIDwgcHJ5Owor5bi45pil6JekIDwgaXZ5Owor6ZGvIDwgYXdsOwor54OP5ZCI5LmL55y+IDwgbW9iOwor5YmN5aSVIDwgZXZlOwor5aCF5p6cIDwgbnV0Owor6L2RIDwgcnV0Owor6Li2IDwgcGF3Owor5YWI55SfIDwgc2lyOwor5qyE5ZyIIDwgcGVuOwor5bCP57K+6Z2IIDwgZWxmOwor6Kaq5bGsIDwga2luOwor57Si5YW36KOd572uIDwgcmlnOwor5ouW6LuKIDwgdG93Owor5aGr5YWFIDwgcGFkOwor5YWs5YWx5rG96LuKIDwgYnVzOwor6JK0IDwgcG9kOwor6ICB5aSp54i6IDwgZ29kOwor6Zu26bue5YWtIDwgMFwuNjsKK+aoheaouSA8IGZpcjsKK+eUnOmFkiA8IHJ1bTsKK+e+hyA8IGlubjsKK+WHuuWDuSA8IGJpZDsKK+WCs+ecnyA8IGZheDsKK+iLpuaDsSA8IGFpbDsKK+WFrem7nuWFrSA8IDZcLjY7CivpqqjnvYggPCB1cm47Civou5/mr5sgPCBmdXI7CivnoLIgPCBndW47CivnmZkgPCBpbGw7CivovJXmiZMgPCB0YXA7CivlsI/osrsgPCB0aXA7CivmpobmqLkgPCBlbG07CivmvZogPCBnYXk7Civlt6XkvZwgPCBqb2I7CivogovpqqggPCByaWI7CivmpY4gPCBwZWc7CivmoqkgPCBob2Q7Civpq5TogrLppKggPCBneW07CivmnYUgPCB0dWI7CivkuIPpu57kupQgPCA3XC41Owor5LiD6bue5LqMIDwgN1wuMjsKK+WcsOWcliA8IG1hcDsKK+aUtSA8IHJhcDsKK+WLleeJqeWckiA8IHpvbzsKK+mshuW8myA8IHNhZzsKK+mkoemkhSA8IHBpZTsKK+WcluWDj+S6kuaPm+agvOW8jyA8IGdpZjsKK+WwhOe3miA8IHJheTsKK+mLuOmWiyA8IHNhdzsKK+aenOmGrCA8IGphbTsKK+WcjeWFnCA8IGJpYjsKK+WsmyA8IGFwdDsKK+eMtuWkquS6uiA8IGpldzsKK+aLluaKiiA8IG1vcDsKK+S5iOm7niA8IGFjZTsKK+Wwj+eLlyA8IHB1cDsKK+iyqOi7iiA8IHZhbjsKK+Wck+W9ouacqOadkCA8IGxvZzsKK+m7numgrSA8IG5vZDsKK+Wwjea6liA8IGFpbTsKK+WZtOWwhCA8IGpldDsKK+WCouS8mSA8IGd1eTsKK+S5oiA8IGxpZDsKK+mpouWtkCA8IGFzczsKK+mjm+ifsiA8IGJ1ZzsKK+ethuWwliA8IG5pYjsKK+ShnCA8IGNhcjsKK+m6pemFkiA8IGFsZTsKK+S/ruWlsyA8IG51bjsKK+SdhiA8IGhvZzsKK+acg+iyuyA8IGR1ZTsKK+S5vuiNiSA8IGhheTsKK+SMoiA8IHJhdzsKK+SLniA8IHdlYjsKK+SKkSA8IHBheTsKK+WxouWKoCA8IHBseTsKK+S5neS4g+W5tCA8ICcnOTc7CivlnJPlvaLpurXljIUgPCBidW47CivlronmlL4gPCBsYXk7CivjnLggPCBzaW47CivoqIjkuZjou4ogPCBjYWI7CivpoIzoqZ4gPCBvZGU7CivohKvmsKfmoLjns5bmoLjphbggPCBkbmE7CivmnZzmnb7lrZDphZIgPCBnaW47CivkvZXkurogPCB3aG87Civnh5XpuqUgPCBvYXQ7Civmr43pm54gPCBoZW47CivnpKbnn7MgPCBvcmU7CivmgJXnvp4gPCBjb3k7Civku7vkvZUgPCBhbnk7CivmtYHmhJ8gPCBmbHU7Civlk47llrIgPCBoZXk7CivmlrnoiJ8gPCBhcms7CivniIbogbIgPCBwb3A7CivmlLbosrsgPCBmZWU7Civmr43nvoogPCBld2U7CivlsI/kvJnlrZAgPCBsYWQ7CivliKXph50gPCBwaW47CivlubPpjYsgPCBwYW47CivkuI0gPCBubzsKK+S4uiA8IGRvOwor5LmLIDwgJydzOwor5b6DIDwgZ287Civkuo4gPCBpbjsKK+WmgiA8IGlmOwor5oiWIDwgb3I7CivlroMgPCBpdDsKK+WSsSA8IHVzOwor5ZOfIDwgYWg7Civll6ggPCBoaTsKK+W9nSA8IHlpOwor6ZSxIDwgb3o7CivpkpQgPCBtZDsKK+S8siA8IHdlOwor6ZWkIDwgcGE7CivplY4gPCBucDsKK+mTuSA8IGxyOwor5ZCR5LiK5ZywIDwgdXA7CivplL8gPCBlczsKK+mUnSA8IHRjOwor6ZSVIDwgYWM7CivlhYnnop8gPCBjZDsKK+e5hCA8IGJlOwor57OOIDwgbW07CivnsqggPCBobTsKK+eygSA8IGttOwor57G1IDwgZG07CivlmofogbIgPCBobzsKK+elgiA8IGhlOwor5oiR55qEIDwgbXk7Civll4ggPCBvaDsKK+WSgSA8IHNvOwor5YWhIDwgaGc7CivlhZ4gPCBtZzsKK+WFnSA8IGRnOwor5pan6aCtIDwgYXg7CivkvZkgPCBpOwor5qi2IDwgYzsKK+S4gOWAiyA8IGE7CivmlL/lupzmqZ/pl5zplovmlL7ns7vntbHkupLpgKPnuL3liYcgPiBnb3Zlcm5tZW50XC1vcGVuXC1zeXN0ZW1cLWludGVyY29ubmVjdGlvblwtcHJvZmlsZTsKK+mbu+apn+WPiumbu+WtkOWtuOW3peeoi+W4q+iBr+WQiOacgyA+IGllZWU7CivlnIvpmpvpm7voqbHpm7vloLHoq67oqaLlp5Tlk6HmnIMgPiBpbnRlcm5hdGlvbmFsXC1jb25zdWx0YXRpdmVcLWNvbW1pdHRlZVwtZm9yXC10ZWxlcGhvbmVcLWFuZFwtdGVsZWdyYXBoOwor6Zi/5LiN5L6G5o+QXC7pmL/kuI3pg73nhrHopb/mj5AgPiBhYmR1bGFpZGlcLWFtdWR1cmV4aXRpXC1cKGNoYWlybWFuXC1vZlwteGluamlhbmdcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor5Y+v5pOm5a+r5Y+v57eo56iL56WH6K6A5a2Y5YSy5ZmoID4gZXByb207CivlnIvpmpvpm7vloLHpm7voqbHlkqjoqaLlp5Tlk6HmnIMgPiBjY2l0dDsKK+iAtuepjOWfuuedo+acq+S4luiBluW+kuaVmeacgyA+IHRoZVwtY2h1cmNoXC1vZlwtamVzdXNcLWNocmlzdFwtb2ZcLWxhdHRlclwtZGF5XC1zYWludHM7CivljYHlhITkvY3lhYPku6XlpKrntrLntaHoga/nm58gPiBnaWdhYml0XC1ldGhlcm5ldFwtYWxsaWFuY2U7CivmqpTmoYjovYnpgIHlrZjlj5blj4rnrqHnkIYgPiBmaWxlXC10cmFuc2ZlclwsXC1hY2Nlc3NcLWFuZFwtbWFuYWdlbWVudDsKK+mdnuWwjeeoseW8j+aVuOaTmueUqOaItue3miA+IGFzeW1tZXRyaWNhbFwtZGlnaXRhbFwtc3Vic2NyaWJlclwtbGluZTsKK+iHqOaZgueahOacrOWcsOeuoeeQhuaOpeWPoyA+IGludGVyaW1cLWxvY2FsXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7Civoga/pgqbpm7vkv6HkuqTpgJrlp5Tlk6HmnIMgPiBmZWRlcmFsXC1jb21tdW5pY2F0aW9uc1wtY29tbWlzc2lvbjsKK+mbu+iFpui8lOWKqeioreioiOiIh+e5quWcliA+IGNvbXB1dGVyXC1haWRlZFwtZGVzaWduXC1hbmRcLWRyYXdpbmc7CivlhYnnupbliIbkvYjlvI/mlbjmk5rku4vpnaIgPiBmaWJlclwtZGlzdHJpYnV0ZWRcLWRhdGFcLWludGVyZmFjZTsKK+WFiee6luWIhuaVo+W8j+izh+aWmeS7i+mdoiA+IGZpYmVyXC1kaXN0cmlidXRlZFwtZGF0YVwtaW50ZXJmYWNlOwor5pW45pOa6Y+I6Lev6YCj5o6l6K2Y5Yil56K8ID4gZGF0YVwtbGlua1wtY29ubmVjdGlvblwtaWRlbnRpZmllcjsKK+mbu+iFpuiIh+mbu+ipseezu+e1seaVtOWQiCA+IGNvbXB1dGVyXC10ZWxlcGhvbnlcLWludGVncmF0aW9uOwor5aGe54i+57at5Lqe5YWL576F5Zyw5Lqe6KqeID4gc2VyYm9cLWNyb2F0aWFuXC1cKGxhbmd1YWdlXCk7CivnpoHmraLmoLjmrablmajoqabpqZfmop3ntIQgPiBudWNsZWFyXC10ZXN0XC1iYW5cLXRyZWF0eTsKK+iAgemppeS8j+arquW/l+WcqOWNg+mHjCA+IFwobGl0XC5cKVwtYW5cLW9sZFwtc3RlZWRcLWluXC10aGVcLXN0YWJsZVwtc3RpbGxcLWFzcGlyZXNcLXRvXC1nYWxsb3BcLTEwMDBcLWxpOwor5LiN5YWl6JmO56m054SJ5b6X6JmO5a2QID4gaG93XC1jYW5cLXlvdVwtY2F0Y2hcLXRpZ2VyXC1jdWJzXC13aXRob3V0XC1lbnRlcmluZ1wtdGhlXC10aWdlcicnc1wtbGFpcjsKK+avlOS4iuS4jei2s+avlOS4i+acieS9mSA+IGZhbGxcLXNob3J0XC1vZlwtdGhlXC1iZXN0XC1idXRcLWJlXC1iZXR0ZXJcLXRoYW5cLXRoZVwtd29yc3Q7CivljJflpKfopb/mtIvlhazntITntYTnuZQgPiB0aGVcLW5vcnRoXC1hdGxhbnRpY1wtdHJlYXR5XC1vcmdhbml6YXRpb25cLVwobmF0b1wpOwor5LiN57aT5LiA5LqL5LiN6ZW35LiA5pm6ID4geW91XC1jYW4nJ3RcLWdhaW5cLWtub3dsZWRnZVwtd2l0aG91dFwtcHJhY3RpY2U7Civlu7rnq4vmraPlvI/lpJbkuqTpl5zkv4IgPiBmb3JtYWxseVwtZXN0YWJsaXNoXC1kaXBsb21hdGljXC1yZWxhdGlvbnM7Civnmb7otrPkuYvon7LmrbvogIzkuI3lg7UgPiBhXC1jZW50aXBlZGVcLWRpZXNcLWJ1dFwtbmV2ZXJcLWZhbGxzXC1kb3duOwor5a6J5YWo6IiH5Lqk5o+b5aeU5ZOh5pyDID4gc2VjdXJpdGllc1wtYW5kXC1leGNoYW5nZVwtY29tbXVuaWNhdGlvbjsKK+e2nOWQiOacjeWLmeaVuOS9jee2sue1oSA+IGludGVncmF0ZWRcLXNlcnZpY2VzXC1kaWdpdGFsXC1uZXR3b3JrOwor5pW06auU5pyN5YuZ5pW45L2N57ay6LevID4gaW50ZWdyYXRlZFwtc2VydmljZXNcLWRpZ2l0YWxcLW5ldHdvcms7CivnsKHllq7ntrLntaHnrqHnkIbljZTorbAgPiBzaW1wbGVcLW5ldHdvcmtcLW1hbmFnZW1lbnRcLXByb3RvY29sOwor5pW06auU5pW45L2N5pyN5YuZ57ay6LevID4gaW50ZWdyYXRlZFwtc2VydmljZVwtZGlnaXRhbFwtbmV0d29yazsKK+WFrOWFseS6pOaPm+mbu+ipsee2sui3ryA+IHB1YmxpY1wtc3dpdGNoZWRcLXRlbGVwaG9uZVwtbmV0d29yazsKK+i/keS5juWQjOatpeaVuOS9jemajuWxpCA+IHBsZXNpb2Nocm9ub3VzXC1kaWdpdGFsXC1oaWVyYXJjaHk7Civml6XmnKzpm7vloLHpm7voqbHlhazlj7ggPiBuaXBwb25cLXRlbGVncmFwaFwtYW5kXC10ZWxlcGhvbmU7Civlu6Pmkq3lkozmnKrnn6XmnI3li5nlmaggPiBicm9hZGNhc3RcLWFuZFwtdW5rbm93blwtc2VydmVyOwor55m+5bC65p2G6aCt5pu055uh5LiA5q2lID4gbWFrZVwtc3RpbGxcLWZ1cnRoZXJcLXByb2dyZXNzOwor5ZyL6Zqb6LKo5bmj5Z+66YeR57WE57mUID4gaW50ZXJuYXRpb25hbFwtbW9uZXRhcnlcLWZ1bmQ7CivlrqLmiLbmqZ/mnI3li5nlmajnkrDlooMgPiBjbGllbnRcLXNlcnZlclwtZW52aXJvbmVtZW50Owor6Zu75a2Q6YO15Lu25YKz6YCB5pyN5YuZID4gXChlXC1cKW1haWxcLWRlbGl2ZXJ5XC1zZXJ2aWNlOwor55So5oi25Yiw57ay57Wh55qE5o6l5Y+jID4gdXNlclwtbmV0d29ya1wtaW50ZXJmYWNlOwor5Lqe5rSy6IiH5aSq5bmz5rSL5Zyw5Y2AID4gYXNpYVwtcGFjaWZpY1wtcmVnaW9uOwor5Y2B5YSE5L2N5YWD5Lul5aSq57ay57WhID4gZ2lnYWJpdFwtZXRoZXJuZXQ7CivlhYnnupbliIbkvYjmlbjmk5rmjqXlj6MgPiBmZGRpOwor5LiN6KaL5qO65p2Q5LiN6JC95reaID4gbm90XC1zaGVkXC1hXC10ZWFyXC11bnRpbFwtb25lXC1zZWVzXC10aGVcLWNvZmZpblwtXC1cLXJlZnVzZVwtdG9cLWJlXC1jb252aW5jZWRcLXVudGlsXC1vbmVcLWlzXC1mYWNlZFwtd2l0aFwtZ3JpbVwtcmVhbGl0eTsKK+S4jeWIsOm7g+ays+W/g+S4jeatuyA+IG5vdFwtc3RvcFwtdW50aWxcLW9uZVwtcmVhY2hlc1wtdGhlXC1odWFuZ2hlXC1yaXZlclwtXC1cLW5vdFwtc3RvcFwtdW50aWxcLW9uZVwtcmVhY2hlc1wtb25lJydzXC1nb2FsOwor6ZaJ5aGe55y8552b5o2J6bq76ZuAID4gdHJ5XC10b1wtY2F0Y2hcLXNwYXJyb3dzXC13aXRoXC1vbmUnJ3NcLWV5ZXNcLWJsaW5kZm9sZGVkXC1cLVwtYWN0XC1ibGluZGx5Owor5pav54m55Yeh6Ku+5pmu5rSb5pavID4gc3RlcGhhbm9wb3Vsb3NcLVwoZWdcLFwtZm9ybWVyXC1jbGludG9uXC1haWRlXC1nZW9yZ2VcLXN0ZXBoYW5vcG91bG9zXCk7CivkurrmsJHoi7Hpm4TntIDlv7XnopEgPiBtb251bWVudFwtdG9cLXRoZVwtcGVvcGxlJydzXC1oZXJvZXNcLFwtYXRcLXRpYW5hbm1lblwtc3F1YXJlOwor5oyJ5LiL6JGr6JiG5rWu6LW355OiID4gc29sdmVcLW9uZVwtcHJvYmxlbVwtb25seVwtdG9cLWZpbmRcLWFub3RoZXJcLWNyb3BwaW5nXC11cDsKK+S4jeaVoui2iumbt+axoOS4gOatpSA+IGRhcmVcLW5vdFwtZ29cLW9uZVwtc3RlcFwtYmV5b25kXC10aGVcLXByZXNjcmliZWRcLWxpbWl0Owor5p2x5Y2X5Lqe5ZyL5a626IGv55ufID4gYXNlYW5cLVwoYXNzb2NpYXRpb25cLW9mXC1zb3V0aGVhc3RcLWFzaWFuXC1uYXRpb25zXCk7CivlpLHmlZfmmK/miJDlip/kuYvmr40gPiBcImZhaWx1cmVcLWlzXC10aGVcLW1vdGhlclwtb2ZcLXN1Y2Nlc3NcIlwtXChwcm92ZXJiXCk7CivntpPnh5/nrqHnkIblkozntq3orbcgPiBvcGVyYXRpb25zXC1hZG1pbmlzdHJhdGlvblwtYW5kXC1tYWludGVuYW5jZTsKK+aguOatpuWZqOeglOijveioiOWKgyA+IG51Y2xlYXJcLXdlYXBvbnNcLVwobWFudWZhY3R1cmluZ1wpXC1wcm9ncmFtOwor5pWZ5o6I55Wi56uf5piv5pWZ5o6IID4gcHJvZmVzc29yc1wtYXJlXC1cKGFmdGVyXC1hbGxcKVwtcHJvZmVzc29yczsKK+iZm+aTrOmAmumBk+aomeiqjOespiA+IHZpcnR1YWxcLWNoYW5uZWxcLWNvbm5lY3Rpb25cLWlkZW50aWZpZXI7CivkuJbnlYzmgKflj6TogIHllY/poYwgPiBhXC1wcm9ibGVtXC1hc1wtb2xkXC1hc1wtdGhlXC13b3JsZFwtaXRzZWxmOwor6Zu75L+h5pyN5YuZ5L6b5oeJ5ZWGID4gdGVsZWNvbW11bmljYXRpb25zXC1zZXJ2aWNlXC1wcm92aWRlcjsKK+WFrOeUqOS6pOaPm+mbu+ipsee2siA+IHB1YmxpY1wtc3dpdGNoZWRcLXRlbGVwaG9uZVwtbmV0d29yazsKK+S4reiPr+S6uuawkeWFseWSjOWciyA+IHRoZVwtcGVvcGxlJydzXC1yZXB1YmxpY1wtb2ZcLWNoaW5hOwor6YCa55So6LOH5rqQ6K2Y5Yil6JmfID4gdW5pdmVyc2FsXC1yZXNvdXJjZVwtaWRlbnRpZmllcjsKK+WOn+WtkOenkeWtuOWutumAmuWgsSA+IGpvdXJuYWxcLW9mXC1hdG9taWNcLXNjaWVudGlzdHM7CivotoXmlofku7blgrPovLjljZTlrpogPiBoeXBlcnRleHRcLXRyYW5zZmVyXC1wcm90b2NvbDsKK+i2heaWh+acrOWCs+i8uOWNlOWumiA+IGh5cGVydGV4dFwtdHJhbnNmZXJcLXByb3RvY29sOwor5a6i5oi25pyN5YuZ5Zmo57WQ5qeLID4gY2xpZW50XC1zZXJ2ZXJcLWFyY2hpdGVjdHVyZTsKK+WqkumrlOaOpeWPo+mAo+aOpeWZqCA+IG1lZGl1bVwtaW50ZXJmYWNlXC1jb25uZWN0b3I7CivpnaLlmq7lsI3osaHnmoTmioDooZMgPiBvYmplY3RcLW9yaWVudGVkXC10ZWNobm9sb2d5Owor6Z2e5ZCM5q2l5YKz6Ly45qih5byPID4gYXN5bmNocm9ub3VzXC10cmFuc2ZlclwtbW9kZTsKK+i2heaWh+acrOaomeiomOiqnuiogCA+IGh5cGVydGV4dFwtbWFya3VwXC1sYW5ndWFnZTsKK+WPjeiJpuiJh+W3oeiIquWwjuW9iCA+IGFudGlcLXNoaXBcLWNydWlzZVwtbWlzc2xlOwor55So5oi25Yiw57ay57Wh5o6l5Y+jID4gdXNlclwtbmV0d29ya1wtaW50ZXJmYWNlOwor5Lqe5rSy5aSq5bmz5rSL5Zyw5Y2AID4gYXNpYVwtcGFjaWZpY1wtcmVnaW9uOwor5aSa57Gz5bC85Yqg5YWx5ZKM5ZyLID4gZG9taW5pY2FuXC1yZXB1YmxpYzsKK+aSkuWTiOaLieS7peWNl+mdnua0siA+IHN1Ylwtc2FoYXJhblwtYWZyaWNhOwor5Zyo5aSn5aSa5pW45oOF5rOB5LiLID4gaW5cLW1vc3RcLWluc3RhbmNlczsKK+i2hemrmOmAn+S5meWkque2sui3ryA+IGdpZ2FiaXRcLWV0aGVybmV0Owor5be05biD5Lqe5paw5bm+5YWn5LqeID4gcGFwYXVcLW5ld1wtZ3VpbmVhOwor576F5a+G5q2Q6IiH5pyx6bqX6JGJID4gcm9tZW9cLWFuZFwtanVsaWV0Owor5aSq6Zm95b6u57O757Wx5YWs5Y+4ID4gc3VuXC1taWNyb3N5c3RlbXM7CivluJbmkpLnvoXlsLzov6blvozmm7ggPiAyXC10aGVzc2Fsb25pYW5zOwor5Lqe54i+55m85ZKM5aWn57Gz5YqgID4gYWxwaGFcLWFuZFwtb21lZ2E7CivluJbmkpLnvoXlsLzov6bliY3mm7ggPiAxXC10aGVzc2Fsb25pYW5zOwor6I6r5bC85Y2h6JCK5rqr5pav5Z+6ID4gbW9uaWNhXC1sZXdpbnNreTsKK+mYv+S8j+S8veW+t+e+heWumuW+iyA+IGF2b2dhZHJvJydzXC1sYXc7Civpm7vnupzoqr/liLbop6Poqr/lmaggPiBjYWJsZVwtbW9kZW07CivnrKzkuozmrKHkuJbnlYzlpKfmiLAgPiB3b3JsZFwtd2FyXC0yOwor5LuL6LOq6Kiq5ZWP5o6n5Yi25bGkID4gbWFjXC1sYXllcjsKK+S4jeefpeWkqemrmOWcsOWOmiA+IG5vdFwta25vd1wtdGhlXC1pbW1lbnNpdHlcLW9mXC1oZWF2ZW5cLWFuZFwtZWFydGhcLVwtXC1oYXZlXC1hblwtZXhhZ2dlcmF0ZWRcLW9waW5pb25cLW9mXC1vbmUnJ3NcLWFiaWxpdGllczsKK+eZvuiBnuS4jeWmguS4gOimiyA+IHNlZWluZ1wtZm9yXC1vbmVzZWxmXC1pc1wtYVwtaHVuZHJlZFwtdGltZXNcLWJldHRlclwtdGhhblwtaGVhcmluZ1wtZnJvbVwtb3RoZXJzOwor5LiN6LK75ZC554Gw5LmL5YqbID4gYXNcLWVhc3lcLWFzXC1ibG93aW5nXC1vZmZcLWR1c3RcLVwtXC1ub3RcLW5lZWRpbmdcLXRoZVwtc2xpZ2h0ZXN0XC1lZmZvcnQ7CivmspnliKnnp5Hku4Dntq3liKkgPiBnZW5lcmFsXC1zaGFsaWthc2h2aWxpXC1cKGhlYWRcLW9mXC11c1wtam9pbnRcLWNoaWVmc1wtb2ZcLXN0YWZmXCk7Civlr4TkuojlvojlpKfmnJ/mnJsgPiB0b1wtcGxhY2VcLWdyZWF0XC1ob3BlXC1vclwtZXhwZWN0YXRpb25cLW9uXC1cKHN0aFwpOwor5be054i+6IiN5aSr5pav5Z+6ID4gXChjaGFybGVuZVwpXC1iYXJzaGVmc2t5XCxcLXVzXC10cmFkZVwtbmVnb3RpYXRvcjsKK+e0hOWumuizh+ioiumAn+eOhyA+IGNvbW1pdHRlZFwtaW5mb3JybWF0aW9uXC1yYXRlXC1cKGZyYW1lXC1yZWxheVwpOwor6YCG5ZCR5pOB5aGe6YCa55+lID4gYmFja3dhcmRcLWV4cGxpY2l0XC1jb25nZXN0aW9uXC1ub3RpZmljYXRpb247CivliY3lkJHmk4HloZ7pgJrnn6UgPiBmb3J3YXJkXC1leHBsaWNpdFwtY29uZ2VzdGlvblwtbm90aWZpY2F0aW9uOwor576O5ZyL5buj5pKt5YWs5Y+4ID4gYWJjXC1cKGFtZXJpY2FuXC1icm9hZGNhc3RpbmdcLWNvcnBvcmF0aW9uXCk7Civlk4joo6Hmo67lj7Llr4bnibkgPiBoYXJyaXNvblwtc2NobWl0dFwtXChhcG9sbG9cLTFcLTdcLWFzdHJvbmF1dFwpOwor55Wi5YW25Yqf5LqO5LiA5b25ID4gYWNjb21wbGlzaFwtdGhlXC13aG9sZVwtdGFza1wtYXRcLW9uZVwtc3Ryb2tlOwor5pO65LqL5a+m6Kyb6YGT55CGID4gcHJlc2VudFwtdGhlXC1mYWN0c1wtYW5kXC1yZWFzb25cLXRoaW5nc1wtb3V0Owor5ZyL6Zqb6Zu75L+h6IGv55ufID4gaW50ZXJuYXRpb25hbFwtdGVsZWNvbW11bmljYXRpb25zXC11bmlvbjsKK+S4jeWPr+WQjOaXpeiAjOiqniA+IGNhbm5vdFwtYmVcLW1lbnRpb25lZFwtaW5cLXRoZVwtc2FtZVwtYnJlYXRoOwor5pyJ5b+X6ICF5LqL56uf5oiQID4gd2hlcmVcLXRoZXJlXC1pc1wtYVwtd2lsbFwsXC10aGVyZVwtaXNcLWFcLXdheTsKK+Wci+mam+aomea6lue1hOe5lCA+IGludGVybmF0aW9uYWxcLXN0YW5kYXJkc1wtb3JnYW5pemF0aW9uOwor55uu5YmN6YKE5LiN5riF5qWaID4gYXRcLXByZXNlbnRcLWl0XC1pc1wtc3RpbGxcLXVuY2xlYXJcLVwuXC5cLlwuOwor55a+55eF6aCQ6Ziy5Lit5b+DID4gXCh1XC5zXC5cKVwtY2VudGVyXC1mb3JcLWRpc2Vhc2VcLWNvbnRyb2w7Civmh4nnlKjnqIvlvI/ku4vpnaIgPiBhcHBsaWNhdGlvblwtcHJvZ3JhbW1pbmdcLWludGVyZmFjZTsKK+efruWtkOijoeaLlOWwh+i7jSA+IGNob29zZVwtdGhlXC1iZXN0XC1wZXJzb25cLWF2YWlsYWJsZTsKK+WPluW+l+Wkp+WtuOWtuOS9jSA+IHRvXC1vYnRhaW5cLWFcLXVuaXZlcnNpdHlcLWVkdWNhdGlvbjsKK+WvpuaZguaTjeS9nOeSsOWigyA+IHJlYWxcLXRpbWVcLW9wZXJhdGluZ1wtZW52aXJvbm1lbnQ7CivlnIvpmpvllYbmpa3mqZ/lmaggPiBpbnRlcm5hdGlvbmFsXC1idXNpbmVzc1wtbWFjaGluZXM7CivnrKblkIjnvo7lnIvliKnnm4ogPiBpblwtbGluZVwtd2l0aFwtYW1lcmljYW5cLWludGVyZXN0czsKK+i7n+mrlOWHuueJiOWNlOacgyA+IHNvZnR3YXJlXC1wdWJsaXNoZXJzXC1hc3NvY2lhdGlvbjsKK+advuS4i+mbu+awo+W3pealrSA+IG1hdHN1c2hpdGFcLWVsZWN0cm9uaWNzXC1pbmR1c3RyeTsKK+acjeWLmeW7o+WRiuWNlOitsCA+IHNlcnZpY2VcLWFkdmVydGlzZW1lbnRcLXByb3RvY29sOwor6Kqe6Z+z6YCa6KiK6YCa6YGTID4gdm9pY2VcLVwoY29tbXVuaWNhdGlvbnNcKVwtY2hhbm5lbDsKK+S4lueVjOiyv+aYk+e1hOe5lCA+IHd0b1wtXCh3b3JsZFwtdHJhZGVcLW9yZ2FuaXphdGlvblwpOwor5bi46KaP6YqF6Zu76Kmx57eaID4gb3JkaW5hcnlcLWNvcHBlclwtdGVsZXBob25lXC1saW5lOwor5ZCM5q2l5pW45L2N6ZqO5bGkID4gc3luY2hyb25vdXNcLWRpZ2l0YWxcLWhpZXJhcmNoeTsKK+S4iua1t+aIsuWKh+WtuOmZoiA+IHNoYW5naGFpXC10aGVhdHJpY2FsXC1pbnN0aXR1dGU7CivlgrPovLjmjqfliLbljZTlrpogPiB0cmFuc21pc3Npb25cLWNvbnRyb2xcLXByb3RvY29sOwor5YKz57Wx5Lit5ZyL6Yar6JelID4gY2hpbmVzZVwtdHJhZGl0aW9uYWxcLW1lZGljaW5lOwor5Zu65a6a6Jmb5pOs6YCj5o6lID4gcGVybWFuZW50XC12aXJ0dWFsXC1jb25uZWN0aW9uOwor6ZaL5pS+57O757Wx5LqS6YCjID4gb3Blblwtc3lzdGVtc1wtaW50ZXJjb25uZWN0aW9uOwor5YyX5Lqs6Jed6KGT5a246ZmiID4gYmVpamluZ1wtYWNhZGVteVwtb2ZcLWZpbmVcLWFydHM7CivkuI3nmbvlpKfpm4XkuYvloIIgPiBub3RcLWFwcGVhbFwtdG9cLXJlZmluZWRcLXRhc3RlOwor5YyX5Lqs6Kqe6KiA5a246ZmiID4gYmVpamluZ1wtbGFuZ3VhZ2VzXC1pbnN0aXR1dGU7CivlnLDlnYDop6PmnpDljZTorbAgPiBhZGRyZXNzXC1yZXNvbHV0aW9uXC1wcm90b2NvbDsKK+acrOWcsOeuoeeQhueVjOmdoiA+IGxvY2FsXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivnlbDmraXlgrPovLjmqKHlvI8gPiBhc3luY2hyb25vdXNcLXRyYW5zZmVyXC1tb2RlOwor6Zu76IWm6LyU5Yqp5pWZ5p2QID4gY29tcHV0ZXJcLWFpZGVkXC1pbnN0cnVjdGlvbjsKK+mbu+iFpui8lOWKqeW3peeoiyA+IGNvbXB1dGVyXC1haWRlZFwtZW5naW5lZXJpbmc7CivomZvmk6zpgJrpgZPpgKPmjqUgPiB2aXJ0dWFsXC1jaGFubmVsXC1jb25uZWN0aW9uOwor57ay57Wh566h55CG57O757WxID4gbmV0d29ya1wtbWFuYWdlbWVudFwtc3lzdGVtOwor5LiW55WM6KGb55Sf57WE57mUID4gd29ybGRcLWhlYWx0aFwtb3JnYW5pemF0aW9uOwor5YC85b6X5rOo5oSP55qE5pivID4gaXQnJ3NcLXdvcnRoXC1ub3RpbmdcLXRoYXRcLlwuXC47CivnkrDnkIPlrprkvY3ns7vntbEgPiBnbG9iYWxcLXBvc2l0aW9uaW5nXC1zeXN0ZW07Civlm6DnibnntrLmj5DkvpvllYYgPiBpbnRlcm5ldFwtc2V2aWNlXC1wcm92aWRlcjsKK+e2sue1oeaTjeS9nOezu+e1sSA+IG5ldHdvcmtcLW9wZXJhdGluZ1wtc3lzdGVtOwor5ZyW5YOP55So5oi25LuL6Z2iID4gZ3JhcGhpY2FsXC11c2VyXC1pbnRlcmZhY2U7CivpnaLlmq7lsI3osaHoqp7oqIAgPiBvYmplY3RcLW9yaWVudGVkXC1sYW5ndWFnZTsKK+WFseWQjOmWmOmBk+S7i+mdoiA+IGNvbW1vblwtZ2F0ZXdheVwtaW50ZXJmYWNlOwor57ay6Lev5L2c5qWt57O757WxID4gbmV0d29ya1wtb3BlcmF0aW5nXC1zeXN0ZW07CivlhaznnL7pm7vkv6HntrLot68gPiBwdWJsaWNcLXRlbGVwaG9uZVwtbmV0d29yazsKK+mdnuebiOWIqeeahOe1hOe5lCA+IG5vblwtcHJvZml0XC1vcmdhbml6YXRpb247CivoqIrmga/omZXnkIbns7vntbEgPiBtZXNzYWdlXC1oYW5kbGluZ1wtc3lzdGVtOwor5pW45a2X6KiC6LO857ea6LevID4gZGlnaXRhbFwtc3Vic2NyaWJlclwtbGluZTsKK+i+r+iovOWUr+eJqeS4u+e+qSA+IGRpYWxlY3RpY2FsXC1tYXRlcmlhbGlzbTsKK+e2sui3r+evgOm7nuS7i+mdoiA+IG5ldHdvcmtcLW5vZGVcLWludGVyZmFjZTsKK+ato+WcqOS4reWci+ioquWVjyA+IGR1cmluZ1wtYVwtdHJpcFwtdG9cLWNoaW5hOwor5YWr5bCP5pmC5bel5L2c5Yi2ID4gZWlnaHRcLWhvdXJcLXdvcmtpbmdcLWRheTsKK+a2iOaBr+mdiOmAmuS6uuWjqyA+IGFcLXdlbGxcLWluZm9ybWVkXC1zb3VyY2U7Civml6XmnKzntpPmv5/mlrDogZ4gPiBqYXBhbmVzZVwtZWNvbm9taWNcLW5ld3M7CivoqIrmga/lgrPpgZ7kuK3ku4sgPiBtZXNzYWdlXC10cmFuc2ZlclwtYWdlbnQ7Civpm7vohabovJTliqnoqK3oqIggPiBjb21wdXRlclwtYWlkZWRcLWRlc2lnbjsKK+aMgeS4jeWQjOaUv+imi+iAhSA+IFwocG9saXRpY2FsXClcLWRpc3NpZGVudDsKK+izh+aWmeWCs+mAgeacjeWLmSA+IGRhdGFcLWRlbGl2ZXJ5XC1zZXJ2aWNlOwor5LuL6LOq6Kiq5ZWP5o6n5Yi2ID4gbWVkaXVtXC1hY2Nlc3NcLWNvbnRyb2w7CivljbDluqblsLzopb/kup7oqp4gPiBpbmRvbmVzaWFuXC1cKGxhbmd1YWdlXCk7CivlpJrnqK7oqp7oqIDmlK/mjIEgPiBtdWx0aWxpbmd1YWxcLXN1cHBvcnQ7CivmjqXmlLblmajpnYjmlY/luqYgPiByZWNlaXZlclwtc2Vuc2l0aXZpdHk7CivmsJHml4/kuLvnvqnmg4Xnt5IgPiBuYXRpb25hbGlzdFwtZmVlbGluZ3M7CivlqpLpq5ToqKrllY/mjqfliLYgPiBtZWRpYVwtYWNjZXNzXC1jb250cm9sOwor5Zub5bm05Yi255qE5aSn5a24ID4gZm91clwteWVhclwtdW5pdmVyc2l0eTsKK+mCj+i8r+mPiOi3r+aOp+WItiA+IGxvZ2ljYWxcLWxpbmtcLWNvbnRyb2w7CivokKzntq3lpKnnvoXlnLDntrIgPiB3b3JsZFwtd2lkZVwtd2ViXC1cKHd3d1wpOwor5beh6L+05YiG5p6Q56uv5Y+jID4gcm92aW5nXC1hbmFseXNpc1wtcG9ydDsKK+WPquS4jemBjuW5vuW5tOWJjSA+IG9ubHlcLWFcLWZld1wteWVhcnNcLWFnbzsKK+S4gOeZvuS6lOWNgeWkmuW5tCA+IG1vcmVcLXRoYW5cLTE1MFwteWVhcnM7Civlk6XlgKvmr5Tkup7lpKflrbggPiBjb2x1bWJpYVwtdW5pdmVyc2l0eTsKK+iyv+aYk+S/neitt+S4u+e+qSA+IHRyYWRlXC1wcm90ZWN0aW9uaXNtOwor5Zyo5p+Q56iu56iL5bqm5LiKID4gdG9cLWFcLWNlcnRhaW5cLWV4dGVudDsKK+abvOW+ueaWr+eJuee3qOeivCA+IG1hbmNoZXN0ZXJcLWVuY29kaW5nOwor6KiK5qGG5YKz6YCB5pyN5YuZID4gZnJhbWVcLXJlbGF5XC1zZXJ2aWNlOwor6KiK5qGG5YKz6YCB57ay6LevID4gZnJhbWVcLXJlbGF5XC1uZXR3b3JrOwor6Zi/5q+U6KW/5bC85Lqe5Lq6ID4gYWJ5c3NpbmlhblwtXChwZXJzb25cKTsKK+S6nuWkque2k+WQiOe1hOe5lCA+IGFwZWNcLVwob3JnYW5pemF0aW9uXCk7Civou5/ku7bplovnmbzkurrlk6EgPiBzb2Z0d2FyZVwtZGV2ZWxvcGVyOwor5Zyo5YKz6Ly46YGO56iL5LitID4gd2hpbGVcLXRyYW5zbWl0dGluZzsKK+W/heS4jeWPr+Wwkee1hOaIkCA+IGFic29sdXRlXC1uZWNlc3NpdHk7Civnvo7lnIvoiKrnqbrlhazlj7ggPiBhbWVyaWNhblwtYWlybGluZXM7CivkuqTmj5vku6XlpKrntrLntaEgPiBzd2l0Y2hlZFwtZXRoZXJuZXQ7Civoq77osp3niL7lkozlubPnjY4gPiBub2JlbFwtcGVhY2VcLXByaXplOwor5LqU6KeS5aSn5qiT5a6Y5ZOhID4gcGVudGFnb25cLW9mZmljaWFsOwor6KiK5qGG5YKz6YCB6KuW5aOHID4gZnJhbWVcLXJlbGF5XC1mb3J1bTsKK+mYv+eIvuW3tOWwvOS6nuS6uiA+IGFsYmFuaWFuXC1cKHBlcnNvblwpOwor5LiN5YiG6Z2S57SF55qC55m9ID4gaW5kaXNjcmltaW5hdGVseTsKK+S4jeetiemCiuS4ieinkuW9oiA+IHNjYWxlbmVcLXRyaWFuZ2xlOwor57ay6Zqb57ay6Lev5Y2U5pyDID4gaW50ZXJuZXRcLXNvY2lldHk7CivkuInljYPliLDkupTljYPokKwgPiAzMFwtdG9cLTUwXC1taWxsaW9uOwor5LiA5YCL5Lit5ZyL5pS/562WID4gb25lXC1jaGluYVwtcG9saWN5Owor57ay57Wh6KaP5YqD5Lq65ZOhID4gbmV0d29ya1wtcGxhbm5lcjsKK+WFseS6q+S7peWkque2sue1oSA+IHNoYXJlZFwtZXRoZXJuZXQ7CivljaHntI3ntq3mi4nniL7op5IgPiBjYXBlXC1jYW5hdmVyYWw7CivljYDln5/ntrLot6/mioDooZMgPiBsYW5cLXRlY2hub2xvZ3k7CivolqnpgZTlp4bkvq/os73lm6AgPiBzYWRkYW1cLWh1c3NlaW47Civmkp7mk4rlvI/ljbDooajmqZ8gPiBpbXBhY3RcLXByaW50ZXI7Civmkp7mk4rlvI/miZPljbDmqZ8gPiBpbXBhY3RcLXByaW50ZXI7CivlhajnkIPmsKPlgJnljYfmuqsgPiBnbG9iYWxcLXdhcm1pbmc7CivmooXloZ7ov6rmlq/lpZTpprMgPiBtZXJjZWRlc1wtYmVuejsKK+Wlp+WFi+aLieiNt+mmrOW4giA+IG9rbGFob21hXC1jaXR5Owor6auY6YCf5LmZ5aSq57ay6LevID4gZmFzdFwtZXRoZXJuZXQ7Civlv6vpgJ/ku6XlpKrntrLntaEgPiBmYXN0XC1ldGhlcm5ldDsKK+S7peWkque2sue1oeerr+WPoyA+IGV0aGVybmV0XC1wb3J0Owor5Lqe5rSy6IiH5aSq5bmz5rSLID4gYXNpYVwtcGFjaWZpYzsKK+S4gOWNg+mbtuS6lOWNgeWEhCA+IDEwNVwtYmlsbGlvbjsKK+WQieeIvuWQieaWr+aWr+WdpiA+IGtpcmdoaXpzdGFuOwor5qau542y6Ku+6LKd54i+542OID4gbm9iZWxcLXByaXplOwor5LiJ5pyI5LqM5Y2B5LiJ6JmfID4gbWFyY2hcLTIzcmQ7CivmspLmnInnlJ/ogrLog73lipsgPiBpbmZlcnRpbGU7CivlnIvpmpvkupLoga/ntrLntaEgPiBpbnRlcm5ldDsKK+S4ieaciOS6jOWNgeS4gOiZnyA+IG1hcmNoXC0yMTsKK+WwiOeUqOmbhuaIkOmbu+i3ryA+IGFzaWM7CivlnJblg4/kupLmj5vmoLzlvI8gPiBnaWY7CivohKvmsKfmoLjns5bmoLjphbggPiBkbmE7Civmrrrpm57ntabnjLTnnIsgPiBcImtpbGxcLWFcLWNoaWNrZW5cLWluXC1mcm9udFwtb2ZcLWFcLW1vbmtleVwiXC1cLVwtXC1tYWtlXC1hblwtZXhhbXBsZVwtb3V0XC1vZlwtc29tZW9uZVwtXChieVwtcHVuaXNoaW5nXC10aGVtXClcLXRvXC1mcmlnaHRlblwtb3RoZXJzOwor55eF5oCl5LqC5oqV6YarID4gdHVyblwtdG9cLWFueVwtZG9jdG9yXC1vbmVcLWNhblwtZmluZFwtd2hlblwtY3JpdGljYWxseVwtaWxsXC1cLVwtdHJ5XC1hbnl0aGluZ1wtd2hlblwtaW5cLWFcLWRlc3BlcmF0ZVwtc2l0dWF0aW9uOwor5pav5Y2h5Lyv5YuS56SBID4gc2NhcmJvcm91Z2hcLXNob2FsXC1cKHBoaWxpcHBpbmVzJydcLW5hbWVcLWZvclwtaHVhbmd5YW5cLWlzbGFuZFwpOwor5Yaw54Kt5LiN55u45a65ID4gYXNcLWluY29tcGF0aWJsZVwtb3JcLWlycmVjb25jaWxhYmxlXC1hc1wtaWNlXC1hbmRcLWhvdFwtY29hbHM7Civpn4vniL7lvJfpm7fojLIgPiBcKGdlb3JnZVwpXC13ZWhyZnJpdHpcLVwoYmVpamluZ1wtYnVyZWF1XC1jaGllZlwtb2ZcLW5ld3N3ZWVrXCk7CivnkLNcLuaItOe2reaWryA+IGx5bm5cLWRhdmlzXC1cKHVzXC1zdGF0ZVwtZGVwYXJ0bWVudFwtYXJtc1wtY29udHJvbFwtZXhwZXJ0XCk7CivkurrmsJHooYzli5Xpu6ggPiBwZW9wbGUnJ3NcLWFjdGlvblwtcGFydHlcLVwocnVsaW5nXC1wYXJ0eVwtaW5cLXNpbmdhcG9yZVwpOwor5bi45Lu755CG5LqL5ZyLID4gcGVybWFuZW50XC1tZW1iZXJcLXN0YXRlXC1cKG9mXC11blwtc2VjdXJpdHlcLWNvdW5jaWxcKTsKK+S6uuawkeWkp+acg+WggiA+IGdyZWF0XC1oYWxsXC1vZlwtdGhlXC1wZW9wbGVcLFwtYXRcLXRpYW5hbm1lblwtc3F1YXJlOwor5qmL5pys6b6N5aSq6YOOID4gaGFzaGltb3RvXCxcLXJ5dXRhcm9cLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtamFwYW5cKTsKK+Wlp+eIvuW4g+iztOeJuSA+IFwobWFkZWxlaW5lXClcLWFsYnJpZ2h0XC1cKHVzXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwpOwor5LiN55W25LiA5Zue5LqLID4gbm90XC1yZWdhcmRcLWFzXC1hXC1tYXR0ZXJcLVwob2ZcLWFueVwtaW1wb3J0YW5jZVwpOwor5LiN5omT5LiN55u46K2YID4gZnJvbVwtYW5cLWV4Y2hhbmdlXC1vZlwtYmxvd3NcLWZyaWVuZHNoaXBcLWdyb3dzOwor6IGv6YKm6Kq/5p+l5bGAID4gZmJpXC1cKGZlZGVyYWxcLWJ1cmVhdVwtb2ZcLWludmVzdGlnYXRpb25cKTsKK+S4gOS5neWbm+S5neW5tCA+IHRoZVwteWVhclwtMTk0OVwtXChjb21tdW5pc3RcLXJldm9sdXRpb25cKTsKK+e0hOe/sOWFp+aWr+WgoSA+IGpvaGFubmVzYnVyZ1wtXChjaXR5XC1pblwtc291dGhcLWFmcmljYVwpOwor5YiG5L2I5byP55Kw5aKDID4gZGlzdHJpYnV0ZWRcLVwoY29tcHV0aW5nXClcLWVudmlyb25tZW50Owor6Z2e5pS/5bqc57WE57mUID4gbm9uXC1nb3Zlcm5tZW50YWxcLW9yZ2FuaXphdGlvblwtXChuZ29cKTsKK+WwpOmHkeWhnueIvuWNlyA+IGV1Z2VuZVwtY2VybmFuXC1cKGFwb2xsb1wtMTdcLWFzdHJvbmF1dFwpOwor5q+U5YuS6ZmA5Yip5LqeID4gcHJldG9yaWFcLVwoY2FwaXRhbFwtb2ZcLXNvdXRoXC1hZnJpY2FcKTsKK+WNiuaXpeWItuWtuOagoSA+IGhhbGZcLWRheVwtXChvclwtZG91YmxlXC1zaGlmdFwtc2Nob29sXCk7CivotorkvobotorlmrTph40gPiB0b1wtYmVjb21lXC1tb3JlXC1zZXJpb3VzXC1ldmVyeVwtZGF5Owor5oiI54i+5be05Zas5aSrID4gXChmb3JtZXJcLXNvdmlldFwtbGVhZGVyXClcLWdvcmJhY2hldjsKK+WFq+e0muW3peizh+WItiA+IGVpZ2h0XC1ncmFkZVwtd2FnZVwtc2NhbGVcLVwoc3lzdGVtXCk7CivlnKjlr4bliIfms6jmhI8gPiB0b1wtcGF5XC1jbG9zZVwtYXR0ZW50aW9uXC1cKHRvXC1zdGhcKTsKK+aguOWogeaHvuaUv+etliA+IHBvbGljeVwtb2ZcLW51Y2xlYXJcLWludGltaWRhdGlvbjsKK+WPr+mBuOaTh+S4n+ajhCA+IGRpc2NhcmRcLWVsaWdpYmxlXC1cKGZyYW1lXC1yZWxheVwpOwor54m55Yil6KGM5pS/5Y2AID4gc3BlY2lhbFwtYWRtaW5pc3RyYXRpdmVcLXJlZ2lvbjsKK+iPr+ebm+mgk+aZguWgsSA+IHdhc2hpbmd0b25cLXRpbWVzXC1cKG5ld3NwYXBlclwpOwor5Ly85LmO5b6I5a6J5YWoID4gdG9cLWFwcGVhclwtXCh0b1wtYmVcKVwtdmVyeVwtc2FmZTsKK+S4reWkruaDheWgseWxgCA+IGNlbnRyYWxcLWludGVsbGlnZW5jZVwtYWdlbmN5Owor5pyN5YuZ5o+Q5L6b5ZWGID4gXChpbnRlcm5ldFwpXC1zZXJ2aWNlXC1wcm92aWRlcjsKK+euoeeQhuS/oeaBr+W6qyA+IG1hbmFnZW1lbnRcLWluZm9ybWF0aW9uXC1iYXNlOwor6I+v55ub6aCT6YO15aCxID4gd2FzaGluZ3RvblwtcG9zdFwtXChuZXdzcGFwZXJcKTsKK+mhmOaEj+S4jemhmOaEjyA+IHdoZXRoZXJcLW9uZVwtd2FudHNcLXRvXC1vclwtbm90Owor55m85bGV5qC45q2m5ZmoID4gdG9cLWRldmVsb3BcLW51Y2xlYXJcLXdlYXBvbnM7Civlj5vorornmoTnnIHku70gPiByZW5lZ2FkZVwtcHJvdmluY2VcLVwodGFpd2FuXCk7CivkuK3lnIvnp5HlrbjpmaIgPiBjaGluZXNlXC1hY2FkYW15XC1vZlwtc2NpZW5jZTsKK+eUqOaItuerr+ioreWCmSA+IGN1c3RvbWVyXC1wcmVtaXNlXC1lcXVpcG1lbnQ7CivkuI3nrYnlg7nkuqTmj5sgPiBleGNoYW5nZVwtb2ZcLXVuZXF1YWxcLXZhbHVlczsKK+awuOS5heiZm+mbu+i3ryA+IHBlcm1hbmVudFwtdmlydHVhbFwtY2lyY3VpdDsKK+WOn+WboOW+iOewoeWWriA+IHRoZVwtcmVhc29uXC1pc1wtdmVyeVwtc2ltcGxlOwor6YCa6KiK6Ieq5YuV5YyWID4gY29tbXVuaWNhdGlvbnNcLWF1dG9tYXRpb247CivluYDpppblrprnlYznrKYgPiBzdGFydFwtb2ZcLWZyYW1lXC1kZWxpbWl0ZXI7CivkuI3mib/oqo3kuLvnvqkgPiBwb2xpY3lcLW9mXC1ub25yZWNvZ25pdGlvbjsKK+aliueZvue/sOWkp+WtuCA+IGJyaWdoYW1cLXlvdW5nXC11bml2ZXJzaXR5Owor5YiG5L2I5byP57WQ5qeLID4gZGlzdHJpYnV0ZWRcLWFyY2hpdGVjdHVyZTsKK+aMgeS4jeWQjOaUv+imiyA+IFwocG9saXRpY2FsbHlcKVwtZGlzc2VudGluZzsKK+S6uuawkeino+aUvui7jSA+IHBlb3BsZScnc1wtbGliZXJhdGlvblwtYXJteTsKK+W+nuWkluihqOS+hueciyA+IGxvb2tpbmdcLWZyb21cLXRoZVwtb3V0c2lkZTsKK+S6pOaPm+iZm+mbu+i3ryA+IHN3aXRjaGVkXC12aXJ0dWFsXC1jaXJjdWl0Owor5qC45q2m5Zmo5p2Q5paZID4gbnVjbGVhclwtd2VhcG9uXC1tYXRlcmlhbDsKK+eZvOS9iOaWsOi7n+S7tiA+IHRvXC1yZWxlYXNlXC1uZXdcLXNvZnR3YXJlOwor5bCI5bGs57aT5r+f5Y2AID4gZXhjbHVzaXZlXC1lY29ub21pY1wtem9uZTsKK+a1geS6oeWcqOa1t+WkliA+IHRvXC1iZVwtaW5cLWV4aWxlXC1vdmVyc2VhczsKK+S4jeaKteaKl+S4u+e+qSA+IHBvbGljeVwtb2ZcLW5vbnJlc2lzdGFuY2U7CivlnKjku4rlubTlubTlupUgPiBhdFwtdGhlXC1lbmRcLW9mXC10aGlzXC15ZWFyOwor5L6G5Zue5L6G5Y675ZywID4gYmFja3dhcmRzXC1hbmRcLWZvcndhcmRzOwor57ay57Wh5bGk5Y2U6K2wID4gbmV0d29ya1wtbGF5ZXJcLXByb3RvY29sOwor5bel5qWt5YyW5ZyL5a62ID4gaW5kdXN0cmlhbGl6ZWRcLWNvdW50cnk7CivmlZnnvqnlkozogZbntIQgPiBkb2N0cmluZVwtYW5kXC1jb3ZlbmFudHM7CivntrLntaHnrqHnkIblk6EgPiBuZXR3b3JrXC1hZG1pbmlzdHJhdG9yOwor6Iqd5Yqg5ZOl5aSn5a24ID4gdW5pdmVyc2l0eVwtb2ZcLWNoaWNhZ287CivpmbjmtbfnqbrkuInou40gPiBhcm15XCxcLW5hdnlcLFwtYWlyXC1mb3JjZTsKK+acrOWcn+WMlui7n+S7tiA+IHNvZnR3YXJlXC1sb2NhbGl6YXRpb247CivmqpTmoYjliIbphY3ljYAgPiBmaWxlXC1hbGxvY2F0aW9uXC10YWJsZTsKK+WcsOWwjeepuuWwjuW9iCA+IGdyb3VuZFwtdG9cLWFpclwtbWlzc2lsZTsKK+S4jeS/oeS7u+aKleelqCA+IHZvdGVcLW9mXC1ub1wtY29uZmlkZW5jZTsKK+acrOS6uueahOingOm7niA+IFwob25lJydzXClcLXBlcnNvbmFsXC12aWV3Owor6Luf6auU6YWN6YCB6ICFID4gc29mdHdhcmVcLWRpc3RyaWJ1dG9yOwor5q235L6G5pyA5L2O6bueID4gYWxsXC10aW1lXC1sb3dcLVwocG9pbnRcKTsKK+exs+W+t+eIvuS8r+ijoSA+IG1pZGRsZWJ1cnlcLVwoY29sbGVnZVwpOwor5YWp6bue5Y2B5Lmd5YiGID4gMlwtXDoxXC05XC1cKHRpbWVcLW9mXC1kYXlcKTsKK+W5gOaqoumpl+W6j+WIlyA+IGZyYW1lXC1jaGVja1wtc2VxdWVuY2U7CivkuI3lrozlhajkuK3nq4sgPiBpbXBlcmZlY3RcLW5ldXRyYWxpdHk7CivlhYvph4zmlq/miZjlvJcgPiBcKHdhcnJlblwpXC1jaHJpc3RvcGhlcjsKK+mRkuWumuWnlOWToeacgyA+IGV2YWx1YXRpb25cLWNvbW1pdHRlZTsKK+mmrOS+huilv+S6nuiqniA+IG1hbGFzaWFuXC1cKGxhbmd1YWdlXCk7CivpgY7kuobkupTliIbpkJggPiBmaXZlXC1taW51dGVzXC1wYXNzZWQ7CivlhYvnvoXlnLDkup7oqp4gPiBjcm9hdGlhblwtXChsYW5ndWFnZVwpOwor6KiO6KuW55qE6K2w6aGMID4gdG9waWNcLW9mXC1kaXNjdXNzaW9uOwor5Zyw5Z2A55qE6L2J5o+bID4gYWRkcmVzc1wtdHJhbnNsYXRpb247Civoh6rli5XlnLDlt6XkvZwgPiBhdXRvbWF0aWNcLW9wZXJhdGlvbjsKK+S/neWuieiHquWLleWMliA+IHNlY3VyaXR5XC1hdXRvbWF0aW9uOwor5YiG5L2I5byP57ay57WhID4gZGlzdHJpYnV0ZWRcLW5ldHdvcms7CivkuI3mnJ/nhLbogIznhLYgPiBoYXBwZW5cLXVuZXhwZWN0ZWRseTsKK+WKoOWAvOWei+e2sui3ryA+IHZhbHVlXC1hZGRlZFwtbmV0d29yazsKK+WboOeJuee2suiBr+mAmiA+IGludGVybmV0XC1jb25uZWN0aW9uOwor56eR5a2455qE5Lqk5rWBID4gc2NpZW50aWZpY1wtZXhjaGFuZ2U7Civpi7Dpm6LlrZDpm7vmsaAgPiBsaXRoaXVtXC1pb25cLWJhdHRlcnk7CivplbfmnJ/nqanlrprmgKcgPiBsb25nXC10ZXJtXC1zdGFiaWxpdHk7CivmqJPlrofoh6rli5XljJYgPiBidWlsZGluZ1wtYXV0b21hdGlvbjsKK+imlueql+WKoOmAn+WZqCA+IHdpbmRvd3NcLWFjY2VsYXJhdG9yOwor6I+v54i+6KGX5pel5aCxID4gd2FsbFwtc3RyZWV0XC1qb3VybmFsOwor5ZyL5rCR6buo6LuN6ZqKID4gbmF0aW9uYWxpc3RcLWZvcmNlczsKK+S4gOWwj+aZguS7peW+jCA+IGFcLXNob3J0XC10aW1lXC1sYXRlcjsKK+e2sui3r+mAo+aOpeWxpCA+IG5ldHdvcmtcLWxpbmtcLWxheWVyOwor5bq35aWI54i+5aSn5a24ID4gY29ybmVsbFwtdW5pdmVyc2l0eTsKK+WhnueIvue2reS6nuiqniA+IHNlcmJpYW5cLVwobGFuZ3VhZ2VcKTsKK+aWr+eTpuW4jOijoeiqniA+IHN3YWhpbGlcLVwobGFuZ3VhZ2VcKTsKK+Wci+Wutuaomea6lueivCA+IGdiXC1cKGd1b1wtYmlhb1wpXC1jb2RlOwor5pys5Yid5a2Q5Y2I57eaID4gdGhlXC1maXJzdFwtbWVyaWRpYW47Civlrrbluq3mtojosrvogIUgPiBob3VzZWhvbGRcLWNvbnN1bWVyOwor5Z+f5ZCN5pyN5YuZ5ZmoID4gZG9tYWluXC1uYW1lXC1zZXJ2ZXI7CivnmbzlsZXkuK3lnIvlrrYgPiBkZXZlbG9waW5nXC1jb3VudHJ5Owor5aSa56uv5Lit57m85ZmoID4gbXVsdGlwb3J0XC1yZXBlYXRlcjsKK+eZvOWxleeahOWci+WutiA+IGRldmVsb3BpbmdcLWNvdW50cnk7CivnlJ/mtLvlv4XpnIDlk4EgPiBsaWZlJydzXC1uZWNlc3NpdGllczsKK+WPr+ihjOaAp+eglOeptiA+IGZlYXNpYmlsaXR5XC1zdHVkeTsKK+aVuOaTmuW6q+i7n+S7tiA+IGRhdGFiYXNlXC1zb2Z0d2FyZTsKK+ilv+ijoeeIvuWtl+avjSA+IGN5cmlsbGljXC1hbHBoYWJldDsKK+aSkui/puWIqeS6nuabuCA+IGJvb2tcLW9mXC16ZWNoYXJpYWg7Civms6Llo6vpoJPlpKflrbggPiBib3N0b25cLXVuaXZlcnNpdHk7Civovqblhazoh6rli5XljJYgPiBvZmZpY2VcLWF1dG9tYXRpb247CivkuI3lj4rnianli5XoqZ4gPiBpbnRyYW5zaXRpdmVcLXZlcmI7Civohp3kuIrlnovpm7vohaYgPiBsYXB0b3BcLVwoY29tcHV0ZXJcKTsKK+S4reWkruWnlOWToeacgyA+IGNlbnRyYWxcLWNvbW1pdHRlZTsKK+WIsOmCo+WAi+aZguWAmSA+IHVudGlsXC10aGlzXC1tb21lbnQ7CivmtJvmnYnno6/mmYLloLEgPiBsb3NcLWFuZ2VsZXNcLXRpbWVzOwor5paH5YyW55qE5Lqk5rWBID4gY3VsdHVyYWxcLWV4Y2hhbmdlOwor5pav5rSb5LyQ5YWL6KqeID4gc2xvdmFrXC1cKGxhbmd1YWdlXCk7CivlpJblnIvml4XpgYrogIUgPiBmb3JlaWduXC10cmF2ZWxsZXI7CivkuIDljYPkuIPnmb7okKwgPiBzZXZlbnRlZW5cLW1pbGxpb247Civlp5Tlk6HmnIPmnIPorbAgPiBjb21taXR0ZWVcLW1lZXRpbmc7CivoqIjnrpfmqZ/lt6Xmpa0gPiBjb21wdXRlclwtaW5kdXN0cnk7CivlhbHnlKLpu6jpg6jpmoogPiBjb21tdW5pc3RcLWZvcmNlczsKK+acjeWLmeaPkOS+m+iAhSA+IHNlcnZpY2VcLXByb3ZpZGVyOwor56e75YuV5byP6Zu76KmxID4gbW9iaWxlXC10ZWxlcGhvbmU7CivlqZrlpJbmgKfmjqXop7ggPiBleHRyYW1hcml0YWxcLXNleDsKK+azoue+juavlOmHjeioiCA+IGJhdW1lXC1oeWRyb21ldGVyOwor5aSW5ZyL5oqV6LOH6ICFID4gZm9yZWlnblwtaW52ZXN0b3I7CivnlbDmgKfmgKfmjqXop7ggPiBoZXRlcm9zZXh1YWxcLXNleDsKK+ahjOS4iuWei+mbu+iFpiA+IGRlc2t0b3BcLWNvbXB1dGVyOwor6KiY6ICF5oub5b6F5pyDID4gcHJlc3NcLWNvbmZlcmVuY2U7Civljp/lrZDnp5HlrbjlrrYgPiBhdG9taWNcLXNjaWVudGlzdDsKK+mVt+W6puaMh+ekuuespiA+IGxlbmd0aFwtaW5kaWNhdG9yOwor5Lu/55yf5pyN5YuZ5ZmoID4gZW11bGF0aW9uXC1zZXJ2ZXI7CivoqIjnrpfmqZ/ntrLntaEgPiBjb21wdXRlclwtbmV0d29yazsKK+mBjuS7veewoeWWruWMliA+IG92ZXJzaW1wbGljYXRpb247Civnn6XorZjlt6XnqIvluKsgPiBrbm93bGVkZ2VcLXdvcmtlcjsKK+izh+aWmemPiOe1kOWxpCA+IGRhdGFcLWxpbmtcLWxheWVyOwor6Zu2562J5b6F54uA5oWLID4gemVyb1wtd2FpdFwtc3RhdGU7CivlnKjlvojlpJrmlrnpnaIgPiBpblwtbWFueVwtYXNwZWN0czsKK+S/hOW3tOW6leS6nuabuCA+IGJvb2tcLW9mXC1vYmFkaWFoOwor5pW45pOa6Y+I6Lev5bGkID4gZGF0YVwtbGlua1wtbGF5ZXI7CivnqK7ml4/kuLvnvqnogIUgPiByYWNpc3RcLVwocGVyc29uXCk7CivntrLntaHngI/opr3lmaggPiBuZXR3b3JrXC1icm93c2VyOwor5a6i5oi25qmf6Luf5Lu2ID4gY2xpZW50XC1zb2Z0d2FyZTsKK+iHquWLleWUruiyqOapnyA+IHZlbmRpbmdcLW1hY2hpbmU7CivntrLntaHmiZPljbDmqZ8gPiBuZXR3b3JrXC1wcmludGVyOwor5p2/5p2/5YWt5Y2B5ZubID4gdW5hY2NvbW1vZGF0aW5nOwor56ys5LiA5YCL5bGk5qyhID4gdGhlXC1maXJzdFwtc3RhZ2U7CivlhajnkIPos4foqIrntrIgPiB3b3JsZFwtd2lkZVwtd2ViOwor5Lul5aSq57ay57Wh5bmAID4gZXRoZXJuZXRcLWZyYW1lOwor5LiN5bmz562J5qKd57SEID4gdW5lcXVhbFwtdHJlYXR5Owor5ZaY5LiN6YGO5rCj5L6GID4gY2Fubm90XC1icmVhdGhlOwor5o235YWL5YWx5ZKM5ZyLID4gY3plY2hcLXJlcHVibGljOwor5bel5qWt55qE5beo6aCtID4gaW5kdXN0cnlcLW1vZ29sOwor5q+P56uv5Y+j5YO55qC8ID4gcHJpY2VcLXBlclwtcG9ydDsKK+S4jeato+W4uOeLgOazgSA+IGFibm9ybWFsXC1zdGF0ZTsKK+mWi+aUvuW8j+ezu+e1sSA+IG9wZW5cLXN5c3RlbVwoc1wpOwor5LiW55WM55qE6Kqe6KiAID4gd29ybGRcLWxhbmd1YWdlOwor5r+A5YWJ5omT5byV5qmfID4gbGFzZXJcLXByaW50ZXI7Civlk6XmnpflpJrlvozmm7ggPiAyXC1jb3JpbnRoaWFuczsKK+S4jeiomOWQjeaKleelqCA+IHNlY3JldFwtYmFsbG90Owor5LiN5YiX6aGb6Ku45bO2ID4gYnJpdGlzaFwtaXNsZXM7Civlk6XmnpflpJrliY3mm7ggPiAxXC1jb3JpbnRoaWFuczsKK+S4jeWPr+iDveeahOS6iyA+IGltcG9zc2liaWxpdHk7Civnmb7liIbkuYvkupTljYEgPiBmaWZ0eVwtcGVyY2VudDsKK+iJvua7i+eXheaKl+mrlCA+IGFpZHNcLWFudGlib2R5Owor5LiN5Y+v5L6154qv5qyKID4gaW52aW9sYWJpbGl0eTsKK+mQs+WwhOWNsOihqOapnyA+IGxhc2VyXC1wcmludGVyOwor55Sf5ZG955qE6YG66LehID4gdHJhY2VcLW9mXC1saWZlOwor5LiA5Lmd5Lmd5LiD5bm0ID4gdGhlXC15ZWFyXC0xOTk3Owor5YWo5LiW55WM56ys5LiAID4gd29ybGQnJ3NcLWZpcnN0Owor5pmu6YCa6ICB55m+5aeTID4gY29tbW9uXC1wZW9wbGU7Civoib7mu4vnl4XmgqPogIUgPiBhaWRzXC1wYXRpZW50Owor57C/6KiY566h55CG5ZOhID4gY29tbWlzc2FyaWFuOwor5qC45q2m5Zmo6Kmm6amXID4gbnVjbGVhclwtdGVzdDsKK+S6jOWNgeS4gOS4lue0gCA+IDIxc3RcLWNlbnR1cnk7CivmnInmop3mnInnkIblnLAgPiBtZXRob2RpY2FsbHk7CivkuI3mmK/njqnlhZLnmoQgPiBpdCcnc1wtbm9cLWpva2U7Civnspfkv5fnmoTpmo7ntJogPiB2dWxnYXJcLWNsYXNzOwor5omT5Y2w5pyN5YuZ5ZmoID4gcHJpbnRcLXNlcnZlcjsKK+izk+ilv+azleWwvOS6niA+IHBlbm5zeWx2YW5pYTsKK+iAtuWIqeexs+WTgOatjCA+IGxhbWVudGF0aW9uczsKK+WFq+S5neS4jembouWNgSA+IHByZXR0eVwtY2xvc2U7CivplovmlL7lvI/ntrLot68gPiBvcGVuXC1uZXR3b3JrOwor5YWL6KOh5aeG5p6X5a6uID4gdGhlXC1rcmVtbGluOwor5aSq5bmz5rSL6YCx6YKKID4gcGFjaWZpY1wtcmltOwor5r+A5YWJ5LqM5qW1566hID4gbGFzZXJcLWRpb2RlOwor5Zmo5a6Y5o2Q54276ICFID4gb3JnYW5cLWRvbm9yOwor5paH5Lu25pyN5YuZ5ZmoID4gZmlsZVwtc2VydmVyOwor54675oSP6ICz5a6a5b6LID4gYm95bGUnJ3NcLWxhdzsKK+S4gOWNg+Wbm+eZvuWEhCA+IDE0MFwtYmlsbGlvbjsKK+iHqueUsemBuOaTh+asiiA+IGZyZWVcLWFnZW5jeTsKK+W3tOaer+Wvp+S4u+e+qSA+IGJha3VuaW5pc207CivoqqrkuI3lh7roqbHkvoYgPiBzcGVlY2hsZXNzOwor5aGU5ZCJ5YWL5pav5Z2mID4gdGFqaWtpc3RhbjsKK+WKoOWIqeemj+WwvOS6niA+IGNhbGlmb3JuaWE7Civkvb/nlKjogIXkuK3ku4sgPiB1c2VyXC1hZ2VudDsKK+WTiOiWqeWFi+aWr+WdpiA+IGthemFraHN0YW47Civnmb7liIbkuYvkuZ3ljYEgPiA5MFwtcGVyY2VudDsKK+WFrOmWi+iojuirluacgyA+IG9wZW5cLWZvcnVtOwor6Im+5ruL55eF55eF5q+SID4gYWlkc1wtdmlydXM7CivlnLDmlrnlrpjogbfkvY0gPiBwcmVmZWN0dXJlOwor56OB55uk6amF5YuV5ZmoID4gZGlzbFwtZHJpdmU7CivlpbPoo53oo4HnuKvluKsgPiBkcmVzc21ha2VyOwor6ZW35a2Q55qE5ZCN5Lu9ID4gYmlydGhyaWdodDsKK+S4gOeZvuS6lOWNgeWEhCA+IDE1XC1iaWxsaW9uOwor6Zi/5q+U6KW/5bC85LqeID4gYWJ5c3NpbmlhOwor56S+5pyD5Li7576p6ICFID4gc29jaWFsaXN0Owor5o+Q5pGp5aSq5ZCO5pu4ID4gMlwtdGltb3RoeTsKK+WIsOebruWJjeeCuuatoiA+IHVudGlsXC1ub3c7CivmtYHooYzmgKfmhJ/lhpIgPiBpbmZsdWVuemE7CivkuI3nqanlrprmsKPmtYEgPiB0dXJidWxlbnQ7Civmj5DmkanlpKrliY3mm7ggPiAxXC10aW1vdGh5Owor5rOi5Yip5bC86KW/5LqeID4gcG9seW5lc2lhOwor5ZyW5pu4566h55CG5ZOhID4gbGlicmFyaWFuOwor5Y2w5bqm5bC86KW/5LqeID4gaW5kb25lc2lhOwor5rCR5Li75Li7576p6ICFID4gZGVtb2NyYXRzOwor6K6K54Sm6Led6Y+h6aCtID4gem9vbVwtbGVuczsKK+S8gealremWk+e2sui3ryA+IGV4dHJhbmV0Owor5bi45Z2Q5rG96LuK6ICFID4gbW90b3Jpc3Q7Civmsb3ou4rlsZXopr3mnIMgPiBjYXJcLXNob3c7CivkvIHmpa3lhafntrLot68gPiBpbnRyYW5ldDsKK+aSkuavjeiAs+iomOS4iyA+IDJcLXNhbXVlbDsKK+aSkuavjeiAs+iomOS4iiA+IDFcLXNhbXVlbDsKK+Wbm+aciOWNgeS4g+iZnyA+IGFwcmlsXC0xNzsKK+elnuWtuOeglOeptuaJgCA+IHNlbWluYXJ5Owor5Z+D5aGe5L+E5q+U5LqeID4gZXRoaW9waWE7CivlpaflhYvmi4nojbfppqwgPiBva2xhaG9tYTsKK+S4jeWQjeitveS6i+eJqSA+IGRpc2hvbm9yOwor5rW36LuN57i95Y+45LukID4gYWRtaXJhbDsKK+S6lOaciOWNgeS6lOiZnyA+IG1heVwtMVwtNTsKK+mYv+eIvuWPiuWIqeS6niA+IGFsZ2VyaWE7CivkuIPmnIjkuInljYHomZ8gPiBqdWx5XC0zMDsKK+mmrOWFi+aAneS4u+e+qSA+IG1hcnhpc207CivpmL/niL7lt7TlsLzkup4gPiBhbGJhbmlhOwor5LiA56+AXCjoqalcKSA+IHN0YW56YTsKK+mAj+WNsOeJiOWNsOWItyA+IG9mZnNldDsKK+avm+e5lOmBi+WLleihqyA+IGplcnNleTsKK+eUt+S/rumBk+mZoumVtyA+IGFiYm90Owor6Kq/5Yi26Kej6Kq/5ZmoID4gbW9kZW07CivkuInoibLntKvnvoXomK0gPiBwYW5zeTsKK+WuieWFqOeQhuS6i+acgyA+IHRoZVwtdTsKK+aKseiWquaVkeeBqyA+IGNhcnJ5XC1mYWdnb3RzXC10b1wtcHV0XC1vdXRcLWFcLWZpcmVcLVwtXC1hZG9wdFwtYVwtd3JvbmdcLW1ldGhvZFwtdG9cLXNhdmVcLWFcLXNpdHVhdGlvblwtYW5kXC1lbmRcLXVwXC1ieVwtbWFraW5nXC1pdFwtd29yc2U7Civmna/msLTou4rolqogPiB0cnlpbmdcLXRvXC1wdXRcLW91dFwtYVwtYnVybmluZ1wtY2FydGxvYWRcLW9mXC1mYWdnb3RzXC13aXRoXC1hXC1jdXBcLW9mXC13YXRlclwtXC1cLWFuXC11dHRlcmx5XC1pbmFkZXF1YXRlXC1tZWFzdXJlOwor6L6v6Ki85pa95rK7ID4gZGlhZ25vc2lzXC1hbmRcLXRyZWF0bWVudFwtYmFzZWRcLW9uXC1hblwtb3ZlcmFsbFwtYW5hbHlzaXNcLW9mXC10aGVcLWlsbG5lc3NcLWFuZFwtdGhlXC1wYXRpZW50JydzXC1jb25kaXRpb247CivmlZ3luJroh6rnj40gPiB2YWx1ZVwtb25lJydzXC1vd25cLW9sZFwtYnJvb21cLVwtXC1jaGVyaXNoXC1zb21ldGhpbmdcLW9mXC1saXR0bGVcLXZhbHVlXC1zaW1wbHlcLWJlY2F1c2VcLWl0XC1pc1wtb25lJydzXC1vd247CivlhbXkuI3ooYDliIMgPiB0aGVcLWVkZ2VzXC1vZlwtdGhlXC1zd29yZHNcLW5vdFwtYmVpbmdcLXN0YWluZWRcLXdpdGhcLWJsb29kXC1cLVwtd2luXC12aWN0b3J5XC13aXRob3V0XC1maXJpbmdcLWFcLXNob3Q7CivppIrlhZLpmLLogIEgPiBcKG9mXC1wYXJlbnRzXClcLXRvXC1icmluZ1wtdXBcLWNpaGxkcmVuXC1mb3JcLXRoZVwtcHVycG9zZVwtb2ZcLWJlaW5nXC1sb29rZWRcLWFmdGVyXC1pblwtb2xkXC1hZ2U7CivkuI3lhbHmiLTlpKkgPiB3aWxsXC1ub3RcLWxpdmVcLXVuZGVyXC10aGVcLXNhbWVcLXNreVwtXCh3aXRoXC1vbmUnJ3NcLWVuZW15XClcLVwtXC1hYnNvbHV0ZWx5XC1pcnJlY29uY2lsYWJsZTsKK+aTiuWFtuaDsOatuCA+IGF2b2lkXC10aGVcLWVuZW15XC13aGVuXC1oZVwtaXNcLWZyZXNoXC1hbmRcLXN0cmlrZVwtaGltXC13aGVuXC1oZVwtaXNcLXRpcmVkXC1hbmRcLXdpdGhkcmF3czsKK+mBv+WFtumKs+awoyA+IGF2b2lkXC10aGVcLWVuZW15XC13aGVuXC1oZVwtaXNcLWZyZXNoXC1hbmRcLXN0cmlrZVwtaGltXC13aGVuXC1oZVwtaXNcLXRpcmVkXC1hbmRcLXdpdGhkcmF3czsKK+S/neeUsuWItuW6piA+IHRoZVwtYmFvXC1qaWFcLXN5c3RlbVwtXChhblwtYWRtaW5pc3RyYXRpdmVcLXN5c3RlbVwtb3JnYW5pemVkXC1vblwtYmFzaXNcLW9mXC1ob3VzZWhvbGRzXCk7CivkuI3ovqjoj73puqUgPiBiZVwtdW5hYmxlXC10b1wtdGVsbFwtYmVhbnNcLWZyb21cLXdoZWF0XC1cLVwtaGF2ZVwtbm9cLWtub3dsZWRnZVwtb2ZcLXByYWN0aWNhbFwtbWF0dGVyczsKK+aBreWWnOeZvOiyoSA+IGNvbmdyYXR1bGF0aW9uc1wtZm9yXC1nZXR0aW5nXC1yaWNoXC1cKHRyYWRpdGlvbmFsXC1jaGluZXNlXC1uZXdcLXllYXInJ3NcLWZ1dHVyZVwtdXNlOwor5aGe6Z+L6KOh6Ku+ID4gXFtqZWFuXC1taWNoZWxcXVwtc2V2ZXJpbm9cLVxbd29ybGRcLWJhbmtcLXZpY2VcLXByZXNpZGVudFwsXC1lYXN0XC1hc2lhXC1hbmRcLXBhY2lmaWNcXTsKK+acieacn+W+kuWIkSA+IGxpbWl0ZWRcLXRlcm1cLW9mXC1pbXByaXNvbm1lbnRcLVwoaWVcLFwtYW55dGhpbmdcLWxlc3NcLXRoYW5cLWxpZmVcLWltcHJpc29ubWVudFwpOwor6ZaJ55uu5aGe6IG9ID4gc2h1dHNcLW9uZScnc1wtZXllc1wtYW5kXC1zdG9wXC11cFwtb25lJydzXC1lYXJzXC1cLVwtYmVcLW91dFwtb2ZcLXRvdWNoXC13aXRoXC1yZWFsaXR5Owor56yo6bOl5YWI6aObID4gY2x1bXN5XC1iaXJkc1wtaGF2ZVwtdG9cLXN0YXJ0XC1mbHlpbmdcLWVhcmx5XC1cLVwtdGhlXC1zbG93XC1uZWVkXC10b1wtc3RhcnRcLWVhcmx5Owor5pys6I2J57ax55uuID4gYW5cLW91dGxpbmVcLXRyZWF0aXNlXC1vZlwtbWVkaWNhbFwtaGVyYnNcLFwtY29tcGlsZWRcLWJ5XC1saTNcLXNoaTJcLXpoZW4xXC3mnY7mmYLnj407CivlhbXlvLfppqzlo68gPiBzdHJvbmdcLXNvbGRpZXJzXC1hbmRcLXN0dXJkeVwtaG9yc2VzXC1cLVwtYVwtd2VsbFwtdHJhaW5lZFwtYW5kXC1wb3dlcmZ1bFwtYXJteTsKK+alreS9meWkp+WtuCA+IGNvbGxlZ2VcLWZvclwtcGVvcGxlXC13aG9cLWF0dGVuZFwtYWZ0ZXJcLXdvcmtcLVwobGl0XC5cOlwtc3BhcmVcLXRpbWVcLWNvbGxlZ2VcKTsKK+aNlemiqOaNieW9sSA+IGNoYXNlXC10aGVcLXdpbmRcLWFuZFwtY2x1dGNoXC1hdFwtc2hhZG93c1wtXC1cLW1ha2VcLWdyb3VuZGxlc3NcLWFjY3VzYXRpb25zOwor5LiN5YiG5b285q2kID4gbWFrZVwtbm9cLWRpc3RpbmN0aW9uXC1iZXR3ZWVuXC13aGF0JydzXC1vbmUnJ3NcLW93blwtYW5kXC13aGF0JydzXC1hbm90aGVyJydzOwor5LiN55+l5Yeh5bm+ID4gY2FuJyd0XC10ZWxsXC1ob3dcLW1hbnlcLXRoZXJlXC1hcmVcLVwtXC10aGVyZVwtYXJlXC1udW1lcm91c1wtc2ltaWxhclwtY2FzZXM7CivmirHmrpjlrojnvLogPiBjaGVyaXNoXC10aGVcLW91dG1vZGVkXC1hbmRcLXByZXNlcnZlXC10aGVcLW91dHdvcm5cLVwtXC1iZVwtY29uc2VydmF0aXZlOwor5Y2a5Y+k6YCa5LuKID4gY29udmVyc2FudFwtd2l0aFwtdGhpbmdzXC1wYXN0XC1hbmRcLXByZXNlbnRcLVwtXC1lcnVkaXRlXC1hbmRcLWluZm9ybWVkOwor5aSn6ayn5aSp5a6uID4gXCJ0aGVcLW1vbmtleVwtY3JlYXRlc1wtaGF2b2NcLWluXC1oZWF2ZW5cIlwsXC1zdG9yeVwtYWJvdXRcLXN1blwtd3VcLWtvbmc7CivmgrLlpKnmhqvkurogPiBiZW1vYW5cLXRoZVwtc3RhdGVcLW9mXC10aGVcLXVuaXZlcnNlXC1hbmRcLXBpdHlcLXRoZVwtZmF0ZVwtb2ZcLW1hbmtpbmQ7CivkuI3mnI3msLTlnJ8gPiBcKG9mXC1hXC1zdHJhbmdlclwpXC1ub3RcLWFjY3VzdG9tZWRcLXRvXC10aGVcLWNsaW1hdGVcLW9mXC1hXC1uZXdcLXBsYWNlOwor5ZOA5YW15b+F5YudID4gYW5cLWFybXlcLWJ1cm5pbmdcLXdpdGhcLXJpZ2h0ZW91c1wtaW5kaWduYXRpb25cLWlzXC1ib3VuZFwtdG9cLXdpbjsKK+efm+mgreaMh+WQkSA+IHRhcmdldFwtc29tZW9uZVwtb3JcLXNvbWV0aGluZ1wtXChmb3JcLWF0dGFja1wsXC1jcml0aWNpc21cLFwtZXRjXC5cKTsKK+S4jeaBpeS4i+WVjyA+IG5vdFwtZmVlbFwtYXNoYW1lZFwtdG9cLWFza1wtYW5kXC1sZWFyblwtZnJvbVwtb25lJydzXC1zdWJvcmRpbmF0ZXM7CivljaHmi4lPSyA+IGthcmFva2VcLVwoc2luZ2luZ1wtdG9cLXJlY29yZGVkXC1pbnN0cnVtZW50YWxcLWFjY29tcGFuaW1lbnRcKTsKK+S4reWci+awkeiIqiA+IGdlbmVyYWxcLWFkbWluaXN0cmF0aW9uXC1vZlwtY2l2aWxcLWF2aWF0aW9uXC1vZlwtY2hpbmFcLVwoY2FhY1wpOwor5LiJ5ZyL5ryU576pID4gbmFtZVwtb2ZcLWFcLWNsYXNzaWNcLW5vdmVsXCxcLVwicm9tYW5jZVwtb2ZcLXRoZVwtdGhyZWVcLWtpbmdkb21zXCI7Civog4zmsLTkuIDmiLAgPiBmaWdodFwtd2l0aFwtb25lJydzXC1iYWNrXC10b1wtdGhlXC1yaXZlclwtXC1cLWZpZ2h0XC10b1wtd2luXC1vclwtZGllOwor5p2v5byT6JuH5b2xID4gbWlzdGFraW5nXC10aGVcLXJlZmxlY3Rpb25cLW9mXC1hXC1ib3dcLWluXC10aGVcLWN1cFwtZm9yXC1hXC1zbmFrZTsKK+iDjOS6lemboumEiSA+IGxlYXZlXC1vbmUnJ3NcLW5hdGl2ZVwtcGxhY2VcLVwoZXNwZWNpYWxseVwtYWdhaW5zdFwtb25lJydzXC13aWxsXCk7Civms6LngL7otbfkvI8gPiBvZlwtYVwtcGllY2VcLW9mXC13cml0aW5nXC13aXRoXC1vbmVcLWNsaW1heFwtZm9sbG93aW5nXC1hbm90aGVyOwor5LiN54K65bey55SaID4gcmVmcmFpblwtZnJvbVwtZ29pbmdcLXRvXC1leHRyZW1lc1wtaW5cLW1ldGluZ1wtb3V0XC1wdW5pc2htZW50Owor5LiN57SE6ICM5ZCMID4gdGFrZVwtdGhlXC1zYW1lXC1hY3Rpb25cLW9yXC12aWV3XC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor5YWr6Z2i546y55OPID4gYmVcLXNtb290aFwtYW5kXC1zbGlja1wtXChpblwtZXN0YWJsaXNoaW5nXC1zb2NpYWxcLXJlbGF0aW9uc1wpOwor55y+5b+X5oiQ5Z+OID4gXCJ1bml0eVwtb2ZcLXdpbGxcLWlzXC1hblwtaW1wcmVnbmFibGVcLXN0cm9uZ2hvbGRcIlwtXChwcm92ZXJiXCk7Civmipfml6XmiLDniK0gPiBcKGNoaW5hJydzXClcLXdhclwtb2ZcLXJlc2lzdGFuY2VcLWFnYWluc3RcLWphcGFuXC1cKDE5MzdcLTE5NDVcKTsKK+Wkp+adkOWwj+eUqCA+IHVzaW5nXC1hXC10YWxlbnRlZFwtcGVyc29uXC1pblwtYW5cLWluc2lnbmlmaWNhbnRcLXBvc2l0aW9uOwor5LiN6IGe5LiN5ZWPID4gbm90XC1ib3RoZXJcLXRvXC1hc2tcLXF1ZXN0aW9uc1wtb3JcLWxpc3RlblwtdG9cLXdoYXQnJ3NcLXNhaWQ7CivkuKbooYzkuI3mgpYgPiBib3RoXC1jYW5cLWJlXC1pbXBsZW1lbnRlZFwtd2l0aG91dFwtY29taW5nXC1pbnRvXC1jb25mbGljdDsKK+atpeatpeeCuueHnyA+IGFkdmFuY2VcLWdyYWR1YWxseVwtYW5kXC1lbnRyZW5jaFwtb25lc2VsZlwtYXRcLWV2ZXJ5XC1zdGVwOwor5LiA5pyb54Sh6ZqbID4gYXNcLWZhclwtYXNcLXRoZVwtZXllXC1jYW5cLXNlZVwtXChsaXRcOlwtbG9va1wtYWZhclwtbm9cLWJvdW5kXCk7CivkuI3opovntpPlgrMgPiBub3RcLXRvXC1iZVwtZm91bmRcLWluXC10aGVcLWNsYXNzaWNzXC1cLVwtbm90XC1hdXRob3JpdGF0aXZlOwor5pKl6Zuy6KaL5pelID4gZGlzcGVsXC10aGVcLWNsb3Vkc1wtYW5kXC1zZWVcLXRoZVwtc3VuXC1cLVwtcmVzdG9yZVwtanVzdGljZTsKK+WuieatpeeVtui7iiA+IHdhbGtcLW92ZXJcLWxlaXN1cmVseVwtaW5zdGVhZFwtb2ZcLXJpZGluZ1wtaW5cLWFcLWNhcnJpYWdlOwor5LiN5Yud5p6a6IiJID4gdG9vXC1udW1lcm91c1wtdG9cLW1lbnRpb25cLWluZGl2aWR1YWxseVwtb3JcLW9uZVwtYnlcLW9uZTsKK+izk+iHs+WmguatuCA+IGd1ZXN0c1wtZmVlbFwtYXRcLWhvbWVcLVwoaW5cLWFcLWhvdGVsXCxcLWd1ZXN0aG91c2VcLFwtZXRjXC5cKTsKK+WwlumWo+WIl+WztiA+IHNlbmtha3VcLWlzbGFuZHNcLVwoamFwYW5lc2VcLW5hbWVcLWZvclwtZGlhb3l1XC1pc2xhbmRzXCk7Civntq3lkL7niL7ml48gPiB0aGVcLXV5Z3VyXC1cKHVpZ2h1clwpXC1uYXRpb25hbGl0eVwsXC1saXZpbmdcLWluXC14aW5qaWFuZzsKK+WNl+iPr+aXqeWgsSA+IHNvdXRoXC1jaGluYVwtbW9ybmluZ1wtcG9zdFwtXChuZXdzcGFwZXJcLWluXC1ob25nXC1rb25nXCk7Civnl4XlhaXoho/ogpMgPiB0aGVcLWRpc2Vhc2VcLWhhc1wtYXR0YWNrZWRcLXRoZVwtdml0YWxzXC1cLVwtYmV5b25kXC1jdXJlOwor57SE57+w5ouJ6LKdID4gam9oblwtcmFiZVwtXChnZXJtYW5cLWV5ZXdpdG5lc3NcLXRvXC1uYW5qaW5nXC1tYXNzYWNyZVwpOwor5LiN56C05LiN56uLID4gd2l0aG91dFwtZGVzdHJ1Y3Rpb25cLXRoZXJlXC1jYW5cLWJlXC1ub1wtY29uc3RydWN0aW9uOwor5YyF55Si5Yiw5oi2ID4gZml4aW5nXC1vZlwtZmFybVwtb3V0cHV0XC1xdW90YXNcLWZvclwtZWFjaFwtaG91c2Vob2xkOwor6aex6aed56Wl5a2QID4gbmFtZVwtb2ZcLWFcLW5vdmVsXCxcLWx1b1wtdHVvXC14aWFuZ3ppXCxcLWJ5XC1sYW9cLXNoZVwt6ICB6IiNOwor6YC85LiK5qiR5bGxID4gYmVcLWRyaXZlblwtdG9cLWpvaW5cLXRoZVwtbGlhbmdzaGFuXC1tb3VudGFpblwtcmViZWxzOwor5Y2X6L2F5YyX6L2NID4gXChmaWdcLlwpXC1hY3RcLWluXC1hXC13YXlcLXRoYXRcLWRlZmVhdHNcLW9uZScnc1wtcHVycG9zZTsKK+S/neWkluWwsemGqyA+IFwob2ZcLWFcLXByaXNvbmVyXClcLXJlbGVhc2VkXC1mb3JcLW1lZGljYWxcLXRyZWF0bWVudDsKK+iSuOiSuOaXpeS4iiA+IGJlY29taW5nXC1tb3JlXC1wcm9zcGVyb3VzXC13aXRoXC1lYWNoXC1wYXNzaW5nXC1kYXk7Civng4/pra/mnKjpvYogPiB1cnVtcWlcLVwoY2FwaXRhbFwtb2ZcLXhpbmppYW5nXC1hdXRvbm9tb3VzXC1yZWdpb25cKTsKK+WuieWcn+mHjemBtyA+IGhhdGVcLXRvXC1sZWF2ZVwtYVwtcGxhY2VcLXdoZXJlXC1vbmVcLWhhc1wtbGl2ZWRcLWxvbmc7Civlt6XllYbpioDooYwgPiBpbmR1c3RyaWFsXC1hbmRcLWNvbW1lcmNpYWxcLWJhbmtcLW9mXC1jaGluYVwtXChpY2JjXCk7CivkuovoiIfpoZjpgZUgPiB0aGluZ3NcLWRvbicndFwtdHVyblwtb3V0XC10aGVcLXdheVwteW91XC13YW50XC1vclwtcGxhbjsKK+W8teeHiOe1kOe2tSA+IGJlXC1kZWNvcmF0ZWRcLXdpdGhcLWxhbnRlcm5zXC1hbmRcLWNvbG9yZWRcLWJhbm5lcnM7CivplonploDmgJ3pgY4gPiBzaHV0XC1vbmVzZWxmXC11cFwtYW5kXC1wb25kZXJcLW92ZXJcLW9uZScnc1wtbWlzdGFrZXM7Civplonpl5zoh6rlroggPiBjbG9zZVwtdGhlXC1jb3VudHJ5XC10b1wtaW50ZXJuYXRpb25hbFwtaW50ZXJjb3Vyc2U7CivkuI3pgb/oibHpmqogPiBzaHJpbmtcLW9yXC1mbGluY2hcLWZyb21cLW5vXC1kaWZmaWN1bHR5XC1vclwtZGFuZ2VyOwor6Zi/5pe65puy5rKbID4gbmdhd2FuZ1wtY2hvZXBlbFwtXCh0aWJldGFuXCxcLWZ1bGxicmlnaHRcLXNjaG9sYXJcKTsKK+eVq+ibh+a3u+i2syA+IHJ1aW5cLXRoZVwtZWZmZWN0XC1ieVwtYWRkaW5nXC13aGF0XC1pc1wtc3VwZXJmbHVvdXM7Civku5fnvqnln7foqIAgPiBzcGVha1wtb3V0XC1vblwtYVwtbWF0dGVyXC1vZlwtcHJpbmNpcGxlXC1vclwtanVzdGljZTsKK+WFteiHqOWfjuS4iyA+IHRoZVwtYXR0YWNraW5nXC1hcm15XC1oYXNcLXJlYWNoZWRcLXRoZVwtY2l0eVwtZ2F0ZXM7Civog4zln47lgJ/kuIAgPiBtYWtlXC1hXC1sYXN0XC1kaXRjaFwtc3RhbmRcLWJlZm9yZVwtdGhlXC1jaXR5XC13YWxsOwor55m+5oSf5Lqk6ZuGID4gYWxsXC1zb3J0c1wtb2ZcLWZlZWxpbmdzXC13ZWxsXC11cFwtaW5cLW9uZScnc1wtaGVhcnQ7CivlhbXkuI3ljq3oqZAgPiB0aGVyZVwtY2FuXC1uZXZlclwtYmVcLXRvb1wtbXVjaFwtZGVjZXB0aW9uXC1pblwtd2FyOwor5LqU5YWt5Y2B5q2yID4gXChpblwtb25lJydzXClcLWZpZnRpZXNcLW9yXC1zaXh0aWVzXC1cKHllYXJzXC1vZlwtYWdlXCk7Civpgb/ph43lsLHovJUgPiBhdm9pZFwtdGhlXC1pbXBvcnRhbnRcLWFuZFwtZHdlbGxcLW9uXC10aGVcLXRyaXZpYWw7CivmqJnmlrDnq4vnlbAgPiBzdGFydFwtc29tZXRoaW5nXC1uZXdcLWluXC1vcmRlclwtdG9cLWJlXC1kaWZmZXJlbnQ7CivlpKflip/lkYrmiJAgPiBzdWNjZXNzZnVsbHlcLWFjY29tcGxpc2hlZFwtXChwcm9qZWN0XC1vclwtZ29hbFwpOwor54Sh5omA55So5b+DID4gZWF0XC10aHJlZVwtc3F1YXJlXC1tZWFsc1wtYVwtZGF5XC1hbmRcLWRvXC1ub1wtd29yazsKK+ePremWgOW8hOaWpyA+IGRpc3BsYXlcLW9uZScnc1wtc2xpZ2h0XC1za2lsbFwtYmVmb3JlXC1hblwtZXhwZXJ0Owor5Lit5ZyL5pel5aCxID4gY2hpbmFcLWRhaWx5XC1cKGFuXC1lbmdsaXNoXC1sYW5ndWFnZVwtbmV3c3BhcGVyXCk7CivkuI3lj6/ntYLml6UgPiBiZVwtdW5hYmxlXC10b1wtY2FycnlcLW9uXC1ldmVuXC1mb3JcLWFcLXNpbmdsZVwtZGF5Owor6aO96aOf57WC5pelID4gZWF0XC10aHJlZVwtc3F1YXJlXC1tZWFsc1wtYVwtZGF5XC1hbmRcLWRvXC1ub1wtd29yazsKK+WWruanjeWMuemmrCA+IHNpbmdsZVwtaGFuZGVkXC1cKGxpdFw6XC1zaW5nbGVcLXNwZWFyXC1vbmVcLWhvcnNlXCk7CivlkI3lia/lhbblr6YgPiBub3RcLWp1c3RcLWluXC1uYW1lXC1vbmx5XCxcLWJ1dFwtYWxzb1wtaW5cLXJlYWxpdHk7CivllpzmlrDljq3oiIogPiBsaXRlcmFsXDpcLXRvXC1saWtlXC10aGVcLW5ld1wsXC1hbmRcLWhhdGVcLXRoZVwtb2xkOwor5ouN5qGI5Y+r57WVID4gbGl0XC5cOlwtc2xhcFwtdGhlXC10YWJsZVwtYW5kXC1zaG91dFwtd2l0aFwtcHJhaXNlOwor6aKo5Zyf5Lq65oOFID4gbG9jYWxcLWNvbmRpdGlvbnNcLVwoaHVtYW5cLWFuZFwtZW52aXJvbm1lbnRhbFwpOwor6Zi/5ouJ5aGU5pavID4gXChhbGlcKVwtYWxhdGFzXC1cKGluZG9uZXNpYW5cLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivkuK3lhbHkuK3lpK4gPiBjaGluZXNlXC1jb21tdW5pc3RcLXBhcnR5XC1jZW50cmFsXC1jb21taXR0ZWU7CivljZrogZ7lvLfoqJggPiBoYXZlXC13aWRlXC1sZWFybmluZ1wtYW5kXC1hXC1yZXRlbnRpdmVcLW1lbW9yeTsKK+eZvuW5tOWkp+ioiCA+IGFcLXByb2plY3RcLW9mXC12aXRhbFwtYW5kXC1sYXN0aW5nXC1pbXBvcnRhbmNlOwor5ouU6IuX5Yqp6ZW3ID4gc3BvaWxcLXRoaW5nc1wtdGhyb3VnaFwtZXhjZXNzaXZlXC1lbnRodXNpYXNtOwor6IKv5pmu57Si5oGpID4gXChkaXJrXClcLWtlbXB0aG9ybmVcLVwodXNcLXNlbmF0b3JcLWZyb21cLWlkYWhvXCk7CivlpJblravlpbPlhZIgPiBncmFuZGRhdWdodGVyXC1cKGRhdWdodGVyXC1vZlwtb25lJydzXC1kYXVnaGVyXCk7Civnmb7mipjkuI3mkpMgPiBrZWVwXC1vblwtZmlnaHRpbmdcLWluXC1zcGl0ZVwtb2ZcLWFsbFwtc2V0YmFja3M7Civlronouqvnq4vlkb0gPiBzZXR0bGVcLWRvd25cLWFuZFwtZ2V0XC1vblwtd2l0aFwtb25lJydzXC1wdXJzdWl0Owor5LiN5Y+v5LiA5LiWID4gY29uc2lkZXJcLW9uZXNlbGZcLXVuZXhjZWxsZWRcLWluXC10aGVcLXdvcmxkOwor57WV5bCN5pW45a2XID4gYWJzb2x1dGVcLVwoYXNcLW9wcG9zZWRcLXRvXC1yZWxhdGl2ZVwpXC1udW1iZXI7CivmirHpoK3pvKDnq4QgPiBjb3ZlclwtdGhlXC1oZWFkXC1hbmRcLXNuZWFrXC1hd2F5XC1saWtlXC1hXC1yYXQ7Civnmb7lu6Lkv7HoiIggPiBhbGxcLW5lZ2xlY3RlZFwtdGFza3NcLWFyZVwtYmVpbmdcLXVuZGVydGFrZW47Civpgb/lr6blsLHomZsgPiBzdGF5XC1jbGVhclwtb2ZcLXRoZVwtZW5lbXknJ3NcLW1haW5cLWZvcmNlXC1hbmQ7CivkuI3msYLnlJrop6MgPiBub3RcLXNlZWtcLXRvXC11bmRlcnN0YW5kXC10aGluZ3NcLXRob3JvdWdobHk7CivkuK3lpK7lhajmnIMgPiBwbGVuYXJ5XC1zZXNzaW9uXC1vZlwtdGhlXC1jZW50cmFsXC1jb21taXR0ZWU7Civlj6TmnbDmi4nniL4gPiBcKGlcLlwta1wuXClcLWd1anJhbFwtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1pbmRpYVwpOwor5Ya35reh6Zec5L+CID4gY29sZFwtcmVsYXRpb25zXC1cKGVcLmdcLlwtYmV0d2VlblwtY291bnRyaWVzXCk7CivkuI3kuobkuobkuYsgPiBzZXR0bGVcLWFcLW1hdHRlclwtYnlcLWxlYXZpbmdcLWl0XC11bnNldHRsZWQ7CivkuI3ljbPkuI3pm6IgPiBiZVwtbmVpdGhlclwtdG9vXC1mYW1pbGlhclwtbm9yXC10b29cLWRpc3RhbnQ7CivnuL3mlL/msrvpg6ggPiBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLXBvbGl0aWNhbFwtZGVwYXJ0bWVudDsKK+WNiui3r+WHuuWutiA+IHN3aXRjaFwtdG9cLWFcLWpvYlwtb25lXC13YXNcLW5vdFwtdHJhaW5lZFwtZm9yOwor55eF5q+S5a245a62ID4gdmlyb2xvZ2lzdFwtXChwZXJzb25cLXdob1wtc3R1ZGllc1wtdmlydXNlc1wpOwor57WQ56S+6Ieq55SxID4gXChjb25zdGl0dXRpb25hbFwpXC1mcmVlZG9tXC1vZlwtYXNzb2NpYXRpb247CivolJPlu7blhajlnIsgPiB0b1wtc3ByZWFkXC10aHJvdWdob3V0XC10aGVcLWVudGlyZVwtY291bnRyeTsKK+eZvuaAneS4jeinoyA+IHJlbWFpblwtcHV6emxlZFwtYWZ0ZXJcLXBvbmRlcmluZ1wtb3Zlclwtc3RoOwor5Y2K5Yue5YuV5YqbID4gb25lXC1hYmxlXC10b1wtZG9cLWxpZ2h0XC1tYW51YWxcLWxhYm91clwtb25seTsKK+e4veW+jOWLpOmDqCA+IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtbG9naXN0aWNzXC1kZXBhcnRtZW50Owor5LiA5ZyL5YWp5Yi2ID4gb25lXC1jb3VudHJ5XCxcLXR3b1wtc3lzdGVtc1wtXChjaGluYVwtdGFpd2FuXCk7Civnmb3poK3oq6fogIEgPiBsaXZlXC10b1wtcmlwZVwtb2xkXC1hZ2VcLWluXC1jb25qdWdhbFwtYmxpc3M7CivmiJDljYPkuIrokKwgPiBieVwtdGhlXC10aG91c2FuZHNcLWFuZFwtdGVuc1wtb2ZcLXRob3VzYW5kczsKK+S4jeWuo+iAjOaIsCA+IG9wZW5cLWhvc3RpbGl0aWVzXC13aXRob3V0XC1kZWNsYXJpbmdcLXdhcjsKK+S4jemBoOWNg+mHjCA+IG1ha2VcLWxpZ2h0XC1vZlwtdHJhdmVsbGluZ1wtYVwtdGhvdXNhbmRcLWxpOwor5a6J5bGF5qiC5qWtID4gbGl2ZVwtYW5kXC13b3JrXC1pblwtcGVhY2VcLWFuZFwtY29udGVudG1lbnQ7CivpgY3pq5TpsZflgrcgPiBjb3ZlcmVkXC1hbGxcLW92ZXJcLXdpdGhcLWN1dHNcLWFuZFwtYnJ1aXNlczsKK+WFp+aHruWkluaCoyA+IGRvbWVzdGljXC1zdHJpZmVcLWFuZFwtZm9yZWlnblwtYWdyZXNzaW9uOwor5rK755eF5pWR5Lq6ID4gY3VyZVwtdGhlXC1zaWNrbmVzc1wtdG9cLXNhdmVcLXRoZVwtcGF0aWVudDsKK+WTgOm0u+mBjemHjiA+IGFcLWxhbmRcLXN3YXJtaW5nXC13aXRoXC1kaXNhc3RlclwtdmljdGltczsKK+eXheW+nuWPo+WFpSA+IGlsbG5lc3NcLWZpbmRzXC1pdHNcLXdheVwtaW5cLWJ5XC10aGVcLW1vdXRoOwor57i95Y+D6KyA6YOoID4gXChtaWxpdGFyeVwpXC1nZW5lcmFsXC1zdGFmZlwtaGVhZHF1YXJ0ZXJzOwor5pKl57WD5qiC5ZmoID4gcGx1Y2tlZFwtc3RyaW5nXC1vclwtc3RyaW5nZWRcLWluc3RydW1lbnQ7CivliKXlhbfkuIDmoLwgPiBoYXZpbmdcLWFcLXVuaXF1ZVwtb3JcLWRpc3RpbmN0aXZlXC1zdHlsZTsKK+iugOizo+aWsOiBniA+IHlvbWl1cmlcLXNoaW1idW5cLVwoamFwYW5lc2VcLW5ld3NwYXBlclwpOwor5omN55aP5a245re6ID4gaGF2ZVwtbGl0dGxlXC10YWxlbnRcLWFuZFwtbGVzc1wtbGVhcm5pbmc7Civpgb/lnZHokL3kupUgPiBkb2RnZVwtYVwtcGl0XC1vbmx5XC10b1wtZmFsbFwtaW50b1wtYVwtd2VsbDsKK+iuiua6q+WLleeJqSA+IHBvaWtpbG90aGVybWFsXC1cKGNvbGRcLWJsb29kZWRcKVwtYW5pbWFsOwor5aSn5Lit5a2455SfID4gdW5pdmVyc2l0eVwtYW5kXC1oaWdoXC1zY2hvb2xcLXN0dWRlbnRzOwor5a6J5YiG5a6I5bexID4gYWJpZGVcLWJ5XC10aGVcLWxhd1wtYW5kXC1iZWhhdmVcLW9uZXNlbGY7CivlpKfpoa/ouqvmiYsgPiBmdWxseVwtZGlzcGxheWluZ1wtb25lJydzXC1jYXBhYmlsaXRpZXM7Civms6LngL7lo6/pl4ogPiBzdXJnaW5nXC1mb3J3YXJkXC13aXRoXC1ncmVhdFwtbW9tZW50dW07Civlm57mrbjkuK3lnIsgPiB0b1wtcmV0dXJuXC10b1wtY2hpbmFcLVwoZVwuZ1wuXC1ob25nXC1rb25nXCk7CivmhJvojqvog73liqkgPiB3aWxsaW5nXC10b1wtaGVscFwtYnV0XC11bmFibGVcLXRvXC1kb1wtc287Civoqr/mn6XntZDmnpwgPiByZXN1bHRzXC1cKG9mXC1hblwtaW52ZXN0aWdhdGlvblwsXC1wb2xsXCk7Civnmb7nq6/lvoXoiIkgPiBhXC10aG91c2FuZFwtdGhpbmdzXC1yZW1haW5cLXRvXC1iZVwtZG9uZTsKK+eni+mrmOawo+eIvSA+IGNsZWFyXC1hbmRcLXJlZnJlc2hpbmdcLWF1dHVtblwtd2VhdGhlcjsKK+WGsOa2iOeTpuinoyA+IG1lbHRcLWxpa2VcLWljZVwtYW5kXC1icmVha1wtbGlrZVwtdGlsZXM7CivljYrmlqTlhavlhakgPiBub3RcLW11Y2hcLXRvXC1jaG9vc2VcLWJldHdlZW5cLXRoZVwtdHdvOwor5q2l5Lq65b6M5aG1ID4gZm9sbG93XC1pblwtb3RoZXJcLXBlb3BsZScnc1wtZm9vdHN0ZXBzOwor6b6N6aOb6bOz6IieID4gbGl0XC5cOlwtZHJhZ29uXC1mbGllc1wsXC1waG9lbml4XC1kYW5jZXM7CivlnIvpmpvopovogZ4gPiBpbnRlcm5hdGlvbmFsXC1iYWNrZ3JvdW5kXC1rbm93bGVkZ2U7CivlnIvli5nlp5Tlk6EgPiBtZW1iZXJcLW9mXC1zdGF0ZVwtY291bmNpbFwtXChpblwtY2hpbmFcKTsKK+WPr+enu+akjeaApyA+IHBvcnRhYmlsaXR5XC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor5ZG85ZKM5rWp54m5ID4gaG9oaG90XC1cKGNhcGl0YWxcLW9mXC1pbm5lclwtbW9uZ29saWFcKTsKK+Wwj+mhjOWkp+WBmiA+IG1ha2VcLWFcLWJpZ1wtZnVzc1wtb3ZlclwtYVwtbWlub3JcLWlzc3VlOwor5LiN6Jmb5q2k6KGMID4gdGhlXC10cmlwXC1oYXNcLW5vdFwtYmVlblwtbWFkZVwtaW5cLXZhaW47CivoqIDoq5boh6rnlLEgPiBcKGNvbnN0aXR1dGlvbmFsXClcLWZyZWVkb21cLW9mXC1zcGVlY2g7CivplovnmbznkrDlooMgPiBkZXZlbG9wbWVudFwtZW52aXJvbm1lbnRcLVwoY29tcHV0ZXJcKTsKK+S4jeitmOaZguWLmSA+IHNob3dcLW5vXC11bmRlcnN0YW5kaW5nXC1vZlwtdGhlXC10aW1lczsKK+S4jeaZguS5i+mcgCA+IGFcLXBvc3NpYmxlXC1wZXJpb2RcLW9mXC13YW50XC1vclwtbmVlZDsKK+S7peeJmemChOeJmSA+IGFcLXRvb3RoXC1mb3JcLWFcLXRvb3RoXC1cKHJldGFsaWF0aW9uXCk7Civnmb7miLDnmb7li50gPiBlbWVyZ2VcLXZpY3RvcmlvdXNcLWluXC1ldmVyeVwtYmF0dGxlOwor55Sx5q2k5Y+v6KaLID4gZnJvbVwtdGhpc1wsXC1pdFwtY2FuXC1iZVwtc2VlblwtdGhhdFwuXC5cLjsKK+WvuOiNieS4jeeUnyA+IFwibm90XC1ldmVuXC1hXC1ibGFkZVwtb2ZcLWdyYXNzXC1ncm93c1wiOwor5pOm5Lqu55y8552bID4gcmVtb3ZlXC10aGVcLXNjYWxlc1wtZnJvbVwtb25lJydzXC1leWVzOwor6KOc5YGP5pWR5byKID4gcmVtZWR5XC1kZWZlY3RzXC1hbmRcLXJlY3RpZnlcLWVycm9yczsKK+eZvuW3neatuOa1tyA+IGFsbFwtdGhpbmdzXC10ZW5kc1wtaW5cLW9uZVwtZGlyZWN0aW9uOwor6KqT5LiN5Y+N5oKUID4gdG9cLXZvd1wtbm90XC10b1wtYnJlYWtcLW9uZScnc1wtcHJvbWlzZTsKK+enkeWtuOe3qOi8ryA+IHNjaWVuY2VcLWVkaXRvclwtXChvZlwtYVwtcHVibGljYXRpb25cKTsKK+aYgummlumXiuatpSA+IHN0cmlkZVwtZm9yd2FyZFwtd2l0aFwtb25lJydzXC1jaGluXC11cDsKK+aXpee2k+aMh+aVuCA+IG5pa2tlaVwtaW5kZXhcLVwob2ZcLWphcGFuZXNlXC1zdG9ja3NcKTsKK+W+l+WvuOmAsuWwuiA+IGxpdGVyYWxcOlwtZ2V0XC1hblwtaW5jaFwsXC13YW50XC1hXC1mb290Owor5YyX5rSL6LuN6ZalID4gdGhlXC1ub3J0aGVyblwtd2FybG9yZHNcLVwoMTkxMlwtMTkyN1wpOwor5aSn5oOR5LiN6KejID4gZG9cLW5vdFwtdW5kZXJzdGFuZFwtYVwtY2VydGFpblwtdGhpbmc7CivmmI7mlofopo/lrpogPiBleHByZXNzbHlcLXN0aXB1bGF0ZWRcLVwoaW5cLXdyaXRpbmdcKTsKK+Wkp+W6reW7o+ecviA+IHB1YmxpY1wtcGxhY2VcLXdpdGhcLW51bWVyb3VzXC1wZW9wbGU7Civnmb7nhKHkuIDlpLEgPiBub1wtZGFuZ2VyXC1vZlwtYW55dGhpbmdcLWdvaW5nXC13cm9uZzsKK+S6uuasiuingOWvnyA+IGh1bWFuXC1yaWdodHNcLXdhdGNoXC1cKG9yZ2FuaXphdGlvblwpOwor5YKZ6ICM5LiN55SoID4gaGF2ZVwtc29tZXRoaW5nXC1yZWFkeVwtanVzdFwtaW5cLWNhc2U7Civnr4DlpJbnlJ/mnp0gPiBuZXdcLXByb2JsZW1zXC1jb21wbGljYXRlXC1hblwtaXNzdWU7CivpvLvpnZLoh4nohasgPiBhXC1ibG9vZHlcLW5vc2VcLWFuZFwtYVwtc3dvbGxlblwtZmFjZTsKK+S8gealreeuoeeQhiA+IGJ1c2luZXNzXC1tYW5hZ2VtZW50XC1cKGFzXC1hXC1zdHVkeVwpOwor5LiN6KyA6ICM5ZCIID4gYWdyZWVcLXdpdGhvdXRcLXByaW9yXC1jb25zdWx0YXRpb247CivmjInlhbXkuI3li5UgPiBub3RcLXRocm93XC10aGVcLXRyb29wc1wtaW50b1wtYmF0dGxlOwor5LiA5Lit5LiA6Ie6ID4gXCJvbmVcLWNoaW5hXCxcLW9uZVwtdGFpd2FuXCJcLVwocG9saWN5XCk7CivkuK3ml6Xpn5PotoogPiBjaGluYVwsXC1qYXBhblwsXC1rb3JlYVwsXC1hbmRcLXZpZXRuYW07CivlvaLlvbHkuI3pm6IgPiBpbnNlcGFyYWJsZVwtXChhc1wtZm9ybVwtYW5kXC1zaGFkb3dcKTsKK+WVhualreeJiOacrCA+IGNvbW1lcmNpYWxcLXZlcnNpb25cLVwob2ZcLXNvZnR3YXJlXCk7Civnmb7oroDkuI3ljq0gPiBiZVwtd29ydGhcLXJlYWRpbmdcLWFcLWh1bmRyZWRcLXRpbWVzOwor5YiG5rOi5aSa5belID4gd2F2ZWxlbmd0aFwtZGl2aXNpb25cLW11bHRpcGxleGluZzsKK+W/heeUseS5i+i3ryA+IHRoZVwtcm9hZFwtb25lXC1tdXN0XC1mb2xsb3dcLW9yXC10YWtlOwor5Lqo54m55rOw576FID4gaHVudGVyXC10eWxvXC1cKGhvbGx5d29vZFwtYWN0cmVzc1wpOwor6ZaJ6ZaA6YCg6LuKID4gbWFrZVwtYVwtY2FydFwtYmVoaW5kXC1jbG9zZWRcLWRvb3JzOwor5oKy5Zac5Lqk6ZuGID4gbWl4ZWRcLWZlZWxpbmdzXC1vZlwtZ3JpZWZcLWFuZFwtam95Owor5LiN5L+u6YKK5bmFID4gbm90XC1jYXJlXC1hYm91dFwtb25lJydzXC1hcHBlYXJhbmNlOwor5aSn5b+r5Lq65b+DID4gdG9cLXRoZVwtc2F0aXNmYWN0aW9uXC1vZlwtZXZlcnlvbmU7Civpnq3plbfojqvlj4ogPiBiZXlvbmRcLXRoZVwtcmVhY2hcLW9mXC1vbmUnJ3NcLXBvd2VyOwor5LiN5a2454Sh6KGTID4gaGF2ZVwtbmVpdGhlclwtbGVhcm5pbmdcLW5vclwtc2tpbGw7CivkuI3lr5LogIzmhYQgPiBzaGl2ZXJcLWFsbFwtb3ZlclwtdGhvdWdoXC1ub3RcLWNvbGQ7CivlsaTlh7rkuI3nqq4gPiB0b1wtY29tZVwtb3V0XC1vbmVcLWFmdGVyXC10aGVcLW90aGVyOwor5a6J5rCR5ZGK56S6ID4gYVwtbm90aWNlXC10b1wtcmVhc3N1cmVcLXRoZVwtcHVibGljOwor57Sw6I+M5q2m5ZmoID4gYmlvbG9naWNhbFwtd2VhcG9uXC1cKHVzaW5nXC1nZXJtc1wpOwor5Yil6ZaL55Sf6Z2iID4gc3RhcnRcLXNvbWV0aGluZ1wtbmV3XC1vclwtb3JpZ2luYWw7CivlpoLpo6LkvLzmuLQgPiB0aGlyc3RpbmdcLW9yXC1odW5nZXJpbmdcLWZvclwtc3RoXC47CivplovlnIvlhYPli5sgPiBmb3VuZGluZ1wtZmF0aGVyc1wtXChvZlwtYVwtY291bnRyeVwpOwor55u05o6l5pW45pOaID4gZGF0YVwtZGlyZWN0XC1cKGluXC1sYW5cLWVtdWxhdGlvblwpOwor5YKz57Wx6Yar6JelID4gXChjaGluZXNlXClcLXRyYWRpdGlvbmFsXC1tZWRpY2luZTsKK+acieWPsuS7peS+hiA+IHNpbmNlXC10aGVcLWJlZ2lubmluZ1wtb2ZcLWhpc3Rvcnk7CivljIXmsrvnmb7nl4UgPiBndWFyYW50ZWVcLXRvXC1jdXJlXC1hbGxcLWRpc2Vhc2VzOwor5oyJ6ZyA5YiG6YWNID4gZGlzdHJpYnV0aW9uXC1hY2NvcmRpbmdcLXRvXC1uZWVkOwor5LiW6LK/57WE57mUID4gd3RvXC1cKHdvcmxkXC10cmFkZVwtb3JnYW5pemF0aW9uXCk7CivmspLmnInku4DpurwgPiB0aGVyZScnc1wtbm90aGluZ1wtXChcLlwuXC5cLWFib3V0XC1pdFwpOwor5oyJ5Yue5YiG6YWNID4gZGlzdHJpYnV0aW9uXC1hY2NvcmRpbmdcLXRvXC13b3JrOwor6Zi/5ouJ5pyo5ZyWID4gYWxtYXR5XC1cKGNhcGl0YWxcLW9mXC1rYXpha2hzdGFuXCk7CivkuIPlsaTmnrbmp4sgPiBzZXZlblwtbGF5ZXJcLWFyY2hpdGVjdHVyZVwtXChvc2lcKTsKK+aHieacieeboeaciSA+IGV2ZXJ5dGhpbmdcLVwob25lXC1jb3VsZFwtaW1hZ2luZVwpOwor6Z2S5bGx57ag5rC0ID4gdmVyZGFudFwtaGlsbHNcLWFuZFwtZ3JlZW5cLXdhdGVyczsKK+iZueapi+apn+WgtCA+IGhvbmdxaWFvXC1haXJwb3J0XC1cKGluXC1zaGFuZ2hhaVwpOwor57Wx5LiA5oub55SfID4gbmF0aW9uYWxcLXVuaWZpZWRcLWVudHJhbmNlXC1leGFtOwor5p2x6YOo5pmC6ZaTID4gXCh1XC5zXC5cKVwtZWFzdGVyblwtXChzdGFuZGFyZFwpXC10aW1lOwor5pmC5aSn5pmC5bCPID4gc29tZXRpbWVzXC1iaWdcLFwtc29tZXRpbWVzXC1zbWFsbDsKK+S4jei+reiAjOWIpSA+IGxlYXZlXC13aXRob3V0XC1zYXlpbmdcLWdvb2RcLWJ5ZTsKK+eZvuiBveS4jeWOrSA+IHdvcnRoXC1oZWFyaW5nXC1hXC1odW5kcmVkXC10aW1lczsKK+S9jumajuiqnuiogCA+IGxvd1wtbGV2ZWxcLVwoY29tcHV0ZXJcKVwtbGFuZ3VhZ2U7CivkuI3otrPngrroqJMgPiBub3RcLXRvXC1iZVwtdGFrZW5cLWFzXC1hblwtZXhhbXBsZTsKK+Wkp+WQueWkp+aTgiA+IG1ha2VcLWFuXC1leGhpYml0aW9uXC1vZlwtb25lc2VsZjsKK+WuieS5i+iLpee0oCA+IGJlYXJcLWhhcmRzaGlwXC13aXRoXC1lcXVhbmltaXR5Owor6KW/5ZOI5Yqq5YWLID4gXChraW5nXClcLXNpaGFub3VrXC1cKG9mXC1jYW1ib2RpYVwpOwor5q665Lq65qGI5Lu2ID4gXChjYXNlXC1vZlwsXC1pbmNpZGVudFwtb2ZcKVwtbXVyZGVyOwor6IOM6YGT6ICM6aazID4gcnVuXC1pblwtdGhlXC1vcHBvc2l0ZVwtZGlyZWN0aW9uOwor5L2O57Sa6Kqe6KiAID4gbG93XC1sZXZlbFwtXChjb21wdXRlclwpXC1sYW5ndWFnZTsKK+S4jeWQjeS4gOaWhyA+IHdpdGhvdXRcLWFcLXBlbm55XC10b1wtb25lJydzXC1uYW1lOwor5LiN54Sh5bCP6KOcID4gbm90XC1iZVwtd2l0aG91dFwtc29tZVwtYWR2YW50YWdlOwor5Yqg5by3566h5Yi2ID4gdG9cLXRpZ2h0ZW5cLWNvbnRyb2xcLVwob3Zlclwtc3RoXCk7CivkurrmsJHml6XloLEgPiByZW5taW5cLXJpYmFvXC1cKHBlb3BsZScnc1wtZGFpbHlcKTsKK+mWi+Wni+S7peWJjSA+IGJlZm9yZVwtdGhlXC1iZWdpbm5pbmdcLVwob2ZcLXN0aFwpOwor5LiN6K2Y5aSn6auUID4gZmFpbFwtdG9cLXNlZVwtdGhlXC1sYXJnZXJcLWlzc3VlczsKK+S4jeaJk+iHquaLmyA+IGNvbmZlc3NcLXdpdGhvdXRcLWJlaW5nXC1wcmVzc2VkOwor5LiA6IiJ5YWp5b6XID4ga2lsbFwtdHdvXC1iaXJkc1wtd2l0aFwtb25lXC1zdG9uZTsKK+S4jemAn+S5i+WuoiA+IHVuaW52aXRlZFwtb3JcLXVuZXhwZWN0ZWRcLWd1ZXN0Owor5LiN5b6X6KaB6aCYID4gZmFpbFwtdG9cLWdyYXNwXC10aGVcLW1haW5cLXBvaW50czsKK+mAsuihjOiqv+afpSA+IHRvXC1jYXJyeVwtb3V0XC1hblwtaW52ZXN0aWdhdGlvbjsKK+Wkp+ihl+Wwj+W3tyA+IGxhcmdlXC1zdHJlZXRzXC1hbmRcLXNtYWxsXC1sYW5lczsKK+WQhOWkp+i7jeWNgCA+IFwidGhlXC1ncmVhdGVyXC1taWxpdGFyeVwtYXJlYXNcIjsKK+WRvOexsue+juWciyA+IHRvXC1jYWxsXC1vblwtdGhlXC11bml0ZWRcLXN0YXRlczsKK+ixkOiho+i2s+mjnyA+IGhhdmVcLWFtcGxlXC1mb29kXC1hbmRcLWNsb3RoaW5nOwor5LiN55+l5aW95q25ID4gbm90XC1rbm93XC13aGF0JydzXC1nb29kXC1mb3JcLW9uZTsKK+e2sueuoeaOpeWPoyA+IG5ldHdvcmtcLW1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+agueaTmuS4iuihqCA+IGFjY29yZGluZ1wtdG9cLXRoZVwtYWJvdmVcLXRhYmxlOwor5ZyL6Ziy5Yip55uKID4gXChuYXRpb25hbFwpXC1kZWZlbmNlXC1pbnRlcmVzdHM7CivmnKzmnKvlgJLnva4gPiB0YWtlXC10aGVcLWJyYW5jaFwtZm9yXC10aGVcLXJvb3Q7CivmirHpoK3nl5vlk60gPiBjcnlcLW9uXC1lYWNoXC1vdGhlcicnc1wtc2hvdWxkZXI7CivkuI3kuIDogIzotrMgPiBieVwtbm9cLW1lYW5zXC1hblwtaXNvbGF0ZWRcLWNhc2U7Civnmb3ntJnpu5HlrZcgPiBcKHdyaXR0ZW5cKVwtaW5cLWJsYWNrXC1hbmRcLXdoaXRlOwor5LiN56KO546755KDID4gc2hhdHRlcnByb29mXC1vclwtc2FmZXR5XC1nbGFzczsKK+iOq+iht+S4gOaYryA+IGNhbm5vdFwtZGVjaWRlXC13aGljaFwtaXNcLXJpZ2h0Owor5YWr5ZyL6IGv6LuNID4gdGhlXC1laWdodFwtcG93ZXJcLWFsbGllZFwtZm9yY2U7CivlpJrlubTku6XkvoYgPiBmb3JcLW1hbnlcLXllYXJzXC1cKGluXC10aGVcLXBhc3RcKTsKK+efpeitmOeUouasiiA+IGludGVsbGVjdHVhbFwtcHJvcGVydHlcLXJpZ2h0czsKK+iqk+atu+S4jemZjSA+IHRvXC12b3dcLXRvXC1maWdodFwtdG9cLXRoZVwtZGVhdGg7CivmspLmnInlv4XopoEgPiB0aGVyZVwtaXNcLW5vXC1uZWVkXC10b1wtXChkb1wtc3RoXCk7CivkuK3mloflu6Pmkq0gPiBjaGluZXNlXC1cKGxhbmd1YWdlXClcLWJyb2FkY2FzdDsKK+enu+auluaJi+ihkyA+IFwob3JnYW5cKVwtdHJhbnNwbGFudFwtb3BlcmF0aW9uOwor5rWq5a2Q5Zue6aCtID4gdGhlXC1yZXR1cm5cLW9mXC1hXC1wcm9kaWdhbFwtc29uOwor5LiN5oCl5LmL5YuZID4gYVwtbWF0dGVyXC1vZlwtbm9cLWdyZWF0XC11cmdlbmN5Owor6Zu756OB5bmy5pO+ID4gZWxlY3Ryb21hZ25ldGljXC1pbnRlcmZlcmVuY2U7CivkuI3mmJPkuYvoq5YgPiBwZXJmZWN0bHlcLXNvdW5kXC1wcm9wb3NpdGlvbjsKK+WQhOeoruWQhOaooyA+IHZhcmlvdXNcLXNvcnRzXC1hbmRcLXZhcmlldGllczsKK+S4jemBlei+suaZgiA+IG5vdFwtbWlzc1wtdGhlXC1mYXJtaW5nXC1zZWFzb247CivkuoLkvZzmsbrlrpogPiB0b1wtbWFrZVwtYXJiaXRyYXJ5XC1kZWNpc2lvbnM7CivlpKflmajmmZrmiJAgPiBncmFuZFwtdGFsZW50c1wtbWF0dXJlXC1zbG93bHk7CivmjInmraXlsLHnj60gPiBmb2xsb3dcLXRoZVwtcHJlc2NyaWJlZFwtb3JkZXI7CivlpJbkuqTpg6jplbcgPiBtaW5pc3Rlclwtb2ZcLWZvcmVpZ25cLWFmZmFpcnM7CivoiInkuJbnn5rnm64gPiBhdHRyYWN0XC13b3JsZHdpZGVcLWF0dGVudGlvbjsKK+eNqOaWt+WwiOihjCA+IGFjdFwtaW5cLWFuXC1hcmJpdHJhcnlcLWZhc2hpb247Civnp4HkurrpkbDljJkgPiBwcml2YXRlXC1rZXlcLVwoaW5cLWVuY3J5cHRpb25cKTsKK+WNu+S5i+S4jeaBrSA+IHRvXC1yZWZ1c2VcLXdvdWxkXC1iZVwtaW1wb2xpdGU7CivppqzlpKrnpo/pn7MgPiBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLW1hdHRoZXc7Civpm7voqbHmnIPorbAgPiBcKHRlbGVwaG9uZVwpXC1jb25mZXJlbmNlXC1jYWxsOwor5LiN6JC956qg6Ie8ID4gbm90XC1mb2xsb3dcLXRoZVwtYmVhdGVuXC10cmFjazsKK+aMieeFp+ioiOWKgyA+IGFjY29yZGluZ1wtdG9cLVwodGhlXClcLXBsYW5cLVwuXC5cLjsKK+S6i+aDheimgeWBmiA+IHRoaW5nXC10aGF0XC1uZWVkc1wtdG9cLWJlXC1kb25lOwor5LiA6Lev5bmz5a6JID4gdG9cLWhhdmVcLWFcLXBsZWFzYW50XC1qb3VybmV5Owor57SQ57SE5pmC5aCxID4gbmV3XC15b3JrXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+W4uOWVj+WVj+mhjCA+IGZyZXF1ZW50bHlcLWFza2VkXC1xdWVzdGlvbnM7Civnmb7lrZTljYPnmKEgPiByaWRkbGVkXC13aXRoXC1nYXBpbmdcLXdvdW5kczsKK+WFtemAo+emjee1kCA+IHJhdmFnZWRcLWJ5XC1zdWNjZXNzaXZlXC13YXJzOwor6ZW35pyf5Lul5L6GID4gZXZlclwtc2luY2VcLWFcLWxvbmdcLXRpbWVcLWFnbzsKK+WuieWutuiQveaItiA+IG1ha2VcLW9uZScnc1wtaG9tZVwtaW5cLWFcLXBsYWNlOwor5YWl5pyo5LiJ5YiGID4gd3JpdHRlblwtaW5cLWFcLWZvcmNlZnVsXC1oYW5kOwor5YiG5pmC5aSa5belID4gdGltZVwtZGl2aXNpb25cLW11bHRpcGxleGluZzsKK+aguea3seiSguWbuiA+IGRlZXBcLXJvb3RlZFwtXChwcm9ibGVtXCxcLWV0Y1wpOwor5pif5bO25pel5aCxID4gc2luZ1wtdGFvXC1kYWlseVwtXChuZXdzcGFwZXJcKTsKK+mbu+S/oeacjeWLmSA+IHRlbGVjb21tdW5pY2F0aW9uc1wtc2VydmljZTsKK+WFrOmWi+mRsOWMmSA+IHB1YmxpY1wta2V5XC1cKGluXC1lbmNyeXB0aW9uXCk7Civpm7vkv6HntrLot68gPiB0ZWxlY29tbXVuaWNhdGlvbnNcLW5ldHdvcms7CivmhJ/mn5PkurrmlbggPiBudW1iZXJcLW9mXC1pbmZlY3RlZFwtcGVyc29uczsKK+eZvuatpeepv+aliiA+IHNob290XC13aXRoXC1ncmVhdFwtcHJlY2lzaW9uOwor5Ye654++5oSP5aSWID4gXCh0b1wtYXBwZWFyXClcLXVuZXhwZWN0ZWRcKGx5XCk7CivkuIDop7jljbPnmbwgPiBjb3VsZFwtaGFwcGVuXC1hdFwtYW55XC1tb21lbnQ7Civnupboiq/nm7TlvpEgPiBjb3JlXC1kaWFtZXRlclwtXChvZlwtYVwtZmliZXJcKTsKK+mAsuihjOS6pOaYkyA+IHRvXC1jYXJyeVwtb3V0XC1hXC10cmFuc2FjdGlvbjsKK+WIpeWHuuW/g+ijgSA+IGFkb3B0XC1hblwtb3JpZ2luYWxcLWFwcHJvYWNoOwor55m+55m855m+5LitID4gZXZlcnlcLXNob3RcLWhpdHNcLXRoZVwtdGFyZ2V0Owor5LiN5Lqi5LiN5Y2RID4gbmVpdGhlclwtaGF1Z2h0eVwtbm9yXC1odW1ibGU7Civnmb3lo4HnhKHnkZUgPiBpbXBlY2NhYmxlXC1tb3JhbFwtaW50ZWdyaXR5Owor5pWX5a2Q5Zue6aCtID4gcmV0dXJuXC1vZlwtdGhlXC1wcm9kaWdhbFwtc29uOwor6Kiq5ZWP576O5ZyLID4gdG9cLXZpc2l0XC10aGVcLXVuaXRlZFwtc3RhdGVzOwor5LiN5aSx5pmC5qmfID4gc2VpemVcLXRoZVwtb3Bwb3J0dW5lXC1tb21lbnQ7CivlsI7lvYjmvZvoiYcgPiBcKGd1aWRlZFwpXC1taXNzaWxlXC1zdWJtYXJpbmU7CivlronlpoLms7DlsbEgPiBhc1wtc2VjdXJlXC1hc1wtbW91bnRcLXRhaXNoYW47CivkuI3nvqnkuYvosqEgPiBpbGxcLWdvdHRlblwtd2VhbHRoXC1vclwtZ2FpbnM7Civph43opoHnmoTmmK8gPiBpdFwtaXNcLWltcG9ydGFudFwtXCh0aGF0XClcLVwuXC5cLjsKK+mAmuS/oeaKgOihkyA+IGNvbW11bmljYXRpb25zXC10ZWNobm9sb2d5Owor5aSW5Yyv5YSy5YKZID4gZm9yZWlnblwtZXhjaGFuZ2VcLXJlc2VydmVzOwor5Yue5YuV5pWZ6aSKID4gcmVlZHVjYXRpb25cLXRocm91Z2hcLWxhYm9yOwor5LiN6L6t6L6b6IumID4gbWFrZVwtbm90aGluZ1wtb2ZcLWhhcmRzaGlwczsKK+eoi+W8j+eQhuWToSA+IHByb2dyYW1cLW1hbmFnZXJcLVwod2luZG93c1wpOwor5rCR5Li76buo5Lq6ID4gYVwtZGVtb2NyYXRpY1wtcGFydHlcLW1lbWJlcjsKK+S4ieWNgeW5tOS+hiA+IGZvclwtdGhlXC1wYXN0XC10aGlydHlcLXllYXJzOwor5oqA6KGT55m85bGVID4gdGVjaG5vbG9naWNhbFwtZGV2ZWxvcG1lbnQ7Civpq5jnrYnlrbjmoKEgPiBjb2xsZWdlc1wtYW5kXC11bml2ZXJzaXRpZXM7CivlurfmtoXni4TmoLwgPiBjb25uZWN0aWN1dFwtXChzdGF0ZVwtaW5cLXVzXCk7Civllq7pgKPmjqXnq5kgPiBzaW5nbGVcLWF0dGFjaG1lbnRcLXN0YXRpb247CivnrKblkIjmqJnmupYgPiB0b1wtY29tcGx5XC13aXRoXC1hXC1zdGFuZGFyZDsKK+ekuuWogemBiuihjCA+IGFcLVwocHJvdGVzdFwpXC1kZW1vbnN0cmF0aW9uOwor5aSn5pW155W25YmNID4gY29uZnJvbnRcLWFcLXBvd2VyZnVsXC1lbmVteTsKK+eglOijvemBjueoiyA+IG1hbnVmYWN0dXJpbmdcLWVudmlyb25tZW50Owor5Y+N5ZSH55u46K2PID4gYW5zd2VyXC1iYWNrXC1zYXJjYXN0aWNhbGx5Owor5qC46L2f54K45qmfID4gbnVjbGVhclwtYm9tYmVyXC1cKGFpcmNyYWZ0XCk7CivkuI3lvpfkurrlv4MgPiBub3RcLWVuam95XC1wb3B1bGFyXC1zdXBwb3J0Owor55u06KiA5LiN6KuxID4gc3BlYWtcLWZyYW5rbHlcLWFuZFwtYmx1bnRseTsKK+aZr+WxseWFrOWckiA+IG5hbWVcLW9mXC1hXC1wYXJrXC1pblwtYmVpamluZzsKK+mdouiHqOWbsOmboyA+IHRvXC1iZVwtZmFjZWRcLXdpdGhcLXByb2JsZW1zOwor5LiN5YuZ5q2j5qWtID4gbm90XC1lbmdhZ2VcLWluXC1ob25lc3RcLXdvcms7CivmhJvnkIbkuI3nkIYgPiBsb29rXC1jb2xkXC1hbmRcLWluZGlmZmVyZW50Owor5pS55ZaE6YCa6KiKID4gdG9cLWltcHJvdmVcLWNvbW11bmljYXRpb25zOwor57i95Y+D6KyA6ZW3ID4gXChtaWxpdGFyeVwpXC1jaGllZlwtb2ZcLXN0YWZmOwor6IOM5L+h5qOE576pID4gYnJlYWtcLWZhaXRoXC13aXRoXC1zb21lYm9keTsKK+i3qOWci+WFrOWPuCA+IHRyYW5zbmF0aW9uYWxcLWNvcnBvcmF0aW9uOwor5YWx5ZKM6buo5Lq6ID4gYVwtcmVwdWJsaWNhblwtcGFydHlcLW1lbWJlcjsKK+mmrOWPr+emj+mfsyA+IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbWFyazsKK+avj+W5tOS4gOW6piA+IG9uY2VcLWFcLXllYXJcLVwoZXZlcnlcLXllYXJcKTsKK+Wfn+WQjeiou+WGiiA+IGRvbWFpblwtbmFtZVwtcmVnaXN0cmF0aW9uOwor5YW16LK056We6YCfID4gc3BlZWRcLWlzXC1wcmVjaW91c1wtaW5cLXdhcjsKK+WkmumCiuWQiOS9nCA+IG11bHRpbGF0ZXJhbFwtY29vcGVyYXRpb247CivmipXmlL7luILloLQgPiB0b1wtcHV0XC1zdGhcLW9uXC10aGVcLW1hcmtldDsKK+iNkueEoeS6uueFmSA+IGRlc29sYXRlXC1hbmRcLXVuaW5oYWJpdGVkOwor57SE57+w56aP6Z+zID4gZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1qb2huOwor5Y2w5q2Q6Kqe6KiAID4gaW5kb1wtZXVyb3BlYW5cLVwobGFuZ3VhZ2VcKTsKK+e/kuS7peeCuuW4uCA+IGJlXC1hY2N1c3RvbWVkXC1vclwtdXNlZFwtdG87CivlhbXojZLppqzkuoIgPiB0dXJtb2lsXC1hbmRcLWNoYW9zXC1vZlwtd2FyOwor5LiN5YuV6IGy6ImyID4gbWFpbnRhaW5cLW9uZScnc1wtY29tcG9zdXJlOwor5rWu6bue6YGL566XID4gZmxvYXRpbmdcLXBvaW50XC1vcGVyYXRpb247CivlhafmlL/pg6jplbcgPiBtaW5pc3Rlclwtb2ZcLXRoZVwtaW50ZXJpb3I7CivpvLvph53nmYLms5UgPiBub3NlXC1hY3VwdW5jdHVyZVwtdGhlcmFweTsKK+iZm+aTrOeSsOWigyA+IHRoZW9yaGV0aWNhbFwtZW52aXJvbm1lbnQ7Civlr4bliIfms6jmhI8gPiBjbG9zZVwtYXR0ZW50aW9uXC1cKHRvXC1zdGhcKTsKK+S4jeaLmOS4gOagvCA+IG5vdFwtc3RpY2tcLXRvXC1vbmVcLXBhdHRlcm47Civlrozlhajmh4LlvpcgPiB0b1wtdW5kZXJzdGFuZFwtY29tcGxldGVseTsKK+S4jeW5s+WJh+mztCA+IHdoZXJlXC10aGVyZVwtaXNcLWluanVzdGljZTsKK+aguOS4jeaTtOaVoyA+IG51Y2xlYXJcLW5vbnByb2xpZmVyYXRpb247Civmk7rohKvljbHmqZ8gPiB0b1wtYnJlYWtcLW91dFwtb2ZcLWFcLWNyaXNpczsKK+WvjOW4g+iztOeJuSA+IGZ1bGxicmlnaHRcLVwoc2Nob2xhcnNoaXBcKTsKK+aSpeS6guWPjeatoyA+IGJyaW5nXC1vcmRlclwtb3V0XC1vZlwtY2hhb3M7CivlronnrKzmlq/lsbEgPiB0aGVcLWFuZGVzXC1tb3VudGFpblwtcmFuZ2U7Civnmb7nhYnmiJDpi7wgPiBiZVwtdGVtcGVyZWRcLWludG9cLWFcLXN0ZWVsOwor5ZyL5YuZ5qyh5Y2/ID4gdW5kZXJcLXNlY3JldGFyeVwtb2ZcLXN0YXRlOwor5Y2K5L+h5Y2K55aRID4gaGFsZlwtYmVsaWV2ZVwsXC1oYWxmXC1kb3VidDsKK+aLlOeBq+e9kOWFkiA+IGRldGFjaGFibGVcLXN0b3ZlXC1jaGltbmV5Owor5Y+k5biM6IeY6KqeID4gYW5jaWVudFwtZ3JlZWtcLVwobGFuZ3VhZ2VcKTsKK+WNg+e1suiQrOe4tyA+IGxpbmtlZFwtaW5cLWNvdW50bGVzc1wtd2F5czsKK+egtOWcn+WFuOemriA+IGdyb3VuZFwtYnJlYWtpbmdcLWNlcmVtb255Owor5pWZ5a245qmf5qeLID4gZWR1Y2F0aW9uYWxcLW9yZ2FuaXphdGlvbjsKK+S4jemBuuS9meWKmyA+IHNwYXJlXC1ub1wtcGFpbnNcLW9yXC1lZmZvcnQ7CivooajnpLrmlazmhI8gPiByZXNwZWN0ZnVsXCxcLXNob3dcLXJlc3BlY3Q7Civot6/liqDnpo/pn7MgPiBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLWx1a2U7CivpgJroqIrooYzmpa0gPiBjb21tdW5pY2F0aW9uc1wtaW5kdXN0cnk7CivmnKzkvY3kuLvnvqkgPiBzZWxmaXNoXC1kZXBhcnRtZW50YWxpc207CivngrrmiYDmrLLngrogPiBkb1wtd2hhdGV2ZXJcLW9uZVwtcGxlYXNlczsKK+S6uuawkeazlemZoiA+IHBlb3BsZScnc1wtY291cnRcLVwob2ZcLWxhd1wpOwor5ZWG5qWt5qmf5qeLID4gY29tbWVyY2lhbFwtb3JnYW5pemF0aW9uOwor5LiN57+86ICM6aObID4gZGlzYXBwZWFyXC13aXRob3V0XC10cmFjZTsKK+eVouaBreeVouaVrCA+IHJldmVyZW50XC1hbmRcLXJlc3BlY3RmdWw7Civnp5HnoJTkurrlk6EgPiBcKHNjaWVudGlmaWNcKVwtcmVzZWFyY2hlcjsKK+mAj+mcsua2iOaBryA+IHRvXC1kaXNjbG9zZVwtaW5mb3JtYXRpb247CivkuK3lnIvmmYLloLEgPiBjaGluYVwtdGltZXNcLVwobmV3c3BhcGVyXCk7CivlqIHlu4nmlq/loKEgPiB3aWxsaWFtc2J1cmdcLVwodmlyZ2luaWFcKTsKK+S+v+WunOihjOS6iyA+IGFjdFwtYXRcLW9uZScnc1wtZGlzY3JldGlvbjsKK+WVhualreeuoeeQhiA+IGJ1c2luZXNzXC1hZG1pbmlzdHJhdGlvbjsKK+WfuuekjumAn+eOhyA+IGJhc2ljXC1yYXRlXC1cKGFzXC1pblwtaXNkblwpOwor5omL5a+r6K2Y5YilID4gaGFuZHdyaXRpbmdcLXJlY29nbml0aW9uOwor5omL5a+r6L6v6K2YID4gaGFuZHdyaXRpbmdcLXJlY29nbml0aW9uOwor5q+U5q+U55qG5pivID4gY2FuXC1iZVwtZm91bmRcLWV2ZXJ5d2hlcmU7Civmo4ToiIrmj5vmlrAgPiB0b1wtdHVyblwtb3ZlclwtYVwtbmV3XC1sZWFmOwor5LiN5oOF5LmL6KuLID4gbXlcLXByZXN1bXB0dW91c1wtcmVxdWVzdDsKK+mbmemAo+aOpeermSA+IGR1YWxcLWF0dGFjaG1lbnRcLXN0YXRpb247Civoo5zliqnntYTnuZQgPiBhdXhpbGlhcnlcLW9yZ2FuaXphdGlvbnM7Civlm57poafmrbflj7IgPiB0b1wtbG9va1wtYmFja1wtYXRcLWhpc3Rvcnk7CivpgJroqIrljZTlrpogPiBjb21tdW5pY2F0aW9uc1wtcHJvdG9jb2w7CivmraXlsaXntq3oibEgPiBoYXZlXC1kaWZmaWN1bHR5XC13YWxraW5nOwor5YWx5ZCM56+p6YG4ID4gY29sbGFib3JhdGl2ZVwtZmlsdGVyaW5nOwor5aSn6ama5bCP5oCqID4gbXVjaFwtZnVzc1wtYWJvdXRcLW5vdGhpbmc7CivpgJrkv6HljZTlrpogPiBjb21tdW5pY2F0aW9uc1wtcHJvdG9jb2w7Civlhazlronlrpjlk6EgPiBwdWJsaWNcLXNhZmV0eVwtb2ZmaWNpYWxzOwor5YKz6Ly45oqA6KGTID4gdHJhbnNtaXNzaW9uXC10ZWNobm9sb2d5Owor5Yaw5aSp6Zuq5ZywID4gYVwtd29ybGRcLW9mXC1pY2VcLWFuZFwtc25vdzsKK+aUv+W6nOapn+aniyA+IGdvdmVybm1lbnRcLW9yZ2FuaXphdGlvbjsKK+S4jeWPr+eQhuWWuyA+IGJlXC1pbXBlcnZpb3VzXC10b1wtcmVhc29uOwor6IG35qWt5Lit5a24ID4gdm9jYXRpb25hbFwtaGlnaFwtc2Nob29sOwor6Ieq6aOf5YW25p6cID4gcmVhcFwtd2hhdFwtb25lXC1oYXNcLXNvd247CivkuI3pnLLogbLoibIgPiBub3RcLXNob3dcLW9uZScnc1wtZmVlbGluZzsKK+Wkp+eFnumiqOaZryA+IGRhbXBlbmluZ1wtb25lJydzXC1zcGlyaXQ7CivnvoXmm7zoqp7ml48gPiByb21hbmNlXC1sYW5ndWFnZVwtZ3JvdXA7CivlrbDog73nlJ/lt6cgPiBwcmFjdGljZVwtbWFrZXNcLXBlcmZlY3Q7Civll7fll7flvoXlk7ogPiBjcnlcLXBpdGVvdXNseVwtZm9yXC1mb29kOwor5LiN55eb5LiN55eSID4gc2NyYXRjaGluZ1wtdGhlXC1zdXJmYWNlOwor6IGv57ay55Kw5aKDID4gbmV0d29ya2luZ1wtZW52aXJvbm1lbnQ7Civop6Pph4vln7fooYwgPiBpbnRlcnByZXRlZFwtXChjb21wdXRlclwpOwor5LiN6L+R5Lq65oOFID4gbm90XC1hbWVuYWJsZVwtdG9cLXJlYXNvbjsKK+aUv+ayu+apn+aniyA+IHBvbGl0aWNhbFwtb3JnYW5pemF0aW9uOwor5Y+m55y855u455yLID4gdG9cLXZpZXdcLWluXC1hXC1uZXdcLWxpZ2h0Owor5L+h5oGv5oqA6KGTID4gaW5mb3JtYXRpb25cLXRlY2hub2xvZ3k7CivlronlhajogIPmha4gPiBzZWN1cml0eVwtY29uc2lkZXJhdGlvbjsKK+S/oeaBr+euoeeQhiA+IGluZm9ybWF0aW9uXC1tYW5hZ2VtZW50Owor6Lmm6Lmm6Lez6LezID4gYm91bmNpbmdcLWFuZFwtdml2YWNpb3VzOwor6YCa5L+h5a+G5bqmID4gY29tbXVuaWNhdGlvbnNcLWRlbnNpdHk7CivmspLmnInlt67liKUgPiB0aGVyZVwtaXNcLW5vXC1kaWZmZXJlbmNlOwor5LiN6KiA6ICM5Za7ID4gaXRcLWdvZXNcLXdpdGhvdXRcLXNheWluZzsKK+atpeiqv+S4gOiHtCA+IHRvXC1iZVwtdW5pdGVkXC1pblwtYWN0aW9uOwor6YCa6KiK6YCa6YGTID4gY29tbXVuaWNhdGlvbnNcLWNoYW5uZWw7CivmjqHoqKroqJjogIUgPiBpbnZlc3RpZ2F0aXZlXC1yZXBvcnRlcjsKK+avlOi8g+iAjOiogCA+IGNvbXBhcmF0aXZlbHlcLXNwZWFraW5nOwor6Zui6ZaL5pWF6YSJID4gdG9cLWxlYXZlXC1vbmUnJ1wtaG9tZWxhbmQ7CivpgJrkv6HntrLntaEgPiBjb21tdW5pY2F0aW9uc1wtbmV0d29yazsKK+aVuOWtl+mAmuS/oSA+IGRpZ2l0YWxcLWNvbW11bmljYXRpb25zOwor5YWx55Si6buo5ZOhID4gY29tbXVuaXN0XC1wYXJ0eVwtbWVtYmVyOwor57ay6Lev5p625qeLID4gbmV0d29ya1wtaW5mcmFzdHJ1Y3R1cmU7CivmioDooZPmg4XloLEgPiBpbmZvcm1hdGlvblwtdGVjaG5vbG9neTsKK+e+juWci+S5i+mfsyA+IHZvaWNlXC1vZlwtYW1lcmljYVwtcmFkaW87CivmqJnmupbntYTnuZQgPiBzdGFuZGFyZHNcLW9yZ2FuaXphdGlvbjsKK+eNqOaUrOW4guWgtCA+IHRvXC1tb25vcG9saXplXC1hXC1tYXJrZXQ7CivlvazlvazmnInnpq4gPiByZWZpbmVkXC1hbmRcLWNvdXJ0ZW91czsKK+WujOWFqOWFvOWuuSA+IGNvbXBsZXRlbHlcLWNvbXBhdGlibGU7Civop4DmuKzooZvmmJ8gPiBvYnNlcnZhdGlvblwtc2F0ZWxsaXRlOwor5LiJ6JCs5LiD5Y2DID4gdGhpcnR5XC1zZXZlblwtdGhvdXNhbmQ7CivlpKfotablnIvpmpsgPiBhbW5lc3R5XC1pbnRlcm5hdGlvbmFsOwor5oOF5aCx5a6Y5ZOhID4gaW50ZWxsaWdlbmNlXC1vZmZpY2lhbDsKK+mbu+ejgeWZquiBsiA+IGVsZWN0cm9tYWduZXRpY1wtbm9pc2U7CivplbfpgJTntrLot68gPiBsb25nXC1kaXN0YW5jZVwtbmV0d29yazsKK+avlOiJsuWIhuaekCA+IGNvbG9yaW1ldHJpY1wtYW5hbHlzaXM7CivluqvniL7lvrfkurogPiBrdXJkaXNoXC1wZXJzb25cfHBlb3BsZTsKK+W+rui7n+WFrOWPuCA+IG1pY3Jvc29mdFwtY29ycG9yYXRpb247CivkuI3orZjmiqzoiIkgPiBmYWlsXC10b1wtYXBwcmVjaWF0ZVwtc2I7CivluK3ljbfkup7mtLIgPiB0b1wtc3dlZXBcLXRocm91Z2hcLWFzaWE7CivkvZzmpa3nkrDlooMgPiBvcGVyYXRpbmdcLWVudmlyb25tZW50Owor5pm65oWn55Si5qyKID4gaW50ZWxsZWN0dWFsXC1wcm9wZXJ0eTsKK+mrmOe0muWumOWToSA+IGhpZ2hcLXJhbmtpbmdcLW9mZmljaWFsOwor5Y2K5aSc5LiJ5pu0ID4gaW5cLXRoZVwtZGVwdGhcLW9mXC1uaWdodDsKK+WPlua2iOemgeS7pCA+IHRvXC1saWZlXC1hXC1wcm9oaWJpdGlvbjsKK+Wvpumam+aHieeUqCA+IHByYWN0aWNhbFwtYXBwbGljYXRpb247CivnlJ/nlKLog73lipsgPiBtYW51ZmFjdHVyaW5nXC1hYmlsaXR5Owor57i957Wx6YG46IiJID4gcHJlc2lkZW50aWFsXC1lbGVjdGlvbjsKK+S4jeaTh+aJi+autSA+IGJ5XC1mYWlyXC1tZWFuc1wtb3JcLWZvdWw7CivlnIvpmpvmqJnmupYgPiBpbnRlcm50aW9uYWxcLXN0YW5kYXJkOwor6YeR6Zm15aSn5a24ID4gdW5pdmVyc2l0eVwtb2ZcLW5hbmtpbmc7CivnlbDos6rntrLot68gPiBoZXRlcm9nZW5lb3VzXC1uZXR3b3JrOwor55m95omL6LW35a62ID4gYnVpbGRcLXVwXC1mcm9tXC1ub3RoaW5nOwor6JGh6JCE54mZ6KqeID4gcG9ydHVndWVzZVwtXChsYW5ndWFnZVwpOwor5LiA6IeC5LmL5YqbID4gXChsZW5kXClcLWFcLWhlbHBpbmdcLWhhbmQ7CivkuI3lgKvkuI3poZ4gPiBuZWl0aGVyXC1maXNoXC1ub3JcLWZvd2w7Civln7rmnKzljp/nkIYgPiBmdW5kYW1lbnRhbFwtcHJpbmNpcGxlOwor5pKr6aSK5oiQ5Lq6ID4gdG9cLWJyaW5nXC11cFwtXChhXC1jaGlsZFwpOwor6YCa5L+h5pyN5YuZID4gY29tbXVuaWNhdGlvblwtc2VydmljZTsKK+Wci+eHn+S8gealrSA+IG5hdGlvbmFsaXplZFwtaW5kdXN0cnk7CivkuozljYHlhavomZ8gPiAyOHRoXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor5pys5Zu65p6d5qauID4gd2hlblwtdGhlXC1yb290XC1pc1wtZmlybTsKK+WCs+i8uOioreWCmSA+IHRyYW5zbWlzc2lvblwtZmFjaWxpdHk7CivkuI3mmK/lkbPlhZIgPiBub3RcLXRoZVwtcmlnaHRcLWZsYXZvdXI7Civmk43kvZznkrDlooMgPiBvcGVyYXRpbmdcLWVudmlyb25tZW50Owor6Zqo5qmf5pmC6ZaTID4gcmFuZG9tXC1wZXJpb2RcLW9mXC10aW1lOwor5YKz6Ly46Led6ZuiID4gdHJhbnNtaXNzaW9uXC1kaXN0YW5jZTsKK+WPpui1t+eIkOeBtiA+IHRvXC1zdGFydFwtZnJvbVwtc2NyYXRjaDsKK+mmluiFpuacg+itsCA+IGxlYWRlcnNoaXBcLWNvbmZlcmVuY2U7CivlpoLlh7rkuIDovY0gPiBiZVwtcHJlY2lzZWx5XC10aGVcLXNhbWU7Civnn67mnYblk4HnqK4gPiBzaG9ydFwtc3RhbGtlZFwtdmFyaWV0eTsKK+mBi+eul+eSsOWigyA+IG9wZXJhdGluZ1wtZW52aXJvbm1lbnQ7CivntZ7nm6HohabmsYEgPiB0b1wtd3JhY2tcLW9uZScnc1wtYnJhaW5zOwor5YWJ56OB56Kf5qmfID4gbWFnbmV0b1wtb3B0aWNhbFwtZHJpdmU7CivlnIvmnInkvIHmpa0gPiBuYXRpb25hbGl6ZWRcLWJ1c2luZXNzOwor57at5ZC+54i+5Lq6ID4gdWlnaHVyXC1wZXJzb25cfHBlb3BsZTsKK+mWi+mZpOWtuOexjSA+IHRvXC1leHBlbFwtZnJvbVwtc2Nob29sOwor6aaW5bit5Luj6KGoID4gY2hpZWZcLXJlcHJlc2VudGF0aXZlOwor54mp55CG57WQ5qeLID4gcGh5c2ljYWxcLWNvbXBvc2l0aW9uOwor5ZyL5pyD6K2w6ZW3ID4gc3BlYWtlclwtb2ZcLXRoZVwtaG91c2U7Civmh4nnlKjlubPlj7AgPiBhcHBsaWNhdGlvblwtcGxhdGZvcm07CivljIjniZnliKnoqp4gPiBodW5nYXJpYW5cLVwobGFuZ3VhZ2VcKTsKK+S4jeS/oeS7u+ahiCA+IG5vXC1jb25maWRlbmNlXC1tb3Rpb247CivmlLnlloTpl5zkv4IgPiB0b1wtaW1wcm92ZVwtcmVsYXRpb25zOwor5YGc54Gr5Y2U6K2wID4gY2Vhc2VcLWZpcmVcLWFncmVlbWVudDsKK+S6jOWNgeS6jOiZnyA+IDIyXC1uZFwtZGF5XC1vZlwtYVwtbW9udGg7CivnorrmnInlhbbkuosgPiBcKGNvbmZpcm1cLXRvXC1iZVwpXC10cnVlOwor5aSn5Z6L5LyB5qWtID4gbGFyZ2VcLXNjYWxlXC1pbmR1c3RyeTsKK+S9v+W+kuihjOWCsyA+IGFjdHNcLW9mXC10aGVcLWFwb3N0bGVzOwor5b+F5LiN5Y+v5bCRID4gYWJzb2x1dGVseVwtbmVjZXNzYXJ5Owor5LiN5Zyo6Kmx5LiLID4gYmVcLW5vdGhpbmdcLWRpZmZpY3VsdDsKK+aHieeUqOi7n+S7tiA+IGFwcGxpY2F0aW9uXC1zb2Z0d2FyZTsKK+S6pOaPm+aKgOihkyA+IHN3aXRjaGluZ1wtdGVjaG5vbG9neTsKK+eoi+W8j+iqnuiogCA+IHByb2dyYW1taW5nXC1sYW5ndWFnZTsKK+eZvOihqOiBsuaYjiA+IHRvXC1pc3N1ZVwtYVwtc3RhdGVtZW50Owor6Zu76IWm6Kqe6KiAID4gcHJvZ3JhbW1pbmdcLWxhbmd1YWdlOwor6Zu75a2Q5bel5qWtID4gZWxlY3Ryb25pY3NcLWluZHVzdHJ5Owor5Y+s6ZaL5pyD6K2wID4gdG9cLWNhbGxcLWFcLWNvbmZlcmVuY2U7CivllYbmpa3mh4nnlKggPiBidXNpbmVzc1wtYXBwbGljYXRpb247Civmr4/ms4HmhIjkuIsgPiBzdGVhZGlseVwtZGV0ZXJpb3JhdGU7Civou43kuovmqZ/mp4sgPiBtaWxpdGFyeVwtaW5zdGl0dXRpb247CivliKTomZXmrbvliJEgPiB0b1wtc2VudGFuY2VcLXRvXC1kZWF0aDsKK+iyqOW5o+iytuWAvCA+IGN1cnJlbmN5XC1kZXZhbHVhdGlvbjsKK+aMieeFp+azleW+iyA+IGFjY29yZGluZ1wtdG9cLXRoZVwtbGF3Owor5YyX5Zue5q2457eaID4gdGhlXC10cm9waWNcLW9mXC1jYW5jZXI7Civpm7vlrZDlhYPku7YgPiBlbGVjdHJvbmljXC1jb21wb25lbnQ7CivntpPmv5/oobDpgIAgPiBcKGVjb25vbWljXClcLXJlY2Vzc2lvbjsKK+WFieS6jOalteeuoSA+IGxpZ2h0XC1lbWl0dGluZ1wtZGlvZGU7CivkuI3nqanlubPooaEgPiB1bnN0YWJsZVwtZXF1aWxpYnJpdW07Civkv6Hmga/os4fmupAgPiBpbmZvcm1hdGlvblwtcmVzb3VyY2U7Civlha3ljYHkupTmrbIgPiBzaXh0eVwtZml2ZVwteWVhcnNcLW9sZDsKK+aZuuiDveWkp+aokyA+IGludGVsbGlnZW50XC1idWlsZGluZzsKK+WwkeaVuOawkeaXjyA+IG1pbm9yaXR5XC1uYXRpb25hbGl0eTsKK+WFqOmdouemgeatoiA+IGNvbXBsZXRlXC1wcm9oaWJpdGlvbjsKK+movummrOWkp+i7iiA+IG11bGVcLWFuZFwtaG9yc2VcLWNhcnRzOwor57aT5r+f55m85bGVID4gZWNvbm9taWNcLWRldmVsb3BtZW50Owor6YCa6KiK57O757WxID4gY29tbXVuaWNhdGlvblwtc3lzdGVtOwor5LiN5LqM5rOV6ZaAID4gdGhlXC1vbmVcLWFuZFwtb25seVwtd2F5Owor54Sh5YO554+N54+gID4gcGVhcmxcLW9mXC1ncmVhdFwtcHJpY2U7CivmnKrmiJDlubTogIUgPiBtaW5vclwtXChub3RcLWFuXC1hZHVsdFwpOwor5LyK5pav6Jit5aChID4gaXNsYW1hYmFkXC1cKHBha2lzdGFuXCk7CivkuozljYHlm5vomZ8gPiAyNFwtdGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor5aSn5aSx5omA5pybID4gZ3JlYXRseVwtZGlzc2Fwb2ludGVkOwor5LyB5qWt6ZuG5ZyYID4gaW5kdXN0cnlcLWFzc29jaWF0aW9uOwor566h55CG5o6l5Y+jID4gbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor5oeJ55So6Luf6auUID4gYXBwbGljYXRpb25cLXNvZnR3YXJlOwor55Sf55Si6Kit5YKZID4gcHJvZHVjdGlvblwtZXF1aXBtZW50Owor576p5YuZ5pWZ6IKyID4gY3VtcHVsc29yeVwtZWR1Y2F0aW9uOwor5YKz6Ly45o6n5Yi2ID4gdHJhbnNtaXNzaW9uXC1jb250cm9sOwor5LiN5oe35aW95oSPID4gaGFyYm91clwtZXZpbFwtZGVzaWduczsKK+iouuaWt+WKn+iDvSA+IGRpYWdub3N0aWNcLWZ1bmN0aW9uOwor5YKz6Ly45aqS6auUID4gdHJhbnNtaXNzaW9uXC1tZWRpdW07Civotbfmrbvlm57nlJ8gPiBhcmlzZVwtZnJvbVwtdGhlXC1kZWFkOwor6auY6ZqO6Kqe6KiAID4gaGlnaFwtbGV2ZWxcLWxhbmd1YWdlOwor576O5ZyL5Lq65rCRID4gdGhlXC1hbWVyaWNhblwtcGVvcGxlOwor6Z2i5Zqu6YCj5o6lID4gY29ubmVjdGlvblwtb3JpZW50ZWQ7CivlsIjmpa3kurrmiY0gPiBleHBlcnRcLVwoaW5cLWFcLWZpZWxkXCk7CivnhKHnuKvpgKPmjqUgPiBzZWFtbGVzc1wtY29ubmVjdGlvbjsKK+WCs+i8uOWqkuizqiA+IHRyYW5zbWlzc2lvblwtbWVkaXVtOwor5bGk6KaL6L+t5Ye6ID4gdG9cLW9jY3VyXC1mcmVxdWVudGx5Owor576O5ZyL5Lul5aSWID4gb3V0c2lkZVwtb2ZcLXRoZVwtdVwuc1wuOwor5q2k5pmC5q2k5Yi7ID4gYXRcLXRoaXNcLXZlcnlcLW1vbWVudDsKK+Wkmum7qOmBuOiIiSA+IG11bHRpcGFydHlcLWVsZWN0aW9uOwor5YWJ57qW6KGw5ribID4gb3B0aWNhbFwtYXR0ZW51YXRpb247CivkuI3li57ogIznjbIgPiByZWFwXC13aXRob3V0XC1zb3dpbmc7CivmioDooZPmqJnmupYgPiB0ZWNobm9sb2d5XC1zdGFuZGFyZDsKK+mWi+eZvOmBjueoiyA+IGRldmVsb3BtZW50XC1wcm9jZXNzOwor6YCa5L+h6LKg6LyJID4gY29tbXVuaWNhdGlvbnNcLWxvYWQ7CivluLjopo/mrablmaggPiBjb252ZW50aW9uYWxcLXdlYXBvbjsKK+e1seioiOe1kOaenCA+IHN0YXRpc3RpY2FsXC1yZXN1bHRzOwor5Y+456m66KaL5oWjID4gYVwtY29tbW9uXC1vY2N1cnJlbmNlOwor5LqM5Y2B5LiD6JmfID4gMjd0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivoppbogIzkuI3oposgPiB0dXJuXC1hXC1ibGluZFwtZXllXC10bzsKK+mbu+WtkOaWh+S7tiA+IGVsZWN0cm9uaWNcLWRvY3VtZW50Owor57WQ5qeL5Yqp6KmeID4gc3RydWN0dXJhbFwtcGFydGljbGU7CivlrZfmlp/lj6XphYwgPiB3ZWlnaGluZ1wtZXZlcnlcLXdvcmQ7CivmlL/msrvpl5zkv4IgPiBwb2xpdGljYWxcLXJlbGF0aW9uczsKK+ebuOS6kuWFvOWuuSA+IG11dHVhbGx5XC1jb21wYXRpYmxlOwor5bCL5LqL55Sf6Z2eID4gdG9cLWxvb2tcLWZvclwtdHJvdWJsZTsKK+Wwj+Wvq+Wtl+avjSA+IGxvd2VyY2FzZVwtXChsZXR0ZXJzXCk7CivnrqHnkIblip/og70gPiBtYW5hZ2VtZW50XC1mdW5jdGlvbjsKK+mrmOe0muiqnuiogCA+IGhpZ2hcLWxldmVsXC1sYW5ndWFnZTsKK+WIhuS9iOaOp+WItiA+IGRpc3RyaWJ1dGVkXC1jb250cm9sOwor57ay57Wh5oeJ55SoID4gbmV0d29ya1wtYXBwbGljYXRpb247CivmqZ/morDnv7vora8gPiBtYWNoaW5lXC10cmFuc2xhdGlvbjsKK+i7n+S7tuaKgOihkyA+IHNvZnR3YXJlXC10ZWNobm9sb2d5Owor5aW25rK56I+c6IqxID4gY3JlYW1lZFwtY2F1bGlmbG93ZXI7CivlhYnnmbzpgIHlmaggPiBvcHRpY2FsXC10cmFuc21pdHRlcjsKK+e2sue1oeeSsOWigyA+IG5ldHdvcmtcLWVudmlyb25tZW50Owor5oSb5Lq65aaC5bexID4gbG92ZVwtb3RoZXJzXC1hc1wtc2VsZjsKK+mYv+aLieW3tOmmrCA+IGFsYWJhbWFcLVwodVwuc1wuc3RhdGVcKTsKK+e1gum7nuWcsOWdgCA+IGRlc3RpbmF0aW9uXC1hZGRyZXNzOwor57ay6Lev5oeJ55SoID4gbmV0d29ya1wtYXBwbGljYXRpb247Civnm67mqJnlnLDlnYAgPiBkZXN0aW5hdGlvblwtYWRkcmVzczsKK+S6jOWNgeWFreiZnyA+IDI2dGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor5Lit5ZyL55W25bGAID4gY2hpbmVzZVwtYXV0aG9yaXRpZXM7CivlkIjmg4XlkIjnkIYgPiByZWFzb25hYmxlXC1hbmRcLWZhaXI7Civnmb7kvp3nmb7poIYgPiBkb2NpbGVcLWFuZFwtb2JlZGllbnQ7CivljYroh6rogJXovrIgPiBzZW1pXC10ZW5hbnRcLXBlYXNhbnQ7CivntrLot6/nkrDlooMgPiBuZXR3b3JrXC1lbnZpcm9ubWVudDsKK+WPjeW9iOWwjuW9iCA+IGFudGltaXNzaWxlXC1taXNzaWxlOwor55Sf55Si6Kit5pa9ID4gcHJvZHVjdGlvblwtZmFjaWxpdHk7CivokaHokITniZnkurogPiBwb3J0dWd1ZXNlXC1cKHBlcnNvblwpOwor5LiN57WV5aaC57i3ID4gaGFuZ2luZ1wtYnlcLWFcLXRocmVhZDsKK+aKgOihk+efpeitmCA+IHRlY2huaWNhbFwta25vd2xlZGdlOwor576O5ZyL6LuN5Lq6ID4gYW1lcmljYW5cLXNlcnZpY2VtYW47CivlnIvpmpvosr/mmJMgPiBpbnRlcm5hdGlvbmFsXC10cmFkZTsKK+S6uumAoOiqnuiogCA+IGFydGlmaWNpYWxcLWxhbmd1YWdlOwor5LiN5pWX5LmL5ZywID4gaW52aW5jaWJsZVwtcG9zaXRpb247Civoh6rouqvliKnnm4ogPiBvbmUnJ3NcLW93blwtaW50ZXJlc3RzOwor56u254it55Si5ZOBID4gY29tcGV0aXRpdmVcLXByb2R1Y3Q7CivpnZ7moLjlnIvlrrYgPiBub25cLW51Y2xlYXJcLWNvdW50cnk7CivmsKPlgJnni4Dms4EgPiBjbGltYXRpY1wtY29uZGl0aW9uczsKK+eSsOW9oue1kOaniyA+IHJpbmdcLWNvbmZpZ3VyYXRpb247Civopb/nj63niZnoqp4gPiBzcGFuaXNoXC1cKGxhbmd1YWdlXCk7CivkuIDoiKzkvoboqqogPiBnZW5lcmFsbHlcLXNwZWFraW5nOwor6aaW6IWm5pyD5pmkID4gbGVhZGVyc2hpcFwtbWVldGluZzsKK+mHjeimgeWVj+mhjCA+IGFuXC1pbXBvcnRhbnRcLWlzc3VlOwor6aCY5YWI5Zyw5L2NID4gbGVhZFwoaW5nXClcLXBvc2l0aW9uOwor5L+h5oGv57O757WxID4gaW5mb3JtYXRpb25cLXN5c3RlbTsKK+eoruaXj+a4hea0lyA+IFwiZXRobmljXC1jbGVhbnNpbmdcIjsKK+S5kuS5k+eQg+aqryA+IHRhYmxlXC10ZW5uaXNcLXRhYmxlOwor6Z2e5bi45Zq05Y6yID4gdG9cLXB1bmlzaFwtc2V2ZXJlbHk7Civlhafpg6jntZDmp4sgPiBpbnRlcm5hbFwtc3RydWN1dHJlOwor5pW45pOa6YCa5L+hID4gZGF0YVwtY29tbXVuaWNhdGlvbjsKK+mdnuW4uOaEn+isnSA+IGV4dHJlbWVseVwtZ3JhdGVmdWw7CivlhYvpmobmioDooZMgPiBjbG9uaW5nXC10ZWNobm9sb2d5Owor6Zu75a2Q57ay57WhID4gZWxlY3Ryb25pY1wtbmV0d29yazsKK+eZvem6teabuOeUnyA+IHBhbGVcLWZhY2VkXC1zY2hvbGFyOwor6LKh5YuZ6Luf5Lu2ID4gZmluYW5jaWFsXC1zb2Z0d2FyZTsKK+ilv+ePreeJmeaWhyA+IHNwYW5pc2hcLVwobGFuZ3VhZ2VcKTsKK+WPpOWFuOiqnuiogCA+IGNsYXNzaWNhbFwtbGFuZ3VhZ2U7CivlhanlgIvkuK3lnIsgPiB0d29cLWNoaW5hXC1cKHBvbGljeVwpOwor5aSW5L6G5oqV6LOHID4gZm9yZWlnblwtaW52ZXN0bWVudDsKK+Wcn+iAs+WFtuiqniA+IHR1cmtpc2hcLVwobGFuZ3VhZ2VcKTsKK+S4jeato+S5i+miqCA+IHVuaGVhbHRoeVwtdGVuZGVuY3k7Civpm4bmiJDpm7vot68gPiBpbnRlZ3JhdGVkXC1jaXJjdWl0Owor6ZaJ6Zec5pS/562WID4gY2xvc2VkXC1kb29yXC1wb2xpY3k7CivntrLntaHmioDooZMgPiBuZXR3b3JrXC10ZWNobm9sb2d5Owor5Lit5ZyL5pS/5bqcID4gY2hpbmVzZVwtZ292ZXJubWVudDsKK+S7pOeJjOeSsOe2siA+IHRva2VuXC1yaW5nXC1uZXR3b3JrOwor5aSn5piO6byO6byOID4gYVwtZ3JhbmRcLXJlcHV0YXRpb247Civosr/mmJPntYTnuZQgPiB0cmFkZVwtb3JnYW5pemF0aW9uOwor6YGN5Zyw6ZaL6IqxID4gYmxvc3NvbVwtZXZlcnl3aGVyZTsKK+e2sue1oeeuoeeQhiA+IG5ldHdvcmtcLW1hbmFnZW1lbnQ7Civpq5jpgJ/ntrLntaEgPiBoaWdoXC1zcGVlZFwtbmV0d29yazsKK+abuOmdouioseWPryA+IHdyaXR0ZW5cLXBlcm1pc3Npb247Civoga/lkIjlhazloLEgPiBqb2ludFwtYW5ub3VuY2VtZW50Owor56CU56m25qmf5qeLID4gcmVzZWFyY2hcLWluc3RpdHV0ZTsKK+S9m+iYreiKkuiqniA+IGZsZW1pc2hcLVwobGFuZ3VhZ2VcKTsKK+Wci+acg+itsOWToSA+IG1lbWJlclwtb2ZcLWNvbmdyZXNzOwor5pyA6L+R5bm+5bm0ID4gdGhlXC1sYXN0XC1mZXdcLXllYXJzOwor57K+57Ch6ZaL5pSvID4gdG9cLXJlZHVjZVwtc3BlbmRpbmc7CivkuI3nva7lj6/lkKYgPiBkZWNsaW5lXC10b1wtY29tbWVudDsKK+S4ieinkuiFueW4tiA+IGF0aGxldGljXC1zdXBwb3J0ZXI7CivooZvnlJ/oqK3lgpkgPiBzYW5pdGFyeVwtZXF1aXBtZW50Owor6YCg5oiQ5ZWP6aGMID4gdG9cLWNyZWF0ZVwtYW5cLWlzc3VlOwor57i955qE5L6G6KqqID4gZ2VuZXJhbGx5XC1zcGVha2luZzsKK+iJsuaDheWwj+iqqiA+IHBvcm5vZ3JhcGhpY1wtbm92ZWw7CivosrTlpoPphonphZIgPiB0aGVcLWRydW5rZW5cLWJlYXV0eTsKK+mbu+WtkOS/oeeusSA+IGVsZWN0cm9uaWNcLW1haWxib3g7CivmlrDliqDlnaHkurogPiBzaW5nYXBvcmVhblwtcGVyc29uOwor6ama5r+k6aet5rWqID4gcGVyaWxvdXNcLXNpdHVhdGlvbjsKK+Wkp+WKm+eZvOWxlSA+IHZpZ29yb3VzXC1leHBhbnNpb247CivmnI3li5nopo/nq6AgPiBzZXJ2aWNlXC1yZWd1bGF0aW9uOwor56ut55uh5YWo5YqbID4gdG9cLXNwYXJlXC1ub1wtZWZmb3J0Owor5LiN5oqY5LiN5omjID4gYVwtaHVuZHJlZFwtcGVyXC1jZW50Owor56eR56CU5qij5qmfID4gcmVzZWFyY2hcLXByb3RvdHlwZTsKK+WNgOWfn+e2sui3ryA+IGxvY2FsXC1hcmVhXC1uZXR3b3JrOwor55m86YCB5Yqf546HID4gdHJhbnNtaXNzaW9uXC1wb3dlcjsKK+aUv+W6nOitpuWRiiA+IGdvdmVybm1lbnRcLXdhcm5pbmc7CivmoLjog73mioDooZMgPiBudWNsZWFyXC10ZWNobm9sb2d5Owor5oSP5aSn5Yip6KqeID4gaXRhbGlhblwtXChsYW5ndWFnZVwpOwor5YyX5Lqs5aSn5a24ID4gYmVpamluZ1wtdW5pdmVyc2l0eTsKK+WNgOWfn+e2sue1oSA+IGxvY2FsXC1hcmVhXC1uZXR3b3JrOwor57ay57Wh56eR5oqAID4gbmV0d29ya1wtdGVjaG5vbG9neTsKK+iBr+mCpuaUv+W6nCA+IGZlZGVyYWxcLWdvdmVybm1lbnQ7Civpm7vohabmpa3ogIUgPiBzb2Z0d2FyZVwtZGV2ZWxvcGVyOwor6YCy6KGM57eo56iLID4gZXhlY3V0YWJsZVwtcHJvZ3JhbTsKK+iZm+aTrOmAo+aOpSA+IHZpcnR1YWxcLWNvbm5lY3Rpb247CivlrqLmiLbmh4nnlKggPiBjbGllbnRcLWFwcGxpY2F0aW9uOwor5LiN6Zqo5oSP6IKMID4gaW52b2x1bnRhcnlcLW11c2NsZTsKK+aOoeWPluaOquaWvSA+IHRvXC1hZG9wdFwtYVwtbWVhc3VyZTsKK+WTiOS9m+Wkp+WtuCA+IGhhcnZhcmRcLXVuaXZlcnNpdHk7CivntrLnrqHns7vntbEgPiBuZXR3b3JrXC1tYW5hZ2VtZW50Owor5pqX57ea5YWJ6K2cID4gZGFya1wtbGluZVwtc3BlY3RydW07Civpm7voppbnr4Dnm64gPiB0ZWxldmlzaW9uXC1wcm9ncmFtOwor5Lit5ZyL5Lq65rCRID4gdGhlXC1jaGluZXNlXC1wZW9wbGU7CivnsKHnn63ku4vntLkgPiBicmllZlwtaW50cm9kdWN0aW9uOwor5rW354Gj5oiw54itID4gXChwZXJzaWFuXClcLWd1bGZcLXdhcjsKK+WcsOeQg+Wkp+awoyA+IGVhcnRoJydzXC1hdG1vc3BoZXJlOwor57Ch6KaB5LuL57S5ID4gYnJpZWZcLWludHJvZHVjdGlvbjsKK+acjeWLmeizqumHjyA+IHF1YWxpdHlcLW9mXC1zZXJ2aWNlOwor5LiN5pS76Ieq56C0ID4gY29sbGFwc2VcLW9mXC1pdHNlbGY7CivmlofljJblgrPntbEgPiBjdWx0dXJhbFwtdHJhZGl0aW9uOwor57ay57Wh6YG356e7ID4gbmV0d29ya1wtbWlncmF0aW9uOwor6Zu76IWm6Luf5Lu2ID4gY29tcHV0ZXJcLXNvZnR3YXJlOwor6LOH5paZ5YKz6Ly4ID4gZGF0YVwtdHJhbnNtaXNzaW9uOwor5ZyL6Ziy6YOo6ZW3ID4gZGVmZW5jZVwtc2VjcmV0YXJ5Owor5beo5aSn5aOT5YqbID4gZW5vcm1vdXNcLXByZXNzdXJlOwor5pW45pOa5YKz6Ly4ID4gZGF0YVwtdHJhbnNtaXNzaW9uOwor5pS/5rK75rCj5YCZID4gcG9saXRpY2FsXC1jbGltYXRlOwor5buj5Z+f57ay6LevID4gd2lkZVwtYXJlYVwtbmV0d29yazsKK+aVmeWPi+Wkp+acgyA+IGNodXJjaFwtY29uZmVyZW5jZTsKK+i7jeS6i+WKm+mHjyA+IG1pbGl0YXJ5XC1zdHJlbmd0aDsKK+mbu+ipseacjeWLmSA+IHRlbGVwaG9uZVwtc2VydmljZTsKK+mYv+aLieS8r+iqniA+IGFyYWJpY1wtXChsYW5ndWFnZVwpOwor5pSv5p+x55Si5qWtID4gbWFpbnN0YXlcLWluZHVzdHJ5Owor5aSa56uZ5Zyw5Z2AID4gbXVsdGljYXN0XC1hZGRyZXNzOwor57aT5r+f5a6J5YWoID4gZWNvbm9taWNcLXNlY3VyaXR5Owor5aSW5Lqk6aKo5rOiID4gZGlwbG9tYXRpY1wtY3Jpc2lzOwor6Zu76Kmx57ay6LevID4gdGVsZXBob25lXC1uZXR3b3JrOwor5Y+N6YGO5L6G6KqqID4gb25cLXRoZVwtb3RoZXJcLWhhbmQ7CivmrZDmtLLoqp7oqIAgPiBldXJvcGVhblwtbGFuZ3VhZ2U7CivntrLntaHoqK3lgpkgPiBuZXR3b3JrXC1lcXVpcG1lbnQ7Civml6Xnm4rlop7liqAgPiB0b1wtaW5jcmVhc2VcLWRhaWx5Owor57aT5r+f5Yqb6YePID4gZWNvbm9taWNcLXN0cmVuZ3RoOwor6K6K5pys5Yqg5Y6yID4gYmVjb21lXC1hZ2dyYXZhdGVkOwor5YWJ57qW5o6l5Y+jID4gb3B0aWNhbFwtaW50ZXJmYWNlOwor5ZWG5qWt6KGM54K6ID4gYnVzaW5lc3NcLWFjdGl2aXR5Owor6LuN6LK76ZaL5pSvID4gbWlsaXRhcnlcLXNwZW5kaW5nOwor6Luf5Lu25bmz6Ie6ID4gc29mdHdhcmVcLXBsYXRmb3JtOwor5oyJ5ZyW57Si6amlID4gdHJ5XC10b1wtbG9jYXRlXC1zdGg7CivluIzkvK/kvoboqp4gPiBoZWJyZXdcLVwobGFuZ3VhZ2VcKTsKK+mWi+eZvOmAseacnyA+IGRldmVsb3BtZW50XC1jeWNsZTsKK+mYv+aLieS8r+aWhyA+IGFyYWJpY1wtXChsYW5ndWFnZVwpOwor5oiw55Wl5aSl5Ly0ID4gc3RyYXRlZ2ljXC1wYXJ0bmVyOwor6Z2c6ISI5ZC45q+SID4gaW50cmF2ZW5lb3VzXC1kcnVnOwor54Sh5pyf5b6S5YiRID4gbGlmZVwtaW1wcmlzb25tZW50Owor55m+5YiG5LmL55m+ID4gYVwtaHVuZHJlZFwtcGVyY2VudDsKK+iQiua6q+aWr+WfuiA+IFwobW9uaWNhXClcLWxld2luc2t5Owor5YKz6Ly45pyN5YuZID4gdHJhbnNwb3J0XC1zZXJ2aWNlOwor57ac5ZCI5biD57eaID4gaW50ZWdyYXRlZFwtd2lyaW5nOwor5YKz6Ly46YCa6YGTID4gdHJhbnNwb3J0XC1jaGFubmVsOwor5pS/5bqc6YOo6ZaAID4gZ292ZXJubWVudFwtYnJhbmNoOwor5paw6IGe6YCx5YiKID4gbmV3c3dlZWtcLW1hZ2F6aW5lOwor55u05o6l56u254itID4gZGlyZWN0XC1jb21wZXRpdG9yOwor6Yar55mC57aT6amXID4gbWVkaWNhbFwtZXhwZXJ0aXNlOwor5buj5pKt5Zyw5Z2AID4gYnJvYWRjYXN0XC1hZGRyZXNzOwor55Sf54mp5q2m5ZmoID4gYmlvbG9naWNhbFwtd2VhcG9uOwor5pqX54Sh5aSp5pelID4gY29tcGxldGVcLWRhcmtuZXNzOwor6auY57Sa56CU56m2ID4gYWR2YW5jZWRcLXJlc2VhcmNoOwor6Ieq5Li757O757WxID4gYXV0b25vbW91c1wtc3lzdGVtOwor55m96YeR5ryi5a6uID4gYnVja2luZ2hhbVwtcGFsYWNlOwor6YGL6KGM54uA5rOBID4gb3BlcmF0aW9uYWxcLXN0YXRlOwor5Zuw6Zuj5Zyo5pa8ID4gdGhlXC1wcm9ibGVtXC1pc1wuXC5cLjsKK+aXpeiAs+abvOiqniA+IGdlcm1hbmljXC1sYW5ndWFnZTsKK+WCs+i8uOWNlOWumiA+IHRyYW5zZmVyXC1wcm90b2NvbDsKK+Wkp+WIgOmXiuaWpyA+IGJvbGRcLWFuZFwtZGVjaXNpdmU7CivnibnliKXlvoXpgYcgPiBzcGVjaWFsXC10cmVhdG1lbnQ7CivlsIjnlKjntrLot68gPiBkZWRpY2F0ZWRcLW5ldHdvcms7CivmlZjliKnkup7mlocgPiBzeXJpYWNcLVwobGFuZ3VhZ2VcKTsKK+WCs+i8uOmAn+eOhyA+IHRyYW5zbWlzc2lvblwtcmF0ZTsKK+S4jeatoeiAjOaVoyA+IHBhcnRcLW9uXC1iYWRcLXRlcm1zOwor5Lit6I+v5rCR5ZyLID4gcmVwdWJsaWNcLW9mXC1jaGluYTsKK+S4pumnlem9iumphSA+IHJ1blwtbmVja1wtYW5kXC1uZWNrOwor6Zuj5Lul5oeJ5LuYID4gaGFyZFwtdG9cLWRlYWxcLXdpdGg7Civnoazku7blubPoh7ogPiBoYXJkd2FyZVwtcGxhdGZvcm07Civlrpjmlrnoqp7oqIAgPiBvZmZpY2lhbFwtbGFuZ3VhZ2U7CivljJfkuqzov5Hpg4ogPiBzdWJ1cmJcLW9mXC1iZWlqaW5nOwor5LiA6Iis5Y6f5YmHID4gZ2VuZXJhbFwtcHJpbmNpcGxlOwor5bCE6aC75bmy5pO+ID4gcmFkaW9cLWludGVyZmVyZWNlOwor5Zub6Z2i5YWr5pa5ID4gaW5cLWFsbFwtZGlyZWN0aW9uczsKK+Wci+WutuWuieWFqCA+IG5hdGlvbmFsXC1zZWN1cml0eTsKK+a1t+a0i+a6q+W6piA+IG9jZWFuXC10ZW1wZXJhdHVyZTsKK+e2sumam+WNlOWumiA+IGludGVybmV0XC1wcm90b2NvbDsKK+WkluS6pOmXnOS/giA+IGZvcmVpZ25cLXJlbGF0aW9uczsKK+W3tOWFi+Wkj+ixrCA+IGJlcmtzaGlyZVwtXChzd2luZVwpOwor5LiN5rK75LmL55eHID4gaW5jdXJhYmxlXC1kaXNlYXNlOwor5qWt55WM5qiZ5rqWID4gaW5kdXN0cnlcLXN0YW5kYXJkOwor6Zm45Z+65bCO5b2IID4gbGFuZFwtYmFzZWRcLW1pc3NsZTsKK+ilv+eVqumbheabuCA+IGJvb2tcLW9mXC16ZXBoYW5pYWg7CivlsIjlrrboqZXoq5YgPiBleHBlcnRcLWNvbW1lbnRhcnk7CivlmoflvpfnmbzmipYgPiB0cmVtYmxlXC13aXRoXC1mZWFyOwor5Zub6ZaA6L2O6LuKID4gc2VkYW5cLVwobW90b3JcLWNhclwpOwor5oSb5LiN6YeL5omLID4gZm9uZGxlXC1hZG1pcmluZ2x5Owor5b6e6aCt5Yiw6IWzID4gZnJvbVwtaGVhZFwtdG9cLWZvb3Q7Civou43kuovlr6blipsgPiBtaWxpdGFyeVwtc3RyZW5ndGg7Civlu6Pmkq3ntrLot68gPiBicm9hZGNhc3RcLW5ldHdvcms7CivnrKjlj6Pmi5noiIwgPiBhd2t3YXJkXC1pblwtc3BlZWNoOwor5be05pav5YWL6KqeID4gYmFzcXVlXC1cKGxhbmd1YWdlXCk7Civoj6/ljJflubPljp8gPiBub3J0aFwtY2hpbmFcLXBsYWluOwor5pWR5oGp6KiI5YqDID4gcGxhblwtb2ZcLXNhbHZhdGlvbjsKK+iIquepuuavjeiJpiA+IGFpcmNyYWZ0XC1jYXJyaWVyOwor5Lit5ZyL5aSn6Zm4ID4gY2hpbmVzZVwtbWFpbmxhbmQ7CivlvbHlg4/mnIPorbAgPiB2aWRlb1wtY29uZmVyZW5jZTsKK+aCsuatoembouWQiCA+IGpveXNcLWFuZFwtc29ycm93czsKK+eZvumHjOaMkeS4gCA+IG9uZVwtaW5cLWFcLWh1bmRyZWQ7Civoqp7ms5XooZPoqp4gPiBncmFtbWF0aWNhbFwtdGVybTsKK+abtOmrmOaAp+iDvSA+IGhpZ2hcLXBlcmZvcm1hbmNlOwor6LuN5LqL56eR5a24ID4gbWlsaXRhcnlcLXNjaWVuY2U7Civlmajlrpjnp7vmrpYgPiBvcmdhblwtdHJhbnNwbGFudDsKK+W9seWDj+iZleeQhiA+IGltYWdlXC1wcm9jZXNzaW5nOwor5Lq65LqL6YOo6ZaAID4gcGVyc29ubmVsXC1vZmZpY2U7CivmvZvlnKjlqIHohIUgPiBwb3RlbnRpYWxcLXRocmVhdDsKK+e1seioiOaVuOaTmiA+IHN0YXRpc3RpY2FsXC1kYXRhOwor54m55a6a5ZCr576pID4gc3BlY2lmaWNcLW1lYW5pbmc7Civph5Hono3ns7vntbEgPiBmaW5hbmNpYWxcLXN5c3RlbTsKK+WwjuiHtOatu+S6oSA+IHRvXC1sZWFkXC10b1wtZGVhdGg7Civmnb/kuIrph5jph5ggPiB0aGF0XC1jbGluY2hlc1wtaXQ7Civpm7vohabkvIHmpa0gPiBjb21wdXRlclwtY29tcGFueTsKK+WUieiBsuWYhuawoyA+IGhlYXZlXC1kZWVwXC1zaWdoczsKK+S4jeWlveaEj+aAnSA+IGZlZWxcLWVtYmFycmFzc2VkOwor5q2j5bi45bel5L2cID4gbm9ybWFsXC1vcGVyYXRpb247CivlgrPnnJ/nmbzpgIEgPiBmYXhcLXRyYW5zbWlzc2lvbjsKK+aTjeS9nOezu+e1sSA+IG9wZXJhdGluZ1wtc3lzdGVtOwor5YKz6Ly45aqS55WMID4gdHJhbnNwb3J0XC1tZXRob2Q7Civnp7vli5Xpm7voqbEgPiBtb2JpbGVcLXRlbGVwaG9uZTsKK+e2sue1oeebtOW+kSA+IG5ldHdvcmtcLWRpYW1ldGVyOwor5oiQ576k57WQ6ZqKID4gaW5cLWxhcmdlXC1udW1iZXJzOwor54Sh5omA5LiN6LOjID4gdG9cLXNlbGxcLWFueXRoaW5nOwor6YCa55So6Zu75ZmoID4gZ2VuZXJhbFwtZWxlY3RyaWM7CivmnJ3prq7ljYrls7YgPiBrb3JlYW5cLXBlbmluc3VsYTsKK+aciemXnOS6uuWjqyA+IHBlcnNvbnNcLWludm9sdmVkOwor6IC25Yip57Gz5pu4ID4gYm9va1wtb2ZcLWplcmVtaWFoOwor6YeR6J6N5biC5aC0ID4gZmluYW5jaWFsXC1tYXJrZXQ7CivlhanlsrjlsI3oqbEgPiBiaWxhdGVyaWFsXC10YWxrczsKK+S4jee2k+S5i+irhyA+IGFic3VyZFwtc3RhdGVtZW50Owor6Lev55Sx5Y2U5a6aID4gcm91dGluZ1wtcHJvdG9jb2w7CivntrLot6/lubPlj7AgPiBuZXR3b3JrXC1wbGF0Zm9ybTsKK+WFieaqoua4rOWZqCA+IG9wdGljYWxcLWRldGVjdG9yOwor6Zu76IWm57ay6LevID4gY29tcHV0ZXJcLW5ldHdvcms7Civms6LniL7lpJrmtrIgPiBib3JkZWF1eFwtbWl4dHVyZTsKK+eZvOmBlOWci+WutiA+IGRldmVsb3BlZFwtbmF0aW9uOwor5bey57aT6YCy6KGMID4gYWxyZWFkeVwtdW5kZXJ3YXk7CivlgrPpgIHmnI3li5kgPiBkZWxpdmVyeVwtc2VydmljZTsKK+iugOiAheS+huS/oSA+IHJlYWRlcicnc1wtbGV0dGVyczsKK+WTiOW3tOiwt+abuCA+IGJvb2tcLW9mXC1oYWJha2t1azsKK+eZveWjgeW+rueRlSA+IGFcLXNsaWdodFwtYmxlbWlzaDsKK+WNgeW5vuWAi+aciCA+IHRlblwtbW9udGhzXC1vclwtc287CivkuI3liqDmgJ3ntKIgPiB3aXRob3V0XC10aGlua2luZzsKK+WWruaooeWFiee6liA+IHNpbmdsZW1vZGVcLWZpYmVyOwor5pyA5aSn6IO95YqbID4gbWF4aW11bVwtY2FwYWNpdHk7CivmnInnt5rpm7voppYgPiBjYWJsZVwtdGVsZXZpc2lvbjsKK+S4jeiuiuizh+acrCA+IGNvbnN0YW50XC1jYXBpdGFsOwor6Zu76Kmx5L+h6JmfID4gdGVsZXBob25lXC1zaWduYWw7CivlqIHniL7lo6voqp4gPiB3ZWxzaFwtXChsYW5ndWFnZVwpOwor55S35a2Q57GD55CDID4gbWVuJydzXC1iYXNrZXRiYWxsOwor6IGv6YKm5aSn5qiTID4gZmVkZXJhbFwtYnVpbGRpbmc7Civmma7pgJrllY/poYwgPiBjb21tb25cLXF1ZXN0aW9uczsKK+i8uOmAgeWqkuS7iyA+IHRyYW5zcG9ydFwtbWVkaXVtOwor6Ziy6KGb5q2m5ZmoID4gZGVmZW5zaXZlXC13ZWFwb247CivkvZzmpa3ns7vntbEgPiBvcGVyYXRpbmdcLXN5c3RlbTsKK+mrlOiCsuS5i+eqlyA+IHdpbmRvd1wtb25cLXNwb3J0czsKK+abuOWvq+iqnuiogCA+IHdyaXR0ZW5cLWxhbmd1YWdlOwor5YWx5Lqr5bi25a+sID4gc2hhcmVkXC1iYW5kd2lkdGg7CivmlofljJbpmpznpJkgPiBjdWx0dXJhbFwtYmFycmllcjsKK+ebtOaOpeW9semfvyA+IGRpcmVjdFwtaW5mbHVlbmNlOwor6IiH5q2k5ZCM5pmCID4gYXRcLXRoZVwtc2FtZVwtdGltZTsKK+S4u+imgeS+hua6kCA+IHByaW5jaXBsZVwtc291cmNlOwor5Lq65rCR5YWs56S+ID4gcGVvcGxlJydzXC1jb21tdW5lOwor5LiL6Z2i6KuL55yLID4gcGxlYXNlXC1zZWVcLWJlbG93Owor6YeR6J6N6aKo5rOiID4gZmluYW5jaWFsXC1jcmlzaXM7CivntrLntaHljZTorbAgPiBuZXR3b3JrXC1wcm90b2NvbDsKK+eZveiho+aIsOWjqyA+IHdhcnJpb3JcLWluXC13aGl0ZTsKK+WuieWmguejkOefsyA+IGFzXC1zb2xpZFwtYXNcLXJvY2s7CivmlYXpmpzmjpLpmaQgPiBmYXVsdFwtcmVzb2x1dGlvbjsKK+mHkeiejeaUuemdqSA+IGZpbmFuY2lhbFwtcmVmb3JtOwor6KGM5YuV6Zu76KmxID4gbW9iaWxlXC10ZWxlcGhvbmU7Civpm4zmgKfmjqXlj6MgPiBmZW1hbGVcLWNvbm5lY3RvcjsKK+W/g+iHn+enu+auliA+IGhlYXJ0XC10cmFuc3BsYW50Owor6YGZ5o6n5pON5L2cID4gcmVtb3RlXC1vcGVyYXRpb247CivnsKHllq7nmoToqqogPiB0b1wtcHV0XC1pdFwtc2ltcGx5Owor5YWJ5o6l5pS25ZmoID4gb3B0aWNhbFwtcmVjZWl2ZXI7CivmqZ/morDoqp7oqIAgPiBtYWNoaW5lXC1sYW5ndWFnZTsKK+iDoeW/l+aYjuW4giA+IGhvXC1jaGlcLW1pbmhcLWNpdHk7CivkuI3nn6XmiYDkupEgPiBub3RcLWtub3dcLXdoYXRcLXNiOwor6Zu76IWm5YWs5Y+4ID4gY29tcHV0ZXJcLWNvbXBhbnk7Civoga/luK3mnIPorbAgPiBqb2ludFwtY29uZmVyZW5jZTsKK+S6pOaPm+e2sui3ryA+IHN3aXRjaGVkXC1uZXR3b3JrOwor6aqo5bm557ay6LevID4gYmFja2JvbmVcLW5ldHdvcms7Civou5/ku7bkvIHmpa0gPiBzb2Z0d2FyZVwtY29tcGFueTsKK+WKm+mHj+Wdh+ihoSA+IGJhbGFuY2VcLW9mXC1wb3dlcjsKK+aWvea0l+e0hOe/sCA+IGpvaG5cLXRoZVwtYmFwdGlzdDsKK+WwvOW4jOexs+iomCA+IGJvb2tcLW9mXC1uZWhlbWlhaDsKK+Wgsee0meWgseWwjiA+IG5ld3NwYXBlclwtcmVwb3J0Owor6YeR6J6N5Y2x5qmfID4gZmluYW5jaWFsXC1jcmlzaXM7Civpm6LplovljJfkuqwgPiB0b1wtbGVhdmVcLWJlaWppbmc7Civlub7kuY7lrozlhaggPiBhbG1vc3RcLWVudGlyZWx5Owor5L+h5oGv5pmC5LujID4gaW5mb3JtYXRpb25cLWFnZTsKK+eUouWTgee2k+eQhiA+IHByb2R1Y3RcLW1hbmFnZXI7Civou43kuovlqIHohIUgPiBtaWxpdGFyeVwtdGhyZWF0Owor57ay6Lev5pyN5YuZID4gbmV0d29ya1wtc2VydmljZTsKK+eglOeptuS4reW/gyA+IHJlc2VhcmNoXC1jZW50ZXI7CivltIfmi5zlhIDlvI8gPiB3b3JzaGlwXC1zZXJ2aWNlOwor5pa56IiI5pyq6Im+ID4gdG9cLWJlXC11bmZvbGRpbmc7Civpm5npgorosr/mmJMgPiBiaWxhdGVyYWxcLXRyYWRlOwor6LuN5LqL6YOo6ZaAID4gbWlsaXRhcnlcLWJyYW5jaDsKK+mZpOatpOS5i+WkliA+IGFwYXJ0XC1mcm9tXC10aGlzOwor5aSq6Zm95YWs5Y+4ID4gc3VuXC1jb3Jwb3JhdGlvbjsKK+WkluWci+izh+acrCA+IGZvcmVpZ25cLWNhcGl0YWw7CivosZDlr4zlpJrlvakgPiByaWNobHlcLWNvbG9yZnVsOwor5LiN55m95LmL5YakID4gdW5yaWdodGVkXC13cm9uZzsKK+aIkuWCmeajruWatCA+IGhlYXZpbHlcLWd1YXJkZWQ7CivljYrpgJTogIzlu6IgPiBnaXZlXC11cFwtaGFsZndheTsKK+aJuemHj+eUn+eUoiA+IHRvXC1tYXNzXC1wcm9kdWNlOwor5pON5L2c6YCf546HID4gb3BlcmF0aW5nXC1zcGVlZDsKK+iBr+WQiOeZvOihqCA+IGpvaW50XC1zdGF0ZW1lbnQ7CivkuI3lrozlhajokYkgPiBpbmNvbXBsZXRlXC1sZWFmOwor5qC45Y+N5oeJ5aCGID4gbnVjbGVhclwtcmVhY3RvcjsKK+e2k+a/n+aUuemdqSA+IGVjb25vbWljXC1yZWZvcm07CivljYrlo4HmsZ/lsbEgPiBoYWxmXC1vZlwtY291bnRyeTsKK+WPpOWFuOmfs+aogiA+IGNsYXNzaWNhbFwtbXVzaWM7CivkuI3lj6/lpJrlvpcgPiBoYXJkXC10b1wtY29tZVwtYnk7Civph43mlrDplovlp4sgPiByZXN1bWVcLFwtcmVzdGFydDsKK+mbu+WtkOmDteS7tiA+IGVsZWN0cm9uaWNcLW1haWw7CivntpPmv5/liY3pgJQgPiBlY29ub21pY1wtZnV0dXJlOwor5bel6K6A5a245qChID4gdGhlXC1yZWZvcm1hdG9yeTsKK+WatOmHjemXnOWIhyA+IHNlcmlvdXNcLWNvbmNlcm47CivntpPmv5/ljbHmqZ8gPiBlY29ub21pY1wtY3Jpc2lzOwor5YuV5oWL5Yqp6KmeID4gYXNwZWN0XC1wYXJ0aWNsZTsKK+aatOi3s+WmgumbtyA+IHN0YW1wXC13aXRoXC1mdXJ5Owor5Lul6KW/57WQ5pu4ID4gYm9va1wtb2ZcLWV6ZWtpZWw7CivljJblrbjmrablmaggPiBjaGVtaWNhbFwtd2VhcG9uOwor55m76KiY55So5oi2ID4gcmVnaXN0ZXJlZFwtdXNlcjsKK+WatOmHjeWVj+mhjCA+IHNlcmlvdXNcLXByb2JsZW07Civnlbbli5nkuYvmgKUgPiB1cmdlbnRcLXByaW9yaXR5Owor6Luf5Lu257O757WxID4gc29mdHdhcmVcLXN5c3RlbTsKK+izvOeJqeS4reW/gyA+IHNob3BwaW5nXC1jZW50ZXI7Civlo4Hlo5jmo67lmrQgPiBjbG9zZWx5XC1ndWFyZGVkOwor55Gq5ouJ5Z+65pu4ID4gYm9va1wtb2ZcLW1hbGFjaGk7Civosr/mmJPlpKXkvLQgPiB0cmFkaW5nXC1wYXJ0bmVyOwor5pyI5Lu95pyD6K2wID4gbW9udGhseVwtbWVldGluZzsKK+eglOeptuWgseWRiiA+IHJlc2VhcmNoXC1yZXBvcnQ7CivlhYjpgLLmrablmaggPiBhZHZhbmNlZFwtd2VhcG9uOwor5aSn55m86Zu36ZyGID4gZXh0cmVtZWx5XC1hbmdyeTsKK+e+juWci+aUv+W6nCA+IHVcLnNcLlwtZ292ZXJubWVudDsKK+WhnueIvueJueiqniA+IGNlbHRpY1wtbGFuZ3VhZ2U7Civmjqrovq3lvLfnoawgPiBzdHJvbmdseVwtd29yZGVkOwor5YWs5Y+45pyD6K2wID4gY29tcGFueVwtbWVldGluZzsKK+aUueiuiuW9ouWDjyA+IHRyYW5zZmlndXJhdGlvbjsKK+eZvuWFkuWFq+WNgSA+IGFib3V0XC1hXC1odW5kcmVkOwor5aSa5qih5YWJ57qWID4gbXVsdGltb2RlXC1maWJlcjsKK+i7n+S7tuW4guWgtCA+IHNvZnR3YXJlXC1tYXJrZXQ7CivmoKHlnJLpqqjlubkgPiBjYW1wdXNcLWJhY2tib25lOwor5rKS5pyJ6IGv57mrID4gdG9cLWJlXC11bnJlbGF0ZWQ7CivkuJbnlYzmnIDlpKcgPiB3b3JsZCcnc1wtbGFyZ2VzdDsKK+WwlumKs+aJueiplSA+IHNoYXJwXC1jcml0aWNpc207Civpm7vohabns7vntbEgPiBjb21wdXRlclwtc3lzdGVtOwor6LKo5bmj5Y2x5qmfID4gbW9uZXRhcnlcLWNyaXNpczsKK+aal+mAgeeni+azoiA+IG1ha2VcLWV5ZXNcLWF0XC1zYjsKK+aVuOS9jee2sui3ryA+IGRpZ2l0YWxcLW5ldHdvcms7Civlhajlipvku6XotbQgPiBkb1wtYXRcLWFsbFwtY29zdHM7CivomZvmk6zntrLntaEgPiB2aXJ0dWFsXC1uZXR3b3JrOwor5YWJ5piO5pel5aCxID4gZ3VhbmdtaW5nXC1kYWlseTsKK+att+WPsuS5hemBoCA+IGFuY2llbnRcLWhpc3Rvcnk7Civmlq/mi4nlpKvoqp4gPiBzbGF2aWNcLWxhbmd1YWdlOwor5aSW5ZyL5YWs5Y+4ID4gZm9yZWlnblwtY29tcGFueTsKK+WVhualreS4reW/gyA+IGJ1c2luZXNzXC1jZW50ZXI7CivkuI3nm7jkuIrkuIsgPiBlcXVhbGx5XC1tYXRjaGVkOwor5qmf5a+G5paH5Lu2ID4gc2VjcmV0XC1kb2N1bWVudDsKK+WFt+mrlOioiOWKgyA+IGFcLWNvbmNyZXRlXC1wbGFuOwor5paH5pu46JmV55CGID4gd29yZFwtcHJvY2Vzc2luZzsKK+mgkOmYsuaOquaWvSA+IHByb3RlY3RpdmVcLXN0ZXA7CivlhaznhLbooajnpLogPiB0b1wtc3RhdGVcLW9wZW5seTsKK+iyoOWCtee6jee6jSA+IGhlYXZpbHlcLWluXC1kZWJ0Owor57aT5r+f6auU5Yi2ID4gZWNvbm9taWNcLXN5c3RlbTsKK+S4jemBjueIvueIviA+IG1lcmVseVwtbWVkaW9jcmU7CivmtYHmhJ/nl4Xmr5IgPiBpbmZsdWVuemFcLXZpcnVzOwor6KGb55Sf5a6Y5ZOhID4gaGVhbHRoXC1vZmZpY2lhbDsKK+WFt+mrlOWVj+mhjCA+IGNvbmNyZXRlXC1pc3N1ZTsKK+Wci+mYsumgkOeulyA+IGRlZmVuY2VcLWJ1ZGdldDsKK+ijgea4m+i7jeWCmSA+IGFybXNcLXJlZHVjdGlvbjsKK+WHuuWPo+WVhuWTgSA+IGV4cG9ydFwtcHJvZHVjdDsKK+aUuemdqemAsueoiyA+IHJlZm9ybVwtcHJvY2VzczsKK+iWhOiDjueTt+WZqCA+IGVnZ3NoZWxsXC1jaGluYTsKK+aTuuiVqeWQiueSsCA+IHN3aW5naW5nXC1yaW5nczsKK+WFqOeQg+awo+WAmSA+IGdsb2JhbFwtY2xpbWF0ZTsKK+WwjeWkluaUv+etliA+IGZvcmVpZ25cLXBvbGljeTsKK+mAsuihjOmAmuS/oSA+IHRvXC1jb21tdW5pY2F0ZTsKK+S4jeWSjuaXouW+gCA+IG5vdFwtY2Vuc3VyZVwtc2I7CivmoKHlnJLntrLntaEgPiBjYW1wdXNcLW5ldHdvcms7CivmlbjkvY3kv6HomZ8gPiBkaWdpdGFsXC1zaWduYWw7CivnlJ/plbfmv4DntKAgPiBncm93dGhcLWhvcm1vbmU7CivmjIfmj67kuK3lv4MgPiBjb21tYW5kXC1jZW50ZXI7Civpm7voqbHnt5rot68gPiB0ZWxlcGhvbmVcLWxpbmU7Civoqp7msKPliqnoqZ4gPiBtb2RhbFwtcGFydGljbGU7CivntITmm7jkup7oqJggPiBib29rXC1vZlwtam9zaHVhOwor57aT5r+f5pyJ5pWIID4gY29zdFwtZWZmZWN0aXZlOwor5aCF5rG65ZCm6KqNID4gdG9cLWZpcm1seVwtZGVueTsKK+abuOWvq+espuiZnyA+IHdyaXRpbmdcLXN5bWJvbDsKK+S4jeefpeatu+a0uyA+IGFjdFwtcmVja2xlc3NseTsKK+azoue+heeahOa1tyA+IHRoZVwtYmFsdGljXC1zZWE7CivmoYzpnaLns7vntbEgPiBkZXNrdG9wXC1zeXN0ZW07CivmnbHljZfkup7lnIsgPiBzb3V0aGVhc3RcLWFzaWE7CivlsI/lnovkvIHmpa0gPiBzbWFsbFwtYnVzaW5lc3M7Civos4fmlpnku4vpnaIgPiBkYXRhXC1pbnRlcmZhY2U7CivkuI3mgI7purzmqKMgPiBub3RcLXVwXC10b1wtbXVjaDsKK+mdnuW4uOmHjeimgSA+IHZlcnlcLWltcG9ydGFudDsKK+mGq+WtuOWwiOWutiA+IG1lZGljYWxcLWV4cGVydDsKK+WFiOmAsuawtOW5syA+IGFkdmFuY2VkXC1sZXZlbDsKK+aVuOaTmuaOpeWPoyA+IGRhdGFcLWludGVyZmFjZTsKK+mAo+mOluWPjeaHiSA+IGNoYWluXC1yZWFjdGlvbjsKK+eJueWIpeaEn+isnSA+IHNwZWNpYWxcLXRoYW5rczsKK+S6uuWjveS/nemaqiA+IGxpZmVcLWluc3VyYW5jZTsKK+aVuOaTmuS7i+mdoiA+IGRhdGFcLWludGVyZmFjZTsKK+S9huS7peeQhuabuCA+IGJvb2tcLW9mXC1kYW5pZWw7Civov6vkuI3lvpflt7IgPiBoYXZlXC1ub1wtY2hvaWNlOwor6KmV5YO55YiG6aGeID4gcmFua1wsXC1jbGFzc2lmeTsKK+W+nuS6i+eglOeptiA+IHRvXC1kb1wtcmVzZWFyY2g7Civku6Xos73kup7mm7ggPiBib29rXC1vZlwtaXNhaWFoOwor5Y2K5pW45Lul5LiKID4gbW9yZVwtdGhhblwtaGFsZjsKK+aqlOahiOWxrOaApyA+IGZpbGVcLWF0dHJpYnV0ZTsKK+W+nuS+huaykuaciSA+IGhhdmVcfGhhc1wtbmV2ZXI7Civku6Xmlq/luJboqJggPiBib29rXC1vZlwtZXN0aGVyOwor5pyA5L2z5Yip55uKID4gYmVzdFwtaW50ZXJlc3RzOwor5oOh5oCn5b6q55KwID4gdmljaW91c1wtY2lyY2xlOwor5LiN55yB5Lq65LqLID4gYmVcLXVuY29uc2Npb3VzOwor55m+54Sh6IGK6LO0ID4gYm9yZWRcLXRvXC1kZWF0aDsKK+mGq+WtuOS4reW/gyA+IG1lZGljYWxcLWNlbnRlcjsKK+eZveiJsuS6uueoriA+IHRoZVwtd2hpdGVcLXJhY2U7CivntpzlkIjloLHlsI4gPiBzdW1tYXJ5XC1yZXBvcnQ7CivlpKflkIzlsI/nlbAgPiBhbG1vc3RcLXNpbWlsYXI7CivljZHouqzlsYjnr4AgPiBib3dcLWFuZFwtc2NyYXBlOwor5oGt6LOA5paw56anID4gaGFwcHlcLW5ld1wteWVhcjsKK+WJjeeUn+WPrOWWmiA+IGZvcmVvcmRpbmF0aW9uOwor57ay6Zqb6Zu76KmxID4gaW50ZXJuZXRcLXBob25lOwor6JiL5p6c6Zu76IWmID4gYXBwbGVcLWNvbXB1dGVyOwor5LiN6ISb6ICM6LWwID4gZ2V0XC1yb3VuZFwtZmFzdDsKK+S4iei8qui7iuS8lSA+IHBlZGljYWJcLWRyaXZlcjsKK+mjvee2k+miqOmcnCA+IHdlYXRoZXJcLWJlYXRlbjsKK+WFqOW/g+WFqOaEjyA+IGhlYXJ0XC1hbmRcLXNvdWw7Civms7DnsbPniL7oqp4gPiB0YW1pbFwtbGFuZ3VhZ2U7CivkuI3mnJ/ogIzpgYcgPiBtZWV0XC1ieVwtY2hhbmNlOwor6L+R5LmO5ZCM5q2lID4gcGxlc2lvY2hyb25vdXM7Civlk6XmnKzlk4jmoLkgPiBjb3BlbmhhZ2VuXC1cP1w/XD87Civnmb7nsbPos73ot5EgPiAxMDBcLW1ldHJlXC1kYXNoOwor6Kq/5p+l5aCx5ZGKID4gbWVtb2lyXCxcLXJlcG9ydDsKK+aVuOWtl+S/oeiZnyA+IGRpZ2l0YWxcLXNpZ25hbDsKK+S4lueVjOe2k+a/nyA+IGdsb2JhbFwtZWNvbm9teTsKK+mAmueUqOaxvei7iiA+IGdlbmVyYWxcLW1vdG9yczsKK+WMl+S6rOmAseWgsSA+IGJlaWppbmdcLXJldmlldzsKK+a6kOm7nuWcsOWdgCA+IHNvdXJjZVwtYWRkcmVzczsKK+mAmeasoeWNseapnyA+IHByZXNlbnRcLWNyaXNpczsKK+WHuuWPo+eUouWTgSA+IGV4cG9ydFwtcHJvZHVjdDsKK+WkmuW3pemBi+S9nCA+IG11bHRpdGhyZWFkaW5nOwor5LqM5rCn5YyW56KzID4gY2FyYm9uXC1kaW94aWRlOwor57ay57Wh6Kit6KiIID4gbmV0d29ya1wtZGVzaWduOwor5LqU5bm06KiI5YqDID4gZml2ZVwteWVhclwtcGxhbjsKK+W4guWgtOe2k+a/nyA+IG1hcmtldFwtZWNvbm9teTsKK+aqlOahiOWft+ihjCA+IGZpbGVcLWV4ZWN1dGlvbjsKK+S6kuWLlembu+imliA+IGludGVyYWN0aXZlXC10djsKK+WFrOecvuaEj+imiyA+IHB1YmxpY1wtb3BpbmlvbjsKK+atkOa0suiBr+ebnyA+IGV1cm9wZWFuXC11bmlvbjsKK+aqlOahiOi9iemAgSA+IGZpbGVcLXRyYW5zZmVyOwor5o6S5bGx5YCS5rW3ID4gZWFydGhcLXNoYWtpbmc7CivntpPnh5/osrvnlKggPiBidXNpbmVzc1wtY29zdDsKK+ebtOaIquS6hueVtiA+IHBsYWluXC10YWxraW5nOwor5Ya35oiw5Lul5b6MID4gcG9zdFwtY29sZFwtd2FyOwor5Yui5Zyo5b+F6KGMID4gYmVcLWltcGVyYXRpdmU7CivoiIrntITlhajmm7ggPiBvbGRcLXRlc3RhbWVudDsKK+W5vuWAi+Wwj+aZgiA+IHNldmVyYWxcLWhvdXJzOwor5LiN5Y+v57y65bCRID4gaW5kaXNwZW5zYWJsZTsKK+imlueql+Wfuua6liA+IHdpbmRvd3NcLWJhc2VkOwor6Zu76YO15L2N572uID4gZW1haWxcLWFkZHJlc3M7CivnoJTnqbbpoJjln58gPiByZXNlYXJjaFwtYXJlYTsKK+mAsuaOpeacjeWLmSA+IGFjY2Vzc1wtc2VydmVyOwor5LqM5qyh5aSn5oiwID4gd29ybGRcLXdhclwtdHdvOwor5Z+65pys5qaC5b+1ID4gYmFzaWNcLWNvbmNlcHQ7Civosr/mmJPpoIblt64gPiB0cmFkZVwtc3VycGx1czsKK+atpuWZqOezu+e1sSA+IHdlYXBvblwtc3lzdGVtOwor5a6255So6Zu76IWmID4gaG9tZVwtY29tcHV0ZXI7CivlpKflhaznhKHnp4EgPiBqdXN0XC1hbmRcLWZhaXI7CivmlrDntITlhajmm7ggPiBuZXdcLXRlc3RhbWVudDsKK+S6nua0suWci+WutiA+IGFzaWFuXC1jb3VudHJ5Owor5pq06aKo6amf6ZuoID4gdmlvbGVudFwtc3Rvcm07CivmjYnlj5blnJblg48gPiBjYXB0dXJlXC1pbWFnZTsKK+aLnOmHkeS4u+e+qSA+IG1vbmV5XC13b3JzaGlwOwor5rC45LmF5ZKM5bmzID4gbGFzdGluZ1wtcGVhY2U7Civlk4jolqnlhYvkurogPiBrYXpha2hcLXBlcnNvbjsKK+W3oeiIquWwjuW9iCA+IGNydWlzZVwtbWlzc2xlOwor5pq05Yqb54qv572qID4gdmlvbGVudFwtY3JpbWU7CivkvZXopb/pmL/mm7ggPiBib29rXC1vZlwtaG9zZWE7CivkuI3miJDmlofms5UgPiB1bndyaXR0ZW5cLWxhdzsKK+S6nuWkquWci+WutiA+IGFzaWFuXC1jb3VudHJ5Owor55uu5qiZ5biC5aC0ID4gdGFyZ2V0XC1tYXJrZXQ7CivmnIDpq5jms5XpmaIgPiBzdXByZW1lXC1jb3VydDsKK+acgOW+jOabtOaWsCA+IGxhdGVzdFwtdXBkYXRlOwor5p2P5LuB6LGG6IWQID4gYWxtb25kXC1qdW5rZXQ7CivpgJnnqK7mlrnlvI8gPiBcKGluXClcLXRoaXNcLXdheTsKK+S/neitt+S4u+e+qSA+IHByb3RlY3Rpb25pc207CivmnIjnkIPooajpnaIgPiBsdW5hclwtc3VyZmFjZTsKK+WcsOaWueWBnOi7iiA+IHBhcmtpbmdcLXBsYWNlOwor55+l5ZCN5Lq65aOrID4gcHVibGljXC1maWd1cmU7Civnvo7lnIvlnIvmnIMgPiB1XC5zXC5cLWNvbmdyZXNzOwor5LiN5bm455qE5pivID4gdW5mb3J0dW5hdGVseTsKK+WFiee6lumbu+e6nCA+IG9wdGljYWxcLWZpYmVyOwor56S+5Lqk6Kqe6KiAID4gbGluZ3VhXC1mcmFuY2E7CivotorkvobotorlpJogPiBtb3JlXC1hbmRcLW1vcmU7Civnmb7np5Hlhajmm7ggPiBlbmN5Y2xvcGFlZGlhOwor5Yqf546H5oOh5YyWID4gcG93ZXJcLXBlbmFsdHk7CivkuI3lj6/mipflipsgPiBmb3JjZVwtbWFqZXVyZTsKK+S4reWci+mKgOihjCA+IGJhbmtcLW9mXC1jaGluYTsKK+mfv+aHieaZgumWkyA+IHJlc3BvbnNlXC10aW1lOwor5YKz6Ly45qih5byPID4gdHJhbnNmZXJcLW1vZGU7CivkuI3nn6XkuI3oprogPiB1bmNvbnNjaW91c2x5Owor5YmN5omA5pyq5pyJID4gdW5wcmVjZWRlbnRlZDsKK+ioquWVj+aWueW8jyA+IGFjY2Vzc1wtbWV0aG9kOwor5qqU5qGI5bu656uLID4gZmlsZVwtY3JlYXRpb247Civlh7rnlJ/ml6XmnJ8gPiBkYXRlXC1vZlwtYmlydGg7CivkuI3lj6/mgJ3orbAgPiBpbmNvbmNlaXZhYmxlOwor5qC85a2Q6Iqx5ZGiID4gcGxhaWRcLFwtdGFydGFuOwor6ZuZ55Sf5YWE5byfID4gdHdpblwtYnJvdGhlcnM7CivmnIDlpKfpgJ/njocgPiBtYXhpbXVtXC1zcGVlZDsKK+ePvuWvpuaDheazgSA+IGN1cnJlbnRcLXN0YXRlOwor5YyF576F6JCs6LGhID4gYWxsXC1lbWJyYWNpbmc7CivoppbpoLvnr4Dnm64gPiB2aWRlb1wtcHJvZ3JhbTsKK+e+hemmrOWtl+avjSA+IHJvbWFuXC1sZXR0ZXJzOwor5LiN5Y+v5ZCN54uAID4gaW5kZXNjcmliYWJsZTsKK+WFtuS7lueahOS6uiA+IG90aGVyXC1wZW9wbGU7CivlqpLpq5TloLHlsI4gPiBtZWRpYVwtcmVwb3J0Owor5ZKM5bmz5qKd57SEID4gcGVhY2VcLXRyZWF0eTsKK+iCoeelqOW4guWgtCA+IHN0b2NrXC1tYXJrZXQ7CivlpKfpqZrlpLHoibIgPiBhcHByZWhlbnNpdmU7Civpq5jlsaTml4XppKggPiBsdXh1cnlcLWhvdGVsOwor6Z2I55qE5LiW55WMID4gc3Bpcml0XC13b3JsZDsKK+WHuuS5jumgkOaWmSA+IHVuZXhwZWN0ZWRseTsKK+WcsOaWueS4u+e+qSA+IFwibG9jYWxcLVwtaXNtXCI7Civmv4DlhYnllLHniYcgPiBjb21wYWN0XC1kaXNrOwor5Lit5aSu6YqA6KGMID4gY2VudHJhbFwtYmFuazsKK+aWr+Wvhue0hOeRnyA+IGpvc2VwaFwtc21pdGg7Civnm67liY3kuJbnlYwgPiBtb2Rlcm5cLXdvcmxkOwor5rCR5oSP6Kq/5p+lID4gb3BpbmlvblwtcG9sbDsKK+ePvuS7o+mfs+aogiA+IG1vZGVyblwtbXVzaWM7Civoo73pgKDmpa3ogIUgPiBtYW51ZmFjdHVyZXI7Civlv4PnkIblrbjlrrYgPiBwc3ljaG9sb2dpc3Q7CivkuI3og73mirXmipcgPiBpcnJlc2lzdGlibGU7CivpgY7looPnsL3oqLwgPiB0cmFuc2l0XC12aXNhOwor6IC256mM5Z+6552jID4gamVzdXNcLWNocmlzdDsKK+iomOiAheWgseWwjiA+IHByZXNzXC1yZXBvcnQ7CivlpJrlt6XkvZzmpa0gPiBtdWx0aXRha3Npbmc7CivkuI3lpKfpm6LlhZIgPiBwcmV0dHlcLWNsb3NlOwor5pys5L6G6Z2i55uuID4gdHJ1ZVwtY29sb3VyczsKK+e2sui3r+evgOm7niA+IG5ldHdvcmtcLW5vZGU7CivkuI3lj6/mlLbmi74gPiBpcnJlbWVkaWFibGU7CivlnIvlrrbmqZ/lr4YgPiBzdGF0ZVwtc2VjcmV0Owor6Kq/5p+l5Lq65ZOhID4gaW52ZXN0aWdhdG9yOwor5q2m6KOd6YOo6ZqKID4gYXJtZWRcLWZvcmNlczsKK+eUn+eUouS8gealrSA+IG1hbnVmYWN0dXJlcjsKK+WQjemMhOacjeWLmSA+IG5hbWVcLXNlcnZpY2U7Civoqp7pn7Pkv6HomZ8gPiB2b2ljZVwtc2lnbmFsOwor5Luk5Lq66ama55WwID4gc3VycHJpc2luZ2x5Owor5Z+656SO6Kit5pa9ID4gYmFzZVwtc3RhdGlvbjsKK+eUn+WRvei3oeixoSA+IHNpZ25cLW9mXC1saWZlOwor55+l6K2Y5YiG5a2QID4gaW50ZWxsZWN0dWFsOwor6Zi/5pGp5Y+45pu4ID4gYm9va1wtb2ZcLWFtb3M7CivnlKjmiLblrprnvqkgPiB1c2VyXC1kZWZpbmVkOwor5oiQ5ZCJ5oCd5rGXID4gZ2VuZ2hpc1wta2hhbjsKK+S4u+W5uee2sui3ryA+IGNvcmVcLW5ldHdvcms7CivmsJHmhI/muKzpqZcgPiBvcGluaW9uXC1wb2xsOwor5q235Luj5b+X5LiLID4gMlwtY2hyb25pY2xlczsKK+att+S7o+W/l+S4iiA+IDFcLWNocm9uaWNsZXM7CivmjIfku6TlkI3lrZcgPiBjb21tYW5kXC1uYW1lOwor5LiA5bCP6YOo5YiGID4gYVwtc21hbGxcLXBhcnQ7CivkuLvlubnntrLntaEgPiBjb3JlXC1uZXR3b3JrOwor5o+u6ZyN54Sh5bqmID4gZXh0cmF2YWdhbmNlOwor55m76Zm45pyI55CDID4gbW9vblwtbGFuZGluZzsKK+i7jeS6i+aPtOWKqSA+IG1pbGl0YXJ5XC1haWQ7CivmnKzmnKzkuLvnvqkgPiBib29rXC13b3JzaGlwOwor5LqU6KeS5aSn5qiTID4gdGhlXC1wZW50YWdvbjsKK+aRqeilv+W+i+azlSA+IGxhd1wtb2ZcLW1vc2VzOwor6L+F6YCf6JST5bu2ID4gcmFwaWRcLXNwcmVhZDsKK+S7peaWr+aLieiomCA+IGJvb2tcLW9mXC1lenJhOwor5LiN55+l5omA5o6qID4gYmVcLWF0XC1hXC1sb3NzOwor5b2i5b2i6Imy6ImyID4gYWxsXC1raW5kc1wtb2Y7CivmqpTmoYjmnI3li5kgPiBmaWxlXC1zZXJ2b2NlOwor6ZmN6JC95Zyw6bueID4gbGFuZGluZ1wtc2l0ZTsKK+S4ieWNgeS6lOWEhCA+IDNcLVwuNVwtYmlsbGlvbjsKK+S6jOWNgeWFreatsiA+IDI2XC15ZWFyc1wtb2xkOwor5pW45pOa57ay57WhID4gZGF0YVwtbmV0d29yazsKK+m+kOeEtuWkp+eJqSA+IGh1Z2VcLW1vbnN0ZXI7CivkuJbnlYznn6XlkI0gPiB3b3JsZFwtZmFtb3VzOwor55+l6K2Y5Lu95a2QID4gaW50ZWxsZWN0dWFsOwor5b+r6YCf55m85bGVID4gcmFwaWRcLWdyb3d0aDsKK+WkmueoruiqnuiogCA+IG11bHRpbGluZ3VhbDsKK+WuieWFqOWVj+mhjCA+IHNhZmV0eVwtaXNzdWU7Civmsonph43miZPmk4ogPiB0b1wtaGl0XC1oYXJkOwor6Ieq54S26ICM54S2ID4gaW52b2x1bnRhcnk7CivkuI3otIrkuIDoqZ4gPiBrZWVwXC1zaWxlbnQ7Civkurrpq5TlmajlrpggPiBodW1hblwtb3JnYW47CivmsJHml4/kuLvnvqkgPiBuYXRpb25hbGlzbTsKK+eyvuWtkOWvhuW6piA+IHNwZXJtXC1jb3VudDsKK+mBt+Wxheenu+awkSA+IGltbWlncmF0aW9uOwor6YeO55Sf5YuV54mpID4gd2lsZFwtYW5pbWFsOwor6IGW6KqV6ICB5Lq6ID4gc2FudGFcLWNsYXVzOwor5rWq5ryr5Li7576pID4gcm9tYW50aWNpc207CivkuI3lj6/nn6Xoq5YgPiBhZ25vc3RpY2lzbTsKK+S4jeWIh+WvpumamyA+IHVucmVhbGlzdGljOwor5YW45Z6L55So6YCUID4gdHlwaWNhbFwtdXNlOwor5a+M5pa85oOz5YOPID4gaW1hZ2luYXRpdmU7CivlnIvkuovoqKrllY8gPiBzdGF0ZVwtdmlzaXQ7CivljYrljYrmi4nmi4kgPiBpbmNvbXBsZXRlZDsKK+S4jeWPr+WIhumboiA+IGluc2VwYXJhYmxlOwor54Sh55Si6ZqO57SaID4gcHJvbGV0YXJpYXQ7CivlpLHljrvmhI/orZggPiB1bmNvbnNjaW91czsKK+eZvuiQrOWvjOe/gSA+IG1pbGxpb25haXJlOwor6LK05peP56S+5pyDID4gYXJpc3RvY3JhY3k7Civms6LlpJrpu47lkIQgPiBwdWVydG9cLXJpY287Civnq4vms5XmqZ/pl5wgPiBsZWdpc2xhdHVyZTsKK+S4u+imgeWOn+WboCA+IG1haW5cLXJlYXNvbjsKK+acieeUn+S7peS+hiA+IHNpbmNlXC1iaXJ0aDsKK+iyneWKoOeIvua5liA+IGxha2VcLWJhaWthbDsKK+WSjOW5s+acg+irhyA+IHBlYWNlXC10YWxrczsKK+S4jeiuiuWDueagvCA+IGZpeGVkXC1wcmljZTsKK+Wls+e5vOaJv+S6uiA+IGluaGVyaXRyZXNzOwor5YGH6Kit6Kqe5rCjID4gc3VianVuY3RpdmU7CivlnLDlv4PlkLjlipsgPiBncmF2aXRhdGlvbjsKK+mBi+iyqOmmrOi7iiA+IGNhcmdvXC13YWdvbjsKK+esrOS4ieS4lueVjCA+IHRoaXJkXC13b3JsZDsKK+eEoemXnOe3iuimgSA+IGluZGlmZmVyZW50Owor5aSn5L6/5Lm+54elID4gY29uc3RpcGF0ZWQ7CivkuI3lgY/kuI3lgJogPiBldmVuXC1oYW5kZWQ7CivliIbmlaPms6jmhI8gPiB0b1wtZGlzdHJhY3Q7CivkuI3mr5vkuYvlnLAgPiBiYXJyZW5cLWxhbmQ7CivotoXntJrluILloLQgPiBzdXBlcm1hcmtldDsKK+W/heimgeaineS7tiA+IHJlcXVpcmVtZW50Owor5YiG5pyf5LuY5qy+ID4gaW5zdGFsbG1lbnQ7CivoiInkvovkvoboqqogPiBmb3JcLWV4YW1wbGU7CivkuJbnlYzosr/mmJMgPiB3b3JsZFwtdHJhZGU7Civojo7lo6vmr5Tkup4gPiBzaGFrZXNwZWFyZTsKK+Wbm+WIhuS5i+S4gCA+IG9uZVwtcXVhcnRlcjsKK+ioiuahhuWCs+mAgSA+IGZyYW1lXC1yZWxheTsKK+eVq+aPkuWcluiAhSA+IGlsbHVzdHJhdG9yOwor6LaK5Y2X5oiw54itID4gdmlldG5hbVwtd2FyOwor54Sh5omA5LiN5ZyoID4gb21uaXByZXNlbnQ7CivkuI3lh7rmiYDmlpkgPiBhc1wtZXhwZWN0ZWQ7CivkuJbnlYzlkozlubMgPiB3b3JsZFwtcGllY2U7CivkuI3lkIzlh6Hpn78gPiBvdXRzdGFuZGluZzsKK+aHieeUqOeoi+W8jyA+IGFwcGxpY2F0aW9uOwor6L2J5L6G6L2J5Y67ID4gcm92ZVwtYXJvdW5kOwor6Yed6YuS55u45bCNID4gdGl0XC1mb3JcLXRhdDsKK+mWieacg+eliOemsSA+IGJlbmVkaWN0aW9uOwor5LiN5Y+v5Lyw6YePID4gaW5lc3RpbWFibGU7CivplovmlL7ns7vntbEgPiBvcGVuXC1zeXN0ZW07CivmnInpmZDlhazlj7ggPiBjb3Jwb3JhdGlvbjsKK+epuumWk+aOoua4rCA+IHNwYWNlXC1wcm9iZTsKK+WfuuekjuWVj+mhjCA+IGJhc2ljXC1pc3N1ZTsKK+mCgemYv+WvhueBmCA+IG1pYW1pXC1iZWFjaDsKK+i6q+W/g+eIveW/qyA+IHJlZnJlc2htZW50Owor56Wt5Y+45qyK6KGTID4gcHJpZXN0Y3JhZnQ7CivmgbDlpoLlhbbku70gPiBhcHByb3ByaWF0ZTsKK+WcqOmAmeacn+mWkyA+IGR1cmluZ1wtdGltZTsKK+eEoeazleW/jeWPlyA+IGludG9sZXJhYmxlOwor5Y+N5YuV5YiG5a2QID4gcmVhY3Rpb25hcnk7Civkvb/nlKjmlrnkvr8gPiBlYXN5XC10b1wtdXNlOwor54Sh5rOV5b2i5a65ID4gdW5zcGVha2FibGU7CivmnInlkIzmg4Xlv4MgPiBzeW1wYXRoZXRpYzsKK+mAsuihjOaAp+S6pCA+IHRvXC1oYXZlXC1zZXg7CivllpzmraHlkLXmnrYgPiBxdWFycmVsc29tZTsKK+aooeeziumCj+i8ryA+IGZ1enp5XC1sb2dpYzsKK+Wwse+5jeiAjOiogCA+IGNvbnNpZGVyaW5nOwor5pyJ6YG46IiJ5qyKID4gY29uc3RpdHVlbnQ7CivmuKzpqZfntZDmnpwgPiB0ZXN0XC1yZXN1bHQ7CivnrqHlrrbogbfli5kgPiBzdGV3YXJkc2hpcDsKK+eLl+S6pOWqvuiIrCA+IGRvZ2d5XC1zdHlsZTsKK+WwiOacieWQjeipniA+IHByb3Blclwtbm91bjsKK+aci+avlOeCuuWluCA+IHRvXC1jb25zcGlyZTsKK+aQrOW8hOaYr+mdniA+IHNvd1wtZGlzY29yZDsKK+WGsOafk+afk+aWmSA+IGF6b2ljXC1keWVzOwor5Zub5YCL5bCP5pmCID4gZm91clwtaG91cnM7CivlpKnmloflrbjlrrYgPiBhc3Ryb25vbWVyOwor55y86Iqx57ma5LqCID4gYmVcLWRhenpsZWQ7Civpra/kvZvniL7lrq4gPiB0aGVcLWxvdXZyZTsKK+S4jeWgquW/jeWPlyA+IHVuYmVhcmFibGU7CivlqJvmqILkuK3lv4MgPiByZWNyZWF0aW9uOwor6Ieq55Sx6LK/5piTID4gZnJlZVwtdHJhZGU7CivkuInliIbkuYvkuowgPiB0d29cLXRoaXJkczsKK+e4vee1seS7u+acnyA+IHByZXNpZGVuY3k7CivkuI3lj6/pgL7otoogPiBpbXBhc3NhYmxlOwor5pWZ5aCC5aKT5ZywID4gY2h1cmNoeWFyZDsKK+ihjOaUv+mVt+WumCA+IG1hZ2lzdHJhdGU7CivosrTml4/oq5bogIUgPiBhcmlzdG9jcmF0Owor5paw6IGe6KiY6ICFID4gam91cm5hbGlzdDsKK+meremXouWFpeijoSA+IHBlbmV0cmF0ZWQ7Civku5blgJHoh6rlt7EgPiB0aGVtc2VsdmVzOwor6Zi/5aGe5ouc55aGID4gYXplcmJhaWphbjsKK+mCj+i8r+eCuOW9iCA+IGxvZ2ljXC1ib21iOwor5ZyW6Kej6Kqq5piOID4gaWxsdXN0cmF0ZTsKK+S4jeWxiOS4jeaSkyA+IHVueWllbGRpbmc7CivlpKfohabmrbvkuqEgPiBicmFpblwtZGVhZDsKK+iDoeaAneS6guaDsyA+IGltYWdpbmluZ3M7CivkuIDliIfkuovniakgPiBldmVyeXRoaW5nOwor5q2M576F6KW/5pu4ID4gY29sb3NzaWFuczsKK+S4jeeUseiHquS4uyA+IGNhbicndFwtaGVscDsKK+abvOW+ueaWr+eJuSA+IG1hbmNoZXN0ZXI7CivkvL3ppqzlsITnt5ogPiBnYW1tYVwtcmF5czsKK+alteeCuum+kOWkpyA+IG1vbnVtZW50YWw7CivmnInliKnlj6/lnJYgPiBwcm9maXRhYmxlOwor54Sh5omA5LiN6IO9ID4gb21uaXBvdGVudDsKK+WIhumbouS4u+e+qSA+IHNlcGFyYXRpc207CivkuJbnlYzpioDooYwgPiB3b3JsZFwtYmFuazsKK+eEoeaJgOS4jeefpSA+IG9tbmlzY2llbnQ7CivplovmnIPnpYjnprEgPiBpbnZvY2F0aW9uOwor6aCY5bCO6IO95YqbID4gbGVhZGVyc2hpcDsKK+aEj+imi+S4jeWQiCA+IGRpc3NlbnNpb247CivlrZ/liqDmi4nlnIsgPiBiYW5nbGFkZXNoOwor5byV5Lq65rOo5oSPID4gYXR0cmFjdGl2ZTsKK+W/mOaBqeiyoOe+qSA+IHVuZ3JhdGVmdWw7Civnm7jlkIzlkI3lrZcgPiBsaWtlXC1uYW1lZDsKK+S9v+S6uuS/oeacjSA+IGNvbnZpbmNpbmc7Civlj5bogIzku6PkuYsgPiBzdWJzdGl0dXRlOwor6Zu75a2Q56m66ZaTID4gY3liZXJzcGFjZTsKK+W+ruS4jei2s+mBkyA+IG5lZ2xpZ2libGU7CivpgZTos7TlloflmJsgPiBkYWxhaVwtbGFtYTsKK+S4jeaPo+WGkuaYpyA+IHZlbnR1cmVcLXRvOwor55yB55Wl56ym6JmfID4gYXBvc3Ryb3BoZTsKK+S4jeWwjeeitOWFkiA+IG5vdFwtcHJvcGVyOwor5oSP5oOz5LiN5YiwID4gdW5leHBlY3RlZDsKK+WGsOS4iumBi+WLlSA+IGljZVwtc3BvcnRzOwor576O5LmD5ruL6YasID4gbWF5b25uYWlzZTsKK+mZuOi7jeS4reWwiSA+IGxpZXV0ZW5hbnQ7CivlvarlvaLlpKfmvKIgPiBidXJseVwtY2hhcDsKK+iQrOS6i+mBlOWNoSA+IG1hc3RlcmNhcmQ7CivpgY7muKHmmYLmnJ8gPiB0cmFuc2l0aW9uOwor5paw6IGe5aqS6auUID4gbmV3c1wtbWVkaWE7CivloIXlrprkuI3np7sgPiB1bnN3ZXJ2aW5nOwor5q2k5pmC5Lul5YmNID4gaGVyZXRvZm9yZTsKK+acnemuruaIsOeIrSA+IGtvcmVhblwtd2FyOwor6Zuj5Lul572u5L+hID4gaW5jcmVkaWJsZTsKK+WFseWSjOaUv+mrlCA+IHJlcHVibGljYW47CivlpJbkuqTmiYvohZUgPiBkaXBsb21hdGljOwor55Wi5qWt5YW456auID4gZ3JhZHVhdGlvbjsKK+iFk+eri+avlOabuCA+IHBoaWxpcGlhbnM7CivpqI7lo6vpoqjmoLwgPiBrbmlnaHRob29kOwor5YyW5aad6Iie5pyDID4gbWFzcXVlcmFkZTsKK+Wls+acjeeJqeWToSA+IHN0ZXdhcmRlc3M7CivmspLmnInnn6XoprogPiBpbnNlbnNpYmxlOwor5paR6aeu6Zm46ZuiID4gdmFyaWVnYXRlZDsKK+awo+WLoua0tua0tiA+IGFnZ3Jlc3NpdmU7CivkuIPljYHlubTku6MgPiB0aGVcLTE5NzAnJ3M7Civlvp7ku4rku6XlvowgPiBoZW5jZWZvcnRoOwor6KaW56qX5paw5oqAID4gd2luZG93c1wtbnQ7CivnuK7lsI/mqKHlnosgPiBtaW5pYXR1cmU7Civku6XlvJfmiYDmm7ggPiBlcGhlc2lhbnM7CivmspLmnInlvaLni4AgPiBzaGFwZWxlc3M7CivnlKjmiLbmlbjmk5ogPiB1c2VyXC1kYXRhOwor6ZaL55m85Lq65ZOhID4gZGV2ZWxvcGVyOwor5Zyw6LOq5a245a62ID4gZ2VvbG9naXN0Owor55Sf54mp5a245a62ID4gYmlvbG9naXN0Owor5LiN5Y+v56Oo5ruFID4gaW5kZWxpYmxlOwor5LiN5Lqm5qiC5LmOID4gZXh0cmVtZWx5Owor5oyJ54Wn5a2X6Z2iID4gbGl0ZXJhbGx5Owor5LiJ5YiG5LmL5LiAID4gb25lXC10aGlyZDsKK+S4jeWPr+aVkeiXpSA+IGluY3VyYWJsZTsKK+iAtui3r+aSkuWGtyA+IGplcnVzYWxlbTsKK+iku+eAhueahOipsSA+IGJsYXNwaGVteTsKK+Wci+WFp+aIsOeIrSA+IGNpdmlsXC13YXI7CivljbHlnLDppqzmi4kgPiBndWF0YW1hbGE7CivliqDlr4blvoznmoQgPiBlbmNyeXB0ZWQ7CivmnInmlLvmk4rmgKcgPiBvZmZlbnNpdmU7Civmg6HlkI3mmK3lvbAgPiBub3RvcmlvdXM7CivntpPmv5/lrbjlrrYgPiBlY29ub21pc3Q7CivpmL/nqbrliqDnk5wgPiBhY29uY2FndWE7CivliqDmi4nlpKrmm7ggPiBnYWxhdGlhbnM7CivntrLpmpvoibLmg4UgPiBjeWJlcnBvcm47CivoirHnsonpgY7mlY8gPiBoYXlcLWZldmVyOwor54K65pmC6YGO5pepID4gcHJlbWF0dXJlOwor6IGv5ZCI57WE57mUID4gc3luZGljYXRlOwor5pyJ5Ym16YCg5YqbID4gaW5nZW5pb3VzOwor5Lq654mp5o+P5a+rID4gcG9ydHJheWFsOwor5Luk5Lq65qy95L2pID4gYWRtaXJhYmxlOwor6Zi/5aWH6YeM5pavID4gYWVzY2h5bHVzOwor5a2f5Yqg5ouJ6KqeID4gYmVuZ2FsZXNlOwor5qmf5qKw6KOd572uID4gbWFjaGluZXJ5Owor5paR57+F5bGx6baJID4gcGFydHJpZGdlOwor5LiN5Y+v5Yud5pW4ID4gY291bnRsZXNzOwor57i95pyD5pyD6ZW3ID4gcHJlc2lkZW50Owor5q+r54Sh55aR5ZWPID4gY2VydGFpbnR5Owor5r6z5aSn5Yip5LqeID4gYXVzdHJhbGlhOwor5aSn5a+r6Y6W5a6aID4gY2Fwc1wtbG9jazsKK+WNiuW3peWNiuiugCA+IHBhcnRcLXdvcms7CivmiJHlgJHoh6rlt7EgPiBvdXJzZWx2ZXM7CivnvoXlvrnmlq/nibkgPiByb2NoZXN0ZXI7CivnrqHlvKbmqILlnJggPiBvcmNoZXN0cmE7Civnmb3ml6XlgZrlpKIgPiBkYXlcLWRyZWFtOwor5Lu75L2V5YW25LuWID4gYW55XC1vdGhlcjsKK+W3tOWLkuaWr+WdpiA+IHBhbGVzdGluZTsKK+WcqO+5jeaXgemCiiA+IGFsb25nc2lkZTsKK+WFiOimi+S5i+aYjiA+IGZvcmVzaWdodDsKK+maqOS5i+iAjOW+jCA+IGZyb21cLXRoYXQ7CivkuIrlgIvmmJ/mnJ8gPiBsYXN0XC13ZWVrOwor5rCR5Li75pS/5rK7ID4gZGVtb2NyYWN5Owor5Li7566h5Lq65ZOhID4gZXhlY3V0aXZlOwor6LKh5YuZ56eY5pu4ID4gdHJlYXN1cmVyOwor55Sf6IKy6IO95YqbID4gZmVydGlsaXR5Owor5YWx5Lqr6Luf6auUID4gc2hhcmV3YXJlOwor5LiN5Y+X5q2h6L+OID4gdW53ZWxjb21lOwor5Ye55Ye45Y2w5Yi3ID4gZW1ib3NzaW5nOwor5pKS6YO96Kmy5Lq6ID4gc2FkZHVjZWVzOwor5YWx55Si5Li7576pID4gY29tbXVuaXNtOwor5LiN5Lul54K654S2ID4gb2JqZWN0XC10bzsKK+ekvuacg+S4u+e+qSA+IHNvY2lhbGlzbTsKK+icnOaciOWBh+acnyA+IGhvbmV5bW9vbjsKK+WQjOePreWQjOWtuCA+IGNsYXNzbWF0ZTsKK+WFt+acieS4u+asiiA+IHNvdmVyZWlnbjsKK+iHquWLleaok+airyA+IGVzY2FsYXRvcjsKK+e3iuaApeS6i+S7tiA+IGVtZXJnZW5jeTsKK+mAgOm7kea/gOe0oCA+IG1lbGF0b25pbjsKK+S4jeioiOWFtuaVuCA+IGNvdW50bGVzczsKK+Wfuuedo+aVmeW+kiA+IGNocmlzdGlhbjsKK+WHueWHuOi7i+iKsSA+IGVtYm9zc2luZzsKK+S4jeeEtueahOipsSA+IG90aGVyd2lzZTsKK+S6nuagvOmWgOi+siA+IGFnYW1lbW5vbjsKK+S4jemAnuS5i+W+kiA+IGRlc3BlcmFkbzsKK+e9ruS5i+W6puWkliA+IGRpc3JlZ2FyZDsKK+aGpOaGpOS4jeW5syA+IGluZGlnbmFudDsKK+S4i+WAi+aYn+acnyA+IG5leHRcLXdlZWs7Civmrbflj7LlrbjlrrYgPiBoaXN0b3JpYW47CivloIXlv43kuI3mi5QgPiBmb3J0aXR1ZGU7CivlhajloLTkuIDoh7QgPiB1bmFuaW1vdXM7CivnvoXliIfmlq/nibkgPiByb2NoZXN0ZXI7CivooajmhI/mloflrZcgPiBpZGVvZ3JhcGg7CivpgJrosqjohqjohLkgPiBpbmZsYXRpb247Civorormj5voqK3lgpkgPiBjb252ZXJ0ZXI7CivntpPmv5/lrbjogIUgPiBlY29ub21pc3Q7CivkuJnnqK7lsITnt5ogPiBnYW1tYVwtcmF5Owor5oSP5rCj55u45oqVID4gY29uZ2VuaWFsOwor542y5pq05Yip6ICFID4gcHJvZml0ZWVyOwor5pav5rSb5LyQ5YWLID4gc2xvdmFraWE7CivmsrnngrjlnIjppIUgPiBkb3VnaG51dDsKK+WboO+5jeS5i+aVhSA+IGluYXNtdWNoOwor6ZuN5a655aSn5bqmID4gZ2VuZXJvdXM7Civlpb3lpb3lhZLlnLAgPiBwcm9wZXJseTsKK+mojuWjq+awo+amgiA+IGNoaXZhbHJ5Owor6Im+5b636JW+5b63ID4gYWRlbGFpZGU7CivlhY3osrvou5/ku7YgPiBmcmVld2FyZTsKK+S7peWkque2sue1oSA+IGV0aGVybmV0Owor5qGD6Iqx5b+D5pyoID4gbWFob2dhbnk7CivmqJnmupbopo/moLwgPiBzdGFuZGFyZDsKK+eEoeirluS9leaZgiA+IHdoZW5ldmVyOwor5bm+5LmO5rKS5pyJID4gc2NhcmNlbHk7CivniafluKvkuYvogbcgPiBtaW5pc3RyeTsKK+WFreWNgeWbm+iQrCA+IDY0XC0wXC0wMDA7CivokpnmiZjnvoXmi4kgPiBtb3Rvcm9sYTsKK+S6uuW3pea1geeUoiA+IGFib3J0aW9uOwor5ZaH5Y+t5rC05LuZID4gZGFmZm9kaWw7CivlnIvpmpvntrLntaEgPiBpbnRlcm5ldDsKK+eEoeirluS9leS6iyA+IGFueXRoaW5nOwor57K+5Yqb5YWF5rKbID4gdmlnb3JvdXM7Civlk6XlgKvluIPntIAgPiBjb2x1bWJ1czsKK+W3pui8quaJi+anjSA+IHJldm9sdmVyOwor5ZOl5YCr5q+U5LqeID4gY29sb21iaWE7CivlkJvkuLvmlL/msrsgPiBtb25hcmNoeTsKK+S6uuWPo+eooOWvhiA+IHBvcHVsb3VzOwor5byV5Lq65rOo55uuID4gc3RyaWtpbmc7CivpmL/lpYfmrbfmlq8gPiBhY2hpbGxlczsKK+Wlp+W+t+S/ruaWryA+IG9keXNzZXVzOwor5Z2m5qGR5bC85LqeID4gdGFuemFuaWE7CivkuI3poafkuIDliIcgPiByZWNrbGVzczsKK+WLouWmguegtOeruSA+IHN3ZWVwaW5nOwor6L6y5a625bqt6ZmiID4gZmFybXlhcmQ7Civlrrbluq3kvZzmpa0gPiBob21ld29yazsKK+WNs+Wwh+S+huiHqCA+IGltbWluZW50Owor6Z+z5qiC5YWJ56KfID4gbXVzaWNcLWNkOwor5LqU5b2p6LOT57SbID4gY29sb3JmdWw7CivmvKLlr4bniL7poJMgPiBoYW1pbHRvbjsKK+iqnuiogOWtuOWutiA+IGxpbmd1aXN0Owor6b6N6aCt6ICB5aSnID4gYmlnXC1ib3NzOwor6IWT5Yip6ZaA5pu4ID4gcGhpbGVtb247Civpm7vohabntrLntaEgPiBpbnRlcm5ldDsKK+aRqeaJmOe+heaLiSA+IG1vdG9yb2xhOwor5be05Z+65pav5Z2mID4gcGFraXN0YW47Civlt7Tlt7TlpJrmlq8gPiBiYXJiYWRvczsKK+ertumBuOa0u+WLlSA+IGNhbXBhaWduOwor57WC56uv55So5oi2ID4gZW5kXC11c2VyOwor5aKo5rC055O25p62ID4gaW5rc3RhbmQ7CivntrLpmpvntrLot68gPiBpbnRlcm5ldDsKK+eEoeS6uumnlemnmyA+IHVubWFubmVkOwor5rOV5Yip6LO95Lq6ID4gcGhhcmlzZWU7Civnp5HnvoXmi4nlpJogPiBjb2xvcmFkbzsKK+WMquW+kumbhuWcmCA+IGdhbmdzdGVyOwor5bCE6aC75Zmq6Z+zID4gcmZcLW5vaXNlOwor5Lq66YGT5Li7576pID4gaHVtYW5pc207CivkuIDlv4PkuIDmhI8gPiBpbnRlbnRseTsKK+e2sumam+e2sue1oSA+IGludGVybmV0Owor57K+56We6Yyv5LqCID4gaW5zYW5pdHk7CivlmInlubToj6/mnIMgPiBjYXJuaXZhbDsKK+WNmuiMqOeTpue0jSA+IGJvdHN3YW5hOwor5aOf5pa36LKp6LOjID4gbW9ub3BvbHk7Civkv53liqDliKnkup4gPiBidWxnYXJpYTsKK+iytOaXj+i6q+S7vSA+IGxvcmRzaGlwOwor6IKM6IKJ55m86YGUID4gbXVzY3VsYXI7CivmtYHmhJ/nlqvoi5cgPiBmbHVcLXNob3Q7Civlt6XkvZzpgY7luqYgPiBvdmVyd29yazsKK+S5meWkque2sui3ryA+IGV0aGVybmV0Owor6aqo6aCt5p625a2QID4gc2tlbGV0b247CivmhJvlm6Dmlq/lnaYgPiBlaW5zdGVpbjsKK+eEoeirluS9leiZlSA+IGFueXdoZXJlOwor5YWs6ZaL5oyH6LKsID4gZGVub3VuY2U7CivmraHov47lhYnoh6ggPiB3ZWxjb21lOwor5a6J5o+Q55Oc5bO2ID4gYW50aWd1YTsKK+WWquW/g+eXheeLgiA+IGx1bmF0aWM7CivmoLzlrZDmo4nluIMgPiBnaW5naGFtOwor6JCs5pyJ5byV5YqbID4gZ3Jhdml0eTsKK+a2iOmYsumaiuWToSA+IGZpcmVtYW47CivmibPkuI3lgJLlhZIgPiB0dW1ibGVyOwor54is6J+y5YuV54mpID4gcmVwdGlsZTsKK+mAgOS8jei7jeS6uiA+IHZldGVyYW47CivlpJbnp5HphqvnlJ8gPiBzdXJnZW9uOwor5Zyo77mN5LmL6ZaTID4gYmV0d2VlbjsKK+WNgeWEhOS9jeWFgyA+IGdpZ2FiaXQ7Civouqvpq5TpmpzlrrMgPiBjcmlwcGxlOwor6Zi/5pGp5bC85LqeID4gYW1tb25pYTsKK+igleWLleWJjemAsiA+IHdyaWdnbGU7CivmtL7ntablt6XkvZwgPiB0b1wtdGFzazsKK+iWlOiWh+iKseiVviA+IHJvc2VidWQ7CivnhKHoq5bkvZXkurogPiB3aG9ldmVyOwor5pav55Om5biM6KOhID4gc3dhaGlsaTsKK+iIquepuumDteS7tiA+IGFpcm1haWw7Civkup7nibnomK3lpKcgPiBhdGxhbnRhOwor6YCy6YCA5YWp6ZujID4gZGlsZW1tYTsKK+S4jeeoguS4jeiOoCA+IHVzZWxlc3M7CivliIbmnpDkurrlo6sgPiBhbmFseXN0Owor5pyA5L2O6ZmQ5bqmID4gbWluaW11bTsKK+WFi+S7gOexs+eIviA+IGthc2htaXI7CivmtLvli5XmiL/lsYsgPiB0cmFpbGVyOwor5LuA5LiA5aWJ5427ID4gdGl0aGluZzsKK+WiqOilv+WTpeS6uiA+IG1leGljYW47CivliqDmpq7ogIDmlrwgPiBnbG9yaWZ5Owor5LiN5bmy5LiN5reoID4gdW5jbGVhbjsKK+S4ieS9jeS4gOmrlCA+IHRyaW5pdHk7CivlpbPnlKjlhafooaMgPiBjaGVtaXNlOwor5YWs55uK5LqL5qWtID4gdXRpbGl0eTsKK+aXpeW4uOW3peS9nCA+IHJvdXRpbmU7CivnlLfmgKfopqrlsawgPiBraW5zbWFuOwor6LKo54mp6YGL6Ly4ID4gZnJlaWdodDsKK+eJmeenkemGq+eUnyA+IGRlbnRpc3Q7Civpg6HmsrvlronlrpggPiBzaGVyaWZmOwor5Lqe5Lyv5ouJ572VID4gYWJyYWhhbTsKK+WFi+e+heWcsOS6niA+IGNyb2F0aWE7CivlhajnpZ7ngYzms6ggPiByYXB0dXJlOwor5bCI56eR6Zmi5qChID4gYWNhZGVteTsKK+mrmOmAn+WFrOi3ryA+IGhpZ2h3YXk7CivntaboiIfos4fmoLwgPiBxdWFsaWZ5Owor5Y2w5Zyw5a6J6YKjID4gaW5kaWFuYTsKK+S4jeW+l+iAjOefpSA+IHVua25vd247CivoiKrnqbrlhazlj7ggPiBhaXJsaW5lOwor5pyJ6ICQ5LmF5YqbID4gZHVyYWJsZTsKK+WkqumZvem7keWtkCA+IHN1bnNwb3Q7CivluIzkvK/kvobmm7ggPiBoZWJyZXdzOwor5aWn5p6X5Yy55YWLID4gb2x5bXBpYzsKK+S6nuWIqeahkemCoyA+IGFyaXpvbmE7Civok4vkuJblpKrkv50gPiBnZXN0YXBvOwor5ZaL5ZaL5LiN5LyRID4gY2hhdHRlcjsKK+aEm+Wxi+WPiueDjyA+IGxvdmVcLW1lOwor57aT5r+f5Yi25bqmID4gZWNvbm9teTsKK+S7pemmrOWFp+WIqSA+IGVtYW51ZWw7Civopo/lioPkurrlk6EgPiBwbGFubmVyOwor5oWI5ZaE5qmf5qeLID4gY2hhcml0eTsKK+eUt+aAp+WwiueosSA+IGVzcXVpcmU7CivkuI3kuInkuI3lm5sgPiBkdWJpb3VzOwor5YiX546L57SA5LiLID4gMlwta2luZ3M7CivliJfnjovntIDkuIogPiAxXC1raW5nczsKK+mZuOi7jeS4iuagoSA+IGNvbG9uZWw7CivomZvmp4vlsI/oqqogPiBmaWN0aW9uOwor5aSW56eR5omL6KGTID4gc3VyZ2VyeTsKK+WQhOiJsuWQhOaooyA+IGRpdmVyc2U7CivkvZvnvoXoo6HpgZQgPiBmbG9yaWRhOwor5YWs54i15aSr5Lq6ID4gZHVjaGVzczsKK+acieWlveWlh+W/gyA+IGN1cmlvdXM7Civlvbzlvpflvozmm7ggPiAyXC1wZXRlcjsKK+eOu+WIqee2reS6niA+IGJvbGl2aWE7CivlsI/lnovmq4Pmq6UgPiBjYWJpbmV0Owor5Y2w5YOP5rex5Yi7ID4gaW1wcmVzczsKK+aMh+WwjuaVmeaOiCA+IGFkdmlzZXI7CivkuI3nn6XkvZXmlYUgPiBzb21laG93Owor6Zi/5Y+45Yy55p6XID4gYXNwaXJpbjsKK+mHkeWFiemWg+eIjSA+IHNwYW5nbGU7CivkupLoga/ntrLntaEgPiBuZXR3b3JrOwor5aW06Zq45Yi25bqmID4gc2xhdmVyeTsKK+aBouW+qeWOn+eLgCA+IHJlc3RvcmU7Civppqzkvobopb/kup4gPiBtYWxhc2lhOwor5bGx6IOh5qGD5pyoID4gaGlja29yeTsKK+W9vOW+l+WJjeabuCA+IDFcLXBldGVyOwor5bCx5a+i5pmC6ZaTID4gYmVkdGltZTsKK+Wbm+i8qummrOi7iiA+IGNoYXJpb3Q7Civkup7mi4nlt7TppqwgPiBhbGFiYW1hOwor5b2I6YGT5bCO5b2IID4gbWlzc2lsZTsKK+acieeyvuelnueXhSA+IGluc2FuZTsKK+WTuuS5s+WLleeJqSA+IG1hbW1hbDsKK+S8iuWwvOS8iuW+tyA+IGFlbmVpZDsKK+WhnueIvue2reS6niA+IHNlcmJpYTsKK+S9v++5jeixkOWvjCA+IGVucmljaDsKK+S8iuWwvOS6nuaWryA+IGFlbmVhczsKK+mphemAkOWHuuWigyA+IGRlcG9ydDsKK+WFq+WIhumfs+espiA+IHF1YXZlcjsKK+WkqeeruueJoeS4uSA+IGRhaGxpYTsKK+mbouWlh+aciei2oyA+IHF1YWludDsKK+eZvOWYjuWYjuiBsiA+IHJhdHRsZTsKK+i2hemBjumZkOW6piA+IGV4Y2VlZDsKK+S4jeWPr+WRiuS6uiA+IGhpZGRlbjsKK+WKm+i2s+S7peWBmiA+IGFmZm9yZDsKK+WcqO+5jeacn+mWkyA+IGR1cmluZzsKK+eoruaXj+S4u+e+qSA+IHJhY2lzbTsKK+W+kuatpeaXheihjCA+IGhpa2luZzsKK+aXheihjOijneWCmSA+IG91dGZpdDsKK+WcsOS4i+mQtei3ryA+IHN1YndheTsKK+WogeWjq+W/jOmFkiA+IHdoaXNreTsKK+mAo+Wtl+espuiZnyA+IGh5cGhlbjsKK+W7oumZpOi7jeWCmSA+IGRpc2FybTsKK+mhm+WAkumBjuS+hiA+IGludmVydDsKK+S4g+aciOS4gOiZnyA+IGp1bHlcLTE7Civpu57poK3mi5vlkbwgPiBiZWNrb247CivkvK/ku7Llj5TlraMgPiBlbGRlc3Q7CivpvLvlj6Ppg6jliIYgPiBtdXp6bGU7CivlsJbogbLllbzlk60gPiBzcXVlYWw7Civlkb3pgYvoqLvlrpogPiBvcmRhaW47CivkurrpoK3njYXouqsgPiBzcGhpbng7CivkuI3lubjkuYvkuosgPiBtaXNoYXA7CivlnKjvuY3kuYvml4EgPiBiZXNpZGU7CivntITnv7Dkuozmm7ggPiAyXC1qb2huOwor6L2f6L2f54OI54OIID4gc3Ryb25nOwor5Y2B5Zub6KGM6KmpID4gc29ubmV0Owor5LqM6ICF5LmL5LiAID4gZWl0aGVyOwor57SE57+w5LiJ5pu4ID4gM1wtam9objsKK+e0hOe/sOS4gOabuCA+IDFcLWpvaG47Civnvo7mtLLlhYDpt7kgPiBjb25kb3I7CivkupTliIbnvo7ph5EgPiBuaWNrZWw7CivpmaTkuobkuYvlpJYgPiBleGNlcHQ7Civoo73pmbblt6XkurogPiBwb3R0ZXI7Civkurrlj6Poqr/mn6UgPiBjZW5zdXM7CivnhKHoq5blpoLkvZUgPiBhbnlob3c7Civlh7rln4Plj4roqJggPiBleG9kdXM7CivmnInol6Xnma7ogIUgPiBhZGRpY3Q7Civph6PprZrnlKjlhbcgPiB0YWNrbGU7Civmr5TovIPllpzmraEgPiBwcmVmZXI7CivpmL/lpJrlsLzmlq8gPiBhZG9uaXM7CivpgIPkuYvlpK3lpK0gPiBlc2NhcGU7CivntKvnvoXomK3oibIgPiB2aW9sZXQ7Civlgq3kurrpoJjnj60gPiBidXRsZXI7CivkuI3miLDkuI3lkowgPiBub1wtd2FyOwor6JiH5qC86Jit5bi9ID4gYm9ubmV0Owor5rib5L2O6YCf5bqmID4gcmV0YXJkOwor6Zi/5ouJ5pav5YqgID4gYWxhc2thOwor5L2/5YW36auU5YyWID4gZW1ib2R5Owor6YWS57K+6aOy5paZID4gbGlxdW9yOwor6LeR5aCC5YWS55qEID4gd2FpdGVyOwor5L2/77mN6IO95aSgID4gZW5hYmxlOwor55Sf5rCj5YuD5YuDID4gbGl2ZWx5Owor54Sh5rOV54Sh5aSpID4gb3V0bGF3Owor5rOi5pav5bC85LqeID4gYm9zbmlhOwor6Jmb5by16IGy5YuiID4gYmx1ZmY7CivmnKrmiJDlubTkurogPiBtaW5vcjsKK+m6teWMheW4q+WChSA+IGJha2VyOwor5oSf5YyW6aSF5Lm+ID4gd2FmZXI7CivpnZ7luLjlrrPmgJUgPiBkcmVhZDsKK+S4gOe3muW+ruWFiSA+IGdsZWFtOwor5LqU6Iqx5YWr6ZaAID4gbXlyaWQ7CivmlpzntIvou5/lkaIgPiB0d2VlZDsKK+W+t+WFi+iWqeaWryA+IHRleGFzOwor5ru/6Lqr5aG15Z+DID4gZHVzdHk7Civoqr/lkbPogonmsYEgPiBncmF2eTsKK+aomea6luWwuuWvuCA+IGdhdWdlOwor5Zyo77mN5LmL5LiLID4gYmVsb3c7CivlnKjvuY3kuYvkuIogPiBhYm92ZTsKK+ifsumzpeWPq+iBsiA+IGNoaXJwOwor5YuV5oWL5b2x5YOPID4gdmlkZW87CivkuInljYPkupTnmb4gPiAzXC01MDA7CivnpLrlqIHpgYvli5UgPiByYWxseTsKK+i8ieiyqOaxvei7iiA+IGxvcnJ5Owor5biD5bib6I+957KfID4gY2xvdGg7CivnpZ7ntpPpgY7mlY8gPiBqdW1weTsKK+S8iuaWr+iYreaVmSA+IGlzbGFtOwor5oSB55yJ6Ium6IeJID4gZnJvd247CivlkInmma7os73kurogPiBneXBzeTsKK+aEm+WFi+aWr+WFiSA+IHhcLXJheTsKK+WutuW6reaVmeW4qyA+IHR1dG9yOwor6Zyy6b2S6ICM56yRID4gZ3JpbjsKK+W+nuWuueS4jei/qyA+IGNhbG07CivkuIDop5LpioDluaMgPiBkaW1lOwor6aOy6aOf55mC6aSKID4gZGlldDsKK+ebrueequWPo+WRhiA+IHN0dW47Civmk7rpvo3ploDpmaMgPiBjaGF0Owor5Yiw77mN5LmL5LiKID4gb250bzsKK+WFqOmrlOS6uuWToSA+IGNyZXc7CivpgaDnqIvnm6PmjqcgPiBybW9uOwor5Zyo77mN5LmL5LitID4gYW1pZDsKK+Wwj+i1t+mHjeapnyA+IGphY2s7CivovJXogIzmmJPoiIkgPiBlYXN5Owor6YeR5bGs6JaE54mHID4gZm9pbDsKK+mgreiFpua4healmiA+IHNhbmU7CivlnKjmsLTmraXooYwgPiB3YWRlOwor5Ye656ef5rG96LuKID4gdGF4aTsKK+mrmOeIvuWkq+eQgyA+IGdvbGY7Civpm7voqbHpiLTogbIgPiBidXp6Owor5ray5pm26aGv56S6ID4gbGNkOwor54OP5ZCI5LmL55y+ID4gbW9iOwor57Si5YW36KOd572uID4gcmlnOwor5YWs5YWx5rG96LuKID4gYnVzOwor6I6r5ZCN5YW25aaZID4gb2RkOwor5ZyT5b2i5pyo5p2QID4gbG9nOwor5LiN5YiG5Yud6LKgID4gdGllOwor6KGj5pyN57ir6YKKID4gaGVtOwor5ZyT5b2i6bq15YyFID4gYnVuOwor5p2c5p2+5a2Q6YWSID4gZ2luOwor5Zyo77mN5LmL5YWnID4gaW47Civnm7TpgJrou4ogPiBcInRocm91Z2hcLXRyYWluXCJcLVwocmVmZXJzXC10b1wtdGhlXC1pZGVhXC1vZlwtcmV0YWluaW5nXC1wcmV2aW91c1wtbGVnaXNsYXR1cmVcLWFmdGVyXC10cmFuc2l0aW9uXC10b1wtY2hpbmVzZVwtcnVsZVwtaW5cLWhvbmdcLWtvbmdcLW9yXC1tYWNhdVwpOwor5bCP6Ief6ay8ID4gZGlydHlcLWxpdHRsZVwtbW9uc3RlclwtXChzcG9rZW5cLWFmZmVjdGlvbmF0ZWx5XC10b1wtYVwtY2hpbGRcLXdob1wtaGFzXC1nb3R0ZW5cLWhpbVwoaGVyXClzZWxmXC1kaXJ0eVw7XC1saXRlcmFsbHlcLVwibGl0dGxlXC1kaXJ0eVwtZ2hvc3RcIlwpOwor57a66Imy5L2zID4gaXRoYWNhXCxcLW55XC1cKGJ1dFwtcHJvbm91bmNlZFwteWkzXC1zZTRcLWppYTFcLFwtZm9sbG93aW5nXC1hXC1taXN0YWtlXC1tYWRlXC1ieVwtaHUyXC1zaGk0XC3og6HpgalcKTsKK+mbt+WzsOWhlCA+IGxlaWZlbmdcLXBhZ29kYVwsXC1ieVwtd2VzdFwtbGFrZVwtdW50aWxcLWl0XC13YXNcLWRlc3Ryb3llZFwtXChhbHNvXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlXCk7CivniaHkuLnljaEgPiBwZW9ueVwtY2FyZFwtXChjcmVkaXRcLWNhcmRcLWlzc3VlZFwtYnlcLWluZHVzdHJpYWxcLWFuZFwtY29tbWVyY2lhbFwtYmFua1wtb2ZcLWNoaW5hXCk7CivkuInlspTlj6MgPiBhdFwtdGhlXC1jcm9zc3JvYWRzXCxcLXRoZVwtbmFtZVwtb2ZcLWFcLWZhbW91c1wtb3BlcmFcLFwtc3RvcnlcLWZyb21cLXNodWlcLWh1XC16aHVhbjsKK+adjuiHquaIkCA+IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtbGlcLXppXC1jaGVuZ1wsXC1sZWFkZXJcLW9mXC1taW5nXC1keW5hc3R5XC1wZWFzYW50XC1yZWJlbGxpb247CivmsZ/lhavpu54gPiBcImppYW5nXC16ZW1pbicnc1wtZWlnaHRcLXBvaW50XC1mb3JtdWxhXCJcLVwoZm9yXC1yZXN1bWluZ1wtYVwtZGlhbG9nXC13aXRoXC10YWl3YW5cKTsKK+mEp+S6rua0qiA+IHRhbmdcLWxpYW5nXC1ob25nXC1cKG9wcG9zaXRpb25cLWNhbmRpZGF0ZVwtaW5cLWphblwtMTk5Nlwtc2luZ2Fwb3JlXC1lbGVjdGlvbnNcKTsKK+WQg+Wkp+aItiA+IG1hc3NcLXNlaXp1cmVcLW9mXC1mb29kXC1mcm9tXC1sYW5kbG9yZHNcLWR1cmluZ1wtZmFtaW5lc1wtYmVmb3JlXC1saWJlcmF0aW9uOwor5p2O5pmC54+NID4gbGlcLXNoaVwtemhlblwtXCgxNTE4XC0xNTkzXCxcLWZhbW91c1wtZG9jdG9yXCxcLWF1dGhvclwtb2ZcLWJlbjNcLWNhbzNcLWdhbmcxXC1tdTQ7Civnpr3mtYHmhJ8gPiBcImJpcmRcLWZsdVwiXC1cKGZsdVwtY2FycmllZFwtYnlcLWJpcmRzXC1cLVwtZm91bmRcLWluXC1ob25nXC1rb25nXC1pblwtbGF0ZVwtMTk5N1wpOwor6JKZ5Luj54i+ID4gXCh3YWx0ZXJcKVwtbW9uZGFsZVwtXCh1c1wtYW1iYXNzYWRvclwtdG9cLWphcGFuXCxcLWZvcm1lclwtdXNcLXZpY2VcLXByZXNpZGVudFwpOwor6Zmz57SN5b63ID4gXChjbGFpcmVcKVwtY2hlbm5hdWx0XCxcLWNvbW1hbmRlclwtb2ZcLWZseWluZ1wtdGlnZXJzXC1kdXJpbmdcLXdvcmxkXC13YXJcLWlpOwor57at54i+5a65ID4gXChqb2hhbm5lc1wtbG9kZXdpa3VzXClcLXZpbGpvZW5cLVwoc291dGhcLWFmcmljYW5cLWFtYmFzc2Fkb3JcLXRvXC10YWl3YW5cKTsKK+iRm+a0suWjqSA+IG5hbWVcLW9mXC1hXC1wbGFjZVwsXC1nZXpob3ViYVwtZGFtXC1vblwtdGhlXC1jaGFuZ2ppYW5nXC1yaXZlclwsXC1pblwtc2ljaHVhbjsKK+m8u+mfu+avjSA+IFwob2ZcLWNoaW5lc2VcLXByb251bmNpYXRpb25cKVwtYVwtdm93ZWxcLWZvbGxvd2VkXC1ieVwtYVwtbmFzYWxcLWNvbnNvbmFudDsKK+mHkeawuOWNlyA+IGtpbVwteW9uZ1wtbmFtXC1cKG5vcnRoXC1rb3JlYW5cLWRlcHV0eVwtcHJlbWllclwtYW5kXC1mb3JlaWduXC1taW5pc3RlclwpOwor5paX5om55pS5ID4gc3RydWdnbGVcLWNyaXRpY2lzbVwtdHJhbnNmb3JtYXRpb25cLVwoY3VsdHVyYWxcLXJldm9sdXRpb25cLXNsb2dhblwpOwor56uv5Y2I56+AID4gdGhlXC1kcmFnb25cLWJvYXRcLWZlc3RpdmFsXC1cKHRoZVwtNXRoXC1kYXlcLW9mXC10aGVcLTV0aFwtbHVuYXJcLW1vbnRoXCk7Civnmb3ojKvojKsgPiBcKG9mXC1taXN0XCxcLXNub3dcLFwtZmxvb2R3YXRlclwsXC1ldGNcKVwtYVwtdmFzdFwtZXhwYW5zZVwtb2ZcLXdoaXRlbmVzczsKK+aWr+S9qee+hSA+IFwoam9hblwpXC1zcGVyb1wtXCh1bmRlclwtc2VjcmV0YXJ5XC1vZlwtc3RhdGVcLWZvclwtZWNvbm9taWNcLWFmZmFpcnNcKTsKK+WkqualteaLsyA+IGFcLWtpbmRcLW9mXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtc2hhZG93Ym94aW5nXC1cKHRhaVwtY2hpXC1jaHVhblwpOwor5pyD5LiN5pyDID4gXChwb3NpbmdcLWFcLXF1ZXN0aW9uXDpcLXdoZXRoZXJcLXNvbWVvbmVcLFwtc29tZXRoaW5nXClcLWNhblwtb3JcLW5vdDsKK+aKseS9m+iFsyA+IGNsYXNwXC1idWRkYScnc1wtZmVldFwtXC1cLXByb2Zlc3NcLWRldm90aW9uXC1vbmx5XC13aGVuXC1pblwtdHJvdWJsZTsKK+ibi+iKsea5ryA+IGNsZWFyXC1zb3VwXC1jb250YWluaW5nXC1iZWF0ZW5cLWVnZ1wtYW5kXC1ncmVlblwtbGVhZnlcLXZlZ2V0YWJsZTsKK+mHkeWxseWvuiA+IGppbnNoYW5cLXRlbXBsZVwsXC13aGVyZVwtZmFoYWlcLWxpdmVzXC1cKGZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2VcKTsKK+S4puiSguiTriA+IHR3aW5cLWxvdHVzXC1mbG93ZXJzXC1vblwtb25lXC1zdGFsa1wtXC1cLWFcLWRldm90ZWRcLW1hcnJpZWRcLWNvdXBsZTsKK+mjm+iZjumaiiA+IGZseWluZ1wtdGlnZXJzXC1cKHVzXC1haXJtZW5cLWluXC1jaGluYVwtZHVyaW5nXC13b3JsZFwtd2FyXC10d29cKTsKK+aal+iKseWFkiA+IGFcLXZlaWxlZFwtZGVzaWduXC1pbmNpc2VkXC1pblwtcG9yY2VsYWluXC1vclwtd292ZW5cLWluXC1mYWJyaWM7Civmi5TnvZDlrZAgPiBjdXBwaW5nXC10ZWNobmlxdWVcLXVzZWRcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbWVkaWNpbmU7CivlhYPlrrXnr4AgPiB0aGVcLWxhbnRlcm5cLWZlc3RpdmFsXCxcLWphbnVhcnlcLTE1XC1vblwtdGhlXC1sdW5hclwtY2FsZW5kYXI7CivlgIvpq5TmiLYgPiBhXC1zbWFsbFwtcHJpdmF0ZVwtYnVzaW5lc3NcLVwodXNlZFwtaW5cLW1haW5sYW5kXC1jaGluYVwtb25seVwpOwor5pmv5b636Y6uID4gamluZ1wtZGVcLXpoZW5cLVwoYVwtY2hpbmVzZVwtY2l0eVwtaW5cLWppYW5nXC14aVwt5rGf6KW/XC1wcm92aW5jZVwpOwor6ZW35Z+O5Y2hID4gZ3JlYXRcLXdhbGxcLWNhcmRcLVwoY3JlZGl0XC1jYXJkXC1pc3N1ZWRcLWJ5XC1iYW5rXC1vZlwtY2hpbmFcKTsKK+WTiOiyneeIviA+IFwod2Vic3RlclwpXC1odWJiZWxsXC1cKGZvcm1lclwtYXNzb2NpYXRlXC1hdHRvcm5leVwtZ2VuZXJhbFwpOwor6JCs5aO95bGxID4gbmFtZVwtb2ZcLWFcLXBsYWNlXCxcLWxvbmdldml0eVwtaGlsbFwsXC1pblwtc3VtbWVyXC1wYWxhY2VcLemgpOWSjOWckjsKK+aLiemCo+eDiCA+IFwocHJpbmNlXClcLXJhbmFyaWRkaFwtXChzb25cLW9mXC1raW5nXC1zaWhhbm91a1wtb2ZcLWNhbWJvZGlhXCk7CivljIXlubLliLYgPiBhXC1zeXN0ZW1cLW9mXC1wYXltZW50XC1wYXJ0bHlcLWluXC1raW5kXC1hbmRcLXBhcnRseVwtaW5cLWNhc2g7CivpoY/nnJ/ljb8gPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXlhblwtemhlbnFpbmdcLFwtYVwtZmFtb3VzXC1jYWxsaWdyYXBoZXI7Civnmb3ntKDosp4gPiBcKG5hbWVcLW9mXC1hXC1wZXJzb25cKVwtYmFpXC1zdXpoZW5cLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+eZveWGsOWGsCA+IHBhaVwtcGluZ1wtcGluZ1wtXCh3ZWxsXC1rbm93blwtdGFpd2FuXC1wZXJmb3JtaW5nXC1hcnRpc3RcKTsKK+S8r+aBqeaWryA+IFwobmljaG9sYXNcKVwtYnVybnNcLVwodXNcLXN0YXRlXC1kZXBhcnRtZW50XC1zcG9rZXNwZXJzb25cKTsKK+WwvOi1q+mtryA+IFwoamF3YWhhcmxhbFwpXC1uZWhydVwtXChmaXJzdFwtcHJpbWVcLW1pbmlzdGVyXC1vZlwtaW5kaWFcKTsKK+aSpea1qum8kyA+IGFcLWRydW1cLXNoYXBlZFwtcmF0dGxlXC1cKHVzZWRcLWJ5XC1wZWRsYXJzXC1vclwtYXNcLWFcLXRveVwpOwor5YyX5aSn6I2SID4gdGhlXC1ncmVhdFwtbm9ydGhlcm5cLXdpbGRlcm5lc3NcLVwoaW5cLW5vcnRoZXJuXC1jaGluYVwpOwor5Y2B5LqU5aSnID4gMVwtNXRoXC1wYXJ0eVwtY29uZ3Jlc3NcLVwob2ZcLWNoaW5lc2VcLWNvbW11bmlzdFwtcGFydHlcKTsKK+adjuWFieiAgCA+IGxlZVwta3VhblwteWV3XC1cKGZvcm1lclwtcHJpbWVcLW1pbmlzdGVyXC1vZlwtc2luZ2Fwb3JlXCk7Civot5HmsZ/muZYgPiB0b1wtbWFrZVwtYVwtbGl2aW5nXC1hc1wtYVwtdHJhdmVsbGluZ1wtcGVyZm9ybWVyXCxcLWV0Y1wuOwor5Lqk5piT6aGNID4gc3VtXC1vclwtdm9sdW1lXC1vclwtYW1vdW50XC1vZlwtYnVzaW5lc3NcLXRyYW5zYWN0aW9uczsKK+ael+ixkOatoyA+IGxpblwtZmVuZ1wtY2hlbmdcLVwodGFpd2FuXC1taW5pc3Rlclwtb2ZcLXRoZVwtaW50ZXJpb3JcKTsKK+iRo+W7uuiPryA+IHR1bmdcLWNoZWVcLWh3YVwtXChob25nXC1rb25nXC1sZWFkZXJcLWFmdGVyXC1qdWx5XC0xOTk3XCk7CivljZfkuqzot68gPiBuYW5qaW5nXC1zdFwuXCxcLWxhcmdlXC1jb21tZXJjaWFsXC1zdHJlZXRcLWluXC1zaGFuZ2hhaTsKK+WFq+S7meahjCA+IG9sZFwtZmFzaGlvbmVkXC1zcXVhcmVcLXRhYmxlXC10b1wtc2VhdFwtZWlnaHRcLXBlb3BsZTsKK+WhnuaLieWHoSA+IFwoc29ubnlcKVwtc2VyYXBoaW5cLVwoaGFpdGlhblwtYW1iYXNzYWRvclwtdG9cLXRhaXdhblwpOwor6YeR5aSn5LitID4ga2ltXC1kYWVcLWp1bmdcLVwobmV3bHlcLWVsZWN0ZWRcLXByZXNpZGVudFwtb2ZcLWtvcmVhXCk7CivojIPmlq/lnaYgPiBcKGRpYW5uZVwpXC1mZWluc3RlaW5cLVwodXNcLXNlbmF0b3JcLWZyb21cLWNhbGlmb3JuaWFcKTsKK+a2suaFi+awtCA+IGxpcXVpZFwtd2F0ZXJcLVwoYXNcLW9wcG9zZWRcLXRvXC1zdGVhbVwtb3JcLWljZVwsXC1lXC5nXC5cKTsKK+ino+aUvui7jSA+IHBlb3BsZScnc1wtbGliZXJhdGlvblwtYXJteVwtXChpZVwsXC10aGVcLWNoaW5lc2VcLWFybXlcKTsKK+i2mee0q+mZvSA+IHpoYW9cLXppeWFuZ1wtXChmb3JtZXJcLWNoaW5lc2VcLWxlYWRlcnNoaXBcLWZpZ3VyZVwpOwor5LqS6YCa5oCnID4gaW50ZXJvcGVyYWJpbGl0eVwtXChvZlwtY29tbXVuaWNhdGlvbnNcLWVxdWlwbWVudFwpOwor5YWo5paX54WlID4gY2h1blwtZG9vXC1od2FuXC1cKGZvcm1lclwtc291dGhcLWtvcmVhblwtcHJlc2lkZW50XCk7CivmjqLot6/ogIUgPiBwYXRoZmluZGVyXC1cKHNwYWNlXC1jcmFmdFwtc2VudFwtdG9cLW1hcnNcLWJ5XC1uYXNhXCk7CivltJTkup7nkLMgPiBjaGFybGVzXC15YWhcLWxpblwtdHJpZVwtXChhcmthbnNhc1wtcmVzdGF1cmFudGV1clwpOwor5bCI5qGI57WEID4gc3BlY2lhbFwtXChsZWdhbFx8anVkaWNpYWxcKVwtaW52ZXN0aWdhdGlvbnNcLWdyb3VwOwor6ZW35rKZ54GjID4gY2hldW5nXC1zaGFcLXdhblwtXChwb3VsdHJ5XC1tYXJrZXRcLWluXC1ob25nXC1rb25nXCk7CivmraPluLjljJYgPiBub3JtYWxpemF0aW9uXC1cKG9mXC1kaXBsb21hdGljXC1yZWxhdGlvbnNcLFwtZXRjXCk7CivorJ3oo6HlpKsgPiBcKG5hd2F6XClcLXNoYXJpZlwtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1wYWtpc3RhblwpOwor5ZCz5L2c5qOfID4gZ29oXC1jaG9rXC10b25nXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLXNpbmdhcG9yZVwpOwor5bel5Lq66buoID4gd29ya2VycycnXC1wYXJ0eVwtXChzaW5nYXBvcmVcLW9wcG9zaXRpb25cLXBhcnR5XCk7Civmlq/kvanmnpcgPiBzcGVsbGluZ1wtXChlZ1wsXC1zcGVsbGluZ1wtZW50ZXJ0YWlubWVudFwtZ3JvdXBcKTsKK+ebp+azsOaEmiA+IHJvaFwtdGFlXC13b29cLVwoZm9ybWVyXC1zb3V0aFwta29yZWFuXC1wcmVzaWRlbnRcKTsKK+m9iueZveefsyA+IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWNoaW5lc2VcLWFydGlzdFwsXC1xaVwtYmFpXC1zaGk7CivllYbli5npg6ggPiBjb21tZXJjZVwtZGVwYXJ0bWVudFwtXChvZlwtdGhlXC11c1wtZ292ZXJubWVudFwpOwor6ICB5Ly05YWSID4gXChvZlwtYW5cLW9sZFwtbWFycmllZFwtY291cGxlXClcLWh1c2JhbmRcLW9yXC13aWZlOwor5qKG5a2Q6IWUID4gYVwtZ2VuZXJhbFwtdGVybVwtZm9yXC1sb2NhbFwtb3BlcmFzXC1pblwtc2hhbmd4aTsKK+aiheiYreiKsyA+IG5hbWVcLW9mXC1hXC12ZXJ5XC1mYW1vdXNcLWJlaWppbmdcLW9wZXJhXC1hcnRpc3Q7CivooYzmlL/pmaIgPiBleGVjdXRpdmVcLXl1YW5cLVwoZ292ZXJubWVudFwtYm9keVwtaW5cLXRhaXdhblwpOwor5p2w5L2b6IyyID4gXChqYW1lc1wpXC1qZWZmb3Jkc1wtXCh1c1wtc2VuYXRvclwtZnJvbVwtdmVybW9udFwpOwor576F5biD5rOKID4gbG9wXC1ub3JcLVwobnVjbGVhclwtdGVzdGluZ1wtc2l0ZVwtaW5cLXhpbmppYW5nXCk7CivmsJHpgLLpu6ggPiBkcHBcLVwoZGVtb2NyYXRpY1wtcHJvZ3Jlc3NpdmVcLXBhcnR5XCxcLXRhaXdhblwpOwor55m96Iqx6JuHID4gbG9uZ1wtbm9zZWRcLXBpdFwtdmlwZXJcLVwoYWdraXN0cm9kb25cLWFjdXR1c1wpOwor55y+6K2w5ZOhID4gbWVtYmVyXC1vZlwtdGhlXC11c1wtaG91c2VcLW9mXC1yZXByZXNlbnRhdGl2ZXM7CivpgoHnp5Hoo6EgPiBcKG1pa2VcKVwtbWNjdXJyeVwtXCh3aGl0ZVwtaG91c2VcLXNwb2tlc3BlcnNvblwpOwor5aCx5ZGK5pyDID4gcHVibGljXC1sZWN0dXJlXC1cKHdpdGhcLWd1ZXN0XC1zcGVha2Vyc1wsXC1ldGNcKTsKK+WIqeS8r+abvCA+IFwoY29ubmVjdGljdXRcLXNlbmF0b3JcLWpvc2VwaFwtaVwuXClcLWxpZWJlcm1hbjsKK+m6peenkeijoSA+IFwobWlrZVwpXC1tY2N1cnJ5XC1cKHdoaXRlXC1ob3VzZVwtc3Bva2VzcGVyc29uXCk7CivnpZ7lpbPls7AgPiBuYW1lXC1vZlwtYVwtcGVha1wtYnlcLWNoYW5namlhbmdcLXRocmVlXC1nb3JnZXM7Civnmb3mm4nnh5UgPiBwYWlcLWhzaWFvXC15ZW5cLVwoZGF1Z2h0ZXJcLW9mXC1wYWlcLXBpbmdcLXBpbmdcKTsKK+mHkeaXpeaIkCA+IGtpbVwtaWxcLXN1bmdcLVwoZm9ybWVyXC1ub3J0aFwta29yZWFuXC1sZWFkZXJcKTsKK+WkqualteWKjSA+IGFcLWtpbmRcLW9mXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtc3dvcmRcLXBsYXk7Civlj7jms5Xpg6ggPiBqdXN0aWNlXC1kZXBhcm1lbnRcLVwob2ZcLXRoZVwtdXNcLWdvdmVybm1lbnRcKTsKK+W6q+e0jeWNlyA+IFwoYW5kcmV3XClcLWN1bmFuYW5cLVwoYWxsZWdlZFwtc2VyaWFsXC1raWxsZXJcKTsKK+m7g+W7uuWNlyA+IGpvaG5cLWh1YW5nXC1cKGRlbW9jcmF0aWNcLXBhcnR5XC1mdW5kcmFpc2VyXCk7Civpu4Plsqnls7YgPiBodWFuZ3lhblwtaXNsYW5kXC1cKGluXC10aGVcLXNvdXRoXC1jaGluYVwtc2VhXCk7CivmqZ/pl5zloLEgPiBvZmZpY2lhbFwtXChnb3Zlcm5tZW50XC1vcGVyYXRlZFwpXC1uZXdzcGFwZXI7CivlhaXlrbjnjocgPiBwZXJjZW50YWdlXC1vZlwtY2hpbGRyZW5cLXdob1wtZW50ZXJcLXNjaG9vbDsKK+iMheiHuumFkiA+IG1hb3RhaVwtb3JcLW1haXRhaVwtXChjaGluZXNlXC1zdHJvbmdcLWRyaW5rXCk7CivnjovnvrLkuYsgPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLWFcLWZhbW91c1wtY2FsbGlncmFwaGVyOwor6YKK6KeS56eRID4gbGVmdG92ZXJcLWJpdHNcLWFuZFwtcGllY2VzXC1cKG9mXC1pbmR1c3RyaWFsOwor6Zi/5piM5pePID4gdGhlXC1hY2hhbmdcLW5hdGlvbmFsaXR5XC1saXZpbmdcLWluXC15dW5uYW47CivkvanmtJvopb8gPiBcKG5hbmN5XClcLXBlbG9zaVwtXChtZW1iZXJcLW9mXC11c1wtY29uZ3Jlc3NcKTsKK+WQkOmtr+eVqiA+IHRoZVwtdHVyZmFuXC1iYXNpblwsXC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor5Y2K6ISr55SiID4gcGFydGx5XC1yZWxlYXNlZFwtZnJvbVwtcHJvZHVjdGl2ZVwtbGFib3VyOwor57i95pu46KiYID4gZ2VuZXJhbFwtc2VjcmV0YXJ5XC1cKG9mXC1jb21tdW5pc3RcLXBhcnR5XCk7CivmsojlnIvmlL4gPiBjaGluZXNlXC1mb3JlaWduXC1taW5pc3RyeVwtc3Bva2VzcGVyc29uOwor56mG5qGC6IuxID4gbXVcLWd1aVwteWluZ1wtXChuYW1lXC1vZlwtYVwtd29tYW5cLXdhcnJpb3JcKTsKK+Wtq+Wls+WFkiA+IGdyYW5kZGF1Z2h0ZXJcLVwoZGF1Z2h0ZXJcLW9mXC1vbmUnJ3NcLXNvblwpOwor5bCa5oWV5p2wID4gamFtZXNcLXNhc3NlclwtXCh1c1wtYW1iYXNzYWRvclwtdG9cLWNoaW5hXCk7CivloZ7niL7ljZcgPiBcKGV1Z2VuZVwpXC1jZXJuYW5cLVwoYXBvbGxvXC0xN1wtYXN0cm9uYXV0XCk7CivlubTnlavlhZIgPiBuZXdcLXllYXJcLVwob3JcLXNwcmluZ1wtZmVzdGl2YWxcKVwtcGljdHVyZTsKK+mQtemjr+eilyA+IFwiaXJvblwtcmljZVwtYm93bFwiXC1cLVwtXC1zZWN1cmVcLWVtcGxveW1lbnQ7Civog6Hlv5fmmI4gPiBob1wtY2hpXC1taW5oXC1cKHZpZXRuYW1lc2VcLWxlYWRlclwsXC1jaXR5XCk7CivlvpDmgrLptLsgPiBuYW1lXC1vZlwtYVwtZmFtb3VzXC1wYWludGVyXCxcLXh1XC1iZWlob25nOwor6Iqx5pyo6JitID4gaHVhXC1tdVwtbGFuXC1cKG5hbWVcLW9mXC1hXC13b21hblwtd2FycmlvclwpOwor5omT5LiN6YGOID4gbm90XC10b1wtYmVcLWFibGVcLXRvXC1iZWF0XC1vclwtZGVmZWF0XC1zYlwuOwor55m85LqG6KiAID4gXChcInBhc3RcLXRlbnNlXCJcLW9mXC1cOueZvOiogFwpXC1zcG9rZVwtcHVibGljbHk7CivkuI3oh6rph48gPiBub3RcLXRha2VcLWFcLXByb3BlclwtbWVhc3VyZVwtb2ZcLW9uZXNlbGY7CivmioTlvozot68gPiB0b1wtb3V0ZmxhbmtcLWFuZFwtYXR0YWNrXC1mcm9tXC10aGVcLXJlYXI7Civnt6jlubTpq5QgPiBhbm5hbGlzdGljXC1zdHlsZVwtXChpblwtaGlzdG9yaW9ncmFwaHlcKTsKK+WutumEiembniA+ICcnaG9tZVwtdG93blwtY2hpY2tlbicnXC1cKGFcLXR5cGVcLW9mXC1kaXNoXCk7Civnq6DlrZ3lmrQgPiBqb2huXC1jaGFuZ1wtXCh0YWl3YW5cLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivkvobkuI3lj4ogPiB0aGVyZScnc1wtbm90XC1lbm91Z2hcLXRpbWVcLVwodG9cLWRvXC1zdGhcLlwpOwor5q275LiN5LqGID4gcG9ydHVsYWNhXC1zdW5kaWFsXC1cKGFcLXR5cGVcLW9mXC1wbGFudFwpOwor6L+O5pil6IqxID4gd2ludGVyXC1qYXNtaW5lXCxcLWphc21pbnVtXC1udWRpZmxvcnVtOwor5Li75Lq657+BID4gbWFzdGVyXC1cKG9mXC1vbmUnJ3NcLW93blwtZGVzdGlueVwsXC1ldGNcLlwpOwor5ZOI5a+G55OcID4gaGFtaVwtbWVsb25cLVwoYVwtdmFyaWV0eVwtb2ZcLW11c2ttZWxvblwpOwor6LK/5piT6aGNID4gdm9sdW1lXC1vZlwtdHJhZGVcLVwoYmV0d2VlblwtY291bnRyaWVzXCk7CivnuL3li5Xlk6EgPiBnZW5lcmFsXC1tb2JpbGl6YXRpb25cLVwoZm9yXC13YXJcLFwtZXRjXCk7CivltKnpvo3ml48gPiB0aGVcLWJlbmdsb25nXC1cKHBlbmdsdW5nXClcLW5hdGlvbmFsaXR5Owor6Zy4546L6Z6tID4gYVwtcmF0dGxlXC1zdGlja1wtdXNlZFwtaW5cLWZvbGtcLWRhbmNpbmc7Civnmb3mrq3ooLYgPiB0aGVcLWxhcnZhXC1vZlwtc2lsa3dvcm1cLXdpdGhcLWJhdHJ5dGlzOwor5LiN5aSx54K6ID4gY2FuXC1zdGlsbFwtYmVcLWNvbnNpZGVyZWRcLVwodG9cLWJlXC5cLlwuXCk7CivmnIDmg6DlnIsgPiBtb3N0XC1mYXZvcmVkXC1uYXRpb25cLVwodHJhZGVcLXN0YXR1c1wpOwor5Z+66YeR5pyDID4gYVwtZm91bmRhdGlvblwtXChpZVwsXC1hblwtb3JnYW5pemF0aW9uXCk7CivmiZPpjK/kuoYgPiBcInlvdVwtaGF2ZVwtZGlhbGVkXC10aGVcLXdyb25nXC1udW1iZXJcIjsKK+eXheWMheWFkiA+IGFcLXBlcnNvblwtd2hvXC1pc1wtYWx3YXlzXC1mYWxsaW5nXC1pbGw7Civmi4nojqvmlq8gPiBcKHBoaWxpcHBpbmVcLXByZXNpZGVudFwtZmlkZWxcKVwtcmFtb3M7Civog6Hlv5flvLcgPiBqYXNvblwtaHVcLVwodGFpd2FuXC1mb3JlaWduXC1taW5pc3RlclwpOwor5bmr5YCS5b+ZID4gYmVcLW1vcmVcLW9mXC1hXC1oaW5kcmFuY2VcLXRoYW5cLWFcLWhlbHA7Civkv7HmqILpg6ggPiBjbHViXC1cKGllXCxcLWFcLWdyb3VwXC1vclwtb3JnYW5pemF0aW9uXCk7Civli57li5Xnr4AgPiBpbnRlcm5hdGlvbmFsXC1sYWJvclwtZGF5XC1cKG1heVwtZGF5XCk7CivmirHnspfohb8gPiBsYXRjaFwtb25cLXRvXC10aGVcLXJpY2hcLWFuZFwtcG93ZXJmdWw7Civph5HmraPml6UgPiBraW1cLWpvbmdcLWlsXC1cKG5vcnRoXC1rb3JlYW5cLWxlYWRlclwpOwor5LiN5pG46aCtID4gbm90XC1hY3F1YWludGVkXC13aXRoXC10aGVcLXNpdHVhdGlvbjsKK+mtj+S6rOeUnyA+IHdlaVwtamluZ3NoZW5nXC1cKGNoaW5lc2VcLWRpc3NpZGVudFwpOwor5ZCD5LiN5LiKID4gYmVcLXVuYWJsZVwtdG9cLWdldFwtc29tZXRoaW5nXC10b1wtZWF0Owor5qqi5a+f5a6YID4gdGhlXC1wcm9zZWN1dGlvblwtXChpblwtYVwtY291cnRcLWNhc2VcKTsKK+Weg+Wcvui7iiA+IGdhcmJhZ2VcLXRydWNrXC1cKG9yXC1vdGhlclwtdmVoaWNsZVwpOwor5biD5rOV576FID4gYnVmZmFsb1wtXChjaXR5XC1pblwtbmV3XC15b3JrXC1zdGF0ZVwpOwor5YWr5pyD56m0ID4gdGhlXC1laWdodFwtc3RyYXRlZ2ljXC1uZXJ2ZVwtcG9pbnRzOwor6ZaL5pmu5pWmID4gY2FwZVwtdG93blwtXChjaXR5XC1pblwtc291dGhcLWFmcmljYVwpOwor6KaL5LiN5b6XID4gbWF5XC1ub3RcLWJlXC1zZWVuXC1ieVwtb3JcLWV4cG9zZWRcLXRvOwor5Ym16L6m5Lq6ID4gZm91bmRlclwtXChvZlwtYW5cLWluc3RpdHV0aW9uXCxcLWV0Y1wpOwor6YC85L6b5L+hID4gb2J0YWluXC1jb25mZXNzaW9uc1wtYnlcLWNvbXB1bHNpb247CivosqDosqzkurogPiBwZXJzb25cLWluXC1jaGFyZ2VcLVwob2ZcLXNvbWV0aGluZ1wpOwor5Y2B5LiJ57aTID4gdGhlXC10aGlydGVlblwtY29uZnVjaWFuXC1jbGFzc2ljczsKK+eXheifsuWusyA+IHBsYW50XC1kaXNlYXNlc1wtYW5kXC1pbnNlY3RcLXBlc3RzOwor5ZCD5LiN5pyNID4gbm90XC1iZVwtYWNjdXN0b21lZFwtdG9cLWVhdGluZ1wtc3RoOwor6aas5bC85ouJID4gbWFuaWxhXC1cKGNhcGl0YWxcLW9mXC1waGlsaXBwaW5lc1wpOwor5oeJ6Kmy6KqqID4gaXRcLXNob3VsZFwtYmVcLW1lbnRpb25lZFwtdGhhdFwtXC5cLlwuOwor5LiN5b6X5LiNID4gaGF2ZVwtbm9cLWNob2ljZVwtb3JcLW9wdGlvblwtYnV0XC10bzsKK+WMl+S8kOi7jSA+IHRoZVwtbm9ydGhlcm5cLWV4cGVkaXRpb25hcnlcLWFybXk7Civlj6/np7vmpI0gPiBwb3J0YWJsZVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+e2k+a/n+WtuCA+IGVjb25vbWljc1wtXChhc1wtYVwtZmllbGRcLW9mXC1zdHVkeVwpOwor5oSb6Z2i5a2QID4gYmVcLWNvbmNlcm5lZFwtYWJvdXRcLWZhY2VcLXNhdmluZzsKK+WiqOeIvue8vSA+IG1lbGJvdXJuZVwtXChhblwtYXVzdHJhbGlhblwtY2l0eVwpOwor57Si5p2w57SNID4gc29qb3VybmVyXC1cKG1hcnRpYW5cLWxhbmRcLXJvdmVyXCk7Civoq4flvpfkvoYgPiBhYmxlXC10b1wtdGFsa1wtdG9cLW9yXC1nZXRcLW9uXC13aXRoOwor54+t5Li75Lu7ID4gYVwtdGVhY2hlclwtaW5cLWNoYXJnZVwtb2ZcLWFcLWNsYXNzOwor5bCO6Iiq5ZOhID4gbmF2aWdhdG9yXC1cKG9uXC1hXC1wbGFuZVwtb3JcLWJvYXRcKTsKK+ecvuitsOmZoiA+IGhvdXNlXC1vZlwtcmVwcmVzZW50YXRpdmVzXC1cKHVzYVwpOwor55W25LqL5Lq6ID4gcGVyc29uc1wtaW52b2x2ZWRcLW9yXC1pbXBsaWNhdGVkOwor57SF57ag54eIID4gXChyZWRcLWFuZFwtZ3JlZW5cKVwtdHJhZmZpY1wtbGlnaHQ7Civph43opIfnr4AgPiByZXBlYXRlZFwtc2VnbWVudFwtXChuZXR3b3JraW5nXCk7CivlhbXlt6Xlu6AgPiBtdW5pdGlvbnNcLW9yXC1vcmRuYW5jZVwtZmFjdG9yeTsKK+WNiui6q+WDjyA+IGhhbGZcLWxlbmd0aFwtcGhvdG9cLW9yXC1wb3J0cmFpdDsKK+eZvOmbu+mHjyA+IFwoZ2VuZXJhdGVkXClcLWVsZWN0cmljYWxcLWVuZXJneTsKK+S/neWuieaXjyA+IHRoZVwtYmFvYW5cLVwocGFvYW5cKVwtbmF0aW9uYWxpdHk7CivmsZ/mvqTmsJEgPiBqaWFuZ1wtemVtaW5cLVwoY2hpbmVzZVwtcHJlbWllclwpOwor5bm05aSc6aOvID4gbmV3XC15ZWFyJydzXC1ldmVcLWZhbWlseVwtZGlubmVyOwor5p2O55m76LydID4gbGVlXC10ZW5nXC1odWlcLVwodGFpd2FuXC1sZWFkZXJcKTsKK+Wkp+iHqueEtiA+IG5hdHVyZVwtXChhc1wtaW5cLW1vdGhlclwtbmF0dXJlXCk7Civnq4vmlrnnsbMgPiBjdWJpY1wtbWV0ZXJcLVwodW5pdFwtb2ZcLXZvbHVtZVwpOwor5ZCD5LiN5raIID4gYmVcLXVuYWJsZVwtdG9cLXN0YW5kXC1cKGV4ZXJ0aW9uOwor5oqV56Wo56uZID4gcG9sbGluZ1wtc3RhdGlvblwtXChmb3JcLWFcLXZvdGVcKTsKK+W+l+elqOeOhyA+IHBlcmNlbnRhZ2VcLW9mXC12b3Rlc1wtb2J0YWluZWQ7CivlkIPkuI3kvY8gPiBiZVwtdW5hYmxlXC10b1wtYmVhclwtb3JcLXN1cHBvcnQ7Civoh6rmsrvljYAgPiBhdXRvbm9tb3VzXC1yZWdpb25cLVwoaW5cLWNoaW5hXCk7CivlvLXntJTlpoIgPiBcKGFtZXJpY2FuXC1hdXRob3JcKVwtaXJpc1wtY2hhbmc7Civnj63li5nmnIMgPiBhXC1yb3V0aW5lXC1tZWV0aW5nXC1vZlwtYVwtc3F1YWQ7CivmlrDlvrfoo6EgPiBuZXdcLWRlbGhpXC1cKGNhcGl0YWxcLW9mXC1pbmRpYVwpOwor5Y+N5bCN6buoID4gb3Bwb3NpdGlvblwtXChwb2xpdGljYWxcKVwtcGFydHk7CivoqqrmmI7mm7ggPiBzeW5vcHNpc1wtXChvZlwtYVwtcGxheVwtb3JcLWZpbG1cKTsKK+WPm+S6gue9qiA+IHRoZVwtY3JpbWVcLW9mXC1hcm1lZFwtcmViZWxsaW9uOwor5beu5b6X5aSaID4gZmFsbFwtc2hvcnRcLWJ5XC1hXC1sYXJnZVwtYW1vdW50Owor5Y+w54Gj6KmxID4gdGFpd2FuZXNlXC1jaGluZXNlXC1cKGxhbmd1YWdlXCk7CivokYnliKnmrL0gPiBcKHJ1c3NpYW5cLXByZXNpZGVudFwpXC15ZWx0c2luOwor6buD5rWm5rGfID4gaHVhbmdwdVwtcml2ZXJcLVwoaW5cLXNoYW5naGFpXCk7Civog4zljIXoorEgPiBoYXZlXC1hXC13ZWlnaHRcLW9uXC1vbmUnJ3NcLW1pbmQ7CivloLHmiLblj6MgPiBhcHBseVwtZm9yXC1hXC1yZXNpZGVudFwtcGVybWl0Owor5ZyL6Zqb57SaID4gXChhdFwtYW5cKVwtaW50ZXJuYXRpb25hbFwtbGV2ZWw7CivlkIPkuI3kvoYgPiBub3RcLWJlXC1mb25kXC1vZlwtY2VydGFpblwtZm9vZDsKK+aTmuWgseWwjiA+IGFjY29yZGluZ1wtdG9cLVwobmV3c1wpXC1yZXBvcnRzOwor55eF5q+S5a24ID4gdmlyb2xvZ3lcLVwoc3R1ZHlcLW9mXC12aXJ1c2VzXCk7CivogIzkuI3pnIAgPiB3aXRob3V0XC1uZWVkaW5nXC1cKHRvXC1zb1wtc3RoXCk7CivkuqTmj5vmqZ8gPiBzd2l0Y2hcLVwodGVsZWNvbW11bmljYXRpb25zXCk7CivlpKfpmbjoqbEgPiBtYWlubGFuZFwtY2hpbmVzZVwtXChsYW5ndWFnZVwpOwor5Lqk5o+b5ZmoID4gXCh0ZWxlY29tXC1vclwtbmV0d29ya1wpXC1zd2l0Y2g7CivpgJroqIrnpL4gPiBhXC1uZXdzXC1zZXJ2aWNlXC1cKGVnXCxcLXhpbmh1YVwpOwor5oSb5aW96ICFID4gbG92ZXJcLVwob2ZcLWFydFwsXC1zcG9ydHNcLFwtZXRjXCk7Civlhazlronpg6ggPiBtaW5pc3RyeVwtb2ZcLXB1YmxpY1wtc2VjdXJpdHk7CivmirHkuI3lubMgPiBiZVwtb3V0cmFnZWRcLWJ5XC1hblwtaW5qdXN0aWNlOwor55S35a2Q5ryiID4gbWFuXC1cKGlcLmVcLlwtbWFubHlcLFwtbWFzY3VsaW5lXCk7Civlt7TlhZLni5cgPiBwZWtpbmdlc2VcLVwoYVwtYnJlZWRcLW9mXC1kb2dcKTsKK+WtmOi7iuiZlSA+IHBhcmtpbmdcLWxvdFwtXChmb3JcLWJpY3ljbGVzXCk7CivpvLvniZvlhZIgPiBoYXJkZW5lZFwtbXVjdXNcLWluXC1ub3N0cmlsczsKK+ahg+iKsemBiyA+IGx1Y2tcLXdpdGhcLXRoZVwtb3Bwb3NpdGVcLXNleDsKK+W8l+WhnuWlhyA+IHZlcnNhY2VcLVwoZmFzaGlvblwtZGVzaWduZXJcKTsKK+aZrumAmuipsSA+IG1hbmRhcmluXC1cKGNvbW1vblwtbGFuZ3VhZ2VcKTsKK+W5vuW5tOS+hiA+IGZvclwtdGhlXC1wYXN0XC1zZXZlcmFsXC15ZWFyczsKK+mgpOWSjOWckiA+IHN1bW1lclwtcGFsYWNlXC1cKGluXC1iZWlqaW5nXCk7CivppqzkvobkurogPiBtYWxheXNpYW5cLXBlcnNvblwtb3JcLXBlb3BsZTsKK+W6leeJueW+iyA+IGRldHJvaXRcLVwoYVwtY2l0eVwtaW5cLXRoZVwtdXNcKTsKK+aDheazgeS4iyA+IHVuZGVyXC1cKHRoaXNcKVwtY2lyY3Vtc3RhbmNlczsKK+a6q+WTpeiPryA+IHZhbmNvdXZlclwtXChjaXR5XC1pblwtY2FuYWRhXCk7Civnmb3poK3nv4EgPiByb290XC1vZlwtY2hpbmVzZVwtcHVsc2F0aWxsYTsKK+S4reaWh+eJiCA+IGNoaW5lc2VcLVwobGFuZ3VhZ2VcKVwtdmVyc2lvbjsKK+mrmOS4reeUnyA+IHNlbmlvclwtaGlnaFwtc2Nob29sXC1zdHVkZW50Owor5p2/576955CDID4gYmF0dGxlZG9yZVwtYW5kXC1zaHV0dGxlY29jazsKK+WPg+WFqemZoiA+IGJvdGhcLWhvdXNlc1wtb2ZcLXVzXC1jb25ncmVzczsKK+eZn+ieuueXpyA+IGNob2xlcmFcLVwod2l0aFwtZGVoeWRyYXRpb25cKTsKK+mAj+mAmuaApyA+IHRyYW5zcGFyZW5jeVwtXChuZXR3b3JraW5nXCk7Civnh5/mpa3poY0gPiBzdW1cLW9yXC12b2x1bWVcLW9mXC1idXNpbmVzczsKK+efruWAi+WFkiA+IGFcLXBlcnNvblwtb2ZcLXNob3J0XC1zdGF0dXJlOwor5qC45aSn5ZyLID4gYVwtbnVjbGVhclwtcG93ZXJcLVwoY291bnRyeVwpOwor5biM6IeY6KqeID4gXChtb2Rlcm5cKVwtZ3JlZWtcLVwobGFuZ3VhZ2VcKTsKK+aZgumWk+WFpyA+IHdpdGhpblwtXChhXC1wZXJpb2RcLW9mXC10aW1lXCk7CivkuIvlt6XlpKsgPiB0b1wtcHV0XC1pblwtdGltZVwtYW5kXC1lbmVyZ3k7Civml6XmnKzkurogPiBqYXBhbmVzZVwtcGVyc29uXC1vclwtcGVvcGxlOwor54Sh6ZmQ5pyfID4gdW5saW1pdGVkXC1cKHRpbWVcKVwtZHVyYXRpb247CivluJXomK3ljaEgPiBwYWxhbmthXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivkurrmsJHluaMgPiBjaGluZXNlXC11bml0XC1vZlwtY3VycmVuY3k7CivmtYHmsJPnvaogPiB0aGVcLWNyaW1lXC1vZlwtaG9vbGlnYW5pc207CivpjITpn7PmqZ8gPiBcKHRhcGVcKVwtcmVjb3JkaW5nXC1tYWNoaW5lOwor5Luj5LmL5LulID4gXChoYXNcLWJlZW5cKVwtcmVwbGFjZWRcLXdpdGg7CivorormiLLms5UgPiBwZXJmb3JtXC1jb25qdXJpbmdcLXRyaWNrczsKK+eZvOihjOmhjSA+IFwocGVyaW9kaWNhbFwpXC1jaXJjdWxhdGlvbjsKK+WNgeS4ieaXpSA+IHRoaXJ0aWV0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivkuIvljYrouqsgPiBsb3dlclwtaGFsZlwtb2ZcLW9uZScnc1wtYm9keTsKK+WNsOatkOiqniA+IGluZG9cLWV1cm9wZWFuXC1cKGxhbmd1YWdlXCk7CivlhafmlL/pg6ggPiBtaW5pc3RyeVwtb2ZcLXRoZVwtaW50ZXJpb3I7CivljbDmrZDmlocgPiBpbmRvXC1ldXJvcGVhblwtXChsYW5ndWFnZVwpOwor54Sh6buo5rS+ID4gcG9saXRpY2FsbHlcLXVuYWZmaWxpYXRlZDsKK+iuiumbu+ermSA+IFwodHJhbnNmb3JtZXJcKVwtc3Vic3RhdGlvbjsKK+acqOS5g+S8iiA+IG11bW15XC1cKHByZXNlcnZlZFwtY29ycHNlXCk7CivlpJbkuqTpg6ggPiBmb3JlaWduXC1hZmZhaXJzXC1taW5pc3RyeTsKK+mBsua1qeeUsCA+IGNoaW5lc2VcLWRlZmVuc2VcLW1pbmlzdGVyOwor5YyX5rqr5bi2ID4gdGhlXC1ub3J0aFwtdGVtcGVyYXRlXC16b25lOwor5omT6Zu76KmxID4gdG9cLW1ha2VcLWFcLXRlbGVwaG9uZVwtY2FsbDsKK+atoueXm+azlSA+IG1ldGhvZFwtb2ZcLXJlbGlldmluZ1wtcGFpbjsKK+WMl+WNiueQgyA+IHRoZVwtbm9ydGhlcm5cLWhlbWlzcGhlcmU7Civpm5nntZ7nt5ogPiB1bnNoaWVsZGVkXC10d2lzdGVkXC1wYWl0Owor5YyF5om/5Yi2ID4gcmVzcG9uc2libGVcLWNyZXdcLXN5c3RlbTsKK+aSreaUvuapnyA+IHBsYXllclwtXChlXC5nXC5cLWNkXC1wbGF5ZXJcKTsKK+aTmue1seioiCA+IGFjY29yZGluZ1wtdG9cLXN0YXRpc3RpY3M7CivnlZnlrbjnlJ8gPiBzdHVkZW50XC1zdHVkeWluZ1wtYWJyb2FkOwor5aSa5bm05L6GID4gZm9yXC10aGVcLXBhc3RcLW1hbnlcLXllYXJzOwor5Lit56eL56+AID4gdGhlXC1taWRcLWF1dHVtblwtZmVzdGl2YWw7Civppqzot6/lj6MgPiBpbnRlcnNlY3Rpb25cLVwob2ZcLXJvYWRzXCk7CivmiLTntq3mlq8gPiBkYXZpc1wtXChlbmdsaXNoXC1zdXJuYW1lXCk7CivntIXmqJPlpKIgPiBhXC1kcmVhbVwtb2ZcLXJlZFwtbWFuc2lvbnM7CivpgY7kuI3ljrsgPiBtYWtlXC1saWZlXC1kaWZmaWN1bHRcLWZvcjsKK+aDheWgseiZlSA+IHNvdXJjZVwtXChvZlwtaW5mb3JtYXRpb25cKTsKK+iFkOaVl+e9qiA+IHRoZVwtY3JpbWVcLW9mXC1jb3JydXB0aW9uOwor55m96JuH5YKzID4gdGFsZVwtb2ZcLXRoZVwtd2hpdGVcLXNuYWtlOwor5Y2K5oiQ5ZOBID4gc2VtaVwtbWFudWZhY3R1cmVkXC1nb29kczsKK+WllOmgreWFkiA+IHNvbWV0aGluZ1wtdG9cLXN0cml2ZVwtZm9yOwor5Lit6L2J56uZID4gaHViXC1cKG5ldHdvcmtcLWVxdWlwbWVudFwpOwor6aaZ5riv5Lq6ID4gaG9uZ1wta29uZ1wtcGVyc29uXHxwZW9wbGU7CivmhZXpgZPlj4sgPiByZWxpZ2lvdXNcLWludmVzdGlnYXRvcjsKK+WJneaOoeavlCA+IHN0cmlwcGluZ1wtdG9cLW9yZVwtcmF0aW87Civnm67nmoTlnLAgPiBkZXN0aW5hdGlvblwtXChsb2NhdGlvblwpOwor5ZyL5YuZ6ZmiID4gc3RhdGVcLWRlcGFydG1lbnRcLVwodXNhXCk7CivljYHkupTlhIQgPiBvbmVcLWFuZFwtYVwtaGFsZlwtYmlsbGlvbjsKK+e0heeHkuiCiSA+IHJlZFwtY29va2VkXC1cKHBvcmtcKVwtbWVhdDsKK+WFrOWuieWxgCA+IHB1YmxpY1wtc2VjdXJpdHlcLWJ1cmVhdTsKK+eZvOeXheeOhyA+IGluY2lkZW5jZVwtb2ZcLWFcLWRpc2Vhc2U7CivnlpHllY/lj6UgPiBpbnRlcnJvZ2F0aXZlXC1zZW50YW5jZTsKK+atpOS4gOaZgiA+IHRoYXRcLXdhc1wtb25lXC1zaXR1YXRpb247CivkuI3lpb3mg7kgPiBub3RcLXRvXC1iZVwtdHJpZmxlZFwtd2l0aDsKK+S4jeW+l+W3siA+IGFjdFwtYWdhaW5zdFwtb25lJydzXC13aWxsOwor5LiK5Y2K5bm0ID4gZmlyc3RcLWhhbGZcLVwob2ZcLWFcLXllYXJcKTsKK+S4jeimgeiHiSA+IGhhdmVcLW5vXC1zZW5zZVwtb2ZcLXNoYW1lOwor6IOM5Zyw6aKoID4gYmVoaW5kXC1zb21lYm9keScnc1wtYmFjazsKK+i/keW5tOS+hiA+IGZvclwtdGhlXC1wYXN0XC1mZXdcLXllYXJzOwor5YW26Ieq6LqrID4gb25lJydzXC1vd25cLVwocmVzcGVjdGl2ZVwpOwor54Gr54Sw5bGxID4gdGhlXC1tb3VudGFpblwtb2ZcLWZsYW1lczsKK+W3peS9nOermSA+IFwoY29tcHV0ZXJcKVwtd29ya3N0YXRpb247CivljbDmrZDkurogPiBpbmRvXC1ldXJvcGVhblwtXChwZXJzb25cKTsKK+WdpuWFi+i7iiA+IHRhbmtcLVwoYXJtb3JlZFwtdmVoaWNsZVwpOwor5LiN5YOP5qijID4gaW5cLW5vXC1zaGFwZVwtdG9cLWJlXC1zZWVuOwor6K6K5YiG5rOVID4gY2FsY3VsdXNcLW9mXC12YXJpYXRpb25zOwor6KW/6YGK6KiYID4gcGlsZ3JpbWFnZVwtdG9cLXRoZVwtd2VzdDsKK+eVoualreeUnyA+IGdyYWR1YXRlXC1cKG9mXC1hXC1zY2hvb2xcKTsKK+iDjOm7kemNiyA+IHRvXC1iZVwtbWFkZVwtYVwtc2NhcGVnb2F0Owor6Z2I5pWP5bqmID4gXChsZXZlbFwtb2ZcKVwtc2Vuc2l0aXZpdHk7CivlvbzkuIDmmYIgPiB0aGF0XC13YXNcLW9uZVwtc2l0dWF0aW9uOwor6Luf56Gs5Lu2ID4gc29mdHdhcmVcLWFuZFwtaGFyZHdhcmU7CivnhrHploDosqggPiBnb29kc1wtaW5cLWdyZWF0XC1kZW1hbmQ7CivpgJrkv6Hph48gPiBjb21tdW5pY2F0aW9uc1wtdm9sdW1lOwor56Wd6LOA6KmeID4gY29uZ3JhdHVsYXRvcnlcLXNwZWVjaDsKK+W5vuWNgeW5tCA+IHNldmVyYWxcLXRlbnNcLW9mXC15ZWFyczsKK+avlOaWueiqqiA+IHRvXC1tYWtlXC1hblwtYW5hbG9neVwuXC5cLjsKK+m6peiKveezliA+IG1hbHRvc2VcLVwoc3dlZXRcLXN5cnVwXCk7Civnvo7oga/npL4gPiBhc3NvY2lhdGVkXC1wcmVzc1wtXChhcFwpOwor5o6o6Jam5L+hID4gcmVjb21tZW5kYXRpb25cLWxldHRlcjsKK+W5vuWkqeS+hiA+IGZvclwtdGhlXC1wYXN0XC1mZXdcLWRheXM7CivmipXkuobnpaggPiBwYXN0XC10ZW5zZVwtb2ZcLXRvXC12b3RlOwor6IKv5bC86L+qID4ga2VubmVkeVwtXChwcm9wZXJcLW5hbWVcKTsKK+S/neitt+WNgCA+IGNvbnNlcnZhdGlvblwtZGlzdHJpY3Q7Civlpaflvrfos70gPiB0aGVcLW9keXNzZXlcLFwtYnlcLWhvbWVyOwor6LaK5Y2X6KqeID4gdmlldG5hbWVzZVwtXChsYW5ndWFnZVwpOwor5Zub5bm05YmNID4gZm91clwteWVhcnNcLXByZXZpb3VzbHk7Civoo73pgKDllYYgPiBtYW51ZmFjdHVyaW5nXC1jb21wYW55Owor5Y+N6Z2p5ZG9ID4gY291bnRlclwtcmV2b2x1dGlvbmFyeTsKK+iAgeWFqeWPoyA+IGFuXC1vbGRcLW1hcnJpZWRcLWNvdXBsZTsKK+aLnOaKiuWtkCA+IGJlY29tZVwtc3dvcm5cLWJyb3RoZXJzOwor5YyX5a+S5bi2ID4gdGhlXC1ub3J0aFwtZnJpZ2lkXC16b25lOwor5YWr6Lev6LuNID4gdGhlXC1laWdodGhcLXJvdXRlXC1hcm15Owor5Y2X5YyX5qW1ID4gc291dGhcLWFuZFwtbm9ydGhcLXBvbGVzOwor6JGj5LqL6ZW3ID4gY2hhaXJtYW5cLW9mXC10aGVcLWJvYXJkOwor5LiN6KGM5LqGID4gb25cLXRoZVwtcG9pbnRcLW9mXC1kZWF0aDsKK+WNoeilv+WwvCA+IGNhc3NpbmlcLVwocHJvcGVyXC1uYW1lXCk7CivlhYnno4Hnop8gPiBtYWduZXRvXC1vcHRpY2FsXC1kaXNrOwor5Y2a6Ka95pyDID4gXChpbnRlcm5hdGlvbmFsXClcLWZhaXI7CivkuIDoiKzmgKcgPiBcKGluXClcLWdlbmVyYWxcLVwodGVybXNcKTsKK+mAi+mAg+iXqiA+IHJlZnVnZVwtZm9yXC1mdWdpdGl2ZXM7Civnmb3nnLznj6AgPiB0aGVcLXdoaXRlXC1vZlwtdGhlXC1leWU7CivmjZXon7LokYkgPiBpbnNlY3RcLWNhdGNoaW5nXC1sZWFmOwor5LiN6ZuF6KeAID4gb2ZmZW5zaXZlXC10b1wtdGhlXC1leWU7CivpmbPov7Dlj6UgPiBkZWNsYXJhdGl2ZVwtc2VudGVuY2U7CivpgJnlgIvmnIggPiB0aGlzXC1cKGN1cnJlbnRcKVwtbW9udGg7CivkuIDmuIXml6kgPiBlYXJseVwtaW5cLXRoZVwtbW9ybmluZzsKK+WAjemgu+WZqCA+IGZyZXF1ZW5jeVwtbXVsdGlwbGllcjsKK+mgmOWwjuasiiA+IGxlYWRlcnNoaXBcLWF1dGhvcml0eTsKK+e0gOW/teaXpSA+IGRheVwtb2ZcLWNvbW1lbW9yYXRpb247Civnmb3mo4nntJkgPiBzdGVuY2lsXC10aXNzdWVcLXBhcGVyOwor5oyq56qp5YWSID4gdG9cLW1vdmVcLVwodG9cLWFcLWhvdXNlXCk7CivlvrflnIvkurogPiBnZXJtYW5cLXBlcnNvblx8cGVvcGxlOwor5aSn5riF5pepID4gZWFybHlcLWluXC10aGVcLW1vcm5pbmc7Civnmb7kuovpgJogPiBrbm93bGVkZ2VhYmxlXC1wZXJzb247CivkuI3mrbvlv4MgPiB1bndpbGxpbmdcLXRvXC1naXZlXC11cDsKK+ekpuazieawtCA+IG1pbmVyYWxcLXNwcmluZ1wtd2F0ZXI7CivlkIPkuI3kuIsgPiBub3RcLWZlZWxcLWxpa2VcLWVhdGluZzsKK+iQrOe2ree2siA+IHdvcmxkXC13aWRlXC13ZWJcLVwod3d3XCk7Civlr6bpq5TlsaQgPiBwaHlzaWNhbFwtbGF5ZXJcLVwob3NpXCk7Civnj77pmo7mrrUgPiBhdFwtdGhlXC1wcmVzZW50XC1zdGFnZTsKK+WPm+Wci+e9qiA+IHRoZVwtY3JpbWVcLW9mXC10cmVhc29uOwor6Yym5qiZ6LO9ID4gY2hhbXBpb25zaGlwXC1jb250ZXN0Owor56u254it5YqbID4gY29tcGV0aXRpdmVcLXN0cmVuZ3RoOwor6YGL5YuV5pyDID4gYVwtc3BvcnRzXC1jb21wZXRpdGlvbjsKK+i3kem+jeWllyA+IHRvXC1wbGF5XC1hXC1zbWFsbFwtcm9sZTsKK+W+t+mbt+eIviA+IFwoanVuZVwtdGV1ZmVsXClcLWRyZXllcjsKK+iyoeaUv+mDqCA+IG1pbmlzdHJ5XC1vZlwtZmluYW5jZTsKK+W7o+WRiuWVhiA+IGFkdmVydGlzaW5nXC1jb21wYW55Owor5oWw5a6J5ammID4gY29tZm9ydFwtd29tYW5cfHdvbWVuOwor5oqY5bCE546HID4gaW5kZXhcLW9mXC1yZWZyYWN0aW9uOwor5bm05Luj5YidID4gYmVnaW5uaW5nXC1vZlwtYW5cLWFnZTsKK+mYsuempuaApyA+IGRlZmVuc2l2ZVwtXCh3ZWFwb25zXCk7CivmiZPmqavngq4gPiBzcGVha1wtdW53YXJyYW50ZWRseTsKK+eZvOiogOasiiA+IHRoZVwtcmlnaHRcLW9mXC1zcGVlY2g7CivlubTkuYvkuYUgPiBwZXJpb2RcLW9mXC1cLlwuXC5cLXllYXJzOwor5LiN5Lit5oSPID4gbm90XC10b1wtb25lJydzXC1saWtpbmc7Civnmb7liIbliLYgPiBodW5kcmVkXC1tYXJrXC1zeXN0ZW07CivliIbmnpDlrrYgPiBcKHBvbGl0aWNhbFwpXC1hbmFseXN0Owor56uL5rOV5pyDID4gbGVnaXNsYXRpdmVcLWNvdW5jaWw7CivlvJXlipvloLQgPiBncmF2aXRhdGlvbmFsXC1maWVsZDsKK+a2iOiAl+mHjyA+IHJhdGVcLW9mXC1jb25zdW1wdGlvbjsKK+aguOmbu+ermSA+IG51Y2xlYXJcLXBvd2VyXC1wbGFudDsKK+ihqOmdouWMliA+IGNvbWVcLXRvXC10aGVcLXN1cmZhY2U7Civpm7voqbHmqZ8gPiB0ZWxlcGhvbmVcLWVxdWlwbWVudDsKK+e4vee1seW6nCA+IHByZXNpZGVudGlhbFwtcGFsYWNlOwor5qmL5o6l5ZmoID4gYnJpZGdlXC1cKG5ldHdvcmtpbmdcKTsKK+mmrOS+huaWhyA+IG1hbGFzaWFuXC1cKGxhbmd1YWdlXCk7CivkuI3lvpfkuoYgPiBkZXNwZXJhdGVseVwtc2VyaW91czsKK+adv+aigeapiyA+IHBsYXRlXC1naXJkZXJcLWJyaWRnZTsKK+agvei3n+mgrSA+IHRvXC1zdWZmZXJcLWFcLXNldGJhY2s7CivmoLjlt6XnqIsgPiBudWNsZWFyXC1lbmdpbmVlcmluZzsKK+WuieeQhuacgyA+IHVuXC1zZWN1cml0eVwtY291bmNpbDsKK+aTuumWgOmdoiA+IGtlZXBcLXVwXC1hcHBlYXJhbmNlczsKK+i3r+mAj+ekviA+IHJldXRlcnNcLW5ld3NcLWFnZW5jeTsKK+enkeWtuOmZoiA+IGFjYWRlbXlcLW9mXC1zY2llbmNlczsKK+atpemAsuWItiA+IHN0ZXBcLWJ5XC1zdGVwXC1zeXN0ZW07CivliY3omIfoga8gPiBmb3JtZXJcLXNvdmlldFwtdW5pb247CivkuI3lnKjmhI8gPiBwYXlcLW5vXC1hdHRlbnRpb25cLXRvOwor5aSW5a2r5aWzID4gZGF1Z2h0ZXInJ3NcLWRhdWdodGVyOwor5Yaw6YaL6YW4ID4gZ2xhY2lhbFwtYWNldGljXC1hY2lkOwor5raI54KO6JelID4gYW50aWJpb3RpY1wtbWVkaWNpbmU7Civlp5Tlk6HplbcgPiBoZWFkXC1vZlwtYVwtY29tbWl0dGVlOwor5oOF5aCx5bGAID4gaW50ZWxsaWdlbmNlXC1hZ2VuY3k7CivljIXouqvlt6UgPiBpbmRlbnR1cmVkXC1sYWJvdXJlcjsKK+axuuitsOahiCA+IFwocGFzc1wtYVwpXC1yZXNvbHV0aW9uOwor5YyX5Lqs5Lq6ID4gcGVyc29uXC1mcm9tXC1iZWlqaW5nOwor6LKg6LKs5Lu7ID4gcmVzcG9uc2liaWxpdHlcLWZvcjsKK+S4reWxseijnSA+IGNoaW5lc2VcLXR1bmljXC1zdWl0Owor57es55S46KqeID4gYnVybWVzZVwtXChsYW5ndWFnZVwpOwor5pS/5rK754qvID4gcG9saXRpY2FsXC1wcmlzb25lcjsKK+W5tOS7peS+hiA+IHNpbmNlXC10aGVcLXllYXJcLVwuXC5cLjsKK+aWsOiPr+ekviA+IHhpbmh1YVwtbmV3c1wtYWdlbmN5Owor5LiN5Lit55SoID4gdW5maXRcLWZvclwtYW55dGhpbmc7CivpgLLkuIDmraUgPiBcKG9uZVwtc3RlcFwpXC1mdXJ0aGVyOwor5o+Q5L6b5ZWGID4gcHJvdmlkZXJcLVwoY29tcGFueVwpOwor5Y6f6JiH6IGvID4gZm9tZXJcLXNvdmlldFwtdW5pb247CivlpKnlronploAgPiB0aWFuYW5tZW5cLVwoc3F1YXJlXCk7CivkuI3lj5fnkIYgPiByZWplY3RcLWFcLWNvbXBsYWludDsKK+eZvOmBlOWciyA+IGRldmVsb3BpbmdcLWNvdW50cnk7Civot5HorabloLEgPiB0b1wtcnVuXC1mb3JcLXNoZWx0ZXI7Civnmb3plovmsLQgPiBwbGFpblwtYm9pbGVkXC13YXRlcjsKK+aLm+W+heacgyA+IFwocHJlc3NcKVwtY29uZmVyZW5jZTsKK+aHt+S/hOaYjiA+IHd5b21pbmdcLVwodXNcLXN0YXRlXCk7CivljaHmi4nlpYcgPiBrYXJhY2hpXC1cKHBha2lzdGFuXCk7CivljYropo/nrqEgPiBzZW1pY2lyY3VsYXJcLWNhbmFsOwor6aas5L6G6KqeID4gbWFsYXlzaWFuXC1sYW5ndWFnZTsKK+avlOS4jeS4iiA+IGNhbicndFwtY29tcGFyZVwtd2l0aDsKK+Wci+mYsumDqCA+IGRlZmVuc2VcLWRlcGFydG1lbnQ7CivotpXkuI3kuIogPiBjYW4nJ3RcLWtlZXBcLXVwXC13aXRoOwor5ou/5Li75oSPID4gdG9cLW1ha2VcLWFcLWRlY2lzaW9uOwor5bi45aeU5pyDID4gc3RhbmRpbmdcLWNvbW1pdHRlZTsKK+Wkp+WtuOeUnyA+IHVuaXZlcnNpdHlcLXN0dWRlbnQ7CivngI/opr3lmaggPiBicm93c2VyXC1cKHNvZnR3YXJlXCk7CivkuJbntIDmnKsgPiBlbmRcLW9mXC10aGVcLWNlbnR1cnk7Civmk4HorbfogIUgPiBzdXBwb3J0ZXJcLVwocGVyc29uXCk7CivlnIvli5nljb8gPiBzZWNyZXRhcnlcLW9mXC1zdGF0ZTsKK+WNiui8qeWtkCA+IGhhbGZcLW9mXC1hXC1saWZldGltZTsKK+ermeeuoeeQhiA+IHN0YXRpb25cLW1hbmFnZW1lbnQ7CivoiqzomK3oqp4gPiBmaW5uaXNoXC1cKGxhbmd1YWdlXCk7Civororms5XlhZIgPiB0cnlcLWRpZmZlcmVudFwtd2F5czsKK+a1t+epuui7jSA+IG5hdnlcLWFuZFwtYWlyXC1mb3JjZTsKK+e0sOiPjOaIsCA+IGJpb2xvZ2ljYWxcLXdhcmZhcmU7CivnkZ7lhbjoqp4gPiBzd2VkaXNoXC1cKGxhbmd1YWdlXCk7Civmtonlq4zkurogPiBcKGNyaW1pbmFsXClcLXN1c3BlY3Q7CivkvbXmjbLmqZ8gPiByaWJib25cLWxhcFwtbWFjaGluZTsKK+WIpeWLlemaiiA+IHNwZWNpYWxcLWRldGFjaG1lbnQ7CivnoJTnqbbmiYAgPiByZXNlYXJjaFwtaW5zdGl0dXRlOwor5bm06LyV5YyWID4gbWFrZVwtbW9yZVwteW91dGhmdWw7CivliqDpgJ/lmaggPiBhY2NlbGVyYXRvclwtXChjb21wXCk7CivkuI3nrYnomZ8gPiBzaWduXC1vZlwtaW5lcXVhbGl0eTsKK+ilv+WNiueQgyA+IHdlc3Rlcm5cLWhlbWlzcGhlcmU7CivmoLjmioDooZMgPiBudWNsZWFyXC10ZWNobm9sb2d5Owor5aCx5YuZ5ZOhID4gdGVsZWdyYXBoXC1vcGVyYXRvcjsKK+WFieazoumVtyA+IG9wdGljYWxcLXdhdmVsZW5ndGg7Civllonmk6bpn7MgPiBndXR0dXJhbFwtZnJpY2F0aXZlOwor5YWr57Sa5belID4gZWlnaHRcLWdyYWRlXC13b3JrZXI7CivkvZvokpnnibkgPiB2ZXJtb250XC1cW3VzXC1zdGF0ZVxdOwor566h55CG56uZID4gbWFuYWdlbWVudFwtc3RhdGlvbjsKK+iqquS4jeWumiA+IGNhbicndFwtc2F5XC1mb3JcLXN1cmU7Civms6Lmlq/oqp4gPiBib3NuaWFuXC1cKGxhbmd1YWdlXCk7CivlhJjlj6/og70gPiBhc1wtZmFyXC1hc1wtcG9zc2libGU7CivljIXmib/ntYQgPiBcKHJlc3BvbnNpYmxlXClcLWNyZXc7Civnmb7okYnnrrEgPiB0aGVybW9tZXRlclwtc2NyZWVuOwor6YG/6Zu35ZmoID4gbGlnaHRuaW5nXC1hcnJlc3RlcjsKK+aIsOmspeapnyA+IGZpZ2h0ZXJcLVwoYWlyY3JhZnRcKTsKK+mhr+ekuuWZqCA+IG1vbml0b3JcLVwoY29tcHV0ZXJcKTsKK+W/heS/ruiqsiA+IGFcLXJlcXVpcmVkXC1jb3Vyc2U7Civlg4XmrKHkuo4gPiBzZWNvbmRcLW9ubHlcLXRvXC5cLlwuOwor5pyd6a6u6KqeID4ga29yZWFuXC1cKGxhbmd1YWdlXCk7Civlu7rnr4nmpa0gPiBidWlsZGluZ1wtaW5kdXN0cnk7CivpuqXlhYvntq0gPiBcKHRpbW90aHlcKVwtbWN2ZWlnaDsKK+aHieeUqOWxpCA+IGFwcGxpY2F0aW9uXC1sYXllcjsKK+ahjOWIpeaelyA+IFwoY2hhcmxpZVwpXC1jaGFwbGluOwor6JOL54i+6KqeID4gZ2FlbGljXC1cKGxhbmd1YWdlXCk7CivnhKHmiYDorIIgPiB0b1wtYmVcLWluZGlmZmVyZW50Owor5qmf5Zmo5Lq6ID4gbWVjaGFuaWNhbFwtcGVyc29uOwor5buj5Z+f57ayID4gd2lkZVwtYXJlYVwtbmV0d29yazsKK+e2reaMgeiyuyA+IG1haW50ZW5hbmNlXC1jb3N0czsKK+adv+aTpuWFkiA+IGJsYWNrYm9hcmRcLWVyYXNlcjsKK+WQjOaAp+aIgCA+IGhvbW9zZXh1YWxcLVwobG92ZVwpOwor6Zu76Kmx57ayID4gdGVsZXBob25lXC1uZXR3b3JrOwor5oCn6ai35pO+ID4gc2V4dWFsXC1oYXJhc3NtZW50Owor5qmr5pa354mpID4gdHJhbnN2ZXJzZVwtb2JqZWN0Owor55m95bGI6I+cID4gZ3JlYXRlclwtY2VsYW5kaW5lOwor5YKz6Ly4546HID4gdHJhbnNtaXNzaW9uXC1yYXRlOwor5Ly65pyN5ZmoID4gc2VydmVyXC1cKGNvbXB1dGVyXCk7CivmnI3li5nlmaggPiBzZXJ2ZXJcLVwoY29tcHV0ZXJcKTsKK+Wci+mam+azlSA+IGludGVybmF0aW9uYWxcLWxhdzsKK+S+teaIquiAhSA+IFwoY29tcHV0ZXJcKVwtaGFja2VyOwor5Yid5a246ICFID4gYmVnaW5uaW5nXC1zdHVkZW50Owor6KW/546L5q+NID4gbmFtZVwtb2ZcLWFcLWdvZGRlc3M7CivlnKjpoK3niYggPiBvblwtdGhlXC1mcm9udFwtcGFnZTsKK+azouiYreiqniA+IHBvbGlzaFwtXChsYW5ndWFnZVwpOwor6L2f54K45qmfID4gYm9tYmVyXC1cKGFpcmNyYWZ0XCk7CivphqvlrbjlrrYgPiBtZWRpY2FsXC1zY2llbnRpc3Q7Civoj6/nm5vpoJMgPiB3YXNoaW5ndG9uXC1cKGRcLmNcLlwpOwor5Lif6aOv56KXID4gdG9cLWxvc2VcLW9uZScnc1wtam9iOwor5q+U6LyD5pawID4gY29tcGFyYXRpdmVseVwtbmV3Owor6Zu75L+h6JmfID4gZWxlY3RyaWNhbFwtc2lnbmFsOwor56eY5pu46ZW3ID4gc2VjcmV0YXJ5XC1nZW5lcmFsOwor5q2Q5rSy5Lq6ID4gZXVyb3BlYW5cLVwocGVyc29uXCk7CivooZvnlJ/pg6ggPiBoZWFsdGhcLWRlcGFydG1lbnQ7CivlpKrlubPmtIsgPiB0aGVcLXBhY2lmaWNcLW9jZWFuOwor5Y6f5Zug5pivID4gdGhlXC1yZWFzb25cLWlzXC1cLlwuXC47CivkuIDlubTljYogPiBhXC15ZWFyXC1hbmRcLWFcLWhhbGY7CivkuI3nlJjlv4MgPiBub3RcLXJlY29uY2lsZWRcLXRvOwor5a6i5oi25qmfID4gY2xpZW50XC1cKGNvbXB1dGVyXCk7CivlpLHmpa3njocgPiB1bmVtcGxveW1lbnRcLXJhdGU7Civorablr5/lsYAgPiBwb2xpY2VcLWRlcGFydG1lbnQ7Civmrbjlv4PogIUgPiByZWxpZ2lvdXNcLWNvbnZlcnQ7CivmspLpl5zkv4IgPiBpdFwtZG9lc24nJ3RcLW1hdHRlcjsKK+WMheWckuWFkiA+IGJ1eVwtdGhlXC13aG9sZVwtbG90Owor5LiA6Lqr5rGXID4gc3dlYXRpbmdcLWFsbFwtb3ZlcjsKK+eZvee0sOiDniA+IHdoaXRlXC1ibG9vZFwtY2VsbDsKK+aAp+mXnOS/giA+IHNleHVhbFwtcmVsYXRpb25zOwor5q6v5YSA6aSoID4gdGhlXC11bmRlcnRha2VyJydzOwor56CU6KiO5pyDID4gZGlzY3Vzc2lvblwtZm9ydW07Civos4fmlpnph48gPiBxdWFudGl0eVwtb2ZcLWRhdGE7Civnt6jovK/lrqQgPiBlZGl0b3JpYWxcLW9mZmljZTsKK+aLieS4geiqniA+IGxhdGluXC1cKGxhbmd1YWdlXCk7CivpganphY3lsaQgPiBhZGFwdGF0aW9uXC1sYXllcjsKK+WHuumiqOmgrSA+IHRvXC1jcmVhdGVcLWFcLXN0aXI7Civotorph47ou4ogPiBvZmZcLXJvYWRcLXZlaGljYWw7CivpganphY3lmaggPiBhZGFwdGVyXC1cKGRldmljZVwpOwor5Ymv5Li75bitID4gdmljZVwtY2hhaXJwZXJzb247CivmjbflhYvoqp4gPiBjemVjaFwtXChsYW5ndWFnZVwpOwor562G5bqV5LiLID4gYWJpbGl0eVwtdG9cLXdyaXRlOwor5qC45Y6f5paZID4gbnVjbGVhclwtbWF0ZXJpYWw7Civnmb3ooYDnkIMgPiB3aGl0ZVwtYmxvb2RcLWNlbGw7CivkuI3niK3msKMgPiBiZVwtZGlzYXBwb2ludGluZzsKK+WMl+WGsOa0iyA+IHRoZVwtYXJjdGljXC1vY2VhbjsKK+WPiOS+huS6hiA+IGhlcmVcLXdlXC1nb1wtYWdhaW47CivljYHlpJrlhIQgPiBvdmVyXC1vbmVcLWJpbGxpb247CivkuIDkuIvlrZAgPiBpblwtYVwtc2hvcnRcLXdoaWxlOwor5qC46Kit5pa9ID4gbnVjbGVhclwtZmFjaWxpdHk7CivpnZ7mlL/lupwgPiBub25cLWdvdmVybm1lbnRhbDsKK+S4u+W5uee3miA+IGJhY2tib25lXC1cKGNhYmxlXCk7Civpm7voppbmqZ8gPiB0ZWxldmlzaW9uXC1cKHNldFwpOwor5rWB6KGM55eFID4gZXBpZGVtaWNcLWRpc2Vhc2U7Civkv6HnlKjorYkgPiBsZXR0ZXJcLW9mXC1jcmVkaXQ7CivlrbjooZPnlYwgPiBhY2FkZW1pY1wtY2lyY2xlczsKK+ihm+aYn+WfjiA+IFwic2F0ZWxsaXRlXCJcLXRvd247CivnmoTkuIDnqK4gPiBpc1wtb25lXC1cKGtpbmRcLW9mXCk7Civmm7zlvrfmi4kgPiBcKG5lbHNvblwpXC1tYW5kZWxhOwor5Y2w5Zyw6KqeID4gaGluZGlcLVwobGFuZ3VhZ2VcKTsKK+W3pealreWMliA+IHRvXC1pbmR1c3RyaWFsaXplOwor6KiY6ICF5pyDID4gcHJlc3NcLWNvbmZlcmVuY2U7Civlh7rniYjnpL4gPiBwdWJsaXNoaW5nXC1ob3VzZTsKK+aylue5qeWztiA+IG9raW5hd2FcLVwoaXNsYW5kXCk7CivmsJHkuLvpu6ggPiBkZW1vY3JhdGljXC1wYXJ0eTsKK+mbu+imluWKhyA+IHR2XC1kcmFtYVwtcHJvZ3JhbTsKK+i8u+WwhOazoiA+IHJhZGlhdGlvblwtXCh3YXZlXCk7CivllYbmpa3ljJYgPiB0b1wtY29tbWVyY2lhbGl6ZTsKK+mbu+iFpue2siA+IGNvbXB1dGVyXC1uZXR3b3JrOwor6auY5oCn6IO9ID4gaGlnaFwtcGVyZm9ybWFuY2U7CivplovluZXlvI8gPiBvcGVuaW5nXC1jZXJlbW9ueTsKK+Wvpue/kueUnyA+IGludGVyblwtXChzdHVkZW50XCk7CivlnIvos5PppKggPiBzdGF0ZVwtZ3Vlc3Rob3VzZTsKK+S4jeiHs+aWvCA+IGNhbm5vdFwtZ29cLXNvXC1mYXI7Civnmb7liIbpu54gPiBwZXJjZW50YWdlXC1wb2ludDsKK+WKn+iDvembhiA+IGZ1bmN0aW9uXC1saWJyYXJ5Owor5YyW5a245oiwID4gY2hlbWljYWxcLXdhcmZhcmU7CivlpKflpJrmlbggPiBcKGdyZWF0XClcLW1ham9yaXR5Owor6I+P6Jit6KqeID4gZHV0Y2hcLVwobGFuZ3VhZ2VcKTsKK+S4gOW5tOWkmiA+IG1vcmVcLXRoYW5cLWFcLXllYXI7CivlhbHlkozpu6ggPiByZXB1YmxpY2FuXC1wYXJ0eTsKK+iElumguOWFkiA+IGJhY2tcLW9mXC10aGVcLW5lY2s7CivlpKfnhKHnlY8gPiB1dHRlcmx5XC1mZWFybGVzczsKK+i2hemrmOmAnyA+IHVsdHJhXC1oaWdoXC1zcGVlZDsKK+aAp+aOpeinuCA+IHNleHVhbFwtZW5jb3VudGVyOwor5ou/5omL6I+cID4gc3BlY2lhbHR5XC1cKGRpc2hcKTsKK+m8oOaomeWZqCA+IG1vdXNlXC1cKGNvbXB1dGVyXCk7CivkupLmk43mgKcgPiBpbnRlcm9wZXJhYmlsaXR5Owor5Yqf6IO9576kID4gZnVuY3Rpb25hbFwtZ3JvdXA7CivkuIDovKnlrZAgPiBcKGZvclwpXC1hXC1saWZldGltZTsKK+mrmOaViOeOhyA+IGhpZ2hcLWVmZmljaWVuY3k7CivliY3kuI3kuYUgPiBub3RcLWxvbmdcLWJlZm9yZTsKK+eUn+eUoumaiiA+IHByb2R1Y3Rpb25cLXRlYW07CivnlKjmiLbnt5ogPiBzdWJzY3JpYmVyXC1saW5lOwor576O5ZyL5Lq6ID4gYW1lcmljYW5cLXBlcnNvbjsKK+eci+S4iuWOuyA+IGl0XC13b3VsZFwtYXBwZWFyOwor5bm+5Y2B5YSEID4gc2V2ZXJhbFwtYmlsbGlvbjsKK+S4jeW+heiqqiA+IG5lZWRsZXNzXC10b1wtc2F5Owor5Ym16KiY6YyEID4gdG9cLXNldFwtYVwtcmVjb3JkOwor5LiN5ZCN5pW4ID4gYWJzdHJhY3RcLW51bWJlcjsKK+aVuOWNgeWEhCA+IHNldmVyYWxcLWJpbGxpb247CivnuL3ntpPnkIYgPiBnZW5lcmFsXC1tYW5hZ2VyOwor5pW455m+6JCsID4gc2V2ZXJhbFwtbWlsbGlvbjsKK+aLvOi1t+S+hiA+IHRvXC1wdXRcLXRvZ2V0aGVyOwor57Gz57KJ6IKJID4gcmljZVwtZmxvdXJcLW1lYXQ7Civpq5jmioDooZMgPiBoaWdoXC10ZWNobm9sb2d5Owor6ZaJ6Z+z56+AID4gY2xvc2VkXC1zeWxsYWJsZTsKK+iZm+mbu+i3ryA+IHZpcnR1YWxcLWNpcmN1aXQ7Civlvp7ljrvlubQgPiBzaW5jZVwtbGFzdFwteWVhcjsKK+iPsuW+i+izkyA+IHRoZVwtcGhpbGlwcGluZXM7CivmnKzml4/oqp4gPiBuYXRpdmVcLWxhbmd1YWdlOwor57WG6IWz55+zID4gc3R1bWJsaW5nXC1ibG9jazsKK+aEn+afk+iAhSA+IGluZmVjdGVkXC1wZXJzb247CivlpJrmqKPljJYgPiBkaXZlcnNpZmljYXRpb247CivntrLnrqHlk6EgPiBuZXR3b3JrXC1tYW5hZ2VyOwor5LiN5bmy5raJID4gbm9uaW50ZXJmZXJlbmNlOwor5qC45q2m5bqrID4gbnVjbGVhclwtYXJzZW5hbDsKK+S4ree+jua0siA+IGNlbnRyYWxcLWFtZXJpY2E7CivlpKnkuLvmlZkgPiBjYXRob2xpY1wtY2h1cmNoOwor6YeR6KOh5aWHID4gXChuZXd0XClcLWdpbmdyaWNoOwor5rOo5oSP55yLID4gd2F0Y2hcLWNhcmVmdWxseTsKK+WFseeUoum7qCA+IGNvbW11bmlzdFwtcGFydHk7CivkuI3opovlvpcgPiBub3RcLW5lY2Vzc2FyaWx5Owor6LOA5bm054mHID4gbmV3XC15ZWFyJydzXC1jYXJkOwor5qiZ5rqW5YyWID4gc3RhbmRhcmRpemF0aW9uOwor5L2/5ru/5oSPID4gdG9cLW1ha2VcLWNvbnRlbnQ7CivkuI3pj73pi7wgPiBzdGFpbmxlc3NcLXN0ZWVsOwor5Y2w5bqm5Lq6ID4gaW5kaWFuXC1cKHBlcnNvblwpOwor5aWn6YGL5p2RID4gb2x5bXBpY1wtdmlsbGFnZTsKK+aal+mBqeaHiSA+IGRhcmtcLWFkYXB0YXRpb247CivogIHnmb7lp5MgPiBvcmRpbmFyeVwtcGVvcGxlOwor5aSr5aa75bqXID4gZmFtaWx5XC1ydW5cLXNob3A7CivmlbjlrZfntrIgPiBkaWdpdGFsXC1uZXR3b3JrOwor5YWS5YyW6Z+7ID4gcmV0cm9mbGV4XC1maW5hbDsKK+acieiBr+e5qyA+IHRvXC1iZVwtY29ubmVjdGVkOwor5a+p5Yik6ZW3ID4gcHJlc2lkaW5nXC1qdWRnZTsKK+mrmOaViOiDvSA+IGhpZ2hcLWVmZmljaWVuY3k7Civnm5zniYjogIUgPiBzb2Z0d2FyZVwtcGlyYXRlOwor5aSn6YOo5Lu9ID4gXChpblwpXC1sYXJnZVwtcGFydDsKK+WGt+awo+apnyA+IGFpclwtY29uZGl0aW9uZXI7CivkvIrnlLjlnJIgPiBnYXJkZW5cLW9mXC1lZGVuOwor5oiQ5ZOh5ZyLID4gbWVtYmVyXC1jb3VudHJ5Owor6Yej6a2a6Ie6ID4gZGlhb3l1XC1pc2xhbmRzOwor6KSH6Z+75q+NID4gY29tcG91bmRcLWZpbmFsOwor5bmA5aSq6ZW3ID4gb3ZlcnNpemVcLWZyYW1lOwor5Ly055Sf5rCjID4gYXNzb2NpYXRlZFwtZ2FzOwor54mp55CG5bGkID4gcGh5c2ljYWxcLWxheWVyOwor6IGv5ZCI5ZyLID4gdW5pdGVkXC1uYXRpb25zOwor6Iux5ZyL5Lq6ID4gYnJpdGlzaFwtcGVyc29uOwor55m954ax5YyWID4gdHVyblwtd2hpdGVcLWhvdDsKK+WNgeS4gOaciCA+IGVsZXZlbnRoXC1tb250aDsKK+WOn+WtkOaguCA+IGF0b21pY1wtbnVjbGV1czsKK+aKiuWFhOW8nyA+IHN3b3JuXC1icm90aGVyczsKK+WMl+aWl+aYnyA+IHRoZVwtYmlnXC1kaXBwZXI7CivplovnjqnnrJEgPiB0b1wtcGxheVwtYVwtam9rZTsKK+WvqeWIpOW4rSA+IGp1ZGdlbWVudFwtc2VhdDsKK+eZveeyieeXhSA+IHBvd2RlcnlcLW1pbGRldzsKK+mHo+mtmuWztiA+IGRpYW95dVwtaXNsYW5kczsKK+WPpOW4jOiHmCA+IGFuY2llbnRcLWdyZWVjZTsKK+S4reWci+S6uiA+IGNoaW5lc2VcLXBlcnNvbjsKK+ebo+edo+S6uiA+IHN1cGVyaW50ZW5kZW50Owor6aCG5bqP5pW4ID4gb3JkaW5hbFwtbnVtYmVyOwor6Zu76Kmx57eaID4gdGVsZXBob25lXC1saW5lOwor5bCx5piv6KqqID4gaW5cLW90aGVyXC13b3JkczsKK+aVmeiCsueVjCA+IGFjYWRlbWljXC13b3JsZDsKK+S4jeaVoueVtiA+IHlvdVwtZmxhdHRlclwtbWU7Civlia/nuL3ntbEgPiB2aWNlXC1wcmVzaWRlbnQ7CivnlJroh7PmlrwgPiBzb1wtbXVjaFwtXCh0aGF0XCk7CivkuI3lubPooaEgPiBkaXNlcXVpbGlicml1bTsKK+adseWNl+S6niA+IHNvdXRoZWFzdFwtYXNpYTsKK+aOoeaUtueOhyA+IHJlY292ZXJ5XC1yYXRpbzsKK+iHqueUseWMliA+IGxpYmVyYWxpemF0aW9uOwor5LiN6YGp55SoID4gbm90XC1hcHBsaWNhYmxlOwor57Ch5Zau5YyWID4gc2ltcGxpZmljYXRpb247Civpub3muZbln44gPiBzYWx0XC1sYWtlXC1jaXR5Owor6KGA6KO95ZOBID4gYmxvb2RcLXByb2R1Y3RzOwor5Ye56Z2i6Y+hID4gY29uY2F2ZVwtbWlycm9yOwor6ZaL5b+D5p6cID4gcGlzdGFjaGlvXC1udXRzOwor5LiW55WM6KqeID4gd29ybGRcLWxhbmd1YWdlOwor6KGM5pif6ZqbID4gaW50ZXJwbGFuZXRhcnk7CivkuK3lv4Poqp4gPiBxdWFsaWZpZWRcLXdvcmQ7Civlj4PorIDplbcgPiBjaGllZlwtb2ZcLXN0YWZmOwor6YyE5YOP5qmfID4gdmlkZW9cLXJlY29yZGVyOwor5YWJ5L+h6JmfID4gb3B0aWNhbFwtc2lnbmFsOwor5qC45q2m5ZmoID4gbnVjbGVhclwtd2VhcG9uOwor6YGU5LiN5YiwID4gY2Fubm90XC1hY2hpZXZlOwor5YWL5p6X6aCTID4gXChiaWxsXClcLWNsaW50b247CivogZboqpXnr4AgPiBjaHJpc3RtYXNcLXRpbWU7Civnmb3ku6TmtbcgPiB0aGVcLWJlcmluZ1wtc2VhOwor5pGp6ZaA57aTID4gYm9va1wtb2ZcLW1vcm1vbjsKK+Wwi+mWi+W/gyA+IHRvXC1tYWtlXC1mdW5cLW9mOwor54qv5LiN6JGXID4gbm90XC13b3J0aHdoaWxlOwor5LiN55So6KydID4geW91JydyZVwtd2VsY29tZTsKK+WNiuiHquWLlSA+IHNlbWlcLWF1dG9tYXRpYzsKK+WFp+iSmeWPpCA+IGlubmVyXC1tb25nb2xpYTsKK+mAgOS8kemHkSA+IHJldGlyZW1lbnRcLXBheTsKK+eVmeiogOewvyA+IHZpc2l0b3InJ3NcLWJvb2s7CivmrbvkuqHnjocgPiBtb3J0YWxpdHlcLXJhdGU7Civlk4joqbLmm7ggPiBib29rXC1vZlwtaGFnZ2FpOwor5pO65pSk5a2QID4gc2V0XC11cFwtYVwtc3RhbGw7CivnkZ7lo6vkurogPiBzd2lzc1wtXChwZXJzb25cKTsKK+W3ruS4jeWkmiA+IGFsbW9zdFwsXC1uZWFybHk7Civmi6zlvKfoo6EgPiBpblwtcGFyZW50aGVzZXM7Civkv6HomZ/oh7ogPiBzaWduYWxcLXN0YXRpb247CivkuJbnlYzkuIogPiBcKG9mXC10aGVcKVwtd29ybGQ7CivlnJPnj6DnrYYgPiBiYWxsXC1wb2ludFwtcGVuOwor6LeR6IW/5YWSID4gdG9cLXJ1blwtZXJyYW5kczsKK+azoueLgOeGsSA+IHVuZHVsYW50XC1mZXZlcjsKK+efpeitmOW6qyA+IGtub3dsZWRnZVwtYmFzZTsKK+mbu+S/oeWxgCA+IGNlbnRyYWxcLW9mZmljZTsKK+ilv+WNl+S6niA+IHNvdXRod2VzdFwtYXNpYTsKK+aSpeiZn+ebpCA+IHRlbGVwaG9uZVwtZGlhbDsKK+W+jOWFqeiAhSA+IHRoZVwtbGF0dGVyXC10d287Civlu6Dnpq7mi5wgPiBkYXlcLW9mZlwtXCh3b3JrXCk7Civlhannmb7lhIQgPiB0d2VudHlcLWJpbGxpb247CivnhKHpgKPmjqUgPiBjb25uZWN0aW9ubGVzczsKK+eMnOisjuWFkiA+IGd1ZXNzXC1hXC1yaWRkbGU7CivljYrku6XkuIogPiBtb3JlXC10aGFuXC1oYWxmOwor5LiN5a6i5rCjID4geW91JydyZVwtd2VsY29tZTsKK+e+juW3ruS6iyA+IGFcLXRlcnJpZmljXC1qb2I7Civoq77osp3niL4gPiBub2JlbFwtXChwcml6ZVwpOwor5L+d6K2J6YeRID4gZWFybmVzdFwtbW9uZXk7CivmjpvomZ/orYkgPiByZWdpc3RlclwtY2FyZDsKK+WOn+WtkOiDvSA+IGF0b21pY1wtZW5lcmd5Owor57SA5b+16aSoID4gbWVtb3JpYWxcLWhhbGw7Civllq7pn7vmr40gPiBzaW1wbGVcLWZpbmFsczsKK+acieWPr+iDvSA+IGl0JydzXC1wb3NzaWJsZTsKK+acquaPkOWPiiA+IG5vdFwtbWVudGlvbmVkOwor5pys55Sf54eIID4gYnVuc2VuXC1idXJuZXI7Civlv4Poh5/nl4UgPiBoZWFydFwtZGlzZWFzZTsKK+WNgeS6lOW5tCA+IGZpZnRlZW5cLXllYXJzOwor6YSn5bCP5bmzID4gZGVuZ1wteGlhb3Bpbmc7CivpgqPptLvmm7ggPiBib29rXC1vZlwtbmFodW07CivntrLntaHlsaQgPiBuZXR3b3JrXC1sYXllcjsKK+WvqeWIpOashCA+IGp1ZGdlbWVudFwtYmFyOwor55m96Iqx6IqxID4gc2hpbmluZ1wtd2hpdGU7Civlu7rnr4nlrbggPiBhcmNoaXRlY3R1cmFsOwor5Lit5ZyL5byPID4gY2hpbmVzZVwtc3R5bGU7CivljYrlpLHmpa0gPiBzZW1pXC1lbXBsb3llZDsKK+ihqOaxuuasiiA+IHJpZ2h0XC10b1wtdm90ZTsKK+epuumWk+ermSA+IHNwYWNlXC1zdGF0aW9uOwor5aSn5YWs5Y+4ID4gbGFyZ2VcLWNvbXBhbnk7CivlpKflrrnph48gPiBoaWdoXC1jYXBhY2l0eTsKK+aliueZvue/sCA+IGJyaWdoYW1cLXlvdW5nOwor5aSn5ZWP6aGMID4gZ3JlYXRcLXByb2JsZW07CivlhYnlip/njocgPiBvcHRpY2FsXC1wb3dlcjsKK+asiuWogeaApyA+IGF1dGhvcml0YXRpdmU7CivlpbPmnIvlj4sgPiBmZW1hbGVcLWZyaWVuZDsKK+S4jeWRqOW7tiA+IHVuZGlzdHJpYnV0ZWQ7CivmkYHph6blhZIgPiBzbmFwXC1mYXN0ZW5lcjsKK+eZveearuadviA+IGxhY2ViYXJrXC1waW5lOwor5a2Y5YSy5ZmoID4gbWVtb3J5XC1cKHVuaXRcKTsKK+W9jOi/puabuCA+IGJvb2tcLW9mXC1taWNhaDsKK+ePvuS7o+WMliA+IG1vZGVybml6YXRpb247CivkuLvnprHmlocgPiBsb3JkJydzXC1wcmF5ZXI7Civlpb3lub7lubQgPiBzZXZlcmFsXC15ZWFyczsKK+WUruelqOiZlSA+IHRpY2tldFwtb2ZmaWNlOwor5YWt6bue5Y2KID4gaGFsZlwtcGFzdFwtc2l4Owor54Sh5oSP6K2YID4gdW5jb25zY2lvdXNseTsKK+aOqOWLleWKmyA+IGRyaXZpbmdcLWZvcmNlOwor6YG/6aKo6JmVID4gbGVlXCxcLXdpbmRzdG9wOwor5L2/55So6YePID4gdm9sdW1lXC1vZlwtdXNlOwor5Y2K5bCO6auUID4gc2VtaWNvbmR1Y3RvcjsKK+mngeauvOanjSA+IG1hdXNlclwtcGlzdG9sOwor5LiN5pa55L6/ID4gaW5jb252ZW5pZW5jZTsKK+aykue2k+mplyA+IGluZXhwZXJpZW5jZWQ7CivkuLvml6XlrbggPiBzdW5kYXlcLXNjaG9vbDsKK+acieWKqeS6jiA+IGNvbnRyaWJ1dGVcLXRvOwor5pyJ5qyK5aiBID4gYXV0aG9yaXRhdGl2ZTsKK+S4ieWNgeWEhCA+IHRocmVlXC1iaWxsaW9uOwor5LiN5YeN5rivID4gaWNlXC1mcmVlXC1wb3J0Owor5q2l6Kmx5qmfID4gd2Fsa2llXC10YWxraWU7Civpm4bnt5rlmaggPiBodWJcLVwobmV0d29ya1wpOwor5LiN6IiS6YGpID4gdW5jb21mb3J0YWJsZTsKK+WFqeWNg+W5tCA+IHRoZVwteWVhclwtMjAwMDsKK+aomeacrOifsiA+IHNwaWRlclwtYmVldGxlOwor6YCy5Ye65Y+jID4gaW1wb3J0XHxleHBvcnQ7CivlkJHopb/ljZcgPiBzb3V0aHdlc3R3YXJkOwor5ZSu56Wo5ZOhID4gdGlja2V0XC1zZWxsZXI7CivllK7npajlj6MgPiB0aWNrZXRcLXdpbmRvdzsKK+WuieWumuWMliA+IHN0YWJpbGl6YXRpb247CivkuqTmj5vnq68gPiBzd2l0Y2hlZFwtcG9ydDsKK+S4jeebuOW5siA+IGJlXC1pcnJlbGV2YW50Owor5aSp5puJ5b6XID4gaGVhdmVuXC1rbm93c1whOwor5aCx6Kmx5qmfID4gd2Fsa2llXC10YWxraWU7CivlkIznm5/lnIsgPiBjb25mZWRlcmF0aW9uOwor5aWn6YGL5pyDID4gb2x5bXBpY1wtZ2FtZXM7CivlnKjmnKrkvoYgPiBpblwtdGhlXC1mdXR1cmU7CivljZfnvo7mtLIgPiBzb3V0aFwtYW1lcmljYTsKK+S4g+eZvuiQrCA+IHNldmVuXC1taWxsaW9uOwor5pyJ6Imv5b+DID4gY29uc2NpZW50aW91czsKK+m8u+mjvOazlSA+IG5hc2FsXC1mZWVkaW5nOwor57SE5ou/5pu4ID4gYm9va1wtb2ZcLWpvbmFoOwor5q2l6KGM6J+yID4gZ3JvdW5kXC1iZWV0bGU7Civkvr/mraXotbAgPiBtYXJjaFwtYXRcLWVhc2U7CivpgKPmjqXoh7MgPiB0b1wtY29ubmVjdFwtdG87Civps7blsL7oirEgPiBpcmlzXC1cKGZsb3dlclwpOwor5Y2K5a6Y5pa5ID4gc2VtaVwtb2ZmaWNpYWw7CivlhbzlrrnmgKcgPiBjb21wYXRpYmlsaXR5Owor6Kej5aOT57iuID4gdG9cLWRlY29tcHJlc3M7CivmjqHmo4nmqZ8gPiBjb3R0b25cLXBpY2tlcjsKK+iKreiVieaJhyA+IHBhbG1cLWxlYWZcLWZhbjsKK+WFrOWFg+WJjSA+IGJlZm9yZVwtY2hyaXN0Owor5rOi576O5bqmID4gYmF1bWVcLWRlZ3JlZXM7CivljYrlvqnos70gPiBlaWdodGhcLWZpbmFsczsKK+mCiueVjOe3miA+IGJvdW5kYXJ5XC1saW5lOwor5YyX576O5rSyID4gbm9ydGhcLWFtZXJpY2E7CivmoLjog73mupAgPiBudWNsZWFyXC1wb3dlcjsKK+aUr+aMgeeOhyA+IHN1cHBvcnRcLWxldmVsOwor6Kmm5LiA6KmmID4gdG9cLWhhdmVcLWFcLXRyeTsKK+i2iuS+hui2iiA+IG1vcmVcLWFuZFwtbW9yZTsKK+S4i+iHs+S4iiA+IGJvdHRvbVwtdG9cLXRvcDsKK+aJvuS4jeWIsCA+IGNvdWxkbicndFwtZmluZDsKK+W+iOmBuuaGviA+IHVuZm9ydHVuYXRlbHk7CivokKzkuovpgZQgPiBtYXN0ZXJcKGNhcmRcKTsKK+e0hOePpeabuCA+IGJvb2tcLW9mXC1qb2VsOwor6LOg5YSf6YeRID4gY29tcGVuc2F0aW9uOwor56S65aiB6ICFID4gZGVtb25zdHJhdG9yOwor5q+b5Li75bitID4gY2hhaXJtYW5cLW1hbzsKK+W7uuevieeJqSA+IFwoYVwpXC1idWlsZGluZzsKK+mWseimveWupCA+IHJlYWRpbmdcLXJvb207CivkuI3lkI3orb0gPiBkaXNyZXB1dGFibGU7CivmqZ/morDnorwgPiBtYWNoaW5lXC1jb2RlOwor5LiN5oiQ5YqfID4gdW5zdWNjZXNzZnVsOwor5rC05ru45YKzID4gd2F0ZXJcLW1hcmdpbjsKK+S4jemHjeimliA+IGluZGlmZmVyZW5jZTsKK+WNgeS5neatsiA+IDE5XC15ZWFyc1wtb2xkOwor5Y2K5paH55uyID4gc2VtaWxpdGVyYXRlOwor5LiZ54Ov6YW4ID4gYWNyeWxpY1wtYWNpZDsKK+WNiueGn+e3tCA+IHNlbWlcLXNraWxsZWQ7CivlkIPkuI3plosgPiBiZVwtdW5wb3B1bGFyOwor5LiN5ZCI55CGID4gdW5yZWFzb25hYmxlOwor5LiN5oSJ5b+rID4gZGlzYWdyZWVhYmxlOwor6aSK6Zue5aC0ID4gY2hpY2tlblwtZmFybTsKK+iGneS4iuWeiyA+IGxhcHRvcFwtXChhZGpcKTsKK+Wvpumam+aApyA+IHByYWN0aWNhbGl0eTsKK+WNgeS4gOW5tCA+IGVsZXZlblwteWVhcnM7Civnm7jkvLzmgKcgPiByZXNzZW1ibGFuY2U7CivpnZ7lkIzmraUgPiBhc3luY2hyb25vdXM7CivlgrPpgZPmm7ggPiBlY2NsZXNpYXN0ZXM7CivnmbzoqIDkurogPiBzcG9rZXNwZXJzb247Civpm4bkuK3lmaggPiBjb25jZW50cmF0b3I7CivmhJ/lmIboqZ4gPiBpbnRlcmplY3Rpb247CivotrPnkIPov7cgPiBmb290YmFsbFwtZmFuOwor6YKj5qij55qEID4gdGhhdFwta2luZFwtb2Y7CivljYrpgorlpKkgPiBoYWxmXC10aGVcLXNreTsKK+iRoeiQhOmFkiA+IFwoZ3JhcGVcKVwtd2luZTsKK+i+suS9nOeJqSA+IFwoZmFybVwpXC1jcm9wczsKK+Wbm+WNgeWkmiA+IG1vcmVcLXRoYW5cLTQwOwor6K2J5a+m56auID4gY29uZmlybWF0aW9uOwor5a6H6Iiq5bGAID4gc3BhY2VcLWFnZW5jeTsKK+WOu+Wci+WkliA+IHRvXC1nb1wtYWJyb2FkOwor56ys5LqM5L2NID4gc2Vjb25kXC1wbGFjZTsKK+WQjOaZguS7oyA+IGNvbnRlbXBvcmFyeTsKK+WJr+e4veeQhiA+IHZpY2VcLXByZW1pZXI7Civot6/lvpfoqJggPiBib29rXC1vZlwtcnV0aDsKK+WkmuW3peWMliA+IHRvXC1tdWx0aXBsZXg7CivkuInlkIjkuIAgPiB0aHJlZVwtaW5cLW9uZTsKK+Wbm+eZvuiQrCA+IGZvdXJcLW1pbGxpb247Civpq5jos6rph48gPiBoaWdoXC1xdWFsaXR5Owor5aSi5ri455eHID4gdG9cLXNsZWVwd2FsazsKK+S4jee1kOebnyA+IG5vbmFsaWdubWVudDsKK+WFq+e0mumiqCA+IGZvcmNlXC04XC13aW5kOwor5bm85YWS5ZySID4ga2luZGVyZ2FydGVuOwor5qGU5a2Q5rC0ID4gb3JhbmdlXC1qdWljZTsKK+WJtemAoOaApyA+IGNyZWF0aXZlbmVzczsKK+eglOeptuiAhSA+IGludmVzdGlnYXRvcjsKK+WRqOe4veeQhiA+IHByZW1pZXJcLXpob3U7Civln7fmlL/pu6ggPiBydWxpbmdcLXBhcnR5Owor5q+N6Kaq56+AID4gbW90aGVyJydzXC1kYXk7CivkuIDkuIvlhZIgPiBhXC1saXR0bGVcLWJpdDsKK+S4jeWDj+ipsSA+IHVucmVhc29uYWJsZTsKK+ikh+ijveWTgSA+IHJlcHJvZHVjdGlvbjsKK+WPuOazleasiiA+IGp1cmlzZGljdGlvbjsKK+S9lOS+v+WunCA+IGFkdmVudGFnZW91czsKK+m8u+S4remalCA+IG5hc2FsXC1zZXB0dW07CivmlrDogZ7omZUgPiBuZXdzXC1zZXJ2aWNlOwor6YGL5YuV6Z6LID4gc3BvcnRzXC1zaG9lczsKK+aguOi9n+eCuCA+IG51Y2xlYXJcLWJvbWI7CivovYnos6zljaEgPiBhXC1kZWJpdFwtY2FyZDsKK+mdouWwjemdoiA+IGZhY2VcLXRvXC1mYWNlOwor6KSH5a+r57SZID4gY2FyYm9uXC1wYXBlcjsKK+S4jeebuOWuuSA+IGluY29tcGF0aWJsZTsKK+aJk+WtlOWZqCA+IGhvbGVcLXB1bmNoZXI7Civku4DpurzmmK8gPiB3aGF0XC1pc1wtXC5cLlwuXD87Civlh7npgI/pj6EgPiBjb25jYXZlXC1sZW5zOwor5Y+k576F6aasID4gYW5jaWVudFwtcm9tZTsKK+S6jOWNgeiQrCA+IDIwMFwtdGhvdXNhbmQ7CivlubTovJXkurogPiB5b3VuZ1wtcGVvcGxlOwor5LmS5LmT55CDID4gdGFibGVcLXRlbm5pczsKK+majue0muW8jyA+IGhpZXJhcmNoaWNhbDsKK+iBveiqqumBjiA+IHRvXC1oZWFyXC1zYWlkOwor6ZeM5bC+54KOID4gYXBwZW5kaWNpdGlzOwor5aSn5LiA5LqbID4gYVwtYml0XC1iaWdnZXI7CivnlJ/nianmiLAgPiBnZXJtXC13YXJmYXJlOwor5bu66Kit5oCnID4gY29uc3RydWN0aXZlOwor5ZaJ5aGe6Z+zID4gZ2xvdHRhbFwtc3RvcDsKK+Wkp+mDveacgyA+IG1ldHJvcG9saXRhbjsKK+acgOS9jum7niA+IGxvd2VzdFwtcG9pbnQ7Civln7rnnaPmlZkgPiBjaHJpc3RpYW5pdHk7CivlronnnKDpha4gPiBtZXRoYXF1YWxvbmU7CivoqabpqZfmgKcgPiBleHBlcmltZW50YWw7CivosrTml4/ljJYgPiBhcmlzdG9jcmF0aWM7CivkupTnmb7okKwgPiBmaXZlXC1taWxsaW9uOwor5Yaw5rSy55+zID4gaWNlbGFuZFwtc3BhcjsKK+aguOi7jeWCmSA+IG51Y2xlYXJcLWFybXM7CivpgJ/oqJjlk6EgPiBzdGVub2dyYXBoZXI7Civnmb3msLTms6UgPiB3aGl0ZVwtY2VtZW50Owor6LGh6IGy6KmeID4gb25vbWF0b3BvZWlhOwor5bmA5qC85byPID4gZnJhbWVcLWZvcm1hdDsKK+ihm+eUn+e0mSA+IHRvaWxldFwtcGFwZXI7CivnlbbmmYLnmoQgPiBvZlwtdGhhdFwtdGltZTsKK+a2iOmYsuagkyA+IGZpcmVcLWh5ZHJhbnQ7CivpgI/mmI7luqYgPiB0cmFuc3BhcmVuY3k7Civlo5PlgJLmgKcgPiBvdmVyd2hlbG1pbmc7CivkuozljYHkuIMgPiB0d2VudHlcLXNldmVuOwor5aSn6KaP5qihID4gbGFyZ2VcLXNjYWxlOwor5bqm6YeP6KGhID4gbWVhc3VyZW1lbnQ7CivoiKrnqbrooZMgPiBhZXJvbmF1dGljczsKK+ioquWVj+iAhSA+IGludGVydmlld2VyOwor5aW95pyL5Y+LID4gZ29vZFwtZnJpZW5kOwor5Zub6Z2i6auUID4gdGV0cmFoZWRyb247Civmi5Tph5jpjJggPiBjbGF3XC1oYW1tZXI7CivnlLPlkb3oqJggPiBkZXV0ZXJvbm9teTsKK+aJjeWklua1gSA+IGJyYWluXC1kcmFpbjsKK+WJteS9nOWKmyA+IG9yaWdpbmFsaXR5Owor55m955+u5pifID4gd2hpdGVcLWR3YXJmOwor5LiN6LSK5oiQID4gZGlzYXBwcm92YWw7CivljYrmnIjliIogPiBzZW1pbW9udGhseTsKK+WCmeeUqOeSsCA+IGJhY2t1cFwtcmluZzsKK+a7tOetlOiBsiA+IHRpY2tcLVwodG9ja1wpOwor5rqr5bqm6KiIID4gdGhlcm1vZ3JhcGg7CivkuI3ph43opoEgPiB1bmltcG9ydGFudDsKK+acieW9semfvyA+IGluZmx1ZW50aWFsOwor55m86Zu75bugID4gcG93ZXJcLXBsYW50Owor5p+P5p6X54mGID4gYmVybGluXC13YWxsOwor5beh6YKP6ImHID4gcGF0cm9sXC1ib2F0Owor5LiN5ZCr57OKID4gdW5hbWJpZ3VvdXM7CivmnKzlnJ/ljJYgPiB0b1wtbG9jYWxpemU7Civlronlhajnh4ggPiBzYWZldHlcLWxhbXA7CivmnInmhI/mgJ0gPiBpbnRlcmVzdGluZzsKK+eql+eOu+eSgyA+IHdpbmRvd1wtcGFuZTsKK+aWsOilv+iYrSA+IG5ld1wtemVhbGFuZDsKK+aVl+ihgOeXhyA+IHNlcHRpY2FlbWlhOwor5YiG5L2I5byPID4gZGlzdHJ1YnV0ZWQ7CivmnInkupvkurogPiBzb21lXC1wZW9wbGU7CivkuI3lkJDmsKMgPiB1bmFzcGlyYXRlZDsKK+aciee2k+mplyA+IGV4cGVyaWVuY2VkOwor55S35pyL5Y+LID4gbWFsZVwtZnJpZW5kOwor55m955qu5pu4ID4gd2hpdGVcLXBhcGVyOwor57+76K2v6ICFID4gaW50ZXJwcmV0ZXI7CivkuI3ms6jmhI8gPiB0aG91Z2h0bGVzczsKK+S/neS4jeS9jyA+IG1vc3RcLWxpa2VseTsKK+W3tOWTiOmmrCA+IHRoZVwtYmFoYW1hczsKK+eZvOmAgeWZqCA+IHRyYW5zbWl0dGVyOwor56ys5LiA56ugID4gY2hhcHRlclwtb25lOwor6YCj55Kw5ZyWID4gY29taWNcLXN0cmlwOwor5Zyo5Zyw5LiLID4gdW5kZXJncm91bmQ7CivlgrPnnJ/mqZ8gPiBmYXhcLW1hY2hpbmU7Civoo53nlLLou4ogPiBhcm1vcmVkXC1jYXI7CivnjbLnm4rogIUgPiBiZW5lZmljaWFyeTsKK+WNiumAj+aYjiA+IHRyYW5zbHVjZW50Owor56ys5LiA5rWBID4gZmlyc3RcLWNsYXNzOwor6KyA5q665qGIID4gbXVyZGVyXC1jYXNlOwor542O5a246YeRID4gc2Nob2xhcnNoaXA7CivkuI3li5XnlKIgPiByZWFsXC1lc3RhdGU7CivllZ/npLrpjIQgPiByZXZlbGF0aW9uczsKK+esrOS4ieaWuSA+IHRoaXJkXC1wYXJ0eTsKK+ihqOiSmeWtkCA+IHdhdGNoXC1nbGFzczsKK+aTuuaetuWtkCA+IHB1dFwtb25cLWFpcnM7CivkuI3norrlrpogPiB1bmNlcnRhaW50eTsKK+WPpOWFuOa0viA+IGNsYXNzaWNpc3RzOwor5Y+v6KGM5oCnID4gZmVhc2liaWxpdHk7CivlkIjms5XljJYgPiB0b1wtbGVnYWxpemU7CivmjqLnhafnh4ggPiBzZWFyY2hsaWdodDsKK+WuieWvp+eJhyA+IG1lcHJvYmFtYXRlOwor5piv5LiN5pivID4gaXNcLW9yXC1pc24nJ3Q7CivlpJrlt6XlmaggPiBtdWx0aXBsZXhlcjsKK+WLnuWLleWKmyA+IGxhYm9yXC1mb3JjZTsKK+iqnuiogOWtuCA+IGxpbmd1aXN0aWNzOwor5bm46YGL5YWSID4gYVwtbHVja3lcLWd1eTsKK+acrOizquS4iiA+IGVzc2VudGlhbGx5Owor5Zyw5LiL5rC0ID4gZ3JvdW5kd2F0ZXI7CivnlLPoq4vmm7ggPiBhcHBsaWNhdGlvbjsKK+aVmeiCsuaApyA+IGluc3RydWN0aXZlOwor57m85om/5qyKID4gaW5oZXJpdGFuY2U7Civoo73niYfkurogPiBtb3ZpZW1ha2luZzsKK+S4jeimgee3iiA+IHVuaW1wb3J0YW50Owor5pWX5a625a2QID4gc3BlbmR0aHJpZnQ7CivlsYDpmZDmgKcgPiBsaW1pdGF0aW9uczsKK+WUruiyqOWToSA+IHNhbGVzcGVyc29uOwor5Y+v5bCK5pWsID4gcmVzcGVjdGFibGU7CivpnZ7mlbjlrZcgPiBub25cLW51bWVyaWM7CivniIbnsbPoirEgPiBwdWZmZWRcLXJpY2U7CivkuInljYHlpKkgPiB0aGlydHlcLWRheXM7CivojIXlsYvpoIIgPiB0aGF0Y2hcLXJvb2Y7CivkuInljYHlm5sgPiB0aGlydHlcLWZvdXI7CivkuI3pgIHmsKMgPiB1bmFzcGlyYXRlZDsKK+aAp+S8tOS+tiA+IHNleFwtcGFydG5lcjsKK+S5s+eZveiJsiA+IG1pbGt5XC13aGl0ZTsKK+auuuS6uuahiCA+IG11cmRlclwtY2FzZTsKK+iTi+eEtuaApyA+IHByb2JhYmlsaXR5Owor5Y+v6IO95oCnID4gcG9zc2liaWxpdHk7CivmiL/lnLDnlKIgPiByZWFsXC1lc3RhdGU7CivnmbvlsbHlrrYgPiBtb3VudGFpbmVlcjsKK+WTsuWtuOWutiA+IHBoaWxvc29waGVyOwor5YiG5pWj5byPID4gZGlzdHJpYnV0ZWQ7Civns7vliJfniYcgPiBmaWxtXC1zZXJpZXM7CivpmL/lr4zmsZcgPiBhZmdoYW5pc3RhbjsKK+a0m+adieejryA+IGxvc1wtYW5nZWxlczsKK+mZsOa2vOiZlSA+IHNoYWR5XC1wbGFjZTsKK+S8uOe4ruaApyA+IGZsZXhpYmlsaXR5Owor6ZaJ5YWD6Z+zID4gY2xvc2VcLXZvd2VsOwor5pyA5aSn5YyWID4gdG9cLW1heGltaXplOwor56ys5Y2B5LiDID4gc2V2ZW50ZWVudGg7Civlk7LlrbjkuIogPiBwaGlsb3NvcGhpYzsKK+WQpuacieaViCA+IGluZWZmaWNpZW50Owor5YyX5pyd6a6uID4gbm9ydGhcLWtvcmVhOwor6Z2I5rS75oCnID4gZmxleGliaWxpdHk7Civkvb/kv6HmnI0gPiB0b1wtY29udmluY2U7Civlj6Ppppnns5YgPiBjaGV3aW5nXC1ndW07Civopb/kuYPlsbEgPiBtb3VudFwtc2luYWk7Civph5Hlsazmnb8gPiBtZXRhbFwtcGxhdGU7CivkuI3lgZrogbIgPiBrZWVwXC1zaWxlbnQ7Civlhannmb7okKwgPiB0d29cLW1pbGxpb247Civkv67nkIblu6AgPiByZXBhaXJcLXNob3A7CivmqZ/li5XmgKcgPiBmbGV4aWJpbGl0eTsKK+WinumVt+eOhyA+IGdyb3d0aFwtcmF0ZTsKK+S7i+ezu+ipniA+IHByZXBvc2l0aW9uOwor5Li75qmf5p2/ID4gbW90aGVyYm9hcmQ7Civku5blgJHpg70gPiBhbGxcLW9mXC10aGVtOwor6aGe5Ly86bueID4gcmVzZW1ibGFuY2U7Civpm5nkurrmiL8gPiBkb3VibGVcLXJvb207Civnvo7ooZPppKggPiBhcnRcLWdhbGxlcnk7CivpgKPmjqXoqZ4gPiBjb25qdW5jdGlvbjsKK+e0hOS8r+iomCA+IGJvb2tcLW9mXC1qb2I7CivmgrLllpzliocgPiB0cmFnaWNvbWVkeTsKK+i7n+ejgeeinyA+IGZsb3BweVwtZGlzazsKK+WNiuWwgeW7uiA+IHNlbWlcLWZldWRhbDsKK+WvpuizquaApyA+IHN1YnN0YW50aXZlOwor6Luf56OB55ukID4gZmxvcHB5XC1kaXNrOwor6K6K5aOT5ZmoID4gdHJhbnNmb3JtZXI7CivomIvmnpzmsYEgPiBhcHBsZVwtanVpY2U7CivmmpfoqJjlhZIgPiBzZWNyZXRcLW1hcms7CivphY3pgIHogIUgPiBkaXN0cmlidXRvcjsKK+mHkemKgOiKsSA+IGhvbmV5c3Vja2xlOwor5YWD6ICB6ZmiID4gdXBwZXJcLWhvdXNlOwor5Y+v5oOz5YOPID4gY29uY2VpdmFibGU7CivorYnmmI7mm7ggPiBjZXJ0aWZpY2F0ZTsKK+S/oeeUqOWNoSA+IGNyZWRpdFwtY2FyZDsKK+Wls+euoeWutiA+IGhvdXNla2VlcGVyOwor5bel56iL5a24ID4gZW5naW5lZXJpbmc7CivmnInlrrPnmoQgPiBkZXN0cnVjdGl2ZTsKK+WkqeeEtuawoyA+IG5hdHVyYWxcLWdhczsKK+S+m+ihgOiAhSA+IGJsb29kXC1kb25vcjsKK+eHn+mkiuWTgSA+IG5vdXJpc2htZW50Owor6YGp5oeJ5oCnID4gc3VpdGFiaWxpdHk7CivlpKnmloflj7AgPiBvYnNlcnZhdG9yeTsKK+mRv+efs+WgtCA+IHJvY2tcLXF1YXJyeTsKK+Wwj+axvei7iiA+IGNvbXBhY3RcLWNhcjsKK+ieuue1suWIgCA+IHNjcmV3ZHJpdmVyOwor5Ymv5L2c55SoID4gc2lkZVwtZWZmZWN0Owor5LqM5Y2B5YSEID4gdHdvXC1iaWxsaW9uOwor56e75qSN5oCnID4gcG9ydGFiaWxpdHk7CivkuozljYHkupQgPiB0d2VudHlcLWZpdmU7CivmspLllY/poYwgPiBub1wtcHJvYmxlbTsKK+esrOS6lOmhniA+IGNhdGVnb3J5XC01Owor6Z2e5a6Y5pa5ID4gdW5vZmZpY2lhbDsKK+Wci+awkem7qCA+IGt1b21pbnRhbmc7Civnmb3oibLpq5QgPiBsZXVjb3BsYXN0Owor5LiN6ICQ54WpID4gaW1wYXRpZW5jZTsKK+eZvuWIhueOhyA+IHBlcmNlbnRhZ2U7Civku6TniYznkrAgPiB0b2tlblwtcmluZzsKK+iHqueZveabuCA+IGNvbmZlc3Npb247CivlsZXopr3mnIMgPiBleGhpYml0aW9uOwor6auY6YCf546HID4gaGlnaFwtc3BlZWQ7CivlpKfln47luIIgPiBtYWpvclwtY2l0eTsKK+WWrOayu+aVpiA+IGdlb3JnZXRvd247Civnmb7liIbmr5QgPiBwZXJjZW50YWdlOwor5YKz6YGT6ICFID4gbWlzc2lvbmFyeTsKK+S4jeWPr+iDvSA+IGltcG9zc2libGU7CivpjITpn7PluLYgPiBhdWRpb1wtdGFwZTsKK+mMq+WuieWxsSA+IG1vdW50XC16aW9uOwor56Gs56OB55ukID4gaGFyZFwtZHJpdmU7Civnmb7liIbmlbggPiBwZXJjZW50YWdlOwor5q235Y+y5LiKID4gaGlzdG9yaWNhbDsKK+iomOW4s+WToSA+IGJvb2trZWVwZXI7Civkvb/lpLHmnJsgPiBkaXNhcHBvaW50Owor5om/5YyF5Lq6ID4gY29udHJhY3RvcjsKK+eJqeizquS4iiA+IG1hdGVyaWFsbHk7CivljYrlhazplosgPiBzZW1pXC1vdmVydDsKK+S9v+WFjemZpCA+IGdldFwtcmlkXC1vZjsKK+abtOiho+WupCA+IGNoYW5nZXJvb207CivotoXlqpLpq5QgPiBoeXBlcm1lZGlhOwor5LiN5piO56K6ID4gaW5kZWZpbml0ZTsKK+S4jeaZr+awoyA+IGRlcHJlc3Npb247Civos4fmnKzlrrYgPiBjYXBpdGFsaXN0Owor5LqM5omL6LKoID4gc2Vjb25kaGFuZDsKK+WCs+aVmeWjqyA+IG1pc3Npb25hcnk7CivmmJPmjqXov5EgPiBhY2Nlc3NpYmxlOwor5oOz5YOP5YqbID4gY29uY2VwdGlvbjsKK+acieaxuuW/gyA+IGRldGVybWluZWQ7CivmqYTmrJbmqLkgPiBvbGl2ZVwtdHJlZTsKK+eIreirlum7niA+IGNvbnRlbnRpb247CivopIfpm5zmgKcgPiBjb21wbGV4aXR5Owor5aW254mb5aC0ID4gZGFpcnlcLWZhcm07CivlrZfnr4DmlbggPiBieXRlXC1jb3VudDsKK+WHuueUn+WcsCA+IGJpcnRocGxhY2U7CivkuI3kuIvkuo4gPiBhc1wtbWFueVwtYXM7CivlpKflqpLpq5QgPiBtYWNyb21lZGlhOwor5YKZ5b+Y6YyEID4gbWVtb3JhbmR1bTsKK+aMqOWAi+WFkiA+IG9uZVwtYnlcLW9uZTsKK+WFhOW8n+acgyA+IGZyYXRlcm5pdHk7CivnlZnogbLmqZ8gPiBncmFtb3Bob25lOwor6buR6I6T5a2QID4gYmxhY2tiZXJyeTsKK+e1seioiOWtuCA+IHN0YXRpc3RpY3M7CivlnKjkuIvpnaIgPiB1bmRlcm5lYXRoOwor5LiN6K6K5YyWID4gaW52YXJpYWJseTsKK+mZjOeUn+S6uiA+IGFcLXN0cmFuZ2VyOwor5LiN6YGp55W2ID4gaW5hZGVxdWF0ZTsKK+mbu+imluiHuiA+IHR2XC1zdGF0aW9uOwor5Li75Yqb6ImmID4gYmF0dGxlc2hpcDsKK+ihjOS4jemAmiA+IHdvbicndFwtd29yazsKK+ertueIreiAhSA+IGNvbXBldGl0b3I7CivmnInns7vntbEgPiBzeXN0ZW1hdGljOwor55+t5pmC6ZaTID4gc2hvcnRcLXRlcm07CivmspLkurrkvY8gPiB1bm9jY3VwaWVkOwor5YuV54mp5a24ID4gem9vbG9naWNhbDsKK+ebp+ajruWgoSA+IGx1eGVtYm91cmc7CivnrKzkuIPljYEgPiBzZXZlbnRpZXRoOwor5Yaw5Yed5ZmoID4gY3J5b3Bob3J1czsKK+W/g+eQhuWtuCA+IHBzeWNob2xvZ3k7CivmsKPllpjllpggPiBicmVhdGhsZXNzOwor56ys5LiA5L6LID4gZmlyc3RcLWNhc2U7CivmkanlpKnmkZ8gPiBza3lzY3JhcGVyOwor5LiN6YCP5rC0ID4gd2F0ZXJwcm9vZjsKK+W+l+S4jeWIsCA+IGNhbm5vdFwtZ2V0Owor6YeN6KaB5oCnID4gaW1wb3J0YW5jZTsKK+aKgOihk+WToSA+IHRlY2huaWNpYW47CivpnZ7mraPlvI8gPiB1bm9mZmljaWFsOwor5ZGo5oGp5L6GID4gemhvdVwtZW5sYWk7CivmnInoiIjotqMgPiBpbnRlcmVzdGVkOwor5LiN57aT5oSPID4gY2FyZWxlc3NseTsKK+aJk+Wtl+apnyA+IHR5cGV3cml0ZXI7CivlgI3lop7lmaggPiBtdWx0aXBsaWVyOwor6YeR5bGs57eaID4gbWV0YWxcLXdpcmU7CivmnInohr3ph48gPiBjb3VyYWdlb3VzOwor6K2Y5Yil6JmfID4gaWRlbnRpZmllcjsKK+eUn+acieasiiA+IGJpcnRocmlnaHQ7CivmjIHljaHkurogPiBjYXJkaG9sZGVyOwor5Yi657mh5ZOBID4gZW1icm9pZGVyeTsKK+avm+a+pOadsSA+IG1hb1wtemVkb25nOwor5YWt5Y2B5LqUID4gc2l4dHlcLWZpdmU7CivlpJrlqpLpq5QgPiBtdWx0aW1lZGlhOwor5LiN5bmz5bi4ID4gcmVtYXJrYWJsZTsKK+aKteaKl+WKmyA+IHJlc2lzdGFuY2U7CivlpKfkuLvmlZkgPiBhcmNoYmlzaG9wOwor6Kmm566X6KGoID4gc3BlYWRzaGVldDsKK+eZveWPo+mQtSA+IHdoaXRlXC1pcm9uOwor56ys5Y2B5YWrID4gZWlnaHRlZW50aDsKK+Wvpumpl+WupCA+IGxhYm9yYXRvcnk7CivnrKzljYHkuZ0gPiBuaW5ldGVlbnRoOwor56ys5Y2B5LiJID4gdGhpcnRlZW50aDsKK+apn+mXnOi7iiA+IGxvY29tb3RpdmU7Civkv53mvZTnrrEgPiBsaXR0ZXJcLWJpbjsKK+iAgeW5tOS6uiA+IG9sZFwtcGVvcGxlOwor55m86IGy5rOVID4gaW50b25hdGlvbjsKK+itmOWIpeeivCA+IGlkZW50aWZpZXI7CivkuI3lubPlh6EgPiBtYXJ2ZWxsb3VzOwor5bSR5bSZ5bGxID4gbXRcLlwta3VubHVuOwor5Luj6KGo5ZyYID4gZGVsZWdhdGlvbjsKK+W9seWDj+aqlCA+IGltYWdlXC1maWxlOwor5bGF5L2P6ICFID4gaW5oYWJpdGFudDsKK+WCs+afk+eXhSA+IHBlc3RpbGVuY2U7CivnrKboqJjnkrAgPiB0b2tlblwtcmluZzsKK+Wbm+eZvuWEhCA+IDQwXC1iaWxsaW9uOwor55un5rWu5a6uID4gdGhlXC1sb3V2cmU7CivlkKbmsbrmrIogPiB2ZXRvXC1wb3dlcjsKK+W0h+aLnOiAhSA+IHdvcnNoaXBwZXI7CivmiLLliofljJYgPiB0aGVhdHJpY2FsOwor5ZWE5pyo6bOlID4gd29vZHBlY2tlcjsKK+mdnuebiOWIqSA+IG5vblwtcHJvZml0Owor5L2/5a655piTID4gZmFjaWxpdGF0ZTsKK+eglOeptuWToSA+IHJlc2VhcmNoZXI7Civnm67mk4rogIUgPiBleWV3aXRuZXNzOwor5bCI6ZaA5YyWID4gc3BlY2lhbGl6ZTsKK+aRqeaJmOi7iiA+IG1vdG9yY3ljbGU7CivmjInmiYvnpq4gPiBvcmRpbmF0aW9uOwor6KiC6LO86ICFID4gc3Vic2NyaWJlcjsKK+mhr+W+rumPoSA+IG1pY3Jvc2NvcGU7Civljp/nlJ/os6ogPiBwcm90b3BsYXNtOwor5aSa5pa56Z2iID4gbWFueVwtc2lkZWQ7CivmnIPplbflnJggPiBwcmVzaWRlbmN5Owor5paw6IGe5a24ID4gam91cm5hbGlzbTsKK+S4jeWumuipniA+IGluZmluaXRpdmU7CivlpKfmsKPlsaQgPiBhdG1vc3BoZXJlOwor5LiN57Ch5ZauID4gbm90XC1zaW1wbGU7Civlj5flgrflrrMgPiBiZVwtaW5qdXJlZDsKK+err+ezu+e1sSA+IGVuZFwtc3lzdGVtOwor5Luj5pu/6ICFID4gc3Vic3RpdHV0ZTsKK+S4ieeZvuWEhCA+IDMwXC1iaWxsaW9uOwor6Z2e5bCN56ixID4gYXN5bW1ldHJpYzsKK+eEoeeFmeeFpCA+IGFudGhyYWNpdGU7CivljYrmsbros70gPiBzZW1pZmluYWxzOwor6I6r6aCI5pyJID4gZ3JvdW5kbGVzczsKK+S4jeiyt+izrCA+IG5vdFwtYnV5XC1pdDsKK+Wls+WtuOeUnyA+IHNjaG9vbGdpcmw7CivkuI3oh6rlnKggPiB1bmVhc2luZXNzOwor5LiL5YCL5pyIID4gbmV4dFwtbW9udGg7Civpj4jot6/lsaQgPiBsaW5rXC1sYXllcjsKK+S4jeeUseW+lyA+IGNhbicndFwtaGVscDsKK+a6q+WSjOaApyA+IHRlbmRlcm5lc3M7CivmiYDmnInogIUgPiBwcm9wcmlldG9yOwor5LiK5YCL5pyIID4gbGFzdFwtbW9udGg7CivljYrnqbrkuK0gPiBpblwtbWlkXC1haXI7CivkuI3nrYnlvI8gPiBpbmVxdWFsaXR5Owor5pqX6ZaT5YWSID4gaW5uZXJcLXJvb207Civoh6rli5XljJYgPiBhdXRvbWF0aW9uOwor5Zau5pa56Z2iID4gdW5pbGF0ZXJhbDsKK+mBi+WLleWgtCA+IHBsYXlncm91bmQ7CivpmYTliqDniakgPiBjb21wbGVtZW50Owor5L2b5pWZ5b6SID4gYVwtYnVkZGhpc3Q7Civmk43oiLXlrqQgPiBwaWxvdGhvdXNlOwor6Zu75ZSx5qmfID4gcGhvbm9ncmFwaDsKK+a1geeoi+WcliA+IGZsb3dcLWNoYXJ0Owor55uj552j6ICFID4gc3VwZXJ2aXNvcjsKK+aJgOacieeJqSA+IGJlbG9uZ2luZ3M7CivkuozljYHkuIAgPiB0d2VudHlcLW9uZTsKK+epqeWumuaApyA+IHN0YWJpbGl0eTsKK+mAo+aOpeWZqCA+IGNvbm5lY3RvcjsKK+W9ouWuuei+rSA+IGFkamVjdGl2ZTsKK+WPr+W+l+WIsCA+IGF2YWlsYWJsZTsKK+enkeWtuOWutiA+IHNjaWVudGlzdDsKK+W/l+mhmOiAhSA+IHZvbHVudGVlcjsKK+aTpumCiueQgyA+IGVkZ2VcLWJhbGw7CivmgI7purzmqKMgPiBob3dcLWFib3V0Owor5omA5pyJ5qyKID4gb3duZXJzaGlwOwor55m95aCx57SZID4gbmV3c3ByaW50Owor6KiO6KuW5pyDID4gc3ltcG9zaXVtOwor5o6l5Y+X6ICFID4gcmVjaXBpZW50Owor5b2i5a656KmeID4gYWRqZWN0aXZlOwor5q+P5YCL5Lq6ID4gZXZlcnlib2R5Owor5LiN6IKy5oCnID4gc3RlcmlsaXR5Owor5qqi5p+l5ZOhID4gaW5zcGVjdG9yOwor6KGo54++5Z6LID4gcGhlbm90eXBlOwor55qu6Z6L5YygID4gc2hvZW1ha2VyOwor5L+d6K236ICFID4gcHJvdGVjdG9yOwor5YG95ZCb5a2QID4gaHlwb2NyeXRlOwor6IGy5piO5pu4ID4gc3RhdGVtZW50Owor6aas6LmE6ZC1ID4gaG9yc2VzaG9lOwor5pOU5p625bqKID4gc3RyZXRjaGVyOwor5LiN5a6M5ZaEID4gaW1wZXJmZWN0Owor5pm06Zuo6KGoID4gYmFyb21ldGVyOwor5Y2D56an5bm0ID4gbWlsbGVuaXVtOwor5L2/6JST5bu2ID4gdG9cLXNwcmVhZDsKK+aOpeePreS6uiA+IHN1Y2Nlc3NvcjsKK+WJquiyvOewvyA+IHNjcmFwYm9vazsKK+WBieaZtuWyqSA+IHBlZ21hdGl0ZTsKK+aMh+ekuuespiA+IGluZGljYXRvcjsKK+S/neaDoOW4qyA+IGNvbWZvcnRlcjsKK+W7uuevieW4qyA+IGFyY2hpdGVjdDsKK+WnlOWToeacgyA+IGNvbW1pdHRlZTsKK+iIqua1t+iAhSA+IG5hdmlnYXRvcjsKK+Wwj+WQg+W6lyA+IHNuYWNrXC1iYXI7Civntq3lo6vljaEgPiB2aXNhXC1jYXJkOwor5aW95aWH5b+DID4gY3VyaW9zaXR5Owor5pS/5rK75oCnID4gcG9saXRpY2FsOwor5ruR6byg5aKKID4gbW91c2VcLXBhZDsKK+aLnOeJqeaVmSA+IGZldGlzaGlzbTsKK+S9jumAn+eOhyA+IGxvd1wtc3BlZWQ7CivmlL/msrvlsYAgPiBwb2xpdGJ1cm87Civpm7bllK7llYYgPiB0cmFkZXNtYW47CivmlL/msrvlrrYgPiBzdGF0ZXNtYW47CivlronlhajluLYgPiBzZWF0XC1iZWx0Owor55m75buj5ZGKID4gYWR2ZXJ0aXNlOwor5pyJ5rS75YqbID4gZW5lcmdldGljOwor6aaZ5qqz6YWSID4gY2hhbXBhZ25lOwor57ac5ZCI5oCnID4gc3ludGhlc2lzOwor5pGB6YeY5YWSID4gdGh1bWJ0YWNrOwor5paH5YW35ZWGID4gc3RhdGlvbmVyOwor5paw5Yqg5Z2hID4gc2luZ2Fwb3JlOwor6aCY5LqL6aSoID4gY29uc3VsYXRlOwor6LaF6IGv57WQID4gaHlwZXJsaW5rOwor5L+d55qH6buoID4gcm95YWxpc3RzOwor5p2x5YyX5pa5ID4gbm9ydGhlYXN0Owor5aW96JCK5aGiID4gaG9sbHl3b29kOwor5oyB5LmF5oCnID4gY29uc3RhbmN5Owor55m96KGA55eFID4gbGV1a2FlbWlhOwor5YWo5LiW55WMID4gd29ybGR3aWRlOwor57m85om/6ICFID4gc3VjY2Vzc29yOwor5oqX6K2w6ICFID4gcHJvdGVzdGVyOwor6KGj5bi96ZaTID4gY2xvYWtyb29tOwor5LiA5Yy56aasID4gb25lXC1ob3JzZTsKK+acieaZguWAmSA+IHNvbWV0aW1lczsKK+WAmemBuOS6uiA+IGNhbmRpZGF0ZTsKK+WQkeWMl+WcsCA+IG5vcnRod2FyZDsKK+S4i+axuuW/gyA+IGRldGVybWluZTsKK+S/neitieS6uiA+IGd1YXJhbnRvcjsKK+S4iuaYn+acnyA+IGxhc3RcLXdlZWs7CivnrKzkuozljYEgPiB0d2VudGlldGg7CivnnaHpgY7poK0gPiBvdmVyc2xlZXA7CivliKnmnKroqJggPiBsZXZpdGljdXM7Civnq6XlrZDou40gPiBib3lcLXNjb3V0Owor5Zub5Y2B5YWtID4gZm9ydHlcLXNpeDsKK+esrOS5neWNgSA+IG5pbmV0aWV0aDsKK+i7iuWJjeeHiCA+IGhlYWRsaWdodDsKK+Wuh+iIquWToSA+IGFzdHJvbmF1dDsKK+S9v+WbsOeqmCA+IGVtYmFycmFzczsKK+W3p+WFi+WKmyA+IGNob2NvbGF0ZTsKK+aciembhOW/gyA+IGFtYml0aW91czsKK+iZleeQhuWZqCA+IHByb2Nlc3NvcjsKK+efpeabtOmzpSA+IHJlZGJyZWFzdDsKK+WVn+ekuuiAhSA+IHJldmVsYXRvcjsKK+esrOS4ieWNgSA+IHRoaXJ0aWV0aDsKK+eZvemOouekpiA+IHNjaGVlbGl0ZTsKK+aJi+aPkOWMhSA+IFwoaGFuZFwpYmFnOwor5oqA6KGT5oCnID4gdGVjaG5pY2FsOwor5LiN6Kqg5a+mID4gZGlzaG9uZXN0Owor6LGM6LGG57KlID4gcGVhXC1ncnVlbDsKK+iuiua1geWZqCA+IGNvbnZlcnRlcjsKK+a9m+awtOiJhyA+IHN1Ym1hcmluZTsKK+aJs+mBk+WToSA+IHBvaW50c21hbjsKK+e5vOS7u+iAhSA+IHN1Y2Nlc3NvcjsKK+WFqeaYn+acnyA+IGZvcnRuaWdodDsKK+agvOW8j+WMliA+IHRvXC1mb3JtYXQ7CivmjqHnn7PloLQgPiBzdG9uZVwtcGl0Owor5Yqg5YuS5q+UID4gY2FyaWJiZWFuOwor6Zu75aCx5qmfID4gdGVsZWdyYXBoOwor5bel5L2c6KGoID4gd29ya3NoZWV0Owor5pq06aKo6ZuqID4gc25vd3N0b3JtOwor5pq06aKo6ZuoID4gcmFpbnN0b3JtOwor5paH5a2X5qqUID4gdGV4dFwtZmlsZTsKK+iyv+aYk+aIsCA+IHRyYWRlXC13YXI7Civkv53oqLzkurogPiBndWFyYW50b3I7CivlpYnmib/ogIUgPiBmbGF0dGVyZXI7CivmjIfmj67ogIUgPiBjb25kdWN0b3I7Civlj4PogIPmm7ggPiByZWZlcmVuY2U7Civph53lsI3mgKcgPiBkaXJlY3Rpb247CivljYroobDmnJ8gPiBoYWxmXC1saWZlOwor5ouJ5paQ54m5ID4gbGFmYXlldHRlOwor6KaB5LiN54S2ID4gb3RoZXJ3aXNlOwor5LiN57WQ5p6cID4gZnJ1aXRsZXNzOwor55Sz6KuL5Lq6ID4gYXBwbGljYW50Owor5Ye654mI6ICFID4gcHVibGlzaGVyOwor5pys5pif5pyfID4gdGhpc1wtd2VlazsKK+aAquS4jeW+lyA+IG5vXC13b25kZXI7CivlibXpgKDlipsgPiBpbmdlbnVpdHk7Civlj6/lrrnlv40gPiB0b2xlcmFibGU7Civln7rmnKzkuIogPiBiYXNpY2FsbHk7CivnqLvojYnkurogPiBzY2FyZWNyb3c7CivlpJrnlKjmiLYgPiBtdWx0aXVzZXI7Civnvr3mr5vnkIMgPiBiYWRtaW50b247CivmlZHorbfou4ogPiBhbWJ1bGFuY2U7CivnrKzljYHlha0gPiBzaXh0ZWVudGg7Civkvb/nlJ/msKMgPiBkaXNwbGVhc2U7CivkuI3lhazmraMgPiBpbmp1c3RpY2U7CivlhYnlsITnt5ogPiBsaWdodFwtcmF5Owor5aSW5ZyL5Lq6ID4gZm9yZWlnbmVyOwor56ys5Y2B5LqUID4gZmlmdGVlbnRoOwor6Zi/5qC55bu3ID4gYXJnZW50aW5hOwor5YG95ZaE6ICFID4gaHlwb2NyaXRlOwor6J665peL5qezID4gcHJvcGVsbGVyOwor6LKv5rC06JmVID4gcmVzZXJ2b2lyOwor5Y2K5rWB6auUID4gc2VtaWZsdWlkOwor5b6B5pyN6ICFID4gY29ucXVlcm9yOwor5o2V6byg5ZmoID4gbW91c2V0cmFwOwor6K6K6Imy6b6NID4gY2hhbWVsZW9uOwor5bCN5oqX6ICFID4gYWR2ZXJzYXJ5Owor6JaE5rK55bGkID4gb2lsXC1zaGVldDsKK+eEoeefpeimuiA+IHNlbnNlbGVzczsKK+awo+Wjk+ioiCA+IGJhcm9tZXRlcjsKK+eZveS6keavjSA+IG11c2Nvdml0ZTsKK+W9q+WIu+WTgSA+IHNjdWxwdHVyZTsKK+aWsOiBnueVjCA+IHRoZVwtcHJlc3M7CivkuIDljYPlmbggPiAxMDAwXC10b25zOwor5LiN6KaP5YmHID4gaXJyZWd1bGFyOwor5rOi54uA6ZuyID4gdW5kdWxhdHVzOwor5pO06Z+z5ZmoID4gbWVnYXBob25lOwor5LiN6KaL5LqGID4gZGlzYXBwZWFyOwor5Lmd5pyI5Lu9ID4gc2VwdGVtYmVyOwor6LaF5paH5pysID4gaHlwZXJ0ZXh0Owor6K6A5pu45Lq6ID4gYVwtc2Nob2xhcjsKK+aMh+aPruWumCA+IGNvbW1hbmRlcjsKK+W8leeUqOWPpSA+IHF1b3RhdGlvbjsKK+WNg+i1q+iMsiA+IGtpbG9oZXJ0ejsKK+WFq+WAjemrlCA+IG9jdG9wbG9pZDsKK+iiq+emgeatoiA+IGZvcmJpZGRlbjsKK+S4jeiHqueEtiA+IHVubmF0dXJhbDsKK+mrmOenkeaKgCA+IGhpZ2hcLXRlY2g7CivmgKrniankvLwgPiBtb25zdHJvdXM7CivlhrDmo43lhZIgPiBpY2VcLWxvbGx5Owor55m954+t5YWSID4gZGF5XC1zaGlmdDsKK+aYn+acn+S4iSA+IHdlZG5lc2RheTsKK+mHjuigu+S6uiA+IGJhcmJhcmlhbjsKK+WNgeWtl+i7jSA+IGNydXNhZGVyczsKK+azleWci+S6uiA+IGZyZW5jaG1hbjsKK+S6lOWNg+WZuCA+IDUwMDBcLXRvbnM7CivpgYfpm6PoiLkgPiBzaGlwd3JlY2s7Civlh7rluK3ogIUgPiBhdHRlbmRhbnQ7Civnvornmq7ntJkgPiBwYXJjaG1lbnQ7Civlj43oiaboiYcgPiBhbnRpXC1zaGlwOwor5YWn6KGj6KSyID4gdW5kZXJ3ZWFyOwor5b+F6ZyA5ZOBID4gbmVjZXNzaXR5Owor5Yaw5reH5reLID4gaWNlXC1jcmVhbTsKK+efs+eBsOefsyA+IGxpbWVzdG9uZTsKK+S/rumBk+mZoiA+IG1vbmFzdGVyeTsKK+ilv+WMl+aWuSA+IG5vcnRod2VzdDsKK+acm+mBoOmPoSA+IHRlbGVzY29wZTsKK+i2heaWh+S7tiA+IGh5cGVydGV4dDsKK+aTuuioreWFkiA+IG9ybmFtZW50czsKK+WkquWlveS6hiA+IHZlcnlcLWdvb2Q7CivmnKzlubTluqYgPiB0aGlzXC15ZWFyOwor5b+D6Z2I5LiKID4gc3Bpcml0dWFsOwor5aSp5paH5a24ID4gYXN0cm9ub215Owor5be05q+U5aalID4gYmFyYml0b25lOwor5a+m6LOq5LiKID4gdmlydHVhbGx5Owor5pyJ56+A5Yi2ID4gdGVtcGVyYXRlOwor5pyJ5oSP6K2YID4gY29uc2Npb3VzOwor5Y+X5a6z6ICFID4gY2FzdWx0aWVzOwor5LiN5a6M576OID4gZGVmZWN0aXZlOwor5oOF57eS5YyWID4gZW1vdGlvbmFsOwor5pSv5oyB6ICFID4gc3VwcG9ydGVyOwor5pW45LiN55uhID4gY291bnRsZXNzOwor5YCf5pu45ZauID4gYm9va1wtc2xpcDsKK+acieemruiyjCA+IGNvdXJ0ZW91czsKK+esrOWFq+WNgSA+IGVpZ2h0aWV0aDsKK+mHjOeoi+eikSA+IG1pbGVzdG9uZTsKK+S4jeaDhemhmCA+IHVud2lsbGluZzsKK+S4i+Wumue+qSA+IHRvXC1kZWZpbmU7CivlsI3kuI3otbcgPiBpJydtXC1zb3JyeTsKK+WBh+ixoeeJmSA+IGNlbGx1bG9pZDsKK+mZjeiQveWCmCA+IHBhcmFjaHV0ZTsKK+S4jeiCsueXhyA+IHN0ZXJpbGl0eTsKK+W/heimgeaApyA+IG5lY2Vzc2l0eTsKK+aVuOS4jea4hSA+IGNvdW50bGVzczsKK+izvOiyt+iAhSA+IHB1cmNoYXNlcjsKK+Wkp+aVmeWggiA+IGNhdGhlZHJhbDsKK+e1hOe5lOiAhSA+IG9yZ2FuaXplcjsKK+iBlui/reWTpSA+IHNhblwtZGllZ287CivplbfmlrnlvaIgPiByZWN0YW5nbGU7CivnlJ/mrpblipsgPiBmZXJ0aWxpdHk7CivngbDnjbXniqwgPiBncmV5aG91bmQ7Civnv5LmhaPmgKcgPiBjdXN0b21hcnk7Civnmb3lhafpmpwgPiBjYXRhcmFjdDsKK+Wkp+evt+i7iiA+IHNjaG9vbmVyOwor55uj6K235Lq6ID4gZ3VhcmRpYW47CivkuI3lkIjpgakgPiBpbXByb3BlcjsKK+ingOWvn+iAhSA+IG9ic2VydmVyOwor6Jel5YqR5aOrID4gZHJ1Z2dpc3Q7CivkuI3kv6Hku7sgPiBtaXN0cnVzdDsKK+WboOeJuee2siA+IGludGVybmV0Owor5bCN56ix5oCnID4gc3ltbWV0cnk7CivmqqLmuKzlmaggPiBkZXRlY3RvcjsKK+mtlOihk+W4qyA+IG1hZ2ljaWFuOwor5LiN5py955qEID4gaW1tb3J0YWw7Civmrbflj7LmgKcgPiBoaXN0b3JpYzsKK+aquOaqrOawtCA+IGxlbW9uYWRlOwor5Lul5aSq57ayID4gZXRoZXJuZXQ7CivosqDph43mk5QgPiBidXJkZW5lZDsKK+aOoua4rOWZqCA+IGRldGVjdG9yOwor5Y2B5LqM5pyIID4gZGVjZW1iZXI7Civmk6bntrLnkIMgPiBuZXRcLWJhbGw7CivogZbkv53nvoUgPiBzdFwuXC1wYXVsOwor6KW/6KOh54i+ID4gY3lyaWxsaWM7CivlpbPlranlhZIgPiBkYXVnaHRlcjsKK+acieW+t+ihjCA+IHZpcnR1b3VzOwor5Y+v5pOm5a+rID4gZXJhc2FibGU7CivniafnvorogIUgPiBzaGVwaGVyZDsKK+acgOWWnOaEmyA+IGZhdm9yaXRlOwor562G6KiY5pysID4gbm90ZWJvb2s7CivolrDooaPojYkgPiBsYXZlbmRlcjsKK+S4jeW/heimgSA+IG5lZWRsZXNzOwor6KuL6aGY5pu4ID4gcGV0aXRpb247CivmipXos4fogIUgPiBpbnZlc3RvcjsKK+WvhOeUn+eJqSA+IHBhcmFzaXRlOwor6IKv5aGU5Z+6ID4ga2VudHVja3k7Civmn6zln5Tlr6ggPiBjYW1ib2RpYTsKK+S4gOWwj+aZgiA+IG9uZVwtaG91cjsKK+S6uuihjOmBkyA+IHNpZGV3YWxrOwor5a6J5YWo5oCnID4gc2VjdXJpdHk7Civlho3kv53oqLwgPiByZWFzc3VyZTsKK+aUv+ayu+WtuCA+IHBvbGl0aWNzOwor6KeA5a+f5a62ID4gb2JzZXJ2ZXI7Civpm57lsL7phZIgPiBjb2NrdGFpbDsKK+aphOaslueQgyA+IGZvb3RiYWxsOwor5bmz5bqV6Y2LID4gc2F1Y2VwYW47CivntIDlv7XnopEgPiBtb251bWVudDsKK+S+teWFpeiAhSA+IGludHJ1ZGVyOwor5pS56Z2p6ICFID4gcmVmb3JtZXI7CivmiYvmj5DnrrEgPiBzdWl0Y2FzZTsKK+S4jeWQjOaEjyA+IGRpc2FncmVlOwor5YWx5ZKM5ZyLID4gcmVwdWJsaWM7Civmo5Lno6jmqZ8gPiByb2RcLW1pbGw7Civmr5Tnm67prZogPiBmbGF0ZmlzaDsKK+Wkp+WxoOauuiA+IG1hc3NhY3JlOwor5bCP5aSc5puyID4gc2VyZW5hZGU7CivlsI/mqJnpoYwgPiBzdWJ0aXRsZTsKK+acieapn+mrlCA+IG9yZ2FuaXNtOwor5q276KGa6KGVID4gZGVhZFwtZW5kOwor5Lqk6Z+/5puyID4gc3ltcGhvbnk7CivmmYLplpPooaggPiBzY2hlZHVsZTsKK+mgreWQkeWJjSA+IGhlYWRsb25nOwor5o6i6Zqq6ICFID4gZXhwbG9yZXI7Civlj5fpm6PogIUgPiBzdWZmZXJlcjsKK+W3tOaLieWcrSA+IHBhcmFndWF5Owor56ys5LiA5q2lID4gc3RlcFwtb25lOwor6Kq/5ZGz5rGBID4gZHJlc3Npbmc7Civmlbjmk5rluqsgPiBkYXRhYmFzZTsKK+WCteasiuS6uiA+IGNyZWRpdG9yOwor5byf5YWE5YCRID4gYnJldGhyZW47CivlsI/oqqrlrrYgPiBub3ZlbGlzdDsKK+esrOS6lOWNgSA+IGZpZnRpZXRoOwor5LiJ5piO5rK7ID4gc2FuZHdpY2g7CivlgqzljJblipEgPiBjYXRhbHlzdDsKK+a2iOiyu+iAhSA+IGNvbnN1bWVyOwor54mn576K5Lq6ID4gc2hlcGhlcmQ7CivmnInlvYjmgKcgPiBmbGV4aWJsZTsKK+e2k+mZuOi3ryA+IG92ZXJsYW5kOwor5Zyo5oi25aSWID4gb3V0ZG9vcnM7Civmk6bmo5LnkIMgPiBmb3VsXC10aXA7CivkuK3kuJbntIAgPiBtZWRpZXZhbDsKK+WCvuiBveiAhSA+IGxpc3RlbmVyOwor5o6l5pS25ZmoID4gcmVjZWl2ZXI7Civos4fmlpnluqsgPiBkYXRhYmFzZTsKK+auuuS6uueKryA+IG11cmRlcmVyOwor6JGh6JCE54mZID4gcG9ydHVnYWw7CivkuI3mraPluLggPiBhYm5vcm1hbDsKK+WFp+mDqOe2siA+IGludHJhbmV0Owor5LiN6YCP5rCjID4gYWlydGlnaHQ7CivmmpbmsKPmqZ8gPiByYWRpYXRvcjsKK+mYv+iCr+iJsiA+IGFya2Fuc2FzOwor5pWZ56eR5pu4ID4gdGV4dGJvb2s7CivpvJPlkLnogIUgPiBhZHZvY2F0ZTsKK+WcsOS4i+WupCA+IGJhc2VtZW50Owor5aSn6IKa5a2QID4gcHJlZ25hbnQ7CivkuI3pgY7mhI8gPiBiZVwtc29ycnk7CivlhpLniq/ogIUgPiBvZmZlbmRlcjsKK+S/neecn+W6piA+IGZpZGVsaXR5Owor5LiN6auU6Z2iID4gc2hhbWVmdWw7CivlsI/ooZ3nqoEgPiBza2lybWlzaDsKK+aOkuawtOa4oCA+IGRyYWluYWdlOwor6bq76YaJ5YqRID4gbmFyY290aWM7CivooqvkvrXlrrMgPiBzdHJpY2tlbjsKK+ioiOeul+apnyA+IGNvbXB1dGVyOwor55m95pyo6ICzID4gdHJlbWVsbGE7Civnjajoo4HogIUgPiBkaWN0YXRvcjsKK+iomOmMhOWToSA+IHJlY29yZGVyOwor6JiH5qC86JitID4gc2NvdGxhbmQ7CivokaHokITlnJIgPiB2aW5leWFyZDsKK+S9v+iIiOWlriA+IGV4Y2l0aW5nOwor56ys5Y2B5LiAID4gZWxldmVudGg7CivmlrnnqIvlvI8gPiBlcXVhdGlvbjsKK+eEoee3mumbuyA+IHdpcmVsZXNzOwor5b2r5Yi75a62ID4gc2N1bHB0b3I7Civlt6XllYbnlYwgPiBpbmR1c3RyeTsKK+mYv+aJmOWTgSA+IGF0cm9waW5lOwor5Zyw5Y2A5oCnID4gcmVnaW9uYWw7Civoo53po77niakgPiBvcm5hbWVudDsKK+S4ieinkuW9oiA+IHRyaWFuZ2xlOwor6KqY5ouQ6ICFID4gYWJkdWN0b3I7CivmiLLliofmgKcgPiBkcmFtYXRpYzsKK+aHsue9sOaApyA+IHB1bml0aXZlOwor5YWr6KeS5qWTID4gYWxhbmdpdW07CivljJfmtbfpgZMgPiBob2trYWlkbzsKK+S9juaIkOacrCA+IGxvd1wtY29zdDsKK+aYjuS/oeeJhyA+IHBvc3RjYXJkOwor5pWR6LSW5Li7ID4gcmVkZWVtZXI7CivnlJ/lkb3lipsgPiB2aXRhbGl0eTsKK+aJgOWcqOWcsCA+IGxvY2F0aW9uOwor55Si6YeP5aSaID4gZnJ1aXRmdWw7CivnnIvlrojogIUgPiB3YXRjaG1hbjsKK+S9lOmgmOiAhSA+IG9jY3VwYW50Owor5pqX5Zyw6KOhID4gc2VjcmV0bHk7CivkvY7osrvnlKggPiBsb3dcLWNvc3Q7Civkvb/lkIPpqZogPiBhc3RvbmlzaDsKK+W5uOWtmOiAhSA+IHN1cnZpdm9yOwor5L2/6aet5oCVID4gZnJpZ2h0ZW47Civmq7voirHojYkgPiBwcmltcm9zZTsKK+aYn+acn+WbmyA+IHRodXJzZGF5Owor5rG65a6a5oCnID4gZGVjaXNpdmU7Civml6XogLPmm7wgPiBnZXJtYW5pYzsKK+W5vuS9leWtuCA+IGdlb21ldHJ5Owor5YK+5ZCR5pa8ID4gcHJvbmVcLXRvOwor55Sf6YKE6ICFID4gc3Vydml2b3I7CivmmJ/mnJ/lha0gPiBzYXR1cmRheTsKK+mYsuWuiOiAhSA+IGRlZmVuZGVyOwor5pyJ5YO55YC8ID4gdmFsdWFibGU7CivliLrmv4DniakgPiBzdGltdWx1czsKK+S4jeS/oeeUqCA+IGRpc3RydXN0Owor5o+Q5L6b6Ku4ID4gcHJvdmlkZXI7Civlt6XnqIvluKsgPiBlbmdpbmVlcjsKK+S4ree5vOWZqCA+IHJlcGVhdGVyOwor5rSL55C155C2ID4gbWFuZG9saW47Civmg6HkvZzliocgPiBtaXNjaGllZjsKK+WtkOWNiOe3miA+IG1lcmlkaWFuOwor6KO95L2c6ICFID4gcHJvZHVjZXI7CivkuI3lnKjkuY4gPiBub3RcLW1pbmQ7Civpn7PmqILlrrYgPiBtdXNpY2lhbjsKK+S9v+m6u+eXuiA+IHBhcmFseXplOwor5Y2D5a2X56+AID4ga2lsb2J5dGU7CivororpmLvlmaggPiB0aGVvc3RhdDsKK+Wls+aIv+adsSA+IGxhbmRsYWR5Owor5LiN5YC85b6XID4gdW53b3J0aHk7Civmj5DkvpvogIUgPiBzdXBwbGllcjsKK+WgheWbuuaApyA+IGZpcm1uZXNzOwor55m95YyW55eFID4gYWxiaW5pc207CivnrKzlha3ljYEgPiBzaXh0aWV0aDsKK+aWh+aYjuWMliA+IGNpdmlsaXplOwor5aSW5Lqk5a6YID4gZGlwbG9tYXQ7Civnmb3pm7Lnn7MgPiBkb2xvbWl0ZTsKK+S9v+e/kuaFoyA+IGFjY3VzdG9tOwor5Yaw5pm255+zID4gY3J5b2xpdGU7CivkuI3lsI/lv4MgPiBoZWVkbGVzczsKK+WvjOiJsuW9qSA+IGNvbG9yZnVsOwor57SN56iF5Lq6ID4gdGF4cGF5ZXI7Civlho3lh7rnj74gPiByZWFwcGVhcjsKK+mdoOiDjOakhSA+IGFybWNoYWlyOwor5pON5L2c6ICFID4gb3BlcmF0b3I7CivlhajlnIvmgKcgPiBuYXRpb25hbDsKK+e1sueLgOeJqSA+IGZpbGFtZW50Owor55m85piO5a62ID4gaW52ZW50b3I7Civol6XlipHluKsgPiBkcnVnZ2lzdDsKK+S4jeaAjum6vCA+IG5vdFwtdmVyeTsKK+Wkp+ilv+a0iyA+IGF0bGFudGljOwor55yL5b6X6KaLID4gdmlzaWJsZTsKK+acieizh+agvCA+IGVudGl0bGU7CivlnJPnn7PpoK0gPiBib3VsZGVyOwor5aWn5Zyw5YipID4gYXVzdHJpYTsKK+WCs+mBk+mDqCA+IG1pc3Npb247CivlibXkuJbntIAgPiBnZW5lc2lzOwor5Y2D5L2N5YWDID4ga2lsb2JpdDsKK+aPmuiBsuWZqCA+IHNwZWFrZXI7CivnrqHnkIblk6EgPiBtYW5hZ2VyOwor6ICB6LOH5qC8ID4gdmV0ZXJhbjsKK+mHkemKgOWhiiA+IGJ1bGxpb247CivmspnkuIHprZogPiBzYXJkaW5lOwor5Ye657SN5ZOhID4gY2FzaGllcjsKK+aEm+mBiueOqSA+IHBsYXlmdWw7Civpi7znkLTlrrYgPiBwaWFuaXN0Owor6KiI5pW46ICFID4gY291bnRlcjsKK+ino+WJluWtuCA+IGFuYXRvbXk7CivmnInlrbjllY8gPiBsZWFybmVkOwor5Y2K5ZCK5a2QID4gZGFiYmxlcjsKK+WkqeiKseadvyA+IGNlaWxpbmc7CivlpKfnm6TlrZAgPiBwbGF0dGVyOwor5LiN6IO95LiNID4gaGF2ZVwtdG87Civlh7rlhaXlj6MgPiBnYXRld2F5Owor6LW355q657SLID4gc2hyaXZlbDsKK+ayueWFiea8hiA+IHZhcm5pc2g7CivmiZjlhZLmiYAgPiBudXJzZXJ5Owor6Im357SF6ImyID4gY3JpbXNvbjsKK+eJueioseeLgCA+IGNoYXJ0ZXI7Civmi5bmm7PmqZ8gPiB0cmFjdG9yOwor6aCQ6KiA5a62ID4gcHJvcGhldDsKK+iDjOWPm+iAhSA+IHRyYWl0b3I7CivlpKfkvb/ppKggPiBlbWJhc3N5Owor5aSn6I2J5Y6fID4gcHJhaXJpZTsKK+eJqeeQhuWtuCA+IHBoeXNpY3M7CivkuI3ogb3lkb0gPiBkaXNvYmV5Owor57Si6aas6KOhID4gc29tYWxpYTsKK+W7o+aSree2siA+IG5ldHdvcms7Civlt7TmoLzpgZQgPiBiYWdoZGFkOwor6YqA6KGM5qWtID4gYmFua2luZzsKK+aJi+aOqOi7iiA+IHRyb2xsZXk7Civli57li5XogIUgPiBsYWJvcmVyOwor576O5rSy6LG5ID4gcGFudGhlcjsKK+iKseW0l+efsyA+IGdyYW5pdGU7CivlnKjlhbbkuK0gPiB0aGVyZWluOwor5LiN5ZCI5rOVID4gaWxsZWdhbDsKK+aiteW4neWyoSA+IHZhdGljYW47CivlkIznvqnlrZcgPiBzeW5vbnltOwor5oSb5ZyL6ICFID4gcGF0cmlvdDsKK+Wls+S4u+S6uiA+IGhvc3Rlc3M7Civnmb3mprTnn7MgPiBsZXVjaXRlOwor5L2g6Ieq5bexID4gdGh5c2VsZjsKK+iHqueUsea0viA+IGxpYmVyYWw7CivonqLngavon7IgPiBmaXJlZmx5Owor55m+5YiG5LmLID4gcGVyY2VudDsKK+mshue3iuW4tiA+IGVsYXN0aWM7Civlr4Tlrr/nlJ8gPiBib2FyZGVyOwor5Y+X5q2h6L+OID4gcG9wdWxhcjsKK+mjm+apn+WgtCA+IGFpcnBvcnQ7CivoqIjmlbjlmaggPiBjb3VudGVyOwor5a+m6Zqb5LiKID4gaW5cLWZhY3Q7Civlj43mh4nloIYgPiByZWFjdG9yOwor55Ww5pWZ5b6SID4gaGVhdGhlbjsKK+WklumCpuS6uiA+IGdlbnRpbGU7Civnp7vmsJHogIUgPiBtaWdyYW50Owor5LiN5ZCJ5YipID4gb21pbm91czsKK+WJtemAoOiAhSA+IGNyZWF0b3I7CivnhpTnpKbniJAgPiBmdXJuYWNlOwor5aWz6Iux6ZuEID4gaGVyb2luZTsKK+WFp+e+heeVoiA+IG5haXJvYmk7Civlj5vpgIbogIUgPiB0cmFpdG9yOwor5L2/6auY6LK0ID4gZGlnbmlmeTsKK+WcsOizquWtuCA+IGdlb2xvZ3k7Civpl5zpjbXoqZ4gPiBrZXl3b3JkOwor5be05p2+566hID4gYmFzc29vbjsKK+W4g+mahui/qiA+IGJ1cnVuZGk7CivlhYXpm7vlmaggPiBjaGFyZ2VyOwor6JKZ5aSn5ou/ID4gbW9udGFuYTsKK+eCreeWveeXhSA+IGFudGhyYXg7Civlj7Llr4bnibkgPiBzY2htaXR0Owor5a+M5aOr6YCaID4gZnVqaXRzdTsKK+eDueiqv+ihkyA+IGNvb2tlcnk7CivljbDliLfogIUgPiBwcmludGVyOwor5re35ZCI54mpID4gbWl4dHVyZTsKK+mYv+WFi+WAqyA+IGFjaGVyb247CivnhKHnpZ7oq5YgPiBhdGhlaXNtOwor5LiN5YuV5pCWID4gdW5tb3ZlZDsKK+maseiXj+iZlSA+IHNoZWx0ZXI7Civmirzmspnpvo0gPiBhYnNhbG9tOwor5YKs55yg5puyID4gbHVsbGFieTsKK+eJm+mgreeKrCA+IGJ1bGxkb2c7Civkvb/prZTms5UgPiBjb25qdXJlOwor5ZC55Y+j5ZOoID4gd2hpc3RsZTsKK+WuieS5g+i/kSA+IGFuYWxnaW47Civom4vnmb3os6ogPiBwcm90ZWluOwor6Iqd5Yqg5ZOlID4gY2hpY2FnbzsKK+WFq+W4tumtmiA+IG9jdG9wdXM7CivmtJfooaPlupcgPiBsYXVuZHJ5Owor5LiN5b6X5YuBID4gYXdrd2FyZDsKK+WNiueTtumGiyA+IGRhYmJsZXI7CivplbfpoLjpub8gPiBnaXJhZmZlOwor5aWz6auY6Z+zID4gc29wcmFubzsKK+avlOWIqeaZgiA+IGJlbGdpdW07CivkuI3oqr/lkowgPiBkaXNjb3JkOwor5pyJ6Zmw5b2xID4gc2hhZG93eTsKK+aMh+mXnOevgCA+IGtudWNrbGU7CivlubPluLjml6UgPiB3ZWVrZGF5Owor5YSy6JeP5a6kID4gc3RvcmFnZTsKK+WMiOeJmeWIqSA+IGh1bmdhcnk7CivlopPoqozpipggPiBlcGl0YXBoOwor5LiA5pyD5YWSID4gYVwtd2hpbGU7CivkuI3pgZPlvrcgPiBpbW1vcmFsOwor54OP5YWL6JitID4gdWtyYWluZTsKK+WcqOWupOWFpyA+IGluZG9vcnM7CivkuI3pm6LlhZIgPiBub3RcLWJhZDsKK+eZveibi+eZvSA+IGFsYnVtaW47CivkuLvluK3oh7ogPiByb3N0cnVtOwor6aGe5Zu66YaHID4gc3Rlcm9pZDsKK+ipleitsOacgyA+IGNvdW5jaWw7CivmnInluIzmnJsgPiBob3BlZnVsOwor5YK35a+S55eHID4gdHlwaG9pZDsKK+WIsOmCo+ijoSA+IHRoaXRoZXI7CivppIrogIHph5EgPiBwZW5zaW9uOwor552h55yg6ICFID4gc2xlZXBlcjsKK+WWmOWQgeWQgSA+IHRvXC1ibG93Owor5bCP5YaK5a2QID4gYm9va2xldDsKK+acquatpuijnSA+IHVuYXJtZWQ7CivluLbntIXoibIgPiByZWRkaXNoOwor5ZCI5aSl5Lq6ID4gcGFydG5lcjsKK+acieW5q+WKqSA+IGhlbHBmdWw7CivpmL/mi4nkvK8gPiBhcmFiaWFuOwor6Zi/5ouJ5LiBID4gYWxhZGRpbjsKK+S4jeimuuWvnyA+IHVuYXdhcmU7CivnlJjol43oj5wgPiBjYWJiYWdlOwor5aWz5L+u6YGTID4gY29udmVudDsKK+eZvOePvueJqSA+IGZpbmRpbmc7CivlnKjkuIvmlrkgPiBiZW5lYXRoOwor6JK45rG95qmfID4gc3RlYW1lcjsKK+Wwj+eAkeW4gyA+IGNhc2NhZGU7CivnrKzljYHkuowgPiB0d2VsZnRoOwor5be05LiN5b6XID4gYW54aW91czsKK+acquaxuuWumiA+IHBlbmRpbmc7Civml4XpgYrogIUgPiB0b3VyaXN0Owor5Y+X6KiX5Lq6ID4gdHJ1c3RlZTsKK+imi+itieS6uiA+IHdpdG5lc3M7Civnn7PljZflsawgPiBoZWF0aGVyOwor5ZyW5pu46aSoID4gbGlicmFyeTsKK+iWhOeDpOmkhSA+IHBhbmNha2U7Civmr5LojYnlkI0gPiBoZW1sb2NrOwor5Zyw5bmz57eaID4gaG9yaXpvbjsKK+WlueiHquW3sSA+IGhlcnNlbGY7Civkvb/lraTnq4sgPiBpc29sYXRlOwor55+u5aOv57SgID4gY3ljb2NlbDsKK+WQkeS9leiZlSA+IHdoaXRoZXI7CivnsYPmnb/nkIMgPiByZWJvdW5kOwor6IG95b6X6KaLID4gYXVkaWJsZTsKK+WBmuemseWRiiA+IHRvXC1wcmF5Owor55m+5oWV5aSnID4gYmVybXVkYTsKK+acieainee0iyA+IHN0cmlwZWQ7Civlronmga/ml6UgPiBzYWJiYXRoOwor5LiN5YCS57+BID4gdHVtYmxlcjsKK+ijgee0meapnyA+IHRyaW1tZXI7CivkuIDpg6jliIYgPiBwb3J0aW9uOwor5oe35pW15oSPID4gaG9zdGlsZTsKK+WJteeri+iAhSA+IGZvdW5kZXI7Civntq3ku5blkb0gPiB2aXRhbWluOwor6KOd572u54mpID4gZml4dHVyZTsKK+WPg+itsOWToSA+IHNlbmF0b3I7CivljbDooajmqZ8gPiBwcmludGVyOwor5pif5pyf5LqMID4gdHVlc2RheTsKK+mfs+aoguacgyA+IGNvbmNlcnQ7Civpq5TogrLloLQgPiBzdGFkaXVtOwor5oSb54i+6JitID4gaXJlbGFuZDsKK+mAg+S6oeiAhSA+IHJ1bmF3YXk7Civlkq/lkq/nrJEgPiBjaHVja2xlOwor55Sf54mp5a24ID4gYmlvbG9neTsKK+aIsOmspeiAhSA+IGZpZ2h0ZXI7Civkvb/mhqTmhaggPiBvdXRyYWdlOwor5bGF5L2P5pa8ID4gaW5oYWJpdDsKK+aJk+WNsOapnyA+IHByaW50ZXI7Civkvb/mhqTmgJIgPiBwcm92b2tlOwor5b2M6LO95LqeID4gbWVzc2lhaDsKK+aykueUmum6vCA+IG5vdGhpbmc7CivnhZnngbDnvLggPiBhc2h0cmF5Owor5rex57SF6ImyID4gc2NhcmxldDsKK+S4jeWcqOS6hiA+IGJlXC1kZWFkOwor57Sh57mU5ZOBID4gdGV4dGlsZTsKK+S7o+WQjeipniA+IHByb25vdW47CivkuI3mv5/kuosgPiBub1wtZ29vZDsKK+mWi+aLk+iAhSA+IHBpb25lZXI7CivkuI3kurrpgZMgPiBpbmh1bWFuOwor6KKr5rKS5pS2ID4gZm9yZmVpdDsKK+i3r+ilv+W8lyA+IGx1Y2lmZXI7CivljJblrbjlrrYgPiBjaGVtaXN0Owor6KiT57e06ICFID4gdHJhaW5lcjsKK+a4hea9lOWZqCA+IGNsZWFuZXI7CivmhJvlvrfnjrIgPiBhZGVsaW5lOwor6L+r5YiH5oCnID4gdXJnZW5jeTsKK+Wls+a8lOWToSA+IGFjdHJlc3M7CivmoYzkuIrlnosgPiBkZXNrdG9wOwor5be05q+U5YCrID4gYmFieWxvbjsKK+WssOWFkuacnyA+IGluZmFuY3k7Civnmb7okYnnqpcgPiBzaHV0dGVyOwor6YG/5b2I5Z2RID4gZm94aG9sZTsKK+acieaJjeW5uSA+IGNhcGFibGU7CivohKvooaPmnI0gPiB1bmRyZXNzOwor6KeA5YWJ5a6iID4gdG91cmlzdDsKK+mBi+WLleWutiA+IGF0aGxldGU7Civmpa3ppJjogIUgPiBhbWF0ZXVyOwor6YeR5a2X5aGUID4gcHlyYW1pZDsKK+S7luiHquW3sSA+IGhpbXNlbGY7CivlrprlsYXogIUgPiBzZXR0bGVyOwor5LqM5Y2B5aSaID4gb3ZlclwtMjA7CivmlLbnlZnmiYAgPiBiYXJyYWNrOwor5q+b5q+b6ZuoID4gZHJpenpsZTsKK+mBi+WLleWToSA+IGF0aGxldGU7Civnh5XpuqXnsqUgPiBvYXRtZWFsOwor5qiZ6Kqe54mMID4gcGxhY2FyZDsKK+iHquihjOi7iiA+IGJpY3ljbGU7CivmsJHmlbjoqJggPiBudW1iZXJzOwor5bCP5paR6bueID4gc3BlY2tsZTsKK+S9v+WOreeFqSA+IGRpc2d1c3Q7Civoib7ov6rnlJ8gPiBhZGRpc29uOwor5aOr5bir6KiYID4ganVkZ2VzOwor6K236YCB6ICFID4gZXNjb3J0Owor55m86Zu75qmfID4gZHluYW1vOwor56mG5pav5p6XID4gbXVzbGltOwor6ZaL6LuK5Lq6ID4gZHJpdmVyOwor5Zi25ZWe6IGyID4gaG9hcnNlOwor5ouU5bCW5YWSID4gdGlwdG9wOwor566h55CG5Lq6ID4ga2VlcGVyOwor6buD6byg54u8ID4gd2Vhc2VsOwor5pyJ5Lq65oOFID4gaHVtYW5lOwor6KW/57SF5p+/ID4gdG9tYXRvOwor6Zu75b2x6ZmiID4gY2luZW1hOwor5bCP5aaW57K+ID4gZ29ibGluOwor6YeR57Wy6ZuAID4gY2FuYXJ5Owor5YuV5ZCN6KmeID4gZ2VydW5kOwor56u26LO96ICFID4gcGxheWVyOwor57eo5bm05Y+yID4gYW5uYWxzOwor57y65rCn55eHID4gYW5veGlhOwor5aSn5Zyw5rSeID4gY2F2ZXJuOwor5ruR57+U5qmfID4gZ2xpZGVyOwor5q6Y6aSY54mpID4gbGl0dGVyOwor5pyJ6LKs5Lu7ID4gbGlhYmxlOwor5a2p5a2Q5rCjID4gYm95aXNoOwor5bCP54md54mbID4gaGVpZmVyOwor6LeR5q2l6ICFID4gcnVubmVyOwor5ZCQ57as6ZueID4gdHVya2V5Owor6Leo5o6l5ZmoID4ganVtcGVyOwor6LKg5pOU6ICFID4gYmVhcmVyOwor5ZCI5ZSx5ZyYID4gY2hvcnVzOwor6aCY5bCO6ICFID4gbGVhZGVyOwor5puy5qON55CDID4gaG9ja2V5Owor6Lev55Sx5ZmoID4gcm91dGVyOwor54i25q+N6KaqID4gcGFyZW50Owor5YyW5aad5ZOBID4gbWFrZXVwOwor5oCl5L+D6IGyID4gcGF0dGVyOwor5L2/56Gs5YyWID4gaGFyZGVuOwor5Lqk5piT6ICFID4gZGVhbGVyOwor5pel5YWn55OmID4gZ2VuZXZhOwor6YqA6KGM5a62ID4gYmFua2VyOwor5qSN54mp5a24ID4gYm90YW55Owor57SA5b+1542OID4gdHJvcGh5Owor5YG96YCg55qEID4gZm9yZ2VkOwor56ys5LqM5qyhID4gc2Vjb25kOwor6bWd5Y2155+zID4gcGViYmxlOwor5pyJ5rCj5rS+ID4gbG9yZGx5Owor5YK15YuZ5Lq6ID4gZGVidG9yOwor55Wr55yJ6bOlID4gdGhydXNoOwor5bCP56Kf5a2QID4gc2F1Y2VyOwor6Iie6LmI5a62ID4gZGFuY2VyOwor5Y+u5Zm56IGyID4gdGlua2xlOwor5L2/5r+V6YCPID4gZHJlbmNoOwor5om56KmV5a62ID4gY3JpdGljOwor5Zyo5rex6JmVID4gZGVlcGx5Owor5Yud5Yip6ICFID4gdmljdG9yOwor6Lm66Lm65p2/ID4gc2Vlc2F3Owor56Oo5Z2K5Li7ID4gbWlsbGVyOwor5pyJ6Zec6YCjID4gcmVsYXRlOwor5aSa5qi55pyoID4gd29vZGVkOwor5ZCx5ZCx6IGyID4gc3F1ZWFrOwor5pyq5a6M5oiQID4gdW5kb25lOwor6a2U6LO95YWLID4gbW9zYWljOwor5by35pyJ5YqbID4gc3Ryb25nOwor54OP5bmy6YGUID4gdWdhbmRhOwor5LiN56K65a+mID4gdW50cnVlOwor6L6m5YWs5a6kID4gb2ZmaWNlOwor576F6aas5pu4ID4gcm9tYW5zOwor5pyN5YuZ5ZOhID4gd2FpdGVyOwor6JyY6Jub57ayID4gY29id2ViOwor6Zi/57Gz5be0ID4gYW1vZWJhOwor5L+u6KOc5YygID4gdGlua2VyOwor5aSn55CG55+zID4gbWFyYmxlOwor5oyB5pyJ5Lq6ID4gaG9sZGVyOwor5pKS5ZOI5ouJID4gc2FoYXJhOwor5aSn6ZCu5YiAID4gc2N5dGhlOwor5r++5rOi5ZmoID4gZmlsdGVyOwor5aib5qiC5aC0ID4gcmVzb3J0Owor5L2/6auY6IiIID4gcGxlYXNlOwor5pyA5bm06ZW3ID4gZWxkZXN0Owor6YaD6buD55OcID4gcGlja2xlOwor5pS25Ymy6ICFID4gcmVhcGVyOwor5p2c6bWR6bOlID4gY3Vja29vOwor5omT5Zm05ZqPID4gc25lZXplOwor6J665peL6YmXID4gd3JlbmNoOwor5Y+D6K2w6ZmiID4gc2VuYXRlOwor6aCY5bCO5Lq6ID4gbGVhZGVyOwor6K6K5b2i6J+yID4gYW1vZWJhOwor5Lu75L2V5Lq6ID4gYW55b25lOwor5pyJ6YGT5b63ID4gY2hhc3RlOwor6Jed6KGT5a62ID4gYXJ0aXN0Owor6aCC5qiR5p+xID4gcGlsbGFyOwor5L2/6Iao6IS5ID4gZGlsYXRlOwor5bCP5o+Q55C0ID4gZmlkZGxlOwor5oe25rSL5rSLID4gbGF6aWx5Owor6aas5oiy5ZyYID4gY2lyY3VzOwor6auY6IWz5p2vID4gZ29ibGV0Owor6aas6Yi06JavID4gcG90YXRvOwor5L2/6L2J5ZCRID4gZGl2ZXJ0Owor5rKS5pyJ5Lq6ID4gbm9ib2R5Owor5Y2a54mp6aSoID4gbXVzZXVtOwor5L2/5Zuw5pO+ID4gaGFyYXNzOwor56au5ouc5aCCID4gY2hhcGVsOwor5LiN6YCP5piOID4gb3BhcXVlOwor5a6D5pys6LqrID4gaXRzZWxmOwor5omB5qGD6auUID4gdG9uc2lsOwor5o6S5rC05rqdID4gZ3V0dGVyOwor5q2j5pa55b2iID4gc3F1YXJlOwor5Y+v5L+h5Lu7ID4gdHJ1c3R5Owor5paH5a245a62ID4gd3JpdGVyOwor56e75YuV5byPID4gbW9iaWxlOwor5Yiw5q2k6JmVID4gaGl0aGVyOwor5q6W5rCR5ZywID4gY29sb255Owor5aKo6KW/5ZOlID4gbWV4aWNvOwor5riF55yf5a+6ID4gbW9zcXVlOwor6L6m5LqL6JmVID4gb2ZmaWNlOwor5a6J5ZOl5ouJID4gYW5nb2xhOwor5Lul6Imy5YiXID4gaXNyYWVsOwor6YeY5pu46YedID4gc3RhcGxlOwor54Wn55u45qmfID4gY2FtZXJhOwor57Sh57mU6ICFID4gd2VhdmVyOwor5pav5ouJ5aSrID4gc2xhdmljOwor5L+E576F5pavID4gcnVzc2lhOwor6KOB57ir5birID4gdGFpbG9yOwor5byT566t5omLID4gYXJjaGVyOwor5aGe54i+54m5ID4gY2VsdGljOwor5aWz6IiN55ujID4gbWF0cm9uOwor5omT5a2X5ZOhID4gdHlwaXN0Owor5pif5pyf5pelID4gc3VuZGF5Owor6JGh6JCE5Lm+ID4gcmFpc2luOwor5oiR6Ieq5bexID4gbXlzZWxmOwor5aSn5q2l6LWwID4gc3RyaWRlOwor5LiN5YWs5bmzID4gdW5mYWlyOwor6Iqt6JW+6IieID4gYmFsbGV0Owor6KmV6KuW5a62ID4gY3JpdGljOwor5Lyv5Yip6IyyID4gYmVsaXplOwor6J665peL5b2iID4gc3BpcmFsOwor5q+U6LyD5bCRID4gbGVzc2VyOwor5Zyo5q2k6JmVID4gaGVyZWluOwor6KKr5a6z5Lq6ID4gdmljdGltOwor6Zi/5rOi576FID4gYXBvbGxvOwor5L2/6ICz6IG+ID4gZGVhZmVuOwor576p6LOj5pyDID4gYmF6YWFyOwor5pif5pyf5aSpID4gc3VuZGF5Owor5bel5L2c5a6kID4gc3R1ZGlvOwor6ZaA5aSW5ryiID4gbGF5bWFuOwor5Zyo6ZmE6L+RID4gbmVhcmJ5Owor5aGX5rK55pa8ID4gYW5vaW50Owor6Zuc6LKo5ZWGID4gZ3JvY2VyOwor57at5ZC+54i+ID4gdWlnaHVyOwor6Iux6ZuE5byPID4gaGVyb2ljOwor55CG6auu5birID4gYmFyYmVyOwor6LW35rOh5rKrID4gc2VldGhlOwor5pif5pyf5LqUID4gZnJpZGF5Owor5pif5pyf5LiAID4gbW9uZGF5Owor5be054i+5bmyID4gYmFsa2FuOwor5qC85qC856yRID4gZ2lnZ2xlOwor5a2f5Yqg5ouJID4gYmVuZ2FsOwor5Zyf6ICz5YW2ID4gdHVya2V5Owor55m96Jit5ZywID4gYnJhbmR5Owor5oSb5b636I+vID4gZWR3YXJkOwor5Y2K5Lit6IWwID4gbWlkZGxlOwor55m95Lm+5YWSID4gc3Bpcml0Owor5YW4542E6ZW3ID4gd2FyZGVuOwor55yL5LiN6KaLID4gdW5zZWVuOwor5L2/5L2c5ZiUID4gc2lja2VuOwor5oGQ5rC055eFID4gcmFiaWVzOwor5Yqg77mN5pa8ID4gaW1wb3NlOwor5qmh55qu5pC9ID4gZXJhc2VyOwor5rOi5aOr6aCTID4gYm9zdG9uOwor57aT57SA5Lq6ID4gYnJva2VyOwor57SF6Ji/6JSUID4gY2Fycm90Owor5oKE5oKE5ZywID4gZ2VudGx5Owor6YG/6Zuj5omAID4gcmVmdWdlOwor55m96bq15YWSID4gaGVyb2luOwor6aO86aSK6ICFID4gZmVlZGVyOwor5be05pav5YWLID4gYmFzcXVlOwor6I6r5pav56eRID4gbW9zY293Owor5pyI5qGC5qi5ID4gbGF1cmVsOwor6ZaA6Ki65a6kID4gY2xpbmljOwor5b6u6JaE55qEID4gbWVhZ3JlOwor5bCP5reY5rCjID4gcmFzY2FsOwor5pSd5b2x5qmfID4gY2FtZXJhOwor6LW36Ki06ICFID4gc3VpdG9yOwor5be05ou/6aasID4gcGFuYW1hOwor5o2V6a+o6Ii5ID4gd2hhbGVyOwor5ryU6Kqq6ICFID4gb3JhdG9yOwor5pO65qij5a2QID4gZG9cLXN0aDsKK+W5vuS5juS4jSA+IGhhcmRseTsKK+WKoOaLv+WkpyA+IGNhbmFkYTsKK+mGq+WLmeaJgCA+IGNsaW5pYzsKK+WNgeWtl+aetiA+IGNyb3NzOwor5Luj55CG5Lq6ID4gYWdlbnQ7CivpqYXli5XlmaggPiBkcml2ZTsKK+eNqOacqOiInyA+IGNhbm9lOwor5qKd5p2/566xID4gY3JhdGU7CivpmbPliJfoh7ogPiBzdGFsbDsKK+ism+ino+WToSA+IGd1aWRlOwor5rOl5rC05YygID4gbWFzb247CivmpI3niannvqQgPiBmbG9yYTsKK+WcqOmrmOiZlSA+IGFsb2Z0Owor5pKQ56u/6LezID4gdmF1bHQ7CivpoK3ok4vpqqggPiBza3VsbDsKK+aVmOWIqeS6niA+IHN5cmlhOwor57Sr5LiB6aaZID4gbGlsYWM7CivkuI3mlrDprq4gPiBzdGFsZTsKK+Wkp+i+suWgtCA+IHJhbmNoOwor5aSa5rC05YiGID4ganVpY3k7Civlkbzlj6vlmaggPiBwYWdlcjsKK+S4i+awtOmBkyA+IHNld2VyOwor5b6e5L6G5LiNID4gbmV2ZXI7CivkuozmpbXnrqEgPiBkaW9kZTsKK+ertuaKgOWgtCA+IGFyZW5hOwor6bql6Zi/5a+GID4gbWlhbWk7CivkvJHmga/lrqQgPiBsb2JieTsKK+eQg+eLgOeJqSA+IGdsb2JlOwor5bCN5pW16ICFID4gcml2YWw7CivlhqzpnZLmqLkgPiBob2xseTsKK+aenOWtkOWHjSA+IGplbGx5Owor5aSn5Zyw5ZyWID4gYXRsYXM7CivmiJDlubTogIUgPiBhZHVsdDsKK+mbheWQhOabuCA+IGphbWVzOwor6Iux5Luj54i+ID4gaW50ZWw7Civmr5vojLjojLggPiBoYWlyeTsKK+S9v+eFqeaDsSA+IHdvcnJ5Owor5bC85pel54i+ID4gbmlnZXI7CivmlLbpn7PmqZ8gPiByYWRpbzsKK+esrOS4ieasoSA+IHRoaXJkOwor5oub5b6F5ZOhID4gdXNoZXI7CivnrKzkuIDmrKEgPiBmaXJzdDsKK+aEj+Wkp+WIqSA+IGl0YWx5Owor5rC05bmz6Z2iID4gcGxhbmU7Civkup7purvluIMgPiBsaW5lbjsKK+a6nOWGsOmeiyA+IHNrYXRlOwor5L2c5ZO86IGyID4gc25vcnQ7Civoo73pgKDogIUgPiBtYWtlcjsKK+eEoeeUn+WRvSA+IGluZXJ0Owor6YWq6L6y5qWtID4gZGFpcnk7CivmsLTokrjmsKMgPiB2YXBvcjsKK+WDj+eJh+ewvyA+IGFsYnVtOwor6LSI6IiH6ICFID4gZ2l2ZXI7Civmnb/mop3nrrEgPiBjcmF0ZTsKK+WkqeiXjeiJsiA+IGF6dXJlOwor6aOb6KGM5ZOhID4gcGlsb3Q7CivmjZDotIjogIUgPiBkb25vcjsKK+ilv+ePreeJmSA+IHNwYWluOwor5o+Q5aSa5pu4ID4gdGl0dXM7CivnlJ/purXns7AgPiBkb3VnaDsKK+mYv+aLieaRqSA+IGFsYW1vOwor55S36auY6Z+zID4gdGVub3I7CivkuIDpu57lhZIgPiBhXC1iaXQ7Civoi7HnibnniL4gPiBpbnRlbDsKK+Wwj+aoueaelyA+IGdyb3ZlOwor5biD6JCK54i+ID4gYmxhaXI7CivmkqXngavmo40gPiBwb2tlcjsKK+WcqOaXgemCiiA+IGFzaWRlOwor54ef5qWt5ZOhID4gY2xlcms7Civkvb/lm7rlrpogPiByaXZldDsKK+itpuWgseWZqCA+IHNpcmVuOwor5LiJ6KeS5rSyID4gZGVsdGE7CivlqIHniL7lo6sgPiB3YWxlczsKK+iCr+WwvOS6niA+IGtlbnlhOwor6bq15YyF55quID4gY3J1c3Q7Civnn7PljZfmqLkgPiBoZWF0aDsKK+ieuue1sumHmCA+IHNjcmV3Owor6KW/5rSL5qOLID4gY2hlc3M7CivllLHoqannj60gPiBjaG9pcjsKK+ilv+a0i+adiSA+IGNlZGFyOwor5L2/5rq65q27ID4gZHJvd247Civlho3kuIDmrKEgPiBhZ2FpbjsKK+WcsOaWueaApyA+IGxvY2FsOwor55m854mi6ai3ID4gd2hpbmU7CivplbfpoLjnk7YgPiBmbGFzazsKK+eauueciemgrSA+IHNjb3dsOwor6aeV6aeb5ZOhID4gcGlsb3Q7Civkvobnpo/mp40gPiByaWZsZTsKK+WQtemsp+iBsiA+IG5vaXNlOwor5qWU5b2i54mpID4gd2VkZ2U7CivmtYHmtarogIUgPiByb3ZlcjsKK+avm+WXtuWYsCA+IHNlcmdlOwor54GM5pyo5Y+iID4gc2NydWI7Civotbfph43mqZ8gPiBjcmFuZTsKK+eijuW4g+ainSA+IHNocmVkOwor5YWn5Zyo55qEID4gaW5uZXI7CivprLHph5HpppkgPiB0dWxpcDsKK+mbquiMhOeFmSA+IGNpZ2FyOwor54Ok6bq15YyFID4gdG9hc3Q7CivlkLnnrJvogIUgPiBwaXBlcjsKK+S4gOW3tOaOjCA+IHNwYW5rOwor57Wx5rK76ICFID4gcnVsZXI7Civlkbzlj6vogbIgPiB3aG9vcDsKK+W6p+WPs+mKmCA+IG1vdHRvOwor5LiJ56ic6Y+hID4gcHJpc207Civnn67loqnloqkgPiBwdWRneTsKK+mYv+eIvuazlSA+IGFscGhhOwor5q+U5L6L5bC6ID4gc2NhbGU7Civlj43mipfogIUgPiByZWJlbDsKK+WTquS4gOWAiyA+IHdoaWNoOwor5ZCI6IKh57eaID4gdHdpbmU7CivpgoHpmL/lr4YgPiBtaWFtaTsKK+i8v+irlueVjCA+IG1lZGlhOwor55Ge5YW45Lq6ID4gc3dlZGU7Civkvb/nvp7mhKcgPiBhYmFzaDsKK+eUt+WtkOawoyA+IG1hbmx5Owor5L2/5aib5qiCID4gYW11c2U7CivlqrPlqablhZIgPiB3aWZlOwor5LyK5ouJ5YWLID4gaXJhcTsKK+acieiDveWKmyA+IGFibGU7Civln4PnsbPniL4gPiBlbWlyOwor5ZKW5ZWh6aSoID4gY2FmZTsKK+S4gOWumuimgSA+IG11c3Q7CivpgJrooYznqIUgPiB0b2xsOwor546J6JyA6buNID4gY29ybjsKK+Wwj+avm+ifsiA+IHNsdWc7CivmnIDkuLvopoEgPiBtYWluOwor54y25LuW5beeID4gdXRhaDsKK+S9v+WPl+WCtyA+IGh1cnQ7Civnq4vmlrnpq5QgPiBjdWJlOwor55m96aqo6aCCID4gY29vdDsKK+itt+WfjuaysyA+IG1vYXQ7CivmtIvlqIPlqIMgPiBkb2xsOwor5oSf6Ka65YiwID4gZmVlbDsKK+S4i+S4gOasoSA+IG5leHQ7Civmt7rpu4PoibIgPiBidWZmOwor5aSn6KKL5a2QID4gc2FjazsKK+WciOeLgOeJqSA+IGhvb3A7CivkuI3lj4rmoLwgPiBmYWlsOwor5Ye656ef6LuKID4gdGF4aTsKK+S/nemaque1siA+IGZ1c2U7CivlhYjopovogIUgPiBzZWVyOwor5omL5ouJ6LuKID4gY2FydDsKK+eIteWjq+iIniA+IGpheno7CivlkpbllaHlupcgPiBjYWZlOwor6Im+5ruL55eFID4gYWlkczsKK+WFq+WTpeWFkiA+IG15bmE7Civpm7vnh4jms6EgPiBidWxiOwor54y25aSn5pu4ID4ganVkZTsKK+Wkp+mgremHmCA+IHRhY2s7CivmhJvmu4vnl4UgPiBhaWRzOwor6LWk6KO46KO4ID4gYmFyZTsKK+Wck+Wxi+mggiA+IGRvbWU7Civpm5nog57og44gPiB0d2luOwor5LiA5aGK6bq1ID4gbG9hZjsKK+S9v+eUqOiAhSA+IHVzZXI7CivlpJblsI/ohb8gPiBzaGluOwor6JuL55m955+zID4gb3BhbDsKK+S4gOWIhumMoiA+IGNlbnQ7CivlnJPpjJDpq5QgPiBjb25lOwor55m+5ZCI6IqxID4gbGlseTsKK+ioiOeoi+i7iiA+IHRheGk7CivonILonJzphZIgPiBtZWFkOwor6Z2e5bi45aSaID4gbXVjaDsKK+WcqOS5i+S4iiA+IG92ZXI7CivnnKjnnLznnZsgPiB3aW5rOwor6LK05amm5Lq6ID4gZGFtZTsKK+e0heWvtuefsyA+IHJ1Ynk7Civou5/mnKjloZ4gPiBjb3JrOwor57KJ57SF6ImyID4gcGluazsKK+WRvOWRvOiBsiA+IHdoaXI7Civlv6vmraXot5EgPiB0cm90Owor6Kqq6KyK6ICFID4gbGlhcjsKK+mZquWvqeWcmCA+IGp1cnk7CivnubzkuZjkurogPiBoZWlyOwor5YWJ56a/56a/ID4gYmFsZDsKK+aenOmkoemkhSA+IHRhcnQ7CivlmLblmLbogbIgPiBoaXNzOwor5pOm6buR5YWSID4gZHVzazsKK+awtOaenOmFkiA+IHdpbmU7Civnmanlk4jon4YgPiB0b2FkOwor57mU5biD5qmfID4gbG9vbTsKK+apouWck+W9oiA+IG92YWw7Civnqbrnmb3pu54gPiBnYXA7CivngrrnlJrpurwgPiB3aHk7CivnlLflranlrZAgPiBib3k7CivmtbjkuIDkuIsgPiBkaXA7CivlnKjnnLzliY0gPiBub3c7CivnhKHoirHmnpwgPiBmaWc7CivnlLflranlhZIgPiBib3k7CivospPlj6vogbIgPiBtZXc7CivntLDpoLjnk7YgPiBqdWc7CivluLjmmKXol6QgPiBpdnk7Civngrrku4DpurwgPiB3aHk7CivnhKHlsL7njL8gPiBhcGU7CivlsI/nsr7pnYggPiBlbGY7CivogIHlpKnniLogPiBnb2Q7Civpm7bpu57lha0gPiAwXC42Owor5aKo5rC05YWSID4gaW5rOwor5YWt6bue5YWtID4gNlwuNjsKK+eUqOayueeCuCA+IGZyeTsKK+mrlOiCsumkqCA+IGd5bTsKK+S4g+m7nuS6lCA+IDdcLjU7CivkuIPpu57kuowgPiA3XC4yOwor5YuV54mp5ZySID4gem9vOwor54y25aSq5Lq6ID4gamV3Owor6buD6KSQ6ImyID4gdGFuOwor562G5qG/5a2QID4gcGVuOwor5Lmd5LiD5bm0ID4gJyc5NzsKK+ioiOS5mOi7iiA+IGNhYjsKK+Wwj+S8meWtkCA+IGxhZDsKK+iyk+mgrem3uSA+IG93bDsKK+WQkeS4iuWcsCA+IHVwOwor6K6K5paHID4gYVwtcG9wdWxhclwtZm9ybVwtb2ZcLW5hcnJhdGl2ZVwtbGl0ZXJhdHVyZVwtZmxvdXJpc2hpbmdcLWluXC10aGVcLXRhbmdcLWR5bmFzdHlcLVwoNjE4XC05MDdcKVwtd2l0aFwtYWx0ZXJuYXRlXC1wcm9zZVwtYW5kXC1yaHltZWRcLXBhcnRzXC1mb3JcLXJlY2l0YXRpb25cLWFuZFwtc2luZ2luZ1wtXChvZnRlblwtb25cLWJ1ZGRoaXN0aWNcLXRoZW1lc1wpOwor6YKK5bmjID4gYm9yZGVyXC1yZWdpb25cLWN1cnJlbmN5XC1cKGNvbnNpc3RpbmdcLW9mXC10aGVcLWN1cnJlbmN5XC1ub3Rlc1wtaXNzdWVkXC1ieVwtdGhlXC1ib3JkZXJcLXJlZ2lvblwtZ292ZXJubWVudHNcLWR1cmluZ1wtdGhlXC13YXJcLW9mXC1yZXNpc3RhbmNlXC1hZ2FpbnN0XC1qYXBhblwtYW5kXC10aGVcLXdhclwtb2ZcLWxpYmVyYXRpb25cKTsKK+WQjOacnyA+IHRoZVwtY29ycmVzcG9uZGluZ1wtdGltZVwtcGVyaW9kXC1cKGVnXCxcLWNvbXBhcmVcLWluZmxhdGlvblwtbm93XC13aXRoXC10aGVcLXJhdGVcLWR1cmluZ1wtdGhlXC1zYW1lXC1tb250aFwtbGFzdFwteWVhclwpOwor5YGP5YGPID4gXChpbmRpY2F0ZXNcLXRoYXRcLXN0aFwuXC10dXJuc1wtb3V0XC1qdXN0XC10aGVcLW9wcG9zaXRlXC1vZlwtd2hhdFwtb25lXC13b3VsZFwtZXhwZWN0XC1vclwtd2hhdFwtd291bGRcLWJlXC1ub3JtYWxcKTsKK+aVrOelnSA+IHRvXC1yZXNwZWN0ZnVsbHlcLW9mZmVyXC1cKHdyaXR0ZW5cLWF0XC10aGVcLWVuZFwtb2ZcLWxldHRlclwtZnJvbVwtc29tZW9uZVwtb2ZcLWxvd2VyXC1zdGF0dXNcLXRvXC1oaWdoZXJcLXN0YXR1c1wpOwor5Y2c6L6tID4gb3JhY2xlXC1pbnNjcmlwdGlvbnNcLW9mXC10aGVcLXNoYW5nXC1keW5hc3R5XC1cKDE2dGhcLTExdGhcLWNlbnR1cnlcLWJjXClcLW9uXC10b3J0b2lzZXNoZWxsc1wtb3JcLWFuaW1hbFwtYm9uZXM7CivmtJvlvrcgPiBcKHdpbnN0b25cKVwtbG9yZFwtXChmb3JtZXJcLWFzc2lzdGFudFwtc2VjcmV0YXJ5XC1vZlwtc3RhdGVcLWZvclwtZWFzdFwtYXNpYVwtYW5kXC1wYWNpZmljXC1hZmZhaXJzXCk7CivlvbflvqggPiBuYW1lXC1vZlwtYVwtY29sbGVjdGlvblwtb2ZcLXNob3J0XC1zdG9yaWVzXCxcLXBhbmdcLWh1YW5nXCxcLVwid2FuZGVyaW5nXC1hYm91dFwiXCxcLWJ5XC1sdTNcLXh1bjRcLemtr+i/hTsKK+mZs+avhSA+IGNoZW5cLXlpXCxcLWZvcm1lclwtbWF5b3JcLW9mXC1zaGFuZ2hhaVwtYW5kXC1oaWdoZXN0XC1yYW5raW5nXC1taWxpdGFyeVwtY29tbWFuZGVyXC1pblwtY2hpbmE7CivljIXlt6UgPiB1bmRlcnRha2VcLXRvXC1wZXJmb3JtXC13b3JrXC13aXRoaW5cLWFcLXRpbWVcLWxpbWl0XC1hbmRcLWFjY29yZGluZ1wtdG9cLXNwZWNpZmljYXRpb25zOwor6YOo6aaWID4gcmFkaWNhbHNcLWJ5XC13aGljaFwtY2hhcmFjdGVyc1wtYXJlXC1hcnJhbmdlZFwtaW5cLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1kaWN0aW9uYXJpZXM7CivpnLjkuLsgPiBhXC1wb3dlcmZ1bFwtY2hpZWZcLW9mXC10aGVcLXByaW5jZXNcLW9mXC10aGVcLXNwcmluZ1wtYW5kXC1hdXR1bW5cLXBlcmlvZFwtXCg3NzBcLTQ3NlwtYmNcKTsKK+WcqOaWvCA+IFwodGhlXC1wcm9ibGVtXC1vclwtZXhwbGFuYXRpb25cLW9yXC1hZHZhbnRhZ2VcLWV0Y1wuXClcLWxpZXNcLWluXC1cKHRoZVwtZmFjdFwtdGhhdFwuXC5cLlwpOwor5pWZ6KiTID4gXCh0ZWFjaFwtc29tZW9uZVwtb3JcLWxlYXJuXC1hXClcLWxlc3NvblwtXChpZVwsXC1vYnRhaW5cLXdpc2RvbVwtZnJvbVwtYW5cLWV4cGVyaWVuY2VcKTsKK+mngeWyuCA+IGFcLWxvd1wtc3RvbmVcLXdhbGxcLWJ1aWx0XC1hbG9uZ1wtdGhlXC13YXRlcicnc1wtZWRnZVwtdG9cLXByb3RlY3RcLWFuXC1lbWJhbmttZW50Owor6KOc5rOVID4gdHJlYXRtZW50XC1pbnZvbHZpbmdcLXRoZVwtdXNlXC1vZlwtdG9uaWNzXC10b1wtcmVzdG9yZVwtdGhlXC1wYXRpZW50JydzXC1oZWFsdGg7CivkuInkuI0gPiBcInRoZVwtdGhyZWVcLW5vJydzXCJcLVwoYW5cLWV4YW1wbGVcLW9mXC1hblwtYWJicmV2aWF0ZWRcLXNsb2dhblwtb3JcLWNhdGNocGhyYXNlXCk7Civnmb3mnK4gPiB0aGVcLXJoaXpvbWVcLW9mXC1sYXJnZVwtaGVhZGVkXC1hdHJhY3R5bG9kZXNcLVwoYXRyYWN0eWxvZGVzXC1tYWNyb2NlcGhhaWFcKTsKK+Wuo+WIpCA+IHByb25vdW5jZVwtYVwtXChqdWRpY2lhbFwpXC1zZW50ZW5jZVwtXChhZnRlclwtYVwtdmVyZGljdFwtaW5cLWFcLWNvdXJ0XC1vZlwtbGF3XCk7Civnl4Xlj4sgPiBhXC1mcmllbmRcLW1hZGVcLWluXC1ob3NwaXRhbFwtb3JcLXBlb3BsZVwtd2hvXC1iZWNvbWVcLWZyaWVuZHNcLWluXC1ob3NwaXRhbDsKK+WwseaYryA+IFwoZW1waGFzaXplc1wtdGhhdFwtc29tZXRoaW5nXC1pc1wtcHJlY2lzZWx5XC1vclwtZXhhY3RseVwtd2hhdFwtaXNcLXN0YXRlZFwpOwor5aSn56a5ID4gZGFcLXl1XCxcLW5hbWVcLW9mXC1hblwtYW5jaWVudFwtaGVyb1wtd2hvXC1zdWNjZXNzZnVsbHlcLWNvbnRyb2xsZWRcLWZsb29kczsKK+ihqOitiSA+IGlsbG5lc3NcLXRoYXRcLWhhc1wtbm90XC1hdHRhY2tlZFwtdGhlXC12aXRhbFwtb3JnYW5zXC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+W5q+mWkSA+IGhhbmdcLW9uXC10b1wtYW5kXC1zZXJ2ZVwtdGhlXC1yaWNoXC1hbmRcLXBvd2VyZnVsXC1ieVwtbGl0ZXJhcnlcLWhhY2tcLXdvcms7Civmj4/ntIUgPiB0b1wtdHJhY2VcLW92ZXJcLXJlZFwtY2hhcmFjdGVyc1wtXChhc1wtYVwtbWV0aG9kXC1vZlwtbGVhcm5pbmdcLXRvXC13cml0ZVwpOwor5oqX5oiwID4gd2FyXC1vZlwtcmVzaXN0YW5jZVwsXC1lc3BlY2lhbGx5XC10aGVcLXdhclwtYWdhaW5zdFwtamFwYW5cLVwoMTkzN1wtMTk0NVwpOwor5LuK6Z+zID4gbW9kZXJuXC1cKGlcLmVcLlwtbm90XC1hbmNpZW50XClcLXByb251bmNpYXRpb25cLW9mXC1hXC1jaGluZXNlXC1jaGFyYWN0ZXI7Civmg4vmg5wgPiB0b1wtZmVlbFwtc29ycnlcLWZvclwtYVwtcGVyc29uXC1vdmVyXC1zdGhcLXRoYXRcLXNob3VsZFwtaGF2ZVwtaGFwcGVuZWQ7CivnnaXnnaggPiBsb29rXC1hdFwtc29tZWJvZHlcLWRpc2RhaW5mdWxseVwtb3V0XC1vZlwtdGhlXC1jb3JuZXJcLW9mXC1vbmUnJ3NcLWV5ZTsKK+iDoemBqSA+IGh1XC1zaGlcLVwoMTg5MVwtMTk2MlwpXCxcLW9yaWdpbmFsXC1wcm9wb25lbnRcLW9mXC1iYWkyXC1odWE0XC13ZW4yXC3nmb3oqbHmloc7Civou43lp5QgPiBtaWxpdGFyeVwtY29tbWlzc2lvblwtb2ZcLXRoZVwtY29tbXVuaXN0XC1wYXJ0eVwtY2VudHJhbFwtY29tbWl0dGVlOwor54eI56+AID4gdGhlXC1sYW50ZXJuXC1mZXN0aXZhbFwtXCgxNXRoXC1vZlwtZmlyc3RcLW1vbnRoXC1vZlwtbHVuYXJcLWNhbGVuZGFyXCk7CivljJfmtIsgPiB0aGVcLXFpbmdcLWR5bmFzdHlcLW5hbWVcLWZvclwtdGhlXC1jb2FzdGFsXC1wcm92aW5jZXNcLW9mXC1saWFvbmluZzsKK+WFq+aXlyA+IHRoZVwtXCJlaWdodFwtYmFubmVyc1wiXC1cKG1pbGl0YXJ5XC1vcmdhbmlzYXRpb25cLWluXC1xaW5nXC1keW5hc3R5XCk7Civol6Tph44gPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXRlbmdcLXllXCxcLWFcLWphcGFuZXNlXC1mcmllbmRcLW9mXC1sdTNcLXh1bjRcLemtr+i/hTsKK+iPr+ihqCA+IG1hcmJsZVwtcGlsbGFyXC1cKG9ybmFtZW50YWxcLWNvbHVtblwtaW5cLWZyb250XC1vZlwtcGxhY2VzXCxcLXRvbWJzXCk7CivlvoXmpa0gPiB0b1wtYXdhaXRcLWpvYlwtYXNzaWdubWVudFwtXCh0ZXJtXC11c2VkXC1vbmx5XC1pblwtbWFpbmxhbmRcLWNoaW5hXCk7Civmia7nm7ggPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hblwtYWN0b3JcLW9yXC1hY3RyZXNzXC1pblwtY29zdHVtZVwtb3JcLW1ha2V1cDsKK+atpuihkyA+IHd1c2h1XCxcLW1hcnRpYWxcLWFydHNcLXN1Y2hcLWFzXC1zaGFkb3dcLWJveGluZ1wsXC1zd29yZHBsYXlcLFwtZXRjXC47CivkuK3lhbEgPiBcKGFiYnJldmlhdGlvblwtZm9yXClcLWNoaW5lc2VcLWNvbW11bmlzdFwtXChwYXJ0eVwsXC1yZWdpbWVcLFwtZXRjXC5cKTsKK+aUv+WNlCA+IGNwcGNjXC1cKGNoaW5lc2VcLXBlb3BsZScnc1wtcG9saXRpY2FsXC1jb25zdWx0YXRpdmVcLWNvbW1pdHRlZVwpOwor5o6h5Y+WID4gYWRvcHRcLW9yXC1jYXJyeVwtb3V0XC1cKG1lYXN1cmVzXCxcLXBvbGljaWVzXCxcLWNvdXJzZVwtb2ZcLWFjdGlvblwpOwor55mf5LiJID4gYVwtd3JldGNoZWRcLWxvb2tpbmdcLXRyYW1wXC13aG9cLWxpdmVzXC1ieVwtYmVnZ2luZ1wtb3JcLXN0ZWFsaW5nOwor6KGo5YWEID4gbWFsZVwtY291c2luXC13aXRoXC1hXC1kaWZmZXJlbnRcLXN1cm5hbWVcLVwob2xkZXJcLXRoYW5cLW9uZXNlbGZcKTsKK+S7meiNiSA+IGFcLWtpbmRcLW9mXC1wbGFudFwtdXNlZFwtYXNcLWFcLW1lZGljaW5hbFwtaGVyYlwtaW5cLWFuY2llbnRcLXRpbWVzOwor5p2/6IOhID4gYVwtYm93ZWRcLXN0cmluZ2VkXC1pbnN0cnVtZW50XC13aXRoXC1hXC10aGluXC13b29kZW5cLXNvdW5kYm9hcmQ7Civoo5zppIogPiB0YWtlXC1hXC10b25pY1wtb3JcLW5vdXJpc2hpbmdcLWZvb2RcLXRvXC1idWlsZFwtdXBcLW9uZScnc1wtaGVhbHRoOwor5ou85ZG9ID4gdG9cLWJlXC1yZWFkeVwtdG9cLXJpc2tcLW9uZScnc1wtbGlmZVwtXChpblwtZmlnaHRpbmdcLFwtd29ya1wsXC1ldGNcLlwpOwor6YG35oCSID4gdG9cLXRha2VcLW9uZScnc1wtYW5nZXJcLW91dFwtb25cLXNiXC1cKHdob1wtZG9lc1wtbm90XC1kZXNlcnZlXC1pdFwpOwor5o6b5aW9ID4gdG9cLWhhbmdcLXVwXC1wcm9wZXJseVwtXCh0ZWxlcGhvbmVcLFwtcGljdHVyZVwsXC1jbG90aGVzXCxcLWV0Y1wuXCk7Civmi5Tmr5IgPiBkcmF3XC1vdXRcLXB1c1wtYnlcLWFwcGx5aW5nXC1hXC1wbGFzdGVyXC10b1wtdGhlXC1hZmZlY3RlZFwtYXJlYTsKK+eVnOWKmyA+IGFuaW1hbFwtcG93ZXJlZFwtXChhc1wtb3Bwb3NlZFwtdG9cLWh1bWFuXC1vclwtbWFjaGluZVwtcG93ZXJlZFwpOwor5bmr6IWUID4gdm9jYWxcLWFjY29tcGFuaW1lbnRcLWluXC1zb21lXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtb3BlcmFzOwor5aWU5ZaqID4gaGFzdGVuXC1ob21lXC1mb3JcLXRoZVwtZnVuZXJhbFwtb2ZcLWFcLXBhcmVudFwtb3JcLWdyYW5kcGFyZW50Owor55m96IqNID4gXChwZWVsZWRcKVwtcm9vdFwtb2ZcLWhlcmJhY2VvdXNcLXBlb255XC1cKHBhZW9uaWFcLWxhY3RpZmxvcmFcKTsKK+iIiOi2oyA+IGludGVyZXN0XC1cKGRpcmVjdGVkXC10b3dhcmRzXCxcLW5vdFwtaW5oZXJlbnRcLWluXC1zb21ldGhpbmdcKTsKK+aomeWFtSA+IHBhcmFkZVwtZ3VhcmRzXC1cKHVzdWFsbHlcLXNwYWNlZFwtb3V0XC1hbG9uZ1wtcGFyYWRlXC1yb3V0ZXNcKTsKK+azlea1tyA+IG5hbWVcLW9mXC1hXC1idWRkaGlzdFwtbW9ua1wsXC1mYWhhaVwsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor5b2I55C0ID4gdG9cLXBsYXlcLW9yXC1zdHJ1bVwtYVwtbHV0ZVwtb3JcLW90aGVyXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+eZvemZtiA+IHdoaXRlXC1wb3R0ZXJ5XC1cKG9mXC1zaGFuZ1wtZHluYXN0cnlcLTE2XC0xMXRoXC1jZW50dXJ5XC1iY1wpOwor5YyF5bmyID4gYmVcLXJlc3BvbnNpYmxlXC1mb3JcLWFcLXRhc2tcLXVuaXRcLXVudGlsXC1pdFwtaXNcLWNvbXBsZXRlZDsKK+W5s+aWuSA+IHNxdWFyZVwtXChhc1wtaW5cLXNxdWFyZVwtZm9vdFwsXC1zcXVhcmVcLW1pbGVcLFwtc3F1YXJlXC1yb290XCk7Civmi4nosp0gPiBcKGpvaG5cKVwtcmFiZVwtXChnZXJtYW5cLWV5ZXdpdG5lc3NcLXRvXC1uYW5qaW5nXC1tYXNzYWNyZVwpOwor5ber5bGxID4gbXRcLlwtd3VcLFwtb25cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLWJ5XC10aGVcLXRocmVlXC1nb3JnZXM7CivmjZXkv5ggPiBjYXB0dXJlXC1lbmVteVwtcGVyc29ubmVsXC1cKGZvclwtaW50ZWxsaWdlbmNlXC1wdXJwb3Nlc1wpOwor6Y+i5a6iID4gYXJtZWRcLWVzY29ydFwtXChvZlwtdHJhdmVsbGVyc1wtb3JcLW1lcmNoYW50cycnXC1jYXJhdmFuc1wpOwor6LKd5q+NID4gdGhlXC1idWxiXC1vZlwtdGhlXC1mcml0aWxsYXJ5XC1cKGZyaXRpbGxhcmlhXC10aHVuYmVyZ2lpXCk7CivlkI3li50gPiBhXC1wbGFjZVwtZmFtb3VzXC1mb3JcLWl0c1wtc2NlbmVyeVwtb3JcLWhpc3RvcmljYWxcLXJlbGljczsKK+awkeaogiA+IG11c2ljXCxcLWVzcFwuXC1mb2xrXC1tdXNpY1wsXC1mb3JcLXRyYWRpdGlvbmFsXC1pbnN0cnVtZW50czsKK+mZneilvyA+IHNoYWFueGlcLXByb3ZpbmNlXCxcLWNoaW5hXC1cKGNhcGl0b2xcLWNpdHlcLWlzXC14aScnYW5cLeilv+WuiVwpOwor5pel5pa5ID4gdGhlXC1qYXBhbmVzZVwtc2lkZVwtb3JcLXBhcnR5XC1cKGluXC1uZWdvdGlhdGlvbnNcLFwtZXRjXC5cKTsKK+apq+aKmCA+IFwoaG9yaXpvbnRhbFwtc3RhcnRpbmdcLXJpZ2h0XC1hbmdsZVwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+ilv+WuiSA+IHhpJydhblwtXChjaXR5XClcLFwtdGhlXC1jYXBpdG9sXC1jaXR5XC1vZlwtc2hhYW54aVwtcHJvdmluY2U7CivlsI/pnZIgPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXhpYW9xaW5nXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7Civoh6jmkbkgPiB0b1wtY29weVwtXChhXC1tb2RlbFwtb2ZcLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmdcLFwtZXRjXC5cKTsKK+WCmeWPliA+IGJlXC1vblwtdGhlXC13YWl0aW5nXC1saXN0XC1cKGZvclwtYWRtaXNzaW9uXC10b1wtYVwtc2Nob29sXCk7CivmnKzmnKsgPiB0aGVcLXdob2xlXC1jb3Vyc2VcLW9mXC1hblwtZXZlbnRcLWZyb21cLWJlZ2lubmluZ1wtdG9cLWVuZDsKK+mgk+aMqyA+IHdpdGhcLXN5bmNvcGF0ZWRcLWNhZGVuY2VcLVwoYnJ1c2hcLXN0cm9rZVwtaW5cLXBhaW50aW5nXCk7CivniYjnlasgPiBhXC1waWN0dXJlXC1wcmludGVkXC1mcm9tXC1hblwtZW5ncmF2ZWRcLW9yXC1ldGNoZWRcLXBsYXRlOwor6YG/6KuxID4gdGFib29cLWFnYWluc3RcLXVzaW5nXC10aGVcLXBlcnNvbmFsXC1uYW1lc1wtb2ZcLWVtcGVyb3JzOwor5q2m5p2+ID4gd3Vzb25nXCxcLW5hbWVcLW9mXC1hXC1wZXJzb25cLFwtYVwtaGVyb1wtaW5cLXNodWlcLWh1XC16aHVhbjsKK+ioseS7mSA+IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwteHVcLXhpYW5cLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+WEkOebuCA+IGF0dGVuZGFudFwtb2ZcLXRoZVwtYnJpZGVcLW9yXC1icmlkZWdyb29tXC1hdFwtYVwtd2VkZGluZzsKK+ijnOeAiSA+IHJlaW5mb3JjaW5nXC1hbmRcLXJlZHVjaW5nXC1tZXRob2RzXC1cKGluXC1hY3VwdW5jdHVyZVwpOwor5bm55LqLID4gYWRtaW5pc3RyYXRpdmVcLXNlY3JldGFyeVwtXChpblwtY2hhcmdlXC1vZlwtc29tZXRoaW5nXCk7Civlt6vls70gPiB3dXhpYVwtZ29yZ2VcLFwtaW5cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLXRocmVlXC1nb3JnZXM7CivmipjnrYYgPiBhZ2FpbnN0XC10aGVcLWJyaXN0bGVzXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivlsIjnt5ogPiBzcGVjaWFsXC1wdXJwb3NlXC1waG9uZVwtbGluZVwtb3JcLWNvbW11bmljYXRpb25zXC1saW5rOwor5ZyW5YWLID4gXChnYXJ5XC1sXC5cKVwtdG9va2VyXC1cKG1vdG9yb2xhXC1jaGFpcm1hblwtb2ZcLXRoZVwtYm9hcmRcKTsKK+aWnOmJpCA+IFwoZG93bndhcmRzXC1yaWdodFwtY29uY2F2ZVwtaG9va2VkXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6LGO5oqYID4gXChkb3dud2FyZHNcLXN0YXJ0aW5nXC1yaWdodFwtYW5nbGVcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivogIHlhYQgPiAnJ29sZFwtY2hhcCcnXC1cKGZvcm1cLW9mXC1hZGRyZXNzXC1iZXR3ZWVuXC1tYWxlXC1mcmllbmRzXCk7CivmqavnrYYgPiBicmlzdGxlc1wtbHlpbmdcLWRvd25cLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+aOoeizvCA+IG1ha2VcLXB1cmNoYXNlc1wtZm9yXC1hblwtb3JnYW5pemF0aW9uXC1vclwtZW50ZXJwcmlzZTsKK+ato+WcqCA+IGluXC10aGVcLXByb2Nlc3NcLW9mXC1cKGRvaW5nXC1zb21ldGhpbmdcLW9yXC1oYXBwZW5pbmdcKTsKK+WgseWciyA+IGRlZGljYXRlXC1vbmVzZWxmXC10b1wtdGhlXC1zZXJ2aWNlXC1vZlwtb25lJydzXC1jb3VudHJ5Owor562G6Ke4ID4gYnJ1c2hcLXN0cm9rZVwtaW5cLWNoaW5lc2VcLXBhaW50aW5nXC1hbmRcLWNhbGxpZ3JhcGh5Owor5L6/5Lq6ID4gc29tZWJvZHlcLXdob1wtaGFwcGVuc1wtdG9cLWJlXC1vblwtaGFuZFwtZm9yXC1hblwtZXJyYW5kOwor6Kyd6L6bID4gY2hlYVwtc2ltXC1cKGNhbWJvZGlhblwtbmF0aW9uYWxcLWFzc2VtYmx5XC1wcmVzaWRlbnRcKTsKK+WklumbuyA+IHJlcG9ydHNcLWZyb21cLWZvcmVpZ25cLVwobm9uXC1jaGluZXNlXClcLW5ld3NcLWFnYW5jaWVzOwor57235LqGID4gYVwtbW9kYWxcLXBhcnRpY2xlXC1pbmRpY2F0aW5nXC1cKGRvbicndFwtbWluZFwtaXRcLFwtb2tcKTsKK+mdnOWxsSA+IGNoZW5nXC1zYW5cLVwoZWxlY3RvcmFsXC1jb25zdGl0dWVuY3lcLWluXC1zaW5nYXBvcmVcKTsKK+aKk+mjryA+IGFcLWtpbmRcLW9mXC1mb29kXC1wb3B1bGFyXC1hbW9uZ1wtYmVsaWV2ZXJzXC1pblwtaXNsYW07Civnmb3mj48gPiBsaW5lXC1kcmF3aW5nXC1pblwtdHJhZGl0aW9uYWxcLWlua1wtYW5kXC1icnVzaFwtc3R5bGU7CivllJDlsbEgPiB0YW5nXC1zaGFuXC1cKGFcLWNoaW5lc2VcLWNpdHlcLWluXC1oZWJlaVwt5rKz5YyXXC1wcm92aW5jZVwpOwor6YG/5auMID4gYXZvaWRcLWRvaW5nXC1hbnl0aGluZ1wtdGhhdFwtbWF5XC1hcm91c2VcLXN1c3BpY2lvbjsKK+WgseW5lSA+IGFubm91bmNlXC10aGVcLWl0ZW1zXC1vblwtYVwtXCh0aGVhdHJpY2FsXClcLXByb2dyYW1tZTsKK+imquWutiA+IHBhcmVudHNcLW9mXC1vbmUnJ3NcLWRhdWdodGVyXC1pblwtbGF3XC1vclwtc29uXC1pblwtbGF3Owor5Zac57OWID4gc3dlZXRcLWdpdmVuXC1vblwtYVwtaGFwcHlcLW9jY2FzaW9uXC1cKGVzcFwuXC13ZWRkaW5nXCk7Civmi5zlo70gPiBjb25ncmF0dWxhdGVcLWFuXC1lbGRlcmx5XC1wZXJzb25cLW9uXC1oaXNcLWJpcnRoZGF5Owor5Lim6KGMID4gaW5cLXBhcmFsbGVsXC1cW2RldmVsb3BtZW50XCxcLWltcGxlbWVudGF0aW9uXCxcLWV0Y1xdOwor5Lyv5p2wID4gXChzYW11ZWxcKVwtYmVyZ2VyXC1cKHVzXC1uYXRpb25hbFwtc2VjdXJpdHlcLWFkdmlzb3JcKTsKK+adseebnyA+IGFzZWFuXC1cKGFzc29jaWF0aW9uXC1vZlwtc291dGhlYXN0XC1hc2lhblwtbmF0aW9uc1wpOwor5pu+57aTID4gXChyZWZlcnNcLXRvXC1zb21ldGhpbmdcLXRoYXRcLWhhcHBlbmVkXC1wcmV2aW91c2x5XCk7Civlj6/oposgPiBpdFwtY2FuXC1jbGVhcmx5XC1iZVwtc2VlblwtXCh0aGF0XC10aGlzXC1pc1wtdGhlXC1jYXNlXCk7CivmhbDllY8gPiBleHByZXNzXC1zeW1wYXRoeVwsXC1ncmVldGluZ3NcLFwtY29uc29sYXRpb25cLFwtZXRjXC47CivmtbflvrcgPiBoeWRlXC1cKGVnXCxcLWhvdXNlXC1qdWRpY2lhcnlcLWNoYWlybWFuXC1oZW5yeVwtaHlkZVwpOwor576F5pavID4gcm90aFwtXChlZ1wsXC1ocndcLWV4ZWN1dGl2ZVwtZGlyZWN0b3JcLWtlbm5ldGhcLXJvdGhcKTsKK+aXgeiBvSA+IGJlXC1hXC12aXNpdG9yXC1cKGF0XC1hXC1tZWV0aW5nXCxcLWNsYXNzXCxcLXRyaWFsXCxcLWV0Y1wpOwor5o6o6L6tID4gdG9cLWRlY2xpbmVcLVwoYW5cLWFwcG9pbnRtZW50XCxcLWludml0YXRpb25cLFwtZXRjXC5cKTsKK+eZveeXoiA+IGR5c2VudGVyeVwtY2hhcmFjdGVyaXplZFwtYnlcLXdoaXRlXC1tdWNvdXNcLXN0b29sOwor6I+v5L2XID4gbmFtZVwtb2ZcLWFcLWZhbW91c1wtZG9jdG9yXC1pblwtb2xkXC10aW1lc1wsXC1odWFcLXR1bzsKK+ajkuanjCA+IHdvb2RlblwtY2x1YlwtXCh1c2VkXC10b1wtYmVhdFwtY2xvdGhlc1wtaW5cLXdhc2hpbmdcKTsKK+WQnuWQkCA+IHRvXC10YWtlXC1pblwtYW5kXC1zZW5kXC1vdXRcLVwoaW5cLWxhcmdlXC1xdWFudGl0aWVzXCk7CivmlrfmqYsgPiB0aGVcLWJyb2tlblwtYnJpZGdlXC1cKGF0XC13ZXN0XC1sYWtlXC1pblwtaGFuZ3pob3VcKTsKK+awo+WKnyA+IHFpZ29uZ1wsXC1hXC1zeXN0ZW1cLW9mXC1kZWVwXC1icmVhdGhpbmdcLWV4ZXJjaXNlczsKK+ecgee0miA+IHByb3ZpbmNpYWxcLWxldmVsXC1cKGVnXCxcLXByb3ZpbmNpYWxcLWdvdmVybm1lbnRcKTsKK+atpuaJkyA+IGFjcm9iYXRpY1wtZmlnaHRpbmdcLWluXC1jaGluZXNlXC1vcGVyYVwtb3JcLWRhbmNlOwor5aCx5aSxID4gcmVwb3J0XC10aGVcLWxvc3NcLXRvXC10aGVcLWF1dGhvcml0aWVzXC1jb25jZXJuZWQ7Civkv53ppIogPiB0YWtlXC1nb29kXC1jYXJlXC1vZlwtXChvclwtY29uc2VydmVcKVwtb25lJydzXC1oZWFsdGg7CivlubPkv6EgPiBvcmRpbmFyeVwtbWFpbFwtXChhc1wtb3Bwb3NlZFwtdG9cLWFpclwtbWFpbFwsXC1ldGNcLlwpOwor5YiG5LqrID4gb2J0YWluXC1vbmUnJ3NcLXNoYXJlXC1cKG9mXC13ZWFsdGhcLFwtcmlnaHRzXCxcLWV0Y1wuXCk7CivntIXloKEgPiByZWRcLWZvcnRcLVwoaGlzdG9yaWNcLWJ1aWxkaW5nXC1pblwtZGVsaGlcLFwtaW5kaWFcKTsKK+WFg+WutSA+IHN3ZWV0XC1kdW1wbGluZ3NcLW1hZGVcLW9mXC1nbHV0aW5vdXNcLXJpY2VcLWZsb3VyOwor6Ieo5a+rID4gdG9cLWNvcHlcLVwoYVwtbW9kZWxcLW9mXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nXCk7CivmnIjppIUgPiBtb29uXC1jYWtlXC1cKGVzcFwuXC1mb3JcLXRoZVwtbWlkXC1hdXR1bW5cLWZlc3RpdmFsXCk7CivmioTlrrYgPiB0b1wtc2VhcmNoXC1hXC1ob3VzZVwtYW5kXC1jb25maXNjYXRlXC1wb3NzZXNzaW9uczsKK+acg+imiyA+IHRvXC1tZWV0XC13aXRoXC1cKHNvbWVvbmVcLXdob1wtaXNcLXBheWluZ1wtYVwtdmlzaXRcKTsKK+Wkp+iIiSA+IGNhcnJ5XC1vdXRcLWFcLWxhcmdlXC1zY2FsZVwtXChtaWxpdGFyeVwpXC1vcGVyYXRpb247Civml6XmvLggPiBcKGtlZXBcLWluY3JlYXNpbmdcLFwtY2hhbmdpbmdcLFwtZXRjXC5cKVwtZGF5XC1ieVwtZGF5Owor6K2w5bitID4gc2VhdFwtaW5cLWFcLXBhcmxpYW1lbnRcLW9yXC1sZWdpc2xhdGl2ZVwtYXNzZW1ibHk7CivpgJrnt50gPiB3YW50ZWRcLWJ5XC10aGVcLXBvbGljZVwtXChmdWdpdGl2ZVwtb3JcLWNyaW1pbmFsXCk7CivnnJ/ntI0gPiBcKG1vaGFtbWFkXC1hbGlcKVwtamlubmFoXC1cKGZvdW5kZXJcLW9mXC1wYWtpc3RhblwpOwor6a2v6LOTID4gcnViaW5cLVwoZWdcLFwtdHJlYXN1cnlcLXNlY3JldGFyeVwtcm9iZXJ0XC1ydWJpblwpOwor5Yqb5a+2ID4gbGlwcG9cLVwoZ3JvdXBcKVwtXChpbmRvbmVzaWFuXC1idXNpbmVzc1wtY29uY2VyblwpOwor5YG06YuSID4gb2JsaXF1ZVwtYXR0YWNrXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivltIfnpo4gPiBjaG9uZ3poZW5cLFwtbGFzdFwtZW1wZXJvclwtb2ZcLXRoZVwtbWluZ1wtZHluYXN0eTsKK+eZveWtlyA+IHdyb25nbHlcLXdyaXR0ZW5cLWFuZFwtbWlzcHJvbm91bmNlZFwtY2hhcmFjdGVyOwor5bCN562WID4gY291bnRlcm1lYXN1cmVcLWZvclwtZGVhbGluZ1wtd2l0aFwtYVwtc2l0dWF0aW9uOwor562G5YqbID4gdmlnb3VyXC1vZlwtc3Ryb2tlc1wtaW5cLWNhbGxpZ3JhcGh5XC1vclwtZHJhd2luZzsKK+e9sOmFkiA+IHRvXC1kcmlua1wtYXNcLXRoZVwtcmVzdWx0XC1vZlwtaGF2aW5nXC1sb3N0XC1hXC1iZXQ7CivmmJ/pq5QgPiBjZWxlc3RpYWxcLWJvZHlcLVwoZWdcLFwtcGxhbmV0XCxcLXNhdGVsbGl0ZVwsXC1ldGNcKTsKK+S4u+euoSA+IFwoYmVcKVwtcGVyc29uXC1pblwtY2hhcmdlXC1vZlwtXChhXC1wb3NpdGlvblwsXC1ldGNcLlwpOwor5q2l6Z+7ID4gdG9cLXdyaXRlXC1hXC1wb2VtXC11c2luZ1wtYW5vdGhlclwtcG9lbScnc1wtcmh5bWVzOwor5Y+j5rCjID4gXChmcmllbmRseVwtb3JcLXVuZnJpZW5kbHlcKVwtdG9uZVwtXChvZlwtY29tbWVudHNcKTsKK+ato+mLkiA+IGZyb250YWxcLWF0dGFja1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5pif55CDID4gY2VsZXN0aWFsXC1ib2R5XC1cKGVnXCxcLXBsYW5ldFwsXC1zYXRlbGxpdGVcLFwtZXRjXCk7CivkuIvkvoYgPiBcKHZlcmJcLXN1ZmZpeFwtaW5kaWNhdGluZ1wtY29udGludWF0aW9uXCxcLWV0Y1wuXCk7Civlubnpg6ggPiBhXC1jYWRyZVwtXChpZVwsXC1tYW5hZ2VyXCxcLXN0YWZmXCxcLW9mZmljZXJcLFwtZXRjXC5cKTsKK+aOpee0jSA+IGFkbWl0XC1cKGludG9cLW1lbWJlcnNoaXBcLW9mXC1hblwtb3JnYW5pemF0aW9uXCk7CivmiorpoqggPiBrZWVwXC13YXRjaFwtXChkdXJpbmdcLWFcLWNsYW5kZXN0aW5lXC1hY3Rpdml0eVwpOwor5YKZ6ICVID4gbWFrZVwtcHJlcGFyYXRpb25zXC1mb3JcLXBsb3VnaGluZ1wtYW5kXC1zb3dpbmc7CivmkqXlhpcgPiBmaW5kXC10aW1lXC1pblwtdGhlXC1taWRzdFwtb2ZcLXByZXNzaW5nXC1hZmZhaXJzOwor5qC96LSTID4gdG9cLWZyYW1lXC1zb21lb25lXC1cKGJ5XC1wbGFudGluZ1wtc3RoXC1vblwtdGhlbVwpOwor5o+b5Y+WID4gZ2l2ZVwtc29tZXRoaW5nXC1hbmRcLWdldFwtc29tZXRoaW5nXC1pblwtcmV0dXJuOwor5YG95pu4ID4gXChmb3JnZWRcLFwtZHViaW91c1wsXC1taXNjbGFzc2lmaWVkXClcLW9sZFwtYm9va3M7CivnsL/lhoogPiBib29rc1wtZm9yXC10YWtpbmdcLW5vdGVzXC1vclwta2VlcGluZ1wtYWNjb3VudHM7CivkuIrou4ogPiB0b1wtZ2V0XC1vblwtb3JcLWludG9cLVwoYVwtYnVzXCxcLXRyYWluXCxcLWNhclwtZXRjXC5cKTsKK+ethuS4iyA+IHRoZVwtd29yZGluZ1wtYW5kXC1wdXJwb3J0XC1vZlwtd2hhdFwtb25lXC13cml0ZXM7Civkvr/lh70gPiBhblwtaW5mb3JtYWxcLWxldHRlclwtc2VudFwtYnlcLWFuXC1vcmdhbml6YXRpb247CivpppbluK0gPiBjaGllZlwtXChyZXByZXNlbnRhdGl2ZVwsXC1jb3JyZXNwb25kZW50XCxcLWV0Y1wpOwor6LSF5am/ID4gc29uXC1pblwtbGF3XC1saXZpbmdcLWF0XC13aWZlJydzXC1wYXJlbnQnJ3NcLWhvdXNlOwor6JmV5pa8ID4gYmVcLVwoaW5cLXNvbWVcLXN0YXRlXCxcLXBvc2l0aW9uXCxcLW9yXC1jb25kaXRpb25cKTsKK+aVl+ethiA+IGFcLWZhdWx0eVwtc3Ryb2tlXC1pblwtY2FsbGlncmFwaHlcLW9yXC1wYWludGluZzsKK+WHuui3ryA+IGFcLXdheVwtb3V0XC1cKG9mXC1hXC1kaWZmaWN1bHRcLXNpdHVhdGlvblwsXC1ldGNcKTsKK+W6puaXpSA+IHNjcmF0Y2hcLW91dFwtYVwtZGlmZmljdWx0XCxcLW1lYWdlclwtZXhpc3RlbmNlOwor5aCx5qGIID4gcmVwb3J0XC1hXC1jYXNlXC10b1wtdGhlXC1zZWN1cml0eVwtYXV0aG9yaXRpZXM7CivlhbXmupAgPiBtYW5wb3dlclwtcmVzb3VyY2VzXC1cKGZvclwtbWlsaXRhcnlcLXNlcnZpY2VcKTsKK+aciembuyA+IFwob2ZcLWFcLWR3ZWxsaW5nXClcLXN1cHBsaWVkXC13aXRoXC1lbGVjdHJpY2l0eTsKK+izgeiHqCA+IFwob2ZcLWRpc3Rpbmd1aXNoZWRcLWd1ZXN0c1wpXC1ob25vdXJcLW15XC1ob3VzZTsKK+advuS4iyA+IG1hdHN1c2hpdGFcLVwoamFwYW5lc2VcLWVsZWN0cm9uaWNzXC1jb21wYW55XCk7CivkuI3lppkgPiBcKG9mXC1hXC10dXJuXC1vZlwtZXZlbnRzXClcLW5vdFwtdG9vXC1lbmNvdXJhZ2luZzsKK+WLieW8tyA+IG1hbmFnZVwtXCh0b1wtZG9cLXNvbWV0aGluZ1wpXC13aXRoXC1kaWZmaWN1bHR5Owor5Yil54ShID4gaGF2ZVwtbm9cLW90aGVyXC1cKGNob2ljZVwsXC1hbHRlcm5hdGl2ZVwsXC1ldGNcKTsKK+WFrOe0hCA+IGNvbnZlbnRpb25cLVwoaWVcLFwtaW50ZXJuYXRpb25hbFwtYWdyZWVtZW50XCk7CivlubTluqYgPiB5ZWFyXC1cKGVnXCxcLXNjaG9vbFwteWVhclwsXC1maXNjYWxcLXllYXJcLFwtZXRjXCk7CivnrYbpoIYgPiBvcmRlclwtb2ZcLXN0cm9rZXNcLW9ic2VydmVkXC1pblwtY2FsbGlncmFwaHk7CivmiY7ph50gPiB0b1wtZ2l2ZVwtb3JcLWhhdmVcLWFuXC1hY3VwdW5jdHVyZVwtdHJlYXRtZW50Owor6KO95YqRID4gXChjaGVtaWNhbFwtb3JcLXBoYXJtYWNldXRpY2FsXClcLXByZXBhcmF0aW9uOwor6auU5pyDID4ga25vd1wtXCh0aHJvdWdoXC1sZWFybmluZ1wtb3JcLWJ5XC1leHBlcmllbmNlXCk7Civlgb3miZggPiBmYWtpbmdcLWFcLW1vZGVyblwtb2JqZWN0XC1hc1wtYW5cLWFuY2llbnRcLW9uZTsKK+a1t+mXnCA+IGN1c3RvbXNcLVwoaWVcLFwtYm9yZGVyXC1jcm9zc2luZ1wtaW5zcGVjdGlvblwpOwor56KR6KiYID4gYVwtcmVjb3JkXC1vZlwtZXZlbnRzXC1pbnNjcmliZWRcLW9uXC1hXC10YWJsZXQ7CivljIXovqYgPiB0YWtlXC1jYXJlXC1vZlwtZXZlcnl0aGluZ1wtY29uY2VybmluZ1wtYVwtam9iOwor5Ye66Z2iID4gYWN0XC1pblwtYVwtXChvZmZpY2lhbFwtb3JcLXBlcnNvbmFsXClcLWNhcGFjaXR5Owor55u46ZqUID4gYmVcLXNlcGFyYXRlZFwtYnlcLVwoZGlzdGFuY2VcLW9yXC10aW1lXCxcLWV0Y1wpOwor5pmC5aCxID4gXCJ0aW1lc1wiXC1cKG5ld3NwYXBlclwsXC1lZ1wsXC1uZXdcLXlvcmtcLXRpbWVzXCk7CivpgJroiKogPiBjb25uZWN0ZWRcLWJ5XC1haXJcfHNlYVwtdHJhZmZpY1wtb3JcLXNlcnZpY2U7CivpgbflsYUgPiB0b1wtbW92ZVwtXChmcm9tXC1vbmVcLXJlc2lkZW5jZVwtdG9cLWFub3RoZXJcKTsKK+W5tOS7oyA+IGFcLWRlY2FkZVwtb2ZcLWFcLWNlbnR1cnlcLVwoZWdcLFwtdGhlXC1zaXh0aWVzXCk7Civllqznn7MgPiBxaWFvXC1zaGlcLVwoY2hpbmVzZVwtbGVhZGVyc2hpcFwtY29udGVuZGVyXCk7CivosY7piaQgPiBcKHN0cmFpZ2h0XC1kb3duXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivmiJDmnKwgPiBcKG1hbnVmYWN0dXJpbmdcLFwtcHJvZHVjdGlvblwsXC1ldGNcLlwpXC1jb3N0czsKK+S7o+eQhiA+IGFjdGluZ1wtXCh0ZW1wb3JhcmlseVwtZmlsbGluZ1wtYVwtcG9zaXRpb25cKTsKK+WuouW7syA+IGRyYXdpbmdcLXJvb21cLVwocm9vbVwtZm9yXC1hcnJpdmluZ1wtZ3Vlc3RzXCk7Civok67pnKcgPiB3YXhcLWFwcGxlXC1cKGFcLXJlZGRpc2hcLXBlYXJcLXNoYXBlZFwtZnJ1aXRcKTsKK+mhjOewvSA+IHRvXC13cml0ZVwtdGhlXC10aXRsZVwtb2ZcLWFcLWJvb2tcLW9uXC1hXC1sYWJlbDsKK+iAgeS6jCA+IHRoZVwtc2Vjb25kXC1jaGlsZFwtb3JcLWJyb3RoZXJcLVwob3JcLXNpc3RlclwpOwor5Lit5Y2XID4gXChhYmJyZXZpYXRpb25cLWZvclwpXC1jaGluYVwtXC1cLXNvdXRoXC1hZnJpY2E7CivniYjmrKEgPiB0aGVcLW9yZGVyXC1pblwtd2hpY2hcLWVkaXRpb25zXC1hcmVcLXByaW50ZWQ7Civlj5flgrcgPiBzdWZmZXJcLWluanVyaWVzXC1cKGluXC1hblwtYWNjaWRlbnRcLFwtZXRjXC5cKTsKK+iogueriyA+IGFncmVlXC10b1wtXCh0cmVhdHlcLFwtY29udHJhY3RcLFwtYWdyZWVtZW50XCk7CivlpI/mm4YgPiB0aGVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1sdW5hclwtY2FsZW5kYXI7CivluKvnr4QgPiBub3JtYWxcLVwoZWdcLFwtYmVpamluZ1wtbm9ybWFsXC11bml2ZXJzaXR5XCk7Civlu6PloLQgPiBhXC1wdWJsaWNcLXNxdWFyZVwtXChlZ1wsXC10aWFuYW5tZW5cLXNxdWFyZVwpOwor6KOc56WoID4gYnV5XC1vbmUnJ3NcLXRpY2tldFwtYWZ0ZXJcLXRoZVwtbm9ybWFsXC10aW1lOwor55m854eSID4gaGF2ZVwtYVwtaGlnaFwtdGVtcGVyYXR1cmVcLVwoZnJvbVwtaWxsbmVzc1wpOwor55uG5ZywID4gYmFzaW5cLVwobG93XC1seWluZ1wtZ2VvZ3JhcGhpY2FsXC1mZWF0dXJlXCk7CivmiYvot6EgPiBzYlwuJydzXC1vcmlnaW5hbFwtaGFuZHdyaXRpbmdcLW9yXC1wYWludGluZzsKK+eSp+mChCA+IHJldHVyblwtXChhXC1ib3Jyb3dlZFwtb2JqZWN0XClcLXdpdGhcLXRoYW5rczsKK+ihqOWmuSA+IGZlbWFsZVwtY291c2luXC13aXRoXC1hXC1kaWZmZXJlbnRcLXN1cm5hbWU7Civmi4bmlaMgPiB0b1wtYnJlYWtcLXVwXC1cKGFcLW1hcnJpYWdlXCxcLWZhbWlseVwsXC1ldGNcLlwpOwor5YKZ5ZOBID4gbWFjaGluZVwtcGFydHNcLW9yXC10b29sc1wta2VwdFwtaW5cLXJlc2VydmU7Civpppbku7sgPiBmaXJzdFwtcGVyc29uXC10b1wtYmVcLWFwcG9pbnRlZFwtdG9cLWFcLXBvc3Q7Civpg6jplbcgPiBoZWFkXC1vZlwtYVwtXChnb3Zlcm5tZW50XCxcLWV0Y1wpXC1kZXBhcnRtZW50Owor5q+U6YePID4gdGFrZVwtcm91Z2hcLW1lYXN1cmVtZW50c1wtXCh3aXRoXC10aGVcLWhhbmQ7CivljZrmhJsgPiB1bml2ZXJzYWxcLWZyYXRlcm5pdHlcLVwob3JcLWJyb3RoZXJob29kXCk7CivmlZfngasgPiByZWxpZXZlXC1pbmZsYW1tYXRpb25cLW9yXC1pbnRlcm5hbFwtaGVhdDsKK+e2k+eHnyA+IGVuZ2FnZVwtaW5cLVwoYVwtYnVzaW5lc3NcLWFjdGl2aXR5XCxcLWV0Y1wuXCk7Civpm4bmiJAgPiBpbnRlZ3JhdGVkXC1cKGFzXC1pblwtaW50ZWdyYXRlZFwtY2lyY3VpdFwpOwor5pS/5aeUID4gcG9saXRpY2FsXC1jb21taXNzYXJcLVwod2l0aGluXC10aGVcLWFybXlcKTsKK+e3qOWwjiA+IHdyaXRlXC1hbmRcLWRpcmVjdFwtXChhXC1wbGF5XCxcLWZpbG1cLFwtZXRjXC5cKTsKK+ihjOmnmyA+IFwodmVoaWNsZXNcLFwtZXRjXC5cKVwtdHJhdmVsXC1hbG9uZ1wtYVwtcm91dGU7CivlhbXnqK4gPiBcKG1pbGl0YXJ5XClcLWJyYW5jaFwtb2ZcLXRoZVwtYXJtZWRcLWZvcmNlczsKK+mAvOWuriA+IGZvcmNlXC10aGVcLWtpbmdcLW9yXC1lbXBlcm9yXC10b1wtYWJkaWNhdGU7CivoiKrooYwgPiBzYWlsXC1vclwtZmx5XC1cKGluXC1haXJcLFwtd2F0ZXJcLFwtb3JcLXNwYWNlXCk7Civnm7jkv6EgPiBiZVwtY29udmluY2VkXC1cKHRoYXRcLXNvbWV0aGluZ1wtaXNcLXRydWVcKTsKK+aLlOenpyA+IHB1bGxcLXVwXC1zZWVkbGluZ3NcLVwoZm9yXC10cmFuc3BsYW50aW5nXCk7CivmiYvoo6EgPiBcKGFcLXNpdHVhdGlvblwtaXNcKVwtaW5cLVwoc29tZW9uZScnc1wpXC1oYW5kczsKK+aNleaSiCA+IGZpc2hcLWZvclwtXChhcXVhdGljXC1hbmltYWxzXC1hbmRcLXBsYW50c1wpOwor57C95ZCNID4gdG9cLXNpZ25cLVwob25lJydzXC1uYW1lXC13aXRoXC1hXC1wZW5cLFwtZXRjXC5cKTsKK+a/n+WNlyA+IGppJyduYW5cLVwoY2FwaXRhbFwtb2ZcLXNoYW5kb25nXC1wcm92aW5jZVwpOwor5bGP5qKdID4gc2V0XC1vZlwtXCh1c3VhbGx5XC1mb3VyXClcLWhhbmdpbmdcLXNjcm9sbHM7Civnqbbnq58gPiBhZnRlclwtYWxsXC1cKHdoZW5cLWFsbFwtaXNcLXNhaWRcLWFuZFwtZG9uZVwpOwor6Y6u5rGfID4gemhlbmppYW5nXC1cKGNpdHlcKVwsXC1pblwtamlhbmdzdVwtcHJvdmluY2U7CivkuLvnp5EgPiByZXF1aXJlZFwtY291cnNlc1wtaW5cLXRoZVwtbWFqb3JcLXN1YmplY3Q7Civnj63lupUgPiBvcmRpbmFyeVwtbWVtYmVyc1wtb2ZcLXRoZWF0cmljYWxcLXRyb3VwZTsKK+mHkee8vSA+IFwoZ29sZFwpXC1hbG1zXC1ib3dsXC1cKG9mXC1hXC1idWRkaGlzdFwtbW9ua1wpOwor6IGv5ZCNID4gam9pbnRseVwtXChzaWduZWRcLFwtZGVjbGFyZWRcLFwtc3BvbnNvcmVkXCk7CivkuIvmprsgPiBzdGF5XC1hdFwtXChhXC1ob3RlbFwsXC1ldGNcLlwtZHVyaW5nXC1hXC10cmlwXCk7CivoqJjov7AgPiBtYWtlXC1hXC1kZXNjcmlwdGl2ZVwtcmVjb3JkXC1cKG9mXC1ldmVudHNcKTsKK+aal+WCtyA+IGludGVybmFsXC1cKGludmlzaWJsZVwpXC1pbmp1cnlcLVwoZGFtYWdlXCk7CivlpKrmuZYgPiB0YWlcLWh1XC1sYWtlXCxcLWFcLWJpZ1wtbGFrZVwtYnlcLXd1eGlcLWNpdHk7CivmqavpiaQgPiBcKGhvcml6b250YWxcLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+WMl+WuiyA+IHRoZVwtbm9ydGhlcm5cLXNvbmdcLWR5bmFzdHlcLVwoOTYwXC0xMTI3XCk7CivphInkuIsgPiBjb3VudHJ5XC1cKGFzXC1vcHBvc2VkXC10b1wtdG93blwtb3JcLWNpdHlcKTsKK+ewveiogiA+IHRvXC1hZ3JlZVwtdG9cLWFuZFwtc2lnblwtXChhXC10cmVhdHlcLFwtZXRjXCk7Civlop7lgLwgPiBhcHByZWNpYXRpb25cLVwob2ZcLWFcLWNhclwsXC1ob3VzZVwsXC1ldGNcLlwpOwor5YW15a62ID4gbWlsaXRhcnlcLXN0cmF0ZWdpc3RcLWluXC1hbmNpZW50XC1jaGluYTsKK+iLseWwuiA+IFwoZW5nbGlzaFwpXC1mb290XC1cKHVuaXRcLW9mXC1tZWFzdXJlbWVudFwpOwor5req6Zm3ID4gXCh0ZXJyaXRvcnlcKVwtZmFsbFwtdG9cLWVuZW15XC1vY2N1cGF0aW9uOwor5Lq66YG4ID4gcGVyc29uXChzXClcLXNlbGVjdGVkXC1cKGZvclwtYVwtam9iXCxcLWV0Y1wuXCk7CivmnIPplbcgPiBwcmVzaWRlbnRcLW9mXC1hXC1jbHViXCxcLWNvbW1pdHRlZVwsXC1ldGNcLjsKK+Wvq+aIkCA+IHRvXC1jb21waWxlXC1cKGZhc2hpb25cLXRocm91Z2hcLXdyaXRpbmdcKTsKK+WQnumHkSA+IHRvXC1jb21taXRcLXN1aWNpZGVcLWJ5XC1zd2FsbG93aW5nXC1nb2xkOwor5p2/55y8ID4gbWVhc3VyZVwtaW5cLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1tdXNpYzsKK+mmluW6nCA+IGNhcGl0YWxcLWNpdHlcLW9mXC1hblwtYXV0b25vbW91c1wtcmVnaW9uOwor54+t5qyhID4gb3JkZXJcLW9mXC1jbGFzc2VzXC1vclwtZ3JhZGVzXC1hdFwtc2Nob29sOwor6LK05beeID4gbmFtZVwtb2ZcLWFcLXByb3ZpbmNlXC1pblwtY2hpbmFcLFwtZ3VpemhvdTsKK+iTi+iMqCA+IFwoYmlsbFwpXC1nYXRlc1wtXChjaGFpcm1hblwtb2ZcLW1pY3Jvc29mdFwpOwor5ZC45byVID4gYXR0cmFjdFwtXChpbnRlcmVzdFwsXC1pbnZlc3RtZW50XCxcLWV0Y1wuXCk7CivmmpflqLwgPiB1bmxpY2Vuc2VkXC1cKHVucmVnaXN0ZXJlZFwpXC1wcm9zdGl0dXRlOwor6Zy4546LID4geGlhbmc0eXUzXC1cKDIzMlwtMjAyXC1iY1wpXC10aGVcLWNvbnF1ZXJvcjsKK+WjveemriA+IGJpcnRoZGF5XC1wcmVzZW50XC1cKGZvclwtYW5cLW9sZFwtcGVyc29uXCk7CivokKznuKMgPiB3YW54aWFuXC1jb3VudHlcLFwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5YW16YOoID4gdGhlXC1taW5pc3RyeVwtb2ZcLXdhclwtaW5cLWZldWRhbFwtY2hpbmE7CivljJflkaggPiB0aGVcLW5vcnRoZXJuXC16aG91XC1keW5hc3R5XC1cKDU1N1wtNTgxXCk7CivljJfkuqwgPiBiZWlqaW5nXC1cKGNhcGl0YWxcLW9mXC1tYWlubGFuZFwtY2hpbmFcKTsKK+iNieahiCA+IGRyYWZ0XC1cKGxlZ2lzbGF0aW9uXCxcLXByb3Bvc2FsXCxcLWV0Y1wuXCk7CivopqrmhJsgPiBkZWFyXC1cLlwuXC5cLVwod2F5XC1vZlwtc3RhcnRpbmdcLWFcLWxldHRlclwpOwor6KOc55m9ID4gZmlsbGVyXC1cKGluXC1hXC1uZXdzcGFwZXJcLW9yXC1tYWdhemluZVwpOwor6IiJ6KGMID4gdG9cLWhvbGRcLVwoYVwtbWVldGluZ1wsXC1jZXJlbW9ueVwsXC1ldGNcLlwpOwor5L+d6YCBID4gcmVjb21tZW5kXC1cKGZvclwtYWRtaXNzaW9uXC10b1wtc2Nob29sXCk7CivovYnluLMgPiB0cmFuc2ZlclwtbW9uZXlcLWZyb21cfGludG9cLWFuXC1hY2NvdW50Owor5bit5L2NID4gcGFybGlhbWVudGFyeVwtb3JcLWNvbmdyZXNzaW9uYWxcLXNlYXQ7CivluIPku4AgPiBcKGdlb3JnZVwpXC1idXNoXC1cKGZvcm1lclwtdXNcLXByZXNpZGVudFwpOwor5a+p6KiKID4gYVwtXChqdWRpY2lhbFwpXC10cmlhbFwtXChpblwtYVwtY291cnRyb29tXCk7CivnrYbmob8gPiB0aGVcLXNoYWZ0XC1vZlwtYVwtcGVuXC1vclwtd3JpdGluZ1wtYnJ1c2g7Civnl4Xli6IgPiBkZWdyZWVcLW9mXC1zZXJpb3VzbmVzc1wtb2ZcLWFuXC1pbGxuZXNzOwor5Li76L6mID4gaG9zdFwtXChhXC1jb25mZXJlbmNlXC1vclwtc3BvcnRzXC1ldmVudFwpOwor5pys6I2JID4gYVwtYm9va1wtb25cLWNoaW5lc2VcLVwoaGVyYmFsXClcLW1lZGljaW5lOwor5Lq654mpID4gY2hhcmFjdGVyc1wtXChpblwtYVwtcGxheVwsXC1ub3ZlbFwsXC1ldGNcLlwpOwor6K2w6ZW3ID4gc3BlYWtlclwtXChvZlwtYVwtbGVnaXNsYXRpdmVcLWFzc2VtYmx5XCk7CivlronljZcgPiBcW2tvZmlcXVwtYW5uYW5cLVxbdW5cLXNlY3JldGFyeVwtZ2VuZXJhbFxdOwor5YyF6aOvID4gZ2V0XC1vclwtc3VwcGx5XC1tZWFsc1wtYXRcLWFcLWZpeGVkXC1yYXRlOwor5pyJ5rC0ID4gXChvZlwtYVwtZHdlbGxpbmdcKVwtc3VwcGxpZWRcLXdpdGhcLXdhdGVyOwor6Kmx6aGMID4gc3ViamVjdFwtXChvZlwtYVwtdGFsa1wtb3JcLWNvbnZlcnNhdGlvblwpOwor5LqL5YuZID4gXChwb2xpdGljYWxcLFwtZWNvbm9taWNcLFwtZXRjXC5cKVwtYWZmYWlyczsKK+WSseWAkSA+IHdlXC1cKGluY2x1ZGluZ1wtdGhlXC1wZXJzb25cLXNwb2tlblwtdG9cKTsKK+eOh+WFiCA+IHRha2VcLXRoZVwtbGVhZFwtXChzaG93aW5nXC1pbml0aXRhdGl2ZVwpOwor5YyF56efID4gcmVudFwtbGFuZFwtb3JcLWFcLWhvdXNlXC1mb3JcLXN1YmxldHRpbmc7CivmmI7mlocgPiBcKGxhd3NcLFwtcnVsZXNcLFwtZXRjXClcLXN0YXRlXC1pblwtd3JpdGluZzsKK+mAj+imliA+IHRvXC1leGFtaW5lXC1ieVwtZmx1b3Jvc2NvcGVcLW9yXC14XC1yYXk7CivloLHoraYgPiByZXBvcnRcLVwoYW5cLWluY2lkZW50XClcLXRvXC10aGVcLXBvbGljZTsKK+eikeW4liA+IGFcLXJ1YmJpbmdcLWZyb21cLWFcLXN0b25lXC1pbnNjcmlwdGlvbjsKK+eJm+W5tCA+IHllYXJcLW9mXC10aGVcLW94XC1cKGluXC1jaGluZXNlXC16b2RpYWNcKTsKK+WMheW7giA+IGJveFwtXChpblwtYVwtdGhlYXRyZVwtb3JcLWNvbmNlcnRcLWhhbGxcKTsKK+i9ieiukyA+IHRyYW5zZmVyXC1cKHRlY2hub2xvZ3lcLFwtZ29vZHNcLFwtZXRjXC5cKTsKK+ebnOeJiCA+IHBpcmF0ZVwtdmVyc2lvblwtXChvZlwtc29mdHdhcmVcLFwtZVwuZ1wuXCk7Civnt6Pku70gPiBmYXRlXC1cKHdoaWNoXC1icmluZ3NcLXBlb3BsZVwtdG9nZXRoZXI7CivlubPlo6QgPiBweW9uZ3lhbmdcLVwoY2FwaXRhbFwtb2ZcLW5vcnRoXC1rb3JlYVwpOwor5pOU5Lu7ID4gaG9sZFwtYVwtZ292ZXJubWVudGFsXC1vZmZpY2VcLW9yXC1wb3N0Owor5YWL5pyNID4gXCh0cnlcLXRvXClcLW92ZXJjb21lXC1cKGhhcmRzaGlwc1wsXC1ldGNcKTsKK+aKhOmAgSA+IHRvXC1tYWtlXC1hXC1jb3B5XC1cKGFuZFwtc2VuZFwtaXRcLXRvXC1zYlwpOwor5qGI6amXID4gaW52ZXN0aWdhdGVcLXRoZVwtZXZpZGVuY2VcLW9mXC1hXC1jYXNlOwor5omY6YGLID4gdG9cLWJvb2tcLW9yXC1jaGVja1wtdGhyb3VnaFwtXChiYWdnYWdlXCk7CivmiLbpg6ggPiBmZXVkYWxcLWNoaW5lc2VcLW1pbmlzdHJ5XC1vZlwtcmV2ZW51ZTsKK+aOqOWLlSA+IHRvXC1wdXNoXC1cKGZvclwtYWNjZXB0YW5jZVwtb2ZcLWFcLXBsYW5cKTsKK+S6nui7jSA+IHNlY29uZFwtcGxhY2VcLVwoaW5cLWFcLXNwb3J0c1wtY29udGVzdFwpOwor6aGP6auUID4geWFuXC1zdHlsZVwtXChpblwtY2hpbmVzZVwtY2FsbGlncmFwaHlcKTsKK+S5hemBlSA+IFwoaGF2ZW4nJ3RcLWRvbmVcLXN0aFwpXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivpppnlsbEgPiBmcmFncmFuY2VcLWhpbGxcLVwoYVwtcGFya1wtaW5cLWJlaWppbmdcKTsKK+mKt+avgCA+IHRvXC1kZXN0cm95XC1cKGJ5XC1tZWx0aW5nXC1vclwtYnVybmluZ1wpOwor5YyX6a2PID4gdGhlXC1ub3J0aGVyblwtd2VpXC1keW5hc3R5XC1cKDM4NlwtNTM0XCk7CivmmrTnl4UgPiBzdWRkZW5cLWF0dGFja1wtb2ZcLWFcLXNlcmlvdXNcLWlsbG5lc3M7CivkurrlpKcgPiBcKGNoaW5hXClcLW5hdGlvbmFsXC1wZW9wbGUnJ3NcLWNvbmdyZXNzOwor54ax6aynID4gYnVzdGxpbmdcLXdpdGhcLW5vaXNlXC1hbmRcLWV4Y2l0ZW1lbnQ7CivlkYjmlocgPiBwZXRpdGlvblwtXChzdWJtaXR0ZWRcLXRvXC1hXC1zdXBlcmlvclwpOwor5pil56+AID4gc3ByaW5nXC1mZXN0aXZhbFwtXChjaGluZXNlXC1uZXdcLXllYXJcKTsKK/CgvLsgPiBhXC1wYXJ0aWNsZVwtdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+aWsOeWhiA+IHhpbmppYW5nXC1cKHV5Z3VyXC1hdXRvbm9tb3VzXC1yZWdpb25cKTsKK+e2sue1oSA+IFwoY29tcHV0ZXJcLFwtdGVsZWNvbVwsXC1ldGNcLlwpXC1uZXR3b3JrOwor5aOB5q+vID4gdGFwZXN0cnlcLVwodXNlZFwtYXNcLWFcLXdhbGxcLWhhbmdpbmdcKTsKK+aTpua+oSA+IHJ1Ylwtb25lc2VsZlwtZG93blwtd2l0aFwtYVwtd2V0XC10b3dlbDsKK+iqjeWumiA+IG1haW50YWluXC1cKHRoYXRcLXNvbWV0aGluZ1wtaXNcLXRydWVcKTsKK+WIhuatpyA+IGRpZmZlcmVuY2VcLVwob2ZcLW9waW5pb25cLFwtcG9zaXRpb25cKTsKK+mAo+aIsCA+IGxpZW5cLWNoYW5cLVwodGFpd2FuXC12aWNlXC1wcmVzaWRlbnRcKTsKK+WItuW6piA+IFwocG9saXRpY2FsXClcLXN5c3RlbVwtb3JcLWluc3RpdHV0aW9uOwor6KOc57+SID4gdGFrZVwtbGVzc29uc1wtYWZ0ZXJcLXNjaG9vbFwtb3JcLXdvcms7Civlu7rkuqQgPiB0b1wtZXN0YWJsaXNoXC1kaXBsb21hdGljXC1yZWxhdGlvbnM7Civngavngb0gPiBmaXJlXC1cKHRoYXRcLWJ1cm5zXC1idWlsZGluZ3NcLFwtZXRjXC5cKTsKK+WCmeiqsiA+IFwob2ZcLWFcLXRlYWNoZXJcKVwtdG9cLXByZXBhcmVcLWxlc3NvbnM7CivplovmvJQgPiBcKG9mXC1hXC1wbGF5XCxcLW1vdmllXCxcLWV0Y1wuXClcLXRvXC1iZWdpbjsKK+WCmeiNkiA+IHByZXBhcmVcLWFnYWluc3RcLW5hdHVyYWxcLWRpc2FzdGVyczsKK+WFqOacgyA+IHBsZW5hcnlcLXNlc3Npb25cLVwoYXRcLWFcLWNvbmZlcmVuY2VcKTsKK+S+v+mboyA+IHJldG9ydFwtd2l0aFwtY2hhbGxlbmdpbmdcLXF1ZXN0aW9uczsKK+etlOi+ryA+IHRvXC1yZXBseVwtXCh0b1wtYW5cLWFjY3VzYXRpb25cLFwtZVwuZ1wuXCk7CivlnJbmm7ggPiBib29rc1wtXChpblwtYVwtbGlicmFyeVwtb3JcLWJvb2tzdG9yZVwpOwor5a626ZW3ID4gdGhlXC1wYXJlbnRcLW9yXC1ndWFyZGlhblwtb2ZcLWFcLWNoaWxkOwor5Zue5q24ID4gdG9cLXJldHVyblwtXCh0b1wtcHJldmlvdXNcLWNvbmRpdGlvblwpOwor6aqo5rOVID4gYm9uZVwtXChwcm9wZXJ0eVwtb2ZcLWFcLWJydXNoXC1zdHJva2VcKTsKK+enkemahiA+IGNvbG9nbmVcLFwtZ2VybWFueVwtb3JcLWNvbG9uXCxcLXBhbmFtYTsKK+aJk+a2iCA+IGRpc3BlbFwtXChkb3VidHNcLFwtbWlzZ2l2aW5nc1wsXC1ldGNcLlwpOwor5om+5YiwID4gZmluZFwtXCh3aGF0XC1vbmVcLXdhc1wtc2VhcmNoaW5nXC1mb3JcKTsKK+WPrOmWiyA+IGNvbnZlbmVcLVwoYVwtY29uZmVyZW5jZVwtb3JcLW1lZXRpbmdcKTsKK+WRvOexsiA+IGNhbGxcLW9uXC1cKHNvbWVvbmVcLXRvXC1kb1wtc29tZXRoaW5nXCk7Civnp5HniL4gPiBcKGhlbG11dFwpXC1rb2hsXC1cKGdlcm1hblwtY2hhbmNlbGxvclwpOwor6b2L5pyIID4gcmFtYWRhblwtXChtdXNsaW1cLW1vbnRoXC1vZlwtZmFzdGluZ1wpOwor6LW35L6GID4gYmVnaW5uaW5nXC1vclwtY29udGludWluZ1wtYW5cLWFjdGlvbjsKK+WMl+m9iiA+IHRoZVwtbm9ydGhlcm5cLXFpXC1keW5hc3R5XC1cKDU1MFwtNTU3XCk7CivlkJDnqZcgPiB0b1wtaGF2ZVwtdGhlXC1lYXJzXC1vZlwtZ3JhaW5cLWNvbWVcLXVwOwor6KuL6aGYID4gcGV0aXRpb25cLVwoZm9yXC1hY3Rpb25cLXRvXC1iZVwtdGFrZW5cKTsKK+S6q+WPlyA+IHRvXC1lbmpveVwtXChyaWdodHNcLFwtYmVuZWZpdHNcLFwtZXRjXC5cKTsKK+S4ieWzvSA+IHRoZVwtdGhyZWVcLWNoYW5namlhbmdcLXJpdmVyXC1nb3JnZXM7Civlj5bmmpYgPiB0b1wtd2FybVwtb25lc2VsZlwtXChieVwtYVwtZmlyZVwsXC1ldGNcLlwpOwor6Zmi6ZW3ID4gcHJlc2lkZW50XC1cKG9mXC1hXC11bml2ZXJzaXR5XCxcLWV0Y1wuXCk7CivoqIDoq5YgPiBleHByZXNzaW9uXC1vZlwtXChwb2xpdGljYWxcKVwtb3BpbmlvbjsKK+aUv+eVjCA+IHBvbGl0aWNhbFwtYW5kXC1nb3Zlcm5tZW50XC1jaXJjbGVzOwor5oCn5YilID4gZGlzdGluZ3Vpc2hpbmdcLWJldHdlZW5cLXRoZVwtc2V4ZXM7CivpgZXnpoEgPiB0b1wtdmlvbGF0ZVwtYVwtcHJvaGlidGl0aW9uXC1vclwtYmFuOwor6YWs5ZKMID4gdG9cLXJlc3BvbmRcLXRvXC1hXC1wb2VtXC13aXRoXC1hXC1wb2VtOwor5aCx6ICDID4gZW50ZXJcLW9uZXNlbGZcLWZvclwtYW5cLWV4YW1pbmF0aW9uOwor5YyX5ZyLID4gdGhlXC1ub3J0aGVyblwtcGFydFwtb2ZcLXRoZVwtY291bnRyeTsKK+WkluWtqyA+IGdyYW5kc29uXC1cKHNvblwtb2ZcLW9uZScnc1wtZGF1Z2h0ZXJcKTsKK+Wkp+WciyA+IGFcLXBvd2VyXC1cKGllXCxcLWFcLWRvbWluYW50XC1jb3VudHJ5XCk7CivmjqLopqogPiB0b1wtZ29cLWhvbWVcLXRvXC12aXNpdFwtb25lJydzXC1mYW1pbHk7Civpm6Pku6UgPiBoYXJkXC10b1wtXChwcmVkaWN0XCxcLWltYWdpbmVcLFwtZXRjXC5cKTsKK+WgseaViCA+IHJlbmRlclwtc2VydmljZVwtdG9cLXJlcGF5XC1raW5kbmVzczsKK+imquaImiA+IFwoYVwpXC1yZWxhdGl2ZVwtXChpZVwsXC1mYW1pbHlcLW1lbWJlclwpOwor54K65pyfID4gXCh0b1wtYmVcLWRvbmVcKVwtYnlcLVwoYVwtY2VydGFpblwtZGF0ZVwpOwor6L6y5puGID4gdGhlXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtY2FsZW5kYXI7CivmjInoqqogPiBpblwtdGhlXC1vcmRpbmFyeVwtY291cnNlXC1vZlwtZXZlbnRzOwor6YCj5Lu7ID4gY29udGludWVcLWluXC1cKGFcLXBvbGl0aWNhbFwpXC1vZmZpY2U7Civoh4norZwgPiB0eXBlc1wtb2ZcLWZhY2lhbFwtbWFrZXVwXC1pblwtb3BlcmFzOwor6ZaL5bqtID4gYmVnaW5cLWFcLVwoanVkaWNpYWxcKVwtY291cnRcLXNlc3Npb247Civlhazlr6kgPiBwdWJsaWNcLXRyaWFsXC1cKGluXC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor5L2G6aGYID4gaWZcLW9ubHlcLVwoaXRcLXdlcmVcLXBvc3NpYmxlXC10b1wuXC5cLlwpOwor5o2o5b6XID4gdG9cLWJlXC13aWxsaW5nXC10b1wtcGFydFwtd2l0aFwtXChzdGhcKTsKK+aMgeaciSA+IGhvbGRcLVwoZWdcLFwtcGFzc3BvcnRcLFwtdmlld3NcLFwtZXRjXC5cKTsKK+aKl+eIrSA+IG1ha2VcLWFcLXN0YW5kXC1hbmRcLWZpZ2h0XC1cKGFnYWluc3RcKTsKK+evpuWtkCA+IGFcLWRvdWJsZVwtZWRnZWRcLWZpbmVcLXRvb3RoZWRcLWNvbWI7CivmipXmqZ8gPiBiZVwtYVwtc3BlY3VsYXRvclwtXChwcm9maXRcLXNlZWtpbmdcKTsKK+aMquWAnyA+IHRvXC1ib3Jyb3dcLW1vbmV5XC1mb3JcLWFcLXNob3J0XC10aW1lOwor5a6w55u4ID4gcHJpbWVcLW1pbmlzdGVyXC1cKGluXC1mZXVkYWxcLWNoaW5hXCk7CivomZvohZUgPiBlbXB0eVwtd3Jpc3RcLVwobWV0aG9kXC1vZlwtcGFpbnRpbmdcKTsKK+S4jeirliA+IG5vXC1tYXR0ZXJcLVwod2hhdFwsXC13aG9cLFwtaG93XCxcLWV0Y1wuXCk7Civkv53kv64gPiBndWFyYW50ZWVcLXRvXC1rZWVwXC1pblwtZ29vZFwtcmVwYWlyOwor6YeR6YKKID4gcGhub21cLXBlbmhcLVwoY2FwaXRhbFwtb2ZcLWNhbWJvZGlhXCk7CivkvrXkvZQgPiB0b1wtaW52YWRlXC1hbmRcLW9jY3VweVwtXCh0ZXJyaXRvcnlcKTsKK+afr+WvhiA+IGtlcm1pdFwtXChjb21tdW5pY2F0aW9uc1wtcHJvdG9jb2xcKTsKK+S6q+aciSA+IGVuam95XC1cKHJpZ2h0c1wsXC1wcml2aWxlZ2VzXCxcLWV0Y1wuXCk7Civnpq7ngq4gPiBhXC1ndW5cLXNhbHV0ZVwtXChlZ1wsXC0yMVwtZ3VuXC1zYWx1dGVcKTsKK+eqgeWOpSA+IHR1cmtpY1wtXChtaW5vcml0eVwtZ3JvdXBcLWluXC1jaGluYVwpOwor5a6J5L+dID4gXChhYmJyZXZpYXRpb25cKVwtbWFpbnRhaW5cLXNlY3VyaXR5Owor5aO96bq1ID4gYmlydGhkYXlcLW5vb2RsZXNcLVwoZm9yXC1sb25nZXZpdHlcKTsKK+a1tOWupCA+IGJhdGhyb29tXC1cKHJvb21cLXVzZWRcLWZvclwtYmF0aGluZ1wpOwor5Luk5Lq6ID4gY2F1c2VcLXNvbWVvbmVcLXRvXC1cKGJlXCxcLWZlZWxcLFwtZXRjXCk7CivpmaTpnZ4gPiBvbmx5XC1pZlwtXChcLlwuXC5cLFwtb3JcLW90aGVyd2lzZVwsXC1cLlwuXC5cKTsKK+atp+imliA+IGRpc2NyaW1pbmF0aW9uXC1cKGFnYWluc3RcLXNvbWVvbmVcKTsKK+aVl+iQvSA+IGRlY2xpbmVcLVwoaW5cLXdlYWx0aFwtYW5kXC1wb3NpdGlvblwpOwor54Sh6YyrID4gd3V4aVwtXChjaXR5XClcLFwtaW5cLWppYW5nc3VcLXByb3ZpbmNlOwor5pqX5ZCIID4gYWdyZWVcLXdpdGhvdXRcLXByaW9yXC1jb25zdWx0YXRpb247Civlp5DlpKsgPiBicm90aGVyXC1pblwtbGF3XC1cKGh1c2JhbmQnJ3NcLXNpZGVcKTsKK+eJueWNgCA+IHNwZWNpYWxcLVwoYWRtaW5pc3RyYXRpdmVcKVwtcmVnaW9uOwor5pel5ZyTID4gamFwYW5lc2VcLXllblwtXCh1bml0XC1vZlwtY3VycmVuY3lcKTsKK+WjgearpSA+IGFcLWJ1aWx0XC1pblwtd2FyZHJvYmVcLW9yXC1jdXBib2FyZDsKK+mBv+aakSA+IGJlXC1hd2F5XC1mb3JcLXRoZVwtc3VtbWVyXC1ob2xpZGF5czsKK+atpeaQliA+IGRhbmdsaW5nXC1vcm5hbWVudFwtd29yblwtYnlcLXdvbWVuOwor6YKm5LqkID4gcmVsYXRpb25zXC1iZXR3ZWVuXC10d29cLWNvdW50cmllczsKK+aPkOeFiSA+IHRvXC1leHRyYWN0XC1cKG9yZVwsXC1taW5lcmFsc1wsXC1ldGNcKTsKK+api+aOpSA+IGJyaWRnaW5nXC1cKGluXC1jb21wdXRlclwtbmV0d29ya3NcKTsKK+WFq+aWuSA+IHRoZVwtZWlnaHRcLXBvaW50c1wtb2ZcLXRoZVwtY29tcGFzczsKK+WFp+aUvyA+IGludGVybmFsXC1hZmZhaXJzXC1cKG9mXC1hXC1jb3VudHJ5XCk7Civov6vkvb8gPiBmb3JjZVwtXChzb21lb25lXC10b1wtZG9cLXNvbWV0aGluZ1wpOwor6ZW35buKID4gdGhlXC1sb25nXC1jb3JyaWRvclwtYXRcLXlpXC1oZVwteXVhbjsKK+WFg+W4pSA+IGFcLW1hcnNoYWxcLVwoaW5cLXRoZVwtYXJtZWRcLWZvcmNlc1wpOwor5qCh6ZW3ID4gXChjb2xsZWdlXCxcLXVuaXZlcnNpdHlcKVwtcHJlc2lkZW50Owor6ZaL5YiAID4gdG9cLXBlcmZvcm1cLW9yXC1oYXZlXC1hblwtb3BlcmF0aW9uOwor6Lyp5YiGID4gc2VuaW9yaXR5XC1pblwtdGhlXC1mYW1pbHlcLW9yXC1jbGFuOwor5bC+54mZID4gYVwteWVhclwtZW5kXC1kaW5uZXJcLWZvclwtZW1wbG95ZWVzOwor54+t6LyqID4gcmVndWxhclwtcGFzc2VuZ2VyXC1vclwtY2FyZ29cLXNoaXA7Civmiqjmk4ogPiBhdHRhY2tcLVwodmVyYmFsbHlcLW9yXC1pblwtd3JpdGluZ1wpOwor6Iie5Y+wID4gXCh0aGVhdHJpY2FsXC1vclwtcG9saXRpY2FsXClcLXN0YWdlOwor54yb6LeMID4gZHJvcFwtc2hhcnBseVwtXChlZ1wsXC1zdG9ja1wtcHJpY2VzXCk7Civkv6Hku7YgPiBhXC1sZXR0ZXJcLVwoaWVcLFwtc2VudFwtaW5cLXRoZVwtbWFpbFwpOwor5L2/5ZG9ID4gYVwtXChkaXBsb21hdGljXC1vclwtb3RoZXJcKVwtbWlzc2lvbjsKK+S4ueeariA+IHRoZVwtcm9vdFwtYmFya1wtb2ZcLXRoZVwtcGVvbnlcLXRyZWU7CivlrprlgZogPiB0b1wtaGF2ZVwtc29tZXRoaW5nXC1tYWRlXC10b1wtb3JkZXI7Civph43nlKggPiB0b1wtcHV0XC1pblwtYW5cLWltcG9ydGFudFwtcG9zaXRpb247Civmr5Tos70gPiBcW2F0aGxldGljXC1vclwtb3RoZXJcXVwtY29tcGV0aXRpb247CivmlZjov7AgPiByZWxhdGVcLVwoYVwtc3RvcnlcLW9yXC1pbmZvcm1hdGlvblwpOwor5Yqg6YeNID4gYmVjb21lXHxtYWtlXC1tb3JlXC1zZXJpb3VzXHxncmF2ZXI7CivolJrngrogPiB0b1wtYWZmb3JkXC1cKGFcLXZpZXdcLW9mXC1zdGhcLFwtZVwuZ1wuXCk7Civpm7voh7ogPiByYWRpb1wtXChvclwtYnJvYWRjYXN0aW5nXClcLXN0YXRpb247CivnopHmnpcgPiB0aGVcLWZvcmVzdFwtb2ZcLXN0ZWxlc1wtXChpblwteGknJ2FuXCk7CivlpJbngZggPiB3YWl0YW5cLVwodGhlXC1idW5kXClcLFwtaW5cLXNoYW5naGFpOwor6K2J5a+mID4gY29uZmlybVwtXChzb21ldGhpbmdcLXRvXC1iZVwtdHJ1ZVwpOwor6K2w5ZOhID4gbWVtYmVyXC1cKG9mXC1hXC1sZWdpc2xhdGl2ZVwtYm9keVwpOwor5aCx6KGoID4gZm9ybXNcLWZvclwtcmVwb3J0aW5nXC1zdGF0aXN0aWNzOwor5piO5aCxID4gbWluZ1wtcGFvXC1uZXdzcGFwZXJcLVwoaG9uZ1wta29uZ1wpOwor5YmN56iLID4gZnV0dXJlXC1cKGNhcmVlclwsXC1ldGNcKVwtcHJvc3BlY3RzOwor55m76ZaAID4gcGF5XC1hXC12aXNpdFwtdG9cLXNvbWVvbmUnJ3NcLWhvdXNlOwor6YKK5rCRID4gcGVvcGxlXC1saXZpbmdcLW9uXC10aGVcLWZyb250aWVyczsKK+mCo+acqyA+IGlmXC10aGF0JydzXC10aGVcLWNhc2VcLFwtdGhlblwtXChcLlwuXC5cKTsKK+aViOaHiSA+IGVmZmVjdFwtXChlZ1wsXC1ncmVlbmhvdXNlXC1lZmZlY3RcKTsKK+atueW+kiA+IGV2aWxcLXBlcnNvblwtd2hvXC1jb21taXRzXC1jcmltZXM7CivmlLblvqkgPiByZWNvdmVyXC1cKGxvc3RcLXRlcnJpdG9yeVwsXC1ldGNcLlwpOwor5YKy6aqoID4gbG9mdHlcLWFuZFwtdW55aWVsZGluZ1wtY2hhcmFjdGVyOwor5pa35LqkID4gYnJlYWtcLW9mZlwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor5biz5oi2ID4gXChiYW5rXCxcLWNvbXB1dGVyXCxcLWV0Y1wuXClcLWFjY291bnQ7Civlm7rnhLYgPiBhZG1pdHRlZGx5XC1cKGl0JydzXC10cnVlXC10aGF0XC5cLlwuXCk7Civoh7rnjaggPiB0YWl3YW5cLWluZGVwZW5kZW5jZVwtXChtb3ZlbWVudFwpOwor5L+d6IuXID4ga2VlcFwtYVwtZnVsbFwtc3RhbmRcLW9mXC1zZWVkbGluZ3M7Civot6/nlLEgPiByb3V0aW5nXC1cKGluXC1jb21wdXRlclwtbmV0d29ya3NcKTsKK+Wwjee+jiA+IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWFtZXJpY2E7CivmjIfmlbggPiBcKG51bWVyaWNhbFwsXC1zdGF0aXN0aWNhbFwpXC1pbmRleDsKK+ethueVqyA+IHN0cm9rZXNcLW9mXC1hXC1jaGluZXNlXC1jaGFyYWN0ZXI7CivnqbropbIgPiBcKG1pbGl0YXJ5XClcLWF0dGFja1wtZnJvbVwtdGhlXC1haXI7CivooajloLEgPiBzdGF0aXN0aWNhbFwtdGFibGVzXC1hbmRcLXJlcG9ydHM7Civmi5jmirwgPiBcKGFycmVzdFwtYW5kXClcLXRha2VcLWludG9cLWN1c3RvZHk7CivlsJrmm7ggPiBoaWdoXC1vZmZpY2lhbFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6IGz56uLID4gdG9cLXRvd2VyXC1hYm92ZVwtXChvblwtdG9wXC1vZlwtc3RoXCk7Civnj63ntYQgPiB0ZWFtc1wtYW5kXC1ncm91cHNcLVwoaW5cLWZhY3RvcmllczsKK+S8r+avjSA+IHdpZmVcLW9mXC1mYXRoZXInJ3NcLWVsZGVyXC1icm90aGVyOwor5Lit6JelID4gXCh0cmFkaXRpb25hbFwpXC1jaGluZXNlXC1tZWRpY2luZTsKK+aal+iiiyA+IGNhbWVyYVwtYmFnXC1cKGZvclwtY2hhbmdpbmdcLWZpbG1cKTsKK+iZleaxuiA+IGV4ZWN1dGVcLVwoYVwtY29uZGVtbmVkXC1jcmltaW5hbFwpOwor5paw6a6uID4gZnJlc2hcLVwoZXhwZXJpZW5jZVwsXC1mb29kXCxcLWV0Y1wuXCk7Civlj6vogbIgPiB5ZWxsaW5nXC1cKHNvdW5kXC1tYWRlXC1ieVwtcGVyc29uXCk7Civnj63luKsgPiB3aXRoZHJhd1wtdHJvb3BzXC1mcm9tXC10aGVcLWZyb250Owor5ZOA5oK8ID4gZ3JpZXZlXC1cKG1vdXJuXClcLW92ZXJcLXNiJydzXC1kZWF0aDsKK+enkeaBqSA+IGNvaGVuXC1cKHVcLnNcLlwtZGVmZW5jZVwtc2VjcmV0YXJ5XCk7CivmlZfpmaMgPiBiZVwtZGVmZWF0ZWRcLW9uXC10aGVcLWJhdHRsZWZpZWxkOwor5YyF6LOgID4gZ3VhcmFudGVlXC10b1wtcGF5XC1jb21wZW5zYXRpb25zOwor5ZCN5qyhID4gcG9zaXRpb25cLWluXC1hXC1yYW5raW5nXC1vZlwtbmFtZXM7Civlq4Llq4IgPiBzaXN0ZXJcLWluXC1sYXdcLVwoaHVzYmFuZCcnc1wtc2lkZVwpOwor5aWJ6KGMID4gdG9cLXB1cnN1ZVwtXChhXC1jb3Vyc2VcLFwtYVwtcG9saWN5XCk7CivlkbzllpogPiBjYWxsXC1vdXRcLVwoc29tZW9uZScnc1wtbmFtZVwsXC1ldGNcKTsKK/CggIEgPiB0aGVcLW9yaWdpbmFsXC1mb3JtXC1mb3JcLeS4g1wtdVwrNGUwMzsKK/CggIAgPiB0aGVcLXNvdW5kXC1tYWRlXC1ieVwtYnJlYXRoaW5nXC1pbjsKK+ekuuWogSA+IGhvbGRcLWFcLVwocHJvdGVzdFwpXC1kZW1vbnN0cmF0aW9uOwor5ZCD5YiAID4gcGVuZXRyYXRpb25cLW9mXC1hXC1jdXR0aW5nXC10b29sOwor5ZCE5L2NID4gZXZlcnlib2R5XC1cKGFcLXRlcm1cLW9mXC1hZGRyZXNzXCk7Civpn5PlnJMgPiBrb3JlYW5cLXdvblwtXCh1bml0XC1vZlwtY3VycmVuY3lcKTsKK+WgseekviA+IGdlbmVyYWxcLW9mZmljZVwtb2ZcLWFcLW5ld3NwYXBlcjsKK+eZvOi3oSA+IHRvXC1yaXNlXC10b1wtcG93ZXJcLWFuZFwtcG9zaXRpb247CivmlK/mj7QgPiBwcm92aWRlXC1hc3Npc3RhbmNlXC1vclwtYmFja2luZzsKK+ingOa4rCA+IFwoc2NpZW50aWZpY1wsXC1ldGNcKVwtb2JzZXJ2YXRpb247CivpgZXlv4MgPiBhZ2FpbnN0XC1vbmVzXC13aWxsXC1vclwtZmVlbGluZ3M7Civmi7zpn7MgPiBwaW55aW5cLVwoY2hpbmVzZVwtcm9tYW5pemF0aW9uXCk7CivlooPlpJYgPiBvdXRzaWRlXC1cKGFcLWNvdW50cnknJ3NcKVwtYm9yZGVyczsKK+aLjOmdoiA+IG5vb2RsZXNcLXNlcnZlZFwtd2l0aFwtc295XC1zYXVjZTsKK+ebtOaOpSA+IGRpcmVjdFwtXChvcHBvc2l0ZVwtb2ZcLWluZGlyZWN0XCk7Civpj6HpoK0gPiBjYW1lcmFcLXNob3RcLVwoaW5cLWFcLW1vdmllXCxcLWV0Y1wpOwor6I6r5LiNID4gdGhlcmVcLWlzXC1ub1wtb25lXC1cKHdob1wtZG9lc24nJ3RcKTsKK+mAgeS6uiA+IHRvXC1zZWVcLVwob3JcLXdhbGtcKVwtc29tZW9uZVwtaG9tZTsKK+eZveaWhyA+IHRoZVwtdGV4dFwtb2ZcLWFuXC1hbm5vdGF0ZWRcLWJvb2s7CivlsIfpoJggPiBoaWdoXC1yYW5raW5nXC1taWxpdGFyeVwtb2ZmaWNlcjsKK+aOjOasiiA+IHdpZWxkXC1cKHBvbGl0aWNhbFwsXC1ldGNcLlwpXC1wb3dlcjsKK+S/g+mAsiA+IHRvXC1wcm9tb3RlXC1cKGFuXC1pZGVhXC1vclwtY2F1c2VcKTsKK+WFrOWuiSA+IFwobWluaXN0cnlcLW9mXClcLXB1YmxpY1wtc2VjdXJpdHk7Civnl4XmoLkgPiBhblwtaW5jb21wbGV0ZWx5XC1jdXJlZFwtaWxsbmVzczsKK+ijnOWgsSA+IG1ha2VcLWFcLXJlcG9ydFwtYWZ0ZXJcLXRoZVwtZXZlbnQ7CivlsI3oh7ogPiBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC10YWl3YW47Civmnb/pvJMgPiBhXC1zbWFsbFwtZHJ1bVwtZm9yXC1tYXJraW5nXC10aW1lOwor6LSF6L+wID4gdG9cLXNheVwtbW9yZVwtdGhhblwtaXNcLW5lY2Vzc2FyeTsKK+WvpuiCmCA+IGZ1bGxcLWFybVwtXChtZXRob2RcLW9mXC1wYWludGluZ1wpOwor5reY6YeRID4gcGFubmluZ1wtXChmb3JcLXByZWNpb3VzXC1tZXRhbHNcKTsKK+aIiOeIviA+IFwoYWxcKVwtZ29yZVwtXCh1c1wtdmljZVwtcHJlc2lkZW50XCk7CivkuoLoqqogPiB0b1wtbWFrZVwtaXJyZXNwb25zaWJsZVwtcmVtYXJrczsKK+S4jei7jCA+IGFnYWluc3RcLXRoZVwtbGF3XC1vclwtZGlzY2lwbGluZTsKK+S/neWVhiA+IHByZXNlcnZhdGlvblwtb2ZcLXNvaWxcLW1vaXN0dXJlOwor5L2c5oiwID4gY29uZHVjdFwtXChtaWxpdGFyeVwtb3BlcmF0aW9uc1wpOwor5LiW6KGMID4gXFthYmJyZXZpYXRpb25cLWZvclxdXC13b3JsZFwtYmFuazsKK+S4reiPryA+IGNoaW5hXC1cKGFsdGVybmF0ZVwtZm9ybWFsXC1uYW1lXCk7CivkvrXlhaUgPiB0b1wtbWFrZVwtXChtaWxpdGFyeVwpXC1pbmN1cnNpb25zOwor55CD5qqvID4gdGFibGVcLVwoZm9yXC1nYW1lc1wtdXNpbmdcLWJhbGxzXCk7CivkuIvoh7ogPiBzdGVwXC1kb3duXC1cKGZyb21cLW9mZmljZVwsXC1ldGNcLlwpOwor6LKq5rGhID4gXChwb2xpdGljYWxcLFwtbW9yYWxcKVwtY29ycnVwdGlvbjsKK+S4ree0miA+IG1pZGRsZVwtbGV2ZWxcLVwoaW5cLWFcLWhpZXJhcmNoeVwpOwor5pyJ55qEID4gXCh0aGVyZVwtYXJlXClcLXNvbWVcLVwod2hvXC1hcmVcLlwuXC5cKTsKK+iTi+mjryA+IHJpY2VcLXdpdGhcLW1lYXRcLWFuZFwtdmVnaXRhYmxlczsKK+S4i+ePrSA+IHRvXC1jb21lXC1vclwtZ29cLW9yXC1nZXRcLW9mZlwtd29yazsKK+WMhemKtyA+IGhhdmVcLWV4Y2x1c2l2ZVwtc2VsbGluZ1wtcmlnaHRzOwor6K6T55CDID4gdG9cLWNvbmNlZGVcLXBvaW50c1wtXChpblwtYVwtZ2FtZVwpOwor5pu45oi/ID4gc3R1ZHlcLVwoaVwuZVwuXC10aGVcLWtpbmRcLW9mXC1yb29tXCk7Civoqo3orZggPiBiZVwtYWNxdWFpbnRlZFwtd2l0aFwtXChhXC1wZXJzb25cKTsKK+WNu+eXhSA+IHRvXC1wcmV2ZW50XC1vclwtdHJlYXRcLWFcLWRpc2Vhc2U7CivpgbLpgbIgPiBcKGJlXClcLWxhdGVcLVwod2l0aFwtYVwtdGFza1wsXC1ldGNcLlwpOwor8KCAhSA+IGFuXC1hbHRlcm5hdGVcLWZvcm1cLW9mXC11XCs0ZWE1XC3kuqU7Civlvrfnj60gPiBkdXJiYW5cLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+aTuui8qiA+IGJhbGFuY2VcLVwob2ZcLWFcLXdhdGNoXC1vclwtY2xvY2tcKTsKK+aTuuiorSA+IGZ1cm5pc2hcLWFuZFwtZGVjb3JhdGVcLVwoYVwtcm9vbVwpOwor54ax57eaID4gaG90bGluZVwtXChjb21tdW5pY2F0aW9uc1wtbGlua1wpOwor5rOV5Yi2ID4gbGVnYWxcLXN5c3RlbVwtYW5kXC1pbnN0aXR1dGlvbnM7CivmsLTlubMgPiBsZXZlbFwtXChvZlwtYWNoaWV2ZW1lbnRcLFwtZXRjXC5cKTsKK+Wkq+asiiA+IGF1dGhvcml0eVwtb3ZlclwtdGhlXC1ob3VzZWhvbGQ7CivljbDlsLwgPiBcKGFiYnJldmlhdGlvblwtZm9yXClcLWluZG9uZXNpYTsKK+iuiuWDuSA+IGFwcHJhaXNlXC1hdFwtdGhlXC1jdXJyZW50XC1yYXRlOwor5aa55aSrID4gYnJvdGhlclwtaW5cLWxhd1wtXCh3aWZlJydzXC1zaWRlXCk7CivpgLLogIwgPiBhbmRcLXRoZW5cLVwod2hhdFwtZm9sbG93c1wtbmV4dFwpOwor6Zmj57eaID4gYVwtZnJvbnRcLVwoaWVcLFwtbWlsaXRhbnRcLWdyb3VwXCk7CivmrbLmnIggPiB0aGVcLXllYXJzXC1vZlwtYVwtcGVyc29uJydzXC1saWZlOwor5q245bGsID4gYmVcLXVuZGVyXC10aGVcLWp1cmlzZGljdGlvblwtb2Y7CivlnKjph44gPiBiZVwtb3V0XC1vZlwtXChwb2xpdGljYWxcKVwtb2ZmaWNlOwor5bug5oi/ID4gYVwtYnVpbGRpbmdcLXVzZWRcLWFzXC1hXC1mYWN0b3J5Owor5Yik5rG6ID4ganVkZ21lbnRcLVwoYnlcLWFcLWNvdXJ0XC1vZlwtbGF3XCk7Civlm7Dpm6MgPiBcKGZpbmFuY2lhbFwsXC1ldGNcLlwpXC1kaWZmaWN1bHR5Owor5o6b6JmfID4gdG9cLXJlZ2lzdGVyXC1cKGFcLWxldHRlclwsXC1ldGNcLlwpOwor6KOc6IuXID4gZmlsbFwtdGhlXC1nYXBzXC13aXRoXC1zZWVkbGluZ3M7CivmrablipsgPiBcKG1ha2VcLXVzZVwtb2ZcKVwtbWlsaXRhcnlcLWZvcmNlOwor5pS+5YGHID4gdG9cLWhhdmVcLWFcLWhvbGlkeVwtb3JcLXZhY2F0aW9uOwor6IiJ6YeNID4gXCh0aGVcLXNwb3J0XC1vZlwpXC13ZWlnaHRsaWZ0aW5nOwor5Zq06KmeID4gXChjcml0aWNpemVcLFwtZXRjXC5cKVwtZm9yY2VmdWxseTsKK+Wig+WFpyA+IHdpdGhpblwtXChhXC1jb3VudHJ5JydzXClcLWJvcmRlcnM7Civoj6/kurogPiBldGhuaWNcLWNoaW5lc2VcLXBlcnNvblx8cGVvcGxlOwor5qmL5pysID4gXChqYXBhbmVzZVwtc3VybmFtZVwpXC1oYXNoaW1vdG87CivlnLDnmq4gPiBsb3RcLFwtc2VjdGlvblwtb2ZcLWxhbmRcLFwtZ3JvdW5kOwor6L2J5qmfID4gXCh0YWtlXC1hXClcLXR1cm5cLWZvclwtdGhlXC1iZXR0ZXI7CivluLjlp5QgPiBtZW1iZXJcLW9mXC1zdGFuZGluZ1wtY29tbWl0dGVlOwor6LW36aObID4gdG9cLXRha2VcLW9mZlwtXChpblwtYW5cLWFpcnBsYW5lXCk7CivplovluZUgPiB0b1wtb3BlblwtXChhXC1jb25mZXJlbmNlXCxcLWVcLmdcLlwpOwor5omT6YedID4gdG9cLWdpdmVcLW9yXC1oYXZlXC1hblwtaW5qZWN0aW9uOwor55Kn6KydID4gZGVjbGluZVwtXChhXC1naWZ0XClcLXdpdGhcLXRoYW5rczsKK+WwjeiPryA+IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWNoaW5hOwor5YSA5ZmoID4gXChzY2llbnRpZmljXCxcLWV0Y1wpXC1pbnN0cnVtZW50Owor56m26L6mID4gdG9cLWludmVzdGlnYXRlXC1hbmRcLWRlYWxcLXdpdGg7CivlrprnvaogPiBjb252aWN0XC1cKHNvbWVvbmVcLW9mXC1hXC1jcmltZVwpOwor5pys6aGMID4gdGhlXC1zdWJqZWN0XC11bmRlclwtZGlzY3Vzc2lvbjsKK+iDjOewjSA+IGFcLWJhc2tldFwtY2FycmllZFwtb25cLXRoZVwtYmFjazsKK+aciemXnCA+IHRvXC1oYXZlXC1zb21ldGhpbmdcLXRvXC1kb1wtd2l0aDsKK+S+hua6kCA+IHNvdXJjZVwtXChvZlwtaW5mb3JtYXRpb25cLFwtZXRjXCk7CivnjbLph4sgPiBvYnRhaW5cLXJlbGVhc2VcLVwoZnJvbVwtcHJpc29uXCk7CivlsI3ml6UgPiBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1qYXBhbjsKK+aGi+awoyA+IGZlZWxcLXN1ZmZvY2F0ZWRcLW9yXC1vcHByZXNzZWQ7CivlkIzog54gPiBmZWxsb3dcLWNpdGl6ZW5cLW9yXC1jb3VudHJ5bWFuOwor5Yy+6aGNID4gYVwtaG9yaXpvbnRhbFwtaW5zY3JpYmVkXC1ib2FyZDsKK+eiuuiouiA+IHRvXC1tYWtlXC1hXC1kZWZpbml0ZVwtZGlhZ25vc2lzOwor5a6D5YCRID4gdGhleVwtXChmb3JcLWluYW5pbWF0ZVwtb2JqZWN0c1wpOwor54++5aC0ID4gc2NlbmVcLVwob2ZcLWV2ZW50XC1vclwtaW5jaWRlbnRcKTsKK+aEm+aDhSA+IGxvdmVcLVwoYmV0d2VlblwtbWFuXC1hbmRcLXdvbWFuXCk7Civorornr4AgPiBtYWtlXC1hXC1wb2xpdGljYWxcLXJlY2FudGF0aW9uOwor5raJ5auMID4gdG9cLWJlXC1hXC1zdXNwZWN0XC1cKGluXC1hXC1jcmltZVwpOwor5aSx6LazID4gdG9cLXRha2VcLWFcLXdyb25nXC1zdGVwXC1pblwtbGlmZTsKK+eKp+eJsiA+IHNhY3JpZmljZVwtXChvbmUnJ3NcLWxpZmVcLFwtZXRjXC5cKTsKK+S6nuS8ryA+IGFiZVwtXChzaG9ydFwtZm9ybVwtZm9yXC1hYnJhaGFtXCk7CivnjJzlv4wgPiBiZVwtc3VzcGljaW91c1wtYW5kXC1qZWFsb3VzXC1vZjsKK+m7qOWFpyA+IHdpdGhpblwtdGhlXC1cKGNvbW11bmlzdFwpXC1wYXJ0eTsKK+WLleiVqSA+IFwoc29jaWFsXC1vclwtcG9saXRpY2FsXClcLXVucmVzdDsKK+eOi+S4uSA+IHdhbmdcLWRhblwtXChjaGluZXNlXC1kaXNzaWRlbnRcKTsKK+axuuWumiA+IHRvXC1kZWNpZGVcLVwodG9cLWRvXC1zb21ldGhpbmdcKTsKK+WniuWmuSA+IFwob2xkZXJcLWFuZFwteW91bmdlclwpXC1zaXN0ZXJzOwor6YC86IKWID4gYmVhclwtYVwtY2xvc2VcLXJlc2VtYmxhbmNlXC10bzsKK+W+qeWvqSA+IHJlZXhhbWluZVwtXChhXC1qdWRpY2lhbFwtY2FzZVwpOwor5YWl6ZaAID4gaW50cm9kdWN0aW9uXC1cKHRvXC1hXC1zdWJqZWN0XCk7Civnmb3pnLIgPiB3aGl0ZVwtZGV3XC1cKDE1dGhcLXNvbGFyXC10ZXJtXCk7Civoo5zpq5QgPiBjb21wbGVtZW50XC1cKGluXC1ibG9vZFwtc2VydW1cKTsKK+ipleavlCA+IHRvXC1ldmFsdWF0ZVwtXChieVwtY29tcGFyaXNvblwpOwor6L2J6LqrID4gXChvZlwtYVwtcGVyc29uXClcLXRvXC10dXJuXC1yb3VuZDsKK+eIquWThyA+IGphdmFcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7CivmlYjlv6AgPiB2b3dcLWxveWFsdHlcLWFuZFwtZGV2b3Rpb25cLXRvOwor5o6h6L6mID4gYnV5XC1vblwtYVwtY29uc2lkZXJhYmxlXC1zY2FsZTsKK+W8n+WmuSA+IHNpc3RlclwtaW5cLWxhd1wtXCh3aWZlJydzXC1zaWRlXCk7CivpmbfmlrwgPiBjYXVnaHRcLWluXC1cKGFcLWJhZFwtc2l0dWF0aW9uXCk7CivlpJbljK8gPiBmb3JlaWduXC1cKGN1cnJlbmN5XClcLWV4Y2hhbmdlOwor5pGY55SxID4gaGlnaFwtcG9pbnRzXC1cKG9mXC1hXC1kb2N1bWVudFwpOwor5YG06Lq6ID4gdG9cLWxpZVwtZG93blwtXChvblwtb25lJydzXC1zaWRlXCk7CivmkJzmjZUgPiBodW50XC1hbmRcLWFycmVzdFwtXChmdWdpdGl2ZXNcKTsKK+aPueabuCA+IHJlY2l0ZVwtYVwtbGVzc29uXC1mcm9tXC1tZW1vcnk7CivlubjlhY0gPiBuYXJyb3dseVwtYW5kXC1sdWNraWx5XC1lc2NhcGU7CivlnIvmqJkgPiBndW9iaWFvXC1cKGVuY29kaW5nXC1zdGFuZGFyZFwpOwor5L6/6KGAID4gaGF2aW5nXC1ibG9vZFwtaW5cLW9uZScnc1wtc3Rvb2w7Civnl4XmqZ8gPiBpbnRlcnByZXRhdGlvblwtb2ZcLXRoZVwtY2F1c2U7CivmiY3oj68gPiBsaXRlcmFyeVwtb3JcLWFydGlzdGljXC10YWxlbnQ7CivmjIfms5UgPiBmaW5nZXJcLW1ldGhvZFwtXChpblwtcGFpbnRpbmdcKTsKK+WvtuiXjyA+IHByZWNpb3VzXC1cKG1pbmVyYWxcKVwtZGVwb3NpdHM7Civmj5DliY0gPiB0b1wtc2hpZnRcLXRvXC1hblwtZWFybGllclwtZGF0ZTsKK+i8qeWHuiA+IGNvbWVcLWZvcnRoXC1pblwtbGFyZ2VcLW51bWJlcnM7Civmnb/ptKggPiBwcmVzc2VkXC1cKGRyaWVkXClcLXNhbHRlZFwtZHVjazsKK+aLlOa1tyA+IGVsZXZhdGlvblwtXChhYm92ZVwtc2VhXC1sZXZlbFwpOwor5YCr5pWmID4gbG9uZG9uXC1cKGNhcGl0YWxcLW9mXC1lbmdsYW5kXCk7Civmop3mrL4gPiBjbGF1c2VcLVwob2ZcLWNvbnRyYWN0XC1vclwtbGF3XCk7Civnl4XkvosgPiBcW21lZGljYWxcXVwtY2FzZVwtXFtvZlwtaWxsbmVzc1xdOwor5Zmo5a6YID4gb3JnYW5cLVwocGFydFwtb2ZcLWJvZHlcLXRpc3N1ZVwpOwor54+t57SaID4gY2xhc3Nlc1wtb3JcLWdyYWRlc1wtaW5cLXNjaG9vbDsKK+aGsuazlSA+IGNvbnN0aXR1dGlvblwtXChvZlwtYVwtY291bnRyeVwpOwor5LiN6KuxID4gd2l0aG91dFwtY29uY2VhbGluZ1wtYW55dGhpbmc7Civlronmj5IgPiBwbGFjZVwtaW5cLWFcLWNlcnRhaW5cLXBvc2l0aW9uOwor5Y+k6LmfID4gcGxhY2VzXC1vZlwtaGlzdG9yaWNcLWludGVyZXN0Owor5rCj6auUID4gZ2FzXC1cKGllXCxcLWdhc2VvdXNcLXN1YnN0YW5jZVwpOwor5a2r5a2QID4gZ3JhbmRzb25cLVwoc29uXC1vZlwtb25lJydzXC1zb25cKTsKK+WllOmosCA+IFwob2ZcLXdhdmVzXClcLXRvXC1zdXJnZVwtZm9yd2FyZDsKK+mDtembuyA+IHBvc3RcLWFuZFwtdGVsZWNvbW11bmljYXRpb25zOwor5ZWP5YCZID4gZ2l2ZVwtc29tZW9uZVwtb25lJydzXC1yZXNwZWN0czsKK+ellueItiA+IGdyYW5kZmF0aGVyXC1cKGZhdGhlcicnc1wtc2lkZVwpOwor5rG6562WID4gXChtYWtlXC1hXClcLXN0cmF0ZWdpY1wtZGVjaXNpb247CivnpZbmr40gPiBncmFuZG1vdGhlclwtXChmYXRoZXInJ3NcLXNpZGVcKTsKK+mHneeBuCA+IGFjdXB1bmN0dXJlXC1hbmRcLW1veGlidXN0aW9uOwor5LiA5pemID4gaW5cLWNhc2VcLVwoc29tZXRoaW5nXC1oYXBwZW5zXCk7Civlo73ovrAgPiBiaXJ0aGRheVwtXChvZlwtYW5cLW9sZFwtcGVyc29uXCk7CivlvqnnlKYgPiByZWNvdmVyeVwtXChoZWFsdGhcLFwtZWNvbm9taWNcKTsKK+aZguacnyA+IGFcLXBlcmlvZFwtaW5cLXRpbWVcLW9yXC1oaXN0b3J5Owor5ZCE5ZywID4gaW5cLWFsbFwtcGFydHNcLW9mXC1cKGFcLWNvdW50cnlcKTsKK+eikeaWhyA+IGFuXC1pbnNjcmlwdGlvblwtb25cLWFcLXRhYmxldDsKK+WPsOWMlyA+IHRhaXBlaVwtXChjYXBpdGFsXC1vZlwtdGFpd2FuXCk7CivmsrPlhacgPiBoYW5vaVwtXChjYXBpdGFsXC1vZlwtdmlldG5hbVwpOwor6YeP5YqbID4gdG9cLWVzdGltYXRlXC1vbmUnJ3NcLXN0cmVuZ3RoOwor5pah5peLID4gbWVkaWF0ZVwtXChhXC1jb25mbGljdFwsXC1ldGNcLlwpOwor54mM5Yy+ID4gYm9hcmRcLVwoYXR0YWNoZWRcLXRvXC1hXC13YWxsXCk7Civli5XmiYsgPiB0b1wtaGl0XC13aXRoXC1oYW5kc1wtb3JcLWZpc3RzOwor5q2l5pyIID4gdG9cLXN0cm9sbFwtYmVuZWF0aFwtdGhlXC1tb29uOwor6KqT5birID4gdG9cLXZvd1wtYmVmb3JlXC1vbmUnJ3NcLXRyb29wczsKK+mDqOWnlCA+IG1pbmlzdHJpZXNcLWFuZFwtY29tbWlzc2lvbnM7Civpm6PmgKogPiBcKGl0JydzXClcLW5vXC13b25kZXJcLVwodGhhdFwuXC5cLlwpOwor5YeN57WQID4gXChsb2FuXCxcLXdhZ2VcLFwtcHJpY2VcKVwtZnJlZXplOwor5pa95YqgID4gZXhlcnRcLVwoZWZmb3J0XC1vclwtcHJlc3N1cmVcKTsKK+imlueqlyA+IHdpbmRvd3NcLVwob3BlcmF0aW5nXC1zeXN0ZW1cKTsKK+W3qOiRlyA+IG1vbnVtZW50YWxcLVwobGl0ZXJhcnlcKVwtd29yazsKK+WLn+WMliA+IHRvXC1jb2xsZWN0XC1hbG1zXC1cKGJ1ZGRoaXNtXCk7Civpg6jkuIsgPiB0cm9vcHNcLXVuZGVyXC1vbmUnJ3NcLWNvbW1hbmQ7CivlhajnqIsgPiBcKGR1cmluZ1wtYW5cKVwtZW50aXJlXC1qb3VybmV5Owor6ZW356+HID4gbGVuZ3RoeVwtXChyZXBvcnRcLW9yXC1zcGVlY2hcKTsKK+ilv+a5liA+IHRoZVwtd2VzdFwtbGFrZVwsXC1pblwtaGFuZ3pob3U7CivmkqXlvIQgPiBtb3ZlXC10b1wtYW5kXC1mcm9cLVwod2l0aFwtaGFuZDsKK+ihqOiomCA+IHNvbWV0aGluZ1wtZ2l2ZW5cLWFzXC1hXC10b2tlbjsKK+ihqOijoSA+IHRoZVwtb3V0c2lkZVwtYW5kXC10aGVcLWluc2lkZTsKK+mAvOWCtSA+IHByZXNzXC1mb3JcLXBheW1lbnRcLW9mXC1kZWJ0czsKK+ethumLkiA+IHRoZVwtdGlwXC1vZlwtYVwtd3JpdGluZ1wtYnJ1c2g7CivloLHliIogPiBuZXdzcGFwZXJzXC1hbmRcLXBlcmlvZGljYWxzOwor5ryU6KybID4gXChnaXZlXClcLWFcLXNwZWVjaFwtb3JcLWxlY3R1cmU7CivlnIvniLYgPiBmYXRoZXJcfGZvdW5kZXJcLW9mXC1hXC1uYXRpb247Civkvp3pnaAgPiByZWx5XC1vblwtXChmb3JcLXN1cHBvcnRcLFwtZXRjXCk7CivmiYDplbcgPiBoZWFkXC1vZlwtYW5cLWluc3RpdHV0ZVwsXC1ldGNcLjsKK+iLpeW5siA+IGFcLWNlcnRhaW5cLW51bWJlclx8YW1vdW50XC1vZjsKK+ertumBuCA+IHJ1blwtZm9yXC1cKGVsZWN0b3JhbFwpXC1vZmZpY2U7CivmkLblhYggPiB0b1wtcnVzaFwtXCh0b1wtZG9cLXN0aFwtdXJnZW50XCk7CivlgZznlZkgPiBzdGF5XC1zb21ld2hlcmVcLXRlbXBvcmFyaWx5Owor55eF5qCqID4gZGlzZWFzZWRcLW9yXC1pbmZlY3RlZFwtcGxhbnQ7Civkv5fnqLEgPiBiZVwtY29tbW9ubHlcLXJlZmVycmVkXC10b1wtYXM7CivooYzlsIcgPiBiZVwtYWJvdXRcLXRvXC1cKGRvXC1zb21ldGhpbmdcKTsKK+i2s+eQgyA+IGZvb3RiYWxsXC1cKGJyaXRpc2hcLWVuZ2xpc2hcKTsKK+iDjOiEiiA+IHRoZVwtYmFja1wtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7Civmipfmk4ogPiByZXNpc3RcLVwoYVwtbWlsaXRhcnlcLWF0dGFja1wpOwor5bCL5qmfID4gdG9cLWxvb2tcLWZvclwtYW5cLW9wcG9ydHVuaXR5Owor5a+m5rOBID4gd2hhdFwtaXNcLWFjdHVhbGx5XC1oYXBwZW5pbmc7CivkuIHpm7IgPiBkaW5nXC15dW5cLVwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+ahiOadvyA+IGtuZWFkaW5nXC1vclwtY2hvcHBpbmdcLWJvYXJkOwor5L+d5a6IID4gXChwb2xpdGljYWxseVwpXC1jb25zZXJ2YXRpdmU7CivkuI3pgIEgPiBkb24nJ3RcLWJvdGhlclwtdG9cLXNlZVwtbWVcLW91dDsKK+elnumBkyA+IHNoaW50b1wtXChqYXBhbmVzZVwtcmVsaWdpb25cKTsKK+Wwh+WwsSA+IGFjY2VwdFwtXChhXC1iaXRcLXJlbHVjdGFudGx5XCk7Civmh7fmirEgPiBcKHdpdGhpblwtc29tZW9uZScnc1wpXC1lbWJyYWNlOwor5Y+z6YKKID4gcmlnaHRcLVwoYXNcLW9wcG9zZWRcLXRvXC1sZWZ0XCk7CivnpL7oq5YgPiBlZGl0b3JpYWxcLVwoaW5cLWFcLW5ld3NwYXBlclwpOwor5a625bi4ID4gdGhlXC1kYWlseVwtbGlmZVwtb2ZcLWFcLWZhbWlseTsKK+abuOiBliA+IGFcLWdyZWF0XC1jYWxsaWdyYXBoeVwtbWFzdGVyOwor6LOH5pysID4gY2FwaXRhbFwtXChhc1wtaW5cLWNhcGl0YWxpc21cKTsKK+miqOeQtCA+IG9yZ2FuXC1cKG11c2ljYWxcLWluc3RydW1lbnRcKTsKK+Wtl+W4liA+IGNvcHlib29rXC1cKGZvclwtY2FsbGlncmFwaHlcKTsKK+WuieWIhiA+IG5vdFwtZ29cLWJleW9uZFwtb25lJydzXC1ib3VuZHM7CivmmpfnrJEgPiBsYXVnaFwtaW5cLVwodXBcKVwtb25lJydzXC1zbGVldmU7Civnvo7njrIgPiBtZWlcLWxpbmdcLVwoYVwtcGVyc29uJydzXC1uYW1lXCk7CivnoqfooYAgPiBibG9vZFwtc2hlZFwtaW5cLWFcLWp1c3RcLWNhdXNlOwor5rSq5qOuID4gaHVuXC1zZW5cLVwoY2FtYm9kaWFuXC1sZWFkZXJcKTsKK+eon+WRiiA+IHJlcG9ydFwtXCh0b1wtb25lJydzXC1zdXBlcmlvclwpOwor6YG66auUID4gcmVtYWluc1wtXChvZlwtYVwtZGVhZFwtcGVyc29uXCk7Civpgb/poqggPiB0YWtlXC1zaGVsdGVyXC1mcm9tXC10aGVcLXdpbmQ7Civnpo/lu7ogPiBmdWppYW5cLVwocHJvdmluY2VcLW9mXC1jaGluYVwpOwor5YuY6KqkID4gdG9cLWNvcnJlY3RcLXByaW50aW5nXC1lcnJvcnM7CivljYfntJogPiB0b1wtZXNjYWxhdGVcLVwoaW5cLWludGVuc2l0eVwpOwor5by36Kq/ID4gdG9cLWVtcGhhc2l6ZVwtXChhXC1zdGF0ZW1lbnRcKTsKK+iAjOS4lCA+IG5vdFwtb25seVwtXC5cLlwuXC1idXRcLWFsc29cLVwuXC5cLlwuOwor6YG36YO9ID4gdG9cLW1vdmVcLXRoZVwtY2FwaXRvbFwtXChjaXR5XCk7CivkuI3kvYYgPiBub3RcLW9ubHlcLVwoXC5cLlwuXC1idXRcLWFsc29cLlwuXC5cKTsKK+WMheeUoiA+IG1ha2VcLWFcLXByb2R1Y3Rpb25cLWNvbnRyYWN0Owor5YyX5pydID4gdGhlXC1ub3J0aGVyblwtZHluYXN0aWVzXC1cKGE7CivljIXmlKwgPiB1bmRlcnRha2VcLXRoZVwtd2hvbGVcLXRoaW5nOwor5Yue5pWZID4gcmVlZHVjYXRpb25cLXRocm91Z2hcLWxhYm9yOwor5Y2K5aC0ID4gaGFsZlwtb2ZcLWFcLWdhbWVcLW9yXC1jb250ZXN0Owor55m86YGUID4gZGV2ZWxvcGVkXC1cKGNvdW50cnlcLFwtZXRjXC5cKTsKK+eAiemcsiA+IHRvXC1sZWFrXC1vdXRcLVwoaW5mb3JtYXRpb25cKTsKK+atsuaVuCA+IGFnZVwtXChudW1iZXJcLW9mXC15ZWFyc1wtb2xkXCk7CivplovoqK0gPiBvZmZlclwtXChnb29kc1wtb3JcLXNlcnZpY2VzXCk7Civlu6PmnbEgPiBndWFuZ2RvbmdcLXByb3ZpbmNlXCxcLWNoaW5hOwor5pS+5b+DID4gdG9cLXNldFwtb25lJydzXC1taW5kXC1hdFwtcmVzdDsKK+mtr+i/hSA+IG5hbWVcLW9mXC1hblwtYXV0aG9yXCxcLWx1XC14dW47CivpgZnmnJsgPiB0b1wtbG9va1wtaW50b1wtdGhlXC1kaXN0YW5jZTsKK+ijnOi2syA+IGJyaW5nXC11cFwtdG9cLWZ1bGxcLXN0cmVuZ3RoOwor54as5aScID4gc3RheVwtdXBcLWxhdGVcLW9yXC1hbGxcLW5pZ2h0Owor6auU6amXID4gdG9cLWV4cGVyaWVuY2VcLWZvclwtb25lc2VsZjsKK+aSleavgCA+IHRlYXJcLXVwXC1cKGFcLWNvbnRyYWN0XCxcLWV0Y1wpOwor5YK+6Yq3ID4gdG9cLWR1bXBcLVwoZ29vZHNcLFwtcHJvZHVjdHNcKTsKK+eci+azlSA+IHdheVwtb2ZcLWxvb2tpbmdcLWF0XC1hXC10aGluZzsKK+mXnOazqCA+IGZvbGxvd1wtXChhblwtaXNzdWVcKVwtY2xvc2VseTsKK+WJneWVhCA+IHRhcFwtXChvblwtYVwtZG9vclwtb3JcLXdpbmRvd1wpOwor6L6o5p6QID4gZGlmZmVyZW50aWF0ZVwtYW5kXC1hbmFseXNlOwor5ZyL55SiID4gbWFkZVwtaW5cLW9uZScnc1wtb3duXC1jb3VudHJ5Owor55m95pePID4gdGhlXC1iYWlcLVwocGFpXClcLW5hdGlvbmFsaXR5Owor55eF55mSID4gcmVjb3ZlclwtXChmcm9tXC1hblwtaWxsbmVzc1wpOwor5a+s6ZmQID4gZXh0ZW5kXC1cKGFcLWRlYWRsaW5lXCxcLWV0Y1wuXCk7CivooajmhYsgPiBtYWtlXC1rbm93blwtb25lJydzXC1wb3NpdGlvbjsKK+Wuo+iqkyA+IHN3ZWFyXC1hblwtb2F0aFwtXChvZlwtb2ZmaWNlXCk7Civmi5zmnJsgPiBjYWxsXC10b1wtcGF5XC1vbmUnJ3NcLXJlc3BlY3Q7Civnr4fluYUgPiBcKHRha2VcLXVwXC1vclwtZGV2b3RlXClcLXNwYWNlOwor6aaW55u4ID4gXChqYXBhbmVzZVwpXC1wcmltZVwtbWluaXN0ZXI7CivmiorlvI8gPiBwZXJzb25cLXNraWxsZWRcLWluXC1hXC10cmFkZTsKK+a3mOexriA+IGJhc2tldFwtXChmb3JcLXdhc2hpbmdcLXJpY2VcKTsKK+eUpeWlsyA+IG5pZWNlXC1cKHNpc3Rlcicnc1wtZGF1Z2h0ZXJcKTsKK+a8ouS6uiA+IGhhblwtY2hpbmVzZVwtcGVyc29uXHxwZW9wbGU7CivkvLrmqZ8gPiB0b1wtd2F0Y2hcLWZvclwtb25lJydzXC1jaGFuY2U7CivpoLjpg6ggPiB0aGVcLW5lY2tcLWFyZWFcLW9mXC10aGVcLWJvZHk7Civog4zlvbEgPiBhXC12aWV3XC1vZlwtc29tZWJvZHknJ3NcLWJhY2s7Civni6Hos7QgPiB0b1wtZGVueVwtXCh0aHJvdWdoXC1zb3BoaXNtXCk7Civororos6MgPiBzZWxsXC1vZmZcLVwob25lJydzXC1wcm9wZXJ0eVwpOwor5rG66LO9ID4gZmluYWxzXC1cKG9mXC1hXC1jb21wZXRpdGlvblwpOwor5p2/5pu4ID4gd3JpdGluZ1wtb25cLXRoZVwtYmxhY2tib2FyZDsKK+ePgOaWryA+IHBlcnRoXC1cKGNpdHlcLWluXC1hdXN0cmFsaWFcKTsKK+aEm+aGkCA+IHNob3dcLXRlbmRlclwtYWZmZWN0aW9uXC1mb3I7CivmmrTmvLIgPiByaXNlXC1zdWRkZW5seVwtYW5kXC1zaGFycGx5Owor6YyE5YWxID4gdG9cLXRha2VcLWRvd25cLWFcLWNvbmZlc3Npb247CivmnKzlrrYgPiBhXC1tZW1iZXJcLW9mXC10aGVcLXNhbWVcLWNsYW47CivpnaLoh6ggPiBiZVwtZmFjZWRcLXdpdGhcLVwoYVwtcHJvYmxlbVwpOwor5rGg5rmvID4gbGFyZ2VcLXBvb2xcLWluXC1hXC1iYXRoaG91c2U7CivnjY7li7UgPiByZXdhcmRcLVwoYXNcLWVuY291cmFnZW1lbnRcKTsKK+mghuW3riA+IFwodHJhZGVcLW9yXC1idWRnZXRcKVwtc3VycGx1czsKK+WInemBuCA+IFwodXNcKVwtcHJpbWFyaWVzXC1cKGVsZWN0aW9uXCk7CivloLHpircgPiBzdWJtaXRcLWFuXC1leHBlbnNlXC1hY2NvdW50Owor5Y+U5Y+UID4gZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor5Z+O6ZecID4gYXJlYVwtb3V0c2lkZVwtYVwtY2l0eVwtZ2F0ZTsKK+mBi+eulyA+IFwobWF0aGVtYXRpY2FsXClcLW9wZXJhdGlvbjsKK+W3numVtyA+IGdvdmVybm9yXC1cKG9mXC1hXC11c1wtc3RhdGVcKTsKK+mDqOWxrCA+IGFmZmlsaWF0ZWRcLXRvXC1hXC1taW5pc3RyeTsKK+W8leaTjiA+IGVuZ2luZVwtXCh0cmFuc2xpdGVyYXRpb25cKTsKK+eZu+iomCA+IHRvXC1yZWdpc3RlclwtXChvbmUnJ3NcLW5hbWVcKTsKK+apn+e1hCA+IGZsaWdodFwtY3Jld1wtXChvblwtYVwtcGxhbmVcKTsKK+mBvOWvpyA+IGxpYW9uaW5nXC1wcm92aW5jZVwsXC1jaGluYTsKK+eFp+W4uCA+IFwoYnVzaW5lc3NcLFwtZXRjXClcLWFzXC11c3VhbDsKK+aSq+aRuCA+IGdlbnRseVwtY2FyZXNzXC1hbmRcLXN0cm9rZTsKK+WIh+aWtyA+IGN1dFwtb2ZmXC1cKGFcLXN1cHBseVwsXC1ldGNcLlwpOwor5bu65Yi2ID4gb3JnYW5pemF0aW9uYWxcLXN0cnVjdHVyZTsKK+mAgOW9uSA+IHJldGlyZVwtZnJvbVwtdGhlXC1taWxpdGFyeTsKK+mBleWPjSA+IHRvXC12aW9sYXRlXC1cKGFcLWxhd1wsXC1lXC5nXC5cKTsKK+W5q+W7miA+IGhlbHBcLWluXC10aGVcLW1lc3NcLWtpdGNoZW47Civoo5znqIUgPiBwYXlcLWFcLXRheFwtb25lXC1oYXNcLWV2YWRlZDsKK+ilsuaTiiA+IFwobWFrZVwtYVwpXC1zdXJwcmlzZVwtYXR0YWNrOwor55m95reoID4gXChvZlwtc2tpblwpXC1mYWlyXC1hbmRcLWNsZWFyOwor5beh5p+lID4gdG9cLWdvXC1hcm91bmRcLWFuZFwtaW5zcGVjdDsKK+WFteabuCA+IGFcLWJvb2tcLW9uXC10aGVcLWFydFwtb2ZcLXdhcjsKK+eUoumKtyA+IHByb2R1Y3Rpb25cLWFuZFwtbWFya2V0aW5nOwor6ZeM5bC+ID4gYXBwZW5kaXhcLVwoaW5cLWh1bWFuXC1ib2R5XCk7CivluYXlk6EgPiBhXC1jb3VudHJ5JydzXC1zdXJmYWNlXC1hcmVhOwor5pKl5LuYID4gYXBwcm9wcmlhdGVcLXN1bVwtb2ZcLW1vbmV5Owor5ZyL54efID4gc3RhdGVcLXJ1blwtXChjb21wYW55XCxcLWV0Y1wpOwor5pCN5aSxID4gYVwtXChmaW5hbmNpYWxcLFwtZXRjXC5cKVwtbG9zczsKK+i+puWFrCA+IGhhbmRsZVwtb2ZmaWNpYWxcLWJ1c2luZXNzOwor5L2Z6ZyHID4gXChlYXJ0aHF1YWtlXClcLWFmdGVyc2hvY2tzOwor55Wa566VID4gYVwtYmFtYm9vXC1vclwtd2lja2VyXC1zY29vcDsKK+eqgemhryA+IG1ha2VcLXNvbWV0aGluZ1wtc3RhbmRcLW91dDsKK+aPoeWKmyA+IFwoc3RyZW5ndGhcLW9mXC1vbmUnJ3NcKVwtZ3JpcDsKK+mmrOijoSA+IG1hbGlcLVwobmFtZVwtb2ZcLWFcLWNvdW50cnlcKTsKK+eXheaFiyA+IG1vcmJpZFwtb3JcLWFibm9ybWFsXC1zdGF0ZTsKK+aOp+WItiA+IHRvXC1cKGhhdmVcKVwtY29udHJvbFwtXChvdmVyXCk7CivkvbPog70gPiBjYW5vblwtXChqYXBhbmVzZVwtY29tcGFueVwpOwor55eF5a62ID4gYVwtcGF0aWVudFwtYW5kXC1oaXNcLWZhbWlseTsKK+eWkeaDkSA+IFwoYVwtc2Vuc2VcLW9mXClcLXVuY2VydGFpbnR5Owor5omT54mMID4gdG9cLXBsYXlcLW1haGpvbmdcLW9yXC1jYXJkczsKK+WBmuWuoiA+IHRvXC1iZVwtYVwtZ3Vlc3RcLW9yXC12aXNpdG9yOwor6KGM5L2/ID4gZXhlcmNpc2VcLVwoYVwtcmlnaHRcLFwtZXRjXC5cKTsKK+ethuaMuiA+IFwoc3RhbmRpbmdcKVwtdmVyeVwtc3RyYWlnaHQ7CivlronnpZ4gPiBjYWxtXC1cKHNvb3RoZVwpXC10aGVcLW5lcnZlczsKK+iBs+iCqSA+IHRvXC1zaHJ1Z1wtb25lJydzXC1zaG91bGRlcnM7Civmt7HnqbogPiBkZWVwXC1zcGFjZVwtXChvdXRlclwtc3BhY2VcKTsKK+WUkOe0jSA+IHRhbm5lclwtXChlbmdsaXNoXC1zdXJuYW1lXCk7CivlkYjoq4sgPiB0b1wtc3VibWl0XC1cKHRvXC1zdXBlcmlvcnNcKTsKK+S4iuiotCA+IGFwcGVhbFwtXChhXC1qdWRpY2lhbFwtY2FzZVwpOwor5oe35b+1ID4gdG9cLWNoZXJpc2hcLXRoZVwtbWVtb3J5XC1vZjsKK+eJuem7niA+IGNoYXJhY3RlcmlzdGljXC1cKGZlYXR1cmVcKTsKK+Wtl+avjSA+IGxldHRlclwtXChvZlwtdGhlXC1hbHBoYWJldFwpOwor5ZCM6KyAID4gdG9cLWNvbnNwaXJlXC13aXRoXC1zb21lb25lOwor5qGD5ZySID4gdGFveXVhblwtXChjaXR5XC1pblwtdGFpd2FuXCk7CivmsZ/pnaIgPiB0aGVcLXN1cmZhY2VcLW9mXC10aGVcLXJpdmVyOwor56KR6aGNID4gdGhlXC10b3BcLXBhcnRcLW9mXC1hXC10YWJsZXQ7CivkvLTlpY8gPiB0b1wtYWNjb21wYW55XC1cKG11c2ljYWxseVwpOwor5Y+z57+8ID4gXChwb2xpdGljYWxseVwpXC1yaWdodFwtd2luZzsKK+a1meaxnyA+IHpoZWppYW5nXC1wcm92aW5jZVwsXC1jaGluYTsKK+itmOimiyA+IGtub3dsZWRnZVwtYW5kXC1leHBlcmllbmNlOwor6LK35bizID4gdG9cLXNob3dcLXJlc3BlY3RcLVwoZm9yXC1zYlwpOwor5pqX566tID4gYXR0YWNrXC1ieVwtYVwtaGlkZGVuXC1lbmVteTsKK+a3seWcsyA+IHNoZW56aGVuXC1cKGNpdHlcLWluXC1jaGluYVwpOwor56iL5bqmID4gZGVncmVlXC1cKGxldmVsXC1vclwtZXh0ZW50XCk7CivlpKfpl5wgPiBcKHJlYWNoXC1hXClcLWNyaXRpY2FsXC1wb2ludDsKK+mgreeJiCA+IFwobmV3c3BhcGVyJydzXClcLWZyb250XC1wYWdlOwor5pil6IGvID4gc3ByaW5nXC1mZXN0aXZlbFwtY291cGxldHM7Civku6XkvoYgPiBzaW5jZVwtXChhXC1wcmV2aW91c1wtZXZlbnRcKTsKK+iTruiKsSA+IGxvdHVzXC1cKGNvbXB1dGVyXC1jb21wYW55XCk7CivkuI3ml6UgPiB3aXRoaW5cLXRoZVwtbmV4dFwtZmV3XC1kYXlzOwor6KuS6KejID4gXChyZWFjaFwpXC1hblwtdW5kZXJzdGFuZGluZzsKK+iTi+eroCA+IHRvXC1hZmZpeFwtYVwtc2VhbFwtXCh0b1wtc3RoXCk7Civop7jpm7sgPiB0b1wtZ2V0XC1hblwtZWxlY3RyaWNcLXNob2NrOwor5Li75YuVID4gXCh0b1wtdGFrZVwtdGhlXClcLWluaXRpYXRpdmU7CivoqLToqqogPiB0ZWxsXC1cKHRvXC1hbm90aGVyXC1wZXJzb25cKTsKK+e4vee1sSA+IHByZXNpZGVudFwtXChvZlwtYVwtY291bnRyeVwpOwor5aCx6aCtID4gbWFzdGhlYWRcLVwob2ZcLWFcLW5ld3NwYXBlcjsKK+WNl+aymSA+IG5hbnNoYVwtXChzcHJhdGx5XClcLWlzbGFuZHM7CivpgJrpgZMgPiBcKGNvbW11bmljYXRpb25zXClcLWNoYW5uZWw7CivmlL/nuL4gPiBcKHBvbGl0aWNhbFwpXC1hY2hpZXZlbWVudHM7Civlv4zmgaggPiBoYXRlXC1cKGR1ZVwtdG9cLWVudnlcLFwtZXRjXCk7Civpm7nngb0gPiBkaXNhc3RlclwtY2F1c2VkXC1ieVwtaGFpbDsKK+WHuuioqiA+IHZpc2l0XC1hXC1mb3JlaWduXC1jb3VudHJ5Owor5paR5paRID4gZnVsbFwtb2ZcLXN0YWluc1wtb3JcLXNwb3RzOwor6KW/6KOdID4gXCh3ZXN0ZXJuXC1zdHlsZVwpXC1jbG90aGVzOwor5Yqg5rK5ID4gdG9cLW1ha2VcLWFuXC1leHRyYVwtZWZmb3J0Owor5Yuf5o2QID4gdG9cLXNvbGljdFwtY29udHJpYnV0aW9uczsKK+eatOijgiA+IGNoYXBcLVwobGlwc1wsXC1za2luXCxcLWV0Y1wuXCk7CivopovogZ4gPiB3aGF0XC1vbmVcLXNlZXNcLWFuZFwtaGVhcnM7CivljZfkuqwgPiBuYW5qaW5nXC1cKGNpdHlcLWluXC1jaGluYVwpOwor6KaP57SEID4gdGVybXNcLVwob2ZcLWFuXC1hZ3JlZW1lbnRcKTsKK+atuOW/gyA+IGNvbnZlcnRlZFwtdG9cLVwocmVsaWdpb25cKTsKK+mAvOatuyA+IGhvdW5kXC1zb21lYm9keVwtdG9cLWRlYXRoOwor57Wx5rK7ID4gXChwb2xpdGljYWxcKVwtcnVsZVwtXChvdmVyXCk7Civoo5zoqrIgPiBtYWtlXC11cFwtYVwtbWlzc2VkXC1sZXNzb247CivpgJnmqKMgPiB0aGlzXC1cKGtpbmRcLW9mXCxcLXNvcnRcLW9mXCk7CivpgZTmiJAgPiB0b1wtcmVhY2hcLVwoYW5cLWFncmVlbWVudFwpOwor55m+6IisID4gaW5cLWh1bmRyZWRcLWFuZFwtb25lXC13YXlzOwor5o6I6KiIID4gdG9cLWNvbmZpZGVcLWFcLXBsYW5cLXRvXC1zYjsKK+WgseabiSA+IGhlcmFsZFwtdGhlXC1icmVha1wtb2ZcLWRheTsKK+WIqeW4giA+IFwibGFpXC1zZWVcIlwtXChsdWNreVwtbW9uZXlcKTsKK+WBtOmHjSA+IHBsYWNlXC1leHRyYVwtZW1waGFzaXNcLW9uOwor5aCx5oGpID4gcGF5XC1hXC1kZWJ0XC1vZlwtZ3JhdGl0dWRlOwor5bmr5a2QID4gb3V0ZXJcLVwob2ZcLWNhYmJhZ2VcLFwtZXRjXCk7Civoh6rosaogPiBcKGZlZWxcLWFcLXNlbnNlXC1vZlwpXC1wcmlkZTsKK+mYsuWLmSA+IFwocGVydGFpbmluZ1wtdG9cKVwtZGVmZW5zZTsKK+alree4viA+IG91dHN0YW5kaW5nXC1hY2hpZXZlbWVudDsKK+eVmeiogCA+IHRvXC1sZWF2ZVwtb25lJydzXC1jb21tZW50czsKK+W5tOS+hiA+IG92ZXJcLXRoZVwtbGFzdFwtXC5cLlwuXC15ZWFyczsKK+mWi+aLjSA+IGJlZ2luXC1zaG9vdGluZ1wtXChhXC1maWxtXCk7CivliIbkuYsgPiBcKGluZGljYXRpbmdcLWFcLWZyYWN0aW9uXCk7CivnrZTorJ0gPiB0b1wtZXhwcmVzc1wtb25lJydzXC10aGFua3M7CivnrYboq4cgPiBjb252ZXJzYXRpb25cLWJ5XC13cml0aW5nOwor55Gq6bqXID4gbWFsaVwtXChhXC1wZXJzb24nJ3MnJ1wtbmFtZVwpOwor55eH54uAID4gc3ltcHRvbVwtXChvZlwtYW5cLWlsbG5lc3NcKTsKK+S9lOmgmCA+IHRvXC1vY2N1cHlcLVwoYVwtdGVycml0b3J5XCk7CivlgpnmlpkgPiBnZXRcLXRoZVwtbWF0ZXJpYWxzXC1yZWFkeTsKK+WdpuWFiyA+IHRhbmtcLVwobWlsaXRhcnlcLXZlaGljbGVcKTsKK+Wbm+W3nSA+IHNpY2h1YW5cLXByb3ZpbmNlXCxcLWNoaW5hOwor6LKp6YGLID4gdG9cLXRyYW5zcG9ydFwtXChmb3JcLXNhbGVcKTsKK+S7iuitryA+IG1vZGVyblwtbGFuZ3VhZ2VcLXZlcnNpb247CivmipXmlL4gPiB0b1wtcHV0XC1pblwtXChjaXJjdWxhdGlvblwpOwor55eF5YCSID4gYmVcLWRvd25cLXdpdGhcLWFuXC1pbGxuZXNzOwor5ou35ZWPID4gdG9cLXF1ZXN0aW9uXC12aWFcLXRvcnR1cmU7CivmgqPpm6MgPiB0cmlhbHNcLWFuZFwtdHJpYnVsYXRpb25zOwor6Y2b54WJID4gdG9cLWRvXC1waHlzaWNhbFwtdHJhaW5pbmc7Civom5nms7MgPiBcKHN3aW1taW5nXClcLWJyZWFzdHN0cm9rZTsKK+aAjum6vCA+IFwoaW50ZXJyb2dhdGl2ZVwtcHJvbm91blwpOwor6aeQ5a6IID4gXChtYW5cLWFcLXBvc3RcLWFuZFwpXC1kZWZlbmQ7CivmuqvlkowgPiBtb2RlcmF0ZVwtXChwb2xpY3lcLFwtZXRjXC5cKTsKK+WQpuiqjSA+IHRvXC1kZWNsYXJlXC10b1wtYmVcLXVudHJ1ZTsKK+axn+ilvyA+IGppYW5neGlcLXByb3ZpbmNlXCxcLWNoaW5hOwor5oSb5pKrID4gdG9cLXNob3dcLXRlbmRlclwtY2FyZVwtZm9yOwor5Y+D6IiHID4gdG9cLXBhcnRpY2lwYXRlXC1cKGluXC1zdGhcKTsKK+a4r+S6uiA+IGhvbmdcLWtvbmdcLXBlcnNvblx8cGVvcGxlOwor6buD5rKzID4geWVsbG93XC1yaXZlclwtXChodWFuZ1wtaGVcKTsKK+axn+iYhyA+IGppYW5nc3VcLXByb3ZpbmNlXCxcLWNoaW5hOwor5Lu75ZG9ID4gdG9cLWFwcG9pbnRcLWFuZFwtbm9taW5hdGU7CivppIXlrZAgPiBtYWl6ZVwtb3JcLW1pbGxldFwtcGFuY2FrZTsKK+acn+aUtyA+IGVuZFwtb2ZcLXRlcm1cLWV4YW1pbmF0aW9uOwor57i96aGNID4gdG90YWxcLVwoYW1vdW50XC1vclwtdmFsdWVcKTsKK+isguiqniA+IFwoZ3JhbW1hdGljYWxcKVwtcHJlZGljYXRlOwor5Lit5pesID4gbWlkZGxlXC10aGlyZFwtb2ZcLWFcLW1vbnRoOwor5LiL5pesID4gbGFzdFwtdGhpcmRcLW9mXC10aGVcLW1vbnRoOwor6LKd5YWLID4gYmFrZXJcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor5LqC5ZCDID4gdG9cLWVhdFwtaW5kaXNjcmltaW5hbnRseTsKK+aBqeaAqCA+IFwoZmVlbGluZ1wtb2ZcKVwtcmVzZW50bWVudDsKK+S4jeWkliA+IG5vdFwtYmV5b25kXC10aGVcLXNjb3BlXC1vZjsKK+acjeWIkSA+IHNlcnZlXC1hXC1wcmlzb25cLXNlbnRlbmNlOwor6I6r6Z2eID4gY2FuXC1pdFwtYmVcLXBvc3NpYmxlXC10aGF0Owor5buj6KW/ID4gZ3Vhbmd4aVwtcHJvdmluY2VcLFwtY2hpbmE7CivlpZTngIkgPiBcKG9mXC10b3JyZW50c1wpXC1ydXNoXC1kb3duOwor6YG655WZID4gXChsZWF2ZVwtb3JcLWJlXC1hXClcLWxlZ2FjeTsKK+W4uOimjyA+IGNvbnZlbnRpb25hbFwtXCh3ZWFwb25zXCk7CivorYnliLggPiBcKGZpbmFuY2lhbFwpXC1zZWN1cml0aWVzOwor5b6A5bi4ID4gaGFiaXR1YWxseVwtaW5cLXRoZVwtcGFzdDsKK+WmluWGtiA+IHByZXR0eVwtYW5kXC1mbGlydGF0aW91czsKK+mdqeWRvSA+IFwocG9saXRpY2FsXClcLXJldm9sdXRpb247Civoq5blo4cgPiBmb3J1bVwtXChmb3JcLWRpc2N1c3Npb25cKTsKK+Wjn+aWtyA+IGVuam95XC1tYXJrZXRcLWRvbWluYW5jZTsKK+eJoeS4uSA+IHBlb255XC1cKHR5cGVcLW9mXC1mbG93ZXJcKTsKK+WgseeohSA+IGRlY2xhcmVcLWR1dGlhYmxlXC1nb29kczsKK+WFrOiqjSA+IHB1YmxpY2x5XC1rbm93blwtXCh0b1wtYmVcKTsKK+eZvOihqCA+IHRvXC1pc3N1ZVwtXChhXC1zdGF0ZW1lbnRcKTsKK+mbu+WZqCA+IFwoZWxlY3RyaWNhbFwpXC1hcHBsaWFuY2U7Civmrrfli6QgPiBwb2xpdGVseVwsXC1zb2xpY2l0b3VzbHk7CivliLDmnJ8gPiBiZWNvbWVcLWR1ZVwtXChlZ1wsXC1sb2Fuc1wpOwor55eF6ZmiID4gYVwtc3BlY2lhbGl6ZWRcLWhvc3BpdGFsOwor55eF6LGhID4gc3ltcHRvbVwtXChvZlwtYVwtZGlzZWFzZVwpOwor5qy65YeMID4gdG9cLWJ1bGx5XC1hbmRcLWh1bWlsaWF0ZTsKK+mBjeWPiiA+IHRvXC1leHRlbmRcLVwoZXZlcnl3aGVyZVwpOwor57C9572yID4gdG9cLXNpZ25cLVwoYW5cLWFncmVlbWVudFwpOwor5aCx5bCOID4gdG9cLWNvdmVyXC1cKHJlcG9ydFwpXC1uZXdzOwor5biD5pyXID4gZW5nbGlzaFwtc3VybmFtZVwsXC1icm93bjsKK+aomea6liA+IFwoYW5cLW9mZmljaWFsXClcLXN0YW5kYXJkOwor6YCA5LyRID4gcmV0aXJlbWVudFwtXChmcm9tXC13b3JrXCk7CivotqjpmYQgPiB0b1wtaW5ncmF0aWF0aW9uXC1vbnNlbGY7CivnrYbot6EgPiBhXC1wZXJzb24nJ3NcLWhhbmR3cml0aW5nOwor55uh5YqbID4gZG9cLW9uZScnc1wtYmVzdFwtXChlZmZvcnRcKTsKK+ethuiomCA+IHRha2VcLWRvd25cLVwoaW5cLXdyaXRpbmdcKTsKK+ikpeWtkCA+IGNvdHRvblwtcGFkZGVkXC1tYXR0cmVzczsKK+eXheeLgCA+IHN5bXB0b21cLVwob2ZcLWFcLWRpc2Vhc2VcKTsKK+WEmOW/qyA+IGFzXC1xdWlja2x5XC1hc1wtcG9zc2libGU7Civmv4DmmIIgPiBhcm91c2VkXC10b1wtaW5kaWduYXRpb247Civnq6XoqbEgPiBjaGlsZHJlbicnc1wtZmFpcnlcLXRhbGVzOwor5o+Q5LqkID4gc3VibWl0XC1cKGFcLXJlcG9ydFwsXC1ldGNcKTsKK+S+m+iBtyA+IGhvbGRcLWFuXC1vZmZpY2VcLW9yXC1wb3N0Owor5L6G6IeqID4gdG9cLWNvbWVcLWZyb21cLVwoYVwtcGxhY2VcKTsKK+eXheW+gSA+IHN5bXB0b21cLVwob2ZcLWFcLWRpc2Vhc2VcKTsKK+WumuiqniA+IGF0dHJpYnV0aXZlXC1cKG1vZGlmaWVyXCk7CivmvILmtYEgPiBjYXJyaWVkXC1ieVwtdGhlXC1jdXJyZW50Owor5qOE5qyKID4gdG9cLWFic3RhaW5cLWZyb21cLXZvdGluZzsKK+aNj+WQiCA+IHRvXC1hY3RcLWFzXC1hXC1nb1wtYmV0d2VlbjsKK+eUsuadvyA+IGRlY2tcLVwob2ZcLWFcLWJvYXRcLFwtZXRjXC5cKTsKK+aNj+S8sCA+IHRvXC1hY3RcLWFzXC1hXC1nb1wtYmV0d2VlbjsKK+aihea0viA+IHRoZVwtbWVpXC1sYW5mYW5nXC1zY2hvb2w7CivmtonpgY4gPiBmb3JkXC1cKGFcLXN0cmVhbVwsXC1yaXZlclwpOwor6auU5YWnID4gaW50ZXJuYWxcLVwodG9cLXRoZVwtYm9keVwpOwor5Lu76IG3ID4gaG9sZFwtYW5cLW9mZmljZVwtb3JcLXBvc3Q7CivohIrmpI4gPiBiYWNrXC1cKG9mXC1hXC12ZXJ0aWJyYXRlXCk7CivkvK/niLYgPiBmYXRoZXInJ3NcLWVsZGVyXC1icm90aGVyOwor5L+d5a6JID4gZW5zdXJlXC1wdWJsaWNcLXNlY3VyaXR5Owor5LiK6LqrID4gdXBwZXJcLXBhcnRcLW9mXC10aGVcLWJvZHk7CivlrZfmrrUgPiBcKG51bWVyaWNcLFwtZGF0ZGFcKVwtZmllbGQ7CivkuKboiIkgPiBkZXZlbG9wXC1zaW11bHRhbmVvdXNseTsKK+S4gOiZnyA+IGZpcnN0XC1kYXlcLW9mXC10aGVcLW1vbnRoOwor5a+p5YikID4gcHV0XC1cKHNvbWVvbmVcKVwtdG9cLXRyaWFsOwor5ZCQ6JWDID4gYW5jaWVudFwtbmFtZVwtZm9yXC10aWJldDsKK+a4rOWumiA+IHRvXC1zdXJ2ZXlcLWFuZFwtZXZhbHVhdGU7Civms7DnvoUgPiBcKGVuZ2xpc2hcLXN1cm5hbWVcKVwtdHlsbzsKK+WQnuiBsiA+IHRvXC1zd2FsbG93XC1vbmUnJ3NcLWNyaWVzOwor6LKh5pyDID4gZmluYW5jZVwtYW5kXC1hY2NvdW50aW5nOwor5Lqk5piTID4gXChidXNpbmVzc1wpXC10cmFuc2FjdGlvbjsKK+ePvuW9uSA+IFwobWlsaXRhcnlcKVwtYWN0aXZlXC1kdXR5Owor5rCR6YG4ID4gZGVtb2NyYXRpY2FsbHlcLWVsZWN0ZWQ7CivkvK/kvK8gPiBmYXRoZXInJ3NcLWVsZGVyXC1icm90aGVyOwor5rW35ouUID4gaGVpZ2h0XC1hYm92ZVwtc2VhXC1sZXZlbDsKK+enkeaKgCA+IHNjaWVuY2VcLWFuZFwtdGVjaG5vbG9neTsKK+S7u+WFjSA+IHRvXC1hcHBvaW50XC1hbmRcLWRpc21pc3M7CivkuoLlr6sgPiB0b1wtd3JpdGVcLXdpdGhvdXRcLWJhc2lzOwor5aaW6Im3ID4gcHJldHR5XC1hbmRcLWZsaXJ0YXRpb3VzOwor6Zu26YyiID4gY2hhbmdlXC1cKHNhaWRcLW9mXC1tb25leVwpOwor5LiN5pyNID4gbm90XC1hY2NlcHRcLVwoc29tZXRoaW5nXCk7CivpvLvlhZIgPiBhXC1ob2xlXC1pblwtYW5cLWltcGxlbWVudDsKK+aEn+WYhiA+IHRvXC1zaWdoXC1cKHdpdGhcLWZlZWxpbmdcKTsKK+WMluijnSA+IFwob2ZcLWFjdG9yc1wpXC10b1wtbWFrZVwtdXA7CivkupHljZcgPiB5dW5uYW5cLXByb3ZpbmNlXCxcLWNoaW5hOwor5pyN5a6MID4gc2VydmVcLW91dFwtXChhXC1zZW50ZW5jZVwpOwor6buD5bGxID4gbXRcLlwtaHVhbmdcLVwoaHVhbmdcLXNoYW5cKTsKK+WPpOazoiA+IGd1Ym9cLVwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+eMnOaLsyA+IGFcLWZpbmdlclwtZ3Vlc3NpbmdcLWdhbWU7CivliqnoqZ4gPiBwYXJ0aWNsZVwtXChncmFtbWF0aWNhbFwpOwor6K6T5Z2QID4gdG9cLWdpdmVcLXVwXC1vbmUnJ3NcLXNlYXQ7Civmsrnlg7kgPiBvaWxcLVwocGV0cm9sZXVtXClcLXByaWNlOwor5beo6aGNID4gYVwtaHVnZVwtc3VtXC1cKG9mXC1tb25leVwpOwor5aWU5pS+ID4gYm9sZFwtYW5kXC11bnJlc3RyYWluZWQ7CivlvpfmhI8gPiBcKGJlXClcLXByb3VkXC1vZlwtb25lc2VsZjsKK+WllOW/mSA+IGJlXC1idXN5XC1ydXNoaW5nXC1hYm91dDsKK+WJm+ebtCA+IHVwcmlnaHRcLWFuZFwtb3V0c3Bva2VuOwor5beh6YKPID4gYmVcLW9uXC1cKHBvbGljZVwpXC1wYXRyb2w7CivpmY3npo8gPiBibGVzc2luZ3NcLWZyb21cLWhlYXZlbjsKK+eCuOiXpSA+IGV4cGxvc2l2ZVwtXChzdWJzdGFuY2VcKTsKK+WkouaDsyA+IHRvXC1kcmVhbVwtb2ZcLVwoaW5cLXZhaW5cKTsKK+mYsuepuiA+IGFudGlcLWFpcmNyYWZ0XC1kZWZlbnNlOwor5YWI6YCyID4gYWR2YW5jZWRcLVwodGVjaG5vbG9neVwpOwor5aWU5ZG9ID4gcnVzaFwtYWJvdXRcLW9uXC1lcnJhbmRzOwor6Kej5rG6ID4gdG9cLXNldHRsZVwtXChhXC1kaXNwdXRlXCk7CivpmLLmsrsgPiBcKHByZXZlbnRpb25cLWFuZFwpXC1jdXJlOwor5YiG5qmfID4gXCh0ZWxlcGhvbmVcKVwtZXh0ZW5zaW9uOwor55y+5pybID4gcGVvcGxlJydzXC1leHBlY3RhdGlvbnM7Civnmb3ns5YgPiBcKHJlZmluZWRcKVwtd2hpdGVcLXN1Z2FyOwor5pOB5oi0ID4gdG9cLXN1cHBvcnRcLVwoYVwtcGVyc29uXCk7CivooajpgZQgPiB0b1wtdm9pY2VcLVwoYW5cLW9waW5pb25cKTsKK+WgseaZgiA+IGdpdmVcLXRoZVwtY29ycmVjdFwtdGltZTsKK+maqOWSjCA+IGFtaWFibGVcLVwoZGlzcG9zaXRpb25cKTsKK+WHveaOiCA+IGNvcnJlc3BvbmRlbmNlXC1jb3Vyc2U7Civov7fmiIAgPiB0b1wtYmVcLWluZmF0dWF0ZWRcLXdpdGg7Civmi5fpmbcgPiBnZW9sb2dpY2FsXC1kZXByZXNzaW9uOwor5YWN55arID4gaW1tdW5pdHlcLVwodG9cLWRpc2Vhc2VcKTsKK+WFrOeEtiA+IFwoZG9cLXNvbWV0aGluZ1wpXC1vcGVubHk7CivloIXmjIEgPiB0b1wtY29udGludWVcLXVwaG9sZGluZzsKK+WHuuW3riA+IGJlXC1vblwtYVwtYnVzaW5lc3NcLXRyaXA7CivmvLjpgLIgPiBwcm9ncmVzc1wtc3RlcFwtYnlcLXN0ZXA7CivpmZDliLYgPiBcKGltcG9zZVwpXC1yZXN0cmljdGlvbnM7CivlubTliJ0gPiBiZWdpbm5pbmdcLW9mXC10aGVcLXllYXI7CivnrYbpjIQgPiBwdXRcLWRvd25cLVwoaW5cLXdyaXRpbmdcKTsKK+aMieiEiCA+IGZlZWxcLVwodGFrZVwpXC10aGVcLXB1bHNlOwor5oub6IGYID4gdGFrZVwtam9iXC1hcHBsaWNhdGlvbnM7CivlhYnlt54gPiBrd2FuZ2p1XC1cKHNvdXRoXC1rb3JlYVwpOwor5bel5ZWGID4gaW5kdXN0cnlcLWFuZFwtY29tbWVyY2U7CivmvrPmtLIgPiBhdXN0cmFsaWFcLVwoY29udGluZW50XCk7Civnmq7lhZIgPiBcKGRvdWdoXCxcLWV0Y1wuXCl3cmFwcGVyczsKK+eUmOiChSA+IGdhbnN1XC1wcm92aW5jZVwsXC1jaGluYTsKK+WuiemWkiA+IHBlYWNlZnVsXC1hbmRcLWNhcmVmcmVlOwor6Imx5beoID4gdmVyeVwtZGlmZmljdWx0XC1cKHRhc2tcKTsKK+igu+apqyA+IHJ1ZGVcLWFuZFwtdW5yZWFzb25hYmxlOwor57C95a2XID4gdG9cLXNpZ25cLVwoYVwtc2lnbmF0dXJlXCk7CivlronpgakgPiBxdWlldFwtYW5kXC1jb21mb3J0YWJsZTsKK+a4rOiJryA+IHRvXC1zdXJ2ZXlcLWFuZFwtbWVhc3VyZTsKK+ePrei7iiA+IHJlZ3VsYXJcLWJ1c1wtXChzZXJ2aWNlXCk7CivmoYjnlLEgPiBtYWluXC1wb2ludHNcLW9mXC1hXC1jYXNlOwor6LK26KyrID4gYmFuaXNoXC1mcm9tXC10aGVcLWNvdXJ0Owor6buD6a2aID4geWVsbG93XC1jcm9ha2VyXC1cKGZpc2hcKTsKK+i6q+S4liA+IG9uZScnc1wtbGlmZVwtZXhwZXJpZW5jZTsKK+aKseaBqCA+IGhhdmVcLWFcLWduYXdpbmdcLXJlZ3JldDsKK+iHquWPpCA+IFwoc2luY2VcKVwtYW5jaWVudFwtdGltZXM7CivnrIbmlpcgPiByb3VuZFwtYm90dG9tZWRcLWJhc2tldDsKK+S6jOiZnyA+IDJcLW5kXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor6LKh57aTID4gZmluYW5jZVwtYW5kXC1lY29ub21pY3M7CivkuLvoqp4gPiBcKGdyYW1tYXRpY2FsXClcLXN1YmplY3Q7CivlmJblmJYgPiB0b1wtY2xpY2tcLW9uZScnc1wtdG9uZ3VlOwor6by756WWID4gdGhlXC1lYXJsaWVzdFwtYW5jZXN0b3I7CivmiIDmhJsgPiB0b1wtaGF2ZVwtYVwtbG92ZVwtYWZmYWlyOwor5pq06LeMID4gc3RlZXBcLWZhbGxcLVwoaW5cLXByaWNlXCk7CivorpPplosgPiB0b1wtZ2V0XC1vdXRcLW9mXC10aGVcLXdheTsKK+WwseS+vyA+IGF0XC1cKHlvdXJcKVwtY29udmVuaWVuY2U7Civlj6/ouqsgPiB0b1wtZml0XC13ZWxsXC1cKGNsb3RoZXNcKTsKK+enkeeglCA+IFwoc2NpZW50aWZpY1wpXC1yZXNlYXJjaDsKK+WPr+isgiA+IGl0XC1jb3VsZFwtZXZlblwtYmVcLXNhaWQ7CivorpPot68gPiB0b1wtbWFrZVwtd2F5XC1cKGZvclwtc3RoXCk7CivmiLbkuLsgPiBoZWFkXC1vZlwtdGhlXC1ob3VzZWhvbGQ7CivpoJLooYwgPiBpc3N1ZVwtZm9yXC1lbmZvcmNlbWVudDsKK+a5luWNlyA+IGh1bmFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+mkmOaVuCA+IFwobnVtZXJpY2FsXClcLXJlbWFpbmRlcjsKK+S4jeeuoSA+IG5vXC1tYXR0ZXJcLVwod2hhdFwsXC1ob3dcKTsKK+eJiOmdoiA+IHNwYWNlXC1vZlwtYVwtd2hvbGVcLXBhZ2U7CivkuI3npoEgPiBjYW4nJ3RcLWhlbHBcLVwoZG9pbmdcLXN0aDsKK+aYj+i/tyA+IHRvXC1sb3NlXC1jb25zY2lvdXNuZXNzOwor5ZCQ57WuID4gdGhlXC1vcGVuaW5nXC1vZlwtYVwtYm9sbDsKK+mLquW5syA+IHNwcmVhZFwtb3V0XC1cKG1hdGVyaWFsXCk7CivkuI3nkIYgPiByZWZ1c2VcLXRvXC1hY2tub3dsZWRnZTsKK+iuiuiHiSA+IHN1ZGRlbmx5XC10dXJuXC1ob3N0aWxlOwor5rW35pavID4gaGF5ZXNcLVwobWljcm9jb21wdXRlclwpOwor5p2x5b63ID4gXChmb3JtZXJcKVwtZWFzdFwtZ2VybWFueTsKK+aal+ekgSA+IHN1Ym1lcmdlZFwtcmVlZlwtXChyb2NrXCk7Civosrflpb0gPiB0b1wtaW5ncmF0aWF0ZVwtb25lc2VsZjsKK+aal+eWviA+IHVubWVudGlvbmFibGVcLWRpc2Vhc2U7CivogbPli5UgPiB0b1wtY3JlYXRlXC1hXC1zZW5zYXRpb247Civmnb/lh7MgPiB3b29kZW5cLWJlbmNoXC1vclwtc3Rvb2w7CivkuI3mmocgPiBoYXZlXC1ub1wtdGltZVwtXChmb3JcLXN0aDsKK+aCsuaGpCA+IGdyaWVmXC1hbmRcLWluZGlnbmF0aW9uOwor54m555SiID4gc3BlY2lhbFwtbG9jYWxcLXByb2R1Y3Q7Civola3mop0gPiBcKGVjb25vbWljXClcLWRlcHJlc3Npb247Civmrq/okawgPiBmdW5lcmFsXC1hbmRcLWludGVybWVudDsKK+WRveS7pCA+IFwoYW5cKVwtb3JkZXJcLW9yXC1jb21tYW5kOwor5rWB5LqhID4gdG9cLVwoZm9yY2VcLWludG9cKVwtZXhpbGU7CivljZHmsaEgPiBkZXNwaWNhYmxlXC1hbmRcLWZpbHRoeTsKK+aatOWNkiA+IGRpZVwtb2ZcLXN1ZGRlblwtaWxsbmVzczsKK+mAvOimliA+IGxvb2tcLWF0XC1mcm9tXC1jbG9zZVwtdXA7Civml7rmnIggPiBidXN5XC1cKGJ1c2luZXNzXClcLW1vbnRoOwor5YiX6LuKID4gdHJhaW5cLVwocmFpbHdheVwtdGVybVwpOwor5Y+L5aW9ID4gZnJpZW5kbHlcLVwocmVsYXRpb25zXCk7Civmq4PpgoogPiB0b1wtbGllXC1vblwtb25lJydzXC1zaWRlOwor5Yi26KOBID4gXChlY29ub21pY1wpXC1zYW5jdGlvbnM7CivnpL7kuqQgPiBcKHNvY2lhbFwpXC1pbnRlcmFjdGlvbjsKK+aTjeihjCA+IFwoc3R1ZGVudCcnc1wpXC1iZWhhdmlvcjsKK+WnpeWnpSA+IG1hdGVybmFsXC1ncmFuZG1vdGhlcjsKK+e3qOe1hCA+IG9yZ2FuaXplXC1pbnRvXC1ncm91cHM7Civopqrov5EgPiBnZXRcLWNsb3NlXC10b1wtc29tZW9uZTsKK+e1kOirliA+IFwocmVhY2hcLWFcKVwtY29uY2x1c2lvbjsKK+mXoei/sCA+IGV4cG91bmRcLVwoYVwtcG9zaXRpb25cKTsKK+W/g+WvkiA+IGJlXC12ZXJ5XC1kaXNhcHBvaW50ZWQ7CivntYToo50gPiBhc3NlbWJsZVwtYW5kXC1pbnN0YWxsOwor6KqT5q27ID4gdG9cLXBsZWRnZVwtb25lJydzXC1saWZlOwor5Z+O6YSJID4gY2l0eVwtYW5kXC1jb3VudHJ5c2lkZTsKK+WNlOWumiA+IFwocmVhY2hcLWFuXClcLWFncmVlbWVudDsKK+awtOWfnyA+IFwodGVycml0b3JpYWxcKVwtd2F0ZXJzOwor5Yu75pW0ID4gbmVhdFwtYW5kXC13ZWxsXC1zcGFjZWQ7CivlhafplqMgPiBcKGdvdmVybm1lbnRcKVwtY2FiaW5ldDsKK+W7oOeJjCA+IGJyYW5kXC1cKG9mXC1hXC1wcm9kdWN0XCk7CivlpbblpbYgPiBwYXRlcm5hbFwtZ3JhbmRtb3RoZXI7Civnt6jmrKEgPiBvcmRlclwtb2ZcLWFycmFuZ2VtZW50Owor5pWZ5o6IID4gdW5pdmVyc2l0eVwtcHJvZmVzc29yOwor5Yui5b+FID4gaXNcLWJvdW5kXC10b1wtXChoYXBwZW5cKTsKK+WiqOaxgSA+IHByZXBhcmVkXC1jaGluZXNlXC1pbms7CivlpKflsIcgPiBhXC1nZW5lcmFsXC1vclwtYWRtaXJhbDsKK+awo+S6uiA+IHRvXC1nZXRcLXNvbWVvbmVcLWFuZ3J5Owor5YyF5aC0ID4gYm9va1wtYVwtd2hvbGVcLXRoZWF0cmU7Civlha3omZ8gPiA2dGhcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivoqZ7lvZkgPiBcKGxpc3RcLW9mXClcLXZvY2FidWxhcnk7CivmlJ3lvbEgPiB0b1wtdGFrZVwtYVwtcGhvdG9ncmFwaDsKK+i+r+eZvSA+IG9mZmVyXC1hblwtZXhwbGFuYXRpb247CivmjqHoqKogPiBjb3ZlclwtXChhXC1uZXdzXC1zdG9yeVwpOwor5YW156uZID4gYXJteVwtc2VydmljZVwtc3RhdGlvbjsKK+i7jeiyuyA+IG1pbGl0YXJ5XC1leHBlbmRpdHVyZTsKK+aTmuaCiSA+IGFjY29yZGluZ1wtdG9cLXJlcG9ydHM7CivliY3lubQgPiB0aGVcLXllYXJcLWJlZm9yZVwtbGFzdDsKK+ijnOiJsiA+IGNvbXBsZW1lbnRhcnlcLWNvbG91cjsKK+aUu+WLoiA+IFwobWlsaXRhcnlcKVwtb2ZmZW5zaXZlOwor5YiG5pOUID4gc2hhcmVcLXJlc3BvbnNpYmlsaXR5Owor6ZaL55m8ID4gZXhwbG9pdFwtXChhXC1yZXNvdXJjZVwpOwor5q235LujID4gc3VjY2Vzc2l2ZVwtZHluYXN0aWVzOwor6L+R5pelID4gaW5cLXRoZVwtcGFzdFwtZmV3XC1kYXlzOwor5Zue6KiqID4gXChwYXlcLWFcKVwtcmV0dXJuXC12aXNpdDsKK+eXheiuiiA+IHBhdGhvbG9naWNhbFwtY2hhbmdlczsKK+WHjOaZqCA+IGVhcmx5XC1pblwtdGhlXC1tb3JuaW5nOwor57Gg57WxID4gXChpblwpXC1nZW5lcmFsXC1cKHRlcm1zXCk7Civmp7Pni4AgPiBjZXJ0aWZpY2F0ZVwtb2ZcLW1lcml0Owor5YCa6YeNID4gdG9cLXJlbHlcLWhlYXZpbHlcLXVwb247CivmiorphZIgPiByYWlzZVwtb25lJydzXC13aW5lXC1jdXA7Civou43nlKggPiBcKGZvclwpXC1taWxpdGFyeVwtXCh1c2VcKTsKK+S/nemHjSA+IHRha2VcLWNhcmVcLW9mXC1vbmVzZWxmOwor5aCx5LuHID4gdG9cLXJldmVuZ2VcLVwob25lc2VsZlwpOwor5oqE6LqrID4gdG9cLXNlYXJjaFwtXChhXC1wZXJzb25cKTsKK+ajieilliA+IGNvdHRvblwtcGFkZGVkXC1qYWNrZXQ7CivlhJjml6kgPiBhc1wtZWFybHlcLWFzXC1wb3NzaWJsZTsKK+WfueS/riA+IHRvXC1yZXBhaXJcLWVhcnRod29ya3M7CivlsIrph40gPiB0b1wtdmFsdWVcLVwoc29tZXRoaW5nXCk7Civnl4XngbYgPiBmb2N1c1wtXChvZlwtaW5mZWN0aW9uXCk7CivkvrXopbIgPiB0b1wtaW52YWRlXC1hbmRcLWF0dGFjazsKK+ewoeactCA+IHNpbXBsZVwtYW5kXC11bmFkb3JuZWQ7Civpp4HpgYsgPiB0cmFuc3BvcnRcLWJ5XC1saWdodGVyOwor5L6L6KiAID4gaW50cm9kdWN0b3J5XC1yZW1hcmtzOwor5YKZ5p+lID4gZm9yXC1mdXR1cmVcLXJlZmVyZW5jZTsKK+WuiemAuCA+IGVhc3lcLWFuZFwtY29tZm9ydGFibGU7Civnl4XmiL8gPiB3YXJkXC1cKG9mXC1hXC1ob3NwaXRhbFwpOwor6KGo5b2wID4gY2l0ZVwtXChpblwtZGlzcGF0Y2hlc1wpOwor5ouc5pyDID4gcGF5XC1hblwtb2ZmaWNpYWxcLWNhbGw7CivlsIjnqIsgPiBzcGVjaWFsXC1wdXJwb3NlXC10cmlwOwor5YG95bmjID4gY291bnRlcmZlaXRcLWN1cnJlbmN5Owor5omN55WlID4gYWJpbGl0eVwtYW5kXC1zYWdhY2l0eTsKK+WxpOasoSA+IGFycmFuZ2VtZW50XC1vZlwtaWRlYXM7CivnrYbms5UgPiB0ZWNobmlxdWVcLW9mXC13cml0aW5nOwor5Lqk6YCaID4gXChhdXRvbW9iaWxlXClcLXRyYWZmaWM7CivllZ/nqIsgPiBzZXRcLW91dFwtb25cLWFcLWpvdXJuZXk7CivnlavloLEgPiBwaWN0b3JpYWxcLVwobWFnYXppbmVcKTsKK+S+teaTviA+IHRvXC1pbnZhZGVcLWFuZFwtaGFyYXNzOwor5bGP5bmVID4gXCh0dlwtb3JcLW1vdmllXClcLXNjcmVlbjsKK+eQg+e2siA+IG5ldFwtXChmb3JcLWJhbGxcLWdhbWVzXCk7CivmvKLljJYgPiBjaGluZXNlXC1sb2NhbGl6YXRpb247CivlsI3ls5kgPiBtdXR1YWxcLWNvbmZyb250YXRpb247Civnvo7ou40gPiB1c1wtYXJteVx8YXJtZWRcLWZvcmNlczsKK+S9jeaWvCA+IGJlXC1zaXR1YXRlZFwtXChpblwsXC1hdFwpOwor6K6K6aC7ID4gZnJlcXVlbmN5XC1jb252ZXJzaW9uOwor5Zau5a2XID4gaW5kaXZpZHVhbFwtY2hhcmFjdGVyOwor5riF5pepID4gZWFybHlcLWluXC10aGVcLW1vcm5pbmc7Civog4zlv4MgPiBhXC1zbGVldmVsZXNzXC1nYXJtZW50Owor5oi25Y+jID4gcmVnaXN0ZXJlZFwtcmVzaWRlbmNlOwor5pys56eRID4gdW5kZXJncmFkdWF0ZVwtY291cnNlOwor5L6/5LitID4gYXRcLW9uZScnc1wtY29udmVuaWVuY2U7Civlr7blio0gPiBhXC1kb3VibGVcLWVkZ2VkXC1zd29yZDsKK+mGnumHgCA+IG11bGxcLW92ZXJcLVwoYW5cLWlzc3VlXCk7CivmmpfomZ8gPiBzZWNyZXRcLXNpZ25hbFwtXChzaWduXCk7CivogIHniLogPiBtYXRlcm5hbFwtZ3JhbmRmYXRoZXI7Civnj63mnJ8gPiBzY2hlZHVsZVwtXChmb3JcLWZsaWdodDsKK+iyt+aWuSA+IGJ1eWVyXC1cKGluXC1jb250cmFjdHNcKTsKK+WuieWonCA+IGFubmFcLVwocGVyc29uJydzXC1uYW1lXCk7CivosqzmiJAgPiBnaXZlXC1zb21lYm9keVwtYVwtdGFzazsKK+Wkmum6vCA+IGhvd1wtXCh3b25kZXJmdWxcLFwtZXRjXCk7CivphazorJ0gPiB0b1wtdGhhbmtcLXdpdGhcLWFcLWdpZnQ7CivlvoDov5QgPiB0b1wtZ29cLWJhY2tcLWFuZFwtZm9ydGg7CivljIXph5EgPiBjb3Zlclwtd2l0aFwtZ29sZFwtbGVhZjsKK+aakeeGsSA+IGhvdFwtXChzdW1tZXJcKVwtd2VhdGhlcjsKK+S4jeabviA+IG5ldmVyXC1cKGhhdmVcLWRvbmVcLXN0aDsKK+e4vemDqCA+IGdlbmVyYWxcLWhlYWRxdWFydGVyczsKK+iytuWAvCA+IHRvXC1iZWNvbWVcLWRldmFsdWF0ZWQ7CivpgbrpqrggPiBcKGRlYWRcKVwtaHVtYW5cLXJlbWFpbnM7CivpgbrpqqggPiBcKGRlYWRcKVwtaHVtYW5cLXJlbWFpbnM7CivphaznrZQgPiB0b1wtdGhhbmtcLXdpdGhcLWFcLWdpZnQ7CivpoZ7mjqggPiB0b1wtcmVhc29uXC1ieVwtYW5hbG9neTsKK+WSjOWlvSA+IHRvXC1iZWNvbWVcLXJlY29uY2lsZWQ7CivmnKzlnJ8gPiBvbmUnJ3NcLW5hdGl2ZVwtY291bnRyeTsKK+S6nuWAqyA+IGFhcm9uXC1cKGFcLW1hbicnc1wtbmFtZVwpOwor576e5oGlID4gXChhXC1mZWVsaW5nXC1vZlwpXC1zaGFtZTsKK+WTiOS9myA+IGhhcnZhcmRcLVwodW5pdmVyc2l0eVwpOwor5pqR5pyfID4gc3VtbWVyXC12YWNhdGlvblwtdGltZTsKK+WRvOWWiiA+IHNob3V0XC1cKHNsb2dhbnNcLFwtZXRjXCk7Civnub3ntJsgPiBpblwtcmlvdG91c1wtcHJvZnVzaW9uOwor5ZGI5aCxID4gdG9cLVwoc3VibWl0XC1hXClcLXJlcG9ydDsKK+WNiueZvSA+IGZpZnR5XC1cKHllYXJzXC1vZlwtYWdlXCk7CivwoIGlID4gdGhlXC1ob3Juc1wtb2ZcLWFcLXNoZWVwOwor5piC54S2ID4gdXByaWdodFwtYW5kXC11bmFmcmFpZDsKK+mChOiqqiA+IHRvXC1hZGRcLVwoaW5cLXNwZWFraW5nXCk7Civmm7TliqAgPiBtb3JlXC1cKHRoYW5cLXN0aFwtZWxzZVwpOwor54i654i6ID4gcGF0ZXJuYWxcLWdyYW5kZmF0aGVyOwor5LiN5YudID4gY2Fubm90XC1iZWFyXC1vclwtc3RhbmQ7CivmlZfog4MgPiBzcG9pbFwtb25lJydzXC1hcHBldGl0ZTsKK+iuiuW/gyA+IGNlYXNlXC10b1wtYmVcLWZhaXRoZnVsOwor5LiK5YCLID4gZmlyc3RcLVwob2ZcLXR3b1wtcGFydHNcKTsKK+WllOa1gSA+IGZsb3dcLWF0XC1ncmVhdFwtc3BlZWQ7Civml6XmlocgPiBqYXBhbmVzZVwtXChsYW5ndWFnZVwpOwor5pKe6KaLID4gdG9cLW1lZXRcLWJ5XC1hY2NpZGVudDsKK+W3rumhjSA+IGJhbGFuY2VcLVwoZmluYW5jaWFsXCk7CivljYrmiKogPiBoYWxmXC1cKG9mXC1hXC1zZWN0aW9uXCk7CivliZvnupQgPiBcKGp1c3RcKVwtYVwtbW9tZW50XC1hZ287Civlu6DnpKYgPiBmYWN0b3JpZXNcLWFuZFwtbWluZXM7CivnhrHng4ggPiB3YXJtXC1cKHdlbGNvbWVcLFwtZXRjXCk7Civovq/orbcgPiBzcGVha1wtaW5cLWRlZmVuY2VcLW9mOwor5aSn5om5ID4gbGFyZ2VcLXF1YW50aXRpZXNcLW9mOwor57aB56WoID4ga2lkbmFwXC1cKGZvclwtcmFuc29tXCk7Civnmb3pioUgPiBjb3BwZXJcLW5pY2tlbFwtYWxsb3k7CivntbHnqLEgPiBjb2xsZWN0aXZlbHlcLWNhbGxlZDsKK+W7ouawoyA+IHdhc3RlXC1cKGV4aGF1c3RcKVwtZ2FzOwor5YyF5a2QID4gc3RlYW1lZFwtc3R1ZmZlZFwtYnVuOwor57SF6JGJID4gcmVkXC1hdXR1bW5hbFwtbGVhdmVzOwor55m+6LKoID4gZ2VuZXJhbFwtbWVyY2hhbmRpc2U7CivprKLpq64gPiBoYWlyXC1vblwtdGhlXC10ZW1wbGVzOwor5YSY6YePID4gYXNcLW11Y2hcLWFzXC1wb3NzaWJsZTsKK+i6q+mrmCA+IFwoYVwtcGVyc29uJydzXClcLWhlaWdodDsKK+aVmeWtuCA+IHRlYWNoZXJcLWFuZFwtc3R1ZGVudDsKK+mEmeS6uiA+IHlvdXJcLWh1bWJsZVwtc2VydmFudDsKK+aVheWuriA+IHRoZVwtaW1wZXJpYWxcLXBhbGFjZTsKK+aUv+WxgCA+IHBvbGl0aWNhbFwtc2l0dWF0aW9uOwor552/5pm6ID4gd2lzZVwtYW5kXC1mYXJzaWdodGVkOwor6KOc6KeSID4gc3VwcGxlbWVudGFyeVwtYW5nbGU7CivpgLLmlLsgPiBhdHRhY2tcLVwobWlsaXRhcmlseVwpOwor5pO65byEID4gbW92ZVwtYmFja1wtYW5kXC1mb3J0aDsKK+mBjeW4gyA+IGJlXC1mb3VuZFwtZXZlcnl3aGVyZTsKK+aUueWQjSA+IHRvXC1jaGFuZ2VcLW9uZXNcLW5hbWU7Civoo5zogIMgPiBtYWtlXC11cFwtZXhhbWluYXRpb247Civmkq3lvIQgPiBvcmRlclwtc3ViamVjdFwtYWJvdXQ7CivlubTlupUgPiB0aGVcLWVuZFwtb2ZcLXRoZVwteWVhcjsKK+e0hOargyA+IGFya1wtb2ZcLXRoZVwtY292ZW5hbnQ7Civluavlt6UgPiBoZWxwXC13aXRoXC1mYXJtXC13b3JrOwor5aCx5buiID4gcmVwb3J0XC1hc1wtd29ydGhsZXNzOwor5oqs6aCtID4gdG9cLXJhaXNlXC1vbmUnJ3NcLWhlYWQ7Civln7fmjowgPiB3aWVsZFwtXChwb3dlclwsXC1ldGNcLlwpOwor5YW15qyKID4gbWlsaXRhcnlcLWxlYWRlcnNoaXA7CivpgLzkvpsgPiBleHRvcnRcLWFcLWNvbmZlc3Npb247CivplovmlL4gPiBsaWZ0XC1cKHJlc3RyaWN0aW9uc1wpOwor55m75pyIID4gZ29cLVwodXBcKVwtdG9cLXRoZVwtbW9vbjsKK+W5o+WAvCA+IHZhbHVlXC1vZlwtYVwtY3VycmVuY3k7CivlhrDloLQgPiBza2F0aW5nXC1vclwtaWNlXC1yaW5rOwor55uu5YmNID4gYXRcLXRoZVwtcHJlc2VudFwtdGltZTsKK+ethuitryA+IHdyaXR0ZW5cLXRyYW5zbGF0aW9uOwor562G6KmmID4gd3JpdHRlblwtZXhhbWluYXRpb247Civpl5zliIcgPiBiZVwtZGVlcGx5XC1jb25jZXJuZWQ7CivotbDplosgPiBnZXRcLW91dFwtb2ZcLXRoZVwtd2F5XCE7CivopobkuqEgPiBmYWxsXC1cKG9mXC1hblwtZW1waXJlXCk7Civoo4HmlrcgPiBjb25zaWRlclwtYW5kXC1kZWNpZGU7CivntIDlhYMgPiBiZWdpbm5pbmdcLW9mXC1hblwtZXJhOwor5YW15ZyYID4gbGFyZ2VcLW1pbGl0YXJ5XC11bml0Owor6L6m5LqLID4gdG9cLWhhbmRsZVwtXChhZmZhaXJzXCk7Civns77lgY8gPiB0b1wtY29ycmVjdFwtYW5cLWVycm9yOwor5omN6K2YID4gYWJpbGl0eVwtYW5kXC1pbnNpZ2h0Owor5oyJ55CGID4gYWNjb3JkaW5nXC10b1wtcmVhc29uOwor6LyU5bmjID4gZnJhY3Rpb25hbFwtY3VycmVuY3k7CivmkK3kvLQgPiB0cmF2ZWxcLXdpdGhcLWFub3RoZXI7CivlnIvml5cgPiBmbGFnXC1cKG9mXC1hXC1jb3VudHJ5XCk7Civou43mlL8gPiBhcm15XC1hbmRcLWdvdmVybm1lbnQ7Civnl4Xms4EgPiBzdGF0ZVwtb2ZcLWFuXC1pbGxuZXNzOwor6L2J5ZCRID4gY2hhbmdlXC1vZlwtZGlyZWN0aW9uOwor55m95Y23ID4gYmxhbmtcLWV4YW1pbmVcLXBhcGVyOwor5YWr5LuZID4gdGhlXC1laWdodFwtaW1tb3J0YWxzOwor6LyD5aSnID4gY29tcGFyYXRpdmVseVwtbGFyZ2U7CivnrYbnrpcgPiBkb1wtYVwtc3VtXC1pblwtd3JpdGluZzsKK+ijgeWlqiA+IGNvbnNpZGVyXC1hbmRcLWRlY2lkZTsKK+aPkOWHuiA+IHRvXC1yYWlzZVwtXChhblwtaXNzdWVcKTsKK+eZveS6uiA+IHdoaXRlXC1tYW5cLWFuZFwtd29tYW47CivlgZrms5UgPiB3YXlcLW9mXC1kb2luZ1wtdGhpbmdzOwor5oq954WZID4gc21va2VcLVwoYVwtY2lnYXJldHRlXCk7Civooajmg4UgPiBcKGZhY2lhbFwpXC1leHByZXNzaW9uOwor6KOc5YqpID4gXChmaW5hbmNpYWxcKVwtc3Vic2lkeTsKK+iGoOeJhyA+IFwocGhvdG9ncmFwaGljXClcLWZpbG07Civnl4Xmg4UgPiBzdGF0ZVwtb2ZcLWFuXC1pbGxuZXNzOwor5p+U6YGTID4gXCh0aGVcLXNwb3J0XC1vZlwpXC1qdWRvOwor5o6h5Yi2ID4gY29sbGVjdFwtYW5kXC1wcm9jZXNzOwor5oqE542yID4gdG9cLXNlYXJjaFwtYW5kXC1zZWl6ZTsKK+ihqOWnkCA+IG9sZGVyXC1mZW1hbGVcLWNvdXNpbjsKK+i7n+S7tiA+IFwoY29tcHV0ZXJcKVwtc29mdHdhcmU7Civmi5vlvoUgPiB0b1wtcmVjZWl2ZVwtXChndWVzdHNcKTsKK+aLnOW5tCA+IHBheVwtYVwtbmV3XC15ZWFyXC1jYWxsOwor5LqS6YCaID4gdG9cLWludGVyY29tbXVuaWNhdGU7Civnr6HkvY0gPiB0b1wtc2VpemVcLXRoZVwtdGhyb25lOwor57236bucID4gZGlzbWlzc1wtZnJvbVwtb2ZmaWNlOwor5bGs5a+mID4gdHVyblwtb3V0XC10b1wtYmVcLXRydWU7CivmtL7pgaMgPiBzZW5kXC1cKG9uXC1hXC1taXNzaW9uXCk7CivkuKbph40gPiBsYXlcLWVxdWFsXC1zdHJlc3NcLW9uOwor5omN5a24ID4gdGFsZW50XC1hbmRcLWxlYXJuaW5nOwor6ICV6ICYID4gcGxvd2luZ1wtYW5kXC13ZWVkaW5nOwor5oWI56WlID4gXChhXClcLWtpbmRseVwtXChwZXJzb25cKTsKK+WuieaogiA+IHBlYWNlXC1hbmRcLWhhcHBpbmVzczsKK+momeWPliA+IHRvXC1nYWluXC1ieVwtY2hlYXRpbmc7CivmtrzniL0gPiBjb29sXC1hbmRcLXJlZnJlc2hpbmc7Civpu6jntYQgPiBsZWFkaW5nXC1wYXJ0eVwtZ3JvdXA7CivkvovlpJYgPiBcKG1ha2VcLWFuXClcLWV4Y2VwdGlvbjsKK+itsOmhjCA+IHRvcGljXC1vZlwtZGlzY3Vzc2lvbjsKK+izh+a6kCA+IFwobmF0dXJhbFwpXC1yZXNvdXJjZXM7CivllYbmnIMgPiBjaGFtYmVyXC1vZlwtY29tbWVyY2U7CivotaTlrZcgPiBcKGZpbmFuY2lhbFwpXC1kZWZpY2l0Owor5Lim6IGvID4gcGFyYWxsZWxcLWNvbm5lY3Rpb247CivosqHmupAgPiBmaW5hbmNpYWxcLXJlc291cmNlczsKK+mHj+iuiiA+IHF1YW50aXRhdGl2ZVwtY2hhbmdlOwor6ICQ54WpID4gcGF0aWVudFwtXChhZGplY3RpdmVcKTsKK+S4mee2uCA+IHBvbHlwcm9weWxlbmVcLWZpYnJlOwor5rG66K2wID4gXChwYXNzXC1hXClcLXJlc29sdXRpb247CivpjK/lrZcgPiBpbmNvcnJlY3RcLWNoYXJhY3RlcjsKK+S8tOWUsSA+IHZvY2FsXC1hY2NvbXBhbmltZW50Owor6K2Y6LKoID4gdG9cLWtub3dcLXdoYXQnJ3NcLXdoYXQ7Civlrpjlk6EgPiBnb3Zlcm5tZW50XC1vZmZpY2lhbDsKK+eon+aApyA+IG5hdHVyYWxcLWRpc3Bvc2l0aW9uOwor6aCQ57+SID4gdG9cLXByZXBhcmVcLWFcLWxlc3NvbjsKK+a1gea0viA+IHNjaG9vbFwtXChvZlwtdGhvdWdodFwpOwor5ZOA5oaQID4gZmVlbFwtY29tcGFzc2lvblwtZm9yOwor6LKh5a+2ID4gbW9uZXlcLWFuZFwtdmFsdWFibGVzOwor6ICQ5b+DID4gcGF0aWVudFwtXChhZGplY3RpdmVcKTsKK+aXpeiqniA+IGphcGFuZXNlXC1cKGxhbmd1YWdlXCk7CivkuovlrpwgPiBcKG1ha2VcKVwtYXJyYW5nZW1lbnRzOwor5pWX6aGeID4gc2N1bVwtb2ZcLWFcLWNvbW11bml0eTsKK+aXl+iijSA+IGNoaW5lc2VcLXN0eWxlXC1kcmVzczsKK+W+kOihjCA+IHdhbGtcLXNsb3dseVwsXC1zdHJvbGw7CivosqHlipsgPiBmaW5hbmNpYWxcLXJlc291cmNlczsKK+iXj+aXjyA+IHRpYmV0YW5cLW5hdGlvbmFsaXR5Owor54Wn6aGnID4gdGFrZVwtXChnb29kXClcLWNhcmVcLW9mOwor6K6T5q2lID4gXChtYWtlXC1hXClcLWNvbmNlc3Npb247CivpgorpgaAgPiBmYXJcLWZyb21cLXRoZVwtY2VudGVyOwor5pO66ZeKID4gcGFyYWRlXC1vbmUnJ3NcLXdlYWx0aDsKK+aZtOaclyA+IHN1bm55XC1hbmRcLWNsb3VkbGVzczsKK+aCsuWjryA+IHNvbGVtblwtYW5kXC1zdGlycmluZzsKK+e9t+W4giA+IHNob3BrZWVwZXInJ3NcLXN0cmlrZTsKK+S4jeWmqCA+IHRoZXJlXC1pc1wtbm9cLWhhcm1cLWluOwor5aSn6IW4ID4gdGhlXC1sYXJnZVwtaW50ZXN0aW5lOwor5Li55Y+DID4gc2FsdmlhXC1taWx0aW9ycmhpemE7Civpm7bokL0gPiB3aXRoZXJlZFwtYW5kXC1mYWxsZW47Civlvpfnn6UgPiBcKGZpbmRcLW91dFwtYW5kXClcLWtub3c7CivnvbflrpggPiBkaXNtaXNzXC1mcm9tXC1vZmZpY2U7CivorormlYUgPiBhblwtdW5mb3Jlc2VlblwtZXZlbnQ7CivmgZDmgJUgPiBcKGknJ21cKVwtYWZyYWlkXC1cKHRoYXRcKTsKK+S4jeWVjyA+IHBheVwtbm9cLWF0dGVudGlvblwtdG87Civlu6Dopo8gPiBmYWN0b3J5XC1yZWd1bGF0aW9uczsKK+mgkOWumiA+IHNjaGVkdWxlXC1pblwtYWR2YW5jZTsKK+S4jeWHoSA+IG91dFwtb2ZcLXRoZVwtb3JkaW5hcnk7CivmlZfnuL4gPiBiZVwtdXR0ZXJseVwtZGVmZWF0ZWQ7CivmmrTliKkgPiBzdWRkZW5cLWh1Z2VcLXByb2ZpdHM7CivnvarlkI0gPiBhXC1cKGNyaW1pbmFsXClcLWNoYXJnZTsKK+S4jeS5jyA+IHRoZXJlXC1pc1wtbm9cLWxhY2tcLW9mOwor5ZCI5ZCMID4gXChidXNpbmVzc1wpXC1jb250cmFjdDsKK+W5q+i+piA+IGFzc2lzdFwtaW5cLW1hbmFnaW5nOwor6YWs5oeJID4gc29jaWFsXC1pbnRlcmFjdGlvbjsKK+eEoeirliA+IG5vXC1tYXR0ZXJcLXdoYXRcfGhvdzsKK+WOn+WumiA+IG9yaWdpbmFsbHlcLXBsYW5uZWQ7CivpgJrooYwgPiBsaWNlbmNlXC1cKGNvbXB1dGVyXCk7Civlj7jku6QgPiBjb21tYW5kaW5nXC1vZmZpY2VyOwor57O+6ZuGID4gdG9cLWdhdGhlclwtdG9nZXRoZXI7CivpgIHooYwgPiB0b1wtc2VlXC1zb21lb25lXC1vZmY7CivpgZXntIQgPiB0b1wtYnJlYWtcLWFcLXByb21pc2U7CivljbHlsYAgPiBwZXJpbG91c1wtc2l0dWF0aW9uOwor5pKl6JmfID4gZGlhbFwtXChhXC10ZWxlcGhvbmVcKTsKK+iuiuS/riA+IGJlY29tZVwtcmV2aXNpb25pc3Q7CivpgZXnq6AgPiB0b1wtYnJlYWtcLXRoZVwtcnVsZXM7CivntrLnrqEgPiBuZXR3b3JrXC1tYW5hZ2VtZW50Owor6JKZ5paHID4gbW9uZ29saWFuXC1sYW5ndWFnZTsKK+aAp+S6pCA+IHNleHVhbFwtaW50ZXJjb3Vyc2U7Civnianlg7kgPiBcKGNvbW1vZGl0eVwpXC1wcmljZXM7CivlvozlpKkgPiBkYXlcLWFmdGVyXC10b21vcnJvdzsKK+WkquW5syA+IHBlYWNlXC1hbmRcLXNlY3VyaXR5Owor55+a5pybID4gdG9cLWxvb2tcLWZvcndhcmRcLXRvOwor5Y2U5YqpID4gcHJvdmlkZVwtYXNzaXN0YW5jZTsKK+aOoemiqCA+IGNvbGxlY3RcLWZvbGtcLXNvbmdzOwor5o+P6YeRID4gdG9cLW91dGxpbmVcLWluXC1nb2xkOwor5Yqp5pWZID4gdGVhY2hpbmdcLWFzc2lzdGFudDsKK+Wkq+WppiA+IGFcLVwobWFycmllZFwpXC1jb3VwbGU7Civoi7Hoqp4gPiBlbmdsaXNoXC1cKGxhbmd1YWdlXCk7CivpgYvmsKMgPiBsdWNrXC1cKGdvb2RcLW9yXC1iYWRcKTsKK+aOoemMhCA+IGNvbGxlY3RcLWFuZFwtcmVjb3JkOwor54aK5o6MID4gYmVhclwtcGF3XC1cKGFzXC1mb29kXCk7CivmlrDlhbUgPiBuZXdcLVwoYXJteVwpXC1yZWNydWl0Owor5paD5ZG9ID4gbWVldFwtdmlvbGVudFwtZGVhdGg7CivlpLHkuosgPiBcKGhhdmVcLWFuXClcLWFjY2lkZW50Owor6Zu75L+hID4gdGVsZWNvbW11bmljYXRpb25zOwor5o2o6LqrID4gdG9cLWdpdmVcLW9uZScnc1wtbGlmZTsKK+iKneiYrSA+IGlyaXNlc1wtYW5kXC1vcmNoaWRzOwor5pS55Y+jID4gdG9cLWNvcnJlY3RcLW9uZXNlbGY7CivmlL/li5kgPiBnb3Zlcm5tZW50XC1hZmZhaXJzOwor5YWn56eRID4gbWVkaWNhbFwtZGVwYXJ0bWVudDsKK+WFg+e0oCA+IFwoY2hlbWljYWxcKVwtZWxlbWVudDsKK+WKoOWFpSA+IHRvXC1iZWNvbWVcLWFcLW1lbWJlcjsKK+mBuOWNgCA+IGVsZWN0b3JhbFwtZGlzdHJpY3Q7CivlnJ/okZcgPiBuYXRpdmVcLFwtYWJvcmlnaW5hbDsKK+aTjeWuiCA+IHBlcnNvbmFsXC1pbnRlZ3JpdHk7CivlgrLoppYgPiB0dXJuXC11cFwtb25lJydzXC1ub3NlOwor6I6r5aaCID4gaXRcLXdvdWxkXC1iZVwtYmV0dGVyOwor57WQ5bizID4gdG9cLXNldHRsZVwtYWNjb3VudHM7Civlm5vomZUgPiBhbGxcLW92ZXJcLXRoZVwtcGxhY2U7CivpgZXkvosgPiB0b1wtYnJlYWtcLXRoZVwtcnVsZXM7CivlnabnjocgPiBmcmFua1wtXChkaXNjdXNzaW9uXCk7CivpgYvkvZwgPiB0aHJlYWRcLVwoY29tcHV0aW5nXCk7CivpgLHliIogPiB3ZWVrbHlcLXB1YmxpY2F0aW9uOwor5L+d6aeVID4gZXNjb3J0XC10aGVcLWVtcGVyb3I7CivlhbHmnIkgPiB0b1wtaGF2ZVwtYWx0b2dldGhlcjsKK+WgseWWnCA+IGFubm91bmNlXC1nb29kXC1uZXdzOwor6LeR6Zu7ID4gZWxlY3RyaWNhbFwtbGVha2FnZTsKK+aSpeWIuiA+IHNwbGFzaFwtXChvZlwtYVwtZmlzaFwpOwor5ouc6KaLID4gcGF5XC1hXC1mb3JtYWxcLXZpc2l0Owor6Iux5paHID4gZW5nbGlzaFwtXChsYW5ndWFnZVwpOwor5Yid5LitID4ganVuaW9yXC1oaWdoXC1zY2hvb2w7CivmioTpgZMgPiB0b1wtdGFrZVwtYVwtc2hvcnRjdXQ7CivmvJToqqogPiBcKGRlbGl2ZXJcLWFcKVwtc3BlZWNoOwor6KaB5ZywID4gc3RyYXRlZ2ljXC1sb2NhdGlvbjsKK+i+puWgsSA+IHRvXC1ydW5cLWFcLW5ld3NwYXBlcjsKK+WHuuS7uyA+IHN0YXJ0XC1pblwtYVwtbmV3XC1qb2I7Civlhafmg4UgPiBpbnNpZGVcLWluZm9ybWF0aW9uOwor6ZaL5bGVID4gXChiZWdpblwtdG9cKVwtZGV2ZWxvcDsKK+S/hOiqniA+IHJ1c3NpYW5cLVwobGFuZ3VhZ2VcKTsKK+WxseiFsyA+IGZvb3RcLW9mXC1hXC1tb3VudGFpbjsKK+WFrOWPuCA+IFwoYnVzaW5lc3NcKVwtY29tcGFueTsKK+aLieelqCA+IGNhbXBhaWduXC1mb3JcLXZvdGVzOwor5omL6KGTID4gc3VyZ2ljYWxcLW9wZXJhdGlvbjsKK+WFq+WNpiA+IHRoZVwtZWlnaHRcLWRpYWdyYW1zOwor6auU5rqrID4gXChib2R5XClcLXRlbXBlcmF0dXJlOwor5ryC56e7ID4gZHJpZnRcLVwoZWxlY3RyaWNhbFwpOwor5YGc5ruvID4gYmVcLWF0XC1hXC1zdGFuZHN0aWxsOwor5a6Y6YK4ID4gb2ZmaWNpYWxcLXJlc2lkZW5jZTsKK+aLnOa4tCA+IHBheVwtYVwtZm9ybWFsXC12aXNpdDsKK+i7jeWumCA+IFwobWlsaXRhcnlcKVwtb2ZmaWNlcjsKK+ethuebtCA+IHBlcmZlY3RseVwtc3RyYWlnaHQ7CivnlKLnlJ8gPiB0b1wtY29tZVwtaW50b1wtYmVpbmc7Civpp5Doj68gPiBzdGF0aW9uZWRcLWluXC1jaGluYTsKK+aOiOWPlyA+IHRvXC1naXZlXC1hbmRcLWFjY2VwdDsKK+eWq+aDhSA+IGVwaWRlbWljXC1zaXR1YXRpb247Civmt7HpgKAgPiBhZHZhbmNlZFwtXChzdHVkaWVzXCk7Civmjajlkb0gPiB0b1wtcmlza1wtb25lJydzXC1saWZlOwor6KOB5LimID4gY3V0XC1kb3duXC1hbmRcLW1lcmdlOwor5L2/56+AID4gXChkaXBsb21hdGljXClcLWVudm95Owor6Iez5bCRID4gXCh0b1wtc2F5XC10aGVcKVwtbGVhc3Q7Civosrfos6MgPiBidXlpbmdcLWFuZFwtc2VsbGluZzsKK+a4rOe5qiA+IHRvXC1zdXJ2ZXlcLWFuZFwtZHJhdzsKK+iDjOe0hCA+IGJyZWFrXC1hblwtYWdyZWVtZW50Owor6Lev5b6RID4gcm91dGVcLVwobmV0d29ya2luZ1wpOwor6IiJ5L6LID4gdG9cLWdpdmVcLWFuXC1leGFtcGxlOwor5L+E5paHID4gcnVzc2lhblwtXChsYW5ndWFnZVwpOwor5omN5pm6ID4gYWJpbGl0eVwtYW5kXC13aXNkb207CivmiZPmi7MgPiB0b1wtZG9cLXNoYWRvd2JveGluZzsKK+iEiOasgiA+IGJlYXRpbmdcLVwob2ZcLWhlYXJ0XCk7Civoh6rkuLsgPiB0b1wtYWN0XC1mb3JcLW9uZXNlbGY7CivmnJ/osqggPiBmdXR1cmVzXC1cKG9uXC1nb29kc1wpOwor5L615oiqID4gdG9cLWhhY2tcLVwoY29tcHV0ZXJcKTsKK+mgremrriA+IGhhaXJcLVwob25cLXRoZVwtaGVhZFwpOwor6LOq55aRID4gY2FsbFwtaW50b1wtcXVlc3Rpb247CivpppbmrKEgPiBmb3JcLXRoZVwtZmlyc3RcLXRpbWU7CivmooblrZAgPiB3YXRjaG1hbicnc1wtY2xhcHBlcjsKK+ayuemkhSA+IGRlZXBcLWZyaWVkXC1wYW5jYWtlOwor5rOE6ZyyID4gbGVha1wtXChpbmZvcm1hdGlvblwpOwor5oqV5YWlID4gcHV0XC1pbnRvXC1vcGVyYXRpb247CivmnpDnlpEgPiB0b1wtcmVzb2x2ZVwtYVwtZG91YnQ7Civol4/oqp4gPiB0aWJldGFuXC1cKGxhbmd1YWdlXCk7CivmnKjogLMgPiBlZGlibGVcLXRyZWVcLWZ1bmd1czsKK+WWmOaBryA+IHRvXC1nYXNwXC1mb3JcLWJyZWF0aDsKK+ajhOS4liA+IHRvXC1sZWF2ZVwtdGhpc1wtd29yZDsKK+aEm+eosSA+IHRlcm1cLW9mXC1lbmRlYXJtZW50Owor5bCI5ZOhID4gYXNzaXN0YW50XC1kaXJlY3RvcjsKK+mgk+i2syA+IHN0YW1wXC1cKG9uZScnc1wtZmVldFwpOwor54++5pyJID4gY3VycmVudGx5XC1leGlzdGluZzsKK+m8u+aokSA+IGJyaWRnZVwtb2ZcLXRoZVwtbm9zZTsKK+WPg+i0iiA+IGRpcGxvbWF0aWNcLW9mZmljZXI7CivkuKbnq4sgPiBleGlzdFwtc2lkZVwtYnlcLXNpZGU7Civosr/mmJMgPiBcKGNvbW1lcmNpYWxcKVwtdHJhZGU7CivphazphaIgPiB0b1wtZXhjaGFuZ2VcLXRvYXN0czsKK+a1qua2jCA+IFwoZWxlY3RyaWNhbFwpXC1zdXJnZTsKK+S9lOWFiCA+IHRvXC10YWtlXC1wcmVjZWRlbmNlOwor6IOM5YWJID4gYmVcLWluXC1hXC1wb29yXC1saWdodDsKK+a3seWknCA+IHZlcnlcLWxhdGVcLWF0XC1uaWdodDsKK+mcsumdoiA+IGFwcGVhclwtXChpblwtcHVibGljXCk7CivllYbli5kgPiBjb21tZXJjaWFsXC1hZmZhaXJzOwor54yc55aRID4gaGFyYm91clwtc3VzcGljaW9uczsKK+iytOWnkyA+IHdoYXRcLWlzXC15b3VyXC1uYW1lXD87CivnjJnnjbAgPiBtZWFuXC1hbmRcLWZlcm9jaW91czsKK+a2suWjkyA+IGh5ZHJhdWxpY1wtcHJlc3N1cmU7CivpvLvloZ4gPiBoYXZlXC1hXC1zdHVmZnlcLW5vc2U7Civpu57lv4MgPiBsaWdodFwtcmVmcmVzaG1lbnRzOwor5pyf5b6FID4gdG9cLWxvb2tcLWZvcndhcmRcLXRvOwor5rW35Z+fID4gdGVycml0b3JpYWxcLXdhdGVyczsKK+avlOippiA+IGhhdmVcLWFcLWNvbXBldGl0aW9uOwor5aSW6LOHID4gZm9yZWlnblwtaW52ZXN0bWVudDsKK+mbu+i3ryA+IFwoZWxlY3RyaWNcKVwtY2lyY3VpdDsKK+S4reWwhyA+IGxpZXV0ZW5hbnRcLWdlbmVyYWw7Civmlofol50gPiBsaXRlcmF0dXJlXC1hbmRcLWFydDsKK+eJiOeohSA+IHJveWFsdHlcLVwob25cLWJvb2tzXCk7Civmg4XloLEgPiBcKHNweVwpXC1pbnRlbGxpZ2VuY2U7Civnt6jpgaMgPiByZW9yZ2FuaXplXC1cKHRyb29wczsKK+azsOWxsSA+IHRhaXNoYW5cLVwobW91bnRhaW5cKTsKK+aCieWwvCA+IHN5ZG5leVwtXChhdXN0cmFsaWFcKTsKK+iWhOaDhSA+IGluY29uc3RhbnRcLWluXC1sb3ZlOwor5rCR55SoID4gXChmb3JcKVwtY2l2aWxpYW5cLXVzZTsKK+e3qOitryA+IHRyYW5zbGF0ZVwtYW5kXC1lZGl0Owor56aP5YipID4gXChtYXRlcmlhbFwpXC13ZWxmYXJlOwor5ZCM5a24ID4gXChmZWxsb3dcKVwtY2xhc3NtYXRlOwor5Lim5YiXID4gc3RhbmRcLXNpZGVcLWJ5XC1zaWRlOwor5LiN5ZKMID4gbm90XC1nZXRcLWFsb25nXC13ZWxsOwor5LiN5Y6tID4gbm90XC1taW5kXC1kb2luZ1wtc3RoOwor5Y+N5oSfID4gXChzdHJvbmdseVwpXC1kaXNsaWtlOwor6Yed5bCNID4gaW5cLWNvbm5lY3Rpb25cLXdpdGg7Civlj6blr4QgPiB0b1wtbWFpbFwtc2VwYXJhdGVseTsKK+iuiuW5uyA+IGNoYW5nZVwtaXJyZWd1bGFybHk7CivloLHpl5wgPiBkZWNsYXJlXC1hdFwtY3VzdG9tczsKK+e9suWQjSA+IHNpZ25cLVwoYVwtc2lnbmF0dXJlXCk7CivpgYropr0gPiB0b1wtZ29cLXNpZ2h0XC1zZWVpbmc7CivlpJbnlYwgPiB0aGVcLW91dHNpZGVcLXdvcmxkOwor6K6K5aSpID4gY2hhbmdlXC1vZlwtd2VhdGhlcjsKK+avlOa/lSA+IHNwZWNpZmljXC1odW1pZGl0eTsKK+W+t+aWhyA+IGdlcm1hblwtXChsYW5ndWFnZVwpOwor5Y2R5oCvID4gbWVhblwtYW5kXC1jb3dhcmRseTsKK+WFtemmrCA+IHRyb29wc1wtYW5kXC1ob3JzZXM7Civnoqnlo6sgPiBtYXN0ZXInJ3NcLVwoZGVncmVlXCk7Civnmb3pqqggPiBib25lc1wtb2ZcLXRoZVwtZGVhZDsKK+eFp+ebuCA+IHRha2VcLWFcLXBob3RvZ3JhcGg7Civnmb3po68gPiBwbGFpblwtY29va2VkXC1yaWNlOwor5pel5a2QID4gYVwtXChjYWxlbmRhclwpXC1kYXRlOwor5pWZ5p2QID4gdGVhY2hpbmdcLW1hdGVyaWFsOwor6YSw5ZyLID4gYm9yZGVyaW5nXC1jb3VudHJ5Owor5qmf6KO9ID4gbWFjaGluZVwtcHJvY2Vzc2VkOwor6ZW36YGUID4gZXh0ZW5kXC1hc1wtbG9uZ1wtYXM7CivljJblpp0gPiB0b1wtcHV0XC1vblwtbWFrZVwtdXA7Civpm6PmjbEgPiB0cnlpbmdcLFwtZGlmZmljdWx0Owor5aSn5bGAID4gZ2VuZXJhbFwtc2l0dWF0aW9uOwor5pWP5oSfID4gc2Vuc2l0aXZlXC1cKGlzc3VlXCk7CivntKHnuZQgPiBzcGlubmluZ1wtXCh0aHJlYWRcKTsKK+Wkp+WkmiA+IGZvclwtdGhlXC1tb3N0XC1wYXJ0Owor5b6S5YiRID4gXChwcmlzb25cKVwtc2VudGVuY2U7CivmlK/mjIEgPiB0b1wtYmVcLWluXC1mYXZvclwtb2Y7CivntJvntJsgPiBvbmVcLWFmdGVyXC1hbm90aGVyOwor5aSW5ZyLID4gZm9yZWlnblwtXChjb3VudHJ5XCk7CivmjZXpo58gPiBjYXRjaFwtYW5kXC1mZWVkXC1vbjsKK+i8lOiqsiA+IHN1YnNpZGlhcnlcLWNvdXJzZTsKK+WFq+iCoSA+IGVpZ2h0XC1cLXBhcnRcLWVzc2F5Owor5bmz5rCRID4gXChvcmRpbmFyeVwpXC1wZW9wbGU7Civpg4rljYAgPiBzdWJ1cmJhblwtZGlzdHJpY3Q7CivlhanogIUgPiBib3RoXC1zaWRlc1x8dGhpbmdzOwor6YOo5Lu9ID4gcGFydFwtXChvZlwtYVwtd2hvbGVcKTsKK+eZveiCiSA+IHBsYWluXC1ib2lsZWRcLXBvcms7CivpgorloZ4gPiBmcm9udGllclwtZm9ydHJlc3M7Civnn7PliLsgPiBzdG9uZVwtaW5zY3JpcHRpb247Civnt4rlr4YgPiBpbnNlcGFyYWJseVwtY2xvc2U7CivpgorljaEgPiBib3JkZXJcLWNoZWNrcG9pbnQ7Civnt6nlkowgPiB0b1wtZWFzZVwtXCh0ZW5zaW9uXCk7Civnt6jljbAgPiBjb21waWxlXC1hbmRcLXByaW50Owor5Yex5peLID4gcmV0dXJuXC10cml1bXBoYW50Owor54CJ6IKaID4gdG9cLWhhdmVcLWRpYXJyaG9lYTsKK+eZveecvCA+IHN1cGVyY2lsaW91c1wtbG9vazsKK+ecvOWwliA+IHRvXC1oYXZlXC1nb29kXC1leWVzOwor5aCx5bizID4gcmVuZGVyXC1hblwtYWNjb3VudDsKK+ijnOeZvCA+IHN1cHBseVwtYWdhaW5cLVwoc3RoOwor5oqK6aCtID4gbGFib3VyXC1jb250cmFjdG9yOwor5bGP6ZqcID4gcHJvdGVjdGl2ZVwtc2NyZWVuOwor54Gr5pifID4gbWFyc1wtXCh0aGVcLXBsYW5ldFwpOwor6aiO6aasID4gcmlkZVwtb25cLWhvcnNlYmFjazsKK+aKhOmMhCA+IHRvXC1tYWtlXC1hXC1jb3B5XC1vZjsKK+aPreabiSA+IGFubm91bmNlXC1wdWJsaWNseTsKK+eXheeoiyA+IGNvdXJzZVwtb2ZcLWRpc2Vhc2U7CivnlLPoqLQgPiB0b1wtYXBwZWFsXC1cKHRvXC1zYlwpOwor5L6b6ZyAID4gc3VwcGx5XC1hbmRcLWRlbWFuZDsKK+WcsOauvCA+IHRoZVwtZWFydGgnJ3NcLWNydXN0Owor6ZaJ5bmVID4gdGhlXC1jdXJ0YWluXC1mYWxsczsKK+ebm+WQjSA+IGZhbW91c1wtcmVwdXRhdGlvbjsKK+W3peWnlCA+IHdvcmtpbmdcLWNvbW1pdHRlZTsKK+ethuiqvyA+IFwob2ZcLXdyaXRpbmdcKVwtdG9uZTsKK+WxleimvSA+IHRvXC1wdXRcLW9uXC1kaXNwbGF5Owor55m95biDID4gcGxhaW5cLXdoaXRlXC1jbG90aDsKK+W3peWcsCA+IGNvbnN0cnVjdGlvblwtc2l0ZTsKK+ajleiJsiA+IGJyb3duXC1cKHRoZVwtY29sb3JcKTsKK+evh+ebriA+IHRhYmxlXC1vZlwtY29udGVudHM7CivkvY/pmaIgPiB0b1wtYmVcLWluXC1ob3NwaXRhbDsKK+aQj+WLlSA+IGJlYXRcLXJoeXRobWljYWxseTsKK+aOpeW+hSA+IHJlY2VpdmVcLVwoYVwtdmlzaXRcKTsKK+WFteWKmyA+IG1pbGl0YXJ5XC1zdHJlbmd0aDsKK+WFrOWLmSA+IG9mZmljaWFsXC1idXNpbmVzczsKK+aLmOeVmSA+IGRldGFpblwtXChwcmlzb25lclwpOwor5oyo5qyhID4gb25lXC1hZnRlclwtYW5vdGhlcjsKK+WFrOS9iCA+IHB1YmxpY2x5XC1hbm5vdW5jZTsKK+WFp+S6giA+IGludGVybmFsXC1kaXNvcmRlcjsKK+ihm+aYnyA+IFwoc3BhY2VcKVwtc2F0ZWxsaXRlOwor5ouN54WnID4gdG9cLXRha2VcLWFcLXBpY3R1cmU7Civnl4XmlYUgPiBkaWVcLW9mXC1hblwtaWxsbmVzczsKK+ihneaTiiA+IFwoYmVcLXVuZGVyXClcLWF0dGFjazsKK+mVt+S5hSA+IFwoZm9yXC1hXClcLWxvbmdcLXRpbWU7CivpjITpn7MgPiBcKHNvdW5kXClcLXJlY29yZGluZzsKK+S/neelkCA+IGJsZXNzXC1hbmRcLXByb3RlY3Q7CivmjbfloLEgPiByZXBvcnRcLW9mXC1zdWNjZXNzOwor5ZyY5ZyTID4gdG9cLWhhdmVcLWFcLXJldW5pb247Civmjojli5sgPiB0b1wtYXdhcmRcLWFuXC1ob25vcjsKK+WTgOmztCA+IGFcLXBsYWludGl2ZVwtd2hpbmU7Civmh4LooYwgPiB0b1wta25vd1wtdGhlXC1yb3BlczsKK+i7jeWNgCA+IGFcLW1pbGl0YXJ5XC1yZWdpb247Civkv53niL4gPiBcKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivosqHplqUgPiBmaW5hbmNpYWxcLW1hZ25hdGU7Civmi43mlJ0gPiBcKHNob290XC1hXClcLXBpY3R1cmU7CivogIPpqZcgPiBcKHB1dFwtdG9cLXRoZVwpXC10ZXN0Owor5L+d5rqrID4gaGVhdFwtcHJlc2VydmF0aW9uOwor5bGP5rCjID4gaG9sZFwtb25lJydzXC1icmVhdGg7CivnqJ/os6YgPiBuYXR1cmFsXC1lbmRvd21lbnQ7Civnl4XljbEgPiBiZVwtY3JpdGljYWxseVwtaWxsOwor5L2155m8ID4gYmVcLWNvbXBsaWNhdGVkXC1ieTsKK+iyoeiyvyA+IGZpbmFuY2VcLWFuZFwtdHJhZGU7CivmvKLlrZcgPiBjaGluZXNlXC1jaGFyYWN0ZXI7CivlronnqakgPiBzbW9vdGhcLWFuZFwtc3RlYWR5Owor5bCI5qWtID4gc3BlY2lhbGl6ZWRcLWZpZWxkOwor5bGP5oGvID4gaG9sZFwtb25lJydzXC1icmVhdGg7CivotqjmmYIgPiB0b1wtZm9sbG93XC1mYXNoaW9uOwor5LuN6IiKID4gc3RpbGxcLVwocmVtYWluaW5nXCk7Civmi5flj6MgPiBoYXJkXC10b1wtcHJvbm91bmNlOwor5ZaY5rCjID4gdG9cLWJyZWF0aGVcLWRlZXBseTsKK+aLnOWAkiA+IHByb3N0cmF0ZVwtb25lc2VsZjsKK+aJjeaAnSA+IGltYWdpbmF0aXZlXC1wb3dlcjsKK+azoumfsyA+IGJvZWluZ1wtXChhaXJjcmFmdFwpOwor5L2c5qWtID4gc2Nob29sXC1hc3NpZ25tZW50Owor6byT6IieID4gaGVhcnRlbmluZ1wtXChuZXdzXCk7CivmoYjmg4UgPiBkZXRhaWxzXC1vZlwtYVwtY2FzZTsKK+iyoeelniA+IHRoZVwtZ29kXC1vZlwtd2VhbHRoOwor5bGV5Ye6ID4gdG9cLXB1dFwtb25cLWRpc3BsYXk7Civnj77ni4AgPiBjdXJyZW50XC1zaXR1YXRpb247CivlsI/loLEgPiB0YWJsb2lkXC1uZXdzcGFwZXI7CivmnJ3ogZYgPiBtYWtlXC1hXC1waWxncmltYWdlOwor5L+d5YGlID4gaGVhbHRoXC1wcm90ZWN0aW9uOwor5rer5rC0ID4gc2V4dWFsXC1zZWNyZXRpb25zOwor5bCL5ZGzID4gdG9cLXRoaW5rXC1zdGhcLW92ZXI7Civmnb/nhZkgPiBwbHVnXC1cKG9mXC10b2JhY2NvXCk7Civms6joppYgPiB3YXRjaFwtYXR0ZW50aXZlbHk7Civms5Xoqp4gPiBmcmVuY2hcLVwobGFuZ3VhZ2VcKTsKK+eNqOeriyA+IHRvXC1iZVwtaW5kZXBlbmRlbnQ7CivotbDlh7ogPiB0b1wtbW92ZVwtYXdheVwtZnJvbTsKK+iBsuaPtCA+IHN1cHBvcnRcLVwoYVwtY2F1c2VcKTsKK+ekpuiXjyA+IG1pbmVyYWxcLXJlc291cmNlczsKK+Wvq+S/oSA+IHRvXC13cml0ZVwtYVwtbGV0dGVyOwor5LiJ57atID4gdGhyZWVcLWRpbWVuc2lvbmFsOwor56m05bGFID4gdG9cLWxpdmVcLWluXC1hXC1jYXZlOwor54uA6KqeID4gYWR2ZXJiaWFsXC1hZGp1bmN0Owor6YWs6YeRID4gXChtb25ldGFyeVwpXC1yZXdhcmQ7CivosqHmlL8gPiBmaW5hbmNlc1wtXChwdWJsaWNcKTsKK+WuieWNsSA+IHNhZmV0eVwtYW5kXC1kYW5nZXI7CivlkI3nqLEgPiBuYW1lXC1cKG9mXC1hXC10aGluZ1wpOwor54mp6LOqID4gXChwaHlzaWNhbFwpXC1tYXR0ZXI7CivlkIPnqb8gPiBmb29kXC1hbmRcLWNsb3RoaW5nOwor56m05L2NID4gYWN1cHVuY3R1cmVcLXBvaW50Owor5a245L2NID4gZWR1Y2F0aW9uYWxcLWxldmVsOwor5b636KqeID4gZ2VybWFuXC1cKGxhbmd1YWdlXCk7CivlkITnlYwgPiBhbGxcLXdhbGtzXC1vZlwtbGlmZTsKK+iAs+WtkCA+IGhhbmRsZVwtXChvblwtYVwtcG90XCk7CivmgJ3ntq0gPiBcKGxpbmVcLW9mXClcLXRob3VnaHQ7Civku6XlhY0gPiBpblwtb3JkZXJcLXRvXC1hdm9pZDsKK+S6i+WvpiA+IFwodGhlXClcLWZhY3RcLVwodGhhdFwpOwor5pys5oCnID4gbmF0dXJhbFwtaW5zdGluY3RzOwor6Zuj6aGMID4gZGlmZmljdWx0XC1wcm9ibGVtOwor6K6K55u4ID4gaW5cLWRpc2d1aXNlZFwtZm9ybTsKK+iyoeWLmSA+IGZpbmFuY2lhbFwtYWZmYWlyczsKK+acjeW9uSA+IHNlcnZlXC1pblwtdGhlXC1hcm15Owor6Yar55mCID4gbWVkaWNhbFwtdHJlYXRtZW50Owor5pWs6YeNID4gdG9cLXJlc3BlY3RcLWRlZXBseTsKK+aal+aysyA+IHVuZGVyZ3JvdW5kXC1yaXZlcjsKK+mguOakjiA+IGNlcnZpY2FsXC12ZXJ0aWJyYTsKK+e2sum7niA+IG5vZGVcLWluXC1hXC1uZXR3b3JrOwor6buR5a6iID4gaGFja2VyXC1cKGNvbXB1dGVyXCk7Civnupboiq8gPiBjb3JlXC1cKG9mXC1hXC1maWJlclwpOwor57eo6ZqKID4gZm9ybVwtaW50b1wtY29sdW1uczsKK+aVl+mAgCA+IHJldHJlYXRcLWluXC1kZWZlYXQ7CivmnKzlnIsgPiBvbmUnJ3NcLW93blwtY291bnRyeTsKK+azleaWhyA+IGZyZW5jaFwtXChsYW5ndWFnZVwpOwor6Kqe6KiAID4gXChzcG9rZW5cKVwtbGFuZ3VhZ2U7CivkuI3lsZEgPiBkaXNkYWluXC10b1wtZG9cLXN0aDsKK+WNiuelqCA+IGhhbGZcLXByaWNlXC10aWNrZXQ7CivnjajllLEgPiBcKGluXC1zaW5naW5nXClcLXNvbG87Civnp4HkurogPiBwcml2YXRlXC1cKGNpdGl6ZW5cKTsKK+eNsuWHhiA+IG9idGFpblwtcGVybWlzc2lvbjsKK+asiumRsCA+IGtleXNcLW9mXC1hdXRob3JpdHk7CivniIbnrqEgPiBjYXJ0cmlkZ2VcLWlnbml0ZXI7CivnpKbluoogPiBcKG1pbmVyYWxcKVwtZGVwb3NpdDsKK+atouihgCA+IHN0YW5jaFwtXChibGVlZGluZ1wpOwor5ZCN5a2XID4gXChhXC1wZXJzb24nJ3NcKVwtbmFtZTsKK+WPsOW5oyA+IG5ld1wtdGFpd2FuXC1kb2xsYXI7Civpoaflj4ogPiB0YWtlXC1pbnRvXC1hY2NvdW50Owor5LiL5Y67ID4gZ29cLWRvd25cLVwoZGVzY2VuZFwpOwor5Yu756ixID4gd2VsbFwtcHJvcG9ydGlvbmVkOwor5LiN5YqbID4gbm90XC1kb1wtb25lJydzXC1iZXN0Owor6YGT6KydID4gdG9cLWV4cHJlc3NcLXRoYW5rczsKK+ehneeFmSA+IHNtb2tlXC1cKGZyb21cLWd1bnNcKTsKK+iXneS6uiA+IHBlcmZvcm1pbmdcLWFydGlzdDsKK+aVmee3tCA+IFwoYXRobGV0ZScnc1wpXC1jb2FjaDsKK+WHuumZoiA+IHRvXC1sZWF2ZVwtaG9zcGl0YWw7CivpmL/ph4wgPiBhbGlcLVwocHJvcGVyXC1uYW1lXCk7CivpmYTov5EgPiBcKGluXC10aGVcKVwtdmljaW5pdHk7CivniYzmqJMgPiBkZWNvcmF0ZWRcLWFyY2h3YXk7CivniLbmr40gPiBmYXRoZXJcLWFuZFwtbW90aGVyOwor56Oo5a2QID4gbWlsbFwsXC1taWxsc3RvbmVzOwor5ZCO5Lq6ID4gbGF0ZXJcLWdlbmVyYXRpb247CivorZjlrZcgPiB0b1wtbGVhcm5cLXRvXC1yZWFkOwor5b+D5b6XID4ga25vd2xlZGdlXC1nYWluZWQ7CivmsYLlqZogPiBwcm9wb3NlXC1tYXJyaWFnZTsKK+e3qOebriA+IG1ha2VcLWFcLWNhdGFsb2d1ZTsKK+mbu+a1gSA+IGVsZWN0cmljXC1jdXJyZW50Owor5Z+O6Y6uID4gY2l0aWVzXC1hbmRcLXRvd25zOwor5aeU5ZOhID4gY29tbWl0dGVlXC1tZW1iZXI7Civlo4HnlasgPiBtdXJhbFwtXChwYWludGluZ1wpOwor5aeT5ZCNID4gbmFtZVwtYW5kXC1zdXJuYW1lOwor5piv5ZCmID4gd2hldGhlclwtXChvclwtbm90XCk7CivnuL3mqZ8gPiBjZW50cmFsXC1leGNoYW5nZTsKK+mBjueoiyA+IGNvdXJzZVwtb2ZcLWV2ZW50czsKK+eGiueMtCA+IGFzc2FtZXNlXC1tYWNhcXVlOwor5aSn5pyDID4gZ2VuZXJhbFwtYXNzZW1ibHk7Civln7roqr8gPiBcKHNwZWVjaFwpXC1rZXlub3RlOwor6Kqk5pyDID4gdG9cLW1pc3VuZGVyc3RhbmQ7CivoqILnpaggPiB0b1wtaXNzdWVcLXRpY2tldHM7Civlo73moYMgPiBiaXJ0aGRheVwtcGVhY2hlczsKK+W3tOixhiA+IFwocHVyZ2luZ1wpXC1jcm90b247Civlo73mmJ8gPiBnb2RcLW9mXC1sb25nZXZpdHk7CivlhaXov7cgPiB0b1wtYmVcLWZhc2NpbmF0ZWQ7CivmmI7ku6MgPiB0aGVcLW1pbmdcLWR5bmFzdHk7CivpgIDnpaggPiBib3VuY2VcLVwoYVwtY2hlY2tcKTsKK+e5g+WtkCA+IGVtYnJvaWRlcnlcLWZyYW1lOwor5b6X5Ye6ID4gb2J0YWluXC1cKHJlc3VsdHNcKTsKK+WFjeiyuyA+IGZyZWVcLVwob2ZcLWNoYXJnZVwpOwor6YGy5pquID4gcGFzdFwtb25lJydzXC1wcmltZTsKK+e2suapiyA+IFwobmV0d29ya1wpXC1icmlkZ2U7CivliJfngrogPiBiZVwtY2xhc3NpZmllZFwtYXM7CivlnIvpmLIgPiBuYXRpb25hbFwtZGVmZW5jZTsKK+aVheWxhSA+IGZvcm1lclwtcmVzaWRlbmNlOwor5Ym95oKNID4gc3dpZnRcLWFuZFwtZmllcmNlOwor5q2m5a6YID4gbWlsaXRhcnlcLWF0dGFjaGU7CivpgZXmhrIgPiB1bmNvbnN0aXR1dGlvbmFsOwor5Yue5YuVID4gXChwaHlzaWNhbFwpXC1sYWJvcjsKK+eCuueUnyA+IHRvXC1tYWtlXC1hXC1saXZpbmc7CivlhaznvoogPiByYW1cLVwobWFsZVwtc2hlZXBcKTsKK+iIuemaiiA+IGZsZWV0XC1cKG9mXC1zaGlwc1wpOwor5buj5beeID4gZ3Vhbmd6aG91XC1cKGNpdHlcKTsKK+mbu+WKmyA+IGVsZWN0cmljYWxcLXBvd2VyOwor6KOc6KGAID4gZW5yaWNoXC10aGVcLWJsb29kOwor54eI5YWJID4gXChzdGFnZVwpXC1saWdodGluZzsKK+mAj+aUryA+IFwoYmFua1wpXC1vdmVyZHJhZnQ7Civov7Tml4sgPiBtYW5ldXZlcmluZ1wtcm9vbTsKK+eZveejtyA+IHdoaXRlXC1waG9zcGhvcnVzOwor5aCx5o23ID4gcmVwb3J0XC1hXC1zdWNjZXNzOwor6Kiq5ZWPID4gcGF5XC1hXC12aXNpdFwtXCh0b1wpOwor6Zmk5aSVID4gXChuZXdcLXllYXInJ3NcKVwtZXZlOwor6L6m5qGIID4gdG9cLWhhbmRsZVwtYVwtY2FzZTsKK+ioguWWriA+IFwocHVyY2hhc2VcKVwtb3JkZXI7Civoj6/lg5EgPiBvdmVyc2Vhc1wtY2hpbmVzZTsKK+a7kem8oCA+IG1vdXNlXC1cKGNvbXB1dGVyXCk7Civnl4Xoj4wgPiBoYXJtZnVsXC1iYWN0ZXJpYTsKK+mAsuS/riA+IGFkdmFuY2VkXC1zdHVkaWVzOwor6ZW35rGfID4gY2hhbmdqaWFuZ1wtcml2ZXI7CivnrYbpoK0gPiBhYmlsaXR5XC10b1wtd3JpdGU7Civlub7ljYMgPiBzZXZlcmFsXC10aG91c2FuZDsKK+WIsOS6hiA+IGluXC1cKGFcLXBhc3RcLXRpbWVcKTsKK+WgseWQjSA+IGVudGVyXC1vbmUnJ3NcLW5hbWU7Civlh7rlkI0gPiB3ZWxsXC1rbm93blwtXChmb3JcKTsKK+aOiOeNjiA+IHRvXC1hd2FyZFwtYVwtcHJpemU7Civpq5TogrIgPiBwaHlzaWNhbFwtY3VsdHVyZTsKK+a8ouiqniA+IGNoaW5lc2VcLWxhbmd1YWdlOwor5YW15b25ID4gbWlsaXRhcnlcLXNlcnZpY2U7CivnlaLogpYgPiByZXNlbWJsZVwtY2xvc2VseTsKK+W0qea8jyA+IHV0ZXJpbmVcLWJsZWVkaW5nOwor5YaX5ZOhID4gZXhjZXNzXC1wZXJzb25uZWw7CivlhbXlo6sgPiBvcmRpbmFyeVwtc29sZGllcjsKK+imgeS6uiA+IGltcG9ydGFudFwtcGVyc29uOwor5o6h5pOHID4gc2VsZWN0XC1hbmRcLWFkb3B0Owor6Lip57eaID4gc3RlcFwtb25cLXRoZVwtbGluZTsKK+eZseWtkCA+IHBhcmFseXplZFwtcGVyc29uOwor5beo5YygID4gbWFzdGVyXC1jcmFmdHNtYW47CivplrHlhbUgPiB0b1wtcmV2aWV3XC10cm9vcHM7CivlgrLmsKMgPiBhaXJcLW9mXC1hcnJvZ2FuY2U7Civkvr/ooaMgPiBjaXZpbGlhblwtY2xvdGhlczsKK+Wwi+ioqiA+IHRvXC1pbnF1aXJlXC1hZnRlcjsKK+WvtuiynSA+IHRyZWFzdXJlZFwtb2JqZWN0Owor6Zax5LiWID4gdG9cLXNlZVwtdGhlXC13b3JsZDsKK+ewoeaYjiA+IHNpbXBsZVwtYW5kXC1jbGVhcjsKK+WuiemgkyA+IGZpbmRcLWFcLXBsYWNlXC1mb3I7CivlhazlhawgPiBodXNiYW5kJydzXC1mYXRoZXI7Civkvovoqp4gPiBleGFtcGxlXC1zZW50YW5jZTsKK+mWg+S6riA+IGJyaWxsaWFudFwsXC1zaGlueTsKK+Wdh+WLoiA+IGJhbGFuY2VcLW9mXC1wb3dlcjsKK+S/neeVmSA+IGNvbnRpbnVlXC10b1wtaGF2ZTsKK+S6uumgrSA+IG51bWJlclwtb2ZcLXBlb3BsZTsKK+aOpeS6uiA+IHRvXC1tZWV0XC1hXC1wZXJzb247CivlnIvlipsgPiBhXC1uYXRpb24nJ3NcLXBvd2VyOwor5omu5ryUID4gcGxheVwtdGhlXC1wYXJ0XC1vZjsKK+eXheWboCA+IGNhdXNlXC1vZlwtZGlzZWFzZTsKK+i7jeS6iyA+IG1pbGl0YXJ5XC1hZmZhaXJzOwor5L2U57eaID4gYnVzeVwtXCh0ZWxlcGhvbmVcKTsKK+WxseadkSA+IG1vdW50YWluXC12aWxsYWdlOwor5bGs5pa8ID4gYmVcLWNsYXNzaWZpZWRcLWFzOwor5ouQ5b2OID4gdG9cLXR1cm5cLWFcLWNvcm5lcjsKK+eXheWOnyA+IGNhdXNlXC1vZlwtZGlzZWFzZTsKK+iBmuiuiiA+IFwobnVjbGVhclwpXC1mdXNpb247CivooajlhoogPiBzdGF0aXN0aWNhbFwtZm9ybTsKK+WvqeeQhiA+IHRvXC1oZWFyXC1cKGFcLWNhc2VcKTsKK+aKhOacrCA+IGhhbmR3cml0dGVuXC1jb3B5Owor5a6J572uID4gZmluZFwtYVwtcGxhY2VcLWZvcjsKK+iIlOWQriA+IHRvXC1saWNrXC1hbmRcLXN1Y2s7Civkvr/mqYsgPiB0ZW1wb3JhcnlcLWJyaWRnZTsKK+ethuaIsCA+IHdyaXR0ZW5cLXBvbGVtaWNzOwor5L6/5pyNID4gZXZlcnlkYXlcLWNsb3RoZXM7CivmhJ/orJ0gPiBcKGV4cHJlc3NcKVwtdGhhbmtzOwor5LiL6aasID4gZGlzbW91bnRcLWFcLWhvcnNlOwor5a6J55ygID4gc2xlZXBcLXBlYWNlZnVsbHk7CivlsaTlsaQgPiBsYXllclwtdXBvblwtbGF5ZXI7CivnrYbluL0gPiB0aGVcLWNhcFwtb2ZcLWFcLXBlbjsKK+iytue+qSA+IGRlcm9nYXRvcnlcLXNlbnNlOwor5L2c5rOVID4gY291cnNlXC1vZlwtYWN0aW9uOwor5ryU5ZOhID4gYWN0b3JcLW9yXC1hY3RyZXNzOwor6ZGS5YilID4gdG9cLWRpZmZlcmVudGlhdGU7Civkv53lr4YgPiBtYWludGFpblwtc2VjcmVjeTsKK+ethuWllyA+IHRoZVwtY2FwXC1vZlwtYVwtcGVuOwor5YCf5YqpID4gdG9cLWdldFwtaGVscFwtZnJvbTsKK+eUmOWcsCA+IFwobWFoYXRtYVwpXC1nYW5kaGk7Civms6jph40gPiBwYXlcLWF0dGVudGlvblwtdG87Civmh7jmjpsgPiBcKGNhclwpXC1zdXNwZW5zaW9uOwor5LiN6KydID4gZG9uJyd0XC1tZW50aW9uXC1pdDsKK+acrOe+qSA+IG9yaWdpbmFsXC1tZWFuaW5nOwor5Ly05pifID4gY29tcGFuaW9uXC1cKHN0YXJcKTsKK+S/neWFqCA+IHNhdmVcLWZyb21cLWRhbWFnZTsKK+aKhOS7tiA+IGR1cGxpY2F0ZVwtXChjb3B5XCk7CivnvbfoqrIgPiBzdHVkZW50JydzXC1zdHJpa2U7Civph43ph40gPiBsYXllclwtdXBvblwtbGF5ZXI7Civmh4nmiLAgPiBmYWNlXC1hXC1jaGFsbGVuZ2U7CivmoLjlqIEgPiBudWNsZWFyXC1zdHJlbmd0aDsKK+iZnOeNsiA+IGNhcHR1cmVcLVwocGVvcGxlXCk7CivmnKznpaggPiBjYXNoaWVyJydzXC1jaGVxdWU7Civkvovlj6UgPiBleGFtcGxlXC1zZW50YW5jZTsKK+WuieW+vSA+IGFuaHVpXC1cKHByb3ZpbmNlXCk7Civok5bpursgPiBjYXN0b3JcLW9pbFwtcGxhbnQ7Civnq5nlj7AgPiByYWlsd2F5XC1wbGF0Zm9ybTsKK+eQhuacgyA+IHBheVwtYXR0ZW50aW9uXC10bzsKK+eNsuebiiA+IG9idGFpblwtYVwtYmVuZWZpdDsKK+S7iuaYlCA+IHBhc3RcLWFuZFwtcHJlc2VudDsKK+adv+aglyA+IGNoaW5lc2VcLWNoZXN0bnV0Owor5ZC4566hID4gXChkcmlua2luZ1wpXC1zdHJhdzsKK+S6uuaVuCA+IG51bWJlclwtb2ZcLXBlb3BsZTsKK+WutuWLmSA+IGhvdXNlaG9sZFwtZHV0aWVzOwor5rCR6ZaTID4gYW1vbmdcLXRoZVwtcGVvcGxlOwor5ama56auID4gd2VkZGluZ1wtY2VyZW1vbnk7CivorabooZsgPiBcKHNlY3VyaXR5XClcLWd1YXJkOwor5Lm+5p2vID4gdG9cLWRyaW5rXC1hXC10b2FzdDsKK+eMv+eMtCA+IGFwZXNcLWFuZFwtbW9ua2V5czsKK+S4pua/gCA+IHNodW50XC1leGNpdGF0aW9uOwor6YeP57axID4gZGltZW5zaW9uXC1cKHVuaXRcKTsKK+izquWVjyA+IFwoYXNrXC1hXClcLXF1ZXN0aW9uOwor6JKQ6ZuGID4gdG9cLWdhdGhlclwtXChkYXRhXCk7CivmmpHnmJ8gPiB0cm9waWNhbFwtZGlzZWFzZTsKK+WNmuimvSA+IHJlYWRcLWV4dGVuc2l2ZWx5Owor5rex5YWlID4gcGVuZXRyYXRlXC1kZWVwbHk7CivkuLnmoYIgPiBvcmFuZ2VcLW9zbWFudGh1czsKK+adv+WjgSA+IHdvb2RlblwtcGFydGl0aW9uOwor5p+Q5Lq6ID4gYVwtY2VydGFpblwtcGVyc29uOwor5pyI5puGID4gbW9udGhseVwtY2FsZW5kYXI7Civmsrvnl4UgPiB0cmVhdFwtYW5cLWlsbG5lc3M7CivljYHoqqEgPiB0ZW5cLWNvbW1hbmRtZW50czsKK+WklumVtyA+IGZvcmVpZ25cLW1pbmlzdGVyOwor6YWN6JelID4gZGlzcGVuc2VcLVwoZHJ1Z3NcKTsKK+Wtl+S4siA+IGNoYXJhY3Rlclwtc3RyaW5nOwor5Lit5paHID4gY2hpbmVzZVwtbGFuZ3VhZ2U7CivlpKfpgbggPiBnZW5lcmFsXC1lbGVjdGlvbjsKK+WUkOS7oyA+IHRoZVwtdGFuZ1wtZHluYXN0eTsKK+aAp+eXhSA+IHZlbmVyZWFsXC1kaXNlYXNlOwor5ZCb5qyKID4gbW9uYXJjaGlhbFwtcG93ZXI7Civol4/mlocgPiB0aWJldGFuXC1sYW5ndWFnZTsKK+iugOeJqSA+IHJlYWRpbmdcLW1hdGVyaWFsOwor6YKK6ZiyID4gZnJvbnRpZXJcLWRlZmVuY2U7CivlkJHmnbEgPiB0b3dhcmRzXC10aGVcLWVhc3Q7Civpm4bpjKYgPiBiZXN0XC1vZlwtdGhlXC1iZXN0Owor57235pWZID4gdGVhY2hlcicnc1wtc3RyaWtlOwor5aSW6KqeID4gZm9yZWlnblwtbGFuZ3VhZ2U7CivoqrLooaggPiBzY2hvb2xcLXRpbWV0YWJsZTsKK+iqpOinoyA+IG1pc3VuZGVyc3RhbmRpbmc7CivlkIzmmYIgPiBhdFwtdGhlXC1zYW1lXC10aW1lOwor5LiN5b+ZID4gdGhlcmUnJ3NcLW5vXC1odXJyeTsKK+mbhumDtSA+IHN0YW1wXC1jb2xsZWN0aW5nOwor5bug6ZW3ID4gZmFjdG9yeVwtZGlyZWN0b3I7Civororms5UgPiBwb2xpdGljYWxcLXJlZm9ybTsKK+azouaKmCA+IHR3aXN0c1wtYW5kXC10dXJuczsKK+e+pOWztiA+IGdyb3VwXC1vZlwtaXNsYW5kczsKK+eKr+azlSA+IHRvXC1icmVha1wtdGhlXC1sYXc7CivkuI3lsJEgPiBub3RcLVwoanVzdFwpXC1hXC1mZXc7CivlubTpvaEgPiBcKGFcLXBlcnNvbicnc1wpXC1hZ2U7Civmr5Tnv7wgPiBmbHlcLXdpbmdcLXRvXC13aW5nOwor56We5aWHID4gbWFnaWNhbFwtbXlzdGljYWw7CivnpoHlk4EgPiBjb250cmFiYW5kXC1nb29kczsKK+acgOWFiCA+IFwodGhlXClcLXZlcnlcLWZpcnN0Owor5amG5a62ID4gaHVzYmFuZCcnc1wtZmFtaWx5Owor5piO5reoID4gYnJpZ2h0XC1hbmRcLWNsZWFuOwor6YeN5oW2ID4gY2hvbmdxaW5nXC1cKGNpdHlcKTsKK+WphuWphiA+IGh1c2JhbmQnJ3NcLW1vdGhlcjsKK+WQg+WujCA+IHRvXC1maW5pc2hcLWVhdGluZzsKK+mAvOi/kSA+IHByZXNzXC1vblwtdG93YXJkczsKK+WgsemkqCA+IG5ld3NwYXBlclwtb2ZmaWNlOwor6Zu757qcID4gXChlbGVjdHJpY1wpXC1jYWJsZTsKK+eLgOaFiyA+IHN0YXRlXC1vZlwtYWZmYWlyczsKK+S4reS7iyA+IGFnZW50XC1cKGNvbXB1dGVyXCk7CivkuI3lhYkgPiBub3RcLXRoZVwtb25seVwtb25lOwor5pqR5aSpID4gaG90XC1cKHN1bW1lclwpXC1kYXk7Civoj6/oqp4gPiBjaGluZXNlXC1sYW5ndWFnZTsKK+S4jeWDhSA+IG5vdFwtdGhlXC1vbmx5XC1vbmU7Civlj43lsI0gPiB0b1wtZmlnaHRcLWFnYWluc3Q7CivkuI3kuYUgPiBub3RcLWxvbmdcLVwoYWZ0ZXJcKTsKK+WkqeeItiA+IGhlYXZlbmx5XC1mYXRoZXI7CivnibnlvrUgPiBjaGFyYWN0ZXJpc3RpY3M7CivmmpHlgYcgPiBzdW1tZXJcLXZhY2F0aW9uOwor5pO66ISrID4gYnJlYWtcLWF3YXlcLWZyb207CivljYrmlbggPiBoYWxmXC10aGVcLW51bWJlcjsKK+WGsOmcnCA+IG1vcmFsXC1pbnRlZ3JpdHk7Civli7vmupwgPiBldmVuXC1hbmRcLXNtb290aDsKK+WOn+WnlCA+IHRoZVwtd2hvbGVcLXN0b3J5Owor54m55a+rID4gZmVhdHVyZVwtYXJ0aWNsZTsKK+aYpeWkqSA+IHNwcmluZ1wtXChzZWFzb25cKTsKK+atoueXmyA+IHRvXC1yZWxpZXZlXC1wYWluOwor5Y+b5LqCID4gYXJtZWRcLXJlYmVsbGlvbjsKK+aWh+aqlCA+IFwoY29tcHV0ZXJcKVwtZmlsZTsKK+e3rOeUuCA+IG15YW5tYXJcLVwoYnVybWFcKTsKK+WkseacmyA+IGJlXC1kaXNhcHBvaW50ZWQ7CivntrLnq5kgPiBuZXR3b3JrXC1zdGF0aW9uOwor6ZaL6ZaAID4gb3BlblwtXCh0aGVcKVwtZG9vcjsKK+e2k+euoSA+IGJlXC1pblwtY2hhcmdlXC1vZjsKK+WNiuWkqSA+IGhhbGZcLW9mXC10aGVcLWRheTsKK+iqnuaXjyA+IGxhbmd1YWdlXC1icmFuY2g7CivlvoDlubQgPiBpblwtZm9ybWVyXC15ZWFyczsKK+aXpeWgsSA+IGRhaWx5XC1uZXdzcGFwZXI7CivlhYnpm7sgPiBvcHRvXC1lbGVjdHJpY2FsOwor6Kqe5pSvID4gbGFuZ3VhZ2VcLWJyYW5jaDsKK+eZvemQtSA+IGdhbHZhbml6ZWRcLWlyb247Civpm4XmrYwgPiBzb25nXC1vZlwtc29sb21vbjsKK+W9vOWyuCA+IHRoZVwtb3RoZXJcLXNob3JlOwor6YWN5ZCIID4gY29vcmRpbmF0ZVwtd2l0aDsKK+WgseezuyA+IG5ld3NwYXBlclwtY2hhaW47CivmqJnph48gPiBzY2FsYXJcLXF1YW50aXR5Owor5Y2X5YyXID4gbm9ydGhcLWFuZFwtc291dGg7Civmr5TlrrkgPiBzcGVjaWZpY1wtdm9sdW1lOwor55uI6JmnID4gcHJvZml0XC1hbmRcLWxvc3M7Civli7jlsI4gPiB0cnlcLXRvXC1jb252aW5jZTsKK+mZo+eHnyA+IGdyb3VwXC1vZlwtcGVvcGxlOwor5bm+55m+ID4gc2V2ZXJhbFwtaHVuZHJlZDsKK+Wkp+WvqyA+IGNhcGl0YWxcLWxldHRlcnM7CivpgY7mtLsgPiBsaXZlXC1vbmUnJ3NcLWxpZmU7CivniYzkvY0gPiBtZW1vcmlhbFwtdGFibGV0Owor5pep5LqbID4gXChhXC1iaXRcKVwtZWFybGllcjsKK+iqsuWkliA+IGV4dHJhY3VycmljdWxhcjsKK+aUtuaLviA+IHRvXC1wdXRcLWluXC1vcmRlcjsKK+e2suautSA+IG5ldHdvcmtcLXNlZ21lbnQ7CivlvJ/lvJ8gPiB5b3VuZ2VyXC1icm90aGVyOwor6YGy5pepID4gc29vbmVyXC1vclwtbGF0ZXI7Civnn67lsI8gPiBzaG9ydFwtYW5kXC1zbWFsbDsKK+avlOWDuSA+IHByaWNlXC1yZWxhdGlvbnM7CivmlrDku7sgPiBuZXdseVwtYXBwb2ludGVkOwor6Zy45L2UID4gZm9yY2libHlcLW9jY3VweTsKK+eXhemtlCA+IHNlcmlvdXNcLWlsbG5lc3M7CivluLjnlKggPiBpblwtY29tbW9uXC11c2FnZTsKK+WGsOejmiA+IGljZVwtY3JlYW1cLWJyaWNrOwor55m96I+cID4gY2hpbmVzZVwtY2FiYmFnZTsKK+W8t+WKoCA+IGltcG9zZVwtYnlcLWZvcmNlOwor5aSW5LqLID4gZm9yZWlnblwtYWZmYWlyczsKK+mCiuWcsCA+IGJvcmRlclwtZGlzdHJpY3Q7CivoiIzpnaIgPiBibGFkZVwtb2ZcLXRvbmd1ZTsKK+iRl+S9nCA+IGFcLWxpdGVyYXJ5XC13b3JrOwor55m957GzID4gXChwb2xpc2hlZFwpXC1yaWNlOwor54CV6IeoID4gb25cLXRoZVwtdmVyZ2VcLW9mOwor5pCN55uKID4gcHJvZml0XC1hbmRcLWxvc3M7Civpgbjllq4gPiBcKHNvZnR3YXJlXClcLW1lbnU7Civln7fms5UgPiBsYXdcLWVuZm9yY2VtZW50Owor6YCy5bGVID4gdG9cLW1ha2VcLWhlYWR3YXk7CivngrrmraQgPiBmb3JcLXRoaXNcLXJlYXNvbjsKK+W7oOWPsiA+IGZhY3RvcnlcLWhpc3Rvcnk7CivlhYnno4EgPiBtYWduZXRvXC1vcHRpY2FsOwor6ZqY5Y+jID4gXChtb3VudGFpblwpXC1wYXNzOwor57ay5Z2AID4gXChpbnRlcm5ldFwpXC1zaXRlOwor55Wr6Z2iID4gXChwaWN0dXJlXClcLWZyYW1lOwor6I+c5ZywID4gdmVnZXRhYmxlXC1maWVsZDsKK+eVnOmhniA+IGRvbWVzdGljXC1hbmltYWw7CivmirHppIogPiBhZG9wdFwtXChhXC1jaGlsZFwpOwor5Z+O5qiTID4gY2l0eVwtZ2F0ZVwtdG93ZXI7CivmjqHnqK4gPiBzZWVkXC1jb2xsZWN0aW5nOwor6Iqx55m9ID4gZ3JpenpsZWRcLVwoaGFpclwpOwor5bGN6auUID4gXChsaWZlbGVzc1wpXC1ib2R5Owor5ZyW57C9ID4gXChjb21wdXRlclwpXC1pY29uOwor5be05pybID4gbG9va1wtZm9yd2FyZFwtdG87CivlsaTpm7IgPiBzdHJhdHVzXC1cKGNsb3VkXCk7CivnsYznorwgPiBiYXJnYWluaW5nXC1jaGlwOwor6ZmN5YO5ID4gcHJpY2VcLXJlZHVjdGlvbjsKK+aomeaogSA+IFwobWFya2luZ1wpXC1zdGFrZTsKK+mWieacgyA+IGNsb3NlXC1hXC1tZWV0aW5nOwor57SU5bGsID4gcHVyZVwtYW5kXC1zaW1wbGU7CivlhYnmpq4gPiBob25vclwtYW5kXC1nbG9yeTsKK+i+puWtuCA+IHRvXC1ydW5cLWFcLXNjaG9vbDsKK+aomeadhiA+IHN1cnZleW9yJydzXC1wb2xlOwor5bmj5Yi2ID4gY3VycmVuY3lcLXN5c3RlbTsKK+WgseWIsCA+IHJlcG9ydFwtZm9yXC1kdXR5Owor5bm05Lu9ID4gcGFydGljdWxhclwteWVhcjsKK+WfuuWcsCA+IFwobWlsaXRhcnlcKVwtYmFzZTsKK+WFieaYjiA+IGJyaWdodFwtXChmdXR1cmVcKTsKK+S/nemHiyA+IHJlbGVhc2VcLW9uXC1iYWlsOwor5bCE6aC7ID4gcmFkaW9cLWZyZXF1ZW5jeTsKK+mspeeIrSA+IHN0cnVnZ2xlXC1cKHdpdGhcKTsKK+ijoeaguSA+IFwocm9uYWxkXClcLXJlYWdhbjsKK+aKl+ihoSA+IGNvbnRlbmRcLWFnYWluc3Q7CivntJrliKUgPiBcKG1pbGl0YXJ5XClcLXJhbms7CivnrYboqqQgPiBhXC1zbGlwXC1vZlwtYVwtcGVuOwor5YWr5a+2ID4gZWlnaHRcLXRyZWFzdXJlczsKK+eZvuW5tCA+IGFcLWh1bmRyZWRcLXllYXJzOwor5pGY5YCfID4gdG9cLWJvcnJvd1wtbW9uZXk7CivlnJbmqJkgPiBcKGNvbXB1dGVyXClcLWljb247CivplbflrpggPiBzZW5pb3JcLW9mZmljaWFsOwor5YWl5aKDID4gZW50ZXJcLWFcLWNvdW50cnk7CivlhZLlqrMgPiBkYXVnaHRlclwtaW5cLWxhdzsKK+iHgue0lyA+IFwoYmxhY2tcKVwtYXJtYmFuZDsKK+i7jeagoSA+IG1pbGl0YXJ5XC1zY2hvb2w7CivmioroiLUgPiBob2xkXC10aGVcLXJ1ZGRlcjsKK+iiq+aNlSA+IGJlXC11bmRlclwtYXJyZXN0Owor6aaW6ZW3ID4gc2VuaW9yXC1vZmZpY2lhbDsKK+eZvuWNgSA+IGFcLWh1bmRyZWRcLW9yXC1zbzsKK+WdkOWlvSA+IHRvXC1zaXRcLXByb3Blcmx5Owor55Wc55SfID4gZG9tZXN0aWNcLWFuaW1hbDsKK+mMpumbniA+IGdvbGRlblwtcGhlYXNhbnQ7Civoh6rmrrogPiB0b1wta2lsbFwtb25lc2VsZjsKK+mrmOaYgiA+IGluXC1oaWdoXC1zcGlyaXRzOwor56m/6YGOID4gdG9cLXBhc3NcLXRocm91Z2g7CivlgpnmiLAgPiBwcmVwYXJlXC1mb3JcLXdhcjsKK+Wuiei6qyA+IG1ha2VcLW9uZScnc1wtaG9tZTsKK+a4uOiqqiA+IGRydW1cLXVwXC1zdXBwb3J0Owor6Iez5pa8ID4gZ29cLXNvXC1mYXJcLWFzXC10bzsKK+eUn+eJqSA+IGxpdmluZ1wtY3JlYXR1cmU7CivmiLbnsY0gPiBjZW5zdXNcLXJlZ2lzdGVyOwor5qCh6IiNID4gc2Nob29sXC1idWlsZGluZzsKK+WWhOiJryA+IGdvb2RcLWFuZFwtaG9uZXN0Owor6LuN5YKZID4gXChtaWxpdGFyeVwpXC1hcm1zOwor6aaW6IWmID4gaGVhZFwtXChvZlwtc3RhdGVcKTsKK+WuieiRrCA+IGJ1cnlcLVwodGhlXC1kZWFkXCk7CivmpbXlipsgPiBkb1wtYXRcLWFsbFwtY29zdHM7Civot5HmraUgPiB0b1wtd2Fsa1wtcXVpY2tseTsKK+iytuipniA+IGRlcm9nYXRvcnlcLXRlcm07CivkupLpgKMgPiBpbnRlcmNvbm5lY3Rpb247CivmgrLps7QgPiB1dHRlclwtc2FkXC1jYWxsczsKK+a7v+aEjyA+IHRvXC1iZVwtc2F0aXNmaWVkOwor5rW36YGLID4gc2hpcHBpbmdcLWJ5XC1zZWE7CivnlZnlrbggPiB0b1wtc3R1ZHlcLWFicm9hZDsKK+S+v+ainSA+IFwoaW5mb3JtYWxcKVwtbm90ZTsKK+eUmuaIliA+IHNvXC1tdWNoXC1zb1wtdGhhdDsKK+WxseWzsCA+IFwobW91bnRhaW5cKVwtcGVhazsKK+a6q+aflCA+IGdlbnRsZVwtYW5kXC1zb2Z0Owor6auY5LitID4gaGlnaFwtYW5kXC1taWRkbGU7Civog4Pnl4UgPiBzdG9tYWNoXC10cm91YmxlOwor5ZCM6b2hID4gb2ZcLXRoZVwtc2FtZVwtYWdlOwor5ZC46Z+zID4gc291bmRcLWFic29yYmluZzsKK+m6u+mGiSA+IHRvXC1hbmFlc3RoZXRpemU7CivmipXlpZQgPiB0b1wtc2Vla1wtc2hlbHRlcjsKK+S+i+acgyA+IHJlZ3VsYXJcLW1lZXRpbmc7CivppIXogqUgPiBjYWtlXC1mZXJ0aWxpemVyOwor5pq06ZuoID4gdG9ycmVudGlhbFwtcmFpbjsKK+S+v+WutCA+IGluZm9ybWFsXC1kaW5uZXI7CivkuIrov7AgPiBhYm92ZVwtbWVudGlvbmVkOwor5a+m5b2IID4gbGl2ZVwtYW1tdW5pdGlvbjsKK+eUouWAvCA+IHZhbHVlXC1vZlwtb3V0cHV0Owor56Wd6LOAID4gdG9cLWNvbmdyYXR1bGF0ZTsKK+S7peeCuiA+IGNvbnNpZGVyXC1cKHRoYXRcKTsKK+aguOW9iCA+IG51Y2xlYXJcLXdhcmhlYWQ7CivkuIroqrIgPiB0b1wtYXR0ZW5kXC1jbGFzczsKK+espuWQiCA+IGluXC1rZWVwaW5nXC13aXRoOwor5oqA5YCGID4gdHJpY2t5XC1tYW5ldXZlcjsKK+azsOiqniA+IHRoYWlcLVwobGFuZ3VhZ2VcKTsKK+WvteWjniA+IHNwb2lsXC1cKGFcLWNoaWxkXCk7CivkuqTnlYwgPiBjb21tb25cLWJvdW5kYXJ5Owor5LiJ6JCsID4gdGhpcnR5XC10aG91c2FuZDsKK+iyqOa6kCA+IHN1cHBseVwtb2ZcLWdvb2RzOwor56qX5biYID4gd2luZG93XC1jdXJ0YWluczsKK+acn+elqCA+IHByb21pc3NvcnlcLW5vdGU7Civlj6Poqp4gPiBzcG9rZW5cLWxhbmd1YWdlOwor56eB54efID4gcHJpdmF0ZWx5XC1vd25lZDsKK+WvkuWBhyA+IHdpbnRlclwtdmFjYXRpb247Civlk4DmrYwgPiBhXC1tb3VybmZ1bFwtc29uZzsKK+eJvemAoyA+IFwoYmVcKVwtaW1wbGljYXRlZDsKK+aAp+ihjCA+IHNleHVhbFwtYWN0aXZpdHk7Civlrbjlo6sgPiBiYWNoZWxvclwtZGVncmVlOwor6LKg5pOUID4gXChiZWFyXC1hXClcLWJ1cmRlbjsKK+S4gOenmCA+IGZpcnN0XC1zZWNyZXRhcnk7Civol6Xnk7YgPiBtZWRpY2luZVwtYm90dGxlOwor5oWa5oSnID4gXCh0b1wtYmVcKVwtYXNoYW1lZDsKK+S6uuaJjSA+IHRhbGVudGVkXC1wZXJzb247CivkuI3nlJggPiB1bnJlY29uY2lsZWRcLXRvOwor54+t5a2QID4gb3JnYW5pemVkXC1ncm91cDsKK+avj+malCA+IGF0XC1pbnRlcnZhbHNcLW9mOwor5oSb5oi0ID4gbG92ZVwtYW5kXC1lc3RlZW07CivmhJvmiIAgPiBiZVwtaW5cLWxvdmVcLXdpdGg7Civmna3lt54gPiBoYW5nemhvdVwtXChjaXR5XCk7CivllY/kuJYgPiB0b1wtYmVcLXB1Ymxpc2hlZDsKK+aCsuazoyA+IHdlZXBcLXdpdGhcLWdyaWVmOwor5rOV55CGID4gbGVnYWxcLXByaW5jaXBsZTsKK+enqeW6jyA+IG9yZGVyXC1cKG9yZGVybHlcKTsKK+aUv+m7qCA+IHBvbGl0aWNhbFwtcGFydHk7CivlkI3niYcgPiBcKGJ1c2luZXNzXClcLWNhcmQ7Civml4XosrsgPiB0cmF2ZWxcLWV4cGVuc2VzOwor6LKh5ZyYID4gZmluYW5jaWFsXC1ncm91cDsKK+aymeefsyA+IHNhbmRcLWFuZFwtc3RvbmVzOwor56aB5p6cID4gZm9yYmlkZGVuXC1mcnVpdDsKK+mDtemBniA+IHRvXC1zZW5kXC1ieVwtbWFpbDsKK+aekOWHuiA+IHRvXC1zZXBlcmF0ZVwtb3V0Owor5aWU6KWyID4gbG9uZ1wtcmFuZ2VcLXJhaWQ7Civmnb/liLcgPiBzY3J1YmJpbmdcLWJydXNoOwor5pyN5b6eID4gb2JleVwtXChhblwtb3JkZXJcKTsKK+aWveihjCA+IHRvXC1wdXRcLWluXC1wbGFjZTsKK+e9sOasviA+IFwoaW1wb3NlXC1hXClcLWZpbmU7Civpm4zpm4QgPiBtYWxlXC1hbmRcLWZlbWFsZTsKK+mCiumfsyA+IGxhdGVyYWxcLVwoc291bmRcKTsKK+avjeiqniA+IG5hdGl2ZVwtbGFuZ3VhZ2U7Civmr43opqogPiBtb3RoZXJcLVwoZm9ybWFsXCk7Civms7DmlocgPiB0aGFpXC1cKGxhbmd1YWdlXCk7Civno4Hnm6QgPiBcKGNvbXB1dGVyXClcLWRpc2s7CivlqrPlqaYgPiBkYXVnaHRlclwtaW5cLWxhdzsKK+ekpualrSA+IG1pbmluZ1wtaW5kdXN0cnk7CivmtYHlpLEgPiBiZVwtZHJhaW5lZFwtYXdheTsKK+W8lei1tyA+IHRvXC1naXZlXC1yaXNlXC10bzsKK/CjjrQgPiBzdHVtcFwtb2ZcLWFcLXRyZWU7CivorYnniakgPiBleGhpYml0XC1cKGxlZ2FsXCk7CivnuKvoo5wgPiBkYXJuXC1cKGNsb3RoaW5nXCk7Civnt6jpgbggPiBzZWxlY3RcLWFuZFwtZWRpdDsKK+S4iuWtuCA+IHRvXC1nb1wtdG9cLXNjaG9vbDsKK+mgu+W4tiA+IGZyZXF1ZW5jeVwtcmFuZ2U7Civluq3plbcgPiBwcmVzaWRpbmdcLWp1ZGdlOwor5pS/6KaLID4gcG9saXRpY2FsXC12aWV3czsKK+aCsuWYhiA+IHNpZ2hcLW1vdXJuZnVsbHk7CivpoLvlr6wgPiBmcmVxdWVuY3lcLXJhbmdlOwor5Y2K55SfID4gaGFsZlwtYVwtbGlmZXRpbWU7CivljZrniakgPiBuYXR1cmFsXC1zY2llbmNlOwor6YO156WoID4gXChwb3N0YWdlXClcLXN0YW1wOwor5oGw5aW9ID4gYXNcLWl0XC10dXJuc1wtb3V0Owor5rCj5rqrID4gYWlyXC10ZW1wZXJhdHVyZTsKK+efruiDliA+IHNob3J0XC1hbmRcLXN0b3V0Owor6Kqe57O7ID4gbGFuZ3VhZ2VcLXN5c3RlbTsKK+iuiuW9oiA+IGJlXC1vdXRcLW9mXC1zaGFwZTsKK+WNl+a1tyA+IHNvdXRoXC1jaGluYVwtc2VhOwor576O5YWDID4gYW1lcmljYW5cLWRvbGxhcjsKK+S4luS6uiA+IFwoY29tbW9uXClcLXBlb3BsZTsKK+WQjeWWriA+IGxpc3RcLVwob2ZcLW5hbWVzXCk7Civpm7vno4EgPiBlbGVjdHJvbWFnbmV0aWM7CivmsJHmrIogPiBjaXZpbFwtbGliZXJ0aWVzOwor5pOa6KqqID4gaXRcLWlzXC1zYWlkXC10aGF0Owor5Y6f5oCnID4gb3JpZ2luYWxcLW5hdHVyZTsKK+aVuOeZviA+IHNldmVyYWxcLWh1bmRyZWQ7Civmk43oqrIgPiBtaWxpdGFyeVwtZHJpbGw7CivljZTmnIMgPiBhblwtYXNzb2NpYXRpb247CivmlofniakgPiBjdWx0dXJhbFwtcmVsaWM7CivpgJroqIogPiBjb21tdW5pY2F0aW9uczsKK+WNseaIvyA+IGRlY3JlcGl0XC1ob3VzZTsKK+eJueW3pSA+IHNlY3JldFwtc2VydmljZTsKK+mbu+eHiCA+IGVsZWN0cmljXC1saWdodDsKK+WMl+altSA+IHRoZVwtbm9ydGhcLXBvbGU7CivpoJDku5ggPiBwYXlcLWluXC1hZHZhbmNlOwor5q665rCjID4gbXVyZGVyb3VzXC1sb29rOwor56OB5aC0ID4gbWFnbmV0aWNcLWZpZWxkOwor54mZ5bqKID4gYWx2ZW9sYXJcLXJpZGdlOwor5Y+D5YqgID4gdG9cLXBhcnRpY2lwYXRlOwor5rCR5oSPID4gcHVibGljXC1vcGluaW9uOwor5aa55aa5ID4geW91bmdlclwtc2lzdGVyOwor5b6A5pelID4gaW5cLWZvcm1lclwtZGF5czsKK+WLmOa4rCA+IHRvXC1pbnZlc3RpZ2F0ZTsKK+WGsOmHiyA+IFwob2ZcLW1pc2dpdmluZ3M7CivlpKfmqJMgPiBsYXJnZVwtYnVpbGRpbmc7CivmgKrkurogPiBzdHJhbmdlXC1wZXJzb247Civnh5/mpa0gPiB0b1wtZG9cLWJ1c2luZXNzOwor5aGR6IagID4gcGxhc3RpY1wtY2VtZW50Owor5pma5LiKID4gaW5cLXRoZVwtZXZlbmluZzsKK+aVo+atpSA+IHRvXC10YWtlXC1hXC13YWxrOwor6K2Y5YilID4gdG9cLWRpc3Rpbmd1aXNoOwor5aSx5o6nID4gb3V0XC1vZlwtY29udHJvbDsKK+aVuOaciCA+IHNldmVyYWxcLW1vbnRoczsKK+W+gOW+qSA+IHRvXC1yZWNpcHJvY2F0ZTsKK+mdtuWgtCA+IHNob290aW5nXC1yYW5nZTsKK+ezlumGiyA+IHN3ZWV0XC1hbmRcLXNvdXI7CivluLPomZ8gPiBhY2NvdW50XC1udW1iZXI7CivniKrlrZAgPiBcKGFuaW1hbCcnc1wpXC1wYXc7CivliKXnrqEgPiBub1wtbWF0dGVyXC1cKHdobzsKK+WIqOeoiyA+IHBsYW5pbmdcLWxlbmd0aDsKK+e0oOiPnCA+IHZlZ2V0YWJsZVwtZGlzaDsKK+mWi+i7iiA+IHRvXC1kcml2ZVwtYVwtY2FyOwor54WZ54GrID4gc21va2VcLWFuZFwtZmlyZTsKK+i9iemBiyA+IHRyYW5zcG9ydGF0aW9uOwor5beh6K2mID4gcG9saWNlXC1vZmZpY2VyOwor5pS+5pigID4gc2hvd1wtXChhXC1tb3ZpZVwpOwor6KO96YCgID4gdG9cLW1hbnVmYWN0dXJlOwor5Yip546HID4gaW50ZXJlc3RcLXJhdGVzOwor6Ly/6KuWID4gcHVibGljXC1vcGluaW9uOwor5byx5bCPID4gc21hbGxcLWFuZFwtd2VhazsKK+aVneWxoyA+IHdvcm5cLW91dFwtc2hvZXM7Civnn67lrZAgPiBhXC1zaG9ydFwtcGVyc29uOwor6YCf5rG6ID4gcXVpY2tcLWRlY2lzaW9uOwor6Zec56iFID4gXChjdXN0b21zXClcLWR1dHk7Civnmb3omIcgPiBjb21tb25cLXBlcmlsbGE7Civmr5TlgLwgPiBzcGVjaWZpY1wtdmFsdWU7Civln7rnnaMgPiBqZXN1c1wtXChjaHJpc3RcKTsKK+aOoui3ryA+IHRvXC1maW5kXC1hXC1wYXRoOwor6YGZ5o6nID4gcmVtb3RlXC1jb250cm9sOwor6YGZ5oSfID4gcmVtb3RlXC1zZW5zaW5nOwor55m96ImyID4gd2hpdGVcLVwoY29sb3VyXCk7CivmkqXmrL4gPiBhbGxvY2F0ZVwtZnVuZHM7Civlu6Dlt6UgPiBmYWN0b3J5XC13b3JrZXI7CivmraPlpb0gPiBqdXN0XC1cKGluXC10aW1lXCk7CivmjqLoppYgPiBwYXlcLWFcLXZpc2l0XC10bzsKK+WIpOaYjiA+IHRvXC1kaXN0aW5ndWlzaDsKK+W8leWSjiA+IHRha2VcLXRoZVwtYmxhbWU7Civlo4HloLEgPiB3YWxsXC1uZXdzcGFwZXI7CivmlLnlloQgPiB0b1wtbWFrZVwtYmV0dGVyOwor6YCg5oiQID4gdG9cLWJyaW5nXC1hYm91dDsKK+W5q+acgyA+IHNlY3JldFwtc29jaWV0eTsKK+aTjeW/gyA+IHRvXC13b3JyeVwtYWJvdXQ7Civnmb3nqK4gPiB0aGVcLXdoaXRlXC1yYWNlOwor6KOc57y6ID4gZmlsbFwtYVwtdmFjYW5jeTsKK+ilv+atkCA+IHdlc3Rlcm5cLWV1cm9wZTsKK+mAleW6rSA+IHZlcnlcLWRpZmZlcmVudDsKK+ijnOe2tCA+IG1lbmRcLVwoY2xvdGhlc1wpOwor6ZuG5LitID4gdG9cLWNvbmNlbnRyYXRlOwor6YGy5YiwID4gdG9cLWFycml2ZVwtbGF0ZTsKK+WgseW+qSA+IG1ha2VcLXJlcHJpc2FsczsKK+ecn+aDhSA+IHJlYWxcLXNpdHVhdGlvbjsKK+W3qOa1gSA+IHN0cm9uZ1wtY3VycmVudDsKK+mAgOWtuCA+IHRvXC1xdWl0XC1zY2hvb2w7Civlu4nlg7kgPiBjaGVhcGx5XC1wcmljZWQ7Civnl4XomZ8gPiBzaWNrXC1wZXJzb25uZWw7CivlnJjntZAgPiBcKGhvbGRcLWFcKVwtcmFsbHk7CivlnI3nuZ4gPiByZXZvbHZlXC1hcm91bmQ7Civov5HlubQgPiByZWNlbnRcLXllYXJcKHNcKTsKK+WAkumWiSA+IHRvXC1nb1wtYmFua3J1cHQ7CivlhrfmiLAgPiBcKHRoZVwpXC1jb2xkXC13YXI7Civlg7nnm64gPiBcKG1hcmtlZFwpXC1wcmljZTsKK+eXheiEiCA+IGFibm9ybWFsXC1wdWxzZTsKK+a8uOiuiiA+IGdyYWR1YWxcLWNoYW5nZTsKK+mAmuS/oSA+IHRvXC1jb21tdW5pY2F0ZTsKK+e0gOW/tSA+IHRvXC1jb21tZW1vcmF0ZTsKK+mWi+acgyA+IGhhdmVcLWFcLW1lZXRpbmc7Civlhajmma8gPiBwYW5vcmFtaWNcLXZpZXc7CivliIDlj4kgPiBrbmlmZVwtYW5kXC1mb3JrOwor5biD5bibID4gY2xvdGhcLWFuZFwtc2lsazsKK+aJvumMoiA+IHRvXC1naXZlXC1jaGFuZ2U7Civoo5zmtrIgPiBmbHVpZFwtaW5mdXNpb247Civotbfpu54gPiBzdGFydGluZ1wtcG9pbnQ7CivloLHliIYgPiBjYWxsXC10aGVcLXNjb3JlOwor5oy656uLID4gdG9cLXN0YW5kXC1lcmVjdDsKK+WFq+aIkCA+IGVpZ2h0eVwtcGVyY2VudDsKK+WFqeaJiyA+IGRvdWJsZVwtdGFjdGljczsKK+aOoeayuSA+IG9pbFwtZXh0cmFjdGlvbjsKK+i3qOi2iiA+IHRvXC1zdGVwXC1hY3Jvc3M7Civot5HpgZMgPiBhdGhsZXRpY1wtdHJhY2s7Civmj6Hmi7MgPiB0b1wtbWFrZVwtYVwtZmlzdDsKK+aPoeaJiyA+IHRvXC1zaGFrZVwtaGFuZHM7Civnsr7lubIgPiBjcmFja1wtXCh0cm9vcHNcKTsKK+mVt+W+gSA+IHRoZVwtbG9uZ1wtbWFyY2g7Civnl4Xnl5sgPiBzbGlnaHRcLWlsbG5lc3M7Civoi7Hlr7ggPiBcKGVuZ2xpc2hcKVwtaW5jaDsKK+aomeWwuiA+IHN1cnZleW9yJydzXC1yb2Q7CivlsIfou40gPiBcKGFybXlcKVwtZ2VuZXJhbDsKK+WFqeWciyA+IGJvdGhcLWNvdW50cmllczsKK+WFqOWciyA+IGVudGlyZVwtY291bnRyeTsKK+i8qeWtkCA+IGFsbFwtb25lJydzXC1saWZlOwor6ZW35Z+OID4gdGhlXC1ncmVhdFwtd2FsbDsKK+ihqOaxuiA+IGRlY2lkZVwtYnlcLXZvdGU7CivmiJDpg70gPiBjaGVuZ2R1XC1cKGNpdHlcKTsKK+mspeaZuiA+IGJhdHRsZVwtb2ZcLXdpdHM7CivlhavljYMgPiBlaWdodFwtdGhvdXNhbmQ7Civnl4XmrbcgPiBtZWRpY2FsXC1yZWNvcmQ7CivkvLjplosgPiB0b1wtc3RyZXRjaFwtb3V0Owor5ryU56S6ID4gdG9cLWRlbW9uc3RyYXRlOwor55Wi55SfID4gYWxsXC1vbmUnJ3NcLWxpZmU7Civmj6HliKUgPiB0b1wtc2hha2VcLWhhbmRzOwor5YKz5pKtID4gdG9cLWRpc3NlbWluYXRlOwor5YWl5LyNID4gZW50ZXJcLXRoZVwtYXJteTsKK+mmlumDvSA+IGNhcGl0YWxcLVwoY2l0eVwpOwor5r2U5reoID4gY2xlYW5zZVwtXChzaW5zXCk7CivoiIzmoLkgPiBiYWNrXC1vZlwtdG9uZ3VlOwor5YKN5pmaID4gaW5cLXRoZVwtZXZlbmluZzsKK+ihjOaUvyA+IGFkbWluaXN0cmF0aW9uOwor5bCP6IGyID4gaW5cLWFcLWxvd1wtdm9pY2U7Civnr6HmlLkgPiB0b1wtdGFtcGVyXC13aXRoOwor5oiq6IezID4gdXBcLXRvXC1cKGFcLXRpbWVcKTsKK+i1t+iNiSA+IGRyYWZ0XC1cKGFcLWJpbGxcKTsKK+aMqOaJkyA+IHRha2VcLWFcLWJlYXRpbmc7CivlsaTnkIYgPiBzdHJhdGlmaWNhdGlvbjsKK+eQg+meiyA+IGF0aGxldGljXC1zaG9lczsKK+mNi+iyvCA+IGZyaWVkXC1kdW1wbGluZzsKK+aOiOWRvSA+IHRvXC1naXZlXC1vcmRlcnM7CivmoLjog70gPiBudWNsZWFyXC1lbmVyZ3k7Civmta7pu54gPiBmbG9hdGluZ1wtcG9pbnQ7CivnlJ/ngasgPiB0b1wtbWFrZVwtYVwtZmlyZTsKK+iHquW+niA+IHNpbmNlXC1cKGFcLXRpbWVcKTsKK+WvtuefsyA+IHByZWNpb3VzXC1zdG9uZTsKK+ajhOaruyA+IGFiYW5kb25lZFwtYmFieTsKK+eUouasiiA+IHByb3BlcnR5XC1yaWdodDsKK+m9kui8qiA+IFwobWFjaGluZVwpXC1nZWFyOwor5L6154qvID4gdG9cLWluZnJpbmdlXC1vbjsKK+ihgOWjkyA+IGJsb29kXC1wcmVzc3VyZTsKK+eXheWToSA+IHNpY2tcLXBlcnNvbm5lbDsKK+a4m+iCpSA+IHRvXC1sb3NlXC13ZWlnaHQ7Civku6PooaggPiByZXByZXNlbnRhdGl2ZTsKK+eVq+WxlSA+IGFydFwtZXhoaWJpdGlvbjsKK+eUn+aViCA+IHRvXC10YWtlXC1lZmZlY3Q7CivmiY3msKMgPiBsaXRlYXJ5XC10YWxlbnQ7CivmnJ/plpMgPiBwZXJpb2RcLW9mXC10aW1lOwor5bCI5qyEID4gc3BlY2lhbFwtY29sdW1uOwor5a2457GNID4gc2Nob29sXC1yb2xsXChzXCk7CivnpoHpo58gPiBmYXN0XC1cKG5vdFwtZWF0XCk7Civmn5DnqK4gPiBzb21lXC1raW5kXC1cKG9mXCk7CivlsIfmnIMgPiB3aWxsXCxcLWdvaW5nXC10bzsKK+ixjui1tyA+IGhvbGRcLXVwXC1cKGhpZ2hcKTsKK+WvtuabuCA+IHRyZWFzdXJlZFwtYm9vazsKK+WQg+mpmiA+IHRvXC1iZVwtc3RhcnRsZWQ7CivlsI7lvYggPiBndWlkZWRcLW1pc3NpbGU7CivmuIXniL0gPiBmcmVzaFwtYW5kXC1jb29sOwor5LqS6IGvID4gaW50ZXJjb25uZWN0ZWQ7CivllLHniYcgPiBcKHZpbnlsXClcLXJlY29yZDsKK+S6jOiAhSA+IGJvdGhcLVxbb2ZcLXRoZW1cXTsKK+aJjeWtkCA+IGdpZnRlZFwtc2Nob2xhcjsKK+S+teWusyA+IHRvXC1lbmNyb2FjaFwtb247Civlr7bluqsgPiB0cmVhc3VyZVwtaG91c2U7Civkv53llq4gPiBndWFyYW50ZWVcLXNsaXA7CivlsI/lrbggPiBwcmltYXJ5XC1zY2hvb2w7Civku5TnlZwgPiBuZXdib3JuXC1hbmltYWw7CivmnKzoibIgPiBuYXR1cmFsXC1jb2xvdXI7CivkvoblvoAgPiB0b1wtY29tZVwtYW5kXC1nbzsKK+mhjOi3iyA+IHNob3J0XC1jb21tZW50czsKK+S4jeinoyA+IG5vdFwtdW5kZXJzdGFuZDsKK+aHruaFriA+IFwoZmVlbFwpXC1hbnhpZXR5Owor5L2Z5oK4ID4gbGluZ2VyaW5nXC1mZWFyOwor5oiQ5bCxID4gYWNjb21wbGlzaG1lbnQ7Civlrrnlv40gPiB0b1wtcHV0XC11cFwtd2l0aDsKK+e9t+irliA+IGFiYW5kb25lZFwtaWRlYTsKK+aCo+iZlSA+IGFmZmxpY3RlZFwtcGFydDsKK+aetuaniyA+IGluZnJhc3RydWN0dXJlOwor56m05pKtID4gYnVuY2hcLXBsYW50aW5nOwor5oe35a2VID4gdG9cLWJlXC1wcmVnbmFudDsKK+iBt+alrSA+IGpvYlwtb2NjdXBhdGlvbjsKK+S7u+acnyA+IHRlcm1cLW9mXC1vZmZpY2U7CivkuI3oiIggPiBvdXRcLW9mXC1mYXNoaW9uOwor55CD5qOSID4gXChiYXNlYmFsbFwpXC1iYXQ7Civos4fmoLwgPiBxdWFsaWZpY2F0aW9uczsKK+adsea1tyA+IGVhc3RcLWNoaW5hXC1zZWE7CivmnbHmrZAgPiBlYXN0ZXJuXC1ldXJvcGU7Civku7vmhpEgPiBub1wtbWF0dGVyXC13aGF0Owor5LuK5pydID4gYXRcLXRoZVwtcHJlc2VudDsKK+S9nOWTgSA+IHdvcmtzXC1cKG9mXC1hcnRcKTsKK+aGi+aCtiA+IGZlZWxcLW9wcHJlc3NlZDsKK+mjvOanvSA+IGZlZWRpbmdcLXRyb3VnaDsKK+itpui7iiA+IHBvbGljZVwtdmVoaWNsZTsKK+WvkuWGtyA+IGNvbGRcLVwoY2xpbWF0ZVwpOwor5a6J5aW9ID4gc2FmZVwtYW5kXC1zb3VuZDsKK+a2suaZtiA+IGxpcXVpZFwtY3J5c3RhbDsKK+WPg+ingCA+IHRvXC1sb29rXC1hcm91bmQ7Civlj6/og70gPiBtaWdodFwtXChoYXBwZW5cKTsKK+mmluWFiCA+IGZpcnN0XC1cKG9mXC1hbGxcKTsKK+a2suaFiyA+IGxpcXVpZFwtXChzdGF0ZVwpOwor5a2V5ammID4gcHJlZ25hbnRcLXdvbWFuOwor5LmY5rOVID4gbXVsdGlwbGljYXRpb247Civlrprlg7kgPiB0b1wtc2V0XC1hXC1wcmljZTsKK+aal+eusSA+IGNhbWVyYVwtYmVsbG93czsKK+a4m+WIkSA+IHJlZHVjZVwtcGVuYWx0eTsKK+S4gOeUnyA+IGFsbFwtb25lJydzXC1saWZlOwor5Lit5q2QID4gY2VudHJhbFwtZXVyb3BlOwor54qv572qID4gXChjb21taXRcKVwtY3JpbWU7Civku73lhZIgPiBkZWdyZWVcLFwtZXh0ZW50Owor54m56ImyID4gY2hhcmFjdGVyaXN0aWM7CivkuK3mlrcgPiB0b1wtZGlzY29udGludWU7Civnp5XlrZAgPiBibGlnaHRlZFwtZ3JhaW47Civnj77ku7sgPiBhdFwtdGhlXC1wcmVzZW50Owor5pyJ5b6FID4gbm90XC15ZXRcLVwoZG9uZVwpOwor6aGM5p2QID4gc3ViamVjdFwtbWF0dGVyOwor56Sm5rOJID4gbWluZXJhbFwtc3ByaW5nOwor5q+b6KGjID4gXCh3b29sXClcLXN3ZWF0ZXI7Civosqzku7sgPiByZXNwb25zaWJpbGl0eTsKK+WNiuiBtyA+IHBhcnRcLXRpbWVcLXdvcms7Civpoa/lvpcgPiBhcHBlYXJcLVwodG9cLWJlXCk7CivnoJToo70gPiB0b1wtbWFudWZhY3R1cmU7CivkuI3lv40gPiBjYW5ub3RcLWJlYXJcLXRvOwor5aq95ZKqID4gbXVtbXlcLVwobW90aGVyXCk7Civms6LmgakgPiBib25uXC1cKGdlcm1hbnlcKTsKK+aVl+iotCA+IGxvc2VcLWFcLWxhd3N1aXQ7Civlo73ooaMgPiBidXJpYWxcLWNsb3RoZXM7Civmk7rpkJggPiBwZW5kdWx1bVwtY2xvY2s7CivljJfnt68gPiBub3J0aFwtbGF0aXR1ZGU7Civlj4rmoLwgPiB0b1wtcGFzc1wtYVwtdGVzdDsKK+azleW6rSA+IGNvdXJ0XC1cKG9mXC1sYXdcKTsKK+mAmemhniA+IHRoaXNcLWtpbmRcLVwob2ZcKTsKK+S4u+S/riA+IFwoc2Nob29sXClcLW1ham9yOwor6K6K5oiQID4gdG9cLWNoYW5nZVwtaW50bzsKK+S4jeWQiCA+IG5vdFwtY29uZm9ybVwtdG87CivmlpHnq7kgPiBtb3R0bGVkXC1iYW1ib287CivkuI3lj4ogPiBub3RcLWFzXC1nb29kXC1hczsKK+WIhumhniA+IGNsYXNzaWZpY2F0aW9uOwor6YeN5bu6ID4gcmVjb25zdHJ1Y3Rpb247Civoq4vnnIsgPiBwbGVhc2VcLXNlZVwtXC5cLlwuOwor6aGe5YilID4gY2xhc3NpZmljYXRpb247CivmsKvmsKMgPiBoeWRyb2dlblwtXChnYXNcKTsKK+aVuOeoriA+IG51bWVyb3VzXC10eXBlczsKK+egtOeUoiA+IHRvXC1nb1wtYmFua3J1cHQ7CivlhrDpu54gPiBmcmVlemluZ1wtcG9pbnQ7Civoj6/oo5QgPiBldGhuaWNcLWNoaW5lc2U7CivkuI3ku4EgPiBub3RcLWJlbmV2b2xlbnQ7CivmlLbogb0gPiB0b1wtbGlzdGVuXC1cKHRvXCk7Civoj7Loj7IgPiB2ZXJ5XC1mcmFncmFudDsKK+aYguaPmiA+IGhpZ2hcLXNwaXJpdGVkOwor5pep5pmoID4gZWFybHlcLW1vcm5pbmc7Civno4HluLYgPiBtYWduZXRpY1wtdGFwZTsKK+ino+iqvyA+IHRvXC1kZW1vZHVsYXRlOwor5YyX5rW3ID4gdGhlXC1ub3J0aFwtc2VhOwor6JaE5YipID4gc21hbGxcLXByb2ZpdHM7CivmmZrloLEgPiBldmVuaW5nXC1wYXBlcjsKK+aYn+W6pyA+IGNvbnN0ZWxsYXRpb247CivlhrDpnosgPiBza2F0aW5nXC1ib290czsKK+W7oOe1siA+IGZpbGF0dXJlXC1zaWxrOwor55+b55u+ID4gY29udHJhZGljdG9yeTsKK+WHuuizoyA+IHRvXC1zZWxsXC1cKG9mZlwpOwor5Yiw6JmVID4gaW5cLWFsbFwtcGxhY2VzOwor5Y+k5LujID4gYW5jaWVudFwtdGltZXM7CivmlrDmnIggPiBjcmVzY2VudFwtbW9vbjsKK+WNs+WwhyA+IG9uXC10aGVcLWV2ZVwtb2Y7CivljZHlvq4gPiBwZXR0eVwtYW5kXC1sb3c7CivljbHlrrMgPiB0b1wtamVvcGFyZGl6ZTsKK+WIqOiKsSA+IHdvb2RcLXNoYXZpbmdzOwor6I6o6I+qID4gYmxhY2tcLWhlbmJhbmU7Civoqr/mn6UgPiBpbnZlc3RpZ2F0aW9uOwor57aB6IW/ID4gbGVnXC13cmFwcGluZ3M7CivliJfoiIkgPiBcKG1ha2VcLWFcKVwtbGlzdDsKK+mBqeeUqCA+IGJlXC1hcHBsaWNhYmxlOwor5pGY6KiYID4gdG9cLXRha2VcLW5vdGVzOwor5YWD6aaWID4gaGVhZFwtb2ZcLXN0YXRlOwor5pa55byPID4gd2F5XC1cKG9mXC1saWZlXCk7Civml6XlpJwgPiBkYXlcLWFuZFwtbmlnaHQ7Civoip3pursgPiBzZXNhbWVcLVwoc2VlZFwpOwor54mM5Z2KID4gbWVtb3JpYWxcLWFyY2g7CivliY3nlJ8gPiBwcmVcLWV4aXN0ZW5jZTsKK+aYh+WAvCA+IHJpc2VcLWluXC12YWx1ZTsKK+exs+mjryA+IFwoY29va2VkXClcLXJpY2U7CivovYnpgZMgPiBtYWtlXC1hXC1kZXRvdXI7CivplbfpgJQgPiBsb25nXC1kaXN0YW5jZTsKK+aXpeWJjSA+IHRoZVwtb3RoZXJcLWRheTsKK+WinOavgCA+IFwocGxhbmVcKVwtY3Jhc2g7Civpm5nmiYsgPiBwYWlyXC1vZlwtaGFuZHM7CivljZfkup4gPiBzb3V0aGVyblwtYXNpYTsKK+WIiueZuyA+IGNhcnJ5XC1hXC1zdG9yeTsKK+iqh+W8tSA+IHRvXC1leGFnZ2VyYXRlOwor6Zuj5b+YID4gdW5mb3JnZXR0YWJsZTsKK+aXqeS4iiA+IGVhcmx5XC1tb3JuaW5nOwor5aSq5aSqID4gbWFycmllZFwtd29tYW47CivmkqXnlKggPiBhcHByb3ByaWF0aW9uOwor5aKD5rOBID4gY2lyY3Vtc3RhbmNlczsKK+awkeS6iyA+IGNpdmlsXC1tYXR0ZXJzOwor5aWz5L2jID4gXChmZW1hbGVcKVwtbWFpZDsKK+WLmOWvnyA+IHJlY29ubmFpc2FuY2U7CivnsYzpm4YgPiBjb2xsZWN0XC1tb25leTsKK+aTjea8lCA+IGRlbW9uc3RyYXRpb247Civlubvnh4ggPiBsYXRlcm5cLXNsaWRlczsKK+WKoOW/qyA+IHRvXC1hY2NlbGVyYXRlOwor5Yaw57OWID4gY3J5c3RhbFwtc3VnYXI7CivlnIvpmpsgPiBpbnRlcm5hdGlvbmFsOwor6ayl6ZueID4gY29ja1wtZmlnaHRpbmc7CivlvaLli6IgPiBjaXJjdW1zdGFuY2VzOwor6YGO5pmCID4gb2xkXC1mYXNoaW9uZWQ7CivpmqjmhI8gPiBhc1wtb25lXC13aXNoZXM7CivlpLHliKkgPiBzdWZmZXJcLWRlZmVhdDsKK+aQjeiAlyA+IHdlYXJcLWFuZFwtdGVhcjsKK+ebuOeVtiA+IGVxdWl2YWxlbnRcLXRvOwor6YCQ5q2lID4gcHJvZ3Jlc3NpdmVseTsKK+W5vuasoSA+IHNldmVyYWxcLXRpbWVzOwor5beo57SwID4gYmlnXC1hbmRcLXNtYWxsOwor5bm+5qijID4gc2V2ZXJhbFwta2luZHM7CivlpKfkvb8gPiBhblwtYW1iYXNzYWRvcjsKK+e3qOWvqSA+IHJlYWRcLWFuZFwtZWRpdDsKK+W8t+WMliA+IHRvXC1zdHJlbmd0aGVuOwor6YG/5a2VID4gY29udHJhY2VwdGlvbjsKK+Wkp+S6iyA+IGFcLW1ham9yXC1ldmVudDsKK+aVmeWPiyA+IGNodXJjaFwtbWVtYmVyOwor6YCf5pWIID4gcXVpY2tcLXJlc3VsdHM7CivliKnmlrwgPiBiZVwtYmVuZWZpY2lhbDsKK+aVl+WMlyA+IHN1ZmZlclwtZGVmZWF0Owor5Yid5pyfID4gaW5pdGlhbFwtc3RhZ2U7CivoqaLllY8gPiBpbnF1aXJlXC1hYm91dDsKK+atu+WIkSA+IGRlYXRoXC1wZW5hbHR5Owor5YW155eeID4gYXJteVwtcmlmZnJhZmY7Civpq5Tph40gPiBcKGJvZHlcKVwtd2VpZ2h0Owor55m956CSID4gd2hpdGVcLWFyc2VuaWM7Civnm7jmnrYgPiBwaWN0dXJlXC1mcmFtZTsKK+WeguebtCA+IHBlcnBlbmRpY3VsYXI7CivlooPlnLAgPiBjaXJjdW1zdGFuY2VzOwor5YW154efID4gbWlsaXRhcnlcLWNhbXA7CivluILmsJEgPiBjaXR5XC1yZXNpZGVudDsKK+maqOS+vyA+IGFzXC1vbmVcLXdpc2hlczsKK+W6reWckiA+IGZsb3dlclwtZ2FyZGVuOwor6L2f54K4ID4gXChkcm9wXC1hXClcLWJvbWI7CivpgY7ljrsgPiBcKGluXC10aGVcKVwtcGFzdDsKK+iJpuiJhyA+IG5hdmFsXC12ZXNzZWxzOwor5Yaw5pyfID4gZ2xhY2lhbFwtZXBvY2g7Civpl5zmlrwgPiBwZXJ0YWluaW5nXC10bzsKK+WJm+WJmyA+IGp1c3RcLXJlY2VudGx5Owor5bug5Li7ID4gZmFjdG9yeVwtb3duZXI7Civlho3mrKEgPiBvbmVcLW1vcmVcLXRpbWU7CivmrIrlipsgPiBcKHdpZWxkXClcLXBvd2VyOwor6YCj5ZCMID4gdG9nZXRoZXJcLXdpdGg7CivnsL/nsY0gPiBhY2NvdW50XC1ib29rczsKK+apq+aOgyA+IHRvXC1zd2VlcFwtYXdheTsKK+W6puWBhyA+IGdvXC1vblwtaG9saWRheTsKK+eVsOizqiA+IGhldGVyb2dlbmVvdXM7Civou4rnq5kgPiBcKGJ1c1wpXC1zdGF0aW9uOwor5YKZ6IezID4gdG9cLXRoZVwtdXRtb3N0Owor6LeR6Z6LID4gcnVubmluZ1wtc2hvZXM7CivloLHllq4gPiB0YXhhdGlvblwtZm9ybTsKK+mRkuizniA+IHRvXC1hcHByZWNpYXRlOwor6YCZ5L2NID4gdGhpc1wtXChwZXJzb25cKTsKK+WbsOeqmCA+IGVtYmFycmFzc21lbnQ7CivpmY3kuJYgPiBjb21lXC10b1wtZWFydGg7Civkvr/po68gPiBhXC1zaW1wbGVcLW1lYWw7CivovLvmop0gPiBcKHdoZWVsXClcLXNwb2tlOwor5omT6ZaLID4gdG9cLWJyZWFrXC1vcGVuOwor55m85o+uID4gYnJpbmdcLXRvXC1iZWFyOwor6ZaL5b+DID4gdG9cLWZlZWxcLWhhcHB5Owor5a+m6amXID4gdG9cLWV4cGVyaW1lbnQ7CivovYnlvY4gPiB0dXJuXC1cKGFyb3VuZFwpOwor5qGI6aCtID4gb25cLW9uZScnc1wtZGVzazsKK+i+qOWIpSA+IGRpZmZlcmVudGlhdGU7CivmioTopbIgPiB0b1wtcGxhZ2lhcml6ZTsKK+i+puWIsCA+IHRvXC1hY2NvbXBsaXNoOwor5YWI5b6MID4gaW5cLXN1Y2Nlc3Npb247CivnlZzogqUgPiBhbmltYWxcLW1hbnVyZTsKK+aLiee+jiA+IGxhdGluXC1hbWVyaWNhOwor5qC46Zu7ID4gbnVjbGVhclwtcG93ZXI7Civotorph44gPiBjcm9zc1wtY291bnRyeTsKK+mngembnCA+IGhldGVyb2dlbmVvdXM7CivlhazlnJIgPiBhXC1wdWJsaWNcLXBhcms7Civnmb7lp5MgPiBjb21tb25cLXBlb3BsZTsKK+eBveWNgCA+IGRpc2FzdGVyXC1hcmVhOwor5qeL5oiQID4gdG9cLWNvbnN0aXR1dGU7Civkv53ol48gPiBrZWVwXC1pblwtc3RvcmU7CivnkZ7pppkgPiB3aW50ZXJcLWRhcGhuZTsKK+aLjOeoriA+IHNlZWRcLWRyZXNzaW5nOwor57GM5o6qID4gcmFpc2VcLVwobW9uZXlcKTsKK+ajhOe9riA+IHRvXC10aHJvd1wtYXdheTsKK+izo+m7niA+IHNlbGxpbmdcLXBvaW50Owor6ZaL5YiXID4gXChtYWtlXC1hXClcLWxpc3Q7CivnmKblvLEgPiB0aGluXC1hbmRcLXdlYWs7Civnmb3ljKogPiB3aGl0ZVwtYmFuZGl0czsKK+iCiemrlCA+IHBoeXNpY2FsXC1ib2R5Owor5YKZ5qGIID4gcHV0XC1vblwtcmVjb3JkOwor6ayl5b+XID4gd2lsbFwtdG9cLWZpZ2h0Owor5omB6I2zID4gaHlhY2ludGhcLWJlYW47Civnmb7lgI0gPiBhXC1odW5kcmVkZm9sZDsKK+ethuetkiA+IHBlblwtY29udGFpbmVyOwor5a+26JeNID4gc2FwcGhpcmVcLWJsdWU7Civmu7LnorMgPiBjYXJidXJpemF0aW9uOwor5rih6YGOID4gdG9cLWNyb3NzXC1vdmVyOwor5a2X6ZuGID4gY2hhcmFjdGVyXC1zZXQ7CivnqbrpgYsgPiBhaXJcLXRyYW5zcG9ydDsKK+ihqOWxpCA+IHN1cmZhY2VcLWxheWVyOwor5ZyT5ZGoID4gY2lyY3VtZmVyZW5jZTsKK+eXheWusyA+IHBsYW50XC1kaXNlYXNlOwor5ZSu6LKoID4gdG9cLXNlbGxcLWdvb2RzOwor6IiM5bCWID4gdGlwXC1vZlwtdG9uZ3VlOwor5qGI56ixID4gY291bnRlclwtc2NhbGU7CivmtojpmLIgPiBmaXJlXC1maWdodGluZzsKK+WWiee1kCA+IGFkYW0nJ3MnJ1wtYXBwbGU7Civls7blnIsgPiBpc2xhbmRcLW5hdGlvbjsKK+msp+S6iyA+IGNhdXNlXC10cm91YmxlOwor5Lqs6YO9ID4ga3lvdG9cLVwoamFwYW5cKTsKK+Wbm+WNgyA+IGZvdXJcLXRob3VzYW5kOwor55W25bm0ID4gaW5cLXRob3NlXC1kYXlzOwor6LKh6L+3ID4gbW9uZXlcLWdydWJiZXI7CivnkIbop6MgPiB0b1wtY29tcHJlaGVuZDsKK+WvhueivCA+IFwoc2VjcmV0XClcLWNvZGU7Civnr4nln44gPiBmb3J0aWZpY2F0aW9uOwor6KGb5YW1ID4gXChib2R5XClcLWd1YXJkXCk7CivnlpHllY8gPiBpbnRlcnJvZ2F0aW9uOwor5ZaJ55enID4gc2NhcmxldFwtZmV2ZXI7CivlgIvmgKcgPiBpbmRpdmlkdWFsaXR5Owor5ZWf56S6ID4gZW5saWdodGVubWVudDsKK+iHtOWHvSA+IHNlbmRcLWFcLWxldHRlcjsKK+aEj+itmCA+IGNvbnNjaW91c25lc3M7Civoga/ntaEgPiBjb21tdW5pY2F0aW9uOwor5ouc5YilID4gdGFrZVwtbGVhdmVcLW9mOwor5omB5pOUID4gY2FycnlpbmdcLXBvbGU7Civlk4DomZ8gPiBjcnlcLXBpdGVvdXNseTsKK+ahguaelyA+IGd1aWxpblwtXChjaXR5XCk7Civph5Hpu4MgPiBnb2xkZW5cLXllbGxvdzsKK+i3qOWciyA+IHRyYW5zbmF0aW9uYWw7CivmvJTlh7ogPiBcKGFjdGluZ1wpXC1wbGF5Owor5ZCD6aOvID4gdG9cLWVhdFwtYVwtbWVhbDsKK+S4jemAmiA+IGJlXC1vYnN0cnVjdGVkOwor5oiS5oyHID4gXChmaW5nZXJcKVwtcmluZzsKK+WwkeWwhyA+IG1ham9yXC1nZW5lcmFsOwor5p2c57WVID4gcHV0XC1hblwtZW5kXC10bzsKK+aal+mOliA+IGJ1aWx0XC1pblwtbG9jazsKK+aHsuaIkiA+IHRvXC1kaXNjaXBsaW5lOwor5LiL6KqyID4gY2xhc3NcLWlzXC1vdmVyOwor5LiN6KmzID4gbm90XC1pblwtZGV0YWlsOwor5Y+N6Z+/ID4gcmVwZXJjdXNzaW9uczsKK+Wuv+aAqCA+IGFuXC1vbGRcLWdydWRnZTsKK+WWruWtkCA+IGxpc3RcLW9mXC1pdGVtczsKK+iyoueNuyA+IHRvXC1jb250cmlidXRlOwor5Y+r6YaSID4gdG9cLWNhbGxcLWF3YWtlOwor576O6KGTID4gdGhlXC1maW5lXC1hcnRzOwor6IO95aSgID4gYmVcLWNhcGFibGVcLW9mOwor5a625bGsID4gZmFtaWx5XC1tZW1iZXI7CivpvLvmt7UgPiBuYXNvc2ludXNpdGlzOwor5oeC5b6XID4gdG9cLXVuZGVyc3RhbmQ7CivljYrpu54gPiB0aGVcLWxlYXN0XC1iaXQ7CivpiZvnrYYgPiBcKGxlYWRcKVwtcGVuY2lsOwor5Zau5ZCRID4gdW5kaXJlY3Rpb25hbDsKK+WPl+izhCA+IGFjY2VwdFwtYnJpYmVzOwor5L6L5YGHID4gbGVnYWxcLWhvbGlkYXk7CivmsLTpnaIgPiB3YXRlclwtc3VyZmFjZTsKK+enu+auliA+IHRvXC10cmFuc3BsYW50Owor6LW35LyPID4gdXBzXC1hbmRcLWRvd25zOwor6K6K6Kq/ID4gbW9kaWZpZWRcLXRvbmU7Civlj4voqrwgPiBjb21wYW5pb25zaGlwOwor56e75qSNID4gdG9cLXRyYW5zcGxhbnQ7Civlk4DmqIIgPiBmdW5lcmFsXC1tdXNpYzsKK+WvjOS6jiA+IHRvXC1iZVwtZnVsbFwtb2Y7CivogbLluLYgPiB2b2NhbFwtY29yZFwoc1wpOwor5LiN55+lID4gdW5rbm93aW5nXChseVwpOwor5a2r5aWzID4gZ3JhbmRkYXVnaHRlcjsKK+a2vOW/qyA+IG5pY2VcLWFuZFwtY29sZDsKK+S4ieeZviA+IHRocmVlXC1odW5kcmVkOwor5Lqs5oiyID4gYmVpamluZ1wtb3BlcmE7CivkvY7kuo4gPiBiZVwtbG93ZXJcLXRoYW47CivljZfpg6ggPiBzb3V0aGVyblwtcGFydDsKK+a4heWWriA+IGxpc3RcLW9mXC1pdGVtczsKK+iuiuiJsiA+IGNoYW5nZVwtY29sb3VyOwor5YyX6Z2iID4gbm9ydGhlcm5cLXNpZGU7CivkuIrnj60gPiB0b1wtZ29cLXRvXC13b3JrOwor5ZCE56iuID4gZXZlcnlcLWtpbmRcLW9mOwor6LKd5b2rID4gc2hlbGxcLWNhcnZpbmc7Civml6Xou40gPiBqYXBhbmVzZVwtYXJteTsKK+WNl+i2iiA+IHNvdXRoXC12aWV0bmFtOwor5oOF5rOBID4gY2lyY3Vtc3RhbmNlczsKK+aEm+aGjiA+IGxvdmVcLWFuZFwtaGF0ZTsKK+iBt+WToSA+IG9mZmljZVwtd29ya2VyOwor5rSL5rqiID4gYnJpbW1pbmdcLXdpdGg7CivljZToqr8gPiB0b1wtY29vcmRpbmF0ZTsKK+Wkp+mYqiA+IG9zYWthXC1cKGphcGFuXCk7CivogIPmha4gPiB0b1wtdGhpbmtcLW92ZXI7CivljJfpg6ggPiBub3J0aGVyblwtcGFydDsKK+acrOaEjyA+IG9yaWdpbmFsXC1pZGVhOwor542o5pSsID4gdG9cLW1vbm9wb2xpemU7CivlkLjmr5IgPiB0b1wtdGFrZVwtZHJ1Z3M7Civms7PmsaAgPiBzd2ltbWluZ1wtcG9uZDsKK+S4gOatpSA+IFwoc2luZ2xlXClcLXN0ZXA7CivljJfotoogPiBub3J0aFwtdmlldG5hbTsKK+mbnOmghSA+IG1pc2NlbGxhbmVvdXM7Civlk6Xlk6UgPiBvbGRlclwtYnJvdGhlcjsKK+WklumDqCA+IGV4dGVybmFsXC1wYXJ0Owor6IGe5Lq6ID4gZmFtb3VzXC1wZXJzb247CivkuqzliocgPiBiZWlqaW5nXC1vcGVyYTsKK+WSjOWwmiA+IGJ1ZGRoaXN0XC1tb25rOwor6JiH5beeID4gc3V6aG91XC1cKGNpdHlcKTsKK+ekpuawtCA+IG1pbmVyYWxcLXdhdGVyOwor5pqR5rCjID4gXChzdW1tZXJcKVwtaGVhdDsKK+WTgOWRiiA+IGJlZ1wtcGl0ZW91c2x5Owor5oOF5b2iID4gY2lyY3Vtc3RhbmNlczsKK+S4reW8jyA+IGNoaW5lc2VcLXN0eWxlOwor5aSW6LK/ID4gZm9yZWlnblwtdHJhZGU7Civpgb/pm6MgPiBcW3Rha2VcXVwtcmVmdWdlOwor5YyF6KKxID4gY2xvdGhcLXdyYXBwZXI7CivmhJ/lhpIgPiB0b1wtY2F0Y2hcLWNvbGQ7CivlvanomowgPiBwYWludGVkXC1zaGVsbDsKK+emruWggiA+IGFzc2VtYmx5XC1oYWxsOwor5LiN5oGtID4gZGlzcmVzcGVjdGZ1bDsKK+e4veioiCA+IFwoZ3JhbmRcKVwtdG90YWw7CivlqJvmqIIgPiBlbnRlcnRhaW5tZW50Owor5Lit5a24ID4gbWlkZGxlXC1zY2hvb2w7CivkupTkuIAgPiA1XC0xXC1cKG1heVwtMXN0XCk7Civno4HniYcgPiBtYWduZXRpY1wtZGlzazsKK+acg+WgtCA+IG1lZXRpbmdcLXBsYWNlOwor5aq+5ZKMID4gdG9cLW1ha2VcLXBlYWNlOwor5LiN5benID4gdW5mb3J0dW5hdGVseTsKK+S4iuW4giA+IG9uXC10aGVcLW1hcmtldDsKK+engeWIqSA+IHBlcnNvbmFsXC1nYWluOwor6YGy6YiNID4gc2xvd1wtXCh3aXR0ZWRcKTsKK+WMl+e+jiA+IG5vcnRoXC1hbWVyaWNhOwor57aT6amXID4gdG9cLWV4cGVyaWVuY2U7CivmsbLmsLQgPiB0b1wtZHJhd1wtd2F0ZXI7CivnjbLli50gPiBiZVwtdmljdG9yaW91czsKK+ingOm7niA+IHBvaW50XC1vZlwtdmlldzsKK+awtOeJmyA+IHdhdGVyXC1idWZmYWxvOwor5ZCM5bm0ID4gdGhlXC1zYW1lXC15ZWFyOwor6K6K5pifID4gdmFyaWFibGVcLXN0YXI7Civmr5vnrYYgPiB3cml0aW5nXC1icnVzaDsKK+iYh+S/hCA+IHNvdmlldFwtcnVzc2lhOwor5q2l6KGMID4gdG9cLWdvXC1vblwtZm9vdDsKK+WIpemboiA+IHRha2VcLWxlYXZlXC1vZjsKK+aThemVtyA+IHRvXC1iZVwtZ29vZFwtYXQ7CivkuI3llbsgPiBub3RcLWxlc3NcLXRoYW47CivlpKfntIQgPiBhcHByb3hpbWF0ZWx5Owor54mM54WnID4gbGljZW5zZVwtcGxhdGU7CivmmpflrrMgPiBraWxsXC1zZWNyZXRseTsKK+WLg+iIiCA+IHJpc2VcLXN1ZGRlbmx5Owor5YmN6YCyID4gdG9cLWdvXC1mb3J3YXJkOwor6K6K5oWLID4gbWV0YW1vcnBob3NpczsKK+aAp+aFviA+IHNleHVhbFwtZGVzaXJlOwor5Yyv546HID4gZXhjaGFuZ2VcLXJhdGU7CivmsrvlrokgPiBsYXdcLWFuZFwtb3JkZXI7CivmrKPos54gPiB0b1wtYXBwcmVjaWF0ZTsKK+mbjOiKsSA+IGZlbWFsZVwtZmxvd2VyOwor6YKm6IGvID4gY29uZmVkZXJhdGlvbjsKK+WkmueoriA+IG1hbnlcLWtpbmRzXC1vZjsKK+WQuOWFpSA+IHRvXC1icmVhdGhlXC1pbjsKK+iuiuW3pSA+IGV4Y2hhbmdlXC13b3JrOwor5Y+X5a6zID4gdG9cLWJlXC1pbmp1cmVkOwor5rG65b+DID4gZGV0ZXJtaW5hdGlvbjsKK+S4i+S7pCA+IGdpdmVcLWFuXC1vcmRlcjsKK+iOq+mAhiA+IHZlcnlcLWZyaWVuZGx5Owor5q+U54axID4gc3BlY2lmaWNcLWhlYXQ7CivmmILmmIIgPiBoaWdoXC1zcGlyaXRlZDsKK+WIhumFjSA+IHRvXC1kaXN0cmlidXRlOwor5Yqg57eKID4gdG9cLWludGVuc2lmeTsKK+edoeimuiA+IHRvXC1nb1wtdG9cLWJlZDsKK+aXqeacnyA+IGVhcmx5XC1wZXJpb2Q7Civnm7jpl5wgPiBpbnRlcnJlbGF0ZWQ7Civngavpvo0gPiBmaWVyeVwtZHJhZ29uOwor5ZCI5L2cID4gdG9cLWNvb3BlcmF0ZTsKK+aZuuWKmyA+IGludGVsbGlnZW5jZTsKK+W/jOaGmiA+IGJlXC1hZnJhaWRcLW9mOwor5piU5bm0ID4gZm9ybWVyXC15ZWFyczsKK+ekpuS6lSA+IG1pbmVcLVwoc2hhZnRcKTsKK+eGn+efpSA+IGFjcXVhaW50YW5jZTsKK+aUr+elqCA+IFwoYmFua1wpXC1jaGVjazsKK+WnkOWnkCA+IG9sZGVyXC1zaXN0ZXI7CivorabloLEgPiBcKGZpcmVcKVwtYWxhcm07CivlvozmnpwgPiBjb25zZXF1ZW5jZXM7Civlp4rlp4ogPiBvbGRlclwtc2lzdGVyOwor5pS255ukID4gbWFya2V0XC1jbG9zZTsKK+WfjumYsiA+IGNpdHlcLWRlZmVuY2U7CivpoILkvY8gPiB0b1wtd2l0aHN0YW5kOwor6KW/6YOoID4gd2VzdGVyblwtcGFydDsKK+WlveaEnyA+IGdvb2RcLW9waW5pb247CivlpLHmpa0gPiB1bmVtcGxveW1lbnQ7Civmk4Xoh6ogPiB1bmF1dGhvcml6ZWQ7CivpgJXoh6ogPiBvblwtb25lJydzXC1vd247CivntKLos6AgPiBjb21wZW5zYXRpb247Civov5HoppYgPiBzaG9ydHNpZ2h0ZWQ7CivmraXnioEgPiB3YWxraW5nXC1wbG93Owor55u46K2YID4gYWNxdWFpbnRhbmNlOwor6ZaL6ZecID4gcG93ZXJcLXN3aXRjaDsKK+WOu+S4liA+IHRvXC1wYXNzXC1hd2F5Owor5Z+56KiTID4gdG9cLWN1bHRpdmF0ZTsKK+WkmuaWuSA+IGluXC1tYW55XC13YXlzOwor5pC26LO8ID4gcGFuaWNcLWJ1eWluZzsKK+W3oei/tCA+IHRvXC1nb1wtYXJvdW5kOwor6YCZ56iuID4gdGhpc1wta2luZFwtb2Y7CivlpKfmhI8gPiBnZW5lcmFsXC1pZGVhOwor5Yil56ixID4gYW5vdGhlclwtbmFtZTsKK+atpeatpSA+IHN0ZXBcLWJ5XC1zdGVwOwor5Y2U5ZWGID4gY29uc3VsdFwtd2l0aDsKK+efruaYnyA+IGR3YXJmXC1cKHN0YXJcKTsKK+mCo+aZgiA+IGF0XC10aGF0XC10aW1lOwor5aSn5birID4gZ3JlYXRcLW1hc3RlcjsKK+e1hOe5lCA+IG9yZ2FuaXphdGlvbjsKK+mAmueUqCA+IGNvbW1vblwtXCh1c2VcKTsKK+WkmuW3pSA+IHRvXC1tdWx0aXBsZXg7Civns77okZsgPiBlbnRhbmdsZW1lbnQ7CivoqabmjqIgPiB0b1wtc291bmRcLW91dDsKK+Wkq+WmuyA+IG1hblwtYW5kXC13aWZlOwor6YGT5q2JID4gdG9cLWFwb2xvZ2l6ZTsKK+aVheaEjyA+IGRlbGliZXJhdGVseTsKK+iri+WVjyA+IG1heVwtaVwtYXNrXC5cLlwuOwor5Ye655m8ID4gdG9cLXN0YXJ0XC1vdXQ7CivnuK7lr6sgPiBhYmJyZXZpYXRpb247Civlo4HmjpsgPiB3YWxsXC1oYW5naW5nOwor54af5oKJID4gdG9cLWtub3dcLXdlbGw7Civnhp/mgJ0gPiBkZWxpYmVyYXRpb247CivmlbTlpKkgPiBhbGxcLWRheVwtbG9uZzsKK+mxieeUsiA+IHR1cnRsZVwtc2hlbGw7Civouqvpq5QgPiBcKGh1bWFuXClcLWJvZHk7Civns77nuo8gPiBiZVwtZW50YW5nbGVkOwor6KSH6KO9ID4gdG9cLWR1cGxpY2F0ZTsKK+maiuaXlyA+IHRlYW1cLXBlbm5hbnQ7CivliqDlvLcgPiB0b1wtcmVpbmZvcmNlOwor5Ye6542EID4gbGVhdmVcLXByaXNvbjsKK+irh+WIpCA+IHRvXC1uZWdvdGlhdGU7CivnnIvnl4UgPiBzZWVcLWFcLWRvY3RvcjsKK+W+iOS4jSA+IHZlcnlcLXVuXC1cLlwuXC5cLjsKK+avheWKmyA+IHBlcnNldmVyYW5jZTsKK+iQveWvpiA+IHRvXC1pbXBsZW1lbnQ7CivmlK/lupcgPiBicmFuY2hcLXN0b3JlOwor55m96JavID4gc3dlZXRcLXBvdGF0bzsKK+e2teaXlyA+IGNvbG9yZWRcLWZsYWc7Civlm57poacgPiB0b1wtbG9va1wtYmFjazsKK+aureWMliA+IGJlY29tZVwtcmlnaWQ7CivngI/opr0gPiB0b1wtc2tpbVwtb3ZlcjsKK+iqsuS9mSA+IGFmdGVyXC1zY2hvb2w7Civou4rpgZMgPiB0cmFmZmljXC1sYW5lOwor5q2j5aaCID4gYmVcLWp1c3RcLWxpa2U7CivntJnniYwgPiBwbGF5aW5nXC1jYXJkOwor55m857SFID4gZmx1c2hcLVwoZmFjZVwpOwor6ZuG5ZCIID4gY29uZ3JlZ2F0aW9uOwor6YCf5oiQID4gY3Jhc2hcLWNvdXJzZTsKK+WFiee3miA+IG9wdGljYWxcLWxpbmU7CivliqrlipsgPiBncmVhdFwtZWZmb3J0Owor5byV5YWlID4gdG9cLWRyYXdcLWludG87Civlu6DlnYAgPiBmYWN0b3J5XC1zaXRlOwor6Zqo5ZCMID4gYWNjb21wYW55aW5nOwor54aS5YWJID4gZmxvdXJlc2NlbmNlOwor5buj5ZGKID4gdG9cLWFkdmVydGlzZTsKK+aMqOi/kSA+IGdldFwtY2xvc2VcLXRvOwor57eo5YqHID4gd3JpdGVcLWFcLXBsYXk7Civlo5PlgJIgPiBvdmVyd2hlbG1pbmc7CivmjqHohIIgPiB0cmVlXC10YXBwaW5nOwor54af5Lq6ID4gYWNxdWFpbnRhbmNlOwor5Z+55qSNID4gdG9cLWN1bHRpdmF0ZTsKK+mAn+WvqyA+IHF1aWNrXC1za2V0Y2g7CivpgLHlnI0gPiBzdXJyb3VuZGluZ3M7Civmv77ntJkgPiBmaWx0ZXJcLXBhcGVyOwor5qmf5qeLID4gb3JnYW5pemF0aW9uOwor6Kiq5L+EID4gdmlzaXRcLXJ1c3NpYTsKK+aLlOmMqCA+IHdlaWdoXC1hbmNob3I7CivmqJnnh4ggPiBiZWFjb25cLWxpZ2h0Owor5Yaw5pm2ID4gaWNlXC1jcnlzdGFsczsKK+W5vuWkqSA+IHNldmVyYWxcLWRheXM7Civmjojnsr4gPiBpbnNlbWluYXRpb247Civpq5LoqbEgPiBiYWRcLWxhbmd1YWdlOwor5Ye55bK4ID4gY29uY2F2ZVwtYmFuazsKK+mBjuS+hiA+IHRvXC1jb21lXC1vdmVyOwor5pON5YueID4gdG9cLXdvcmtcLWhhcmQ7CivliKXlkI0gPiBhbm90aGVyXC1uYW1lOwor5YWJ5rqQID4gbGlnaHRcLXNvdXJjZTsKK+mAn+WHjSA+IHF1aWNrXC1mcmVlemU7CivlnZDniaIgPiBpbXByaXNvbm1lbnQ7Civoo5zniZkgPiBmaWxsXC1hXC10b290aDsKK+WIqOWIgCA+IHBsYW5pbmdcLXRvb2w7Civmiorpl5wgPiBndWFyZFwtYVwtcGFzczsKK+iHquihmyA+IHNlbGZcLWRlZmVuc2U7CivpmZvkuIsgPiB5b3VyXC1tYWplc3R5Owor5YWr5pyIID4gZWlnaHRoXC1tb250aDsKK+WCmeiAgyA+IFwoYW5cLWFwcGVuZGl4Owor5bm05YmNID4gXC5cLlwueWVhcnNcLWFnbzsKK+ewoeeosSA+IGFiYnJldmlhdGlvbjsKK+WIpeS6uiA+IG90aGVyXC1wZW9wbGU7CivplovmlK8gPiBleHBlbmRpdHVyZXM7CivmjY/nqY0gPiBjaGlyb3ByYWN0aWM7CivloLHlg7kgPiBxdW90ZWRcLXByaWNlOwor6L+35L+hID4gc3VwZXJzdGl0aW9uOwor6L2J5o+bID4gdG9cLXRyYW5zZm9ybTsKK+aQrOWutiA+IG1vdmVcLVwoaG91c2VcKTsKK+aItumgrSA+IGJhbmtcLWFjY291bnQ7Civopqrkv6EgPiB0cnVzdGVkXC1haWRlOwor6KGM56iLID4gdHJhdmVsXC1yb3V0ZTsKK+WatOeroyA+IHRpZ2h0XC5zdHJpY3Q7CivnnIvkvZwgPiBsb29rXC11cG9uXC1hczsKK+Wvp+mhmCA+IHdvdWxkXC1yYXRoZXI7CivmjqXmnp0gPiBcKHRyZWVcKVwtZ3JhZnQ7CivmjojmrIogPiB0b1wtYXV0aG9yaXplOwor6ZaL5a24ID4gc2Nob29sXC1vcGVuczsKK+S/neitiSA+IHRvXC1ndWFyYW50ZWU7CivmibnoqZUgPiB0b1wtY3JpdGljaXplOwor5ouU57WyID4gd2lyZVwtZHJhd2luZzsKK+WYhuipniA+IGludGVyamVjdGlvbjsKK+aJk+izrSA+IFwobWFrZVwtYVwpXC1iZXQ7CivlhKrmg6AgPiBwcmVmZXJlbnRpYWw7CivlhazloLEgPiBhbm5vdW5jZW1lbnQ7Civlr4bpm4YgPiBjb25jZW50cmF0ZWQ7CivmjojmmYIgPiB0aW1lXC1zZXJ2aWNlOwor5Zyo5peBID4gYnlcLVwoYVwtcGxhY2VcKTsKK+aLvOebpCA+IGNvbGRcLXBsYXR0ZXI7CivmjZDmrL4gPiBkb25hdGVcLW1vbmV5Owor5ZyL5pyJID4gbmF0aW9uYWxpemVkOwor5L6d6LO0ID4gdG9cLWRlcGVuZFwtb247Civns7vkuIogPiB0b1wtYnVja2xlXC11cDsKK+iDjOmboiA+IGRldmlhdGVcLWZyb207CivmjInnhacgPiBhY2NvcmRpbmdcLXRvOwor5YG254S2ID4gaW5jaWRlbnRhbGx5Owor5ZaJ6Y+hID4gbGFyeW5nb3Njb3BlOwor6IOM6ZmwID4gaW5cLXRoZVwtc2hhZGU7CivmvJTnrpcgPiB0b1wtY2FsY3VsYXRlOwor5YWp5Y2DID4gdHdvXC10aG91c2FuZDsKK+aPkuWcliA+IGlsbHVzdHJhdGlvbjsKK+WvqeitsCA+IGRlbGliZXJhdGlvbjsKK+euoeeQhiA+IHRvXC1zdXBlcnZpc2U7CivmooXoirEgPiBwbHVtXC1ibG9zc29tOwor55W254S2ID4gb25seVwtbmF0dXJhbDsKK+aomeWDuSA+IG1hcmtcLWFcLXByaWNlOwor5qOS56GrID4gcm9sbFwtc3VscGh1cjsKK+WtnemghiA+IGZpbGlhbFwtcGlldHk7CivppYXpoK0gPiBzdGVhbWVkXC1yb2xsOwor5L+d566hID4gdGFrZVwtY2FyZVwtb2Y7CivlnoLkuIsgPiB0b1wtaGFuZ1wtZG93bjsKK+ijgeWToSA+IHRvXC1jdXRcLXN0YWZmOwor5riF6YaSID4gY2xlYXJcLWhlYWRlZDsKK+eVsOatpSA+IGFzeW5jaHJvbm91czsKK+ijnOWFhSA+IHRvXC1yZXBsZW5pc2g7Civkvr/np5ggPiBjb25zdGlwYXRpb247Civnl4XluoogPiBob3NwaXRhbFwtYmVkOwor5p6Y6ZG/ID4gaW5jb21wYXRpYmxlOwor5Zqu5b6AID4gdG9cLXllYXJuXC1mb3I7Civoh6rmi5QgPiBmcmVlXC1vbmVzZWxmOwor6Iiq5aSpID4gc3BhY2VcLWZsaWdodDsKK+aNsuWFpSA+IHRvXC1kcmF3XC1pbnRvOwor6auY5a+GID4gaGlnaFwtZGVuc2l0eTsKK+ihqOWcnyA+IHN1cmZhY2VcLXNvaWw7Civos57orZggPiBhcHByZWNpYXRpb247Civmhbbos4AgPiBjb25ncmF0dWxhdGU7CivmtojpmaQgPiB0b1wtZWxpbWluYXRlOwor6KGX5Z2KID4gbmVpZ2hib3Job29kOwor55Ge6ImyID4gbG92ZWx5XC1jb2xvcjsKK+iBveiqqiA+IHRvXC1oZWFyXC10b2xkOwor55W25b+DID4gdG9cLXRha2VcLWNhcmU7CivnlbDmgKcgPiBoZXRlcm9zZXh1YWw7CivkuqTpi5IgPiBjcm9zc1wtc3dvcmRzOwor6IiI5aWuID4gXChiZVwpXC1leGNpdGVkOwor5a6H6IiqID4gc3BhY2VcLWZsaWdodDsKK+emvemhniA+IGJpcmRcLXNwZWNpZXM7Civlgb3lloQgPiBoeXBvY3JpdGljYWw7CivmirHmhKcgPiBmZWVsXC1hc2hhbWVkOwor6LKg6LKsID4gaW5cLWNoYXJnZVwtb2Y7Civnj77ooYwgPiBiZVwtaW5cLWVmZmVjdDsKK+WxiOacjSA+IHRvXC1zdXJyZW5kZXI7CivmuJvnt6kgPiB0b1wtc2xvd1wtZG93bjsKK+S4i+m9kiA+IGJvdHRvbVwtdGVldGg7CivlqpLpq5QgPiBcKG5ld3NcKVwtbWVkaWE7Civnq5/nhLYgPiB1bmV4cGVjdGVkbHk7CivpqZrmhJUgPiBhc3RvbmlzaG1lbnQ7CivnlbbloLQgPiBhdFwtdGhlXC1zY2VuZTsKK+Wpmum9oSA+IG1hcnJ5aW5nXC1hZ2U7CivmirHlsYggPiBmZWVsXC13cm9uZ2VkOwor6aOf6K2cID4gY29va2VyeVwtYm9vazsKK+S4pumdniA+IHJlYWxseVwtaXNuJyd0Owor56qB56C0ID4gYnJlYWt0aHJvdWdoOwor5L615pmoID4gdG93YXJkc1wtZGF3bjsKK+a8ouWfjiA+IHNlb3VsXCxcLWtvcmVhOwor5bCR5pW4ID4gc21hbGxcLW51bWJlcjsKK+eVtuWInSA+IGF0XC10aGF0XC10aW1lOwor5ouM5ZKMID4gbWl4XC1hbmRcLXN0aXI7CivmtYHpgJogPiB0b1wtY2lyY3VsYXRlOwor5ZKo6KmiID4gY29uc3VsdGF0aXZlOwor5omS5ouJID4gcHVzaFwtbGlnaHRseTsKK+WwiOaUvyA+IGRpY3RhdG9yc2hpcDsKK+mjvOiNiSA+IGZvcmFnZVwtZ3Jhc3M7CivpvLvohZQgPiBuYXNhbFwtY2F2aXR5Owor5rW06KGAID4gYmxvb2RcLXNvYWtlZDsKK+S+neaTmiA+IGFjY29yZGluZ1wtdG87CivlsazlnIsgPiB2YXNzYWxcLXN0YXRlOwor6Yu8562GID4gZm91bnRhaW5cLXBlbjsKK+WBieS6uiA+IGdyZWF0XC1wZXJzb247Civlronnh58gPiBwaXRjaFwtYVwtY2FtcDsKK+WSjOinoyA+IGNvbmNpbGlhdG9yeTsKK+WvpuaWvSA+IHRvXC1pbXBsZW1lbnQ7Civmop3lrZAgPiBhXC1zaG9ydFwtbm90ZTsKK+agueacrCA+IFwobm90XClcLWF0XC1hbGw7CivnqK7nqK4gPiBhbGxcLWtpbmRzXC1vZjsKK+aJi+W4lSA+IGhhbmRrZXJjaGllZjsKK+azlemZoiA+IGNvdXJ0XC1vZlwtbGF3Owor5qC55pOaID4gYWNjb3JkaW5nXC10bzsKK+ays+mmrCA+IGhpcHBvcG90YW11czsKK+eUn+WRvSA+IGxpZmVcLVwoZm9yY2VcKTsKK+S4u+inkiA+IGxlYWRpbmdcLXJvbGU7Civmt6vnjKUgPiBhYm9taW5hdGlvbnM7CivnlKLljbUgPiBsYXlcLVwoYW5cLWVnZ1wpOwor5p6c55quID4gXChmcnVpdFwpXC1wZWVsOwor542o6KOBID4gZGljdGF0b3JzaGlwOwor5LiN6LazID4gaW5zdWZmaWNpZW50Owor5a625pS/ID4gaG91c2VrZWVwaW5nOwor5LiN6LKyID4gaW1tZWFzdXJhYmxlOwor5pma6aSQID4gZXZlbmluZ1wtbWVhbDsKK+S9nOaEmyA+IHRvXC1tYWtlXC1sb3ZlOwor6JiH6IGvID4gc292aWV0XC11bmlvbjsKK+Wus+aAlSA+IHRvXC1iZVwtYWZyYWlkOwor5pma6ZaTID4gZXZlbmluZ1wtdGltZTsKK+S6lOeZviA+IGZpdmVcLWh1bmRyZWQ7CivlkozntIQgPiBwZWFjZVwtdHJlYXR5Owor6K2J6amXID4gcmVhbFwtcmVzdWx0czsKK+aHiuaClCA+IGZlZWxcLXJlbW9yc2U7CivmiaPkuIogPiB0b1wtYnVja2xlXC11cDsKK+S/hOS4rSA+IHJ1c3NpYVwtY2hpbmE7CivkuIDokKwgPiB0ZW5cLXRob3VzYW5kOwor6K6K6YCfID4gc3BlZWRcLWNoYW5nZTsKK+WuieW/gyA+IGZlZWxcLWF0XC1lYXNlOwor5Lq65rCRID4gXCh0aGVcKVwtcGVvcGxlOwor5bCH5L6GID4gXCh0aGVcKVwtZnV0dXJlOwor6aGM6IqxID4gdGl0bGVcLWRlc2lnbjsKK+WPr+ingCA+IGNvbnNpZGVyYWJsZTsKK+S6uuasiiA+IGh1bWFuXC1yaWdodHM7CivotpXkuIogPiBrZWVwXC11cFwtd2l0aDsKK+iCoeW4giA+IHN0b2NrXC1tYXJrZXQ7Civnp7vmsJEgPiB0b1wtaW1taWdyYXRlOwor5rex5oSbID4gYWZmZWN0aW9uYXRlOwor5LuK5pmoID4gdGhpc1wtbW9ybmluZzsKK+WvhuWPiyA+IGNsb3NlXC1mcmllbmQ7CivlrZjlv4MgPiBkZWxpYmVyYXRlbHk7CivljZfpnZ4gPiBzb3V0aFwtYWZyaWNhOwor5LiN56ymID4gaW5jb25zaXN0ZW50Owor5ZGK56S6ID4gYW5ub3VuY2VtZW50Owor5Li555SwID4gcHViaWNcLXJlZ2lvbjsKK+WNiumfvyA+IGhhbGZcLXRoZVwtZGF5Owor5Li755KwID4gcHJpbWFyeVwtcmluZzsKK+S9oOWAkSA+IHlvdVwtXChwbHVyYWxcKTsKK+S4gOebtCA+IGNvbnRpbnVvdXNseTsKK+Wnv+iJsiA+IGdvb2RcLWxvb2tpbmc7CivmmpfnrpcgPiBwbG90XC1hZ2FpbnN0Owor56iN5b6uID4gYVwtbGl0dGxlXC1iaXQ7Civkuq7luqYgPiBpbGx1bWluYXRpb247Civlj4PogIMgPiBjb25zdWx0YXRpb247CivkurrlrrYgPiBvdGhlclwtcGVvcGxlOwor5aOv6bqXID4gbWFnbmlmaWNlbmNlOwor6buo5pS/ID4gcGFydHlcLXBvbGljeTsKK+iZkOW+hSA+IG1pc3RyZWF0bWVudDsKK+aEn+aBqSA+IHRoYW5rc2dpdmluZzsKK+e9sOeQgyA+IHBlbmFsdHlcLXNob3Q7Civosrvln44gPiBwaGlsYWRlbHBoaWE7CivmsrnnlasgPiBvaWxcLXBhaW50aW5nOwor576O5rSyID4gdGhlXC1hbWVyaWNhczsKK+iyp+WbsCA+IGltcG92ZXJpc2hlZDsKK+S6nuWkqiA+IGFzaWFcLXBhY2lmaWM7CivlpKfph48gPiBncmVhdFwtYW1vdW50Owor6aCC55SoID4gdG9cLWJlXC1vZlwtdXNlOwor6LK75YqbID4gZ3JlYXRcLWVmZm9ydDsKK+aal+eBmCA+IGhpZGRlblwtc2hvYWw7Civol6XmlrkgPiBwcmVzY3JpcHRpb247CivkuLvmjIEgPiBwcmVzaWRlXC1vdmVyOwor6YqA5bmVID4gbW92aWVcLXNjcmVlbjsKK+iAgeWutiA+IG5hdGl2ZVwtcGxhY2U7Civmmpfmva4gPiB1bmRlcmN1cnJlbnQ7Civosrflg7kgPiBidXlpbmdcLXByaWNlOwor5aSa6YKKID4gbXVsdGlsYXRlcmFsOwor54++5LujID4gbW9kZXJuXC10aW1lczsKK+S7luS6uiA+IG90aGVyXC1wZXJzb247CivkuYvlvowgPiBhZnRlclwod2FyZHNcKTsKK+aFo+S+iyA+IGNvbnZlbnRpb25hbDsKK+S4puaOkiA+IHNpZGVcLWJ5XC1zaWRlOwor6ICV5ZywID4gYXJpYWJsZVwtbGFuZDsKK+aal+a1gSA+IHVuZGVyY3VycmVudDsKK+a1tOWgtCA+IGJhdGhpbmdcLXNwb3Q7CivkuI3mlpkgPiB1bmV4cGVjdGVkbHk7Civok4voj5wgPiBsZWFmXC1tdXN0YXJkOwor6K2Y56C0ID4gdG9cLXBlbmV0cmF0ZTsKK+S4jeaLmCA+IG5vdFwtc3RpY2tcLXRvOwor6byT5Yu1ID4gdG9cLWVuY291cmFnZTsKK+mereegsiA+IGZpcmVjcmFja2VyczsKK+aEn+WLlSA+IHRvXC1tb3ZlXC1cKHNiXCk7CivmhI/lkbMgPiBzaWduaWZpY2FuY2U7CivkuI3mhKcgPiBiZVwtd29ydGh5XC1vZjsKK+S4jeaEjyA+IHVuZXhwZWN0ZWRseTsKK+mdtue0mSA+IHRhcmdldFwtc2hlZXQ7CivmhIjliqAgPiBhbGxcLXRoZVwtbW9yZTsKK+mBoOmboiA+IHJlbW92ZWRcLWZyb207CivlkozlloQgPiBnb29kXC1uYXR1cmVkOwor6KqN6K2JID4gYXV0aGVudGljYXRlOwor5Yio6b2SID4gZ2Vhclwtc2hhcGluZzsKK+azqOaEjyA+IHRha2VcLW5vdGVcLW9mOwor8KaJhiA+IHRvXC1icmVha1wtb2ZmOwor6aKo5ZGzID4gbG9jYWxcLWZsYXZvcjsKK+e5oeiKsSA+IHRvXC1lbWJyb2lkZXI7Civnn6XorZggPiBpbnRlbGxlY3R1YWw7CivmmpfmjqIgPiBzZWNyZXRcLWFnZW50Owor5pq05oCSID4gdmlvbGVudFwtcmFnZTsKK+S4jeWuuSA+IG5vdFwtdG9sZXJhdGU7CivkuI3lrpwgPiBub3RcLXN1aXRhYmxlOwor54qv5q+SID4gaWxsZWdhbFwtZHJ1ZzsKK+Wkp+iHtCA+IG1vcmVcLW9yXC1sZXNzOwor5aW955yLID4gZ29vZFwtbG9va2luZzsKK+S4jeWmgiA+IG5vdFwtZXF1YWxcLXRvOwor5b6X56WoID4gdm90ZVwtZ2V0dGluZzsKK+a0vuWIpSA+IGRlbm9taW5hdGlvbjsKK+e3mui7uCA+IHRocmVhZFwtc3Bvb2w7CivmnInliKkgPiBhZHZhbnRhZ2VvdXM7CivoqILplrEgPiBzdWJzY3JpcHRpb247CivmgaLlvqkgPiB0b1wtcmVpbnN0YXRlOwor6YCZ6aCFID4gdGhpc1wtXCh0aGluZ1wpOwor5Y+v5oOcID4gaXRcLWlzXC1hXC1waXR5Owor5ama5aSWID4gZXh0cmFtYXJpdGFsOwor5LiN5ZauID4gbm90XC10aGVcLW9ubHk7CivpgYvpgIEgPiB0b1wtdHJhbnNwb3J0Owor5LmL5LiAID4gb25lXC1vZlwtXChzdGhcKTsKK+Wig+mBhyA+IGNpcmN1bXN0YW5jZTsKK+mHjuW/gyA+IHdpbGRcLXNjaGVtZXM7CivmlZfoiIggPiBkaXNhcHBvaW50ZWQ7CivljbvmraUgPiB0b1wtc3RlcFwtYmFjazsKK+S4reS/hCA+IGNoaW5hXC1ydXNzaWE7CivljbHmroYgPiBncmF2ZVwtZGFuZ2VyOwor5Lit5LqeID4gY2VudHJhbFwtYXNpYTsKK+iuiuaApyA+IGRlbmF0dXJhdGlvbjsKK+WOn+aWmSA+IHJhd1wtbWF0ZXJpYWw7CivkuI3liKkgPiB1bmZhdm91cmFibGU7CivkuIDljYMgPiBvbmVcLXRob3VzYW5kOwor54iG55m8ID4gdG9cLWJyZWFrXC1vdXQ7CivlpJrnq5kgPiBtdWx0aXN0YXRpb247CivmsKfmsKMgPiBveHlnZW5cLVwoZ2FzXCk7Civlv7Xml6UgPiBtZW1vcmlhbFwtZGF5Owor5ZCE5ZyLID4gZWFjaFwtY291bnRyeTsKK+S4jeS+vyA+IGluY29udmVuaWVudDsKK+aZguaFiyA+IFwodmVyYlwpXC10ZW5zZTsKK+e+heWIlyA+IHRvXC1zcGVhZFwtb3V0Owor5LiA5YSEID4gMVwtMDBcLW1pbGxpb247CivlvqnmtLsgPiByZXN1cnJlY3Rpb247CivmmrTli5UgPiBpbnN1cnJlY3Rpb247CivpnbbmqZ8gPiB0YXJnZXRcLWRyb25lOwor6YGL6KGMID4gYmVcLWluXC1tb3Rpb247Civnt6joiJ4gPiBjaG9yZW9ncmFwaHk7Civmr5TnhacgPiBhY2NvcmRpbmdcLXRvOwor5aOT57iuID4gdG9cLWNvbXByZXNzOwor6Kiq6I+vID4gdmlzaXRcLWNoaW5hOwor6KqN55+lID4gYWNrbm93bGVkZ2U7Civlj6vlloogPiBleGNsYW1hdGlvbjsKK+mAo+ipniA+IGNvbmp1bmN0aW9uOwor5byK56uvID4gbWFscHJhY3RpY2U7CivpnZ7moLggPiBub25cLW51Y2xlYXI7CivmlLbnqasgPiBhY3F1aXNpdGlvbjsKK+awkeaXjyA+IG5hdGlvbmFsaXR5Owor5pqX5LqVID4gYmxpbmRcLXNoYWZ0Owor5pqX5LitID4gaW5cLXRoZVwtZGFyazsKK+efmuebriA+IHRvXC1mb2N1c1wtb247CivluIPpnosgPiBjbG90aFwtc2hvZXM7Civln4vpoK0gPiBzdGVhbWVkXC1idW47CivliKTomZUgPiB0b1wtc2VudGFuY2U7CivliLvoi6YgPiBoYXJkd29ya2luZzsKK+aomem7niA+IHB1bmN0dWF0aW9uOwor55m96bq1ID4gd2hlYXRcLWZsb3VyOwor5YaS6ZqqID4gdGFrZVwtYVwtcmlzazsKK+eZvem2tCA+IHdoaXRlXC1jcmFuZTsKK+W+gOaYlCA+IGluXC10aGVcLXBhc3Q7CivpgornloYgPiBib3JkZXJcLWFyZWE7CivorpPkvY0gPiB0b1wtYWJkaWNhdGU7CivmgKrlg7sgPiBwZWN1bGlhcml0eTsKK+W+geaUtiA+IGxldnlcLVwoZmluZVwpOwor5q+N5p2/ID4gbW90aGVyYm9hcmQ7CivpnIDmsYIgPiByZXF1aXJlbWVudDsKK+Wkp+alrSA+IGdyZWF0XC1jYXVzZTsKK+aXuuWtoyA+IGJ1c3lcLXNlYXNvbjsKK+W/heWumiA+IGJlXC1ib3VuZFwtdG87CivljYrlubQgPiBoYWxmXC1hXC15ZWFyOwor6Kqy5qGMID4gc2Nob29sXC1kZXNrOwor6ZaT6ZqUID4gY29tcGFydG1lbnQ7CivpgbLnlpEgPiB0b1wtaGVzaXRhdGU7CivpnYjmhJ8gPiBpbnNwaXJhdGlvbjsKK+WkseaVlyA+IGJlXC1kZWZlYXRlZDsKK+iqquacjSA+IHRvXC1wZXJzdWFkZTsKK+WItue0hCA+IHRvXC1yZXN0cmljdDsKK+mej+WbuiA+IGNvbnNvbGlkYXRlOwor5YyF5ousID4gdG9cLWNvbXByaXNlOwor5aal5ZaEID4gYXBwcm9wcmlhdGU7Civovq/oqLwgPiBkaWFsZWN0aWNhbDsKK+eAiem5vSA+IGVwc29tXC1zYWx0czsKK+ikh+mbnCA+IGNvbXBsaWNhdGVkOwor5Y2z5Yi7ID4gaW1tZWRpYXRlbHk7Civli5jmjqIgPiBleHBsb3JhdGlvbjsKK+WNmuWPliA+IHRyeVwtdG9cLWdhaW47CivmlL7mo4QgPiB0b1wtcmVub3VuY2U7CivlhrDom4sgPiBmcm96ZW5cLWVnZ3M7CivpmLvnpJkgPiB0b1wtb2JzdHJ1Y3Q7Civov73nqbYgPiBpbnZlc3RpZ2F0ZTsKK+mDteWxgCA+IHBvc3RcLW9mZmljZTsKK+mbmeaVuCA+IGV2ZW5cLW51bWJlcjsKK+iSkOWwiyA+IHRvXC1sb29rXC1mb3I7Civnmb3pgZMgPiBtb29uJydzXC1wYXRoOwor5YuV5oWLID4gZGV2ZWxvcG1lbnQ7CivmsLjkuYUgPiBldmVybGFzdGluZzsKK+eZvOmAgSA+IHRvXC10cmFuc21pdDsKK+mFjeWCmSA+IHRvXC1hbGxvY2F0ZTsKK+isgOWPliA+IHRyeVwtdG9cLWdhaW47Civmr5TlpoIgPiBmb3JcLWV4YW1wbGU7CivlpJrlsbEgPiBtb3VudGFpbm91czsKK+mbu+W3pSA+IGVsZWN0cmljaWFuOwor57SF6ImyID4gcmVkXC1cKGNvbG9yXCk7Civmj4/ov7AgPiB0b1wtZGVzY3JpYmU7CivljYHlhIQgPiBvbmVcLWJpbGxpb247CivlhbXon7sgPiBzb2xkaWVyXC1hbnQ7Civmr4Dlo54gPiBkZXN0cnVjdGlvbjsKK+WJiua4myA+IHRvXC1jdXRcLWRvd247Civml6XkuK0gPiBqYXBhblwtY2hpbmE7CivpmqjmmYIgPiBhdFwtYW55XC10aW1lOwor6Ki85pu4ID4gY2VydGlmaWNhdGU7Civplbfoq4cgPiBhXC1sb25nXC10YWxrOwor5aSn5Z6LID4gbGFyZ2VcLXNjYWxlOwor6KOc6YG4ID4gYnlcLWVsZWN0aW9uOwor6JC95b6MID4gZmFsbFwtYmVoaW5kOwor5o6o6YGyID4gdG9cLXBvc3Rwb25lOwor5pON5rOVID4gZHJpbGxcLXJ1bGVzOwor6LuN6ZqKID4gYXJteVwtdHJvb3BzOwor5qi56JGJID4gdHJlZVwtbGVhdmVzOwor5Ymb5p62ID4gcmlnaWRcLWZyYW1lOwor6KuH5YiwID4gdG9cLXJlZmVyXC10bzsKK+WGjeiAhSA+IGZ1cnRoZXJtb3JlOwor6Kq/5Yi2ID4gdG9cLW1vZHVsYXRlOwor5Z+655+zID4gY29ybmVyc3RvbmU7CivlvoDkuosgPiBwYXN0XC1ldmVudHM7CivlpKflip8gPiBncmVhdFwtbWVyaXQ7Civoo4Hou40gPiBkaXNhcm1hbWVudDsKK+iqoeWRvSA+IGNvbW1hbmRtZW50Owor5YWn6IejID4gY2hhbWJlcmxhaW47CivlnabolakgPiBtYWduYW5pbW91czsKK+aOouiojiA+IGludmVzdGlnYXRlOwor5aKe5by3ID4gdG9cLWluY3JlYXNlOwor6YG15a6IID4gY29tcGx5XC13aXRoOwor6ZmQ5pa8ID4gcmVzdHJpY3RcLWF0Owor6ZaJ57aTID4gYW1lbm9ycmhvZWE7Civoqo3lh7ogPiByZWNvZ25pdGlvbjsKK+WFjeiBtyA+IGRlZ3JhZGF0aW9uOwor5bel56iLID4gZW5naW5lZXJpbmc7CivoqJjlvpcgPiB0b1wtcmVtZW1iZXI7Civmk7rluIMgPiBvcmRlclwtYWJvdXQ7CivpgI/mmI4gPiB0cmFuc3BhcmVudDsKK+WKm+WcliA+IHRyeVwtaGFyZFwtdG87Civov73mn6UgPiBpbnZlc3RpZ2F0ZTsKK+WFuOemriA+IGNlbGVicmF0aW9uOwor5YiR5pyfID4gcHJpc29uXC10ZXJtOwor57K+57ChID4gdG9cLXNpbXBsaWZ5Owor6Iqx6Iy2ID4gc2NlbnRlZFwtdGVhOwor5pWj5L2IID4gZGlzc2VtaW5hdGU7Civopobmu4UgPiBkZXN0cnVjdGlvbjsKK+ewv+iomCA+IGJvb2trZWVwaW5nOwor6Ke45oCSID4gcHJvdm9jYXRpb247CivmlKrlkowgPiB0b1wtbWl4XC1cKHVwXCk7Civmj4/nuaogPiB0b1wtZGVzY3JpYmU7CivpgLHlubQgPiBhbm5pdmVyc2FyeTsKK+e1leacmyA+IGRlc3BlcmF0aW9uOwor5pWX5LuXID4gbG9zdFwtYmF0dGxlOwor5aKe5aSaID4gdG9cLWluY3JlYXNlOwor57WQ5p2fID4gdGVybWluYXRpb247CivnhKHmhI8gPiBpbmFkdmVydGFudDsKK+mCiuWNgCA+IGJvcmRlclwtYXJlYTsKK+ebuOavlCA+IGNvbXBhcmVkXC10bzsKK+imhuaykiA+IGFubmloaWxhdGVkOwor55yJ5qKiID4gdGlwXC1vZlwtYnJvdzsKK+WIh+aPmyA+IHRvXC1jdXRcLW92ZXI7Civlhannmb4gPiB0d29cLWh1bmRyZWQ7CivoqZXlg7kgPiB0b1wtZXZhbHVhdGU7CivltKnoo4IgPiBidXJzdFwtYXBhcnQ7CivliqDku6UgPiBpblwtYWRkaXRpb247CivmjInpiJUgPiBwdXNoXC1idXR0b247CivovrLmpa0gPiBhZ3JpY3VsdHVyZTsKK+WgseaHiSA+IHJldHJpYnV0aW9uOwor5bm+5bm0ID4gYVwtZmV3XC15ZWFyczsKK+ebvOacmyA+IHRvXC1ob3BlXC1mb3I7Civpmorlk6EgPiB0ZWFtXC1tZW1iZXI7CivooYzouaQgPiB3aGVyZWFib3V0czsKK+aUr+S7mCA+IHBheVwtXChtb25leVwpOwor6KGo6KqeID4gcHJlZGljYXRpdmU7CivoqLvlhoogPiB0b1wtcmVnaXN0ZXI7CivpmYTlsawgPiBzdWJvcmRpbmF0ZTsKK+WBvei7jSA+IHB1cHBldFwtYXJteTsKK+WEquengCA+IG91dHN0YW5kaW5nOwor6auU6LK8ID4gY29uc2lkZXJhdGU7Civln7fmlL8gPiBiZVwtaW5cLXBvd2VyOwor6a2a56u/ID4gZmlzaGluZ1wtcm9kOwor5biM5pybID4gcm9cLXdpc2hcLWZvcjsKK+e0hOacgyA+IGFwcG9pbnRtZW50Owor6auU6KqNID4gcmVhbGl6YXRpb247Civlubjlpb0gPiBmb3J0dW5hdGVseTsKK+aOiOeyiSA+IHBvbGxpbmF0aW9uOwor6KO954mHID4gbW92aWVtYWtpbmc7CivmqZ/mnIMgPiBvcHBvcnR1bml0eTsKK+mXnOaKvCA+IHB1dFwtaW5cLWphaWw7CivoqJjkvY8gPiB0b1wtcmVtZW1iZXI7CivngYzmuokgPiB0b1wtaXJyaWdhdGU7CivpgJrlkYogPiB0b1wtYW5ub3VuY2U7CivpqZXpmb0gPiBibGF6aW5nXC1zdW47Civmv4PnuK4gPiBjb25jZW50cmF0ZTsKK+Wci+exjSA+IG5hdGlvbmFsaXR5Owor5YmN5Lu7ID4gcHJlZGVjZXNzb3I7Civou5/nop8gPiBmbG9wcHlcLWRpc2s7Civou5/nm6QgPiBmbG9wcHlcLWRpc2s7CivlsY/ploAgPiBzY3JlZW5cLWRvb3I7Civmi5zoqKogPiBwYXlcLWFcLXZpc2l0Owor6YCA5Ye6ID4gdG9cLXdpdGhkcmF3Owor5o6h54WkID4gY29hbFwtbWluaW5nOwor5bmz5YehID4gY29tbW9ucGxhY2U7Civmi6zomZ8gPiBwYXJlbnRoZXNpczsKK+S+v+meiyA+IGNsb3RoXC1zaG9lczsKK+a7sumAjyA+IHRvXC1wZXJtZWF0ZTsKK+WBt+iBvSA+IHRvXC1ldmVzZHJvcDsKK+WHuuWFtSA+IHNlbmRcLXRyb29wczsKK+WfueWcnyA+IHRvXC1lYXJ0aFwtdXA7CivplovmiLAgPiBzdGFydFwtYVwtd2FyOwor5YiG5L2IID4gZGlzdHJpYnV0ZWQ7Civov7fkurogPiBmYXNjaW5hdGluZzsKK+WHuuS+hiA+IHRvXC1jb21lXC1vdXQ7Civkv6HpgZMgPiBzaWduYWxcLXBhdGg7CivprZTms5UgPiBlbmNoYW50bWVudDsKK+eUs+iriyA+IGFwcGx5XC1cKGZvclwpOwor6LeR6LuKID4gcmFjaW5nXC1iaWtlOwor5o+P5pG5ID4gdG9cLWRlc2NyaWJlOwor5YWr5bm0ID4gZWlnaHRcLXllYXJzOwor57GM5qy+ID4gZnVuZHJhaXNpbmc7Civln5/lkI0gPiBkb21haW5cLW5hbWU7CivlhavlrZcgPiBjaGFyYWN0ZXJcLTg7Civnm7jkvLwgPiB0b1wtcmVzZW1ibGU7CivmjKrnlKggPiB0b1wtZW1iZXp6bGU7CivnmbzlsZUgPiBkZXZlbG9wbWVudDsKK+ijneaJriA+IGRyZXNzXC11cFwtYXM7Civln47ljYAgPiBjaXR5XC1wcm9wZXI7Civmup3pgJogPiBjb21tdW5pY2F0ZTsKK+eCuuS6hiA+IGluXC1vcmRlclwtdG87Civnmb3lrq4gPiB3aGl0ZVwtaG91c2U7CivlhqDlhpUgPiByb3lhbFwtY3Jvd247Civlg4/mqKMgPiBwcmVzZW50YWJsZTsKK+W3p+WQiCA+IGNvaW5jaWRlbmNlOwor5oiw6LuKID4gd2FyXC1jaGFyaW90Owor55m95aScID4gd2hpdGVcLW5pZ2h0Owor6Iqx5bqXID4gZmxvd2VyXC1zaG9wOwor5o+P5a+rID4gdG9cLWRlc2NyaWJlOwor5L6/6Ka9ID4gYnJpZWZcLWd1aWRlOwor6IiK54mIID4gb2xkXC12ZXJzaW9uOwor5Zug5q2kID4gdGhhdFwtaXNcLXdoeTsKK+Wvpui4kCA+IHRvXC1wcmFjdGljZTsKK+Wwi+imkyA+IHRvXC1sb29rXC1mb3I7CivnkZ7pm6ogPiB0aW1lbHlcLXNub3c7CivlhazlhYMgPiBcKHllYXJcKVwtYVwuZFwuOwor6Imy5oOFID4gcG9ybm9ncmFwaHk7CivkvoboqKogPiBwYXlcLWFcLXZpc2l0Owor55m95YiDID4gbmFrZWRcLXN3b3JkOwor55m85Ye6ID4gdG9cLXNlbmRcLW91dDsKK+WwseiBtyA+IHRha2VcLW9mZmljZTsKK+aLlOeHnyA+IHN0cmlrZVwtY2FtcDsKK+aKiuepqSA+IHRydXN0d29ydGh5Owor5a656LKMID4gY291bnRlbmFuY2U7CivoiJLmnI0gPiBjb21mb3J0YWJsZTsKK+aJi+e6jCA+IGZvcm1hbGl0aWVzOwor5oyJ5pyfID4gb25cLXNjaGVkdWxlOwor6Lip5rC0ID4gdHJlYWRcLXdhdGVyOwor5a6j6KiAID4gZGVjbGFyYXRpb247Civku7/pgKAgPiBjb3VudGVyZmVpdDsKK+Wvpue/kiA+IHRvXC1wcmFjdGljZTsKK+WBt+aHtiA+IHRvXC1nb29mXC1vZmY7CivpvLvpn7MgPiBuYXNhbFwtc291bmQ7Civmn6XorYkgPiBpbnZlc3RpZ2F0ZTsKK+eSsOe5niA+IHRvXC1zdXJyb3VuZDsKK+WbsOWigyA+IHByZWRpY2FtZW50Owor5ruy5r++ID4gcGVyY29sYXRpb247Civnl4XlrrkgPiBzaWNrbHlcLWxvb2s7CivmiJDnuL4gPiBwZXJmb3JtYW5jZTsKK+S6uumWkyA+IG1hbicnc1wtd29ybGQ7Civnq6/nq5kgPiBlbmRcLXN0YXRpb247CivooY3lsIQgPiBkaWZmcmFjdGlvbjsKK+WbnuWgsSA+IFwoaW5cKVwtcmV0dXJuOwor5qOX5qi5ID4ganVqdWJlXC10cmVlOwor5oiW56ixID4gYWxzb1wtY2FsbGVkOwor5ous5bynID4gcGFyZW50aGVzaXM7Civpq5jlo5MgPiBoaWdoXC1oYW5kZWQ7Civku7Loo4EgPiBhcmJpdHJhdGlvbjsKK+WAvOW+lyA+IHRvXC1iZVwtd29ydGg7CivnlbDluLggPiBleGNlcHRpb25hbDsKK+iaseicoiA+IGdyYXNzaG9wcGVyOwor6ZG95a2UID4gYm9yZVwtYVwtaG9sZTsKK+eVtuWxgCA+IGF1dGhvcml0aWVzOwor6auY5ZSxID4gc2luZ1wtbG91ZGx5Owor5LuL6KmeID4gcHJlcG9zaXRpb247CivoiJ7liocgPiBkYW5jZVwtZHJhbWE7CivlgpHlh7ogPiBpbGx1c3RyaW91czsKK+eWhuWgtCA+IGJhdHRsZWZpZWxkOwor5L+h5pyNID4gdG9cLWNvbnZpbmNlOwor6IS+5rCjID4gdGVtcGVyYW1lbnQ7CivkuIrpvZIgPiB1cHBlclwtdGVldGg7CivmhbDol4kgPiBjb25zb2xhdGlvbjsKK+adv+imjyA+IHBsYXRlXC1nYXVnZTsKK+eXheS6uiA+IHNpY2tcLXBlcnNvbjsKK+mRkuWumiA+IHRvXC1hcHByYWlzZTsKK+WCmeS7tiA+IHNwYXJlXC1wYXJ0czsKK+eUn+aIkCA+IGJlXC1wcm9kdWNlZDsKK+S+v+ahtiA+IGNoYW1iZXJcLXBvdDsKK+iEq+awpyA+IGRlb3hpZGF0aW9uOwor5oOF6aGYID4gd2lsbGluZ25lc3M7CivnlJ/mhYsgPiB3YXlcLW9mXC1saWZlOwor5oyH5Ye6ID4gdG9cLWluZGljYXRlOwor5omB5qGDID4gYWxtb25kXC10cmVlOwor6LeL5omIID4gZG9taW5lZXJpbmc7Civkv67lvqkgPiByZXN0b3JhdGlvbjsKK+ethuW/gyA+IHBlbmNpbFwtbGVhZDsKK+S/oeaBryA+IGluZm9ybWF0aW9uOwor5LiN6aGnID4gaW5cLXNwaXRlXC1vZjsKK+eri+azlSA+IGxlZ2lzbGF0aW9uOwor5bCN5pa5ID4gY291bnRlcnBhcnQ7Civnqbrnmb0gPiBibGFua1wtc3BhY2U7CivnlLflpbMgPiBtYWxlXC1mZW1hbGU7CivnlbblgZogPiB0b1wtdHJlYXRcLWFzOwor6Leb5a2QID4gbGFtZVwtcGVyc29uOwor5LqU6JCsID4gNTBcLXRob3VzYW5kOwor5pyJ6LajID4gaW50ZXJlc3Rpbmc7Civkv53lrZggPiB0b1wtY29uc2VydmU7Civmt5jnpZ4gPiB0cm91Ymxlc29tZTsKK+ethuWiqCA+IHBlblwtYW5kXC1pbms7CivolpHppIUgPiBnaW5nZXJicmVhZDsKK+a6q+W6piA+IHRlbXBlcmF0dXJlOwor6LeR5aOYID4gYmFzZXJ1bm5pbmc7CivonJzmoYMgPiBob25leVwtcGVhY2g7CivpkZLkuo4gPiBpblwtbGlnaHRcLW9mOwor5Y+v6amaID4gYXN0b25pc2hpbmc7Civkvr/lrpwgPiBpbmV4cGVuc2l2ZTsKK+S4jei/rSA+IGNhbm5vdFwtY29wZTsKK+aJi+WvqyA+IGhhbmR3cml0aW5nOwor5LiL6LyJID4gdG9cLWRvd25sb2FkOwor6LiP5LiKID4gc2V0XC1mb290XC1vbjsKK+S9nOaWhyA+IGNvbXBvc2l0aW9uOwor5ruy5YWlID4gdG9cLXBlcm1lYXRlOwor55Kw5b2iID4gcmluZ1wtc2hhcGVkOwor5L2I5pmvID4gXChzdGFnZVwpXC1zZXQ7CivmiJLlvosgPiBjb21tYW5kbWVudDsKK+mpmuS6uiA+IGFzdG9uaXNoaW5nOwor6ai35YuVID4gZGlzdHVyYmFuY2U7CivmgrLop4AgPiBwZXNzaW1pc3RpYzsKK+WxrOS4iyA+IHN1Ym9yZGluYXRlOwor576O6LKMID4gZ29vZGxvb2tpbmc7CivnlKjku6UgPiBpblwtb3JkZXJcLXRvOwor6bq76JelID4gYW5hZXN0aGV0aWM7CivlsI/lnosgPiBzbWFsbFwtc2NhbGU7CivmiLDloLQgPiBiYXR0bGVmaWVsZDsKK+mhjOipniA+IGluc2NyaXB0aW9uOwor5L6L5aaCID4gZm9yXC1leGFtcGxlOwor6Laj5ZGzID4gdG9cLWludGVyZXN0Owor5L+h5LuwID4gZmlybVwtYmVsaWVmOwor6IKh5p2xID4gc3RvY2tob2xkZXI7Civpjq7lo5MgPiBzdXBwcmVzc2lvbjsKK+adv+eJmSA+IGZyb250XC10b290aDsKK+azs+iksiA+IHN3aW1cLXRydW5rczsKK+aineS+iyA+IHJlZ3VsYXRpb25zOwor5ZCM6LOqID4gaG9tb2dlbmVvdXM7CivnkrDlooMgPiBlbnZpcm9ubWVudDsKK+mhr+iRlyA+IG91dHN0YW5kaW5nOwor5LqM55m+ID4gdHdvXC1odW5kcmVkOwor5bCx5Lu7ID4gdGFrZVwtb2ZmaWNlOwor5p6c5rGBID4gZnJ1aXRcLWp1aWNlOwor6ICV55WcID4gZmFybVwtYW5pbWFsOwor6YeN6L+UID4gcmV0dXJuXC1cKHRvXCk7CivkuIvokL0gPiB3aGVyZWFib3V0czsKK+S4n+iHiSA+IGh1bWlsaWF0aW9uOwor5rOV6KaPID4gbGVnaXNsYXRpb247CivmiJHlnIsgPiBvdXJcLWNvdW50cnk7CivkvYjlsYAgPiBhcnJhbmdlbWVudDsKK+iuiumAmiA+IGJlXC1mbGV4aWJsZTsKK+m8u+a2lSA+IG5hc2FsXC1tdWN1czsKK+iyuOasviA+IFwoYmFua1wpXC1sb2FuOwor5rqW5YKZID4gcHJlcGFyYXRpb247CivlronlurcgPiBnb29kXC1oZWFsdGg7CivpoJDoqIggPiB0b1wtZm9yZWNhc3Q7CivogbDmmI4gPiBpbnRlbGxpZ2VudDsKK+mHj+ipniA+IG1lYXVyZVwtd29yZDsKK+eri+WNsyA+IGltbWVkaWF0ZWx5Owor5ZCN6JGXID4gbWFzdGVycGllY2U7Civku7vmhI8gPiBhcmJpdHJhcmlseTsKK+WuieWutiA+IHNldHRsZVwtZG93bjsKK+mlkuaBlSA+IGZvcmdpdmVuZXNzOwor5a6H5a6ZID4gb3V0ZXJcLXNwYWNlOwor55Ge5aOrID4gc3dpdHplcmxhbmQ7Civlloflj60gPiBsb3Vkc3BlYWtlcjsKK+aIkOS7vSA+IGNvbXBvc2l0aW9uOwor6aeB5YCSID4gZGVtb2xpc2hcLXNiOwor5rW05rGgID4gcHVibGljXC1iYXRoOwor5Lul5b6AID4gaW5cLXRoZVwtcGFzdDsKK+mhr+ebriA+IG91dHN0YW5kaW5nOwor5aWU6aazID4gcnVuXC1xdWlja2x5Owor54++5bm0ID4gY3VycmVudFwtYWdlOwor6YiU56WoID4gcGFwZXJcLW1vbmV5Owor56S656+EID4gZGVtb25zdHJhdGU7Civmmbrog70gPiBpbnRlbGxpZ2VudDsKK+S6pOaPmyA+IHRvXC1leGNoYW5nZTsKK+miqOazoiA+IGRpc3R1cmJhbmNlOwor6Jel54mpID4gbWVkaWNhbWVudHM7CivphJnpmYsgPiBzdXBlcmZpY2lhbDsKK+iAg+afpSA+IGludmVzdGlnYXRlOwor5aSc6bavID4gbmlnaHRpbmdhbGU7CivppJDlu7MgPiBkaW5pbmdcLWhhbGw7CivljJfpn5MgPiBub3J0aFwta29yZWE7CivkupLmj5sgPiB0b1wtZXhjaGFuZ2U7CivlqIHohIUgPiB0b1wtdGhyZWF0ZW47CivnqbrliY0gPiB1bnByZWNlZGVudDsKK+mgkOe0hCA+IHJlc2VydmF0aW9uOwor56Kw6KaLID4gdG9cLXJ1blwtaW50bzsKK+afpeWHuiA+IHRvXC1maW5kXC1vdXQ7CivljYrpgoogPiBoYWxmXC1vZlwtc3RoOwor5pqX56S6ID4gZHJvcFwtYVwtaGludDsKK+S6pOW+gCA+IGFzc29jaWF0aW9uOwor5rCj6LOqID4gdGVtcGVyYW1lbnQ7Civmm7jms5UgPiBjYWxsaWdyYXBoeTsKK+WNk+i2iiA+IGRpc3RpbmN0aW9uOwor6IKh5YO5ID4gc3RvY2tcLXByaWNlOwor5Lmd5pyIID4gbmludGhcLW1vbnRoOwor5Li75qyKID4gc292ZXJlaWdudHk7CivlpJrppJggPiBzdXBlcmZsdW91czsKK+aBsOeVtiA+IGFwcHJvcHJpYXRlOwor6IG95Y+WID4gaGVhclwtXChuZXdzXCk7CivmhJ/mgKcgPiBzZW5zaWJpbGl0eTsKK+WVhuS6uiA+IGJ1c2luZXNzbWFuOwor56aB5q2iID4gdG9cLXByb2hpYml0Owor56eJ5om/ID4gdGFrZVwtb3JkZXJzOwor5ZSu5YO5ID4gdG9cLXNlbGxcLWZvcjsKK+WsjOWqmiA+IGZsaXJ0YXRpb3VzOwor6aCB56K8ID4gcGFnZVwtbnVtYmVyOwor5Lqk5aq+ID4gdG9cLWhhdmVcLXNleDsKK+S4iua1gSA+IHVwcGVyXC1jbGFzczsKK+mcuOmBkyA+IG92ZXJiZWFyaW5nOwor5rOi54C+ID4gZ3JlYXRcLXdhdmVzOwor5rOi5r+kID4gZ3JlYXRcLXdhdmVzOwor5LiN5q2iID4gaW5jZXNzYW50bHk7CivniK3orbAgPiBjb250cm92ZXJzeTsKK+S4readsSA+IG1pZGRsZVwtZWFzdDsKK+S4ueaWuSA+IGZvbGtcLXJlbWVkeTsKK+mHjeeWiiA+IG92ZXJsYXBwaW5nOwor5Lit5pelID4gY2hpbmFcLWphcGFuOwor5ZCe5rKSID4gdG9cLWVtYmV6emxlOwor6YeN54++ID4gdG9cLXJlYXBwZWFyOwor6aOf5aCCID4gZGluaW5nXC1oYWxsOwor5puy5oqYID4gY29tcGxpY2F0ZWQ7CivpnbboiLkgPiB0YXJnZXRcLXNoaXA7CivljYPokKwgPiB0ZW5cLW1pbGxpb247CivkuIDmnIggPiBmaXJzdFwtbW9udGg7Civniq/nl4UgPiB0b1wtZmFsbFwtaWxsOwor5ZCM5q2lID4gc3luY2hyb25vdXM7Civlk7rkubMgPiBicmVhc3RcLWZlZWQ7Civoqr/oroogPiB0b1wtbW9kdWxhdGU7CivkuLvlvLUgPiB0b1wtYWR2b2NhdGU7CivlqZrmnJ8gPiB3ZWRkaW5nXC1kYXk7CivmmpfmrrogPiBhc3Nhc3NpbmF0ZTsKK+avm+ifsiA+IGNhdGVycGlsbGFyOwor5Li75bitID4gY2hhaXJwZXJzb247CivpgorpmbIgPiBib3JkZXJcLWFyZWE7CivljbHnr6QgPiBkZWF0aGx5XC1pbGw7CivkupLli5UgPiBpbnRlcmFjdGl2ZTsKK+WmlueyviA+IGV2aWxcLXNwaXJpdDsKK+S4reW5tCA+IG1pZGRsZVwtYWdlZDsKK+iyneS4mCA+IHNoZWxsXC1tb3VuZDsKK+aEj+WQkSA+IGRpc3Bvc2l0aW9uOwor5rKI5r6xID4gcHJlY2lwaXRhdGU7Civlj5bmsbogPiBkZXBlbmRcLXVwb247CivnuYHopIcgPiBjb21wbGljYXRlZDsKK+malOmboiA+IHRvXC1zZXBhcmF0ZTsKK+S4ieW5tCA+IHRocmVlXC15ZWFyczsKK+malOmWiyA+IHRvXC1zZXBhcmF0ZTsKK/ChvbEgPiBhXC1oaWdoXC1oaWxsOwor5LiL5bGsID4gc3Vib3JkaW5hdGU7CivkuIrlsaQgPiB1cHBlclwtbGF5ZXI7CivnubznuowgPiB0b1wtY29udGludWU7Civlo6/op4AgPiBzcGVjdGFjdWxhcjsKK+aUv+iuiiA+IGNvdXBcLWQnJ2V0YXQ7CivnpZ7lrbggPiB0aGVvbG9naWNhbDsKK+e5geiPryA+IGZsb3VyaXNoaW5nOwor6aGM5a2XID4gaW5zY3JpcHRpb247CivlkIjlvbEgPiBqb2ludFwtcGhvdG87CivlpoLnlasgPiBwaWN0dXJlc3F1ZTsKK+S4jeWgqiA+IGNhbm5vdFwtYmVhcjsKK+iXpeWTgSA+IG1lZGljYW1lbnRzOwor6aCG5oeJID4gY29tcGx5XC13aXRoOwor57WC6bueID4gZGVzdGluYXRpb247CivniIbnq7kgPiBmaXJlY3JhY2tlcjsKK+W+l+eXhSA+IHRvXC1mYWxsXC1pbGw7CivpgI/pnLIgPiB0b1wtbGVha1wtb3V0Owor6Zi76ZqUID4gdG9cLXNlcGFyYXRlOwor54m55qyKID4gcHJlcm9nYXRpdmU7CivlpKrnqbogPiBvdXRlclwtc3BhY2U7CivliIbpm6IgPiB0b1wtc2VwZXJhdGU7CivnpoHku6QgPiBwcm9oaWJpdGlvbjsKK+S4jeWFjSA+IHVuYXZvaWRhYmxlOwor6KqT57SEID4gaG9ub3JcLWJvdW5kOwor6K2J5pu4ID4gY3JlZGVudGlhbHM7CivmsojmgJ0gPiBjb250ZW1wbGF0ZTsKK+ino+mHiyA+IGV4cGxhbmF0aW9uOwor5YiG6ZaLID4gdG9cLXNlcGFyYXRlOwor56SB5bO2ID4gcmVlZlwtaXNsYW5kOwor6YCa6YGOID4gYnlcLW1lYW5zXC1vZjsKK+i/jumiqCA+IGluXC10aGVcLXdpbmQ7CivkuIrku7sgPiB0YWtlXC1vZmZpY2U7CivlpoLmraQgPiBpblwtdGhpc1wtd2F5Owor6KuW54itID4gY29udHJvdmVyc3k7CivmgqDkuYUgPiBlc3RhYmxpc2hlZDsKK+S4iuS4iyA+IHVwXC1hbmRcLWRvd247CivmgZDlmocgPiB0b1wtdGhyZWF0ZW47CivntKDpo58gPiB2ZWdldGFibGVzOwor57iu55+tID4gdG9cLWN1cnRhaWw7CivmlLnntYQgPiByZW9yZ2FuaXplOwor5pOB6K23ID4gdG9cLWVuZG9yc2U7CivpgLLooYwgPiB0b1wtYWR2YW5jZTsKK+WllOazoiA+IHJ1c2hcLWFib3V0Owor5b6M5q+NID4gc3RlcG1vdGhlcjsKK+aVo+eZvCA+IGRpc3RyaWJ1dGU7CivlpLHngasgPiBjYXRjaFwtZmlyZTsKK+iqleeUnyA+IHRvXC1iZVwtYm9ybjsKK+WkmueIviA+IFwoYm9iXClcLWRvbGU7CivlvbzmraQgPiBlYWNoXC1vdGhlcjsKK+mgkOWFiCA+IGJlZm9yZWhhbmQ7Civpl5zploAgPiBjbG9zZVwtZG93bjsKK+mBleiDjCA+IHRvXC12aW9sYXRlOwor57Wx6KiIID4gc3RhdGlzdGljczsKK+WHveizvCA+IG1haWxcLW9yZGVyOwor6aCQ5YKZID4gdG9cLXByZXBhcmU7Civlo4Hnq4sgPiBcKG9mXC1jbGlmZnM7CivmmKXlraMgPiBzcHJpbmd0aW1lOwor5pGY6YyEID4gdG9cLWV4dHJhY3Q7CivpoJLkvYggPiBwcm9tdWxnYXRlOwor5q+P5qyhID4gZXZlcnlcLXRpbWU7Civnt6jnqIsgPiB0b1wtcHJvZ3JhbTsKK+WIhuipniA+IHBhcnRpY2lwbGU7CivlvozmnJ8gPiBsYXRlXC1zdGFnZTsKK+aViOeUqCA+IHVzZWZ1bG5lc3M7Civns6fpo58gPiBmb29kc3R1ZmZzOwor6I2S6YeOID4gd2lsZGVybmVzczsKK+aSkuisiiA+IHRlbGxcLWFcLWxpZTsKK+eHg+eHkiA+IGNvbWJ1c3Rpb247CivlvITnm7QgPiBzdHJhaWdodGVuOwor6YG356e7ID4gdG9cLW1pZ3JhdGU7CivlpKfmsKMgPiBhdG1vc3BoZXJlOwor6KqN54K6ID4gdG9cLWJlbGlldmU7CivpmY3okL0gPiB0b1wtZGVzY2VuZDsKK+WJjeiAhSA+IHRoZVwtZm9ybWVyOwor5pWI546HID4gZWZmaWNpZW5jeTsKK+mdtuW/gyA+IGJ1bGwnJ3NcLWV5ZTsKK+WLg+eEtiA+IGFnaXRhdGVkbHk7Civnop/lrZAgPiBzbWFsbFwtZGlzaDsKK+ism+W4qyA+IGluc3RydWN0b3I7Civlj5bku6MgPiBzdWJzdGl0dXRlOwor5paw5pWZID4gcHJvdGVzdGFudDsKK+WkmuasoSA+IG1hbnlcLXRpbWVzOwor5aWH5pW4ID4gb2RkXC1udW1iZXI7Civlv4XlsIcgPiBpbmV2aXRhYmx5Owor6Zmw57K+ID4gc2V4XC1mbHVpZHM7CivlppblrIggPiBlbmNoYW50aW5nOwor54uC5LqCID4gaHlzdGVyaWNhbDsKK+e5geamriA+IHByb3NwZXJvdXM7Civnubzmib8gPiB0b1wtaW5oZXJpdDsKK+aTjee4sSA+IHRvXC1vcGVyYXRlOwor5YWo6Z2iID4gYWxsXC1hcm91bmQ7CivljpjljYcgPiBjZW50aWxpdGVyOwor6Kq/5pW0ID4gYWRqdXN0bWVudDsKK+Wmk+WlsyA+IHByb3N0aXR1dGU7CivojZLorKwgPiByaWRpY3Vsb3VzOwor55m96aCtID4gaG9hcnlcLWhlYWQ7CivmsbrkuI0gPiBub3RcLWF0XC1hbGw7CivoqqrmmI4gPiB0b1wtZXhwbGFpbjsKK+WHuuiJsiA+IHJlbWFya2FibGU7CivlpbPlqb8gPiBzb25cLWluXC1sYXc7CivnibnliKUgPiBlc3BlY2lhbGx5Owor5YWN6ZmkID4gdG9cLXByZXZlbnQ7CivlpqXljZQgPiBjb21wcm9taXNlOwor5beo6LyqID4gbGFyZ2VcLXNoaXA7CivnhoTmu4UgPiBleHRpbmd1aXNoOwor54Wn54mHID4gcGhvdG9ncmFwaDsKK+mZhOethiA+IHBvc3RzY3JpcHQ7Civopqroh6ogPiBwZXJzb25hbGx5Owor5pS55q2jID4gdG9cLWNvcnJlY3Q7CivljYrlnJMgPiBzZW1pY2lyY2xlOwor6YGV54qvID4gdG9cLXZpb2xhdGU7CivniK3lpaogPiBmaWdodFwtb3ZlcjsKK+efreacnyA+IHNob3J0XC10ZXJtOwor5q+P5bm0ID4gZXZlcnlcLXllYXI7CivmlbXmiYsgPiBhbnRhZ29uaXN0Owor5Y2w5YOPID4gaW1wcmVzc2lvbjsKK+eyvumAmiA+IHByb2ZpY2llbnQ7CivlvojlpKcgPiB0cmVtZW5kb3VzOwor55m96YWSID4gc3Bpcml0XC11c3U7CivmmI7kuq4gPiBicmlnaHRuZXNzOwor6I2J6I6TID4gc3RyYXdiZXJyeTsKK+WgseeroCA+IG5ld3NwYXBlcnM7CivlpJrlubQgPiBtYW55XC15ZWFyczsKK+iqnuW9mSA+IHZvY2FidWxhcnk7Civml6nlhYggPiBwcmV2aW91c2x5Owor54mM5YO5ID4gbGlzdFwtcHJpY2U7Civlt6vooZMgPiB3aXRjaGNyYWZ0Owor6YGO5rihID4gdHJhbnNpdGlvbjsKK+aOoumaqiA+IHRvXC1leHBsb3JlOwor5aSn5a24ID4gdW5pdmVyc2l0eTsKK+eEoeeQhiA+IGlycmF0aW9uYWw7CivljYrlg7kgPiBoYWxmXC1wcmljZTsKK+WNgOWIpSA+IGRpZmZlcmVuY2U7CivmloflrbggPiBsaXRlcmF0dXJlOwor5b6e5YmNID4gcHJldmlvdXNseTsKK+mXnOiBryA+IGJlXC1yZWxhdGVkOwor5Zyw6ZyHID4gZWFydGhxdWFrZTsKK+ingOecviA+IHNwZWN0YXRvcnM7CivmjpLpmoogPiB0b1wtbGluZVwtdXA7CivliIbnmbwgPiBkaXN0cmlidXRlOwor5pSq5pO+ID4gdG9cLWRpc3R1cmI7CivmlbjlrbggPiBtYXRoZW1hdGljOwor54ax5b+DID4gZW50aHVzaWFzbTsKK+mbu+WtkCA+IGVsZWN0cm9uaWM7Civnmb3oqbEgPiB2ZXJuYWN1bGFyOwor54K457OVID4gZnJpZWRcLWNha2U7CivloIbnqY0gPiBhY2N1bXVsYXRlOwor5pWj5bCEID4gc2NhdHRlcmluZzsKK+iTi+S4liA+IHVucml2ZWxsZWQ7Civnt6jmjpIgPiB0b1wtYXJyYW5nZTsKK+aNlemtmiA+IGNhdGNoXC1maXNoOwor5Ye655SfID4gdG9cLWJlXC1ib3JuOwor5YWB6Ku+ID4gdG9cLXByb21pc2U7Civoqr/lkowgPiBoYXJtb25pb3VzOwor5b6M5L6GID4gYWZ0ZXJ3YXJkczsKK+Wkp+WWnCA+IGV4dWx0YXRpb247CivmlL/lupwgPiBnb3Zlcm5tZW50Owor6Kit5pa9ID4gZmFjaWxpdGllczsKK+aWueS+vyA+IGNvbnZlbmllbnQ7CivmjqXpgJogPiB0b1wtY29ubmVjdDsKK+atpOW+jCA+IGFmdGVyXC10aGlzOwor5bqn5qiZID4gY29vcmRpbmF0ZTsKK+e2k+attyA+IGV4cGVyaWVuY2U7CivmqILop4AgPiBvcHRpbWlzdGljOwor5aSq5Y+kID4gaW1tZW1vcmlhbDsKK+mbouWpmiA+IHRvXC1kaXZvcmNlOwor54eI5aGUID4gbGlnaHRob3VzZTsKK+WHuueJiCA+IHRvXC1wdWJsaXNoOwor6KqH5aSnID4gZXhhZ2dlcmF0ZTsKK+WFteiIuSA+IG1hblwtb2ZcLXdhcjsKK+WKoOW3niA+IGNhbGlmb3JuaWE7CivlgrfpoqggPiBjYXRjaFwtY29sZDsKK+aUvuWwhCA+IHRvXC1yYWRpYXRlOwor5q+U5L6LID4gcHJvcG9ydGlvbjsKK+mBt+W+mSA+IHRvXC1taWdyYXRlOwor6Zqo5b6MID4gc29vblwtYWZ0ZXI7CivliY3mma8gPiBmb3JlZ3JvdW5kOwor6YG35bu2ID4gbG9uZ1wtZGVsYXk7Civoo5zoqp4gPiBjb21wbGVtZW50Owor5Yqg5a+GID4gdG9cLWVuY3J5cHQ7CivmlbTlkIggPiB0b1wtY29uZm9ybTsKK+mBleaKlyA+IHRvXC1kaXNvYmV5Owor55uj552jID4gdG9cLWNvbnRyb2w7CivmloflhbcgPiBzdGF0aW9uZXJ5Owor5q+P5Lq6ID4gcGVyXC1wZXJzb247CivpmLvmraIgPiB0b1wtcHJldmVudDsKK+mYsuawtCA+IHdhdGVycHJvb2Y7CivpmLLmraIgPiB0b1wtcHJldmVudDsKK+mAgOatpSA+IGRlZ2VuZXJhdGU7CivpganluqYgPiBtb2RlcmF0ZWx5Owor6YGg5b6BID4gZXhwZWRpdGlvbjsKK+eZveiHiSA+IHdoaXRlXC1mYWNlOwor57i95YWxID4gYWx0b2dldGhlcjsKK+ino+aekCA+IHRvXC1hbmFseXplOwor6Kmm5ZyWID4gdG9cLWF0dGVtcHQ7CivoiabovIkgPiBzaGlwXC1iYXNlZDsKK+efpeWQjSA+IHdlbGxcLWtub3duOwor5aSa5LqLID4gbWVkZGxlc29tZTsKK+WGsOeQgyA+IGljZVwtaG9ja2V5Owor6Kej5pS+ID4gbGliZXJhdGlvbjsKK+WBvemggiA+IGZhbHNlXC1yb29mOwor6auY6ZqOID4gaGlnaFwtbGV2ZWw7CivmjY/pgKAgPiB0b1wtbWFrZVwtdXA7CivliIbmnpAgPiB0b1wtYW5hbHl6ZTsKK+aTgeaKsSA+IHRvXC1lbWJyYWNlOwor6Zu25LiLID4gYmVsb3dcLXplcm87Civlt67nlbAgPiBkaWZmZXJlbmNlOwor5pS+5Ye6ID4gdG9cLWxldFwtb2ZmOwor5YWs55+zID4gaGVjdG9saXRlcjsKK+aUu+WFiyA+IHRvXC1jYXB0dXJlOwor5aCx5pW4ID4gbnVtYmVyXC1vZmY7CivmlLblhaUgPiB0b1wtdGFrZVwtaW47CivoqZ7lhbggPiBkaWN0aW9uYXJ5Owor6Kit5ZyoID4gbG9jYXRlZFwtYXQ7CivpmZDluqYgPiBsaW1pdGF0aW9uOwor6KOx57OKID4gd2FsbFwtcGFwZXI7CivmqqLmn6UgPiBpbnNwZWN0aW9uOwor54CG6IG3ID4gd3Jvbmdkb2luZzsKK+W6h+W7lSA+IFwob2ZcLWFcLXRyZWU7CivpmbDlpKkgPiBjbG91ZHlcLWRheTsKK+e1guaWvCA+IGV2ZW50dWFsbHk7CivoqILlqZogPiBlbmdhZ2VtZW50Owor6Zm45Z+6ID4gbGFuZFwtYmFzZWQ7Civlu5rlj7ggPiBjb29rXCxcLWNoZWY7CivlgrPoqqogPiBpdFwtaXNcLXNhaWQ7Civpq5jpgJ8gPiBoaWdoXC1zcGVlZDsKK+WItuWumiA+IHRvXC1kcmF3XC11cDsKK+mAn+WwhCA+IHJhcGlkXC1maXJlOwor6YG65YKzID4gaGVyZWRpdGFyeTsKK+iIiei+piA+IHRvXC1jb25kdWN0Owor5Yip5a6zID4gZm9ybWlkYWJsZTsKK+aUquS6giA+IHRvXC1jb25mdXNlOwor5YWl542EID4gZ29cLXRvXC1qYWlsOwor57Gz57KJID4gcmljZVwtZmxvdXI7Civns77mraMgPiB0b1wtY29ycmVjdDsKK+imquaJiyA+IHBlcnNvbmFsbHk7CivovrLmnZEgPiBydXJhbFwtYXJlYTsKK+WJr+WIiiA+IHN1cHBsZW1lbnQ7Civmk43loLQgPiBwbGF5Z3JvdW5kOwor5Z+65pa8ID4gYmVjYXVzZVwtb2Y7CivooY3oroogPiB0b1wtZGV2ZWxvcDsKK+WFqOeEtiA+IGNvbXBsZXRlbHk7CivlnJjogZogPiB0b1wtcmV1bml0ZTsKK+eZveeLkCA+IGFyY3RpY1wtZm94Owor5pOB5aGeID4gY29uZ2VzdGlvbjsKK+iojuWOrSA+IGRpc2d1c3Rpbmc7CivpgZXlgrIgPiB0b1wtZGlzb2JleTsKK+eZveeGviA+IHdoaXRlXC1oZWF0Owor55m954axID4gd2hpdGVcLWhlYXQ7Civnmb3nhoogPiBwb2xhclwtYmVhcjsKK+eZveeFpCA+IGFudGhyYWNpdGU7CivlgJrpnaAgPiB0b1wtbGVhblwtb247CivlubzlpbMgPiB5b3VuZ1wtZ2lybDsKK+ingOWvnyA+IHRvXC1vYnNlcnZlOwor5YW15rOVID4gYXJ0XC1vZlwtd2FyOwor55W26YG4ID4gYmVcLWVsZWN0ZWQ7CivmkZjmioQgPiB0b1wtZXh0cmFjdDsKK+ebo+aOpyA+IHRvXC1tb25pdG9yOwor5aCk5bK4ID4gZW1iYW5rbWVudDsKK+e1kOWxgCA+IGNvbmNsdXNpb247CivmrKDkvbMgPiBzdWJvcHRpbWFsOwor6YCx5YiwID4gdGhvdWdodGZ1bDsKK+imj+W+iyA+IGRpc2NpcGxpbmU7CivnrqHovYQgPiBhZG1pbmlzdGVyOwor5bi45bi4ID4gZnJlcXVlbnRseTsKK+aoueaogSA+IHRyZWVcLXN0dW1wOwor6KWv5omYID4gdG9cLXNldFwtb2ZmOwor5pON5YW4ID4gZHJpbGxcLWJvb2s7Civot5HppqwgPiBob3JzZVwtcmFjZTsKK+aqouWvnyA+IHRvXC1pbnNwZWN0Owor5beo5pifID4gZ2lhbnRcLXN0YXI7CivpmYTliqAgPiBhZGRpdGlvbmFsOwor5pON5L2cID4gdG9cLW9wZXJhdGU7Civnm7jlsI0gPiByZWxhdGl2ZWx5Owor54Sh5YO5ID4gaW52YWx1YWJsZTsKK+Wxj+mZpCA+IGdldFwtcmlkXC1vZjsKK+aQj+aWlyA+IHRvXC13cmVzdGxlOwor5ouc6KiXID4gcmVxdWVzdFwtc2I7CivmjpLnkIMgPiB2b2xsZXliYWxsOwor57SA5b6LID4gZGlzY2lwbGluZTsKK+W6l+S4uyA+IHNob3BcLW93bmVyOwor55O26aC4ID4gYm90dGxlbmVjazsKK+W5q+WKqSA+IGFzc2lzdGFuY2U7Civluavlh7YgPiBhY2NvbXBsaWNlOwor5YiG5YilID4gZGlmZmVyZW5jZTsKK+WFrOaSriA+IG1pbGxpbGl0ZXI7CivntZDlkIggPiB0b1wtY29tYmluZTsKK+exg+eQgyA+IGJhc2tldGJhbGw7CivmirHosqAgPiBhc3BpcmF0aW9uOwor566X6KGTID4gYXJpdGhtZXRpYzsKK+aOqOa4rCA+IGNvbmplY3R1cmU7CivopoHloZ4gPiBzdHJvbmdob2xkOwor55m95peXID4gd2hpdGVcLWZsYWc7CivmvJToroogPiB0b1wtZGV2ZWxvcDsKK+a7v+i2syA+IHRvXC1zYXRpc2Z5Owor6amF6YCQID4gYmFuaXNobWVudDsKK+ihqOekuiA+IHRvXC1leHByZXNzOwor6L6y5ZySID4gcGxhbnRhdGlvbjsKK+mrmOe0miA+IGhpZ2hcLWxldmVsOwor5oqV6LOHID4gaW52ZXN0bWVudDsKK+eci+WIsCA+IHNlZVwtXCh0aGF0XCk7Civmj5DmmIcgPiB0b1wtcHJvbW90ZTsKK+WFjOaPmyA+IHRvXC1jb252ZXJ0Owor5YWs5byVID4gaGVjdG9tZXRlcjsKK+mnlemmrSA+IHRvXC1jb250cm9sOwor5bCI6ZaAID4gc3BlY2lhbGlzdDsKK+eci+S+hiA+IGFwcGFyZW50bHk7Civoh4noibIgPiBjb21wbGV4aW9uOwor6I2J5Y+iID4gdW5kZXJicnVzaDsKK+WFvOWuuSA+IGNvbXBhdGlibGU7Civou43muK8gPiBuYXZhbFwtcG9ydDsKK+aMieeriyA+IG9yZGluYXRpb247CivnlJ/oqIggPiBsaXZlbGlob29kOwor5o6M5quDID4gc2hvcGtlZXBlcjsKK+ihqOePviA+IGV4cHJlc3Npb247CivlhanlsrggPiBiaWxhdGVyaWFsOwor5YWx5a2YID4gdG9cLWNvZXhpc3Q7Civlm5rniq8gPiBhXC1wcmlzb25lcjsKK+WBiee4viA+IGdyZWF0XC1hY3RzOwor55u45LqSID4gZWFjaFwtb3RoZXI7CivooY3nlJ8gPiBkZXJ2aWF0aXZlOwor5Yaw5YiAID4gaWNlXC1za2F0ZXM7CivmjqXmlLYgPiB0b1wtcmVjZWl2ZTsKK+eUqOiZlSA+IHVzZWZ1bG5lc3M7CivmioDooZMgPiB0ZWNobm9sb2d5Owor6Iqx5omYID4gcmVjZXB0YWNsZTsKK+Wuv+mhjCA+IGFzc2lnbm1lbnQ7CivprZrmjpIgPiBmaXNoXC1zdGVhazsKK+aMh+eUsiA+IGZpbmdlcm5haWw7CivlrbjpvaEgPiBzY2hvb2xcLWFnZTsKK+aNqOajhCA+IHRvXC1naXZlXC11cDsKK+W3ruWIpSA+IGRpZmZlcmVuY2U7Civkvb/phokgPiBpbnRveGljYXRlOwor5ouY56aBID4gY29uc3RyYWludDsKK+Wci+acgyA+IHBhcmxpYW1lbnQ7CivotoXotoogPiB0b1wtc3VycGFzczsKK+aOqOW7oyA+IHBvcHVsYXJpemU7CivkvaPph5EgPiBjb21taXNzaW9uOwor55m95ZaJID4gZGlwaHRoZXJpYTsKK+aOiOaEjyA+IHRvXC1pbnNwaXJlOwor5YWs5YiGID4gY2VudGltZXRlcjsKK+ethuiAhSA+IHRoZVwtYXV0aG9yOwor5L+d6IKyID4gY2hpbGRcLWNhcmU7Civnmb3ljYAgPiB3aGl0ZVwtYXJlYTsKK+aPueWCtSA+IGJlXC1pblwtZGVidDsKK+a8q+eVqyA+IGNhcmljYXR1cmU7CivlgZzngasgPiBjZWFzZVwtZmlyZTsKK+iJr+W/gyA+IGNvbnNjaWVuY2U7Civllq7oqr8gPiBtb25vdG9ub3VzOwor6KGo5piOID4gbWFrZVwta25vd247CivmipXnqL8gPiBjb250cmlidXRlOwor5qih5Lu/ID4gdG9cLWltaXRhdGU7CivnmbzkvYggPiB0b1wtcmVsZWFzZTsKK+ainee0hCA+IHRyZWF0eXBhY3Q7CivlsI7oiKogPiBuYXZpZ2F0aW9uOwor5o6S5aSWID4geGVub3Bob2JpYzsKK+WwjuiHtCA+IHRvXC1sZWFkXC10bzsKK+WxleekuiA+IHRvXC1vcGVuXC11cDsKK+Wwi+iIiyA+IHRvXC1wcm92b2tlOwor5YWI5L6LID4gYW50ZWNlZGVudDsKK+a7hee1lSA+IGV4dGluZ3Vpc2g7Civos5PppKggPiBndWVzdGhvdXNlOwor5qiT5LiLID4gZG93bnN0YWlyczsKK+aPkOWAoSA+IHRvXC1wcm9tb3RlOwor5omT57WQID4gdGllXC1hXC1rbm90Owor6IeG5risID4gYXNzdW1wdGlvbjsKK+iIiOaXuiA+IHByb3NwZXJvdXM7CivlsrjmqJkgPiBsaWdodGhvdXNlOwor5ouU5rKzID4gdHVnXC1vZlwtd2FyOwor55Sf55SiID4gdG9cLXByb2R1Y2U7Civoo5zlhJ8gPiBjb21wZW5zYXRlOwor5Lq66auUID4gaHVtYW5cLWJvZHk7Civmjqjlh7ogPiB0b1wtcmVsZWFzZTsKK+iDnuihoyA+IGFmdGVyYmlydGg7CivmjJbmjpggPiBleGNhdmF0aW9uOwor5Zub5bm0ID4gZm91clwteWVhcnM7CivppJDppKggPiByZXN0YXVyYW50Owor5oyH5o+uID4gdG9cLWNvbmR1Y3Q7CivogZbpnYggPiBob2x5XC1naG9zdDsKK+aMh+aOpyA+IGFjY3VzYXRpb247CivmiYvnqL8gPiBtYW51c2NyaXB0Owor5oq55rK5ID4gdG9cLWFubm9pbnQ7CivooajlsLogPiByZWFyXC1zaWdodDsKK+eVoualrSA+IGdyYWR1YXRpb247Civlm7rln7cgPiBwZXJzaXN0ZW50Owor5p+l6KmiID4gdG9cLWlucXVpcmU7Civpo6/ppKggPiByZXN0YXVyYW50Owor55aR5oWuID4gaGVzaXRhdGlvbjsKK+WWieiIjCA+IG1vdXRocGllY2U7Civkvr/nlbYgPiBjb252ZW5pZW50Owor6IGv6YCaID4gY29ubmVjdGlvbjsKK+mnkOe0riA+IHRvXC1zdGF0aW9uOwor57C95Ye6ID4gdG9cLWxvZ1wtb2ZmOwor6auY5bGkID4gaGlnaFwtbGV2ZWw7CivppIXpkLogPiBiYWtpbmdcLXBhbjsKK+WxouasoSA+IHJlcGVhdGVkbHk7CivpjpfnrqEgPiBndW5cLWJhcnJlbDsKK+mQteadvyA+IGlyb25cLXBhbmVsOwor6Y+I55KwID4gY2hhaW5cLWxpbms7CivmjYnlj5YgPiB0b1wtY2FwdHVyZTsKK+erreeboSA+IGV4aGF1c3Rpb247Civou43kurogPiBzZXJ2aWNlbWFuOwor5oSP6aGYID4gYXNwaXJhdGlvbjsKK+iAgemgrSA+IG9sZFwtZmVsbG93Owor54++6LGhID4gYXBwZWFyYW5jZTsKK+mOrueXmyA+IGFuYWxnZXNpYWM7Civoh6rlsIogPiBzZWxmXC1wcmlkZTsKK+Wumue+qSA+IGRlZmluaXRpb247Civnq7bniK0gPiB0b1wtY29tcGV0ZTsKK+WvpuePviA+IHRvXC1hY2hpZXZlOwor5YK35LqhID4gY2FzdWFsdGllczsKK+aIqueEtiA+IGNvbXBsZXRlbHk7Civmpa3kvZkgPiBzcGFyZVwtdGltZTsKK+ihjOWIlyA+IHByb2Nlc3Npb247Civnl4XlgYcgPiBzaWNrXC1sZWF2ZTsKK+acn+mZkCA+IHRpbWVcLWxpbWl0Owor5oqK5oiyID4gYWNyb2JhdGljczsKK+a2iOiyuyA+IHRvXC1jb25zdW1lOwor6KGM5Lq6ID4gcGVkZXN0cmlhbjsKK+abuOmdoiA+IGluXC13cml0aW5nOwor56235a2QID4gY2hvcHN0aWNrczsKK+evgOWItiA+IHRlbXBlcmFuY2U7CivohZDmlZcgPiBjb3JydXB0aW9uOwor54246YarID4gdmV0ZXJpbmFyeTsKK+WBmuWHuiA+IHRvXC1wdXRcLW91dDsKK+S9nOeCuiA+IGFjY29tcGxpc2g7CivmipjlsIQgPiByZWZyYWN0aW9uOwor5ZaJ54KOID4gbGFyeW5naXRpczsKK+S6huinoyA+IHVuZGVyc3RhbmQ7Civkv6Hlv4MgPiBjb25maWRlbmNlOwor6IGv57mrID4gY29ubmVjdGlvbjsKK+ePjeiXjyA+IGNvbGxlY3Rpb247Civoh6rkv6EgPiBjb25maWRlbmNlOwor6IGW6IG3ID4gcHJpZXN0aG9vZDsKK+mMtuebpCA+IGRpYWxcLXBsYXRlOwor5qGD5qi5ID4gcGVhY2hcLXRyZWU7Civllq7mqKEgPiBzaW5nbGVtb2RlOwor5oOz6LGhID4gdG9cLWltYWdpbmU7CivkuIvpmY0gPiB0b1wtZGVjbGluZTsKK+WvqeafpSA+IHRvXC1leGFtaW5lOwor5bGk5aOTID4gbGFtaW5hdGlvbjsKK+WRqOmAnyA+IGN5Y2xlXC10aW1lOwor5pq06aKoID4gc3Rvcm1cLXdpbmQ7CivlsazlnLAgPiBkZXBlbmRlbmN5Owor5ryy5YO5ID4gYXBwcmVjaWF0ZTsKK+iBlue2kyA+IGhvbHlcLWJpYmxlOwor5Lu/55yfID4gdG9cLWVtdWxhdGU7Civlkozoq6cgPiBoYXJtb25pb3VzOwor5LuL57S5ID4gdG9cLXByZXNlbnQ7CivpoLvpoLsgPiByZXBlYXRlZGx5Owor57y66bueID4gd2Vha1wtcG9pbnQ7CivmnKzooYwgPiBvbmUnJ3NcLWxpbmU7Civmu7LlnZEgPiBzZXdhZ2VcLXBpdDsKK+ertuaKgCA+IHRvdXJuYW1lbnQ7CivmirXliLYgPiByZXNpc3RhbmNlOwor6ZC15YygID4gYmxhY2tzbWl0aDsKK+S7u+eUqCA+IHRvXC1hcHBvaW50Owor5Zau5pW4ID4gb2RkXC1udW1iZXI7Civmnb/ntJkgPiBwYXBlcmJvYXJkOwor5ZGI6YGeID4gdG9cLXByZXNlbnQ7Civms6LplbcgPiB3YXZlbGVuZ3RoOwor5bCI5b+DID4gYWJzb3JwdGlvbjsKK+WAi+WIpSA+IGluZGl2aWR1YWw7CivmnIPoqIggPiBhY2NvdW50YW50Owor5rWB6KGAID4gc2hlZFwtYmxvb2Q7CivogonniYcgPiBtZWF0XC1zbGljZTsKK+a6q+WupCA+IGdyZWVuaG91c2U7CivlgJrku5cgPiB0b1wtbGVhblwtb247CivmipHliLYgPiB0b1wtaW5oaWJpdDsKK+S9nOaWmSA+IGNvbmRpbWVudHM7Civkvr/lo7ogPiBiZWRcLXVyaW5hbDsKK+i2qOWliSA+IHRvXC1mYXduXC1vbjsKK+S9v+aAkiA+IGV4YXNwZXJhdGU7Civkvp3lsawgPiBkZXBlbmRlbmNlOwor6aCQ6ZiyID4gdG9cLXByZXZlbnQ7CivlgIvkurogPiBpbmRpdmlkdWFsOwor562J5YiwID4gd2FpdFwtdW50aWw7CivlsI/lp5AgPiB5b3VuZ1wtbGFkeTsKK+ahjOW4gyA+IHRhYmxlY2xvdGg7Civog4zmma8gPiBiYWNrZ3JvdW5kOwor5LiN6K6KID4gdW5jaGFuZ2luZzsKK+S4gOiyqyA+IGNvbnNpc3RlbnQ7Civmibnlh4YgPiB0b1wtYXBwcm92ZTsKK+enkeezuyA+IGRlcGFydG1lbnQ7CivmhIHnt5IgPiBtZWxhbmNob2x5Owor56We6KmxID4gZmFpcnlcLXRhbGU7CivkvY/miYAgPiBoYWJpdGF0aW9uOwor6aGb6KaGID4gc3VidmVyc2lvbjsKK+ahiOWtkCA+IGxvbmdcLXRhYmxlOwor5LqS55u4ID4gZWFjaFwtb3RoZXI7Civkvr/liKkgPiBjb252ZW5pZW50Owor5rKz6YKKID4gcml2ZXJcLWJhbms7CivkuI3omZ4gPiB1bmV4cGVjdGVkOwor5bCk5YW2ID4gZXNwZWNpYWxseTsKK+a3mOaxsCA+IHRvXC1kaWVcLW91dDsKK+iCpeaWmSA+IGZlcnRpbGl6ZXI7CivlronmjpIgPiB0b1wtYXJyYW5nZTsKK+itsOmZoiA+IHBhcmxpYW1lbnQ7Civni6Hovq8gPiB0b1wtcXVpYmJsZTsKK+esrOS6jCA+IG51bWJlclwtdHdvOwor5qC85aSWID4gZXNwZWNpYWxseTsKK+aatOihjCA+IHNhdmFnZVwtYWN0Owor5a+m5ZyoID4gaW5cLXJlYWxpdHk7CivotoXljYcgPiBleGFsdGF0aW9uOwor5Y+b6LuNID4gcmViZWxcLWFybXk7CivnjbjnqbQgPiBhbmltYWxcLWRlbjsKK+WtneaVrCA+IHRvXC1yZXNwZWN0Owor6K2m6ZCYID4gYWxhcm1cLWJlbGw7Civog5blrZAgPiBmYXRcLXBlcnNvbjsKK+WtmOaUviA+IHRvXC1kZXBvc2l0Owor6aST5q27ID4gc3RhcnZhdGlvbjsKK+S9teWQniA+IHN3YWxsb3dcLXVwOwor5a245b6SID4gYXBwcmVudGljZTsKK+aEn+a/gCA+IGFwcHJlY2lhdGU7Civmnb/mqIEgPiBzaGVldFwtcGlsZTsKK+aIkOWIhiA+IGluZ3JlZGllbnQ7CivlrrnlmaggPiByZWNlcHRhY2xlOwor6YeN6KaWID4gaW1wb3J0YW5jZTsKK+aClOe9qiA+IGNvbnZpY3Rpb247Civog73lipsgPiBjYXBhYmlsaXR5Owor5b+F6aCIID4gdG9cLWhhdmVcLXRvOwor6IKv5a6aID4gdG9cLWJlXC1zdXJlOwor5Lu75oCnID4gY2FwcmljaW91czsKK+eOi+eJjCA+IHRydW1wXC1jYXJkOwor5Y2X6Z2iID4gc291dGhcLXNpZGU7CivoloTojbcgPiBmaWVsZFwtbWludDsKK+mmrOWKmyA+IGhvcnNlcG93ZXI7CivmnIjnkIMgPiBcKHRoZVwpXC1tb29uOwor5ama57SEID4gZW5nYWdlbWVudDsKK+ePvuaIkCA+IHJlYWR5XC1tYWRlOwor6aC757mBID4gZnJlcXVlbnRseTsKK+itsOirliA+IHRvXC1jb21tZW50Owor5Lqk5pu/ID4gdG9cLXJlcGxhY2U7CivnpZ7np5ggPiBteXN0ZXJpb3VzOwor6aKo5r+VID4gcmhldW1hdGlzbTsKK+e+pOecviA+IHRoZVwtbWFzc2VzOwor56We56WVID4gbXlzdGVyaW91czsKK+WvhOS6iCA+IHRvXC1leHByZXNzOwor5LuB5oWIID4gYmVuZXZvbGVudDsKK+S7iuW+jCA+IGhlbmNlZm9ydGg7CivomZvmk6wgPiBmaWN0aXRpb3VzOwor6aGv54++ID4gYXBwZWFyYW5jZTsKK+Wkmum7qCA+IG11bHRpcGFydHk7CivkuI3nlbYgPiB1bnN1aXRhYmxlOwor5rKI6JC9ID4gc2lua1wsXC1mYWxsOwor6Kyb6L+wID4gdGFsa1wtYWJvdXQ7CivlrqPkvYggPiB0b1wtZGVjbGFyZTsKK+m8k+aOjCA+IHRvXC1hcHBsYXVkOwor5Lul5aSWID4gYXBhcnRcLWZyb207CivniIbpn7MgPiBzb25pY1wtYm9vbTsKK+S8vOS5jiA+IGFwcGFyZW50bHk7CivlpKfpq5QgPiBpblwtZ2VuZXJhbDsKK+epuuWFkiA+IHNwYXJlXC10aW1lOwor6aOf5oyHID4gZm9yZWZpbmdlcjsKK+eJtOinuCA+IGNvbnRyYWRpY3Q7CivnqIvluo8gPiBwcm9jZWR1cmVzOwor5byx6bueID4gd2Vha1wtcG9pbnQ7CivmmI7oqIAgPiBwcm9ub3VuY2VkOwor5pys5pyIID4gdGhpc1wtbW9udGg7Civlk7LlrbggPiBwaGlsb3NvcGh5Owor5Li55q+SID4gZXJ5c2lwZWxhczsKK+awo+ixoSA+IG1ldGVvcm9sZ3k7CivkupLmg6AgPiByZWNpcHJvY2FsOwor57i96auUID4gY29tcGxldGVseTsKK+iUrOiPnCA+IHZlZ2V0YWJsZXM7Civpo6/lupcgPiByZXN0YXVyYW50Owor5ZCr54eQID4gcGhvc3Bob3JpYzsKK+abtOatoyA+IGNvcnJlY3Rpb247Civpu5Hmnb8gPiBibGFja2JvYXJkOwor5b2Z6ZuGID4gdG9cLWNvbGxlY3Q7CivorJvop6MgPiB0b1wtZXhwbGFpbjsKK+mgkOefpSA+IGFudGljaXBhdGU7Civpg6jploAgPiBkZXBhcnRtZW50Owor5Lul5Y+KID4gYXNcLXdlbGxcLWFzOwor6IGv5ZCIID4gdG9cLWNvbWJpbmU7CivkuLvmoLwgPiBub21pbmF0aXZlOwor6YyE5Y+WID4gdG9cLXJlY3J1aXQ7CivmlrDpg44gPiBicmlkZWdyb29tOwor6ICM5b6MID4gYWZ0ZXJcLXRoYXQ7CivlrZflhbggPiBkaWN0aW9uYXJ5Owor5oKy5q2MID4gc2FkXC1tZWxvZHk7Civnvarni4AgPiBhY2N1c2F0aW9uOwor5q+U6YeNID4gcHJvcG9ydGlvbjsKK+izoOWEnyA+IGNvbXBlbnNhdGU7CivmtYHmlL4gPiBiYW5pc2htZW50Owor5Lq65Z2HID4gcGVyXC1jYXBpdGE7Civlj6/nlpEgPiBzdXNwaWNpb3VzOwor6IGe5ZCNID4gd2VsbFwta25vd247CivogIzlt7IgPiB0aGF0JydzXC1hbGw7CivmtbTlt74gPiBiYXRoXC10b3dlbDsKK+WQiueHiCA+IGNoYW5kZWxpZXI7CivogbLlg7kgPiByZXB1dGF0aW9uOwor6JaE54mHID4gdGhpblwtc2xpY2U7Civmm7TmlrAgPiB1cFwtdG9cLWRhdGU7CivpoavmoJcgPiB0b1wtdHJlbWJsZTsKK+acrOW6lSA+IGJhY2tncm91bmQ7Civpm4bpq5QgPiBjb2xsZWN0aXZlOwor5pWX6ZyyID4gXChvZlwtYVwtcGxvdDsKK+ippumplyA+IGV4cGVyaW1lbnQ7Civkurrlj6MgPiBwb3B1bGF0aW9uOwor5Y6Y57GzID4gY2VudGltZXRlcjsKK+atuOmghiA+IHN1Ym1pc3Npb247CivlpLHouaQgPiBiZVwtbWlzc2luZzsKK+mjveWSjCA+IHNhdHVyYXRpb247CivmraHpqLAgPiBqdWJpbGF0aW9uOwor5b6M6KOUID4gZGVzY2VuZGFudDsKK+awo+iJsiA+IGNvbXBsZXhpb247Civph5HniYwgPiBnb2xkXC1tZWRhbDsKK+S4jeacgyA+IGltcHJvYmFibGU7CivkuIrmnIggPiBsYXN0XC1tb250aDsKK+WQteaetiA+IHRvXC1xdWFycmVsOwor5oSP5aSWID4gdW5leHBlY3RlZDsKK+eip+e2oCA+IGRhcmtcLWdyZWVuOwor5LiN5pmCID4gZnJlcXVlbnRseTsKK+iAgeWllyA+IG9sZFwtdGhpbmdzOwor5Lim5oqKID4gdG9cLWluY2x1ZGU7Civoq4foq5YgPiB0b1wtZGlzY3VzczsKK+WPiueJqSA+IHRyYW5zaXRpdmU7Civpm7vou4ogPiB0cm9sbGV5YnVzOwor5qy66aiZID4gdG9cLWRlY2VpdmU7Civpoafmha4gPiBtaXNnaXZpbmdzOwor5Y+v5q+UID4gY29tcGFyYWJsZTsKK+S6i+WFiCA+IGluXC1hZHZhbmNlOwor6K2m54qsID4gcG9saWNlXC1kb2c7CivliZvpq5QgPiByaWdpZFwtYm9keTsKK+aZr+awoyA+IHByb3NwZXJpdHk7CivljZznra4gPiBkaXZpbmF0aW9uOwor5LiN5b+rID4gYmVcLXVuaGFwcHk7CivmmIznm5sgPiBwcm9zcGVyb3VzOwor5pS56YGOID4gdG9cLWNvcnJlY3Q7CivmlLnpgLIgPiB0b1wtaW1wcm92ZTsKK+S4jeW5uCA+IG1pc2ZvcnR1bmU7Civpm7voppYgPiB0ZWxldmlzaW9uOwor5b6M6ICFID4gdGhlXC1sYXR0ZXI7Civnuo/nuZ4gPiBpbnRlcnR3aW5lOwor5Yqg6YCfID4gYWNjZWxlcmF0ZTsKK+irs+e3tCA+IGNvbnZlcnNhbnQ7CivkuIDluqYgPiBmb3JcLWFcLXRpbWU7CivmraHov44gPiB0b1wtd2VsY29tZTsKK+WMluiCpSA+IGZlcnRpbGl6ZXI7Civloqjpj6EgPiBzdW5nbGFzc2VzOwor5Ymd6ZuiID4gXChvZlwtdGlzc3VlOwor5LiN5bGIID4gdW55aWVsZGluZzsKK+W9iOiXpSA+IGFtbXVuaXRpb247CivpoJDmlpkgPiBhbnRpY2lwYXRlOwor6aCC5pu/ID4gdG9cLXJlcGxhY2U7CivkuI3lrpogPiBpbmRlZmluaXRlOwor5LiN5a6JID4gaW50cmFucXVpbDsKK+iAgeS6uiA+IG9sZFwtcGVvcGxlOwor5pyf5YiKID4gcGVyaW9kaWNhbDsKK+efpeimuiA+IHBlcmNlcHRpb247CivlkIzmg4UgPiBjb21wYXNzaW9uOwor6YGp6YWNID4gYWRhcHRhdGlvbjsKK+WQiOaEjyA+IGFjY2VwdGFibGU7CivlpKfoh6MgPiBjaGFuY2VsbG9yOwor5ZCM5oCnID4gaG9tb3NleHVhbDsKK+aXpeebiiA+IGRheVwtYnlcLWRheTsKK+Wkp+iGvSA+IGNvdXJhZ2VvdXM7CivmnKzku70gPiBvbmUnJ3NcLWR1dHk7CivkuI3lpqUgPiBub3RcLXByb3BlcjsKK+acg+WPiyA+IG1lbWJlcnNoaXA7CivnubPntI0gPiBjb250cmlidXRlOwor5LiN5aSgID4gbm90XC1lbm91Z2g7Civnp4HkuIsgPiBpblwtcHJpdmF0ZTsKK+azouWzsCA+IHdhdmVcLWNyZXN0Owor5LiJ5aSpID4gdGhyZWVcLWRheXM7CivwoICNID4gZ2VuZXJhdGlvbjsKK+mdouebriA+IGFwcGVhcmFuY2U7Civlj43ml6UgPiBhbnRpXC1qYXBhbjsKK+W7uuitsCA+IHRvXC1wcm9wb3NlOwor5rOi5bCOID4gd2F2ZVwtZ3VpZGU7CivlqaLlpbMgPiBzbGF2ZVwtZ2lybDsKK+aykuaUtiA+IGNvbmZpc2NhdGU7Civlv6vmtLsgPiBnYXlcLFwtaGFwcHk7Civlj6/mgrIgPiBsYW1lbnRhYmxlOwor6KmV6Ki7ID4gY29tbWVudGFyeTsKK+WpiuWtkCA+IHByb3N0aXR1dGU7Civlv4XnhLYgPiBpbmV2aXRhYmxlOwor5Y2K55CDID4gaGVtaXNwaGVyZTsKK+mfv+aHiSA+IHJlc3BvbmRcLXRvOwor5b2Z57eoID4gY29sbGVjdGlvbjsKK+itsOacgyA+IHBhcmxpYW1lbnQ7CivlpKfntrEgPiBtYWluXC1wb2ludDsKK+aSnumomSA+IHRvXC1zd2luZGxlOwor54Ok6bSoID4gcm9hc3RcLWR1Y2s7CivmrYzoqZ4gPiBzb25nXC1seXJpYzsKK+S4puWFpSA+IG1lcmdlXC1pbnRvOwor6KiY6LyJID4gd3JpdGVcLWRvd247CivlvLHohIggPiB3ZWFrXC1wdWxzZTsKK+mhq+WLlSA+IHRvXC10cmVtYmxlOwor5Y6f5pysID4gb3JpZ2luYWxseTsKK+WQuOWQriA+IHRvXC1zdWNrXC1pbjsKK+eIhuegtCA+IHRvXC1ibG93XC11cDsKK+mBk+izgCA+IGNvbXBsaW1lbnQ7Civlj5blvpcgPiB0b1wtYWNxdWlyZTsKK+S4iuWNiiA+IGZpcnN0XC1oYWxmOwor5pWZ6IKyID4gdG9cLWVkdWNhdGU7CivkuI3li5UgPiBtb3Rpb25sZXNzOwor5ZCe5ZmsID4gdG9cLXN3YWxsb3c7CivopoHpu54gPiBtYWluXC1wb2ludDsKK+WPjeW+qSA+IHJlcGVhdGVkbHk7Civopb/pu54gPiB3ZXN0XC1wb2ludDsKK+S4puS4jSA+IG5vdFwtYXRcLWFsbDsKK+aWl+ecvCA+IGNyb3NzXC1leWVkOwor5rCj5rCbID4gYXRtb3NwaGVyZTsKK+ecvOmPoSA+IHNwZWN0YWNsZXM7CivkuI3lgpkgPiB1bnByZXBhcmVkOwor5qqi6amXID4gdG9cLWluc3BlY3Q7CivkuIDlho0gPiByZXBlYXRlZGx5Owor5oGr5ZqHID4gaW50aW1pZGF0ZTsKK+S4gOWFsSA+IGFsdG9nZXRoZXI7CivlpYnnjbsgPiBjb25zZWNyYXRlOwor5LiN5L6dID4gbm90XC1jb21wbHk7CivkuI3kvY8gPiByZXBlYXRlZGx5Owor5Y+q5aW9ID4gdG9cLWhhdmVcLXRvOwor6KiO6KuWID4gdG9cLWRpc2N1c3M7Civmlofnm7IgPiBpbGxpdGVyYXRlOwor5piO5pm6ID4gbm90XC11bndpc2U7Civlj6blpJYgPiBhZGRpdGlvbmFsOwor5pKe6YedID4gZmlyaW5nXC1waW47CivljZfmpbUgPiBzb3V0aFwtcG9sZTsKK+S4gOS7oyA+IGdlbmVyYXRpb247CivmlLbnuK4gPiBwdWxsXC1iYWNrOwor5aSa55aRID4gc2tlcHRpY2FsOwor5ZCI5YqbID4gY29vcGVyYXRlOwor54iG54K4ID4gZXhwbG9zaW9uOwor5Ymy6I2JID4gbW93XC1ncmFzczsKK+iuiuWljyA+IHZhcmlhdGlvbjsKK+mgmOWPlyA+IHRvXC1hY2NlcHQ7Civli5Xnm6ogPiBjb21tb3Rpb247Civlj6/lk4AgPiBtaXNlcmFibHk7Civoj6DomL8gPiBwaW5lYXBwbGU7CivljprluqYgPiB0aGlja25lc3M7CivpgJ/oqJggPiBzaG9ydGhhbmQ7CivlvpDmraUgPiB0b1wtc3Ryb2xsOwor6KW/6Z2iID4gd2VzdFwtc2lkZTsKK+aRmOmZpCA+IHRvXC1leGNpc2U7CivorablrpggPiBjb25zdGFibGU7CivlkIzkvLQgPiBjb21wYW5pb247CivlkI3kurogPiBwZXJzb25hZ2U7CivolJPlu7YgPiB0b1wtZXh0ZW5kOwor5ZCM5LqLID4gY29sbGVhZ3VlOwor5Y2K5peXID4gaGFsZlwtbWFzdDsKK+mHkeWMoCA+IGdvbGRzbWl0aDsKK+WQjOS4gCA+IGlkZW50aWNhbDsKK+eisOW3pyA+IGJ5XC1jaGFuY2U7Civmma7lj4ogPiB3aWRlc3BlYWQ7CivoqK3nva4gPiB0b1wtc2V0XC11cDsKK+eHkueHrCA+IGJ1cm5cLWRvd247CivmmI7lubQgPiBuZXh0XC15ZWFyOwor5Y+k5YW4ID4gY2xhc3NpY2FsOwor5Y+r5YGaID4gYmVcLWNhbGxlZDsKK+e2oOiMtiA+IGdyZWVuXC10ZWE7CivliKXomZUgPiBlbHNld2hlcmU7Civov7Doqp4gPiBwcmVkaWNhdGU7CivpmLLooZsgPiB0b1wtZGVmZW5kOwor5pio5aSpID4geWVzdGVyZGF5Owor5pWZ54i2ID4gZ29kZmF0aGVyOwor5Y+X5YOxID4gbWVyY2VuYXJ5Owor5pa85pivID4gdGhlcmV1cG9uOwor6Kqe5rqQID4gZXR5bW9sb2d5Owor6Kqq5rOVID4gc3RhdGVtZW50Owor5Z+O6ZaAID4gY2l0eVwtZ2F0ZTsKK+mdiOaVjyA+IHNlbnNpdGl2ZTsKK+WKqeeQhiA+IGFzc2lzdGFudDsKK+ioreeriyA+IHRvXC1zZXRcLXVwOwor6KuW5pa3ID4gaW5mZXJlbmNlOwor5Y+X5LqLID4gcmVjZXBpZW50Owor54as54WOID4gc3VmZmVyaW5nOwor5YiG6JmfID4gc2VtaWNvbG9uOwor5Y6f5ZGKID4gY29tcGxhaW50Owor55m96a2aID4gd2hpdGVmaXNoOwor5aSa5qijID4gZGl2ZXJzaXR5Owor5aSa5qihID4gbXVsdGltb2RlOwor6ZaL6aCtID4gYmVnaW5uaW5nOwor54Sh6IO9ID4gaW5hYmlsaXR5Owor55m96auUID4gbGVhblwtdHlwZTsKK+aomemrmCA+IGVsZXZhdGlvbjsKK+WmluWqmiA+IHNlZHVjdGl2ZTsKK+eEoeiBsiA+IG5vaXNlbGVzczsKK+WIuue5oSA+IGVtYnJvaWRlcjsKK+WNgeW5tCA+IHRlblwteWVhcnM7CivljYrls7YgPiBwZW5pbnN1bGE7CivpgKPnuowgPiBjb250aW5vdXM7Civljp/liYcgPiBwcmluY2lwbGU7CivphK3lt54gPiB6aGVuZ3pob3U7CivoqIjnrZYgPiBzdHJhdGFnZW07CivlupXnt5ogPiB1bmRlcmxpbmU7CivploPpm7sgPiBsaWdodG5pbmc7CivlvJXmuKEgPiBleHRyYWRpdGU7CivmlZnmr40gPiBnb2Rtb3RoZXI7Civlo4HniJAgPiBmaXJlcGxhY2U7CivmlofmmI4gPiBjaXZpbGl6ZWQ7Civnm7ToprogPiBpbnR1aXRpb247Civlo4Hnh4ggPiB3YWxsXC1sYW1wOwor55m86Z+zID4gcHJvbm91bmNlOwor5Y6Y5YWLID4gY2VudGlncmFtOwor54Sh57GfID4gc2NvdW5kcmVsOwor5Yqg5rexID4gdG9cLWRlZXBlbjsKK+Wft+ihjCA+IGltcGxlbWVudDsKK+mbueaatCA+IGhhaWxzdG9ybTsKK+eiuuS/oSA+IGNvbmZpZGVudDsKK+WloOWumiA+IGVzdGFibGlzaDsKK+mCo+aooyA+IHRoYXRcLWtpbmQ7Civlhazph4wgPiBraWxvbWV0ZXI7CivoqqDmka8gPiBzaW5jZXJlbHk7Civlt67ot50gPiBkaXNwYXJpdHk7Civopa/oo5kgPiBwZXR0aWNvYXQ7CivpsL7ohqAgPiBpc2luZ2xhc3M7CivorYnku7YgPiBwYXBlcndvcms7CivntLDoj4wgPiBiYWN0ZXJpYWw7CivoiqzpppkgPiBmcmFncmFuY2U7CivljaDljZwgPiB0b1wtZGl2aW5lOwor6JK85aSpID4gZmlybWFtZW50Owor57ep5rKWID4gdG9cLWJ1ZmZlcjsKK+mBuOa0viA+IHNldFwtYXBhcnQ7CivmlaPmkq0gPiB0b1wtc3ByZWFkOwor5aSn5b+XID4gaGlnaFwtYWltczsKK+i8lOmfsyA+IGNvbnNvbmFudDsKK+W8teaPmiA+IHB1YmxpY2l6ZTsKK+ino+eivCA+IHRvXC1kZWNvZGU7Civmkq3nqK4gPiBzb3dcLXNlZWRzOwor5YyW5a24ID4gY2hlbWlzdHJ5Owor5aCx57SZID4gbmV3c3BhcGVyOwor54Sh55+lID4gaWdub3JhbmNlOwor5o6l6aeBID4gdG9cLWFjY2VzczsKK+W+iOWkmiA+IHZlcnlcLW1hbnk7CivoqqDmhI8gPiBzaW5jZXJpdHk7Civlu6Pms5sgPiBleHRlbnNpdmU7Civps7PmoqggPiBwaW5lYXBwbGU7Civpm5nmlrkgPiBiaWxhdGVyYWw7CivplbfpgaAgPiBsb25nXC10ZXJtOwor5Y2D5ZGoID4ga2lsb2hlcnR6Owor6YGO5r++ID4gdG9cLWZpbHRlcjsKK+Wlh+WmmSA+IGZhbnRhc3RpYzsKK+WGsOiTiyA+IGljZVwtc2hlZXQ7CivpgZnmuKwgPiB0ZWxlbWV0cnk7CivovrLoiI0gPiBmYXJtaG91c2U7CivntIXok64gPiByZWRcLWxvdHVzOwor5YWx6K2YID4gY29uc2Vuc3VzOwor6Ly46YCBID4gdHJhbnNwb3J0Owor5aSn5bCPID4gZGltZW5zaW9uOwor5aSn5a62ID4gYXV0aG9yaXR5Owor54it5Y+WID4gZmlnaHRcLWZvcjsKK+avj+WkqSA+IGV2ZXJ5XC1kYXk7CivmlLvmk4ogPiB0b1wtYXR0YWNrOwor57SF6Iy2ID4gYmxhY2tcLXRlYTsKK+aWh+WtlyA+IGNoYXJhY3RlcjsKK+W4uOe2oCA+IGV2ZXJncmVlbjsKK+aumOW7oiA+IGRlZm9ybWl0eTsKK+maseaZpiA+IG9ic2N1cml0eTsKK+eFp+aooyA+IGFzXC1iZWZvcmU7CivmlrnlkJEgPiBkaXJlY3Rpb247CivnhLDngasgPiBmaXJld29ya3M7CivmlZHmgakgPiBzYWx2YXRpb247CivlpKnlpKkgPiBldmVyeVwtZGF5Owor5b6M5YukID4gbG9naXN0aWNzOwor5Yqp5omLID4gYXNzaXN0YW50Owor5YWn6KSyID4gdW5kZXJ3ZWFyOwor6L6m572qID4gdG9cLXB1bmlzaDsKK+imgee3iiA+IGltcG9ydGFudDsKK+awkeS4uyA+IGRlbW9jcmFjeTsKK+WLmeWvpiA+IHByYWdtYXRpYzsKK+aOqOmKtyA+IHRvXC1tYXJrZXQ7CivlvZnloLEgPiB0b1wtcmVwb3J0Owor6KaB57SgID4gZXNzZW50aWFsOwor5aSi5aKDID4gZHJlYW1sYW5kOwor6Kqy5aCCID4gY2xhc3Nyb29tOwor6YG45pOHID4gdG9cLXNlbGVjdDsKK+WgseeVjCA+IHRoZVwtcHJlc3M7CivnmbzoqIAgPiBzdGF0ZW1lbnQ7CivljYHkuIMgPiBzZXZlbnRlZW47Civngavol6UgPiBndW5wb3dkZXI7CivoqLrmlrcgPiBkaWFnbm9zaXM7Civmr6vlhYsgPiBtaWxsaWdyYW07Civlia/mnKwgPiBkdXBsaWNhdGU7CivoibHpm6MgPiBkaWZmaWN1bHQ7Civlu6Pmkq0gPiBicm9hZGNhc3Q7CivmlZflsYAgPiBsb3N0XC1nYW1lOwor6YOK5aSWID4gb3V0c2tpcnRzOwor5pWZ5a6kID4gY2xhc3Nyb29tOwor55m96KCfID4gd2hpdGVcLXdheDsKK+WHuuePviA+IHRvXC1hcHBlYXI7CivpgJDmvLggPiBncmFkdWFsbHk7CivlhrDns5UgPiBpY2VcLWNyZWFtOwor5YWB6KixID4gdG9cLXBlcm1pdDsKK+W+jOS7oyA+IHBvc3Rlcml0eTsKK+iJpumVtyA+IGNvbW1hbmRlcjsKK+ani+mAoCA+IHN0cnVjdHVyZTsKK+WLvuWKgyA+IHRvXC1za2V0Y2g7Civlop7mj7QgPiByZWluZm9yY2U7CivnhKHmr5QgPiBtYXRjaGxlc3M7CivmlZnlo6sgPiBjaHVyY2htYW47CivmrKHmlbggPiBmcmVxdWVuY3k7CivlpKflipsgPiBlbmVyZ2V0aWM7Civlo6/lpKcgPiB0b1wtZXhwYW5kOwor5qyK5p+EID4gYXV0aG9yaXR5Owor6YG15b6qID4gdG9cLWZvbGxvdzsKK+mBqeaEjyA+IGFncmVlYWJsZTsKK+iqv+WBnCA+IHJlY29uY2lsZTsKK+W5sua2iSA+IGludGVyZmVyZTsKK+WLpOWLiSA+IGRpbGlnZW5jZTsKK+asvuW+hSA+IGVudGVydGFpbjsKK+eZvOiKvSA+IGdlcm1pbmF0ZTsKK+Wkp+S+vyA+IGV4Y3JlbWVudDsKK+aSpeatoyA+IHNldFwtcmlnaHQ7Civlo73lkb0gPiBsaWZlXC1zcGFuOwor57aT5paHID4gc2NyaXB0dXJlOwor5pWy5YWlID4gdG9cLWtleVwtaW47CivpmorlvaIgPiBmb3JtYXRpb247CivlpKnkuIogPiBjZWxlc3RpYWw7CivovqbnkIYgPiB0b1wtaGFuZGxlOwor6Ki75a6aID4gYmVcLWRvb21lZDsKK+eEoeaVuCA+IGNvdW50bGVzczsKK+aUtuWbniA+IHRvXC1yZWdhaW47CivlpJbkuqQgPiBkaXBsb21hY3k7CivpgY7luqYgPiBleGNlZWRpbmc7CivliKTmlrcgPiB0b1wtZGVjaWRlOwor5pON5oyBID4gdG9cLW1hbmFnZTsKK+aqoua4rCA+IHRvXC1kZXRlY3Q7Civnn67lh7MgPiBsb3dcLXN0b29sOwor6ZqO5bGkID4gaGllcmFyY2h5Owor6Iez6auYID4gcGFyYW1vdW50Owor5o6o6JamID4gcmVjb21tZW5kOwor5o6S6KGMID4gc2VuaW9yaXR5Owor5YmN5b6AID4gbGVhdmVcLWZvcjsKK+aVmeWEgCA+IG9yZGluYW5jZTsKK+e1kOaniyA+IHN0cnVjdHVyZTsKK+Wis+WikyA+IHNlcHVsY2hlcjsKK+aSreaUviA+IGJyb2FkY2FzdDsKK+WFrOeniSA+IGtpbG9saXRlcjsKK+mYu+aSkyA+IHRvXC10aHdhcnQ7CivlgrPpgIEgPiB0b1wtY29udmV5Owor6YG65ZuRID4gdGVzdGFtZW50Owor5q2h5ZG8ID4gY2hlZXJcLWZvcjsKK+WCs+i8uCA+IHRyYW5zcG9ydDsKK+W5suaTviA+IGludGVyZmVyZTsKK+aOqOiNkCA+IHJlY29tbWVuZDsKK+mBiuWuoiA+IHRyYXZlbGxlcjsKK+WfjueJhiA+IGNpdHlcLXdhbGw7CivlhafnorwgPiB0b1wtZW5jb2RlOwor5pGn5q6YID4gdG9cLXJhdmFnZTsKK+aSnuaTiiA+IHRvXC1zdHJpa2U7CivliqDliocgPiBhZ2dyYXZhdGU7CivpmLvmipcgPiBpbXBlZGFuY2U7CivmjZDotIggPiB0b1wtZG9uYXRlOwor6Ieq6aGYID4gdm9sdW50YXJ5Owor5qi555quID4gdHJlZVwtYmFyazsKK+e2k+W6piA+IGxvbmdpdHVkZTsKK+maqOWToSA+IGF0dGVuZGFudDsKK+WFieethiA+IGxpZ2h0XC1wZW47CivloLHmlKQgPiBuZXdzc3RhbmQ7Civlh7rmlrwgPiBiZVwtZHVlXC10bzsKK+aVkeS4liA+IHNhbHZhdGlvbjsKK+aTtOWkpyA+IHRvXC1leHBhbmQ7CivpgY7lpJogPiBleGNlc3NpdmU7CivnhKHlvaIgPiBpbnZpc2libGU7Civoo53nva4gPiBlcXVpcG1lbnQ7CivmlYXkuosgPiBuYXJyYXRpdmU7CivlhbHnlKIgPiBjb21tdW5pc3Q7Civnr6npgbggPiB0b1wtZmlsdGVyOwor5o6o57+7ID4gb3ZlcnRocm93Owor6Zmi5a2QID4gY291cnR5YXJkOwor5ZyS6JedID4gZ2FyZGVuaW5nOwor5buj5Y2aID4gZXh0ZW5zaXZlOwor5qyK5aiBID4gYXV0aG9yaXR5Owor5YqD5YiGID4gdG9cLWRpdmlkZTsKK+WCs+iomCA+IGJpb2dyYXBoeTsKK+i/t+aDkSA+IHRvXC1wdXp6bGU7CivliqDkuIogPiB0b1wtcHV0XC1pbjsKK+W7tuS8uCA+IHRvXC1leHRlbmQ7CivpgJrlrrUgPiBvdmVybmlnaHQ7CivoibHoi6YgPiBkaWZmaWN1bHQ7Civlu6PlgrMgPiBwcm9wYWdhdGU7CivnmbznlJ8gPiB0b1wtaGFwcGVuOwor55mx55iTID4gcGFyYWx5c2lzOwor57WE5oiQID4gY29tcG9uZW50Owor6ZqK5YiXID4gZm9ybWF0aW9uOwor5o6l566hID4gdGFrZVwtb3ZlcjsKK+ioreWCmSA+IGVxdWlwbWVudDsKK+mahuWGrCA+IG1pZHdpbnRlcjsKK+WHueW6piA+IGNvbmNhdml0eTsKK+a8q+mVtyA+IHZlcnlcLWxvbmc7CivnlYzpnaIgPiBpbnRlcmZhY2U7CivlibXkvZwgPiB0b1wtY3JlYXRlOwor6Zmq5ZCMID4gYWNjb21wYW55Owor5pO05YWFID4gdG9cLWV4cGFuZDsKK+aMh+iyrCA+IGNyaXRpY2l6ZTsKK+e2nOWQiCA+IGNvbXBvc2l0ZTsKK+aKq+mcsiA+IHRvXC1yZXZlYWw7CivnnIvlvoUgPiBsb29rXC11cG9uOwor6Zm35YWlID4gc2lua1wtaW50bzsKK+ihsOiQvSA+IGRlY29tcG9zZTsKK+WJm+WBpSA+IGVuZXJnZXRpYzsKK+aSpeWljyA+IHBpenppY2F0bzsKK+mAhuWigyA+IGFkdmVyc2l0eTsKK+i/q+WusyA+IHBlcnNlY3V0ZTsKK+mAsuWMliA+IGV2b2x1dGlvbjsKK+i+r+aJjSA+IGVsb3F1ZW5jZTsKK+iHquiyoCA+IGNvbmNlaXRlZDsKK+W4guaUvyA+IG11bmljaXBhbDsKK+WEvOeEtiA+IGp1c3RcLWxpa2U7CivntZXlppkgPiBleHF1aXNpdGU7CivmipXpmY0gPiBzdXJyZW5kZXI7CivnsL3nq6AgPiBzaWduYXR1cmU7CivpmarkvLQgPiBhY2NvbXBhbnk7CivntoHljKogPiBraWRuYXBwZXI7CivnhKHlipsgPiBwb3dlcmxlc3M7Civmk5Tkv50gPiBndWFyYW50ZWU7CivmjqjnkIYgPiByZWFzb25pbmc7Civlm6DogIwgPiB0aGVyZWZvcmU7CivpgIblkJEgPiBiYWNrd2FyZHM7Civot5/pmqggPiB0b1wtZm9sbG93Owor5oyJ6JqKID4gYW5vcGhlbGVzOwor5qij5qmfID4gcHJvdG90eXBlOwor5Yio5YawID4gd2F0ZXJcLWljZTsKK+W4tuWvrCA+IGJhbmR3aWR0aDsKK+eVsOitsCA+IG9iamVjdGlvbjsKK+imj+WumiA+IHByb3Zpc2lvbjsKK+WxlemWiyA+IHRvXC11bmZvbGQ7CivovKrmtYEgPiBhbHRlcm5hdGU7CivlgrPntbEgPiB0cmFkaXRpb247CivlgY/oposgPiBwcmVqdWRpY2U7CivlnLDnkIYgPiBnZW9ncmFwaHk7CivlnLDnkIMgPiB0aGVcLWVhcnRoOwor6ZmN5L2OID4gdG9cLXJlZHVjZTsKK+S/nemaqiA+IGluc3VyYW5jZTsKK+S/nemanCA+IHRvXC1lbnN1cmU7CivloLTlkIggPiBzaXR1YXRpb247CivloLHlkYogPiB0b1wtaW5mb3JtOwor57Sz5aOrID4gZ2VudGxlbWFuOwor5YWs5paXID4gZGVjYWxpdGVyOwor6YCd5LiWID4gcGFzc1wtYXdheTsKK+i/lOWbniA+IHJldHVyblwtdG87CivpmYTku7YgPiBlbmNsb3N1cmU7CivliIblibIgPiB0b1wtY3V0XC11cDsKK+mVt+acnyA+IGxvbmdcLXRlcm07CivmiYHpqqggPiBmbGF0XC1ib25lOwor5L+d6Y+iID4gYm9keWd1YXJkOwor6LeR6Yy2ID4gc3RvcHdhdGNoOwor57SZ5aS+ID4gcGFwZXJjbGlwOwor55m85piOID4gdG9cLWludmVudDsKK+aooeaTrCA+IGltaXRhdGlvbjsKK+a/gOeZvCA+IHRvXC1hcm91c2U7Civlho3luqYgPiBvbmNlXC1tb3JlOwor57O+5a+fID4gdG9cLXBpY2tldDsKK+aLt+iKsSA+IHRvXC1lbWJvc3M7CivmvZvoiYcgPiBzdWJtYXJpbmU7Civov7fkvY8gPiBmYXNjaW5hdGU7Civoib7ngrcgPiBtb3hhXC1jb25lOwor5Zua56aBID4gY2FwdGl2aXR5Owor5YWn5oiwID4gY2l2aWxcLXdhcjsKK+S+v+mWgCA+IHNpZGVcLWRvb3I7Civoo4HmuJsgPiB0b1wtcmVkdWNlOwor6L+35LqCID4gY29uZnVzaW9uOwor5ZyN54mGID4gZW5jbG9zdXJlOwor55u45ZCMID4gaWRlbnRpY2FsOwor6KaP5Yu4ID4gdG9cLWFkdmlzZTsKK+ihqOeariA+IGVwaWRlcm1pczsKK+ihqOeZvSA+IHZpbmRpY2F0ZTsKK+aItumZkCA+IHRocmVzaG9sZDsKK+eci+WBmiA+IHJlZ2FyZFwtYXM7CivmjZDnjbsgPiB0b1wtZG9uYXRlOwor5YWH5omLID4gYXNzYWlsYW50Owor6J+R6J6CID4gY29ja3JvYWNoOwor5a+s6aC7ID4gYnJvYWRiYW5kOwor6KW/5Y2XID4gc291dGh3ZXN0Owor5L2/6aSoID4gY29uc3VsYXRlOwor6KW/5YyXID4gbm9ydGh3ZXN0Owor5qOJ6KKrID4gY29tZm9ydGVyOwor57K+5benID4gZWxhYm9yYXRlOwor5baE5pawID4gYnJhbmRcLW5ldzsKK+aJk+mAsiA+IHRvXC1icmVhY2g7Civlhazlr7ggPiBkZWNpbWV0ZXI7Civmib/oqo0gPiByZWNvZ25pemU7Civlhazlr5MgPiBhcGFydG1lbnQ7CivluLjku7sgPiBwZXJtYW5lbnQ7CivlhYnlvakgPiBob25vcmFibGU7Civkv53orbcgPiB0b1wtZGVmZW5kOwor5oyH56S6ID4gcG9pbnRcLW91dDsKK+eXheeQhiA+IHBhdGhvbG9neTsKK+i+m+WLniA+IGxhYm9yaW91czsKK+aQjeWjniA+IHRvXC1kYW1hZ2U7Civkv53oqLwgPiBndWFyYW50ZWU7CivlmInoqLEgPiBmYXZvcmFibGU7CivlhavlpKkgPiBlaWdodFwtZGF5Owor5ouS57WVID4gdG9cLXJlZnVzZTsKK+imgeS4jSA+IG90aGVyd2lzZTsKK+aomeWumiA+IGRlbWFyY2F0ZTsKK+iGqOiEuSA+IHRvXC1leHBhbmQ7CivovLvlsIQgPiByYWRpYXRpb247CivmjpLmlL4gPiBkaXNjaGFyZ2U7Civpq5Tnj74gPiB0b1wtZW1ib2R5Owor6KGw5ribID4gdG9cLXdlYWtlbjsKK+exg+advyA+IGJhY2tib2FyZDsKK+mmrOmerSA+IGhvcnNld2hpcDsKK+iLpuWigyA+IGdyaWV2YW5jZTsKK+eVouernyA+IGFmdGVyXC1hbGw7CivkvY7pmo4gPiBsb3dcLWxldmVsOwor5omA6KyCID4gc29cLWNhbGxlZDsKK+a9sOeImyA+IHRvXC1mZXN0ZXI7CivlhLLlrZggPiBzdG9ja3BpbGU7CivohoDoh4IgPiB1cHBlclwtYXJtOwor54CR5biDID4gd2F0ZXJmYWxsOwor5o6b5b+1ID4gY29uY2VybmVkOwor5YWo5ZCMID4gaWRlbnRpY2FsOwor6L2f5YuVID4gc2Vuc2F0aW9uOwor6Ie654eIID4gZGVza1wtbGFtcDsKK+idtOidtiA+IGJ1dHRlcmZseTsKK+eUnOe+jiA+IHN3ZWV0bmVzczsKK+S8tOmaqCA+IHRvXC1mb2xsb3c7Civlr6bos6ogPiBzdWJzdGFuY2U7CivlhazlhakgPiBoZWN0b2dyYW07CivmpI3niakgPiBib3RhbmljYWw7CivnqbrpmLIgPiBhaXJcLWZvcmNlOwor5YWl5L61ID4gdG9cLWludmFkZTsKK+WFi+WItiA+IHJlc3RyYWludDsKK+WFrOS4iCA+IGRlY2FtZXRlcjsKK+i8uOWHuiA+IHRvXC1leHBvcnQ7Civmipjno6ggPiBwZXJzZWN1dGU7CivovLjlhaUgPiB0b1wtaW1wb3J0Owor5a+m6KGMID4gaW1wbGVtZW50Owor562J562JID4gZXRcLWNldGVyYTsKK+a4hemZpCA+IGVsaW1pbmF0ZTsKK+aJk+iBvSA+IGFza1wtYWJvdXQ7Civooajmj5ogPiB0b1wtcHJhaXNlOwor5r+A5oCSID4gaW5mdXJpYXRlOwor5omT57+7ID4gb3ZlcnRocm93Owor5YGc5rOKID4gYW5jaG9yYWdlOwor6Jy76JyTID4gZHJhZ29uZmx5Owor5ry45ry4ID4gZ3JhZHVhbGx5Owor5a2Q6Z+zID4gY29uc29uYW50Owor5ryy5r2uID4gaGlnaFwtdGlkZTsKK+WutuitnCA+IGdlbmVhbG9neTsKK+mpmueVsCA+IGFtYXplbWVudDsKK+i8lOWKqSA+IHRvXC1hc3Npc3Q7Civmj5DkvpsgPiB0b1wtc3VwcGx5Owor56m/6YCPID4gcGVuZXRyYXRlOwor5o6l5Y+jID4gaW50ZXJmYWNlOwor5o6l5Y+XID4gdG9cLWFjY2VwdDsKK+mrlOaTjSA+IGd5bW5hc3RpYzsKK+S+v+euiyA+IG5vdGVwYXBlcjsKK+epuui7jSA+IGFpclwtZm9yY2U7CivotoXoga8gPiBoeXBlcmxpbms7CivogZbppJAgPiBzYWNyYW1lbnQ7Civoo53lgpkgPiBlcXVpcG1lbnQ7CivmibnnmbwgPiB3aG9sZXNhbGU7CivmvLjmrKEgPiBncmFkdWFsbHk7CivotpXnt4ogPiBodXJyaWVkbHk7CivpqqjmnrYgPiBmcmFtZXdvcms7Civku4vpnaIgPiBpbnRlcmZhY2U7CivlgbXmjqIgPiBkZXRlY3RpdmU7Civoh6jmmYIgPiB0ZW1wb3Jhcnk7CivmjJHmiLAgPiBjaGFsbGVuZ2U7CivooqvlkYogPiBkZWZlbmRhbnQ7CivmjpLlh7ogPiBkaXNjaGFyZ2U7Civmi5Tmn5MgPiBkaXNjaGFyZ2U7Civosp3poZ4gPiBzaGVsbGZpc2g7CivlnKjlhacgPiBpbmNsdWRpbmc7Civmi7/miYsgPiBleHBlcnRcLWluOwor56uK6IG9ID4gZWF2ZXNkcm9wOwor5a6/6IiNID4gZG9ybWl0b3J5Owor5bGx5rC0ID4gbGFuZHNjYXBlOwor5Zub5aSpID4gZm91clwtZGF5czsKK+aMuuWlvSA+IHZlcnlcLWdvb2Q7CivnsL3lhaUgPiB0b1wtbG9nXC1vbjsKK+mmrOiDjCA+IGhvcnNlYmFjazsKK+mpleawoyA+IGFycm9nYW5jZTsKK+eWkeW/gyA+IHN1c3BpY2lvbjsKK+a4uuiMqyA+IHVuY2VydGFpbjsKK+a/gOWLtSA+IGVuY291cmFnZTsKK+a/gOWLlSA+IHRvXC1leGNpdGU7CivmiJDnq4sgPiBlc3RhYmxpc2g7Civmt7voo5wgPiBmaWxsXC1cKHVwXCk7Civkv67mraMgPiB0b1wtcmV2aXNlOwor5p+Q6JmVID4gc29tZXdoZXJlOwor6LOT6KmeID4gcHJlZGljYXRlOwor56ix6K6aID4gdG9cLXByYWlzZTsKK+S9jue0miA+IGxvd1wtbGV2ZWw7CivosqjovKogPiBmcmVpZ2h0ZXI7Civpq5TlnJggPiBjb21tdW5pdHk7CivmpbXlhbYgPiBleHRyZW1lbHk7CivmirXmipcgPiB0b1wtcmVzaXN0Owor6aKx6aKoID4gaHVycmljYW5lOwor5Ly457iuID4gdG9cLWV4dGVuZDsKK+iar+iakyA+IGVhcnRod29ybTsKK+i0lue9qiA+IGF0b25lbWVudDsKK+WvteeJqSA+IGhvdXNlXC1wZXQ7CivogZboqpUgPiBjaHJpc3RtYXM7CivlgYflrpogPiB0b1wtYXNzdW1lOwor6KGM5YuVID4gb3BlcmF0aW9uOwor5Li76auUID4gbWFpblwtcGFydDsKK+aJi+azlSA+IHRlY2huaXF1ZTsKK+a2iOmBoyA+IGFtdXNlbWVudDsKK+alteS6hiA+IGV4dHJlbWVseTsKK+WwsealrSA+IGdldFwtYVwtam9iOwor55aG5Z+fID4gdGVycml0b3J5Owor5qGM54eIID4gZGVza1wtbGFtcDsKK+eWhuWcnyA+IHRlcnJpdG9yeTsKK+aJv+aTlCA+IHVuZGVydGFrZTsKK+iGveWwjyA+IGNvd2FyZGljZTsKK+WxrOaApyA+IGF0dHJpYnV0ZTsKK+mrmOWDuSA+IGV4cGVuc2l2ZTsKK+S4u+mggSA+IGhvbWVcLXBhZ2U7Civnvo7pupcgPiBiZWF1dGlmdWw7CivmnIPpnaIgPiBtZWV0XC13aXRoOwor5oiQ54K6ID4gdG9cLWJlY29tZTsKK+S6pOiqvCA+IGNvbW11bmlvbjsKK+mMpue5oSA+IGJlYXV0aWZ1bDsKK+a9m+WKmyA+IHBvdGVudGlhbDsKK+WxheaJgCA+IHJlc2lkZW5jZTsKK+WtuOerpSA+IHNjaG9vbGJveTsKK+iHquWLlSA+IGF1dG9tYXRpYzsKK+igleWLlSA+IHRvXC13aWdnbGU7CivmiZPmlZcgPiB0b1wtZGVmZWF0Owor6LGq6LGsID4gcG9yY3VwaW5lOwor5ZWf55m8ID4gZW5saWdodGVuOwor5rWB6YePID4gZmxvd1wtcmF0ZTsKK+iznOe1piA+IHRvXC1iZXN0b3c7Civmi5vli58gPiB0b1wtcmVjdWl0Owor5a6M55WiID4gdG9cLWZpbmlzaDsKK+WwjeaWvCA+IHJlZ2FyZGluZzsKK+iHs+S7iiA+IHVudGlsXC1ub3c7Civnv7vora8gPiB0cmFuc2xhdGU7CivkuIrpnaIgPiBvblwtdG9wXC1vZjsKK+S6lOiZnyA+IHRoZVwtZmlmdGg7Civkv6Hlt64gPiBtZXNzZW5nZXI7CivohoDlrZAgPiB1cHBlclwtYXJtOwor5ouG5Y24ID4gdG9cLXVubG9hZDsKK+ibi+eZvSA+IGVnZ1wtd2hpdGU7CivlkJ7po58gPiB0b1wtZGV2b3VyOwor5qGG5p62ID4gZnJhbWV3b3JrOwor6IOD54KOID4gZ2FzdHJpdGlzOwor5bCN5oqXID4gd2l0aHN0YW5kOwor5Zmo5YW3ID4gaW1wbGVtZW50Owor6ISr5o6JID4gc3RyaXBcLW9mZjsKK+mmmea4ryA+IGhvbmdcLWtvbmc7Civlr6bmmYIgPiByZWFsXC10aW1lOwor6IK654KOID4gcG5ldW1vbmlhOwor5oW256WdID4gY2VsZWJyYXRlOwor5a6w5q66ID4gc2xhdWdodGVyOwor5rWq6JWpID4gdG9cLWxvaXRlcjsKK+ixquiPryA+IGx1eHVyaW91czsKK+afkOeJqSA+IHNvbWV0aGluZzsKK+a0peiyvCA+IGFsbG93YW5jZTsKK+iCneeCjiA+IGhlcGF0aXRpczsKK+a2iOiAlyA+IHRvXC11c2VcLXVwOwor5LiK6LyJID4gdG9cLXVwbG9hZDsKK+iYreiKsSA+IGN5bWJpZGl1bTsKK+abuOiomCA+IHNlY3JldGFyeTsKK+a1quiIuSA+IHN3aW5nYm9hdDsKK+Wwj+WvqyA+IGxvd2VyY2FzZTsKK+eUqOWFtyA+IGFwcGxpYW5jZTsKK+WPpOmiqCA+IGFudGlxdWl0eTsKK+WuieathyA+IGdvXC10b1wtYmVkOwor5a625pePID4gaG91c2Vob2xkOwor5L2V5pWFID4gd2hlcmVmb3JlOwor6IWz5Y2wID4gZm9vdHByaW50Owor55O35ZmoID4gY2hpbmF3YXJlOwor56ul5bm0ID4gY2hpbGRob29kOwor5L2U5pOaID4gdG9cLW9jY3VweTsKK+i1t+W6iiA+IHRvXC1nZXRcLXVwOwor5a+s5bi2ID4gYnJvYWRiYW5kOwor5L6G5bm0ID4gbmV4dFwteWVhcjsKK+S7iueUnyA+IHRoaXNcLWxpZmU7CivpoLvpgZMgPiBmcmVxdWVuY3k7CivmnKzogbcgPiBvbmUnJ3NcLWpvYjsKK+WxgOWLoiA+IHNpdHVhdGlvbjsKK+iDjOaWnCA+IGFudGljbGluZTsKK+aatOi6gSA+IGlyYXNjaWJsZTsKK+axoOm5vSA+IGxha2VcLXNhbHQ7CivkuI3oqLEgPiBub3RcLWFsbG93Owor5ZWG5qiZID4gdHJhZGVtYXJrOwor6aOv56KXID4gcmljZVwtYm93bDsKK+aZpOmdoiA+IGludGVydmlldzsKK+ahlOWtkCA+IHRhbmdlcmluZTsKK+mHjemWiyA+IHRvXC1yZW9wZW47CivororpnakgPiB0cmFuc2Zvcm07CivmiKrlpaogPiBpbnRlcmNlcHQ7Civmt7HmsLQgPiBkZWVwd2F0ZXI7CivotqjlkJEgPiBkaXJlY3Rpb247Civotbflp4sgPiBvcmlnaW5hdGU7CivnpYforoAgPiByZWFkXC1vbmx5Owor5a245pyDID4gaW5zdGl0dXRlOwor5oe45bSWID4gcHJlY2lwaWNlOwor5qKd5Lu2ID4gY29uZGl0aW9uOwor6beT6bSjID4gcGFydHJpZGdlOwor5pyr56uvID4gZXh0cmVtaXR5Owor55Oc5YiGID4gcGFydGl0aW9uOwor6JmV55CGID4gdG9cLWhhbmRsZTsKK+a2jOePviA+IHNwcmluZ1wtdXA7Civnpq7nr4AgPiBldGlxdWV0dGU7Civmma7pgY0gPiB1bml2ZXJzYWw7CivororphpwgPiBkaXNmaWd1cmU7CivkuKbogqkgPiBhbG9uZ3NpZGU7CivonILlt6IgPiBob25leWNvbWI7CivkuK3nvo4gPiBjaGluYVwtdXNhOwor5pqX6KqeID4gY29kZVwtd29yZDsKK+err+WPoyA+IGludGVyZmFjZTsKK+S9juWxpCA+IGxvd1wtbGV2ZWw7Civph43ouYggPiB0b1wtcmVwZWF0Owor5L2P5a6FID4gcmVzaWRlbmNlOwor5LyR5oiwID4gYXJtaXN0aWNlOwor5omA5LulID4gdGhlcmVmb3JlOwor6K6a6LOeID4gdG9cLWFkbWlyZTsKK+a4m+W8sSA+IHRvXC13ZWFrZW47Civlj5vos6MgPiB0b1wtYmV0cmF5Owor5auM55aRID4gc3VzcGljaW9uOwor5Ly45bGVID4gZXh0ZW5zaW9uOwor5LiA6Ie0ID4gdW5hbmltb3VzOwor6IGy5piOID4gc3RhdGVtZW50Owor6aSK5q6WID4gY3VsdGl2YXRlOwor5p+/5a2QID4gcGVyc2ltbW9uOwor6ICB54mMID4gb2xkXC1icmFuZDsKK+WmlumiqCA+IGV2aWxcLXdpbmQ7CivpjLbluLYgPiB3YXRjaGJhbmQ7Civph43opoEgPiBpbXBvcnRhbnQ7CivmuJvlsJEgPiB0b1wtbGVzc2VuOwor5pyJ55uKID4gd2hvbGVzb21lOwor6YeN6KSHID4gdG9cLXJlcGVhdDsKK+eri+WIuyA+IGZvcnRod2l0aDsKK+a3seaAnSA+IHRvXC1wb25kZXI7Civml6nppJAgPiBicmVha2Zhc3Q7Civph47ooLsgPiBiYXJiYXJvdXM7Civml6npo68gPiBicmVha2Zhc3Q7Civlv4XpnIAgPiBlc3NlbnRpYWw7CivosqHmnbEgPiBzaG9wb3duZXI7CivomZvmp4sgPiBpbWFnaW5hcnk7Civoga/mg7MgPiBhc3NvY2lhdGU7CivmtbjmspIgPiBpbW1lcnNpb247Civmnb/mlqcgPiBicm9hZFwtYXhlOwor5ZCr57OKID4gb2JzY3VyaXR5Owor5reS5oWYID4gbWlzZXJhYmxlOwor5LiA56+HID4gb25lXC1zaWRlZDsKK+mNteWFpSA+IHRvXC1rZXlcLWluOwor5peL6aKoID4gd2hpcmx3aW5kOwor56Wd56aPID4gYmxlc3NpbmdzOwor5pyf5ru/ID4gdG9cLWV4cGlyZTsKK+itpuimuiA+IHZpZ2lsYW5jZTsKK+WOn+irkiA+IHRvXC1leGN1c2U7Civlrrbkv7EgPiBmdXJuaXR1cmU7CivmhJ/mn5MgPiBpbmZlY3Rpb247CivlrZTlrZAgPiBjb25mdWNpdXM7CivlrZDlrasgPiBvZmZzcHJpbmc7CivlrrbkurogPiBob3VzZWhvbGQ7CivlrrbkuosgPiBob3VzZXdvcms7CivlrqPlgrMgPiBwdWJsaWNpemU7Civku4rlubQgPiB0aGlzXC15ZWFyOwor5ZGI54++ID4gdG9cLWFwcGVhcjsKK+S4gOeZviA+IGFcLWh1bmRyZWQ7CivosqvlvrkgPiBpbXBsZW1lbnQ7Civku7LlpI8gPiBtaWRzdW1tZXI7CivorYnoqZ4gPiB0ZXN0aW1vbnk7Civnp5jmm7ggPiBzZWNyZXRhcnk7CivnqoHlh7ogPiBwcm9taW5lbnQ7Civmg6Hmr5IgPiBtYWxpY2lvdXM7CivkvLTkvrYgPiBjb21wYW5pb247CivmmILosrQgPiBleHBlbnNpdmU7CivpnLLpn5MgPiB0b1wtZXhwb3NlOwor5b2x6Z+/ID4gaW5mbHVlbmNlOwor5aSi6a2YID4gbmlnaHRtYXJlOwor5aW96YGLID4gZ29vZFwtbHVjazsKK+aatOeZvCA+IGJyZWFrXC1vdXQ7Civmh4nku5ggPiBkZWFsXC13aXRoOwor5pyJ5q+SID4gcG9pc29ub3VzOwor5byx6bm8ID4gd2Vha1wtYmFzZTsKK+axveiIuSA+IHN0ZWFtYm9hdDsKK+WPr+eskSA+IGxhdWdoYWJsZTsKK+WNiui8iSA+IGhhbGZcLWxvYWQ7Civlvq7ou58gPiBtaWNyb3NvZnQ7Civku5nlooMgPiBmYWlyeWxhbmQ7Civml6jotqMgPiBvYmplY3RpdmU7Civml6XotqggPiBncmFkdWFsbHk7CivkuovmhYsgPiBzaXR1YXRpb247CivlpKfpoZ4gPiBtYWluXC10eXBlOwor5pys5paHID4gdGhpc1wtdGV4dDsKK+eHn+mkiiA+IG51dHJpdGlvbjsKK+mgu+eOhyA+IGZyZXF1ZW5jeTsKK+WNlOitsCA+IGFncmVlbWVudDsKK+S4jea7vyA+IHJlc2VudGZ1bDsKK+mCo+m6vCA+IHNvXC1cKG11Y2hcKTsKK+W/heimgSA+IG5lY2Vzc2FyeTsKK+Wkp+mZuCA+IGNvbnRpbmVudDsKK+eip+iXjSA+IGRhcmtcLWJsdWU7CivlvoXpgYcgPiB0cmVhdG1lbnQ7CivlkIjnkIYgPiByYXRpb25hbGU7CivnjqnlvIQgPiByZXNvcnRcLXRvOwor5pyJ5pmCID4gc29tZXRpbWVzOwor5peB6LevID4gdG9cLWJ5cGFzczsKK+WknOmWkyA+IG5pZ2h0dGltZTsKK+avlOmEsCA+IG5laWdoYm91cjsKK+mdnuitsCA+IGNyaXRpY2l6ZTsKK+abuOaetiA+IGJvb2tzaGVsZjsKK+a3t+S6giA+IGNvbmZ1c2lvbjsKK+acieaViCA+IGVmZmVjdGl2ZTsKK+e8veebgiA+IGFsbXNcLWJvd2w7Civos4fliqkgPiBzdWJzaWRpemU7CivkuIrmrKEgPiBsYXN0XC10aW1lOwor54mM6JmfID4gdHJhZGVtYXJrOwor5LqU5aSpID4gZml2ZVwtZGF5czsKK+a2iOWksSA+IGRpc2FwcGVhcjsKK+aXgeingCA+IHNwZWN0YXRvcjsKK+ejqOefsyA+IG1pbGxzdG9uZTsKK+S7i+WFpSA+IGludGVydmVuZTsKK+S7peS4iiA+IG1vcmVcLXRoYW47Civnn5vpoK0gPiBzcGVhcmhlYWQ7CivlpKLpgbogPiB3ZXRcLWRyZWFtOwor6K6K55WwID4gdmFyaWF0aW9uOwor5rOi5q61ID4gd2F2ZVwtYmFuZDsKK+mboumWiyA+IHRvXC1kZXBhcnQ7CivnjbLlvpcgPiB0b1wtb2J0YWluOwor5ZCQ5rCjID4gYXNwaXJhdGVkOwor5p2x5Y2XID4gc291dGhlYXN0Owor5p2x5YyXID4gbm9ydGhlYXN0Owor5LiN5piOID4gbm90XC1jbGVhcjsKK+Wlh+ingCA+IHNwZWN0YWNsZTsKK+aUuemdqSA+IHRvXC1yZWZvcm07CivmhJvlnIsgPiBwYXRyaW90aWM7CivkuI3mlrcgPiB1bmNlYXNpbmc7Civku4rkuJYgPiB0aGlzXC1saWZlOwor5pyq5amaID4gdW5tYXJyaWVkOwor5byx6YW4ID4gd2Vha1wtYWNpZDsKK+aUtumbhiA+IHRvXC1nYXRoZXI7CivkuZjlrqIgPiBwYXNzZW5nZXI7CivkuIDmmYIgPiB0ZW1wb3Jhcnk7CivliqnplbcgPiBlbmNvdXJhZ2U7CivkuqTlh7ogPiBoYW5kXC1vdmVyOwor6aOf5ZOBID4gZm9vZHN0dWZmOwor6YWN572uID4gdG9cLWRlcGxveTsKK+WkseiqvyA+IGltYmFsYW5jZTsKK+a2iOWOuyA+IGVsaW1pbmF0ZTsKK+acrOWjmCA+IGhvbWVcLWJhc2U7CivkurrkuosgPiBwZXJzb25uZWw7CivmgrLmhZggPiBtaXNlcmFibGU7CivorZjnm7ggPiBzZW5zaXRpdmU7Civmm7jlupcgPiBib29rc3RvcmU7CivpgorploAgPiBzaWRlXC1kb29yOwor5Lit5bqtID4gY291cnR5YXJkOwor5Y+45qmfID4gY2hhdWZmZXVyOwor542o5a62ID4gZXhjbHVzaXZlOwor5p2x5LqeID4gZWFzdFwtYXNpYTsKK+W+qee/kiA+IHRvXC1yZXZpc2U7CivlkIjmoLwgPiBxdWFsaWZpZWQ7CivmmqvmmYIgPiB0ZW1wb3Jhcnk7Civpm5npgoogPiBiaWxhdGVyYWw7CivogJDlipsgPiBlbmR1cmFuY2U7CivmmI7norogPiBjbGVhclwtY3V0Owor5LiN5oOcID4gbm90XC1zdGludDsKK+aDoeWkoiA+IG5pZ2h0bWFyZTsKK+WOn+eQhiA+IHByaW5jaXBsZTsKK+S4u+WppiA+IGhvdXNld2lmZTsKK+eOqeWFtyA+IHBsYXl0aGluZzsKK+mbu+ipsSA+IHRlbGVwaG9uZTsKK+aWveiCpSA+IGZlcnRpbGl6ZTsKK+aUuemAoCA+IHRvXC1jaGFuZ2U7Civni4Dms4EgPiBjb25kaXRpb247CivkuI3lubMgPiBpbmp1c3RpY2U7CivpgJnpurwgPiBzb1wtXChtdWNoXCk7CivkuI3lt7IgPiBlbmRsZXNzbHk7Civpm5zosqggPiBncm9jZXJpZXM7CivmnKjljKAgPiBjYXJwZW50ZXI7CivoqZXpgbggPiB0b1wtY2hvb3NlOwor6Yas5rK5ID4gc295XC1zYXVjZTsKK+W7uumAoCA+IGNvbnN0cnVjdDsKK+inuOmsmiA+IHRlbnRhY2xlczsKK+aTpumfsyA+IGZyaWNhdGl2ZTsKK+WRqOWcjSA+IGVuY29tcGFzczsKK+S4jeWwjSA+IGluY29ycmVjdDsKK+W/g+ebriA+IG1lbnRhbGl0eTsKK+WPr+aVrCA+IHZlbmVyYWJsZTsKK+WPl+agvCA+IG9iamVjdGl2ZTsKK+Wkp+iNsyA+IHNveWFcLWJlYW47CivwoqWeID4gc2FtZVwtYXNcLeW/oTsKK+Wlkee0hCA+IGFncmVlbWVudDsKK+mxt+mtmiA+IGFsbGlnYXRvcjsKK+azouW5hSA+IGFtcGxpdHVkZTsKK+aUueiuiiA+IHRvXC1jaGFuZ2U7Civluq3pmaIgPiBjb3VydHlhcmQ7Civnpq7lhIAgPiBldGlxdWV0dGU7Civlj7PmiYsgPiByaWdodGhhbmQ7CivlibXpgKAgPiB0b1wtY3JlYXRlOwor5rWB5YWlID4gZmxvd1wtaW50bzsKK+azqOWwhCA+IGluamVjdGlvbjsKK+ehrOebpCA+IGhhcmRcLWRpc2s7Civlip/oqrIgPiBjbGFzc3dvcms7CivpgLHplbcgPiBwZXJpbWV0ZXI7CivmnIjlhYkgPiBtb29ubGlnaHQ7CivlpLHnuLEgPiBkaXNhcHBlYXI7CivlqZrlp7sgPiBtYXRyaW1vbnk7Civlj6PmiY0gPiBlbG9xdWVuY2U7CivkuI3lnKggPiBub3RcLWJlXC1pbjsKK+mereavmyA+IGZsYWdlbGx1bTsKK+aSq+mkiiA+IHRvXC1mb3N0ZXI7CivmtL7ku7sgPiBzZXRcLWFwYXJ0Owor5Yiq6ZmkID4gdG9cLWRlbGV0ZTsKK+mBoOi2syA+IGV4Y3Vyc2lvbjsKK+eEoemZkCA+IHVubGltaXRlZDsKK+mgkeW8tyA+IHRlbmFjaW91czsKK+eEoemXnCA+IHVucmVsYXRlZDsKK+iSuOeZvCA+IGV2YXBvcmF0ZTsKK+WPpOaAqiA+IGVjY2VudHJpYzsKK+W+l+eVtiA+IGV4cGVkaWVudDsKK+ayueW4gyA+IHRhcnBhdWxpbjsKK+S4i+WUhyA+IGxvd2VyXC1saXA7Civnvqnli5kgPiB2b2x1bnRlZXI7CivkuIrllIcgPiB1cHBlclwtbGlwOwor6aCB5b+DID4gdHlwZVwtcGFnZTsKK+S4jeWQnSA+IG5vdFwtc3RpbnQ7CivkuI3lkIwgPiBkaWZmZXJlbnQ7CivmsaHmn5MgPiBwb2xsdXRpb247CivliY3pgJQgPiBwcm9zcGVjdHM7CivnhoronIIgPiBidW1ibGViZWU7CivnuL3ntZAgPiBzdW1tYXJpemU7Civnvo7lkbMgPiBkZWxpY2lvdXM7CivlkLjlj5YgPiB0b1wtYWJzb3JiOwor5LiL5Y2IID4gYWZ0ZXJub29uOwor6YCx6YKKID4gcGVyaXBoZXJ5Owor5bm06ZmQID4gYWdlXC1saW1pdDsKK+S4i+WIlyA+IGZvbGxvd2luZzsKK+S4jeWHhiA+IG5vdFwtYWxsb3c7CivpoYzlkI0gPiBhdXRvZ3JhcGg7CivlpJrnq68gPiBtdWx0aXBvcnQ7CivmlYjog70gPiBlZmZpY2llbnQ7CivkuI3lgZwgPiBpbmNlc3NhbnQ7CivlpKfnoLIgPiBhcnRpbGxlcnk7CivkuI3lgLwgPiBub3RcLXdvcnRoOwor5rKZ5bKpID4gc2FuZHN0b25lOwor5rOi5Y+KID4gc3ByZWFkXC10bzsKK+W+ruazoiA+IG1pY3Jvd2F2ZTsKK+S4jeS8kSA+IGVuZGxlc3NseTsKK+eEoei+nCA+IGlubm9jZW5jZTsKK+asoeimgSA+IHNlY29uZGFyeTsKK+S4jeS6iCA+IG5vdFwtZ3JhbnQ7CivljrvlubQgPiBsYXN0XC15ZWFyOwor5LiN5LqGID4gdW5hYmxlXC10bzsKK+mgmOWcnyA+IHRlcnJpdG9yeTsKK+mfjOaApyA+IHRvdWdobmVzczsKK+ekvuWNgCA+IGNvbW11bml0eTsKK+eJiOasiiA+IGNvcHlyaWdodDsKK+WQkeWNlyA+IHNvdXRod2FyZDsKK+awkeatjCA+IGZvbGtcLXNvbmc7CivljbPmmYIgPiBpbW1lZGlhdGU7Civmkq3pgIEgPiBicm9hZGNhc3Q7CivlubjpgYsgPiBmb3J0dW5hdGU7Civnvo7kuK0gPiB1c2FcLWNoaW5hOwor6ZqV6JC9ID4gZmFsbFwtZG93bjsKK+eGn+e3tCA+IHByYWN0aWNlZDsKK+aUuee3qCA+IHRvXC1hZGFwdDsKK+ejgeaApyA+IG1hZ25ldGljOwor5aOT57eKID4gY29tcHJlc3M7CivphqvlrbggPiBtZWRpY2luZTsKK+WQnuS9tSA+IHRvXC1hbm5leDsKK+mdiOa0uyA+IGZsZXhpYmxlOwor5paH5427ID4gZG9jdW1lbnQ7CivlpJbnlKggPiBleHRlcm5hbDsKK+mCiue3miA+IHNpZGVsaW5lOwor5q2j57WxID4gb3J0aG9kb3g7Civlu7bnuowgPiBjb250aW51ZTsKK+mgu+S7jSA+IGZyZXF1ZW50Owor57ev57eaID4gbGF0aXR1ZGU7CivnhKHoqqQgPiB2ZXJpZmllZDsKK+aXpeabhiA+IGNhbGVuZGFyOwor5Ymd6JC9ID4gcGVlbFwtb2ZmOwor6aCQ5Y2cID4gZm9yZXRlbGw7CivlubvosaEgPiBpbGx1c2lvbjsKK+isueaFjiA+IGNhdXRpb3VzOwor54m55oCnID4gcHJvcGVydHk7CivojLbppKggPiB0ZWFob3VzZTsKK+mzpeexoCA+IGJpcmRjYWdlOwor5b6u5piOID4gdHdpbGlnaHQ7Civlu7rnr4kgPiBidWlsZGluZzsKK+WPi+WWhCA+IGZyaWVuZGx5Owor5bu656uLID4gY3JlYXRpb247CivpoIbliKkgPiBzbW9vdGhseTsKK+W/g+aJiyA+IG5ld1wtaGFuZDsKK+WGsOmamSA+IGNyZXZhc3NlOwor6Zy45qyKID4gaGVnZW1vbnk7CivljbHmgKUgPiBjcml0aWNhbDsKK+mamee4qyA+IGFwZXJ0dXJlOwor6Kaq6LqrID4gcGVyc29uYWw7CivnorrlrpogPiBkZWZpbml0ZTsKK+e1gui6qyA+IGxpZmVsb25nOwor6KiY6ICFID4gcmVwb3J0ZXI7Civopo/pgb8gPiB0b1wtZXZhZGU7CivniafluKsgPiBjaGFwbGFpbjsKK+aUtuebiiA+IGVhcm5pbmdzOwor5YW36auUID4gY29uY3JldGU7CivlubPooYwgPiBwYXJhbGxlbDsKK+W/oOWvpiA+IGZhaXRoZnVsOwor5q2l55m8ID4gZm9vdHdvcms7CivliIboo4IgPiBzcGxpdFwtdXA7CivmlrDmm7ggPiBuZXdcLWJvb2s7Civlj6PkuqQgPiBvcmFsXC1zZXg7CivlibXnq4sgPiB0b1wtZm91bmQ7CivnhaTnrrEgPiBjb2FsXC1ib3g7CivnvLrkuY8gPiBzaG9ydGFnZTsKK+aXpeW+jCA+IHNvbWV0aW1lOwor6YKK55WMID4gYm91bmRhcnk7Civngb3pm6MgPiBkaXNhc3RlcjsKK+W+ueW6lSA+IHRob3JvdWdoOwor6bGJ6KOZID4gY2FsaXBhc2g7Civorablj6UgPiBhcGhvcmlzbTsKK+aXqeW3siA+IGxvbmdcLWFnbzsKK+mblueEtiA+IGFsdGhvdWdoOwor56C05puJID4gZGF5YnJlYWs7Civpm6jmu7QgPiByYWluZHJvcDsKK+aYjuWkqSA+IHRvbW9ycm93Owor5aaW5a29ID4gZXZpbGRvZXI7Civpm7vmsKMgPiBlbGVjdHJpYzsKK+mFrOWgsSA+IHRvXC1yZXBheTsKK+mBuueUoiA+IGhlcml0YWdlOwor56Gs5bqmID4gaGFyZG5lc3M7CivnhKHogYogPiBub25zZW5zZTsKK+apq+mBjiA+IHRyYXZlcnNlOwor5b6B5oiwID4gY2FtcGFpZ247CivoqrLmnKwgPiB0ZXh0Ym9vazsKK+WHi+isnSA+IGxhbmd1aXNoOwor6KiI566XID4gdG9cLWNvdW50Owor6ZaL6ZmkID4gdG9cLWV4cGVsOwor6YGp55W2ID4gc3VpdGFibGU7Civnupblt6cgPiBkZWxpY2F0ZTsKK+W5s+iHuiA+IHBsYXRmb3JtOwor5aSn5pa5ID4gZ2VuZXJvdXM7CivnhKHnuKsgPiBzZWFtbGVzczsKK+WGoOi7jSA+IGNoYW1waW9uOwor5YeG6KixID4gdG9cLWFsbG93Owor6YSw5bGFID4gbmVpZ2hib3I7Civpm7vmoq8gPiBlbGV2YXRvcjsKK+iTi+WxpCA+IGNhcFwtcm9jazsKK+mdouWwjSA+IGNvbmZyb250Owor54Sh57eaID4gd2lyZWxlc3M7CivnorrliIcgPiBkZWZpbml0ZTsKK+mAmue0hSA+IHZlcnlcLXJlZDsKK+WMheaKhCA+IG91dGZsYW5rOwor6L6o6KqNID4gaWRlbnRpZnk7Civljp/kvoYgPiBvcmlnaW5hbDsKK+WkmuaVuCA+IG1ham9yaXR5Owor54mp5ZOBID4gYXJ0aWNsZXM7CivmlL/msrsgPiBwb2xpdGljczsKK+WNiuWknCA+IG1pZG5pZ2h0Owor5Y2I5aScID4gbWlkbmlnaHQ7CivmlrDlubQgPiBuZXdcLXllYXI7Civml4XlrqIgPiB0cmF2ZWxlcjsKK+mAvOecnyA+IGxpZmVsaWtlOwor5q2l5rOVID4gZm9vdHdvcms7Civlhazph5AgPiBkZWNpZ3JhbTsKK+auuuaIriA+IG1hc3NhY3JlOwor5Yqb5rCjID4gc3RyZW5ndGg7Civlhafpg6ggPiBpbnRlcmlvcjsKK+imhuiTiyA+IHRvXC1jb3ZlcjsKK+e5oeW4tyA+IHRhcGVzdHJ5Owor5aSq5b+ZID4gdG9vXC1idXN5Owor552h55ygID4gc2xlZXBpbmc7Civoo53po74gPiBkZWNvcmF0ZTsKK+WNgeWbmyA+IGZvdXJ0ZWVuOwor5bmz562JID4gZXF1YWxpdHk7Civnmb3ph5EgPiBwbGF0aW51bTsKK+WMheWxpCA+IGNsYWRkaW5nOwor6L2J6YCBID4gdHJhbnNmZXI7Civlho3oposgPiBnb29kXC1ieWU7CivlpKLlubsgPiBpbGx1c2lvbjsKK+mAleebtCA+IHN0cmFpZ2h0Owor5Y2x5LqhID4gYXRcLXN0YWtlOwor6I2J6I2JID4gY2FyZWxlc3M7Civlt6foqIggPiBtYW5ldXZlcjsKK+iRl+aJiyA+IGNvbW1lbmNlOwor5paZ5a2QID4gbWF0ZXJpYWw7Civnm7LohbggPiBhcHBlbmRpeDsKK+aUr+afsSA+IG1haW5zdGF5Owor5b2i5a65ID4gZGVzY3JpYmU7CivnhKHnlpEgPiBub1wtZG91YnQ7CivlvLfmgo0gPiB2YWxsaWFudDsKK+eyl+mHjiA+IGluc29sZW50Owor6KKL6bygID4ga2FuZ2Fyb287CivlppbkurogPiBtYWdpY2lhbjsKK+i7n+mrlCA+IHNvZnR3YXJlOwor5paw5Z6LID4gbmV3XC10eXBlOwor5Z+56IKyID4gdG9cLXRyYWluOwor54Wk5rK5ID4ga2Vyb3NlbmU7CivliqDmmYIgPiBvdmVydGltZTsKK+WFiei8nSA+IHJhZGlhbmNlOwor5b6p5YWDID4gcmVjb3Zlcnk7CivlvLfluqYgPiBzdHJlbmd0aDsKK+WNgeWFqyA+IGVpZ2h0ZWVuOwor5aWz5YWSID4gZGF1Z2h0ZXI7CivlpJrlsJEgPiBob3dcLW11Y2g7CivljYHlhYsgPiBkZWNhZ3JhbTsKK+WcsOmbtyA+IGxhbmRtaW5lOwor5aaC5LuKID4gbm93YWRheXM7Civpgqrmg6EgPiBzaW5pc3RlcjsKK+ingOeciyA+IHRvXC13YXRjaDsKK+W+l+WIhiA+IHRvXC1zY29yZTsKK+WMheWcjSA+IHN1cnJvdW5kOwor5q+U5Za7ID4gbWV0YXBob3I7Civopo/nr4QgPiBzdGFuZGFyZDsKK+i7gOmrlCA+IHRoZVwtYm9keTsKK+ehrOS7tiA+IGhhcmR3YXJlOwor5aSp5aCCID4gcGFyYWRpc2U7CivljYHkuZ0gPiBuaW5ldGVlbjsKK+WFieitnCA+IHNwZWN0cnVtOwor6KOc6YG6ID4gYWRkZW5kdW07CivpgaDmnbEgPiBmYXJcLWVhc3Q7CivljYHkuIkgPiB0aGlydGVlbjsKK+apn+iDvSA+IGZ1bmN0aW9uOwor6JKZ5Y+kID4gbW9uZ29saWE7CivpgaDmma8gPiBwcm9zcGVjdDsKK+e0kOe0hCA+IG5ld1wteW9yazsKK+aVmeWwjiA+IGluc3RydWN0Owor5o+Q6K2wID4gcHJvcG9zYWw7CivlhKrotoogPiBzdXBlcmlvcjsKK+mAsuatpSA+IHByb2dyZXNzOwor6YGu5o6pID4gdG9cLWNvdmVyOwor6Zu75aCxID4gdGVsZWdyYW07CivmkbnnlasgPiBkZXNjcmliZTsKK+i7iumWkyA+IHdvcmtzaG9wOwor5b6A5L6GID4gZGVhbGluZ3M7Civoqr/li5UgPiB0cmFuc2ZlcjsKK+W8leWwjiA+IHRvXC1ndWlkZTsKK+ijneiyqCA+IHNoaXBwaW5nOwor5Yqb5bqmID4gZHluYW1pc207CivpgY7mlrwgPiB0b29cLW11Y2g7Civnm6PnpoEgPiBpbXByaXNvbjsKK+WGsOeqliA+IGljZWhvdXNlOwor5aCC55qHID4gaW1wb3Npbmc7CivltIfpq5ggPiBtYWplc3RpYzsKK+ecgeeVpSA+IG9taXNzaW9uOwor5q+N5L+CID4gbWF0ZXJuYWw7CivmjqHosrcgPiBwdXJjaGFzZTsKK+i8leimliA+IGNvbnRlbXB0Owor57K+6Ie0ID4gZGVsaWNhY3k7CivpgbLlu7YgPiB0b1wtZGVsYXk7CivmlJzluLYgPiB0b1wtY2Fycnk7Civlu7blsZUgPiB0b1wtc2NhbGU7CivovrLnlLAgPiBmYXJtbGFuZDsKK+mDqOS9jSA+IHBvc2l0aW9uOwor5Ym15bu6ID4gdG9cLWZvdW5kOwor5YWn572uID4gaW50ZXJuYWw7CivpmZDmnJ8gPiBkZWFkbGluZTsKK+e3iuW8tSA+IGNyaXRpY2FsOwor6KiY5oa2ID4gbWVtb3JpZXM7CivpgbflsLEgPiB0b1wteWllbGQ7Civnsr7nvo4gPiBkZWxpY2F0ZTsKK+W8t+WLgSA+IHBvd2VyZnVsOwor5paH5Lu2ID4gZG9jdW1lbnQ7CivmrrrkurogPiBob21pY2lkZTsKK+mCiuWigyA+IGZyb250aWVyOwor5aSW5L6GID4gZXh0ZXJuYWw7CivliZvmgKcgPiByaWdpZGl0eTsKK+WLg+WLgyA+IHRocml2aW5nOwor6YGp5a6cID4gc3VpdGFibGU7Civmk4Hmk6AgPiB0b1wtY3Jvd2Q7CivmjojoqrIgPiB0b1wtdGVhY2g7Civop6PmlaMgPiBkaXNzb2x2ZTsKK+mZsOaApyA+IGZlbWluaW5lOwor5YuV5L2cID4gbW92ZW1lbnQ7Civmlabkv4MgPiB0b1wtcHJlc3M7Civpm4flk6EgPiBlbXBsb3llZTsKK+eAieiXpSA+IGxheGF0aXZlOwor5o+b572uID4gZGlzcGxhY2U7Civpm6jlgpggPiB1bWJyZWxsYTsKK+WcluisgCA+IGNvbnNwaXJlOwor6JGj5LqLID4gZGlyZWN0b3I7Civli5XkurogPiB0b3VjaGluZzsKK+mYu+aTiiA+IHRvXC1jaGVjazsKK+ijnOiKsSA+IGFwcGxpcXVlOwor5aGX5oq5ID4gdG9cLXNtZWFyOwor6aqo6aq8ID4gc2tlbGV0b247Civoo53oiLkgPiBzaGlwbWVudDsKK+asuuWjkyA+IHRvXC1idWxseTsKK+iNkua2vCA+IGRlc29sYXRlOwor5Ye55p2/ID4gaW50YWdsaW87CivliqPli6IgPiBpbmZlcmlvcjsKK+WIhuaVuCA+IGZyYWN0aW9uOwor55uO54S2ID4gYWJ1bmRhbnQ7Civlo5PlipsgPiBwcmVzc3VyZTsKK+mAo+W/mSA+IHByb21wdGx5Owor6YKj5YCLID4gdGhhdFwtb25lOwor54Sh5oOFID4gcGl0aWxlc3M7Civmk6blr6sgPiB0b1wtZXJhc2U7Civlo5PliLYgPiBzdXBwcmVzczsKK+eyvueiuiA+IGFjY3VyYXRlOwor5YSq576OID4gZ3JhY2VmdWw7CivoiKrpgYsgPiBzaGlwcGluZzsKK+WHveaVuCA+IGZ1bmN0aW9uOwor57aT5bi4ID4gZXZlcnlkYXk7CivmraXlhbUgPiBpbmZhbnRyeTsKK+W5s+aIvyA+IGJ1bmdhbG93Owor5Yaw5ra8ID4gaWNlXC1jb2xkOwor5bm75oOzID4gZGVsdXNpb247Civluo/luZUgPiBwcm9sb2d1ZTsKK+WIu+WvqyA+IGluc2NyaWJlOwor5aKT5ZywID4gY2VtZXRlcnk7Civpgb/lhY0gPiB0b1wtYXZlcnQ7Civopo/moLwgPiBzdGFuZGFyZDsKK+WgtOaJgCA+IGxvY2F0aW9uOwor6L+95oK8ID4gbW91cm5pbmc7Civpm4fkuLsgPiBlbXBsb3llcjsKK+aPreeZvCA+IGRpc2Nsb3NlOwor6Kix5Y+vID4gdG9cLWFsbG93Owor5YKz6KiKID4gc3VicG9lbmE7CivoqZXkvLAgPiBldmFsdWF0ZTsKK+aLlumeiyA+IHNsaXBwZXJzOwor5YG96YCgID4gdG9cLWZvcmdlOwor54Gr54mGID4gZmlyZXdhbGw7Civlh7bmiYsgPiBtdXJkZXJlcjsKK+eEoeWusyA+IGhhcm1sZXNzOwor6Luf6IaPID4gb2ludG1lbnQ7CivmjozogbIgPiBhcHBsYXVzZTsKK+ihqOingCA+IGFwcGFyZW50Owor5Z+L5rKSID4gb2JsaXZpb247CivlubPluLggPiBvcmRpbmFyeTsKK+aLlOmZpCA+IHB1bGxcLW91dDsKK+WinuWKoCA+IHRvXC1yYWlzZTsKK+i7jOiMgyA+IHN0YW5kYXJkOwor5pGp5pOmID4gZnJpY3Rpb247CivoprrlvpcgPiB0b1wtdGhpbms7Civpq5josrQgPiBncmFuZGV1cjsKK+WJquWIgCA+IHNjaXNzb3JzOwor5YWF55W2ID4gc2VydmVcLWFzOwor54K65pmCID4gdGltZXdpc2U7CivpgZTliLAgPiB0b1wtcmVhY2g7Civopb/mlrkgPiB0aGVcLXdlc3Q7CivpgYvli5UgPiBtb3ZlbWVudDsKK+asuuS+riA+IHRvXC1idWxseTsKK+mAmuWgsSA+IGJ1bGxldGluOwor5pKl5a2QID4gcGxlY3RydW07CivluorlooogPiBtYXR0cmVzczsKK+aKl+mrlCA+IGFudGlib2R5Owor6Ieo6L+RID4gY2xvc2VcLXRvOwor6I6r5aSnID4gZ3JlYXRlc3Q7CivntITmnZ8gPiByZXN0cmljdDsKK+WIh+WvpiA+IGZlYXNpYmxlOwor55WM6ZmQID4gYm91bmRhcnk7Civpmb3lhYkgPiBzdW5zaGluZTsKK+WIhuWtkCA+IG1vbGVjdWxlOwor55u45oeJID4gcmVsZXZhbnQ7CivnnL7lpJogPiBudW1lcm91czsKK+mYu+WhniA+IHRvXC1ibG9jazsKK+e1leWwjSA+IGFic29sdXRlOwor5YiG5aipID4gZGVsaXZlcnk7CivnrqHpgZMgPiBwaXBlbGluZTsKK+mBiuS8tCA+IHBsYXltYXRlOwor5bel5qWtID4gaW5kdXN0cnk7CivlhrDmjpIgPiBpY2VcLXJhZnQ7CivpgLLlhaUgPiB0b1wtZW50ZXI7Civot6/pnaIgPiBwYXZlbWVudDsKK+ebtOW+kSA+IGRpYW1ldGVyOwor54Sh5ZCNID4gbmFtZWxlc3M7CivntZDlqZogPiB0b1wtbWFycnk7CivloLXloZ4gPiBibG9ja2FnZTsKK+aSpOWbniA+IHdpdGhkcmF3Owor552+5Li4ID4gdGVzdGljbGU7CivntpPlhbggPiBjbGFzc2ljczsKK+mosOmosCA+IHN0ZWFtaW5nOwor6YC85Lq6ID4gcHJlc3Npbmc7CivovJ3nhYwgPiBzcGxlbmRpZDsKK+eEoeWKqSA+IGhlbHBsZXNzOwor5o6h55SoID4gdG9cLWFkb3B0Owor5bey5pWFID4gdGhlXC1sYXRlOwor5bqP5YiXID4gc2VxdWVuY2U7CivnmbzmsZcgPiB0b1wtc3dlYXQ7CivlnIvnq4sgPiBuYXRpb25hbDsKK+eutOiogCA+IHByb3ZlcmJzOwor6KOc54iQID4gZmV0dGxpbmc7Civot53pm6IgPiBkaXN0YW5jZTsKK+iHquijvSA+IGhvbWVtYWRlOwor6Zi75YqbID4gb2JzdGFjbGU7CivnmJ/nlqsgPiBlcGlkZW1pYzsKK+igleiglSA+IHdpZ2dsaW5nOwor6YCB5YilID4gZmFyZXdlbGw7CivnhKHkurogPiB1bm1hbm5lZDsKK+WFrOaWpCA+IGtpbG9ncmFtOwor5YWs5paHID4gZG9jdW1lbnQ7Civmir3osaEgPiBhYnN0cmFjdDsKK+WHuuWPoyA+IHRvXC1zcGVhazsKK+imquWWhCA+IGdvb2R3aWxsOwor6IiI6Ie0ID4gaW50ZXJlc3Q7CivpgJTkuK0gPiBlblwtcm91dGU7CivplpPmjqUgPiBpbmRpcmVjdDsKK+mQtei3ryA+IHJhaWxyb2FkOwor5pCs5byEID4gbW92ZVwtc3RoOwor5qiZ5pysID4gc3BlY2ltZW47CivpgIDkvY0gPiBhYmRpY2F0ZTsKK+e1hOWQiCA+IGFzc2VtYmxlOwor5aGM5LiLID4gY29sbGFwc2U7CivpgIPkuqEgPiBmdWdpdGl2ZTsKK+aIsOmspSA+IHRvXC1maWdodDsKK+e1seS4gCA+IHRvXC11bmlmeTsKK+WIkeS6iyA+IGNyaW1pbmFsOwor5o+Q5qGIID4gcHJvcG9zYWw7CivooZ3nqoEgPiBjb25mbGljdDsKK+i/veS4iiA+IG92ZXJ0YWtlOwor6Iiq56m6ID4gYXZpYXRpb247Civkv67ovq0gPiByaGV0b3JpYzsKK+a/vua2siA+IGZpbHRyYXRlOwor5bCN6Z2iID4gb3Bwb3NpdGU7Civlh73ku7YgPiBsZXR0ZXJlczsKK+ebuOWPjSA+IG9wcG9zaXRlOwor5oyB57qMID4gY29udGludWU7CivpprTpub8gPiByZWluZGVlcjsKK+aJi+mQsiA+IGJyYWNlbGV0Owor6ISr6ZuiID4gc2VwYXJhdGU7CivpqZroqJ0gPiBjb25mb3VuZDsKK+iEiumqqCA+IGJhY2tib25lOwor5o2V542yID4gdG9cLWNhdGNoOwor6aeV6aebID4gdG9cLWRyaXZlOwor5o6h5qijID4gc2FtcGxpbmc7CivntJTlk4EgPiBzdGVybGluZzsKK+mWgOW+kiA+IGRpc2NpcGxlOwor6L+R5L6GID4gcmVjZW50bHk7Civlr7rpmaIgPiBjbG9pc3RlcjsKK+etlOipsSA+IHRvXC1yZXBseTsKK+alreeVjCA+IGluZHVzdHJ5Owor54Gr5bGxID4gdm9sY2FuaWM7Civlhbblr6YgPiBhY3R1YWxseTsKK+eUn+ipniA+IG5ld1wtd29yZDsKK+i/keS5jiA+IGNsb3NlXC10bzsKK+aiteiqniA+IHNhbnNrcml0Owor5L6/6YGTID4gc2hvcnRjdXQ7CivopLLlrZAgPiB0cm91c2VyczsKK+Wvp+mdnCA+IHRyYW5xdWlsOwor55yB5Lu9ID4gcHJvdmluY2U7CivlsIHpjpYgPiBibG9ja2FkZTsKK+S/r+imliA+IG92ZXJsb29rOwor5bSp5r2wID4gY29sbGFwc2U7CivovInmlJwgPiB0b1wtY2Fycnk7Civmv5XmsKMgPiBtb2lzdHVyZTsKK+eyvuWvhiA+IGFjY3VyYWN5Owor6Iy25YyZID4gdGVhc3Bvb247CivlnIvmsJEgPiBuYXRpb25hbDsKK+WFhOW8nyA+IGJyb3RoZXJzOwor5qCh6amXID4gdG9cLWNoZWNrOwor57KX5b+DID4gY2FyZWxlc3M7CivlhrDlhrcgPiBpY2VcLWNvbGQ7CivoiIjnm5sgPiBmbG91cmlzaDsKK+WAmOiLpSA+IHByb3ZpZGVkOwor6Zec5L+CID4gcmVsYXRpb247CivnmbzlsIQgPiB0b1wtc2hvb3Q7CivmiYvotrMgPiBtb3ZlbWVudDsKK+apn+WLlSA+IGZsZXhpYmxlOwor5o6h5o6YID4gZXhjYXZhdGU7CivotorpgY4gPiB0b1wtY3Jvc3M7Civoo4HmkqQgPiBkaXNzb2x2ZTsKK+WFteWZqCA+IHdlYXBvbnJ5Owor5ouU56+AID4gam9pbnRpbmc7CivmvJTnv5IgPiBleGVyY2lzZTsKK+e0iuS6giA+IGRpc29yZGVyOwor6Lez6IieID4gdG9cLWRhbmNlOwor56+E55aHID4gY2F0ZWdvcnk7CivlhbXlk6EgPiBzb2xkaWVyczsKK+a6tuinoyA+IGRpc3NvbHZlOwor5o6Z5omOID4gc3RydWdnbGU7Civmu7LoibIgPiBibGVlZGluZzsKK+ibi+m7gyA+IGVnZ1wteW9sazsKK+WFseWSjCA+IHJlcHVibGljOwor6LuN5pa5ID4gbWlsaXRhcnk7Civmp4vmg7MgPiBjb25jZWl2ZTsKK+iDjOmdoiA+IHRoZVwtYmFjazsKK+i8lOWwjiA+IHRvXC1jb2FjaDsKK+WvtuiytCA+IHZhbHVhYmxlOwor5YWl5Y+jID4gZW50cmFuY2U7CivpqZXnuLEgPiBhcnJvZ2FudDsKK+mWi+WJtSA+IGluaXRpYXRlOwor5L616J2VID4gdG9cLWVyb2RlOwor5YSA5byPID4gY2VyZW1vbnk7CivmiYHon7IgPiBmbGF0d29ybTsKK+WFvOS9tSA+IHRvXC1hbm5leDsKK+aoguWckiA+IHBhcmFkaXNlOwor5a656YePID4gY2FwYWNpdHk7Civmj4/lnJYgPiB0b1wtdHJhY2U7CivotaTotrMgPiBiYXJlZm9vdDsKK+WxgeiCoSA+IGJ1dHRvY2tzOwor55m85YuVID4gdG9cLXN0YXJ0Owor6KO95ZOBID4gcHJvZHVjdHM7CivlhbHkuqsgPiB0b1wtc2hhcmU7Civoi7Hkv4ogPiBoYW5kc29tZTsKK+aNt+W+kSA+IHNob3J0Y3V0Owor6KGM5qWtID4gaW5kdXN0cnk7Civppqzou4ogPiBjYXJyaWFnZTsKK+WFrOS4uyA+IHByaW5jZXNzOwor5o+Q5ZCNID4gbm9taW5hdGU7Civlm5vmlrkgPiBmb3VyXC13YXk7CivnspfljrIgPiBhYnJhc2l2ZTsKK+i7iuW7giA+IGNhcnJpYWdlOwor6Ieq5rK7ID4gYXV0b25vbXk7Civpq5jmnrYgPiBvdmVyaGVhZDsKK+WbsOaDkSA+IGJld2lsZGVyOwor56yR6IGyID4gbGF1Z2h0ZXI7Civmnb7pvKAgPiBzcXVpcnJlbDsKK+WEquWLoiA+IHN1cGVyaW9yOwor57C/5a2QID4gbm90ZWJvb2s7CivlgrLmhaIgPiBhcnJvZ2FudDsKK+WFiOS7pCA+IHNoaWxsaW5nOwor5rig6YGTID4gY2hhbm5lbHM7CivmoKHoqIIgPiByZXZpc2lvbjsKK+ajkueQgyA+IGJhc2ViYWxsOwor5YSq5YWIID4gcHJpb3JpdHk7CivlmbTms4kgPiBmb3VudGFpbjsKK+i7jeWjqyA+IHNlcmdlYW50Owor5L6G6IeoID4gYXBwcm9hY2g7CivooaPlu5ogPiB3YXJkcm9iZTsKK+S7vemHjyA+IHF1YW50aXR5Owor5YOx5ZOhID4gZW1wbG95ZWU7Civmh4noqbIgPiBvdWdodFwtdG87CivmjqHlhYkgPiBsaWdodGluZzsKK+iBmumbhiA+IGFzc2VtYmxlOwor5oyJ5o26ID4gcmVzdHJhaW47Civoo4HliKQgPiBqdWRnbWVudDsKK+S6uumhniA+IGh1bWFuaXR5Owor5Lyw6KiIID4gZXN0aW1hdGU7CivlnZDkuIsgPiBzaXRcLWRvd247CivlronorJAgPiB0cmFucXVpbDsKK+WbnuWutiA+IGhvbWV3YXJkOwor5L2/6ICFID4gZW1pc3Nhcnk7CivltKnloYwgPiBjb2xsYXBzZTsKK+aJk+egtCA+IHRvXC1icmVhazsKK+WwjeeosSA+IHN5bW1ldHJ5Owor5YGH5pyfID4gdmFjYXRpb247Civpo7zppIogPiB0b1wtcmFpc2U7CivooaPlrZAgPiBjb3ZlcmluZzsKK+izvOiytyA+IHB1cmNoYXNlOwor6Lu85LqLID4gYW5lY2RvdGU7CivnqIDpo68gPiBwb3JyaWRnZTsKK+aKseatiSA+IGJlXC1zb3JyeTsKK+a8gua1riA+IHRvXC1mbG9hdDsKK+alteWlvSA+IGZhYnVsb3VzOwor5qW15aSnID4gZW5vcm1vdXM7CivnlYzmqJkgPiBsYW5kbWFyazsKK+WcsOS9jSA+IHBvc2l0aW9uOwor56ix6YeNID4gdG9cLXdlaWdoOwor56+A5oW2ID4gZmVzdGl2YWw7CivooLvlubIgPiByZWNrbGVzczsKK+msp+WNgCA+IGRvd250b3duOwor5rqW56K6ID4gYWNjdXJhdGU7CivkvrXnlaUgPiBpbnZhc2lvbjsKK+S9tee0lyA+IGRvdWJsaW5nOwor55eF5aSrID4gc2lja1wtbWFuOwor5o6I5LqIID4gdG9cLWF3YXJkOwor5a246KGTID4gbGVhcm5pbmc7CivlnIvlhacgPiBkb21lc3RpYzsKK+iytOmHjSA+IHByZWNpb3VzOwor5bGg5q66ID4gbWFzc2FjcmU7Civmi5TmjokgPiB0b1wtcGx1Y2s7CivnsKHljJYgPiBzaW1wbGlmeTsKK+mpleapqyA+IGFycm9nYW50Owor6LK36YCyID4gcHVyY2hhc2U7CivosrfpgJogPiB0b1wtYnJpYmU7CivmhY7ph40gPiBjYXV0aW91czsKK+a7kea6nCA+IHNsaXBwZXJ5Owor5oyH5bCOID4gdG9cLWd1aWRlOwor5L2N572uID4gcG9zaXRpb247Civnr6HlpaogPiB0b1wtdXN1cnA7Civoh6jluoogPiBjbGluaWNhbDsKK+agveeoriA+IHRvXC1wbGFudDsKK+aIsOeVpSA+IHN0cmF0ZWd5Owor5ZyS5LiBID4gZ2FyZGVuZXI7CivmnKzpq5QgPiBub3VtZW5vbjsKK+mqqOW5uSA+IGJhY2tib25lOwor5Lq66YGTID4gaHVtYW5pdHk7CivouqvliIYgPiBwb3NpdGlvbjsKK+S6uumAoCA+IG1hblwtbWFkZTsKK+eUoualrSA+IGluZHVzdHJ5Owor5bGF5rCRID4gcmVzaWRlbnQ7CivohbPmraUgPiBmb290c3RlcDsKK+aLvOWtlyA+IHNwZWxsaW5nOwor5p2x6YOoID4gdGhlXC1lYXN0Owor6auY5ZywID4gaGlnaGxhbmQ7Civlm7rku7YgPiBmaXJtd2FyZTsKK+S6uui6qyA+IHBlcnNvbmFsOwor6ZGy5bWMID4gdG9cLWlubGF5Owor5qWt5YuZID4gYnVzaW5lc3M7Civlr5/nnIsgPiB0b1wtd2F0Y2g7CivlgI3mlbggPiBtdWx0aXBsZTsKK+WwjeeFpyA+IGNvbnRyYXN0Owor5oq15oq8ID4gbW9ydGdhZ2U7CivogqnohoAgPiBzaG91bGRlcjsKK+euseWtkCA+IHN1aXRjYXNlOwor6Lqr5Lu9ID4gaWRlbnRpdHk7CivkvY7nrYkgPiBpbmZlcmlvcjsKK+WwseatpCA+IGFuZFwtdGh1czsKK+ethuaetiA+IHBlblwtcmFjazsKK+WvtueJqSA+IHRyZWFzdXJlOwor55Sf5pelID4gYmlydGhkYXk7CivpkJjmk7ogPiBwZW5kdWx1bTsKK+mpheaVoyA+IGRpc3BlcnNlOwor5oqx5oCoID4gY29tcGxhaW47CivnrYnmlrwgPiBlcXVhbFwtdG87Civlrbjnv5IgPiB0b1wtbGVhcm47CivmipjmiaMgPiBkaXNjb3VudDsKK+aHuOeWkSA+IHN1c3BlbnNlOwor54+N6LK0ID4gcHJlY2lvdXM7Civmh7fnlpEgPiB0b1wtZG91YnQ7CivnlbblpKkgPiB0aGF0XC1kYXk7CivpjbXnm6QgPiBrZXlib2FyZDsKK+aMh+WNlyA+IHRvXC1ndWlkZTsKK+WutueUqCA+IGhvbWVcLXVzZTsKK+eUn+aEjyA+IGJ1c2luZXNzOwor6ICX6LK7ID4gdG9cLXdhc3RlOwor6Ie05YqbID4gd29ya1wtZm9yOwor5Lqb6KixID4gdHJpZmxpbmc7CivkupTop5IgPiBwZW50YWdvbjsKK+etieW+hSA+IHdhaXRcLWZvcjsKK+aIv+adsSA+IGxhbmRsb3JkOwor5L+u5bu6ID4gdG9cLWJ1aWxkOwor5rWq6LK7ID4gdG9cLXdhc3RlOwor56qB55m8ID4gb3V0YnVyc3Q7Civkv6HlvpIgPiBiZWxpZXZlcjsKK+aJk+aOgyA+IHRvXC1jbGVhbjsKK+aKgOW3pSA+IG1lY2hhbmljOwor5oyB5LmFID4gZHVyYXRpb247CivnrZTlsI0gPiB0b1wtcmVwbHk7Civpoqjou4ogPiB3aW5kbWlsbDsKK+aJi+aPkCA+IHBvcnRhYmxlOwor6aOb6KGMID4gYXZpYXRpb247CivkuI3pnYggPiBub3RcLXdvcms7CivlronnlJ8gPiBwZWFjZWZ1bDsKK+aJk+aJriA+IGRyZXNzXC11cDsKK+WAkuWhjCA+IGNvbGxhcHNlOwor55Sf5a2YID4gdG9cLWV4aXN0Owor6LOm56iFID4gdGF4YXRpb247CivlrZTnqbQgPiBhcGVydHVyZTsKK+a1tOihoyA+IGJhdGhyb2JlOwor5LiA6Z2iID4gb25lXC1zaWRlOwor5oGQ6b6NID4gZGlub3NhdXI7CivlsbHlnaEgPiBoaWxsc2lkZTsKK+mQteWZqCA+IGhhcmR3YXJlOwor55Wr5YOPID4gcG9ydHJhaXQ7CivnlbbkvZwgPiB0cmVhdFwtYXM7Civnpq7osowgPiBjb3VydGVzeTsKK+agveakjSA+IHRvXC1wbGFudDsKK+S/oeWwgSA+IGVudmVsb3BlOwor6IGy56ixID4gdG9cLWNsYWltOwor5bCN5omLID4gb3Bwb25lbnQ7Civkv6HlroggPiBhYmlkZVwtYnk7CivogZbntIQgPiBjb3ZlbmFudDsKK+agoeatoyA+IHJlZ3VsYXRlOwor6YeN6bueID4gZW1waGFzaXM7Civogb3nnL4gPiBhdWRpZW5jZTsKK+mojuW4qyA+IGhvcnNlbWFuOwor56en6IuXID4gc2VlZGxpbmc7Civmga3poIYgPiBkZWZlcmVudDsKK+mNteanvSA+IGtleVwtc2xvdDsKK+izvOeJqSA+IHNob3BwaW5nOwor5Zau5pOaID4gcmVjZWlwdHM7CivmnIPoroogPiB2YXJpYWJsZTsKK+WwkeW5tCA+IGp1dmVuaWxlOwor6aiZ5a2QID4gc3dpbmRsZXI7Civoga/nm58gPiBhbGxpYW5jZTsKK+i3r+WPoyA+IGNyb3NzaW5nOwor6JmV572wID4gcGVuYWxpemU7Civph5HprZogPiBnb2xkZmlzaDsKK+WqmuipniA+IGZsYXR0ZXJ5Owor5ZCr6YePID4gY29udGVudHM7CivnlKjlip8gPiBkaWxpZ2VudDsKK+ethuWQjSA+IHBlblwtbmFtZTsKK+S9m+aVmSA+IGJ1ZGRoaXNtOwor5Y+v6Z2gID4gcmVsaWFibGU7Civos4fnlKIgPiBwcm9wZXJ0eTsKK+mpheWLlSA+IHRvXC1kcml2ZTsKK+mpleWCsiA+IGFycm9nYW50Owor5a+T5omAID4gZHdlbGxpbmc7CivnlLHkvZkgPiBvd2luZ1wtdG87CivomJHoj7AgPiBtdXNocm9vbTsKK+mggemdoiA+IHdlYlwtcGFnZTsKK+S4gOi1tyA+IHRvZ2V0aGVyOwor5ri05pybID4gZGVzaXJvdXM7CivotbDlu4ogPiBjb3JyaWRvcjsKK+acrOiDvSA+IGluc3RpbmN0Owor5Zec5aW9ID4gZm9uZG5lc3M7CivlsI3lpJYgPiBleHRlcm5hbDsKK+e8uumZtyA+IGFcLWRlZmVjdDsKK+ibi+auvCA+IGVnZ3NoZWxsOwor5ZCD6YaLID4gamVhbG91c3k7CivlkIjpgakgPiBzdWl0YWJsZTsKK+WumOaWuSA+IG9mZmljaWFsOwor5ruR5YawID4gdG9cLXNrYXRlOwor5ZWG5qWtID4gYnVzaW5lc3M7CivosqHnlKIgPiBwcm9wZXJ0eTsKK+Wul+aVmSA+IHJlbGlnaW9uOwor6Z+M6auUID4gZmlybXdhcmU7Civlkb3ohIggPiBsaWZlbGluZTsKK+S5g+iHsyA+IGFuZFwtZXZlbjsKK+enn+eohSA+IGxhbmRcLXRheDsKK+mghemNiiA+IG5lY2tsYWNlOwor5oGl6L6xID4gZGlzZ3JhY2U7CivkuI3ooYwgPiB3b24nJ3RcLWRvOwor5a6I5pmCID4gcHVuY3R1YWw7CivmmpfovYkgPiBibGFja291dDsKK+aJk+WNsCA+IHRvXC1wcmludDsKK+WujOaVtCA+IGNvbXBsZXRlOwor5L615ZCeID4gdG9cLWFubmV4Owor5rOi6K2cID4gc3BlY3RydW07CivmoL3lrZAgPiBzZWVkbGluZzsKK+iygueariA+IG1pbmtcLWZ1cjsKK+mGq+mZoiA+IGhvc3BpdGFsOwor6LKh54mpID4gcHJvcGVydHk7Civms7PooaMgPiBzd2ltc3VpdDsKK+a3muawtCA+IHRlYXJkcm9wOwor6IKJ5qGCID4gY2lubmFtb247CivmuJvmjokgPiBzdWJ0cmFjdDsKK+m8u+eCjiA+IHJoaW5pdGlzOwor5p+Q5pmCID4gc29tZXRpbWU7Civol6Xoho8gPiBvaW50bWVudDsKK+WujOaIkCA+IGNvbXBsZXRlOwor5rqi5Ye6ID4gb3ZlcmZsb3c7CivlkJHopb8gPiB3ZXN0d2FyZDsKK+iuiumHjyA+IHZhcmlhYmxlOwor5Y+b6YCGID4gdG9cLXJlYmVsOwor5oiw5Y2AID4gd2FyXC16b25lOwor5Y+x6LKsID4gcmVwcm9hY2g7Civnq4vloLQgPiBwb3NpdGlvbjsKK+iynua9lCA+IGNoYXN0aXR5Owor5qCX5a2QID4gY2hlc3RudXQ7CivkuK3nubwgPiB0b1wtcmVsYXk7Civnv7PnnLwgPiBjYXRhcmFjdDsKK+mOruWNgCA+IHRvd25zaGlwOwor5p2/5rK5ID4gbGVhZlwtZmF0Owor5oe45Z6CID4gb3Zlcmhhbmc7CivphZLprLwgPiBkcnVua2FyZDsKK+S4jeiCliA+IHVud29ydGh5Owor54+t5qmfID4gYWlybGluZXI7CivpoJDoqIAgPiBwcm9waGVjeTsKK+eql+WtkCA+IGNhc2VtZW50Owor5a+m5YqbID4gc3RyZW5ndGg7Civmh4nlsI0gPiByZXNwb25zZTsKK+e+mue+iiA+IGFudGVsb3BlOwor5Lqk5rWBID4gZXhjaGFuZ2U7Civlj5voroogPiByZW5lZ2FkZTsKK+aIsOS6iyA+IGZpZ2h0aW5nOwor5Y+v6KGMID4gZmVhc2libGU7CivmhpTmgrQgPiBsYW5ndWlzaDsKK+WNsemboyA+IGNhbGFtaXR5Owor5a6J5a+nID4gcGVhY2VmdWw7CivkuLnnoIIgPiBjaW5uYWJhcjsKK+aguOWHhiA+IHNhbmN0aW9uOwor6K206LKsID4gZGVub3VuY2U7CivmoYjku7YgPiBsYXdcLWNhc2U7Civlp7vopqogPiBhZmZpbml0eTsKK+a1qua8qyA+IHJvbWFudGljOwor5p2R5rCRID4gdmlsbGFnZXI7CivmhbfmhaggPiB2ZWhlbWVudDsKK+irlum7niA+IGFyZ3VtZW50Owor5pyo54KtID4gY2hhcmNvYWw7Civpu4Pnk5wgPiBjdWN1bWJlcjsKK+S4jeerryA+IGltcHJvcGVyOwor5pqX6IeqID4gaW53YXJkbHk7Civmh4rllqogPiBkZWplY3RlZDsKK+eogOaciSA+IHVuY29tbW9uOwor6aOb5qmfID4gYWlycGxhbmU7CivlrqTlj4sgPiByb29tbWF0ZTsKK+iytuaKkSA+IGJlbGl0dGxlOwor6JaE6IacID4gbWVtYnJhbmU7CivmnbHmlrkgPiB0aGVcLWVhc3Q7CivnqIXmlLYgPiB0YXhhdGlvbjsKK+miqOa9riA+IGNhbXBhaWduOwor6IOM5YyFID4ga25hcHNhY2s7Civpu6jmtL4gPiBwYXJ0aXNhbjsKK+WtkOWxpCA+IHN1YmxheWVyOwor6aOy5paZID4gYmV2ZXJhZ2U7CivkurrmiYsgPiBtYW5wb3dlcjsKK+S6jOaciCA+IGZlYnJ1YXJ5Owor5rKS6JC9ID4gZG93bmZhbGw7CivlkKvnorMgPiBjYXJib25pYzsKK+acgOeCuiA+IHRoZVwtbW9zdDsKK+mGq+iXpSA+IG1lZGljaW5lOwor5rex5aWnID4gcHJvZm91bmQ7CivllZ/li5UgPiB0b1wtc3RhcnQ7CivlrbjllY8gPiBsZWFybmluZzsKK+S4jeeUqCA+IG5lZWRcLW5vdDsKK+miqOawtCA+IGZlbmdzaHVpOwor5oSa5pinID4gaWdub3JhbnQ7CivmnZDmlpkgPiBtYXRlcmlhbDsKK+awtOi3ryA+IHdhdGVyd2F5Owor5a2Q5aWzID4gY2hpbGRyZW47CivkuovmlYUgPiBhY2NpZGVudDsKK+mHh+iBsiA+IGFwcGxhdXNlOwor5a6M5YWoID4gY29tcGxldGU7CivnorDop7ggPiB0b1wtdG91Y2g7CivkuI3njaggPiBub3RcLW9ubHk7CivlrprkvY0gPiBwb3NpdGlvbjsKK+WtmOWcqCA+IHRvXC1leGlzdDsKK+iyqOW5oyA+IGN1cnJlbmN5Owor5LiL542EID4gaW1wcmlzb247CivlrbXljJYgPiBicmVlZGluZzsKK+iaiuWtkCA+IG1vc3F1aXRvOwor5LiN54m5ID4gbm90XC1vbmx5Owor6Z6t6J+yID4gd2hpcHdvcm07CivkuI3niL0gPiBub3RcLXdlbGw7CivmgKfog70gPiBmdW5jdGlvbjsKK+a0qua1gSA+IGNhdGFyYWN0Owor5oeC5LqLID4gc2Vuc2libGU7Civpo5/mhb4gPiBhcHBldGl0ZTsKK+mDqOmhniA+IGNhdGVnb3J5Owor5ZCM55ufID4gYWxsaWFuY2U7CivpnIfpqZogPiB0b1wtc2hvY2s7CivlkLjnhZkgPiB0b1wtc21va2U7CivorJ3orJ0gPiB0b1wtdGhhbms7CivkuI3mv58gPiBub3RcLWdvb2Q7CivpoK3nl5sgPiBoZWFkYWNoZTsKK+S8meS8tCA+IHBhcnRpc2FuOwor5pqX55uSID4gbWFnYXppbmU7Civogpblg48gPiBwb3J0cmFpdDsKK+S4reatoiA+IHRvXC1jZWFzZTsKK+ism+ipsSA+IGFcLXNwZWVjaDsKK+ael+WcsCA+IHdvb2RsYW5kOwor5rex5Yi7ID4gcHJvZm91bmQ7Civkuq3lrZAgPiBwYXZpbGlvbjsKK+mfs+evgCA+IHN5bGxhYmxlOwor5p625YuiID4gYXR0aXR1ZGU7CivkuI3muKwgPiBhY2NpZGVudDsKK+WkqumVtyA+IG92ZXJzaXplOwor5Yui6aCtID4gbW9tZW50dW07CivlpKfploAgPiBlbnRyYW5jZTsKK+aEmuW8hCA+IGRlcmlzaW9uOwor5b6A6YKEID4gY29udGFjdHM7CivmsrvnmYIgPiB0b1wtdHJlYXQ7CivnpKbnlKIgPiBtaW5lcmFsczsKK+S4iua1tyA+IHNoYW5naGFpOwor572q54qvID4gY3JpbWluYWw7CivniJDpgoogPiBmaXJlc2lkZTsKK+aEieW/qyA+IGNoZWVyZnVsOwor6K6K56iuID4gbXV0YXRpb247Civoq5bov7AgPiB0cmVhdGlzZTsKK+WLn+mbhiA+IHRvXC1yYWlzZTsKK+a1t+WzvSA+IHN0cmFpZ2h0Owor54it6KuWID4gdG9cLWFyZ3VlOwor6IGW5YyWID4gc2FuY3RpZnk7CivmmI7ohqsgPiBtYW5pZmVzdDsKK+mHjeeUsyA+IHJlYWZmaXJtOwor5pq05rSqID4gYVwtc3VkZGVuOwor5pu/5o+bID4gZXhjaGFuZ2U7CivppKHlhZIgPiBzdHVmZmluZzsKK+acieaJgCA+IHNvbWV3aGF0Owor5pal6LKsID4gZGVub3VuY2U7Civph43njbIgPiByZWNvdmVyeTsKK+S4jeacvSA+IGltbW9ydGFsOwor5rW35aSWID4gb3ZlcnNlYXM7CivnjovlrrYgPiBwcmluY2VseTsKK+WTqOWFtSA+IHNlbnRpbmVsOwor6LK25L2OID4gYmVsaXR0bGU7Civpm4npm54gPiBwaGVhc2FudDsKK+aDs+WutiA+IGhvbWVzaWNrOwor5ZOl5YWSID4gYnJvdGhlcnM7Civoj6/pupcgPiBnb3JnZW91czsKK+iyt+S4uyA+IGN1c3RvbWVyOwor5oWY5LqLID4gZGlzYXN0ZXI7CivpoJDmuKwgPiBmb3JlY2FzdDsKK+e+juaXpSA+IHVzXC1qYXBhbjsKK+iyoOWCtSA+IGluZGVidGVkOwor6Zuo6YePID4gcmFpbmZhbGw7Civlj7jms5UgPiBqdWRpY2lhbDsKK+iqlei+sCA+IGJpcnRoZGF5Owor5ZKz5Ze9ID4gdG9cLWNvdWdoOwor5oKy5oWfID4gbW91cm5mdWw7CivliqDplbcgPiBsZW5ndGhlbjsKK+WQkOajhCA+IHRvXC1zcHVybjsKK+WLuOiqqiA+IHBlcnN1YWRlOwor6JmV5YiGID4gZGlzcG9zYWw7Civml6Xnvo4gPiBqYXBhblwtdXM7Civlop7pq5ggPiBoZWlnaHRlbjsKK+mBsumgkyA+IGluYWN0aXZlOwor6LKh5Li7ID4gcmljaFwtbWFuOwor5LiN5oiQID4gd29uJyd0XC1kbzsKK+WkouipsSA+IGRheWRyZWFtOwor5LiN5oeIID4gdW50aXJpbmc7CivlpKfopoEgPiBhYnN0cmFjdDsKK+acgOWwkSA+IHNtYWxsZXN0Owor6K2354WnID4gcGFzc3BvcnQ7CivkuLvlrrAgPiBkb21pbmF0ZTsKK+WkouimiyA+IHRvXC1kcmVhbTsKK+S4jeaDnyA+IG5vdFwtb25seTsKK+S6i+WFkiA+IGJ1c2luZXNzOwor5aSn6KGjID4gb3ZlcmNvYXQ7Civnp7vkuqQgPiB0cmFuc2ZlcjsKK+abuOWvqyA+IHRvXC13cml0ZTsKK+S4jeaAlSA+IGZlYXJsZXNzOwor5LiN5b+FID4gbmVlZFwtbm90Owor5rKW5rSXID4gdG9cLXJpbnNlOwor5LiN5b6XID4gbXVzdFwtbm90Owor5LiN5b6IID4gbm90XC12ZXJ5Owor5pqX5pqXID4gc2VjcmV0bHk7CivlibfpmaQgPiByb290XC1vdXQ7CivwqLq5ID4gbW91cm5mdWw7CivnpZ7mgKcgPiBkaXZpbml0eTsKK+e4veijgSA+IGNoYWlybWFuOwor5aSW6KGoID4gZXh0ZXJuYWw7CivmsonmtbggPiBwZXJtZWF0ZTsKK+aUr+mFjSA+IGRvbWluYXRlOwor576O5b63ID4gYVwtdmlydHVlOwor6ZuE6L6vID4gZWxvcXVlbnQ7Civpu57lkI0gPiByb2xsY2FsbDsKK+W/veeEtiA+IHN1ZGRlbmx5Owor5pel56iLID4gc2NoZWR1bGU7Civlp6bmt6sgPiBhZHVsdGVyeTsKK+ixquS/oCA+IGNhdmFsaWVyOwor5pe655ubID4gdmlnb3JvdXM7CivlpJbomZ8gPiBuaWNrbmFtZTsKK+Wlh+iBniA+IGFuZWNkb3RlOwor5YmN6aGNID4gZm9yZWhlYWQ7CivmtbfkuIogPiBtYXJpdGltZTsKK+mbnOiqjCA+IG1hZ2F6aW5lOwor57ay6ZqbID4gaW50ZXJuZXQ7CivnhrHoqqAgPiBkZXZvdGlvbjsKK+WQiOaIkCA+IGNvbXBvdW5kOwor5ZG85Y+rID4gdG9cLXNob3V0Owor5aSp6IqxID4gc21hbGxwb3g7Civpm6jooaMgPiByYWluY29hdDsKK+WQjOaEjyA+IHRvXC1hZ3JlZTsKK+acrOS+hiA+IG9yaWdpbmFsOwor5pys5L2NID4gc3RhbmRhcmQ7CivlkJHlvowgPiBiYWNrd2FyZDsKK+acjeWLmSA+IHRvXC1zZXJ2ZTsKK+awkeecviA+IHBvcHVsYWNlOwor5aiB5pybID4gcHJlc3RpZ2U7CivmtLvli5UgPiBhY3Rpdml0eTsKK+WPm+aVmSA+IGFwb3N0YWN5Owor5LiN5aSnID4gbm90XC12ZXJ5Owor5aSn6IO9ID4gYWxtaWdodHk7CivmnInlipsgPiBwb3dlcmZ1bDsKK+aZguapnyA+IG9jY2FzaW9uOwor5ZCm5a6aID4gbmVnYXRpdmU7Civol6XllYYgPiBkcnVnZ2lzdDsKK+WPjeaYoCA+IHJlYWN0aW9uOwor6YG66LSIID4gYmVxdWVhdGg7CivmlofogbcgPiBjaXZpbGlhbjsKK+WpmuWrgSA+IG1hcnJpYWdlOwor57eK6L+rID4gcHJlc3Npbmc7CivorormlbggPiB2YXJpYWJsZTsKK+itsOahiCA+IHByb3Bvc2FsOwor5ZCb5a2QID4gbm9ibGVtYW47Civlu7roqK0gPiB0b1wtYnVpbGQ7CivnibnmtL4gPiBkaXNwYXRjaDsKK+mbu+iFpiA+IGNvbXB1dGVyOwor5ZCM5bGLID4gcm9vbW1hdGU7Civol6XlipEgPiBtZWRpY2luZTsKK+S4gOWcmCA+IHJlZ2ltZW50Owor56Oo5pOmID4gZnJpY3Rpb247Civmkq3pn7MgPiB0cmFuc21pdDsKK+WPsOW6pyA+IHBlZGVzdGFsOwor5qy66LKgID4gdG9cLWJ1bGx5Owor6YGO6LyJID4gb3ZlcmxvYWQ7CivpgbLoqqQgPiB0b1wtZGVsYXk7CivnpZblnIsgPiBob21lbGFuZDsKK+mghuW+niA+IG9iZWRpZW50Owor5Li75Lu7ID4gZGlyZWN0b3I7Civms7DlnIsgPiB0aGFpbGFuZDsKK+ino+mWiyA+IHRvXC11bnRpZTsKK+aal+WupCA+IGRhcmtyb29tOwor5aW254mbID4gbWlsa1wtY293Owor5Y+N5oeJID4gcmVhY3Rpb247CivmgrLliIcgPiBtb3VybmZ1bDsKK+S4jeWPqiA+IG5vdFwtb25seTsKK+W5tOmdkiA+IHlvdXRoZnVsOwor6aCG5bqPID4gc2VxdWVuY2U7CivkuK3kv50gPiBhZHZvY2F0ZTsKK+W5s+mdnCA+IHRyYW5xdWlsOwor5ae/5oWLID4gYXR0aXR1ZGU7CivlkYrliKUgPiB0b1wtbGVhdmU7CivkuIDlkaggPiBvbmVcLXdlZWs7CivmrLroqZAgPiB0b1wtY2hlYXQ7CivkuIDlkJEgPiBhbGxcLWxvbmc7Civmm53lhYkgPiBleHBvc3VyZTsKK+awruawoyA+IG5pdHJvZ2VuOwor6ZmE6YyEID4gYXBwZW5kaXg7CivkuIDljJkgPiBzcG9vbmZ1bDsKK+eil+argyA+IGN1cGJvYXJkOwor56CU56m2ID4gcmVzZWFyY2g7CivmgKDmg7AgPiBpZGxlbmVzczsKK+WMheeariA+IHdyYXBwaW5nOwor54qv5oSBID4gdG9cLXdvcnJ5Owor5Yiw6YGUID4gdG9cLXJlYWNoOwor5Y+l5a2QID4gc2VudGVuY2U7CivlpYnnj74gPiBvZmZlcmluZzsKK+S4jeWApiA+IHRpcmVsZXNzOwor5q+P55W2ID4gd2hlbmV2ZXI7CivoqILos7wgPiB0b1wtb3JkZXI7CivmlpHnmb0gPiBncml6emxlZDsKK+itieaTmiA+IGV2aWRlbmNlOwor56WW5YWIID4gYW5jZXN0b3I7CivluLjpp5AgPiByZXNpZGVudDsKK+aatOWKmyA+IHZpb2xlbmNlOwor6ZuG6IGaID4gYXNzZW1ibGU7CivmmJTml6UgPiBmb3JtZXJseTsKK+WKn+iDvSA+IGZ1bmN0aW9uOwor6K2m5oOVID4gdmlnaWxhbnQ7Civms6Lli5UgPiB1bmR1bGF0ZTsKK+mgkOWgsSA+IGZvcmVjYXN0Owor5aWH54m5ID4gcGVjdWxpYXI7Civlv6DmlrwgPiBsb3lhbFwtdG87CivmmI7ml6UgPiB0b21vcnJvdzsKK+ips+e0sCA+IGRldGFpbGVkOwor5pq05YWJID4gZXhwb3N1cmU7CivpoJHlm7ogPiBzdHViYm9ybjsKK+mBuOiIiSA+IHRvXC1lbGVjdDsKK+mAgOmBvyA+IHdpdGhkcmF3Owor57e057+SID4gZXhlcmNpc2U7Civln7nppIogPiB0b1wtdHJhaW47Civpn4zluLYgPiBsaWdhbWVudDsKK+aSpOmAgCA+IHJldHJlYXQ7Civnib3mia8gPiBpbnZvbHZlOwor5ama5LqLID4gd2VkZGluZzsKK+aqoumWsSA+IGluc3BlY3Q7CivoqLToi6YgPiBncnVtYmxlOwor5pqr5YGcID4gc3VzcGVuZDsKK+inuOinkiA+IGFudGVubmE7CivlvarngrMgPiBzaGluaW5nOwor57235LyRID4gZ2l2ZVwtdXA7CivntLDplbcgPiBzbGVuZGVyOwor6KqN55yfID4gZWFybmVzdDsKK+aZguWwmiA+IGZhc2hpb247CivniYjmnKwgPiB2ZXJzaW9uOwor6L+06L2JID4gcmV2b2x2ZTsKK+W6h+ittyA+IHNoZWx0ZXI7CivphbjmgKcgPiBhY2lkaXR5Owor57eo57qCID4gY29tcGlsZTsKK+WQm+S4uyA+IG1vbmFyY2g7CivnuL3nkIYgPiBwcmVtaWVyOwor5aSp54S2ID4gbmF0dXJhbDsKK+edoeihoyA+IHBhamFtYXM7CivmlbTnkIYgPiBhcnJhbmdlOwor54WZ6I2JID4gdG9iYWNjbzsKK+eHpueImyA+IGdsaXR0ZXI7Civlj6/li5UgPiBtb3ZhYmxlOwor5rC05omLID4gbWFyaW5lcjsKK+WQhOWAiyA+IHZhcmlvdXM7Civlj6PlkIMgPiBzdGFtbWVyOwor6I+P6JitID4gaG9sbGFuZDsKK+mgmOWFiCA+IHRvXC1sZWFkOwor6I+g6I+cID4gc3BpbmFjaDsKK+WNgeaciCA+IG9jdG9iZXI7CivorprlkIwgPiBhcHByb3ZlOwor5q+b5q+vID4gYmxhbmtldDsKK+mZveiHuiA+IGJhbGNvbnk7Civov5Hpg4ogPiBzdWJ1cmJzOwor54uC5ZacID4gZWNzdGFzeTsKK+awuOaBhiA+IGV0ZXJuYWw7Civoq4vmsYIgPiByZXF1ZXN0Owor6YSZ5qOEID4gZGlzZGFpbjsKK+WHuui1sCA+IHRvXC1mbGVlOwor5pWI55uKID4gYmVuZWZpdDsKK+mHjeWKmyA+IGdyYXZpdHk7CivnorzlrZcgPiBudW1lcmFsOwor57Sh6YyYID4gc3BpbmRsZTsKK+W8hOeijiA+IGNydW1ibGU7Civlp5DlprkgPiBzaXN0ZXJzOwor55uu6YyEID4gY2F0YWxvZzsKK+ato+eiuiA+IGNvcnJlY3Q7Civlv4PmhJsgPiBiZWxvdmVkOwor5byE55+tID4gc2hvcnRlbjsKK+eEoeiZlSA+IG5vd2hlcmU7CivororljpogPiB0aGlja2VuOwor5aaW5oCqID4gbW9uc3RlcjsKK+e3iue3iiA+IGNsb3NlbHk7CivpmrHnp4EgPiBwcml2YWN5Owor6Zec6Y21ID4gY3J1Y2lhbDsKK+Wnv+WLoiA+IHBvc3R1cmU7CivlppLlv4wgPiBqZWFsb3VzOwor5by354OIID4gaW50ZW5zZTsKK+WlveaIsCA+IHdhcmxpa2U7CivlubPooaEgPiBiYWxhbmNlOwor54m55a6aID4gc3BlY2lhbDsKK+W8hOeauiA+IGNydW1wbGU7Civnm7jpgKMgPiB0b1wtbGluazsKK+aWh+azlSA+IGdyYW1tYXI7Civlj6TkvoYgPiBvbGR0aW1lOwor5aSp5rCjID4gd2VhdGhlcjsKK+ato+ebtCA+IHVwcmlnaHQ7CivphZLlu6AgPiBicmV3ZXJ5Owor5b6B5pyNID4gY29ucXVlcjsKK+e0oumBkyA+IHJvcGV3YXk7CivpmbjnuowgPiBpblwtdHVybjsKK+maseeeniA+IHRvXC1oaWRlOwor5aSW5rWBID4gb3V0ZmxvdzsKK+W3pemgrSA+IGZvcmVtYW47Civlj6bkuIAgPiBhbm90aGVyOwor6YGg56uvID4gZmFyXC1lbmQ7Civnmq7pnakgPiBsZWF0aGVyOwor5Yqg55ScID4gc3dlZXRlbjsKK+mfs+S/oSA+IG1lc3NhZ2U7CivnhrHnh5kgPiB0b1wtYnVybjsKK+manOekmSA+IGJhcnJpZXI7Civoqp7ms5UgPiBncmFtbWFyOwor6K2m5ZGKID4gdG9cLXdhcm47CivnhLbogIwgPiBob3dldmVyOwor5aSn5qaCID4gcm91Z2hseTsKK+mbu+axoCA+IGJhdHRlcnk7Civlpb3lub4gPiBzZXZlcmFsOwor5q+U5pa5ID4gYW5hbG9neTsKK+mAgOiQvSA+IHN1YnNpZGU7CivororkuoIgPiB0dXJtb2lsOwor6KuL5pWZID4gY29uc3VsdDsKK+eGsea9riA+IHVwc3VyZ2U7CivmrLrnnp4gPiB0b1wtZm9vbDsKK+avlOaTrCA+IGNvbXBhcmU7CivorbDlg7kgPiBiYXJnYWluOwor57qW5byxID4gZnJhZ2lsZTsKK+WNmuWtuCA+IGxlYXJuZWQ7CivopovorYkgPiB3aXRuZXNzOwor5Yqg54axID4gaGVhdGluZzsKK+WfjumDiiA+IHN1YnVyYnM7CivniafloLQgPiBwYXN0dXJlOwor6Z2e5bi4ID4gdW51c3VhbDsKK+WLh+awoyA+IGNvdXJhZ2U7CivlpLHmlYggPiB0b1wtZmFpbDsKK+WFiOmphSA+IHBpb25lZXI7CivprpHprZogPiBhYmFsb25lOwor54qv5Lq6ID4gY29udmljdDsKK+iNt+iYrSA+IGhvbGxhbmQ7Civpm6PmsJEgPiByZWZ1Z2VlOwor6YCj57WQID4gY29ubmVjdDsKK+W+iOW/qyA+IHF1aWNrbHk7CivpgbrniakgPiByZW1uYW50Owor5q+S5omTID4gYmVhdFwtdXA7CivphpzkuosgPiBzY2FuZGFsOwor6ZmN57SaID4gZGVncmFkZTsKK+eEpuezliA+IGNhcmFtZWw7CivmkZjopoEgPiBzdW1tYXJ5Owor6YCy56iLID4gcHJvY2VzczsKK+i+r+inoyA+IGV4cGxhaW47CivmkZTop5IgPiB3cmVzdGxlOwor5YyF5omOID4gd3JhcFwtdXA7Civlu6LniakgPiBydWJiaXNoOwor5aWH5oCqID4gc3RyYW5nZTsKK+WnlOS7uyA+IGFwcG9pbnQ7Civmq4Poh7ogPiBjb3VudGVyOwor5q6Y5qCqID4gc3R1YmJsZTsKK+WlveWlhyA+IGN1cmlvdXM7CivnmbvpmbggPiB0b1wtbGFuZDsKK+avhuaJkyA+IGJlYXRcLXVwOwor55uj6KaWID4gb3ZlcnNlZTsKK+W9ouaIkCA+IHRvXC1mb3JtOwor57i95pW4ID4gYVwtdG90YWw7CivnibnliLYgPiBzcGVjaWFsOwor5by35pq0ID4gdmlvbGVudDsKK+W+t+WciyA+IGdlcm1hbnk7CivntbHntbEgPiB0b3RhbGx5Owor54Sh56quID4gZW5kbGVzczsKK+efruaelyA+IGNvcHBpY2U7CivlooPnlYwgPiBib3VuZHJ5Owor5byE5q2qID4gZGlzdG9ydDsKK+WGsOiiiyA+IGljZVwtYmFnOwor6K2J5Lq6ID4gd2l0bmVzczsKK+mWseiugCA+IHRvXC1yZWFkOwor6YO15beuID4gcG9zdG1hbjsKK+mdouWariA+IHRvXC1mYWNlOwor6Ke455m8ID4gdHJpZ2dlcjsKK+eIreWftyA+IGRpc3B1dGU7CivngJ3pnZIgPiBhc3BoYWx0Owor5Y2z5L6/ID4gZXZlblwtaWY7CivlpKflu4ggPiBlZGlmaWNlOwor55m86YW1ID4gZmVybWVudDsKK+WNs+S9vyA+IGV2ZW5cLWlmOwor6Zax6Ka9ID4gdG9cLXJlYWQ7Civlubjnpo8gPiBibGVzc2VkOwor54Sh55uKID4gbm9cLWdvb2Q7CivliKnnm4ogPiBiZW5lZml0Owor6Ziy56amID4gZGVmZW5zZTsKK+att+aZgiA+IHRvXC1sYXN0Owor54mI5Yi7ID4gY2FydmluZzsKK+e2k+eQhiA+IG1hbmFnZXI7CivphY3lgbYgPiBjb25zb3J0Owor5q2q5puyID4gZGlzdG9ydDsKK+aVkeaPtCA+IHRvXC1zYXZlOwor5pel5Ye6ID4gc3VucmlzZTsKK+awo+WAmSA+IGNsaW1hdGU7CivnuYPluLYgPiBiYW5kYWdlOwor54Sh55SoID4gdXNlbGVzczsKK+mAl+eVmSA+IHN0YXlcLWF0Owor5Yip55SoID4gZXhwbG9pdDsKK+WNgOWNgCA+IHRyaXZpYWw7CivniK3lkLUgPiBkaXNwdXRlOwor5b6u5YWJID4gZ2xpbW1lcjsKK+avj+WknCA+IG5pZ2h0bHk7CivpgZXms5UgPiBpbGxlZ2FsOwor5Ye656efID4gdG9cLXJlbnQ7Civpm4DmlpEgPiBmcmVja2xlOwor5pS25pOaID4gcmVjZWlwdDsKK+WNgeWFrSA+IHNpeHRlZW47CivnuarlnJYgPiB0b1wtZHJhdzsKK+WdpumAlCA+IGhpZ2h3YXk7Civnn6XmgokgPiB0b1wta25vdzsKK+aUr+aSkCA+IHByb3BcLXVwOwor54ax5oOFID4gY29yZGlhbDsKK+aOkumZpCA+IGV4Y2x1ZGU7CivljYHlgI0gPiB0ZW5mb2xkOwor5Ymb5q+bID4gYnJpc3RsZTsKK+apq+iHpSA+IHJlY2xpbmU7CivliLrmv4AgPiBwcm92b2tlOwor57aT5r+fID4gZWNvbm9teTsKK+e0sOevgCA+IGRldGFpbHM7Civnsr7oo70gPiByZWZpbmVkOwor5pWZ5birID4gdGVhY2hlcjsKK+aogui2oyA+IGRlbGlnaHQ7CivmlLbmiJAgPiBoYXJ2ZXN0Owor5Y2B5LqUID4gZmlmdGVlbjsKK+WkmuWkpyA+IGhvd1wtYmlnOwor5YWx6JmVID4gY29leGlzdDsKK+aUquaLjCA+IHRvXC1zdGlyOwor6LyV6LyVID4gbGlnaHRseTsKK+WIqea9pCA+IHByb2ZpdHM7Civoo53ovIkgPiB0b1wtbG9hZDsKK+WMheWQqyA+IGNvbnRhaW47Civmk6/mo4QgPiBhYmFuZG9uOwor55m86KGMID4gcHVibGlzaDsKK+eZveifuyA+IHRlcm1pdGU7CivpgbjmiYsgPiBhdGhsZXRlOwor5aSx5Y67ID4gdG9cLWxvc2U7CivovKroqaIgPiB0b1wtcG9sbDsKK+W9q+WIuyA+IGVuZ3JhdmU7CivoirHosrsgPiBleHBlbnNlOwor6JGJ5a2QID4gZm9saWFnZTsKK+iNieeovyA+IG91dGxpbmU7CivmrabluqsgPiBhcnNlbmFsOwor5byE5bmzID4gZmxhdHRlbjsKK+WItuatoiA+IHRvXC1jdXJiOwor57O+57SbID4gZGlzcHV0ZTsKK+iMheiIjSA+IGNvdHRhZ2U7CivnhafmkKwgPiB0b1wtY29weTsKK+WFteiJpiA+IHdhcnNoaXA7Civoo5zosrwgPiBzdWJzaWR5Owor5q2j5bi4ID4gcmVndWxhcjsKK+W7muaIvyA+IGtpdGNoZW47CivmlofljJYgPiBjdWx0dXJlOwor5bSp6Zm3ID4gZmFsbFwtaW47CivpgJnmrKEgPiBwcmVzZW50Owor5bey57aTID4gYWxyZWFkeTsKK+W3tOe1kCA+IGZhd25cLW9uOwor55q657SLID4gd3JpbmtsZTsKK+asiuadliA+IHNjZXB0ZXI7CivljIbkv4MgPiBoYXN0aWx5Owor5qyE5p+1ID4gYmFycmllcjsKK+eZvuiQrCA+IG1pbGxpb247CivlpJrljYogPiBjaGllZmx5Owor55uu55qEID4gcHVycG9zZTsKK+mAseacqyA+IHdlZWtlbmQ7CivliJ3mraUgPiBpbml0aWFsOwor5qyE5p2GID4gcmFpbGluZzsKK+eFqeaDsSA+IGFnb25pemU7CivlvYjlir4gPiBpbXBlYWNoOwor54Wp5oK2ID4gYW5ndWlzaDsKK+W5q+a0viA+IGZhY3Rpb247CivooajpnaIgPiBzdXJmYWNlOwor57Of57OVID4gdG9vXC1iYWQ7CivnuL3liYcgPiBwcm9maWxlOwor6Zqq5bO7ID4gYXJkdW91czsKK+WItuacjSA+IHVuaWZvcm07Civlg4/pioAgPiBzaWx2ZXJ5Owor5YmN5o+QID4gcHJlbWlzZTsKK+e3qOWvqyA+IGNvbXBpbGU7Civntq3mjIEgPiB0b1wta2VlcDsKK+aOpeinuCA+IGNvbnRhY3Q7Civli53liKkgPiB2aWN0b3J5Owor5aSl5Ly0ID4gcGFydG5lcjsKK+aVmeWToSA+IHRlYWNoZXI7Civpq5XpqqggPiBrbmVlY2FwOwor5pOB5pyJID4gdG9cLWhhdmU7CivmraTlpJYgPiBiZXNpZGVzOwor5by35Yi2ID4gZW5mb3JjZTsKK+i7iui8myA+IHZlaGljbGU7CivpnI3kuoIgPiBjaG9sZXJhOwor6Iqs6JitID4gZmlubGFuZDsKK+aVuOS9jSA+IGRpZ2l0YWw7CivovJXolJEgPiBkaXNkYWluOwor57Wy5p+PID4gY3lwcmVzczsKK+Wft+eFpyA+IGxpY2Vuc2U7Civmq4Pmqq8gPiBjb3VudGVyOwor54Sh5pWIID4gaW5cLXZhaW47Civlo4Hlo5ggPiByYW1wYXJ0Owor6YCj5o6lID4gdG9cLWxpbms7CivoqIrmga8gPiBtZXNzYWdlOwor57SZ54WZID4gY2lnYXJldDsKK+att+WPsiA+IGhpc3Rvcnk7CivnnLrmnJsgPiBsb29rb3V0Owor6Zec54WnID4gY29uY2VybjsKK+WGsOeJhyA+IGJvcm5lb2w7CivliofloLQgPiB0aGVhdGVyOwor54ax5YiHID4gZmVydmVudDsKK+WLleS6giA+IHR1cm1vaWw7Civmjqnok4sgPiBjb25jZWFsOwor6Zi75pSUID4gdG9cLXN0b3A7CivlvJ/lhYQgPiBicm90aGVyOwor6Zi75pOLID4gdG9cLXN0b3A7CivnnInmr5sgPiBleWVicm93Owor5aOr5YW1ID4gc29sZGllcjsKK+iiq+ikpSA+IGJlZGRpbmc7Civmk7rlrZAgPiBtYWxhcmlhOwor6KGw6YCAID4gZGVjbGluZTsKK+W8leWHuiA+IGV4dHJhY3Q7Civmk5Tlv4MgPiBhbnhpb3VzOwor5YWs56S+ID4gY29tbXVuZTsKK+e1kOaenCA+IG91dGNvbWU7Civmkafmr4AgPiBkZXN0cm95Owor5q2y5YWlID4gcmV2ZW51ZTsKK+WIhuaVoyA+IHNjYXR0ZXI7CivloorlrZAgPiBjdXNoaW9uOwor54Sm5oClID4gYW54aWV0eTsKK+aUtuWIsCA+IHJlY2VpdmU7Civnm6PmuKwgPiBtb25pdG9yOwor6ayi6KeSID4gdGVtcGxlczsKK+aPreekuiA+IHRvXC1zaG93Owor6KaB5rGCID4gcmVxdWVzdDsKK+eXlei3oSA+IHZlc3RpZ2U7CivliZ3lpaogPiBkZXByaXZlOwor6L6y5rCRID4gcGVhc2FudDsKK+W7oOWVhiA+IGNvbXBhbnk7CivliLDlupUgPiBmaW5hbGx5Owor5YaS54WZID4gc21va2luZzsKK+ewoeimgSA+IGNvbmNpc2U7CivmlL7ku7sgPiBpbmR1bGdlOwor6YCa5bi4ID4gcmVndWxhcjsKK+ecn+aRryA+IHNpbmNlcmU7CivntIXmtbcgPiByZWRcLXNlYTsKK+WGsOaysyA+IGdsYWNpYWw7CivntJTmraMgPiBnZW51aW5lOwor5Yio5belID4gcGxhbmluZzsKK+eFmeWbqiA+IGNoaW1uZXk7CivlubvlvbEgPiBwaGFudG9tOwor5ouU6aCCID4gdG9wcGluZzsKK+eZveeZvSA+IGluXC12YWluOwor5YWI55+lID4gcHJvcGhldDsKK+eWvui1sCA+IHNjYW1wZXI7Civlt7Lmu4UgPiBleHRpbmN0Owor57Gg572pID4gZW52ZWxvcDsKK+e1seW4pSA+IGNvbW1hbmQ7CivpmbblmaggPiBwb3R0ZXJ5Owor6ZmE5a+EID4gZW5jbG9zZTsKK+e1qOW4gyA+IGZsYW5uZWw7Civov47mjqUgPiB0b1wtbWVldDsKK+WEmOeuoSA+IGRlc3BpdGU7CivpmLvlsLwgPiBkYW1waW5nOwor55Sc6bueID4gZGVzc2VydDsKK+i7jeiJpiA+IHdhcnNoaXA7Civnmbznj74gPiB0b1wtZmluZDsKK+mWg+eIjSA+IGZsaWNrZXI7CivooaPoo50gPiBnYXJtZW50Owor5YKZ6Ki7ID4gcmVtYXJrczsKK+aUlOS9jyA+IHRvXC1zdG9wOwor6KOC57SLID4gY3JhY2tsZTsKK+aMkei1tyA+IHN0aXJcLXVwOwor6Zeh5piOID4gY2xhcmlmeTsKK+WIsOWgtCA+IHNob3dcLXVwOwor6YGO5YmpID4gc3VycGx1czsKK+i5o+i3miA+IHN0YWdnZXI7Civnm5vmnIMgPiBwYWdlYW50Owor5Ymd5YmKID4gZXhwbG9pdDsKK+aPj+eVqyA+IHRvXC1kcmF3Owor6KOo55uKID4gYmVuZWZpdDsKK+mBh+WIsCA+IHRvXC1tZWV0Owor5YG96K2JID4gcGVyanVyeTsKK+apn+aisCA+IG1hY2hpbmU7Civnhafkuq4gPiBsaWdodGVuOwor6Zmz5YiXID4gZGlzcGxheTsKK+WBnOi7iiA+IHRvXC1zdG9wOwor6Zm95YKYID4gcGFyYXNvbDsKK+WxsemggiA+IGhpbGx0b3A7CivmjoznrqEgPiBjb250cm9sOwor6KOc55uKID4gYmVuZWZpdDsKK+aLt+iynSA+IHRvXC1jb3B5Owor5pOg5YWlID4gaW50cnVkZTsKK+asiuWIqSA+IGFcLXBvd2VyOwor6Iqx55KwID4gZ2FybGFuZDsKK+WFrOawkSA+IGNpdGl6ZW47Civlt7TmnpcgPiBiYWhyYWluOwor5YG96KOdID4gdG9cLWZha2U7CivloIXlvLcgPiBzdGF1bmNoOwor5bmz5Z2HID4gYXZlcmFnZTsKK+WIuuWIgCA+IGJheW9uZXQ7CivnsLjnrpUgPiBkdXN0cGFuOwor5YWF5ru/ID4gZnVsbFwtb2Y7CivluLPluJggPiBkcmFwZXJ5Owor5o6l55SfID4gZGVsaXZlcjsKK+a/gOe0oCA+IGhvcm1vbmU7Civop6PliZYgPiBkaXNzZWN0Owor5oyv6IiIID4gcHJvbW90ZTsKK+mZpOS6hiA+IGJlc2lkZXM7CivnmKfnlr4gPiBtYWxhcmlhOwor6I6K5Zq0ID4gc3RhdGVseTsKK+eyl+a3uiA+IHNoYWxsb3c7Civmo7LouqsgPiBzdGF5XC1hdDsKK+W5s+WPsCA+IHRlcnJhY2U7Civmi43os6MgPiBhdWN0aW9uOwor5ruL6aSKID4gbm91cmlzaDsKK+ino+WDsSA+IHRvXC1maXJlOwor5Yiw5L6GID4gYXJyaXZhbDsKK+mWkuaahyA+IGxlaXN1cmU7CivluorlgbQgPiBiZWRzaWRlOwor5qiZ5qeNID4gamF2ZWxpbjsKK+eWq+iLlyA+IHZhY2NpbmU7CivotoXpvaEgPiB0b29cLW9sZDsKK+WHuuWUriA+IHRvXC1zZWxsOwor5Zug57SgID4gZWxlbWVudDsKK+WGsOW3nSA+IGdsYWNpZXI7Civpl4rluqYgPiBicmVhZHRoOwor6LiQ6LiPID4gdHJhbXBsZTsKK+alree2kyA+IGFscmVhZHk7CivovZ/mk4ogPiBib21iYXJkOwor5bm+5YCLID4gc2V2ZXJhbDsKK+WGsOWztiA+IGljZWxhbmQ7CivmjJHoiIsgPiBwcm92b2tlOwor5ZyW55WrID4gZHJhd2luZzsKK+WGsOWxsSA+IGljZWJlcmc7CivmpbXnq68gPiBleHRyZW1lOwor6L6y5aSrID4gcGVhc2FudDsKK+eZveaZnSA+IGRheXRpbWU7CivlhbXmiIggPiB3ZWFwb25zOwor6Lez6LqNID4gdG9cLWp1bXA7CivnmYLms5UgPiB0aGVyYXB5Owor5bCW6aCCID4gc3RlZXBsZTsKK+iFuemDqCA+IGFiZG9tZW47CivnmbzmlL4gPiBwcm92aWRlOwor55iL54uCID4gbWFkbmVzczsKK+eXsueWuSA+IG1lYXNsZXM7CivopqrliIcgPiBhbWlhYmxlOwor5bel5bugID4gZmFjdG9yeTsKK+aPkuabsiA+IGVwaXNvZGU7CivooYDntbEgPiBsaW5lYWdlOwor5r+h5r+VID4gbW9pc3RlbjsKK+aKl+itsCA+IHByb3Rlc3Q7CivntYblgJIgPiBzdHVtYmxlOwor57OK5byEID4gdG9cLWZvb2w7CivluLbli5UgPiB0b1wtc3B1cjsKK+WFrOW8jyA+IGZvcm11bGE7Civngb3lrrMgPiBzY291cmdlOwor6Iqx5p2fID4gYm91cXVldDsKK+W3suWpmiA+IG1hcnJpZWQ7Civmia3ovYkgPiByZXZlcnNlOwor5oiy6ZmiID4gdGhlYXRlcjsKK+eXkueXkiA+IHRvXC1pdGNoOwor5L6L6aGMID4gZXhhbXBsZTsKK+iMheWxiyA+IGNvdHRhZ2U7CivlhKrmlrwgPiBzdXJwYXNzOwor5qmf5aC0ID4gYWlycG9ydDsKK+e1guS6jiA+IGF0XC1sYXN0Owor5qih5b2iID4gcGF0dGVybjsKK+ifi+ifgCA+IGNyaWNrZXQ7Civkv6Hos7QgPiBjb25maWRlOwor6Iql5pyrID4gbXVzdGFyZDsKK+a/gOeDiCA+IGludGVuc2U7Civnl4Xnl4cgPiBkaXNlYXNlOwor5Ya35Y27ID4gY29vbGluZzsKK+ahjOmdoiA+IGRlc2t0b3A7CivlsaXooYwgPiBmdWxmaWxsOwor55qH5bidID4gZW1wZXJvcjsKK+ihqOeOhyA+IGV4YW1wbGU7Civmj63luZUgPiBvcGVuaW5nOwor56+H56ugID4gd3JpdGluZzsKK+aOpeabvyA+IHJlcGxhY2U7CivmqZ/lmaggPiBtYWNoaW5lOwor55a+55eFID4gZGlzZWFzZTsKK+WCmeeUqCA+IHJlc2VydmU7Civlr6zpl4ogPiBleHBhbnNlOwor5o6q5pa9ID4gbWVhc3VyZTsKK+WFp+WuuSA+IGNvbnRlbnQ7CivmjqHmmpYgPiBoZWF0aW5nOwor55u45Lu/ID4gc2ltaWxhcjsKK+WCsueEtiA+IGxvZnRpbHk7Civlm6DngrogPiBiZWNhdXNlOwor5qi15aSrID4gd29vZG1hbjsKK+iHquengSA+IHNlbGZpc2g7CivlhbjlnosgPiB0eXBpY2FsOwor6Iy25YW3ID4gdGVhXC1zZXQ7CivovKrlu5MgPiBvdXRsaW5lOwor57OK5aGXID4gbXVkZGxlZDsKK+amnOaooyA+IGV4YW1wbGU7CivplonloZ4gPiBzdG9wXC11cDsKK+ihqOa8lCA+IHBlcmZvcm07CivotoXpgY4gPiBzdXJwYXNzOwor56+A55uuID4gcHJvZ3JhbTsKK+mRveefsyA+IGRpYW1vbmQ7CivlnJLmnpcgPiBnYXJkZW5zOwor55Sf6I+cID4gbGV0dHVjZTsKK+Wwj+iyqSA+IHBlZGRsZXI7Civou4zmnpUgPiBzbGVlcGVyOwor55m95aSpID4gZGF5dGltZTsKK+iLseWciyA+IGVuZ2xhbmQ7Civpppbpo74gPiBqZXdlbHJ5Owor5bel5YygID4gYXJ0aXNhbjsKK+ebiOS9mSA+IHN1cnBsdXM7Civkv5jomZwgPiBjYXB0aXZlOwor6IeC56ugID4gYXJtYmFuZDsKK+iHqueUsSA+IGZyZWVkb207CivluIPkuIEgPiBwdWRkaW5nOwor5ZyN5pS7ID4gYmVzaWVnZTsKK+WWnemHhyA+IGFjY2xhaW07CivnlJ/ogrIgPiB0b1wtYmVhcjsKK+i1pOmBkyA+IGVxdWF0b3I7Civpq5jmvLIgPiB1cHN1cmdlOwor6ZaA5Y+jID4gZG9vcndheTsKK+aQjeWCtyA+IHRvXC1oYXJtOwor6Lqr5p2QID4gc3RhdHVyZTsKK+iLseWLhyA+IGJyYXZlcnk7CivkvovorYkgPiBleGFtcGxlOwor5ZWP6aGMID4gcHJvYmxlbTsKK+WvhOmAgSA+IHRvXC1zZW5kOwor5YK+5pacID4gaW5jbGluZTsKK+WbsOaTviA+IHBlcnBsZXg7CivopIflkIggPiBjb21wbGV4Owor5oqE57ayID4gZGlwXC1uZXQ7Civnmb7liIYgPiBwZXJjZW50Owor5Zq05q2jID4gc3Rlcm5seTsKK+iho+acjSA+IGNsb3RoZXM7CivmiJboqLEgPiBwZXJoYXBzOwor5oiQ6KqeID4gcHJvdmVyYjsKK+amruW5uCA+IGhvbm9yZWQ7CivmvILnpKsgPiBib3VsZGVyOwor6aas6LmsID4gc3RpcnJ1cDsKK+aooeWAoyA+IGltaXRhdGU7CivkvovooYwgPiByb3V0aW5lOwor5ZWG6ZqKID4gY2FyYXZhbjsKK+WtuOmZoiA+IGNvbGxlZ2U7Civlg7XlsYAgPiBpbXBhc3NlOwor5o2V5omLID4gY2F0Y2hlcjsKK+aKleelqCA+IHRvXC12b3RlOwor6KGM5p2OID4gbHVnZ2FnZTsKK+aPkOWIsCA+IG1lbnRpb247CivpqZXnn5wgPiBoYXVnaHR5Owor5L+h566xID4gbWFpbGJveDsKK+WvhuirhyA+IGNvbW11bmU7CivnlKjnm6EgPiBleGhhdXN0Owor5qaC5b+1ID4gY29uY2VwdDsKK+WBnOatoiA+IHRvXC1zdG9wOwor5YWD5Lu2ID4gZWxlbWVudDsKK+WcsOWdgCA+IGFkZHJlc3M7CivlnIvlrrYgPiBjb3VudHJ5Owor5a2U6ZuAID4gcGVhY29jazsKK+mNteipniA+IGtleXdvcmQ7Civmu5HnqL0gPiBjb21pY2FsOwor5ZWG6YePID4gY29uc3VsdDsKK+S9juiqvyA+IGxvd1wta2V5Owor5oyJ5pmCID4gb25cLXRpbWU7Civoo53lhaUgPiB0b1wtbG9hZDsKK+aJk+eulyA+IHRvXC1wbGFuOwor5bCP57WQID4gc3VtbWFyeTsKK+Wwj+e1hCA+IGFcLWdyb3VwOwor5oyJ5pGpID4gbWFzc2FnZTsKK+WBiealrSA+IGV4cGxvaXQ7Civos6rph48gPiBxdWFsaXR5Owor56+A5pelID4gaG9saWRheTsKK+ijgeWJqiA+IGN1dFwtb3V0Owor55Si54mpID4gcHJvZHVjdDsKK+S+m+e1piA+IGZ1cm5pc2g7CivoiJ7lvIQgPiB0b1wtd2F2ZTsKK+aJk+eijiA+IHNoYXR0ZXI7Civmi6/mlZEgPiB0b1wtc2F2ZTsKK+WcqOWJjSA+IGZvcndhcmQ7CivmnY7ptawgPiBsaVwtcGVuZzsKK+WuieiorSA+IGluc3RhbGw7Civosqzpm6MgPiBjZW5zdXJlOwor5bO25ba8ID4gaXNsYW5kczsKK+afpeiqvyA+IGlucXVpcnk7Civmi4vmo4QgPiBkaXNjYXJkOwor5L6/55uGID4gYmVkXC1wYW47CivooLHmg5EgPiBlbmNoYW50Owor5YGH5pelID4gaG9saWRheTsKK+WuieijnSA+IGluc3RhbGw7Civmu7LmvI8gPiBzZWVwYWdlOwor6Imm5Y+qID4gd2Fyc2hpcDsKK+aLt+aJkyA+IHRvXC1iZWF0Owor6IGv6YKmID4gZmVkZXJhbDsKK+a8guaziiA+IGRyaWZ0ZXI7CivlmbjmlbggPiB0b25uYWdlOwor5ZWG6KiOID4gZGlzY3VzczsKK+WUruizoyA+IHRvXC1zZWxsOwor6aaZ6I+cID4gcGFyc2xleTsKK+a1t+muriA+IHNlYWZvb2Q7Civoh6XmiL8gPiBiZWRyb29tOwor56ug56+AID4gY2hhcHRlcjsKK+a7tOa1gSA+IHRyaWNrbGU7Civnlo/lv70gPiBuZWdsZWN0Owor5YOl5YCWID4gbHVja2lseTsKK+aHsue9sCA+IHBlbmFsdHk7CivlgrPllq4gPiBsZWFmbGV0Owor6aaZ6IW4ID4gc2F1c2FnZTsKK+i1sOengSA+IHNtdWdnbGU7CivlsIjnlKggPiBzcGVjaWFsOwor6b6N6J2mID4gbG9ic3RlcjsKK+aMh+WumiA+IGFwcG9pbnQ7Civlg5XkurogPiBzZXJ2YW50Owor5a6557SNID4gY29udGFpbjsKK+S+r+eItSA+IG1hcnF1aXM7CivmpLDlrZAgPiBjb2NvbnV0Owor6ZGS5oiSID4gd2FybmluZzsKK+S7o+ipniA+IHByb25vdW47CivkuLnpuqUgPiBkZW5tYXJrOwor57Ch5LuLID4gc3VtbWFyeTsKK+eVq+W7iiA+IGdhbGxlcnk7Civoh6XlrqQgPiBiZWRyb29tOwor5omz5qmfID4gdHJpZ2dlcjsKK+ihneWKmyA+IGltcHVsc2U7Civlroznvo4gPiBwZXJmZWN0Owor5bGV5pybID4gb3V0bG9vazsKK+eriuebnCA+IGJ1cmdsYXI7CivnkaPntLAgPiB0cml2aWFsOwor5oyq5YuVID4gdG9cLW1vdmU7Civlrrbnpr0gPiBwb3VsdHJ5Owor56m657y6ID4gdmFjYW5jeTsKK+acgOmrmCA+IGhpZ2hlc3Q7Civpq5jljp8gPiBwbGF0ZWF1Owor55Wr5a62ID4gcGFpbnRlcjsKK+WxiOabsiA+IGNyb29rZWQ7CivlrbjogIUgPiBzY2hvbGFyOwor55ay5YueID4gZmF0aWd1ZTsKK+a7v+aJiyA+IGhhbmRmdWw7CivkuI3pvZIgPiBkZXNwaXNlOwor5oqV5omLID4gcGl0Y2hlcjsKK+a1t+mCiiA+IHNlYXNpZGU7CivmiormjIEgPiBjb250cm9sOwor5ZmB5b+DID4gdG9cLWhhdGU7CivlsIvmsYIgPiB0b1wtc2VlazsKK+acrOmMoiA+IGNhcGl0YWw7Civohr3lrZAgPiBjb3VyYWdlOwor6ICz6KqeID4gd2hpc3BlcjsKK+WZtOWiqCA+IGlua1wtamV0Owor5LmL6ZaTID4gYmV0d2VlbjsKK+aciemZkCA+IGxpbWl0ZWQ7CivmiZjmnrYgPiBicmFja2V0Owor5ZOB6LOqID4gcXVhbGl0eTsKK+acrOmHkSA+IGNhcGl0YWw7CivpjKbnt54gPiBicm9jYWRlOwor6bq76ZuAID4gc3BhcnJvdzsKK+aJtuaMgSA+IHRvXC1oZWxwOwor6JmU6KqgID4gc2luY2VyZTsKK+S/neaMgSA+IHRvXC1rZWVwOwor5om25omLID4gcmFpbGluZzsKK+acgOmVtyA+IGxvbmdlc3Q7CivmibPmiYsgPiBzcGFubmVyOwor5L6/5pa8ID4gZWFzeVwtdG87CivmtbfosZogPiBkb2xwaGluOwor5oSb6K23ID4gY2hlcmlzaDsKK+evgOWEiSA+IHRocmlmdHk7CivnpZ7pq5QgPiBnb2RoZWFkOwor5omT5pO+ID4gZGlzdHVyYjsKK+S4remWkyA+IGJldHdpeHQ7CivkvobmrbcgPiBoaXN0b3J5Owor5oSf6Ka6ID4gdG9cLWZlZWw7Civnr4TkvosgPiBleGFtcGxlOwor5a2k56uLID4gaXNvbGF0ZTsKK+eVtuWJjSA+IGN1cnJlbnQ7CivlsaTlrZAgPiBzdHJhdHVtOwor5pys6LOqID4gZXNzZW5jZTsKK+eUqOWtlyA+IGRpY3Rpb247Civoga/ntrIgPiBuZXR3b3JrOwor5r2b5LyPID4gdG9cLWhpZGU7Civoga/ntZAgPiB0b1wtYmluZDsKK+euoeWItiA+IGNvbnRyb2w7Civkv4PmiJAgPiBwcm9jdXJlOwor5bCK5pWsID4gcmVzcGVjdDsKK+WuieeTvyA+IGFtcG91bGU7Civoh7PkuIogPiBzdXByZW1lOwor5LiA6aCFID4gYW5cLWl0ZW07CivmioTlr6sgPiB0b1wtY29weTsKK+i0heeYpCA+IHVzZWxlc3M7CivmuIXnnJ8gPiBpc2xhbWljOwor55Wr5YWSID4gcGljdHVyZTsKK+WWnOatoSA+IHRvXC1saWtlOwor5LuU57SwID4gY2FyZWZ1bDsKK+WxoOWkqyA+IGJ1dGNoZXI7CivkuIrploAgPiBkcm9wXC1pbjsKK+WtuOeUnyA+IHN0dWRlbnQ7CivnjY7ph5EgPiBwcmVtaXVtOwor5Lq6576kID4gYVwtY3Jvd2Q7Civnlbbku4ogPiBjdXJyZW50Owor5YGH5L2/ID4gc3VwcG9zZTsKK+abtOmBoCA+IGZhcnRoZXI7CivlsIvmib4gPiB0b1wtc2VlazsKK+S9teainSA+IGRyYXdpbmc7CivkuZ/oqLEgPiBwZXJoYXBzOwor6ama5ZqHID4gaG9ycmlmeTsKK+aJs+WtkCA+IHNwYW5uZXI7Civmir3lh7ogPiBleHRyYWN0Owor5bC35bCsID4gYXdrd2FyZDsKK+S4jemMryA+IGNvcnJlY3Q7CivmoLjmn6UgPiBleGFtaW5lOwor5LiZ6YWuID4gYWNldG9uZTsKK+aJjeW5siA+IGFiaWxpdHk7CivpppnmsLQgPiBwZXJmdW1lOwor6aaZ5rCjID4gaW5jZW5zZTsKK+Wwj+W/gyA+IGNhcmVmdWw7CivmiJDmlocgPiB3cml0dGVuOwor5ZCQ6ZyyID4gdG9cLXRlbGw7CivotpXlv6sgPiBhdFwtb25jZTsKK+acg+itsCA+IG1lZXRpbmc7Civpo5voiLkgPiBhaXJzaGlwOwor5pu86LC3ID4gYmFuZ2tvazsKK+WRiOmAgSA+IHByZXNlbnQ7CivkuLvoqZ4gPiBzdWJqZWN0Owor5rKJ6buYID4gc2lsZW5jZTsKK+aJk+WtlyA+IHRvXC10eXBlOwor5rKI6buYID4gc2lsZW5jZTsKK+i3s+WLlSA+IHRvXC1iZWF0Owor5rWB6KGMID4gcG9wdWxhcjsKK+S9lOaciSA+IHRvXC1oYXZlOwor5a605pyDID4gYmFucXVldDsKK+iDjOajhCA+IGFiYW5kb247CivpoJjpmoogPiBjYXB0YWluOwor5pyI6J2VID4gZWNsaXBzZTsKK+aJv+WPlyA+IHRvXC1iZWFyOwor5YCJ5L+DID4gaHVycmllZDsKK+aKk+WCtyA+IHNjcmF0Y2g7CivkuI3os7QgPiBub3RcLWJhZDsKK+iCpeaygyA+IGZlcnRpbGU7CivmhI/nvqkgPiBtZWFuaW5nOwor5Y+s6ZuGID4gY29udmVuZTsKK+elnui3oSA+IG1pcmFjbGU7Civkvb/lvpIgPiBhcG9zdGxlOwor5riF5rSXID4gdG9cLXdhc2g7CivlkYroqLQgPiB0b1wtdGVsbDsKK+iEueWkpyA+IHN3b2xsZW47CivllpzmhJsgPiB0b1wtbGlrZTsKK+WvtuWvtiA+IGRhcmxpbmc7CivnrYnlgJkgPiB3YWl0aW5nOwor6LeM5YiwID4gdG9cLWZhbGw7Civmh7rmgpQgPiBjb25mZXNzOwor5oi25aSWID4gb3V0ZG9vcjsKK+WvrOWuuSA+IGxlbmllbnQ7Civog73lubkgPiBjYXBhYmxlOwor5LiN6KaLID4gbm90XC1zZWU7CivkvY/miL8gPiBob3VzaW5nOwor6ICV56iuID4gdG9cLXRpbGw7CivmiLDlo6sgPiBmaWdodGVyOwor57+h57+gID4gZW1lcmFsZDsKK+WwiuWatCA+IGRpZ25pdHk7Civlr4bluqYgPiBkZW5zaXR5Owor5bCW5Y+rID4gc2NyZWVjaDsKK+S8gealrSA+IGNvbXBhbnk7CivlronmkqsgPiBwbGFjYXRlOwor6aCC6YedID4gdGhpbWJsZTsKK+aguOWtkCA+IG51Y2xlYXI7CivkvJHmnIMgPiBhZGpvdXJuOwor6LKi54mpID4gdHJpYnV0ZTsKK+a3mOaysyA+IHBlbGljYW47Civpo5vnm6QgPiBmcmlzYmVlOwor5reY5rCjID4gbmF1Z2h0eTsKK+mojuWFtSA+IGNhdmFscnk7Civmh4rmg7EgPiBhbm5veWVkOwor56ys5LiDID4gc2V2ZW50aDsKK+aJk+WAkiA+IGZsYXR0ZW47Civkv4Pkvb8gPiBzcHVyXC1vbjsKK+miqOeusSA+IGJlbGxvd3M7CivmtbTnm4YgPiBiYXRodHViOwor576k6IqxID4gYmxvc3NvbTsKK+aJmOS7mCA+IGVudHJ1c3Q7CivmoL3ln7kgPiB0b1wtZ3JvdzsKK+enkeebriA+IHN1YmplY3Q7CivppqzlrZAgPiBjb21tb2RlOwor6LaK5Y2XID4gdmlldG5hbTsKK+WuieaFsCA+IGNvbWZvcnQ7CivnqbrmiLAgPiBhaXJcLXdhcjsKK+aIkOWciCA+IHdyZWF0aGU7Civmh4nlvpcgPiBkZXNlcnZlOwor5oiw5YudID4gcHJldmFpbDsKK+S4jeiLnyA+IG5vdFwtbGF4Owor5L2P5a6/ID4gbG9kZ2luZzsKK+i0iuaIkCA+IGFwcHJvdmU7CivororpgbcgPiBjaGFuZ2VzOwor5pyq55+lID4gdW5rbm93bjsKK+aDhee3kiA+IGZlZWxpbmc7CivlsIHlhaUgPiBpbmNsb3NlOwor6YeO6LKTID4gd2lsZGNhdDsKK+S7o+abvyA+IGluc3RlYWQ7CivmoYjljbcgPiByZWNvcmRzOwor5oKj6ICFID4gcGF0aWVudDsKK+S+huWIsCA+IHRvXC1jb21lOwor5Luj5pW4ID4gYWxnZWJyYTsKK+acqOeTpiA+IHNoaW5nbGU7CivmiJDlip8gPiBzdWNjZXNzOwor5Lit56uLID4gbmV1dHJhbDsKK+ePvuaZgiA+IGN1cnJlbnQ7CivkuJbntIAgPiBjZW50dXJ5Owor5L2O5ZywID4gbG93bGFuZDsKK+a1t+a+oSA+IHNlYXdlZWQ7CivlkKvnvqkgPiBtZWFuaW5nOwor5LuK5pmaID4gdG9uaWdodDsKK+mHkeiejSA+IGJhbmtpbmc7Civlk4DmsYIgPiBlbnRyZWF0Owor5rSX56auID4gYmFwdGlzbTsKK+WtuOWutiA+IHNjaG9sYXI7CivlppPpmaIgPiBicm90aGVsOwor5LiN562JID4gdG9cLXZhcnk7Civpoa/npLogPiB0b1wtc2hvdzsKK+WNmumbhSA+IGxlYXJuZWQ7CivpnZLprZogPiBoZXJyaW5nOwor6aas5YW3ID4gaGFybmVzczsKK+WQjee+qSA+IHRpdHVsYXI7CivkuI3npaUgPiBvbWlub3VzOwor5raI5qW1ID4gcGFzc2l2ZTsKK+awtOmKgCA+IG1lcmN1cnk7CivmmojoiLkgPiBzZWFzaWNrOwor6IG35belID4gd29ya2VyczsKK+aXpemWkyA+IGRheXRpbWU7CivlrZ/lrZAgPiBtZW5jaXVzOwor56We56WWID4gZ29kaGVhZDsKK+abieekuiA+IHRvXC10ZWxsOwor6JK46aS+ID4gZGlzdGlsbDsKK+WujOWWhCA+IHBlcmZlY3Q7CivmgrLnl5sgPiBncmlldmVkOwor5a6Y5Y+4ID4gbGF3c3VpdDsKK+mdnumboyA+IHJlcHJvb2Y7CivmsLjpgaAgPiBmb3JldmVyOwor6YWs6LyJID4gcGF5bG9hZDsKK+iBveWvqyA+IGRpY3RhdGU7Civlp5ToqJcgPiBlbnRydXN0Owor6Jmn5pCNID4gZGVmaWNpdDsKK+m6u+eFqSA+IHRyb3VibGU7CivppqzkuIogPiBhdFwtb25jZTsKK+aZr+iJsiA+IHNjZW5lcnk7CivnpYjnprEgPiB0b1wtcHJheTsKK+W/veimliA+IG5lZ2xlY3Q7CivorY/oqpogPiBjeW5pY2FsOwor56K66KqNID4gY29uZmlybTsKK+eOi+asiiA+IHJveWFsdHk7CivmlrnpnaIgPiByZXNwZWN0Owor5Y+k6ICBID4gYW5jaWVudDsKK+S8geWcliA+IGF0dGVtcHQ7CivpoYznm64gPiBzdWJqZWN0Owor5rGh6KGKID4gc2xhbmRlcjsKK+e+heebpCA+IGNvbXBhc3M7Civnj77lr6YgPiByZWFsaXR5Owor6LOq5ZywID4gdGV4dHVyZTsKK+S5vuaXsSA+IGRyb3VnaHQ7Civnj43mhJsgPiBjaGVyaXNoOwor6LSK5YqpID4gc3BvbnNvcjsKK+W/oOiqoCA+IGRldm90ZWQ7CivmlpHpp64gPiBtb3R0bGVkOwor6YSt6YeNID4gc2VyaW91czsKK+WNh+mBtyA+IHByb21vdGU7CivljYrpgJQgPiBoYWxmd2F5Owor5Y+N6ICMID4gaW5zdGVhZDsKK+Wlvei9iSA+IGltcHJvdmU7CivnjovmnJ0gPiBkeW5hc3R5Owor5oOh5qONID4gdmlsbGFpbjsKK+WNiui3ryA+IGhhbGZ3YXk7CivmlbTpq5QgPiBvdmVyYWxsOwor57695q+bID4gZmVhdGhlcjsKK+aEn+aDhSA+IGZlZWxpbmc7CivpvLvlrZQgPiBub3N0cmlsOwor5ZOA5oCdID4gcGVuc2l2ZTsKK+S7u+WLmSA+IG1pc3Npb247CivmhJvmg5wgPiBjaGVyaXNoOwor54yW542XID4gcmFtcGFudDsKK+aenOWckiA+IG9yY2hhcmQ7Civml4HpgoogPiBsYXRlcmFsOwor6aKo5pmvID4gc2NlbmVyeTsKK+m0lemzpSA+IG9zdHJpY2g7CivphpzogZ4gPiBzY2FuZGFsOwor6aO95a24ID4gbGVhcm5lZDsKK+aumOmquCA+IHJlbWFpbnM7Civmlofpm4UgPiBlbGVnYW50Owor6aOb5b2IID4gbWlzc2lsZTsKK+iBveWKmyA+IGhlYXJpbmc7Civku7/lgpogPiB0b1wtY29weTsKK+aXpeiqjCA+IGpvdXJuYWw7CivlpJbpnaIgPiBvdXRzaWRlOwor6aCR55quID4gbmF1Z2h0eTsKK+aatOeDiCA+IHZpb2xlbnQ7Civpm4Tpu4MgPiByZWFsZ2FyOwor5pyD5pyfID4gc2Vzc2lvbjsKK+S4jeazlSA+IGxhd2xlc3M7CivlkajmnKsgPiB3ZWVrZW5kOwor5reh5YWJID4gc2hpbW1lcjsKK+mhnuavlCA+IGFuYWxvZ3k7Civoq7roqp4gPiBwcm92ZXJiOwor5aSn6YyvID4gYmx1bmRlcjsKK+iAgeW5tCA+IGVsZGVybHk7CivkuJ/mo4QgPiBkaXNjYXJkOwor6ICB5birID4gdGVhY2hlcjsKK+iuiuehrCA+IHN0aWZmZW47CivmtbflsrggPiBjb2FzdGFsOwor5pel6J2VID4gZWNsaXBzZTsKK+ekpueJqSA+IG1pbmVyYWw7CivosbnlrZAgPiBsZW9wYXJkOwor5aWH6LmfID4gbWlyYWNsZTsKK+avlOi8gyA+IGNvbXBhcmU7CivlpYfot6EgPiBtaXJhY2xlOwor5Lul5L6/ID4gc29cLXRoYXQ7CivokZfpmbggPiBsYW5kaW5nOwor5by16ZaLID4gc3RyZXRjaDsKK+Wkp+mDvSA+IGdlbmVyYWw7Civlpb3omZUgPiBiZW5lZml0Owor56eR5a24ID4gc2NpZW5jZTsKK+aEm+WlvSA+IHRvXC1saWtlOwor5ray5YyWID4gbGlxdWlmeTsKK+mEmeimliA+IGRlc3Bpc2U7Civmm7Tmj5sgPiByZXBsYWNlOwor5pa56KiAID4gZGlhbGVjdDsKK+WPpOeJqSA+IGFudGlxdWU7Civml6XokL0gPiBzdW5kb3duOwor56We5qC8ID4gZ29kaGVhZDsKK+acrOWxhiA+IGN1cnJlbnQ7Civpg7XosrsgPiBwb3N0YWdlOwor5puW5pinID4gaWxsaWNpdDsKK+WmguiKsSA+IGZsb3dlcnk7Civpnq3nrZYgPiBzcHVyXC1vbjsKK+aDheaEnyA+IGZlZWxpbmc7CivkuLnlv4MgPiBsb3lhbHR5Owor6ZuE6ZueID4gcm9vc3RlcjsKK+ayv+a1tyA+IGNvYXN0YWw7CivmlL7plosgPiB1bmxlYXNoOwor57mq6KO9ID4gdG9cLWRyYXc7CivkuK3mgKcgPiBuZXV0cmFsOwor6YSZ6JaEID4gZGVzcGlzZTsKK+iqueislyA+IHNsYW5kZXI7CivmgKrniakgPiBtb25zdGVyOwor5b6p6IiIID4gcmVzdG9yZTsKK+a2ieWPiiA+IGludm9sdmU7CivnvqjmhZUgPiBlbnZpb3VzOwor5YyF6KO5ID4gd3JhcFwtdXA7CivokZfov7AgPiB3cml0aW5nOwor5aSW6LKMID4gcHJvZmlsZTsKK+mkheS5viA+IGJpc2N1aXQ7CivmnInlrrMgPiBoYXJtZnVsOwor6YWS57K+ID4gYWxjb2hvbDsKK+ekvuacgyA+IHNvY2lldHk7Civnvp7mhKcgPiBhc2hhbWVkOwor5Li75bCOID4gdG9cLWxlYWQ7CivmmrTmlL8gPiB0eXJhbm55Owor5oSf5YiwID4gdG9cLWZlZWw7CivnjovlnIsgPiBraW5nZG9tOwor5piT56KOID4gYnJpdHRsZTsKK+mHmOatuyA+IGNydWNpZnk7Civpoaflv4wgPiBzY3J1cGxlOwor5oSI5ZCIID4gdG9cLWhlYWw7Civlk4DlgrcgPiBncmlldmVkOwor5pW46KmeID4gbnVtZXJhbDsKK+ips+i/sCA+IHJlY291bnQ7CivlianppJggPiBzdXJwbHVzOwor6aGY5oSPID4gdG9cLXdpc2g7CivljIXol48gPiBjb250YWluOwor546p5YWSID4gdG9cLXBsYXk7CivkuK3lrZAgPiBuZXV0cm9uOwor6YeR5qmYID4ga3VtcXVhdDsKK+mcgOimgSA+IHRvXC1uZWVkOwor5oKU5oGoID4gcmVtb3JzZTsKK+WQq+aEjyA+IG1lYW5pbmc7CivmnIDlpKcgPiBiaWdnZXN0Owor5pyA5aSaID4gYXRcLW1vc3Q7Civmm4nlvpcgPiB0b1wta25vdzsKK+iAleS9nCA+IGZhcm1pbmc7CivmgKXmtYEgPiB0b3JyZW50Owor57235omLID4gZ2l2ZVwtdXA7CivogIHlhbUgPiB2ZXRlcmFuOwor6ICB5YWsID4gaHVzYmFuZDsKK+Wjk+i/qyA+IG9wcHJlc3M7CivnjJzmg7MgPiBzdXBwb3NlOwor5Lit5aSuID4gY2VudHJhbDsKK+maiumVtyA+IGNhcHRhaW47CivnoLLoh7ogPiBiYXR0ZXJ5Owor5LmP5ZGzID4gdGVkaW91czsKK/ChnLEgPiB0b1wtZW52eTsKK+aTr+mZpCA+IGRpc2NhcmQ7Civnt6jpgKAgPiBjb21waWxlOwor5LiK5bCHID4gZ2VuZXJhbDsKK+WRvOWQuCA+IGJyZWF0aGU7Civwopi4ID4gdG9cLWhhdGU7CivnjJzluqYgPiBzdXJtaXNlOwor5ZG75ZCfID4gdG9cLW1vYW47CivniannkIYgPiBwaHlzaWNzOwor6YG06YG4ID4gdG9cLXBpY2s7CivniK3nq68gPiBkaXNwdXRlOwor5aWz56WeID4gZ29kZGVzczsKK+aDs+WDjyA+IGltYWdpbmU7CivlvJXoqIAgPiBmb3J3YXJkOwor5ZCM5b+XID4gY29tcmFkZTsKK+WMhee+hSA+IGluY2x1ZGU7CivkuI3lpb0gPiBub1wtZ29vZDsKK+iujOacgyA+IGJhbnF1ZXQ7Civml4XnqIsgPiBqb3VybmV5Owor5pys5LqLID4gYWJpbGl0eTsKK+mHi+aUviA+IHJlbGVhc2U7CivmspLmnIkgPiBoYXZlbicndDsKK+WNl+eTnCA+IHB1bXBraW47CivorormmpYgPiB3YXJtaW5nOwor5rCj55CDID4gYmFsbG9vbjsKK+eLguaatCA+IGZyYW50aWM7CivkuIjlpKsgPiBodXNiYW5kOwor56We5aWzID4gZ29kZGVzczsKK+WQiuW6iiA+IGhhbW1vY2s7Civlj4rmmYIgPiBpblwtdGltZTsKK+WmlueJqSA+IG1vbnN0ZXI7Civpg6jnvbIgPiBkaXNwb3NlOwor5Lmf5LiNID4gbmVpdGhlcjsKK+WPr+aGkCA+IHBpdGlmdWw7CivlpbPnmocgPiBlbXByZXNzOwor5aKe6YCyID4gcHJvbW90ZTsKK+mBmemBoCA+IGRpc3RhbnQ7CivpgZnpgZkgPiBkaXN0YW50Owor6KmV6KuWID4gY29tbWVudDsKK+S4gOWkqSA+IG9uZVwtZGF5Owor5Y+v5oSbID4gYW1pYWJsZTsKK+aUueijnSA+IHJlbW9kZWw7Civnib3mtokgPiBpbnZvbHZlOwor6Zi/6aObID4gaG9vZGx1bTsKK+WPr+aBqCA+IGhhdGVmdWw7CivmgrLlk4AgPiBncmlldmVkOwor6aGn5ZWPID4gYWR2aXNlcjsKK+Wkqee3miA+IGFudGVubmE7Civli7PnuL4gPiBleHBsb2l0Owor5rOV5a6YID4gYVwtanVkZ2U7Civnvo7lnIsgPiBhbWVyaWNhOwor5pyA5L2zID4gb3B0aW11bTsKK+W5vemdiCA+IHNwZWN0ZXI7CivpgYvovYkgPiB0b1wtd29yazsKK+mbt+iBsiA+IHRodW5kZXI7CivpgYvovLggPiB0cmFuc2l0Owor54m55q6KID4gc3BlY2lhbDsKK+aCsuWKhyA+IHRyYWdlZHk7Civnn7Poho8gPiBwbGFzdGVyOwor5pu45L+hID4gZXBpc3RsZTsKK+W6pumHjyA+IG1lYXN1cmU7CivntpPpircgPiB0b1wtc2VsbDsKK+WKjeihkyA+IGZlbmNpbmc7Civlj5vlvpIgPiB0cmFpdG9yOwor6Ki76KejID4gY29tbWVudDsKK+e2sui3ryA+IG5ldHdvcms7CivkuIrljYggPiBtb3JuaW5nOwor57eS6KiAID4gcHJlZmFjZTsKK+iotOionyA+IGxhd3N1aXQ7CivoqofogIAgPiBwcm91ZGx5Owor5paH56ugID4gYXJ0aWNsZTsKK+e8uuW4rSA+IGFic2VuY2U7CivkuIDlj6MgPiByZWFkaWx5Owor5ZCu5ZC4ID4gdG9cLXN1Y2s7CivkuIPljYEgPiBzZXZlbnR5Owor54uC5oCSID4gZnVyaW91czsKK+aWsOeUnyA+IG5ld2Jvcm47CivpmrHol48gPiB0b1wtaGlkZTsKK+e2k+mBjiA+IHRvXC1wYXNzOwor5LiN5YaNID4gbm9cLW1vcmU7CivpmrHolL0gPiBjb25jZWFsOwor5LiW5L+XID4gcHJvZmFuZTsKK+aAneaDsyA+IHRob3VnaHQ7CivlubTpkZEgPiBhbG1hbmFjOwor5pS56ImvID4gaW1wcm92ZTsKK+aApeW/mSA+IGhhc3RpbHk7CivnuarnlasgPiBkcmF3aW5nOwor5q+U55WrID4gZ2VzdHVyZTsKK+eHiOexoCA+IGxhbnRlcm47Civnt6jokZcgPiBjb21waWxlOwor6K2m5oiSID4gdG9cLXdhcm47Civntq3orbcgPiBkZWZlbnNlOwor6YeP5a2QID4gcXVhbnR1bTsKK+eMv+S6uiA+IGFwZVwtbWFuOwor5Y+r5aW9ID4gYXBwbGF1ZDsKK+mhnuS8vCA+IHNpbWlsYXI7CivpgJDpgIAgPiByZXB1bHNlOwor56Kw5pKeID4gY29sbGlkZTsKK+azqOWFpSA+IHBvdXJcLWluOwor6aCC5aSaID4gYXRcLW1vc3Q7CivliY3oqIAgPiBwcmVmYWNlOwor6Z2e5rOVID4gaWxsZWdhbDsKK+awtOaZtiA+IGNyeXN0YWw7CivmraPnvqkgPiBqdXN0aWNlOwor5pma5a60ID4gYmFucXVldDsKK+WQkeWJjSA+IGZvcndhcmQ7Civovq/pp4EgPiBkaXNwdXRlOwor5b6e5q2kID4gdGhlbmNlOwor6bOl5769ID4gcGluaW9uOwor5aCx6YWsID4gcmV3YXJkOwor57eo6ICFID4gZWRpdG9yOwor6Kqk55SoID4gbWlzdXNlOwor5aSW55SlID4gbmVwaGV3Owor6YeN5ZueID4gcmV0dXJuOwor5by355ucID4gYmFuZGl0Owor6Kmp56+HID4gcHNhbG1zOwor5pa55rOVID4gbWV0aG9kOwor5pS/562WID4gcG9saWN5Owor6YCD6LWwID4gZXNjYXBlOwor6K2m5a+fID4gcG9saWNlOwor5rOV5LukID4gZGVjcmVlOwor5Y2x5oe8ID4gYWZyYWlkOwor572q5Lq6ID4gc2lubmVyOwor5aSn54KuID4gY2Fubm9uOwor5aSn54G9ID4gcGxhZ3VlOwor5YuD55m8ID4gdGhyaXZlOwor5ZCJ5LuWID4gZ3VpdGFyOwor5YyF5ra1ID4gZXhjdXNlOwor5q+A5ruFID4gcGVyaXNoOwor5bi26YemID4gYnVja2xlOwor56K65a+mID4gaW5kZWVkOwor5YuV54mpID4gYW5pbWFsOwor57eK57iuID4gcmVkdWNlOwor54eS54SmID4gc2NvcmNoOwor6aCY5LqLID4gY29uc3VsOwor5aSn5rWqID4gYmlsbG93Owor552h6JGXID4gYXNsZWVwOwor6K6K5YyWID4gY2hhbmdlOwor5rCj5oGvID4gYnJlYXRoOwor5pOx572uID4gc2hlbHZlOwor6K6K5YuVID4gY2hhbmdlOwor5pW05r2UID4gbmVhdGx5Owor5peo5oSPID4gZGVjcmVlOwor5byK55eFID4gbWFsYWR5Owor6YG456WoID4gYVwtdm90ZTsKK+WJveeriiA+IHBpcmF0ZTsKK+e3qOeivCA+IGNvZGluZzsKK+mEieadkSA+IHJ1c3RpYzsKK+W3qOmgrSA+IHR5Y29vbjsKK+mgguS6iyA+IHVzZWZ1bDsKK+aSleijgiA+IG1hbmdsZTsKK+mZhOiRlyA+IGFkaGVyZTsKK+ato+eVtiA+IHRpbWVseTsKK+aAkuWQvCA+IGJlbGxvdzsKK+Wlh+aZryA+IG1hcnZlbDsKK+eJiOW8jyA+IGZvcm1hdDsKK+mBoOeoiyA+IHJlbW90ZTsKK+e4rua4myA+IHRvXC1jdXQ7CivljYrlvpEgPiByYWRpdXM7Civno6jlhYkgPiBwb2xpc2g7Civprq3prZogPiBzYWxtb247CivpmY3oh6ggPiBiZWZhbGw7CivoqrLmpa0gPiBsZXNzb247CivphpzljJYgPiBkZWZhbWU7Civop5LokL0gPiBjb3JuZXI7Civni4LkurogPiBtYWRtYW47CivmmYLliLsgPiBtb21lbnQ7CivlpKfmobYgPiBiYXJyZWw7CivnnIvoposgPiB0b1wtc2VlOwor57ej55SxID4gcmVhc29uOwor6Kej6ISrID4gcmVsaWVmOwor56C05pWXID4gYmVhdGVuOwor5peX5bmfID4gZW5zaWduOwor5rC05aO6ID4ga2V0dGxlOwor5q6W5rCRID4gY29sb255Owor5peL5b6LID4gbWVsb2R5Owor6YO15pS/ID4gcG9zdGFsOwor6Z225a2QID4gdGFyZ2V0Owor5b6M5oKUID4gcmVncmV0Owor5YuV5qmfID4gbW90aXZlOwor5Y6t5YCmID4gZHJlYXJ5Owor5b6Q5b6QID4gc2xvd2x5Owor5YWn6Zm4ID4gaW5sYW5kOwor5bel6YyiID4gc2FsYXJ5Owor5YWs6ZaLID4gcHVibGljOwor5Y6f5YWIID4gZm9ybWVyOwor5YWr6ZaLID4gb2N0YXZvOwor54aK54aKID4gcmFnaW5nOwor6L6v6KuWID4gZGViYXRlOwor55+t5q2MID4gYmFsbGFkOwor5Y2a5aOrID4gZG9jdG9yOwor5aW25a2QID4gYnJlYXN0Owor5b+g5ZGKID4gYWR2aWNlOwor56Cy5omLID4gZ3VubmVyOwor5aSa5pifID4gc3RhcnJ5Owor5b6L5birID4gbGF3eWVyOwor5b6u5aaZID4gc3VidGxlOwor5aW95aW9ID4gbmljZWx5Owor57i95pivID4gYWx3YXlzOwor6ZaL6Y6WID4gdW5sb2NrOwor5q2l5risID4gcGFjaW5nOwor54ef5pWRID4gcmVzY3VlOwor5pWs5pyNID4gYWRtaXJlOwor6YWs5YueID4gcmV3YXJkOwor5b6X5a6cID4gcHJvcGVyOwor5Yid57SaID4ganVuaW9yOwor6LyV6ayGID4gZ2VudGxlOwor54iQ5bqKID4gaGVhcnRoOwor6KyK5aCxID4gdG9cLWxpZTsKK+eiuuS/nSA+IGVuc3VyZTsKK+mBi+eUqCA+IHRvXC11c2U7CivlpKnmiY0gPiB0YWxlbnQ7CivntbLntaggPiB2ZWx2ZXQ7CivpgZPnkIYgPiByZWFzb247CivmlKrmt7cgPiB0b1wtbWl4Owor5aO95p2QID4gY29mZmluOwor6Kej562UID4gYW5zd2VyOwor54mI5ZyWID4gZG9tYWluOwor5pS/5qyKID4gcmVnaW1lOwor5b6I5bCRID4gc2VsZG9tOwor54i15aOrID4ga25pZ2h0Owor6KWv6KOhID4gbGluaW5nOwor6KyZ5ZKMID4gbWVla2x5Owor57ay55CDID4gdGVubmlzOwor6I2S6JWqID4gYmFycmVuOwor5YyF5bqHID4gc2hpZWxkOwor5YiG57WmID4gZGl2aWRlOwor5aSp5oCnID4gaW5ib3JuOwor5q2Q5rSyID4gZXVyb3BlOwor5Yu+5byVID4gc2VkdWNlOwor55m96YqAID4gc2lsdmVyOwor54ax5pybID4gYXNwaXJlOwor57K+6YG4ID4gY2hvc2VuOwor5pWI5p6cID4gcmVzdWx0Owor6KqY5ouQID4gYWJkdWN0Owor6Kqg5oeHID4gaGVhcnR5Owor6YCa55+lID4gbm90aWZ5Owor5Yi655ebID4gdGluZ2xlOwor5b615Y+sID4gZW5saXN0Owor5q2h5qiCID4gZ2FpZXR5Owor57Sr6ImyID4gcHVycGxlOwor6KOh6Z2iID4gaW5zaWRlOwor5YWI6YuSID4gaGVyYWxkOwor5bmz56mpID4gc21vb3RoOwor5pW15oSPID4gZW5taXR5Owor5be06KW/ID4gYnJhemlsOwor54mp5Lu2ID4gb2JqZWN0Owor5Y245LiLID4gdW5sb2FkOwor5YyF5a65ID4gcGFyZG9uOwor6KqY5oORID4gZW50aWNlOwor54mn5Lq6ID4gcGFzdG9yOwor5aKe5re7ID4gYWRkXC10bzsKK+WkluW9oiA+IGZpZ3VyZTsKK+mbhuacgyA+IGdhdGhlcjsKK+maqOapnyA+IHJhbmRvbTsKK+WFteiuiiA+IG11dGlueTsKK+aVj+aNtyA+IG5pbWJsZTsKK+eJm+S7lCA+IGNvd2JveTsKK+aPkOmGkiA+IHJlbWluZDsKK+inuOeKryA+IG9mZmVuZDsKK+WlquWPliA+IHNuYXRjaDsKK+Wkq+WtkCA+IHBlZGFudDsKK+WkquWtkCA+IHByaW5jZTsKK+aOoembhiA+IGdhdGhlcjsKK+ecn+epuiA+IHZhY3VcOm07CivmrrrlrrMgPiBtdXJkZXI7Civmrpjlv40gPiBibG9vZHk7CivplpLoqbEgPiBnb3NzaXA7CivnnLznmq4gPiBleWVsaWQ7CivntLDnt5ogPiBzdHJpbmc7Civovq3ogbcgPiByZXNpZ247CivphJnlkJ0gPiB2dWxnYXI7Civnt5rmop0gPiBzdHJlYWs7CivptL/lrZAgPiBwaWdlb247CivlvpLli54gPiBmdXRpbGU7CivlvpfliLAgPiB0b1wtZ2V0Owor6L2J6K6KID4gY2hhbmdlOwor57Sw57KJID4gcG93ZGVyOwor6Kqg5a+mID4gaG9uZXN0Owor5biM6IeYID4gZ3JlZWNlOwor6Zuj5b6XID4gc2VsZG9tOwor5aSn5aSrID4gZG9jdG9yOwor5pW45a2XID4gbnVtYmVyOwor5r+66ZaLID4gc3BsYXNoOwor5pS75omTID4gYXR0YWNrOwor6YGK5q23ID4gdHJhdmVsOwor5Ymb5q2jID4gaG9uZXN0Owor5b6p5LuHID4gYXZlbmdlOwor6ZqO5qKvID4gbGFkZGVyOwor5aOT5omBID4gc3F1YXNoOwor6Kmp5oSPID4gcG9ldGljOwor57ej5pWFID4gcmVhc29uOwor5pSd5pS/ID4gcmVnZW50Owor5b6e5L6GID4gYWx3YXlzOwor5qiZ6KqeID4gc2xvZ2FuOwor57iu5bCPID4gcmVkdWNlOwor55m86KqTID4gdG9cLXZvdzsKK+apoeiGoCA+IHJ1YmJlcjsKK+WcsOmQtSA+IHN1YndheTsKK+mbjOaApyA+IGZlbWFsZTsKK+WNgeS4gCA+IGVsZXZlbjsKK+W+nuS6iyA+IGdvXC1mb3I7CivnhrHluLYgPiB0cm9waWM7Civpm5zlt6UgPiBwb3J0ZXI7Civlh7rnlKIgPiBvdXRwdXQ7CivlpaLkvoggPiBsdXh1cnk7Civokpnlj5cgPiBzdWZmZXI7CivmjpvpiaQgPiBjb3VwbGU7CivntJTnsrkgPiBwdXJlbHk7CivlpI/lpKkgPiBzdW1tZXI7CivphJnkv5ogPiB2dWxnYXI7CivphJnkv5cgPiB2dWxnYXI7CivpnLLlh7ogPiBleHBvc2U7CivmlIDmmIcgPiByaXNpbmc7Civnhanmk74gPiBib3RoZXI7Civop6PmuLQgPiBxdWVuY2g7Civpgbrmhr4gPiByZWdyZXQ7CivmrYzmiYsgPiBzaW5nZXI7Civlt6HoiKogPiBjcnVpc2U7CivluIPnt5ogPiB3aXJpbmc7CivmraPlvI8gPiBmb3JtYWw7CivlhrDnrrEgPiBpY2Vib3g7Civns7vntbEgPiBzeXN0ZW07CivnhKHms5UgPiB1bmFibGU7CivpgJXmtYEgPiBydW5vZmY7CivlpL7lhYsgPiBqYWNrZXQ7CivlpKflkIMgPiBnb2JibGU7Civmr6vkuI0gPiBoYXJkbHk7CivpgZPmlZkgPiB0YW9pc207CivoqLrmiYAgPiBjbGluaWM7CivpgbrmgaggPiBncnVkZ2U7Civmk7TmlaMgPiBzcHJlYWQ7CivprIbppIUgPiBtdWZmaW47Civmk6/mlqUgPiByZWplY3Q7CivliqDltJkgPiBnYWxsb247CivlpYfkuosgPiBtYXJ2ZWw7CivmlZnloIIgPiBjaHVyY2g7CivoqZ7lsL4gPiBzdWZmaXg7CivpgLHmnJ8gPiBwZXJpb2Q7Civpm7bllK4gPiByZXRhaWw7Civmq7vmoYMgPiBjaGVycnk7CivlnKjou4ogPiBhYm9hcmQ7CivojLbnopcgPiB0ZWFjdXA7Civnt57luLYgPiByaWJib247CivliIbmtL4gPiBhc3NpZ247Civnlr7pprMgPiBnYWxsb3A7Civnt4rmgKUgPiB1cmdlbnQ7Civlu4HmiYAgPiB0b2lsZXQ7CivluqbmlbggPiBkZWdyZWU7CivpmLvmqYggPiB0aHdhcnQ7CivmjqfoqLQgPiBhY2N1c2U7CivmkJbnsYMgPiBjcmFkbGU7CivokZflkI0gPiBmYW1vdXM7CivlvLfli6IgPiBtaWdodHk7CivntK7nh58gPiBlbmNhbXA7CivntoHmnrYgPiBraWRuYXA7Civlh7nmtJ4gPiBjYXZpdHk7CivlvLHljJYgPiB3ZWFrZW47CivpmbDmiLYgPiB2YWdpbmE7Civmk4rmlZcgPiBkZWZlYXQ7CivpgLLmjqUgPiBhY2Nlc3M7Civnn63lj6UgPiBjbGF1c2U7CivntZXmsKMgPiBleHBpcmU7CivoqLzlr6YgPiB2ZXJpZnk7CivpgKPmk4ogPiBiYXR0ZXI7CivmlZnljYAgPiBwYXJpc2g7CivpgK7mjZUgPiBhcnJlc3Q7Civnm6PnjYQgPiBwcmlzb247Civngavnrq0gPiByb2NrZXQ7CivpmrHlo6sgPiBoZXJtaXQ7Civoirnoj5wgPiBjZWxlcnk7Civnn63lio0gPiBkYWdnZXI7Civoiq3olYkgPiBiYW5hbmE7CivlvLflgaUgPiBzdHVyZHk7CivmrablmaggPiB3ZWFwb247CivoiIzpoK0gPiB0b25ndWU7CivnhaTlsZEgPiBjaW5kZXI7CivlubPmnb8gPiB0YWJsZXQ7Civlh7nmp70gPiBzb2NrZXQ7CivoqJjluLMgPiBjaGFyZ2U7CivliK7mjokgPiBzY3JhcGU7CivpmbDlvbEgPiBzaGFkb3c7Civpq5jpm4UgPiBkYWludHk7CivmraHllpwgPiBqb3lmdWw7CivliIbmnp0gPiBicmFuY2g7CivliYrlvLEgPiB3ZWFrZW47CivmraXlk6ggPiBzZW50cnk7CivmkKrnk7cgPiBlbmFtZWw7CivlgrPpgZQgPiBjb252ZXk7Civmk7TlsZUgPiBleHRlbmQ7CivliIbmnIMgPiBicmFuY2g7Civmv4DotbcgPiBhcm91c2U7CivooaHph48gPiB3ZWlnaHQ7Civpqqjpq5MgPiBtYXJyb3c7CivmkJTnmaIgPiB0aWNrbGU7Civpm5Xlg48gPiBzdGF0dWU7CivmraPljYggPiBtaWRkYXk7CivmkqvmirEgPiBjYXJlc3M7CivlhaznnL4gPiBwdWJsaWM7CivmlZHkuLsgPiBzYXZpb3I7CivnspjnspggPiBzdGlja3k7CivmrbfkvoYgPiBhbHdheXM7CivmlKrli5UgPiB0b1wtbWl4Owor6KGX6YGTID4gc3RyZWV0Owor5be054i+ID4gYmFsdGljOwor55qE56K6ID4gcmVhbGx5Owor6YGO5aSxID4gZGVmZWN0Owor6ZW355+tID4gbGVuZ3RoOwor5bmr5omLID4gaGVscGVyOwor5q2j5YC8ID4gaG9uZXN0Owor5YWs55SoID4gcHVibGljOwor6YGt5Y+XID4gc3VmZmVyOwor6ZmE5bq4ID4gdmFzc2FsOwor55uu5qiZID4gdGFyZ2V0Owor6YGp5ZCIID4gdG9cLWZpdDsKK+mrmOmBlCA+IGF0dGFpbjsKK+ijnOe1piA+IHN1cHBseTsKK+iKseeyiSA+IHBvbGxlbjsKK+WFqOeQgyA+IGVudGlyZTsKK+aMkemBuCA+IGNob29zZTsKK+mBreWIsCA+IHN1ZmZlcjsKK+eZveeXtCA+IGlkaW9jeTsKK+WzveiwtyA+IGNhbnlvbjsKK+WZqumfsyA+IHJ1bWJsZTsKK+aNjeihmyA+IGRlZmVuZDsKK+ihqOimqiA+IGNvdXNpbjsKK+ingOW/tSA+IG5vdGlvbjsKK+ijgee4qyA+IHRhaWxvcjsKK+aOoee0jSA+IGFjY2VwdDsKK+ijnOeoriA+IHJlc2VlZDsKK+WFgeeVtiA+IHByb3BlcjsKK+WGsOafsSA+IGljaWNsZTsKK+mWseattyA+IHRvXC1zZWU7Civlnabnmb0gPiBob25lc3Q7CivpmLLlroggPiBkZWZlbmQ7CivpmL/lp6ggPiBhdW50aWU7CivojYnmlpkgPiBmb2RkZXI7Civnt5rkuIogPiBvbmxpbmU7Civlh7rluK0gPiBhdHRlbmQ7CivpqZrpp60gPiBmcmlnaHQ7CivntKDmj48gPiBza2V0Y2g7CivlhYfnjJsgPiBmaWVyY2U7CivplpLmt7cgPiBsb2l0ZXI7CivmkZ/mirEgPiB0b1wtaHVnOwor6Ieq6LqrID4gaXRzZWxmOwor6YCy5Y+jID4gaW1wb3J0Owor5o6h56SmID4gbWluaW5nOwor5pO+5LqCID4gaW5mZXN0Owor57WQ5bC+ID4gZW5kaW5nOwor6Zaj5qiTID4gZ2FycmV0Owor6Iqx55SfID4gcGVhbnV0Owor6YGO5Lu9ID4gdW5kdWx5Owor6amf6ZuoID4gc2hvd2VyOwor5bmD5bmVID4gc2NyZWVuOwor5pC25pWRID4gcmVzY3VlOwor5YWJ5r6kID4gbHVzdGVyOwor5pCc5p+lID4gc2VhcmNoOwor6YCd5Y67ID4gZWxhcHNlOwor5YWJ5ryGID4gZW5hbWVsOwor5pCt5pWRID4gcmVzY3VlOwor5YWJ5ruRID4gZ2xvc3N5Owor6YCV5ZCRID4gcmFkaWFsOwor5bGP6aKoID4gc2NyZWVuOwor6YC85LuEID4gbmFycm93Owor55u45beuID4gZGlmZmVyOwor6Zec5b+DID4gY2FyaW5nOwor5pCW5pmDID4gZmFsdGVyOwor5oq16YGUID4gYXJyaXZlOwor5Zyw55SiID4gZXN0YXRlOwor57Sw5aupID4gdGVuZGVyOwor5bGA6Z2iID4gYXNwZWN0Owor5r6x57KJID4gc3RhcmNoOwor5qiZ5qacID4gZmxhdW50Owor55m95qWKID4gcG9wbGFyOwor5rqQ6bueID4gc291cmNlOwor5ruR6ZuqID4gdG9cLXNraTsKK+Wbnue1lSA+IHJlYnVmZjsKK+ilquW4tiA+IGdhcnRlcjsKK+e2geS9jyA+IGZhc3RlbjsKK+ecvOWFiSA+IHZpc2lvbjsKK+aoo+acrCA+IHNhbXBsZTsKK+eDiOWjqyA+IG1hcnR5cjsKK+eyvuaYjiA+IGFzdHV0ZTsKK+iFs+mQkCA+IGZldHRlcjsKK+eUoumHjyA+IG91dHB1dDsKK+eZveaenCA+IGdpbmtnbzsKK+W4huW4gyA+IGNhbnZhczsKK+W4g+W5lSA+IHNjcmVlbjsKK+i3s+mAsiA+IHBsdW5nZTsKK+WatOiChSA+IHNvbGVtbjsKK+mZhOS4iiA+IGF0dGFjaDsKK+aKrOi1tyA+IHVwbGlmdDsKK+W5vuS5jiA+IGFsbW9zdDsKK+i/q+WIhyA+IHVyZ2VudDsKK+eAiea5liA+IGxhZ29vbjsKK+e0hOWumiA+IGVuZ2FnZTsKK+ewoeebtCA+IHNpbXBseTsKK+i3n+mAsiA+IGZvbGxvdzsKK+WFieaYryA+IHNvbGVseTsKK+e1puS6iCA+IGFjY29yZDsKK+WxseiwtyA+IHZhbGxleTsKK+WgseS/oSA+IG5vdGlmeTsKK+ewoeeVpSA+IHNpbXBsZTsKK+ikh+aVuCA+IHBsdXJhbDsKK+eZveaQrSA+IG5vXC11c2U7Civlt6HlvIsgPiBjcnVpc2U7CivmqZ/lr4YgPiBzZWNyZXQ7CivoiKrnqIsgPiBmbGlnaHQ7CivlhqzlpKkgPiB3aW50ZXI7Civmj7TmiYsgPiBzdWNjb3I7Civpq5Tns7sgPiBzeXN0ZW07CivluJ3lnIsgPiBlbXBpcmU7CivojLblo7ogPiB0ZWFwb3Q7Civnm5/lnIsgPiBhbGxpZXM7CivmqZjlrZAgPiBvcmFuZ2U7Civoo4HmsbogPiBydWxpbmc7CivoppblipsgPiB2aXNpb247Civlr6bpq5QgPiBlbnRpdHk7CivnmbzmipYgPiBzaGl2ZXI7CivntKLlj5YgPiB0b1wtYXNrOwor5bit5Y23ID4gZW5ndWxmOwor5Zyw5q+vID4gY2FycGV0Owor5YWr5bqmID4gb2N0YXZlOwor55So6KqeID4gc3ludGF4Owor5biC5aC0ID4gbWFya2V0Owor5Z+O5aChID4gY2FzdGxlOwor56+A57SEID4gZnJ1Z2FsOwor55Sy6J+yID4gYmVldGxlOwor5om/6Ku+ID4gZWZmb3J0Owor6KGb55SfID4gaGVhbHRoOwor6ZW35bqmID4gbGVuZ3RoOwor6KOc5pWRID4gcmVtZWR5Owor5L+u6KiCID4gcmV2aXNlOwor5bir5YKFID4gbWFzdGVyOwor6L+E5LuKID4gc29cLWZhcjsKK+WvpumamyA+IGFjdHVhbDsKK+WYl+ippiA+IHRvXC10cnk7CivlnoLluZUgPiBjYW5vcHk7CivooJ/nrYYgPiBjcmF5b247CivlhrDlh40gPiBmcmVlemU7Civkvq7ovrEgPiBpbnN1bHQ7CivmqKPlrZAgPiBtYW5uZXI7Civnlqvnl4UgPiBwbGFndWU7Civln7fkuosgPiBkZWFjb247CivmiJDplbcgPiBtYXR1cmU7Civmup3pgZMgPiBncm9vdmU7CivovrLkurogPiBmYXJtZXI7Civmj5LluqcgPiBzb2NrZXQ7Civmu77okL0gPiB0dW1ibGU7CivlsIfov5EgPiBhbG1vc3Q7Civns7vliJcgPiBzZXJpZXM7Civnm4jliKkgPiBwcm9maXQ7CivmjpLmlqUgPiByZWplY3Q7Civmia7oo50gPiBtYWtldXA7Civmi4nnt4ogPiBzdHJhaW47Civkv53ooZsgPiBkZWZlbmQ7Civono3op6MgPiBtb2x0ZW47CivlnJbmoYggPiBkZXNpZ247CivohZToqr8gPiBhY2NlbnQ7CivotbDpjK8gPiBhc3RyYXk7CivllonpoK0gPiB0aHJvYXQ7Civnr4DnnIEgPiBzYXZpbmc7CivovJXlvq4gPiBzbGlnaHQ7CivlnJPmn7EgPiBjb2x1bW47Civmo4noirEgPiBjb3R0b247CivlsY/olL0gPiBzY3JlZW47CivlhaflnLAgPiBpbmxhbmQ7Civkv6HomZ8gPiBzaWduYWw7CivlsI/ospMgPiBraXR0ZW47CivooYzngrogPiBhY3Rpb247CivlsI3osaEgPiB0YXJnZXQ7CivlhbHlkIwgPiBjb21tb247Civln4vkvI8gPiBhbWJ1c2g7CivnlobnlYwgPiBib3JkZXI7CivlsI3oqbEgPiBkaWFsb2c7CivnrKbomZ8gPiBzeW1ib2w7Civog7jph50gPiBicm9vY2g7CivmkK3kuZggPiBlbWJhcms7CivohIXov6sgPiBjb2VyY2U7CivllprphpIgPiBhcm91c2U7CivlhavljYEgPiBlaWdodHk7CivmqKPlk4EgPiBzYW1wbGU7CivnsLjmj5ogPiB3aW5ub3c7Civmo5Lns5YgPiBzdWNrZXI7Civnrpfnm6QgPiBhYmFjdXM7CivnsKHmmJMgPiBzaW1wbGU7CivooJ/nh60gPiBjYW5kbGU7Civnsr7lipsgPiBlbmVyZ3k7CivlhazlhbEgPiBwdWJsaWM7CivlgrPmn5MgPiBpbmZlY3Q7Civlt6XkurogPiB3b3JrZXI7CivlnKjlvowgPiBiZWhpbmQ7Civoh6rnhLYgPiBuYXR1cmU7Civmu77nrZIgPiByb2xsZXI7CivmvaTmu5EgPiBzbW9vdGg7CivotbfoqLQgPiB0b1wtc3VlOwor6J2X6J+yID4gbG9jdXN0Owor5bK454S2ID4gc29sZW1uOwor5YKz5pWZID4gcHJlYWNoOwor6KOB5a6aID4gcnVsaW5nOwor562J57SaID4gZGVncmVlOwor6LyD5aW9ID4gYmV0dGVyOwor6Iqx5ZySID4gZ2FyZGVuOwor6Iqx5ZyIID4gd3JlYXRoOwor6IWO6IefID4ga2lkbmV5Owor5o2V5ou/ID4gYXJyZXN0Owor6Lev56iLID4gY291cnNlOwor5YWI5YmNID4gYmVmb3JlOwor5oaC6ayxID4gc3VsbGVuOwor6aas6LevID4gc3RyZWV0Owor56mX6aO+ID4gdGFzc2VsOwor5YCr55CGID4gZXRoaWNzOwor55Ge6YeRID4gcnVpamluOwor5oqx55eFID4gYmVcLWlsbDsKK+WCs+aOiCA+IGltcGFydDsKK+i7iuW6qyA+IGdhcmFnZTsKK+a4rOmHjyA+IHN1cnZleTsKK+Wtl+mmliA+IHByZWZpeDsKK+mtmuWkqyA+IGZpc2hlcjsKK+eyl+WKoyA+IGNvYXJzZTsKK+iKseWTqCA+IGdhcmlzaDsKK+aJjeiDvSA+IHRhbGVudDsKK+i8leWSrCA+IG5pYmJsZTsKK+ainee0iyA+IHN0cmlwZTsKK+iHtOatuyA+IGRlYWRseTsKK+WatOagvCA+IHN0cmljdDsKK+aPkuWFpSA+IGluc2VydDsKK+a8gueZvSA+IGJsZWFjaDsKK+aMq+aVlyA+IHRod2FydDsKK+i0lumHkSA+IHJhbnNvbTsKK+exg+WtkCA+IGJhc2tldDsKK+ihjOaYnyA+IHBsYW5ldDsKK+WbnuaGtiA+IHJlY2FsbDsKK+WFieS6riA+IGJyaWdodDsKK+a/vuWZqCA+IGZpbHRlcjsKK+eyl+S/lyA+IHZ1bGdhcjsKK+epgOmhniA+IGNlcmVhbDsKK+WBteafpSA+IGRldGVjdDsKK+WCt+W/gyA+IGdyaWV2ZTsKK+WuueiosSA+IHBlcm1pdDsKK+aOp+WRiiA+IGFjY3VzZTsKK+iiluWtkCA+IHNsZWV2ZTsKK+S9juiqniA+IG11dHRlcjsKK+iKseWFkiA+IGZsb3dlcjsKK+icpeictCA+IGxpemFyZDsKK+a8o+a8qiA+IHJpcHBsZTsKK+WbuuWuiCA+IGFkaGVyZTsKK+Wci+WkliA+IGFicm9hZDsKK+a2sumrlCA+IGxpcXVpZDsKK+iDjOiqpiA+IHJlY2l0ZTsKK+aelemgrSA+IHBpbGxvdzsKK+icmOibmyA+IHNwaWRlcjsKK+W0juW2hyA+IHJ1Z2dlZDsKK+mkkemkkSA+IHBhc3RyeTsKK+eWsuaGiiA+IGJlYXRlbjsKK+S+jeiAhSA+IHdhaXRlcjsKK+mkkOmjsiA+IHJlcGFzdDsKK+WCt+WusyA+IGluanVyZTsKK+S/rueQhiA+IHJlcGFpcjsKK+S9leiZlSA+IHdoZW5jZTsKK+a8q+atpSA+IHJhbWJsZTsKK+S/oeeUqCA+IGNyZWRpdDsKK+a2vOmeiyA+IHNhbmRhbDsKK+a1t+m+nCA+IHR1cnRsZTsKK+WboOWtkCA+IGZhY3RvcjsKK+aLs+aTiiA+IGJveGluZzsKK+i7n+WMliA+IHNvZnRlbjsKK+WuieipsyA+IHNlcmVuZTsKK+Wcn+WMqiA+IGJhbmRpdDsKK+aLlOaguSA+IHVwcm9vdDsKK+aJo+eVmSA+IGRldGFpbjsKK+advumbniA+IGdyb3VzZTsKK+mmmeiViSA+IGJhbmFuYTsKK+mrmOW6piA+IGhlaWdodDsKK+ani+S7tiA+IG1lbWJlcjsKK+WVhuirhyA+IGNvbmZlcjsKK+eVsOaVmSA+IGhlcmVzeTsKK+ewoeWWriA+IHNpbXBsZTsKK+ajuuadkCA+IGNvZmZpbjsKK+WcsOS4uyA+IGFcLWhvc3Q7Civpq5jlsbEgPiBhbHBpbmU7Civlg7HkvaMgPiBlbXBsb3k7Civpo6LppJMgPiBodW5nZXI7CivnlJ/mtq8gPiBjYXJlZXI7Civmo67mnpcgPiBmb3Jlc3Q7CivkvZzogIUgPiBhdXRob3I7CivmjKrlqIEgPiBub3J3YXk7CivlsIvnmoQgPiBob21pbmc7CivlmrTlr4YgPiBzdHJpY3Q7Civmi5jmjZUgPiBhcnJlc3Q7CivlgaXlurcgPiBoZWFsdGg7Civooajlk6UgPiBjb3VzaW47CivmnIvpu6ggPiBjbGlxdWU7Civmt7fooYAgPiBoeWJyaWQ7Civot4vmtokgPiB0cnVkZ2U7Civlg4Xlg4UgPiBiYXJlbHk7Civlm57ljrsgPiByZXR1cm47CivmvI/mlpcgPiBmdW5uZWw7Civos5Poqp4gPiBvYmplY3Q7CivkubPpoK0gPiBuaXBwbGU7Civmu7/mnJ8gPiBleHBpcmU7CivnkIboq5YgPiB0aGVvcnk7Civku4vos6ogPiBtZWRpdW07CivnrZTmoYggPiBhbnN3ZXI7Civpkb/lrZAgPiBjaGlzZWw7CivnlLHmlrwgPiBkdWVcLXRvOwor5oqK5p+EID4gaGFuZGxlOwor5ZKM6aKoID4gYnJlZXplOwor5L2/55SoID4gdG9cLXVzZTsKK+iBmOiriyA+IGVuZ2FnZTsKK+aJtuakjSA+IGZvc3RlcjsKK+eSsOeQgyA+IGdsb2JhbDsKK+W0l+S9jSA+IGFcLXBvc3Q7Civkvr/msaAgPiB1cmluYWw7Civlm57kvoYgPiByZXR1cm47Civmi5PlsZUgPiBleHBhbmQ7CivmuqrmtYEgPiBzdHJlYW07CivlmrTljrIgPiBzZXZlcmU7CivmvZvlnKggPiBoaWRkZW47CivoiLnkuIogPiBhYm9hcmQ7CivlrqPnqLEgPiBhc3NlcnQ7Civlk4Dovq0gPiBsYW1lbnQ7CivmiYvmrrUgPiBtZXRob2Q7Civkub7phaogPiBjaGVlc2U7Civmm7Tpq5ggPiBoaWdoZXI7CivlgYzlpKcgPiBzb1wtYmlnOwor5a6j56S6ID4gdG9cLXZvdzsKK+Wwj+awoyA+IHN0aW5neTsKK+mrlOWItiA+IHN5c3RlbTsKK+aIkOeGnyA+IG1hdHVyZTsKK+iCjOiCiSA+IG11c2NsZTsKK+S9nOeUqCA+IGFjdGlvbjsKK+aKveWxnCA+IGRyYXdlcjsKK+mpmuaBkCA+IGFwcGFsbDsKK+aKiuaJiyA+IGhhbmRsZTsKK+aJi+anjSA+IHBpc3RvbDsKK+WutueVnCA+IGNhdHRsZTsKK+emj+mfsyA+IGdvc3BlbDsKK+i1t+a6kCA+IG9yaWdpbjsKK+e+pOmrlCA+IGNvbG9ueTsKK+S6gui3syA+IGJvdW5jZTsKK+eUt+W3qyA+IHdpemFyZDsKK+iGveWkpyA+IGRhcmluZzsKK+WuieelpSA+IHNlcmVuZTsKK+etlOW+qSA+IGFuc3dlcjsKK+i3n+W+niA+IGZvbGxvdzsKK+WBpeWFqCA+IHJvYnVzdDsKK+aguea6kCA+IG9yaWdpbjsKK+iDvea6kCA+IGVuZXJneTsKK+acrOi6qyA+IGl0c2VsZjsKK+aLjOWYtCA+IGJpY2tlcjsKK+aJk+aTiiA+IHRvXC1oaXQ7Civmh4nnlbYgPiBzaG91bGQ7CivmiaPmirwgPiBkZXRhaW47CivnrKjmi5kgPiBjbHVtc3k7CivlgIvlrZAgPiBoZWlnaHQ7Civmh4nnlKggPiB0b1wtdXNlOwor55GV55a1ID4gc3RpZ21hOwor5pud6ZyyID4gZXhwb3NlOwor5rW36KOhID4gbWFyaW5lOwor5ZGz6YGTID4gZmxhdm9yOwor5omL5oyHID4gZmluZ2VyOwor5oqK5a2QID4gaGFuZGxlOwor56eB6KqeID4gbXVybXVyOwor6aSK6IKyID4gZm9zdGVyOwor5pyA6L+RID4gcmVjZW50Owor5riF55imID4gbWVhZ2VyOwor5rS76LqNID4gYWN0aXZlOwor5bK45LiKID4gYXNob3JlOwor5oiQ5p6cID4gcmVzdWx0Owor5Lit6YCUID4gbWlkd2F5Owor6aCC6bueID4gc3VtbWl0Owor5pq06ZyyID4gZXhwb3NlOwor56qB54S2ID4gc3VkZGVuOwor5pyo6KO9ID4gd29vZGVuOwor5a6J54S2ID4gc2FmZWx5Owor6aOi6I2SID4gZmFtaW5lOwor6La+5bCWID4gdGlwdG9lOwor5p2f6IWwID4gZ2lyZGxlOwor5a6u5q6/ID4gcGFsYWNlOwor5p2/57WQID4gaGFyZGVuOwor5L6b5oeJID4gc3VwcGx5Owor5L+h5aWJID4gYmVsaWVmOwor5oiQ5pWIID4gZWZmZWN0Owor55O25a2QID4gYm90dGxlOwor5LiJ6YeNID4gdHJlYmxlOwor5a6i5rCjID4gcG9saXRlOwor5rWu6JGXID4gYWZsb2F0Owor5aqS6LOqID4gbWVkaXVtOwor6K6K6buRID4gZGFya2VuOwor5a2k542oID4gbG9uZWx5Owor5rig5rqdID4gdHJlbmNoOwor6IOh5qSSID4gcGVwcGVyOwor5rWu6I+vID4gdmFuaXR5Owor6aeB5palID4gcmVmdXRlOwor5LiN6YGpID4gdW53ZWxsOwor576e6L6xID4gYmFmZmxlOwor55WZ5LiLID4gcmVtYWluOwor5LiK6YKKID4gdXBzaWRlOwor6Y+h5a2QID4gbWlycm9yOwor6IOh5qGDID4gd2FsbnV0Owor6Y+f5a2QID4gc2hvdmVsOwor5bCB5bu6ID4gZmV1ZGFsOwor5p6c55yfID4gcmVhbGx5Owor5ZKM6Je5ID4ga2luZGx5Owor6bia6bWhID4gcGFycm90Owor56m/5rSeID4gcGllcmNlOwor5a+65bufID4gdGVtcGxlOwor55CG55SxID4gcmVhc29uOwor6Laz5aSgID4gZW5vdWdoOwor6JWB6bq7ID4gbmV0dGxlOwor5a6i5qOnID4gdGF2ZXJuOwor5a+25bqnID4gdGhyb25lOwor5Y+p6aCtID4ga293dG93Owor5oi/5a6iID4gdGVuYW50Owor56ys5ZubID4gZm91cnRoOwor6YeO6aSQID4gcGljbmljOwor5bCI5a62ID4gZXhwZXJ0Owor5p+z5qi5ID4gd2lsbG93Owor55Sx5L6GID4gb3JpZ2luOwor5L2/5b6XID4gdXNhYmxlOwor5ryC5LquID4gcHJldHR5Owor5ZeT5a2QID4gdGhyb2F0Owor6JyD5pmvID4gbWlyYWdlOwor6YeN6Z+zID4gYWNjZW50Owor5Y+N6aeBID4gcmV0b3J0Owor5bCR5aWzID4gbWFpZGVuOwor55Sx5LqOID4gZHVlXC10bzsKK+a1t+e2vyA+IHNwb25nZTsKK+eQg+eLgCA+IHNwaGVyZTsKK+eUqOS6jiA+IHVzZVwtaW47Civmh4nmnIkgPiBwcm9wZXI7CivosqfnmKAgPiBiYXJyZW47CivomZ/norwgPiBudW1iZXI7CivmmZrpo68gPiBzdXBwZXI7Civos63ms6ggPiBzdGFrZXM7CivnpZ7oq60gPiBvcmFjbGU7CivmhJrnrKggPiBzdHVwaWQ7CivmnpznhLYgPiByZWFsbHk7CivkuI3opoEgPiBkb24nJ3RcITsKK+adkOepjSA+IHZvbHVtZTsKK+aJgeWckyA+IG9ibGF0ZTsKK+m7g+iJsiA+IHllbGxvdzsKK+WPrumItCA+IGppbmdsZTsKK+esrOWFqyA+IGVpZ2h0aDsKK+WxheS9jyA+IHJlc2lkZTsKK+WtuOagoSA+IHNjaG9vbDsKK+S4iuihqyA+IGJsb3VzZTsKK+azouiwtyA+IHRyb3VnaDsKK+S4iuihoyA+IGphY2tldDsKK+WvtuWhlCA+IHBhZ29kYTsKK+WuouaItiA+IGNsaWVudDsKK+eql+aItiA+IHdpbmRvdzsKK+WutuW6rSA+IGZhbWlseTsKK+mHjemHjyA+IHdlaWdodDsKK+afj+aelyA+IGJlcmxpbjsKK+aciee9qiA+IGd1aWx0eTsKK+mNteW4vSA+IGtleWNhcDsKK+Wwj+WMhSA+IHBhY2tldDsKK+S6qOeJuSA+IGh1bnRlcjsKK+epjealtSA+IGFjdGl2ZTsKK+aJk+WCtyA+IGJydWlzZTsKK+mggemCiiA+IG1hcmdpbjsKK+aJi+WGiiA+IG1hbnVhbDsKK+WvguWvniA+IGxvbmVseTsKK+a1t+ebnCA+IHBpcmF0ZTsKK+iDjOW+jCA+IGJlaGluZDsKK+eJmem9kiA+IGRlbnRhbDsKK+S9nOWutiA+IGF1dGhvcjsKK+WQjeiogCA+IHNheWluZzsKK+aZrumAmiA+IGNvbW1vbjsKK+iAgOecvCA+IGRhenpsZTsKK+S4u+e3qCA+IGVkaXRvcjsKK+a4r+W9jiA+IGhhcmJvcjsKK+iDjOW4tiA+IGJyYWNlczsKK+eKr+mMryA+IHRvXC1lcnI7CivogZbmrr8gPiB0ZW1wbGU7CivmmrTomZAgPiBicnV0YWw7Civms6LomK0gPiBwb2xhbmQ7Civpp4Hlm54gPiByZWplY3Q7CivmiJDlk6EgPiBtZW1iZXI7Civmg7PnnaEgPiBkcm93c3k7CivmmJ/pm7IgPiBuZWJ1bGE7Civororou58gPiBzb2Z0ZW47CivkuI3og70gPiBjYW5ub3Q7Civmtbfni7ggPiBiZWF2ZXI7Civkvp3lgY4gPiBuZXN0bGU7CivmhqTmhaggPiByZXNlbnQ7Civmh6blpKsgPiBjb3dhcmQ7CivkvJHmg5wgPiByZWNlc3M7Civok6zprIYgPiBmbHVmZnk7Civlj6/opqogPiBraW5kbHk7Civno4HpkLUgPiBtYWduZXQ7CivpoJjoopYgPiBsZWFkZXI7CivkuI3nvoggPiB1bnJ1bHk7CivmoKHlnJIgPiBjYW1wdXM7CivmiJDli6MgPiByZXN1bHQ7CivnpZ7ogZYgPiBkaXZpbmU7CivkuK3nrYkgPiBtZWRpdW07Civororos6ogPiBnb1wtYmFkOwor576K6IKJID4gbXV0dG9uOwor5raI5ruFID4gcGVyaXNoOwor5ZaJ5ZqoID4gdGhyb2F0Owor5oCn6LOqID4gbmF0dXJlOwor5ZCK6JGXID4gZGFuZ2xlOwor5p+x5a2QID4gcGlsbGFyOwor5riF5buJID4gaG9uZXN0Owor5Y2x6ZqqID4gZGFuZ2VyOwor5a6J5a6aID4gc3RhYmxlOwor5oaO5oOhID4gbG9hdGhlOwor5Y+j6KKLID4gcG9ja2V0Owor5oaO5oGoID4gZGV0ZXN0Owor5Zac5YqHID4gY29tZWR5Owor5a+S5YasID4gd2ludHJ5Owor6LK25palID4gZGVtb3RlOwor5aWu6aylID4gc3RyaXZlOwor5Zau5L2NID4gYVwtdW5pdDsKK+acieeUqCA+IHVzZWZ1bDsKK+eQg+aLjSA+IHJhY2tldDsKK+WPpeiZnyA+IHBlcmlvZDsKK+WPo+iZnyA+IHNsb2dhbjsKK+epqeWumiA+IHN0YWJsZTsKK+WWruS4gCA+IHNpbmdsZTsKK+WtkOW9iCA+IGJ1bGxldDsKK+WuieWfuSA+IGFtcGVyZTsKK+ehrOmgmCA+IGNvbGxhcjsKK+mhhueykiA+IGtlcm5lbDsKK+mjn+anvSA+IG1hbmdlcjsKK+WqkueVjCA+IG1lZGl1bTsKK+acrOa6kCA+IG9yaWdpbjsKK+WusOWJsiA+IGludmFkZTsKK+iDjOWPmyA+IGJldHJheTsKK+i0luWbniA+IHJlZGVlbTsKK+azoue0iyA+IHJpcHBsZTsKK+eql+WPoyA+IHdpbmRvdzsKK+eNqOeJuSA+IHVuaXF1ZTsKK+Wtl+WwviA+IHN1ZmZpeDsKK+elnuekviA+IHNocmluZTsKK+iVquiPgSA+IHR1cm5pcDsKK+ayueiEgiA+IGdyZWFzZTsKK+mdm+mdkiA+IGluZGlnbzsKK+meoOi6rCA+IHRvXC1ib3c7Civph5HoibIgPiBnb2xkZW47Civljbfou7ggPiBzY3JvbGw7CivlpKfpuqUgPiBiYXJsZXk7CivptZPptL8gPiBwaWdlb247CivlrqTlhacgPiBpbmRvb3I7CivkvZXku6UgPiB3aGVuY2U7Civlj5foi6YgPiBzdWZmZXI7CivkvLjlh7ogPiBleHRlbmQ7CivkuIDnnqUgPiBnbGFuY2U7CivkvK/li54gPiBzaHJpa2U7CivmtLvmvZEgPiBsaXZlbHk7CivmlqzpppYgPiBiZWhlYWQ7Civos5PlrqIgPiBndWVzdHM7CivljJXpppYgPiBkYWdnZXI7CivnkZ7lhbggPiBzd2VkZW47CivorJvpgZMgPiBwcmVhY2g7CivpvLvmga8gPiBicmVhdGg7CivorJnpgZwgPiBodW1ibGU7Civosqrlv4MgPiBncmVlZHk7CivotIrlkIwgPiBhc3NlbnQ7CivoloTntJkgPiB0aXNzdWU7CivmgrbnhrEgPiBzdWx0cnk7CivpoJLntaYgPiBjb25mZXI7Civorprnvo4gPiBhZG1pcmU7Civnj77lrZggPiBleHRhbnQ7CivppJDlt74gPiBuYXBraW47Civku6XlpKogPiBldGhlclwtOwor5oWL5bqmID4gbWFubmVyOwor5aW26YWqID4gY2hlZXNlOwor54u556qEID4gbmFycm93Owor55Gj5LqLID4gdHJpZmxlOwor6ICB5pivID4gYWx3YXlzOwor6JWD6IyEID4gdG9tYXRvOwor6LKh5bibID4gd2VhbHRoOwor6aCQ566XID4gYnVkZ2V0Owor6Z2S6YqFID4gYnJvbnplOwor5b+Y6KiYID4gZm9yZ2V0Owor6aCR56ulID4gdXJjaGluOwor5re35ZCIID4gdG9cLW1peDsKK+acg+atuyA+IG1vcnRhbDsKK+S4jeeEtiA+IG5vdFwtc287CivoroDogIUgPiByZWFkZXI7CivmtKrmsLQgPiBkZWx1Z2U7CivmhJ/mhaggPiBsYW1lbnQ7Civos63ljZogPiBnYW1ibGU7Civkuovmg4UgPiBhZmZhaXI7CivlrZjlj5YgPiBhY2Nlc3M7CivmnKjmlpkgPiBsdW1iZXI7CivosqHlr4wgPiB3ZWFsdGg7Civmt7HljJYgPiBkZWVwZW47Civmlrnph50gPiBwb2xpY3k7CivpoILnq68gPiBzdW1taXQ7CivlppboqIAgPiBoZXJlc3k7Civnj77lnKggPiBtb2Rlcm47CivororntIUgPiByZWRkZW47CivlkI3nlKIgPiBzdGFwbGU7CivmmIbon7IgPiBpbnNlY3Q7CivlvozpgoogPiBiZWhpbmQ7CivnjJbni4IgPiBzYXZhZ2U7CivlraTlhZIgPiBvcnBoYW47Civmt6jljJYgPiBwdXJpZnk7CivlvozpgIAgPiByZWNvaWw7CivniaHooKMgPiBveXN0ZXI7Civkurrlo6sgPiBwZXJzb247Civogbfli5kgPiBhXC1wb3N0Owor54mH6KqeID4gcGhyYXNlOwor5rCR6KygID4gYmFsbGFkOwor54yb54OIID4gZmllcmNlOwor5rWB5pifID4gbWV0ZW9yOwor5oKy5q2OID4gYmV3YWlsOwor5a2Y5YSyID4gbWVtb3J5Owor5Lul5YmNID4gYmVmb3JlOwor6LGh5b61ID4gZW1ibGVtOwor5LiN5q+bID4gYmFycmVuOwor5LiN5q+UID4gdW5saWtlOwor6LGh5b6BID4gc3ltYm9sOwor5q+X6YCjID4gYWRqb2luOwor5aSn6YyYID4gc2xlZGdlOwor5pyA5pawID4gbGF0ZXN0Owor5rK755CGID4gZ292ZXJuOwor5Li75pWZID4gYmlzaG9wOwor6KyZ6JmbID4gbW9kZXN0Owor54i26KaqID4gZmF0aGVyOwor6JmV5aWzID4gdmlyZ2luOwor6LOj5Li7ID4gc2VsbGVyOwor576K5q+bID4gZmxlZWNlOwor5pS+6ayGID4gbG9vc2VuOwor5ZCr5rC0ID4gd2F0ZXJ5Owor56eY5a+GID4gc2VjcmV0Owor6JmV5aKDID4gcGxpZ2h0Owor6K2w56iLID4gYWdlbmRhOwor54uh54y+ID4gY3JhZnR5Owor546L5bqnID4gdGhyb25lOwor5oOh5oSPID4gbWFsaWNlOwor5byE6auSID4gZGVmaWxlOwor5pys5beeID4gaG9uc2h1Owor5ayw5YWSID4gaW5mYW50Owor6Jaq5rC0ID4gc2FsYXJ5Owor54245oCnID4gYnJ1dGFsOwor5pW46YePID4gYW1vdW50Owor5pa36KiAID4gYWZmaXJtOwor5peF6KGMID4gdHJhdmVsOwor5rWq5a2QID4gbG9hZmVyOwor5pyJ5oSPID4gaW50ZW5kOwor56eL5a2jID4gYXV0dW1uOwor5ZCN5rWBID4gZ2VudHJ5Owor5Y+w54GjID4gdGFpd2FuOwor5LiN5pm6ID4gdW53aXNlOwor5aaC6I2JID4gZ3Jhc3N5Owor5pWF6ZqcID4gZ2xpdGNoOwor6aGY5pybID4gZGVzaXJlOwor5ZCI5rOVID4gbGF3ZnVsOwor5ZCN5rCjID4gcmVwdXRlOwor5aSn6LevID4gYXZlbnVlOwor5rW35aCxID4gcG9zdGVyOwor6Kme6aCtID4gcHJlZml4Owor5Lqm5Y2zID4gbmFtZWx5Owor5ZOA5ZiGID4gbGFtZW50Owor546L5a2QID4gcHJpbmNlOwor57ir6YedID4gbmVlZGxlOwor5q6v6LuKID4gaGVhcnNlOwor6Yar55SfID4gZG9jdG9yOwor56eL5aSpID4gYXV0dW1uOwor5Lq65YCRID4gcGVvcGxlOwor5pqW5rCjID4gaGVhdGVyOwor56e75YuVID4gbW9iaWxlOwor5ZC45pS2ID4gYWJzb3JiOwor5oSP5ZyWID4gaW50ZW50Owor5by36L+rID4gY29tcGVsOwor6aGr5oqWID4gcXVpdmVyOwor57ej6aO+ID4gZnJpbmdlOwor5Lit5b+DID4gY2VudGVyOwor5oKU5pS5ID4gcmVwZW50Owor5ZGo5bm0ID4gYW5udWFsOwor5Y+j5ri0ID4gdGhpcnN0Owor6Yed5rOVID4gc3RpdGNoOwor5raI5YyWID4gZGlnZXN0Owor5q2j6ZaAID4gcG9ydGFsOwor5rW35ZOhID4gc2FpbG9yOwor5LqM5Y2BID4gdHdlbnR5Owor5ZCQ5qC5ID4gaXBlY2FjOwor6ZuZ6YeNID4gZG91YmxlOwor6Z2S6IuUID4gbGljaGVuOwor5aSa6K6KID4gZmlja2xlOwor5rKZ5rygID4gZGVzZXJ0Owor6YmL5bqKID4gcGxhbmVyOwor5bu26ZW3ID4gZXh0ZW5kOwor5ZCN5pybID4gcmVub3duOwor5Y+W5raIID4gY2FuY2VsOwor5aao56SZID4gaGluZGVyOwor5Lqk5LqSID4gbXV0dWFsOwor6YKj6YKKID4geW9uZGVyOwor5q246YKEID4gcmV0dXJuOwor5YqI6ZaLID4gY2xlYXZlOwor6YWS56qpID4gZGltcGxlOwor5ZKW5ZWhID4gY29mZmVlOwor556s6ZaTID4gbW9tZW50Owor5YuV6K2wID4gbW90aW9uOwor6Zmw6ayxID4gZ2xvb215Owor5pS+6YCQID4gYmFuaXNoOwor6YWN56ixID4gd29ydGh5Owor5rS75aGeID4gcGlzdG9uOwor5pyq5Y+vID4gY2Fubm90Owor5aSW6KGMID4gbGF5bWFuOwor8KWcjCA+IGFcLWNvYXQ7CivmnY/ku4EgPiBhbG1vbmQ7Civnoo7nn7MgPiBncmF2ZWw7CivpoJDmnJ8gPiBleHBlY3Q7Civmm7Tlpb0gPiBiZXR0ZXI7CivmhJvkurogPiBzcG91c2U7CivpmobpmoYgPiBydW1ibGU7Civnp4nlhawgPiBqdXN0bHk7CivnprHlkYogPiBwcmF5ZXI7Civmm7TlpKcgPiBiaWdnZXI7CivmnJ3lkJEgPiB0b3dhcmQ7CivkuZ3ljYEgPiBuaW5ldHk7CivnoLToiIogPiBzaGFiYnk7CivkuIDluLYgPiByZWdpb247CivpoaflrqIgPiBjbGllbnQ7Civlj6LmnpcgPiBqdW5nbGU7CivnoqfnjokgPiBqYXNwZXI7CivwpaWFID4gYVwtaG9sZTsKK+WPquaYryA+IG1lcmVseTsKK+eMtOWtkCA+IG1vbmtleTsKK/Cipo8gPiB0b1wtY3V0Owor6Zqn6YGTID4gdHVubmVsOwor5oOh5YyWID4gd29yc2VuOwor5pyo5YG2ID4gcHVwcGV0Owor5pyD5ZOhID4gbWVtYmVyOwor5LiA5bGAID4gaW5uaW5nOwor5pyJ5ZCNID4gZmFtb3VzOwor5pyL5Y+LID4gZnJpZW5kOwor6I+M6aGeID4gZnVuZ3VzOwor5LiA5bCNID4gY291cGxlOwor56Gr56O6ID4gc3VsZnVyOwor5pyq5L6GID4gZnV0dXJlOwor5LiA5a6aID4gc3VyZWx5Owor6YGt6YGHID4gYmVmYWxsOwor5LmL5YmNID4gYmVmb3JlOwor57235belID4gc3RyaWtlOwor6YSJ57SzID4gc3F1aXJlOwor6Kmt6KiIID4gZGVjZWl0Owor6LGB5YWNID4gZXhlbXB0Owor5rWB5YipID4gZmx1ZW50Owor5oCn5qC8ID4gbmF0dXJlOwor5rS75YqbID4gZW5lcmd5Owor6K6K5pu0ID4gY2hhbmdlOwor5b+D55CGID4gbWVudGFsOwor6K6K5pqXID4gZGFya2VuOwor54mi54miID4gZmlybWx5Owor6aKo5L+XID4gY3VzdG9tOwor57ej6LW3ID4gb3JpZ2luOwor6KiY6YyEID4gcmVjb3JkOwor8KCAiSA+IGFcLWhpbGw7CivlibXovqYgPiBsYXVuY2g7CivmmpflvbEgPiBzaGFkb3c7Civpmorpg6ggPiBvZmZpY2U7Civorprmj5ogPiBwcmFpc2U7CivkuZ7kuJAgPiBiZWdnYXI7CivpgY7ph48gPiBleGNlc3M7CivnhpTop6MgPiBmdXNpb247Civpmpjot68gPiBkZWZpbGU7CivpgoDoq4sgPiBpbnZpdGU7CivlvqrnkrAgPiBjaXJjbGU7CivmmbrmhacgPiB3aXNkb207CivnjbXkurogPiBodW50ZXI7CivmgZDmgJYgPiB0ZXJyb3I7CivmlpHntIsgPiBzdHJpcGU7Civnn7Poi7EgPiBxdWFydHo7CivljIXnrqEgPiBhc3N1cmU7CivphbXmr40gPiBsZWF2ZW47Civop6PpmaQgPiByZW1vdmU7Civli5XohIggPiBhcnRlcnk7CivmnIDkvY4gPiBsb3dlc3Q7Civnpa3lj7ggPiBwcmllc3Q7CivnibnmraQgPiBoZXJlYnk7Civpm4zolYogPiBwaXN0aWw7CivlpKnnr7cgPiBjYW5vcHk7CivlubLpoJAgPiBtZWRkbGU7CivljJbnn7MgPiBmb3NzaWw7CivkuI3lj68gPiBjYW5ub3Q7CivmsLTms6UgPiBjZW1lbnQ7CivmsLTms6EgPiBidWJibGU7CivorabmlrkgPiBwb2xpY2U7CivniLjniLggPiBmYXRoZXI7Civok4vniL4gPiBnYWVsaWM7CivliY3ovKkgPiBzZW5pb3I7CivoqJjotbcgPiByZWNhbGw7CivkuInljYEgPiB0aGlydHk7CivnuYPnsKcgPiBzcHJpbmc7CivmkqTpmaQgPiByZW1vdmU7Civph6blrZAgPiBidXR0b247CivlvYjnsKcgPiBzcHJpbmc7Civlia/oqZ4gPiBhZHZlcmI7CivniZvmsrkgPiBidXR0ZXI7CivoqrLnqIsgPiBjb3Vyc2U7CivlubTplbcgPiBzZW5pb3I7CivmgKfmg4UgPiBuYXR1cmU7Civnt6jomZ8gPiBudW1iZXI7CivmsKPms6EgPiBidWJibGU7CivljbHmqZ8gPiBjcmlzaXM7CivkuI3lhawgPiB1bmp1c3Q7CivlupXpg6ggPiBib3R0b207CivkuI3lhYsgPiBjYW5ub3Q7Civms5XlnIsgPiBmcmFuY2U7CivmsonmgJ0gPiBwb25kZXI7CivmmpfloKEgPiBidW5rZXI7Civni5flsYsgPiBrZW5uZWw7CivmmrTlkJsgPiB0eXJhbnQ7Civlh7npmbcgPiBob2xsb3c7CivkuInlgI0gPiB0cmlwbGU7CivlpKfnnL4gPiBwZW9wbGU7CivpnJznmb0gPiBmcm9zdHk7CivlkKbliYcgPiBpZlwtbm90Owor5YiG6ZCYID4gbWludXRlOwor6aCY5Z+fID4gZG9tYWluOwor6JGs56auID4gYnVyaWFsOwor5rC05qG2ID4gYnVja2V0Owor5pKk6Yq3ID4gcmVwZWFsOwor5ZCI5ZSxID4gY2hvcnVzOwor6Yar5birID4gZG9jdG9yOwor5Y+N5bCEID4gcmVmbGV4Owor5LiN5Li5ID4gYmh1dGFuOwor5pWs56auID4gc2FsdXRlOwor6Z2e5rSyID4gYWZyaWNhOwor6YCa6LevID4gYWNjZXNzOwor576O5Lq6ID4gYmVhdXR5Owor6KyA5q66ID4gbXVyZGVyOwor57235YWNID4gcmVjYWxsOwor6KiA6KqeID4gc3BlZWNoOwor5Ymd6J2VID4gZGVudWRlOwor6YCA6YKEID4gcmV0dXJuOwor5pW455uuID4gYW1vdW50Owor5Y+s5ZueID4gcmVjYWxsOwor56C054ibID4gcmFnZ2VkOwor5LiA5LiyID4gc3RyYW5kOwor57qW5q+bID4gY2lsaXVtOwor5oCn5a2QID4gdGVtcGVyOwor6L+96YCQID4gY2hhc2U7CivpgJXos70gPiB0cmFjazsKK+mdnOatoiA+IHN0aWxsOwor5be06buOID4gcGFyaXM7CivlubTovJUgPiB5b3VuZzsKK+i/tOmBvyA+IGF2b2lkOwor6JK45rG9ID4gc3RlYW07CivmrIrooaEgPiB3ZWlnaDsKK+mBiuiVqSA+IHN0cmF5Owor5byE57OfID4gc3BvaWw7CivmganlhbggPiBncmFjZTsKK+Wkp+eIuiA+IHVuY2xlOwor5pel5pysID4gamFwYW47Civlj6/lj68gPiBjb2NvYTsKK+WPr+WPoyA+IHRhc3R5Owor5bu257epID4gZGVmZXI7Civnt6jnuZQgPiB3ZWF2ZTsKK+WNl+aWuSA+IHNvdXRoOwor572u5LqOID4gcGxhY2U7Civlp6rlpbMgPiBuaWVjZTsKK+mZt+iQvSA+IHNsdW1wOwor54mb5o6SID4gc3RlYWs7CivpmrHntIQgPiB2YWd1ZTsKK+mvqOmtmiA+IHdoYWxlOwor5ZCI5L21ID4gYW5uZXg7Civorbflo6sgPiBudXJzZTsKK+aziuS9jSA+IGJlcnRoOwor6YGK6ImHID4gYmFyZ2U7Civpl5zplokgPiBjbG9zZTsKK+mZsOiOliA+IHBlbmlzOwor5pm65YipID4gY2hpbGU7Civnt5rntKIgPiB0cmFpbDsKK+Wjk+eijiA+IGNydXNoOwor5Y6f5aeLID4gZmlyc3Q7Civmr4/mr48gPiBvZnRlbjsKK+WPjeWPmyA+IHJlYmVsOwor6Z+T5ZyLID4ga29yZWE7Civpm5nnlJ8gPiB0d2luczsKK+ebuOmFjSA+IG1hdGNoOwor5Y2w5bqmID4gaW5kaWE7Civnn7Pni4AgPiBzdG9ueTsKK+i/hemAnyA+IHJhcGlkOwor5bm86J+yID4gbGFydmE7Civpr4rprZogPiBzaGFyazsKK+WIpeiZnyA+IGFsaWFzOwor57ag6ImyID4gZ3JlZW47CivlvJXnlKggPiBxdW90ZTsKK+ebuOi/kSA+IGNsb3NlOwor5biC6ZW3ID4gbWF5b3I7CivniJDmnrYgPiBncmF0ZTsKK+apn+mXnCA+IG9yZ2FuOwor5qyK6IO9ID4gcG93ZXI7Civljp/lm6AgPiBjYXVzZTsKK+aApeWKhyA+IHJhcGlkOwor5aSn5qyKID4gcG93ZXI7CivptInniYcgPiBvcGl1bTsKK+iok+e3tCA+IGRyaWxsOwor5YyX5pa5ID4gbm9ydGg7Civoq5bmlocgPiBwYXBlcjsKK+aUvueJpyA+IGdyYXplOwor5Yqf546HID4gcG93ZXI7Civmr4/ml6UgPiBkYWlseTsKK+Wll+aIvyA+IHN1aXRlOwor6YGV56SZID4gdGFib287CivlhKrpu54gPiBtZXJpdDsKK+W+mOW+iiA+IGhvdmVyOwor6KaW6Ka6ID4gc2lnaHQ7Civmk43nt7QgPiBkcmlsbDsKK+W8t+asiiA+IHBvd2VyOwor5YiA6JGJID4gYmxhZGU7Civmkanopb8gPiBtb3NlczsKK+itpuWCmSA+IGd1YXJkOwor6Kqy5pmCID4gY2xhc3M7CivlvZfmmJ8gPiBjb21ldDsKK+aQrOmBiyA+IGNhcnJ5Owor6Z2S5bm0ID4geW91dGg7CivmqJnpoYwgPiB0aXRsZTsKK+aPkOmrmCA+IHJhaXNlOwor5rCo5Z+6ID4gYW1pbm87CivlpJzmmZogPiBuaWdodDsKK+eGseawoyA+IHN0ZWFtOwor5qmf6Lu4ID4gYXJib3I7CivphpLkvoYgPiB3YWtlbjsKK+Wls+WtkCA+IHdvbWFuOwor6ZaA6ZaCID4gbGF0Y2g7CivlvoDlvoAgPiBvZnRlbjsKK+iTi+WtkCA+IGNvdmVyOwor6Z2I5benID4gaGFuZHk7CivlhYPpn7MgPiB2b3dlbDsKK+WFi+mahiA+IGNsb25lOwor5pW05pW0ID4gd2hvbGU7CivljK/lr4QgPiByZW1pdDsKK+WJgeeijiA+IG1pbmNlOwor6Kq/5oOFID4gZmxpcnQ7CivlnLDpu54gPiBwbGFjZTsKK+aVsuaTiiA+IHBvdW5kOwor5YyG5b+ZID4gaGFzdHk7Civmr5vlt74gPiB0b3dlbDsKK+iKs+mmmSA+IGJhbG15Owor5bm057SaID4gZ3JhZGU7CivlvI/mqKMgPiBzdHlsZTsKK+ilr+ihqyA+IHNoaXJ0Owor6KWv6KGjID4gc2hpcnQ7CivljbDliLcgPiBwcmludDsKK+aVo+aWhyA+IHByb3NlOwor6Kmm5qijID4gc3R5bGU7Civlhajpg6ggPiB3aG9sZTsKK+efreaaqyA+IHNob3J0Owor6KW/6JePID4gdGliZXQ7Civli5XmkJYgPiB3YXZlcjsKK+eHg+aUviA+IGxpZ2h0Owor54Gr6LuKID4gdHJhaW47Civlt6Xos4cgPiB3YWdlczsKK+WLh+aVoiA+IGJyYXZlOwor5q275p2/ID4gcmlnaWQ7Civnn5vmn4QgPiBzaGFmdDsKK+mVt+mHmCA+IHNwaWtlOwor5q2l5qeNID4gcmlmbGU7CivliLvnl5UgPiBub3RjaDsKK+WEqumbhSA+IGdyYWNlOwor6YG45rCRID4gdm90ZXI7CivprZTprLwgPiBkZXZpbDsKK+aWsOWomCA+IGJyaWRlOwor5aS+5a2QID4gY3JhbXA7CivorKDlgrMgPiBydW1vcjsKK+aWsOWlhyA+IG5vdmVsOwor5aCx562UID4gcmVwYXk7CivnhaTmuKMgPiBzbGFjazsKK+mCiuahhiA+IGZyYW1lOwor6Iqx6ZaLID4gYmxvb207CivniankuLsgPiBvd25lcjsKK+W9iOW8kyA+IHNsaW5nOwor5aCx56qpID4gYnJvb2Q7Civmk7rmuKEgPiBmZXJyeTsKK+mbu+W9sSA+IG1vdmllOwor5pG457SiID4gZ3JvcGU7CivprLzprYIgPiBnaG9zdDsKK+mAn+eOhyA+IHNwZWVkOwor56C05aOeID4gd3JlY2s7CivntITojqsgPiBhYm91dDsKK+WjgeaetiA+IGxlZGdlOwor6ZqO5q61ID4gc3RhZ2U7CivlpKLlr5AgPiBkcmVhbTsKK+W7tuacnyA+IGRlbGF5Owor5Y2B5YiGID4gZnVsbHk7Civli57lt6UgPiBsYWJvcjsKK+WcmOmrlCA+IGdyb3VwOwor5Zyw6Z2iID4gZmxvb3I7Civoq7fliLogPiBpcm9ueTsKK+eZveiyuyA+IHdhc3RlOwor6YGL5rKzID4gY2FuYWw7Civlhavop5IgPiBhbmlzZTsKK+mZsOa2vCA+IHNoYWR5Owor5pOm5rSXID4gc2NvdXI7CivnhrHlv7EgPiBhcmRvcjsKK+mYv+eJhyA+IG9waXVtOwor54SZ54eSID4gcm9hc3Q7CivlpbPkurogPiB3b21hbjsKK+e2oOa0siA+IG9hc2lzOwor6Ki85piOID4gcHJvdmU7Civnm7jnrYkgPiBlcXVhbDsKK+WEn+mChCA+IHJlcGF5Owor5q+S5ZOBID4gZHJ1Z3M7Civlm7rpq5QgPiBzb2xpZDsKK+imj+eoiyA+IHJ1bGVzOwor55u056uLID4gZXJlY3Q7Civlg6fpmaIgPiBhYmJleTsKK+iovOaTmiA+IHByb29mOwor5o6o6YG4ID4gZWxlY3Q7Civmr5vliLcgPiBicnVzaDsKK+msjemsmiA+IGJlYXJkOwor5o6o6YCyID4gaW1wZWw7Civpl5znr4AgPiBqb2ludDsKK+WDuemMoiA+IHByaWNlOwor5YiH54mHID4gc2xpY2U7CivoiabpmoogPiBmbGVldDsKK+W8t+WkpyA+IGxhcmdlOwor55yf55CGID4gdHJ1dGg7Civmr5TliIYgPiBzY29yZTsKK+aTseadvyA+IHNoZWxmOwor5Ymb5p6cID4gY29uZ287CivliarmlrcgPiBzaGVhcjsKK+eBq+iKsSA+IHNwYXJrOwor5b2x5YOPID4gaW1hZ2U7Civnm5znq4ogPiBzdGVhbDsKK+aomeiZnyA+IGdyYWRlOwor6L+35r+bID4gbWlzdHk7CivnnaHmpIUgPiBjb3VjaDsKK+WKoOWvrCA+IHdpZGVuOwor6ZyH5YuVID4gc2hha2U7Civoqqrlh7ogPiB1dHRlcjsKK+ioiOaVuCA+IGNvdW50Owor5r6z6ZaAID4gYW9tZW47Civmjqjoq5YgPiBpbmZlcjsKK+ezoueziiA+IGZvZ2d5Owor5q+P5LiAID4gZXZlcnk7Civli6LlipsgPiBwb3dlcjsKK+e3nuW4gyA+IHNhdGluOwor5YuV5ZCRID4gdHJlbmQ7CivlpKnkvb8gPiBhbmdlbDsKK+ikkOiJsiA+IGJyb3duOwor6ayG6ZaLID4gbG9vc2U7Civmq7jmnKggPiBiZWVjaDsKK+mDqOS7tiA+IHBhcnRzOwor54OY54OkID4gcm9hc3Q7Civou4zpgZMgPiBvcmJpdDsKK+mWg+iAgCA+IGdsaW50Owor6Iet6bysID4gc2t1bms7CivlhLLol48gPiBzdG9yZTsKK+aTpuaLrSA+IGNsZWFuOwor55a+6aKoID4gYmxhc3Q7CivmlKTlrZAgPiBib290aDsKK+Wkp+S6uiA+IGFkdWx0Owor5Yqf5aSrID4gc2tpbGw7Civli5XlipsgPiBwb3dlcjsKK+ebuOeJhyA+IGltYWdlOwor6auS6auSID4gZGlydHk7Civnh5nlgrcgPiBzY2FsZDsKK+Wdh+ihoSA+IGVxdWFsOwor5Ye65rKSID4gaGF1bnQ7CivpgZPlvrcgPiBtb3JhbDsKK+inuOaRuCA+IHRvdWNoOwor55m86IGyID4gdm9jYWw7CivplbfogIEgPiBlbGRlcjsKK+aoueexrCA+IGhlZGdlOwor5YW456+EID4gbW9kZWw7Civpm4blnJggPiBncm91cDsKK+aVtOWAiyA+IHdob2xlOwor5bid546LID4gcmVnYWw7CivlvLflhYkgPiBnbGFyZTsKK+eblOeUsiA+IGFybW9yOwor6LuM6LehID4gbG9jdXM7Civou4zot50gPiBnYXVnZTsKK+ijnOiXpSA+IHRvbmljOwor5q245ZKOID4gYmxhbWU7CivmlbXkurogPiBlbmVteTsKK+W5veaalyA+IGdsb29tOwor5pOU5oeuID4gd29ycnk7Civmpq7orb0gPiBob25vcjsKK+mtlOihkyA+IG1hZ2ljOwor54Wn5bCEID4gc2hpbmU7CivmkJfnoo4gPiBzbWFzaDsKK+aquOaqrCA+IGxlbW9uOwor6ZaL56uvID4gc3RhcnQ7CivmqKHns4ogPiB2YWd1ZTsKK+mbnuWGoCA+IGNyZXN0Owor5YWJ57qWID4gbGlnaHQ7Civpm5XliLsgPiBjYXJ2ZTsKK+mqr+mrkiA+IGRpcnR5Owor5YiH5pybID4gY3JhdmU7CivoqZvlkpIgPiBjdXJzZTsKK+aomeexpCA+IGxhYmVsOwor54S25b6MID4gYWZ0ZXI7CivpgqPlhZIgPiB0aGVyZTsKK+mVt+esmyA+IGZsdXRlOwor57K+56WeID4gdmlnb3I7CivlnJbooaggPiBjaGFydDsKK+i9ieenuyA+IHNoaWZ0Owor5YWS56ulID4gY2hpbGQ7CivlnI3oo5kgPiBhcHJvbjsKK+aOqOiIiSA+IGVsZWN0Owor5YGc6aCTID4gcGF1c2U7Civnspfns5kgPiBjcnVkZTsKK+WJquWgsSA+IHNjcmFwOwor6auu6L6uID4gYnJhaWQ7CivmrbvkuqEgPiBkZWF0aDsKK+imj+aooSA+IHNjYWxlOwor6YCf5bqmID4gc3BlZWQ7CivpgqPkupsgPiB0aG9zZTsKK+euremgrSA+IGFycm93Owor6ZuE5YGJID4gZ3JhbmQ7Civovqbms5UgPiBtZWFuczsKK+eCuuatoiA+IHVudGlsOwor5Zq06YeNID4gZ3JhdmU7CivoiLnosqggPiBjYXJnbzsKK+mVt+efmyA+IGxhbmNlOwor5q2M5YqHID4gb3BlcmE7Civpq5jpgaAgPiBsb2Z0eTsKK+WHoeaYryA+IGV2ZXJ5Owor54OP5pyoID4gZWJvbnk7CivoiJ7ouYggPiBkYW5jZTsKK+eyieethiA+IGNoYWxrOwor57WV5oqAID4gc3R1bnQ7Civoh4npoLAgPiBjaGVlazsKK+eZveeZoSA+IGlkaW90Owor5o6I6IiHID4gZ3JhbnQ7Civop5LluqYgPiBhbmdsZTsKK+eZvOeXhSA+IG9uc2V0Owor5Z+65pysID4gYmFzaWM7CivngavnhLAgPiBibGF6ZTsKK+WIpOWumiA+IGp1ZGdlOwor5o6i57SiID4gcXVlc3Q7Civoo4LnuKsgPiBjcmFjazsKK+eBq+eCrCA+IHRvcmNoOwor5aGr5aGeID4gc3R1ZmY7CivmkrDlr6sgPiB3cml0ZTsKK+ezlua8vyA+IHN5cnVwOwor57KJ56KOID4gY3Jhc2g7Civpmb3lj7AgPiBwb3JjaDsKK+aTuuWLlSA+IHN3aW5nOwor5oq86Z+7ID4gcmh5bWU7Civlnovni4AgPiBzaGFwZTsKK+iIiei1tyA+IGhlYXZlOwor5Ymy5YK3ID4gc2xhc2g7CivpgJnlpKkgPiB0b2RheTsKK+exrOeshiA+IGZlbmNlOwor5qau6ICAID4gaG9ub3I7CivpgY/liLYgPiBjaGVjazsKK+eZvOeLgiA+IGNyYXp5Owor5Yil5aKFID4gdmlsbGE7CivlsrjpgoogPiBzaG9yZTsKK+WwvOm+jSA+IG55bG9uOwor6ZqK5LyNID4gcmFua3M7CivliIDlrZAgPiBrbmlmZTsKK+W5heW6piA+IHdpZHRoOwor5qmh5pyoID4gb2FrZW47Civnsr7mtrIgPiBzZW1lbjsKK+W6iuWWriA+IHNoZWV0Owor6Iqx55OjID4gcGV0YWw7CivliYPliIAgPiByYXpvcjsKK+WHs+WtkCA+IHN0b29sOwor6Ia96YePID4gbmVydmU7CivpgKDlj40gPiByZWJlbDsKK+iok+S7pCA+IG9yZGVyOwor5YaN5pyDID4gYWRpZXU7CivmqrPlrZAgPiBiaW56aTsKK+i4tOi6jSA+IGVhZ2VyOwor5YWp5qyhID4gdHdpY2U7Civkv67po74gPiBhZG9ybjsKK+aPo+a4rCA+IGd1ZXNzOwor57Si5byVID4gaW5kZXg7Civlg7XnoawgPiBzdGFyazsKK+WCs+iBniA+IHJ1bW9yOwor6Ieq6KqHID4gYm9hc3Q7CivmkZjlvJUgPiBxdW90ZTsKK+W3peacgyA+IHVuaW9uOwor57OW5p6cID4gY2FuZHk7Civoo4Lnl5UgPiBjaGFzbTsKK+eBq+aftCA+IG1hdGNoOwor57Sw5bCPID4gcGV0dHk7CivmrITkvY0gPiBmZW5jZTsKK+mphemZpCA+IHJlcGVsOwor5qi55p6XID4gd29vZHM7CivlsI/puqUgPiB3aGVhdDsKK+a9m+ihjCA+IHNuZWFrOwor5Z6C5q27ID4gZHlpbmc7CivmqLrmnKggPiBiaXJjaDsKK+mAkOWHuiA+IGV4cGVsOwor5beo5pOYID4gdGh1bWI7CivntJfluIMgPiBnYXV6ZTsKK+W5s+WOnyA+IGZpZWxkOwor5YWs5pyDID4gZ3VpbGQ7CivnlLDph44gPiBmaWVsZDsKK+a/q+eUqCA+IGFidXNlOwor6ZW35qSFID4gYmVuY2g7Civpq5joiIggPiBoYXBweTsKK+aQk+aPiSA+IGtuZWFkOwor6ZW35qKdID4gc3RyaXA7CivpgJnkupsgPiB0aGVzZTsKK+W6h+S9kSA+IGJsZXNzOwor5YGH6KOdID4gZmVpZ247Civovq7lrZAgPiBwbGFpdDsKK+mZjeS4iyA+IGxvd2VyOwor5qiT5qKvID4gc3RhaXI7Civpq5jogbMgPiBlcmVjdDsKK+mrmOiBsiA+IGFsb3VkOwor5bCK6a2aID4gdHJvdXQ7CivooYDogokgPiBmbGVzaDsKK+ebm+WutCA+IGZlYXN0Owor5Zue562UID4gcmVwbHk7CivnsKHnn60gPiBicmllZjsKK+WbpOepjSA+IGhvYXJkOwor6ae/6aasID4gc3RlZWQ7Civmpq7njbIgPiBwcml6ZTsKK+ilquWtkCA+IHNvY2tzOwor6J2Z6a2aID4gYnJlYW07CivloLHlhJ8gPiByZXBheTsKK+WCs+elniA+IHZpdmlkOwor6Imy54u8ID4gc2F0eXI7CivmjqLmuKwgPiBwcm9iZTsKK+i9ieaSrSA+IHJlbGF5Owor5om56YePID4gYmF0Y2g7Civpp7Hpp50gPiBjYW1lbDsKK+WclueJhyA+IGltYWdlOwor5Yag5a2QID4gY3Jlc3Q7CivohbDpg6ggPiB3YWlzdDsKK+earuW4tiA+IHN0cmFwOwor57KX5pq0ID4gcm91Z2g7CivmkpLkvYYgPiBzYXRhbjsKK+Wwj+mbniA+IGNoaWNrOwor5Yaw5aGUID4gc2VyYWM7CivnrKjph40gPiBoZWF2eTsKK+i8leafkyA+IHRpbmdlOwor5YWn5b+DID4gaGVhcnQ7CivohbPouJ0gPiBhbmtsZTsKK+aOkuawtCA+IGRyYWluOwor5oub6Ie0ID4gaW5jdXI7CivmoJfpvKAgPiBidW5ueTsKK+aJkumHmCA+IGNyYW1wOwor55u05YiwID4gdW50aWw7Civlt6vlqYYgPiB3aXRjaDsKK+aPtOW8lSA+IHF1b3RlOwor562U6KmeID4gcmVwbHk7CivlsJbpirMgPiBzaGFycDsKK+mWgOW7iiA+IHN0b29wOwor5YG356uKID4gc3RlYWw7Civmp5Pmob8gPiBsZXZlcjsKK+WFtuWugyA+IG90aGVyOwor562U6KaGID4gcmVwbHk7Civng5jkub4gPiBwYXJjaDsKK+WFrOWwuiA+IG1ldGVyOwor5Zmq6IGyID4gbm9pc2U7Civnm47lj7ggPiBvdW5jZTsKK+mojui7iiA+IGN5Y2xlOwor5YO55qC8ID4gcHJpY2U7Civnsr7lrZAgPiBzcGVybTsKK+WcsOadvyA+IGZsb29yOwor5YeM5LqCID4gY2hhb3M7Civkv5roqp4gPiBzbGFuZzsKK+e0heWIqSA+IGJvbnVzOwor6ZaL5aeLID4gYmVnaW47CivmjqHmkZggPiBwbHVjazsKK+Wfg+WPiiA+IGVneXB0Owor5a+C6Z2cID4gcXVpZXQ7CivnrKboqJggPiB0b2tlbjsKK+WWqumQmCA+IGtuZWxsOwor6IS56LW3ID4gYnVsZ2U7Civog4zpqqggPiBzcGluZTsKK+W3puWPsyA+IGFib3V0Owor5YWs5Zm4ID4gdG9ubmU7Civmjozmj6EgPiBncmFzcDsKK+eUn+iLlCA+IG1vc3N5Owor5pCW5YuVID4gc2hha2U7CivovKrlrZAgPiB3aGVlbDsKK+momeihkyA+IHRyaWNrOwor5omT6KO9ID4gZm9yZ2U7CivlsI/oqqogPiBub3ZlbDsKK+iFkOidlSA+IHJ1c3R5Owor6ZaJ5ZCIID4gY2xvc2U7Civpp5Xou4ogPiBkcml2ZTsKK+a7keiQvSA+IHNsaWRlOwor5YWt5Y2BID4gc2l4dHk7CivlhazljYcgPiBsaXRlcjsKK+S8vOmbqiA+IHNub3d5Owor6IO46YOoID4gY2hlc3Q7Civnl4Xmr5IgPiB2aXJ1czsKK+aKgOiDvSA+IHNraWxsOwor5o6o5bSHID4gdmFsdWU7CivlsI/ooosgPiBwb3VjaDsKK+eBq+WFkiA+IGFuZ3J5Owor6KGX5q61ID4gYmxvY2s7Civot6/nt5ogPiByb3V0ZTsKK+W3qOS6uiA+IGdpYW50Owor6KOZ5a2QID4gc2tpcnQ7CivmipPnt4ogPiBncmFzcDsKK+ihgOa2siA+IGJsb29kOwor5a6J6Z2cID4gcXVpZXQ7CivmiYvol50gPiBjcmFmdDsKK+mmrOmBlCA+IG1vdG9yOwor6ZaD5YWJID4gZmxhc2g7Civlhbbku5YgPiBvdGhlcjsKK+Wbm+aciCA+IGFwcmlsOwor5YW25LitID4gYW1vbmc7CivmpZPmqLkgPiBtYXBsZTsKK+eriuiziiA+IHRoaWVmOwor5ruR57+UID4gZ2xpZGU7CivmjoPluJogPiBicm9vbTsKK+ihsOaVlyA+IGRlY2F5Owor6Iub5Yi7ID4gaGFyc2g7CivpkLXnoKcgPiBhbnZpbDsKK+aNleaNiSA+IGNhdGNoOwor56m66ZaTID4gc3BhY2U7CivnmbzlhYkgPiBzaGluZTsKK+aOoOWlqiA+IGhhcnJ5Owor5a+f6Ka6ID4gYXdhcmU7CivlsYvnsLcgPiBlYXZlczsKK+agvOiogCA+IG1heGltOwor55Oj6IacID4gdmFsdmU7CivmjqHloLQgPiBzbG9wZTsKK+iInuacgyA+IGRhbmNlOwor5ZyN5be+ID4gc2NhcmY7Civlr5PoqIAgPiBmYWJsZTsKK+aJi+iFlSA+IHNraWxsOwor6KKr5a2QID4gcXVpbHQ7CivlsI/oiIwgPiB1dnVsYTsKK+Wwsee3kiA+IHJlYWR5Owor6LuA5bm5ID4gdHJ1bms7Civou4DlubIgPiB0cnVuazsKK+eZvOS6riA+IHNoaW5lOwor5omL6IKYID4gZWxib3c7Civoo5zlk4EgPiB0b25pYzsKK+Wuoui7iiA+IGNvYWNoOwor6Im+5aesID4gYWdnaWU7CivlnKjlpJYgPiBvdXRlcjsKK+W0h+aLnCA+IGFkb3JlOwor5YWF5Lu9ID4gYW1wbGU7Civpq5jmmI4gPiBzbWFydDsKK+a8sua7vyA+IHN3ZWxsOwor55eb5oGoID4gYWJob3I7CivogbLpn7MgPiB2b2ljZTsKK+eXm+W/qyA+IGpvbGx5Owor5o6l5ZCIID4gam9pbnQ7CivlnJ/loIYgPiBtb3VuZDsKK+aIsuiAjSA+IHRlYXNlOwor56iu6aGeID4gY2xhc3M7CivnlLfniLUgPiBiYXJvbjsKK+WbuuWumiA+IGZpeGVkOwor5bCW57SwID4gdGFwZXI7CivlnYfliIYgPiBzcGxpdDsKK+iKseS/jyA+IGZhbmN5Owor6LWr6IyyID4gaGVydHo7Civnrq3mob8gPiBzaGFmdDsKK+WcjeWfjiA+IHNpZWdlOwor5YKy5bK4ID4gcHJvdWQ7Civoh7TmlawgPiBncmVldDsKK+i7jeWcmCA+IGNvcnBzOwor6ayN5a2QID4gYmVhcmQ7CivmjpLliJcgPiBhcnJheTsKK+S/j+eariA+IHNhdWN5Owor6Iie5byKID4gZnJhdWQ7CivppIXppIwgPiBjYWtlczsKK+ijnOS4gSA+IHBhdGNoOwor6aeB6Ii5ID4gYmFyZ2U7CivonILonJwgPiBob25leTsKK+a8v+aenCA+IGJlcnJ5Owor6a2F5YqbID4gY2hhcm07Civog7johpsgPiBjaGVzdDsKK+a8gua4uCA+IGRyaWZ0Owor5YO55YC8ID4gdmFsdWU7CivmvZHmjokgPiBzcGlsbDsKK+iIiOW7uiA+IGJ1aWxkOwor6LOH6YeRID4gZnVuZHM7Civmu7Lmup0gPiBzZXdlcjsKK+iDreiEgiA+IHJvdWdlOwor6Ieq5oiRID4gc2VsZlwtOwor6Yyv6KqkID4gZXJyb3I7CivmnpzphZIgPiBjaWRlcjsKK+aNt+WFiyA+IGN6ZWNoOwor55So5rOVID4gdXNhZ2U7Civnr6nlrZAgPiBzaWV2ZTsKK+WcluWDjyA+IGltYWdlOwor5a2Y6LKoID4gc3RvY2s7Civpq5jlsJogPiBub2JseTsKK+WcqOS4iyA+IHVuZGVyOwor5ouN5pOKID4gc21hY2s7Civlmq7lsI4gPiBndWlkZTsKK+WCvuWQkSA+IHRyZW5kOwor55Sf5rCjID4gYW5ncnk7CivlgY/mhJsgPiBmYXZvcjsKK+Wus+e+niA+IGJsdXNoOwor6J2454mbID4gc25haWw7CivllYbomZ8gPiBzdG9yZTsKK+mMouiiiyA+IHB1cnNlOwor5r+A5YWJID4gbGFzZXI7Civlronoj68gPiBhbndhcjsKK+WzreWjgSA+IGNsaWZmOwor5o2Q5YqpID4gb2ZmZXI7Civmi4fmjIcgPiB0aHVtYjsKK+aLguaOgyA+IHdoaXNrOwor6Ii55Y+qID4gc2hpcHM7Civoh7rlrZAgPiB0YWJsZTsKK+acnemuriA+IGtvcmVhOwor5Zub5Y2BID4gZm9ydHk7Civmir3miZMgPiBzdHJhcDsKK+aDoemtlCA+IGRlbW9uOwor5pys6aCYID4gc2tpbGw7Civmo7Lmga8gPiBwZXJjaDsKK+a1gemrlCA+IGZsdWlkOwor5L6d54S2ID4gc3RpbGw7Civogp3oh58gPiBsaXZlcjsKK+evhOWcjSA+IHJhbmdlOwor5Zau542oID4gYWxvbmU7Civkv67mlLkgPiBhbWVuZDsKK+akheWtkCA+IGNoYWlyOwor5pyJ6aKoID4gd2luZHk7Civmiormj6EgPiBncmFzcDsKK+Wwj+aysyA+IGJyb29rOwor5qWt5Li7ID4gb3duZXI7CivpqZrmhYwgPiBwYW5pYzsKK+WBieWkpyA+IGdyZWF0Owor5Li76aGMID4gdGhlbWU7Civlk6roo6EgPiB3aGVyZTsKK+etlOaHiSA+IHJlcGx5Owor5LiA6bueID4gYVwtYml0Owor5a2457SaID4gY2xhc3M7CivnlbblnLAgPiBsb2NhbDsKK+eou+iNiSA+IHN0cmF3Owor5p2x6KW/ID4gdGhpbmc7CivlgInluqsgPiBkZXBvdDsKK+S8iue0oiA+IGFlc29wOwor5bGx5bSWID4gY2xpZmY7CivnrJHmnpcgPiBodW1vcjsKK+WYtOW3tCA+IG1vdXRoOwor6ZCz5bCEID4gbGFzZXI7Civmo5rlrZAgPiBzaGFjazsKK+WQtemspyA+IG5vaXN5Owor55S35a2QID4gYVwtbWFuOwor6IKh56WoID4gc2hhcmU7Civmo5LlrZAgPiBzdGljazsKK+aMh+S7pCA+IG9yZGVyOwor6IKl56KpID4gc3RvdXQ7Civpu4PpioUgPiBicmFzczsKK+ajjeWtkCA+IHN0aWNrOwor6Ie05L2/ID4gY2F1c2U7CivmioDlt6cgPiBza2lsbDsKK+enmOiooyA+IHRyaWNrOwor5ou05L2PID4gaGl0Y2g7CivkuIvpnaIgPiBiZWxvdzsKK+igouS6iyA+IGZvbGx5Owor5oSa6KCiID4gc2lsbHk7CivmiorlroggPiBndWFyZDsKK+S4i+mbqCA+IHJhaW55Owor6ama5aWHID4gYW1hemU7Civoh6XkvY0gPiBiZXJ0aDsKK+WZtOWHuiA+IHNwb3V0Owor6aKo6LajID4gaHVtb3I7CivlsLrluqYgPiBzY2FsZTsKK+WwhOaTiiA+IHNob290Owor6LOE57WhID4gYnJpYmU7CivlsYvlrZAgPiBob3VzZTsKK+iyrOe9tSA+IHNjb2xkOwor6IWx5a2QID4gc2luZXc7Civmm7TpgbIgPiBsYXRlcjsKK+m7keiygiA+IHNhYmxlOwor55W25LitID4gYW1vbmc7CivllqzmnKggPiBhcmJvcjsKK+iAgeiZjiA+IHRpZ2VyOwor5rKZ6b6NID4gc2Fsb247Civkv53lp4YgPiBuYW5ueTsKK+Wwj+W+kSA+IGFsbGV5Owor6aiZ5bGAID4gZnJhdWQ7CivlsI3lvoUgPiB0cmVhdDsKK+aLieS4gSA+IGxhdGluOwor55Cl54+AID4gYW1iZXI7CivmnIPoq4cgPiB0YWxrczsKK+iEiOaQjyA+IHB1bHNlOwor55Si5ZOBID4gZ29vZHM7CivlsIvluLggPiB1c3VhbDsKK+acjeijnSA+IGRyZXNzOwor6YeR6auuID4gYmxvbmQ7CivmiLLlvIQgPiBjYXBlcjsKK+a1quiKsSA+IHNwcmF5Owor5bCP5bGLID4gY2FiaW47CivmuIXmvZQgPiBjbGVhbjsKK+aIv+WxiyA+IGhvdXNlOwor5ZiO5ZiOID4gcXVhY2s7CivnlJ/li5UgPiB2aXZpZDsKK+S4i+i3qiA+IGtuZWVsOwor5bCP5a2pID4gY2hpbGQ7CivmuIXmua8gPiBicm90aDsKK+S+v+WjqyA+IHBlbm55Owor5oi/5a2QID4gaG91c2U7CivogLbnqYwgPiBqZXN1czsKK+mLvOeQtCA+IHBpYW5vOwor6aiO5aOrID4gcmlkZXI7Civpj4jlrZAgPiBjaGFpbjsKK+aJi+WllyA+IGdsb3ZlOwor55S35Lq6ID4gYVwtbWFuOwor6Lef5YmNID4gZnJvbnQ7Civkv67liaogPiBwcnVuZTsKK+WvrOW6piA+IHdpZHRoOwor6aaZ5paZID4gc3BpY2U7CivkvLrmnI0gPiBzZXJ2bzsKK+a7i+WRsyA+IHRhc3RlOwor56ef57SEID4gbGVhc2U7CivlsJbloZQgPiBzcGlyZTsKK+WXtuWYsCA+IHNlcmdlOwor5rGh6bueID4gc3RhaW47Civms5Xpg44gPiBmcmFuYzsKK+a0u+iRlyA+IGFsaXZlOwor5Zac5oKFID4gaGFwcHk7CivmiJDlubQgPiBhZHVsdDsKK+iChea4hSA+IHB1cmdlOwor57+x57+UID4gaG92ZXI7CivlrZ/mtaogPiBoYXN0eTsKK+m7keiJsiA+IGJsYWNrOwor5re55rKSID4gZmx1c2g7Civnp5Xns6AgPiBjaGFmZjsKK+esrOWNgSA+IHRlbnRoOwor5ZOB56iuID4gYnJlZWQ7CivmmYLpq6YgPiB2b2d1ZTsKK+aJk+WRvCA+IHNub3JlOwor5qGM5a2QID4gdGFibGU7Civku43nhLYgPiBzdGlsbDsKK+a4healmiA+IGNsZWFyOwor6aSY54e8ID4gZW1iZXI7CivnrKzlha0gPiBzaXh0aDsKK+mMpuaomSA+IHByaXplOwor542o6IeqID4gYWxvbmU7Civnvr3ojpYgPiBxdWlsbDsKK+ahg+WtkCA+IHBlYWNoOwor5bCB5ZywID4gbWFub3I7Civkv6Hku7sgPiB0cnVzdDsKK+S9nOW8iiA+IGZyYXVkOwor6aGM6KejID4gbm90ZXM7Civkv53kvZEgPiBibGVzczsKK+iyqOeJqSA+IGdvb2RzOwor5a+h5ammID4gd2lkb3c7Civpo7LnlKggPiBkcmluazsKK+S4gOihjCA+IHBhcnR5Owor6Lao5YuiID4gdHJlbmQ7Civni7not68gPiBnb3JnZTsKK+Wwj+WQgyA+IHNuYWNrOwor54+K55GaID4gY29yYWw7Civnj43nj6AgPiBwZWFybDsKK+aHuOWyqSA+IGNsaWZmOwor6by754WZID4gc251ZmY7CivmtIvolKUgPiBvbmlvbjsKK+i2o+WKhyA+IGZhcmNlOwor5L2O5buJID4gY2hlYXA7Civlk4Dnl5sgPiBncmllZjsKK+esrOS6lCA+IGZpZnRoOwor56ys5LmdID4gbmludGg7CivnrKzkuIkgPiB0aGlyZDsKK+esrOS4gCA+IGZpcnN0Owor546755KDID4gZ2xhc3M7CivnqpLmga8gPiBjaG9rZTsKK+aciee3miA+IHdpcmVkOwor5p2/5ruvID4gc3RpZmY7CivmiZPku5cgPiBmaWdodDsKK+aIsuWKhyA+IGRyYW1hOwor5rKJ6YeNID4gaGVhdnk7Civmsojph40gPiBoZWF2eTsKK+acgOe1giA+IGZpbmFsOwor572q6KGMID4gY3JpbWU7CivnvanooasgPiBzbW9jazsKK+S9oOWlvSA+IGhlbGxvOwor5L2N5a2QID4gcGxhY2U7Civms6LolakgPiBoZWF2ZTsKK+i1sOWQkSA+IHRyZW5kOwor6bq157KJID4gZmxvdXI7CivlppbprZQgPiBkZW1vbjsKK+eOh+ebtCA+IGZyYW5rOwor5piO6aGvID4gY2xlYXI7CivpoY/oibIgPiBjb2xvcjsKK+Wwj+S4kSA+IGNsb3duOwor5pmv6LGhID4gc2NlbmU7Civni6HoqZAgPiBjcmFmdDsKK+aGpOaAkiA+IGFuZ3J5Owor6LKd5q68ID4gc2hlbGw7Civkvo3lgJkgPiBzZXJ2ZTsKK+ixoeeJmSA+IGl2b3J5Owor5ZWG5bqXID4gc3RvcmU7Civllp3lj7EgPiBjaGlkZTsKK+a1t+eBmCA+IGJlYWNoOwor55C05bymID4gY2hvcmQ7CivnjY7nq6AgPiBtZWRhbDsKK+WtkOaIvyA+IG92YXJ5Owor6JK86be6ID4gaGVyb247CivotablhY0gPiByZW1pdDsKK+S7iuaXpSA+IHRvZGF5Owor5pyo54mIID4gcGxhbms7CivnpZ7ntpMgPiBuZXJ2ZTsKK+aAquiqlSA+IGZyZWFrOwor56uZ5L2PID4gc3RhbmQ7Civmsr/okZcgPiBhbG9uZzsKK+S5vua3qCA+IGNsZWFuOwor5a+G5YiHID4gY2xvc2U7Civmt7HluqYgPiBkZXB0aDsKK+WNiOmkkCA+IGx1bmNoOwor5oiQ5Lq6ID4gYWR1bHQ7CivljYjpo68gPiBsdW5jaDsKK+a1t+a0iyA+IG9jZWFuOwor6IKa5a2QID4gYmVsbHk7CivnjbXniqwgPiBob3VuZDsKK+eQhuaDsyA+IGlkZWFsOwor6bWq6baJID4gcXVhaWw7Civku6XlvowgPiBhZnRlcjsKK+WtqeWtkCA+IGNoaWxkOwor6IC95pOxID4gdGFycnk7Civkuovmpa0gPiBjYXVzZTsKK+WtouWtkCA+IHNwb3JlOwor5peF6aSoID4gaG90ZWw7CivlpbTpmrggPiBzbGF2ZTsKK+WQiue5qSA+IHNsaW5nOwor6aas5L6GID4gbWFsYXk7CivppqzkvJUgPiBncm9vbTsKK+Wkp+m5vyA+IG1vb3NlOwor6IGW5b6SID4gc2FpbnQ7CivkuJbnlYwgPiB3b3JsZDsKK+a4oeWPoyA+IGZlcnJ5Owor5rib5Y67ID4gbWludXM7CivkurrmgKcgPiBodW1hbjsKK+aFiOaCsiA+IG1lcmN5Owor6Z+/6IGyID4gbm9pc2U7Civoq5bpoYwgPiB0b3BpYzsKK+WNoei7iiA+IHRydWNrOwor5a6i5Lq6ID4gZ3Vlc3Q7CivnvYznsp8gPiBwb3BweTsKK+mhr+eEtiA+IGNsZWFyOwor5paR6aasID4gemVicmE7Civmr43pn7MgPiB2b3dlbDsKK+S7meWlsyA+IGZhaXJ5Owor56ig5a+GID4gZGVuc2U7CivlpZfpkJggPiBjaGltZTsKK+WuiOWAmSA+IGFiaWRlOwor5rSX5r6hID4gYmF0aGU7Civmnb/lsqkgPiBzbGF0ZTsKK+isrOiqpCA+IGVycm9yOwor6aKo5qC8ID4gc3R5bGU7CivmtJfmu4wgPiByaW5zZTsKK+S4gOeJhyA+IHBpZWNlOwor6Yyi5YyFID4gcHVyc2U7CivpoK3nmq4gPiBzY2FscDsKK+adv+WtkCA+IGJvYXJkOwor5Y2R6LOkID4gbG93bHk7Civku4rlpKkgPiB0b2RheTsKK+aEm+aFlSA+IGFkb3JlOwor5oCd6ICDID4gdGhpbms7CivpoqjmmrQgPiBzdG9ybTsKK+WNh+i1tyA+IGhvaXN0Owor6JiL5p6cID4gYXBwbGU7Civosp3lr6cgPiBiZW5pbjsKK+isoOiogCA+IHJ1bW9yOwor5peL6L2JID4gd2hpcmw7Civlj5bnrJEgPiB0ZWFzZTsKK+awtOibrSA+IGxlZWNoOwor6Kqe6Z+zID4gdm9pY2U7CivlpL7piZcgPiB0b25nczsKK+aXpeiomCA+IGRpYXJ5Owor6aCS55m8ID4gaXNzdWU7CivkuYPmmK8gPiB0b1wtYmU7CivmlrDov5EgPiBuZXdseTsKK+WrjOaDoSA+IGFiaG9yOwor5aOB6b6VID4gbmljaGU7CivlkLjmsKMgPiBzbmlmZjsKK+iqmOmZtyA+IHNuYXJlOwor55+z6aCtID4gc3RvbmU7CivnjJzmuKwgPiBndWVzczsKK+S7o+WDuSA+IHByaWNlOwor5p2T5a2QID4gc2Nvb3A7CivmhJ/lrpggPiBzZW5zZTsKK+S4ieasoSA+IHRoaXJkOwor5pys5b2xID4gdW1icmE7Civkurrlk6EgPiBzdGFmZjsKK+S4gOasoSA+IGZpcnN0Owor57qM6KiCID4gcmVuZXc7Civmm7TmlLkgPiBhbHRlcjsKK+ejqOeijiA+IGdyaW5kOwor6K2m56ybID4gc2lyZW47Civnv5LmhaMgPiBoYWJpdDsKK+S7iuWFkiA+IHRvZGF5Owor5Lul5LiLID4gYmVsb3c7Civph47njbggPiBiZWFzdDsKK+WSjOW5syA+IHBlYWNlOwor5pS26aSKID4gYWRvcHQ7CivmgKrnlbAgPiB3ZWlyZDsKK+iyk+WSqiA+IGtpdHR5Owor5b+D6IefID4gaGVhcnQ7CivmsrzmvqQgPiBnbGFkZTsKK+axoeepoiA+IG5hc3R5Owor5LiJ5pyIID4gbWFyY2g7Civno4Xnp6QgPiBzY2FsZTsKK+WTquWFkiA+IHdoZXJlOwor5Lqk5Y+JID4gY3Jvc3M7CivosqzlgpkgPiBibGFtZTsKK+mbu+mDtSA+IGVtYWlsOwor5Lif5o6JID4gdGhyb3c7CivogZbkurogPiBzYWludDsKK+WLnemBjiA+IGV4Y2VsOwor5q6Y6YW3ID4gY3J1ZWw7Civlj5TniLYgPiB1bmNsZTsKK+itieeroCA+IGJhZGdlOwor5rW35ZywID4gaGFpdGk7CivmnIDlvowgPiBmaW5hbDsKK+ato+mdoiA+IGZyb250Owor6Zu36YGUID4gcmFkYXI7Civlk4HlkbMgPiB0YXN0ZTsKK+S4u+W5uSA+IHRydW5rOwor5aSx6KqkID4gbGFwc2U7CivniIboo4IgPiBidXJzdDsKK+mCiumamyA+IGxpbWl0Owor6aGP5paZID4gcGFpbnQ7Civni4LnhrEgPiBjcmF6ZTsKK+S6lOWNgSA+IGZpZnR5Owor56C06KOCID4gYnVyc3Q7CivmsrPmtYEgPiByaXZlcjsKK+aCsuaCvCA+IG1vdXJuOwor6Z2S6I2JID4gZ3Jhc3M7CivmnKjloYogPiBibG9jazsKK+S5meWkqiA+IGV0aGVyOwor6Yqz5YipID4gc2hhcnA7CivomZvlgb0gPiBmYWxzZTsKK+acrOWcsCA+IGxvY2FsOwor5p2x5LqsID4gdG9reW87Civmr5Lom4cgPiB2aXBlcjsKK+mgjOatjCA+IGNhcm9sOwor5ZKV5ZqVID4gZ3J1bnQ7CivmrL7poIUgPiBmdW5kczsKK+S4gOaJkyA+IGRvemVuOwor6Kmm6YeRID4gYXNzYXk7CivpoK3mmoggPiBkaXp6eTsKK+W+veeroCA+IGJhZGdlOwor5Yqb6YePID4gcG93ZXI7CivnhKbpu54gPiBmb2N1czsKK+mJi+WtkCA+IHBsYW5lOwor5piO55m9ID4gY2xlYXI7CivnjovlkI4gPiBxdWVlbjsKK+e6lue2rSA+IGZpYmVyOwor5LqL5Lu2ID4gZXZlbnQ7CivpgJfpu54gPiBjb21tYTsKK+m6peWtkCA+IHdoZWF0Owor5LiA5by1ID4gc2hlZXQ7Civlkoblk64gPiBncm93bDsKK+W+rueskSA+IHNtaWxlOwor56Kn55OmID4gZ3JlZW47CivmsLTnm4YgPiBiYXNpbjsKK+eFmemcpyA+IHNtb2tlOwor6YKP6LyvID4gbG9naWM7Civpn7PmqIIgPiBtdXNpYzsKK+abtOWjniA+IHdvcnNlOwor6YOo6JC9ID4gdHJpYmU7Civlu7bpgbIgPiBkZWxheTsKK+W5vem7mCA+IGh1bW9yOwor546L5YagID4gY3Jvd247CivpmbfpmLEgPiBzbmFyZTsKK+aWt+e1lSA+IHNldmVyOwor5Lit5ZyLID4gY2hpbmE7CivlpJrokYkgPiBsZWFmeTsKK+S4gOWxpCA+IGxheWVyOwor54e76IKJID4gYmFjb247CivlvJXoqLwgPiBxdW90ZTsKK+aToumZniA+IGV4YWx0Owor6YeN5pawID4gYWdhaW47CivlpKfohb8gPiB0aGlnaDsKK+Wkp+iFpiA+IGJyYWluOwor5pys5Lq6ID4gaVwtXChtZTsKK+elreWjhyA+IGFsdGFyOwor6Z+75paHID4gdmVyc2U7Civpgbrot6EgPiB0cmFjZTsKK+mCo+ijoSA+IHRoZXJlOwor54aK6LKTID4gcGFuZGE7CivmlpHnvpogPiBnb3JhbDsKK+mahumHjSA+IGdyYW5kOwor5b2O6IWwID4gc3Rvb3A7CivlqablpbMgPiB3b21hbjsKK+iRoeiQhCA+IGdyYXBlOwor576O5aW9ID4gaGFwcHk7CivoroDmm7ggPiBzdHVkeTsKK+eNjuWTgSA+IGF3YXJkOwor5pyA5YidID4gZmlyc3Q7CivmgZDmhYwgPiBwYW5pYzsKK+m6teWMhSA+IGJyZWFkOwor6aGN5aSWID4gZXh0cmE7Civpu4/kvY8gPiBjbGluZzsKK+S4gOWhiiA+IHBpZWNlOwor5Y+v5oCVID4gYXdmdWw7CivpgY7pgZMgPiBhaXNsZTsKK+axgea2siA+IGp1aWNlOwor56Sm5belID4gbWluZXI7CivmrYzorKAgPiBjaGFudDsKK+aymeaLiSA+IHNhbGFkOwor6bq15YWSID4gY292ZXI7Civmlpfnr7cgPiBjbG9hazsKK+S5i+S4iyA+IHVuZGVyOwor5pyI5Lu9ID4gbW9udGg7CivmsLTmupYgPiBsZXZlbDsKK+Wls+eOiyA+IHF1ZWVuOwor6Zub6I+KID4gZGFpc3k7Civnt6joo70gPiB3ZWF2ZTsKK+WMheepgCA+IG1haXplOwor5b+r5qiCID4gaGFwcHk7CivpgLzov6sgPiBmb3JjZTsKK+WmgueBqyA+IGZpZXJ5Owor5rOl5ZyfID4gZWFydGg7CivlqpLku4sgPiBtZWRpYTsKK+S4gOWQjCA+IGFsb25nOwor5aC06Z2iID4gc2NlbmU7Civlo4HomY4gPiBnZWNrbzsKK+aVmee+qSA+IGNyZWVkOwor5q+b55eFID4gZmF1bHQ7CivpoIHlsqkgPiBzaGFsZTsKK+mHkeWxrCA+IG1ldGFsOwor6K2J5piOID4gcHJvb2Y7Civljq3mg6EgPiBsb2F0aDsKK+aYj+aalyA+IGR1c2t5Owor5q+U546HID4gcmF0aW87CivlpbbmsrkgPiBjcmVhbTsKK+mcjuecvCA+IGJsaW5rOwor5rC05p6cID4gZnJ1aXQ7Civnn63nsKEgPiBicmllZjsKK+Wnv+WuuSA+IGxvb2tzOwor57aT6LK7ID4gZnVuZHM7CivoppbpoLsgPiB2aWRlbzsKK+mBiuihjCA+IG1hcmNoOwor5pm05aSpID4gc3Vubnk7Civph43lpKcgPiBncmVhdDsKK+W4tumgmCA+IGd1aWRlOwor6YCV6LehID4gdHJhY2s7CivniJDngbYgPiBzdG92ZTsKK+aZguW4uCA+IG9mdGVuOwor5by356GsID4gdG91Z2g7CivluLbpnLIgPiBkZXd5Owor5b2i54uAID4gZm9ybTsKK+iWhOWRvSA+IFwodXN1Owor5Yqf57i+ID4gZmVhdDsKK+iomOiZnyA+IHNlYWw7CivopovpnaIgPiBtZWV0Owor6YKK57ejID4gZWRnZTsKK+aatOS6giA+IHJpb3Q7CivniJvms6UgPiBvb3plOwor5pel5pyfID4gZGF0ZTsKK+WnqOWqvSA+IGF1bnQ7Civlub3osLcgPiBkZWxsOwor5Ya36Z2cID4gY2FsbTsKK+aVmeeahyA+IHBvcGU7CivlvrXmlLYgPiBsZXZ5Owor5ZCR5LiLID4gZG93bjsKK+mAn+ihjCA+IHJ1c2g7CivpgJnoo6EgPiBoZXJlOwor57y65Y+jID4gbmljazsKK+mBsue3qSA+IHNsb3c7CivmsI/ml48gPiBjbGFuOwor5Y6f5a2QID4gYXRvbTsKK+avm+awiCA+IGZlbHQ7CivlhrDpm7kgPiBoYWlsOwor6aCQ5YWGID4gb21lbjsKK+WnkeWqvSA+IGF1bnQ7CivmsaDlrZAgPiBwb25kOwor5aeR5aiYID4gZ2lybDsKK+WLu+a3qCA+IGV2ZW47CivmlrnmoYggPiBwbGFuOwor54uC5ZCgID4gaG93bDsKK+W/g+aDhSA+IG1vb2Q7Civph47lhZQgPiBoYXJlOwor6Z6t5a2QID4gd2hpcDsKK+WfuumHkSA+IGZ1bmQ7CivlprvlrZAgPiB3aWZlOwor5Y2K5ouJID4gaGFsZjsKK+mviemtmiA+IGNhcnA7Civnn7PniYcgPiBzbGFiOwor5b+F5b6XID4gbXVzdDsKK+WGsOmOriA+IGljZWQ7CivmsaDloZggPiBwb29sOwor54a+54axID4gZ2xvdzsKK+efs+eBsCA+IGxpbWU7Civnmq7pnq0gPiBsYXNoOwor5Ya36YW3ID4gZ3JpbTsKK+WlkeaTmiA+IGRlZWQ7CivnoazluaMgPiBjb2luOwor5Yed6KaWID4gZ2F6ZTsKK+aVmea0viA+IHNlY3Q7Civlhazpm54gPiBjb2NrOwor6KeS6ImyID4gcm9sZTsKK+e6luW6piA+IHNpemU7CivniYzlrZAgPiBzaWduOwor54mb5aW2ID4gbWlsazsKK+WlieaJvyA+IGZhd247CivmmYLlgJkgPiB0aW1lOwor6Iux6ZuEID4gaGVybzsKK+mWi+mXiiA+IHdpZGU7CivlvY7mm7IgPiBiZW5kOwor6Kqy5paHID4gdGV4dDsKK+mVt+mdtCA+IGJvb3Q7CivniaLlm7ogPiBmaXJtOwor55m+6Z2IID4gbGFyazsKK+aXl+WtkCA+IGZsYWc7CivlpbPlrakgPiBnaXJsOwor57qW5bCPID4gZmluZTsKK+W5tOiAgSA+IGFnZWQ7Civlt6bpgoogPiBsZWZ0Owor54mG5aOBID4gd2FsbDsKK+mAj+e0hSA+IHJvc3k7Civmlbjmk5ogPiBkYXRhOwor6Kmp5q2MID4gcG9lbTsKK+eFrueGnyA+IGJvaWw7Civnn7Pmnb8gPiBzbGFiOwor5aWz5aOrID4gbGFkeTsKK+W/jeWPlyA+IGJlYXI7Civlvq7lnosgPiB0aW55Owor6YKK5rK/ID4gZWRnZTsKK+iLsemHjCA+IG1pbGU7CivmqILpmoogPiBiYW5kOwor5rCj5ZGzID4gb2RvcjsKK+eEoeemriA+IHJ1ZGU7Civpg73luIIgPiBjaXR5Owor5Y2A5Z+fID4gYXJlYTsKK+ioiOeVqyA+IHBsYW47Civnh4PmlpkgPiBmdWVsOwor5b2i5byPID4gZm9ybTsKK+ilv+iWhCA+IGNha2U7Civmk5jnlasgPiBwbGFuOwor54Wk54GwID4gc29vdDsKK+mWi+i+piA+IG9wZW47CivmlbLmiZMgPiBiZWF0Owor6Zuq5pKsID4gc2xlZDsKK+W+iOWlvSA+IHdlbGw7CivpgajmuLggPiByb2FtOwor5aaC5ZCMID4gbGlrZTsKK+Wkp+W7syA+IGhhbGw7Civmr5LlrrMgPiBiYW5lOwor57mp5a2QID4gY29yZDsKK+e5geW/mSA+IGJ1c3k7CivntLDog54gPiBjZWxsOwor5Y2R5YqjID4gYmFzZTsKK+W+qeWOnyA+IGhlYWw7CivliKXnmoQgPiBlbHNlOwor5YWs6LGsID4gYm9hcjsKK+iqv+WtkCA+IHR1bmU7Civli7vlr6YgPiBldmVuOwor5b615YWGID4gb21lbjsKK+aPueiyoCA+IGJlYXI7CivplpLoq4cgPiBjaGF0Owor55y855yLID4gc29vbjsKK+i+m+iLpiA+IGhhcmQ7CivnmbHou58gPiBsaW1wOwor6Z2i5YW3ID4gbWFzazsKK+aSleegtCA+IHRlYXI7Civln4vokawgPiBidXJ5Owor5aSn5aiYID4gYXVudDsKK+atjOabsiA+IHNvbmc7CivlvKflvaIgPiBhcmNoOwor6Lyq6Lu4ID4gYXhsZTsKK+W4huiIuSA+IHNhaWw7CivljZHkuIsgPiBiYXNlOwor5qiZ6K2YID4gbWFyazsKK+W4s+evtyA+IHRlbnQ7CivnmKbplbcgPiBzbGltOwor6Iqx6YKKID4gbGFjZTsKK+Whq+a7vyA+IGNyYW07CivloYrni4AgPiBsdW1wOwor5qiZ6KqMID4gc2lnbjsKK+mbueWtkCA+IGhhaWw7Civoq77kup4gPiBub2FoOwor6KaP56ugID4gcnVsZTsKK+aomeiomCA+IHNpZ247CivlpJblpZcgPiBjb2F0Owor6ZW36KWqID4gaG9zZTsKK+WcmOmaiiA+IHRlYW07Civlvp7kuK0gPiBmcm9tOwor6ZW36KKNID4gZ293bjsKK+mbhOaApyA+IG1hbGU7Civnnavmr5sgPiBsYXNoOwor5by35aemID4gcmFwZTsKK+eFp+aWmSA+IHRlbmQ7CivmjqHpgpEgPiBmaWVmOwor5o6l6L+RID4gbmVhcjsKK+earuiGmiA+IHNraW47CivmjqDpgY4gPiBmbGl0Owor57ep5oWiID4gc2xvdzsKK+WfuuekjiA+IGJhc2U7CivntrLmnrYgPiByYWNrOwor6KaP55+pID4gcnVsZTsKK+eBsOiJsiA+IGdyYXk7CivntLDnnIsgPiBwZWVyOwor6YGy5oWiID4gc2xvdzsKK+ikquiJsiA+IGZhZGU7Civpganmh4kgPiBzdWl0Owor5pWX5aOeID4gcnVpbjsKK+mDqOWIhiA+IHBhcnQ7CivnnLzmt5ogPiB0ZWFyOwor6IuU6JiaID4gbW9zczsKK+W9ouWDjyA+IGZvcm07CivliZ3mjokgPiBwYXJlOwor6YO15Lu2ID4gbWFpbDsKK+atpeWtkCA+IHN0ZXA7Civov73msYIgPiBzZWVrOwor6KGo6ZyyID4gc2hvdzsKK+eekeaDsyA+IG11c2U7Civmk6bmjokgPiB3aXBlOwor6YGK5oiyID4gZ2FtZTsKK+evgOm7niA+IG5vZGU7CivlpKvkurogPiBsYWR5Owor5bua5birID4gY29vazsKK+aNsui7uCA+IHJlZWw7Civpq5jpo5sgPiBzb2FyOwor5pWj5Ye6ID4gc2hlZDsKK+W3oueptCA+IGxhaXI7CivpmL/mm7wgPiBvbWFuOwor5bug5a2QID4geWFyZDsKK+e0oueEtiA+IGR1bGw7CivliZvlvLcgPiBmaXJtOwor55yf5q2jID4gcmVhbDsKK+i6sumBvyA+IHNodW47Civlu5rlrZAgPiBjb29rOwor54ax5YqbID4gaGVhdDsKK+W7o+WkpyA+IHZhc3Q7Civps6XlmLQgPiBiZWFrOwor5Z+65rqWID4gZGF0YTsKK+ewveiovCA+IHZpc2E7Civps7Tlj6sgPiBob290Owor5aCF5rG6ID4gZmlybTsKK+ioseWkmiA+IG1hbnk7CivngbDnmb0gPiBncmV5Owor5pS25YmyID4gcmVhcDsKK+e2suWtlCA+IG1lc2g7Civmi7PpoK0gPiBmaXN0Owor5q2M5ZSxID4gc2luZzsKK+mbnOS6giA+IG1lc3M7Civlhrfmt6EgPiBjb2xkOwor6aqo6aCtID4gYm9uZTsKK+WJm+WlvSA+IGp1c3Q7Civlo4HliqkgPiBoZWxwOwor5o6J6JC9ID4gZmxvcDsKK+ipqeS6uiA+IGJhcmQ7CivokL3kuIsgPiBmYWxsOwor6KGo6LGhID4gaWRlYTsKK+mZteWikyA+IHRvbWI7CivoiJLpgakgPiBjb3p5Owor6Iux55WdID4gYWNyZTsKK+atpeS8kCA+IHBhY2U7CivmqpTmoYggPiBmaWxlOwor57C46JWpID4gcm9sbDsKK+W4tuaciSA+IGhhdmU7CivmrYzlhZIgPiBzb25nOwor5o6l57irID4gc2VhbTsKK+W5q+W/mSA+IGhlbHA7CivntZDmiJAgPiBmb3JtOwor6KGM6LWwID4gd2FsazsKK+WGsOaphyA+IHNsZWQ7CivlhazniZsgPiBidWxsOwor5Z+O5rGgID4gY2l0eTsKK+eyl+eggiA+IGdyaXQ7CivlhazniLUgPiBkdWtlOwor6KaB5pyJID4gbmVlZDsKK+iGs+mjnyA+IG1lYWw7CivourLol48gPiBoaWRlOwor6I+c5ZauID4gbWVudTsKK+apq+aokSA+IGJlYW07CivooZPoqp4gPiB0ZXJtOwor6YGy5LqGID4gbGF0ZTsKK+WJm+WLgSA+IGJvbGQ7CivooZrooZUgPiBsYW5lOwor6Im+57WoID4gbW94YTsKK+ioiOWKgyA+IHBsYW47CivmjInoqp4gPiBub3RlOwor55yf5a+mID4gdHJ1ZTsKK+eXm+iLpiA+IHBhaW47CivoirHnk7YgPiB2YXNlOwor5YW25qyhID4gbmV4dDsKK+apn+aZuiA+IHRhY3Q7Civlgr7ogb0gPiBoYXJrOwor5qOV6ZatID4gcGFsbTsKK+WFrOatoyA+IGp1c3Q7CivlubPlnaYgPiBmbGF0Owor6IeA6YOoID4gYnV0dDsKK+mQmOmgrSA+IGhvdXI7Civmk43liIcgPiByYXNoOwor5Z2m54S2ID4gY2FsbTsKK+imgeW+lyA+IGdvb2Q7CivngrjlvYggPiBib21iOwor5bqn5L2NID4gc2VhdDsKK+iKr+eJhyA+IGNoaXA7Civlm57ogbIgPiBlY2hvOwor6ZC16Yq5ID4gcnVzdDsKK+Wxi+mggiA+IHJvb2Y7CivloKHlo5ggPiBmb3J0Owor5YW35pyJID4gaGF2ZTsKK+mAmeWFkiA+IGhlcmU7Civop6Plh40gPiB0aGF3Owor55Sf6ZW3ID4gZ3JvdzsKK+WgheWumiA+IGZpcm07Civlt7TmjowgPiBwYWxtOwor55ii55eVID4gc2NhcjsKK+W4tuWtkCA+IGJhbmQ7Civplbfmp40gPiBwaWtlOwor5YWt5pyIID4ganVuZTsKK+mAmeWAiyA+IHRoaXM7CivploDmoJMgPiBib2x0Owor6KCV6J+yID4gd29ybTsKK+WDseeUqCA+IGhpcmU7CivlnJPnm6QgPiBkaXNrOwor5Zyw542EID4gaGVsbDsKK+mYv+WAkSA+IGFtZW47CivooJXomasgPiB3b3JtOwor55uk5a2QID4gdHJheTsKK+ethumMoiA+IGZ1bmQ7Civot6/pgoogPiBjdXJiOwor54GM5pyoID4gYnVzaDsKK+imluWcliA+IHZpZXc7CivmkofljrsgPiBza2ltOwor6L6y5aW0ID4gc2VyZjsKK+WfjuW4giA+IGNpdHk7CivloIXlm7ogPiBmaXJtOwor5bCP6aasID4gY29sdDsKK+WFteaIjiA+IGFybXM7CivlhYnmnZ8gPiBiZWFtOwor5qiZ5piOID4gbWFyazsKK+ikh+acrCA+IGNvcHk7Civon77onI0gPiB0b2FkOwor6L6y5aC0ID4gZmFybTsKK+ebkuWtkCA+IGNhc2U7CivlnIvnjosgPiBraW5nOwor5biz5ZauID4gYmlsbDsKK+iNieWdqiA+IGxhd247CivojYnlnLAgPiBsYXduOwor5pC25aWqID4gc25hcDsKK+ihgOeuoSA+IHZlaW47Civou43ngasgPiBhcm1zOwor6Leb6LazID4gbGFtZTsKK+aIv+mWkyA+IHJvb207Civopo/lioMgPiBwbGFuOwor6IWz6LefID4gaGVlbDsKK+i3oeixoSA+IG1hcms7Civopo/liYcgPiBydWxlOwor5YWs5bmzID4gZmFpcjsKK+mOrumdnCA+IGNhbG07Civlg7nmrL4gPiBjb3N0Owor5qij5byPID4gdHlwZTsKK+aQjeWusyA+IGhhcm07CivmqKHlvI8gPiBtb2RlOwor55uf5Y+LID4gYWxseTsKK+WFnOW4vSA+IGhvb2Q7Civlt6jlpKcgPiBodWdlOwor5bel5aSrID4gd29yazsKK+eWvOeXmyA+IGFjaGU7Civot7PomqQgPiBmbGVhOwor5qiT5buCID4gbG9mdDsKK+iGneiTiyA+IGtuZWU7Civkv67oo5wgPiBtZW5kOwor5bGB6KmxID4gc2hpdDsKK+eBsOWhtSA+IGR1c3Q7CivlgbfnnIsgPiBwZWVwOwor5qih5a2QID4gbW9sZDsKK+eWpOeXlSA+IHNjYXI7CivlnLDmlrkgPiBhcmVhOwor5YWU5a2QID4gaGFyZTsKK+Wwj+i3ryA+IGxhbmU7Civpj4jot68gPiBsaW5rOwor55SY6JSXID4gY2FuZTsKK+aOjOaTiiA+IHNsYXA7Civlt67li4EgPiBwb29yOwor5L2O6Z+zID4gYmFzczsKK+a6nOi1sCA+IHNsaXA7CivnlJzoj5wgPiBiZWV0Owor5o2y5puyID4gY3VybDsKK+a4rOmplyA+IHRlc3Q7CivnlKjohrMgPiBkaW5lOwor56yR6KmxID4gam9rZTsKK+Wxsee+iiA+IGdvYXQ7Civnq7bos70gPiByYWNlOwor56yo6JuLID4gZm9vbDsKK+WyqeefsyA+IHJvY2s7CivlhazlkYogPiBwb3N0Owor5bel5YW3ID4gdG9vbDsKK+eUmuiHsyA+IGV2ZW47CivnlaXnorwgPiBjb2RlOwor6LeM6JC9ID4gZmFsbDsKK+a9rua/lSA+IGRhbXA7CivovIPlsJEgPiBsZXNzOwor55m+5ZCIID4gbGlseTsKK+iFsOiCiSA+IGxvaW47CivlnLDluLYgPiB6b25lOwor6KGo5qC8ID4gZm9ybTsKK+mWo+S4iyA+IHNpcmU7Civpvo3pqqggPiBrZWVsOwor6L2J5YuVID4gdHVybjsKK+WFtuS9mSA+IHJlc3Q7Civmva7mtYEgPiB0aWRlOwor5L+d576FID4gcGF1bDsKK+iJsuW9qSA+IHRpbnQ7CivlmLLnrJEgPiBqZWVyOwor5r2u5rGQID4gdGlkZTsKK+aNsuW4tiA+IHRhcGU7CivllaTphZIgPiBiZWVyOwor5r2b5rC0ID4gZGl2ZTsKK+mNjemHkSA+IGdpbGQ7CivlsI/oiLkgPiBib2F0Owor5LuA6bq8ID4gd2hhdDsKK+aMh+aomSA+IG5vcm07CivooZ3mkp4gPiBkYXNoOwor5bKp5ry/ID4gbGF2YTsKK+aPoeS9jyA+IGdyaXA7CivlnLDln58gPiBhcmVhOwor6by06bygID4gbW9sZTsKK+ijveS9nCA+IG1ha2U7CivlnJ/lo6QgPiBzb2lsOwor5bCP576KID4gbGFtYjsKK+aOpeWQuyA+IGtpc3M7Civoia/lpb0gPiBnb29kOwor562W55WlID4gcGxvdDsKK+ihsOW8sSA+IHdlYWs7CivmvKnmuKYgPiBlZGR5Owor5Zyf5ZywID4gbGFuZDsKK+S6num6uyA+IGZsYXg7Civlk7rppIogPiBmZWVkOwor5ZyI5aWXID4gdHJhcDsKK+exg+WciCA+IHJpbmc7Civpj4jntZAgPiBsaW5rOwor6Ia95rGBID4gZ2FsbDsKK+WcsOWNgCA+IGFyZWE7Civmn5Tou58gPiBzb2Z0Owor5ryP5rSeID4gaG9sZTsKK+aOoeS8kCA+IGZlbGw7CivnlbbmmYIgPiB0aGVuOwor5YCf5qy+ID4gbG9hbjsKK+iiluWPoyA+IGN1ZmY7Civmi5vmlLYgPiBoaXJlOwor54++6YeRID4gY2FzaDsKK+mmmeiNiSA+IGhlcmI7CivlmrTls7sgPiBncmltOwor55a55a2QID4gcmFzaDsKK+enmOmtryA+IHBlcnU7CivnqIXpl5wgPiBwaWtlOwor55Sf5rS7ID4gbGlmZTsKK+WDp+S+tiA+IG1vbms7CivmiZPnjbUgPiBodW50Owor5ouW5ouJID4gaGF1bDsKK+aLseW9oiA+IGFyY2g7CivmirHmnIkgPiBoYXZlOwor5ZyN5L2PID4gZ2lyZDsKK+ajjeajkiA+IGNsdWI7CivogbLorb0gPiBmYW1lOwor6Ieq5bexID4gc2VsZjsKK+aLjeaJkyA+IGZsYXA7Civmi43miYsgPiBjbGFwOwor5YK15YuZID4gZGVidDsKK+iBveimiyA+IGhlYXI7Civpo77ph5ggPiBzdHVkOwor5bCP54mbID4gY2FsZjsKK+ihgOWhiiA+IGdvcmU7CivmtarpoK0gPiB3YXZlOwor5YGP5beuID4gYmlhczsKK+WCvuWAkiA+IHBvdXI7CivpqrDlrZAgPiBkaWNlOwor6LKg6LyJID4gbG9hZDsKK+aKmOaWtyA+IHNuYXA7CivogIHpl4YgPiBib3NzOwor6IGW6KmpID4gaHltbjsKK+WCrOS/gyA+IHVyZ2U7Civpi6roqK0gPiBwYXZlOwor56ef6YeRID4gcmVudDsKK+aJk+atuyA+IGtpbGw7CivpoqjpmqogPiByaXNrOwor5p6v6JCOID4gd2lsdDsKK+eUqOaItiA+IHVzZXI7CivmtbjpgI8gPiBzb2FrOwor55ay5YCmID4gdGlyZTsKK+iGoOW4tiA+IHRhcGU7Civos6Log70gPiBzYWdlOwor5rW36LuNID4gbmF2eTsKK+iHreWRsyA+IGZ1bWU7Civlgbblg48gPiBpZG9sOwor5omL5p2WID4gY2FuZTsKK+a1t+ixuSA+IHNlYWw7Civot6jluqYgPiBzcGFuOwor5rqr5pqWID4gd2FybTsKK+Wto+evgCA+IHRpbWU7CivmnpzogokgPiBwdWxwOwor5bCP5pmCID4gaG91cjsKK+aKleWwhCA+IGRhcnQ7Civpu4Pph5EgPiBnb2xkOwor5ZG96YGLID4gZmF0ZTsKK+Wtl+evgCA+IGJ5dGU7Civmtbfop5IgPiBjYXBlOwor5ZiG5oGvID4gc2lnaDsKK+WUp+etkiA+IHB1bXA7CivnlaXljrsgPiBvbWl0Owor5ZO66IKyID4gZmVlZDsKK+e+hemmrCA+IHJvbWU7CivogIPoqaYgPiBleGFtOwor5omL5o6MID4gcGFsbTsKK+iCpeeagiA+IHNvYXA7CivmhI/oposgPiB2aWV3Owor5YCN5aGUID4gYmV0YTsKK+WwvuW3tCA+IHRhaWw7CivotIXnlqMgPiB3YXJ0Owor5oKg6ZaSID4gZWFzZTsKK+S8r+eItSA+IGVhcmw7CivlkajpgYogPiB0b3VyOwor5qKo5a2QID4gcGVhcjsKK+WwuuWvuCA+IHNpemU7CivpoLjpoIUgPiBuZWNrOwor55C155C2ID4gbHV0ZTsKK+ahiOaWhyA+IHRleHQ7CivohqDljbcgPiBmaWxtOwor6YqA6KGMID4gYmFuazsKK+a4uOazsyA+IHN3aW07CivomafnvLogPiB3YW5lOwor5YCf5Ye6ID4gbGVuZDsKK+WvjOaciSA+IHJpY2g7Civkv4LlsI8gPiB0aW55Owor5ZOB6ISrID4gcGludDsKK+Wul+a0viA+IHNlY3Q7CivkuI3pgZwgPiBydWRlOwor6aa05pyNID4gdGFtZTsKK+S4jemBjiA+IG9ubHk7CivkuI3pgYIgPiBmYWlsOwor5bCW5bOwID4gcGVhazsKK+a7vuWLlSA+IHJvbGw7Civosqfnqq4gPiBwb29yOwor5bCP5bO2ID4gaXNsZTsKK+S4u+imgSA+IG1haW47CivmnZ/nuJsgPiBiaW5kOwor5p2f57eKID4gZ2lyZDsKK+iWhOmcpyA+IG1pc3Q7CivmuIXmvoggPiBmYWlyOwor562W5YqDID4gcGxvdDsKK+ixrOiCiSA+IHBvcms7CivkvZXmmYIgPiB3aGVuOwor5a655piTID4gZWFzeTsKK+S4i+i3jCA+IGZhbGw7Civpu4PonIIgPiB3YXNwOwor5Y+j6aCtID4gb3JhbDsKK+e9sOmHkSA+IGZpbmU7Civku6Tni4AgPiB3cml0Owor6JWo6aGeID4gZmVybjsKK+iyu+eUqCA+IGNvc3Q7CivlkYroqqEgPiB3YXJuOwor6JiG6JGmID4gcmVlZDsKK+aKk+S9jyA+IGdyYWI7Civmnb/nmq4gPiBzbGFiOwor6ISG5byxID4gd2VhazsKK+aguOW/gyA+IGNvcmU7CivpoK3pg6ggPiBoZWFkOwor5qC85byPID4gZm9ybTsKK+a3sea3sSA+IGRlZXA7CivmsbrprKUgPiBkdWVsOwor6LGG6IWQID4gdG9mdTsKK+aHtuaDsCA+IGlkbGU7Civmu7TkuIsgPiBkcmlwOwor5omB5Z2vID4gc2xhYjsKK+S+i+WtkCA+IGNhc2U7CivlkpLnvbUgPiBkYW1uOwor6ISW5a2QID4gbmVjazsKK+WQjOi8qSA+IHBlZXI7CivnjqnnrJEgPiBqb2tlOwor6Jek6JSTID4gdmluZTsKK+S+jeWlsyA+IG1haWQ7CivonILmiL8gPiBoaXZlOwor5oiS5a2QID4gcmluZzsKK+a7keWAkiA+IHNsaXA7CivmurbljJYgPiBtZWx0Owor5ri45oiyID4gZ2FtZTsKK+WtuOacnyA+IHRlcm07Civppqzlu4QgPiBiYXJuOwor5Lqe55W2ID4gYWRhbTsKK+e/heiGgCA+IHdpbmc7CivkvIrmnJcgPiBpcmFuOwor5Li7576pID4gXC1pc207CivpuqXoir0gPiBtYWx0Owor5a+G5a6kID4gY2VsbDsKK+eLueiwtyA+IGdsZW47Civnqqnlt6IgPiBuZXN0Owor54mh6bm/ID4gaGFydDsKK+miqOeujyA+IGtpdGU7CivlkI3oqZ4gPiBub3VuOwor5a2Y5qC5ID4gc3R1YjsKK+aZgumWkyA+IHRpbWU7CivmtL7ns7sgPiBzZWN0Owor54++5qy+ID4gY2FzaDsKK+eivOmgrSA+IGRvY2s7Civph4DpgKAgPiBicmV3Owor6JeN6ImyID4gYmx1ZTsKK+WuieaBryA+IHJlc3Q7CivogZbmrYwgPiBoeW1uOwor6aO95ru/ID4gZnVsbDsKK+WTreazoyA+IHdlZXA7Civpo5/niakgPiBmb29kOwor5oW+5pybID4gbHVzdDsKK+WPsuipqSA+IGVwaWM7CivkuIDoiKwgPiBzYW1lOwor5bCP5LiYID4gaGlsbDsKK+aDheevgCA+IHBsb3Q7Civnqb/luLYgPiB3ZWFyOwor5LyR5oGvID4gcmVzdDsKK+mgiOimgSA+IG11c3Q7Civmnb7mqLkgPiBwaW5lOwor6JaU6JaHID4gcm9zZTsKK+S6nua0siA+IGFzaWE7CivlrrblnJIgPiBob21lOwor5oaQ5oarID4gcGl0eTsKK+aal+iXjyA+IGhpZGU7CivniZvpo7IgPiBndWxwOwor6LO65b6XID4gZWFybjsKK+izh+aWmSA+IGRhdGE7CivosY7nkLQgPiBoYXJwOwor5LiA576kID4gZ2FuZzsKK+aenOaWtyA+IGZpcm07CivnqK7ml48gPiByYWNlOwor6buR55ejID4gbW9sZTsKK+mfs+iqvyA+IHRvbmU7CivmtJ7nqbQgPiBjYXZlOwor5p2/5qKdID4gbGF0aDsKK+S4iue1gyA+IHdpbmQ7Civlk4Dms6MgPiB3YWlsOwor6LK05pePID4gbG9yZDsKK+WTiOasoCA+IHlhd247Civmtarmva4gPiB3YXZlOwor56au54mpID4gZ2lmdDsKK+WQhOiHqiA+IGVhY2g7CivosazmsrkgPiBsYXJkOwor6Yyr5a6JID4gemlvbjsKK+eNteeJqSA+IHByZXk7Civlv6vpgJ8gPiBmYXN0Owor6Z2I6a2CID4gc291bDsKK+eKr+imjyA+IGZvdWw7CivlrrDliLYgPiBydWxlOwor5LmD54i+ID4gdGh1czsKK+mjvOaWmSA+IGZlZWQ7Civmsrnoho8gPiBiYWxtOwor54+t5oi/ID4gamFpbDsKK+m+kOWkpyA+IGh1Z2U7CivmuK/lj6MgPiBwb3J0Owor5paR6bueID4gc3BvdDsKK+S4gOeilyA+IGJvd2w7CivlpKfpursgPiBoZW1wOwor5rWu5qiZID4gYnVveTsKK+aDs+azlSA+IGlkZWE7CivlrrbkvJkgPiBjaGFwOwor5Lqk5o6lID4gam9pbjsKK+W+jOmdoiA+IHJlYXI7CivlpKnptZ0gPiBzd2FuOwor5pyD5ryPID4gbGVhazsKK+aVtOm9iiA+IHRpZHk7CivmmIfotbcgPiByaXNlOwor5ZWG5ZOBID4gZ29vZDsKK+WNkemEmSA+IGJhc2U7CivnioTop5IgPiBob3JuOwor5q+N6aasID4gbWFyZTsKK+Wtl+WeiyA+IGZvbnQ7CivlronlhaggPiBzYWZlOwor56iu5a2QID4gc2VlZDsKK+WtpOWWriA+IGxvbmU7CivnqIvlvI8gPiBmb3JtOwor5pyo5qG2ID4gY2FzazsKK+e+uea5ryA+IHNvdXA7CivljbDorYkgPiBzZWFsOwor5pyo5p2/ID4gc2xhYjsKK+WQueeJmyA+IGJyYWc7CivmnKjmnZAgPiB3b29kOwor6aO+5bi2ID4gc2FzaDsKK+iAgeaSviA+IGxhb3M7CivmnKbmnKcgPiBibHVyOwor6Z2g6L+RID4gbmVhcjsKK+iZm+W8sSA+IHdlYWs7Civmtojmga8gPiBuZXdzOwor6Kqy6aGMID4gdGFzazsKK+acn+acmyA+IGhvcGU7Civmt7HljpogPiBkZWVwOwor5Li75qmfID4gY29yZTsKK+m8u+WtkCA+IG5vc2U7Civnj6DlrZAgPiBiZWFkOwor5peF6YGKID4gdHJpcDsKK+epqeWBpSA+IGZpcm07Civpg6jpmoogPiBhcm15Owor5LiK5ryyID4gcmlzZTsKK+azsOeEtiA+IGNhbG07CivpvaflkqwgPiBnbmF3Owor56iA5bCRID4gcmFyZTsKK+m7keaalyA+IGRhcms7Civms6LnibkgPiBiYXVkOwor6YeO56a9ID4gZm93bDsKK+aaiOecqSA+IGRhemU7CivlpZTpgIMgPiBmbGVlOwor6buO5piOID4gZGF3bjsKK+ayu+eZkiA+IGN1cmU7CivmhI/mgJ0gPiBpZGVhOwor5p+Q5LqbID4gc29tZTsKK+aEj+W/tSA+IGlkZWE7CivnuYHpm5wgPiBtYW55Owor5oSP5b+XID4gd2lsbDsKK+eoseWRvCA+IGNhbGw7Civmm7jmoYwgPiBkZXNrOwor5by36aKoID4gZ2FsZTsKK+mbhOm5vyA+IGJ1Y2s7CivpurvmnKggPiBudW1iOwor5pyD5pmkID4gbWVldDsKK+m7g+aYjyA+IGR1c2s7CivpoIXnm64gPiBpdGVtOwor6Z+B57mpID4gcmVpbjsKK+WUr+S4gCA+IG9ubHk7Civpm7Lpm4AgPiBsYXJrOwor54eS6ZaLID4gYm9pbDsKK+epgOWAiSA+IGJhcm47CivmnY7lrZAgPiBwbHVtOwor6IG35L2NID4gcG9zdDsKK+mHjueUnyA+IHdpbGQ7CivlkKbmsbogPiB2ZXRvOwor5rKZ55m8ID4gc29mYTsKK+azoua1qiA+IHdhdmU7CivkuIDmqKMgPiBzYW1lOwor5LuW5YCRID4gdGhleTsKK+azoeayqyA+IGZvYW07CivmraXpqZ8gPiBzdGVwOwor6ICB5amGID4gd2lmZTsKK+S4u+aEjyA+IHBsYW47CivpnZLom5kgPiBmcm9nOwor5pys5a2QID4gYm9vazsKK+eJm+iCiSA+IGJlZWY7CivosZDlr4wgPiByaWNoOwor5LiD5pyIID4ganVseTsKK+mKt+WUriA+IHNlbGw7CivkuIrmmIcgPiByaXNlOwor5ZOO5ZGAID4gZGFtbjsKK+mereesniA+IGZsb2c7CivkuIDmnI0gPiBkb3NlOwor5aSp6LOmID4gZ2lmdDsKK+irh+ipsSA+IHRhbGs7CivosYblrZAgPiBiZWFuOwor5aq95aq9ID4gbWFtYTsKK+WQjOaooyA+IHNhbWU7Civno5rnk6YgPiB0aWxlOwor5pWP6YqzID4ga2VlbjsKK+ayueayuSA+IG9pbHk7Civms6LmnZ8gPiBiZWFtOwor5YyF6KOdID4gcGFjazsKK+azleahiCA+IGJpbGw7CivmsaHnl5UgPiBibG90Owor6Ymk5a2QID4gaG9vazsKK+WNsOeroCA+IHNlYWw7CivpnZzohIggPiB2ZWluOwor55+l6YGTID4ga25vdzsKK+eMm+aSniA+IHNsYW07Civpgbzpl4ogPiB2YXN0Owor5pWF6YSJID4gaG9tZTsKK+mdoue9qSA+IHZlaWw7Civlvp7ogIwgPiB0aHVzOwor5b+Z56KMID4gYnVzeTsKK+mereeXlSA+IHdlbHQ7Civpgorpi5IgPiB3aW5nOwor6YW455ebID4gYWNoZTsKK+W7o+mXiiA+IHdpZGU7CivnpZ7mg4UgPiBsb29rOwor5Lqe5LiBID4gYWRlbjsKK+eNqOWljyA+IHNvbG87CivmspDmtbQgPiBiYXRoOwor5pyA5aW9ID4gYmVzdDsKK+eMluaKqyA+IHdpbGQ7CivlkoDlmrwgPiBjaGV3Owor5aSW6KKNID4gcm9iZTsKK+iqk+ipniA+IG9hdGg7Civli5XoqZ4gPiB2ZXJiOwor546p5YG2ID4gZG9sbDsKK+iqk+iogCA+IG9hdGg7CivoloTmmq4gPiBkdXNrOwor57qW57SwID4gZmluZTsKK+S4i+W3tCA+IGNoaW47CivmlrDogZ4gPiBuZXdzOwor542F5a2QID4gbGlvbjsKK+abtOWkmiA+IG1vcmU7Civlop7plbcgPiBncm93Owor5Y+q5pyJID4gb25seTsKK+WRhuWtkCA+IGZvb2w7CivmmrTlvpIgPiB0aHVnOwor5rG95rC0ID4gc29kYTsKK+mdouepjSA+IGFyZWE7Civlkb3lkI0gPiBuYW1lOwor5q616JC9ID4gcGFydDsKK+efreilqiA+IHNvY2s7CivlvJXorYkgPiBjaXRlOwor6YiV5bi2ID4gYm9uZDsKK+WJjemdoiA+IGZvcmU7CivpmaPpoqggPiBndXN0Owor57eo6LyvID4gZWRpdDsKK+atu+iomCA+IGNyYW07Civmg6HliqMgPiB2aWxlOwor5rWB5YuVID4gZmxvdzsKK+acg+WQiCA+IG1lZXQ7Civmr5vnt5ogPiB5YXJuOwor5YyX57SEID4gbmF0bzsKK+mHjeaTiiA+IGJhbmc7CivmtL7lh7ogPiBzZW5kOwor8KCxgyA+IHRoaW47CivmsaDmsrwgPiBwb29sOwor5q2l6Kq/ID4gZ2FpdDsKK+e5qee0oiA+IHJvcGU7CivpgJrpoqggPiBhaXJ5Owor5oGQ5oe8ID4gZmVhcjsKK+eijueJhyA+IGNoaXA7Civnt5rot68gPiBsaW5lOwor5LiA5aWXID4gc3VpdDsKK+WNoeeJhyA+IGNhcmQ7CivpoZ7lnosgPiB0eXBlOwor5YyF57SuID4gYmluZDsKK+S4reWNiCA+IG5vb247Civmraboo50gPiBhcm1zOwor6JaE5byxID4gd2VhazsKK+S4gOWghiA+IHBpbGU7Civorormj5sgPiB2YXJ5Owor6JK855m9ID4gcGFsZTsKK+awtOa7tCA+IGRyb3A7Civnt6nop6MgPiBlYXNlOwor5pyJ5LqbID4gc29tZTsKK+aciOS6riA+IG1vb247CivlubTpoK0gPiB5ZWFyOwor56Sm5bGxID4gbWluZTsKK+mBk+i3ryA+IHJvYWQ7CivmtJfliLcgPiB3YXNoOwor6Zm46LuNID4gYXJteTsKK+aUtuiXjyA+IGtlZXA7Civmk6DpgLIgPiB0dWNrOwor5LiK5Y+4ID4gYm9zczsKK+mgmOWwjiA+IGxlYWQ7CivmsLTmsaAgPiBwb25kOwor6Zu757eaID4gd2lyZTsKK+S4gOWQuSA+IHB1ZmY7Civmr5vnmq4gPiBwZWx0Owor54OP6bSJID4gY3JvdzsKK+WLnue0ryA+IHRvaWw7CivpgYvosrsgPiBmYXJlOwor5aOB6JmxID4gdGljazsKK+aSpemWiyA+IHBva2U7CivoqK3oqIggPiBwbGFuOwor6L+36ZmjID4gbWF6ZTsKK+WQneWXhyA+IG1lYW47CivkuIDljYogPiBoYWxmOwor6aCC5bOwID4gcGVhazsKK+iXpeS4uCA+IHBpbGw7CivmmJ/mnJ8gPiB3ZWVrOwor5rC05qe9ID4gc2luazsKK+e8uuWwkSA+IGxhY2s7CivkuJbku4cgPiBmZXVkOwor5pKe6Y6WID4gbG9jazsKK+mereaSuyA+IGxhc2g7CivpmbDorIAgPiBwbG90Owor5Y6t5oGoID4gaGF0ZTsKK+mBh+imiyA+IG1lZXQ7CivmmI7mmJ8gPiBzdGFyOwor5LiN5LiAID4gdmFyeTsKK+isgOaxgiA+IHNlZWs7CivpnLLnh58gPiBjYW1wOwor5q+S54mpID4gcGVzdDsKK+aaluWSjCA+IHdhcm07CivkuIDkupsgPiBzb21lOwor6Z6t5omTID4gd2hpcDsKK+WPq+WbgiA+IGhvb3Q7CivngrrpppYgPiBoZWFkOwor5rGC5oSbID4gd29vOwor5ZCM5L2NID4gcGFyOwor6Zyy5rC0ID4gZGV3Owor5Y+X5YiwID4gZ2V0Owor5Y+v5LulID4gY2FuOwor6YWS5buKID4gYmFyOwor5Y2a5b6XID4gd2luOwor5Y+K5YW2ID4gYW5kOwor55+z5rK5ID4gb2lsOwor5pmC5LujID4gYWdlOwor5q+v5a2QID4gcnVnOwor5bm057SAID4gYWdlOwor5aWX5a2QID4gY2FwOwor56C05biDID4gcmFnOwor6a2a6bCtID4gZmluOwor5by35ouJID4gdHVnOwor57aT55SxID4gdmlhOwor5aKo5rC0ID4gaW5rOwor6Kit5rOVID4gdHJ5Owor6ZaT6KucID4gc3B5Owor55y8552bID4gZXllOwor5q2k5pmCID4gbm93Owor5aaC5L2VID4gaG93Owor57WC56uvID4gZW5kOwor55y855WMID4ga2VuOwor5bm85424ID4gY3ViOwor6Zui5a2QID4gaW9uOwor54Sm5rK5ID4gdGFyOwor6YCA5r2uID4gZWJiOwor54Gr6IW/ID4gaGFtOwor6Zmw5pqXID4gZGltOwor57eK5oqxID4gaHVnOwor57i95ZKMID4gc3VtOwor6KaP546HID4gbGF3Owor6Zqx5a+GID4gc2x5Owor56CN5LyQID4gaGV3Owor5Yi65o6iID4gcHJ5Owor6Iq46Iq4ID4gYWxsOwor6Imy6Kq/ID4gaHVlOwor5YGH6auuID4gd2lnOwor6YCU5b6RID4gd2F5Owor5YmN5aSVID4gZXZlOwor5aCF5p6cID4gbnV0Owor5YWI55SfID4gc2lyOwor5qyE5ZyIID4gcGVuOwor5qmh5qi5ID4gb2FrOwor6Iy25p2vID4gY3VwOwor6Kaq5bGsID4ga2luOwor5ouW6LuKID4gdG93Owor5aGr5YWFID4gcGFkOwor5bi95a2QID4gaGF0Owor5pCW5pO6ID4gd2FnOwor55y85YmNID4gbm93Owor5YiA5Y+jID4gY3V0Owor5qiF5qi5ID4gZmlyOwor55So6YCUID4gdXNlOwor55Sc6YWSID4gcnVtOwor55y85LiLID4gbm93Owor5Ye65YO5ID4gYmlkOwor6KWv5aKKID4gcGFkOwor5YKz55yfID4gZmF4Owor6Ium5oOxID4gYWlsOwor6IWz6La+ID4gdG9lOwor5ouW6Ii5ID4gdG93Owor6aqo572IID4gdXJuOwor55m85oCSID4gbWFkOwor6Luf5q+bID4gZnVyOwor6IeC6IaAID4gYXJtOwor6LyV5omTID4gdGFwOwor5pC25YqrID4gcm9iOwor5YWS5a2QID4gc29uOwor5omv6KOCID4gcmlwOwor5bCP6LK7ID4gdGlwOwor5qaG5qi5ID4gZWxtOwor5ZWc6aOyID4gc2lwOwor5bel5L2cID4gam9iOwor5o+05YqpID4gYWlkOwor6IKL6aqoID4gcmliOwor6J2Z6J2gID4gYmF0Owor6b6N6aCtID4gdGFwOwor5omL6IeCID4gYXJtOwor5re36ZucID4gbWl4Owor5Zyw5ZyWID4gbWFwOwor6ayG5bybID4gc2FnOwor55Sf55eFID4gaWxsOwor6KKL5a2QID4gYmFnOwor6aSh6aSFID4gcGllOwor5bCE57eaID4gcmF5Owor6Yuk6aCtID4gaG9lOwor6Yu46ZaLID4gc2F3Owor6ICB6bygID4gcmF0Owor5p6c6YasID4gamFtOwor6KGj5aS+ID4gcGVnOwor5ZyN5YWcID4gYmliOwor5ouW5oqKID4gbW9wOwor5LmI6bueID4gYWNlOwor5bCP54uXID4gcHVwOwor6LKo6LuKID4gdmFuOwor5oiw54itID4gd2FyOwor6bue6aCtID4gbm9kOwor6IKl6IOWID4gZmF0Owor5bCN5rqWID4gYWltOwor5Zm05bCEID4gamV0Owor5YKi5LyZID4gZ3V5Owor6IiJ5YuVID4gYWN0Owor6bqL6bm/ID4gZWxrOwor5pyo6YeYID4gcGVnOwor55Om5pavID4gZ2FzOwor6ami5a2QID4gYXNzOwor55S35a2pID4gYm95Owor5omA5pyJID4gYWxsOwor6ZGw5YyZID4ga2V5Owor5ZO86IGyID4gaHVtOwor5LmF6YGgID4gb2xkOwor6aOb6J+yID4gYnVnOwor562G5bCWID4gbmliOwor6bql6YWSID4gYWxlOwor5L+u5aWzID4gbnVuOwor5L6/5bi9ID4gY2FwOwor5pyD6LK7ID4gZHVlOwor5bC85aeRID4gbnVuOwor5Lm+6I2JID4gaGF5Owor5YCf5YK1ID4gb3dlOwor5oeH5rGCID4gYmVnOwor5bGi5YqgID4gcGx5Owor6aOb57+UID4gZmx5Owor5omH5a2QID4gZmFuOwor6IWQ5aOeID4gcm90Owor56m65rCjID4gYWlyOwor5L2G5pivID4gYnV0Owor6Jed6KGTID4gYXJ0Owor5a6J5pS+ID4gbGF5Owor5Zea5ZK9ID4gc29iOwor5p+T5paZID4gZHllOwor5LuY5qy+ID4gcGF5Owor5LiN6ImvID4gYmFkOwor6LSP5b6XID4gd2luOwor6aCM6KmeID4gb2RlOwor5Lm+54elID4gZHJ5Owor5ZGK57WCID4gZW5kOwor5rG96LuKID4gY2FyOwor5rW354GjID4gYmF5Owor6ICz5py1ID4gZWFyOwor5L2N5YWDID4gYml0Owor5LqU5pyIID4gbWF5Owor5L2V5Lq6ID4gd2hvOwor54eV6bqlID4gb2F0Owor5rCj6LuKID4gYnVzOwor5pyr5pyfID4gZW5kOwor5q+N6ZueID4gaGVuOwor5ZOA5oSBID4gc2FkOwor56Sm55+zID4gb3JlOwor5ZOA5oCoID4gc2FkOwor5aSq6Zm9ID4gc3VuOwor5oCV576eID4gY295Owor5p2v5a2QID4gY3VwOwor6KyK6KmxID4gbGllOwor6KyK6KiAID4gbGllOwor6Zu26aCtID4gb2RkOwor5Lu75L2VID4gYW55Owor5reo5YC8ID4gbmV0Owor5aWU6LeRID4gcnVuOwor5aWU6LWwID4gcnVuOwor5rWB5oSfID4gZmx1Owor5ZOO5ZayID4gaGV5Owor54++5LuKID4gbm93Owor5pqX5rehID4gZGltOwor5piv55qEID4geWVzOwor5LiA5o6SID4gcm93Owor5pa56IifID4gYXJrOwor5paw6IiIID4gbmV3Owor5LiK5bidID4gZ29kOwor6ICM5LuKID4gbm93Owor5Y+v5pivID4gYnV0Owor5rG95rK5ID4gZ2FzOwor54iG6IGyID4gcG9wOwor572q5oOhID4gc2luOwor5pS26LK7ID4gZmVlOwor5q+N576KID4gZXdlOwor5rOV5b6LID4gbGF3Owor5oCO5qijID4gaG93Owor6Zue6JuLID4gZWdnOwor5LiN5ZaEID4gYmFkOwor6bC76a2aID4gZWVsOwor5aSp56m6ID4gc2t5Owor5oKy5YK3ID4gc2FkOwor5bqK6YuqID4gYmVkOwor5Lim5LiUID4gYW5kOwor5Yil6YedID4gcGluOwor57ir57SJID4gc2V3Owor5LiA5YiHID4gYWxsOwor6YCa6YCaID4gYWxsOwor5bmz6Y2LID4gcGFuOwor5pS+572uID4gcHV0Owor5bm06YKBID4gb2xkOwor5q+N54mbID4gY293Owor5aaC5p6cID4gaWY7CivpgoTmmK8gPiBvcjsKK+eahOipsSA+IGlmOwor5YWJ56KfID4gY2Q7CivopoHmmK8gPiBpZjsKK+iLpeaYryA+IGlmOwor5ZqH6IGyID4gaG87CivmiJbogIUgPiBvcjsKK+aIkeeahCA+IG15Owor5YGH5aaCID4gaWY7CivmiJHlgJEgPiB3ZTsKK+WViuWRgCA+IG9oOwor5pan6aCtID4gYXg7CivkuIDkvYYgPiBpZjsKK+S4gOWAiyA+IGE7CivjoY4gPiB0aGVcLWxvbmdcLWJhbmRzXC1vclwtcmliYm9uc1wtYXR0cmFjaGVkXC10b1wtZmxhZ3NcLWFuZFwtYmFubmVyc1wtdGhlXC1mZWF0aGVyXC1kZWNvcmVjdGVkXC1jYXJyaWFnZXNcLW9yXC1kcmVzc2VzOwor6YOvID4gbmFtZVwtb2ZcLWFcLXNtYWxsXC1hbmNpZW50XC1wcmluY2lwYWxpdHlcLXdoaWNoXC13YXNcLXNpdHVhdGVkXC1pblwtd2hhdFwtaXNcLW5vd1wtcGFydFwtb2ZcLXNoYW50dW5nXC1hbmRcLWtpYW5nc3U7CivkkJ4gPiB0aGVcLXRoaW5cLW1lbWJyYW5lXC1iZXR3ZWVuXC1za2luXC1hbmRcLWZsZXNoXC10aGF0XC1wcm90ZWN0c1wtaW50ZXJuYWxcLW9yZ2Fuc1wtb3JcLXRpc3N1ZXNcLWluXC10aGVcLWh1bWFuXC1ib2R5Owor54+qID4gYVwtamFkZVwtdGFibGVcLWNvbmZlcnJlZFwtdXBvblwtZmV1ZGFsXC1wcmluY2VzXC1ieVwtdGhlXC1lbXBlcm9yXC1hc1wtYVwtc3ltYm9sXC1vZlwtZGlnbml0eVwtYW5kXC1hdXRob3JpdHk7CivjurogPiBhXC12ZXJ5XC1wcmVjaW91c1wtcGllY2VcLW9mXC1qYWRlXC13b3JuXC1ieVwtYW5jaWVudFwtZW1wZXJvcnNcLXRvXC1tYXRjaFwtdGFibGVzXC1ib3JuZVwtYnlcLXRoZVwtbm9ibGVzOwor5ICYID4gdG9cLWNvdmVyXC10aGVcLWxpbmVcLW9mXC12aXNpb25cLW9yXC1zaWdodFwtXC1cLXRoZVwtc3RyYWlnaHRcLWxpbmVcLWJldHdlZW5cLWFuXC1vYmplY3RcLWFuZFwtb25lJydzXC1leWVzOwor46inID4gd29vZGVuXC1zdGlja1wtb3JcLWJhbWJvb1wtY2FuZVwtdXNlZFwtdG9cLXN1cHBvcnRcLXRoZVwtY292ZXJpbmdcLW9mXC1hXC1jYXJyaWFnZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor45SjID4gaW5cLWFuY2llbnRcLXRpbWVzXC10b1wtZmlnaHRcLWFnYWluc3RcLXRoZVwtZW5lbXlcLWJ5XC1wdXNoaW5nXC1kb3duXC10aGVcLWJpZ1wtcm9ja3NcLWZyb21cLXVwXC1oaWdoOwor5JqrID4gb3JuYW1lbnRhbFwtYXJ0aWNsZXNcLW1hZGVcLW9mXC1ob3Juc1wtdXNlZFwtdG9cLWRlY29yYXRlXC10aGVcLXRvcFwtb2ZcLWFcLXN0aWNrXC1vclwtaG9yc2V3aGlwOwor56yQID4gYmFtYm9vc1wtcGxhY2VkXC1hY3Jvc3NcLXdvb2RlblwtZnJhbWVzXC1vblwtd2hpY2hcLWdyYWluXC1tYXlcLWJlXC1zdG9yZWRcLWluXC1kYW1wXC1jbGltYXRlczsKK+SjniA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGVcLXdoaWNoXC1vY2N1cGllZFwtdGhlXC1zaXRlXC1vZlwtdGhlXC1wcmVzZW50XC1wcm92aW5jZVwtb2ZcLWh1YmVpOwor5Ie2ID4gYVwtc21hbGxcLXJhZnRlcnNcLW1hZGVcLW9mXC1iYW1ib29cLXdoaWNoXC1wcm9qZWN0XC1mb3JtXC10aGVcLWVhdmVzXC1hbmRcLXN1cHBvcnRcLXRoZVwtdGlsZXM7Civos6ggPiB0cmlidXRlXC1wYWlkXC1pblwtY2xvdGhcLWJ5XC10aGVcLXRyaWJlc1wtaW5cLXN6ZWNod2FuXC1hbmRcLXl1bm5hblwtdW5kZXJcLXRoZVwtaGFuXC1keW5hc3R5Owor56arID4gc2FjcmlmaWNlXC1vZmZlcmVkXC1hdFwtdGhlXC1lbmRcLW9mXC10aGVcLXRocmVlXC15ZWFycycnXC1tb3VybmluZ1wtdGhlXC1kZWF0aFwtb2ZcLWFcLXBhcmVudDsKK+SCqSA+IGFuXC1pblwtc2xhYlwtb3JcLWlua1wtc3RvbmVcLXNvdW5kXC1vZlwtcGViYmxlc1wtb3JcLXN0b25lc1wtcnViYmluZ1wtb3JcLWtub2NraW5nXC10b2dldGhlcjsKK+SCjSA+IGFcLWtpbmRcLW9mXC13ZWFwb25cLWNhcnJpZWRcLWJ5XC10aGVcLWhvbm9yXC1ndWFyZFwtYmVmb3JlXC10aGVcLWVtcGVyb3JcLWluXC1hbmNpZW50XC10aW1lczsKK+ihiCA+IHRoZVwtYmxvb2RcLW9mXC1hXC1zYWNyaWZpY2lhbFwtZm93bFwtd2hpY2hcLXdhc1wtc3ByaW5rbGVkXC1vblwtdGhlXC1kb29yc1wtYW5kXC12ZXNzZWxzOwor46+pID4gdG9cLXB1dFwtdGhlXC1ncm93aW5nXC11cFwtc2lsa3dvcm1zXC1pblwtZGlmZmVyZW50XC1mcmFtZXNcLWFjY29yZGluZ1wtdG9cLXRoZWlyXC1zaXplczsKK+OasyA+IGFcLWxhZHlcLXRlYWNoZXJcLXRvXC10ZWFjaFwtdGhlXC1wcm9wZXJcLXJ1bGVzXC1vZlwtZmVtYWxlXC1iZWhhdmlvclwtaW5cLWFuY2llbnRcLXRpbWVzOwor57WlID4gdG9cLWhhcm5lc3NcLWFcLWhvcnNlXC1hXC1ib2FyZFwtaW5cLWZyb250XC1vZlwtYVwtY2FycmlhZ2VcLWZvclwtdGhlXC1kcml2ZXJcLXRvXC1sZWFuXC1vbjsKK+SLrSA+IHRvXC13ZWF2ZVwtc2lsa1wtZmFicmljc1wtd2l0aFwtZ3JlZW5cLWNvbG9yXC1mb3JcLWxvbmdpdHVkZVwtYW5kXC13aGl0ZVwtZm9yXC1sYXRpdHVkZTsKK+OtvCA+IGFcLXJlY3RhbmdsZVwtc2hhcGVkXC1wZWdcLW9yXC1zaG9ydFwtcG9zdFwtYmV0d2VlblwtdGhlXC1iZWFuc1wtYW5kXC10aGVcLXJvb2ZcLXRpbWJlcnM7CivnkYQgPiBhXC1vcm5hbWVudGFsXC1waWVjZVwtb2ZcLWphZGVcLXNldmVyYWxcLWluY2hlc1wtYWNyb3NzXC13aXRoXC1hXC1ob2xlXC1pblwtdGhlXC1jZW50ZXI7CivkrKQgPiB0b1wtcHV0XC10aGVcLXRoaWNrXC1zb3VwXC1vclwtYnJvdGhcLW9uXC10b3BcLW9mXC10aGVcLXJpY2VcLXRoaWNrXC1jb25nZWVcLW9yXC1wb3JyaWRnZTsKK+SlryA+IGFcLWZhcm1cLXRvb2xcLXRvXC1jcnVzaFwtdGhlXC1jbG9kXC1vZlwtZWFydGhcLWludG9cLXBpZWNlc1wtYW5kXC1tYWtlXC10aGVcLWxhbmRcLWZsYXQ7CivkjZYgPiBhXC1raW5kXC1vZlwtbmV0XC1lcXVpcHRlZFwtd2l0aFwtdHJpY2t5XC1tYWNoaW5lXC11c2VkXC10b1wtY2F0Y2hcLWJpcmRzXC1hbmRcLWJlYXN0czsKK+SOrSA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sXC1tYWRlXC1vZlwtdHdpc3RlZFwtdGhyb25cLXN0cmlwc1wtdXNlZFwtdG9cLWZsYXRlblwtdGhlXC1sYW5kOwor562TID4gYVwtaGFpcnBpblwtb25cLXdoaWNoXC10aGVcLWhhaXJcLWlzXC1ib3VuZFwtYXRcLXRoZVwtYmFja1wtb2ZcLXRoZVwtaGVhZFwuXC0xNVwtb2ZcLWFnZTsKK+OusiA+IGFcLXNtYWxsXC1yaW5nXC1vclwtYVwtc21hbGxcLXBpZWNlXC1vZlwtYm9hcmRcLWF0dGFjaGVkXC10b1wtdGhlXC1tdXp6bGVcLW9mXC1hblwtb3g7CivktbsgPiBhXC1zbWFsbFwtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnNcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzOwor546gID4gbGFyZ2VcLWphZGVcLXRhYmxldFwtdXNlZFwtYnlcLW9mZmljaWFsc1wtYXRcLWNvdXJ0XC10b1wtaW5kaWNhdGVcLXRoZWlyXC1yYW5rczsKK+SCnCA+IHJvY2t5XC1maW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlXC10b1wtY29sbGFwc2U7CivjoYYgPiBhblwtYXJ0aXNhblwtdG9cLXNvZnRlblwtcmF3XC1zaWxrXC1ieVwtYm9pbGluZ1wtYW5kXC10b1wtZHllXC10aGVcLWRyZXNzZWRcLXNpbGs7CivjoYMgPiBhblwtYXJ0aXNhblwtdG9cLXNvZnRlblwtcmF3XC1zaWxrXC1ieVwtYm9pbGluZ1wtYW5kXC10b1wtZHllXC10aGVcLWRyZXNzZWRcLXNpbGs7Civoo44gPiB0b1wtdGFrZVwtb2ZmXC10aGVcLWNsb3RoZXNcLWFuZFwtZXhwb3NlXC10aGVcLWJvZHlcLlwtdG9cLWNhcnJ5XC1pblwtdGhlXC1naXJkbGU7CivpjosgPiB0aGVcLWxpbmNoXC1waW5cLW9mXC1hXC13aGVlbFwtdG9cLWdvdmVyblwtb3JcLWNvbnRyb2xcLXRoZVwtbm9pc2VcLW9mXC1hXC1iYXJyb3c7CivkqpAgPiBzb21ldGhpbmdcLW1hZGVcLW9mXC1iYW1ib29cLXB1dFwtaW5cLXRoZVwtYm93XC1jYXNlXC10b1wtcHJldGVjdFwtZnJvbVwtZGFtYWdlOwor5IetID4gY29udGFpbmVyc1wtbWFkZVwtb2ZcLXRoaW5cLWFuZFwtbG9uZ1wtc3RyaXBcLW9mXC1iYW1ib29cLW9yXC13aWxsb3dcLWJyYW5jaGVzOwor45+sID4gYVwtbW91bnRhaW5cLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlXC1zb3V0aHdlc3RcLW9mXC1tZW5neWluXC1jb3VudHk7CivjmqUgPiB0b1wtYmVjb21lXC1hc3NvY2lhdGVkXC13aXRoXC1lYWNoXC1vdGhlclwtaW5cLWdvb2RcLW1hbm5lcnNcLWFuZFwtcG9saXRlbmVzczsKK+SkniA+IGFcLWtpbmRcLW9mXC13ZWFwb25zXC1oZWxkXC1ieVwtdGhlXC1vZmZpY2lhbHNcLWluXC1hdHRlbmRhbmNlXC1pblwtb2xkXC10aW1lczsKK+O5qyA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLWdlbmVyYWxseVwtY2FsbGVkXC1mb3JcLW1pbm9yaXR5XC1ncm91cHNcLWluXC1vbGRcLWNoaW5hOwor47O7ID4gYVwtYmFua1wtb2ZcLWVhcnRoXC1vclwtYW5cLWVtYmFua21lbnRcLXRvXC1ibG9ja1wtdGhlXC1jdXJyZW50XC1vZlwtdGhlXC13YXRlcjsKK+OvoiA+IGFcLXBpZWNlXC1vZlwtY3Jvc3NcLXdpc2VcLWJvYXJkXC11c2VkXC1mb3JcLWZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpbjsKK+SDmCA+IHNpbXBsZVwtYW5kXC1jcnVkZVwtdGhlXC1zb3VuZFwtb2ZcLXBlYmJsZXNcLW9yXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+OwsSA+IHRvXC1zbWVhclwtdGhlXC1tb3V0aFwtd2l0aFwtdGhlXC1ibG9vZFwtb2ZcLWFcLXZpY3RpbVwtd2hlblwtdGFraW5nXC1hblwtb2F0aDsKK+eNryA+IGFcLXRyaWJlXC1vZlwtc2N5dGhpYW5zXC13aGljaFwtaW52YWRlZFwtY2hpbmFcLWR1cmluZ1wtdGhlXC1oc2lhXC1keW5hc3R5Owor6Z6UID4gc2lkZXNcLW9yXC11cHBlcnNcLW9mXC1zaG9lc1wtdG9cLXN0cmV0Y2hcLWFcLXNraW5cLW9uXC1hXC1mcmFtZVwtZm9yXC1hXC1kcnVtOwor5JW9ID4gdGhlXC1yaG9kb2RlbmRyb25cLVwtXC1cLWl0XC1pc1wtc2FpZFwtdG9cLWNhdXNlXC1zaGVlcFwtdG9cLXN0YWdnZXJcLWFuZFwtZGllOwor6YOcID4gbmFtZVwtb2ZcLWZpZWZcLWluXC1zaGFudG9uZ1wtYmVzdG93ZWRcLW9uXC10aGVcLWVsZGVzdFwtc29uXC1vZlwtd2VuXC13YW5nOwor5I2/ID4gYVwta2luZFwtb2ZcLWRhbmNlXC1hY2NvbXBhbmllZFwtYnlcLW11c2ljXC1wZXJmb3JtZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SMniA+IGFcLWtub3RcLXRvXC1oYW5nXC10aGVcLWFwcGFyYXR1c1wtbWFkZVwtb2ZcLXJlZWRcLWZvclwtcmFpc2luZ1wtc2lsa3dvcm1zOwor5IeJID4gY2FwYWNpdHlcLXVuaXRcLWluXC1mcmFuY2VcLWVxdWFsXC10b1wtb25lXC1odW5kcmVkXC10aW1lc1wtb2ZcLW9uZVwtbGl0cmU7CivjvYggPiBhXC1sYXJnZVwtZWFydGhlbndhcmVcLWphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoXC1hbmRcLXR3b1wtb3JcLWZvdXJcLWVhcnM7CivjuZAgPiB0b1wtdG93XC1hXC1ib2F0XC1hZ2FpbnN0XC10aGVcLWN1cnJlbnRcLWluXC1zd2lmdFwtc3RyZWFtXC1mcm9tXC10aGVcLWJhbms7CivmsoUgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC13ZXN0ZXJuXC1odW5hblwtdGhhdFwtZmxvd3NcLWludG9cLWRvbmd0aW5nXC1sYWtlOwor57CLID4gYVwtc3F1YXJlXC1iYXNrZXRcLW9mXC1iYW1ib29cLWZvclwtaG9sZGluZ1wtZ3JhaW5cLXVzZWRcLWF0XC1zYWNyaWZpY2VzOwor6be0ID4gc2lsdmVyXC1waGVhc2FudFwtYmFkZ2VcLXdvcm5cLWJ5XC1jaXZpbFwtb2ZmaWNpYWxzXC1vZlwtdGhlXC01dGhcLWdyYWRlOwor6J+VID4gYVwtc3BlY2llc1wtb2ZcLXRvcnRvaXNlXC1mb3VuZFwtbmVhclwtdGhlXC1tb3V0aFwtb2ZcLXRoZVwteWVsbG93XC1yaXZlcjsKK+OshiA+IHBvc3RodW1vdXNcLXRpdGxlXC1jb25mZXJyZWRcLXVwb25cLWVtcGVyb3JzXC1hbmRcLWVtaW5lbnRcLW9mZmljaWFsczsKK+OUsyA+IGFcLXNxdWFyZVwtYmFza2V0XC1vZlwtYmFtYm9vXC1mb3JcLWhvbGRpbmdcLWdyYWluXC11c2VkXC1hdFwtc2FjcmlmaWNlczsKK+menSA+IHRoZVwtcGllY2VcLW9mXC1sZWF0aGVyXC11c2VkXC1mb3JcLXNvbGVzXC1vblwtY2hpbmVzZVwtc2hvZXNcLlwtYVwtcGF0Y2g7CivolJsgPiBhXC1zbWFsbFwtb3JjaGlkXC1saWtlXC1wbGFudFwtaXRcLWJlYXJzXC13aGl0ZVwtZmxvd2Vyc1wtYVwtZGVuZHJvYml1bTsKK+SwmSA+IGFuXC1hbmNpZW50XC11bml0XC1vZlwtY2FwYWNpdHlcLXdpdGhcLXRocmVlXC1mZWV0XC1hbmRcLWFcLWJpZ1wtb3BlbmluZzsKK+SUuSA+IGFcLWZ1bmd1c1wtd2hpY2hcLWdyb3dzXC1vblwtcm90dGVuXC1wbGFudHNcLWFuZFwtaXNcLWVhdGVuXC13aGVuXC1mcmVzaDsKK+OvoyA+IGFcLWtpbmRcLW9mXC1mcmFncmFudFwtdHJlZVwtdXNlZFwtdG9cLXByb2R1Y2VcLXBlcmZ1bWVcLWJ5XC1idXJuaW5nXC1pdDsKK+OvoSA+IHRvXC1sYWNxdWVyXC1zb21lXC1raW5kXC1vZlwtYXNoZXNcLW9uXC13b29kZW5cLWFydGljYWxzXC1vclwtZnVybml0dXJlOwor5bOLID4gcmFuZ2VzXC1vZlwtaGlsbHNcLXN0cmV0Y2hpbmdcLW9uXC1iZXlvbmRcLWFub3RoZXJcLWlycmVndWxhclwtcGVha3M7CivmrYMgPiBzbWVhclwtb25lJydzXC1tb3V0aFwtd2l0aFwtYmxvb2RcLW9mXC1hXC12aWN0aW1cLXdoZW5cLXRha2luZ1wtYW5cLW9hdGg7CivnvpcgPiB0cmliZXNcLWluXC13ZXN0XC1jaGluYVwtc3Ryb25nXC5cLWVkdWNhdGVkXC5cLW9ic3RpbmF0ZVwuXC1hXC1wYXJ0aWNsZTsKK+S4oyA+IGFuY2llbnRcLWZvcm1cLW9mXC10aGVcLXRlbnRoXC1vZlwtdGhlXC10d2VsdmVcLXRlcnJlc3RyaWFsXC1icmFuY2hlczsKK+ShhSA+IHNvbWV0aGluZ1wtdXNlZFwtdG9cLWJpbmRcLXRoZVwtZnJhbWVcLXdvcmtcLWluXC1hXC1jYXJ0XC1vZlwtb2xkXC10aW1lczsKK+SaqCA+IGFcLXN0cmluZ1wtZmFzdGVuZWRcLXRvXC1hblwtYXJyb3dcLXRvXC1kcmF3XC1pdFwtYmFja1wtYWZ0ZXJcLXNob290aW5nOwor5I6gID4gdG9cLXR3aXN0XC1vclwtdG9cLWNydW1wbGVcLWJldHdlZW5cLWhhbmRzXC1hbmRcLW1ha2VcLXNvbWV0aGluZ1wtdHVybjsKK+OfuSA+IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLW1vdW50YWluXC1pc1wtbG9mdHlcLWFuZFwtc3RlZXBcLWFuZFwtcHJvZm91bmQ7CivjnbggPiBhXC1jb25pY2FsXC1jYXBcLXdvcm5cLW9uXC1jZXJlbW9uaW91c1wtb2NjYXNpb25zXC1pblwtYW5jaWVudFwtdGltZXM7CivjmaggPiB0aGVcLXJveWFsXC1kb21haW5zXC1zZXRcLWFwYXJ0XC1pblwtYW5jaWVudFwtdGltZXNcLWZvclwtdGhlXC1lbXBlcm9yOwor6KGpID4gdGhlXC1vcGVuXC1zZWFtXC1vZlwtYVwtZ2FybWVudFwtd2hpY2hcLWFsbG93c1wtZnJlZWRvbVwtb2ZcLW1vdmVtZW50Owor5bG6ID4gYVwtaGlsbFwtd2l0aFwtdHJlZXNcLW9yXC1ncmFzc1wtXC1cLXNvbWVcLWdpdmVcLXRoZVwtb3Bwb3NpdGVcLW1lYW5pbmc7CivktqYgPiB1cHBlclwtYW5kXC1sb3dlclwtdGVldGhcLWluXC1vcmRlclwtYW5kXC1jb3JyZXNwb25kaW5nXC1lYWNoXC1vdGhlcjsKK+SngiA+IHRvXC10dXJuXC1vdmVyXC10aGVcLWNsb2RcLW9mXC10aGVcLWVhcnRoXC13aXRoXC1hXC1zaG92ZWxcLW9yXC1hXC1zcGFkZTsKK+WZniA+IHRoZVwtbW92ZW1lbnRcLW9mXC1hXC1maXNoJydzXC1tb3V0aFwtYXRcLXRoZVwtc3VyZmFjZVwtb2ZcLXRoZVwtd2F0ZXI7CivllLUgPiB1c2VkXC1pblwtYnVkZGhpc3RcLXRleHRzXC10b1wtdHJhbnNsaXRlcmF0ZVwtbm9uXC1jaGluZXNlXC1zb3VuZHM7CivkoIIgPiBuYW1lXC1vZlwtYVwtcG93ZXJmdWxcLWZldWRhbFwtc3RhdGVcLXdoaWNoXC1leGlzdGVkXC03NDBcLTMzMFwtYlwuY1wuOwor5Ja2ID4gdG9cLXJhaXNlXC11cFwtdGhlXC1ub3NlXC1pblwtb3JkZXJcLXRvXC1nZXRcLXRoZVwtYnVnc1wtaW5cLXRoZVwtZWFydGg7CivkhJsgPiBzZXJ2aWNlXC1vclwtcml0ZXNcLW9mXC1vZmZlcmluZ1wtc2FjcmlmaWNlc1wtZm9yXC1kcmlua1wtYW5kXC1mb29kOwor47ywID4gYW5cLWVhcnRoZW53YXJlXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aFwtYW5kXC10d29cLW9yXC1mb3VyXC1lYXJzOwor47iWID4gaGlkZVwtb3JcLXRvXC1rZWVwXC1pblwtc3RvcmVcLXRoZVwtdmVnZXRhYmxlXC1pblwtY29sZFwtd2ludGVyXC1kYXlzOwor47efID4gdG9cLXNjYWxkXC10aGVcLWJyaXN0bGVzXC1vZmZcLWFcLXBpZ1wtb3JcLXRoZVwtZmVhdGhlcnNcLW9mZlwtYVwtYmlyZDsKK+OwhyA+IHRoZVwtc3F1YXJlXC1wZWNrXC1zaGFwZWRcLWJveFwtaGFsZlwtd2F5XC11cFwtYVwtY2hpbmVzZVwtZmxhZ3N0YWZmOwor466eID4gdGhlXC1zcXVhcmVcLXBlY2tcLXNoYXBlZFwtYm94XC1oYWxmXC13YXlcLXVwXC1hXC1jaGluZXNlXC1mbGFnc3RhZmY7CivjprwgPiBhXC13b29kZW5cLXBpbGVzXC11c2VkXC1hc1wtYVwtY2FibGVcLXRvXC1tYWtlXC1pbW1vdmFibGVcLW9mXC1hXC1ib2F0Owor46KnID4gYVwtYm9va1wtb3JcLXBhaW50aW5nXC13aGljaFwtY2FuXC1iZVwtZWFzaWx5XC1mb2xkZWRcLW9yXC1yb2xsZWRcLXVwOwor6ZKyID4ga2luZFwtb2ZcLWdvbmdcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lc1wtYnlcLXRyb29wc1wtb25cLXRoZVwtbWFyY2g7CivpiaYgPiBraW5kXC1vZlwtZ29uZ1wtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzXC1ieVwtdHJvb3BzXC1vblwtdGhlXC1tYXJjaDsKK+SqsyA+IHNsYW50ZWRcLWZhY2VcLWNhdXNpbmdcLWJ5XC10aGVcLXBhcmFseXplZFwtb2ZcLXRoZVwtZmFjaWFsXC1uZXJ2ZTsKK+SeiyA+IHRvXC1kb1wtYWxtc1wtZm9yXC10aGVcLWJ1ZGRoaXN0XC1wcmllc3RzXC1vclwtbW9ua3NcLWluXC1vbGRcLXRpbWVzOwor5JmGID4gc2xpdHNcLW9uXC10aGVcLWxvd2VyXC1wYXJ0XC1vZlwtYVwtZ293blwtZm9yXC1mcmVlZG9tXC1vZlwtbW92ZW1lbnQ7CivkgI8gPiB0b1wtbW92ZVwtb25lJydzXC1leWVzXC10b1wtZXhwcmVzc1wtb3JcLWluZGljYXRlXC13aXRoXC1leWVzXC1kaXp6eTsKK+O/hCA+IHRoZVwtZ3JvYW5zXC1vclwtbW9hbnNcLWZyb21cLWFcLXBlcnNvblwtaW5cLWFcLWNyaXRpY2FsXC1jb25kaXRpb247Civjto8gPiBhblwtYW5jaWVudFwtbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlXC1kZW5nZmVuZ3hpYW47Civjs4cgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtamlhbmdzdVwtcHJvdmluY2VcLXlpeGluZ1wtY291bnR5Owor46uLID4gYVwtc2lsa2VuXC1iYW5uZXJcLWhhbmdpbmdcLWZyb21cLWFcLXN0YWZmXC1iZW50XC1vdmVyXC1hdFwtdGhlXC10b3A7Civni70gPiBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtd2l0aFwtc2hvcnRcLWZvcmVsZWdzXC13aGljaFwtcm9kZVwtYVwtd29sZjsKK+atkCA+IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpbmdcLW5vblwtY2hpbmVzZVwtd29yZHNcLXN1Y2hcLWFzXC1ldXJvcGU7Civni4ggPiBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtd2l0aFwtc2hvcnRcLWZvcmVsZWdzXC13aGljaFwtcm9kZVwtYVwtd29sZjsKK+axqCA+IG1pXC1yaXZlclwtaW5cLWh1bmFuXC1wcm92aW5jZVwtd2hlcmVcLXF1XC15dWFuXC1kcm93bmVkXC1oaW1zZWxmOwor5rGcID4gYVwtc3RyZWFtXC13aGljaFwtbGVhdmVzXC10aGVcLW1haW5cLWJyYW5jaFwtdGhlblwtbGF0ZXJcLXJldHVybnM7CivnsIggPiBiYW1ib29cLW1hdFwtdXNlZFwtdG9cLXByb3RlY3RcLWNhcnJpYWdlXC1wYXNzZW5nZXJzXC1mcm9tXC1kdXN0Owor566zID4gYmFtYm9vXC1tYXRcLXVzZWRcLXRvXC1wcm90ZWN0XC1jYXJyaWFnZVwtcGFzc2VuZ2Vyc1wtZnJvbVwtZHVzdDsKK+eIvCA+IGFcLXNtYWxsXC10YWJsZVwtb3JcLXRpZXJlZFwtc3RhbmRcLWZpbGxlZFwtd2l0aFwtbWVhdFwtb2ZmZXJpbmdzOwor5LOaID4gYVwtc29ydFwtb2ZcLW5pZ2h0aW5nYWxlXC13aGljaFwtaXNcLXNhaWRcLXRvXC1zaW5nXC1mb3JcLXRoZVwtZGF3bjsKK+ShgiA+IHRoZVwtbG9uZ1wtd29vZGVuXC1idW1wZXJcLWF0XC10aGVcLXJlYXJcLW9mXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7Civkg74gPiB0b1wtb2ZmZXJcLXNtYWxsXC1waWdcLWFzXC1zYWNyaWZpY2VcLXdoZW5cLXdhcnNoaXBcLWdvZFwtb2ZcLWxpZmU7CivjvKogPiBmcmFnbWVudHNcLW9mXC1hXC10aWxlXC1oYXZlbicndFwtdFwtYmVlblwta2lsblwtZHJpZWRcLWNvbXBsZXRlbHk7CivjtJYgPiBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlXC1zb3V0aHdlc3RcLW9mXC1qaW5hbjsKK+OdiSA+IHNwYWNlXC1iZXR3ZWVuXC10aGVcLXRocm9uZVwtYW5kXC10aGVcLXJldGlyaW5nXC1yb29tXC1iZWhpbmRcLWl0Owor45arID4gdXNlZFwtaW5cLW5hbWVzXC1mb3JcLW1pbm9yaXR5XC1ldGhuaWNcLWdyb3VwXC1pblwtYW5jaWVudFwtY2hpbmE7Civngp0gPiBzdGlyXC1mcnlcLW9yXC1ib2lsXC1pblwtd2F0ZXJcLW9yXC1vaWxcLXRoZW5cLWNvb2tcLXdpdGhcLWFcLXNhdWNlOwor54aXID4gc3RpclwtZnJ5XC1vclwtYm9pbFwtaW5cLXdhdGVyXC1vclwtb2lsXC10aGVuXC1jb29rXC13aXRoXC1hXC1zYXVjZTsKK+W8riA+IGFcLWNyb3d3Ym93XC13aGljaFwtZGlzY2hhcmdlZFwtc2V2ZXJhbFwtYm9sdHNcLWluXC1zdWNjZXNzaW9uOwor5KqZID4gbGVhdGhlclwtd3JhcHBlZFwtY29sbGFyXC1mb3JcLWFcLWRyYWZ0XC1hbmltYWxcLW9mXC1hXC1jYXJyaWFnZTsKK+SqliA+IGxlYXRoZXJcLXdyYXBwZWRcLWNvbGxhclwtZm9yXC1hXC1kcmFmdFwtYW5pbWFsXC1vZlwtYVwtY2FycmlhZ2U7Civkp5ogPiB0aGVcLW5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRoZVwtc291dGhcLXdlc3RcLW9mXC1oZWJlaVwtcHJvdmluY2U7CivkoZ4gPiBsZWF0aGVyXC10aGF0XC13aW5kXC1yb3VuZFwtb25cLXRoZVwtc2hhZnRzXC1vZlwtYVwtYmlnXC1jYXJyaWFnZTsKK+SNnCA+IGFcLWJhc2tldFwtb3JcLWFcLWNhZ2VcLXVzZWRcLXRvXC1rZWVwXC13aWxkXC1hbmRcLWRvbWVzdGljXC1mb3dsczsKK+SHhiA+IGNhcGFjaXR5XC11bml0XC1pblwtZnJhbmNlXC1lcXVhbFwtdG9cLXRlblwtdGltZXNcLW9mXC1vbmVcLWxpdHJlOwor5IKFID4gdG9cLWhhdmVcLWluc2lnaHRcLW9yXC12aXNpb25cLW9mXC1hXC1zaW1wbGVcLWFuZFwtaG9uZXN0XC1wZXJzb247Civjsr0gPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC10b2RheScnc1wtc291dGh3ZXN0XC1vZlwtc2hhbnhpXC1wcm92aW5jZTsKK+OukCA+IGFcLXJhY2tcLW9yXC1hXC1zdGFuZFwtd2l0aFwtdGhyZWVcLXN0aWNrc1wtdG9cLWNyb3NzXC1lYWNoXC1vdGhlcjsKK+OsuCA+IGFcLWtpbmRcLW9mXC1zZXJ2aWNlc1wtb3JcLWNlcmVtb25pZXNcLW9mXC1vZmZlcmluZ1wtc2FjcmlmaWNlczsKK+mDjCA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtaHNpZW5cLWluXC1tb2Rlcm5cLWdhbnN1XC9zaGFhbnhpXC1hcmVhXC47CivogLAgPiB0b290aGxlc3NcLXJha2VcLWZvclwtZHJhd2luZ1wtZWFydGhcLW92ZXJcLW5ld2x5XC1zb3duXC1ncmFpbjsKK+eQgCA+IGdlbXNcLW9mXC1wZWFybHNcLWZvcm1lcmx5XC1wdXRcLWludG9cLXRoZVwtbW91dGhcLW9mXC1hXC1jb3Jwc2U7CivkqoMgPiB3aW5lXC1jb250YWluZXJcLXVzZWRcLWJ5XC1taW5vcml0eVwtdHJpYmVcLWluXC1hbmNpZW50XC10aW1lczsKK+SltyA+IGFcLWhpbmdlZFwtc2hlYXJcLW9yXC1sb25nXC1rbmlmZVwtZm9yXC1jdXR0aW5nXC1mb2RkZXJcLW9yXC1oYXk7CivkpKkgPiBhblwtb3JuYW1lbnRcLWF0XC10aGVcLWVuZFwtb2ZcLWFcLWJlbHRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SdqiA+IHRvXC1wcm92aWRlXC1tb25leVwtb3JcLWdpZnRcLWFuZFwtdG9cLWNvbnN1bHRcLWZvcnR1bmVcLXRlbGxlcjsKK+SZmyA+IGNlcmVtb25pYWxcLWRyZXNzXC1vZlwtdGhlXC1lbXBlcm9yXC1vclwtdmVyeVwtaGlnaFwtb2ZmaWNpYWxzOwor5JimID4gYVwta2luZFwtb2ZcLWhlYWRcLWRyZXNzXC13b3JlXC1pblwtZnVuZXJhbFwtcml0ZXNcLWluXC1vbGRcLWRheXM7CivkmJ8gPiBraW5kXC1vZlwtc2lsa1wtd292ZW5cLXdpdGhcLWRvdWJsZVwtdGhyZWFkc1wtYW5kXC13YXRlclwtcHJvb2Y7CivklJEgPiBhXC13aGl0ZVwtY29sb3JlZFwtY2x1c3RlclwtZ3Jvd25cLWF0XC10aGVcLXRpcFwtb2ZcLWNvZ29uZ3Jhc3M7CivkibIgPiB0aGluXC1hbmRcLWZsYXRcLXNsaXBzXC1vZlwtYmFtYm9vXC11c2VkXC1mb3JcLXdlYXZpbmdcLXB1cnBvc2U7CivjvL0gPiBmcmFnbWVudHNcLW9mXC1hXC10aWxlXC1oYXZlbicndFwtYmVlblwta2lsblwtZHJpZWRcLWNvbXBsZXRlbHk7CivjtoEgPiBhZnRlclwtYmxvY2tpbmdcLXRoZVwtd2F0ZXJcLWZsb3dcLXRha2VzXC1kaWZmZXJlbnRcLXdhdGVyd2F5Owor46+AID4gYm9uZHNcLWFuZFwtZmV0dGVyc1wtZm9yXC1mYWxjb25zXC1hbmRcLWRvZ3NcLXVzZWRcLWluXC1odW50aW5nOwor45K+ID4gYVwta2luZFwtb2ZcLXdyYXBwZXJcLXVzZWRcLXRvXC1jb3Zlclwtb3ZlclwtdGhlXC1mYWNlXC1hbmRcLWhlYWQ7CivooLIgPiB0aGVcLW1pbGxpcGVkZVwtc29tZXRpbWVzXC1jb25mb3VuZGVkXC13aXRoXC10aGVcLWdyb3dcLXdvcm07CivomKcgPiBhXC1wbGFudFwtd2hpY2hcLXJlc2VtYmxlc1wtd2hlYXRcLWJ1dFwtaGFzXC1ub1wtZWRpYmxlXC1ncmFpbjsKK+ShtCA+IGNhcnJpYWdlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLXRvXC10YWtlXC1lbmVteVwtcG9zaXRpb247Civkn7ogPiB3YWxrXC1zbG93bHlcLWJlY2F1c2VcLW9mXC10aGVcLXdyb25nXC1wb3NpdGlvblwtb2ZcLXRoZVwtZmVldDsKK+SJoyA+IHNsaXBzXC1vZlwtYmFtYm9vXC1wcm92aWRlZFwtZm9yXC13cml0aW5nXC1pblwtYW5jaWVudFwtdGltZXM7CivkgbkgPiB0b1wtbG9va1wtYXNrYW5jZVwtXC1cLVwtYVwtZXhwcmVzc2lvblwtb2ZcLWRpc2RhaW5cLW9yXC1kZXNwaXNlOwor47yMID4gbG90XC1vZlwtbWVsb25zXC1ncm93aW5nXC1idXRcLXRoZVwtcm9vdFwtaXNcLXdlYWtcLWFuZFwtZmVlYmxlOwor47ugID4gamFkZVwtaGFuZ2luZ1wtb25cLXRoZVwtc2lkZXNcLW9mXC10aGVcLWNhcFwtaW5cLWFuY2llbnRcLXRpbWVzOwor466jID4gYVwtcGllY2VcLW9mXC13b29kXC11c2VkXC10b1wtc3RyaWtlXC1vZmZcLWdyYWluXC1pblwtYVwtbWVhc3VyZTsKK+OTpCA+IHRvXC1zdHJpcFwtdGhlXC1za2luXC1vZlwtdGhlXC1mYWNlXC1cLVwtXC1hblwtaW1taW5lbnRcLWNhbGFtaXR5Owor56CAID4gYnJpbGxpYW50bHlcLWNvbG9yZWRcLXN0b25lXC13aXRoXC12ZWluZWRcLXBhdHRlcm5zXC1pblwtaXQ7CivomZIgPiBhblwtYW1waGliaW91c1wtYmVhc3RcLXJlc2VtYmxpbmdcLWFcLXRpZ2VyXC13aXRoXC1vbmVcLWhvcm47CivnrYEgPiBhXC1iYW1ib29cLWZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpblwtdGhlaXJcLWNvY29vbnM7Civnoq0gPiBicmlsbGlhbnRseVwtY29sb3JlZFwtc3RvbmVcLXdpdGhcLXZlaW5lZFwtcGF0dGVybnNcLWluXC1pdDsKK+WGiyA+IGFcLWRlc2VydFwtYVwtYm9yZGVyXC1wcmFpcmllXC10aGVcLTFzdFwtZm9ybVwtaXNcLXJhZGljYWxcLTEzOwor5LS3ID4gdXNlXC10aGVcLXdob2xlXC1waWVjZVwtb2ZcLWJhcmxleVwtdG9cLWZlcm1lbnRcLWZvclwtYnJld2luZzsKK+StniA+IGFcLWtpbmRcLW9mXC1zYWNyaWZpY2VzXC1vZmZlcmVkXC10b1wtZ29kc1wtb3JcLXRoZVwtZGVjZWFzZWQ7Civkp6AgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC13aGF0XC1pc1wtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+SRqSA+IGFcLWtpbmRcLW9mXC1pbmxhbmRcLXJpdmVyc1wtd2Fyc2hpcFwtdXNlZFwtaW5cLXFpbmdcLWR5bmFzdHk7CivkjbggPiBhXC1sZWdlbmRhcnlcLWdvYXRcLWxpa2VcLWFuaW1hbFwtd2l0aFwtNFwtZWFyc1wtYW5kXC05XC10YWlsczsKK+SNqyA+IGFcLWxlZ2VuZGFyeVwtZ29hdFwtbGlrZVwtYW5pbWFsXC13aXRoXC00XC1lYXJzXC1hbmRcLTlcLXRhaWxzOwor5IOrID4gYVwtc2lsaWNhdGVcLXN1YnN0YW5jZVwtZnJvbVwtdGhlXC1zYWx0XC13ZWxsc1wtaW5cLXN6ZWNod2FuOwor47icID4gdG9cLWdldFwtdGhyb3VnaFwtdGhlXC1zcGFjZVwtZW5jbG9zZWRcLWJ5XC1hXC1jb25zdGVsbGF0aW9uOwor47etID4gYVwtY29uaWNhbFwtYnJpY2tcLXN0cnVjdHVyZVwtaW5cLXdoaWNoXC10b1wtbGlnaHRcLWFcLWJlYWNvbjsKK+O2uyA+IGFcLWNvbmljYWxcLWJyaWNrXC1zdHJ1Y3R1cmVcLWluXC13aGljaFwtdG9cLWxpZ2h0XC1hXC1iZWFjb247CivnlL4gPiBncm91bmRcLXRoYXRcLWhhc1wtYmVlblwtdW5kZXJcLWN1bHRpdmF0aW9uXC1mb3JcLW9uZVwteWVhcjsKK+emoSA+IGFcLXNhY3JpZmljZVwtYXRcLXRoZVwtYmVnaW5uaW5nXC1vZlwtYVwtbWlsaXRhcnlcLWNhbXBhaWduOwor56SuID4gYW5jaWVudFwtYmFsbGlzdGFcLWZvclwtdGhyb3dpbmdcLWhlYXZ5XC1zdG9uZXNcLWFcLWNhbm5vbjsKK+eknyA+IGFuY2llbnRcLWJhbGxpc3RhXC1mb3JcLXRocm93aW5nXC1oZWF2eVwtc3RvbmVzXC1hXC1jYW5ub247Civkr6AgPiB0aGVcLWZpdmVcLWxvd2VzdFwtcGllY2VzXC1vZlwtYm9uZVwtb2ZcLXRoZVwtc3BpbmFsXC1jb2x1bW47Civkr5kgPiB0aGVcLWZpdmVcLWxvd2VzdFwtcGllY2VzXC1vZlwtYm9uZVwtb2ZcLXRoZVwtc3BpbmFsXC1jb2x1bW47CivkrKYgPiBmb29kXC1pdGVtc1wtbWVyZWx5XC1hcnJhbmdlZFwtZm9yXC1kaXNwbGF5XC1wdXJwb3NlXC1vbmx5Owor5JmRID4gYVwtcGllY2VcLW9mXC1zYWNrY2xvdGhcLXdvcm5cLW9uXC10aGVcLWJyZWFzdFwtaW5cLW1vdXJuaW5nOwor5IixID4gYW5cLW9wZW5cLWJhbWJvb1wtYmFza2V0XC11c2VkXC10b1wtZmVlZFwtZG9tZXN0aWNcLWFuaW1hbHM7CivjqrUgPiBoYWxmXC1vZlwtYVwtdW5pdFwtb2ZcLW1lYXN1cmVtZW50XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivjoYggPiB0aGVcLXJvcGVzXC1hdHRhY2hlZFwtdG9cLXRoZVwtYmllclwtYW5kXC1oZWxkXC1ieVwtbW91cm5lcnM7CivjmqQgPiBhXC1sYWR5XC1vZmZpY2VyXC1vZlwtdGhlXC1tb25hcmNoJydzXC1wYWxhY2VcLWluXC1vbGRcLXRpbWVzOwor5ZGAID4gcGFydGljbGVcLXVzZWRcLXRvXC1leHByZXNzXC1zdXJwcmlzZVwtb3JcLW1pbGRcLWVtcGhhc2lzOwor6Z23ID4gdGhlXC1sZWF0aGVyXC1iZWx0XC10aGF0XC1jb25uZWN0c1wtYVwtaG9yc2VcLXdpdGhcLWFcLWNhcnQ7CivorbwgPiB0b1wtc3VwZXJ2aXNlXC10b1wtY29uZmluZVwtYVwtZ292ZXJubWVudFwtZXN0YWJsaXNobWVudDsKK+WdqyA+IGFcLXN0YW5kXC1vblwtd2hpY2hcLXRvXC1yZXBsYWNlXC1nb2JsZXRzXC1hZnRlclwtZHJpbmtpbmc7CivktL0gPiBhXC1zbWFsbFwtcm91bmRcLXBpZWNlXC1vZlwtZGlzdGlsbGVyJydzXC1ncmFpbnNcLW9yXC15ZWFzdDsKK+SwjiA+IHRvXC10d2lzdFwtdGhlXC1oYWlyXC1pblwtYVwta25vdFwtb25cLXRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5KqdID4gbGVhdGhlclwtY29yZFwtdGhhdFwtd2luZGluZ1wtb25cLXRoZVwtaGFuZGxlXC1vZlwtYVwta25pZmU7CivkoYcgPiB0aGVcLWNyb3NzXC1iYXJcLWF0XC10aGVcLWVuZFwtb2ZcLXRoZVwtcG9sZVwtb2ZcLWFcLWNhcnJpYWdlOwor5J6AID4gdG9cLWRlc2lyZVwtZm9yXC1tb3JlXC1tb25leVwtdGhhblwtb25lJydzXC1yaWdodGZ1bFwtc2hhcmU7CivkmK0gPiB0aGVcLXBsZWF0ZXNcLW9uXC10aGVcLWxhcGVsXC1vZlwtYVwtZ2FybWVudFwtb2ZcLXRoaW5cLXNpbGs7CivkkIggPiBhXC1waWVjZVwtb2ZcLW9uZVwtZm9vdFwtdHdvXC1pbmNoZXNcLWRyaWVkXC1zZWFzb25lZFwtbWVhdDsKK+SNhSA+IGNvbnRhaW5lcnNcLWZvclwtd2F0ZXJcLW9yXC13aW5lXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civki74gPiBjb3R0b25cLWFuZFwtc2lsa1wtdG9cLWJlXC1sYWlkXC1hbmRcLWF0dGFjaGVkXC1lYWNoXC1vdGhlcjsKK+SJkCA+IGFcLXRoaW5cLWFuZFwtbG9uZ1wtc3RyaXBcLW9mXC1iYW1ib29cLWZvclwtbWFraW5nXC1iYXNrZXRzOwor5Ii7ID4gYVwtaGVhdnlcLW1hdHNcLW9mXC1iYW1ib29cLXVzZWRcLWZvclwtZGVlcFwtd2F0ZXJcLWZpc2hpbmc7Civkh6AgPiB3cmVuY2hcLXRvXC1hZGp1c3RcLXRoZVwtc3RyaW5nXC1vblwtc3RyaW5nZWRcLWluc3RydW1lbnQ7CivkhIwgPiB0b1wtcGVyZm9ybVwtcml0aWVzXC1pblwtaG9ub3JcLW9mXC10aGVcLWFuY2VzdHJhbFwtdGVtcGxlOwor5IOmID4gYVwtZmxhdFwtYW5kXC1ncmVhdFwtcm9ja1wtcGVvcGxlXC1zcXVhdFwtb3JcLWNyb3VjaFwtb25cLWl0Owor47uAID4gZmluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZTsKK+OyrCA+IGhhaXJcLWRlY29yYXRpb25zXC1vblwtYVwtaGVsbWV0XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civjsa8gPiBnZXRcLXRoZVwtdW5ib3JuXC1iYWJ5XC1nb2F0XC1ieVwta2lsbG5nXC10aGVcLW1vdGhlclwtZ29hdDsKK+OusCA+IHRoZVwtc21hbGxcLWJlYW1cLXN1cHBvcnRpbmdcLXRoZVwtcmFmdGVyc1wtYXRcLXRoZVwtZWF2ZXM7CivjqrYgPiBhXC1kcnlcLW1lYXN1cmVcLTEwXC1vclwtNVwtdGltZXNcLXRoYXRcLW9mXC1hXC1jaGluZXNlXC1wZWNrOwor45+XID4gbmFtZVwtb2ZcLWFcLXNtYWxsXC1wcmluY2lwYWxpdHlcLWluXC13aGF0XC1pc1wtbm93XC1zaGFueGk7CivkvL0gPiB0cmFuc2NyaXB0aW9uXC1vZlwtc2Fuc2tyaXRcLScnZ2hhJydcLWluXC1idWRkaGlzdFwtdGV4dHM7CivlsaMgPiBzdHJhd1wtc2FuZGFsc1wtb3JcLXNsaXBwZXJzXC10aGF0XC1oYXZlXC1ub1wtaGVlbFwtYmFja3M7CivmvI4gPiBhXC1wbGFjZVwtd2hlcmVcLXNtYWxsXC1zdHJlYW1zXC1mbG93XC1pbnRvXC1hXC1sYXJnZVwtb25lOwor5qq+ID4gZ3Jhc3N5XC1wbGFudFwtd2l0aFwtZmlicmVzXC1mcm9tXC13aGljaFwtY2xvdGhcLWlzXC1tYWRlOwor5LCMID4gdG9cLWJpbmRcLXRoZVwtaGFpclwtaW5cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SptSA+IHRhbm5lclwtd2hvXC1tYWRlXC10aGVcLWxlYXRoZXJcLWRydW1cLWluXC1hbmNpZW50XC10aW1lczsKK+SamSA+IGFcLXNwb29uXC1mb3JcLWNvb2tlZFwtcmljZVwtbWFkZVwtb2ZcLWhvcm5cLW9mXC1hblwtYW5pbWFsOwor5IyzID4gYVwta2luZFwtb2ZcLXVucmVmaW5lZFwtb3JcLXVucG9saXNoZWRcLXNpbGtlblwtdGV4dGlsZXM7CivkjKQgPiBhXC1raW5kXC1vZlwtdW5yZWZpbmVkXC1vclwtdW5wb2xpc2hlZFwtc2lsa2VuXC10ZXh0aWxlczsKK+SKuiA+IGFuXC1pbXBsZW1lbnRcLXRvXC1kcmF3XC1vclwtdG9cLWNvbGxlY3RcLXJvcGVzXC1vclwtY29yZHM7CivkiYMgPiBzbGlwZWRcLW9wZW5cLWJhbWJvb1wtd2l0aFwtdGhlXC1qb2ludHNcLXVzZWRcLWFzXC1hblwtb2FyOwor5ImAID4gcmVjdGFuZ3VsYXJcLWNoZXN0XC1vclwtYm94XC13b3ZlblwtZnJvbVwtYmFtYm9vXC1zdHJpcHM7CivkhIsgPiB0b1wtcHJheVwtZm9yXC1wcmV2ZW50aW5nXC1vclwtZm9yZXN0YWxsaW5nXC1jYWxhbWl0aWVzOwor5IOuID4gYVwtc3RvbmVcLWJ1aWxkXC1oeWRyYXVsaWNcLW1lYXN1cmVzXC1pblwtYW5jaWVudFwtdGltZXM7Civjvr8gPiByb2FyXC1vZlwtYXN0aG1hXC1vclwtZXhwZWN0b3JhdGVcLWZyb21cLWFcLWR5aW5nXC1wZXJzb247Civju6ggPiBpbmVcLXN0b25lXC13aGljaFwtaXNcLWxpdHRsZVwtbGVzc1wtdmFsdWFibGVcLXRoYW5cLWphZGU7CivjupAgPiBnZW5lcmFsbHlcLWNhbGxlZFwtZm9yXC1taW5vcml0eVwtZ3JvdXBzXC1pblwtb2xkXC1jaGluYTsKK+OvgiA+IHBpbGxhclwtb3JcLXBvc3RcLW9mXC1hXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47Civjn4sgPiBkZWVwXC1hbmRcLWxldmVsXC1ncm91bmRcLWd1bGx5XC1hdFwtdGhlXC1mb290XC1vZlwtYVwtaGlsbDsKK+OeqiA+IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLXRoZVwtbW91bnRhaW5cLWlzXC1mbGF0XC1hbmRcLXNtb290aDsKK+ihhSA+IGNvbnNlY3JhdGVcLXNhY3JpZmljaWFsXC12ZXNzZWxzXC1ieVwtc21lYXJpbmdcLWJsb29kOwor6JmiID4gbmFtZVwtb2ZcLWFuY2llbnRcLWZldWRhbFwtc3RhdGVcLWluXC1zaGVueGlcLWFuZFwtaHVuYW47CivpvYkgPiBzdG9wcGFnZVwtb2ZcLXRoZVwtbm9zZVwtdG9cLXNwZWFrXC13aXRoXC1hXC1uYXNhbFwtdHdhbmc7CivopK8gPiBjaGlsZHJlbicnc1wtZ2FybWVudHNcLlwtYVwtbWF0XC1mb3JcLXdyYXBwaW5nXC1nYXJtZW50czsKK+aioCA+IGFcLXNtYWxsXC1iZWFtXC1zdXBwb3J0aW5nXC10aGVcLXJhZnRlcnNcLWF0XC10aGVcLWVhdmVzOwor5pGjID4gYVwtaGFuZGZ1bFwuXC10b1wtcGlja1wtdXBcLXdpdGhcLXRoZVwtZmluZ2Vyc1wuXC10b1wtc2VpemU7CivloJggPiBhXC1yYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkXC13aGljaFwtYWN0c1wtYXNcLWFcLWR5a2U7CivktpwgPiB0aGVcLXByb2Nlc3NcLXRvXC13aGl0ZW5cLXRoZVwtaXZvcnlcLW9yXC1lbGVwaGFudFwtdHVzazsKK+SuiSA+IGhvcnNlc1wta2VwdFwtYXRcLWFcLWNvdXJpZXJcLXN0YXRpb25cLWluXC1mb3JtZXJcLXRpbWVzOwor5KK1ID4gbmFtZVwtb2ZcLWFuXC1vbGRcLWNvdW50cnlcLWluXC10b2RheScnc1wtaHViZWlcLXByb3ZpbmNlOwor5KGfID4gYVwtcmluZ1wtb2ZcLXRoZVwtaG9yaXpvbnRhbFwtZnJvbnRcLWJhclwtb25cLWFcLWNhcnJpYWdlOwor5J6bID4gZGFuY2luZ1wtb2ZcLWFcLWVhc3Rlcm5cLW1pbm9yaXR5XC1ncm91cFwtaW5cLW9sZFwtY2hpbmE7CivknYwgPiBhXC1waWdcLXNlZWtcLWZvclwtZm9vZFwtdGhyb3VnaFwtZGlnZ2luZ1wtb25cLXRoZVwtZWFydGg7CivkkoEgPiBhXC1zbWFsbFwtYm9hdFwtY29ubmVjdGVkXC10b1wtdGhlXC1iYWNrXC1vZlwtYVwtYmlnXC1ib2F0Owor5ImLID4gYVwtdmFyaWV0eVwtb2ZcLWJhbWJvb1wtc2hvb3RzXC10aGF0XC1zcHJvdXRcLWluXC13aW50ZXI7CivkiJQgPiB3aGlzdGxlXC1tYWRlXC1vZlwtcmVlZFwtd2l0aG91dFwtaG9sZXNcLWZvclwtZmluZ2VyaW5nOwor472ZID4gb2ZmaWNpYWxcLWluXC1jaGFyZ2VcLW9mXC1mYXJtbGFuZHNcLWluXC1hbmNpZW50XC10aW1lczsKK+OzjiA+IGd1aWRlXC1vclwtbGVhZFwtdG9cLW1ha2VcLXRoZVwtd2F0ZXJcLWZsb3dpbmdcLXNtb290aGx5Owor47KqID4gd29vbGVuXC1ibGFua2V0XC13aXRoXC1kZWNvcmF0aXZlXC1kZXNpZ25cLW9yXC1wYXR0ZXJuOwor47KoID4gYVwtZGVjb3JhdGl2ZVwtZmluZVwtYmxhbmtldFwtb25cLXRoZVwtdG9wXC1vZlwtYVwtc2FkZGxlOwor47KjID4gd29vbGVuXC1ibGFua2V0XC13aXRoXC1kZWNvcmF0aXZlXC1kZXNpZ25cLW9yXC1wYXR0ZXJuOwor47KZID4gd29vbGVuXC1ibGFua2V0XC13aXRoXC1kZWNvcmF0aXZlXC1kZXNpZ25cLW9yXC1wYXR0ZXJuOwor46eLID4gdG9cLWxlbmd0aGVuXC1hbmRcLWV4dGVudWF0ZVwtXC1cLVwtYXNcLWluXC1tYWtpbmdcLW5vb2RsZTsKK+OgnCA+IHlvdW5nXC1raWRzXC1zbWFydFwtYW5kXC1mYW1pbGlhclwtd2l0aFwtaHVtYW5cLWFmZmFpcnM7CivjmbEgPiBlYXJ0aGVud2FyZVwtdXNlZFwtdG9cLWJha2VcLWNha2VzXC1pblwtbm9ydGhlcm5cLWNoaW5hOwor5ZaBID4gdGhlXC1tb3V0aFwtb2ZcLWFcLWZpc2hcLWF0XC10aGVcLXN1cmZhY2VcLW9mXC10aGVcLXdhdGVyOwor5o+OID4gdG9cLXB1bGxcLXVwXC10aGVcLXNsZWV2ZXNcLWFuZFwtc3RyZXRjaFwtb3V0XC10aGVcLWFybXM7CivnrqwgPiB0aGVcLWN1dGljbGVcLW9mXC10aGVcLWJhbWJvb1wtYVwtYnJvYWRcLWxlYXZlZFwtYmFtYm9vOwor6Lu+ID4gaG9yaXpvbnRhbFwtd29vZGVuXC1iYXJcLWluXC1mcm9udFwtb2ZcLWFcLXNlZGFuXC1jaGFpcjsKK+iQhiA+IHRoZVwtY2FzdG9yXC1vaWxcLXBsYW50XC1hbHNvXC11c2VkXC1mb3JcLW90aGVyXC1wbGFudHM7CivnsKAgPiBhblwtYW5jaWVudFwtdmVzc2VsXC11c2VkXC1mb3JcLWhvbGRpbmdcLWJvaWxlZFwtZ3JhaW47CivksrAgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdGhlXC1waWdlb25cLW9yXC10aGVcLXR1cnRsZVwtZG92ZTsKK+SdpSA+IHRvXC1yb2FyXC1vclwtaG93bFwtZnJhbnRpY1wtYmFya3NcLW9mXC1kb2dzXC1vclwtd29sdmVzOwor5JSkID4gdGhlXC1sdXNoXC1hbmRcLWx1eHVyaWFudFwtb2ZcLXRoZVwtZ3Jhc3NcLWFuZFwtZmxvd2VyczsKK+OvriA+IGFcLWtpbmRcLW9mXC10cmVlXC13aXRoXC1iaWdcLWxlYXZlc1wtYW5kXC1pblwtcmVkXC1jb2xvcjsKK+OUjSA+IGFcLWhpbmdlZFwtc2hlYXJcLW9yXC1sb25nXC1rbmlmZVwtZm9yXC1jdXR0aW5nXC1mb2RkZXI7CivnkpwgPiBhXC1zZW1pY2lyY3VsYXJcLWphZGVcLW9ybmFtZW50XC11c2VkXC1hc1wtYVwtcGVuZGFudDsKK+irrCA+IHRvXC1vcGVuXC10b1wtYmVnaW5cLXRvXC1leHBsYWluXC10b1wtaW5mb3JtXC1hXC1sZXR0ZXI7CivnjLkgPiB3aWxkXC1hbmltYWxcLW1lbnRpb25lZFwtaW5cLXNob3J0XC1zdG9yeVwtYnlcLWx1XC14dW47CivnirwgPiBhXC1maWVyY2VcLW1vbmdvbGlhblwtd29sZlwtZHJhZ29uJydzXC1oZWFkXC1vblwtcm9vZnM7CivmuZMgPiBhblwtYWZmbHVlbnRcLW9mXC10aGVcLXJpdmVyXC15YW5ndHplXC1uZWFyXC1raXVraWFuZzsKK+atmiA+IHVzZWRcLWluXC1uYW1lXC1vZlwtZmFtb3VzXC1rb3JlYW5cLXBhaW50ZXJcLWNlbmdcLXNlbjsKK+S2myA+IHRvXC1zZXBhcmF0ZVwtdGhlXC1tZWF0XC1mcm9tXC10aGVcLWJvbmVzXC13aXRoXC10ZWV0aDsKK+SznCA+IGFcLWtpbmRcLW9mXC1iaXJkXC13aGljaFwtc2hhcmVzXC1pdHNcLW5lc3RcLXdpdGhcLXJhdHM7Civks4UgPiBhXC1raW5kXC1vZlwtYmlyZFwtd2hpY2hcLXNoYXJlc1wtaXRzXC1uZXN0XC13aXRoXC1yYXRzOwor5LKNID4gYVwtcGVyY2hcLWxpa2VcLWZpc2hcLXdpdGhcLXdoaXRlXC1ib2R5XC1hbmRcLXJlZFwtdGFpbDsKK+SptiA+IHNhZGRsZVwtYW5kXC1yZWluXC1ldGNcLlwtZm9yXC10aGVcLWltcGVyaWFsXC1jYXJyaWFnZTsKK+SXvSA+IGFcLXNtYWxsXC1nYWRmbHlcLXRoYXRcLXN1Y2tcLWJsb29kXC1vZlwtaG9yc2VcLW9yXC1jb3c7CivkibQgPiBhXC1iYW1ib29cLXdhcmVcLXRvXC1jb2xsZWN0XC1hbmRcLWtlZXBcLXNvbWV0aGluZ1wtaW47CivkiYUgPiBzbWFsbFwtYmFtYm9vXC13aG9zZVwtam9pbnRzXC1hcmVcLXRocmVlXC1mZWV0XC1hcGFydDsKK+SImyA+IHNtYWxsXC1iYW1ib29cLXdob3NlXC1qb2ludHNcLWFyZVwtdGhyZWVcLWZlZXRcLWFwYXJ0Owor5ISmID4gdG9cLXB1dFwtZm9ydGhcLWVhcnNcLWFuZFwtdG9cLWJsb3Nzb21cLW9mXC10aGVcLWdyYWluczsKK+O9qSA+IGNvbm5lY3RlZFwtYmFua3NcLW9mXC1lYXJ0aFwtb3JcLXBhdGhzXC1pblwtdGhlXC1maWVsZDsKK+O5gyA+IHR3b1wtYnJpbmRsZWRcLWNvd3NcLXRvXC1wbG91Z2hcLWZhY2VcLXRvXC1lYWNoXC1vdGhlcjsKK+O2nyA+IGFuXC1hbmNpZW50XC1uZW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGlcLWFuZFwtaGViZWk7CivjsoggPiB0aGVcLW5hbWVcLW9mXC10aGVcLW11c2ljXC1vZlwtdGhlXC1sZWdlbmRhcnlcLWVtcGVyb3I7CivjrJAgPiBhXC1zdGF0ZVwtZHVyaW5nXC10aGVcLXBlcmlvZFwtb2ZcLXNwcmluZ1wtYW5kXC1hdXR1bW47CivjoZsgPiBuYW1lXC1mb3JcLWFcLXdvcmttYW5cLXdob1wtYXBwbHlcLWNvbG9yXC1pblwtcGFpbnRpbmc7Civjn6IgPiB0aGVcLXJvY2tzXC1vblwtdGhlXC1oaWxsc1wtYXJlXC1vZlwtZGlmZmVyZW50XC1zaGFwZXM7CivjnLwgPiBjaGlsZHJlblwtb2ZcLW9uZScnc1wtYnJvdGhlclwtXC1cLVwtbmVwaGV3c1wtb3JcLW5pZWNlczsKK+OUvSA+IGFcLWtpbmRcLW9mXC13aW5lXC1wb3RcLW9yXC1qYXJcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lOwor45ODID4gdG9cLXNhY3JpZmljZVwtYnlcLXBvdXJpbmdcLW91dFwtYVwtbGliYXRpb25cLW9mXC13aW5lOwor45GeID4gYVwtbWFpZFwtd2hvXC1hY2NvbXBhbmllc1wtYVwtYnJpZGVcLXRvXC1oZXJcLW5ld1wtaG9tZTsKK+eVsiA+IHRvXC1jdWx0aXZhdGVcLWxhbmRcLWJ5XC1maXJzdFwtc2V0dGluZ1wtZmlyZVwtdG9cLWl0Owor56+aID4gcm91bmRcLW9yXC1vdmFsXC1jb3ZlcmVkXC1iYXNrZXRzXC13aXRoXC1zaG9ydFwtbGVnczsKK+eylCA+IGNha2VzXC1tYWRlXC1mcm9tXC1yaWNlXC1mbG91clwtdHdpc3RlZFwtaW50b1wtcmluZ3M7CivmiKQgPiB0b1wtaW5mcmluZ2VcLWFcLXRyYWRlXC1tYXJrXC10b1wtcGxlZGdlXC1hblwtYXJ0aWNsZTsKK+S5pCA+IGZpcnN0XC1jaGFyYWN0ZXJcLW9mXC1rb3JlYW5cLXBsYWNlXC1uYW1lXC0nJ2hhbHBobycnOwor5LaoID4gaW5cLXRoZVwtbWFubmVyXC1hXC10b290aGxlc3NcLXBlcnNvblwtY2hld2luZ1wtZm9vZDsKK+SumyA+IGV4dHJhXC1ob3JzZVwtaGFybmVzc2VkXC1ieVwtdGhlXC1zaWRlXC1vZlwtdGhlXC10ZWFtOwor5KOgID4gbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7Civko58gPiBuYW1lXC1vZlwtcGF2aWxpb25cLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KCSID4gY291cnRlc3lcLW9mXC1hXC1taW5vcml0eVwtZ3JvdXBcLWluXC1hbmNpZW50XC10aW1lczsKK+SdsCA+IHRvXC1zdG9yZVwtb3JcLXRvXC1hY2N1bXVsYXRlXC1yaWNoZXNcLW9yXC12YWx1YWJsZXM7CivknLEgPiBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+STnSA+IGNoaW5lc2VcLXBlbm5pc2V0dW1cKVwtcGVubmlzZXR1bVwtYWxvcGVjdXJvaWRlc1wpOwor5IuJID4gYVwtbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtcHJhY3RpY2FsbHlcLWV2ZXJ5dGhpbmc7CivkiqMgPiBsaWdodFwteWVsbG93XC1kdXN0XC1saWtlXC1mdW5nb2lkXC1ncm93dGhcLW9uXC13aW5lOwor5IeSID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtcGVyaW9kaWNcLXRlcm1zXC1vclwtZXZlbnRzOwor47+XID4gZGlzZWFzZVwtb2ZcLXRoZVwtcHJpdmF0ZVwtcGFydFwtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7Civjv4kgPiBkaXNlYXNlXC1vZlwtdGhlXC1wcml2YXRlXC1wYXJ0XC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+O+qyA+IGhlbWlwbGVnaWFcLVwtXC1cLXBhcmFseXNpc1wtb2ZcLWhhbGZcLW9mXC1vbmUnJ3NcLWJvZHk7Civju54gPiBmbG91cmlzaGluZ1wtYW5kXC1yYWRpYW50XC1vZlwtdGhlXC1jb2xvcmZ1bFwtamFkZXM7CivjubEgPiBuYW1lXC1vZlwtYVwtZG9nXC1pblwtdGhlXC1wZXJpb2RcLW9mXC13YXJyaW5nXC1zdGF0ZXM7CivjsqUgPiBhXC1raW5kXC1vZlwtd29vbGVuXC10ZXh0aWxlc1wtd2l0aFwtY3VydmVkXC1wYXR0ZXJuOwor4625ID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civjo68gPiB0aGVcLWRyZXNzZXNcLXRvc3NcLWFuZFwtZmx5aW5nXC1hYm91dFwtaW5cLXRoZVwtd2luZDsKK+OiryA+IGJvd3NcLXVzZWRcLWJ5XC10aGVcLXNvblwtb2ZcLWhlYXZlblwtXC1cLVwtdGhlXC1lbXBlcm9yOwor46GKID4gYVwta2luZFwtb2ZcLWNhcFwtd29yblwtYnlcLWFuXC1vZmZpY2VyXC1pblwtb2xkXC1jaGluYTsKK+OZqyA+IGFcLWZvdW50YWluXC1vclwtc3ByaW5nXC1vdXRcLWZyb21cLXRoZVwtdW5kZXJncm91bmQ7CivjmY0gPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+mSpyA+IHVuaXRcLW9mXC1tZWFzdXJlXC1lcXVpdmFsZW50XC10b1wtdGhpcnR5XC1jYXR0aWVzOwor5aayID4gY29uY3ViaW5lXC1vZlwtbGFzdFwtcnVsZXJcLW9mXC10aGVcLXNoYW5nXC1keW5hc3R5Owor55O0ID4gY29uY2F2ZVwtY2hhbm5lbHNcLW9mXC10aWxpbmdcLWFcLWxvbmdcLW5lY2tlZFwtamFyOwor5aq1ID4gYVwtbWFpZFwtd2hvXC1hY2NvbXBhbmllc1wtYnJpZGVcLXRvXC1oZXJcLW5ld1wtaG9tZTsKK+iDmSA+IG1lYXRcLW9mZmVyZWRcLWluXC1zYWNyaWZpY2VcLXRvXC1vbmUnJ3NcLWFuY2VzdG9yczsKK+ifiiA+IGFcLWZseVwtd2hpY2hcLWlzXC11c2VkXC1zaW1pbGFybHlcLXRvXC1jYW50aGFyaWRlczsKK+mosiA+IHRoZVwtZmVtYWxlXC1vZlwtY2VydGFpblwtYW5pbWFsc1wtc3VjaFwtYXNcLWhvcnNlczsKK+mIniA+IHVuaXRcLW9mXC1tZWFzdXJlXC1lcXVpdmFsZW50XC10b1wtdGhpcnR5XC1jYXR0aWVzOwor6J2lID4gYVwtZmx5XC13aGljaFwtaXNcLXVzZWRcLXNpbWlsYXJseVwtdG9cLWNhbnRoYXJpZGVzOwor54+TID4gdHdvXC1oZW1pc3BoZXJpY2FsXC1vYmplY3RzXC11c2VkXC1pblwtZGl2aW5hdGlvbjsKK+aVpyA+IHRvXC1waWNrXC11cFwtdGhpbmdcLXdpdGhcLWNob3BzdGlja3NcLW9yXC1waW5jZXJzXC47CivmiYQgPiBsYXJnZVwtcmluZ1wtb25cLWFcLWZyb250XC1kb29yXC11c2VkXC1hc1wtYVwta25vY2tlcjsKK+WrjyA+IHRoZVwtcGxhY2VcLXdoZXJlXC10aGVcLXN1cHJlbWVcLXN0b3Jlc1wtaGlzXC1ib29rczsKK+SxgSA+IGFcLWtpbmRcLW9mXC1tZWRpdW1cLXNpemVkXC1maXNoXC1ncm93blwtaW5cLXRoZVwtc2VhOwor5LCPID4gc3BhcnNlXC1oYWlyXC1vblwtYVwta25vdFwtb25cLXRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5K6GID4gYVwtaG9yc2VcLXdpdGhcLW1peGVkXC1jb2xvclwtb2ZcLXllbGxvd1wtYW5kXC13aGl0ZTsKK+SpmyA+IGxlYXRoZXJcLWJlbHRcLXVzZWRcLXRvXC1iaW5kXC1vclwtcmVzdHJhaW5cLWFcLWNhcnQ7CivkprkgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KOUID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+SjkSA+IGxpdmluZ1wtc3BhY2VcLWZvclwtb25lXC1mYW1pbHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjhCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civko4EgPiBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor5KK5ID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+SiqiA+IGFcLXNsZWRnZVwtZm9yXC10cmFuc3BvcnRhdGlvblwtb3ZlclwtbXVkXC1vclwtc25vdzsKK+SfhiA+IHRvXC1rZWVwXC1wZXJzb25zXC1vZmZcLXRoZVwtcm91dGVcLW9mXC10aGVcLWVtcGVyb3I7CivkiJAgPiBhblwtYXJjaGVkXC1mcmFtZVwtbWFkZVwtb2ZcLWJhbWJvb1wtb2ZcLXdvb2RcLWJvYXJkOwor5IW/ID4gbHV4dXJpYW50XC1vclwtZXh1YmVyYW50XC1vZlwtdGhlXC1ncmFpbnNcLWZsb3dlcnk7Civkg4ggPiBtb3VudGFpblwtcm9ja3NcLWFcLWJsYWNrXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SCrCA+IGJpZ1wtcm9ja3NcLW9uXC10aGVcLXJpdmVyc2lkZVwtYW5cLWFyY2hlZFwtb3BlbmluZzsKK+SBnSA+IGRlbHVkaW5nXC1hbmRcLWNhdXNpbmdcLWRpc29yZGVyXC1saWdodHNcLXNoaW5pbmc7CivjvZ8gPiB0b1wtdGlsbFwtb3JcLXRvXC1wbG91Z2hcLXRoZVwtZmllbGRzXC1hblwtZW5jbG9zdXJlOwor466EID4gcHVibGljbHlcLXBvc3RlZFwtcm9sbFwtb2ZcLXN1Y2Nlc3NmdWxcLWV4YW1pbmVlczsKK+OtuCA+IHRoZVwtYnJhbmNoZXNcLXRvXC1zcHJlYWRcLW91dFwtaW5cLWFsbFwtZGlyZWN0aW9uczsKK+OpiSA+IHRvXC10YWtlXC1hXC1ydWJiaW5nXC1vZlwtYW5cLWluc2NyaXB0aW9uXC1vblwtc3RvbmU7Civjo4EgPiB0b1wtZXF1aXB0XC1hXC1ib3dcLXdpdGhcLXNpbGtcLWFuZFwtbXVzY3VsYXJcLWZpYnJlOwor46KGID4gbGl2aW5nXC1zcGFjZVwtZm9yXC1vbmVcLWZhbWlseVwtaW5cLWFuY2llbnRcLXRpbWVzOwor452ZID4gdGhlXC10aGlyZFwtb2ZcLXRoZVwtdHdlbHZlXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivjmbsgPiBsaXZpbmdcLXNwYWNlXC1mb3JcLW9uZVwtZmFtaWx5XC1pblwtYW5jaWVudFwtdGltZXM7CivkuY4gPiBpbnRlcnJvZ2F0aXZlXC1vclwtZXhjbGFtYXRvcnlcLWZpbmFsXC1wYXJ0aWNsZTsKK+a+hCA+IHB1cmlmeVwtd2F0ZXJcLWJ5XC1hbGxvd2luZ1wtc2VkaW1lbnRcLXRvXC1zZXR0bGU7CivmrZ8gPiBhXC1maW5hbFwtcGFydGljbGVcLXVzZWRcLXRvXC1leHByZXNzXC1hZG1pcmF0aW9uOwor5qKiID4gcG9pbnRlZFwtdGlwXC1vZlwtc29tZXRoaW5nXC1sb25nXC1saWtlXC1hXC1icmFuY2g7Civlk5IgPiBhXC1zb3VuZFwtbWFkZVwtdG9cLWdldFwtYVwtaG9yc2VcLXRvXC1tb3ZlXC1mb3J3YXJkOwor55CuID4gb2N0YWdvbmFsXC1waWVjZVwtb2ZcLWphZGVcLXdpdGhcLWhvbGVcLWluXC1taWRkbGU7CivmrKQgPiBhXC1maW5hbFwtcGFydGljbGVcLXVzZWRcLXRvXC1leHByZXNzXC1hZG1pcmF0aW9uOwor5ZS8ID4gc3BlYWtpbmdcLWV2aWxcLlwtZ29iYmxpbmdcLXNvdW5kXC1tYWRlXC1ieVwtZHVja3M7CivpgrQgPiBuYW1lXC1vZlwtYVwtY2l0eVwtaW5cLXRoZVwtYW5jaWVudFwtc3RhdGVcLW9mXC1zb25nOwor5LaYID4gdGhlXC1zb3VuZFwtb2ZcLWNoZXdpbmdcLXNvbWV0aGluZ1wtZHJ5XC1hbmRcLWhhcmQ7CivkrrIgPiBob3JzZVwtd2l0aFwtbWl4ZWRcLWNvbG9yc1wtb2ZcLXllbGxvd1wtYW5kXC13aGl0ZTsKK+SmvCA+IHRvXC1kaWdcLWFcLXBhc3NhZ2VcLXRocm91Z2hcLWFcLW1vdW50YWluXC1vclwtaGlsbDsKK+SlkSA+IGFcLWtpbmRcLW9mXC1kZWNvcmF0aW9uXC1vblwtdGhlXC1oZWFkXC1vZlwtYVwtaG9yc2U7Civko68gPiB3aW5lXC1vclwtYW55XC10aGlja1wtZmx1aWRcLW9mXC10aGVcLWJlc3RcLXF1YWxpdHk7Civko5ogPiBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7Civko5kgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7CivkorogPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7CivkorggPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civkob8gPiBmcmFtZXNcLW9uXC10aGVcLXNpZGVzXC1hbmRcLWZyb250XC1vZlwtYVwtY2FycmlhZ2U7CivkobwgPiBmcmFtZXNcLW9uXC10aGVcLXNpZGVzXC1hbmRcLWZyb250XC1vZlwtYVwtY2FycmlhZ2U7CivknK8gPiBuYW1lXC1vZlwtYVwtdmFsbGV5XC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7CivkmL8gPiBzaGlydFwtb3JcLWFcLWphY2tldFwtd2l0aG91dFwtYW55XC1kZWNvcmF0ZWRcLWhlbTsKK+SWgiA+IGFuXC1lZGliXC1sZVwtd2F0ZXJcLXBsYW50XC1cLVwtXC1icmFzZW5pYVwtcHVycHVyY2E7Civkj64gPiB0aGVcLXNpZGVzXC1vZlwtdGhlXC10cnVua1wtZnJvbVwtYXJtcGl0c1wtdG9cLXJpYnM7CivkhY0gPiBzdHJhaWdodFwtdXB3YXJkXC1vZlwtdGhlXC13aGVhdFwtYW5kXC1yaWNlXC1wbGFudDsKK+SCuCA+IHRvXC1zbWFzaFwtb3JcLXRvXC1rbm9ja1wtdG9cLXBpZWNlc1wtb2ZcLXRoZVwtc3RvbmU7CivjvrwgPiB0b1wtc3VmZmVyXC1hXC1zdHJva2VcLW9mXC1wYXJhbHlzaXNcLW9yXC1hcG9wbGV4eTsKK+O+ryA+IHRvXC1zdWZmZXJcLWFcLXN0cm9rZVwtb2ZcLXBhcmFseXNpc1wtb3JcLWFwb3BsZXh5Owor472rID4gc2VlZHNcLW9mXC10aGVcLXBsYW50XC1hbGxpZWRcLXRvXC10aGVcLXdhdGVyXC1saWx5Owor47i3ID4gYVwta2luZFwtb2ZcLWNhdHRsZVwtd2l0aFwtdHdvXC1ob3Juc1wtc3RyYWlnaHRcLXVwOwor47asID4gYnJpZ2h0XC1saWdodHNcLWFuZFwtaWxsdW1pbmF0aW9uc1wtb2ZcLXRoZVwtZmlyZTsKK+O2oSA+IGJyaWdodFwtbGlnaHRzXC1hbmRcLWlsbHVtaW5hdGlvbnNcLW9mXC10aGVcLWZpcmU7CivjtoYgPiBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtaGViZWlcLXByb3ZpbmNlXC1oZW5nc2hhbjsKK+OuqyA+IGFcLXdvb2RlblwtYXJ0aWNhbFwtdG9cLWJlXC11c2VkXC10b1wtYWRqdXN0XC1hXC1ib3c7Civjq40gPiB0aGVcLXNjYWxsb3BzXC1hbG9uZ1wtdGhlXC1sb3dlclwtZWRnZVwtb2ZcLWFcLWZsYWc7Civjp48gPiB0b1wtY2FycnlcLW9uXC10aGVcLXNob3VsZGVyc29mXC10d29cLW9yXC1tb3JlXC1tZW47Civjm7YgPiBkb1wtbm90XC1jYXJlXC1hYm91dFwtYXBwZWFyYW5jZVwtYW5kXC1kZXBvcnRtZW50Owor45unID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor45qUID4gaW5zdHJ1bWVudFwtb2ZcLXRvcnR1cmVcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OZhyA+IHRoZVwtY2F0dGxlXC1hbmRcLWhvcnNlc1wtdHJhbXBsZWRcLW9uXC10aGVcLWZpZWxkOwor5aiFID4gbXV0dWFsXC10ZXJtXC1vZlwtYWRkcmVzc1wtdXNlZFwtYnlcLXNvbnNcLWluXC1sYXc7CivprqAgPiBhXC1raW5kXC1vZlwtc2hhZFwtd2l0aFwtYVwtaGVhZFwtbGlrZVwtYVwtc3R1cmdlb247Civog5EgPiB0aGVcLWxpbWJzXC5cLXdpbmdzXC1vZlwtYmlyZHNcLlwtbGVnc1wtb2ZcLWFuaW1hbHM7Civnra0gPiBhblwtYW5jaWVudFwtZGV2aWNlXC1mb3JcLXdvcmtpbmdcLXdpdGhcLW51bWJlcnM7Civmu50gPiBvbm9tYXRvcG9laWNcLWZvclwtdGhlXC1zb3VuZFwtb2ZcLWZhbGxpbmdcLXJhaW47Civlqa0gPiBtdXR1YWxcLXRlcm1cLW9mXC1hZGRyZXNzXC11c2VkXC1ieVwtc29uc1wtaW5cLWxhdzsKK+SztSA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZFwtd2l0aFwtY29sb3JmdWxcLWZlYXRoZXI7Civks5sgPiBhXC1zbWFsbFwtYnJvd25cLXNwZWNrbGVkXC1iaXJkXC1saWtlXC10aGVcLXF1YWlsOwor5KmRID4gaG9yaXpvbnRhbFwtZnJvbnRcLWJhclwtb25cLWFcLWNhcnRcLW9yXC1jYXJyaWFnZTsKK+SmkyA+IHRvXC13YWl0XC1mb3JcLXNvbWV0aGluZ1wtdG9oYXBwZW5cLWltbWVkaWF0ZWx5Owor5KOkID4gbmFtZVwtb2ZcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SjnSA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KOCID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivkoakgPiBzb3VuZFwtb2ZcLWNhcnRzXC1vclwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7CivkoY8gPiBob3Jpem9udGFsXC1mcm9udFwtYmFyXC1vblwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5KGMID4gaG9yaXpvbnRhbFwtZnJvbnRcLWJhclwtb25cLWFcLWNhcnRcLW9yXC1jYXJyaWFnZTsKK+SggCA+IHRvXC1zaXRcLWNyb3NzXC1sZWdnZWRcLWxpa2VcLWFcLWJ1ZGRoaXN0XC1wcmllc3Q7CivknKsgPiBuYW1lXC1vZlwtYVwtdmFsbGV5XC1pblwtdG9kYXknJ3NcLWhvYmVpXC1wcm92aW5jZTsKK+ScmiA+IHRvXC1zcGVha1wtcmVja2xlc3NseVwtb3JcLXdpdGhvdXRcLWZvcmV0aG91Z2h0Owor5JOlID4gc291bmRcLW9mXC10aGVcLXdyaWdnbGVkXC1pbnNlY3RzXC1vblwtdGhlXC1ncmFzczsKK+SQhCA+IHRoZVwtdW5zYXRpc2ZhY3Rpb25cLW9mXC1odW5nZXJcLXJlcXVpcmVzXC1tZWF0Owor5I20ID4gdG9cLXNxdWVlemVcLWFuZFwtdG9cLWNyb3dkXC1hZ2FpbnN0XC1lYWNoXC1vdGhlcjsKK+SNhiA+IGNvbnRhaW5lclwtZm9yXC1ncmFpbnNcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SHryA+IGFcLWtpbmRcLW9mXC1iYW1ib29cLXdpdGhcLXBhdHRlcm5zXC1vblwtdGhlXC1oZWFkOwor47yxID4gdG9cLW1hbmFnZVwtb3JcLXJlZ3VsYXRlXC10aGVcLWxlYXRoZXJcLW1hdGVyaWFsOwor46+KID4gZXZlblwtbWVhc3VyaW5nXC1ib2FyZFwtZm9yXC1wZWNrc1wtYW5kXC1idXNoZWxzOwor46iQID4gdG9cLXNsYXBcLWxpZ2h0bHlcLW9uXC10aGVcLWNsb3RoZXNcLW9yXC1jb3ZlcmxldDsKK+OipSA+IGFcLWJpZ1wtcGllY2VcLW9mXC1sb2dcLXRvXC1qb2luXC10aGVcLXRoaWNrXC1yb3BlczsKK+ePiCA+IGFuXC1vcm5hbWVudFwtYXR0YWNoZWRcLXRvXC1hXC13b21hbicnc1wtaGFpcnBpbjsKK+icgyA+IG1hcmluZVwtbW9uc3Rlclwtd2hpY2hcLWNhblwtY2hhbmdlXC1pdHNcLXNoYXBlOwor5pabID4gZHJ5XC1tZWFzdXJlXC1lcXVhbFwtdG9cLXNvbWVcLWZpdmVcLW9yXC10ZW5cLWRvdTsKK+mEryA+IGRpc3RyaWN0XC1pblwtZ2Fuc3VcLWR1cmluZ1wtdGhlXC10YW5nXC1keW5hc3R5Owor5bq5ID4gdGhlXC1sZW5ndGhcLW9mXC1vbmUnJ3NcLXR3b1wtb3V0c3RyZXRjaGVkXC1hcm1zOwor5o+yID4gdG9cLXNvcnRcLW91dFwtdGhlXC1zdGFsa3NcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor6Z+NID4gYVwtbGVhdGhlclwta25lZVwtcGFkXC13b3JuXC1kdXJpbmdcLXNhY3JpZmljZXM7Civpj54gPiBhXC1sYXJnZVwtYmVsbFwtdXNlZFwtYXNcLWFcLW11c2ljYWxcLWluc3RydW1lbnQ7Civou44gPiBhXC1icmFzc1wtcGFydHNcLWZvclwtYVwtY2FydFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6JmLID4gYXNwYXJhZ3VzXC1hXC12YXJpZXR5XC1vZlwtcmVkXC1zdGFsa2VkXC1taWxsZXQ7Civlu54gPiB0b1wtcHJlcGFyZVwtaG9yc2VzXC1hbmRcLWNoYXJpb3RzXC1mb3JcLWJhdHRsZTsKK+WplyA+IGFcLW5ld1wtYm9yblwtY2hpbGRcLXRoZVwtd2hpbXBlclwtb2ZcLWFuXC1pbmZhbnQ7CivlprogPiB3aWZlXC1vZlwtdGhlXC1sYXN0XC1ydWxlclwtb2ZcLXRoZVwteGlhXC1keW5hc3R5Owor5ZmgID4gc291bmRcLW1hZGVcLXRvXC1nZXRcLWFcLWhvcnNlXC10b1wtbW92ZVwtZm9yd2FyZDsKK+S4giA+IG9ic3RydWN0aW9uXC1vZlwtYnJlYXRoXC1hc1wtaXRcLXNlZWtzXC1yZWxlYXNlOwor5LC/ID4gYVwta2luZFwtb2ZcLXNtYWxsXC1maXNoXC1ncm93blwtaW5cLWZyZXNoXC13YXRlcjsKK+SivyA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1ob2JlaVwtcHJvdmluY2U7CivkoYggPiB0aGVcLWNyb3NzXC1iYXJcLWF0XC10aGVcLXNpZGVzXC1vZlwtYVwtY2Fycml0YWdlOwor5JSJID4gc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkXC1vZlwtZ3Jhc3NcLWFuZFwtdHJlZXM7CivkkZIgPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JCjID4gc291cFwtbWFkZVwtb2ZcLWN1dHRlZFwtbWVhdFwtbWl4ZWRcLXdpdGhcLWJsb29kOwor5IyuID4gc2lsa1wtZmFicmljc1wtd2l0aFwtdGhlXC1jb2xvclwtb2ZcLW5ld1wtbGVhdmVzOwor5ISoID4gZ3JhaW5zXC1wcm9kdWNpbmdcLW5laXRoZXJcLWZsb3dlclwtbm9yXC1mcnVpdDsKK+SEnSA+IHNob3dcLW5vXC1yZXNwZWN0XC10b1wtdGhlXC1zZXJ2aWNlXC1vZlwtd29yc2hpcDsKK+O8rSA+IHRvXC1zdGVhZHlcLWJ5XC1wdXR0aW5nXC1zb21ldGhpbmdcLXVuZGVybmVhdGg7Civju7IgPiBhXC1yaXRlXC1vclwtc2VydmljZVwtZm9yXC1iZWdpbm5pbmdcLW9mXC1hdXR1bW47CivjqqogPiB0b1wtdXNlXC1hXC13b29kZW5cLXBvbGVcLXRvXC1zdXBwb3J0XC1zb21ldGhpbmc7CivjoqYgPiB3b29kZW5cLXBvc3RcLW9yXC1waWxlXC1mb3JcLXRldGhlcmluZ1wtYW5pbWFsczsKK+OcoiA+IGFcLWJhZFwtdGVybVwtYnlcLXdoaWNoXC1vbmVcLWFkZHJlc3Nlc1wtYVwtd29tYW47CivjmpIgPiBjb25jZWFsZWRcLXRoZVwtc3RvbGVuXC1nb29kc1wtaW5cLW9uZScnc1wtZHJlc3M7CivouKMgPiB0b1wtc3R1bWJsZVwtYW5kXC1mYWxsXC1wcm9uZVwtc3RpZmZcLWluXC1kZWF0aDsKK+m7vCA+IGVtYnJvaWRlcmVkXC1vZmZpY2lhbFwtb3JcLXNhY3JpZmljaWFsXC1yb2JlOwor5bOEID4gYVwtcmFuZ2VcLW9mXC1wZWFrc1wtaW5cLXNoYW5kb25nXC1hbmRcLWppYW5nc3U7Civpl5cgPiBhXC1mcm9udGllclwtcGFzc1wtb3JcLWdhdGVcLXRvXC1zaHV0XC1vclwtY2xvc2U7Civpgr4gPiBhXC1mZXVkYWxcLXN0YXRlXC13aGljaFwtZXhpc3RlZFwtYlwuY1wuNzAwXC00Njk7CivolqkgPiB0cmFuc2xpdGVyYXRpb25cLW9mXC0nJ3NhdCcnXC1pblwtJydib2RoaXNhdHR2YTsKK+iGsCA+IHRvXC1jb29rXC1tZWF0XC1mb3JcLWFcLXNhY3JpZmljZVwtb3JcLW9mZmVyaW5nOwor55GMID4gYVwtd2hpdGVcLW9wYXF1ZVwtcXVhcnR6XC11c2VkXC1mb3JcLW9ybmFtZW50czsKK+a9nyA+IGxhbmRcLWltcHJlZ25hdGVkXC13aXRoXC1zYWx0XC1mcm9tXC10aGVcLXRpZGU7CivltqcgPiBhXC1yYW5nZVwtb2ZcLXBlYWtzXC1pblwtc2hhbmRvbmdcLWFuZFwtamlhbmdzdTsKK+S1niA+IGFuY2llbnRcLXB1bmlzaG1lbnRcLW9mXC10YXR0b29pbmdcLXRoZVwtZmFjZTsKK+SxuSA+IGFcLWNvbmRpbWVudFwtbWFkZVwtZnJvbVwtbWluY2VkXC1maXNoXC1zYWx0ZWQ7CivksLwgPiBhXC1jb25kaW1lbnRcLW1hZGVcLWZyb21cLW1pbmNlZFwtZmlzaFwtc2FsdGVkOwor5K+wID4gdXNlXC1hXC1oYWlyXC1waW5cLXRvXC1zZXRcLWFuZFwtZHJlc3NcLXRoZVwtaGFpcjsKK+SsryA+IHRvXC1oYXZlXC1jb25nZWVcLXdpdGhcLWZyaWVuZHNcLWluXC1vbGRcLXRpbWVzOwor5KGLID4gZGVjb3JhdGlvblwtb25cLXRoZVwtbmF2ZVwtb3JcLWh1Ylwtb2ZcLWFcLXdoZWVsOwor5J6DID4gdG9cLXJlbGlldmVcLW9yXC1naXZlXC1haWRcLXRvXC10aGVcLWRpc3RyZXNzZWQ7CivknakgPiB0b1wtcmVsaWV2ZVwtb3JcLWdpdmVcLWFpZFwtdG9cLXRoZVwtZGlzdHJlc3NlZDsKK+SYryA+IHRoZVwtbGFwZWxcLW9yXC1jb2xsYXJcLW9mXC1hXC1nYXJtZW50XC1vclwtcm9iZTsKK+SYpCA+IGFcLXN3b3JkXC1jb3ZlcmluZ1wtdG9cLXByb3RlY3RcLXRoZVwtc2NhYmJhcmQ7CivkkYwgPiBsd2hhdFwtaXNcLWxlZnRcLW92ZXJcLW9mXC10aGVcLWZvb2RcLVwtb3ZlcnJpcGU7Civki6cgPiBvcm5hbWVubnRzXC1mb3JcLXRoZVwtZnJvbnRhbFwtcGFydFwtb2ZcLXNob2VzOwor5IujID4gZGVjb3JhdGlvbnNcLXB1dFwtb25cLXRoZVwtbWFuZVwtb3JcLWhvcnNlaGFpcjsKK+SKvyA+IHRoZVwtbGFwZWxcLW9yXC1jb2xsYXJcLW9mXC1hXC1nYXJtZW50XC1vclwtcm9iZTsKK+SIlSA+IHRoZVwtbWV0YWxcLXRvbmd1ZVwtaW5cLXRoZVwtcmVlZFwtaW5zdHJ1bWVudHM7Civkg7QgPiBhXC13aGV0c3RvbmVcLXVzZWRcLXRvXC1ncmluZFwtcHJlY2lvdXNcLXN0b25lOwor5IG8ID4gdG9cLWxvb2tcLWJ1dFwtc2VlXC1ub3RoaW5nXC1cLVwtXC1hYnNlbnRcLW1pbmRlZDsKK+O/hiA+IGRhbWFnZVwtYnlcLXRoZVwtcGVzdHNcLXRvXC10aGVcLXJpY2VcLXNlZWRsaW5nOwor47u2ID4gYVwtamFkZVwtdHViZVwtd2l0aFwtd2hpdGVcLWFuZFwtbmF0dXJlXC1jb2xvcnM7Civju7AgPiBkZWNvcmF0ZWRcLWphZGVcLW9yXC1vcm5hbWVudFwtb25cLWFcLXNjYWJiYXJkOwor47uhID4gYVwtamFkZVwtcmluZ1wtd2l0aFwtYVwtc21hbGxcLXNlZ21lbnRcLWN1dFwtb2ZmOwor466GID4gZWF2ZXNcLXNwcm91dGluZ1wtZnJvbVwtdGhlXC1zdHVtcFwtb2ZcLWFcLXRyZWU7Civjq5QgPiBvbmVcLW9mXC10aGVcLWVpZ2h0XC1kaWFncmFtc1wtZm9yXC1kaXZpbmF0aW9uOwor46q7ID4gYVwta2luZFwtb2ZcLXV0ZW5zaWxcLXVzZWRcLXRvXC1sYWRsZVwtb3V0XC13aW5lOwor46mKID4gdG9cLXB1bGxcLXVwXC10aGVcLXNsZWV2ZXNcLWFuZFwtc2hvd1wtdGhlXC1hcm1zOwor46etID4gdG9cLWdldFwtc29tZXRoaW5nXC13aXRoXC1ib3RoXC1yYWlzaW5nXC1oYW5kczsKK+OnmiA+IHRoZVwtZ2VzdHVyZVwtb2ZcLXVzaW5nXC1hblwtaW5kZW50ZWRcLWNvbnRhaW47Civjp4YgPiB0b1wtY292ZXJcLXNvbWV0aGluZ1wtd2l0aFwtYVwtcGllY2VcLW9mXC1jbG90aDsKK+OhiyA+IGFcLWtpbmRcLW9mXC1oZWFkZHJlc3NcLWZvclwtbWFuXC1pblwtb2xkXC1jaGluYTsKK+OguCA+IHRoZVwtbGFwZWxcLW9yXC1jb2xsb3JcLW9mXC1hXC1nYXJtZW50XC1vclwtcm9iZTsKK+OcmiA+IGFcLWxvY2FsXC1nb3Zlcm5tZW50XC1wb3N0XC1pblwtYW5jaWVudFwtdGltZXM7CivjmZ8gPiBsb3dcLWx5aW5nXC1vblwtdGhlXC1zaWRlXC1vZlwtYVwtcml2ZXJcLW9yXC1sYWtlOwor5ZaPID4gcmVzcGVjdGZ1bFwtcmVwbHlcLW9mXC1hc3NlbnRcLXRvXC1zdXBlcmlvcnM7CivnrI8gPiB0YWJsZXRcLWhlbGRcLWJ5XC1zb21lb25lXC1oYXZpbmdcLWF1dGhvcml0eTsKK+i2vCA+IGNhbGxvdXNcLXNraW5cLW9uXC1oYW5kc1wtb3JcLWZlZXRcLlwtYmxpc3RlcnM7CivppZ0gPiB0b1wtZmVlZFwtYW5cLWluZmFudFwtYnlcLWhhbmRcLXN0ZWFtZWRcLWJyZWFkOwor6KONID4gYVwtYm9yZGVyXC1vclwtYmFuZFwtb25cLXRoZVwtZWRnZVwtb2ZcLWFcLWRyZXNzOwor57GqID4gYVwtd2Vpclwtb2ZcLWJhbWJvb1wtdG9cLWNhdGNoXC1maXNoXC1vclwtY3JhYnM7CivnmLIgPiBzcGFzbXNcLW9yXC1jb252dWxzaW9uc1wtaW5cLXlvdW5nXC1jaGlsZHJlbjsKK+eRsiA+IHRpbmtsaW5nXC1zb3VuZFwtdGlua2xpbmdcLW9mXC1wZW5kYW50XC1nZW1zOwor5bydID4gdGhlXC1wYXJ0XC1vZlwtYVwtYm93XC1ncmFzcGVkXC13aGVuXC1zaG9vdGluZzsKK+SlnCA+IHByb3RlY3RpdmVcLW1ldGFsXC1vblwtdGhlXC1heGlzXC1vZlwtYVwtd2hlZWw7CivkmZYgPiBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaWluZmFudFwtb25cLXRoZVwtYmFjazsKK+SZgCA+IGFcLWNsb3RoXC10b1wtY2FycnlcLWFuXC1paW5mYW50XC1vblwtdGhlXC1iYWNrOwor5I+rID4gaW5cLWJldHdlZW5cLW9mXC10aGVcLWFiZG9tZW5cLWFuZFwtdGhlXC1zcGluZTsKK+SNiSA+IHRyYWNlc1wtb3JcLW1hcmtzXC1vZlwtaW5jb21wbGV0ZVwtb3JcLWRhbWFnZTsKK+SMuCA+IGZpbmVcLXNpbGtcLWZhYnJpY1wtb2ZcLWJyaWdodFwtd2hpdGVcLWNvbG91cjsKK+SLvyA+IGFcLWRlY29yYXRpdmVcLWtub3RcLW1hZGVcLW9mXC1jb2xvcmZ1bFwtc2lsazsKK+SInCA+IGFcLXRocmVhZFwtdXNlZFwtYnlcLWNhcnBlbnRlcnNcLWZvclwtbWFya2luZzsKK+SIhiA+IGFcLXNoYWxsb3dcLWFuZFwtbG9uZ1wtc2hhcGVkXC1iYW1ib29cLWJhc2tldDsKK+O/uSA+IGp1dHRpbmdcLW9uXC10aGVcLWVwaWRlcm1pc1wtb3JcLXRoZVwtY3V0aWNsZTsKK+O8qyA+IGVhcnRoZW53YXJlXC1vclwtcG90dGVyeVwtd2l0aFwtYmlnXC1vcGVuaW5nOwor47W7ID4gdG9cLXBlcnNwaXJlXC1mcm9tXC1lbWJhcnJhc3NtZW50XC1vclwtc2hhbWU7CivjrakgPiBhXC1raW5kXC1vZlwtdHJlZVwtY2FuXC1iZVwtdXNlZFwtYXNcLWR5ZVwtc3R1ZmY7Civjo5kgPiB0b1wtd2Fsa1wtaW5cLWFuXC1lYXN5XC1hbmRcLWxlaXN1cmVseVwtbWFubmVyOwor46KqID4gdG9cLWRyYXdcLWFcLWZ1bGxcLWJvd1wtdG9cLWFpbVwtYXRcLXRoZVwtdGFyZ2V0Owor45iKID4gdGhlXC1hYnJ1cHRcLWFuZFwtaGFzdHlcLXNvdW5kXC1vZlwtdGhlXC1jcm93ZDsKK+OWriA+IGFuXC1pbnRlcmplY3Rpb25cLXVzZWRcLWluXC1wb2Vtc1wtYW5kXC1zb25nczsKK+OUriA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLXdoaWNoXC1sb29rc1wtbGlrZVwtYVwtcmF0Owor5ZWnID4gaW50ZXJqZWN0aW9uXC1vZlwtYXBwcm92YWxcLW9yXC1hZG1pcmF0aW9uOwor5o26ID4gdG9cLXByZXNzXC1kb3duXC1oZWF2aWx5XC13aXRoXC10aGVcLWZpbmdlcnM7CivlgqMgPiB0aGVcLWRhaVwtbWlub3JpdHlcLWxpdmluZ1wtaW5cLXNvdXRoXC1jaGluYTsKK+m4qSA+IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtc2VjcmV0YXJ5XC1mYWxjb247Civmt50gPiBuYW1lXC1vZlwtYW5cLWFmZmx1ZW50XC1vZlwtdGhlXC1wb3lhbmdcLWxha2U7Civpg4UgPiB0b1wtZ29cLXVwXC10b1wuXC1mbG91cmlzaGluZ1wtYVwtc3VwZXJsYXRpdmU7CivovasgPiBhXC1ibG9ja1wtdGhhdFwta2VlcHNcLWFcLXdoZWVsXC1mcm9tXC1tb3Zpbmc7CivltrcgPiBhXC1yYW5nZVwtb2ZcLW1vdW50YWluc1wtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+mssiA+IHR5cGVcLW9mXC1jYWxkcm9uXC13aXRoXC10aHJlZVwtaG9sbG93XC1sZWdzOwor5YiWID4gY3V0dGluZ1wtb2ZmXC1mZWV0XC1hc1wtZm9ybVwtb2ZcLXB1bmlzaG1lbnQ7CivnqbggPiB0aGVcLWdsb29tXC1vZlwtdGhlXC1ncmF2ZVwtYVwtdG9tYlwtb3JcLWdyYXZlOwor6JiFID4gYVwtZnJhZ3JhbnRcLXBsYW50XC10aGVcLXJvb3RcLWlzXC1tZWRpY2luYWw7CivptIYgPiBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXNlY3JldGFyeVwtZmFsY29uOwor6amGID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGluZ1wtYnVkZGhpc3RcLWJvb2tzOwor6aePID4gb2Zmc3ByaW5nXC1vZlwtYVwtc3RhbGxpb25cLWFuZFwtYVwtc2hlXC1tdWxlOwor6YmMID4gdGhlXC1iZWxsc1wtb25cLXRoZVwtY2FydFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6LuUID4gYVwtYmxvY2tcLXRoYXRcLWtlZXBzXC1hXC13aGVlbFwtZnJvbVwtbW92aW5nOwor6KmnID4gdG9cLWV4YW1pbmVcLWludG9cLWp1ZGljaWFsbHlcLXRvXC1maW5kXC1vdXQ7CivntrMgPiBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaW5mYW50XC1vblwtdGhlXC1iYWNrOwor57aWID4gdGhlXC1oYW5naW5nXC1mbGFwXC1pblwtdGhlXC1mcm9udFwtb2ZcLWFcLWhhdDsKK+elqyA+IHRyaWVubmlhbFwtc2FjcmlmaWNlXC10b1wtb25lJydzXC1hbmNlc3RvcnM7Civno7sgPiBhXC10cmlidXRhcnlcLW9mXC10aGVcLXdlaVwtcml2ZXJcLWluXC1zaGFueGk7CivmlrQgPiB0aGVcLXNvdW5kXC1vZlwtd2F0ZXJcLWZsb3dpbmdcLWFtb25nXC1yb2NrczsKK+W0kSA+IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdcLXN1XC1wcm92aW5jZVwuOwor5ZiWID4gaW50ZXJqZWN0aW9uXC1vZlwtYXBwcm92YWxcLW9yXC1hZG1pcmF0aW9uOwor5LCYID4gdG9cLWtpbGxcLWJ5XC1oYW5naW5nXC1vclwtdG9cLXN0cmFuZ3VsYXRpb247CivkrpcgPiB3aGl0ZVwtZnJvbVwtZm9yZWhlYWRcLXRvXC1saXBzXC1vZlwtYVwtaG9yc2U7CivkqrIgPiBhbmNpZW50XC1wdW5pc2htZW50XC1vZlwtc2hhdmluZ1wtdGhlXC1oZWFkOwor5Km4ID4gZmluZVwtd29vbGVuXC1ibGFua2V0XC1vblwtdG9wXC1vZlwtYVwtc2FkZGxlOwor5KmrID4gYVwtdW5pdFwtdG9cLWNvdW50XC1zaG9lc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor5KaFID4gYVwta2luZFwtb2ZcLXdlYXBvblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KWQID4gY29va2luZ1wtdXRlbnNpbHNcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SihyA+IGFcLXNvblwtd2hvXC1pc1wtbm90XC1zb1wtZ29vZFwtYXNcLWhpc1wtZmF0aGVyOwor5JuXID4gdG9cLXByeVwtaW50b1wtb3JcLWV4cG9zZVwtYW5vdGhlcicnc1wtc2VjcmV0Owor5JqFID4gdG9cLWxvb2tcLWFmdGVyXC1ob21lXC1vclwtZG9tZXN0aWNcLWFmZmFpcnM7CivkmKggPiBzaG9ydFwtbGVnZ2luZ3NcLWRyYXduXC1vdmVyXC10aGVcLXRyb3VzZXJzOwor5Ja/ID4gYVwta2luZFwtb2ZcLWNsYW1cLXdpdGhcLXRoaWNrXC13aGl0ZVwtc2hlbGxzOwor5Ja9ID4gYVwta2luZFwtb2ZcLWNsYW1cLXdpdGhcLXRoaWNrXC13aGl0ZVwtc2hlbGxzOwor5JWwID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXJoaXpvbWVcLW9mXC13aW5kXC13ZWVkOwor5JOtID4gd2VlZFwtb3JcLWdyYXNzXC13aXRoXC1uYXJyb3dcLXRoaWNrXC1nbGFkZXM7CivkjbsgPiB5b3VuZ1wtZ29hdFwtb2ZcLXNoZWVwXC11bmRlclwtb25lXC15ZWFyXC1vbGQ7CivkjaYgPiBhXC1raW5kXC1vZlwtdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjLkgPiBhXC1nYXJtZW50XC1vZlwtb25lXC1jb2xvdXJcLXdpdGhcLW5vXC1saW5pbmc7CivkhKogPiBoYW5naW5nXC1kb3duXC1vZlwtdGhlXC1lYXJzXC1vZlwtdGhlXC1ncmFpbnM7CivkhI0gPiB5ZWFyXC1lbmRcLXNhY3JpZmljZVwtb2ZcLXRoZVwtemhvdVwtZHluYXN0eTsKK+O9oCA+IGNvbm5lY3Rpb25cLW9mXC10aGVcLWRpdGNoZXNcLW9yXC13YXRlcndheXM7CivjvK4gPiB0b1wtcnViXC1vdXRcLXRoZVwtZmlsdGhcLXdpdGhcLWJyb2tlblwtdGlsZXM7Civjq6kgPiB0aGVcLWZpcnN0XC1vZlwtdGhlXC1mb3VyXC1zZWFzb25cLVwtXC1cLXNwcmluZzsKK++lpCA+IGFcLXRyaWJ1dGFyeVwtb2ZcLXRoZVwtd2VpXC1yaXZlclwtaW5cLXNoYW54aTsKK+OknSA+IHBhbHBpdGF0aW9uXC1vclwtZmx1dHRlcmluZ1wtb2ZcLXRoZVwtaGVhcnQ7CivjpJEgPiBwYWxwaXRhdGlvblwtb3JcLWZsdXR0ZXJpbmdcLW9mXC10aGVcLWhlYXJ0Owor45+MID4gYVwtbW91bnRhaW5cLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7CivjlK8gPiBhXC1sYXJnZVwtYmFza2V0XC1mb3JcLWhvbGRpbmdcLWNvb2tlZFwtcmljZTsKK+esmSA+IHNtYWxsXC1nb3VyZFwtc2hhcGVkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5ruVID4gYW5cLWFuY2llbnRcLXN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6ZWbID4gbGFyZ2VcLWJlbGxcLXVzZWRcLWFzXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor6K61ID4gYW5cLWludGVyamVjdGlvblwtdXNlZFwtZXhwcmVzc1wtc3VycHJpc2U7Civms5QgPiB3YXRlclwtZnJvbVwtd2FzaGluZ1wtcmljZVwtdG9cLWJvaWxcLXRoaWNrOwor55iQID4gdG9cLWRpZVwtaW5cLXByaXNvblwtZnJvbVwtY29sZFwtYW5kXC1odW5nZXI7Civmo7wgPiBiZWFtc1wtaW5cLXRoZVwtcm9vZlwtb2ZcLWFcLWhvdXNlXC1jb25mdXNlZDsKK+m6hSA+IGFcLXNtYWxsXC1zcG90dGVkXC1kZWVyXC1mb3VuZFwtaW5cLW5cLmNoaW5hOwor6Zi8ID4gdGhlXC1zdGVwc1wtbGVhZGluZ1wtdG9cLXRoZVwtZWFzdGVyblwtZG9vcjsKK+i8lyA+IGFcLWNyb3NzXC1iYXJcLWF0XC1lbmRcLW9mXC1hXC1jYXJyaWFnZVwtcG9sZTsKK+ipjiA+IGludGVyamVjdGlvblwtdXNlZFwtdG9cLWV4cHJlc3NcLXN1cnByaXNlOwor57yMID4gY29hcnNlXC1jb3R0b25cLWNsb3RoXC11c2VkXC1mb3JcLW1vdXJuaW5nOwor57emID4gY29hcnNlXC1jb3R0b25cLWNsb3RoXC11c2VkXC1mb3JcLW1vdXJuaW5nOwor56GcID4gdGhlXC1zb3VuZFwtb2ZcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor54qJID4gYW5cLW94XC13aXRoXC15ZWxsb3dcLWhhaXJcLWFuZFwtYmxhY2tcLWxpcHM7CivnhZ0gPiB0d2lzdGVkXC1wYXBlclwtZm9yXC1saWdodGluZ1wtY2lnYXJldHRlczsKK+W4rCA+IHRoZVwtc2tpcnRcLW9mXC1hXC1sYWR5JydzXC1kcmVzc1wtcGV0dGljb2F0Owor5bWgID4gYVwtdmFsbGV5XC13aXRoXC1hXC1zdHJlYW1cLWluXC1pdFwuXC1hXC1nb3JnZTsKK+SxlyA+IGFcLWxvbmdcLW5hcnJvd1wtZmlzaFwtdHJpY2hpdXJ1c1wtYXJtYXR1czsKK+SxlCA+IGFcLWxvbmdcLW5hcnJvd1wtYW5kXC1zaWx2ZXJcLWNvbG9yZWRcLWZpc2g7CivkqpMgPiBhXC1tZXRhbFwtb3JuYW1lbnRcLW9uXC1zb21lXC1raW5kXC1vZlwtYmVsdDsKK+SomSA+IHRvXC1yYWluXC1jYXRzXC1hbmRcLWRvZ3NcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SmiiA+IGFuXC1hcHBsaWFuY2VcLWZvclwtd2Fsa2luZ1wtb25cLXRoZVwtc2FuZHM7CivkpYIgPiB0aGVcLXNoYXJwXC1lZGdlXC1vZlwtYVwtc2hvdmVsXC1vclwtYVwtc3BhZGU7CivkoZUgPiB0aGVcLXJlYXJcLXBsYXRmb3JtXC1vZlwtYVwtbGlnaHRcLWNhcnJpYWdlOwor5JyUID4gdG9cLXNwZWFrXC1vblwtdGhlXC1pZGVhc1wtb2ZcLXNvbWVvbmVcLWVsc2U7CivklqAgPiBhXC1raW5kXC1vZlwtbGl6YXJkXC1mb3VuZFwtaW5cLWRhbXBcLXBsYWNlczsKK+SWnCA+IHRoZVwtZmlnaHRpbmdcLXNvdW5kXC1tYWRlXC1ieVwtdHdvXC10aWdlcnM7CivkjpIgPiBmbHlpbmdcLXF1aWNrbHlcLWFuZFwtdG9cLWF0dGFja1wtc3VkZGVubHk7Civki4ogPiBkZWNvcmF0aW9uc1wtb2ZcLXRoZVwtZW1wZXJvcicnc1wtY2FycmlhZ2U7CivkgJsgPiB0b1wtbG9va1wtZmFyXC13aXRoXC10aGVcLWV5ZXNcLWhhbGZcLWNsb3NlZDsKK+O8qCA+IGFcLXdhdGVyXC1qYXJcLXdpdGhcLWVhcnNcLWZvclwtY2FycnlpbmdcLWl0Owor47uOID4gYVwtbGFyZ2VcLWhvcml6b250YWxcLW11c2ljYWxcLWluc3RydW1lbnQ7CivjuqogPiBhblwtdW5jYXJ2ZWRcLW9mXC11bnBvbGlzaGVkXC1qYWRlXC1vclwtZ2VtOwor47W/ID4gZW5kbGVzc2x5XC1sb25nXC1vclwtdmFzdFwtd2F0ZXJcLWN1cnJlbnRzOwor47SpID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+OvmCA+IGFcLXNtYWxsXC13b29kZW5cLXN0YW5kXC1oYXZpbmdcLWZvdXJcLWxlZ3M7CivjpI0gPiBuZXZlclwtcmV2ZWFsXC1vbmUnJ3NcLWZlZWxpbmdcLW9yXC1lbW90aW9uOwor46OgID4gYVwtcm9wZVwtZGVjb3JhdGVkXC13aXRoXC1icm9uemVcLW9ybmFtZW50Owor46GRID4gYW5jaWVudFwtbW91cm5pbmdcLXR1cmJhblwtd29yblwtYnlcLXdvbWVuOwor46CRID4gaGlnaFwtbW91bnRhaW5cLXN0ZWVwXC1ydWdnZWRcLWFuZFwtdW5ldmVuOwor46CEID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwteXVubmFuXC1wcm92aW5jZTsKK+OggSA+IGlycmVndWxhclwtb3V0bGluZVwtb2ZcLWFcLXJhbmdlXC1vZlwtaGlsbHM7Civjn5ogPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor456/ID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+OeuSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivjmrYgPiB3aWZlXC1vZlwtb25lJydzXC1odXNiYW5kJydzXC1lbGRlclwtYnJvdGhlcjsKK+OYiCA+IGFibGVcLXRvXC10YWtlXC1hXC1jb3JyZWN0XC12aWV3XC1vZlwtdGhpbmdzOwor45ewID4gdGhlXC1jaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247Civjkr8gPiBhXC1raW5kXC1vZlwtdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZTsKK+W8gSA+IGNvbmljYWxcLWNhcFwtd29yblwtZHVyaW5nXC16aG91XC1keW5hc3R5Owor6YWJID4gdGVudGhcLW9mXC10aGVcLXR3ZWx2ZVwtZWFydGhseVwtYnJhbmNoZXM7Civml4wgPiBiYW5uZXJcLW9yXC1mbGFnXC1hZG9ybmVkXC13aXRoXC1mZWF0aGVyczsKK+ihriA+IGNlcmVtb25pYWxcLWRyZXNzXC13b3JuXC1ieVwtdGhlXC1lbXBlcm9yOwor5rqnID4gcml2ZXJcLWluXC1hbmh1aVwtYW5kXC1qaWFuZ3N1XC1wcm92aW5jZXM7Civns40gPiBmb29kXC1tYWRlXC1vZlwtY3J1c2hlZFwtYW5kXC1jb29rZWRcLXJpY2U7CivmrpsgPiB0b1wtcHV0XC10b1wtZGVhdGhcLXRvXC1pbXByaXNvblwtZm9yXC1saWZlOwor54uNID4gc3BlY2llc1wtb2ZcLWRlZXJcLWZvdW5kXC1pblwtbm9ydGhcLWNoaW5hOwor57uCID4gcmliYm9uXC1vclwtY29yZFwtdXNlZFwtYXR0YWNoXC1vcm5hbWVudHM7Civno4kgPiB0aGVcLXN0b25lXC1iYXNlXC1vclwtcGxpbnRoXC1vZlwtYVwtcGlsbGFyOwor6JW5ID4gaXBvbW9lYVwtYXF1YXRpY2FcLXVzZWRcLWFzXC1hXC12ZWdldGFibGU7CivpvYggPiBjb2xkXC1pblwtdGhlXC1oZWFkXC1jYXRhcnJoXC1vZlwtdGhlXC1ub3NlOwor6bm7ID4gaW1wdXJlXC1jYXJib25hdGVcLW9mXC1zb2RpdW1cLW9mXC1uYXRyb247CivptqIgPiBhXC1iaXJkXC13aGljaFwtZnJlcXVlbnRzXC10aGVcLXNlYVwtc2hvcmU7Civpg6ogPiBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivovZ4gPiBhXC12ZWhpY2xlXC1mb3JcLXRyYW5zcG9ydGluZ1wtcHJpc29uZXJzOwor6Ly5ID4gdHdvXC1waWVjZXNcLW9mXC13b29kXC11bmRlcm5lYXRoXC1hXC1jYXJ0Owor6KKeID4gY2VyZW1vbmlhbFwtZHJlc3NcLXdvcm5cLWJ5XC10aGVcLWVtcGVyb3I7Civoir8gPiBncmFzc1wtd2hpY2hcLWhhc1wtYmVlblwtY3V0XC1hbmRcLXJlZ3Jvd247Civog6wgPiBhXC1kaXNlYXNlJydzXC1uYW1lXC1pblwtY2hpbmVzZVwtbWVkaWNpbmU7CivntLEgPiByaWJib25cLW9yXC1jb3JkXC11c2VkXC1hdHRhY2hcLW9ybmFtZW50czsKK+emiiA+IHNlbWlcLWFubnVhbFwtY2VyZW1vbnlcLW9mXC1wdXJpZmljYXRpb247CivmiKUgPiBhXC1zbWFsbFwtc3RlZWx5YXJkXC1mb3JcLXdlaWdoaW5nXC1tb25leTsKK+WvjSA+IHVzZWRcLWFzXC1hXC10ZXJtXC1vZlwtY29tcGFyaXNvblw6XC1yYXRoZXI7CivlkpcgPiB2ZXJiYWxcLXBhcnRpY2xlXC1vZlwtcGVyZmVjdGl2ZVwtYXNwZWN0Owor5LixID4gY2hpbGQnJ3NcLWhhaXJzdHlsZVwtYm91bmRcLWluXC10d29cLXR1ZnRzOwor5K6kID4gb25lXC1vZlwtdGhlXC0zNlwtZ2FyZGVuc1wtaW5cLWhhblwtZHluYXN0eTsKK+SsrSA+IG5hbWVcLW9mXC1hXC1sZWdlbmRhcnlcLWZlcm9jaW91c1wtYW5pbWFsOwor5KqUID4gY3Jvc3NcLWJhclwtb2ZcLXdvb2RcLXVuZGVyXC10aGVcLWNhcnJpYWdlOwor5KekID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KSMID4gYVwta2luZFwtb2ZcLXdpbmVcLWJlXC1icmV3ZWRcLWZyb21cLWdyYWluczsKK+SgtyA+IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWhlaWdodFwtaW5cLWFcLXBlcnNvbjsKK+SghSA+IGhhbmRzXC1hbmRcLWZlZXRcLWNoYXBwZWRcLWZyb21cLXRoZVwtY29sZDsKK+SdpCA+IGFcLXByaW1pdGl2ZVwtdHJpYmVcLWluXC1zb3V0aHdlc3RcLWNoaW5hOwor5J2fID4gYVwtZmllcmNlXC1tYW5cLWVhdGluZ1wtYW5pbWFsXC1pblwtbGVnZW5kOwor5J2dID4gYW5cLWV4Y2xhbWF0aW9uXC1pbmRpY2F0aW5nXC1hZG1pcmF0aW9uOwor5JuTID4gYW5cLW9mZmljaWFsXC1wb3NpdGlvblwtaW5cLWZvcm1lclwtdGltZXM7CivkmpggPiB0aGVcLWxvbmdcLWFuZFwtdXByaWdodFwtaG9ybnNcLW9mXC1jYXR0bGU7CivklpIgPiBlYXJ0aGVud2FyZVwtd2l0aFwtdGhlXC1zaGFwZVwtb2ZcLWFcLWJlYW47CivklY4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzXC1wZXJlbm5pYWw7Civkk5EgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzXC1kdWNrd2VlZHM7CivkkZcgPiB0b1wtcG91bmRcLWluXC1vcmRlclwtdG9cLXJlbW92ZVwtdGhlXC1odXNrOwor5JGUID4gdG9cLXBvdW5kXC1pblwtb3JkZXJcLXRvXC1yZW1vdmVcLXRoZVwtaHVzazsKK+SQsSA+IHRvXC1waWNrXC10aGVcLW1lYXRcLWluXC1iZXR3ZWVuXC1vZlwtYm9uZXM7Civkj4EgPiB1bmFibGVcLXRvXC1oZWFyXC1kaXN0aW5jdGx5XC1vclwtY2xlYXJseTsKK+SKoCA+IHRvXC1naXZlXC1hXC1zdXBwbHlcLWZcLWdyYWluXC1mb3JcLXJhdGlvbnM7CivkiZ8gPiBhXC1iYW1ib29cLWJhc2tldFwtdXNlZFwtdG9cLWNhdGNoXC1maXNoZXM7CivkiLAgPiBhXC1icnVzaFwtZm9yXC13YXNoaW5nXC1raXRjaGVuXC11dGVuc2lsczsKK+SHvCA+IGFcLWJhbWJvb1wtdmVzc2VsXC11c2VkXC10b1wtY2F0Y2hcLWZpc2hlczsKK+SEqyA+IGFcLWtpbmRcLW9mXC1zb3JnaHVtXC13aXRoXC13aGl0ZVwtc3Byb3V0czsKK+SEiCA+IHNhY3JpZmljZVwtdG9cLWhhcHBpbmVzc1wtYW5kXC1nb29kXC1sdWNrOwor5IOkID4gYmxhY2tcLWNvbG9yZWRcLWdyaW5kc3RvbmVcLW9yXC13aGVzdG9uZTsKK+SDjiA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtXC1zbWFsbFwtcGllY2VcLW9mXC1jb2FsOwor5IK/ID4gdG9cLXBvdW5kXC1pblwtb3JkZXJcLXRvXC1yZW1vdmVcLXRoZVwtaHVzazsKK+SCuSA+IHNvdW5kXC1vZlwtdGhlXC1mYWxsaW5nXC1waWVjZXNcLW9mXC1yb2NrczsKK+SBtiA+IHRvXC1sb29rXC1hdFwtc29tZXRoaW5nXC13aXRob3V0XC13aW5raW5nOwor5IG1ID4gbmV3Ym9yblwtYmFieVwtd2l0aFwtdGhlXC1leWVsaWRzXC1jbG9zZWQ7CivjvYUgPiB2ZXNzZWxcLWZvclwtY2VyZW1vbnlcLWluXC1hbmNpZW50XC10aW1lczsKK+O4uSA+IGNhdHRsZVwtd2l0aFwtd2hpdGVcLXN0cmlwZVwtb25cLXRoZVwtYmFjazsKK+O4lyA+IG5vdFwtYVwtcmVhbFwtZmF0aGVyXC1vclwtYVwtbmF0dXJlXC1mYXRoZXI7Civjs5ggPiBhXC1mb3VudGFpblwtb3JcLXNwcmluZ1wtZmxvd3NcLWRvd253YXJkczsKK+OuryA+IHdob2xlXC1waWVjZVwtb2ZcLW9yXC11bmJyb2tlblwtZmlyZXdvb2RzOwor466cID4gYVwtYmxvY2tzXC1lbmdyYXZlZFwtZm9yXC1ob2xkaW5nXC10aGluZ3M7Civjq6ogPiB0b1wtcG91bmRcLWluXC1vcmRlclwtdG9cLXJlbW92ZVwtdGhlXC1odXNrOwor45+8ID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor456UID4gdGhlXC11cHJpZ2h0XC1iYXJcLWZvclwtZmFzdGVuaW5nXC1hXC1kb29yOwor452eID4gcHJldGVuZFwtdG9cLWJlXC1kZWxpY2F0ZVwtYW5kXC1iZWF1dGlmdWw7CivjnLkgPiBuYW1lXC1vZlwtYVwtZm9sa1wtc29uZ1wtaW5cLWFuY2llbnRcLXRpbWVzOwor45qBID4gdGhlXC1sb25nXC10YWlsXC1mZWF0aGVyc1wtd2hpY2hcLWN1cmxcLXVwOwor6ZiuID4gYW5jaWVudFwtbXVzaWNhbFwtaW5zdHJ1bWVudFw6XC1zdXJuYW1lOwor5ZaUID4gZGVzY3JpcHRpdmVcLW9mXC1jcnlpbmdcLW9yXC1vZlwtY3Jvd2luZzsKK+eQjyA+IHZlc3NlbFwtdXNlZFwtdG9cLWhvbGRcLWdyYWluXC1vZmZlcmluZ3M7CivpgpUgPiBmb3JtZXJcLW9yXC1saXRlcmFyeVwtbmFtZVwtZm9yXC1uYW5uaW5nOwor6a2RID4gYVwtbW91bnRhaW5cLWRlbW9uXC1yZXNlbWJsaW5nXC1hXC10aWdlcjsKK+aYtiA+IGFcLWxvbmdcLWRheVwuXC1icmlnaHRcLlwtZXh0ZW5kZWRcLlwtY2xlYXI7CivnvKcgPiBhXC1jaGFpblwtb3JcLXJvcGVcLXVzZWRcLWJpbmRcLWNyaW1pbmFsczsKK+ierSA+IGFcLWRyYWdvblwtd2hvc2VcLWhvcm5zXC1oYXZlXC1ub3RcLWdyb3duOwor6b6AID4gbG9zZVwtYmFieVwtdGVldGhcLWFuZFwtZ2V0XC1hZHVsdFwtdGVldGg7CivogpwgPiB0b1wtc2FjcmlmaWNlXC1vblwtdHdvXC1zdWNjZXNzaXZlXC1kYXlzOwor6YKXID4gYW5cLWFuY2llbnRcLXBsYWNlXC1pblwtdGhlXC1zdGF0ZVwtb2ZcLXd1Owor6b6GID4gbG9zZVwtYmFieVwtdGVldGhcLWFuZFwtZ2V0XC1hZHVsdFwtdGVldGg7CivpvaAgPiBsb3NlXC1iYWJ5XC10ZWV0aFwtYW5kXC1nZXRcLWFkdWx0XC10ZWV0aDsKK+m9lCA+IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6ZCkID4gaHVnZVwtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnM7Civop60gPiBvbmVcLXR1cm5pbmdcLXVwXC1hbmRcLW9uZVwtdHVybmluZ1wtZG93bjsKK+iksSA+IHRvXC1jYXJyeVwtaW5cLXRoZVwtYm9zb21cLW9yXC10aGVcLXNsZWV2ZTsKK+ikoiA+IHRvXC1jYXJyeVwtaW5cLXRoZVwtYm9zb21cLW9yXC10aGVcLXNsZWV2ZTsKK+iJnCA+IGFcLWxvbmdcLW5hcnJvd1wtdmVzc2VsXC13aXRoXC10d29cLW1hc3RzOwor6Ie/ID4gdG9cLXNlcGFyYXRlXC10aGVcLWdyYWluXC1mcm9tXC10aGVcLWh1c2s7CivnuLIgPiBhXC1jaGFpblwtb3JcLXJvcGVcLXVzZWRcLWJpbmRcLWNyaW1pbmFsczsKK+e1sCA+IHdoaXRlXC1oZW1wZW5cLWNsb3RoXC13b3JuXC1ieVwtbW91cm5lcnM7CivnoqogPiBzdG9uZVwtc2xhYlwtdXNlZFwtZm9yXC13YXNoaW5nXC1jbG90aGVzOwor55uHID4gd2h5XC1ub3RcP1wtd291bGRcLWl0XC1ub3RcLWJlXC1iZXR0ZXJcLXRvXD87Civmu6sgPiB3YXRlclwtaW5cLXdoaWNoXC1yaWNlXC1oYXNcLWJlZW5cLWJvaWxlZDsKK+aqkSA+IGxvZ3NcLXJvbGxlZFwtZG93blwtaW5cLWRlZmVuc2VcLW9mXC1jaXR5Owor5qOzID4gc21hbGxcLXBpbGxhcnNcLXRoYXRcLXN1cHBvcnRcLXRoZVwtcm9vZjsKK+W4lyA+IGFcLW11bHRpY29sb3JlZFwtcHJvcFwtdXNlZFwtaW5cLWRhbmNpbmc7CivlmKAgPiB0aGVcLWNoaXJwaW5nXC1vZlwtYmlyZHNcLWxvdWRcLWxhdWdodGVyOwor5ZSEID4gZmluYWxcLXBhcnRpY2xlXC1vZlwtYXNzZXJ0aW9uXC1wYXRoYWthOwor5YC7ID4gcGhvbmV0aWNcLXVzZWRcLWluXC1rb3JlYW5cLXBsYWNlXC1uYW1lczsKK+S1uiA+IGJvdW5kYXJ5XC1iZXR3ZWVuXC1hZ3JpY3VsdHVyYWxcLWxhbmRzOwor5LW5ID4gaW5zZWN0c1wtdGhhdFwtYXJlXC1pbmp1cmlvdXNcLXRvXC1jcm9wczsKK+StjSA+IHRvXC1saXZlXC13aXRoXC1hbm90aGVyXC1hdFwtaGlzXC1leHBlbnNlOwor5KylID4gY29va2VkXC1mb29kXC13aGljaFwtaGFzXC1iZWNvbWVcLW1vdWxkeTsKK+SsmSA+IHRvXC1kYW5jZVwtYW5kXC10b3NzXC1hYm91dFwtaW5cLXRoZVwtd2luZDsKK+SgqyA+IHRvXC1zdWNjdW1iXC10b1wtdGhlXC1lZmZlY3RcLW9mXC1hbGNvaG9sOwor5J2mID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtbG9va3NcLWxpa2VcLWxlb3BhcmQ7CivknKAgPiBsYW5ndWFnZVwtb2ZcLXRoZVwtc2F2YWdlXC1vclwtYmFyYmFyaWFuOwor5Ja6ID4gYVwtbGVnZW5kYXJ5XC1hbmltYWxcLWluXC1hbmNpZW50XC10aW1lczsKK+SWpSA+IGluc2VjdHNcLXRoYXRcLWFyZVwtaW5qdXJpb3VzXC10b1wtY3JvcHM7CivkkrwgPiBhXC1iYW1ib29cLXRyYXlcLWZvclwtcmFpc2luZ1wtc2lsa3dvcm1zOwor5JGzID4gYVwtaG9yaXpvbnRhbFwtYmFyXC1pblwtZnJvbnRcLW9mXC1hXC1ib2F0Owor5JCnID4gdG9cLXJld2FyZFwtb3JcLWNoZWVyXC10cm9vcHNcLXdpdGhcLWZvb2Q7CivkjrAgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+SNnyA+IGFcLWtpbmRcLW9mXC1maXNoXC1uZXRcLXdpdGhcLWZpbmVcLW1lc2hlczsKK+SHqCA+IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWZvb2RcLWNvbnRhaW5lcnM7Civkho4gPiBncmFzc1wtYW5kXC1ncmFpbnNcLXByb2R1Y2luZ1wtbm9cLWZydWl0Owor5IS7ID4gYVwtc2Vjb25kXC10aW1lXC1ncm93aW5nXC1vZlwtcmljZVwtcGxhbnQ7CivkgJogPiB0b1wtbGlmdFwtdXBcLXRoZVwtZXllc1wtYW5kXC1sb29rXC1hcm91bmQ7Civjv5YgPiBjYXJidW5jbGVcLXVzZWRcLWluXC1uYW1pbmdcLW9mXC1hXC1wbGFjZTsKK+O6myA+IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor47eIID4gZW1iZXJzXC1rZXB0XC1mb3JcLXN0YXJ0aW5nXC1hXC1uZXdcLWZpcmU7CivjtYEgPiB2YXN0XC1hbmRcLWJvdW5kbGVzc1wtb2ZcLWZsb3dpbmdcLXdhdGVyOwor47OVID4gd2F0ZXJcLWluXC13aGljaFwtcmljZVwtaGFzXC1iZWVuXC13YXNoZWQ7Civjr6ogPiBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtcmFpbGluZ3M7Civjq4AgPiBodWdlXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK++mlCA+IHZlc3NlbFwtdXNlZFwtdG9cLWhvbGRcLWdyYWluXC1vZmZlcmluZ3M7CivjoJkgPiBhXC1tb3VudGFpblwtcGF0aHNcLW5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OTrSA+IHRvXC1tYWtlXC1yZWFkeVwtdGhlXC1sZWF0aGVyXC1mb3JcLXNob2VzOwor45C3ID4gYVwta2luZFwtb2ZcLXB1bmlzaG1lbnRcLWluXC1oYW5cLWR5bmFzdHk7CivoorEgPiBhXC1waWVjZVwtb2ZcLWNsb3RoXC11c2VkXC13cmFwXC1idW5kbGVzOwor5oyyID4gdG9cLWZlZWxcLW9yXC1mb25kbGVcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+evkSA+IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWNhcnJ5aW5nXC1lYXJ0aDsKK+iCkyA+IHJlZ2lvblwtYmV0d2VlblwtaGVhcnRcLWFuZFwtZGlhcGhyYWdtOwor5rumID4gcml2ZXJcLWFuZFwtY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor6YOXID4gY2l0eVwtdW5kZXJcLXRoZVwtY2hvdVwtZHluXC5cLWFcLXN1cm5hbWU7Civnj48gPiB0d29cLXBpZWNlc1wtb2ZcLWphZGVcLWpvaW5lZFwtdG9nZXRoZXI7CivntqYgPiBkYXJrXC1ncmV5XC5cLXZhcmllZ2F0ZWRcLlwtc3VwZXJsYXRpdmU7CivpuocgPiBnZW5lcmFsXC1uYW1lXC1mb3JcLXRoZVwtaG9ybmxlc3NcLWRlZXI7Civnko4gPiBhXC1uZWNrbGFjZVwtbWFkZVwtb2ZcLXByZWNpb3VzXC1zdG9uZXM7Civmjr4gPiBhXC1nZW5lcmFsXC1kZXNpZ25hdGlvblwtb2ZcLW9mZmljaWFsczsKK+mDhyA+IGFuXC1hbmNpZW50XC1mZXVkYWxcLXN0YXRlXC1pblwtc2hhYW54aTsKK+m+mCA+IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLWRyYWdvblwtd2Fsa2luZzsKK+m0vSA+IGFcLXNwZWNpZXNcLW9mXC1iaXJkXC1yZXNlbWJsaW5nXC1xdWFpbDsKK+mEqyA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+mEhyA+IGFcLW5hbWVcLW9mXC1hXC10b3duXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6L+/ID4gdG9cLWJlXC10aGVcLWZpcnN0XC10b1wtYmVnaW5cLWFcLXF1YXJyZWw7CivovZUgPiBncmVhdFwtYXJyYXlcLW9mXC1zcGVhcnNcLWFuZFwtY2hhcmlvdHM7CivovLUgPiBncmVhdFwtYXJyYXlcLW9mXC1zcGVhcnNcLWFuZFwtY2hhcmlvdHM7CivovKAgPiBncmVhc2VcLXBvdFwtaHVuZ1wtdW5kZXJcLWF4bGVcLW9mXC1jYXJ0Owor6IayID4gdGhlXC10aHJlZVwtZGl2aXNpb25zXC1vZlwtdGhlXC12aXNjZXJhOwor57SWID4gYVwtcm9wZVwtZm9yXC1sZWFkaW5nXC1jYXR0bGVcLW9yXC1ob3JzZTsKK+ewoyA+IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWNhcnJ5aW5nXC1lYXJ0aDsKK+esriA+IGJvYXJkc1wtd2hpY2hcLXN1cHBvcnRcLXRpbGVzXC1vblwtcm9vZjsKK+eghSA+IGNyb3NzXC1zdHJlYW1cLWJ5XC1zdGVwcGluZ1wtb25cLXN0b25lczsKK+eTlCA+IGFcLW5lY2tsYWNlXC1tYWRlXC1vZlwtcHJlY2lvdXNcLXN0b25lczsKK+eSiSA+IGFcLXZlc3NlbFwtdXNlZFwtaG9sZFwtZ3JhaW5cLW9mZmVyaW5nczsKK+ePsSA+IGFcLW5lY2tsYWNlXC1tYWRlXC1vZlwtcHJlY2lvdXNcLXN0b25lczsKK+eOqCA+IHR3b1wtcGllY2VzXC1vZlwtamFkZVwtam9pbmVkXC10b2dldGhlcjsKK+eBpCA+IHJpdmVyXC1hbmRcLWNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+aioSA+IHRyYXlcLWZvclwtY2FycnlpbmdcLXNhY3JpZmljaWFsXC1tZWF0Owor5oyxID4gdG9cLWZlZWxcLW9yXC1mb25kbGVcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+W5tSA+IGV2ZW5cLWxldmVsXC5cLXRvXC1yYWlzZVwtaW5cLWJvdGhcLWhhbmRzOwor5auEID4gYW5cLWFuY2llbnRcLWVtcGVyb3InJ3NcLW1vdGhlcicnc1wtbmFtZTsKK+WbtyA+IHJvdW5kXC1zaGFwZWRcLXN0b3JhZ2VcLWJpblwtZm9yXC1ncmFpbjsKK+S0mSA+IGFcLWtpbmRcLW9mXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLWR1Y2s7CivksoMgPiBhXC1jYXJwXC1saWtlXC1maXNoXC13aXRoXC1jaGlja2VuXC1mZWV0Owor5KmXID4gdG9cLXJ1bGVcLWJ5XC1taWdodFwtcmF0aGVyXC10aGFuXC1yaWdodDsKK+SilSA+IGFcLWdyb3VwXC1vZlwtcGVvcGxlXC13YWxraW5nXC10b2dldGhlcjsKK+SaoSA+IGJvbmVzXC1pblwtYVwtaG9yblwtb2ZcLWNhdHRsZVwtYW5kXC1nb2F0Owor5JmsID4gcGxhaXRzXC1vblwtdGhlXC1zaWRlc1wtb2ZcLWFcLXBldHRpY29hdDsKK+SQgCA+IHRvXC1kaXNtZW1iZXJcLWJvZHlcLW9mXC10aGVcLWxpdmVzdG9jazsKK+SOjiA+IHRvXC1nbGlkZVwtb3JcLXRvXC1ob3ZlclwtdXBcLWluXC10aGVcLWFpcjsKK+SNiiA+IGNsYXlcLW1hZGVcLWJsb3dpbmdcLXdpbmRcLWluc3RydW1lbnRzOwor5Ii/ID4gYmVsdFwtb2ZcLXRoZVwtY2FudmFzXC10b3BcLW9uXC12ZWhpY2xlczsKK+SHriA+IGFcLWJhbWJvb1wtbWF0XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkhZogPiBjbG9zZWx5XC1ncm93aW5nXC1vZlwtdGhlXC1yaWNlXC1wbGFudHM7CivkhLYgPiByaWNlXC1wbGFudFwtZ3Jvd2luZ1wtdGhlXC1zZWNvbmRcLXRpbWU7Civkgb4gPiByZWRcLWFuZFwtc3dlbGxpbmdcLW9mXC10aGVcLWV5ZVwtc29ja2V0Owor5IGoID4gdG9cLW9wZW5cLXRoZVwtZXllc1wtd2l0aFwtYXN0b25pc2htZW50Owor472bID4gbmFycm93XC10cmFpbFwtb2ZcLXBhdGhcLWluXC10aGVcLWZpZWxkczsKK+O6kSA+IGRvZ3NcLXdvcm1lZFwtdGhyb3VnaFwtYVwtbmFycm93XC1wbGFjZTsKK+O5oiA+IGFcLWxhcmdlXC1hcGVcLWZvdW5kXC1pblwtd2VzdGVyblwtY2hpbmE7CivjuZwgPiB0d29cLWRvZ3NcLWFyZVwtYmFya2luZ1wtdG9cLWVhY2hcLW90aGVyOwor47mJID4gYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXRocmVlXC1mZWV0Owor47emID4gdG9cLW9wZW5cLXRoZVwtZXllc1wtd2l0aFwtYXN0b25pc2htZW50Owor47aAID4gZGVlcFwtYW5kXC12YXN0XC1vZlwtdGhlXC1mbG93aW5nXC13YXRlcjsKK+OwtiA+IHRvXC13cmlua2xlXC10aGVcLW5vc2VcLXdpdGhcLXNvcnJvd2Z1bDsKK+OtsiA+IGFcLXdvb2RlblwtZnJhbWVcLWZvclwtY2FycnlpbmdcLXRoaW5nczsKK+OhoSA+IHNjcmVlblwtdG9cLW1ha2VcLWFcLXRlbXBvcmFyeVwta2l0Y2hlbjsKK+OgvyA+IGFcLWtpbmRcLW9mXC1kZWxpY2F0ZVwtYW5kXC1maW5lXC1mYWJyaWM7CivjnLogPiBuaWNlXC13aGl0ZVwtY29sb3JcLWFuZFwtbG9va3NcLXNvXC1nb29kOwor45y1ID4gd2l0aFwtYVwtY2hhcm1pbmdcLXNwcmlnaHRseVwtY2FycmlhZ2U7CivjmqkgPiB3aXRoXC1hXC1jaGFybWluZ1wtc3ByaWdodGx5XC1jYXJyaWFnZTsKK+OZiCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivjlqEgPiB0aGVcLWJpcmRzXC1zaW5naW5nXC1kdXJpbmdcLXRoZVwtbmlnaHQ7CivjlbogPiBsb29rc1wtYmlnXC1vdXRzaWRlXC1idXRcLWVtcHR5XC1pbnNpZGU7CivjlYQgPiB0b1wtYXBwbHlcLWtub3dsZWRnZVwtdG9cLWZpbmFsXC1jYXVzZXM7CivnpL4gPiBnb2RcLW9mXC10aGVcLXNvaWxcLWFuZFwtYWx0YXJzXC10b1wtaGltOwor55GfID4gbGFyZ2VcLXN0cmluZ2VkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5qWeID4gdXNlZFwtZm9yXC1jZXlsb25cLWluXC1idWRkaGlzdFwtdGV4dHM7Civllr0gPiB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7CivlmoUgPiB0YWxrXC1pbmRpc3RpbmN0bHlcLWFuZFwtZmFsdGVyaW5nbHk7Civoo7EgPiB0b1wtbW91bnRcLW1hcHNcLW9yXC1zY3JvbGxzXC10b1wtcGFzdGU7CivnjKIgPiBhXC1raW5kXC1vZlwtbW9ua2V5XC1mb3VuZFwtaW5cLXdcLmNoaW5hOwor6JyuID4gYVwtZmFidWxvdXNcLWNyZWF0dXJlXC1saWtlXC1hXC10dXJ0bGU7CivlkZYgPiB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7CivnoqEgPiBzdG9uZVwtcm9sbGVyXC11c2VkXC10b1wtbGV2ZWxcLWZpZWxkczsKK+mEoyA+IG5hbWVcLW9mXC1hbmNpZW50XC1jaXR5XC1pblwtblwuamlhbmdzdTsKK+eyoiA+IGdyYWluXC1vZmZlcmVkXC1pblwtcml0dWFsXC1zYWNyaWZpY2U7CivnsKYgPiBsYXJnZVwtdW1icmVsbGFcLXdpdGhcLWFcLWxvbmdcLWhhbmRsZTsKK+iekyA+IGFcLXNtYWxsXC1jaWNhZGFcLXdpdGhcLWFcLXNxdWFyZVwtaGVhZDsKK+mtiiA+IGFcLW15dGhpY2FsXC1jcmVhdHVyZVwtc2FpZFwtaHVybFwtc2FuOwor6Z+QID4ga25lZVwtcGFkXC1tYWRlXC1vZlwtcmVkXC1keWVkXC1sZWF0aGVyOwor6LuPID4gY3Jvc3NcLWJhclwtYXRcLWVuZFwtb2ZcLXBvbGVzXC1vZlwtY2FydDsKK+iWgCA+IHRoZVwtaGlwcHVyaXNcLW9yXC1tYXJlJydzXC10YWlsXC1wbGFudDsKK+iVsCA+IHRoZVwtaGlwcHVyaXNcLW9yXC1tYXJlJydzXC10YWlsXC1wbGFudDsKK+iBnSA+IHRvXC1jdXRcLXRoZVwtbGVmdFwtZWFyc1wtb2ZcLXRoZVwtc2xhaW47CivogJQgPiB0b1wtaG9lXC11cFwtdGhlXC1lYXJ0aFwtYXJvdW5kXC1wbGFudHM7CivnsKsgPiBtdXNpY2FsXC1pbnN0cnVtZW50XC1saWtlXC1wYW5cLXBpcGVzOwor57CoID4gYVwtYmVhbVwtZm9yXC1oYW5naW5nXC1iZWxsc1wtb3JcLWRydW1zOwor57CYID4gbXVzaWNhbFwtaW5zdHJ1bWVudFwtbGlrZVwtcGFuXC1waXBlczsKK+euviA+IG11c2ljYWxcLWluc3RydW1lbnRcLWxpa2VcLXBhblwtcGlwZXM7CivnpLMgPiBuYW1lXC1vZlwtcGxhY2VcLWluXC1zaGFuXC14aVwtcHJvdmluY2U7CivnoqsgPiBjb2Fyc2VcLXN0b25lXC1cKHVzZWRcLWZvclwtd2hldHN0b25lXCk7Civnkq8gPiBqYWRlXC1vcm5hbWVudFwtaW5cLXRoZVwtc2VhbXNcLW9mXC1jYXA7CivnkK8gPiBhXC1qYWRlXC10dWJlXC11c2VkXC1hc1wtYW5cLWluc3RydW1lbnQ7CivnjoEgPiBhXC1kb2dcLXdpdGhcLWFcLWxvbmdcLXNub3V0XC1vclwtbXV6emxlOwor5qOfID4gdGhlXC1tYWluXC1iZWFtc1wtc3VwcG9ydGluZ1wtYVwtaG91c2U7CivmiKAgPiBhXC1zd29yZFwuXC1wb3R0ZXInJ3NcLWNsYXlcLlwtdG9cLWdhdGhlcjsKK+WapiA+IHVzZWRcLWluXC1vbm9tYXRvcG9ldGljXC1leHByZXNzaW9uczsKK+WYjSA+IHVzZWRcLWluXC1vbm9tYXRvcG9ldGljXC1leHByZXNzaW9uczsKK+WRrSA+IGZpbmFsXC1wYXJ0aWNsZVwtZXhwcmVzc2luZ1wtY29uc2VudDsKK+WRoSA+IHRoZVwtY29ybmVyc1wtb2ZcLXRoZVwtbW91dGhcLXRoZVwtbGlwczsKK+S2rCA+IGhhcmRcLWZpbnNcLW9uXC10aGVcLWJhY2tcLW9mXC1hXC1kcmFnb247CivktoUgPiBhXC1tYXJtb3RcLWxpa2VcLXJhdFwtd2l0aFwtYVwtYmlnXC1oZWFkOwor5LSTID4gZ2VuZXJhbFwtdGVybVwtZm9yXC1zbWFsbFwtYmlyZFwtZ3JvdXA7CivkrJcgPiBibG93blwtb3JcLXRvc3NlZFwtYWJvdXRcLWJ5XC10aGVcLXdpbmQ7Civkp4kgPiBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC1oYW5cLWR5bmFzdHk7CivkpbYgPiBjb29raW5nXC11dGVuc2lsXC11c2VkXC1pblwtb2xkXC10aW1lczsKK+SlrCA+IGFcLW11c2ljYWxcLWluc3RydW1lbnRcLWluXC1vbGRcLXRpbWVzOwor5KOcID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KOWID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KOVID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KOMID4gcmVzaWRlbmNlXC1vZlwtYVwtcHJpbmNlXC1vclwtbm9iaWxpdHk7CivkoZ0gPiBhXC1yZWFyXC1jb3ZlcmluZ1wtb2ZcLWFcLWJpZ1wtY2FycmlhZ2U7CivkoYogPiB0aGVcLXByb3RydWRlZFwtc2lkZXNcLW9mXC1hXC1jYXJyaWFnZTsKK+SgmiA+IHRvXC1zdGVwXC1vblwtdGhlXC1ncm91bmRcLXdpdGhcLWFcLWJhbmc7CivkloMgPiB0aGVcLXdhdGVyXC1pc1wtd2F2aW5nXC1pblwtdGhlXC1icmVlemU7CivklaQgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtYW5jaWVudFwtdGltZXM7CivkkqcgPiBhXC12ZXNzZWxcLW9yXC11dGVuc2lsXC1tYWRlXC1vZlwtc3RyYXc7CivkjbIgPiBhXC1raW5kXC1vZlwtc2hlZXBcLXdpdGhcLWN1cmxlZFwtaGFpcnM7Civki7ggPiBiYWNrXC1jZW50ZXJcLXN1dHVyZVwtb2ZcLXRoZVwtY2xvdGhlczsKK+SLmyA+IHRoZVwtY2x1c3RlcmVkXC1lbWJyb2lkZXJ5XC1wYXR0ZXJuczsKK+SKliA+IHRvXC1lYXRcLXJpY2VcLWdydWVsXC1taXhlZFwtd2l0aFwtbWVhdDsKK+SGhSA+IHRvXC1hY2N1bXVsYXRlXC1vclwtdG9cLXN0b3JlXC11cFwtcmljZTsKK+SCpyA+IHJvY2tzXC1jbHVzdGVyZWRcLXBpbGVcLXVwXC10b2dldGhlcnM7CivkgL8gPiB0b1wtaGF2ZVwtYVwtY2FzdWFsXC1hbmRcLXNob3J0XC1nbGFuY2U7CivkgLggPiB0b1wtaGF2ZVwtYVwtY2FzdWFsXC1hbmRcLXNob3J0XC1nbGFuY2U7CivjuZcgPiBjYXR0bGVcLWFuZFwtc2hlZXBcLWhhdmVcLW5vXC1jaGlsZHJlbjsKK+O2siA+IG1lYXN1cmluZ1wtdW5pdFwtZm9yXC10aGVybW9keW5hbWljczsKK+O1uiA+IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1hbmNpZW50XC10aW1lczsKK+O1kCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+O1iyA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+OxkiA+IHRvXC1zY29sZFwtb3JcLWJsYW1lXC1pblwtYVwtbG91ZFwtdm9pY2U7Civjrr4gPiBhXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivjrIggPiB0aGVcLXN1blwtd2FzXC1zaGluaW5nXC1hbmRcLWl0JydzXC13YXJtOwor46qKID4gaW5mZXN0ZWRcLXdpdGhcLWJhbmRpdHNcLWFuZFwtcm9iYmVyczsKK+OomCA+IHRvXC1ibG93XC10aGVcLW5vc2VcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+OfviA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLWNvdW50eVwtamlhbjsKK+OfuCA+IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLWFuY2llbnRcLWNoaW5hOwor45+JID4gbmFtZVwtb2ZcLXBhdmlsaW9uXC1pblwtYW5jaWVudFwtY2hpbmE7Civjn4IgPiBuYW1lXC1vZlwtY2FwZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+OaqiA+IHRvXC1tYWtlXC1hXC1kZWNlcHRpdmVcLXNob3dcLW9mXC1wb3dlcjsKK+OSjSA+IHV0dGVybHlcLXdlYXJ5XC1pblwtYm9keVwtYW5kXC1zcGlyaXRzOwor45CMID4gYVwtdHJpYmVcLW9mXC1zYXZhZ2VzXC1pblwtc291dGhcLWNoaW5hOwor5o27ID4gdG9cLXR3aXN0XC1vclwtbmlwXC13aXRoXC10aGVcLWZpbmdlcnM7CivmiIwgPiBlbGV2ZW50aFwtb2ZcLXRlcnJlc3RyaWFsXC1icmFuY2hlczsKK+aQkyA+IHRvXC1ydWJcLW9yXC1yb2xsXC1iZXR3ZWVuXC10aGVcLWhhbmRzOwor5bCnID4gYVwtbGVnZW5kYXJ5XC1hbmNpZW50XC1lbXBlcm9yXC1zYWdlOwor5am2ID4gd2lmZVwtb2ZcLWZhdGhlcicnc1wteW91bmdlclwtYnJvdGhlcjsKK+aOrCA+IHRvXC1ncmFzcFwtb3JcLWhvbGRcLXdpdGhcLWJvdGhcLWhhbmRzOwor5bmbID4gc2Nyb2xsXC1vZlwtc2lsa1wtb3JcLWNsb3RoXC1wcmVzZW50ZTsKK+ajgiA+IGNhcnZlZFwtb3JcLXBhdHRlcm5lZFwtd2luZG93XC1zaWxsczsKK+awsiA+IGxpZmVcLWdpdmluZ1wtaW5mbHVlbmNlc1wtb2ZcLW5hdHVyZTsKK+ianSA+IGhhaXJ5XC1hbmRcLXBvaXNvbm91c1wtY2F0ZXJwaWxsYXJzOwor5r6nID4gcml2ZXJcLWluXC1ub3J0aGVyblwtaHVuYW5cLXByb3ZpbmNlOwor562uID4gZGl2aW5hdGlvblwtd2l0aFwtc3RhbGtzXC1vZlwtcGxhbnRzOwor56yqID4gYVwtY29hcnNlXC1tYXRcLW9mXC1ydXNoZXNcLW9yXC1iYW1ib287CivpppMgPiBmcmllZFwtcm91bmRcLWNha2VzXC1vZlwtd2hlYXRcLWZsb3VyOwor566QID4gdG9cLWRyYXdcLWFcLWJhbWJvb1wtYm93XC1vclwtY3Jvc3Nib3c7CivmiYMgPiBhXC1kb29yXC1iYXJcLXBsYWNlZFwtb3V0c2lkZVwtYVwtZG9vcjsKK+S7iSA+IHN1cm5hbWVcLW9mXC10aGVcLW1vdGhlclwtb2ZcLW1lbmNpdXM7Civpqr4gPiBhbnlcLW9iamVjdFwtdGhhdFwtc3RpY2tzXC1pblwtdGhyb2F0Owor6aWKID4gZnJpZWRcLXJvdW5kXC1jYWtlc1wtb2ZcLXdoZWF0XC1mbG91cjsKK+mGvCA+IG9mZmVyXC1mb29kXC1hbmRcLXdpbmVcLW9uZScnc1wtZ3Vlc3RzOwor6LynID4gY3VydGFpbmVkXC1jYXJyaWFnZVwtdXNlZFwtYnlcLXdvbWVuOwor6Lu/ID4gY3VydGFpbmVkXC1jYXJyaWFnZVwtdXNlZFwtYnlcLXdvbWVuOwor6LuZID4gYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lXC10b1wtYXJyYW5nZTsKK+i0gSA+IHRvXC1kZWZlYXRcLXRvXC1zcG9pbFwtb3JcLWJlXC1zcG9pbGVkOwor6LOPID4gcGVhcmxzXC1vclwtc2hlbGxzXC1zdHJ1bmdcLXRvZ2V0aGVyOwor6KuKID4gdG9cLW1ha2VcLWFcLWp1ZGljaWFsXC1pbnZlc3RpZ2F0aW9uOwor6J6GID4gaGFpcnlcLWFuZFwtcG9pc29ub3VzXC1jYXRlcnBpbGxhcnM7CivnupkgPiBzdHJpbmdcLW9uXC13aGljaFwtY29pbnNcLWFyZVwtc3RydW5nOwor57OkID4gZnJpZWRcLXJvdW5kXC1jYWtlc1wtb2ZcLXdoZWF0XC1mbG91cjsKK+ettCA+IHR5cGVcLW9mXC1ncmFzc1wtdXNlZFwtaW5cLWRpdmluYXRpb247CivnkIcgPiBjb2Fyc2VcLXZhcmlldHlcLW9mXC1qYXNwZXJcLW9yXC1qYWRlOwor5rCzID4gbGlmZVwtZ2l2aW5nXC1pbmZsdWVuY2VzXC1vZlwtbmF0dXJlOwor5qu6ID4gY2FydmVkXC1vclwtcGF0dGVybmVkXC13aW5kb3dcLXNpbGxzOwor5qOrID4gdGhvcm55XC1zaHJ1Ylwtd2l0aFwteWVsbG93XC1mbG93ZXJzOwor5peTID4gc2VycmF0ZWRcLWVkZ2VzXC1vblwtYVwtY2hpbmVzZVwtZmxhZzsKK+W2siA+IGFcLW5hbWVcLW9mXC1hblwtb2xkXC10b3duXC1pblwtc2ljaHVhbjsKK+WwrSA+IGFcLWxlZ2VuZGFyeVwtYW5jaWVudFwtZW1wZXJvclwtc2FnZTsKK+WsuCA+IHdpZmVcLW9mXC1mYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivlobEgPiBwbGFjZVwtbmFtZVwtaW5cLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivloK8gPiBhXC1sZWdlbmRhcnlcLWFuY2llbnRcLWVtcGVyb3JcLXNhZ2U7CivliaggPiBzb3VuZFwtb2ZcLXNvbWV0aGluZ1wtYmVpbmdcLXNtYXNoZWQ7CivktawgPiBibGFja1wtc291bmRcLW9mXC10aGVcLWZsb3dpbmdcLXdhdGVyOwor5LSNID4gYVwta2luZFwtb2ZcLXN0cmFuZ2VcLWFuZFwtd2VpcmRcLWJpcmQ7CivktIkgPiBnZW5lcmFsXC10ZXJtXC1mb3JcLWFcLWdyb3VwXC1vZlwtYmlyZDsKK+SzsCA+IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtd2lsZFwtZ29vc2U7Civks4ggPiBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXdpbGRcLWdvb3NlOwor5LGZID4gYVwtc21hbGxcLWtpbmRcLW9mXC10dW5hXC1vclwtc3R1cmdlb247CivksJQgPiBkcmVzc2VkXC1oYWlyXC1pblwtYVwtaG9yaXpvbnRhbFwtd2F5Owor5LCJID4gZHJlc3NlZFwtaGFpclwtaW5cLWFcLWhvcml6b250YWxcLXdheTsKK+SqrCA+IHNvdW5kXC1vZlwtcHJlc3NpbmdcLXNvbWV0aGluZ1wtZG93bjsKK+SprCA+IGFuXC1vcm5hbWVudGFsXC1pdGVtXC1vblwtYVwtc2NhYmJhcmQ7Civkp7UgPiBhXC1iaXJkXC1saWtlXC10aGVcLXNlY3JldGFyeVwtZmFsY29uOwor5KaOID4gYVwtbWVjaGFuaWNhbFwtZGV2aWNlXC1mb3JcLWxlYWRcLW9yZTsKK+SlviA+IHRvXC1tZWx0XC1vclwtY2FzdFwtYnlcLXVzaW5nXC1hXC1tb3VsZDsKK+SlsSA+IHRvXC1tZWx0XC1vclwtY2FzdFwtYnlcLXVzaW5nXC1hXC1tb3VsZDsKK+SlmSA+IGFcLXNwZWN1bHVtXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkpLcgPiBhXC1sYW5jZVwtd2l0aFwtdGhyZWVcLW9yXC10d29cLXBvaW50czsKK+SjoiA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KObID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7CivknYEgPiBhXC1raW5kXC1vZlwtd2lsZFwtbGVndW1pbm91c1wtcGxhbnRzOwor5Ju2ID4gd3JpdGluZ3NcLWV1bG9naXppbmdcLWFkZWFkXC1wZXJzb247Civkl6QgPiBhXC1raW5kXC1vZlwtd29ybVwtcHJvZHVjZWRcLWluXC13YXRlcjsKK+SNsCA+IGFcLXBsYWd1ZVwtb3JcLWFcLXBlc3RpbGVuY2VcLW9mXC1nb2F0Owor5IqKID4gd2VsbFwtYm9pbGVkXC1jb25nZWVcLW9yXC1yaWNlXC1ncnVlbDsKK+SJiCA+IGFcLWtpbmRcLW9mXC1iYW1ib29cLXdpdGhcLWFcLXJlZFwtc2tpbjsKK+SIkyA+IGFcLWtpbmRcLW9mXC1iYW1ib29cLXdpdGhcLWFcLXJlZFwtc2tpbjsKK+SHiCA+IHRvXC1wdXRcLWludG9cLWFcLWN1cGJvYXJkXC1vclwtY2xvc2V0Owor5IeAID4gb3JuYW1lbnRzXC1vZlwtZmluZVwtZmVhdGhlclwtb3JcLWZ1cjsKK+SFuSA+IGFcLWtpbmRcLW9mXC1kcmlsbFwtZm9yXC1zb3dpbmdcLWdyYWluOwor5IWpID4gY3Jvb2tlZFwtYW5kXC13aW5kaW5nXC1vZlwtdGhlXC1ncmFzczsKK+SEvCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IS3ID4gYVwtbWVhc3VyZW1lbnRcLWVxdWFsXC10b1wtMTIwXC1jYXR0eTsKK+SDqiA+IGFcLXBsYXRmb3JtXC1mb3JcLXNhY3JpZmljaWFsXC1yaXRlczsKK+SCniA+IGFcLXRob3JueVwtdHJlZVwtYWJvdXRcLTE1XC1mZWV0XC1oaWdoOwor47qcID4gZmllcmNlXC1kb2dcLXdpdGhcLWxvbmdcLXNoYWdneVwtaGFpcjsKK+O6iSA+IGFcLWZpZXJjZVwtYW5pbWFsXC1vZlwtdGhlXC1kb2dcLXRyaWJlOwor47mhID4gYVwtcnVzaFwtYW5kXC1pbXBhdGllbnRcLWRpc3Bvc2l0aW9uOwor47ihID4gYm9hcmRcLXRvXC1ibG9ja1wtdGhlXC13YXRlclwtY3VycmVudDsKK+O4miA+IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZFwtYW5kXC1jbGVhcjsKK+O0rSA+IGltbWVhc3VyYWJsZVwtZGVwdGhcLW9yXC1wcm9mdW5kaXR5Owor47OGID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7CivjsaggPiB0b1wtcHJlcGFyZVwtYVwtYm9keVwtZm9yXC10aGVcLWNvZmZpbjsKK+OshyA+IG5hbWVcLW9mXC1hXC1zdGF0ZVwtaW5cLWFuY2llbnRcLWNoaW5hOwor46m9ID4gYnJhbmNoZXNcLXRvXC1iZVwtYVwtcGFyYXNpdGVcLWFcLXRyZWU7CivjqJIgPiB0b1wtY3V0XC1vcGVuXC1hbmRcLWNsZWFuXC1cLVwtXC1hc1wtZmlzaDsKK+OisiA+IHRoZVwtNXRoXC1vZlwtdGhlXC1laWdodFwtZGlhZ3JhbXNcLeWFq+WNpjsKK+OfqCA+IGFcLWZvdW50YWluXC1pblwtdGhlXC1zaWRlXC1vZlwtYVwtaGlsbDsKK+ObjSA+IHRvXC1oYXZlXC1vbmUnJ3NcLWFtYml0aW9uXC1mdWxmaWxsZWQ7CivjmqEgPiBzdGFuZGluZ1wtd2l0aG91dFwtYVwtc3RyYWlnaHRcLWJhY2s7CivjmokgPiB0b1wtbWFrZVwtYVwtcHJvZml0XC1vblwtc2VsbFwtYW5kXC1idXk7CivjmbAgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OVoyA+IGFcLW1hcnNoXC1hdFwtdGhlXC1mb290XC1vZlwtdGhlXC1oaWxsczsKK+S7rCA+IGFkanVuY3RcLXByb25vdW5cLWluZGljYXRlXC1wbHVyYWw7CivlkaIgPiBpbnRlcnJvZ2F0aXZlXC1vclwtZW1waGF0aWNcLWZpbmFsOwor5qW8ID4gYnVpbGRpbmdcLW9mXC10d29cLW9yXC1tb3JlXC1zdG9yaWVzOwor6I2vID4gbGVhZlwtb2ZcLWRhaHVyaWFuXC1hbmdlbGljYVwtcGxhbnQ7CivpvY4gPiB0YWtlXC1pblwtYm90aFwtaGFuZHNcLWFuZFwtb2ZmZXJcLXRvOwor5LiIID4gdW5pdFwtb2ZcLWxlbmd0aFwtZXF1YWxcLTNcLjNcLW1ldGVyczsKK+aMkSA+IGFcLWxvYWRcLWNhcnJpZWRcLW9uXC10aGVcLXNob3VsZGVyczsKK+aokyA+IGJ1aWxkaW5nXC1vZlwtdHdvXC1vclwtbW9yZVwtc3RvcmllczsKK+elnSA+IHByYXlcLWZvclwtaGFwcGluZXNzXC1vclwtYmxlc3NpbmdzOwor5p2JID4gdmFyaW91c1wtc3BlY2llc1wtb2ZcLXBpbmVcLWFuZFwtZmlyOwor5pynID4gY29uZGl0aW9uXC1vclwtYXBwZWFyYW5jZVwtb2ZcLW1vb247CivmnKYgPiBjb25kaXRpb25cLW9yXC1hcHBlYXJhbmNlXC1vZlwtbW9vbjsKK+mcuCA+IHJ1bGVcLWJ5XC1taWdodFwtcmF0aGVyXC10aGFuXC1yaWdodDsKK+euqiA+IHNtYWxsXC1iYW1ib29cLWJhc2tldFwtZm9yXC1ob2xkaW5nOwor6YakID4gYW55XC1qYW1cLWxpa2VcLW9yXC1wYXN0ZVwtbGlrZVwtZm9vZDsKK+mFsSA+IGFueVwtamFtXC1saWtlXC1vclwtcGFzdGVcLWxpa2VcLWZvb2Q7Civog6cgPiBjb25kaXRpb25cLW9yXC1hcHBlYXJhbmNlXC1vZlwtbW9vbjsKK+eClSA+IHRoZVwtYnJpY2tcLWJlZFwtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+S6pSA+IGxhc3RcLW9mXC10d2VsdmVcLWVhcnRobHlcLWJyYW5jaGVzOwor57KkID4gZ3Vhbmdkb25nXC1hbmRcLWd1YW5neGlcLXByb3ZpbmNlczsKK+eyvSA+IGR1bXBsaW5nXC1tYWRlXC1vZlwtZ2x1dGlub3VzXC1yaWNlOwor6ZmHID4gbW91bnRhaW5cLWxvY2F0ZWRcLWJldHdlZW5cLXNoYW54aTsKK+mXviA+IHZpbGxhZ2VcLW9mXC10d2VudHlcLWZpdmVcLWZhbWlsaWVzOwor6YOmID4gcGxhY2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6Z6FID4gbGVhdGhlclwtc3RyYXBcLW92ZXJcLWhvcnNlJydzXC1uZWNrOwor6YK6ID4gcGxhY2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6ZOhID4gc2lja2xlXC1mb3JcLWN1dHRpbmdcLWdyYXNzXC1vclwtaGF5Owor6aqnID4gZ2FsbG9wXC1hYm91dFwtd2l0aFwtaGVhZFwtdXBsaWZ0ZWQ7CivpqqIgPiBob3JzZVwtd2l0aFwtYVwtYmx1aXNoXC13aGl0ZVwtY29sb3I7Civom7MgPiBraW5kXC1vZlwtc25haWxcLXdpdGhcLXNwaXJhbFwtc2hlbGw7CivpgrMgPiBhXC1kZXBhcnRtZW50XC1pblwtdGhlXC1zdGF0ZVwtb2ZcLWx1Owor6YOiID4gc3RhdGVcLWluXC10b2RheScnc1wtaHViZWlcLXByb3ZpbmNlOwor6aqWID4gdHdvXC1vdXRzaWRlXC1vbmVzXC1pblwtdGhyZWVcLWhvcnNlOwor6L24ID4gY3Jvc3NcLWJvYXJkXC1hdFwtcmVhclwtb2ZcLWNhcnJpYWdlOwor566cID4gYW5jaWVudFwtc3RyaW5nXC1tdXNpY1wtaW5zdHJ1bWVudDsKK+mDkCA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+i9uSA+IHJ1blwtb3Zlclwtc29tZXRoaW5nXC13aXRoXC12ZWhpY2xlOwor5qCdID4gYVwtYnVpbGRlcicnc1wtZnJhbWVcLWZvclwtbWVhc3VyaW5nOwor542NID4gYW5cLWFuaW1hbFwtd2hpY2hcLWVhdHNcLWl0c1wtbW90aGVyOwor6byXID4gc21hbGxcLXJldm9sdmluZ1wtZHJ1bVwtd2l0aFwta25vYnM7CivpvJIgPiBsYXJnZVwtdHJpcG9kXC1jYWxkcm9uXC13aXRoXC1zbWFsbDsKK+m2liA+IGxhcmdlXC13YXRlcmZvd2xcLXdpdGhcLW5ha2VkXC1oZWFkOwor6amkID4gZ2FsbG9wXC1hYm91dFwtd2l0aFwtaGVhZFwtdXBsaWZ0ZWQ7CivpqYQgPiBob3JzZVwtd2l0aFwtYVwtYmx1aXNoXC13aGl0ZVwtY29sb3I7CivpqYIgPiB0d29cLW91dHNpZGVcLW9uZXNcLWluXC10aHJlZVwtaG9yc2U7CivpqIQgPiBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1zd2lmdFwtaG9yc2U7Civpp6wgPiBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1zd2lmdFwtaG9yc2U7CivppJYgPiBmb29kXC1pdGVtXC1zZXRcLW91dFwtZm9yXC1zaG93XC1vbmx5Owor6aCjID4gdG9cLXZpZXdcLW90aGVyc1wtd2l0aFwtcmFpc2VkXC1leWVzOwor6Zq0ID4gbW91bnRhaW5cLWxvY2F0ZWRcLWJldHdlZW5cLXNoYW54aTsKK+mWrSA+IHZpbGxhZ2VcLW9mXC10d2VudHlcLWZpdmVcLWZhbWlsaWVzOwor6Y2YID4gc2lja2xlXC1mb3JcLWN1dHRpbmdcLWdyYXNzXC1vclwtaGF5Owor6YuQID4gc3RhdGVcLWluXC10b2RheScnc1wtaHViZWlcLXByb3ZpbmNlOwor6YasID4gYW55XC1qYW1cLWxpa2VcLW9yXC1wYXN0ZVwtbGlrZVwtZm9vZDsKK+mFiCA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+mEtiA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+mEtCA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhvbmFuXC1wcm92aW5jZTsKK+mEmiA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlYmVpXC1wcm92aW5jZTsKK+mDlCA+IHBsYWNlXC1uYW1lXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YK9ID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWhhblwtZHluYXN0eTsKK+mCtiA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+i9oiA+IHJ1blwtb3Zlclwtc29tZXRoaW5nXC13aXRoXC12ZWhpY2xlOwor6LurID4gY3Jvc3NcLWJvYXJkXC1hdFwtcmVhclwtb2ZcLWNhcnJpYWdlOwor6LuoID4gbGF0dGljZVwtd29ya1wtb25cLWZyb250XC1hbmRcLXNpZGVzOwor6LiLID4gdGhlXC1mb290XC1vclwtZmVldFwtY2FzdFwtb2ZcLWFcLXBsYXk7CivopocgPiBydWxlXC1ieVwtbWlnaHRcLXJhdGhlclwtdGhhblwtcmlnaHQ7Civopa0gPiB0dWNrXC11cFwtaGVtXC1vZlwtZ2FybWVudFwtYW5kXC13cmFwOwor6KOLID4gY290dG9uXC1jbG90aGVzXC1vZlwtYVwtYm95XC1zZXJ2YW50Owor6KG6ID4gc2xpdFwtaW5cLWdhcm1lbnRcLXRvXC1haWRcLW1vdmVtZW50Owor6KCoID4gYVwta2luZFwtb2ZcLXNwaWRlclwtd2l0aFwtbG9uZ1wtbGVnczsKK+ieoyA+IG15dGhvbG9naWNhbFwtd2luZ2xlc3NcLWRyYWdvblwtb2Y7CivonoQgPiBraW5kXC1vZlwtc25haWxcLXdpdGhcLXNwaXJhbFwtc2hlbGw7Civoi6QgPiBicmFzc2ljYVwtY2FtcGVzdHJpc1wtc3Vic3BcLlwtcmFwYTsKK+iJlSA+IHR3b1wtYm9hdHNcLWZhc3RlbmVkXC1zaWRlXC1ieVwtc2lkZTsKK+iGqyA+IHRoZVwtZmF0XC1jb3ZlcmluZ1wtdGhlXC1pbnRlc3RpbmVzOwor57iXID4gc2Fja2Nsb3RoXC13b3JuXC1vblwtYnJlYXN0XC1kdXJpbmc7Civns4kgPiBkdW1wbGluZ1wtbWFkZVwtb2ZcLWdsdXRpbm91c1wtcmljZTsKK+eytSA+IGd1YW5nZG9uZ1wtYW5kXC1ndWFuZ3hpXC1wcm92aW5jZXM7CivnsJ4gPiBzbWFsbFwtYmFtYm9vXC1iYXNrZXRcLWZvclwtaG9sZGluZzsKK+evqiA+IGFcLWJhbWJvb1wtZmx1dGVcLXdpdGhcLXNldmVuXC1ob2xlczsKK+eeliA+IGFcLWNhdGFyYWN0XC1vclwtZmlsbVwtb3ZlclwtdGhlXC1leWU7CivnlaQgPiBwbGFjZVwtZm9yXC13b3JzaGlwcGluZ1wtdGhlXC1oYXZlbjsKK+eUlyA+IGVhcnRoZW53YXJlXC12ZXNzZWxcLWluXC10d29cLXBhcnRzOwor54OzID4gdG9cLXRyYXZlbFwtYnlcLXRoZVwtbGlnaHRcLW9mXC10b3JjaDsKK+eBlSA+IHNob3J0XC1uYW1lXC1mb3JcLWd1YW5neGlcLXByb3ZpbmNlOwor5rK0ID4gZm91bFwtYW5kXC1wb2lzb25vdXNcLWluXC1jb25mdXNpb247CivmqJAgPiBhXC1sb29rb3V0XC10dXJyZXRcLW9uXC1hXC1jaXR5XC13YWxsOwor5qO7ID4ga2luZFwtb2ZcLXdvb2RcLWZyb21cLXdoaWNoXC1wZXJmdW1lOwor5p6MID4gdmFyaWV0eVwtb2ZcLWVsbVwtd2l0aFwtc21hbGxcLXNlZWRzOwor5Z6fID4gY2xheVwtc2hlZXBcLWJ1cmllZFwtd2l0aFwtdGhlXC1kZWFkOwor5ZKgID4gdG9cLXdoaXNwZXJcLlwtdG9cLWJsYW1lXC10b1wtc2xhbmRlcjsKK+WPpyA+IHRvXC1jdXRcLW1lYXRcLW9mZlwtYXdheVwtZnJvbVwtYm9uZXM7CivlhpQgPiBjYXBcLXdvcm5cLWR1cmluZ1wtdGhlXC15aW5cLWR5bmFzdHk7CivlgJEgPiBhZGp1bmN0XC1wcm9ub3VuXC1pbmRpY2F0ZVwtcGx1cmFsOwor5Lq8ID4gdG9cLWFzc2VtYmxlXC5cLXRvXC1nYXRoZXJcLXRvZ2V0aGVyOwor5LmEID4gc2hpbWVcOlwtdG9cLWZpbmRcLWFcLXBsYWNlXC10b1wtZHdlbGw7CivktrUgPiBhXC1iYW1ib29cLWZsdXRlXC13aXRoXC1zZXZlblwtaG9sZXM7CivktbggPiB0aGVcLXRvYWRcLXRoYXRcLWxpdmVzXC1pblwtdGhlXC1tb29uOwor5LOhID4gYVwta2luZFwtb2ZcLWJpcmRcLWluXC1hbmNpZW50XC1ib29rczsKK+SyniA+IGFcLXNlY29uZFwtZ2VuZXJhbFwtbmFtZVwtZm9yXC1wZXJjaDsKK+SxjCA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC10aGVcLWdsb2JlZmlzaDsKK+SwnSA+IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3RcLWZvclwtY29va2luZzsKK+SwgCA+IGRyZXNzZWRcLWhhaXJcLW9mXC1hXC1jaGluZXNlXC13b21hbjsKK+SuuCA+IHRvXC1tb3ZlXC1zbG93bHlcLWFuZFwtdGhlblwtc3dpZnRseTsKK+SsuyA+IHRvXC1lbnRlcnRhaW5cLWFcLWRlcGFydGluZ1wtZnJpZW5kOwor5Kq+ID4gdG9cLWRlYWxcLXdpdGhcLWFmZmFpcnNcLWNhdXRpb3VzbHk7Civkqo0gPiBhXC1jb250YWluZXJcLWZvclwtYm93c1wtYW5kXC1hcnJvd3M7CivkqKMgPiBsZWF0aGVyXC10b1wtYmVcLW1vaXN0ZW5lZFwtYnlcLXJhaW47CivkpocgPiBkcmVzc2VkXC1oYWlyXC1vZlwtYVwtY2hpbmVzZVwtd29tYW47Civko6MgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLW5hbWVcLW9mXC1hXC1wbGFjZTsKK+SfmiA+IHRvXC1zaXRcLXdpdGhcLXRoZVwtbGVnc1wtc3ByZWFkXC1vdXQ7CivknLcgPiBmZXJtZW50ZWRcLWFuZFwtc2Vhc29uZWRcLXNveWJlYW5zOwor5JyqID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtb2xkXC10aW1lczsKK+SbgCA+IHJlYXNvbmFibGVcLWF1dGhvcml0eVwtc3RhdGVtZW50czsKK+SYhSA+IGFcLXNtYWxsXC1nYWRmbGllc1wtYW5kXC1tb3NxdWl0b2VzOwor5JCDID4gZmF0XC1pblwtdGhlXC1hYmRvbWVuXC1vclwtaW50ZXN0aW5lOwor5I2bID4gYVwta2luZFwtb2ZcLXRvb2xcLXVzZWRcLXRvXC1nZXRcLWZpc2g7CivkiqQgPiB2ZWdldGFibGVcLW1peGVkXC13aXRoXC10aGlja1wtc291cDsKK+SCsiA+IHN0YW5kYXJkXC13ZWlnaHRzXC11c2VkXC1pblwtc2NhbGVzOwor5IGwID4gdG9cLWxvb2tcLWluXC1hXC1ldmlsXC1vclwtd2lja2VkXC13YXk7CivjvJYgPiBnb3VyZFwtdXNlZFwtYXNcLWFcLWxhZGxlXC1vclwtZGlwcGVyOwor47urID4gYVwtZ2VtXC1vclwtb3JuYW1lbnRcLW9uXC1hXC1zY2FiYmFyZDsKK+OvrSA+IGFcLWxvb2tvdXRcLXR1cnJldFwtb25cLWFcLWNpdHlcLXdhbGw7CivjrocgPiBhXC1idWlsZGVyJydzXC1mcmFtZVwtZm9yXC1tZWFzdXJpbmc7CivjrLkgPiB0ZW5kb25zXC1vZlwtdGhlXC1oZWVsXC1vZlwtdGhlXC1mb290Owor46yBID4gdGhlXC1zdW5cLWlzXC1zaGluaW5nXC1vblwtdGhlXC13YXRlcjsKK+OnvSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1oYW5cLWR5bmFzdHk7Civvpo0gPiBydW5cLW92ZXJcLXNvbWV0aGluZ1wtd2l0aFwtdmVoaWNsZTsKK++mhiA+IHZpbGxhZ2VcLW9mXC10d2VudHlcLWZpdmVcLWZhbWlsaWVzOwor76WMID4gYnVpbGRpbmdcLW9mXC10d29cLW9yXC1tb3JlXC1zdG9yaWVzOwor46WGID4gaW5kdWxnZW50XC1hbmRcLXdpdGhvdXRcLXJlc3RyYWludDsKK+OXmCA+IHRvXC1iaXRlXC10aGVcLWhhcmRcLWFuZFwtc29saWRcLWZvb2Q7Civjk6IgPiB0b1wtY3V0XC10aGVcLWZsZXNoXC1mcm9tXC10aGVcLWJvbmVzOwor45OUID4gZmFkZWRcLWFuZFwtZmFsbGVuXC1cLVwtXC1hc1wtYmxvc3NvbXM7CivjkrsgPiB0b1wtZ29cLWZvcndhcmRcLXdpdGhcLWV5ZXNcLWNvdmVyZWQ7CivlubkgPiB0cnVua1wtb2ZcLXRyZWVcLW9yXC1vZlwtaHVtYW5cLWJvZHk7CivlsLogPiBjaGluZXNlXC1tZWFzdXJlXC1hcHByb3hcLlwtJydmb290Jyc7CivnsbMgPiBodWxsZWRcLW9yXC1odXNrZWRcLXVuY29va2VkXC1yaWNlOwor6bmPID4gZmFidWxvdXNcLWJpcmRcLW9mXC1lbm9ybW91c1wtc2l6ZTsKK+WWgiA+IGludGVyamVjdGlvblwtdG9cLWNhbGxcLWF0dGVudGlvbjsKK+a9hyA+IHNvdW5kXC1vZlwtYmVhdGluZ1wtd2luZFwtYW5kXC1yYWluOwor56a5ID4gbGVnZW5kYXJ5XC1oc2lhXC1keW5hc3R5XC1mb3VuZGVyOwor5pafID4gdG9cLXBvdXJcLXdpbmVcLW9yXC10ZWFcLWludG9cLWFcLWN1cDsKK+iQvCA+IHRoZVwtc3RlbVwtYW5kXC1jYWx5eFwtb2ZcLWFcLWZsb3dlcjsKK+mYgCA+IHBvd2VyZnVsXC1hbmRcLWluZmx1ZW50aWFsXC1ncm91cDsKK+altyA+IG1vZGVsXC1zdHlsZVwtb2ZcLWNoaW5lc2VcLXdyaXRpbmc7CivovoQgPiBzaWRlc1wtb2ZcLWNoYXJpb3RcLXdoZXJlXC13ZWFwb25zOwor5L+RID4gd29vZGVuXC1maWd1cmVcLWJ1cmllZFwtd2l0aFwtZGVhZDsKK+WYuSA+IHVzZWRcLWRlc2NyaWJlXC1jbGFyaXR5XC1vZlwtdm9pY2U7CivovbwgPiBob3Jpem9udGFsXC13b29kZW5cLWJhclwtaW5cLWZyb250Owor6aaRID4gdGltZVwtb2ZcLWZhbWluZVwtb3JcLWNyb3BcLWZhaWx1cmU7CivkvKUgPiBnaG9zdFwtb2ZcLW9uZVwtZGV2b3VyZWRcLWJ5XC10aWdlcjsKK+e7tiA+IHNpbGtcLXJpYmJvblwtYXR0YWNoZWRcLWFzXC1hXC1zZWFsOwor6ayIID4gZmluZVwtZ3Jvd3RoXC1vZlwtaGFpclwtY3VybHlcLWhhaXI7Civno5QgPiBkb3dud2FyZFwtc3Ryb2tlXC1zbGFudGluZ1wtcmlnaHQ7Civoo6IgPiBmb2xkaW5nXC1wdXJzZVwtaW5zZXJ0ZWRcLWluXC1iZWx0Owor5p64ID4ga2luZFwtb2ZcLWFzcGVuXC1mb3VuZFwtaW5cLXNpY2h1YW47CivoioogPiBleHViZXJhbnRcLWFuZFwtdmlnb3JvdXNcLWZvbGlhZ2U7CivphIQgPiBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaGFuZG9uZzsKK+m8uSA+IGFcLWtpbmRcLW9mXC1pbnNlY3Rpdm9yb3VzXC1yb2RlbnQ7CivojrwgPiBhblwtZWRpYmxlXC13YXRlclwtcGxhbnRcLWJyYXNlbmlhOwor5ZysID4gcGxhc3Rlclwtb3Zlclwtd2l0aFwtbGF5ZXJcLW9mXC1tdWQ7CivojqkgPiBtZW1icmFuZVwtbGluaW5nXC1pbnNpZGVcLW9mXC1yZWVkOwor6K+2ID4gYW5cLWV4Y2xhbWF0aW9uXC1vZlwtY29uZmlybWF0aW9uOwor6KSZID4gcGFwZXJcLW9yXC1jbG90aFwtcGFzdGVkXC10b2dldGhlcjsKK+iMjCA+IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLXNoYW5kb25nOwor6by0ID4gYVwta2luZFwtb2ZcLWluc2VjdGl2b3JvdXNcLXJvZGVudDsKK+m2iyA+IGFcLXNlYVwtYmlyZFwtd2l0aFwtYVwtd2hpdGVcLWJyZWFzdDsKK+m1rCA+IGZhYnVsb3VzXC1iaXJkXC1vZlwtZW5vcm1vdXNcLXNpemU7Civpr48gPiBhXC1kaWFsZWN0XC5cLlwuXC5cLlwuXC5cLlwtbmFtZVwtb2ZcLWZpc2g7CivppYkgPiB0aW1lXC1vZlwtZmFtaW5lXC1vclwtY3JvcFwtZmFpbHVyZTsKK+mlgSA+IGNhcnJ5XC1tZWFsXC10b1wtd29ya2Vyc1wtaW5cLWZpZWxkOwor6ZalID4gcG93ZXJmdWxcLWFuZFwtaW5mbHVlbnRpYWxcLWdyb3VwOwor6Y6rID4gb3JuYW1lbnRcLW92ZXJcLXRoZVwtaG9yc2UnJ3NcLWhlYWQ7CivovJIgPiBzaWRlc1wtb2ZcLWNoYXJpb3RcLXdoZXJlXC13ZWFwb25zOwor6LWZID4gZ2lmdFwtb2ZcLW1vbmV5XC1oZWxwXC1wYXlcLWZ1bmVyYWw7Civos7sgPiBnaWZ0XC1vZlwtbW9uZXlcLWhlbHBcLXBheVwtZnVuZXJhbDsKK+iqkiA+IGFuXC1leGNsYW1hdGlvblwtb2ZcLWNvbmZpcm1hdGlvbjsKK+ippCA+IHRvXC1tYWtlXC13aWxkXC1zdGF0ZW1lbnRzXC10b1wtbGllOwor6KSzID4gZm9sZGluZ1wtcHVyc2VcLWluc2VydGVkXC1pblwtYmVsdDsKK+iYtCA+IHlvdW5nXC1zaG9vdHNcLW9mXC10aGVcLXJhcGV0dXJuaXA7Civojp0gPiB0b1wtY2hvcFwtc3RyYXdcLWZpbmVcLWZvclwtYW5pbWFsczsKK+iFoCA+IGJldHdlZW5cLXRoZVwtc2tpblwtYW5kXC10aGVcLWZsZXNoOwor57+/ID4gc3RyZWFtZXJcLWFkb3JuZWRcLXdpdGhcLWZlYXRoZXJzOwor57asID4gc2lsa1wtcmliYm9uXC1hdHRhY2hlZFwtYXNcLWFcLXNlYWw7CivnraUgPiByb3VuZFwtc2hhcGVkXC1iYW1ib29cLWJhc2tldFwtZm9yOwor55eEID4gc2Nyb2Z1bG91c1wtc3dlbGxpbmdzXC1hbmRcLXNvcmVzOwor546kID4gYVwta2luZFwtb2ZcLWdlbVwtaW5mZXJpb3JcLXRvXC1qYWRlOwor54WgID4gdG9cLWZyeVwtaW5cLWZhdFwtb3JcLW9pbFwuXC10b1wtc2NhbGQ7CivngJ8gPiBzb3VuZFwtb2ZcLWJlYXRpbmdcLXdpbmRcLWFuZFwtcmFpbjsKK+a9jyA+IGZhcmVzaGFyZVwtcmVjbGFpbWVkXC1mcm9tXC1yaXZlcjsKK+a8vCA+IGhhdmluZ1wtdGhlXC1hcHBlYXJhbmNlXC1vZlwtZGVwdGg7CivmrJ4gPiB0aGVcLWxhdHRpY2VcLW9mXC1hXC13aW5kb3dcLWFcLXNpbGw7Civmm5ogPiB0d2lsaWdodFwtanVzdFwtYmVmb3JlXC1zdW5cLXJpc2VzOwor5paaID4gYVwtc21hbGxcLWN1cFwtb2ZcLXN0b25lXC13aXRoXC1lYXJzOwor5omKID4gdXByaWdodFwtYmFyXC1mb3JcLWZhc3RlbmluZ1wtZG9vcjsKK+aFnCA+IG5hbWVcLW9mXC1hXC1tb25rXC1pblwtdGFuZ1wtZHluYXN0eTsKK+W0oCA+IHBsYWNlXC1uYW1lXC1pblwtZ3Vhbmd4aVwtcHJvdmluY2U7Civlsr0gPiBwbGFjZVwtbmFtZVwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5bKdID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtc2hhbmRvbmc7CivloK0gPiBhXC1kcnlcLW1vYXRcLW91dHNpZGVcLWFcLWNpdHlcLXdhbGw7CivloI4gPiBjaGFyYWN0ZXJcLXVzZWRcLWZvclwtcGxhY2VcLW5hbWVzOwor5Zq5ID4gYVwtcGFydGljbGVcLWltcGx5aW5nXC1jb21wbGV0aW9uOwor5YyzID4gbGFkaWVzXC10b2lsZXRcLWNhc2VcLXdpdGhcLW1pcnJvcjsKK+WItSA+IHB1bmlzaG1lbnRcLWJ5XC1jdXR0aW5nXC1vZmZcLWVhcnM7CivksoEgPiBnZW5lcmFsXC10ZXJtXC1vZlwtYVwta2luZFwtb2ZcLWZpc2g7CivksJogPiB0aGVcLXRvcFwtcGFydFwtb2ZcLXRoZVwtcmljZVwtZ3J1ZWw7Civkr7UgPiBoYWlyXC1zdHlsZVwtZm9yXC1saXR0bGVcLWNoaWxkcmVuOwor5K+kID4gYm9uZXdhcmVcLXVzZWRcLXRvXC1jb21iXC10aGVcLWhhaXI7Civkr5IgPiB0aGVcLXVwcGVyXC1wYXJ0XC1vZlwtdGhlXC1zaGluYm9uZTsKK+SulCA+IGFcLXlvdW5nXC1hbmRcLWZsZWV0XC1mb290ZWRcLWhvcnNlOwor5K26ID4gYVwtaG9yc2VcLXRvXC1yYWlzZVwtaXRzXC1oZWFkXC1oaWdoOwor5KuuID4gdG9cLWJlbmRcLW9yXC1sb3dlclwtb2ZcLW9uZScnc1wtaGVhZDsKK+SrhiA+IHRoZVwtZnJvbnRcLWFuZFwtYmFja1wtb2ZcLXRoZVwtbmVjazsKK+SnkiA+IHN0ZXBzXC1sZWFkaW5nXC11cFwtdG9cLWFcLWJ1aWxkaW5nOwor5KSbID4gY29tcG9uZW50XC1wYXJ0c1wtb2ZcLWFcLWNyb3NzXC1ib3c7Civko7kgPiB0b1wtYnJld1wtMTBcLXBlcmNlbnRcLW9mXC10aGVcLXdpbmU7Civko7UgPiB0b1wtYnJld1wtdGhlXC13aW5lXC1hXC1zZWNvbmRcLXRpbWU7Civko6wgPiB0aGVcLXNoaW55XC1jb2xvcmZ1bFwtb2ZcLXRoZVwtd2luZTsKK+SiviA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc21hbGxcLXN0YXRlOwor5KGDID4gYVwtdG9vbFwtZm9yXC1icnVzaGluZ1wtdGhlXC10aHJlYWQ7CivknLIgPiBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLW9sZFwtY2hpbmE7CivkmJMgPiB0aGlja1wtYmxvb2RcLW9mXC1jYXR0bGVcLWFuZFwtZ29hdDsKK+STvyA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1sb3R1c1wtZmxvd2VyOwor5JO5ID4gdG9cLXN0dWZmXC1mdWxsXC1hbmRcLXRvXC1ndWxwXC1kb3duOwor5I2BID4gdGhlXC1oZW1cLW9yXC1ib3JkZXJcLW9mXC1hXC1nYXJtZW50Owor5Iu0ID4gc2lsa1wtZmFicmljc1wtd2l0aFwtbWl4ZWRcLWNvbG9yczsKK+SLsyA+IGNsb3RoXC1vclwtcGFwZXJcLXBhc3RlZFwtdG9nZXRoZXI7CivkiaQgPiBhXC1iYW1ib29cLXdhcmVcLWZvclwtd2FzaGluZ1wtcmljZTsKK+SJmyA+IGJhbWJvb1wtYmFza2V0XC1mb3JcLXdhc2hpbmdcLXJpY2U7CivkiZMgPiBtYXR0cmVzc1wtbWFkZVwtb2ZcLWJhbWJvb1wtc3RyaXBzOwor5Ii5ID4gYVwtYmFtYm9vXC13YXJlXC1mb3JcLXdhc2hpbmdcLXJpY2U7Civkh6wgPiB0aGluXC1iYW1ib29cLWxhdGhzXC1rbml0dGVkXC1zYWlsOwor5IenID4gdG9cLWZpbGxcLWFuXC1vcGVuaW5nXC13aXRoXC1iYW1ib287CivkhKEgPiBub3J0aGVyblwtbWlub3JpdHlcLWV0aG5pY1wtZ3JvdXA7Civkg7YgPiBydWdnZWRcLWFuZFwtdW5ldmVuXC1vZlwtdGhlXC1yb2NrczsKK+SDmiA+IHJ1Z2dlZFwtbGFuZFwtb2ZcLXNhbmRcLWFuZFwtcGViYmxlOwor5IOCID4gZHVsbFwtc291bmRcLW9mXC10aGVcLXRvbGxpbmdcLWJlbGw7CivjvKEgPiBhXC1zbWFsbFwtamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGg7CivjtbcgPiB0dXJidWxlbnRcLWZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor47WPID4gaGF2aW5nXC10aGVcLWFwcGVhcmFuY2VcLW9mXC1kZXB0aDsKK+OyuSA+IHRoZVwtZHJ5XC1zb2lsXC1vblwtdGhlXC1yaXZlclwtc2lkZTsKK+OynSA+IGZpbmVcLWhhaXJcLW9mXC1iaXJkc1wtYW5kXC1hbmltYWxzOwor46+FID4gdGhlXC1icmFuY2hlc1wtZ3Jvd2luZ1wtZG93bndhcmRzOwor466CID4gYW5cLWFwcGxpYW5jZVwtdXNlZFwtdG9cLWxpZnRcLWZvb2Q7CivjrKQgPiB3ZXRcLWNsb3RoZXNcLW5vdFwtY29tcGxldGVseVwtZHJ5Owor46q+ID4gdG9cLWN1dFwtdGhlXC1mbGVzaFwtZnJvbVwtdGhlXC1ib25lOwor46iZID4gdG9cLWNsYXNwXC1vclwtaG9sZFwtdW5kZXJcLXRoZVwtYXJtOwor46ayID4gYVwtcGFydGljbGVcLWV4cHJlc3NpbmdcLXN1cnByaXNlOwor46WLID4gc291bmRcLW9mXC10aGVcLWFuZ3Vpc2hcLW9mXC1zb3Jyb3c7CivjpK8gPiBjbGV2ZXJcLW9yXC1zbWFydFwtaW5cLWFcLXNtYWxsXC13YXk7CivjpJQgPiB0b1wtY29uY2VkZVwtb3JcLXN1Ym1pdFwtd2lsbGluZ2x5Owor46OHID4gYVwta2luZFwtb2ZcLWJlYXN0XC13aXRoXC1sb25nXC1oYWlyOwor46GeID4gYVwtc2Fja1wtdXNlZFwtdG9cLWZlZWRcLXRoZVwtaG9yc2VzOwor46CjID4gYVwtbW91bnRhaW5cLWluXC1qaWFuZ3hpXC1wcm92aW5jZTsKK+OeryA+IHRoZVwtdHVybmluZ1wtYXJlYVwtb2ZcLWFcLW1vdW50YWluOwor45yGID4gY29tbW9ubHlcLWtub3duXC1hc1wtbW90aGVyXC1pblwtd3U7CivjmZogPiByZWRcLWNvbG9yZWRcLWhhcmRcLWFuZFwtc29saWRcLW11ZDsKK+OYniA+IHllbGxpbmdcLXNvdW5kXC1vZlwtdG93aW5nXC1hXC1ib2F0Owor45SpID4gaGFpclwtb3JubWVudHNcLXVzZWRcLWluXC1vbGRcLXRpbWU7CivjlIAgPiB0b1wtYnJhbmRcLWNyaW1pbmFsc1wtb25cLXRoZVwtZmFjZTsKK+i/piA+IGNoYXJhY3RlclwtZm9yXC10cmFuc2xpdGVyYXRpb247CivlurUgPiBidWRkaGlzdFwtbW9uYXN0ZXJ5XC1vclwtbnVubmVyeTsKK+W6miA+IHNldmVudGhcLW9mXC10ZW5cLWN5Y2xpY2FsXC1zdGVtczsKK+i2oyA+IHdoYXRcLWF0dHJhY3RzXC1vbmUnJ3NcLWF0dGVudGlvbjsKK+eVlCA+IGJvdW5kYXJ5XC1wYXRoXC1kaXZpZGluZ1wtZmllbGRzOwor5aS+ID4gYmVcLXdlZGdlZFwtb3JcLWluc2VydGVkXC1iZXR3ZWVuOwor6L6GID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdmVoaWNsZXM7CivlpLkgPiBiZVwtd2VkZ2VkXC1vclwtaW5zZXJ0ZWRcLWJldHdlZW47CivmgJQgPiBhXC1kaXNlYXNlXC1yZXNlbWJsaW5nXC1uZXVyb3NpczsKK+mZjCA+IGZvb3RcLXBhdGhcLWJldHdlZW5cLXJpY2VcLWZpZWxkczsKK+mqhiA+IGFcLXdoaXRlXC1ob3JzZVwtd2l0aFwtYmxhY2tcLW1hbmU7CivmpaMgPiBjcm9zc2JlYW1cLWFib3ZlXC1vclwtdW5kZXJcLWdhdGU7CivnkqcgPiBwaWVjZVwtb2ZcLWphZGVcLXdpdGhcLWhvbGVcLWluXC1pdDsKK+iGuyA+IHJhbmtcLW9kb3JcLVwob2ZcLXNoZWVwXC1vclwtZ29hdHNcKTsKK+eOkSA+IHBlYXJsXC10aGF0XC1pc1wtbm90XC1xdWl0ZVwtcm91bmQ7CivllKIgPiBmbHV0ZVwtbGlrZVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+algiA+IGFcLXJhZnRcLlwtdG9cLWhld1wuXC10b1wtZmVsbFwtdHJlZXM7CivnipIgPiBlbnRlcnRhaW5cLXZpY3RvcmlvdXNcLXNvbGRpZXJzOwor55+NID4gbG9va1wtYWJvdXRcLWluXC1mcmlnaHRcLW9yXC1hbGFybTsKK+aTpCA+IHRvXC1ibG93XC10aGVcLW5vc2VcLXdpdGhcLWZpbmdlcnM7CivoiqEgPiBwbGFudFwtYWxsaWVkXC10b1wtdGhlXC13YXRlcmxpbHk7CivnsbwgPiBub25cLWdsdXRpbm91c1wtbG9uZ1wtZ3JhaW5cLXJpY2U7CivmoaEgPiBiZW50XC1vclwtdHdpc3RlZFwtcGllY2VcLW9mXC13b29kOwor6bu7ID4gc3BlY2lhbFwtcGF0dGVyblwtb2ZcLWVtYnJvaWRlcnk7CivltZ0gPiBnb3Vsb3VcLW1vdW50YWluXC1wZWFrXC1pblwtaHVuYW47Civlnq0gPiBjaGFyYWN0ZXJcLXVzZWRcLWluXC1wbGFjZVwtbmFtZXM7CivnoZYgPiBcPGFyY2hcPlwtdG93blwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+mCoSA+IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLXNpY2h1YW47CivorqAgPiBzaW1wbGlmaWVkXC1rYW5neGlcLXJhZGljYWxcLTE0OTsKK+WZuyA+IGNoYXJhY3RlclwtdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor55asID4gc2Nyb2Z1bG91c1wtbHVtcHNcLW9yXC1zd2VsbGluZ3M7CivolJ8gPiBmcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47CivlnqcgPiB2YXJpYWJsZVwtdW5pdFwtb2ZcLWxhbmRcLW1lYXN1cmU7CivprI8gPiBhXC1jb2lmZnVyZVwtb25cLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+etmCA+IFwoYVwtbWVhc3VyZVwtb2ZcLXdpZHRoXC1vZlwtY2xvdGhcKTsKK+e8kSA+IGNvcmRcLWJpbmRpbmdcLW9uXC1oaWx0XC1vZlwtc3dvcmQ7CivnsJYgPiBiYW1ib29cLXRyYXBcLWZvclwtY2F0Y2hpbmdcLWZpc2g7CivluosgPiBhXC1jdXBib2FyZFwtb3JcLXBhbnRyeVwtdG9cLXN0b3JlOwor55SNID4gcmFmdGVyc1wtc3VwcG9ydGluZ1wtcm9vZlwtdGlsZXM7Civpp7kgPiBibGFja1wtaG9yc2VcLXdpdGhcLWFcLXdoaXRlXC1mYWNlOwor6aexID4gYVwtd2hpdGVcLWhvcnNlXC13aXRoXC1ibGFja1wtbWFuZTsKK+mljiA+IHdpbmVcLWFuZFwtZm9vZFwtZWF0ZW5cLXdpdGhcLXdpbmU7Civph4QgPiB3aW5lXC1icmV3XC1mb3JcLXRoZVwtc2Vjb25kXC10aW1lOwor6YeBID4gc21lYXJcLXdpdGhcLWJsb29kXC1pblwtc2FjcmlmaWNlOwor6L+nID4gYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lXC1hcnJhbmdlOwor6L2YID4gdGVhclwtYXN1bmRlclwtYmV0d2VlblwtY2hhcmlvdHM7CivovJsgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC12ZWhpY2xlczsKK+i8mSA+IHNpZGVzXC1vZlwtY2hhcmlvdFwtd2VyZVwtd2VhcG9uczsKK+i8jCA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXZlaGljbGVzOwor6KmAID4gZ2FycnVsb3VzXC10b1wtd2hpc3BlclwuXC10b1wtam9rZTsKK+iouSA+IHRvXC1iZWd1aWxlXC13aXRoXC1mYWxzZVwtc3RvcmllczsKK+iXiiA+IGFcLWtpbmRcLW9mXC1iZWFuXC13aXRoXC1mbGF0XC1wb2RzOwor6IigID4gbG9uZ1wtbmFycm93XC1rbmlmZVwtc2hhcGVkXC1ib2F0Owor57+jID4gZmVhdGhlcnNcLXVzZWRcLWRlY29yYXRlXC1jb2ZmaW47CivnuJMgPiBvcmFuZ2VcLW9yXC1yZWRkaXNoXC15ZWxsb3dcLXNpbGs7Civnt7EgPiBjb3JkXC1iaW5kaW5nXC1vblwtaGlsdFwtb2ZcLXN3b3JkOwor57OPID4gcmljZVwtZ3JpdHNcLWxlZnRcLWFmdGVyXC1odWxsaW5nOwor56+YID4gYVwtdXRlbnNpbFwtdXNlZFwtdG9cLWZpbHRlclwtd2luZTsKK+eniCA+IG5vblwtZ2x1dGlub3VzXC1sb25nXC1ncmFpblwtcmljZTsKK+ehpCA+IFw8YXJjaFw+XC10b3duXC1pblwtaGViZWlcLXByb3ZpbmNlOwor55+wID4gYXJyb3dcLXdpdGhcLWF0dGFjaGVkXC1zaWxrXC1jb3JkOwor55mnID4gc2Nyb2Z1bG91c1wtbHVtcHNcLW9yXC1zd2VsbGluZ3M7CivnkqMgPiBwZWFybFwtdGhhdFwtaXNcLW5vdFwtcXVpdGVcLXJvdW5kOwor546DID4gYVwtbGFyZ2VcLWFwZVwtZm91bmRcLWluXC13XC5cLWNoaW5hOwor54yHID4gdGhlXC1zY3JlYW1cLW9yXC1yb2FyXC1vZlwtYVwtdGlnZXI7CivnibggPiB0aGVcLWZlbWFsZVwtb2ZcLWNlcnRhaW5cLWFuaW1hbHM7Civmu5kgPiB3YXRlcnNcLWNvbnZlcmdpbmdcLXRvXC1vbmVcLXNwb3Q7Civmu5ggPiBjaGFyYWN0ZXJcLXVzZWRcLWluXC1wbGFjZVwtbmFtZXM7CivmqYggPiBiZW50XC1vclwtdHdpc3RlZFwtcGllY2VcLW9mXC13b29kOwor5qSKID4gdG9cLWZpdFwtYVwtaGFuZGxlXC1pbnRvXC1hXC1zb2NrZXQ7CivmmpAgPiB0aGVcLWJyaWdodFwtc2hpbmluZ1wtb2ZcLXRoZVwtc3VuOwor5pizID4gdGhlXC1kZWNsaW5pbmdcLXN1blwtaW5cLXRoZVwtd2VzdDsKK+aNrCA+IHByZXNzXC1kb3duXC1oZWF2aWx5XC13aXRoXC1oYW5kczsKK+aKlCA+IHRha2VcLW9yXC1ob2xkXC11cFwtaW5cLWJvdGhcLWhhbmRzOwor5baBID4gZ291bG91XC1tb3VudGFpblwtcGVha1wtaW5cLWh1bmFuOwor5bS+ID4gcGxhY2VcLW5hbWVcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5bOrID4gbW91bnRhaW5cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civlp4UgPiB3b21hblwtYXRcLXRpbWVcLW9mXC1tZW5zdHJ1YXRpb247Civlo7wgPiBwYWxhY2VcLWNvcnJpZG9yXC1vclwtcGFzc2FnZXdheTsKK+WjjSA+IG1vYXRcLWFyb3VuZFwtYVwtY2l0eVwuXC1hXC1jaGFubmVsOwor5Z+hID4gY2hhcmFjdGVyXC11c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor5ZeqID4gY2hhcmFjdGVyXC11c2VkXC1pblwtdHJhbnNsYXRpb247Civll6kgPiBmbHV0ZVwtbGlrZVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+WVqSA+IHBhcnRpY2xlXC1pbXBseWluZ1wtcHJvYmFiaWxpdHk7Civlj5AgPiB0b1wtcHJpY2tcLWFcLWRvZ1wtdG9cLW1ha2VcLWhpbVwtZ287CivljZAgPiBzd2FzdGlrYVwtZm91cnRoXC1vZlwtYXVzcGljaW91czsKK+WNjSA+IHN3YXN0aWthXC1mb3VydGhcLW9mXC1hdXNwaWNpb3VzOwor5LaVID4gaXJyZWd1bGFyXC1hbmRcLXByb21pbmVudFwtdGVldGg7CivktZggPiBkb3NlbicndFwtdFwtc3RpY2tcLXRvXC1lYWNoXC1vdGhlcjsKK+SytSA+IGFcLWdlbmVyYWxcLW5hbWVcLW9mXC1zbWFsbFwtYmlyZHM7Civkr4YgPiBzbWFsbFwtYW5kXC10aGluXC1waWVjZVwtb2ZcLWJvbmVzOwor5KuyID4gdGhpblwtYW5kXC1zaWNrbHlcLWluXC1hcHBlYXJhbmNlOwor5KukID4gYmV0d2VlblwtdGhlXC1leWVicm93c1wtYW5kXC1leWVzOwor5KuhID4gYVwtbG9uZ1wtc2hhcGVcLW9mXC1oZWFkXC1hbmRcLWZhY2U7Civkq4sgPiBmZW1hbGVcLWF0dGVuZGFudHNcLW9yXC1zZXJ2YW50czsKK+SnkCA+IGFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+SloyA+IGFuXC1pbnN0cnVtZW50XC1mb3JcLWJvcmluZ1wtd29vZDsKK+SliSA+IHRoZVwtY3VydmVkXC1pcm9uXC1wYXJ0XC1vZlwtYVwtaG9lOwor5KSSID4gd2luZVwtbWFkZVwtZnJvbVwtZ2x1dGlub3VzXC1yaWNlOwor5KSNID4gcm90dGVuXC1wYXN0ZVwtb3JcLXNveWJlYW5cLXNhdWNlOwor5KC9ID4gaGVpZ2h0XC1vclwtc3RhdHVyZVwtb2ZcLWFcLXBlcnNvbjsKK+SgsSA+IHRvXC13YWxrXC1zbG93bHlcLWFuZFwtY2F1dGlvdXNseTsKK+SfpyA+IHNvdW5kXC1vZlwtdHJlYWRpbmdcLW9yXC1zdGVwcGluZzsKK+SehyA+IGdpZnRzXC10b1wtc3VwZXJpb3JzXC1vclwtZnJpZW5kczsKK+SdvSA+IG5hbWVcLW9mXC1hXC1wZXJzb25cLWluXC1vbGRcLWNoaW5hOwor5J2ZID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtbGlrZVwtYVwtdGlnZXI7CivknZcgPiBhXC1raW5kXC1vZlwtYW5pbWFsXC1saWtlXC1hXC10aWdlcjsKK+SciCA+IHRvXC1zcGVha1wtb25cLWJlaGFsZlwtb2ZcLWFub3RoZXI7CivkmLMgPiBhXC1nYXJtZW50XC1vZlwtc2luZ2xlXC10aGlja25lc3M7Civkj7wgPiB3aGF0XC1pc1wtbGVmdFwtb3Zlclwtb2ZcLXRoZVwtZm9vZDsKK+SOoiA+IHRvXC1tZWFzdXJlXC1ieVwtcGludHNcLWFuZFwtcGVja3M7CivkjpEgPiBmbHlpbmdcLW92ZXJcLXRoZVwtd2F0ZXJcLXN1cmZhY2U7Civkja4gPiB5b3VuZ1wtZ29hdFwtdW5kZXJcLW9uZVwteWVhclwtb2xkOwor5I2CID4gdG9vbHNcLXRvXC1kcmF3XC13YXRlclwtb3JcLWxpcXVpZDsKK+SMvyA+IHRoZVwtYnJlYWR0aFwtb2ZcLWNsb3RoXC1vclwtcGFwZXI7CivkjJcgPiB0aGVcLWxlZnRcLW92ZXJcLW9mXC1kcmF3aW5nXC1zaWxrOwor5IyIID4gdG9cLWdldFwtc29tZXRoaW5nXC13aXRoXC1hXC1sYXNzbzsKK+SJpSA+IGFcLXNtYWxsXC1iYXNrZXRcLWZvclwtY2hvcHN0aWNrczsKK+SGuiA+IHdoaXJsaW5nXC1vZlwtdGhlXC1mbG93aW5nXC13YXRlcjsKK+SFoiA+IG1hdHVyZVwtb3JcLXJpcGVuXC1vZlwtdGhlXC1ncmFpbnM7Civjv7YgPiB0aGVcLXNpZGVzXC1vZlwtYVwtc2hvZVwtb3JcLWd1dHRlcjsKK+O9sCA+IGNhcnZlZFwtd2luZG93XC1mcmFtZVwtb25cLWFcLWRvb3I7Civjua8gPiBhXC1raW5kXC1vZlwtYW5pbWFsXC1saWtlXC1hXC10aWdlcjsKK+O5giA+IHVudGFtZWRcLWFuZFwtaW5kb2NpbGl0eVwtY2F0dGxlOwor47SEID4gdGhlXC13YXRlclwtZmxvd2luZ1wtaW5cLWFcLXR1cm5lZDsKK+OwiSA+IHRoZVwtaGF6ZWxcLW51dFwtb3JcLWZpbGJlcnRcLXRyZWU7CivjrZ8gPiB0b3J0dXJlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civjq5AgPiBkaXN0YW50XC1hbmRcLWluZGlzdGluZ3Vpc2hhYmxlOwor46G7ID4gbmFtZVwtb2ZcLWFcLXNtYWxsXC1hbmNpZW50XC1zdGF0ZTsKK+ObkCA+IHdpZmVcLW9mXC1vbmUnJ3NcLWVsZGVyJydzXC1icm90aGVyOwor45qGID4gdG9cLWRvXC1zb21ldGhpbmdcLWluXC1hblwtb2xkXC13YXk7Civjlp8gPiB0b1wtZGVsaXZlclwtb3ZlclwtdG9cLXBlcnNvbmFsbHk7Civku7YgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1hcnRpY2xlOwor5ZCXID4gZmluYWxcLWludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor6bq9ID4gaW50ZXJyb2dhdGl2ZVwtZmluYWxcLXBhcnRpY2xlOwor55+jID4gcGFydGljbGVcLW9mXC1jb21wbGV0ZWRcLWFjdGlvbjsKK+S5kiA+IHVzZWRcLXdpdGhcLXBvbmdcLWZvclwtcGluZ1wtcG9uZzsKK+S5kyA+IHVzZWRcLXdpdGhcLXBpbmdcLWZvclwtcGluZ1wtcG9uZzsKK+WSmiA+IHVzZWRcLWFzXC1kZXNjcmlwdGlvblwtb2ZcLXNvdW5kOwor55CFID4gYVwtdmFyaWV0eVwtb2ZcLXdoaXRlXC1jYXJuZWxpYW47CivlrbAgPiB3aG9cP1wtd2hpY2hcP1wtd2hhdFw/XC13aGljaFwtb25lXD87CivmiIogPiBmaWZ0aFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+a4siA+IGFkZFwtcmVwZWF0ZWRcLXdhc2hlc1wtb2ZcLWNvbG9yOwor5ZKrID4gZm9vdFwtbWVhc3VyZVwtb2ZcLXpob3VcLWR5bmFzdHk7CivppbcgPiByYXRpb25zXC1hbmRcLXBheVwtZm9yXC1zb2xkaWVyczsKK+axtiA+IGFcLXJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5Y+BID4gYmFua1wtZm9ybVwtb2ZcLW51bWVyYWxcLScndGhyZWUnJzsKK+WjrCA+IG5pbnRoXC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5p+pID4gY29mZmluXC13aGljaFwtY29udGFpbnNcLWNvcnBzZTsKK+ahoCA+IHRoZVwtZm9ya2luZ1wtYnJhbmNoXC1vZlwtYVwtdHJlZTsKK+eUjyA+IGFcLXNxdWF0XC1qYXJcLWZvclwtaG9sZGluZ1wtd2luZTsKK+esniA+IGJhbWJvb1wtcm9kXC11c2VkXC1mb3JcLWJlYXRpbmdzOwor6ZiXID4gYVwtcGxhY2VcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7Civpk4kgPiBkZXZpY2VcLWZvclwtY2FycnlpbmdcLWFcLXRyaXBvZDsKK+inpSA+IGFcLWN1cFwtbWFkZVwtb2ZcLWhvcm5cLW9ic3RpbmF0ZTsKK+ijoyA+IGRyYXdcLW9uZScnc1wtaGFuZHNcLWludG9cLXNsZWV2ZTsKK+W0gyA+IG1vdW50YWluXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivnvZggPiBzY3JlZW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+awhyA+IHRoaWNrXC1yb3VnaFwtc2VyZ2VcLWZyb21cLXRpYmV0Owor5Z+0ID4gc29pbFwtd2l0aFwtbGFyZ2VcLWNsYXlcLWNvbnRlbnQ7CivmmLQgPiBvbmVcLW9mXC10aGVcLTI4XC1jb25zdGVsbGF0aW9uczsKK+iPuSA+IHNhbHRlZFwtb3JcLXBpY2tsZWRcLXZlZ2V0YWJsZXM7CivpurwgPiBpbnRlcnJvZ2F0aXZlXC1maW5hbFwtcGFydGljbGU7Civpta0gPiBhXC1zbWFsbFwtYmlyZFwtd2l0aFwtYmxhY2tcLW5lY2s7CivppZ8gPiByYXRpb25zXC1hbmRcLXBheVwtZm9yXC1zb2xkaWVyczsKK+mkiSA+IHJhdGlvbnNcLWFuZFwtcGF5XC1mb3JcLXNvbGRpZXJzOwor6ZqSID4gdGhlXC1hcHBlYXJhbmNlXC1vZlwtYVwtbW91bnRhaW47Civpl5AgPiBhXC1wbGFjZVwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+mJiSA+IGRldmljZVwtZm9yXC1jYXJyeWluZ1wtYVwtdHJpcG9kOwor6YaBID4gYVwta2luZFwtb2ZcLWdyZWVuXC1jb2xvcmVkXC13aW5lOwor6YK/ID4gYVwtc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivovZYgPiBmcmFtZXdvcmtcLW9mXC1sYXR0aWNlXC1vblwtY2FydDsKK+intSA+IGFcLWN1cFwtbWFkZVwtb2ZcLWNvcm5cLW9ic3RpbmF0ZTsKK+ilnSA+IGRyYXdcLW9uZScnc1wtaGFuZHNcLWludG9cLXNsZWV2ZTsKK+iAhyA+IHdyaW5rbGVkXC1mYWNlXC1vZlwtdGhlXC1lbGRlcmx5Owor5760ID4gcmFua1wtb2RvdXJcLW9mXC1zaGVlcFwtb3JcLWdvYXRzOwor57WDID4gc3RyaW5nXC1vblwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+etuyA+IHBsYWNlXC1uYW1lXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor56uaID4gc3RhbmRcLWFuZFwtd2FpdFwtZm9yXC1sb25nXC10aW1lOwor552ZID4gdG9cLXJvbGxcLXRoZVwtZXllYmFsbHNcLXRvXC1sb29rOwor55GCID4gXChzdG9uZVwtd2hpY2hcLXJlc2VtYmxlc1wtamFkZVwpOwor54e6ID4gdGhlXC1kcnlcLWF0XC10aGVcLWZpcmVcLXRvXC1yb2FzdDsKK+eBiSA+IGFcLXJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor54CUID4gcml2ZXJcLW5hbWVcLWluXC1oZW5hblwtcHJvdmluY2U7CivmsacgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZ2Rvbmc7CivmsIwgPiB0aGlja1wtcm91Z2hcLXNlcmdlXC1mcm9tXC10aWJldDsKK+aptSA+IHdvb2RcLXBsYWNlZFwtdW5kZXJcLXJvb2ZcLXRpbGVzOwor5qSPID4gdGhlXC1mb3JraW5nXC1icmFuY2hcLW9mXC1hXC10cmVlOwor5puIID4gdHdpbGlnaHRcLWp1c3RcLWJlZm9yZVwtc3VucmlzZTsKK+aXnyA+IGFuXC1taWxpdGFyeVwtZmxhZ1wtb2FcLXN0YW5kYXJkOwor5omoID4gcGlja1wtdXBcLXdpdGhcLWZvcmtcLW9yXC1waW5jZXJzOwor5omgID4gcGlja1wtdXBcLXdpdGhcLWZvcmtcLW9yXC1waW5jZXJzOwor5bmwID4gY3VydGFpblwtYXRcLWZyb250XC1vZlwtY2FycmlhZ2U7CivltI0gPiBtb3VudGFpblwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5bSAID4gcGxhY2VcLW5hbWVcLWluXC1odW5hblwtcHJvdmluY2U7CivlqIAgPiBuYW1lXC1vZlwtYVwtY29uY3ViaW5lXC1vZlwtZGlcLWt1Owor5Z+EID4gd2hpcmxpbmdcLW9mXC1kdXN0XC1pblwtdGhlXC13aW5kOwor5ZeOID4gZmluYWxcLWludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor5LWgID4gcnVzaGVzXC11c2VkXC1mb3JtXC1tYWtpbmdcLW1hdHM7Civks40gPiBhXC1raW5kXC1vZlwtcGhlYXNhbnRcLWxpa2VcLWJpcmQ7CivksbEgPiBhXC1raW5kXC1vZlwtc2xpcHBlcnlcLWxvbmdcLWZpc2g7CivkrocgPiBibGFja1wtaG9yc2VcLXdpdGhcLXdoaXRlXC10aGlnaDsKK+SsoCA+IHRoZVwtZmFsbGluZ1wtb2ZcLXNub3dcLWFuZFwtcmFpbjsKK+SqrSA+IGFcLWtpbmRcLW9mXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KqJID4gbWV0YWxcLWRlY29yYXRpb25cLW9uXC1hXC1oYWx0ZXI7CivkqaEgPiBhXC1raW5kXC1vZlwtYm9vdHNcLWluXC1vbGRcLXRpbWVzOwor5KacID4gbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtb2xkXC10aW1lczsKK+SluiA+IG5hbWVcLW9mXC1hXC1kb3VibGVcLWVkZ2VkXC1zd29yZDsKK+SllSA+IHRoZVwtYmxhZGVcLW9yXC1lZGdlXC1vZlwtYVwtc3BhZGU7CivkpIkgPiBlbXB0aWVkXC10aGVcLWRyaW5rXC1jb21wbGV0ZWx5Owor5KOhID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtb2xkXC10aW1lczsKK+SjjyA+IG5hbWVcLW9mXC1hXC1zdGF0ZVwtaW5cLW9sZFwtdGltZXM7CivkorwgPiBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1vbGRcLXRpbWVzOwor5KGRID4gdGhlXC1yaW1cLW9yXC1mZWxsb2VcLW9mXC1hXC13aGVlbDsKK+SgtCA+IHdpdGhcLWFcLXN5bW1ldHJpY1wtd2VsbFwtZm9ybWVkOwor5J21ID4gdG9cLXRoYW5rXC13aXRoXC1tb25leVwtb3JcLWdpZnRzOwor5JmXID4gYVwtc3dhZGRsaW5nXC1jbG90aFwtZm9yXC1pbmZhbnQ7CivkmLsgPiBjdXJ0YWluXC1vblwtYVwtY2FycmlhZ2VcLW9yXC1jYXI7CivkmLogPiBhXC1zZWFtXC13aGljaFwtaGFzXC1jb21lXC11bnNld247CivkmLUgPiBoaXNzaW5nXC1zb3VuZFwtb2ZcLXRoZVwtY2xvdGhlczsKK+SUmyA+IGZpYnJvdXNcLXBsYW50XC1vZlwtd2hpY2hcLWNsb3RoOwor5JOcID4gc2FsdGVkXC1vclwtcGlja2xlZFwtdmVnZXRhYmxlczsKK+SRuSA+IGFcLW51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXNoaXBzOwor5I2gID4gdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjIsgPiBhXC1oZXJjaGllZlwtaHVuZ1wtYXRcLXRoZVwtd2Fpc3Q7Civki6kgPiBwcmV0dHlcLWFuZFwtZmluZVwtc2lsa1wtZmFicmljczsKK+SLjyA+IHRoaWNrXC1hbmRcLWJpZ1wtcm9wZXNcLW9yXC1jb3JkczsKK+SLiyA+IGFcLWtpbmRcLW9mXC1zcHJpbmdcLWZpc2hpbmdcLW5ldDsKK+SGtiA+IG5vaXNlXC1vZlwtYVwtbW91c2VcLWluXC10aGVcLWNhdmU7CivkhbMgPiBzdGFsa1wtb2ZcLXRoZVwtcGFuaWNsZWRcLW1pbGxldDsKK+SFrSA+IGFcLXZhcmlldHlcLW9mXC1wYW5pY2xlZFwtbWlsbGV0Owor5IWjID4gYVwtdmFyaWV0eVwtb2ZcLXBhbmljbGVkXC1taWxsZXQ7CivkhYwgPiBzdGFsa1wtb2ZcLXdoZWF0XC1vclwtcmljZVwtcGxhbnQ7Civkg4sgPiBhXC1maW5lXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SCtSA+IHNvdW5kXC1vZlwtYnVtcGluZ1wtb3JcLXN0cmlraW5nOwor5IKvID4gYVwtZmluZVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgqsgPiBub2lzZVwtb2ZcLXN0b25lc1wtcm9sbGluZ1wtZG93bjsKK+SCpSA+IGFcLWZpbmVcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5ICzID4gbm90XC10b1wtbG9va1wtc3RyYWlnaHRcLWZvcndhcmQ7CivjvrQgPiB0aGVcLWVyeXRoZW1hXC1vZlwtYWNuZVwtcm9zYWNlYTsKK+O5pSA+IGFcLXllbGxvd1wtZG9nXC13aXRoXC1ibGFja1wtaGVhZDsKK+O5gSA+IGdlbmVyYWxseVwtY2FsbGVkXC10aGVcLWFuaW1hbHM7CivjtbUgPiBzd2lmdFwtY3VycmVudHNcLW9mXC10aGVcLXN0cmVhbTsKK+O1jiA+IGFcLW1vdW50YWluXC1zdHJlYW1cLW9yXC10b3JyZW50Owor47SaID4gdGhlXC1zbWFsbFwtZGl0Y2hcLWluXC10aGVcLWZpZWxkOwor47CGID4gYW5cLWluc3RydW1lbnRcLXRvXC1ibG93XC1hXC1maXJlOwor47CBID4gYVwtdHJlZVwtd2l0aFwtc2xhbnRlZFwtYnJhbmNoZXM7Civjr7MgPiBhXC1raW5kXC1vZlwtdG9vbFwtdG9cLWFkanVzdFwtYm93Owor4660ID4gYVwtbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtc2hpcHM7CivjpZwgPiB1bnN1Y2Nlc3NmdWxcLWluXC1vbmUnJ3NcLWNhcmVlcjsKK+OhsSA+IHRvXC1jYXV0ZXJpemVcLWJ5XC1idXJuaW5nXC1tb3hhOwor46CxID4gdG9cLXNldFwtd2l0aFwtdGhlXC1sZWdzXC1jbG9zc2VkOwor45yMID4gYVwtZGlmZmVyZW50XC1uYW1lXC1mb3JcLWJyZWFzdHM7Civjmb4gPiBoaWxsc1wtd2l0aFwtbG90c1wtb2ZcLWJpZ1wtcm9ja3M7CivjmZsgPiBhXC1wZXJzb24nJ3NcLW5hbWVcLWluXC1vbGRcLXRpbWVzOwor45e+ID4gdG9cLWdpdmVcLXZlbnRcLXRvXC10aGVcLWZlZWxpbmdzOwor45eGID4gc291bmRcLW9mXC10aGVcLXJpbmdlZFwtcGhlYXNhbnQ7Civjk7MgPiB1c2VcLWtuaWZlXC10b1wtc3BsaXRcLXNvbWV0aGluZzsKK+ORnyA+IGluc2luY2VyZVwtYW5kXC1jdW5uaW5nXC1wZXJzb247CivllaYgPiBmaW5hbFwtcGFydGljbGVcLW9mXC1hc3NlcnRpb247Civnu7wgPiBhcnJhbmdlXC10aHJlYWRzXC1mb3JcLXdlYXZpbmc7Civmi60gPiB3aXBlXC1hd2F5XC1zdGFpbnNcLXdpdGhcLWNsb3RoOwor5Y+uID4gZXhob3J0XC1vclwtZW5qb2luXC1yZXBlYXRlZGx5Owor5oifID4gaGFsYmVyZFwtd2l0aFwtY3Jlc2NlbnRcLWJsYWRlOwor5YebID4gdG9cLXNoaXZlclwtd2l0aFwtY29sZFwtb3JcLWZlYXI7CivmoIsgPiBtYWluXC1iZWFtc1wtc3VwcG9ydGluZ1wtaG91c2U7Civpq6YgPiBmbG93aW5nXC1oYWlyXC1vZlwteW91bmdcLWNoaWxkOwor562dID4gc3RyaW5nZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkuJkgPiB0aGlyZFwtb2ZcLXRoZVwtaGVhdmVubHlcLXN0ZW1zOwor5rKCID4gcml2ZXJcLWluXC1zb3V0aGVhc3RcLXNoYW5kb25nOwor56yIID4gYmFtYm9vXC1ib3hcLXVzZWRcLWNhcnJ5XC1ib29rczsKK+eToiA+IGxhZGxlXC1tYWRlXC1mcm9tXC1kcmllZFwtZ291cmQ7CivlkZcgPiBmaW5hbFwtcGFydGljbGVcLW9mXC1hc3NlcnRpb247CivnsKcgPiByZWVkXC1vZlwtd29vZHdpbmRcLWluc3RydW1lbnQ7Civom58gPiBzY2FseVwtZHJhZ29uXC13aXRoXC1mb3VyXC1sZWdzOwor5pWVID4gYW5cLWltcGVyaWFsXC1vcmRlclwtb3JcLWRlY3JlZTsKK+ijnyA+IGFcLWNhc3NvY2tcLW9yXC1yb2JlXC1vZlwtYVwtbW9uazsKK+eitCA+IGNoaXBwZWRcLWVkZ2VcLW9mXC1hXC1jb250YWluZXI7CivnmLQgPiBtYWxhcmlhXC1wZXN0aWxlbnRpYWxcLXZhcG9yczsKK+e6tiA+IGdyZWVuXC1zaWxrXC10aHJlYWRcLW9yXC10YXNzZWw7CivnvaEgPiB0aGVcLW5hbWVcLW9mXC1hXC1jZXJ0YWluXC1zdGFyczsKK+eZuCA+IGxhc3RcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7CivmqYcgPiBhXC1zbGVkZ2VcLWZvclwtdHJhbnNwb3J0YXRpb247CivnmosgPiB0aGVcLWhpZ2hcLWxhbmRcLWFsb25nXC1hXC1yaXZlcjsKK+a9jSA+IGNvdW50eVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+a0mSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nOwor542gID4gdG9cLWh1bnRcLWF0XC1uaWdodFwtYnlcLXRvcmNoZXM7CivpupIgPiBsZWdlbmRhcnlcLWF1c3BpY2lvdXNcLWFuaW1hbDsKK+ePqSA+IHRoZVwtdG9wXC1nZW1cLW9mXC10aGVcLXBlbmRhbnRzOwor6LClID4gdG9cLWNvbmZlclwtcG9zdGh1bW91c1wtdGl0bGVzOwor56erID4gZ2x1dGlub3VzXC12YXJpZXR5XC1vZlwtbWlsbGV0Owor56u9ID4gYW5jaWVudFwtd29vZHdpbmRcLWluc3RydW1lbnQ7CivltK4gPiBcKGVsZW1lbnRcLWluXC1tb3VudGFpblwtbmFtZXNcKTsKK+aEgCA+IHRvXC1jaGFuZ2VcLW9uZScnc1wtY291bnRlbmFuY2U7CivphKIgPiBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1ob25hbjsKK+eZjSA+IHVuaGVhbHRoeVwtbWFya3NcLW9uXC10aGVcLXNraW47CivphJ4gPiBjb3VudHlcLWluXC16aGVqaWFuZ1wtcHJvdmluY2U7Civpm5IgPiBibGFja1wtaG9yc2VcLXdpdGhcLXdoaXRlXC1tYW5lOwor5peSID4gZnJpbmdlc1wtb2ZcLXBlYXJsc1wtb25cLWNyb3duczsKK+eQiiA+IGFcLXBsYWNlXC1pblwtZWFzdGVyblwtc2hhbmRvbmc7CivomqggPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJlZXRsZVwtY2FzaDsKK+avsyA+IGZpbmVcLWhhaXJcLW9yXC1mdXJcLW9uXC1hbmltYWxzOwor55ilID4gdG9cLXJlY292ZXJcLWZyb21cLWFueVwtZGlzZWFzZTsKK+a4kSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nOwor5rWIID4gcml2ZXJcLWluXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5ZinID4gXChwaG9uZXRpY1wpXC1hc1wtaW5cLXB5cmltaWRpbmU7Civptb4gPiBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLWNyYW5lOwor6a6oID4gZXBpbmVwaGVsdXNcLXNlcHRlbWZhc2NpYXR1czsKK+mjpiA+IHdlbGxcLWJvaWxlZFwtY29uZ2VlXC1vclwtZ3J1ZWw7Civpm4ogPiB0aGVcLWNyb3dcLW9mXC1hXC1tYWxlXC1waGVhc2FudDsKK+mauiA+IGFcLWJpcmRcLWZseWluZ1wtaGlnaFwtYW1iaXRpb247CivphrEgPiB0b1wtYnJld1wtZm9yXC10aGVcLXNlY29uZFwtdGltZTsKK+mGlyA+IHRvXC1icmV3XC1mb3JcLXRoZVwtc2Vjb25kXC10aW1lOwor6YWWID4gd2luZVwtd2l0aFwtYmlyZFwtcG9pc29uXC1hZGRlZDsKK+mEvyA+IGNvdW50eVwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+mEqSA+IGNvdW50eVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mEjSA+IGFcLXRvd25cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivouZogPiB0cmVhZFwtdGhyb3VnaFwtbXVkXC1hbmRcLXdhdGVyOwor6KyaID4gdG9cLWNvbmZlclwtcG9zdGh1bW91c1wtdGl0bGVzOwor6KSYID4gY2VyZW1vbmlhbFwtZ293bnNcLW9mXC1hXC1xdWVlbjsKK+ifsCA+IHNtYWxsXC1zcGlkZXJcLXdpdGhcLWxvbmdcLWxlZ3M7Civom5UgPiB0aGVcLWNvbW1vblwtaW50ZXN0aW5hbFwtd29ybXM7CivogrcgPiBhcmVhXC1iZXR3ZWVuXC13YWlzdFwtYW5kXC1oaXBzOwor57a4ID4gZ3JlZW5cLXNpbGtcLXRocmVhZFwtb3JcLXRhc3NlbDsKK+e2nCA+IGFycmFuZ2VcLXRocmVhZHNcLWZvclwtd2VhdmluZzsKK+exhCA+IGFcLWJhc2tldFwtZm9yXC1jYXJyeWluZ1wtZWFydGg7Civnro8gPiBzdHJpbmdlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+eujiA+IGFuY2llbnRcLXdvb2R3aW5kXC1pbnN0cnVtZW50Owor562OID4gdGhpblwtb3V0c2lkZVwtc2tpblwtb2ZcLWJhbWJvbzsKK+eepCA+IHRvXC1ibGlua1wtb3JcLXR3aXRjaFwtdGhlXC1leWVzOwor55qQID4gdGhlXC1oaWdoXC1sYW5kXC1hbG9uZ1wtYVwtcml2ZXI7Civmv7AgPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmvqAgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZzsKK+a5niA+IHJpdmVyXC1pblwtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+a3oCA+IGx1eHVyaWFudFwtXChvZlwtd2F0ZXJcLXBsYW50c1wpOwor5rWwID4gYXR0ZW5kXC1cKG9mZmljaWFsXC1mdW5jdGlvbnNcKTsKK+azkSA+IHRoZVwtdml0cmVvdXNcLWdsYXplXC1vblwtY2hpbmE7CivmrqggPiB0b1wtb3BlblwtYXNcLWFuXC11bGNlclwtb3JcLXNvcmU7Civmno8gPiBhXC12YXJpZXR5XC1vZlwtZXZlcmdyZWVuXC10cmVlOwor5peIID4gZnJpbmdlc1wtb2ZcLXBlYXJsc1wtb25cLWNyb3duczsKK+aQhyA+IHRvXC1wcmVzc1wtZG93blwtd2l0aFwtdGhlXC1oYW5kOwor5by4ID4gYVwtYm93XC1zdHJldGNoZWRcLXRvXC10aGVcLWZ1bGw7Civlt6AgPiBzdHJlYW1zXC1ydW5uaW5nXC11bmRlcmdyb3VuZDsKK+W1myA+IGNvdW50eVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+W0syA+IGNvdW50eVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+W0mSA+IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdzdTsKK+W0mCA+IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdzdTsKK+W0kCA+IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdzdTsKK+WgsyA+IGxhbmRcLWFsbG90bWVudFwtZmV1ZGFsXC1ub2JsZTsKK+WZlSA+IHRvXC1zcGVha1wtZmFsc2VseVwtb3JcLXdyb25nbHk7CivlmYUgPiB0b1wtc3BlYWtcLWZhbHNlbHlcLW9yXC13cm9uZ2x5Owor5LipID4gdG9cLWpvaW5cLW9yXC1jb25uZWN0XC10aGVcLXZpbmU7CivkuJIgPiB0aGVcLXBlcmlvZFwtZnJvbVwtMVwtdG9cLTNcLWFcLm1cLjsKK+S1hSA+IHRvXC1leHRyYWN0XC1ieVwtYXBwbHlpbmdcLWhlYXQ7CivktLMgPiBkaXN0aWxsZXInJ3NcLWdyYWluc1wtb3JcLXllYXN0Owor5LStID4gZGlzdGlsbGVyJydzXC1ncmFpbnNcLW9yXC15ZWFzdDsKK+SzniA+IGJpcmRzXC1mbHlpbmdcLWFsbFwtZGlyZWN0aW9uczsKK+SziiA+IGFcLXdpbGRcLWR1Y2tcLWxpa2VcLXdhdGVyXC1iaXJkOwor5LODID4gYVwta2luZFwtb2ZcLXBob2VuaXhcLWxpa2VcLWJpcmQ7Civks4EgPiBhXC13aWxkXC1kdWNrXC1saWtlXC13YXRlclwtYmlyZDsKK+SqtyA+IHRvXC10b2lsXC1vclwtbGFib3JcLXNlZHVsb3VzbHk7CivkqocgPiBjdXNoaW9uZWRcLXNlYXRcLW9uXC1hXC12ZWhpY2xlOwor5Km/ID4gYVwtYmlnXC1kcnVtXC11c2VkXC1pblwtdGhlXC1hcm15Owor5KeYID4gYVwtbG93XC13YWxsXC1vblwtdGhlXC1yb2FkXC1zaWRlOwor5KayID4gZWF2ZXNcLW9mXC1hXC1hbmNlc3RyYWxcLXRlbXBsZTsKK+SkuyA+IGhlYXZ5XC1pcm9uXC1wYXJ0XC1vZlwtYVwtcGxvdWdoOwor5KOyID4gdG9cLWhlYXRcLXRoZVwtd2luZVwtb3ZlclwtbmlnaHQ7Civkoq8gPiB0b1wtY2hvb3NlXC1vclwtc2VsZWN0XC1jYXJlZnVsOwor5KCLID4gYmVsbFwtc2hhcGVkXC13aXRoXC1sYXJnZVwtYmFzZTsKK+SfriA+IHRvXC1jcmF3bFwtb25cLWhhbmRzXC1hbmRcLWtuZWVzOwor5Jy4ID4gc21hbGxcLXBpZWNlc1wtb2ZcLWJlYW5cLXN0YWxrczsKK+SchyA+IHRvXC1zcGVha1wtbm90XC1pblwtYVwtY2xlYXJcLXdheTsKK+SaoyA+IGNyb29rZWRcLWhvcm5zXC1vZlwtdGhlXC1hbmltYWw7CivkmpwgPiBjYXR0bGVcLXdpdGhcLWNyb3Nzd2lzZVwtaG9ybnM7CivkmaMgPiByYWdnZWRcLWdhcm1lbnRzXC1vclwtY2xvdGhpbmc7CivkmZUgPiBjbG90aGVzXC10aGF0XC1oYXZlXC1ub1wtbGluaW5nOwor5JmUID4gY2xvdGhlc1wtbWFkZVwtb2ZcLXBvb3JcLWZhYnJpYzsKK+SZkyA+IHRoZVwtbG93ZXJcLXBhcnRcLW9mXC1hXC1nYXJtZW50Owor5Ji5ID4gY2xvdGhlc1wtdGhhdFwtaGF2ZVwtbm9cLWxpbmluZzsKK+SYpSA+IHRoZVwtZnJvbnRcLW9mXC1hXC1jaGluZXNlXC1nb3duOwor5JijID4gY2xvdGhlc1wtdGhhdFwtaGF2ZVwtbm9cLWxpbmluZzsKK+SYgSA+IGFcLWJsdWVcLWdyZWVuXC1jb2xvcmVkXC1jaWNhZGE7Civkl7UgPiBhXC1kaXNlYXNlXC1hdHRhY2tlZFwtc2lsa3dvcm07Civkla4gPiBmbG93ZXJcLW9mXC10aGVcLWNocnlzYW50aGVtdW07CivklaYgPiBmbG93ZXJcLW9mXC10aGVcLWNocnlzYW50aGVtdW07CivklKUgPiBjb21tb25cLXZhcmlldHlcLW9mXC1hcnRlbWlzaWE7CivklJ8gPiBzaGFrZVwtYW5kXC13YXZlXC1vZlwtdGhlXC1ncmFzczsKK+SQvCA+IHRoaW5cLW1lbWJyYW5lXC1vZlwtdGhlXC10aHJvYXQ7CivkkK8gPiB1Z2x5XC1hcHBlYXJhbmNlXC1vZlwtYVwtcGVyc29uOwor5JCRID4gdGhpblwtY3V0XC1vZlwtdGhlXC1zbGljZWRcLW1lYXQ7CivkjbogPiBhXC1sZWdlbmRhcnlcLWdvYXRcLWxpa2VcLWJlYXN0Owor5Iy8ID4gYVwta2luZFwtb2ZcLWZpbmVcLXNpbGtcLWZhYnJpY3M7CivkjIQgPiBhXC1yb3BlXC1mb3JcLWRyYXdpbmdcLXVwXC13YXRlcjsKK+SLgSA+IGFcLXJvcGVcLWZvclwtZHJhd2luZ1wtdXBcLXdhdGVyOwor5IqeID4gdG9cLXJvbGxcLXJvdW5kXC13aXRoXC10aGVcLWhhbmQ7CivkipUgPiB3ZWxsXC1ib2lsZWRcLWNvbmdlZVwtb3JcLWdydWVsOwor5IqIID4gZGlzdGlsbGVyJydzXC1ncmFpbnNcLW9yXC15ZWFzdDsKK+SJuiA+IGRldGVyaW9yYXRlZFwtYW5kXC1iZWNvbWVcLXJlZDsKK+SJuSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5Im4ID4gc2xpcHNcLW9mXC1iYW1ib29cLWZvclwtd3JpdGluZzsKK+SJsyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImtID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiasgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJpiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImhID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiaAgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJmiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImZID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiY8gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJhiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImEID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiYEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIvSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5Ii8ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiLIgPiBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1maXNoaW5nOwor5IivID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiK0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIoyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiiID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiKEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SInSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiYID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiJcgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIliA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiPID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiI0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIjCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiLID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiIogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SHuiA+IGJlYW5zXC1hbmRcLXBlYXNcLWNvbGxlY3RpdmVseTsKK+SHtSA+IG9uZVwtb2ZcLXRoZVwtd2luZFwtaW5zdHJ1bWVudHM7Civkh6ogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SHniA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IebID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287Civkh5kgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SFqiA+IGRpc2Vhc2VcLW9mXC10aGVcLXByaXZhdGVcLXBhcnQ7CivkhLAgPiBmb3J0eVwtYnVuZGxlc1wtb2ZcLXJpY2VcLXBsYW50Owor5IOHID4gaW5rXC1mb3JcLWltcHJpbnRpbmdcLW9mXC1zZWFsczsKK+SAkSA+IHRvXC1nb3VnZVwtb3V0XC1hblwtZXllXC1vclwtZXllczsKK+O/gCA+IHVuaGVhbHRoeVwtbWFya3NcLW9uXC10aGVcLXNraW47CivjvY4gPiB0aGVcLXByb2Z1bmRpdHlcLW9mXC10aGVcLWhhcmVtOwor47ygID4gYVwtY3JvY2tcLXdpdGhcLW5hcnJvd1wtb3BlbmluZzsKK+O6rCA+IGFcLWxhcmdlXC1waWVjZVwtb2ZcLWphZGVcLXN0b25lOwor47qSID4gYmFya2luZ1wtb2ZcLWFcLWZyaWdodGVuZWRcLWRvZzsKK+O5liA+IHRvXC1mZWVkXC1hbmltYWxzXC13aXRoXC1ncmFpbnM7CivjuJIgPiB0b1wtYWJzdXJkXC1wdXJzdWl0XC1vclwtZGVzaXJlOwor466AID4gdG9vbFwtdG9cLWNsZWFyXC1vdXRcLXRoZVwtd2F0ZXI7CivjrZUgPiBhXC1ib2FyZFwtZm9yXC1jYXJyeWluZ1wtdGhpbmdzOwor46mbID4gdG9cLXJvbGxcLXJvdW5kXC13aXRoXC10aGVcLWhhbmQ7CivjqYYgPiB0b1wtYmVcLWluXC1mdWxsXC1wb3NzZXNzaW9uXC1vZjsKK+OoqyA+IHRvXC1iZVwtaW5cLWZ1bGxcLXBvc3Nlc3Npb25cLW9mOwor76eVID4ga3VubHVuXC1tb3VudGFpbnNcLWluXC1qaWFuZ3N1Owor46eVID4gdG9cLWZlZWxcLW9yXC10b3VjaFwtd2l0aFwtaGFuZHM7Civjp4IgPiBhXC1jYXZlXC1hXC1ob2xkXC1pblwtdGhlXC1ncm91bmQ7CivjppAgPiBhXC1zdHJhaWdodGZvcndhcmRcLWNoYXJhY3RlcjsKK+OltCA+IGRvXC1ub3RcLWNhcmVcLWFib3V0XC1zb21ldGhpbmc7CivvpJogPiB3aGl0ZVwtaG9yc2VcLXdpdGhcLWJsYWNrXC1tYW5lOwor46KsID4gYVwtYm93XC1zdHJldGNoZWRcLXRvXC10aGVcLWZ1bGw7CivjobUgPiByb29mXC1vZlwtdGhlXC1ob3VzZVwtY29ubmVjdGVkOwor46CfID4gYVwtbW91bnRhaW5cLWluXC1hbmNpZW50XC10aW1lczsKK+ObvSA+IHRvXC13YWxrXC1zbG93bHlcLWxpa2VcLWFcLXdvbWFuOwor45uuID4gd2lmZVwtb2ZcLW9uZScnc1wtZWxkZXJcLWJyb3RoZXI7Civjk4ggPiBzb3VuZFwtb2ZcLWZseWluZ1wtb3JcLXNwZWVkaW5nOwor45KrID4gY2hva2VkXC1hbmRcLXVuYWJsZVwtdG9cLWJyZWF0aDsKK+OSliA+IHRoZVwtcm9vdFwtc3RvY2tcLW9mXC10aGVcLWxvdHVzOwor55WmID4gc2VjdGlvbnNcLWluXC12ZWdldGFibGVcLWZhcm07CivnlLogPiByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+WbgSA+IG1vdmVcLWxpcHNcLWFzXC13aGVuXC1zcGVha2luZzsKK+S8piA+IG5vcm1hbFwtaHVtYW5cLXJlbGF0aW9uc2hpcHM7CivlmJsgPiBmaW5hbFwtZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor6JCoID4gYnVkZGhpc3RcLWdvZHNcLW9yXC1pbW1vcnRhbHM7CivmoZAgPiBuYW1lXC1hcHBsaWVkXC12YXJpb3VzXC10cmVlczsKK+iSgiA+IHBlZHVuY2xlXC1vclwtc3RlbVwtb2ZcLXBsYW50czsKK+e0uiA+IGRhcmtcLWJsdWVcLW9yXC1yZWRkaXNoXC1jb2xvcjsKK+ajtSA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRyZWVzOwor5qCqID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdHJlZXM7Civlk4kgPiBmaW5hbFwtZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor5oaLID4gdG9cLXN1cHByZXNzXC1pbm5lclwtZmVlbGluZ3M7CivlrZwgPiBiZVwtYXNcLWRpbGlnZW50XC1hc1wtcG9zc2libGU7CivnsrEgPiBiZXR0ZXJcLXZhcmlldGllc1wtb2ZcLW1pbGxldDsKK+WzkiA+IG1vdW50YWluXC1pblwtZ2Fuc3VcLXByb3ZpbmNlOwor5qaoID4gdG9cLXByZXNzXC1vclwtZXh0cmFjdFwtanVpY2VzOwor5ZerID4gbW92ZVwtbGlwc1wtYXNcLXdoZW5cLXNwZWFraW5nOwor6YSxID4gY291bnR5XC1hbmRcLWxha2VcLWluXC1qaWFuZ3hpOwor6I+gID4gc3BpbmFjaFwtYW5kXC1zaW1pbGFyXC1ncmVlbnM7Civmt54gPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1qaWFuZ3N1Owor5reEID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civoj48gPiByaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+aCsSA+IHRvXC1iZVwtZGVzaXJvdXNcLW9mXC1zcGVha2luZzsKK+a8ryA+IHJpdmVyXC1pblwtbm9ydGhlcm5cLXNoYW5kb25nOwor6JWZID4gc3BlY2llc1wtb2ZcLWZyYWdyYW50XC1vcmNoaWQ7Civmu4EgPiBkaXN0cmljdFwtaW5cLWFuaHVpXC1wcm92aW5jZTsKK+eLgSA+IGFcLXRyaWJlXC1vZlwtc2N5dGhpYW5cLW5vbWFkczsKK+mFoiA+IHRvYXN0XC1vbmUnJ3NcLWhvc3RcLXdpdGhcLXdpbmU7Civoob8gPiBjb2xsYXJcLW9yXC1sYXBlbFwtb2ZcLWdhcm1lbnQ7Civltp0gPiBwYXRoXC1sZWFkaW5nXC11cFwtYVwtbW91bnRhaW47Civml4MgPiBzaWxrXC1iYW5uZXJcLXdpdGhcLWJlbnRcLXBvbGU7CivpvZEgPiBicmVha1wtb3JcLXNtYXNoXC1pbnRvXC1waWVjZXM7Civnu4AgPiBkYXJrXC1ibHVlXC1vclwtcmVkZGlzaFwtY29sb3I7CivohJggPiBpbnRlcm5hbFwtY2F2aXR5XC1vZlwtc3RvbWFjaDsKK+mVkiA+IG1lYXN1cmVcLW9mXC13ZWlnaHRcLWZvclwtZ29sZDsKK+ecrSA+IGV2aWxcLWxvb2tcLW9mXC1kZWVwXC1zZXRcLWV5ZXM7CivplJYgPiB0aGVcLWNvbG9yXC1vZlwtdGhlXC1hXC1taW5lcmFsOwor6YKZID4gbW91bnRhaW5cLWluXC1oZW5hblwtcHJvdmluY2U7CivloY0gPiByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+aVqyA+IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civms7ogPiByaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+iQkSA+IGdyYXNzXC11c2VkXC1mb3JcLW1ha2luZ1wtbWF0czsKK+inryA+IHdpbmVcLWdvYmxldFwtbWFkZVwtZnJvbVwtaG9ybjsKK+iIoyA+IHRvXC1tb29yXC1hXC1ib2F0XC10b1wtdGhlXC1iYW5rOwor6b2PID4gYnJlYWtcLW9yXC1zbWFzaFwtaW50b1wtcGllY2VzOwor6aa1ID4gaG9yc2VcLXdpdGhcLXdoaXRlXC1iYWNrXC1sZWdzOwor6aOjID4gZGlzcGxheVwtZm9vZFwtZm9yXC1zaG93XC1vbmx5Owor6Z+yID4gYnJlYWtcLW9yXC1zbWFzaFwtaW50b1wtcGllY2VzOwor6ZeSID4gdXBwZXJcLXN0b3J5XC1kb29yXC1vclwtd2luZG93Owor6Y6wID4gbWVhc3VyZVwtb2ZcLXdlaWdodFwtZm9yXC1nb2xkOwor6YqBID4gYVwtd2VpZ2h0XC1vZlwtdGhpcnR5XC1jYXR0aWNzOwor6YaKID4gdG9cLXBvdXJcLXdpbmVcLWluXC1hXC1saWJhdGlvbjsKK+mDvyA+IGNvdW50eVwtaW5cLXNoYWFueGlcLXByb3ZpbmNlOwor6YOzID4gc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg6AgPiBwbGFjZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDmiA+IHRvd25zXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOVID4gc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg4ggPiBwbGFjZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mCoCA+IGNvdW50eVwtaW5cLXNoYWFueGlcLXByb3ZpbmNlOwor6LykID4gYVwtcGFsbFwtdG9cLWNvdmVyXC10aGVcLWhlYXJzZTsKK+i4kiA+IHRvXC1zbGlwXC1hbmRcLXNwcmFpblwtYVwtYmxpbWI7Civop7YgPiB3aW5lXC1nb2JsZXRcLW1hZGVcLWZyb21cLWhvcm47CivoppAgPiBhXC1zbGVlcFwtdG9cLXJlYWxpemVcLXRvXC1mZWVsOwor6JmhID4gc3VwcG9ydFwtc3RydWN0dXJlXC1mb3JcLWJlbGw7Civolr4gPiBsdXh1cmlhbnRcLWdyb3d0aFwtb2ZcLWZsb3dlcjsKK+iUlSA+IHBlZHVuY2xlXC1vclwtc3RlbVwtb2ZcLXBsYW50czsKK+iMiCA+IGFcLXBsYW50XC15aWVsZGluZ1wtYVwtcmVkXC1keWU7CivoiaQgPiB0b1wtbW9vclwtYVwtYm9hdFwtdG9cLXRoZVwtYmFuazsKK+iGhiA+IHRoZVwtY29ycFwtb2ZcLWFcLWJpcmRcLW9yXC1mb3dsOwor572tID4gZHJhZ1wtbmV0XC1tYWRlXC1vZlwtZmluZVwtbWVzaDsKK+e9jyA+IGVhcnRoZW5cLXN0YW5kXC1mb3JcLXdpbmVcLWp1ZzsKK+e9jSA+IGxhcmdlXC1lYXJ0aGVud2FyZVwtd2luZVwtamFyOwor57m4ID4gaGVtXC1vclwtYm9yZGVyXC1vZlwtYVwtZ2FybWVudDsKK+evnyA+IGx1eHVyaWFudFwtZ3Jvd3RoXC1vZlwtYmFtYm9vOwor56qGID4gdG9cLXB1dFwtYVwtY29mZmluXC1pblwtYVwtZ3JhdmU7CivnpbIgPiBvbWlub3VzXC1vclwtc2luaXN0ZXJcLXNwaXJpdDsKK+eZlSA+IGxvc3NcLW9mXC10aGVcLXNlbnNlXC1vZlwtc21lbGw7CivnlbcgPiByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+eUvCA+IHJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRzOwor55KIID4gYW5jaWVudFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+ePmyA+IHF1aWNrbHlcLWRldGVyaW9yYXRpbmdcLWphZGU7Civmv7wgPiByaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+a+tyA+IHdhdGVyXC1vdmVyZmxvd2luZ1wtZGlmZnVzZWQ7CivmuK4gPiByaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+avqSA+IGFcLWxlYXRoZXJcLWJhbGxcLWZvclwta2lja2luZzsKK+amgyA+IHJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRzOwor5o+5ID4gY2FycnlcLXRoaW5nc1wtb25cLW9uZScnc1wtYmFjazsKK+aPgSA+IHNvdW5kXC1vZlwtc2V0dGluZ1wtdXBcLWFcLWtvdG87Civls50gPiBtb3VudGFpblwtaW5cLWdhbnN1XC1wcm92aW5jZTsKK+WqpyA+IG15dGhvbG9naWNhbFwtc25haWxcLWdvZGRlc3M7Civlm4kgPiBleGNsYW1hdG9yeVwtZmluYWxcLXBhcnRpY2xlOwor5Zi3ID4gdGhlXC1yb2FyaW5nXC1vZlwtd2lsZFwtYmVhc3RzOwor5ZiQID4gZmluYWxcLWV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+WJniA+IGNhcnZpbmdcLW9yXC1lbmdyYXZpbmdcLWtuaWZlOwor5YaPID4gYWJ1dGlsb25cLWF2aWNlbm5hZVwtXChwbGFudFwpOwor5YCrID4gbm9ybWFsXC1odW1hblwtcmVsYXRpb25zaGlwczsKK+S5qyA+IHVzZWRcLWluXC1rb3JlYW5cLXBsYWNlXC1uYW1lczsKK+S1hiA+IGdyYWluc1wtZnJvbVwtdGhlXC1kaXN0aWxsZXJ5Owor5LS/ID4gZ3JhaW5zXC1mcm9tXC10aGVcLWRpc3RpbGxlcnk7Civksq8gPiBhXC1raW5kXC1vZlwtYmxhY2tcLXNtYWxsXC1iaXJkOwor5K+TID4gdGhlXC1oZWFkXC1ib25lXC1vZlwtbGl2ZXN0b2NrOwor5K62ID4gZmxvY2tcLW9mXC1ob3JzZXNcLXN0YW1wZWRpbmc7CivkrqMgPiBhXC15ZWxsb3dcLXdpdGhcLWFcLXdoaXRlXC10YWlsOwor5KyxID4gY29hcnNlXC1ncmFpbnNcLXN1Y2hcLWFzXC1jb3JuOwor5KmyID4gYVwtdG9vbFwtdXNlZFwtdG9cLWN1dFwtbGVhdGhlcjsKK+SpmiA+IHRvXC1tZW5kXC10aGVcLXNvbGVzXC1vZlwtc2hvZXM7CivkqZggPiB0b1wtbWVuZFwtdGhlXC1zb2xlc1wtb2ZcLXNob2VzOwor5KGmID4gdGhlXC1lbXB0eVwtc3BhY2VcLW9mXC1hXC13aGVlbDsKK+SgiSA+IHRvXC1ydW5cLWF3YXlcLW9yXC1lc2NhcGVcLWZyb207CivknpEgPiBhXC1yZWRcLXN3ZWxsaW5nXC1vZlwtdGhlXC1za2luOwor5JuvID4gdGhlXC1yZWFzb25hYmxlXC1vZlwtc3BlZWtpbmc7CivkloUgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JW/ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVvCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklbYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JW1ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVsyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklbEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWtID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVmyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZcgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWVID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVlCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZMgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWSID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVjSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklYogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWIID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVhyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklYUgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWAID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUuyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLggPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JS2ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUtCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLIgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSxID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUsCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklK4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JStID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUqiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklKEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSdID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUmSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklJQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSSID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUjiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklIwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSFID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC10cmVlczsKK+SUhCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklIEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JO9ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STvCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk7ogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOzID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SToyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk6IgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOfID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STkyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk5AgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOOID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STiiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk4kgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOCID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SStSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkrQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKxID4gdHdpZ3NcLW9mXC1oZW1wXC11c2VkXC1mb1wtZnVlbDsKK+SSqiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkqkgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKkID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSoSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkkp8gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKeID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSnCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkpsgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKaID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSlCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkjrcgPiBhblwtb2xkXC1tYW5cLXdpdGhcLXdoaXRlXC1oYWlyOwor5IygID4gaG9sZFwtb25cLXRvXC1vbmUnJ3NcLW93blwtdmlld3M7Civki4AgPiBzaG9lc1wtbWFkZVwtb2ZcLWhlbXBcLW9yXC1oYWlyOwor5IquID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFpbjsKK+SKrCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3JhaW47CivkiYIgPiBhXC1iYXNrZXRcLWZvclwtZWFydGhcLW9yXC1zb2lsOwor5IeWID4gcm9wZVwtbWFkZVwtb2ZcLWJhbWJvb1wtc3RyaXBzOwor5IaAID4gdG9cLWNvcnJ1cHRcLW9yXC1iZVwtY29ycnVwdGVkOwor5IW+ID4gc3RhcnRpbmdcLXRvXC1wdXRcLWZvcnRoXC1lYXJzOwor5IWsID4gc21hbGxcLWJ1bmRsZVwtb2ZcLXJpY2VcLXBsYW50Owor5IGOID4gdG9cLW1ha2VcLWFcLWNsb3NlXC1pbnNwZWN0aW9uOwor5ICKID4gYVwta2luZFwtb2ZcLXdhdGVyXC1jb250YWluZXJzOwor47ypID4gY29uY2F2ZVwtY2hhbm5lbHNcLW9mXC10aWxpbmc7CivjuqAgPiBhXC1ibGFja1wtYXBlXC13aXRoXC1sb25nXC10YWlsOwor47qVID4gdGhlXC1maWdodGluZ1wtc291bmRcLW9mXC1kb2dzOwor47maID4gc291bmRcLW9mXC1jYWxsaW5nXC10b1wtYVwtY2FsZjsKK+O5mSA+IHNvdW5kXC1vZlwtY2FsbGluZ1wtdG9cLWFcLWNhbGY7Civjt7YgPiB0b1wtZHJ5XC1vclwtd2FybVwtbmVhclwtYVwtZmlyZTsKK+O3gyA+IGZpcmVcLWJ1cm5zXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivjtJQgPiB0aGVcLW5vaXNlXC1vZlwtZmxvd2luZ1wtd2F0ZXI7CivjtIsgPiBkZWVwXC1hbmRcLWNsZWFyXC1cLXRvXC11cmluYXRlOwor47OnID4gdGhlXC13YXRlclwtZmxvd2luZ1wtZnJvbVwtXC5cLlwuOwor47G9ID4gdG9cLWhpdFwtb3JcLXRvXC1zdHJpa2VoZWF2aWx5Owor47G7ID4gZGlzZWFzZXNcLW9mXC1kdW1iXC1jcmVhdHVyZXM7CivjsaEgPiB0aGVcLXNvdWxcLW91dFwtb2ZcLW9uZScnc1wtYm9keTsKK+OxlCA+IGFcLXNtYWxsXC1xdWFudGl0eVwtb3JcLW51bWJlcjsKK+OvnyA+IGZvb3RcLW9mXC1hXC1oaWxsXC1vclwtbW91bnRhaW47Civjra4gPiBhXC1raW5kXC1vZlwtbGlxdW9yXC1jb250YWluZXI7CivvqIwgPiBkdXBsaWNhdGVcLW9mXC1iaWdcLWZpdmVcLWE0NjE7Civvp5QgPiBub3JtYWxcLWh1bWFuXC1yZWxhdGlvbnNoaXBzOwor76eGID4gYW5jaWVudFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+OmgyA+IHBlcmZlY3RcLXBlcnNvbmFsXC1jaGFyYWN0ZXI7CivjpbEgPiB0b1wtYmVcLWRlc2lyb3VzXC1vZlwtc3BlYWtpbmc7CivjpY0gPiB0b1wtYmVhclwtamVhbG91c1wtaGF0cmVkXC1mb3I7CivjpKwgPiBmdWxsXC1vZlwtYW5nZXJcLWFuZFwtdmV4YXRpb247CivjpI4gPiBhXC1tb2RlbFwtb3JcLXR5cGljYWxcLWV4YW1wbGU7CivjpIQgPiByYWdpbmdcLWFuaW1vc2l0eVwtb3JcLWhhdHJlZDsKK+OjpyA+IHRoZVwtc3VjY2Vzc2lvblwtaW5cLWFcLWZhbWlseTsKK+OjoyA+IHRvXC13YWxrXC1pblwtYW5cLXVuc3RlYWR5XC13YXk7CivjorggPiBkZXZpY2VcLWZvclwtcmVndWxhdGluZ1wtYm93czsKK+OitiA+IGRldmljZVwtZm9yXC1yZWd1bGF0aW5nXC1ib3dzOwor46KSID4gYW5cLWFsbW9zdFwtY29sbGFwc2luZ1wtaG91c2U7CivjnKogPiBuYW1lXC1vZlwtYVwtZmFtaWx5XC1vclwtYVwtY2xhbjsKK+OclSA+IHJlbGF0aXZlc1wtdGhyb3VnaFwtbWFycmlhZ2U7Civjm7IgPiB0aGVcLWhhaXJcLW9uXC10aGVcLWh1bWFuXC1oZWFkOwor45q/ID4gYVwtZ29kZGVzcycnc1wtbmFtZVwtaW5cLWxlZ2VuZDsKK+OZoSA+IGFcLWtpbmRcLW9mXC1lYXRhYmxlXC1tdXNocm9vbTsKK+OYuSA+IHRvXC1zcHJlYWRcLXNvaWxcLW9uXC10aGVcLXJvYWQ7CivjmKQgPiBjaXJjbGVcLW9mXC10aGVcLW1vdmluZ1wtd2F0ZXI7CivjlqggPiBpbmRpc3RpbmN0XC1uYXNhbFwtdXR0ZXJhbmNlOwor45K9ID4gYVwta2luZFwtb2ZcLWNhcFwtZm9yXC1jaGlsZHJlbjsKK+OQliA+IGFcLXRyYW5zbGF0ZWRcLW5hbWVcLW9mXC1pbmRpYTsKK+WxiiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRpbWU7CivlsYYgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10aW1lOwor6LCBID4gd2hvXD9cLXdob21cP1wtd2hvc2VcP1wtYW55b25lXD87CivoqrAgPiB3aG9cP1wtd2hvbVw/XC13aG9zZVw/XC1hbnlvbmVcPzsKK+mYvyA+IHByZWZpeFwtZm9yXC1wZW9wbGUnJ3NcLW5hbWVzOwor6I6iID4gcG9kc1wtb2ZcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+eLhCA+IHRyaWJlXC1mcm9tXC1ub3J0aGVyblwtY2hpbmE7CivnubAgPiB0b1wtcmVlbFwtc2lsa1wtZnJvbVwtY29jb29uczsKK+a8kyA+IHJpdmVyXC1pblwtZ3Vhbmd4aVwtcHJvdmluY2U7CivlkosgPiBxdWVzdGlvblwtZm9ybWluZ1wtcGFydGljbGU7Civpup8gPiBmZW1hbGVcLW9mXC1jaGluZXNlXC11bmljb3JuOwor5ritID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor6IqcID4gbHV4dXJpb3VzXC1ncm93dGhcLW9mXC13ZWVkczsKK+e7jiA+IHRvXC11bnJhdmVsXC1vclwtdW5yZWVsXC1zaWxrOwor55KQID4gYmVhdXRpZnVsXC12YXJpZXR5XC1vZlwtamFkZTsKK+mftiA+IG11c2ljXC1vZlwtdGhlXC1lbXBlcm9yXC1zaHVuOwor6ayfID4gZHJlc3NcLWhhaXJcLWluXC1jb2lsZWRcLWtub3Q7CivnvYIgPiBsb25nXC1uZWNrZWRcLWphclwtb3JcLWJvdHRsZTsKK+mdsyA+IHN0cmFwXC1vblwtYVwtaG9yc2UnJ3NcLWJyZWFzdDsKK+a3piA+IHJpdmVyXC1pblwtamlhbmd4aVwtcHJvdmluY2U7CivmkKEgPiB0b1wtcHVzaFwtb3Zlclwtb3JcLXB1c2hcLWJhY2s7Civoia4gPiBzZXZlbnRoXC1vZlwtZWlnaHRcLWRpYWdyYW1zOwor5rmfID4gcml2ZXJcLWluXC1xaW5naGFpXC1wcm92aW5jZTsKK+azuCA+IHJpdmVyXC1pblwtamlhbmd4aVwtcHJvdmluY2U7CivojZogPiBwb2RzXC1vZlwtbGVndW1pbm91c1wtcGxhbnRzOwor54yxID4gYVwtbW9ua2V5XC13aXRoXC15ZWxsb3dcLWhhaXI7CivmtqogPiByaXZlclwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5LqzID4gbmFtZVwtb2ZcLWRpc3RyaWN0XC1pblwtYW5odWk7CivolLogPiBydXNoXC11c2VkXC1mb3JcLW1ha2luZ1wtbWF0czsKK+eQrCA+IHRoZVwtdmlydHVlXC1vZlwtYVwtZ2VudGxlbWFuOwor5rKpID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor54yXID4gZXhjbGFtYXRpb25cLW9mXC1hZG1pcmF0aW9uOwor6byZID4gZHJ1bVwtY2FycmllZFwtb25cLWhvcnNlYmFjazsKK+iVsiA+IHZhcmlldHlcLW9mXC1hcnRlbWlzaWFcLXNlZWs7Civnk54gPiB5b3VuZ1wtbWVsb25zXC1qdXN0XC1mb3JtaW5nOwor6L6BID4gY2FydFwtd2hlZWxcLXdpdGhcLW5vXC1zcG9rZXM7CivphYYgPiBuYW1lXC1vZlwtemhvdVwtcGVyaW9kXC1zdGF0ZTsKK+m6kCA+IGZlbWFsZVwtb2ZcLWNoaW5lc2VcLXVuaWNvcm47CivpsLwgPiB0aGVcLXdlYXRoZXJcLW9yXC1kb2pvXC1sb2FjaDsKK+mflCA+IGFcLXdyYXBwZXJcLW9yXC1jYXNlXC1mb3JcLWJvdzsKK+mZlyA+IGFcLXN0ZWVwXC1oaWxsXC5cLXByZWNpcGl0b3VzOwor6Y++ID4gdGhlXC10cmlnZ2VyXC1vZlwtYVwtY3Jvc3Nib3c7CivphKAgPiBjb3VudHlcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6YScID4gY291bnR5XC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mEjiA+IGFcLXBsYWNlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YODID4gY291bnR5XC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+i8hyA+IGNhcnRcLXdoZWVsXC13aXRoXC1ub1wtc3Bva2VzOwor6Ke3ID4gdG9cLXByb2Nlc3NcLW9yXC1jYXJ2ZVwtaG9ybnM7CivonbAgPiB2aXBlcmFcLXJ1c3NlbGlpXC1zaWFtZW5zaXM7CivomIQgPiB2YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhXC1zZWVrOwor6JWqID4gbHV4dXJpb3VzXC1ncm93dGhcLW9mXC13ZWVkczsKK+iRtiA+IGRyYWJhXC1uZW1lcm9zYVwtYmViZVwtY2FycGE7CivoipQgPiBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLXBsYW50czsKK+iGpSA+IGVnZ3NcLW9mXC1iaXJkc1wtb3JcLXJlcHRpbGVzOwor572MID4gbG9uZ1wtbmVja2VkXC1qYXJcLW9yXC1ib3R0bGU7CivnvYMgPiBsb25nXC1uZWNrZWRcLWphclwtb3JcLWJvdHRsZTsKK+e6kSA+IHRvXC1zb2Z0ZW5cLWhlbXBcLWJ5XC1ib2lsaW5nOwor57m5ID4gdG9cLXVucmF2ZWxcLW9yXC11bnJlZWxcLXNpbGs7CivnsakgPiBiYW1ib29cLWNvbnRhaW5lclwtZm9yXC1mb29kOwor57GdID4gYVwtdHViZVwtdG9cLWhvbGRcLWNob3BzdGlja3M7CivnrL4gPiBiYW1ib29cLWNvbnRhaW5lclwtZm9yXC1mb29kOwor56yOID4gYmFtYm9vXC13aXRoXC1ibGFja1wtcGF0Y2hlczsKK+emmCA+IGltcGVyaWFsXC1hbmNlc3Rvclwtd29yc2hpcDsKK+ekhCA+IHBsYWNlXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivnkqogPiBwZWFybFwtcGVuZGFudHNcLW9uXC1jb3JvbmV0Owor55G9ID4gdGlua2xpbmdcLW9mXC1qYWRlXC1wZW5kYW50czsKK+eMsiA+IHNtb2tlXC1vclwtZmxhbWVzXC1mcm9tXC1maXJlOwor54CYID4gcml2ZXJcLWluXC1qaWFuZ3hpXC1wcm92aW5jZTsKK+a6jiA+IHJpdmVyXC1pblwtZ3Vhbmd4aVwtcHJvdmluY2U7CivmuoggPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGk7Civms5wgPiBhXC1yaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+azkiA+IGFcLXJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5rGtID4gY29uZmx1ZW5jZVwtb2ZcLXR3b1wtc3RyZWFtczsKK+arvSA+IHNoYXBlXC13b29kXC1ieVwtdXNlXC1vZlwtaGVhdDsKK+aZrCA+IGZpcnN0XC1iaXJ0aGRheVwtb2ZcLWFcLWNoaWxkOwor5oKKID4gd2lzZVwuXC10b1wta25vd1wtaW50dWl0aXZlbHk7CivlvY0gPiB0b1wtZHJhd1wtYVwtYm93XC10b1wtdGhlXC1mdWxsOwor5bqFID4gYW5cLWludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor5ayAID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor5LW1ID4geWVsbG93aXNoXC1ibGFja1wtYW5kXC13aGl0ZTsKK+S1qyA+IGxpZ2h0XC1yZWRcLXllbGxvd2lzaFwtYmxhY2s7CivktJsgPiB0b1wtbWFrZVwtZGVjb2N0aW9uXC1vZlwtc2FsdDsKK+SztyA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1jaGlja2VuOwor5LOGID4gYVwta2luZFwtb2ZcLXNwZWNpZXNcLW9mXC1teW5hOwor5LCCID4gYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7Civkr78gPiBhXC1jb2lmZnVyZVwtd2l0aFwtYVwtdG9wa25vdDsKK+SvvCA+IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K+0ID4gYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7Civkr7IgPiBhXC1jb2lmZnVyZVwtd2l0aFwtYVwtdG9wa25vdDsKK+SulSA+IGhvcnNlXC13aXRoXC13aGl0ZVwtZm9yZWhlYWQ7CivkraggPiB3aW5lXC1wb3VyZWRcLWluXC1hXC1saWJhdGlvbjsKK+SsvSA+IHdpbmVcLXBvdXJlZFwtaW5cLWFcLWxpYmF0aW9uOwor5KuAID4gdGhlXC1sb3dlclwtZW5kXC1vZlwtdGhlXC1qYXdzOwor5KmoID4gYVwtd3JhcHBlclwtb3JcLWNhc2VcLWZvclwtYm93Owor5KmdID4gdG9cLXRhblwtYW5kXC1zb2Z0ZW5cLWxlYXRoZXI7CivkpIIgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdmluZWdhcjsKK+SjtCA+IHRvXC1sb3NlXC10ZW1wZXJcLXdoZW5cLWRydW5rOwor5KOGID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWdhb21pOwor5KKyID4gdG9cLWdvXC1hbGxcLXRoZVwtd2F5XC1mb3J3YXJkOwor5KKuID4gcmFwaWRcLW1hcmNoaW5nXC1vclwtcnVubmluZzsKK+SioSA+IHRvXC1zdGFtcFwtdGhlXC1mb290XC1mb3J3YXJkOwor5KG5ID4gdGhlXC1sb3dcLXJlYXJcLW9mXC1hXC1jaGFyaW90Owor5KGvID4gc291bmRcLW9mXC1tb3ZpbmdcLWNhcnJpYWdlczsKK+ShqyA+IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoaEgPiB0b1wtZ2V0XC11cFwtaW50b1wtYVwtY2FycmlhZ2U7CivkoZggPiBzb3VuZFwtb2ZcLW1vdmluZ1wtY2FycmlhZ2VzOwor5KGSID4gc291bmRcLW9mXC1tb3ZpbmdcLWNhcnJpYWdlczsKK+SglSA+IHJhcGlkXC1tYXJjaGluZ1wtb3JcLXJ1bm5pbmc7CivkmLggPiB0aGVcLWxvd2VyXC1mcm9udFwtb2ZcLWFcLXJvYmU7CivkmJIgPiBib3knJ3NcLXJlcHJvZHVjdGl2ZVwtb3JnYW5zOwor5JWEID4gbWVhdFwtaW5cLXRoZVwtZm9ybVwtb2ZcLXBhc3RlOwor5JOLID4gZWxtXC1zZWVkc1wtXC1cLVwtdXNlZFwtYXNcLWZvb2Q7CivkkaIgPiBhXC1rbmlmZVwtc2hhcGVkXC1zbWFsbFwtYm9hdDsKK+SRiCA+IG1lYXRcLXRvXC1vZmZlclwtZm9yXC13b3JzaGlwOwor5I2vID4gZ2FvdFwtd2l0aFwtZGlmZmVyZW50XC1ob3JuczsKK+SNoiA+IG5ldHRlZFwtdmVpbmVkXC13aW5kb3dcLXNpbGw7Civki58gPiB0aGVcLXdlaWdodFwtb25cLWFcLXN0ZWVseWFyZDsKK+SKtiA+IGFcLXJvcGVcLWZvclwtbGVhZGluZ1wtY2F0dGxlOwor5ImXID4gYVwtcmVjZXB0YWNsZVwtb3JcLWNvbnRhaW5lcjsKK+SEuCA+IGdyYWluc1wtcHJvZHVjaW5nXC1ub1wtZnJ1aXQ7CivkhJIgPiByaXBlbmluZ1wtb2ZcLXBhZGR5XC1vclwtcmljZTsKK+SDgSA+IHVuZXZlblwtb3JcLXJ1Z2dlZFwtdGVycmFpbnM7CivkgZQgPiBiaWdcLWV5ZXNcLXByb3R1YmVyYW50XC1leWVzOwor47+wID4gZHVyYWJsZVwtYW5kXC1zb2xpZFwtbGVhdGhlcjsKK+O/giA+IG9ic3RyYWN0aW9uXC1vZlwtdGhlXC1ib3dlbHM7CivjvrUgPiBhXC1kYXJrXC1jb2xvcmVkXC1iaXJ0aFwtbWFyazsKK+O+nCA+IHdlYWtcLWJyZWF0aFwtb2ZcLWFcLXNpY2tcLW1hbjsKK+O9viA+IGFcLWtpbmRcLW9mXC13b21hbicnc1wtZGlzZWFzZTsKK+O7jyA+IHRpbmtsaW5nXC1vZlwtamFkZVwtcGVuZGFudHM7CivjuoAgPiBhXC1tb25rZXlcLXdpdGhcLXllbGxvd1wtaGFpcjsKK+O4siA+IGFcLWtpbmRcLW9mXC1tb3VudGFpblwtY2F0dGxlOwor47evID4gc21va2VcLWFuZFwtZHVzdFwtZXZlcnl3aGVyZTsKK+O2uiA+IHRoZVwtbGlnaHRcLW9yXC1nbG93XC1vZlwtZmlyZTsKK+O2miA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+O1vSA+IHRoZVwtc3RyZW5ndGhcLW9mXC1hXC1jdXJyZW50Owor47GlID4gdGhlXC1ldmlsXC1zcGlyaXRzXC1jb21lXC1vdXQ7CivjsKYgPiB0b1wtYnJlYXRoXC13aXRoXC1tb3V0aFwtb3BlbjsKK+OwlCA+IGFcLWtpbmRcLW9mXC1lZGlibGVcLW11c2hyb29tOwor47COID4gYVwtd29vZGVuXC1wZXN0bGVcLW9yXC1yYW1tZXI7CivjrZsgPiBhXC1raW5kXC1vZlwtY2xpbWJpbmdcLXBsYW50czsKK+OpoCA+IGFcLWZpZXJjZVwtb3JcLWJsb29keVwtYmF0dGxlOwor76ezID4gZmVtYWxlXC1vZlwtY2hpbmVzZVwtdW5pY29ybjsKK+OmmyA+IHRvXC13YWxrXC1pblwtYVwtY29tcG9zZWRcLXdheTsKK+OgnSA+IGxvZnR5XC1hbmRcLXN0ZWVwXC1tb3VudGFpbnM7CivjoJAgPiBoaWdoXC1hbmRcLXBvaW50ZWRcLW1vdW50YWluOwor456aID4gdG9cLXBpbGVcLXVwXC1sYXllclwtYnlcLWxheWVyOwor45yvID4gYVwtd29yZFwtdG9cLWRlc2lnbmF0ZVwtd29tYW47CivjnK4gPiB0b1wtZ29cLWJleW9uZFwtbm9ybWFsXC1saW1pdDsKK+OakyA+IHRpZVwtYmVhbXNcLW9mXC1hXC1zbWFsbFwtYm9hdDsKK+OYjCA+IHRvXC1sYXVnaFwtd2l0aG91dFwtc3RvcHBpbmc7Civjl6YgPiBhXC1sb3VkXC1hbmRcLWNvbmZ1c2VkXC1ub2lzZTsKK+OXmiA+IHZleGluZ2x5XC12ZXJib3NlXC1vclwtd29yZHk7Civjl5UgPiB0aGVcLWNyb3dpbmdcLW9mXC1hXC1waGVhc2FudDsKK+OWhCA+IHNvdW5kXC1vZlwtY2FsbGluZ1wtY2hpY2tlbnM7CivjlZogPiBjbGF3c1wtb2ZcLWJpcmRzXC1vclwtYW5pbWFsczsKK+OQsyA+IGhpZ2hcLWFuZFwtbGV2ZWxcLW9uXC10aGVcLXRvcDsKK+icgCA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7CivmtJsgPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civlj5QgPiBmYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivntbkgPiBraW5kXC1vZlwtdGhpY2tcLXN0aWZmXC1zaWxrOwor572pID4gYmFza2V0XC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5aS3ID4gYW5jaWVudFwtYmFyYmFyaWFuXC10cmliZXM7CivnoLAgPiBzb3VuZFwtb2ZcLWNyYXNoaW5nXC1zdG9uZXM7Civlk44gPiBpbnRlcmplY3Rpb25cLW9mXC1zdXJwcmlzZTsKK+aclCA+IGZpcnN0XC1kYXlcLW9mXC1sdW5hclwtbW9udGg7Civmj6MgPiBwdXRcLXRoaW5nc1wtdW5kZXJcLWNsb3RoZXM7CivltYsgPiBvbWVpXC1tb3VudGFpblwtaW5cLXNpY2h1YW47CivpgrkgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor57yJID4gdG9cLXNld1wtaW5cLWNsb3NlXC1zdGl0Y2hlczsKK+e7oiA+IGtpbmRcLW9mXC10aGlja1wtc3RpZmZcLXNpbGs7CivlmbYgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uczsKK+axlSA+IGJhc2tldFwtZm9yXC1jYXRjaGluZ1wtZmlzaDsKK+aOsCA+IHRvXC1icmVha1wtd2l0aFwtYm90aFwtaGFuZHM7CivpnIYgPiBhXC1zdWRkZW5cLXBlYWxcLW9mXC10aHVuZGVyOwor5ryzID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGVuYW47Civmsb4gPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civlt7MgPiBzaXh0aFwtb2ZcLXR3ZWx2ZVwtYnJhbmNoZXM7CivmsbQgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZW5hbjsKK+WXnSA+IGNhY2tsaW5nXC1vZlwtZm93bHNcLXRvXC1nYWc7Civlp5ggPiBpbGxpY2l0XC1zZXh1YWxcLXJlbGF0aW9uczsKK+mcjyA+IGZhbGxpbmdcLW9mXC1zbm93XC1hbmRcLXJhaW47Civpg7ggPiBjb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivlkaYgPiB0aGVcLWJsZWF0aW5nXC1vZlwtdGhlXC1kZWVyOwor5o6uID4gdG9cLWJlYXJcLW9uXC10aGVcLXNob3VsZGVyczsKK+iOhiA+IGFcLWtpbmRcLW9mXC1sZWdlbmRhcnlcLXRyZWU7CivpmKEgPiBmb290cGF0aHNcLWJldHdlZW5cLWZpZWxkczsKK+m4qiA+IHNwZWNpZXNcLW9mXC10YWl3YW5cLXBpZ2VvbjsKK+WTlCA+IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpb25zOwor5rCQID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC10cmliZTsKK+WRpCA+IHB1cmluZVwtaW5cLWNoZW1cLlwtY29tcG91bmQ7CivlrJcgPiBzdWNjZXNzaW9uXC10b1wtdGhlXC10aHJvbmU7CivmsqMgPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civop48gPiBtZWV0XC1vclwtc2VlXC11bmV4cGVjdGVkbHk7Civmv64gPiBjb3VudHlcLWluXC1oZW5hblwtcHJvdmluY2U7Civpg7QgPiBjb3VudHlcLWluXC1odW5hblwtcHJvdmluY2U7Civovb4gPiBsb3dcLXJlYXJcLXBvcnRpb25cLW9mXC1jYXJ0Owor56ieID4gZ3JhaW5cLXJlYWR5XC1mb3JcLWdyaW5kaW5nOwor54GeID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6YOnID4gY291bnR5XC1pblwtaHViZWlcLXByb3ZpbmNlOwor6Lm8ID4gd2ViYmVkXC1mZWV0XC1vZlwtd2F0ZXJmb3dsOwor55SRID4gYm9pbGVyXC1mb3JcLXN0ZWFtaW5nXC1yaWNlOwor5aaXID4gd2lmZVwtb2ZcLW1vdGhlcicnc1wtYnJvdGhlcjsKK+a1oCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1YmVpOwor6bOUID4gc3dpbW1pbmdcLWJsYWRkZXJcLW9mXC1maXNoOwor56+MID4gYW5jaWVudFwtbXVzaWNcLWluc3RydW1lbnQ7Civnp5UgPiBlbXB0eVwtZ3JhaW5cLW9yXC1yaWNlXC1odXNrOwor55CaID4gb3JuYW1lbnRhbFwtZ2Vtc1wtZm9yXC1iZWx0Owor6bK1ID4gY3J5cHRvYnJhbmNodXNcLWphcG9uaWN1czsKK+iJqCA+IGxvbmdcLWFuZFwtbmFycm93XC13YXJcLWJvYXQ7CivmtpEgPiByaXZlclwtaW5cLXNoYW5zaVwtcHJvdmluY2U7Civpg48gPiBjb3VudHlcLWluXC1oZW5hblwtcHJvdmluY2U7Civpm6kgPiBvZmZlclwtc2FjcmlmaWNlXC1mb3JcLXJhaW47Civkvb4gPiBhXC1yb3dcLW9yXC1maWxlXC1vZlwtZGFuY2VyczsKK+e8giA+IHRoZVwtd29vZlwtb2ZcLWFcLXdvdmVuXC1pdGVtOwor6Im0ID4gdGhlXC1jb3VudGVuYW5jZVwtY2hhbmdpbmc7Civmu48gPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZWJlaTsKK+mDviA+IGNvdW50eVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+m3niA+IHRoZVwtdHVycXVvaXNlXC1raW5nZmlzaGVyOwor6bWBID4gbXljdGljb3JheFwtcHJhc2lub3NjZWxlczsKK+m0oyA+IHNwZWNpZXNcLW9mXC10YWl3YW5cLXBpZ2VvbjsKK+mwviA+IHN3aW1taW5nXC1ibGFkZGVyXC1vZlwtZmlzaDsKK+mvoiA+IGNyeXB0b2JyYW5jaHVzXC1qYXBvbmljdXM7CivprrAgPiBhXC1zbWFsbFwta2luZFwtb2ZcLXN0dXJnZW9uOwor6augID4gc2hhdmVcLWhlYWRcLWFzXC1wdW5pc2htZW50Owor6aiVID4gbmFtZVwtb2ZcLWFcLWZhYnVsb3VzXC1ob3JzZTsKK+mfgiA+IGFcLXNhZGRsZVwtZmxhcFwuXC10cmFwcGluZ3M7CivpmbQgPiBhXC1wYXJhcGV0XC1vblwtYVwtY2l0eVwtd2FsbDsKK+mXpCA+IHdhbGxcLWFyb3VuZFwtbWFya2V0XC1wbGFjZTsKK+mEsiA+IGNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+mElyA+IGNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+mEliA+IGNvdW50eVwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+mEkiA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7Civpg58gPiBjb3VudHlcLWluXC1oZW5hblwtcHJvdmluY2U7CivovIogPiBsb3dcLXJlYXJcLXBvcnRpb25cLW9mXC1jYXJ0Owor6LSRID4gXDxhYmJydlw+XC1qaWFuZ3hpXC1wcm92aW5jZTsKK+iooSA+IHRvXC1jaGFudFwtdG9cLW1vYW5cLXRvXC1zaWdoOwor6KavID4gbWVldFwtb3JcLXNlZVwtdW5leHBlY3RlZGx5Owor6JuBID4gcG9tcG9uaWFcLW1hY3VsYXRpb2NvbGxpczsKK+iYgCA+IGZhbGxpbmdcLWxlYXZlc1wtYW5kXC1iYXJrczsKK+iXuiA+IHJ1c2hcLXVzZWRcLWluXC1tYWtpbmdcLW1hdHM7Civoj7QgPiBzbWFsbFwtYnVkZGhpc3RcLW1vbmFzdGVyeTsKK+iOlCA+IGZyaXRpbGxhcmlhXC12ZXJ0aWNpbGxhdGE7CivojLwgPiBjaHJ5c2FudGhlbXVtXC1jb3JvbmFyaXVtOwor6ImlID4gYW5cLW9hclwtb3JcLXBhZGRsZVwuXC10b1wtcm93Owor6IaZID4gY2FsbG91c1wtc2tpblwtb25cLXRoZVwtZmVldDsKK+iFnCA+IHF1aWNrZW5pbmdcLW9mXC10aGVcLWZvZXR1czsKK+iCsyA+IHRoZVwtY29ybmVyc1wtb2ZcLXRoZVwtbW91dGg7Civnv5sgPiBsb29rXC1vZlwtcnVtcGxlZFwtZmVhdGhlcnM7CivnvZ0gPiBuZXRcLWZvclwtY2F0Y2hpbmdcLXJhYmJpdHM7Civnt50gPiB0b1wtc2V3XC1pblwtY2xvc2VcLXN0aXRjaGVzOwor57eZID4gdGhlXC13b29mXC1vZlwtYVwtd292ZW5cLWl0ZW07Civnt4wgPiB0YXNzZWxzXC1oYW5naW5nXC1mcm9tXC1oYXQ7CivnrbggPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1ob25hbjsKK+eomSA+IGdyYWluXC1yZWFkeVwtZm9yXC1ncmluZGluZzsKK+eSoCA+IGFcLXBpZWNlXC1vZlwtcHJlY2lvdXNcLWphZGU7CivnjrYgPiBuYW1lXC1vZlwtb25lXC1raW5kXC1vZlwtamFkZTsKK+eNniA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZG9nOwor54yUID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC10cmliZTsKK+eBqCA+IHRoZVwtcml2ZXJcLWdhblwtaW5cLWppYW5neGk7CivngYMgPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civmv7IgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odW5hbjsKK+a5iyA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+a0pyA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhvbmFuOwor5qinID4gemFudGhveHlsdW1cLWFpbGFudGhvaWRlczsKK+ampCA+IHBlcmNoXC1mb3JcLWZvd2xzXC1yb29zdFwtb247CivmoIIgPiBhXC1raW5kXC1vZlwtZXZlcmdyZWVuXC10cmVlOwor5pehID4gY2hva2VcLW9uXC1zb21ldGhpbmdcLWVhdGVuOwor5pKLID4gdG9cLXJ1YlwtYmV0d2VlblwtdGhlXC1oYW5kczsKK+aDjCA+IHRvXC1iZWFyXC1hXC1ncnVkZ2VcLWFnYWluc3Q7CivltLYgPiBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1oaWxsOwor5bSBID4gYVwtcGxhY2VcLWluXC10YWl3YW5cLXRhaW5hbjsKK+WwniA+IGZ1ZWxcLXVzZWRcLWZvclwtc2FjcmlmaWNlczsKK+WnuiA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7CivlpZ4gPiB0aGVcLXN0cmlkZVwtbWFkZVwtYnlcLWFcLW1hbjsKK+WklyA+IHRvXC10dXJuXC1vdmVyXC13aGVuXC1hc2xlZXA7Civll7YgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uczsKK+WHnCA+IHNoaXZlclwtd2l0aFwtY29sZFwtb3JcLWZlYXI7Civlg7AgPiBhbmNpZW50XC1hYm9yaWdpbmFsXC10cmliZTsKK+S6gyA+IG5hbWVcLW9mXC1hXC1raW5kXC1vZlwtYW5pbWFsOwor5Lm6ID4gcGFpbnRpbmdcLXRvb2xcLXBsYWNlXC1uYW1lOwor5Lm2ID4ga29yZWFuXC1wbGFjZVwtbmFtZVwtcGhvbGhhOwor5LWCID4gdG9cLWdyaW5kXC13aGVhdFwtdG9cLXBvd2RlcjsKK+SysyA+IGJpcmRzXC1mbHlpbmdcLXVwXC1hbmRcLWRvd247CivkspsgPiBhblwtYW5jaWVudFwtbmFtZVwtZm9yXC10dW5hOwor5LKEID4gYVwta2luZFwtb2ZcLWZpaXNoXC1pblwtb2NlYW47CivksI0gPiBhXC1raW5kXC1vZlwtZGFya1wtcmVkXC1wYWludDsKK+SwhiA+IGJlYXV0aWZ1bFwtYW5kXC1oYWlyeVwtbWFuZTsKK+SvliA+IHRoZVwtbXVzY2xlc1wtb2ZcLXRoZVwtdGhpZ2g7CivkrLMgPiBjYWtlc1wtbWFkZVwtb2ZcLXJpY2VcLWZsb3VyOwor5KuvID4gdG9cLXRha2VcLWFcLWNhc3VhbFwtbG9va1wtYXQ7CivkqoAgPiBrbm93blwtdG9nZXRoZXJcLWFzXC1zYWRkbGU7CivkqaogPiBrbm93blwtdG9nZXRoZXJcLWFzXC1zYWRkbGU7CivkqJIgPiBzb3VuZFwtb2ZcLXRoZVwtd2F0ZXJcLWRyb3BzOwor5KaoID4gYVwtZG9vclwtY3VydGFpblwtb3JcLXNjcmVlbjsKK+SkryA+IGNvbnRhaW5lclwtZm9yXC10aGlja1wtc291cDsKK+SjjSA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7Civko4UgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5KGNID4gdGhlXC1saW5jaFwtcGluXC1vZlwtYVwtc2hlZWw7Civkn5cgPiB0b1wtc3RhbmRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SfgyA+IHRvXC1tb3ZlXC1vclwtbWFyY2hcLXN3aWZ0bHk7CivkmrYgPiB0b1wtc2NvbGRcLWluXC1hXC1sb3VkXC12b2ljZTsKK+SZnCA+IGxlZ2VuZGFyeVwtbW91bnRhaW5cLWRlaXR5Owor5JmIID4gYVwtbG9vc2VcLWdhcm1lbnRcLW9yXC1jbG9hazsKK+SZhyA+IGNsb3RoZXNcLW9mXC1jb2Fyc2VcLWZhYnJpYzsKK+SXgiA+IGRpZW15Y3R5bHVzXC1weXJyaG9nYXN0ZXI7CivklKMgPiBhXC10cmliZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JO0ID4gZWRpYmxlXC1mdW5ndXNcLWZyb21cLXRyZWVzOwor5JGOID4gc291cFwtb2ZcLXBpZycnc1wtaW50ZXN0aW5lczsKK+SQuyA+IGJpZ1wtcGllY2VzXC1vZlwtZHJpZWRcLW1lYXQ7CivkkLkgPiBwZXJzZXJ2ZWRcLWFuZFwtZHJpZWRcLW1lYXQ7CivkkLAgPiB0b1wtb2ZmZXJcLWZvb2RcLWFzXC10cmlidXRlOwor5JCCID4gZmF0XC1vZlwtYW5pbWFsc1wtb3JcLXBsYW50czsKK+SPpiA+IGZhdFwtb2ZcLWFuaW1hbHNcLW9yXC1wbGFudHM7CivkjrUgPiB0b1wtbG9va1wtc3RyYWlnaHRcLWZvcndhcmQ7CivkirEgPiBjYWtlc1wtbWFkZVwtb2ZcLXJpY2VcLWZsb3VyOwor5IqQID4gZmx1ZmZ5XC1zdHVmZmVkXC1kdW1wbGluZ3M7Civkio0gPiB0aGlja1wtY29uZ2VlXC1vclwtcG9ycmlkZ2U7Civkh48gPiB0b1wtcGlsZVwtb25lXC11cG9uXC1hbm90aGVyOwor5IScID4gaGFwcGluZXNzXC1hbmRcLXdlbGxcLWJlaW5nOwor5ISWID4gdXNlZFwtaW5cLW5hbWVcLW9mXC1hXC1wZXJzb247Civkg6IgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWxvZnR5Owor5IGHID4gdG9cLWxvb2tcLWZvclwtYVwtc2hvcnRcLXRpbWU7CivkgLQgPiB0b1wtbG9va1wtc3RyYWlnaHRcLWZvcndhcmQ7CivkgKsgPiBuYXJyb3dcLWFuZFwtZGltXC1leWVcLXNpZ2h0Owor5ICqID4gYmlyZHNcLWZseWluZ1wtdXBcLWFuZFwtZG93bjsKK+O/uiA+IGp1dHRpbmdcLW9uXC10aGVcLWVwaWRlcm1pczsKK+O9kiA+IHRoZVwtY2hpbGRyZW5cLW9mXC1hXC1zaXN0ZXI7CivjvL8gPiB0aGVcLWJyaWNrXC13YWxsXC1vZlwtYVwtd2VsbDsKK+O8myA+IGxvbmdcLW5lY2tlZFwtd2luZVwtdmVzc2VsczsKK+O7qiA+IGFcLWtpbmRcLW9mXC1qYWRlXC1maW5lXC1qYWRlOwor47aFID4gZHJpZWRcLXVwXC1tb3VudGFpblwtY3JlZWtzOwor47WiID4gYVwtbWFyc2hcLWluXC1hbmNpZW50XC10aW1lczsKK+O0sCA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7CivjtKwgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OlID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OznSA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civjs48gPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47ONID4gYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OziyA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civjs4ogPiB0aGVcLWZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor47OAID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OyiiA+IHRvXC11bmRlcnN0YW5kXC10aG9yb3VnaGx5Owor47C+ID4gc29uZ3NcLW9mXC10aGVcLXBlb3BsZVwtb2ZcLealmjsKK+OwvSA+IHRvXC1leGVydFwtb25lc2VsZlwtdG9cLXllbGw7Civjr6sgPiBhXC13YXR0bGVcLW9yXC1iYW1ib29cLWZlbmNlOwor466mID4gYnJhbmNoZXNcLWdyb3dpbmdcLXVwd2FyZHM7CivjqpsgPiB0b1wtcG91bmRcLXJvY2tzXC10b1wtcGllY2VzOwor46qZID4gdG9cLWdvXC10b1wtdGhlXC12ZXJ5XC1zb3VyY2U7Civjqa0gPiB0b1wtZGlzdHVyYlwtb3JcLXRvXC1hZ2l0YXRlOwor76ewID4gcnVzaFwtdXNlZFwtaW5cLW1ha2luZ1wtbWF0czsKK++llCA+IHNoaXZlclwtd2l0aFwtY29sZFwtb3JcLWZlYXI7CivvpJUgPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivjoaogPiB0aGVcLXZhcm5pc2hcLW9uXC10aGVcLWZsb29yOwor46GnID4gdG9cLXN0cmV0Y2hcLW9wZW5cLXBhaW50aW5nOwor46CHID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1yaWRnZTsKK+OcvyA+IG5hbWVcLW9mXC1hXC1maXNoXC1pblwtbGVnZW5kOwor45qdID4gdGhlXC1zdHJpZGVcLW1hZGVcLWJ5XC1hXC1tYW47Civjl6kgPiBzb3VuZFwtb2ZcLWVuZHVyZVwtY29sZG5lc3M7Civjl6cgPiB0b1wtc2NvbGRcLXdpdGhcLWxvdWRcLXZvaWNlOwor45eMID4gdG9cLXNjb2xkXC13aXRoXC1sb3VkXC12b2ljZTsKK+OXgCA+IHRoZVwtYmxlYXRpbmdcLW9mXC10aGVcLWRlZXI7Civjk6EgPiB0aGVcLW1pZGRsZVwtcGFydFwtb2ZcLWFcLWJvdzsKK+OQqCA+IGFcLWtpbmRcLW9mXC1maXNoXC1pblwtbGVnZW5kOwor556lID4gdGFrZVwtZmxlZXRpbmdcLWdsYW5jZVwtYXQ7Civlt54gPiBhZG1pbmlzdHJhdGl2ZVwtZGl2aXNpb247CivlkKcgPiBlbXBoYXRpY1wtZmluYWxcLXBhcnRpY2xlOwor5p+QID4gY2VydGFpblwtdGhpbmdcLW9yXC1wZXJzb247CivnpaggPiBzbGlwXC1vZlwtcGFwZXJcLW9yXC1iYW1ib287CivogLYgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uOwor5Y6YID4gdGhvdXNhbmR0aFwtcGFydFwtb2ZcLXRhZWw7Civlva0gPiBuYW1lXC1vZlwtYW5jaWVudFwtY291bnRyeTsKK+iCtCA+IGNvb2tlZFwtb3JcLXByZXBhcmVkXC1tZWF0Owor5L+OID4gY2hvcHBpbmdcLWJvYXJkXC1vclwtYmxvY2s7Civmt64gPiByaXZlclwtaW5cLWFuaHVpXC1wcm92aW5jZTsKK+mDoSA+IGFkbWluaXN0cmF0aXZlXC1kaXZpc2lvbjsKK+WTpiA+IG9oXD9cLXJlYWxseVw/XC1pc1wtdGhhdFwtc29cPzsKK+mUpCA+IGJhbGFuY2VcLXdlaWdodFwtb25cLXNjYWxlOwor5LueID4gYW5jaWVudFwtdW5pdFwtb2ZcLW1lYXN1cmU7Civoiq0gPiBwbGFudGFpblwtb3JcLWJhbmFuYVwtcGFsbTsKK+ejiiA+IHBpbGVcLW9mXC1yb2Nrc1wtb3JcLXN0b25lczsKK+WRuCA+IGV4cHJlc3Npb25cLW9mXC1yZXByaW1hbmQ7Civmi7cgPiB0b3J0dXJlXC1hbmRcLWludGVycm9nYXRlOwor5oq/ID4gcHVja2VyXC11cFwtbGlwc1wtaW5cLXNtaWxlOwor5Y2JID4gZ2VuZXJhbFwtdGVybVwtZm9yXC1wbGFudHM7Civpq7sgPiBoYWlyXC1yb2xsZWRcLXVwXC1pblwtYVwtYnVuOwor6KOGID4gY3JvdGNoXC1vclwtc2VhdFwtb2ZcLXBhbnRzOwor6JiRID4gdHlwZVwtb2ZcLWVkaWJsZVwtbXVzaHJvb207Civlkr8gPiBkZXNjcmlwdGl2ZVwtb2ZcLWNyZWFraW5nOwor56++ID4gYmFtYm9vXC1zcGxpbnRzXC1vclwtc2xhdHM7Civmt4cgPiByaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+iTkSA+IHJhaW5cLWNvYXRcLW1hZGVcLW9mXC1zdHJhdzsKK+aqrCA+IHR5cGVcLW9mXC1sb2N1c3RcLW9yYWNhY2lhOwor5reZID4gZ3VyZ2xpbmdcLXNvdW5kXC1vZlwtd2F0ZXI7CivmrpMgPiBkcmVzc1wtY29ycHNlXC1mb3JcLWJ1cmlhbDsKK+eQpSA+IGpld2VsXC1pblwtc2hhcGVcLW9mXC10aWdlcjsKK+a9niA+IHJpdmVyXC1pblwtbm9ydGhlcm5cLWNoaW5hOwor6YaNID4gZXNzZW50aWFsXC1vaWxcLW9mXC1idXR0ZXI7Civlpq8gPiB3aXZlc1wtb2ZcLW9uZScnc1wtYnJvdGhlcnM7CivluI8gPiBjdXJ0YWluXC10aGF0XC1mb3Jtc1wtd2FsbDsKK+eTkiA+IGNlcmVtb25pYWxcLWxpYmF0aW9uXC1jdXA7CivmtLkgPiByaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+eRlyA+IGxhcmdlXC1yaW5nXC1vZlwtZmluZVwtamFkZTsKK+a2niA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor54i7ID4gZGlhZ3JhbXNcLWZvclwtZGl2aW5hdGlvbjsKK+mUnyA+IGFuY2llbnRcLXRyZWFzdXJlZFwtc3dvcmQ7CivoipcgPiBmcmFncmFudFwtc21lbGxcLW9mXC1ncmFpbjsKK+alpiA+IGFcLWxhc3RcLWZvclwtbWFraW5nXC1zaG9lczsKK+iIgSA+IGNhcnJ5XC1vblwtb25lJydzXC1zaG91bGRlcjsKK+a7oCA+IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor6byPID4gY292ZXJcLW9mXC10cmlwb2RcLWNhbGRyb247Civpu7AgPiB5b3VuZ1wtZ2lybCcnc1wtaGFpclwtc3R5bGU7CivprIIgPiB0aGVcLWhhaXJcLW9uXC10aGVcLXRlbXBsZXM7Civpp64gPiBhXC1raW5kXC1vZlwtZmllcmNlXC1hbmltYWw7CivpjJggPiBiYWxhbmNlXC13ZWlnaHRcLW9uXC1zY2FsZTsKK+mMlSA+IGFuY2llbnRcLXRyZWFzdXJlZFwtc3dvcmQ7CivphL4gPiBwbGFjZVwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+mErCA+IHBsYWNlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YSkID4gcGxhY2VcLWluXC1oZW5hblwtcHJvdmluY2U7CivphJggPiBzdGF0ZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mEjyA+IHBsYWNlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YSAID4gc3RhdGVcLWluXC1oZW5hblwtcHJvdmluY2U7Civpg7AgPiBiaXJ0aHBsYWNlXC1vZlwtY29uZnVjaXVzOwor6YKnID4gdG93blwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivpgpggPiBzdGF0ZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+iloCA+IGNyb3RjaFwtb3JcLXNlYXRcLW9mXC1wYW50czsKK+iauyA+IHNtYWxsXC1zcGVjaWVzXC1vZlwtY2ljYWRhOwor6JaMID4gZnJhZ3JhbnRcLXNtZWxsXC1vZlwtZ3JhaW47CivokrEgPiBnYW1ibGluZ1wtZ2FtZVwtd2l0aFwtZGljZTsKK+iRpyA+IGhlbGVvY2hhcmlzXC1wbGFudGFnaW5lYTsKK+iIsiA+IHNtYWxsXC1ib2F0XC13aXRoXC13aW5kb3dzOwor576rID4gdGhlXC1za2VsZXRvblwtb2ZcLWFcLXNoZWVwOwor5729ID4gYVwta2luZFwtb2ZcLXdvb2xlblwtZmFicmljOwor57K6ID4gcG9saXNoZWRcLXJpY2VcLW9yXC1taWxsZXQ7Civnr6cgPiBjcmVlbFwtZm9yXC10cmFwcGluZ1wtZmlzaDsKK+evmyA+IGN1dGljbGVcLW9mXC1iYW1ib29cLXBsYW50Owor56WUID4gd29yc2hpcFwtb25lJydzXC1hbmNlc3RvcnM7CivnnZYgPiB0b1wtc3RhcmVcLXN0cmFpZ2h0XC1haGVhZDsKK+ecoiA+IGV5ZXNcLXdpdGhvdXRcLWJyaWdodG5lc3M7Civnlb4gPiBmaWVsZHNcLWRpdmlkZWRcLWJ5XC1kaWtlczsKK+eTmiA+IGNlcmVtb25pYWxcLWxpYmF0aW9uXC1jdXA7CivnkrIgPiBwZW5kYW50XC1naXJkbGVcLW9ybmFtZW50Owor55G/ID4gYVwtYmxhY2tcLXN0b25lXC1saWtlXC1qYWRlOwor55GvID4ga2luZFwtb2ZcLXdoaXRlXC1jb3JuZWxpYW47CivnkaIgPiBnZW1cLW9ybmFtZW50c1wtZm9yXC1iZWx0czsKK+ePtiA+IHdoaXRlXC1qYWRlXC13b3JuXC1vblwtYmVsdDsKK+eOlSA+IGluZmVyaW9yXC12YXJpZXR5XC1vZlwtZ2VtOwor54yIID4gZG9nXC13aXRoXC1zaG9ydFwtc2hpbmJvbmU7CivngYQgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+eAvCA+IHJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor54CNID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7Civmv5wgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+a+tCA+IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5r6JID4gdG9cLXdhc2hcLW5hbWVcLW9mXC1hXC1wbGFjZTsKK+a9liA+IG5hbWVcLW9mXC1hXC1jZXJ0YWluXC1yaXZlcjsKK+a8tyA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5ryKID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7Civmuq4gPiByaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+a6oCA+IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5re2ID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7CivmtpYgPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+a1rSA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5rS6ID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7CivmtKggPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+auriA+IGRyZXNzXC1jb3Jwc2VcLWZvclwtYnVyaWFsOwor5q6ZID4gdG9cLWRpZVwtYnlcLXRha2luZ1wtcG9pc29uOwor5q2BID4gdW5zYXRpc2ZpZWRcLVwob2ZcLWVhdGluZ1wpOwor5qyoID4gdG9cLWJsb3dcLW9yXC1icmVhdGhlXC11cG9uOwor5qyPID4gdHJlZVwtdGhlXC1ob3JzZVwtY2hlc3RudXQ7CivmqocgPiB3b29kZW5cLXJhbW1lclwtb3JcLXBlc3RsZTsKK+aplCA+IGFcLXdvb2RlblwtY2hvcHBpbmdcLWJsb2NrOwor5qWlID4gYVwtbGFzdFwtZm9yXC1tYWtpbmdcLXNob2VzOwor5pq8ID4gdGFrZVwtZmxlZXRpbmdcLWdsYW5jZVwtYXQ7CivmgLggPiBjbnNcLTJcLTJhNDBcLWlzXC1kaWZmZXJlbnQ7CivluYMgPiBjdXJ0YWluXC10aGF0XC1mb3Jtc1wtd2FsbDsKK+WihCA+IHRoZVwtc3RlcHNcLW9mXC1hXC1zdGFpcndheTsKK+WVqyA+IGludGVyamVjdGlvblwtb2ZcLXdhcm5pbmc7CivlkJogPiB1c2VkXC10b1wtcmVwcmVzZW50XC1zb3VuZDsKK+WMgSA+IGphcGFuZXNlXC11bml0XC1vZlwtd2VpZ2h0Owor5Lu+ID4gdG9cLWhhbmdcLW9yXC1ib3dcLXRoZVwtaGVhZDsKK+S7rSA+IGFuY2llbnRcLXVuaXRcLW9mXC1tZWFzdXJlOwor5LadID4gZ3Jvd2luZ1wtaXJyZWd1bGFyXC10ZWV0aDsKK+S1iCA+IHVuc21lbHRlZFwtaGVtcFwtYW5kXC1zaWxrOwor5LWAID4gY29hcnNlXC1jcnVtYnNcLW9mXC1iYXJsZXk7CivktJEgPiBhXC1sZWdlbmRhcnlcLXdlaXJlZFwtYmlyZDsKK+S0hyA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1jcmFuZTsKK+S0gSA+IGFcLWtpbmRcLW9mXC1yYXRcLWxpa2VcLWJpcmQ7Civks7IgPiBhXC1zd2FybVwtb2ZcLWZseWluZ1wtYmlyZHM7CivksrQgPiBhXC1raW5kXC1vZlwtdmVub21vdXNcLWJpcmQ7Civksb4gPiBhXC1jYXJwXC1saWtlXC1zYXZvcnlcLWZpc2g7CivksKsgPiBuaW1ibGVcLWFuZFwtYWN0aXZlXC1naG9zdDsKK+SthyA+IHRvXC1iZVwtY2hvY2tlZFwtd2l0aFwtZm9vZDsKK+SthiA+IHNtYWxsXC1jaGlsZHJlblwtZWF0XC1sZXNzOwor5KyyID4gdG9cLWVhdFwtdG9cLXRoZVwtaGFsZlwtZnVsbDsKK+SsqiA+IGFcLWtpbmRcLW9mXC1jb29rZWRcLW5vb2RsZTsKK+SsmyA+IHRoZVwtcm9hcmluZ1wtb2ZcLXRoZVwtd2luZDsKK+SolyA+IGV4Y2Vzc2l2ZVwtcmFpblwtYW5kXC1zbm93Owor5KiFID4gc21hbGxcLWJpcmRzXC1cLVwtXC10aGVcLXdyZW47CivkpZYgPiBzaWx2ZXJcLW9mXC1nb2xkXC1maWxhZ3JlZTsKK+SljyA+IHVuZml0dGVkXC1mb3JcLWVhY2hcLW90aGVyOwor5KSlID4gYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnRzOwor5KKcID4gdGhlXC1tYXJyaWFnZVwtb2ZcLWFcLXdvbWFuOwor5KG9ID4gdGhlXC1zaGFmdHNcLW9mXC1hXC12ZWhpY2xlOwor5KG6ID4gdGhlXC1lbmRcLW9mXC1hblwtYXhsZVwtdHJlZTsKK+ShoyA+IGFcLXBpZWNlXC1vZlwtY3VydmVkXC1ib2FyZDsKK+SgoyA+IG5ldFwtdG9cLXRyYXBcLXRoZVwtYW5pbWFsczsKK+SdiCA+IGFcLWJpZ1wtYW5kXC1zdHJlbnVvdXNcLXBpZzsKK+SakCA+IGdldHRpbmdcLXJlZFwtaW5cLXRoZVwtZXllczsKK+SaiiA+IHRvXC1sb29rXC1mcm9tXC1hXC1kaXN0YW5jZTsKK+SZkCA+IGZ1cnNcLWFuZFwtbGluZW5cLWdhcm1lbnRzOwor5JiGID4gYVwtc2Vjb25kXC1mb3JtXC1lYXJ0aHdvcm07Civkl6AgPiB0aGVcLWxhcnZhXC1vZlwtbW9zcXVpdG9lczsKK+SXlCA+IGFcLWhvdXNlXC1saXphcmRcLW9yXC1nZWNrbzsKK+SWsSA+IGxhcmdlXC1zaHJpbXBcLWluXC10aGVcLXNlYTsKK+SUviA+IGFcLWtpbmRcLW9mXC1mcmFncmFudFwtaGVyYjsKK+STsSA+IGFcLWtpbmRcLW9mXC1oZXJiXC1tZWRpY2luZTsKK+SSliA+IGFcLWtpbmRcLW9mXC1oZXJiXC1tZWRpY2luZTsKK+SSlSA+IGFcLWtpbmRcLW9mXC1oZXJiXC1tZWRpY2luZTsKK+SQpCA+IGRyaWVkXC1hbmRcLXNlYXNvbmVkXC1tZWF0Owor5JCQID4gY3VydmVkXC1wYXJ0XC1vZlwtdGhlXC1rbmVlOwor5I+ZID4gYnJpbmVcLWZyb21cLXBpY2tsZWRcLW1lYXQ7Civkj5UgPiB0b1wtY29va1wtZm9vZFwtdGhvcm91Z2hseTsKK+SOpyA+IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+SNuSA+IG9kb3JcLW9mXC1hXC1zaGVlcFwtb3JcLWdvYXQ7CivkjZkgPiBuZXRzXC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+SNmCA+IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtbmV0czsKK+SNkyA+IG5ldFwtZm9yXC1jYXRjaGluZ1wtcmFiYml0Owor5IurID4gdG9cLXdpbmRcLXJvdW5kXC10aGVcLXJvcGVzOwor5IuoID4gdG9cLXNldFwtaW5cLW9yZGVyXC10aGVcLW9sZDsKK+SKtCA+IGZvb2RcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SKqiA+IGNvYXJzZVwtcmljZVwtXC1cLVwtdW5odWxsZWQ7CivkiZwgPiB5b3VuZ1wtYW5kXC10ZW5kZXJcLWJhbWJvbzsKK+SJliA+IGZyYW1ld29ya1wtb2ZcLWFcLWNhcnJpYWdlOwor5IeXID4gYmFtYm9vXC13aXRoXC1sb25nXC1qb2ludHM7Civkh5EgPiBhXC1zdGFuZGluZ1wtc2hvcnRcLXBlcnNvbjsKK+SGiiA+IHVuaHVza2VkXC1nbHV0aW5vdXNcLXJpY2U7CivkhokgPiB0aGVcLXN3aW5nXC1vZlwtcmljZVwtcGxhbnQ7Civkg4kgPiBhXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SBjCA+IHRvXC1zZWVcLWZvclwtYVwtc2hvcnRcLXRpbWU7CivjvoAgPiB0b1wtYmVcLXdlYWtlZFwtYnlcLWRpc2Vhc2U7CivjvbogPiB0b1wtYmVcLXdlYWtlZFwtYnlcLWRpc2Vhc2U7CivjvbggPiBkaXNlYXNlc1wtb2ZcLXRoZVwtYWJkb21lbjsKK+O9miA+IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+O8pyA+IHRpbGVzXC1pblwtY3lsaW5kZXJcLXNoYXBlOwor47myID4gYVwtZnJpZ2h0ZW5lZFwtcGlnXC1vclwtZG9nOwor47muID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtXC10YXBpcjsKK+O5nSA+IGFcLWxlZ2VuZGFyeVwtd2lsZFwtYW5pbWFsOwor47mRID4gYVwtZm91clwteWVhcnNcLW9sZFwtY2F0dGxlOwor47mKID4gYVwtY2F0dGxlXC1vZlwtd2hpdGVcLWNvbG9yOwor47mGID4gdGhlXC1jb3VsdGVyXC1vZlwtYVwtcGxvdWdoOwor47iLID4gbWVhdHNcLXVzZWRcLWluXC1zYWNyaWZpY2U7Civjt64gPiBzY29yY2hlZFwtb3JcLWJ1cm5lZFwtd29vZDsKK+O3qyA+IGZpcmVcLWNhdXNpbmdcLWJ5XC1kcnluZXNzOwor47a1ID4gdG9cLWNvb2tcLWZvb2RcLXRob3JvdWdobHk7CivjtpIgPiB0aGVcLWN1cnJlbnRcLW9mXC1hXC1zdHJlYW07CivjtLIgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWU7CivjtJEgPiB0b1wtdHJhY2VcLXVwXC10b1wtYVwtc291cmNlOwor47SPID4gdGhlXC1wb25kXC13YXRlclwtaXNcLXN0aWxsOwor47K/ID4gZXh0ZW5zaXZlXC1ib2R5XC1vZlwtd2F0ZXI7CivjsoQgPiB1bmJ1cm50XC1icmlja3NcLW9yXC10aWxlczsKK+OxrCA+IGNhbm5vdFwtcmVjb2duaXplXC1wZW9wbGU7CivjsZUgPiB0aGVcLW1hcnJpYWdlXC1vZlwtYVwtd29tYW47Civjr5kgPiB0aGVcLWJ1Y2t0aG9yblwtb3JcLWp1anViZTsKK+OtviA+IHRvXC1jdXRcLXRoZVwtdGltYmVyXC1hcGFydDsKK+OtgyA+IHRoZVwtbGFyZ2VcLXJvcGVcLW9mXC1hXC1uZXQ7CivjrYIgPiBoZWlnaHRcLW9mXC10aGVcLWVuZFwtcG9pbnQ7CivjrLsgPiBpblwtYmV0d2Vlblwtb2ZcLXRoZVwtZmxlc2g7Civjp68gPiBhXC1idWNrZXRcLW1hZGVcLW9mXC13aWxsb3c7Civjp6UgPiB0b1wtbmlwXC13aXRoXC10aGVcLWZpbmdlcnM7Civjpr0gPiB3aXRoXC1lbGVnYW50XC1hcHBlYXJhbmNlOwor46a6ID4gYVwtbGFuY2VcLXdpdGhcLXR3b1wtcG9pbnRzOwor46a4ID4gYVwtbGFuY2VcLXdpdGhcLXR3b1wtcG9pbnRzOwor76alID4gZHJlc3NcLWNvcnBzZVwtZm9yXC1idXJpYWw7CivjpocgPiBhXC1wZWFjZWZ1bFwtb3JcLWVhc3lcLW1vb2Q7CivvpYcgPiBwaWxlXC1vZlwtcm9ja3NcLW9yXC1zdG9uZXM7CivjpYUgPiB1c2VkXC1pblwtYVwtcGVyc29uJydzXC1uYW1lOwor46SMID4gdG9cLWhhdmVcLW9uZScnc1wtaGVhcnRcLW93bjsKK+OjuyA+IHRvXC1yZW1lZHlcLWJ5XC1wdW5pc2htZW50Owor46OqID4gdG9cLXdhbGtcLXdpdGhcLXNsb3dcLXN0ZXBzOwor46OGID4gdG9cLWxvb3NlXC10aGVcLWJvd1wtc3RyaW5nOwor46K+ID4gdGhlXC1jdXJ2ZWRcLWVuZFwtb2ZcLWFcLWJvdzsKK+OitSA+IHBvd2VyZnVsXC1hbmRcLXN0cm9uZ1wtYm93Owor46G5ID4gdG9cLXJlbHlcLXVwb25cLWVhY2hcLW90aGVyOwor46GSID4gYVwtY2FsaWNvXC1zYWNrXC1mb3JcLWdyYWluOwor46GPID4gdG9cLWN1dFwtYVwtc3RyaXBcLW9mXC1jbG90aDsKK+OevCA+IHRvXC1yZXNwZWN0ZnVsbHlcLXJlY2VpdmU7CivjmqwgPiBhXC1sYWR5XC1zdGFydFwtdG9cLWRvbGxcLXVwOwor45qWID4gdG9cLWNvbWVcLW91dFwtdG9cLXRoZVwtb3BlbjsKK+OZiiA+IGFuXC1hcmVhXC1vZlwtbGV2ZWxcLWdyb3VuZDsKK+OVuCA+IHNvdW5kXC1vZlwtcm9sbGluZ1wtYVwtYm9hdDsKK+OVpyA+IHVzZWRcLXRvXC1yZXByZXNlbnRcLXNvdW5kOwor45SkID4gdG9cLWV4ZXJ0XC1vbmUnJ3NcLXN0cmVuZ3RoOwor45OnID4gYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnRzOwor45KkID4gdG9cLWhhdmVcLW9uZScnc1wtaGVhcnRcLXdvbjsKK+OSmSA+IHRvXC1oYW5kXC1vclwtYm93XC10aGVcLWhlYWQ7CivkuYggPiBpbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+iiqyA+IHBhc3NpdmVcLWluZGljYXRvclwtJydieScnOwor55SzID4gdG9cLXN0YXRlXC10b1wtYVwtc3VwZXJpb3I7CivlsqEgPiByaWRnZVwtb3JcLWNyZXN0XC1vZlwtaGlsbDsKK+eQtCA+IGNoaW5lc2VcLWx1dGVcLW9yXC1ndWl0YXI7CivlrIwgPiBzZWR1Y3RpdmVcLWFuZFwtbG92ZWFibGU7CivnvZcgPiBuZXRcLWZvclwtY2F0Y2hpbmdcLWJpcmRzOwor5pG4ID4gZ2VudGx5XC10b3VjaFwtd2l0aFwtaGFuZDsKK+S7sCA+IHJhaXNlXC10aGVcLWhlYWRcLXRvXC1sb29rOwor6IeNID4gYWJkb21pbmFsXC1hcmVhXC1vZlwtY3JhYjsKK+mDkSA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWhlbmFuOwor576FID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+i0ryA+IGFcLXN0cmluZ1wtb2ZcLTEwMDBcLWNvaW5zOwor5aiHID4gc2VkdWN0aXZlXC1hbmRcLWxvdmVhYmxlOwor56utID4gcHV0XC1mb3J0aFwtZ3JlYXRcLWVmZm9ydDsKK+enkiA+IGJlYXJkXC1vZlwtZ3JhaW5cLW9yXC1jb3JuOwor5aWaID4gd2hlcmVcP1wtd2hhdFw/XC1ob3dcP1wtd2h5XD87CivlhoggPiByaWRnZVwtb3JcLWNyZXN0XC1vZlwtaGlsbDsKK+ebjyA+IHNtYWxsXC1jdXBcLW9yXC1jb250YWluZXI7CivokJ0gPiB0eXBlXC1vZlwtY3JlZXBpbmdcLXBsYW50Owor5qKnID4gc3RlcmN1bGlhXC1wbGF0YW5pZm9saWE7CivlkqYgPiBleHByZXNzaW9uXC1vZlwtc3VycHJpc2U7CivnrZAgPiBiYW1ib29cLWJhc2tldFwtb3JcLWNoZXN0Owor6LCNID4gYW5cLWludGVsbGlnZW5jZVwtcmVwb3J0Owor56+xID4gYmFtYm9vXC1vclwtd29vZGVuXC1mZW5jZTsKK+eQtiA+IGd1aXRhclwtbGlrZVwtaW5zdHJ1bWVudDsKK+eQtSA+IGd1aXRhclwtbGlrZVwtaW5zdHJ1bWVudDsKK+a9uiA+IHNvdW5kXC1vZlwtZmxvd2luZ1wtd2F0ZXI7CivlnbMgPiBhXC1ob2xsb3dcLWluXC10aGVcLWdyb3VuZDsKK+iEkCA+IGFiZG9taW5hbFwtYXJlYVwtb2ZcLWNyYWI7Civln4IgPiBkaXRjaGVzXC1mb3JcLWlycmlnYXRpb247CivlgIwgPiBhc3Npc3RhbnRcLWluXC13aW5lXC1zaG9wOwor6ZyBID4gdG9cLWNsZWFyXC11cFwtYWZ0ZXJcLXJhaW47Civpgq8gPiBjaXR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor57KRID4gdHNhbWJhXC1cKGZvb2RcLWluXC10aWJldFwpOwor6JuAID4gaW5zZWN0c1wtdGhhdFwtZWF0XC1ib29rczsKK+WrpiA+IG5hbWVcLW9mXC1hXC1tb29uXC1nb2RkZXNzOwor6LWKID4gYnV5XC1hbmRcLXNlbGxcLW9uXC1jcmVkaXQ7CivlvJEgPiB0b1wta2lsbFwtb25lJydzXC1zdXBlcmlvcjsKK+aRgSA+IHRvXC1wcmVzc1wtd2l0aFwtdGhlXC1oYW5kOwor55W5ID4gYVwtZmllbGRcLW9mXC0yMFwtb3JcLTMwXC1tdTsKK+inkCA+IGhhdmVcLWltcGVyaWFsXC1hdWRpZW5jZTsKK+iupiA+IGV4cG9zZVwtb3RoZXInJ3NcLXNlY3JldHM7Civml4QgPiBhXC1raW5kXC1vZlwtYW5jaWVudFwtZmxhZzsKK+i2tSA+IG5vaXNlXC1vZlwtdHJhbXBpbmdcLWZlZXQ7CivphbkgPiB0b1wtcG91clwtb3V0XC1hXC1saWJhdGlvbjsKK+WtsyA+IGJyZWVkXC1pblwtbGFyZ2VcLW51bWJlcnM7CivloYQgPiBlbGV2YXRlZFwtYmFua1wtaW5cLWZpZWxkOwor6J6IID4gZGllbXllbGlsdXNcLXB5cm9nYXN0ZXI7CivnqqwgPiBhXC1zbWFsbFwtZG9vclwtb3JcLXdpbmRvdzsKK+essSA+IGFcLWJhc2tldFwtdHJhcFwtZm9yXC1maXNoOwor54m/ID4gc2hlZFwtb3JcLXBlblwtZm9yXC1jYXR0bGU7Civom5ggPiBhXC13ZWV2aWxcLWZvdW5kXC1pblwtcmljZTsKK+eVjiA+IGFcLWRyYWluXC1iZXR3ZWVuXC1maWVsZHM7Civpva8gPiB0ZWV0aFwtZ3Jvd25cLWluXC1vbGRcLWFnZTsKK+m5oyA+IGZhYnVsb3VzXC1teXRoaWNhbFwtYmlyZDsKK+m2vCA+IGZhYnVsb3VzXC1teXRoaWNhbFwtYmlyZDsKK+mwhiA+IHNjb21iZXJvbW9ydXNcLXNpbmVuc2lzOwor6a+ZID4gc2NvbWJlcm9tb3J1c1wtc2luZW5zaXM7CivprpMgPiBtaW5jZWRcLWFuZFwtc2FsdGVkXC1maXNoOwor6amMID4gbmFtZVwtb2ZcLWFcLWZhbW91c1wtaG9yc2U7Civpn7kgPiBtdXNpY1wtb2ZcLWJlbGxcLWFuZFwtZHJ1bTsKK+mcvSA+IHRvXC1jbGVhclwtdXBcLWFmdGVyXC1yYWluOwor6ZuYID4gZHllXC1tYWRlXC1mcm9tXC1yZWRcLXNvaWw7CivpmIcgPiBhXC1idWRkaGlzdFwtaGlnaFwtcHJpZXN0Owor6ZGQID4gYm9sdFwtb2ZcLWFcLWNoaW5lc2VcLWxvY2s7CivpjIYgPiB0aGVcLWNvbG9yXC1vZlwtYVwtbWluZXJhbDsKK+mErSA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWhlbmFuOwor6YSQID4gdG93blwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mBsCA+IGdydW50aW5nXC1zb3VuZFwtb2ZcLXBpZ3M7CivovqUgPiB2YXJpZXR5XC1vZlwtbWFyc2hcLWdyYXNzOwor6LOSID4gYnV5XC1hbmRcLXNlbGxcLW9uXC1jcmVkaXQ7CivosqsgPiBhXC1zdHJpbmdcLW9mXC0xMDAwXC1jb2luczsKK+iwgiA+IGNvbnN1bHRcLWNhcmVmdWxseVwtd2l0aDsKK+irnCA+IGFuXC1pbnRlbGxpZ2VuY2VcLXJlcG9ydDsKK+irlyA+IGNvbnN1bHRcLWNhcmVmdWxseVwtd2l0aDsKK+ipqiA+IGRpZmZpY3VsdHlcLWluXC1zcGVha2luZzsKK+iokCA+IGV4cG9zZVwtb3RoZXInJ3NcLXNlY3JldHM7Civop78gPiBhXC1ib2RraW5cLW1hZGVcLW9mXC1pdm9yeTsKK+imsiA+IGhhdmVcLWltcGVyaWFsXC1hdWRpZW5jZTsKK+imgCA+IHZhcmlhbnRcLW9mXC1yYWRpY2FsXC0xNDY7CivopJ8gPiBpbm5lclwtc2hpcnRcLW9yXC1zaW5nbGV0Owor6KGtID4gdGhlXC1sYXBlbFwtb2ZcLWFcLWdhcm1lbnQ7CivooaYgPiBzbW9vdGhcLW91dFwtdGhlXC1jbG90aGVzOwor6Ji/ID4gdHlwZVwtb2ZcLWNyZWVwaW5nXC1wbGFudDsKK+iVlSA+IGNhcnlvcHRlcmlzXC1kaXZhcmljYXRhOwor6JSvID4gYVwtdmFyaWV0eVwtb2ZcLWFydGVtaXNpYTsKK+iQtCA+IG1lZGljaW5hbFwtcG9pc29uXC1wbGFudDsKK+iPtiA+IHNwZWNpZXNcLW9mXC13YXRlclwtcGxhbnQ7CivojrggPiBjYXJ5b3B0ZXJpc1wtZGl2YXJpY2F0YTsKK+iOmSA+IHNwZWNpZXNcLW9mXC13YXRlclwtcGxhbnQ7CivohKQgPiByYXdcLW1lYXRcLWZvclwtc2FjcmlmaWNlOwor6ICsID4gZHJpbGxcLWZvclwtc293aW5nXC1ncmFpbjsKK+iApyA+IGRyaWxsXC1mb3JcLXNvd2luZ1wtZ3JhaW47CivogIIgPiB2YXJpYW50XC1vZlwtcmFkaWNhbFwtMTI1Owor57mmID4gc3RyaW5nXC1vZlwtY29wcGVyXC1jb2luczsKK+e5iCA+IHN0cmluZ1wtb2ZcLWNvcHBlclwtY29pbnM7Civnt4UgPiBzaWxrXC1vZlwtcHVycGxpc2hcLWNvbG9yOwor57GsID4gYmFtYm9vXC1vclwtd29vZGVuXC1mZW5jZTsKK+evoiA+IHRoZVwtbmFtZVwtb2ZcLWJhbWJvb1wtaGF0Owor5626ID4gYmFtYm9vXC1iYXNrZXRcLW9yXC1jaGVzdDsKK+ebniA+IHNtYWxsXC1jdXBcLW9yXC1jb250YWluZXI7CivnmYogPiBhXC1kaXNlYXNlXC1vZlwtdGhlXC1oZWFydDsKK+eRsSA+IGFcLWdlbVwtdXNlZFwtYXNcLWVhclwtcGx1ZzsKK+eQoCA+IGFcLWdlbVwtdXNlZFwtYXNcLWVhclwtcGx1ZzsKK+ePoyA+IG5hbWVcLW9mXC1hXC1raW5kXC1vZlwtamFkZTsKK+eOvCA+IGJlYXV0aWZ1bFwtY29sb3JcLW9mXC1nZW07CivnibcgPiBjb3dcLW9yXC1veFwtb2ZcLW9uZVwtY29sb3I7CivnhIQgPiByaXNpbmdcLWZsYW1lc1wtb3JcLWZ1bWVzOwor54OWID4gY2FsYW1pdGllc1wtZnJvbVwtaGVhdmVuOwor5q6iID4gYmVcLWluXC1ncmVhdFwtZGlmZmljdWx0eTsKK+ansSA+IGZpcmV3b29kXC1mb3JcLXNhY3JpZmljZTsKK+acjyA+IGxpZ2h0XC1vZlwtY3Jlc2NlbnRcLW1vb247Civml5AgPiBhblwtZW1icm9pZGVyZWRcLXBlbm5hbnQ7CivmlJkgPiB0b1wtZ2l2ZVwtYVwtaGVscGluZ1wtaGFuZDsKK+aRsCA+IHRvXC1zZWl6ZVwtd2l0aFwtdGhlXC1oYW5kOwor5pGAID4gdG9cLWNvdmVyXC13aXRoXC10aGVcLWhhbmQ7CivmkL4gPiB0b1wtY3J1c2hcLXdpdGhcLXRoZVwtaGFuZDsKK+aAuSA+IGFcLXBvbGl0ZVwtdmVyc2lvblwtb2ZcLWhlOwor5bySID4gdG9cLWtpbGxcLW9uZScnc1wtc3VwZXJpb3I7CivluoggPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lczsKK+W1tiA+IGxvd1wtcGFydFwtb2ZcLWFcLW1vdW50YWluOwor5a2SID4gbGFydmFlXC1vZlwtdGhlXC1tb3NxdWl0bzsKK+WjliA+IG9wZW5cLXNwYWNlXC1hbG9uZ1wtd2F0ZXI7CivlmYAgPiBzcGlydFwtb3V0XC1vZlwtdGhlXC1tb3V0aDsKK+WPnSA+IHRvXC1yZXNwZWN0ZnVsbHlcLWluZm9ybTsKK+S8riA+IHRvXC1tYWtlXC1hXC1ncmVhdFwtZWZmb3J0Owor5LalID4gdW5ldmVubHlcLWZpdHRpbmdcLXRlZXRoOwor5LakID4gc291bmRcLW9mXC1jaGV3aW5nXC1ib25lczsKK+S2giA+IGFcLXNxdWlycmVsXC1saWtlXC1hbmltYWw7Civks64gPiB0b1wtbG9va1wtYXRcLWluXC1zdXJwcmlzZTsKK+SymiA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1zaGFkOwor5LC1ID4gbG9va3NcLWxpa2VcLWNvbW1vblwtY2FycDsKK+SwsCA+IGRyZWFyeVwtY3JpZXNcLW9mXC1naG9zdHM7CivksK0gPiBkcmVhcnlcLWNyaWVzXC1vZlwtZ2hvc3RzOwor5K66ID4gbHV4dXJpYW50XC1vZlwtdGhlXC1ncmFzczsKK+SurSA+IHRvXC1sb29rXC1hdFwtaW5cLXN1cnByaXNlOwor5K6qID4gdG9cLWdlbGRcLWFcLWhvcnNlXC1vclwtYXNzOwor5Km8ID4gc3RpdGNoZXNcLW9uXC1hXC1jb3ZlcmxldDsKK+SpjSA+IHRvXC1sb29rXC1wYWxlXC1vclwtcGFsbGlkOwor5Ki1ID4gcmFpbmVkXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkqKwgPiByYWluZWRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SooSA+IHJhaW5lZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5KaIID4gdG9cLXNpZ2hcLWluXC1sYW1lbnRhdGlvbjsKK+SlnyA+IGFcLW1ldGFsXC1tYXJraW5nXC1cLXN0YWtlOwor5KKOID4gaW5kaWNhdGluZ1wtZXhjbGFtYXRpb247CivkobUgPiBkZWNvcmF0aW9uXC1vblwtY2FycmlhZ2U7CivkobAgPiBzdHJvbmdcLWFuZFwtZHVyYWJsZVwtaHViOwor5KGsID4gY292ZXJpbmdcLW9mXC1hXC1jYXJyaWFnZTsKK+ShgSA+IG5vdFwtd2VsbFwtZm9ybWVkXC1maWd1cmU7Civkn70gPiBzY2F0dGVyZWRcLW9yXC1kaXNwZXJzZWQ7CivknpggPiB0b1wtZ29cLXN0cmFpZ2h0XC1mb3J3YXJkOwor5J2iID4gYW5cLWFuaW1hbFwtaW5cLW9sZFwtdGltZXM7CivknaEgPiBhblwtYW5pbWFsXC1pblwtb2xkXC10aW1lczsKK+SdkyA+IGxvbmdcLWJlYXJkXC1vclwtd2hpc2tlcnM7CivknLogPiBodXNraW5nXC1iZWFuc1wtZm9yXC1jYWtlOwor5JyhID4gdG9cLXNtZWxsXC10aGVcLWZyYWdyYW50czsKK+SbmSA+IHRvXC1zbWVsbFwtdGhlXC1mcmFncmFuY2U7Civkmp4gPiB0aGVcLW1pZGRsZVwtb2ZcLXRoZVwtaG9ybjsKK+SZhCA+IGNsb3RoZXNcLXdpdGhcLXRoaWNrXC1oZW07CivkmL0gPiBjbG90aGluZ1wtYW5kXC1vcm5hbWVudHM7Civkl5AgPiBhXC13ZWV2aWxcLWZvdW5kXC1pblwtcmljZTsKK+SVtCA+IGFcLXNlY29uZFwtZm9yXC1tb25rc2hvb2Q7CivklKAgPiB0aGluXC1yb290XC1vZlwtdGhlXC1sb3R1czsKK+SPqSA+IHRvXC1zaHJ1Z1wtdGhlXC1zaG91bGRlcnM7CivkjbEgPiB0aGVcLXdpbGRcLWdvYXRcLW9yXC1zaGVlcDsKK+SLqiA+IGZpbmVcLWFuZFwtZGVsaWNhdGVcLXNpbGs7Civki40gPiBmaW5lXC1hbmRcLWRlbGljYXRlXC1zaWxrOwor5IqPID4gbWl4aW5nXC1yaWNlXC13aXRoXC1icm90aDsKK+SKgyA+IG1peGluZ1wtcmljZVwtd2l0aFwtYnJvdGg7CivkiIQgPiBhXC1raW5kXC1vZlwtc29saWRcLWJhbWJvbzsKK+SHoyA+IGJhbWJvb1wtd2l0aFwtd2hpdGVcLWJhcms7CivkhKAgPiB0b1wtc2FjcmlmaWNlXC10b1wtaGVhdmVuOwor5IOnID4gc291bmRcLW9mXC1mYWxsaW5nXC1yb2NrczsKK+SDlCA+IHNvdW5kXC1vZlwtZmFsbGluZ1wtcm9ja3M7CivkgqIgPiBzb3VuZFwtb2ZcLWZhbGxpbmdcLXJvY2tzOwor5IKgID4gc291bmRcLW9mXC1mYWxsaW5nXC1yb2NrczsKK+SAhCA+IGNvbnRhaW5lclwtZnVsbFwtb2ZcLWZvb2Q7Civjv4sgPiBhXC1raW5kXC1vZlwtc2tpblwtZGlzZWFzZTsKK+O8niA+IGphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoOwor47qeID4gdG9cLXNpZ25cLWluXC1sYW1lbnRhdGlvbjsKK+O4ryA+IGFcLWZpbmVcLWJyZWVkXC1vZlwtY2F0dGxlOwor47WvID4gc291bmRcLW9mXC13YXRlclwtZmxvd2luZzsKK+OzryA+IGdvZGRlc3NcLW9mXC1hblwtaW5rXC1zbGFiOwor47KxID4gbG9uZ1wtYmVhcmRcLW9yXC13aGlza2VyczsKK+OxhiA+IHRvXC1zbWlsZVwtYXRcLWVhY2hcLW90aGVyOwor47C/ID4gdG9cLXNpZ2hcLWluXC1sYW1lbnRhdGlvbjsKK+OwqCA+IHRvXC10YWtlXC1icmVhdGhcLW9yXC1yZXN0Owor466RID4gc291bmRcLW9mXC1icm9rZW5cLXN0aWNrczsKK+OtryA+IHRyZWVcLXdpdGhcLXNtYWxsXC1sZWF2ZXM7Civjq4ogPiBmbHV0dGVyaW5nXC1vZlwtdGhlXC1mbGFnOwor46qjID4gYVwtcGxhY2VcLWluXC1oYW5cLWR5bmFzdHk7Civjqp8gPiB0b1wtcmVnYXJkXC1hc1wtaW1wb3J0YW50Owor46qeID4gdG9cLWJlXC1oZWxkXC1ieVwtdGhlXC1oYW5kOwor46m6ID4gYVwtY3JhY2tcLW9uXC10aGVcLXV0ZW5zaWw7CivjqZwgPiB0b1wtYmVcLWluXC1wb3NzZXNzaW9uXC1vZjsKK+OpjiA+IHRvXC1wcmVzc1wtd2l0aFwtYVwtZmluZ2VyOwor46e2ID4gdGhlXC1qaW5nbGluZ1wtb2ZcLW1ldGFsczsKK+OnmSA+IHRvXC1naXZlXC1hXC1wbGF5ZnVsXC1ibG93Owor46eDID4gdG9cLXJlY2VpdmVcLXdoYXRcLWlzXC1kdWU7CivjpqMgPiB0b1wtdGFsa1wtaW5cLW9uZScnc1wtc2xlZXA7CivjpoQgPiBoYXJkXC10b1wtc2F5XC1vclwtcHJlZGljdDsKK++kkCA+IHR5cGVcLW9mXC1jcmVlcGluZ1wtcGxhbnQ7CivvpI8gPiBuZXRcLWZvclwtY2F0Y2hpbmdcLWJpcmRzOwor46SKID4gY2hlZXJmdWxcLWFuZFwtZXh1YmVyYW50Owor46OaID4gdG9cLWdvXC1zdHJhaWdodFwtZm9yd2FyZDsKK+OiiSA+IGFcLXJvb21cLXdpdGhcLW9wZW5cLXNwYWNlOwor46CUID4gc2hhcGVzXC1vZlwtdGhlXC1tb3VudGFpbjsKK+OfuyA+IHRoZVwtbW9hdFwtYXJvdW5kXC1hXC1jaXR5Owor45uzID4gYW5cLWFibm9tYWxcLXVuYm9yblwtYmFieTsKK+OatyA+IHRoZVwtYnJlYXN0c1wtb2ZcLWFcLXdvbWFuOwor45mzID4gcnVnZ2VkbmVzc1wtb2ZcLXRoZVwtcm9hZDsKK+OZpCA+IGFcLWNyYWNrXC1pblwtZWFydGhlbndhcmU7CivjmZggPiB1c2VkXC1pblwtbmFtaW5nXC1hXC1wbGFjZTsKK+OYrSA+IGFcLWhvbGxvd1wtaW5cLXRoZVwtZ3JvdW5kOwor45isID4gYVwtaG9sbG93XC1pblwtdGhlXC1ncm91bmQ7Civjl4IgPiB0b1wta2VlcFwtdGhlXC1tb3V0aFwtc2h1dDsKK+OWkCA+IHNvdW5kXC1vZlwtY2FsbGluZ1wtZHVja3M7CivjlLQgPiBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudDsKK+OTuSA+IGFcLXNoYXJwXC1wb2ludGVkXC13ZWFwb247Civjk6YgPiB0b1wtZGVsaWJlcmF0ZVwtYW5kXC1wbGFuOwor45OYID4gamFkZVwtd2l0aFwtc29tZVwtZGVmZWN0czsKK+iniSA+IHRvXC13YWtlXC11cFwtZnJvbVwtc2xlZXA7CivnkrAgPiBqYWRlXC1yaW5nXC1vclwtYnJhY2VsZXQ7CivoprogPiB0b1wtd2FrZVwtdXBcLWZyb21cLXNsZWVwOwor6KaaID4gdG9cLXdha2VcLXVwXC1mcm9tXC1zbGVlcDsKK+WIkiA+IHRvXC1yb3dcLW9yXC1wYWRkbGVcLWJvYXQ7CivloKogPiBhZGVxdWF0ZWx5XC1jYXBhYmxlXC1vZjsKK+eOryA+IGphZGVcLXJpbmdcLW9yXC1icmFjZWxldDsKK+WQtCA+IG5hbWVcLW9mXC13YXJyaW5nXC1zdGF0ZTsKK+mztCA+IGNyeVwtb2ZcLWJpcmRcLW9yXC1hbmltYWw7CivlkYkgPiBvbmVcLW9mXC13YXJyaW5nXC1zdGF0ZXM7CivpprMgPiBnb1wtcXVpY2tseVwtb3JcLXN3aWZ0bHk7Civmpo4gPiBzbWFsbFwtZXZlcmdyZWVuXC1zaHJ1YjsKK+m4oyA+IGNyeVwtb2ZcLWJpcmRcLW9yXC1hbmltYWw7CivpqbAgPiBnb1wtcXVpY2tseVwtb3JcLXN3aWZ0bHk7Civlp7sgPiByZWxhdGl2ZXNcLWJ5XC1tYXJyaWFnZTsKK+etkiA+IHRoaWNrXC1waWVjZVwtb2ZcLWJhbWJvbzsKK+W4mCA+IGZsYWdcLXNpZ25cLW9mXC1hXC10YXZlcm47CivnqLsgPiByaWNlXC1ncm93aW5nXC1pblwtZmllbGQ7CivnqLIgPiByaWNlXC1ncm93aW5nXC1pblwtZmllbGQ7CivnprAgPiBvbmUnJ3NcLWRlY2Vhc2VkXC1mYXRoZXI7CivliYIgPiBtZWRpY2luYWxcLXByZXBhcmF0aW9uOwor54+CID4gaW5mZXJpb3JcLWtpbmRcLW9mXC1qYWRlOwor5ZifID4gc291bmRcLW9mXC1ob3JuXC10b290aW5nOwor55GcID4gZmxhd2xlc3NcLWdlbVwtb3JcLWpld2VsOwor54+RID4gYVwtZ2VtXC1jdXRcLWxpa2VcLWRyYWdvbjsKK+ivrCA+IG1ha2VcLWZhbHNlXC1hY2N1c2F0aW9uOwor5auWID4gcGF0cm9uaXplXC1wcm9zdGl0dXRlczsKK+mjkiA+IHRoZVwtc291bmRcLW9mXC10aGVcLXdpbmQ7CivplKIgPiBydW5cLW1ldGFsXC1pbnRvXC1jcmFja3M7CivmjpYgPiBzdXBwb3J0XC13aXRoXC10aGVcLWFybXM7Civmo6MgPiBrZXJyaWFcLWphcG9uaWNhXC1wbGFudDsKK+iPgSA+IGZsb3dlclwtb2ZcLWxlZWtcLWZhbWlseTsKK+WSqSA+IHRoZVwtYmxlYXRpbmdcLW9mXC1zaGVlcDsKK+ePiSA+IHN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor6ZKOID4gdG9vbFwtZm9yXC1ib3JpbmdcLWhvbGVzOwor5oqfID4gcm9sbFwtYXJvdW5kXC13aXRoXC1oYW5kOwor6La4ID4gc2VsbFwtb3JcLWJ1eVwtd2hvbGVzYWxlOwor5aajID4gb25lJydzXC1kZWNlYXNlZFwtbW90aGVyOwor5bWKID4gZGlzdHJpY3RcLWluXC1zaGFvaHNpbmc7CivnrLggPiBmbGF0XC1iYXNrZXRcLWZvclwtZ3JhaW47CivnpaIgPiBvbmUnJ3NcLWRlY2Vhc2VkXC1mYXRoZXI7CivogqsgPiB0aGVcLWdpenphcmRcLW9mXC1hXC1mb3dsOwor6IurID4gcnVzaFwtb3JcLXN0cmF3XC1tYXR0aW5nOwor5bOkID4gaGlnaFwtcG9pbnRlZFwtbW91bnRhaW47Civnp60gPiBvbmVcLXRob3VzYW5kXC1taWxsaW9uczsKK+WnkiA+IHdpZmVcLW9mXC1lbGRlclwtYnJvdGhlcjsKK+iTsCA+IHRvXC1pbmNyZWFzZVwtZml2ZVwtZm9sZDsKK+iSjCA+IGFydGVtaXNpYVwtc3RlbGxlcmlhbmE7CivphYMgPiB0aGVcLXNwaXJpdFwtb2ZcLWFcLWJlaW5nOwor57OXID4gcGFyY2hlZFwtd2hlYXRcLW9yXC1yaWNlOwor6L6LID4gZXh0ZXJpb3JcLXJpbVwtb2ZcLXdoZWVsOwor6aurID4gY2hpbGRyZW4nJ3NcLWhhaXJcLXN0eWxlOwor6Jm6ID4gbGFyZ2VcLXBvaXNvbm91c1wtc25ha2U7CivphrUgPiBjb250cmlidXRlXC1mb3JcLWRyaW5rczsKK+iarCA+IGFcLXZhcmlldHlcLW9mXC1iaXZhbHZlczsKK+ijvCA+IHRvXC10YWtlXC1vZmZcLW9uZScnc1wtdG9wOwor55y1ID4gZXllc1wtZGlzZWFzZWRcLWFuZFwtZGltOwor5p61ID4gaG9sbG9cLXN0dW1wXC1vZlwtYVwtdHJlZTsKK+iYqSA+IGFydGVtaXNpYVwtc3RlbGxhcmlhbmE7CivpvIMgPiB0aGVcLWVkaWJsZVwtd2F0ZXJcLWZyb2c7Civpt4AgPiB0aGVcLWZpc2hpbmdcLWNvcm1vcmFudDsKK+m0oCA+IGFcLWtpbmRcLW9mXC1uaWdodGluZ2FsZTsKK+mwpCA+IHNlcmlvbGFcLXFpbnF1ZXJhZGlhdGE7Civpr4QgPiBsZXBpZG90cmlnbGFcLXN0cmF1Y2hpOwor6auIID4gZGVmaW5lZFwtYXNcLXRoZVwtcGVsdmlzOwor6aK4ID4gY29vbFwtYnJlZXplXC1vZlwtYXV0dW1uOwor6aKvID4gdGhlXC1zb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+mMriA+IHJ1blwtbWV0YWxcLWludG9cLWNyYWNrczsKK+mHuiA+IHRvb2xcLWZvclwtYm9yaW5nXC1ob2xlczsKK+mFjiA+IGRvdWJsZVwtZmVybWVudGVkXC13aW5lOwor6LyuID4gZXh0ZXJpb3JcLXJpbVwtb2ZcLXdoZWVsOwor6LyeID4gZXh0ZXJpb3JcLXJpbVwtb2ZcLXdoZWVsOwor6LqJID4gc2VsbFwtb3JcLWJ1eVwtd2hvbGVzYWxlOwor6LC6ID4gdGhlXC1tb3V0aFwtb2ZcLWFcLXZhbGxleTsKK+iqoyA+IG1ha2VcLWZhbHNlXC1hY2N1c2F0aW9uOwor6KC4ID4gYXVsYWNvcGhvcmFcLWZlbW9yYWxpczsKK+iekiA+IGF1bGFjb3Bob3JhXC1mZW1vcmFsaXM7CivonLogPiByZWZsZWN0aW9uXC1vZlwtcmFpbmJvdzsKK+ichiA+IGFcLXZhcmlldHlcLW9mXC1iaXZhbHZlczsKK+iYmCA+IGFcLWtpbmRcLW9mXC13aWxkXC1naW5nZXI7CivolZogPiB0aGVcLWNhbHl4XC1vZlwtYVwtZmxvd2VyOwor6JSeID4gYXJ0ZW1pc2lhXC1zdGVsbGVyaWFuYTsKK+iRuSA+IGtpbmRcLW9mXC1jaHJ5c2FudGhlbXVtOwor6JC7ID4gc21hbGxcLWJ1ZGRoaXN0XC10ZW1wbGU7CivoiJogPiB0b1wtcHV0XC1vdXRcLXRoZVwtdG9uZ3VlOwor57+PID4gdGhlXC1zb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+e5tCA+IGFcLWtpbmRcLW9mXC1maXNoaW5nXC1uZXQ7Civnq7wgPiBiYW1ib29cLWNvdmVyXC1mb3JcLWJvYXQ7CivnpqggPiBwcmF5XC1mb3JcLWdvb2RcLWZvcnR1bmU7CivnmaUgPiBvYnN0cnVjdGlvblwtb2ZcLWJvd2VsczsKK+eXjyA+IGFcLWJydWlzZVwtb3JcLWNvbnR1c2lvbjsKK+eTjyA+IGFcLWdlbVwtY3V0XC1saWtlXC1kcmFnb247CivnkqEgPiBqYWRlXC1sb29rXC1hbGlrZVwtc3RvbmU7CivnkaggPiBqYWRlXC1sb29rXC1hbGlrZVwtc3RvbmU7CivnkYAgPiBzdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+a+giA+IGNsZWFyXC1hbmRcLXN0aWxsXC13YXRlcjsKK+a3nCA+IHJvYXJcLW9mXC1kYXNoaW5nXC13YXZlczsKK+ayhyA+IGZsb3dpbmdcLWFuZFwtZW5ndWxmaW5nOwor5qqfID4gc21hbGxcLWV2ZXJncmVlblwtc2hydWI7Civmmo4gPiBzdW5cLWJlZ2lubmluZ1wtZGVjbGluZTsKK+aRtiA+IHJvbGxcLWFyb3VuZFwtd2l0aFwtaGFuZDsKK+W2oCA+IGhpZ2hcLXBvaW50ZWRcLW1vdW50YWluOwor5bW8ID4gd2luZGluZ1wtbW91bnRhaW5cLXBhdGg7Civln7UgPiBoYXJkZW5lZFwtZGlydFwtb3JcLWNsYXk7Civll7sgPiB0b1wtc2NyZWVuXC5cLWxvcXVhY2lvdXM7CivlkLMgPiBvbmVcLW9mXC13YXJyaW5nXC1zdGF0ZXM7CivljJ8gPiBkaXZhblwtZm9yXC10d29cLXBlcnNvbnM7CivlipEgPiBtZWRpY2luYWxcLXByZXBhcmF0aW9uOwor5Ym+ID4gdG9cLXBpY2tcLXVwXC13aXRoXC1rbmlmZTsKK+WJpCA+IG1lZGljaW5hbFwtcHJlcGFyYXRpb247CivktZcgPiB0b1wtY2xlYW5cLXRoZVwtd2l0aGVyZWQ7CivktYQgPiB0b1wtYm9pbFwtb3JcLXN0ZXdcLXdoZWF0Owor5LS2ID4gdG9cLWJvaWxcLW9yXC1zdGV3XC13aGVhdDsKK+S0lCA+IHRoZVwtZmlzaGluZ1wtY29ybW9yYW50Owor5LO5ID4gYVwta2luZFwtZG92ZVwtbGlrZVwtYmlyZDsKK+SznSA+IGFcLWtpbmRcLW9mXC1zbWFsbFwtYmlyZHM7CivksZ8gPiBhXC1raW5kXC1vZlwtc2lsdmVyXC1maXNoOwor5K+vID4gaGFuZ1wtZG93blwtb2ZcLXRoZVwtaGFpcjsKK+SvrSA+IG9mXC1uaWNlXC1hbmRcLWdvb2RcLWhhaXI7CivkroQgPiBhblwtb25lXC15ZWFyXC1vbGRcLWhvcnNlOwor5K20ID4gYW5cLW9uZVwteWVhclwtb2xkXC1ob3JzZTsKK+SruSA+IHRoZVwtc291bmRcLW9mXC10aGVcLXdpbmQ7CivkqqUgPiBzaGFsbG90c1wtb3JcLXNjYWxsaW9uczsKK+SpqSA+IGFcLW1lYXN1cmVcLW9mXC1jYXBhY2l0eTsKK+SmvSA+IGFuXC1lYXN0XC1hbmRcLXdlc3RcLXdhbGw7CivkppogPiB3aWRlXC1vcGVuXC1vZlwtdGhlXC1kb29yOwor5KaMID4gdGhlXC1kb29yXC1pc1wtd2lkZVwtb3BlbjsKK+SliCA+IHRoZVwtc3ltYm9sXC1mb3JcLWNvYmFsdDsKK+SklyA+IHRhc3RlXC1vZlwtc3Ryb25nXC1kcmluazsKK+SiqSA+IHRvXC1mb3JiaWRcLXRvXC1wcm9oaWJpdDsKK+ShtiA+IHZlaGljbGVzXC1hbmRcLWdhcm1lbnRzOwor5J6aID4gdG9cLWhhbmdcLW9uXC1hXC1iaWdcLXRyZWU7CivknZYgPiByZXB0aWxlc1wtd2l0aG91dFwtZmVldDsKK+SbsSA+IHRvXC10YWxrXC11bnJlbWl0dGluZ2x5Owor5JuKID4gY2hlZXJmdWxcLWFsbFwtdGhlXC10aW1lOwor5JuDID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+SYkCA+IHRoZVwtYmxlZWRcLWF0XC10aGVcLW5vc2U7Civkl4ogPiB0b1wtcHV0XC1vdXRcLXRoZVwtdG9uZ3VlOwor5JeJID4gYVwtc21hbGxcLXNvbGl0YXJ5XC13YXNwOwor5JaUID4gYVwta2luZFwtb2ZcLXdoaXRlXC10aWdlcjsKK+SWjSA+IHRvXC1hY3RcLXdpdGhcLXJldmVyZW5jZTsKK+SUtSA+IGZyYWdyYW50XC10aG9yb3VnaHdvcnQ7CivklIogPiBkZW5zZVwtZ3Jvd3RoXC1vZlwtZ3Jhc3M7Civkk5IgPiBzY2lycHVzXC1jeXBlcmludXNcLXZhcjsKK+SSpiA+IGdyYXNzXC1mbG9hdHNcLW9uXC13YXRlcjsKK+SShCA+IGZ1bGx5XC1sYWRlblwtb2ZcLWFcLWJvYXQ7CivkkZ0gPiBhXC1zbWFsbFwtY3VwXC13aXRoXC1lYXJzOwor5I+kID4gdG9wXC1vZlwtdGhlXC1odW1hblwtaGVhZDsKK+SOtiA+IG9mZmVyaW5nXC1ibG9vZFwtdG9cLWdvZDsKK+SOmiA+IHRoZVwtZW5kXC1vZlwtYmlyZFwtd2luZ3M7CivkjpYgPiBzb2FyaW5nXC11cFwtaW5cLXRoZVwtc2t5Owor5I6BID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+SMpyA+IGFcLWtpbmRcLW9mXC1zaWxrXC1mYWJyaWM7CivkjJ8gPiB0b1wtd2VhdmVcLXNpbGtcLXJpYmJvbnM7Civki4IgPiBkcmVzc2VzXC1mb3JcLXRoZVwtYnJpZGU7CivkiKcgPiBza2luXC1vZlwtYmFtYm9vXC1zaG9vdHM7CivkiJ4gPiBhbmNpZW50XC1uYW1lXC1vZlwtaW5kaWE7Civkh74gPiBhXC1mbHV0ZVwtd2l0aFwtMjNcLXR1YmVzOwor5IewID4gYVwtYmFtYm9vXC1iaW5kZWRcLXRvcmNoOwor5IehID4gdGhlXC1zaHV0dGxlXC1vZlwtYVwtbG9vbTsKK+SGoCA+IGFcLWdvdmVybm1lbnRcLW9mZmljaWFsOwor5IabID4gc29tZXRoaW5nXC1pblwtdGhlXC1jYXZlOwor5IWXID4gZm91clwtYnVuZGxlXC1vZlwtZ3JhaW5zOwor5IWRID4gZm91clwtYnVuZGxlXC1vZlwtZ3JhaW5zOwor5IGtID4gdG9cLWdpdmVcLWFuXC1hbmdyeVwtbG9vazsKK+SBmiA+IGFcLWtpbmRcLW9mXC1leWVcLWRpc2Vhc2U7CivkgL0gPiB0b1wtbG9va1wtYXRcLWVhY2hcLW90aGVyOwor5ICgID4gYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lOwor5ICTID4gdG9cLXR1cm5cLW9uZScnc1wtZXllc1wtdG87Civjv7QgPiB3aWRlXC1waWVjZVwtb2ZcLWxlYXRoZXI7Civjv68gPiB3aWRlXC1waWVjZVwtb2ZcLWxlYXRoZXI7Civjv6sgPiB0b1wtc3BsaXRcLXRhbmdsZWRcLWhlbXA7Civjv48gPiBwYXJhbHlzaXNcLW9mXC10aGVcLWJvZHk7Civjvr4gPiBkaXNlYXNlXC1vZlwtdGhlXC10aHJvYXQ7CivjvqQgPiBkaXNlYXNlXC1vZlwtdGhlXC10aHJvYXQ7CivjvLIgPiBzb3VuZFwtb2ZcLWJyb2tlblwtdGlsZXM7CivjvJAgPiBhXC1raW5kXC1vZlwtd2hpdGVcLW1lbG9uOwor47m2ID4gYVwta2luZFwtb2ZcLXdpbGRcLWFuaW1hbDsKK+O5piA+IGRvZ1wtd2l0aFwtYVwtc2hvcnRcLXRhaWw7CivjuZQgPiBjYXR0bGVcLXdpdGhcLWxvbmdcLWJhY2s7Civjt5cgPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor47ePID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+O1rCA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivjtaggPiBhXC1kcnlcLWxhbmRcLWluXC1hXC1yaXZlcjsKK+OziCA+IGFcLWdyZWF0XC1mbG93XC1vZlwtd2F0ZXI7CivjsZ8gPiB0b1wtcmlwXC1vcGVuXC10aGVcLWZsZXNoOwor47CEID4gYVwtc21hbGxcLWNoZXN0bnV0XC10cmVlOwor46+lID4gYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lOwor466XID4gdGhlXC1oYW5kbGVcLW9mXC1hXC1zcGVhcjsKK+OtjSA+IGNhcGl0YWxcLWZvcm1cLW9mXC1zZXZlbjsKK+OsoCA+IHRvXC1leHBvc2VcLXRvXC1zdW5saWdodDsKK+OskyA+IHRvXC1leHBvc2VcLXRvXC1zdW5saWdodDsKK+OsgiA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivjqZ8gPiB0b1wtc2V3XC1zb21lXC1vcm5hbWVudHM7CivjqIwgPiB0b1wtbWlsa1wtYVwtY293XC1vclwtZ29hdDsKK+OjnSA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZTsKK+OgiyA+IGFcLWxvZnR5XC1tb3VudGFpblwtcGVhazsKK+OfniA+IHByZWNpcGl0b3VzXC1hbmRcLWxvZnR5Owor45+dID4gdG9cLWJhbmtcLXVwXC13aXRoXC1lYXJ0aDsKK+OfnCA+IHNoYXBlXC1vZlwtdGhlXC1tb3VudGFpbjsKK+OfmSA+IHNoYXBlXC1vZlwtdGhlXC1tb3VudGFpbjsKK+OfliA+IGFcLWRpYWxlY3RcLW9mXC1taW5vcml0eTsKK+OfjiA+IGFcLWxvbmdcLW1vdW50YWluXC1yaWRnZTsKK+OegSA+IGNhblwtbm90XC13YWxrXC1ub3JtYWxseTsKK+OdviA+IGNhblwtbm90XC13YWxrXC1ub3JtYWxseTsKK+OYsCA+IG5hbWVcLW9mXC1hXC1vbGRcLWNvdW50cnk7CivjmKEgPiBhXC1wZW5cLWZvclwtd2lsZFwtYmVhc3RzOwor45iWID4gdG9cLW1ha2VcLWFcLWRpc3R1cmJhbmNlOwor45eBID4gdGhlXC1yb29mXC1vZlwtdGhlXC1tb3V0aDsKK+OWlyA+IGhpZ2hcLXJpZGdlc1wtb2ZcLWNsaWZmczsKK+OVoiA+IHByb2ZvdW5kXC1zaWduaWZpY2FuY2U7CivjkoYgPiB0b1wtZ2F0aGVyXC10aGVcLWhhcnZlc3Q7Civku4AgPiBmaWxlXC1vZlwtdGVuXC1zb2xkaWVyczsKK+iyrCA+IG9uZScnc1wtcmVzcG9uc2liaWxpdHk7CivniLUgPiBmZXVkYWxcLXRpdGxlXC1vclwtcmFuazsKK+i0oyA+IG9uZScnc1wtcmVzcG9uc2liaWxpdHk7CivllYogPiBleGNsYW1hdG9yeVwtcGFydGljbGU7CivmpZogPiBuYW1lXC1vZlwtZmV1ZGFsXC1zdGF0ZTsKK+aJmCA+IHRvXC1ob2xkXC11cFwtd2l0aFwtcGFsbTsKK+axsiA+IGRyYXdcLXdhdGVyXC1mcm9tXC13ZWxsOwor6a2FID4ga2luZFwtb2ZcLWZvcmVzdFwtZGVtb247CivkvIogPiB0aGlyZFwtcGVyc29uXC1wcm9ub3VuOwor6bi/ID4gc3BlY2llc1wtb2ZcLXdpbGRcLXN3YW47Civlp6UgPiBtYXRlcm5hbFwtZ3JhbmRtb3RoZXI7CivmjacgPiBob2xkXC11cFwtaW5cLXR3b1wtaGFuZHM7CivkuZkgPiBzZWNvbmRcLWhlYXZlbicnc1wtc3RlbTsKK+WQgSA+IGludGVyamVjdGlvblwtJydhbGFzXCEnJzsKK+WnqCA+IG1vdGhlclwvd2lmZScnc1wtc2lzdGVyOwor5LqpID4gY2hpbmVzZVwtbGFuZFwtbWVhc3VyZTsKK+WDtSA+IHN0aWZmXC1hbmRcLW1vdGlvbmxlc3M7Civmi7EgPiBmb2xkXC1oYW5kc1wtb25cLWJyZWFzdDsKK+emviA+IGdyYWluXC1zdGlsbFwtb25cLXN0YWxrOwor5ZehID4gc291bmRcLW9mXC1mbHlpbmdcLWJlZXM7Civlha4gPiBleGNsYW1hdG9yeVwtcGFydGljbGU7CivnjKkgPiBzcGVjaWVzXC1vZlwtb3Jhbmd1dGFuOwor54ueID4gZmVyb2Npb3VzXC1hcHBlYXJhbmNlOwor5ouIID4gcGlja1wtdXBcLXdpdGhcLWZpbmdlcnM7CivpmZsgPiBzdGVwc1wtbGVhZGluZ1wtdGhyb25lOwor6bivID4gZmVtYWxlXC1tYW5kYXJpblwtZHVjazsKK+WNryA+IHRoXC1vZlwtZWFydGhcLWJyYW5jaGVzOwor54agID4gYnJpZ2h0XC1hbmRcLXNwYXJrbGluZzsKK+mYgiA+IGJsb2NrZWRcLW9yXC1zZXBhcmF0ZWQ7Civmt4UgPiB3YXRlclwtdXNlZFwtd2FzaFwtcmljZTsKK+S9miA+IGluZHVsZ2VcLWluXC1wbGVhc3VyZXM7CivovpogPiBydW1ibGluZ1wtb2ZcLXZlaGljbGVzOwor5be9ID4gdGhcLW9mXC10aGVcLThcLXRyaWdyYW1zOwor6KiHID4gdGhlXC1zb3VuZFwtb2ZcLWFcLWNyYXNoOwor54u6ID4gdGhlXC1zbmFybGluZ1wtb2ZcLWRvZ3M7CivmtZQgPiBzdGVlcFwtYmFua1wtYnlcLXN0cmVhbTsKK+iTiiA+IGx1eHVyaWFudFwtdmVnZXRhdGlvbjsKK+iToCA+IGdyYWNpbGFyaWFcLXZlcnJ1Y29zYTsKK+iPgCA+IGx1eHVyaWFuY2VcLW9mXC1ncm93dGg7Civog5cgPiBwdXN0dWxlc1wtb2ZcLWFueVwta2luZDsKK+migyA+IGZseVwtZG93blwtb3JcLWRvd253YXJkOwor5Z6GID4gYmxhY2tcLWNsb2RzXC1vZlwtZWFydGg7CivmqJcgPiBhaWxhbnRodXNcLWdsYW5kdWxvc2E7CivomqcgPiBhXC1yZWRcLXNwb3R0ZWRcLWxpemFyZDsKK+e8tiA+IGVhcnRoZW5cLWNyb2NrXC1vclwtamFyOwor6LGzID4gYVwtemhvdVwtZHluYXN0eVwtc3RhdGU7CivovbogPiBzbWFsbFwtbGlnaHRcLWNhcnJpYWdlOwor6YCvID4gbGVhdmVcLXdpdGhvdXRcLXJlYXNvbjsKK+m9niA+IHRvXC1kaXNwbGF5XC10aGVcLXRlZXRoOwor6byIID4gYVwtZnJlc2hcLXdhdGVyXC10dXJ0bGU7CivpvIIgPiBhXC1raW5kXC1vZlwtc2VhXC10dXJ0bGU7CivpuIcgPiBraW5kXC1vZlwtYmlyZFwtb2ZcLXByZXk7CivpuIIgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7Civpt6sgPiB0dXJxdW9pc2VcLWtpbmdmaXNoZXI7Civpt4EgPiBmaXNoaGF3a1wtYm93XC1vclwtcHJvdzsKK+m0uyA+IHNwZWNpZXNcLW9mXC13aWxkXC1zd2FuOwor6bSmID4gZmVtYWxlXC1tYW5kYXJpblwtZHVjazsKK+mwnCA+IGJpZ1wtbW91dGhlZFwtZmxvdW5kZXI7Civpq7ogPiB0aGVcLWhhaXJcLWRpc2hldmVsbGVkOwor6aqjID4gaG9yc2VcLXdpdGhvdXRcLXNhZGRsZTsKK+mpjyA+IGhvcnNlXC13aXRob3V0XC1zYWRkbGU7CivppL0gPiBtYWtlXC1wcmVzZW50XC1vZlwtZm9vZDsKK+mgjyA+IGZseVwtZG93blwtb3JcLWRvd253YXJkOwor6Z+xID4gd2lsZFwtb25pb25zXC1vclwtbGVla3M7Civpn68gPiB3aWxkXC1vbmlvbnNcLW9yXC1sZWVrczsKK+mcgyA+IGxvbmdcLWNvbnRpbnVlZFwtcmFpbnM7Civpl40gPiB0b3dlclwtb3ZlclwtY2l0eVwtZ2F0ZTsKK+mWoSA+IGJsb2NrZWRcLW9yXC1zZXBhcmF0ZWQ7CivpjbEgPiB0aGluXC1wbGF0ZXNcLW9mXC1tZXRhbDsKK+mJtiA+IHNhY3JpZmljaWFsXC1jYXVsZHJvbjsKK+mGsCA+IGJpdHRlclwtdGFzdGVcLWluXC13aW5lOwor6L2UID4gcnVtYmxpbmdcLW9mXC12ZWhpY2xlczsKK+i7uiA+IHNtYWxsXC1saWdodFwtY2FycmlhZ2U7CivotoIgPiB0b1wtdGFrZVwtYWR2YW50YWdlXC1vZjsKK+ilrCA+IGxvd2VyXC1wYXJ0XC1vZlwtYVwtcm9iZTsKK+iisyA+IHNwcmVhZFwtb25lJydzXC1jbG90aGVzOwor6JybID4gaHlkcm9waGlsdXNcLWNvZ25hdHVzOwor6JuaID4gY3lydG94aXBodXNcLXJpdHNlbWFlOwor6Ji6ID4gZ3JhY2lsYXJpYVwtdmVycnVjb3NhOwor6JaiID4gd29vZHlcLWNsaW1iaW5nXC1wbGFudDsKK+iMgCA+IG92ZXJncm93blwtd2l0aFwtZ3Jhc3M7CivoioQgPiBtZXRhcGxleGlzXC1zdGF1bnRvbmk7CivoiLogPiBwbGFjZVwtbmFtZVwtaW5cLXRhaXdhbjsKK+iEoSA+IHN0cmlwc1wtb2ZcLWRyaWVkXC1tZWF0Owor57KDID4gZW1wdHlcLWh1c2tzXC1vZlwtZ3JhaW47CivnqqMgPiB0b1wtcnVzaFwtb3V0XC1vZlwtYVwtZGVuOwor56mHID4gcGFuaWN1bVwtZnJ1bWVudGFjZXVtOwor56OSID4gdG9cLWZhbGxcLWZyb21cLW9yXC1pbnRvOwor55+RID4gdGhlXC1wdXBpbFwtb2ZcLXRoZVwtZXllOwor552NID4gdG9cLWxvb2tcLWF0XC1mZWFyZnVsbHk7CivnlZ0gPiBjaGluZXNlXC1sYW5kXC1tZWFzdXJlOwor55WSID4gY2hpbmVzZVwtbGFuZFwtbWVhc3VyZTsKK+eVhiA+IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7CivnlL0gPiBkcmFpblwtYmV0d2VlblwtZmllbGRzOwor55SDID4gYnJpY2tcLXdhbGxcLW9mXC1hXC13ZWxsOwor55CWID4gY2FydmVkXC1qYWRlXC13aW5lXC1jdXA7CivnjqYgPiBicm9rZW5cLXBpZWNlXC1vZlwtamFkZTsKK+eNsCA+IGZlcm9jaW91c1wtYXBwZWFyYW5jZTsKK+eAsyA+IHRvXC1hcnJpdmVcLVwob2ZcLXdhdGVyXCk7CivmvqwgPiB0b1wtcmFpblwtY29udGludW91c2x5Owor5r2vID4gc3RlZXBcLWJhbmtcLWJ5XC1zdHJlYW07CivmtKQgPiBhXC1mb3VudGFpblwtb3JcLXNwcmluZzsKK+anviA+IHBhc3RlXC13YWxsXC13aXRoXC1kaXJ0Owor5qOoID4gdGFsbHlcLW9yXC13b29kZW5cLXBhc3M7CivmoawgPiBwZWFyXC1hbmRcLW90aGVyXC10cmVlczsKK+aVsyA+IHRvXC1nb3Zlcm5cLWZvcmNlZnVsbHk7CivmlYEgPiB0b1wtd2VpZ2hcLWluXC10aGVcLWhhbmQ7CivmkI4gPiB0b1wtcnViXC13aXRoXC10aGVcLWhhbmQ7CivmiLwgPiB0aFwtb2ZcLWVhcnRoXC1icmFuY2hlczsKK+W3uiA+IHRoXC1vZlwtdGhlXC04XC10cmlncmFtczsKK+W1jyA+IGFcLW1vdW50YWluXC1pblwtc2hlbnhpOwor5a2tID4gdG9cLWNhcnJ5XC1vblwtdGhlXC1iYWNrOwor5auLID4gc2xlbmRlclwtYW5kXC1kZWxpY2F0ZTsKK+WpoyA+IG1hcnJpYWdlXC1jb25uZWN0aW9uczsKK+WkmCA+IHRoXC1vZlwtZWFydGhcLWJyYW5jaGVzOwor5aOaID4gYmxhY2tcLWNsb2RzXC1vZlwtZWFydGg7Civlm6wgPiB0b1wtcmV0dXJuXC10b1wtb3JcLWZyb207CivlioIgPiBjaGlzZWxcLWZvclwtZW5ncmF2aW5nOwor5LaZID4gc3dlbGxpbmdcLW9mXC10aGVcLWd1bXM7CivktoogPiB0b1wtYmxlZWRcLWF0XC10aGVcLW5vc2U7CivktJ8gPiBhblwtb25lXC15ZWFyXC1vbGRcLWRlZXI7CivktJYgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7CivktIwgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7CivktIsgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7CivktIggPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7CivktIIgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7CivktIAgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7Civks7YgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7Civks7MgPiBhXC1raW5kXC1vZlwtc21hbGxcLWJpcmQ7Civks5MgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7Civks5EgPiBhXC1waGVhc2FudFwtbGlrZVwtYmlyZDsKK+SziyA+IGFcLXBoZWFzYW50XC1saWtlXC1iaXJkOwor5LOJID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LOEID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LOCID4gYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkOwor5LKxID4gYVwta2luZFwtb2ZcLWJsYWNrXC1iaXJkOwor5LKVID4gdGhlXC15YW5ndHplXC1wb3Jwb2lzZTsKK+SxkCA+IGFcLWtpbmRcLW9mXC1ibGFja1wtZmlzaDsKK+SxgCA+IGFcLWtpbmRcLW9mXC1zbWFsbFwtZmlzaDsKK+SvuiA+IHRoZVwtaGFpclwtZGlzaGV2ZWxsZWQ7CivkrqEgPiBhXC1zdXBlcm5hdHVyYWxcLWhvcnNlOwor5K6CID4gaG9yc2VcLXdpdGhcLWxvbmdcLWhhaXI7Civkrb4gPiB0b1wtY2FycnlcLW9uXC10aGVcLWJhY2s7CivkrbcgPiBob3JzZVwtd2l0aFwtbG9uZ1wtbWFuZTsKK+SsqSA+IHRvXC1hYnN0YWluXC1mcm9tXC1tZWF0Owor5KyjID4gYVwtc2FjcmlmaWNpYWxcLXZpY3RpbTsKK+SroCA+IHNob3J0XC1oYWlyXC1hbmRcLWJlYXJkOwor5Km9ID4gYVwtcXVpdmVyXC1vbmVcLWFcLWhvcnNlOwor5KmCID4gdG9cLWNvbWVcLXRvXC10aGVcLWZyb250Owor5KeXID4gbW91bnRhaW5zXC1jb2xsYXBzaW5nOwor5KamID4gYVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+SlpCA+IHRoZVwtbmVja1wtb2ZcLWFcLXBlc3RsZTsKK+SloSA+IHRoaW5cLXBsYXRlc1wtb2ZcLW1ldGFsOwor5KWGID4gYVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+SlhSA+IGFcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkpYQgPiB0b1wtcGxhc3Rlclwtd2l0aFwtZ29sZDsKK+SkuCA+IHNob3J0XC1zcGVhclwtb3JcLWxhbmNlOwor5KCRID4gYmV0d2VlblwtdGhlXC1idXR0b2NrczsKK+SgiCA+IGhhcmRcLXRvXC1tb3ZlXC1mb3J3YXJkOwor5J+pID4gaGFyZFwtb2ZcLXdhbGtcLWZvcndhcmQ7CivknpkgPiB0b1wtd2Fsa1wtaW5cLWh1cnJpZWRseTsKK+SdkSA+IGFcLWxvY2FsXC1wcm9kdWNlZFwtcGlnOwor5JynID4gdG9cLWluc3VsdFwtd2l0aFwtd29yZHM7CivknJMgPiBhXC1zbGlwXC1vZlwtdGhlXC10b25ndWU7CivknIAgPiB0b1wtaW5zdWx0XC13aXRoXC13b3JkczsKK+SbjCA+IHRvXC1wcm92b2tlXC1vclwtYXJvdXNlOwor5JmuID4gc3RyaXBcLW9mXC10aGVcLWNsb3RoZXM7CivkmL4gPiBsZWdzXC1vZlwtdGhlXC10cm91c2VyczsKK+SVqyA+IGFcLW9uZVwtbGVnZ2VkXC1tb25zdGVyOwor5JSIID4gbHVzaFwtZ3Jvd3RoXC1vZlwtZ3Jhc3M7CivkkaAgPiBsb25nXC1hbmRcLW5hcnJvd1wtYm9hdDsKK+SQuCA+IHRoZVwtYmFja1wtb2ZcLXRoZVwta25lZTsKK+SPvyA+IHRoZVwtY2FsZlwtb2ZcLXRoZVwtbGVnczsKK+SPoSA+IHVuY29va2VkXC1vclwtcmF3XC1tZWF0Owor5IqzID4gdG9cLWJyZWFrXC1pbnRvXC1waWVjZXM7CivkirIgPiB0b1wtaHVsbFwtcmljZVwtcm91Z2hseTsKK+SKgiA+IHBvb3JcLXF1YWxpdHlcLW9mXC1yaWNlOwor5ImRID4gYmxhY2tcLXNraW5uZWRcLWJhbWJvbzsKK+SIpiA+IGFcLWN1cnZlZFwtYmFtYm9vXC13aGlwOwor5IiRID4gdG9vbHNcLXRvXC11bnJlZWxcLXNpbGs7CivkiIUgPiB0b29sc1wtdG9cLXVucmVlbFwtc2lsazsKK+SIgSA+IHRvb2xzXC11c2VkXC1vblwtYVwtYm9hdDsKK+SHmCA+IHRvb2xcLXRvXC1jb2xsZWN0XC1yb3BlOwor5IajID4gYWJvZGVcLW9mXC10aGVcLWVtcGVyb3I7Civkho8gPiBhXC1raW5kXC1vZlwtcmljZVwtcGxhbnQ7CivkhoMgPiBhXC1raW5kXC1vZlwtcmljZVwtcGxhbnQ7Civkha4gPiBhXC1mdWxsXC1oZWFkXC1vZlwtZ3JhaW47CivkhZMgPiBjdXJ2ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+SFjyA+IHJpY2VcLWJvaWxlZFwtdG9cLWdydWVsOwor5IWJID4gYVwta2luZFwtb2ZcLXJpY2VcLXBsYW50Owor5IS/ID4gYVwta2luZFwtb2ZcLXJpY2VcLXBsYW50Owor5ISvID4gdGVuXC1oYW5kbGVcLW9mXC1ncmFpbnM7CivkhIIgPiB0b1wtcHJheVwtYW5kXC10b1wtY3Vyc2U7Civkg7AgPiBicmlja1wtb3JcLXN0b25lXC1zdGVwczsKK+SCkiA+IHNob3J0XC10b1wtY3VycnlcLWZhdm9yOwor5IKCID4gdG9cLWdhemVcLWF0XC1pblwtdGVycm9yOwor5IGsID4gdG9cLWFjdFwtcHJldGVudGlvdXNseTsKK+SAtyA+IHRvXC1oYXZlXC1xdWlja1wtZ2xhbmNlOwor5ICyID4gZGlzZWFzZXNcLWluXC10aGVcLWV5ZXM7Civjv7ggPiB0b1wtY2FzdFwtb2ZmXC10aGVcLXNraW47Civjv54gPiBhblwtb2xkXC1tYW5cLW9mXC1laWdodHk7CivjvaQgPiBhXC1zbWFsbFwtcGxvdFwtb2ZcLWxhbmQ7CivjvaIgPiB0b1wtcGxvdWdoXC10aGVcLWZpZWxkczsKK+O9lSA+IG5ld1wtYnJhbmNoZXNcLWdyb3dpbmc7CivjvYMgPiBhXC1iaWdcLXBpZWNlXC1vZlwtYnJpY2s7CivjvKIgPiBicmlja3NcLWFuXC1lYXRoZW5cLWphcjsKK+O8iSA+IGdyZWVuXC1jb2xvcmVkXC1tZWxvbnM7Civju64gPiBicmlnaHRcLWFuZFwtYnJpbGxpYW50Owor47quID4gZmluZVwtc3RvbmVcLWxpa2VcLWphZGU7CivjuqggPiBmaW5lXC1zdG9uZVwtbGlrZVwtamFkZTsKK+O6giA+IGJpZ1wtYW5kXC1zdHJvbmdcLXNoZWVwOwor47mYID4gc2hpbmJvbmVcLW9mXC1hXC1jYXR0bGU7CivjuKogPiBhblwtb3hcLXdhbGtpbmdcLXNsb3dseTsKK+O3mSA+IHRvXC1mcnlcLWluXC1mYXRcLW9yXC1vaWw7CivjtpQgPiBzd2lmdFwtYW5kXC10b3JyZW50aWFsOwor47aOID4gc3dpZnRcLWFuZFwtdG9ycmVudGlhbDsKK+O1oSA+IHN3aWZ0XC1hbmRcLXRvcnJlbnRpYWw7CivjtZ4gPiBiZWxsaWVkXC1pblwtd2F0ZXJcLWdhczsKK+OzvCA+IGJ1YmJsaW5nXC1vZlwtZm91bnRhaW47Civjs5ogPiBmbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+OzlCA+IHRvXC1zb2FrXC1vclwtYmVcLXNvYWtlZDsKK+OzkCA+IGZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor47KrID4gaGFpclwta25vdHNcLWluXC1hXC1tZXNzOwor47KiID4gaGFpclwta25vdHNcLWluXC1hXC1tZXNzOwor47CLID4gYVwta2luZFwtb2ZcLWZydWl0XC10cmVlOwor46+MID4gdG9cLW9wZXJhdGVcLW9yXC1tYW5hZ2U7CivjrZ4gPiBhXC1raW5kXC1pbmZlcmlvclwtd29vZDsKK+OtkiA+IGFcLWZhcm1pbmdcLWluc3RydW1lbnQ7CivjqrAgPiB0b1wtYWJzdGFpblwtZnJvbVwtbWVhdDsKK+OpuyA+IHJ1Z2dlZFwtbW91bnRhaW5cLXBhdGg7CivjqZQgPiBhXC10b29sXC10b1wtbWFrZVwtYVwtYm93Owor76e9ID4gZmlsZVwtb2ZcLXRlblwtc29sZGllcnM7Civjp7kgPiB0b1wtc3RyaWtlXC13aXRoXC1maXN0czsKK+OhmSA+IGN1cnRhaW5cLWZvclwtY2FycmlhZ2U7CivjoJcgPiBkZWVwXC1pblwtdGhlXC1tb3VudGFpbjsKK+OepSA+IGRlZXBcLWluXC10aGVcLW1vdW50YWluOwor456fID4gc2F2aW5nc1wtYW5kXC1yZXNlcnZlczsKK+OckiA+IG1hdGVybmFsXC1ncmFuZG1vdGhlcjsKK+OZoyA+IHRvXC1waWxlXC1hXC1zYW5kXC1oaWxsczsKK+OZkSA+IHRoZVwtY2Fub3B5XC1vZlwtaGVhdmVuOwor45iOID4gdGhlXC1yb2Fyc1wtb2ZcLWFcLXRpZ2VyOwor45iFID4gdG9cLWhvbGRcLWluXC10aGVcLW1vdXRoOwor45WhID4gdGhlXC1iZWRcLW9mXC1hXC10b3JyZW50Owor45WMID4gdG9cLXJhaXNlXC10aGVcLWN1cnRhaW47CivjlIsgPiBjdXRcLWludG9cLXRoaW5cLXNsaWNlczsKK+OShSA+IHRvXC11bmJpbmRcLXRoZVwtY29sbGFyOwor45GJID4gY2Fubm90XC1zdHJhaWdodGVuXC11cDsKK+W5viA+IGhvd1wtbWFueVw/XC1ob3dcLW11Y2hcPzsKK+WljyA+IG1lbW9yaWFsaXplXC1lbXBlcm9yOwor5oKoID4gaG9ub3JpZmljXC1mb3JcLScneW91Jyc7CivlkI8gPiBnb3Zlcm5tZW50XC1vZmZpY2lhbDsKK+WFgCA+IHRvXC1jdXRcLW9mZlwtdGhlXC1mZWV0Owor6IO0ID4gdGhlXC1sYXJnZVwtaW50ZXN0aW5lOwor56emID4gZmV1ZGFsXC1zdGF0ZVwtb2ZcLXFpbjsKK+ahgSA+IGNyb3NzXC1iZWFtc1wtb2ZcLXJvb2Y7Civojo4gPiBraW5kXC1vZlwtc2VkZ2VcLWdyYXNzOwor6JabID4ga2luZFwtb2ZcLW1hcnNoXC1ncmFzczsKK+e1oyA+IHRvXC1iYXN0ZVwtZm9yXC1zZXdpbmc7CivmgpYgPiBiZVwtY29udHJhZGljdG9yeVwtdG87CivoipIgPiBtaXNjYW50aHVzXC1zaW5lbnNpczsKK+WYtiA+IG5laWdoaW5nXC1vZlwtYVwtaG9yc2U7Civlj70gPiBzaWdoXC1pblwtZGlzYXBwcm92YWw7CivljqUgPiBwZXJzb25hbFwtcHJvbm91blwtaGU7CivlnK0gPiBqYWRlXC1wb2ludGVkXC1hdFwtdG9wOwor5b6YID4gd2Fsa1wtYmFja1wtYW5kXC1mb3J0aDsKK+aZpCA+IGhhdmVcLWludGVydmlld1wtd2l0aDsKK+iItyA+IHRoZVwtc2lkZXNcLW9mXC1hXC1ib2F0Owor6YKsID4gdmFyaW91c1wtcGxhY2VcLW5hbWVzOwor6KSQID4gY29hcnNlXC13b29sZW5cLWNsb3RoOwor6aaIID4gb2ZmZXJcLWZvb2RcLXN1cGVyaW9yOwor5ZSnID4gY2hpcnBpbmdcLW9mXC1pbnNlY3RzOwor5ZKUID4gdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor54G4ID4gY2F1dGVyaXplXC13aXRoXC1tb3hhOwor6am3ID4gdGVhbVwtb2ZcLWZvdXJcLWhvcnNlczsKK+eyvCA+IGNsZWFyXC1cKGFzXC1vZlwtd2F0ZXJcKTsKK+e+miA+IHNwZWNpZXNcLW9mXC1hbnRlbG9wZTsKK+WRkyA+IHRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor56+ZID4gcG9sZVwtdXNlZFwtcHVudFwtYm9hdDsKK+a5jSA+IHJhcGlkXC13YXRlclwtY3VycmVudDsKK+iEjSA+IG1pbmNlZFwtbWVhdFwtb3JcLWZpc2g7Civpj5YgPiB0b1wtZmlnaHRcLXRvXC10aGVcLWVuZDsKK+iCvSA+IGFcLWNoZW1pY2FsXC1jb21wb3VuZDsKK+WNnyA+IGFcLWNoZW1pY2FsXC1jb21wb3VuZDsKK+mKriA+IGJlbGxzXC1odW5nXC1vblwtaG9yc2U7CivnrLMgPiBhXC1yZWVkXC1sZWFmXC13aGlzdGxlOwor6JaPID4gc2VlZFwtb2ZcLWpvYicnc1wtdGVhcnM7Civmgp0gPiB0b1wtbGF1Z2hcLWF0XC10b1wtcGl0eTsKK+ixhyA+IGFcLXNtYWxsXC1raWRuZXlcLWJlYW47CivmoYkgPiBldWNhbHlwdHVzXC1nbG9idWx1czsKK+i5gSA+IHRvXC13YWxrXC13aXRoXC1hXC1saW1wOwor6IWIID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6J6fID4ga2luZFwtb2ZcLWNhdGVycGlsbGFyOwor5rOuID4gemhvdVwtZHluYXN0eVwtc2Nob29sOwor6bKzID4gdGhlXC1zaWx2ZXJ5XC1wb21mcmV0Owor6ZyqID4gbG9uZ1wtYW5kXC1oZWF2eVwtcmFpbjsKK+aemCA+IHRoZVwtaGFuZGxlXC1vZlwtdG9vbHM7Civmu7kgPiB0aGVcLWJhbmtcLW9mXC1hXC1zdGVhbTsKK+W9syA+IHN0ZXBcLXdpdGhcLWxlZnRcLWZvb3Q7Civkuo0gPiB0b1wtdGFrZVwtc21hbGxcLXN0ZXBzOwor56CYID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2w7CivmoI4gPiBjaGVzdG51dFwtbGVhdmVkXC1vYWs7CivpuYcgPiB0aGVcLXNpbHZlclwtcGhlYXNhbnQ7Civoi4wgPiBhdmVycmhvcmFcLWNhcmFtYm9sYTsKK+mDmyA+IG91dGVyXC13YWxsc1wtb2ZcLWNpdHk7CivphqIgPiBtaW5jZWRcLXBpY2tsZWRcLW1lYXQ7CivnnJogPiBkaXNlYXNlXC1vZlwtdGhlXC1leWVzOwor6ICxID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2w7Civoo4kgPiBzXC1zZWFtXC1pblwtYVwtZ2FybWVudDsKK+W0piA+IGFcLW1vdW50YWluXC1pblwta2Fuc3U7CivlhZUgPiBhXC1mZW1hbGVcLXJoaW5vY2Vyb3M7CivpuJIgPiB0aGVcLWVhc3Rlcm5cLWphY2tkYXc7Civpt7MgPiB0aGVcLXNpbHZlclwtcGhlYXNhbnQ7CivptrIgPiBzaWJlcmlhblwtZmx5Y2F0Y2hlcjsKK+mwtiA+IGtvbm9zaXJ1c1wtcHVuY3RhdHVzOwor6a+nID4gdGhlXC1zaWx2ZXJ5XC1wb21mcmV0Owor6a+lID4gcG9tYXRvbXVzXC1zYWx0YXRyaXg7Civpr5UgPiBjb3J5cGhhZW5hXC1oaXBwdXJ1czsKK+mutiA+IHNlYmFzdG9kZXNcLWd1bnRoZXJpOwor6aefID4gdGVhbVwtb2ZcLWZvdXJcLWhvcnNlczsKK+mliyA+IG9mZmVyXC1mb29kXC1zdXBlcmlvcjsKK+mjgiA+IHdpbmRcLWluXC1oaWdoXC1wbGFjZXM7Civpor4gPiBibG93aW5nXC1vZlwtdGhlXC13aW5kOwor6aCWID4gemhvdVwtZHluYXN0eVwtc2Nob29sOwor6aCNID4gdG9cLXJhaXNlXC1vbmUnJ3NcLWhlYWQ7Civpn5ggPiBhcmNoZXInJ3NcLXRodW1iXC1yaW5nOwor6Z6sID4gYVwtcXVpdmVyXC1vblwtYVwtaG9yc2U7CivpnLYgPiBkb3ducG91cmluZ1wtb2ZcLXJhaW47CivpnK4gPiBkZW5zZW5lc3NcLW9mXC1jbG91ZHM7Civpkb4gPiBiZWxsc1wtaHVuZ1wtb25cLWhvcnNlOwor6ZG0ID4gdG9cLWVuZ3JhdmVcLW9yXC1jYXJ2ZTsKK+mOhCA+IGlyaWRpdW1cLWVpbnN0ZWluaXVtOwor6YuRID4gdG9cLWVuZ3JhdmVcLW9yXC1jYXJ2ZTsKK+mIgyA+IGFuY2llbnRcLXdpbmVcLXZlc3NlbDsKK+mFpyA+IHRvXC1wbGVkZ2VcLXdpdGhcLXdpbmU7CivphJQgPiB2YXJpb3VzXC1wbGFjZVwtbmFtZXM7CivopbQgPiBhXC1vbmVcLXBpZWNlXC1nYXJtZW50Owor6KSDID4gYVwtc2VhbVwtaW5cLWFcLWdhcm1lbnQ7CivooLAgPiBjZXJhbWJ5eFwtcnVnaWNvbGxpczsKK+ifqCA+IHRoZVwtc2liZXJpYW5cLWplcmJvYTsKK+idnSA+IHRoZVwtbGFydmFcLW9mXC1sb2N1c3Q7CivolIogPiBuYXN0dXJ0aXVtXC1tb250YW51bTsKK+iThyA+IGZvbGxpY2xlc1wtb2ZcLXBsYW50czsKK+iSiCA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iRhyA+IGVsc2hvbHRyaWFcLXBhbHRyaW5pOwor6JCHID4gYXZlcnJob3JhXC1jYXJhbWJvbGE7CivojpUgPiBueW1waG9pZGVzXC1wZWx0YXR1bTsKK+iMsyA+IGN5cGVydXNcLW1hbGFjY2Vuc2lzOwor6IyaID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6IuzID4gcGV0YXNpdGVzXC1qYXBvbmljdXM7Civoi4ogPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7CivoiasgPiBib3dcLW9yXC1wcm93XC1vZlwtYm9hdDsKK+iIuyA+IGJvd1wtb3JcLXByb3dcLW9mXC1ib2F0Owor6IiuID4gYm93XC1vclwtcHJvd1wtb2ZcLWJvYXQ7Civohr4gPiBtaW5jZWRcLW1lYXRcLW9yXC1maXNoOwor6IWZID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6ISOID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6IOpID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6IK8ID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6IKfID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6ICiID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2w7CivnvqIgPiBmaW5lXC13b29sZW5cLWZhYnJpY3M7CivnvpEgPiBhXC1ndWlkZVwtdG9cLWdvb2RuZXNzOwor57myID4gdG9cLXdvcmtcLWFzXC1hXC10YWlsb3I7CivntoAgPiBhXC1raW5kXC1vZlwtc2Fja2Nsb3RoOwor56uRID4gYmVcLXZhc3RcLWFuZFwtZW5kbGVzczsKK+emkyA+IHRvXC1kcml2ZVwtb3V0XC1kZW1vbnM7CivnpZAgPiBkaXZpbmVcLWludGVydmVudGlvbjsKK+egnCA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+eflCA+IGJyaWxsaWFudFwtXChvZlwtZXllc1wpOwor556VID4gY2F0YXJhY3RcLWluXC10aGVcLWV5ZTsKK+arnyA+IGNoZXN0bnV0XC1sZWF2ZWRcLW9hazsKK+aqqiA+IGNoZXN0bnV0XC1sZWF2ZWRcLW9hazsKK+ahqiA+IG15dGhpY2FsXC1naWFudFwtdHJlZTsKK+afriA+IGZsYXRcLXBpZWNlc1wtb2ZcLXdvb2Q7CivmmrUgPiBkcnlcLWJ5XC1leHBvc2luZ1wtc3VuOwor5padID4gc21hbGxcLWphZGVcLXdpbmVcLWN1cDsKK+aVhCA+IHRvXC1wdXRcLWZvcnRoXC1lZmZvcnQ7Civmko0gPiB0b1wtaG9sZFwtaW5cLXRoZVwtaGFuZDsKK+aPnSA+IHRvXC1ob2xkXC1pblwtdGhlXC1oYW5kOwor5o+VID4gcm9sbFwtdXBcLXRoZVwtc2xlZXZlczsKK+WwlyA+IHlvdW5nZXJcLW9mXC1icm90aGVyczsKK+WjkCA+IHRoZVwtaW1wZXJpYWxcLXNpZ25ldDsKK+WelSA+IHVzZWRcLWluXC1wbGFjZVwtbmFtZXM7CivlnJsgPiB1c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor5ZuIID4gdGFsa1wtaW5cLW9uZScnc1wtc2xlZXA7CivlmLAgPiBzaWdoXC1pblwtZGlzYXBwcm92YWw7Civllp4gPiBjaGlycGluZ1wtb2ZcLWluc2VjdHM7CivllJogPiB2b21pdGluZ1wtb2ZcLWFuaW1hbHM7Civlk4wgPiB1c2VkXC1pblwtdHJhbnNsYXRpb247CivlkbogPiB2b2ljZVwtb2ZcLWFuZ2VyXC12YXN0Owor5ZCWID4gdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor5YGYID4gYW5jaWVudFwtZmFtaWx5XC1uYW1lOwor5LavID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivktpIgPiBvdXRzdGFuZGluZ1wtYWJpbGl0eTsKK+S2jCA+IGFcLXB1c3R1bGVcLW9yXC1waW1wbGU7CivktoQgPiBzdHJpcGVkXC1tb3R0bGVkXC1yYXQ7CivktbEgPiByZWRcLWFuZFwtYmxhY2tcLWNvbG9yOwor5LWuID4gcmVkXC1hbmRcLWJsYWNrXC1jb2xvcjsKK+S1lCA+IHRvXC10dXJuXC1vblwtdGhlXC1oZWVsOwor5LSqID4gYVwtZmFidWxvdXNcLWNyZWF0dXJlOwor5LSgID4gYVwteW91bmdcLXRhaWxlZFwtZGVlcjsKK+SxpyA+IGFcLWtpbmRcLW9mXC1maXNoXC1lZWxzOwor5LCcID4gYVwtbGFyZ2VcLWVhcnRoZW5cLXBvdDsKK+SwmyA+IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3Q7CivkrrcgPiBtb3ZlbWVudFwtb2ZcLWFcLWhvcnNlOwor5K6DID4gdG9cLWdvXC1iZWZvcmVcLW90aGVyczsKK+StuSA+IG1vdmVtZW50XC1vZlwtYVwtaG9yc2U7Civkq7EgPiBhXC1wYXJ0XC1vZlwtdGhlXC1za3VsbDsKK+SrqSA+IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor5KuFID4gdG9cLXNoYWtlXC1vbmUnJ3NcLWhlYWQ7Civkqr8gPiB0aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SqvSA+IGhvYXJ5XC1oYWlyZWRcLXBlcnNvbjsKK+SptyA+IHRoZVwtc2lkZXNcLW9mXC1hXC1zaG9lOwor5KmnID4gdG9cLXRpZVwtdXBcLWh1cnJpZWRseTsKK+SpjCA+IHRvXC1oYXZlXC1hXC13b3JuXC1sb29rOwor5KeUID4gdG9cLW1lZXRcLWF0XC10aGVcLWJhbms7CivkppkgPiBhXC1nb3Zlcm5tZW50XC1hZ2VuY3k7CivkpbQgPiB0b1wtZW5ncmF2ZVwtb3JcLWNhcnZlOwor5KWnID4gYVwtZmluZVwta2luZFwtb2ZcLWphZGU7CivkpIYgPiBhXC1raW5kXC1vZlwtcmljZVwtd2luZTsKK+SkgSA+IGNvb2tlZFwtb3JcLXdlbGxcLWRvbmU7Civko60gPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7CivkoosgPiBhXC1tYXJzaGFsXC1vclwtaGVyYWxkOwor5KCKID4gdG9cLWN1dFwtb2ZmXC10aGVcLWZlZXQ7Civkn6MgPiBhblwtYW5pbWFsXC1pblwtbGVnZW5kOwor5J6zID4gdG9cLXN0dW1ibGVcLWFuZFwtZmFsbDsKK+SdoCA+IGFcLWtpbmRcLW9mXC13aWxkXC1ib2FyOwor5Jy2ID4gYVwtc21hbGxcLWtpZG5leVwtYmVhbjsKK+ScgSA+IHRvXC1hYnVzZVwtYW5kXC1pbnN1bHQ7CivkmZIgPiB0b1wtc3RvcmVcLW9yXC1zYXZlXC11cDsKK+SZjyA+IHNob3J0XC1zbGVldmVzXC1zaGlydDsKK+SZgSA+IGNoaWxkcmVuJydzXC1nYXJtZW50czsKK+SYqiA+IGNsb3RoZXNcLXdpdGhvdXRcLWhlbTsKK+SWoiA+IGZpcnN0XC1ib3JuXC1zaWxrd29ybTsKK+SWliA+IHRvXC1zaG93XC1mYW1pbGlhcml0eTsKK+SVviA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7CivklZ8gPiBhXC1raW5kXC1vZlwtdmVnZXRhYmxlOwor5JWYID4gYVwtdmFyaWV0eVwtb2ZcLWZ1bmd1czsKK+SVgyA+IHRoZVwtc2hhZGVcLW9mXC1hXC10cmVlOwor5JSXID4gYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+STtyA+IG55bXBob2lkZXNcLXBlbHRhbHVtOwor5JOaID4gYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+STjSA+IGNydWNpZmVyb3VzXC1mbG93ZXJzOwor5JKoID4gYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+SSiCA+IHNpZGVcLWJlYW1cLW9mXC1hXC1ib2F0Owor5JKAID4gc2hvcnRcLWFuZFwtZGVlcFwtYm9hdDsKK+SRhyA+IG1lZGljaW5lXC1mb3JcLWFcLXNvcmU7CivkkK0gPiBhXC1kaXNjaGFyZ2VcLW9yXC1mbHV4Owor5I+5ID4gdG9cLXdhdGNoXC1zdGVhbHRoaWx5Owor5I+3ID4gbWVkaWNpbmVcLWZvclwtYVwtc29yZTsKK+SPqCA+IHRvXC1zd2VsbFwtdXBcLWdyZWF0bHk7Civkj4YgPiBidXp6aW5nXC1pblwtdGhlXC1lYXJzOwor5I6/ID4gYnV6emluZ1wtaW5cLXRoZVwtZWFyczsKK+SNtyA+IHRvXC1jaGFzZVwtZWFjaFwtb3RoZXI7CivkjYAgPiBjbG90aGVzXC13aXRob3V0XC1oZW07CivkjI4gPiB0b1wtYmFzdGVcLWZvclwtc2V3aW5nOwor5Iu5ID4gYnJlYWR0aFwtb2ZcLW1hdGVyaWFsOwor5IuwID4gdG9cLWJpbmRcLW9yXC1yZXN0cmFpbjsKK+SKmSA+IGNvb2tlZFwtb3JcLXdlbGxcLWRvbmU7Civkh70gPiBhXC1jb2Fyc2VcLWJhbWJvb1wtbWF0Owor5IavID4gYVwtc2hvcnRcLXNoYXBlZFwtZmFjZTsKK+SFryA+IGFcLXZhcmlldHlcLW9mXC1taWxsZXQ7CivkhZ8gPiB2YXJpZXRpZXNcLW9mXC1taWxsZXQ7CivkhZUgPiBhXC12YXJpZXR5XC1vZlwtbWlsbGV0Owor5IWSID4gYVwtc2hhcnBcLWVkZ2VkXC1ncmFzczsKK+SBiyA+IHdpdGhcLW9uZVwtZXllXC1jbG9zZWQ7CivkgYMgPiB0b1wtbG9va1wtYXR0ZW50aXZlbHk7CivkgKQgPiBpbnNpZ2h0XC1vZlwtamVhbG91c3k7CivkgKMgPiB0b1wtbG9va1wtc3RlYWRpbHlcLWF0Owor47+TID4gZGlzZWFzZVwtb2ZcLXRoZVwtaG9vZjsKK+O+uyA+IG5vdFwtYW55XC1wcm9ncmVzc2l2ZTsKK+O+tiA+IGRpc2Vhc2VcLW9mXC10aGVcLWtuZWU7CivjvqIgPiBhXC1tYWxpZ25hbnRcLWRpc2Vhc2U7Civjva0gPiB2YWNhbnRcLWxvdFwtb3JcLXNwYWNlOwor472MID4gdGhlXC1yaWRnZVwtb2ZcLWFcLXJvb2Y7CivjvYIgPiBhXC1jcmFja2VkXC1jb250YWluZXI7CivjvYEgPiBhXC1sYXJnZVwtZWFydGhlblwtcG90Owor47yZID4gYnJpY2t3b3JrXC1vZlwtYVwtd2VsbDsKK+O8kiA+IGFcLWtpbmRcLW9mXC1iaWdcLW1lbG9uOwor47i2ID4gY29sb3JcLW9mXC10aGVcLW94dGFpbDsKK+O4tSA+IHRoZVwtbG93aW5nXC1vZlwtYW5cLW94Owor47ilID4gaG91c2Vob2xkXC1yZWdpc3RlcnM7CivjuKIgPiBjcm9zc1wtYmVhbVwtb2ZcLWFcLWJlZDsKK+O4niA+IGJsb2Nrc1wtZm9yXC1wcmludGluZzsKK+O4kyA+IHRvXC1oYXZlXC1kaXNhcHBlYXJlZDsKK+O4jyA+IGNvb2tlZFwtb3JcLXdlbGxcLWRvbmU7CivjuIAgPiBibGFja2VuZWRcLXdpdGhcLXNvb3Q7Civjt6QgPiByb3N5XC1jbG91ZHNcLW9mXC1kYXduOwor47KHID4gdGhlXC1yYXR0bGVcLW9mXC1kcnVtczsKK+OxviA+IGFcLWtpbmRcLW9mXC1vcm5hbWVudHM7CivjsbwgPiBhXC1raW5kXC1vZlwtb3JuYW1lbnRzOwor47G5ID4gdG9cLWRpZVwtZnJvbVwtZGlzZWFzZTsKK+OxqyA+IGRlc3Ryb3llZFwtb3JcLXJ1aW5lZDsKK+OxqiA+IHN0dXBpZFwtYW5kXC1jb25mdXNlZDsKK+OxiiA+IGFzdGhtYXRpY1wtYnJlYXRoaW5nOwor47GJID4gbW92aW5nXC1vZlwtdGhlXC1tb3V0aDsKK+OwtCA+IHRvXC1ncmF0ZVwtb25cLXRoZVwtZWFyOwor47CwID4gYXN0aG1hdGljXC1icmVhdGhpbmc7CivjsK8gPiB0aGVcLXdheVwtb2ZcLXNwZWFraW5nOwor46+BID4gaG91c2Vob2xkXC1yZWdpc3RlcnM7Civjq68gPiBpblwtY29udHJhdmVudGlvblwtb2Y7CivjqaYgPiB0b1wtbGVhZFwtYnlcLXRoZVwtaGFuZDsKK+OpmCA+IHRvXC1tb29yXC10b1wtdGhlXC1iYW5rOwor46mXID4gdG9cLWxlYWRcLWJ5XC10aGVcLWhhbmQ7CivjqJ0gPiB0aGVcLXZlcnlcLWhhcmRcLXN0dWZmOwor46iAID4gdG9cLWhvbGRcLWluXC10aGVcLWhhbmQ7Civvp54gPiBnb3Zlcm5tZW50XC1vZmZpY2lhbDsKK+OnhSA+IHRvXC10dXJuXC11cHNpZGVcLWRvd247Civvpq8gPiBzcGVjaWVzXC1vZlwtYW50ZWxvcGU7CivjppMgPiBkaWZmaWN1bHRcLWludGVudGlvbjsKK+OlnSA+IHRvXC1hcm91c2VcLXRvXC1hY3Rpb247CivjooogPiB0b1wtc2V0XC1zaWRlXC1ieVwtc2lkZTsKK+OigiA+IG9mXC1oaWdobHlcLXN0cmF0ZWdpYzsKK+OfsSA+IHNoYXBlXC1vZlwtYVwtbW91bnRhaW47Civjn5MgPiBsb2Z0eVwtYW5kXC1kYW5nZXJvdXM7Civjn5IgPiBtb3VudGFpbnNcLWFkam9pbmluZzsKK+OdnyA+IGluXC1jb250cmF2ZW50aW9uXC1vZjsKK+OcsSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45ymID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnKEgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcoCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yZID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnJAgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcjSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yLID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnIIgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObuCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45u3ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm7UgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObrSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45usID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm6sgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObniA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45udID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm5wgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObmSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uYID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm5YgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObkyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uPID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm4UgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObhCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45q9ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmrggPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OatSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45qxID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjmq0gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OaqyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45qoID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmKsgPiB0b1wtZmFsbFwtaW50b1wtYVwtd2VsbDsKK+OXtiA+IHRvXC1leHBlbFwtdGhlXC1icmVhdGg7CivjlqogPiBzb3VuZFwtb2ZcLXN1cnByaXNpbmc7CivjlLkgPiBhXC1zdXJwbHVzXC1vclwtZXhjZXNzOwor45SHID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2w7Civjk70gPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbDsKK+OTtyA+IHRvXC1jdXRcLW9mZlwtdGhlXC1ub3NlOwor45KUID4gdG9cLXNoYWtlXC1vbmUnJ3NcLWhlYWQ7CivjkoQgPiBicml0dGxlXC1hbmRcLWZyaWFibGU7CivjkoMgPiBjYXBpdGFsXC1mb3JtXC1vZlwtdHdvOwor45GbID4gdG9cLXNoYWtlXC1vbmUnJ3NcLWhlYWQ7CivnjpYgPiBibGFja1wtY29sb3JlZFwtamFkZTsKK+WTqiA+IHdoaWNoXD9cLXdoZXJlXD9cLWhvd1w/Owor54myID4gc2FjcmlmaWNpYWxcLWFuaW1hbDsKK+a8oiA+IHRoZVwtY2hpbmVzZVwtcGVvcGxlOwor5ryVID4gdHJhbnNwb3J0XC1ieVwtd2F0ZXI7CivpmLQgPiAnJ2ZlbWFsZScnXC1wcmluY2lwbGU7Civku5kgPiB0YW9pc3RcLXN1cGVyXC1iZWluZzsKK+mpuyA+IHRvXC1iZVwtc3RhdGlvbmVkXC1hdDsKK+mnkCA+IHRvXC1iZVwtc3RhdGlvbmVkXC1hdDsKK+iFriA+IGxvd2VyXC1wYXJ0XC1vZlwtZmFjZTsKK+aLkiA+IHdhcmRcLW9mZlwtd2l0aFwtaGFuZDsKK+ahgiA+IGNhc3NpYVwtb3JcLWNpbm5hbW9uOwor5py1ID4gY2x1c3Rlclwtb2ZcLWZsb3dlcnM7Civmm7kgPiBtaW5pc3RyeVwtb2ZmaWNpYWxzOwor572OID4gYW5cLWVhcnRoZW53YXJlXC1qYXI7CivpmbAgPiAnJ2ZlbWFsZScnXC1wcmluY2lwbGU7CivkuLggPiBzbWFsbFwtcm91bmRcLW9iamVjdDsKK+efqSA+IGNhcnBlbnRlcicnc1wtc3F1YXJlOwor6IWKID4geWVhclwtZW5kXC1zYWNyaWZpY2U7Civpvp8gPiB0dXJ0bGVcLW9yXC10b3J0b2lzZTsKK+mCuCA+IG9mZmljaWFsXC1yZXNpZGVuY2U7CivkvoMgPiB1cHJpZ2h0XC1hbmRcLXN0cm9uZzsKK+mCgiA+IHVuZXhwZWN0ZWRcLW1lZXRpbmc7CivmgK8gPiBsYWNraW5nXC1pblwtY291cmFnZTsKK+eUuCA+IHN1YnVyYnNcLW9mXC1jYXBpdGFsOwor5o2eID4gc2Nvb3BcLW91dFwtb2ZcLXdhdGVyOwor5ombID4gY2FycnlcLW9uXC1zaG91bGRlcnM7CivomZQgPiBhY3RcLXdpdGhcLXJldmVyZW5jZTsKK+mcliA+IGxvbmdcLXNwZWxsXC1vZlwtcmFpbjsKK+mfpyA+IHN0cm9uZ1wtYW5kXC1wbGlhYmxlOwor55G+ID4gYnJpbGxpYW5jZVwtb2ZcLWdlbXM7CivmoZQgPiBjaGluZXNlXC1iZWxsZmxvd2VyOwor6bizID4gbWFsZVwtbWFuZGFyaW5cLWR1Y2s7CivpkpcgPiBvcm5hbWVudGFsXC1oYWlycGluOwor5beFID4gc3VtbWl0XC1vZlwtbW91bnRhaW47CivmqKggPiBvc21hbnRodXNcLWZyYWdyYW5zOwor6KChID4gd29vZFwtYm9yaW5nXC1pbnNlY3Q7CivouYIgPiB0cmFtcGxlXC11bmRlclwtZm9vdDsKK+mqpSA+IHRob3JvdWdoYnJlZFwtaG9yc2U7CivllIEgPiBleHByZXNzXC1jb25kb2xlbmNlOwor6aqFID4gYW5cLWV4Y2VsbGVudFwtaG9yc2U7CivnookgPiByb29tXC1tYWRlXC1vZlwtc3RvbmU7Civnlp8gPiBpbnRlcm1pdHRlbnRcLWZldmVyOwor57qjID4gbmFtZVwtb2ZcLWFuXC1lbXBlcm9yOwor56OsID4gbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+eIvyA+IGhhbGZcLW9mXC10cmVlXC10cnVuazsKK+aXjiA+IGZsdXR0ZXJpbmdcLW9mXC1mbGFnOwor5aSUID4gb25lXC1sZWdnZWRcLW1vbnN0ZXI7Civmro0gPiB0b1wtc3RhcnZlXC10b1wtZGVhdGg7CivpqoogPiBhXC1wdXJlXC1ibGFja1wtaG9yc2U7CivmuY4gPiBmbHVzaGVkXC13aXRoXC1kcmluazsKK+WWtSA+IHRoZVwtbWV3XC1vZlwtdGhlXC1jYXQ7CivnhJkgPiBkcnlcLW92ZXJcLXNsb3dcLWZpcmU7Civnu74gPiB0b1wtc3RyaW5nXC10b2dldGhlcjsKK+ecpiA+IGNvcm5lclwtb2ZcLXRoZVwtZXllczsKK+eRgSA+IGZpbmVcLXBpZWNlXC1vZlwtamFkZTsKK+ammCA+IGNhcnBlbnRlcicnc1wtc3F1YXJlOwor57KzID4gbm9uXC1nbHV0aW5vdXNcLXJpY2U7CivppK4gPiBhXC1sZWdlbmRhcnlcLWFuaW1hbDsKK+axiiA+IGFcLWJyYW5jaGluZ1wtc3RyZWFtOwor57yDID4gbGlnaHRcLXllbGxvd1wtY29sb3I7CivmqqkgPiB0aGVcLWJvbGVcLW9mXC1hXC10cmVlOwor5aWBID4gbGFkeScnc1wtdmFuaXR5XC1jYXNlOwor5qW4ID4gbWFsbG90dXNcLWphcG9uaWN1czsKK+mquiA+IHRpcFwtb2ZcLWFcLWxvbmdcLWJvbmU7Civol78gPiBsb3BoYW50aHVzXC1ydWdvc3VzOwor5qi+ID4gdGhlXC1zaGFkZVwtb2ZcLXRyZWVzOwor6YWkID4gdG9cLWRlYWxcLWluXC1zcGlyaXRzOwor6IeMID4gZHJvcHNpY2FsXC1zd2VsbGluZzsKK+i3qyA+IHNvdW5kXC1vZlwtZm9vdHN0ZXBzOwor57auID4gZW1icm9pZGVyZWRcLWJhbm5lcjsKK+insyA+IGFuXC1hbmNpZW50XC1tZWFzdXJlOwor5p2MID4gdGhlXC1zdHVtcFwtZlwtYVwtdHJlZTsKK+W1qyA+IGFcLWhpbGxcLWluXC1zaGFudHVuZzsKK+aTlyA+IHRvXC1iZWF0XC10aGVcLWJyZWFzdDsKK+iElCA+IHNtYWxsXC1sdW1wXC1vZlwtbWVhdDsKK+mGhSA+IHVuc3RyYWluZWRcLXNwaXJpdHM7CivnvrAgPiBjYXJib255bFwtXChyYWRpY2FsXCk7Civom7ggPiBsb25nXC1sZWdnZWRcLXNwaWRlcjsKK+eegCA+IHRvXC1sb29rXC1hdFwtY2xvc2VseTsKK+ausyA+IG5hbWVcLW9mXC1vbGRcLXdlYXBvbjsKK+W0niA+IG1vdW50YWluXC1pblwtc2hhbnhpOwor5Z6yID4gaGlnaFwtYW5kXC1kcnlcLXBsYWNlOwor6Jm/ID4gYVwta2luZFwtb2ZcLXNjb3JwaW9uOwor55azID4gY2hpbGRob29kXC1kaXNlYXNlczsKK+e9viA+IGFcLWxhcmdlXC1zcXVhcmVcLW5ldDsKK+eNrCA+IGFcLWZhYnVsb3VzXC1tb25zdGVyOwor6b6cID4gdHVydGxlXC1vclwtdG9ydG9pc2U7CivpvpYgPiBmbGlnaHRcLW9mXC1hXC1kcmFnb247CivpuJwgPiBhXC1zcGVjaWVzXC1vZlwtbXluYWg7Civpt70gPiBvcmllbnRhbFwtYnVsbGZpbmNoOwor6bSbID4gbWFsZVwtbWFuZGFyaW5cLWR1Y2s7CivptJcgPiBhbGNlZG9cLWJlbmdhbGVuc2lzOwor6bG1ID4gaHlwb3JoYW1wdXNcLXNhanVyaTsKK+msoCA+IHRvXC1tYWtlXC1hXC10b3BcLWtub3Q7CivpqaogPiBhXC1wdXJlXC1ibGFja1wtaG9yc2U7CivpqaUgPiB0aG9yb3VnaGJyZWRcLWhvcnNlOwor6amKID4gYW5cLWV4Y2VsbGVudFwtaG9yc2U7CivppLwgPiBzYWNyaWZpY2lhbFwtdmljdGltOwor6aGLID4gbG93ZXJcLXBhcnRcLW9mXC1mYWNlOwor6aCUID4gZ29vZFwtYW5kXC1iZWF1dGlmdWw7Civpn4wgPiBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+mdsSA+IHN0cm9uZ1wtYW5kXC1wbGlhYmxlOwor6Z2tID4gc3Ryb25nXC1hbmRcLXBsaWFibGU7CivpnasgPiBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+mHtSA+IG9ybmFtZW50YWxcLWhhaXJwaW47Civph5IgPiBrYW5neGlcLXJhZGljYWxcLTE2NzsKK+mEriA+IGFuY2llbnRcLXBsYWNlXC1uYW1lOwor6L2ZID4gcmluZ3NcLW9uXC10aGVcLXlva2VzOwor6LuwID4gYVwtcm93XC1vZlwtY2FycmlhZ2VzOwor6LC9ID4gYVwtbW91dGhcLW9yXC1vcGVuaW5nOwor6KiBID4ga2FuZ3hpXC1yYWRpY2FsXC0xNDk7CivopbUgPiBhXC1wbGVhdFwtaW5cLWFcLXNraXJ0Owor6KSwID4gbGlmdFwtdXBcLXRoZVwtc2tpcnRzOwor6KCGID4gYVwta2luZFwtb2ZcLXNjb3JwaW9uOwor6Jq5ID4gZXVsb3RhXC1wZWxpb21waGFsYTsKK+iYtyA+IG9uZVwtbGVnZ2VkXC1tb25zdGVyOwor6Ja3ID4gZWxzaG90cmlhXC1wYWx0cmluaTsKK+iVuiA+IGhvdXR0dXluaWFcLWNvcmRhdGE7Civok7QgPiBlZGlibGVcLXdhdGVyXC1wbGFudDsKK+iRtCA+IHBoeXNhbGlzXC1hbGtla2VuZ2k7CivojYUgPiBhbnN3ZXJcOlwtc21hbGxcLWJlYW47CivojJYgPiBhbGxpdW1cLXZpY3RvcmlhbGlzOwor6IqjID4gbWVkaWNpbmFsXC1wbGFudGFnbzsKK+iHoCA+IHNtYWxsXC1sdW1wXC1vZlwtbWVhdDsKK+iHmCA+IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor6IeIID4geWVhclwtZW5kXC1zYWNyaWZpY2U7Civnv68gPiBnbGlzdGVuaW5nXC1wbHVtYWdlOwor57+WID4ga3NjXC1leHRlbnNpb25cLTMxMDg7CivnvqcgPiBjYXJib3h5bFwtXChyYWRpY2FsXCk7CivnvYggPiBhblwtZWFydGhlbndhcmVcLWphcjsKK+e3lyA+IGxpZ2h0XC15ZWxsb3dcLWNvbG9yOwor57awID4gdG9cLXN0cmluZ1wtdG9nZXRoZXI7CivntIIgPiBuYW1lXC1vZlwtYW5cLWVtcGVyb3I7Civns5IgPiBmb29kXC1mb3JcLWFcLWpvdXJuZXk7CivnqIkgPiBub25cLWdsdXRpbm91c1wtcmljZTsKK+enlCA+IG5vblwtZ2x1dGlub3VzXC1yaWNlOwor56KeID4gcm9vbVwtbWFkZVwtb2ZcLXN0b25lOwor55qqID4gbHVzdGVyXC1cKG9mXC1wZWFybHNcKTsKK+eYpyA+IGludGVybWl0dGVudFwtZmV2ZXI7Civnl5wgPiBhXC1zY2FiYnlcLWJhbGRcLWhlYWQ7CivnlL8gPiBmYXJtaW5nXC1wb3B1bGF0aW9uOwor55SLID4gYVwtamFyXC13aXRob3V0XC1lYXJzOwor55CkID4gamFkZVwtb2ZcLWphZGVcLWJlaW5nOwor546YID4gY291cnRcLWRyZXNzXC1qZXdlbHM7CivnjbMgPiBmaWVyY2VcLWRvZ1wtbG9va2luZzsKK+eFjSA+IHRvXC1jb2xvdXJcLWJ5XC1zbW9rZTsKK+eBpSA+IGFcLWdyb3VwXC1vZlwtc3ByaW5nczsKK+azsiA+IGtpbmRcLW9mXC13aGl0ZVwtd2luZTsKK+awjSA+IGZpbmVcLXdvb2xsZW5cLWNsb3RoOwor5qqBID4gdGhlXC1ib2xlXC1vZlwtYVwtdHJlZTsKK+afuiA+IGFuXC1vbGRcLW1hbicnc1wtc3RhZmY7CivmnbsgPiBsaWd1c3RydW1cLXNpbmVuZXNlOwor5p2ZID4gYVwtdGlueVwtd29vZGVuXC1wb3N0Owor5py2ID4gY2x1c3Rlclwtb2ZcLWZsb3dlcnM7CivmmLcgPiB0b1wtZmVlZFwtYVwtcHJpc29uZXI7Civml7wgPiBnZW50bGVcLWFuZFwtYWZmYWJsZTsKK+aTrSA+IHRyYXBcLWNhdGNoXC1hbmltYWxzOwor5pKIID4gc2Nvb3BcLW91dFwtb2ZcLXdhdGVyOwor5b2EID4gbm9ja1wtYXRcLWVuZFwtb2ZcLWJvdzsKK+W3lCA+IHN1bW1pdFwtb2ZcLW1vdW50YWluOwor5beTID4gc3VtbWl0XC1vZlwtbW91bnRhaW47CivltqggPiBiaWdcLXJvY2t5XC1tb3VudGFpbjsKK+W1liA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+WzuSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+WzsSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+WyoiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+WyjSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+WlqSA+IGxhZHknJ3NcLXZhbml0eVwtY2FzZTsKK+WjnCA+IGVhcnRoZW5cLWphclwtb3JcLWp1ZzsKK+WisCA+IGFuXC1lYXJ0aGVud2FyZVwtamFyOwor5aKQID4gdG9cLWJ1aWxkXC13aXRoXC1zb2lsOwor5aGPID4gaGlnaFwtYW5kXC1kcnlcLXBsYWNlOwor5ZmLID4gdG9cLXN3YWxsb3dcLWhhc3RpbHk7Civlk7AgPiBpbmNvaGVyZW50XC1jaGF0dGVyOwor5YOKID4gdGFvaXN0XC1zdXBlclwtYmVpbmc7CivkvbcgPiB0b1wtYWN0XC1jb250cmFyeVwtdG87CivkuoAgPiB0dXJ0bGVcLW9yXC10b3J0b2lzZTsKK+S5kSA+IHN0YW5kXC1zaWRlXC1ieVwtc2lkZTsKK+S4rCA+IGhhbGZcLW9mXC10cmVlXC10cnVuazsKK+S2oyA+IHRvXC1ncmluZFwtdGhlXC10ZWV0aDsKK+S2nyA+IHRvXC1nbmFzaFwtdGhlXC10ZWV0aDsKK+S1lSA+IGFcLXZhcmlldHlvZlwtbWlsbGV0Owor5LSxID4gY2FrZXNcLWFuZFwtYmlzY3VpdHM7CivktKYgPiBhXC1sZWdlbmRhcnlcLWFuaW1hbDsKK+SzqCA+IHRoZVwtZmVtYWxlXC1waG9lbml4Owor5LOUID4gYVwtcGlnZW9uXC1saWtlXC1iaXJkOwor5LOOID4gYVwtcGlnZW9uXC1saWtlXC1iaXJkOwor5LGzID4gYVwta2luZFwtb2ZcLXN0dXJnZW9uOwor5LGjID4gYVwtbG9uZ1wtbmFycm93XC1maXNoOwor5LCqID4gbWlzY2hpZXZvdXNcLXNwaXJpdDsKK+SwqCA+IG1pc2NoaWV2b3VzXC1zcGlyaXQ7Civkr7EgPiB0aGVcLWhhaXJcLXN0YW5kc1wtdXA7Civkr48gPiB0aGVcLXNob3VsZGVyXC1ibGFkZTsKK+SviyA+IHRoZVwtc2hvdWxkZXJcLWJsYWRlOwor5K6lID4gY29sb3JcLW9mXC10aGVcLWhvcnNlOwor5K6dID4gYVwtbGVnZW5kYXJ5XC1hbmltYWw7CivkrbAgPiBzdHJvbmdcLXN3ZWV0XC1zbWVsbDsKK+StryA+IHN0cm9uZ1wtc3dlZXRcLXNtZWxsOwor5K2LID4gdG9cLWVhdFwtdG9cLXRoZVwtZnVsbDsKK+StgyA+IHRvXC1lYXRcLXRvXC10aGVcLWZvb2w7CivkrL4gPiBjYWtlc1wtYW5kXC1iaXNjdWl0czsKK+SstCA+IGZvZGRlclwtZm9yXC1hbmltYWxzOwor5KysID4gdG9cLWVhdFwtdG9cLXRoZVwtZnVsbDsKK+SsqCA+IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkrKcgPiByb3VuZFwtc2hhcGVkXC1jYWtlczsKK+SrkCA+IHRvXC1iZW5kXC1vbmUnJ3NcLWhlYWQ7CivkqowgPiBjdXNoaW9uXC1mb3JcLXNhZGRsZTsKK+SohiA+IGFcLWtpbmRcLW9mXC1waGVhc2FudDsKK+SnvCA+IHRoZVwtdGhlXC1zbm93XC1nb29zZTsKK+SnpiA+IG5hbWVcLW9mXC1hXC1oaWxsc2lkZTsKK+SnhyA+IG5hbWVcLW9mXC1hXC1oaWxsc2lkZTsKK+SmriA+IGRvb3JcLW9mXC10aGVcLWNlbnRlcjsKK+SmkiA+IHRoZVwtZG9vclwtaXNcLWNsb3NlZDsKK+SmkCA+IHRoZVwtYm9sdFwtb2ZcLWFcLWRvb3I7CivkpbMgPiBhXC1jaGVtaWNhbFwtZWxlbWVudDsKK+SlsiA+IGFcLWNoZW1pY2FsXC1lbGVtZW50Owor5KWeID4gdG9cLWN1dFwtd2l0aFwtc2hlYXJzOwor5KWdID4gZGVzcGVyYXRlXC1maWdodGluZzsKK+SkhCA+IGZsdXNoZWRcLXdpdGhcLWRyaW5rOwor5KO6ID4gZmlsdHJhdGVkXC10aGVcLXdpbmU7Civko4AgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivkoaAgPiBzdHJvbmdcLWFuZFwtZHVyYWJsZTsKK+ShmyA+IG5hbWVcLW9mXC1hXC1jYXJyaWFnZTsKK+SgpyA+IGhhcmRcLXRvXC1nb1wtZm9yd2FyZDsKK+SgoSA+IHNvdW5kXC1vZlwtZm9vdHN0ZXBzOwor5J+dID4gdG9cLXdhbGtcLXJpZ2h0XC1pbnRvOwor5J2eID4gbmFtZVwtb2ZcLWFcLWltbW9ydGFsOwor5JuJID4gdG9cLWluZHVjZVwtYnlcLXdvcmRzOwor5JqnID4gY3VydmVkXC13aXRoXC1hbmdsZXM7CivkmYMgPiBzbGVldmVsZXNzXC1jbG90aGVzOwor5JiNID4gYVwta2luZFwtb2ZcLXNjb3JwaW9uOwor5Je7ID4gYVwta2luZFwtb2ZcLXNlYVwtY3JhYjsKK+SXqCA+IGxlcHNpbWFcLXNhY2NoYXJpbmE7Civkl6MgPiBpbnNlY3RcLW9mXC1tdWxiZXJyeTsKK+SXjSA+IHdvb2RcLWJvcmluZ1wtaW5zZWN0Owor5JanID4gYVwtcG9pc29ub3VzXC1pbnNlY3Q7CivklpMgPiBvZlwtYVwtd2Fsa2luZ1wtdGlnZXI7CivklaogPiB0aGVcLXdhdGVyXC1wbGFudGFpbjsKK+SUvCA+IHNvdW5kXC1vZlwtdGhlXC1ncmFzczsKK+SUgyA+IGNvcmRhdGVcLWhvdXR0dXluaWE7Civkk6sgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civkk6ggPiBsb25nXC1uZWNrZWRcLWJvdHRsZTsKK+SToCA+IHRoZVwtd2F0ZXJcLXBsYW50YWluOwor5JOWID4gY25pZGl1bVwtb2ZmaWNpbmFsZTsKK+STgyA+IG1lbGFuY2hvbHlcLWFuZFwtc2FkOwor5JKdID4gcm9vdFwtb2ZcLXRoZVwtdGhhdGNoOwor5JGZID4gcHV0XC1vdXRcLXRoZVwtdG9uZ3VlOwor5JGGID4gZmVlbFwtbGlrZVwtdm9taXRpbmc7CivkkJQgPiBtdXNjbGVcLW9mXC10aGVcLWNhbGY7Civkjr4gPiBiaWdcLWFuZFwtcm91bmRcLWV5ZXM7CivkjrQgPiBhXC1sZWdlbmRhcnlcLXNwaXJpdDsKK+SOqiA+IHRoZVwtc3RhbGtcLW9mXC1ncmFpbjsKK+SOlCA+IGZpbmVcLWFuZFwtc29mdFwtaGFpcjsKK+SOjyA+IHlvdW5nXC1iaXJkc1wtZmx5aW5nOwor5I6NID4gZmluZVwtYW5kXC1zb2Z0XC1oYWlyOwor5I2pID4gdG9cLW9mZmVyXC1wcm92aXNpb247CivkjaMgPiBhXC1raW5kXC1vZlwtZmlzaFwtbmV0Owor5IyNID4gZmluZVwtd292ZW5cLXBhdHRlcm47CivkjIkgPiB0aGVcLWxhcmdlXC1vZlwtYVwtbmV0Owor5IuXID4gc3Ryb25nXC1hbmRcLWR1cmFibGU7Civki4ggPiB0b1wtYmluZFwtbG9vc2VcLWhlbXA7CivkiawgPiBjb2Fyc2VcLWJhbWJvb1wtbWF0czsKK+SIriA+IGFcLXdvdmVuXC1pbnN0cnVtZW50Owor5IezID4gYVwtbWVtb3JhZHVtXC10YWJsZXQ7CivkhqogPiBjb2xvclwtb2ZcLXRoZVwtbGlnaHQ7CivkhqUgPiB0b1wtcGllcmNlXC10aHJvdWdoajsKK+SGpCA+IHRvXC1waWVyY2VcLXRocm91Z2hqOwor5IaRID4gYVwtbGl0dGxlXC1wcm90cnVkZWQ7Civkhb0gPiBmcmFncmFuY2VcLW9yXC1hcm9tYTsKK+SFsSA+IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkhacgPiBmaW5lXC1yaWNlXC1zZWVkbGluZzsKK+SFnSA+IHRoZVwtc3RhbGtcLW9mXC1ncmFpbjsKK+SFnCA+IHRvXC1zdG9yZVwtdXBcLWdyYWluczsKK+SFgCA+IHRoZVwtc3RhbGtcLW9mXC1ncmFpbjsKK+SEmiA+IHRvXC13b3JzaGlwXC10aGVcLWdvZDsKK+SDvSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+SDnCA+IGFcLWZpbmVcLWJsYWNrXC1zdG9uZTsKK+SBiiA+IGRhcmtcLWFuZFwtZGVlcFwtZXllZDsKK+SAniA+IHdpdGhcLWhlYXZ5XC1leWVsaWRzOwor5ICXID4gdG9cLWxvb2tcLWFza2FuY2VcLWF0Owor47+MID4gbHVtcFwtaW5cLXRoZVwtdGhyb2F0Owor47yjID4gYnJpY2tzXC1vZlwtdGhlXC13ZWxsOwor47yHID4gZmluZVwtamFkZVwtb3JcLWFnYXRlOwor47uXID4gYVwtc3RyaW5nXC1vZlwtcGVhcmxzOwor47uKID4gYVwtcmVkXC1jb2xvcmVkXC1qYWRlOwor47uFID4gamFkZVwtZGVjb3JhdGVkXC1jYXA7CivjuqcgPiBhXC13aGl0ZVwteWVsbG93XC1kb2c7CivjuaQgPiBsYWNraW5nXC1pblwtY291cmFnZTsKK+O4vSA+IGFcLXR3b1wteWVhcnNcLW9sZFwtb3g7CivjuKwgPiBhXC10d29cLXllYXJzXC1vbGRcLW94Owor47iIID4gc2NvcmNoZWRcLW9yXC1idXJuZWQ7Civjt7MgPiBjb2xvclwtb2ZcLXRoZVwtZmxhbWU7Civjt6IgPiBidW5kbGVcLW9mXC1jaGFyY29hbDsKK+O3oCA+IGFcLXdpbGxcLW8nJ1wtdGhlXC13aXNwOwor47a2ID4gc2NvcmNoZWRcLW9yXC1idXJuZWQ7CivjtZMgPiB0aGVcLXdhdGVyXC1pc1wtY2xlYXI7CivjtL4gPiBzd2VsbGluZ1wtb3JcLXJpc2luZzsKK+OzgiA+IHRvXC1mb2xsb3dcLWFcLWNvdXJzZTsKK+OyoSA+IHRoaWNrXC1jb2F0XC1vZlwtaGFpcjsKK+OylyA+IHRvXC1zbW9vdGhcLXRoZVwtaGFpcjsKK+OvtiA+IHRoZVwtY29pclwtcGFsbVwtdHJlZTsKK+OvsiA+IGFcLXdvb2RlblwtZnJhbWV3b3JrOwor46+bID4gZ291cmRcLXNoYXBlZFwtZGF0ZXM7CivjrrsgPiB0b1wtc2NyYXRjaFwtbGlnaHRseTsKK+OujSA+IGFtZW1vcmFuZHVtXC10YWJsZXQ7CivjraggPiB0aGVcLWNvY29hXC1udXRcLXBhbG07CivjraEgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjrZ0gPiBuYW1lXC1vZlwtYVwtcGF2aWxpb247CivjrLQgPiB0aGVcLW1vb25cLWlzXC1kaW1tZWQ7CivjrJIgPiB0aGVcLXN1blwtYXJlXC1kaW1tZWQ7CivjrI4gPiBtb3Rlc1wtaW5cLWFcLXN1bmJlYW07Civjq6YgPiBvZlwtbG9va1wtb2ZcLXRoZVwtc3VuOwor46ueID4gb2ZcLWxvb2tcLW9mXC10aGVcLXN1bjsKK+OquCA+IHRvXC1maWxsXC1hXC1jdXBcLXdpdGg7CivjqYMgPiB0b1wtdGFrZVwtb3JcLWNhcHR1cmU7CivjqL0gPiB0b1wtY3V0XC1vclwtcmlwXC1vcGVuOwor46ihID4gdG9cLXB1c2hcLXdpdGhcLWhhbmRzOwor46icID4gdG9cLWhlbHBcLWVhY2hcLW90aGVyOwor76eIID4gbGlndXN0cnVtXC1zaW5lbmVzZTsKK+OngCA+IHRoZVwtYm9sdFwtb2ZcLWFcLWRvb3I7Civjpr4gPiB0aGVcLWJvbHRcLW9mXC1hXC1kb29yOwor76aHID4gYVwtcHVyZVwtYmxhY2tcLWhvcnNlOwor46W4ID4gdG9cLXN5bXBhdGhpemVcLXdpdGg7CivjpaggPiB1bmhhcHB5XC1kaXNwbGVhc2VkOwor46SqID4gdG9cLWZpbmRcLWZhdWx0XC13aXRoOwor76SmID4geWVhclwtZW5kXC1zYWNyaWZpY2U7CivvpIggPiB0dXJ0bGVcLW9yXC10b3J0b2lzZTsKK++khyA+IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor46OMID4gdG9cLWpvaW5cLXR3b1wtdGhpbmdzOwor46GvID4gd2FsbFwtb2ZcLWFcLWJ1aWxkaW5nOwor46CmID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor46CgID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor46CTID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor46CPID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor46CGID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+zID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+wID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+qID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+mID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+YID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+NID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+KID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+IID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+GID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+EID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45+AID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor4567ID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor4560ID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor456zID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor456yID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor456wID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor456oID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor456mID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45izID4gYVwtaGlsbG9ja1wtb3JcLW1vdW5kOwor45ixID4gdG9cLWZhbGxcLWludG9cLXJ1aW5zOwor45icID4gYVwta2luZFwtb2ZcLXNpbGt3b3JtOwor45aFID4gc291bmRcLW9mXC1hXC13aGlzdGxlOwor45aDID4gdG9cLXJvYXJcLW9mXC1hbmltYWxzOwor45SiID4gdG9cLWJyZWFrXC1zb21ldGhpbmc7Civnmr8gPiBzaGFsbG93XC1jb250YWluZXI7CivlsZMgPiBnaWdhbnRpY1wtc3RyZW5ndGg7CivmtL4gPiBzY2hvb2xcLW9mXC10aG91Z2h0Owor5aeTID4gb25lJydzXC1mYW1pbHlcLW5hbWU7CivnhY4gPiBmcnlcLWluXC1mYXRcLW9yXC1vaWw7CivopYEgPiBzd2FkZGxpbmdcLWNsb3RoZXM7Civlk4ggPiBzb3VuZFwtb2ZcLWxhdWdodGVyOwor6biaID4gc3BlY2llc1wtb2ZcLXBhcnJvdDsKK+aspyA+IHRyYW5zbGl0XC5cOlwtZXVyb3BlOwor6bWhID4gc3BlY2llc1wtb2ZcLXBhcnJvdDsKK+iuoiA+IGRyYXdcLXVwXC1hZ3JlZW1lbnQ7CivlgY8gPiBpbmNsaW5lZFwtb25lXC1zaWRlOwor5q2UID4gYmxvd1wtdGhyb3VnaFwtbm9zZTsKK+WfuSA+IGJhbmtcLXVwXC13aXRoXC1kaXJ0Owor5ryrID4gb3ZlcmZsb3dcLW9mXC13YXRlcjsKK+S+oCA+IGNoaXZhbHJvdXNcLXBlcnNvbjsKK+WnhiA+IGNoaWxkJydzXC1nb3Zlcm5lc3M7Civnm5IgPiBzbWFsbFwtYm94XC1vclwtY2FzZTsKK+WEkiA+IGNvbmZ1Y2lhblwtc2Nob2xhcjsKK+mYqiA+IGhpbGxzaWRlXC1mYXJtbGFuZDsKK+i/iCA+IHRha2VcLWFcLWJpZ1wtc3RyaWRlOwor5o2PID4gcGlja1wtd2l0aFwtZmluZ2VyczsKK+a1mSA+IHpoZWppYW5nXC1wcm92aW5jZTsKK+etpyA+IGJhbWJvb1wtd2F0ZXJcLXBpcGU7CivoiZggPiBjb3VudGVyXC1mb3JcLXNoaXBzOwor6LaBID4gdGFrZVwtYWR2YW50YWdlXC1vZjsKK+mJoiA+IGVhcnRoZW53YXJlXC1iYXNpbjsKK+iTrCA+IHR5cGVcLW9mXC1yYXNwYmVycnk7CivovpYgPiBsaW5jaHBpblwtb2ZcLXdoZWVsOwor6YCFID4gbWVldFwtdW5leHBlY3RlZGx5Owor5ZiOID4gc291bmRcLW9mXC1sYXVnaHRlcjsKK+mFoyA+IGVuam95XC1pbnRveGljYW50czsKK+mluiA+IHN0dWZmZWRcLWR1bXBsaW5nczsKK+WSjyA+IHNpbmdcLXNvbmdcLW9yXC1wb2VtOwor6ZK1ID4gZWFydGhlbndhcmVcLWJhc2luOwor5pCAID4gZ2l2ZVwtaGVscGluZ1wtaGFuZDsKK+aNtiA+IHN0cmlrZVwtd2l0aFwtc3RpY2s7CivliKggPiBjYXJwZW50ZXInJ3NcLXBsYW5lOwor6KCVID4gZXVtZW5lc1wtcG9saWZvbWlzOwor6aWoID4gc3R1ZmZlZFwtZHVtcGxpbmdzOwor5bSGID4ga29uZ3RvbmdcLW1vdW50YWluOwor55uFID4gc21hbGxcLWN1cFwtb3JcLWJvd2w7CivmooYgPiB3YXRjaG1hbicnc1wtcmF0dGxlOwor5bWHID4gbW91bnRhaW5cLWluXC1oZW5hbjsKK+iAtyA+IGVhcnNcLWhhbmdpbmdcLWRvd247CivnvowgPiBxaWFuZ1wtbmF0aW9uYWxpdHk7Civoi54gPiBhXC12YXJpZXR5XC1vZlwtcnVzaDsKK+m5piA+IHNwZWNpZXNcLW9mXC1wYXJyb3Q7Civol5wgPiBjaGVub3BvZGl1bVwtYWxidW07CivoiYQgPiBzdGVyblwtb2ZcLWFcLXZlc3NlbDsKK+m5iSA+IHNwZWNpZXNcLW9mXC1wYXJyb3Q7Civls4EgPiB5ZWxsb3dcLWRpcnRcLW1vdW50Owor6ZWUID4gaGlnaFwtcXVhbGl0eVwtaXJvbjsKK+myqyA+IGNhcmFzc2l1c1wtYXVyYXR1czsKK+m+hyA+IHRvXC1zaG93XC10aGVcLXRlZXRoOwor5rKtID4gcml2ZXJcLWluXC1zaGFudHVuZzsKK+amqyA+IG1vcnRpc2VcLWFuZFwtdGVub247CivokIsgPiBsdXh1cmlhbnRcLWZvbGlhZ2U7Civphq4gPiByZWxpZ2lvdXNcLXNlcnZpY2U7CivniZ0gPiBmZW1hbGVcLW9mXC1zcGVjaWVzOwor5pu3ID4gd2h5XD9cLXdoYXRcP1wtd2hlcmVcPzsKK+eRtyA+IGZpbmVcLXF1YWxpdHlcLWphZGU7CivogKYgPiBwbG93XC1zaWRlXC1ieVwtc2lkZTsKK+m4tiA+IHRoZVwtZWFzdGVyblwtZWdyZXQ7Civnr6YgPiBmaW5lXC10b290aGVkXC1jb21iOwor5aaBID4gYWN0XC1hc1wtZ29cLWJldHdlZW47CivojaUgPiBhXC1jb3VudHlcLWluXC1oZW5hbjsKK+aIvSA+IHRvXC1iYWxlXC1vdXRcLXdhdGVyOwor5p6zID4gdHJpZm9saWF0ZVwtb3JhbmdlOwor5qSQID4gemVsa293YVwtYWN1bWluYXRhOwor5bSkID4gbW91bnRhaW5cLWluXC1oZW5hbjsKK+mtiSA+IGFcLWtpbmRcLW9mXC1tb25zdGVyOwor6aKeID4gdGhlXC10ZW1wb3JhbFwtYm9uZTsKK+mUtCA+IGhpZ2hcLXF1YWxpdHlcLWlyb247CivnrJUgPiBiYW1ib29cLXdhdGVyXC1waXBlOwor6ICpID4gdG9cLXBsb3VnaFwuXC10b1wtc293Owor5buoID4gZ292ZXJubWVudFwtb2ZmaWNlOwor6J+uID4gdHlwZVwtb2ZcLWVhcnRod29ybTsKK+ibsSA+IGtpbmRcLW9mXC1idXR0ZXJmbHk7CivnprMgPiBwcmF5XC1vclwtc2FjcmlmaWNlOwor556iID4gZXllc2lnaHRcLW9ic2N1cmVkOwor6JS4ID4gY291bnRlclwtZm9yXC1wbGFudDsKK+iehSA+IFwoaW50ZXN0aW5hbFwtd29ybVwpOwor56WnID4gYW5cLWFuY2VzdHJhbFwtaGFsbDsKK+afnSA+IHdhdGNobWFuJydzXC1yYXR0bGU7CivooIMgPiB0aGVcLXNvbGl0YXJ5XC13YXNwOwor6Jy+ID4gdGhlXC1zb2xpdGFyeVwtd2FzcDsKK+iBgyA+IGVhcnNcLXdpdGhvdXRcLXJpbXM7CivogJwgPiBzcGFkZVwtc2hhcGVkXC10b29sOwor5oWdID4gZG9cLWV2aWxcLWluXC1zZWNyZXQ7CivlurMgPiBhXC1sb3dcLWJ1aWx0XC1ob3VzZTsKK+m8oiA+IGFcLXZhcmlldHlcLW9mXC1tb2xlOwor6Jq6ID4gYVwtYm9hXC1jb25zdHJpY3RvcjsKK+mipSA+IHRoZVwtdGVtcG9yYWxcLWJvbmU7CivnoYcgPiBhXC1raW5kXC1vZlwtbWluZXJhbDsKK+ehrSA+IGFcLWNydWRlXC1zYWx0cGV0cmU7Civog6ggPiBhXC1raW5kXC1vZlwtcHJvdGVpbjsKK+m9nCA+IHRvXC1zaG93XC10aGVcLXRlZXRoOwor6b2EID4gcmVkXC1zb3Jlc1wtb25cLW5vc2U7Civpu58gPiBibGFja1wtYW5kXC1zaGluaW5nOwor6bmBID4gc3BlY2llc1wtb2ZcLXBpZ2VvbjsKK+m1tSA+IHNjb3BzXC1zZW1pdG9ycXVlczsKK+m1kyA+IHNwZWNpZXNcLW9mXC1waWdlb247Civpr70gPiBjYXJhc3NpdXNcLWF1cmF0dXM7CivprrggPiBzY2lhZW5hXC1hbGJpZmxvcmE7CivprasgPiB0aGVcLXlvdW5nXC1vZlwtZmlzaDsKK+mtjiA+IGFcLWtpbmRcLW9mXC1tb25zdGVyOwor6au9ID4gdG9cLWRyZXNzXC10aGVcLWhhaXI7CivppakgPiBzYWNyZmljaWFsXC12aWN0aW07CivppIMgPiBzdHVmZmVkXC1kdW1wbGluZ3M7CivppIIgPiB0b1wtb2J0YWluXC1ieVwtaG9vazsKK+mjqSA+IHN0dWZmZWRcLWR1bXBsaW5nczsKK+mhsyA+IHRoZVwtdGVtcG9yYWxcLWJvbmU7CivpoawgPiB0aGVcLXRlbXBvcmFsXC1ib25lOwor6Z64ID4gbGVhdGhlclwtYXJtXC1ndWFyZDsKK+mesiA+IGxlYXRoZXJcLWFybVwtZ3VhcmQ7Civpnb8gPiB0aGVcLWxlZ1wtb2ZcLWFcLWJvb3Q7CivpmrggPiBiZVwtc3Vic2VydmllbnRcLXRvOwor6Zq3ID4gYmVcLXN1YnNlcnZpZW50XC10bzsKK+mWqiA+IHRvXC1sb3NlXC1sb3N0XC1pdGVtOwor6ZGkID4gY2FycGVudGVyJydzXC1wbGFuZTsKK+mRjCA+IGhpZ2hcLXF1YWxpdHlcLWlyb247CivpjYcgPiBoaWdoXC1xdWFsaXR5XC1pcm9uOwor6YqgID4gcmhvZGl1bVwtcnV0aGVuaXVtOwor6YmVID4gcHJvbWV0aGl1bVwtYnJvbnplOwor6YmLID4gY2FycGVudGVyJydzXC1wbGFuZTsKK+mIsyA+IGNvbHVtYml1bVwtbmlvYml1bTsKK+mGrSA+IG1vdWxkc1wtb25cLWxpcXVpZHM7CivphpEgPiB0b1wtc3RyYWluXC1zcGlyaXRzOwor6YW6ID4gZHJpbmtcLXdpdGhcLW90aGVyczsKK+mCgSA+IHRha2VcLWFcLWJpZ1wtc3RyaWRlOwor6L2EID4gbGluY2hwaW5cLW9mXC13aGVlbDsKK+iyjSA+IGFcLWZveFwtbGlrZVwtYW5pbWFsOwor6LGLID4gY2VyZW1vbmlhbFwtdmVzc2VsOwor6KiCID4gZHJhd1wtdXBcLWFncmVlbWVudDsKK+imvCA+IGV4cGxhaW5cLWluXC1kZXRhaWw7CivoppkgPiBleHBsYWluXC1pblwtZGV0YWlsOwor6J2hID4gZXVtZW5lc1wtcG9saWZvbWlzOwor6JyUID4gaW5sYWlkXC1zaGVsbFwtd29yazsKK+ibuiA+IGtpbmRcLW9mXC1idXR0ZXJmbHk7CivomqYgPiBhXC1ib2FcLWNvbnN0cmljdG9yOwor6Ji1ID4gcGh5c2FsaXNcLWFuZ3VsYXRhOwor6JeoID4ga2luZFwtb2ZcLXJhc3BiZXJyeTsKK+iVuCA+IHdhdGVyXC1saWx5JydzXC1sZWFmOwor6JWRID4gdmFsZXJpYW5hXC12aWxsb3NhOwor6JGOID4gaHVtdWx1c1wtamFwb25pY3VzOwor6I+jID4gYXJ0ZW1pc2lhXC1hcGlhY2VhOwor6I6bID4gc3RhbGtzXC1vZlwtZ3Jhc3NlczsKK+iMjSA+IHRvXC1iZVwtY2lyY3Vtc3BlY3Q7CivnvZsgPiBsYXJnZVwtZmlzaGluZ1wtbmV0Owor57y9ID4gZWFydGhlbndhcmVcLWJhc2luOwor57iwID4gYmFuZFwtZm9yXC10aGVcLWhhaXI7Civnto4gPiBzaWxrXC1icmFpZGVkXC1jb3JkOwor57SsID4ga2luZFwtb2ZcLXRoaW5cLXNpbGs7CivnsbggPiBwb3dkZXJ5XC1zdWJzdGFuY2U7CivnsZMgPiBiaWdcLXdpbm5vd1wtYmFza2V0Owor56+oID4gY29hcnNlXC1iYW1ib29cLW1hdDsKK+euhiA+IGZpbmVcLXRvb3RoZWRcLWNvbWI7CivnpYogPiByaXZlclwtaW5cLXNoYW5kb25nOwor55i1ID4gYVwtd2FzdGluZ1wtZGlzZWFzZTsKK+eSqyA+IHBlbmRhbnRcLW9ybmFtZW50czsKK+eSpiA+IGZpbmVcLXF1YWxpdHlcLWphZGU7Civnjp4gPiBhblwtaW5mZXJpb3JcLWFnYXRlOwor54aAID4gdGhlXC1ibGF6ZVwtb2ZcLWZpcmU7CivngY4gPiBtb3ZlbWVudFwtb2ZcLXdhdGVyOwor5rmRID4gdG9cLXN0cmFpblwtc3Bpcml0czsKK+a4sCA+IGZvcm1pbmdcLW9yXC1yaXNpbmc7CivmtLYgPiB0aGVcLXJ1c2hcLW9mXC13YXRlcjsKK+acoCA+IGNvbG9yXC1vZlwtdGhlXC1tb29uOwor5pqUID4gbmFtZVwtb2ZcLWFcLWNvdW50cnk7CivmlLAgPiB0b3RhbGx5XC1leGhhdXN0ZWQ7CivmjqsgPiBiZVwtb25cLW5pZ2h0XC13YXRjaDsKK+aNpSA+IHRvXC1iZW5kXC10aGVcLXdyaXN0Owor5oqMID4gdG9cLWJhbGVcLW91dFwtd2F0ZXI7CivmhLAgPiBjbGVhcm5lc3NcLW9mXC1taW5kOwor5byWID4gcGhvbmV0aWNcLWZvclwtJyd0ZScnOwor5bWGID4gbW91bnRhaW5cLWluXC1oZW5hbjsKK+WxrSA+IGdpZ2FudGljXC1zdHJlbmd0aDsKK+WwqCA+IHNoYWdneVwtaGFpcmVkXC1kb2c7CivlpIogPiBrYW5neGlcLXJhZGljYWxcLTM1Owor5Za/ID4gY2hpcnBpbmdcLW9mXC1iaXJkczsKK+WWvCA+IHVzZWRcLXBob25ldGljYWxseTsKK+WWuSA+IGNoZW1pY2FsXC1jb21wb3VuZDsKK+WTtSA+IHRoZVwtY3J5XC1vZlwtYVwtYmlyZDsKK+WTtCA+IGNyeWluZ1wtb2ZcLWluZmFudHM7CivlkKIgPiB2b21pdGluZ1wtb2ZcLWFcLWRvZzsKK+WAiCA+IHRvXC1pbmR1Y2VcLXRvXC1jb21lOwor5L+gID4gY2hpdmFscm91c1wtcGVyc29uOwor5L+IID4gdG9cLWluZm9ybVwtcXVpY2tseTsKK+S7giA+IHN1cnBsdXNcLW9yXC1leGNlc3M7CivkuaogPiBhXC1iZW5kXC1pblwtYVwtcml2ZXI7CivktrAgPiBmZWF0aGVyXC1vcm5hbWVudHM7CivktpYgPiBkaXNlYXNlXC1vZlwtdG9uZ3VlOwor5LWcID4gdG9cLXBsb3VnaFwtYW5kXC1zb3c7CivktIogPiB0aGVcLWNyb3dcLXBoZWFzYW50Owor5LOkID4gYVwta2luZFwtb2ZcLXN0cmFuZ2U7Civks5kgPiBhXC1lZ3JldFwtbGlrZVwtYmlyZDsKK+SvpSA+IHdpdGhcLWFcLWhpZ2hcLXNrdWxsOwor5K+iID4gcGFydGlhbFwtcGFyYWx5c2lzOwor5K6rID4gYVwtYmlnXC1tdWxlXC1hblwtYXNzOwor5K6aID4gZGlzZWFzZXNcLW9mXC1ob3JzZTsKK+SukCA+IGluXC1nb29kXC1jb25kaXRpb247CivkrZQgPiBzdGVhbWVkXC1kdW1wbGluZ3M7CivkrLAgPiBsaWdodFwtcmVmcmVzaG1lbnQ7CivkrJUgPiBzb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+SsjSA+IHRoZVwtc291bmRcLW9mXC13aW5kOwor5KyGID4gYVwtYmx1c3RlcmluZ1wtZ2FsZTsKK+SsgyA+IHRoZVwtc291bmRcLW9mXC13aW5kOwor5KyAID4gc291bmRcLW9mXC10aGVcLXdpbmQ7Civkq6YgPiB0aGVcLWxvd2VyXC1qYXdib25lOwor5KufID4gZmFjaWFsXC1jb21wbGV4aW9uOwor5KuNID4gdG9cLWJvd1wtb25lJydzXC1oZWFkOwor5KuJID4gZmFjaWFsXC1hcHBlYXJhbmNlOwor5KiVID4gcG91cmluZ1wtd2l0aFwtcmFpbjsKK+SnuiA+IHRoZVwtbWFsZVwtb2ZcLWJpcmRzOwor5KaqID4gc291bmRcLW9mXC10aGVcLWRvb3I7Civkpp0gPiBzb3VuZFwtb2ZcLXRoZVwtZG9vcjsKK+SmliA+IHNvdW5kXC1vZlwtdGhlXC1kb29yOwor5KaDID4gdG9cLWRpZ1wtd2l0aFwtYVwtaG9lOwor5KO7ID4gY29sb3JcLW9mXC10aGVcLXdpbmU7Civko6ogPiBjb2xvclwtb2ZcLXRoZVwtd2luZTsKK+SinSA+IHRoZVwtbmV4dFwtaW5cLW9yZGVyOwor5KG3ID4gbm9pc2VcLW9mXC12ZWhpY2xlczsKK+ShqiA+IGZhblwtb2ZcLWFcLWNhcnJpYWdlOwor5KGZID4gYW5cLWFybWVkXC1jYXJyaWFnZTsKK+SelSA+IGNvbG9yXC1vZlwtdGhlXC1maXJlOwor5J6CID4gZmFpcmx5XC1wcm9zcGVyb3VzOwor5J26ID4gdG9cLXBpZXJjZVwtdGhyb3VnaDsKK+SduSA+IGZhaXJseVwtcHJvc3Blcm91czsKK+SdsyA+IHRvXC1raWxsXC1mb3JcLW1vbmV5Owor5J2yID4gZmFyZXdlbGxcLXByZXNlbnRzOwor5JyiID4gY3J1ZWxcLWFuZFwtdmlvbGVudDsKK+SaoCA+IHVuYnJva2VuXC1maXJld29vZDsKK+SanSA+IG5ld1wtZ3Jvd2luZ1wtaG9ybnM7CivkmpogPiBob3JuXC1vZlwtYW5cLWFuaW1hbDsKK+SakSA+IHRvXC1zdGVhbFwtYVwtZ2xhbmNlOwor5JqAID4gdG9cLXNlZVwtc3RlYWx0aGlseTsKK+SZtCA+IHRvXC1zb2FyXC1hc1wtYVwtYmlyZDsKK+SZqiA+IGFcLWxvb3BcLWZvclwtYnV0dG9uOwor5JiOID4gbmFtZVwtb2ZcLWFuXC1pbnNlY3Q7Civkl7kgPiBoYWlyeVwtY2F0ZXJwaWxsYXI7Civkl6UgPiB0aGVcLXNvbGl0YXJ5XC13YXNwOwor5JWnID4geml6YW5pYVwtbGF0aWZvbGlhOwor5JWgID4gY29hcnNlXC1iYW1ib29cLW1hdDsKK+SVhiA+IHJvdW5kXC1zdHJhd1wtcXVpbHQ7Civkk5sgPiBtb2xlY3VsYXJcLWZvcm11bGE7Civkkr0gPiBpbGxpY2l1bVwtYW5pc2F0dW07CivkkpAgPiBkaXN0dXJiZWRcLWluXC1taW5kOwor5JKPID4gZGlzdHVyYmVkXC1pblwtbWluZDsKK+SRvCA+IG9jZWFuXC1nb2luZ1wtbGluZXI7CivkkKAgPiBiZXR3ZWVuXC10aGVcLWZsZXNoOwor5JCYID4gdG9cLWxhdWdoXC1oZWFydGlseTsKK+SQliA+IHRvXC1sYXVnaFwtaGVhcnRpbHk7Civkj7AgPiBhXC1raW5kXC1vZlwtaW5zZWN0czsKK+SPmyA+IGFcLWtpbmRcLW9mXC1pbnNlY3RzOwor5I6oID4gdG9cLXBsb3VnaFwtYW5kXC1zb3c7Civkja0gPiBhXC1ld2VcLW9yXC1zaGVcLWdvYXQ7CivkjacgPiBhXC1ld2VcLW9yXC1zaGVcLWdvYXQ7CivkjYcgPiBmbGF0XC1ib3R0b21cLWNyb2NrOwor5IyoID4gdGhpblwtc2lsa1wtZmFicmljczsKK+SLuyA+IHRvXC1zcGluXC1hbmRcLXdlYXZlOwor5Iu6ID4gYVwtc3dpbmdcLWFcLWNydXBwZXI7Civki5ggPiB0b1wtaGFuZFwtYnlcLWFcLXJvcGU7Civkiq8gPiBncmFpbnNcLXdpdGhcLWJlYXJkOwor5IqaID4gc3RlYW1lZFwtZHVtcGxpbmdzOwor5ImMID4gY3J1ZGVcLWJhbWJvb1wtbWF0czsKK+SIoCA+IGJvb2tzXC1hbmRcLXZvbHVtZXM7CivkhpUgPiB0b1wtcGllcmNlXC10aHJvdWdoOwor5IaUID4gdG9cLXBpZXJjZVwtdGhyb3VnaDsKK+SEiSA+IGFcLXJpdGVcLW9yXC1zZXJ2aWNlOwor5IO/ID4gYVwtcml0ZVwtb3JcLXNlcnZpY2U7CivkgqMgPiBhXC1raW5kXC1vZlwtbWluZXJhbDsKK+SBvSA+IGV5ZXNpZ2h0XC1vYnNjdXJlZDsKK+SBuCA+IGV5ZXNpZ2h0XC1vYnNjdXJlZDsKK+SBhCA+IHRvXC1jbG9zZVwtdGhlXC1leWVzOwor5IC5ID4gdG9cLXdpbmtcLWV5ZWxhc2hlczsKK+O/gyA+IGFuXC1veFwtaGVhZGVkXC1ib2lsOwor476xID4gaW5jdXJhYmxlXC1kaXNlYXNlOwor472NID4gYW5cLWVhcnRoZW5cLXZlc3NlbDsKK+O8tCA+IGFuXC1lYXJ0aGVuXC12ZXNzZWw7Civjur8gPiBhXC1qYWRlXC1saWtlXC1zdG9uZTsKK+O2vyA+IHRoZVwtc21va2VcLXdlbnRcLXVwOwor47a0ID4gYVwtdmVyeVwtZ3JlYXRcLWZpcmU7CivjtasgPiB3YXRlclwtZ3VzaGluZ1wtb3V0Owor47WNID4gZmlsbGVkXC13aXRoXC13YXRlcjsKK+O1hCA+IG5hbWVcLW9mXC1hXC1keW5hc3R5Owor47OcID4gdGhlXC1mbG93aW5nXC13YXRlcjsKK+OysiA+IGZpbmVcLWNvdHRvblwtY2xvdGg7CivjspggPiBmaW5lXC13b29sZW5cLWNsb3RoOwor47KLID4gYVwta2luZFwtb2ZcLWFuaW1hbHM7CivjsoMgPiBzbW9vdGhcLWFuZFwtY3VydmVkOwor47CpID4gc291bmRcLW9mXC1sYXVnaHRlcjsKK+OvvyA+IGhhbmRsZVwtb2ZcLWFcLWxhZGxlOwor46+mID4gdGhlXC1nYW1lXC1vZlwtY2hlc3M7CivjrrUgPiBjb21tb25cLXNhbmRhbHdvb2Q7CivjrqggPiBjb2RpdW1cLW1hY3JvbmF0dW07CivjrpogPiB0aGVcLWNoZXN0bnV0XC10cmVlOwor46ybID4gdG9cLWRyeVwtaW5cLXRoZVwtc3VuOwor46muID4gdG9cLWxpZnRcLXVwXC1vclwtb2ZmOwor46mpID4gdG9cLWNvbWVcLXRvXC1hblwtZW5kOwor46mZID4gYVwtY29ya1wtb3JcLXN0b3BwZXI7CivjqKIgPiB0b1wtcmlwXC1vcGVuXC1mbGVzaDsKK++muCA+IGJlXC1zdWJzZXJ2aWVudFwtdG87Civjo6IgPiB0b1wtcmVzdFwtZnJvbVwtd29yazsKK+OjkyA+IGxpdGVyYXJ5XC1pblwtdGFzdGU7Civjo40gPiBhXC1yYWlzZWRcLXBsYXRmb3JtOwor46KuID4gdG9cLXVuc3RyaW5nXC1hXC1ib3c7CivjopEgPiBhXC1jb2xsYXBzZWRcLWhvdXNlOwor46KIID4gYVwtY29sbGFwc2VkXC1ob3VzZTsKK+OihCA+IGFcLWtpbmRcLW9mXC11dGVuc2lsOwor46GfID4gYmVkXC1tYXRzXC1mb3JcLWJhYnk7CivjoLcgPiBhXC12ZXNzZWxcLWZvclwtcmljZTsKK+OgpSA+IHJ1Z2dlZFwtYW5kXC11bmV2ZW47CivjoKIgPiBydWdnZWRcLWFuZFwtdW5ldmVuOwor45+0ID4gbHVtcFwtb25cLXRoZVwtaGlsbHM7Civjn6QgPiB6aHVhbmdcLWluXC1ndWFuZ3hpOwor45+DID4gdG9cLWhhdmVcLWNoYXJnZVwtb2Y7Civjnq0gPiBuYW1lXC1vZlwtYW5cLWlzbGFuZDsKK+OdjCA+IHByb2xvbmdlZFwtaWxsbmVzczsKK+ObtCA+IHRvXC1hbmdlclwtdG9cLWFubm95Owor45qFID4gdG9cLXdvcnNoaXBcLW9mXC1nb2Q7CivjmakgPiBhblwtZW5jbG9zaW5nXC13YWxsOwor45imID4gd2FsbFwtbWFkZVwtb2ZcLXNvaWw7CivjmJogPiBhbmdyeVwtYWlyXC1vZlwtbG9vazsKK+OXvCA+IGVhdGluZ1wtb3JcLXRhbGtpbmc7Civjl6UgPiBzb3VuZFwtb2ZcLXN0cmlraW5nOwor45a4ID4gdG9cLWxhdWdoXC1oZWFydGlseTsKK+OWpyA+IGNhblwtbm90XC1zZWVcLWNsZWFyOwor45SdID4gc3Ryb25nXC1yZXNpc3RhbmNlOwor45O+ID4gdG9cLXdvdW5kXC10aGVcLXNraW47CivjkZ0gPiB0b1wtbWFrZVwtYVwtZm9vbFwtb2Y7CivjkY8gPiB0b1wtc3RhbmRcLWFuZFwtd2FpdDsKK+ORiiA+IGFcLWtpbmRcLW9mXC1kaXNlYXNlOwor45CyID4gbmFtZVwtb2ZcLWFuXC1pc2xhbmQ7CivkuKogPiBudW1lcmFyeVwtYWRqdW5jdDsKK+mHjCA+IHVuaXRcLW9mXC1kaXN0YW5jZTsKK+mYsyA+ICcnbWFsZScnXC1wcmluY2lwbGU7CivoqJ0gPiBleHByZXNzXC1zdXJwcmlzZTsKK+m7jSA+IGdsdXRpbm91c1wtbWlsbGV0Owor5YmnID4gdGhlYXRyaWNhbFwtcGxheXM7CivomIIgPiBzdGFtZW5cLW9yXC1waXN0aWw7CivmjLogPiB0b1wtc3RhbmRcLXVwcmlnaHQ7CivnoYAgPiBmb3VuZGF0aW9uXC1zdG9uZTsKK+WKhyA+IHRoZWF0cmljYWxcLXBsYXlzOwor6IiFID4gbW90aGVyJydzXC1icm90aGVyOwor6JCnID4gY29tbW9uXC1hcnRlbWlzaWE7CivlgIsgPiBudW1lcmFyeVwtYWRqdW5jdDsKK+S/uiA+IHBlcnNvbmFsXC1wcm9ub3VuOwor546yID4gdGlua2xpbmdcLW9mXC1qYWRlOwor6Zm9ID4gJydtYWxlJydcLXByaW5jaXBsZTsKK+euhyA+IG51bWVyYXJ5XC1hZGp1bmN0Owor5o2pID4gdHdpc3RcLXdpdGhcLWhhbmRzOwor6K62ID4gZXhwcmVzc1wtc3VycHJpc2U7Civpu5sgPiBibGFja2VuXC1leWVicm93czsKK+WmhiA+IHRvXC1hZG9yblwtb25lc2VsZjsKK+W5oiA+IGNhcnJpYWdlXC1jdXJ0YWluOwor5qKtID4gd2VhdmVyJydzXC1zaHV0dGxlOwor5ryqID4gcmlwcGxlc1wtb25cLXdhdGVyOwor55y3ID4gdGFrZVwtaW50ZXJlc3RcLWluOwor5YuLID4gbWVyaXRvcmlvdXNcLWRlZWQ7CivnlK0gPiB0aGVyZVwtaXNcLW5vXC1uZWVkOwor56WgID4gYW5jZXN0cmFsXC10ZW1wbGU7CivoiJQgPiBsaWNrXC13aXRoXC10b25ndWU7CivolYogPiB1bm9wZW5lZFwtZmxvd2VyczsKK+i1oyA+IGppYW5neGlcLXByb3ZpbmNlOwor6Le3ID4gcmFpc2VcLW9uZScnc1wtZm9vdDsKK+WJgSA+IGNob3BcLWJ5XC1wb3VuZGluZzsKK+iWsCA+IGFcLW1lZGljaW5hbFwtaGVyYjsKK+WPvCA+IGhvbGRpbmdcLWluXC1tb3V0aDsKK+iNvCA+IGJpdHRlclwtdmVnZXRhYmxlOwor5b6ZID4gbW92ZVwtb25lJydzXC1hYm9kZTsKK+a2lCA+IHJpdmVyXC1pblwtc2hhYW54aTsKK+a9oiA+IGV4cGFuc2VcLW9mXC13YXRlcjsKK+enuCA+IHN0YWxrc1wtb2ZcLW1pbGxldDsKK+iiiCA+IGJ1ZGRoaXN0XC1jYXNzb2NrOwor54+eID4ga2luZFwtb2ZcLW5lY2tsYWNlOwor5ZW+ID4gd2FpbGluZ1wtb2ZcLWNoaWxkOwor5Lq7ID4gcmFkaWNhbFwtbnVtYmVyXC05Owor6IiQID4gbGlja1wtd2l0aFwtdG9uZ3VlOwor5aSZID4gZWFybHlcLWluXC1tb3JuaW5nOwor6bmYID4gYVwta2luZFwtb2ZcLXBpZ2VvbjsKK+WoqSA+IGdpdmVcLWJpcnRoXC1jaGlsZDsKK+WnnSA+IGFcLWJlYXV0aWZ1bFwtZ2lybDsKK+aHkSA+IGJlXC1zaWNrXC1hdFwtaGVhcnQ7CivplIkgPiBjYXJwZW50ZXInJ3NcLWZpbGU7CivmtLEgPiBhXC1sYWtlXC1pblwteXVubmFuOwor6J2IID4gc21hbGxcLWdyZWVuXC1mcm9nOwor5bi8ID4gd29tZW4nJ3NcLWhlYWRnZWFyOwor54uOID4gYmVcLWZhbWlsaWFyXC13aXRoOwor6IOqID4gYXJyYW5nZVwtaW5cLW9yZGVyOwor6LGiID4gZG9tZXN0aWNcLWFuaW1hbHM7CivnnIcgPiBibGluZFwtaW5cLW9uZVwtZXllOwor576/ID4gbGVnZW5kYXJ5XC1hcmNoZXI7CivoiqkgPiBzYWx0XC1tYXJzaFwtcGxhbnQ7CivojK0gPiBhblwtYXF1YXRpY1wtZ3Jhc3M7Civok5YgPiBjYXN0b3JcLW9pbFwtcGxhbnQ7CivlgqcgPiBlbnRlcnRhaW5cLWd1ZXN0czsKK+iWnCA+IGV2ZXJncmVlblwtc2hydWJzOwor6La6ID4gc2l0XC1jcm9zc1wtbGVnZ2VkOwor5qS5ID4gYVwtY2hvcHBpbmdcLWJvYXJkOwor6ZyIID4gdG9ycmVudGlhbFwtcmFpbnM7Civot48gPiBzaXRcLWNyb3NzXC1sZWdnZWQ7Civmm6kgPiBpblwtYW5jaWVudFwtdGltZXM7CivmoIwgPiBzdXBwb3J0aW5nXC1ibG9jazsKK+WTmiA+IGNoZW1pY2FsXC1lbGVtZW50Owor562MID4gYmFtYm9vXC1maXNoXC10cmFwOwor5rWNID4gaXJyaWdhdGlvblwtZGl0Y2g7CivnjIEgPiBhXC1raW5kXC1vZlwtbW9ua2V5Owor5ZW2ID4gXC1kXC1cK1wtaW5lXC1cKGNoZW1cLlwpOwor6ayvID4gc2FjcmlmaWNpYWxcLXdpbmU7CivpsrcgPiBwYWdyb3NvbXVzXC1tYWpvcjsKK+iBsSA+IGJlbnRcLWFuZFwtdHdpc3RlZDsKK+WKoiA+IHB1dFwtZm9ydGhcLWVmZm9ydDsKK+ifqiA+IGFcLWtpbmRcLW9mXC1jaWNhZGE7CivonpcgPiBhXC1raW5kXC1vZlwtY2ljYWRhOwor6LWGID4gZmFyZXdlbGxcLXByZXNlbnQ7Civln68gPiBjb3Zlclwtd2l0aFwtZWFydGg7CivpspQgPiBraW5kXC1vZlwtc3R1cmdlb247CivnvaggPiBtZWRpY2FsXC1jb21wcmVzczsKK+WrnCA+IGh1c2JhbmQnJ3NcLXBhcmVudDsKK+a8pCA+IG1hcmluYXRlXC1pblwtc2FsdDsKK+WahiA+IGdpdmVcLWZvcnRoXC1zb3VuZDsKK+iWuSA+IGN5cGVydXNcLXJvdHVuZHVzOwor6IyGID4gc3BlY2llc1wtb2ZcLWdyYXNzOwor6b2ZID4gcHJvamVjdGluZ1wtdGVldGg7CivpubYgPiBzYWx0eVwtYW5kXC1iaXR0ZXI7CivptrsgPiBhXC1raW5kXC1vZlwtcGlnZW9uOwor6a+bID4gcGFncm9zb211c1wtbWFqb3I7Civpr4YgPiB0aGVcLXNrYXRlXC1vclwtcmF5Owor6a6qID4ga2luZFwtb2ZcLXN0dXJnZW9uOwor6a2sID4gc29sZVwtb3JcLWZsb3VuZGVyOwor6aq0ID4gYVwtcHV0cmlkXC1jYXJjYXNlOwor6aaYID4gY3V0XC1vZmZcLWxlZnRcLWVhcjsKK+mjgCA+IHNvdWdoaW5nXC1vZlwtd2luZDsKK+mfnSA+IGxlYXRoZXJcLWFybVwtYmFuZDsKK+mfiiA+IGFcLWNhc2VcLWZvclwtYVwtYm93Owor6Z62ID4gYmlnXC1sZWF0aGVyXC1iZWx0Owor6ZuXID4gYVwtd2hpdGVcLXBoZWFzYW50Owor6ZqkID4gdG9cLWZhbGxcLWluXC1ydWluczsKK+mXoCA+IGdhdGVcLW9mXC1hXC1tYXJrZXQ7CivpirwgPiBjYXJwZW50ZXInJ3NcLWZpbGU7CivpirsgPiBhbnRpbW9ueVwtc3RpYml1bTsKK+mKpyA+IHBvaW50XC1vZlwtYVwtc3dvcmQ7CivpiYAgPiBwb3Rhc3NpdW1cLWthbGl1bTsKK+i6tyA+IG9mXC1zaG9ydFwtc3RhdHVyZTsKK+i5uiA+IHJhaXNlXC1vbmUnJ3NcLWZvb3Q7CivoubEgPiB0b1wtc3RhZ2dlclwtYWxvbmc7CivouZAgPiB0YWtlXC1zaG9ydFwtc3RlcHM7CivotJsgPiBqaWFuZ3hpXC1wcm92aW5jZTsKK+i0kCA+IGZhcmV3ZWxsXC1wcmVzZW50Owor6LOZID4gZ2l2ZVwtZm9yXC1jaGFyaXR5Owor6LGPID4gaGFsZlwtZ3Jvd25cLWJlYW5zOwor6KqVID4gdG9cLWJlYXJcLWNoaWxkcmVuOwor6KaCID4gdG9cLXRocm93XC1hXC1yaWRlcjsKK+ilsSA+IGxlZ3NcLW9mXC10cm91c2VyczsKK+ijmyA+IHRvXC13cmFwXC1hbmRcLWJpbmQ7CivoopcgPiB1bmxpbmVkXC1nYXJtZW50czsKK+ihjiA+IHRvXC1naXZlXC1wbGVhc3VyZTsKK+ifvyA+IGFjcmlkYVwtY2hpbmVuc2lzOwor6J+IID4gc21hbGxcLWdyZWVuXC1mcm9nOwor6J6LID4gc3BpZGVyXC1taWxsaXBlZGU7CivonbsgPiBpbW1hdHVyZVwtbG9jdXN0czsKK+iZpSA+IHN0cmlwZWRcLXdpbGRcLWNhdDsKK+iXpiA+IGVkaWJsZVwtbXVzaHJvb21zOwor6JeLID4gc2FtYnVjdVwtamF2aW5pY2E7CivolqsgPiBhXC1tZWRpY2luYWxcLWhlcmI7CivoloMgPiBjeXBlcnVzXC1hbXVyaWN1czsKK+iVrSA+IGNvbW1vblwtYXJ0ZW1pc2lhOwor6JWLID4gdW5vcGVuZWRcLWZsb3dlcnM7CivolIcgPiBsdXh1cmlhbnRcLWdyb3d0aDsKK+iRmSA+IGNlbG9zaWFcLWFyZ2VudGVhOwor6I+JID4gdGhlXC1ncmVlblwtYmFtYm9vOwor6IqYID4gbWFsdmFcLXN5bHZlc3RyaXM7CivoioMgPiBsdXh1cmlhbnRcLWdyb3d0aDsKK+iHmiA+IGFycmFuZ2VcLWluXC1vcmRlcjsKK+iAvCA+IGVhcnNcLXdpdGhvdXRcLXJpbTsKK+e2tSA+IHZhcmljb2xvcmVkXC1zaWxrOwor57S9ID4gYVwtc3RyYW5kXC1vZlwtc2lsazsKK+eztSA+IGZlcm1lbnRpbmdcLWdyYWluOwor57OxID4gZmVybWVudGluZ1wtZ3JhaW47Civns4ggPiBzYWNyaWZpY2lhbFwtcmljZTsKK+expyA+IGNydWRlXC1iYW1ib29cLW1hdDsKK+euryA+IGJhbWJvb1wtcGFsYW5xdWluOwor566KID4gYmFtYm9vXC13aXRoXC10aGluOwor56e3ID4gc291bmRcLW9mXC1yZWFwaW5nOwor56SOID4gZm91bmRhdGlvblwtc3RvbmU7Civno6UgPiBhXC1oZWFwXC1vZlwtc3RvbmVzOwor56CrID4gYW5jZXN0cmFsXC10YWJsZXQ7CivnnpggPiBkZWVwbHlcLXN1bmtcLWV5ZXM7CivnnosgPiBnbGFyZVwtd2l0aFwtYW5nZXI7CivnnZwgPiB0b1wtb3BlblwtdGhlXC1leWVzOwor55umID4gbGlkXC1vZlwtYVwtY2FsZHJvbjsKK+eZiSA+IHRvXC1oYXRlXC1iaXR0ZXJseTsKK+eYhSA+IHRvXC1oYXRlXC1iaXR0ZXJseTsKK+eTnyA+IHRoZVwtYm90dGxlXC1nb3VyZDsKK+eMuCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7Civni7sgPiBhXC1mYWJ1bG91c1wtYmVhc3Q7Civng5wgPiBsaWdodFwtb2ZcLXRoZVwtc3VuOwor54GgID4gbWFyaW5hdGVcLWluXC1zYWx0Owor5r6uID4gaXJyaWdhdGlvblwtZGl0Y2g7CivmvqYgPiBwbGFjZVwtaW5cLXNpY2h1YW47CivmvqUgPiBhXC1ibG9ja2VkXC1zdHJlYW07CivmvpQgPiByYWRpYW5jZVwtb2ZcLWdlbXM7CivmuKsgPiBiZWF0aW5nXC1vZlwtb2NlYW47CivmtaQgPiBiZWF0aW5nXC1vZlwtb2NlYW47Civmr64gPiB0b1wtcHVsbFwtb3V0XC1oYWlyOwor5q+qID4gc2VyZ2VcLWZyb21cLXRpYmV0Owor5quoID4gc3VwcG9ydGluZ1wtYmxvY2s7CivmqJsgPiBiZW5kaW5nXC1icmFuY2hlczsKK+aesiA+IG1hbGVcLW5ldHRsZVwtaGVtcDsKK+aekiA+IHRoZVwtY29jb251dFwtdHJlZTsKK+aZhSA+IGxpZ2h0XC1vZlwtdGhlXC1zdW47CivmlrUgPiB0b1wtY3V0XC10b1wtcGllY2VzOwor5paeID4gYVwtc3RhY2tcLW9mXC1ncmFpbjsKK+aSmiA+IHR3aXJsXC1pblwtZmluZ2VyczsKK+aMtyA+IHRvXC1wcm9wZWxcLWFcLWJvYXQ7Civmh6MgPiBiZVwtc2lja1wtYXRcLWhlYXJ0Owor5byzID4gY2lyY3VsYXJcLW1lYXN1cmU7CivlvKogPiBjaXJjdWxhclwtbWVhc3VyZTsKK+W7tSA+IHRvXC1nb1wtb25cLWNpcmN1aXQ7CivluZcgPiB3b21lbicnc1wtaGVhZGdlYXI7CivlrI4gPiB0b1wtYmVhclwtbXVsdGlwbGU7CivlqqQgPiBodXNiYW5kJydzXC1mYW1pbHk7Civlpp0gPiB0b1wtYWRvcm5cLW9uZXNlbGY7CivloqQgPiB0b1wtZmFsbFwtaW5cLXJ1aW5zOwor5ZuNID4gZG91YmxlXC1oYXBwaW5lc3M7CivlmrMgPiBteXRoaWNhbFwtZW1wZXJvcjsKK+WYhSA+IHNvdW5kXC1vZlwtc2lnaGluZzsKK+WXniA+IHRvXC1jb25zdWx0XC1hYm91dDsKK+WXgSA+IGdpdmVcLWZvcnRoXC1zb3VuZDsKK+WWuiA+IHRvXC1iZVwtbG9jYXRlZFwtYXQ7Civli7MgPiBtZXJpdG9yaW91c1wtZGVlZDsKK+WLsiA+IG1lcml0b3Jpb3VzXC1kZWVkOwor5YuxID4gcHV0XC1mb3J0aFwtZWZmb3J0Owor5YubID4gbWVyaXRvcmlvdXNcLWRlZWQ7CivliLQgPiBjaG9wXC1ieVwtcG91bmRpbmc7CivlhpMgPiBhXC1zZWNsdWRlZFwtcGxhY2U7CivlhJAgPiBlbnRlcnRhaW5cLWd1ZXN0czsKK+WEiiA+IHJvdWdoXC1hbmRcLXJ1Z2dlZDsKK+WCnCA+IGFcLW1pbm9yaXR5XC10cmliZTsKK+S2sSA+IGFcLWtpbmRcLW9mXC10dXJ0bGU7CivktaQgPiB0b1wtY3JhY2tcLW9yXC1jaGFwOwor5LWjID4gd2hpdGVcLXdpdGhcLWJsYWNrOwor5LWhID4gdG9cLWNyYWNrXC1vclwtY2hhcDsKK+S1gyA+IGFcLWtpbmRcLW9mXC1iYXJsZXk7CivktKwgPiBjcnVtYnNcLW9mXC1iYXJsZXk7CivktKQgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5LSjID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+S0hSA+IGFcLWxlZ2VuZGFyeVwtYmlyZDsKK+SzoiA+IHNtYWxsXC13aWxkXC1nb29zZTsKK+SznyA+IGFcLWxlZ2VuZGFyeVwtYmlyZDsKK+SzkCA+IGFuXC1vd2xcLWxpa2VcLWJpcmQ7CivksrIgPiBhXC1oYXdrXC1saWtlXC1iaXJkOwor5LKmID4gYVwtbGVnZW5kYXJ5XC1iaXJkOwor5LCDID4gZGlzaGV2ZWxsZWRcLWhhaXI7Civkr7MgPiBsb29zZWx5XC1hcnJhbmdlZDsKK+SvriA+IGRpc2hldmVsbGVkXC1oYWlyOwor5K+HID4gdG9cLWV4ZXJ0XC1vbmVzZWxmOwor5K60ID4gdW5zdGFibGVcLXdhbGtpbmc7CivkrrMgPiB0b1wtZ2l2ZVwtYmlydGhcLXRvOwor5K6pID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+SuoCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivkroEgPiBhXC1wYWlyXC1vZlwtaG9yc2VzOwor5K6AID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+SrjCA+IGJvd2VkXC1vbmUnJ3NcLWhlYWQ7Civkqo4gPiBzdHJpbmdzXC1vZlwtYVwtY2FwOwor5KmlID4gYVwtYmVsdFwtZm9yXC1ob3JzZTsKK+SouyA+IHJvYXJcLW9mXC10aHVuZGVyczsKK+SotCA+IGdhdGhlcmluZ1wtY2xvdWRzOwor5KizID4gdGhlXC1yYWluXC1zdG9wcGVkOwor5KiPID4gc291bmRcLW9mXC1yYWluaW5nOwor5KiKID4gYVwtZmxvY2tcLW9mXC1iaXJkczsKK+SnuCA+IGFcLWtpbmRcLW9mXC1waWdlb247Civkp6EgPiBhXC1mb3J0aWZpZWRcLXdhbGw7Civkp4QgPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor5KaVID4gYmFuZ1wtb2ZcLXRoZVwtZG9vcjsKK+SmgiA+IGNoZW1pY2FsXC1lbGVtZW50Owor5KWbID4gYVwta2luZFwtb2ZcLXNpY2tsZTsKK+SlhyA+IGNoZW1pY2FsXC1lbGVtZW50Owor5KSyID4gY2hlbWljYWxcLWVsZW1lbnQ7CivkpKAgPiBjaGVtaWNhbFwtZWxlbWVudDsKK+SjriA+IHNtZWxsXC1vZlwtYWxjb2hvbDsKK+SjqyA+IHNvdXJlZFwtYmVhblwtY3VyZDsKK+SiniA+IHJvd3NcLWFuZFwtY29sdW1uczsKK+ShriA+IHRyYWNlXC1vZlwtYVwtd2hlZWw7CivkoaIgPiBhXC1zbWFsbFwtY2FycmlhZ2U7CivkoL8gPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor5KC7ID4gdG9cLWJlbmRcLXRoZVwtYm9keTsKK+SfiyA+IHRvXC1wcmVzc1wtZm9yd2FyZDsKK+SeliA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivknowgPiB0b1wtbG9zZVwtaW5cLXRyYWRlOwor5J2jID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+SdmiA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivknYsgPiBhXC1saXR0bGVcLW9mXC1waWdzOwor5J2HID4gZ3J1bnRpbmdcLW9mXC1waWdzOwor5JuPID4gdG9cLWNhbGxcLXNvbWVib2R5Owor5JuOID4gdG9cLXNob3V0XC1pblwtcmFnZTsKK+SbgiA+IHRvXC1zZXBhcmF0ZVwtZnJvbTsKK+SavyA+IHRvXC1zaG91dFwtaW5cLXJhZ2U7CivkmpQgPiB0b1wtbG9va1wtc3VkZGVubHk7CivkmpIgPiBleWVzaWdodFwtYmx1cnJlZDsKK+SajiA+IGV5ZXNpZ2h0XC1ibHVycmVkOwor5JqLID4gZXllc2lnaHRcLWJsdXJyZWQ7CivkmoMgPiB0b1wtcmVhbGl6ZVwtZnVsbHk7Civkma0gPiB0b1wtbGlmdFwtb3JcLXJhaXNlOwor5JiLID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SYgiA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl78gPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5Je8ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXuCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl7EgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JevID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXriA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl6EgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JefID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXmyA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl48gPiBuYW1lXC1vZlwtYVwtaW5zZWN0Owor5JeOID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXhiA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl4QgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JeBID4gYVwta2luZFwtb2ZcLWNpY2FkYTsKK+SWtyA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7CivklrQgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JayID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SWryA+IHBvaXNvbm91c1wtaW5zZWN0Owor5JaQID4gc291bmRcLW9mXC1hXC10aWdlcjsKK+SUtyA+IGN5cGVydXNcLXJvdHVuZHVzOwor5JKjID4gbHVzaFwtb3JcLWRlbGljYXRlOwor5JG4ID4gYVwtZ3JvdXBcLW9mXC1ib2F0czsKK+SRhSA+IGRpenp5XC1hbmRcLXNsZWVweTsKK+SQqCA+IGJhY2tcLW9mXC10aGVcLWZvb3Q7Civkj5IgPiBoYWxmXC1vZlwtdGhlXC1ib2R5Owor5I+PID4gc2lnbnNcLWFuZFwtZ3JvYW5zOwor5I68ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SOryA+IHdpbnRlclwtcGxvdWdoaW5nOwor5I6CID4gY29sb3JmdWxcLWZlYXRoZXI7CivkjL0gPiB2YXJpY29sb3JlZFwtc2lsazsKK+SMgiA+IGluXC1hbmNpZW50XC10aW1lczsKK+SLpCA+IHBsYWluXC13aGl0ZVwtc2lsazsKK+SLlCA+IHRvXC1iYW5kXC10b2dldGhlcjsKK+SKiyA+IHRvXC1hZG9yblwtb25lc2VsZjsKK+SJtyA+IGFcLWZlYXRoZXJcLXNjcmVlbjsKK+SJiSA+IGFcLXdyaXRpbmdcLXRhYmxldDsKK+SImSA+IGJhbWJvb1wtdG9cLXdpdGhlcjsKK+SIiCA+IGFcLWtpbmRcLW9mXC1iYW1ib287CivkiIMgPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5IiCID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SHuyA+IGFcLWtpbmRcLW9mXC1iYW1ib287Civkh7kgPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5Ie3ID4gaW5cLWFuY2llbnRcLXRpbWVzOwor5IemID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SGvyA+IHRvXC10YWxrXC1pblwtc2xlZXA7CivkhrIgPiBhXC1zcGFjaW91c1wtaG91c2U7CivkhoggPiB5b3VuZ1wtYW5kXC10ZW5kZXI7CivkhbwgPiBhXC1raW5kXC1vZlwtZ3JhaW5zOwor5IW6ID4gZ3JhaW5cLWluXC10aGVcLWVhcjsKK+SFiiA+IGFcLXNwYWNpb3VzXC1ob3VzZTsKK+SEuiA+IHlvdW5nXC1hbmRcLXRlbmRlcjsKK+SCqiA+IGhhcmRcLWJhcnJlblwtbGFuZDsKK+SAgyA+IGFcLWtpbmRcLW9mXC12ZXNzZWw7CivjvqYgPiBzY2FiXC1vdmVyXC1hXC1zb3JlOwor476BID4gd2Fsa2luZ1wtbGlrZVwtbWFkOwor472uID4gYVwtcG9pbnRcLW9mXC1saWdodDsKK+O9iiA+IGNyYWNraW5nXC1vZlwtdGlsZTsKK+O7kiA+IHJlZFwtY29sb3JlZFwtamFkZTsKK+O7gSA+IGFcLWtpbmRcLW9mXC1qYXNwZXI7CivjurUgPiBibGFja1wtamFkZVwtc3RvbmU7CivjurQgPiBuYW1lXC1vZlwtYVwtc3Bpcml0Owor47qmID4gYVwtcnVubmluZ1wtYW5pbWFsOwor47qjID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O6oiA+IGFcLWtpbmRcLW9mXC1hbmltYWw7Civjup0gPiBzb3VuZFwtb2ZcLWFcLXRpZ2VyOwor47qYID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5vCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjubogPiBkb2dcLXRvXC10YWtlXC1mb29kOwor47m0ID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5rSA+IGFcLWtpbmRcLW9mXC1tb25rZXk7CivjuawgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47moID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5nyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjuZMgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47mHID4gYVwta2luZFwtb2ZcLWNhdHRsZTsKK+O5hCA+IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuLsgPiBhXC1raW5kXC1vZlwtY2F0dGxlOwor47izID4gYVwta2luZFwtb2ZcLWNhdHRsZTsKK+O4oyA+IGluXC1hbmNpZW50XC1jaGluYTsKK+O2viA+IHRvdWdoXC1hbmRcLWhvbmVzdDsKK+O2jSA+IG5hbWVcLW9mXC1hXC1zdHJlYW07CivjtowgPiBuYW1lXC1vZlwtYVwtc3RyZWFtOwor47WwID4gbmFtZVwtb2ZcLWFcLXN0cmVhbTsKK+O1hiA+IHJhZGlhbmNlXC1vZlwtZ2VtczsKK+O1gyA+IG5hbWVcLW9mXC1hXC1zdHJlYW07CivjtKcgPiBvZlwtZmxvd2luZ1wtd2F0ZXI7Civjs70gPiBhXC13YXRlcnlcLWV4cGFuc2U7CivjsbYgPiBhXC1zd2VsbGVuXC1jb3Jwc2U7Civjsa0gPiBhblwtaW5mZXJ0aWxlXC1lZ2c7CivjsYggPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor47CkID4gdG9cLWxhdWdoXC1oZXJ0aWx5Owor47CbID4gbmFtZVwtb2ZcLWFcLWNvdW50eTsKK+OwhSA+IGVhdmVzXC1vZlwtYVwtaG91c2U7Civjr5UgPiBzdGlja3NcLW9yXC1mcmFtZXM7Civjr4MgPiB0aGVcLXZhcm5pc2hcLXRyZWU7CivjrpMgPiBhblwtZXh0cmVtZVwtbGltaXQ7CivjrbogPiB0aGVcLWNoZXJyeVwtYXBwbGU7Civjqq0gPiB0b1wtZHJhd1wtdG9nZXRoZXI7CivjqpggPiB0b1wtZHJhd1wtdG9nZXRoZXI7CivjqpYgPiBzb3VuZFwtb2ZcLWJlYXRpbmc7CivjqLwgPiB0b1wtdGFrZVwtYnlcLWZvcmNlOwor46e6ID4gYVwtZmluZ2VyXC13cmFwcGVyOwor76epID4gdW5pdFwtb2ZcLWRpc3RhbmNlOwor76atID4gdGlua2xpbmdcLW9mXC1qYWRlOwor46acID4gdG9cLW1vdmVcLXRoZVwtbWluZDsKK++mkSA+IHR3aXJsXC1pblwtZmluZ2VyczsKK+OllCA+IHRvXC1tb3ZlXC10aGVcLW1pbmQ7CivvpL4gPiB0aGVcLWdyZWVuXC1iYW1ib287CivjpLQgPiB0b1wtbW92ZVwtdGhlXC1taW5kOwor46SiID4gdG9cLW1vdmVcLXRoZVwtbWluZDsKK++klyA+IGtpbmRcLW9mXC1uZWNrbGFjZTsKK+OjiCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjorAgPiB0b1wtc3RyZXRjaFwtYVwtYm93Owor46G9ID4gZGVwcmF2ZWRcLXRhbGtpbmc7CivjoYkgPiBhXC1raW5kXC1vZlwtZmFicmljOwor46CnID4gYVwtbGl0dGxlXC1zbGFudGVkOwor46COID4gYVwtbG9mdHlcLW1vdW50YWluOwor452rID4gc2hhcGVcLW9mXC10aGVcLXNreTsKK+OdqiA+IGFcLXNsYW50aW5nXC1ob3VzZTsKK+OdqSA+IHNwYWNpb3VzbHlcLXJvb21zOwor452XID4gc3BhY2lvdXNseVwtcm9vbXM7CivjnLQgPiBkYXJrXC1hbmRcLW9ic2N1cmU7CivjnJ0gPiB0b1wtY2hlcmlzaFwtYW5nZXI7CivjnIggPiBhXC1iZWF1Z2lmdWxcLWZhY2U7Civjmp8gPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor45qcID4gd2l0aFwtZ3JlYXRcLXBvd2VyOwor45qXID4gd2l0aFwtYVwtYmlnXC1tb3V0aDsKK+OahyA+IGRyYXdcLXRoZVwtZmVldFwtdXA7CivjmZ4gPiBhXC1zbWFsbFwtbW91bnRhaW47CivjmY4gPiBicmVhY2hcLW9mXC1hXC10YW5rOwor45mFID4gYVwtd2FsbGVkXC12aWxpYWdlOwor45mAID4gYVwtdmVnZXRhYmxlXC1wbG90Owor45e7ID4gYmFieScnc1wtYW5zd2VyaW5nOwor45eZID4gdG9cLXNob3V0XC1vclwtYmF3bDsKK+OVrSA+IHRvXC1iYXJrXC1hc1wtYVwtZG9nOwor45WpID4gc291bmRcLW9mXC10YXBwaW5nOwor45WHID4gcm9ja3NcLWNvbGxhcHNpbmc7CivjlLUgPiBhXC1raW5kXC1vZlwtdmVzc2VsOwor45SxID4gYVwtc3RhY2tcLW9mXC1ncmFpbjsKK+OUqCA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivjlJogPiB0b1wtZXhlcnRcLW9uZXNlbGY7CivjlJEgPiBhblwtaW5jaXNlZFwtd291bmQ7Civjk7wgPiBhblwtaW5jaXNlZFwtd291bmQ7Civjk7ggPiB0b1wtY3V0XC10b1wtcGllY2VzOwor45KtID4gYW5cLWVsZGVyXC1icm90aGVyOwor45KhID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+OSgSA+IG9mXC1ncmVhdFwtc3RhdHVyZTsKK+ORsSA+IGFcLWtpbmRcLW9mXC1tb25rZXk7CivjkLsgPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor45CAID4gaGlsbG9ja1wtb3JcLW1vdW5kOwor552oID4gbG9va1wtYXNrYW5jZVwtYXQ7CivmgI4gPiB3aGF0XD9cLXdoeVw/XC1ob3dcPzsKK+aUtiA+IGdhdGhlclwtdG9nZXRoZXI7CivlhZogPiBwb2xpdGljYWxcLXBhcnR5Owor54mIID4gcHJpbnRpbmdcLWJsb2NrczsKK+WtoyA+IHF1YXJ0ZXJcLW9mXC15ZWFyOwor54mhID4gbWFsZVwtb2ZcLWFuaW1hbHM7CivoqLogPiBleGFtaW5lXC1wYXRpZW50Owor5aeRID4gZmF0aGVyJydzXC1zaXN0ZXI7CivopJMgPiBzd2FkZGxpbmdcLWNsb3RoOwor6aaGID4gcHVibGljXC1idWlsZGluZzsKK+a8vyA+IGFueVwtdGhpY2tcLWZsdWlkOwor6ZuEID4gbWFsZVwtb2ZcLXNwZWNpZXM7Civkur8gPiBodW5kcmVkXC1taWxsaW9uOwor5Zu6ID4gdG9cLWJlY29tZVwtc29saWQ7Civpu6ggPiBwb2xpdGljYWxcLXBhcnR5Owor5rqqID4gbW91bnRhaW5cLXN0cmVhbTsKK+iZniA+IGNvbmNlcm5lZFwtYWJvdXQ7Civll5ogPiBzb3VuZFwtb2ZcLWNyeWluZzsKK+iWhyA+IG9zbXVuZGFcLXJlZ2FsaXM7CivmiI8gPiB0aGVhdHJpY2FsXC1wbGF5Owor5Y+sID4gaW1wZXJpYWxcLWRlY3JlZTsKK+WPjiA+IGdhdGhlclwtdG9nZXRoZXI7CivnkZ4gPiBmZWxpY2l0b3VzXC1vbWVuOwor6ayiID4gaGFpclwtb25cLXRlbXBsZXM7Civlg6cgPiBidWRkaGlzdFwtcHJpZXN0Owor5qqcID4gY2hpbmVzZVwtY3lwcmVzczsKK+aqjiA+IHNtYWxsXC1yZWRcLWFwcGxlOwor6amFID4gc3B1clwtYVwtaG9yc2VcLW9uOwor6IefID4gaW50ZXJuYWxcLW9yZ2FuczsKK+mniCA+IHNwdXJcLWFcLWhvcnNlXC1vbjsKK+mnhiA+IHNwdXJcLWFcLWhvcnNlXC1vbjsKK+mkqCA+IHB1YmxpY1wtYnVpbGRpbmc7CivlhIQgPiBodW5kcmVkXC1taWxsaW9uOwor5qGnID4gY2hpbmVzZVwtY3lwcmVzczsKK+iEjyA+IGludGVybmFsXC1vcmdhbnM7CivpqbEgPiBzcHVyXC1hXC1ob3JzZVwtb247CivlnLMgPiBmdXJyb3dcLWluXC1maWVsZDsKK+e5uyA+IGZpbmVcLXNpbGtcLWd1YXplOwor5a2fID4gZmlyc3RcLWluXC1zZXJpZXM7CivnuIsgPiBjbGltYlwtZG93blwtcm9wZTsKK+mWpCA+IHNtYWxsXC1zaWRlXC1kb29yOwor5paOID4gdmVnZXRhcmlhblwtZGlldDsKK+ebryA+IHJpdmV0XC1nYXplXC11cG9uOwor57KfID4gdW5odXNrZWRcLW1pbGxldDsKK+exkCA+IGNsaW1iaW5nXC1wbGFudHM7CivmjrsgPiBzY3JhdGNoXC1saWdodGx5Owor5L+YID4gcHJpc29uZXJcLW9mXC13YXI7CivmjL4gPiBjbGFzcFwtdW5kZXJcLWFybTsKK+iviiA+IGV4YW1pbmVcLXBhdGllbnQ7CivlqrMgPiBkYXVnaHRlclwtaW5cLWxhdzsKK+WumSA+IHRpbWVcLWFzXC1jb25jZXB0Owor5ZGcID4gc291bmRcLW9mXC1jcnlpbmc7CivljZwgPiBmb3J0dW5lXC10ZWxsaW5nOwor5oiyID4gdGhlYXRyaWNhbFwtcGxheTsKK+aIryA+IHRoZWF0cmljYWxcLXBsYXk7CivluJYgPiBpbnZpdGF0aW9uXC1jYXJkOwor6YCeID4gaW5kdWxnZVwtb25lc2VsZjsKK+aPqiA+IGdyYXNwXC13aXRoXC1oYW5kOwor5LuRID4gbG9naWNhbFwtcmVhc29uczsKK+a1hiA+IGFueVwtdGhpY2tcLWZsdWlkOwor5oyfID4gY2xhc3BcLXVuZGVyXC1hcm07CivnhZ4gPiBtYWxpZ25hbnRcLWRlaXR5Owor5paLID4gdmVnZXRhcmlhblwtZGlldDsKK+mzjCA+IGh1Z2VcLXNlYVwtdHVydGxlOwor5Y2mID4gZm9ydHVuZVwtdGVsbGluZzsKK+eeqSA+IHdhdGNoXC1jYXJlZnVsbHk7CivnlpogPiBjaHJvbmljXC1kaXNlYXNlOwor6JSTID4gY3JlZXBpbmdcLXBsYW50czsKK+mqjyA+IGV4Y2VsbGVudFwtaG9yc2U7Civpl70gPiBmdWppYW5cLXByb3ZpbmNlOwor6KKFID4gY3VybGluZ1wtdXB3YXJkczsKK+i+kCA+IHNwb2tlc1wtb2ZcLXdoZWVsOwor55CJID4gc3BhcmtsaW5nXC1zdG9uZTsKK+iInCA+IGxlZ2VuZGFyeVwtcnVsZXI7CivovacgPiBjcnVzaFwtYnlcLXdlaWdodDsKK+a7hyA+IHl1bm5hblwtcHJvdmluY2U7CivprJMgPiBoYWlyXC1vblwtdGVtcGxlczsKK+ahkyA+IHZhcmlldHlcLW9mXC10cmVlOwor5qOgID4gY3JhYlwtYXBwbGVcLXRyZWU7CivlkK4gPiBzdWNrXC13aXRoXC1tb3V0aDsKK+ictyA+IGNyZWVwXC1saWtlXC13b3JtOwor5p63ID4gY2FuZ3VlXC1zY2FmZm9sZDsKK+e+siA+IGFuY2llbnRcLWVtcGVyb3I7CivlrZogPiBicm9vZFwtb3ZlclwtZWdnczsKK+mqgSA+IGV4Y2VsbGVudFwtaG9yc2U7CivnmpEgPiBicmlsbGlhbnRcLXdoaXRlOwor57ylID4gbGlnaHRcLWJsdWVcLXNpbGs7Civor4wgPiBwbGF5XC13aXRoXC13b3JkczsKK+azviA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+aBoyA+IGluZHVsZ2VcLW9uZXNlbGY7Civop44gPiBkZXNpcmVcLXN0cm9uZ2x5Owor5466ID4gaW1wZXJpYWxcLXNpZ25ldDsKK+WNniA+IHRvXC1iZVwtaW1wYXRpZW50Owor6L6UID4gYnJpZGxlXC1vZlwtaG9yc2U7CivotpQgPiBub3RcLXByb2dyZXNzaW5nOwor5b6cID4gd2Fsa2luZ1wtYW5kXC1mcm87CivojaAgPiB3YXRlclwtY2hlc3RudXRzOwor5rGeID4gZWxlbWVudFwtbWVyY3VyeTsKK+eVvyA+IGltcGVyaWFsXC1kb21haW47CivoiIIgPiBncmluZFwtaW5cLW1vcnRhcjsKK+extCA+IHB1cmNoYXNlXC1ncmFpbnM7CivnqbAgPiBzdGFsa3NcLW9mXC1ncmFpbjsKK+e8kiA+IGNsaW1iXC1kb3duXC1yb3BlOwor5ZeEID4gaG9hcnNlXC1vZlwtdm9pY2U7CivnnaUgPiBsb29rXC1hc2thbmNlXC1hdDsKK+a4miA+IHNtYWxsXC1zYW5kXC1iYW5rOwor56CdID4gYmFsYW5jZVwtd2VpZ2h0czsKK+advCA+IHNodXR0bGVcLW9mXC1sb29tOwor6b6DID4gaXJyZWd1bGFyXC10ZWV0aDsKK+WLkCA+IGltcGVyaWFsXC1kZWdyZWU7Civnn7ggPiBhXC1yb2NrXC1vclwtY2xpZmY7Civnl7wgPiBjaHJvbmljXC1kaXNlYXNlOwor6JWoID4gcHRlcmlzXC1hcXVpbGluYTsKK+ixiSA+IGZlcm1lbnRlZFwtYmVhbnM7Civlvq0gPiBjb25zY3JpcHRcLWxhYm9yOwor6bqIID4gc3BlY2llc1wtb2ZcLWRlZXI7CivolaQgPiBkcm9vcGluZ1wtbGVhdmVzOwor6bqCID4gc3BlY2llc1wtb2ZcLWRlZXI7Civnu6EgPiByYXdcLXNpbGtcLWZhYnJpYzsKK+iKqCA+IG5hbWVcLW9mXC1hXC1wbGFudDsKK+iLoyA+IGtpbmRcLW9mXC1sZXR0dWNlOwor56KbID4gc2FuZFwtYW5kXC1ncmF2ZWw7CivojpIgPiBoZW1wXC1saWtlXC1wbGFudDsKK+a/iSA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+iQgSA+IGtpbmRcLW9mXC1ncmFzc2VzOwor55yEID4gdG9cLWxvb2tcLWFza2FuY2U7Civlm58gPiB0b3BcLW9mXC10aGVcLWhlYWQ7CivlsqMgPiBhXC1oaWxsXC1pblwtaHVuYW47Civll74gPiB0b1wtc2V0XC1hXC1kb2dcLW9uOwor6I2cID4gc3BlY2llc1wtb2ZcLWJlYW47Civns4EgPiBhXC1ncmFpblwtb2ZcLXJpY2U7Civnsp0gPiB1bnBvbGlzaGVkXC1yaWNlOwor6KOwID4gdG9cLW1lbmRcLWNsb3RoZXM7Civmn7AgPiBjcmFiXC1hcHBsZVwtdHJlZTsKK+iWqCA+IGRlYXRoXC1vZlwtcHJpbmNlOwor6IyRID4gdGhlXC1jb252b3Z1bHZ1czsKK+e/riA+IHN0ZW1cLW9mXC1mZWF0aGVyOwor6ImfID4gYW5jaWVudFwtd2Fyc2hpcDsKK+m8ryA+IGZseWluZ1wtc3F1aXJyZWw7CivnoKkgPiBuYW1lXC1vZlwtYVwtc3RvbmU7CivngrsgPiBhXC1raW5kXC1vZlwtY2hpbmE7CivmqqsgPiBzYXNzYWZyYXNcLXR6dW11Owor54u0ID4gYVwta2luZFwtb2ZcLXRhcGlyOwor6b6RID4gaGlnaFwtYW5kXC1icmlnaHQ7CivpvZ8gPiBpcnJlZ3VsYXJcLXRlZXRoOwor6b2LID4gdmVnZXRhcmlhblwtZGlldDsKK+m8lSA+IHJhdHRsZVwtb2ZcLWRydW1zOwor6byHID4gaHVnZVwtc2VhXC10dXJ0bGU7CivpuJMgPiBmbHlpbmdcLXNxdWlycmVsOwor6bSSID4gc3BlY2llc1wtb2ZcLWxhcms7CivptIIgPiB0aGVcLXRhaWxvclwtYmlyZDsKK+mzuyA+IHRoZVwtd2lsZFwtcGlnZW9uOwor6bOTID4gY2hpbmVzZVwtaGVycmluZzsKK+mxoSA+IHRoZVwtY3V0dGxlXC1maXNoOwor6bGFID4gYVwta2luZFwtb2ZcLXRlbmNoOwor6bCzID4gY2hpbmVzZVwtaGVycmluZzsKK+mwsiA+IGh1Z2VcLXNlYVwtdHVydGxlOwor6a2wID4gdGhlXC1mbHlpbmdcLWZpc2g7Civpq74gPiB0YWlsXC1vZlwtYVwtY29tZXQ7Civpq7QgPiBkaXNoZXZlbGVkXC1oYWlyOwor6am1ID4gZXhjZWxsZW50XC1ob3JzZTsKK+mpjSA+IGV4Y2VsbGVudFwtaG9yc2U7CivpqJggPiBhXC1waWViYWxkXC1ob3JzZTsKK+mnvyA+IGV4Y2VsbGVudFwtaG9yc2U7Civpp5QgPiBleGNlbGxlbnRcLWhvcnNlOwor6aWHID4gdG9cLWVhdFwtdG9vXC1tdWNoOwor6aK7ID4gZmxvYXRpbmdcLWluXC1haXI7Civpoq4gPiBzdG9ybVwtd2hpcmx3aW5kOwor6aGWID4gdG9wXC1vZlwtdGhlXC1oZWFkOwor6Z+eID4gYW5cLW9yYW5nZVwtY29sb3I7CivpnrQgPiBzYWRkbGVcLXVwXC1ob3JzZTsKK+mduCA+IGFcLWNoaWxkJydzXC1zaG9lczsKK+mbsSA+IHNub3dpbmdcLWhlYXZpbHk7CivplqkgPiBmdWppYW5cLXByb3ZpbmNlOwor6Y6kID4gc291bmRcLW9mXC1hXC1iZWxsOwor6Yq+ID4gZWxlbWVudFwtbWVyY3VyeTsKK+mGviA+IHVuZmlsdGVyZWRcLXdpbmU7CivphLkgPiBuYW1lXC1vZlwtYVwtc3RhdGU7CivovaEgPiBicmlkbGVcLW9mXC1ob3JzZTsKK+i8uyA+IHNwb2tlc1wtb2ZcLXdoZWVsOwor6LuLID4gY3J1c2hcLWJ5XC13ZWlnaHQ7CivouoAgPiB0b1wtc3R1bWJsZVwtb3ZlcjsKK+i2riA+IGVhc2lseVwtcHJvdm9rZWQ7CivorIUgPiBwbGF5XC13aXRoXC13b3JkczsKK+iroSA+IHBvc3RodW1vdXNcLW5hbWU7CivoqJIgPiBoZXNpdGF0ZVwtdG9cLXNheTsKK+impiA+IGRlc2lyZVwtc3Ryb25nbHk7CivopbwgPiAnJ2tpbW9ubycnXC1zbGVldmU7CivopYwgPiB1bmxpbmVkXC1nYXJtZW50Owor6KSnID4gdW5saW5lZFwtY2xvdGhlczsKK+iknSA+IHVubGluZWRcLWdhcm1lbnQ7Civoo4ogPiBjdXJsaW5nXC11cHdhcmRzOwor6J6aID4gZXJpc3RhbGlzXC10ZW5heDsKK+iXtiA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+iWuiA+IHdhdGVyXC1jaGVzdG51dHM7CivolaIgPiBlZGlibGVcLWFtYXJhbnRoOwor6JWNID4gYWxpc21hXC1wbGFudGFnczsKK+iUviA+IGtpbmRcLW9mXC1icmFtYmxlOwor6JSmID4gdGhlXC1jb252b3Z1bHZ1czsKK+iTvSA+IHNwZWNpZXNcLW9mXC1iZWFuOwor6JKoID4gbHVzaFwtdmVnZXRhdGlvbjsKK+iSkyA+IGFuXC1lZGlibGVcLXdhdGVyOwor6JKJID4gZWRpYmxlXC1hbWFyYW50aDsKK+iRkSA+IHRoZVwtcmFwZVwtdHVybmlwOwor6JCVID4gd2F0ZXJcLWNoZXN0bnV0czsKK+iLiCA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+iJhSA+IGFcLWRlc3BhdGNoXC1ib2F0Owor6IeTID4gaW50ZXJuYWxcLW9yZ2FuczsKK+iFoiA+IHRoZVwtY29sbGFyXC1ib25lOwor572/ID4gbmV0XC1jYXRjaFwtYmlyZHM7CivnuLkgPiBsaWdodFwtYmx1ZVwtc2lsazsKK+e2gyA+IHJhd1wtc2lsa1wtZmFicmljOwor57WNID4gdG9cLWxheVwtdGhlXC13YXJwOwor57WFID4gdW5saW5lZFwtZ2FybWVudDsKK+eztCA+IHB1cmNoYXNlXC1ncmFpbnM7Civns7IgPiB1bnBvbGlzaGVkXC1yaWNlOwor57GYID4gY2xpbWJpbmdcLXBsYW50czsKK+ewlCA+IGFcLWNvYXRcLXJhaW5jb2F0Owor57CRID4gYVwtY29hdFwtcmFpbmNvYXQ7Civnr7AgPiBhXC1iYW1ib29cLWJhc2tldDsKK+epoyA+IHN0YWxrc1wtb2ZcLWdyYWluOwor56mEID4gcGFuaWNsZWRcLW1pbGxldDsKK+emiyA+IG9mZmVyXC1zYWNyaWZpY2U7Civno6ogPiBhXC1oaWdoXC1tb3VudGFpbjsKK+ejpyA+IHNhbmRcLWFuZFwtZ3JhdmVsOwor56OOID4gbW91bnRhaW5cLXN0cmVhbTsKK+efmiA+IHdhdGNoXC1jYXJlZnVsbHk7CivnmpogPiBicmlsbGlhbnRcLXdoaXRlOwor55iIID4gcHJvbG9uZ2VkXC1mZXZlcjsKK+eYgyA+IHNvcmVzXC1mcm9tXC1jb2xkOwor55e+ID4gY2hyb25pY1wtaWxsbmVzczsKK+eXtSA+IGFcLWhlYXJ0XC1zeW1wdG9tOwor55euID4gYVwtc3dlbGxlZFwtYmVsbHk7Civnl6AgPiBhY2hpbmdcLW9mXC1saW1iczsKK+eXgSA+IGNocm9uaWNcLW1hbGFyaWE7CivnlqIgPiBhY2hpbmdcLW9mXC1saW1iczsKK+eVrCA+IHJlY2xhaW1lZFwtZmllbGQ7CivnlKQgPiBkcm9vcGluZ1wtbGVhdmVzOwor55K9ID4gaW1wZXJpYWxcLXNpZ25ldDsKK+eQrSA+IGphZGVcLWxpa2VcLXN0b25lOwor54+nID4gbW90aGVyXC1vZlwtcGVhcmw7Civnj4cgPiBjYXJ2aW5nXC1vblwtamFkZTsKK+eOnyA+IHN0cmVha3NcLWluXC1qYWRlOwor542xID4gYVwta2luZFwtb2ZcLW90dGVyOwor54urID4gbmFtZVwtb2ZcLWFcLXRyaWJlOwor54mEID4gdG9cLXdhbGtcLXJhcGlkbHk7CivnhpMgPiB0aGVcLWJhbmtcLWFcLWZpcmU7CivnhLUgPiB0b1wtdGVtcGVyXC1zdGVlbDsKK+eAtSA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+eAniA+IHBvb2xcLWluXC1hXC1yaXZlcjsKK+a9mSA+IHJpdmVyXC1pblwtc2hhbnhpOwor5ry1ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5ruOID4gY291bnR5XC1pblwtaGVuYW47CivmuqQgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivmuJMgPiBtb3VudGFpblwtc3RyZWFtOwor5reTID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5raHID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5rOpID4gcmlzaW5nXC1vZlwtd2F0ZXI7CivmspogPiBpc2xldFwtaW5cLXN0cmVhbTsKK+aymCA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+amoSA+IHF1ZXJjdXNcLWRlbnRhdGE7CivmpLogPiBiZWFtXC1vZlwtYVwtaG91c2U7Civmn44gPiBjYWx5eFwtb2ZcLWZsb3dlcjsKK+afgSA+IGxhcmdlXC10aWVcLWJlYW1zOwor5p6sID4gYW5cLWV2ZW5cLWdyYWluZWQ7CivmnKMgPiB0aGVcLXJpc2luZ1wtbW9vbjsKK+aRuyA+IGFcLWRlbGljYXRlXC1oYW5kOwor5o+rID4gZ3Jhc3BcLXdpdGhcLWhhbmQ7CivmiLEgPiB0aGVhdHJpY2FsXC1wbGF5Owor5oiEID4gdG9cLWJlXC1pblwtYXdlXC1vZjsKK+W/kyA+IGNvbmNlcm5lZFwtYWJvdXQ7CivlvqwgPiB0b1wtd2FuZGVyXC1hYm91dDsKK+W8tCA+IHJlZFwtbGFjcXVlclwtYm93Owor5be5ID4gbnVwdGlhbFwtd2luZWN1cDsKK+W1jiA+IG1vdW50YWluXC1yZWNlc3M7Civls54gPiBoaWdoXC1hbmRcLXVuZXZlbjsKK+WksiA+IGFkdmFuY2VcLXF1aWNrbHk7CivlnbQgPiBhXC1jbG9kXC1vZlwtZWFydGg7CivllqMgPiB0b1wtYnJlYXRoZVwtdXBvbjsKK+WUsiA+IGZvcmNlZFwtbGF1Z2h0ZXI7CivljpwgPiBhXC1tb3VudGFpblwtcGVhazsKK+WMiSA+IG5vaXNlXC1vZlwtd2F0ZXJzOwor5YyEID4gdG9cLWJlZ1wtZm9yXC1hbG1zOwor5YuFID4gaW1wZXJpYWxcLWRlZ3JlZTsKK+WKmCA+IG1ha2VcLWludG9cLW1pbmNlOwor5YqWID4gbWFrZVwtaW50b1wtbWluY2U7Civlgr0gPiB0ZXJyb3JcLXN0cmlja2VuOwor5L6WID4gbG9naWNhbFwtcmVhc29uczsKK+S9lCA+IG9jY3VweVwtYnlcLWZvcmNlOwor5Lm4ID4gZmVtaW5pbmVcLXN1ZmZpeDsKK+S2oSA+IHNvdW5kXC1vZlwtYml0aW5nOwor5LaOID4gc291bmRcLW9mXC1icmVhdGg7CivktZsgPiBwYW5pY2xlZFwtbWlsbGV0Owor5LWWID4gcGFuaWNsZWRcLW1pbGxldDsKK+S0viA+IHRvXC1ncmluZFwtYmFybGV5Owor5LSuID4gY2FrZXNcLXBmXC1sZWF2ZW47CivktI4gPiBmbHlpbmdcLXNxdWlycmVsOwor5LK+ID4gdGhlXC10YWlsb3JcLWJpcmQ7Civkr4QgPiBhXC1waWViYWxrXC1ob3JzZTsKK+SuvSA+IGJpdFwtZm9yXC1hXC1ob3JzZTsKK+SutSA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SusSA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+SusCA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+SurCA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SuqCA+IGFcLXBpZWJhbGRcLWhvcnNlOwor5K6nID4gbG9uZ1wtaGFpclwtaG9yc2U7CivkrqIgPiBhXC13YWxraW5nXC1ob3JzZTsKK+SuniA+IGFcLXBpZWJhbGRcLWhvcnNlOwor5K6ZID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6WID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6TID4gYVwtd2Fsa2luZ1wtaG9yc2U7CivkrpIgPiBuYW1lXC1vZlwtYVwtaG9yc2U7Civkro8gPiBuYW1lXC1vZlwtYVwtaG9yc2U7Civkro4gPiBhXC1ydW5uaW5nXC1ob3JzZTsKK+SuiyA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SuiiA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+StvCA+IGRhcmtcLWJsdWVcLWhvcnNlOwor5K22ID4gZGFya1wtYmx1ZVwtaG9yc2U7CivkrKsgPiBjbGFyZmllZFwtYnV0dGVyOwor5KyBID4gYVwtbGlnaHRcLWN5Y2xvbmU7Civkqq4gPiBiZWF1dGlmdWxcLXNvdW5kOwor5KqVID4gdG9cLXdyYXBcLW9yXC1iYW5kOwor5Km5ID4gdG9cLXJlcGFpclwtc2hvZXM7CivkqZIgPiBkcmVzc2VkXC1sZWF0aGVyOwor5KmEID4gdG9cLWZhY2VcLXRvXC1mYWNlOwor5KimID4gc25vd2luZ1wtaGVhdmlseTsKK+SooiA+IGFcLXBhc3NpbmdcLWNsb3VkOwor5KiWID4gdG9cLXN0b3BcLXJhaW5pbmc7CivkqJEgPiB0b1wtc3RvcFwtcmFpbmluZzsKK+SogCA+IHRvXC1sYXlcLWluXC1ncmFpbjsKK+SnryA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SnriA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SnnSA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SnjCA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SniyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SngyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SmuyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SmqyA+IGluc2lkZVwtdGhlXC1kb29yOwor5KagID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5KWXID4gYVwtYnJhbmRpbmdcLWlyb247CivkpLEgPiBhXC1zb2xlbW5cLXBsZWRnZTsKK+SjtiA+IHVuc3RyYWluZWRcLXdpbmU7Civko7MgPiB1bnN0cmFpbmVkXC13aW5lOwor5KOTID4gbmFtZVwtb2ZcLWFcLXN0YXRlOwor5KOQID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KOLID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KOKID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KOHID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KK7ID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KK0ID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KKzID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KKmID4gdG9cLWxlYWRcLXRoZVwtd2F5Owor5KKWID4gdG9cLWJlXC1zY2F0dGVyZWQ7CivkooEgPiB0aXJlXC1vZlwtYVwtd2hlZWw7CivkobsgPiBzaGFrZVwtb2ZcLWFcLWNhcnQ7CivkoaggPiBjb25uZWN0ZWRcLWNhcnRzOwor5KGTID4gc2hha2VcLW9mXC1hXC1jYXJ0Owor5KGQID4gdG9cLW1vdmVcLXN3aWZ0bHk7CivkoLUgPiB0b1wtd2VhclwtY2xvdGhlczsKK+SgqCA+IHdhbGtpbmdcLXJhcGlkbHk7Civkn5sgPiB3YWxraW5nXC1yYXBpZGx5Owor5J+RID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SetyA+IHdhbGtpbmdcLXJhcGlkbHk7CivknrYgPiB3YWxraW5nXC1yYXBpZGx5Owor5J6wID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SerSA+IHdhbGtpbmdcLXJhcGlkbHk7CivknqwgPiB0b1wtcGFzc1wtdGhyb3VnaDsKK+SeqiA+IHdhbGtpbmdcLXJhcGlkbHk7Civkna8gPiB0b1wtY2hhbmdlXC1oYW5kczsKK+SdkCA+IGFcLWNhc3RyYXRlZFwtaG9nOwor5Jy+ID4gZmVybWVudGVkXC1iZWFuczsKK+ScuyA+IGZlcm1lbnRlZFwtYmVhbnM7CivknLUgPiBmZXJtZW50ZWRcLWJlYW5zOwor5JyEID4gc2xvd1wtb25cLXRhbGtpbmc7Civkm7UgPiB0b1wtdGVhY2hcLW9yYWxseTsKK+SbnyA+IHdpbGRcLXN0YXRlbWVudHM7Civkm5QgPiB0b1wtaG9sZFwtaW5cLWhhbmQ7CivkmqYgPiBzbGFudGVkXC1jb3JuZXJzOwor5JqlID4gdG9cLWFkanVzdFwtYVwtYm93Owor5Jm7ID4gdG9cLXN0ZWFsXC1hXC1sb29rOwor5JmoID4gdG9cLXdyYXBcLW9yXC1iaW5kOwor5JmdID4gdW5kZXJcLWdhcnJtZW50czsKK+SXviA+IGNvcmJpY3VsYVwtbGVhbmE7CivklrwgPiB0aGVcLWR1bmdcLWJlZXRsZTsKK+SWmSA+IGFcLXJlc3RpbmdcLXRpZ2VyOwor5JaJID4gdG9cLXJvYXJcLW9yXC1ob3dsOwor5JW3ID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JWZID4gdG9cLXNldFwtaW5cLW9yZGVyOwor5JWJID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JSnID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JSHID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JO2ID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JOeID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JOYID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JOIID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JK3ID4gYVwta2luZFwtb2ZcLXBsYW50Owor5JKSID4gbmFtZVwtb2ZcLWFcLXBsYW50Owor5JKMID4gZGFya1wtYmx1ZVwtY29sb3I7CivkkJwgPiBhXC1zd2VsbGVkXC1iZWxseTsKK+SPsiA+IHByb3RydWRlZFwtYm9uZXM7CivkjrMgPiBsb3NlXC1vZlwtdGhlXC1lYXI7CivkjokgPiB0b1wtd2Fsa1wtc3dpZnRseTsKK+SMviA+IHRvXC1sYXlcLXRoZVwtd2FycDsKK+SLtyA+IGFcLWtpbmRcLW9mXC10aGljazsKK+SLlSA+IHRvXC1sYXlcLXRoZVwtd2FycDsKK+SKtSA+IHlvdW5nXC1hbmRcLXNtYWxsOwor5IqXID4gYVwta2luZFwtb2ZcLWdyYWluOwor5IqJID4gcHJlc2VydmVkXC1mcnVpdDsKK+SJpyA+IHNvdW5kXC1vZlwtYmFtYm9vOwor5IaCID4gYVwta2luZFwtb2ZcLWdyYWluOwor5IW3ID4gYW5cLWVhclwtb2ZcLWdyYWluOwor5IWwID4gYVwta2luZFwtb2ZcLWdyYXNzOwor5IWhID4gYVwta2luZFwtb2ZcLWdyYXNzOwor5IWgID4gYVwta2luZFwtb2ZcLWdyYXNzOwor5IWeID4gc3RhbGtzXC1vZlwtZ3JhaW47CivkhYsgPiBhXC1raW5kXC1vZlwtZ3JhaW47CivkhYIgPiBhXC1raW5kXC1vZlwtZ3JhaW47CivkhLEgPiBhXC1raW5kXC1vZlwtZ3JhaW47CivkhK4gPiBkYXJrXC1yaWNlXC1wbGFudDsKK+SEpyA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SElSA+IGdvZFwtb2ZcLXRoZVwtbGFuZDsKK+SDtyA+IGFcLWtpbmRcLW9mXC1zdG9uZTsKK+SDtSA+IGFcLWtpbmRcLW9mXC1zdG9uZTsKK+SDniA+IGFcLWtpbmRcLW9mXC1zdG9uZTsKK+SDkiA+IHBvb3JcLWFuZFwtYmFycmVuOwor5IKtID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5IKaID4gYVwta2luZFwtb2ZcLXN0b25lOwor5IG0ID4ga2VlcFwtb25cLWxvb2tpbmc7CivkgbMgPiB0b1wtbG9zZVwtb25lXC1leWU7CivkgKkgPiB0b1wtbG9va1wtYXNrYW5jZTsKK+SAjiA+IHRvXC1sb29rXC1hc2thbmNlOwor5ICJID4gZm9vZFwtY29udGFpbmVyczsKK+O/sSA+IGRyeVwtYW5kXC1kZWNheWVkOwor476pID4gbWFsaWduYW50XC1ib2lsczsKK+O9vSA+IGNocm9uaWNcLWRpc2Vhc2U7CivjvacgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivjvJUgPiBwdWxwXC1vZlwtYVwtbWVsb247CivjvJQgPiBhXC1raW5kXC1vZlwtbWVsb247CivjvJEgPiBwdWxwXC1vZlwtYVwtbWVsb247CivjvI0gPiBwdWxwXC1vZlwtYVwtbWVsb247CivjvIogPiBhXC1raW5kXC1vZlwtbWVsb247CivjvIIgPiBhXC1jcmFja1wtaW5cLWphZGU7Civju7ggPiBqYWRlXC1saWtlXC1zdG9uZTsKK+O7tyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+O7jSA+IG5hbWVcLW9mXC1hXC1zd29yZDsKK+O6pCA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+O6oSA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+O6nyA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+O6lCA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+O6jSA+IGFcLWtpbmRcLW9mXC1vdHRlcjsKK+O6jCA+IGVuZGxlc3NcLWJhcmtpbmc7CivjuoQgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivjuoEgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivjuacgPiBmb3hcLWxpa2VcLWFuaW1hbDsKK+O4sSA+IGhvcm5sZXNzXC1jYXR0bGU7CivjuLAgPiBob3JubGVzc1wtY2F0dGxlOwor47ipID4gdG9cLWRlc2lzdFwtYW5cLW94Owor47iRID4gYVwtY29va2luZ1wtc3RvdmU7Civjt40gPiBhXC1jaGVtaWNhbFwtdGVybTsKK+O2myA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+O1siA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+O1pyA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+O1kSA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+O1giA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+O0qiA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OzvyA+IHJvbGxpbmdcLWJpbGxvd3M7Civjs74gPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs7ggPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs7cgPiBkYXJrXC1ibHVlXC1jb2xvcjsKK+OztiA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OztSA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OzoSA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OzlyA+IGJhbmtcLW9mXC1hXC1yaXZlcjsKK+OzliA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OyvCA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OylCA+IHdvb2xlblwtdGV4dGlsZXM7Civjso4gPiB3b29sZW5cLXRleHRpbGVzOwor47KNID4gd29vbGVuXC10ZXh0aWxlczsKK+OxjiA+IGNhbm5vdFwtYmVcLWtub3duOwor47CsID4gc2hvcnR3aW5kZWRuZXNzOwor47CXID4gYVwta2luZFwtb2ZcLW1hcGxlOwor47CIID4gbmljZVwtYW5kXC1wcmV0dHk7Civjr7EgPiBhblwtZW5sYXJnZWRcLWJhZzsKK+OvpCA+IHRoZVwtanVqdWJlXC10cmVlOwor46+UID4gdG9cLWh1bGxcLWhlYXZpbHk7CivjrqEgPiB0b1wtbGlnaHRcLWFcLWZpcmU7CivjraQgPiB0aGVcLWNvbnZvbHZ1bHVzOwor46ugID4gYVwta2luZFwtb2ZcLXdhdGVyOwor46qrID4gd2lzZVwtYW5kXC1jbGV2ZXI7CivvqKwgPiBwdWJsaWNcLWJ1aWxkaW5nOwor76iHID4gc3Bva2VzXC1vZlwtd2hlZWw7Civjp44gPiBmb3JrZWRcLWJyYW5jaGVzOwor76eMID4gc3BhcmtsaW5nXC1zdG9uZTsKK+OlniA+IHRvXC10aGlua1wtZGVlcGx5Owor46WbID4gd2l0aFwtZXhwZWRpdGlvbjsKK+OiniA+IHJvb21zXC1jb25uZWN0ZWQ7Civjoo0gPiBhXC1sb25nXC12ZXJhYmRhaDsKK+OhsiA+IHRpbGVzXC1vblwtYVwtcm9vZjsKK+OhgCA+IHJhZ2dlZFwtY2xvdGhpbmc7CivjoIggPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivjoIIgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civjn5QgPiBzdGVlcFwtYW5kXC1sb2Z0eTsKK+OfjyA+IHN0ZWVwXC1hbmRcLWxvZnR5Owor452lID4gaGF2ZVwtYVwtbmlnaG1hcmU7CivjnYUgPiB0b1wtZ2l2ZVwtc3Vja1wtdG87CivjnLIgPiB0b1wtaGF2ZVwtc3VycGx1czsKK+ObsCA+IHRvXC1tYXJyeVwtYVwtd2lmZTsKK+OapiA+IGFcLWNoYXJtaW5nXC1naXJsOwor45m8ID4gYVwtbWlsaXRhcnlcLXdhbGw7CivjmbggPiBhXC1jbG9kXC1vZlwtZWFydGg7CivjmZcgPiBhXC1sdW1wXC1vZlwtZWFydGg7CivjmLogPiBjdWx0aXZhdGVkXC1sYW5kOwor45i1ID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor45e/ID4gdG9cLWxhdWdoXC1sb3VkbHk7CivjlbIgPiB0b1wtZ2FnXC1vclwtYnJpYmU7CivjlZggPiB0b1wtdGFrZVwtcGFydFwtaW47Civjkp8gPiB3aXRoXC1hXC1jaGFybWluZzsKK+OQvSA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+i6hSA+IHdhbGtcLWNhcmVmdWxseTsKK+W3tCA+IGdyZWF0bHlcLWRlc2lyZTsKK+acnyA+IHBlcmlvZFwtb2ZcLXRpbWU7Civlj7ggPiB0YWtlXC1jaGFyZ2VcLW9mOwor55SlID4gc2lzdGVyJydzXC1jaGlsZDsKK+WxjyA+IGZvbGRpbmdcLXNjcmVlbjsKK+eLkCA+IHNwZWNpZXNcLW9mXC1mb3g7CivmsYkgPiBjaGluZXNlXC1wZW9wbGU7CivlprkgPiB5b3VuZ2VyXC1zaXN0ZXI7CivkvIEgPiBwbGFuXC1hXC1wcm9qZWN0Owor6KWWID4gb3V0ZXJcLWdhcm1lbnRzOwor5aOBID4gcGFydGl0aW9uXC13YWxsOwor6Z+mID4gdGFubmVkXC1sZWF0aGVyOwor5r2wID4gZmxvb2RpbmdcLXJpdmVyOwor54+gID4gcHJlY2lvdXNcLXN0b25lOwor6ZSLID4gcG9pbnRcLW9mXC1zcGVhcjsKK+S/lyA+IHNvY2lhbFwtY3VzdG9tczsKK+aqkCA+IGVhdmVzXC1vZlwtaG91c2U7CivpqpEgPiByaWRlXC1ob3JzZWJhY2s7Civlh70gPiBjb3JyZXNwb25kZW5jZTsKK+mtjyA+IGtpbmdkb21cLW9mXC13ZWk7CivmnpogPiBzdGFsa1wtb2ZcLXNocnViOwor5LuyID4gbWlkZGxlXC1icm90aGVyOwor55CzID4gYmVhdXRpZnVsXC1qYWRlOwor5YeRID4gcGllY2VcLXRvZ2V0aGVyOwor6YOBID4gc3dlZXRcLXNtZWxsaW5nOwor6IqvID4gcGl0aFwtZnJvbVwtcnVzaDsKK+e4niA+IHdoaXRlXC1yYXdcLXNpbGs7Civml6wgPiB0ZW5cLWRheVwtcGVyaW9kOwor57a6ID4gZmluZVwtdGhpblwtc2lsazsKK+WmqCA+IGludGVyZmVyZVwtd2l0aDsKK+mqhCA+IHNwaXJpdGVkXC1ob3JzZTsKK+ewtyA+IGVhdmVzXC1vZlwtaG91c2U7CivmjrQgPiBib3hcLW9uZScnc1wtZWFyczsKK+WXryA+IGZpbmFsXC1wYXJ0aWNsZTsKK+WyrSA+IG1vdW50YWluXC1yaWRnZTsKK+a5mCA+IGh1bmFuXC1wcm92aW5jZTsKK+mKgyA+IGFuY2llbnRcLXdlYXBvbjsKK+a6gyA+IGZsb29kaW5nXC1yaXZlcjsKK+mTriA+IGNsYW5naW5nXC1zb3VuZDsKK+iOuSA+IGx1c3Rlclwtb2ZcLWdlbXM7Civlg7sgPiBvdXRcLW9mXC10aGVcLXdheTsKK+e7riA+IGZpbmVcLXRoaW5cLXNpbGs7CivmuLogPiBlbmRsZXNzbHlcLWxvbmc7CivkvaMgPiBjb21taXNzaW9uXC1mZWU7Civlkq8gPiBmaW5hbFwtcGFydGljbGU7CivlkZsgPiBjaG9rZVwtYnlcLXNtb2tlOwor5YewID4gZmVtYWxlXC1waG9lbml4Owor6Ze6ID4gc21hbGxcLWVudHJhbmNlOwor57yAID4gcGF0Y2hcLXRvZ2V0aGVyOwor6KKEID4gb3V0ZXJcLWdhcm1lbnRzOwor55KLID4gamFkZVwtcGxheXRoaW5nOwor5ou0ID4gYmluZFwtd2l0aFwtcm9wZTsKK+enpyA+IHJpY2VcLXNlZWRsaW5nczsKK+iVgyA+IGZvcmVpZ25cLXRoaW5nczsKK+mEgiA+IGh1YmVpXC1wcm92aW5jZTsKK+ajsSA+IHNxdWFyZWRcLXRpbWJlcjsKK+ailyA+IHN0ZW1cLW9mXC1mbG93ZXI7Civoj7EgPiB3YXRlclwtY2hlc3RudXQ7CivplZEgPiBwb3VuZFwtc3Rlcmxpbmc7CivmoKkgPiBzcGVjaWVzXC1vZlwtb2FrOwor5ZS3ID4gZmluYWxcLXBhcnRpY2xlOwor55KeID4gdW5wb2xpc2hlZFwtZ2VtOwor6ZuvID4gY2xvdWRcLXBhdHRlcm5zOwor6K63ID4gc2xvd1wtb2ZcLXNwZWVjaDsKK+eShyA+IGJlYXV0aWZ1bFwtamFkZTsKK+eLsCA+IGZpZXJjZVwtbG9va2luZzsKK+WzpiA+IG1vdW50YWluXC1yYW5nZTsKK+a5gyA+IHNvdW5kXC1vZlwtd2F2ZXM7CivlqKMgPiB5b3VuZ2VyXC1zaXN0ZXI7CivonZcgPiBraW5kXC1vZlwtbG9jdXN0Owor55qWID4gYW5odWlcLXByb3ZpbmNlOwor6YWLID4gY2hpZWZcLW9mXC10cmliZTsKK+WjkSA+IGJlZFwtb2ZcLXRvcnJlbnQ7Civns68gPiBnbHV0aW5vdXNcLXJpY2U7CivnqLcgPiBnb2RcLW9mXC1jZXJlYWxzOwor5aG+ID4gdmlsbGFnZVwtc2Nob29sOwor54upID4gd2ludGVyXC1odW50aW5nOwor5oiNID4gZGVmZW5kXC1ib3JkZXJzOwor55KAID4gbHVzdHJlXC1vZlwtZ2VtczsKK+eJjSA+IHdyaXRpbmdcLXRhYmxldDsKK+mVjCA+IGVuZ3JhdmluZ1wtdG9vbDsKK+mlryA+IGZhcmV3ZWxsXC1wYXJ0eTsKK+m5giA+IGNoaW5lc2VcLW9yaW9sZTsKK+WboSA+IG9uZScnc1wtZGF1Z2h0ZXI7Civmup8gPiBkcml6emxpbmdcLXJhaW47CivplI8gPiBraW5kXC1vZlwtcmFwaWVyOwor5bGZID4gdG9cLWVhc2VcLW5hdHVyZTsKK+eQqCA+IGJlYXV0aWZ1bFwtamFkZTsKK+eOsyA+IHRvcnRvaXNlXC1zaGVsbDsKK+eRrSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor5p2IID4gZm9ya1wtb2ZcLWFcLXRyZWU7CivljJAgPiBmYWxsXC1wcm9zdHJhdGU7CivnoKMgPiBhXC1zdG9uZVwtcm9sbGVyOwor6ZOiID4gdW5pdFwtb2ZcLXdlaWdodDsKK+mqiCA+IHRlYW1cLW9mXC1ob3JzZXM7CivlmbEgPiBsYXVnaFwtaGVhcnRpbHk7Civpk7MgPiBhbmNpZW50XC13ZWFwb247Civnm7EgPiB3aWRlXC1vcGVuXC1leWVzOwor6ICEID4gZWxkZXJseVwtcGVyc29uOwor5qaUID4gYmV0ZWxcLW51dFwtdHJlZTsKK+ivpCA+IHRvXC1leHBvc3R1bGF0ZTsKK+idriA+IHZlbm9tb3VzXC1zbmFrZTsKK+mijSA+IHJpdmVyXC1pblwtYW5odWk7CivmpZ0gPiBtZWxpYVwtamFwb25pY2E7CivonbwgPiBhXC1tb2xlXC1jcmlja2V0Owor6I2qID4gYXJvbWF0aWNcLWdyYXNzOwor5aiMID4gYnJvdGhlcicnc1wtd2lmZTsKK+e8nyA+IHdoaXRlXC1yYXdcLXNpbGs7CivmmbcgPiBzaGFkb3dzXC1vZlwtc3VuOwor5Ze1ID4gdXNlZFwtZm9yXC1zb3VuZDsKK+i4hSA+IHRvXC13YWxrXC1hcm91bmQ7Civmj4YgPiBwcmltZVwtbWluaXN0ZXI7CivnjJUgPiBtYWNhY3VzXC1tb25rZXk7Civljp0gPiBjdXRcLW9yXC1lbmdyYXZlOwor6JGaID4gbXVsYmVycnlcLWZydWl0Owor6ICSID4gaGFuZGxlXC1vZlwtcGxvdzsKK+WYniA+IGZpbmFsXC1wYXJ0aWNsZTsKK+mMviA+IGVuZ3JhdmluZ1wtdG9vbDsKK+ePmSA+IHByZWNpb3VzXC1zdG9uZTsKK+iNuCA+IHdhdGVyXC1jaGVzdG51dDsKK+S/hSA+IG9ybmFtZW50YWxcLWNhcDsKK+iPvSA+IGJlYW5zXC1hbmRcLXBlYXM7Civpnq8gPiBzYWRkbGVcLWJsYW5rZXQ7CivpvJAgPiBpbmNlbnNlXC10cmlwb2Q7CivosLAgPiBhY2N1c2VcLWZhbHNlbHk7CivpqrEgPiBqb2ludFwtb2ZcLWJvbmVzOwor6KymID4gdFwtc3BlYWtcLXNvZnRseTsKK+ejtCA+IHN0ZXBzXC1vblwtbGVkZ2U7CivlqbogPiBuYW1lXC1vZlwtYVwtc3RhcjsKK+WgjSA+IHNpZGVcLW9mXC1icmlkZ2U7CivmoasgPiBob3JzZVwtY2hlc3RudXQ7CivmvLYgPiBpbmRlY2lwaGVyYWJsZTsKK+WtpSA+IG9uZScnc1wtY2hpbGRyZW47CivmurEgPiByaXZlclwtaW5cLWhlbmFuOwor5bqgID4gdmlsbGFnZVwtc2Nob29sOwor6bulID4gdGF0dG9vaW5nXC1mYWNlOwor6LqQID4gdG9cLXN0cmlkZVwtb3ZlcjsKK+i5ryA+IHBhd3NcLW9mXC1hbmltYWw7Civnm40gPiB3aGF0XD9cLXdoeVwtbm90XD87CivmuoYgPiByaXZlclwtaW5cLWh1bmFuOwor56OyID4gdHJpZGFjbmFcLWdpZ2FzOwor5pidID4gYVwtZHVhbFwtcHJvbm91bjsKK+afvSA+IHR5cGVcLW9mXC13aWxsb3c7CivnvKwgPiBwYXR0ZXJuZWRcLXNpbGs7CivpqbogPiBtb3VudGVkXC1lc2NvcnQ7CivpmIogPiBnYXRlXC1vZlwtaGVhdmVuOwor6I2pID4gYVwta2luZFwtb2ZcLXdlZWQ7Civoio4gPiBhXC1raW5kXC1vZlwtaGVyYjsKK+mLiCA+IHNpbHZlclwtcGxhdGluZzsKK+m+hSA+IHRlZXRoXC1wcm90cnVkZTsKK+aZoSA+IGxhdGVcLWFmdGVybm9vbjsKK+aqoCA+IHN0YW5kXC1mb3JcLWxhbXA7CivpgK0gPiB0b1wtZXNjYXBlXC1mcm9tOwor6bidID4gY2hpbmVzZVwtb3Jpb2xlOwor6biOID4gdGhlXC1tYW5nb1wtYmlyZDsKK+m2lyA+IGFcLWtpbmRcLW9mXC1oYXdrOwor6a6nID4gdGhlXC1zaGVhdFwtZmlzaDsKK+msmCA+IGJlYXV0aWZ1bFwtaGFpcjsKK+mslyA+IGhlYWRcLW9ybmFtZW50czsKK+mrhiA+IHNob3VsZGVyXC1ibGFkZTsKK+mplSA+IHNwaXJpdGVkXC1ob3JzZTsKK+motiA+IG1vdW50ZWRcLWVzY29ydDsKK+mojiA+IHJpZGVcLWhvcnNlYmFjazsKK+mojCA+IGFcLWhvcnNlJydzXC1tYW5lOwor6aiIID4gdGVhbVwtb2ZcLWhvcnNlczsKK+mnoiA+IHRlYW1cLW9mXC1ob3JzZXM7CivppKEgPiBwYXN0cnlcLWZpbGxpbmc7CivppJ4gPiBmYXJld2VsbFwtcGFydHk7CivppJcgPiBmb29kXC1pblwtdHJpcG9kOwor6Z+LID4gdGFubmVkXC1sZWF0aGVyOwor6Z+JID4gc2FkZGxlXC1ibGFua2V0Owor6ZyhID4gZHJpenpsaW5nXC1yYWluOwor6Za2ID4gZ2F0ZVwtb2ZcLWhlYXZlbjsKK+mWqCA+IHNtYWxsXC1lbnRyYW5jZTsKK+mUqiA+IGFcLWtpbmRcLW9mXC10b29sOwor6ZCrID4gZW5ncmF2aW5nXC10b29sOwor6ZCnID4ga2luZFwtb2ZcLXJhcGllcjsKK+mPtCA+IHRvXC1wbHVnXC1hXC1ob2xlOwor6Y+oID4gZW5ncmF2aW5nXC10b29sOwor6Y6pID4gbW91bHRcLXNhbWFyaXVtOwor6Y6KID4gcG91bmRcLXN0ZXJsaW5nOwor6Y2GID4gbWRcLW1lbmRlbGV2aXVtOwor6YyaID4gY2xhbmdpbmdcLXNvdW5kOwor6YupID4gcG9pbnRcLW9mXC1zd29yZDsKK+mLkiA+IHBvaW50XC1vZlwtc3BlYXI7Civpi4MgPiBsb2NrXC1sYW50aGFudW07CivpipYgPiB1bml0XC1vZlwtd2VpZ2h0Owor6YevID4gcG9pbnRcLW9mXC1zd29yZDsKK+mAqSA+IHRvXC1ydW5cLXF1aWNrbHk7CivovLYgPiBsaWdodFwtY2FycmlhZ2U7CivouZwgPiB3YWxrXC1jYXJlZnVsbHk7CivotrkgPiBraWNrXC13aXRoXC1ob29mOwor6LGjID4gcGlnXC1vZlwtM1wteWVhcnM7CivosZwgPiBwaWdcLW9mXC0zXC15ZWFyczsKK+ixliA+IGFcLXNoYWNrbGVkXC1waWc7CivorpUgPiBhY2N1c2VcLWZhbHNlbHk7CivoroUgPiBrbm93XC1pblwtZGV0YWlsOwor6KuNID4gdG9cLWV4cG9zdHVsYXRlOwor6KmoID4ga2luZFwtb2ZcLWNpY2FkYTsKK+iopSA+IHNsb3dcLW9mXC1zcGVlY2g7CivopIkgPiBzaG9ydFwtZ2FybWVudHM7CivooYIgPiB0b1wtYmVcLWRlZmVhdGVkOwor6KCCID4gcG9kaXNtYVwtbWlrYWRvOwor6J+zID4gYVwta2luZFwtb2ZcLWNyYWI7Civon60gPiB2ZXJ5XC1zbWFsbFwtYnVnOwor6J6/ID4ga2luZFwtb2ZcLWNpY2FkYTsKK+ieuyA+IGFcLW1vbGVcLWNyaWNrZXQ7CivonqwgPiBncnVic1wtaW5cLWZydWl0Owor6JyOID4gbW9zcXVpdG9cLWxhcnZhOwor6JmAID4gbWluY2VkXC1waWNrbGVzOwor6JeOID4gYVwta2luZFwtb2ZcLXdlZWQ7CivolrMgPiBuYW1lXC1vZlwtYVwtaGVyYjsKK+iWmCA+IHBsYW50YWdvXC1tYWpvcjsKK+iUhiA+IHdhdGVyXC1jaGVzdG51dDsKK+iTryA+IG1lZGljaW5hbFwtaGVyYjsKK+iTjyA+IGZydWl0XC1vZlwtcGxhbnQ7Civok4AgPiBhcm9tYXRpY1wtZ3Jhc3M7CivokaUgPiBydWJ1c1wtcGFsbWF0dXM7Civoj44gPiBiZWF1dGlmdWxcLWphZGU7CivojJ4gPiBmcmFncmFudFwtcGxhbnQ7Civoi4EgPiBtZWRpY2luYWxcLWhlcmI7CivoioggPiBibGVhdFwtb2ZcLXNoZWVwOwor6ISmID4gdXNlZFwtaW5cLScnbGVkZScnOwor576LID4gYmxlYXRcLW9mXC1zaGVlcDsKK+e6iCA+IHBhdHRlcm5lZFwtc2lsazsKK+e2tCA+IHBhdGNoXC10b2dldGhlcjsKK+e1nCA+IGFcLW1hcmtpbmdcLWxpbmU7CivntL4gPiB0dXJuc1wtb3JcLXR3aXN0Owor57O6ID4gdG9cLWNvbGxhYm9yYXRlOwor57GrID4gYmFtYm9vXC11dGVuc2lsOwor562sID4gcmVlZFwtb2ZcLWFcLWxvb207CivnqK0gPiBzdGFsa1wtb2ZcLWdyYWluOwor56iMID4gZ2x1dGlub3VzXC1yaWNlOwor56iIID4gc3RhbGtcLW9mXC1ncmFpbjsKK+egoiA+IHBpbGVcLW9mXC1zdG9uZXM7Civnn4kgPiBhblwtYW5ncnlcLWdsYXJlOwor552xID4gdG9cLWdhemVcLXNsb3dseTsKK+edryA+IHRvXC1iZVwtYWdvbml6ZWQ7CivnnKMgPiBwcm9taW5lbnRcLWV5ZXM7CivnkrggPiBqYWRlJydzXC1zdHJlYWtzOwor55K1ID4gYmVhdXRpZnVsXC1qYWRlOwor55KlID4gYVwta2luZFwtb2ZcLWphZGU7CivnkqIgPiBwcmVjaW91c1wtc3RvbmU7CivnkpggPiBsdXN0ZXJcLW9mXC1qYWRlOwor55KGID4gYmVhdXRpZnVsXC1qYWRlOwor55GpID4gbHVzdHJlXC1vZlwtZ2VtczsKK+eRoCA+IHByZWNpb3VzXC1zdG9uZTsKK+eRhyA+IHRvcnRvaXNlXC1zaGVsbDsKK+eQgSA+IGJlYXV0aWZ1bFwtamFkZTsKK+ePuiA+IGJlYXV0aWZ1bFwtamFkZTsKK+ePpiA+IGFcLWtpbmRcLW9mXC1qYWRlOwor54+iID4gcHJlY2lvdXNcLXN0b25lOwor546lID4gbXlzdGVyaW91c1wtZ2VtOwor5428ID4gbWFjYWN1c1wtbW9ua2V5Owor54yZID4gZmllcmNlXC1sb29raW5nOwor54uoID4gaGFwYWxlXC1qYWNjaHVzOwor54qoID4gcGFudGluZ1wtb2ZcLWNvdzsKK+eJmCA+IHdyaXRpbmdcLXRhYmxldDsKK+eHiSA+IGhlYXRcLXdpdGhcLWZpcmU7Civnh4AgPiB0b1wtbWFrZVwtYVwtZmlyZTsKK+eGiSA+IFwoeWVsbG93XC1jb2xvclwpOwor5r2VID4gcml2ZXJcLWluXC1oZW5hbjsKK+a9gSA+IHJpdmVyXC1pblwtYW5odWk7CivmupsgPiB0b1wtZm9ybVwtaG9sbG93Owor5rmxID4gc291bmRcLW9mXC13YXRlcjsKK+a5iiA+IHBpZWNlXC10b2dldGhlcjsKK+a4oiA+IHBsZWFzYW50XC1zb3VuZDsKK+a2rCA+IHdhdGVyeVwtZXhwYW5zZTsKK+a0vyA+IHN0YWduYW50XC13YXRlcjsKK+azgyA+IHJpdmVyXC1pblwtaGVuYW47Civms4IgPiBjbGVhclwtYW5kXC1kZWVwOwor5rK3ID4gdG9cLXJlbW92ZVwtZXZpbDsKK+aurSA+IGFcLXN0aWZmXC1jb3Jwc2U7CivmqpYgPiB3aWxkXC1wZWFyXC10cmVlOwor5qqJID4gdHlwZVwtb2ZcLXdpbGxvdzsKK+apvyA+IHF1ZXJjdXNcLWdsYXVjYTsKK+amviA+IHBpZWNlc1wtb2ZcLXdvb2Q7CivmpqAgPiBjaGluZXNlXC1xdWluY2U7CivmppYgPiBwYXBlclwtbXVsYmVycnk7CivmpKogPiBtYWNoaWx1c1wtbmFubXU7Civmo5AgPiBzcGVjaWVzXC1vZlwteWV3Owor5qKKID4gc3F1ZWV6ZVwtb3V0XC1vZjsKK+afviA+IHN0cmFpZ2h0XC1ncmFpbjsKK+afnyA+IG1hY2hpbHVzXC1uYW5tdTsKK+afgyA+IGV1cnlhXC1qYXBvbmljYTsKK+abjyA+IG9uY2VcLXVwb25cLXRpbWU7CivmmaUgPiBhbmh1aVwtcHJvdmluY2U7CivmmaIgPiBsaWdodFwtb2ZcLXN0YXJzOwor5piwID4gdmFyXC1vZlwtJyd0b1wtYmUnJzsKK+aUgiA+IHRvXC1iZWF0XC1hXC1kcnVtOwor5pG0ID4gdG9cLXN0cmV0Y2hcLW91dDsKK+aRkSA+IGJveFwtb25lJydzXC1lYXJzOwor5bmxID4gb2ZmaWNpYWxcLWRyZXNzOwor5befID4gYVwtd2F0ZXJ5XC13YXN0ZTsKK+W3kiA+IG1vdW50YWluXC1yYW5nZTsKK+W2uiA+IG1vdW50YWluXC1yaWRnZTsKK+W1tCA+IG1vdW50YWluXC1yaWRnZTsKK+WyuiA+IG1vdW50YWluXC1yaWRnZTsKK+WxmyA+IGZvbGRpbmdcLXNjcmVlbjsKK+WimiA+IG1vdW50YWluXC1yYW5nZTsKK+WhlSA+IGFcLWd1c3RcLW9mXC13aW5kOwor5Z+HID4gbmFtZVwtb2ZcLWJyaWRnZTsKK+WchSA+IGNvcnJlc3BvbmRlbmNlOwor5Zm5ID4gc291bmRcLW9mXC1iZWxsczsKK+WYkyA+IGd1cmdsaW5nXC1zb3VuZDsKK+WXhiA+IGNob2tlXC1ieVwtc21va2U7CivllpIgPiBhXC1kdWFsXC1wcm9ub3VuOwor5ZWMID4gYW5pbWFsXC1kaXNlYXNlOwor5Y6DID4gdG9cLWxvb2tcLXVwd2FyZDsKK+WNrSA+IGhpZ2hcLlwtdG9cLXJhaXNlOwor5Y2CID4gdG9cLWZseVwtcmFwaWRseTsKK+WHviA+IGNvcnJlc3BvbmRlbmNlOwor5LyVID4gY29tbW9uXC1sYWJvcmVyOwor5LqHID4ga3d1a3llbFwtaGFtbWVyOwor5LaUID4gcHJvbWluZW50XC1ndW1zOwor5LaQID4gdG9cLXRha2VcLWJyZWF0aDsKK+S2gCA+IHNvdW5kXC1vZlwtZHJ1bXM7Civktb4gPiBzb3VuZFwtb2ZcLWRydW1zOwor5LW9ID4gc291bmRcLW9mXC1kcnVtczsKK+S1tiA+IGFcLWtpbmRcLW9mXC1mcm9nOwor5LWMID4gcmVkZGlzaFwteWVsbG93Owor5LS0ID4gYVwta2luZFwtb2ZcLWNha2U7CivktK8gPiBhXC1raW5kXC1vZlwtY2FrZTsKK+S0qSA+IGFcLWtpbmRcLW9mXC1kZWVyOwor5LSiID4gYVwta2luZFwtb2ZcLWRlZXI7CivktJggPiBhXC1raW5kXC1vZlwtYmlyZDsKK+S0kCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LSGID4gYVwta2luZFwtb2ZcLWJpcmQ7CivktIQgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzvyA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LO4ID4gdGhlXC13aWxkXC1nb29zZTsKK+SztCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LOvID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks6wgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzqyA+IGFcLXNtYWxsXC1waWdlb247Civks6ogPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzqSA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LOSID4gYVwta2luZFwtb2ZcLWJpcmQ7Civksr0gPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyvCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LK4ID4gYVwta2luZFwtb2ZcLWJpcmQ7Civksq4gPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyqiA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LKiID4gYVwta2luZFwtb2ZcLWZpc2g7CivksqAgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SynyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKZID4gYVwta2luZFwtb2ZcLWZpc2g7CivkspggPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SylyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKTID4gYVwta2luZFwtb2ZcLWZpc2g7CivkspAgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SyjyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKLID4gYVwta2luZFwtb2ZcLWZpc2g7CivksokgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SygiA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKAID4gYVwta2luZFwtb2ZcLWZpc2g7Civksb8gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxvCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LG7ID4gYVwta2luZFwtb2ZcLWZpc2g7CivksbUgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxsiA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGwID4gYVwta2luZFwtb2ZcLWZpc2g7Civksa8gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxriA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGsID4gYVwta2luZFwtb2ZcLWZpc2g7CivksasgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxqCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGlID4gYVwta2luZFwtb2ZcLWZpc2g7CivksaQgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxoiA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGgID4gYVwta2luZFwtb2ZcLWZpc2g7CivksZ4gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxmyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGaID4gYVwta2luZFwtb2ZcLWZpc2g7CivksZMgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SwviA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LC5ID4gdGhlXC1jdXR0bGVmaXNoOwor5LC0ID4gYVwtd2FmdGluZ1wtZmlzaDsKK+SwsiA+IHRoZVwtc2hlYXRcLWZpc2g7CivksKEgPiBhXC1maWVyY2VcLWdob3N0Owor5K+bID4gdGhlXC1rbmVlXC1ib25lczsKK+SuuSA+IGFuXC1hbmdyeVwtaG9yc2U7Civkrq4gPiBhXC1raW5kXC1vZlwtbXVsZTsKK+StuyA+IGFcLXN3aWZ0eVwtaG9yc2U7CivkrbMgPiBhXC1raW5kXC1vZlwtaGVyYjsKK+StsiA+IHN3ZWV0XC1zbWVsbGluZzsKK+StrSA+IHRoZVwtZWxkZXN0XC1zb247CivkrakgPiB0b1wtZmVlZFwtYVwtYmFieTsKK+StpyA+IHRvXC1mZWVkXC1hXC1iYWJ5Owor5K2BID4gc3RpbmtpbmdcLXNtZWxsOwor5Ky6ID4gc2FtZVwtYXNcLXVcKzRiNTA7CivkrJggPiB0aGVcLXdpbmRcLWJsb3dzOwor5KySID4gdG9cLWJsb3dcLWNoaWxseTsKK+SsjCA+IHRoZVwtd2luZFwtYmxvd3M7Civkq6sgPiBodW1hblwtc2tlbGV0b247CivkqrwgPiB0aGVcLWNoZWVrXC1ib25lOwor5KqIID4gYVwtbGVhdGhlclwtYmVsdDsKK+SpkCA+IHRpZVwtaXRcLXRpZ2h0bHk7CivkqKsgPiBkcml6emxpbmdcLXJhaW47CivkqKUgPiBhXC1wb3VyaW5nXC1yYWluOwor5KicID4gYVwtcG91cmluZ1wtcmFpbjsKK+SnviA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5Ke3ID4gYVwta2luZFwtb2ZcLWJpcmQ7Civkp6cgPiBoaWdoXC1tb3VudGFpbnM7CivkprogPiBuYW1lXC1vZlwtYVwtaGlsbDsKK+SmpCA+IHNlZWRcLW9mXC1ncmFpbnM7CivkppEgPiB3aXRob3V0XC1hXC1kb29yOwor5KaPID4gd2luZ1wtb2ZcLWFcLWRvb3I7CivkpaIgPiBzb3VuZFwtb2ZcLWRydW1zOwor5KSWID4gYVwta2luZFwtb2ZcLXdpbmU7Civko6UgPiBhXC1raW5kXC1vZlwtd2luZTsKK+SjjiA+IG5hbWVcLW9mXC1jb3VudHk7CivkoqggPiB0b1wtd2Fsa1wtc2xvd2x5Owor5KG+ID4gaGlnaFwtY2FydGxvYWRzOwor5KGyID4gcmltXC1vZlwtYVwtd2hlZWw7CivkoZcgPiByaW1cLW9mXC1hXC13aGVlbDsKK+ShiSA+IGFcLWtpbmRcLW9mXC1jYXJ0Owor5J+TID4gdG9cLXdhbGtcLXNsb3dseTsKK+SduCA+IGFcLWtpbmRcLW9mXC10b29sOwor5Jy9ID4gYVwta2luZFwtb2ZcLWJlYW47CivknLwgPiBhXC1raW5kXC1vZlwtYmVhbjsKK+ScnCA+IHdvcmRzXC1vZlwtYW5nZXI7Civkm6AgPiB1bmFibGVcLXRvXC10YWxrOwor5JqWID4gbW91bnRhaW5cLWRlaXR5Owor5JqEID4gdG9cLW1ha2VcLWZ1blwtb2Y7CivkmbMgPiBzcGl0aW5nXC1mbGFtZXM7CivkmaYgPiB1cHBlclwtZ2FybWVudHM7CivkmKIgPiBvbGRcLWFuZFwtc2hhYmJ5Owor5JiDID4gYVwta2luZFwtb2ZcLWNyYWI7Civkl7cgPiBhXC1raW5kXC1vZlwtd2FzcDsKK+SXqiA+IGFcLWtpbmRcLW9mXC13b3JtOwor5JecID4gYVwtbW9sZVwtY3JpY2tldDsKK+SXmiA+IGVnZ3NcLW9mXC1tYW50aXM7Civkl5IgPiBhXC1raW5kXC1vZlwtY2xhbTsKK+SXgCA+IGFcLWtpbmRcLW9mXC1jbGFtOwor5JawID4gYVwta2luZFwtb2ZcLWduYXQ7CivkloYgPiBtZWRpY2luYWxcLWhlcmI7CivklZogPiBhXC1zdHJhd1wtYmFza2V0Owor5JSVID4gY2hpY2tlblwtYnJlYXN0Owor5JSLID4gYVwta2luZFwtb2ZcLXRyZWU7CivklIYgPiBhXC1raW5kXC1vZlwtYmVhbjsKK+SUgiA+IHZlZ2V0YWJsZVwtc291cDsKK+SToSA+IGFcLW1lZGljYWxcLWhlcmI7CivkkrsgPiBhXC1tZWRpY2FsXC1oZXJiOwor5JKyID4gYVwtbWVkaWNhbFwtaGVyYjsKK+SSkyA+IHRvXC1kb1wtdmlvbGVuY2U7CivkkocgPiBuYW1lXC1vZlwtYVwtc2hpcDsKK+SShiA+IG5hbWVcLW9mXC1hXC1zaGlwOwor5JKFID4gYmVhdXRpZnVsXC1leWVzOwor5JG2ID4gc3ByaWdodGx5XC1ib2F0Owor5JGrID4gdG9vbHNcLWZvclwtYm9hdDsKK+SRoyA+IGFcLXNhaWxpbmdcLWJvYXQ7CivkkZwgPiB0b1wtZWF0XC1oZWF2aWx5Owor5JCVID4gb2lsXC1hbmRcLWdyZWFzZTsKK+SQjSA+IGV4Y2VsbGVudFwtZm9vZDsKK+SNoSA+IHNtYWxsXC1maXNoXC1uZXQ7CivkjZEgPiBhXC1uZXRcLW9yXC1zbmFyZTsKK+SNkCA+IGFcLW5ldFwtb3JcLXNuYXJlOwor5I2NID4gdW5idXJudFwtYnJpY2tzOwor5Iy1ID4gbGFwZWxcLWFuZFwtYmVsdDsKK+SMsCA+IGNvbm5lY3RlZFwtc2lsazsKK+SMpSA+IHRvXC1zZXdcLWNsb3RoZXM7CivkjKEgPiB0b1wtd2luZFwtYXJvdW5kOwor5Iu9ID4gaGVtcGVuXC1zYW5kYWxzOwor5IuvID4gY3J1Y2lhbFwtcG9pbnRzOwor5IuiID4gdG9cLXR3aXN0XC1yb3BlczsKK+SLnCA+IGNydWNpYWxcLXBvaW50czsKK+SKvCA+IG1lYXN1cmluZ1wtdW5pdDsKK+SKqCA+IHN0b3JpbmdcLWdyYWluczsKK+SItyA+IGFcLWJhbWJvb1wtZmVuY2U7CivkiJogPiBhXC1iYW1ib29cLXNob290Owor5IerID4gYmFtYm9vXC1zcGxpbnRzOwor5IeFID4gdG9cLXN0YW5kXC1zdGlsbDsKK+SFpSA+IHJpcGVuaW5nXC1jcm9wczsKK+SFliA+IHN3ZWV0XC1zbWVsbGluZzsKK+SDuSA+IGphZGVcLWFuZFwtc3RvbmU7Civkg7ggPiBlbGVjdHJpY1wtbGlnaHQ7Civkg7EgPiBlbGVjdHJpY1wtbGlnaHQ7Civkg6EgPiBhXC1zbWFsbFwtcGViYmxlOwor5IOPID4gYVwta2luZFwtb2ZcLXJvY2s7Civkg4wgPiByb2NreVwtbW91bnRhaW47CivkgpsgPiBhXC1raW5kXC1vZlwtcm9jazsKK+SCjCA+IGFcLXNob3J0XC13ZWFwb247CivkgaQgPiBtb2lzdGVuZWRcLWV5ZXM7CivkgY8gPiBmYXJzaWdodGVkbmVzczsKK+SAuiA+IHNxdWludGluZ1wtZXllczsKK+SApSA+IGJlYXV0aWZ1bFwtZXllczsKK+O9piA+IHJlY2xhaW1lZFwtbGFuZDsKK+O9pSA+IGZlcnRpbGVcLWZpZWxkczsKK+O9iyA+IGFcLWtpbmRcLW9mXC10aWxlOwor472EID4gYW5cLWVhcnRoZW5cLWphcjsKK+O7vyA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47u6ID4gYVwta2luZFwtb2ZcLWphZGU7Civju7UgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7ryA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47usID4gYVwta2luZFwtb2ZcLWphZGU7Civju6cgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7nyA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47udID4gYVwta2luZFwtb2ZcLWphZGU7Civju5YgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7lSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uUID4gYVwta2luZFwtb2ZcLWphZGU7Civju5EgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7iyA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uCID4gYVwta2luZFwtb2ZcLWphZGU7CivjurkgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6uCA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47q3ID4gYVwta2luZFwtb2ZcLWphZGU7CivjurEgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6sCA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47qtID4gYVwta2luZFwtb2ZcLWphZGU7CivjuqsgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O4qyA+IGNhc3RyYXRlZFwtYnVsbDsKK+O4pCA+IGJyb2tlblwtbGVhdGhlcjsKK+O4iiA+IGZpZXJjZVwtb2ZcLWZpcmU7CivjtqAgPiB3YXRlclwtY3VycmVudHM7Civjtp4gPiB3YXRlclwtY3VycmVudHM7CivjtaUgPiB3YXRlclwtY3VycmVudHM7CivjtZggPiBncmVhdFwtY3VycmVudHM7CivjtLggPiBzd2lmdFwtY3VycmVudHM7CivjtJkgPiB3YXRlclwtZHJpcHBpbmc7Civjs4MgPiB0b1wtdGVtcGVyXC1pcm9uOwor47KPID4gZmx5aW5nXC1mZWF0aGVyOwor47GnID4gc3RpbmtpbmdcLXNtZWxsOwor47GPID4gdGhlXC1yaWdodFwtc2lkZTsKK+OwmiA+IGFcLWJhbWJvb1wtZmVuY2U7CivjsJggPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OwiiA+IGFcLWtpbmRcLW9mXC10cmVlOwor47CCID4gYVwta2luZFwtb2ZcLXRyZWU7CivjsIAgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OvniA+IGFcLWtpbmRcLW9mXC10cmVlOwor46+aID4gYVwta2luZFwtb2ZcLXRyZWU7Civjr5cgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OuiyA+IGFcLWtpbmRcLW9mXC10cmVlOwor466FID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrbsgPiB0aGVcLWNyYWJcLWFwcGxlOwor462tID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrZwgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OtmiA+IGFcLWtpbmRcLW9mXC10cmVlOwor462UID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrZEgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OtjyA+IGFcLWtpbmRcLW9mXC13b29kOwor462HID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrYQgPiBhXC1raW5nXC1vZlwtdHJlZTsKK+OtgSA+IGFcLWtpbmRcLW9mXC10cmVlOwor46yLID4gbmFtZVwtb2ZcLWFcLXN0YXI7Civjq48gPiBhXC1raW5kXC1vZlwtZmxhZzsKK+OrgiA+IHRvXC1jaG9wXC1vclwtY3V0Owor46qHID4gdG9cLWRpc3NlbWluYXRlOwor46iHID4gdG9cLXN3ZWVwXC1jbGVhbjsKK++nryA+IGx1c3Rlclwtb2ZcLWphZGU7Civvpq4gPiBsdXN0cmVcLW9mXC1nZW1zOwor76arID4gbW91bnRhaW5cLXJpZGdlOwor46aNID4gdG9cLWJlXC1zdGFydGxlZDsKK+OluiA+IHRvXC1ibG93XC1hXC1maXJlOwor76WYID4gd2F0ZXJcLWNoZXN0bnV0Owor46WJID4gYVwtbGl0dGxlXC1hbmdyeTsKK+OlhyA+IHRvXC1iZVwtcGVydmVyc2U7CivjpL4gPiBub3RcLWRvaW5nXC13ZWxsOwor46SWID4gdG9cLWhhdmVcLXdpc2RvbTsKK+OjpiA+IGFcLXdpbmRpbmdcLXBhdGg7Civjop8gPiB0b1wtd2Fsa1wtc2xvd2x5Owor46GcID4gcmFnZ2VkXC1jbG90aGVzOwor46CoID4gbWlzdHlcLW1vdW50YWluOwor46ChID4gaGlnaFwtYW5kXC1sb2Z0eTsKK+OgmiA+IGhpZ2hcLWFuZFwtbG9mdHk7Civjn78gPiBoaWdoXC1hbmRcLXN0ZWVwOwor45+bID4gaGlnaFwtYW5kXC1zdGVlcDsKK+OeqSA+IG1vdW50YWluXC12YXBvcjsKK+OenCA+IGhlbXBlblwtc2FuZGFsczsKK+OelyA+IHRoZVwtbWFsZVwtb3JnYW47CivjnowgPiB0b1wtYmVcLXByZWduYW50Owor456KID4gdW5hYmxlXC10b1wtd2FsazsKK+OdsCA+IHVuYWJsZVwtdG9cLW1lZXQ7CivjnZsgPiBhaGFsdGluZ1wtcGxhY2U7CivjnKQgPiBmb29saW5nXC1hcm91bmQ7CivjnJEgPiBhblwtb2xkZXJcLXdvbWFuOwor45upID4gc2lzdGVyc1wtaW5cLWxhdzsKK+ObgiA+IHdlYWtcLWFuZFwtc21hbGw7CivjmrogPiB0b1wtYmVcLXByZWduYW50Owor45qyID4gc21hbGxcLWFuZFwtd2VhazsKK+OagyA+IHRvXC10YWtlXC1hXC1oaW50Owor45m3ID4gbG93XC1seWluZ1wtYXJlYTsKK+OXiiA+IHB1YmxpY1wtb3BpbmlvbjsKK+OWviA+IHRvXC1iZWF0XC1hXC1kcnVtOwor45aiID4gdG9cLXJlamVjdFwtZm9vZDsKK+OVrCA+IHB1YmxpY1wtb3BpbmlvbjsKK+OVpCA+IGFcLXByb3VkXC10ZW1wZXI7CivjlJkgPiBncmVhdFwtc3RyZW5ndGg7CivjlIEgPiBhXC1raW5kXC1vZlwtdG9vbDsKK+OSmyA+IHRvXC1zdGFuZFwtYWxvbmU7CivjkoAgPiBkb1wtbm90XC1mZWFyXC10bzsKK+e7jyA+IGNsYXNzaWNcLXdvcmtzOwor5byfID4geW91bmdcLWJyb3RoZXI7Civlu7sgPiBjaXJjbGVcLWFyb3VuZDsKK+WFsyA+IGZyb250aWVyXC1wYXNzOwor5bidID4gc3VwcmVtZVwtcnVsZXI7CivnlaogPiB0b1wtdGFrZVwtdHVybnM7CivnlaUgPiBhcHByb3hpbWF0ZWx5Owor5YWxID4gdG9nZXRoZXJcLXdpdGg7CivkuYkgPiByaWdodFwtY29uZHVjdDsKK+WrgiA+IHNpc3RlclwtaW5cLWxhdzsKK+WTpSA+IGVsZGVyXC1icm90aGVyOwor5ammID4gbWFycmllZFwtd29tZW47CivoqKMgPiB0YWtlXC1sZWF2ZVwtb2Y7Civml48gPiBhXC1mYW1pbHlcLWNsYW47CivlpaogPiB0YWtlXC1ieVwtZm9yY2U7CivlhYQgPiBlbGRlclwtYnJvdGhlcjsKK+eslCA+IHdyaXRpbmdcLWJydXNoOwor6KK3ID4gbGluZWRcLWdhcm1lbnQ7CivngKwgPiBzd2lmdFwtY3VycmVudDsKK+WmhyA+IG1hcnJpZWRcLXdvbWVuOwor5LyvID4gb2xkZXJcLWJyb3RoZXI7CivmvLIgPiByaXNlXC1pblwtcHJpY2U7CivnpLwgPiBzb2NpYWxcLWN1c3RvbTsKK+WYqSA+IHJ1c2hpbmdcLXNvdW5kOwor5ZWjID4gaG9sZFwtaW5cLW1vdXRoOwor5rOKID4gYW5jaG9yXC12ZXNzZWw7Civmsr8gPiBmb2xsb3dcLWNvdXJzZTsKK+WShCA+IG5vaXNlXC1vZlwtcmFnZTsKK+WQqyA+IGhvbGRcLWluXC1tb3V0aDsKK+WkuiA+IHRha2VcLWJ5XC1mb3JjZTsKK+iPiiA+IGNocnlzYW50aGVtdW07CivlsrMgPiBtb3VudGFpblwtcGVhazsKK+WMuSA+IGJvbHRcLW9mXC1jbG90aDsKK+mihyA+IGxlYW5cLW9uZVwtc2lkZTsKK+WKqyA+IHRha2VcLWJ5XC1mb3JjZTsKK+aZqCA+IGVhcmx5XC1tb3JuaW5nOwor5pKeID4ga25vY2tcLWFnYWluc3Q7CivmhIggPiBtb3JlXC1hbmRcLW1vcmU7Civmp4cgPiB0aXBcLW9mXC1hXC10cmVlOwor6aeFID4gcmVsYXlcLXN0YXRpb247CivppYUgPiBzdGVhbWVkXC1icmVhZDsKK+eCuCA+IHRvXC1mcnlcLWluXC1vaWw7CivohIggPiBibG9vZFwtdmVzc2VsczsKK+e7qiA+IGVuZFwtb2ZcLXRocmVhZDsKK+mjvCA+IHJhaXNlXC1hbmltYWxzOwor5qKTID4gY2F0YWxwYVwtb3ZhdGE7CivogowgPiBtdXNjbGVcLXRpc3N1ZTsKK+S9qSA+IGJlbHRcLW9ybmFtZW50Owor572yID4gcHVibGljXC1vZmZpY2U7CivmkK0gPiBqb2luXC10b2dldGhlcjsKK+mglyA+IGxlYW5cLW9uZVwtc2lkZTsKK+aglyA+IGNoZXN0bnV0XC10cmVlOwor5qGRID4gbXVsYmVycnlcLXRyZWU7CivohIkgPiBibG9vZFwtdmVzc2VsczsKK+e+qSA+IHJpZ2h0XC1jb25kdWN0Owor6Z6EID4gdG9cLXdvcmtcLWhpZGVzOwor5p2TID4gaGFuZGxlXC1vZlwtY3VwOwor5L2DID4gdGVuYW50XC1mYXJtZXI7CivmmIYgPiBlbGRlclwtYnJvdGhlcjsKK+i0oSA+IG9mZmVyXC10cmlidXRlOwor5ou8ID4gam9pblwtdG9nZXRoZXI7Civmm4cgPiBiZWNvbWVcLWNsb3VkeTsKK+S6mSA+IGV4dGVuZFwtYWNyb3NzOwor5LqYID4gZXh0ZW5kXC1hY3Jvc3M7Civor54gPiBiZWFyXC1jaGlsZHJlbjsKK+aZtCA+IGNsZWFyXC13ZWF0aGVyOwor5raoID4gcmlzZVwtaW5cLXByaWNlOwor6ZecID4gZnJvbnRpZXJcLXBhc3M7Civnt5IgPiBlbmRcLW9mXC10aHJlYWQ7CivplqIgPiBmcm9udGllclwtcGFzczsKK+WhkSA+IG1vZGVsXC1pblwtY2xheTsKK+e2kyA+IGNsYXNzaWNcLXdvcmtzOwor57WMID4gY2xhc3NpY1wtd29ya3M7CivmtaYgPiBiYW5rXC1vZlwtcml2ZXI7Civnv7AgPiB3cml0aW5nXC1icnVzaDsKK+exlCA+IGJhbWJvb1wtYmFza2V0Owor6L6wID4gZWFybHlcLW1vcm5pbmc7CivmhY4gPiBhY3RcLXdpdGhcLWNhcmU7CivojokgPiB3aGl0ZVwtamFzbWluZTsKK+aNlyA+IG1ha2VcLXByb2dyZXNzOwor562GID4gd3JpdGluZ1wtYnJ1c2g7Civlk5cgPiBydXNoaW5nXC1zb3VuZDsKK+WhjCA+IGZhbGxcLWluXC1ydWluczsKK+erliA+IHBlcnBlbmRpY3VsYXI7Civnpq4gPiBzb2NpYWxcLWN1c3RvbTsKK+mZlSA+IG1vdW50YWluXC1wYXNzOwor5oOaID4gYWJzZW50XC1taW5kZWQ7Civor4AgPiB0YWtlXC1sZWF2ZVwtb2Y7Civmt4AgPiBzaGFsbG93XC13YXRlcjsKK+a3mCA+IHdhc2hcLWluXC1zaWV2ZTsKK+eRsCA+IGV4dHJhb3JkaW5hcnk7CivlnqsgPiBhZHZhbmNlXC1tb25leTsKK+eBtiA+IGtpdGNoZW5cLXJhbmdlOwor5q+TID4gZ2l2ZVwtYmlydGhcLXRvOwor5ZKnID4gc3RyZXRjaFwtbW91dGg7CivlpY4gPiBzdHJpZGVcLW9mXC1tYW47CivmtL0gPiB0b1wtYmxlbmRcLXdpdGg7CivnkbYgPiBwcmVjaW91c1wtamFkZTsKK+mSsCA+IHJhcmVcLXRyZWFzdXJlOwor55GbID4gbHVzdGVyXC1vZlwtZ2VtOwor6aaSID4gc3RlYW1lZFwtYnJlYWQ7CivppbIgPiByYWlzZVwtYW5pbWFsczsKK+auiSA+IGRpZVwtZm9yXC1jYXVzZTsKK+ihmSA+IHB1YmxpY1wtb2ZmaWNlOwor5ZSsID4gdG9cLWludGltaWRhdGU7CivnmKogPiBzaHJpdmVsbGVkXC11cDsKK+WUhiA+IG1ha2VcLW1pc2NoaWVmOwor5bKaID4gbW91bnRhaW5cLW1pc3Q7CivmoaYgPiB0eXBlXC1vZlwtYmlyY2g7Civmtp8gPiBmbG93aW5nXC13YXRlcjsKK+WUlCA+IGhvbGRcLWluXC1tb3V0aDsKK+mjlSA+IHNvdW5kXC1vZlwtd2luZDsKK+WdtyA+IGNsb2RcLW9mXC1lYXJ0aDsKK+mRqyA+IHVzZWRcLWluXC1uYW1lczsKK+esiyA+IGJhbWJvb1wtc2hvb3RzOwor6I2DID4gYXJvbWF0aWNcLWhlcmI7Civnr5MgPiBiYW1ib29cLWJhc2tldDsKK+mmhCA+IGR1bXBsaW5nXC1zb3VwOwor56m5ID4gaGlnaFwtYW5kXC12YXN0Owor5byIID4gY2hpbmVzZVwtY2hlc3M7Civogb8gPiB3cml0aW5nXC1icnVzaDsKK+mpriA+IGNhcnJ5XC1vblwtYmFjazsKK+euqSA+IGJhbWJvb1wtYmFza2V0Owor6IqlID4gbXVzdGFyZFwtcGxhbnQ7Civpqb8gPiByZWxheVwtc3RhdGlvbjsKK+eCnCA+IGJyaWxsaWFudFwtcmVkOwor5bKcID4gcm9ja1wtbW91bnRhaW47CivnuqsgPiB0aHJlYWRcLW5lZWRsZTsKK+ahgCA+IGNoaWNrZW5cLXJvb3N0Owor5ZmZID4gaG9sZFwtaW5cLW1vdXRoOwor56+dID4gYmFtYm9vXC1iYXNrZXQ7Civmi64gPiBsYWJvcmluZ1wtaGFyZDsKK+iMiSA+IHdoaXRlXC1qYXNtaW5lOwor57qlID4gaW5mZXJpb3JcLXNpbGs7CivmmJkgPiBiZWNvbWVcLWNsb3VkeTsKK+W/pCA+IGluc3Vib3JkaW5hdGU7CivpuL4gPiBmYWJ1bG91c1wtYmlyZDsKK+WYgSA+IHRvXC1iZVwtZ3JpZXZlZDsKK+i+jiA+IGFcLXN1cHBseVwtY2FydDsKK+iKqyA+IGRhcGhuZVwtZ2Vua3dhOwor5LynID4gdnVsZ2FyXC1wZXJzb247Civms6AgPiBuaWNlXC1hbmRcLWNvb2w7CivnuLsgPiBoYWx0ZXJcLWZvclwtb3g7CivouL0gPiB0b1wtd2Fsa1wtYWxvbmU7Civota0gPiByZWRkaXNoXC1icm93bjsKK+migCA+IHRhbGxcLWFuZFwtc2xpbTsKK+afmCA+IGFcLXRob3JueVwtdHJlZTsKK+iwlCA+IGhvbmVzdFwtc3BlZWNoOwor6aqTID4gcGllYmFsZFwtaG9yc2U7CivlsqsgPiBtb3VudGFpblwtcGVhazsKK+W0pyA+IGhpZ2hcLW1vdW50YWluOwor6YWaID4gY2FyYm9saWNcLWFjaWQ7CivlpKQgPiBkaXN0YW50XC1wbGFjZTsKK+aajCA+IGluXC1vcHBvc2l0aW9uOwor5r+RID4gc3dpZnRcLWN1cnJlbnQ7CivmgI0gPiB0b1wtYmVcLWFzaGFtZWQ7CivotL0gPiBnaWZ0XC1zdXBlcmlvcjsKK+avliA+IGd1YXJkXC1hZ2FpbnN0Owor6L+TID4gdG9cLWdvXC10b1wtbWVldDsKK+avtSA+IGxvbmdcLWZlYXRoZXJzOwor552aID4gY29ybmVyXC1vZlwtZXllOwor5q+9ID4gYVwtc2h1dHRsZWNvY2s7Civlg7MgPiBtaW5vcml0eVwtbmFtZTsKK+mqkCA+IHBpZWJhbGRcLWhvcnNlOwor6L6PID4gaHVic1wtb2ZcLXdoZWVsOwor5peGID4gZmxhZ1wtb3JuYW1lbnQ7CivojYcgPiBhXC13YXRlclwtcGxhbnQ7Civlja4gPiBtZWFzdXJpbmdcLWN1cDsKK+mroSA+IHRvXC1zaGVhclwtdHJlZTsKK+mznCA+IG1hbmRhcmluXC1maXNoOwor6byNID4gbGFyZ2VcLXJlcHRpbGU7CivnrKsgPiBwbGFua3NcLW9mXC1iZWQ7CivnvKEgPiBhXC1icmlkYWxcLXZlaWw7Civnu6ggPiBjb2Fyc2VcLXBvbmdlZTsKK+iKsCA+IHdhdGVyXC1jYWx0cm9wOwor6a2DID4gZHJvdWdodFwtZGVtb247CivoiLMgPiBzdGVyblwtb2ZcLXNoaXA7CivlsaYgPiBzdHJhd1wtc2FuZGFsczsKK+iTkCA+IHN0cmF3XC1iZWRcLW1hdDsKK+mKjiA+IGV5ZVwtb2ZcLWFuXC1heGU7CivphqMgPiBjYXJib2h5ZHJhdGVzOwor6JuRID4gYVwtbWFyaW5lXC1jcmFiOwor5qSgID4gd29vZGVuXC10YWJsZXQ7CivlqrggPiBhblwtdWdseVwtd29tYW47CivppocgPiBzdGlyXC1hbmRcLWNvb2s7CivnlJkgPiBzdWdhclwtcHJvZHVjdDsKK+iWpCA+IGFsbGl1bVwtYmFrZXJpOwor5aGlID4gZHJ5XC1jbGF5XC1sdW1wOwor6byJID4gbGFyZ2VcLXJlcHRpbGU7CivpuJ4gPiBmYWJ1bG91c1wtYmlyZDsKK+m1qSA+IG93bFwtbGlrZVwtYmlyZDsKK+mxliA+IG1hbmRhcmluXC1maXNoOwor6auDID4gc2hvdWxkZXJcLWJvbmU7CivpqqogPiBjcm9va2VkXC1ib25lczsKK+mpmyA+IHJlbGF5XC1zdGF0aW9uOwor6aiPID4gcGllYmFsZFwtaG9yc2U7CivpqIUgPiBwaWViYWxkXC1ob3JzZTsKK+mmsSA+IGNhcnJ5XC1vblwtYmFjazsKK+mmoyA+IGZyYWdyYW50XC1vZG9yOwor6aSnID4gc3RlYW1lZFwtYnJlYWQ7CivppJsgPiBkdW1wbGluZ1wtc291cDsKK+mkmiA+IHByZXBhcmVkXC1tZWF0Owor6aK8ID4gc291bmRcLW9mXC13aW5kOwor6aCOID4gdGFsbFwtYW5kXC1zbGltOwor6Z6uID4gbGVhdGhlclwtc2hvZXM7CivpnJ0gPiBkcm9wc1wtb2ZcLXJhaW47CivpmZ0gPiBtb3VudGFpblwtcGFzczsKK+mTliA+IHBlcnNvbicnc1wtbmFtZTsKK+mMoSA+IGFcLWtpbmRcLW9mXC1wZW47Civpi64gPiBwZXJzb24nJ3NcLW5hbWU7CivpiLogPiByYXJlXC10cmVhc3VyZTsKK+mIhCA+IGFcLXdpbmVcLWZsYWdvbjsKK+mHrSA+IHRpcmVcLW9mXC13aGVlbDsKK+mGqCA+IGRyZWdzXC1vZlwtd2luZTsKK+i+oSA+IHJlY3JpbWluYXRpb247CivovY8gPiBzbGVlcGluZ1wtY2FydDsKK+i8syA+IGh1YnNcLW9mXC13aGVlbDsKK+i8nCA+IGFcLXN1cHBseVwtY2FydDsKK+i3riA+IGhhc3R5XC13YWxraW5nOwor6LSJID4gZWFybmVzdFwtbW9uZXk7CivotIQgPiBnaWZ0XC1zdXBlcmlvcjsKK+izriA+IGZhcmV3ZWxsXC1naWZ0Owor6LKiID4gb2ZmZXJcLXRyaWJ1dGU7Civoro0gPiBob25lc3RcLXNwZWVjaDsKK+iuhiA+IHRvXC1leGFnZ2VyYXRlOwor6KyNID4gaHVtbWluZ1wtc291bmQ7Civoq6QgPiBob25lc3RcLXNwZWVjaDsKK+irlSA+IHRvXC1pbnRpbWlkYXRlOwor6Ka2ID4gdG9cLWxvb2tcLWFib3V0Owor6KaUID4gdG9cLXNlYXJjaFwtZm9yOwor6KWaID4gZ3JhdmVcLWNsb3RoZXM7Civoo4wgPiBsaW5lZFwtZ2FybWVudDsKK+ihhyA+IGJsb29kXC12ZXNzZWxzOwor6KC1ID4gbGFyZ2VcLXR1cnRsZXM7Civonr4gPiB0aGVcLWVhcnRod29ybTsKK+iepSA+IHRoZVwtaG91c2VcLWZseTsKK+iemSA+IGdydWJzXC1pblwtd29vZDsKK+ibhSA+IGFcLWNhdGVycGlsbGFyOwor6JqgID4gcGVyc29uJydzXC1uYW1lOwor6JivID4gdG9cLXRvc3NcLWFib3V0Owor6JSOID4gdGhlYVwtc2luZW5zaXM7Civok6cgPiBiYW1ib29cLWJhc2tldDsKK+iRvSA+IHR5cGVcLW9mXC1ncmFpbjsKK+iPvCA+IHJ1c2hcLW9yXC1zZWRnZTsKK+iPuiA+IGFsdGhhZWFcLXJvc2VhOwor6I+RID4gdG9cLXdlZWRcLWdyYXNzOwor6I6nID4gZWRpYmxlXC1ncmVlbnM7CivojYggPiB0aGVhXC1zaW5lbnNpczsKK+iMpSA+IHJ1YnVzXC10b2trdXJhOwor6IuYID4gaW5kaWFuXC1tYWxsb3c7CivohKUgPiBwZWx2aWNcLWNhdml0eTsKK+iDsiA+IGh5ZHJveHlsYW1pbmU7CivnvbMgPiB3b29kZW5cLXNjcmVlbjsKK+e8hyA+IHJlZGRpc2hcLWNvbG9yOwor57itID4gYVwtYnJpZGFsXC12ZWlsOwor57e5ID4gcmVkZGlzaFwtY29sb3I7Civnt5YgPiBlbmRcLW9mXC10aHJlYWQ7CivntoggPiBjb2Fyc2VcLXBvbmdlZTsKK+e0iSA+IHRocmVhZFwtbmVlZGxlOwor57SHID4gaW5mZXJpb3JcLXNpbGs7Civns60gPiByaWNlXC1kdW1wbGluZzsKK+exviA+IHVuaHVsbGVkXC1yaWNlOwor57GuID4gYmFtYm9vXC1iYXNrZXQ7CivnsZwgPiBiYW1ib29cLXNoZWF0aDsKK+ewjSA+IGJhbWJvb1wtYmFza2V0Owor566oID4gYmFtYm9vXC1zaGVhdGg7CivnrLUgPiBhXC1iYW1ib29cLWZvcm07CivnrK0gPiBiYW1ib29cLXNjcmVlbjsKK+erqiA+IHBlcnBlbmRpY3VsYXI7CivnoJ4gPiB0b1wtc21hc2hcLXJvY2s7Civnn54gPiBib3JlXC13aXRoXC1hd2w7Civnm6ogPiB0b1wtdG9zc1wtYWJvdXQ7CivnmZ8gPiBzaHJpdmVsbGVkXC11cDsKK+eVpyA+IGFwcHJveGltYXRlbHk7Civnk4wgPiBleHRyYW9yZGluYXJ5Owor55KfID4gbHVzdGVyXC1vZlwtZ2VtOwor55KCID4gamFkZVwtb3JuYW1lbnQ7CivnkbMgPiBsdXN0ZXJcLW9mXC1nZW07CivnkaQgPiBwcmVjaW91c1wtamFkZTsKK+eQlSA+IHR5cGVcLW9mXC1wZWFybDsKK+ePriA+IGphZGVcLW9ybmFtZW50Owor542ZID4gZGllXC12aW9sZW50bHk7CivniYEgPiBtb29yaW5nXC1zdGFrZTsKK+eGsCA+IGdyZWF0XC1kcm91Z2h0Owor54WSID4gYnJpbGxpYW50XC1yZWQ7CivngKggPiBzd2lmdFwtY3VycmVudDsKK+a8oyA+IGZsb3dpbmdcLXdhdGVyOwor5rWsID4gbmF1dGljYWxcLW1pbGU7CivmtIogPiBmbG93aW5nXC13YXRlcjsKK+avvyA+IGxvbmdcLWZlYXRoZXJzOwor5qy1ID4gdG9cLXRyZWF0XC13ZWxsOwor5qyTID4gYVwtY3Jvc3NcLXBpZWNlOwor5quMID4gYVwta2luZFwtb2ZcLWhvZTsKK+aqriA+IGJsb2NrXC1vZlwtd29vZDsKK+aouiA+IHR5cGVcLW9mXC1iaXJjaDsKK+anpyA+IHdvb2RlblwtdGFibGV0Owor5qaMID4gd29vZGVuXC1sYWRkZXI7CivmpZkgPiBuYW1lXC1vZlwtcGxhbnQ7CivmpJsgPiB0eXBlXC1vZlwtYmlyY2g7CivmorwgPiBibG9ja1wtb2ZcLXdvb2Q7CivmorkgPiB0aGVcLWFyZWNhXC1udXQ7Civmoo4gPiBzaWNrbGVcLWhhbmRsZTsKK+agsCA+IGFcLWJhbWJvb1wtcmFmdDsKK+adriA+IHdvb2RcLXNoYXZpbmdzOwor5pypID4ga3d1a3llbFw6XC1yYW5rOwor5pCiID4gdG9cLXN0aWNrXC1pbnRvOwor5o6tID4gdG9cLW1hbmlwdWxhdGU7CivmjLYgPiBob2xkXC1pblwtaGFuZHM7Civmi5UgPiB0b1wtZHJhZ1wtYWZ0ZXI7CivmioMgPiB0b1wtY2xhcFwtaGFuZHM7CivmiLogPiBzdG9uZVwtYm9hcmRlcjsKK+aIuSA+IGluXC1kaWZmaWN1bHR5Owor5oS8ID4gYWN0XC13aXRoXC1jYXJlOwor5oSqID4gdG9cLWJlXC1ncmlldmVkOwor5oShID4gYWJzZW50XC1taW5kZWQ7CivmgL4gPiBtb3VudGFpblwtbmFtZTsKK+W9vSA+IGdvXC10b1wtYW5kXC1mcm87CivlvbIgPiB5ZWxsb3dcLWRyYWdvbjsKK+W9lCA+IHRvXC1jYXJ2ZVwtd29vZDsKK+W3tSA+IG1lYXN1cmluZ1wtY3VwOwor5bewID4gYW5cLWF0b21cLWdyb3VwOwor5bevID4gYW5cLWF0b21cLWdyb3VwOwor5beqID4gcGVyc29uJydzXC1uYW1lOwor5ba9ID4gbW91bnRhaW5cLXBlYWs7CivltZAgPiBtb3VudGFpblwtbWlzdDsKK+W0jCA+IG1vdW50YWluXC1uYW1lOwor5bOgID4gbW91bnRhaW5cLXBhc3M7Civls4IgPiBuYW1lXC1vZlwtcGxhY2U7Civls4AgPiBtb3VudGFpblwtcGVhazsKK+WyviA+IG1vdW50YWluXC1wYXNzOwor5bGpID4gc3RyYXdcLXNhbmRhbHM7CivlsaggPiBzdHJhd1wtc2FuZGFsczsKK+WvgCA+IGZldWRhbFwtZXN0YXRlOwor5aqiID4gYmVcLWplYWxvdXNcLW9mOwor5aKKID4gYWR2YW5jZVwtbW9uZXk7CivloZAgPiBtb2RlbFwtaW5cLWNsYXk7CivloLogPiBwZXJzb24nJ3NcLW5hbWU7CivlnrsgPiBhblwtZW1iYW5rbWVudDsKK+WamiA+IGFyZ3VtZW50YXRpdmU7CivlkqEgPiBzaWRlXC1vZlwtbW91dGg7Civlh58gPiB0b1wtYmVcLXJ1ZGVcLXRvOwor5YS5ID4gdG9cLWFjY3VtdWxhdGU7CivlhLIgPiB0b1wtc2F2ZVwtbW9uZXk7CivlhJsgPiB0b1wtc2tpcFwtYWJvdXQ7CivlgpYgPiB2dWxnYXJcLXBlcnNvbjsKK+WCkiA+IHBlcnNvbmFsXC1uYW1lOwor5YGKID4gdG9cLXdhbGtcLWFsb25lOwor5L6CID4gdG9cLWNvbW1pc3Npb247CivkuaggPiB0aGVcLWJlZ2lubmluZzsKK+S2miA+IGRlY2F5ZWRcLXRvb3RoOwor5LaIID4gYVwta2luZFwtb2ZcLXJhdDsKK+S2gyA+IGFcLWtpbmRcLW9mXC1yYXQ7Civktb8gPiBhXC1zaWxlbnRcLWRydW07CivktYEgPiBkZWNheWVkXC1kb3VnaDsKK+S0sCA+IGFcLWZhbWlseVwtbmFtZTsKK+SyuiA+IGJpcmRzXC1zaW5naW5nOwor5LKFID4gdGhlXC1nbG9iZWZpc2g7CivksbggPiBhXC1mYW1pbHlcLW5hbWU7CivksaYgPiB0aGVcLWdsb2JlZmlzaDsKK+SxoSA+IHRoZVwtZ2xvYmVmaXNoOwor5LC9ID4gdGhlXC1nbG9iZWZpc2g7CivksLsgPiB0b1wtY2F0Y2hcLWZpc2g7CivksLEgPiBuYW1lXC1vZlwtYVwtZ29kOwor5K+FID4gYVwtc3dpZnRcLWhvcnNlOwor5K+AID4gYVwtc3dpZnRcLWhvcnNlOwor5K6IID4gdG9cLWdvXC1zd2lmdGx5Owor5K2/ID4gYVwtc3dpZnRcLWhvcnNlOwor5K21ID4gYVwtc3dpZnRcLWhvcnNlOwor5KyfID4gc291bmRcLW9mXC13aW5kOwor5Ku/ID4gYVwtY29vbFwtYnJlZXplOwor5Ku0ID4gd2Vha1wtYW5kXC1kdWxsOwor5KuBID4gdGhlXC1maXJzdFwtc29uOwor5KqrID4gYW5jaWVudFwtbXVzaWM7CivkqqcgPiBhbmNpZW50XC1tdXNpYzsKK+SqkiA+IGxlYXRoZXJcLXBhbnRzOwor5Km+ID4gaGVyYlwtbWVkaWNpbmU7CivkqaQgPiB0b1wtbGVhZFwtYW5cLW94Owor5KmjID4gc2hvZVwtY3VzaGlvbnM7CivkqZ4gPiBhXC1zYWRkbGVcLWZsYXA7CivkqI4gPiBkZWVwXC1hbmRcLWRhcms7Civkp5wgPiBhblwtZW1iYW5rbWVudDsKK+SnliA+IGFcLXNtYWxsXC1tb3VuZDsKK+SmtCA+IG9wZW5cLXRoZVwtZG9vcjsKK+SmsyA+IGJldHdlZW5cLXN0ZXBzOwor5KaxID4gb3BlblwtdGhlXC1kb29yOwor5KajID4gb3BlblwtdGhlXC1kb29yOwor5KahID4gYVwtZG9vclwta2VlcGVyOwor5KWpID4gaG9va3NcLXRvXC1oYW5nOwor5KWaID4gdGhlXC1iZWdpbm5pbmc7CivkpLUgPiBhXC10aW55XC1uZWVkbGU7CivkpJQgPiBkcmVnc1wtb2ZcLXdpbmU7CivkpI4gPiBzb3liZWFuXC1zYXVjZTsKK+SkgyA+IGRydW5rZW5cLXNvdW5kOwor5KOwID4gdG9cLXBvb2xcLW1vbmV5Owor5KKnID4gdG9cLWdvXC1mb3J3YXJkOwor5KKaID4gYVwtbmFycm93XC1wYXRoOwor5KKDID4gdG9cLWFkbWluaXN0ZXI7CivkoaUgPiBhXC1tb3ZpbmdcLWNhcnQ7CivkoYYgPiBhXC1tb3ZpbmdcLWNhcnQ7Civkn5ggPiB0b1wtc3RyYWlnaHRlbjsKK+SfiiA+IHNob3J0XC1zdHJpZGVzOwor5J6BID4gY29ycmVzcG9uZGluZzsKK+SdtiA+IHRvXC1sZXZ5XC10YXhlczsKK+SdrCA+IGFcLXdlYWx0aHlcLW1hbjsKK+SclSA+IHRvXC1leGFnZ2VyYXRlOwor5Ju+ID4gZmFtaWxpYXJcLXdpdGg7Civkm5AgPiBhblwtZXhwcmVzc2lvbjsKK+SalSA+IHRvXC1zZWFyY2hcLW91dDsKK+SZuSA+IHRvXC12b21pdFwtbWlsazsKK+SZpSA+IHNoaW55XC1kcmVzc2VzOwor5JmiID4gc2hvcnRcLXRcLXNoaXJ0Owor5JmgID4gc2hvcnRcLWNsb3RoZXM7CivkmZ8gPiBoZWF2eVwtY2xvdGhlczsKK+SZniA+IHdvb2xlblwtc3RyaW5nOwor5JmFID4gdGhlXC13YWlzdGxpbmU7Civkl5cgPiB0aGVcLW1pbGxpcGVkZTsKK+SXiyA+IGFcLW1hcmluZVwtY3JhYjsKK+SXgyA+IHRoZVwtbWlsbGlwZWRlOwor5JapID4gYVwta2luZFwtb2ZcLWJlZTsKK+SWkSA+IGFcLXdoaXRlXC10aWdlcjsKK+SWhyA+IGZyYWdyYW50XC1oZXJiOwor5JWlID4gaGVyYlwtbWVkaWNpbmU7CivklZYgPiBmcmFncmFudFwtaGVyYjsKK+SUniA+IHRoZVwtYmVnaW5uaW5nOwor5JScID4gaGVyYlwtbWVkaWNpbmU7CivklJogPiBoZXJiXC1tZWRpY2luZTsKK+SUliA+IHdhdGVyXC1jYWx0cm9wOwor5JSTID4gaGVyYlwtbWVkaWNpbmU7CivkkqUgPiBjb3JyZXNwb25kaW5nOwor5JKXID4gZnJhZ3JhbnRcLWhlcmI7Civkko4gPiB3aXRob3V0XC1jb2xvcjsKK+SSjSA+IHdpdGhvdXRcLWNvbG9yOwor5JGyID4gdG9cLXJvd1wtYVwtYm9hdDsKK+SRpSA+IGFcLW1vdmluZ1wtYm9hdDsKK+SQsiA+IGhhbGZcLXJhd1wtbWVhdDsKK+SQmSA+IHRoZVwtZGlhcGhyYWdtOwor5I+YID4gYVwtYmlnXC1hYmRvbWVuOwor5I+EID4gbm90XC10b1wtbGlzdGVuOwor5I29ID4gYVwtZmllcmNlXC1nb2F0Owor5I28ID4gc2FsdGVkXC1tdXR0b247CivkjaogPiBjYXN0cmF0ZWRcLXJhbTsKK+SNpCA+IHRvXC1zdHJhaW5cLW91dDsKK+SMoyA+IHRvXC1hY2N1bXVsYXRlOwor5IyZID4gaGFua1wtb2ZcLXJvcGVzOwor5IyFID4gYVwtdGhpY2tcLXJvcGVzOwor5IumID4gcmF2ZWxsZWRcLXNpbGs7Civki50gPiBhXC10aHJvYXRcLWJhbmQ7Civkir0gPiBhXC1maW5lXC10aHJlYWQ7CivkiqEgPiBzdGVhbWVkXC1icmVhZDsKK+SKlCA+IHBvbGlzaGVkXC1yaWNlOwor5IqEID4gcG9saXNoZWRcLXJpY2U7CivkibAgPiBiYW1ib29cLXNob290czsKK+SJqSA+IGFcLWJhbWJvb1wtd2FyZTsKK+SJqCA+IGJhbWJvb1wtam9pbnRzOwor5Ii+ID4gbW92ZVwtYVwtbGl0dGxlOwor5IizID4gYVwtd2luZG93XC1sZWFmOwor5IeLID4gbmFtZVwtb2ZcLWFcLWdvZDsKK+SGniA+IGRlZXBcLWFuZFwtZGFyazsKK+SGmiA+IHRvXC1nb1wtdGhyb3VnaDsKK+SGlyA+IGRlZXBcLWFuZFwtZGFyazsKK+SFmyA+IGh1c2tzXC1vZlwtcmljZTsKK+SElCA+IGFcLWZhbWlseVwtbmFtZTsKK+SEhyA+IGFcLWZhbWlseVwtbmFtZTsKK+SDuyA+IGFuXC1lbWJhbmttZW50Owor5IOzID4gZmFsbGluZ1wtc3RvbmU7CivkgrYgPiB0aGVcLWNydXN0YWNlYTsKK+SClyA+IHRvXC1iZVwtY2FyZWZ1bDsKK+SCjiA+IGFcLXNob3J0XC1zcGVhcjsKK+SCgSA+IGFuXC1hbmdyeVwtbG9vazsKK+SBmSA+IGVsb3F1ZW50XC1leWVzOwor5ICuID4gc2lnaHRcLWJsdXJyZWQ7CivkgK0gPiB3aXRoXC1iaWdcLWV5ZXM7CivkgKcgPiBzaWdodFwtYmx1cnJlZDsKK+SAnyA+IHNpZ2h0XC1ibHVycmVkOwor5ICWID4gdG9cLWxvb2tcLXVwXC10bzsKK+SAlSA+IGFuZ3J5XC1nbGFuY2VzOwor47+sID4gbmFzYWxcLWRpc2Vhc2U7Civjv5wgPiBzaHJpdmVsbGVkXC11cDsKK+O+vSA+IHN3ZWxsaW5nXC1mZWV0Owor472yID4gZ3JpcGluZ1wtY29saWM7CivjvbEgPiBncmlwaW5nXC1jb2xpYzsKK+O9hyA+IHVuYnVybnRcLXRpbGVzOwor47y1ID4gYVwtc21hbGxcLWJhc2luOwor47yfID4gYVwtdGlsZWRcLWhvdXNlOwor47yOID4gYVwtc21hbGxcLW1lbG9uOwor47u+ID4gamFkZVwtYXJ0aWNsZXM7CivjuqkgPiBqYWRlXC1hcnRpY2xlczsKK+O6iCA+IHRvXC1nb1wtaHVudGluZzsKK+O5uSA+IGFcLWtpbmRcLW9mXC1kb2c7CivjubUgPiBhXC1odW50aW5nXC1kb2c7CivjubMgPiBhXC1raW5kXC1vZlwtYXBlOwor47mjID4gYVwta2luZFwtb2ZcLWRvZzsKK+O4hCA+IGFcLXJhZ2luZ1wtZmlyZTsKK+O3viA+IGJsYXplXC1vZlwtZmlyZTsKK+O3uCA+IGJsYXplXC1vZlwtZmlyZTsKK+O3liA+IHRvXC1zaGluZVwtdXBvbjsKK+O3lSA+IGhlYXJpbmdcLXNvdW5kOwor47eSID4gdG9cLWNvb2tcLW1lYWxzOwor47aYID4gZnVsbFwtb2ZcLXdhdGVyOwor47WzID4gY3J5c3RhbFwtY2xlYXI7CivjtbEgPiBmbG93aW5nXC13YXRlcjsKK+O1oCA+IHRvXC1ndXNoXC1mb3J0aDsKK+O0vSA+IHdhdGVyXC1jdXJyZW50Owor47S1ID4gd2F0ZXJcLWN1cnJlbnQ7CivjtK8gPiB3YXRlclwtY3VycmVudDsKK+O0riA+IHdhdGVyXC1jdXJyZW50Owor47SrID4gZ3JlYXRcLWZsb3dpbmc7CivjtKggPiB3YXRlclwtY3VycmVudDsKK+O0piA+IHRvXC13YXNoXC1oYW5kczsKK+O0pSA+IGdyZWF0XC1iaWxsb3dzOwor47SSID4gd2F0ZXJcLWN1cnJlbnQ7CivjtJAgPiBncmVhdFwtY3VycmVudDsKK+O0giA+IGdyZWF0XC1iaWxsb3dzOwor47OpID4gZ3JlYXRcLWJpbGxvd3M7CivjspsgPiBoYWlyeVwtYW5pbWFsczsKK+OwuyA+IGFzc2VzXC1icmF5aW5nOwor47CzID4gYXNzZXNcLWJyYXlpbmc7CivjsI8gPiBhXC1iYW1ib29cLXBvbGU7CivjsIwgPiB0b1wtbW9ub3BvbGl6ZTsKK+OvvSA+IHRoZVwtYXJlY2FcLW51dDsKK+OtvyA+IG9ibGlxdWVcLWFuZ2xlOwor462TID4gYVwtcGlsbGFyXC1hcmNoOwor46ysID4gYVwtZmFtaWx5XC1uYW1lOwor46ylID4gdG9cLXN1blwtdG9cLWFpcjsKK+OshCA+IHdhcm1cLWFuZFwtZGFtcDsKK+OrnyA+IGRheVwtYWZ0ZXJcLWRheTsKK+OrmiA+IGVhcmx5XC1tb3JuaW5nOwor46mlID4gZGVsaWNhdGVcLWhhbmQ7CivvqKsgPiByYWlzZVwtYW5pbWFsczsKK+OoniA+IHRvXC1mZWVsXC1hYm91dDsKK++omCA+IHNvY2lhbFwtY3VzdG9tOwor76iSID4gY2xlYXJcLXdlYXRoZXI7Civjp7wgPiB0b1wtZGlzdHJpYnV0ZTsKK+OntyA+IHRvXC13aXBlXC10ZWFyczsKK++nmiA+IGNoZXN0bnV0XC10cmVlOwor46eYID4gdG9cLWFjY3VtdWxhdGU7CivvprYgPiBzb2NpYWxcLWN1c3RvbTsKK+OmqyA+IGxheFwtYW5kXC1jcnVkZTsKK++mkiA+IGZsb3dpbmdcLXdhdGVyOwor46aMID4ga2Vlblwtb3JcLXNoYXJwOwor46aGID4gdG9cLWV4YWdnZXJhdGU7CivjpbwgPiB0b1wtYmVcLW5lYXJcLXRvOwor76W2ID4gYXBwcm94aW1hdGVseTsKK++lsSA+IGVhcmx5XC1tb3JuaW5nOwor46WlID4gYWJzZW50XC1taW5kZWQ7CivjpLAgPiB0b1wtYmVcLWFzaGFtZWQ7CivvpKEgPiBtb3VudGFpblwtbWlzdDsKK++koCA+IGZhYnVsb3VzXC1iaXJkOwor46O/ID4gcGFpbmZ1bGx5XC1zYWQ7Civjo7EgPiBjb21tb25cLXBlb3BsZTsKK+OjpCA+IHRvXC10cmVhZFwtdXBvbjsKK+OjlCA+IHRvXC13YWxrXC1hbG9uZTsKK+OiuyA+IHRvXC1kcmF3XC1hXC1ib3c7CivjopYgPiBhXC1zdG9yZVwtaG91c2U7CivjobcgPiBhXC1mYW1pbHlcLW5hbWU7CivjoLogPiBhXC1maW5lXC10aHJlYWQ7CivjoLQgPiBhXC1waWxsb3dcLWNhc2U7CivjoJsgPiBuYW1lXC1hXC1jb3VudHk7Civjn7YgPiBtb3VudGFpblwtcGVhazsKK+OfsiA+IG1vdW50YWluXC1wZWFrOwor45+tID4gdGhlXC1taW5cLXJpdmVyOwor45+pID4gdGhlXC1taW5cLXJpdmVyOwor4562ID4gdGhlXC1taW5cLXJpdmVyOwor456sID4gY2xvc2VcLW9yXC1uZWFyOwor456LID4gc29mdFwtYW5kXC1tZWVrOwor4527ID4gYmFyZWx5XC1lbm91Z2g7CivjnaYgPiB0b1wtYWNjdW11bGF0ZTsKK+OdkyA+IGNvcnJlc3BvbmRpbmc7CivjnYMgPiB0b1wtYmVhclwtYVwtc29uOwor45uSID4gY2FuXC1ub3RcLXNwZWFrOwor45uOID4gYW5cLXVnbHlcLXdvbWFuOwor45q0ID4gYVwtcHJldHR5XC1naXJsOwor45ibID4gYVwtZGVlcFwtdmFsbGV5Owor45iTID4gcHJvbGl4XC1zcGVlY2g7CivjmIkgPiB0b1wtbWFrZVwtc291bmQ7Civjl7QgPiBkb2dzXC1maWdodGluZzsKK+OVsCA+IHNvdW5kXC1hbmdyaWx5Owor45WqID4gYmlyZHMnJ1wtY2hpcnBzOwor45WZID4gYVwtd2lseVwtcmFiYml0Owor45WJID4gdG9cLWRpZ1wtYVwtaG9sZTsKK+OUpSA+IGZ1bGxcLW9mXC1hbmdlcjsKK+OTtCA+IHRvXC1jdXRcLWluXC10d287Civjk5YgPiBiaXR0ZXJseVwtY29sZDsKK+OTjyA+IGJpdHRlcmx5XC1jb2xkOwor45OMID4gYml0dGVybHlcLWNvbGQ7CivjkocgPiB0b1wtc2tpcFwtYWJvdXQ7CivjkbwgPiBuYW1lXC1vZlwtYVwtZ29kOwor45GlID4gZGlzcmVzcGVjdGZ1bDsKK+OQsCA+IHRvXC1iZWxpZXZlXC1pbjsKK+eesyA+IHB1cGlsXC1vZlwtZXllOwor5LiHID4gdGVuXC10aG91c2FuZDsKK+W4gyA+IGNvdHRvblwtY2xvdGg7CivpgJogPiBwYXNzXC10aHJvdWdoOwor5o+QID4gaG9sZFwtaW5cLWhhbmQ7CivkuqwgPiBjYXBpdGFsXC1jaXR5Owor55SaID4gZ3JlYXRcLWV4dGVudDsKK+WRqCA+IHpob3VcLWR5bmFzdHk7CivlsLsgPiBlbmRcLW9mXC1zcGluZTsKK+WutCA+IHRvXC1lbnRlcnRhaW47CivlrrAgPiB0b1wtc2xhdWdodGVyOwor54qvID4gY29tbWl0XC1jcmltZTsKK+WpoiA+IHNlcnZhbnRcLWdpcmw7Civlj4IgPiB0YWtlXC1wYXJ0XC1pbjsKK+aOjCA+IHBhbG1cLW9mXC1oYW5kOwor5ae/ID4gb25lJydzXC1tYW5uZXI7Civlp4kgPiBlbGRlclwtc2lzdGVyOwor5paXID4gY2hpbmVzZVwtcGVjazsKK+WRvCA+IGJyZWF0aGVcLXNpZ2g7Civlp5AgPiBlbGRlclwtc2lzdGVyOwor6KGdID4gcnVzaFwtYWdhaW5zdDsKK+WftyA+IGhvbGRcLWluXC1oYW5kOwor6J66ID4gc3BpcmFsXC1zaGVsbDsKK+WdiiA+IG5laWdoYm9yaG9vZDsKK+WwvCA+IGJ1ZGRoaXN0XC1udW47CivpvL4gPiBzbm9yZVwtbG91ZGx5Owor5Y+2ID4gdG9cLWhhcm1vbml6ZTsKK+mHjiA+IG9wZW5cLWNvdW50cnk7Civnp7sgPiBjaGFuZ2VcLXBsYWNlOwor5ZSQID4gdGFuZ1wtZHluYXN0eTsKK+engCA+IGVhclwtb2ZcLWdyYWluOwor5omnID4gaG9sZFwtaW5cLWhhbmQ7CivokrIgPiB0eXBlXC1vZlwtcnVzaDsKK+W6hiA+IGNvbmdyYXR1bGF0ZTsKK+iSnyA+IGJldGVsXC1wZXBwZXI7CivmsZcgPiBwZXJzcGlyYXRpb247CivokKwgPiB0ZW5cLXRob3VzYW5kOwor5oucID4gZG9cLW9iZWlzYW5jZTsKK+WPgyA+IHRha2VcLXBhcnRcLWluOwor6JmRID4gYmVcLWNvbmNlcm5lZDsKK+WuiyA+IHNvbmdcLWR5bmFzdHk7Civog4YgPiBnYWxsXC1ibGFkZGVyOwor5YmWID4gc3BsaXRcLWluXC10d287Civlh6QgPiBtYWxlXC1waG9lbml4Owor6K+iID4gaW5xdWlyZVwtaW50bzsKK+iGvSA+IGdhbGxcLWJsYWRkZXI7CivnrZEgPiBhbmNpZW50XC1sdXRlOwor5YG2ID4gYWNjaWRlbnRhbGx5Owor6aO9ID4gZWF0XC1oZWFydGlseTsKK+iDjiA+IHVuYm9yblwtY2hpbGQ7Civmgp8gPiB0b1wtYXBwcmVoZW5kOwor6IKFID4gcGF5XC1yZXNwZWN0czsKK+iCgyA+IHBheVwtcmVzcGVjdHM7Civlp4ogPiBlbGRlclwtc2lzdGVyOwor5L6YID4gZGlzYXBwb2ludGVkOwor56WtID4gc2FjcmlmaWNlXC10bzsKK+i0uiA+IGNvbmdyYXR1bGF0ZTsKK+mlsSA+IGVhdFwtaGVhcnRpbHk7CivlrqogPiBjb25zdGl0dXRpb247CivnopEgPiBzdG9uZVwtdGFibGV0Owor5piMID4gbGlnaHRcLW9mXC1zdW47CivmkLogPiBsZWFkXC1ieVwtaGFuZDsKK+WOpiA+IGJpZ1wtYnVpbGRpbmc7Civku4YgPiBmYWxsXC1mb3J3YXJkOwor5aalID4gc2F0aXNmYWN0b3J5Owor5p2tID4gY3Jvc3NcLXN0cmVhbTsKK+i1oCA+IGdpdmVcLXByZXNlbnQ7CivohZQgPiBjaGVzdFwtY2F2aXR5Owor5a2dID4gZmlsaWFsXC1waWV0eTsKK+esuSA+IHNtYWxsXC1iYW1ib287CivnrJsgPiBiYW1ib29cLWZsdXRlOwor5q2nID4gZm9ya1wtb2ZcLXJvYWQ7Civmi50gPiBkb1wtb2JlaXNhbmNlOwor6YmbID4gbGVhZFwtcGx1bWJ1bTsKK+eplyA+IGVhclwtb2ZcLWdyYWluOwor56mCID4gZWFyXC1vZlwtZ3JhaW47CivlloMgPiBrZWVwXC10YWxraW5nOwor6IixID4gaG9sZFwtb2ZcLXNoaXA7CivphpwgPiB1Z2x5XC1sb29raW5nOwor5oWuID4gYmVcLWNvbmNlcm5lZDsKK+ijmCA+IGZ1clwtZ2FybWVudHM7CivmoL0gPiB0b1wtY3VsdGl2YXRlOwor6K+nID4gYmVcLXN1cnByaXNlZDsKK+mYjiA+IHZpbGxhZ2VcLWdhdGU7CivmhKMgPiBiZVwtaW5cLWFcLWRhemU7CivnkKogPiB0eXBlXC1vZlwtamFkZTsKK+euqyA+IGJhbWJvb1wtZmx1dGU7CivlqKUgPiBiZVwtYmVhdXRpZnVsOwor5ZKqID4gc291bmRcLW9mXC1jYXQ7CivmuJcgPiBzb2FrXC10aHJvdWdoOwor6JGrID4gYm90dGxlXC1nb3VyZDsKK+WdqiA+IGxldmVsXC1ncm91bmQ7CivlnZ4gPiBlbnRyZW5jaG1lbnQ7CivmgIUgPiBkaXNhcHBvaW50ZWQ7CivmqaEgPiBjaGVzdG51dFwtb2FrOwor57WuID4gd2FzdGVcLWNvdHRvbjsKK+i3hCA+IHdhbGtcLXJhcGlkbHk7CivlsbkgPiB0b1wtcmlzZVwtaGlnaDsKK+aDmCA+IGRpc2NvbmNlcnRlZDsKK+ecuCA+IHB1cGlsXC1vZlwtZXllOwor5o+pID4gcnViXC1hbmRcLXdpcGU7CivmpaAgPiBuYW1lXC1vZlwtdHJlZTsKK+m6kyA+IGZvb3RcLW9mXC1oaWxsOwor546uID4gdHlwZVwtb2ZcLWphZGU7CivmgbsgPiBmZWVsXC1hbmd1aXNoOwor5qGFID4gbWFzdFwtb2ZcLXNoaXA7CivpqosgPiBnYWxsb3BcLWhvcnNlOwor6ZerID4gdmlsbGFnZVwtZ2F0ZTsKK+i5kiA+IHRvXC1qdW1wXC1vdmVyOwor56WAID4gdG9cLXNhY3JpZmljZTsKK+exgSA+IGJhbWJvb1wtZmx1dGU7Civlr7AgPiBncmVhdFwtZG9tYWluOwor5paTID4gbXVsdGljb2xvcmVkOwor5LyrID4gbG9va1wtdG93YXJkczsKK+i6jyA+IHRyYW1wbGVcLWRvd247Civmsr0gPiBidXlcLWFuZFwtc2VsbDsKK+ePpSA+IGVhclwtb3JuYW1lbnQ7CivnrIYgPiBiYW1ib29cLWZlbmNlOwor6JmsID4geW91bmdcLWRyYWdvbjsKK+aDrCA+IGJlXC1zYXRpc2ZpZWQ7CivnvKggPiBhXC1jaGluXC1zdHJhcDsKK+WKviA+IGV4YW1pbmVcLWludG87CivlmKQgPiBzZWVrXC1mcmllbmRzOwor6K+DID4gc2NvbGRcLWxvdWRseTsKK+WGvSA+IGNvbGRcLWFuZFwtcmF3Owor6aOoID4gaG9zdFwtYmFucXVldDsKK+aAjyA+IGRpc2NvbnRlbnRlZDsKK+WGoiA+IGJ1cmlhbFwtbW91bmQ7CivlqYAgPiBiZVwtYmVhdXRpZnVsOwor5ZezID4gaW50ZXJqZWN0aW9uOwor56KjID4gc3RvbmVcLXRhYmxldDsKK+WulSA+IHN0b25lXC1xdWFycnk7CivogIYgPiBtYW5cLW9mXC1zaXh0eTsKK+mdkyA+IG1ha2VcLXVwXC1mYWNlOwor6JuwID4gdG9cLWhpYmVybmF0ZTsKK+aOvCA+IHRocm93XC1ncm91bmQ7Civlm6QgPiBncmFpblwtYmFza2V0Owor562xID4gZHdhcmZcLWJhbWJvbzsKK+aonyA+IGNhbXBob3JcLXRyZWU7CivpsqUgPiByZWV2ZXMnJ1wtc2hhZDsKK+mAtSA+IHRob3JvdWdoZmFyZTsKK+WytyA+IG1pblwtbW91bnRhaW47CivmnrAgPiBzbW9vdGhcLWJvYXJkOwor5bGQID4gd29vZGVuXC1zaG9lczsKK+iDmyA+IHRoZVwtc2hvdWxkZXI7CivpuZ4gPiBzcGFycm93XC1oYXdrOwor54qEID4gYW5pbWFsXC1ob3JuczsKK+i3uSA+IHdhbmRlclwtYWJvdXQ7CivmmLEgPiBicmlnaHRcLWxpZ2h0Owor5qC+ID4gbmFtZVwtb2ZcLXRyZWU7CivmuYQgPiB3YXRlcicnc1wtZWRnZTsKK+iPhSA+IGNvYXJzZVwtZ3Jhc3M7Civnu7sgPiBhZmZlY3Rpb25hdGU7Civnr4EgPiBiYW1ib29cLWdyb3ZlOwor6LWFID4gcHJlcGFyZWRcLWZvcjsKK+akgSA+IG91dGVyXC1jb2ZmaW47CivnurAgPiBzcG9pbGVkXC1zaWxrOwor6byLID4gbGFyZ2VcLXR1cnRsZTsKK+mGkCA+IHB1cmVzdFwtY3JlYW07CivpvokgPiB1bmV2ZW5cLXRlZXRoOwor6Iu7ID4ga2luZFwtb2ZcLWhlcmI7CivprKMgPiBob3JzZScnc1wtbWFuZTsKK+e8lyA+IGZpc2hpbmdcLWxpbmU7CivmuasgPiBhXC1zbWFsbFwtcG9uZDsKK+S7nyA+IG9uZVwtdGhvdXNhbmQ7CivomrYgPiBraW5kXC1vZlwtY2xhbTsKK+eToCA+IGJvdHRsZVwtZ291cmQ7Civom4QgPiBtb2xlXC1jcmlja2V0Owor5q+CID4gaHViXC1vZlwtd2hlZWw7CivnlZogPiBzdHJhd1wtYmFza2V0Owor5rSEID4gYVwtYmFja1wtd2F0ZXI7Civpo6cgPiBldmVuaW5nXC1tZWFsOwor6YaqID4gdW5jbGVhclwtd2luZTsKK+mqnSA+IGZhbW91c1wtaG9yc2U7CivpqpIgPiBtb3RoZXJcLWhvcnNlOwor5oeUID4gYmVcLWFmcmFpZFwtb2Y7CivlipMgPiBjdXRcLW9mZlwtbm9zZTsKK+i4lCA+IHRvXC1nZXRcLWFoZWFkOwor6aKhID4gdGhlXC1mb3JlaGVhZDsKK+a9siA+IGRyaXZpbmdcLXJhaW47CivnvK8gPiBzaWxrXC1mYWJyaWNzOwor5oOdID4gZGlzYXBwb2ludGVkOwor55STID4gZ2xhemVkXC10aWxlczsKK+iNrCA+IGFcLXBsYW50XC1uYW1lOwor5p+SID4gbnVtYmVyXC1zZXZlbjsKK+eYsyA+IHRvXC1iZVwtaGVhbGVkOwor6LCHID4gc3BlYWtcLWlsbFwtb2Y7CivkuYcgPiB0b1wtZGVwZW5kXC1vbjsKK+m+pCA+IHRvXC1oYXJtb25pemU7CivpvawgPiB1bmV2ZW5cLXRlZXRoOwor6b2GID4gc3R1ZmZlZFwtbm96ZTsKK+m9gSA+IHNub3JlXC1sb3VkbHk7CivpvL0gPiBjbG9nZ2VkXC1ub3NlOwor6bu/ID4gbGFyZ2VcLXR1cnRsZTsKK+m6lSA+IG11bnRqYWNcLWRlZXI7Civpt4IgPiBzcGFycm93XC1oYXdrOwor6bOzID4gbWFsZVwtcGhvZW5peDsKK+mzryA+IG1hbGVcLXBob2VuaXg7Civps5AgPiB0aGVcLW5hdXRpbHVzOwor6bGRID4gdGhlXC1zdHVyZ2VvbjsKK+mxgiA+IG5hbWVcLW9mXC1maXNoOwor6bCpID4gdGhlXC1uYXV0aWx1czsKK+mwoyA+IHJlZXZlcycnXC1zaGFkOwor6bCDID4gbmFtZVwtb2ZcLWZpc2g7CivpsIEgPiBuYW1lXC1vZlwtZmlzaDsKK+mtpiA+IHNoYXJrXC1mYW1pbHk7CivpraIgPiBuYW1lXC1vZlwtZmlzaDsKK+mtnyA+IHRoZVwtbmF1dGlsdXM7CivprLUgPiBiaWdcLWlyb25cLXBvdDsKK+mskCA+IGhvcnNlJydzXC1tYW5lOwor6ayFID4gdW5rZW1wdFwtaGFpcjsKK+mpiCA+IGJsYWNrXC1ob3JzZXM7CivpqK4gPiBmYW1vdXNcLWhvcnNlOwor6aiNID4gbW90aGVyXC1ob3JzZTsKK+mohiA+IGRpdmluZVwtaG9yc2U7CivpqIEgPiBnYWxsb3BcLWhvcnNlOwor6aecID4gc3Ryb25nXC1ob3JzZTsKK+mnlyA+IGNoYXR0ZXJcLW1hcms7CivppZcgPiBob3N0XC1iYW5xdWV0Owor6aSAID4gdGFpbnRlZFwtZm9vZDsKK+mjsSA+IGV2ZW5pbmdcLW1lYWw7Civpoq0gPiBzd2F5XC1pblwtd2luZDsKK+mhmSA+IHRoZVwtZm9yZWhlYWQ7CivpoJ8gPiB0aGVcLWZvcmVoZWFkOwor6Z6mID4gbGVhdGhlclwtc3RhcDsKK+mdmiA+IG1ha2VcLXVwXC1mYWNlOwor6ZyRID4gYmVcLW1vaXN0ZW5lZDsKK+maliA+IGVudHJlbmNobWVudDsKK+mZgSA+IGFcLXN0ZWVwXC1iYW5rOwor6ZeRID4gdGhlXC1kb29yc2lsbDsKK+mWuyA+IHZpbGxhZ2VcLWdhdGU7CivploYgPiB2aWxsYWdlXC1nYXRlOwor6ZWoID4gcHJhc2VvZHltaXVtOwor6ZCgID4gcHJhc2VvZHltaXVtOwor6Y+3ID4gcHJvdGFjdGluaXVtOwor6Y2KID4gc21lbHRcLW1ldGFsczsKK+mMrCA+IHNtZWx0XC1tZXRhbHM7CivpjIggPiB0b1wtYmVuZFwtaXJvbjsKK+mHqiA+IGFuXC1hbG1zXC1ib3dsOwor6Ya9ID4ga2luZFwtb2ZcLXdpbmU7Civpg5kgPiB0b1wtYmVcLWV4aWxlZDsKK+mCsiA+IGdvb2RcLWxvb2tpbmc7Civov6MgPiB0b1wtbGVhcFwtb3ZlcjsKK+i9giA+IGh1Ylwtb2ZcLXdoZWVsOwor6LqqID4gdHJhbXBsZVwtZG93bjsKK+i6miA+IHdhbmRlclwtYWJvdXQ7CivoupkgPiB0cmFtcGxlXC1kb3duOwor6LmjID4gdG9cLWp1bXBcLW92ZXI7CivouYwgPiB3YWxrXC1yYXBpZGx5Owor6Li8ID4gdG9cLWZhbGxcLWZsYXQ7CivouKQgPiBidXR0XC1hZ2FpbnN0Owor6LSIID4gZ2l2ZVwtcHJlc2VudDsKK+iziSA+IHRvXC1naXZlXC1hbG1zOwor6LOFID4gcHJlcGFyZWRcLWZvcjsKK+izgCA+IGNvbmdyYXR1bGF0ZTsKK+iyhiA+IHNtYWxsXC1iYWRnZXI7CivosbYgPiBjYXN0cmF0ZVwtcGlnOwor6Kq+ID4gc3BlYWtcLWdlbnRseTsKK+iqtiA+IHNwZWFrXC1pbGxcLW9mOwor6KmiID4gaW5xdWlyZVwtaW50bzsKK+iotiA+IHNjb2xkXC1sb3VkbHk7CivopZsgPiBmaW5lXC1jbG90aGVzOwor6KWGID4gaG9vZFwtb3JcLWNvd2w7Civon4QgPiB0b1wtaGliZXJuYXRlOwor6JmvID4geW91bmdcLWRyYWdvbjsKK+iRnCA+IHNtaWxheFwtY2hpbmE7CivokKkgPiBzY2FuZGVudFwtaG9wOwor6JCYID4gbmFwaHRoYW5sZW5lOwor6I+dID4gc21pbGF4XC1jaGluYTsKK+iOpiA+IGp1bmdsZVwtZ3Jhc3M7CivoiqcgPiBjaGVzdG51dFwtb2FrOwor6IqaID4gZ3JlZW5cLXNwcm91dDsKK+iKkSA+IHdoaXRlXC1taWxsZXQ7CivoiZkgPiBob2xkXC1vZlwtc2hpcDsKK+iGlyA+IHVnbHlcLWFuZFwtZmF0Owor6IKZID4gYVwtc21hbGxcLXdvcm07CivnvoAgPiBmaXNoaW5nXC10cmFwOwor5722ID4gZmlzaGluZ1wtdHJhcDsKK+e6kyA+IGFcLWNoaW5cLXN0cmFwOwor57qBID4gc2hhZGVcLW9mXC1yZWQ7CivnuZkgPiB0b1wtaW50ZXJwcmV0Owor57mSID4gc2lsa1wtZmFicmljczsKK+e4lSA+IHRhbmdsZWRcLWhlbXA7Civnt6EgPiBmaXNoaW5nXC1saW5lOwor57ajID4gYWZmZWN0aW9uYXRlOwor57SVID4gc3BvaWxlZFwtc2lsazsKK+eymyA+IHBheVwtcmVzcGVjdHM7Civnsa8gPiBiYW1ib29cLWNoZXN0Owor57GfID4gYmFtYm9vXC1mbHV0ZTsKK+evtCA+IGJhbWJvb1wtZmx1dGU7Civnr6AgPiBkd2FyZlwtYmFtYm9vOwor562kID4geW91bmdcLWJhbWJvbzsKK+etjSA+IGJhbWJvb1wtc2hvb3Q7CivnrYUgPiBiYW1ib29cLWJydXNoOwor56mfID4gZWFyXC1vZlwtZ3JhaW47Civnp6wgPiBibGFja1wtbWlsbGV0Owor56WYID4gdG9cLWNhbGN1bGF0ZTsKK+ejoCA+IHNhbFwtYW1tb25pYWM7CivnorYgPiBhXC1mbG9vZFwtZ2F0ZTsKK+egnyA+IHN0b25lXC10YWJsZXQ7Civnn7wgPiBzdG9uZVwtYnJpZGdlOwor552SID4gdG9cLWdsYW5jZVwtYXQ7CivnmqYgPiBicmlnaHRcLXdoaXRlOwor55i6ID4gYW5hbFwtZmlzdHVsYTsKK+eWvyA+IHByaWNrbHlcLWhlYXQ7CivnkYsgPiB0eXBlXC1vZlwtamFkZTsKK+ePuSA+IHR5cGVcLW9mXC1qYWRlOwor546NID4gaWxsXC10ZW1wZXJlZDsKK+eLhiA+IHBla2luZXNlXC1kb2c7CivniYIgPiBmZW1hbGVcLXNoZWVwOwor54e3ID4gZGlzYXBwb2ludGVkOwor54ejID4gZGlzYXBwb2ludGVkOwor5ruyID4gc29ha1wtdGhyb3VnaDsKK+a7iiA+IGFcLXJpdmVyXC1uYW1lOwor5rOWID4gc3RpbGxcLXdhdGVyczsKK+aviCA+IGZlcnRpbGVcLWVnZ3M7CivmrpwgPiBoYWxmXC1zaXR0aW5nOwor5qy/ID4gZGlzY29udGVudGVkOwor5qySID4gbmFtZVwtb2ZcLXRyZWU7CivmqZIgPiB3b29kXC1zdHJlYWtzOwor5qe7ID4gemVsa292YVwtdHJlZTsKK+anqCA+IG91dGVyXC1jb2ZmaW47Civmp5QgPiB3YXRlclwtcHVsbGV5Owor5qWAID4gbmFtZVwtb2ZcLXRyZWU7Civmnp8gPiB3b29kXC1zdHJlYWtzOwor5paVID4gbXVsdGljb2xvcmVkOwor5pScID4gbGVhZFwtYnlcLWhhbmQ7CivmkZwgPiB0aHJvd1wtZ3JvdW5kOwor5pGZID4gdG9cLXRyYW5zcG9ydDsKK+aPkSA+IHRvXC1mYWJyaWNhdGU7CivmiIkgPiBhXC1iYXR0bGVcLWF4ZTsKK+aHjSA+IGJlXC1hZnJhaWRcLW9mOwor5oayID4gY29uc3RpdHV0aW9uOwor5oW2ID4gY29uZ3JhdHVsYXRlOwor5oScID4gYmVcLXNhdGlzZmllZDsKK+aDuyA+IGZlZWxcLWFuZ3Vpc2g7CivmgrUgPiBkaXNhcHBvaW50ZWQ7Civlu7kgPiB0b1wtcGVyc2VjdXRlOwor5buIID4gYmlnXC1idWlsZGluZzsKK+W4qCA+IGhhbmRrZXJjaGllZjsKK+W2oiA+IGhpZ2hcLW9yXC10YWxsOwor5bGnID4gd29vZGVuXC1zaG9lczsKK+WxmCA+IHRoZVwteW91bmdlc3Q7Civlq7IgPiBncmFuZFwtbW90aGVyOwor5aOIID4gZGlzYXBwb2ludGVkOwor5aGiID4gZW50cmVuY2htZW50Owor5Z+cID4gb3BlblwtY291bnRyeTsKK+WatiA+IHNlZWtcLWZyaWVuZHM7Civlma8gPiBpbnRlcmplY3Rpb247Civllq0gPiBjb25kb2xlXC13aXRoOwor5ZKlID4gc291bmRcLW9mXC1jYXQ7CivlkbkgPiB0b1wtZWF0XC1ncmFzczsKK+WPhCA+IHRha2VcLXBhcnRcLWluOwor5Y63ID4gdGhlXC1mb3JlXC1hcm07CivljqQgPiB0b1wtY2FsY3VsYXRlOwor5YujID4gYWNoaWV2ZW1lbnRzOwor5Ym3ID4gdG9cLWxldmVsXC1vZmY7CivliZcgPiB0b1wtbGV2ZWxcLW9mZjsKK+WElyA+IGNvbXBhcmVcLXdpdGg7Civkva0gPiB1bnN1Ym1pc3NpdmU7CivkurAgPiBjYXBpdGFsXC1jaXR5Owor5Li8ID4gYm93bFwtb2ZcLWZvb2Q7CivktLwgPiB0b1wtZXh0aXJwYXRlOwor5LSVID4gYVwtd29vZHBlY2tlcjsKK+SzliA+IGZseWluZ1wtYmlyZHM7CivkspwgPiBsb3RzXC1vZlwtZmlzaDsKK+SxiiA+IHJvZVwtb3JcLXNwYXduOwor5LC4ID4gdGhlXC1uYXV0aWx1czsKK+SvtiA+IGZhaXJcLW9mXC1oYWlyOwor5K+sID4gdG9cLWhhbmdcLWRvd247Civkr6cgPiBhXC1zbWFsbFwtaGFsbDsKK+SunyA+IGJpZ1wtYW5kXC10YWxsOwor5K6RID4gYVwtZ3JheVwtaG9yc2U7CivkrZggPiB3ZWxsXC1zdGFja2VkOwor5K2XID4gd2VsbFwtc3RhY2tlZDsKK+StliA+IGFuaW1hbFwtZmVlZHM7CivkrYogPiB3ZWxsXC1zdGFja2VkOwor5K2JID4gbWFzaGVkXC1iZWFuczsKK+SsnCA+IGV2aWxcLXNwaXJpdHM7CivkrJogPiB0b1wtbW92ZVwtZmFzdDsKK+SsiyA+IHZpb2xlbnRcLXdpbmQ7Civkq6ggPiB0YWxsXC1hbmRcLWJpZzsKK+SrmiA+IHNob3J0XC1oZWFkZWQ7Civkq5kgPiB0aGVcLWZvcmVoZWFkOwor5KuVID4gc21hbGxcLWhlYWRlZDsKK+SrhyA+IHRoZVwtd2hpc2tlcnM7CivkqrkgPiBhXC1sYXJnZVwtZmFjZTsKK+SqsCA+IGludGVyamVjdGlvbjsKK+SqoSA+IHRvXC1mYWxsXC1kb3duOwor5KqLID4gc2lsa1wtY29yZGFnZTsKK+SpjyA+IGFcLXNtYWxsXC1mYWNlOwor5KmLID4gYVwtZ3JlZW5cLWZhY2U7CivkqYogPiBnb29kXC1sb29raW5nOwor5KmHID4gYVwtc21hbGxcLWhlYWQ7CivkqLYgPiB0aHVuZGVyc3Rvcm07CivkqLIgPiBhXC1zbWFsbFwtaGFyZTsKK+SoqiA+IGFcLWR1c3RcLXN0b3JtOwor5KidID4gYVwtcHVyZVwtd29tYW47CivkqIggPiBhXC1zbWFsbFwtYmlyZDsKK+SnrCA+IHdhdGVyJydzXC1lZGdlOwor5KeiID4gYVwtcm91Z2hcLXJvYWQ7Civkp5kgPiBhXC1oaWdoXC1tb3VuZDsKK+SlgyA+IGFcLWJpZ1wtaGFtbWVyOwor5KSsID4gYVwtc21hbGxcLWdvbmc7CivkpKYgPiBhXC1iYXR0bGVcLWF4ZTsKK+SkoyA+IGFcLW1ldGFsXC1yaW5nOwor5KSLID4geWVsbG93XC1mYWNlZDsKK+SjvyA+IHRvXC1lbnRlcnRhaW47Civko74gPiBjaGVlc2VcLWRyZWdzOwor5KO8ID4gbWl4ZWRcLXN0YXJjaDsKK+SglCA+IGZhclwtYW5kXC1kZWVwOwor5J+/ID4gdG9cLXJldmVyZW5jZTsKK+SfuSA+IHRvXC1ob3BcLWFib3V0Owor5J+VID4gdG9cLXN0ZXBcLXVwb247CivknrEgPiB0b1wtZmFsbFwtb3ZlcjsKK+SepyA+IGhhcmRcLXRvXC13YWxrOwor5JypID4gdG9cLWVudGVydGFpbjsKK+SaqiA+IGN1cnZlZFwtaG9ybnM7CivkmIQgPiBjaWNhZGFcLWZhbWl5Owor5JiAID4gZ3Jhc3Nob3BwZXJzOwor5JewID4gc3BpcmFsXC1zaGVsbDsKK+SXpyA+IGxpYmVsbHVsaWRhZTsKK+SWniA+IGFcLXNlYVwtaW5zZWN0Owor5JW7ID4gdG9cLWFkaGVyZVwtdG87CivklbogPiBkZW5zZVwtZ3Jvd3RoOwor5JWdID4gbWVkaWNhbFwtaGVyYjsKK+SViyA+IG9mXC1lbG1cLWdyb3VwOwor5JOvID4gd2F0ZXJcLXBlcHBlcjsKK+SRvSA+IGFcLWxhcmdlXC1ib2F0Owor5JG1ID4gYVwtc21hbGxcLWJvYXQ7CivkkIUgPiB0aGVcLWJ1dHRvY2tzOwor5JCBID4gdGhlXC1idXR0b2NrczsKK+SPlyA+IHVuZXhwZWN0ZWRseTsKK+SPkCA+IHRoZVwtYnV0dG9ja3M7Civkj40gPiBhXC1zbWFsbFwtd29ybTsKK+SPgCA+IGluaGFybW9uaW91czsKK+SOmCA+IGJpcmRzXC1mbHlpbmc7CivkjpUgPiBmbHlpbmdcLWJpcmRzOwor5I2EID4gYW5cLWluZGVudHVyZTsKK+SMtiA+IFwpXC1ibGFja1wtc2lsazsKK+SMhyA+IGFcLXRoaWNrXC1yb3BlOwor5IyGID4gc2lsa1wtZmFicmljczsKK+SKhSA+IHRvXC1zb2FrXC1yaWNlOwor5ImvID4gZHJpZWRcLWJhbWJvbzsKK+SJlSA+IGFcLWJhbWJvb1wtaGF0Owor5ImUID4gYmFtYm9vXC1zbGlwczsKK+SInyA+IGJyb2tlblwtc291bmQ7Civkh7ggPiBhXC1iYW1ib29cLW1hdDsKK+SHnSA+IHRvXC1icmVha1wtb2ZmOwor5IecID4gc21hbGxcLWJhbWJvbzsKK+SGrCA+IHRvXC1mYWxsXC1kb3duOwor5IaiID4gdG9cLXBlbmV0cmF0ZTsKK+SGnyA+IGNvcmVzcG9uZGluZzsKK+SGjSA+IGN1dHRlZFwtY3JvcHM7CivkhYEgPiB0b1wtaHVza1wtcmljZTsKK+SDsiA+IGFcLWdyZWF0XC1yb2NrOwor5IOvID4gc21hbGxcLXN0b25lczsKK+SDnSA+IHJ1Z2dlZFwtcm9ja3M7Civkg40gPiB0b1wtZmFsbFwtZG93bjsKK+SCkCA+IHNob3J0XC1zdHVwaWQ7CivkgacgPiB0b1wtb3Blblwtd2lkZTsKK+SBoCA+IHRvXC1oYW5nXC1kb3duOwor5ICBID4gYVwtc21hbGxcLWJvd2w7Civjv70gPiBhXC1zbWFsbFwtYm93bDsKK+O/tSA+IHNvZnRcLWxlYXRoZXI7Civjv7IgPiBhXC1maWVyY2VcLWRvZzsKK+O/qiA+IHNraW5cLWRpc2Vhc2U7Civjv6ggPiBzbWFsbFwtc3RvbmVzOwor47+KID4gdmVyeVwtcGFpbmZ1bDsKK+O+lCA+IGxvbmdcLWlsbG5lc3M7CivjvIsgPiB0aGVcLWN1Y3VtYmVyOwor47qWID4gZG9nc1wtYmFya2luZzsKK+O6jiA+IGZpZXJjZVwtYmVhc3Q7Civjub8gPiBhXC1maWVyY2VcLWRvZzsKK+O5qiA+IGFcLWZpZXJjZVwtZG9nOwor47i+ID4gdG9cLWZpbGxlZFwtdXA7CivjuK0gPiB0aGVcLW9wcG9zaXRlOwor47iYID4gdGVuXC10aG91c2FuZDsKK+O3uSA+IGludGVuc2VcLWhlYXQ7CivjtpUgPiB0b1wtd2FzaFwtcmljZTsKK+O1iiA+IG1vdmluZ1wtaW1hZ2U7CivjtJUgPiB0b1wtYm9pbFwtYXdheTsKK+O0kyA+IHRvXC13YXNoXC1yaWNlOwor47OeID4gZGVlcFwtYW5kXC1mYXI7Civjs5EgPiB0b1wtZmxvd1wtb3ZlcjsKK+OwtyA+IHJlc3VycmVjdGlvbjsKK+OvrCA+IGFjaGlldmVtZW50czsKK+OvoCA+IGFcLWNyb3NzXC1iZWFtOwor46+cID4gZGVjYXllZFwtd29vZDsKK+OuriA+IGFcLXdlbGxcLXN3ZWVwOwor466sID4gYVwtZnJ1aXRcLXRyZWU7CivjrqogPiBhXC1zbWFsbFwtYm9hdDsKK+OujyA+IGFcLWZydWl0XC10cmVlOwor462rID4gYVwtZnJ1aXRcLXRyZWU7CivjrLUgPiB0aGVcLXNoaW5ib25lOwor46uSID4gaGFuZHNcLWpvaW5lZDsKK+OrgyA+IGZsYWdzXC1mbHlpbmc7Civjq4EgPiB0b1wtY3V0XC1hcGFydDsKK+OorSA+IHVucmVhc29uYWJsZTsKK+OntCA+IHRvXC1ydWJcLWhhbmRzOwor46eiID4gdG9cLWRlcGVuZFwtb247CivjprAgPiB0b1wtYnJlYWtcLW9mZjsKK+OmpiA+IGFwcHJlaGVuc2l2ZTsKK++mmyA+IHNtZWx0XC1tZXRhbHM7Civjpo4gPiBjYW50YW5rZXJvdXM7CivjpbUgPiB0b1wtZGlzaG9ub3VyOwor76WrID4gdGFrZVwtcGFydFwtaW47CivjpaAgPiBpbnRlbGxpZ2VuY2U7CivjpLMgPiB0b1wtZGVwZW5kXC1vbjsKK+OkpyA+IGNvbmNpbGlhdGlvbjsKK+OkniA+IGRpc2FwcG9pbnRlZDsKK++kkSA+IHNwaXJhbFwtc2hlbGw7Civjo5IgPiBoYWlyXC1yYWlzaW5nOwor46ORID4gZG91YmxlXC1pbWFnZTsKK+OilyA+IGFcLWhpZ2hcLWhvdXNlOwor46GUID4gb2lsZWRcLWNhbGljbzsKK+OhhSA+IHN0b3JhZ2VcLXJvb207CivjoL4gPiBhXC1kaXNoXC1jbG90aDsKK+OgvSA+IGFcLWRpc2hcLWNsb3RoOwor46CSID4gbW91bnRhaW5cLXRvcDsKK+OfvSA+IG1vdW50YWluXC10b3A7Civjn7ogPiBtb3VudGFpblwtdG9wOwor45+QID4gYmlnXC1hbmRcLWhpZ2g7Civjn4cgPiBhXC1sYW5kXC1zbGlkZTsKK+OeoiA+IHRvXC1hcnJpdmVcLWF0Owor456bID4gcmVkXC1zbGlwcGVyczsKK+OekyA+IHRoZVwtYnV0dG9ja3M7CivjnoUgPiBub3RcLXN0cmFpZ2h0Owor45yXID4gY292ZXRvdXNuZXNzOwor45u8ID4gdG9cLWludGVycnVwdDsKK+ObpSA+IHRvXC1wcm9zdHJhdGU7Civjm4ogPiB0b1wtc3BlY3VsYXRlOwor45uGID4gdG9cLXNwZWN1bGF0ZTsKK+OYoiA+IGFcLXJvdW5kXC1jYXZlOwor45iNID4gc291bmRcLW9mXC1yYXQ7Civjl5IgPiBpbnRlcmplY3Rpb247CivjlrcgPiBiaXJkXC1zaW5naW5nOwor45agID4gYW5cLWF1eGlsaWFyeTsKK+OVryA+IHNsb3dcLXRvbmd1ZWQ7CivjlZIgPiBhXC1sb2Z0eVwtcGVhazsKK+OVgyA+IHRvXC1mYWxsXC1vdmVyOwor45SsID4gdG9cLWVzdGFibGlzaDsKK+OUpiA+IHRvXC1lbmNvdXJhZ2U7CivjlJUgPiB3aXRoXC1wdXJwb3NlOwor45SOID4gdG9cLWN1dFwtYXBhcnQ7CivjlIMgPiB0b1wtY3V0XC1zaG9ydDsKK+OToyA+IHRvXC1zaW5rXC1pbnRvOwor45GqID4gYVwtZ2VuZXJhdGlvbjsKK+ORpCA+IGdvb2RcLWxvb2tpbmc7CivjkZQgPiBhbGxcLXRvZ2V0aGVyOwor45C4ID4gdG9cLW93blwtbW9uZXk7CivjkLQgPiB0b1wtZHJhZ1wtZG93bjsKK+S7pSA+IGJ5XC1tZWFuc1wtb2Y7CivovrIgPiBhZ3JpY3VsdHVyZTsKK+W+hCA+IG5hcnJvd1wtcGF0aDsKK+WHoCA+IHNtYWxsXC10YWJsZTsKK+S+vyA+IGNvbnZlbmllbmNlOwor55S1ID4gZWxlY3RyaWNpdHk7Civnmb4gPiBvbmVcLWh1bmRyZWQ7Civot6MgPiBiYXJlXC1mb290ZWQ7CivotIUgPiB1bm5lY2Vzc2FyeTsKK+WKnyA+IGFjaGlldmVtZW50Owor5rGfID4gbGFyZ2VcLXJpdmVyOwor5rOoID4gY29uY2VudHJhdGU7CivniacgPiB0ZW5kXC1jYXR0bGU7CivlqZogPiBnZXRcLW1hcnJpZWQ7CivliIogPiBwdWJsaWNhdGlvbjsKK+WGnCA+IGFncmljdWx0dXJlOwor54afID4gd2VsbFwtY29va2VkOwor6aWtID4gY29va2VkXC1yaWNlOwor5aWiID4gZXh0cmF2YWdhbnQ7Civmn6UgPiBpbnZlc3RpZ2F0ZTsKK+eroCA+IGNvbXBvc2l0aW9uOwor5oyJID4gcHV0XC1oYW5kXC1vbjsKK+idoCA+IGtpbmRcLW9mXC1iYXQ7CivonZUgPiBuaWJibGVcLWF3YXk7Civlm7AgPiB0b1wtc3Vycm91bmQ7CivpmakgPiBuYXJyb3dcLXBhc3M7Civnu4MgPiB0b1wtcHJhY3RpY2U7Civmuq8gPiBnb1wtdXBzdHJlYW07CivmuIkgPiBmb3JkXC1zdHJlYW07CivotKUgPiBiZVwtZGVmZWF0ZWQ7CivnurcgPiBpblwtZGlzb3JkZXI7CivnvLogPiBiZVwtc2hvcnRcLW9mOwor6YGtID4gY29tZVwtYWNyb3NzOwor5oi0ID4gd2Vhclwtb25cLXRvcDsKK+WLpCA+IGluZHVzdHJpb3VzOwor5YuYID4gaW52ZXN0aWdhdGU7Civpq4QgPiBib25lXC1tYXJyb3c7CivlirkgPiBlZmZpY2FjaW91czsKK+iyjCA+IGNvdW50ZW5hbmNlOwor57mBID4gY29tcGxpY2F0ZWQ7Civmn7MgPiB3aWxsb3dcLXRyZWU7Civlh4QgPiBiaXR0ZXJcLWNvbGQ7CivmtokgPiBmb3JkXC1zdHJlYW07CivpnJ4gPiByb3N5XC1jbG91ZHM7Civpo7QgPiBzd2VldFwtbWVhdHM7Civpo68gPiBjb29rZWRcLXJpY2U7CivogaogPiBpbnRlbGxpZ2VudDsKK+WApiA+IGJlXC10aXJlZFwtb2Y7CivmkZQgPiBmYWxsXC1ncm91bmQ7CivphokgPiBpbnRveGljYXRlZDsKK+afuyA+IGludmVzdGlnYXRlOwor5rabID4gbGFyZ2VcLXdhdmVzOwor6ZSFID4gY29va2luZ1wtcG90Owor5LuUID4gc21hbGxcLXRoaW5nOwor5pyDID4gdG9cLWFzc2VtYmxlOwor6Zu7ID4gZWxlY3RyaWNpdHk7Civmi4YgPiB0b1wtYnJlYWtcLXVwOwor57+gID4gY29sb3JcLWdyZWVuOwor6ZqqID4gbmFycm93XC1wYXNzOwor5pmVID4gaGFsb1wtaW5cLXNreTsKK+mZuiA+IG5hcnJvd1wtcGFzczsKK+e6oCA+IGludmVzdGlnYXRlOwor5aS4ID4gZXh0cmF2YWdhbnQ7CivovqggPiBkaXN0aW5ndWlzaDsKK+iRmyA+IGVkaWJsZVwtYmVhbjsKK+i9vyA+IHNlZGFuXC1jaGFpcjsKK+aVlyA+IGJlXC1kZWZlYXRlZDsKK+aUqyA+IHNuYXRjaFwtYXdheTsKK+e0myA+IGluXC1kaXNvcmRlcjsKK+mNmyA+IGZvcmdlXC1tZXRhbDsKK+WOlSA+IG1pbmdsZVwtd2l0aDsKK+mNiyA+IGNvb2tpbmdcLXBvdDsKK+ervyA+IGJhbWJvb1wtcG9sZTsKK+WIuCA+IGNlcnRpZmljYXRlOwor56mJID4geW91bmdcLWdyYWluOwor6amzID4gdmFyaWNvbG9yZWQ7CivmhpQgPiBiZVwtd29yblwtb3V0Owor57KeID4gZ3JvdW5kXC1yaWNlOwor6YWUID4gaW50b3hpY2F0ZWQ7CivpgYIgPiBjb21wbHlcLXdpdGg7CivpmrYgPiBzdWJzZXJ2aWVudDsKK+e8uCA+IGVhcnRoZW5cLWp1ZzsKK+iCoiA+IGh1bWFuXC1saW1iczsKK+WwtCA+IGVtYmFycmFzc2VkOwor5ZGQID4gcmFpc2VcLXZvaWNlOwor6aKWID4gcmljZVwtdGFzc2VsOwor56ClID4gYVwtd2hldHN0b25lOwor5a2VID4gYmVcLXByZWduYW50Owor6ZKeID4gcGFwZXJcLW1vbmV5Owor5Z6uID4gYmVcLWRlZmVhdGVkOwor55CiID4gcG9saXNoXC1qYWRlOwor57u9ID4gcmlwcGVkXC1zZWFtOwor5aWgID4gcGF5XC1yZXNwZWN0Owor5r6cID4gb3ZlcmZsb3dpbmc7Civmg5UgPiBiZVwtY2F1dGlvdXM7CivplLsgPiBmb3JnZVwtbWV0YWw7CivomoAgPiBuaWJibGVcLWF3YXk7CivotrQgPiBseWluZ1wtcHJvbmU7CivnqpggPiBlbWJhcnJhc3NlZDsKK+maiyA+IHN1aVwtZHluYXN0eTsKK+eehCA+IHRha2VcLWFpbVwtYXQ7CivnpZ8gPiBldmlsXC1zcGlyaXQ7Civll5QgPiBiZVwtYW5ncnlcLWF0Owor5aWVID4gaW5cLXNlcXVlbmNlOwor5qa0ID4gcG9tZWdyYW5hdGU7Civmo5ggPiBqdWp1YmVcLXRyZWU7Civls5kgPiBzdGFuZFwtZXJlY3Q7CivnoIwgPiBzdG9uZVwtc3RlcHM7Civmp5AgPiBsb2N1c3RcLXRyZWU7Civps54gPiBmaXNoXC1zY2FsZXM7Civmg7ogPiBpbnRlbGxpZ2VudDsKK+mrkyA+IGJvbmVcLW1hcnJvdzsKK+eCvSA+IGJ1cm5pbmdcLWhvdDsKK+i/giA+IGRvY3RyaW5haXJlOwor57yqID4gd2luZFwtYXJvdW5kOwor5YeLID4gYmVcLXdpdGhlcmVkOwor57ykID4gZmxvdXJpc2hpbmc7Civpm7MgPiB0aHVuZGVyY2xhcDsKK+i1mCA+IHVubmVjZXNzYXJ5Owor6am4ID4gZXh0cmFcLWhvcnNlOwor5Ze3ID4gbG91ZFwtY2xhbW9yOwor54KWID4gc3Rld1wtc2xvd2x5Owor6LCPID4gcmVtb25zdHJhdGU7Civnr4YgPiBzZWFsXC1zY3JpcHQ7CivlrqYgPiBvZmZpY2lhbGRvbTsKK+eTriA+IGVhcnRoZW5cLWphcjsKK+aclSA+IHByb25vdW5cLScnaScnOwor6ZiRID4gZG9vclwtc2NyZWVuOwor5Y2kID4gc2FsaW5lXC1zb2lsOwor5ZSPID4gd2VlcFwtb3JcLXNvYjsKK+axqSA+IHJ1blwtc3dpZnRseTsKK+amlSA+IGJhbnlhblwtdHJlZTsKK+mXsCA+IGludGVyY2FsYXJ5Owor5piKID4gc3VtbWVyXC10aW1lOwor5463ID4gZmxhd1wtaW5cLWdlbTsKK+mYmSA+IHdhdGNoXC10b3dlcjsKK+eRlSA+IGZsYXdcLWluXC1nZW07Civms4wgPiB0b1wtc2VlcFwtb3V0Owor54O9ID4gc2lnbmFsXC1maXJlOwor5a21ID4gc2l0XC1vblwtZWdnczsKK+akrSA+IG92YWxcLXNoYXBlZDsKK+eXiSA+IGNvbnZ1bHNpb25zOwor5YydID4gZnVsbFwtY2lyY2xlOwor6aWqID4gY29va2VkXC1mb29kOwor5baZID4gcHJlY2lwaXRvdXM7CivpoqcgPiBjaGVla1wtYm9uZXM7CivplZcgPiBib3JpbmdcLXRvb2w7Civmj7YgPiBtYWtlXC1mdW5cLW9mOwor54K3ID4gY2FuZGxlXC13aWNrOwor6LSyID4gZm9yZ2VcLWFoZWFkOwor6JqxID4gZ3Jhc3Nob3BwZXI7Civnl6ggPiBjb25zdW1wdGlvbjsKK+a/giA+IGFcLXdhdGVyZmFsbDsKK+axkCA+IG5pZ2h0XC10aWRlczsKK+etoCA+IGJhbWJvb1wtc2tpbjsKK+awpCA+IGhhbmdpbmdcLWZvZzsKK+eXlCA+IGhlbW9ycmhvaWRzOwor6La/ID4gdG9cLXRyZWFkXC1vbjsKK+inniA+IHdpbmVcLXZlc3NlbDsKK+aMuSA+IHRvXC1iYWxlXC1vdXQ7CivohpEgPiB0aGVcLWtuZWVjYXA7CivlvocgPiBjb21wbHlcLXdpdGg7CivllLMgPiBjcnlcLW9mXC1iaXJkOwor56SFID4gc3RvbmVcLWJsb2NrOwor566UID4gcmVlZFwtc2NyZWVuOwor6LG4ID4gcmFkaWNhbFwtMTUzOwor5rufID4gb3ZlcmZsb3dpbmc7Civng4MgPiBoeWRyb2NhcmJvbjsKK+egrSA+IHN0b25lXC1wcm9iZTsKK+a+jSA+IHRpbWVseVwtcmFpbjsKK+m+iyA+IHRvb3RoXC1kZWNheTsKK+e8sSA+IGF0dGFjaGVkXC10bzsKK+WlgiA+IGJlXC1udW1lcm91czsKK+m7qSA+IHRvXC1kaXNob25vcjsKK+mltCA+IHN3ZWV0XC1tZWF0czsKK+WjhSA+IHRvXC1vYnN0cnVjdDsKK+a+tiA+IHN0aWxsXC13YXRlcjsKK+mkjSA+IGJlXC1zYXRpYXRlZDsKK+aepSA+IHR5cGVcLW9mXC1vYWs7CivonKIgPiBncmFzc2hvcHBlcjsKK+eFhSA+IGZvcmdlXC1tZXRhbDsKK+ahlSA+IHRhbGxvd1wtdHJlZTsKK+myoiA+IHNpbHZlclwtY2FycDsKK+i2sSA+IGdvXC1pblwtaHVycnk7CivlpqsgPiBmYW1pbHlcLW5hbWU7Civmmr4gPiBtb3JuaW5nXC1zdW47CivojaYgPiBicmluZGxlZFwtb3g7CivpgpsgPiBpblwtZGlzdHJlc3M7CivmiKIgPiB0b1wtcHV0XC1hd2F5Owor5qanID4gdHlwZVwtb2ZcLXlldzsKK+WghyA+IHllbGxvd1wtbG9hbTsKK+WKrCA+IGJlXC1kaWxpZ2VudDsKK+mtiCA+IG1pc2NoZXZpb3VzOwor6Y2qID4gYW5cLWlyb25cLXBhbjsKK+icoyA+IGR1bmdcLWJlZXRsZTsKK+eXpiA+IFwoZmxhdFwpXC1tb2xlOwor5oisID4gZXh0ZXJtaW5hdGU7Civll4kgPiBiaXJkJydzXC1jcm9wOwor5YSLID4gYVwtc21hbGxcLWphcjsKK+ianCA+IHBsYW50XC1sb3VzZTsKK+eynCA+IHNlbGxcLWdyYWluczsKK+aUriA+IHRvXC1mZW5kXC1vZmY7Civoi44gPiBjaGluYVwtZ3Jhc3M7Civln5UgPiBlYXJ0aGVuXC1qYXI7CivlnakgPiBlYXJ0aGVud2FyZTsKK+amiSA+IHR5cGVcLW9mXC1lbG07CivnjqIgPiBwb3JwaHlyaXRlczsKK+e7gSA+IHRvXC1jb250cmFjdDsKK+a9hiA+IHRpbnlcLXN0cmVhbTsKK+mruSA+IHJlZFwtbGFjcXVlcjsKK+inliA+IHRvXC1sb25nXC1mb3I7CivonrUgPiBhXC1jaHJ5c2FsaXM7CivmnaogPiB0aXBcLW9mXC10d2lnOwor5bmCID4gY292ZXJcLWNsb3RoOwor56GXID4gYmFycmVuXC1sYW5kOwor6ISeID4gbWluY2VkXC1tZWF0Owor6L21ID4gZW5kXC1vZlwtYXhsZTsKK+allyA+IGJhclwtb2ZcLWRvb3I7CivmoYQgPiBhXC1jb2lyXC1wYWxtOwor5aCgID4gYmF0dGxlbWVudHM7Civkv5wgPiB0b1wtdHJ1c3RcLXRvOwor6b2yID4gdG9vdGhcLWRlY2F5Owor6bu3ID4gdG9cLWRpc2hvbm9yOwor6bqAID4gZmVtYWxlXC1kZWVyOwor6bm1ID4gc2FsaW5lXC1zb2lsOwor6biPID4gdHJvcGljXC1iaXJkOwor6bS6ID4gdGhlXC1wZWxpY2FuOwor6bGgID4gbWluY2VkXC1maXNoOwor6bGXID4gZmlzaFwtc2NhbGVzOwor6bCxID4gc2lsdmVyXC1jYXJwOwor6ayZID4gbWF0dGVkXC1oYWlyOwor6amUID4gYmxhY2tcLWhvcnNlOwor6amHID4gaGVhdnlcLWhvcnNlOwor6ai6ID4gaGVhdnlcLWhvcnNlOwor6aeZID4gZXh0cmFcLWhvcnNlOwor6aeBID4gdmFyaWNvbG9yZWQ7CivppZwgPiBiZVwtc2F0aWF0ZWQ7CivppIEgPiBjb29rZWRcLWZvb2Q7Civpo6ogPiBjb29rZWRcLWZvb2Q7CivpobQgPiBjaGVla1wtYm9uZXM7CivpoaYgPiBiZVwtd29yblwtb3V0Owor6aGHID4gYmVcLXdvcm5cLW91dDsKK+mgtCA+IHJpY2VcLXRhc3NlbDsKK+mgiyA+IHRvXC1jYXJlXC1mb3I7CivpnqsgPiBpbnRlcnJvZ2F0ZTsKK+mdgiA+IHRodW5kZXJjbGFwOwor6ZqJID4gaW5cLWRpc29yZGVyOwor6ZioID4gaW5cLWRpc3RyZXNzOwor6ZeVID4gd2F0Y2hcLXRvd2VyOwor6ZeMID4gZG9vclwtc2NyZWVuOwor6ZagID4gaW50ZXJjYWxhcnk7Civplo8gPiBpbnRlcmNhbGFyeTsKK+mQpiA+IGNhbGlmb3JuaXVtOwor6Y+7ID4gcGhvc3Bob25pdW07Civpj5wgPiBib3JpbmdcLXRvb2w7CivpjpAgPiBmYW1pbHlcLW5hbWU7CivpjZAgPiBhXC1oZWFkc3RhbGw7CivpiJQgPiBwYXBlclwtbW9uZXk7Civph4YgPiBkaXN0aW5ndWlzaDsKK+mGuSA+IHN0cm9uZ1wtd2luZTsKK+mGsiA+IHN0cm9uZ1wtd2luZTsKK+mGkyA+IHNhbHRlZFwtbWVhdDsKK+mFjyA+IG1pbGxldFwtd2luZTsKK+mBuSA+IGNvbXBseVwtd2l0aDsKK+mBoSA+IGdvXC11cHN0cmVhbTsKK+i/iiA+IHRvXC1nb1wtcm91bmQ7CivovY4gPiBzZWRhblwtY2hhaXI7CivovYcgPiBjb21wbGljYXRlZDsKK+i8piA+IGFcLWhhbmRcLWNhcnQ7Civou7kgPiBlbmRcLW9mXC1heGxlOwor6Lm5ID4gdG9cLXRyZWFkXC1vbjsKK+i5tSA+IHRvXC10cmVhZFwtb247CivotrIgPiBnb1wtaW5cLWh1cnJ5Owor6LSXID4gY291bnRlcmZlaXQ7Civos4EgPiBmb3JnZVwtYWhlYWQ7CivospggPiB0aGVcLXBhbnRoZXI7CivosaYgPiBhXC13aWxkXC1ib2FyOwor6LGYID4gYVwtc21hbGxcLXBpZzsKK+irqyA+IHJlbW9uc3RyYXRlOwor6KuMID4gcmVtb25zdHJhdGU7Civop7QgPiB3aW5lXC12ZXNzZWw7Civop7EgPiB0YXJ0YXJcLWhvcm47CivopoggPiBpbnZlc3RpZ2F0ZTsKK+iktSA+IGJyaWRhbFwtdmVpbDsKK+ignCA+IGdyYXNzaG9wcGVyOwor6KCLID4gY2F0ZXJwaWxsYXI7Civon5sgPiBhXC1sYW5kXC1jcmFiOwor6J2bID4gdGhlXC1zb3dcLWJ1ZzsKK+idjSA+IGFcLWNlbnRpcGVkZTsKK+ibkyA+IGNhdGVycGlsbGFyOwor6JeaID4gd2F0ZXJcLXBsYW50Owor6JeEID4gZWRpYmxlXC1mZXJuOwor6JOqID4gcGFwZXJcLXBsYW50Owor6JOCID4gbHVja3lcLXBsYWNlOwor6JKtID4gdG9cLWN1dGdyYXNzOwor6JCQID4gbHVja3lcLXBsYW50Owor6I+iID4gdG9cLWluY3ViYXRlOwor6IunID4gY2hpbmFcLWdyYXNzOwor6ImXID4gYm93XC1vZlwtanVuazsKK+iHjyA+IHRoZVwta25lZWNhcDsKK+iDviA+IG1pbmNlZFwtbWVhdDsKK+iDlCA+IHJvdHRlblwtbWVhdDsKK+iCiCA+IHRvXC1jb21tZW5jZTsKK+iBsCA+IGludGVsbGlnZW50Owor6IGmID4gdGhlXC1oZWFyaW5nOwor6IGhID4gaW50ZWxsaWdlbnQ7CivogJEgPiBzcGVjaWFsaXplZDsKK+e/hiA+IGNvbG9yXC1ncmVlbjsKK+e+liA+IGFcLWJsYWNrXC1yYW07CivnvoMgPiBjb3ZlclwtY2xvdGg7CivnvbEgPiBmaXNoaW5nXC1uZXQ7CivnvaAgPiBhbmltYWxcLXRyYXA7CivnvZIgPiByYWRpY2FsXC0xMjI7CivnvYsgPiBlYXJ0aGVuXC1qYXI7Civnub4gPiBhdHRhY2hlZFwtdG87Civnub0gPiBmbG91cmlzaGluZzsKK+e5hiA+IHdpbmRcLWFyb3VuZDsKK+e2uyA+IHJpcHBlZFwtc2VhbTsKK+ezviA+IGludmVzdGlnYXRlOwor57O2ID4gc2VsbFwtZ3JhaW5zOwor57OiID4gcmljZVwtc25hY2tzOwor57C5ID4gdGFsbFwtYmFtYm9vOwor57C1ID4gZmluZVwtYmFtYm9vOwor57CwID4gYmFtYm9vXC1yYWZ0Owor56+UID4gdGFsbFwtYmFtYm9vOwor566YID4gZmluZVwtYmFtYm9vOwor562pID4gYmFtYm9vXC1waXBlOwor562KID4gYmFtYm9vXC1yb3BlOwor562HID4gYmFtYm9vXC1uYW1lOwor56yvID4gYVwtYmlyZFwtY2FnZTsKK+equCA+IGZhaW50XC1zb3VuZDsKK+eptSA+IGRlZXBcLWhvbGxvdzsKK+epjiA+IHJpY2VcLXRhc3NlbDsKK+ejvSA+IGJhcnJlblwtbGFuZDsKK+ejuSA+IHN0b25lXC13ZWRnZTsKK+eilCA+IFwvMlwtcHJcLXN0b25lOwor56CGID4gXC8yXC1wclwtc3RvbmU7CivnoIMgPiB3aGl0ZVwtc3RvbmU7CivnnrUgPiB0b1wtc3RhcmVcLWF0Owor552gID4gdG9cLWNhcmVcLWZvcjsKK+edjiA+IHRvXC1sb25nXC1mb3I7CivnnKUgPiBleWVcLXNvY2tldHM7CivnnJEgPiBzdW5rZW5cLWV5ZXM7CivnnIogPiBkaW1cLXNpZ2h0ZWQ7CivnmoMgPiBjb3VudGVuYW5jZTsKK+eZhiA+IGNvbnN1bXB0aW9uOwor55iaID4gdG9cLWhpY2NvdWdoOwor55ezID4gcG9ja1wtbWFya2VkOwor55eyID4gcG9ja1wtbWFya2VkOwor55etID4gbWVub3JyaGFnaWE7Civnl5kgPiBjb252dWxzaW9uczsKK+eXgyA+IGluZGlnZXN0aW9uOwor55SVID4gZWFydGhlblwtamFyOwor54+9ID4gamFkZVwtdGFibGV0Owor546XID4gXC8yXC1wclwtc3RvbmU7CivnjY8gPiB0aGVcLXBhbnRoZXI7Civni6IgPiBhbmltYWxcLW5hbWU7CivnipYgPiBicmluZGxlZFwtb3g7Civnh5YgPiByZWhlYXRcLWZvb2Q7Civnhr4gPiBidXJuaW5nXC1ob3Q7CivnhZ8gPiBicmlnaHRcLXJvb207CivnhY8gPiBkcnlcLWJ5XC1maXJlOwor54WGID4gcmFnaW5nXC1maXJlOwor54O0ID4gaHlkcm9jYXJib247CivngakgPiBvdmVyZmxvd2luZzsKK+eBpyA+IG92ZXJmbG93aW5nOwor54C+ID4gb3ZlcmZsb3dpbmc7CivngKAgPiB0aW55XC1zdHJlYW07Civmv6QgPiBsYXJnZVwtd2F2ZXM7CivmvrAgPiBvdmVyZmxvd2luZzsKK+a9vyA+IHN0aWxsXC13YXRlcjsKK+a9viA+IGNsZWFyXC13YXRlcjsKK+a9oCA+IHRvXC1ibG93XC1vdXQ7Civmu7cgPiB0aGlja1wtZ3Jhdnk7CivmuZwgPiB0cmFuc3BhcmVudDsKK+a4nyA+IG5vdFwtZmxvd2luZzsKK+a3kiA+IGJpdHRlclwtY29sZDsKK+a2oCA+IHN0aWxsXC13YXRlcjsKK+a1oSA+IGJ1cnN0XC1mb3J0aDsKK+aznSA+IGdvXC11cHN0cmVhbTsKK+aysCA+IHRvXC1sZXRcLWRyb3A7CivmrrAgPiBhblwtYWJvcnRpb247CivmrK4gPiB0b1wtaGljY291Z2g7Civmq7ggPiB0eXBlXC1vZlwtZWxtOwor5quqID4gdHlwZVwtb2ZcLW9hazsKK+apoiA+IG92YWxcLXNoYXBlZDsKK+ansiA+IHR5cGVcLW9mXC1vYWs7Civmp6IgPiBhXC1oYXJkXC13b29kOwor5qWVID4gb3ZhbFwtc2hhcGVkOwor5qOvID4ganVqdWJlXC10cmVlOwor5qKYID4gYmFtYm9vXC10dWJlOwor5qKWID4gYVwtcGFsbVwtdHJlZTsKK+aihCA+IGFcLXNvZnRcLXdvb2Q7CivmoJ4gPiBwdWJsaWNhdGlvbjsKK+aggyA+IHR5cGVcLW9mXC1vYWs7CivmnqcgPiBiYW1ib29cLXR1YmU7CivmnaQgPiB0eXBlXC1vZlwtb2FrOwor5pqIID4gaGFsb1wtaW5cLXNreTsKK+aYnCA+IHRvXC1vcGVuXC1vdXQ7CivmmIkgPiBicmlnaHRcLWRhd247Civml70gPiBtb3JuaW5nXC1zdW47Civml4kgPiB0b1wtc3RhdGVcLXRvOwor5pGhID4gdG9cLWlycmlnYXRlOwor5pGOID4gdG9cLXN0cmFuZ2xlOwor5oyTID4gdG9cLW9wZW5cLW91dDsKK+aIqSA+IGV4dGVybWluYXRlOwor5oWJID4gdG9cLWJyaW5nXC11cDsKK+aElCA+IGNvbWZvcnRhYmxlOwor5b+yID4gZXh0cmF2YWdhbnQ7CivlvrsgPiBhXC13aWRlXC1yb29tOwor5b6RID4gbmFycm93XC1wYXRoOwor5bywID4gZW5kc1wtb2ZcLWJvdzsKK+W5jiA+IGNvdmVyXC1jbG90aDsKK+W4gCA+IHRvXC1nb1wtcm91bmQ7CivltKogPiByb2NreVwtcGVha3M7CivltJIgPiByb2NreVwtcGVha3M7CivlsbAgPiBkaXNvYmVkaWVudDsKK+WxnSA+IHN0cmF3XC1zaG9lczsKK+WwtyA+IGVtYmFycmFzc2VkOwor5bC2ID4gZW1iYXJyYXNzZWQ7CivlsJwgPiBhXC1jaGlsZFwtdG95Owor5bCDID4gdG9cLXN0YXRlXC10bzsKK+WslCA+IGJhYnlcLXJhYmJpdDsKK+WqryA+IGZhbWlseVwtbmFtZTsKK+WlkyA+IGV4dHJhdmFnYW50Owor5aWQID4gYmVcLW51bWVyb3VzOwor5aG/ID4gc21hbGxcLW1vdW5kOwor5aCKID4gd2hpdGVcLWVhcnRoOwor5aCIID4gZWFydGhlblwtanVnOwor5Z6eID4gc21hbGxcLW1vdW5kOwor5Z6dID4gZGlsYXBpZGF0ZWQ7CivlnpQgPiB0b1wtcmVzdHJhaW47CivlnbUgPiBlYXJ0aGVud2FyZTsKK+WXsSA+IGV4Y2xhbWF0aW9uOwor5ZaOID4gYVwtd3J5XC1tb3V0aDsKK+WUuSA+IHRvXC1zbWlsZVwtYXQ7CivlkoUgPiB0b1wtc3BpdFwtb3V0Owor5ZC2ID4gcmFpc2VcLXZvaWNlOwor5Y+7ID4gcGxhY2VcLW5hbWVzOwor5Y6+ID4gbGlnaHRseVwtdGFwOwor5Y6gID4gbWluZ2xlXC13aXRoOwor5YyvID4gYVwtY29uY291cnNlOwor5Yu9ID4gdG9cLWluY3ViYXRlOwor5YugID4gam9pblwtZm9yY2VzOwor5Yq8ID4gYmVcLWRpc2NyZWV0Owor5Yq1ID4gY2VydGlmaWNhdGU7CivliaYgPiB0b1wtY2FzdHJhdGU7CivliIsgPiBwdWJsaWNhdGlvbjsKK+WHqSA+IHdpbnRyeVwtd2luZDsKK+WGqiA+IGNvdmVyXC1jbG90aDsKK+WFpiA+IGRlc3RydWN0aW9uOwor5YSBID4gb3V0c3RhbmRpbmc7Civlgo8gPiB0b1wtd2FyZFwtb2ZmOwor5YGiID4gdG9cLXN0YXJlXC1hdDsKK+S/myA+IG1ha2VcLWVmZm9ydDsKK+S9uSA+IGRlcGVuZFwtdXBvbjsKK+S9oSA+IG1ha2VcLWVmZm9ydDsKK+S2qiA+IHNoYXJwXC10ZWV0aDsKK+S1tCA+IGJsYWNrXC1jb2xvcjsKK+S1syA+IGxpZ2h0XC1ibGFjazsKK+S1sCA+IGJsYWNrXC1jb2xvcjsKK+S1qSA+IGRhcmtcLXllbGxvdzsKK+S1oiA+IGxpZ2h0XC1ibGFjazsKK+S1jiA+IGRhcmtcLXllbGxvdzsKK+SyuyA+IHRoZVwtc3dhbGxvdzsKK+SxvSA+IHRoZVwtcG9tZnJldDsKK+SxuiA+IGFcLW1hbGVcLWNyYWI7CivksbYgPiBhXC1tYWxlXC1jcmFiOwor5LGSID4gc2FsdGVkXC1maXNoOwor5K+jID4gdGhlXC1rbmVlY2FwOwor5K+YID4gdGhlXC1rbmVlY2FwOwor5K6YID4geW91bmdcLWhvcnNlOwor5KuzID4gaHVtYW5cLXNrdWxsOwor5KuwID4gc3BhcnNlXC1oYWlyOwor5KutID4gYmFsZFwtaGVhZGVkOwor5KucID4gc3Vua2VuXC1leWVzOwor5KuEID4gYmV0dGVyXC10aGFuOwor5Kq0ID4gdGhlXC1vY2NpcHV0Owor5KqEID4gZ3JlYXRcLWJsYXplOwor5Km7ID4gdG9cLWJlXC1jaGllZjsKK+SpnCA+IGRlc2NlbmRhbnRzOwor5KixID4gc3BpbHRcLXdhdGVyOwor5Ke2ID4gdG9cLWNhcmVcLWZvcjsKK+SnqCA+IHByZWNpcGl0b3VzOwor5KeeID4gdG9cLWluY3JlYXNlOwor5KeTID4gYVwtYmlnXC1tb3VuZDsKK+SniiA+IGFcLWJpZ1wtbW91bmQ7CivkprcgPiB0b1wtc3RydWdnbGU7CivkprYgPiB0b1wtc3RydWdnbGU7Civkpp8gPiB0b1wtc3RydWdnbGU7CivkppsgPiB0b1wtc3RydWdnbGU7CivkppggPiBhXC10aHJlc2hvbGQ7CivkpYAgPiB0b1wtcHVsbFwtb3V0Owor5KStID4gdG9cLW9ybmFtZW50Owor5KSFID4gc291dGhlcndvb2Q7CivkookgPiBhZ3JpY3VsdHVyZTsKK+SgnSA+IHRvXC1zdGFuZFwtdXA7CivkoI0gPiBhdFwtdGhlXC1mZWV0Owor5J+1ID4gdG9cLXRyZWFkXC1vbjsKK+SfryA+IHRvXC10cmVhZFwtb247Civkn4UgPiB0b1wtZ29cLWFoZWFkOwor5J+BID4gYVwtZm9vdFwtcmFjZTsKK+SevSA+IHRvXC1saWVcLWZsYXQ7CivknqggPiBoYWxmXC1hXC1wYWNlOwor5J6mID4gdG9cLWxpZVwtZmxhdDsKK+SeiiA+IHRvXC1pbmNyZWFzZTsKK+SehCA+IHRvXC1kaXNwZXJzZTsKK+SdjSA+IGFcLXdpbGRcLWJvYXI7CivknYAgPiBnYXJkZW5cLXBlYXM7CivknLAgPiBkZWVwXC12YWxsZXk7CivknK4gPiBkZWVwXC12YWxsZXk7CivknJcgPiBhbmdyeVwtd29yZHM7CivknI8gPiB0b1wtd2l0aGRyYXc7CivknIYgPiBoYXN0eVwtd29yZHM7Civkm5ggPiB0b1wtdGhpbmtcLW9mOwor5Jq+ID4gdG9cLXRoaW5rXC1vZjsKK+SasyA+IGRvXC1ub3RcLWtub3c7CivkmrIgPiB0b1wtbGF1Z2hcLWF0Owor5Jm+ID4gdG9cLXdhaXRcLWZvcjsKK+SZsSA+IGFcLWxvbmdcLWNvYXQ7CivkmbAgPiBuZXdcLWZlYXRoZXI7CivkmYIgPiBzaG9ydFwtcGFudHM7CivkmLQgPiBzaG9ydFwtcGFudHM7Civkl5YgPiB0aGVcLXJhaW5ib3c7CivklbggPiB3aGVhdFwtc3RyYXc7CivklaMgPiB3YXRlclwtcGxhbnQ7CivklYwgPiB5b3VuZ1wtZ3JhaW47CivklL8gPiBsdXNoXC1ncm93dGg7Civkk64gPiBsdXNoXC1ncm93dGg7Civkk48gPiBmbG91cmlzaGluZzsKK+SSiyA+IGFpclwtY3VycmVudDsKK+SQmiA+IGdvb2RcLWdyYWNlczsKK+SPtiA+IHRoZVwtc3RvbWFjaDsKK+SPlCA+IHRvXC1lYXRcLW1lYXQ7Civkj5MgPiB0aGVcLXN0b21hY2g7CivkjaggPiB0b1wtY2FzdHJhdGU7CivkjLogPiBmbG91cmlzaGluZzsKK+SMqiA+IHRvXC1jb250aW51ZTsKK+SMpiA+IGdyZWVuXC1jb2xvcjsKK+SKrSA+IHRvXC1vdmVydHVybjsKK+SKqyA+IGNvYXJzZVwtcmljZTsKK+SKoiA+IHRoaWNrXC1mbHVpZDsKK+SKkyA+IHRvXC1wYXN0ZVwtdXA7CivkiZ0gPiBiYW1ib29cLXdhcmU7CivkiYogPiBiYW1ib29cLXdhcmU7CivkiLggPiBhXC1iaWdcLWNoZXN0Owor5IiAID4gYmFtYm9vXC13YXJlOwor5IeVID4gdG9cLXdhaXRcLWZvcjsKK+SHkyA+IHRvXC13YWl0XC1mb3I7Civkh4MgPiB0b1wtd2FpdFwtZm9yOwor5IazID4gZmFyXC1kaXN0YW50Owor5IaYID4gYWN1cHVuY3R1cmU7CivkhpYgPiBhXC1iaWdcLWhvdXNlOwor5IW7ID4gbWVhc3VyZW1lbnQ7CivkhYQgPiBsb25nXC1ncmFpbnM7CivkhL0gPiBjb21tb25cLXJpY2U7CivkhIQgPiBhY2hpZXZlbWVudDsKK+SDrSA+IGFcLXN0b25lXC1ib3g7CivkgrEgPiB0b1wtd2Vhclwtb3V0Owor5IKkID4gd2hpdGVcLXN0b25lOwor5IKhID4gYVwtd2hldHN0b25lOwor5IKTID4gcmVndWxhdGlvbnM7CivkgbsgPiBwcmV0dHlcLWV5ZXM7CivkgbcgPiBicmlnaHRcLWV5ZXM7CivkgbEgPiBob2xsb3dcLWV5ZWQ7CivkgZEgPiBwcmV0dHlcLWV5ZXM7CivkgKYgPiB0b1wtc3RhcmVcLWF0Owor5ICCID4gYVwtYmlnXC1iYXNpbjsKK+O/oyA+IHdoaXRlXC1jb2xvcjsKK+O/mCA+IHRvXC1nZXRcLXNpY2s7CivjvrogPiBleWVcLWRpc2Vhc2U7Civjvp0gPiB0b1wtbGVha1wtb3V0Owor476XID4gZXllXC1kaXNlYXNlOwor476IID4gaHVuY2hiYWNrZWQ7CivjvoMgPiBodW1wXC1iYWNrZWQ7CivjvaogPiBwYWRkeVwtZmllbGQ7CivjvYYgPiBlYXJ0aGVud2FyZTsKK+O9gCA+IGVhcnRoZW53YXJlOwor47y7ID4gZWFydGhlbndhcmU7CivjvLggPiBlYXJ0aGVud2FyZTsKK+O8tiA+IGVhcnRoZW53YXJlOwor47yzID4gZWFydGhlbndhcmU7CivjvK8gPiBlYXJ0aGVud2FyZTsKK+O8rCA+IGVhcnRoZW53YXJlOwor47ymID4gZWFydGhlbndhcmU7CivjvKQgPiBlYXJ0aGVud2FyZTsKK+O8mCA+IG9mXC1tb3VudGFpbjsKK+O8kyA+IG1lbG9uXC1zZWVkczsKK+O7kyA+IGFcLWZpbmVcLWphZGU7CivjuaAgPiBhXC1zbWFsbFwtYmlnOwor47igID4gdGhpY2tcLXN0aWNrOwor47aRID4gb3ZlcmZsb3dpbmc7Civjta4gPiBjbGVhclwtd2F0ZXI7CivjtaQgPiB0b1wtb3ZlcmZsb3c7CivjtZUgPiB0b1wtcGVybWVhdGU7CivjtJggPiB0b1wtb296ZVwtb3V0Owor47KwID4gYVwtaGFpcnlcLWRvZzsKK+OykiA+IHRvXC1pbmN1YmF0ZTsKK+OxqSA+IGFuXC1hYm9ydGlvbjsKK+OwsiA+IHRvXC1ibG93XC1vZmY7CivjsK4gPiB0b1wtbGF1Z2hcLWF0Owor47CeID4gdG9cLWxhdWdoXC1hdDsKK+OviCA+IHNtYWxsXC10cmVlczsKK+OunyA+IGFcLXdoZXRzdG9uZTsKK+OunSA+IGFuZ2xlXC1zdGVlbDsKK+OttCA+IHRoZVwtb3NjaW5lczsKK+OtjiA+IGFcLXRhbGxcLXRyZWU7CivjrLIgPiB0b1wtaW5jcmVhc2U7CivjrKkgPiBhXC10aW55XC1zdGFyOwor46u1ID4gd2hpdGVcLWNvbG9yOwor46uYID4gZGlzYXBwZWFyZWQ7CivjqrogPiB0b1wtYmFsZVwtb3V0Owor46mIID4gdG9cLXJlc3RyYWluOwor46mFID4gdG9cLWRyYXdcLW91dDsKK+OouiA+IHRvXC1vcm5hbWVudDsKK+OotSA+IHRvXC1jdXRcLWF3YXk7CivjqLQgPiB0b1wtdHVybm92ZXI7CivvqKogPiBjb29rZWRcLXJpY2U7CivjqJUgPiB0b1wtc2hvdWxkZXI7Civvp7IgPiBmaXNoXC1zY2FsZXM7Civjp5QgPiB0b1wtZGlzdHVyYmU7Civvp4kgPiB3aWxsb3dcLXRyZWU7Civvp4UgPiBoYWxvXC1pblwtc2t5Owor46afID4gaW50ZWxsaWdlbnQ7CivvppggPiBhXC1oYW5kXC1jYXJ0Owor46aSID4gdG9cLWRlY2VpdmVkOwor76WoID4gdG9cLXNlZXBcLW91dDsKK++lpSA+IGNvbnZlbmllbmNlOwor46ShID4gdG9cLXN1cnByaXNlOwor46SbID4gdG9cLXJlbWVtYmVyOwor46SVID4gbWVsYW5jaG9sb3k7CivjpIEgPiB0b1wtZGlzZ3JhY2U7Civjo74gPiBkb1wtbm90XC1jYXJlOwor46O1ID4gdG9cLXJ1blwtYXdheTsKK+OjpSA+IHRvXC1zdG9yZVwtdXA7CivjorMgPiBibGFja1wtY29sb3I7CivjopMgPiB0b1wtc2VwYXJhdGU7Civjob4gPiBhXC10aHJlc2hvbGQ7CivjoJYgPiBwcmVjaXBpdG91czsKK+OemCA+IGFcLXNtYWxsXC1waWc7CivjnbQgPiBhXC1yb3VuZFwtb2ZmOwor452UID4gZGVlcFwtYm90dG9tOwor45yjID4gYVwtbGFzdFwtbmFtZTsKK+OcjiA+IHNsYXZlXC1naXJsczsKK+ObkSA+IHRocmVlXC13b21lbjsKK+OaviA+IHRvXC1oYXZlXC1mdW47CivjmacgPiBlYXJ0aGVud2FyZTsKK+OYtiA+IGFcLWhlblwtcm9vc3Q7CivjmKUgPiB0b1wtaW52ZWlnbGU7CivjmIYgPiB0b1wtbGF1Z2hcLWF0Owor45eXID4gdG9cLXNlcGFyYXRlOwor45a9ID4gdG9cLWNhbGxcLW91dDsKK+OWoyA+IHRvXC1zcGl0XC1vdXQ7Civjlp4gPiBhXC13cnlcLW1vdXRoOwor45aWID4gdG9cLXNwaXRcLW91dDsKK+OWlSA+IHRvXC1zcGl0XC1vdXQ7CivjlpEgPiB0b1wtc2hvdXRcLWF0Owor45S8ID4gdG9cLWZpdFwtaW50bzsKK+OUtiA+IGFcLXNtYWxsXC1jdXA7CivjlI8gPiB0b1wtY3V0XC1vcGVuOwor45OsID4gdG9cLWN1dFwtb3BlbjsKK+OTqSA+IGhvcm5lZFwtaGFpcjsKK+OSqCA+IGFuXC1pbW1vcnRhbDsKK+OSpSA+IGFuXC1pbW1vcnRhbDsKK+ORvSA+IHRvXC13YXJkXC1vZmY7CivnmoQgPiBwb3NzZXNzaXZlOwor6L68ID4gY3Jvd2RcLWludG87CivovrsgPiBjcm9zc3JvYWRzOwor6IO9ID4gdG9cLWJlXC1hYmxlOwor6YO9ID4gbWV0cm9wb2xpczsKK+aWhyA+IGxpdGVyYXR1cmU7CivovY0gPiB3YWdvblwtcnV0czsKK+i8qSA+IGdlbmVyYXRpb247CivnnKkgPiB0b1wtY29uZnVzZTsKK+ecoCA+IGNsb3NlXC1leWVzOwor6LydID4gYnJpZ2h0bmVzczsKK+W8kCA+IG51bWJlclwtdHdvOwor6ICFID4gdGhhdFwtd2hpY2g7CivkuJogPiBwcm9mZXNzaW9uOwor5bqcID4gcHJlZmVjdHVyZTsKK+aUvyA+IGdvdmVybm1lbnQ7CivkuJYgPiBnZW5lcmF0aW9uOwor5LqnID4gZ2l2ZVwtYmlydGg7CivlnLogPiBvcGVuXC1zcGFjZTsKK+avlCA+IHRvXC1jb21wYXJlOwor55ayID4gZmVlbFwtdGlyZWQ7CivnlLsgPiBhXC1wYWludGluZzsKK+eUoyA+IGdpdmVcLWJpcnRoOwor5pybID4gdG9cLWxvb2tcLWF0Owor6LO6ID4gbWFrZVwtbW9uZXk7Civlha0gPiBudW1iZXJcLXNpeDsKK+WxoSA+IGZyZXF1ZW50bHk7CivlsKQgPiBlc3BlY2lhbGx5Owor5bCIID4gbW9ub3BvbGl6ZTsKK+WfuiA+IGZvdW5kYXRpb247Civlj4wgPiBzZXRcLW9mXC10d287CivlrasgPiBncmFuZGNoaWxkOwor5LiTID4gbW9ub3BvbGl6ZTsKK+WsqiA+IGNvdXJ0XC1sYWR5Owor56a7ID4gcmFyZVwtYmVhc3Q7CivlqpIgPiBnb1wtYmV0d2VlbjsKK+iqjCA+IHdyaXRlXC1kb3duOwor6KqHID4gZXhhZ2dlcmF0ZTsKK+WTjSA+IG1ha2VcLXNvdW5kOwor5am/ID4gc29uXC1pblwtbGF3Owor54itID4gdG9cLWRpc3B1dGU7CivlmaggPiByZWNlcHRhY2xlOwor54efID4gZW5jYW1wbWVudDsKK+WmmSA+IG15c3RlcmlvdXM7Civog6EgPiByZWNrbGVzc2x5Owor5aaTID4gcHJvc3RpdHV0ZTsKK+ilpiA+IHNob3J0XC1jb2F0Owor5aWnID4gbXlzdGVyaW91czsKK+WlpSA+IG15c3RlcmlvdXM7Civlo7sgPiBzb25cLWluXC1sYXc7Civlo7EgPiBudW1iZXJcLW9uZTsKK+WtmSA+IGdyYW5kY2hpbGQ7CivokKUgPiBlbmNhbXBtZW50Owor5aC0ID4gb3Blblwtc3BhY2U7Civpg60gPiBvdXRlclwtcGFydDsKK+iuqCA+IHRvXC1kaXNjdXNzOwor5ruFID4gZXh0aW5ndWlzaDsKK+iZnCA+IHRvXC1jYXB0dXJlOwor56evID4gYWNjdW11bGF0ZTsKK+iPnCA+IHZlZ2V0YWJsZXM7Civll6MgPiB0b1wtY29ubmVjdDsKK+WXnCA+IGJlXC1mb25kXC1vZjsKK+S7iyA+IGZvcmVydW5uZXI7CivntKIgPiBsYXJnZVwtcm9wZTsKK+S4gSA+IG1hbGVcLWFkdWx0Owor6YGNID4gZXZlcnl3aGVyZTsKK+i+iCA+IGdlbmVyYXRpb247CivokpQgPiB0cmFuc3BsYW50Owor5oeCID4gdW5kZXJzdGFuZDsKK+mHiiA+IGludGVycHJldGU7CivnurUgPiBpbmR1bGdlXC1pbjsKK+eBrSA+IGV4dGluZ3Vpc2g7CivmrbQgPiB0YWtlXC1wbGFjZTsKK+S7gSA+IGh1bWFuZW5lc3M7CivmqoAgPiBzYW5kYWx3b29kOwor5YmKID4gc2NyYXBlXC1vZmY7CivliJEgPiBwdW5pc2htZW50Owor5bKCID4gaG93XD9cLXdoYXRcPzsKK+mahiA+IHByb3NwZXJvdXM7CivovokgPiBicmlnaHRuZXNzOwor5YiDID4gZWRnZWRcLXRvb2w7CivmnpAgPiBzcGxpdFwtd29vZDsKK+iFuCA+IGludGVzdGluZXM7Civmpa0gPiBwcm9mZXNzaW9uOwor5qWTID4gbWFwbGVcLXRyZWU7CivppIUgPiByaWNlXC1jYWtlczsKK+aeqyA+IG1hcGxlXC10cmVlOwor5YKNID4gYnlcLXNpZGVcLW9mOwor6IC9ID4gaW5kdWxnZVwtaW47CivpoLsgPiBmcmVxdWVudGx5Owor5qCTID4gd29vZGVuXC1wZWc7Civpn78gPiBtYWtlXC1zb3VuZDsKK+WHryA+IHRyaXVtcGhhbnQ7Civmga0gPiByZXNwZWN0ZnVsOwor56W4ID4gbWlzZm9ydHVuZTsKK+mikSA+IGZyZXF1ZW50bHk7CivnpoUgPiBtZWRpdGF0aW9uOwor5p+vID4gYXhlXC1oYW5kbGU7CivmjZAgPiBjb250cmlidXRlOwor6LiqID4gZm9vdHByaW50czsKK+WxgSA+IGJyZWFrXC13aW5kOwor6LCKID4gZnJpZW5kc2hpcDsKK+WCqCA+IHNhdmVcLW1vbmV5Owor6ZuBID4gd2lsZFwtZ29vc2U7CivmkYogPiBzcHJlYWRcLW91dDsKK+WQqCA+IG1ldHJpY1wtdG9uOwor5LmNID4gZmlyc3RcLXRpbWU7CivpmYAgPiBzdGVlcFwtYmFuazsKK+e4sSA+IGluZHVsZ2VcLWluOwor57imID4gaW5kdWxnZVwtaW47CivogqAgPiBpbnRlc3RpbmVzOwor6LWaID4gbWFrZVwtbW9uZXk7Civntr8gPiBjb3R0b25cLXdhZDsKK+e2sSA+IGhlYXZ5XC1yb3BlOwor57u1ID4gY290dG9uXC13YWQ7CivmipEgPiBwcmVzc1wtZG93bjsKK+mlvCA+IHJpY2VcLWNha2VzOwor5b2sID4gY3VsdGl2YXRlZDsKK+aSriA+IGxpdHRsZVwtYml0Owor57KlID4gcmljZVwtZ3J1ZWw7Civom64gPiBiYXJiYXJpYW5zOwor5664ID4gY2hvcHN0aWNrczsKK+ettSA+IGJhbWJvb1wtbWF0Owor6ImHID4gc21hbGxcLWJvYXQ7CivmjYwgPiBicmVha1wtb3BlbjsKK+esoCA+IGJhbWJvb1wtaGF0Owor5bqeID4gZGlzb3JkZXJseTsKK+mLqiA+IHNwcmVhZFwtb3V0Owor56udID4gdG9cLWNvbWJpbmU7CivnqY0gPiBhY2N1bXVsYXRlOwor5omJID4gZG9vclwtcGFuZWw7CivnurIgPiBoZWF2eVwtcm9wZTsKK+mHiyA+IGludGVycHJldGU7Civph4ggPiBpbnRlcnByZXRlOwor5Z2dID4gZW1iYW5rbWVudDsKK+aGpyA+IGlycmVzb2x1dGU7CivnlKkgPiB0aHJvd1wtYXdheTsKK+ellSA+IG15c3RlcmlvdXM7CivphYwgPiBzZXJ2ZVwtd2luZTsKK+ejkCA+IGxhcmdlXC1yb2NrOwor6L6FID4gY2hlZWtcLWJvbmU7CivmjaEgPiB0b1wtcGlja1wtdXA7CivnrbcgPiBjaG9wc3RpY2tzOwor6LmIID4gc3RhbXBcLWZlZXQ7CivmmZIgPiBkcnlcLWluXC1zdW47CivmrbwgPiBhbm5paGlsYXRlOwor5rapID4gYXN0cmluZ2VudDsKK+mcjiA+IGxpZ2h0XC1yYWluOwor5pOFID4gbW9ub3BvbGl6ZTsKK+iUrCA+IHZlZ2V0YWJsZXM7Civnu7ggPiBzaWxrXC1jbG90aDsKK+ecryA+IGJlXC1ibGluZGVkOwor5a+FID4gdG9cLXJlc3BlY3Q7CivomY8gPiB0b1wtY2FwdHVyZTsKK+ectiA+IGV5ZVwtc29ja2V0Owor56KfID4gc21hbGxcLWRpc2g7CivolbQgPiB0b1wtY29sbGVjdDsKK+i/rSA+IHJlcGVhdGVkbHk7Civml60gPiByaXNpbmdcLXN1bjsKK+aCjSA+IGNvdXJhZ2VvdXM7CivmnqIgPiBkb29yXC1oaW5nZTsKK+i3iyA+IGdvXC1ieVwtZm9vdDsKK+WcqiA+IFwocGhvbmV0aWNcKTsKK+aQlCA+IHRvXC1zY3JhdGNoOwor5ZqOID4gY3J5XC1sb3VkbHk7CivovpkgPiB3YWdvblwtcnV0czsKK+axmyA+IGhpZ2hcLXdhdGVyOwor6ISvID4gZHJpZWRcLW1lYXQ7Civll5IgPiB0b1wtZGVzcGFpcjsKK+WinyA+IGhpZ2hcLW1vdW5kOwor6aaLID4gZ2x1dHRvbm91czsKK+WovCA+IHByb3N0aXR1dGU7Civoua0gPiB0b1wtc2h1ZmZsZTsKK+a+iCA+IHRob3JvdWdobHk7CivnvK0gPiB3aW5kXC1yb3VuZDsKK+WWsyA+IHdoaXNwZXJpbmc7CivlvKcgPiB3b29kZW5cLWJvdzsKK+i3uiA+IHN0YW1wXC1mZWV0Owor5oOGID4gZGlzdHJlc3NlZDsKK+aStSA+IGRyaXZlXC1hd2F5Owor5q6DID4gbWlzZm9ydHVuZTsKK+aBqiA+IHJlc3BlY3RmdWw7CivovbYgPiBydXNoXC1mb3J0aDsKK+iFhiA+IHByb3NwZXJvdXM7Civnqr8gPiBtaW5lXC1zaGFmdDsKK+aotSA+IHdvb2RjdXR0ZXI7CivnioAgPiByaGlub2Nlcm9zOwor57uaID4gdmFyaWVnYXRlZDsKK+iXlSA+IGxvdHVzXC1yb290Owor5pGeID4gdG9cLXBpbGVcLXVwOwor5rukID4gc3RyYWluXC1vdXQ7CivnvIggPiBpbmRpc3RpbmN0Owor6IKqID4gYW5pbWFsXC1mYXQ7CivnlIQgPiB0b1wtZXhhbWluZTsKK+mTmyA+IGZyeWluZ1wtcGFuOwor5auhID4gbGVnYWxcLXdpZmU7CivnmIEgPiBmZWVsXC10aXJlZDsKK+ejtyA+IHBob3NwaG9ydXM7Civnv6EgPiBraW5nZmlzaGVyOwor556RID4gY2xvc2VcLWV5ZXM7CivpnK0gPiBjbG91ZHlcLXNreTsKK+iIqyA+IGZhbmN5XC1ib2F0Owor57qoID4gd2hpdGVcLXNpbGs7CivmprcgPiBmb290YnJpZGdlOwor57OcID4gcmljZVwtZ3J1ZWw7Civlo7kgPiBudW1iZXJcLW9uZTsKK+iUlyA+IHN1Z2FyXC1jYW5lOwor5b2XID4gYnJvb21zdGljazsKK+WWnyA+IGhlYXZlXC1zaWdoOwor5ZaRID4gdG9cLWJlXC1kdW1iOwor6bG/ID4gY3V0dGxlZmlzaDsKK+WAnCA+IHJhaXNlXC1oaWdoOwor5L6pID4gZ29cLWJldHdlZW47Civmu4IgPiB0b3JyZW50aWFsOwor6LSwID4gbnVtYmVyXC10d287Civlv7sgPiBkZWxpZ2h0ZnVsOwor54enID4gZmxpbnRzdG9uZTsKK+eolCA+IHJpcGVcLWdyYWluOwor5auUID4gY291cnRcLWxhZHk7CivpookgPiBmbHlcLXVwd2FyZDsKK+iIuCA+IGxhcmdlXC1ib2F0Owor55yZID4gdG9cLWdhemVcLWF0Owor55iAID4gYVwtaGVtYXRvbWE7CivlpK8gPiBoZWF2eVwtbG9hZDsKK+mllSA+IGdsdXR0b25vdXM7CivpsqAgPiBmaXNoXC1ib25lczsKK+iMjyA+IHRhbGxcLWdyYXNzOwor6IyvID4gY2hpbmFcLXJvb3Q7CivpsqcgPiBnaWFudFwtZmlzaDsKK+mApiA+IG1lYW5kZXJpbmc7CivpqpwgPiB3aWxkXC1ob3JzZTsKK+asuSA+IGZpZXJjZVwtZG9nOwor57ybID4gZGVjb3JhdGl2ZTsKK+iLlSA+IHJ1c2hcLXBsYW50Owor6aG4ID4gbGFyZ2VcLWZhY2U7CivlsJUgPiBcKHBob25ldGljXCk7CivnvKYgPiBwbGFpblwtc2lsazsKK+W4mSA+IGJvb2tcLWNvdmVyOwor6bODID4gZmlzaFwtZ2lsbHM7CivphrQgPiBzd2VldFwtd2luZTsKK+i+iiA+IHR1cm5cLXJvdW5kOwor5bKYID4gc3RlZXBcLWhpbGw7CivlgKwgPiBub3RpY2VhYmxlOwor6bKeID4gZHJpZWRcLWZpc2g7CivnsJ8gPiBiYW1ib29cLW1hdDsKK+eouSA+IGFjY3VtdWxhdGU7CivnvIEgPiBibGFja1wtc2lsazsKK+eupyA+IHJhdHRhblwtYm94Owor5aKBID4gdG9cLXBsYXN0ZXI7CivnvbQgPiBicm93blwtYmVhcjsKK+eIsCA+IGxlYWRcLW9uXC10bzsKK+adsiA+IGJyaWdodFwtc3VuOwor55mUID4gaHlzdGVyaWNhbDsKK+aeiyA+IHNhbmRhbHdvb2Q7CivojpwgPiBhdmVuYVwtbnVkYTsKK+WfmSA+IGluc3RydW1lbnQ7Civnjb4gPiB0aGVcLWJhZGdlcjsKK+iOsyA+IHRyYW5zcGxhbnQ7Civpg6sgPiBwbGFjZVwtbmFtZTsKK+ibjyA+IHJhem9yXC1jbGFtOwor5qmlID4gd29vZGVuXC1wZWc7CivluJEgPiBhXC10cmVhc3VyeTsKK+aPoCA+IHRvXC1wdWxsXC11cDsKK+i2kSA+IGNhbicndFwtbW92ZTsKK+mYjSA+IGdhdGVrZWVwZXI7CivmjoogPiB0b1wtZXh0cmFjdDsKK+mVnSA+IGR5c3Byb3NpdW07CivnoJcgPiBnaWFudFwtY2xhbTsKK+WrqyA+IHVnbHlcLXdvbWFuOwor6JSMID4gdmVnZXRhYmxlczsKK+i3lyA+IHRoZVwtaW5zdGVwOwor5rW8ID4gdG9cLXJlcXVlc3Q7Civll4wgPiB0aGVcLXRocm9hdDsKK+WUkSA+IFwocGhvbmV0aWNcKTsKK+axhiA+IHRvXC1wYXJib2lsOwor5YitID4gY3V0XC10aHJvYXQ7Civpq4IgPiB0aGVcLXBlbHZpczsKK+iJiyA+IHNtYWxsXC1ib2F0Owor6ZK8ID4gbW9seWJkZW51bTsKK+aGnSA+IHRvXC1kaXNsaWtlOwor54KFID4gYnJpbGxpYW5jZTsKK+masyA+IHRvXC1kZXN0cm95Owor6IybID4gcmFudW5jdWx1czsKK+ezhyA+IGRyaWVkXC1yaWNlOwor6ZKGID4gZ2Fkb2xpbml1bTsKK+a+jCA+IHRvXC1leGhhdXN0Owor5bqAID4gdG9cLXByZXBhcmU7CivnirQgPiBhXC13aWxkXC1kb2c7Civln48gPiBhXC1ib3VuZGFyeTsKK+WHtSA+IHJlY2VwdGFjbGU7CivosK4gPiB0b1wtc2xhbmRlcjsKK+m+oiA+IGluXC1oYXJtb255Owor6b6QID4gZGlzb3JkZXJseTsKK+m+jiA+IGRpc29yZGVybHk7CivpvKcgPiB0aGVcLW1hcm1vdDsKK+m8hCA+IHRoZVwtc3BpZGVyOwor6bu5ID4gZW1icm9pZGVyeTsKK+m7siA+IGdyZXlcLWJsYWNrOwor6buqID4gZ3JleVwtYmxhY2s7Civpu6QgPiBibHVlXC1ibGFjazsKK+m4uiA+IGhvcm5lZFwtb3dsOwor6bWSID4gbXluYWhcLWJpcmQ7CivptYIgPiBob3JuZWRcLW93bDsKK+m0tyA+IHdvb2RwZWNrZXI7CivptIggPiB3aWxkXC1nb29zZTsKK+mzsiA+IHR1cnRsZWRvdmU7Civps6sgPiB3aWxkXC1nb29zZTsKK+mysCA+IHNtYWxsXC1maXNoOwor6bGQID4gZHJpZWRcLWZpc2g7CivpsYcgPiBhbmdsZXJmaXNoOwor6bCTID4gZmlzaFwtZ2lsbHM7CivpsIIgPiBjdXR0bGVmaXNoOwor6a+rID4gc21hbGxcLWZpc2g7Civpr5cgPiBkcmllZFwtZmlzaDsKK+mvgSA+IGZpc2hcLWJvbmVzOwor6a+AID4gZ2lhbnRcLWZpc2g7Civprr8gPiBkcmllZFwtZmlzaDsKK+munyA+IGFuZ2xlcmZpc2g7Civprp0gPiBkcmllZFwtZmlzaDsKK+mugSA+IHRoZVwtYm9uaXRvOwor6a23ID4gY3V0dGxlZmlzaDsKK+mtmyA+IHRoZVwtbXVsbGV0Owor6ayoID4gYm9pc3Rlcm91czsKK+msnCA+IHRvXC1nb1wtYmFsZDsKK+mroyA+IHNpbWlsYXJcLXRvOwor6auBID4gdGhpZ2hcLWJvbmU7CivpqYEgPiB3aWxkXC1ob3JzZTsKK+molyA+IHRvXC1zd2luZGxlOwor6aiLID4gdGFsbFwtaG9yc2U7CivpqIkgPiBmaW5lXC1ob3JzZTsKK+mnsCA+IGdyZXlcLWhvcnNlOwor6aa5ID4gcG9zdFwtaG9yc2U7CivppZ4gPiBnbHV0dG9ub3VzOwor6aSgID4gcmljZVwtY2FrZXM7CivpoKEgPiBmbHlcLXVwd2FyZDsKK+mghyA+IGxhcmdlXC1mYWNlOwor6Z6hID4gbGVnXC13YXJtZXI7CivpnbAgPiBsZWdcLXdhcm1lcjsKK+mdnSA+IHRoZVwtaGVhdmVuOwor6Z2JID4gY2xvdWR5XC1za3k7CivpnYYgPiBjbG91ZHlcLXNreTsKK+mdhCA+IGNsb3VkeVwtc2t5Owor6ZuwID4gYXRtb3NwaGVyZTsKK+mbmSA+IHNldFwtb2ZcLXR3bzsKK+mariA+IHRpXC1yaXNlXC11cDsKK+mZuyA+IHNtYWxsXC1oaWxsOwor6ZmRID4gcGxhY2VcLW5hbWU7CivpmK8gPiBmb3VuZGF0aW9uOwor6ZefID4gcGVhY2VmdWxseTsKK+mWvSA+IGdhdGVrZWVwZXI7CivplqcgPiBib2lzdGVyb3VzOwor6ZWaID4gc21hbGxcLWNvaW47CivplKwgPiBsb25nXC1zcGVhcjsKK+mStyA+IHByb21ldGhpdW07CivpkLogPiBmcnlpbmdcLXBhbjsKK+mQtiA+IG1ldGFsXC1yaW5nOwor6ZCaID4gc29mdFwtc3RlZWw7CivpkJIgPiBsYXdyZW5jaXVtOwor6ZCAID4gYVwtY3VwYm9hcmQ7Civpj5EgPiBkeXNwcm9zaXVtOwor6Y6qID4gdG9cLWVuZ3JhdmU7CivpjpsgPiBsYXJnZVwtYmVsbDsKK+mNgCA+IHRlY2huZXRpdW07CivpjJ8gPiBsb25nXC1zcGVhcjsKK+mMniA+IGluc3RydW1lbnQ7CivpjI8gPiBzb2Z0XC1zdGVlbDsKK+mJrCA+IG1vbHliZGVudW07CivpiIogPiBjYWRvbGluaXVtOwor6YeTID4gZ2Fkb2xpbml1bTsKK+mGoSA+IHdpbmVcLXByZXNzOwor6YadID4gd2hpdGVcLXdpbmU7CivphYUgPiByYWlzZVwtZmVldDsKK+mDuSA+IHBsYWNlXC1uYW1lOwor6YKQID4gbWVhbmRlcmluZzsKK+mArCA+IHRvXC1zY2F0dGVyOwor6LylID4gdHVyblwtcm91bmQ7CivovJQgPiBjaGVla1wtYm9uZTsKK+i7vCA+IHJ1c2hcLWZvcnRoOwor6LqpID4gdGFrZVwtcXVpY2s7CivoupsgPiBleGFnZ2VyYXRlOwor6LqXID4gZXhhZ2dlcmF0ZTsKK+i5pCA+IGZvb3RwcmludHM7CivouKcgPiB1bmVhc2luZXNzOwor6LicID4gdG9cLXN0dW1ibGU7CivouJYgPiB0cmFtcGxlXC1vbjsKK+i3pSA+IHN0YW1wXC1mZWV0Owor6LeQID4gdG9cLXRyYW1wbGU7Civot4EgPiB0cmFtcGxlXC1vbjsKK+i2piA+IGNhbicndFwtbW92ZTsKK+iysyA+IG51bWJlclwtdHdvOwor6LKuID4gbnVtYmVyXC10d287CivosYggPiBob3dcP1wtd2hhdFw/Owor6LGAID4gdG9cLXF1YXJyZWw7Civora0gPiB0b1wtc2xhbmRlcjsKK+itmyA+IHRvXC1zbGFuZGVyOwor6K2WID4gdG9cLXNsYW5kZXI7CivorZIgPiBwcm9tdWxnYXRlOwor6KyqID4gdG9cLWNvbnN1bHQ7Civoq7QgPiBpblwtaGFybW9ueTsKK+irnyA+IHRvXC1leGFtaW5lOwor6Kq8ID4gZnJpZW5kc2hpcDsKK+iqqSA+IHRvXC1xdWFycmVsOwor6KiOID4gdG9cLWRpc2N1c3M7Civop4MgPiBwbGFjZVwtbmFtZTsKK+imuCA+IHN0ZWFsXC1sb29rOwor6Ka1ID4gc3RlYWxcLWxvb2s7CivopaEgPiBzaG9ydFwtY29hdDsKK+ijqiA+IHRoZVwtc2xlZXZlOwor6KKyID4gcGxhY2VcLW5hbWU7CivooqAgPiBib29rXC1jb3ZlcjsKK+iinyA+IGJvb2tcLWNvdmVyOwor6KC7ID4gYmFyYmFyaWFuczsKK+iftiA+IHJhem9yXC1jbGFtOwor6J+rID4gc2lsdmVyZmlzaDsKK+ifoyA+IGxvdXNlXC1lZ2dzOwor6J+BID4gYVwtbW9zcXVpdG87Civom5wgPiB3b29kXC1sb3VzZTsKK+iYoiA+IHRhbGxcLWdyYXNzOwor6JanID4gZHJpZWRcLWZvb2Q7CivolaEgPiBoZW1wXC1zZWVkczsKK+iTtyA+IG1vdGhlcndvcnQ7Civokr0gPiBhbnRocmFjZW5lOwor6JKmID4gdG9cLW1lYXN1cmU7CivokpYgPiBwbGFudFwtbmFtZTsKK+iRryA+IG9ycmlzXC1yb290Owor6I6aID4gYmFtYm9vXC1tYXQ7CivojbUgPiBwb2xlbW9uaXVtOwor6ImsID4gbGFyZ2VcLXNoaXA7CivoiZEgPiBzbWFsbFwtYm9hdDsKK+iItCA+IHNtYWxsXC1ib2F0Owor6IaTID4gaW50ZXN0aW5lczsKK+iEqiA+IGVyeXNpcGVsYXM7CivohKkgPiBkcmllZFwtbWVhdDsKK+iElyA+IGNvaW5jaWRpbmc7CivogrggPiBzcHJlYWRcLW91dDsKK+iCpiA+IGxhcmdlXC1oZWFkOwor6IGfID4gc29uXC1pblwtbGF3Owor57+AID4gZmx5XC11cHdhcmQ7CivnvoYgPiBicm93blwtYmVhcjsKK+e7iyA+IGxhcmdlXC1yb3BlOwor57maID4gd2luZFwtcm91bmQ7CivnuZAgPiBmaW5lXC1jbG90aDsKK+e4tSA+IHBsYWluXC1zaWxrOwor57ifID4gZGVjb3JhdGl2ZTsKK+e4hyA+IGRlY29yYXRpb247Civnt7IgPiBpbmRpc3RpbmN0Owor57ecID4gY290dG9uXC13YWQ7Civnt4cgPiBibGFja1wtc2lsazsKK+e2oiA+IHNpbGtcLWNsb3RoOwor57W6ID4gZmluZVwtbGluZW47CivntaIgPiB2YXJpZWdhdGVkOwor57WbID4gc2lsa1wtYnJhaWQ7CivntZYgPiBmaW5lXC1zaWxrczsKK+e1kyA+IG9ic3RydWN0ZWQ7CivntLwgPiBsYXJnZVwtcm9wZTsKK+e0iCA+IHdoaXRlXC1zaWxrOwor57K7ID4gcHJvdmlzaW9uczsKK+eypiA+IHBob3NwaG9ydXM7CivnsKUgPiBsYXJnZVwtcGlwZTsKK+evuSA+IHRvXC1jb2xsZWN0Owor56+yID4gYnJvb21zdGljazsKK+eviyA+IHJhdHRvblwtYm94Owor566gID4gaG9yc2VcLXdoaXA7CivnrpogPiBicmllZlwtbm90ZTsKK+etryA+IGNob3BzdGlja3M7Civnq7AgPiBjZW50aWxpdGVyOwor56uhID4gaGVjdG9saXRlcjsKK+erkyA+IG1pbGxpbGl0ZXI7CivnqrAgPiBicmlja1wta2lsbjsKK+eprSA+IHdpbGRcLWdyYWluOwor56iGID4gd2lsZFwtZ3JhaW47CivnpqogPiBtZWRpdGF0aW9uOwor56aaID4gcGxhY2VcLW5hbWU7Civnpo0gPiBtaXNmb3J0dW5lOwor56WFID4gY2FsYW1pdGllczsKK+ejkSA+IHN0b25lXC1taWxsOwor56GoID4gZ2lhbnRcLWNsYW07CivnoZkgPiBzdG9uZVwtbWlsbDsKK+ehgyA+IGFcLXJlZFwtbW9sZTsKK+efgSA+IHRvXC1sb29rXC1hdDsKK+ednyA+IGNsZWFyXC1leWVkOwor55yGID4gaW5kaXN0aW5jdDsKK+eWlSA+IGhlYWRcLXNvcmVzOwor55WTID4gcmljZVwtZmllbGQ7CivnlYEgPiB0b1wtZ2l2ZVwtdG87CivnlKIgPiBnaXZlXC1iaXJ0aDsKK+eOlCA+IGdyZWVuXC1qYWRlOwor546FID4gbXlzdGVyaW91czsKK+eMmCA+IGZpZXJjZVwtZG9nOwor54qbID4gYVwtYmxhY2tcLW94Owor54mPID4gcHJpdnlcLWhvbGU7CivniYsgPiBtZW1vcmFuZHVtOwor54irID4gcmFkaWNhbFwtODc7Civnh5AgPiBwaG9zcGhvcnVzOwor54aFID4gc21vb3RoXC1vdXQ7Civng5UgPiB0b1wtZGVzdHJveTsKK+eBuiA+IGNhbmRsZVwtZW5kOwor54GSID4gdG9cLXNwYXR0ZXI7Civmv74gPiBzdHJhaW5cLW91dDsKK+a/mSA+IHRvXC1yZXZvbHZlOwor5r+HID4gYXN0cmluZ2VudDsKK+a/hiA+IHJpdmVyXC1iYW5rOwor5r6BID4gYXN0cmluZ2VudDsKK+a+gCA+IGFzdHJpbmdlbnQ7Civmur4gPiBsaWdodFwtcmFpbjsKK+a4iyA+IGFzdHJpbmdlbnQ7CivmtpggPiByaXZlclwtYmFuazsKK+azhiA+IGxpY2VudGlvdXM7CivmrrIgPiBhbm5paGlsYXRlOwor5q6xID4gYW5uaWhpbGF0ZTsKK+attyA+IHRha2VcLXBsYWNlOwor5qyDID4gc2FuZGFsd29vZDsKK+arviA+IHRoZVwtcG9tZWxvOwor5qurID4gd29vZGVuXC1wZWc7CivmqrwgPiByaWRnZVwtcG9sZTsKK+aptCA+IHBsYWNlXC1uYW1lOwor5qieID4gZG9vclwtaGluZ2U7CivmprwgPiB3aW5lXC1nbGFzczsKK+ampiA+IHRyZWVcLXRydW5rOwor5qWqID4gc21hbGxcLWRpc2g7CivmpLUgPiBwb21wZWxtb3VzOwor5qSzID4gdGhlXC1waXZvdHM7CivmpIwgPiBpbnN0cnVtZW50Owor5qC0ID4gc2FuZGFsd29vZDsKK+agmyA+IHRoZVwtbGljaGVlOwor5qCYID4gZnJ1aXRcLXRyZWU7Civmn7cgPiBpbnN0cnVtZW50Owor5p2iID4gd29vZHdvcmtlcjsKK+acjCA+IGRpc3RyaWJ1dGU7Civmm6wgPiBkcnlcLWluXC1zdW47CivmmpggPiByaXNpbmdcLXN1bjsKK+aXlSA+IHBsYWNlXC1uYW1lOwor5peAID4gcGxhY2VcLW5hbWU7CivmlqIgPiB0b1wtcGx1bmRlcjsKK+aWkiA+IHZhcmllZ2F0ZWQ7CivmlKQgPiBzcHJlYWRcLW91dDsKK+aUhiA+IGRyaXZlXC1hd2F5Owor5pOqID4gdG9cLXR1Y2tcLWluOwor5pOlID4gZHJpdmVcLWF3YXk7Civmkr8gPiB0b1wtcGlja1wtdXA7CivmkrEgPiB0b1wtc2hvcnRlbjsKK+aOsSA+IHBpY2twb2NrZXQ7Civmjo4gPiBkcmFnXC1hc2lkZTsKK+aMrSA+IGZpc2hcLWJvbmVzOwor5oqFID4gdG9cLWNvbGxlY3Q7CivmiaEgPiBkcmFnXC1hbG9uZzsKK+aGuCA+IHRvXC1mbGF0dGVyOwor5oaNID4gYmVcLWhhdWdodHk7CivmhoAgPiB0b1wtcmVseVwtb247CivmhK4gPiBkaXN0cmVzc2VkOwor5oSTID4gcHJvZmxpZ2F0ZTsKK+aDjyA+IGF2YXJpY2lvdXM7CivmgZsgPiBkaXNvcmRlcmVkOwor5oCyID4gYmVcLWFueGlvdXM7Civlv4sgPiB0b1wtcmVseVwtb247CivlvqcgPiBldmVyeXdoZXJlOwor5b2/ID4gcmVzZW1ibGluZzsKK+W8jSA+IG51bWJlclwtdHdvOwor5byMID4gbnVtYmVyXC1vbmU7CivlvIcgPiBjb3Zlclwtb3ZlcjsKK+W7sSA+IGhhcm1vbmlvdXM7Civlu4AgPiB0b1wtY29uY2VhbDsKK+W6tCA+IHBsYWNlXC1uYW1lOwor5be8ID4gcGxhY2VcLW5hbWU7Civlt4IgPiBwbGFjZVwtbmFtZTsKK+W1mSA+IHBsYWNlXC1uYW1lOwor5bO0ID4gc3RlZXBcLWhpbGw7Civls5MgPiBwbGFjZVwtbmFtZTsKK+WxoiA+IGZyZXF1ZW50bHk7CivlsYQgPiB0aGVcLXZhZ2luYTsKK+WwgiA+IG1vbm9wb2xpemU7CivlrrwgPiB0eXJhbm5pY2FsOwor5a28ID4gbWlzZm9ydHVuZTsKK+WqnyA+IGx1c3RcLWFmdGVyOwor5aSFID4gdG9cLWRlc2NlbmQ7Civlo6kgPiBlbWJhbmttZW50Owor5aOOID4gaW5zdHJ1bWVudDsKK+WhsiA+IG9wZW5cLXNwYWNlOwor5aGkID4gaW5zdHJ1bWVudDsKK+WgriA+IGFcLWJvdW5kYXJ5Owor5aCDID4gY29tcGxpYW5jZTsKK+WdkiA+IHRvXC1jb21wYXJlOwor5ZymID4gd2F0ZXJcLWdhdGU7Civlm4wgPiBsb3F1YWNpb3VzOwor5Zq1ID4gZ2x1dHRvbm91czsKK+WasiA+IHJlYWRcLWFsb3VkOwor5Zm4ID4gbWV0cmljXC10b247CivlmZAgPiByZWNlcHRhY2xlOwor5ZiCID4gY3J5XC1sb3VkbHk7Civll60gPiBwbGFjZVwtbmFtZTsKK+WWuCA+IHBsYWNlXC1uYW1lOwor5Za2ID4gZW5jYW1wbWVudDsKK+WUvSA+IHRvXC10d2l0dGVyOwor5ZSfID4gcGxhY2VcLW5hbWU7CivlkbQgPiBicmVhdGhlXC1vbjsKK+WPhiA+IGNsb3VkeVwtc2t5Owor5Y2dID4gaGFpclwtc3R5bGU7Civlio8gPiB0b1wtYnV0Y2hlcjsKK+WKhCA+IGJyaWVmXC1ub3RlOwor5YmzID4gYnJpZWZcLW5vdGU7CivliYQgPiBjdXRcLXRocm9hdDsKK+WIvCA+IHRvXC1wbHVuZGVyOwor5YiEID4gZWRnZWRcLXRvb2w7Civlh7QgPiB0b1wtcmVseVwtb247Civlh7EgPiB0cml1bXBoYW50Owor5YeCID4gdG9cLXJlcXVlc3Q7CivlhpggPiB0b1wtbW92ZVwtb247CivlhZ8gPiB0b1wtYWR2YW5jZTsKK+WEiCA+IGdvXC1iZXR3ZWVuOwor5YOpID4gY291cmFnZW91czsKK+WBrSA+IHRyYW5zZ3Jlc3M7CivlgZ0gPiBub3RcLWZhY2luZzsKK+WAgCA+IGJld2lsZGVyZWQ7Civkv7sgPiB0b1wtcHJlcGFyZTsKK+S8tyA+IGRlc2NlbmRlbnQ7Civku5sgPiB5b3VuZ1wtZ2lybDsKK+S6ryA+IHRvXC1yZWNlaXZlOwor5LioID4gbnVtYmVyXC1vbmU7CivktqsgPiBmaW5lXC10ZWV0aDsKK+S2iSA+IGd1aW5lYVwtcGlnOwor5LWqID4gcHVyZVwtYmxhY2s7CivktZ0gPiBkYXJrXC1ibGFjazsKK+S1hyA+IHRvXC1kaXNsaWtlOwor5LOVID4gdGhlXC1waWdlb247Civks4wgPiB0aGVcLWN1Y2tvbzsKK+SzgCA+IHRoZVwtY3Vja29vOwor5LKrID4gdGhlXC1waWdlb247CivksqkgPiB0aGVcLWN1Y2tvbzsKK+SypSA+IHRoZVwtcGlnZW9uOwor5LGdID4gYmxhY2tcLWNhcnA7CivksYYgPiBzbWFsbFwtZmlzaDsKK+SxhSA+IHRoZVwtbXVsbGV0Owor5LGEID4gYVwtZmxhdGZpc2g7CivksLogPiBhXC1mbGF0ZmlzaDsKK+SwrCA+IHdpbGRcLWdob3N0Owor5LCEID4gc2hvcnRcLWhhaXI7Civkr5QgPiB0b1wtaW5jbGluZTsKK+SvkSA+IHRoZVwtcGVsdmlzOwor5K+MID4gdGhlXC1zYWNydW07Civkr4ogPiB0aGVcLXBlbHZpczsKK+SviCA+IHRoZVwtcGVsdmlzOwor5K6vID4gZmluZVwtaG9yc2U7Civkro0gPiBjdXJsaW5nXC11cDsKK+SujCA+IGZpbmVcLWhvcnNlOwor5K24ID4gYVwtc3RhbGxpb247CivkraMgPiByaWNlXC1jYWtlczsKK+SthCA+IGdsdXR0b25vdXM7CivkrLcgPiB3ZWxsXC1mZWVkXC47CivkrKIgPiBnbHV0dG9ub3VzOwor5KulID4gYVwtd3J5XC1uZWNrOwor5KujID4gYVwtd3J5XC1uZWNrOwor5KueID4gbGFyZ2VcLWhlYWQ7Civkq5MgPiBsYXJnZVwtaGVhZDsKK+SquiA+IHRlZXRocmlkZ2U7CivkqqAgPiBwdWx2ZXJpemVkOwor5KmxID4gYVwtc2NhYmJhcmQ7CivkqbAgPiBhXC1zY2FiYmFyZDsKK+SpoiA+IGFcLXNjYWJiYXJkOwor5KmZID4gYVwtc2NhYmJhcmQ7CivkqYMgPiBhcHBlYXJhbmNlOwor5KmBID4gdGhpblwtaGFpcnM7CivkqL0gPiB0b1wtcmVzb2x2ZTsKK+SoqSA+IHRoZVwtc3Bpcml0Owor5KigID4gY2xvdWR5XC1za3k7Civkp78gPiB0aGVcLW1hZ3BpZTsKK+SnsiA+IHRoZVwtbWFncGllOwor5KexID4gdGhlXC1waWdlb247Civkp6MgPiB0b1wtc3RvcFwtdXA7Civkpq8gPiB2ZXJ5XC1kZW5zZTsKK+SmpyA+IHRvXC1xdWFycmVsOwor5KaNID4gdG9cLWluY2x1ZGU7CivkpY4gPiBpbnN0cnVtZW50Owor5KS+ID4gdG9cLWNvbnRhaW47CivkpL0gPiBmYXJtXC10b29sczsKK+SkvCA+IG1ldGFsXC13aXJlOwor5KS5ID4gdG9cLWVuZ3JhdmU7CivkpIcgPiB3aGl0ZVwtd2luZTsKK+SipSA+IGluXC1oYXJtb255Owor5KGnID4gYVwtY2FycmlhZ2U7CivkoaQgPiBhXC1jYXJyaWFnZTsKK+ShmiA+IGltcGxlbWVudHM7CivkoY4gPiBhXC13aW5kbGFzczsKK+SguCA+IG9ic2VxdWlvdXM7CivkoLYgPiB0b1wtcHJvamVjdDsKK+SgqiA+IGZvb3RwcmludHM7CivkoKkgPiB0b1wtdXJpbmF0ZTsKK+SgpiA+IHRvXC1zdHVtYmxlOwor5KCfID4gdG9cLXRyaXBcLXVwOwor5KCYID4gb25lXC1sZWdnZWQ7Civkn7wgPiBmb290cHJpbnRzOwor5J+qID4gcmVwZWF0ZWRseTsKK+SfoSA+IHRvXC10cmFtcGxlOwor5J+ZID4gdG9cLXN0YWdnZXI7Civkn4QgPiBpblwtYVwtaHVycnk7CivknoUgPiB0b1wtZ2l2ZVwtdG87Civknb8gPiBob25vdXJhYmVsOwor5J23ID4gc2VjdXJpdGllczsKK+SdtCA+IHRvXC1wcmVzZW50Owor5J2xID4gdG9cLXRyb3VibGU7CivknZQgPiB0aGVcLWJhZGdlcjsKK+ScmyA+IHRvXC1zbGFuZGVyOwor5JyZID4gbm90XC1jbGV2ZXI7CivknJIgPiBleHByZXNzaW9uOwor5JyRID4gdG9cLXNsYW5kZXI7CivknIsgPiB0b1wtc3VzcGVuZDsKK+SbvSA+IGxvcXVhY2lvdXM7Civkm7wgPiB0b1wtc2xhbmRlcjsKK+SbsiA+IHRvXC1kZWNlaXZlOwor5JuuID4gdG9cLWRlc3Ryb3k7Civkm6sgPiB0b1wtZGVjZWl2ZTsKK+SbqSA+IHRvXC1zbGFuZGVyOwor5JumID4gbGl0aWdhdGlvbjsKK+SbliA+IGxvcXVhY2lvdXM7Civkm5UgPiB0b1wtZmxhdHRlcjsKK+SbjSA+IGxvcXVhY2lvdXM7Civkm4UgPiBsb3F1YWNpb3VzOwor5JuEID4gdG9cLWNvbnNvbGU7CivkmrkgPiB0b1wtcHJlcGFyZTsKK+SasCA+IHRvXC1wcmVwYXJlOwor5JqTID4gdG9cLW9ic2VydmU7Civkmo0gPiB0b1wtbG9va1wtYXQ7CivkmocgPiB0b1wtb2JzZXJ2ZTsKK+SZuiA+IHRvXC1vYnNlcnZlOwor5JmaID4gY3VybGluZ1wtdXA7CivkmKEgPiB0aGVcLXNsZWV2ZTsKK+SYlSA+IHByb3N0aXR1dGU7CivklrMgPiBqZWxseVwtZmlzaDsKK+SVoSA+IGNvbXBvc2l0YWU7CivklJggPiBmaXNoXC1wYXN0ZTsKK+STtSA+IHRvXC1ibG9zc29tOwor5JOkID4gdmVnZXRhdGlvbjsKK+SThiA+IHRvXC1jdXRcLXRoZTsKK+SSoiA+IHN3ZWV0XC1mbGFnOwor5JG/ID4gc21hbGxcLWJvYXQ7CivkkbAgPiBzbWFsbFwtYm9hdDsKK+SRrSA+IHdhclwtdmVzc2VsOwor5JGhID4gc21hbGxcLWJvYXQ7CivkkY0gPiB0b1wtc3dhbGxvdzsKK+SQoiA+IHRvXC13cmlua2xlOwor5I+tID4gdGhlXC1jaGVla3M7Civkj4wgPiB0b1wtdmlicmF0ZTsKK+SPiyA+IHJlc3BlY3RmdWw7Civkjp8gPiB0b1wtZmF3blwtb247CivkjbUgPiB5b3VuZ1wtZ29hdDsKK+SNniA+IGFcLWRyYWdcLW5ldDsKK+SNlyA+IHRvXC1oYW5nXC11cDsKK+SNlCA+IGFcLWZ1bGxcLW5ldDsKK+SMgCA+IHRvXC1hcnJhbmdlOwor5Iu2ID4gdG9cLXN0dW1ibGU7Civki7EgPiBhXC13aWxkXC15YWs7CivkircgPiBibGFja1wtc2lsazsKK+SKqSA+IHJpY2VcLWdyYXZ5Owor5ImNID4gdG9cLW9ic2VydmU7Civkh44gPiB0b1wtc3RhcnRsZTsKK+SHhyA+IHRoZVwtcGVvcGxlOwor5IaSID4gdG9cLWV4YW1pbmU7CivkhosgPiB0aGVcLWF1dHVtbjsKK+SFlCA+IGRlYWRcLWNyb3BzOwor5ISfID4gdG9cLXdvcnNoaXA7CivkhJMgPiB0b1wtd29yc2hpcDsKK+SEkSA+IHRvXC13b3JzaGlwOwor5ISQID4gdG9cLXdvcnNoaXA7CivkhIYgPiB0b1wtd29yc2hpcDsKK+SEhSA+IHRvXC13b3JzaGlwOwor5ISDID4gbWlzZm9ydHVuZTsKK+SEgSA+IHRvXC13b3JzaGlwOwor5IKEID4gdG9cLXN0YXJ0bGU7CivkgbogPiB0b1wtbG9va1wtYXQ7Civkga8gPiB0b1wtbG9va1wtYXQ7CivkgZ4gPiBhXC1wcm92aW5jZTsKK+SBmCA+IHRvXC1sb29rXC1hdDsKK+SBlSA+IHRvXC1sb29rXC1hdDsKK+SBkyA+IHRvXC1sb29rXC1hdDsKK+SBiSA+IHRvXC1leGFtaW5lOwor5IGIID4gdG9cLWV4YW1pbmU7CivkgYEgPiBzdHJhYmlzbXVzOwor5IC2ID4gc3RyYWJpc211czsKK+SAsSA+IHRvXC1leGFtaW5lOwor5ICvID4gdG9cLWxvb2tcLWF0Owor5ICZID4gdG9cLWxvb2tcLWF0Owor5ICGID4gdG9cLWV4aGF1c3Q7CivjvpkgPiBlcnlzaXBlbGFzOwor472oID4gZnJhZ21lbnRlZDsKK+O9oyA+IGFcLWZyb250aWVyOwor472YID4gYm9yZGVybGFuZDsKK+O8uSA+IGVhcnRlbndhcmU7CivjurMgPiBibGFja1wtbWljYTsKK+O6kyA+IGZvb3RwcmludHM7Civjuo8gPiB0aGVcLWJhZGdlcjsKK+O6hSA+IHRoZVwtbW9ua2V5Owor47mIID4gYVwtYmxhY2tcLW94Owor47ioID4gYVwtYmlnXC1idWxsOwor47iMID4gdG9cLXR3aW5rbGU7Civjt7cgPiB0aGlja1wtc291cDsKK+O3oSA+IHRvXC1zdGFydGxlOwor47atID4gYWxtb3N0XC1kcnk7CivjtpwgPiBkZWVwXC13YXRlcjsKK+O1nyA+IGxpZ2h0XC1yYWluOwor47WAID4gd2F0ZXJcLWZsb3c7CivjtJwgPiBldmVyeXdoZXJlOwor47OBID4gd2F0ZXJcLWZsb3c7Civjsq8gPiBsb25nXC1oYWlyeTsKK+OyniA+IHNob3J0XC1oYWlyOwor47KVID4gdmFyaWVnYXRlZDsKK+OyjCA+IGRvZycnc1wtaGFpcjsKK+OyiSA+IGVnZ1wtc2hlbGxzOwor47G4ID4gdG9cLWV4aGF1c3Q7CivjsbAgPiB0b1wtZGVzdHJveTsKK+OxpiA+IHRvXC1kaXNjYXJkOwor47GkID4gdG9cLWV4aGF1c3Q7CivjsZwgPiBwZXN0aWxlbmNlOwor47GbID4gdG9cLWRlc3Ryb3k7CivjsZogPiB0b1wtZGVzdHJveTsKK+OwuCA+IHRvXC1jb2xsZWN0Owor47CRID4gZnJ1aXRcLXRyZWU7Civjr4cgPiBhXC1zdG9ja2FkZTsKK+OtmCA+IGFcLXNjYWJiYXJkOwor462JID4gZmFybVwtdG9vbHM7CivjrLEgPiB0b1wtcmVwbGFjZTsKK+OsqiA+IHRvXC1mb2xkXC11cDsKK+OsnCA+IHRvXC1hZHZhbmNlOwor46ukID4gYVwtbG9uZ1wtZGF5Owor46q0ID4gdG9cLW1lYXN1cmU7CivjqpwgPiB0b1wtbWVhc3VyZTsKK+OqmiA+IHRvXC1zY2F0dGVyOwor46qUID4gdG9cLXNjYXR0ZXI7CivjqowgPiB0b1wtbGVhZFwtb247CivjqokgPiB0b1wtY29tYmluZTsKK+OpuSA+IHRvXC1waWxlXC1vbjsKK+OpuCA+IHRvXC1waWxlXC1vbjsKK+OpqiA+IHRvXC1jb2xsZWN0Owor46meID4gdG9cLWJhY2tcLXVwOwor46mdID4gdG9cLWNvbXBhcmU7CivjqZogPiB0b1wtY29sbGVjdDsKK+OpliA+IHRvXC1iYWNrXC11cDsKK+OpjSA+IHRvXC1iYWNrXC11cDsKK+OpgCA+IHRvXC1yZWNlaXZlOwor46i/ID4gdG9cLXJlY2VpdmU7CivjqLMgPiBhXC1jdXBib2FyZDsKK+OosiA+IHRvXC1iYWNrXC11cDsKK+OoryA+IHRvXC1lbmxhcmdlOwor46iuID4gdG9cLWxpZnRcLXVwOwor76imID4gbWV0cm9wb2xpczsKK+OoiiA+IHRvXC1kaXNjYXJkOwor76e4ID4gYmFtYm9vXC1oYXQ7Civvp64gPiBwaG9zcGhvcnVzOwor76ecID4gcHJvc3Blcm91czsKK++nkSA+IG51bWJlclwtc2l4Owor76a3ID4gc3dlZXRcLXdpbmU7CivjprYgPiByZXBlYXRlZGx5Owor46apID4gbWVsYW5jaG9seTsKK+OmmiA+IG1lbGFuY2hvbHk7CivvpowgPiB0YWtlXC1wbGFjZTsKK++mhCA+IHN0cmFpblwtb3V0Owor46aCID4gY29uc3RhbnRseTsKK+OltiA+IHRvXC1maWxsXC11cDsKK++lqiA+IGxhcmdlXC1yb3BlOwor46WjID4gdG9cLWJlbmVmaXQ7CivjpZogPiBtZWxhbmNob2x5Owor76WLID4gZnJlcXVlbnRseTsKK+OktyA+IHRvXC1kZWJhdWNoOwor46SpID4gdG9cLXJlc3BlY3Q7CivjpJAgPiBkaXNoYXJtb255Owor76SAID4gaG93XD9cLXdoYXRcPzsKK+OjvSA+IHRvXC1mb3JnaXZlOwor46OFID4gYm93XC1zdHJpbmc7Civjo4AgPiB0b1wtcmVib3VuZDsKK+OirSA+IGFcLWJvd1wtY2FzZTsKK+OimiA+IGFcLWNvcnJpZG9yOwor46KPID4gYVwtY2Vzc3Bvb2w7CivjoaUgPiB0b1wtY3VybFwtdXA7CivjnqAgPiBtYWxlXC1vcmdhbjsKK+OejiA+IGJvZHlcLXdhc3RlOwor456GID4gb25lXC1sZWdnZWQ7Civjna8gPiB0b1wtc29qb3VybjsKK+OchSA+IHRvXC1mYXduXC1vbjsKK+ObqiA+IHRvXC1zbGFuZGVyOwor45qgID4gZnVsbFwtZ3Jvd247Civjmo8gPiB0b1wtc2NhdHRlcjsKK+OZuiA+IGNyb3NzXC1yb2FkOwor45m0ID4gdG9cLWNvbmNlYWw7CivjmbIgPiB0b1wtc3RvcFwtdXA7CivjmYkgPiBwcm9zcGVyb3VzOwor45i/ID4gdG9cLWZpbGxcLXVwOwor45i7ID4gdG9cLXN0b3BcLXVwOwor45inID4gcHJlY2VkZW5jZTsKK+OYnSA+IHRvXC10YWtlXC1pbjsKK+OXrCA+IHRoaWNrXC1saXBzOwor45erID4gdG9cLXdoaXNwZXI7Civjl6IgPiBsb3F1YWNpb3VzOwor45eLID4gdGhlXC10aHJvYXQ7Civjl4cgPiB0b1wtc3dhbGxvdzsKK+OXhCA+IHRvXC1kZWNlaXZlOwor45a2ID4gdG9cLXN3YWxsb3c7CivjlpggPiB0b1wtc3RhcnRsZTsKK+OWhiA+IHRvXC1jb25kZW1uOwor45WrID4gdG9cLWltaXRhdGU7CivjlY0gPiB0b1wtaGVhcFwtdXA7CivjlYYgPiBmaW5lXC1zdG9uZTsKK+OUtyA+IHRvXC1zZWNyZXRlOwor45SYID4gdG9cLWRlZ3JhZGU7CivjlJMgPiB0b1wtc3RhbW1lcjsKK+OUjCA+IHRvXC1jdXRcLW9mZjsKK+OTuiA+IGNhc3RyYXRpb247Civjk64gPiB0b1wtZW5ncmF2ZTsKK+OTniA+IHRvXC1lbmdyYXZlOwor45OCID4gdHlyYW5uaWNhbDsKK+OStyA+IHRvXC1wcm9zcGVyOwor45KdID4gdG9cLWRlY2VpdmU7CivjkpwgPiByZXNwZWN0ZnVsOwor45KKID4gbG9xdWFjaW91czsKK+ORnCA+IHRvXC1lbmdyYXZlOwor45GCID4gdG9cLWltaXRhdGU7CivjkKQgPiB0b1wtaW1wbG9yZTsKK+S6hiA+IHRvXC1maW5pc2g7CivlrZAgPiBvZmZzcHJpbmc7CivlvrkgPiBwZW5ldHJhdGU7CivopoEgPiBuZWNlc3Nhcnk7CivovrEgPiBodW1pbGlhdGU7CivnnYAgPiBtYWtlXC1tb3ZlOwor5oiQID4gY29tcGxldGVkOwor552jID4gc3VwZXJ2aXNlOwor6LyvID4gZ2F0aGVyXC11cDsKK+W8pSA+IGV4dGVuc2l2ZTsKK+eboyA+IHN1cGVydmlzZTsKK+e+jiA+IGJlYXV0aWZ1bDsKK+W7giA+IHNpZGVcLXJvb207Civpl64gPiBhc2tcLWFib3V0Owor5bqtID4gY291cnR5YXJkOwor55mCID4gYmVcLWhlYWxlZDsKK+eXuiA+IHBhcmFseXNpczsKK+W3riA+IHRvXC1kaWZmZXI7Civpmr4gPiBkaWZmaWN1bHQ7CivotoUgPiBqdW1wXC1vdmVyOwor55WwID4gZGlmZmVyZW50Owor5LqyID4gcmVsYXRpdmVzOwor55WrID4gZGVsaW5lYXRlOwor55WcID4gbGl2ZXN0b2NrOwor55WRID4gZHJ5XC1maWVsZDsKK+eUmCA+IHN3ZWV0bmVzczsKK+iupCA+IHJlY29nbml6ZTsKK+iytCA+IGV4cGVuc2l2ZTsKK+iynSA+IHNlYVwtc2hlbGw7CivpmaIgPiBjb3VydHlhcmQ7Civovr4gPiBhcnJpdmVcLWF0Owor5LyXID4gbXVsdGl0dWRlOwor6K+GID4gcmVjb2duaXplOwor5YCSID4gZmFsbFwtb3ZlcjsKK+eOqSA+IHBsYXlcLXdpdGg7Civlg48gPiBhXC1waWN0dXJlOwor5a6FID4gcmVzaWRlbmNlOwor5o2uID4gdG9cLW9jY3VweTsKK+itryA+IHRyYW5zbGF0ZTsKK+itqyA+IHRhbGthdGl2ZTsKK+itmCA+IHJlY29nbml6ZTsKK+mAoCA+IGNvbnN0cnVjdDsKK+WqvCA+IG9sZFwtd29tYW47CivniqAgPiBzYWNyaWZpY2U7Civoqo0gPiByZWNvZ25pemU7CivniZIgPiBkb2N1bWVudHM7CivniYwgPiBzaWduYm9hcmQ7CivlqYYgPiBvbGRcLXdvbWFuOwor6KizID4gdHJhbnNsYXRlOwor54iQID4gZmlyZXBsYWNlOwor5LmFID4gbG9uZ1wtdGltZTsKK+WmviA+IGNvbmN1YmluZTsKK+WInSA+IGJlZ2lubmluZzsKK+imqiA+IHJlbGF0aXZlczsKK+mZpCA+IGVsaW1pbmF0ZTsKK+WGtSA+IGNvbmRpdGlvbjsKK+S5sSA+IGNvbmZ1c2lvbjsKK+WImyA+IGVzdGFibGlzaDsKK+emjyA+IGhhcHBpbmVzczsKK+i+kSA+IGdhdGhlclwtdXA7CivlgYcgPiBmYWxzZWhvb2Q7Civnqb8gPiBwZW5ldHJhdGU7CivooYYgPiBtdWx0aXR1ZGU7Civpob4gPiBsb29rXC1iYWNrOwor6KC2ID4gc2lsa3dvcm1zOwor5Li9ID4gYmVhdXRpZnVsOwor5riQID4gZ3JhZHVhbGx5Owor5byCID4gZGlmZmVyZW50Owor556nID4gZ2xhbmNlXC1hdDsKK+WfkiA+IGVuY2xvc3VyZTsKK+WfgyA+IGZpbmVcLWR1c3Q7CivonqIgPiBnbG93XC13b3JtOwor6YCAID4gc3RlcFwtYmFjazsKK+icuyA+IGRyYWdvbmZseTsKK+a8uCA+IGdyYWR1YWxseTsKK+e/uyA+IGZsaXBcLW92ZXI7CivlnI8gPiB0b1wtY2lyY2xlOwor5pmuID4gdW5pdmVyc2FsOwor6Ju5ID4gY2hyeXNhbGlzOwor5Li0ID4gZHJhd1wtbmVhcjsKK+ibiSA+IGRyYWdvbmZseTsKK+WNjyA+IGJlXC11bml0ZWQ7CivpupcgPiBiZWF1dGlmdWw7CivompUgPiBzaWxrd29ybXM7Civmua8gPiBob3RcLXdhdGVyOwor5L6LID4gcHJlY2VkZW50Owor6LS1ID4gZXhwZW5zaXZlOwor5rSyID4gY29udGluZW50Owor5p2+ID4gcGluZVwtdHJlZTsKK+S8mSA+IGNvbXBhbmlvbjsKK+avqyA+IGZpbmVcLWhhaXI7CivolY4gPiBidWNrd2hlYXQ7CivovpMgPiB0cmFuc3BvcnQ7Civms4EgPiBjb25kaXRpb247Civnm5EgPiBzdXBlcnZpc2U7CivmipggPiBicmVha1wtb2ZmOwor5rGwID4gZXhjZXNzaXZlOwor5ZCbID4gc292ZXJlaWduOwor5Y2xID4gZGFuZ2Vyb3VzOwor5qaCID4gZ2VuZXJhbGx5Owor6YCPID4gcGVuZXRyYXRlOwor5ZyIID4gdG9cLWNpcmNsZTsKK+auiiA+IGRpZmZlcmVudDsKK+auhiA+IGRhbmdlcm91czsKK+WOhCA+IGFkdmVyc2l0eTsKK+axhyA+IGNvbmNvdXJzZTsKK+WOiSA+IHdoZXRzdG9uZTsKK+mZhCA+IGFkaGVyZVwtdG87CivogqkgPiBzaG91bGRlcnM7CivprZggPiBuaWdodG1hcmU7CivljZQgPiBiZVwtdW5pdGVkOwor6I2SID4gd2FzdGVsYW5kOwor6ayxID4gbHV4dXJpYW50Owor6K+RID4gdHJhbnNsYXRlOwor5YygID4gY3JhZnRzbWFuOwor5qydID4gbHV4dXJpYW50Owor5Ly0ID4gY29tcGFuaW9uOwor5YyCID4gZnJhZ3JhbmNlOwor5Yu4ID4gcmVjb21tZW5kOwor5YunID4gcmVjb21tZW5kOwor6aOYID4gd2hpcmx3aW5kOwor6Im2ID4gYmVhdXRpZnVsOwor5Ym1ID4gZXN0YWJsaXNoOwor54KuID4gbGFyZ2VcLWd1bjsKK+i0nSA+IHNlYVwtc2hlbGw7Civpg44gPiBnZW50bGVtYW47CivpmaogPiBhY2NvbXBhbnk7Civoh6ggPiBkcmF3XC1uZWFyOwor5YedID4gY29hZ3VsYXRlOwor5YaXID4gZXhjZXNzaXZlOwor5YqdID4gcmVjb21tZW5kOwor5YmpID4gbGVmdG92ZXJzOwor6aWSID4gYm91bnRpZnVsOwor55aXID4gYmVcLWhlYWxlZDsKK+axpCA+IGhvdFwtd2F0ZXI7CivlvbsgPiBwZW5ldHJhdGU7Civpo5wgPiBmbGlwXC1vdmVyOwor5YOaID4gY29tcGFuaW9uOwor6IKYID4gdGhlXC1lbGJvdzsKK+iCliA+IGxvb2tcLWxpa2U7CivmmKggPiB5ZXN0ZXJkYXk7CivmmoIgPiB0ZW1wb3Jhcnk7CivpgJIgPiBoYW5kXC1vdmVyOwor6aGnID4gbG9va1wtYmFjazsKK+elpSA+IGdvb2RcLWx1Y2s7CivlgLkgPiB0ZW1wZXJhdGU7CivoibAgPiBkaWZmaWN1bHQ7Civku5cgPiByZWx5XC11cG9uOwor5p+/ID4gcGVyc2ltbW9uOwor6ZSuID4gZG9vclwtYm9sdDsKK+aeryA+IGRyaWVkXC1vdXQ7CivojrEgPiBnb29zZWZvb3Q7CivotZQgPiBpbmRlbW5pZnk7CivpgKIgPiBjb21lXC11cG9uOwor552BID4gb3BlblwtZXllczsKK+WYvyA+IGJlXC1zaWxlbnQ7Civku64gPiBmYWxzZWhvb2Q7Civpm6MgPiBkaWZmaWN1bHQ7CivotKogPiBiZVwtZ3JlZWR5Owor5pqrID4gdGVtcG9yYXJ5Owor6YCdID4gcGFzc1wtYXdheTsKK+S6giA+IGNvbmZ1c2lvbjsKK+iJviA+IGFydGVtaXNpYTsKK+iKrCA+IGZyYWdyYW5jZTsKK+iijSA+IGxvbmdcLWdvd247CivlhqQgPiBncmlldmFuY2U7CivppbYgPiBib3VudGlmdWw7CivngokgPiBmaXJlcGxhY2U7Civov6ogPiBlbmxpZ2h0ZW47CivlmIkgPiBleGNlbGxlbnQ7Civplr4gPiB0aHJlc2hvbGQ7Civntr4gPiB0aGluXC1zaWxrOwor6ImzID4gYmVhdXRpZnVsOwor6IaAID4gdXBwZXJcLWFybTsKK+eJuiA+IHNhY3JpZmljZTsKK+mhvSA+IG9ic3RpbmF0ZTsKK+atiSA+IGRlZmljaWVudDsKK+W4hSA+IGNvbW1hbmRlcjsKK+aGviA+IHRvXC1yZWdyZXQ7CivlioggPiBjdXRcLWFwYXJ0Owor5ouCID4gc2hha2VcLW9mZjsKK+mNtSA+IGRvb3JcLWJvbHQ7CivnrYggPiBhcnJvd1wtZW5kOwor5ougID4gdG9cLW9jY3VweTsKK+WOoiA+IHNpZGVcLXJvb207CivnhqwgPiBjb29rXC1kb3duOwor5omVID4gc2hha2VcLW9mZjsKK+WvkyA+IHJlc2lkZW5jZTsKK+eovCA+IHNvd1wtZ3JhaW47CivmgY0gPiBzZWVtaW5nbHk7Civnu6MgPiBlbWJyb2lkZXI7Civmh4MgPiBjb3VydGVvdXM7CivooawgPiB1bmRlcndlYXI7CivmhYogPiB0b1wtcmVzZW50Owor6IaKID4gc2hvdWxkZXJzOwor5r2tID4gZGVlcFwtcG9vbDsKK+aXtyA+IGV4dGVuc2l2ZTsKK+ehnSA+IHNhbHRwZXRlcjsKK+mBlCA+IGFycml2ZVwtYXQ7CivpgLkgPiBhcnJpdmVcLWF0Owor6aqkID4gcHJvY2VkdXJlOwor6Iu5ID4gYXJ0ZW1pc2lhOwor5b+/ID4gZ2V0XC1hbmdyeTsKK+WdoCA+IGZhbGxcLWRvd247CivonbYgPiBidXR0ZXJmbHk7CivnhIkgPiB0aGVyZXVwb247CivnpoAgPiByZXBvcnRcLXRvOwor5oyrID4gcHVzaFwtZG93bjsKK+mzhCA+IGFsbGlnYXRvcjsKK+iwkCA+IGhhcm1vbml6ZTsKK+WxjiA+IGV4Y3JlbWVudDsKK+WPqCA+IHRhbGthdGl2ZTsKK+iRsSA+IHNjYWxsaW9uczsKK+aeoyA+IGRhdGVcLXRyZWU7CivkvqMgPiBjb21wYW5pb247CivosLQgPiByZXByaW1hbmQ7CivmsbkgPiB0dXJidWxlbnQ7CivnmKsgPiBwYXJhbHlzaXM7CivolJogPiBsdXh1cmlhbnQ7Civms7sgPiBkcmFpblwtb2ZmOwor5L+tID4gdGVtcGVyYXRlOwor54CRID4gd2F0ZXJmYWxsOwor6J20ID4gYnV0dGVyZmx5Owor5qiKID4gYVwtcmFpbGluZzsKK+aVmyA+IGRyYXdcLWJhY2s7CivnpqcgPiBoYXBwaW5lc3M7CivojLUgPiBhXC1jdXNoaW9uOwor5qOVID4gaGVtcFwtcGFsbTsKK+WonyA+IGJlYXV0aWZ1bDsKK+WAqSA+IGJlYXV0aWZ1bDsKK+i+lyA+IHR1cm5cLW92ZXI7CivmgaQgPiBzaG93XC1waXR5Owor5L6IID4gbHV4dXJpb3VzOwor5aSlID4gY29tcGFuaW9uOwor5rKBID4gc29ha1wtaW50bzsKK+anmyA+IHRocmVzaG9sZDsKK+WMoyA+IHNtYWxsXC1ib3g7CivmjY4gPiB0b1wtc2VsZWN0Owor55eqID4gcGFyYWx5c2lzOwor55eeID4gZHlzcGVwc2lhOwor552QID4gc3F1aW50XC1hdDsKK+WepiA+IGN1bHRpdmF0ZTsKK+a1kiA+IHJpdmVyYmFuazsKK+iRtSA+IHN1bmZsb3dlcjsKK+edqyA+IGV5ZWxhc2hlczsKK+eXiiA+IGJlXC1oZWFsZWQ7Civlk7ogPiBjaGV3XC1mb29kOwor56ujID4gdGVybWluYXRlOwor5ZuUID4gbXV0dGVyaW5nOwor6JeQID4gZGlzcmVnYXJkOwor5b+SID4gZXhjZXNzaXZlOwor5Z+gID4gcG9ydFwtY2l0eTsKK+iNpCA+IG1lYXRcLWRpZXQ7CivnpbogPiBnb29kXC1sdWNrOwor6JySID4gbWlsbGlwZWRlOwor6I+HID4gbXVzaHJvb21zOwor6LGaID4gc21hbGxcLXBpZzsKK+aykyA+IGNvbm5lY3RlZDsKK+W8qSA+IGNyb3NzXC1ib3c7CivmrocgPiBkaWVcLXlvdW5nOwor6JCkID4gZ2xvd1wtd29ybTsKK+agiCA+IHdhcmVob3VzZTsKK+mGuiA+IGdldFwtZHJ1bms7CivonIggPiBjZW50aXBlZGU7CivkvbwgPiBiZWF1dGlmdWw7CivomqMgPiBjZW50aXBlZGU7CivmhKsgPiBndWlsZWxlc3M7CivosJkgPiB2ZXJzZWRcLWluOwor54a5ID4gZGltXC1saWdodDsKK+aAgiA+IGluc3RpZ2F0ZTsKK+mmpSA+IGZyYWdyYW5jZTsKK+aBvyA+IGluc3RpZ2F0ZTsKK+mBmyA+IHRha2VcLXdhbGs7Civnl7kgPiBwYXJhbHlzaXM7Civpur4gPiBhXC1wZW5uYW50Owor5aqyID4gbWFycnlcLW9mZjsKK+ickyA+IGRyYWdvbmZseTsKK+mVgSA+IG1hZ25lc2l1bTsKK+aksCA+IHBhbG1cLXRyZWU7CivnoLogPiB3aGV0c3RvbmU7Civnl6IgPiBkeXNlbnRlcnk7Civll5EgPiBlYXRcLXNlZWRzOwor6JqvID4gZWFydGh3b3JtOwor6JyaID4gY29ja3JvYWNoOwor6JqTID4gZWFydGh3b3JtOwor6a2HID4gbmlnaHRtYXJlOwor6ZiGID4gaGlnaFwtZG9vcjsKK+WmqiA+IG9sZFwtd29tYW47Civmk4AgPiByb2xsXC1mbGF0Owor5aaNID4gYmVhdXRpZnVsOwor5aejID4gYmVhdXRpZnVsOwor6KKkID4gbG9uZ2l0dWRlOwor6bqdID4gbXVza1wtZGVlcjsKK+iNnyA+IGx1eHVyaWFudDsKK+S9uyA+IGZyaXZvbG91czsKK+mSviA+IHBvdGFzc2l1bTsKK+mjmSA+IHdoaXJsd2luZDsKK+WtkSA+IHJlbWFpbmluZzsKK+aqhCA+IGNhbGxcLWFybXM7Civpmo0gPiBkcnlcLWRpdGNoOwor6K+/ID4gcGFzc1wtYnVjazsKK+e7qyA+IHRoaW5cLXNpbGs7CivpgIQgPiBhXC1zdXJuYW1lOwor5qKPID4gaGFuZGN1ZmZzOwor56WJID4gaGFwcGluZXNzOwor6J+RID4gY29ja3JvYWNoOwor6ZK6ID4gYnJvYWRcLWF4ZTsKK+iNniA+IGJ1Y2t3aGVhdDsKK+afkSA+IHRhbmdlcmluZTsKK+WptSA+IGJlYXV0aWZ1bDsKK+WoiSA+IGJlYXV0aWZ1bDsKK+iupyA+IGNvbmZ1c2lvbjsKK+S5nCA+IHRvXC1zcXVpbnQ7Civkv6YgPiBjb21wYW5pb247Civnh64gPiBoYXJtb25pemU7Civpo5ogPiB3aGlybHdpbmQ7Civlp7kgPiBiZWF1dGlmdWw7CivmhI4gPiBvYnN0aW5hdGU7CivlqLIgPiBhXC1nb2RkZXNzOwor5b+dID4gZGlzZ3JhY2VkOwor6JGzID4gbHV4dXJpYW50Owor6K+uID4gY3JpdGljaXplOwor6bOPID4gaHVnZVwtZmlzaDsKK+ichyA+IGplbGx5ZmlzaDsKK+WKrSA+IGVuY291cmFnZTsKK+WFliA+IGVzdGFibGlzaDsKK+WRtiA+IHRhbGthdGl2ZTsKK+eZoyA+IHJpbmd3b3JtczsKK+e7piA+IHNpbGtcLWNvcmQ7CivpkrggPiBwbHV0b25pdW07CivpppcgPiBjaGVla2JvbmU7CivplLAgPiBtYW5nYW5lc2U7CivkvqogPiBhXC1jb21wYW55Owor5YerID4gd2lsZFwtZHVjazsKK+eXsSA+IGhlYXRcLXJhc2g7Civnl4ggPiBjYXJidW5jbGU7CivmgowgPiBicm90aGVybHk7CivlhrwgPiBcKHN1cm5hbWVcKTsKK+m5pyA+IHBhcnRyaWRnZTsKK+aCkiA+IHNvcnJvd2Z1bDsKK+aAgyA+IHJlZ3JldGZ1bDsKK+WikiA+IHdldFwtdGlsdGg7CivoqL4gPiBiYWRcLW1vdXRoOwor5ZyuID4gZGVzdHJveWVkOwor6bKIID4gc2VhXC1wZXJjaDsKK+mSmiA+IHBsdXRvbml1bTsKK+eXvyA+IHBhcmFseXNpczsKK+aUiSA+IHRvXC1iZWNrb247CivpsocgPiBzaGVhdGZpc2g7CivohoggPiBkaWFwaHJhZ207Civnio0gPiBhXC1idWxsb2NrOwor5aakID4gYmVhdXRpZnVsOwor6ZSXID4gZ2VybWFuaXVtOwor6Y6PID4gcHVyZVwtZ29sZDsKK+mVhSA+IGFtZXJpY2l1bTsKK+i+giA+IGFcLWNoYXJpb3Q7CivlqqogPiBvbGRcLXdvbWFuOwor5a2TID4gYmVhdXRpZnVsOwor6Le4ID4gY2xlYXJcLXdheTsKK+eWlCA+IGNhcmJ1bmNsZTsKK+eFsyA+IGJlXC1idXJuZWQ7Civnib4gPiB0b1wtb3Bwb3NlOwor5piAID4gc3VuXC1saWdodDsKK+S5qSA+IHRvXC1kaXZpbmU7Civnvp8gPiBoeWRyb3hpZGU7Civojb0gPiBjb3JpYW5kZXI7CivosLUgPiB0YWxrYXRpdmU7Civnu6AgPiB3ZWxsXC1yb3BlOwor5ZOTID4gZ2FycnVsb3VzOwor6ISsID4gYVwtYmxhZGRlcjsKK+aIoSA+IHN1Ymp1Z2F0ZTsKK+i+hyA+IGhhbmRcLWNhcnQ7CivpmIggPiB0aHJlc2hvbGQ7CivpuZogPiBjb3Jtb3JhbnQ7CivplZ4gPiBhcnJvd2hlYWQ7Civoj7AgPiB3aWxkXC1yaWNlOwor6KCWID4gaW5jaFwtd29ybTsKK+mTqyA+IGxhcmdlXC1ob2U7CivmsJggPiBkZXV0ZXJpdW07Civpu74gPiB0b1wtc3RyaXZlOwor6ZWnID4gbGFudGhhbnVtOwor5Z6hID4gcGxvd1wtc29pbDsKK+eClCA+IGFjZXR5bGVuZTsKK+m4rCA+IGNvcm1vcmFudDsKK+mVsSA+IHl0dGVyYml1bTsKK+mSlSA+IG5lb2R5bWl1bTsKK+W/rSA+IGRlbGlnaHRlZDsKK+iOqiA+IGFydGVtaXNpYTsKK+iLtCA+IHNhY2tjbG90aDsKK+iwsyA+IHRvXC1kZWNpZGU7Civpkq8gPiBwYWxsYWRpdW07CivnorIgPiB0ZWxsdXJpdW07CivnkqkgPiBqYWRlXC1yaW5nOwor6ZiDID4gdGhyZXNob2xkOwor6aWrID4gc3VyZmVpdGVkOwor5pKZID4gZWNvbm9taXplOwor6JO8ID4gc21hcnR3ZWVkOwor6aWUID4gYnJlYWtmYXN0Owor6ZS2ID4gc3Ryb250aXVtOwor56GOID4gd2hldHN0b25lOwor5piDID4gYWZ0ZXJub29uOwor5ZSqID4gdG9cLXJlY2l0ZTsKK+iViCA+IG11c2hyb29tczsKK+WEhyA+IGluZ2VuaW91czsKK+mytCA+IGZpc2hcLWd1dHM7CivpsoUgPiBmaXNoXC1uYW1lOwor6KCKID4gY29ja3JvYWNoOwor6JqwID4gbWlsbGlwZWRlOwor6ZONID4gYmVyeWxsaXVtOwor54azID4gdG9cLXNwcmVhZDsKK+iDjSA+IGd1YW5pZGluZTsKK+i/lSA+IG9ic3RpbmF0ZTsKK+mykCA+IGdsb2JlZmlzaDsKK+mFkCA+IGFuaHlkcmlkZTsKK+ihhCA+IGVwaXN0YXhpczsKK+efpyA+IG11Y2hcLW1vcmU7CivmgqsgPiBzaW5jZXJpdHk7CivohqYgPiBwaG9zcGhpbmU7CivnvKMgPiBmaW5lXC1zaWxrOwor5a6EID4gYVwtdHJhaXRvcjsKK+mYjCA+IHdlblwteGlhbmc7Civlk78gPiBleGNlbGxlbnQ7CivpmL0gPiBkYW5nZXJvdXM7CivljKYgPiBzbWFsbFwtYm94Owor6YWeID4gcGh0aGFsZWluOwor6b2zID4gdG9vdGhsZXNzOwor6b2tID4gdG9vdGhhY2hlOwor6bu9ID4gdG9cLXN0cml2ZTsKK+m4lSA+IGNvcm1vcmFudDsKK+m3viA+IGFcLXN3YWxsb3c7Civpt60gPiB3YXRlclwtaGVuOwor6benID4gY29ybW9yYW50Owor6belID4gdGhlXC1lZ3JldDsKK+m3kyA+IHBhcnRyaWRnZTsKK+m3jyA+IGJpcmRcLW5hbWU7Civpt4YgPiBiaXJkXC1uYW1lOwor6ba/ID4gY29ybW9yYW50Owor6bahID4gY3Jvc3NiaWxsOwor6bW3ID4gY29cLXdvcmtlcjsKK+mzrCA+IHdpbGRcLWR1Y2s7Civps6cgPiB3aWxkXC1kdWNrOwor6bOiID4gc25ha2VoZWFkOwor6bKOID4ga2luZ1wtY3JhYjsKK+mxuCA+IHNlYVwtcGVyY2g7CivpsbcgPiBjcm9jb2RpbGU7CivpsacgPiBzbmFrZWhlYWQ7CivpsZ8gPiBraW5nXC1jcmFiOwor6bGbID4gZmlzaFwtbmFtZTsKK+mwpSA+IGh1Z2VcLWZpc2g7CivpsJAgPiBhbGxpZ2F0b3I7Civpr6AgPiB0b1wtY29uZmVyOwor6a+dID4gZmlzaFwtZ3V0czsKK+mupiA+IHNuYWtlZmlzaDsKK+mujiA+IHNoZWF0ZmlzaDsKK+mugCA+IHNuYWtlZmlzaDsKK+mtsiA+IGZpc2hcLW5hbWU7CivprZ4gPiBmaXNoXC10cmFwOwor6aywID4gbHV4dXJpYW50Owor6ayWID4gd2lsZFwtaGFpcjsKK+mrpyA+IGxvbmdcLWhhaXI7Civpq5cgPiB0aGVcLXNrdWxsOwor6aqtID4gc2hpblwtYm9uZTsKK+mpnyA+IHByb2NlZHVyZTsKK+mopyA+IHRhblwtaG9yc2U7CivpqJAgPiB0b1wtdmVyaXR5Owor6ae4ID4gZ2FsbG9waW5nOwor6aadID4gZnJhZ3JhbmNlOwor6aabID4gZnJhZ3JhbmNlOwor6aaCID4gbGVmdG92ZXJzOwor6aWgID4gcmljZVwtY2FrZTsKK+mkuiA+IHJpY2VcLWNha2U7CivppLEgPiBkcnlcLWdvb2RzOwor6aSVID4gbGVmdG92ZXJzOwor6aSIID4gcmljZVwtY2FrZTsKK+mjqyA+IHN1cmZlaXRlZDsKK+mjpSA+IHJpY2VcLWNha2U7Civpo4ggPiB3aGlybHdpbmQ7Civpo4cgPiB3aGlybHdpbmQ7Civpo4YgPiB3aGlybHdpbmQ7Civpo4QgPiB3aGlybHdpbmQ7Civpo4MgPiB3aGlybHdpbmQ7CivporcgPiB3aGlybHdpbmQ7CivporQgPiB3aGlybHdpbmQ7CivpoK8gPiBjaGVla2JvbmU7CivpoJEgPiBvYnN0aW5hdGU7CivpoIQgPiBjaGVla2JvbmU7CivpnaogPiB0b1wtY29iYmxlOwor6Z2nID4gd2FzaFwtZmFjZTsKK+mdgCA+IGRyaXp6bGluZzsKK+mcgiA+IGZpbmVcLXJhaW47CivpmoMgPiB0b1wtZXhjZWVkOwor6Za/ID4gd2VuXC14aWFuZzsKK+mWuiA+IGxvb2tcLWRvd247CivplqwgPiBoaWdoXC1kb29yOwor6ZarID4gdGhyZXNob2xkOwor6ZSrID4gYmVya2VsaXVtOwor6ZSGID4gemlyY29uaXVtOwor6ZK2ID4gY29sdW1iaXVtOwor6ZKMID4gcnV0aGVuaXVtOwor6ZKBID4gYVwtbWF0dG9jazsKK+mRrSA+IGxhbnRoYW51bTsKK+mRqiA+IGZpcmVwbGFjZTsKK+mQvyA+IHl0dGVyYml1bTsKK+mQuyA+IGRydW1zdGljazsKK+mPmyA+IHRvXC1wb2xpc2g7Civpj5AgPiBwdXJlXC1nb2xkOwor6Y+DID4gYXJyb3doZWFkOwor6Y6/ID4gbmVwdHVuaXVtOwor6Y6eID4gcGxvd3NoYXJlOwor6Y6HID4gYW1lcmljaXVtOwor6Y6CID4gbWFnbmVzaXVtOwor6Y26ID4gZ2VybWFuaXVtOwor6Y22ID4gc3Ryb250aXVtOwor6YyzID4gbWFuZ2FuZXNlOwor6YyHID4gYmVya2VsaXVtOwor6YuvID4gemlyY29uaXVtOwor6YuNID4gYmVyeWxsaXVtOwor6YqkID4gYW1lcmljaXVtOwor6YqaID4gbGFyZ2VcLWhvZTsKK+mJniA+IGJyb2FkXC1heGU7CivpiL0gPiBwbHV0b25pdW07CivpiLkgPiBiZXJ5bGxpdW07CivpiKkgPiBmaXJlcGxhY2U7CivpiIwgPiB0b1wtcGllcmNlOwor6YiIID4gcGx1dG9uaXVtOwor6YiAID4gcGFsbGFkaXVtOwor6Ye5ID4gbmVvZHltaXVtOwor6YeVID4gcnV0aGVuaXVtOwor6YOeID4gZ2VudGxlbWFuOwor6YGeID4gaGFuZFwtb3ZlcjsKK+mAkyA+IGhhbmRcLW92ZXI7CivovL4gPiB0dXJuXC1vdmVyOwor6Ly4ID4gdHJhbnNwb3J0Owor6LyYID4gYVwtY2FyXC1ydXQ7CivovIUgPiBhXC1jaGFyaW90Owor6Lu3ID4gc2FjcmlmaWNlOwor6LuEID4gdG9cLWdvdmVybjsKK+i6lCA+IGZvbGxvd1wtaW47CivouZUgPiBjbGVhclwtd2F5Owor6LmUID4gdGVtcG9yYXJ5Owor6LepID4gdG9cLXdhZGRsZTsKK+i2nSA+IHRvXC1wdXJzdWU7Civotb8gPiBsYXRlXC1zbG93Owor6LO4ID4gbGVmdG92ZXJzOwor6LOgID4gaW5kZW1uaWZ5Owor6LG1ID4geW91bmdcLXBpZzsKK+ixkyA+IGJlYXV0aWZ1bDsKK+iuniA+IHRvXC1kZWNpZGU7CivorbQgPiByZXByaW1hbmQ7CivorYogPiB3cmFuZ2xpbmc7CivorYUgPiB3cmlnZ2xpbmc7Civoq7MgPiB2ZXJzZWRcLWluOwor6KunID4gaGFybW9uaXplOwor6KudID4ga25vd2xlZGdlOwor6KuJID4gcGFzc1wtYnVjazsKK+iqmiA+IGNyaXRpY2l6ZTsKK+iqliA+IG9ic3RpbmF0ZTsKK+iooCA+IG11Y2hcLW1vcmU7CivoqIwgPiBjb25mdXNpb247Civopa8gPiB1bmRlcndlYXI7Civoo7IgPiB3YWlzdGNvYXQ7Civon7ogPiBlYXJ0aHdvcm07CivonowgPiBhXC1zdHJpcGVkOwor6JyoID4gYnV0dGVyZmx5Owor6Ju1ID4gZHJhZ29uZmx5Owor6JuNID4gZ2xvd1wtd29ybTsKK+iavyA+IG1pbGxpcGVkZTsKK+iYniA+IHdpbGRcLXZpbmU7CivologgPiBsdXh1cmlhbnQ7CivolZcgPiBsZXVjYWNlbmU7CivolLkgPiB3aWxkXC12aW5lOwor6JSlID4gc2NhbGxpb25zOwor6JOGID4gc3RyYXdcLW1hdDsKK+iSoiA+IGhlZHlzYXJ1bTsKK+iRtyA+IG1lYXRcLWRpZXQ7CivokZMgPiB2ZWdldGFibGU7CivokIogPiBnb29zZWZvb3Q7Civoj7sgPiBhcnRlbWlzaWE7CivojY0gPiBidWNrd2hlYXQ7Civoi6AgPiBtdWx0aXR1ZGU7Civoi5kgPiBhXC1waWdcLXN0eTsKK+iKvCA+IHRvXC1jaG9vc2U7CivoibcgPiBiZWF1dGlmdWw7CivoibEgPiBkaWZmaWN1bHQ7CivoiaMgPiBzdGVyblwtb2FyOwor6ImOID4gZmFzdFwtYm9hdDsKK+iInSA+IGxpbmNoXC1waW47CivoiJggPiBhXC1tYW5zaW9uOwor6IevID4gdG9cLXByYWlzZTsKK+iDpiA+IHRoZVwtbmF2ZWw7CivogKUgPiBmYXJtXC10b29sOwor5762ID4gcmFua1wtb2RvcjsKK+e+pSA+IGh5ZHJveGlkZTsKK+e9gSA+IGFcLWNpc3Rlcm47CivnuaMgPiBvYnN0aW5hdGU7CivnuaEgPiBlbWJyb2lkZXI7CivnuY0gPiBlbWJyb2lkZXI7CivnuJEgPiBmaW5lXC1zaWxrOwor57iDID4gZmluZVwtc2lsazsKK+e3pSA+IHN3YWRkbGluZzsKK+e2iSA+IGVtYnJvaWRlcjsKK+e2hiA+IHdlbGxcLXJvcGU7Civns7AgPiByaWNlXC1iYWxsOwor57OdID4gc2NhdHRlcmVkOwor57K/ID4gcmljZVwtY2FrZTsKK+exqCA+IHRyb3Vzc2VhdTsKK+ewgyA+IHNpZGVcLXJvb207Civnq5UgPiBkZWNpbGl0ZXI7Civnq48gPiBraWxvbGl0ZXI7Civnq40gPiBkZWNhbGl0ZXI7Civnq4YgPiBleGhhdXN0ZWQ7CivnqrQgPiBnbGFuY2VcLWF0Owor56qLID4gaW5cLWFcLWhvbGU7CivnqaogPiB0b1wtcHJhaXNlOwor56isID4gZ2x1dGlub3VzOwor56ifID4gcmVwb3J0XC10bzsKK+emtCA+IHNhY3JpZmljZTsKK+empCA+IFwoc3VybmFtZVwpOwor56acID4gc2FjcmlmaWNlOwor56aWID4gc2FjcmlmaWNlOwor56aVID4gZXhjZWxsZW50Owor56aUID4gaGFwcGluZXNzOwor56WmID4gaGFwcGluZXNzOwor56WOID4gZXhjZWxsZW50Owor56S/ID4gc2FjcmlmaWNlOwor56S9ID4gYmxlc3NpbmdzOwor56SqID4gd2hldHN0b25lOwor56SeID4gXChtaW5lcmFsXCk7CivnoqwgPiB3aGV0c3RvbmU7CivnooYgPiBhcnJvd1wtdGlwOwor56G7ID4gb2JzdGluYXRlOwor56CuID4gYXJyb3dcLXRpcDsKK+egrCA+IGJpZ1wtc3RvbmU7CivnnZ4gPiBzcXVpbnRcLWF0Owor55yVID4gcmVzdHJhaW50Owor55u1ID4gXChzdXJuYW1lXCk7Civnm5ogPiBcKHN1cm5hbWVcKTsKK+eZsSA+IHBhcmFseXNpczsKK+eZsCA+IGNhcmJ1bmNsZTsKK+eZrCA+IHJpbmd3b3JtczsKK+eYrSA+IGFcLXdoaXRsb3c7CivnmJwgPiBhXC1wb2x5cHVzOwor55iTID4gcGFyYWx5c2lzOwor55ehID4gYVwtZGlzZWFzZTsKK+eXkCA+IHdoaXJsd2luZDsKK+eWtiA+IGR5c2VudGVyeTsKK+eVtSA+IGRlbGluZWF0ZTsKK+eVsSA+IHRvXC1kZXRhaW47CivnlYsgPiB0aWxsXC1sYW5kOwor55S0ID4gY29ja3JvYWNoOwor55SqID4gXChzdXJuYW1lXCk7CivnlKYgPiBiZVwtcmVib3JuOwor55SFID4gY2VudGlncmFtOwor55O4ID4gaGVjdG9ncmFtOwor55OxID4gbWlsbGlncmFtOwor55K/ID4gZmluZVwtamFkZTsKK+eRtCA+IHR3aW5cLWdlbXM7CivnkaMgPiBmcmFnbWVudHM7CivnjYAgPiB0b1wtZ2F0aGVyOwor54uzID4gYXJtYWRpbGxvOwor54qwID4gYXJtYWRpbGxvOwor54qnID4gc2FjcmlmaWNlOwor54e2ID4gdG9cLXNjb3JjaDsKK+eHrCA+IGJ1cm5cLWRvd247Civnh4ogPiBsdXh1cmlhbnQ7Civnhr8gPiBicmlsbGlhbnQ7CivnhrogPiBkaW1cLWxpZ2h0Owor54KYID4gYnJpbGxpYW50Owor54CJID4gZHJhaW5cLW9mZjsKK+a/qSA+IHBvdXJcLWRvd247Civmv5sgPiBkcml6emxpbmc7Civmu7ggPiByaXZlcmJhbms7CivmubwgPiBibGFja1wtbXVkOwor5rmPID4gd2FzaFwtZmFjZTsKK+a5hSA+IGJvaWxcLXNpbGs7Civmt6kgPiBwYXNzXC1vdmVyOwor5ra3ID4gcmFpbnN0b3JtOwor5rSRID4gd2hpcmxwb29sOwor5rK6ID4gdHVyYnVsZW50Owor5q6kID4gZGllXC15b3VuZzsKK+auiCA+IGluZmVydGlsZTsKK+augCA+IGRpZVwteW91bmc7CivmrZsgPiBkcmF3XC1iYWNrOwor5qyVID4gdHJlZVwtbmFtZTsKK+aquyA+IHRocmVzaG9sZDsKK+apmiA+IHRhbGxcLXRyZWU7CivmqLMgPiB0YWxsXC10cmVlOwor5qiLID4gdHJlZVwtbmFtZTsKK+anqiA+IGdlbmVyYWxseTsKK+anqSA+IGdlbmVyYWxseTsKK+amqiA+IGhlYWRib2FyZDsKK+aktiA+IHBhbG1cLXRyZWU7Civmo6cgPiB3YXJlaG91c2U7Civmo6UgPiBhXC1yYWlsaW5nOwor5qOXID4gZGF0ZVwtdHJlZTsKK+ajliA+IGRvb3JcLXN0b3A7CivmopwgPiBjaG9wc3RpY2s7Civmoo0gPiB0cmVlXC1uYW1lOwor5qCxID4gbGFyZ2VcLXBlZzsKK+agrSA+IGtpbmdcLXBvc3Q7CivmoJ8gPiBoZW1wXC1wYWxtOwor5qCSID4gY3Jvc3NcLWJhcjsKK+afuSA+IHBlcnNpbW1vbjsKK+afiCA+IGNvbnRhaW5lcjsKK+aeviA+IHBlcnNpbW1vbjsKK+aeuSA+IGRydW1zdGljazsKK+aeqSA+IHBpbmVcLXRyZWU7CivmnqggPiBkb29yXC1zdG9wOwor5p6ZID4gdHJlZVwta25vdDsKK+adqSA+IGhlYWRib2FyZDsKK+acniA+IGZ1bGxcLXllYXI7CivmnJMgPiBzYWNyaWZpY2U7Civmm7EgPiBjb2Nrcm9hY2g7Civmm6AgPiBleHRlbnNpdmU7Civmmo0gPiBzdW5zdHJva2U7CivmmL8gPiBleHRlbnNpdmU7CivmmKogPiBkZWxpZ2h0ZWQ7Civml6ogPiB1bml0ZWRcLWluOwor5pebID4gYVwtcGVubmFudDsKK+aXmSA+IGFcLXBlbm5hbnQ7CivmloIgPiBkcmF3XC1iYWNrOwor5pWLID4gdG9cLXN0cmlrZTsKK+aUiyA+IHRvXC1jbHV0Y2g7CivmlIMgPiBwcmVjZWRpbmc7Civmk78gPiB0b1wtc2VsZWN0Owor5pOaID4gdG9cLW9jY3VweTsKK+aTkCA+IHRvXC1wdXRcLW9uOwor5pOJID4gdG9cLXBpZXJjZTsKK+aRvSA+IHRocm93XC1vdXQ7Civmka4gPiB0b1wtcmF0dGxlOwor5pGbID4gdG9cLXNwcmVhZDsKK+aQmSA+IHRvXC1oYW5kbGU7CivmkJUgPiB0b1wtc3RyaWtlOwor5o+mID4gdG9cLWNsdXRjaDsKK+aPpSA+IHNjcmF0Y2hlcjsKK+aOmSA+IHRvXC1zdHJpdmU7CivmibsgPiB0b1wtc3RyaWtlOwor5omkID4gdG9cLXRocnVzdDsKK+aInCA+IHRvXC1zY3JhcGU7Civmhq8gPiBzb3Jyb3dmdWw7Civmhq4gPiByZWdyZXRmdWw7Civmhb0gPiBzb3Jyb3dmdWw7CivmhbwgPiBzb3Jyb3dmdWw7CivmhaQgPiBzaW5jZXJpdHk7CivmhYYgPiBleGNlc3NpdmU7CivmhKggPiBzaW5jZXJpdHk7Civmgr0gPiBzb3Jyb3dmdWw7CivmgoEgPiBpcnJpdGFibGU7CivmgZEgPiB0b1wtY2hhbmdlOwor5oGKID4gYmVcLXVuaXRlZDsKK+aAuiA+IHRvXC1lbmR1cmU7CivmgJ4gPiB0b1wtZ3JpZXZlOwor5oCXID4gb2JzZXJ2YW50Owor5b+AID4gdG9cLXN0cm9sbDsKK+W9jCA+IGV4dGVuc2l2ZTsKK+W7viA+IHR3b1wtaGFuZHM7Civlu7ggPiBlbmxpZ2h0ZW47CivluokgPiBhXC12aWxsYWdlOwor5bmpID4gdHJhcHBpbmdzOwor5bmZID4gYVwtY3VydGFpbjsKK+W4pSA+IGNvbW1hbmRlcjsKK+W2jiA+IGx1eHVyaWFudDsKK+WvvSA+IGFcLWhhbmRmdWw7Civlr5ggPiBwdXRcLWFzaWRlOwor5a+XID4gYVwtc3VybmFtZTsKK+WvliA+IGdyYWR1YWxseTsKK+WvgyA+IGdyaWV2YW5jZTsKK+WugiA+IHNjYXR0ZXJlZDsKK+WsiyA+IGJlYXV0aWZ1bDsKK+WrvSA+IHBsYXlcLXdpdGg7Civlq5sgPiBjb21wbGlhbnQ7Civlq5cgPiBvbGRcLXdvbWFuOwor5auVID4gY29tcGxpYW50Owor5aq6ID4gYmVhdXRpZnVsOwor5aqsID4gZ292ZXJuZXNzOwor5aqVID4gdW5kZWNpZGVkOwor5aqEID4gYmVhdXRpZnVsOwor5amlID4gYmVhdXRpZnVsOwor5ae4ID4gYmVhdXRpZnVsOwor5aexID4gYmVhdXRpZnVsOwor5aeiID4gYmVhdXRpZnVsOwor5aeeID4gY29uY3ViaW5lOwor5aS7ID4gZmlzaFwtbmFtZTsKK+WkjCA+IHRvXC1kYXdkbGU7Civlor4gPiBjdWx0aXZhdGU7CivlopwgPiBmYWxsXC1kb3duOwor5aGdID4gZmxhdFwtYmFuazsKK+WfkyA+IGVuY2xvc3VyZTsKK+WelyA+IHNhY3JpZmljZTsKK+WciiA+IHJlc3RcLXJvb207CivlmpwgPiBiZVwtc2lsZW50Owor5ZmBID4gbmFzdGluZXNzOwor5Zi1ID4gZ2FycnVsb3VzOwor5ZiRID4gdG9cLW1lbmFjZTsKK+WWpiA+IHRhbGthdGl2ZTsKK+WVjiA+IG9ic3RpbmF0ZTsKK+WTqyA+IHRvXC1jYWpvbGU7CivlkrUgPiB0b1wtcmV2aWxlOwor5ZGnID4gdG9cLXJlYnVrZTsKK+WPhSA+IHRvXC1jb3VuZWw7CivljrIgPiB3aGV0c3RvbmU7CivljpMgPiBwcmVjaXBpY2U7CivljK0gPiBzbWFsbFwtYm94Owor5YyYID4gdGhlXC1icmFpbjsKK+WLryA+IGV4aGF1c3RlZDsKK+WLqSA+IHdvcmtcLWhhcmQ7CivlibAgPiBsZWZ0b3ZlcnM7CivliZkgPiBlc3RhYmxpc2g7CivliY8gPiBlc3RhYmxpc2g7CivliLEgPiBlc3RhYmxpc2g7CivliKEgPiB0b1wtc2NyYXBlOwor5YiUID4gc2Nvb3BcLW91dDsKK+WIhSA+IHRvXC1jcmVhdGU7Civlh7cgPiBkaXJ0XC1jbG9kOwor5YeZID4gYW5cLWljaWNsZTsKK+WFlyA+IGVzdGFibGlzaDsKK+WFhyA+IGF0cm9jaW91czsKK+WEsyA+IG9ic3RpbmF0ZTsKK+WErSA+IHRvXC1hc3Npc3Q7CivlhJUgPiBhXC1jb21wYW55Owor5YSUID4gY29tcGFuaW9uOwor5YSJID4gdGVtcGVyYXRlOwor5YOdID4gdG9cLXJldmlsZTsKK+WDhyA+IGh1bWlsaWF0ZTsKK+WCuiA+IHRvXC1oaW5kZXI7CivlgKIgPiBiZWF1dGlmdWw7CivkvrYgPiBjb21wYW5pb247Civkvo4gPiB0b1wtc29vdGhlOwor5L2rID4gXChzdXJuYW1lXCk7CivkvLsgPiBtZXNzZW5nZXI7CivkvIsgPiBkZWNlcHRpdmU7Civku4ggPiBcKHN1cm5hbWVcKTsKK+S5hiA+IGxvbmdcLXRpbWU7CivktrMgPiB0b1wtbG9va3VwOwor5LaRID4gdG9cLXNuZWV6ZTsKK+S2jSA+IHRvXC1zbmVlemU7Civkta8gPiBhXC12aWxsYWdlOwor5LShID4gYmVhdXRpZnVsOwor5LSPID4gYVwtc3dhbGxvdzsKK+SzuiA+IHRoZVwtcXVhaWw7Civksr8gPiBjb3Jtb3JhbnQ7CivksqggPiB3aWxkXC1zd2FuOwor5LGIID4gZmlzaFwtcHVscDsKK+SwpSA+IGFcLWN5Y2xvbmU7CivksJYgPiBmaW5lXC1oYWlyOwor5LCQID4gbG9uZ1wtaGFpcjsKK+SwiCA+IGZpbmVcLWhhaXI7Civkr70gPiBmaW5lXC1oYWlyOwor5K+3ID4gZmluZVwtaGFpcjsKK+SvpiA+IHRpbnlcLWJvbmU7CivkrpwgPiB0b1wtZ2FsbG9wOwor5K2sID4gdG9cLWtvd3RvdzsKK+StqyA+IHRvXC1rb3d0b3c7CivkrZsgPiB0YXN0ZWxlc3M7CivkrZkgPiBleHF1aXNpdGU7CivkrZUgPiB0YXN0ZWxlc3M7CivkrZEgPiBpbmNvcnJ1cHQ7CivkrLYgPiB0b1wtc3RyYXZlOwor5KyUID4gaHVycmljYW5lOwor5KyTID4gaHVycmljYW5lOwor5Ku7ID4gYVwtdHlwaG9vbjsKK+SruiA+IGFcLXR5cGhvb247Civkq50gPiBmcmFncmFuY2U7Civkq5QgPiBhXC1zZXJ2YW50Owor5KmmID4gdGhlXC1yZWluczsKK+SorSA+IHRoZVwtc2tpZXM7CivkqJAgPiB0b1wtc3ByZWFkOwor5KiNID4gZGVlcFwtcG9uZDsKK+SnhSA+IGRhbmdlcm91czsKK+SmtSA+IGluY2FwYWJsZTsKK+SmrCA+IGFcLXZhY2FuY3k7CivkpoYgPiBhXC1iaWdcLWhvZTsKK+SlvSA+IGZhcm1cLXRvb2w7CivkpKQgPiBpbXBsZW1lbnQ7CivkpI8gPiBkZXN0cm95ZWQ7Civko7ggPiB0YXN0ZWxlc3M7Civko6kgPiBiZWF1dGlmdWw7CivkorEgPiB0b1wtc2xpZ2h0Owor5KKrID4gdG9cLWZvbGxvdzsKK+SinyA+IHRvXC10cmF2ZWw7Civkoo0gPiB0b1wtaGFzdGVuOwor5KKKID4gdG9cLXRyYXZlbDsKK+ShlCA+IHRvXC1oaW5kZXI7CivkoLIgPiB0b1wtbGlzdGVuOwor5KCvID4gdG9cLWFzY2VuZDsKK+SgriA+IHRvXC1wcmFuY2U7CivkoIYgPiB0b1wta293dG93Owor5J+7ID4gYmFyZVwtZmVldDsKK+SfpSA+IGx1eHVyaWFudDsKK+SfniA+IHRvXC1mYWx0ZXI7Civkn4wgPiBkaXZlcmdpbmc7Civknr4gPiBmcml2b2xvdXM7CivknrwgPiB0b1wtZXNjYXBlOwor5J6jID4gdG9cLXJlc2lzdDsKK+SelyA+IHN1c3BpY2lvbjsKK+SekiA+IHJlZFwtY29sb3I7CivknpAgPiBwbGVudGlmdWw7Civkno0gPiB0b1wtYmVzdG93Owor5J6JID4gYVwtc3VycGx1czsKK+SdviA+IHRvXC1iZXN0b3c7CivknbwgPiB0b1wtYmVzdG93Owor5JytID4gdG9cLWRyZWRnZTsKK+ScnyA+IHRvXC12ZXJpZnk7CivknJ0gPiB1bmNlcnRhaW47CivknIUgPiB0b1wtZm9sbG93Owor5Ju7ID4gdG9cLWluZHVjZTsKK+SbuSA+IHRvXC1hY2N1c2U7Civkm7ggPiBnYXJydWxvdXM7Civkm7MgPiB0b1wtbWFsaWduOwor5JusID4gYmFieVwtdGFsazsKK+SbqiA+IGxvcXVhY2l0eTsKK+SbniA+IGxvcXVhY2l0eTsKK+SbmiA+IHRvXC1wcmFpc2U7Civkm4sgPiB0b1wtc2NoZW1lOwor5JuBID4gdG9cLW11cm11cjsKK+SatSA+IHRvXC1pbmR1Y2U7CivkmbggPiB0b1wtb2J0YWluOwor5Jm3ID4gdG9cLW9idGFpbjsKK+SZryA+IGV4cXVpc2l0ZTsKK+SZpyA+IHJlZFwtY29sb3I7CivkmZggPiBleHF1aXNpdGU7CivkmLwgPiBzdG9ja2luZ3M7CivkmJogPiBhXC1zZXJ2YW50Owor5JiXID4gYmVhdXRpZnVsOwor5JiRID4gdGhlXC1wdWxzZTsKK+SXmSA+IGVhcnRod29ybTsKK+SXkyA+IGRyYWdvbmZseTsKK+SXjCA+IGRyYWdvbmZseTsKK+SXhSA+IG1pbGxpcGVkZTsKK+SWoSA+IG1pbGxpcGVkZTsKK+SVuSA+IGFcLWN1cnRhaW47CivklbIgPiBhcnRlbWlzaWE7CivklakgPiBkcnlcLWZydWl0Owor5JWPID4gYXJ0ZW1pc2lhOwor5JSzID4gY2hpY2tsaW5nOwor5JOwID4gYWJzaW50aGluOwor5JOXID4gc2NhbGxpb25zOwor5JOHID4gbHV4dXJpYW50Owor5JKwID4gdG9cLWZvbGxvdzsKK+SSoCA+IGx1eHVyaWFudDsKK+SSiiA+IGFcLXBhdGllbnQ7CivkkaogPiBhXC1zYWlsaW5nOwor5JGfID4gbHV4dXJpYW50Owor5JGTID4gYVwtbG9va291dDsKK+SRkSA+IGFcLXNlcnZhbnQ7CivkkYkgPiBleGNyZW1lbnQ7CivkkYAgPiB0aGVcLW5hdmVsOwor5JC6ID4gZGVsaWNpb3VzOwor5JChID4gdGhlXC1uYXZlbDsKK+SQmyA+IHRvXC1sb29zZW47CivkkIwgPiBsdXh1cmlhbnQ7CivkkIYgPiBiaWdcLWJlbGx5Owor5I+9ID4gbWVhdFwtcHVscDsKK+SPrCA+IHRoZVwtc3BpbmU7Civkj6AgPiBtZWF0XC1zb3VwOwor5I+eID4gdGhlXC1iZWxseTsKK+SOoSA+IHRvXC1zaHJpbms7CivkjoMgPiBmaW5lXC1kb3duOwor5I2OID4gYVwtc3BpbmRsZTsKK+SMsiA+IGxpZ2h0XC1yZWQ7CivkjJsgPiBlbnRvdXJhZ2U7CivkjJYgPiB0b1wtZ2F0aGVyOwor5IyKID4gZW50b3VyYWdlOwor5IugID4gdG9cLXJlcGFpcjsKK+SKsCA+IGZvb2RzdHVmZjsKK+SKnCA+IGR1bXBsaW5nczsKK+SJvSA+IHJpY2VcLWNha2U7CivkibwgPiBtYXRlcmlhbHM7CivkiZggPiB0b1wtcGllcmNlOwor5Ii1ID4gbHV4dXJpYW50Owor5IeQID4gdG9cLWFycml2ZTsKK+SGkCA+IGFcLWNvdW50cnk7CivkhY4gPiBkaWZmZXJlbnQ7CivkhYUgPiBmYXJtXC10b29sOwor5IWDID4gbGF0ZVwtY3JvcDsKK+SErCA+IHRvXC1jaGFuZ2U7CivkhJkgPiBoYXBwaW5lc3M7Civkg6kgPiBhXC1taW5lcmFsOwor5IOVID4gc3RvbmV3YXJlOwor5IOTID4gdG9cLXB1bmlzaDsKK+SDgCA+IG1pbGxzdG9uZTsKK+SCviA+IHRvXC1wb2xpc2g7CivkgoggPiB0b1wtcGllcmNlOwor5IKHID4gdG9cLXBpZXJjZTsKK+SBoiA+IGV4cXVpc2l0ZTsKK+SBkCA+IGRlZXBcLWV5ZWQ7CivkgLAgPiBvcGVuXC1leWVzOwor5ICsID4gdG9cLWdsYW5jZTsKK+SAoiA+IHRvXC1nbGFuY2U7CivkgKEgPiB0b1wtc3B5XC1vbjsKK+SAkCA+IHRvXC1yZWdhcmQ7Civjv78gPiB3aW5lXC1jdXBzOwor47+fID4gaGVcLWJyaWdodDsKK+O/myA+IGNhcmJ1bmNsZTsKK+O/hyA+IHBhcmFseXNpczsKK+O+rSA+IHRvXC1zaHJpbms7CivjvqUgPiBiZWxseWFjaGU7CivjvqMgPiB0b1wtc2hpdmVyOwor476LID4gZHlzZW50ZXJ5Owor472sID4gdG9cLWFzc2lzdDsKK+O9niA+IHRvXC1yZW1haW47CivjvZEgPiBkZWxpY2lvdXM7CivjvYkgPiBhXC1iaWdcLWphcjsKK+O8uiA+IHBvcmNlbGFpbjsKK+O8miA+IGVhcnRod2FyZTsKK+O7vSA+IGZpbmVcLWphZGU7Civju7EgPiB0b1wtY2lyY2xlOwor47uMID4gZmluZVwtamFkZTsKK+O7iSA+IGZpbmVcLWphZGU7Civjt7wgPiBhXC1zd2FsbG93Owor47eOID4gc3Vuc3Ryb2tlOwor47WXID4gdHVyYnVsZW50Owor47WUID4gbm90XC1jbGVhcjsKK+O0gSA+IHRvXC1hZGRcLXRvOwor47OoID4gdG9cLXNwbGFzaDsKK+OytSA+IHRoZVwtc2tpZXM7CivjsqYgPiBsb25nXC1oYWlyOwor47KkID4gbG9uZ1wtaGFpcjsKK+OymiA+IGxvbmdcLWhhaXI7CivjsZggPiBuaWdodG1hcmU7CivjsJYgPiB0aGVcLW9saXZlOwor46+6ID4gYVwtY2FiaW5ldDsKK+OvryA+IHNtYWxsXC1jdXA7Civjr50gPiBwYXVsb3duaWE7Civjr4QgPiBsdXh1cmlhbnQ7CivjrpkgPiBhXC1waXRmYWxsOwor466UID4gdmVnZXRhYmxlOwor466DID4gZmFybVwtdG9vbDsKK+OtoiA+IG1lY2hhbmljczsKK+OsvyA+IG1vb25saWdodDsKK+OsqyA+IGNsZWFyXC1za3k7CivjrKMgPiBsdXh1cmlhbnQ7CivjrJ4gPiBzdW5zdHJva2U7CivjqqwgPiB0b1wtcGllcmNlOwor46qpID4gdG9cLXN0cmlrZTsKK+OqpCA+IHRvXC1maW5pc2g7CivjqpEgPiB0b1wtZm9sbG93Owor46qOID4gdW5jZXJ0YWluOwor46qLID4gdG9cLXJlc2lzdDsKK+OqiCA+IHRvXC1sZXRcLWdvOwor46qFID4gdG9cLWNoYW5nZTsKK+OpsSA+IHRvXC1zZWxlY3Q7CivjqacgPiB0b1wtc3RyaWtlOwor46mSID4gdG9cLWFycmVzdDsKK+OpjCA+IHRvXC1zdHJpa2U7CivjqYcgPiB0aGVcLXRodW1iOwor46mEID4gdG9cLXN0cmlrZTsKK+OotiA+IHRvXC10aHJlc2g7CivvqJsgPiBoYXBwaW5lc3M7CivvqJogPiBnb29kXC1sdWNrOwor46iaID4gdG9cLXNlbGVjdDsKK+OojSA+IHRvXC1kZWZlbmQ7CivjqIkgPiB0b1wtc21vb3RoOwor76iEID4gcmVzaWRlbmNlOwor46iEID4gdG9cLXBpZXJjZTsKK+OnviA+IHRvXC1zdHJpa2U7Civvp7wgPiByZWNvZ25pemU7Civvp7YgPiBkcmF3XC1uZWFyOwor46ewID4gdG9cLXN0cmlrZTsKK+OnqSA+IHRvXC1kaXNwZWw7Civvp6UgPiBkeXNlbnRlcnk7Civjp6YgPiB0b1wtc3RyaWtlOwor46eXID4gdG9cLWNsYXRjaDsKK+OnliA+IHRvXC1jbHV0Y2g7Civjp4wgPiB0b1wtc2VsZWN0Owor76eCID4gc21hcnR3ZWVkOwor76eBID4gYmVcLWhlYWxlZDsKK++muyA+IG9mZmljaWFsczsKK++muiA+IHRvXC1maW5pc2g7CivjprsgPiB0b1wtcHV0XC1vbjsKK++mtSA+IHByZWNlZGVudDsKK+OmtCA+IHRvXC1hcnJlc3Q7Civjpq8gPiBhXC1jZXJ0YWluOwor46aqID4gY29tcGxhaW50Owor46adID4gYmVhdXRpZnVsOwor46aWID4gcmVzZW50ZnVsOwor76aIID4gYmVhdXRpZnVsOwor76aFID4gd2hldHN0b25lOwor46W+ID4gbW9ydGlmaWVkOwor46WzID4gdG9cLXN1cnZleTsKK+OlriA+IG9ic3RpbmF0ZTsKK+OlpyA+IHRvXC1mb2xsb3c7CivjpaYgPiBzYXRpc2ZpZWQ7CivvpaIgPiBkaWZmZXJlbnQ7CivvpZcgPiB0aGluXC1zaWxrOwor46WWID4gcmVkXC1jb2xvcjsKK+OljiA+IHRvXC1yZXNlbnQ7CivjpYAgPiBleGNsdXNpdmU7CivjpLUgPiBjb3Bhc3Npb247CivvpLIgPiBmaXJlcGxhY2U7CivvpKwgPiBnZW50bGVtYW47CivjpKUgPiBzb3Jyb3dmdWw7CivvpJsgPiBjb25mdXNpb247CivjpJggPiBvYnN0aW5hdGU7CivjpJIgPiBrbm93bGVkZ2U7CivjpIsgPiBjb25mdXNpb247CivjpIcgPiB0ZXJyaWZpZWQ7CivjpIYgPiBuYXVzZWF0ZWQ7Civjo7wgPiB0b1wtZW5kdXJlOwor46O6ID4gdGhlXC1oZWFydDsKK+OjkCA+IHRvXC1jaGFuZ2U7CivjoqggPiB0b1wtZGVmZW5kOwor46KhID4gdG9cLWV4aG9ydDsKK+OigCA+IHNpZGVcLXJvb207Civjob8gPiB0b1wtYWNjdXNlOwor46G8ID4gYVwtZ3JhbmFyeTsKK+OhuiA+IGFcLWNvdHRhZ2U7CivjoaIgPiBhXC1jdXJ0YWluOwor46GgID4gYVwtcGljdHVyZTsKK+OhlyA+IHJlZFwtcGFwZXI7CivjoK4gPiB0b1wtZXhwYW5kOwor46CYID4gYW5cLWlzbGFuZDsKK+OetSA+IGZyaXZvbG91czsKK+OeoyA+IGZyYWdyYW5jZTsKK+OdjiA+IHRvXC1kZWNpZGU7CivjnLsgPiB0b1wtYWRtaXJlOwor45ywID4gZXhxdWlzaXRlOwor45yoID4gYmVhdXRpZnVsOwor45yeID4gYmVhdXRpZnVsOwor45yYID4gZGVsaWNhdGVkOwor45yWID4gZXhxdWlzaXRlOwor45yPID4gbGFzdFwtbmFtZTsKK+OciiA+IGV4cXVpc2l0ZTsKK+OchCA+IGxhc3RcLW5hbWU7Civjm74gPiBub3RcLWNsZWFuOwor45u6ID4gbm90XC1jbGVhbjsKK+ObsSA+IGV4cXVpc2l0ZTsKK+OblyA+IGZyaXZvbG91czsKK+OblCA+IGV4cXVpc2l0ZTsKK+OasCA+IGFuXC1lbWJyeW87Civjmq8gPiBsYXN0XC1uYW1lOwor45qbID4gY29ycHVsZW50Owor45qYID4gYVwtcGFydG5lcjsKK+OZtSA+IGFcLWxvb2tvdXQ7CivjmZwgPiBhXC1sb29rb3V0Owor45ijID4gY29tcGFzc2VzOwor45ezID4gZm9yZ2V0ZnVsOwor45ejID4gdG9cLXNuZWV6ZTsKK+OWvCA+IHRvXC1zY2hlbWU7CivjlqYgPiBsb3F1YWNpdHk7CivjloIgPiBsb3F1YWNpdHk7CivjlbsgPiB0b1wtcmVmdXNlOwor45W5ID4gYVwtYnVja2xlcjsKK+OVlyA+IHRvXC1pbmR1Y2U7CivjlZUgPiBkZWNlcHRpb247CivjlZEgPiBhXC1raXRjaGVuOwor45WPID4gYVwta2l0Y2hlbjsKK+OViyA+IHJvY2tcLWxhbmQ7CivjlYggPiB0b1wtbGluZ2VyOwor45S+ID4gbGFzdFwtbmFtZTsKK+OUpyA+IHRvXC1pbmNpdGU7Civjk68gPiB0b1wtZGl2aWRlOwor45OoID4gdG9cLXBpZXJjZTsKK+OTiyA+IHRvXC1mcmVlemU7Civjk4QgPiB0b1wtcGxvdWdoOwor45KXID4gYVwtc2VydmFudDsKK+OSkyA+IHRvXC1lc2NhcGU7CivjkosgPiBhXC1zZXJ2YW50Owor45KIID4gZGFuZ2Vyb3VzOwor45KCID4gdG9cLWJlc3RvdzsKK+ORryA+IGxhc3RcLW5hbWU7Civjka4gPiBsYXN0XC1uYW1lOwor45GnID4gcGVydHVyYmVkOwor45GZID4gZnJpdm9sb3VzOwor45GYID4gYVwtc2VydmFudDsKK+ORjiA+IGxhc3RcLW5hbWU7CivjkYQgPiB0b1wtaW5zdWx0Owor45CvID4gdG9cLWVtcGxveTsKK+OQrSA+IGFcLWdyYW5hcnk7CivjkKkgPiB3aW5lXC1jdXBzOwor45CGID4gdG9cLWZvbGxvdzsKK+W/tSA+IHRoaW5rXC1vZjsKK+S8miA+IGFzc2VtYmxlOwor5a2mID4gbGVhcm5pbmc7CivlvpIgPiBkaXNjaXBsZTsKK+edpiA+IGZyaWVuZGx5Owor5pegID4gbmVnYXRpdmU7CivmlrkgPiBhXC1zcXVhcmU7CivliY0gPiBpblwtZnJvbnQ7CivnnIkgPiBleWVicm93czsKK+ecgSA+IHByb3ZpbmNlOwor55u0ID4gc3RyYWlnaHQ7Civlu6IgPiBhYnJvZ2F0ZTsKK+ebmyA+IGFidW5kYW50Owor6LuSID4gY2FycmlhZ2U7CivlhaggPiBtYWludGFpbjsKK+W7iiA+IGNvcnJpZG9yOwor5buDID4gYWJyb2dhdGU7CivnmrogPiB3cmlua2xlczsKK+W6tyA+IHBlYWNlZnVsOwor6Ze0ID4gbWlkcG9pbnQ7CivouoogPiBoZXNpdGF0ZTsKK+i6hyA+IGhlc2l0YXRlOwor56ysID4gc2VxdWVuY2U7CivlubsgPiBpbGx1c2lvbjsKK+eZhyA+IGVwaWxlcHN5Owor5bGxID4gbW91bnRhaW47CivouJ8gPiBoZXNpdGF0ZTsKK+W3viA+IGtlcmNoaWVmOwor5benID4gc2tpbGxmdWw7CivlrokgPiBwZWFjZWZ1bDsKK+i3nSA+IGRpc3RhbmNlOwor55WMID4gYm91bmRhcnk7Civku7sgPiB0cnVzdFwtdG87Civlj7AgPiBwbGF0Zm9ybTsKK+ixoSA+IGVsZXBoYW50Owor6aKYID4gZm9yZWhlYWQ7Civos6IgPiB2aXJ0dW91czsKK+izhyA+IHByb3BlcnR5Owor6LK8ID4gcGFzdGVcLXRvOwor6LK7ID4gZXhwZW5zZXM7Civosp4gPiB2aXJ0dW91czsKK+i1hCA+IHByb3BlcnR5Owor5bGlID4gZm9vdHdlYXI7CivosZAgPiBhYnVuZGFudDsKK+ixiiA+IGFidW5kYW50Owor5q2mID4gbWlsaXRhcnk7CivnkLIgPiBuZWNrbGFjZTsKK+WwoCA+IHZlcnlcLWZldzsKK+WujCA+IGNvbXBsZXRlOwor5Y2zID4gcHJvbXB0bHk7Civlr7UgPiBmYXZvcml0ZTsKK+ivrSA+IGxhbmd1YWdlOwor54+NID4gcHJlY2lvdXM7Civlr4wgPiBhYnVuZGFudDsKK+WVhiA+IGNvbW1lcmNlOwor5a6dID4gdHJlYXN1cmU7CivljYMgPiB0aG91c2FuZDsKK+WunCA+IHN1aXRhYmxlOwor5a6YID4gb2ZmaWNpYWw7Civnq5kgPiBzdGFuZFwtdXA7CivlrbggPiBsZWFybmluZzsKK+itrCA+IG1ldGFwaG9yOwor6aaZID4gZnJhZ3JhbnQ7CivkvLwgPiByZXNlbWJsZTsKK+WsoiA+IHRyb3VibGVkOwor6Jm9ID4gYWx0aG91Z2g7Civpm4YgPiBhc3NlbWJsZTsKK+S4lCA+IG1vcmVvdmVyOwor6LCDID4gdHJhbnNmZXI7Civlq4kgPiBqZWFsb3VzeTsKK+eLgyA+IHRvXC1jb3ZldDsKK+WrgSA+IHRvXC1tYXJyeTsKK+iqvyA+IHRyYW5zZmVyOwor6KqeID4gbGFuZ3VhZ2U7CivlqpogPiBjaGFybWluZzsKK+iqmCA+IHBlcnN1YWRlOwor6LS5ID4gZXhwZW5zZXM7CivoqoQgPiBldWxvZ2l6ZTsKK+ipsyA+IGRldGFpbGVkOwor6KmwID4gcXVlc3Rpb247Civmg4ogPiBmcmlnaHRlbjsKK+aUryA+IGRpc3BlcnNlOwor56qBID4gc3VkZGVubHk7CivoqZUgPiBhcHByYWlzZTsKK+WooCA+IHByZWduYW50Owor5Y+lID4gc2VudGVuY2U7CivmmL4gPiBtYW5pZmVzdDsKK+WiniA+IGluY3JlYXNlOwor5paZID4gY29uc2lkZXI7CivokZcgPiBtYW5pZmVzdDsKK+WmiiA+IGNvbmNlaXZlOwor5aKDID4gYm91bmRhcnk7Civnu60gPiBjb250aW51ZTsKK+eEoSA+IG5lZ2F0aXZlOwor6KOVID4gYWJ1bmRhbnQ7Civngq0gPiBjaGFyY29hbDsKK+WbtCA+IHN1cnJvdW5kOwor5aKXID4gaW5jcmVhc2U7Civngb0gPiBjYWxhbWl0eTsKK+WhmiA+IGNlbWV0ZXJ5Owor5b+9ID4gc3VkZGVubHk7CivngJUgPiBhcHByb2FjaDsKK+e7tCA+IG1haW50YWluOwor5r+6ID4gc3ByaW5rbGU7Civmv68gPiB3YXNoXC1vdXQ7CivlnqMgPiBsb3dcLXdhbGw7CivkuaAgPiBwcmFjdGljZTsKK+WegiA+IGxldFwtZG93bjsKK+WdgiA+IGhpbGxzaWRlOwor56WWID4gYW5jZXN0b3I7Civor4QgPiBhcHByYWlzZTsKK+WcjSA+IHN1cnJvdW5kOwor57unID4gY29udGludWU7Civlm7IgPiBzdXJyb3VuZDsKK+S8mCA+IHN1cGVyaW9yOwor5ruvID4gYmxvY2tcLXVwOwor6ZmQID4gYm91bmRhcnk7CivmuqIgPiBvdmVyZmxvdzsKK+a4qSA+IGx1a2V3YXJtOwor6JqKID4gbW9zcXVpdG87CivpubggPiBhbGthbGluZTsKK+WZqiA+IGJlXC1ub2lzeTsKK+WYsiA+IHJpZGljdWxlOwor5ribID4gZGVjcmVhc2U7CivlmJQgPiB0b1wtdm9taXQ7CivmgakgPiBraW5kbmVzczsKK+iEsSA+IHRha2VcLW9mZjsKK+a2uCA+IGRyaWVkXC11cDsKK+WWqiA+IG1vdXJuaW5nOwor5aWUID4gcnVuXC1mYXN0Owor5raMID4gc3VyZ2VcLXVwOwor56aBID4gcmVzdHJpY3Q7Civmta4gPiB0b1wtZmxvYXQ7CivkupIgPiBtdXR1YWxseTsKK+a0kiA+IHNwcmlua2xlOwor5pCeID4gdG9cLWNsZWFyOwor5pyxID4gY2lubmFiYXI7Civln58gPiBkaXN0cmljdDsKK+adkCA+IG1hdGVyaWFsOwor6aKdID4gZm9yZWhlYWQ7CivlgbcgPiB0b1wtc3RlYWw7CivkuLkgPiBjaW5uYWJhcjsKK+iTiSA+IGhpYmlzY3VzOwor5oq9ID4gZHJhd1wtb3V0Owor5LuqID4gY2VyZW1vbnk7Civnu40gPiBjb250aW51ZTsKK+S4sCA+IGFidW5kYW50Owor5Y24ID4gbGF5XC1kb3duOwor5b+GID4gcmVtZW1iZXI7CivpmpQgPiBzZXBhcmF0ZTsKK+WHjyA+IGRlY3JlYXNlOwor5Y2TID4gcHJvZm91bmQ7Civngb4gPiBjYWxhbWl0eTsKK+iBmiA+IGFzc2VtYmxlOwor5o2fID4gZGltaW5pc2g7CivojIQgPiBlZ2dwbGFudDsKK+WLvyA+IG11c3RcLW5vdDsKK+mrrSA+IG11c3RhY2hlOwor6YGlID4gZmFyXC1hd2F5Owor5qubID4gY29tYlwtb3V0Owor5biBID4gY3VycmVuY3k7Civli4kgPiBlbmRlYXZvcjsKK+mquCA+IHNrZWxldG9uOwor6IqzID4gZnJhZ3JhbnQ7CivliqogPiB0b1wtZXhlcnQ7CivotLQgPiBwYXN0ZVwtdG87CivpqZogPiBmcmlnaHRlbjsKK+WIpSA+IHNlcGFyYXRlOwor6JCNID4gZHVja3dlZWQ7CivmqIUgPiBmaXJcLXRyZWU7CivnvKkgPiBjb250cmFjdDsKK+iHpSA+IGxpZVwtZG93bjsKK+aFlSA+IGxvbmdcLWZvcjsKK+iHoyA+IG1pbmlzdGVyOwor5oyhID4gb2JzdHJ1Y3Q7CivohpwgPiBtZW1icmFuZTsKK+ammyA+IGhhemVsbnV0Owor5L+KID4gdGFsZW50ZWQ7Civmnp0gPiBicmFuY2hlczsKK+mZtyA+IHN1Ym1lcmdlOwor5LinID4gbW91cm5pbmc7Civli5IgPiBzdHJhbmdsZTsKK+i6uiA+IGxpZVwtZG93bjsKK+WEqiA+IHN1cGVyaW9yOwor6IGKID4gc29tZXdoYXQ7Civpo74gPiBkZWNvcmF0ZTsKK+WEgCA+IGNlcmVtb255Owor5pacID4gc2xhbnRpbmc7CivmlpAgPiBncmFjZWZ1bDsKK+W6nyA+IGFicm9nYXRlOwor6K+mID4gZGV0YWlsZWQ7CivmkKwgPiB0cmFuc2ZlcjsKK+ainyA+IG93bFwtdGh1czsKK+WCmCA+IHVtYnJlbGxhOwor6aGvID4gbWFuaWZlc3Q7Civkuq0gPiBwYXZpbGlvbjsKK+mhlSA+IG1hbmlmZXN0Owor5rObID4gdG9cLWRyaWZ0Owor6aGNID4gZm9yZWhlYWQ7CivpoYwgPiBmb3JlaGVhZDsKK+espiA+IGlcLmRcLlwtdGFnOwor5YWBID4gdG9cLWdyYW50Owor6I+yID4gZnJhZ3JhbnQ7Civot6ggPiBzdHJhZGRsZTsKK+aOqSA+IHRvXC1jb3ZlcjsKK+mggyA+IGFcLW1vbWVudDsKK+manCA+IHNlcGFyYXRlOwor5p+0ID4gZmlyZXdvb2Q7Civkv68gPiBib3dcLWRvd247Civkv6UgPiByaWNrc2hhdzsKK+mCuyA+IG5laWdoYm9yOwor57+SID4gcHJhY3RpY2U7Civpqb4gPiB0b1wtZHJpdmU7Civkvq0gPiBjb21wbGV0ZTsKK+e+niA+IGRpc2dyYWNlOwor6KOkID4gdHJvdXNlcnM7CivkvLAgPiBtZXJjaGFudDsKK+memCA+IHNjYWJiYXJkOwor5YuDID4gc3VkZGVubHk7CivlkpAgPiBpbnN0cnVjdDsKK+aBkiA+IGNvbnN0YW50Owor57OfID4gc2VkaW1lbnQ7Civmia4gPiBkcmVzc1wtdXA7CivotKQgPiB2aXJ0dW91czsKK+mlsCA+IGRlY29yYXRlOwor5pucID4gZ2xvcmlvdXM7Civpm5YgPiBhbHRob3VnaDsKK+S7lSA+IG9mZmljaWFsOwor5Y2nID4gbGllXC1kb3duOwor5LuEID4gc2xhbnRpbmc7CivpmqMgPiBuZWlnaGJvcjsKK+eijSA+IG9ic3RydWN0Owor5pqiID4gc21vb3RobHk7Civmi6YgPiBvYnN0cnVjdDsKK+aKvCA+IG1vcnRnYWdlOwor5oiaID4gcmVsYXRpdmU7CivnuowgPiBjb250aW51ZTsKK+e5vCA+IGNvbnRpbnVlOwor56mGID4gbWFqZXN0aWM7CivnloYgPiBib3VuZGFyeTsKK+mZpSA+IHN1Ym1lcmdlOwor55qxID4gd3JpbmtsZXM7CivnlYUgPiBzbW9vdGhseTsKK+WYuyA+IG1pcnRoZnVsOwor57iuID4gY29udHJhY3Q7CivkuKYgPiBlcXVhbFwtdG87CivmmJQgPiBmb3JtZXJseTsKK+e3tCA+IHByYWN0aWNlOwor6ZeYID4gc3RydWdnbGU7CivnnqogPiBzdGFyZVwtYXQ7CivmlqUgPiB0b1wtc2NvbGQ7CivliaogPiBzY2lzc29yczsKK+WnmiA+IGhhbmRzb21lOwor5o6PID4gdGFrZVwtb3V0Owor57atID4gbWFpbnRhaW47Civor7EgPiBwZXJzdWFkZTsKK+e2miA+IGNvbnRpbnVlOwor57aZID4gY29udGludWU7CivplpMgPiBpbnRlcnZhbDsKK+e0uSA+IGNvbnRpbnVlOwor6IqZID4gaGliaXNjdXM7Civmg7kgPiBpcnJpdGF0ZTsKK+ewvyA+IHJlZ2lzdGVyOwor5pCNID4gZGltaW5pc2g7CivoircgPiBhbmdlbGljYTsKK+ejgSA+IG1hZ25ldGljOwor5q+FID4gcmVzb2x1dGU7CivnrKUgPiBhXC1oYW1wZXI7Civmi5ggPiByZXN0cmFpbjsKK+S8kCA+IGN1dFwtZG93bjsKK+eriiA+IHNlY3JldGx5Owor6YqYID4gaW5zY3JpYmU7CivmhIkgPiBwbGVhc2FudDsKK+eqnCA+IHJ1blwtYXdheTsKK+WvqCA+IHN0b2NrYWRlOwor5oi7ID4gcGVydmVyc2U7CivmsqogPiBzaGFuZ2hhaTsKK+mHnCA+IGNhdWxkcm9uOwor5ZekID4gbGF1Z2hcLWF0Owor5aixID4gcGxlYXN1cmU7Civlq6MgPiBjaGFybWluZzsKK+WuoCA+IGZhdm9yaXRlOwor5oa2ID4gcmVtZW1iZXI7Civpk60gPiBpbnNjcmliZTsKK+mmqCA+IGZyYWdyYW50Owor5riKID4gc3VyZ2VcLXVwOwor56aEID4gYmxlc3Npbmc7CivnqoMgPiBzZWNyZXRseTsKK+mhtyA+IGFcLW1vbWVudDsKK+ekmSA+IG9ic3RydWN0Owor5oSVID4gc3RhcnRsZWQ7CivllaEgPiBtb3JwaGluZTsKK+i0niA+IHZpcnR1b3VzOwor5ZuaID4gcHJpc29uZXI7CivotKYgPiBhY2NvdW50czsKK+mBmSA+IGZhclwtYXdheTsKK+WWuyA+IG1ldGFwaG9yOwor55O3ID4gY3JvY2tlcnk7Civok6YgPiBzdWRkZW5seTsKK+a7niA+IGJsb2NrXC11cDsKK+i0rCA+IGRlY3JlYXNlOwor5LyeID4gdW1icmVsbGE7CivohaUgPiByYXdcLW1lYXQ7Civmu5QgPiBvdmVyZmxvdzsKK+a6hSA+IHNwcmlua2xlOwor5ZK4ID4gdG9nZXRoZXI7CivnlqsgPiBlcGlkZW1pYzsKK+WVqiA+IHN5bGxhYmxlOwor5rKbID4gYWJ1bmRhbnQ7CivohqggPiB0b1wtc3dlbGw7CivlkLEgPiBjaGlycGluZzsKK+i9qSA+IGNhcnJpYWdlOwor6K6lID4gcmlkaWN1bGU7Civoj4wgPiBtdXNocm9vbTsKK+ihjSA+IG92ZXJmbG93Owor5LqoID4gc21vb3RobHk7CivnkJAgPiB0cmlmbGluZzsKK+e7sCA+IGdyYWNlZnVsOwor6IufID4gY2FyZWxlc3M7CivltJsgPiB0b3dlcmluZzsKK+WHuCA+IHByb3RydWRlOwor5ZqjID4gYmVcLW5vaXN5Owor55CbID4gdHJlYXN1cmU7CivlmIAgPiBiYWNrYml0ZTsKK+mTkCA+IHNoYWNrbGVzOwor6LiMID4gaGVzaXRhdGU7CivosJUgPiBwcm9jbGFpbTsKK+i/uCA+IGd1c2hcLW91dDsKK+WJlCA+IHBpY2tcLW91dDsKK+WGgCA+IGhvcGVcLWZvcjsKK+egmiA+IGlua3N0b25lOwor5o2NID4gd2FyZFwtb2ZmOwor6IeAID4gYnV0dG9ja3M7CivlgJQgPiBzdHViYm9ybjsKK+WlhCA+IGVyZVwtbG9uZzsKK+S+pSA+IGJlXC1sdWNreTsKK+aitSA+IGJ1ZGRoaXN0Owor6KSlID4gbWF0dHJlc3M7CivmmZYgPiBzdW5zaGluZTsKK+a8viA+IG92ZXJmbG93Owor55W0ID4gZmFybWxhbmQ7Civnnp8gPiBnbGFyZVwtYXQ7CivnmLggPiBsYW1lbmVzczsKK+a+jiA+IHNwbGF0dGVyOwor5r2mID4gdG9cLWZsb29kOwor5r+SID4gYXBwcm9hY2g7CivlgY4gPiBjbGluZ1wtdG87CivonY4gPiBzY29ycGlvbjsKK+ewuCA+IHdpbm5vd2VyOwor55ifID4gZXBpZGVtaWM7CivlurYgPiBudW1lcm91czsKK+aDpiA+IHRoaW5rXC1vZjsKK+aSgiA+IHB1dFwtZG93bjsKK+ivmCA+IHF1ZXN0aW9uOwor5pmXID4gcHJlXC1kYXduOwor6LmKID4gZm9vdHBhdGg7CivnorEgPiBhbGthbGluZTsKK+mYiSA+IGNhc3RyYXRlOwor5reGID4gY29uZnVzZWQ7CivokKYgPiBlbnRhbmdsZTsKK+amhiA+IGVsbVwtdHJlZTsKK+eMnSA+IGFicnVwdGx5Owor6LWTID4gY29udGludWU7Civmnq0gPiBvd2xcLXRodXM7Civmm6YgPiBzdW5saWdodDsKK+mSiiA+IGVuZGVhdm9yOwor5pKFID4gcHJvdHJ1ZGU7CivmuKQgPiBzd2VsbGluZzsKK+i+mCA+IHdpbmRsYXNzOwor6ZOdID4gYWx1bWludW07CivmjYsgPiB0b1wtcGx1Y2s7Civnn5cgPiBzdHJhaWdodDsKK+iZuyA+IGhvcnNlZmx5Owor556MID4gZG96ZVwtb2ZmOwor5LqfID4gdXJnZW50bHk7CivmkKogPiB3YXJkXC1vZmY7CivlvqggPiBkb3VidGZ1bDsKK+WVkCA+IHRvXC10YXN0ZTsKK+mVryA+IGJyYWNlbGV0Owor5Yi9ID4gYW1wdXRhdGU7Civol7sgPiBzcGxlbmRpZDsKK+aDsCA+IGluZG9sZW50Owor54eUID4gdG9cLXJvYXN0Owor5radID4gaW51bmRhdGU7CivlgZUgPiB0b2dldGhlcjsKK+mqtyA+IHNrZWxldG9uOwor57ubID4gZGVlcFwtcmVkOwor57SKID4gY29uZnVzZWQ7CivpgoMgPiBwcm9mb3VuZDsKK+awryA+IGNobG9yaW5lOwor5Z2NID4gY29sbGFwc2U7CivlpqkgPiBjaGFybWluZzsKK+WYrSA+IHN5bGxhYmxlOwor5b+QID4gdGltb3JvdXM7CivmrqEgPiBlbmNvZmZpbjsKK+aYtSA+IGludGltYXRlOwor57qtID4gY29uZnVzZWQ7Civkv58gPiB3YWl0XC1mb3I7CivmoaIgPiBoYXJkd29vZDsKK+m7jyA+IHN0aWNrXC10bzsKK+aZjyA+IHBlYWNlZnVsOwor6Zq9ID4gc3VwZXJpb3I7CivnprogPiBkaXN0cmljdDsKK+eXmCA+IHNtYWxscG94Owor5qefID4gYmV0ZWxudXQ7Civpn60gPiBzY2FsbGlvbjsKK+aIviA+IHBlcnZlcnNlOwor6JSrID4gd2l0aGVyZWQ7CivohoIgPiBiYWNrYm9uZTsKK+WeoCA+IGJvdW5kYXJ5Owor6ZWsID4gY2F1bGRyb247Civog6sgPiBzaGluYm9uZTsKK+WTkCA+IHN5bGxhYmxlOwor56G3ID4gYWxrYWxpbmU7Civoh4MgPiBzd2VsbFwtdXA7CivlsowgPiBwZXJpbG91czsKK+eKnyA+IHN0dWJib3JuOwor546OID4gamluZ2xpbmc7CivpgaIgPiBjYXJlbGVzczsKK+WZlCA+IHN5bGxhYmxlOwor5ruTID4gc2VkaW1lbnQ7CivpmrwgPiBhcXVpbGluZTsKK+e/piA+IHNjaXNzb3JzOwor6ZmyID4gZnJvbnRpZXI7CivosLYgPiBwcm9waGVjeTsKK+WBuyA+IGh1bXBiYWNrOwor6ZOCID4gcGxhdGludW07CivnupsgPiBhXC1iYW5uZXI7Civmh78gPiB2aXJ0dW91czsKK+mTrCA+IGNocm9taXVtOwor5aiGID4gZ3JhY2VmdWw7CivmhbUgPiBpbmRvbGVudDsKK+iDsCA+IHBhbmNyZWFzOwor6KaDID4gcmVhY2hcLXRvOwor6YG9ID4gc3VkZGVubHk7Civnnb4gPiB0ZXN0aWNsZTsKK+e8nCA+IGRldGFpbGVkOwor5YCoID4gYXJyb2dhbnQ7CivorqMgPiBvYml0dWFyeTsKK+mSmyA+IHRpdGFuaXVtOwor5rWDID4gc2F0dXJhdGU7Civml5YgPiByb21hbnRpYzsKK+e8mSA+IHJlZFwtc2lsazsKK+WYoyA+IHN5bGxhYmxlOwor5oeLID4gc3BsZW5kaWQ7Civoob4gPiBjb3ZlcmxldDsKK+WuuCA+IGltcGVyaWFsOwor5L2eID4gZmxhdHRlcnk7Civom5QgPiB0YXBld29ybTsKK+elnCA+IGJsZXNzaW5nOwor5rCFID4gb3ZlcmNvYXQ7CivmsJ8gPiBmbHVvcmluZTsKK+awsCA+IGN5YW5vZ2VuOwor6bKfID4gc3R1cmdlb247CivlqZUgPiBoYW5kc29tZTsKK+ehkiA+IHNlbGVuaXVtOwor6IioID4gYVwtc2FtcGFuOwor54OKID4gdG9cLXNtZWx0Owor6JCxID4gZGF5XC1saWx5Owor55a4ID4gamF1bmRpY2U7Civpk4ogPiB0aGFsbGl1bTsKK+ivgiA+IGV4ZWdlc2lzOwor6ZuJID4gcGhlYXNhbnQ7CivpoqIgPiBsdW1pbm91czsKK+mSjyA+IGJyYWNlbGV0Owor5qCAID4gZ2FyZGVuaWE7Civnu5QgPiB0cm91c2VyczsKK+e8tSA+IGNvbnRpbnVlOwor5rqYID4gYWJydXB0bHk7Civor5IgPiBiZXF1ZWF0aDsKK+awpiA+IGZsdW9yaW5lOwor6aKfID4gZGF3ZGxpbmc7Civnl6sgPiBlcGlsZXBzeTsKK+iLiyA+IGFtYXJhbnRoOwor54CjID4gc2VhXC1taXN0Owor566dID4gdHdlZXplcnM7CivoubAgPiBoZXNpdGF0ZTsKK+i1gCA+IHByb3BlcnR5Owor5qWuID4gbXVsYmVycnk7CivplYogPiB0d2VlemVyczsKK+mBhCA+IHRvXC1odXJyeTsKK+mSkiA+IHZhbmFkaXVtOwor6Iu3ID4gbGljb3JpY2U7Civli7AgPiBwZWFjZWZ1bDsKK+awvSA+IHRvXC1mbG9hdDsKK+mSqCA+IHR1bmdzdGVuOwor5oSmID4gY29uZnVzZWQ7Civln7ggPiBhXC1ib3JkZXI7Civpq4AgPiBidXR0b2NrczsKK+WrkiA+IGRhdWdodGVyOwor5LybID4gaHVtcGJhY2s7CivnmZwgPiBlcnl0aGVtYTsKK+egpiA+IHN0b2NrYWRlOwor6bi5ID4gdGhlXC1jcm93Owor5pubID4gdHdpbGlnaHQ7Civmp78gPiBoaWJpc2N1czsKK+mqmCA+IHN0YWxsaW9uOwor5bqRID4gY29ycmlkb3I7CivlnbsgPiBhblwtaXNsZXQ7Civop6sgPiB0b1wtc3RhcnQ7Civpk7UgPiBhbW1vbml1bTsKK+awqSA+IGFyZ29uaXVtOwor5ayWID4gZmF2b3JpdGU7CivljaMgPiB3aW5lXC1wb3Q7CivplJEgPiBhbnRpbW9ueTsKK+mGmyA+IGFsZGVoeWRlOwor6ZK9ID4gdGFudGFsdW07CivnoLwgPiBjb25jcmV0ZTsKK+eGmCA+IHRvXC1zdGVhbTsKK+iTgSA+IGFidW5kYW50Owor6K+UID4gZXVsb2dpemU7CivnqqggPiBhXC1jZWxsYXI7CivmoLIgPiBtYW5ncm92ZTsKK+S7syA+IHNlcGFyYXRlOwor6bKjID4gc2tpcGphY2s7CivnmL8gPiBzd2VsbGluZzsKK+mTtyA+IHJ1YmlkaXVtOwor6ZOVID4gZXVyb3BpdW07CivpkosgPiBwb2xvbml1bTsKK+egkSA+IHRvXC1ncmluZDsKK+aeniA+IGZpclwtdHJlZTsKK+a0qyA+IHRvXC1kaXRjaDsKK+aPniA+IHRvXC1jb3ZlcjsKK+WfmiA+IGNydWNpYmxlOwor5Z6kID4gYW50XC1oaWxsOwor5Y26ID4gd2luZWN1cHM7CivlmI8gPiBmZWxpY2l0eTsKK+myvSA+IGZsYXRmaXNoOwor6bKtID4gbWFja2VyZWw7CivpkqogPiBzY2FuZGl1bTsKK+mSqyA+IGZyYW5jaXVtOwor6ZKQID4gc2FtYXJpdW07CivnpZMgPiBleG9yY2lzZTsKK+agsyA+IGFcLWJhc2tldDsKK+W+vCA+IGZyb250aWVyOwor5ZCyID4gc21pbGVcLWF0Owor6I6wID4gY2FtcGhhbmU7CivoirQgPiBmbHVvcmVuZTsKK+S7nSA+IHRvZ2V0aGVyOwor6LWcID4gYWJzdHJ1c2U7CivpvpMgPiBhXC1oYWx0ZXI7CivpvJogPiBkcnVtbWluZzsKK+m6riA+IHBvcnJpZGdlOwor6bm8ID4gYWxrYWxpbmU7Civpt6kgPiBwaGVhc2FudDsKK+m3iiA+IHBoZWFzYW50Owor6bWrID4gcGhlYXNhbnQ7CivptZkgPiBhXC1zaHJpa2U7CivptLAgPiB0aGVcLWNyb3c7Civps64gPiBjaGlja2VuczsKK+mzhyA+IHN0dXJnZW9uOwor6bK6ID4gY2F0XC1maXNoOwor6bGjID4gc3R1cmdlb247CivpsZggPiBzdHVyZ2VvbjsKK+mwuSA+IHNraXBqYWNrOwor6bCJID4gc3R1cmdlb247CivpsIggPiBmbGF0ZmlzaDsKK+mvuiA+IGJsb3dmaXNoOwor6a+4ID4gYmxvd2Zpc2g7Civpr5YgPiBtYWNrZXJlbDsKK+mukCA+IGJsb3dmaXNoOwor6a2oID4gYmxvd2Zpc2g7CivprK0gPiBzdHJ1Z2dsZTsKK+msrCA+IHN0cnVnZ2xlOwor6ayqID4gc3RydWdnbGU7CivprKYgPiBzdHJ1Z2dsZTsKK+mspSA+IHN0cnVnZ2xlOwor6ayLID4gZm9yZWxvY2s7CivprIAgPiB0b1wtc2hhdmU7Civpq7UgPiB3aGlza2VyczsKK+mrjiA+IGhpcFwtYm9uZTsKK+mpgCA+IHN1ZGRlbmx5Owor6aitID4gc3RhbGxpb247Civpp74gPiBydW5cLWF3YXk7Civpp6YgPiB0b1wtbW91bnQ7Civpp5UgPiB0b1wtZHJpdmU7CivppqkgPiBhcm9tYXRpYzsKK+mmnyA+IGZyYWdyYW50Owor6aaaID4gYXJvbWF0aWM7CivppKwgPiBwb3JyaWRnZTsKK+mkqyA+IGR1bXBsaW5nOwor6aSpID4gaGljY291Z2g7CivppJ8gPiBsaWJhdGlvbjsKK+mkmSA+IHRvXC1hZG9ybjsKK+misSA+IHRhaXBob29uOwor6aGlID4gbHVtaW5vdXM7CivpoaIgPiBkYXdkbGluZzsKK+mgsiA+IHN0cmFpZ2h0Owor6Z+uID4gc2NhbGxpb247Civpn6EgPiBnb3JnZW91czsKK+mfoCA+IGtuZWVcLXBhZDsKK+mduiA+IHN0b2NraW5nOwor6ZyoID4gY2xvdWRpbmc7Civpm54gPiBjaGlja2VuczsKK+mbiyA+IHN1cGVyaW9yOwor6ZqyID4gc3RhbGxpb247CivpmqkgPiBwcm9mb3VuZDsKK+mYuCA+IGRpc3RyZXNzOwor6Za5ID4gY2FzdHJhdGU7CivplpIgPiBwZWFjZWZ1bDsKK+mVpSA+IGx1dGV0aXVtOwor6ZG3ID4gdHdlZXplcnM7CivpkaUgPiBsdXRldGl1bTsKK+mRlSA+IHR1bmdzdGVuOwor6ZGKID4gY2F1bGRyb247CivpkLIgPiBicmFjZWxldDsKK+mQhyA+IHZhbmFkaXVtOwor6Y6iID4gdHVuZ3N0ZW47CivpjokgPiB0aGFsbGl1bTsKK+mNqSA+IG5vYmVsaXVtOwor6Y2aID4gZnJvbnRsZXQ7CivpjJIgPiBhY3Rpbml1bTsKK+mLgSA+IGFsdW1pbnVtOwor6YqsID4gc2hhY2tsZXM7CivpiqogPiBldXJvcGl1bTsKK+mKqCA+IGFtbW9uaXVtOwor6YqjID4gcnViaWRpdW07Civpio0gPiBhXC1zaWNrbGU7CivpibsgPiBjaHJvbWl1bTsKK+mJrSA+IHRhbnRhbHVtOwor6YmRID4gcGxhdGludW07CivpiYggPiB0aGFsbGl1bTsKK+mJhiA+IHRyZWFzdXJlOwor6YiqID4gYnJhY2VsZXQ7CivpiKcgPiBzY2FuZGl1bTsKK+mIpiA+IHRpdGFuaXVtOwor6YiBID4gZnJhbmNpdW07Civph6kgPiB2YW5hZGl1bTsKK+mHpyA+IGJyYWNlbGV0Owor6YekID4gc2FtYXJpdW07Civph6EgPiBjYXVsZHJvbjsKK+mHmSA+IHBvbG9uaXVtOwor6YeXID4gZW5kZWF2b3I7CivphqkgPiBzZWRpbWVudDsKK+mGhiA+IHdpbmVcLWN1cDsKK+mGgyA+IG1hcmluYXRlOwor6YWyID4gaGFuZ292ZXI7CivphLAgPiBuZWlnaGJvcjsKK+mEiCA+IHNsaXBwZXJzOwor6YKFID4gaGVzaXRhbnQ7Civov7sgPiB0b1wtc2hpZnQ7CivovYogPiBheGxlXC10aXA7CivovYYgPiB3aW5kbGFzczsKK+i8rSA+IGZsZXhpYmxlOwor6LysID4gYVwtaGVhcnNlOwor6LudID4gYXhsZVwtdGlwOwor6LqtID4gdG9cLWRlbGF5Owor6LqVID4gaGVzaXRhdGU7Civoub4gPiB0b1wtc3F1YXQ7CivouacgPiB0b1wtc3BvaWw7CivouKYgPiB0aGVcLXNoaW47Civot4UgPiBjYXJlbGVzczsKK+i3giA+IGNyZWVwaW5nOwor6LWsID4gZGVlcFwtcmVkOwor6LSSID4gdmlydHVvdXM7Civos74gPiBhYnN0cnVzZTsKK+izrCA+IGFjY291bnRzOwor6LOhID4gY29udGludWU7CivosrYgPiBkZWNyZWFzZTsKK+iysiA+IHByb3BlcnR5Owor6LGOID4gdmVydGljYWw7CivorpYgPiBwcm9waGVjeTsKK+ituSA+IHRvXC1zaG91dDsKK+itnCA+IHJlZ2lzdGVyOwor6K2UID4gZXVsb2dpemU7CivorY8gPiByaWRpY3VsZTsKK+isvyA+IHJpZGljdWxlOwor6Ky8ID4gdG9cLXNob3V0Owor6KutID4gcHJvY2xhaW07Civoq4YgPiB0b1wtY2hlYXQ7CivoqZIgPiBiZXF1ZWF0aDsKK+ipiyA+IHRvXC1jdXJzZTsKK+ipiiA+IHBsZWFzaW5nOwor6KmBID4gZXhlZ2VzaXM7CivoqIMgPiBvYml0dWFyeTsKK+iltiA+IGlnbm9yYW50Owor6KWrID4gcmFpbmNvYXQ7CivopY8gPiByYWluY29hdDsKK+iksiA+IHRyb3VzZXJzOwor6KSMID4gdHJvdXNlcnM7Civoo68gPiBjb3ZlcmxldDsKK+igjSA+IHNjb3JwaW9uOwor6J2xID4gaG9yc2VmbHk7CivonZ8gPiBoZWRnZWhvZzsKK+idjyA+IFwoaW5zZWN0XCk7CivonLEgPiBcKGluc2VjdFwpOwor6JyWID4gdGFwZXdvcm07CivomrMgPiBhbnRcLWVnZ3M7CivompggPiB0YXBld29ybTsKK+ialCA+IGFudFwtZWdnczsKK+iWuCA+IGR1Y2t3ZWVkOwor6JaGID4gdG9cLWNvdmVyOwor6JWjID4gaGliaXNjdXM7CivolIkgPiBlYXJ0aFwtdXA7CivokZYgPiBmb2xsaWNsZTsKK+iLkCA+IHNlcXVlbmNlOwor6ImpID4gdGhvbGVwaW47CivoiYwgPiB0b1wtY2F1bGs7CivohrUgPiBwYW5jcmVhczsKK+iEsCA+IHRoZVwtbmVjazsKK+iEqyA+IHRha2VcLW9mZjsKK+iEmyA+IHNoaW5ib25lOwor6IOuID4gdG9cLXN3ZWxsOwor6IKoID4gdG9cLXN3ZWxsOwor6IKPID4gY29wdWxhdGU7CivogI8gPiB3aGlza2VyczsKK+e/rCA+IHBoZWFzYW50Owor57+rID4gY2FyZWxlc3M7CivnvYcgPiBhXC1nb2JsZXQ7CivnvLcgPiBsYXlcLWRvd247CivnupggPiBjb250aW51ZTsKK+e5liA+IHVtYnJlbGxhOwor57i/ID4gc3RyZWFtZXI7CivnuLQgPiB0b3dcLWxpbmU7CivnuJ0gPiBkZXRhaWxlZDsKK+e4iSA+IHJlZFwtc2lsazsKK+e4iCA+IGVudGFuZ2xlOwor57e7ID4gZGVsaWNhdGU7Civntr0gPiBncmFjZWZ1bDsKK+e2ryA+IHRvXC1icmFpZDsKK+e2qiA+IGRhcmtcLXJlZDsKK+e1uyA+IG1vdXJuaW5nOwor57WzID4gZGVlcFwtcmVkOwor57WdID4gdHJvdXNlcnM7CivntJ4gPiBhXC1mcmluZ2U7CivntJwgPiBjb25mdXNlZDsKK+exoyA+IGJvd1wtY2FzZTsKK+ewrCA+IFwoYmFtYm9vXCk7CivnroIgPiBcKGJhbWJvb1wpOwor56uiID4gd2FpdFwtZm9yOwor56uEID4gcnVuXC1hd2F5Owor56ePID4gdG9cLXdhc3RlOwor56W/ID4gYmxlc3Npbmc7CivnpbwgPiBsaWJhdGlvbjsKK+ejnyA+IG1lZGlvY3JlOwor56KPID4gY29sb3VyZWQ7Civnoa8gPiBpbmtzdG9uZTsKK+eguSA+IGFzdGF0aW5lOwor56C1ID4gc3lsbGFibGU7Civnn4sgPiB0b1wtc3RhcmU7CivnnpMgPiB0b1wtc2xlZXA7CivnnY8gPiBiZVwtdGlyZWQ7CivnnYUgPiBiaWdcLWV5ZWQ7Civnm6wgPiBzYWx0XC1waXQ7Civnm5kgPiBhXC1iYXNrZXQ7Civnmp0gPiBsdW1pbm91czsKK+eZrSA+IHN3ZWxsaW5nOwor55mSID4gZ2V0XC13ZWxsOwor55mOID4gZXBpbGVwc3k7CivnmYggPiBhYnJvZ2F0ZTsKK+eZgyA+IHdlYWtuZXNzOwor55mAID4gamF1bmRpY2U7CivnmLwgPiBzaWNrbmVzczsKK+eYtiA+IHRvXC1jb3VnaDsKK+eYsCA+IHNjcm9mdWxhOwor55iJID4gZ2V0XC13ZWxsOwor55aHID4gZmFybWxhbmQ7CivnlbogPiBib3VuZGFyeTsKK+eUryA+IHBlYWNlZnVsOwor55ShID4gYWJ1bmRhbnQ7Civnk6kgPiBraWxvd2F0dDsKK+eTpyA+IGRlY2FncmFtOwor55KaID4gc3BsZW5kaWQ7CivnkKsgPiBvcm5hbWVudDsKK+ePtyA+IFwvMlwtcHJcLXN0Owor54+kID4gdHJlYXN1cmU7Civnj44gPiBwcmVjaW91czsKK+ePjCA+IG9ybmFtZW50Owor542YID4gY29sbGFwc2U7CivnirUgPiByZXNvbHV0ZTsKK+eKqyA+IHByb3RydWRlOwor54qOID4gdGhlXC16ZWJ1Owor54qHID4gcnVuXC1mYXN0Owor54mzID4gXChib3ZpbmVcKTsKK+eGpCA+IFwocGVyc29uXCk7CivnhZAgPiBcKHBlcnNvblwpOwor54SMID4gdG9cLWxpZ2h0Owor54KkID4gaWxsdW1pbmU7CivngZEgPiBzcHJpbmtsZTsKK+eAsCA+IG92ZXJmbG93Owor54ChID4gc2xpcHBlcnk7Civmvr4gPiBzbGlwcGVyeTsKK+a+sSA+IHNlZGltZW50Owor5r6HID4gaW51bmRhdGU7CivmvZcgPiBmcmllbmRseTsKK+a9jiA+IHJpcHBsaW5nOwor5rusID4gc2hhbmdoYWk7Civmu4MgPiBzd2VsbGluZzsKK+a6qyA+IGx1a2V3YXJtOwor5rmiID4gYmF0aHJvb207CivmuJUgPiBzdXJnZVwtdXA7CivmtbkgPiBzYXR1cmF0ZTsKK+azkCA+IHRvXC13cml0ZTsKK+ayjSA+IGZyZWV6aW5nOwor5rC+ID4gb3ZlcmZsb3c7CivmsKwgPiBhcmdvbml1bTsKK+awiSA+IHJlc3RsZXNzOwor5q++ID4gYVwtY29hcnNlOwor5q+7ID4gdG9cLW1vdWx0Owor5q+3ID4gcmVzdGxlc3M7Civmrr0gPiBtaXhlZFwtdXA7Civmrq8gPiBlbmNvZmZpbjsKK+aulyA+IHNpY2tuZXNzOwor5qybID4gYVwtaGFuZGxlOwor5quDID4gY3VwYm9hcmQ7Civmqr8gPiBtdWxiZXJyeTsKK+aqsyA+IGJldGVsbnV0Owor5qiaID4gYVwtcHVsbGV5Owor5qWoID4gaGFyZHdvb2Q7CivmpaEgPiBlbG1cLXRyZWU7CivmpIQgPiB0b1wtZ3JhZnQ7CivmorEgPiBkb29yc2lsbDsKK+ailCA+IGdhcmRlbmlhOwor5p+kID4gaGF3dGhvcm47Civmn4UgPiBmbG91cmlzaDsKK+aeuyA+IGxvbmdcLW9hcjsKK+abhiA+IGNhbGVuZGFyOwor5pqxID4gaW50aW1hdGU7CivmmqYgPiBjYWxlbmRhcjsKK+aaoCA+IGRheWJyZWFrOwor5pqJID4gc3Vuc2hpbmU7CivmmacgPiBkYXlicmVhazsKK+aZmyA+IHN1bmxpZ2h0Owor5pikID4gc3Vuc2hpbmU7CivmmKEgPiBsb25nXC1kYXk7Civml5ggPiBhXC1wZW5ub247Civmlr4gPiBhXC1wZW5ub247CivmloggPiBsZWFybmluZzsKK+aVqiA+IHRvXC13ZWlnaDsKK+aVoCA+IHRvXC13ZWlnaDsKK+aUqSA+IG9ic3RydWN0Owor5pSeID4gdG9cLXNwbGl0Owor5pSUID4gb2JzdHJ1Y3Q7Civmk6kgPiB0b1wtc3RhaW47Civmk4sgPiBvYnN0cnVjdDsKK+aSjyA+IHB1bGxcLW91dDsKK+aRtyA+IHRvXC1rbm9jazsKK+aQtSA+IHdpcGVcLW9mZjsKK+aQsiA+IHRvXC1zZWl6ZTsKK+aQryA+IHRha2VcLW91dDsKK+aQiyA+IHRvXC10aHVtcDsKK+aPviA+IHdpcGVcLW9mZjsKK+aPsCA+IHBva2VcLW91dDsKK+aPoiA+IHRvXC1zZWl6ZTsKK+aPnCA+IGNvdmVyXC11cDsKK+aPjCA+IHRvXC1zaGFrZTsKK+aOuSA+IHRvXC1wbHVjazsKK+aNpiA+IHRvXC1zZWl6ZTsKK+aLkSA+IHRvXC1jbGFtcDsKK+aJniA+IHdhcmRcLW9mZjsKK+aJhSA+IGdhdGVcLWJhcjsKK+aHlSA+IHNhdGlhdGVkOwor5oaqID4gY29tcG9zZWQ7CivmhpYgPiBjYXV0aW91czsKK+aGkiA+IGNvbmZ1c2VkOwor5oWtID4gY2F1dGlvdXM7CivmhasgPiB0b1wtYWxhcm07CivmhYUgPiBhZ2l0YXRlZDsKK+aFgSA+IGRpc2hvbm9yOwor5oO9ID4gY29uZnVzZWQ7Civmg7ggPiB0cm91YmxlZDsKK+aDmyA+IGNvbmZ1c2VkOwor5oOUID4gY2hlZXJmdWw7Civmg4QgPiBsb25nXC1mb3I7CivmgqQgPiBhZ2l0YXRlZDsKK+aBnSA+IGNhcmVmcmVlOwor5oGUID4gY2hlZXJmdWw7CivmgYwgPiB0b1wtd29ycnk7CivmgYYgPiBjb25zdGFudDsKK+W/riA+IHN0dWJib3JuOwor5b6vID4gd2FpdFwtZm9yOwor5b24ID4gcmVzdGxlc3M7CivlvYogPiBzdHViYm9ybjsKK+W8oiA+IGJvd1wtY2FzZTsKK+W7pCA+IHRvXC1wbGFjZTsKK+W7oSA+IGNvcnJpZG9yOwor5bq7ID4gbnVtZXJvdXM7CivluqwgPiBhYnVuZGFudDsKK+W5rCA+IGNvdmVyXC11cDsKK+W5oyA+IGN1cnJlbmN5Owor5bi1ID4gcmVtbmFudHM7CivluLEgPiBjb3ZlclwtdXA7Civltq0gPiBlbGV2YXRlZDsKK+W2kiA+IHRvd2VyaW5nOwor5bO/ID4gbW91bnRhaW47CivlsoogPiBmb290aGlsbDsKK+WxvCA+IG1vdW50YWluOwor5a+2ID4gdHJlYXN1cmU7Civlr7MgPiB0cmVhc3VyZTsKK+WvmiA+IHByZWNpb3VzOwor5a6sID4gYXJjaGl2ZXM7CivlrYMgPiB0cm91YmxlZDsKK+WsrCA+IG1pc3RyZXNzOwor5ayhID4gZGF1Z2h0ZXI7CivlrJ0gPiBkZWxpY2F0ZTsKK+WsiCA+IGdyYWNlZnVsOwor5au/ID4gdHJhbnF1aWw7Civlq7UgPiBjaGFybWluZzsKK+WqriA+IGhhbmRzb21lOwor5am+ID4gaGFuZHNvbWU7CivlqK8gPiBwbGVhc3VyZTsKK+WomyA+IHBsZWFzdXJlOwor5aemID4gYWR1bHRlcnk7Civlp5kgPiBjb25jZWl2ZTsKK+WloSA+IGFycm9nYW50Owor5aCdID4gY3J1Y2libGU7Civln7wgPiBoZWFkbGFuZDsKK+WfgCA+IGxldFwtZG93bjsKK+WdriA+IHBsYXRmb3JtOwor5ZylID4gbXVzaHJvb207Civlm64gPiBpbnZlaWdsZTsKK+WbgiA+IGJlXC1ub2lzeTsKK+WauyA+IGJlXC1ub2lzeTsKK+WYpSA+IHRvXC13YXN0ZTsKK+WXgyA+IHRvXC1mbHV0ZTsKK+WWqSA+IG1ldGFwaG9yOwor5ZaTID4gY2hpcnBpbmc7CivllowgPiBzeWxsYWJsZTsKK+WVvSA+IHRvXC1zcGVhazsKK+WVhyA+IHRvXC1zdGFsazsKK+WUpSA+IGFcLWJ1bmRsZTsKK+WToiA+IHN5bGxhYmxlOwor5ZK6ID4gbWFqZXN0aWM7CivlkpwgPiB0b1wtc2NvbGQ7CivlkocgPiBmcmFncmFudDsKK+WRoCA+IHRvXC1zcHVydDsKK+WPkiA+IG9iZWRpZW50Owor5Y61ID4gYVwtc3ByaW5nOwor5Y29ID4gcHJvbXB0bHk7CivljbwgPiB1bnN0ZWFkeTsKK+WNuSA+IHN5bXBhdGh5Owor5YuUID4gZW5kZWF2b3I7Civli4wgPiB0b1wtbGFib3I7CivlirsgPiBmbHVycmllZDsKK+WKmSA+IGFcLWRpdmlkZTsKK+WKiiA+IGFtcHV0YXRlOwor5YmfID4gdG9cLXByaWNrOwor5YinID4gZGlzYXN0ZXI7Civlh6UgPiB0b1wtZHdlbGw7Civlh4UgPiBkcmllZFwtdXA7CivlhrQgPiBmcmVlemluZzsKK+WGsSA+IGZyZWV6aW5nOwor5YaoID4gYWJ1bmRhbnQ7Civlhp0gPiBzdWl0YWJsZTsKK+WGhyA+IGhhdmVcLW5vdDsKK+WFoyA+IGRlY2lncmFtOwor5YWbID4ga2lsb2dyYW07CivlhZkgPiBkZWNhZ3JhbTsKK+WEqSA+IGNvbXBsZXRlOwor5YOlID4gYmVcLWx1Y2t5Owor5YODID4gcHJlcGFyZWQ7Civlg4IgPiBodW1wYmFjazsKK+WCtCA+IGh1bXBiYWNrOwor5YKiID4gc3R1YmJvcm47Civlgp4gPiB1bnN0ZWFkeTsKK+WCjCA+IHRvXC1jdXJzZTsKK+WBuCA+IHRvXC1zdGVhbDsKK+WBsiA+IHRhbGVudGVkOwor5YGrID4gd2FpdFwtZm9yOwor5YGfID4gYWdpdGF0ZWQ7Civkv5MgPiBzdHJhaWdodDsKK+S+qyA+IGZsYXR0ZXJ5Owor5L20ID4gYVwtc2Vjb25kOwor5L2qID4gaGVzaXRhdGU7CivkvYsgPiBjb250aW51ZTsKK+S9gCA+IHJlc2VtYmxlOwor5LyDID4gaGFuZHNvbWU7CivkurkgPiBwcm9ncmVzczsKK+S5tSA+IHRvXC1lbnRlcjsKK+S2siA+IHRoZVwtZWRnZTsKK+S1siA+IHJhd1wtaGVtcDsKK+S1piA+IHRvXC1zdGFpbjsKK+S1miA+IGthb2xpYW5nOwor5LWTID4gdGhlXC1tb2xlOwor5LWJID4gYWJ1dGlsb247CivktLsgPiBkcnlcLWZvb2Q7CivktKsgPiBhbnRlbG9wZTsKK+S0miA+IHNhbHRwb25kOwor5LSXID4gYVwtc2hyaWtlOwor5LO7ID4gYW5cLWVhZ2xlOwor5LOnID4gYW5cLWVhZ2xlOwor5LKWID4gYmlnXC1maXNoOwor5LKOID4gdG9cLXNwb2lsOwor5LCnID4gc2luaXN0ZXI7CivksJ8gPiB0aGVcLXNvdWw7Civkr6ogPiBiaWdcLWhlYWQ7Civkr5ogPiB0aGVcLXJpYnM7Civkr5cgPiBidXR0b2NrczsKK+SvkCA+IHNoaW5ib25lOwor5K+OID4gc2hpbmJvbmU7Civkr4kgPiB0b1wtY2hva2U7Civkr4IgPiBudW1lcm91czsKK+StsSA+IGFcLWxpdHRsZTsKK+SsvCA+IHNhdGlhdGVkOwor5Ky5ID4gYVwtc2lja2xlOwor5KyJID4gaG90XC13aW5kOwor5Ku3ID4gdGhlXC1qb3dsOwor5KubID4gcmVja2xlc3M7Civkq5cgPiByZWNrbGVzczsKK+SrgyA+IHRoZVwtbGlwczsKK+SqtiA+IHRoZVwtY2hpbjsKK+SqqSA+IHRvXC1jaGFudDsKK+SqnCA+IGFcLXNoaWVsZDsKK+SqkSA+IHRvXC1zdGljazsKK+SqiiA+IGFcLWhhbHRlcjsKK+SqhSA+IGFcLXF1aXZlcjsKK+SqgSA+IGFcLWhhbHRlcjsKK+SptCA+IGFcLXF1aXZlcjsKK+SpriA+IGFcLXF1aXZlcjsKK+SpoCA+IGFcLWdpcmRsZTsKK+SpiSA+IHRoZVwtZmFjZTsKK+SpiCA+IGFcLXBsdW1weTsKK+SovCA+IGR5ZXN0dWZmOwor5KerID4gYVwtdHJlbmNoOwor5KeVID4gYm91bmRhcnk7Civkp4EgPiB0b1wtbGVhdmU7CivkpqUgPiB0b1wtbGVhcm47CivkpbggPiBhXC1zaWNrbGU7Civkpa0gPiBldmlkZW5jZTsKK+SlpSA+IGFcLXNpY2tsZTsKK+SljCA+IGV2aWRlbmNlOwor5KWLID4gdG9cLXNtZWx0Owor5KS/ID4gdG9cLWNhcnZlOwor5KS2ID4gYVwtaGFtbWVyOwor5KSzID4gYVwtbWlycm93Owor5KSwID4gdG9cLXNtZWx0Owor5KSrID4gYVwtY2hpc2VsOwor5KSoID4gdG9cLXNwbGl0Owor5KSdID4gYnJhY2VsZXQ7CivkpJAgPiB0b1wtZHJpbms7Civkoq0gPiB0b1wtY292ZXI7CivkopAgPiB0b1wtZ29cLXRvOwor5KKFID4gZGF5YnJlYWs7Civkoa0gPiBhXC1oZWFyc2U7CivkoL4gPiB0b1wtZG9kZ2U7CivkoLkgPiBzaGluYm9uZTsKK+SgrCA+IGluc29tbmlhOwor5KCeID4gd3JpbmtsZWQ7CivkoJAgPiB0b1wtc3F1YXQ7CivkoIMgPiB0b1wtc3F1YXQ7CivkoIEgPiB0b1wtZ29cLXVwOwor5J+4ID4gdGhlXC1jYWxmOwor5J+2ID4gdG9cLXNxdWF0Owor5J+0ID4gdG9cLXNoYWtlOwor5J+UID4gdG9cLWdvXC10bzsKK+SeuCA+IHRvXC1yZWFjaDsKK+SeriA+IHRvXC1jcmF3bDsKK+SenyA+IHRvXC1wcmVzczsKK+SenCA+IHRvXC1yZWFjaDsKK+SelCA+IGRlZXBcLXJlZDsKK+SekyA+IGRlZXBcLXJlZDsKK+SdqCA+IHZpcnR1b3VzOwor5J2CID4gdG9cLWVyZWN0Owor5JysID4gYVwtY2F2ZXJuOwor5JyYID4gdG9cLWd1YXJkOwor5JyQID4gdG9cLWxpYmVsOwor5JyDID4gdG9cLWJsYW1lOwor5JukID4gdXJnZW50bHk7Civkm5IgPiB0b1wtYXJndWU7Civkm4cgPiB0b1wtbGF1Z2g7Civkm4YgPiB0b1wtY3Vyc2U7CivkmrcgPiB0b1wtdHJlYXQ7Civkmq8gPiB0b1wtcXVlbGw7CivkmpsgPiByZWd1bGF0ZTsKK+SYqyA+IG9sZFwtcmFnczsKK+SYnCA+IGFcLW5hcGtpbjsKK+SYmSA+IHRvXC1ndWFyZDsKK+SYmCA+IHRvXC1kcml2ZTsKK+SYlCA+IHRvXC12b21pdDsKK+SYjyA+IHN5bXBhdGh5Owor5JiJID4gc2lsa3dvcm07CivkmIcgPiBtb3NxdWl0bzsKK+SXuiA+IGNyZWVwaW5nOwor5JeeID4gc2lsa3dvcm07Civkl50gPiBzaWxrd29ybTsKK+SXmCA+IGFcLXdlZXZpbDsKK+SXiCA+IGFcLWdhZGZseTsKK+SXhyA+IHRoZVwtdG9hZDsKK+SWuyA+IGVwaGVtZXJhOwor5JamID4gc2NvcnBpb247CivklqQgPiB0b1wtY3JlZXA7Civklp8gPiBhXC1nYWRmbHk7CivklpsgPiBvZlwtdGlnZXI7Civklo8gPiB0b1wtZHdlbGw7CivklowgPiBvZlwtdGlnZXI7CivkloogPiBvZlwtdGlnZXI7CivkloAgPiBhbmdlbGljYTsKK+SVryA+IGR1Y2t3ZWVkOwor5JWBID4gc3VkZGVubHk7CivklL0gPiB0b1wtY292ZXI7CivklJAgPiBkZWxpY2F0ZTsKK+STmSA+IHNsYW50aW5nOwor5JOVID4gcG9seWdhbGE7Civkk4wgPiBwb2x5Z2FsYTsKK+SSsyA+IGFcLWZsb3dlcjsKK+SSgyA+IHRvXC1idWlsZDsKK+SRuyA+IGNvdmVyaW5nOwor5JGYID4gdG9cLXBvdW5kOwor5JGDID4gZGltXC1tb29uOwor5JCSID4gbm90XC1maW5lOwor5I++ID4gdG9cLXN3ZWxsOwor5I+6ID4gdG9cLXN3ZWxsOwor5I+fID4gZmF0XC1tZWF0Owor5I+JID4gdG9cLXdhdmVyOwor5I+IID4gdG9cLXVuaXRlOwor5I66ID4gdG9cLWxlYXJuOwor5I6yID4gZWFyXC1sb2JlOwor5I6uID4gdG9cLXBsYW50Owor5I6rID4gdG9cLXBsYW50Owor5I6jID4gYVwtcGxvdWdoOwor5Iy3ID4gYVwtdGhyZWFkOwor5IyvID4gYVwtdHJ1YmFuOwor5IytID4gcmF3XC1oZW1wOwor5IysID4gc3RyYWlnaHQ7CivkjKsgPiBhXC1oYXdzZXI7CivkjJogPiB3cmlua2xlczsKK+SMgyA+IHJhd1wtc2lsazsKK+SLoSA+IHRvXC1yZWxheDsKK+SLkyA+IHdyaW5rbGVkOwor5IuSID4gdG9cLXJlbGF4Owor5IuDID4gc3Rpbmdpbmc7CivkirggPiB0b1wtdHdpc3Q7Civkip0gPiB0b1wtZXhpbGU7CivkioEgPiBsZWF2aW5nczsKK+SJuyA+IHJlZFwtcmljZTsKK+SJsSA+IGFcLWNyYWRsZTsKK+SJriA+IHRvXC1wbGFudDsKK+SJqiA+IHRvXC1ncmluZDsKK+SJkiA+IGFcLXdpbm5vdzsKK+SItiA+IGFuXC1hcnJvdzsKK+SIqyA+IGFcLWhhd3NlcjsKK+SHsSA+IGFcLWhhd3NlcjsKK+SHjCA+IHRvXC1zdGFuZDsKK+SGuCA+IHNwYWNpb3VzOwor5IaEID4gYVwtYnVuZGxlOwor5IWyID4gdG9cLXBsYW50Owor5IWoID4gZnJhZ3JhbnQ7CivkhaQgPiB0b1wtcGxhbnQ7CivkhZAgPiBhXC1idW5kbGU7CivkhIAgPiBjYWxhbWl0eTsKK+SDuiA+IHRvXC1ncmluZDsKK+SDkSA+IHNwZWNrbGVzOwor5IOFID4gZHllc3R1ZmY7CivkgrsgPiB0b1wtYmxvY2s7CivkgaUgPiB0b1wtYmxpbms7CivkgZwgPiBiaWdcLWV5ZXM7CivkgYIgPiBiaWdcLWV5ZXM7CivkgLUgPiB0b1wtYmxpbms7CivkgIggPiBhXC12ZXNzZWw7Civjv6IgPiB0b1wtc2hpbmU7Civjv6EgPiBhXC1oZWxtZXQ7Civjv5ogPiBzaWNrbmVzczsKK+O/iCA+IGFuXC11bGNlcjsKK+O/hSA+IHJpbmd3b3JtOwor4764ID4gYVwtc2NhYmJ5Owor476uID4gamF1bmRpY2U7Civjvo4gPiBzaWNrbmVzczsKK+O+jSA+IGRpc2Vhc2VzOwor476MID4gcmluZ3dvcm07CivjvoQgPiB0b1wtbGliZWw7CivjvbsgPiBkaXNlYXNlczsKK+O9uSA+IHRvXC1mYWludDsKK+O9kCA+IGZyYWdyYW50Owor47uEID4gdHJlYXN1cmU7CivjupogPiBhblwtb3R0ZXI7CivjuocgPiBhXC13YXJkZW47CivjubggPiB0aGVcLWxpb247CivjuZUgPiBpbmZlcmlvcjsKK+O4vCA+IHRoZVwtemVidTsKK+O4piA+IG11dHVhbGx5Owor47ifID4gdG9cLWNvdmVyOwor47idID4gYVwtc2hvdmVsOwor47iVID4gdG9cLXNlaXplOwor47iJID4gdG9cLWFkYXB0Owor47eGID4gdGhyaXZpbmc7Civjt4AgPiBzb2xpdGFyeTsKK+O2vCA+IHZlcnlcLWhvdDsKK+O2hCA+IHRvXC1zdGFpbjsKK+O1rSA+IGFuXC1pc2xldDsKK+O1piA+IHNsaXBwZXJ5Owor47S2ID4gdG9cLXdhdGVyOwor47SzID4gdG9cLXNtZWFyOwor47SKID4gYW5cLWFieXNzOwor47SIID4gc2VkaW1lbnQ7Civjs6sgPiByZXBlYXRlZDsKK+OzoCA+IHNsaXBwZXJ5Owor47OSID4gc3RhdHV0ZXM7CivjsrggPiBkcmllZFwtdXA7CivjsrcgPiBuaXRyb2dlbjsKK+OytiA+IGNobG9yaW5lOwor47KzID4gdG9cLXRvdWNoOwor47G/ID4gdGhlXC1odXNrOwor47G6ID4gdGhlXC1za2luOwor47GyID4gd2l0aGVyZWQ7CivjsaIgPiB0aGVcLWRlYWQ7CivjsaAgPiB3aXRoZXJlZDsKK+OxlyA+IGFcLWJyZWF0aDsKK+OxhSA+IHZpcnR1b3VzOwor47GDID4gdG9cLWRyaW5rOwor47C6ID4gdG9cLWRyaW5rOwor47C5ID4gdG9cLWxhdWdoOwor47CtID4gcGxlYXN1cmU7CivjsKcgPiB0b1wtZHJpbms7CivjsKMgPiB0b1wtdm9taXQ7CivjsKAgPiB0b1wtY292ZXQ7CivjsJ0gPiB0b1wtY291Z2g7Civjr7AgPiB0b1wtcGxhbnQ7Civjrq0gPiBhXC1jYXNrZXQ7CivjroEgPiBnYXJkZW5pYTsKK+OtmSA+IGFcLWhhbW1lcjsKK+OtiiA+IHRvXC1zcGxpdDsKK+OssCA+IGFcLW1vbWVudDsKK+OspyA+IGFcLWNvbGxhcjsKK+OsoiA+IHN1bnNoaW5lOwor46yhID4gc3Vuc2hpbmU7CivjrJkgPiBzdW5zaGluZTsKK+OslyA+IHN1bnNoaW5lOwor46yMID4gc3Vuc2hpbmU7Civjq70gPiBkYXJrbmVzczsKK+OruyA+IHN1bmxpZ2h0Owor46q/ID4gdG9cLWJyZWFrOwor46qhID4gdG9cLXF1ZWxsOwor46qTID4gZGlzYXN0ZXI7CivjqpAgPiB1bnN0YWJsZTsKK+OqjSA+IHN1ZGRlbmx5Owor46qDID4gdG9cLXRodW1wOwor46qCID4gdW5zdGFibGU7CivjqoAgPiB0b1wtZW50ZXI7Civjqb8gPiB1bnN0YWJsZTsKK+OptCA+IHRvXC1zZWl6ZTsKK+OpqCA+IHRvXC1jcmFjazsKK+OpkyA+IHRvXC13b3VuZDsKK+OpgSA+IHRvXC1rbm9jazsKK+OouSA+IHRvXC1jcmFjazsKK+OosSA+IHRvXC1zaGFrZTsKK+OoqiA+IHRvXC1zaGFrZTsKK+OooCA+IHRvXC1zbWVhcjsKK+OonyA+IHRvXC10b3VjaDsKK+OolCA+IHRvXC1zaGFrZTsKK+OokyA+IHRvXC1jbG9zZTsKK++okCA+IGNlbWV0ZXJ5Owor46iRID4gdG9cLWNvdW50Owor46iIID4gdG9cLWNyb3dkOwor46iBID4gdG9cLXRocm93Owor46e1ID4gdG9cLWV4YWN0Owor76exID4gbmVpZ2hib3I7Civjp7IgPiB0b1wtc2hha2U7Civjp7EgPiB0b1wtYnJpbmc7Civjp6wgPiB0b1wtcmFpc2U7Civvp58gPiBmb290d2VhcjsKK+OngSA+IHRvXC1jbG9zZTsKK++mviA+IGNvbnNpZGVyOwor46a/ID4gYVwtd2luZG93Owor76akID4gdG9cLXR3aXN0Owor46alID4gdGFsZW50ZWQ7CivvpqMgPiB0aGlua1wtb2Y7CivjpqQgPiB2aXJ0dW91czsKK++mliA+IHByYWN0aWNlOwor46aXID4gZGlsaWdlbnQ7CivvposgPiBjYWxlbmRhcjsKK+OmiSA+IHZpcnR1b3VzOwor46WwID4gbW91cm5mdWw7Civvpa0gPiBwcm92aW5jZTsKK+OlqiA+IGRpbGlnZW50Owor76WeID4gY2lubmFiYXI7CivvpZIgPiBzdHJhbmdsZTsKK+OlgyA+IG1vdXJuZnVsOwor46WBID4gbW9yYWxpdHk7CivvpLwgPiBibGVzc2luZzsKK+OksiA+IHRvXC10aGluazsKK+OkriA+IGFuXC1lcnJvcjsKK++kqCA+IGNvcnJpZG9yOwor46SmID4gbW91cm5mdWw7CivjpKQgPiBtb3VybmZ1bDsKK+OkjyA+IGdyaWV2b3VzOwor76SGID4gc2VudGVuY2U7Civjo7AgPiB0b1wtc2hha2U7Civjo6sgPiB0aGVcLWhlZWw7Civjo54gPiB0b1wtd2Fsa2k7Civjo4sgPiBjaW5uYWJhcjsKK+OjhCA+IHBvd2VyZnVsOwor46K0ID4gdGhlXC13ZXN0Owor46KpID4gdG9cLXNob290Owor46KFID4gYVwtc2hpZWxkOwor46GzID4gbW91bnRhaW47CivjoakgPiBhXC1naXJkbGU7CivjoZ0gPiBhXC1uYXBraW47CivjoZYgPiB0b1wtY292ZXI7CivjoLkgPiBhXC10dXJiYW47CivjoLUgPiBhXC10dXJiYW47CivjoIogPiBhXC1ydWdnZWQ7CivjoIkgPiBtb3VudGFpbjsKK+OghSA+IHRvXC1jb3ZlcjsKK+OfkSA+IG1vdW50YWluOwor4569ID4gbW91bnRhaW47CivjnrcgPiBsdXh1aWFudDsKK+OekSA+IHRoZVwtdGFpbDsKK+OeiSA+IGJpZ1wtZm9vdDsKK+OeiCA+IGJpZ1wtZm9vdDsKK+OdsiA+IHRvXC1zbGVlcDsKK+OdriA+IHRvXC1leGlsZTsKK+OdrSA+IHRvXC1hd2FrZTsKK+OdmCA+IGhhcm1vbm95Owor452SID4gdG9cLWR3ZWxsOwor452NID4gdG9cLXdyaXRlOwor452KID4gdG9cLWd1aWRlOwor45y2ID4gYVwtY291cGxlOwor45yzID4gcGVhY2VmdWw7Civjm5sgPiBwcmVnbmFudDsKK+OaoyA+IGhhbmRzb21lOwor45miID4gYVwtdHJvd2VsOwor45mZID4gdG9cLXNtZWFyOwor45mDID4gYVwtY2F2aXR5Owor45iqID4gdG9cLXdhc3RlOwor45igID4gdG9cLWNsb3NlOwor45iZID4gdG9cLWdyb2FuOwor45iRID4gdG9cLWN1cnNlOwor45iAID4gdG9cLXNvdW5kOwor45eqID4gbW91dGhmdWw7Civjl6ggPiB0b1wtbGF1Z2g7Civjl5wgPiB0b1wtc21lbGw7Civjl5sgPiB0b1wtbGF1Z2g7Civjl5MgPiBtb3V0aGZ1bDsKK+OXiSA+IGluY2lzaXZlOwor45a5ID4gdG9cLXNwdXJ0Owor45apID4gbm90XC1wdXJlOwor45aTID4gdG9cLXNob3V0Owor45aHID4gdGhlXC1saXBzOwor45W8ID4gdG9cLWJyYXdsOwor45WbID4gYVwtZnJpZW5kOwor45WQID4gaW5jbGluZWQ7CivjlYogPiB0b1wtc2xhbnQ7CivjlLAgPiBjb25zdGFudDsKK+OUqiA+IHRvXC1jcmF3bDsKK+OUoCA+IGluZHVzdHJ5Owor45SeID4gdmlnb3JvdXM7Civjk7YgPiB0b1wtY2FydmU7Civjk5ogPiBhXC1zaWNrbGU7Civjk5MgPiB0aGluXC1pY2U7CivjkrkgPiB0b1wtdXBzZXQ7CivjkbogPiBzdXBlcmlvcjsKK+ORtCA+IHRvXC11c3VycDsKK+ORsCA+IGRpc3RyZXNzOwor45GNID4gaW5mZXJpb3I7CivjkJwgPiBhblwtZW5lbXk7Civov7cgPiBiZXdpdGNoOwor6L+wID4gbmFycmF0ZTsKK+i/pSA+IGRpc3RhbnQ7CivkuK0gPiBjZW50cmFsOwor5b+XID4gcHVycG9zZTsKK+i/jiA+IHJlY2VpdmU7Civlv4wgPiBqZWFsb3VzOwor5ZKMID4gaGFybW9ueTsKK+i+ryA+IGRpc3B1dGU7CivljrsgPiBnb1wtYXdheTsKK+WvuSA+IGNvcnJlY3Q7CivnnqAgPiBsb29rXC1hdDsKK+W+iyA+IHN0YXR1dGU7CivlvbkgPiBzZXJ2aWNlOwor55y6ID4gbG9va1wtYXQ7CivlvLUgPiBzdHJldGNoOwor5beyID4gYWxyZWFkeTsKK+W8mCA+IGVubGFyZ2U7CivlvJUgPiB0b1wtcHVsbDsKK+W8lCA+IGNvbmRvbGU7CivovIMgPiBjb21wYXJlOwor5oSPID4gdGhvdWdodDsKK+i/myA+IGFkdmFuY2U7Civnm6EgPiBleGhhdXN0Owor5buJID4gdXByaWdodDsKK+aDhSA+IGZlZWxpbmc7CivnmrAgPiBwaW1wbGVzOwor5bqWID4ga2l0Y2hlbjsKK+i6kyA+IHN0dW1ibGU7CivluoQgPiB2aWxsYWdlOwor5bm2ID4gY29tYmluZTsKK+i5oCA+IHN0ZXBcLW9uOwor55mWID4gY3JhdmluZzsKK+W5lSA+IGN1cnRhaW47Civku6MgPiByZXBsYWNlOwor5birID4gdGVhY2hlcjsKK+aAuyA+IGNvbGxlY3Q7CivouI8gPiBzdGVwXC1vbjsKK+W4iCA+IHRlYWNoZXI7Civnl7QgPiBmb29saXNoOwor5Y2OID4gZmxvd2VyeTsKK+W8oCA+IHN0cmV0Y2g7Civnl4cgPiBkaXNlYXNlOwor55eFID4gaWxsbmVzczsKK+eWviA+IGlsbG5lc3M7Civlj40gPiByZXZlcnNlOwor5ZCIID4gY29tYmluZTsKK+eWjiA+IG5lZ2xlY3Q7Civlj5cgPiByZWNlaXZlOwor5YqhID4gYWZmYWlyczsKK+aOpSA+IHJlY2VpdmU7CivltKkgPiBydXB0dXJlOwor54m5ID4gc3BlY2lhbDsKK+acjSA+IGNsb3RoZXM7Civos70gPiBjb21wZXRlOwor6LORID4gcmVsaWV2ZTsKK+enkSA+IHNlY3Rpb247Civov5wgPiBkaXN0YW50Owor6LGrID4gcmVsYXhlZDsKK+iBlCA+IGNvbm5lY3Q7Civkv50gPiBwcm90ZWN0Owor5bC9ID4gZXhoYXVzdDsKK+mdqSA+IGxlYXRoZXI7CivlsI0gPiBjb3JyZWN0Owor5bCKID4gcmVzcGVjdDsKK+WTgSA+IGFydGljbGU7CivlsIkgPiBvZmZpY2VyOwor5aOrID4gc2Nob2xhcjsKK+mHjyA+IG1lYXN1cmU7Civlr74gPiBjb3JyZWN0Owor56iLID4gam91cm5leTsKK+WvqSA+IGV4YW1pbmU7Civlr58gPiBleGFtaW5lOwor5p6BID4gZXh0cmVtZTsKK+S7pCA+IGNvbW1hbmQ7CivmnKogPiBub3RcLXlldDsKK+aMgSA+IHN1c3RhaW47CivljoYgPiBoaXN0b3J5Owor5a6jID4gZGVjbGFyZTsKK+WPsiA+IGhpc3Rvcnk7CivlrpcgPiBsaW5lYWdlOwor6K6uID4gY29uc3VsdDsKK+eOhyA+IHRvXC1sZWFkOwor5aeUID4gYXBwb2ludDsKK+ittyA+IHByb3RlY3Q7CivorbAgPiBjb25zdWx0Owor5YW1ID4gc29sZGllcjsKK+WtlCA+IG9wZW5pbmc7CivkuokgPiBkaXNwdXRlOwor56m2ID4gZXhhbWluZTsKK+isuSA+IHBydWRlbnQ7Civop4YgPiBsb29rXC1hdDsKK+ismyA+IGV4cGxhaW47CivmoLwgPiBwYXR0ZXJuOwor6Ku4ID4gc2V2ZXJhbDsKK+iusiA+IGV4cGxhaW47Civoq6YgPiBjYXJlZnVsOwor5oCVID4gdG9cLWZlYXI7Civni6EgPiBjdW5uaW5nOwor5pu+ID4gYWxyZWFkeTsKK+WHhiA+IGFwcHJvdmU7CivmrrUgPiBzZWN0aW9uOwor57K+ID4gZXNzZW5jZTsKK+ernyA+IGZpbmFsbHk7CivoqqAgPiBzaW5jZXJlOwor6KmuID4gZXhwbGFpbjsKK+aVtCA+IG9yZGVybHk7CivlqYkgPiBhbWlhYmxlOwor5aSHID4gcHJlcGFyZTsKK+WPpiA+IGFub3RoZXI7CivpmYggPiBleGhpYml0Owor5pWFID4gYW5jaWVudDsKK+iomyA+IHN3aW5kbGU7CivoqJcgPiBlbnRydXN0Owor6KGjID4gY2xvdGhlczsKK+ioiiA+IGlucXVpcmU7CivniIYgPiBjcmFja2xlOwor5om5ID4gY29tbWVudDsKK+mAgSA+IHNlZVwtb2ZmOwor5oS/ID4gc2luY2VyZTsKK+WlhyA+IHN0cmFuZ2U7Civnh5UgPiBzd2FsbG93Owor54eIID4gbGFudGVybjsKK+imvSA+IGxvb2tcLWF0Owor5aasID4gamVhbG91czsKK+a4uCA+IHRvXC1zd2ltOwor6KanID4gbG9va1wtYXQ7Civku70gPiBwb3J0aW9uOwor5pWiID4gdG9cLWRhcmU7CivoppYgPiBsb29rXC1hdDsKK+WmliA+IHN0cmFuZ2U7Civnhb0gPiBzdGlyXC11cDsKK+iAgyA+IGV4YW1pbmU7CivmnZEgPiB2aWxsYWdlOwor5pydID4gZHluYXN0eTsKK+iCsiA+IHByb2R1Y2U7CivmiqQgPiBwcm90ZWN0Owor5Zu+ID4gZGlhZ3JhbTsKK+WImCA+IHN1cm5hbWU7CivlpJUgPiBldmVuaW5nOwor5om/ID4gaW5oZXJpdDsKK+ijsyA+IGNsb3RoZXM7CivkuaEgPiBjb3VudHJ5Owor6KOBID4gY3V0XC1vdXQ7Civml6IgPiBhbHJlYWR5Owor5ryUID4gcGVyZm9ybTsKK+aAqiA+IHN0cmFuZ2U7CivoooIgPiBzbGVldmVzOwor6YeHID4gY29sbGVjdDsKK+ihsCA+IGRlY2xpbmU7CivotZsgPiBjb21wZXRlOwor54GvID4gbGFudGVybjsKK+i+gyA+IGNvbXBhcmU7CivooaEgPiBtZWFzdXJlOwor5aGeID4gc3RvcFwtdXA7Civmma8gPiBzY2VuZXJ5Owor6KCiID4gd3JpZ2dsZTsKK+S+nSA+IHJlbHlcLW9uOwor54CdID4gdHJpY2tsZTsKK+iDnCA+IHZpY3Rvcnk7Civmv6EgPiBpbW1lcnNlOwor5r+fID4gdG9cLWhlbHA7Civon4sgPiBjcmlja2V0Owor6J+AID4gY3JpY2tldDsKK+WeiyA+IHBhdHRlcm47CivlnJYgPiBkaWFncmFtOwor5ryGID4gdmFybmlzaDsKK+a8gSA+IHRvXC1maXNoOwor5ZuzID4gZGlhZ3JhbTsKK+aVoyA+IHNjYXR0ZXI7Civom4YgPiBtYWdnb3RzOwor5puyID4gY3Jvb2tlZDsKK+a6tiA+IHRvXC1tZWx0Owor5Y6CID4gZmFjdG9yeTsKK+iCryA+IHdpbGxpbmc7CivmipMgPiBzY3JhdGNoOwor6JmrID4gaW5zZWN0czsKK+a5pyA+IHdlbGxcLXVwOwor6IyDID4gc3VybmFtZTsKK+mdoCA+IGxlYW5cLW9uOwor5risID4gbWVhc3VyZTsKK+aOiCA+IGdpdmVcLXRvOwor5riHID4gdGhpcnN0eTsKK+aJrCA+IHNjYXR0ZXI7Civmt7ogPiBzaGFsbG93Owor5rerID4gb2JzY2VuZTsKK+mCkyA+IHN1cm5hbWU7Civpt4QgPiBjaGlja2VuOwor5ZeHID4gbWlzZXJseTsKK+aKsSA+IGVtYnJhY2U7CivpooQgPiBwcmVwYXJlOwor552bID4gZXllYmFsbDsKK+aLrCA+IGluY2x1ZGU7CivpmY0gPiBkZXNjZW5kOwor6baPID4gY2hpY2tlbjsKK+iuryA+IGlucXVpcmU7CivotbUgPiBzdXJuYW1lOwor5rWFID4gc2hhbGxvdzsKK+engSA+IHByaXZhdGU7CivolJEgPiBkaXNkYWluOwor5a6hID4gZXhhbWluZTsKK+azoSA+IGJ1YmJsZXM7Civpl7kgPiBxdWFycmVsOwor5pWsID4gcmVzcGVjdDsKK+mGkiA+IHdha2VcLXVwOwor5rKMID4gY2hhb3RpYzsKK+aatCA+IHZpb2xlbnQ7CivpsoEgPiBmb29saXNoOwor5oqiID4gcGx1bmRlcjsKK+WRkSA+IHN3YWxsb3c7Civnr4cgPiBjaGFwdGVyOwor6bGIID4gY29kZmlzaDsKK+WRgiA+IHN1cm5hbWU7Civmi6UgPiBlbWJyYWNlOwor5ZCKID4gY29uZG9sZTsKK+ivuCA+IHZhcmlvdXM7Civoj68gPiBmbG93ZXJ5Owor5Y+tID4gdHJ1bXBldDsKK+a1iyA+IG1lYXN1cmU7CivpmIUgPiBleGFtaW5lOwor5Y+ZID4gZXhwcmVzczsKK+eMmyA+IHZpb2xlbnQ7Civljq0gPiBkaXNsaWtlOwor5Y6oID4ga2l0Y2hlbjsKK+mbhSA+IGVsZWdhbnQ7Civpm7cgPiB0aHVuZGVyOwor6a2vID4gZm9vbGlzaDsKK+m4oSA+IGNoaWNrZW47Civor5ogPiBzaW5jZXJlOwor56ueID4gY29udGVuZDsKK+aTjSA+IGNvbmR1Y3Q7CivljZIgPiBzb2xkaWVyOwor6K+6ID4gcHJvbWlzZTsKK+WMhiA+IGhhc3RpbHk7CivmrIUgPiB6ZWxrb3ZhOwor6Iu6ID4gYmVycmllczsKK+WLnSA+IHZpY3Rvcnk7Civlh60gPiBsZWFuXC1vbjsKK+WLmSA+IGFmZmFpcnM7Civoi5cgPiBzcHJvdXRzOwor56KwID4gY29sbGlkZTsKK+iLkSA+IHBhc3R1cmU7Civku78gPiBpbWl0YXRlOwor5qmfID4gbWFjaGluZTsKK+agjyA+IHJhaWxpbmc7CivpqJkgPiBzd2luZGxlOwor5YiIID4gY3V0XC1vZmY7Civni6AgPiB2aWNpb3VzOwor5pigID4gcHJvamVjdDsKK+aIqiA+IGN1dFwtb2ZmOwor5b+gID4gbG95YWx0eTsKK+aJjiA+IHB1bGxcLXVwOwor6IW5ID4gc3RvbWFjaDsKK+altSA+IGV4dHJlbWU7CivoiJIgPiBvcGVuXC11cDsKK+mqlyA+IHN3aW5kbGU7Civlh7YgPiBjdWxwcml0Owor5oWwID4gY29tZm9ydDsKK+mkmCA+IHN1cnBsdXM7CivmkpIgPiByZWxlYXNlOwor5oSBID4gYW54aWV0eTsKK+aWpCA+IGFcLWNhdHR5Owor5YORID4gc29qb3VybjsKK+aJtiA+IHN1cHBvcnQ7Civmr4EgPiBkZXN0cm95Owor6L6pID4gZGlzcHV0ZTsKK+iDgyA+IHN0b21hY2g7CivmorAgPiB3ZWFwb25zOwor6JKLID4gc3VybmFtZTsKK+WCmSA+IHByZXBhcmU7Civov50gPiBkaXNvYmV5Owor5LiiID4gZGlzY2FyZDsKK+iChiA+IGluZHVsZ2U7CivlgrsgPiBmb29saXNoOwor57uVID4gZW50d2luZTsKK+iBsyA+IHVyZ2VcLW9uOwor5raCID4gc3VybmFtZTsKK+iIsCA+IHdhcnNoaXA7CivmgbwgPiBhbmdlcmVkOwor6L6jID4gcGVwcGVyeTsKK+WAmiA+IHJlbHlcLW9uOwor6aCQID4gcHJlcGFyZTsKK+aXiyA+IHJldm9sdmU7CivlgIkgPiBncmFuYXJ5Owor6L69ID4gZGlzdGFudDsKK+e9miA+IHBlbmFsdHk7Civmi74gPiBwaWNrXC11cDsKK+aBoiA+IHJlc3RvcmU7Civnv4EgPiBvbGRcLW1hbjsKK+e+vSA+IGZlYXRoZXI7CivmipYgPiB0cmVtYmxlOwor6KeIID4gbG9va1wtYXQ7Civkvq8gPiBtYXJxdWlzOwor5oORID4gY29uZnVzZTsKK+S9tSA+IGNvbWJpbmU7CivnvbAgPiBwZW5hbHR5Owor6ZuVID4gZW5ncmF2ZTsKK+WOjCA+IGRpc2xpa2U7Civlr78gPiBvbGRcLWFnZTsKK+i3jCA+IHN0dW1ibGU7CivplKYgPiBicm9jYWRlOwor5p2PID4gYXByaWNvdDsKK+m7jiA+IHN1cm5hbWU7CivmhYwgPiBuZXJ2b3VzOwor5bGgID4gYnV0Y2hlcjsKK+afjyA+IGN5cHJlc3M7CivpnI0gPiBxdWlja2x5Owor6Zm2ID4gcG90dGVyeTsKK+aRhCA+IHRha2VcLWluOwor5peoID4gcHVycG9zZTsKK+mXryA+IHJ1c2hcLWluOwor5YavID4gc3VybmFtZTsKK+aJsCA+IGRpc3R1cmI7Civpm4AgPiBzcGFycm93Owor5aicID4gZWxlZ2FudDsKK+aariA+IGV2ZW5pbmc7CivpmIEgPiBjaGFtYmVyOwor5Y2iID4gY290dGFnZTsKK+WQniA+IHN3YWxsb3c7Civmn5wgPiBjYWJpbmV0Owor5pqHID4gbGVpc3VyZTsKK+aEpyA+IGFzaGFtZWQ7CivmmbYgPiBjcnlzdGFsOwor57meID4gZW50d2luZTsKK+aZnSA+IGRheXRpbWU7CivnrYsgPiBtdXNjbGVzOwor57i9ID4gY29sbGVjdDsKK+aYvCA+IGRheXRpbWU7CivlkqggPiBpbnF1aXJlOwor5pKRID4gcHJvcFwtdXA7CivpgIYgPiBkaXNvYmV5Owor5aGrID4gZmlsbFwtaW47Civml7ogPiBwcm9zcGVyOwor57esID4gZGlzdGFudDsKK+iwqCA+IHBydWRlbnQ7CivmuLQgPiB0aGlyc3R5Owor55aPID4gbmVnbGVjdDsKK+iAlyA+IGNvbnN1bWU7Civnt48gPiBjb2xsZWN0Owor6ZayID4gZXhhbWluZTsKK+mSpiA+IHJlc3BlY3Q7CivplqMgPiBjaGFtYmVyOwor5pmLID4gYWR2YW5jZTsKK+aCpiA+IHBsZWFzZWQ7CivmlpEgPiBtb3R0bGVkOwor6Le1ID4gdHJhbXBsZTsKK+i0viA+IHN1cm5hbWU7CivmuJQgPiB0b1wtZmlzaDsKK+iUoSA+IHN1cm5hbWU7Civmg7YgPiBmZWFyZnVsOwor57C+ID4gYVwtYmxpbmQ7CivotKkgPiBwZWRkbGVyOwor5oiIID4gaGFsYmVyZDsKK+mQkCA+IGZldHRlcnM7Civmj5ogPiBzY2F0dGVyOwor6Jm5ID4gcmFpbmJvdzsKK+evhCA+IHBhdHRlcm47Civlr6EgPiB3aWRvd2VkOwor5ZCVID4gc3VybmFtZTsKK+mDiiA+IHN1YnVyYnM7Civlvr0gPiBhXC1iYWRnZTsKK+iwrSA+IHN1cm5hbWU7CivmjaggPiBkaXNjYXJkOwor6bKNID4gYWJhbG9uZTsKK+S7kyA+IGdyYW5hcnk7CivpjKYgPiBicm9jYWRlOwor56yEID4gaGFpcnBpbjsKK+ayviA+IG1vaXN0ZW47Civnq7YgPiBjb250ZW5kOwor5L+eID4gc3VybmFtZTsKK+eekiA+IGRlY2VpdmU7Civnq4MgPiBmdXJuYWNlOwor5L6oID4gc29qb3VybjsKK+aBsyA+IHNpbmNlcmU7CivmipIgPiBleHByZXNzOwor5aecID4gc3VybmFtZTsKK+aJsSA+IGNvbGxlY3Q7CivnqL0gPiBleGFtaW5lOwor6KOUID4gcHJvZ2VueTsKK+eduSA+IGxvb2tcLWF0Owor5YyqID4gYmFuZGl0czsKK+a9mCA+IHN1cm5hbWU7CivmhpEgPiBsZWFuXC1vbjsKK+amnCA+IHBsYWNhcmQ7CivmnokgPiB1c2VsZXNzOwor57yFID4gZGlzdGFudDsKK+aFpSA+IHNpbmNlcmU7CivpqocgPiB0ZXJyaWZ5Owor5oWHID4gY2FyZWZ1bDsKK+esqCA+IGZvb2xpc2g7CivogLggPiB1cmdlXC1vbjsKK+i4qSA+IHN0ZXBcLW9uOwor6YO3ID4gY291bnRyeTsKK+aDsSA+IGFuZ2VyZWQ7CivmgrggPiBmZWFyZnVsOwor5pKwID4gY29tcG9zZTsKK+aDrSA+IGFzaGFtZWQ7CivlnoMgPiBnYXJiYWdlOwor6am8ID4gYVwtY2FtZWw7CivpgaAgPiBkaXN0YW50Owor6YGVID4gZGlzb2JleTsKK+mBkSA+IGxlaXN1cmU7CivlnL4gPiBnYXJiYWdlOwor6LG5ID4gbGVvcGFyZDsKK+e8tCA+IGRlbGl2ZXI7Civlk6ggPiB3aGlzdGxlOwor6YCyID4gYWR2YW5jZTsKK+WavCA+IHByYXR0bGU7CivmmKcgPiBvYnNjdXJlOwor5ouiID4gY29sbGVjdDsKK+aXsSA+IGRyb3VnaHQ7Civor6EgPiBkZWNlaXZlOwor5pCFID4gZGlzdHVyYjsKK+iBgiA+IHdoaXNwZXI7Civojr0gPiB0aGlja2V0Owor6aaAID4gc3VycGx1czsKK+aAoSA+IGhhcm1vbnk7Civljq4gPiBzZXJ2YW50Owor6IyoID4gY2FsdHJvcDsKK+eymCA+IHZpc2NvdXM7CivmkacgPiBkZXN0cm95Owor5py9ID4gZGVjYXllZDsKK+WotCA+IGVsZWdhbnQ7CivnhJUgPiBzaGluaW5nOwor6LGBID4gb3BlblwtdXA7CivoqbkgPiBzdXJuYW1lOwor54aEID4gcHV0XC1vdXQ7CivpgL4gPiBnb1wtb3ZlcjsKK+WmkiA+IGplYWxvdXM7CivpgrEgPiBzdXJuYW1lOwor6YaLID4gdmluZWdhcjsKK+aWjCA+IHJlZmluZWQ7Civlr4cgPiBiYW5kaXRzOwor5bGvID4gdmlsbGFnZTsKK+aBlSA+IGZvcmdpdmU7CivmsqYgPiBiZVwtbG9zdDsKK+WysSA+IGRhaXNoYW47CivmkocgPiBkaXNjYXJkOwor6K6zID4gY29uY2VhbDsKK+a3jCA+IHRyaWNrbGU7CivlspQgPiBkaXZlcmdlOwor5YCPID4gaGFzdGlseTsKK+mckyA+IHJhaW5ib3c7CivlnpIgPiByYW1wYXJ0Owor6YK1ID4gc3VybmFtZTsKK+WFoiA+IGZlYXJmdWw7CivotaYgPiBmb3JnaXZlOwor5b2mID4gZWxlZ2FudDsKK+e/mCA+IHR1cm5cLXVwOwor5oyaID4gc2luY2VyZTsKK+mDnSA+IHN1cm5hbWU7Civop5EgPiBwZWVwXC1hdDsKK+aLjiA+IHRvXC1oYXVsOwor5ZmcID4gdmVyYm9zZTsKK+mYkCA+IGV4cGxhaW47CivmiZIgPiBzY3JhdGNoOwor5Ye5ID4gY29uY2F2ZTsKK+aSqSA+IGxpZnRcLXVwOwor5oygID4gc2NyYXRjaDsKK+W0vSA+IGFcLWNoaWxkOwor5buWID4gc3VybmFtZTsKK+efqyA+IGNvcnJlY3Q7CivmtoUgPiBibGFja2VuOwor5qmxID4gY2FiaW5ldDsKK+WThiA+IHRyZW1ibGU7CivouawgPiBzdGVwXC1vbjsKK+aBgyA+IHJlbHlcLW9uOwor5ouXID4gdG9cLXB1bGw7Civlib8gPiBkZXN0cm95Owor57CMID4gZmFsbGluZzsKK+ivmyA+IGV4ZWN1dGU7CivmjrMgPiBjYXB0dXJlOwor5bmMID4gY3VydGFpbjsKK+eqkiA+IHN0b3BcLXVwOwor6ZuNID4gaGFybW9ueTsKK+mmhSA+IGZpbGxpbmc7Civnnr8gPiBzdXJuYW1lOwor56GFID4gc2lsaWNvbjsKK+eYqSA+IHBpbXBsZXM7CivmuKUgPiBtb2lzdGVuOwor6YKiID4gc3VybmFtZTsKK+i5iyA+IHN0ZXBcLW9uOwor5oqoID4gaW1wZWFjaDsKK+aTjiA+IGxpZnRcLXVwOwor5oaoID4gZm9vbGlzaDsKK+iCviA+IGtpZG5leXM7CivplK0gPiBzcGluZGxlOwor56qmID4gc3VybmFtZTsKK+iwmyA+IGNhcmVmdWw7CivmgZkgPiBpbGxuZXNzOwor6IysID4gaGFydmVzdDsKK+ibkCA+IGNyaWNrZXQ7CivplaMgPiBmZXR0ZXJzOwor5rKlID4gdHJpY2tsZTsKK+iwpCA+IHNsYW5kZXI7CivpkrMgPiBwaW5jZXJzOwor5529ID4gc3RhcmluZzsKK+mYsSA+IHBpdGZhbGw7Civlp5cgPiBzbGFuZGVyOwor6LekID4gc3R1bWJsZTsKK+axgCA+IHNhbmRiYXI7Civnp6QgPiBiYWxhbmNlOwor5pm+ID4gYWlyXC1kcnk7CivpnLkgPiB0aHVuZGVyOwor6LeaID4gc3RhZ2dlcjsKK+i4uSA+IHRyYW1wbGU7Civojp4gPiBzbWlsaW5nOwor6bilID4gc2VhZ3VsbDsKK+iRhiA+IHJlc2VydmU7CivmsKIgPiBhbW1vbmlhOwor5binID4gcGljdHVyZTsKK+azryA+IGRlc3Ryb3k7CivljKEgPiBjb3JyZWN0Owor5L2vID4gcHJldGVuZDsKK+aapyA+IG9ic2N1cmU7Civng6wgPiBjaW5kZXJzOwor6JqMID4gb3lzdGVyczsKK+i0uyA+IGdpdmVcLXRvOwor6LCGID4gcGF0aWVudDsKK+WTnSA+IHdoaXNwZXI7Civoo7QgPiBzdXJuYW1lOwor6K+9ID4gc2xhbmRlcjsKK+eZniA+IGxlcHJvc3k7CivllYQgPiB0b1wtcGVjazsKK+aLhCA+IGxlYW5cLW9uOwor57+OID4gZmVhdGhlcjsKK+eHjiA+IHRvXC1idXJuOwor6L+zID4gcGFzc1wtYnk7CivmlqEgPiByZXZvbHZlOwor5oG4ID4gc2FkbmVzczsKK+WVrCA+IG1pc2VybHk7Civlv5EgPiBmZWFyZnVsOwor5ZKCID4gdG9cLXN1Y2s7Civnm7kgPiB0b1wtZG96ZTsKK+S/viA+IHNvXC10aGF0Owor57CqID4gaGFpcnBpbjsKK+i1iCA+IHJlbGlldmU7Civor6AgPiBleHBsYWluOwor6LCaID4gcHJvdmVyYjsKK+aOuCA+IHRvXC1kdXN0Owor5YyuID4gdG9cLWxhY2s7CivluaEgPiBwZW5uYW50Owor6K65ID4gc3dpbmRsZTsKK+WbsSA+IGNoaW1uZXk7CivltIIgPiBsYW9zaGFuOwor5aiEID4gc3VybmFtZTsKK+WPnyA+IG9sZFwtbWFuOwor6J2MID4gdGFkcG9sZTsKK+iaqiA+IHRhZHBvbGU7CivmsKggPiBhbW1vbmlhOwor6ZOAID4gdXJhbml1bTsKK+aMmyA+IHRhbmdsZWQ7Civor4sgPiBzbGFuZGVyOwor57uvID4gc2NhcmxldDsKK+aUuCA+IGRpc3RhbnQ7CivpuKggPiBidXN0YXJkOwor6JyXID4gYVwtc25haWw7CivosKkgPiBkZWNlaXZlOwor5oGrID4gaW5cLXBhaW47CivosIAgPiBmbGF0dGVyOwor6LiuID4gdGlwXC10b2U7CivppoogPiBzcG9pbGVkOwor552HID4gbG9va1wtYXQ7CivpkpkgPiBjYWxjaXVtOwor5o2xID4gcHV0XC1vZmY7Civokr8gPiBtdWd3b3J0Owor6YW2ID4gZW56eW1lczsKK+a2oyA+IHNjYXR0ZXI7CivmnbMgPiBvYnNjdXJlOwor6KGiID4gaGlnaHdheTsKK+i1oSA+IHN1cHBvcnQ7Civno7ogPiBzdWxwaHVyOwor6Lm2ID4gc3R1bWJsZTsKK+iwhCA+IGZsYXR0ZXI7CivouakgPiB0b1wtbGltcDsKK+e/nyA+IHN1cm5hbWU7CivmtaMgPiB0b1wtd2FzaDsKK+eWuSA+IG1lYXNsZXM7CivnqoggPiBvYnNjdXJlOwor5bmUID4gY3VydGFpbjsKK+mdpSA+IGRpbXBsZXM7CivmjocgPiBjb2xsZWN0Owor5oSGID4gYVwtZmF1bHQ7CivpuLUgPiBvc3RyaWNoOwor56WXID4gcmVzcGVjdDsKK+S9mCA+IHN1cm5hbWU7CivnqpUgPiBzbGVuZGVyOwor6L+pID4gYmVcLW5lYXI7CivkvbAgPiBodW5kcmVkOwor6YKwID4gc3VybmFtZTsKK+mCnSA+IHN1cm5hbWU7CivpkrkgPiBjeW1iYWxzOwor5LyJID4gY29tcGFyZTsKK+mdvCA+IHRhcnRhcnM7CivnhbIgPiB0b1wtaGVhdDsKK+eNkCA+IHJvZWJ1Y2s7CivkvZ0gPiByaWNrZXRzOwor6JOfID4gY2lyY2l1bTsKK+m7nCA+IGRpc21pc3M7CivosLIgPiBjdW5uaW5nOwor5pGIID4gZXhjbHVkZTsKK+mjkyA+IGN5Y2xvbmU7CivosJcgPiBzbGFuZGVyOwor6IOxID4gYmxhZGRlcjsKK+mlvSA+IGZlcnJ1bGU7Civor7MgPiBkZWNlaXZlOwor6aaPID4gZGlzdGlsbDsKK+iLryA+IGJlbnplbmU7Civmt7wgPiBhXC1mbG9vZDsKK+ahjiA+IGZldHRlcnM7CivnvYQgPiBleGhhdXN0Owor6I2AID4gc3VybmFtZTsKK+mTsSA+IGlyaWRpdW07CivokakgPiBmbG93ZXJzOwor6YChID4gcmV0cmVhdDsKK+mAtiA+IHdpbmRpbmc7CivlrqUgPiBmb3JnaXZlOwor6JC4ID4gZG9nd29vZDsKK+aMnSA+IHRvXC1iZWF0Owor6ZK/ID4gaGFpcnBpbjsKK+eGtSA+IGVudHJvcHk7CivnhaggPiB0b1wtc3RldzsKK+egkiA+IGFyc2VuaWM7CivmmYEgPiBtb3JuaW5nOwor6LCYID4gY29uc3VsdDsKK+WHhyA+IGRld2Ryb3A7CivlmZggPiBwb3V0aW5nOwor5ZSjID4gY2hhdHRlcjsKK+mqoCA+IGNoYXJnZXI7CivmkrcgPiBwaWNrXC11cDsKK+aAhCA+IGFubm95ZWQ7CivplIIgPiBsaXRoaXVtOwor55alID4gc2NhYmllczsKK+eolyA+IGRhcm5lbHM7CivmtK4gPiBjbGVhbnNlOwor5oKtID4gbWlzZXJseTsKK+mFriA+IGtldG9uZXM7CivohZogPiBidXR0b2NrOwor6YCRID4gY29sbGVjdDsKK+iFsSA+IHRlbmRvbnM7CivpppQgPiB0b1wtZmVlZDsKK+aQoCA+IHRvXC1kYXViOwor6IyxID4gZG9nd29vZDsKK+egtyA+IGFyc2VuaWM7CivphaEgPiBmbHVzaGVkOwor55a0ID4gaWxsbmVzczsKK+aIlyA+IHN1cHBvcnQ7CivlkZIgPiB1bmNsZWFyOwor6LCMID4gc2luY2VyZTsKK+eXpyA+IGNob2xlcmE7CivmgYIgPiBjYXJlZnVsOwor56ykID4gYVwtYnJvb207Civpn6sgPiBzZWNyZXRlOwor5oCbID4gZ3JpZXZlZDsKK+aAmSA+IHJlbHlcLW9uOwor55q0ID4gY2hhcHBlZDsKK+ihpCA+IGNsb3RoZXM7Civlu6ogPiBncmFuYXJ5Owor5bq+ID4gZ3JhbmFyeTsKK+aMoiA+IGNvcnJlY3Q7CivnnaIgPiBnYXplXC1hdDsKK+WhrCA+IHBsYXRlYXU7Civonq8gPiBuaXBwZXJzOwor542SID4gbWFzdGlmZjsKK+ayhiA+IGFcLWZlcnJ5Owor5biUID4gYVwtc2tpcnQ7Civmk6IgPiBwdWxsXC11cDsKK+iWhSA+IHRvXC13ZWVkOwor6I60ID4gbGV0dHVjZTsKK+e+vCA+IGNvbmZ1c2U7Civmja0gPiB0b1wtb3BlbjsKK+iRrSA+IGJ1bHJ1c2g7CivlgKUgPiBib29yaXNoOwor5rq0ID4gYnJvbWluZTsKK+W7myA+IGFcLXN0b3JlOwor5o+4ID4gaGFuZGZ1bDsKK+S7tSA+IHNpbWlsYXI7Civpq4sgPiBoaXBib25lOwor6IKxID4gZm9yZWFybTsKK+WOtiA+IHByaXZhdGU7Civomo0gPiBtdXNzZWxzOwor5ZOZID4gc3dhbGxvdzsKK+mVkyA+IGdhbGxpdW07Civpk4sgPiBiaXNtdXRoOwor6IOdID4gY2FsbG91czsKK+aCgyA+IHNpbmNlcmU7Civnn70gPiBzaWxpY29uOwor6LWNID4gcHJlc2VudDsKK+e/pSA+IHRvXC1zb2FyOwor6JyeID4gZ3JhcHN1czsKK+ibqSA+IGNyaWNrZXQ7CivosKAgPiBjb3Vuc2VsOwor6bOVID4gY29kZmlzaDsKK+i3hiA+IHRyYW1wbGU7Civnn6wgPiBhXC1kd2FyZjsKK+atmSA+IHRvXC1zdWNrOwor6aG8ID4gZ3JpZXZlZDsKK+a6siA+IHVyaW5hdGU7CivolbsgPiBidWRkaW5nOwor5YizID4gY3V0XC1vdXQ7CivpuYggPiBwZWxpY2FuOwor6ZOZID4gY3ltYmFsczsKK+aknyA+IGNhYmluZXQ7CivplYkgPiBjYWRtaXVtOwor5auYID4gc3VybmFtZTsKK+ishyA+IHN0dXR0ZXI7CivmhrcgPiBwYWluZnVsOwor5pGtID4gcGlja1wtdXA7CivosKEgPiByaXNlXC11cDsKK+ikiiA+IGNyYW1wZWQ7CivpuZUgPiBwZWxpY2FuOwor6ZWyID4gY3ltYmFsczsKK+mSjSA+IHRob3JpdW07CivmsKogPiBrcnlwdG9uOwor6L+uID4gdG9cLXJpc2U7Civlv4kgPiBncmlldmVkOwor6JONID4gbWlsZm9pbDsKK+i4rCA+IHN0dW1ibGU7Civphq8gPiB2aW5lZ2FyOwor6J69ID4ga2F0eWRpZDsKK+iNkSA+IHNwcm91dHM7Civpg5MgPiBzdXJuYW1lOwor5YmAID4gc2hhcnBlbjsKK+i5gCA+IHRvXC1za2lwOwor6ZSOID4gY2Flc2l1bTsKK+mShyA+IHl0dHJpdW07CivmsJogPiB0cml0aXVtOwor54q4ID4gbWFtbW90aDsKK+iPuCA+IHRvXC1mYWRlOwor5Y6NID4gc3VybmFtZTsKK+mysSA+IGhlcnJpbmc7CivosoogPiBsZW9wYXJkOwor6LqeID4gdG9cLXdhbGs7Civom7QgPiBtYWdnb3RzOwor6ZS+ID4gbWVhc3VyZTsKK+mTjCA+IG5pb2JpdW07CivnlYAgPiB0b1wtZ2l2ZTsKK+mBmCA+IHRvXC1tZWV0Owor5rO3ID4gcmFpbmluZzsKK+iSoSA+IGJ1cmRvY2s7Civor7wgPiBzbGFuZGVyOwor6auMID4ga25lZWNhcDsKK+mzmSA+IGJpZ2hlYWQ7Civps5ggPiBjb2RmaXNoOwor6bOGID4gYWJhbG9uZTsKK+e1tyA+IGNvbmZpbmU7CivnrqYgPiBiZWRcLW1hdDsKK+eYmCA+IGZpc3R1bGE7CivpuLggPiBzd2FsbG93Owor6ZWEID4gZmVybWl1bTsKK+aBpyA+IGFzaGFtZWQ7CivnpYYgPiBvcm1hemRhOwor5augID4gYVwtd2lkb3c7CivmkLQgPiBleHRyYWN0Owor5buSID4gZ3JhbmFyeTsKK+mDhCA+IHN1cm5hbWU7Civor5wgPiBpbnF1aXJlOwor5YOmID4gdG9cLWhlaXI7CivpvqEgPiB0b1wtYmxvdzsKK+m9sCA+IHRvXC1iaXRlOwor6b2pID4gdG9cLWNoZXc7CivpvZogPiB0b1wtY2hldzsKK+m8tyA+IGFcLW1vdXNlOwor6bqeID4gcm9lYnVjazsKK+m4kSA+IGFcLWxhcmdlOwor6befID4gcGhvZW5peDsKK+m3lyA+IHNlYWd1bGw7Civpt5YgPiBzZWFndWxsOwor6ba6ID4gd2FndGFpbDsKK+m2uSA+IHRoZVwtb3dsOwor6bamID4gcGVsaWNhbjsKK+m2mCA+IHBlbGljYW47Civpta4gPiB0b1wtcGVjazsKK+m1nCA+IHBlbGljYW47CivptK8gPiBzd2FsbG93Owor6bSrID4gYVwtc25pcGU7CivptJUgPiBvc3RyaWNoOwor6bSOID4gc2VhZ3VsbDsKK+m0hyA+IGJ1c3RhcmQ7Civps6YgPiBzd2FsbG93Owor6bKaID4gYW5jaG92eTsKK+mxrSA+IGFuY2hvdnk7CivpsaggPiBjb2RmaXNoOwor6bGEID4gYW5jaG92eTsKK+mwvSA+IGhlcnJpbmc7CivpsLUgPiBjb2RmaXNoOwor6bCuID4gc2FyZGluZTsKK+mwmyA+IHNhcmRpbmU7CivpsJIgPiBhYmFsb25lOwor6a+3ID4gYW5jaG92eTsKK+mvoSA+IGhlcnJpbmc7CivprpEgPiBhYmFsb25lOwor6a2cID4gbWVybWFpZDsKK+mspyA+IHF1YXJyZWw7Civpq5YgPiBoaXBib25lOwor6auVID4ga25lZWNhcDsKK+mqqyA+IGJlXC1iZW50Owor6aqJID4gcnVubmluZzsKK+mpmSA+IFwoaG9yc2VcKTsKK+mpkiA+IGRhcHBsZWQ7CivpqYMgPiBjaGFyZ2VyOwor6aioID4gZGFwcGxlZDsKK+mnrSA+IHRlcnJpZnk7Civpp50gPiBhXC1jYW1lbDsKK+mniyA+IFwoaG9yc2VcKTsKK+mmriA+IHN1cm5hbWU7CivppZAgPiBzcG9pbGVkOwor6aS/ID4gc3BvaWxlZDsKK+mkviA+IGRpc3RpbGw7CivppLUgPiB0b1wtZmVlZDsKK+mksiA+IHNwb2lsZWQ7CivppJEgPiBmZXJydWxlOwor6aOkID4gdG9cLWZlZWQ7CivporYgPiBjeWNsb25lOwor6aKzID4gdG9cLWJsb3c7CivpoqsgPiBhXC1zdG9ybTsKK+mgmSA+IGNvcnJlY3Q7CivpoIogPiBncmlldmVkOwor6Z+jID4gYm93XC1iYWc7Civpn4UgPiBoYXJuZXNzOwor6Z2oID4gZGltcGxlczsKK+mchSA+IHRodW5kZXI7Civpm58gPiBzcGFycm93Owor6ZuaID4gYVwtaGVyb247Civpmb4gPiBpblwtZmlsZTsKK+mZsyA+IGV4aGliaXQ7CivpmZ4gPiBwcm9tb3RlOwor6ZinID4gc2xvcGluZzsKK+mXoSA+IGV4cGxhaW47Civpl5YgPiBydXNoXC1pbjsKK+mWsSA+IGV4YW1pbmU7CivplpkgPiBxdWFycmVsOwor6ZaIID4gdmlsbGFnZTsKK+mVpiA+IGZlcnJ1bGU7Civpk70gPiB0ZXJiaXVtOwor6ZO8ID4gcmhlbml1bTsKK+mTqiA+IGhhZm5pdW07Civpk6UgPiB0aHVsaXVtOwor6ZORID4gcmhvZGl1bTsKK+mSrCA+IGhvbG1pdW07CivpkKggPiBmZXJtaXVtOwor6ZCTID4gZmVycnVsZTsKK+mQgyA+IGN5bWJhbHM7CivpjrUgPiBnYWxsaXVtOwor6Y6YID4gY2FkbWl1bTsKK+mNsCA+IG1lYXN1cmU7CivpjLggPiByaGVuaXVtOwor6Yy2ID4gYVwtd2F0Y2g7CivpjKAgPiBzcGluZGxlOwor6YyAID4gXChtZXRhbFwpOwor6YuxID4gdGVyYml1bTsKK+mLsCA+IGxpdGhpdW07Civpi5UgPiBlbmdyYXZlOwor6YuKID4gYVwtcG9rZXI7Civpi4IgPiBiaXRcLWN1cDsKK+mKqSA+IHRodWxpdW07CivpiqUgPiBpcmlkaXVtOwor6Ym/ID4gaGFmbml1bTsKK+mJtyA+IHRyaWdnZXI7CivpibIgPiBjYWRtaXVtOwor6YmXID4gcGluY2VyczsKK+mJjSA+IGJpc211dGg7CivpiL8gPiBoYWlycGluOwor6Yi+ID4gdXJhbml1bTsKK+mIuCA+IGN5bWJhbHM7CivpiK4gPiBuaW9iaXVtOwor6YilID4gaG9sbWl1bTsKK+mIoyA+IGNhbGNpdW07Civph7ggPiBzaWxpY29uOwor6Ye3ID4gdGhvcml1bTsKK+mHsSA+IGZldHRlcnM7Civph5QgPiB5dHRyaXVtOwor6YWHID4gY29sbGVjdDsKK+mEuiA+IHN1cm5hbWU7CivphKcgPiBzdXJuYW1lOwor6YSVID4gY291bnRyeTsKK+mEiSA+IGNvdW50cnk7CivphIYgPiBzdXJuYW1lOwor6YOJID4gc3VybmFtZTsKK+mCqCA+IHZpbGxhZ2U7CivpgocgPiBiZVwtbmVhcjsKK+mBvCA+IGRpc3RhbnQ7CivpgbYgPiBlbnR3aW5lOwor6YGvID4gZGVjZWl2ZTsKK+mAuiA+IGRpc3RhbnQ7CivpgLcgPiBkaXN0YW50Owor6YCVID4gcGFzc1wtYnk7CivpgIggPiBkaXN0YW50Owor6L+0ID4gcmV2b2x2ZTsKK+i9tyA+IHN1cm5hbWU7CivovZIgPiBjaGFyaW90Owor6Ly9ID4gdmVoaWNsZTsKK+i7siA+IGFcLXdoZWVsOwor6LuYID4gd2FyXC1jYXI7CivouqYgPiB0b1wtanVtcDsKK+i6oCA+IHRvXC1saW1wOwor6LqdID4gdG9cLXBhc3M7CivoupggPiB0b1wtd2FsazsKK+i6hCA+IGNyaXBwbGU7CivouoIgPiBzdHVtYmxlOwor6LmhID4gdG9cLWxpbXA7CivouKsgPiBjb2xsaWRlOwor6LiQID4gdHJhbXBsZTsKK+i4iCA+IG5lZ2xlY3Q7Civot7QgPiBzdGVwXC1vbjsKK+i3rCA+IHRvXC1zdGVwOwor6LeVID4gc2h1ZmZsZTsKK+i2tyA+IHRvXC1qb2x0Owor6LaZID4gc3VybmFtZTsKK+i2kiA+IHRvXC1qdW1wOwor6LSNID4gc3VwcG9ydDsKK+i0hyA+IGFmZmFibGU7CivotIMgPiB0b1wtZWFybjsKK+izqyA+IHByZXNlbnQ7Civos50gPiBwcmVpb3VzOwor6LOIID4gc3VybmFtZTsKK+iyvSA+IGdpdmVcLXRvOwor6LKpID4gcGVkZGxlcjsKK+ixlyA+IGNsYW1vdXI7CivosKsgPiBzaGFsbG93Owor6K+5ID4gY29uc3VsdDsKK+iunyA+IHNsYW5kZXI7CivorpwgPiBjb3Vuc2VsOwor6K6SID4gc2xhbmRlcjsKK+iujCA+IGFcLWZlYXN0Owor6K6HID4gZmxhdHRlcjsKK+itviA+IHNoYWxsb3c7CivorbggPiBkZWNlaXZlOwor6K2aID4gc3VybmFtZTsKK+itjiA+IGN1bm5pbmc7CivorYggPiBkaXNsaWtlOwor6Ky+ID4gZGVjZWl2ZTsKK+istyA+IHNsYW5kZXI7CivorLMgPiB0b1wtc2luZzsKK+isrSA+IHNoYWxsb3c7CivorJ8gPiBmbGF0dGVyOwor6KyXID4gc2xhbmRlcjsKK+isliA+IHJpc2VcLXVwOwor6KyMID4gc2xhbmRlcjsKK+ishiA+IGJlZ3VpbGU7Civoq74gPiBwcm9taXNlOwor6Ku6ID4gcHJvdmVyYjsKK+irtiA+IHNpbmNlcmU7Civoq7EgPiBjb25jZWFsOwor6KuuID4gY29uc3VsdDsKK+irmyA+IGZsYXR0ZXI7Civoq5ogPiBjb21tYW5kOwor6KuRID4gc2xhbmRlcjsKK+irjyA+IGNvbnN1bHQ7Civoq4QgPiBwYXRpZW50Owor6KuCID4gZmxhdHRlcjsKK+iquSA+IHNsYW5kZXI7CivoqpEgPiBkZWNlaXZlOwor6KqFID4gZXhlY3V0ZTsKK+ipviA+IG5vaXNpbHk7CivoqbUgPiBpbnF1aXJlOwor6KmtID4gZGVjZWl2ZTsKK+ipqyA+IHRvXC1icmFnOwor6KmGID4gc2xhbmRlcjsKK+iphSA+IHRvXC1zZWxsOwor6Ki7ID4gZXhwbGFpbjsKK+iorCA+IGNsYW1vdXI7CivoqKkgPiBub2lzaWx5Owor6KimID4gc2luY2VyZTsKK+iooiA+IHBsZWFzZWQ7CivoqJEgPiBkZWNlaXZlOwor6KehID4gYW50bGVyczsKK+imtyA+IHBlZXBcLWF0Owor6KalID4gYXNoYW1lZDsKK+imnCA+IG1pc3Npb247CivopZwgPiBmbHV0dGVyOwor6KWDID4gY29tbWVuZDsKK+ikvSA+IGN1c2hpb247CivopJQgPiBjb21wbGV4Owor6KO1ID4gc3VybmFtZTsKK+ijkiA+IGNvbGxlY3Q7Civoor0gPiBjbG90aGVzOwor6KK6ID4gaG9sZFwtdXA7CivooqogPiBzbGVldmVzOwor6KG1ID4gY2hlbWlzZTsKK+igkCA+IG1hZ2dvdHM7Civonq4gPiByYWluYm93Owor6J24ID4gYVwtc25haWw7CivonYMgPiByYWluYm93Owor6J2AID4gcmFpbmJvdzsKK+icqyA+IGluc2VjdHM7CivomqsgPiBhYmFsb25lOwor6JqRID4gdGlwXC10b2U7CivomYYgPiBlbnR3aW5lOwor6JiKID4gY29sbGVjdDsKK+iXtCA+IGNvbGxlY3Q7Civol5kgPiBkb2d3b29kOwor6Ja9ID4gXChncmFzc1wpOwor6Ja2ID4gdG9cLWJ1cnk7CivolpMgPiBnaW5zZW5nOwor6JaQID4gc3BpbmFjaDsKK+iWiiA+IGNpcmNpdW07CivolZ0gPiBoYW5kZnVsOwor6JS/ID4gc3VybmFtZTsKK+iUoyA+IHN1cm5hbWU7CivolJggPiBnaW5zZW5nOwor6JOMID4gcHJldGVuZDsKK+iSkCA+IGNvbGxlY3Q7CivokaAgPiBnaW5zZW5nOwor6JGKID4gY290dGFnZTsKK+iQtSA+IGxldHR1Y2U7Civoj6ogPiBoZW5iYW5lOwor6I+nID4gc3RpYmVuZTsKK+iOiiA+IHZpbGxhZ2U7CivojoAgPiB0b1wtZmFybTsKK+iNmCA+IHZpbGxhZ2U7CivojLcgPiBmbHV0dGVyOwor6IygID4gdG9cLXdlZWQ7Civoi70gPiBidWxydXNoOwor6IuFID4gY3V0XC1vZmY7CivoiaYgPiB3YXJzaGlwOwor6IiTID4gdG9cLWxpY2s7Civoh50gPiBiZVwtYmFyZTsKK+iFliA+IHBlcHRvbmU7CivohY4gPiBraWRuZXlzOwor6ISdID4gZGlzdGVuZDsKK+iBtiA+IHdoaXNwZXI7Civoga8gPiBjb25uZWN0Owor6IGuID4gY29ubmVjdDsKK+iBqyA+IGNvbm5lY3Q7CivogaggPiBjb25uZWN0Owor6ICJID4gb2xkXC1hZ2U7CivogIggPiBvbGRcLWFnZTsKK+e/uSA+IHR1cm5cLXVwOwor57+qID4gZmx1dHRlcjsKK+e+kCA+IHRvXC1sZWFkOwor5724ID4gcGVuYWx0eTsKK+e9liA+IGt3dWt5ZWw7CivnvLsgPiBwb3R0ZXJ5Owor57yyID4gdG9cLXJlZWw7CivnubMgPiBkZWxpdmVyOwor57i2ID4gY29uZmluZTsKK+e4giA+IGNvbGxlY3Q7Civnt4sgPiBzY2FybGV0Owor57eBID4gdG9cLWpvaW47CivntaogPiBtYXR0aW5nOwor57KCID4gc3VybmFtZTsKK+exmyA+IHN1cm5hbWU7CivnsZEgPiB0b1wtZmVlZDsKK+ewgCA+IGJlZFwtbWF0Owor56ywID4gY3VydGFpbjsKK+eskyA+IHRvXC1jb21iOwor56u4ID4gY29udGVuZDsKK+erkiA+IHN0cmFuZ2U7Civnq4ggPiBmdXJuYWNlOwor56uHID4gc3VybmFtZTsKK+eqgCA+IHRvXC1idXJ5Owor56mrID4gaGFydmVzdDsKK+eoiiA+IGRhcm5lbHM7CivnqIcgPiB0b1wtYmluZDsKK+enkCA+IHRvXC13ZWVkOwor56aiID4gc3VybmFtZTsKK+emgiA+IHRvXC1wcmF5Owor56S1ID4gYXJzZW5pYzsKK+ejhyA+IGFyc2VuaWM7CivnooMgPiBcKHN0b25lXCk7Civnn7EgPiBtZWFzdXJlOwor55+vID4gY29ycmVjdDsKK+efnyA+ICcnXC1sYW5jZTsKK+eeryA+IHRvXC1wZWVwOwor556eID4gZGVjZWl2ZTsKK+ecvSA+IHRvXC1nYXplOwor55y0ID4gZGF6emxlZDsKK+ecjiA+IGxvb2tcLWF0Owor55unID4gY290dGFnZTsKK+eZqSA+IGxlcHJvc3k7CivnmaggPiBxdWlja2x5Owor55i7ID4gZmlzdHVsYTsKK+eYnSA+IGlsbG5lc3M7CivnlZAgPiB0b1wtZmlsbDsKK+eUlCA+IGJpZ1wtamFyOwor55ObID4gc2NhcHRyZTsKK+eSuiA+IGFcLWNyYWNrOwor55KKID4gcmVkZGlzaDsKK+eQsSA+IGVuZ3JhdmU7CivnjqcgPiByZWRkaXNoOwor5425ID4gYVwtaG91bmQ7CivnjZogPiBzcGFuaWVsOwor54uJID4gZm94XC1jdWI7CivnioYgPiBzcGVjaWFsOwor54muID4gcHJvcFwtdXA7Civnh7wgPiBjaW5kZXJzOwor54a7ID4gdG9cLWhlYXQ7CivnhrggPiBwdXRcLW91dDsKK+eGryA+IGJ5XC1maXJlOwor54W7ID4gdG9cLXdhcm07CivnhaUgPiBzaGluaW5nOwor54OJID4gc2hpbmluZzsKK+eBtCA+IHRvXC1iYWtlOwor54C5ID4gdG9cLWJvaWw7CivngKcgPiByYWluaW5nOwor5r6jID4gY2xlYW5zZTsKK+a+kCA+IGJpbGxvd3M7CivmvawgPiBhXC1yYXBpZDsKK+a6piA+IGRyaXp6bGU7CivmuLwgPiByaXBwbGVzOwor5rinID4gdG9cLWRyb3A7CivmuJkgPiBzY2F0dGVyOwor5reqID4gYmVcLWxvc3Q7CivmtrYgPiB0b1wtc3BpdDsKK+a2kiA+IG1lYW5kZXI7CivmtLggPiBzcGFya2xlOwor5rKEID4gYmlsbG93czsKK+axiyA+IHRvXC1wb3VyOwor5rC8ID4gdG9cLXNpbms7CivmsJUgPiBwcm90aXVtOwor5q+aID4gY3VubmluZzsKK+avgCA+IGRlc3Ryb3k7CivmrbogPiB2aWNpb3VzOwor5q2cID4gZnVyaW91czsKK+asvSA+IHJlc3BlY3Q7CivmrIQgPiByYWlsaW5nOwor5qulID4gY2FiaW5ldDsKK+arnSA+IGNhYmluZXQ7CivmqYYgPiB3aXRob3V0Owor5qaiID4gYVwtZnJhbWU7CivmpJcgPiBcKHBsYW50XCk7Civmo7ggPiBzdXJuYW1lOwor5qCiID4gY3lwcmVzczsKK+aevCA+IGFcLXRhYmxlOwor5p6TID4gY2FwaXRhbDsKK+aduCA+IHRvXC1raWxsOwor5p22ID4gdmFybmlzaDsKK+acviA+IHRvXC1idW1wOwor5pywID4ga3d1a3llbDsKK+acoiA+IGxvb2tcLWF0Owor5pyKID4gcHJvdGVpbjsKK+abvSA+IGFscmVhZHk7Civmm5YgPiBvYnNjdXJlOwor5pmJID4gYWR2YW5jZTsKK+aXoyA+IGFscmVhZHk7Civmlr8gPiB0b1wtc3dpbTsKK+aWriA+IGN1dFwtb2ZmOwor5pagID4gbWVhc3VyZTsKK+aWgSA+IGRpc2xpa2U7Civmlb4gPiB0b1wtcnVsZTsKK+aVryA+IHRvXC1kZWZ5Owor5pWtID4gc2NhdHRlcjsKK+aVnCA+IGZpbGxcLXVwOwor5pWYID4gZXhwcmVzczsKK+aVjSA+IGV4cHJlc3M7CivmlLcgPiBleGFtaW5lOwor5pSqID4gZGlzdHVyYjsKK+aUoyA+IHRhbmdsZWQ7CivmlJ0gPiB0YWtlXC1pbjsKK+aUjyA+IGNvbGxlY3Q7Civmk74gPiBkaXN0dXJiOwor5pO4ID4gdG9cLWhvbGQ7Civmk7cgPiBwaWNrXC11cDsKK+aTryA+IGV4Y2x1ZGU7Civmk50gPiB0b1wtcHVsbDsKK+aThCA+IGNhcHR1cmU7Civmk4EgPiBlbWJyYWNlOwor5pK+ID4gdG9cLWJlYXQ7CivmkrkgPiBkaXN0dXJiOwor5pK0ID4gdG9cLWpvbHQ7CivmkqMgPiB0b1wtZHVzdDsKK+aSoiA+IHRvXC1kdXN0Owor5pKfID4gY29ycmVjdDsKK+aSkyA+IHNjcmF0Y2g7CivmkpAgPiBwcm9wXC11cDsKK+aRryA+IHNpbmNlcmU7CivmkaAgPiBnZW5lcmFsOwor5pGCID4gdGFrZVwtaW47CivmkLcgPiB0b1wtYmVhdDsKK+aQtiA+IHBsdW5kZXI7Civmjr0gPiBjb2xsaWRlOwor5o6vID4gb3BwcmVzczsKK+aMjSA+IGNvbGxhdGU7Civmi6sgPiB0b1wtcHVsbDsKK+aKiCA+IHRvXC1iZW5kOwor5om9ID4gdG9cLW1vdmU7CivmiKcgPiBzdXBwb3J0Owor5oewID4gYmVcLWdsYWQ7Civmh6sgPiBlbnJhZ2VkOwor5oekID4gZ3JpZXZlZDsKK+aHmyA+IGFsYXJtZWQ7Civmh4cgPiBzaW5jZXJlOwor5oeGID4gYW54aW91czsKK+aHhSA+IGJhc2hmdWw7CivmhoMgPiBmb29saXNoOwor5oWzID4gbWlzZXJseTsKK+aFqiA+IGFubm95ZWQ7CivmhZ8gPiBzYWRuZXNzOwor5oWaID4gYXNoYW1lZDsKK+aFmSA+IGFzaGFtZWQ7CivmhJAgPiBiYXNoZnVsOwor5oSKID4gc2luY2VyZTsKK+aDtyA+IHdyaWdnbGU7Civmg6MgPiBvdmVyYWxsOwor5oOWID4gcmVzcGVjdDsKK+aDkyA+IGNhcmVmdWw7Civmg4cgPiBiZVwta2luZDsKK+aCqSA+IGFuZ2VyZWQ7CivmgpwgPiBvYnNjdXJlOwor5oKQID4gcmVzcGVjdDsKK+aChSA+IHBsZWFzZWQ7CivmgaAgPiBzdHJhbmdlOwor5oGJID4gbWVhbmluZzsKK+aAsSA+IGhhc3RpbHk7CivlvacgPiByZWZpbmVkOwor5b2lID4gZWxlZ2FudDsKK+W9miA+IGNvbGxlY3Q7CivlvZkgPiBjb2xsZWN0Owor5b2GID4gYXdrd2FyZDsKK+W7qSA+IGdyYW5hcnk7Civlu6AgPiBmYWN0b3J5Owor5budID4gc2VydmFudDsKK+W7miA+IGtpdGNoZW47Civlu4wgPiB1bmljb3JuOwor5buLID4gY29uY2VhbDsKK+W6pCA+IHByZXBhcmU7CivlubcgPiBjb21iaW5lOwor5bmrID4gdG9cLWhlbHA7CivluaggPiBjdXJ0YWluOwor5bmAID4gcGljdHVyZTsKK+W4vyA+IG1hcnF1aXM7CivluLIgPiBzaGVsdGVyOwor5bihID4gc2hlbHRlcjsKK+W3vyA+IHJldm9sdmU7Civlt4cgPiBhXC1jcmFjazsKK+W2lyA+IGxhb3NoYW47CivltIsgPiBmbG93ZXJ5Owor5bCfID4gc3VybmFtZTsKK+WvqiA+IHN1cm5hbWU7CivlrYUgPiBzbGVuZGVyOwor5au7ID4gZWxlZ2FudDsKK+WruiA+IHJlZmluZWQ7Civlqr8gPiBhc2hhbWVkOwor5aq7ID4gdG9cLW1vdmU7Civlqp4gPiBhdFwtZWFzZTsKK+WprCA+IG9ic2NlbmU7CivlqYEgPiBzdXJuYW1lOwor5aeNID4gc2xhbmRlcjsKK+WlmyA+IG9wZW5pbmc7CivlpKMgPiBhXC1kcmVhbTsKK+WjvSA+IG9sZFwtYWdlOwor5aOtID4ga3d1a3llbDsKK+WjnSA+IGFcLW1vdW5kOwor5aOYID4gcmFtcGFydDsKK+WjlCA+IGFcLW1vdW5kOwor5aG9ID4gcGxhdGVhdTsKK+WhoSA+IGZpbGxcLWluOwor5aGTID4gcGxhc3RlcjsKK+WhgSA+IHJhbXBhcnQ7CivloIQgPiBwYXJhcGV0Owor5Z+XID4gYVwtd2hhcmY7CivlnJcgPiBkaWFncmFtOwor5ZyVID4gbGlicmFyeTsKK+WcgiA+IHBpZ1wtc3R5Owor5ZuqID4gY2hpbW5leTsKK+WapSA+IHN3YWxsb3c7CivlmpUgPiB2ZXJib3NlOwor5ZqKID4gdG9cLXBhbnQ7CivlmbIgPiBzd2FsbG93Owor5ZmlID4gd2hpc3BlcjsKK+WYuCA+IHVuY2xlYXI7Civll7kgPiBjaGF0dGVyOwor5Za+ID4gZW1wZXJvcjsKK+WWpSA+IGFcLXBsYWNlOwor5ZWxID4gY29ycmVjdDsKK+WUniA+IHRvXC1nYXNwOwor5ZSFID4gYVwtc291bmQ7Civlkr4gPiBhXC1ub2lzZTsKK+WSiiA+IGhhcm1vbnk7CivlkokgPiBhblwtZWNobzsKK+WRvyA+IHRvXC15YXduOwor5ZGsID4gdG9cLXJlc3Q7CivlkasgPiB3aGlzcGVyOwor5ZGMID4gdG9cLWNhbGw7Civlj5wgPiBvbGRcLW1hbjsKK+WOvCA+IGt3dWt5ZWw7CivljrAgPiBmYWN0b3J5Owor5Y6rID4gZ3JhbmFyeTsKK+WOmSA+IHN1cm5hbWU7CivljbIgPiBlbWluZW50Owor5Y2qID4ga3d1a3llbDsKK+WNhiA+IHNvbGRpZXI7CivljL0gPiB0b1wtaGlkZTsKK+WMsSA+IHRvXC1sYWNrOwor5YynID4gYVwtdHJ1bms7CivljIsgPiBwb3R0ZXJ5Owor5YyKID4gaGFuZGZ1bDsKK+WLpiA+IGRlc3Ryb3k7CivlipAgPiBkZXN0cm95Owor5YqJID4gc3VybmFtZTsKK+WJtCA+IHNoYXJwZW47Civlh4ogPiBzdXJuYW1lOwor5YamID4gYmFuZGl0czsKK+WFryA+IGt3dWt5ZWw7CivlhaogPiBzdXJuYW1lOwor5YWCID4gaGFpcnBpbjsKK+WEtiA+IHZhbGlhbnQ7CivlhKYgPiBtaWxsaW5nOwor5YSkID4gb25cLWR1dHk7CivlhJMgPiBzZXJ2YW50Owor5YSNID4gZm9vbGlzaDsKK+WDryA+IGFzaGFtZWQ7Civlg6QgPiBzaW5jZXJlOwor5YOOID4gY29sbGVjdDsKK+WCvCA+IHN1cm5hbWU7CivlgpogPiBpbWl0YXRlOwor5YKUID4gc2VydmFudDsKK+WCgSA+IG9sZFwtbWFuOwor5YG5ID4gcHJlcGFyZTsKK+WAoyA+IGltaXRhdGU7CivlgJ0gPiBzdW5yaXNlOwor5YCQID4gaGFzdGlseTsKK+WAgiA+IGNvbWJpbmU7CivkvrQgPiBzdXJuYW1lOwor5L6HID4gYVwtY2xhc3M7CivkvoUgPiB0b1wtZ2l2ZTsKK+S9iSA+IHN1cm5hbWU7CivkvIggPiBuZXJ2b3VzOwor5LyAID4gZXhjaXRlZDsKK+S7kiA+IGt3dWt5ZWw7Civkur0gPiBrd3VreWVsOwor5Lq3ID4gdXByaWdodDsKK+S6tiA+IHNpbmNlcmU7CivkuqogPiBrd3VreWVsOwor5LqXID4gaGFydmVzdDsKK+S5vyA+IHRvXC1jdXJlOwor5LmsID4gdG9cLWhhbmc7CivkuaUgPiBrd3VreWVsOwor5LmbID4ga3d1a3llbDsKK+S5iiA+IGt3dWt5ZWw7CivkuYAgPiBzdHJldGNoOwor5Li3ID4ga3d1a3llbDsKK+S4nyA+IGRpc2NhcmQ7CivkuI8gPiBwYXJhcGV0Owor5LiGID4ga3d1a3llbDsKK+S2tCA+IHRvXC1ibG93Owor5LapID4gdG9cLWduYXc7CivktqcgPiB0b1wtZ25hdzsKK+S2oiA+IHRvXC1nbmF3Owor5LagID4gdG9cLWduYXc7Civktp4gPiB0b1wtZ25hdzsKK+S2lyA+IHRvXC1iaXRlOwor5LW8ID4gdG9cLWJvaWw7CivktKcgPiB2ZW5pc29uOwor5LSSID4gd2FndGFpbDsKK+SzrSA+IHdhZ3RhaWw7CivksqwgPiBjaGlja2VuOwor5LKjID4gdG9cLWZpc2g7Civksp0gPiBwb21mcmV0Owor5LKUID4gYVwtd2hhbGU7CivksbcgPiB0b1wtZmlzaDsKK+SxiSA+IHRoZVwtZWVsOwor5LGHID4gdGhlXC1lZWw7CivksK8gPiB0b1wtZmVhcjsKK+SwniA+IHRvXC1jb29rOwor5LCBID4gdG9cLW1lZXQ7CivkrrwgPiBwaWViYWxkOwor5K67ID4gdG9cLXByYXk7CivkrqYgPiB1bnRhbWVkOwor5K2uID4gamV3ZWxyeTsKK+StpCA+IHRvXC1jaGV3Owor5K2gID4gYVwtc25hY2s7CivkrKEgPiB0b1wtc29hcjsKK+SsnSA+IGFcLXN0b3JtOwor5KyWID4gYVwtc3Rvcm07CivkrI4gPiBob3RcLWFpcjsKK+SruCA+IHRvXC1ibG93Owor5KuYID4gaGVhbHRoeTsKK+SrkiA+IGRpc2Vhc2U7CivkqqMgPiBzbWFzaGVkOwor5KqiID4gc21hc2hlZDsKK+SpsyA+IHRhbm5pbmc7CivkqZ8gPiBsZWF0aGVyOwor5KmUID4gdGhlXC1oZW07CivkqKggPiB0aHVuZGVyOwor5KieID4gdG9cLXJhaW47CivkqJsgPiB0b1wtcmFpbjsKK+SomiA+IHRvXC1yYWluOwor5KiTID4gdGh1bmRlcjsKK+SogiA+IGFcLWNoaWNrOwor5KewID4gYVwtbW91bmQ7Civkp58gPiB0b1wtc2tpbjsKK+SnjSA+IGFcLWNyYWNrOwor5KatID4gdG9cLW9wZW47CivkposgPiB0b1wtZ3JvdzsKK+SlsCA+IHRvXC1tZWx0Owor5KWuID4gdG9cLWJlYXQ7CivkpYogPiByZWZpbmVkOwor5KSfID4gYVwtc3BhZGU7CivkpJggPiB2aW5lZ2FyOwor5KSVID4gdmluZWdhcjsKK+SkiCA+IHZpbmVnYXI7Civko7cgPiB0b1wtcG91cjsKK+SitiA+IGFcLXN0YXRlOwor5KKwID4gdG9cLWp1bXA7CivkoqwgPiB0b1wtbW92ZTsKK+SioyA+IGRpc3RhbnQ7CivkoqIgPiB0b1wtcGFzczsKK+SioCA+IHRvXC1zZW5kOwor5KKZID4gdG9cLXJ1aW47CivkopIgPiB0b1wtbWVldDsKK+SijCA+IHRvXC13YWxrOwor5KC8ID4gdG9cLXdlYXI7CivkoLMgPiB0b1wtd2FsazsKK+SgpSA+IHRvXC1saW1wOwor5KCcID4gdG9cLXdhbGs7CivkoJsgPiB0b1wtanVtcDsKK+SgkyA+IHRvXC13YWxrOwor5KCEID4gdG9cLXdhbGs7Civkn74gPiB0b1wtanVtcDsKK+SftyA+IHRvXC1qdW1wOwor5J+wID4gdG9cLXdhbGs7Civkn60gPiB0b1wtanVtcDsKK+SfrCA+IHRvXC13YWxrOwor5J+mID4gdG9cLXdhbGs7Civkn5AgPiB0b1wtd2FsazsKK+SfjyA+IHRvXC1qdW1wOwor5J+NID4gdG9cLXdhbGs7Civkn4kgPiB0b1wtd2FsazsKK+SfiCA+IHRvXC13YWxrOwor5J+HID4gdG9cLXdhbGs7Civkn4AgPiB0b1wtd2FsazsKK+SeuyA+IHRvXC13YWxrOwor5J66ID4gdG9cLXdhbGs7CivknrkgPiB0b1wtd2FsazsKK+SetSA+IHRvXC1qdW1wOwor5J60ID4gdG9cLWp1bXA7Civknq8gPiB0b1wtd2FsazsKK+SeqyA+IHRvXC13YWxrOwor5J6lID4gdG9cLXdhbGs7CivknqQgPiB0b1wtd2FsazsKK+SeoiA+IHRvXC13YWxrOwor5J6hID4gdG9cLXdhbGs7CivknqAgPiB0b1wtd2FsazsKK+SeniA+IHRvXC13YWxrOwor5J27ID4gdG9cLXNlbGw7Civkna4gPiB0b1wtYnJhZzsKK+SdpyA+IGNhcGl0YWw7CivknJYgPiB0b1wtdGFsazsKK+SciSA+IHRvXC1qZXN0Owor5Ju/ID4gY3VubmluZzsKK+SbuiA+IHRvXC13YXJuOwor5Ju3ID4gdG9cLW9iZXk7Civkm7AgPiBza2V0Y2h5Owor5JuiID4gY3VubmluZzsKK+SbnSA+IHRvXC1saWtlOwor5JubID4gY291cmFnZTsKK+SavCA+IGFzaGFtZWQ7CivkmrsgPiB0b1wtc2luZzsKK+SasSA+IGhvbmVzdHk7Civkmq4gPiB0aGlja2VyOwor5JqXID4gdG9cLWxpZnQ7Civkmo8gPiB0b1wtbG92ZTsKK+SZsiA+IHRvXC1tb3ZlOwor5JmpID4gY2xvdGhlczsKK+SZmSA+IGNsb3RoZXM7CivkmY4gPiBzbGVldmVzOwor5JmJID4gY2xvdGhlczsKK+SYtyA+IHNsZWV2ZXM7CivkmLYgPiBzbGVldmVzOwor5JixID4gd2VhbHRoeTsKK+SYriA+IHRvXC1sb3NlOwor5JigID4gZ3JlYXZlczsKK+SYnSA+IGFcLXNoaXJ0Owor5JeyID4gZmlyZWZseTsKK+SXkSA+IGZpcmVmbHk7CivklrUgPiBpbnNlY3RzOwor5JadID4gaW5zZWN0czsKK+SWmiA+IGFcLXRpZ2VyOwor5JaYID4gYVwtdGlnZXI7CivklpUgPiBhXC10aWdlcjsKK+SWhCA+IHRvXC1idXJuOwor5JWeID4gaGVuYmFuZTsKK+SVkSA+IHBhcnNsZXk7CivklLogPiBoZWFkaW5nOwor5JSAID4gcGFyc2xleTsKK+SStiA+IHRoZVwtc2t5Owor5JKYID4gcGFyc2xleTsKK+SRpyA+IGFcLXNob3J0Owor5JGbID4gdG9cLWxpY2s7CivkkL8gPiBnaXp6YXJkOwor5JC3ID4gcGF1bmNoeTsKK+SQtiA+IHRvXC1jb29rOwor5JC0ID4gbHVtYmFnbzsKK+SQqyA+IG9iZXNpdHk7CivkkIogPiBpbnNlY3RzOwor5I+dID4gc2luY2VyZTsKK+SPliA+IGFcLXdvdW5kOwor5I+RID4gdG9cLWJ1cm47Civkj4cgPiB0b1wtaGVhcjsKK+SPhSA+IHRvXC1oZWFyOwor5I+DID4gdG9cLWhlYXI7Civkjr0gPiB0b1wtaGVhcjsKK+SOuyA+IHRvXC1oZWFyOwor5I65ID4gdG9cLWhlYXI7CivkjrggPiB0b1wtaGVhcjsKK+SOqSA+IHRvXC10aWxsOwor5I6mID4gdG9cLXRpbGw7CivkjqQgPiB0b1wtdGlsbDsKK+SOnSA+IHRvXC1zb2FyOwor5I6MID4gZmVhdGhlcjsKK+SNtiA+IHVuaWNvcm47CivkjbMgPiBkaXNlYXNlOwor5IyYID4gdG9cLWtuaXQ7CivkjJQgPiB0b1wtc29hazsKK+SMgSA+IGFcLXBsZWF0Owor5IuOID4gdG9cLW1lbmQ7Civkip8gPiBhZG9ybmVkOwor5IqYID4gYVwtZ3JhaW47CivkipIgPiByZWZpbmVkOwor5IqHID4gdG9cLWZlZWQ7CivkibUgPiB0b1wtZmVlZDsKK+SJoiA+IGFcLXNpZXZlOwor5ImOID4gYVwtY292ZXI7CivkiKwgPiBhXC1zbWFsbDsKK+SIqiA+IGFcLXNtYWxsOwor5IilID4gdGVuZG9uczsKK+SIpCA+IHBpbmNlcnM7CivkiJIgPiBmcmFnaWxlOwor5IiHID4gYVwtY292ZXI7Civkh5QgPiBhdHJvcGh5Owor5IeNID4gdG9cLXdhaXQ7CivkhrUgPiBhblwtZWNobzsKK+SGqCA+IHRoZVwtc2t5Owor5IW4ID4gYVwtZ3JhaW47CivkhKQgPiB0b1wtc2luazsKK+SEjyA+IGJpemFycmU7Civkg6MgPiB0b1wtcnVpbjsKK+SCiiA+IHdlYXBvbnM7CivkgokgPiB3ZWFwb25zOwor5IKGID4gd2VhcG9uczsKK+SCgCA+IHRvXC13aW5rOwor5IGyID4gdG9cLXBlZXA7CivkgaogPiB0b1wtd2luazsKK+SBoyA+IHRvXC13aW5rOwor5IGbID4gdG9cLWxvb2s7CivkgZIgPiB0b1wtd2luazsKK+SAuyA+IHRvXC1sb29rOwor5ICoID4gdG9cLWxvb2s7CivkgJQgPiB0b1wtbG9vazsKK+O/piA+IHRvXC10ZWxsOwor47+SID4gaWxsbmVzczsKK+O/kSA+IGlsbG5lc3M7Civjv40gPiBzY2FiaWVzOwor4763ID4gdG9cLWFjaGU7CivjvqwgPiBtYWxhcmlhOwor476gID4gYVwtZmV2ZXI7Civjvp8gPiByZWxhcHNlOwor476eID4gaWxsbmVzczsKK+O+mCA+IGFpbG1lbnQ7CivjvpYgPiBncmlldmVkOwor476VID4gYVwtY2hpbGw7CivjvpMgPiBmYXRpZ3VlOwor476SID4gaWxsbmVzczsKK+O+jyA+IGlsbG5lc3M7CivjvocgPiBpbGxuZXNzOwor476GID4gZWNkeXNpczsKK+O+hSA+IGRlZmVjdHM7CivjvoIgPiBpbGxuZXNzOwor4720ID4gaWxsbmVzczsKK+O9syA+IGlsbG5lc3M7CivjvZ0gPiB0b1wtc2luazsKK+O9liA+IGFcLWh1bWFuOwor47y8ID4gYVwtbGFkbGU7CivjvLcgPiBhXC1iYXNpbjsKK+O8nCA+IGFcLWJhc2luOwor47yXID4gYVwtYnJpY2s7Civju7kgPiBhXC1jcmFjazsKK+O7gyA+IGNyb29rZWQ7CivjurIgPiBidXR0b25zOwor47qXID4gdG9cLWJpdGU7CivjuoogPiBhXC1iZWFzdDsKK+O5viA+IGN1bm5pbmc7Civjub0gPiB0b1wtYml0ZTsKK+O5niA+IHRvXC1iYXJrOwor47mbID4gYVwtdGFtZWQ7CivjuKcgPiB0b1wtYml0ZTsKK+O4kCA+IHRvXC1idXJuOwor47iNID4gdG9cLWJ1cm47Civjt7sgPiB3aXRob3V0Owor47eTID4gYVwtdG9yY2g7Civjt4ogPiB0b1wtYnVybjsKK+O3iSA+IHRvXC1pcm9uOwor47eFID4gdG9cLWNvb2s7Civjtq4gPiB0b1wtYnVybjsKK+O2qyA+IHRvXC1idXJuOwor47ajID4gdG9cLWJ1cm47CivjtpcgPiB3ZWxsXC11cDsKK+O2kyA+IHRvXC1zaW5rOwor47aHID4gYVwtZmVycnk7CivjtbggPiB0b1wtYm9pbDsKK+O1tCA+IHRvXC1zaW5rOwor47WjID4gdGhpcnN0eTsKK+O1kiA+IGJvaWxpbmc7CivjtYwgPiB0b1wtZmxvdzsKK+O1hSA+IGFcLXJpdmVyOwor47S/ID4gYm9pbGluZzsKK+O0iSA+IHZhcmlvdXM7CivjtIcgPiB0b1wtd2FkZTsKK+O0hSA+IHRvXC1tZWx0Owor47O6ID4gdG9cLXN3aW07Civjs60gPiBzcGl0dGxlOwor47OsID4gYW5cLWVkZHk7Civjs6ogPiBhXC1yaXZlcjsKK+OzpiA+IGFcLXJpdmVyOwor47OZID4gYVwtYnJvb2s7Civjs4UgPiB0b1wtZmxvdzsKK+OzhCA+IHNwaXR0bGU7CivjsrogPiB0b1wtd2FzaDsKK+OyhSA+IHRvXC1iaW5kOwor47KCID4gdG9cLXB1c2g7CivjsoEgPiB0b1wtYmVhdDsKK+OygCA+IHRvXC1iZWF0Owor47GuID4gdG9cLW9wZW47CivjsZYgPiB0b1wtc3RheTsKK+OxjCA+IHRvXC10YWtlOwor47GEID4gdG9cLXNwaXQ7CivjsYAgPiB0b1wtYml0ZTsKK+OwtSA+IHRvXC1zdWNrOwor47CVID4gYVwtbGFkbGU7Civjr7sgPiB0b1wtYmluZDsKK+OvuSA+IHRvXC1zaG93Owor46+4ID4gYVwtYmFzaW47Civjr5MgPiBhXC1jb3VjaDsKK+OvkCA+IHR1YnVsYXI7Civjr4sgPiBhXC1jaGVzdDsKK+OuuCA+IHRvXC1zZW5kOwor466bID4gYVwtc3Bvb247CivjrbAgPiB0b1wta25vdzsKK+OtrCA+IHRvXC1iZWF0Owor462qID4gYVwtc2hydWI7CivjrYwgPiBhXC1iYXNpbjsKK+OtiCA+IGFcLWJhc2luOwor46y8ID4gdG9cLWhhdmU7CivjrJ0gPiBvYnNjdXJlOwor46yUID4gdG9cLWRlZnk7CivjrIMgPiBzdW5yaXNlOwor46u0ID4gdG9cLXJvYXI7Civjq7MgPiBtb3JuaW5nOwor46unID4gdmlvbGVudDsKK+OrnSA+IHRoZVwtc3VuOwor46uZID4gdGhlXC1zdW47Civjq5EgPiBwdXJwb3NlOwor46q8ID4gdG9cLXB1bGw7CivjqrEgPiBlbGVnYW50Owor46qvID4gdG9cLWxpZnQ7Civjqq4gPiB0b1wtYmVhdDsKK+OqqCA+IHRvXC1tZW5kOwor46qnID4gdG9cLWJlYXQ7CivjqqYgPiB0b1wtYmVhdDsKK+OqpSA+IHRvXC10YWtlOwor46qiID4gdG9cLWJlYXQ7CivjqqAgPiB0b1wtcGVjazsKK+OqnSA+IHRvXC1iZWF0Owor46qXID4gdG9cLW9wZW47CivjqpUgPiB0b1wtYmVhdDsKK+OqkiA+IHRvXC1ydWluOwor46qPID4gdG9cLXJ1aW47CivjqoEgPiB0b1wtaG9sZDsKK+OptiA+IHRvXC1ob2xkOwor46m1ID4gdG9cLWJlYXQ7CivjqbMgPiB0b1wtaG9sZDsKK+OpsCA+IHRvXC1zdGFiOwor46mvID4gdG9cLW1vdmU7CivjqawgPiB0b1wtYmVhdDsKK+OppCA+IHRvXC1vcGVuOwor46mjID4gdG9cLW1vdmU7CivjqaIgPiB0b1wtYmVhdDsKK+OplSA+IHRvXC1oYXVsOwor46mLID4gdG9cLWJlYXQ7CivjqLcgPiB0b1wtd2lwZTsKK+OosCA+IHRvXC10dXJuOwor46imID4gdG9cLWhvbGQ7CivjqKQgPiB0b1wtd2lwZTsKK++ooiA+IHNldmVyYWw7CivvqJ4gPiBmZWF0aGVyOwor76idID4gZXNzZW5jZTsKK+OoliA+IHRvXC1zdGFiOwor46iPID4gdG9cLWJlYXQ7CivjqIsgPiB0b1wtYmVhdDsKK++oiSA+IGRlc2NlbmQ7CivvqIYgPiB2aW9sZW50Owor46iGID4gdG9cLWtpbGw7CivjqIIgPiB0b1wtYmVhdDsKK+OnvyA+IHRvXC1idW1wOwor46e7ID4gYVwtdGhvcm47Civjp6sgPiB0b1wtaG9sZDsKK+OnqiA+IHRvXC1ydWluOwor46ekID4gdG9cLWp1bXA7Civjp6MgPiB0b1wtc3RvcDsKK+OnoSA+IHRvXC1tb3ZlOwor46efID4gdG9cLXdpcGU7Civjp50gPiB0b1wtdGFrZTsKK++nmyA+IHRvXC1sZWFkOwor46ecID4gdG9cLWhvbGQ7Civvp5ggPiBzdGF0dXRlOwor76eWID4gYmVcLWxvc3Q7Civjp5MgPiB0b1wtbGVhZDsKK+OnkiA+IHRvXC1iZWF0Owor46eRID4gdG9cLXdhdmU7Civjp5AgPiB0b1wtaG9sZDsKK+OniiA+IHRvXC1wdXNoOwor76eHID4gc3VybmFtZTsKK+OniCA+IHRvXC1wdWxsOwor46eHID4gdG9cLWhvbGQ7Civvp4MgPiBkaXN0YW50Owor46eEID4gdG9cLXRha2U7Civvp4AgPiB0b1wtYnVybjsKK+OmuSA+IGFcLXNwZWFyOwor46a1ID4gdG9cLWtpbGw7Civjpq0gPiB0b1wtcGl0eTsKK+OmrCA+IGFzaGFtZWQ7CivvpqggPiBjb21tYW5kOwor76amID4gYVwtYmxpbmQ7CivvpqIgPiB1cHJpZ2h0Owor46aeID4gZ3JpZXZlZDsKK++mlyA+IGNvbm5lY3Q7CivjppUgPiB0aG91Z2h0Owor76aJID4gc3VybmFtZTsKK++mgCA+IHN1cm5hbWU7Civvpb4gPiBtZWFzdXJlOwor46W9ID4gZmVlbGluZzsKK+OluSA+IHRvXC1tb3ZlOwor76WzID4gcGlja1wtdXA7Civjpa8gPiBjYXJlZnVsOwor76WsID4gc3RvcFwtdXA7CivjpaQgPiB0b1wtcGl0eTsKK++loSA+IHRvXC1sZWFkOwor76WdID4gcHJvbWlzZTsKK+OllSA+IHRvXC1waXR5Owor46WSID4gY29ycnVwdDsKK+OljyA+IGJhc2hmdWw7CivjpYwgPiBwcnVkZW50Owor76WKID4gcmFtcGFydDsKK++liSA+IHRodW5kZXI7CivjpYQgPiB0b1wtcGl0eTsKK+OkvyA+IHRvXC1sb3ZlOwor46S9ID4gZ3JpZXZlZDsKK++kuSA+IGZvb2xpc2g7CivjpLogPiBibHVycmVkOwor76S2ID4gY2FwdHVyZTsKK+OktiA+IGNvbmZ1c2U7CivvpLMgPiBjb3R0YWdlOwor76SwID4gY2FwdHVyZTsKK+OkrSA+IHVudGFtZWQ7CivjpKAgPiBncmlldmVkOwor76SdID4gcmFpbGluZzsKK++kjiA+IGxlcHJvc3k7CivjpIUgPiB0b1wtbG92ZTsKK++kgyA+IHN1cm5hbWU7CivjpIMgPiBqZWFsb3VzOwor46SCID4gYW54aW91czsKK+OjtyA+IHdhbGtpbmc7Civjo7YgPiB0b1wtd2FsazsKK+OjrCA+IHRvXC13YWxrOwor46OcID4gdG9cLXdhbGs7Civjo5sgPiB3YWxraW5nOwor46ODID4gdG9cLXNlbGw7Civjo4IgPiB0b1wtYmluZDsKK+OivCA+IGF3a3dhcmQ7CivjoqMgPiB0b1wtbGlmdDsKK+OinSA+IGNvdHRhZ2U7CivjopUgPiBoYXJtb255Owor46G4ID4gYVwtaG91c2U7CivjobAgPiBhXC1ob3VzZTsKK+OhqyA+IGFueGlvdXM7CivjoaggPiBhXC1sYWJlbDsKK+OhmCA+IHNjcmVlbnM7CivjoZMgPiBkcmF3ZXJzOwor46GCID4gcmVtYWluczsKK+OgrSA+IHRvXC1vcGVuOwor45+nID4gYVwtY2xpZmY7CivjnrogPiBhXC10cmliZTsKK+OeqyA+IHRvXC13YWxrOwor456nID4gdG9cLW1lZXQ7CivjnqQgPiB0b1wtaGVscDsKK+OeoSA+IHRvXC1vcGVuOwor456AID4gdG9cLWJ1bXA7CivjnbwgPiBjcm9va2VkOwor452xID4gYVwtZHJlYW07CivjnaIgPiBhXC1ob3VzZTsKK+OdgCA+IHRvXC1saWtlOwor45y+ID4gYVwtY2hpbGQ7CivjnKkgPiBqZWFsb3VzOwor45yTID4gd29tYW5seTsKK+OciSA+IHdvbWFubHk7CivjnIcgPiB1bmhhcHB5Owor45u/ID4gY3VubmluZzsKK+ObuyA+IHdvbWFubHk7Civjm68gPiB0b1wtc29hcjsKK+OblSA+IHdvbWFubHk7CivjmqIgPiBhXC1zbGF2ZTsKK+OZlCA+IGFcLWZlbmNlOwor45mQID4gdG9cLW1vdmU7CivjmY8gPiBjYXZlcm5zOwor45i4ID4gdG9cLWJ1cnk7CivjmLcgPiBtdWd3b3J0Owor45ipID4gdG9cLW1hdGU7CivjmJcgPiB3aGlzcGVyOwor45iVID4gdG9cLWNhbGw7CivjmIIgPiBhc2hhbWVkOwor45iBID4gdG9cLWNhbGw7Civjl70gPiBhblwtZWNobzsKK+OXsiA+IHRvXC1jYWxsOwor45exID4gdG9cLXN1Y2s7Civjl60gPiBhXC1zb3VuZDsKK+OXpCA+IGFzaGFtZWQ7Civjl40gPiB0b1wtZ25hdzsKK+OXgyA+IHRoZVwtbGlwOwor45a/ID4gYVwtc291bmQ7CivjlrsgPiB3aGlzcGVyOwor45a6ID4gdG9cLWJsb3c7Civjlq0gPiB0b1wtbGljazsKK+OWpSA+IHRvXC1zcGl0Owor45W3ID4gdG9cLWNhbGw7CivjlbEgPiB0b1wtYmFyazsKK+OVriA+IHRvXC1jaGV3Owor45WfID4gdG9cLXNpZ247CivjlZ4gPiBhXC1icnVzaDsKK+OVnCA+IGhpc3Rvcnk7CivjlL8gPiBhXC10YWxseTsKK+OUrSA+IGFcLXNwb29uOwor45ShID4gZ3JlYXRseTsKK+OUgiA+IHRvXC1wYXJlOwor45OyID4gdG9cLXBhcmU7Civjk7AgPiB0b1wtcml2ZTsKK+OTpSA+IHRvXC1raWxsOwor45OfID4gdG9cLXBlZWw7Civjk5AgPiB0b1wtcmFpbjsKK+OSvCA+IGF2ZXJhZ2U7CivjkrggPiB0b1wtb2JleTsKK+OStCA+IHRvXC1jb21lOwor45KmID4gcHVwcGV0czsKK+OSniA+IHZhbGlhbnQ7CivjkpUgPiB1bnlpZWxkOwor45KSID4gYVwtc2xhdmU7CivjkpEgPiBncm93XC11cDsKK+OSiSA+IGFsYXJtZWQ7CivjkbkgPiB0b1wtbWVldDsKK+ORkCA+IHRvXC1tb3ZlOwor45GFID4gdG9cLW1ha2U7CivjkYMgPiB0b1wtcHVsbDsKK+OQvCA+IHRvXC1zYXZlOwor45CuID4gdG9cLWhlbHA7CivjkIEgPiB0b1wtbGljazsKK+aYryA+IGluZGVlZDsKK+i/qyA+IGNvZXJjZTsKK+W/nCA+IHNob3VsZDsKK+W/mCA+IGZvcmdldDsKK+WbvSA+IG5hdGlvbjsKK+i/lCA+IHJldHVybjsKK+W/jSA+IGVuZHVyZTsKK+i/hCA+IGV4dGVuZDsKK+W/hSA+IHN1cmVseTsKK+WHuiA+IGdvXC1vdXQ7Civovr8gPiBmb2xsb3c7CivnnrwgPiBleWVsaWQ7CivlvpcgPiBvYnRhaW47CivovrcgPiBzbW9vdGg7CivlvrQgPiBzdW1tb247CivlvrMgPiB2aXJ0dWU7Civnnq0gPiBicmlnaHQ7CivlvqkgPiByZXR1cm47CivovpsgPiBiaXR0ZXI7CivlvpAgPiBzbG93bHk7CivlvowgPiBiZWhpbmQ7CivlvoogPiBsaW5nZXI7CivlvbEgPiBzaGFkb3c7CivkuosgPiBhZmZhaXI7CivovZ8gPiBydW1ibGU7CivlvYggPiBwZWxsZXQ7CivkuLsgPiBtYXN0ZXI7CivlvLcgPiBzdHJvbmc7CivlvJsgPiBsb29zZW47CivmsJEgPiBwZW9wbGU7CivnnIwgPiBjb3VudHk7CivnjrAgPiBhcHBlYXI7CivliIYgPiBkaXZpZGU7CivkupsgPiBsaXR0bGU7Civnm7ggPiBtdXR1YWw7Civlm54gPiByZXR1cm47CivnkIYgPiByZWFzb247CivmmI4gPiBicmlnaHQ7Civnm4ogPiBwcm9maXQ7Civor50gPiBzcGVlY2g7CivlkJEgPiB0b3dhcmQ7CivlrpogPiBkZWNpZGU7CivluqsgPiBhcm1vcnk7CivluqYgPiBkZWdyZWU7CivlupUgPiBib3R0b207CivmiZMgPiBzdHJpa2U7CivkvY0gPiB0aHJvbmU7Civluo8gPiBzZXJpZXM7CivlubwgPiBpbmZhbnQ7CivlubIgPiBvcHBvc2U7CivlhoUgPiBpbnNpZGU7CivnmaogPiBzcGFzbXM7CivliqAgPiBhZGRcLXRvOwor5YyWID4gY2hhbmdlOwor55mMID4gY2FuY2VyOwor5bi4ID4gY29tbW9uOwor6LiwID4gZXhjZWVkOwor5biCID4gbWFya2V0Owor5biwID4gcmV0dXJuOwor5omNID4gdGFsZW50Owor5L2PID4gcmVzaWRlOwor5ZGYID4gbWVtYmVyOwor5be7ID4gc2Nyb2xsOwor5oCnID4gbmF0dXJlOwor5oqlID4gcmVwb3J0Owor56WeID4gc3Bpcml0Owor5pWwID4gbnVtYmVyOwor6LehID4gc2VhcmNoOwor5Y6fID4gc291cmNlOwor5behID4gcGF0cm9sOwor5bedID4gc3RyZWFtOwor5bqUID4gc2hvdWxkOwor6LaKID4gZXhjZWVkOwor55aKID4gcmVwZWF0Owor57O7ID4gc3lzdGVtOwor55WzID4gcmVwZWF0Owor6LWrID4gYnJpZ2h0Owor5Y+KID4gZXh0ZW5kOwor5Yi2ID4gc3lzdGVtOwor55WgID4gZ2FyZGVuOwor6KejID4gbG9vc2VuOwor6K6wID4gcmVjb3JkOwor5p6XID4gZm9yZXN0Owor6LSUID4gc3Ryb25nOwor57ufID4gZ292ZXJuOwor5a2XID4gbGV0dGVyOwor5bO2ID4gaXNsYW5kOwor6LOqID4gbWF0dGVyOwor6K66ID4gZGViYXRlOwor6LKwID4gYm9ycm93Owor5oyHID4gZmluZ2VyOwor6LKhID4gd2VhbHRoOwor6IqxID4gZmxvd2VyOwor5bGkID4gc3RvcmV5Owor5p2hID4gY2xhdXNlOwor5Y+YID4gY2hhbmdlOwor6K+lID4gc2hvdWxkOwor5bGNID4gY29ycHNlOwor5LygID4gc3VtbW9uOwor5rK7ID4gZ292ZXJuOwor5YazID4gZGVjaWRlOwor5bGAID4gYnVyZWF1Owor5YqeID4gbWFuYWdlOwor6LC3ID4gdmFsbGV5Owor5Z+OID4gY2FzdGxlOwor54i2ID4gZmF0aGVyOwor5by6ID4gc3Ryb25nOwor5bCOID4gZGlyZWN0Owor5bCBID4gbGV0dGVyOwor54++ID4gYXBwZWFyOwor5a+nID4gcmVwb3NlOwor6buEID4geWVsbG93Owor5b63ID4gZXRoaWNzOwor5a6zID4gaW5qdXJlOwor5a6uID4gcGFsYWNlOwor5om+ID4gc2VhcmNoOwor5Y+LID4gZnJpZW5kOwor6K6KID4gY2hhbmdlOwor5pS5ID4gY2hhbmdlOwor5a6IID4gZGVmZW5kOwor6K6DID4gcHJhaXNlOwor6ZmFID4gYm9yZGVyOwor5Y2VID4gc2luZ2xlOwor5a+8ID4gZGlyZWN0Owor542yID4gb2J0YWluOwor5a2kID4gb3JwaGFuOwor5qChID4gc2Nob29sOwor542EID4gcHJpc29uOwor54y+ID4gY3JhZnR5Owor6KyZID4gaHVtYmxlOwor6KyOID4gcmlkZGxlOwor6ZqPID4gZm9sbG93Owor54u5ID4gbmFycm93Owor54utID4gbmFycm93Owor5q+NID4gbW90aGVyOwor54uZID4gYW5cLWFwZTsKK+irliA+IGRlYmF0ZTsKK+WboiA+IHNwaGVyZTsKK+eLgiA+IGluc2FuZTsKK+iqsiA+IGxlc3NvbjsKK+iLpiA+IGJpdHRlcjsKK+aLmyA+IGJlY2tvbjsKK+WFtCA+IHRocml2ZTsKK+ipsiA+IHNob3VsZDsKK+e6piA+IHRyZWF0eTsKK+ipsSA+IHNwZWVjaDsKK+ipqSA+IHBvZXRyeTsKK+eJoiA+IHByaXNvbjsKK+e7nSA+IHRvXC1jdXQ7CivpgIkgPiBjaG9vc2U7CivlpI0gPiByZXR1cm47CivmmJ8gPiBhXC1zdGFyOwor54i6ID4gZmF0aGVyOwor6Ki0ID4gYWNjdXNlOwor6KifID4gYWNjdXNlOwor5aaIID4gbW90aGVyOwor54ibID4gcm90dGVuOwor6KiYID4gcmVjb3JkOwor5raIID4gdmFuaXNoOwor5aiYID4gbW90aGVyOwor54etID4gY2FuZGxlOwor5aerID4gYmVhdXR5Owor5p2oID4gd2lsbG93Owor5piTID4gY2hhbmdlOwor5LilID4gc3RyaWN0Owor54aKID4gYVwtYmVhcjsKK+WmhCA+IGFic3VyZDsKK+e6qiA+IHJlY29yZDsKK+iLjyA+IHJldml2ZTsKK+etlCA+IGFuc3dlcjsKK+WlriA+IHN0cml2ZTsKK+eFqSA+IGJvdGhlcjsKK+ilpCA+IHJhZ2dlZDsKK+WHuyA+IHN0cmlrZTsKK+aciyA+IGZyaWVuZDsKK+S+myA+IHN1cHBseTsKK+WkriA+IGNlbnRlcjsKK+WIlyA+IGFcLWxpbmU7CivnhKYgPiBidXJuZWQ7CivniLcgPiBmYXRoZXI7CivpvpkgPiBkcmFnb247CivopJIgPiBwcmFpc2U7CivlpI8gPiBzdW1tZXI7CivlpIkgPiBjaGFuZ2U7CivmmKUgPiBzcHJpbmc7CivopIcgPiByZXBlYXQ7CivngbUgPiBzcGlyaXQ7Civoo6EgPiBpbnNpZGU7Civor4kgPiBhY2N1c2U7CivmgIEgPiBtYW5uZXI7Civoo48gPiBpbnNpZGU7CivotKggPiBtYXR0ZXI7CivoopYgPiBzbGVldmU7Civlm60gPiBnYXJkZW47CivooosgPiBwb2NrZXQ7Civlia8gPiBhc3Npc3Q7CivlpJ8gPiBlbm91Z2g7CivojrcgPiBvYnRhaW47Civor5cgPiBwb2V0cnk7CivooZcgPiBzdHJlZXQ7CivloLEgPiByZXBvcnQ7Civmv4AgPiBhcm91c2U7Civpk7YgPiBzaWx2ZXI7CivpmLUgPiBjb2x1bW47CivlsYIgPiBzdG9yZXk7Civkuq4gPiBicmlnaHQ7CivnroAgPiBzaW1wbGU7Civmr5IgPiBwb2lzb247CivlvZIgPiByZXR1cm47CivmjaIgPiBjaGFuZ2U7CivmuZYgPiBhXC1sYWtlOwor6J2JID4gY2ljYWRhOwor6L+9ID4gcHVyc3VlOwor6bysID4gd2Vhc2VsOwor57ucID4gZW5tZXNoOwor5rygID4gZGVzZXJ0Owor6JyYID4gc3BpZGVyOwor5ZyYID4gc3BoZXJlOwor5Y2gID4gZGl2aW5lOwor5ZyTID4gY2lyY2xlOwor5ZySID4gZ2FyZGVuOwor6LW2ID4gcHVyc3VlOwor5YWwID4gb3JjaGlkOwor5ZyLID4gbmF0aW9uOwor5ZyDID4gZ2FyZGVuOwor5rqQID4gc3ByaW5nOwor5ZujID4gc3BoZXJlOwor6Zi2ID4gc3RhaXJzOwor6JubID4gc3BpZGVyOwor6buZID4gc2lsZW50Owor5Ly4ID4gZXh0ZW5kOwor6buYID4gc2lsZW50Owor5L2bID4gYnVkZGhhOwor5Zq0ID4gc3RyaWN0Owor5oylID4gZGlyZWN0Owor5pWIID4gcmVzdWx0Owor5pS7ID4gYXR0YWNrOwor562WID4gc2NoZW1lOwor6ZiyID4gZGVmZW5kOwor6IKhID4gdGhpZ2hzOwor6JitID4gb3JjaGlkOwor6I6rID4gZG9cLW5vdDsKK+WYmCA+IGV4aGFsZTsKK+WOvyA+IGNvdW50eTsKK+iYhyA+IHJldml2ZTsKK+eqlyA+IHdpbmRvdzsKK+a3uyA+IGFwcGVuZDsKK+a3tyA+IHRvXC1taXg7Civpt7IgPiBjb25kb3I7CivljZogPiBnYW1ibGU7CivlvLkgPiBwZWxsZXQ7Civol6QgPiByYXR0YW47CivlnY8gPiByb3R0ZW47CivmmbogPiB3aXNkb207CivlspsgPiBpc2xhbmQ7CivmipcgPiByZXNpc3Q7CivllrAgPiB0b1wtZWF0Owor5ZauID4gc2luZ2xlOwor54i5ID4gZmF0aGVyOwor5ZanID4gbGl2ZWx5Owor5ZaJID4gdGhyb2F0Owor54i4ID4gZmF0aGVyOwor5rWaID4gZHJlZGdlOwor6YCDID4gZXNjYXBlOwor6aqCID4gYWNjdXNlOwor5ZS4ID4gcmVjaXRlOwor6Z2WID4gcGFjaWZ5Owor56eYID4gc2VjcmV0Owor6LSiID4gd2VhbHRoOwor5qyyID4gZGVzaXJlOwor5b6BID4gaW52YWRlOwor56eLID4gYXV0dW1uOwor5ZC4ID4gaW5oYWxlOwor6bOpID4gcGlnZW9uOwor5ZOhID4gbWVtYmVyOwor5oKyID4gc29ycm93Owor5rOJID4gc3ByaW5nOwor5qGlID4gYnJpZGdlOwor5YqyID4gc3Ryb25nOwor5ZK9ID4gdGhyb2F0Owor6JK7ID4gcnVzaGVzOwor5bqTID4gYXJtb3J5Owor5YCfID4gYm9ycm93Owor5rG6ID4gZGVjaWRlOwor6JGjID4gZGlyZWN0Owor6JGhID4gZ3JhcGVzOwor5rGaID4gZmlsdGh5Owor5o6nID4gYWNjdXNlOwor6IO4ID4gYnJlYXN0Owor6K++ID4gbGVzc29uOwor6YKuID4gcG9zdGFsOwor5ZCdID4gc3Rpbmd5Owor5qiqID4gYWNyb3NzOwor5YGlID4gc3Ryb25nOwor6JCOID4gd2l0aGVyOwor6JCEID4gZ3JhcGVzOwor5ZyGID4gY2lyY2xlOwor5Y23ID4gc2Nyb2xsOwor6I+rID4gY2VsZXJ5Owor5oupID4gc2VsZWN0Owor5oGoID4gaGF0cmVkOwor56u5ID4gYmFtYm9vOwor6I+TID4gZnJ1aXRzOwor5a6rID4gcGFsYWNlOwor5peXID4gYmFubmVyOwor5q67ID4gY2FzaW5nOwor5Y6zID4gc3RyaWN0Owor5q6YID4gaW5qdXJlOwor5q6LID4gaW5qdXJlOwor5q24ID4gcmV0dXJuOwor56izID4gc3RhYmxlOwor6L+5ID4gdHJhY2VzOwor6ZKIID4gbmVlZGxlOwor5pu/ID4gY2hhbmdlOwor5Y2RID4gaHVtYmxlOwor5oKEID4gc2lsZW50Owor5aWLID4gc3RyaXZlOwor5qu7ID4gY2hlcnJ5Owor5byDID4gcmVqZWN0Owor54OmID4gYm90aGVyOwor5oq1ID4gcmVzaXN0Owor56CBID4gbnVtYmVyOwor5YqxID4gc3RyaXZlOwor57SrID4gcHVycGxlOwor5ouUID4gdXByb290Owor6IqdID4gc2VzYW1lOwor5qKBID4gYnJpZGdlOwor6LWPID4gcmV3YXJkOwor5YqDID4gZGl2aWRlOwor5o+SID4gaW5zZXJ0Owor6amiID4gZG9ua2V5Owor5YasID4gd2ludGVyOwor5ompID4gZXhwYW5kOwor5qmYID4gb3JhbmdlOwor5qmLID4gYnJpZGdlOwor6YC8ID4gY29tcGVsOwor6ai3ID4gaGFyYXNzOwor5Yi5ID4gdGVtcGxlOwor6ZWcID4gbWlycm9yOwor5rGhID4gZmlsdGh5Owor5qiZID4gYVwtbWFyazsKK+eLsSA+IHByaXNvbjsKK+mokiA+IGhhcmFzczsKK+iIjCA+IHRvbmd1ZTsKK+ajriA+IGZvcmVzdDsKK+iIiCA+IHRocml2ZTsKK+anvSA+IHRyb3VnaDsKK+aAqCA+IGhhdHJlZDsKK+iHvCA+IG1vcnRhcjsKK+S8jyA+IGNyb3VjaDsKK+aEpCA+IHJlc2VudDsKK+S/hCA+IHN1ZGRlbjsKK+WHjSA+IGZyZWV6ZTsKK+anjCA+IGhhbW1lcjsKK+eojSA+IGxpdHRsZTsKK+exjSA+IHJlY29yZDsKK+S+tSA+IGludmFkZTsKK+mYuyA+IGltcGVkZTsKK+aFpyA+IGJyaWdodDsKK+mlkSA+IHN0YXJ2ZTsKK+aZgyA+IGJyaWdodDsKK+iFkSA+IGJvd2VsczsKK+eDgiA+IHJvdHRlbjsKK+WFjiA+IHJhYmJpdDsKK+iFiyA+IGFybXBpdDsKK+WwuCA+IGNvcnBzZTsKK+akvyA+IGZhdGhlcjsKK+WEmCA+IHV0bW9zdDsKK+W0hyA+IGVzdGVlbTsKK+mkkyA+IGh1bmdyeTsKK+akjiA+IGhhbW1lcjsKK+ajuiA+IGNvZmZpbjsKK+eyiSA+IHBvd2RlcjsKK+ebviA+IHNoaWVsZDsKK+mjoiA+IGh1bmdlcjsKK+i9sCA+IHJ1bWJsZTsKK+WluCA+IGNyYWZ0eTsKK+mCpiA+IG5hdGlvbjsKK+ajhCA+IHJlamVjdDsKK+mlvyA+IGh1bmdyeTsKK+aNlSA+IGFycmVzdDsKK+WCsyA+IHN1bW1vbjsKK+airyA+IGxhZGRlcjsKK+aMoyA+IHN0cml2ZTsKK+iBmCA+IGVuZ2FnZTsKK+ainSA+IGNsYXVzZTsKK+iAkCA+IGVuZHVyZTsKK+aigyA+IGFcLWNsdWI7CivpoasgPiBzaGl2ZXI7CivmoZwgPiBjaGVycnk7Civpl7cgPiBnbG9vbXk7CivpoZggPiBkZXNpcmU7CivmgpQgPiByZXBlbnQ7CivpgoAgPiBpbnZpdGU7CivpoqQgPiBzaGl2ZXI7CivpoKwgPiBjaGVla3M7CivpoKQgPiBjaGVla3M7CivmgqMgPiBzdWZmZXI7CivkuJAgPiBiZWdnYXI7Civmn7EgPiBwaWxsYXI7Civmn5ogPiBwb21lbG87Civnv4wgPiBicmlnaHQ7Civmn4QgPiBoYW5kbGU7Civkvq4gPiBpbnN1bHQ7Civpk5wgPiBjb3BwZXI7CivmnpUgPiBwaWxsb3c7CivnvbkgPiBzb3Jyb3c7CivnvbUgPiBhY2N1c2U7CivmnbUgPiBwZXN0bGU7CivmlbIgPiBzdHJpa2U7CivpnaEgPiBkaXZpZGU7Civmia8gPiByaXBcLXVwOwor6Ym0ID4gbWlycm9yOwor6LaLID4gaGFzdGVuOwor5L2QID4gYXNzaXN0Owor6YCKID4gaHVtYmxlOwor6Z2IID4gc3Bpcml0Owor5py0ID4gc2ltcGxlOwor5pytID4gbGV0dGVyOwor5LydID4gc3VtbW9uOwor5LyOID4gdGFsZW50Owor5LiyID4gc3RyaW5nOwor6ZyKID4gc3Bpcml0Owor6ZuyID4gY2xvdWRzOwor54aZID4gYnJpZ2h0Owor5bqZID4gdGVtcGxlOwor5LuPID4gYnVkZGhhOwor6ZuMID4gZmVtYWxlOwor6ZuHID4gZW1wbG95Owor6ZqoID4gZm9sbG93Owor6ZqbID4gYm9yZGVyOwor6ZqOID4gc3RhaXJzOwor6ZqFID4gY29ybmVyOwor6YW3ID4gc3Ryb25nOwor5LmzID4gYnJlYXN0Owor56ijID4gcmV2aXZlOwor6ZmjID4gY29sdW1uOwor57mVID4gcmVwYWlyOwor5pitID4gYnJpZ2h0Owor5qOJID4gY290dG9uOwor5pCcID4gc2VhcmNoOwor57ibID4gdG9cLXRpZTsKK+iwhSA+IGV4Y3VzZTsKK+eDmyA+IGNhbmRsZTsKK+WRiCA+IHN1Ym1pdDsKK+e3miA+IHRocmVhZDsKK+aLkyA+IGV4cGFuZDsKK+aVpiA+IGVzdGVlbTsKK+aVuCA+IG51bWJlcjsKK+aVtyA+IHNwcmVhZDsKK+e1sSA+IGdvdmVybjsKK+iEviA+IHNwbGVlbjsKK+e1oSA+IGVubWVzaDsKK+e0syA+IGdpcmRsZTsKK+m5sCA+IGZhbGNvbjsKK+e0hCA+IHRyZWF0eTsKK+e0gCA+IHJlY29yZDsKK+aEmiA+IHN0dXBpZDsKK+ezniA+IG1hbnVyZTsKK+eypyA+IHRvaWxldDsKK+aSgyA+IHN0cmlrZTsKK+mlpSA+IGh1bmdlcjsKK+mRkiA+IG1pcnJvcjsKK+mAuyA+IHBhdHJvbDsKK+ewoSA+IHNpbXBsZTsKK+mPoSA+IG1pcnJvcjsKK+aPmyA+IGNoYW5nZTsKK+aOoSA+IGdhdGhlcjsKK+W4lSA+IHR1cmJhbjsKK+WGuyA+IGZyZWV6ZTsKK+iwpiA+IGh1bWJsZTsKK+aNnCA+IHNlYXJjaDsKK+S4qyA+IGZvcmtlZDsKK+eFjCA+IGJyaWdodDsKK+aMvyA+IGluc2VydDsKK+aLkCA+IGtpZG5hcDsKK+iNkCA+IHJlcGVhdDsKK+WAqiA+IGZlZWJsZTsKK+mMkCA+IGdpbWxldDsKK+mqmiA+IGhhcmFzczsKK+WvniA+IHNpbGVudDsKK+evriA+IGJhc2tldDsKK+S+hCA+IG5lcGhldzsKK+aLmSA+IHN0dXBpZDsKK+WPiSA+IGNyb3RjaDsKK+aAliA+IHRlcnJvcjsKK+aKnCA+IHVwcm9vdDsKK+eqkyA+IHdpbmRvdzsKK+aKiSA+IGNob29zZTsKK+mKhSA+IGNvcHBlcjsKK+mKgCA+IHNpbHZlcjsKK+iwnCA+IHJpZGRsZTsKK+migSA+IGNvbmZlcjsKK+miiiA+IGNoZWVrczsKK+WSlSA+IG11bWJsZTsKK+iItSA+IHJ1ZGRlcjsKK+aDqSA+IHB1bmlzaDsKK+WSliA+IGNvZmZlZTsKK+mHnSA+IG5lZWRsZTsKK+aHiSA+IHNob3VsZDsKK+WwuSA+IGdvdmVybjsKK+aGpCA+IHJlc2VudDsKK+a3syA+IGhvbmVzdDsKK+eMtCA+IG1vbmtleTsKK+W8piA+IHN0cmluZzsKK+e8miA+IHRvXC10aWU7CivmhYsgPiBtYW5uZXI7CivmhYQgPiBzaGl2ZXI7CivpmYsgPiBuYXJyb3c7Civpg7UgPiBwb3N0YWw7CivnqoQgPiBuYXJyb3c7CivpqbQgPiBkb25rZXk7Civlo7MgPiBjYXNpbmc7CivpnIkgPiBtaWxkZXc7CivoiqYgPiBydXNoZXM7Civog7MgPiBhcm1waXQ7CivmgrwgPiBncmlldmU7CivmgrYgPiBnbG9vbXk7CivpgI0gPiByYW1ibGU7CivmgrQgPiBzdWZmZXI7CivogI0gPiBmcm9saWM7CivnsqogPiBtYW51cmU7CivmjYYgPiB0aWVcLXVwOwor6YG4ID4gY2hvb3NlOwor6YGcID4gaHVtYmxlOwor5YWUID4gcmFiYml0Owor6YGKID4gd2FuZGVyOwor6YCbID4gcmFtYmxlOwor5YyIID4gYnJlYXN0Owor6K69ID4gcmVjaXRlOwor5oujID4gY2hvb3NlOwor6IC/ID4gYnJpZ2h0Owor5bu/ID4gdHdlbnR5Owor6K+1ID4gcmVjaXRlOwor6IW7ID4gZ3JlYXN5Owor57yGID4gaGF3c2VyOwor6Z6RID4gdGF0YXJzOwor5rCTID4gcGVvcGxlOwor5oW3ID4gYXJkZW50Owor56+3ID4gYXduaW5nOwor6I2GID4gdGhvcm5zOwor6IaPID4gZ3JlYXNlOwor6Z6NID4gc2FkZGxlOwor6bigID4gcGlnZW9uOwor57yVID4gdGhyZWFkOwor552sID4gbm90aWNlOwor57ulID4gc29vdGhlOwor5rCnID4gb3h5Z2VuOwor5am3ID4gcHJldHR5Owor5aesID4gYmVhdXR5Owor5ZCtID4gdGhyb2F0Owor5Ye/ID4gY2hpc2VsOwor5o2CID4gcmVzaXN0Owor5berID4gd2l6YXJkOwor6Jm+ID4gc2hyaW1wOwor57uFID4gZ2lyZGxlOwor6ZW2ID4gaW5zZXJ0Owor6aKQID4gY2hlZWtzOwor5YigID4gdG9cLWN1dDsKK+iuvCA+IGFjY3VzZTsKK+S8tiA+IGxvbmVseTsKK+eCryA+IGJyaWdodDsKK+m4vSA+IHBpZ2VvbjsKK+a4nSA+IGNoYW5nZTsKK+akkiA+IHBlcHBlcjsKK+aPliA+IHNhbHV0ZTsKK+WGiSA+IHRlbmRlcjsKK+WSmSA+IHRocm9hdDsKK+i4sSA+IHN0cm9sbDsKK+eMrCA+IHZ1bGdhcjsKK+WxvyA+IGlzbGFuZDsKK+S/kCA+IHNtb290aDsKK+ikgiA+IGphY2tldDsKK+ezmSA+IGNvYXJzZTsKK+mXuCA+IHNsdWljZTsKK+mikyA+IHJ1aW5lZDsKK+WxiSA+IGRyYXdlcjsKK+iKuSA+IGNlbGVyeTsKK+mUpSA+IGdpbWxldDsKK+WIgSA+IHRyaWNreTsKK+abmSA+IGJyaWdodDsKK+a0vCA+IGhvbGxvdzsKK+eakyA+IGJyaWdodDsKK+iSnCA+IGdhcmxpYzsKK+eCsyA+IGJyaWdodDsKK+a4oyA+IHJlZnVzZTsKK+aFkSA+IGFmcmFpZDsKK+aosSA+IGNoZXJyeTsKK+W/jyA+IHJlZ3JldDsKK+eiviA+IHJvbGxlcjsKK+eWmSA+IHBpbXBsZTsKK+a8iSA+IGZpbHRlcjsKK+mapyA+IHR1bm5lbDsKK+mFpSA+IGJ1dHRlcjsKK+mSriA+IGJ1dHRvbjsKK+mamCA+IG5hcnJvdzsKK+a8sSA+IGdhcmdsZTsKK+eblCA+IGhlbG1ldDsKK+ejiyA+IHBvbGlzaDsKK+aDtCA+IGFmcmFpZDsKK+iViSA+IGJhbmFuYTsKK+aDiyA+IHJlZ3JldDsKK+eXsCA+IHBobGVnbTsKK+e+gSA+IGhhbHRlcjsKK+ivjyA+IGRlY3JlZTsKK+mdtiA+IHRhcmdldDsKK+mFnSA+IGxpcXVvcjsKK+afrCA+IGxldHRlcjsKK+S6tSA+IHNsaWdodDsKK+iygiA+IG1hcnRlbjsKK+iBhiA+IGxpc3RlbjsKK+aviyA+IGRvXC1ub3Q7Civpn6wgPiBzaGVhdGg7CivpuYogPiBtYWdwaWU7CivmlZYgPiByYW1ibGU7CivohrogPiBicmVhc3Q7CivmgpogPiBhZnJhaWQ7CivljYUgPiB0aGlydHk7CivlvrUgPiBzdW1tb247CivnorMgPiBjYXJib247Civmh7UgPiBzdHVwaWQ7CivpuasgPiBjb25kb3I7CivnoasgPiBzdWxmdXI7CivouJ4gPiBjcm91Y2g7CivplbAgPiBzaWNrbGU7Civmto4gPiBzYWxpdmE7Civlo5UgPiB0cmVuY2g7CivplJogPiBhbmNob3I7CivpkqAgPiBzb2RpdW07Civnnb8gPiBzaHJld2Q7CivojrogPiBvcmlvbGU7Civom4ogPiBwb2lzb247Civng6ggPiBicmlnaHQ7Civog68gPiBwZWx2aXM7Civot7sgPiBhc2NlbmQ7Civps5YgPiB0dXJ0bGU7CivohbwgPiBtb2Rlc3Q7CivmqZkgPiBvcmFuZ2U7CivkuJ4gPiBhc3Npc3Q7CivlqJMgPiBjb21wbHk7CivliI4gPiBiZWhlYWQ7CivouZkgPiB1cmdlbnQ7Civog5ogPiBlbWJyeW87CivojZQgPiBsaWNoZWU7Civpk78gPiBzdHJpa2U7CivplLUgPiB0aW5rbGU7CivojKcgPiBjb2Nvb247Civon5IgPiBweXRob247CivopLQgPiByYWdnZWQ7CivpuYMgPiBjdWNrb287CivnjKUgPiB2dWxnYXI7CivnjZcgPiB1bnJ1bHk7Civokq8gPiBhXC1ydXNoOwor5rKPID4gaW5mdXNlOwor5bOqID4gdmFsbGV5Owor5ZqPID4gc25lZXplOwor56C+ID4gZ3JhdmVsOwor6aaBID4gaHVuZ3J5Owor5L2fID4gYVwtbmFtZTsKK+iMnCA+IG1hZGRlcjsKK+aJiCA+IGVzY29ydDsKK+WSmyA+IGVuam9pbjsKK+azlyA+IG11Y291czsKK+iDhCA+IGhlbG1ldDsKK+mUuSA+IHNob3ZlbDsKK+m5lyA+IG9zcHJleTsKK+WEoSA+IHB1cHBldDsKK+eaiCA+IGZvbGxvdzsKK+iegiA+IG1hbnRpczsKK+iLkyA+IGZ1bmd1czsKK+WqmyA+IGJlYXV0eTsKK+eutCA+IG5lZWRsZTsKK+WPtSA+IGNhbm5vdDsKK+S7gyA+IGxvbmVseTsKK+adniA+IHdpbGxvdzsKK+WvriA+IHNoYW50eTsKK+e8riA+IHJlcGFpcjsKK+eKtyA+IGZpZXJjZTsKK+aysSA+IHJpdmVyczsKK+WOqSA+IHN0YWJsZTsKK+eWoSA+IHVsY2VyczsKK+WekyA+IGJvcmRlcjsKK+W+lSA+IGluZHVjZTsKK+angSA+IHdpdGhlcjsKK+mBtCA+IHNlbGVjdDsKK+WcuyA+IGJvcmRlcjsKK+m+iiA+IG5hcnJvdzsKK+m+jCA+IG5hcnJvdzsKK+mBqCA+IHJhbWJsZTsKK+mqmyA+IGdhbGxvcDsKK+W+iSA+IHdvbmRlcjsKK+iwqiA+IGNoYXJnZTsKK+S/miA+IHJ1c3RpYzsKK+mUqCA+IHNob3ZlbDsKK+mUgyA+IHBvbGlzaDsKK+S/qiA+IHNwb3VzZTsKK+mUsiA+IHNpY2tsZTsKK+elmiA+IHRocm9uZTsKK+iHviA+IG1vbWVudDsKK+mBkiA+IHN0cm9uZzsKK+WbuSA+IHByaXNvbjsKK+WstCA+IHRvXC13aW47Civng6kgPiByYWdvdXQ7CivlnIQgPiBwcmlzb247CivonqsgPiBwb2lzb247Civpk6QgPiBpbmdvdHM7CivonrMgPiBtYW50aXM7CivojIEgPiBzcHJvdXQ7CivoiKIgPiBzYW1wYW47Civoir4gPiBmbG93ZXI7Civni7IgPiBtb25rZXk7CivnopwgPiBncml0dHk7Civlg60gPiBhc3N1bWU7CivnopggPiBpb2RpbmU7Civng68gPiBhbGtlbmU7Civlm78gPiBwZW5cLXVwOwor5ZurID4gZW50aXJlOwor6KShID4gZ2lyZGxlOwor6ZWNID4gbmlja2VsOwor54WcID4gYnJpZ2h0Owor5qmQID4gYVwtc2FjazsKK+adtyA+IGxvcXVhdDsKK+aBuSA+IGZlZWJsZTsKK+W9gCA+IGVub3VnaDsKK+iBkiA+IGNsYW1vcjsKK+e+ryA+IHdldGhlcjsKK+eysiA+IHBvbGlzaDsKK+aehyA+IGxvcXVhdDsKK+enoyA+IGZvZGRlcjsKK+aovSA+IGdvYmxldDsKK+aluSA+IGNvbHVtbjsKK+eEliA+IHNpbW1lcjsKK+edkSA+IGV5ZWxpZDsKK+i9syA+IHB1bGxleTsKK+aumiA+IHV0bW9zdDsKK+mVrSA+IHJhZGl1bTsKK+auhCA+IHRvXC1lbmQ7Civor7AgPiBpbmZvcm07CivpuYQgPiB0YXJnZXQ7CivojoUgPiBhdHRlbmQ7CivosJ8gPiBzY2hlbWU7CivorqsgPiBmaW5pc2g7Civnj7IgPiBicmlnaHQ7Civmt6wgPiB0ZW1wZXI7CivlmKwgPiB0b1wtbGFwOwor5L22ID4gc3Ryb25nOwor5pmUID4gYnJpZ2h0Owor6IibID4gb3Bwb3NlOwor54O3ID4gYWxrYW5lOwor6JuOID4gb3lzdGVyOwor54SxID4gZmxhbWVzOwor6JylID4gbGl6YXJkOwor5ZycID4gY2lyY2xlOwor6Jy0ID4gbGl6YXJkOwor6JG6ID4gdGhhdGNoOwor5oiGID4gc3R1cGlkOwor5ay3ID4gbW90aGVyOwor5oG9ID4gZGV2aXNlOwor6JO/ID4gY2xvdmVyOwor55iMID4gc2V2ZXJlOwor5ZaxID4gZ3JhbW1lOwor6ZK0ID4gY29iYWx0Owor5bKZID4gaXNsYW5kOwor6LKJID4gYmFkZ2VyOwor57mHID4gcmVhc29uOwor6JyJID4gbWF5Zmx5Owor55aWID4gcGltcGxlOwor57q+ID4gbG9vc2VuOwor6bKRID4gc2FsbW9uOwor5aiIID4gbG92ZWx5Owor6I2oID4gbmV0dGxlOwor56umID4gcmV2ZXJlOwor54uSID4gYmFib29uOwor5pKEID4gb3Bwb3NlOwor6Ji8ID4gbWlsbGV0Owor6Iy0ID4gZmVubmVsOwor6bKmID4gbWlubm93Owor5riMID4gc3RyYWluOwor6ZiaID4gZ2xhbmNlOwor6IucID4gY2xvdmVyOwor5YGsID4gdXJnZW50Owor54+QID4gZW5hbWVsOwor6Z2bID4gaW5kaWdvOwor6bunID4gYVwtZGFyazsKK+eihyA+IGFuY2hvcjsKK+igkyA+IG1pZGdlczsKK+apvCA+IGNpdHJ1czsKK+iVniA+IGxpdHRsZTsKK+WcryA+IGJyaWRnZTsKK+mtjSA+IGRlbW9uczsKK+e/iiA+IGZseWluZzsKK+mVjyA+IGRpc3RpbDsKK+eikyA+IHBlc3RsZTsKK+iDvCA+IGNhbGx1czsKK+aMiCA+IGFzc2lzdDsKK+eKjyA+IHlha1wtb3g7CivmgpsgPiByZXBlbnQ7Civli5YgPiBlbmpvaW47CivnsYAgPiByZWNpdGU7CivnopogPiBzdWJ1cmI7Civoha0gPiBwYWxhdGU7Civps58gPiBiYXJiZWw7Civpm44gPiBvc3ByZXk7CivmroIgPiB0b1wtZGllOwor562aID4gd2lja2VyOwor55adID4gaGVybmlhOwor6aqAID4gYW5cLW9sZDsKK+iSlyA+IFwoaGVyYlwpOwor6JG4ID4gYWZyYWlkOwor6I+fID4gZG9kZGVyOwor6ZmJID4gZGVmaWxlOwor562yID4gYmFza2V0Owor55agID4gYVwtc29yZTsKK+eVmyA+IGJvcmRlcjsKK+aXsCA+IHN1bnNldDsKK+iKqiA+IGNlbGVyeTsKK+iwliA+IGZvcmdldDsKK+aViSA+IHBhY2lmeTsKK+iBjSA+IGVhcndheDsKK+mUhyA+IG9zbWl1bTsKK+eDgCA+IHNpbW1lcjsKK+WppyA+IG1vZGVzdDsKK+iPmCA+IGNlbGVyeTsKK+mSoSA+IGJhcml1bTsKK+idoyA+IG1heWZseTsKK+iatSA+IG95c3RlcjsKK+iluyA+IGFcLWxvb3A7Civpk5IgPiBlcmJpdW07Civpk4ggPiBjZXJpdW07CivmpLQgPiBwb3BsYXI7CivlrLIgPiBmcm9saWM7Civoi6EgPiBiYXJsZXk7CivoiIQgPiBhXC1zaG9lOwor6J2+ID4gbGl6YXJkOwor6JypID4gY2ljYWRhOwor6birID4gdGhydXNoOwor6ZSUID4gY3VyaXVtOwor6ZOfID4gaW5kaXVtOwor55yNID4gc3Vua2VuOwor54mWID4gd2luZG93Owor5qaHID4gY29mZmluOwor5qG3ID4gcmFmdGVyOwor5bmeID4gdHVyYmFuOwor5bi7ID4gdHVyYmFuOwor5ZyJID4gc3RhYmxlOwor5pGFID4gc3ByZWFkOwor6IuEID4gYmVuenlsOwor6ZmUID4gYVwtc3RlcDsKK+WIvyA+IHRvXC1jdXQ7CivpqrYgPiBjb2NjeXg7CivpsrsgPiBtdWxsZXQ7CivonqggPiBpbnNlY3Q7CivombwgPiBhXC1mbGVhOwor55iVID4gYXN0aG1hOwor6ZWYID4gdHJvd2VsOwor56OZID4gcm9sbGVyOwor6IOCID4gYXJzaW5lOwor6KeLID4gd2l6YXJkOwor6JOlID4gcG9saXNoOwor6I+UID4gdHVybmlwOwor5LuhID4gc3Ryb25nOwor6b6eID4gdHVydGxlOwor6b6dID4gYXV0dW1uOwor6b6NID4gZHJhZ29uOwor6b23ID4gbmFycm93Owor6b22ID4gcGFsYXRlOwor6b21ID4gdW5ldmVuOwor6b2qID4gbmFycm93Owor6byrID4gbWFybW90Owor6byqID4gd2Vhc2VsOwor6byUID4gYVwtZHJ1bTsKK+m8hSA+IHNwaWRlcjsKK+m7jCA+IHNjaG9vbDsKK+m7iSA+IHNjaG9vbDsKK+m7iCA+IHllbGxvdzsKK+m7gyA+IHllbGxvdzsKK+m6sCA+IGJhcmxleTsKK+m6hCA+IGNvYXJzZTsKK+m5qCA+IGFudGh1czsKK+m3miA+IGFudGh1czsKK+m3hyA+IGNoaWNrczsKK+m2vSA+IGFcLWhhd2s7CivptrggPiBzaXNraW47Civptq8gPiBvcmlvbGU7CivptqwgPiBvcmlvbGU7CivptqsgPiB0aHJ1c2g7CivptpogPiBvc3ByZXk7CivptoogPiBvcmlvbGU7CivptocgPiB0aHJ1c2g7CivptbsgPiBwaWdlb247CivptbIgPiBtYWdwaWU7CivptaAgPiB0YXJnZXQ7CivptZEgPiBjdWNrb287CivptYAgPiBob29wb2U7CivptL8gPiBwaWdlb247CivptKwgPiBvcmlvbGU7CivptKIgPiBcKGR1Y2tcKTsKK+m0gyA+IHNocmlrZTsKK+mxkiA+IGJhcmJlbDsKK+mxjiA+IFwoZmlzaFwpOwor6bGJID4gdHVydGxlOwor6bGGID4gcG91bHBlOwor6bC3ID4gbWlubm93Owor6bCVID4gc2hyaW1wOwor6a+UID4gbXVsbGV0Owor6a6tID4gc2FsbW9uOwor6a21ID4gc2hyaW1wOwor6amrID4gaG9yc2VzOwor6aikID4gbGl2ZWx5Owor6aiWID4gZ2FsbG9wOwor6aiDID4gc3R1cGlkOwor6aehID4gYWNjdXNlOwor6aeYID4gYW5cLW9sZDsKK+mnkyA+IGdhbGxvcDsKK+mngyA+IGdhbGxvcDsKK+mmvyA+IGFuXC1hc3M7CivppKQgPiBpbmNpdGU7CivppJIgPiBodW5ncnk7CivpoZwgPiBob25lc3Q7CivpoZIgPiBzb2xlbW47CivpoZEgPiB5ZWxsb3c7CivpoL0gPiBydWluZWQ7CivpoLkgPiBydWluZWQ7CivpoLAgPiBjaGVla3M7CivpoJ4gPiBicmlkZ2U7CivpoJIgPiBjb25mZXI7CivpoIkgPiBjaGVla3M7Civpn5wgPiBzaGVhdGg7Civpn4MgPiB0YXRhcnM7Civpnp4gPiBzaGVhdGg7CivpnpogPiBicmlkbGU7Civpna4gPiBicmlkbGU7Civpm4IgPiBcKGJpcmRcKTsKK+mauyA+IHNpbmdsZTsKK+mZrCA+IGNvcm5lcjsKK+mZnCA+IG5hcnJvdzsKK+mZmCA+IGRlZmlsZTsKK+mXniA+IGdsYW5jZTsKK+mXiSA+IGN1cnZlZDsKK+mWmCA+IHNsdWljZTsKK+mVoSA+IGRhZ2dlcjsKK+mTryA+IGNlc2l1bTsKK+mRvyA+IGNoaXNlbDsKK+mRsiA+IGluc2VydDsKK+mRniA+IHNvbGRlcjsKK+mRkSA+IG1pcnJvcjsKK+mRgCA+IGlvbml1bTsKK+mQsyA+IHJhZGl1bTsKK+mQriA+IHNpY2tsZTsKK+mQnSA+IGFcLXBpY2s7CivpkJQgPiBkYWdnZXI7Civpj50gPiB0cm93ZWw7Civpj5ggPiB0aW5rbGU7Civpj5cgPiBzdHJpa2U7CivpjrMgPiBuaWNrZWw7CivpjqYgPiBkaXN0aWw7CivpjqMgPiBwb2xpc2g7CivpjpogPiBoYW1tZXI7CivpjpIgPiB0b1wtaG9lOwor6Y6MID4gc2lja2xlOwor6Y6FID4gdG9cLXNhdzsKK+mNvCA+IG5lZWRsZTsKK+mNrCA+IHNob3ZlbDsKK+mNqyA+IHNob3ZlbDsKK+mNpSA+IHNpY2tsZTsKK+mNoCA+IHdlYXBvbjsKK+mMqSA+IHZlc3NlbDsKK+mMqCA+IGFuY2hvcjsKK+mLqCA+IG9zbWl1bTsKK+mLpiA+IGN1cml1bTsKK+mLmSA+IG1pc2ZpdDsKK+mLjCA+IGluZ290czsKK+mLhyA+IGJhcml1bTsKK+mLhSA+IHppbmN1bTsKK+mKtiA+IGNoaXNlbDsKK+mKsiA+IHNvbGRlcjsKK+mKqyA+IGNlc2l1bTsKK+mKpiA+IGluZGl1bTsKK+mJuiA+IGVyYml1bTsKK+mJpSA+IG5lZWRsZTsKK+mItyA+IGNvYmFsdDsKK+mIsCA+IGNlcml1bTsKK+mIlSA+IGJ1dHRvbjsKK+mIiSA+IHNvZGl1bTsKK+mHrCA+IHNvbGRlcjsKK+mHpiA+IGJ1dHRvbjsKK+mHkCA+IG1hbmFnZTsKK+mHgyA+IHN0cmFpbjsKK+mGniA+IGxpcXVvcjsKK+mGliA+IGxpcXVvcjsKK+mFviA+IHN0cmFpbjsKK+mFtCA+IGxlYXZlbjsKK+mEiyA+IGNvdW50eTsKK+mCjyA+IHBhdHJvbDsKK+mAsCA+IHdhbmRlcjsKK+mApSA+IHJldHVybjsKK+mAjiA+IHN0cm9uZzsKK+mAjCA+IHBsZWFzZTsKK+i/ryA+IGVzY2FwZTsKK+i/jSA+IGZhbHRlcjsKK+i/iyA+IHRyYXZlbDsKK+i+pyA+IG1hbmFnZTsKK+i+piA+IG1hbmFnZTsKK+i+oiA+IGJpdHRlcjsKK+i9pCA+IHB1bGxleTsKK+i9nCA+IGhlYXJzZTsKK+i9gCA+IGhlYXJzZTsKK+i8gCA+IGhlYXJzZTsKK+i7oyA+IHJ1bWJsZTsKK+i6pyA+IHNhbmRhbDsKK+i6iyA+IGFzY2VuZDsKK+i5uyA+IHN0cm9uZzsKK+i5nSA+IHNhbmRhbDsKK+i5kyA+IHN0cm9sbDsKK+i4oSA+IGN1cmxlZDsKK+i3pyA+IGNyb3VjaDsKK+i2qyA+IG5pbWJsZTsKK+i2qCA+IGhhc3RlbjsKK+i2lSA+IHB1cnN1ZTsKK+i0syA+IGJvcnJvdzsKK+izniA+IHJld2FyZDsKK+iyrSA+IG1hdHRlcjsKK+iyqiA+IGdyZWVkeTsKK+iynyA+IG1lbWJlcjsKK+iymyA+IGJhZGdlcjsKK+ixuyA+IHByaXNvbjsKK+iwvyA+IHZhbGxleTsKK+iumiA+IHByYWlzZTsKK+iugSA+IHB1bmlzaDsKK+itnyA+IGNsYW1vcjsKK+itjSA+IGFuc3dlcjsKK+ithiA+IHNjcmVhbTsKK+isqyA+IGNoYXJnZTsKK+isqCA+IHNjaGVtZTsKK+irvCA+IGZvcmdldDsKK+irtyA+IHJlY2l0ZTsKK+irtSA+IG11dHRlcjsKK+irkiA+IGV4Y3VzZTsKK+iqpiA+IHJlY2l0ZTsKK+iqpSA+IGluZm9ybTsKK+ipuyA+IG9yZGVyczsKK+iplyA+IHRvXC1zcHk7CivoqZQgPiBkZWNyZWU7CivoqJYgPiBmaW5pc2g7Civop7wgPiBidWNrbGU7Civop6kgPiBzdHJvbmc7Civop6cgPiBsb29zZW47Civop5UgPiBjb2Fyc2U7CivoprAgPiB0b1wtc3B5Owor6KahID4gd2l6YXJkOwor6KaKID4gaGFsdGVyOwor6KWuID4gY29sbGFyOwor6KWLID4gY29sbGFyOwor6KSmID4gc3R1cGlkOwor6KSPID4gc2xlZXZlOwor6KSOID4gc2xlZXZlOwor6KKaID4gZ3JlYXZlOwor6KCxID4gcG9pc29uOwor6KCpID4gYVwtdG9hZDsKK+igoyA+IG95c3RlcjsKK+igmSA+IG95c3RlcjsKK+iglCA+IG95c3RlcjsKK+igkSA+IGxpemFyZDsKK+igjiA+IHB5dGhvbjsKK+iggSA+IGxhcnZhZTsKK+iftyA+IG1hbnRpczsKK+ifrCA+IGNpY2FkYTsKK+ifnCA+IGluc2VjdDsKK+idpiA+IHNocmltcDsKK+iciyA+IG1hbnRpczsKK+ibryA+IHNocmltcDsKK+iboyA+IGJlZXRsZTsKK+ibjCA+IGNyaWNrZTsKK+iZqSA+IGZyaWdodDsKK+iZliA+IHRvXC1jcnk7CivomKQgPiBmbG93ZXI7CivomIYgPiBydXNoZXM7Civol5ggPiBtYWRkZXI7Civolr8gPiBmbG93ZXI7CivolpcgPiBnYXJkZW47CivolpEgPiBnaW5nZXI7CivolYYgPiBmaW5pc2g7CivolYIgPiBzZXNhbWU7CivolYEgPiBuZXR0bGU7CivolJkgPiBcKGhlcmJcKTsKK+iUlCA+IHJhZGlzaDsKK+iUgiA+IGJhc2tldDsKK+iUgCA+IHNjcmVlbjsKK+iTmiA+IG94YWxpYzsKK+iSjiA+IHBpbmFuZTsKK+iShyA+IGZpbmlzaDsKK+iRgSA+IGdpbmdlcjsKK+iQhSA+IHNwcmluZzsKK+iPhiA+IGp1bmdsZTsKK+iOtSA+IGRvZGRlcjsKK+iNiiA+IHRob3JuczsKK+iNgSA+IGNlbGVyeTsKK+iMpiA+IHRob3JuczsKK+iMoiA+IHNlZGdlczsKK+iLqiA+IGJyaWdodDsKK+iLoiA+IGJhcmxleTsKK+iKpCA+IGhvbGxvdzsKK+iJoiA+IGFcLW1hc3Q7CivoiKYgPiBydWRkZXI7CivoiIMgPiBhXC1zaG9lOwor6IeEID4gcGFsYXRlOwor6IapID4gZ3JlYXN5Owor6IajID4gdmFnaW5hOwor6IaVID4gaG9sbG93Owor6IWvID4gc3Ryb25nOwor6IWfID4gdmFnaW5hOwor6IWBID4gY2FsbHVzOwor6IS3ID4gdG9uZ3VlOwor6IS1ID4gdGhpZ2hzOwor6ISnID4gcmVkdWNlOwor6IO5ID4gY29va2VkOwor6IO3ID4gYnJlYXN0Owor6IKnID4gZW1icnlvOwor6IKQID4gYXJtcGl0Owor6IG5ID4gZWFyd2F4Owor6ICkID4gcGxvdWdoOwor5761ID4gc3Bpcml0Owor576IID4gaGFsdGVyOwor572rID4gaGluZGVyOwor572lID4gaW1wZXRlOwor572jID4gaGluZGVyOwor57qpID4gY290dG9uOwor57qcID4gaGF3c2VyOwor57qUID4gdGFsZW50Owor57qKID4gY290dG9uOwor57mtID4gY29jb29uOwor57mrID4gYXR0YWNoOwor57moID4gYVwta25vdDsKK+e5iyA+IGF0dGFjaDsKK+e4tyA+IHRocmVhZDsKK+e4oyA+IGNvdW50eTsKK+e4oSA+IG1hdHRlcjsKK+e4hiA+IGFcLXJvcGU7Civnt6ogPiBhXC1yb3BlOwor57aPID4gc29vdGhlOwor57aFID4gdGhyZWFkOwor57W/ID4gdXJnZW50Owor57WaID4gYVwtcm9wZTsKK+e0siA+IGJyaWRsZTsKK+e0qSA+IHRvXC1zZXc7CivntJ8gPiBhXC1zYXNoOwor57SYID4gc3RyaW5nOwor57STID4gbG9vc2VuOwor57SDID4gYVwtY29yZDsKK+ezqCA+IHN0YXJjaDsKK+ezoSA+IHN0YXJjaDsKK+exsiA+IGFwcGVhbDsKK+exmiA+IGJhbWJvbzsKK+exgyA+IGJhc2tldDsKK+ewnCA+IGJhbWJvbzsKK+ewiSA+IGRlcHV0eTsKK+evsyA+IHdpY2tlcjsKK+evpSA+IGJ1bGdsZTsKK+evnCA+IGJhbWJvbzsKK+eumSA+IHF1aXZlcjsKK+essiA+IGJhc2tldDsKK+ernCA+IGRyYWdvbjsKK+eriSA+IGFcLWhvbGU7CivnqqogPiBob2xsb3c7CivnqpQgPiBjb3JuZXI7CivnqakgPiBzdGFibGU7CivnqaggPiBydWluZWQ7CivnqYwgPiByZXZpdmU7CivnqYggPiBtaWxsZXQ7CivnqJwgPiBjb3JuZXI7Civnp6AgPiBtaWxsZXQ7CivnpqYgPiBkZWZlbmQ7CivnpY8gPiBzaHJpbmU7CivnpKsgPiBncmF2ZWw7Civno6MgPiBncml0dHk7CivnorwgPiBudW1iZXI7Civnob4gPiB3ZWlnaHQ7CivnoY0gPiBzdHJpa2U7Civnn7QgPiBhbmNob3I7Civnn4cgPiBzdHVwaWQ7CivnnrcgPiB0b1wtc3B5Owor552qID4gc3B5XC1vbjsKK+edhiA+IGJyaWdodDsKK+ecviA+IG1hc3NlczsKK+ebqSA+IGNhbGx1czsKK+eapSA+IGJyaWdodDsKK+eaoSA+IGJyaWdodDsKK+eaniA+IGJyaWdodDsKK+eagCA+IGtlcm5lbDsKK+eZpCA+IHBpbXBsZTsKK+eZmCA+IGFcLXNvcmU7CivnmI0gPiB1bGNlcnM7Civnl7sgPiBzdWZmZXI7Civnl5ogPiBhc3RobWE7CivnlokgPiByZXBlYXQ7CivnloMgPiBoYW1sZXQ7CivnloIgPiByZXBlYXQ7Civnlb0gPiBncm91bmQ7Civnla8gPiBydXN0aWM7CivnlZ8gPiBwbG91Z2g7CivnkL8gPiBicmlnaHQ7CivnkLogPiBlbmFtZWw7Civnj5QgPiBcKGphZGVcKTsKK+eOkyA+IHBlYXJseTsKK+eNtyA+IGZpZXJjZTsKK+eNiSA+IGp1bmdsZTsKK+eMuyA+IG1vbmtleTsKK+eMuiA+IGphY2thbDsKK+eMkyA+IG1vbmtleTsKK+eLpSA+IGZvbGxvdzsKK+eKuiA+IGFuaW1hbDsKK+eJlSA+IHdpbmRvdzsKK+eJkyA+IHRhYmxldDsKK+eJkCA+IHNsdWljZTsKK+eIpSA+IHNpbW1lcjsKK+eImiA+IGJyaWdodDsKK+eHtCA+IHJhZ291dDsKK+eHoSA+IGJyaWdodDsKK+eHnCA+IHNpbW1lcjsKK+eHiyA+IHNjb3JjaDsKK+eHgSA+IGJyaWdodDsKK+eGsiA+IGJyaWdodDsKK+eGiCA+IGJyaWdodDsKK+eFlSA+IGJyaWdodDsKK+eFgyA+IHJlbW92ZTsKK+eFgSA+IGhlYXJ0aDsKK+eEuyA+IGJyZWF0aDsKK+eEtCA+IGJyaWdodDsKK+eEoCA+IHRlbXBlcjsKK+eDuiA+IGJyaWdodDsKK+eDsSA+IGJyaWdodDsKK+eCgSA+IGJyZWF0aDsKK+eAkiA+IGNvYXJzZTsKK+eAjCA+IHBsZW50eTsKK+a/tSA+IGFcLWJhbms7Civmv6wgPiBkcmVkZ2U7CivmvrwgPiBibGVhY2g7CivmvaggPiBnYXRoZXI7CivmvYAgPiBnYXRoZXI7CivmvKYgPiBzYWxpdmE7CivmuKggPiBhXC1jb3ZlOwor5relID4gc3RyYWluOwor5refID4gdHVyYmlkOwor5rSfID4gc25pdmVsOwor5rOtID4gYVwtcmFmdDsKK+axmSA+IGZpbHRoeTsKK+awvyA+IHNwcmluZzsKK+awqyA+IGFtb25pYTsKK+auvCA+IGNhc2luZzsKK+auqyA+IHV0bW9zdDsKK+asuyA+IHN1ZGRlbjsKK+askSA+IGdhdGhlcjsKK+arrCA+IGNvZmZpbjsKK+arniA+IGNpdHJ1czsKK+arnCA+IHF1aXZlcjsKK+apsCA+IGFcLXNwYXI7CivmqasgPiBhY3Jvc3M7CivmqaQgPiBzdGFtZW47CivmqZwgPiBhXC1wb3N0Owor5qmVID4gYVwtcHJvcDsKK+aovyA+IGNvZmZpbjsKK+aouCA+IHNpbXBsZTsKK+aosiA+IGp1anViZTsKK+aokSA+IGJyaWRnZTsKK+anpSA+IGNvZmZpbjsKK+amsiA+IHBpbGxhcjsKK+amsSA+IHJhZnRlcjsKK+ampSA+IHNjcmVlbjsKK+amhSA+IHBpbGxhcjsKK+alryA+IHNoaWVsZDsKK+alrCA+IHRhYmxldDsKK+aloiA+IHRpbmRlcjsKK+almyA+IGNvYXJzZTsKK+aliiA+IHdpbGxvdzsKK+akpyA+IGd1dHRlcjsKK+akkyA+IHN0cmlrZTsKK+ajnCA+IGJyYW5jaDsKK+ajhSA+IGhhbmRsZTsKK+ajgyA+IGFcLXBlYXI7CivmobIgPiBxdWluY2U7Civmn7IgPiBoYW5kbGU7CivmnbQgPiBzaG92ZWw7CivmnYcgPiBsb3F1YXQ7CivmnJkgPiBicmlnaHQ7Civmm6EgPiByZXBlYXQ7Civmm40gPiBicmlnaHQ7Civmm4UgPiBicmlnaHQ7Civmm4QgPiBicmlnaHQ7Civmm4AgPiBzdG9ybXk7CivmmrsgPiBicmlnaHQ7CivmmrggPiBicmlnaHQ7CivmmrIgPiBicmlnaHQ7CivmmosgPiBzdHJvbmc7CivmmZwgPiBpbnNlY3Q7CivmmYQgPiBicmlnaHQ7CivmmLogPiBicmlnaHQ7CivmmJ4gPiBicmlnaHQ7CivmmJEgPiBicmlnaHQ7Civml7sgPiBoZWF2ZW47Civml50gPiBiYW5uZXI7CivmlbkgPiB0b1wtc2V3Owor5pWhID4gcmVidWtlOwor5pWDID4gc3Ryb25nOwor5pWCID4gZGVkdWN0Owor5pSWID4gb3Bwb3NlOwor5pSEID4gc3ByZWFkOwor5pO9ID4gdGlja2xlOwor5pO0ID4gZXhwYW5kOwor5pOWID4gc2NyYXBlOwor5pOTID4gdG9cLXJ1YjsKK+aTiiA+IHN0cmlrZTsKK+aThyA+IHNlbGVjdDsKK+aSpiA+IHJpcFwtdXA7CivmkoogPiBmaWVyY2U7CivmkL8gPiB0b1wtaHVnOwor5o+3ID4gaW5zZXJ0Owor5o+uID4gZGlyZWN0Owor5o+XID4gc3RyaWtlOwor5o+AID4gY2hvb3NlOwor5o6kID4gcXVpdmVyOwor5o6UID4gc3R1cmR5Owor5o29ID4gY2x1dGNoOwor5o28ID4gdG9cLXJ1YjsKK+aNkyA+IHN0cml2ZTsKK+aNgyA+IGdhdGhlcjsKK+aLoSA+IGV4cGFuZDsKK+aKniA+IHNlbGVjdDsKK+aJkCA+IGRpdmluZTsKK+aJhiA+IHNjcmVlbjsKK+aInSA+IHBpcmF0ZTsKK+aIhyA+IHN0dXBpZDsKK+aHviA+IGFmcmFpZDsKK+aHuiA+IHJlZ3JldDsKK+aHtCA+IHJlZ3JldDsKK+aHsiA+IHB1bmlzaDsKK+aHqCA+IGZlZWJsZTsKK+aGpiA+IHJlZ3JldDsKK+aEvSA+IGdhbWJsZTsKK+aErCA+IGFjY3VzZTsKK+aDsiA+IGRldmlzZTsKK+aDqiA+IGV0aGljczsKK+aDjiA+IGluanVyZTsKK+aCsyA+IGV0aGljczsKK+aCpyA+IHNtb290aDsKK+aCniA+IGltcGVkZTsKK+aCiyA+IHN0aW5neTsKK+aBoSA+IHN0aW5neTsKK+aBnyA+IHNjYXJlZDsKK+W/sCA+IHN1ZmZlcjsKK+W+oCA+IGluZHVjZTsKK+W9tCA+IGJyaWRnZTsKK+W8oyA+IG1pZGRsZTsKK+W7vSA+IHJldHVybjsKK+W7nyA+IHRlbXBsZTsKK+W7kCA+IHN0YWJsZTsKK+W7jyA+IHN0YWJsZTsKK+W7hiA+IGFcLXJvb207Civlu4QgPiBzdGFibGU7Civlu4EgPiB0b2lsZXQ7CivluZggPiB0dXJiYW47Civlt6QgPiBhXC1tYW5lOwor5beYID4gc3VtbWl0Owor5ba8ID4gaXNsYW5kOwor5ba0ID4gaXNsYW5kOwor5baTID4gYm9zaGFuOwor5baMID4gaXNsYW5kOwor5baLID4gaXNsYW5kOwor5bW+ID4gdW5ldmVuOwor5bS/ID4gY2xpZmZzOwor5bSfID4gY2xpZmZzOwor5bKoID4gdW5ldmVuOwor5bKAID4gZ29cLW91dDsKK+WxriA+IHNwcm91dDsKK+WxnCA+IGRyYXdlcjsKK+WwhSA+IHN1YmR1ZTsKK+WwgCA+IGNhbm5vdDsKK+WvnCA+IHJlcG9zZTsKK+WvlSA+IHJlcG9zZTsKK+WvjiA+IGRyb3dzeTsKK+WupyA+IGNvcm5lcjsKK+WtviA+IGFcLWJhYnk7CivlrYwgPiBsb3ZlbHk7CivlrL8gPiBsb3ZlbHk7CivlrKQgPiBtb3RoZXI7CivlrIMgPiBzaXN0ZXI7Civlq6ogPiBoYW5rZXI7Civlq5AgPiBmcm9saWM7Civlqr0gPiBtb3RoZXI7CivlqpYgPiBiZWF1dHk7CivlqbwgPiBwZXJzb247CivlqaQgPiBsb3ZlbHk7CivlqKwgPiBsb3ZlbHk7CivlqJIgPiBtYXRyb247Civlp4EgPiBiZWF1dHk7CivlprggPiBwZXJzb247CivlpKwgPiBwYXJ0ZWQ7CivlpKAgPiBlbm91Z2g7CivlpIYgPiByZXNpc3Q7Civlo78gPiBnb2JsZXQ7CivloqAgPiBzbW9vdGg7CivloKcgPiBhZGpvaW47CivloKYgPiBzdGFpcnM7CivloIkgPiBncm91bmQ7CivlnJ4gPiBlbnRpcmU7CivlnJ0gPiBlbnRpcmU7CivlnI4gPiBjaXJjbGU7CivlnIAgPiBuYXRpb247Civlm5ggPiByZXR1cm47Civlmr8gPiBhXC1sdW1wOwor5ZqoID4gdGhyb2F0Owor5ZqUID4gc25lZXplOwor5ZqDID4gZ29iYmxlOwor5ZqAID4gZW5qb2luOwor5ZmaID4gZmF0aG9tOwor5ZmTID4gZXhoYWxlOwor5ZmPID4gaW5oYWxlOwor5Ze/ID4gZ29iYmxlOwor5ZaGID4gYVwtc2FnZTsKK+WViSA+IHN0dXBpZDsKK+WUqyA+IHRvXC1odW07CivllIggPiB0b1wtc29iOwor5ZOkID4gamFyZ29uOwor5ZOLID4gcGx1cmFsOwor5ZKIID4gb3Bwb3NlOwor5ZGuID4gdG9cLXNpdDsKK+WRjyA+IGdhbGxvbjsKK+WPoSA+IGFzdHV0ZTsKK+WPkyA+IGFmZmFpcjsKK+WOjiA+IHNldHRsZTsKK+WNhCA+IHR3ZW50eTsKK+WMgyA+IGJlZ2dhcjsKK+WLtyA+IHVyZ2VudDsKK+WLtSA+IHN0cml2ZTsKK+WLlyA+IGVuam9pbjsKK+WLkSA+IHJld2FyZDsKK+WLjSA+IHN0cm9uZzsKK+WLhCA+IGFjdGl2ZTsKK+WLgSA+IHN0cm9uZzsKK+WKpCA+IHN0cm9uZzsKK+WKjCA+IHRvXC1jdXQ7CivlioYgPiBzaWNrbGU7CivliY4gPiB0ZW1wbGU7CivliYsgPiBzdWJkdWU7CivliKogPiB0b1wtY3V0Owor5YeeID4gYnJpZ2h0Owor5YeTID4gc2hpdmVyOwor5YaRID4gaGVsbWV0Owor5YaEID4gdGVuZGVyOwor5YWyID4gaGVhdmVuOwor5YWnID4gaW5zaWRlOwor5YS4ID4gYmFuZGl0Owor5YS3ID4gc3BvdXNlOwor5YOxID4gZW1wbG95Owor5YOsID4gY2xldmVyOwor5YOjID4gYXNzdW1lOwor5YKvID4gdXJnZW50Owor5YKuID4gZmluaXNoOwor5YKOID4gdG9wcGxlOwor5YGqID4gY29tcGVsOwor5YGpID4gZm9sbG93Owor5YGoID4gdW5ldmVuOwor5YGWID4gcmlwXC11cDsKK+WAhiA+IGNsZXZlcjsKK+WAhSA+IGRlcHV0eTsKK+WAgyA+IGRhbWFnZTsKK+S/tSA+IGRpdmlkZTsKK+S+tyA+IG5hcnJvdzsKK+S9iCA+IHNwcmVhZDsKK+S8viA+IG1pZ2h0eTsKK+S8nCA+IGRlcHV0eTsKK+S7miA+IHRvXC1mbHk7CivkuoogPiBhZmZhaXI7CivkuoQgPiBncmVlZHk7CivkuZogPiBoaWRkZW47CivkuYIgPiBnb3Zlcm47CivkuJcgPiB0aGlydHk7Civktq4gPiBjbGV2ZXI7CivktoEgPiBub2lzZXM7CivktacgPiB0b1wtZHllOwor5LWZID4gc3RpY2t5Owor5LWQID4geWVsbG93Owor5LWPID4geWVsbG93Owor5LWNID4geWVsbG93Owor5LWLID4geWVsbG93Owor5LWKID4geWVsbG93Owor5LSlID4gYVwtc3RhZzsKK+SzviA+IGFuXC1vd2w7Civks48gPiBjdWNrb287Civks4cgPiBwYXJyb3Q7CivksrkgPiBvc3Blcnk7CivksqcgPiBjdWNrb287CivksowgPiBhXC1maXNoOwor5LGVID4gbGFicnVzOwor5LGRID4gYVwtZmlzaDsKK+SxjyA+IGFcLWZpc2g7CivksYMgPiBhXC1maXNoOwor5LGCID4gYVwtZmlzaDsKK+SwtyA+IGFcLWZpc2g7CivksKMgPiBhblwtZWxmOwor5K+rID4gYnJpZ2h0Owor5K+oID4gdG9cLXJhcDsKK+SvnSA+IG1hcnJvdzsKK+SvnCA+IG1hcnJvdzsKK+SvgyA+IHNhZGRsZTsKK+SvgSA+IGFcLW11bGU7CivkraogPiBncmFpbnM7CivkraUgPiBhXC1iYWl0Owor5K2dID4gdG9cLWVhdDsKK+StmiA+IHRvXC1lYXQ7CivkrZIgPiBicmVhdGg7CivkrYwgPiBjb25nZWU7CivkrYggPiBjb25nZWU7CivkrLggPiBhXC1tZWFsOwor5KyRID4gYVwtZ2FsZTsKK+SskCA+IGJyZWV6ZTsKK+SsiiA+IGFcLWdhbGU7CivkrIggPiBicmVlemU7CivkrIcgPiBicmVlemU7CivkrIUgPiBhXC1nYWxlOwor5KyEID4gYnJlZXplOwor5KyCID4gYnJlZXplOwor5Ku+ID4gYnJlZXplOwor5Ku9ID4gYnJlZXplOwor5Ku8ID4gYnJlZXplOwor5KusID4gdG9cLWJvdzsKK+SquCA+IHN0cm9uZzsKK+SqpCA+IGdhcmxpYzsKK+SpryA+IHVyZ2VudDsKK+SprSA+IGhhbHRlcjsKK+SoviA+IGhpZGRlbjsKK+SouiA+IGNsb3VkeTsKK+SouCA+IGNsb3VkeTsKK+SoryA+IGNsb3VkeTsKK+SonyA+IHB1ZGRsZTsKK+SoiSA+IHBhcnJvdDsKK+SohyA+IGFcLXBhaXI7Civkp7QgPiBhXC1iaXJkOwor5KezID4gZmVtYWxlOwor5KelID4gYm9yZGVyOwor5KebID4gYmVzaWRlOwor5KeRID4gYVwtZGlrZTsKK+SlqiA+IHRvXC1jdXA7CivkpaggPiBhXC1maWxlOwor5KWgID4gbmVlZGxlOwor5KWNID4gYVwtd2hpcDsKK+SjpiA+IHRvXC1jdXQ7Civko5ggPiBhXC1oYWxsOwor5KOIID4gYVwtbGFuZTsKK+SivSA+IGFcLWxhbmU7CivkoLAgPiBjb2lsZWQ7CivkoKQgPiB0b2RkbGU7CivkoJkgPiB1cmdlbnQ7CivkoI4gPiBuYXJyb3c7CivkoIcgPiBzdHJvbmc7Civkn7EgPiB0cmFjZXM7Civkn58gPiB1cmdlbnQ7Civkn5IgPiBjb2lsZWQ7CivknZwgPiBhXC1saW9uOwor5J2EID4gY293cGVhOwor5JyeID4gYVwtZG9zZTsKK+SbpyA+IHJpZGRsZTsKK+SbpSA+IHNwZWVjaDsKK+SboyA+IHNwZWVjaDsKK+SbnCA+IHRvXC1hc2s7Civkm5EgPiBzaWxlbnQ7Civkm4ggPiB0b1wtdm93Owor5Jq6ID4gYmFsbGFkOwor5JqIID4gdG9cLXNlZTsKK+SahiA+IHRvXC1zZWU7CivkmoIgPiB0b1wtc2VlOwor5JqBID4gdG9cLXNlZTsKK+SZvyA+IHRvXC1zZWU7Civkmb0gPiB0b1wtc2VlOwor5Jm8ID4gdG9cLXNlZTsKK+SZtSA+IHJ1c3RpYzsKK+SZoSA+IGFcLWtub3Q7CivkmYwgPiBhXC1rbm90Owor5JiwID4gYVwtaG9vZDsKK+SYrCA+IGFybW91cjsKK+SYqSA+IGNvbGxhcjsKK+SYjCA+IGdhZGZseTsKK+SYiCA+IG95c3RlcjsKK+SXqyA+IGFcLWZyb2c7CivklrkgPiB3ZWV2aWw7Civklq4gPiBsYXJ2YWU7CivklqsgPiBveXN0ZXI7CivklqggPiBtYW50aXM7CivklpcgPiBzdHJvbmc7CivkloEgPiBudW1iZXI7CivklawgPiBnaW5nZXI7CivklaggPiByYXR0YW47CivklK8gPiBzYWx0ZWQ7CivklKIgPiBjYXRoYXk7CivklI8gPiBhXC1sdXNoOwor5JOnID4gdXJnZW50Owor5JOmID4gYVwtcnVsZTsKK+SThSA+IGNlbGVyeTsKK+SThCA+IGdyYXNzeTsKK+SSuSA+IGdyYXNzeTsKK+SSqyA+IGdyYXNzeTsKK+SSiSA+IGFcLWxvbmc7CivkkoIgPiBhblwtb2FyOwor5JG6ID4gYVwtc2FpbDsKK+SRtCA+IGFcLWJvYXQ7CivkkbEgPiBhXC1ib2F0Owor5JGvID4gYVwtYm9hdDsKK+SRqCA+IHJ1ZGRlcjsKK+SRpiA+IGFcLWJvYXQ7CivkkaQgPiBhXC1ib2F0Owor5JGQID4gYnJpZ2h0Owor5JCmID4gc2xlZXB5Owor5JClID4gc3Rpbmt5Owor5I+qID4gdGVuZG9uOwor5I+jID4gbWFnZ290Owor5I+CID4gY2xldmVyOwor5I6xID4gYVwtZHJhZzsKK+SOrCA+IGFcLWRyYWc7CivkjpkgPiBmbHlpbmc7CivkjpcgPiBmbHlpbmc7CivkjpMgPiBmbHlpbmc7CivkjoogPiBmbHlpbmc7CivkjoggPiBmbHlpbmc7CivkjoYgPiBmbHlpbmc7CivkjoUgPiBmbHlpbmc7CivkjoAgPiBmbHlpbmc7Civkjb4gPiBmbHlpbmc7CivkjawgPiB0b1wtdXNlOwor5I2LID4gYm90dGxlOwor5I2IID4gYm90dGxlOwor5I2DID4gYVwtdmFzZTsKK+SMtCA+IHVuZXZlbjsKK+SMsSA+IHVuZXZlbjsKK+SMnCA+IHRvXC1zZXc7CivkjJUgPiB0b1wtdGllOwor5IuyID4gYVwtcm9wZTsKK+SLkSA+IHRvXC10aWU7Civki5AgPiBmYWJyaWM7Civki4wgPiBzdHJvbmc7CivkiqcgPiBhXC1mYXJ0Owor5IqlID4gY29uZ2VlOwor5IqbID4gc2hyZWRzOwor5IqOID4gcG93ZGVyOwor5IqGID4gY29va2VkOwor5Im2ID4gYVwtc2FpbDsKK+SIuiA+IGJhbWJvbzsKK+SItCA+IGFcLWNhZ2U7CivkiI4gPiBhXC1sZWFmOwor5IelID4gbmFycm93Owor5IeiID4gYmFtYm9vOwor5IefID4gdGVuZG9uOwor5IeaID4gdG9cLXRhcDsKK+SHgSA+IGFcLWNhdmU7Civkhr0gPiBhXC1ob2xlOwor5Ia8ID4gYVwtbmVzdDsKK+SGuyA+IGFcLWhvbGU7CivkhrcgPiBhXC1ob2xlOwor5IawID4gYVwtY2F2ZTsKK+SGriA+IHRvXC1kaXA7CivkhqsgPiB3aW5kb3c7CivkhqcgPiBhXC1jYXZlOwor5IahID4gYVwtY2F2ZTsKK+SGnSA+IGFcLWNhdmU7CivkhpkgPiBhXC1raWxuOwor5IaTID4gYVwtaG9sZTsKK+SFtiA+IHRvXC1ob2U7CivkhbQgPiBncmFpbnM7CivkhaYgPiBmZWVibGU7CivkhYcgPiBncmFpbnM7CivkhLkgPiBhXC15ZWFyOwor5ISyID4gaW5zaWRlOwor5IStID4gYVwteWVhcjsKK+SEmCA+IGFcLXJpdGU7CivkhI4gPiBwcmV0dHk7Civkg6UgPiBzdG9uZXM7Civkg5YgPiBhXC1iYW5rOwor5IOKID4gdG9cLXJ1YjsKK+SCtyA+IGJyb2tlbjsKK+SCtCA+IHRvXC1ydWI7CivkgrMgPiBncmF2ZWw7Civkgp0gPiB0b1wtcmFwOwor5IKYID4gcGViYmxlOwor5IG/ID4gc2xlZXB5Owor5IGmID4gdG9cLXNlZTsKK+SBliA+IHRvXC1zZWU7CivkgJIgPiBnbG9vbXk7CivkgI0gPiB2ZXNzZWw7CivkgIUgPiB2ZXNzZWw7Civjv74gPiB2ZXNzZWw7Civjv7wgPiBhXC1ib3dsOwor47+7ID4gYVwtdHJheTsKK+O/rSA+IGNyYWNrczsKK+O/pyA+IGZpZWxkczsKK+O/lCA+IGFcLXdhcnQ7CivjvbcgPiBkcm9wc3k7CivjvbUgPiBzb2xlbW47CivjvL4gPiBicmlja3M7CivjvKUgPiBib3R0bGU7CivjvJ0gPiBhXC1ib3dsOwor47yEID4gcGVhcmxzOwor47mMID4gY2F0dGxlOwor47i/ID4gYVwtY2FsZjsKK+O4mSA+IGZhdGhlcjsKK+O3sCA+IGZsYW1lczsKK+O3qSA+IGJyaWdodDsKK+O3iyA+IGVtYmVyczsKK+O3giA+IGJyaWdodDsKK+O2pCA+IHRvXC1mcnk7CivjtoggPiBjcmVla3M7CivjtaogPiBzYWxpdmE7CivjtZ0gPiBtb3Zpbmc7CivjtJ4gPiBmbHVlbnQ7CivjtIYgPiB0b1wtZGlwOwor47OMID4gbWFyc2h5Owor47G1ID4gdG9cLWRpZTsKK+OxsyA+IGxvbmVseTsKK+OxsSA+IHVuZXZlbjsKK+OxoyA+IHVuZXZlbjsKK+OxniA+IGRhbmdlcjsKK+OxmSA+IHJvdHRlbjsKK+OxjSA+IHRvXC1vd2U7CivjsYIgPiBodW5ncnk7CivjsYEgPiB0b1wtYXNrOwor47CNID4gYVwtY2FnZTsKK+OwgyA+IGFcLXRyZWU7Civjr74gPiBhXC10cmVlOwor46+WID4gYVwtdHJlZTsKK+OvjyA+IGdyYWluczsKK+OvjiA+IHN0dXBpZDsKK+OvjSA+IGFuXC1vYXI7Civjr4kgPiBhXC10cmVlOwor46+GID4gYVwtdHJlZTsKK+OuvyA+IGFcLXRyZWU7CivjrrkgPiBhXC10cmVlOwor4663ID4gYVwtdHJlZTsKK+OutiA+IGFcLXRyZWU7CivjrrMgPiBhXC10cmVlOwor466pID4gYVwtdHJlZTsKK+OupyA+IGFcLXRyZWU7CivjrpggPiBhXC10cmVlOwor466WID4gdG9cLWxheTsKK+OujCA+IGNvdHRvbjsKK+OtsSA+IGFcLWNhc2U7CivjrYsgPiBhXC1jbHViOwor46yvID4gc3Vuc2V0Owor46yuID4gZ2VudGxlOwor46yNID4gZmllcmNlOwor46u6ID4gYnlnb25lOwor46u4ID4gc3Vuc2V0Owor46u3ID4gYmVoaW5kOwor46uhID4gd2ludGVyOwor46uFID4gYVwtZmxhZzsKK+OquSA+IHRvXC1yb2I7CivjqoYgPiBoaWRkZW47CivjqoQgPiBicm9rZW47Civjqb4gPiB1bmV2ZW47CivjqbIgPiBhXC1maXN0Owor46i+ID4gYVwtdHlwZTsKK+OouyA+IHRvXC1jdXQ7CivjqLggPiB0b1wtaGl0Owor46ipID4gdG9cLXdpbjsKK+OopSA+IHRvXC1oaXQ7CivvqJwgPiBwYWNpZnk7CivvqJkgPiBzcGlyaXQ7CivvqJcgPiBwcm9maXQ7CivvqJUgPiBicmlnaHQ7CivjqI4gPiB0b1wtZHllOwor46iFID4gaW5zaWRlOwor76iCID4gZXhwYW5kOwor76iBID4gZGVncmVlOwor46e4ID4gdG9cLWhpdDsKK++ntCA+IGZvcmVzdDsKK+OnsyA+IHRvXC1taXg7Civvp60gPiBzdGluZ3k7Civvp6ggPiBpbnNpZGU7Civvp6cgPiBpbnNpZGU7Civvp6YgPiBzb3Jyb3c7Civjp6cgPiBhXC1jb21iOwor76ekID4gcmVhc29uOwor76egID4gY2hhbmdlOwor76eZID4gc2hpdmVyOwor76eOID4gc3VsZnVyOwor46eJID4gdG9cLXJ1YjsKK++nhCA+IGRyYWdvbjsKK++mvCA+IHNoYW50eTsKK++msyA+IHNwaXJpdDsKK++msCA+IGxpc3RlbjsKK++mqiA+IHJlcG9zZTsKK++mqSA+IHByaXNvbjsKK++mniA+IHRocm9hdDsKK++mnCA+IGFcLWxpbmU7CivjppQgPiBzaWxrbHk7CivjposgPiBhYnN1cmQ7CivjpoogPiBsYXZpc2g7CivjpoUgPiB1bmVhc3k7CivjpoEgPiB0b1wtc29iOwor76W/ID4gc3RyaXZlOwor76W9ID4gZXhjdXNlOwor76W6ID4gYnJpZGdlOwor76W3ID4gYnJpZ2h0Owor46WtID4gbHV4dXJ5Owor46WrID4gaG9uZXN0Owor76WpID4gbnVtYmVyOwor76WmID4gcmV0dXJuOwor76WfID4gcmVwb3NlOwor46WfID4gZW5taXR5Owor76WWID4gY29ybmVyOwor76WRID4gbmFycm93Owor76WQID4gdGhyZWFkOwor46WQID4gaGF0cmVkOwor46WIID4gYWZyYWlkOwor76WGID4gcHJpc29uOwor76WBID4gZGViYXRlOwor46S7ID4gc3R1cGlkOwor46S5ID4gaGF0cmVkOwor46S4ID4gdW5lYXN5Owor76S1ID4gcnVzaGVzOwor46SoID4gc2NhcmVkOwor76SkID4gcmFnZ2VkOwor76SfID4gb3JjaGlkOwor76SeID4gcm90dGVuOwor76STID4gcGF0cm9sOwor46STID4gc3R1cGlkOwor76SFID4gc3RyaW5nOwor46OtID4gbnVtYmVyOwor46OYID4gc3Bhc21zOwor46K9ID4gYVwtYmFpdDsKK+OiuiA+IHN0cmluZzsKK+OhriA+IGRhbmdlcjsKK+OhoyA+IGRyYWdvbjsKK+OhmiA+IGFybW91cjsKK+OhgSA+IGFcLXJvYmU7CivjoLYgPiBhXC1zYWlsOwor46CyID4gcmlwcGVkOwor46CAID4gaXNsYW5kOwor45+3ID4gYVwtd2FydDsKK+OfqyA+IHNwcmluZzsKK+OfpSA+IHVuZXZlbjsKK+OfnyA+IGFcLWxhbmU7CivjnrggPiBhXC15ZWFyOwor456HID4gdWxjZXJzOwor456CID4gdWxjZXJzOwor4525ID4gYVwtaGFyZTsKK+OdtiA+IHRvXC1nZXQ7CivjnbUgPiB0b1wtZ2V0Owor452nID4gc3RhYmxlOwor452CID4gbG9jdXN0Owor452BID4gbG9uZWx5Owor45yrID4gcHJldHR5Owor45ylID4gY3JhZnR5Owor45u5ID4gcHJldHR5Owor45q8ID4gYVwtZ2lybDsKK+OauyA+IHNvZG9teTsKK+OauSA+IHByZXR0eTsKK+OaniA+IHRlcnJvcjsKK+OakCA+IGFcLWNhc2U7CivjmowgPiBhXC1iYW5kOwor45m5ID4gYVwtZGFtcDsKK+OZtiA+IGFcLWhhbGw7CivjmawgPiBhXC1iYW5rOwor45mdID4gYVwtZGlrZTsKK+OZlSA+IGFcLWx1bXA7CivjmLQgPiB0b1wtc2l0Owor45iyID4gYVwtY292ZTsKK+OXtyA+IHRvXC1lYXQ7Civjl7UgPiBicmVhdGg7Civjl5YgPiB0b1wtZWF0Owor45aSID4gdG9cLWNyeTsKK+OWgSA+IHN0aW5neTsKK+OVoCA+IGFcLXBhaXI7CivjlZQgPiBhXC1oYWxsOwor45WCID4gdG9cLWh1bTsKK+OUuiA+IGFuXC1hZ2U7CivjlLggPiBhXC10cmF5Owor45ScID4gc3VkZGVuOwor45SXID4gc3Ryb25nOwor45SSID4gdG9cLWN1dDsKK+OUkCA+IHRvXC1jdXQ7CivjlIogPiB0b1wtY3V0Owor45SJID4gdG9cLWRpZzsKK+OUhiA+IHRvXC1jdXQ7CivjlIUgPiB0b1wtY3V0Owor45O1ID4gc3dvcmRzOwor45OxID4gdG9cLWN1dDsKK+OTqiA+IGJyaWdodDsKK+OToCA+IGFcLWZsYXc7Civjk4UgPiBmcm96ZW47CivjkrYgPiBwdWJsaWM7CivjkrUgPiBtYW5uZXI7CivjkrIgPiB3ZWFsdGg7CivjkqcgPiBhXC1wYWlyOwor45KgID4gbmFycm93Owor45G7ID4gc3Ryb25nOwor45G3ID4gbWFubmVyOwor45GzID4gY2xldmVyOwor45GjID4gc3R1cGlkOwor45GHID4gY2xldmVyOwor45C5ID4gc3Ryb25nOwor55+zID4gc3RvbmU7Civnn60gPiBzaG9ydDsKK+W/qyA+IHJhcGlkOwor5ZyoID4gYmVcLWF0Owor5LuWID4gb3RoZXI7Civnn6IgPiBhcnJvdzsKK+WIsCA+IGdvXC10bzsKK+ivtCA+IHNwZWFrOwor6L+FID4gcXVpY2s7CivlnLAgPiBlYXJ0aDsKK+W/gyA+IGhlYXJ0Owor5LiLID4gdW5kZXI7Civovq0gPiB3b3JkczsKK+W+riA+IHNtYWxsOwor5a62ID4gaG91c2U7CivlvqEgPiBkcml2ZTsKK+i+niA+IHdvcmRzOwor5ZCOID4gcXVlZW47CivlsI8gPiBzbWFsbDsKK+W+hSA+IHRyZWF0Owor6L+YID4gc3RpbGw7Civlj5EgPiBpc3N1ZTsKK+W9qyA+IGNhcnZlOwor5oOzID4gdGhpbms7CivnnaEgPiBzbGVlcDsKK+i9iSA+IHNoaWZ0Owor5omAID4gcGxhY2U7CivovKogPiB3aGVlbDsKK+S4iSA+IHRocmVlOwor6LyVID4gbGlnaHQ7CivlvI8gPiBzdHlsZTsKK+agtyA+IHNoYXBlOwor6Lu9ID4gbGlnaHQ7Civlu7ogPiBidWlsZDsKK+W7tiA+IGRlbGF5Owor55uyID4gYmxpbmQ7Civou6IgPiBzaGlmdDsKK+W7oyA+IGJyb2FkOwor5aOwID4gc291bmQ7Civlt6UgPiBsYWJvcjsKK+ebhiA+IGJhc2luOwor55uDID4gZ2xhc3M7CivmraMgPiByaWdodDsKK+W6uCA+IHVzdWFsOwor5aWzID4gd29tYW47CivlipsgPiBwb3dlcjsKK+i6kSA+IHdhdmVyOwor5ZugID4gY2F1c2U7Civph40gPiBoZWF2eTsKK+eahyA+IHJveWFsOwor5bqHID4gY292ZXI7CivmrKEgPiBvcmRlcjsKK+W6gyA+IGJyb2FkOwor5Y+jID4gbW91dGg7Civkvb8gPiBjYXVzZTsKK+eZvSA+IHdoaXRlOwor5bm9ID4gcXVpZXQ7CivmlZkgPiB0ZWFjaDsKK+eZvCA+IGlzc3VlOwor5YaNID4gYWdhaW47CivnmbogPiBpc3N1ZTsKK+awlCA+IHN0ZWFtOwor5L+hID4gdHJ1c3Q7CivljJcgPiBub3J0aDsKK+i5siA+IHNxdWF0Owor6LmfID4gdHJhY2U7CivnlLEgPiBjYXVzZTsKK+WNtCA+IHN0aWxsOwor5bmFID4gcGllY2U7CivlhaUgPiBlbnRlcjsKK+WFiCA+IGZpcnN0Owor5rC0ID4gd2F0ZXI7CivlpIQgPiBwbGFjZTsKK+W3tyA+IGFsbGV5Owor56yRID4gc21pbGU7Civnq4sgPiBzdGFuZDsKK+i3qiA+IGtuZWVsOwor6amsID4gaG9yc2U7Civlt6ggPiBsYXJnZTsKK+eWkSA+IGRvdWJ0Owor5YipID4gZ2FpbnM7CivotbQgPiBnb1wtdG87CivlhYkgPiBsaWdodDsKK+aenCA+IGZydWl0Owor6LWnID4gYmx1c2g7Civoh7MgPiByZWFjaDsKK+a4hSA+IGNsZWFyOwor54mpID4gdGhpbmc7CivltYwgPiBpbmxheTsKK+eUsiA+IGFybW9yOwor55SwID4gZmllbGQ7CivorrggPiBhbGxvdzsKK+WFqyA+IGVpZ2h0Owor5bSWID4gY2xpZmY7CivltI4gPiByb3VnaDsKK+WNlyA+IHNvdXRoOwor6ImyID4gY29sb3I7CivorqkgPiBhbGxvdzsKK+eTnCA+IG1lbG9uOwor566XID4gY291bnQ7Civos4ogPiB0aGllZjsKK+WFgyA+IGZpcnN0Owor6LKvID4gc3RvcmU7CivmgJ0gPiB0aGluazsKK+iyqCA+IGdvb2RzOwor5bKpID4gY2xpZmY7Civmr48gPiBldmVyeTsKK+WxrCA+IGNsYXNzOwor6LGqID4gYnJhdmU7CivlsZ4gPiBjbGFzczsKK+iogCA+IHdvcmRzOwor5p2DID4gcG93ZXI7CivlsYsgPiBob3VzZTsKK+ixhiA+IGJlYW5zOwor5LiDID4gc2V2ZW47CivlsJogPiBzdGlsbDsKK+WwliA+IHNoYXJwOwor6L2sID4gc2hpZnQ7CivlsIQgPiBzaG9vdDsKK+epuiA+IGVtcHR5Owor5oqAID4gc2tpbGw7CivovbsgPiBsaWdodDsKK+WvuiA+IGNvdXJ0Owor5a+rID4gd3JpdGU7Civoi7EgPiBwZXRhbDsKK+WvoiA+IHNsZWVwOwor5YaZID4gd3JpdGU7Civlr50gPiBzbGVlcDsKK+WvkCA+IHNsZWVwOwor5a+GID4gZGVuc2U7Civlr4IgPiBzdGlsbDsKK+mSsSA+IG1vbmV5Owor5a65ID4gbG9va3M7CivlrrUgPiBuaWdodDsKK+iuviA+IGJ1aWxkOwor5aeLID4gYmVnaW47CivlrqIgPiBndWVzdDsKK+eJhyA+IHNsaWNlOwor56CUID4gZ3JpbmQ7CivlrocgPiBob3VzZTsKK+aXqSA+IGVhcmx5Owor5oi/ID4gaG91c2U7Civpn7MgPiBzb3VuZDsKK+eNuyA+IG9mZmVyOwor5426ID4gb3R0ZXI7CivnjbggPiBiZWFzdDsKK+itsiA+IGFsbG93Owor542oID4gYWxvbmU7CivoraYgPiBndWFyZDsKK+eNoyA+IGJlYXN0Owor5a2YID4gZXhpc3Q7CivorYkgPiBwcm9vZjsKK+e7hCA+IGNsYXNzOwor6KydID4gdGhhbms7CivnjJwgPiBndWVzczsKK+WsiSA+IGVuam95Owor6buRID4gYmxhY2s7CivorIEgPiB2aXNpdDsKK+WJkSA+IHN3b3JkOwor54usID4gYWxvbmU7CivkuZAgPiBoYXBweTsKK+e6pyA+IGxldmVsOwor6KqsID4gc3BlYWs7CivkuL4gPiByYWlzZTsKK+ivgSA+IHByb3ZlOwor54WnID4gc2hpbmU7CivoqpMgPiBzd2VhcjsKK+e+pCA+IGdyb3VwOwor5pmaID4gbmlnaHQ7CivoqoIgPiB0ZW1wdDsKK+ipniA+IHdvcmRzOwor5LykID4gd291bmQ7CivnsbsgPiBjbGFzczsKK+asoiA+IGhhcHB5Owor54i9ID4gaGFwcHk7Civlir8gPiBwb3dlcjsKK+iovCA+IHByb3ZlOwor5Yi7ID4gY2FydmU7Civmlq0gPiBzZXZlcjsKK+WknCA+IG5pZ2h0Owor6KixID4gYWxsb3c7CivoqK0gPiBidWlsZDsKK+S7tyA+IHByaWNlOwor6ISRID4gYnJhaW47CivoqKogPiB2aXNpdDsKK+inhCA+IHJ1bGVzOwor5aiRID4gZGFuY2U7CivnoLQgPiBicmVhazsKK+azvSA+IG1hcnNoOwor54e7ID4gc21va2U7CivntKcgPiB0ZW5zZTsKK+inuCA+IHRvdWNoOwor6KOFID4gZHJlc3M7CivmgKUgPiBxdWljazsKK+aysyA+IHJpdmVyOwor6KGAID4gYmxvb2Q7CivmipUgPiB0aHJvdzsKK+imhiA+IGNvdmVyOwor5Y+zID4gcmlnaHQ7CivlpbQgPiBzbGF2ZTsKK+WIgCA+IGtuaWZlOwor6KWfID4gbGFwZWw7CivnhZkgPiBzbW9rZTsKK+WliSA+IG9mZmVyOwor5ZadID4gZHJpbms7CivopLggPiBsYXBlbDsKK+ikqiA+IHN0cmlwOwor5Y2rID4gZ3VhcmQ7CivlpKIgPiBkcmVhbTsKK+mUmSA+IGVycm9yOwor6KO+ID4gbGFwZWw7CivmoYggPiB0YWJsZTsKK+eDnyA+IHNtb2tlOwor6KOdID4gZHJlc3M7CivljbAgPiBwcmludDsKK+WjkyA+IHByZXNzOwor54OIID4gZmllcnk7Civlo4cgPiBhbHRhcjsKK+WdlyA+IHBpZWNlOwor6KOCID4gc3BsaXQ7CivoorQgPiBwYW50czsKK+WikyA+IGdyYXZlOwor6Z2ZID4gcXVpZXQ7Civngo4gPiBmbGFtZTsKK+ihtyA+IGhlYXJ0Owor54GwID4gYXNoZXM7CivooZ4gPiBndWFyZDsKK+ihmyA+IGd1YXJkOwor6YCfID4gcXVpY2s7CivloZcgPiBzbWVhcjsKK+aVjCA+IGVuZW15Owor5aGUID4gdG93ZXI7CivosKIgPiB0aGFuazsKK+WhiiA+IHBpZWNlOwor5oCAID4gYm9zb207CivlhbsgPiByYWlzZTsKK+e9qiA+IGNyaW1lOwor5r+2ID4gYnJvYWQ7Civon7IgPiB3b3JtczsKK+a/sSA+IGJlYWNoOwor5pGYID4gcGx1Y2s7Civmlr0gPiBncmFudDsKK+aooSA+IG1vZGVsOwor6I2JID4gZ3Jhc3M7Civmv4MgPiB0aGljazsKK+WAvCA+IHByaWNlOwor5r+BID4gbXVkZHk7Civnj60gPiBjbGFzczsKK+S/riA+IHN0dWR5Owor5ZGzID4gdGFzdGU7CivmvqQgPiBtYXJzaDsKK+e7hyA+IHdlYXZlOwor6b6VID4gbmljaGU7Civonb8gPiBmbGllczsKK+WFjSA+IHNwYXJlOwor5rOiID4gd2F2ZXM7CivmvZQgPiBjbGVhbjsKK+a0iyA+IG9jZWFuOwor5YqzID4gbGFib3I7CivlnYcgPiBlcXVhbDsKK+WOiyA+IHByZXNzOwor5aWWID4gcHJpemU7Civpob8gPiBwYXVzZTsKK+a8giA+IGZsb2F0Owor5YikID4ganVkZ2U7CivntKAgPiB3aGl0ZTsKK+WYtCA+IG1vdXRoOwor5ouFID4gY2Fycnk7Civmnb8gPiBwbGFuazsKK+mSnyA+IGNsb2NrOwor6K6/ID4gdmlzaXQ7Civpu5IgPiBibGFjazsKK+m7kCA+IHN0aWNrOwor6JuHID4gc25ha2U7CivmnoQgPiBmcmFtZTsKK+a6uiA+IGRyb3duOwor6bqmID4gd2hlYXQ7CivpuqUgPiB3aGVhdDsKK+a6nSA+IGRpdGNoOwor5rqcID4gc2xpZGU7CivogokgPiBmbGVzaDsKK+e6uCA+IHBhcGVyOwor5qKmID4gZHJlYW07CivomZogPiBmYWxzZTsKK+iSmSA+IGNvdmVyOwor6JmVID4gcGxhY2U7CivomY4gPiB0aWdlcjsKK+WZjCA+IHNjb2xkOwor5p2CID4gbWl4ZWQ7CivmgJIgPiBhbmdlcjsKK+eovyA+IGRyYWZ0Owor5rimID4gc3dpcmw7CivmuKEgPiBjcm9zczsKK+a4oCA+IGRpdGNoOwor5ZiXID4gdGFzdGU7CivnvaIgPiBjZWFzZTsKK+m3uiA+IGhlcm9uOwor6be5ID4gZWFnbGU7Civmt7kgPiBkcm93bjsKK+iXqSA+IGZlbmNlOwor6JelID4gZHJ1Z3M7CivpspwgPiBmcmVzaDsKK+e9riA+IHBsYWNlOwor5ZeFID4gc21lbGw7Civol4EgPiBzdHJhdzsKK+m2tCA+IGNyYW5lOwor5p6qID4gc3BlYXI7Civmtq8gPiBzaG9yZTsKK+iWriA+IG1hcnNoOwor6JasID4gZHJ1Z3M7CivolqYgPiBvZmZlcjsKK+a2nCA+IGRpdGNoOwor5raZID4gdGVhcnM7CivphY0gPiBtYXRjaDsKK+a1tCA+IGJhdGhlOwor5Y2HID4gYXJpc2U7CivmtZwgPiBjcmVlazsKK+iUvSA+IGNvdmVyOwor6K+NID4gd29yZHM7Civms6ogPiB0ZWFyczsKK+iUrSA+IHNoYWRlOwor5rSlID4gZmVycnk7CivprLwgPiBnaG9zdDsKK+iIniA+IGRhbmNlOwor6JOuID4gbG90dXM7Civpgb8gPiBhdm9pZDsKK+ahjCA+IHRhYmxlOwor6JOLID4gY292ZXI7CivkuqEgPiBkZWF0aDsKK+iThCA+IHN0b3JlOwor6ZeqID4gZmxhc2g7CivokrggPiBzdGVhbTsKK+mchyA+IHNoYWtlOwor5ZKzID4gY291Z2g7CivlkrIgPiBzbWlsZTsKK+ayoiA+IG1hcnNoOwor57u/ID4gZ3JlZW47Civlko4gPiBmYXVsdDsKK+e6syA+IGFkbWl0Owor5rG9ID4gc3RlYW07CivotKcgPiBnb29kczsKK+WRqiA+IGN1cnNlOwor56ulID4gY2hpbGQ7CivkvJ8gPiBncmVhdDsKK+axgSA+IGp1aWNlOwor6I2jID4gZ2xvcnk7CivnjK4gPiBvZmZlcjsKK+WQkCA+IHZvbWl0Owor5Y6aID4gdGhpY2s7CivpsIwgPiBsb2FjaDsKK+WWiiA+IHNob3V0Owor6L2uID4gd2hlZWw7CivlkIkgPiBsdWNreTsKK+iurSA+IHRlYWNoOwor5Y+xID4gc2NvbGQ7CivpgJAgPiBjaGFzZTsKK+ebliA+IGNvdmVyOwor5Y+pID4ga25vY2s7CivoiI0gPiBob3VzZTsKK+avjiA+IGV2ZXJ5Owor5qOAID4gY2hlY2s7Civmj6EgPiBncmFzcDsKK+eJmSA+IHRvb3RoOwor6a6uID4gZnJlc2g7Civlrr0gPiBicm9hZDsKK+auliA+IGJyZWVkOwor5Y2/ID4gbm9ibGU7CivojbcgPiBsb3R1czsKK+atryA+IHRlZXRoOwor5q2qID4gc2xhbnQ7CivmraEgPiBoYXBweTsKK+ajiyA+IGNoZXNzOwor6a2UID4gZGVtb247CivohbAgPiB3YWlzdDsKK+aihSA+IHBsdW1zOwor6ZKiID4gc3RlZWw7CivojLkgPiByb290czsKK+S7hyA+IGVuZW15Owor5qy6ID4gY2hlYXQ7CivprJogPiBiZWFyZDsKK+WMmSA+IHNwb29uOwor5YeAID4gY2xlYW47CivljI0gPiBjcmF3bDsKK+asiiA+IHBvd2VyOwor6IyFID4gcmVlZHM7CivntK8gPiB0aXJlZDsKK+S6qyA+IGVuam95Owor6IyCID4gdGhpY2s7Civli4cgPiBicmF2ZTsKK+acqyA+IGZpbmFsOwor57OKID4gcGFzdGU7CivnqI4gPiB0YXhlczsKK+WLoiA+IHBvd2VyOwor5YueID4gbGFib3I7Civoi5sgPiBzbWFsbDsKK+aDryA+IGhhYml0Owor5YC+ID4gdXBzZXQ7CivlirQgPiBsYWJvcjsKK+mfqSA+IGZlbmNlOwor6LS4ID4gdHJhZGU7CivmqqIgPiBjaGVjazsKK+WKjSA+IHN3b3JkOwor5omrID4gc3dlZXA7CivoibggPiBncmFzczsKK+WJoyA+IHN3b3JkOwor5ZCTID4gc2NhcmU7CivliYMgPiBzaGF2ZTsKK+mXsiA+IGZlbmNlOwor6Ii2ID4gbGFyZ2U7CivliLcgPiBicnVzaDsKK+e+iiA+IHNoZWVwOwor5qipID4gcG93ZXI7CivmqKMgPiBzaGFwZTsKK+aJkSA+IHBvdW5kOwor6IiOID4gaG91c2U7Civnoo4gPiBicmVhazsKK+aogiA+IGhhcHB5Owor56OoID4gZ3JpbmQ7Civoh7ogPiB0b3dlcjsKK+iHrSA+IHNtZWxsOwor5YemID4gcGxhY2U7Civmp5ggPiBzaGFwZTsKK+WAjSA+IHRpbWVzOwor57KXID4gcm91Z2g7Civmp4sgPiBmcmFtZTsKK+WGtiA+IHNtZWx0Owor6IazID4gbWVhbHM7Civppq0gPiBkcml2ZTsKK+aclyA+IGNsZWFyOwor6aasID4gaG9yc2U7CivlhbwgPiB1bml0ZTsKK+meiyA+IHNob2VzOwor5qyjID4gaGFwcHk7CivmjKQgPiBjcm93ZDsKK+alvSA+IGhhcHB5Owor5rSBID4gY2xlYW47CivpopcgPiBncmFpbjsKK+aDoCA+IGZhdm9yOwor5oyvID4gcmFpc2U7CivohaYgPiBicmFpbjsKK+eIrCA+IGNyYXdsOwor6IWVID4gd3Jpc3Q7CivmoYMgPiBwZWFjaDsKK+aOqiA+IHBsYWNlOwor5rOwID4gZ3JlYXQ7CivlnaEgPiBzbG9wZTsKK+iEsyA+IGJyYWluOwor5Z2bID4gYWx0YXI7CivlhJ8gPiByZXBheTsKK+aknCA+IGNoZWNrOwor5b2qID4gdGlnZXI7Civppa4gPiBkcmluazsKK+akjSA+IHBsYW50Owor6aSKID4gcmFpc2U7CivohIogPiBzcGluZTsKK+akhSA+IGNoYWlyOwor55+bID4gc3BlYXI7Civlrr4gPiBndWVzdDsKK+iCmiA+IGJlbGx5Owor5YO5ID4gcHJpY2U7CivotLwgPiB0aGllZjsKK+mjsiA+IGRyaW5rOwor5qOyID4gcGVyY2g7Civpo64gPiBkcmluazsKK+WDniA+IGZhbHNlOwor5YOVID4gc2xhdmU7Civmo5IgPiBzdGljazsKK+WDjSA+IGxhYm9yOwor5YK+ID4gdXBzZXQ7CivlgrcgPiB3b3VuZDsKK+WCrCA+IHByZXNzOwor6IKdID4gbGl2ZXI7Civnm58gPiBzd2VhcjsKK+WBvSA+IGZhbHNlOwor566tID4gYXJyb3c7CivogbIgPiBzb3VuZDsKK+mhniA+IGNsYXNzOwor6ICAID4gc2hpbmU7CivpoYYgPiBncmFpbjsKK+WBiSA+IGdyZWF0Owor55avID4gY3Jhenk7CivogLsgPiBzaGFtZTsKK+S+jSA+IHNlcnZlOwor5YCkID4gcHJpY2U7CivooasgPiBzaGlydDsKK+mgkyA+IHBhdXNlOwor5o+tID4gcmFpc2U7CivojrIgPiBsb3R1czsKK+mSuyA+IGRyaWxsOwor5qCEID4gZ2xvcnk7Civls6EgPiBnb3JnZTsKK+mfuyA+IHJoeW1lOwor5p+1ID4gZmVuY2U7CivkuJEgPiBjbG93bjsKK+e/syA+IHNoYWRlOwor5rWTID4gdGhpY2s7CivmjYkgPiBncmFzcDsKK+a+syA+IGlubGV0Owor55a8ID4gYWNoZXM7CivmoaMgPiBzaGVsZjsKK+aKmyA+IHRocm93Owor5L6hID4gcHJpY2U7CivpmJQgPiBicm9hZDsKK+eOmyA+IGFnYXRlOwor6Z20ID4gYm9vdHM7CivlsJ0gPiB0YXN0ZTsKK+aJoyA+IGtub2NrOwor6Z2cID4gcXVpZXQ7CivlgrIgPiBwcm91ZDsKK+S8uiA+IHNlcnZlOwor6ZSQID4gc2hhcnA7CivpnJwgPiBmcm9zdDsKK+WQtSA+IGFyZ3VlOwor5rKfID4gZGl0Y2g7CivmtZEgPiBtdWRkeTsKK+mCqiA+IHdyb25nOwor6ISGID4gY3Jpc3A7Civlgb8gPiByZXBheTsKK+aLnyA+IGRyYWZ0Owor5puzID4gdHJhaWw7Civpm6IgPiBsZWF2ZTsKK+mbnCA+IG1peGVkOwor5Y+bID4gcmViZWw7CivngrwgPiBzbWVsdDsKK+mbkSA+IG1peGVkOwor57+8ID4gd2luZ3M7CivlkbUgPiBzY29sZDsKK+eUnCA+IHN3ZWV0Owor5oq5ID4gc21lYXI7CivpmpkgPiBjcmFjazsKK+aJlCA+IHRocm93Owor5bu3ID4gY291cnQ7CivmjrcgPiB0aHJvdzsKK+WChSA+IHR1dG9yOwor5pmpID4gbmlnaHQ7CivnuZQgPiB3ZWF2ZTsKK+WWtyA+IHNwdXJ0Owor5rWpID4gZ3JlYXQ7CivlkKkgPiBvcmRlcjsKK+S8qiA+IGZhbHNlOwor556OID4gYmxpbmQ7Civnn64gPiBzaG9ydDsKK+m9vyA+IHRlZXRoOwor57eRID4gZ3JlZW47CivlqLYgPiBtYXJyeTsKK+e3iiA+IHRlbnNlOwor6ZeHID4gY2xvc2U7CivnkoMgPiBnbGFzczsKK+aWtyA+IHNldmVyOwor57OWID4gc3VnYXI7Civnj4ogPiBjb3JhbDsKK+ajjSA+IHN0aWNrOwor6ZaRID4gZmVuY2U7CivnjrsgPiBnbGFzczsKK+eguCA+IHNtYXNoOwor5Zq3ID4gc2hvdXQ7CivploMgPiBmbGFzaDsKK+aVtSA+IGVuZW15Owor57WeID4gdHdpc3Q7CivlnZ8gPiBncmF2ZTsKK+m5pCA+IGNyYW5lOwor57WEID4gY2xhc3M7CivkuZYgPiByZWJlbDsKK+e0miA+IGxldmVsOwor57SZID4gcGFwZXI7CivntI0gPiBhZG1pdDsKK+i9qCA+IHRyYWNrOwor5pOxID4gcGxhY2U7Civmk6wgPiBkcmFmdDsKK+ehlSA+IGdyZWF0Owor5pOnID4gcmFpc2U7Civmk6EgPiBjYXJyeTsKK+aTlCA+IGNhcnJ5Owor5pKyID4gcG91bmQ7Civlhb0gPiBiZWFzdDsKK+exliA+IHRhbGx5Owor6ZCYID4gY2xvY2s7Civpga4gPiBjb3ZlcjsKK+aTkiA+IGNhdGNoOwor56+JID4gYnVpbGQ7Civmj4MgPiBzaGVhcjsKK+eukiA+IGJyb29tOwor6byOID4gbGFyZ2U7CivmjoMgPiBzd2VlcDsKK+mNriA+IGJyYXNzOwor5ZeTID4gdm9pY2U7CivnspIgPiBncmFpbjsKK+mMryA+IGVycm9yOwor5ZWlID4gd2hhdFw/Owor6YyiID4gbW9uZXk7CivonJwgPiBob25leTsKK+aMmSA+IHJhaXNlOwor6Yu8ID4gc3RlZWw7Civmi7YgPiBwcmVzczsKK+mLrSA+IHNoYXJwOwor5pCBID4gcGxhY2U7Civpi48gPiB0b25nczsKK+iCvyA+IHN3ZWxsOwor6YqtID4gbW9uZXk7Civoo5kgPiBza2lydDsKK+iDgCA+IHN3ZWxsOwor6L6cID4gY3JpbWU7Civlk4cgPiB2b21pdDsKK+WwvyA+IHVyaW5lOwor6YCuID4gc2VpemU7CivliK4gPiBzaGF2ZTsKK+WYsSA+IG9yZGVyOwor5YChID4gZ3VpZGU7CivmkI8gPiBzZWl6ZTsKK+WFnCA+IHBvdWNoOwor6a2EID4gdmlnb3I7CivmmbAgPiBjbGVhcjsKK+ezlSA+IGNha2VzOwor56epID4gb3JkZXI7CivnqJogPiB5b3VuZzsKK+mIjSA+IGJsdW50Owor5oe3ID4gYm9zb207Civmu6ggPiBiZWFjaDsKK+aHkCA+IGJvc29tOwor6LqBID4gdGVuc2U7CivnlKsgPiBiZWdpbjsKK+emvSA+IGJpcmRzOwor5oa6ID4gcGVhY2U7Civpk74gPiBjaGFpbjsKK+aGrCA+IHJvdXNlOwor5rKQID4gYmF0aGU7Civlh7MgPiBiZW5jaDsKK+mFrCA+IHRvYXN0Owor5oWjID4gaGFiaXQ7Civngb8gPiB2aXZpZDsKK+mftSA+IHJoeW1lOwor5pSAID4gY2xpbWI7CivlkpIgPiBjdXJzZTsKK+ayqyA+IGZyb3RoOwor56KMID4gcm91Z2g7CivlnaQgPiBlYXJ0aDsKK+eEsCA+IGZsYW1lOwor6YCXID4gdGVtcHQ7CivpgoQgPiBzdGlsbDsKK+mtgSA+IGNoaWVmOwor5rulID4gZmxvb2Q7CivpgakgPiBtYXRjaDsKK+aBpSA+IHNoYW1lOwor5qGGID4gZnJhbWU7CivlloAgPiB2b21pdDsKK+eglSA+IGJyZWFrOwor57+FID4gd2luZ3M7CivmiLMgPiBwcmljazsKK+ahqSA+IHN0YWtlOwor6IK6ID4gbHVuZ3M7CivnurEgPiBnYXV6ZTsKK+mZoSA+IHN0ZWVwOwor54OrID4gc2NhbGQ7CivljJUgPiBzcG9vbjsKK+m5hSA+IGdvb3NlOwor5pWeID4gcm9vbXk7CivmtY8gPiBjbGVhcjsKK+eDgSA+IHNoaW5lOwor6K+IID4gY2hlYXQ7Civls6ggPiBsb2Z0eTsKK+iZkCA+IGNydWVsOwor6L6rID4gYnJhaWQ7Civll70gPiBjb3VnaDsKK+aApiA+IGVhZ2VyOwor5rWHID4gc3ByYXk7CivohpsgPiBjaGVzdDsKK+mXtSA+IG1vdXJuOwor6JCDID4gZGVuc2U7CivoopwgPiBzb2NrczsKK+aPvSA+IGdyYXNwOwor6I2rID4gc2hhZGU7CivotL8gPiBicmliZTsKK+aVnSA+IGJyZWFrOwor54aPID4gc21va2U7CivljIAgPiBlcXVhbDsKK+aygyA+IHdhdGVyOwor6J2HID4gZmxpZXM7Civnu54gPiB0d2lzdDsKK+WRlSA+IHZvbWl0Owor5aKFID4gdmlsbGE7Civnp70gPiBkaXJ0eTsKK+iwrCA+IGVycm9yOwor5Z6EID4gZ3JhdmU7CivlkbsgPiBncm9hbjsKK+aLpyA+IHBpbmNoOwor5b2wID4gY2xlYXI7CivmoJYgPiBwZXJjaDsKK+aJvCA+IGdyYXNwOwor5rWKID4gbXVkZHk7CivmnaAgPiBsZXZlcjsKK+aDqyA+IHRpcmVkOwor5pSYID4gc2VpemU7CivnvI4gPiBzYXRpbjsKK+aDriA+IGRyZWFkOwor5ZmXID4gYnVyc3Q7Civnn7YgPiBqZXR0eTsKK+eToyA+IHBldGFsOwor6budID4gYmxhY2s7CivnsIcgPiBzd2FybTsKK+aHiiA+IHZleGVkOwor5Yu6ID4gc3Bvb247CivlpK0gPiB5b3VuZzsKK+aLhyA+IHRodW1iOwor6ZOyID4gc3BhZGU7Civogq4gPiBkaXJ0eTsKK+WTvSA+IGNob2tlOwor6K+jID4gcmVhY2g7CivngqsgPiBzaGluZTsKK+mSnSA+IGJsdW50Owor5qCFID4gZmVuY2U7CivlhpUgPiBjcm93bjsKK+W7kyA+IGJyb2FkOwor5bOtID4gc3RlZXA7Civno4UgPiBwb3VuZDsKK+eWriA+IHR1bW9yOwor6LWDID4gYm9vdHk7CivnmKQgPiB0dW1vcjsKK+WpiiA+IHdob3JlOwor6ZSvID4gYVwtc2F3Owor56eJID4gZ3Jhc3A7Civoh7sgPiByZWFjaDsKK+WYiCA+IG5vaXN5Owor6K+FID4gY3Vyc2U7CivnvLAgPiByZWluczsKK+iuqiA+IGFidXNlOwor5b+hID4gYVwtc2FkOwor5rahID4gc3dpcmw7Civppo0gPiBicmVhZDsKK+mihSA+IHNrdWxsOwor56WvID4gbHVja3k7Civlv5YgPiBndWVzczsKK+eDmSA+IGJyYW5kOwor5Z+UID4gcGxhaW47Civms5MgPiBjbGVhcjsKK+WZjiA+IGNob2tlOwor6ZicID4gbW91bmQ7Civkv6ggPiBncmF2ZTsKK+eCrCA+IHRvcmNoOwor6LSuID4gc3RvcmU7CivmuI4gPiBkaXRjaDsKK+eZqyA+IGNyYXp5Owor54KZID4gcm9hc3Q7CivogocgPiBiZWdpbjsKK+W4miA+IGJyb29tOwor5oGsID4gcXVpZXQ7CivlqaogPiBjb3ZldDsKK+i5kSA+IHRyZWFkOwor56u6ID4gaW5kaWE7CivliYwgPiBzbGFzaDsKK+iNpyA+IHNoaW5lOwor6LWCID4gYnJpYmU7Civor7IgPiB0ZWFjaDsKK+etmyA+IHNpZXZlOwor56+hID4gdXN1cnA7CivpsrggPiB3aGFsZTsKK+aKoSA+IHN3aW5nOwor5rauID4gcmluc2U7CivmjI4gPiBjYXJyeTsKK+mFtSA+IHllYXN0Owor5qmEID4gb2xpdmU7CivmpoQgPiBvbGl2ZTsKK+eooCA+IGRlbnNlOwor5oK7ID4gYW5nZXI7Civpm48gPiBjaGljazsKK+aRuSA+IHRyYWNlOwor5ranID4gYnJvb2s7CivohbogPiBnbGFuZDsKK+WTriA+IGNvdWdoOwor6KKSID4gc3RyaXA7CivmiqAgPiByYWlzZTsKK+W/sSA+IHRydXRoOwor5ZmkID4gY2xvc2U7Civpq68gPiBiZWFyZDsKK+icvyA+IGNyZWVwOwor6ZWAID4gcGxhdGU7Civog60gPiByb3VnZTsKK+mrhSA+IHNrdWxsOwor54SYID4gc2hpbmU7CivkvZcgPiBvdGhlcjsKK+i1syA+IGdyYW5kOwor57OgID4gY2hhZmY7CivluJsgPiBzaWxrczsKK+S+jyA+IHNtYWxsOwor5LiVID4gZ3JlYXQ7CivpsqggPiBzaGFyazsKK+i4nSA+IGFua2xlOwor6amtID4gZHJpdmU7CivnnIggPiBnbG9hdDsKK+WArSA+IGR3YXJmOwor6ZWQID4gc3RvdmU7Civoh4YgPiBjaGVzdDsKK+WtuiA+IGNoaWxkOwor6JmxID4gbG91c2U7CivnkZkgPiBhZ2F0ZTsKK+ikmyA+IGxhcGVsOwor5oG6ID4gZW5qb3k7Civmk54gPiBzaGFrZTsKK+eulSA+IHNpZXZlOwor5raTID4gYnJvb2s7CivlmbwgPiBzb3VuZDsKK+aQkCA+IGNyYW1wOwor5oibID4gbGFuY2U7Civpu5QgPiBibGFjazsKK+mYliA+IGNsb3NlOwor5ZGDID4gYmVsY2g7CivmuokgPiB3YXRlcjsKK+eCgCA+IHJvYXN0Owor55qOID4gd2hpdGU7Civmpq0gPiBraW9zazsKK+mFqiA+IGNyZWFtOwor5YKAID4gZ3JlYXQ7CivlrYAgPiB3aWRvdzsKK+WtqiA+IHR3aW5zOwor5rOxID4gZ3JlYXQ7CivlspYgPiBzdGVlcDsKK+W/uCA+IGJsdXNoOwor556wID4gd2F0Y2g7CivosJIgPiB2aXNpdDsKK+iniiA+IGNvdmV0Owor5rCuID4geGVub247Civnl6MgPiBzcG90czsKK+aRkiA+IGV4cGVsOwor5L+4ID4gd2FnZXM7CivmhKAgPiBhbmdyeTsKK+WykSA+IHN0ZWVwOwor5pC9ID4gc21lYXI7CivmiaogPiBzdG9rZTsKK+eRmiA+IGNvcmFsOwor55qZID4gd2hpdGU7Civnu4kgPiBjcmVwZTsKK+W/viA+IGFuZ2VyOwor55uCID4gYmFzaW47Civnj4AgPiBhbWJlcjsKK+WBiCA+IGJyYXZlOwor5rKUID4gZmxvb2Q7Civor6kgPiBib2FzdDsKK+iKjSA+IHBlb255Owor6KS2ID4gcGxlYXQ7CivphZcgPiBkcnVuazsKK+WSpCA+IHNjb2xkOwor5p+gID4gbGVtb247Civor5kgPiB0ZWFzZTsKK+WBgyA+IGNlYXNlOwor57u6ID4gc2tlaW47Civmj78gPiBwcmVzczsKK+mHiSA+IGdsYXplOwor6bmtID4gaGVyb247CivlrpMgPiBxdWlldDsKK+WtmyA+IGNvbWV0Owor5ZmrID4gYmVsY2g7CivlvIsgPiBjYXRjaDsKK+m+myA+IG5pY2hlOwor5b+qID4gcXVpZXQ7CivplYIgPiBjYXJ2ZTsKK+mqniA+IHJhaXNlOwor6aKMID4gbW91dGg7Civpk6AgPiBhcm1vcjsKK+mzhSA+IGxvYWNoOwor56eGID4gc3RyYXc7CivltoIgPiBjbGlmZjsKK+akvSA+IGJlYW1zOwor6aKmID4gZnJvd247Civmt5YgPiBzbHVzaDsKK+aBmiA+IGFuZ2VyOwor6I6gID4gd2VlZHM7CivmqZsgPiBhXC1wZWc7CivpmJUgPiBjbG9zZTsKK+WSuyA+IHNob3V0Owor56WbID4gZXhwZWw7CivokrogPiBmdXJ6ZTsKK+ihvSA+IGxhcGVsOwor57+VID4gYWdyZWU7CivpnL4gPiBtaXN0eTsKK+egpyA+IGFudmlsOwor6LmJID4gZXJyb3I7Civlk4IgPiBzbWlsZTsKK+iDuiA+IGFtaW5lOwor6JutID4gbGVlY2g7Civpn6ogPiByaWdodDsKK+ivqCA+IGpva2VzOwor6LWdID4gZmFsc2U7Civlsr8gPiBncmFuZDsKK+aAqyA+IHNvcnJ5Owor6I2PID4gYmVhbnM7CivmpZQgPiB3ZWRnZTsKK+aTmCA+IHRodW1iOwor6L2xID4gd2hlZWw7Civlqr4gPiBtYXJyeTsKK+eXjSA+IHdvdW5kOwor542tID4gb3R0ZXI7Civpu6IgPiBibGFjazsKK+mTpyA+IHNwYWRlOwor5ZCSID4gc2hvdXQ7Civnlr0gPiB1bGNlcjsKK+ivnyA+IGFidXNlOwor6IyUID4gZ3JhdmU7CivmoaQgPiBhbGRlcjsKK+mThiA+IHJpdmV0Owor6YWpID4gZHJ1bms7CivmsLUgPiB3YXRlcjsKK+aSuiA+IGh1cnJ5Owor5aWYID4gbGFyZ2U7CivogoQgPiBsZWFybjsKK+i4ryA+IHdhdmVyOwor5a2iID4gc3BvcmU7CivpsrIgPiBzcGF3bjsKK+mFiiA+IGRydW5rOwor6ZOoID4gd2VpZ2g7Civphb0gPiB0aGljazsKK+mYkiA+IGFsb25lOwor6aWsID4gb3JkZXI7CivosZUgPiBhXC1waWc7CivnrIogPiBsYWRsZTsKK+e9hSA+IGNyYWNrOwor6ZKcID4gc3RlZWw7CivnlYggPiBmaWVsZDsKK+WblyA+IGVyZWN0Owor5bqlID4gc2hhZGU7Civnk6QgPiBmbGVzaDsKK+mTqSA+IG1vdWx0Owor5riWID4ganVpY2U7Civlv4QgPiBoZWFydDsKK+ivkyA+IGNoZWF0Owor6bmRID4gcXVhaWw7CivojJUgPiBhbG9uZTsKK+WehSA+IG1vdW5kOwor6J+lID4gbGVlY2g7CivpubMgPiBjcmFuZTsKK+m5jCA+IHF1YWlsOwor5pmfID4gY2xlYXI7CivllYEgPiBjaGlycDsKK+mGmiA+IGV0aGVyOwor55CwID4gamV3ZWw7Civov6ggPiB1bnRpbDsKK+ikqyA+IHN0cmlwOwor6bmsID4gc25pcGU7Civnnr0gPiBibGluZDsKK+WCiCA+IHRyaWJlOwor6am9ID4gdGlyZWQ7CivosK8gPiB0b3dlcjsKK+mTsCA+IGhpbmdlOwor5rSMID4gY2xlYXI7CivloJ4gPiBwbGF0ZTsKK+ehvCA+IGJvcmF4Owor6KmIID4gc2NvbGQ7Civpha8gPiBlc3RlcjsKK+mVqiA+IGNvaW5zOwor6ZS4ID4gc3BhZGU7CivmiIsgPiBzbWFsbDsKK+aJpiA+IHByb2JlOwor5rq3ID4gcHJpdnk7Civkv7MgPiBhY3RvcjsKK+mboCA+IGVuZW15Owor56C7ID4gZ3JpbmQ7CivomJYgPiBzdHVtcDsKK+WigCA+IHBvcmNoOwor6bq0ID4geWVhc3Q7CivnqrMgPiBkaXJ0eTsKK+a9iyA+IHdhdmVzOwor5rSOID4gdW50aWw7CivppacgPiBzdWdhcjsKK+WWiCA+IG11c2ljOwor5ZChID4gYmxhbWU7CivpmZ8gPiBjbGltYjsKK+mymyA+IHNoYXJrOwor55qyID4gY3JhY2s7CivnmIogPiB3YXJ0czsKK+mmlSA+IGJyZWFkOwor5pCmID4gZ3Jhc3A7CivlnrQgPiBzbWFsbDsKK+mYnSA+IHBsYWNlOwor5Y6jID4gc2hlbGw7Civns4UgPiBibGVuZDsKK+mTlyA+IHRvbmdzOwor6ZiPID4gYmxvY2s7CivliaEgPiBzaGFycDsKK+mygiA+IGJyZWFtOwor5rq9ID4gbW9pc3Q7CivmgL8gPiBlbmpveTsKK+iJuSA+IGdyYXNzOwor6auRID4gc2t1bGw7Civot70gPiBrbmVlbDsKK+ewjyA+IGFcLWJveDsKK+ijpSA+IGZvbGRzOwor6ZKjID4gcGxhdGU7Civmp4ogPiBzcGVhcjsKK+akiyA+IGZydWl0Owor57yzID4gbm9vc2U7Civnu5AgPiBjaGVhdDsKK+a7oiA+IGNsZWFyOwor6b6gID4gZmx1dGU7CivonaQgPiBsYXJ2YTsKK+awhiA+IHRoaWNrOwor5Z+tID4gYVwtZGFtOwor5Z+9ID4gYnJvb207CivlnbwgPiBzcGxpdDsKK+ivliA+IGVycm9yOwor6bK2ID4gc2hlYXQ7CivosoUgPiBicmF2ZTsKK+eapCA+IHdoaXRlOwor56iCID4gZ3Jhc3M7CivplYYgPiBzd29yZDsKK+mUniA+IGluZ290Owor54idID4gdG9yY2g7CivmsKEgPiByYWRvbjsKK+anrSA+IG1hcGxlOwor5b2YID4gc3dpbmU7CivlvZYgPiBhXC1ob2c7Civmu5cgPiBkcmFpbjsKK+W7kSA+IGFcLWh1dDsKK+WMjyA+IGdvdXJkOwor6JWWID4gbG90dXM7CivkvpQgPiBlcXVhbDsKK+mziiA+IGJyZWFtOwor56+8ID4gc2VkYW47Civom54gPiBzbmFpbDsKK+ibsiA+IHdvcm1zOwor6JmNID4gdGlnZXI7CivmsJkgPiB4ZW5vbjsKK+i1hyA+IGJyaWJlOwor55KBID4gXChnZW1cKTsKK+e7lyA+IGJhc3RlOwor6JCPID4gbG90dXM7Civln5ggPiByb29zdDsKK+m9kiA+IHRlZXRoOwor6b2FID4gc21lbGw7Civpu64gPiBibGFjazsKK+m7kyA+IGJsYWNrOwor6bq6ID4gZmxvdXI7CivpurkgPiB5ZWFzdDsKK+m6tSA+IGZsb3VyOwor6bqvID4geWVhc3Q7CivpuqsgPiBmbG91cjsKK+m6qiA+IGZsb3VyOwor6bqkID4gcm91Z2g7CivpupggPiBzY2VudDsKK+m6gSA+IHJvdWdoOwor6bm+ID4gc2FsdHk7CivpubogPiBzYWx0eTsKK+m5uSA+IHNhbHR5Owor6biyID4gbXluYWg7CivpuJsgPiBjcmFuZTsKK+m4mCA+IGVhZ2xlOwor6be4ID4gc25pcGU7Civpt4MgPiBxdWFpbDsKK+m2tSA+IGNoaWNrOwor6baJID4gcXVhaWw7CivptbAgPiBlYWdsZTsKK+m1qiA+IHF1YWlsOwor6bWeID4gZ29vc2U7CivptZ0gPiBnb29zZTsKK+m0syA+IHF1YWlsOwor6bSqID4gc3dvb3A7CivptKUgPiBzd29vcDsKK+m0nSA+IG15bmFoOwor6bG7ID4gZnJlc2g7Civpsa4gPiBicmVhbTsKK+mwniA+IHNxdWlkOwor6bCNID4gbG9hY2g7CivpsIsgPiBzaGVhdDsKK+mvvyA+IGJyZWFtOwor6a+wID4gc2hlYXQ7Civpr6ggPiB3aGFsZTsKK+mvpCA+IHNwYXduOwor6a+LID4gc2hhcms7Civpr4ogPiBzaGFyazsKK+muqyA+IHNoYXJrOwor6a6JID4gYnJlYW07CivprbQgPiBicmVhbTsKK+mthiA+IGJsYWNrOwor6aySID4gYmxhY2s7CivprI4gPiBmYXZ1czsKK+msjSA+IGJlYXJkOwor6ayBID4gZmF2dXM7Civpq7MgPiBzdGF0ZTsKK+mrsiA+IGFcLXdpZzsKK+mrpSA+IGJlYXJkOwor6auSID4gZGlydHk7Civpq48gPiBza3VsbDsKK+mqryA+IGRpcnR5Owor6ampID4gaGFwcHk7CivpqaYgPiBob3JzZTsKK+mpliA+IGJsYWNrOwor6ai7ID4gaG9yc2U7CivpqKsgPiByYWlzZTsKK+mooCA+IGhvcnNlOwor6aiRID4gaG9yc2U7Civpp6ogPiBjcm93ZDsKK+mnniA+IGNhbWVsOwor6aeRID4gdGlyZWQ7CivppqEgPiBzY2VudDsKK+mloiA+IGJyZWFkOwor6aWYID4gZ3J1ZWw7CivppY0gPiBtZWFsczsKK+mlgyA+IGJyZWFkOwor6aS7ID4gY2FrZXM7CivppLkgPiBzdWdhcjsKK+mksyA+IHN1Z2FyOwor6aSqID4gZmVhc3Q7CivppKYgPiBjYW5keTsKK+mknCA+IGNha2VzOwor6aO2ID4gb2RvdXI7Civpo60gPiBvcmRlcjsKK+mjkSA+IHN0b3JtOwor6aK9ID4gYmFsbXk7CivpobEgPiBza3VsbDsKK+mhsCA+IGZyb3duOwor6aGjID4gZnJvd247CivpoZcgPiBxdWlldDsKK+mgviA+IGJlYXJkOwor6aCgID4gcXVpZXQ7CivpoJwgPiBtb3V0aDsKK+mggCA+IG11c2ljOwor6Z+6ID4gbXVzaWM7Civpn6QgPiBzb2NrczsKK+mfmSA+IHJpZ2h0Owor6Z+TID4gZmVuY2U7Civpn4ggPiBzb2NrczsKK+mfhiA+IHN3aW5nOwor6Z+BID4gcmVpbnM7Civpnr4gPiBib290czsKK+metSA+IHNob2VzOwor6Z6oID4gdHJpYmU7CivpnpcgPiByZWluczsKK+megyA+IGJvYXJkOwor6Z2mID4gdGltaWQ7CivpnYEgPiB0aGljazsKK+mcsSA+IGNsb3VkOwor6ZyZID4gc2xlZXQ7Civpm50gPiBtYXJzaDsKK+mbmyA+IGNoaWNrOwor6ZqCID4gc2hhZHk7CivpmbwgPiBpc2xldDsKK+mYuSA+IGFcLXBlbjsKK+mXmiA+IGZsYXNoOwor6ZeUID4gY2xvc2U7Civpl4sgPiBjbG9zZTsKK+mXiiA+IGJyb2FkOwor6ZeDID4gYWxvbmU7CivplrwgPiBibG9jazsKK+mWtCA+IHF1aWV0Owor6ZamID4gY3Jvd2Q7CivplpQgPiBtb3VybjsKK+mVnyA+IGxhdGhlOwor6ZS8ID4gY2FydmU7CivplJMgPiBjYXJ2ZTsKK+mTmCA+IHN3b3JkOwor6ZKDID4gbWV0YWw7Civpkb0gPiBkcmlsbDsKK+mRsSA+IHNwYWRlOwor6ZGaID4gZHJpbGw7CivpkZMgPiBzcGVhcjsKK+mPuSA+IGNvaW5zOwor6Y+1ID4gc3BhZGU7Civpj6YgPiBzcGVhcjsKK+mPpCA+IGNhcnZlOwor6Y+fID4gc3BhZGU7Civpj4wgPiBzd29yZDsKK+mPiCA+IGNoYWluOwor6Y+HID4gbGF0aGU7CivpjqwgPiBzdG92ZTsKK+mOpyA+IGFybW9yOwor6Y6XID4gcmlmbGU7Civpjo0gPiBjaGFpbjsKK+mNuSA+IHNwYWRlOwor6Y2tID4gYXJyb3c7CivpjaQgPiBzcGFkZTsKK+mNjyA+IHNwYWRlOwor6Y2NID4gcGxhdGU7CivpjYkgPiBzcG9vbjsKK+mMgSA+IGluZ290Owor6Yu5ID4gc2hhcnA7Civpi7ggPiBhXC1zYXc7Civpi7IgPiByaXZldDsKK+mLnyA+IGNhcnZlOwor6YuYID4gc3dvcmQ7CivpirMgPiBzaGFycDsKK+mKmyA+IHNoYXJwOwor6YqTID4gd2VpZ2g7Civpib4gPiBzcGVhcjsKK+mJvCA+IHBsYXRlOwor6Ym4ID4gaGluZ2U7CivpiZogPiByaXZldDsKK+mJhSA+IHN0ZWVsOwor6YiSID4gc3BlYXI7CivpiJEgPiBwbGF0ZTsKK+mIhyA+IGFuXC1heDsKK+mHvCA+IHN3b3JkOwor6YeWID4ga25pZmU7Civph4UgPiB0aGljazsKK+mHgiA+IGRyYWluOwor6YS7ID4gc3BvaWw7Civpg6QgPiBjcmFjazsKK+mBqyA+IHNwZWVkOwor6YGdID4gbWl4ZWQ7CivpgLQgPiBhcmd1ZTsKK+i+riA+IGJyYWlkOwor6L6kID4gd29yZHM7CivovqAgPiBjcmltZTsKK+i8kyA+IG1vdXJuOwor6LyPID4gbGlnaHQ7CivovIggPiBzaGFmdDsKK+i7sSA+IHdoZWVsOwor6LucID4gcmVpbnM7Civou4wgPiB0cmFjazsKK+i6oSA+IHRyZWFkOwor6LiGID4gc3F1YXQ7CivotqEgPiBwbGFjZTsKK+i0nCA+IGJvb3R5Owor6LSTID4gYm9vdHk7CivotIsgPiBmYWxzZTsKK+izlSA+IGJyaWJlOwor6LOUID4gZ3Vlc3Q7Civos5MgPiBndWVzdDsKK+izjSA+IGJvb3R5Owor6LOEID4gYnJpYmU7Civos4IgPiBicmliZTsKK+iyvyA+IHRyYWRlOwor6LKkID4gc3RlcHM7CivosZQgPiBwbHVtcDsKK+iumSA+IGNoZWVyOwor6K6TID4gYWxsb3c7CivorpAgPiBlbmVteTsKK+iujiA+IGVuZW15Owor6K2ZID4gdG93ZXI7CivorYwgPiBmYWxzZTsKK+itgSA+IG5vaXNlOwor6KysID4gZXJyb3I7CivorJEgPiBzaGFtZTsKK+isjyA+IHNjb2xkOwor6KuiID4gam9rZXM7Civoq6AgPiBub2lzeTsKK+irkCA+IGZhdWx0Owor6KqqID4gc3BlYWs7CivoqqggPiB0ZWFjaDsKK+iqhiA+IGNoZWF0Owor6Km/ID4gZXJyb3I7CivoqbwgPiB0ZWFzZTsKK+iprCA+IGFidXNlOwor6KmjID4gcmVhY2g7CivoqaEgPiBib2FzdDsKK+ipmyA+IGN1cnNlOwor6KmWID4gYXJndWU7CivoqZEgPiBjaGVhdDsKK+ipkCA+IGNoZWF0Owor6Ki9ID4gYmxhbWU7CivoqKcgPiBmYXVsdDsKK+iolSA+IGFidXNlOwor6KiTID4gdGVhY2g7CivoqI8gPiBib2FzdDsKK+inlCA+IGNhdHR5Owor6KasID4gY292ZXQ7Civopo8gPiBydWxlczsKK+ilviA+IGNvdmVyOwor6KWqID4gc29ja3M7CivopaIgPiBzdHJpcDsKK+iljSA+IG1peGVkOwor6KS7ID4gZGlydHk7CivopLogPiBkaXJ0eTsKK+iklSA+IHNoaXJ0Owor6KK1ID4gbGFwZWw7CivooZUgPiBhbGxleTsKK+ihiiA+IHNtZWFyOwor6KGBID4gYmxvb2Q7CivooJsgPiBmbGllczsKK+iglyA+IFwoYXBlXCk7CivooIUgPiBmbGllczsKK+ifryA+IHdvcm1zOwor6J+iID4gY2F1bGs7CivonaggPiBsb3VzZTsKK+idmCA+IGdlY2tvOwor6J2TID4gc25haWw7CivomrQgPiBsYXJ2YTsKK+iZoyA+IGNydWVsOwor6JmbID4gZmFsc2U7CivomJcgPiBzdHVtcDsKK+iYkyA+IHRoeW1lOwor6JiLID4gYXBwbGU7Civol74gPiBzaGFkZTsKK+iXqiA+IG1hcnNoOwor6JaWID4gZW1wdHk7CivolokgPiBkaXJ0eTsKK+iSniA+IHJlYWNoOwor6JGiID4gY292ZXI7CivokY0gPiBwbGFudDsKK+iQuSA+IGdyYXNzOwor6I6/ID4gdGhvcm47CivojbMgPiBiZWFuczsKK+iNriA+IGdyYXNzOwor6I2EID4gcm9vdHM7CivojIcgPiBncmFzczsKK+iLviA+IHNtZWxsOwor6Iu2ID4gd2Vhcnk7CivoiJcgPiBzdG9yZTsKK+iIliA+IHN0b3JlOwor6IiLID4gc3BsaXQ7CivoiIkgPiByYWlzZTsKK+iHvSA+IGFcLXBpdDsKK+iHsiA+IGp1bXB5Owor6IeiID4gZGlydHk7Civoh5sgPiBicm90aDsKK+iHmSA+IHJvdWdlOwor6IeQID4gYnJvdGg7CivohrYgPiBsaXZlcjsKK+iGhyA+IHN3ZWxsOwor6IWrID4gc3dlbGw7CivohaEgPiBsaW5lczsKK+iEuSA+IHN3ZWxsOwor6IS2ID4gbGluZXM7CivohKIgPiBmbGVzaDsKK+iEgyA+IGdsYW5kOwor6IK1ID4gdGFibGU7CivogpUgPiB0b3VnaDsKK+iAniA+IGZsYWlsOwor57+9ID4gd2hpcnI7Civnv4QgPiB3aW5kczsKK+e+sSA+IHNoZWVwOwor576jID4gZ3JvdXA7CivnvbcgPiBjZWFzZTsKK+e9iSA+IGFcLXBvdDsKK+e6uyA+IHJhbWllOwor57mvID4gbm9vc2U7Civnua4gPiByZWluczsKK+e4oCA+IGNyZXBlOwor57iQID4gY3JlcGU7CivnuI8gPiBwdXJzZTsKK+e3niA+IHNhdGluOwor57a5ID4gc2tlaW47CivntqAgPiBncmVlbjsKK+e2jCA+IGNsb3RoOwor57WOID4gYmFzdGU7CivntYEgPiByb3VnaDsKK+e0vyA+IGNoZWF0Owor57S1ID4gcmFtaWU7CivntJ0gPiB3ZWF2ZTsKK+e0lyA+IGdhdXplOwor57SRID4gZnJlc2g7Civns5QgPiBqdWljZTsKK+ezkyA+IGdyYWluOwor57KOID4gbWV0cmU7CivnsaQgPiB0YWxseTsKK+ewuyA+IGVtcHR5Owor57CbID4gc2lldmU7CivnsJIgPiB1c3VycDsKK+ewgSA+IHNpZXZlOwor56+pID4gc2lldmU7Civnr48gPiBpbmxheTsKK+eumyA+IGJ1Z2xlOwor562zID4gZmVhc3Q7CivnrbAgPiBjYWJsZTsKK+etpiA+IGFcLWtleTsKK+erviA+IGZsdXRlOwor56uUID4gbGl0cmU7Civnqr0gPiBlbXB0eTsKK+eppyA+IHNoZWFmOwor56miID4gZGlydHk7CivnqaAgPiB0aGljazsKK+ephSA+IGNoYWZmOwor56i+ID4gZHJhZnQ7CivnqIUgPiB0YXhlczsKK+enhyA+IHNraWxsOwor56agID4gaGFwcHk7Civnpo4gPiBsdWNreTsKK+elmSA+IGRlbW9uOwor56S2ID4gYVwtanVnOwor56SxID4gZ3JpbmQ7Civno7UgPiBicm9vazsKK+ejryA+IGpldHR5Owor56OhID4gY2xpZmY7Civno5sgPiBjbGlmZjsKK+ejiCA+IHJvY2t5Owor56K7ID4gc29saWQ7Civnoq8gPiBhZ2F0ZTsKK+eiqSA+IGdyZWF0Owor56KBID4gY2hlc3M7CivnoY8gPiBncmluZDsKK+egsyA+IHJvY2t5Owor56CgID4gcm9ja3k7Civnn5MgPiBmYWludDsKK+efiCA+IGRlbnNlOwor556PID4gcm91bmQ7Civnno0gPiBibGluZDsKK+eehyA+IGNsb3NlOwor552YID4gcm91bmQ7CivnnLkgPiBwdXBpbDsKK+echSA+IGlubGF5Owor55u7ID4gZ2xhcmU7Civnm60gPiBjcnVlbDsKK+eavSA+IHNjdXJmOwor55q5ID4gY3JhY2s7CivnmrggPiBjcmFjazsKK+earSA+IHdoaXRlOwor55qrID4gd2hpdGU7CivnmpwgPiB3aGl0ZTsKK+eagSA+IGJsYWNrOwor55myID4gY3Jhenk7CivnmaEgPiBzaWxseTsKK+eYoSA+IHR1bW9yOwor55iLID4gY3Jhenk7CivnlJ4gPiB0YXN0ZTsKK+eUmyA+IHN3ZWV0Owor55SWID4gYVwtcG90Owor55SOID4gYnJpY2s7Civnk5YgPiBpbmxheTsKK+eTiCA+IGdsYXNzOwor55GqID4gYWdhdGU7CivnkZQgPiBcKGphZGU7CivnkZEgPiBjYXJ2ZTsKK+ePliA+IGNhcmF0Owor546IID4gYmxhY2s7CivnjZ0gPiBkZXZpbDsKK+eNjiA+IHByaXplOwor54u1ID4gYmxlbmQ7CivniZwgPiBhblwtb3g7CivniZQgPiBnYWJsZTsKK+eIkyA+IGZsYW1lOwor54iNID4gc2hpbmU7Civnh78gPiBzaGluZTsKK+eHviA+IHNoaW5lOwor54emID4gdml2aWQ7Civnh5kgPiBzY2FsZDsKK+eHjyA+IGJsYXplOwor54eEID4gZmxhbWU7Civnh4IgPiBzbW9rZTsKK+eGmyA+IGJsYXplOwor54aSID4gc2hpbmU7CivnhawgPiByb2FzdDsKK+eFoiA+IGFsb25lOwor54WJID4gc21lbHQ7CivnhJQgPiBmbGFtZTsKK+eDkyA+IHN0b3ZlOwor54OLID4gYm9hc3Q7CivngrAgPiByb2FzdDsKK+eCpyA+IGFzaGVzOwor54GjID4gYVwtYmF5Owor54GiID4gbXVkZHk7CivngZQgPiB3YXZlczsKK+eAuiA+IHNvdW5kOwor54CyID4gd2F2ZXM7CivngI8gPiBjbGVhcjsKK+eAiyA+IGp1aWNlOwor54CGID4gZGl0Y2g7CivngIUgPiBjbGVhcjsKK+eAgSA+IHdhdmVzOwor5r+rID4gZmxvb2Q7CivmvqggPiBzaG9yZTsKK+a+lyA+IGJyb29rOwor5r6RID4gc2xpZGU7CivmvoYgPiBzcHJheTsKK+a9tyA+IGRyYWluOwor5r2dID4gYWdyZWU7CivmvJEgPiB3YXRlcjsKK+a8iCA+IHNob3JlOwor5rmpID4gbXVkZHk7CivmuaMgPiBtaXhlZDsKK+a4viA+IG11ZGR5Owor5re4ID4gY2xlYXI7Civmt6IgPiBkaXRjaDsKK+a3miA+IHRlYXJzOwor5reKID4gZHJvd247CivmtaUgPiBtb2lzdDsKK+a0tCA+IHNvdW5kOwor5rSaID4gZmxvb2Q7CivmtI8gPiB0ZWFyczsKK+azmiA+IGNsZWFyOwor5rKyID4gZmxvYXQ7CivmsbMgPiBoZW5hbjsKK+axjiA+IGZsb2F0Owor5rC5ID4gZGl0Y2g7CivmsKUgPiB4ZW5vbjsKK+awnCA+IGNsZWFyOwor5q6RID4gc3dvb247Civmrb4gPiBkcm93bjsKK+atlSA+IHNwdXJ0Owor5q2TID4gaGFwcHk7CivmrYggPiBzb25nczsKK+asvCA+IGRyaW5rOwor5qy4ID4gc2lnaHM7CivmrKwgPiBjb3VnaDsKK+asmSA+IHNlZGFuOwor5qyWID4gb2xpdmU7Civmq7EgPiB5ZWFzdDsKK+ariCA+IGJlbmNoOwor5qq4ID4gbGVtb247Civmqq8gPiB0YWJsZTsKK+aqqCA+IG1hbmdvOwor5qqUID4gc2hlbGY7CivmqLQgPiBzdGFrZTsKK+aolSA+IHNocnViOwor5qiPID4gc2VkYW47CivmqIEgPiBzdGFrZTsKK+anvCA+IHJ1bGVzOwor5qeTID4gbGV2ZXI7Civmp40gPiBzcGVhcjsKK+amvyA+IGFsZGVyOwor5qauID4gZ2xvcnk7CivmpbMgPiBwbHVtczsKK+alhSA+IGJ1YXJkOwor5qWEID4gYmxvY2s7CivmpIggPiBjZWRhcjsKK+ajiiA+IGNoZXNzOwor5qOBID4gam9pc3Q7CivmorIgPiBqb2lzdDsKK+aikCA+IGZlbmNlOwor5qGvID4gdGFibGU7Civmoa0gPiBlYXZlczsKK+ahmiA+IHByZXNzOwor5qC1ID4gaGVkZ2U7CivmoKsgPiBmZW5jZTsKK+aglCA+IGNhcnZlOwor5qCNID4gYVwtbG90Owor5p+2ID4gbGFkbGU7CivmnacgPiBtYW5nbzsKK+adlSA+IGFsb25lOwor5pyuID4gc2tpbGw7CivmnJYgPiBjbGVhcjsKK+achSA+IGJyYXZlOwor5pu1ID4gdHJhaWw7Civmm6ggPiB2YWd1ZTsKK+aWhiA+IHRlYWNoOwor5paFID4gdGVhY2g7CivmlbogPiBleHBlbDsKK+aVlCA+IGdhdmVsOwor5pWOID4gdGVhY2g7CivmlKwgPiBncmFzcDsKK+aUmyA+IGh1cnJ5Owor5pO7ID4gc2hha2U7Civmk7IgPiB0aHJvdzsKK+aTsCA+IHBpbmNoOwor5pOgID4gY3Jvd2Q7CivmkrMgPiBwcmVzczsKK+aRsyA+IHJhaXNlOwor5pGPID4gcG91bmQ7CivmkKQgPiBzZWl6ZTsKK+aQiiA+IHBsdWNrOwor5pCJID4ga25vY2s7Civmj7UgPiBjYXJyeTsKK+aPhSA+IGdyaW5kOwor5o6EID4gc3dpbmc7Civmjb8gPiBwZXJjaDsKK+aNqyA+IHN0b2tlOwor5oyMID4gZmlnaHQ7Civmi4sgPiB0aHJvdzsKK+aLgyA+IGdyb3BlOwor5omiID4gY2FwZXI7CivmiK0gPiBzcGVhcjsKK+aIoyA+IGxhbmNlOwor5oieID4gbGFuY2U7CivmiJQgPiBzbWFsbDsKK+aHvSA+IGhhcHB5Owor5oelID4gYW5ncnk7Civmh6AgPiBhbmdyeTsKK+aHjCA+IGVuam95Owor5oatID4gY2xlYXI7CivmhpogPiBkcmVhZDsKK+aGiiA+IHRpcmVkOwor5oWsID4gYnJhdmU7CivmhY0gPiBhbmdyeTsKK+aEviA+IGFuZ2VyOwor5oS3ID4gZW5qb3k7CivmhJ4gPiB0aW1pZDsKK+aEgyA+IHJlbGF4Owor5oK+ID4gbmFpdmU7CivmgrAgPiBlbmpveTsKK+aChiA+IGhhcHB5Owor5oG1ID4gZmF2b3I7CivmgZMgPiB2ZXhlZDsKK+W9kSA+IHNub3V0Owor5b2QID4gc25vdXQ7CivlvYIgPiBpc3N1ZTsKK+W8iSA+IGxhcmdlOwor5buVID4gc2hhZGU7Civlua0gPiBjb3ZlcjsKK+W5qiA+IGNvdmVyOwor5bmmID4gY292ZXI7CivluaAgPiBjb3ZlcjsKK+W4kiA+IGFcLWJhZzsKK+W4iyA+IHBhcGVyOwor5betID4gc3R1ZHk7Civlt5sgPiByaXZlcjsKK+W3liA+IGNsaWZmOwor5beMID4gY2xpZmY7Civlt4sgPiBncmFuZDsKK+W3iSA+IHN0ZWVwOwor5beDID4gbG9mdHk7CivltrAgPiBnb3JnZTsKK+W2oSA+IHRhYmxlOwor5baeID4gcmlkZ2U7CivltpQgPiBsb2Z0eTsKK+W2hyA+IHN0ZWVwOwor5bWcID4gcm91Z2g7CivltZIgPiBjbGlmZjsKK+W1giA+IGxvZnR5Owor5bSxID4gbG9mdHk7CivltJogPiBoaWxseTsKK+W0lSA+IGNsaWZmOwor5bO9ID4gZ29yZ2U7Civls6kgPiBsb2Z0eTsKK+WxtiA+IGxvZnR5Owor5bG0ID4gbG9mdHk7CivlsaogPiBwZW5pczsKK+WxjCA+IHBlbmlzOwor5bCwID4gc3dlbGw7CivlsJkgPiBzdGlsbDsKK+WvrCA+IGJyb2FkOwor5a+bID4gYnJvYWQ7Civlr4EgPiBxdWljazsKK+WuuyA+IGRlbnNlOwor5a6NID4gZmxlc2g7Civlrb8gPiB0d2luczsKK+WtliA+IHR3aW5zOwor5auaID4gc2Nvcm47Civlp6ogPiBuaWVjZTsKK+WlsCA+IGFuZ2VyOwor5aWsID4gcHJpemU7CivlpaggPiBwcml6ZTsKK+WlnSA+IGxhcmdlOwor5aOgID4gbW91bmQ7Civlo58gPiBncmF2ZTsKK+WjhiA+IHN0aWZmOwor5aK6ID4gd2FsbHM7CivlorMgPiBncmF2ZTsKK+WinSA+IHN0b255Owor5aKNID4gcGFpbnQ7CivlooggPiBjbGlmZjsKK+WhvCA+IGJyaWNrOwor5aGcID4gZHVzdHk7CivloZkgPiB0cnVseTsKK+WhkiA+IHJvb3N0Owor5aGLID4gZ3JhdmU7CivloYggPiBwYWludDsKK+WgvyA+IHNhbHR5Owor5aC9ID4gbW91bmQ7CivloJYgPiBzbWFsbDsKK+WfsyA+IGFcLXBpdDsKK+WfjCA+IHdhc3RlOwor5Z+GID4gc3Rvbnk7CivlnpogPiBtb3VuZDsKK+WdvyA+IG1vdW5kOwor5Z2wID4gd2lsZHM7CivlnIwgPiBmZW5jZTsKK+WbkSA+IG9yZGVyOwor5ZuFID4gc21pbGU7Civlmq4gPiBndWlkZTsKK+WarSA+IG1vdW5kOwor5ZqsID4gZnJvd247CivlmqEgPiByb3VnaDsKK+WakCA+IHRhc3RlOwor5ZqHID4gc2NhcmU7CivlmbogPiBzdG9yeTsKK+WZtCA+IHNwdXJ0Owor5ZmtID4gc2hvdXQ7CivlmaYgPiBiZWxjaDsKK+WYoiA+IHRoaW5nOwor5ZiSID4gc2hhcnA7Civll5sgPiBwb3VjaDsKK+WXmSA+IGJvYXN0Owor5ZeQID4gYWxhc1whOwor5Za0ID4gaGVsbG87CivllbIgPiBhXC1mZXc7CivllaIgPiBvdW5jZTsKK+WVjSA+IGNyZWFrOwor5ZShID4gb3VuY2U7CivllI4gPiBzb3VuZDsKK+WTtiA+IGJsZWF0Owor5ZOVID4gYmVsY2g7CivlkqIgPiBzb3VuZDsKK+WSjSA+IGxhdWdoOwor5ZCwID4gY2xhbmc7CivlkKMgPiB2b21pdDsKK+WPmiA+IGZhbHNlOwor5Y66ID4gdG9cLWdvOwor5Y65ID4gc3BlYXI7CivljrQgPiBzaGVsbDsKK+WOqiA+IGFcLWh1dDsKK+WOliA+IGJ1bGt5Owor5Y27ID4gc3RpbGw7CivljawgPiBsb2Z0eTsKK+WMnCA+IGJhc2luOwor5Yu7ID4gZXF1YWw7CivlipQgPiBzd29yZDsKK+WKkiA+IHN3b3JkOwor5YqOID4gc3dvcmQ7CivlibEgPiBzd29yZDsKK+WJoCA+IGJyYW5kOwor5YiCID4ga25pZmU7Civlh7wgPiBkaXRjaDsKK+WHiCA+IGNsZWFuOwor5YapID4gd3JpdGU7CivlhqcgPiBhXC1idWQ7CivlhpogPiBjb3ZlcjsKK+WGliA+IGNvdmVyOwor5YaBID4gc21pbGU7CivlhLwgPiBncmF2ZTsKK+WEjiA+IGNhcnJ5Owor5YSMID4gbHVja3k7Civlg78gPiBzbWFsbDsKK+WDhCA+IGxpZ2h0Owor5YKrID4gdGlyZWQ7CivlgZAgPiBmYWxzZTsKK+WBgSA+IHN0YXRlOwor5YCWID4gbHVja3k7Civkv7YgPiBzdGFydDsKK+S+kCA+IHF1aWV0Owor5L6BID4gY3Jvd2Q7CivkvbogPiBmYWlyeTsKK+S9jCA+IHNtYWxsOwor5LypID4gdHJ1c3Q7Civku6sgPiB0cmliZTsKK+S6viA+IGRlYXRoOwor5LqxID4gbmlnaHQ7CivkuZUgPiB0aWdlcjsKK+S4tSA+IHRoaWNrOwor5LivID4gZGVuc2U7CivkuK4gPiBjYXRjaDsKK+S4jCA+IHRhYmxlOwor5LiFID4gdW5kZXI7CivkuIQgPiBhYm92ZTsKK+S2kyA+IHJhbWllOwor5LaPID4gdGVhcnM7CivktosgPiBzb3VuZDsKK+S2hyA+IGFcLXJhdDsKK+S2hiA+IGFcLXJhdDsKK+S1rSA+IGJsYWNrOwor5LWlID4gYmxhY2s7CivktZ8gPiBibGFjazsKK+S0uiA+IGNha2VzOwor5LS5ID4gY2FrZXM7CivktLUgPiBjYWtlczsKK+S0siA+IGZsb3VyOwor5LSeID4gc2FsdHk7Civks70gPiBjcmFuZTsKK+SzsSA+IGR1Y2tzOwor5LOYID4gZ29vc2U7Civks5cgPiBnb29zZTsKK+SyoSA+IGxvYWNoOwor5LKRID4gc3Bhd247CivksZwgPiBzaGFyazsKK+SxliA+IHNoYXJrOwor5LGLID4gc3Bhd247CivksKIgPiBnaG9zdDsKK+SwlyA+IGFcLWxvdDsKK+SwkiA+IHZhZ3VlOwor5LCRID4gYmVhcmQ7CivksIUgPiBiZWFyZDsKK+SvviA+IGhhaXJ5Owor5K+4ID4gYVwtd2lnOwor5K+NID4gYm9uZXM7Civkrb0gPiBncm91cDsKK+StpiA+IGNha2VzOwor5K2fID4gY2FrZXM7CivkrZAgPiBjYWtlczsKK+StjiA+IGNha2VzOwor5K2FID4gY2FrZXM7CivkrL8gPiBzbWFsbDsKK+SstSA+IHN5cnVwOwor5KyuID4gc3lydXA7Civkq7UgPiB0d2luczsKK+SrliA+IHRpbWlkOwor5KuOID4gc2hvcnQ7CivkqrsgPiBhXC1jYXA7CivkqrEgPiBjaGVlazsKK+SqryA+IHNvdW5kOwor5KqbID4gZ3JvdXA7CivkqpggPiByaWdodDsKK+SqlyA+IHNob2VzOwor5KqCID4gcmVpbnM7CivkqbogPiBib290czsKK+SpliA+IHNob2VzOwor5KmVID4gY2xvZ3M7CivkqZMgPiBib290czsKK+SphSA+IGJyb2FkOwor5Ki5ID4gc3dpZnQ7CivkqLcgPiBzbGVldDsKK+SomCA+IHNsZWV0Owor5KiLID4gY3J1ZWw7CivkqIQgPiBxdWFpbDsKK+SogSA+IGR1Y2tzOwor5Ke9ID4gc21hbGw7Civkp6ogPiBzaXNzeTsKK+SnjiA+IGFcLXBpdDsKK+SnhiA+IGFcLXBpdDsKK+SmviA+IGxvZnR5Owor5KaiID4gYnJvYWQ7Civkpp4gPiBleHRyYTsKK+SmlyA+IHF1aWV0Owor5KaUID4gYVwtcGVnOwor5KW1ID4gbGluZXM7CivkpZggPiB3cm9uZzsKK+SlkyA+IGFcLWhvZTsKK+SlgSA+IGFybW9yOwor5KS6ID4gYW5cLWF4Owor5KS0ID4gYXJtb3I7CivkpKogPiBzaG9ydDsKK+SkoiA+IG1ldGFsOwor5KScID4gYmx1bnQ7CivkpJogPiBwbHVtczsKK+SkmSA+IGRyZWdzOwor5KOxID4gZHJ1bms7Civko6cgPiBibGFjazsKK+SilCA+IG1peGVkOwor5KKRID4gYW5ncnk7CivkoZYgPiBzdGlsbDsKK+SgoiA+IHdlYXJ5Owor5KCgID4gdG9cLWdvOwor5J+gID4gc3dpZnQ7Civkn5wgPiBicmVhazsKK+SeiCA+IG1vbmV5Owor5J2tID4gd2FnZXM7CivknasgPiBtb25leTsKK+SdkiA+IGFcLXNvdzsKK+SdjyA+IGFcLXNvdzsKK+SdjiA+IGFcLXBpZzsKK+SdiiA+IGFcLXNvdzsKK+SdhSA+IGFcLXBpZzsKK+SdgyA+IGJlYW5zOwor5Jy0ID4gYnJhdmU7CivknI4gPiBzb3VuZDsKK+ScjSA+IHN3ZWV0Owor5JyMID4gY2hhb3M7CivknIogPiBub2lzZTsKK+SbrSA+IGFuZ3J5Owor5JuhID4gd29yZHM7CivkmrQgPiBhbmdlcjsKK+SanyA+IGhvcm5zOwor5JqJID4gb1wtc2VlOwor5JiKID4gZmxpZXM7Civkl5UgPiBiZW5kczsKK+SWjiA+IHRpZ2VyOwor5JaLID4gY3J1ZWw7CivkloggPiBjcnVlbDsKK+SSuCA+IGdyYXNzOwor5JKRID4gZ3Jhc3M7CivkkZogPiBzd2VldDsKK+SRlSA+IGFcLXJhdDsKK+SRgSA+IGZhdHR5Owor5JCsID4gY3Jpc3A7CivkkJ0gPiB0aGljazsKK+SQlyA+IGFcLXBpZzsKK+SQhyA+IGNsZWFyOwor5I+1ID4gcGx1bXA7Civkj7MgPiBvbGVpbjsKK+SPryA+IG1vbGVzOwor5I+nID4gZmF0dHk7Civkj5ogPiBzbWFsbDsKK+SOkCA+IGhhaXJ5Owor5I6HID4gcXVpY2s7CivkjoQgPiBoYWlyeTsKK+SNpSA+IHNtb2t5Owor5I2MID4gYVwtamFyOwor5Iy7ID4gd2luZ3M7CivkjJEgPiB0aWdodDsKK+SMkCA+IHJvcGVzOwor5Iu1ID4gcXVpY2s7Civki6UgPiBsaW5lczsKK+SLmiA+IHdpbmdzOwor5IuZID4gcmVpbnM7Civkir4gPiByb3BlczsKK+SKuyA+IHNpbGt5Owor5Iq5ID4gc21hbGw7CivkioAgPiBwYXN0ZTsKK+SJvyA+IHBhc3RlOwor5ImeID4gYVwtYm94Owor5IiJID4gYVwtZmFuOwor5IeyID4gdG9uZ3M7Civkh6QgPiBzaGFycDsKK+SHgiA+IGZhdWx0Owor5Ia5ID4gZW1wdHk7CivkhpwgPiBlbXB0eTsKK+SGgSA+IHN5cnVwOwor5IW1ID4gY2hhZmY7CivkhZkgPiBncmFzczsKK+SFmCA+IHdoZWF0Owor5IWGID4gZGVuc2U7CivkhL4gPiB0aGljazsKK+SEpSA+IGFcLWdvZDsKK+SEoiA+IHBpb3VzOwor5IOsID4gcm9ja3k7Civkg5sgPiBjaGFpbjsKK+SDmSA+IHJvY2tzOwor5IOXID4gcm9ja3M7Civkgr0gPiByb2NrczsKK+SCvCA+IHJvY2tzOwor5IK6ID4gcm9ja3M7CivkgrAgPiByb2NrczsKK+SCriA+IHN0b25lOwor5IKmID4gdGlyZWQ7Civkgp8gPiByb2NrczsKK+SCliA+IHJvY2tzOwor5IKVID4gc2hvcnQ7CivkgpQgPiBzaG9ydDsKK+SCkSA+IHNob3J0Owor5IKPID4gc2hvcnQ7CivkgasgPiBtdWRkeTsKK+SBnyA+IHdyb25nOwor5IGXID4gbGlnaHQ7CivkgY0gPiBibGluZDsKK+SAvCA+IGFuZ3J5Owor5ICHID4gYVwtcG90Owor47+3ID4gcm91Z2g7Civjv64gPiBncmVlbjsKK+O/qSA+IGxpZ2h0Owor47+lID4gc2hpbmU7Civjv6QgPiB3aGl0ZTsKK+O/nSA+IHN3ZWV0Owor47+VID4gdWxjZXI7CivjvrAgPiBjaG9rZTsKK+O+pyA+IGZhdnVzOwor476hID4gdWxjZXI7CivjvpogPiBpdGNoeTsKK+O+kCA+IHVsY2VyOwor472/ID4gdWxjZXI7CivjvaEgPiBmaWVsZDsKK+O8jyA+IGFcLWJhZDsKK+O7rSA+IGNsZWFyOwor47qDID4gYVwtZG9nOwor47m7ID4gcHVwcHk7CivjubcgPiBzd2luZTsKK+O5iyA+IGFcLWNvdzsKK+O5gCA+IGFcLWNvdzsKK+O4uiA+IGFcLWNvdzsKK+O4hSA+IGFzaGVzOwor47iDID4gYVwtZG90Owor47e/ID4gZmxhbWU7Civjt6UgPiBzdGVhbTsKK+O3lCA+IGZsYW1lOwor47eRID4gc21va2U7Civjt4cgPiBncmVhdDsKK+O2syA+IGFzaGVzOwor47awID4gZmxhbWU7CivjtqYgPiBhc2hlczsKK+O2liA+IHJhcGlkOwor47W5ID4gd2F2ZXM7CivjtIMgPiB0ZWFyczsKK+OzuSA+IGZsb29kOwor47OwID4gZGl0Y2g7Civjs64gPiB1cmluZTsKK+OzmyA+IGRpcnR5Owor47KnID4gaGFpcnk7CivjsoYgPiBub2lzZTsKK+OwvCA+IGdyZWVkOwor47CqID4gc291bmQ7CivjsKUgPiBsYXVnaDsKK+OwoiA+IGNvdWdoOwor46+3ID4gZGF0ZXM7CivjrqUgPiBzYWlsczsKK+OuoiA+IGZydWl0Owor466VID4gZnJ1aXQ7CivjrLYgPiBmbGVzaDsKK+OssyA+IGxpZ2h0Owor46ymID4gYnJhdmU7CivjrJogPiBsaWdodDsKK+OslSA+IGxpZ2h0Owor46yPID4gbGlnaHQ7CivjrIogPiBsaWdodDsKK+OrvCA+IGNsZWFyOwor46u5ID4gbGlnaHQ7Civjq7YgPiBsaWdodDsKK+OrsCA+IGxpZ2h0Owor46urID4gY2xlYXI7Civjq5wgPiBsaWdodDsKK+OrmyA+IGxpZ2h0Owor46uXID4gdGhpY2s7Civjq5UgPiBsaWdodDsKK+OpoSA+IHNoYWtlOwor76itID4gY3JhbmU7CivjqJsgPiBzd2lmdDsKK+OolyA+IGFsZXJ0Owor76iNID4gdm9taXQ7CivvqIsgPiBicm9hZDsKK++ogyA+IHN1Z2FyOwor46iDID4gYVwtcm93Owor76e7ID4gcm9hc3Q7Civvp7kgPiBncmFpbjsKK++ntyA+IHN0YW5kOwor76esID4gZHJvd247Civvp6ogPiBsZWF2ZTsKK++nnSA+IGdhaW5zOwor46ebID4gdGhpY2s7Civvp5cgPiB3aGVlbDsKK++nkCA+IGNsYXNzOwor46eNID4gYWxpa2U7Civvp4sgPiBzbGlkZTsKK++mvyA+IGhhcHB5Owor76a9ID4gdXJpbmU7CivjprcgPiBicmF2ZTsKK+OmriA+IG1vbmV5Owor76ahID4gc3BlYWs7CivvpqAgPiBzcGxpdDsKK+OmoSA+IGhhcHB5Owor76afID4gZmllcnk7CivvppkgPiBsb3R1czsKK+OmmCA+IHN3aWZ0Owor76aTID4gc21lbHQ7CivjppEgPiBhbmdlcjsKK++miiA+IHBvd2VyOwor76aBID4gd29tYW47Civjpb8gPiBwcm91ZDsKK+OltyA+IHF1aWV0Owor46WyID4gYW5nZXI7Civvpa8gPiBzcGVhazsKK++loyA+IG5vcnRoOwor76WgID4gYW5nZXI7CivvpZwgPiBoYXBweTsKK+OlkyA+IGhhcHB5Owor76WPID4gdGlyZWQ7CivvpY0gPiB0ZWFyczsKK+OliiA+IGFuZ3J5Owor76WIID4gYnJpYmU7CivvpYIgPiBncmF2ZTsKK+OlgiA+IHF1aWNrOwor76S9ID4gZ3JlZW47CivvpLsgPiByb3VnaDsKK++kuiA+IGhlcm9uOwor46SxID4gYW5nZXI7CivvpK8gPiBsYWJvcjsKK++kqSA+IGNsZWFyOwor76SiID4gZmxvb2Q7CivjpKMgPiBub2JsZTsKK+OknCA+IGNyYXp5Owor76SZID4gY3JlYW07CivjpJkgPiBncmFjZTsKK++kliA+IGJyYW5kOwor76SUID4gaGFwcHk7Civjo7IgPiBzbWFsbDsKK+OjnyA+IHRvXC1nbzsKK+OjjyA+IHN0aWxsOwor46OJID4gbGFib3I7CivjopsgPiBzbWFsbDsKK+OimSA+IGFcLWh1dDsKK+OhtiA+IGR3ZWxsOwor46G0ID4gc291bmQ7CivjoZUgPiBzaGFycDsKK+OhkCA+IGZsYWdzOwor46GMID4gYVwtaGF0Owor46GHID4gY29sYXI7CivjoYQgPiBjb2xhcjsKK+OgqiA+IGdyZWF0Owor46CVID4gbG9mdHk7CivjoI0gPiBsb2Z0eTsKK+OftSA+IHJpZGdlOwor45+uID4gbG9mdHk7Civjn6AgPiByaWRnZTsKK+OfhSA+IGxvZnR5Owor45+BID4gc2hvcmU7Civjnr4gPiBhXC1udW47CivjnpkgPiB1cmluZTsKK+OelSA+IGNoaXBzOwor456SID4gbHVzdHk7Civjno8gPiBzbWFsbDsKK+OegyA+IHRpcmVkOwor4529ID4gc2hvcnQ7CivjnbogPiBzbWFsbDsKK+OdpCA+IG5pZ2h0Owor452jID4gc3RpbGw7CivjnZwgPiBuaWdodDsKK+OdliA+IHJpZ2h0Owor452VID4gcGVhY2U7CivjnY8gPiBhbG9uZTsKK+OdhyA+IHF1YWlsOwor45y9ID4gY2hpbGQ7CivjnKcgPiBwbHVtcDsKK+OcnCA+IHByb3VkOwor45uoID4gY2hhb3M7Civjm5ogPiBlcXVhbDsKK+ObgyA+IGNsZWFuOwor45uBID4gcXVpY2s7Civjmq4gPiBoYXBweTsKK+OalSA+IGdyZWF0Owor45qAID4gbG9mdHk7Civjma8gPiBza2lsbDsKK+OZpSA+IG11ZGR5Owor45mTID4gZWFydGg7CivjmYQgPiBiZWxvdzsKK+OYiyA+IHNvdW5kOwor45eFID4gYW5ncnk7CivjlqQgPiB3cmF0aDsKK+OWlCA+IHNpbGx5Owor45aPID4gYW5ncnk7CivjloAgPiBzb3VuZDsKK+OVsyA+IG5vaXN5Owor45WWID4gcGxhaW47CivjlY4gPiBjYXZlczsKK+OVgSA+IHN0aWxsOwor45S7ID4gZ3JlYXQ7Civjk7sgPiB0b3VnaDsKK+OTnSA+IGFcLWxhdzsKK+OTnCA+IHlvdW5nOwor45ObID4gbWVyaXQ7Civjk5kgPiBjcnVlbDsKK+OTlyA+IGNsZWFuOwor45OBID4gYVwtbmV0Owor45KpID4gbmFrZWQ7CivjkowgPiBhbG9uZzsKK+ORtiA+IGFuZ2VyOwor45GpID4gc21hcnQ7CivjkaggPiBncmVhdDsKK+ORpiA+IGFuZ2VyOwor45GXID4gYVwtZ29kOwor45GLID4gc21hbGw7CivjkYEgPiBzaG9ydDsKK+OQsSA+IGJ1c2h5Owor45CrID4gY3J1ZWw7CivmnIkgPiBoYXZlOwor55+lID4ga25vdzsKK+i/mSA+IHRoaXM7Civnn5wgPiBwaXR5Owor5b+ZID4gYnVzeTsKK+adpSA+IGNvbWU7Civov5EgPiBuZWFyOwor6YGTID4gcGF0aDsKK+S5nyA+IGFsc287Civml7YgPiB0aW1lOwor5bm0ID4geWVhcjsKK+eeuyA+IGxvb2s7CivovrogPiBlZGdlOwor5bCxID4ganVzdDsKK+mCoyA+IHRoYXQ7CivnlJ8gPiBsaWZlOwor6IeqID4gc2VsZjsKK+eerCA+IHdpbms7Civov4cgPiBwYXNzOwor5b6qID4gb2JleTsKK+W+niA+IGZyb207CivlvpMgPiBmcm9tOwor5aSaID4gbXVjaDsKK+WlvSA+IGdvb2Q7CivlvbwgPiB0aGF0Owor6LW3ID4gcmlzZTsKK+WPqiA+IG9ubHk7CivkvZwgPiBtYWtlOwor5b2TID4gYmVhcjsKK+W9oiA+IGZvcm07CivnnIsgPiBsb29rOwor5byAID4gb3BlbjsKK+aJiyA+IGhhbmQ7CivlvLEgPiB3ZWFrOwor5pysID4gcm9vdDsKK+WktCA+IGhlYWQ7CivnnJ8gPiByZWFsOwor6Z2iID4gZmFjZTsKK+WFrCA+IGZhaXI7CivlkIwgPiBzYW1lOwor55yeID4gcmVhbDsKK+S7jiA+IGZyb207CivliqggPiBtb3ZlOwor6ZW/ID4gbG9uZzsKK+i8iSA+IGxvYWQ7CivlsIYgPiB3aWxsOwor5L2GID4gb25seTsKK+i6qyA+IGJvZHk7Civpq5ggPiBoaWdoOwor5oqKID4gaG9sZDsKK+atpCA+IHRoaXM7Civlrp4gPiByZWFsOwor55ulID4gd2FzaDsKK+aciCA+IG1vb247Civnp40gPiBzZWVkOwor6LuNID4gYXJteTsKK+i7iiA+IGNhcnQ7Civlt7EgPiBzZWxmOwor6YOoID4gcGFydDsKK+WQjSA+IG5hbWU7Civnmq4gPiBza2luOwor5py6ID4gZGVzazsKK+e7mSA+IGdpdmU7CivnrYkgPiByYW5rOwor5bqnID4gc2VhdDsKK+W+iCA+IHZlcnk7CivmnIAgPiBtb3N0Owor5bqXID4gc2hvcDsKK+i6jSA+IHNraXA7CivotbAgPiB3YWxrOwor5ZubID4gZm91cjsKK+mXqCA+IGdhdGU7CivkuJwgPiBlYXN0Owor5bqBID4gaGFsbDsKK+ilvyA+IHdlc3Q7CivlubMgPiBmbGF0Owor55m7ID4gcmlzZTsKK+WQrCA+IGhlYXI7CivlubggPiBsdWNrOwor6Lm0ID4ga2ljazsKK+WGmyA+IGFybXk7CivkupQgPiBmaXZlOwor5bi3ID4gdGVudDsKK+WkqiA+IHZlcnk7CivluLYgPiBiZWx0Owor5bizID4gdGVudDsKK+W4ryA+IGJlbHQ7CivkvZMgPiBib2R5Owor5bitID4gc2VhdDsKK+W4jCA+IHJhcmU7CivouIogPiBsZWFwOwor5LmmID4gYm9vazsKK+S5nSA+IG5pbmU7Civot7MgPiBqdW1wOwor6LevID4gcm9hZDsKK+WRvSA+IGxpZmU7Civnl6kgPiB0aGluOwor5rS7ID4gbGl2ZTsKK+W3piA+IGxlZnQ7Civlt6MgPiBuZXN0Owor6KGoID4gc2hvdzsKK+i3nyA+IGhlZWw7CivovaYgPiBjYXJ0Owor55ebID4gcGFpbjsKK+eXlSA+IHNjYXI7Civnl5IgPiBpdGNoOwor5oSfID4gZmVlbDsKK+i2syA+IGZvb3Q7Civph5EgPiBnb2xkOwor5L2VID4gd2hhdDsKK+W2riA+IGhpZ2g7Civmm7QgPiBtb3JlOwor55aLID4gcm9sbDsKK+WBmiA+IHdvcms7CivorqEgPiBwbGFuOwor55W2ID4gYmVhcjsKK+eOiyA+IGtpbmc7CivlkIQgPiBlYWNoOwor55WZID4gc3RvcDsKK+eVjyA+IGZlYXI7CivovrkgPiBlZGdlOwor55S3ID4gbWFsZTsKK+mjjiA+IHdpbmQ7CivltJcgPiBwb3N0Owor5q+bID4gaGFpcjsKK+WzsCA+IHBlYWs7CivniLEgPiBsb3ZlOwor55OmID4gdGlsZTsKK+izoyA+IHNlbGw7Civos4MgPiByZW50Owor6LK4ID4gbGVuZDsKK+WyuCA+IGJhbms7Civnu5MgPiBrbm90Owor5bKsID4gY2FwZTsKK+a1gSA+IGZsb3c7CivosqcgPiBwb29yOwor6Z2SID4gYmx1ZTsKK+euoSA+IHBpcGU7CivosqAgPiBsb2FkOwor6L+eID4gam9pbjsKK+mYnyA+IHRlYW07CivluKYgPiBiZWx0Owor5bGVID4gb3BlbjsKK+WxkSA+IGJpdHM7CivpooYgPiBuZWNrOwor5bGIID4gYmVuZDsKK+WxhSA+IGxpdmU7CivlsL4gPiB0YWlsOwor5Y2KID4gaGFsZjsKK+WAmSA+IHdhaXQ7CivmraUgPiBzdGVwOwor5rexID4gZGVlcDsKK+WMuiA+IGFyZWE7CivlsIsgPiBzZWVrOwor5rGCID4gc2VlazsKK+eQgyA+IGJhbGw7CivlkYogPiB0ZWxsOwor5a+4ID4gaW5jaDsKK+WvpiA+IHJlYWw7Civmu6EgPiBmaWxsOwor5p2OID4gcGx1bTsKK+aBryA+IHJlc3Q7Civlr5IgPiBjb2xkOwor5a+EID4gc2VuZDsKK+iEuCA+IGZhY2U7Civlrr8gPiBzdG9wOwor5Y+WID4gdGFrZTsKK+WupCA+IHJvb207Civlrp8gPiByZWFsOwor5a6bID4gc2VlbTsKK+WtqSA+IGJhYnk7Civlub8gPiB3aWRlOwor546JID4gamFkZTsKK+eOhCA+IGRlZXA7CivngasgPiBmaXJlOwor6K6AID4gcmVhZDsKK+itvSA+IGZhbWU7CivliJkgPiBydWxlOwor6aaWID4gaGVhZDsKK+WksSA+IGxvc2U7Civmi78gPiB0YWtlOwor5pavID4gdGhpczsKK+ivuyA+IHJlYWQ7CivljIUgPiB3cmFwOwor54y2ID4gbGlrZTsKK+iQvSA+IGZhbGw7CivmtY4gPiBoZWxwOwor5ZacID4gbGlrZTsKK+isoSA+IHNpbmc7CivnvJYgPiBrbml0Owor6LCIID4gdGFsazsKK+aLiSA+IHB1bGw7CivorIAgPiBwbGFuOwor54u8ID4gd29sZjsKK+adgCA+IGtpbGw7CivmoLkgPiByb290Owor5auMID4gaGF0ZTsKK+irhyA+IHRhbGs7CivlhYsgPiBncmFtOwor54q2ID4gZm9ybTsKK+ekuiA+IHNob3c7CivlhrIgPiBzb2FyOwor6KqtID4gcmVhZDsKK+iqiSA+IGZhbWU7CivmjqggPiBwdXNoOwor56ewID4gY2FsbDsKK+ippiA+IHRlc3Q7Civlj7cgPiBtYXJrOwor5LqaID4gYXNpYTsKK+a4ryA+IHBvcnQ7CivoiKwgPiBzb3J0Owor54iqID4gY2xhdzsKK+WImiA+IGhhcmQ7CivpmYYgPiBsYW5kOwor56GuID4gc3VyZTsKK+ioiCA+IHBsYW47CivlhbcgPiB0b29sOwor5aiBID4gcG9tcDsKK+W4riA+IGhlbHA7Civnur8gPiBsaW5lOwor6KemID4gYnV0dDsKK+inkiA+IGhvcm47Civnh5IgPiBidXJuOwor6IqCID4ga25vdDsKK+eHgyA+IGJ1cm47CivlsoEgPiB5ZWFyOwor5aa7ID4gd2lmZTsKK+mcgCA+IG5lZWQ7CivphZIgPiB3aW5lOwor6ZOBID4gaXJvbjsKK+imlyA+IHBlZWs7Civpl7sgPiBoZWFyOwor5qCHID4gbWFyazsKK+WMuyA+IGN1cmU7CivopbIgPiByYWlkOwor54WuID4gY29vazsKK+WcnyA+IHNvaWw7Civova8gPiBzb2Z0Owor54WkID4gY29hbDsKK+S7hSA+IG9ubHk7CivlpZcgPiBjYXNlOwor5oi3ID4gZG9vcjsKK+eEvCA+IGJ1cm47CivpobkgPiBuZWNrOwor6IOMID4gYmFjazsKK+eEmiA+IGJ1cm47CivmmpcgPiBkYXJrOwor6aG7ID4gbXVzdDsKK+ijvSA+IG1ha2U7Civoo7ggPiBiYXJlOwor5aOyID4gc2VsbDsKK+agkSA+IHRyZWU7CivmsokgPiBzaW5rOwor6IGMID4gZHV0eTsKK+e7hiA+IGZpbmU7Civoo5wgPiBtZW5kOwor5YGcID4gc3RvcDsKK+WKqSA+IGhlbHA7CivlhrcgPiBjb2xkOwor5aKuID4gZmFsbDsKK+iHtCA+IHNlbmQ7CivmnKggPiB0cmVlOwor6KKiID4gcm9iZTsKK+aXgSA+IHNpZGU7CivngoogPiBjb29rOwor54G8ID4gYnVybjsKK+WhtSA+IGR1c3Q7CivloakgPiBzYWx0Owor5q2MID4gc29uZzsKK+WggiA+IGhhbGw7Civor5UgPiB0ZXN0Owor54GMID4gcG91cjsKK+mqjCA+IHRlc3Q7CivloYAgPiB3YWxsOwor5q2iID4gc3RvcDsKK+WgtSA+IHdhbGw7CivloKQgPiBkaWtlOwor5aCVID4gZmFsbDsKK+aBtiA+IGV2aWw7CivloIYgPiBoZWFwOwor5oWiID4gc2xvdzsKK+WghSA+IGhhcmQ7CivloIAgPiBjYXZlOwor6J+7ID4gYW50czsKK+iXjyA+IGhpZGU7CivotJ8gPiBsb2FkOwor5Z+LID4gYnVyeTsKK+a+uSA+IGNhbG07CivlnqIgPiBkaXJ0Owor6J6NID4gbWVsdDsKK+a9riA+IHRpZGU7CivlnaYgPiBmbGF0Owor5r2cID4gaGlkZTsKK+aVkSA+IHNhdmU7CivkuJ0gPiBzaWxrOwor6b2KID4gZXZlbjsKK+m8uyA+IG5vc2U7CivmvKwgPiBzb2FrOwor6byTID4gZHJ1bTsKK+awuCA+IGxvbmc7CivmvI8gPiBsZWFrOwor5b2VID4gY29weTsKK+mBhyA+IG1lZXQ7Civmu78gPiBmaWxsOwor6Ii5ID4gc2hpcDsKK+m7tCA+IG1vbGQ7Civmu7QgPiBkcmlwOwor6ZuoID4gcmFpbjsKK+ibmSA+IGZyb2c7Civmu5EgPiBzbGlwOwor6bq7ID4gaGVtcDsKK+iapCA+IGZsZWE7CivpvZAgPiBldmVuOwor5rqWID4gcnVsZTsKK+a6jCA+IHBvdXI7CivlhYUgPiBmaWxsOwor6bm/ID4gZGVlcjsKK+WvuyA+IHNlZWs7CivlroEgPiBjYWxtOwor6bm9ID4gc2FsdDsKK+aymSA+IHNhbmQ7CivljZYgPiBzZWxsOwor6aG6ID4gb2JleTsKK+iZnyA+IG1hcms7CivlloQgPiBnb29kOwor5ZmbID4gYml0ZTsKK+iJryA+IGdvb2Q7CivlnZogPiBoYXJkOwor5ZmCID4gbWVldDsKK+aLjSA+IGNsYXA7CivmjokgPiB0dXJuOwor5riIID4gaGVscDsKK+WTrSA+IHdlZXA7CivlmIYgPiBzaWdoOwor5Y2IID4gbm9vbjsKK+WNoSA+IGNhcmQ7Civpm6ogPiBzbm93Owor5re1ID4gZ3VsZjsKK+a3oSA+IHdlYWs7Civll58gPiBzaWdoOwor5reRID4gZ29vZDsKK+iXjSA+IGJsdWU7Civmt4sgPiBkcmlwOwor5ra8ID4gY29vbDsKK+i9vSA+IGxvYWQ7CivliLogPiBzdGFiOwor6JaqID4gZnVlbDsKK+mUgCA+IG1lbHQ7CivpsbwgPiBmaXNoOwor5ZaaID4gY2FsbDsKK+WWmCA+IHBhbnQ7Civnm5ggPiB0cmF5Owor6JaUID4gcm9zZTsKK+WWhyA+IGhvcm47CivoloQgPiB0aGluOwor5ZW8ID4gd2VlcDsKK+aetiA+IHJhY2s7CivmtbggPiBzb2FrOwor5qy+ID4gaXRlbTsKK+a1qiA+IHdhdmU7CivolakgPiBwb25kOwor5rSqID4gdmFzdDsKK+mVhyA+IHRvd247CivmtYQgPiBwdXJlOwor5peFID4gdHJpcDsKK+WUviA+IHNwaXQ7CivllLEgPiBzaW5nOwor6JS1ID4gaGlkZTsKK+WUryA+IG9ubHk7CivmtKkgPiBsZWFrOwor5rSeID4gY2F2ZTsKK+mqqCA+IGJvbmU7CivmtJcgPiB3YXNoOwor5ZSWID4gZHVtYjsKK+m0iSA+IGNyb3c7CivllIcgPiBsaXBzOwor5rOzID4gZGl2ZTsKK+WTsiA+IHdpc2U7Civlk6kgPiBtaWxlOwor5aKZID4gd2FsbDsKK+WcoyA+IGhvbHk7Civps6UgPiBiaXJkOwor6LeDID4gc2tpcDsKK+aZkyA+IGRhd247Civms4QgPiBsZWFrOwor6ZqQID4gaGlkZTsKK+iSvCA+IGJsdWU7CivmgZAgPiBmZWFyOwor5rK8ID4gbGFrZTsKK+S7mCA+IGdpdmU7CivljoUgPiBoYWxsOwor5ZKsID4gYml0ZTsKK+iFvyA+IGxlZ3M7CivmspYgPiBwb3VyOwor56GsID4gaGFyZDsKK+ayiCA+IHNpbms7CivllK4gPiBzZWxsOwor6YGXID4gbG9zZTsKK+aOoiA+IGZpbmQ7CivokawgPiBidXJ5Owor57yTID4gc2xvdzsKK+iRpiA+IHJlZWQ7CivmsaAgPiBwb29sOwor54OnID4gYnVybjsKK+iRiSA+IGxlYWY7CivmnZ8gPiBiaW5kOwor5ZGGID4gZHVsbDsKK+WQuyA+IGtpc3M7CivlkLkgPiBibG93Owor5LyRID4gcmVzdDsKK+WPuSA+IHNpZ2g7CivmsI8gPiBjbGFuOwor562+ID4gc2lnbjsKK+awiCA+IGZlbHQ7CivlpbYgPiBtaWxrOwor5q+sID4gYmFsbDsKK+iPqSA+IGhlcmI7Civlj6IgPiBidXNoOwor5oyCID4gaGFuZzsKK+iIqiA+IHNhaWw7Civmr5ggPiBoZWxwOwor5ouzID4gZmlzdDsKK+S5mCA+IHJpZGU7CivoooEgPiByb2JlOwor5Z2AID4gc2l0ZTsKK+avhiA+IGJlYXQ7Civmrr8gPiBoYWxsOwor5q66ID4ga2lsbDsKK+aguCA+IHNlZWQ7CivooaUgPiBtZW5kOwor6LWeID4gaGVscDsKK+S6piA+IGFsc287CivmrbMgPiB5ZWFyOwor5p+UID4gc29mdDsKK+atqSA+IHN0ZXA7Civmg5wgPiBwaXR5Owor6a2aID4gZmlzaDsKK+atjiA+IHNpZ2g7CivprYIgPiBzb3VsOwor5LmUID4gdGFsbDsKK+eyriA+IGZvb2Q7CivojKsgPiB2YXN0Owor6LCLID4gcGxhbjsKK+aVjyA+IGZhc3Q7CivojI4gPiBzdGVtOwor6Zu2ID4gemVybzsKK+iNoSA+IHBvbmQ7Civli74gPiBob29rOwor54q5ID4gbGlrZTsKK+mrriA+IGhhaXI7Civpq6ogPiBoYWlyOwor5LmDID4gdGhlbjsKK+aKrCA+IGxpZnQ7Civpq5QgPiBib2R5Owor6IuUID4gbW9zczsKK+WLlSA+IG1vdmU7CivlkK8gPiBvcGVuOwor5YaSID4gcmlzazsKK+eptyA+IHBvb3I7CivmqqMgPiBtYXN0Owor5L6nID4gc2lkZTsKK+aXpiA+IGRhd247Civnuq8gPiBwdXJlOwor6ZetID4gc2h1dDsKK+WHiSA+IGNvb2w7CivnopcgPiBib3dsOwor5YmlID4gcGVlbDsKK+a7miA+IHR1cm47CivmtqYgPiBzb2Z0Owor5YmbID4gaGFyZDsKK+mplyA+IHRlc3Q7CivliYcgPiBydWxlOwor6JOdID4gYmx1ZTsKK+aouSA+IHRyZWU7Civom4sgPiBlZ2dzOwor5L+DID4gdXJnZTsKK+minCA+IGZhY2U7CivotKsgPiBwb29yOwor5p2wID4gaGVybzsKK+iInyA+IGJvYXQ7CivpqJMgPiB0ZXN0Owor5oGLID4gbG92ZTsKK+i/nyA+IGxhdGU7CivnqbQgPiBjYXZlOwor6LWWID4gcmVseTsKK+mnmyA+IHNhaWw7Civpp5IgPiBjb2x0Owor5YeMID4gcHVyZTsKK+S5jCA+IGNyb3c7CivlspcgPiBwb3N0Owor6ZO6ID4gc2hvcDsKK+mmtCA+IHRhbWU7CivkvI0gPiBmaXZlOwor6LqyID4gaGlkZTsKK+eusSA+IGNhc2U7CivluJAgPiB0ZW50Owor6IadID4ga25lZTsKK+iGmiA+IHNraW47CivmgokgPiBrbm93Owor5YaMID4gYm9vazsKK+WGiiA+IGJvb2s7Civnm4ggPiBmaWxsOwor5ouWID4gZHJhZzsKK+aYjyA+IGR1c2s7CivmiJIgPiB3YXJuOwor6aG1ID4gcGFnZTsKK+WwmCA+IGR1c3Q7CivohKMgPiBsaXBzOwor5LqVID4gd2VsbDsKK+axqiA+IHZhc3Q7CivohIcgPiByaWJzOwor6ISFID4gcmliczsKK+aBsCA+IGp1c3Q7CivmpIAgPiBib3dsOwor5o+PID4gY29weTsKK+S5jyA+IGxhY2s7Civog54gPiB3b21iOwor5qOaID4gdGVudDsKK+aAnCA+IHBpdHk7CivkvbMgPiBnb29kOwor6bifID4gYmlyZDsKK+WDhSA+IG9ubHk7CivpoqggPiB3aW5kOwor5qKoID4gcGVhcjsKK+W8ryA+IGJlbmQ7Civkuo8gPiBsb3NlOwor5YKRID4gaGVybzsKK+mFuCA+IHRhcnQ7Civogb0gPiBoZWFyOwor6IG3ID4gZHV0eTsKK+ahtiA+IHBhaWw7CivogbQgPiBoZWFyOwor55imID4gdGhpbjsKK+WBtCA+IHNpZGU7Civnu6kgPiBzcGluOwor6IGeID4gaGVhcjsKK+iBliA+IGhvbHk7CivpoZQgPiBmYWNlOwor6aGPID4gZmFjZTsKK+eJtSA+IGRyYWc7CivpoLwgPiByZWx5Owor56efID4gcmVudDsKK+mguCA+IG5lY2s7Civmia0gPiB0dXJuOwor6aCtID4gaGVhZDsKK+aTpiA+IHdpcGU7CivmrrcgPiBtYW55Owor6aCaID4gbmVjazsKK+mgmCA+IG5lY2s7Civnm7wgPiBsb29rOwor5ZCfID4gc2luZzsKK+iAlSA+IHBsb3c7Civoi40gPiBibHVlOwor6aCGID4gb2JleTsKK+mghSA+IG5lY2s7Civlro8gPiB3aWRlOwor6aCBID4gcGFnZTsKK+WogyA+IGJhYnk7CivmmpYgPiB3YXJtOwor6ZSBID4gbG9jazsKK+egjSA+IGhhY2s7Civkv4IgPiBiaW5kOwor5oyoID4gbmVhcjsKK+aFiCA+IGtpbmQ7CivnvrkgPiBzb3VwOwor576uID4gc291cDsKK+merSA+IHdoaXA7CivnvqggPiBlbnZ5Owor56qdID4gbmVzdDsKK+adnCA+IHN0b3A7CivmkqQgPiBvbWl0Owor5L6GID4gY29tZTsKK+adsSA+IGVhc3Q7CivnrbkgPiBjaGlwOwor56iAID4gcmFyZTsKK+adliA+IGNhbmU7Civmi6ggPiBtb3ZlOwor6LiiID4ga2ljazsKK+i/gSA+IG1vdmU7CivkvYcgPiB3YWl0Owor6KKtID4gcmFpZDsKK+mptiA+IHNhaWw7CivpnLAgPiBoYWlsOwor5oOnID4gZmVhcjsKK+e6vSA+IGtub3Q7CivkuJsgPiBidXNoOwor5oKgID4gbG9uZzsKK+abvCA+IGxvbmc7Civmm7ggPiBib29rOwor57ygID4gd3JhcDsKK+a7iyA+IGdyb3c7CivnoqcgPiBqYWRlOwor5ZSkID4gY2FsbDsKK+iDgSA+IHJpYnM7CivosLEgPiBsaXN0Owor6ZqxID4gaGlkZTsKK+S4mCA+IGhpbGw7Civkup4gPiBhc2lhOwor57qSID4gd3JhcDsKK+adhiA+IHBvbGU7Civnuo8gPiB3cmFwOwor6ZqKID4gdGVhbTsKK+aCrCA+IGhhbmc7CivpmoggPiBjb3ZlOwor5bSUID4gaGlnaDsKK+e6giA+IGVkaXQ7CivllIkgPiBhbGFzOwor5pqBID4gZGF3bjsKK+esvCA+IGNhZ2U7CivpmbggPiBsYW5kOwor57mqID4gZHJhdzsKK+e5qSA+IHJvcGU7CivmhaggPiBzaWdoOwor5LmXID4gcmlkZTsKK+e7syA+IHJvcGU7CivmmYIgPiB0aW1lOwor55+/ID4gbWluZTsKK+mBoyA+IHNlbmQ7CivplZYgPiBkYXJ0Owor6YG1ID4gb2JleTsKK+WFhiA+IG9tZW47CivpkpMgPiBmaXNoOwor5oqrID4gd2VhcjsKK+aYhyA+IHJpc2U7CivnuIQgPiByb3BlOwor5piCID4gcmlzZTsKK+e3qSA+IHNsb3c7Civnt6ggPiBrbml0Owor5oqEID4gY29weTsKK+WAuiA+IGRlYnQ7CivogqQgPiBza2luOwor5q2HID4gcmVzdDsKK+mWiyA+IG9wZW47CivplokgPiBzaHV0Owor5paJID4gZXZlbjsKK+aWgyA+IGtpbGw7CivnvZUgPiByYXJlOwor6ZaAID4gZ2F0ZTsKK+mVtyA+IGxvbmc7CivotLcgPiBsZW5kOwor57W1ID4gZHJhdzsKK+miiCA+IG5lY2s7CivntbIgPiBzaWxrOwor6ISWID4gbmVjazsKK+WgoSA+IGZvcnQ7CivntaggPiBzaWxrOwor57WmID4gZ2l2ZTsKK+i1kCA+IGdpdmU7CivpooIgPiBsYXVkOwor57WQID4ga25vdDsKK+egliA+IHRpbGU7CivntYYgPiBsb29wOwor5ZORID4gZHVtYjsKK+e0sCA+IGZpbmU7Civmu6kgPiBiYW5rOwor6ZKJID4gbmFpbDsKK+WThCA+IGNvYXg7Civpk4MgPiBiZWxsOwor57SUID4gcHVyZTsKK+e0kCA+IGtub3Q7CivntIsgPiBsaW5lOwor5ouaID4gcmlzazsKK+ezuCA+IHNpbGs7Civns6cgPiBmb29kOwor5aWRID4gZGVlZDsKK+aHkiA+IGxhenk7CivnjI4gPiBodW50Owor5bWpID4gaGlnaDsKK+ebkCA+IHNhbHQ7CivmkbogPiBmb2xkOwor57GgID4gY2FnZTsKK+mZtSA+IGhpbGw7Civoo7kgPiB3cmFwOwor57uYID4gZHJhdzsKK+mQtSA+IGlyb247CivpkKEgPiBpcm9uOwor56+tID4gY2FnZTsKK+evpCA+IGRlZXA7CivmjL0gPiBwdWxsOwor57K5ID4gcHVyZTsKK+evgCA+IGtub3Q7CivmjqMgPiBkcmFnOwor5o6bID4gaGFuZzsKK+mOliA+IGxvY2s7CivnrosgPiBub3RlOwor5o2yID4gY3VybDsKK+azvCA+IHBvdXI7Civnp4MgPiBiYWxkOwor6YyyID4gY29weTsKK+e7kSA+IGJpbmQ7CivpuK0gPiBkdWNrOwor5o6AID4gbGlmdDsKK+e6uSA+IGxpbmU7Civotp8gPiB0aW1lOwor5ZC8ID4gcm9hcjsKK+equiA+IHBlZXA7CivnqrYgPiBwb29yOwor5Y+gID4gcGlsZTsKK+WVuCA+IHJvYXI7Civnqq4gPiBwb29yOwor6YqRID4gbWlsbDsKK+WptCA+IGJhYnk7CivouqwgPiBib2R5Owor5q+ZID4ga2lsbDsKK+mAuCA+IGZsZWU7CivnkLwgPiBqYWRlOwor6YmEID4gaXJvbjsKK+aMqiA+IG1vdmU7CivmmYwgPiBub29uOwor5oi4ID4gZG9vcjsKK+mItCA+IGJlbGw7CivnqLEgPiBjYWxsOwor6LSxID4gbWVhbjsKK+eoriA+IHNlZWQ7CivpkqkgPiBob29rOwor5oiAID4gbG92ZTsKK+aHvCA+IGZlYXI7Civmh7ggPiBoYW5nOwor6YejID4gZmlzaDsKK+mHmCA+IG5haWw7CivpuKYgPiBjcm93Owor54uuID4gbGlvbjsKK+WmriA+IG1haWQ7Civnpr8gPiBiYWxkOwor56qRID4ga2lsbjsKK+WhmCA+IHBvbmQ7CivnuqQgPiBmaW5lOwor6YarID4gY3VyZTsKK+aGqSA+IHJlc3Q7CivmhpAgPiBwaXR5Owor5oaOID4gaGF0ZTsKK+e+oSA+IGVudnk7Civmhb4gPiBsdXN0Owor56W3ID4gcHJheTsKK+iIhiA+IGNhcnQ7CivnpYggPiBwcmF5Owor5aupID4gc29mdDsKK+i5hCA+IGhvb2Y7CivmhJsgPiBsb3ZlOwor6YSZID4gbWVhbjsKK+aDoSA+IGV2aWw7CivmsqcgPiBibHVlOwor56K6ID4gc3VyZTsKK+aCqiA+IGV2aWw7CivluIYgPiBzYWlsOwor5ra1ID4gc29hazsKK+mCiiA+IGVkZ2U7CivmvqEgPiB3YXNoOwor6YG6ID4gbG9zZTsKK+mBsiA+IGxhdGU7Civng6QgPiBiYWtlOwor5bO7ID4gaGlnaDsKK+mBjiA+IHBhc3M7CivpgYsgPiBsdWNrOwor5bCsID4gbGltcDsKK+mBhSA+IGxhdGU7CivpgYEgPiBoaWRlOwor6YCxID4gd2VlazsKK+S9kSA+IGhlbHA7CivpgKMgPiBqb2luOwor5oCgID4gaWRsZTsKK+mAmSA+IHRoaXM7CivnoIIgPiBzYW5kOwor6IO2ID4gZ2x1ZTsKK+iwoyA+IHNpbmc7CivmorMgPiBjb21iOwor56WBID4gcHJheTsKK+WVpCA+IGJlZXI7Civpk7ggPiBtZWx0Owor6LqvID4gYm9keTsKK+mFvyA+IGJyZXc7CivmjaMgPiBodWxsOwor546rID4gcm9zZTsKK+WZoiA+IG1vYW47CivnurogPiBzcGluOwor56qfID4gaG9sZTsKK+WFkSA+IGNhc2g7CivlhqUgPiBkYXJrOwor6KeFID4gc2VlazsKK+ayuCA+IGJvaWw7CivmiYEgPiBmbGF0Owor55yoID4gd2luazsKK+eYviA+IHJhc2g7Civpu68gPiBkYXJrOwor5aaeID4gZ2lybDsKK+S/jyA+IGxpa2U7Civlrb0gPiBldmlsOwor5byKID4gZXZpbDsKK+WmgyA+IHdpZmU7Civlo6QgPiBzb2lsOwor57+UID4gc29hcjsKK+W3qSA+IGJpbmQ7CivluJwgPiBmbGFnOwor6JW+ID4gYnVkczsKK+mThSA+IGxlYWQ7Civnu5IgPiBzaWxrOwor56qlID4gcGVlcDsKK+mUoyA+IGdvbmc7CivmkrwgPiBtb3ZlOwor5ZemID4gc3VjazsKK+i9tCA+IGF4bGU7CivmtpUgPiB0ZWFyOwor56yDID4gZGVlcDsKK+eqjSA+IGhvbGU7CivmibMgPiBwdWxsOwor6YGPID4gc3RvcDsKK+WQhiA+IGJhd2w7CivnhpQgPiBtZWx0Owor6IGLID4gZGVhZjsKK+WLnyA+IGxldnk7CivnlqQgPiBzY2FyOwor6JqBID4gYW50czsKK+aCryA+IHBpdHk7Civng5ggPiBiYWtlOwor54mfID4gbWFrZTsKK+W0rSA+IGhpZ2g7Civlt6IgPiBuZXN0Owor5rKuID4gc3RvcDsKK+a5myA+IGRlZXA7CivmmaYgPiBkYXJrOwor6am5ID4gY29sdDsKK+ivqyA+IHdhcm47CivloqkgPiBoZWFwOwor5beNID4gaGlnaDsKK+aUkiA+IHNhdmU7Civnu4ogPiBsb29wOwor5oeIID4gaWRsZTsKK+autCA+IGJlYXQ7CivnmoIgPiBzb2FwOwor6J+5ID4gY3JhYjsKK+e7tyA+IGJpbmQ7CivljL8gPiBoaWRlOwor5ZSgID4gY2hhdDsKK+iLhyA+IHJlZWQ7Civmi70gPiBkcmFnOwor54O5ID4gYm9pbDsKK+WVgyA+IGduYXc7CivnvpQgPiBsYW1iOwor6ZSIID4gcnVzdDsKK+S6oiA+IGhpZ2g7CivogosgPiByaWJzOwor6KGyID4gbWVuZDsKK+aOkCA+IGhvbGQ7Civmh6YgPiB3ZWFrOwor6IWTID4gY2FsZjsKK+W9tyA+IGxpa2U7CivpqqEgPiBtdWxlOwor6YaHID4gcmljaDsKK+mpryA+IHRhbWU7CivnuqwgPiB3b29mOwor54qBID4gcGxvdzsKK+aLryA+IGhlbHA7CivpvpogPiBnaXZlOwor6JukID4gY2xhbTsKK+aIriA+IGtpbGw7Civmr6EgPiBmZWx0Owor5ZKAID4gc3VjazsKK+WRsSA+IHdhaWw7CivmiI4gPiBhcm1zOwor6JS8ID4gbHVzaDsKK+iMuCA+IHNvZnQ7CivnpIEgPiByZWVmOwor6ZepID4gYm9sdDsKK+a2pCA+IHdhc2g7CivmuI0gPiBzb2FrOwor6LebID4gbGFtZTsKK+ifhiA+IGZyb2c7CivlgYwgPiB0aHVzOwor6YKRID4gYXJlYTsKK+WMviA+IGZsYXQ7CivnrLogPiBub3RlOwor566NID4gaG9vcDsKK+WZrCA+IGJpdGU7Civon6AgPiBjb2lsOwor6LWBID4gcmVudDsKK+iFjCA+IHNhbHQ7CivmjoIgPiBoZWZ0Owor6YGQID4gYWZhcjsKK+eUrCA+IHBhdGg7Civlg64gPiBwYWdlOwor5Z6bID4gaGVhcDsKK+WQoCA+IGJhcms7CivouLUgPiBoZWVsOwor6Ju+ID4gbW90aDsKK+iAmCA+IHdlZWQ7CivmmoQgPiB3YXJtOwor6J6DID4gY3JhYjsKK+WVlSA+IHdhaWw7Civon74gPiB0b2FkOwor562PID4gcmFmdDsKK+exvSA+IHNlZWQ7CivnioogPiBjYWxmOwor54WmID4ga2luZDsKK+iHiiA+IHJhbms7CivmkqwgPiBsaWZ0Owor5q+XID4gaGVscDsKK+i5vyA+IGxlYXA7CivlkoYgPiByb2FyOwor6bKkID4gY2FycDsKK+i+lSA+IGF4bGU7CivngJogPiB2YXN0Owor6IqLID4gdGFybzsKK+mbuSA+IGhhaWw7CivpuaogPiB3cmVuOwor6aq8ID4gYm9uZTsKK+iOmCA+IGxvbmc7CivosKcgPiBjYWxtOwor6JyVID4gbW9sdDsKK+eEiiA+IHdlbGQ7CivogJkgPiByYWtlOwor57yEID4gc2VhbDsKK+a8qSA+IGVkZHk7CivppbUgPiBiYWl0Owor6L6NID4gc3RvcDsKK+iwkSA+IGplZXI7CivmgYEgPiB0aGF0Owor5YKpID4gcmljaDsKK+eYoCA+IHRoaW47CivltZggPiBoaWdoOwor5bOlID4gaGlnaDsKK+mShSA+IGdvbGQ7Civmua4gPiBidXJ5Owor6aKPID4gY2hpbjsKK+mTjiA+IGJlbGw7CivolLcgPiByb3NlOwor6LG6ID4gd29sZjsKK+eGqCA+IGlyb247CivlkbcgPiBzdWNrOwor6ZezID4gZ2F0ZTsKK+iKriA+IHRpbnk7CivpmaggPiBmYWxsOwor55KoID4gZ2VtczsKK+aztSA+IHB1bXA7Civnv7EgPiBzb2FyOwor5oiVID4ga2lsbDsKK+iOkyA+IG1vc3M7CivosYwgPiBwZWFzOwor5aCRID4gbW9hdDsKK+a9vCA+IGhpZ2g7CivnlrUgPiBmbGF3Owor6L+kID4gd2luZDsKK+aAtSA+IGZlYXI7CivmpoggPiBwYWxtOwor5YSGID4gd2FybjsKK+WXpSA+IHJvYXI7CivnpLQgPiBmaWxsOwor6ayDID4gbWFuZTsKK+WykCA+IGhpZ2g7CivllbsgPiBvbmx5Owor5ZKdID4gaGlzczsKK+aPhCA+IGxpZnQ7CivmvbggPiB3ZWVwOwor6K60ID4gc2luZzsKK+i2hCA+IHdlYWs7CivpgosgPiByYWdzOwor6IOkID4gaGVpcjsKK+agiSA+IGNvbWI7CivnspUgPiBsZWVzOwor6aKUID4gY2hpbjsKK+WVriA+IGJpdGU7CivovbIgPiBheGxlOwor5a2xID4gd2VhazsKK+aMniA+IGZsb2c7CivplasgPiBsYW1wOwor6IenID4gZ29vZDsKK+m5nCA+IGR1Y2s7CivmmJUgPiBkYXduOwor6ZS3ID4gaGlnaDsKK+mThCA+IG1lbHQ7CivovrYgPiB3YWxrOwor6ZiEID4gbG90czsKK+mUjCA+IHppbmM7CivojbsgPiByZWVkOwor5ZaZID4gYmVhazsKK+icjSA+IHRvYWQ7CivnvKIgPiBoYW5nOwor5p+iID4gcm9vdDsKK+eqoCA+IG5lc3Q7CivogpsgPiBhbnVzOwor6KqKID4gY29weTsKK+i3jiA+IHNsaXA7CivogakgPiBkZWFmOwor55eCID4gc2NhYjsKK+m4oiA+IGtpdGU7CivmirsgPiBwdWxsOwor5rKkID4gc29hazsKK+a2vyA+IGRyaXA7CivniaYgPiB0YWlsOwor54y3ID4gcGxhbjsKK+WiiSA+IHdhbGw7CivmmrkgPiByaXNlOwor6ZexID4gZ2F0ZTsKK+i9rSA+IHlva2U7CivlvK0gPiBzdG9wOwor5rS1ID4gdHJ1ZTsKK+eTryA+IGJvd2w7Civmv6AgPiBtb2F0Owor5ZypID4gZGlrZTsKK+e+uCA+IHdlYWs7Civnma8gPiB0aGluOwor55iiID4gc2NhcjsKK+W5hCA+IHRlbnQ7Civms4UgPiBzd2ltOwor55++ID4gYWx1bTsKK+iaqSA+IHdvcm07CivpuLcgPiBoYXdrOwor6LmHID4gbGFtZTsKK+iAiyA+IGFnZWQ7Civoi5IgPiBsdXNoOwor6YCLID4gZmxlZTsKK+iXkyA+IG1vc3M7CivprLsgPiBzZWxsOwor5rOrID4gd2VlcDsKK+WVrSA+IHNpbmc7CivlnaggPiBsdW1wOwor6KC5ID4gbW90aDsKK+eWsSA+IGFjbmU7CivplJIgPiBsb2NrOwor5pqdID4gZGFyazsKK+eFiiA+IHdhcm07CivniKggPiBvdmVuOwor5ZudID4gYmFieTsKK+WeqSA+IGhvbHk7CivmgLwgPiBoYXRlOwor5bS0ID4gaGlnaDsKK+aLiiA+IHNsYXA7CivmiYwgPiBoYW5kOwor6ZKkID4gbG9jazsKK+aoryA+IG1hc3Q7Civpqp8gPiBnZWxkOwor54e5ID4gZmlyZTsKK+mmkCA+IGZvb2Q7CivlnLkgPiB0b21iOwor6b6IID4gZ3VtczsKK+iciiA+IGNsYW07Civnl5YgPiBkdW1iOwor5q2GID4gbGlrZTsKK+i1iSA+IGdpdmU7Civpk6MgPiBtaWxsOwor54GPID4gdmFzdDsKK+eYmSA+IGl0Y2g7Civpl7wgPiBkb29yOwor5Z2MID4gZHVzdDsKK+akpCA+IHRyZWU7CivpmIsgPiBmZXVkOwor5bWvID4gaGlnaDsKK+mFsCA+IGFjeWw7CivnmJcgPiBidXJ5Owor55ajID4gd2FydDsKK+epkSA+IGZhcm07Civmp44gPiByYWZ0Owor5qG0ID4gcmFmdDsKK+a6jyA+IHBvb2w7CivnpLsgPiBjdWx0Owor5qOwID4gZmxvZzsKK+eLtyA+IHJhc2g7CivokrkgPiByZWVkOwor5L2kID4ga2F3YTsKK+m6uCA+IGJyYW47CivpuLEgPiBraXRlOwor57yrID4gZHJhdzsKK+e6oSA+IGJlbmQ7CivltawgPiBoaWdoOwor6I+WID4gaXJpczsKK+aEjSA+IHBpdHk7Civlq7EgPiBsYWR5Owor6I6oID4gaGVyYjsKK+iwnSA+IGJyYWc7CivmsJYgPiBuZW9uOwor6aKbID4gZ29vZDsKK+eHoCA+IHdhcm07CivmvbQgPiBwb25kOwor5aCZID4gYnVyeTsKK+malyA+IGhpZ2g7CivkuL8gPiBsaW5lOwor6bKuID4gY2FycDsKK+i3liA+IHNvbGU7CivomosgPiBnbmF0Owor5rGUID4gbmVhcjsKK+eXpCA+IGFjbmU7CivotLYgPiBnaXZlOwor57qfID4gc2lsazsKK+S+kSA+IGhlbHA7CivogKogPiBwbG93Owor6KecID4gYmVhazsKK+etoiA+IHJha2U7CivmnJAgPiB3YXJtOwor6KeHID4gcGVlazsKK+aqlyA+IHRyZWU7Civoj6EgPiBidWRzOwor5YG+ID4gcnVpbjsKK+mauSA+IGJpcmQ7CivoiKEgPiBib2F0Owor55aSID4gc2ljazsKK+WZjSA+IGNoZXc7Civln50gPiBiYW5rOwor6bKpID4gY2FycDsKK+mykiA+IGNsYW07CivopZ4gPiBmb2xkOwor54GsID4gZmlyZTsKK+iEkiA+IG9wZW47Civmn5kgPiBjYWdlOwor5rmUID4gd2FzaDsKK+a0syA+IGRhbXA7CivlsKIgPiB3ZWFrOwor6aufID4gaGFpcjsKK+mzjiA+IHNvbGU7CivoiZogPiBzaGlwOwor6bmpID4gd3JlbjsKK+eCsSA+IHNvb3Q7CivohqogPiBwb3JrOwor5qCKID4gY2FnZTsKK+e7siA+IGNvcmQ7CivlroAgPiByb29mOwor6Ze2ID4gZG9vcjsKK+eMiiA+IGxpb247CivlsrUgPiBoaWxsOwor5Y2pID4gc2VhbDsKK+ivjiA+IGJlbmQ7CivlgK4gPiBiYXJlOwor6b6UID4gZ2l2ZTsKK+m9riA+IGJpdGU7CivpvacgPiBiaXRlOwor6b2mID4gZ3VtczsKK+m9lyA+IGd1bXM7CivpvZUgPiBnbmF3Owor6bybID4gZHJ1bTsKK+m8liA+IGRydW07Civpu7YgPiBtb2xlOwor6bqpID4gYnJhbjsKK+m6myA+IGZhd247CivpupogPiBidWNrOwor6bqRID4gZmF3bjsKK+m6jCA+IHN0YWc7CivpuoMgPiB0aWxsOwor6bmOID4gYmlyZDsKK+m5hiA+IG15bmE7Civpt68gPiB3cmVuOwor6bemID4gd3JlbjsKK+m3mSA+IGhhd2s7Civpt5UgPiBjYWxsOwor6baxID4gc29hcjsKK+m2qSA+IGR1Y2s7CivptoMgPiBoYXdrOwor6baCID4gaGF3azsKK+m1ryA+IGJpcmQ7CivptYQgPiBraXRlOwor6bSoID4gZHVjazsKK+m0nyA+IGtpdGU7CivptIQgPiBkdWNrOwor6bO3ID4gYmlyZDsKK+mztiA+IGtpdGU7Civps4sgPiBjYXJwOwor6bK8ID4gZmlzaDsKK+myiyA+IGNhcnA7CivpsoYgPiBzb2xlOwor6bCoID4gc29sZTsKK+mvqiA+IGNhcnA7Civpr4kgPiBjYXJwOwor6a+IID4gZmlzaDsKK+mvhyA+IGNhcnA7CivprpogPiBjbGFtOwor6a6SID4gY2FycDsKK+muhiA+IGZpc2g7CivprYsgPiBiZWFyOwor6ayuID4gbG90czsKK+msqSA+IGZldWQ7CivprJEgPiBsb25nOwor6aueID4gaGlnaDsKK+mpmCA+IG11bGU7CivpqL4gPiBtdWxlOwor6ai4ID4gZ2VsZDsKK+moryA+IGxvdWQ7CivpqKMgPiBtYW5lOwor6ae9ID4gZ3JleTsKK+mntCA+IGRydW07CivppYwgPiBmZWVkOwor6aWIID4gZm9vZDsKK+mkjCA+IGJhaXQ7CivppIcgPiBmb29kOwor6aOhID4gbWVhbDsKK+mjjCA+IHdpbmQ7Civpor8gPiBzYWlsOwor6aK6ID4gc29hcjsKK+mhkyA+IGdvb2Q7CivpoLcgPiBjaGluOwor6aCuID4gd2FzaDsKK+mgpiA+IGNoaW47CivpoIwgPiBsYXVkOwor6aCIID4gbXVzdDsKK+meuSA+IHNraW47Civpnp8gPiBza2luOwor6Z6ZID4gZmluZTsKK+mejyA+IGJpbmQ7CivpnokgPiBkcnVtOwor6Z6AID4gZHJ1bTsKK+mdkSA+IGJsdWU7CivpnKQgPiBkcmlwOwor6ZyjID4gZmFsbDsKK+mcoiA+IGR1c3Q7CivpmpUgPiBmYWxsOwor6ZqEID4gZGlrZTsKK+mYpCA+IGhpbGw7CivpmJ4gPiB2ZWluOwor6ZelID4gZG9vcjsKK+mXoiA+IG9wZW47Civpl5MgPiBvcGVuOwor6ZeIID4gZ2F0ZTsKK+mXhiA+IGJvc3M7Civplp8gPiBoaWRlOwor6ZaOID4gZ2F0ZTsKK+mWjCA+IGRvb3I7CivplocgPiBzaHV0Owor6ZaCID4gYm9sdDsKK+mVuCA+IGxvbmc7CivplakgPiBwaWNrOwor6ZWVID4gZnVzZTsKK+mTtCA+IGdvbmc7CivpkbwgPiBnb25nOwor6ZGiID4gZmlsZTsKK+mRoCA+IG1lbHQ7CivpkZsgPiBtaW5lOwor6ZGEID4gbWVsdDsKK+mQuCA+IGJlbGw7CivpkKkgPiBsZW5zOwor6ZCZID4gbGFtcDsKK+mQiyA+IGdvbmc7CivpkIQgPiBiZWxsOwor6Y+9ID4gcnVzdDsKK+mPsCA+IGNvaW47Civpj6UgPiBydXN0Owor6Y+iID4gZGFydDsKK+mOuyA+IGxvY2s7Civpjq4gPiB0b3duOwor6Y6tID4gdG93bjsKK+mOlCA+IGZ1c2U7CivpjZQgPiBoaWdoOwor6YyEID4gY29weTsKK+mLsyA+IG1lbHQ7Civpi5ogPiBpcm9uOwor6YuGID4gZ29sZDsKK+mKuSA+IHJ1c3Q7CivpircgPiBtZWx0Owor6YqVID4gaXJvbjsKK+mJsSA+IG1pbmU7CivpiaQgPiBob29rOwor6YisID4gYmVsbDsKK+mIkCA+IGxvY2s7CivpiI4gPiBob29rOwor6YiGID4gbGVhZDsKK+mHgCA+IGJyZXc7CivphrggPiBicmV3Owor6YSRID4ga2ljazsKK+mCiSA+IGVkZ2U7CivpgbsgPiBtZWV0Owor6YG3ID4gbW92ZTsKK+mBnyA+IGxhdGU7Civov7ogPiB0aGVuOwor6L+aID4gdmVyeTsKK+i/hiA+IHdpbmQ7CivovrUgPiB3YWxrOwor6L2dID4gZW52eTsKK+i9lyA+IGZhaWw7CivovYwgPiBzbGVkOwor6L2FID4gYXhsZTsKK+i8vyA+IGNhcnQ7CivovLQgPiBzbGVkOwor6LyfID4gc3RvcDsKK+i7uyA+IGF4bGU7Civou7ggPiBheGxlOwor6LulID4geW9rZTsKK+i7nyA+IHNvZnQ7Civou5sgPiB5b2tlOwor6LuGID4gYm9keTsKK+i7gCA+IGJvZHk7Civour8gPiB0YWxsOwor6Lq2ID4gYmFyZTsKK+i6tCA+IHRhbGw7CivourMgPiBib2R5Owor6LqxID4gaGlkZTsKK+i6sCA+IGJvZHk7CivouqUgPiBsZWFwOwor6LqSID4gd2FsazsKK+i5oiA+IGhvb2Y7CivouY8gPiBob29mOwor6Li0ID4gbGVhcDsKK+i4rSA+IGhlZWw7CivouJggPiBiYWxsOwor6Le8ID4gYmVudDsKK+i3siA+IGhvb2Q7Civot7EgPiBzdG9wOwor6LeeID4gd2FsazsKK+i3mSA+IHdlYWs7Civotq8gPiBqdW1wOwor6LWxID4gd2FsazsKK+i1lSA+IGZpbmU7CivotIogPiBoZWxwOwor6LO1ID4gZ2lmdDsKK+iztCA+IHJlbHk7Civos6cgPiBmaW5lOwor6LOkID4gbWVhbjsKK+iznCA+IGdpdmU7Civos5sgPiBoZWxwOwor6LOaID4gZ2l2ZTsKK+izjiA+IG1lYW47CivosrogPiBnaXZlOwor6LKOID4gbGlvbjsKK+ixrSA+IGJvYXI7CivorosgPiBmZWFyOwor6KygID4gc2luZzsKK+islCA+IGplZXI7CivorJAgPiBjYWxtOwor6KyEID4gY29weTsKK+irniA+IGJyYWc7CivoqqcgPiBodWdlOwor6KqhID4gd2FybjsKK+iqgyA+IHBhcnQ7CivoqaAgPiBzaW5nOwor6KmfID4gZmVhcjsKK+ipmCA+IGJlbmQ7Civop50gPiBnb3JlOwor6KaYID4gcGVlazsKK+imkyA+IHNlZWs7Civoor8gPiBnb3duOwor6KG5ID4gb25seTsKK+ihmiA+IGxhbmU7CivooZYgPiBsYW5lOwor6KGSID4gYnJhZzsKK+igrSA+IGJlZXM7CivooKcgPiBtb3RoOwor6KCPID4gY3JhYjsKK+ifhyA+IGZyb2c7CivonokgPiB3YXNwOwor6Jy5ID4gZ25hdDsKK+ichSA+IGNyYWI7Civom7sgPiBtb2x0Owor6JqhID4gbW9sZTsKK+iZtyA+IHdvcm07CivomacgPiBsb3NlOwor6JmTID4gcm9hcjsKK+iYmiA+IG1vc3M7CivomJIgPiBcOjE0MzsKK+iXuSA+IGx1c2g7Civol58gPiB2aW5lOwor6JeHID4gZmluZTsKK+iWnyA+IHZpbmU7CivolpkgPiB3ZWVkOwor6JaBID4gdmluZTsKK+iVmCA+IGZ1ZWw7CivolLQgPiBoZW1wOwor6JOrID4gZG9jazsKK+iRkiA+IGhlcmI7CivokJwgPiBjNWg4Owor6I++ID4gYmVldDsKK+iOuyA+IGxhdGU7CivojrYgPiB2aW5lOwor6I6WID4gc3RlbTsKK+iNrSA+IGhlcmI7CivojZsgPiBmdWVsOwor6ImtID4gc2hpcDsKK+iJliA+IHJhZnQ7CivoiKkgPiBib2F0Owor6IeRID4gc29mdDsKK+iHiSA+IGZhY2U7Civoh4EgPiBjYWxmOwor6Ia3ID4gc291cDsKK+iGtCA+IGZpbmU7CivohqAgPiBnbHVlOwor6IW2ID4gbWVhdDsKK+iFsyA+IGZvb3Q7CivohZIgPiBnYW1lOwor6IWNID4gc29mdDsKK+iEsiA+IHVyZWE7Civog6AgPiBvcGVuOwor6IOPID4gbWVhdDsKK+iDiiA+IHlva2U7CivogqwgPiB3YXJ0Owor6IG+ID4gZGVhZjsKK+iBvCA+IGhlYXI7CivogbUgPiBkZWFmOwor6ICtID4gcGxvdzsKK+iAoCA+IHRpbGw7CivogI4gPiB3ZWFrOwor57+6ID4gc29hcjsKK+e+rSA+IGdvb2Q7CivnvpwgPiBsYW1iOwor57yLID4gZHJhdzsKK+e6miA+IGxvbmc7CivnupYgPiBmaW5lOwor57qVID4gYmVsdDsKK+e6jiA+IGZpbmU7Civnuo0gPiBiaW5kOwor57qHID4ga25vdDsKK+e6hiA+IGNvcmQ7CivnuaQgPiBlZGl0Owor57miID4gZHJhdzsKK+e5oCA+IGhhbmc7CivnuZggPiByb3BlOwor57mKID4gZmluZTsKK+e5hSA+IGRyYXc7CivnuYMgPiBiaW5kOwor57i+ID4gc3BpbjsKK+e4syA+IHdyYXA7CivnuK8gPiBsb25nOwor57iiID4gYmluZDsKK+e4miA+IGJhbmQ7CivnuIogPiBoYW5nOwor57evID4gd29vZjsKK+e3pCA+IGNvcmQ7Civnt5ggPiBzZWFsOwor57eOID4gc2VhbTsKK+e3hCA+IGNvcmQ7CivntqsgPiBsaW5lOwor57aRID4gY29pbDsKK+e2jSA+IHJvcGU7CivntoEgPiBiaW5kOwor57WPID4gcm9wZTsKK+e0oSA+IHNwaW47CivntIYgPiBiZW5kOwor57O5ID4gc2lsazsKK+eyiyA+IHB1cmU7CivnsbkgPiBjYWtlOwor57GZID4gYm9vazsKK+exjyA+IGZsYWc7CivnsYwgPiBjaGlwOwor57GKID4gbG9uZzsKK+ewvSA+IHNpZ247CivnsIYgPiByZWVkOwor56uFID4gaG9sZTsKK+ergSA+IGJvcmU7Civnqr4gPiBob2xlOwor56q1ID4gZGVlcDsKK+eqryA+IGtpbG47Civnqq0gPiBwb29yOwor56qpID4gbmVzdDsKK+epvSA+IGhvbGU7Civnqa4gPiB3ZWVkOwor56mhID4gZmFybTsKK+epnCA+IHJpY2U7CivnqZAgPiBmYWxsOwor56mLID4gcmljZTsKK+epgCA+IGNvcm47CivnqJsgPiBiaW5kOwor56iRID4gcmljZTsKK+enqiA+IG9ubHk7Civnp4ogPiB5ZWFyOwor56a4ID4gcnVtcDsKK+emsSA+IHByYXk7CivnpYcgPiBvbmx5Owor56SsID4gYWx1bTsKK+ekpyA+IHJvbGw7CivnpKYgPiBtaW5lOwor56ShID4gZmlsbDsKK+ejmiA+IHRpbGU7CivnoL8gPiBtaW5lOwor55+7ID4gdG9pbDsKK+efmSA+IHZpZXc7CivnnqsgPiBsb29rOwor55ukID4gdHJheTsKK+ebnSA+IGRyaXA7Civnm4wgPiBib3dsOwor55q3ID4gZHJ1bTsKK+eZtiA+IGxlZ3M7Civnma4gPiByYXNoOwor55miID4gaXRjaDsKK+eZoCA+IHNpY2s7CivnmK8gPiBpdGNoOwor55ieID4gYnVyeTsKK+eYliA+IGR1bWI7CivnmIIgPiBkdW1iOwor55evID4gc2ljazsKK+eXjCA+IGFjaGU7CivnlqcgPiBzaWNrOwor55aYID4gYW51czsKK+eWkCA+IGZhbGw7CivnlYogPiBwbG93Owor55WHID4gbGFuZDsKK+eVhCA+IHN0b3A7CivnlIwgPiBib3dsOwor55OYID4gamFkZTsKK+eTiiA+IGphZGU7CivnjbUgPiBodW50Owor542uID4gaHVudDsKK+eNpyA+IHJhc2g7CivnjYsgPiByb2FyOwor542FID4gbGlvbjsKK+eNgyA+IGR1bGw7CivnjJ8gPiBodW50Owor54yLID4gd2luZDsKK+eLmCA+IGp1bXA7Civni4AgPiBmb3JtOwor54qyID4gd29sZjsKK+eKoiA+IGNhbGY7CivnioIgPiBwbG93Owor54m9ID4gZHJhZzsKK+eJtCA+IGdvcmU7CivniaMgPiBmaWxsOwor54mGID4gd2FsbDsKK+eInyA+IGZpcmU7CivniJYgPiBmaXJlOwor54iHID4gYnVybjsKK+eHqCA+IGZpcmU7CivnhocgPiBiYWtlOwor54WaID4gZmlyZTsKK+eFliA+IHdhcm07CivnhZEgPiBjb29rOwor54WHID4gd2VsZDsKK+eEriA+IGhlYXQ7CivnhJwgPiBmaXJlOwor54OdID4gcmlzZTsKK+eDlCA+IGhlYXQ7Civng48gPiBjcm93Owor54GdID4gdmFzdDsKK+eBmCA+IGJhbms7CivngKYgPiBwb25kOwor5r+zID4gaGlkZTsKK+a/lCA+IG1hbnk7Civmv4ogPiB2YXN0Owor5r+IID4gbWFueTsKK+a+kiA+IHZhc3Q7CivmvaQgPiBzb2Z0Owor5r2bID4gaGlkZTsKK+a9kSA+IHBvdXI7CivmvYUgPiBwb3VyOwor5rywID4gcm9hcjsKK+a8rSA+IHZhc3Q7CivmvJogPiBzb2FrOwor5ryZID4gZGV3eTsKK+a8mCA+IGJhbms7Civmu74gPiB0dXJuOwor5ru6ID4gZmxvdzsKK+a7riA+IGZsb3c7Civmu4wgPiB3YXNoOwor5ruJID4gZGVlcDsKK+a7hCA+IGJsdWU7CivmurwgPiBkYW1wOwor5rm7ID4gcHVyZTsKK+a5siA+IGZsb3c7CivmuZ0gPiBmbG93Owor5rewID4gZmlzaDsKK+a3qCA+IHB1cmU7CivmtrQgPiBkYXViOwor5raKID4gZGlydDsKK+azmSA+IHJvYXI7CivmsqwgPiBkdXNrOwor5rKVID4gZGVlcDsKK+axjSA+IHdlZXA7CivmsJ0gPiBuZW9uOwor5rCKID4gZmVsdDsKK+awhCA+IGRvd247CivmsIIgPiB0YWlsOwor5q2yID4geWVhcjsKK+atlyA+IHJvYXI7CivmrYogPiBzaWdoOwor5qyQID4gYmVhbTsKK+arsyA+IGNhZ2U7Civmq5ogPiBwYWxtOwor5qq0ID4gdHJlZTsKK+aqjSA+IGlsZXg7CivmqaYgPiB0cmVlOwor5qmBID4gdHJlZTsKK+anuSA+IHNwYXI7Civmp4MgPiB0cmF5Owor5qWwID4gdHJlZTsKK+alqSA+IHRyZWU7CivmpZ8gPiB0cmVlOwor5qWYID4gYmFuZDsKK+akuCA+IHJhY2s7CivmpJEgPiBvdmFsOwor5qOsID4gYm93bDsKK+ajqiA+IHRyZWU7Civmo5EgPiByYWZ0Owor5qK0ID4gbG9uZzsKK+ahvyA+IHBvbGU7CivmobkgPiBwYWxtOwor5qGLID4gdHJlZTsKK+aguyA+IHRyZWU7Civmn6MgPiBzaWxsOwor5p+CID4gaGVsbTsKK+aetCA+IGNhbmU7CivmnZ0gPiB0cmVlOwor5p2XID4gYmVhbTsKK+acvyA+IHN0YWI7CivmnLMgPiB0cmVlOwor5pyYID4gd2FuZTsKK+abiSA+IGRhd247CivmmbMgPiBmYWlyOwor5pi7ID4gcmlzZTsKK+aYrCA+IGR1c2s7CivmmKsgPiB3YXJtOwor5pe5ID4gdGltZTsKK+aXtCA+IGRhd247Civml5wgPiBmbGFnOwor5peCID4gZmxhZzsKK+aVvyA+IGJpbmQ7Civmlb0gPiBiaW5kOwor5pW7ID4gbG9uZzsKK+aUoiA+IHNhdmU7CivmlIUgPiBzYXZlOwor5pOrID4gdHVjazsKK+aToyA+IGh1bGw7CivmkrsgPiBmbG9nOwor5pKlID4gbW92ZTsKK+aSnSA+IHdhdmU7CivmkbIgPiByYXplOwor5pGmID4gd2lkZTsKK+aQpSA+IGJlYXQ7CivmkJggPiBwcm9wOwor5pCXID4gaHVsbDsKK+aQkiA+IHBvbGU7CivmkIwgPiBiaW5kOwor5pCGID4gcHVsbDsKK+aOniA+IGVhc3k7CivmjpcgPiB0YWtlOwor5o2YID4gcHVzaDsKK+aNhCA+IGxvbmc7CivmjJAgPiBkcmFnOwor5ouPID4gdGFrZTsKK+aKtiA+IGJlYXQ7CivmioYgPiB3aXBlOwor5oi2ID4gZG9vcjsKK+aIgSA+IGZlYXI7Civmh7YgPiBsYXp5Owor5oeuID4gY2FsbTsKK+aHnyA+IGhhdGU7Civmh5wgPiBkdWxsOwor5oawID4gd2lseTsKK+aGqyA+IHBpdHk7CivmhpkgPiBsaWtlOwor5oaYID4gbGlrZTsKK+aGhyA+IHJlc3Q7CivmhbQgPiBmZWFyOwor5oWCID4gdXJnZTsKK+aEkiA+IHJlc3Q7CivmgYcgPiBmZWFyOwor5oCzID4gd2lsZDsKK+aArSA+IHJ1ZGU7CivmgJogPiBkdWxsOwor5b2hID4gaGFpcjsKK+W9jiA+IGJlbmQ7Civlu7wgPiB0aGVuOwor5buzID4gaGFsbDsKK+W7sCA+IGhhbGw7Civlu6cgPiB3YWxsOwor5buOID4gcm9vbTsKK+W5ryA+IHdpcGU7CivluaQgPiBldmlsOwor5bmfID4gZmxhZzsKK+W5miA+IGhlbHA7CivluYsgPiBiZWx0Owor5bmHID4gaGVscDsKK+W4nyA+IHRlbnQ7CivltrggPiBoaWdoOwor5baEID4gaGlnaDsKK+W1syA+IGhpZ2g7CivltKIgPiBoaWdoOwor5bOvID4gcGVhazsKK+WzhyA+IGNhdmU7CivlsqcgPiBwZWFrOwor5bGHID4gY2F2ZTsKK+WwsiA+IGxpbXA7CivlsKsgPiBsYW1lOwor5bCqID4gbGFtZTsKK+WwqSA+IHdlYWs7CivlsKMgPiBsYW1lOwor5bCHID4gd2lsbDsKK+WvoCA+IHBvb3I7Civlr5QgPiByZWFsOwor5a27ID4gbGFzdDsKK+WsviA+IGxhenk7CivlrLAgPiBiYWJ5Owor5aytID4gbWlsazsKK+WsmSA+IGxhZHk7Civlq4ggPiBsYWR5Owor5aqKID4gc3RhcjsKK+WpniA+IGhhdGU7CivlqZAgPiBtYWlkOwor5ai4ID4gdWdseTsKK+WotSA+IHN0YXI7Civlp70gPiBnb29kOwor5aeuID4gbGFkeTsKK+WnpCA+IG1hdGU7CivlpJsgPiBtdWNoOwor5aSQID4gbG9uZzsKK+WjmSA+IHRvbWI7Civlo5IgPiBkdXN0Owor5aOMID4gc29pbDsKK+WiuyA+IHdhbGw7CivloqYgPiB0b21iOwor5aG5ID4gbW9hdDsKK+WgsiA+IGhhdGU7CivloKggPiBkYXViOwor5aCLID4gYnVyeTsKK+WfsCA+IGZpZWY7Civln4ggPiBoaWdoOwor5Z6cID4gaGVhcDsKK+WdsSA+IGR1c3Q7CivlnYsgPiBkdXN0Owor5ZulID4gaGlkZTsKK+WbkyA+IGduYXc7Civlm4AgPiBzaW5nOwor5ZqkID4gc2xvdzsKK+WamSA+IGJpdGU7CivlmoQgPiByb2FyOwor5ZmzID4gbWFueTsKK+WZnSA+IGhpc3M7CivlmYkgPiBiaXRlOwor5Zi9ID4gcGFudDsKK+WYryA+IHJvYXI7CivlmK4gPiBjaGF0Owor5ZioID4gcm9hcjsKK+WYnCA+IG1hcms7Civll7AgPiB0aGF0Owor5ZeKID4gc2luZzsKK+WWrCA+IHRhbGw7CivllqggPiB3YWlsOwor5ZWfID4gb3BlbjsKK+WVniA+IGR1bWI7CivllZkgPiBwb29yOwor5ZWTID4gb3BlbjsKK+WVgCA+IGduYXc7CivllLYgPiBzaWdoOwor5ZSbID4gbWFyazsKK+WSvCA+IGNoYXQ7CivlkrcgPiBob3dsOwor5ZKuID4gYmVhazsKK+WRmSA+IGNoYXQ7CivlkY4gPiBmb290Owor5ZGHID4gc3RhcjsKK+WQvyA+IHRlbGw7CivlkL0gPiAnJ29tJyc7CivlkKogPiBtb3ZlOwor5ZCLID4gaW5jaDsKK+WOlCA+IHN0b3A7CivljYAgPiBhcmVhOwor5Yy1ID4gY2FzZTsKK+WLuSA+IHdyYXA7CivlibogPiBtYXJrOwor5YmdID4gcGVlbDsKK+WJmiA+IHN0YWI7CivliL4gPiBzdGFiOwor5YicID4gY2hvcDsKK+WIkyA+IHRyaW07Civlh64gPiB3aW5kOwor5YeqID4gY2FsbTsKK+WHqCA+IHdpbmQ7Civlh6cgPiBraXRlOwor5YeaID4gY29sZDsKK+WHliA+IHJ1bGU7Civlh5QgPiBjb2xkOwor5YaQID4gcmlzazsKK+WGgiA+IHdpZGU7CivlhYwgPiBjYXNoOwor5YS+ID4gc2xvdzsKK+WEvSA+IGxhenk7CivlhLogPiByaWNoOwor5YSxID4gcnVkZTsKK+WEnCA+IHdlYWs7CivlhIUgPiBzdG9wOwor5YO+ID4gbGlrZTsKK+WDqCA+IHJ1aW47CivlgrUgPiBkZWJ0Owor5YKtID4gaGlyZTsKK+WBhCA+IHdlYWs7CivlgL0gPiB3aGF0Owor5L+0ID4gdGhpbjsKK+S/lCA+IGxpa2U7CivkvqIgPiBsb2FkOwor5L6cID4gbGllczsKK+S+miA+IGZhc3Q7CivkvoAgPiBmb3JtOwor5L24ID4gbWVldDsKK+S8uSA+IGR1bGw7CivkvLEgPiB0aG91Owor5Lu4ID4gYmVudDsKK+S6oCA+IGhlYWQ7Civkup0gPiBldmVuOwor5LqcID4gYXNpYTsKK+S6liA+IGZvdXI7CivkuoUgPiBob29rOwor5Lm8ID4gcm9wZTsKK+S5rSA+IHJvY2s7CivkuLMgPiBzcGl0Owor5LigID4gaGlsbDsKK+S1tyA+IGZyb2c7CivktaggPiBkYXJrOwor5LWSID4gZ2x1ZTsKK+S1kSA+IGdsdWU7CivktLggPiBicmFuOwor5LSdID4gc2FsdDsKK+S0nCA+IHNhbHQ7CivktIMgPiB3cmVuOwor5LO8ID4gZ3VsbDsKK+SzpiA+IHdyZW47Civks6MgPiBraXRlOwor5LKtID4ga2l0ZTsKK+SykiA+IGNyYWI7CivksbQgPiB0dW5hOwor5LGtID4gdHVuYTsKK+SxjiA+IHR1bmE7CivksY0gPiB0dW5hOwor5LCpID4gdWdseTsKK+SwpiA+IHVnbHk7CivksKQgPiB1Z2x5Owor5LCVID4gbWFuZTsKK+SwkyA+IGhhaXI7CivksIsgPiBoYWlyOwor5LCKID4gaGFpcjsKK+SwhyA+IG1hbmU7Civkr7kgPiBoYWlyOwor5K+fID4gYm9uZTsKK+SvniA+IGJvbmU7Civkr5UgPiBib255Owor5K6/ID4gbGFtZTsKK+SuviA+IGh1Z2U7CivkraIgPiByaWNoOwor5K2hID4gZm9vZDsKK+StkyA+IGZvb2Q7CivkrYIgPiBkYW1wOwor5K2AID4gZm9vZDsKK+SsniA+IHdpbmQ7CivkrI8gPiB3aW5kOwor5Ku2ID4gdWdseTsKK+SrqiA+IHVnbHk7Civkq6IgPiBnb29kOwor5KuRID4gZ29vZDsKK+SrjyA+IHVnbHk7Civkq4ogPiBjaGluOwor5KuIID4gdWdseTsKK+SrgiA+IHVnbHk7CivkqqYgPiBsb3VkOwor5KqPID4gd2VhazsKK+SqhiA+IHNvZnQ7CivkqLAgPiByYWluOwor5KiuID4gc25vdzsKK+SopCA+IHJhaW47CivkqJQgPiBoYWlsOwor5KiMID4gaGFpbDsKK+SnuyA+IGRvdmU7Civkp7kgPiBoYXdrOwor5KawID4gbG90czsKK+SlqyA+IGlyb247CivkpZQgPiBnb2xkOwor5KWSID4gbGVhZDsKK+SkriA+IGlyb247CivkpKEgPiBpcm9uOwor5KSRID4gd2luZTsKK+SkiiA+IHdpbmU7Civko70gPiB3aW5lOwor5KOoID4gcmljaDsKK+ShsyA+IGNhcnQ7CivkoYAgPiBudWRlOwor5KCtID4gbGFtZTsKK+SglyA+IGxhbWU7CivkoI8gPiBmZWV0Owor5J+oID4gbGFtZTsKK+SfgiA+IHNsb3c7Civknr8gPiBsYW1lOwor5J6pID4gbGFtZTsKK+SenSA+IGxhbWU7CivknoYgPiBib25lOwor5J2YID4gZmlybTsKK+SdlSA+IGdvb2Q7Civkm7QgPiBqb2tlOwor5Jq9ID4gbmV3czsKK+SauCA+IGdvb2Q7CivkmqkgPiBoaWdoOwor5JqiID4gaG9ybjsKK+SZpCA+IGdvb2Q7CivkmYogPiBhcmlkOwor5JepID4gdG9hZDsKK+SXoiA+IGZsZWE7CivklrggPiBtb3RoOwor5JatID4gZ3J1YjsKK+SWqiA+IGdydWI7CivklqMgPiBmbGVhOwor5JWiID4gd2VhazsKK+SUrCA+IGhlbXA7Civkk74gPiBsdXNoOwor5JO4ID4gd2VlZDsKK+STsiA+IGZpbmU7CivkkrogPiBjbGF5Owor5JKtID4gcmFuazsKK+SRrCA+IGJvYXQ7CivkkZ4gPiBzaHVuOwor5JGPID4gdWdseTsKK+SRhCA+IHJpY2g7CivkkLMgPiBmaXNoOwor5JCuID4gc2tpbjsKK+SQkyA+IHNvZnQ7CivkkIsgPiBzaWNrOwor5I+4ID4gZmlzaDsKK+SPsSA+IGJvZHk7Civkj6IgPiBtZWF0Owor5I+OID4gbWlsazsKK+SPiiA+IGRlYWY7CivkjpwgPiBhZ2VkOwor5I2aID4gdmFzdDsKK+SMqSA+IGZpbmU7CivkjJ0gPiBzaWxrOwor5IyTID4gbWFueTsKK+SMkiA+IHB1cmU7CivkjIwgPiBsYWNlOwor5Iu8ID4gc2xvdzsKK+SLliA+IGxvbmc7CivkiqYgPiBmb29kOwor5IepID4gbG9uZzsKK+SGrSA+IGNhdmU7CivkhqkgPiBkYXJrOwor5IamID4gZGVlcDsKK+SEqSA+IGJyYW47CivkgoMgPiBkYXJrOwor5IGpID4gZmlzaDsKK+SBhiA+IGV5ZXM7CivkgYUgPiByYWdlOwor5IC+ID4gbWFueTsKK+SAnCA+IGRvd247CivkgIsgPiBzYWx0Owor5ICAID4gY3VwczsKK+O/mSA+IGZ1bGw7Civjv44gPiBzaWNrOwor4765ID4gbGVhbjsKK+O+qiA+IGxlYW47CivjvqggPiB3ZWFrOwor476bID4gdWdseTsKK+O+iiA+IHRoaW47CivjvokgPiB0aGluOwor47qlID4gYmFyazsKK+O5kiA+IGJ1bGw7CivjuY8gPiBnb29kOwor47mOID4gYnVsbDsKK+O5jSA+IGJ1bGw7CivjuLggPiBjYWxmOwor47iuID4gYnVsbDsKK+O4jiA+IHdhcm07Civjt7UgPiBmaXJlOwor47e0ID4gZmlyZTsKK+O3rCA+IGZpcmU7Civjt5ggPiBjb2FsOwor47eQID4gZmlyZTsKK+O3hCA+IGZpcmU7CivjtrkgPiBmaXJlOwor47avID4gZmlyZTsKK+O2qCA+IGZpcmU7CivjtqcgPiB3YXJtOwor47W+ID4gY29sZDsKK+O1tiA+IGZ1bGw7CivjtakgPiBtYW55Owor47WZID4gcHVyZTsKK+O1liA+IGRhbXA7CivjtLQgPiBzaW5rOwor47SxID4gZGVlcDsKK+O0nSA+IG1hbnk7CivjtJsgPiBkYW1wOwor47SXID4gZGVlcDsKK+O0gCA+IGRlZXA7Civjs6QgPiBnb29kOwor47K+ID4gcmFpbjsKK+OyuyA+IHN1bms7CivjsrQgPiBtaW5kOwor47KfID4gaGFpcjsKK+OynCA+IHJ1Z3M7CivjspMgPiBmaW5lOwor47G0ID4gc2ljazsKK+OxiyA+IGhpZ2g7CivjsYcgPiBmZWFyOwor47CrID4gZ2xhZDsKK+OwoSA+IHJhc2g7CivjsJ8gPiBob3BlOwor47CZID4gd2VhazsKK+OwkCA+IG92YWw7CivjrrogPiBzdGVtOwor466kID4gcGluZTsKK+OukiA+IHdvb2Q7Civjrb0gPiByb290Owor46yYID4gYXJpZDsKK+OsiSA+IHdhcm07CivjrIUgPiBsb25nOwor46uyID4gZGFyazsKK+OrsSA+IG1pbGQ7Civjq6UgPiBkYXJrOwor46uOID4gbWFyazsKK+OrhCA+IHNpZGU7CivjqbwgPiBtYW55Owor76ilID4gZmxlZTsKK++ohSA+IGNhdmU7Civvp78gPiBzdGFiOwor76e6ID4gZm9ybTsKK++ntSA+IGRyaXA7Civjp64gPiBoaWdoOwor76erID4gaGlkZTsKK+OnqCA+IHNsb3c7Civvp6IgPiBwZWFyOwor76ehID4gcGx1bTsKK++nkyA+IGxhbmQ7Civvp5IgPiBraWxsOwor76ePID4ga25vdDsKK++njSA+IHN0b3A7Civvp4ogPiBmbG93Owor76a5ID4gZXZpbDsKK++mtCA+IG5lY2s7CivvprIgPiB6ZXJvOwor76axID4gYmVsbDsKK++mrCA+IHBpdHk7CivvpqcgPiBodW50Owor46aoID4gbGF6eTsKK+OmoiA+IHB1cmU7CivvppogPiBqb2luOwor76aVID4geWVhcjsKK++mkCA+IGxvdmU7Civvpo8gPiBwaXR5Owor76aOID4geWVhcjsKK+OmjyA+IHdlYWs7CivvpoMgPiB0cmlwOwor76W8ID4gZ29vZDsKK++luyA+IGZvb2Q7CivvpbkgPiBjb29sOwor76WyID4gc2luazsKK++lsCA+IGtpbGw7Civvpa4gPiBsZWFmOwor46WsID4gZmVhcjsKK+OlqSA+IGlkbGU7CivjpaEgPiBpZGxlOwor76WbID4gdGFrZTsKK++lmiA+IHJlYWQ7CivvpZkgPiBoaWxsOwor76WVID4gcHVyZTsKK++lkyA+IHJpYnM7CivvpY4gPiBsZWFrOwor76WFID4gZGVhZjsKK++lhCA+IGNhZ2U7CivvpYAgPiBkZWVyOwor76S/ID4gY29weTsKK++ktyA+IHJvYWQ7CivvpK4gPiBjb2xkOwor76StID4gY29tZTsKK++kqyA+IHdvbGY7CivvpKogPiB3YXZlOwor76SlID4gcHVsbDsKK++koyA+IGJsdWU7CivjpJ8gPiBmZWFyOwor76SYID4gZmFsbDsKK++kkiA+IGJhcmU7CivvpI0gPiBsYXp5Owor76SLID4gaG9ybjsKK++kiiA+IGdvbGQ7CivvpIkgPiBkZWVkOwor46SJID4gZmVhcjsKK++khCA+IHNsaXA7CivvpIIgPiBjYXJ0Owor76SBID4gbW9yZTsKK+OjjiA+IGZpbmU7CivjopwgPiB2YXN0Owor46KYID4gcHVyZTsKK+OilCA+IG1hbnk7Civjoo4gPiBoaWRlOwor46KLID4gdmFzdDsKK+OigyA+IGhpZ2g7CivjooEgPiB2YXN0Owor46GmID4gbWVzczsKK+OguyA+IHJhcmU7CivjoKkgPiB2YXN0Owor46CMID4gaGlnaDsKK+OesSA+IGR1c2s7CivjnpYgPiB0aGlzOwor456EID4gbGFtZTsKK+OdvyA+IGxhbWU7CivjnaEgPiB2ZXJ5Owor452gID4gZGFyazsKK+OdnSA+IGRlZXA7CivjnZEgPiBzaWRlOwor452QID4gZmFjZTsKK+OdiCA+IHR3aW47CivjnYQgPiBwdXJlOwor45y3ID4gbWlsazsKK+OcmyA+IHNvZnQ7CivjnIMgPiBmcm9tOwor45umID4gZ29vZDsKK+OapyA+IGFnaWw7Civjmo0gPiBtdWNoOwor45qLID4gbXVjaDsKK+OaiiA+IG11Y2g7CivjmoIgPiBkdXN0Owor45mqID4gZGFyazsKK+OZoCA+IGR1c3Q7CivjmZIgPiB3aWxkOwor45mCID4gd2FsbDsKK+OZgSA+IGR1c3Q7CivjmKggPiBkZWVwOwor45iQID4gbG91ZDsKK+OXiCA+IGxvbmc7CivjlaYgPiBsb3VkOwor45SEID4gdGhpbjsKK+OTkSA+IGNvbGQ7Civjk44gPiBjb2xkOwor45OKID4gY29sZDsKK+OSmiA+IGZpcm07Civjko4gPiBldmlsOwor45G/ID4gbG9uZzsKK+ORtSA+IGVudnk7CivjkZogPiB0aGF0Owor45GMID4gd2VhazsKK+ORiCA+IHJ1ZGU7CivjkKEgPiB3ZWFrOwor45CFID4gZml2ZTsKK+S4gCA+IG9uZTsKK+S6uiA+IG1hbjsKK+aIkSA+IG91cjsKK+WkpyA+IGJpZzsKK+S4iiA+IHRvcDsKK+S9oCA+IHlvdTsKK+WPryA+IG1heTsKK+WluSA+IHNoZTsKK+WkqSA+IHNreTsKK+iAjCA+IGFuZDsKK+eEtiA+IHllczsKK+ayoSA+IG5vdDsKK+aXpSA+IHN1bjsKK+W9qSA+IGh1ZTsKK+WNgSA+IHRlbjsKK+eUqCA+IHVzZTsKK+ecvCA+IGV5ZTsKK+WPiCA+IGFuZDsKK+ingSA+IHNlZTsKK+iAgSA+IG9sZDsKK+S4pCA+IHR3bzsKK+WkliA+IG91dDsKK+S4jiA+IGFuZDsKK+azlSA+IGxhdzsKK+ebriA+IGV5ZTsKK+S6jCA+IHR3bzsKK+eCuSA+IGRvdDsKK+ebnCA+IHJvYjsKK+WFtiA+IGhpczsKK+eblyA+IHJvYjsKK+WEvyA+IHNvbjsKK+aWsCA+IG5ldzsKK+W6iiA+IGJlZDsKK+eahiA+IGFsbDsKK+a1tyA+IHNlYTsKK+WwkSA+IGZldzsKK+W4vSA+IGhhdDsKK+WPqyA+IGNyeTsKK+atuyA+IGRpZTsKK+aUviA+IHB1dDsKK+S7iiA+IG5vdzsKK+i1pCA+IHJlZDsKK+eVoiA+IGVuZDsKK+aImCA+IHdhcjsKK+izvCA+IGJ1eTsKK+eTtiA+IGp1ZzsKK+ivtyA+IGFzazsKK+S6pCA+IG1peDsKK+WQgyA+IGVhdDsKK+iytyA+IGJ1eTsKK+mdniA+IG5vdDsKK+WkqyA+IG1hbjsKK+e6oiA+IHJlZDsKK+i/kCA+IHJ1bjsKK+WvpSA+IGZldzsKK+e9kSA+IG5ldDsKK+mjniA+IGZseTsKK+ingiA+IHNlZTsKK+eMvyA+IGFwZTsKK+eMqyA+IGNhdDsKK+eMqiA+IHBpZzsKK+WdkCA+IHNpdDsKK+isgiA+IHNheTsKK+eLlyA+IGRvZzsKK+iriyA+IGFzazsKK+e7iCA+IGVuZDsKK+WIhyA+IGN1dDsKK+eKrCA+IGRvZzsKK+iqpCA+IGVycjsKK+WwlCA+IHlvdTsKK+eDrSA+IGhvdDsKK+WPpCA+IG9sZDsKK+eJmyA+IGNvdzsKK+eJgCA+IGJlZDsKK+ingCA+IHNlZTsKK+S9jiA+IGxvdzsKK+imsyA+IHNlZTsKK+eGsSA+IGhvdDsKK+S7jSA+IHlldDsKK+imiyA+IHNlZTsKK+iEmiA+IGxlZzsKK+S6kSA+IHNheTsKK+S5sCA+IGJ1eTsKK+WliCA+IGJ1dDsKK+aOkiA+IHJvdzsKK+WjryA+IGJpZzsKK+WjniA+IGJhZDsKK+WjiiA+IGJhZDsKK+a5viA+IGJheTsKK+WiqCA+IGluazsKK+WQpiA+IG5vdDsKK+mjnyA+IGVhdDsKK+ihkyA+IGFydDsKK+a/mCA+IG11ZDsKK+a/lSA+IHdldDsKK+mcsiA+IGRldzsKK+m9oiA+IGFnZTsKK+m9oSA+IGFnZTsKK+idmSA+IGJhdDsKK+idiyA+IHdheDsKK+m8oCA+IHJhdDsKK+i3kSA+IHJ1bjsKK+icgiA+IGJlZTsKK+iJuiA+IGFydDsKK+m7niA+IGRvdDsKK+aRhyA+IHdhZzsKK+mhtiA+IHRvcDsKK+a5vyA+IHdldDsKK+erryA+IGVuZDsKK+aXpyA+IG9sZDsKK+ayuSA+IG9pbDsKK+iXnSA+IGFydDsKK+avlSA+IGVuZDsKK+iXiSA+IG1hdDsKK+a2siA+IHNhcDsKK+iWryA+IHlhbTsKK+iAsyA+IGVhcjsKK+WWiyA+IG5hZzsKK+WVnCA+IHNpcDsKK+WVjyA+IGFzazsKK+azpSA+IG11ZDsKK+azoyA+IGNyeTsKK+WTgCA+IHNhZDsKK+WGsCA+IGljZTsKK+ivryA+IGVycjsKK+WHoSA+IGFsbDsKK+axnSA+IHlvdTsKK+iwkyA+IHNheTsKK+adryA+IGN1cDsKK+awtyA+IGljZTsKK+awoyA+IGFpcjsKK+awlyA+IGFpcjsKK+iQjCA+IGJ1ZDsKK+i0rSA+IGJ1eTsKK+mAlCA+IHdheTsKK+aRhiA+IHB1dDsKK+WFuCA+IGxhdzsKK+iMtiA+IHRlYTsKK+WNtSA+IGVnZzsKK+aSrSA+IHNvdzsKK+iHgiA+IGFybTsKK+astyA+IHNvYjsKK+WMmiA+IGJveDsKK+aRqSA+IHJ1YjsKK+mkkCA+IGVhdDsKK+WGoCA+IGNhcDsKK+iKvSA+IGJ1ZDsKK+iKuCA+IHJ1ZTsKK+WKoyA+IGJhZDsKK+WJvSA+IHJvYjsKK+WJsiA+IGN1dDsKK+e8mCA+IGhlbTsKK+S/qSA+IHR3bzsKK+WjriA+IGJpZzsKK+W/pyA+IHNhZDsKK+iIiiA+IG9sZDsKK+iIhyA+IGFuZDsKK+m+hCA+IGFnZTsKK+aDqCA+IHNhZDsKK+iFviA+IGZseTsKK+afkyA+IGR5ZTsKK+iGvyA+IHB1czsKK+amuyA+IGNvdDsKK+WGhiA+IHllbjsKK+WFqSA+IHR3bzsKK+WFkiA+IHNvbjsKK+iFkCA+IHJvdDsKK+WFkCA+IHNvbjsKK+iEgiA+IGZhdDsKK+mjmyA+IGZseTsKK+iCpSA+IGZhdDsKK+aPtCA+IGFpZDsKK+iDliA+IGZhdDsKK+WTvCA+IGh1bTsKK+WBtSA+IHNweTsKK+mhmyA+IHRvcDsKK+mhjiA+IGphdzsKK+WAtiA+IGFsbDsKK+mggiA+IHRvcDsKK+e9kCA+IGphcjsKK+aNtyA+IHdpbjsKK+mcpyA+IGZvZzsKK+S5viA+IGRyeTsKK+S/sSA+IGFsbDsKK+i1oiA+IHdpbjsKK+e8nSA+IHNldzsKK+aKmiA+IHBhdDsKK+aMliA+IGRpZzsKK+abnSA+IHN1bjsKK+mbviA+IGZvZzsKK+aakSA+IGhvdDsKK+mioCA+IHRvcDsKK+aJhyA+IGZhbjsKK+absCA+IHNheTsKK+S5niA+IGJlZzsKK+i1jCA+IGJldDsKK+e4qyA+IHNldzsKK+S4oSA+IHR3bzsKK+asoCA+IG93ZTsKK+awmyA+IGdhczsKK+e4gSA+IGhlbTsKK+e3oCA+IHRpZTsKK+W8lyA+IG5vdDsKK+e2siA+IG5ldDsKK+aWrCA+IGN1dDsKK+e1tiA+IGN1dDsKK+i+nyA+IGxhdzsKK+e1giA+IGVuZDsKK+ilhCA+IGFpZDsKK+eCkiA+IGZyeTsKK+mUoSA+IHRpbjsKK+e0hSA+IHJlZDsKK+aSqyA+IHBhdDsKK+mRtSA+IGphcjsKK+WdkSA+IHBpdDsKK+aQliA+IHdhZzsKK+aPuiA+IHdhZzsKK+aSlSA+IHJpcDsKK+aPiSA+IHJ1YjsKK+ejlSA+IGhpdDsKK+aWqSA+IGN1dDsKK+aOoCA+IHJvYjsKK+aOmCA+IGRpZzsKK+iwjiA+IGxpZTsKK+mKnCA+IGJpdDsKK+i1iyA+IHRheDsKK+WbiiA+IGJhZzsKK+aIsCA+IHdhcjsKK+aIpiA+IHdhcjsKK+aGgiA+IHNhZDsKK+aQgiA+IGh1ZzsKK+aFmCA+IHNhZDsKK+S+piA+IHNweTsKK+WjtiA+IGphcjsKK+W8kyA+IGJvdzsKK+icoSA+IHdheDsKK+W6kCA+IGh1dDsKK+atuSA+IGJhZDsKK+aDnyA+IGJ1dDsKK+ihlCA+IGJpdDsKK+WdjiA+IHBpdDsKK+WFuSA+IG5vdzsKK+avryA+IHJ1ZzsKK+mSpSA+IGtleTsKK+aWpyA+IGF4ZTsKK+i1jiA+IGJ1eTsKK+W9pCA+IHJlZDsKK+eHpSA+IGRyeTsKK+S9rCA+IG1hbjsKK+eehSA+IHNlZTsKK+i5piA+IGhvcDsKK+mchCA+IHNreTsKK+e/qSA+IGZseTsKK+aaqCA+IGFuZDsKK+i/oiA+IGZhcjsKK+e8lCA+IHRpZTsKK+ikmiA+IGJhZzsKK+iagiA+IGFudDsKK+aPjSA+IGhpdDsKK+aTgiA+IHJ1YjsKK+mUhCA+IGhvZTsKK+aNhSA+IGphYjsKK+meoCA+IGJvdzsKK+mqsCA+IGRpZTsKK+i4iSA+IGhvcDsKK+ahqCA+IG9hcjsKK+aLjCA+IG1peDsKK+eLuCA+IGZveDsKK+eAmyA+IHNlYTsKK+WZqSA+IGJhZDsKK+iTkyA+IGJ1ZDsKK+eqliA+IHBpdDsKK+aOuiA+IG1peDsKK+eMliA+IG1hZDsKK+i2viA+IHRvZTsKK+iYuCA+IGRpcDsKK+a3pCA+IG11ZDsKK+eQpiA+IGdlbTsKK+iEkyA+IHB1czsKK+eVuCA+IG9kZDsKK+ebjiA+IGN1cDsKK+iMlyA+IHRlYTsKK+iDpSA+IGFsbDsKK+aAhiA+IHNhZDsKK+azniA+IG11ZDsKK+WJkCA+IGN1dDsKK+iIgCA+IGRpcDsKK+WdryA+IGRhbTsKK+WgsCA+IGRhbTsKK+W5uiA+IG9uZTsKK+eJryA+IGNvdzsKK+W8vCA+IGFpZDsKK+mznSA+IGVlbDsKK+aWqyA+IGN1dDsKK+aAqSA+IHNoeTsKK+a6pSA+IGJpZzsKK+apuSA+IG9hcjsKK+m7oCA+IHNseTsKK+e7jCA+IHNldzsKK+WJnCA+IGN1dDsKK+e9lCA+IG5ldDsKK+mimiA+IGphdzsKK+WUvyA+IHNhZDsKK+iAqCA+IGhvZTsKK+iGmCA+IGZhdDsKK+mVsyA+IGJpdDsKK+iFtCA+IGZhdDsKK+eLryA+IHNseTsKK+mVoiA+IGhvZTsKK+ijqCA+IGFpZDsKK+mUmyA+IGFkejsKK+WbtSA+IGFsbDsKK+mCiCA+IGZhcjsKK+aukiA+IGRpZTsKK+WVliA+IGVhdDsKK+m6iyA+IGVsazsKK+mzjSA+IGZpbjsKK+WIjSA+IG1vdzsKK+S+lyA+IGJpZzsKK+alqyA+IG9hcjsKK+eMoSA+IHBpZzsKK+afniA+IG9hazsKK+S9pSA+IGFsbDsKK+mzlyA+IGVlbDsKK+meoyA+IHRhbjsKK+ajuSA+IG9hcjsKK+mZgiA+IGRhbTsKK+augSA+IGRpZTsKK+inmiA+IGp1ZzsKK+iHrCA+IGxhdzsKK+eMgyA+IGRvZzsKK+WvpCA+IGZldzsKK+WDliA+IGpveTsKK+eKrSA+IGRvZzsKK+e+nSA+IHJhbTsKK+iylCA+IGZveDsKK+injCA+IHNlZTsKK+anoCA+IG9hazsKK+a6uyA+IHdldDsKK+iKnyA+IG1vdzsKK+S/oyA+IGJpZzsKK+eTvyA+IGphcjsKK+mAliA+IGZhcjsKK+WTnCA+IHNpcDsKK+masCA+IGxvdzsKK+myoSA+IGVlbDsKK+avuSA+IHJ1ZzsKK+auqiA+IGRpZTsKK+e8jyA+IGhlbTsKK+mloyA+IGVhdDsKK+WfpCA+IGFkZDsKK+WdrSA+IG11ZDsKK+m+pSA+IGJlZzsKK+m9oyA+IGFjdDsKK+m8oSA+IHJhdDsKK+m7lSA+IHJlZDsKK+m5iyA+IGVtdTsKK+m0niA+IG93bDsKK+mylSA+IHJvZTsKK+mxuiA+IGVlbDsKK+mxlCA+IGVlbDsKK+mxkyA+IGVlbDsKK+mwuyA+IGVlbDsKK+mwrSA+IGZpbjsKK+muniA+IHJvZTsKK+mstyA+IHBvdDsKK+mstCA+IHBvdDsKK+mshiA+IGxheDsKK+mroiA+IHdpZzsKK+mqvSA+IGxlZzsKK+motSA+IGJheTsKK+mosyA+IHJ1bjsKK+mosCA+IGZseTsKK+mooiA+IGJheTsKK+mogiA+IHJlZDsKK+mniSA+IGJpZzsKK+mklCA+IGVhdDsKK+mjoCA+IGVhdDsKK+mhmiA+IHRvcDsKK+mgsyA+IHJlZDsKK+mgqyA+IGJvdzsKK+mfliA+IHRhbjsKK+mfjiA+IHJlZDsKK+mYrCA+IHBpdDsKK+mRsCA+IGtleTsKK+mRryA+IGF3bDsKK+mRoyA+IGJpdDsKK+mQjyA+IGNhcDsKK+mPmiA+IGF4ZTsKK+mOoSA+IGhvZTsKK+mNviA+IGN1cDsKK+mMqyA+IHRpbjsKK+mMpCA+IGhvZTsKK+mMmyA+IGFkejsKK+mMlCA+IGNhcDsKK+mLpCA+IGhvZTsKK+mJjyA+IGhvZTsKK+mBiSA+IHNweTsKK+i9kSA+IHJ1dDsKK+i4tiA+IHBhdzsKK+i3piA+IGhvcDsKK+i0liA+IGJ1eTsKK+i0jyA+IHdpbjsKK+izrSA+IGJldDsKK+izpiA+IHRheDsKK+iynCA+IGFwZTsKK+iykyA+IGNhdDsKK+ixvCA+IGZveDsKK+ixtyA+IG1hbjsKK+ixrCA+IHBpZzsKK+ixqCA+IHBpZzsKK+ixnSA+IHNvdzsKK+isiiA+IGxpZTsKK+imvyA+IHNlZTsKK+imqSA+IHNlZTsKK+imjCA+IHNlZTsKK+ijgCA+IG1hdDsKK+ihnCA+IHdheTsKK+igriA+IGJlZTsKK+ignyA+IHdheDsKK+ieniA+IGFudDsKK+iemCA+IGFudDsKK+idryA+IGFwZTsKK+ickSA+IGVnZzsKK+iXtyA+IHlhbTsKK+iVtyA+IHlhbTsKK+iVkyA+IHJ1ZTsKK+iUiyA+IGRyeTsKK+iTuiA+IGFydDsKK+iToyA+IHlhbTsKK+iStCA+IHBvZDsKK+iRhCA+IG1hdDsKK+iQoCA+IGJ1ZDsKK+iMsiA+IG5vdzsKK+iKuyA+IG1vdzsKK+iJqiA+IG9hcjsKK+iHlSA+IGZhdDsKK+iHhyA+IGZhdDsKK+iGnyA+IGZhdDsKK+iGiyA+IGZhdDsKK+iGgyA+IGZhdDsKK+iCrSA+IGZhdDsKK+iCgCA+IHBlbjsKK+iAoSA+IGhvZTsKK+e/viA+IGZseTsKK+e/gyA+IGZseTsKK+e+mCA+IHJhbTsKK+e+hyA+IGlubjsKK+e9uyA+IG5ldDsKK+e9piA+IG5ldDsKK+e9nyA+IG5ldDsKK+e9hiA+IGphcjsKK+e8viA+IGphcjsKK+e3tiA+IGhlbTsKK+e3tSA+IG5ldDsKK+e3sCA+IG5ldDsKK+e3oyA+IGhlbTsKK+e1lSA+IGN1dDsKK+e1gCA+IHNldzsKK+e0riA+IHRpZTsKK+expSA+IGtleTsKK+eukSA+IGZhbjsKK+eqniA+IHBpdDsKK+eqjCA+IHBpdDsKK+eqiiA+IHBpdDsKK+eqhSA+IGZhcjsKK+egsiA+IGd1bjsKK+eetiA+IGRpbTsKK+ediiA+IHNlZTsKK+ecmyA+IGRpbTsKK+eZmSA+IGlsbDsKK+eYqCA+IG1hZDsKK+eYjyA+IGlsbDsKK+eXlyA+IGlsbDsKK+eUkiA+IGphcjsKK+eUhyA+IGphcjsKK+eUgSA+IGp1ZzsKK+eUgCA+IGphcjsKK+eTuyA+IGphcjsKK+eTgCA+IGdlbTsKK+eShSA+IGdlbTsKK+eOhiA+IG5vdzsKK+eOgCA+IHBpZzsKK+eNqyA+IGRvZzsKK+eNqiA+IHNseTsKK+eNoiA+IGRvZzsKK+eMrSA+IGFwZTsKK+eMqCA+IGFwZTsKK+eJvCA+IG1hbjsKK+eIviA+IHlvdTsKK+eEniA+IGRpbTsKK+eBiyA+IGxhdzsKK+a+nSA+IG11ZDsKK+a9miA+IGdheTsKK+aykiA+IG5vdDsKK+avpyA+IGZ1cjsKK+auoyA+IGRpZTsKK+auniA+IGRpZTsKK+atvyA+IGRpZTsKK+atoCA+IHNpcDsKK+arpyA+IG9hazsKK+arkyA+IG9hcjsKK+argiA+IG9hcjsKK+aqnSA+IG9hcjsKK+appyA+IGh1dDsKK+aooCA+IGVsbTsKK+ansyA+IG9hcjsKK+aljiA+IHBlZzsKK+aktyA+IGJveDsKK+ajkyA+IGhpdDsKK+aitiA+IG9hcjsKK+aiqSA+IGhvZDsKK+ahriA+IGN1cDsKK+afuCA+IGN1cDsKK+adhSA+IHR1YjsKK+abgSA+IGFuZDsKK+aZniA+IGRyeTsKK+aYhCA+IGJpZzsKK+aWuCA+IGN1dDsKK+aWsiA+IGN1dDsKK+aWqCA+IGF4ZTsKK+aUtSA+IHJhcDsKK+aUtCA+IHJhcDsKK+aTuiA+IHB1dDsKK+aRnyA+IGh1ZzsKK+aQsCA+IGRpZzsKK+aQqCA+IHJ1YjsKK+aQpyA+IGZhbjsKK+aQgyA+IGFsbDsKK+aMvCA+IHJ1YjsKK+aFsSA+IHNhZDsKK+aEtCA+IHNhZDsKK+aDmSA+IHNhZDsKK+W8qCA+IGJvdzsKK+W8pCA+IGJvdzsKK+W7rCA+IGh1dDsKK+W4oyA+IGJhZzsKK+WwkyA+IHlvdTsKK+WwkiA+IHlvdTsKK+WvmSA+IGJhZDsKK+WsmyA+IGFwdDsKK+WmtSA+IG1hbjsKK+WmsyA+IHlvdTsKK+WlrSA+IHJlZDsKK+WlnCA+IGJpZzsKK+WljCA+IGRvdDsKK+WjuiA+IGphcjsKK+WjtyA+IGphcjsKK+WiqyA+IGN1cDsKK+WgjCA+IGRhbTsKK+WftiA+IGFydDsKK+WfpyA+IGRhbTsKK+WchyA+IGFsbDsKK+WaoiA+IGJhZzsKK+WajCA+IHNpcDsKK+WWqyA+IGVhdDsKK+WVlyA+IGVhdDsKK+WMuCA+IGJveDsKK+WKmiA+IGN1dDsKK+WJuCA+IGN1dDsKK+WJriA+IGN1dDsKK+WJiSA+IGN1dDsKK+WIsiA+IGN1dDsKK+WHoyA+IGFsbDsKK+WHoiA+IGFsbDsKK+WHgyA+IG11ZDsKK+WGqyA+IGljZTsKK+WGniA+IGZhcjsKK+WDiSA+IGFsbDsKK+WBryA+IHNvYjsKK+WAniA+IGZhcjsKK+S/gSA+IGJpZzsKK+S+iiA+IGJpZzsKK+S9vSA+IGFpZDsKK+S6kyA+IGhpczsKK+S6gSA+IGRyeTsKK+S5oiA+IGxpZDsKK+S4tiA+IGRvdDsKK+SzoCA+IG93bDsKK+SyiiA+IGZyeTsKK+SwoCA+IGdvZDsKK+SqniA+IGJhZDsKK+SqmiA+IGhvdDsKK+SphiA+IG9sZDsKK+SovyA+IGJhZDsKK+SimyA+IGZhcjsKK+SikyA+IGJlZDsKK+ShnCA+IGNhcjsKK+SdhiA+IGhvZzsKK+ScoyA+IGpveTsKK+SXtiA+IHdheDsKK+SXrCA+IGJlZTsKK+SXpiA+IGJlZTsKK+SSrCA+IG5vdDsKK+SRiyA+IGZhdDsKK+SRiiA+IGZhdDsKK+SRgiA+IGZhdDsKK+SQviA+IGZhdDsKK+SQtSA+IGZhdDsKK+SQqiA+IGZhdDsKK+SQqSA+IGZhdDsKK+SQnyA+IGZhdDsKK+SQjyA+IGZhdDsKK+SQjiA+IGZhdDsKK+SQiSA+IGZhdDsKK+SPuyA+IGNhbjsKK+SPtCA+IGRpbTsKK+SPpSA+IGRyeTsKK+SPnCA+IGZhdDsKK+SOiyA+IGZseTsKK+SNnSA+IG5ldDsKK+SNlSA+IG5ldDsKK+SNkiA+IG5ldDsKK+SMoiA+IHJhdzsKK+SLrCA+IHJ1ZzsKK+SLniA+IHdlYjsKK+SLhCA+IHdlYjsKK+SKkSA+IHBheTsKK+SJviA+IGJhZDsKK+SGviA+IGJpZzsKK+SGsSA+IGJpZzsKK+SBriA+IHNhZDsKK+O+kSA+IGZhdDsKK+O6iyA+IHBpZzsKK+O5hSA+IGFsbDsKK+O4gSA+IGRyeTsKK+O3qiA+IGZhdDsKK+O3oyA+IHJlZDsKK+O0vCA+IHdldDsKK+O0tyA+IHdldDsKK+OztCA+IG11ZDsKK+OyrSA+IHJ1ZzsKK+OyliA+IGZ1cjsKK+OujiA+IGN1cDsKK+OuiCA+IGJ1dDsKK+OrkyA+IGFpcjsKK++oliA+IHBpZzsKK++oiiA+IHNlZTsKK++ogCA+IGN1dDsKK++nviA+IHRlYTsKK++noyA+IG11ZDsKK+OmpyA+IHNhZDsKK++mnSA+IGJhZDsKK++mgiA+IGh1dDsKK+OmgCA+IGpveTsKK++luCA+IHR3bzsKK++ltSA+IHJvYjsKK+OloiA+IGJhZDsKK+OlkSA+IHNhZDsKK++kuCA+IGRldzsKK++ktCA+IG9sZDsKK++ksSA+IG9hcjsKK++kpyA+IHdheDsKK++knCA+IGVnZzsKK+OkmiA+IGpveTsKK++kjCA+IGJ1dDsKK+OkiCA+IHNhZDsKK+OioCA+IGZhcjsKK+OcuCA+IHNpbjsKK+OamiA+IGJpZzsKK+OYlCA+IGVhdDsKK+OXlCA+IGpveTsKK+OVhSA+IGJpZzsKK+OTiSA+IGljZTsKK+OSsyA+IHR3bzsKK+OSqiA+IHRpbjsKK+ORviA+IGpveTsKK+OQuiA+IGFsbDsKK+S4jSA+IG5vOwor5Li6ID4gZG87CivkuYsgPiAnJ3M7CivlvoMgPiBnbzsKK+W+gCA+IGdvOwor5LqOID4gaW47CivooYwgPiBnbzsKK+WmgiA+IGlmOwor5byEID4gZG87CivmiJYgPiBvcjsKK+WugyA+IGl0Owor6IulID4gaWY7CivniLIgPiBkbzsKK+WSsSA+IHVzOwor54K6ID4gZG87CivpgIIgPiBnbzsKK+WAmCA+IGlmOwor5pa8ID4gaW47Civlk58gPiBhaDsKK+WXqCA+IGhpOwor5b2dID4geWk7CivlgqUgPiBpZjsKK+mUsSA+IG96Owor5b6CID4gZ287CivpkpQgPiBtZDsKK+S8siA+IHdlOwor6ZWkID4gcGE7CivplY4gPiBucDsKK+mTuSA+IGxyOwor5aSCID4gZ287CivplL8gPiBlczsKK+mUnSA+IHRjOwor6ZSYID4gbm87CivplJUgPiBhYzsKK+mUiiA+IG96Owor6Y6dID4gdGM7CivpjLwgPiBucDsKK+mMmSA+IG96Owor6YudID4gb3o7Civov6wgPiBnbzsKK+e5hCA+IGJlOwor57OOID4gbW07CivnsqggPiBobTsKK+eyjSA+IG1tOwor57KBID4ga207CivnsbUgPiBkbTsKK+elgiA+IGhlOwor54mgID4gaXQ7CivmnIEgPiBpZjsKK+aUsiA+IHVwOwor5om1ID4gaW47CivlvZ4gPiB5aTsKK+W9nCA+IHlpOwor5b2bID4geWk7Civlu7QgPiBnbzsKK+WXiCA+IG9oOwor5ZayID4gYWg7CivllqQgPiBhaDsKK+WSgSA+IHNvOwor5YWhID4gaGc7CivlhZ4gPiBtZzsKK+WFnSA+IGRnOwor5YS7ID4gaWY7CivlgbogPiB1czsKK+S9oiA+IGhlOwor76iIID4gZ287CivvpbQgPiBpZjsKK++lpyA+IG5vOwor76WDID4gZG87CivkvZkgPiBpOwor5ZC+ID4gaTsKK+S6iCA+IGk7CivkvqwgPiBpOwor6bq/ID4gaTsKK+aotiA+IGM7CivlhIIgPiBpOwor44CCIDw+ICcuJzsKKzo6IGZ1bGx3aWR0aC1oYWxmd2lkdGggKCk7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9FRElDVC50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9FRElDVC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhjMDAyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0VESUNULnR4dApAQCAtMCwwICsxLDExNjAxNiBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBDb252ZXJ0IENKSyBjaGFyYWN0ZXJzCisjIE5vdGU6IGFkZHMgc3BhY2UgYmV0d2VlbiB0aGVtIGFuZCBsZXR0ZXJzLgorOjogKGhhbGZ3aWR0aC1mdWxsd2lkdGgpOworOjogKGthdGFrYW5hLWxhdGluKTsKKzo6IChoaXJhZ2FuYS1sYXRpbik7CisKKyR0ZXJtaW5hbFB1bmN0ID0gW1wuXCxcOlw7XD9cIe+8ju+8jO+8mu+8n++8geOAguOAge+8m1s6UGU6XVs6UGY6XV07CiskdGVybWluYWxQdW5jdCB7IH0gWzpMOl0gPiAnICc7CitbOkw6XSB7IH0gW1s6SGFuOl1bOlBzOl1bOlBpOl1dPiAnICc7CisKKyRrYXRhID0gW1vvvp7vvp/vvbDjg7xdWzprYXRha2FuYTpdXTsKKyRrYXRhIHsgfSBbWzpMOl0tJGthdGFdPiAnICc7CitbWzpMOl0tJGthdGFdIHsgfSAka2F0YSA+ICcgJzsKKworWzpoaXJhZ2FuYTpdIHsgfSBbWzpMOl0tWzpoaXJhZ2FuYTpdXSA+ICcgJzsKK1tbOkw6XS1bOmhpcmFnYW5hOl1dIHsgfSBbOmhpcmFnYW5hOl0+ICcgJzsKKworIyBTdGFydCBSQVcgZGF0YSBmb3IgY29udmVydGluZyBDSksgY2hhcmFjdGVycwor5rOV5a2m57O75aSn5a2m6Zmi5YWx6YCa5YWl5a2m6Kmm6aiTIDwgaG91Z2FrdWtlaWRhaWdha3Vpbmt5b3V0c3V1bnl1dWdha3VzaGlrZW5cIDsKK+exs+WbveWkp+WtpuWFpeWtpuWFsemAmuippumokyA8IGJlaWtva3VkYWlnYWt1bnl1dWdha3VreW91dHN1dXNoaWtlblwgOwor5pyd6a6u5rCR5Li75Li7576p5Lq65rCR5YWx5ZKM5Zu9IDwgY2hvdXNlbm1pbnNodXNodWdpamlubWlua3lvdXdha29rdVwgOwor6Ieq5YuV6LuK5pCN5a6z6LOg5YSf6LKs5Lu75L+d6Zm6IDwgamlkb3VzaGFzb25nYWliYWlzaG91c2VraW5pbmhva2VuXCA7Civoh6jlhbXpl5jogIXnmobpmaPoo4LlnKjliY0gPCByaW5weW91dG91c2hha2FpamlucmV0c3V6YWl6ZW5cIDsKK+aXpeacrOWKtOWDjee1hOWQiOe3j+ipleitsOS8miA8IG5paG9ucm91ZG91a3VtaWFpc291aHlvdWdpa2FpXCA7CivlpKrlubPmtIvmqZ/morDnv7voqLPljZTkvJogPCB0YWloZWl5b3VraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+WLpOWKtOiAheiyoeeUo+W9ouaIkOS/g+mAsiA8IGtpbnJvdXNoYXphaXNhbmtlaXNlaXNva3VzaGluXCA7CivotoXotoXlpKfopo/mqKHpm4bnqY3lm57ot68gPCBjaG91Y2hvdWRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivntYzmuIjljZTlipvplovnmbrmqZ/mp4sgPCBrZWl6YWlreW91cnlva3VrYWloYXRzdWtpa291XCA7CivljJfmtbfpgZPplovnmbrluoHplbflrpggPCBob2trYWlkb3VrYWloYXRzdWNob3VjaG91a2FuXCA7Civmi5jmnZ/lkI3nsL/lvI/mr5Tkvovku6PooajliLYgPCBrb3Vzb2t1bWVpYm9oaXJlaWRhaWh5b3VzZWlcIDsKK+efpeitmOmbhue0hOWei+eUo+alrSA8IGNoaXNoaWtpc2h1dXlha3VnYXRhc2FuZ3lvdVwgOwor5aSW5Zu95Lq655m76Yyy6Ki85piO5pu4IDwgZ2Fpa29rdWppbnRvdXJva3VzaG91bWVpc2hvXCA7CivlpKrlubPmtIvlronlhajkv53pmpzmnaHntIQgPCB0YWloZWl5b3Vhbnplbmhvc2hvdWpvdXlha3VcIDsKK+aTjee4puW4remfs+WjsOiomOmMsuijhee9riA8IHNvdWp1dXNla2lvbnNlaWtpcm9rdXNvdWNoaVwgOwor5oim55Wl5YW15Zmo5YmK5rib5p2h57SEIDwgc2Vucnlha3VoZWlraXNha3VnZW5qb3V5YWt1XCA7CivoiKrnqbrlroflrpnmioDooZPnoJTnqbbmiYAgPCBrb3VrdXV1Y2h1dWdpanV0c3VrZW5reXV1am9cIDsKK+Wbvemam+apn+aisOe/u+ios+WNlOS8miA8IGtva3VzYWlraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+iHquW+i+elnue1jOWkseiqv+eXhyA8IGppcml0c3VzaGlua2Vpc2hpdGNob3VzaG91XCA7Civlm73pmpvpm7vmsJfpgJrkv6HpgKPlkIggPCBrb2t1c2FpZGVua2l0c3V1c2hpbnJlbmdvdVwgOwor5rKW57iE6ZaL55m65bqB6ZW35a6YIDwgb2tpbmF3YWthaWhhdHN1Y2hvdWNob3VrYW5cIDsKK+a1t+Wklue1jOa4iOWNlOWKm+WfuumHkSA8IGthaWdhaWtlaXphaWt5b3VyeW9rdWtpa2luXCA7Civml6XnsbPlronlhajkv53pmpzmnaHntIQgPCBuaWNoaWJlaWFuemVuaG9zaG91am91eWFrdVwgOwor5rWu5YuV5bCP5pWw54K55ryU566X5qmf5qeLIDwgZnVkb3VzaG91c3V1dGVuJydlbnphbmtpa291XCA7Civnj77ph5Hoh6rli5XpoJDph5HmlK/miZXmqZ8gPCBnZW5raW5qaWRvdXlva2luc2hpaGFyYWlraVwgOwor5byB6Ki85rOV55qE5ZSv54mp6KuWIDwgYmVuc2hvdWhvdXRla2l5dWlidXRzdXJvblwgOwor5oim5rKh6ICF6L+95oK86KiY5b+15pelIDwgc2VuYm90c3VzaGF0c3VpdG91a2luZW5iaVwgOwor5Zu96Zqb5Y2U5Yqb5LqL5qWt5ZujIDwga29rdXNhaWt5b3VyeW9rdWppZ3lvdWRhblwgOwor5oim6KGT6Iiq56m657Wx5Yi25pys6YOoIDwgc2VuanV0c3Vrb3VrdXV0b3VzZWlob25idVwgOwor5bel5qWt6auY562J5bCC6ZaA5a2m5qChIDwga291Z3lvdWtvdXRvdXNlbm1vbmdha2tvdVwgOwor5YyX5aSn6KW/5rSL5p2h57SE5qmf5qeLIDwga2l0YXRhaXNlaXlvdWpvdXlha3VraWtvdVwgOwor6LaF5aSn6KaP5qih6ZuG56mN5Zue6LevIDwgY2hvdWRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivlrpfmlZnnmoTni6znq4vmgKcgPCBzaHV1a3lvdXRla2lkb2t1cml0c3VzZWlcIDsKK+WMluWtpuWFteWZqOemgeatouadoee0hCA8IGthZ2FrdWhlaWtpa2luc2hpam91eWFrdVwgOwor6Zai56iO6LK/5piT5LiA6Iis5Y2U5a6aIDwga2FuemVpYm91ZWtpaXBwYW5reW91dGVpXCA7CivkuLvovp7pp4bli5Xlj6Xmp4vpgKDmlofms5UgPCBzaHVqaWt1ZG91a3Vrb3V6b3VidW5wb3VcIDsKK+ebtOaOpeeFp+a6luWwhOaSgyA8IGNob2t1c2V0c3VzaG91anVuc2hhZ2VraVwgOwor57eP5ZCI55qE5ZOB6LOq566h55CGIDwgc291Z291dGVraWhpbnNoaXRzdWthbnJpXCA7CivnlpHkvLznm7TmjqXnm67nmoToqp4gPCBnaWppY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+WcqOeVmeacn+mWk+abtOaWsOioseWPryA8IHphaXJ5dXVraWthbmtvdXNoaW5reW9rYVwgOwor54m55q6K5Y+W5omx6YO15L6/IDwgdG9rdXNodXRvcmlhdHN1a2FpeXV1YmluXCA7Civkub7mub/nkIPmub/luqboqIggPCBrYW5zaGl0c3VreXV1c2hpdHN1ZG9rZWlcIDsKK+S4h+WbveiRl+S9nOaoqeadoee0hCA8IGJhbmtva3VjaG9zYWt1a2Vuam91eWFrdVwgOwor5LiH5Zu95Zu96Zqb6Z+z5qiZ5paH5a2XIDwgYmFua29rdWtva3VzYWlvbnB5b3Vtb2ppXCA7CivoqIDoqp7lrabnmoTlrp/lnKjoq5YgPCBnZW5nb2dha3V0ZWtpaml0c3V6YWlyb25cIDsKK+WGoOeKtuWLleiEiOihgOagk+eXhyA8IGthbmpvdWRvdW15YWt1a2Vzc2Vuc2hvdVwgOwor56eR5a2m5oqA6KGT5bqB6ZW35a6YIDwga2FnYWt1Z2lqdXRzdWNob3VjaG91a2FuXCA7CivmtbfmtIvmipXmo4Topo/liLbmnaHntIQgPCBrYWl5b3V0b3VraWtpc2Vpam91eWFrdVwgOwor5Zyn5a+G6ZmN5LyP5b+c5YqbIDwgYXRzdW1pdHN1a291ZnVrdW91cnlva3VcIDsKK+WFrOiqjeWNuOWjsualreiAhSA8IGtvdW5pbicnb3Jvc2hpdXJpZ3lvdXNoYVwgOwor6LWk6KGA55CD5rKI6ZmN6YCf5bqmIDwgc2Vra2Vra3l1dWNoaW5rb3Vzb2t1ZG9cIDsKK+efs+ayuei8uOWHuuWbveapn+aniyA8IHNla2l5dXl1c2h1dHN1a29rdWtpa291XCA7CivlhazlhbHogbfmpa3lronlrprmiYAgPCBrb3VreW91c2hva3VneW91YW50ZWlqb1wgOwor5oim6KGT6Iiq56m657Wx5Yi254+tIDwgc2VuanV0c3Vrb3VrdXV0b3VzZWloYW5cIDsKK+mHjueUn+WLleeJqeS/neitt+Wbo+S9kyA8IHlhc2VpZG91YnV0c3Vob2dvZGFudGFpXCA7Civoh6rli5XliJfou4rliLblvqHoo4Xnva4gPCBqaWRvdXJlc3NoYXNlaWd5b3NvdWNoaVwgOwor6Ieq5YuV6YeR6Yqt5Ye65YWl5qmfIDwgamlkb3VraW5zZW5zaHV0c3VueXV1a2lcIDsKK+WkqeeEtuizh+a6kOS/neitt+irluiAhSA8IHRlbicnbmVuc2hpZ2VuaG9nb3JvbnNoYVwgOwor5Zyw6ZyH6Zu354Gr5LqL6Kaq54i2IDwgamlzaGlua2FtaW5hcmlrYWppb3lhamlcIDsKK+mdnuW4uOS6i+aFi+WvvuWHpuioiOeUuyA8IGhpam91aml0YWl0YWlzaG9rZWlrYWt1XCA7CivmoLjliIboo4LnlJ/miJDniakgPCBrYWt1YnVucmV0c3VzZWlzZWlidXRzdVwgOwor5aSa6IKi6YG45oqe5byP6Kmm5ZWPIDwgdGFzaGlzZW50YWt1c2hpa2lzaGltb25cIDsKK+aWsOmWouilv+Wbvemam+epuua4ryA8IHNoaW5rYW5zYWlrb2t1c2Fpa3V1a291XCA7Civogbfmpa3liKXpm7voqbHluLMgPCBzaG9rdWd5b3ViZXRzdWRlbndhY2hvdVwgOwor6Ieq5YuV5YiX6LuK5YGc5q2i6KOF572uIDwgamlkb3VyZXNzaGF0ZWlzaGlzb3VjaGlcIDsKK+iogOiqnuWtpueahOims+W/teirliA8IGdlbmdvZ2FrdXRla2lrYW4nJ25lbnJvblwgOwor5b6M55m655m65bGV6YCU5LiK5Zu9IDwga291aGF0c3VoYXR0ZW50b2pvdWtva3VcIDsKK+aKuea2iOeZu+mMsuiovOaYjuabuCA8IG1hc2hvdXRvdXJva3VzaG91bWVpc2hvXCA7CivntYzmuIjkvIHnlLvluoHplbflrpggPCBrZWl6YWlraWtha3VjaG91Y2hvdWthblwgOwor5YaN55Sf5LiN6Imv5oCn6LKn6KGAIDwgc2Fpc2VpZnVyeW91c2VpaGlua2V0c3VcIDsKK+eBq+WKm+aUr+aPtOiqv+aVtOe3miA8IGthcnlva3VzaGllbmNob3VzZWlzZW5cIDsKK+WFpeWtpuWFsemAmuippumokyA8IG55dXVnYWt1a3lvdXRzdXVzaGlrZW5cIDsKK+egtOWjiua0u+WLlemYsuatouazlSA8IGhha2Fpa2F0c3Vkb3Vib3VzaGlob3VcIDsKK+WupOWGheeuoeW8pualveWboyA8IHNoaXRzdW5haWthbmdlbmdha3VkYW5cIDsKK+adseS6rOagquW8j+W4guWgtCA8IHRvdWt5b3VrYWJ1c2hpa2lzaGlqb3VcIDsKK+eiuueOh+WvhuW6pumWouaVsCA8IGtha3VyaXRzdW1pdHN1ZG9rYW5zdXVcIDsKK+WOn+WtkOWKm+eZuumbu+aJgCA8IGdlbnNoaXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+S7o+ihqOWPlue3oOW9uSA8IGRhaWh5b3V0b3Jpc2hpbWFyaXlha3VcIDsKK+WPluaJseiqrOaYjuabuCA8IHRvcmlhdHN1a2Fpc2V0c3VtZWlzaG9cIDsKK+i1pOWNgeWtl+Wbvemam+WnlOWToeS8miA8IHNla2lqdXVqaWtva3VzYWlpaW5rYWlcIDsKK+WLp+WWhOaHsuaCquWwj+iqrCA8IGthbnplbmNob3Vha3VzaG91c2V0c3VcIDsKK+Wbvemam+i/lOS/oeWIh+aJi+WIuCA8IGtva3VzYWloZW5zaGlua2l0dGVrZW5cIDsKK+irh+ipseihqOekuuani+mAoOeQhuirliA8IGRhbndhaHlvdWppa291em91cmlyb25cIDsKK+WFseeUo+WFmuS4reWkruWnlOWToeS8miA8IGt5b3VzYW50b3VjaHV1b3VpaW5rYWlcIDsKK+adreWRqOmdouaRqeaTpuWKmyA8IGt1aXNodXVtZW5tYXNhdHN1cnlva3VcIDsKK+S4reiPr+S6uuawkeWFseWSjOWbvSA8IGNodXVrYWppbm1pbmt5b3V3YWtva3VcIDsKK+adsea1t+mBk+S6lOWNgeS4ieasoSA8IHRvdWthaWRvdWdvanV1c2FudHN1Z2lcIDsKK+Wuh+WumemWi+eZuuS6i+alreWboyA8IHVjaHV1a2FpaGF0c3VqaWd5b3VkYW5cIDsKK+awkeS4u+WFmuWFqOWbveWnlOWToeS8miA8IG1pbnNodXRvdXplbmtva3VpaW5rYWlcIDsKK+iLseiqnuWfuuekjuiDveWKm+ippumokyA8IGVpZ29raXNvbm91cnlva3VzaGlrZW5cIDsKK+mWk+aOpeeFp+a6luWwhOaSgyA8IGthbnNldHN1c2hvdWp1bnNoYWdla2lcIDsKK+S4iei7uOWcp+e4ruippumok+apnyA8IHNhbmppa3Vhc3NodWt1c2hpa2Vua2lcIDsKK+imluiBtOiAheWPguWKoOeVque1hCA8IHNoaWNob3VzaGFzYW5rYWJhbmd1bWlcIDsKK+W3numam+mAmuWVhuWnlOWToeS8miA8IHNodXVzYWl0c3V1c2hvdWlpbmthaVwgOwor5paw6KaP5qCq5byP5YWs6ZaLIDwgc2hpbmtpa2FidXNoaWtpa291a2FpXCA7Civlkajms6LmlbDlpInmj5voo4Xnva4gPCBzaHV1aGFzdXVoZW5rYW5zb3VjaGlcIDsKK+Wtpue/kuaMh+WwjuimgemgmCA8IGdha3VzaHV1c2hpZG91eW91cnlvdVwgOwor5oWi5oCn55ay5Yq055eH5YCZ576kIDwgbWFuc2VpaGlyb3VzaG91a291Z3VuXCA7CivlhazlrrPlr77nrZbln7rmnKzms5UgPCBrb3VnYWl0YWlzYWt1a2lob25ob3VcIDsKK+aXqeeZuuaAp+eXtOWRhueXhyA8IHNvdWhhdHN1c2VpY2hpaG91c2hvdVwgOwor57WM5riI5Zuj5L2T6YCj5ZCI5LyaIDwga2VpemFpZGFudGFpcmVuZ291a2FpXCA7CivmiKbpl5jpm7vlrZDmiKbmg4XloLEgPCBzZW50b3VkZW5zaGlzZW5qb3Vob3VcIDsKK+S/oeeUqOWNlOWQjOe1hOWQiCA8IHNoaW4nJ3lvdWt5b3Vkb3VrdW1pYWlcIDsKK+ePvumHkeiHquWLleaUr+aJleapnyA8IGdlbmtpbmppZG91c2hpaGFyYWlraVwgOwor5bym5qW95Zub6YeN5aWP5puyIDwgZ2VuZ2FrdXNoaWp1dXNvdWt5b2t1XCA7CivmvJTnubnnmoToqqzmmI7ms5UgPCBlbicnZWtpdGVraXNldHN1bWVpaG91XCA7CivmnIDpq5jntYzllrbosqzku7vogIUgPCBzYWlrb3VrZWllaXNla2luaW5zaGFcIDsKK+a3seWcqOaAp+ecn+iPjOeXhyA8IHNoaW56YWlzZWlzaGlua2luc2hvdVwgOwor6KOF55Sy5Lq65ZOh6YGL5pCs6LuKIDwgc291a291amluJydpbicndW5wYW5zaGFcIDsKK+S4gOiIrOWRveS7pOa8lOeul+apn+aniyA8IGlwcGFubWVpcmVpZW56YW5raWtvdVwgOwor57Wx546H5p2f57ib55CG6KuWIDwgdG91c290c3Vzb2t1YmFrdXJpcm9uXCA7CivmnKzmhYvmgKfpq5jooYDlnKcgPCBob250YWlzZWlrb3VrZXRzdWF0c3VcIDsKK+aXpeacrOiqnuiDveWKm+ippumokyA8IG5paG9uZ29ub3VyeW9rdXNoaWtlblwgOwor6Zm45LiK56uv5bGA6KOF572uIDwgcmlrdWpvdXRhbmt5b2t1c291Y2hpXCA7Civpn7Pnr4DkuLvpn7PnmoTlrZDpn7MgPCBvbnNldHN1c2h1b250ZWtpc2hpaW5cIDsKK+aXpeexs+iyv+aYk+aRqeaTpiA8IG5pY2hpYmVpYm91ZWtpbWFzYXRzdVwgOwor6Ki85Yi45Y+W5byV5aeU5ZOh5LyaIDwgc2hvdWtlbnRvcmloaWtpaWlua2FpXCA7CivpgJrllYbnlKPmpa3lpKfoh6MgPCB0c3V1c2hvdXNhbmd5b3VkYWlqaW5cIDsKK+acgOmrmOiyoeWLmeiyrOS7u+iAhSA8IHNhaWtvdXphaW11c2VraW5pbnNoYVwgOwor55+t6Led6Zui6Zui552A6Zm45qmfIDwgdGFua3lvcmlyaWNoYWt1cmlrdWtpXCA7CivpgJrllYboiKrmtbfmnaHntIQgPCB0c3V1c2hvdWtvdWthaWpvdXlha3VcIDsKK+apn+iDveWNmOS4gOWMluaWh+azlSA8IGtpbm91dGFuJydpdHN1a2FidW5wb3VcIDsKK+efpeiDveaDheWgseeglOeptumDqCA8IGNoaW5vdWpvdWhvdWtlbmt5dXVidVwgOwor5Yqg5Zyn5rC05Z6L5Y6f5a2Q54KJIDwga2FhdHN1c3VpZ2F0YWdlbnNoaXJvXCA7CivnkrDlpKrlubPmtIvlnLDpnIfluK8gPCBrYW50YWloZWl5b3VqaXNoaW50YWlcIDsKK+i7n+WIpOWumuitmOWIpeWZqCA8IG5hbmhhbnRlaXNoaWtpYmV0c3VraVwgOwor5Zu956uL5Y2a54mp6aSoIDwga29rdXJpdHN1aGFrdWJ1dHN1a2FuXCA7Civnqbrmg7Pnp5HlrablsI/oqqwgPCBrdXVzb3VrYWdha3VzaG91c2V0c3VcIDsKK+S6uueoruW3ruWIpeS4u+e+qeiAhSA8IGppbnNodXNhYmV0c3VzaHVnaXNoYVwgOwor5paw5YWl56S+5ZOh5pWZ6IKyIDwgc2hpbicnbnl1dXNoYWlua3lvdWlrdVwgOwor5o6o5aWo5paH54yu55uu6YyyIDwgc3Vpc2hvdWJ1bmtlbm1va3Vyb2t1XCA7Civpm4bkuK3msrvnmYLlrqQgPCBzaHV1Y2h1dWNoaXJ5b3VzaGl0c3VcIDsKK+W+s+W3neS4ieS7o+WutuWFiSA8IHRva3VnYXdhc2FuZGFpaWVtaXRzdVwgOwor6Ieq54S255Kw5aKD5L+d5YWo5rOVIDwgc2hpemVua2Fua3lvdWhvemVuaG91XCA7CivnlJ/mtLvljZTlkIzntYTlkIggPCBzZWlrYXRzdWt5b3Vkb3VrdW1pYWlcIDsKK+eSsOWkquW5s+a0i+mAoOWxseW4ryA8IGthbnRhaWhlaXlvdXpvdXphbnRhaVwgOwor6KGM5YuV5Li7576p5b+D55CG5a2mIDwga291ZG91c2h1Z2lzaGlucmlnYWt1XCA7Civmlpnph5HliKXntI3pg7Xkvr8gPCByeW91a2luYmV0c3Vub3V5dXViaW5cIDsKK+S4rei3nembouaguOaIpuWKmyA8IGNodXVreW9yaWtha3VzZW5yeW9rdVwgOwor56ys5LiA5qyh5LiW55WM5aSn5oimIDwgZGFpaWNoaWppc2VrYWl0YWlzZW5cIDsKK+i+sualreWNlOWQjOe1hOWQiCA8IG5vdWd5b3VreW91ZG91a3VtaWFpXCA7CivlpKfpmbjmqKrmlq3piYTpgZMgPCB0YWlyaWt1b3VkYW50ZXRzdWRvdVwgOwor55u06L2E5qSN5rCR5ZywIDwgY2hva2thdHN1c2hva3VtaW5jaGlcIDsKK+WkieWLleeCuuabv+ebuOWgtOWItiA8IGhlbmRvdWthd2FzZXNvdWJhc2VpXCA7CivmnKjpgKDlu7rnr4nniakgPCBtb2t1em91a2VuY2hpa3VidXRzdVwgOwor6auY5YiG5a2Q5ZC45Y+O5L2TIDwga291YnVuc2hpa3l1dXNodXV0YWlcIDsKK+atr+WGheeZguazleWwgumWgOWMuyA8IHNoaWthcnlvdWhvdXNlbm1vbicnaVwgOwor5pel57Gz5qeL6YCg5Y2U6K2wIDwgbmljaGliZWlrb3V6b3VreW91Z2lcIDsKK+apn+aisOe/u+ios+WNlOS8miA8IGtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5qSN54mp5oCn6JuL55m9IDwgc2hva3VidXRzdXNlaXRhbnBha3VcIDsKK+S/oeeUqOWPluW8leWFiCA8IHNoaW4nJ3lvdXRvcmloaWtpc2FraVwgOwor5Lit5aSu6KGM5pS/5a6Y5bqBIDwgY2h1dW91Z3lvdXNlaWthbmNob3VcIDsKK+WMl+Wkp+ilv+a0i+adoee0hCA8IGtpdGF0YWlzZWl5b3Vqb3V5YWt1XCA7CivluLjli5nlj5bnt6DlvbkgPCBqb3VtdXRvcmlzaGltYXJpeWFrdVwgOwor55Kw5aSq5bmz5rSL54Gr5bGx5bivIDwga2FudGFpaGVpeW91a2F6YW50YWlcIDsKK+mbu+awl+mAmuS/oeWkp+WtpiA8IGRlbmtpdHN1dXNoaW5kYWlnYWt1XCA7CivoirPpppnml4/ljJblkIjniakgPCBob3Vrb3V6b2t1a2Fnb3VidXRzdVwgOwor5LiD5pif5aSp6YGT6JmrIDwgbmFuYWhvc2hpdGVudG91bXVzaGlcIDsKK+WGhemWo+WumOaIv+mVt+WumCA8IG5haWtha3VrYW5ib3VjaG91a2FuXCA7Civlrp/mg4Xoqr/mn7vlp5Tlk6HkvJogPCBqaXRzdWpvdWNob3VzYWlpbmthaVwgOwor5bym5qW95LqU6YeN5aWP5puyIDwgZ2VuZ2FrdWdvanV1c291a3lva3VcIDsKK+awkeaXj+Wkp+iZkOauuiA8IG1pbnpva3VkYWlneWFrdXNhdHN1XCA7Civnp5Hlrabln7rnpI7noJTnqbbmiYAgPCBrYWdha3VraXNva2Vua3l1dXNob1wgOwor6LaK5bm055Sf5qSN54mpIDwgZXRzdW5lbnNlaXNob2t1YnV0c3VcIDsKK+WkieW9oueUn+aIkOe1seiqnuirliA8IGhlbmtlaXNlaXNlaXRvdWdvcm9uXCA7Civmp4vmiJDntKDntbHlvqEgPCBrb3VzZWlzb2tvdXpvdXRvdWd5b1wgOwor5a6H5a6Z6ZaL55m66KiI55S7IDwgdWNodXVrYWloYXRzdWtlaWtha3VcIDsKK+exs+mAo+mCpuiIquepuuWxgCA8IGJlaXJlbnBvdWt1dWtvdWt5b2t1XCA7CivlpKfopo/mqKHpm4bnqY3lm57ot68gPCBkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor5Y2X54Sh5aaZ5rOV6JOu6I+v57WMIDwgbmFtdW15b3Vob3VyZW5nZWt5b3VcIDsKK+WkluWbveS6uueZu+mMsuazlSA8IGdhaWtva3VqaW50b3Vyb2t1aG91XCA7CivlhbHnlKPlhZrmlL/msrvlsYAgPCBreW91c2FudG91c2VpamlreW9rdVwgOwor5pyq56K66KqN6aOb6KGM54mp5L2TIDwgbWlrYWt1bmluaGlrb3VidXR0YWlcIDsKK+S4gOmFuOWMlueCree0oOS4reavkiA8IGlzc2Fua2F0YW5zb2NodXVkb2t1XCA7CivmnZ/nuJvntpnmib/ljp/nkIYgPCBzb2t1YmFrdWtlaXNob3VnZW5yaVwgOwor55u05o6l55uu55qE6KqeIDwgY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+WwguWLmeWPlue3oOW9uSA8IHNlbm11dG9yaXNoaW1hcml5YWt1XCA7CivkuIDlubTnlJ/mpI3niakgPCBpY2hpbmVuc2Vpc2hva3VidXRzdVwgOwor6bq76Jas5Y+W57eg54+tIDwgbWF5YWt1dG9yaXNoaW1hcmloYW5cIDsKK+S4iei7uOWcp+e4ruippumokyA8IHNhbmppa3Vhc3NodWt1c2hpa2VuXCA7Civpurvolqzlj5bnt6Dms5UgPCBtYXlha3V0b3Jpc2hpbWFyaWhvdVwgOwor56m66LuN6YCj57Wh5bCG5qChIDwga3V1Z3VucmVucmFrdXNob3Vrb3VcIDsKK+WNuOWjsueJqeS+oeaMh+aVsCA8IG9yb3NoaXVyaWJ1a2thc2hpc3V1XCA7CivlhpnnnJ/liKTlrprmsbrli50gPCBzaGFzaGluaGFudGVpa2Vzc2hvdVwgOwor5YmN56uL6IW66IKl5aSn55eHIDwgemVucml0c3VzZW5oaWRhaXNob3VcIDsKK+WFrOato+WPluW8leWnlOWToeS8miA8IGtvdXNlaXRvcmloaWtpaWlua2FpXCA7CivoqqzmmI7nmoTlpqXlvZPmgKcgPCBzZXRzdW1laXRla2lkYXRvdXNlaVwgOwor5Lit5b+D55qE5b255YmyIDwgY2h1dXNoaW50ZWtpeWFrdXdhcmlcIDsKK+eojuW8leWJjeW9k+acn+WIqeebiiA8IHplaWJpa2ltYWV0b3VraXJpZWtpXCA7CivpgKPpgqblj5blvJXlp5Tlk6HkvJogPCByZW5wb3V0b3JpaGlraWlpbmthaVwgOwor5YWx6YCa5LiA5qyh6Kmm6aiTIDwga3lvdXRzdXVpY2hpamlzaGlrZW5cIDsKK+esrOS4ieeorumDteS+v+eJqSA8IGRhaXNhbnNodXl1dWJpbmJ1dHN1XCA7Civlj4vlpb3pgJrllYboiKrmtbcgPCB5dXVrb3V0c3V1c2hvdWtvdWthaVwgOwor54Sh5ouF5L+d6LK45LuY6YeRIDwgbXV0YW5wb2thc2hpdHN1a2VraW5cIDsKK+a1geihjOaAp+iAs+S4i+iFuueCjiA8IHJ5dXVrb3VzZWlqaWthc2VuJydlblwgOwor5b+F6KaB5Y2B5YiG5p2h5Lu2IDwgaGl0c3V5b3VqdXVidW5qb3VrZW5cIDsKK+eyvuelnueahOaMh+WwjuiAhSA8IHNlaXNoaW50ZWtpc2hpZG91c2hhXCA7Civljp/lrZDniannkIblrabogIUgPCBnZW5zaGlidXRzdXJpZ2FrdXNoYVwgOwor57K+5a+G5qmf5qKw5bel5qWtIDwgc2VpbWl0c3VraWthaWtvdWd5b3VcIDsKK+WGjeWFpeWbveioseWPr+abuCA8IHNhaW55dXVrb2t1a3lvdWthc2hvXCA7CivlrprlvaLlpJbpg7Xkvr/niakgPCB0ZWlrZWlnYWl5dXViaW5idXRzdVwgOwor6LaF5Lim5YiX6KiI566X5qmfIDwgY2hvdWhlaXJldHN1a2Vpc2Fua2lcIDsKK+S4reaeouelnue1jOezu+e1sSA8IGNodXVzdXVzaGlua2Vpa2VpdG91XCA7CivkvJ3pgIHliLblvqHmi6HlvLUgPCBkZW5zb3VzZWlneW9rYWt1Y2hvdVwgOwor5Y+O57iu5pyf6KGA5ZynIDwgc2h1dXNodWt1a2lrZXRzdWF0c3VcIDsKK+aXpeS4reWPi+WlveWNlOS8miA8IG5pdGNodXV5dXVrb3VreW91a2FpXCA7Civnt4/nkIblupznt4/li5nplbflrpggPCBzb3VyaWZ1c291bXVjaG91a2FuXCA7Civlm73msJHph5Hono3lhazluqsgPCBrb2t1bWlua2luJyd5dXVrb3Vrb1wgOwor5Y2Y5a2Q6JGJ5qSN54mpIDwgdGFuc2hpeW91c2hva3VidXRzdVwgOwor5Y+j6L665Y2Y57SU55ax55a5IDwga291aGVudGFuanVuaG91c2hpblwgOwor6YCj56uL5pa556iL5byPIDwgcmVucml0c3Vob3V0ZWlzaGlraVwgOwor6ZuG5Zuj5a6J5YWo5L+d6ZqcIDwgc2h1dWRhbicnYW56ZW5ob3Nob3VcIDsKK+WQjeelnumrmOmAn+mBk+i3ryA8IG1laXNoaW5rb3Vzb2t1ZG91cm9cIDsKK+aUvuWwhOaAp+mZjeS4i+eJqSA8IGhvdXNoYXNlaWtvdWthYnV0c3VcIDsKK+eSsOWig+S/neitt+S4u+e+qeiAhSA8IGthbmt5b3Vob2dvc2h1Z2lzaGFcIDsKK+WKo+aAp+mBuuS8neW9ouizqiA8IHJlc3NlaWlkZW5rZWlzaGl0c3VcIDsKK+aXpeacrOmZuOS4iuiHquihm+maiiA8IG5paG9ucmlrdWpvdWppZWl0YWlcIDsKK+mAmuWVhueUo+alreecgSA8IHRzdXVzaG91c2FuZ3lvdXNob3VcIDsKK+WIneacn+mBuOaKnumgheebriA8IHNob2tpc2VudGFrdWtvdW1va3VcIDsKK+WFqOWbvea0pea0pea1pua1piA8IHplbmtva3V0c3V0c3V1cmF1cmFcIDsKK+S/oeS7u+e1seayu+WItuW6piA8IHNoaW4nJ25pbnRvdWNoaXNlaWRvXCA7CivkuLvopoHpg6jntYLnq6/lnosgPCBzaHV5b3VidXNodXV0YW5nYXRhXCA7CivlkIjmiJDljJblrablt6Xmpa0gPCBnb3VzZWlrYWdha3Vrb3VneW91XCA7Civljp/lrZDlipvnmbrpm7sgPCBnZW5zaGlyeW9rdWhhdHN1ZGVuXCA7Civlm73msJHkvZPogrLlpKfkvJogPCBrb2t1bWludGFpaWt1dGFpa2FpXCA7Civlm73pmpvpm7vkv6Hpm7voqbEgPCBrb2t1c2FpZGVuc2hpbmRlbndhXCA7Civpm7vlrZDos4fph5HmjK/mm78gPCBkZW5zaGlzaGlraW5mdXJpa2FlXCA7Civnm7TmjqXmsJHkuLvliLYgPCBjaG9rdXNldHN1bWluc2h1c2VpXCA7CivpgLLlh7rliLbpmZDnt5ogPCBzaGluc2h1dHN1c2VpZ2Vuc2VuXCA7CivmoKrlvI/lj5blvJXmiYAgPCBrYWJ1c2hpa2l0b3JpaGlraWpvXCA7CivlvKbmpb3lm5vph43lpY/lm6MgPCBnZW5nYWt1c2hpanV1c291ZGFuXCA7CivoiKrnqbrkuqTpgJrnrqHliLYgPCBrb3VrdXVrb3V0c3V1a2Fuc2VpXCA7CivosqHmlL/lnYfooaHoqIjnlLsgPCB6YWlzZWlraW5rb3VrZWlrYWt1XCA7Civnm7TmjqXmlZnmjojms5UgPCBjaG9rdXNldHN1a3lvdWp1aG91XCA7Civml6XmnKzopo/moLzljZTkvJogPCBuaXBwb25raWtha3VreW91a2FpXCA7Civli5XnianmhJvorbfljZTkvJogPCBkb3VidXRzdWFpZ29reW91a2FpXCA7Civlj4zlrZDokYnmpI3niakgPCBzb3VzaGl5b3VzaG9rdWJ1dHN1XCA7CivnsbPoiKrnqbrlroflrpnlsYAgPCBiZWlrb3VrdXV1Y2h1dWt5b2t1XCA7Civml6XmnKzlrabooZPkvJrorbAgPCBuaWhvbmdha3VqdXRzdWthaWdpXCA7CivoiqXlt53pvo3kuYvku4sgPCBha3V0YWdhd2FyeXV1bm9zdWtlXCA7CivosrjlgJ/lr77nhafooaggPCB0YWlzaGFrdXRhaXNob3VoeW91XCA7CivlhazlrprlibLlvJXnjocgPCBrb3V0ZWl3YXJpYmlraXJpdHN1XCA7CivkurrplpPnkrDlooPlrqPoqIAgPCBuaW5nZW5rYW5reW91c2VuZ2VuXCA7CivlvLfov6vnpZ7ntYznl4cgPCBreW91aGFrdXNoaW5rZWlzaG91XCA7CivlrrblroXmjZzntKLku6TnirYgPCBrYXRha3Vzb3VzYWt1cmVpam91XCA7CivllYbmpa3kv6HnlKjnirYgPCBzaG91Z3lvdXNoaW4nJ3lvdWpvdVwgOwor5a6J5Zyf5qGD5bGx5pmC5LujIDwgYXp1Y2hpbW9tb3lhbWFqaWRhaVwgOwor55Sf55CG55qE6aOf5aGp5rC0IDwgc2Vpcml0ZWtpc2hva3VlbnN1aVwgOwor55Kw5aSq5bmz5rSL6Ku45Zu9IDwga2FudGFpaGVpeW91c2hva29rdVwgOwor54Gr5Yqb5pSv5o+06KiI55S7IDwga2FyeW9rdXNoaWVua2Vpa2FrdVwgOwor6Ly45Ye65L+h55So54q2IDwgeXVzaHV0c3VzaGluJyd5b3Vqb3VcIDsKK+mHkeWcsOmHkeacrOS9jeWItuW6piA8IGtpbmppZ2FuZWhvbicnaXNlaWRvXCA7CivokZfkvZzmqKnmiYDmnInogIUgPCBjaG9zYWt1a2Vuc2hveXV1c2hhXCA7CivmlbDlrabnmoTluLDntI3ms5UgPCBzdXVnYWt1dGVraWtpbm91aG91XCA7Civml6fmlrDntITlhajmm7ggPCBreXV1c2hpbicneWFrdXplbnNob1wgOwor5pel5pys5Zu954m56Kix5bqBIDwgbmlob25rb2t1dG9ra3lvY2hvdVwgOwor5Ye65YWl5Zu9566h55CGIDwgc2h1dHN1bnl1dWtva3VrYW5yaVwgOwor6aOf57On566h55CG5Yi25bqmIDwgc2hva3VyeW91a2FucmlzZWlkb1wgOwor55Sf54mp5YyW5a2m5YW15ZmoIDwgc2VpYnV0c3VrYWdha3VoZWlraVwgOwor6Zqc5a6z54mp56u26LWwIDwgc2hvdWdhaWJ1dHN1a3lvdXNvdVwgOwor5pi85YWJ6Imy6Zu755CDIDwgY2h1dWtvdXNob2t1ZGVua3l1dVwgOwor6ZW35pel5qSN54mpIDwgY2hvdWppdHN1c2hva3VidXRzdVwgOwor5aWz5qip5ouh5by16KuW6ICFIDwgam9rZW5rYWt1Y2hvdXJvbnNoYVwgOwor6YeN6KaB54Sh5b2i5paH5YyW6LKhIDwganV1eW91bXVrZWlidW5rYXphaVwgOwor57WM5riI56S+5Lya55CG5LqL5LyaIDwga2VpemFpc2hha2FpcmlqaWthaVwgOwor57Wx5ZCI5bmV5YOa5Lya6K2wIDwgdG91Z291YmFrdXJ5b3VrYWlnaVwgOwor5b6L5Luk5qC85byPIDwgcml0c3VyeW91a3lha3VzaGlraVwgOwor5aSp54S26Imy5YaZ55yfIDwgdGVuJyduZW5zaG9rdXNoYXNoaW5cIDsKK+WwhOaSg+emgeatouWcsOWfnyA8IHNoYWdla2lraW5zaGljaGlpa2lcIDsKK+mjn+iCieakjeeJqSA8IHNob2t1bmlrdXNob2t1YnV0c3VcIDsKK+S4u+iqnuWKqeWLleipnuWAkue9riA8IHNodWdvam9kb3VzaGl0b3VjaGlcIDsKK+eJueWRveWFqOaoqeWFrOS9vyA8IHRva3VtZWl6ZW5rZW5rb3VzaGlcIDsKK+awtOWKm+eZuumbu+aJgCA8IHN1aXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+e0oOWHuuWKm+adoeS7tiA8IHNvc2h1dHN1cnlva3Vqb3VrZW5cIDsKK+Wbveawkee3j+aUr+WHuiA8IGtva3VtaW5zb3VzaGlzaHV0c3VcIDsKK+akjeeJqeaAp+iEguiCqiA8IHNob2t1YnV0c3VzZWlzaGlib3VcIDsKK+aWsOiBnuWAq+eQhue2semgmCA8IHNoaW5idW5yaW5yaWtvdXJ5b3VcIDsKK+iomOi/sOeahOWmpeW9k+aApyA8IGtpanV0c3V0ZWtpZGF0b3VzZWlcIDsKK+aXp+aWsOe0hOiBluabuCA8IGt5dXVzaGluJyd5YWt1c2Vpc2hvXCA7CivkuIflm73pg7Xkvr/pgKPlkIggPCBiYW5rb2t1eXV1YmlucmVuZ291XCA7CivplbfmnJ/osrjku5jph5EgPCBjaG91a2lrYXNoaXRzdWtla2luXCA7Civnm7TmjqXmjqXntpogPCBjaG9rdXNldHN1c2V0c3V6b2t1XCA7CivkvY/lroXph5Hono3lhazluqsgPCBqdXV0YWt1a2luJyd5dXVrb3Vrb1wgOwor5Y2Y5L2N5L2T56mN6YeN6YePIDwgdGFuJydpdGFpc2VraWp1dXJ5b3VcIDsKK+e1seS4gOWcsOaWuemBuOaMmSA8IHRvdWl0c3VjaGlob3VzZW5reW9cIDsKK+WFrOmWi+W4guWgtOaUv+etliA8IGtvdWthaXNoaWpvdXNlaXNha3VcIDsKK+WcsOeQg+ims+a4rOihm+aYnyA8IGNoaWt5dXVrYW5zb2t1ZWlzZWlcIDsKK+eUn+eJqeeJqeeQhuWtpiA8IHNlaWJ1dHN1YnV0c3VyaWdha3VcIDsKK+W5s+WutueJqeiqnuaKhCA8IGhlaWtlbW9ub2dhdGFyaXNob3VcIDsKK+WQiOWQjOaKgOihk+WnlOWToeS8miA8IGdvdWRvdWdpanV0c3VpaW5rYWlcIDsKK+mHjemHj+aLs+mXmOmBuOaJiyA8IGp1dXJ5b3VrZW50b3VzZW5zaHVcIDsKK+S6uuW3peawl+iDuOeZguazlSA8IGppbmtvdWtpa3lvdXJ5b3Vob3VcIDsKK+WcsOaWueWFrOWFseWbo+S9kyA8IGNoaWhvdWtvdWt5b3VkYW50YWlcIDsKK+aJi+agueeuoeeXh+WAmee+pCA8IHNodWtvbmthbnNob3Vrb3VndW5cIDsKK+mrmOWIhuWtkOWMluWQiOeJqSA8IGtvdWJ1bnNoaWthZ291YnV0c3VcIDsKK+mjn+iZq+akjeeJqSA8IHNob2t1Y2h1dXNob2t1YnV0c3VcIDsKK+mZuOS4iuS9nOaIpuacrOmDqCA8IHJpa3Vqb3VzYWt1c2VuaG9uYnVcIDsKK+ims+Wvn+eahOeglOeptiA8IGthbnNhdHN1dGVraWtlbmt5dXVcIDsKK+aUvuWwhOaAp+W7g+ajhOeJqSA8IGhvdXNoYXNlaWhhaWtpYnV0c3VcIDsKK+mAhui7ouWIhuW4g+S/guaVsCA8IGd5YWt1dGVuYnVucHVrZWlzdXVcIDsKK+icmOibm+iGnOS4i+WHuuihgCA8IGt1bW9tYWt1a2FzaHVra2V0c3VcIDsKK+iHquWLleaWueWQkeaOouefpeapnyA8IGppZG91aG91a291dGFuY2hpa2lcIDsKK+WFseWQjOaVkea4iOWfuumHkSA8IGt5b3Vkb3VreXV1c2Fpa2lraW5cIDsKK+izg+iyuOWAn+Wlkee0hCA8IGNoaW50YWlzaGFrdWtlaXlha3VcIDsKK+W+s+W3neWFrOeItemCuCA8IHRva3VnYXdha291c2hha3V0ZWlcIDsKK+W4sOmChOS4jeiDvemZkOeVjOeCuSA8IGtpa2FuZnVub3VnZW5rYWl0ZW5cIDsKK+S/nemZuumHkeWPl+WPluS6uiA8IGhva2Vua2luJyd1a2V0b3JpbmluXCA7Civpmbjou43lo6vlrpjlrabmoKEgPCByaWt1Z3Vuc2hpa2FuZ2Fra291XCA7CivmvIHmpa3lsILnrqHmsLTln58gPCBneW9neW91c2Vua2Fuc3VpaWtpXCA7Civnsr7npZ7liIboo4Lnl4cgPCBzZWlzaGluYnVucmV0c3VzaG91XCA7CivoirjooZPoh7PkuIrkuLvnvqkgPCBnZWlqdXRzdXNoaWpvdXNodWdpXCA7Civnibnlkb3lhajmqKnlpKfkvb8gPCB0b2t1bWVpemVua2VudGFpc2hpXCA7Civov5HmjqXoiKrnqbrmlK/mj7QgPCBraW5zZXRzdWtvdWt1dXNoaWVuXCA7CivlpKrpmb3nhrHnmbrpm7sgPCB0YWl5b3VuZXRzdWhhdHN1ZGVuXCA7CivmtbflpJbnlZnlrabnhrEgPCBrYWlnYWlyeXV1Z2FrdW5ldHN1XCA7CivmnInmqZ/msLTpioDkuK3mr5IgPCB5dXVraXN1aWdpbmNodXVkb2t1XCA7CivlporlqKDkuK3mr5Lnl4cgPCBuaW5zaGluY2h1dWRva3VzaG91XCA7CivnkrDlpKrlubPmtIvmp4vmg7MgPCBrYW50YWloZWl5b3Vrb3Vzb3VcIDsKK+eLrOeri+aOoeeul+WItiA8IGRva3VyaXRzdXNhaXNhbnNlaVwgOwor5biC5aC05Y2g5pyJ546HIDwgc2hpam91c2VuJyd5dXVyaXRzdVwgOwor5YWs55qE5LiN5rOV5aao5a6zIDwga291dGVraWZ1aG91Ym91Z2FpXCA7CivoppbogbTopprmlZnmnZAgPCBzaGljaG91a2FrdWt5b3V6YWlcIDsKK+WGhemWo+azleWItuWxgCA8IG5haWtha3Vob3VzZWlreW9rdVwgOwor5Zu95a625YWs5a6J5aeU5ZOh6ZW3IDwga29ra2Frb3VhbicnaWluY2hvdVwgOwor5oim6ZeY5pSv5o+06KiI55S7IDwgc2VudG91c2hpZW5rZWlrYWt1XCA7CivkuK3lsI/kvIHmpa3luoEgPCBjaHV1c2hvdWtpZ3lvdWNob3VcIDsKK+Wbnue3muWItuW+oeimj+WJhyA8IGthaXNlbnNlaWd5b2tpc29rdVwgOwor5pu457Ch5L2T5bCP6KqsIDwgc2hva2FudGFpc2hvdXNldHN1XCA7CivnpL7kvJrnlJ/nianlraYgPCBzaGFrYWlzZWlidXRzdWdha3VcIDsKK+S4gOaXpeS4gOaXpSA8IGljaGluaWNoaWljaGluaWNoaVwgOwor6LuN6ZqK6KGM6YCy5puyIDwgZ3VudGFpa291c2hpbmt5b2t1XCA7CivokazpgIHooYzpgLLmm7IgPCBzb3Vzb3Vrb3VzaGlua3lva3VcIDsKK+a4r+a5vumBi+mAgeS6i+alrSA8IGtvdXdhbicndW5zb3VqaWd5b3VcIDsKK+eJqeeQhueahOePvuixoSA8IGJ1dHN1cml0ZWtpZ2Vuc2hvdVwgOwor5b+D6IeT5byB6Iac55eHIDwgc2hpbnpvdWJlbm1ha3VzaG91XCA7Civohp3ok4vohbHlj43lsIQgPCBzaGl0c3VnYWlrZW5oYW5zaGFcIDsKK+mWgOaIuOmWi+aUvuaUv+etliA8IG1vbmtva2FpaG91c2Vpc2FrdVwgOwor5L+457Wm55Sf5rS76ICFIDwgaG91a3l1dXNlaWthdHN1c2hhXCA7CivmnbHlkI3pq5jpgJ/pgZPot68gPCB0b3VtZWlrb3Vzb2t1ZG91cm9cIDsKK+WGhemWo+e3j+eQhuWkp+iHoyA8IG5haWtha3Vzb3VyaWRhaWppblwgOwor5pel5pys5pS+6YCB5Y2U5LyaIDwgbmlob25ob3Vzb3VreW91a2FpXCA7CivoiKrnqbrlroflrpnlt6Xmpa0gPCBrb3VrdXV1Y2h1dWtvdWd5b3VcIDsKK+eUn+eJqeaDheWgseWtpiA8IHNlaWJ1dHN1am91aG91Z2FrdVwgOwor5aSa5bm055Sf5qSN54mpIDwgdGFuZW5zZWlzaG9rdWJ1dHN1XCA7Civph4/lrZDniannkIblraYgPCByeW91c2hpYnV0c3VyaWdha3VcIDsKK+WMl+exs+WQiOihhuWbvSA8IGhva3ViZWlnYXNzaHV1a29rdVwgOwor5p2l5a6i6Iqz5ZCN6YyyIDwgcmFpa3lha3Vob3VtZWlyb2t1XCA7CivlnLDmlrnmpJzlr5/luoEgPCBjaGlob3VrZW5zYXRzdWNob3VcIDsKK+efreaXpeakjeeJqSA8IHRhbmppdHN1c2hva3VidXRzdVwgOwor5qiZ5rqW5Ye65YqbIDwgaHlvdWp1bnNodXRzdXJ5b2t1XCA7CivlsILploDnmoTnn6XorZggPCBzZW5tb250ZWtpY2hpc2hpa2lcIDsKK+e1kOWpmuihjOmAsuabsiA8IGtla2tvbmtvdXNoaW5reW9rdVwgOwor5a6J5YWo5L+d6Zqc5p2h57SEIDwgYW56ZW5ob3Nob3Vqb3V5YWt1XCA7CivmoKrlvI/phY3lvZPph5EgPCBrYWJ1c2hpa2loYWl0b3VraW5cIDsKK+eJueWIpemFjeW9k+mHkSA8IHRva3ViZXRzdWhhaXRvdWtpblwgOwor5Li75YON5Zyf5Zyn5L+C5pWwIDwgc2h1ZG91ZG9hdHN1a2Vpc3V1XCA7Civlj43lsITnmoTljYrpoIbluo8gPCBoYW5zaGF0ZWtpaGFuanVuam9cIDsKK+e1jOa4iOaIkOmVt+eOhyA8IGtlaXphaXNlaWNob3VyaXRzdVwgOwor55Sj5qWt5Yil57WE5ZCIIDwgc2FuZ3lvdWJldHN1a3VtaWFpXCA7Civlm73pmpvpgJrosqjln7rph5EgPCBrb2t1c2FpdHN1dWtha2lraW5cIDsKK+WEquetieWNkualreeUnyA8IHl1dXRvdXNvdHN1Z3lvdXNlaVwgOwor55+t5pyf6ZuG5Lit6Kyb5bqnIDwgdGFua2lzaHV1Y2h1dWtvdXphXCA7CivlhaXlm73nrqHnkIblsYAgPCBueXV1a29rdWthbnJpa3lva3VcIDsKK+S/oeiznuW/hee9sCA8IHNoaW5zaG91aGl0c3ViYXRzdVwgOwor5pel5pys6L6y5p6X6KaP5qC8IDwgbmlob24nJ25vdXJpbmtpa2FrdVwgOwor6Iiq56m65a6H5a6Z55Sj5qWtIDwga291a3V1dWNodXVzYW5neW91XCA7Civlk4Hos6rkv53mjIHmnJ/pmZAgPCBoaW5zaGl0c3Vob2ppa2lnZW5cIDsKK+aXpeacrOW3pealreimj+agvCA8IG5paG9ua291Z3lvdWtpa2FrdVwgOwor6ZaT5o6l5pKu5b2x5rOVIDwga2Fuc2V0c3VzYXRzdWVpaG91XCA7Civlrp/nianlpKfmqKHlnosgPCBqaXRzdWJ1dHN1ZGFpbW9rZWlcIDsKK+i7jeS6i+eahOS+teeVpSA8IGd1bmppdGVraXNoaW5yeWFrdVwgOwor5Lit6Led6Zui5qC45YW15ZmoIDwgY2h1dWt5b3Jpa2FrdWhlaWtpXCA7CivphbjljJbpgoTlhYPlj43lv5wgPCBzYW5rYWthbmdlbmhhbicnbm91XCA7CivnibnlvrTmir3lh7ogPCB0b2t1Y2hvdWNodXVzaHV0c3VcIDsKK+Wvv+aVmeWupCA8IGtvdG9idWtpa3lvdXNoaXRzdVwgOwor5YWs5YuZ5Z+36KGM5aao5a6zIDwga291bXVzaGlra291Ym91Z2FpXCA7CivnqY3liIbmlrnnqIvlvI8gPCBzZWtpYnVuaG91dGVpc2hpa2lcIDsKK+mrmOetieWwgumWgOWtpuagoSA8IGtvdXRvdXNlbm1vbmdha2tvdVwgOwor56mN566X6Zu75Yqb6KiIIDwgc2VraXNhbmRlbnJ5b2t1a2VpXCA7CivkuozlubTnlJ/mpI3niakgPCBuaW5lbnNlaXNob2t1YnV0c3VcIDsKK+WbveS8muWvvuetluWnlOWToeS8miA8IGtva2thaXRhaXNha3VpbmthaVwgOwor56ys5LqM5qyh5LiW55WM5aSn5oimIDwgZGFpbmlqaXNla2FpdGFpc2VuXCA7CivmranlhbXmiKbpl5jou4rkuKEgPCBob2hlaXNlbnRvdXNoYXJ5b3VcIDsKK+WNg+S5neeZvuW5tOS7oyA8IHNlbmt5dXVoeWFrdW5lbmRhaVwgOwor5YWx5ZCM6KiY6ICF5Lya6KaLIDwga3lvdWRvdWtpc2hha2Fpa2VuXCA7Civnp5HlrabljZrnianppKggPCBrYWdha3VoYWt1YnV0c3VrYW5cIDsKK+S4reWbveWFseeUo+WFmiA8IGNodXVnb2t1a3lvdXNhbnRvdVwgOwor6auY5YiG5a2Q54mp6LOqIDwga291YnVuc2hpYnVzc2hpdHN1XCA7CivnmbrpgZTlv4PnkIblraYgPCBoYXR0YXRzdXNoaW5yaWdha3VcIDsKK+eyvuelnuiWhOW8seiAhSA8IHNlaXNoaW5oYWt1amFrdXNoYVwgOwor5aSq6Zm954ax5rip5rC05ZmoIDwgdGFpeW91bmV0c3VvbnN1aWtpXCA7CivnibnliKXooYzmlL/ljLogPCB0b2t1YmV0c3VneW91c2Vpa3VcIDsKK+mdmeatouWcn+Wcp+S/guaVsCA8IHNlaXNoaWRvYXRzdWtlaXN1dVwgOwor5LiJ6Imy5Y2w5Yi35rOVIDwgc2Fuc2hva3VpbnNhdHN1aG91XCA7CivmjpLljbXoqpjnmbrliaQgPCBoYWlyYW4nJ3l1dWhhdHN1emFpXCA7CivnlJ/mtLvlv4XpnIDlk4EgPCBzZWlrYXRzdWhpdHN1anVoaW5cIDsKK+WwkeW5tOmRkeWIpeaJgCA8IHNob3VuZW5rYW5iZXRzdXNob1wgOwor5Lq65Y+j5YuV5oWL57Wx6KiIIDwgamlua291ZG91dGFpdG91a2VpXCA7CivluqfpqqjnpZ7ntYznl5sgPCB6YWtvdHN1c2hpbmtlaXRzdXVcIDsKK+akjeawkeWcsOaUv+etliA8IHNob2t1bWluY2hpc2Vpc2FrdVwgOwor6Ki85Yi45Y+W5byV5rOVIDwgc2hvdWtlbnRvcmloaWtpaG91XCA7Civnp4HlsI/oqqwgPCB3YXRha3VzaGlzaG91c2V0c3VcIDsKK+WVhuWTgeWbnui7oueOhyA8IHNob3VoaW5rYWl0ZW5yaXRzdVwgOwor5Zu96YCj5LqL5YuZ57eP6ZW3IDwga29rdXJlbmppbXVzb3VjaG91XCA7Civnr4DotrPli5XnianploAgPCBzZXNzb2t1ZG91YnV0c3Vtb25cIDsKK+edgOeUn+akjeeJqSA8IGNoYWt1c2Vpc2hva3VidXRzdVwgOwor5LiN5YuV55Sj5Y+W5b6X56iOIDwgZnVkb3VzYW5zaHV0b2t1emVpXCA7CivlubTmrKHmnInntabkvJHmmocgPCBuZW5qaXl1dWt5dXVreXV1a2FcIDsKK+Wun+eJqeWPluW8lSA8IGppdHN1YnV0c3V0b3JpaGlraVwgOwor5Y2B5LqM5oyH6IW45r2w55iNIDwganV1bmlzaGljaG91a2FpeW91XCA7CivoqIjnrpfnlJ/nianlraYgPCBrZWlzYW5zZWlidXRzdWdha3VcIDsKK+WwseiBt+aDheWgseiqjCA8IHNodXVzaG9rdWpvdWhvdXNoaVwgOwor5bu66Kit55qE6Zai5L+CIDwga2Vuc2V0c3V0ZWtpa2Fua2VpXCA7CivlrqLlrqTkuZfli5nlk6EgPCBreWFrdXNoaXRzdWpvdW11aW5cIDsKK+aUr+aMgeWKm+WumuW8jyA8IHNoaWppcnlva3V0ZWlzaGlraVwgOwor5YuV54mp6KGM5YuV5a2mIDwgZG91YnV0c3Vrb3Vkb3VnYWt1XCA7CivmiKbkuonniq/nvarms5Xlu7cgPCBzZW5zb3VoYW56YWlob3V0ZWlcIDsKK+iBt+iDveS7o+ihqOWItiA8IHNob2t1bm91ZGFpaHlvdXNlaVwgOwor5pyA6auY5qSc5a+f5bqBIDwgc2Fpa291a2Vuc2F0c3VjaG91XCA7Civlv4PnpZ7ogJflvLHogIUgPCBzaGluc2hpbm1vdWpha3VzaGFcIDsKK+W5tOWKn+W6j+WIl+WItuW6piA8IG5lbmtvdWpvcmV0c3VzZWlkb1wgOwor5Lqc57Gz5Yip5Yqg5ZCI6KGG5Zu9IDwgYW1lcmlrYWdhc3NodXVrb2t1XCA7CivnhKHohIrmpI7li5XniakgPCBtdXNla2l0c3VpZG91YnV0c3VcIDsKK+i+suael+awtOeUo+Wkp+iHoyA8IG5vdXJpbnN1aXNhbmRhaWppblwgOwor55u05o6l5o6l6KemIDwgY2hva3VzZXRzdXNlc3Nob2t1XCA7CivlrrblroXkvrXlhaXnvaogPCBrYXRha3VzaGluJydueXV1emFpXCA7CivliIblrZDnlJ/nianlraYgPCBidW5zaGlzZWlidXRzdWdha3VcIDsKK+S4u+imgemDqOWFiOWwjuWeiyA8IHNodXlvdWJ1c2VuZG91Z2F0YVwgOwor5aSp5L2T5YaZ55yf6KGTIDwgdGVudGFpc2hhc2hpbmp1dHN1XCA7Civnp5jlr4bmvI/mtKnnvaogPCBoaW1pdHN1cm91c2V0c3V6YWlcIDsKK+iyuOS7mOS/oeiolyA8IGthc2hpdHN1a2VzaGludGFrdVwgOwor6ZaT5o6l55uu55qE6KqeIDwga2Fuc2V0c3Vtb2t1dGVraWdvXCA7CivnspjmtrLliIbms4zohbogPCBuZW4nJ2VraWJ1bnBpdHN1c2VuXCA7CivnnqzplpPmjqXnnYDliaQgPCBzaHVua2Fuc2V0Y2hha3V6YWlcIDsKK+S6uuWPo+WvhumbhueOhyA8IGppbmtvdW1pc3NodXVyaXRzdVwgOwor5Zu95rCR5YGl5bq35L+d6Zm6IDwga29rdW1pbmtlbmtvdWhva2VuXCA7Civljp/oibLlhpnnnJ/niYggPCBnZW5zaG9rdXNoYXNoaW5iYW5cIDsKK+S4jeWumuioiOmHj+epuumWkyA8IGZ1dGVpa2VpcnlvdWt1dWthblwgOwor6YeP5a2Q6Imy5Yqb5a2mIDwgcnlvdXNoaWlyb3Jpa2lnYWt1XCA7CivlnKjml6XnsbPpmbjou40gPCB6YWluaWNoaWJlaXJpa3VndW5cIDsKK+mjn+WTgea3u+WKoOeJqSA8IHNob2t1aGludGVua2FidXRzdVwgOwor5Y+N5bid5Zu95Li7576p6ICFIDwgaGFudGVpa29rdXNodWdpc2hhXCA7Civli5XnianmgKfom4vnmb0gPCBkb3VidXRzdXNlaXRhbnBha3VcIDsKK+eJueWumumDteS+v+WxgCA8IHRva3V0ZWl5dXViaW5reW9rdVwgOwor5pel5pys6Iiq56m66Ieq6KGb6ZqKIDwgbmlob25rb3VrdXVqaWVpdGFpXCA7Civngavlipvnmbrpm7vmiYAgPCBrYXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+WkmuinkuW8j+i+sualrSA8IHRha2FrdXNoaWtpbm91Z3lvdVwgOwor6Zu76I2357WQ5ZCI57Sg5a2QIDwgZGVua2FrZXRzdWdvdXNvc2hpXCA7CivmsLjkuJbkuK3nq4vlm70gPCBlaXNlaWNodXVyaXRzdWtva3VcIDsKK+espuWPt+WMluaWh+Wtl+mbhuWQiCA8IGZ1Z291a2Ftb2ppc2h1dWdvdVwgOwor5ZSv54mp5byB6Ki85rOVIDwgeXVpYnV0c3ViZW5zaG91aG91XCA7Civml6XmnKzmtbfkuIroh6rooZvpmoogPCBuaWhvbmthaWpvdWppZWl0YWlcIDsKK+WPsueahOWUr+eJqeirliA8IHNoaXRla2l5dWlidXRzdXJvblwgOwor5a6j6KqT5L6b6L+w5pu4IDwgc2Vuc2Vpa3lvdWp1dHN1c2hvXCA7CivnhrHohqjlvLXkv4LmlbAgPCBuZXRzdWJvdWNob3VrZWlzdXVcIDsKK+aciemZkOeKtuaFi+aWh+azlSA8IHl1dWdlbmpvdXRhaWJ1bnBvdVwgOwor5Y2z5pel6YCf6YGUIDwgc29rdWppdHN1c29rdXRhdHN1XCA7CivmpI3nianmgKfnuYrntq0gPCBzaG9rdWJ1dHN1c2Vpc2VuJydpXCA7CivpgY7lpLHlgrflrrPnvaogPCBrYXNoaXRzdXNob3VnYWl6YWlcIDsKK+S/ruato+izh+acrOS4u+e+qSA8IHNodXVzZWlzaGlob25zaHVnaVwgOwor5LiA5Y215oCn5Y+M55Sf5YWQIDwgaWNoaXJhbnNlaXNvdXNlaWppXCA7CivlhbHlkIzlibXoqK3ogIUgPCBreW91ZG91c291c2V0c3VzaGFcIDsKK+WcsOS4rea1t+aAp+awl+WAmSA8IGNoaWNodXVrYWlzZWlraWtvdVwgOwor5oqV6LOH5pyJ5L6h6Ki85Yi4IDwgdG91c2hpeXV1a2FzaG91a2VuXCA7CivkuIrntJrlia/npL7plbcgPCBqb3VreXV1ZnVrdXNoYWNob3VcIDsKK+aIpueVpeeahOaPkOaQuiA8IHNlbnJ5YWt1dGVraXRlaWtlaVwgOwor5YmN5pa55YaN6KOc57Wm54K5IDwgemVucG91c2FpaG9reXV1dGVuXCA7Civnmb7nmbrnmb7kuK0gPCBoeWFwcGF0c3VoeWFrdWNodXVcIDsKK+eSsOWig+W6gemVt+WumCA8IGthbmt5b3VjaG91Y2hvdWthblwgOwor5Y+W57eg5b255LyaIDwgdG9yaXNoaW1hcml5YWt1a2FpXCA7CivlnKflipvoqr/mlbTlmaggPCBhdHN1cnlva3VjaG91c2Vpa2lcIDsKK+eUn+murumjn+aWmeWTgSA8IHNlaXNlbnNob2t1cnlvdWhpblwgOwor5pS+5bCE5oCn54mp6LOqIDwgaG91c2hhc2VpYnVzc2hpdHN1XCA7CivlnLDnkIPniannkIblraYgPCBjaGlreXV1YnV0c3VyaWdha3VcIDsKK+WPjeWul+aVmeaUuemdqSA8IGhhbnNodXVreW91a2Fpa2FrdVwgOwor5a2m6K2Y57WM6aiT6ICFIDwgZ2FrdXNoaWtpa2Vpa2Vuc2hhXCA7Civnq4vmhrLlkJvkuLvmlL/kvZMgPCByaWtrZW5rdW5zaHVzZWl0YWlcIDsKK+aUvumAgeemgeatoueUqOiqniA8IGhvdXNvdWtpbnNoaXlvdWdvXCA7CivotaTpnaLmgZDmgJbnl4cgPCBzZWtpbWVua3lvdWZ1c2hvdVwgOwor6aOf5ZOB6KGb55Sf5rOVIDwgc2hva3VoaW4nJ2Vpc2VpaG91XCA7CivmlZnogbflk6HntYTlkIggPCBreW91c2hva3Vpbmt1bWlhaVwgOwor5Y2B5LiA6Z2i6Kaz5LiW6Z+zIDwganV1aWNoaW1lbmthbnplb25cIDsKK+avm+ayouadseS4u+W4rSA8IG1vdXRha3V0b3VzaHVzZWtpXCA7CivliKXpgJTnqY3nq4vph5EgPCBiZXR0b3RzdW1pdGF0ZWtpblwgOwor6L+U5L+h5paZ6JGJ5pu4IDwgaGVuc2hpbnJ5b3VoYWdha2lcIDsKK+iruOi7iumAmuihjOatoiA8IHNob3NoYXRzdXVrb3Vkb21lXCA7CivlvaLnirboqJjmhrblkIjph5EgPCBrZWlqb3VraW9rdWdvdWtpblwgOwor5Zu95Zyf5bqB6ZW35a6YIDwga29rdWRvY2hvdWNob3VrYW5cIDsKK+WHuuWKm+ijhee9riA8IHNodXRzdXJ5b2t1c291Y2hpXCA7CivopIfpm5HpqqjmipggPCBmdWt1emF0c3Vrb3NzZXRzdVwgOwor5LiL5L2N56+E55aH5YyW57Sg5oCnIDwga2FpaGFuY2h1dWthc29zZWlcIDsKK+WLp+WWhOaHsuaCquWKhyA8IGthbnplbmNob3Vha3VnZWtpXCA7CivljLvlrabnlJ/nianlraYgPCBpZ2FrdXNlaWJ1dHN1Z2FrdVwgOwor6Z2e5qiZ5rqW5ouh5by1IDwgaGloeW91anVua2FrdWNob3VcIDsKK+ihjOWLleeZuui1t+aZguWIuyA8IGtvdWRvdWhha2tpamlrb2t1XCA7CivljYHpg6jploDliIbpoZ7ms5UgPCBqdXVidW1vbmJ1bnJ1aWhvdVwgOwor5aSq6Zm95YWJ55m66Zu7IDwgdGFpeW91a291aGF0c3VkZW5cIDsKK+S4lueVjOS4gOWRqOaXheihjCA8IHNla2FpaXNzaHV1cnlva291XCA7Civov5Tkv6HnlKjokYnmm7ggPCBoZW5zaGluJyd5b3VoYWdha2lcIDsKK+S4lueVjOS6uuaoqeWuo+iogCA8IHNla2Fpamlua2Vuc2VuZ2VuXCA7CivlhaznmoTljLvnmYLmqZ/plqIgPCBrb3V0ZWtpaXJ5b3VraWthblwgOwor54mp55qE5rWB6YCaIDwgYnV0c3V0ZWtpcnl1dXRzdXVcIDsKK+WNgeW5tOS4gOaYlCA8IGp1dW5lbmhpdG9tdWthc2hpXCA7CivnpaXmnIjlkb3ml6UgPCBzaG91dHN1a2ltZWluaWNoaVwgOwor55yf54+g6aSK5q6W5aC0IDwgc2hpbmp1eW91c2hva3Vqb3VcIDsKK+aIpueVpeeJqeizqiA8IHNlbnJ5YWt1YnVzc2hpdHN1XCA7CivogovplpPnpZ7ntYznl5sgPCByb2trYW5zaGlua2VpdHN1dVwgOwor5rW35rSL54mp55CG5a2mIDwga2FpeW91YnV0c3VyaWdha3VcIDsKK+eyvuelnueahOiLpueXmyA8IHNlaXNoaW50ZWtpa3V0c3V1XCA7CivkuqTmtYHnmbrpm7vmqZ8gPCBrb3VyeXV1aGF0c3VkZW5raVwgOwor5bCx6IG35rS75YuVIDwgc2h1dXNob2t1a2F0c3Vkb3VcIDsKK+WPl+WDjeWcn+Wcp+S/guaVsCA8IGp1ZG91ZG9hdHN1a2Vpc3V1XCA7Civni6nnjJ/mjqHpm4bmsJEgPCBzaHVyeW91c2Fpc2h1dW1pblwgOwor5LiN56K65a6a5oCn5Y6f55CGIDwgZnVrYWt1dGVpc2VpZ2VucmlcIDsKK+aIpumXmOato+mdouW5hSA8IHNlbnRvdXNob3VtZW5oYWJhXCA7CivkuI3kv6Hku7vmipXnpaggPCBmdXNoaW4nJ25pbnRvdWh5b3VcIDsKK+mAgemHkeWPl+WPluS6uiA8IHNvdWtpbicndWtldG9yaW5pblwgOwor5byx6IKJ5by36aOfIDwgamFrdW5pa3VreW91c2hva3VcIDsKK+S8uOe4rueojueOhyA8IHNoaW5zaHVrdXplaXJpdHN1XCA7CivkuoznrYnovrrkuInop5LlvaIgPCBuaXRvdWhlbnNhbmtha2tlaVwgOwor77yk77yy77yz55CG6KuWIDwgZGlcIMyEYVwgzIRydWVzdXJpcm9uXCA7Civpo5/ns6fnrqHnkIbms5UgPCBzaG9rdXJ5b3VrYW5yaWhvdVwgOwor55uy6IW454KO5omL6KGTIDwgbW91Y2hvdWVuc2h1anV0c3VcIDsKK+elnuWHuumsvOayoSA8IHNoaW5zaHV0c3VraWJvdHN1XCA7CivnrKzkuIDntJrmrrrkurogPCBkYWlpa2t5dXVzYXRzdWppblwgOwor5oim55Wl5qC45YW15ZmoIDwgc2Vucnlha3VrYWt1aGVpa2lcIDsKK+S4g+S4g+aXpSA8IHNoaWNoaXNoaWNoaW5pY2hpXCA7CivntKvpnLLojYkgPCBtdXJhc2FraXRzdXl1a3VzYVwgOwor5YeN57WQ6Ziy5q2i5YmkIDwgdG91a2V0c3Vib3VzaGl6YWlcIDsKK+S4remWk+mFjeW9k+mhjSA8IGNodXVrYW5oYWl0b3VnYWt1XCA7CivmlL/ku6TmjIflrprpg73luIIgPCBzZWlyZWlzaGl0ZWl0b3NoaVwgOwor5ZC46KGA5YuV54mpIDwga3l1dWtldHN1ZG91YnV0c3VcIDsKK+mrmOmAn+Wil+aulueCiSA8IGtvdXNva3V6b3VzaG9rdXJvXCA7Civov5Tkv6HmlpnlsIHnrZIgPCBoZW5zaGlucnlvdWZ1dXRvdVwgOwor6KGb5pif5Zyw55CD5bGAIDwgZWlzZWljaGlreXV1a3lva3VcIDsKK+WcqOeVmeWkluWbveS6uiA8IHphaXJ5dXVnYWlrb2t1amluXCA7CivnhrHlipvlrabnmoQgPCBuZXRzdXJpa2lnYWt1dGVraVwgOwor5qSN54mp5o6h6ZuGIDwgc2hva3VidXRzdXNhaXNodXVcIDsKK+WHuuWKm+err+WtkCA8IHNodXRzdXJ5b2t1dGFuc2hpXCA7CivmqJnmupblhaXlipsgPCBoeW91anVuJydueXV1cnlva3VcIDsKK+eUo+alreW7g+ajhOeJqSA8IHNhbmd5b3VoYWlraWJ1dHN1XCA7CivnhKHmi4Xkv53lgJ/lhaXph5EgPCBtdXRhbnBva2FyaWlyZWtpblwgOwor6Kaz6JGJ5qSN54mpIDwga2FuJyd5b3VzaG9rdWJ1dHN1XCA7CivlpKnnhLboqJjlv7XniakgPCB0ZW4nJ25lbmtpbmVuYnV0c3VcIDsKK+WNmOS9jeWKtOWDjee1hOWQiCA8IHRhbicnaXJvdWRvdWt1bWlhaVwgOwor5Lit5aSu5Yem55CG6KOF572uIDwgY2h1dW91c2hvcmlzb3VjaGlcIDsKK+WHuueUn+iovOaYjuabuCA8IHNodXNzZWlzaG91bWVpc2hvXCA7CivpgbjmjJnnrqHnkIblp5Tlk6HkvJogPCBzZW5reW9rYW5yaWlpbmthaVwgOwor5LiK57Sa566h55CG6IG3IDwgam91a3l1dWthbnJpc2hva3VcIDsKK+eojumWoueUs+WRiuabuCA8IHplaWthbnNoaW5rb2t1c2hvXCA7CivkuIPnlJ/loLHlm70gPCBzaGljaGlzaG91aG91a29rdVwgOwor6L+U5L+h55So5bCB562SIDwgaGVuc2hpbicneW91ZnV1dG91XCA7CivnhrHni4LnmoTkv6HogIUgPCBuZWtreW91dGVraXNoaW5qYVwgOwor5LyB5qWt6ZaT5L+h55SoIDwga2lneW91a2Fuc2hpbicneW91XCA7CivmrKflt57pgJrosqjljZjkvY0gPCBvdXNodXV0c3V1a2F0YW4nJ2lcIDsKK+mWi+aLk+iAheeyvuelniA8IGthaXRha3VzaGFzZWlzaGluXCA7Civlrp/nianmj4/lhpkgPCBqaXRzdWJ1dHN1YnlvdXNoYVwgOwor5rex5Zyo5oCn55yf6I+MIDwgc2hpbnphaXNlaXNoaW5raW5cIDsKK+iHqueUseiyv+aYk+W4r+WfnyA8IGppeXV1Ym91ZWtpdGFpaWtpXCA7CivmnZHokL3lhbHlkIzkvZMgPCBzb25yYWt1a3lvdWRvdXRhaVwgOwor5LiK6Zm455So6Iif6ImHIDwgam91cmlrdXlvdXNodXV0ZWlcIDsKK+WPpOeUn+eJqeWtpuiAhSA8IGtvc2VpYnV0c3VnYWt1c2hhXCA7CivmrrrnnJ/oj4zolqwgPCBzYXRzdXNoaW5raW4nJ3lha3VcIDsKK+mWi+eZuumAlOS4iuWbvSA8IGthaWhhdHN1dG9qb3Vrb2t1XCA7CivooYDlnKfpmY3kuIvliaQgPCBrZXRzdWF0c3Vrb3VrYXphaVwgOwor54Sh5beu5Yil54iG5pKDIDwgbXVzYWJldHN1YmFrdWdla2lcIDsKK+W5s+WSjOeahOino+axuiA8IGhlaXdhdGVraWthaXNldHN1XCA7CivkuIvkvY3nr4TnlofljJbljp/nkIYgPCBrYWloYW5jaHV1a2FnZW5yaVwgOwor6aOf5ZOB5Yqg5bel5qWtIDwgc2hva3VoaW5rYWtvdWd5b3VcIDsKK+aBi+aEm+iHs+S4iuS4u+e+qSA8IHJlbicnYWlzaGlqb3VzaHVnaVwgOwor6auY57Sa5L2P5a6F5ZywIDwga291a3l1dWp1dXRha3VjaGlcIDsKK+iHquWLlei7iuS/nemZuuaWmSA8IGppZG91c2hhaG9rZW5yeW91XCA7CivpgY7lpLHoh7TmrbvnvaogPCBrYXNoaXRzdWNoaXNoaXphaVwgOwor6auY6aGN5omA5b6X6ICFIDwga291Z2FrdXNob3Rva3VzaGFcIDsKK+WNgeS4gOmdouims+mfsyA8IGp1dWljaGltZW5rYW4nJ25vblwgOwor6ICz6by75ZK95ZaJ5bCC6ZaA5Yy7IDwgamliaWlua291c2VubW9uJydpXCA7CivmnIjntYzlm7Dpm6Pnl4cgPCBnZWtrZWlrb24nJ25hbnNob3VcIDsKK+Wbvemam+imi+acrOW4giA8IGtva3VzYWltaWhvbicnaWNoaVwgOwor57eR5Zyw5YyW6KiI55S7IDwgcnlva3VjaGlrYWtlaWtha3VcIDsKK+aomeacrOaKveWHuiA8IGh5b3Vob25jaHV1c2h1dHN1XCA7CivmiKbloLToiKrnqbrpmLvmraIgPCBzZW5qb3Vrb3VrdXVzb3NoaVwgOwor5Lit5p6i56We57WM57O7IDwgY2h1dXN1dXNoaW5rZWlrZWlcIDsKK+e1seWQiOWPguisgOacrOmDqCA8IHRvdWdvdXNhbmJvdWhvbmJ1XCA7Civnt4/mi6zos6rllY8gPCBzb3VrYXRzdXNoaXRzdW1vblwgOwor5a6f6aiT55qE56CU56m2IDwgamlra2VudGVraWtlbmt5dXVcIDsKK+WwgueUqOmnkOi7iuWgtCA8IHNlbicneW91Y2h1dXNoYWpvdVwgOwor5r2u5Yqb55m66Zu7IDwgY2hvdXJ5b2t1aGF0c3VkZW5cIDsKK+eEoemBjuWkseiyrOS7uyA8IG11a2FzaGl0c3VzZWtpbmluXCA7CivkuIDmrKHmlrnnqIvlvI8gPCBpY2hpamlob3V0ZWlzaGlraVwgOwor5bCx5qWt5pmC6ZaT5LitIDwgc2h1dWd5b3VqaWthbmNodXVcIDsKK+WbveawkeS8keaah+adkSA8IGtva3VtaW5reXV1a2FtdXJhXCA7CivlrZDlrq7lpJblporlqKAgPCBzaGlreXV1Z2Fpbmluc2hpblwgOwor54Sh5ouF5L+d6LK45LuYIDwgbXV0YW5wb2thc2hpdHN1a2VcIDsKK+S4gOeykuWtkOaXoue0hCA8IGljaGlyeXV1c2hpa2l5YWt1XCA7CivkvIHmpa3liKXntYTlkIggPCBraWd5b3ViZXRzdWt1bWlhaVwgOwor5LiN5rOV5L615YWl6ICFIDwgZnVob3VzaGluJydueXV1c2hhXCA7Civnm7TmjqXos7zlhaUgPCBjaG9rdXNldHN1a291bnl1dVwgOwor5Y+O56mr5oSf6Kyd56WtIDwgc2h1dWtha3VrYW5zaGFzYWlcIDsKK+aMh+WQkeaAp+eIhuiWrCA8IHNoaWtvdXNlaWJha3V5YWt1XCA7Civlv4Plm6DmgKflj43lv5wgPCBzaGluJydpbnNlaWhhbicnbm91XCA7CivmnIDplbfkuI3lgJLot53pm6IgPCBzYWljaG91ZnV0b3VreW9yaVwgOwor5Lqc54ax5biv5qSN54mpIDwgYW5ldHRhaXNob2t1YnV0c3VcIDsKK+eqrualteebrueahCA8IGt5dXVreW9rdW1va3V0ZWtpXCA7CivlhoXplqPnt4/ovp7ogbcgPCBuYWlrYWt1c291amlzaG9rdVwgOwor5aSp54Wn5aSn56WeIDwgYW1hdGVyYXN1b29taWthbWlcIDsKK+WNsOixoeS4u+e+qemfs+alvSA8IGluc2hvdXNodWdpb25nYWt1XCA7Civov5Hku6PkupTnqK7nq7bmioAgPCBraW5kYWlnb3NodWt5b3VnaVwgOwor6LOq5a6f5Ymb5YGlIDwgc2hpdHN1aml0c3Vnb3VrZW5cIDsKK+iovOWIuOWPluW8leaJgCA8IHNob3VrZW50b3JpaGlraWpvXCA7CivlsYjmipjmnJvpgaDpj6EgPCBrdXNzZXRzdWJvdWVua3lvdVwgOwor5bGA5aSW5Lit56uLIDwga3lva3VnYWljaHV1cml0c3VcIDsKK+W+jOaWueWcsOWfn+itpuWCmSA8IGtvdWhvdWNoaWlraWtlaWJpXCA7Civmra/niZnnn6/mraPooZMgPCBzaGlnYWt5b3VzZWlqdXRzdVwgOwor5Y2Y57Sw6IOe55Sf54mpIDwgdGFuc2FpYm91c2VpYnV0c3VcIDsKK+aXpeacrOiWrOWxgOaWuSA8IG5paG9uJyd5YWtreW9rdWhvdVwgOwor6Ieq5YuV5pON57im6KOF572uIDwgamlkb3Vzb3VqdXVzb3VjaGlcIDsKK+a3seWxpOW/g+eQhuWtpiA8IHNoaW5zb3VzaGlucmlnYWt1XCA7Civpg73luILlr77mipfph47nkIMgPCB0b3NoaXRhaWtvdXlha3l1dVwgOwor6YeR5Ymb5aSc5Y+J5aaZ546LIDwga29uZ291eWFzaGFteW91b3VcIDsKK+eyvuelnuiWhOW8seWFkCA8IHNlaXNoaW5oYWt1amFrdWppXCA7CivoibLlvanoqr/nr4AgPCBzaGlraXNhaWNob3VzZXRzdVwgOwor6Jas55So5qSN54mpIDwgeWFrdXlvdXNob2t1YnV0c3VcIDsKK+WMluWtpuaWueeoi+W8jyA8IGthZ2FrdWhvdXRlaXNoaWtpXCA7CivmgKXpmY3kuIvniIbmkoMgPCBreXV1a291a2FiYWt1Z2VraVwgOwor5rC05LiK55Sf5rS76ICFIDwgc3Vpam91c2Vpa2F0c3VzaGFcIDsKK+WcqOWtpuiovOaYjuabuCA8IHphaWdha3VzaG91bWVpc2hvXCA7CivmpI3msJHlnLDntbHmsrsgPCBzaG9rdW1pbmNoaXRvdWNoaVwgOwor6Zai5pWw5pa556iL5byPIDwga2Fuc3V1aG91dGVpc2hpa2lcIDsKK+eni+mcnOeDiOaXpSA8IHNodXVzb3VyZXRzdWppdHN1XCA7Civnm7TmjqXoq4vmsYIgPCBjaG9rdXNldHN1c2Vpa3l1dVwgOwor5o6o6YCy56CU56m25omAIDwgc3Vpc2hpbmtlbmt5dXVzaG9cIDsKK+Wul+aVmeWTsuWtpiA8IHNodXVreW91dGV0c3VnYWt1XCA7CivmiKbooZPmoLjlhbXlmaggPCBzZW5qdXRzdWtha3VoZWlraVwgOwor6auY6YCf5ryU566X5qmf5qeLIDwga291c29rdWVuemFua2lrb3VcIDsKK+eZuuWxleeahOino+a2iCA8IGhhdHRlbnRla2lrYWlzaG91XCA7Civpo5vooYznpoHmraLnqbrln58gPCBoaWtvdWtpbnNoaWt1dWlraVwgOwor5Zu956uL5Zuz5pu46aSoIDwga29rdXJpdHN1dG9zaG9rYW5cIDsKK+S4ieihjOW6g+WRiuashCA8IHNhbmd5b3Vrb3Vrb2t1cmFuXCA7Civli6fmpa3ljZropqfkvJogPCBrYW5neW91aGFrdXJhbmthaVwgOwor6Jas54mp5Lit5q+SIDwgeWFrdWJ1dHN1Y2h1dWRva3VcIDsKK+WIhuaekOW/g+eQhuWtpiA8IGJ1bnNla2lzaGlucmlnYWt1XCA7CivmlZnogrLlv4PnkIblraYgPCBreW91aWt1c2hpbnJpZ2FrdVwgOwor5qWt5YuZ5LiK6YGO5aSxIDwgZ3lvdW11am91a2FzaGl0c3VcIDsKK+eSsOWig+S/neitt+irluiAhSA8IGthbmt5b3Vob2dvcm9uc2hhXCA7CivmiJDnuL7oqLzmmI7mm7ggPCBzZWlzZWtpc2hvdW1laXNob1wgOwor6YCx6ZaT5aSp5rCX5LqI5aCxIDwgc2h1dWthbnRlbmtpeW9ob3VcIDsKK+aUvuWwhOe3muaEn+WPl+aApyA8IGhvdXNoYXNlbmthbmp1c2VpXCA7CivnpL7kvJrmsJHkuLvkuLvnvqkgPCBzaGFrYWltaW5zaHVzaHVnaVwgOwor5bCP5b+D57+857+8IDwgc2hvdXNoaW4nJ3lva3V5b2t1XCA7CivnibnliKXluZXlg5ogPCB0b2t1YmV0c3ViYWt1cnlvdVwgOwor5YWl5a2m5b+X6aGY6ICFIDwgbnl1dWdha3VzaGlnYW5zaGFcIDsKK+mDqOWIhuaDheWgseani+mAoCA8IGJ1YnVuam91aG91a291em91XCA7CivkuIDmjJnmiYvkuIDmipXotrMgPCBpa2t5b3NodWl0dG91c29rdVwgOwor5YiG6KOC54mp6LOqIDwgYnVucmV0c3VidXNzaGl0c3VcIDsKK+acieW9ouWbuuWumuizh+eUoyA8IHl1dWtlaWtvdGVpc2hpc2FuXCA7CivkuK3lpK7mlL7pgIHlsYAgPCBjaHV1b3Vob3Vzb3VreW9rdVwgOwor55u05o6l54Wn5piOIDwgY2hva3VzZXRzdXNob3VtZWlcIDsKK+mjm+ihjOiomOmMsuijhee9riA8IGhpa291a2lyb2t1c291Y2hpXCA7Civooqvmi4Xkv53lgrXmqKnpoY0gPCBoaXRhbnBvc2Fpa2VuZ2FrdVwgOwor5YWx5ZCM55u457aa5Lq6IDwga3lvdWRvdXNvdXpva3VuaW5cIDsKK+WYseiol+auuuS6uiA8IHNob2t1dGFrdXNhdHN1amluXCA7CivnoJTnqbbnmbrooajkvJogPCBrZW5reXV1aGFwcHlvdWthaVwgOwor5LqM5Lqk5pu/5Yi25Yq05YONIDwgbmlrb3V0YWlzZWlyb3Vkb3VcIDsKK+a5v+eUn+akjeeJqSA8IHNoaXNzZWlzaG9rdWJ1dHN1XCA7CivkuIPljYHkurroqLMgPCBzaGljaGlqdXVuaW4nJ3lha3VcIDsKK+S/neWuiOezu+eEoeaJgOWxniA8IGhvc2h1a2VpbXVzaG96b2t1XCA7CivlpKnkvZPliIblhYnooZMgPCB0ZW50YWlidW5rb3VqdXRzdVwgOwor55CD6Z2i5LiJ6KeS5rOVIDwga3l1dW1lbnNhbmtha3Vob3VcIDsKK+ioiOmHj+e1jOa4iOWtpiA8IGtlaXJ5b3VrZWl6YWlnYWt1XCA7Civlj43ou6LliIbluIPkv4LmlbAgPCBoYW50ZW5idW5wdWtlaXN1dVwgOwor6JGX5L2c5qip5L615a6zIDwgY2hvc2FrdWtlbnNoaW5nYWlcIDsKK+eJueWIpeW8geitt+S6uiA8IHRva3ViZXRzdWJlbmdvbmluXCA7Civlr4zlm73lvLflhbXnrZYgPCBmdWtva3VreW91aGVpc2FrdVwgOwor56m65oy66ZmN5LiL5Zyw5Z+fIDwga3V1dGVpa291a2FjaGlpa2lcIDsKK+S6iOaDs+WPjuepq+mrmCA8IHlvc291c2h1dWtha3VkYWthXCA7CivngavlipvmlK/mj7Tpg6jpmoogPCBrYXJ5b2t1c2hpZW5idXRhaVwgOwor6KGA5Y+L55eF5oKj6ICFIDwga2V0c3V5dXVieW91a2FuamFcIDsKK+eZuueZjOeJqeizqiA8IGhhdHN1Z2FuYnVzc2hpdHN1XCA7Civnm7Top5LkuInop5LlvaIgPCBjaG9ra2FrdXNhbmtha2tlaVwgOwor55m96ZW36aCI6a+oIDwgc2hpcm9uYWdhc3VrdWppcmFcIDsKK+mXh+S+oeagvOWNlOWumiA8IHlhbWlrYWtha3VreW91dGVpXCA7CivoprPos57mpI3niakgPCBrYW5zaG91c2hva3VidXRzdVwgOwor6LWk5aSW57ea5YaZ55yfIDwgc2VraWdhaXNlbnNoYXNoaW5cIDsKK+W/g+elnuWWquWksSA8IHNoaW5zaGluc291c2hpdHN1XCA7CivpgJrkv5flsI/oqqwgPCB0c3V1em9rdXNob3VzZXRzdVwgOwor5q2M6Iie5LyO5Y2B5YWr55WqIDwga2FidWtpanV1aGFjaGliYW5cIDsKK+eZvuaIpueZvuWLnSA8IGh5YWt1c2VuaHlha3VzaG91XCA7CivlpKnnmofmqZ/plqLoqqwgPCB0ZW4nJ25vdWtpa2Fuc2V0c3VcIDsKK+WFrOiovOS6uuW9ueWgtCA8IGtvdXNob3VuaW4nJ3lha3ViYVwgOwor6LaF54++5a6f5Li7576pIDwgY2hvdWdlbmppdHN1c2h1Z2lcIDsKK+S6jOalteecn+epuueuoSA8IG5pa3lva3VzaGlua3V1a2FuXCA7Civmj5Dnga/ooYzliJcgPCBjaG91Y2hpbmd5b3VyZXRzdVwgOwor6Ziq56We5aSn6ZyH54G9IDwgaGFuc2hpbmRhaXNoaW5zYWlcIDsKK+WksealreWvvuetliA8IHNoaXRzdWd5b3V0YWlzYWt1XCA7Civms5XlrprlvpfnpajmlbAgPCBob3V0ZWl0b2t1aHlvdXN1dVwgOwor6Kit56uL6Laj5oSP5pu4IDwgc2V0c3VyaXRzdXNodWlzaG9cIDsKK+WkluWbveS6uueZu+mMsiA8IGdhaWtva3VqaW50b3Vyb2t1XCA7CivouqvkvZPpmpzlrrPogIUgPCBzaGludGFpc2hvdWdhaXNoYVwgOwor5aSn6YeP56C05aOK5YW15ZmoIDwgdGFpcnlvdWhha2FpaGVpa2lcIDsKK+a2iOiyu+iAheS/oeeUqCA8IHNob3VoaXNoYXNoaW4nJ3lvdVwgOwor5Y+N5bCE5L+C5pWw57ea5ZuzIDwgaGFuc2hha2Vpc3V1c2VuenVcIDsKK+mIjeinkuS4ieinkuW9oiA8IGRvbmtha3VzYW5rYWt1a2VpXCA7Civmtbfpm6Plr6nliKTluoEgPCBrYWluYW5zaGlucGFuY2hvdVwgOwor54qv572q55m655Sf546HIDwgaGFuemFpaGFzc2Vpcml0c3VcIDsKK+W+rueUn+eJqeWtpuiAhSA8IGJpc2VpYnV0c3VnYWt1c2hhXCA7CivkuIPoibLllJDovpvlrZAgPCBuYW5haXJvdG91Z2FyYXNoaVwgOwor57Sg57KS5a2Q5Yqg6YCf5ZmoIDwgc29yeXV1c2hpa2Fzb2t1a2lcIDsKK+WFrOiBt+mBuOaMmeazlSA8IGtvdXNob2t1c2Vua3lvaG91XCA7CivlrprlvaLpg7Xkvr/niakgPCB0ZWlrZWl5dXViaW5idXRzdVwgOwor6Ieq55Sx6LK/5piT5Zyw5Z+fIDwgaml5dXVib3Vla2ljaGlpa2lcIDsKK+WvvuS4reWbvemWouS/giA8IHRhaWNodXVnb2t1a2Fua2VpXCA7CivlhazplovluILloLTmk43kvZwgPCBrb3VrYWlzaGlqb3Vzb3VzYVwgOwor56eR5a2m5oqA6KGT5bqBIDwga2FnYWt1Z2lqdXRzdWNob3VcIDsKK+W3puWBtOmAmuihjCA8IGhpZGFyaWdhd2F0c3V1a291XCA7CivlpKfoi7HljZrnianppKggPCBkYWllaWhha3VidXRzdWthblwgOwor5YuV6ISI56Gs5YyW55eHIDwgZG91bXlha3Vrb3VrYXNob3VcIDsKK+W4neeOi+elnuaoqeiqrCA8IHRlaW91c2hpbmtlbnNldHN1XCA7CivmlZHlh7rkvZzmiKYgPCBreXV1c2h1dHN1c2FrdXNlblwgOwor5a6H5a6Z5aSn54iG55m6IDwgdWNodXVkYWliYWt1aGF0c3VcIDsKK+mmluebuOWFvOWkluebuCA8IHNodXNob3VrZW5nYWlzaG91XCA7CivnlJ/nianlnLDnkIblraYgPCBzZWlidXRzdWNoaXJpZ2FrdVwgOwor5Lq66Lqr5L+d6K235Luk54q2IDwgamluc2hpbmhvZ29yZWlqb3VcIDsKK+WOn+WtkOeJqeeQhuWtpiA8IGdlbnNoaWJ1dHN1cmlnYWt1XCA7Civmr43lrZDlgaXlurfmiYvluLMgPCBib3NoaWtlbmtvdXRlY2hvdVwgOwor55Wl5Y+W6KqY5ouQ572qIDwgcnlha3VzaHV5dXVrYWl6YWlcIDsKK+WupOWGheijhemjviA8IHNoaXRzdW5haXNvdXNob2t1XCA7CivljprnlJ/lubTph5Hkv53pmbogPCBrb3VzZWluZW5raW5ob2tlblwgOwor55u05o6l56u25LqJIDwgY2hva3VzZXRzdWt5b3Vzb3VcIDsKK+WkqeS9k+eJqeeQhuWtpiA8IHRlbnRhaWJ1dHN1cmlnYWt1XCA7CivpmY3lnKflpInlnKflmaggPCBrb3VhdHN1aGVuJydhdHN1a2lcIDsKK+adseWNsOW6puS8muekviA8IGhpZ2FzaGlpbmRvZ2Fpc2hhXCA7Civnianos6rkuLvnvqnogIUgPCBidXNzaGl0c3VzaHVnaXNoYVwgOwor5Zu96Zqb55qE6LK/5piTIDwga29rdXNhaXRla2lib3Vla2lcIDsKK+S4reaAp+WtkOeIhuW8viA8IGNodXVzZWlzaGliYWt1ZGFuXCA7Civku6PmlbDmlrnnqIvlvI8gPCBkYWlzdXVob3V0ZWlzaGlraVwgOwor5bmz5Z2H5aSq6Zm95pelIDwgaGVpa2ludGFpeW91aml0c3VcIDsKK+aAp+ihjOeCuuaEn+afk+eXhyA8IHNlaWtvdWlrYW5zZW5zaG91XCA7Civml63ml6XmmIflpKkgPCBreW9rdWppdHN1c2hvdXRlblwgOwor5Lmz5YWQ5q275Lqh546HIDwgbnl1dWppc2hpYm91cml0c3VcIDsKK+S4h+WbveWNmuimp+S8miA8IGJhbmtva3VoYWt1cmFua2FpXCA7CivpmLLooZvmlr3oqK3luoEgPCBib3VlaXNoaXNldHN1Y2hvdVwgOwor5pyJ5paZ6aeQ6LuK5aC0IDwgeXV1cnlvdWNodXVzaGFqb3VcIDsKK+iHqOW6iuW/g+eQhuWtpiA8IHJpbnNob3VzaGlucmlnYWt1XCA7CivnlJ/lkb3kv53pmbrkvJrnpL4gPCBzZWltZWlob2tlbmdhaXNoYVwgOwor5YaZ55yf6YCx5YiK6KqMIDwgc2hhc2hpbnNodXVrYW5zaGlcIDsKK+engeacieiyoeeUo+WItuW6piA8IHNoaXl1dXphaXNhbnNlaWRvXCA7Civlt6jnn7PoqJjlv7XniakgPCBreW9zZWtpa2luZW5idXRzdVwgOwor5LqM5YWD5pa556iL5byPIDwgbmlnZW5ob3V0ZWlzaGlraVwgOwor6Jia6IuU5qSN54mpIDwgc2VudGFpc2hva3VidXRzdVwgOwor6YGT576p55qE6LKs5Lu7IDwgZG91Z2l0ZWtpc2VraW5pblwgOwor542F5a2Q5ZSQ6L6b5a2QIDwgc2hpc2hpdG91Z2FyYXNoaVwgOwor56CU56m25a6k5qOfIDwga2Vua3l1dXNoaXRzdXRvdVwgOwor5rCX6LGh6Kaz5ris6Ii5IDwga2lzaG91a2Fuc29rdXNlblwgOwor6Lu95Y+j6KmxIDwga2FydWt1Y2hpYmFuYXNoaVwgOwor5Lq654y/5ZCM56WW6KqsIDwgamluJydlbmRvdXNvc2V0c3VcIDsKK+Wbo+S9k+S6pOa4ieaoqSA8IGRhbnRhaWtvdXNob3VrZW5cIDsKK+WvvuS6uuaBkOaAlueXhyA8IHRhaWppbmt5b3VmdXNob3VcIDsKK+iEs+iEiumrhOiGnOeCjiA8IG5vdXNla2l6dWltYWt1ZW5cIDsKK+imgeazqOaEj+S6uueJqSA8IHlvdWNodXVpamluYnV0c3VcIDsKK+WtpuagoeaVmeiCsuazlSA8IGdha2tvdWt5b3Vpa3Vob3VcIDsKK+ilv+WBtOiruOWbvSA8IG5pc2hpZ2F3YXNob2tva3VcIDsKK+eOi+aoqeelnuaOiOiqrCA8IG91a2Vuc2hpbmp1c2V0c3VcIDsKK+ecn+mDqOWIhumbhuWQiCA8IHNoaW5idWJ1bnNodXVnb3VcIDsKK+eLrOWNoOemgeatouazlSA8IGRva3VzZW5raW5zaGlob3VcIDsKK+iEiuakjuWLleeJqSA8IHNla2l0c3VpZG91YnV0c3VcIDsKK+WxhemWk+WFvOWvneWupCA8IGltYWtlbnNoaW5zaGl0c3VcIDsKK+ahkeWOn+ahkeWOnyA8IGt1d2FiYXJha3V3YWJhcmFcIDsKK+WFrOensOizh+acrOmHkSA8IGtvdXNob3VzaGlob25raW5cIDsKK+mbu+WLleeZuuWLleapnyA8IGRlbmRvdWhhdHN1ZG91a2lcIDsKK+W/nOeUqOeJqeeQhuWtpiA8IG91eW91YnV0c3VyaWdha3VcIDsKK+S6q+alveeUn+a0uyA8IGt5b3VyYWt1c2Vpa2F0c3VcIDsKK+WFpeWKm+mbu+a1gSA8IG55dXVyeW9rdWRlbnJ5dXVcIDsKK+S4ieWNgeWFq+W6pue3miA8IHNhbmp1dWhhY2hpZG9zZW5cIDsKK+WNgeW5tOS4gOaXpSA8IGp1dW5lbicnaWNoaWppdHN1XCA7Civoqo3nn6Xlv4PnkIblraYgPCBuaW5jaGlzaGlucmlnYWt1XCA7Civpoqjkv5flsI/oqqwgPCBmdXV6b2t1c2hvdXNldHN1XCA7CivkvY7ooYDlnKfnl4cgPCB0ZWlrZXRzdWF0c3VzaG91XCA7Civlt6Xmpa3miYDmnInmqKkgPCBrb3VneW91c2hveXV1a2VuXCA7CivlpJrlpInph4/op6PmnpAgPCB0YWhlbnJ5b3VrYWlzZWtpXCA7CivomZrjgIXlrp/jgIUgPCBreW9reW9qaXRzdWppdHN1XCA7CivmuIXmtrzpo7LmlpnmsLQgPCBzZWlyeW91aW5yeW91c3VpXCA7CivmioDooZPljZTlipsgPCBnaWp1dHN1a3lvdXJ5b2t1XCA7CivnqbrkuK3ooZ3nqoEgPCBrdXVjaHV1c2hvdXRvdHN1XCA7CivkuIDlm73kuIDlhZrkuLvnvqkgPCBpa2tva3VpdHRvdXNodWdpXCA7Civml6XmnKzpgZPot6/lhazlm6MgPCBuaWhvbmRvdXJva291ZGFuXCA7Civph5HliKnnlJ/mtLvogIUgPCBraW5yaXNlaWthdHN1c2hhXCA7CivljYPnr4fkuIDlvosgPCBzZW5wZW4nJ2ljaGlyaXRzdVwgOwor5paZ55CG5pWZ5a6kIDwgcnlvdXJpa3lvdXNoaXRzdVwgOwor6YG66KiA5Z+36KGM6ICFIDwgeXVpZ29uc2hpa2tvdXNoYVwgOwor5pys5qC85bCP6KqsIDwgaG9ua2FrdXNob3VzZXRzdVwgOwor6LK/5piT5aSW5Y+O5pSvIDwgYm91ZWtpZ2Fpc2h1dXNoaVwgOwor5Zu956uL5YqH5aC0IDwga29rdXJpdHN1Z2VraWpvdVwgOwor5a6f6Le155CG5oCn5om55YikIDwgamlzc2VucmlzZWloaWhhblwgOwor5p+T6Imy5L2T5Zyw5ZuzIDwgc2Vuc2hva3V0YWljaGl6dVwgOwor5Li75bit56CU56m25ZOhIDwgc2h1c2VraWtlbmt5dXVpblwgOwor6auY6YCf5bqm5YaZ55yfIDwga291c29rdWRvc2hhc2hpblwgOwor6I2J6aOf5YuV54mpIDwgc291c2hva3Vkb3VidXRzdVwgOwor6auY5qyh5pa556iL5byPIDwga291amlob3V0ZWlzaGlraVwgOwor5b6u5YiG5pa556iL5byPIDwgYmlidW5ob3V0ZWlzaGlraVwgOwor55u05o6l6YG45oyZIDwgY2hva3VzZXRzdXNlbmt5b1wgOwor6YO15L6/56eB5pu4566xIDwgeXV1Ymluc2hpc2hvYmFrb1wgOwor5pac5qC85oCn57Wx5b6hIDwgc2hha2FrdXNlaXRvdWd5b1wgOwor57WM5Y+j6YG/5aaK6JasIDwga2Vpa291aGluaW4nJ3lha3VcIDsKK+S6uuadkOmWi+eZuumDqCA8IGppbnphaWthaWhhdHN1YnVcIDsKK+WkmumHjeWQjeWJjeepuumWkyA8IHRhanV1bmFtYWVrdXVrYW5cIDsKK+eUn+iAheW/hea7hSA8IHNob3VqYWhpdHN1bWV0c3VcIDsKK+eGseW4r+akjeeJqSA8IG5ldHRhaXNob2t1YnV0c3VcIDsKK+S4h+Wbveaomea6luaZgiA8IGJhbmtva3VoeW91anVuamlcIDsKK+advuS4i+mbu+W3pSA8IG1hdHN1c2hpdGFkZW5rb3VcIDsKK+mYsuihm+W6gemVt+WumCA8IGJvdWVpY2hvdWNob3VrYW5cIDsKK+WQq+awtOWMluWQiOeJqSA8IGdhbnN1aWthZ291YnV0c3VcIDsKK+mWouadseWkp+mch+eBvSA8IGthbnRvdWRhaXNoaW5zYWlcIDsKK+WVhualreeul+ihkyA8IHNob3VneW91c2FuanV0c3VcIDsKK+ijheeUsuWbnuWPjui7iiA8IHNvdWtvdWthaXNodXVzaGFcIDsKK+WcsOaWueihjOiyoeaUvyA8IGNoaWhvdWd5b3V6YWlzZWlcIDsKK+aAp+ihqOePvuaDheWgsSA8IHNlaWh5b3VnZW5qb3Vob3VcIDsKK+aIpuaIpuagl+aglyA8IHNlbnNlbnJpdHN1cml0c3VcIDsKK+W4jOacm+eahOims+a4rCA8IGtpYm91dGVraWthbnNva3VcIDsKK+WPjeWwhOa4m+ihsOmHjyA8IGhhbnNoYWdlbnN1aXJ5b3VcIDsKK+aPrueZuueJqeizqiA8IGtpaGF0c3VidXNzaGl0c3VcIDsKK+WkieaFi+W/g+eQhuWtpiA8IGhlbnRhaXNoaW5yaWdha3VcIDsKK+eZuuWFieakjeeJqSA8IGhha2tvdXNob2t1YnV0c3VcIDsKK+asp+W3nuWFseWQjOS9kyA8IG91c2h1dWt5b3Vkb3V0YWlcIDsKK+e0q+Wklue3mueZguazlSA8IHNoaWdhaXNlbnJ5b3Vob3VcIDsKK+mdnuatpuijheS4reeriyA8IGhpYnVzb3VjaHV1cml0c3VcIDsKK+S4u+W4reWkluS6pOWumCA8IHNodXNla2lnYWlrb3VrYW5cIDsKK+e0sOiDnuizqumBuuS8nSA8IHNhaWJvdXNoaXRzdWlkZW5cIDsKK+WFseeUo+WFmuWuo+iogCA8IGt5b3VzYW50b3VzZW5nZW5cIDsKK+mbu+WKm+S+m+e1piA8IGRlbnJ5b2t1a3lvdWt5dXVcIDsKK+W3oeWbnuiouueZguaJgCA8IGp1bmthaXNoaW5yeW91am9cIDsKK+a6kOazieaJgOW+l+eojiA8IGdlbnNlbnNob3Rva3V6ZWlcIDsKK+e1hOiBt+WKtOWDjeiAhSA8IHNvc2hva3Vyb3Vkb3VzaGFcIDsKK+WKtOWDjeiAhemajue0miA8IHJvdWRvdXNoYWthaWt5dXVcIDsKK+aIpueVpeeIhuaSgyA8IHNlbnJ5YWt1YmFrdWdla2lcIDsKK+WmiuWooOS4ree1tiA8IG5pbnNoaW5jaHV1emV0c3VcIDsKK+aLoeWkp+WGjeeUn+eUoyA8IGtha3VkYWlzYWlzZWlzYW5cIDsKK+W5s+WSjOe2reaMgea0u+WLlSA8IGhlaXdhaWppa2F0c3Vkb3VcIDsKK+S4iue0muijgeWIpOaJgCA8IGpvdWt5dXVzYWliYW5zaG9cIDsKK+emgeassuS4u+e+qeiAhSA8IGtpbicneW9rdXNodWdpc2hhXCA7CivnibnmrormvZzoiKroiYcgPCB0b2t1c2h1c2Vua291dGVpXCA7CivmnIDmgbXlm73lvoXpgYcgPCBzYWlrZWlrb2t1dGFpZ3V1XCA7CivlhbHnlKPkuLvnvqnlm70gPCBreW91c2Fuc2h1Z2lrb2t1XCA7Civljp/lkYrlr77ooqvlkYogPCBnZW5rb2t1dGFpaGlrb2t1XCA7Civlj5foqJflj47os4TnvaogPCBqdXRha3VzaHV1d2FpemFpXCA7CivmtYHooYzmgKfmhJ/lhpIgPCByeXV1a291c2Vpa2FuYm91XCA7Civlm73msJHnt4/nlJ/nlKMgPCBrb2t1bWluc291c2Vpc2FuXCA7CivkuK3ot53pm6Lnq7botbAgPCBjaHV1a3lvcmlreW91c291XCA7Civlhajlm73nmoTnr4Tlm7IgPCB6ZW5rb2t1dGVraWhhbicnaVwgOwor6YCj6YKm5YWx5ZKM5Zu9IDwgcmVucG91a3lvdXdha29rdVwgOwor5pmu6YGN55qE5rOV5YmHIDwgZnVoZW50ZWtpaG91c29rdVwgOwor5aSn57Wx6aCY6YG45oyZIDwgZGFpdG91cnlvdXNlbmt5b1wgOwor5LqM5Y215oCn5Y+M55Sf5YWQIDwgbmlyYW5zZWlzb3VzZWlqaVwgOwor5pel54y25ZCM56WW6KuWIDwgbmljaGl5dXVkb3Vzb3JvblwgOwor5Lih5pu/5omL5pWw5paZIDwgcnlvdWdhZXRlc3V1cnlvdVwgOwor6LOH5pys5Yip55uK546HIDwgc2hpaG9ucmlla2lyaXRzdVwgOwor6K2w6Zmi6YGL5Za25aeU5ZOh5LyaIDwgZ2lpbicndW4nJ2VpaWlua2FpXCA7CivmiKbou4rmj5rpmbjoiaYgPCBzZW5zaGF5b3VyaWt1a2FuXCA7CivkuLvovp7ntKDmgKfopo/ntIQgPCBzaHVqaXNvc2Vpa2l5YWt1XCA7CivlpbPmgKfop6PmlL7pgYvli5UgPCBqb3NlaWthaWhvdXVuZG91XCA7Civlo7LmmKXpmLLmraLms5UgPCBiYWlzaHVuYm91c2hpaG91XCA7CivlhYnljJblrablj43lv5wgPCBrb3VrYWdha3VoYW4nJ25vdVwgOwor55u05o6l5Lya6KuHIDwgY2hva3VzZXRzdWthaWRhblwgOwor5Ymy5aKX6LOD6YeRIDwgd2FyaW1hc2hpY2hpbmdpblwgOwor6LuN5LqL5b2T5bGA6ICFIDwgZ3Vuaml0b3VreW9rdXNoYVwgOwor6IKJ5L2T5Yq05YON6ICFIDwgbmlrdXRhaXJvdWRvdXNoYVwgOwor6Ieq5Li75rWB6YCa57GzIDwgamlzaHVyeXV1dHN1dW1haVwgOwor5L2c5LuY6Z2i56mNIDwgc2FrdWR6dWtlbWVuc2VraVwgOwor5pel54us5Y2U5LyaIDwgbmljaGlkb2t1a3lvdWthaVwgOwor5pel5bi455Sf5rS7IDwgbmljaGlqb3VzZWlrYXRzdVwgOwor56ys5LiA5qyh55Sj5qWtIDwgZGFpaWNoaWppc2FuZ3lvdVwgOwor5a6f5a2Y5Li7576p6ICFIDwgaml0c3V6b25zaHVnaXNoYVwgOwor5q2z5YWl5q2z5Ye6IDwgc2Fpbnl1dXNhaXNodXRzdVwgOwor54m55Yil5oCl6KGMIDwgdG9rdWJldHN1a3l1dWtvdVwgOwor54++5a6f5Li7576p6ICFIDwgZ2Vuaml0c3VzaHVnaXNoYVwgOwor5Y+N5pS/5bqc5Yui5YqbIDwgaGFuc2VpZnVzZWlyeW9rdVwgOwor5YWN55ar5LiN5YWo55eHIDwgbWVuJydla2lmdXplbnNob3VcIDsKK+i7ouWHuuiovOaYjiA8IHRlbnNodXRzdXNob3VtZWlcIDsKK+WNgemAsuWIhumhnuazlSA8IGppc3NoaW5idW5ydWlob3VcIDsKK+WBtuWDj+aVmeW+kueahCA8IGd1dXpvdWt5b3V0b3Rla2lcIDsKK+e0heeZveatjOWQiOaIpiA8IGtvdWhha3V1dGFnYXNzZW5cIDsKK+e1jOa4iOeglOeptuaJgCA8IGtlaXphaWtlbmt5dXVzaG9cIDsKK+i7jeS6i+mAmuS/oeWToSA8IGd1bmppdHN1dXNoaW4nJ2luXCA7Civln7rmupblhoXos4Pph5EgPCBraWp1bicnbmFpY2hpbmdpblwgOwor55yM5bqB5omA5Zyo5ZywIDwga2VuY2hvdXNob3phaWNoaVwgOwor5pWR6I2S5L2c54mpIDwga3l1dWtvdXNha3Vtb3RzdVwgOwor55yf5a6X5aSn6LC35rS+IDwgc2hpbnNodXVvb3RhbmloYVwgOwor5Zyw54ax55m66Zu7IDwgY2hpbmV0c3VoYXRzdWRlblwgOwor6Jas54mp55mC5rOVIDwgeWFrdWJ1dHN1cnlvdWhvdVwgOwor5YaN5YWl5Zu96Kix5Y+vIDwgc2Fpbnl1dWtva3VreW9rYVwgOwor6Iux5Zu95Zu95pWZ5LyaIDwgZWlrb2t1a29ra3lvdWthaVwgOwor6aOf57On6YWN57WmIDwgc2hva3VyeW91aGFpa3l1dVwgOwor54Kt6YW45ZCM5YyW5L2c55SoIDwgdGFuc2FuZG91a2FzYXlvdVwgOwor5riF5pWZ5b6S6Z2p5ZG9IDwgc2Vpa3lvdXRva2FrdW1laVwgOwor5aSq6Zm956We57WM5Y+iIDwgdGFpeW91c2hpbmtlaXNvdVwgOwor55u057O76KGA5pePIDwgY2hva2tlaWtldHN1em9rdVwgOwor6LOq5ZWP55So57SZIDwgc2hpdHN1bW9uJyd5b3VzaGlcIDsKK+e1jOWWtuWtpuS/ruWjqyA8IGtlaWVpZ2FrdXNodXVzaGlcIDsKK+WBpeW6t+iovOaYjuabuCA8IGtlbmtvdXNob3VtZWlzaG9cIDsKK+ekvuS8muW/g+eQhuWtpiA8IHNoYWthaXNoaW5yaWdha3VcIDsKK+S6jOWkp+aUv+WFmuS4u+e+qSA8IG5pZGFpc2VpdG91c2h1Z2lcIDsKK+eLrOi6q+eUn+a0uyA8IGRva3VzaGluc2Vpa2F0c3VcIDsKK+itpuWvn+W9k+WxgCA8IGtlaXNhdHN1dG91a3lva3VcIDsKK+WFrOWFseS8gealreS9kyA8IGtvdWt5b3VraWd5b3V0YWlcIDsKK+ebtOaOpeS8neafkyA8IGNob2t1c2V0c3VkZW5zZW5cIDsKK+mDveW4guWGjemWi+eZuiA8IHRvc2hpc2Fpa2FpaGF0c3VcIDsKK+mdkuepuuaVmeWupCA8IGFvem9yYWt5b3VzaGl0c3VcIDsKK+aUvuWwhOe3mueZguazlSA8IGhvdXNoYXNlbnJ5b3Vob3VcIDsKK+WbvemAo+WIhuaLhemHkSA8IGtva3VyZW5idW50YW5raW5cIDsKK+mdnuWroeWHuuWtkCA8IGhpY2hha3VzaHV0c3VzaGlcIDsKK+eUn+a0u+anmOW8jyA8IHNlaWthdHN1eW91c2hpa2lcIDsKK+Wumuacn+WIiuihjOeJqSA8IHRlaWtpa2Fua291YnV0c3VcIDsKK+aUu+aSg+mWi+Wni+e3miA8IGtvdWdla2lrYWlzaGlzZW5cIDsKK+W5s+mdouS4ieinkuazlSA8IGhlaW1lbnNhbmtha3Vob3VcIDsKK+azleWumuS8neafk+eXhSA8IGhvdXRlaWRlbnNlbmJ5b3VcIDsKK+eJh+mBk+aWmemHkSA8IGthdGFtaWNoaXJ5b3VraW5cIDsKK+WOn+ayuea1geWHuiA8IGdlbicneXVyeXV1c2h1dHN1XCA7CivnlaXlvI/lkb3ku6QgPCByeWFrdXNoaWtpbWVpcmVpXCA7CivoirjooZPmtLvli5UgPCBnZWlqdXRzdWthdHN1ZG91XCA7CivkuInlj4nnpZ7ntYznl5sgPCBzYW5zYXNoaW5rZWl0c3V1XCA7CivmrbTlj7Llk7LlraYgPCByZWtpc2hpdGV0c3VnYWt1XCA7CivlhKrli53msbrlrprmiKYgPCB5dXVzaG91a2V0dGVpc2VuXCA7CivkuIvnlLroqIDokYkgPCBzaGl0YW1hY2hpa290b2JhXCA7CivmnIDkvY7nlJ/mtLvosrsgPCBzYWl0ZWlzZWlrYXRzdWhpXCA7CivkuI3ntJTnlbDmgKfkuqTpgYogPCBmdWp1bicnaXNlaWtvdXl1dVwgOwor6aqo55qu562L5Y+z6KGb6ZaAIDwgaG9uZWthd2FzdWppZW1vblwgOwor5bqc55yM5Yil5Lq65Y+jIDwgZnVrZW5iZXRzdWppbmtvdVwgOwor57eK5oCl552A6Zm4IDwga2lua3l1dWNoYWt1cmlrdVwgOwor5o6o5a6a55u457aa5Lq6IDwgc3VpdGVpc291em9rdW5pblwgOwor5Ya36KGA5YuV54mpIDwgcmVpa2V0c3Vkb3VidXRzdVwgOwor5aSa5Zu957GN5LyB5qWtIDwgdGFrb2t1c2VraWtpZ3lvdVwgOwor5Y+W5omx5rOo5oSPIDwgdG9yaWF0c3VrYWljaHV1aVwgOwor5rWF6ZaT5bGx6I2Y5LqL5Lu2IDwgYXNhbWFzYW5zb3VqaWtlblwgOwor5pm05LiA5pmC5bCP6ZuoIDwgaGFyZWljaGlqaWtvc2FtZVwgOwor5Ymy5aKX5paZ6YeRIDwgd2FyaW1hc2hpcnlvdWtpblwgOwor5a2j56+A5Yq05YON6ICFIDwga2lzZXRzdXJvdWRvdXNoYVwgOwor5Lit5bCP6Ku45Zu95a62IDwgY2hvdXNob3VzaG9rb2trYVwgOwor5LiN5bmz562J5p2h57SEIDwgZnVieW91ZG91am91eWFrdVwgOwor55u05oiq57Ch5piOIDwgY2hva3VzZXRzdWthbm1laVwgOwor6buE6YGT5ZCJ5pelIDwga291ZG91a2ljaGluaWNoaVwgOwor5pyA5L2O6LOD6YeR5Yi2IDwgc2FpdGVpY2hpbmdpbnNlaVwgOwor5bid5Zu95Li7576p55qEIDwgdGVpa29rdXNodWdpdGVraVwgOwor5LiA6Kem5Y2z55m6IDwgaXNzaG9rdXNva3VoYXRzdVwgOwor5Y2z5pel6ZaL56WoIDwgc29rdWppdHN1a2FpaHlvdVwgOwor5qSN54mp6LOqIDwgc2hva3VidXRzdXNoaXRzdVwgOwor57SN56iO6YCa55+l5pu4IDwgbm91emVpdHN1dWNoaXNob1wgOwor6Zai56iO5Ymy5b2T5Yi2IDwga2FuemVpd2FyaWF0ZXNlaVwgOwor5a6f6LOq6LOD6YeRIDwgamlzc2hpdHN1Y2hpbmdpblwgOwor5bGF5L2P6Ki85piO5pu4IDwga3lvanV1c2hvdW1laXNob1wgOwor5aSn5L2/57Sa5Lya6KuHIDwgdGFpc2hpa3l1dWthaWRhblwgOwor5pWZ6aSK5bCP6KqsIDwga3lvdXlvdXNob3VzZXRzdVwgOwor5rCR5Li75rS75YuV5a62IDwgbWluc2h1a2F0c3Vkb3VrYVwgOwor5a6i5ZOh56CU56m25ZOhIDwga3lha3Vpbmtlbmt5dXVpblwgOwor5oq96LGh6Iq46KGTIDwgY2h1dXNob3VnZWlqdXRzdVwgOwor55u05o6l5pSv6YWNIDwgY2hva3VzZXRzdXNoaWhhaVwgOwor55Kw5aKD5L+d6K235Li7576pIDwga2Fua3lvdWhvZ29zaHVnaVwgOwor5LiW55WM6LK/5piT5qmf6ZaiIDwgc2VrYWlib3Vla2lraWthblwgOwor5pSv5oyB5Yqb5L+C5pWwIDwgc2hpamlyeW9rdWtlaXN1dVwgOwor55u05LiL5Z6L5Zyw6ZyHIDwgY2hva2thZ2F0YWppc2hpblwgOwor5pyq6Kej5rG65ZWP6aGMIDwgbWlrYWlrZXRzdW1vbmRhaVwgOwor5bu656+J5Z+65rqW5rOVIDwga2VuY2hpa3VraWp1bmhvdVwgOwor54Sh5b2i5Zu65a6a6LOH55SjIDwgbXVrZWlrb3RlaXNoaXNhblwgOwor55+l55qE5omA5pyJ5qipIDwgY2hpdGVraXNob3l1dWtlblwgOwor6IG35qWt5a6J5a6a5omAIDwgc2hva3VneW91YW50ZWlqb1wgOwor5YWx55Sj5YWa57Sw6IOeIDwga3lvdXNhbnRvdXNhaWJvdVwgOwor5LiA5bm055Sf6I2J5pysIDwgaWNoaW5lbnNlaXNvdWhvblwgOwor5p2h57SE5Yqg55uf5Zu9IDwgam91eWFrdWthbWVpa29rdVwgOwor56uL5q2j5L285oiQ5LyaIDwgcmlzc2hvdWtvdXNlaWthaVwgOwor6ZuG5Zuj5bCx6IG3IDwgc2h1dWRhbnNodXVzaG9rdVwgOwor5YWx6Kaz56aP6Z+z5pu4IDwga3lvdWthbmZ1a3VpbnNob1wgOwor5rC055Sf5qSN54mpIDwgc3Vpc2Vpc2hva3VidXRzdVwgOwor5a6/55u05a6kIDwgc2h1a3VjaG9rdXNoaXRzdVwgOwor6auY5omA5oGQ5oCW55eHIDwga291c2hva3lvdWZ1c2hvdVwgOwor5paw6IGe6LKp5aOy5bqXIDwgc2hpbmJ1bmhhbmJhaXRlblwgOwor6L6y5p6X5rC055Sj55yBIDwgbm91cmluc3Vpc2Fuc2hvdVwgOwor5LqM6ICF6YG45LiA5rOVIDwgbmlzaGFzZW4nJ2l0c3Vob3VcIDsKK+Wig+eVjOWApOWVj+mhjCA8IGt5b3VrYWljaGltb25kYWlcIDsKK+ekvuS8muS6uumHjueQgyA8IHNoYWthaWppbicneWFreXV1XCA7Civogbfli5nos6rllY8gPCBzaG9rdW11c2hpdHN1bW9uXCA7Civkub7nlJ/mpI3niakgPCBrYW5zZWlzaG9rdWJ1dHN1XCA7Civoj5zpo5/kuLvnvqnogIUgPCBzYWlzaG9rdXNodWdpc2hhXCA7Civlrr/ms4roqK3lgpkgPCBzaHVrdWhha3VzZXRzdWJpXCA7Civlm73nq4vlpKflraYgPCBrb2t1cml0c3VkYWlnYWt1XCA7CivkuIDoqIDkuozoqIAgPCBoaXRva290b2Z1dGFrb3RvXCA7Civou43nlKPopIflkIjkvZMgPCBndW5zYW5mdWt1Z291dGFpXCA7Civnsr7npZ7ljLvlrabogIUgPCBzZWlzaGluJydpZ2FrdXNoYVwgOwor57WM5riI5LyB55S75bqBIDwga2VpemFpa2lrYWt1Y2hvdVwgOwor5YWI56uv5pSv5oyB5YqbIDwgc2VudGFuc2hpamlyeW9rdVwgOwor5L+d5YGl54mp55CG5a2mIDwgaG9rZW5idXRzdXJpZ2FrdVwgOwor5q2j6Z2i6KGd56qBIDwgc2hvdW1lbnNob3V0b3RzdVwgOwor5YiG6Kej6JK45rqc5rOVIDwgYnVua2Fpam91cnl1dWhvdVwgOwor6KiI6YeP6KiA6Kqe5a2mIDwga2VpcnlvdWdlbmdvZ2FrdVwgOwor5Zyw5Z+f5oyv6IiI5Yi4IDwgY2hpaWtpc2hpbmtvdWtlblwgOwor5oCl6YCy5Li7576p6ICFIDwga3l1dXNoaW5zaHVnaXNoYVwgOwor5LiA5pel5Y2D56eLIDwgaWNoaW5pY2hpc2Vuc2h1dVwgOwor5Lqk6YCa6YGL6Ly45qWtIDwga291dHN1dXVuJyd5dWd5b3VcIDsKK+WVhualreebrueahCA8IHNob3VneW91bW9rdXRla2lcIDsKK+eEoeWItumZkOS+m+e1piA8IG11c2VpZ2Vua3lvdWt5dXVcIDsKK+e1puS4juaJgOW+l+iAhSA8IGt5dXV5b3Nob3Rva3VzaGFcIDsKK+aIpumXmOeIhuaSg+apnyA8IHNlbnRvdWJha3VnZWtpa2lcIDsKK+ikh+W8j+Wtpue0miA8IGZ1a3VzaGlraWdha2t5dXVcIDsKK+ael+alreippumok+WgtCA8IHJpbmd5b3VzaGlrZW5qb3VcIDsKK+WNkualreiovOabuCA8IHNvdHN1Z3lvdXNob3VzaG9cIDsKK+aTsuW8vueZuuWwhOetkiA8IHRla2lkYW5oYXNzaGF0b3VcIDsKK+eUo+i7jeikh+WQiOS9kyA8IHNhbmd1bmZ1a3Vnb3V0YWlcIDsKK+acgOWkp+WFrOe0hOaVsCA8IHNhaWRhaWtvdXlha3VzdXVcIDsKK+WbveWGhea2iOiyu+eojiA8IGtva3VuYWlzaG91aGl6ZWlcIDsKK+WwkeW5tOWvqeWIpOaJgCA8IHNob3VuZW5zaGlucGFuam9cIDsKK+eEvOiCieWumumjnyA8IHlha2luaWt1dGVpc2hva3VcIDsKK+a1geihjOaAp+iCneeCjiA8IHJ5dXVrb3VzZWlrYW4nJ2VuXCA7CivooajpnaLlvLXlipsgPCBoeW91bWVuY2hvdXJ5b2t1XCA7Civmupbmupbmsbrli53miKYgPCBqdW5qdW5rZXNzaG91c2VuXCA7CivkuI3lrozlhajnh4PnhLwgPCBmdWthbnplbicnbmVuc2hvdVwgOwor5Y6f5a2Q5Yqb5pmC5LujIDwgZ2Vuc2hpcnlva3VqaWRhaVwgOwor6L6y5qWt6Kmm6aiT5aC0IDwgbm91Z3lvdXNoaWtlbmpvdVwgOwor6auY6YCf5bqm5pKu5b2xIDwga291c29rdWRvc2F0c3VlaVwgOwor54m55Yil55Wq57WEIDwgdG9rdWJldHN1YmFuZ3VtaVwgOwor5a2m57+S6IO95YqbIDwgZ2FrdXNodXVub3VyeW9rdVwgOwor5aW95rCX5oCn55Sf54mpIDwga291a2lzZWlzZWlidXRzdVwgOwor5a625bqt5YaF5pq05YqbIDwga2F0ZWluYWlib3VyeW9rdVwgOwor5L+h55So5Y+W5byVIDwgc2hpbicneW91dG9yaWhpa2lcIDsKK+mfs+WjsOWkmumHjeaUvumAgSA8IG9uc2VpdGFqdXVob3Vzb3VcIDsKK+mrmOihgOWcp+eXhyA8IGtvdWtldHN1YXRzdXNob3VcIDsKK+WcqOexjeWwguW+k+iAhSA8IHphaXNla2lzZW5qdXVzaGFcIDsKK+S4gOWPo+ipsSA8IGhpdG9rdWNoaWJhbmFzaGlcIDsKK+WumOiyu+eVmeWtpueUnyA8IGthbnBpcnl1dWdha3VzZWlcIDsKK+WNl+WMl+acneaZguS7oyA8IG5hbmJva3VjaG91amlkYWlcIDsKK+atu+S6oeiouuaWreabuCA8IHNoaWJvdXNoaW5kYW5zaG9cIDsKK+W8pualveWbm+mHjeWljyA8IGdlbmdha3VzaGlqdXVzb3VcIDsKK+S7suijgeijgeWIpOaJgCA8IGNodXVzYWlzYWliYW5zaG9cIDsKK+eQhuirlueJqeeQhuWtpiA8IHJpcm9uYnV0c3VyaWdha3VcIDsKK+WFqOiIrOWJjeWTqOe3miA8IHplbnBhbnplbnNob3VzZW5cIDsKK+etjeeUn+a0uyA8IHRha2Vub2tvc2Vpa2F0c3VcIDsKK+WNgeS6jOaMh+iFuOiZqyA8IGp1dW5pc2hpY2hvdWNodXVcIDsKK+S4reW/g+S6uueJqSA8IGNodXVzaGluamluYnV0c3VcIDsKK+Wcn+acqOW3peWtpuiAhSA8IGRvYm9rdWtvdWdha3VzaGFcIDsKK+mjn+aWmeWTgeWVhiA8IHNob2t1cnlvdWhpbnNob3VcIDsKK+aXpeS4remfk+e1seWQiCA8IG5pdGNodXVrYW50b3Vnb3VcIDsKK+aLoeW8teWAjeeyvuW6piA8IGtha3VjaG91YmFpc2VpZG9cIDsKK+WKtOWDjeWPjuWuueaJgCA8IHJvdWRvdXNodXV5b3VzaG9cIDsKK+i2heePvuWun+eahCA8IGNob3VnZW5qaXRzdXRla2lcIDsKK+WNs+i6q+aIkOS7jyA8IHNva3VzaGluam91YnV0c3VcIDsKK+WbveWkluiEseWHuiA8IGtva3VnYWlkYXNzaHV0c3VcIDsKK+eEoeedgOmZuOmjm+ihjCA8IG11Y2hha3VyaWt1aGlrb3VcIDsKK+aXpeS7mOWkieabtOe3miA8IGhpZHp1a2VoZW5rb3VzZW5cIDsKK+ebtOaOpeWbnuetlCA8IGNob2t1c2V0c3VrYWl0b3VcIDsKK+W9k+S6i+iAheiDveWKmyA8IHRvdWppc2hhbm91cnlva3VcIDsKK+iEs+aAp+Wwj+WFkOm6u+eXuiA8IG5vdXNlaXNob3VuaW1haGlcIDsKK+WFiOeJqeWPluW8lSA8IHNha2ltb25vdG9yaWhpa2lcIDsKK+Wkp+adseS6nOWFseaghOWcjyA8IGRhaXRvdWFreW91ZWlrZW5cIDsKK+attOWPsuWwj+iqrCA8IHJla2lzaGlzaG91c2V0c3VcIDsKK+eFruayuOa2iOavkiA8IHNoYWZ1dHN1c2hvdWRva3VcIDsKK+a1t+WklumAsuWHuiA8IGthaWdhaXNoaW5zaHV0c3VcIDsKK+awtOWKm+eZuumbuyA8IHN1aXJ5b2t1aGF0c3VkZW5cIDsKK+aQjeebiuioiOeul+abuCA8IHNvbicnZWtpa2Vpc2Fuc2hvXCA7CivlsI/lo7LniankvqHmjIfmlbAgPCBrb3VyaWJ1a2thc2hpc3V1XCA7CivmgKXooYzlgZzou4rpp4UgPCBreXV1a291dGVpc2hhZWtpXCA7Civlj43mpI3msJHkuLvnvqkgPCBoYW5zaG9rdW1pbnNodWdpXCA7CivmpbXkvY7muKnnp5HlraYgPCBreW9rdXRlaW9ua2FnYWt1XCA7Civoh6rnlLHkuLvnvqnntYzmuIggPCBqaXl1dXNodWdpa2VpemFpXCA7CivlhpnnnJ/mnJvpgaDpj6EgPCBzaGFzaGluYm91ZW5reW91XCA7CivlvaLos6rlsI7lhaUgPCBrZWlzaGl0c3Vkb3VueXV1XCA7Civlppnms5Xok67oj6/ntYwgPCBteW91aG91cmVuZ2VreW91XCA7Civlrp/nlKjkuLvnvqnogIUgPCBqaXRzdXlvdXNodWdpc2hhXCA7CivlvozmlrnpgKPntaHnt5ogPCBrb3Vob3VyZW5yYWt1c2VuXCA7Civlrp/pqJPlv4PnkIblraYgPCBqaWtrZW5zaGlucmlnYWt1XCA7CivlpJzplpPpoJDph5HjgIXluqsgPCB5YWthbicneW9raW5raW5rb1wgOwor55u05o6l6Zai5L+CIDwgY2hva3VzZXRzdWthbmtlaVwgOwor5oyv5pu/5LyR5pelIDwgZnVyaWthZWt5dXVqaXRzdVwgOwor6YCj6YKm5rqW5YKZ5Yi25bqmIDwgcmVucG91anVuYmlzZWlkb1wgOwor6YO15L6/5bCP5YyFIDwgeXV1Ymlua29kenV0c3VtaVwgOwor5LiN5rOV5YWl5Zu96ICFIDwgZnVob3VueXV1a29rdXNoYVwgOwor5Y2Y5LiA56We5pWZIDwgdGFuJydpdHN1c2hpbmt5b3VcIDsKK+iZmuW8seS9k+izqiA8IGt5b2pha3V0YWlzaGl0c3VcIDsKK+WkmuWFg+aWueeoi+W8jyA8IHRhZ2VuaG91dGVpc2hpa2lcIDsKK+WbveWGhee3j+eUn+eUoyA8IGtva3VuYWlzb3VzZWlzYW5cIDsKK+iEiue0ouWLleeJqSA8IHNla2lzYWt1ZG91YnV0c3VcIDsKK+atpuWKm+ihneeqgSA8IGJ1cnlva3VzaG91dG90c3VcIDsKK+eGseaguOWPjeW/nCA8IG5ldHN1a2FrdWhhbicnbm91XCA7CivpiYTpgZPlhazlronlrpggPCB0ZXRzdWRvdWtvdWFua2FuXCA7CivnqK7lrZDmpI3niakgPCBzaHVzaGlzaG9rdWJ1dHN1XCA7CivlubPlj7Dlnovosqjou4ogPCBoaXJhZGFpZ2F0YWthc2hhXCA7Civkurrnp7Dku6PlkI3oqZ4gPCBuaW5zaG91ZGFpbWVpc2hpXCA7Civlrp/mpa3kuYvml6XmnKwgPCBqaXRzdWd5b3Vub25paG9uXCA7CivnqY3lsaTkub7pm7vmsaAgPCBzZWtpc291a2FuZGVuY2hpXCA7CivooYzmlL/nrqHnkIbluoEgPCBneW91c2Vpa2FucmljaG91XCA7CivotaTljYHlrZfmnaHntIQgPCBzZWtpanV1amlqb3V5YWt1XCA7CivlhYnlrabpoZXlvq7pj6EgPCBrb3VnYWt1a2VuYmlreW91XCA7CivotoXpgY7li6Tli5nmiYvlvZMgPCBjaG91a2FraW5tdXRlYXRlXCA7Civkuojlgpnlo6vlrpjlrabmoKEgPCB5b2Jpc2hpa2FuZ2Fra291XCA7CivlvLfliLblj47lrrnmiYAgPCBreW91c2Vpc2h1dXlvdWpvXCA7Civniq/nvarlv4PnkIblraYgPCBoYW56YWlzaGlucmlnYWt1XCA7CivpgKPpgqbmjZzmn7vlsYAgPCByZW5wb3Vzb3VzYWt5b2t1XCA7CivlpKfpmbjnp7vli5XoqqwgPCB0YWlyaWt1aWRvdXNldHN1XCA7Civnm7TmjqXooYzli5UgPCBjaG9rdXNldHN1a291ZG91XCA7CivkvIHmpa3lhoXmlZnogrIgPCBraWd5b3VuYWlreW91aWt1XCA7CivmsYLogbfluoPlkYogPCBreXV1c2hva3Vrb3Vrb2t1XCA7Civlrp/oqLzlk7LlraYgPCBqaXNzaG91dGV0c3VnYWt1XCA7CivoirHlq4HoirHlqb8gPCBoYW5heW9tZWhhbmFtdWtvXCA7CivnlLvlg4/lh6bnkIboo4Xnva4gPCBnYXpvdXNob3Jpc291Y2hpXCA7CivnqpLntKDphbjljJbniakgPCBjaGlzc29zYW5rYWJ1dHN1XCA7CivluJ3njovliIfplovooZMgPCB0ZWlvdXNla2thaWp1dHN1XCA7Civlha3ljYHlm5vliIbpn7PnrKYgPCByb2t1anV1c2hpYnVvbnB1XCA7CivmmKXmqZ/nmbrli5XmnJ8gPCBzaHVua2loYXRzdWRvdWtpXCA7CivlpKflkI3ooYzliJcgPCBkYWlteW91Z3lvdXJldHN1XCA7Civpq5jlsbHmpI3niakgPCBrb3V6YW5zaG9rdWJ1dHN1XCA7CivmlL7lsITmgKflkIzkvY3kvZMgPCBob3VzaGFzZWlkb3VpdGFpXCA7CivlpKnluZXoo73pgKDkurogPCB0ZW5tYWt1c2Vpem91bmluXCA7CivmnIDlhKrnp4DpgbjmiYsgPCBzYWl5dXVzaHV1c2Vuc2h1XCA7CivnibnliKXmlpnph5EgPCB0b2t1YmV0c3VyeW91a2luXCA7Civli53liKnlj4jli53liKkgPCBzaG91cmltYXRhc2hvdXJpXCA7CivlpbPmtYHmloflrabogIUgPCBqb3J5dXVidW5nYWt1c2hhXCA7CivkuK3plpPlsI/oqqwgPCBjaHV1a2Fuc2hvdXNldHN1XCA7CivogJDkuYXmtojosrvosqEgPCB0YWlreXV1c2hvdWhpemFpXCA7CivpnZ7lhazlvI/ljZTorbAgPCBoaWtvdXNoaWtpa3lvdWdpXCA7CivnlJ/nianmv4PnuK4gPCBzZWlidXRzdW5vdXNodWt1XCA7CivlhaXlipvkv6Hlj7cgPCBueXV1cnlva3VzaGluZ291XCA7CivnqbrmuK/kvb/nlKjmlpkgPCBrdXVrb3VzaGl5b3VyeW91XCA7CivlvavliLvlrqTluqcgPCBjaG91a29rdXNoaXRzdXphXCA7CivnorrnjofmqJnmnKwgPCBrYWt1cml0c3VoeW91aG9uXCA7CivnhKHph43lipvnirbmhYsgPCBtdWp1dXJ5b2t1am91dGFpXCA7CivlpKnnhafnmoflpKfnpZ4gPCB0ZW5zaG91a291ZGFpamluXCA7Civlt57nq4vlpKflraYgPCBzaHV1cml0c3VkYWlnYWt1XCA7Civnsr7npZ7lronlrprliaQgPCBzZWlzaGluJydhbnRlaXphaVwgOwor6YW45oCn6YW45YyW54mpIDwgc2Fuc2Vpc2Fua2FidXRzdVwgOwor5YaZ5a6f5Li7576p6ICFIDwgc2hhaml0c3VzaHVnaXNoYVwgOwor5Ya35oim5Z6L5oCd6ICDIDwgcmVpc2VuZ2F0YXNoaWtvdVwgOwor5Lqc54ax5biv6auY5rCX5ZynIDwgYW5ldHRhaWtvdWtpYXRzdVwgOwor5aSa6IKJ5qSN54mpIDwgdGFuaWt1c2hva3VidXRzdVwgOwor6Zu75a2Q5bel5qWt5LyaIDwgZGVuc2hpa291Z3lvdWthaVwgOwor6Zu75a2Q5bel5a2m6ICFIDwgZGVuc2hpa291Z2FrdXNoYVwgOwor6K2y5rih5Lq6IDwgeXV6dXJpd2F0YXNoaW5pblwgOwor54ax5Lyd5bCO546HIDwgbmV0c3VkZW5kb3VyaXRzdVwgOwor5rCR5Li75YWx5ZKM5Zu9IDwgbWluc2h1a3lvdXdha29rdVwgOwor56OB5rCX5YWx6bO055S75YOPIDwgamlraWt5b3VtZWlnYXpvdVwgOwor54us56uL6KiY5b+15pelIDwgZG9rdXJpdHN1a2luZW5iaVwgOwor5YyW5a2m6Kq/5ZGz5paZIDwga2FnYWt1Y2hvdW1pcnlvdVwgOwor5qSN54mp5Lq66ZaTIDwgc2hva3VidXRzdW5pbmdlblwgOwor6bOl542j5L+d6K235Yy65Z+fIDwgY2hvdWp1dWhvZ29rdWlraVwgOwor57WC6Lqr6ZuH55So5Yi2IDwgc2h1dXNoaW5rb3lvdXNlaVwgOwor5LiN5a6a5pa556iL5byPIDwgZnV0ZWlob3V0ZWlzaGlraVwgOwor54mp54mp5Lqk5o+bIDwgYnV0c3VidXRzdWtvdWthblwgOwor5a6f5Yqb6KGM5L2/IDwgaml0c3VyeW9rdWtvdXNoaVwgOwor5Z6L5byP6Ki85piOIDwga2F0YXNoaWtpc2hvdW1laVwgOwor6YCj5Yud6KSH5byPIDwgcmVuc2hvdWZ1a3VzaGlraVwgOwor5aSn5L+u6YGT6Zmi6ZW3IDwgZGFpc2h1dWRvdWluY2hvdVwgOwor55u05o6l5Y2U6K2wIDwgY2hva3VzZXRzdWt5b3VnaVwgOwor572q6Zqc5raI5ruFIDwgemFpc2hvdXNob3VtZXRzdVwgOwor5pmp55Sf5qSN54mpIDwgYmFuc2Vpc2hva3VidXRzdVwgOwor5r2c5Zyo5aSx5qWtIDwgc2VuemFpc2hpdHN1Z3lvdVwgOwor5riv5rm+6YGL6YCB5qWtIDwga291d2FuJyd1bnNvdWd5b3VcIDsKK+WRqOazouaVsOWkieiqvyA8IHNodXVoYXN1dWhlbmNob3VcIDsKK+S5vueHpeWcsOi+sualrSA8IGthbnNvdWNoaW5vdWd5b3VcIDsKK+eSsOWig+mFjeaFruabuCA8IGthbmt5b3VoYWlyeW9zaG9cIDsKK+ebtOaOpeavlOi8gyA8IGNob2t1c2V0c3VoaWtha3VcIDsKK+WbuuS9k+eJqeeQhuWtpiA8IGtvdGFpYnV0c3VyaWdha3VcIDsKK+aguOaKkeatouWKmyA8IGtha3V5b2t1c2hpcnlva3VcIDsKK+Wbvemam+aPtOWKqeapn+mWoiA8IGtva3VzYWllbmpva2lrYW5cIDsKK+e1hOe5lOWKtOWDjeiAhSA8IHNvc2hpa2lyb3Vkb3VzaGFcIDsKK+WWtualreWgseWRiuabuCA8IGVpZ3lvdWhvdWtva3VzaG9cIDsKK+S4h+eJqea1gei7oiA8IGJhbmJ1dHN1cnl1dXRlblwgOwor6Luf5byP5bqt55CDIDwgbmFuc2hpa2l0ZWlreXV1XCA7CivluoPlkYrku6PnkIblupcgPCBrb3Vrb2t1ZGFpcml0ZW5cIDsKK+S/rumBk+eUn+a0uyA8IHNodXVkb3VzZWlrYXRzdVwgOwor5oim5pmC5Zu96Zqb5rOVIDwgc2Vuamlrb2t1c2FpaG91XCA7Civnp5jlr4borablr58gPCBoaW1pdHN1a2Vpc2F0c3VcIDsKK+azleS6uuagquS4uyA8IGhvdWppbmthYnVudXNoaVwgOwor5YaF5bmV6KmxIDwgdWNoaW1ha3ViYW5hc2hpXCA7CivplpPmjqXnhafmmI4gPCBrYW5zZXRzdXNob3VtZWlcIDsKK+e0m+mqqOeglei6qyA8IGZ1bmtvdHN1c2Fpc2hpblwgOwor5Lih5qOy5YuV54mpIDwgcnlvdXNlaWRvdWJ1dHN1XCA7CivlpJrpoY3ntI3nqI7ogIUgPCB0YWdha3Vub3V6ZWlzaGFcIDsKK+WkquWFg+W4peWmmeeOiyA8IGRhaWdlbnN1aW15b3VvdVwgOwor6ZuG57SE6L6y5qWtIDwgc2h1dXlha3Vub3VneW91XCA7Civlu4Pnlr7mnaHku7YgPCBoYWlzaGl0c3Vqb3VrZW5cIDsKK+iDveeOh+izg+mHkSA8IG5vdXJpdHN1Y2hpbmdpblwgOwor5Lit6YOo5aSq5bmz5rSLIDwgY2h1dWJ1dGFpaGVpeW91XCA7CivkvIHmpa3lhoXntYTlkIggPCBraWd5b3VuYWlrdW1pYWlcIDsKK+WNmOWIgOebtOWFpSA8IHRhbnRvdWNob2t1bnl1dVwgOwor5aSq5bmz5rSL5oim5LqJIDwgdGFpaGVpeW91c2Vuc291XCA7CivkuInmloflsI/oqqwgPCBzYW5tb25zaG91c2V0c3VcIDsKK+eti+iCieazqOWwhCA8IGtpbicnbmlrdWNodXVzaGFcIDsKK+Wbm+mAmuWFq+mBlCA8IHNoaXRzdXVoYXR0YXRzdVwgOwor6YCj5biv5L+d6Ki85Lq6IDwgcmVudGFpaG9zaG91bmluXCA7Civou43lm73kuLvnvqnogIUgPCBndW5rb2t1c2h1Z2lzaGFcIDsKK+WJsuWil+mBi+izgyA8IHdhcmltYXNoaXVuY2hpblwgOwor5Y2X5qW16Kaz5risIDwgbmFua3lva3VrYW5zb2t1XCA7CivkuIDnm67nnq3nhLYgPCBpY2hpbW9rdXJ5b3V6ZW5cIDsKK+e0oOS6uuS4i+WuvyA8IHNoaXJvdXRvZ2VzaHVrdVwgOwor5a2m5qCh57Wm6aOfIDwgZ2Fra291a3l1dXNob2t1XCA7Civlj43luJ3lm73kuLvnvqkgPCBoYW50ZWlrb2t1c2h1Z2lcIDsKK+mWk+aOpeaSruW9sSA8IGthbnNldHN1c2F0c3VlaVwgOwor5Lya56S+5pu055Sf5rOVIDwga2Fpc2hha291c2VpaG91XCA7Civlm73pgbjlvIHorbfkurogPCBrb2t1c2VuYmVuZ29uaW5cIDsKK+eZveW3neWknOiIuSA8IHNoaXJha2F3YXlvZnVuZVwgOwor6Ieq54S25Zyw55CG5a2mIDwgc2hpemVuY2hpcmlnYWt1XCA7CivlnLDln5/nmoTliIbluIMgPCBjaGlpa2l0ZWtpYnVucHVcIDsKK+eEoeaUv+W6nOS4u+e+qeiAhSA8IG11c2VpZnVzaHVnaXNoYVwgOwor5Ymq5pat5a6J5a6a5oCnIDwgc2VuZGFuJydhbnRlaXNlaVwgOwor54m5562G5aSn5pu4IDwgdG9rdWhpdHN1dGFpc2hvXCA7Civpq5jliIblrZDljJblraYgPCBrb3VidW5zaGlrYWdha3VcIDsKK+aDheWgseWFrOmWi+azlSA8IGpvdWhvdWtvdWthaWhvdVwgOwor5Y+N5bCE5pyb6YGg6Y+hIDwgaGFuc2hhYm91ZW5reW91XCA7Civpo5/lk4Hlt6Xmpa0gPCBzaG9rdWhpbmtvdWd5b3VcIDsKK+ajmOearuWLleeJqSA8IGt5b2t1aGlkb3VidXRzdVwgOwor5oCq5Yqb5Lmx56WeIDwga2Fpcnlva3VyYW5zaGluXCA7CivkurrnlJ/lk7LlraYgPCBqaW5zZWl0ZXRzdWdha3VcIDsKK+eJueWIpeWnlOWToeS8miA8IHRva3ViZXRzdWlpbmthaVwgOwor5YaF6ZyA5Li75bCO5Z6LIDwgbmFpanVzaHVkb3VnYXRhXCA7CivmmbTlpKnkubHmsJfmtYEgPCBzZWl0ZW5yYW5raXJ5dXVcIDsKK+aWsOWpmueUn+a0uyA8IHNoaW5rb25zZWlrYXRzdVwgOwor77yS77yQ77yQ77yQ5bm05ZWP6aGMIDwgbmlzZW4nJ25lbm1vbmRhaVwgOwor5YWs6ZaL5YWl5pytIDwga291a2Fpbnl1dXNhdHN1XCA7Civln7rmnKznmoTkurrmqKkgPCBraWhvbnRla2lqaW5rZW5cIDsKK+agquW8j+W4guWgtCA8IGthYnVzaGlraXNoaWpvdVwgOwor5a2m5qWt5oiQ57i+IDwgZ2FrdWd5b3VzZWlzZWtpXCA7CivmiKbkuonniq/nvarkurogPCBzZW5zb3VoYW56YWluaW5cIDsKK+eJqeizquWQjeipniA8IGJ1c3NoaXRzdW1laXNoaVwgOwor5Y+N5a++6LK/5piT6aKoIDwgaGFudGFpYm91ZWtpZnV1XCA7Civnn63nt6jlsI/oqqwgPCB0YW5wZW5zaG91c2V0c3VcIDsKK+mBk+i3r+S6pOmAmuazlSA8IGRvdXJva291dHN1dWhvdVwgOwor5YWx55Sj5Zu95a626YOhIDwga3lvdXNhbmtva2thZ3VuXCA7CivllYbmpa3mlbDlraYgPCBzaG91Z3lvdXN1dWdha3VcIDsKK+S7ruijheW3oea0i+iJpiA8IGthc291anVuJyd5b3VrYW5cIDsKK+aVmeiCsuWfuuacrOazlSA8IGt5b3Vpa3VraWhvbmhvdVwgOwor55Sf55Sj6ICF5L6h5qC8IDwgc2Vpc2Fuc2hha2FrYWt1XCA7CivmnIDlsI/kuozkuZfms5UgPCBzYWlzaG91bmlqb3Vob3VcIDsKK+iEseWHuumAn+W6piA8IGRhc3NodXRzdXNva3Vkb1wgOwor54m55Yil57eP5LyaIDwgdG9rdWJldHN1c291a2FpXCA7CivnrKzkuIDmpb3nq6AgPCBkYWlpY2hpZ2FrdXNob3VcIDsKK+S4u+W5ueeglOeptuWToSA8IHNodWthbmtlbmt5dXVpblwgOwor5a6Y5YOa5Li7576p6ICFIDwga2FucnlvdXNodWdpc2hhXCA7CivlsI/pgbjmjJnljLrliLYgPCBzaG91c2Vua3lva3VzZWlcIDsKK+e0ouadoemJhOmBkyA8IHNha3Vqb3V0ZXRzdWRvdVwgOwor6LuN6KiY54mp6KqeIDwgZ3Vua2ltb25vZ2F0YXJpXCA7CivljrPmraPkuK3nq4sgPCBnZW5zZWljaHV1cml0c3VcIDsKK+S4gOaXpeS4gOWknCA8IGljaGluaWNoaWljaGl5YVwgOwor6Zmw6Zmw5ruF5ruFIDwgaW4nJ2lubWV0c3VtZXRzdVwgOwor5bCx6IG35rWq5Lq6IDwgc2h1dXNob2t1cm91bmluXCA7Civoh6rou6Lou4rmk43mpa0gPCBqaXRlbnNoYXNvdWd5b3VcIDsKK+e0lOa9lOaVmeiCsiA8IGp1bmtldHN1a3lvdWlrdVwgOwor5LiW55WM5paw6KiY6YyyIDwgc2VrYWlzaGlua2lyb2t1XCA7CivlrpfmlZnmlLnpnakgPCBzaHV1a3lvdWthaWtha3VcIDsKK+WVhuW3peS8muitsOaJgCA8IHNob3Vrb3VrYWlnaXNob1wgOwor5by+5Yq+6KOB5Yik5omAIDwgZGFuZ2Fpc2FpYmFuc2hvXCA7CivmlK/pm6Lmu4Xoo4IgPCBzaGlyaW1ldHN1cmV0c3VcIDsKK+WbveawkeWuv+iIjiA8IGtva3VtaW5zaHVrdXNoYVwgOwor5L+d6K236Zai56iO546HIDwgaG9nb2thbnplaXJpdHN1XCA7Civni6znq4vlrqPoqIAgPCBkb2t1cml0c3VzZW5nZW5cIDsKK+WJr+iFjuearuizqiA8IGZ1a3VqaW5oaXNoaXRzdVwgOwor5Zu95rCR55Sf5rS7IDwga29rdW1pbnNlaWthdHN1XCA7CivnqY3ovInog73lipsgPCBzZWtpc2Fpbm91cnlva3VcIDsKK+WPjuWuueiDveWKmyA8IHNodXV5b3Vub3VyeW9rdVwgOwor6IWw6auY6Zqc5a2QIDwga29zaGlkYWthc2hvdWppXCA7CivlubTpoIPml6XpoIMgPCB0b3NoaWdvcm9oaWdvcm9cIDsKK+mbhuacreS/giA8IHNodXVzYXRzdWdha2FyaVwgOwor5rqW56aB5rK755Sj6ICFIDwganVua2luY2hpc2Fuc2hhXCA7CivorbDpmaLlhoXplqPliLYgPCBnaWluJyduYWlrYWt1c2VpXCA7CivpgJrkv5fmloflraYgPCB0c3V1em9rdWJ1bmdha3VcIDsKK+mHkeanjOmgrSA8IGthbmFkenVjaGlhdGFtYVwgOwor5YSq5YWI5qCq5Li7IDwgeXV1c2Vua2FidW51c2hpXCA7CivlhpnnnJ/muKzph48gPCBzaGFzaGluc29rdXJ5b3VcIDsKK+S8gealreS9k+izqiA8IGtpZ3lvdXRhaXNoaXRzdVwgOwor55Sf5rS75L+d6K235rOVIDwgc2Vpa2F0c3Vob2dvaG91XCA7CivnjKrnqoHnjJvpgLIgPCBjaG90b3RzdW1vdXNoaW5cIDsKK+WFseeUo+S4u+e+qeiAhSA8IGt5b3VzYW5zaHVnaXNoYVwgOwor5q2j5a6J5oGv6aaZ6YW4IDwgc2VpYW5zb2t1a291c2FuXCA7CivlhazlrrPnl4XmgqPogIUgPCBrb3VnYWlieW91a2FuamFcIDsKK+S4lueVjOS/neWBpeapn+mWoiA8IHNla2FpaG9rZW5raWthblwgOwor5a2m55Sf5Ymy5byVIDwgZ2FrdXNlaXdhcmliaWtpXCA7CivosqHmlL/mipXono3os4cgPCB6YWlzZWl0b3V5dXVzaGlcIDsKK+S+oeagvOWcp+WKmyA8IGtha2FrdWF0c3VyeW9rdVwgOwor5riv5rm+5Yq05YON6ICFIDwga291d2Fucm91ZG91c2hhXCA7CivlhoXpmbjmgKfmsJflgJkgPCBuYWlyaWt1c2Vpa2lrb3VcIDsKK+S4reWkruaomea6luaZgiA8IGNodXVvdWh5b3VqdW5qaVwgOwor6KGo54++5b2i5byPIDwgaHlvdWdlbmtlaXNoaWtpXCA7CivmipXlhYnnhafmmI7lmaggPCB0b3Vrb3VzaG91bWVpa2lcIDsKK+WHuumhmOabuOmhniA8IHNodXRzdWdhbnNob3J1aVwgOwor57eP5ZCM55uf57235qWtIDwgc291ZG91bWVpaGlneW91XCA7CivlrpfmlZnmlZnogrIgPCBzaHV1a3lvdWt5b3Vpa3VcIDsKK+S9meijlee2vee2vSA8IHlveXV1c2hha3VzaGFrdVwgOwor55+l55qE6IO95YqbIDwgY2hpdGVraW5vdXJ5b2t1XCA7Civlj43pqqjnsr7npZ4gPCBoYW5rb3RzdXNlaXNoaW5cIDsKK+ato+eiuueIhuaSgyA8IHNlaWtha3ViYWt1Z2VraVwgOwor5pel6Iux6YCa6KizIDwgbmljaGllaXRzdXV5YWt1XCA7CivmnIDpq5joo4HliKTmiYAgPCBzYWlrb3VzYWliYW5zaG9cIDsKK+mjn+eJqee5iue2rSA8IHNob2t1bW90c3VzZW4nJ2lcIDsKK+eul+ihk+e0muaVsCA8IHNhbmp1dHN1a3l1dXN1dVwgOwor5YWl5Yqb6KOF572uIDwgbnl1dXJ5b2t1c291Y2hpXCA7Civogbfmpa3oqJPnt7QgPCBzaG9rdWd5b3VrdW5yZW5cIDsKK+aOouWBteWwj+iqrCA8IHRhbnRlaXNob3VzZXRzdVwgOwor55Sf5rS75Y+N5b+cIDwgc2Vpa2F0c3VoYW4nJ25vdVwgOwor5Za25Zuj5Zyw5LiL6YmEIDwgZWlkYW5jaGlrYXRldHN1XCA7Civmnb7kuIvpm7vlmaggPCBtYXRzdXNoaXRhZGVua2lcIDsKK+efpeitmOmajue0miA8IGNoaXNoaWtpa2Fpa3l1dVwgOwor5qCq5byP5Lya56S+IDwga2FidXNoaWtpZ2Fpc2hhXCA7CivkuIDmmYLpoJDmiYAgPCBpY2hpamlhenVrYXJpam9cIDsKK+mjveWSjOWMluWQiOeJqSA8IGhvdXdha2Fnb3VidXRzdVwgOwor5ouh5aSn6Kej6YeIIDwga2FrdWRhaWthaXNoYWt1XCA7Civph5HlsZ7mjqLnn6XmqZ8gPCBraW56b2t1dGFuY2hpa2lcIDsKK+a1ruWLleWwj+aVsOeCuSA8IGZ1ZG91c2hvdXN1dXRlblwgOwor5ZOB6LOq5L+d6Ki8IDwgaGluc2hpdHN1aG9zaG91XCA7CivoqIDoqp7lv4PnkIblraYgPCBnZW5nb3NoaW5yaWdha3VcIDsKK+S/oeS7sOWRiueZvSA8IHNoaW5rb3Vrb2t1aGFrdVwgOwor5qC854mp6Ie055+lIDwga2FrdWJ1dHN1Y2hpY2hpXCA7CivkuIDlp6vkuozlpKrpg44gPCBpY2hpaGltZW5pdGFyb3VcIDsKK+eVjOmdoua0u+aAp+WJpCA8IGthaW1lbmthc3NlaXphaVwgOwor57Gz56mA6YCa5bizIDwgYmVpa29rdXRzdXVjaG91XCA7CivkurrnlJ/moYjlhoXmrIQgPCBqaW5zZWlhbicnbmFpcmFuXCA7Civlrp/nlKjmlrDmoYggPCBqaXRzdXlvdXNoaW4nJ2FuXCA7Civlv4PouqvpmpzlrrMgPCBzaGluc2hpbnNob3VnYWlcIDsKK+S4gOWIhuS6jOWNgeenkiA8IGlwcHVuJyduaWp1dWJ5b3VcIDsKK+mAn+aIpuWNs+axuiA8IHNva3VzZW5zb2trZXRzdVwgOwor5YyW5a2m5ZC4552AIDwga2FnYWt1a3l1dWNoYWt1XCA7Civlm5vmlrnlsbHoqbEgPCB5b21veWFtYWJhbmFzaGlcIDsKK+eah+WupOWFuOevhCA8IGtvdXNoaXRzdXRlbnBhblwgOwor5Y2X6Zi/5YWx5ZKM5Zu9IDwgbmFuJydha3lvdXdha29rdVwgOwor5LqM5Y2B5Zub5pmC6ZaT5Yi2IDwgbmlqdXV5b2ppa2Fuc2VpXCA7CivnibnliKXlm73kvJogPCB0b2t1YmV0c3Vrb2trYWlcIDsKK+S4gOWdquacrOekviA8IGhpdG90c3Vib2hvbnNoYVwgOwor5pep5Y+j6KiA6JGJIDwgaGF5YWt1Y2hpa290b2JhXCA7Civmt7HlsbHlub3osLcgPCBzaGluemFuJyd5dXVrb2t1XCA7CivpgJrllYbnlKPmpa0gPCB0c3V1c2hvdXNhbmd5b3VcIDsKK+S4u+aIpumXmOaIpui7iiA8IHNodXNlbnRvdXNlbnNoYVwgOwor5bu656+J6Z2i56mNIDwga2VuY2hpa3VtZW5zZWtpXCA7Civmr5TovIPoqIDoqp7lraYgPCBoaWtha3VnZW5nb2dha3VcIDsKK+ebpOaguemMr+evgCA8IGJhbmtvbnNha3VzZXRzdVwgOwor5YaF55qE55Sf5rS7IDwgbmFpdGVraXNlaWthdHN1XCA7CivlhoXmlL/kuI3lubLmuIkgPCBuYWlzZWlmdWthbnNob3VcIDsKK+enmOWvhua8j+a0qSA8IGhpbWl0c3Vyb3VzZXRzdVwgOwor6auY562J6KOB5Yik5omAIDwga291dG91c2FpYmFuc2hvXCA7Civlh7rmnK3mjpsgPCBzaHVzc2F0c3VnYWthcmlcIDsKK+eOieefs+a3t+a3hiA8IGd5b2t1c2VraWtvbmtvdVwgOwor6Zub6ZGR5Yil6ICFIDwgaGluYWthbmJldHN1c2hhXCA7CivntYLouqvlubTph5EgPCBzaHV1c2hpbicnbmVua2luXCA7Civkurrnianlr7jmj48gPCBqaW5idXRzdXN1bmJ5b3VcIDsKK+WVhuWTgeebrumMsiA8IHNob3VoaW5tb2t1cm9rdVwgOwor5aSW6aOf55Sj5qWtIDwgZ2Fpc2hva3VzYW5neW91XCA7Civos4fmupDnr4DntIQgPCBzaGlnZW5zZXRzdXlha3VcIDsKK+eQg+mdouW5vuS9leWtpiA8IGt5dXVtZW5raWthZ2FrdVwgOwor6Z2Z6ISI5rOo5bCEIDwgam91bXlha3VjaHV1c2hhXCA7CivlhpLpmbrlsI/oqqwgPCBib3VrZW5zaG91c2V0c3VcIDsKK+eGseehrOWMlueJqSA8IG5ldHN1a291a2FidXRzdVwgOwor6Zu75a2Q6aGV5b6u6Y+hIDwgZGVuc2hpa2VuYmlreW91XCA7Civlm73mnInpiYTpgZMgPCBrb2t1eXV1dGV0c3Vkb3VcIDsKK+eiuueOh+WkieaVsCA8IGtha3VyaXRzdWhlbnN1dVwgOwor6ZaL55m66KiI55S7IDwga2FpaGF0c3VrZWlrYWt1XCA7CivlirTlg43nlJ/nlKPmgKcgPCByb3Vkb3VzZWlzYW5zZWlcIDsKK+acieWus+eJqeizqiA8IHl1dWdhaWJ1c3NoaXRzdVwgOwor5oOF54q26YWM6YePIDwgam91am91c2hha3VyeW91XCA7CivkvrXnlaXmiKbkuokgPCBzaGlucnlha3VzZW5zb3VcIDsKK+W5s+ihjOWbm+i+uuW9oiA8IGhlaWtvdXNoaWhlbmtlaVwgOwor5YaS6aCt6Zmz6L+wIDwgYm91dG91Y2hpbmp1dHN1XCA7CivnhLzouqvoh6rmrrogPCBzaG91c2hpbmppc2F0c3VcIDsKK+aEn+WCt+S4u+e+qeiAhSA8IGthbnNob3VzaHVnaXNoYVwgOwor5a2m55Sf6Ieq5rK75LyaIDwgZ2FrdXNlaWppY2hpa2FpXCA7CivlpKflronlkInml6UgPCB0YWlhbmtpY2hpbmljaGlcIDsKK+efr+ato+imluWKmyA8IGt5b3VzZWlzaGlyeW9rdVwgOwor5bm06YeR5Y+X57Wm6ICFIDwgbmVua2luanVreXV1c2hhXCA7CivnoJTnqbbplovnmbogPCBrZW5reXV1a2FpaGF0c3VcIDsKK+S4ieaMh+m0jiA8IG1pdHN1eXViaWthbW9tZVwgOwor6KuH5ZCI5YWl5pytIDwgZGFuZ291bnl1dXNhdHN1XCA7CivpnZ7lkIzmnJ/pgJrkv6EgPCBoaWRvdWtpdHN1dXNoaW5cIDsKK+S4ieWNgeW5tOaIpuS6iSA8IHNhbmp1dW5lbnNlbnNvdVwgOwor6ZaJ5omA5oGQ5oCW55eHIDwgaGVpam9reW91ZnVzaG91XCA7Civlj7jms5XnoJTkv67miYAgPCBzaGlob3VrZW5zaHV1am9cIDsKK+mZuOeUn+WLleeJqSA8IHJpa3VzZWlkb3VidXRzdVwgOwor5L2O6YeR5Yip5pS/562WIDwgdGVpa2lucmlzZWlzYWt1XCA7CivnnIvorbflqabppIrmiJDmiYAgPCBrYW5nb2Z1eW91c2Vpam9cIDsKK+WNl+WkquW5s+a0iyA8IG1pbmFtaXRhaWhlaXlvdVwgOwor6bq76Jas5bi455So6ICFIDwgbWF5YWt1am91eW91c2hhXCA7CivlrabnlJ/nlJ/mtLsgPCBnYWt1c2Vpc2Vpa2F0c3VcIDsKK+mVt+i3nembouWIl+i7iiA8IGNob3VreW9yaXJlc3NoYVwgOwor5oey572w5aeU5ZOh5LyaIDwgY2hvdWJhdHN1aWlua2FpXCA7CivvvJHvvJHvvJnnlaogPCBoeWFrdWp1dWt5dXViYW5cIDsKK+acieapn+WMluWQiOeJqSA8IHl1dWtpa2Fnb3VidXRzdVwgOwor57WQ5ZCI57WE57mUIDwga2V0c3Vnb3Vzb3NoaWtpXCA7CivkuI3lvZPlirTlg43ooYzngrogPCBmdXRvdXJvdWRvdWtvdWlcIDsKK+W9q+W/g+mPpOmqqCA8IGNob3VzaGlucnVrb3RzdVwgOwor57iB5pel5ZWG5Lq6IDwgZW4nJ25pY2hpc2hvdW5pblwgOwor5b+D56We6ICX5byxIDwgc2hpbnNoaW5tb3VqYWt1XCA7Civnn63mnJ/osrjku5ggPCB0YW5raWthc2hpdHN1a2VcIDsKK+alveWkqeS4u+e+qeiAhSA8IHJha3V0ZW5zaHVnaXNoYVwgOwor5bem5Lit5ous5bynIDwgaGlkYXJpY2h1dWtha2tvXCA7CivnhKHmnaHku7bpmY3kvI8gPCBtdWpvdWtlbmtvdWZ1a3VcIDsKK+mBi+i7ouWFjeioseiovCA8IHVudGVubWVua3lvc2hvdVwgOwor5qC86ZeY5oim6YOo6ZqKIDwga2FrdXRvdXNlbmJ1dGFpXCA7Civpu5LoibLkurrnqK4gPCBrb2t1c2hva3VqaW5zaHVcIDsKK+WFrOW8j+eZuuihqCA8IGtvdXNoaWtpaGFwcHlvdVwgOwor5bGV56S65Y2z5aOy5LyaIDwgdGVuamlzb2t1YmFpa2FpXCA7Civou43kuovlooPnlYznt5ogPCBndW5qaWt5b3VrYWlzZW5cIDsKK+i7n+mqqOe1hOe5lCA8IG5hbmtvdHN1c29zaGlraVwgOwor6IWw6LWk54eVIDwga29zaGlha2F0c3ViYW1lXCA7CivmtojosrvogIXlm6PkvZMgPCBzaG91aGlzaGFkYW50YWlcIDsKK+WFqOS9k+S4u+e+qeWbvSA8IHplbnRhaXNodWdpa29rdVwgOwor5pif6ZaT54mp6LOqIDwgc2Vpa2FuYnVzc2hpdHN1XCA7CivkuI3lj6/kvrXmnaHntIQgPCBmdWthc2hpbmpvdXlha3VcIDsKK+eUn+a2r+Wtpue/kiA8IHNob3VnYWlnYWt1c2h1dVwgOwor55+l6K2Y6KGo54++IDwgY2hpc2hpa2loeW91Z2VuXCA7CivmupDmsI/nianoqp4gPCBnZW5qaW1vbm9nYXRhcmlcIDsKK+S4g+i7ouWFq+WAkiA8IHNoaWNoaXRlbmJhdHRvdVwgOwor5bqn5bit5oyH5a6a5Yi4IDwgemFzZWtpc2hpdGVpa2VuXCA7Civnmb3oibLkurrnqK4gPCBoYWt1c2hva3VqaW5zaHVcIDsKK+W5s+WutueJqeiqniA8IGhlaWtlbW9ub2dhdGFyaVwgOwor5ouS57W25Y+N5b+cIDwga3lvemV0c3VoYW4nJ25vdVwgOwor5biw5Zu95a2Q5aWz5p6gIDwga2lrb2t1c2hpam93YWt1XCA7CivnibnliKXlvoXpgYcgPCB0b2t1YmV0c3V0YWlndXVcIDsKK+mdkuWkqeeZveaXpSA8IHNlaXRlbmhha3VqaXRzdVwgOwor5aSp572w6Ka/6Z2iIDwgdGVuYmF0c3V0ZWtpbWVuXCA7CivooYDml4/ntZDlqZogPCBrZXRzdXpva3VrZWtrb25cIDsKK+eZuuiJsuePvuWDjyA8IGhhc3Nob2t1Z2Vuc2hvdVwgOwor5YWl5pyt5L6h5qC8IDwgbnl1dXNhdHN1a2FrYWt1XCA7CivpgKPnq4vlhoXplqMgPCByZW5yaXRzdW5haWtha3VcIDsKK+iFueW8j+WRvOWQuCA8IGZ1a3VzaGlraWtva3l1dVwgOwor6YG66KiA6KOc6Laz5pu4IDwgeXVpZ29uaG9zb2t1c2hvXCA7CivkvY7plovnmbrlm70gPCB0ZWlrYWloYXRzdWtva3VcIDsKK+i7veWmmea0kuiEsSA8IGtlaW15b3VzaGFkYXRzdVwgOwor6Yu857Si6YmE6YGTIDwga291c2FrdXRldHN1ZG91XCA7Civngq3pibHlirTlg43ogIUgPCB0YW5rb3Vyb3Vkb3VzaGFcIDsKK+ino+aekOW5vuS9leWtpiA8IGthaXNla2lraWthZ2FrdVwgOwor54++5pyJ5Yui5YqbIDwgZ2VuJyd5dXVzZWlyeW9rdVwgOwor57WM5riI5oCn5ZCR5LiKIDwga2VpemFpc2Vpa291am91XCA7CivpgYrkvJHmlr3oqK0gPCB5dXVreXV1c2hpc2V0c3VcIDsKK+i3s+i6jeaMr+WLlSA8IGNob3V5YWt1c2hpbmRvdVwgOwor5Zyw5LiL5qC45a6f6aiTIDwgY2hpa2FrYWt1amlra2VuXCA7Civmr5Tkvovku6PooajliLYgPCBoaXJlaWRhaWh5b3VzZWlcIDsKK+eri+aGsuWQm+S4u+aUvyA8IHJpa2tlbmt1bnNodXNlaVwgOwor6a2a6Zu355m65bCE566hIDwgZ3lvcmFpaGFzc2hha2FuXCA7CivmkI3nm4rliIblspDngrkgPCBzb24nJ2VraWJ1bmtpdGVuXCA7CivnpL7kvJrkv53pmbrluoEgPCBzaGFrYWlob2tlbmNob3VcIDsKK+i2heeEtuWGhemWoyA8IGNob3V6ZW4nJ25haWtha3VcIDsKK+atqeihjOiAheWkqeWbvSA8IGhva291c2hhdGVuZ29rdVwgOwor5a6f5qWt5a2m5qChIDwgaml0c3VneW91Z2Fra291XCA7Civnp4Hnq4vlpKflraYgPCBzaGlyaXRzdWRhaWdha3VcIDsKK+acgOS9juihgOWcpyA8IHNhaXRlaWtldHN1YXRzdVwgOwor5bCK5bGe5q665Lq6IDwgc29uem9rdXNhdHN1amluXCA7Civlm73msJHnmobkv53pmbogPCBrb2t1bWlua2FpaG9rZW5cIDsKK+iouuWvn+WupCA8IHNoaW5zYXRzdXNoaXRzdVwgOwor5Lit56uL5Zyw5bivIDwgY2h1dXJpdHN1Y2hpdGFpXCA7CivkuKHmpbXlnLDmlrkgPCByeW91a3lva3VjaGlob3VcIDsKK+mAo+e2muauuuS6uiA8IHJlbnpva3VzYXRzdWppblwgOwor5Z6C55u05YiG5qWtIDwgc3VpY2hva3VidW5neW91XCA7CivmtJfmv6/nn7PpubggPCBzZW50YWt1c2V0c3VrZW5cIDsKK+mXmOeXheeUn+a0uyA8IHRvdWJ5b3VzZWlrYXRzdVwgOwor5ZCM5paH6YCa6YGUIDwgZG91YnVudHN1dXRhdHN1XCA7Civlhobou6Lmu5HohLEgPCBlbnRlbmthdHN1ZGF0c3VcIDsKK+WNmOe0lOWGjeeUn+eUoyA8IHRhbmp1bnNhaXNlaXNhblwgOwor6KKr6YG45oyZ6LOH5qC8IDwgaGlzZW5reW9zaGlrYWt1XCA7CivnlJ/nianlt6XlraYgPCBzZWlidXRzdWtvdWdha3VcIDsKK+Wfuua6luWkluizg+mHkSA8IGtpanVuZ2FpY2hpbmdpblwgOwor5LiA5b6L5rib5Y+NIDwgaWNoaXJpdHN1Z2VudGFuXCA7Civkurrlk6HnuK7lsJEgPCBqaW4nJ2luc2h1a3VzaG91XCA7CivorZjliKXlipsgPCBzaGlraWJldHN1cnlva3VcIDsKK+eGseW4r+S9juawl+WcpyA8IG5ldHRhaXRlaWtpYXRzdVwgOwor54us56uL5aSJ5pWwIDwgZG9rdXJpdHN1aGVuc3V1XCA7Civkurrlrpros6rllY8gPCBqaW50ZWlzaGl0c3Vtb25cIDsKK+aWsOe0hOiBluabuCA8IHNoaW4nJ3lha3VzZWlzaG9cIDsKK+eUn+auuuS4juWlqiA8IHNlaXNhdHN1eW9kYXRzdVwgOwor56eB6Ieq6LqrIDwgd2F0YWt1c2hpamlzaGluXCA7CivlubPmuIXnm5sgPCB0YWlyYW5va2l5b21vcmlcIDsKK+auv+anmOS7leS6iyA8IHRvbm9zYW1hc2hpZ290b1wgOwor5Y+w5omA55So5ZOBIDwgZGFpZG9rb3JveW91aGluXCA7CivosrTph5HlsZ7ljbggPCBraWtpbnpva3Vvcm9zaGlcIDsKK+S4iuaWuei0heWFrSA8IGthbWlnYXRhemVpcm9rdVwgOwor6KGA5peP6Zai5L+CIDwga2V0c3V6b2t1a2Fua2VpXCA7CivlrZDlrq7lvozlsYggPCBzaGlreXV1a291a3V0c3VcIDsKK+WNl+W+geWMl+S8kCA8IG5hbnNlaWhva3ViYXRzdVwgOwor54++5Zyo5a6M5LqG5pmCIDwgZ2VuemFpa2FucnlvdWppXCA7CivnnJ/lrp/kuIDot68gPCBzaGluaml0c3VpY2hpcm9cIDsKK+eJueWIpemBi+izgyA8IHRva3ViZXRzdXVuY2hpblwgOwor562J6L665LiJ6KeS5b2iIDwgdG91aGVuc2Fua2Fra2VpXCA7Civml6XluLjojLbpo6/kuosgPCBuaWNoaWpvdXNhaGFuamlcIDsKK+mAmuW4uOaIpuWKmyA8IHRzdXVqb3VzZW5yeW9rdVwgOwor6YCj6Y6W54q255CD6I+MIDwgcmVuc2Fqb3VreXV1a2luXCA7CivliKnlrrPlvpflpLEgPCByaWdhaXRva3VzaGl0c3VcIDsKK+a1hemFjOS9juWUsSA8IHNlbnNoYWt1dGVpc2hvdVwgOwor6KO45a2Q5qSN54mpIDwgcmFzaGlzaG9rdWJ1dHN1XCA7CivlgJ/nlKjoqLzmm7ggPCBzaGFrdXlvdXNob3VzaG9cIDsKK+WFseaciee1kOWQiCA8IGt5b3V5dXVrZXRzdWdvdVwgOwor5Y6f54iG54qg54my6ICFIDwgZ2VuYmFrdWdpc2Vpc2hhXCA7Civlm57mipjpoJjln58gPCBrYWlzZXRzdXJ5b3Vpa2lcIDsKK+iBt+alreaEj+itmCA8IHNob2t1Z3lvdWlzaGlraVwgOwor5aSW5Zu95oqV6LOH5a62IDwgZ2Fpa29rdXRvdXNoaWthXCA7CivljZjlvI/lrabntJogPCB0YW5zaGlraWdha2t5dXVcIDsKK+Wtpuihk+mbkeiqjCA8IGdha3VqdXRzdXphc3NoaVwgOwor5YWl5Ye65YqbIDwgbnl1dXNodXRzdXJ5b2t1XCA7CivntJvlpLHlsYogPCBmdW5zaGl0c3V0b2Rva2VcIDsKK+mbu+azouWkqeaWh+WtpiA8IGRlbnBhdGVubW9uZ2FrdVwgOwor5Y2S5qWt6Kmm6aiTIDwgc290c3VneW91c2hpa2VuXCA7CivlhKrmgKflvaLos6ogPCB5dXVzZWlrZWlzaGl0c3VcIDsKK+aIkOmVt+absue3miA8IHNlaWNob3VreW9rdXNlblwgOwor55m+5YWr5Y2B5bqmIDwgaHlha3VoYWNoaWp1dWRvXCA7CivlpKflkozmkqvlrZAgPCB5YW1hdG9uYWRlc2hpa29cIDsKK+WlveiJsuaWh+WtpiA8IGtvdXNob2t1YnVuZ2FrdVwgOwor6ZyK6a2C5raI5ruFIDwgcmVpa29uc2hvdW1ldHN1XCA7CivnibnliKXphY3lvZMgPCB0b2t1YmV0c3VoYWl0b3VcIDsKK+ani+mAoOiogOiqnuWtpiA8IGtvdXpvdWdlbmdvZ2FrdVwgOwor6aKo5Yqb6ZqO57SaIDwgZnV1cnlva3VrYWlreXV1XCA7CivlnLDln5/lhrfmmpbmiL8gPCBjaGlpa2lyZWlkYW5ib3VcIDsKK+a1geS9k+WKm+WtpiA8IHJ5dXV0YWlyaWtpZ2FrdVwgOwor5Lq65bel5ZG85ZC45rOVIDwgamlua291a29reXV1aG91XCA7CivliqPlvLHmhI/orZggPCByZXRzdWpha3Vpc2hpa2lcIDsKK+Wun+iovOS4u+e+qeiAhSA8IGppc3Nob3VzaHVnaXNoYVwgOwor5rGC6IG35L+CIDwga3l1dXNob2t1Z2FrYXJpXCA7CivkuozogqHoho/olqwgPCBmdXRhbWF0YWtvdXlha3VcIDsKK+aUr+aMgeWKm+eQhuirliA8IHNoaWppcnlva3VyaXJvblwgOwor54mp6LOq5Luj6KydIDwgYnVzc2hpdHN1dGFpc2hhXCA7CivnrqHovYTlrpjluoEgPCBrYW5rYXRzdWthbmNob3VcIDsKK+WFrOmWi+iojuirluS8miA8IGtvdWthaXRvdXJvbmthaVwgOwor5L+u5q2j55Sz5ZGKIDwgc2h1dXNlaXNoaW5rb2t1XCA7Civlv4PnkIblsI/oqqwgPCBzaGlucmlzaG91c2V0c3VcIDsKK+edgOmZuOWcsOeCuSA8IGNoYWt1cmlrdWNoaXRlblwgOwor5paH6YOo56eR5a2m55yBIDwgbW9uYnVrYWdha3VzaG91XCA7CivnibnoqLHmmI7ntLDmm7ggPCB0b2treW9tZWlzYWlzaG9cIDsKK+Wun+mok+Wwj+iqrCA8IGppa2tlbnNob3VzZXRzdVwgOwor5Y6f5a2Q54iG55m6IDwgZ2Vuc2hpYmFrdWhhdHN1XCA7CivnqI7liLboqr/mn7vkvJogPCB6ZWlzZWljaG91c2FrYWlcIDsKK+WFpeWKm+aDheWgsSA8IG55dXVyeW9rdWpvdWhvdVwgOwor6YeP5a2Q5Yqb5a2mIDwgcnlvdXNoaXJpa2lnYWt1XCA7CivlparkuInmjK/njosgPCBkYXRzdXNhbnNoaW4nJ291XCA7CivnmbrlsZXpgJTkuIrlm70gPCBoYXR0ZW50b2pvdWtva3VcIDsKK+WFrOWFseWbs+abuOmkqCA8IGtvdWt5b3V0b3Nob2thblwgOwor5bm05pyr6Kq/5pW0IDwgbmVubWF0c3VjaG91c2VpXCA7CivlrabooZPoq5bmlocgPCBnYWt1anV0c3Vyb25idW5cIDsKK+eUn+eJqeWtpuiAhSA8IHNlaWJ1dHN1Z2FrdXNoYVwgOwor5YWt55m+5YWt5Y+3IDwgcm9wcHlha3Vyb2t1Z291XCA7CivmgJ3lvIHlk7LlraYgPCBzaGliZW50ZXRzdWdha3VcIDsKK+WbveWGheimj+agvOWMliA8IGtva3VuYWlraWtha3VrYVwgOwor5Ym156uL6KiY5b+15pelIDwgc291cml0c3VraW5lbmJpXCA7Civph5Hpiq3nmbvpjLLlmaggPCBraW5zZW50b3Vyb2t1a2lcIDsKK+aKl+eUn+eJqeizqiA8IGtvdXNlaWJ1c3NoaXRzdVwgOwor5Yq05YON57WE5ZCI5rOVIDwgcm91ZG91a3VtaWFpaG91XCA7CivntKDlvaLmnZDnlKPmpa0gPCBzb2tlaXphaXNhbmd5b3VcIDsKK+a0u+WLleWGmeecnyA8IGthdHN1ZG91c2hhc2hpblwgOwor5Lqk5o+b6LK/5piT5Yi2IDwga291a2FuYm91ZWtpc2VpXCA7Civnj77lnLDpp5DlnKjlk6EgPCBnZW5jaGljaHV1emFpaW5cIDsKK+acgOWwj+iHquS5l+azlSA8IHNhaXNob3VqaWpvdWhvdVwgOwor5bCP5Z6L5LmX55So6LuKIDwga29nYXRham91eW91c2hhXCA7CivlsZ7mgKflgKTooYzliJcgPCB6b2t1c2VneW91cmV0c3VcIDsKK+a1t+i7jeWFteWtpuagoSA8IGthaWd1bmhlaWdha2tvdVwgOwor57K+56We6JaE5byxIDwgc2Vpc2hpbmhha3VqYWt1XCA7CivlvLfov6voprPlv7UgPCBreW91aGFrdWthbicnbmVuXCA7Civpu4TpgZPljYHkuozlrq4gPCBrb3Vkb3VqdXVuaWt5dXVcIDsKK+iLpuaDheWHpueQhuapn+mWoiA8IGt1am91c2hvcmlraWthblwgOwor6LuN57iu5Y2U5a6aIDwgZ3Vuc2h1a3VreW91dGVpXCA7CivnnYDpmbjlnLDluK8gPCBjaGFrdXJpa3VjaGl0YWlcIDsKK+eCreWhteeIhueZuiA8IHRhbmppbmJha3VoYXRzdVwgOwor6KOc5Yqp6KiY5oa26KOF572uIDwgaG9qb2tpb2t1c291Y2hpXCA7CivnlJ/mtLvnkrDlooMgPCBzZWlrYXRzdWthbmt5b3VcIDsKK+WHuuadpemrmOS7leS6iyA8IGRla2lkYWthc2hpZ290b1wgOwor5oqA6KGT6Z2p5pawIDwgZ2lqdXRzdWtha3VzaGluXCA7Civos4fnlKPosqDlgrXooaggPCBzaGlzYW5mdXNhaWh5b3VcIDsKK+eyn+eykue1kOaguCA8IHpva3VyeXV1a2Vra2FrdVwgOwor54mI5qip5omA5pyJ6ICFIDwgaGFua2Vuc2hveXV1c2hhXCA7Civkv6HlvpLkvJ3li5XogIUgPCBzaGludG9kZW5kb3VzaGFcIDsKK+S7ruWPl+WPluiovCA8IGthcml1a2V0b3Jpc2hvdVwgOwor5paw6IGe6YWN6YGUIDwgc2hpbmJ1bmhhaXRhdHN1XCA7CivljZLmpa3oq5bmlocgPCBzb3RzdWd5b3Vyb25idW5cIDsKK+eZu+mMsuWVhuaomSA8IHRvdXJva3VzaG91aHlvdVwgOwor5L+h55So6YqY5p+EIDwgc2hpbicneW91bWVpZ2FyYVwgOwor5pON5rWE55Gg55KDIDwgYXlhdHN1cmlqb3VydXJpXCA7CivlhbHlkIznlJ/mtLsgPCBreW91ZG91c2Vpa2F0c3VcIDsKK+WumOiDveS4u+e+qeiAhSA8IGthbicnbm91c2h1Z2lzaGFcIDsKK+S8nemBlOeJueaApyA8IGRlbnRhdHN1dG9rdXNlaVwgOwor6YeR5aO655y8IDwga2FuYXRzdWJvbWFuYWtvXCA7Civkv6Hku7DnlJ/mtLsgPCBzaGlua291c2Vpa2F0c3VcIDsKK+mDt+Wcn+Wwj+iqrCA8IGt5b3Vkb3Nob3VzZXRzdVwgOwor6ZuG5Zuj55Sf5rS7IDwgc2h1dWRhbnNlaWthdHN1XCA7CivogZbpnIrpmY3oh6jnpa0gPCBzZWlyZWlrb3VyaW5zYWlcIDsKK+mnkOaXpeWkp+S9vyA8IGNodXVuaWNoaXRhaXNoaVwgOwor5bO25Zu95qC55oCnIDwgc2hpbWFndW5pa29uam91XCA7CivmtYHooYzmgKfohLPngo4gPCByeXV1a291c2Vpbm91ZW5cIDsKK+iomOW/teirluaWh+mbhiA8IGtpbmVucm9uYnVuc2h1dVwgOwor6Ieq5YuV6YCj57WQ5qmfIDwgamlkb3VyZW5rZXRzdWtpXCA7CivlpKfpmbjmgKfmsJflgJkgPCB0YWlyaWt1c2Vpa2lrb3VcIDsKK+W3puWwj+aLrOW8pyA8IGhpZGFyaXNob3VrYWtrb1wgOwor5qC45YW15Zmo5a6f6aiTIDwga2FrdWhlaWtpamlra2VuXCA7CivmsJHml4/lrpfmlZkgPCBtaW56b2t1c2h1dWt5b3VcIDsKK+aXpeS4remfk+i2iiA8IG5pdGNodXVrYW4nJ2V0c3VcIDsKK+iqh+Wkp+WmhOaDs+eLgiA8IGtvZGFpbW91c291a3lvdVwgOwor6buS6Imy54Gr6JasIDwga29rdXNob2t1a2F5YWt1XCA7CivkuIfmnInnpZ7mlZkgPCBiYW4nJ3l1dXNoaW5reW91XCA7CivpoK3ohLPmtYHlh7ogPCB6dW5vdXJ5dXVzaHV0c3VcIDsKK+ebtOaOpeipseazlSA8IGNob2t1c2V0c3V3YWhvdVwgOwor6Lqr5YiG6Ki85piO5pu4IDwgbWlidW5zaG91bWVpc2hvXCA7CivmloflrZflpJrph43mlL7pgIEgPCBtb2ppdGFqdXVob3Vzb3VcIDsKK+WMu+W4q+WbveWutuippumokyA8IGlzaGlrb2trYXNoaWtlblwgOwor5paH5YyW5Lq66aGe5a2mIDwgYnVua2FqaW5ydWlnYWt1XCA7CivlvaLos6rou6Lmj5sgPCBrZWlzaGl0c3V0ZW5rYW5cIDsKK+esrOS4ieasoeeUo+alrSA8IGRhaXNhbmppc2FuZ3lvdVwgOwor5q2j55yf5q2j6YqYIDwgc2hvdXNoaW5zaG91bWVpXCA7CivniIblvL7nmbroqIAgPCBiYWt1ZGFuaGF0c3VnZW5cIDsKK+aWh+WMluWkp+mdqeWRvSA8IGJ1bmthZGFpa2FrdW1laVwgOwor55u056uL5LiN5YuVIDwgY2hva3VyaXRzdWZ1ZG91XCA7CivllYbmpa3pgZPlvrMgPCBzaG91Z3lvdWRvdXRva3VcIDsKK+mZs+WIl+WupCA8IGNoaW5yZXRzdXNoaXRzdVwgOwor54m56Kit5Lya5aC0IDwgdG9rdXNldHN1a2Fpam91XCA7CivpnZ7lsYDmiYDliIblspAgPCBoaWt5b2t1c2hvYnVua2lcIDsKK+aguOeJqeeQhuWtpiA8IGtha3VidXRzdXJpZ2FrdVwgOwor6IKi5L2T5LiN6Ieq55Sx5YWQIDwgc2hpdGFpZnVqaXl1dWppXCA7Civku67lkI3mvKLlrZflpInmj5sgPCBrYW5ha2FuamloZW5rYW5cIDsKK+ebtOeri+eMv+S6uiA8IGNob2t1cml0c3VlbmppblwgOwor6Zai5L+C5Luj5ZCN6KmeIDwga2Fua2VpZGFpbWVpc2hpXCA7CivlpJrlm73nsY3oqIDoqp4gPCB0YWtva3VzZWtpZ2VuZ29cIDsKK+i2hemAo+e1kOWtkCA8IGNob3VyZW5rZXRzdXNoaVwgOwor5rC06YqA5rCX5Zyn6KiIIDwgc3VpZ2lua2lhdHN1a2VpXCA7CivnlLLoq5bkuZnpp4EgPCBrb3Vyb24nJ290c3ViYWt1XCA7CivlhZDnq6Xlv4PnkIblraYgPCBqaWRvdXNoaW5yaWdha3VcIDsKK+eJqeeahOizh+a6kCA8IGJ1dHN1dGVraXNoaWdlblwgOwor55u05o6l5pSv5o+0IDwgY2hva3VzZXRzdXNoaWVuXCA7CivnqbrmtJ7ljJbnj77osaEgPCBrdXVkb3VrYWdlbnNob3VcIDsKK+eEoeeQhuaWueeoi+W8jyA8IG11cmlob3V0ZWlzaGlraVwgOwor5paw5Yi25Lit5a2mIDwgc2hpbnNlaWNodXVnYWt1XCA7CivlnKflipvlm6PkvZMgPCBhdHN1cnlva3VkYW50YWlcIDsKK+a4qeihgOWLleeJqSA8IG9ua2V0c3Vkb3VidXRzdVwgOwor5Lqk5beu5a++56ew5oCnIDwga291c2F0YWlzaG91c2VpXCA7CivkuK3nq4vlirTpgKMgPCBjaHV1cml0c3Vyb3VyZW5cIDsKK+eJueWIpeWupCA8IHRva3ViZXRzdXNoaXRzdVwgOwor56CU56m25rS75YuVIDwga2Vua3l1dWthdHN1ZG91XCA7Civoh6rnhLblk7LlraYgPCBzaGl6ZW50ZXRzdWdha3VcIDsKK+agquS4u+e3j+S8miA8IGthYnVudXNoaXNvdWthaVwgOwor5oCn5qC85Yik5YilIDwgc2Vpa2FrdWhhbmJldHN1XCA7CivllqflmKnkuKHmiJDmlZcgPCBrZW5rYXJ5b3VzZWliYWlcIDsKK+mBjuWkseWCt+WusyA8IGthc2hpdHN1c2hvdWdhaVwgOwor6YCa5L+h5bel5a2mIDwgdHN1dXNoaW5rb3VnYWt1XCA7CivlkIzkuIDkurrniakgPCBkb3VpdHN1amluYnV0c3VcIDsKK+WbveWutuWFrOWLmeWToeazlSA8IGtva2tha291bXVpbmhvdVwgOwor5ZWG5a2m5Y2a5aOrIDwgc2hvdWdha3VoYWt1c2hpXCA7Civlv4PpoK3mu4XljbQgPCBzaGludG91bWVra3lha3VcIDsKK+W8t+ihjOaOoeaxuiA8IGt5b3Vrb3VzYWlrZXRzdVwgOwor6KaW6IG06Kaa5qmf5ZmoIDwgc2hpY2hvdWtha3VraWtpXCA7CivlsLHku7vmvJToqqwgPCBzaHV1bmluJydlbnpldHN1XCA7Civmn5PoibLkvZPnlbDluLggPCBzZW5zaG9rdXRhaWlqb3VcIDsKK+WQjeirluWNk+iqrCA8IG1laXJvbnRha3VzZXRzdVwgOwor5rOo5YWl5pWZ6IKyIDwgY2h1dW55dXVreW91aWt1XCA7CivlkJHnsr7npZ7olqwgPCBrb3VzZWlzaGluJyd5YWt1XCA7CivntZDlqZrpganpvaLmnJ8gPCBrZWtrb250ZWtpcmVpa2lcIDsKK+a8uOi/keeahOiHqueUsSA8IHplbmtpbnRla2lqaXl1dVwgOwor5YiG5YiX6KGM6YCyIDwgYnVucmV0c3Vrb3VzaGluXCA7Civpo5/mlpnlk4HlupcgPCBzaG9rdXJ5b3VoaW50ZW5cIDsKK+aEj+W/l+axuuWumuapn+mWoiA8IGlzaGlrZXR0ZWlraWthblwgOwor5Li76L6e57Sg5oCn5Y6f55CGIDwgc2h1amlzb3NlaWdlbnJpXCA7Civmva7msZDmkanmk6YgPCBjaG91c2VraW1hc2F0c3VcIDsKK+evgOi2s+WLleeJqSA8IHNlc3Nva3Vkb3VidXRzdVwgOwor6aOf54mp6YCj6Y6WIDwgc2hva3Vtb3RzdXJlbnNhXCA7CivkuK3ogonkuK3og4wgPCBjaHV1bmlrdWNodXV6ZWlcIDsKK+ekvuS8muawkeS4u+WFmiA8IHNoYWthaW1pbnNodXRvdVwgOwor6ZuG5Lit5pS75pKDIDwgc2h1dWNodXVrb3VnZWtpXCA7CivnorrlrprliKTmsbogPCBrYWt1dGVpaGFua2V0c3VcIDsKK+WwkeWls+Wwj+iqrCA8IHNob3Vqb3Nob3VzZXRzdVwgOwor56eB6Kit5b+c5o+05ZujIDwgc2hpc2V0c3VvdWVuZGFuXCA7CivljZrlrablipvooYwgPCBoYWt1Z2FrdXJ5b2trb3VcIDsKK+e1jOa4iOWQjOWPi+S8miA8IGtlaXphaWRvdXl1dWthaVwgOwor5Y+N6Ki85Y+v6IO95oCnIDwgaGFuc2hvdWthbm91c2VpXCA7Civlgo3ns7vooYDml48gPCBib3VrZWlrZXRzdXpva3VcIDsKK+S4remWk+WGhemWoyA8IGNodXVrYW4nJ25haWtha3VcIDsKK+WNmOeLrOS+m+e1piA8IHRhbmRva3VreW91a3l1dVwgOwor5pCs6YCB5ZGo5rOi5pWwIDwgaGFuc291c2h1dWhhc3V1XCA7CivlpLHmpa3kv53pmbogPCBzaGl0c3VneW91aG9rZW5cIDsKK+eJueWIpeS8muioiCA8IHRva3ViZXRzdWthaWtlaVwgOwor5oyv5bmF5aSJ6Kq/IDwgc2hpbnB1a3VoZW5jaG91XCA7CivluoPlkYrlj47lhaUgPCBrb3Vrb2t1c2h1dW55dXVcIDsKK+S4reWbveWkp+mZuCA8IGNodXVnb2t1dGFpcmlrdVwgOwor5pyA6auY5oyH5bCO6ICFIDwgc2Fpa291c2hpZG91c2hhXCA7CivmlL7lh7rnianos4cgPCBob3VzaHV0c3VidXNzaGlcIDsKK+mFjemBlOiovOaYjiA8IGhhaXRhdHN1c2hvdW1laVwgOwor5pyA57WC55uu55qEIDwgc2Fpc2h1dW1va3V0ZWtpXCA7CivokaHokITnirbnkIPoj4wgPCBidWRvdWpvdWt5dXVraW5cIDsKK+WFqOe/vOmjm+ihjOapnyA8IHplbicneW9rdWhpa291a2lcIDsKK+S4gOiTruaJmOeUnyA8IGljaGlyZW50YWt1c2hvdVwgOwor6YCf5Yq55oCn6IKl5paZIDwgc29ra291c2VpaGlyeW91XCA7CivkuInop5LmuKzph48gPCBzYW5rYWt1c29rdXJ5b3VcIDsKK+WLleeJqeWtpuiAhSA8IGRvdWJ1dHN1Z2FrdXNoYVwgOwor5YyW5a2m54mp6LOqIDwga2FnYWt1YnVzc2hpdHN1XCA7CivpgYXlirnmgKfogqXmlpkgPCBjaGlrb3VzZWloaXJ5b3VcIDsKK+Wbveeyi+S4u+e+qeiAhSA8IGtva3VzdWlzaHVnaXNoYVwgOwor54ax5Y6f5a2Q5qC4IDwgbmV0c3VnZW5zaGlrYWt1XCA7CivlnLDos6roqr/mn7sgPCBjaGlzaGl0c3VjaG91c2FcIDsKK+aWreW8vuaAp+S/guaVsCA8IGRhbmRhbnNlaWtlaXN1dVwgOwor5q2v5YiX55+v5q2jIDwgc2hpcmV0c3VreW91c2VpXCA7Civlm5vljYHkuIPlo6sgPCBzaGlqdXVzaGljaGlzaGlcIDsKK+S6jOasoeaWueeoi+W8jyA8IG5pamlob3V0ZWlzaGlraVwgOwor5Y2B5pyI6Z2p5ZG9IDwganV1Z2F0c3VrYWt1bWVpXCA7Civlv5znlKjlv4PnkIblraYgPCBvdXlvdXNoaW5yaWdha3VcIDsKK+aWh+izquW9rOW9rCA8IGJ1bnNoaXRzdWhpbnBpblwgOwor57K+56We55Ww5bi46ICFIDwgc2Vpc2hpbicnaWpvdXNoYVwgOwor57Sr5rC05pm2IDwgbXVyYXNha2l6dWlzaG91XCA7Civkv6HoqJflpZHntIQgPCBzaGludGFrdWtlaXlha3VcIDsKK+WHuueUn+W5tOaciOaXpSA8IHNodXNzZWluZW5nYXBwaVwgOwor54us56uL5oim5LqJIDwgZG9rdXJpdHN1c2Vuc291XCA7Civngavlipvnmbrpm7sgPCBrYXJ5b2t1aGF0c3VkZW5cIDsKK+mAn+mBlOmDteS+vyA8IHNva3V0YXRzdXl1dWJpblwgOwor5byB6K235aOr5LqL5YuZ5omAIDwgYmVuZ29zaGlqaW11c2hvXCA7Civlm5vnmb7lm5vnl4UgPCBzaGloeWFrdXNoaWJ5b3VcIDsKK+WLleipnueKtuWQjeipniA8IGRvdXNoaWpvdW1laXNoaVwgOwor5YWD5biz5q6L6auYIDwgbW90b2Nob3V6YW5kYWthXCA7Civoh6rnlLHoo4Hph4/mqKkgPCBqaXl1dXNhaXJ5b3VrZW5cIDsKK+S4reWkrumbhuaoqeWMliA8IGNodXVvdXNodXVrZW5rYVwgOwor54Sh5Yip5oGv6Ki85Yi4IDwgbXVyaXNva3VzaG91a2VuXCA7Civmir3osaHnvo7ooZMgPCBjaHV1c2hvdWJpanV0c3VcIDsKK+eJqeizquaWh+aYjiA8IGJ1c3NoaXRzdWJ1bm1laVwgOwor6LaF54mp55CG5a2mIDwgY2hvdWJ1dHN1cmlnYWt1XCA7Civku4HnvqnnpLzmmbrkv6EgPCBqaW5naXJlaWNoaXNoaW5cIDsKK+abtOW5tOacn+manOWusyA8IGtvdW5lbmtpc2hvdWdhaVwgOwor5Zu96Kqe5a+p6K2w5LyaIDwga29rdWdvc2hpbmdpa2FpXCA7CivlnLDmlrnoo4HliKTmiYAgPCBjaGlob3VzYWliYW5zaG9cIDsKK+mjn+ezp+S4jei2syA8IHNob2t1cnlvdWJ1c29rdVwgOwor5YWs5YWx5pa96KitIDwga291a3lvdXNoaXNldHN1XCA7Civoh6rli5XmlLnmnK3mqZ8gPCBqaWRvdWthaXNhdHN1a2lcIDsKK+WNl+alteadoee0hCA8IG5hbmt5b2t1am91eWFrdVwgOwor5pyq5bCx5a2m5YWQ56ulIDwgbWlzaHV1Z2FrdWppZG91XCA7CivlhbXlipvliYrmuJsgPCBoZWlyeW9rdXNha3VnZW5cIDsKK+WPlue3oOW9uSA8IHRvcmlzaGltYXJpeWFrdVwgOwor5YWs6IG36L+95pS+IDwga291c2hva3V0c3VpaG91XCA7CivlrabooZPlm6PkvZMgPCBnYWt1anV0c3VkYW50YWlcIDsKK+Wun+aZgumWk+WHpueQhiA8IGppdHN1amlrYW5zaG9yaVwgOwor5YWx55Sf55Sf54mpIDwga3lvdXNlaXNlaWJ1dHN1XCA7CivooqvlrZDmpI3niakgPCBoaXNoaXNob2t1YnV0c3VcIDsKK+acieeVnOi+sualrSA8IHl1dWNoaWt1bm91Z3lvdVwgOwor5a+E55Sf5qSN54mpIDwga2lzZWlzaG9rdWJ1dHN1XCA7CivpoJDph5HmupblgpnnjocgPCB5b2tpbmp1bmJpcml0c3VcIDsKK+WkqeS9k+acm+mBoOmPoSA8IHRlbnRhaWJvdWVua3lvdVwgOwor56S+5Lya6Ku456eR5a2mIDwgc2hha2Fpc2hva2FnYWt1XCA7CivmrabkvqDlsI/oqqwgPCBidWt5b3VzaG91c2V0c3VcIDsKK+acqOizque5iue2rSA8IG1va3VzaGl0c3VzZW4nJ2lcIDsKK+ebtOmAmuWIl+i7iiA8IGNob2t1dHN1dXJlc3NoYVwgOwor6Lui572u6KGM5YiXIDwgdGVuY2hpZ3lvdXJldHN1XCA7Civms5Xlvovkuovli5nmiYAgPCBob3VyaXRzdWppbXVzaG9cIDsKK+WHuuWLleWRveS7pCA8IHNodXRzdWRvdW1laXJlaVwgOwor6IiM5YWI5LiJ5a+4IDwgc2hpdGFzYWtpc2FuenVuXCA7CivlpKfooYbpo5/loIIgPCB0YWlzaHV1c2hva3Vkb3VcIDsKK+Wun+WIqeS4u+e+qeiAhSA8IGppdHN1cmlzaHVnaXNoYVwgOwor5YaF6Zaj6Zaj5YOaIDwgbmFpa2FrdWtha3VyeW91XCA7CivmnKrnorroqo3mg4XloLEgPCBtaWtha3VuaW5qb3Vob3VcIDsKK+iAgeS6uuaAp+eXtOWRhiA8IHJvdWppbnNlaWNoaWhvdVwgOwor5Zyo5aSW56CU56m25ZOhIDwgemFpZ2Fpa2Vua3l1dWluXCA7Civkurrlj6PniIbnmbogPCBqaW5rb3ViYWt1aGF0c3VcIDsKK+Wuouims+S4u+e+qeiAhSA8IGt5YWtrYW5zaHVnaXNoYVwgOwor54mH5Y+j6bCvIDwga2F0YWt1Y2hpaXdhc2hpXCA7CivlnKfnuK7lirnnjocgPCBhc3NodWt1a291cml0c3VcIDsKK+Wbveeri+mKgOihjCA8IGtva3VyaXRzdWdpbmtvdVwgOwor5LiA55eF5oGv54G9IDwgaWNoaWJ5b3Vzb2t1c2FpXCA7CivpgbjmiYvmqKnlpKfkvJogPCBzZW5zaHVrZW50YWlrYWlcIDsKK+ato+mHkeWPluW8lSA8IHNob3VraW50b3JpaGlraVwgOwor5rWB6YCa6Z2p5ZG9IDwgcnl1dXRzdXVrYWt1bWVpXCA7CivoirjooZPkvZzlk4EgPCBnZWlqdXRzdXNha3VoaW5cIDsKK+S4i+e0muijgeWIpOaJgCA8IGtha3l1dXNhaWJhbnNob1wgOwor6YCT6ZmN5aSJ5Zyn5ZmoIDwgdGVpa291aGVuYXRzdWtpXCA7CivpmZDnlYzpoZXlvq7pj6EgPCBnZW5rYWlrZW5iaWt5b3VcIDsKK+aWsOiIiOWul+aVmSA8IHNoaW5rb3VzaHV1a3lvdVwgOwor55+l6K2Y5bel5a2mIDwgY2hpc2hpa2lrb3VnYWt1XCA7CivkvZPos6rmlLnlloQgPCB0YWlzaGl0c3VrYWl6ZW5cIDsKK+eJh+WBtOmAmuihjCA8IGthdGFnYXdhdHN1dWtvdVwgOwor5Y2X5qW15aSn6Zm4IDwgbmFua3lva3V0YWlyaWt1XCA7CivoibbnrJHlsI/oqbEgPCBlbnNob3Vrb2JhbmFzaGlcIDsKK+imgeaSg+aIpumXmOapnyA8IHlvdWdla2lzZW50b3VraVwgOwor5ZWG5qWt576O6KGTIDwgc2hvdWd5b3ViaWp1dHN1XCA7CivnpZ7oibLoh6roi6UgPCBzaGluc2hva3VqaWpha3VcIDsKK+awtOmam+S9nOaIpiA8IG1penVnaXdhc2FrdXNlblwgOwor5LiN5YWs5bmz56u25LqJIDwgZnVrb3VoZWlreW91c291XCA7CivniannmoToqLzmi6AgPCBidXRzdXRla2lzaG91a29cIDsKK+WFrOiqjeS8muioiOWjqyA8IGtvdW5pbmthaWtlaXNoaVwgOwor5pON5qWt55+t57iuIDwgc291Z3lvdXRhbnNodWt1XCA7CivkuI3lgJLnv4EgPCBva2lhZ2FyaWtvYm9zaGlcIDsKK+WGheiCoeiGj+iWrCA8IHVjaGltYXRhZ291eWFrdVwgOwor54qv6KGM5aOw5piO5paHIDwgaGFua291c2VpbWVpYnVuXCA7CivmtojosrvogIXkvqHmoLwgPCBzaG91aGlzaGFrYWtha3VcIDsKK+mfs+alveipleirluWutiA8IG9uZ2FrdWh5b3Vyb25rYVwgOwor6Imy5b2p5oSf6KaaIDwgc2hpa2lzYWlrYW5rYWt1XCA7Civlhazlronoqr/mn7vluoEgPCBrb3VhbmNob3VzYWNob3VcIDsKK+S5l+mZjei7iuWEquWFiCA8IGpvdWtvdXNoYXl1dXNlblwgOwor5Lq65bel55SY5ZGz5paZIDwgamlua291a2FubWlyeW91XCA7CivlnKjpg7fou43kurrkvJogPCB6YWlnb3VndW5qaW5rYWlcIDsKK+iHquiomOa5v+W6puioiCA8IGppa2lzaGl0c3Vkb2tlaVwgOwor5aSn57Wx5LiA55CG6KuWIDwgZGFpdG91aXRzdXJpcm9uXCA7CivotoXog73lipvogIUgPCBjaG91bm91cnlva3VzaGFcIDsKK+aknOWumuaVmeenkeabuCA8IGtlbnRlaWt5b3VrYXNob1wgOwor5Yy75a2m5oqA6KGT5aOrIDwgaWdha3VnaWp1dHN1c2hpXCA7CivlpKnnmofoqpXnlJ/ml6UgPCB0ZW4nJ25vdXRhbmpvdWJpXCA7CivlpKrlubPmtIvlnLDln58gPCB0YWloZWl5b3VjaGlpa2lcIDsKK+acqOmjn+S4iuS6uiA8IG1va3VqaWtpc2hvdW5pblwgOwor6Ieq55Sx5Li7576p5Zu95a62IDwgaml5dXVzaHVnaWtva2thXCA7CivpgKPovInlsI/oqqwgPCByZW5zYWlzaG91c2V0c3VcIDsKK+izh+eUo+WGjeipleS+oSA8IHNoaXNhbnNhaWh5b3VrYVwgOwor5oOF57eS6Zqc5a6z5YWQIDwgam91Y2hvc2hvdWdhaWppXCA7Civml6XmnKzlm73mhrLms5UgPCBuaWhvbmtva3VrZW5wb3VcIDsKK+S6uuawkeino+aUvui7jSA8IGppbm1pbmthaWhvdWd1blwgOwor54Sm54ax5Zyw542EIDwgc2hvdW5ldHN1amlnb2t1XCA7CivpqqjnspfprIbnl4cgPCBrb3RzdXNvc2hvdXNob3VcIDsKK+a1gemAmuiovOWIuCA8IHJ5dXV0c3V1c2hvdWtlblwgOwor5beu5byV5YuY5a6aIDwgc2FzaGloaWtpa2Fuam91XCA7CivplovohbnmiYvooZMgPCBrYWlmdWt1c2h1anV0c3VcIDsKK+WNs+aXpeWHuuiNtyA8IHNva3VqaXRzdXNodWtrYVwgOwor57W25a++5ZCb5Li75Yi2IDwgemV0dGFpa3Vuc2h1c2VpXCA7CivmoKrlvI/phY3lvZMgPCBrYWJ1c2hpa2loYWl0b3VcIDsKK+ibjeWFieeJqeizqiA8IGtlaWtvdWJ1c3NoaXRzdVwgOwor6IG06Kaa56We57WMIDwgY2hvdWtha3VzaGlua2VpXCA7Civmh7LmiJLlhY3ogbcgPCBjaG91a2FpbWVuc2hva3VcIDsKK+iKuOihk+aEm+WlveWutiA8IGdlaWp1dHN1YWlrb3VrYVwgOwor56K65a6a55Sz5ZGKIDwga2FrdXRlaXNoaW5rb2t1XCA7Civogbfmpa3ou43kurogPCBzaG9rdWd5b3VndW5qaW5cIDsKK+engeeUn+WFkOWHuueUoyA8IHNoaXNlaWppc2h1c3NhblwgOwor55Sf5ZG957at5oyB6KOF572uIDwgc2VpbWVpaWppc291Y2hpXCA7CivmoKrlvI/lhazplosgPCBrYWJ1c2hpa2lrb3VrYWlcIDsKK+W7g+S7j+avgOmHiCA8IGhhaWJ1dHN1a2lzaGFrdVwgOwor5Lih6Zmi5Y2U6K2w5LyaIDwgcnlvdWlua3lvdWdpa2FpXCA7CivlsI/nlLDljp/mj5Dnga8gPCBvZGF3YXJhZGpvdWNoaW5cIDsKK+ecvOW6leWHuuihgCA8IGdhbnRlaXNodWtrZXRzdVwgOwor5L+h5Lu75oqV56WoIDwgc2hpbicnbmludG91aHlvdVwgOwor6Zai6YCj6LOq5ZWPIDwga2FucmVuc2hpdHN1bW9uXCA7Civlu7rnr4nmpa3ogIUgPCBrZW5jaGlrdWd5b3VzaGFcIDsKK+WTsuWtpuWPsuimgSA8IHRldHN1Z2FrdXNoaXlvdVwgOwor55+l6K2Y55Sj5qWtIDwgY2hpc2hpa2lzYW5neW91XCA7Civosqjnianoh6rli5Xou4ogPCBrYW1vdHN1amlkb3VzaGFcIDsKK+eJh+aJi+mWk+S7leS6iyA8IGthdGF0ZW1hc2hpZ290b1wgOwor56We57WM5Zue6Lev57ayIDwgc2hpbmtlaWthaXJvbW91XCA7CivmtZrmuKvkvZzmpa0gPCBzaHVuc2V0c3VzYWd5b3VcIDsKK+WNuOWjsuW4guWgtCA8IG9yb3NoaXVyaXNoaWpvdVwgOwor6YCa5L+h5pWZ6IKyIDwgdHN1dXNoaW5reW91aWt1XCA7CivljJfmlpfkuIPmmJ8gPCBob2t1dG9zaGljaGlzZWlcIDsKK+ato+W8j+eZuuihqCA8IHNlaXNoaWtpaGFwcHlvdVwgOwor54Kt57Sg5YyW5ZCI54mpIDwgdGFuc29rYWdvdWJ1dHN1XCA7CivmmrTlipvpnanlkb0gPCBib3VyeW9rdWtha3VtZWlcIDsKK+awl+euoeaUr+WWmOaBryA8IGtpa2Fuc2hpemVuc29rdVwgOwor5YWx55Sj5Lit5Zu9IDwga3lvdXNhbmNodXVnb2t1XCA7Civmo67mnpfpiYTpgZMgPCBzaGlucmludGV0c3Vkb3VcIDsKK+e1jOa4iOWNlOWKmyA8IGtlaXphaWt5b3VyeW9rdVwgOwor54mp55qE5pCN5a6zIDwgYnV0c3V0ZWtpc29uZ2FpXCA7CivkuI3ogpbnp4EgPCBmdXNob3V3YXRha3VzaGlcIDsKK+epuuS4reeIhuaSgyA8IGt1dWNodXViYWt1Z2VraVwgOwor5LiN5YuV55Sj5qWt6ICFIDwgZnVkb3VzYW5neW91c2hhXCA7CivmtbfmtIvmsJfosaHlj7AgPCBrYWl5b3VraXNob3VkYWlcIDsKK+WksealreeOhyA8IHNoaXRzdWd5b3VyaXRzdVwgOwor5bm05Lit5aSx6KiAIDwgbmVuanV1c2hpdHN1Z2VuXCA7Civmir3lh7rniakgPCBjaHV1c2h1dHN1YnV0c3VcIDsKK+ato+aWueihjOWIlyA8IHNlaWhvdWd5b3VyZXRzdVwgOwor6Ieq5YuV57+76Kiz5qmfIDwgamlkb3Vob24nJ3lha3VraVwgOwor6ICB6Iul55S35aWzIDwgcm91bnlha3VuYW4nJ255b1wgOwor57iE5paH5byP5Zyf5ZmoIDwgam91bW9uc2hpa2lkb2tpXCA7Civkv67kuoboqLzmm7ggPCBzaHV1cnlvdXNob3VzaG9cIDsKK+S4i+etieakjeeJqSA8IGthdG91c2hva3VidXRzdVwgOwor6Ly45YWl6Kqy5b606YeRIDwgeXVueXV1a2FjaG91a2luXCA7CivpoZXoirHmpI3niakgPCBrZW5rYXNob2t1YnV0c3VcIDsKK+mHjeWVhuS4u+e+qeiAhSA8IGp1dXNob3VzaHVnaXNoYVwgOwor5Zyw5YWD6K2m5a+fIDwgamltb3Rva2Vpc2F0c3VcIDsKK+S4reWbveWcsOaWuSA8IGNodXVnb2t1Y2hpaG91XCA7CivlpbPlj4vpgZQgPCBvbicnbmF0b21vZGFjaGlcIDsKK+S4ieagoee1guS6hiA8IHNhbmtvdXNodXVyeW91XCA7Civkurrlt6XooYDmtrIgPCBqaW5rb3VrZXRzdWVraVwgOwor5pyJ5oCn55Sf5q6WIDwgeXV1c2Vpc2Vpc2hva3VcIDsKK+mMrOmHkeihk+W4qyA8IHJlbmtpbmp1dHN1c2hpXCA7CivpgbrnlKPnm7jntprnqI4gPCBpc2Fuc291em9rdXplaVwgOwor5a++5pel5oSf5oOFIDwgdGFpbmljaGlrYW5qb3VcIDsKK+avmOW7rOmBrumCo+S7jyA8IGJpcnVzaGFuYWJ1dHN1XCA7CivnjKXopLvmlofmm7ggPCB3YWlzZXRzdWJ1bnNob1wgOwor55m+5pel5ZKzIDwgaHlha3VuaWNoaXpla2lcIDsKK+S7ruijheihjOWIlyA8IGthc291Z3lvdXJldHN1XCA7CivmraPlvKbmm7Lnt5ogPCBzZWlnZW5reW9rdXNlblwgOwor5rKh5YCL5oCn55qEIDwgYm90c3Vrb3NlaXRla2lcIDsKK+eLrOeri+mBi+WLlSA8IGRva3VyaXRzdXVuZG91XCA7CivplqLnqI7oh6rkuLvmqKkgPCBrYW56ZWlqaXNodWtlblwgOwor6ISx6ISC57KJ5LmzIDwgZGFzc2hpZnVuJydueXV1XCA7Civln7rmnKzlkajms6LmlbAgPCBraWhvbnNodXVoYXN1dVwgOwor5Y6f5a2Q5Yqb6Ii5IDwgZ2Vuc2hpcnlva3VzZW5cIDsKK+Wbm+i8qumnhuWLlei7iiA8IHlvbnJpbmt1ZG91c2hhXCA7CivkuInnkIPkuInmjK8gPCBzYW5reXV1c2Fuc2hpblwgOwor6Z2i55m95Y2K5YiGIDwgb21vc2hpcm9oYW5idW5cIDsKK+WVhuiIueWkp+WtpiA8IHNob3VzZW5kYWlnYWt1XCA7CivlpKnlnLDkuIfniakgPCB0ZW5jaGliYW5idXRzdVwgOwor6KGM5YiX5byPIDwgZ3lvdXJldHN1c2hpa2lcIDsKK+iAkOeGseWQiOmHkSA8IHRhaW5ldHN1Z291a2luXCA7CivpnZnpm7vmsJfpmLLmraIgPCBzZWlkZW5raWJvdXNoaVwgOwor5pS/55Wl57WQ5amaIDwgc2Vpcnlha3VrZWtrb25cIDsKK+eJuemrmOitpuWvnyA8IHRva2tvdWtlaXNhdHN1XCA7CivnhZnnqoHmjoPpmaTlpKsgPCBlbnRvdHN1c291amlmdVwgOwor5ZWG5oWj57+S5rOVIDwgc2hvdWthbnNodXVob3VcIDsKK+aYhuiZq+aOoembhiA8IGtvbmNodXVzYWlzaHV1XCA7CivkuK3lm73mi7Pms5UgPCBjaHV1Z29rdWtlbnBvdVwgOwor576O6KGT55uj552jIDwgYmlqdXRzdWthbnRva3VcIDsKK+WPluaJseS6uiA8IHRvcmlhdHN1a2FpbmluXCA7Civlia/lpKfntbHpoJggPCBmdWt1ZGFpdG91cnlvdVwgOwor5LyR5oim6KiY5b+15pelIDwga3l1dXNlbmtpbmVuYmlcIDsKK+eEpuaAp+ehq+mFuCA8IHNob3VzZWlyeXV1c2FuXCA7CivlrabmoKHnvqTliLbluqYgPCBnYWtrb3VndW5zZWlkb1wgOwor5ZGo5peL5qWt6ICFIDwgc2h1dXNlbmd5b3VzaGFcIDsKK+WNl+WbnuW4sOe3miA8IG1pbmFtaWthaWtpc2VuXCA7CivmlL7lsITnt5rmioDluKsgPCBob3VzaGFzZW5naXNoaVwgOwor6IOO55Sf5YuV54mpIDwgdGFpc2VpZG91YnV0c3VcIDsKK+WFqOWbveS4ree2mSA8IHplbmtva3VjaHV1a2VpXCA7CivniZvmranmiKbooZMgPCBneXV1aG9zZW5qdXRzdVwgOwor56qB5pKD6ZqK5ZOhIDwgdG90c3VnZWtpdGFpaW5cIDsKK+e0hOeZvuS4h+WGhiA8IHlha3VoeWFrdW1hbmVuXCA7CivkurrmtbfmiKbooZMgPCBqaW5rYWlzZW5qdXRzdVwgOwor5Ye65YWl5Zu9IDwgc2h1dHN1bnl1dWtva3VcIDsKK+WutuW6reijgeWIpOaJgCA8IGthdGVpc2FpYmFuc2hvXCA7CivlpKnmloflrabnmoQgPCB0ZW5tb25nYWt1dGVraVwgOwor5oCd5qGI5oqV6aaWIDwgc2hpYW4nJ25hZ2VrdWJpXCA7Civplbfot53pm6LmiZPogIUgPCBjaG91a3lvcmlkYXNoYVwgOwor6KOP5Y+j5Za25qWtIDwgdXJhZ3VjaGllaWd5b3VcIDsKK+S8neWlh+Wwj+iqrCA8IGRlbmtpc2hvdXNldHN1XCA7CivkuK3nq4vkuLvnvqkgPCBjaHV1cml0c3VzaHVnaVwgOwor5omN5qeM6aCtIDwgc2FpZHp1Y2hpYXRhbWFcIDsKK+eglOeptuizh+aWmSA8IGtlbmt5dXVzaGlyeW91XCA7Civlj6TnlJ/nianlraYgPCBrb3NlaWJ1dHN1Z2FrdVwgOwor5pu055Sf5pa96KitIDwga291c2Vpc2hpc2V0c3VcIDsKK+eJh+mBk+WIh+espiA8IGthdGFtaWNoaWtpcHB1XCA7Civml6XmnKzmqJnmupbmmYIgPCBuaWhvbmh5b3VqdW5qaVwgOwor5o6l57aa5Yqp6KmeIDwgc2V0c3V6b2t1am9zaGlcIDsKK+iqmOWwjumbu+WLleapnyA8IHl1dWRvdWRlbmRvdWtpXCA7CivpgIboqqznmoQgPCBneWFrdXNldHN1dGVraVwgOwor6Iux5LuP5rW35bOhIDwgZWlmdXRzdWthaWt5b3VcIDsKK+eolOWun+S4jeiJryA8IG5lbmppdHN1ZnVyeW91XCA7Civlu7rlm73oqJjlv7Xml6UgPCBrZW5rb2t1a2luZW5iaVwgOwor5YWs6KGG5rW05aC0IDwga291c2h1dXlva3Vqb3VcIDsKK+WJr+mjn+eJqSA8IGZ1a3VzaG9rdWJ1dHN1XCA7Civnq6/mnKvoo4Xnva4gPCB0YW5tYXRzdXNvdWNoaVwgOwor5paH5a2X56ym5Y+35YyW5rOVIDwgbW9qaWZ1Z291a2Fob3VcIDsKK+S8nee1seS4u+e+qeiAhSA8IGRlbnRvdXNodWdpc2hhXCA7Civpp5Dou4rmlpnph5EgPCBjaHV1c2hhcnlvdWtpblwgOwor6LOH5pys5Y+W5byVIDwgc2hpaG9udG9yaWhpa2lcIDsKK+agquW8j+ebuOWgtCA8IGthYnVzaGlraXNvdWJhXCA7CivnmbvoqJjnlarlj7fmrIQgPCB0b3VraWJhbmdvdXJhblwgOwor5q2p6KGM6ICF5YSq5YWIIDwgaG9rb3VzaGF5dXVzZW5cIDsKK+eEoeS6uuWuh+WumeiIuSA8IG11amluJyd1Y2h1dXNlblwgOwor5YWN55ar5Y+N5b+cIDwgbWVuJydla2loYW4nJ25vdVwgOwor5bu66Kit5Lya56S+IDwga2Vuc2V0c3VnYWlzaGFcIDsKK+acrOacq+mhm+WAkiA8IGhvbm1hdHN1dGVudG91XCA7CivliJ3lv5fosqvlvrkgPCBzaG9zaGlrYW50ZXRzdVwgOwor576F6JCE5pel6L6e5YW4IDwgcmFwb25pY2hpaml0ZW5cIDsKK+eUo+alremdqeWRvSA8IHNhbmd5b3VrYWt1bWVpXCA7CivlrprlubTpgIDogbcgPCB0ZWluZW50YWlzaG9rdVwgOwor5Zu96Zqb6Kaq5ZaEIDwga29rdXNhaXNoaW56ZW5cIDsKK+aAp+agvOiouuaWrSA8IHNlaWtha3VzaGluZGFuXCA7CivlhajouqvoobDlvLEgPCB6ZW5zaGluc3VpamFrdVwgOwor5ZWP6aGM6Kej5rG6IDwgbW9uZGFpa2Fpa2V0c3VcIDsKK+a4qeaaluWMluePvuixoSA8IG9uZGFua2FnZW5zaG91XCA7Civlk7rkubPli5XniakgPCBob255dXVkb3VidXRzdVwgOwor6LOH5pys5rOo5YWlIDwgc2hpaG9uY2h1dW55dXVcIDsKK+S/rualreW5tOmZkCA8IHNodXVneW91bmVuZ2VuXCA7Civlqabkurrlj4LmlL/mqKkgPCBmdWppbnNhbnNlaWtlblwgOwor6Ieq55Sx5rCR5Li75YWaIDwgaml5dXVtaW5zaHV0b3VcIDsKK+e3kee2rOikkueroCA8IHJ5b2t1anVob3VzaG91XCA7CivnoJTnqbbpoYznm64gPCBrZW5reXV1ZGFpbW9rdVwgOwor55eF5bqK5pel6KqMIDwgYnlvdXNob3VuaXNzaGlcIDsKK+eul+ihk+ioiOeulyA8IHNhbmp1dHN1a2Vpc2FuXCA7CivluLDljJbmpI3niakgPCBraWthc2hva3VidXRzdVwgOwor6YeR6J6N5oGQ5oWMIDwga2luJyd5dXVreW91a291XCA7CivlgIvkvZPnmbrnlJ/oq5YgPCBrb3RhaWhhc3NlaXJvblwgOwor5aSn5aiB5b6z5aaZ546LIDwgZGFpaXRva3VteW91b3VcIDsKK+eJueWIpeaOque9riA8IHRva3ViZXRzdXNvY2hpXCA7CivlvJvlvLXmjK/li5UgPCBzaGljaG91c2hpbmRvdVwgOwor5oim5oim5YWi5YWiIDwgc2Vuc2Vua3lvdWt5b3VcIDsKK+Wkp+mfk+iIquepuuapnyA8IHRhaWthbmtvdWt1dWtpXCA7CivoprPlhYnmlr3oqK0gPCBrYW5rb3VzaGlzZXRzdVwgOwor5ZaE55S35ZaE5aWzIDwgemVuJyduYW56ZW4nJ255b1wgOwor5L+h55So6LKp5aOyIDwgc2hpbicneW91aGFuYmFpXCA7CivmnKvmoqLnpZ7ntYwgPCBtYXNzaG91c2hpbmtlaVwgOwor6aqo6auE56e75qSNIDwga290c3V6dWlpc2hva3VcIDsKK+mBk+W+s+aVmeiCsiA8IGRvdXRva3VreW91aWt1XCA7Civph5Hmrr/njonmpbwgPCBraW5kZW5neW9rdXJvdVwgOwor5LiN54m55a6a5aSa5pWwIDwgZnV0b2t1dGVpdGFzdXVcIDsKK+eToueuqumvsCA8IGh5b3V0YW4nJ25hbWF6dVwgOwor5p2x5Y2K55CDIDwgaGlnYXNoaWhhbmt5dXVcIDsKK+WLleeJqeizqiA8IGRvdWJ1dHN1c2hpdHN1XCA7Civngrnmu7Tms6jlsIQgPCB0ZW50ZWtpY2h1dXNoYVwgOwor5bel5a2m5L+u5aOrIDwga291Z2FrdXNodXVzaGlcIDsKK+mWgOWkluS4jeWHuiA8IG1vbmdhaWZ1c2h1dHN1XCA7CivkuLvmg4XkuLvnvqnogIUgPCBzaHVqb3VzaHVnaXNoYVwgOwor5rOV5a6a5Luj55CG5Lq6IDwgaG91dGVpZGFpcmluaW5cIDsKK+mAmuS/oeijhee9riA8IHRzdXVzaGluc291Y2hpXCA7CivkvZzmiKboqIjnlLsgPCBzYWt1c2Vua2Vpa2FrdVwgOwor5YWs6ZaL5Zuz5pu46aSoIDwga291a2FpdG9zaG9rYW5cIDsKK+WgtOWkluWPluW8lSA8IGpvdWdhaXRvcmloaWtpXCA7Civkv6HoqJfpioDooYwgPCBzaGludGFrdWdpbmtvdVwgOwor5LiA5pmC6ZaT5Lul5YaFIDwgaWNoaWppa2FuJydpbmFpXCA7CivlooPnlYzoqr/mlbQgPCBreW91a2FpY2hvdXNlaVwgOwor5Li75Yqb6Imm6ZqKIDwgc2h1cnlva3VrYW50YWlcIDsKK+aVsOeQhuiogOiqnuWtpiA8IHN1dXJpZ2VuZ29nYWt1XCA7CivogbfloLTnkrDlooMgPCBzaG9rdWJha2Fua3lvdVwgOwor6LaK5Lit6KSMIDwgZXRjaHV1ZnVuZG9zaGlcIDsKK+WJsuW8leS+oeagvCA8IHdhcmliaWtpa2FrYWt1XCA7CivmlbTlvaLmiYvooZMgPCBzZWlrZWlzaHVqdXRzdVwgOwor6YW45oCn6aOf5ZOBIDwgc2Fuc2Vpc2hva3VoaW5cIDsKK+WOn+WtkOWKm+WtpiA8IGdlbnNoaXJpa2lnYWt1XCA7CivmsLTkuK3nv7zoiLkgPCBzdWljaHV1eW9rdXNlblwgOwor6YG655Sj55u457aa5Lq6IDwgaXNhbnNvdXpva3VuaW5cIDsKK+eZuumBlOautemajiA8IGhhdHRhdHN1ZGFua2FpXCA7CivmlrnlkJHmjqLnn6XlmaggPCBob3Vrb3V0YW5jaGlraVwgOwor6Ku46Kqs57Sb57SbIDwgc2hvc2V0c3VmdW5wdW5cIDsKK+S5s+mFuOmjsuaWmSA8IG55dXVzYW4nJ2lucnlvdVwgOwor5YCL44CF5Yil5YilIDwga29rb2JldHN1YmV0c3VcIDsKK+WPo+S4jeiqv+azlSA8IGt1Y2hpYnVjaG91aG91XCA7CivotoXoh6rnhLbnmoQgPCBjaG91c2hpemVudGVraVwgOwor54ax5Y+v5aGR5qi56ISCIDwgbmV0c3VrYXNvanVzaGlcIDsKK+WbvemYsumVt+WumCA8IGtva3Vib3VjaG91a2FuXCA7CivmraPntbHkv6HmlZkgPCBzZWl0b3VzaGlua3lvdVwgOwor5by35YyW5ZCI5a6/IDwga3lvdWthZ2Fzc2h1a3VcIDsKK+acnemuruS6uuWPgiA8IGNob3VzZW4nJ25pbmppblwgOwor5Y2w5Y2K57qPIDwgc2hpcnVzaGliYW50ZW5cIDsKK+adn+e4m+WkiemghSA8IHNva3ViYWt1aGVua291XCA7CivnpZ7ntYzntYTnuZQgPCBzaGlua2Vpc29zaGlraVwgOwor6LaF6LaK6Zai5pWwIDwgY2hvdWV0c3VrYW5zdXVcIDsKK+WKueeOh+WQkeS4iiA8IGtvdXJpdHN1a291am91XCA7CivnhKHmqZ/ljJblkIjniakgPCBtdWtpa2Fnb3VidXRzdVwgOwor5LuV5pa56KmxIDwgc2hpa2F0YWJhbmFzaGlcIDsKK+Wkp+iEs+earuizqiA8IGRhaW5vdWhpc2hpdHN1XCA7CivmlLnmnK3kv4IgPCBrYWlzYXRzdWdha2FyaVwgOwor55Sf5L2T5Yqb5a2mIDwgc2VpdGFpcmlraWdha3VcIDsKK+mHjeimgeaWh+WMluiyoSA8IGp1dXlvdWJ1bmthemFpXCA7CivlsbHkuIvlhazlnJIgPCB5YW1hc2hpdGFrb3VlblwgOwor5bGF6ZaT5YW86aOf5aCCIDwgaW1ha2Vuc2hva3Vkb3VcIDsKK+WPo+i/sOippumokyA8IGtvdWp1dHN1c2hpa2VuXCA7CivkuIDml6XniYfmmYIgPCBpY2hpbmljaGloZW5qaVwgOwor56S+5Lya55Sf5rS7IDwgc2hha2Fpc2Vpa2F0c3VcIDsKK+WHuueJiOebrumMsiA8IHNodXBhbm1va3Vyb2t1XCA7CivliKXpgJTmlK/lh7ogPCBiZXR0b3NoaXNodXRzdVwgOwor55Sz5ZGK57SN56iOIDwgc2hpbmtva3Vub3V6ZWlcIDsKK+WJg+WIgOinpiA8IGthbWlzb3Jpa2FidXJlXCA7Civlo7LmuKHoqLwgPCB1cml3YXRhc2hpc2hvdVwgOwor5Y2z5rG66KOB5YikIDwgc29ra2V0c3VzYWliYW5cIDsKK+eVsOaWueWwjumbu+iGnCA8IGlob3Vkb3VkZW5tYWt1XCA7Civni6znq4voh6rlsIogPCBkb2t1cml0c3VqaXNvblwgOwor5ama57SE5oyH6LyqIDwga29uJyd5YWt1eXViaXdhXCA7CivooYDmtrLlh53lm7ogPCBrZXRzdWVraWd5b3Vrb1wgOwor5Ye65Yem6YCy6YCAIDwgc2h1c3Nob3NoaW50YWlcIDsKK+W8k+efouWFq+W5oSA8IHl1bWl5YWhhY2hpbWFuXCA7Civorablr5/miYvluLMgPCBrZWlzYXRzdXRlY2hvdVwgOwor6IG35qWt5amm5Lq6IDwgc2hva3VneW91ZnVqaW5cIDsKK+aMh+ekuuS7o+WQjeipniA8IHNoaWppZGFpbWVpc2hpXCA7Civlm57lvqnkuI3lj6/og70gPCBrYWlmdWt1ZnVrYW5vdVwgOwor6Iez56aP5Y2D5bm0IDwgc2hpZnVrdXNlbicnbmVuXCA7CivlpKnlnLDplovpl6IgPCB0ZW5jaGlrYWlieWFrdVwgOwor5Ya35YeN6aOf5ZOBIDwgcmVpdG91c2hva3VoaW5cIDsKK+ijnOi2s+iqrOaYjiA8IGhvc29rdXNldHN1bWVpXCA7Civkv6HnlKjnirbmhYsgPCBzaGluJyd5b3Vqb3V0YWlcIDsKK+e1tuWvvua5v+W6piA8IHpldHRhaXNoaXRzdWRvXCA7CivmmI7mmI7nmb3nmb0gPCBtZWltZWloYWt1aGFrdVwgOwor5oud6YeR5Li7576p6ICFIDwgaGFpa2luc2h1Z2lzaGFcIDsKK+i7jeWCmee4ruWwjyA8IGd1bmJpc2h1a3VzaG91XCA7CivljZfnhKHpmL/lvKXpmYDku48gPCBuYW11YW1pZGFidXRzdVwgOwor5pq05Yqb5Zuj5ZOhIDwgYm91cnlva3VkYW4nJ2luXCA7CivlpKflrabmlZnogrIgPCBkYWlnYWt1a3lvdWlrdVwgOwor56ys5LiJ5Lq656ewIDwgZGFpc2FuJyduaW5zaG91XCA7CivkurrpgZPkuLvnvqnogIUgPCBqaW5kb3VzaHVnaXNoYVwgOwor5rC45LiW5Lit56uLIDwgZWlzZWljaHV1cml0c3VcIDsKK+eglOeptumgmOWfnyA8IGtlbmt5dXVyeW91aWtpXCA7CivmlZnogrLli4Xoqp4gPCBreW91aWt1Y2hva3Vnb1wgOwor5ZGK5Yil5byPIDwga29rdWJldHN1c2hpa2lcIDsKK+eyvuelnumanOWusyA8IHNlaXNoaW5zaG91Z2FpXCA7CivlpKnnqbrmtbfmv7YgPCB0ZW5rdXVrYWlrYXRzdVwgOwor6aOf6aSM55mC5rOVIDwgc2hva3VqaXJ5b3Vob3VcIDsKK+S4reWkruWIhumbouW4ryA8IGNodXVvdWJ1bnJpdGFpXCA7CivmuKnluK/kvY7msJflnKcgPCBvbnRhaXRlaWtpYXRzdVwgOwor6LaF5Zu95a625Li7576pIDwgY2hvdWtva2thc2h1Z2lcIDsKK+S9nOiAheS4jeefpSA8IHNha3VzaGFzaGlyYXp1XCA7CivnlJ/mtLvmsLTmupYgPCBzZWlrYXRzdXN1aWp1blwgOwor5Y2155Sf5YuV54mpIDwgcmFuc2VpZG91YnV0c3VcIDsKK+eti+iCieWKtOWDjSA8IGtpbicnbmlrdXJvdWRvdVwgOwor5Y2X5pSv6YKj5rW3IDwgbWluYW1pc2hpbmFrYWlcIDsKK+Wtpuihk+eUqOiqniA8IGdha3VqdXRzdXlvdWdvXCA7Civoh6rnhLbpo5/lk4EgPCBzaGl6ZW5zaG9rdWhpblwgOwor5ZWG5qWt57WE5ZCIIDwgc2hvdWd5b3VrdW1pYWlcIDsKK+iqnuW9meapn+iDveaWh+azlSA8IGdvaWtpbm91YnVucG91XCA7CivogbfmqKnkubHnlKggPCBzaG9ra2VucmFuJyd5b3VcIDsKK+S8tOmjn+Wkp+iHoyA8IGJhbnNob2t1ZGFpamluXCA7CivlpL7pm5HniakgPCBreW91emF0c3VidXRzdVwgOwor5Yip5a6z6Zai5L+C6ICFIDwgcmlnYWlrYW5rZWlzaGFcIDsKK+ihhuitsOWToeitsOmVtyA8IHNodXVnaWluZ2ljaG91XCA7CivlsqHnm67lhavnm64gPCBva2FtZWhhY2hpbW9rdVwgOwor5bCO5rOi566h5a6a5pWwIDwgZG91aGFrYW50ZWlzdXVcIDsKK+aWrOaWsOWlh+aKnCA8IHphbnNoaW5raWJhdHN1XCA7Civnm7Tmg4XlvoTooYwgPCBjaG9rdWpvdWtlaWtvdVwgOwor56eB56uL5a2m5qChIDwgc2hpcml0c3VnYWtrb3VcIDsKK+S4reaXpei+nuWFuCA8IGNodXVuaWNoaWppdGVuXCA7CivkuIHlrZflvaLlrpropo8gPCB0ZWlqaWdhdGFqb3VnaVwgOwor57Ch5piT6KOB5Yik5omAIDwga2FuJydpc2FpYmFuc2hvXCA7CivliIbpoZ7nm67pjLIgPCBidW5ydWltb2t1cm9rdVwgOwor5YaF5YiG5rOM6IW6IDwgbmFpYnVucGl0c3VzZW5cIDsKK+WPjeWLleS4u+e+qeiAhSA8IGhhbmRvdXNodWdpc2hhXCA7CivmtLvot6/plovmi5MgPCBrYXRzdXJva2FpdGFrdVwgOwor5bmz5p2/5ris6YePIDwgaGVpYmFuc29rdXJ5b3VcIDsKK+a6kOazieW+tOWPjiA8IGdlbnNlbmNob3VzaHV1XCA7CivpgJrkv6HooZvmmJ8gPCB0c3V1c2hpbicnZWlzZWlcIDsKK+a4heeul+WPluW8lSA8IHNlaXNhbnRvcmloaWtpXCA7CivnibnmrorlrabntJogPCB0b2t1c2h1Z2Fra3l1dVwgOwor5L+h55So6Kq/5p+7IDwgc2hpbicneW91Y2hvdXNhXCA7CivlhYjnianlo7LosrcgPCBzYWtpbW9ub2JhaWJhaVwgOwor5LiD6Zuj5YWr6IumIDwgc2hpY2hpbmFuaGFra3VcIDsKK+inkuiGnOenu+akjSA8IGtha3VtYWt1aXNob2t1XCA7Civpn7Pmpb3lm7Pmm7jppKggPCBvbmdha3V0b3Nob2thblwgOwor5pWR5oCl55eF6ZmiIDwga3l1dWt5dXVieW91aW5cIDsKK+aOpeinpuaEn+afkyA8IHNlc3Nob2t1a2Fuc2VuXCA7CivnqI7ph5HnlLPlkYogPCB6ZWlraW5zaGlua29rdVwgOwor57Wo5q+v54iG5pKDIDwganV1dGFuYmFrdWdla2lcIDsKK+S4g+i7ouWFq+i1tyA8IHNoaWNoaXRlbmhha2tpXCA7CivkuZfnlKjoh6rli5Xou4ogPCBqb3V5b3VqaWRvdXNoYVwgOwor5rC06YqA5Lit5q+SIDwgc3VpZ2luY2h1dWRva3VcIDsKK+mcsuWHuuS4jei2syA8IHJvc2h1dHN1YnVzb2t1XCA7CivlubPkuIrljrvlhaUgPCBoeW91am91a3lvbnl1dVwgOwor5Zu956uL5YWs5ZySIDwga29rdXJpdHN1a291ZW5cIDsKK+WFrOeri+WtpuagoSA8IGtvdXJpdHN1Z2Fra291XCA7CivpgJrkv6HlnI/lpJYgPCB0c3V1c2hpbmtlbmdhaVwgOwor57SE5p2f5omL5b2iIDwgeWFrdXNva3V0ZWdhdGFcIDsKK+WPrOmbhuS7pOeKtiA8IHNob3VzaHV1cmVpam91XCA7CivlnKflgJLnmoTlpJrmlbAgPCBhdHRvdXRla2l0YXN1dVwgOwor5paw5YWl56S+5ZOhIDwgc2hpbicnbnl1dXNoYWluXCA7Civml6XljZfmtbflsrggPCBuaWNoaW5hbmthaWdhblwgOwor6Z2e5pS/5bqc57WE57mUIDwgaGlzZWlmdXNvc2hpa2lcIDsKK+axjuaVtOaVsOW8jyA8IGhhbnNlaXN1dXNoaWtpXCA7Civoh6rnlLHlirTlg43ogIUgPCBqaXl1dXJvdWRvdXNoYVwgOwor5Y+k54mp5ZWG5Lq6IDwga29idXRzdXNob3VuaW5cIDsKK+e3keeZveiJsiA8IHJ5b2t1aGFrdXNob2t1XCA7Civohp3plqLnr4AgPCBzaGl0c3VrYW5zZXRzdVwgOwor5q2m5Yqb5bmy5riJIDwgYnVyeW9rdWthbnNob3VcIDsKK+WFrOihhumBk+W+syA8IGtvdXNodXVkb3V0b2t1XCA7CivmgKrlpYflsI/oqqwgPCBrYWlraXNob3VzZXRzdVwgOwor5Y2a5oSb5Li7576p6ICFIDwgaGFrdWFpc2h1Z2lzaGFcIDsKK+enmOWvhuaKleelqCA8IGhpbWl0c3V0b3VoeW91XCA7CivlnKflipvlrrnlmaggPCBhdHN1cnlva3V5b3VraVwgOwor5rGC5ama5bqD5ZGKIDwga3l1dWtvbmtvdWtva3VcIDsKK+W/g+WboOWPjeW/nCA8IHNoaW4nJ2luaGFuJydub3VcIDsKK+Wumuacn+S5l+i7iuWIuCA8IHRlaWtpam91c2hha2VuXCA7Civpm7vmsJfmtJfmv6/mqZ8gPCBkZW5raXNlbnRha3VraVwgOwor6bqm6JeB5bi95a2QIDwgbXVnaXdhcmFib3VzaGlcIDsKK+e0jeeojueUs+WRiiA8IG5vdXplaXNoaW5rb2t1XCA7Civlj43lr77np7DnmoQgPCBoYW50YWlzaG91dGVraVwgOwor57WC5oim6KiY5b+15pelIDwgc2h1dXNlbmtpbmVuYmlcIDsKK+S9j+WPi+mKgOihjCA8IHN1bWl0b21vZ2lua291XCA7CivlsLHmpa3kurrlj6MgPCBzaHV1Z3lvdWppbmtvdVwgOwor5YWo5Yud5YSq5YudIDwgemVuc2hvdXl1dXNob3VcIDsKK+W7uuioreWkp+iHoyA8IGtlbnNldHN1ZGFpamluXCA7CivpnZ7oia/lv4PnmoQgPCBoaXJ5b3VzaGludGVraVwgOwor57W25a++5b+F6KaBIDwgemV0dGFpaGl0c3V5b3VcIDsKK+ekvuS8muS4u+e+qeiAhSA8IHNoYWthaXNodWdpc2hhXCA7Civom7jotrPphY3nt5ogPCB0YWtvYXNoaWhhaXNlblwgOwor5bel5qWt5aSn5a2mIDwga291Z3lvdWRhaWdha3VcIDsKK+mHkeWjseS4h+WGhiA8IGtpbicnaWNoaW1hbicnZW5cIDsKK+aXheWuouWIl+i7iiA8IHJ5b2t5YWt1cmVzc2hhXCA7CivlsI/lnovoh6rli5Xou4ogPCBrb2dhdGFqaWRvdXNoYVwgOwor56uL5Lya5ryU6KqsIDwgdGFjaGlhaWVuemV0c3VcIDsKK+WlqOWtpuizh+mHkSA8IHNob3VnYWt1c2hpa2luXCA7CivmsJHkuovoqLToqJ/ms5UgPCBtaW5qaXNvc2hvdWhvdVwgOwor54++6YeR5Y+O5YWlIDwgZ2Vua2luc2h1dW55dXVcIDsKK+esrOS6jOmHj+WtkOWMliA8IGRhaW5pcnlvdXNoaWthXCA7Civkuozljp/lrZDliIblrZAgPCBuaWdlbnNoaWJ1bnNoaVwgOwor5a2m6KGT5Lya6K2wIDwgZ2FrdWp1dHN1a2FpZ2lcIDsKK+azleW+i+WVj+mhjCA8IGhvdXJpdHN1bW9uZGFpXCA7Civnm7TpgJrpm7voqbEgPCBjaG9rdXRzdXVkZW53YVwgOwor5Y+w5omA6YGT5YW3IDwgZGFpZG9rb3JvZG91Z3VcIDsKK+mbu+a6kOS+m+e1piA8IGRlbmdlbmt5b3VreXV1XCA7CivluLjku7vmjIfmj67ogIUgPCBqb3VuaW5zaGlraXNoYVwgOwor5rC06Zm45Lih55SoIDwgc3VpcmlrdXJ5b3V5b3VcIDsKK+mAmuS/oeaJi+autSA8IHRzdXVzaGluc2h1ZGFuXCA7CivkuIvoq4vkvJrnpL4gPCBzaGl0YXVrZWdhaXNoYVwgOwor56ys5LiA5Lq656ewIDwgZGFpaWNoaW5pbnNob3VcIDsKK+WtpuattOekvuS8miA8IGdha3VyZWtpc2hha2FpXCA7CivovrLkuovoqabpqJPloLQgPCBub3VqaXNoaWtlbmpvdVwgOwor5oOF5aCx5YyW56S+5LyaIDwgam91aG91a2FzaGFrYWlcIDsKK+a8lOWlj+absuebriA8IGVuc291a3lva3Vtb2t1XCA7CivmgJ3mg7Porablr58gPCBzaGlzb3VrZWlzYXRzdVwgOwor5YWs55uK6LOq5bGLIDwga291ZWtpc2hpY2hpeWFcIDsKK+aOpee2muWPoyA8IHNldHN1em9rdWd1Y2hpXCA7CivlgZXogIHlkIznqbQgPCBrYWlyb3Vkb3VrZXRzdVwgOwor5Li76Kaz5Li7576p6ICFIDwgc2h1a2Fuc2h1Z2lzaGFcIDsKK+eEoeaVmeS8muS4u+e+qSA8IG11a3lvdWthaXNodWdpXCA7CivnsbPkvqHlr6norbDkvJogPCBiZWlrYXNoaW5naWthaVwgOwor5YGl5bq36aOf5ZOBIDwga2Vua291c2hva3VoaW5cIDsKK+aKveixoeWQjeipniA8IGNodXVzaG91bWVpc2hpXCA7CivlsI/kuZfku4/mlZkgPCBzaG91am91YnVra3lvdVwgOwor5pmC6ZaT5aSW5Yq05YONIDwgamlrYW5nYWlyb3Vkb3VcIDsKK+WQiOebrueahOaApyA8IGdvdW1va3V0ZWtpc2VpXCA7Civpm7vlipvkvJrnpL4gPCBkZW5yeW9rdWdhaXNoYVwgOwor55m+56eR5YWo5pu45rS+IDwgaHlha2themVuc2hvaGFcIDsKK+S6jOeZvuS6jOWNgeaXpSA8IG5paHlha3VoYXRzdWthXCA7CivmtbfmtIvplovnmbogPCBrYWl5b3VrYWloYXRzdVwgOwor57Sw6IOe5YiG6KOCIDwgc2FpYm91YnVucmV0c3VcIDsKK+aApeihjOaWmemHkSA8IGt5dXVrb3VyeW91a2luXCA7CivkuIHkuIHnmbrmraIgPCBjaG91Y2hvdWhhc3NoaVwgOwor5pWZ6IG36Kqy56iLIDwga3lvdXNob2t1a2F0ZWlcIDsKK+S6jOmHjeS+oeagvOWItiA8IG5panV1a2FrYWt1c2VpXCA7CivliJHkuovoqLToqJ/ms5UgPCBrZWlqaXNvc2hvdWhvdVwgOwor5Yed552A5YqbIDwgZ3lvdWNoYWt1cnlva3VcIDsKK+aHkOWLmOWumiA8IGZ1dG9rb3Jva2Fuam91XCA7Civlh7rniYjmpa3ogIUgPCBzaHVwcGFuZ3lvdXNoYVwgOwor5bCx6IG36YGL5YuVIDwgc2h1dXNob2t1dW5kb3VcIDsKK+eVpeWlquihjOeCuiA8IHJ5YWt1ZGF0c3Vrb3VpXCA7CivnkIbpnZ7mm7Lnm7QgPCByaWhpa3lva3VjaG9rdVwgOwor5o+Q5Ye654mpIDwgdGVpc2h1dHN1YnV0c3VcIDsKK+WIpeWGiuS7mOmMsiA8IGJlc3NhdHN1ZnVyb2t1XCA7CivkuInmqKnliIbnq4sgPCBzYW5rZW5idW5yaXRzdVwgOwor5Ye65pyt5Y+jIDwgc2h1c3NhdHN1Z3VjaGlcIDsKK+iyqeWjsuS7o+eQhuW6lyA8IGhhbmJhaWRhaXJpdGVuXCA7CivlhbHlkIznoJTnqbYgPCBreW91ZG91a2Vua3l1dVwgOwor5paw5YiK57S55LuLIDwgc2hpbmthbnNob3VrYWlcIDsKK+ajn+WJsumVt+WxiyA8IG11bmV3YXJpbmFnYXlhXCA7Civkv67lpb3mnaHntIQgPCBzaHV1a291am91eWFrdVwgOwor5Yag54q25YuV6ISIIDwga2Fuam91ZG91bXlha3VcIDsKK+epuuepuua8oOa8oCA8IGt1dWt1dWJha3ViYWt1XCA7CivmgqrmgKfosqfooYAgPCBha3VzZWloaW5rZXRzdVwgOwor5LyR5oim5Y2U5a6aIDwga3l1dXNlbmt5b3V0ZWlcIDsKK+elnue1jOihsOW8sSA8IHNoaW5rZWlzdWlqYWt1XCA7Civlm57mipjmoLzlrZAgPCBrYWlzZXRzdWtvdXNoaVwgOwor5YWI5rG65ZWP6aGMIDwgc2Vua2V0c3Vtb25kYWlcIDsKK+adseS6nOiruOawkeaXjyA8IHRvdWFzaG9taW56b2t1XCA7CivlsLHmpa3ml6XmlbAgPCBzaHV1Z3lvdW5pc3N1dVwgOwor5a6f6aiT5YuV54mpIDwgamlra2VuZG91YnV0c3VcIDsKK+WNmOiRiemjm+ihjOapnyA8IHRhbicneW91aGlrb3VraVwgOwor5b+g5ZCb5oSb5Zu9IDwgY2h1dWt1bicnYWlrb2t1XCA7CivmsYLkurrluoPlkYogPCBreXV1amlua291a29rdVwgOwor54us56uL54us5q2pIDwgZG9rdXJpdHN1ZG9wcG9cIDsKK+acieWus+mjn+WTgSA8IHl1dWdhaXNob2t1aGluXCA7Civlm73kvJrorbDkuovpjLIgPCBrb2trYWlnaWppcm9rdVwgOwor6bq76Jas5Lit5q+SIDwgbWF5YWt1Y2h1dWRva3VcIDsKK+mHkeWxnuW3pealrSA8IGtpbnpva3Vrb3VneW91XCA7Civljbjlo7LniankvqEgPCBvcm9zaGl1cmlidWtrYVwgOwor5YWx5ZCM5Ye66LOHIDwga3lvdWRvdXNodXNzaGlcIDsKK+eLrei7jOmJhOmBkyA8IGt5b3VraXRldHN1ZG91XCA7CivllYbmpa3miYvlvaIgPCBzaG91Z3lvdXRlZ2F0YVwgOwor6YO15L6/6YWN6YGUIDwgeXV1YmluaGFpdGF0c3VcIDsKK+a4r+a5vuW9k+WxgCA8IGtvdXdhbnRvdWt5b2t1XCA7CivllYbmpa3pioDooYwgPCBzaG91Z3lvdWdpbmtvdVwgOwor55yB55Wl6KiY5Y+3IDwgc2hvdXJ5YWt1a2lnb3VcIDsKK+WkqeaXpeeTpiA8IHRlbmppdHN1Z2F3YXJhXCA7CivkuK3plpPloLHlkYogPCBjaHV1a2FuaG91a29rdVwgOwor5aSi54mp6KqeIDwgeXVtZW1vbm9nYXRhcmlcIDsKK+S4reW/g+aAneaDsyA8IGNodXVzaGluc2hpc291XCA7CivkupTmnIjkurrlvaIgPCBnb2dhdHN1bmluZ3lvdVwgOwor5Lyd5om/5paH5a2mIDwgZGVuc2hvdWJ1bmdha3VcIDsKK+aUv+W6nOS/neiovOWCtSA8IHNlaWZ1aG9zaG91c2FpXCA7Civou5/kvZPli5XniakgPCBuYW50YWlkb3VidXRzdVwgOwor5LiA5piU5YmNIDwgaGl0b211a2FzaGltYWVcIDsKK+W8t+WItuWPjuWuuSA8IGt5b3VzZWlzaHV1eW91XCA7Civkvr/kuZfkuLvnvqnogIUgPCBiaW5qb3VzaHVnaXNoYVwgOwor5LiA6Zm95p2l6IW5IDwgaWNoaXlvdXJhaWZ1a3VcIDsKK+a8gealreWNlOWumiA8IGd5b2d5b3VreW91dGVpXCA7CivmsLTnlJ/li5XniakgPCBzdWlzZWlkb3VidXRzdVwgOwor5qWU5b2i5paH5a2XIDwga3VzYWJpZ2F0YW1vamlcIDsKK+eZvuWNkumVtyA8IGh5YWt1c290c3VjaG91XCA7Civkv6HnlKjntYTlkIggPCBzaGluJyd5b3VrdW1pYWlcIDsKK+eglOeptuWgseWRiiA8IGtlbmt5dXVob3Vrb2t1XCA7CivpgIbooYzliJcgPCBneWFrdWd5b3VyZXRzdVwgOwor5LqM5aSn5pS/5YWa5Yi2IDwgbmlkYWlzZWl0b3VzZWlcIDsKK+awtOWkqeW9t+W9vyA8IHN1aXRlbmhvdWZ1dHN1XCA7CivkvY/lroXnlKPmpa0gPCBqdXV0YWt1c2FuZ3lvdVwgOwor5rOh5rKr5Lya56S+IDwgaG91bWF0c3VnYWlzaGFcIDsKK+eEoeWIqeaBr+WFrOWCtSA8IG11cmlzb2t1a291c2FpXCA7Civoq4foq5bpoqjnmbogPCBkYW5yb25mdXVoYXRzdVwgOwor6Laz57Sg5oCn5Y6f55CGIDwgYXNoaXN1am91Z2VucmlcIDsKK+izh+acrOS4u+e+qeiAhSA8IHNoaWhvbnNodWdpc2hhXCA7CivlhYjnmbrmipXmiYsgPCBzZW5wYXRzdXRvdXNodVwgOwor5o6o55CG5bCP6KqsIDwgc3VpcmlzaG91c2V0c3VcIDsKK+e0s+Wjq+WNlOWumiA8IHNoaW5zaGlreW91dGVpXCA7CivlpKflkI3lsYvmlbcgPCBkYWlteW91eWFzaGlraVwgOwor54m555Ww5L2T6LOqIDwgdG9rdWl0YWlzaGl0c3VcIDsKK+S4remWk+aQvuWPliA8IGNodXVrYW5zYWt1c2h1XCA7CivmlofljJblnLDnkIblraYgPCBidW5rYWNoaXJpZ2FrdVwgOwor5Y2U6Kq/5L2c5qWtIDwga3lvdWNob3VzYWd5b3VcIDsKK+aMh+Wcp+eZguazlSA8IHNoaWF0c3VyeW91aG91XCA7Civlhazoqo3lgJnoo5zogIUgPCBrb3VuaW5rb3Vob3NoYVwgOwor5bel5qWt5oqA6KGTIDwga291Z3lvdWdpanV0c3VcIDsKK+e3j+WQiOiKuOihkyA8IHNvdWdvdWdlaWp1dHN1XCA7Civml63ml6Xnq6AgPCBreW9rdWppdHN1c2hvdVwgOwor5LiW55WM6YG45omL5qipIDwgc2VrYWlzZW5zaHVrZW5cIDsKK+S4reeUo+majue0miA8IGNodXVzYW5rYWlreXV1XCA7CivljZfljYHlrZfmmJ8gPCBtaW5hbWlqdXVqaXNlaVwgOwor5paw55+z5Zmo5pmC5LujIDwgc2hpbnNla2tpamlkYWlcIDsKK+W/g+mciuaJi+ihkyA8IHNoaW5yZWl0ZWp1dHN1XCA7CivmiJDplbfnlKPmpa0gPCBzZWljaG91c2FuZ3lvdVwgOwor5Y+X6aiT5Y+C6ICD5pu4IDwganVrZW5zYW5rb3VzaG9cIDsKK+Wbvemam+WPjuaUryA8IGtva3VzYWlzaHV1c2hpXCA7CivpnZnmraLnlLvmlL7pgIEgPCBzZWlzaGlnYWhvdXNvdVwgOwor5LiK6Zm45L2c5oimIDwgam91cmlrdXNha3VzZW5cIDsKK+WLleWKm+izh+a6kCA8IGRvdXJ5b2t1c2hpZ2VuXCA7Civlv4XopoHmnaHku7YgPCBoaXRzdXlvdWpvdWtlblwgOwor5bCR5bm05oSf5YyW6ZmiIDwgc2hvdW5lbmthbmthaW5cIDsKK+S4rea1geaEj+itmCA8IGNodXVyeXV1aXNoaWtpXCA7Civplbfot53pm6LovLjpgIEgPCBjaG91a3lvcml5dXNvdVwgOwor5YaN5biw5Luj5ZCN6KmeIDwgc2Fpa2lkYWltZWlzaGlcIDsKK+WHuua8geWMuuWfnyA8IHNodXRzdWd5b2t1aWtpXCA7CivosqHlvaLosq/ok4QgPCB6YWlrZWljaG9jaGlrdVwgOwor6IG35Lq65rCX6LOqIDwgc2hva3VuaW5rYXRhZ2lcIDsKK+aOp+iotOijgeWIpOaJgCA8IGtvdXNvaGFpYmFuc2hvXCA7CivljZjkvY3ooYzliJcgPCB0YW4nJ2lneW91cmV0c3VcIDsKK+aWh+WMluWKn+WKtOiAhSA8IGJ1bmtha291cm91c2hhXCA7Civlm73pgKPmhrLnq6AgPCBrb2t1cmVua2Vuc2hvdVwgOwor5rC05YWI5qGI5YaFIDwgbWl6dXNha2lhbicnbmFpXCA7CivnnJ/nqbrmjoPpmaTmqZ8gPCBzaGlua3V1c291amlraVwgOwor5Y+O5a656Kit5YKZIDwgc2h1dXlvdXNldHN1YmlcIDsKK+a3sea1t+a8gealrSA8IHNoaW5rYWlneW9neW91XCA7CivkurrlvaLmtYTnkaDnkoMgPCBuaW5neW91am91cnVyaVwgOwor55u05b6A6YKB6YCyIDwgY2hva3VvdW1haXNoaW5cIDsKK+WkqeS9k+WKm+WtpiA8IHRlbnRhaXJpa2lnYWt1XCA7CivmmJToqbEgPCBtdWthc2hpYmFuYXNoaVwgOwor5pS/5rK76KmV6KuW5a62IDwgc2VpamloeW91cm9ua2FcIDsKK+S8neaJv+WPmeS6i+ipqSA8IGRlbnNob3Vqb2ppc2hpXCA7CivmnInoppbnlYzpo5vooYwgPCB5dXVzaGlrYWloaWtvdVwgOwor5bm85Y+L6YGUIDwgb3NhbmF0b21vZGFjaGlcIDsKK+ecn+epuumbu+eQgyA8IHNoaW5rdXVkZW5reXV1XCA7CivpmY3kuInkuJblppnnjosgPCBnb3V6YW56ZW15b3VvdVwgOwor562J6auY57ea5Zyw5ZuzIDwgdG91a291c2VuY2hpenVcIDsKK+S4iuWxpOW7uueviSA8IGpvdXNvdWtlbmNoaWt1XCA7CivlvbnogbfmiYvlvZMgPCB5YWt1c2hva3V0ZWF0ZVwgOwor6auY5Zyn6Zu75rWBIDwga291YXRzdWRlbnJ5dXVcIDsKK+Wwu+i7veWlsyA8IHNoaXJpZ2FydW9uJyduYVwgOwor5Lql5bm0IDwgaW5vc2hpc2hpZG9zaGlcIDsKK+eZvemJouW3uyA8IHNoaXJvaGFjaGltYWtpXCA7CivkuqTpgJrpgZPlvrMgPCBrb3V0c3V1ZG91dG9rdVwgOwor5rC05rqW5ris6YePIDwgc3VpanVuc29rdXJ5b3VcIDsKK+ijvemAoOW5tOaciOaXpSA8IHNlaXpvdW5lbmdhcHBpXCA7CivlvIHoqLzms5XnmoQgPCBiZW5zaG91aG91dGVraVwgOwor5p2+6Iy45b6h6aOvIDwgbWF0c3V0YWtlZ29oYW5cIDsKK+mWoueojumanOWjgSA8IGthbnplaXNob3VoZWtpXCA7CivntbHmi6zpg6jplbcgPCB0b3VrYXRzdWJ1Y2hvdVwgOwor5Zyw5pa55Lqk5LuY56iOIDwgY2hpaG91a291ZnV6ZWlcIDsKK+iWhOe0q+iJsiA8IHVzdW11cmFzYWtpaXJvXCA7CivmkI3lpLHoo5zloasgPCBzb25zaGl0c3Vob3RlblwgOwor5pel5pys6Kqe5pWZ5pysIDwgbmlob25nb2t5b3Vob25cIDsKK+WHuuWhgeeOhyA8IHNodXRzdXJ1aXJpdHN1XCA7CivkuovkuovnianniakgPCBqaWppYnV0c3VidXRzdVwgOwor6YCj57aa5YaZ55yfIDwgcmVuem9rdXNoYXNoaW5cIDsKK+S/mOiZnOWPjuWuueaJgCA8IGZ1cnlvc2h1dXlvdWpvXCA7CivnqbrmsJflnKfnuK7mqZ8gPCBrdXVraWFzc2h1a3VraVwgOwor5Zub55m+5L2Z5beeIDwgc2hpaHlha3V5b3NodXVcIDsKK+WbvemAo+iomOW/teaXpSA8IGtva3VyZW5raW5lbmJpXCA7Civlv4PnrYvmopfloZ4gPCBzaGlua2lua291c29rdVwgOwor5a6X5pWZ6KOB5YikIDwgc2h1dWt5b3VzYWliYW5cIDsKK+mbu+S/oeafsSA8IGRlbnNoaW5iYXNoaXJhXCA7CivlhpnnnJ/nn7PniYggPCBzaGFzaGluc2VraWJhblwgOwor6Zqg6Iqx5qSN54mpIDwgaW5rYXNob2t1YnV0c3VcIDsKK+eEoeiomOWQjeaKleelqCA8IG11a2ltZWl0b3VoeW91XCA7Civlvq7nlJ/nianlraYgPCBiaXNlaWJ1dHN1Z2FrdVwgOwor5oim55Wl56m66LuNIDwgc2Vucnlha3VrdXVndW5cIDsKK+aBreizgOaWsOW5tCA8IGt5b3VnYXNoaW4nJ25lblwgOwor5Zu96Zqb5Y2U5a6aIDwga29rdXNhaWt5b3V0ZWlcIDsKK+iHqueEtuS4u+e+qeiAhSA8IHNoaXplbnNodWdpc2hhXCA7CivoibLljbPmmK/nqbogPCBzaGlraXNva3V6ZWt1dVwgOwor6aCt5a+S6Laz54axIDwgenVrYW5zb2t1bmV0c3VcIDsKK+WMuuaknOWvn+W6gSA8IGt1a2Vuc2F0c3VjaG91XCA7CivmoLjpmLLooZvlipsgPCBrYWt1Ym91ZWlyeW9rdVwgOwor5a6M5YWo54eD54S8IDwga2FuemVuJyduZW5zaG91XCA7Civph43ph4/mhJ/oppogPCBqdXVyeW91a2Fua2FrdVwgOwor6ZuM6ZuE6ZGR5YilIDwgc2hpeXV1a2FuYmV0c3VcIDsKK+euoeWMuuawl+ixoeWPsCA8IGthbmt1a2lzaG91ZGFpXCA7Civljp/nlJ/li5XniakgPCBnZW5zZWlkb3VidXRzdVwgOwor55uu55qE5oSP6K2YIDwgbW9rdXRla2lpc2hpa2lcIDsKK+azleWumua6luWCmemHkSA8IGhvdXRlaWp1bmJpa2luXCA7CivmtbfnlJ/li5XniakgPCBrYWlzZWlkb3VidXRzdVwgOwor5pS75pKD57K+56WeIDwga291Z2VraXNlaXNoaW5cIDsKK+S9nOaIkOaKgOihkyA8IHNha3VzZWlnaWp1dHN1XCA7Civph5Hpiq3kv6HoqJcgPCBraW5zZW5zaGludGFrdVwgOwor5ZC45Y+O5ZCI5L21IDwga3l1dXNodXVnYXBwZWlcIDsKK+aPm+mqqOWlquiDjiA8IGthbmtvdHN1ZGF0dGFpXCA7Civnoazos6rpmbblmaggPCBrb3VzaGl0c3V0b3VraVwgOwor5a+d5Y+w5paZ6YeRIDwgc2hpbmRhaXJ5b3VraW5cIDsKK+izvOWFpeazqOaWhyA8IGtvdW55dXVjaHV1bW9uXCA7CivnhKblnJ/miKbooZMgPCBzaG91ZG9zZW5qdXRzdVwgOwor5pyJ6IG35pWF5a6fIDwgeXV1c29rdWtvaml0c3VcIDsKK+ipseipsSA8IGhhbmFzaGliYW5hc2hpXCA7CivnhKHlhJ/kv6HoqJcgPCBtdXNob3VzaGludGFrdVwgOwor5raI6LK755Sf5rS7IDwgc2hvdWhpc2Vpa2F0c3VcIDsKK+WupOWGhemBiuaIryA8IHNoaXRzdW5haXl1dWdpXCA7CivlrpfmlZnlm6PkvZMgPCBzaHV1a3lvdWRhbnRhaVwgOwor6YCy6KGM54q25rOBIDwgc2hpbmtvdWpvdWt5b3VcIDsKK+mrmOetieWLleeJqSA8IGtvdXRvdWRvdWJ1dHN1XCA7CivkuIDohrPpo6/lsYsgPCBpY2hpemVubWVzaGl5YVwgOwor5pmC5Luj5bCP6KqsIDwgamlkYWlzaG91c2V0c3VcIDsKK+WGheiovOipsSA8IG5haXNob3ViYW5hc2hpXCA7CivmtbfmtIvmgKfmsJflgJkgPCBrYWl5b3VzZWlraWtvdVwgOwor5puy57ea5bqn5qiZIDwga3lva3VzZW56YWh5b3VcIDsKK+W9k+ipsuS6uueJqSA8IHRvdWdhaWppbmJ1dHN1XCA7CivlpJbosqjmupblgpnpq5ggPCBnYWlrYWp1bmJpZGFrYVwgOwor6KaB5rGC6YCB5L+hIDwgeW91a3l1dXNvdXNoaW5cIDsKK+eZvuS6uuS4gOmmliA8IGh5YWt1bmluJydpc3NodVwgOwor6ZuG5Zuj5qSc6Ki6IDwgc2h1dWRhbmtlbnNoaW5cIDsKK+aXheihjOS7o+eQhuW6lyA8IHJ5b2tvdWRhaXJpdGVuXCA7Civlronlr6fnp6nluo8gPCBhbicnbmVpY2hpdHN1am9cIDsKK+S4i+WUhyA8IHNoaXRha3VjaGliaXJ1XCA7CivmpbXmpb3ps6XoirEgPCBnb2t1cmFrdWNob3VrYVwgOwor5Lit6LaK57Sb5LqJIDwgY2h1dWV0c3VmdW5zb3VcIDsKK+S4gOaLrOizvOWFpSA8IGlra2F0c3Vrb3VueXV1XCA7CivmsJHml4/oh6rmsbogPCBtaW56b2t1amlrZXRzdVwgOwor5YC25qKo5Ly9576F57SL57SLIDwga3VyaWthcmFtb25tb25cIDsKK+ato+mdouaUu+aSgyA8IHNob3VtZW5rb3VnZWtpXCA7CivmlZnogrLnlKPmpa0gPCBreW91aWt1c2FuZ3lvdVwgOwor56m66Kq/6Kit5YKZIDwga3V1Y2hvdXNldHN1YmlcIDsKK+WNmOeLrOWGhemWoyA8IHRhbmRva3VuYWlrYWt1XCA7Civnt5Hnjonnn7MgPCByeW9rdWd5b2t1c2VraVwgOwor5pWZ6IKy5a6f57+SIDwga3lvdWlrdWppc3NodXVcIDsKK+Wwsealreimj+WJhyA8IHNodXVneW91a2lzb2t1XCA7CivmlZnppIrnlarntYQgPCBreW91eW91YmFuZ3VtaVwgOwor5YeN57WQ6LOH55SjIDwgdG91a2V0c3VzaGlzYW5cIDsKK+mbhuWbo+i+suWgtCA8IHNodXVkYW4nJ25vdWpvdVwgOwor5piU5piUIDwgbXVrYXNoaW11a2FzaGlcIDsKK+WRqOi+uuiruOWbvSA8IHNodXVoZW5zaG9rb2t1XCA7Civlm73nsY3mnaHpoIUgPCBrb2t1c2VraWpvdWtvdVwgOwor54++54mp57Wm5LiOIDwgZ2VuYnV0c3VreXV1eW9cIDsKK+S6iOmBuOmAmumBjuiAhSA8IHlvc2VudHN1dWthc2hhXCA7Civosarpm6rlnLDluK8gPCBnb3VzZXRzdWNoaXRhaVwgOwor5rW35Y2D5bGx5Y2DIDwgdW1pc2VuJyd5YW1hc2VuXCA7CivpnanmlrDmlL/lhZogPCBrYWt1c2hpbnNlaXRvdVwgOwor5bCR5pWw5rCR5pePIDwgc2hvdXN1dW1pbnpva3VcIDsKK+WKtOWDjeWNlOe0hCA8IHJvdWRvdWt5b3V5YWt1XCA7Civpm7vmkoPkvZzmiKYgPCBkZW5nZWtpc2FrdXNlblwgOwor6Iad6JOL6aqoIDwgc2hpdHN1Z2Fpa290c3VcIDsKK+Wls+aAp+ino+aUvuirliA8IGpvc2Vpa2FpaG91cm9uXCA7CivohIrpq4TnpZ7ntYwgPCBzZWtpenVpc2hpbmtlaVwgOwor576O6KGT5aSn5a2mIDwgYmlqdXRzdWRhaWdha3VcIDsKK+mBuuS8neWtkOayu+eZgiA8IGlkZW5zaGljaGlyeW91XCA7Civpgbjmip7poIXnm64gPCBzZW50YWt1a291bW9rdVwgOwor6ZaT5o6l6YG45oyZIDwga2Fuc2V0c3VzZW5reW9cIDsKK+iyneauu+i/veaUviA8IGthaWdhcmF0c3VpaG91XCA7CivnvqTnmbrlnLDpnIcgPCBndW5wYXRzdWppc2hpblwgOwor57W25a++5Li7576p6ICFIDwgemV0dGFpc2h1Z2lzaGFcIDsKK+e3iuikjOS4gOeVqiA8IGtpbmtvbicnaWNoaWJhblwgOwor5YWx5ZCM54KK5LqL5aC0IDwga3lvdWRvdXN1aWppYmFcIDsKK+eLrOi6q+iytOaXjyA8IGRva3VzaGlua2l6b2t1XCA7Civnpo/npYnkuovli5nmiYAgPCBmdWt1c2hpamltdXNob1wgOwor56eR5a2m55+l6K2YIDwga2FnYWt1Y2hpc2hpa2lcIDsKK+efs+mDqOmHkeWQiSA8IGlzaGliZWtpbmtpY2hpXCA7CivoirHps6XpoqjmnIggPCBrYWNob3VmdXVnZXRzdVwgOwor5o+Q5Ye65pyf6ZmQIDwgdGVpc2h1dHN1a2lnZW5cIDsKK+S4ieinkuezu+eVsOW4uCA8IHNhbmtha3VrZWlpam91XCA7CivlpKnplbflnLDkuYUgPCB0ZW5jaG91Y2hpa3l1dVwgOwor55m+5LiH6ZW36ICFIDwgaHlha3VtYW5jaG91amFcIDsKK+WvvueXh+eZguazlSA8IHRhaXNob3VyeW91aG91XCA7CivmsLTnlKPoqabpqJPmiYAgPCBzdWlzYW5zaGlrZW5qb1wgOwor5Lit5p6i56We57WMIDwgY2h1dXN1dXNoaW5rZWlcIDsKK+WVhuW3pealreiAhSA8IHNob3Vrb3VneW91c2hhXCA7CivplovnpajpgJ/loLEgPCBrYWloeW91c29rdWhvdVwgOwor5oCn55qE6KGd5YuVIDwgc2VpdGVraXNob3Vkb3VcIDsKK+i7jeS6i+ijgeWIpOaJgCA8IGd1bmppc2FpYmFuc2hvXCA7Civnibnmrormkq7lvbEgPCB0b2t1c2h1c2F0c3VlaVwgOwor6Ly45Ye65omL5b2iIDwgeXVzaHV0c3V0ZWdhdGFcIDsKK+WPsuaWmemkqOWtpiA8IHNoaXJ5b3VrYW5nYWt1XCA7CivnqbrkuK3mpbzplqMgPCBrdXVjaHV1cm91a2FrdVwgOwor6Zqg6YCA6JS154mp6LOHIDwgaW50YWl6b3VidXNzaGlcIDsKK+WwkeW5tOaWh+WtpiA8IHNob3VuZW5idW5nYWt1XCA7Civoqr/mlbTmlLvmkoMgPCBjaG91c2Vpa291Z2VraVwgOwor57K+56We5bm06b2iIDwgc2Vpc2hpbicnbmVucmVpXCA7CivlsYXkuK3oqr/lgZwgPCBreW9jaHV1Y2hvdXRlaVwgOwor56iO5Yil5L6h5qC8IDwgemVpYmV0c3VrYWtha3VcIDsKK+i7jeS6uueUn+a0uyA8IGd1bmppbnNlaWthdHN1XCA7Civnmoflrq7orablr58gPCBrb3VndXVrZWlzYXRzdVwgOwor57KS44CF6L6b6IumIDwgcnl1dXJ5dXVzaGlua3VcIDsKK+adseS6rOWkp+WtpiA8IHRvdWt5b3VkYWlnYWt1XCA7Civlj4LogIPlm7Pmm7jppKggPCBzYW5rb3V0b3Nob2thblwgOwor6IiI5ZGz5rSl5rSlIDwga3lvdW1pc2hpbnNoaW5cIDsKK+eEoee3muWRqOazouaVsCA8IG11c2Vuc2h1dWhhc3V1XCA7CivljYPlrqLkuIfmnaUgPCBzZW5reWFrdWJhbnJhaVwgOwor6YG45oqc6Kmm6aiTIDwgc2VuYmF0c3VzaGlrZW5cIDsKK+iIqui3r+aomeitmCA8IGtvdXJvaHlvdXNoaWtpXCA7Civnt4rmgKXnmbrpgLIgPCBraW5reXV1aGFzc2hpblwgOwor56m65Lit5YaZ55yfIDwga3V1Y2h1dXNoYXNoaW5cIDsKK+WWtualrea0u+WLlSA8IGVpZ3lvdWthdHN1ZG91XCA7CivmlZHmj7TmtLvli5UgPCBreXV1ZW5rYXRzdWRvdVwgOwor5aSp54S256Gd5a2QIDwgdGVuJyduZW5zaG91c2hpXCA7Civkv6HoqJfos4fph5EgPCBzaGludGFrdXNoaWtpblwgOwor5biC5rCR55Sf5rS7IDwgc2hpbWluc2Vpa2F0c3VcIDsKK+mHjei+suS4u+e+qeiAhSA8IGp1dW5vdXNodWdpc2hhXCA7CivkuZflkIjoh6rli5Xou4ogPCBub3JpYWlqaWRvdXNoYVwgOwor57W25a++5qip5YqbIDwgemV0dGFpa2Vucnlva3VcIDsKK+WRqOeroOeLvOeLvSA8IHNodXVzaG91cm91YmFpXCA7CivmsJHml4/lrabogIUgPCBtaW56b2t1Z2FrdXNoYVwgOwor6Iag552A54q25oWLIDwga291Y2hha3Vqb3V0YWlcIDsKK+e0sOiDnumBuuS8neWtpiA8IHNhaWJvdWlkZW5nYWt1XCA7CivpnaLmjqXoqabpqJMgPCBtZW5zZXRzdXNoaWtlblwgOwor5pS/562W5Y2U5a6aIDwgc2Vpc2FrdWt5b3V0ZWlcIDsKK+iyqeWjsuaIpueVpSA8IGhhbmJhaXNlbnJ5YWt1XCA7CivlhazoqK3luILloLQgPCBrb3VzZXRzdWljaGliYVwgOwor5Lq654mp57WM5riIIDwgamluYnV0c3VrZWl6YWlcIDsKK+W/g+eahOeKtuaFiyA8IHNoaW50ZWtpam91dGFpXCA7CivkuJjpmbXlnLDluK8gPCBreXV1cnlvdWNoaXRhaVwgOwor6LaF6Z+z5rOi5rSX5rWEIDwgY2hvdW9ucGFzZW5qb3VcIDsKK+WIkeS6i+iiq+WRiuS6uiA8IGtlaWppaGlrb2t1bmluXCA7Civku67lh7rnjYQgPCBrYXJpc2h1dHN1Z29rdVwgOwor54m55Yil6IG3IDwgdG9rdWJldHN1c2hva3VcIDsKK+e+pOS8neaQrOaZgumWkyA8IGd1bmRlbnBhbmppa2FuXCA7CivnlJ/mtq/mlZnogrIgPCBzaG91Z2Fpa3lvdWlrdVwgOwor5pen57SE5YWo5pu4IDwga3l1dXlha3V6ZW5zaG9cIDsKK+Wkp+agueW9ueiAhSA8IGRhaWtvbicneWFrdXNoYVwgOwor5LiH5bm05paw6YCgIDwgbWFuJyduZW5zaGluem91XCA7CivlgaXlurfkv53pmbrms5UgPCBrZW5rb3Vob2tlbmhvdVwgOwor5bi45Lu755CG5LqL5Zu9IDwgam91bmlucmlqaWtva3VcIDsKK+W6p+mqqOelnue1jCA8IHpha290c3VzaGlua2VpXCA7CivpnZ7ph5HlsZ7lhYPntKAgPCBoaWtpbnpva3VnZW5zb1wgOwor6ZW36ICB5pWZ5LyaIDwgY2hvdXJvdWt5b3VrYWlcIDsKK+mZuOS4iuiHquihm+maiiA8IHJpa3Vqb3VqaWVpdGFpXCA7Civosq/ok4TlgrXliLggPCBjaG9jaGlrdXNhaWtlblwgOwor5q2m5Yqb5LuL5YWlIDwgYnVyeW9rdWthaW55dXVcIDsKK+S/nemZuuWLp+iqmOWToSA8IGhva2Vua2FuJyd5dXVpblwgOwor57K+5a+G56eR5a2mIDwgc2VpbWl0c3VrYWdha3VcIDsKK+engemJhOe3j+mAoyA8IHNoaXRldHN1c291cmVuXCA7CivkvJ3pgIHntYLkuoYgPCBkZW5zb3VzaHV1cnlvdVwgOwor56qS57Sg5Zu65a6a5rOVIDwgY2hpc3Nva290ZWlob3VcIDsKK+iWq+iSuOa2iOavkiA8IGt1bmpvdXNob3Vkb2t1XCA7Civms5Xlvovnm7joq4cgPCBob3VyaXRzdXNvdWRhblwgOwor5Zyw5Z+f6ZaL55m6IDwgY2hpaWtpa2FpaGF0c3VcIDsKK+WbveWGheeUo+alrSA8IGtva3VuYWlzYW5neW91XCA7CivkuIDmiZPpgIbou6IgPCBpY2hpZGFneWFrdXRlblwgOwor5rC055Sf55Sf54mpIDwgc3Vpc2Vpc2VpYnV0c3VcIDsKK+aciee3mumAmuS/oSA8IHl1dXNlbnRzdXVzaGluXCA7Civnm7jlr77mgKfljp/nkIYgPCBzb3V0YWlzZWlnZW5yaVwgOwor576O6KGT5oSb5aW95a62IDwgYmlqdXRzdWFpa291a2FcIDsKK+i1t+aJv+i7oue1kCA8IGtpc2hvdXRlbmtldHN1XCA7Civnianos6rkuLvnvqkgPCBidXNzaGl0c3VzaHVnaVwgOwor5L+h6KiX5Lya56S+IDwgc2hpbnRha3VnYWlzaGFcIDsKK+S4reefs+WZqOaZguS7oyA8IGNodXVzZWtraWppZGFpXCA7CivkuLvnn6XkuLvnvqnogIUgPCBzaHVjaGlzaHVnaXNoYVwgOwor6JqV57O46Kmm6aiT5omAIDwgc2Fuc2hpc2hpa2Vuam9cIDsKK+S4remWk+WVhuS6uiA8IGNodXVrYW5zaG91bmluXCA7CivpnZnpm7vlrrnph48gPCBzZWlkZW4nJ3lvdXJ5b3VcIDsKK+S4rea1geekvuS8miA8IGNodXVyeXV1c2hha2FpXCA7Civnp4Hnq4vmjqLlgbUgPCBzaGlyaXRzdXRhbnRlaVwgOwor5ZG96L6b6L6bIDwgaW5vY2hpZ2FyYWdhcmFcIDsKK+WbveawkeaKleelqCA8IGtva3VtaW50b3VoeW91XCA7CivmnInnvarliKTmsbogPCB5dXV6YWloYW5rZXRzdVwgOwor5by35YyW6aOf5ZOBIDwga3lvdWthc2hva3VoaW5cIDsKK+S8uOe4ruiHquWcqCA8IHNoaW5zaHVrdWppemFpXCA7Civpmbjou43lpKflraYgPCByaWt1Z3VuZGFpZ2FrdVwgOwor6YCa5L+h6YCf5bqmIDwgdHN1dXNoaW5zb2t1ZG9cIDsKK+m7kumHkeWJm+efsyA8IGt1cm9rb25nb3VzZWtpXCA7Civnq4vkvZPlub7kvZXlraYgPCByaXR0YWlraWthZ2FrdVwgOwor5Lit5Zu95Lq66KGXIDwgY2h1dWdva3VqaW5nYWlcIDsKK+WtpuiKuOWkp+WtpiA8IGdha3VnZWlkYWlnYWt1XCA7CivlpKfmsrPlsI/oqqwgPCB0YWlnYXNob3VzZXRzdVwgOwor6YmE6YGT5Lya56S+IDwgdGV0c3Vkb3VnYWlzaGFcIDsKK+mfs+alveW9ouW8jyA8IG9uZ2FrdWtlaXNoaWtpXCA7CivmgKfmoLzliIbmnpAgPCBzZWlrYWt1YnVuc2VraVwgOwor6Lui5YWl5bGKIDwgdGVuJydueXV1dG9kb2tlXCA7CivkuI3li5XnlKPpkZHlrpogPCBmdWRvdXNhbmthbnRlaVwgOwor5Y+X5LuY5L+CIDwgdWtldHN1a2VnYWthcmlcIDsKK+WwseiBt+eOhyA8IHNodXVzaG9rdXJpdHN1XCA7Civnj77ph5Hmm7jnlZkgPCBnZW5raW5rYWtpdG9tZVwgOwor5LyR5oim5p2h57SEIDwga3l1dXNlbmpvdXlha3VcIDsKK+S6jOi2s+WLleeJqSA8IG5pc29rdWRvdWJ1dHN1XCA7Civlv4PnkIblrabnmoQgPCBzaGlucmlnYWt1dGVraVwgOwor5L6D44CF6Kuk6KukIDwga2Fua2FuZ2FrdWdha3VcIDsKK+ebtOe3mumBi+WLlSA8IGNob2t1c2VuJyd1bmRvdVwgOwor5oKq5b6z5paw6IGeIDwgYWt1dG9rdXNoaW5idW5cIDsKK+acquaxuuaLmOeVmSA8IG1pa2V0c3Vrb3VyeXV1XCA7Civlrprph4/liIbmnpAgPCB0ZWlyeW91YnVuc2VraVwgOwor57Wm5paZ6KKLIDwga3l1dXJ5b3VidWt1cm9cIDsKK+e0meWxkeWQjOeEtiA8IGthbWlrdXp1ZG91emVuXCA7CivmuKnlrqTmoL3ln7kgPCBvbnNoaXRzdXNhaWJhaVwgOwor6Yed5bCP5qOS5aSnIDwgc2hpbnNob3Vib3VkYWlcIDsKK+akjeeJqeWtpiA8IHNob2t1YnV0c3VnYWt1XCA7CivlpKrliIDkuozohbAgPCB0YWNoaWZ1dGFrb3NoaVwgOwor6KqN6K2Y5LiN6LazIDwgbmluc2hpa2lidXNva3VcIDsKK+Wbo+S9k+WNlOe0hCA8IGRhbnRhaWt5b3V5YWt1XCA7Civkv6HpoLzlm57lvqkgPCBzaGlucmFpa2FpZnVrdVwgOwor5L+u5a2m5peF6KGMIDwgc2h1dWdha3VyeW9rb3VcIDsKK+mVt+i3nemboumjm+ihjCA8IGNob3VreW9yaWhpa291XCA7CivnrKzkuozmrKHmgKflvrQgPCBkYWluaWppc2VpY2hvdVwgOwor6Zu75rqQ6ZaL55m6IDwgZGVuZ2Vua2FpaGF0c3VcIDsKK+aooeW8j+aomeacrCA8IG1vc2hpa2loeW91aG9uXCA7Civov73ot6Hoqr/mn7sgPCB0c3Vpc2VraWNob3VzYVwgOwor5Ymy5byV5omL5b2iIDwgd2FyaWJpa2l0ZWdhdGFcIDsKK+WPpeani+mAoOaWh+azlSA8IGt1a291em91YnVucG91XCA7Civnm7TmtYHlm57ot68gPCBjaG9rdXJ5dXVrYWlyb1wgOwor6IiI6KGM5oiQ57i+IDwga291Z3lvdXNlaXNla2lcIDsKK+WMl+a0i+a8gealrSA8IGhva3V5b3VneW9neW91XCA7Civlm73mloflrablj7IgPCBrb2t1YnVuZ2FrdXNoaVwgOwor5rC45LmF6ISx5q+bIDwgZWlreXV1ZGF0c3Vtb3VcIDsKK+aOkuWHuuWfuua6liA8IGhhaXNodXRzdWtpanVuXCA7CivntYTogbfmlLnpnakgPCBzb3Nob2t1a2Fpa2FrdVwgOwor6YGO5aSx6Ie05q27IDwga2FzaGl0c3VjaGlzaGlcIDsKK+S6pOmAmuS/oeWPtyA8IGtvdXRzdXVzaGluZ291XCA7Civli5Xnianlrp/pqJMgPCBkb3VidXRzdWppa2tlblwgOwor5rC05LiK6K2m5a+fIDwgc3Vpam91a2Vpc2F0c3VcIDsKK+WKtOS9nOaVmeiCsiA8IHJvdXNha3VreW91aWt1XCA7CivmoLjlu4Pmo4TniakgPCBrYWt1aGFpa2lidXRzdVwgOwor6Y6u6a2C5puy5q2MIDwgY2hpbmtvbmt5b2t1a2FcIDsKK+mdnumJhOmHkeWxniA8IGhpdGV0c3VraW56b2t1XCA7Civlo6vlrpjlgJnoo5znlJ8gPCBzaGlrYW5rb3Vob3NlaVwgOwor5beh5Zue5Zuz5pu46aSoIDwganVua2FpdG9zaG9rYW5cIDsKK+S4ieeZvuS7o+iogCA8IHNhbmJ5YWt1ZGFpZ2VuXCA7CivlvrTlhbXlv4zpgb/ogIUgPCBjaG91aGVpa2loaXNoYVwgOwor5Ye66Ki05pyf6ZmQ5rOVIDwgc2h1c3Nva2lnZW5ob3VcIDsKK+S4reWbveS8neadpSA8IGNodXVnb2t1ZGVucmFpXCA7CivnrYvnhKHlipvnl4cgPCBraW5tdXJ5b2t1c2hvdVwgOwor5rWB6YCa6LOH5pysIDwgcnl1dXRzdXVzaGlob25cIDsKK+epuuWNs+aYr+iJsiA8IGt1dXNva3V6ZXNoaWtpXCA7CivmlZnogrLmlLnpnakgPCBreW91aWt1a2Fpa2FrdVwgOwor5YiH6ZaL5omL6KGTIDwgc2Vra2Fpc2h1anV0c3VcIDsKK+Wkp+WSjOmtgiA8IHlhbWF0b2RhbWFzaGlpXCA7CivkuIvlj7DmiYAgPCBzaGltb2RhaWRva29yb1wgOwor5pWR6K235rS75YuVIDwga3l1dWdva2F0c3Vkb3VcIDsKK+i7jeeUqOi8uOmAgeapnyA8IGd1bicneW91eXVzb3VraVwgOwor5a6j5Lyd5rS75YuVIDwgc2VuZGVua2F0c3Vkb3VcIDsKK+iyoeeUo+ebrumMsiA8IHphaXNhbm1va3Vyb2t1XCA7CivoqIDoqp7lnLDnkIblraYgPCBnZW5nb2NoaXJpZ2FrdVwgOwor5q2j5bi457WC5LqGIDwgc2Vpam91c2h1dXJ5b3VcIDsKK+WJjeaWueW+jOWGhuWisyA8IHplbnBvdWtvdWVuZnVuXCA7Civomavmp5jnqoHotbfngo4gPCBjaHV1eW91dG9ra2llblwgOwor5Lqh5ZG955Sf5rS7IDwgYm91bWVpc2Vpa2F0c3VcIDsKK+WEqui2iuikh+WQiCA8IHl1dWV0c3VmdWt1Z291XCA7CivntJTml6XmnKzlvI8gPCBqdW4nJ25paG9uc2hpa2lcIDsKK+acieW9ouaWh+WMluiyoSA8IHl1dWtlaWJ1bmthemFpXCA7Civml6fnn7PlmajmmYLku6MgPCBreXV1c2Vra2lqaWRhaVwgOwor5omL5b2i5Ymy5byVIDwgdGVnYXRhd2FyaWJpa2lcIDsKK+WLleeJqeW0h+aLnSA8IGRvdWJ1dHN1c3V1aGFpXCA7Civoh6rnlLHmsJHmqKnoq5YgPCBqaXl1dW1pbmtlbnJvblwgOwor5YWx5ZCM5L2P5a6FIDwga3lvdWRvdWp1dXRha3VcIDsKK+acieiii+WLleeJqSA8IHl1dXRhaWRvdWJ1dHN1XCA7CivkuInljYHkuozliIbpn7PnrKYgPCBzYW5qdXVuaWJ1b25wdVwgOwor56C055Sj6KOB5Yik5omAIDwgaGFzYW5zYWliYW5zaG9cIDsKK+S6uui6q+S/neitt+azlSA8IGppbnNoaW5ob2dvaG91XCA7CivooovlsI/ot6/mlocgPCBmdWt1cm9rb3VqaWJ1blwgOwor5pS+5bCE5oCn5YWD57SgIDwgaG91c2hhc2VpZ2Vuc29cIDsKK+eZveeggumdkuadviA8IGhha3VzaGFzZWlzaG91XCA7CivoirHlq4HlvqHlr64gPCBoYW5heW9tZWdvcnlvdVwgOwor5paw6Zmz5Luj6KydIDwgc2hpbmNoaW50YWlzaGFcIDsKK+S4gOWFremKgOihjCA8IGljaGlyb2t1Z2lua291XCA7CivlsLHogbfmlqHml4sgPCBzaHV1c2hva3Vhc3NlblwgOwor6Z6t5q+b6Jmr55eHIDwgYmVubW91Y2h1dXNob3VcIDsKK+e1tuS9k+e1tuWRvSA8IHpldHRhaXpldHN1bWVpXCA7Civnsr7npZ7liIbmnpAgPCBzZWlzaGluYnVuc2VraVwgOwor57O75YiX5Lya56S+IDwga2VpcmV0c3VnYWlzaGFcIDsKK+WIhuWtkOmWk+WKmyA8IGJ1bnNoaWthbnJ5b2t1XCA7CivkvIHmpa3miKbnlaUgPCBraWd5b3VzZW5yeWFrdVwgOwor5Zu95rCR5omA5b6XIDwga29rdW1pbnNob3Rva3VcIDsKK+i8uOWHuuWItumZkCA8IHl1c2h1dHN1c2VpZ2VuXCA7Civnibnlrprpipjmn4QgPCB0b2t1dGVpbWVpZ2FyYVwgOwor6LKh5YuZ5L2T6LOqIDwgemFpbXV0YWlzaGl0c3VcIDsKK+itpuWvn+WtpuagoSA8IGtlaXNhdHN1Z2Fra291XCA7CivkuI3ms5XkvrXlhaUgPCBmdWhvdXNoaW4nJ255dXVcIDsKK+WwseiBt+WPoyA8IHNodXVzaG9rdWd1Y2hpXCA7CivnlJ/mtLvoqK3oqIggPCBzZWlrYXRzdXNla2tlaVwgOwor5o2V6Jmc5Y+O5a655omAIDwgaG9yeW9zaHV1eW91am9cIDsKK+i7veiWhOefreWwjyA8IGtlaWhha3V0YW5zaG91XCA7CivnrpfooZPlubPlnYcgPCBzYW5qdXRzdWhlaWtpblwgOwor5Y2z5bit5paZ55CGIDwgc29rdXNla2lyeW91cmlcIDsKK+eJqeeQhueZguazlSA8IGJ1dHN1cmlyeW91aG91XCA7CivnlJ/oqIjosrvmjIfmlbAgPCBzZWlrZWloaXNoaXN1dVwgOwor6Z2S6YW45Lit5q+SIDwgc2Vpc2FuY2h1dWRva3VcIDsKK+Wul+aVmeazleS6uiA8IHNodXVreW91aG91amluXCA7CivlhpnnnJ/mpI3lrZcgPCBzaGFzaGluc2hva3VqaVwgOwor57eK57iu6LKh5pS/IDwga2luc2h1a3V6YWlzZWlcIDsKK+WNmOaAp+eUn+auliA8IHRhbnNlaXNlaXNob2t1XCA7Civlm73kvJrlm7Pmm7jppKggPCBrb2trYWl0b3Nob2thblwgOwor6auY562J55Sf54mpIDwga291dG91c2VpYnV0c3VcIDsKK+mrmOetieW8geWLmeWumCA8IGtvdXRvdWJlbm11a2FuXCA7CivmmYLplpPpoIbluo/nqY0gPCBqaWthbmp1bmpvc2VraVwgOwor5L+d6Ki854mb5LmzIDwgaG9zaG91Z3l1dW55dXVcIDsKK+eti+iCieizqiA8IGtpbicnbmlrdXNoaXRzdVwgOwor5Yqb5LuV5LqLIDwgY2hpa2FyYXNoaWdvdG9cIDsKK+WPl+iDjuiqv+evgCA8IGp1dGFpY2hvdXNldHN1XCA7CivlnLDnkIPmuKnmmpbljJYgPCBjaGlreXV1b25kYW5rYVwgOwor6YCP5p6Q55mC5rOVIDwgdG91c2VraXJ5b3Vob3VcIDsKK+mdnuW4uOWLpOism+W4qyA8IGhpam91a2lua291c2hpXCA7Civlq6Hlh7rlrZAgPCBjaGFrdXNodXRzdXNoaVwgOwor5oSf6Kaa56We57WMIDwga2Fua2FrdXNoaW5rZWlcIDsKK+iHquWLlei7iuWtpuagoSA8IGppZG91c2hhZ2Fra291XCA7CivnqI7ph5Hpgb/pm6PlnLAgPCB6ZWlraW5oaW5hbmNoaVwgOwor5Lq66YGT55qE5o+05YqpIDwgamluZG91dGVraWVuam9cIDsKK+WwgumWgOefpeitmCA8IHNlbm1vbmNoaXNoaWtpXCA7Civou43mi6Hnq7bkuokgPCBndW5rYWt1a3lvdXNvdVwgOwor54mH6KKW5py6IDwga2F0YXNvZGVkenVrdWVcIDsKK+eZu+WgtOS6uueJqSA8IHRvdWpvdWppbmJ1dHN1XCA7CivmtojosrvogIXpgYvli5UgPCBzaG91aGlzaGF1bmRvdVwgOwor6Z2e54++5a6f55qEIDwgaGlnZW5qaXRzdXRla2lcIDsKK+mAhuaAp+efs+m5uCA8IGd5YWt1c2Vpc2Vra2VuXCA7CivlirTlg43ln7rmupbms5UgPCByb3Vkb3VraWp1bmhvdVwgOwor5bm96ZaA54ut56qEIDwgeXV1bW9ua3lvdXNha3VcIDsKK+mAo+mCpuW9k+WxgCA8IHJlbnBvdXRvdWt5b2t1XCA7Civnm7TlsITml6XlhYkgPCBjaG9rdXNoYW5pa2tvdVwgOwor5YWI5Lu75bCG5qChIDwgc2VuJyduaW5zaG91a291XCA7CivorLnljrPlrp/nm7QgPCBraW5nZW5qaXRjaG9rdVwgOwor5ryi5a2X5Yi26ZmQ6KuWIDwga2FuamlzZWlnZW5yb25cIDsKK+W6l+mgreWPluW8lSA8IHRlbnRvdXRvcmloaWtpXCA7CivljZLmpa3lvI8gPCBzb3RzdWd5b3VzaGlraVwgOwor55m65aOy56aB5q2iIDwgaGF0c3ViYWlraW5zaGlcIDsKK+WTgeizqueuoeeQhiA8IGhpbnNoaXRzdWthbnJpXCA7Civnt6jlhaXoqabpqJMgPCBoZW4nJ255dXVzaGlrZW5cIDsKK+S8nemBlOmWouaVsCA8IGRlbnRhdHN1a2Fuc3V1XCA7CivlsL3lv6DloLHlm70gPCBqaW5jaHV1aG91a29rdVwgOwor5Yq05L2/5Y2U6Kq/IDwgcm91c2hpa3lvdWNob3VcIDsKK+WRqOazouaVsOWBj+enuyA8IHNodXVoYXN1dWhlbicnaVwgOwor55m+6Imy55y86Y+hIDwgaHlha3Vpcm9tZWdhbmVcIDsKK+S4reaAp+WtkOadnyA8IGNodXVzZWlzaGlzb2t1XCA7CivnhKHliLbpmZDosr/mmJMgPCBtdXNlaWdlbmJvdWVraVwgOwor57eK5oCl5a++562WIDwga2lua3l1dXRhaXNha3VcIDsKK+WNsOWIt+aKgOihkyA8IGluc2F0c3VnaWp1dHN1XCA7CivmrKHlhYPmraPliYfljJYgPCBqaWdlbnNlaXNva3VrYVwgOwor5b+D55qE6KGo56S6IDwgc2hpbnRla2loeW91amlcIDsKK+WFiemAmuS/oSA8IGhpa2FyaXRzdXVzaGluXCA7CivlkI3miYDml6fot6EgPCBtZWlzaG9reXV1c2VraVwgOwor5oqV6LOH5L+h6KiXIDwgdG91c2hpc2hpbnRha3VcIDsKK+S6uuWQjeeUqOa8ouWtlyA8IGppbm1laXlvdWthbmppXCA7CivmlrDpn5Plm73lhZogPCBzaGlua2Fua29rdXRvdVwgOwor5Zu96Zqb5p2h57SEIDwga29rdXNhaWpvdXlha3VcIDsKK+S4g+WgguS8veiXjSA8IHNoaWNoaWRvdWdhcmFuXCA7Civopqrml4/plqLkv4IgPCBzaGluem9rdWthbmtlaVwgOwor5b6B5aS35aSn5bCG6LuNIDwgc2VpaXRhaXNob3VndW5cIDsKK+WCmOW9oueijeWtkCA8IGthc2FnYXRhZ2Fpc2hpXCA7CivnlKPmpa3kuojlgpnou40gPCBzYW5neW91eW9iaWd1blwgOwor5oKq5ryi5bCP6KqsIDwgYWtrYW5zaG91c2V0c3VcIDsKK+WIqeWtkOW5s+ihoeeojiA8IHJpc2hpaGVpa291emVpXCA7CivnhKHku7vmiYDlpKfoh6MgPCBtdW5pbnNob2RhaWppblwgOwor5YWs5pW15LiA5Y+3IDwga291dGVraWljaGlnb3VcIDsKK+awtOizquaxmua/gSA8IHN1aXNoaXRzdW9kYWt1XCA7Civnsr7npZ7nmYLms5UgPCBzZWlzaGlucnlvdWhvdVwgOwor5Y+W57eg5rOVIDwgdG9yaXNoaW1hcmlob3VcIDsKK+iMq+eEtuiHquWksSA8IGJvdXplbmppc2hpdHN1XCA7CivlnLDos6rmmYLku6MgPCBjaGlzaGl0c3VqaWRhaVwgOwor56uL5YWl56aB5q2iIDwgdGFjaGlpcmlraW5zaGlcIDsKK+Wkp+WQjOWbo+e1kCA8IGRhaWRvdWRhbmtldHN1XCA7Civkuozph43nm7LmpJzms5UgPCBuaWp1dW1vdWtlbmhvdVwgOwor6LKv6YeR6YCa5bizIDwgY2hva2ludHN1dWNob3VcIDsKK+aWjuaIkuaykOa1tCA8IHNhaWthaW1va3V5b2t1XCA7CivmlrDliLblpKflraYgPCBzaGluc2VpZGFpZ2FrdVwgOwor5YWx5ZCM6LKs5Lu7IDwga3lvdWRvdXNla2luaW5cIDsKK+aWsOiBnueZuuihqCA8IHNoaW5idW5oYXBweW91XCA7Civou4rlhoXmlLnmnK0gPCBzaGFuYWlrYWlzYXRzdVwgOwor6Ieq6LOg6LKs5L+d6Zm6IDwgamliYWlzZWtpaG9rZW5cIDsKK+aYhuiZq+WtpuiAhSA8IGtvbmNodXVnYWt1c2hhXCA7CivpgIDogbflubTph5EgPCB0YWlzaG9rdW5lbmtpblwgOwor5YiG5Ymy57Wx5rK7IDwgYnVua2F0c3V0b3VjaGlcIDsKK+eiuueOh+mBjueoiyA8IGtha3VyaXRzdWthdGVpXCA7Civph43ngq3phbjmm7npgZQgPCBqdXV0YW5zYW5zb3VkYVwgOwor56CU56m255m66KGoIDwga2Vua3l1dWhhcHB5b3VcIDsKK+aXp+e0hOiBluabuCA8IGt5dXV5YWt1c2Vpc2hvXCA7CivmiYvooZPlrqQgPCBzaHVqdXRzdXNoaXRzdVwgOwor6JKy6Ym+5YW16IiOIDwga2FtYWJva29oZWlzaGFcIDsKK+e1jOiyu+evgOe0hCA8IGtlaWhpc2V0c3V5YWt1XCA7CivnrYvokI7nuK7nl4cgPCBraW4nJ2lzaHVrdXNob3VcIDsKK+WEqueUn+aJi+ihkyA8IHl1dXNlaXNodWp1dHN1XCA7CivlhazlhbHmlpnph5EgPCBrb3VreW91cnlvdWtpblwgOwor5by35Yi25Lit5patIDwga3lvdXNlaWNodXVkYW5cIDsKK+S4h+acieW8leWKmyA8IGJhbicneXV1aW5yeW9rdVwgOwor56uL5aSq5a2Q5byPIDwgcml0dGFpc2hpc2hpa2lcIDsKK+aXpeWGheWRqOacnyA8IG5pY2hpbmFpc2h1dWtpXCA7CivmhrLms5Xop6Pph4ggPCBrZW5wb3VrYWlzaGFrdVwgOwor6ZW36Led6Zui6Zu76KmxIDwgY2hvdWt5b3JpZGVud2FcIDsKK+e+jueahOeUn+a0uyA8IGJpdGVraXNlaWthdHN1XCA7Civlm6PkvZPlibLlvJUgPCBkYW50YWl3YXJpYmlraVwgOwor5Zu96Zqb5Lqk5rWBIDwga29rdXNhaWtvdXJ5dXVcIDsKK+ippuedgOWupCA8IHNoaWNoYWt1c2hpdHN1XCA7CivlhqDnirbpnZnohIggPCBrYW5qb3Vqb3VteWFrdVwgOwor6YCG5LiJ6KeS5b2iIDwgZ3lha3VzYW5rYWtrZWlcIDsKK+ikh+mbkeaAquWlhyA8IGZ1a3V6YXRzdWthaWtpXCA7CivpgbrkvJ3lrZDlt6XlraYgPCBpZGVuc2hpa291Z2FrdVwgOwor6auY5bGk5bu656+JIDwga291c291Z2VuY2hpa3VcIDsKK+S4jeWPr+iDvemBuOaKniA8IGZ1a2Fub3VzZW50YWt1XCA7CivnnJ/nj6DppIrmrpYgPCBzaGluanV5b3VzaG9rdVwgOwor55Sz5ZGK55So57SZIDwgc2hpbmtva3V5b3VzaGlcIDsKK+WxgOWcsOaIpuS6iSA8IGt5b2t1Y2hpc2Vuc291XCA7CivniIbnmbrniakgPCBiYWt1aGF0c3VidXRzdVwgOwor6YeN6KaB5Lq654mpIDwganV1eW91amluYnV0c3VcIDsKK+a0u+eJiOWNsOWItyA8IGthcHBhbicnaW5zYXRzdVwgOwor6YCj5pel6YCj5aScIDwgcmVuaml0c3VyZW4nJ3lhXCA7CivkuInogIXlr77nq4sgPCBzYW5zaGF0YWlyaXRzdVwgOwor5rGC5aa75bqD5ZGKIDwga3l1dXNhaWtvdWtva3VcIDsKK+eLguiogOiHquauuiA8IGt5b3VnZW5qaXNhdHN1XCA7CivnjKrmrabogIUgPCBpbm9zaGlzaGltdXNoYVwgOwor5oCn5p+T6Imy5L2TIDwgc2Vpc2Vuc2hva3V0YWlcIDsKK+WHuOeJiOWNsOWItyA8IHRvcHBhbicnaW5zYXRzdVwgOwor5Yi66Lqr5YyF5LiBIDwgc2FzaGltaWJvdWNob3VcIDsKK+aXpeexs+iyv+aYkyA8IG5pY2hpYmVpYm91ZWtpXCA7Civlj6Xmp4vpgKDopo/liYcgPCBrdWtvdXpvdWtpc29rdVwgOwor5omL5b2i5Lqk5o+b5omAIDwgdGVnYXRha291a2Fuam9cIDsKK+i7jeS6i+WNlOWKmyA8IGd1bmppa3lvdXJ5b2t1XCA7CivlpKfpu5Lmn7EgPCBkYWlrb2t1YmFzaGlyYVwgOwor5qW16ZmQ54q25oWLIDwga3lva3VnZW5qb3V0YWlcIDsKK+eJqeeQhuePvuixoSA8IGJ1dHN1cmlnZW5zaG91XCA7CivlnLDmlrnoh6rmsrvkvZMgPCBjaGlob3VqaWNoaXRhaVwgOwor5Lq66Lqr5pS75pKDIDwgamluc2hpbmtvdWdla2lcIDsKK+iomOaGtuWWquWksSA8IGtpb2t1c291c2hpdHN1XCA7CivkuI3opo/liYfli5XoqZ4gPCBmdWtpc29rdWRvdXNoaVwgOwor56S+5Lya56ep5bqPIDwgc2hha2FpY2hpdHN1am9cIDsKK+WujOWFqOS4u+e+qeiAhSA8IGthbnplbnNodWdpc2hhXCA7CivmuJvkvqHlhJ/ljbQgPCBnZW5rYXNob3VreWFrdVwgOwor6Y6W5bi35a2QIDwga3VzYXJpa2F0YWJpcmFcIDsKK+epuuS4reafu+WvnyA8IGt1dWNodXVzYXNhdHN1XCA7CivntKDkurroip3lsYUgPCBzaGlyb3V0b3NoaWJhaVwgOwor5LiA5YWt5Yud6LKgIDwgaWNoaXJva3VzaG91YnVcIDsKK+S6pOmfv+alveWboyA8IGtvdWt5b3VnYWt1ZGFuXCA7CivooYDmtrLpioDooYwgPCBrZXRzdWVraWdpbmtvdVwgOwor5ZWG5ZOB5Zyo6auYIDwgc2hvdWhpbnphaWRha2FcIDsKK+eJqeeQhuWtpuiAhSA8IGJ1dHN1cmlnYWt1c2hhXCA7CivkuI3our7ogIUgPCBidXNoaXRzdWtlbW9ub1wgOwor5bm055m+5bm05LitIDwgbmVuYnlha3VuZW5qdXVcIDsKK+aeneiRieacq+evgCA8IHNoaXlvdW1hc3NldHN1XCA7Civou43pmornlJ/mtLsgPCBndW50YWlzZWlrYXRzdVwgOwor5q+U6LyD55qE5bCPIDwgaGlrYWt1dGVraXNob3VcIDsKK+ani+aIkOe0oOani+mAoCA8IGtvdXNlaXNva291em91XCA7CivmvZzlnKjog73lipsgPCBzZW56YWlub3VyeW9rdVwgOwor5bel5a2m5Y2a5aOrIDwga291Z2FrdWhha3VzaGlcIDsKK+acieWEn+Wlkee0hCA8IHl1dXNob3VrZWl5YWt1XCA7CivmlrDogZ7luoPlkYogPCBzaGluYnVua291a29rdVwgOwor5LiK57Sa5pu56ZW3IDwgam91a3l1dXNvdWNob3VcIDsKK+S5seiouuS5seeZgiA8IHJhbnNoaW5yYW5yeW91XCA7CivovInosqjlkIPmsLTnt5ogPCBzYWlrYWtpc3N1aXNlblwgOwor6ZuG5ZCI5L2P5a6FIDwgc2h1dWdvdWp1dXRha3VcIDsKK+W+oemjn+S6i+WHpiA8IG9zaG9rdWppZG9rb3JvXCA7CivppIrmrpbnnJ/nj6AgPCB5b3VzaG9rdXNoaW5qdVwgOwor5YaF6YOo5ZGK55m6IDwgbmFpYnVrb2t1aGF0c3VcIDsKK+WQjeebruizg+mHkSA8IG1laW1va3VjaGluZ2luXCA7CivkuInoibLoj6sgPCBzYW5zaG9rdXN1bWlyZVwgOwor55u45a++5rm/5bqmIDwgc291dGFpc2hpdHN1ZG9cIDsKK+WtpuagoeeUn+a0uyA8IGdha2tvdXNlaWthdHN1XCA7CivlhaXlm73mn7voqLwgPCBueXV1a29rdXNhc2hvdVwgOwor6Ieq5b6L56We57WMIDwgamlyaXRzdXNoaW5rZWlcIDsKK+awtOmKgOa4qeW6puioiCA8IHN1aWdpbicnb25kb2tlaVwgOwor5aeJ5qeY5Lq65b2iIDwgYW5lc2FtYW5pbmd5b3VcIDsKK+ihneaSg+mWouaVsCA8IHNob3VnZWtpa2Fuc3V1XCA7Civlt6foqIDku6ToibIgPCBrb3VnZW5yZWlzaG9rdVwgOwor5aSJ5rip5YuV54mpIDwgaGVuJydvbmRvdWJ1dHN1XCA7CivmlbDnkIboq5bnkIblraYgPCBzdXVyaXJvbnJpZ2FrdVwgOwor5Y6f5aeL5YuV54mpIDwgZ2Vuc2hpZG91YnV0c3VcIDsKK+epuumWk+iKuOihkyA8IGt1dWthbmdlaWp1dHN1XCA7CivnmoflpKrlrZDmrr/kuIsgPCBrb3V0YWlzaGlkZW5rYVwgOwor5Ye65Yqb57eaIDwgc2h1dHN1cnlva3VzZW5cIDsKK+mWi+W6l+S8kealrSA8IGthaXRlbmt5dXVneW91XCA7CivlqK/mpb3mlr3oqK0gPCBnb3Jha3VzaGlzZXRzdVwgOwor5Y2K5rC45LmF55qEIDwgaGFuJydlaWt5dXV0ZWtpXCA7Civnp4Hnq4sgPCB3YXRha3VzaGlyaXRzdVwgOwor5oim5LqJ5pyq5Lqh5Lq6IDwgc2Vuc291bWlib3VqaW5cIDsKK+mjn+ezp+S6i+aDhSA8IHNob2t1cnlvdWppam91XCA7Civlj6/pgIblj43lv5wgPCBrYWd5YWt1aGFuJydub3VcIDsKK+egtOeUo+euoeiyoeS6uiA8IGhhc2Fua2FuemFpbmluXCA7CivnibnliKXkvJrlk6EgPCB0b2t1YmV0c3VrYWlpblwgOwor5q275rS75ZWP6aGMIDwgc2hpa2F0c3Vtb25kYWlcIDsKK+ezu+e1seelnuWtpiA8IGtlaXRvdXNoaW5nYWt1XCA7Civou5/pqqjprZrpoZ4gPCBuYW5rb3RzdWd5b3J1aVwgOwor5ZCE5Lq65ZCE5qeYIDwga2FrdWppbmtha3V5b3VcIDsKK+mAmuS/oeS6i+alrSA8IHRzdXVzaGluamlneW91XCA7CivljZTlrprkuJbnlYzmmYIgPCBreW91dGVpc2VrYWlqaVwgOwor6LK/5piT6Zqc5aOBIDwgYm91ZWtpc2hvdWhla2lcIDsKK+WNmOS4gOmAmuiyqCA8IHRhbicnaXRzdXRzdXVrYVwgOwor5Y2D5Lih5b256ICFIDwgc2VucnlvdXlha3VzaGFcIDsKK+WIsOedgOaZguWIuyA8IHRvdWNoYWt1amlrb2t1XCA7CivmtbfkuIrkv53lronluoEgPCBrYWlqb3Vob2FuY2hvdVwgOwor5qaC566X6KaB5rGCIDwgZ2Fpc2FuJyd5b3VreXV1XCA7CivniIbnmbrlipsgPCBiYWt1aGF0c3VyeW9rdVwgOwor5Zu95rCR5bm06YeRIDwga29rdW1pbicnbmVua2luXCA7Civms6XmsLTnqLzmpa0gPCBkb3JvbWl6dWthZ3lvdVwgOwor54m555Ww5YCk5YiG6KejIDwgdG9rdWljaGlidW5rYWlcIDsKK+WcqOaXpeexs+i7jSA8IHphaW5pY2hpYmVpZ3VuXCA7CivotorlooPlhaXlraYgPCBla2t5b3VueXV1Z2FrdVwgOwor5rCR5Za25YyW5LyB5qWtIDwgbWluJydlaWtha2lneW91XCA7CivmlbDnkIblk7LlraYgPCBzdXVyaXRldHN1Z2FrdVwgOwor5ZSv54mp5Y+y6KazIDwgeXVpYnV0c3VzaGlrYW5cIDsKK+WVhualreWtpuagoSA8IHNob3VneW91Z2Fra291XCA7Civlt6blpKfmi6zlvKcgPCBoaWRhcmlkYWlrYWtrb1wgOwor5rCR5peP57K+56WeIDwgbWluem9rdXNlaXNoaW5cIDsKK+Wun+WKm+ihjOeCuiA8IGppdHN1cnlva3Vrb3VpXCA7CivlpKfopb/mtIvmqKrmlq0gPCB0YWlzZWl5b3VvdWRhblwgOwor5rW357a/5YuV54mpIDwga2FpbWVuZG91YnV0c3VcIDsKK+exs+i7jeWFteWKmyA8IGJlaWd1bmhlaXJ5b2t1XCA7CivnnYDkv6HlsYAgPCBjaGFrdXNoaW5reW9rdVwgOwor5Lq65bel6YG/5aaK5rOVIDwgamlua291aGluaW5ob3VcIDsKK+WwseWtpuW5tOm9oiA8IHNodXVnYWt1bmVucmVpXCA7CivpibHnianos4fmupAgPCBrb3VidXRzdXNoaWdlblwgOwor6Luf5byP6YeO55CDIDwgbmFuc2hpa2l5YWt5dXVcIDsKK+S/oeiol+e1seayuyA8IHNoaW50YWt1dG91Y2hpXCA7CivntYzmuIjmtLvli5UgPCBrZWl6YWlrYXRzdWRvdVwgOwor5YW15byP5L2T5pONIDwgaGVpc2hpa2l0YWlzb3VcIDsKK+mtmue+pOaOouefpeapnyA8IGd5b2d1bnRhbmNoaWtpXCA7CivnlJ/mrpbntLDog54gPCBzZWlzaG9rdXNhaWJvdVwgOwor5Zyw5b2i5ris6YePIDwgY2hpa2Vpc29rdXJ5b3VcIDsKK+WVhualreizh+acrCA8IHNob3VneW91c2hpaG9uXCA7CivpgYrpm6Lln7rlj43lv5wgPCB5dXVyaWtpaGFuJydub3VcIDsKK+Wwj+eUsOWOn+ipleWumiA8IG9kYXdhcmFoeW91am91XCA7CivmlbDlgKTnm67mqJkgPCBzdXVjaGltb2t1aHlvdVwgOwor6aiS6Z+z6Ziy5q2i5rOVIDwgc291b25ib3VzaGlob3VcIDsKK+S4gOW+l+S4gOWksSA8IGl0dG9rdWlzc2hpdHN1XCA7CivpgJrkv6Hosqnlo7IgPCB0c3V1c2hpbmhhbmJhaVwgOwor5by35Yi25Z+36KGMIDwga3lvdXNlaXNoaWtrb3VcIDsKK+W5u+immueXh+eKtiA8IGdlbmtha3VzaG91am91XCA7Civmh5DliIAgPCBmdXRva29yb2dhdGFuYVwgOwor55aR5ZWP5Luj5ZCN6KmeIDwgZ2ltb25kYWltZWlzaGlcIDsKK+WMl+mZuOWcsOaWuSA8IGhva3VyaWt1Y2hpaG91XCA7CivlibLlvJXnmbrooYwgPCB3YXJpYmlraWhha2tvdVwgOwor5bqD5aCx5rS75YuVIDwga291aG91a2F0c3Vkb3VcIDsKK+WxsemrmOW4veWtkCA8IHlhbWF0YWthYm91c2hpXCA7Civmn5PoibLlt6XloLQgPCBzZW5zaG9rdWtvdWpvdVwgOwor5YWs5byP6Kiq5ZWPIDwga291c2hpa2lob3Vtb25cIDsKK+aOkuWHuueJqSA8IGhhaXNodXRzdWJ1dHN1XCA7Civnt4/lkIjplovnmbogPCBzb3Vnb3VrYWloYXRzdVwgOwor6YCj56uL5pS/5qipIDwgcmVucml0c3VzZWlrZW5cIDsKK+W3ruWIpeihqOePviA8IHNhYmV0c3VoeW91Z2VuXCA7CivmqKnlipvpl5jkuokgPCBrZW5yeW9rdXRvdXNvdVwgOwor55u45a++5oCn55CG6KuWIDwgc291dGFpc2Vpcmlyb25cIDsKK+ijveWTgeaIpueVpSA8IHNlaWhpbnNlbnJ5YWt1XCA7CivliIbmsLTlsbHohIggPCBidW5zdWlzYW5teWFrdVwgOwor6YW45YyW6Ziy5q2i5YmkIDwgc2Fua2Fib3VzaGl6YWlcIDsKK+esrOS6jOasoeeUo+alrSA8IGRhaW5pamlzYW5neW91XCA7CivpibHnianos6ogPCBrb3VidXRzdXNoaXRzdVwgOwor5pyJ5qmf5aGp5rq25aqSIDwgeXV1a2llbicneW91YmFpXCA7Civoqpjpm7vmraPmjqUgPCB5dXVkZW5zZWlzZXRzdVwgOwor55+l6Kaa56We57WMIDwgY2hpa2FrdXNoaW5rZWlcIDsKK+mAkOadoeWvqeitsCA8IGNoaWt1am91c2hpbmdpXCA7CivljYPls7bliJfls7YgPCBjaGlzaGltYXJldHRvdVwgOwor6Ly45Ye66LaF6YGOIDwgeXVzaHV0c3VjaG91a2FcIDsKK+mbu+WtkOioiOeul+apnyA8IGRlbnNoaWtlaXNhbmtpXCA7CivlsIrnjovoqI7luZUgPCBzb24nJ25vdXRvdWJha3VcIDsKK+aIpumXmOeKoOeJsuiAhSA8IHNlbnRvdWdpc2Vpc2hhXCA7Civmg4XloLHpgJrkv6EgPCBqb3Vob3V0c3V1c2hpblwgOwor5oyv5Ye65bGAIDwgZnVyaWRhc2hpa3lva3VcIDsKK+awkemWk+iIquepuuapnyA8IG1pbmthbmtvdWt1dWtpXCA7CivotoXotorkuqTku6MgPCBjaG91ZXRzdWtvdXRhaVwgOwor5Y+N5oim5Li7576p6ICFIDwgaGFuc2Vuc2h1Z2lzaGFcIDsKK+eUn+a0u+epuumWkyA8IHNlaWthdHN1a3V1a2FuXCA7CivliY3nq4vohbrngo4gPCB6ZW5yaXRzdXNlbicnZW5cIDsKK+Wft+WLmeWupCA8IHNoaXRzdW11c2hpdHN1XCA7CivooYzmlL/mlLnpnakgPCBneW91c2Vpa2Fpa2FrdVwgOwor5b6L5Luk5Zu95a62IDwgcml0c3VyeW91a29ra2FcIDsKK+W/g+mciuePvuixoSA8IHNoaW5yZWlnZW5zaG91XCA7CivnlJ/oqpXnmb7lubQgPCBzZWl0YW5oeWFrdW5lblwgOwor6Ieq5YuV552A5L+hIDwgamlkb3VjaGFrdXNoaW5cIDsKK+eZuueGsemHjyA8IGhhdHN1bmV0c3VyeW91XCA7CivnrKzkuInli6LlipsgPCBkYWlzYW5zZWlyeW9rdVwgOwor5aSn5YWr6LuKIDwgZGFpaGFjaGlndXJ1bWFcIDsKK+abuOeVmemDteS+vyA8IGtha2l0b21leXV1YmluXCA7CivoprPlhYnmoYjlhoXmiYAgPCBrYW5rb3VhbicnbmFpam9cIDsKK+efpeitmOS9k+ezuyA8IGNoaXNoaWtpdGFpa2VpXCA7Civpm4blkIjoqJjov7AgPCBzaHV1Z291a2lqdXRzdVwgOwor5LiJ55m+6Ku45L6vIDwgc2FuYnlha3VzaG9rb3VcIDsKK+mrmOm9ouWMluekvuS8miA8IGtvdXJlaWthc2hha2FpXCA7CivoqJjlj7foq5bnkIblraYgPCBraWdvdXJvbnJpZ2FrdVwgOwor5aSn6KGG5paH5a2mIDwgdGFpc2h1dWJ1bmdha3VcIDsKK+S4reetieaVmeiCsiA8IGNodXV0b3VreW91aWt1XCA7CivmlZnogrLooYzmlL8gPCBreW91aWt1Z3lvdXNlaVwgOwor55u05o6l55qEIDwgY2hva3VzZXRzdXRla2lcIDsKK+atpuijheS4reeriyA8IGJ1c291Y2h1dXJpdHN1XCA7CivlubPlkozljZTlipsgPCBoZWl3YWt5b3VyeW9rdVwgOwor5oyH5ZCN5omL6YWN5Lq6IDwgc2hpbWVpdGVoYWlqaW5cIDsKK+mbu+mJhOS8muekviA8IGRlbnRldHN1Z2Fpc2hhXCA7Civoh6rou6Lou4rml4XooYwgPCBqaXRlbnNoYXJ5b2tvdVwgOwor5Ye65bit5pel5pWwIDwgc2h1c3Nla2luaXNzdXVcIDsKK+ecjOeri+eXhemZoiA8IGtlbnJpdHN1YnlvdWluXCA7CivlubPlnYflpKrpmb3mmYIgPCBoZWlraW50YWl5b3VqaVwgOwor5YGP5peB5Yag6ISaIDwgaGVuYm91a2Fua3lha3VcIDsKK+Wlveawl+aAp+e0sOiPjCA8IGtvdWtpc2Vpc2Fpa2luXCA7Civosqnlo7Lkv4PpgLIgPCBoYW5iYWlzb2t1c2hpblwgOwor5L+h6KiX5oqV6LOHIDwgc2hpbnRha3V0b3VzaGlcIDsKK+mbu+azouacm+mBoOmPoSA8IGRlbnBhYm91ZW5reW91XCA7CivkuK3lsI/kvIHmpa0gPCBjaHV1c2hvdWtpZ3lvdVwgOwor5LiJ6KGM5bqD5ZGKIDwgc2FuZ3lvdWtvdWtva3VcIDsKK+ihgOa2suW+queSsCA8IGtldHN1ZWtpanVua2FuXCA7CivpgKPntZDmsbrnrpcgPCByZW5rZXRzdWtlc3NhblwgOworzrjnkIboq5YgPCBzaGlcIMyEdGFcIMyEcmlyb25cIDsKK+aUueacremLjyA8IGthaXNhdHN1aGFzYW1pXCA7Civpqqjou5/ljJbnl4cgPCBrb3RzdW5hbmthc2hvdVwgOwor5Yq05YON6YGL5YuV6ICFIDwgcm91ZG91dW5kb3VzaGFcIDsKK+aUv+ayu+WTsuWtpiA8IHNlaWppdGV0c3VnYWt1XCA7CivllYbmpa3mlL7pgIEgPCBzaG91Z3lvdWhvdXNvdVwgOwor5Zu96Ziy57eP55yBIDwga29rdWJvdXNvdXNob3VcIDsKK+eUn+a0u+aMh+WwjiA8IHNlaWthdHN1c2hpZG91XCA7Civngo7nhrHlnLDnjYQgPCBlbicnbmV0c3VqaWdva3VcIDsKK+WFq+mdoueOsueTjyA8IGhhY2hpbWVucmVpcm91XCA7CivpnaLkvJrorJ3ntbYgPCBtZW5rYWlzaGF6ZXRzdVwgOwor6YGT6Lev5qiZ6K2YIDwgZG91cm9oeW91c2hpa2lcIDsKK+WbveWWtumAmuS/oSA8IGtva3VlaXRzdXVzaGluXCA7CivpnIfngb3oqJjlv7Xml6UgPCBzaGluc2Fpa2luZW5iaVwgOwor6YGp5p2Q6YGp5omAIDwgdGVraXphaXRla2lzaG9cIDsKK+WKh+eXh+iCneeCjiA8IGdla2lzaG91a2FuJydlblwgOwor54mp5oOF6aiS54S2IDwgYnV0c3Vqb3Vzb3V6ZW5cIDsKK+W/nea2mSA8IGthdGFqaWtlbmFtaWRhXCA7CivlhazmsJHnlJ/mtLsgPCBrb3VtaW5zZWlrYXRzdVwgOwor5YWl5a2m6Kmm6aiTIDwgbnl1dWdha3VzaGlrZW5cIDsKK+aCquW+s+aUv+ayu+WutiA8IGFrdXRva3VzZWlqaWthXCA7Civmg4XloLHkuLvopoHntKAgPCBqb3Vob3VzaHV5b3Vzb1wgOwor5ZCI5ZSx6ZqK6ZW3IDwgZ2Fzc2hvdXRhaWNob3VcIDsKK+S5vueHpeeJm+S5syA8IGthbnNvdWd5dXVueXV1XCA7Civnm7Tns7vlsIrlsZ4gPCBjaG9ra2Vpc29uem9rdVwgOwor5YWl5a2m6aGY5pu4IDwgbnl1dWdha3VnYW5zaG9cIDsKK+WHuueZuuaZgumWkyA8IHNodXBwYXRzdWppa2FuXCA7CivkuLvopoHkurrniakgPCBzaHV5b3VqaW5idXRzdVwgOwor5YWs5q2m5ZCI5L2T6KuWIDwga291YnVnYXR0YWlyb25cIDsKK+S4jeadn+iAhSA8IGZ1dHN1dHN1a2Ftb25vXCA7Civnh5XljYPps6UgPCB0c3ViYW1lY2hpZG9yaVwgOwor5paH5a2m5L2c5ZOBIDwgYnVuZ2FrdXNha3VoaW5cIDsKK+mbu+WFieaOsuekuuadvyA8IGRlbmtvdWtlaWppYmFuXCA7Civou73kvr/piYTpgZMgPCBrZWliZW50ZXRzdWRvdVwgOwor5Ymy5byV5biC5aC0IDwgd2FyaWJpa2lzaGlqb3VcIDsKK+Wksei4quWuo+WRiiA8IHNoaXNzb3VzZW5rb2t1XCA7CivljJblrabntZDlkIggPCBrYWdha3VrZXRzdWdvdVwgOwor5L+d6Zm65paZ546HIDwgaG9rZW5yeW91cml0c3VcIDsKK+S+oembu+WtkOeKtuaFiyA8IGthZGVuc2hpam91dGFpXCA7Civkv6HotormnKznt5ogPCBzaGluZXRzdWhvbnNlblwgOwor56We57WM5Lit5p6iIDwgc2hpbmtlaWNodXVzdXVcIDsKK+eZuuWFieWLleeJqSA8IGhha2tvdWRvdWJ1dHN1XCA7CivmsLTnlKPliqDlt6Xlk4EgPCBzdWlzYW5rYWtvdWhpblwgOwor5bmz6Z2i5bm+5L2V5a2mIDwgaGVpbWVua2lrYWdha3VcIDsKK+ikh+W8j+eBq+WxsSA8IGZ1a3VzaGlraWthemFuXCA7CivloIXlv43kuI3mipwgPCBrZW4nJ25pbmZ1YmF0c3VcIDsKK+iAkOS5j+eUn+a0uyA8IHRhaWJvdXNlaWthdHN1XCA7CivnpL7kvJrpgJrlv7UgPCBzaGFrYWl0c3V1bmVuXCA7CivmjqXlrqLmhYvluqYgPCBzZWtreWFrdXRhaWRvXCA7Civou73niIbmkoPmqZ8gPCBrZWliYWt1Z2VraWtpXCA7CivljZfmnbEgPCBtaW5hbWloaWdhc2hpXCA7CivnvbLlkI3mjbrljbAgPCBzaG9tZWluYXRzdWluXCA7CivkvJHmhqnlrqQgPCBreXV1a2Vpc2hpdHN1XCA7Civog7jpg6jnlr7mgqMgPCBreW91YnVzaGlra2FuXCA7CivosaHniZnlj5blvJUgPCB6b3VnZXRvcmloaWtpXCA7Civml6Xmm5zlpKflt6UgPCBuaWNoaXlvdWRhaWt1XCA7Civnm67njonllYblk4EgPCBtZWRhbWFzaG91aGluXCA7Civoo73olqzkvJrnpL4gPCBzZWl5YWt1Z2Fpc2hhXCA7CivmipXlhYnnhafmmI4gPCB0b3Vrb3VzaG91bWVpXCA7CivmuIXlu4nmvZTnmb0gPCBzZWlyZW5rZXBwYWt1XCA7Civoh6rou6Lou4rnva7loLQgPCBqaXRlbnNoYW9raWJhXCA7CivmlbXliY3pgIPkuqEgPCB0ZWtpemVudG91Ym91XCA7Civml6XliIrmlrDogZ4gPCBuaWtrYW5zaGluYnVuXCA7CivmirHohbnntbblgJIgPCBob3VmdWt1emV0dG91XCA7Civml6XmsqHliY0gPCBuaWNoaWJvdHN1emVuXCA7CivmlZnogrLlp5Tlk6HkvJogPCBreW91aWt1aWlua2FpXCA7CivmgqromZDnhKHpgZMgPCBha3VneWFrdW11ZG91XCA7CivmsLTkuIrpo5vooYzmqZ8gPCBzdWlqb3VoaWtvdWtpXCA7Civljq3kuJbmgrLoprPogIUgPCBlbnNlaWhpa2Fuc2hhXCA7Civlm73lrrbmqKnlipsgPCBrb2trYWtlbnJ5b2t1XCA7CivljZfmtIvoq7jls7YgPCBuYW4nJ3lvdXNob3RvdVwgOwor5b6M5pyf5Y2w6LGh5rS+IDwga291a2lpbnNob3VoYVwgOwor5Zua5Lq65Yq05YONIDwgc2h1dWppbnJvdWRvdVwgOwor54uQ5qC85a2QIDwga2l0c3VuZWdvdXNoaVwgOwor5Yqj562J6Kaz5b+1IDwgcmV0dG91a2FuJyduZW5cIDsKK+mWouS/guWumOW6gSA8IGthbmtlaWthbmNob3VcIDsKK+i+suawkeaWh+WtpiA8IG5vdW1pbmJ1bmdha3VcIDsKK+iHqueEtuePvuixoSA8IHNoaXplbmdlbnNob3VcIDsKK+iFjuiHk+e1kOefsyA8IGppbnpvdWtlc3Nla2lcIDsKK+WPpOWFtSA8IGZ1cnV0c3V3YW1vbm9cIDsKK+aWveaUv+aWuemHnSA8IHNoaXNlaWhvdXNoaW5cIDsKK+mWsuimp+WupCA8IGV0c3VyYW5zaGl0c3VcIDsKK+Wkqeeruua1quS6uiA8IHRlbmppa3Vyb3VuaW5cIDsKK+W7uuevieeJqSA8IGtlbmNoaWt1YnV0c3VcIDsKK+mciumtguS4jea7hSA8IHJlaWtvbmZ1bWV0c3VcIDsKK+WFrOWFsee1hOWQiCA8IGtvdWt5b3VrdW1pYWlcIDsKK+aciee3mumbu+S/oSA8IHl1dXNlbmRlbnNoaW5cIDsKK+ihgOihjOmanOWusyA8IGtla2tvdXNob3VnYWlcIDsKK+S6uueahOizh+a6kCA8IGppbnRla2lzaGlnZW5cIDsKK+WcsOaWueihjOaUvyA8IGNoaWhvdWd5b3VzZWlcIDsKK+mch+WkqeWLleWcsCA8IHNoaW50ZW5kb3VjaGlcIDsKK+esrOS4ieW4neWbvSA8IGRhaXNhbnRlaWtva3VcIDsKK+Wkp+imj+aooeaIpuS6iSA8IGRhaWtpYm9zZW5zb3VcIDsKK+Wun+izqueahCA8IGppc3NoaXRzdXRla2lcIDsKK+WkqeaWh+WtpuiAhSA8IHRlbm1vbmdha3VzaGFcIDsKK+a3seWknOaUvumAgSA8IHNoaW4nJ3lhaG91c291XCA7Civpn7Plo7DlvaLlvI8gPCBvbnNlaWtlaXNoaWtpXCA7CivkuqTpgJrllY/poYwgPCBrb3V0c3V1bW9uZGFpXCA7CivlhazlhbHmipXos4cgPCBrb3VreW91dG91c2hpXCA7CivlioPmmYLku6PnmoQgPCBrYWt1amlkYWl0ZWtpXCA7CivlkIzml4/kvJrnpL4gPCBkb3V6b2t1Z2Fpc2hhXCA7Civlv4PnkIbmj4/lhpkgPCBzaGlucmlieW91c2hhXCA7CivmioDooZPmsLTmupYgPCBnaWp1dHN1c3VpanVuXCA7CivnhKHmi4Xkv53npL7lgrUgPCBtdXRhbnBvc2hhc2FpXCA7CivnkIblrabljZrlo6sgPCByaWdha3VoYWt1c2hpXCA7CivlsYDmiYDpurvphZQgPCBreW9rdXNob21hc3VpXCA7CivnlKPliKXkvJrorbAgPCBzYW5iZXRzdWthaWdpXCA7Civnv4zjgIXml6UgPCB5b2t1eW9rdWppdHN1XCA7CivlsLHlrablhZDnq6UgPCBzaHV1Z2FrdWppZG91XCA7CivnqbrkuK3ntabmsrkgPCBrdXVjaHV1a3l1dXl1XCA7Civlm73pmpvopo/moLwgPCBrb2t1c2Fpa2lrYWt1XCA7CivlrabmoKHmlrDogZ4gPCBnYWtrb3VzaGluYnVuXCA7CivoqabogbTlrqQgPCBzaGljaG91c2hpdHN1XCA7Civmg4XloLHnlKPmpa0gPCBqb3Vob3VzYW5neW91XCA7CivnmbvpjLLnlarlj7cgPCB0b3Vyb2t1YmFuZ291XCA7CivlnJ/mnKjlt6XlraYgPCBkb2Jva3Vrb3VnYWt1XCA7CivnlJ/kvZPlj43lv5wgPCBzZWl0YWloYW4nJ25vdVwgOwor54u45ZuD5a2QIDwgdGFudWtpYmF5YXNoaVwgOwor6LGh5b605Li7576pIDwgc2hvdWNob3VzaHVnaVwgOwor6Z+z5qW95pWZ6IKyIDwgb25nYWt1a3lvdWlrdVwgOwor6Kaz5ris5Zyw54K5IDwga2Fuc29rdWNoaXRlblwgOwor6YGg5b+D5YiG6Zui5qmfIDwgZW5zaGluYnVucmlraVwgOwor5qSN5q+b6KGTIDwgc2hva3Vtb3VqdXRzdVwgOwor5oqA6KGT5ZCM5aOrIDwgZ2lqdXRzdWRvdXNoaVwgOwor5b+c5oCl5pS75pKDIDwgb3VreXV1a291Z2VraVwgOwor5ZCM5LuB5pWZ5LyaIDwgZG91amlua3lvdWthaVwgOwor5a6f5YON5pmC6ZaTIDwgaml0c3Vkb3VqaWthblwgOwor6Z2S56m66aeQ6LuKIDwgYW96b3JhY2h1dXNoYVwgOwor6Zu75Yqb6Ly46YCBIDwgZGVucnlva3V5dXNvdVwgOwor6LuN6ZqK5pWZ6IKyIDwgZ3VudGFpa3lvdWlrdVwgOwor6YGg5rSL5ryB5qWtIDwgZW4nJ3lvdWd5b2d5b3VcIDsKK+aXp+ato+aciCA8IGt5dXVzaG91Z2F0c3VcIDsKK+S/nemanOWNoOmgmCA8IGhvc2hvdXNlbnJ5b3VcIDsKK+S6pOaPm+azleWJhyA8IGtvdWthbmhvdXNva3VcIDsKK+eJveW8leeZguazlSA8IGtlbicnaW5yeW91aG91XCA7Civpp4XkvJ3nq7botbAgPCBla2lkZW5reW91c291XCA7CivliIfmra/mibzohZUgPCBzZXNzaGl5YWt1d2FuXCA7CivkuLjpvLvonIIgPCBtYXJ1aGFuYWJhY2hpXCA7Civlm6PkvZPkuqTmuIkgPCBkYW50YWlrb3VzaG91XCA7CivohJroibLogIUgPCBreWFrdXNob2t1c2hhXCA7Civkuq3kuLvplqLnmb0gPCB0ZWlzaHVrYW5wYWt1XCA7CivkuIDmrrXli5XoqZ4gPCBpY2hpZGFuZG91c2hpXCA7CivkuIDoiKzluZXlg5ogPCBpcHBhbmJha3VyeW91XCA7Civlr53lj7DliJfou4ogPCBzaGluZGFpcmVzc2hhXCA7CivmipXmk7Lnq7bmioAgPCB0b3V0ZWtpa3lvdWdpXCA7CivmnbHmtbflsrggPCBoaWdhc2hpa2FpZ2FuXCA7CivmsJfosaHpgJrloLEgPCBraXNob3V0c3V1aG91XCA7CivplovmnpDlj7DlnLAgPCBrYWlzZWtpZGFpY2hpXCA7CivlhoXouJ0gPCB1Y2hpa3VydWJ1c2hpXCA7Civlrp/nlKjkuLvnvqkgPCBqaXRzdXlvdXNodWdpXCA7Civnm7Tnq4vojI4gPCBjaG9rdXJpdHN1a2VpXCA7Civnmb3pm6rlp6sgPCBzaGlyYXl1a2loaW1lXCA7Civlt6XloLTlrp/nv5IgPCBrb3Vqb3VqaXNzaHV1XCA7CivkuK3ntpnosr/mmJMgPCBjaHV1a2VpYm91ZWtpXCA7CivmgKfog73nibnmgKcgPCBzZWlub3V0b2t1c2VpXCA7Civpm7vmsJflhrfolLXluqsgPCBkZW5raXJlaXpvdWtvXCA7CivmnIDlvozpgJrniZIgPCBzYWlnb3RzdXVjaG91XCA7CivmnIDkvY7muKnluqboqIggPCBzYWl0ZWlvbmRva2VpXCA7Civlm73pmpvntZDlqZogPCBrb2t1c2Fpa2Vra29uXCA7CivpgKDmnKzmioDooZMgPCB6b3Vob25naWp1dHN1XCA7CivlpqjlrrPlt6XkvZwgPCBib3VnYWlrb3VzYWt1XCA7Civmlq3nhrHnmoQgPCBkYW4nJ25ldHN1dGVraVwgOwor5rCR5peP5oSP6K2YIDwgbWluem9rdWlzaGlraVwgOwor5rOl57iE5byPIDwgZG9yb25hd2FzaGlraVwgOwor6LSF5rKi5LiJ5pinIDwgemVpdGFrdXphbm1haVwgOwor5YaZ55yf6KO954mIIDwgc2hhc2hpbnNlaWhhblwgOwor6Kaz6Zay5byPIDwga2FuJydldHN1c2hpa2lcIDsKK+WtpuagoeaVmeiCsiA8IGdha2tvdWt5b3Vpa3VcIDsKK+mcp+S4reS/oeWPtyA8IG11Y2h1dXNoaW5nb3VcIDsKK+eyvuelnueKtuaFiyA8IHNlaXNoaW5qb3V0YWlcIDsKK+WVhuenkeWkp+WtpiA8IHNob3VrYWRhaWdha3VcIDsKK+WQuOa5v+aApyA8IGt5dXVzaGl0c3VzZWlcIDsKK+a2iOalteeahCA8IHNob3VreW9rdXRla2lcIDsKK+mhp+WVj+W8geitt+WjqyA8IGtvbW9uYmVuZ29zaGlcIDsKK+WGmeecn+e1kOWpmiA8IHNoYXNoaW5rZWtrb25cIDsKK+WFseWQjOaIpue3miA8IGt5b3Vkb3VzZW5zZW5cIDsKK+eBq+Wxsea0u+WLlSA8IGthemFua2F0c3Vkb3VcIDsKK+m6pueoiOe0sOW3pSA8IG11Z2l3YXJhemFpa3VcIDsKK+aIkeWIqeaIkeWIqeS6oeiAhSA8IGdhcmlnYXJpbW91amFcIDsKK+WLpOWKtOaJgOW+lyA8IGtpbnJvdXNob3Rva3VcIDsKK+mmluebuOWumOmCuCA8IHNodXNob3VrYW50ZWlcIDsKK+iqreabuOS4ieaYpyA8IGRva3VzaG96YW5tYWlcIDsKK+S4reetieaVmeWToSA8IGNodXV0b3VreW91aW5cIDsKK+S4gOasoembu+a1gSA8IGljaGlqaWRlbnJ5dXVcIDsKK+WPsOS4remWouS/giA8IHRhaWNodXVrYW5rZWlcIDsKK+enmOWvhue1kOekviA8IGhpbWl0c3VrZXNzaGFcIDsKK+adseaWueaLoeWkpyA8IHRvdWhvdWtha3VkYWlcIDsKK+a8gua1geeJqSA8IGh5b3VyeXV1YnV0c3VcIDsKK+i/kemao+iruOWbvSA8IGtpbnJpbnNob2tva3VcIDsKK+WKtOWDjemajue0miA8IHJvdWRvdWthaWt5dXVcIDsKK+iynuaTjeims+W/tSA8IHRlaXNvdWthbicnbmVuXCA7CivmsJHplpPkvJ3mib8gPCBtaW5rYW5kZW5zaG91XCA7CivohoDog7HntZDnn7MgPCBib3Vrb3VrZXNzZWtpXCA7Civou6LlsYXpgJrnn6UgPCB0ZW5reW90c3V1Y2hpXCA7CivntJTmraPmlbDlraYgPCBqdW5zZWlzdXVnYWt1XCA7CivnlLfniLXlpKvkurogPCBkYW5zaGFrdWZ1amluXCA7CivkuIvkuozmoYEgPCBzaGltb2Z1dGFrZXRhXCA7CivkuoznoavljJbngq3ntKAgPCBuaXJ5dXVrYXRhbnNvXCA7CivloanolLXpo5/lk4EgPCBlbnpvdXNob2t1aGluXCA7CivkuIDoh7Tlm6PntZAgPCBpdGNoaWRhbmtldHN1XCA7Civorablr5/lm73lrrYgPCBrZWlzYXRzdWtva2thXCA7CivntYzmuIjnmb3mm7ggPCBrZWl6YWloYWt1c2hvXCA7CivnqYDlgInlnLDluK8gPCBrb2t1c291Y2hpdGFpXCA7CivmhoLprLHos6ogPCB5dXV1dHN1c2hpdHN1XCA7Civml6nmnJ/orabmiJLmqZ8gPCBzb3VraWtlaWthaWtpXCA7CivnkrDlooPkuovmpa0gPCBrYW5reW91amlneW91XCA7Civnt4/lkIjllYbnpL4gPCBzb3Vnb3VzaG91c2hhXCA7Civkv4TmiJDph5EgPCBuaXdha2FuYXJpa2luXCA7CivlsJHlubTlirTlg40gPCBzaG91bmVucm91ZG91XCA7CivkuIDmjJnkuKHlvpcgPCBpa2t5b3J5b3V0b2t1XCA7CivmuKzlrproo4Xnva4gPCBzb2t1dGVpc291Y2hpXCA7CivliY3ooZvnvo7ooZMgPCB6ZW4nJ2VpYmlqdXRzdVwgOwor5qeL6YCg6YG65Lyd5a2QIDwga291em91aWRlbnNoaVwgOwor55qG5pei5pyI6aOfIDwga2Fpa2lnZXNzaG9rdVwgOwor5YWs5Zuj5L2P5a6FIDwga291ZGFuanV1dGFrdVwgOwor6Kit5YKZ5oqV6LOHIDwgc2V0c3ViaXRvdXNoaVwgOwor5pel5bi46Iy26aOvIDwgbmljaGlqb3VzYWhhblwgOwor576k6ZuG5b+D55CGIDwgZ3Vuc2h1dXNoaW5yaVwgOwor55m+5oim57e056OoIDwgaHlha3VzZW5yZW5tYVwgOwor5Y2z6IiI6Kmp5Lq6IDwgc29ra3lvdXNoaWppblwgOwor5ZaE6Zqj5pS/562WIDwgemVucmluc2Vpc2FrdVwgOwor5YmN5Y+X5Y+O55uKIDwgbWFldWtlc2h1dWVraVwgOwor6Z2S6YqF5Zmo5pmC5LujIDwgc2VpZG91a2lqaWRhaVwgOwor5Zu95rCR55qG5YW1IDwga29rdW1pbmthaWhlaVwgOwor6aqo55u45a2m6ICFIDwga29zc291Z2FrdXNoYVwgOwor5oi45Yil6Kiq5ZWPIDwga29iZXRzdWhvdW1vblwgOwor54iG5by+5aOw5piOIDwgYmFrdWRhbnNlaW1laVwgOwor6YGT5qW95oGv5a2QIDwgZG91cmFrdW11c3Vrb1wgOwor6IiM6byTIDwgc2hpdGF0c3VkenVtaVwgOwor5Y+O56mr54mpIDwgc2h1dWtha3VidXRzdVwgOwor6LK45LuY6YeRIDwga2FzaGl0c3VrZWtpblwgOwor55mS5YK357WE57mUIDwgeXVzaG91c29zaGlraVwgOwor55S35a2Q5a2m55SfIDwgZGFuc2hpZ2FrdXNlaVwgOwor5YuV54mp6YGUIDwgZG91YnV0c3V0YWNoaVwgOwor6LKr6YCa6YqD5Ym1IDwga2FudHN1dWp1dXNvdVwgOwor6aOf57On5bqBIDwgc2hva3VyeW91Y2hvdVwgOwor5Lya6KiI5qSc5p+76ZmiIDwga2Fpa2Vpa2Vuc2FpblwgOwor5paw6YOO5paw5ammIDwgc2hpbnJvdXNoaW5wdVwgOwor56m65oy65L2c5oimIDwga3V1dGVpc2FrdXNlblwgOwor6YWN566h5bel5qWtIDwgaGFpa2Fua291Z3lvdVwgOwor5a6H5a6Z6YCa5L+hIDwgdWNodXV0c3V1c2hpblwgOwor6IW655eF6LOqIDwgc2VuYnlvdXNoaXRzdVwgOwor562J5q+U5pWw5YiXIDwgdG91aGlzdXVyZXRzdVwgOwor5bqK5LiK5rW45rC0IDwgeXVrYXVlc2hpbnN1aVwgOwor6Ieq54S255Kw5aKDIDwgc2hpemVua2Fua3lvdVwgOwor5pel5Lit5oim5LqJIDwgbml0Y2h1dXNlbnNvdVwgOwor5rCR57SE6KqsIDwgbWluJyd5YWt1c2V0c3VcIDsKK+WQuOa5v+WJpCA8IGt5dXVzaGl0c3V6YWlcIDsKK+S6jOeti+mBkyA8IGZ1dGFzdWppbWljaGlcIDsKK+WNiumVt+mdtCA8IGhhbicnbmFnYWd1dHN1XCA7CivmqJnpoYzpn7Pmpb0gPCBoeW91ZGFpb25nYWt1XCA7CivmoKHplbflrqQgPCBrb3VjaG91c2hpdHN1XCA7CivliqPnrYnopIflkIggPCByZXR0b3VmdWt1Z291XCA7CivnnLznkIPpioDooYwgPCBnYW5reXV1Z2lua291XCA7Civmsbrmlq3lipsgPCBrZXRzdWRhbnJ5b2t1XCA7CivluILloLTliIbmnpAgPCBzaGlqb3VidW5zZWtpXCA7CivkuK3plpPoqabpqJMgPCBjaHV1a2Fuc2hpa2VuXCA7CivoqLzliLjkvJrnpL4gPCBzaG91a2VuZ2Fpc2hhXCA7CivmvI/oqbHntZDlkIggPCByb3V3YWdldHN1Z291XCA7Civlm73pmpvntJvkuokgPCBrb2t1c2FpZnVuc291XCA7Civpm4blm6PooYzli5UgPCBzaHV1ZGFua291ZG91XCA7Civou4rkuKHnuKbpmoogPCBzaGFyeW91anV1dGFpXCA7CivkuqTku6Pmk43mpa0gPCBrb3V0YWlzb3VneW91XCA7CivkvZzogIXmnKroqbMgPCBzYWt1c2hhbWlzaG91XCA7Civopb/mnKzpoZjlr7ogPCBuaXNoaWhvbmdhbmppXCA7CivmsLjku6PlgJ/lnLAgPCBlaXRhaXNoYWt1Y2hpXCA7Civlt67lh7rkurogPCBzYXNoaWRhc2hpbmluXCA7CivkuIPmm5zooaggPCBzaGljaGl5b3VoeW91XCA7CivlrZDlrq7nrYvohasgPCBzaGlreXV1a2luc2h1XCA7CivliIfmiYvokpDpm4YgPCBraXR0ZXNodXVzaHV1XCA7CivpppbkvY3mlLvpmLLmiKYgPCBzaHVpa291Ym91c2VuXCA7CivlhajmlrnkvY3lpJbkuqQgPCB6ZW5ob3VpZ2Fpa291XCA7CivlrpjosrvnlZnlraYgPCBrYW5waXJ5dXVnYWt1XCA7Civnt6jpm4bkuLvlubkgPCBoZW5zaHV1c2h1a2FuXCA7CivnlJ/nlKPmioDooZMgPCBzZWlzYW5naWp1dHN1XCA7CivmsLTlubPlv5zlipsgPCBzdWloZWlvdXJ5b2t1XCA7CivlhYjnq6/mioDooZMgPCBzZW50YW5naWp1dHN1XCA7CivnpZ7lrq7nkIPloLQgPCBqaW5ndXVreXV1am91XCA7CivngbDnt5HoibIgPCBrYWlyeW9rdXNob2t1XCA7CivmnKzos6rnmoQgPCBob25zaGl0c3V0ZWtpXCA7CivnhKHkurrljJblt6XloLQgPCBtdWppbmtha291am91XCA7Civpn7Pmpb3lpKflraYgPCBvbmdha3VkYWlnYWt1XCA7CivkvrXnlaXooYzngrogPCBzaGlucnlha3Vrb3VpXCA7CivlhaXlsITlhYnnt5ogPCBueXV1c2hha291c2VuXCA7CivkuInop5Llh73mlbAgPCBzYW5rYWt1a2Fuc3V1XCA7Civnq4vkvZPlhpnnnJ8gPCByaXR0YWlzaGFzaGluXCA7Civlm73pmpvplqLkv4IgPCBrb2t1c2Fpa2Fua2VpXCA7CivmtYTlnJ/nnJ/lrpcgPCBqb3Vkb3NoaW5zaHV1XCA7CivkuInlm73lkIznm58gPCBzYW5nb2t1ZG91bWVpXCA7CivngavkuovloLTms6Xmo5IgPCBrYWppYmFkb3JvYm91XCA7CivpqZrlpKnli5XlnLAgPCBreW91dGVuZG91Y2hpXCA7CivnqbrkuK3mu5HotbAgPCBrdXVjaHV1a2Fzc291XCA7Civlm73pmpvllY/poYwgPCBrb2t1c2FpbW9uZGFpXCA7CivmsYLlv4PlipsgPCBreXV1c2hpbnJ5b2t1XCA7CivnpL7lpJbnmbrkv6EgPCBzaGFnYWloYXNzaGluXCA7Civot7PmooHot4vmiYggPCBjaG91cnlvdWJha2tvXCA7Civpm4bkuK3noLLngasgPCBzaHV1Y2h1dWhvdWthXCA7Civkurrlt6XmoITppIrlhZAgPCBqaW5rb3VlaXlvdWppXCA7CivkurrplpPlt6XlraYgPCBuaW5nZW5rb3VnYWt1XCA7CivouqvlhYPnorroqo0gPCBtaW1vdG9rYWt1bmluXCA7CivntZDlm6PlvI8gPCBrZXRzdWRhbnNoaWtpXCA7Civlt67liKXlvoXpgYcgPCBzYWJldHN1dGFpZ3V1XCA7CivljYPps6XmoLzlrZAgPCBjaGlkb3JpZ291c2hpXCA7Civku4/lg4/kuozkvZMgPCBidXRzdXpvdW5pdGFpXCA7Civlhajmma/lhpnnnJ8gPCB6ZW5rZWlzaGFzaGluXCA7CivlhazlhbHlm6PkvZMgPCBrb3VreW91ZGFudGFpXCA7CivmlLnmnK3lj6MgPCBrYWlzYXRzdWd1Y2hpXCA7CivloIbnqY3ovKrlu7sgPCB0YWlzZWtpcmluJyduZVwgOwor5LiA6Iis55Sf5rS7IDwgaXBwYW5zZWlrYXRzdVwgOwor5qyn57Gz6Ku46KiA6KqeIDwgb3ViZWlzaG9nZW5nb1wgOwor5qiq5rKz6Zu75qmfIDwgeW9rb2dhd2FkZW5raVwgOwor5Lit57aZ5pS+6YCBIDwgY2h1dWtlaWhvdXNvdVwgOwor56aB5q2i5p2h57SEIDwga2luc2hpam91eWFrdVwgOwor5YWo5Zu95pS+6YCBIDwgemVua29rdWhvdXNvdVwgOwor5Lq65bel5a215YyW5rOVIDwgamlua291ZnVrYWhvdVwgOwor5YWa5Yip5YWa55WlIDwgdG91cml0b3VyeWFrdVwgOwor57mB5q6W5YqbIDwgaGFuc2hva3VyeW9rdVwgOwor5aSW5Lqk5Lqk5riJIDwgZ2Fpa291a291c2hvdVwgOwor5a2m5aOr6Zmi6LOeIDwgZ2FrdXNoaWluc2hvdVwgOwor6KGM5YuV6KiI55S7IDwga291ZG91a2Vpa2FrdVwgOwor5YWx5pyJ6LKh55SjIDwga3lvdXl1dXphaXNhblwgOwor6YC45aSx5Yip55uKIDwgaXNzaGl0c3VyaWVraVwgOwor6L6y5Zyw5pS56Z2pIDwgbm91Y2hpa2Fpa2FrdVwgOwor5ZuD5a2Q6KmeIDwgaGF5YXNoaWtvdG9iYVwgOwor5Lqk6YCa5riL5rueIDwga291dHN1dWp1dXRhaVwgOwor56We57WM57Sw6IOeIDwgc2hpbmtlaXNhaWJvdVwgOwor5Lq65beu5oyHIDwgaGl0b3Nhc2hpeXViaVwgOwor5LiD6Z2i6bOlIDwgc2hpY2hpbWVuY2hvdVwgOwor5qWt55WM5Zuj5L2TIDwgZ3lvdWthaWRhbnRhaVwgOwor5Yun5ZaE5oey5oKqIDwga2FuemVuY2hvdWFrdVwgOwor5YWx55Sj6Zmj5Za2IDwga3lvdXNhbmppbicnZWlcIDsKK+asoOW4reijgeWIpCA8IGtlc3Nla2lzYWliYW5cIDsKK+WNiumdqeijheS4gSA8IGhhbmthd2Fzb3V0ZWlcIDsKK+ertuS6ieW4guWgtCA8IGt5b3Vzb3VzaGlqb3VcIDsKK+eZuuiogOWKmyA8IGhhdHN1Z2Vucnlva3VcIDsKK+efpeeahOiyoeeUoyA8IGNoaXRla2l6YWlzYW5cIDsKK+WNl+WMl+WVj+mhjCA8IG5hbmJva3Vtb25kYWlcIDsKK+i7jeS6i+mhp+WVj+WboyA8IGd1bmppa29tb25kYW5cIDsKK+mrmOWxpOWkqeawl+WbsyA8IGtvdXNvdXRlbmtpenVcIDsKK+eqgeeEtuWkieeVsCA8IHRvdHN1emVuaGVuJydpXCA7Civpganlv5zpmpzlrrMgPCB0ZWtpb3VzaG91Z2FpXCA7Civlh7rkuJbpoK0gPCBzaHVzc2VnYXNoaXJhXCA7Civmt7fovInosqjniakgPCBrb25zYWlrYW1vdHN1XCA7Civpm4bkuK3lipsgPCBzaHV1Y2h1dXJ5b2t1XCA7CivogJDpmpzlrrPmgKcgPCB0YWlzaG91Z2Fpc2VpXCA7Civov5Hopqrnm7jlp6YgPCBraW5zaGluc291a2FuXCA7CivlsYjovrHnmoQgPCBrdXRzdWpva3V0ZWtpXCA7CivlpKfpgZPllYbkurogPCBkYWlkb3VzaG91bmluXCA7CivkuI3kv6Hku7vmoYggPCBmdXNoaW4nJ25pbicnYW5cIDsKK+S7rumdouiInui4j+S8miA8IGthbWVuYnV0b3VrYWlcIDsKK+WuruW7t+mfs+alvSA8IGt5dXV0ZWlvbmdha3VcIDsKK+WVhuWjsuaVtSA8IHNob3ViYWlnYXRha2lcIDsKK+WHuueUn+WxiiA8IHNodXNzZWl0b2Rva2VcIDsKK+e3qeihneWcsOW4ryA8IGthbnNob3VjaGl0YWlcIDsKK+ihgOa4heazqOWwhCA8IGtlc3NlaWNodXVzaGFcIDsKK+iEseeNhOWbmiA8IGRhdHN1Z29rdXNodXVcIDsKK+WKoOezlueyieS5syA8IGthdG91ZnVuJydueXV1XCA7CivlnJ/nlKPoqbEgPCBtaXlhZ2ViYW5hc2hpXCA7Civkv6HosqnkvJrnpL4gPCBzaGlucGFuZ2Fpc2hhXCA7CivljYHkuIDnjK7ph5EgPCBqdXVpY2hpa2Vua2luXCA7Civnpo/npYnkuovmpa0gPCBmdWt1c2hpamlneW91XCA7CivmmpbooaPpo73po58gPCBkYW4nJ2lob3VzaG9rdVwgOwor5rqW5rG65Yud5oimIDwganVua2Vzc2hvdXNlblwgOwor6YeO55Sf5YuV54mpIDwgeWFzZWlkb3VidXRzdVwgOwor56S+5Lya54++6LGhIDwgc2hha2FpZ2Vuc2hvdVwgOwor5YyX5qyn6Ku45Zu9IDwgaG9rdW91c2hva29rdVwgOwor6Ieq54S25LyR5LyaIDwgc2hpemVua3l1dWthaVwgOwor6Imv5LqM5Y2D55+zIDwgcnlvdW5pc2Vuc2VraVwgOwor5paH5a2m6Z2S5bm0IDwgYnVuZ2FrdXNlaW5lblwgOwor55m96KOF5p2fIDwgc2hpcm9zaG91em9rdVwgOwor5L2c5qWt6YOo5Lya5qGIIDwgc2FneW91YnVrYWlhblwgOwor5L+u6YGT6KqT6aGYIDwgc2h1dWRvdXNlaWdhblwgOwor6aOf57On5o+05YqpIDwgc2hva3VyeW91ZW5qb1wgOwor6KGG6K2w5LiA5rG6IDwgc2h1dWdpaWtrZXRzdVwgOwor6YW457Sg5ZC45YWlIDwgc2Fuc29reXV1bnl1dVwgOwor55Sf6Iet5Z2K5Li7IDwgbmFtYWd1c2Fib3V6dVwgOwor6LuN5LqL5pa96KitIDwgZ3VuamlzaGlzZXRzdVwgOwor5pig55S76KmV6KuW5a62IDwgZWlnYWh5b3Vyb25rYVwgOwor6YO15L6/5oyv5pu/IDwgeXV1YmluZnVyaWthZVwgOwor5pa56Yed5rG65a6aIDwgaG91c2hpbmtldHRlaVwgOwor5bCx5qWt5pmC6ZaTIDwgc2h1dWd5b3VqaWthblwgOwor5Lq65Y+j5oqR5Yi2IDwgamlua291eW9rdXNlaVwgOwor6LuN5Lq65oGp57WmIDwgZ3VuamluJydvbmt5dXVcIDsKK+S6uuW3pea1geeUoyA8IGppbmtvdXJ5dXV6YW5cIDsKK+ecn+WJo+WLneiyoCA8IHNoaW5rZW5zaG91YnVcIDsKK+maoOmAgOeUn+a0uyA8IGludGFpc2Vpa2F0c3VcIDsKK+WuiOenmOe+qeWLmemBleWPjSA8IHNodWhpZ2ltdWloYW5cIDsKK+iFsOW3vuedgCA8IGtvc2hpZ2luY2hha3VcIDsKK+W9ueWToeWgsemFrCA8IHlha3VpbmhvdXNodXVcIDsKK+WJsuW8leaZgumWkyA8IHdhcmliaWtpamlrYW5cIDsKK+eZveiRoeiQhOmFkiA8IHNoaXJvYnVkb3VzaHVcIDsKK+WNiueGn+WNtSA8IGhhbmp1a3V0YW1hZ29cIDsKK+WItuacjeWItuW4vSA8IHNlaWZ1a3VzZWlib3VcIDsKK+WPpOiJsuiSvOeEtiA8IGtvc2hva3Vzb3V6ZW5cIDsKK+eVmee9rumDteS+vyA8IHRvbWVva2l5dXViaW5cIDsKK+ioiOeUu+WAkueUoyA8IGtlaWtha3V0b3VzYW5cIDsKK+eahuaXouaXpemjnyA8IGthaWtpbmlzc2hva3VcIDsKK+ayoeW4uOitmCA8IGJvdHN1am91c2hpa2lcIDsKK+mbhuWhteiiiyA8IHNodXVqaW5idWt1cm9cIDsKK+mAo+aIpumAo+WLnSA8IHJlbnNlbnJlbnNob3VcIDsKK+S6q+alveS4u+e+qSA8IGt5b3VyYWt1c2h1Z2lcIDsKK+S4ieS4i+WltCA8IHNhbnNoaXRheWFra29cIDsKK+W6g+WRiuWqkuS9kyA8IGtvdWtva3ViYWl0YWlcIDsKK+WbveawkeWvqeafuyA8IGtva3VtaW5zaGluc2FcIDsKK+WBpeiAhSA8IHNoaXRhdGFrYW1vbm9cIDsKK+a3t+WjsOWQiOWUsSA8IGtvbnNlaWdhc3Nob3VcIDsKK+elnumBk+S/oeiAhSA8IHNoaW50b3VzaGluamFcIDsKK+Wun+azgeaUvumAgSA8IGppa2t5b3Vob3Vzb3VcIDsKK+WIhuWFieWIhuaekCA8IGJ1bmtvdWJ1bnNla2lcIDsKK+eUo+alree1hOWQiCA8IHNhbmd5b3VrdW1pYWlcIDsKK+WPluaNqOmBuOaKniA8IHNodXNoYXNlbnRha3VcIDsKK+WcsOmch+WtpuiAhSA8IGppc2hpbmdha3VzaGFcIDsKK+Wkp+mYquWkp+WtpiA8IG9vc2FrYWRhaWdha3VcIDsKK+esrOS6jOasoeWkp+aIpiA8IGRhaW5paml0YWlzZW5cIDsKK+eglOeptuaWueazlSA8IGtlbmt5dXVob3Vob3VcIDsKK+WcsOizquWtpiA8IGNoaXNoaXRzdWdha3VcIDsKK+aWremDiuertui1sCA8IGRhbmtvdWt5b3Vzb3VcIDsKK+alveWxi+ipsSA8IGdha3V5YWJhbmFzaGlcIDsKK+avlOi8g+aWh+WtpiA8IGhpa2FrdWJ1bmdha3VcIDsKK+Wjq+i+suW3peWVhiA8IHNoaW5vdWtvdXNob3VcIDsKK+S5vuWdpOS4gOaTsiA8IGtlbmtvbicnaXR0ZWtpXCA7CivlgZzmraLkv6Hlj7cgPCB0ZWlzaGlzaGluZ291XCA7Civlu7rnr4nnj77loLQgPCBrZW5jaGlrdWdlbmJhXCA7Civlm73pgKPlpKfkvb8gPCBrb2t1cmVudGFpc2hpXCA7CivnnInnm67np4DpupcgPCBiaW1va3VzaHV1cmVpXCA7Civmg4Xnt5LpmpzlrrMgPCBqb3VzaG9zaG91Z2FpXCA7CivorLnos4DmlrDlubQgPCBraW5nYXNoaW4nJ25lblwgOwor57e057+S5ZWP6aGMIDwgcmVuc2h1dW1vbmRhaVwgOwor5Lq655Wc54Sh5a6zIDwgamluY2hpa3VtdWdhaVwgOwor5LiK5rWB56S+5LyaIDwgam91cnl1dXNoYWthaVwgOwor5by35aWq54mpIDwgZ291ZGF0c3VidXRzdVwgOwor6ZaR5pel5pyIIDwga2Fuaml0c3VnZXRzdVwgOwor6Zm45rW356m66LuNIDwgcmlrdWthaWt1dWd1blwgOwor6YeO5qyh6aas5qC55oCnIDwgeWFqaXVtYWtvbmpvdVwgOwor55yf55u46Kq/5p+7IDwgc2hpbnNvdWNob3VzYVwgOwor6KGo5pWs6Kiq5ZWPIDwgaHlvdWtlaWhvdW1vblwgOwor5pmu6YCa5pWZ6IKyIDwgZnV0c3V1a3lvdWlrdVwgOwor5YWs5rCR5pWZ6IKyIDwga291bWlua3lvdWlrdVwgOwor5oyR55m655qEIDwgY2hvdWhhdHN1dGVraVwgOwor5rC05a6z5a++562WIDwgc3VpZ2FpdGFpc2FrdVwgOwor5bCG5p2l5bGV5pybIDwgc2hvdXJhaXRlbmJvdVwgOwor5bCL5ZWP6Kq/5pu4IDwgamlubW9uY2hvdXNob1wgOwor552A5by+6Led6ZuiIDwgY2hha3VkYW5reW9yaVwgOwor5aSp55yf54ib5ryrIDwgdGVuc2hpbnJhbm1hblwgOwor5Y+N5bCE56We57WMIDwgaGFuc2hhc2hpbmtlaVwgOwor6Z2S6Imy55Sz5ZGKIDwgYW9pcm9zaGlua29rdVwgOwor6YCg5b2i576O6KGTIDwgem91a2VpYmlqdXRzdVwgOwor5Y+y55qE54++5ZyoIDwgc2hpdGVraWdlbnphaVwgOwor56Wd56Wt5pelIDwgc2h1a3VzYWlqaXRzdVwgOwor5YaF6YOo55Sf5rS7IDwgbmFpYnVzZWlrYXRzdVwgOwor5qeL6YCg6KiY6L+wIDwga291em91a2lqdXRzdVwgOwor5YWx5a2Y5YWx5qCEIDwga3lvdXpvbmt5b3VlaVwgOwor5biv54q255ax55a5IDwgdGFpam91aG91c2hpblwgOwor54++5a6f5Li7576pIDwgZ2Vuaml0c3VzaHVnaVwgOwor5bm044CF5q2z44CFIDwgbmVuJyduZW5zYWlzYWlcIDsKK+eglOeptuirluaWhyA8IGtlbmt5dXVyb25idW5cIDsKK+acgOe1gue3qOaIkCA8IHNhaXNodXVoZW5zZWlcIDsKK+WwguS/ruWtpuagoSA8IHNlbnNodXVnYWtrb3VcIDsKK+W9q+WIu+ihkyA8IGNob3Vrb2t1anV0c3VcIDsKK+WPs+S4reaLrOW8pyA8IG1pZ2ljaHV1a2Fra29cIDsKK+S/rumBk+mZoumVtyA8IHNodXVkb3VpbmNob3VcIDsKK+Wutuedo+ebuOe2miA8IGthdG9rdXNvdXpva3VcIDsKK+Wuv+WRveirluiAhSA8IHNodWt1bWVpcm9uamFcIDsKK+a4qeW6puiqv+evgCA8IG9uZG9jaG91c2V0c3VcIDsKK+iLseS8muipseWtpuagoSA8IGVpa2Fpd2FnYWtrb3VcIDsKK+iogOiqnuiDveWKmyA8IGdlbmdvbm91cnlva3VcIDsKK+WIqea9pOi/veaxgiA8IHJpanVudHN1aWt5dXVcIDsKK+e1seeOh+eQhuirliA8IHRvdXNvdHN1cmlyb25cIDsKK+S4reeri+WbvSA8IGNodXVyaXRzdWtva3VcIDsKK+WWq+eFmeWupCA8IGtpdHN1ZW5zaGl0c3VcIDsKK+iJr+miqOe+juS/lyA8IHJ5b3VmdXViaXpva3VcIDsKK+WbveawkeWtpuagoSA8IGtva3VtaW5nYWtrb3VcIDsKK+WNmOeCuueUn+auliA8IHRhbicnaXNlaXNob2t1XCA7CivliY3mlrnkuI3ms6jmhI8gPCB6ZW5wb3VmdWNodXVpXCA7CivkuozljYHml6XpvKAgPCBoYXRzdWthbmV6dW1pXCA7Civosr/mmJPlj47mlK8gPCBib3Vla2lzaHV1c2hpXCA7Civkurrlt6Xlv4Poh5MgPCBqaW5rb3VzaGluem91XCA7CivlpKnmtKXml6Xll6MgPCBhbWF0c3VoaXRzdWdpXCA7CivkuIDkuKHml6UgPCBpY2hpcnlvdWppdHN1XCA7CivnvqTpm4TlibLmi6AgPCBndW4nJ3l1dWtha2t5b1wgOwor5YWI5aSp5qKF5q+SIDwgc2VudGVuYmFpZG9rdVwgOwor5Lq65bel5b+D6IK6IDwgamlua291c2hpbmJhaVwgOwor5ZG85ZC45Lit5p6iIDwga29reXV1Y2h1dXN1dVwgOwor6aeQ55WZ6YOo6ZqKIDwgY2h1dXJ5dXVidXRhaVwgOwor5q6655Sf56aB5patIDwgc2Vzc2hvdWtpbmRhblwgOwor54Sh6Yqt6YGK6IiIIDwgbXVzZW4nJ3l1dWt5b3VcIDsKK+S4u+W4reWFqOaoqSA8IHNodXNla2l6ZW5rZW5cIDsKK+WcsOaWueWFrOWLmeWToSA8IGNoaWhvdWtvdW11aW5cIDsKK+eUsuS5meS4meS4gSA8IGtvdW90c3VoZWl0ZWlcIDsKK+ijnOasoOmBuOaMmSA8IGhva2V0c3VzZW5reW9cIDsKK+api+iEmuiInyA8IGt5b3VreWFrdXNodXVcIDsKK+W+rumHj+WIhuaekCA8IGJpcnlvdWJ1bnNla2lcIDsKK+iHquWLleiyqeWjsuapnyA8IGppZG91aGFuYmFpa2lcIDsKK+WcsOWfn+S7o+ihqCA8IGNoaWlraWRhaWh5b3VcIDsKK+eUu+S4gOS4u+e+qSA8IGtha3VpdHN1c2h1Z2lcIDsKK+S6rOmDveWkp+WtpiA8IGt5b3V0b2RhaWdha3VcIDsKK+a8rOeJqeefsyA8IHRzdWtlbW9ub2lzaGlcIDsKK+WkluWHuuS4rSA8IGdhaXNodXRzdWNodXVcIDsKK+mJhOafk+iJsiA8IHRldHN1c2Vuc2hva3VcIDsKK+eUn+S9k+W3peWtpiA8IHNlaXRhaWtvdWdha3VcIDsKK+eLrOeri+W/gyA8IGRva3VyaXRzdXNoaW5cIDsKK+azoeayq+WAmeijnCA8IGhvdW1hdHN1a291aG9cIDsKK+ebuOe2muiyoeeUoyA8IHNvdXpva3V6YWlzYW5cIDsKK+WvvuaIpuaIkOe4viA8IHRhaXNlbnNlaXNla2lcIDsKK+Wbvemam+epuua4ryA8IGtva3VzYWlrdXVrb3VcIDsKK+WbvemAo+e3j+S8miA8IGtva3VyZW5zb3VrYWlcIDsKK+S7iuaciOacqyA8IGtvbmdldHN1bWF0c3VcIDsKK+WwgumWgOaVmeiCsiA8IHNlbm1vbmt5b3Vpa3VcIDsKK+WWtualreWgseWRiiA8IGVpZ3lvdWhvdWtva3VcIDsKK+ihgOa2suaknOafuyA8IGtldHN1ZWtpa2Vuc2FcIDsKK+mdqeaWsOS4u+e+qSA8IGtha3VzaGluc2h1Z2lcIDsKK+mcsuWHuuaZgumWkyA8IHJvc2h1dHN1amlrYW5cIDsKK+mbu+ejgeiqv+eQhuWZqCA8IGRlbmppY2hvdXJpa2lcIDsKK+aKleelqOeUqOe0mSA8IHRvdWh5b3V5b3VzaGlcIDsKK+Wun+eJqeWkpyA8IGppdHN1YnV0c3VkYWlcIDsKK+iWrOeUqOefs+m5uCA8IHlha3V5b3VzZWtrZW5cIDsKK+WNmOeLrOihjOWLlSA8IHRhbmRva3Vrb3Vkb3VcIDsKK+iIquepuuiHquihm+maiiA8IGtvdWt1dWppZWl0YWlcIDsKK+Wkq+WppueUn+a0uyA8IGZ1dWZ1c2Vpa2F0c3VcIDsKK+iCieS9k+mWouS/giA8IG5pa3V0YWlrYW5rZWlcIDsKK+i7jeS6i+itpuWvnyA8IGd1bmppa2Vpc2F0c3VcIDsKK+aWsOWpmuaXheihjCA8IHNoaW5rb25yeW9rb3VcIDsKK+mZveaAp+WPjeW/nCA8IHlvdXNlaWhhbicnbm91XCA7Civou7jlt67lv5zlipsgPCBqaWt1c2FvdXJ5b2t1XCA7CivkurrpoZ7lrabogIUgPCBqaW5ydWlnYWt1c2hhXCA7Civmi77lvpfniakgPCBzaHV1dG9rdWJ1dHN1XCA7Civmrablo6vmsJfos6ogPCBidXNoaWtpc2hpdHN1XCA7CivnrKzkuIDkurrogIUgPCBkYWlpY2hpbmluc2hhXCA7CivlgInmlbfmlpkgPCBrdXJhc2hpa2lyeW91XCA7Civos4fmlpnlrqQgPCBzaGlyeW91c2hpdHN1XCA7CivmqZ/plqLmipXos4flrrYgPCBraWthbnRvdXNoaWthXCA7Civlrrbluq3nlJ/mtLsgPCBrYXRlaXNlaWthdHN1XCA7CivljbHpmbrkurrniakgPCBraWtlbmppbmJ1dHN1XCA7CivlpKflrabmlZnmjoggPCBkYWlnYWt1a3lvdWp1XCA7CivliY3pgLLpgYvli5UgPCB6ZW5zaGluJyd1bmRvdVwgOwor5rS75YuV5oiQ5p6cIDwga2F0c3Vkb3VzZWlrYVwgOwor57eP5ZCI5Y+O5pSvIDwgc291Z291c2h1dXNoaVwgOwor6LK354mp6KKLIDwga2FpbW9ub2J1a3Vyb1wgOwor5ZC45Y+O5YqbIDwga3l1dXNodXVyeW9rdVwgOwor5ZCE6aeF5YGc6LuKIDwga2FrdWVraXRlaXNoYVwgOwor54us56uL5Zu9IDwgZG9rdXJpdHN1a29rdVwgOwor6Kem5aqS5L2c55SoIDwgc2hva3ViYWlzYXlvdVwgOwor56eR5a2m5oqA6KGTIDwga2FnYWt1Z2lqdXRzdVwgOwor5Y2w5Yi355So57SZIDwgaW5zYXRzdXlvdXNoaVwgOwor5Zue6Lev6YGu5pat5qmfIDwga2Fpcm9zaGFkYW5raVwgOwor5Lq655qE6Ki85ougIDwgamludGVraXNob3Vrb1wgOwor5oqX6K2w5rS75YuVIDwga291Z2lrYXRzdWRvdVwgOwor5YWI5Y+W5b6X54K5IDwgc2Vuc2h1dG9rdXRlblwgOwor5qGc56WtIDwgc2FrdXJhbWF0c3VyaVwgOwor6KSH5ZCI5LyB5qWtIDwgZnVrdWdvdWtpZ3lvdVwgOwor54Sh5beu5Yil57SaIDwgbXVzYWJldHN1a3l1dVwgOwor5aSa5Zu957GN6LuNIDwgdGFrb2t1c2VraWd1blwgOwor56u25LqJ5L6h5qC8IDwga3lvdXNvdWtha2FrdVwgOwor56S+5Lya5Lq65p6gIDwgc2hha2Fpamlud2FrdVwgOwor5ZWG5qWt5Zyw5Yy6IDwgc2hvdWd5b3VjaGlrdVwgOwor6KGo5bGk5qeL6YCgIDwgaHlvdXNvdWtvdXpvdVwgOwor57K+56We6KGb55SfIDwgc2Vpc2hpbicnZWlzZWlcIDsKK+ihgOWwv+eXhyA8IGtldHN1bnlvdXNob3VcIDsKK+iIquepuuWGmeecnyA8IGtvdWt1dXNoYXNoaW5cIDsKK+S4iuaYh+awl+a1gSA8IGpvdXNob3VraXJ5dXVcIDsKK+WMl+Wkp+ilv+a0iyA8IGtpdGF0YWlzZWl5b3VcIDsKK+ihjOaUv+aMh+WwjiA8IGd5b3VzZWlzaGlkb3VcIDsKK+Wumue9rua8gealrSA8IHRlaWNoaWd5b2d5b3VcIDsKK+acgOmrmOe0muWTgSA8IHNhaWtvdWt5dXVoaW5cIDsKK+W9q+WIu+eJqSA8IGNob3Vrb2t1YnV0c3VcIDsKK+WHuumgreWRveS7pCA8IHNodXR0b3VtZWlyZWlcIDsKK+WgquW/jeiiiyA8IGthbicnbmluYnVrdXJvXCA7Civlh7rooYDpgY7lpJogPCBzaHVra2V0c3VrYXRhXCA7Civpm7vlrZDlh7rniYggPCBkZW5zaGlzaHVwcGFuXCA7CivnpL7plbflrqQgPCBzaGFjaG91c2hpdHN1XCA7CivoibLntKDntLDog54gPCBzaGlraXNvc2FpYm91XCA7CivogZbot6/liqDnl4XpmaIgPCBzZWlyb2thYnlvdWluXCA7CivoirHlq4HooaPoo7MgPCBoYW5heW9tZWlzaG91XCA7CivlsI/lj6Pnj77ph5EgPCBrb2d1Y2hpZ2Vua2luXCA7CivliIbpm6LkuLvnvqnogIUgPCBidW5yaXNodWdpc2hhXCA7CivljZrlrablpJrmiY0gPCBoYWt1Z2FrdXRhc2FpXCA7CivlpJbmp5jlpKflkI0gPCB0b3phbWFkYWlteW91XCA7Civlm73msJHkuLvmqKkgPCBrb2t1bWluc2h1a2VuXCA7Civlhazph5HmqKrpoJggPCBrb3VraW4nJ291cnlvdVwgOwor5oay5rOV6KiY5b+15pelIDwga2VucG91a2luZW5iaVwgOwor6L+R6YOK6L6y5qWtIDwga2lua291bm91Z3lvdVwgOwor5YWo5Zu95aSn5LyaIDwgemVua29rdXRhaWthaVwgOwor5ZCf6YGK6Kmp5Lq6IDwgZ2luJyd5dXVzaGlqaW5cIDsKK+WGt+awtOaRqeaTpiA8IHJlaXN1aW1hc2F0c3VcIDsKK+absuWtpumYv+S4liA8IGt5b2t1Z2FrdWFzZWlcIDsKK+S+oeagvOertuS6iSA8IGtha2FrdWt5b3Vzb3VcIDsKK+WKoOa4m+aKteaKl+WZqCA8IGthZ2VudGVpa291a2lcIDsKK+emgeaWreeXh+eKtiA8IGtpbmRhbnNob3Vqb3VcIDsKK+ernOaUmOiZjuaQjyA8IHJ5dXVqb3Vrb2hha3VcIDsKK+ato+WRs+mHjemHjyA8IHNob3VtaWp1dXJ5b3VcIDsKK+WFrOiovOW9ueWgtCA8IGtvdXNob3V5YWt1YmFcIDsKK+a4hea2vOmjsuaWmSA8IHNlaXJ5b3VpbnJ5b3VcIDsKK+S4vOWLmOWumiA8IGRvbmJ1cmlrYW5qb3VcIDsKK+avm+euoeePvuixoSA8IG1vdWthbmdlbnNob3VcIDsKK+S9nOaIpuWcsOWfnyA8IHNha3VzZW5jaGlpa2lcIDsKK+eOieWtkOS4vCA8IHRhbWFnb2RvbmJ1cmlcIDsKK+WHuuW8teaXheiyuyA8IHNodXRjaG91cnlvaGlcIDsKK+aUvumAgeeVque1hCA8IGhvdXNvdWJhbmd1bWlcIDsKK+eEoeWFjeiosemBi+i7oiA8IG11bWVua3lvdW50ZW5cIDsKK+e4ruWIt+eJiCA8IHNodWt1c2F0c3ViYW5cIDsKK+awuOS5heejgeefsyA8IGVpa3l1dWppc2hha3VcIDsKK+WjsuaOm+WLmOWumiA8IHVyaWtha2VrYW5qb3VcIDsKK+S7iuaXpeeahCA8IGtvbicnbmljaGl0ZWtpXCA7CivplpPlrq7mtbfls6EgPCBtYW1peWFrYWlreW91XCA7CivnjYTkuK3ml6XoqJggPCBnb2t1Y2h1dW5pa2tpXCA7CivmsojmgJ3pu5nogIMgPCBjaGluc2hpbW9ra291XCA7CivotoXlm73lrrbnmoQgPCBjaG91a29ra2F0ZWtpXCA7CivmtJ7lr5/lipsgPCBkb3VzYXRzdXJ5b2t1XCA7CivpmLLngavlu7rnr4kgPCBib3VrYWtlbmNoaWt1XCA7Civph5Hono3luILloLQgPCBraW4nJ3l1dXNoaWpvdVwgOwor6ZuG5Zuj5b+D55CGIDwgc2h1dWRhbnNoaW5yaVwgOwor5YWl56S+6Kmm6aiTIDwgbnl1dXNoYXNoaWtlblwgOwor6YG45oqe5YCk576kIDwgc2VudGFrdWNoaWd1blwgOwor5LiN5Y+v6KaW5YWJ57eaIDwgZnVrYXNoaWtvdXNlblwgOwor56K6546H6Kqk5beuIDwga2FrdXJpdHN1Z29zYVwgOwor6LK/5piT6Ieq55Sx5YyWIDwgYm91ZWtpaml5dXVrYVwgOwor56ys5Zub6ZqO57SaIDwgZGFpeW9ua2Fpa3l1dVwgOwor56m65rCX5Yi25YuV5qmfIDwga3V1a2lzZWlkb3VraVwgOwor6YCN6YGl5a2m5rS+IDwgc2hvdXlvdWdha3VoYVwgOwor6buS54K55ZGo5pyfIDwga29rdXRlbnNodXVraVwgOwor576O6KGT5a2m5qChIDwgYmlqdXRzdWdha2tvdVwgOwor5Y2K5q275Y2K55SfIDwgaGFuc2hpaGFuc2hvdVwgOwor5b+r6YCf6Zu76LuKIDwga2Fpc29rdWRlbnNoYVwgOwor5Y2X5YyX5oim5LqJIDwgbmFuYm9rdXNlbnNvdVwgOwor5bCP5YWQ5ZaY5oGvIDwgc2hvdW5pemVuc29rdVwgOwor5YaF5pS/5bmy5riJIDwgbmFpc2Vpa2Fuc2hvdVwgOwor5YWs5bmz5pS/562WIDwga291aGVpc2Vpc2FrdVwgOwor5bel5qWt6KaP5qC8IDwga291Z3lvdWtpa2FrdVwgOwor5Zub6KeS5Zub6Z2iIDwgc2hpa2FrdXNoaW1lblwgOwor5bCR5bm05bCR5aWzIDwgc2hvdW5lbnNob3Vqb1wgOwor5YaN6LKp5qWt6ICFIDwgc2FpaGFuZ3lvdXNoYVwgOwor6LaF6auY6YCf5bqmIDwgY2hvdWtvdXNva3Vkb1wgOwor6Kq/5p+75aCx5ZGKIDwgY2hvdXNhaG91a29rdVwgOwor5rW36Zuj5a+p5YikIDwga2FpbmFuc2hpbnBhblwgOwor55CG5a2m5L+u5aOrIDwgcmlnYWt1c2h1dXNoaVwgOwor5aSW55qE5qC55ougIDwgZ2FpdGVraWtvbmt5b1wgOwor5p2+6aOf6JmrIDwgbWF0c3VrdWltdXNoaVwgOwor55Sf5ZG95bel5a2mIDwgc2VpbWVpa291Z2FrdVwgOwor5aSp5L2R56We5YqpIDwgdGVuJyd5dXVzaGluam9cIDsKK+WkluWbveaXheihjCA8IGdhaWtva3VyeW9rb3VcIDsKK+WFseWQjOawtOagkyA8IGt5b3Vkb3VzdWlzZW5cIDsKK+aLoeWkp+Wdh+ihoSA8IGtha3VkYWlraW5rb3VcIDsKK+iKi+iUk+W8jyA8IGltb2R6dXJ1c2hpa2lcIDsKK+S6lOWNgeatqeeZvuatqSA8IGdvanVwcG9oeWFwcG9cIDsKK+izqumHj+aVsCA8IHNoaXRzdXJ5b3VzdXVcIDsKK+WHseaXi+Wwhui7jSA8IGdhaXNlbnNob3VndW5cIDsKK+WOn+eQhuS4u+e+qeiAhSA8IGdlbnJpc2h1Z2lzaGFcIDsKK+mbhuepjeWbnui3ryA8IHNodXVzZWtpa2Fpcm9cIDsKK+ijvumHjueUo+alrSA8IHN1c29ub3Nhbmd5b3VcIDsKK+mOrumtguW4sOelniA8IGNoaW5rb25raXNoaW5cIDsKK+WQiOagvOiAheWQjSA8IGdvdWtha3VzaGFtZWlcIDsKK+acieizh+agvOiAhSA8IHl1dXNoaWtha3VzaGFcIDsKK+WMluWtpuWPjeW/nCA8IGthZ2FrdWhhbicnbm91XCA7CivpnIDopoHkvpvntaYgPCBqdXlvdWt5b3VreXV1XCA7CivliKXphY3pgZQgPCBiZXRzdWhhaXRhdHN1XCA7Civlj6zllprku6TnirYgPCBzaG91a2FucmVpam91XCA7CivoqabpqJPli4nlvLcgPCBzaGlrZW5iZW5reW91XCA7CivmuKnlrqTlirnmnpwgPCBvbnNoaXRzdWtvdWthXCA7Civku4rml6Xmp5ggPCBrb24nJ25pY2hpc2FtYVwgOwor5pyJ6Ymk5p2h6JmrIDwgeXV1a291am91Y2h1dVwgOwor5YaF55qE5qC55ougIDwgbmFpdGVraWtvbmt5b1wgOwor6L+R5rW35ryB5qWtIDwga2lua2FpZ3lvZ3lvdVwgOwor5Yag5aSn5LyaIDwga2FubXVyaXRhaWthaVwgOwor5rG65oim5oqV56WoIDwga2Vzc2VudG91aHlvdVwgOwor5YWx5ZCM56S+5LyaIDwga3lvdWRvdXNoYWthaVwgOwor6L+96KSH5puyIDwgdHN1aWZ1a3VreW9rdVwgOwor5ZSQ6I2J5qih5qeYIDwga2FyYWt1c2Ftb3lvdVwgOwor5YyF55qu5YiH5patIDwgaG91aGlzZXRzdWRhblwgOwor5a6a5pyf5Y+W5byVIDwgdGVpa2l0b3JpaGlraVwgOwor5Lm+54el5rSX5r+vIDwga2Fuc291c2VudGFrdVwgOwor6ZuG5ZCI5ZCN6KmeIDwgc2h1dWdvdW1laXNoaVwgOwor5bCP5Z6L5paw6IGeIDwga29nYXRhc2hpbmJ1blwgOwor5aSa5YWD5paH5YyW6KuWIDwgdGFnZW5idW5rYXJvblwgOwor6K2y5rih5oCn6aCQ6YeRIDwgam91dG9zZWl5b2tpblwgOwor5Yy755mC5pa96KitIDwgaXJ5b3VzaGlzZXRzdVwgOwor5YuV54mp5rK56ISCIDwgZG91YnV0c3V5dXNoaVwgOwor5Y+N6Z2i5pWZ5birIDwgaGFubWVua3lvdXNoaVwgOwor57WE5ZCI6aCtIDwga3VtaWFpZ2FzaGlyYVwgOwor5pel5bi45Lya6KmxIDwgbmljaGlqb3VrYWl3YVwgOwor6Ly45YWl5qWt6ICFIDwgeXVueXV1Z3lvdXNoYVwgOwor5qiZ5rqW5L6h5qC8IDwgaHlvdWp1bmtha2FrdVwgOwor5LiN5aaK5omL6KGTIDwgZnVuaW5zaHVqdXRzdVwgOwor5bGx54yr5LqJ6K2wIDwgeWFtYW5la29zb3VnaVwgOwor5Ye65LiW6ZaT55qEIDwgc2h1c3Nla2VudGVraVwgOwor5bm05Lit6KGM5LqLIDwgbmVuY2h1dWd5b3VqaVwgOwor6Y6M5YCJ5pmC5LujIDwga2FtYWt1cmFqaWRhaVwgOwor5pWj5q2p5peBIDwgc2FucG9rYXRhZ2F0YVwgOwor5L6b6KiX54mpIDwga3lvdXRha3VidXRzdVwgOwor54KO55eH55eF5bejIDwgZW5zaG91YnlvdXNvdVwgOwor5rOo5oSP5Lq654mpIDwgY2h1dWlqaW5idXRzdVwgOwor5Zu95a625Li7576p6ICFIDwga29ra2FzaHVnaXNoYVwgOwor5pel5rSq6Kaq5ZaEIDwgbmlra291c2hpbnplblwgOwor6L+95Yqg5rOo5paHIDwgdHN1aWthY2h1dW1vblwgOwor562G5YaZ55Wl5a2XIDwgaGlzc2hhcnlha3VqaVwgOwor54yu6KGA6YGL5YuVIDwga2Vua2V0c3V1bmRvdVwgOwor6Iie5Y+w6Iq46KGTIDwgYnV0YWlnZWlqdXRzdVwgOwor5Ye66aGY5Lq6IDwgc2h1dHN1Z2FuJyduaW5cIDsKK+ippumok+ebo+edoyA8IHNoaWtlbmthbnRva3VcIDsKK+aSpOmgreW+ueWwviA8IHRldHRvdXRldHN1YmlcIDsKK+eWvumiqOi/hembtyA8IHNoaXBwdXVqaW5yYWlcIDsKK+W4guWgtOeSsOWigyA8IHNoaWpvdWthbmt5b3VcIDsKK+WOn+aIkOWyqeefsyA8IGdlbnNlaWdhbnNla2lcIDsKK+WJjeWkp+e1semgmCA8IHplbmRhaXRvdXJ5b3VcIDsKK+W8t+WItumAgemChCA8IGt5b3VzZWlzb3VrYW5cIDsKK+WQjOalree1hOWQiCA8IGRvdWd5b3VrdW1pYWlcIDsKK+mbu+awl+WJg+WIgCA8IGRlbmtpa2FtaXNvcmlcIDsKK+S6i+WLmeWxgOmVtyA8IGppbXVreW9rdWNob3VcIDsKK+e1jOa4iOaUuemdqSA8IGtlaXphaWthaWtha3VcIDsKK+ayv+WyuOitpuWCmemaiiA8IGVuZ2Fua2VpYml0YWlcIDsKK+awkeS/l+iKuOiDvSA8IG1pbnpva3VnZWlub3VcIDsKK+eymOedgOWKmyA8IG5lbmNoYWt1cnlva3VcIDsKK+WAi+S6uuS4u+e+qeiAhSA8IGtvamluc2h1Z2lzaGFcIDsKK+WPjuepq+S6iOaDsyA8IHNodXVrYWt1eW9zb3VcIDsKK+Whqei+m+icu+ibiSA8IHNoaW9rYXJhdG9uYm9cIDsKK+Wuv+aziuaWmSA8IHNodWt1aGFrdXJ5b3VcIDsKK+e0huS9meabsuaKmCA8IHV5b2t5b2t1c2V0c3VcIDsKK+altei2heefreazoiA8IGdva3VjaG91dGFucGFcIDsKK+S5s+eqhCA8IGNoaWNoaXNoaWJvcmlcIDsKK+S4u+aoqeS+teeKryA8IHNodWtlbnNoaW5wYW5cIDsKK+S4reaAp+a0l+WJpCA8IGNodXVzZWlzZW56YWlcIDsKK+iyqOeJqeWIl+i7iiA8IGthbW90c3VyZXNzaGFcIDsKK+ihgOa4heeZguazlSA8IGtlc3NlaXJ5b3Vob3VcIDsKK+aWsOahiOeJueiosSA8IHNoaW4nJ2FudG9ra3lvXCA7CivmmK/mmK/pnZ7pnZ7kuLvnvqkgPCB6ZXplaGloaXNodWdpXCA7Civmrbvlvoznoaznm7QgPCBzaGlnb2tvdWNob2t1XCA7CivllK/niankuLvnvqkgPCB5dWlidXRzdXNodWdpXCA7Civml6XpnLLmiKbkuokgPCBuaWNoaXJvc2Vuc291XCA7CivlkIznm5/mnaHntIQgPCBkb3VtZWlqb3V5YWt1XCA7CivkuIDmlKvljYPph5EgPCBpa2tha2t1c2Vua2luXCA7Civpmo7ntJrpl5jkuokgPCBrYWlreXV1dG91c291XCA7CivnhrHnoazljJbliaQgPCBuZXRzdWtvdWthemFpXCA7CivlsILnlKjlm57nt5ogPCBzZW4nJ3lvdWthaXNlblwgOwor5Lqk5o+b5a2m55SfIDwga291a2FuZ2FrdXNlaVwgOwor5YuV57ea6KiI55S7IDwgZG91c2Vua2Vpa2FrdVwgOwor5aSW5Lqk5aeU5ZOh6ZW3IDwgZ2Fpa291aWluY2hvdVwgOwor5rCR5pS/6ZW35a6YIDwgbWluc2VpY2hvdWthblwgOwor5Yik5pat5Lit5q2iIDwgaGFuZGFuY2h1dXNoaVwgOwor5p6d5Z6C5qGcIDwgc2hpZGFyZXpha3VyYVwgOwor5Y+k5Luj57SrIDwga29kYWltdXJhc2FraVwgOwor5bGA5omA5YiG5bKQIDwga3lva3VzaG9idW5raVwgOwor6YCa5bi45Zu95LyaIDwgdHN1dWpvdWtva2thaVwgOwor5p6d5Z6C5p+zIDwgc2hpZGFyZXlhbmFnaVwgOwor5rex57eR6ImyIDwgZnVrYW1pZG9yaWlyb1wgOwor5pWw5YCk6Kej5p6QIDwgc3V1Y2hpa2Fpc2VraVwgOwor54Sh5oq15oqX5Li7576pIDwgbXV0ZWlrb3VzaHVnaVwgOwor6LuN5YKZ5ouh5by1IDwgZ3VuYmlrYWt1Y2hvdVwgOwor6YGp6ICF55Sf5a2YIDwgdGVraXNoYXNlaXpvblwgOwor57K+56We6ZGR5a6aIDwgc2Vpc2hpbmthbnRlaVwgOwor56mN6Zuq6YePIDwgc2VraXNldHN1cnlvdVwgOwor6YmE6YGT6Ly46YCBIDwgdGV0c3Vkb3V5dXNvdVwgOwor56CU56m25a6kIDwga2Vua3l1dXNoaXRzdVwgOwor56ys5LiJ6ZqO57SaIDwgZGFpc2Fua2Fpa3l1dVwgOwor5Y2D5oWL5LiH5qeYIDwgc2VudGFpYmFuJyd5b3VcIDsKK+mbu+WtkOW3peWtpiA8IGRlbnNoaWtvdWdha3VcIDsKK+e1jOa4iOeKtuazgSA8IGtlaXphaWpvdWt5b3VcIDsKK+ekvuS8muaVmeiCsiA8IHNoYWthaWt5b3Vpa3VcIDsKK+i+suiAleawkeaXjyA8IG5vdWtvdW1pbnpva3VcIDsKK+WFqOi6q+WFqOmciiA8IHplbnNoaW56ZW5yZWlcIDsKK+WFrOensOizh+acrCA8IGtvdXNob3VzaGlob25cIDsKK+Wkp+Wtl+eJh+WxsSA8IG9vYXpha2F0YXlhbWFcIDsKK+iWrOW4q+WmguadpSA8IHlha3VzaGlueW9yYWlcIDsKK+aUvuWwhOiDveaxmuafkyA8IGhvdXNoYW5vdW9zZW5cIDsKK+mbu+awl+iHquWLlei7iiA8IGRlbmtpamlkb3VzaGFcIDsKK+izouaJgCA8IGthc2hpa29kb2tvcm9cIDsKK+WQjOebn+S8keagoSA8IGRvdW1laWt5dXVrb3VcIDsKK+W3peS9nOWupCA8IGtvdXNha3VzaGl0c3VcIDsKK+S4reWkruioiOeUuyA8IGNodXVvdWtlaWtha3VcIDsKK+S4reWkrumbhuaoqSA8IGNodXVvdXNodXVrZW5cIDsKK+S4ieinkuiyv+aYkyA8IHNhbmtha3Vib3Vla2lcIDsKK+WIhuaekOWMluWtpiA8IGJ1bnNla2lrYWdha3VcIDsKK+WwkeWjruWjq+WumCA8IHNob3Vzb3VzaGlrYW5cIDsKK+azleeahOagueaLoCA8IGhvdXRla2lrb25reW9cIDsKK+auuuWus+S6i+S7tiA8IHNhdHN1Z2FpamlrZW5cIDsKK+mdoumtgiA8IHRzdXJhZGFtYXNoaWlcIDsKK+iHqueEtuWil+WPjiA8IHNoaXplbnpvdXNodXVcIDsKK+iJr+aAp+iFq+eYjSA8IHJ5b3VzZWlzaHV5b3VcIDsKK+S9nOWKh+ihkyA8IHNha3VnZWtpanV0c3VcIDsKK+efreaXpeaciCA8IHRhbmppdHN1Z2V0c3VcIDsKK+i7iuaOjOWupCA8IHNoYXNob3VzaGl0c3VcIDsKK+mAmuWLpOmbu+i7iiA8IHRzdXVraW5kZW5zaGFcIDsKK+WwkeW5tOeKr+e9qiA8IHNob3VuZW5oYW56YWlcIDsKK+awtOmFuOWMlueJqSA8IHN1aXNhbmthYnV0c3VcIDsKK+imquaImuefpeW3sSA8IHNoaW5zZWtpY2hpa2lcIDsKK+WNmOeLrOaxuueulyA8IHRhbmRva3VrZXNzYW5cIDsKK+Wbvemam+aDheWLoiA8IGtva3VzYWlqb3VzZWlcIDsKK+ihl+mgrea8lOiqrCA8IGdhaXRvdWVuemV0c3VcIDsKK+aso+WWnOmbgOi6jSA8IGtpbmtpamFrdXlha3VcIDsKK+WTgeeoruaUueiJryA8IGhpbnNodWthaXJ5b3VcIDsKK+WFrOensOmmrOWKmyA8IGtvdXNob3ViYXJpa2lcIDsKK+Wbm+WFreaZguS4rSA8IHNoaXJva3VqaWNodXVcIDsKK+S6pOmAmumBruaWrSA8IGtvdXRzdXVzaGFkYW5cIDsKK+Wkp+Wtpue0m+S6iSA8IGRhaWdha3VmdW5zb3VcIDsKK+iyoeaUv+WPjuaUryA8IHphaXNlaXNodXVzaGlcIDsKK+ihhuWPguS4oemZoiA8IHNodXVzYW5yeW91aW5cIDsKK+iAkOeBq+W7uueviSA8IHRhaWtha2VuY2hpa3VcIDsKK+imluWKm+aknOafuyA8IHNoaXJ5b2t1a2Vuc2FcIDsKK+Wwj+WIgOe0sOW3pSA8IGtvZ2F0YW5hemFpa3VcIDsKK+izqueWkeW/nOetlCA8IHNoaXRzdWdpb3V0b3VcIDsKK+aNnOafu+W9k+WxgCA8IHNvdXNhdG91a3lva3VcIDsKK+iouuWvn+aWmSA8IHNoaW5zYXRzdXJ5b3VcIDsKK+S/uOe1puiiiyA8IGhvdWt5dXVidWt1cm9cIDsKK+eFp+iRieeLguiogCA8IHRlcmloYWt5b3VnZW5cIDsKK+WHuuW+gei7jeS6uiA8IHNodXNzZWlndW5qaW5cIDsKK+WEqueUn+S/neitt+azlSA8IHl1dXNlaWhvZ29ob3VcIDsKK+a2iOWkseeCuSA8IHNob3VzaGl0c3V0ZW5cIDsKK+aUvuWwhOiDvembsiA8IGhvdXNoYW5vdWd1bW9cIDsKK+ekvuS8muaUv+etliA8IHNoYWthaXNlaXNha3VcIDsKK+mbu+altembu+S9jSA8IGRlbmt5b2t1ZGVuJydpXCA7Civkurrlt6XpgI/mnpAgPCBqaW5rb3V0b3VzZWtpXCA7CivopIflkIjlqpLkvZMgPCBmdWt1Z291YmFpdGFpXCA7CivkvY/msJHmipXnpaggPCBqdXVtaW50b3VoeW91XCA7Civlt6Xmpa3lnLDluK8gPCBrb3VneW91Y2hpdGFpXCA7CivlkbzlkLjlm7Dpm6MgPCBrb2t5dXVrb24nJ25hblwgOwor6Kqt5pu45a6kIDwgZG9rdXNob3NoaXRzdVwgOwor6aSK6K235pa96KitIDwgeW91Z29zaGlzZXRzdVwgOwor6Ly45Ye66KaP5Yi2IDwgeXVzaHV0c3VraXNlaVwgOwor5Zyw5pa55LqL5YuZ5omAIDwgY2hpaG91amltdXNob1wgOwor5oim5Yqb57WE5oiQIDwgc2Vucnlva3Vzb3NlaVwgOwor57Wx5LiA6KaL6KejIDwgdG91aXRzdWtlbmthaVwgOwor5YKs55yg55mC5rOVIDwgc2FpbWlucnlvdWhvdVwgOwor5bel5qWt6KO95ZOBIDwga291Z3lvdXNlaWhpblwgOwor5b255Lq65qC55oCnIDwgeWFrdW5pbmtvbmpvdVwgOwor54us5oi/55uj56aBIDwgZG9rdWJvdWthbmtpblwgOwor5a6/5rOK5YWIIDwgc2h1a3VoYWt1c2FraVwgOwor5bCO6YCa5oq15oqXIDwgZG91dHN1dXRlaWtvdVwgOwor5Y2U6Kq/5Li7576pIDwga3lvdWNob3VzaHVnaVwgOwor5Lya6KiI5aCx5ZGKIDwga2Fpa2VpaG91a29rdVwgOwor5Y+w5rm+5rW35bOhIDwgdGFpd2Fua2Fpa3lvdVwgOwor5pel5riF5oim5LqJIDwgbmlzc2hpbnNlbnNvdVwgOwor5a6j6KiA55m66KGoIDwgc2VuZ2VuaGFwcHlvdVwgOwor5aSp5L2T5YaZ55yfIDwgdGVudGFpc2hhc2hpblwgOwor6Ly45YWl6Ieq55Sx5YyWIDwgeXVueXV1aml5dXVrYVwgOwor6YeN6YeP5Zm45pWwIDwganV1cnlvdXRvbnN1dVwgOwor6K2Y5Yil5a2QIDwgc2hpa2liZXRzdXNoaVwgOwor5Y2X5Y2K55CDIDwgbWluYW1paGFua3l1dVwgOwor5piO6Y+h5q2i5rC0IDwgbWVpa3lvdXNoaXN1aVwgOwor5bm06ZaT6KiI55S7IDwgbmVua2Fua2Vpa2FrdVwgOwor54Sh5Yip5oGv5YK15YuZIDwgbXVyaXNva3VzYWltdVwgOwor5Y+j6L+w562G6KiYIDwga291anV0c3VoaWtraVwgOwor5Zu96Zqb6YCa6LKoIDwga29rdXNhaXRzdXVrYVwgOwor6IG35ZOh5a6kIDwgc2hva3VpbnNoaXRzdVwgOwor56Gr6buE6YW45YyW54mpIDwgaW91c2Fua2FidXRzdVwgOwor5YGl5bq36Ki65patIDwga2Vua291c2hpbmRhblwgOwor5qGD5bGx5pmC5LujIDwgbW9tb3lhbWFqaWRhaVwgOwor6IG35aC057WQ5amaIDwgc2hva3ViYWtla2tvblwgOwor55Kw5aKD5ZWP6aGMIDwga2Fua3lvdW1vbmRhaVwgOwor6Ki85Lq65Zaa5ZWPIDwgc2hvdW5pbmthbm1vblwgOwor5L+h546E6KKLIDwgc2hpbmdlbmJ1a3Vyb1wgOwor5pS75pKD5pa55ZCRIDwga291Z2VraWhvdWtvdVwgOwor56u25LqJ5aOy6LK3IDwga3lvdXNvdWJhaWJhaVwgOwor6JGX5L2c5qip5rOVIDwgY2hvc2FrdWtlbmhvdVwgOwor5Zu96Zqb56S+5LyaIDwga29rdXNhaXNoYWthaVwgOwor5paw5Yi26auY5qChIDwgc2hpbnNlaWtvdWtvdVwgOwor5a+E55Sf6Jmr55eHIDwga2lzZWljaHV1c2hvdVwgOwor5Lit5oqY5bi95a2QIDwgbmFrYW9yZWJvdXNoaVwgOwor5YWs6ZaL57e057+SIDwga291a2FpcmVuc2h1dVwgOwor57WM5riI5pS/562WIDwga2VpemFpc2Vpc2FrdVwgOwor5ZCI5oiQ5YaZ55yfIDwgZ291c2Vpc2hhc2hpblwgOwor5paw6YCy5L2c5a62IDwgc2hpbnNoaW5zYWtrYVwgOwor5oGL54mp6KqeIDwga29pbW9ub2dhdGFyaVwgOwor6YW457Sg5L6b57WmIDwgc2Fuc29reW91a3l1dVwgOwor5Lqk6YCa5YWs56S+IDwga291dHN1dWtvdXNoYVwgOwor5rS75q666Ieq5ZyoIDwga2Fzc2F0c3VqaXphaVwgOwor6Zu76YCB5YaZ55yfIDwgZGVuc291c2hhc2hpblwgOwor5YWo55+l5YWo6IO9IDwgemVuY2hpemVuJydub3VcIDsKK+S4gOeykueoriA8IGhpdG90c3VidWRhbmVcIDsKK+WbveWLouiqv+afuyA8IGtva3VzZWljaG91c2FcIDsKK+a1gemAmuapn+aniyA8IHJ5dXV0c3V1a2lrb3VcIDsKK+WFteWZqOi8uOWHuiA8IGhlaWtpeXVzaHV0c3VcIDsKK+Wkqeeah+W0h+aLnSA8IHRlbicnbm91c3V1aGFpXCA7Civkv53oqLzkurropoEgPCBob3Nob3VuaW4nJ3lvdVwgOwor5rWu6YGK55Sf54mpIDwgZnV5dXVzZWlidXRzdVwgOwor57WC6Lqr5L+d6Zm6IDwgc2h1dXNoaW5ob2tlblwgOwor57eR5p+x55+zIDwgcnlva3VjaHV1c2VraVwgOwor5oe46LOe6KuW5paHIDwga2Vuc2hvdXJvbmJ1blwgOwor6YGT6Lev5o6D6Zmk5Lq6IDwgZG91cm9zb3VqaWppblwgOwor5biC5aC05pS56Z2pIDwgc2hpam91a2Fpa2FrdVwgOwor6Zu75Yqb6ZyA6KaBIDwgZGVucnlva3VqdXlvdVwgOwor6Ieo5bqK5bCL5ZWPIDwgcmluc2hvdWppbm1vblwgOwor6Zmw5qW157ea566hIDwgaW5reW9rdXNlbmthblwgOwor5peL5YWJ5YiG5p6QIDwgc2Vua291YnVuc2VraVwgOwor5YyW55+z54eD5paZIDwga2FzZWtpbmVucnlvdVwgOwor6Zu75L+h54K65pu/IDwgZGVuc2hpbmthd2FzZVwgOwor5LuP5L2cIDwgaG90b2tlZHp1a3VydVwgOwor5oeQ5Lit6Zu754GvIDwga2FpY2h1dWRlbnRvdVwgOwor5omN6Imy5YW85YKZIDwgc2Fpc2hva3VrZW5iaVwgOwor5p2x5Y2XIDwgaGlnYXNoaW1pbmFtaVwgOwor5oyH5bCO6KaB6aCYIDwgc2hpZG91eW91cnlvdVwgOwor6YO15L6/5bm06YeRIDwgeXV1YmluJyduZW5raW5cIDsKK+mWoumAo+WVhuWTgSA8IGthbnJlbnNob3VoaW5cIDsKK+mZkOeVjOeKtuazgSA8IGdlbmthaWpvdWt5b3VcIDsKK+S7gei8quWKoOeLguiogCA8IG5pd2FrYWt5b3VnZW5cIDsKK+ePvuWcqOWujOS6hiA8IGdlbnphaWthbnJ5b3VcIDsKK+WItue0hOS8neaQrCA8IHNlaXlha3VkZW5wYW5cIDsKK+S4uOS4gOmAsemWkyA8IG1hcnVpc3NodXVrYW5cIDsKK+W3pealreWbo+WcsCA8IGtvdWd5b3VkYW5jaGlcIDsKK+altealvea1hOWcnyA8IGdva3VyYWt1am91ZG9cIDsKK+iHquiHquWFrO+8k+WFmiA8IGppamlrb3VzYW50b3VcIDsKK+awl+euoeaUr+iCuueCjiA8IGtpa2Fuc2hpaGFpZW5cIDsKK+WkmumHjeWCteWLmeiAhSA8IHRhanV1c2FpbXVzaGFcIDsKK+WMluWtpuWIhuaekCA8IGthZ2FrdWJ1bnNla2lcIDsKK+irruWVj+WnlOWToeS8miA8IHNoaW1vbicnaWlua2FpXCA7CivlkIzngrnmsbrli50gPCBkb3V0ZW5rZXNzaG91XCA7CivkvZPlpJbpm6LohLEgPCB0YWlnYWlyaWRhdHN1XCA7CivnlJ/nianlhbXlmaggPCBzZWlidXRzdWhlaWtpXCA7CivljZjpn7Pnr4Doqp4gPCB0YW4nJ29uc2V0c3Vnb1wgOwor5pS75pKD6ZqK5b2iIDwga291Z2VraXRhaWtlaVwgOwor5rOV5Lq65omA5b6XIDwgaG91amluc2hvdG9rdVwgOwor5aSn6YCG5LqL5Lu2IDwgdGFpZ3lha3VqaWtlblwgOwor5Y6f5aeL5pWZ5LyaIDwgZ2Vuc2hpa3lvdWthaVwgOwor5L6h5qC85Y2U5a6aIDwga2FrYWt1a3lvdXRlaVwgOwor5a+T5oSP5bCP6KqsIDwgZ3V1aXNob3VzZXRzdVwgOwor5piU5rCX6LOqIDwgbXVrYXNoaWthdGFnaVwgOwor5bCC6ZaA5oqA6KGTIDwgc2VubW9uZ2lqdXRzdVwgOwor5ouh5by15Y+v6IO9IDwga2FrdWNob3VrYW5vdVwgOwor5L+E5YuJ5by3IDwgbml3YWthYmVua3lvdVwgOwor5oCl6YCy5Li7576pIDwga3l1dXNoaW5zaHVnaVwgOwor6KiY5b+15byP5YW4IDwga2luZW5zaGlraXRlblwgOwor56u25ZCI6ISx57eaIDwga3lvdWdvdWRhc3NlblwgOwor5pqR5Lit5LyR5pqHIDwgc2hvY2h1dWt5dXVrYVwgOwor57mB5paH57if56S8IDwgaGFuYnVuam9rdXJlaVwgOwor55uu5qiZ566h55CGIDwgbW9rdWh5b3VrYW5yaVwgOwor5pa55ZCR6Kaz5b+1IDwgaG91a291a2FuJyduZW5cIDsKK+a1t+W6lembu+S/oSA8IGthaXRlaWRlbnNoaW5cIDsKK+alreeVjOWLleWQkSA8IGd5b3VrYWlkb3Vrb3VcIDsKK+W/heimgee1jOiyuyA8IGhpdHN1eW91a2VpaGlcIDsKK+awtOeOieaooeanmCA8IG1penV0YW1hbW95b3VcIDsKK+mAsuWtpueOhyA8IHNoaW5nYWt1cml0c3VcIDsKK+WHuuW+geWutuaXjyA8IHNodXNzZWlrYXpva3VcIDsKK+e1jOW4uOWPjuaUryA8IGtlaWpvdXNodXVzaGlcIDsKK+WcsOeQg+enkeWtpiA8IGNoaWt5dXVrYWdha3VcIDsKK+aDheWgseaKgOihkyA8IGpvdWhvdWdpanV0c3VcIDsKK+auv+anmOibmSA8IHRvbm9zYW1hZ2FlcnVcIDsKK+mrmOmrmOW6pumjm+ihjCA8IGtvdWtvdWRvaGlrb3VcIDsKK+epuuS4reWIhuinoyA8IGt1dWNodXVidW5rYWlcIDsKK+W8t+WItuWKtOWDjSA8IGt5b3VzZWlyb3Vkb3VcIDsKK+majue0muaEj+itmCA8IGthaWt5dXVpc2hpa2lcIDsKK+WNmuWjq+irluaWhyA8IGhha3VzaGlyb25idW5cIDsKK+S6uuagvOW9ouaIkCA8IGppbmtha3VrZWlzZWlcIDsKK+e1ueezuOe0oee4viA8IGtlbnNoaWJvdXNla2lcIDsKK+iBt+WgtOmXmOS6iSA8IHNob2t1YmF0b3Vzb3VcIDsKK+mdmeiEiOihgCA8IGpvdW15YWt1a2V0c3VcIDsKK+aVmeiCsuWtpumDqCA8IGt5b3Vpa3VnYWt1YnVcIDsKK+WkiemAn+ijhee9riA8IGhlbnNva3Vzb3VjaGlcIDsKK+ecn+WGhuecn+ePoCA8IHNoaW4nJ2Vuc2hpbmp1XCA7Civlm73msJHntYzmuIggPCBrb2t1bWlua2VpemFpXCA7CivkuIDnrYvpgZMgPCBoaXRvc3VqaW1pY2hpXCA7CivlhoXpnaLmj4/lhpkgPCBuYWltZW5ieW91c2hhXCA7CivlqpLkvZPntYLnq68gPCBiYWl0YWlzaHV1dGFuXCA7Civlv4PnkIbnmYLms5UgPCBzaGlucmlyeW91aG91XCA7CivmgKfnmoTplqLkv4IgPCBzZWl0ZWtpa2Fua2VpXCA7CivnhKHpiq3po7Lpo58gPCBtdXNlbicnaW5zaG9rdVwgOwor5bCx5qWt546HIDwgc2h1dWd5b3VyaXRzdVwgOwor56+E55aH5paH5rOVIDwgaGFuY2h1dWJ1bnBvdVwgOwor5YaF57eS6KmxIDwgbmFpc2hvYmFuYXNoaVwgOwor6ZW35pyf5YCf5qy+IDwgY2hvdWtpc2hha2thblwgOwor5YWo5L2T6ZuG5ZCIIDwgemVudGFpc2h1dWdvdVwgOwor5Y+z5bCP5ous5bynIDwgbWlnaXNob3VrYWtrb1wgOwor5Luu5oOz5pW15Zu9IDwga2Fzb3V0ZWtpa29rdVwgOwor6LqB6ayx6LOqIDwgc291dXRzdXNoaXRzdVwgOwor5qW15qW95b6A55SfIDwgZ29rdXJha3VvdWpvdVwgOwor5Yid562J5pWZ6IKyIDwgc2hvdG91a3lvdWlrdVwgOwor6KGM5pS/5ZG95LukIDwgZ3lvdXNlaW1laXJlaVwgOwor5a++5Zyw5pS75pKDIDwgdGFpY2hpa291Z2VraVwgOwor6Ieq54S25o+P5YaZIDwgc2hpemVuYnlvdXNoYVwgOwor6YeR6J6N6LOH5pysIDwga2luJyd5dXVzaGlob25cIDsKK+eEoeiDveWKm+iAhSA8IG11bm91cnlva3VzaGFcIDsKK+WMluWtpuW3pealrSA8IGthZ2FrdWtvdWd5b3VcIDsKK+ihjOaUv+WMuueUuyA8IGd5b3VzZWlrdWtha3VcIDsKK+Wtpue/kui+nuWFuCA8IGdha3VzaHV1aml0ZW5cIDsKK+WbveS8muitsOS6i+WggiA8IGtva2thaWdpamlkb3VcIDsKK+mWqOmWpeaUv+ayuyA8IGtlaWJhdHN1c2VpamlcIDsKK+S6jOWNgeWbm+evgOawlyA8IG5panV1c2hpc2Vra2lcIDsKK+S6i+alreaLoeWFhSA8IGppZ3lvdWtha3VqdXVcIDsKK+i+suadkeW3pealrSA8IG5vdXNvbmtvdWd5b3VcIDsKK+eni+mbqOWJjee3miA8IGFraXNhbWV6ZW5zZW5cIDsKK+eEoeW9ouaWh+WMluiyoSA8IG11a2VpYnVua2F6YWlcIDsKK+WFseWQjOi+suWgtCA8IGt5b3Vkb3Vub3Vqb3VcIDsKK+Wls+aoqeaLoeW8tSA8IGpva2Vua2FrdWNob3VcIDsKK+ism+e/kuS8muWgtCA8IGtvdXNodXVrYWlqb3VcIDsKK+axmuafk+eJqeizqiA8IG9zZW5idXNzaGl0c3VcIDsKK+eKtuazgeWIpOaWrSA8IGpvdWt5b3VoYW5kYW5cIDsKK+W9k+ipsuWumOW6gSA8IHRvdWdhaWthbmNob3VcIDsKK+S7suS7i+iyv+aYkyA8IGNodXVrYWlib3Vla2lcIDsKK+WbveWGheW4guWgtCA8IGtva3VuYWlzaGlqb3VcIDsKK+S4gOaemueci+advyA8IGljaGltYWlrYW5iYW5cIDsKK+W4guWgtOiHqueUseWMliA8IHNoaWpvdWppeXV1a2FcIDsKK+e1jOWWtuWkmuinkuWMliA8IGtlaWVpdGFrYWt1a2FcIDsKK+eEoee3mumAmuS/oSA8IG11c2VudHN1dXNoaW5cIDsKK+e1jOa4iOWkp+WbvSA8IGtlaXphaXRhaWtva3VcIDsKK+S4u+aIkeS4u+e+qeiAhSA8IHNodWdhc2h1Z2lzaGFcIDsKK+aal+WPt+WMluaJi+azlSA8IGFuZ291a2FzaHVob3VcIDsKK+WPjeekvuS8mueahCA8IGhhbnNoYWthaXRla2lcIDsKK+S4gOWIqeS4gOWusyA8IGljaGlyaWljaGlnYWlcIDsKK+S6jOW+i+iDjOWPjSA8IG5pcml0c3VoYWloYW5cIDsKK+W+qeWFg+S9nOalrSA8IGZ1a3VnZW5zYWd5b3VcIDsKK+S6uumWk+eIhuW8viA8IG5pbmdlbmJha3VkYW5cIDsKK+Wto+evgOWKtOWDjSA8IGtpc2V0c3Vyb3Vkb3VcIDsKK+mZuOi7jeWkp+iHoyA8IHJpa3VndW5kYWlqaW5cIDsKK+aWreaKteaKl+inkiA8IGRhbnRlaWtvdWtha3VcIDsKK+eGseWKueeOhyA8IG5ldHN1a291cml0c3VcIDsKK+S4jeimi+i7ouiKuOiAhSA8IG1penV0ZW5nZWlzaGFcIDsKK+ebrueahOeJqSA8IG1va3V0ZWtpYnV0c3VcIDsKK+mAmuS/oeapn+mWoiA8IHRzdXVzaGlua2lrYW5cIDsKK+WPjeeZuuWKmyA8IGhhbnBhdHN1cnlva3VcIDsKK+WGmeecn+WHuOeJiCA8IHNoYXNoaW50b3BwYW5cIDsKK+akjeeJqeiqjCA8IHNob2t1YnV0c3VzaGlcIDsKK+WMluWtpueZguazlSA8IGthZ2FrdXJ5b3Vob3VcIDsKK+WKn+WIqeS4u+e+qeiAhSA8IGtvdXJpc2h1Z2lzaGFcIDsKK+e2see0gOeym+atoyA8IGtvdWtpc2h1a3VzZWlcIDsKK+eojuWItuaUuemdqSA8IHplaXNlaWthaWtha3VcIDsKK+iqv+WBnOijgeWIpCA8IGNob3V0ZWlzYWliYW5cIDsKK+eEoee9quWIpOaxuiA8IG11emFpaGFua2V0c3VcIDsKK+WkqeeJmyA8IGthbWlraXJpbXVzaGlcIDsKK+i7jeS6i+aIpueVpSA8IGd1bmppc2Vucnlha3VcIDsKK+itpuWvn+WKmyA8IGtlaXNhdHN1cnlva3VcIDsKK+iHqOW6iuippumokyA8IHJpbnNob3VzaGlrZW5cIDsKK+mYsuatouaMh+mHnSA8IGJvdXNoaXNoaXNoaW5cIDsKK+awl+ixoeims+a4rCA8IGtpc2hvdWthbnNva3VcIDsKK+iInuWPsOeUn+a0uyA8IGJ1dGFpc2Vpa2F0c3VcIDsKK+Wkp+WQjeaXheihjCA8IGRhaW15b3VyeW9rb3VcIDsKK+S9nOalreeZguazlSA8IHNhZ3lvdXJ5b3Vob3VcIDsKK+WkluWbveeCuuabvyA8IGdhaWtva3VrYXdhc2VcIDsKK+mDveeri+mrmOagoSA8IHRvcml0c3Vrb3Vrb3VcIDsKK+W9ouW8j+S4u+e+qSA8IGtlaXNoaWtpc2h1Z2lcIDsKK+WMluWtpuW3peWtpiA8IGthZ2FrdWtvdWdha3VcIDsKK+inkumBi+WLlemHjyA8IGtha3V1bmRvdXJ5b3VcIDsKK+WujOWFqOeEoeasoCA8IGthbnplbm11a2V0c3VcIDsKK+aUv+etluaxuuWumiA8IHNlaXNha3VrZXR0ZWlcIDsKK+iyqOeJqeWupCA8IGthbW90c3VzaGl0c3VcIDsKK+W+queSsOWwj+aVsCA8IGp1bmthbnNob3VzdXVcIDsKK+Wkp+mfk+awkeWbvSA8IGRhaWthbm1pbmtva3VcIDsKK+aHkOS4remPoSA8IGthaWNodXVrYWdhbWlcIDsKK+mBqeeUqOalreWLmSA8IHRla2l5b3VneW91bXVcIDsKK+aIpuS6ieaWh+WtpiA8IHNlbnNvdWJ1bmdha3VcIDsKK+S5neWkqeebtOS4iyA8IGt5dXV0ZW5jaG9ra2FcIDsKK+a3oee3keiJsiA8IHRhbnJ5b2t1c2hva3VcIDsKK+mdouW+k+iFueiDjCA8IG1lbmp1dWZ1a3VoYWlcIDsKK+eiuuS/neWkseaVlyA8IGtha3Vob3NoaXBwYWlcIDsKK+WFsemAmuiogOiqniA8IGt5b3V0c3V1Z2VuZ29cIDsKK+iHquWLlei7iuS/nemZuiA8IGppZG91c2hhaG9rZW5cIDsKK+W8t+WItuWHpuWIhiA8IGt5b3VzZWlzaG9idW5cIDsKK+aWreW0lue1tuWjgSA8IGRhbmdhaXplcHBla2lcIDsKK+eUo+alreekvuS8miA8IHNhbmd5b3VzaGFrYWlcIDsKK+WQhOeoruWtpuagoSA8IGtha3VzaHVnYWtrb3VcIDsKK+WIhuino+WGmeecnyA8IGJ1bmthaXNoYXNoaW5cIDsKK+WNsOWIt+WqkuS9kyA8IGluc2F0c3ViYWl0YWlcIDsKK+eglOeptuaJgOWgsSA8IGtlbmt5dXVzaG9ob3VcIDsKK+S5seWwhOS5seaSgyA8IHJhbnNoYXJhbmdla2lcIDsKK+eJueioseS+teWusyA8IHRva2t5b3NoaW5nYWlcIDsKK+Wumumhjeiyr+mHkSA8IHRlaWdha3VjaG9raW5cIDsKK+WFrOihhuS8neWLlSA8IGtvdXNodXVkZW5kb3VcIDsKK+Wkqeeruum8oCA8IHRlbmppa3VuZXp1bWlcIDsKK+mJhOmBk+mmrOi7iiA8IHRldHN1ZG91YmFzaGFcIDsKK+WGheWbveeCuuabvyA8IG5haWtva3VrYXdhc2VcIDsKK+eorueoruanmOanmCA8IHNodWp1c2FtYXphbWFcIDsKK+WWnOiJsua6gOmdoiA8IGtpc2hva3VtYW5tZW5cIDsKK+W8geWIpee0oOaApyA8IGJlbmJldHN1c29zZWlcIDsKK+S9nOaIpuWRveS7pCA8IHNha3VzZW5tZWlyZWlcIDsKK+itsOmVt+iBt+aoqSA8IGdpY2hvdXNob2trZW5cIDsKK+e1seeOh+WKmyA8IHRvdXJpdHN1cnlva3VcIDsKK+Wun+mMsueJqSA8IGppdHN1cm9rdW1vbm9cIDsKK+WVk+iSmeaAnea9riA8IGtlaW1vdXNoaWNob3VcIDsKK+WFrOWovOWFqOW7gyA8IGtvdXNob3V6ZW5wYWlcIDsKK+WvvumdouS6pOmAmiA8IHRhaW1lbmtvdXRzdXVcIDsKK+iHquW3semhleekuuassiA8IGppa29rZW5qaXlva3VcIDsKK+WvhuWFpeWbvSA8IG1pdHN1bnl1dWdva3VcIDsKK+S4gOWVj+S4gOetlCA8IGljaGltb24nJ2l0dG91XCA7Civnm7TovLjlh7ogPCBjaG9rdXl1c2h1dHN1XCA7CivnhKHphY3lvZPkv53pmbogPCBtdWhhaXRvdWhva2VuXCA7Civpm7vlrZDlr4bluqYgPCBkZW5zaGltaXRzdWRvXCA7CivotoXkvY7kvqHmoLwgPCBjaG91dGVpa2FrYWt1XCA7CivkuIDmi6zlo7LosrcgPCBpa2thdHN1YmFpYmFpXCA7Civmg5rmsJfoqbEgPCBub3Jva2ViYW5hc2hpXCA7CivliLbntITmnaHku7YgPCBzZWl5YWt1am91a2VuXCA7CivkvJHmiKbkvJroq4cgPCBreXV1c2Vua2FpZGFuXCA7CivkvJHppIrlrqQgPCBreXV1eW91c2hpdHN1XCA7CivniYjmqKnkvrXlrrMgPCBoYW5rZW5zaGluZ2FpXCA7CivpmbPliJfnqpMgPCBjaGlucmV0c3VtYWRvXCA7Civnmb7liIbnjocgPCBoeWFrdWJ1bnJpdHN1XCA7CivpmpTpm6Lnl4Xmo58gPCBrYWt1cmlieW91dG91XCA7CivnlJ/prq7mlpnlk4EgPCBzZWlzZW5yeW91aGluXCA7Civlh7rooYDnl4cgPCBzaHVra2V0c3VzaG91XCA7CivkuIrmmIflgr7lkJEgPCBqb3VzaG91a2Vpa291XCA7CivkuI3ms5XlhaXlm70gPCBmdWhvdW55dXVnb2t1XCA7CivmlZnppIrlrabpg6ggPCBreW91eW91Z2FrdWJ1XCA7Civpq5jkv6HpoLzmgKcgPCBrb3VzaGlucmFpc2VpXCA7CivmnpzmqLnmoL3ln7nogIUgPCBrYWp1c2FpYmFpc2hhXCA7CivlrrblroXmjZzntKIgPCBrYXRha3Vzb3VzYWt1XCA7CivoqIjnlLvntYzmuIggPCBrZWlrYWt1a2VpemFpXCA7CivkuInou7joqabpqJMgPCBzYW5qaWt1c2hpa2VuXCA7CivmnIDntYLmrrXpmo4gPCBzYWlzaHV1ZGFua2FpXCA7Civlj47lhaXljbDntJkgPCBzaHV1bnl1dWluc2hpXCA7CivljYrnhp/nt7Tlt6UgPCBoYW5qdWt1cmVua291XCA7CivlhpnnnJ/liKTlrpogPCBzaGFzaGluaGFudGVpXCA7CivntYzmuIjoprPlv7UgPCBrZWl6YWlrYW4nJ25lblwgOwor6LOD6YeR5rC05rqWIDwgY2hpbmdpbnN1aWp1blwgOwor5Za25qWt5Y+O5pSvIDwgZWlneW91c2h1dXNoaVwgOwor5LiJ55u45Lqk5rWBIDwgc2Fuc291a291cnl1dVwgOwor57WM5Za25oim55WlIDwga2VpZWlzZW5yeWFrdVwgOwor5pil5aSP56eL5YasIDwgc2h1bmthc2h1dXRvdVwgOwor54Sm54K55rex5bqmIDwgc2hvdXRlbnNoaW5kb1wgOwor5LiA5pmC5omA5b6XIDwgaWNoaWppc2hvdG9rdVwgOwor5p2J6Iqx57KJ55eHIDwgc3VnaWthZnVuc2hvdVwgOwor5Lq65rCR5oqV56WoIDwgamlubWludG91aHlvdVwgOwor5a+G6Ly45Ye6IDwgbWl0c3V5dXNodXRzdVwgOwor5ZCI5b6T6YCj6KGhIDwgZ2Fzc2hvdXJlbmtvdVwgOwor54OP6YeO6LGM6LGGIDwga2FyYXN1bm9lbmRvdVwgOwor54Sh6Iq45aSn6aOfIDwgbXVnZWl0YWlzaG9rdVwgOwor5Zu96Zqb6YCj5ZCIIDwga29rdXNhaXJlbmdvdVwgOwor5Yik5Yil5byPIDwgaGFuYmV0c3VzaGlraVwgOwor54ax5Lqk5o+b5ZmoIDwgbmV0c3Vrb3VrYW5raVwgOwor5a6H5a6Z6ZaL55m6IDwgdWNodXVrYWloYXRzdVwgOwor5ryi5paH6KiT6KqtIDwga2FuYnVua3VuZG9rdVwgOwor56m66ZaT5oSf6KaaIDwga3V1a2Fua2Fua2FrdVwgOwor5LqM5Lq65LiJ6ISaIDwgbmluaW5zYW5reWFrdVwgOwor5qip5Yqb5Li7576pIDwga2Vucnlva3VzaHVnaVwgOwor5qSN54mp55WMIDwgc2hva3VidXRzdWthaVwgOwor5Yuf6ZuG5bqD5ZGKIDwgYm9zaHV1a291a29rdVwgOwor5a2m57+S55CG6KuWIDwgZ2FrdXNodXVyaXJvblwgOwor6aeQ6LuK56aB5q2iIDwgY2h1dXNoYWtpbnNoaVwgOwor5YWx5ZCM5a6j6KiAIDwga3lvdWRvdXNlbmdlblwgOwor6KOB5Yik5a6Y5b+M6YG/IDwgc2FpYmFua2Fua2loaVwgOwor5aSp5Zyw56We5piOIDwgdGVuY2hpc2hpbm1laVwgOwor5aSi5bm7IDwgeXVtZW1hYm9yb3NoaVwgOwor6Kmz57Sw5oOF5aCxIDwgc2hvdXNhaWpvdWhvdVwgOwor54mb6aOy6aas6aOfIDwgZ3l1dWluYmFzaG9rdVwgOwor6Z2e5q2m6KOF5Zyw5bivIDwgaGlidXNvdWNoaXRhaVwgOwor6YeR5Z+O6YmE5aOBIDwga2luam91dGVwcGVraVwgOwor6ZuG5Lit6Kyb576pIDwgc2h1dWNodXVrb3VnaVwgOwor5aSJ5b2i6Jmr6aGeIDwgaGVua2VpY2h1dXJ1aVwgOwor5YWs55qE5bm06YeRIDwga291dGVraW5lbmtpblwgOwor6YCx5YiK6ZuR6KqMIDwgc2h1dWthbnphc3NoaVwgOwor57Sh57i+5bel5aC0IDwgYm91c2VraWtvdWpvdVwgOwor5Yid562J5pWw5a2mIDwgc2hvdG91c3V1Z2FrdVwgOwor5q6L5a2Y5pel5pWwIDwgemFuc29uJyduaXNzdXVcIDsKK+epuuawl+a4hea1hOapnyA8IGt1dWtpc2Vpam91a2lcIDsKK+Wbvemam+WxlemWiyA8IGtva3VzYWl0ZW5rYWlcIDsKK+W5tOWKn+W6j+WIlyA8IG5lbmtvdWpvcmV0c3VcIDsKK+eGseWKm+WtpiA8IG5ldHN1cmlraWdha3VcIDsKK+WVhualremDveW4giA8IHNob3VneW91dG9zaGlcIDsKK+S4remAlOmAgOWtpiA8IGNodXV0b3RhaWdha3VcIDsKK+WFseWQjOS8muimiyA8IGt5b3Vkb3VrYWlrZW5cIDsKK+aGsuazleWtpuiAhSA8IGtlbnBvdWdha3VzaGFcIDsKK+S4gOS6i+S4jeWGjeitsCA8IGljaGlqaWZ1c2FpZ2lcIDsKK+WJteW7uuiomOW/teaXpSA8IHNvdWtlbmtpbmVuYmlcIDsKK+aZrumBjeWmpeW9k+aApyA8IGZ1aGVuZGF0b3VzZWlcIDsKK+WOn+WtkOeIhuW8viA8IGdlbnNoaWJha3VkYW5cIDsKK+WOn+WtkOegtOWjiuapnyA8IGdlbnNoaWhha2Fpa2lcIDsKK+eZu+WxsemJhOmBkyA8IHRvemFudGV0c3Vkb3VcIDsKK+aWsOato+aciCA8IHNoaW5zaG91Z2F0c3VcIDsKK+eJqeeQhuWMluWtpiA8IGJ1dHN1cmlrYWdha3VcIDsKK+e1puawtOWItumZkCA8IGt5dXVzdWlzZWlnZW5cIDsKK+acnemuruaIpuS6iSA8IGNob3VzZW5zZW5zb3VcIDsKK+WrjOawl+eUn+eJqSA8IGtlbmtpc2VpYnV0c3VcIDsKK+mBuOaKnueKtuaFiyA8IHNlbnRha3Vqb3V0YWlcIDsKK+S4u+mjn+eJqSA8IHNodXNob2t1YnV0c3VcIDsKK+mrmOWzsOWFq+W6pyA8IGtvdWhvdWhhY2hpemFcIDsKK+S4jea2iOWMlueJqSA8IGZ1c2hvdWthYnV0c3VcIDsKK+azleeahOaWh+abuCA8IGhvdXRla2lidW5zaG9cIDsKK+enmOWvhumBuOaMmSA8IGhpbWl0c3VzZW5reW9cIDsKK+mZs+WIl+ajmiA8IGNoaW5yZXRzdWRhbmFcIDsKK+aWsOeGseW4r+WMuiA8IHNoaW4nJ25ldHRhaWt1XCA7CivntZDlqZrmjIfovKogPCBrZWtrb24nJ3l1Yml3YVwgOwor5ZaE6Zqj5Y+L5aW9IDwgemVucmluJyd5dXVrb3VcIDsKK+WPl+WPluaJi+W9oiA8IHVrZXRvcml0ZWdhdGFcIDsKK+axuueul+WgseWRiiA8IGtlc3NhbmhvdWtva3VcIDsKK+W/g+eQhuWtpuiAhSA8IHNoaW5yaWdha3VzaGFcIDsKK+mbkeWPjuWFpSA8IHphdHN1c2h1dW55dXVcIDsKK+irlueQhuW9ouW8jyA8IHJvbnJpa2Vpc2hpa2lcIDsKK+S9jumgreW5s+i6qyA8IHRlaXRvdWhlaXNoaW5cIDsKK+a3t+WQiOi+sualrSA8IGtvbmdvdW5vdWd5b3VcIDsKK+aWh+iKuOS9nOWTgSA8IGJ1bmdlaXNha3VoaW5cIDsKK+aciemWkemajue0miA8IHl1dWthbmthaWt5dXVcIDsKK+WPi+Wlveadoee0hCA8IHl1dWtvdWpvdXlha3VcIDsKK+WJh+WkqeWOu+engSA8IHNva3V0ZW5reW9zaGlcIDsKK+WGmeWun+S4u+e+qSA8IHNoYWppdHN1c2h1Z2lcIDsKK+Wbvemam+W4guWgtCA8IGtva3VzYWlzaGlqb3VcIDsKK+S6jOmHjeeUn+a0uyA8IG5panV1c2Vpa2F0c3VcIDsKK+iHqOapn+ebruaomSA8IHJpbmtpbW9rdWh5b3VcIDsKK+WVhualreeZu+iomCA8IHNob3VneW91dG91a2lcIDsKK+m7hOiJsuS6uueoriA8IG91c2hva3VqaW5zaHVcIDsKK+WRqOazouWkieiqvyA8IHNodXVoYWhlbmNob3VcIDsKK+asoOmZpeWVhuWTgSA8IGtla2thbnNob3VoaW5cIDsKK+W+k+WxnuWkieaVsCA8IGp1dXpva3VoZW5zdXVcIDsKK+aXoue0hOihqOePviA8IGtpeWFrdWh5b3VnZW5cIDsKK+ipseWNiuWIhiA8IGhhbmFzaGloYW5idW5cIDsKK+S4jeiJr+WwkeW5tCA8IGZ1cnlvdXNob3VuZW5cIDsKK+a4rOmHj+aKgOW4qyA8IHNva3VyeW91Z2lzaGlcIDsKK+ajrue+heS4h+ixoSA8IHNoaW5yYWJhbnNob3VcIDsKK+eUo+alreani+mAoCA8IHNhbmd5b3Vrb3V6b3VcIDsKK+asp+W3nuiruOWbvSA8IG91c2h1dXNob2tva3VcIDsKK+mAmuWLpOWcsOeNhCA8IHRzdXVraW5qaWdva3VcIDsKK+aYvOmWk+S6uuWPoyA8IGNodXVrYW5qaW5rb3VcIDsKK+WKm+S4jei2syA8IGNoaWthcmFidXNva3VcIDsKK+aAp+agvOWIpOaWrSA8IHNlaWtha3VoYW5kYW5cIDsKK+S/oemgvOmWouS/giA8IHNoaW5yYWlrYW5rZWlcIDsKK+WwseWtpueOhyA8IHNodXVnYWt1cml0c3VcIDsKK+WQjOacn+mAmuS/oSA8IGRvdWtpdHN1dXNoaW5cIDsKK+S4iemHjeeEpueCuSA8IHNhbmp1dXNob3V0ZW5cIDsKK+aKleelqOe3j+aVsCA8IHRvdWh5b3Vzb3VzdXVcIDsKK+Wkp+W5heWIt+aWsCA8IG9vaGFiYXNhc3NoaW5cIDsKK+awtOS4iueUuiA8IG1pbmFrYW1pbWFjaGlcIDsKK+e1kOWpmuiomOW/teaXpSA8IGtla2tvbmtpbmVuYmlcIDsKK+Wkp+mbqOazqOaEj+WgsSA8IG9vYW1lY2h1dWlob3VcIDsKK+WIh+aWreaCo+iAhSA8IHNldHN1ZGFua2FuamFcIDsKK+iiluaJi+WCjeimsyA8IHNodXVzaHVib3VrYW5cIDsKK+aLjeaJi+WWnemHhyA8IGhha3VzaHVrYXNzYWlcIDsKK+S9nOalreS7ruiqrCA8IHNhZ3lvdWthc2V0c3VcIDsKK+e1jOa4iOaIkOmVtyA8IGtlaXphaXNlaWNob3VcIDsKK+exs+adsemDqOaZgumWkyA8IGJlaXRvdWJ1amlrYW5cIDsKK+WQiOaIkOWuneefsyA8IGdvdXNlaWhvdXNla2lcIDsKK+e1kOe3oOe1hOe5lCA8IGtldHRlaXNvc2hpa2lcIDsKK+imquWIh+W/gyA8IHNoaW5zZXRzdXNoaW5cIDsKK+WGhumMkOabsue3miA8IGVuc3Vpa3lva3VzZW5cIDsKK+iBluS9k+aLnemgmCA8IHNlaXRhaWhhaXJ5b3VcIDsKK+W6tuawkemHkeiejSA8IHNob21pbmtpbicneXV1XCA7CivkvZPnqY3mirXmipcgPCB0YWlzZWtpdGVpa291XCA7CivljZTlkIzntYTlkIggPCBreW91ZG91a3VtaWFpXCA7CivlhYjkvY/msJHml48gPCBzZW5qdXVtaW56b2t1XCA7CivntbHkuIDmiKbnt5ogPCB0b3VpdHN1c2Vuc2VuXCA7CivlkIzmmYLpgJroqLMgPCBkb3VqaXRzdXV5YWt1XCA7Civlkajnn6XlvrnlupUgPCBzaHV1Y2hpdGV0dGVpXCA7CivoibHpm6Povpvoi6YgPCBrYW4nJ25hbnNoaW5rdVwgOwor5pS/5YWa5YaF6ZajIDwgc2VpdG91bmFpa2FrdVwgOwor5Yi25L2c5a6kIDwgc2Vpc2FrdXNoaXRzdVwgOwor5Y2z54mp55qEIDwgc29rdWJ1dHN1dGVraVwgOwor54++5Zyw5aCx5ZGKIDwgZ2VuY2hpaG91a29rdVwgOwor5oe46LOe5ZWP6aGMIDwga2Vuc2hvdW1vbmRhaVwgOwor5Yqj5oCn6YG65Lyd5a2QIDwgcmVzc2VpaWRlbnNoaVwgOwor5rGy5Y+W5Y+jIDwga3VtaXRvcmlndWNoaVwgOwor5YKt6Ii55aWR57SEIDwgeW91c2Vua2VpeWFrdVwgOwor5LuK5LiK5aSp55qHIDwga2luam91dGVuJydub3VcIDsKK+S7luimmueXh+eKtiA8IHRha2FrdXNob3Vqb3VcIDsKK+asoOmjn+WFkOerpSA8IGtlc3Nob2t1amlkb3VcIDsKK+Wor+alveeVque1hCA8IGdvcmFrdWJhbmd1bWlcIDsKK+eyvuelnuWMu+WtpiA8IHNlaXNoaW4nJ2lnYWt1XCA7CivlhoXlrrnoqLzmmI4gPCBuYWl5b3VzaG91bWVpXCA7Civlh7rmuK/lgZzmraIgPCBzaHVra291dGVpc2hpXCA7CivlpKvlqabntITmnZ8gPCBmdXVmdXlha3Vzb2t1XCA7Civml4XooYzmpa3ogIUgPCByeW9rb3VneW91c2hhXCA7Civkvb/lvpLkv6HntYwgPCBzaGl0b3NoaW5reW91XCA7CivlpJbos4flsI7lhaUgPCBnYWlzaGlkb3VueXV1XCA7CivnhKHkvqHlgKTos4fnlKMgPCBtdWthY2hpc2hpc2FuXCA7CivlgaXlurfkv53pmbrljLsgPCBrZW5rb3Vob2tlbicnaVwgOwor5bi45Lu75aeU5ZOh5LyaIDwgam91bmluJydpaW5rYWlcIDsKK+aIkOS6uuaVmeiCsiA8IHNlaWppbmt5b3Vpa3VcIDsKK+WFrOW8j+S4u+e+qSA8IGtvdXNoaWtpc2h1Z2lcIDsKK+ikh+aVsOalreWLmSA8IGZ1a3VzdXVneW91bXVcIDsKK+emgeassuS4u+e+qSA8IGtpbicneW9rdXNodWdpXCA7CivnqbropbLorabloLEgPCBrdXVzaHV1a2VpaG91XCA7CivnlKPmpa3lho3nlJ8gPCBzYW5neW91c2Fpc2VpXCA7Civos4PosrjkvqHmoLwgPCBjaGludGFpa2FrYWt1XCA7CivmiKbpl5jliY3lk6ggPCBzZW50b3V6ZW5zaG91XCA7CivkuIDoqIDkuIDooYwgPCBpY2hpZ2VuJydpa2tvdVwgOwor6LuWIDwgdHN1bXVnaWt1cnVtYVwgOwor5ZC55aWP5qW95ZujIDwgc3Vpc291Z2FrdWRhblwgOwor55u057ea6Led6ZuiIDwgY2hva3VzZW5reW9yaVwgOwor6L+R6Kaq57WQ5amaIDwga2luc2hpbmtla2tvblwgOwor57Gz6Iux5LuP6JitIDwgYmVpZWlidXRzdXJhblwgOwor6Ieq55Sx5Li7576p6ICFIDwgaml5dXVzaHVnaXNoYVwgOwor55+t5rOi5Y+X5L+h5qmfIDwgdGFucGFqdXNoaW5raVwgOwor5YWx5ZCM5L2c5qWtIDwga3lvdWRvdXNhZ3lvdVwgOwor5rib5Y+N5pS/562WIDwgZ2VudGFuc2Vpc2FrdVwgOwor5b+D55CG5L2c5oimIDwgc2hpbnJpc2FrdXNlblwgOwor57eP6aCY5aiYIDwgc291cnlvdW11c3VtZVwgOwor5LiD56aP56WeIDwgc2hpY2hpZnVrdWppblwgOwor5b+D6IeT56e75qSNIDwgc2hpbnpvdWlzaG9rdVwgOwor5pyJ6ZmQ6LKs5Lu7IDwgeXV1Z2Vuc2VraW5pblwgOwor57WE57mU5YaN57eoIDwgc29zaGlraXNhaWhlblwgOwor56aP6Z+z5pWZ5LyaIDwgZnVrdWlua3lvdWthaVwgOwor6Zai5L+C5Ymv6KmeIDwga2Fua2VpZnVrdXNoaVwgOwor5Y+y5paZ57eo57qCIDwgc2hpcnlvdWhlbnNhblwgOwor54m55Yil5bitIDwgdG9rdWJldHN1c2VraVwgOwor54yf5a6Y6YGL5YuVIDwgcnlvdWthbicndW5kb3VcIDsKK+iCieS9k+WKtOWDjSA8IG5pa3V0YWlyb3Vkb3VcIDsKK+egtOWjiuS4u+e+qeiAhSA8IGhha2Fpc2h1Z2lzaGFcIDsKK+WPgueFp+aWh+eMriA8IHNhbnNob3VidW5rZW5cIDsKK+mfs+alveebo+edoyA8IG9uZ2FrdWthbnRva3VcIDsKK+W5s+i6q+S9jumgrSA8IGhlaXNoaW50ZWl0b3VcIDsKK+WFseeUo+WIhuWtkCA8IGt5b3VzYW5idW5zaGlcIDsKK+S6iOe0hOWHuueJiCA8IHlveWFrdXNodXBwYW5cIDsKK+eCreawtOWMlueJqSA8IHRhbnN1aWthYnV0c3VcIDsKK+W+oemDveWQiOS4u+e+qSA8IGdvdHN1Z291c2h1Z2lcIDsKK+WkmuihgOizqiA8IHRha2V0c3VzaGl0c3VcIDsKK+i/keS7o+aWh+WtpiA8IGtpbmRhaWJ1bmdha3VcIDsKK+S6jOWNgeaXpeWkp+aguSA8IGhhdHN1a2FkYWlrb25cIDsKK+WcsOaWueWumOW6gSA8IGNoaWhvdWthbmNob3VcIDsKK+Wbm+WIhuS6lOijgiA8IHNoaWJ1bmdvcmV0c3VcIDsKK+e1jOa4iOWbnuW+qSA8IGtlaXphaWthaWZ1a3VcIDsKK+Wun+WtmOS4u+e+qSA8IGppdHN1em9uc2h1Z2lcIDsKK+aBkua4qeWLleeJqSA8IGtvdW9uZG91YnV0c3VcIDsKK+mHjuiPnOS4gOeavyA8IHlhc2FpaGl0b3NhcmFcIDsKK+W9ouW8j+irlueQhiA8IGtlaXNoaWtpcm9ucmlcIDsKK+Wkp+Wtpua1quS6uiA8IGRhaWdha3Vyb3VuaW5cIDsKK+aaq+WumuWNlOWumiA8IHphbnRlaWt5b3V0ZWlcIDsKK+iQveS4i+WCmOmDqOmaiiA8IHJha2thc2FuYnV0YWlcIDsKK+aUvumAgeWkp+WtpiA8IGhvdXNvdWRhaWdha3VcIDsKK+azleW+i+WItuW6piA8IGhvdXJpdHN1c2VpZG9cIDsKK+mVt+i3nembouS+neWtmCA8IGNob3VreW9yaWl6b25cIDsKK+S/oeeUqOmHkeW6qyA8IHNoaW4nJ3lvdWtpbmtvXCA7CivmnInlkI3nhKHlrp8gPCB5dXVtZWltdWppdHN1XCA7CivntYLouqvkvJrlk6EgPCBzaHV1c2hpbmthaWluXCA7CivnrJHmraLljYPkuIcgPCBzaG91c2hpc2VuYmFuXCA7CivmloflrabljZrlo6sgPCBidW5nYWt1aGFrYXNlXCA7Civluq3lhYjnm7jloLQgPCBuaXdhc2FraXNvdWJhXCA7CivmtojosrvogIXlgbQgPCBzaG91aGlzaGFnYXdhXCA7Civnsr7npZ7mp4vpgKAgPCBzZWlzaGlua291em91XCA7CivpiYTpqqjlt6XkuosgPCB0ZWtrb3RzdWtvdWppXCA7Civlm73liKnmsJHnpo8gPCBrb2t1cmltaW5wdWt1XCA7Civou73kvbvmta7oloQgPCBrZWljaG91ZnVoYWt1XCA7CivmspbnqY3lubPph44gPCBjaHV1c2VraWhlaXlhXCA7CivpharovrLoo73lk4EgPCByYWt1bm91c2VpaGluXCA7CivorJ3nvarluoPlkYogPCBzaGF6YWlrb3Vrb2t1XCA7Civlr4zlm73lvLflhbUgPCBmdWtva3VreW91aGVpXCA7CivlpJbpg63lm6PkvZMgPCBnYWlrYWt1ZGFudGFpXCA7CivlhbHlkIzkvIHmpa0gPCBreW91ZG91a2lneW91XCA7Civpmo7ntJrnpL7kvJogPCBrYWlreXV1c2hha2FpXCA7Civlr77lpJbmlL/nrZYgPCB0YWlnYWlzZWlzYWt1XCA7Civnsr7pnIrkv6Hku7AgPCBzZWlyZWlzaGlua291XCA7CivvvKfvvKLnkIboq5YgPCBqaVwgzIRiaVwgzIRyaXJvblwgOwor5pil6aKo6aeY6JWpIDwgc2h1bnB1dXRhaXRvdVwgOwor5q275YiR5Z+36KGMIDwgc2hpa2Vpc2hpa2tvdVwgOwor5LqM6ICF5oqe5LiAIDwgbmlzaGF0YWt1aXRzdVwgOwor6YW45oCn5Y+N5b+cIDwgc2Fuc2VpaGFuJydub3VcIDsKK+aguOeIhueZuiA8IGtha3ViYWt1aGF0c3VcIDsKK+awtOmBk+aWmemHkSA8IHN1aWRvdXJ5b3VraW5cIDsKK+epuuawl+WKm+WtpiA8IGt1dWtpcmlraWdha3VcIDsKK+WVhuWjsuawl+izqiA8IHNob3ViYWlrYXRhZ2lcIDsKK+iomOmMsuaWh+WtpiA8IGtpcm9rdWJ1bmdha3VcIDsKK+espuWPt+WkieaPm+WZqCA8IGZ1Z291aGVua2Fua2lcIDsKK+W9vOaWueatpOaWuSA8IGFjaGlyYWtvY2hpcmFcIDsKK+eri+i6q+WHuuS4liA8IHJpc3NoaW5zaHVzc2VcIDsKK+ato+mHkemKgOihjCA8IHNob3VraW5naW5rb3VcIDsKK+WFsea4iOS6i+alrSA8IGt5b3VzYWlqaWd5b3VcIDsKK+WFiOihjOaKgOihkyA8IHNlbmtvdWdpanV0c3VcIDsKK+Wbs+abuOebrumMsiA8IHRvc2hvbW9rdXJva3VcIDsKK+iovOaLoOmaoOa7hSA8IHNob3Vrb2lubWV0c3VcIDsKK+mAgemHkeWwj+WIh+aJiyA8IHNvdWtpbmtvZ2l0dGVcIDsKK+ertuS6iemWouS/giA8IGt5b3Vzb3VrYW5rZWlcIDsKK+W+l+elqOeOhyA8IHRva3VoeW91cml0c3VcIDsKK+ihqOW9sOW8jyA8IGh5b3VzaG91c2hpa2lcIDsKK+WFpeWtpuW8jyA8IG55dXVnYWt1c2hpa2lcIDsKK+S6i+WJjeaknOmWsiA8IGppemVua2VuJydldHN1XCA7CivooYzmlL/lh6bliIYgPCBneW91c2Vpc2hvYnVuXCA7CivlhajpnaLluoPlkYogPCB6ZW5tZW5rb3Vrb2t1XCA7Civns44gPCBzZW5jaGltZWl0b3J1XCA7Civlm73li5nplbflrpggPCBrb2t1bXVjaG91a2FuXCA7CivnsqggPCBoZWt1dG9tZWV0b3J1XCA7Civnsr7npZ7nl4XpmaIgPCBzZWlzaGluYnlvdWluXCA7Civlm5vljYHkuZ3ml6UgPCBzaGlqdXVrdW5pY2hpXCA7CivmnZPlrZDlrpropo8gPCBzaGFrdXNoaWpvdWdpXCA7Civlj6/loZHnianos6ogPCBrYXNvYnVzc2hpdHN1XCA7CivngbDnmb3os6ogPCBrYWloYWt1c2hpdHN1XCA7CivljYrovrLljYrmvIEgPCBoYW4nJ25vdWhhbmd5b1wgOwor6aOf55So5rK5IDwgc2hva3V5b3VhYnVyYVwgOwor6IG35qWt55qEIDwgc2hva3VneW91dGVraVwgOwor6aOf55Sf5rS7IDwgc2hva3VzZWlrYXRzdVwgOwor5pq06aOy5pq06aOfIDwgYm91aW5ib3VzaG9rdVwgOwor56CU56m25YiG6YeOIDwga2Vua3l1dWJ1bicneWFcIDsKK+S6uuWPo+WvhuW6piA8IGppbmtvdW1pdHN1ZG9cIDsKK+S6uui6q+WjsuiytyA8IGppbnNoaW5iYWliYWlcIDsKK+auuuS6uuacqumBgiA8IHNhdHN1amlubWlzdWlcIDsKK+S4uOS4gOaciCA8IG1hcnVoaXRvdHN1a2lcIDsKK+i2s+WIqeaZguS7oyA8IGFzaGlrYWdhamlkYWlcIDsKK+W8vuedgOi3nemboiA8IGRhbmNoYWt1a3lvcmlcIDsKK+iBt+alreeXhSA8IHNob2t1Z3lvdWJ5b3VcIDsKK+WLleeJqeaknOafuyA8IGRvdWJ1dHN1a2Vuc2FcIDsKK+iWrOmkjOeZguazlSA8IHlha3VqaXJ5b3Vob3VcIDsKK+S6uumWk+WbveWunSA8IG5pbmdlbmtva3Vob3VcIDsKK+S4uOS4gOaXpSA8IG1hcnVpY2hpbmljaGlcIDsKK+e3iuimgeWcsOW9oiA8IGtpbicneW91Y2hpa2VpXCA7CivluILloLTmiJDplbcgPCBzaGlqb3VzZWljaG91XCA7CivmjIflkI3mipXnpaggPCBzaGltZWl0b3VoeW91XCA7CivlkYnotorlkIzoiJ8gPCBnb2V0c3Vkb3VzaHV1XCA7CivlroXlnLDpgKDmiJAgPCB0YWt1Y2hpem91c2VpXCA7Civnsr7npZ7lirTlg40gPCBzZWlzaGlucm91ZG91XCA7Civlrrbml4/oqIjnlLsgPCBrYXpva3VrZWlrYWt1XCA7Civplovlj6PkuIDnlaogPCBrYWlrb3VpY2hpYmFuXCA7Civnm7Tns7vljZHlsZ4gPCBjaG9ra2VpaGl6b2t1XCA7CivlibLos6bmlrnlvI8gPCBrYXBwdWhvdXNoaWtpXCA7Civmr5LnianlraYgPCBkb2t1YnV0c3VnYWt1XCA7Civli6TlirTlpKfooYYgPCBraW5yb3V0YWlzaHV1XCA7CivmnKrlj47lhaXph5EgPCBtaXNodXVueXV1a2luXCA7Civpoqjkv5fllrbmpa0gPCBmdXV6b2t1ZWlneW91XCA7CivmsJHkv5fpn7Pmpb0gPCBtaW56b2t1b25nYWt1XCA7CivmtbfmsLTmtbTloLQgPCBrYWlzdWl5b2t1am91XCA7CivpgKPlkIjkvZzmiKYgPCByZW5nb3VzYWt1c2VuXCA7CivkuKHok4vmmYLoqIggPCByeW91YnV0YWRva2VpXCA7CivkuLvlrqLou6LlgJIgPCBzaHVrYWt1dGVudG91XCA7CivlsLHogbflhYggPCBzaHV1c2hva3VzYWtpXCA7CivmkI3nm4rli5jlrpogPCBzb24nJ2VraWthbmpvdVwgOwor5YuV5Yqb6ZmN5LiLIDwgZG91cnlva3Vrb3VrYVwgOwor5LiJ6KeS6ZeY5LqJIDwgc2Fua2FrdXRvdXNvdVwgOwor6YCA5a2m5Yem5YiGIDwgdGFpZ2FrdXNob2J1blwgOwor5a6f6aiT5p2Q5paZIDwgamlra2VuemFpcnlvdVwgOwor5Y+j57SE5p2fIDwga3VjaGl5YWt1c29rdVwgOwor5a++5oim6LuK54Gr5ZmoIDwgdGFpc2Vuc2hha2FraVwgOwor5byX5YyW5rC057Sg6YW4IDwgZnVra2FzdWlzb3NhblwgOwor6YeN6KaB55Sj5qWtIDwganV1eW91c2FuZ3lvdVwgOwor5ray5L2T54eD5paZIDwgZWtpdGFpbmVucnlvdVwgOwor5Lyd6YGT6ZuG5LyaIDwgZGVuZG91c2h1dWthaVwgOwor5YWr6Z2i5YWt6IeCIDwgaGFjaGltZW5yb3BwaVwgOwor5a6f5Yqb6ICFIDwgaml0c3VyeW9rdXNoYVwgOwor5omN5rCX54Wl55m6IDwgc2Fpa2lrYW5wYXRzdVwgOwor5oSf5oOF6KGo54++IDwga2Fuam91aHlvdWdlblwgOwor5rmn5Ye66YePIDwgeXV1c2h1dHN1cnlvdVwgOwor5Lq656iu5beu5YilIDwgamluc2h1c2FiZXRzdVwgOwor6Iux5Zu955m66Z+zIDwgZWlrb2t1aGF0c3VvblwgOwor54Sh6ZmQ5pWw5YiXIDwgbXVnZW5zdXVyZXRzdVwgOwor54af5oWu5pat6KGMIDwganVrdXJ5b2RhbmtvdVwgOwor562S5LqV562SIDwgdHN1dHN1aWR6dXRzdVwgOwor55u05Lqk5bqn5qiZIDwgY2hva2tvdXphaHlvdVwgOwor5YyX5aSq5bmz5rSLIDwga2l0YXRhaWhlaXlvdVwgOwor55S35aOw5ZCI5ZSxIDwgZGFuc2VpZ2Fzc2hvdVwgOwor6IOD6IW455eF5a2mIDwgaWNob3VieW91Z2FrdVwgOwor5LiJ6KeS6Zai5L+CIDwgc2Fua2FrdWthbmtlaVwgOwor55u46KOc5oCn5Y6f55CGIDwgc291aG9zZWlnZW5yaVwgOwor6JK45rCX5qmf6Zai6LuKIDwgam91a2lraWthbnNoYVwgOwor5Y2Y54us5Lya6KaLIDwgdGFuZG9rdWthaWtlblwgOwor5Lya5aCC5Y+4IDwga2FpZG91ZHp1a2FzYVwgOwor6ZaT5q2H54axIDwga2Fua2V0c3VuZXRzdVwgOwor6LKh55Sj55u457aaIDwgemFpc2Fuc291em9rdVwgOwor5LiK5pm65aSn5a2mIDwgam91Y2hpZGFpZ2FrdVwgOwor5paH5YyW5LqL5qWt6YOoIDwgYnVua2FqaWd5b3VidVwgOwor54Sh6KiY5ZCN56S+5YK1IDwgbXVraW1laXNoYXNhaVwgOwor5YOn5bq155Sf5rS7IDwgc291YW5zZWlrYXRzdVwgOwor5rOV5b6L55So6KqeIDwgaG91cml0c3V5b3Vnb1wgOwor6ZuM6ZuE6YG45oqeIDwgc2hpeXV1c2VudGFrdVwgOwor55m+6Iqx57ma5LmxIDwgaHlha2thcnlvdXJhblwgOwor6Z+z5qW955mC5rOVIDwgb25nYWt1cnlvdWhvdVwgOwor5L2P5rCR55m76YyyIDwganV1bWludG91cm9rdVwgOwor5pat5bGk5YaZ55yfIDwgZGFuc291c2hhc2hpblwgOwor5Y2g6aCY5Zyw5bivIDwgc2VucnlvdWNoaXRhaVwgOwor6Jas5ZOB5Lya56S+IDwgeWFrdWhpbmdhaXNoYVwgOwor5Ye65Y+j6Kq/5p+7IDwgZGVndWNoaWNob3VzYVwgOwor5ZCI5ZCM5oWw6ZyK56WtIDwgZ291ZG91aXJlaXNhaVwgOwor6IO95YuV5YWN55arIDwgbm91ZG91bWVuJydla2lcIDsKK+WcqOeVmemCpuS6uiA8IHphaXJ5dXVob3VqaW5cIDsKK+m6puiXgee0sOW3pSA8IG11Z2l3YXJhc2Fpa3VcIDsKK+WTsuWtpueahCA8IHRldHN1Z2FrdXRla2lcIDsKK+W3peiKuOe+juihkyA8IGtvdWdlaWJpanV0c3VcIDsKK+iqreWUh+ihkyA8IGRva3VzaGluanV0c3VcIDsKK+iIquepuuaUu+aSgyA8IGtvdWt1dWtvdWdla2lcIDsKK+ijuOmbu+eQgyA8IGhhZGFrYWRlbmt5dXVcIDsKK+mHjemHj+mBuOaJiyA8IGp1dXJ5b3VzZW5zaHVcIDsKK+i1pOeri+e+veidtiA8IGFrYXRhdGVoYWNob3VcIDsKK+eBq+eBveWgseefpeapnyA8IGthc2FpaG91Y2hpa2lcIDsKK+ibi+eZveizqiA8IHRhbnBha3VzaGl0c3VcIDsKK+aEm+mzpemAsemWkyA8IGFpY2hvdXNodXVrYW5cIDsKK+W3pealreWMluWtpiA8IGtvdWd5b3VrYWdha3VcIDsKK+aKgOihk+aPkOaQuiA8IGdpanV0c3V0ZWlrZWlcIDsKK+S4reaAp+WtkOaYnyA8IGNodXVzZWlzaGlzZWlcIDsKK+aOkuazhOeJqSA8IGhhaXNldHN1YnV0c3VcIDsKK+mjn+iCieebriA8IHNob2t1bmlrdW1va3VcIDsKK+WFrOWFseS6i+alrSA8IGtvdWt5b3VqaWd5b3VcIDsKK+S4iui2iuacrOe3miA8IGpvdWV0c3Vob25zZW5cIDsKK+a0u+WLleWKmyA8IGthdHN1ZG91cnlva3VcIDsKK+eEoeWEn+Wlkee0hCA8IG11c2hvdWtlaXlha3VcIDsKK+mbu+azouaOouefpeapnyA8IGRlbnBhdGFuY2hpa2lcIDsKK+mWg+WFiembu+eQgyA8IHNlbmtvdWRlbmt5dXVcIDsKK+WbveexjeiogOiqniA8IGtva3VzZWtpZ2VuZ29cIDsKK+Wumua4qeWLleeJqSA8IHRlaW9uZG91YnV0c3VcIDsKK+epuuWJjee1tuW+jCA8IGt1dXplbnpldHN1Z29cIDsKK+S+teeVpeeahCA8IHNoaW5yeWFrdXRla2lcIDsKK+atpuWKm+WkluS6pCA8IGJ1cnlva3VnYWlrb3VcIDsKK+WHnembhuWKmyA8IGd5b3VzaHV1cnlva3VcIDsKK+aIuOexjeaKhOacrCA8IGtvc2VraXNob3Vob25cIDsKK+acnemuruWNiuWztiA8IGNob3VzZW5oYW50b3VcIDsKK+WPr+WkieaKteaKl+WZqCA8IGthaGVudGVpa291a2lcIDsKK+mdnuW4uOWPrOmbhiA8IGhpam91c2hvdXNodXVcIDsKK+WFqOiIrOWJjeWTqCA8IHplbnBhbnplbnNob3VcIDsKK+Wkp+S5l+S7j+aVmSA8IGRhaWpvdWJ1a2t5b3VcIDsKK+WIhuaekOippumokyA8IGJ1bnNla2lzaGlrZW5cIDsKK+WFrOWLmeWToeippumokyA8IGtvdW11aW5zaGlrZW5cIDsKK+W5vemciuWxi+aVtyA8IHl1dXJlaXlhc2hpa2lcIDsKK+acieeUo+majue0miA8IHl1dXNhbmthaWt5dXVcIDsKK+aoqeWKm+aUv+ayuyA8IGtlbnJ5b2t1c2VpamlcIDsKK+iEhei/q+mbu+ipsSA8IGt5b3VoYWt1ZGVud2FcIDsKK+iIueiNt+iovOWIuCA8IGZ1bmFuaXNob3VrZW5cIDsKK+aJi+aXl+S/oeWPtyA8IHRlYmF0YXNoaW5nb3VcIDsKK+aghOmkiuWkseiqvyA8IGVpeW91c2hpdGNob3VcIDsKK+S9nOazgeaMh+aVsCA8IHNha2t5b3VzaGlzdXVcIDsKK+ebuOS6kumAmuS/oSA8IHNvdWdvdHN1dXNoaW5cIDsKK+ihqOWxpOmbquW0qSA8IGh5b3Vzb3VuYWRhcmVcIDsKK+eBveWus+WvvuetliA8IHNhaWdhaXRhaXNha3VcIDsKK+S6i+Wun+iqv+afuyA8IGppaml0c3VjaG91c2FcIDsKK+aXpee1jOaWsOiBniA8IG5pa2tlaXNoaW5idW5cIDsKK+S4remWk+mBuOaMmSA8IGNodXVrYW5zZW5reW9cIDsKK+W4gumVt+mBuOaMmSA8IHNoaWNob3VzZW5reW9cIDsKK+ayiOmZjea1t+WyuCA8IGNoaW5rb3VrYWlnYW5cIDsKK+eNheWtkOmgrSA8IHNoaXNoaWdhc2hpcmFcIDsKK+Wuh+Wumemjm+ihjOWjqyA8IHVjaHV1aGlrb3VzaGlcIDsKK+ekvuS8muemj+eliSA8IHNoYWthaWZ1a3VzaGlcIDsKK+irluWKn+ihjOizniA8IHJvbmtvdWtvdXNob3VcIDsKK+Wun+i3tei6rOihjCA8IGppc3Nlbmt5dXVrb3VcIDsKK+ims+Wvn+WKmyA8IGthbnNhdHN1cnlva3VcIDsKK+ato+WJr+S6jOmAmiA8IHNlaWZ1a3VuaXRzdXVcIDsKK+S6pOaEn+elnue1jCA8IGtvdWthbnNoaW5rZWlcIDsKK+a2iOiyu+mdqeWRvSA8IHNob3VoaWtha3VtZWlcIDsKK+iEseWKm+aEnyA8IGRhdHN1cnlva3VrYW5cIDsKK+WwguS7u+ism+W4qyA8IHNlbicnbmlua291c2hpXCA7CivmlK/lh7rpoY0gPCBzaGlzaHV0c3VnYWt1XCA7CivlpKfph4/nlJ/nlKMgPCB0YWlyeW91c2Vpc2FuXCA7CivmnIDpq5jmqZ/lr4YgPCBzYWlrb3VraW1pdHN1XCA7CivnrqHlvKbmpb3ms5UgPCBrYW5nZW5nYWt1aG91XCA7CivmlrDlk4HlkIzmp5ggPCBzaGlucGluZG91eW91XCA7CivlpKfomZDmrrogPCBkYWlneWFrdXNhdHN1XCA7CivliY3muKHph5EgPCBtYWV3YXRhc2hpa2luXCA7CivnnIvorbflqablrabpmaIgPCBrYW5nb2Z1Z2FrdWluXCA7CivlgpnojZLosq/ok4QgPCBiaWtvdWNob2NoaWt1XCA7CivoloTlv5flvLHooYwgPCBoYWt1c2hpamFra291XCA7Civli6TlirTpmo7ntJogPCBraW5yb3VrYWlreXV1XCA7CivkubPnmb3oibIgPCBueXV1aGFrdXNob2t1XCA7Civml6XljbDplqLkv4IgPCBuaWNoaWlua2Fua2VpXCA7CivntYLmpa3lvI8gPCBzaHV1Z3lvdXNoaWtpXCA7CivplbfmnJ/oqIjnlLsgPCBjaG91a2lrZWlrYWt1XCA7CivniIbnmbrnmoQgPCBiYWt1aGF0c3V0ZWtpXCA7CivkuI3mmYLnnYDpmbggPCBmdWppY2hha3VyaWt1XCA7CivmjpLms4TlmajlrpggPCBoYWlzZXRzdWtpa2FuXCA7Civoi7Hmlofop6Pph4ggPCBlaWJ1bmthaXNoYWt1XCA7CivlhY3osqzmnaHpoIUgPCBtZW5zZWtpam91a291XCA7CivpiYTpgZPnt5rot68gPCB0ZXRzdWRvdXNlbnJvXCA7CivljYHlrZfou43pqI7lo6sgPCBqdXVqaWd1bmtpc2hpXCA7CivmlLvmkoPmhYvli6IgPCBrb3VnZWtpdGFpc2VpXCA7CivlrprmnJ/mmIfntaYgPCB0ZWlraXNob3VreXV1XCA7CivoqJjov7Dmlofms5UgPCBraWp1dHN1YnVucG91XCA7Civoh6PnsY3pmY3kuIsgPCBzaGluc2VraWtvdWthXCA7Civngq3phbjpo7LmlpkgPCB0YW5zYW4nJ2lucnlvdVwgOwor5biC5aC05ouh5aSnIDwgc2hpam91a2FrdWRhaVwgOwor57K+5a+G5qmf5qKwIDwgc2VpbWl0c3VraWthaVwgOwor54Sh5qmf6auY5YiG5a2QIDwgbXVraWtvdWJ1bnNoaVwgOwor5qmf5YuV6K2m5a+fIDwga2lkb3VrZWlzYXRzdVwgOwor5riF5YWD56+AIDwga2l5b21vdG9idXNoaVwgOwor5bm06ZaT5Y+O55uKIDwgbmVua2Fuc2h1dWVraVwgOwor5Luy6KOB6KOB5a6aIDwgY2h1dXNhaXNhaXRlaVwgOwor6Zu36Kaq54i2IDwga2FtaW5hcmlveWFqaVwgOwor5YG15a+f6KaB5ZOhIDwgdGVpc2F0c3V5b3VpblwgOwor56We57WM6LOqIDwgc2hpbmtlaXNoaXRzdVwgOwor5paH6Jed5pil56eLIDwgYnVuZ2Vpc2h1bmp1dVwgOwor5Lq65b2i6Iqd5bGFIDwgbmluZ3lvdXNoaWJhaVwgOwor5rC05Lit55y86Y+hIDwgc3VpY2h1dW1lZ2FuZVwgOwor5YWs5bqP6Imv5L+XIDwga291am9yeW91em9rdVwgOwor5o6l552A5YqbIDwgc2V0Y2hha3VyeW9rdVwgOwor5LqU5pyI5bmfIDwgc2F0c3VraW5vYm9yaVwgOwor5ama5YmN5Lqk5riJIDwga29uemVua291c2hvdVwgOwor5aSq6Zm96buS54K5IDwgdGFpeW91a29rdXRlblwgOwor5LiK5b6h5LiA5Lq6IDwga2FtaWdvaWNoaW5pblwgOwor5Li76KaB5bel5qWtIDwgc2h1eW91a291Z3lvdVwgOwor5LiL562J5YuV54mpIDwga2F0b3Vkb3VidXRzdVwgOwor6YCG6Ly45Ye6IDwgZ3lha3V5dXNodXRzdVwgOwor55qE5Lit546HIDwgdGVraWNodXVyaXRzdVwgOwor5bu66Kit6LK7IDwga2Vuc2V0c3VoaXlvdVwgOwor6Iel6Jaq5ZiX6IOGIDwgZ2FzaGluc2hvdXRhblwgOwor5oyH5o+u5omA5ryU57+SIDwgc2hpa2lqb2Vuc2h1dVwgOwor6Ki655mC5pSv5o+0IDwgc2hpbnJ5b3VzaGllblwgOwor6Lui5Zyw55mC6aSKIDwgdGVuY2hpcnlvdXlvdVwgOwor5LiH6IO96YG45omLIDwgYmFuJydub3VzZW5zaHVcIDsKK+aVmeS8mumfs+alvSA8IGt5b3VrYWlvbmdha3VcIDsKK+WNg+i8ieS4gOmBhyA8IHNlbnphaWljaGlndXVcIDsKK+WxiOaKmOeOhyA8IGt1c3NldHN1cml0c3VcIDsKK+Wjsuiyt+Wlkee0hCA8IGJhaWJhaWtlaXlha3VcIDsKK+S9j+WuheWcsOW4ryA8IGp1dXRha3VjaGl0YWlcIDsKK+a4m+mAn+ijhee9riA8IGdlbnNva3Vzb3VjaGlcIDsKK+S9j+WuheWVj+mhjCA8IGp1dXRha3Vtb25kYWlcIDsKK+iIuemVt+WupCA8IHNlbmNob3VzaGl0c3VcIDsKK+WFjeeWq+ihgOa4hSA8IG1lbicnZWtpa2Vzc2VpXCA7CivmoLjlj43lv5zngokgPCBrYWt1aGFuJydub3Vyb1wgOwor5Li75pWZ5a6kIDwgc2h1a3lvdXNoaXRzdVwgOwor5pS+5bCE57ea5a2mIDwgaG91c2hhc2VuZ2FrdVwgOwor5rWB6YCa57WM6LevIDwgcnl1dXRzdXVrZWlyb1wgOwor5LqM6YW45YyW56qS57SgIDwgbmlzYW5rYWNoaXNzb1wgOwor5bCL5bi45LiA5qeYIDwgamluam91aWNoaXlvdVwgOwor5Zu95pyJ6LKh55SjIDwga29rdXl1dXphaXNhblwgOwor5biC5rCR6ZqO57SaIDwgc2hpbWlua2Fpa3l1dVwgOwor6KiA6Kqe55+l6K2YIDwgZ2VuZ29jaGlzaGlraVwgOwor5YWs5YWx5pS+6YCBIDwga291a3lvdWhvdXNvdVwgOwor5a6k5YaF5qW9IDwgc2hpdHN1bmFpZ2FrdVwgOwor5paR54q257WE57mUIDwgaGFuam91c29zaGlraVwgOwor5Lq65oOF6KmxIDwgbmluam91YmFuYXNoaVwgOwor6YeN54iG5pKD5qmfIDwganV1YmFrdWdla2lraVwgOwor5ama5aSW5Lqk5riJIDwga29uZ2Fpa291c2hvdVwgOwor5Luy6KOB6KOB5YikIDwgY2h1dXNhaXNhaWJhblwgOwor5L6v54i15aSr5Lq6IDwga291c2hha3VmdWppblwgOwor5r+D57eR6ImyIDwgbm91cnlva3VzaG9rdVwgOwor5pyJ6Imy6YeO6I+cIDwgeXV1c2hva3V5YXNhaVwgOwor6ZuG5Zuj6Ki06KifIDwgc2h1dWRhbnNvc2hvdVwgOwor5LiA5qyh55Sj5qWtIDwgaWNoaWppc2FuZ3lvdVwgOwor57e057+S5LiN6LazIDwgcmVuc2h1dWJ1c29rdVwgOwor5ZWG6Ii55a2m5qChIDwgc2hvdXNlbmdha2tvdVwgOwor6bqm6JeB6Jy76JuJIDwgbXVnaXdhcmF0b25ib1wgOwor6Ieq5YuV6LuK6Zu76KmxIDwgamlkb3VzaGFkZW53YVwgOwor5pyJ6ZmQ6ZuG5ZCIIDwgeXV1Z2Vuc2h1dWdvdVwgOwor6L+95Yqg5paZ6YeRIDwgdHN1aWthcnlvdWtpblwgOworzqDkuK3plpPlrZAgPCBwYWljaHV1a2Fuc2hpXCA7CivpgaDpmpTmlZnogrIgPCBlbmtha3VreW91aWt1XCA7CivohLPohIrpq4TmtrIgPCBub3VzZWtpenVpZWtpXCA7Civmg4XloLHlj6/oppbljJYgPCBqb3Vob3VrYXNoaWthXCA7CivmnbHopb/ljZfljJcgPCB0b3V6YWluYW5ib2t1XCA7CivoqLHlrrnnt5rph48gPCBreW95b3VzZW5yeW91XCA7CivmraPmnK3lgKTmrrUgPCBzaG91ZnVkYW5lZGFuXCA7Civlv5zmjqXlrqQgPCBvdXNldHN1c2hpdHN1XCA7Civlt67liKXplqLnqI4gPCBzYWJldHN1a2FuemVpXCA7CivkuK3nrYnlrabmoKEgPCBjaHV1dG91Z2Fra291XCA7CivnrqHlvKbmpb3lm6MgPCBrYW5nZW5nYWt1ZGFuXCA7CivkvrXnlaXlm70gPCBzaGlucnlha3Vrb2t1XCA7Civlr4TnlJ/nlJ/niakgPCBraXNlaXNlaWJ1dHN1XCA7CivkuLvmqKnlm57lvqkgPCBzaHVrZW5rYWlmdWt1XCA7CivkuKHpg6jnpZ7pgZMgPCByeW91YnVzaGludG91XCA7Civkvo3msJfos6ogPCBzYW11cmFpa2F0YWdpXCA7CivnlLPovrzmm7ggPCBtb3VzaGlrb21pc2hvXCA7CivntbnluIPkuIDlt7sgPCBrZW5wdWhpdG9tYWtpXCA7CivpgY7lnKflr4bmr5QgPCBrYWF0c3VtaXRzdWhpXCA7CivmkYLmsI/vvJLvvJDluqYgPCBzZXNzaGluaWp1dWRvXCA7Civoh6rnhLbpgbjmip4gPCBzaGl6ZW5zZW50YWt1XCA7Civnm7Toqqzms5UgPCBjaG9rdXNldHN1aG91XCA7CivkuIvnlLrpoqggPCBzaGl0YW1hY2hpZnV1XCA7Civlj43lv5zpgJ/luqYgPCBoYW4nJ25vdXNva3Vkb1wgOwor5bCP5Z6L6LWk5a626JqKIDwga29nYXRhYWthaWVrYVwgOwor5YG15a+f6KGb5pifIDwgdGVpc2F0c3VlaXNlaVwgOwor6aOf5Lit5q+SIDwgc2hva3VjaHV1ZG9rdVwgOwor5q2j5Ymv6K2w6ZW3IDwgc2VpZnVrdWdpY2hvdVwgOwor55Sj5Ye66auYIDwgc2Fuc2h1dHN1ZGFrYVwgOwor56We5YmN57WQ5amaIDwgc2hpbnplbmtla2tvblwgOwor5rOV55qE5omL5q61IDwgaG91dGVraXNodWRhblwgOwor5L2c5qWt6aCY5Z+fIDwgc2FneW91cnlvdWlraVwgOwor5bm06YeR6Ki85pu4IDwgbmVua2luc2hvdXNob1wgOwor5Lqk6YCa5aao5a6zIDwga291dHN1dWJvdWdhaVwgOwor55S65p2R5ZCI5L21IDwgY2hvdXNvbmdhcHBlaVwgOwor5pWZ5Lya5peL5rOVIDwga3lvdWthaXNlbnBvdVwgOwor5bmV6Jep5L2T5Yi2IDwgYmFrdWhhbnRhaXNlaVwgOwor56ys5LiA5Y2w6LGhIDwgZGFpaWNoaWluc2hvdVwgOwor55yf56m65YyF6KOFIDwgc2hpbmt1dWhvdXNvdVwgOwor55uj5p+76Ki86LehIDwga2Fuc2FzaG91c2VraVwgOwor6KqY5bCO6Zu75rWBIDwgeXV1ZG91ZGVucnl1dVwgOwor5b6p5pen5L2c5qWtIDwgZnVra3l1dXNhZ3lvdVwgOwor5L6b5Ye657GzIDwga3lvdXNodXRzdW1haVwgOwor5pCN5a6z6LOg5YSfIDwgc29uZ2FpYmFpc2hvdVwgOwor5oOz5YOP5aaK5aigIDwgc291em91bmluc2hpblwgOwor6Jma5b+D5Z2m5oeQIDwga3lvc2hpbnRhbmthaVwgOwor6ICQ6ZyH5qeL6YCgIDwgdGFpc2hpbmtvdXpvdVwgOwor5pyJ6ZmQ57Sa5pWwIDwgeXV1Z2Vua3l1dXN1dVwgOwor5aKX6Kit546HIDwgem91c2V0c3VyaXRzdVwgOwor5Zu95Zyf6KiI55S7IDwga29rdWRva2Vpa2FrdVwgOwor55Sf5a2Y56u25LqJIDwgc2Vpem9ua3lvdXNvdVwgOwor57WQ5ama5oqr6Zyy5a60IDwga2Vra29uaGlyb3VlblwgOwor5biC5rCR6Z2p5ZG9IDwgc2hpbWlua2FrdW1laVwgOwor5Zyn5Yqb6Y2LIDwgYXRzdXJ5b2t1bmFiZVwgOwor5aSn57Wx6aCY6YG4IDwgZGFpdG91cnlvdXNlblwgOwor6KOc57+S5pWZ6IKyIDwgaG9zaHV1a3lvdWlrdVwgOwor5Y+45Luk6ZW35a6YIDwgc2hpcmVpY2hvdWthblwgOwor6LOD6YeR5L2T57O7IDwgY2hpbmdpbnRhaWtlaVwgOwor5rW35LiK6Ieq6KGb6ZqKIDwga2Fpam91amllaXRhaVwgOwor5YWo5Lq65pWZ6IKyIDwgemVuamlua3lvdWlrdVwgOwor5a6Y5oi/6ZW35a6YIDwga2FuYm91Y2hvdWthblwgOwor5LyB5qWt56eY5a+GIDwga2lneW91aGltaXRzdVwgOwor5q665Lq65LqL5Lu2IDwgc2F0c3VqaW5qaWtlblwgOwor5Zuj5qCX55y8IDwgZG9uZ3VyaW1hbmFrb1wgOwor5Zyn5Yqb6YecIDwgYXRzdXJ5b2t1Z2FtYVwgOwor5Ye25oKq54qv572qIDwga3lvdWFrdWhhbnphaVwgOwor5aSp54S26LOH5rqQIDwgdGVuJyduZW5zaGlnZW5cIDsKK+eZvuWnk+S4gOaPhiA8IGh5YWt1c2hvdWlra2lcIDsKK+WOn+ahiOWnlOWToeS8miA8IGdlbicnYW4nJ2lpbmthaVwgOwor5rCX5a+G5a6kIDwga2ltaXRzdXNoaXRzdVwgOwor57eP5ZCI5aSn5a2mIDwgc291Z291ZGFpZ2FrdVwgOwor5LuP6aCC5bCK5YudIDwgYnVjaG91c29uc2hvdVwgOwor5Y2D5beu5LiH5YilIDwgc2Vuc2FiYW5iZXRzdVwgOwor6YG45omL5qip6Kmm5ZCIIDwgc2Vuc2h1a2VuamlhaVwgOwor57ay54q257WE57mUIDwgbW91am91c29zaGlraVwgOwor56ys5LiA6YOo6ZW3IDwgZGFpaWNoaWJ1Y2hvdVwgOwor5rqW5rqW5rG65YudIDwganVuanVua2Vzc2hvdVwgOwor5aSn5ZKM5rCR5pePIDwgeWFtYXRvbWluem9rdVwgOwor5b+c5o6l5L+CIDwgb3VzZXRzdWdha2FyaVwgOwor5Zyw5q675aSJ5YuVIDwgY2hpa2FrdWhlbmRvdVwgOwor6LKh5pS/5pS56Z2pIDwgemFpc2Vpa2Fpa2FrdVwgOwor5YWx5ZCM6KiI566XIDwga3lvdWRvdWtlaXNhblwgOwor5aWz5oi/6KmeIDwgbnlvdWJvdWtvdG9iYVwgOwor5YaZ55yf6Zu76YCBIDwgc2hhc2hpbmRlbnNvdVwgOwor5YiG5YiX5byPIDwgYnVucmV0c3VzaGlraVwgOwor5LiN6Imv6Ki65patIDwgZnVyeW91c2hpbmRhblwgOwor5rC055Sj5aSn5a2mIDwgc3Vpc2FuZGFpZ2FrdVwgOwor5Y2Y5byP54Gr5bGxIDwgdGFuc2hpa2lrYXphblwgOwor5LiA5YiG5LiA5Y6YIDwgaWNoaWJ1aWNoaXJpblwgOwor5a6f5Zyw5qSc6Ki8IDwgaml0Y2hpa2Vuc2hvdVwgOwor5YyX5riF5LqL5aSJIDwgaG9rdXNoaW5qaWhlblwgOwor5Lq66Z2i542j5b+DIDwgbmlubWVuanV1c2hpblwgOwor6Kaq5Lu75byPIDwgc2hpbicnbmluc2hpa2lcIDsKK+ioiOeUu+autemajiA8IGtlaWtha3VkYW5rYWlcIDsKK+eUn+a0u+WKmyA8IHNlaWthdHN1cnlva3VcIDsKK+ekvuWToemjn+WggiA8IHNoYWluc2hva3Vkb3VcIDsKK+mDteS+v+aWmemHkSA8IHl1dWJpbnJ5b3VraW5cIDsKK+S6lOWNgeS4ieasoSA8IGdvanV1c2FudHN1Z2lcIDsKK+WEquWLneWKo+aVlyA8IHl1dXNob3VyZXBwYWlcIDsKK+W/q+mAn+WIl+i7iiA8IGthaXNva3VyZXNzaGFcIDsKK+mbo+awkeadoee0hCA8IG5hbm1pbmpvdXlha3VcIDsKK+Wbvemam+aUvumAgSA8IGtva3VzYWlob3Vzb3VcIDsKK+WFreWNgeS9meW3niA8IHJva3VqdXV5b3NodXVcIDsKK+aApeihjOWIl+i7iiA8IGt5dXVrb3VyZXNzaGFcIDsKK+aXpeWSjOimi+S4u+e+qSA8IGhpeW9yaW1pc2h1Z2lcIDsKK+ajruael+WcsOW4ryA8IHNoaW5yaW5jaGl0YWlcIDsKK+mOluWbveaUv+etliA8IHNha29rdXNlaXNha3VcIDsKK+WFt+ixoee+juihkyA8IGd1c2hvdWJpanV0c3VcIDsKK+aHkOefs+aWmeeQhiA8IGthaXNla2lyeW91cmlcIDsKK+ewoeaYk+mjn+WggiA8IGthbicnaXNob2t1ZG91XCA7Civmmpfpu5LlpKfpmbggPCBhbmtva3V0YWlyaWt1XCA7Civpp4XplbflrqQgPCBla2ljaG91c2hpdHN1XCA7Civlj43li5Xpnanlkb0gPCBoYW5kb3VrYWt1bWVpXCA7Civlha3moLnmuIXmtYQgPCByb2trb25zaG91am91XCA7CivllYbmpa3kuLvnvqkgPCBzaG91Z3lvdXNodWdpXCA7Civku67oo4XoiJ7ouI/kvJogPCBrYXNvdWJ1dG91a2FpXCA7Civkv6HpoLzphrjmiJAgPCBzaGlucmFpam91c2VpXCA7CivlhbHlkIzlo7DmmI4gPCBreW91ZG91c2VpbWVpXCA7Civpga7lhYnlmajlnJ/lgbYgPCBzaGFrb3VraWRvZ3V1XCA7CivlibLlvJXliIfnrKYgPCB3YXJpYmlraWtpcHB1XCA7CivkuIvmsLTlh6bnkIbloLQgPCBnZXN1aXNob3Jpam91XCA7CivlhrfljbTmnJ/plpMgPCByZWlreWFrdWtpa2FuXCA7CivmgZnomasgPCB0c3V0c3VnYW11c2hpXCA7CivkuZ3mrbvkuIDnlJ8gPCBreXV1c2hpaXNzaG91XCA7CivkuK3oj6/msJHlm70gPCBjaHV1a2FtaW5rb2t1XCA7CivlkIjnkIbkuLvnvqnogIUgPCBnb3VyaXNodWdpc2hhXCA7Civmi6Hlo7Doo4Xnva4gPCBrYWt1c2Vpc291Y2hpXCA7CivpgZPot6/lu7roqK0gPCBkb3Vyb2tlbnNldHN1XCA7CivkurrpgKDlrp3nn7MgPCBqaW56b3Vob3VzZWtpXCA7CivovLjlh7rkv53pmbogPCB5dXNodXRzdWhva2VuXCA7Civlv4Xkv67np5Hnm64gPCBoaXNzaHV1a2Ftb2t1XCA7CivntabkuI7miYDlvpcgPCBreXV1eW9zaG90b2t1XCA7CivmrbTlj7LlrabmtL4gPCByZWtpc2hpZ2FrdWhhXCA7CivnrYnlt67mlbDliJcgPCB0b3VzYXN1dXJldHN1XCA7CivlkJvlrZDosbnlpIkgPCBrdW5zaGloeW91aGVuXCA7CivkuIvooajlj4LnhacgPCBrYWh5b3VzYW5zaG91XCA7Civli6Llipvnr4Tlm7IgPCBzZWlyeW9rdWhhbicnaVwgOwor6YCa6LKo5pS/562WIDwgdHN1dWthc2Vpc2FrdVwgOwor54us5Y2g5LyB5qWtIDwgZG9rdXNlbmtpZ3lvdVwgOwor54m55qip6ZqO57SaIDwgdG9ra2Vua2Fpa3l1dVwgOwor5q2j6KaP5puy57eaIDwgc2Vpa2lreW9rdXNlblwgOwor5YKN6IG054Sh5paZIDwgYm91Y2hvdW11cnlvdVwgOwor55Sj5qWt6LOH5pysIDwgc2FuZ3lvdXNoaWhvblwgOwor5qW95Zmo5ryU5aWP6ICFIDwgZ2Fra2llbnNvdXNoYVwgOwor56uL55+z6Zu75qmfIDwgdGF0ZWlzaGlkZW5raVwgOwor5aSc6ZaT5Lit5a2mIDwgeWFrYW5jaHV1Z2FrdVwgOwor6LK/5piT5pGp5pOmIDwgYm91ZWtpbWFzYXRzdVwgOwor5bm06Lyq5Y+y5a2mIDwgbmVucmluc2hpZ2FrdVwgOwor5a625LuY5aiYIDwgaWV0c3VraW11c3VtZVwgOwor5qmf5qKw57+76KizIDwga2lrYWlob24nJ3lha3VcIDsKK+mHkeenkeeOieadoSA8IGtpbmthZ3lva3Vqb3VcIDsKK+awkemWk+eZguazlSA8IG1pbmthbnJ5b3Vob3VcIDsKK+aDheazgeiovOaLoCA8IGpvdWt5b3VzaG91a29cIDsKK+WPpOWFuOS4u+e+qeiAhSA8IGtvdGVuc2h1Z2lzaGFcIDsKK+W/g+aCuOS6oumAsiA8IHNoaW5raWtvdXNoaW5cIDsKK+WbveWcn+WcsOeQhumZoiA8IGtva3Vkb2NoaXJpaW5cIDsKK+WumuaAp+WIhuaekCA8IHRlaXNlaWJ1bnNla2lcIDsKK+W4guihl+WMluWMuuWfnyA8IHNoaWdhaWtha3Vpa2lcIDsKK+eJueioseaKgOihkyA8IHRva2t5b2dpanV0c3VcIDsKK+WgsemBk+WGmeecnyA8IGhvdWRvdXNoYXNoaW5cIDsKK+acgOS9juizg+mHkSA8IHNhaXRlaWNoaW5naW5cIDsKK+eZvuaXpeiNiSA8IGh5YWt1bmljaGlzb3VcIDsKK+eerOmWk+mbu+aWrSA8IHNodW5rYW5kZW5kYW5cIDsKK+W5tOmgreaVmeabuCA8IG5lbnRvdWt5b3VzaG9cIDsKK+adsea0i+autemAmiA8IHRvdXlvdWRhbnRzdXVcIDsKK+eLrOWNoOizh+acrCA8IGRva3VzZW5zaGlob25cIDsKK+adseaWueaVmeS8miA8IHRvdWhvdWt5b3VrYWlcIDsKK+mbu+awl+apn+mWoui7iiA8IGRlbmtpa2lrYW5zaGFcIDsKK+iHquimmueXh+eKtiA8IGppa2FrdXNob3Vqb3VcIDsKK+WkqeS9k+ims+a4rCA8IHRlbnRhaWthbnNva3VcIDsKK+e+pOmbhuihjOWLlSA8IGd1bnNodXVrb3Vkb3VcIDsKK+ihhuS6uueSsOimliA8IHNodXVqaW5rYW5zaGlcIDsKK+i/t+i1sOelnue1jCA8IG1laXNvdXNoaW5rZWlcIDsKK+aIpueVpeWFteWZqCA8IHNlbnJ5YWt1aGVpa2lcIDsKK+WFiOWItuaUu+aSgyA8IHNlbnNlaWtvdWdla2lcIDsKK+aciee1puS8keaahyA8IHl1dWt5dXVreXV1a2FcIDsKK+imi+WtpuaXheihjCA8IGtlbmdha3VyeW9rb3VcIDsKK+WbveWGhee1jOa4iCA8IGtva3VuYWlrZWl6YWlcIDsKK+WvvuepuuWwhOaSgyA8IHRhaWt1dXNoYWdla2lcIDsKK+avlOi8g+WvvueFpyA8IGhpa2FrdXRhaXNob3VcIDsKK+W4guS4remKgOihjCA8IHNoaWNodXVnaW5rb3VcIDsKK+WumueCueims+a4rCA8IHRlaXRlbmthbnNva3VcIDsKK+S/g+aIkOagveWfuSA8IHNva3VzZWlzYWliYWlcIDsKK+S4oeS4ieaXpSA8IHJ5b3VzYW4nJ25pY2hpXCA7Civos4Pph5HmoLzlt64gPCBjaGluZ2lua2FrdXNhXCA7CivmlK/phY3pmo7ntJogPCBzaGloYWlrYWlreXV1XCA7Civkuozph43pnLLlh7ogPCBuaWp1dXJvc2h1dHN1XCA7Civli5XohIjnoazljJYgPCBkb3VteWFrdWtvdWthXCA7CivpmqPmjqXpg6jpmoogPCByaW5zZXRzdWJ1dGFpXCA7Civlu7roqK3mqZ/morAgPCBrZW5zZXRzdWtpa2FpXCA7CivkuIrlsaTpmo7ntJogPCBqb3Vzb3VrYWlreXV1XCA7CivkuInmi53kuZ3mi50gPCBzYW5wYWlreXV1aGFpXCA7CivplovmoKHoqJjlv7Xml6UgPCBrYWlrb3VraW5lbmJpXCA7CivkuI3lj6/nn6Xoq5bogIUgPCBmdWthY2hpcm9uc2hhXCA7Civml5fooYzliJcgPCBoYXRhZ3lvdXJldHN1XCA7Civnibnmrorms5XkurogPCB0b2t1c2h1aG91amluXCA7Civlo6vprYLllYbmiY0gPCBzaGlrb25zaG91c2FpXCA7Civlgrfnl4XmjZXomZwgPCBzaG91YnlvdWhvcnlvXCA7CivnhKHmgKfnlJ/mrpYgPCBtdXNlaXNlaXNob2t1XCA7CivnnInllL7niakgPCBtYXl1dHN1YmFtb25vXCA7CivosqHmlL/mlL/nrZYgPCB6YWlzZWlzZWlzYWt1XCA7CivpmbjkuIrnq7bmioAgPCByaWt1am91a3lvdWdpXCA7CivljZropqflvLfoqJggPCBoYWt1cmFua3lvdWtpXCA7CivkurrmqKnkvrXlrrMgPCBqaW5rZW5zaGluZ2FpXCA7Civnt4/poJjmga/lrZAgPCBzb3VyeW91bXVzdWtvXCA7CivpgLLooYzkv4IgPCBzaGlua291Z2FrYXJpXCA7Civoj5zpo5/kuLvnvqkgPCBzYWlzaG9rdXNodWdpXCA7CivnhKHoqJjlkI3lgrXmqKkgPCBtdWtpbWVpc2Fpa2VuXCA7CivotaTlpJbnmbrmlaMgPCBzZWtpZ2FpaGFzc2FuXCA7CivooZvmmJ/pgJrkv6EgPCBlaXNlaXRzdXVzaGluXCA7Civkurrlk6HliYrmuJsgPCBqaW4nJ2luc2FrdWdlblwgOwor5YuV5qSN54mpIDwgZG91c2hva3VidXRzdVwgOwor546H5YWI6Lqs6KGMIDwgc29zc2Vua3l1dWtvdVwgOwor5YWN56iO5omA5b6XIDwgbWVuemVpc2hvdG9rdVwgOwor6Ziy57iu5Yqg5belIDwgYm91c2h1a3VrYWtvdVwgOwor6KSH5byP57C/6KiYIDwgZnVrdXNoaWtpYm9raVwgOwor6LKs5Lu75YiG5ouFIDwgc2VraW5pbmJ1bnRhblwgOwor5q2m5Yqb6KGM5L2/IDwgYnVyeW9rdWtvdXNoaVwgOwor55Wq57WE57eo5oiQIDwgYmFuZ3VtaWhlbnNlaVwgOwor5YWo5rOi5Y+X5L+h5qmfIDwgemVucGFqdXNoaW5raVwgOwor5b+F6KaB54mpIDwgaGl0c3V5b3VidXRzdVwgOwor5LyR5oGv5pmC6ZaTIDwga3l1dXNva3VqaWthblwgOwor5LiJ6Lu45a6kIDwgc2FuamlrdXNoaXRzdVwgOwor5LqM6YeN6Zai56+AIDwgbmlqdXVrYW5zZXRzdVwgOwor5b6F5ZCI5a6kIDwgbWFjaGlhaXNoaXRzdVwgOwor5Y2a54mp5a2mIDwgaGFrdWJ1dHN1Z2FrdVwgOwor6Kaz5YWJ55Sj5qWtIDwga2Fua291c2FuZ3lvdVwgOwor57WQ57Su6KGTIDwga2Vzc2F0c3VqdXRzdVwgOwor5Y2a5byV5peB6Ki8IDwgaGFrdWluYm91c2hvdVwgOwor5re35YWl54mpIDwga29uJydueXV1YnV0c3VcIDsKK+WFseiyqeS8muekviA8IGt5b3VoYW5nYWlzaGFcIDsKK+aPmumZuOiJpuiJhyA8IHlvdXJpa3VrYW50ZWlcIDsKK+WFrOWus+WvvuetliA8IGtvdWdhaXRhaXNha3VcIDsKK+mZveWLleS9nOaIpiA8IHlvdWRvdXNha3VzZW5cIDsKK+W5s+WSjOS4u+e+qeiAhSA8IGhlaXdhc2h1Z2lzaGFcIDsKK+iqmOaLkOeKr+S6uiA8IHl1dWthaWhhbicnbmluXCA7CivlhoXoh5Pnlr7mgqMgPCBuYWl6b3VzaGlra2FuXCA7Civkv67lo6voq5bmlocgPCBzaHV1c2hpcm9uYnVuXCA7Civpq5jnrYnmlZnogrIgPCBrb3V0b3VreW91aWt1XCA7CivmuKzph4/mqZ/morAgPCBzb2t1cnlvdWtpa2FpXCA7CivpnIrmhJ/llYbms5UgPCByZWlrYW5zaG91aG91XCA7CivlkarnianltIfmi50gPCBqdWJ1dHN1c3V1aGFpXCA7CivmlofkurrloqjlrqIgPCBidW5qaW5ib2trYWt1XCA7Civmib/nn6XkuYvliqkgPCBzaG91Y2hpbm9zdWtlXCA7CivotorlubTojYnmnKwgPCBldHN1bmVuc291aG9uXCA7CivpnZLlpKnkupXkuojnrpcgPCBhb3RlbmpvdXlvc2FuXCA7Civnirbms4HmhI/lkbPoq5YgPCBqb3VreW91aW1pcm9uXCA7CivpgJrli6TliJfou4ogPCB0c3V1a2lucmVzc2hhXCA7Civlh7rluK3njocgPCBzaHVzc2VraXJpdHN1XCA7Civnsr7pgLLmlpnnkIYgPCBzaG91amlucnlvdXJpXCA7CivkuLvlipvpg6jpmoogPCBzaHVyeW9rdWJ1dGFpXCA7CivmvKLlrZfmlofljJblnI8gPCBrYW5qaWJ1bmtha2VuXCA7Civpg7flnJ/mloflraYgPCBreW91ZG9idW5nYWt1XCA7Civnm7TmjqXnqI4gPCBjaG9rdXNldHN1emVpXCA7CivlpLHmpa3ogIUgPCBzaGl0c3VneW91c2hhXCA7Civmra/np5HmioDlt6Xlo6sgPCBzaGlrYWdpa291c2hpXCA7CivmnJ/mnKvoqabpqJMgPCBraW1hdHN1c2hpa2VuXCA7CivpgKPpgqbpppbnm7ggPCByZW5wb3VzaHVzaG91XCA7Civmg4XloLHlt6XlraYgPCBqb3Vob3Vrb3VnYWt1XCA7CivniafnlZzmpa0gPCBib2t1Y2hpa3VneW91XCA7CivkuIPliIbkuInliIYgPCBzaGljaGlidXNhbmJ1XCA7Civlj4LogIPos4fmlpkgPCBzYW5rb3VzaGlyeW91XCA7CivmtbfkuIrovLjpgIHot68gPCBrYWlqb3V5dXNvdXJvXCA7Civni6zmlq3lsILooYwgPCBkb2t1ZGFuc2Vua291XCA7CivlhaXlrabogIPmn7sgPCBueXV1Z2FrdWtvdXNhXCA7Civpga3pm6Pkv6Hlj7cgPCBzb3VuYW5zaGluZ291XCA7CivmtYHli5Xos4fnlKMgPCByeXV1ZG91c2hpc2FuXCA7Civmp4vnr4nniakgPCBrb3VjaGlrdWJ1dHN1XCA7CivkuIvlm5vljYrmnJ8gPCBzaGltb3NoaWhhbmtpXCA7Civpgbjmip7np5Hnm64gPCBzZW50YWt1a2Ftb2t1XCA7CivoqK3nq4vogIUgPCBzZXRzdXJpdHN1c2hhXCA7Civmg4XloLHmpJzntKIgPCBqb3Vob3VrZW5zYWt1XCA7CivpoILkuIrkvJroq4cgPCBjaG91am91a2FpZGFuXCA7CivlhbHmuIjntYTlkIggPCBreW91c2Fpa3VtaWFpXCA7Civlj4LogIPmm7jnm64gPCBzYW5rb3VzaG9tb2t1XCA7Civmsrvlronorablr58gPCBjaGlhbmtlaXNhdHN1XCA7CivoiIjmpa3pioDooYwgPCBrb3VneW91Z2lua291XCA7Civoqr/lgZzlp5Tlk6HkvJogPCBjaG91dGVpaWlua2FpXCA7CivooYzmlL/mm7jlo6sgPCBneW91c2Vpc2hvc2hpXCA7CivplqLpgKPpoIXnm64gPCBrYW5yZW5rb3Vtb2t1XCA7Civpm6PooYzoi6booYwgPCBuYW5neW91a3VneW91XCA7CivooYzmlrnkuI3mmI7ogIUgPCB5dWt1ZWZ1bWVpc2hhXCA7CivpoJDph5HpgJrluLMgPCB5b2tpbnRzdXVjaG91XCA7CivntrLohpzliaXpm6IgPCBtb3VtYWt1aGFrdXJpXCA7CivovLjlh7rmpJzmn7sgPCB5dXNodXRzdWtlbnNhXCA7Civnp4HlhbEgPCB3YXRha3VzaGlkb21vXCA7CivmjIflrprpipjmn4QgPCBzaGl0ZWltZWlnYXJhXCA7CivphZLmsaDogonmnpcgPCBzaHVjaGluaWt1cmluXCA7CivlhKrnrYnos57nirYgPCB5dXV0b3VzaG91am91XCA7Civpu4Tph5HliIblibIgPCBvdWdvbmJ1bmthdHN1XCA7Civkv67nuZXlt6XloLQgPCBzaHV1emVua291am91XCA7CivotrPplbfonIIgPCBhc2hpbmFnYWJhY2hpXCA7CivkuozogIXpgbjkuIAgPCBuaXNoYXNlbicnaXRzdVwgOwor57KY5ray6LOqIDwgbmVuJydla2lzaGl0c3VcIDsKK+engeS6iyA8IHdhdGFrdXNoaWdvdG9cIDsKK+iPjOmhnuWtpuiAhSA8IGtpbnJ1aWdha3VzaGFcIDsKK+WkluWbvemDteS+vyA8IGdhaWtva3V5dXViaW5cIDsKK+S6pOmAmuWcsOeNhCA8IGtvdXRzdXVqaWdva3VcIDsKK+mbhuWbo+e1kOWpmiA8IHNodXVkYW5rZWtrb25cIDsKK+aEm+eOqeWLleeJqSA8IGFpZ2FuZG91YnV0c3VcIDsKK+mWk+aOpeipseazlSA8IGthbnNldHN1d2Fob3VcIDsKK+WtpueUn+mDqOmVtyA8IGdha3VzZWlidWNob3VcIDsKK+mbsuW9ouWumuimjyA8IGt1bW9nYXRham91Z2lcIDsKK+WAi+S6uueahOaEj+imiyA8IGtvamludGVraWlrZW5cIDsKK+Wxi+WkluW6g+WRiiA8IG9rdWdhaWtvdWtva3VcIDsKK+S6oeWRveaWh+WtpiA8IGJvdW1laWJ1bmdha3VcIDsKK+WMl+Wbvei1pOa1t+iAgSA8IGhva2tva3Vha2FlYmlcIDsKK+mAo+e2mumWouaVsCA8IHJlbnpva3VrYW5zdXVcIDsKK+W5vemciuipsSA8IHl1dXJlaWJhbmFzaGlcIDsKK+ethui3oemRkeWumiA8IGhpc3Nla2lrYW50ZWlcIDsKK+WQjOizqueahCA8IGRvdXNoaXRzdXRla2lcIDsKK+W7g+eJqeWIqeeUqCA8IGhhaWJ1dHN1cml5b3VcIDsKK+i7iuS4oeS8muekviA8IHNoYXJ5b3VnYWlzaGFcIDsKK+m6u+iWrOW4uOe/kiA8IG1heWFrdWpvdXNodXVcIDsKK+S4jeW+l+imgemgmCA8IGZ1dG9rdXlvdXJ5b3VcIDsKK+WxseWys+WcsOW4ryA8IHNhbmdha3VjaGl0YWlcIDsKK+WVj+mhjOmgmOWfnyA8IG1vbmRhaXJ5b3Vpa2lcIDsKK+Wft+edgOW/gyA8IHNodXVjaGFrdXNoaW5cIDsKK+WAi+WIpeiyqeWjsiA8IGtvYmV0c3VoYW5iYWlcIDsKK+W5s+ihoeaEn+immiA8IGhlaWtvdWthbmtha3VcIDsKK+WGheWbvemDteS+vyA8IG5haWtva3V5dXViaW5cIDsKK+WKm+mWouS/giA8IGNoaWthcmFrYW5rZWlcIDsKK+WgsemBk+eVque1hCA8IGhvdWRvdWJhbmd1bWlcIDsKK+e0meS4iuioiOeUuyA8IHNoaWpvdWtlaWtha3VcIDsKK+S6jOmHjeWbveexjSA8IG5panV1a29rdXNla2lcIDsKK+ihjOaUv+iotOionyA8IGd5b3VzZWlzb3Nob3VcIDsKK+e1tue4geaKteaKlyA8IHpldHN1ZW50ZWlrb3VcIDsKK+WMv+WQjeaJueiplSA8IHRva3VtZWloaWh5b3VcIDsKK+mVt+acn+WbveWCtSA8IGNob3VraWtva3VzYWlcIDsKK+WFiee3mueZguazlSA8IGtvdXNlbnJ5b3Vob3VcIDsKK+a1geWLleizh+acrCA8IHJ5dXVkb3VzaGlob25cIDsKK+iovOWIuOW4guWgtCA8IHNob3VrZW5zaGlqb3VcIDsKK+eDj+iKu+aymeaRqeWmmeeOiyA8IHVzdXNhbWFteW91b3VcIDsKK+W7uuioreW3peS6iyA8IGtlbnNldHN1a291amlcIDsKK+WkieaFi+aAp+assiA8IGhlbnRhaXNlaXlva3VcIDsKK+epuuS4ree0sOiPjCA8IGt1dWNodXVzYWlraW5cIDsKK+S7o+mHkeW8leaPmyA8IGRhaWtpbmhpa2lrYWVcIDsKK+iMtueVqueLguiogCA8IGNoYWJhbmt5b3VnZW5cIDsKK+S6pOmAmuimj+WJhyA8IGtvdXRzdXVraXNva3VcIDsKK+eJqeizqueahCA8IGJ1c3NoaXRzdXRla2lcIDsKK+ePvueJqeebuOWgtCA8IGdlbmJ1dHN1c291YmFcIDsKK+adn+e4m+eQhuirliA8IHNva3ViYWt1cmlyb25cIDsKK+WFrOato+iovOabuCA8IGtvdXNlaXNob3VzaG9cIDsKK+WQjOebn+aAoOalrSA8IGRvdW1laXRhaWd5b3VcIDsKK+ihjOWLleaWuemHnSA8IGtvdWRvdWhvdXNoaW5cIDsKK+mBqeato+S+oeagvCA8IHRla2lzZWlrYWtha3VcIDsKK+S6uueoruaUueiJryA8IGppbnNodWthaXJ5b3VcIDsKK+S9v+mAlOS4jeaYjumHkSA8IHNoaXRvZnVtZWlraW5cIDsKK+WNiua1geWLleS9kyA8IGhhbnJ5dXVkb3V0YWlcIDsKK+aZruS7j+aIpuS6iSA8IGZ1ZnV0c3VzZW5zb3VcIDsKK+iSuOeZuueGsSA8IGpvdWhhdHN1bmV0c3VcIDsKK+S6jOmHjee1kOWQiCA8IG5panV1a2V0c3Vnb3VcIDsKK+WFjeiyrOeJueaoqSA8IG1lbnNla2l0b2trZW5cIDsKK+aHsuaIkuWHpuWIhiA8IGNob3VrYWlzaG9idW5cIDsKK+S4jeW/g+W+l+iAhSA8IGZ1a29rb3JvZW1vbm9cIDsKK+ixquaUvuejiuiQvSA8IGdvdWhvdXJhaXJha3VcIDsKK+iJpuegsuWwhOaSgyA8IGthbnBvdXNoYWdla2lcIDsKK+mWouaVsOino+aekCA8IGthbnN1dWthaXNla2lcIDsKK+awkeS4u+WMlumBi+WLlSA8IG1pbnNodWthdW5kb3VcIDsKK+Wkqeawl+ebuOirh+aJgCA8IHRlbmtpc291ZGFuam9cIDsKK+mAmuS/oeism+W6pyA8IHRzdXVzaGlua291emFcIDsKK+WkluiyqOeNsuW+lyA8IGdhaWtha2FrdXRva3VcIDsKK+WPguWKoOW4jOacm+iAhSA8IHNhbmtha2lib3VzaGFcIDsKK+aHkOeWkeS4u+e+qeiAhSA8IGthaWdpc2h1Z2lzaGFcIDsKK+mbu+awl+a6tuaOpSA8IGRlbmtpeW91c2V0c3VcIDsKK+WQrueZsOiIkOeXlCA8IHNlbicneW91c2hpamlcIDsKK+WKtOWDjeadoeS7tiA8IHJvdWRvdWpvdWtlblwgOwor5aSW5Zu96Iiq6LevIDwgZ2Fpa29rdWtvdXJvXCA7CivkvJ3pgIHpgJ/luqYgPCBkZW5zb3Vzb2t1ZG9cIDsKK+S4gOacrOiqv+WtkCA8IGlwcG9uZGpvdXNoaVwgOwor5aKc6JC95LqL5pWFIDwgdHN1aXJha3VqaWtvXCA7CivolqnmkanplqUgPCBzYXRzdW1hYmF0c3VcIDsKK+imluiBtOeOhyA8IHNoaWNob3VyaXRzdVwgOwor57ea6aaZ6Iqx54GrIDwgc2Vua291aGFuYWJpXCA7CivmnbHkuqzpg73mlL8gPCB0b3VreW91dG9zZWlcIDsKK+i7jeS6i+eUo+alrSA8IGd1bmppc2FuZ3lvdVwgOwor5Luj55CG54mn5birIDwgZGFpcmlib2t1c2hpXCA7CivkuInljYHkuInmiYAgPCBzYW5qdXVzYW5zaG9cIDsKK+S4gOasoee3mui8qiA8IGljaGlqaXNlbnJpblwgOwor55Wz5rC057e0IDwgdGF0YW1pc3VpcmVuXCA7CivkvqHmoLzlpInli5UgPCBrYWtha3VoZW5kb3VcIDsKK+aCoOaCoOiHqumBqSA8IHl1dXl1dWppdGVraVwgOwor5bGx57Sr5rC05piOIDwgc2Fuc2hpc3VpbWVpXCA7CivluZXlg5rplbcgPCBiYWt1cnlvdWNob3VcIDsKK+epuui8uOiyqOeJqSA8IGt1dXl1a2Ftb3RzdVwgOwor6Kaz5YWJ6LOH5rqQIDwga2Fua291c2hpZ2VuXCA7CivoppbopproqIDoqp4gPCBzaGlrYWt1Z2VuZ29cIDsKK+m6u+iWrOW4uOeUqCA8IG1heWFrdWpvdXlvdVwgOwor5pel5pyd6L6e5YW4IDwgbml0Y2hvdWppdGVuXCA7CivlupfpoK3lgrXliLggPCB0ZW50b3VzYWlrZW5cIDsKK+eJiOaoqeaJgOaciSA8IGhhbmtlbnNob3l1dVwgOwor5LiA5rOK6KGM6LuNIDwgaXBwYWt1a291Z3VuXCA7CivpnZLnqbrluILloLQgPCBhb3pvcmFzaGlqb3VcIDsKK+mWi+elqOe1kOaenCA8IGthaWh5b3VrZWtrYVwgOwor5Y2Y54us6Kyb5ZKMIDwgdGFuZG9rdWtvdXdhXCA7Civov5Hku6Pnp5HlraYgPCBraW5kYWlrYWdha3VcIDsKK+eEoeelnuirluiAhSA8IG11c2hpbnJvbnNoYVwgOwor5biC6K2w5Lya6K2w5ZOhIDwgc2hpZ2lrYWlnaWluXCA7Civnj77lrp/nmoQgPCBnZW5qaXRzdXRla2lcIDsKK+eUu+S4gOeahCA8IGtha3VpdHN1dGVraVwgOwor5pyJ5b2i6LKh55SjIDwgeXV1a2VpemFpc2FuXCA7CivmsrPlsrjmrrXkuJggPCBrYWdhbmRhbmt5dXVcIDsKK+WkqumZveWFiee3miA8IHRhaXlvdWtvdXNlblwgOwor5Y246YWS6LKpIDwgb3Jvc2hpc2h1aGFuXCA7CivlhITkuIfplbfogIUgPCBva3VtYW5jaG91amFcIDsKK+WMlueyp+efs+m5uCA8IGtlc2hvdXNla2tlblwgOwor6KiA6Kqe55mC5rOVIDwgZ2VuZ29yeW91aG91XCA7CivlronlrprmiJDplbcgPCBhbnRlaXNlaWNob3VcIDsKK+elnuaoqeaUv+ayuyA8IHNoaW5rZW5zZWlqaVwgOwor6Kaq5pel5a62IDwgc2hpbicnbmljaGlrYVwgOwor6Iez5LiK5ZG95LukIDwgc2hpam91bWVpcmVpXCA7CivlhoXlh7rooYAgPCBuYWlzaHVra2V0c3VcIDsKK+S4reWkruWnlOWToeS8miA8IGNodXVvdWlpbmthaVwgOwor5r2k562G5paZIDwganVucGl0c3VyeW91XCA7Civpn7Pmpb3nvo7lraYgPCBvbmdha3ViaWdha3VcIDsKK+WKtOWDjeWkp+iHoyA8IHJvdWRvdWRhaWppblwgOwor55Sw6IiO5L6NIDwgaW5ha2F6YW11cmFpXCA7CivpmY3moLzkurrkuosgPCBrb3VrYWt1amluamlcIDsKK+mHkemHmOa1gSA8IGthbmFrdWdpcnl1dVwgOwor56qS57Sg6IKl5paZIDwgY2hpc3NvaGlyeW91XCA7Civou43pg6jni6zoo4EgPCBndW5idWRva3VzYWlcIDsKK+WFrOWLmeeWvueXhSA8IGtvdW11c2hpcHBlaVwgOwor6Iqx54Gr5aSn5LyaIDwgaGFuYWJpdGFpa2FpXCA7CivlibXkvZzlipsgPCBzb3VzYWt1cnlva3VcIDsKK+WNs+aIpuWKmyA8IHNva3VzZW5yeW9rdVwgOwor6KGM6Zuy5rWB5rC0IDwga291dW5yeXV1c3VpXCA7Civlj43lr77oqIrllY8gPCBoYW50YWlqaW5tb25cIDsKK+aWueWQkei7ouaPmyA8IGhvdWtvdXRlbmthblwgOwor54Sh57ea5oqA6KGTIDwgbXVzZW5naWp1dHN1XCA7Civoia7kuIvoia7kuIogPCBnb25rYWdvbnNob3VcIDsKK+aLrOe0hOetiyA8IGthdHN1eWFrdWtpblwgOwor5pyq5p2l5a6M5LqGIDwgbWlyYWlrYW5yeW91XCA7CivliY3pgLLpg6jpmoogPCB6ZW5zaGluYnV0YWlcIDsKK+aXoue0hOWIhuaVsCA8IGtpeWFrdWJ1bnN1dVwgOwor6Kqs5b6X5YqbIDwgc2V0dG9rdXJ5b2t1XCA7CivlhazllrbkvY/lroUgPCBrb3VlaWp1dXRha3VcIDsKK+ebo+afu+WgseWRiiA8IGthbnNhaG91a29rdVwgOwor6ZCY5pKe5aCCIDwga2FuZXRzdWtpZG91XCA7CivmnIjntYzlkajmnJ8gPCBnZWtrZWlzaHV1a2lcIDsKK+enkeWtpumbkeiqjCA8IGthZ2FrdXphc3NoaVwgOwor6YCa6LKo57Wx5ZCIIDwgdHN1dWthdG91Z291XCA7Civlr77lnLDpgJ/luqYgPCB0YWljaGlzb2t1ZG9cIDsKK+WumOWDmuS4u+e+qSA8IGthbnJ5b3VzaHVnaVwgOwor5pen5b2i5byPIDwga3l1dWtlaXNoaWtpXCA7Civpu4Tnjonnn7MgPCBrb3VneW9rdXNla2lcIDsKK+W+oeiqv+WtkOiAhSA8IG9jaG91c2hpbW9ub1wgOwor5a6f6aiT5a6kIDwgamlra2Vuc2hpdHN1XCA7CivkuozotrPkuInmlocgPCBuaXNva3VzYW5tb25cIDsKK+mFuOaAp+iCpeaWmSA8IHNhbnNlaWhpcnlvdVwgOwor6KiA5paH5LiA6Ie0IDwgZ2VuYnVuJydpdGNoaVwgOwor5a+G5ryB6ICFIDwgbWl0c3VyeW91c2hhXCA7CivlhbHlkIznrqHnkIYgPCBreW91ZG91a2FucmlcIDsKK+iDg+mFuOmBjuWkmueXhyA8IGlzYW5rYXRhc2hvdVwgOwor5rW35aSW5peF6KGMIDwga2FpZ2Fpcnlva291XCA7CivkuI3lr6nlsIvllY8gPCBmdXNoaW5qaW5tb25cIDsKK+iyrOS7u+i7ouWrgSA8IHNla2luaW50ZW5rYVwgOwor6ZW35pyf5omL5b2iIDwgY2hvdWtpdGVnYXRhXCA7Civmva7msZDooaggPCBjaG91c2VraWh5b3VcIDsKK+e1puS4juawtOa6liA8IGt5dXV5b3N1aWp1blwgOwor55m954ax5oimIDwgaGFrdW5ldHN1c2VuXCA7CivlvpPlsZ7nr4AgPCBqdXV6b2t1c2V0c3VcIDsKK+WwkeaVsOeyvumLrSA8IHNob3VzdXVzZWllaVwgOwor6Lui5o+b56S+5YK1IDwgdGVua2Fuc2hhc2FpXCA7Civmsr/lsrjmvIHmpa0gPCBlbmdhbmd5b2d5b3VcIDsKK+aKvOWIh+W4syA8IG9zaGlraXJpY2hvdVwgOwor6Ymx54mp5a2mIDwga291YnV0c3VnYWt1XCA7CivkuqTpmpvnpL7kvJogPCBrb3VzYWlzaGFrYWlcIDsKK+WItumZkOS6i+mghSA8IHNlaWdlbmppa29rdVwgOwor5bem5b+D5a6kIDwgc2FzaGluc2hpdHN1XCA7CivliJHkuovosqzku7sgPCBrZWlqaXNla2luaW5cIDsKK+a3t+WQiOeBq+iWrCA8IGtvbmdvdWtheWFrdVwgOwor5qW15b2p6ImyIDwgZ29rdXNhaXNoaWtpXCA7Civlj4zli5nlpZHntIQgPCBzb3VtdWtlaXlha3VcIDsKK+iCneW/g+imgSA8IGthbmppbmthbmFtZVwgOwor5Y+k5YW45a2m6ICFIDwga290ZW5nYWt1c2hhXCA7CivnlJ/mtLvmibbliqkgPCBzZWlrYXRzdWZ1am9cIDsKK+W7uueviealrSA8IGtlbmNoaWt1Z3lvdVwgOwor5ouS6aOf55eHIDwga3lvc2hva3VzaG91XCA7CivnlKjnm4rnianmqKkgPCB5b3Vla2lidWtrZW5cIDsKK+eGsembu+WvviA8IG5ldHN1ZGVudHN1aVwgOwor5Ye65Yuk5pmC6ZaTIDwgc2h1a2tpbmppa2FuXCA7CivpjpbkvJ3li5UgPCBrdXNhcmlkZW5kb3VcIDsKK+aLoeWkp+eOhyA8IGtha3VkYWlyaXRzdVwgOwor55u46Zai5L+C5pWwIDwgc291a2Fua2Vpc3V1XCA7Civpg73lv5ggPCBtaXlha293YXN1cmVcIDsKK+ekvuS8muS/nemanCA8IHNoYWthaWhvc2hvdVwgOwor5Y2U5ZCM5YuV5L2cIDwga3lvdWRvdWRvdXNhXCA7Civmg4Xnt5LnupLntr8gPCBqb3VjaG90ZW5tZW5cIDsKK+eri+aGsuWQm+S4uyA8IHJpa2tlbmt1bnNodVwgOwor54uC5L+h55qEIDwga3lvdXNoaW50ZWtpXCA7Civooajnj77lipsgPCBoeW91Z2Vucnlva3VcIDsKK+S4reeri+mdoiA8IGNodXVyaXRzdW1lblwgOwor5peF5Yi45p+76Ki8IDwgcnlva2Vuc2FzaG91XCA7Civosp3mrrvomasgPCBrYWlnYXJhbXVzaGlcIDsKK+iQveiKseeLvOiXiSA8IHJha2thcm91emVraVwgOwor5LiA55Wq5pifIDwgaWNoaWJhbmJvc2hpXCA7CivljJblraboo73lk4EgPCBrYWdha3VzZWloaW5cIDsKK+mBqeaAp+aknOafuyA8IHRla2lzZWlrZW5zYVwgOwor6LOD5YCf5Lq6IDwgY2hpbnNoYWt1bmluXCA7CivnlJ/lkb3np5HlraYgPCBzZWltZWlrYWdha3VcIDsKK+W3peS9nOapn+aisCA8IGtvdXNha3VraWthaVwgOwor5Zuz5pu46aSo5a2mIDwgdG9zaG9rYW5nYWt1XCA7Civkurrlj6PllY/poYwgPCBqaW5rb3Vtb25kYWlcIDsKK+W+oeeUqOWtpuiAhSA8IGdveW91Z2FrdXNoYVwgOwor5rCX5Zyn6YWN572uIDwga2lhdHN1aGFpY2hpXCA7CivmmYLpmZDniIblvL4gPCBqaWdlbmJha3VkYW5cIDsKK+iHqueEtuWvvuaVsCA8IHNoaXplbnRhaXN1dVwgOwor5aSc6ZaT5pKu5b2xIDwgeWFrYW5zYXRzdWVpXCA7CivnpZ7ntYznuYrntq0gPCBzaGlua2Vpc2VuJydpXCA7CivmtYHli5XosqDlgrUgPCByeXV1ZG91ZnVzYWlcIDsKK+acgOmrmOiomOmMsiA8IHNhaWtvdWtpcm9rdVwgOwor5paw6KaP5LqL5qWtIDwgc2hpbmtpamlneW91XCA7Civlp5PlkI3liKTmlq0gPCBzZWltZWloYW5kYW5cIDsKK+ijhemjvueahCA8IHNvdXNob2t1dGVraVwgOwor5Y+N5a++57Wm5LuYIDwgaGFudGFpa3l1dWZ1XCA7CivmvrHnsonos6ogPCBkZW5wdW5zaGl0c3VcIDsKK+aVl+aIpuaKleaJiyA8IGhhaXNlbnRvdXNodVwgOwor5q2m5ryi5LiJ6Y6uIDwgYnVrYW5zYW5jaGluXCA7Civpm7vmsJfpmbDmgKfluqYgPCBkZW5raWluc2VpZG9cIDsKK+S4gOacneS4gOWklSA8IGl0Y2hvdWlzc2VraVwgOwor54Sh6KiY5ZCN6aCQ6YeRIDwgbXVraW1laXlva2luXCA7CivlrrblhoXlt6Xmpa0gPCBrYW5haWtvdWd5b3VcIDsKK+WNg+aXpeiNiSA8IHNlbicnbmljaGlzb3VcIDsKK+a1heWtpuiPsuaJjSA8IHNlbmdha3VoaXNhaVwgOwor5re35ZCI57WM5riIIDwga29uZ291a2VpemFpXCA7CivluILmsJHlm6PkvZMgPCBzaGltaW5kYW50YWlcIDsKK+S8gealremAo+WQiCA8IGtpZ3lvdXJlbmdvdVwgOwor5pmC5Luj5oSf6KaaIDwgamlkYWlrYW5rYWt1XCA7CivkuIPkupToqr8gPCBzaGljaGlnb2Nob3VcIDsKK+WIqeW3seS4u+e+qeiAhSA8IHJpa29zaHVnaXNoYVwgOwor5YWx5ZCM5Zug5a2QIDwga3lvdWRvdWluc2hpXCA7CivkuIDmhI/lsILlv4MgPCBpY2hpaXNlbnNoaW5cIDsKK+asp+exs+iruOWbvSA8IG91YmVpc2hva29rdVwgOwor6Z2p5ZG96YGL5YuVIDwga2FrdW1laXVuZG91XCA7CivntJTnsovln7nppIogPCBqdW5zdWliYWl5b3VcIDsKK+WGjeS4ieWGjeWbmyA8IHNhaXNhbnNhaXNoaVwgOwor5Lit5Zu95pyNIDwgY2h1dWdva3VmdWt1XCA7CivlvaLogIzkuIrlraYgPCBrZWlqaWpvdWdha3VcIDsKK+WcsOaWueWbo+S9kyA8IGNoaWhvdWRhbnRhaVwgOwor5YWs5rCR5a2m5qChIDwga291bWluZ2Fra291XCA7CivkvqHmoLzntbHliLYgPCBrYWtha3V0b3VzZWlcIDsKK+aEj+WMoOeZu+mMsiA8IGlzaG91dG91cm9rdVwgOwor6auY5aSp5Y6fIDwgdGFrYW1hZ2FoYXJhXCA7Civlj5fli5XllqvnhZkgPCBqdWRvdWtpdHN1ZW5cIDsKK+ijvee8tuW3peWgtCA8IHNlaWthbmtvdWpvdVwgOwor5Zu65b2i54eD5paZIDwga29rZWluZW5yeW91XCA7Civpg7Xkvr/ngrrmm78gPCB5dXViaW5rYXdhc2VcIDsKK+WLmOWumuS/giA8IGthbmpvdWdha2FyaVwgOwor5Y+j6aCt5byB6KuWIDwga291dG91YmVucm9uXCA7Civnq4vkvZPljJblraYgPCByaXR0YWlrYWdha3VcIDsKK+aLmOadn+WKmyA8IGtvdXNva3VyeW9rdVwgOwor5ZOB6KGM5pa55q2jIDwgaGlua291aG91c2VpXCA7CivmsojmvrHniakgPCBjaGluZGVuYnV0c3VcIDsKK+mBk+aomSA8IG1pY2hpc2hpcnViZVwgOwor5Zmo6LOq55qEIDwga2lzaGl0c3V0ZWtpXCA7Civosqnlo7LkvqHmoLwgPCBoYW5iYWlrYWtha3VcIDsKK+aBi+aEm+e1kOWpmiA8IHJlbicnYWlrZWtrb25cIDsKK+WMl+exs+Wcn+S6uiA8IGhva3ViZWlkb2ppblwgOwor5Y2D5pel57SFIDwgc2VuJyduaWNoaWtvdVwgOwor6Ieo5rW35a2m5qChIDwgcmlua2FpZ2Fra291XCA7CivkuIDoqp7kuIDoqp4gPCBpY2hpZ29pY2hpZ29cIDsKK+WbveWutuWFrOWLmeWToSA8IGtva2tha291bXVpblwgOwor5Y2K5a6Y5Y2K5rCRIDwgaGFua2FuaGFubWluXCA7Civlu7rnr4nlraYgPCBrZW5jaGlrdWdha3VcIDsKK+aVl+ihgOeXhyA8IGhhaWtldHN1c2hvdVwgOwor5aSn5Zu95Li7576pIDwgdGFpa29rdXNodWdpXCA7CivmtIvmnI3nrqrnrKUgPCB5b3VmdWt1ZGFuc3VcIDsKK+S4gOaWuemAmuihjCA8IGlwcG91dHN1dWtvdVwgOwor5Y+C6ICD5paH54yuIDwgc2Fua291YnVua2VuXCA7Civkv6Hku7DnrofmnaEgPCBzaGlua291a2Fqb3VcIDsKK+i+u+ekviA8IHRzdWppeWFzaGlyb1wgOwor5Y2B5LiA5pyIIDwganV1aWNoaWdhdHN1XCA7CivooovmiLjmo5ogPCBmdWt1cm90b2RhbmFcIDsKK+aLneeJqeaVmSA8IGhhaWJ1dHN1a3lvdVwgOwor5rCR6ZaT6LOH5pysIDwgbWlua2Fuc2hpaG9uXCA7CivlvqnorpDlv4MgPCBmdWt1c2h1dXNoaW5cIDsKK+S4gOaxgeS4gOiPnCA8IGljaGlqdXVpc3NhaVwgOwor5Y2B56iu56u25oqAIDwgamlzc2h1a3lvdWdpXCA7Civml6flubTmnKsgPCBreXV1bmVubWF0c3VcIDsKK+WkseiBt+iAhSA8IHNoaXNzaG9rdXNoYVwgOwor5YaF5Ymy5byVIDwgdWNoaXdhcmliaWtpXCA7CivluIzlnJ/poZ7lhYPntKAgPCBraWRvcnVpZ2Vuc29cIDsKK+W5s+WSjOWFseWtmCA8IGhlaXdha3lvdXpvblwgOwor5Y2Y57ea6YGL6LuiIDwgdGFuc2VuJyd1bnRlblwgOwor5LqL5b6M5om/6Ku+IDwgamlnb3Nob3VkYWt1XCA7Civlh7rnlKPnjocgPCBzaHVzc2Fucml0c3VcIDsKK+WGmeWun+eahCA8IHNoYWppdHN1dGVraVwgOwor5pig5YOP5L+h5Y+3IDwgZWl6b3VzaGluZ291XCA7Civlronlhajlr77nrZYgPCBhbnplbnRhaXNha3VcIDsKK+eUn+eUo+e1hOWQiCA8IHNlaXNhbmt1bWlhaVwgOwor5o6l57aa6aeFIDwgc2V0c3V6b2t1ZWtpXCA7CivlsYXkvY/msLTmupYgPCBreW9qdXVzdWlqdW5cIDsKK+ijvemJhOalrSA8IHNlaXRldHN1Z3lvdVwgOwor566X55So5pWw5a2XIDwgc2FuJyd5b3VzdXVqaVwgOwor5Ye655Sf546HIDwgc2h1c3NlaXJpdHN1XCA7Civlp4nlprnkvJrnpL4gPCBzaGltYWlnYWlzaGFcIDsKK+mBuOaMmeWFrOWgsSA8IHNlbmt5b2tvdWhvdVwgOwor5LuP5YOP5LqM5bqnIDwgYnV0c3V6b3VuaXphXCA7CivoprPlhYnml4XooYwgPCBrYW5rb3VyeW9rb3VcIDsKK+eglOeptuiqsumhjCA8IGtlbmt5dXVrYWRhaVwgOwor6YeR5ou+5LiH5YaGIDwga2luanV1bWFuJydlblwgOwor5bGO5bC/5Yem55CGIDwgc2hpbnlvdXNob3JpXCA7CivnnYDnianlp78gPCBraW1vbm9zdWdhdGFcIDsKK+WVhuS6i+S8muekviA8IHNob3VqaWdhaXNoYVwgOwor56mN5qW1562WIDwgc2Vra3lva3VzYWt1XCA7Civpm4blkIjloLTmiYAgPCBzaHV1Z291YmFzaG9cIDsKK+W9ouWuueipnuW5uSA8IGtlaXlvdXNoaWthblwgOwor5p2h5Lu25Y+N5bCEIDwgam91a2VuaGFuc2hhXCA7CivlsI/mlofnr4AgPCBzaG91YnVuc2V0c3VcIDsKK+e1hOe5lOWKmyA8IHNvc2hpa2lyeW9rdVwgOwor5L+h5b6S5Lyd5YuVIDwgc2hpbnRvZGVuZG91XCA7CivmnInmlpnpgZPot68gPCB5dXVyeW91ZG91cm9cIDsKK+alreWLmeWmqOWusyA8IGd5b3VtdWJvdWdhaVwgOwor6Zi/54mH5Lit5q+SIDwgYWhlbmNodXVkb2t1XCA7CivntLDog57ono3lkIggPCBzYWlib3V5dXVnb3VcIDsKK+aWreeGseadkCA8IGRhbicnbmV0c3V6YWlcIDsKK+WQjeS6uuawl+izqiA8IG1laWppbmthdGFnaVwgOwor6YO15pS/5aSn6IejIDwgeXV1c2VpZGFpamluXCA7Civpm7vmsJfmjoPpmaTmqZ8gPCBkZW5raXNvdWppa2lcIDsKK+S6uuaoqeaTgeittyA8IGppbmtlbicneW91Z29cIDsKK+WFhOW8n+WWp+WYqSA8IGt5b3VkYWlnZW5rYVwgOwor6JGX5L2c54mpIDwgY2hvc2FrdWJ1dHN1XCA7Civnm7Lmu4Xms5UgPCBtZWt1cmFtZXBwb3VcIDsKK+W3oeiIqumAn+W6piA8IGp1bmtvdXNva3Vkb1wgOwor5LiA5aSc5aSn6IejIDwgaWNoaXlhZGFpamluXCA7CivpmYTnnYDlipsgPCBmdWNoYWt1cnlva3VcIDsKK+eNheWtkOWlrui/hSA8IHNoaXNoaWZ1bmppblwgOwor5ryC5rWB5pyoIDwgaHlvdXJ5dXVib2t1XCA7CivntLPlo6vpnbQgPCBzaGluc2hpZ3V0c3VcIDsKK+mWqOengOS9nOWutiA8IGtlaXNodXVzYWtrYVwgOwor5rWa5rir6Ii5IDwgc2h1bnNldHN1c2VuXCA7Civmt7HlsbHng48gPCBtaXlhbWFnYXJhc3VcIDsKK+WwgumWgOWtpuagoSA8IHNlbm1vbmdha2tvdVwgOwor5pS56Z2p6YGO56iLIDwga2Fpa2FrdWthdGVpXCA7Civnt4rmgKXmjqrnva4gPCBraW5reXV1c29jaGlcIDsKK+eUu+ernOWkqeedmyA8IGdhcnlvdXRlbnNlaVwgOwor5LiA6YCy5LiA6YCAIDwgaXNzaGluJydpdHRhaVwgOwor55Sf6Iet54mpIDwgbmFtYWd1c2Ftb25vXCA7CivlrprluLjnirbmhYsgPCB0ZWlqb3Vqb3V0YWlcIDsKK+WvqeWIpOW9uSA8IHNoaW5wYW4nJ3lha3VcIDsKK+aMh+aVsOmWouaVsCA8IHNoaXN1dWthbnN1dVwgOwor56mN5qW155qEIDwgc2Vra3lva3V0ZWtpXCA7CivoqabpqJPnp5Hnm64gPCBzaGlrZW5rYW1va3VcIDsKK+eBveWus+aVkeWKqSA8IHNhaWdhaWt5dXVqb1wgOwor55m65aOy5YWDIDwgaGF0c3ViYWltb3RvXCA7Civlhrbph5HlrabogIUgPCB5YWtpbmdha3VzaGFcIDsKK+WcsOaWuemKgOihjCA8IGNoaWhvdWdpbmtvdVwgOwor5LuP6aCC6Z2iIDwgYnV0Y2hvdWR6dXJhXCA7CivntYzmuIjnmbrlsZUgPCBrZWl6YWloYXR0ZW5cIDsKK+eJueauiuWFteWZqCA8IHRva3VzaHVoZWlraVwgOwor5rW35Lit5YWs5ZySIDwga2FpY2h1dWtvdWVuXCA7Civlm6PkvZPml4XooYwgPCBkYW50YWlyeW9rb3VcIDsKK+S4ieWPieelnue1jCA8IHNhbnNhc2hpbmtlaVwgOwor5qyy5rGC5LiN5rqAIDwgeW9ra3l1dWZ1bWFuXCA7Civoi6XntKsgPCB3YWthbXVyYXNha2lcIDsKK+e1guWknOWWtualrSA8IHNodXV5YWVpZ3lvdVwgOwor5Zyw5LiL57WE57mUIDwgY2hpa2Fzb3NoaWtpXCA7CivogJDpnIflrrblsYsgPCB0YWlzaGlua2Fva3VcIDsKK+ato+S4ieinkuW9oiA8IHNlaXNhbmtha2tlaVwgOwor6LWw6KGM6LuK57eaIDwgc291a291c2hhc2VuXCA7CivnqbrmsJfoqr/mlbQgPCBrdXVraWNob3VzZWlcIDsKK+mBi+WLleelnue1jCA8IHVuZG91c2hpbmtlaVwgOwor5Y+X6IOO5ZGK55+lIDwganV0YWlrb2t1Y2hpXCA7Civlj5blvJXpq5ggPCB0b3JpaGlraWRha2FcIDsKK+ino+etlOeUqOe0mSA8IGthaXRvdXlvdXNoaVwgOwor5LiN5omA5a2Y6ICFIDwgZnVzaG96b25tb25vXCA7CivnlbPpsK8gPCB0YXRhbWlpd2FzaGlcIDsKK+mXluWFpeiAhSA8IGNoaW4nJ255dXVzaGFcIDsKK+avrOagl+mgrSA8IGlnYWd1cmlhdGFtYVwgOwor5bu656+J5LitIDwga2VuY2hpa3VjaHV1XCA7CivlvLHlsI/lm70gPCBqYWt1c2hvdWtva3VcIDsKK+WKoOW3peeUo+alrSA8IGtha291c2FuZ3lvdVwgOwor55m65aOy5LitIDwgaGF0c3ViYWljaHV1XCA7Civopo/moLzljp/moYggPCBraWtha3VnZW4nJ2FuXCA7CivlkozprYLmtIvmiY0gPCB3YWtvbicneW91c2FpXCA7Civlj43miKbpgYvli5UgPCBoYW5zZW4nJ3VuZG91XCA7Civoq7jooYznhKHluLggPCBzaG9neW91bXVqb3VcIDsKK+Wlkee0hOacn+mWkyA8IGtlaXlha3VraWthblwgOwor5Lq65paH56eR5a2mIDwgamluYnVua2FnYWt1XCA7CivkuIDkurrkuIDkurogPCBoaXRvcmliaXRvcmlcIDsKK+WKseaMr+e0oOWtkCA8IHJlaXNoaW5zb3NoaVwgOwor5b6p6K6Q5YqHIDwgZnVrdXNodXVnZWtpXCA7Civlroflrpnlt6XlraYgPCB1Y2h1dWtvdWdha3VcIDsKK+S6i+WJjeaXpeS7mCA8IGppemVuaGlkenVrZVwgOwor6Ieq5a625pKe552AIDwgamlrYWRvdWNoYWt1XCA7Civnn7PngbDogqXmlpkgPCBzZWtrYWloaXJ5b3VcIDsKK+WFrOebiuWEquWFiCA8IGtvdWVraXl1dXNlblwgOwor5LiL5LuV5LqLIDwgc2hpdGFzaGlnb3RvXCA7CivolpTolofljYHlrZflm6MgPCBiYXJhanV1amlkYW5cIDsKK+aXpeixiuacrOe3miA8IG5pcHBvdWhvbnNlblwgOwor55+z5rK55YyW5a2mIDwgc2VraXl1a2FnYWt1XCA7CivmtojmpbXmgKcgPCBzaG91a3lva3VzZWlcIDsKK+ebuOWvvumAn+W6piA8IHNvdXRhaXNva3Vkb1wgOwor6buS5a2X5YCS55SjIDwga3Vyb2ppdG91c2FuXCA7Civph5HmrKDnl4UgPCBraW5rZXRzdWJ5b3VcIDsKK+iBtOimlueOhyA8IGNob3VzaGlyaXRzdVwgOwor5YaF5oaC5aSW5oKjIDwgbmFpeXV1Z2Fpa2FuXCA7CivplqLmlbDnqbrplpMgPCBrYW5zdXVrdXVrYW5cIDsKK+S7mOWxnueXhemZoiA8IGZ1em9rdWJ5b3VpblwgOwor6Ieo5bqK5Yy75a2mIDwgcmluc2hvdWlnYWt1XCA7CivnsbPmtbflhbXpmoogPCBiZWlrYWloZWl0YWlcIDsKK+a3seWxseahnCA8IG1peWFtYXpha3VyYVwgOwor5oux5omL5YKN6KazIDwga291c2h1Ym91a2FuXCA7CivpoIbms5Xpl5jkuokgPCBqdW5wb3V0b3Vzb3VcIDsKK+izquWVj+iAhSA8IHNoaXRzdW1vbnNoYVwgOwor5oim6ZeY6Zmj5ZywIDwgc2VudG91amluY2hpXCA7CivkuIDmjJnkuIDli5UgPCBpa2t5b2ljaGlkb3VcIDsKK+WogeWah+WwhOaSgyA8IGlrYWt1c2hhZ2VraVwgOwor5a6f5Zyw6Kmm6aiTIDwgaml0Y2hpc2hpa2VuXCA7CivkuK3plpPmma/msJcgPCBjaHV1a2Fua2Vpa2lcIDsKK+WPuOaVmeaoqeW6pyA8IHNoaWt5b3VrZW56YVwgOwor56m657SE5p2fIDwga2FyYXlha3Vzb2t1XCA7CivlpInmm7TlsaXmrbQgPCBoZW5rb3VyaXJla2lcIDsKK+mAo+aIpumAo+aVlyA8IHJlbnNlbnJlbnBhaVwgOwor5q2v5qe96Ia/5ryPIDwgc2hpc291bm91cm91XCA7CivntKDnspLlrZDoq5YgPCBzb3J5dXVzaGlyb25cIDsKK+ihm+aYn+S4ree2mSA8IGVpc2VpY2h1dWtlaVwgOwor5o6l57aa6KmeIDwgc2V0c3V6b2t1c2hpXCA7CivlnKflu7blt6XloLQgPCBhdHN1ZW5rb3Vqb3VcIDsKK+WIhuWoqeiHpeW6iiA8IGJ1bmJlbmdhc2hvdVwgOwor5Lq66YCg57W557O4IDwgamluem91a2Vuc2hpXCA7Civnl5Xot6HlmajlrpggPCBrb25zZWtpa2lrYW5cIDsKK+aKuemmmemvqCA8IG1ha2tvdWt1amlyYVwgOwor6JuN5YWJ5aGX5paZIDwga2Vpa291dG9yeW91XCA7CivlhazliKToqr/mn7sgPCBrb3VoYW5jaG91c2FcIDsKK+mAo+e1oeS8muitsCA8IHJlbnJha3VrYWlnaVwgOwor5YWs5pWZ6KaB55CGIDwga291a3lvdXlvdXJpXCA7CivoirHnm5fkurogPCBoYW5hbnVzdWJpdG9cIDsKK+S5vueHpeWupCA8IGthbnNvdXNoaXRzdVwgOwor6aqo6JGj5ZOB5bqXIDwga290dG91aGludGVuXCA7CivljYHkuozmjIfohbggPCBqdXVuaXNoaWNob3VcIDsKK+ebsuaapiA8IG1la3VyYWdveW9taVwgOwor6LKh5pS/5ZWP6aGMIDwgemFpc2VpbW9uZGFpXCA7CivoqIDoqp7lrabogIUgPCBnZW5nb2dha3VzaGFcIDsKK+Wwv+avkueXhyA8IG55b3Vkb2t1c2hvdVwgOwor6YeR6J6N5qmf6ZaiIDwga2luJyd5dXVraWthblwgOwor55Sw5ZyS6Kmp5Lq6IDwgZGVuJydlbnNoaWppblwgOwor562J5q+U57Sa5pWwIDwgdG91aGlreXV1c3V1XCA7CivohbnpvJMgPCBoYXJhdHN1ZHp1bWlcIDsKK+mBk+WMluW9ueiAhSA8IGRvdWtleWFrdXNoYVwgOwor55mH55mq546JIDwga2Fuc2hha3VkYW1hXCA7CivmtKXmtKXmtabmtaYgPCB0c3VkenV1cmF1cmFcIDsKK+S5vueHpeWcsOW4ryA8IGthbnNvdWNoaXRhaVwgOwor6Z+z56+A5Li76Z+zIDwgb25zZXRzdXNodW9uXCA7CivoiKrmtbfml6XoqowgPCBrb3VrYWluaXNzaGlcIDsKK+WNiuWwgeW7uuaApyA8IGhhbmhvdWtlbnNlaVwgOwor5oGL5oSb6Zai5L+CIDwgcmVuJydhaWthbmtlaVwgOwor5oiQ6ZW36YGO56iLIDwgc2VpY2hvdWthdGVpXCA7CivpgKPluK/kv53oqLwgPCByZW50YWlob3Nob3VcIDsKK+W/g+iHk+iCpeWkpyA8IHNoaW56b3VoaWRhaVwgOwor5LiA5Lq654mpIDwgaWNoaWppbmJ1dHN1XCA7CivljZTntITlm70gPCBreW91eWFrdWtva3VcIDsKK+WkqeWjjOeEoeeqriA8IHRlbmpvdW11a3l1dVwgOwor5YWo6Lqr6bq76YWUIDwgemVuc2hpbm1hc3VpXCA7CivmnKvku6PniakgPCBtYXRzdWRhaW1vbm9cIDsKK+Wbnue3muS6pOaPmyA8IGthaXNlbmtvdWthblwgOwor6Ly45YWl5Yi26ZmQIDwgeXVueXV1c2VpZ2VuXCA7CivliYPliIDosqAgPCBrYW1pc29yaW1ha2VcIDsKK+S4gOi2s+WFiCA8IGhpdG9hc2hpc2FraVwgOwor5p6c54mp57GgIDwga3VkYW1vbm9rYWdvXCA7CivkuJbplpPoqbEgPCBzZWtlbmJhbmFzaGlcIDsKK+ihjOalveWuoiA8IGtvdXJha3VreWFrdVwgOwor5qeL6YCg5LiN5rOBIDwga291em91ZnVreW91XCA7CivntIvnmb3onbYgPCBtb25zaGlyb2Nob3VcIDsKK+WFpea5r+WuoiA8IG55dXV0b3VreWFrdVwgOwor6Ieq5bex5YWx5b25IDwgamlrb2t5b3V5YWt1XCA7Civlr4zlo6vngavlsbHluK8gPCBmdWppa2F6YW50YWlcIDsKK+mXh+WPluW8lSA8IHlhbWl0b3JpaGlraVwgOwor5qeL5oiQ5YiG5a2QIDwga291c2VpYnVuc2hpXCA7CivmmJ/luqfmipXlvbHmqZ8gPCBzZWl6YXRvdWVpa2lcIDsKK+W4guWgtOWxlemWiyA8IHNoaWpvdXRlbmthaVwgOwor5bqX6aCt6LKp5aOyIDwgdGVudG91aGFuYmFpXCA7CivpgLLmsLTlvI8gPCBzaGluc3Vpc2hpa2lcIDsKK+S7ruaJlemHkSA8IGthcmliYXJhaWtpblwgOwor57SZ5bGR57GgIDwga2FtaWt1enVrYWdvXCA7Civkub7nh6XljbUgPCBrYW5zb3V0YW1hZ29cIDsKK+WQiOWUsemaiuWToSA8IGdhc3Nob3V0YWlpblwgOwor57WM6LK75YmK5ribIDwga2VpaGlzYWt1Z2VuXCA7CivmlofoirjlvqnoiIggPCBidW5nZWlmdWtrb3VcIDsKK+eSsOWkquW5s+a0iyA8IGthbnRhaWhlaXlvdVwgOwor5ZCN576p5pu45o+bIDwgbWVpZ2lrYWtpa2FlXCA7Civnt5HlhoXpmpwgPCByeW9rdW5haXNob3VcIDsKK+mHjeWkp+WVj+mhjCA8IGp1dWRhaW1vbmRhaVwgOwor6Z2e56eR5a2m55qEIDwgaGlrYWdha3V0ZWtpXCA7CivpmZDlrprmiKbkuokgPCBnZW50ZWlzZW5zb3VcIDsKK+altealvemzpSA8IGdva3VyYWt1Y2hvdVwgOwor5qyn5bee5aeU5ZOh5LyaIDwgb3VzaHV1aWlua2FpXCA7CivkuI3lnKjoqLzmmI4gPCBmdXphaXNob3VtZWlcIDsKK+izg+iyuOWAnyA8IGNoaW50YWlzaGFrdVwgOwor5Yy75a2m5Y2a5aOrIDwgaWdha3VoYWt1c2hpXCA7CivmoYjlhoXmm7jlkYggPCBhbicnbmFpc2hvdGVpXCA7CivlsILliLblkJvkuLsgPCBzZW5zZWlrdW5zaHVcIDsKK+WLpOWLmeWun+e4viA8IGtpbm11amlzc2VraVwgOwor5qmf5a+G5LqL6aCFIDwga2ltaXRzdWppa291XCA7Civml6nmnJ/oqLrmlq0gPCBzb3VraXNoaW5kYW5cIDsKK+WRiueZuuiAhSA8IGtva3VoYXRzdXNoYVwgOwor5YGc5q2i5L6h5qC8IDwgdGVpc2hpa2FrYWt1XCA7CivoqJjmhrblrrnph48gPCBraW9rdXlvdXJ5b3VcIDsKK+WHuueUn+mBjuWJsCA8IHNodXNzZWlrYWpvdVwgOwor5byV6YCA6IiI6KGMIDwgaW50YWlrb3VneW91XCA7CivkuInlkbPnt5rlvL4gPCBzaGFtaXNlbmhpa2lcIDsKK+ippumok+autemajiA8IHNoaWtlbmRhbmthaVwgOwor55m96KGA55eFIDwgaGFra2V0c3VieW91XCA7Civou43kuovku4vlhaUgPCBndW5qaWthaW55dXVcIDsKK+aUv+ayu+mBk+W+syA8IHNlaWppZG91dG9rdVwgOwor5Zu95Za25LyB5qWtIDwga29rdWVpa2lneW91XCA7CivluLDlt6PmnKzog70gPCBraXNvdWhvbicnbm91XCA7CivkuKHmgKflhbfmnIkgPCByeW91c2VpZ3V5dXVcIDsKK+m7hOmHkeS4h+iDvSA8IG91Z29uYmFuJydub3VcIDsKK+ecn+ePoOizqiA8IHNoaW5qdXNoaXRzdVwgOwor5ouF5b2T6Kqy6ZW3IDwgdGFudG91a2FjaG91XCA7Civmt7fmiJDnq7bmioAgPCBrb25zZWlreW91Z2lcIDsKK+WKtOWDjeaUu+WLoiA8IHJvdWRvdWtvdXNlaVwgOwor54mH5bGx6YeMIDwga2F0YXlhbWF6YXRvXCA7Civni6znq4vnpa0gPCBkb2t1cml0c3VzYWlcIDsKK+mWkeipseS8kemhjCA8IGthbndha3l1dWRhaVwgOwor5YaF5oeQIDwgdWNoaWJ1dG9rb3JvXCA7CivkuojntITkv4IgPCB5b3lha3VnYWthcmlcIDsKK+W9ueWLmeizoOWEnyA8IGVraW11YmFpc2hvdVwgOwor5bmz5ZKM55Sj5qWtIDwgaGVpd2FzYW5neW91XCA7CivljbDosaHmibnoqZUgPCBpbnNob3VoaWh5b3VcIDsKK+WBnOa7nuWJjee3miA8IHRlaXRhaXplbnNlblwgOwor5rCR6ZaT5pS+6YCBIDwgbWlua2FuaG91c291XCA7CivlsZ7lnLDkuLvnvqkgPCB6b2t1Y2hpc2h1Z2lcIDsKK+S4iuS9jeS6kuaPm+aApyA8IGpvdWlnb2thbnNlaVwgOwor5Ye654mI6YOo5pWwIDwgc2h1cHBhbmJ1c3V1XCA7Civoh6rli5XkurrlvaIgPCBqaWRvdW5pbmd5b3VcIDsKK+aEj+W/l+iWhOW8sSA8IGlzaGloYWt1amFrdVwgOwor5b+D55CG5oim5LqJIDwgc2hpbnJpc2Vuc291XCA7CivoqrLnqI7miYDlvpcgPCBrYXplaXNob3Rva3VcIDsKK+a1geihjOS9nOWutiA8IHJ5dXVrb3VzYWtrYVwgOwor5qC55rCX5LuV5LqLIDwga29ua2lzaGlnb3RvXCA7Civpu4Tnt5HoibIgPCBvdXJ5b2t1c2hva3VcIDsKK+i7veeKr+e9quazlSA8IGtlaWhhbnphaWhvdVwgOwor5o+j5pGp5oa25risIDwgc2hpbWFva3Vzb2t1XCA7CivmlLnkv67lt6XkuosgPCBrYWlzaHV1a291amlcIDsKK+WvvuaKl+aEj+itmCA8IHRhaWtvdWlzaGlraVwgOwor5YmN6YCy5YqbIDwgemVuc2hpbnJ5b2t1XCA7CivpgZPot6/kuqTpgJogPCBkb3Vyb2tvdXRzdXVcIDsKK+azleW7t+S+rui+sSA8IGhvdXRlaWJ1am9rdVwgOwor5YWJ5a2m5qmf5qKwIDwga291Z2FrdWtpa2FpXCA7CivohLHlrZfoqJjlj7cgPCBkYXRzdWppa2lnb3VcIDsKK+eiuueOh+irliA8IGtha3VyaXRzdXJvblwgOwor54us56uL54+tIDwgZG9rdXJpdHN1aGFuXCA7CivlhazmnInmsLTpnaIgPCBrb3V5dXVzdWltZW5cIDsKK+etieWcp+W8jyA8IHRvdWF0c3VzaGlraVwgOwor6Zmw5oCn5Y+N5b+cIDwgaW5zZWloYW4nJ25vdVwgOwor57Sg5Lq6562LIDwgc2hpcm91dG9zdWppXCA7Civnvo7kurrlsYAgPCB0c3V0c3Vtb3Rhc2VcIDsKK+WAn+WcsOaWmSA8IHNoYWt1Y2hpcnlvdVwgOwor6buE54ax55eFIDwga291bmV0c3VieW91XCA7CivlnYfooaHntYzmuIggPCBraW5rb3VrZWl6YWlcIDsKK+aKleelqOeOhyA8IHRvdWh5b3VyaXRzdVwgOwor6bC75Li8IDwgdW5hZ2lkb25idXJpXCA7CivomK3moL3ln7nms5UgPCByYW5zYWliYWlob3VcIDsKK+atpuijhembhuWboyA8IGJ1c291c2h1dWRhblwgOwor6ISF6L+r55qEIDwga3lvdWhha3V0ZWtpXCA7CivljbDpkZHoqLzmmI4gPCBpbmthbnNob3VtZWlcIDsKK+Wfn+WGheiyv+aYkyA8IGlraW5haWJvdWVraVwgOwor5L2/5b6S6KGM5LydIDwgc2hpdG9neW91ZGVuXCA7CivkvbPkurroloTlkb0gPCBrYWppbmhha3VtZWlcIDsKK+aUvuWwhOe3muenkeWMuyA8IGhvdXNoYXNlbmthaVwgOwor5pyJ5L2T6LOH55SjIDwgeXV1dGFpc2hpc2FuXCA7Civlr77ms7DplqLkv4IgPCB0YWl0YWlrYW5rZWlcIDsKK+asp+W3numAo+WQiCA8IG91c2h1dXJlbmdvdVwgOwor5aWz5a2Q5a2m55SfIDwgam9zaGlnYWt1c2VpXCA7Civlm6PntZDlv4MgPCBkYW5rZXRzdXNoaW5cIDsKK+WNmOe0lOW5s+WdhyA8IHRhbmp1bmhlaWtpblwgOwor6LOq5ZWP5pu4IDwgc2hpdHN1bW9uc2hvXCA7Civlho3luqbnorroqo0gPCBzYWlkb2tha3VuaW5cIDsKK+msvOmdouS8neW/gyA8IGtpbWVuZGVuc2hpblwgOwor6LK/5piT6buS5a2XIDwgYm91ZWtpa3Vyb2ppXCA7CivntYTlkIjlk6HoqLwgPCBrdW1pYWlpbnNob3VcIDsKK+eGn+afv+S4u+e+qSA8IGp1a3VzaGlzaHVnaVwgOwor5Lit56uL5oCnIDwgY2h1dXJpdHN1c2VpXCA7CivlhrfmiL/oo4Xnva4gPCByZWlib3Vzb3VjaGlcIDsKK+ePvuWcsOeUn+eUoyA8IGdlbmNoaXNlaXNhblwgOwor5paw6IGe6KiY6ICFIDwgc2hpbmJ1bmtpc2hhXCA7CivlkYrnmbrnirYgPCBrb2t1aGF0c3Vqb3VcIDsKK+Wkp+WxsemztOWLlSA8IHRhaXphbm1laWRvdVwgOwor5rOi54q25pS75pKDIDwgaGFqb3Vrb3VnZWtpXCA7CivljZjoqJjmipXnpaggPCB0YW5raXRvdWh5b3VcIDsKK+S4gOasoemWouaVsCA8IGljaGlqaWthbnN1dVwgOwor5bm85b2i6YCy5YyWIDwgeW91a2Vpc2hpbmthXCA7Civlj43lvqnoqqwgPCBoYW5wdWt1c2V0c3VcIDsKK+WNsOWIt+ihkyA8IGluc2F0c3VqdXRzdVwgOwor6IO95Yqb57WmIDwgbm91cnlva3VreXV1XCA7CivpnZLnianluILloLQgPCBhb21vbm9pY2hpYmFcIDsKK+WtpueUn+mBi+WLlSA8IGdha3VzZWl1bmRvdVwgOwor5aCx5b6p5o6q572uIDwgaG91ZnVrdXNvY2hpXCA7Civlm57lvqnlj6/og70gPCBrYWlmdWt1a2Fub3VcIDsKK+ato+inkuWumuacqCA8IHNlaWtha3Vqb3VnaVwgOwor5q205Y+y5Zyw55CGIDwgcmVraXNoaWNoaXJpXCA7Civnt7Tnv5Lmm7IgPCByZW5zaHV1a3lva3VcIDsKK+W5tOS4reeEoeS8kSA8IG5lbmp1dW11a3l1dVwgOwor5Luj5pWw55qE5ZKMIDwgZGFpc3V1dGVraXdhXCA7CivotoXog73lipsgPCBjaG91bm91cnlva3VcIDsKK+W3puWPs+ebuOensCA8IHNheXV1c291c2hvdVwgOwor5qC45YiG6KOCIDwga2FrdWJ1bnJldHN1XCA7CivluJ3lm73kuLvnvqkgPCB0ZWlrb2t1c2h1Z2lcIDsKK+ilv+a0i+advumcsiA8IHNlaXlvdXNob3Vyb1wgOwor5Zue6Lui5YuY5a6aIDwga2FpdGVua2Fuam91XCA7Civkvp3oqJflsITmkoMgPCBpdGFrdXNoYWdla2lcIDsKK+ato+imj+ihqOePviA8IHNlaWtpaHlvdWdlblwgOwor54us56uL5qipIDwgZG9rdXJpdHN1a2VuXCA7Civnt4/poJjkuovppKggPCBzb3VyeW91amlrYW5cIDsKK+W+heWuteiNiSA8IG1hdHN1eW9pZ3VzYVwgOwor5LiA5Lq65aiYIDwgaGl0b3JpbXVzdW1lXCA7Civnm5fpm6PpmLLmraIgPCB0b3VuYW5ib3VzaGlcIDsKK+a7heengeWlieWFrCA8IG1lc3NoaWhvdWtvdVwgOwor5Zu956iO5bGAIDwga29rdXplaWt5b2t1XCA7Civnt4/lkIjnp5HlraYgPCBzb3Vnb3VrYWdha3VcIDsKK+aLmOadn+aZgumWkyA8IGtvdXNva3VqaWthblwgOwor5Zub5pa55YWr5pa5IDwgc2hpaG91aGFwcG91XCA7CivkuLvopoHoq7jlhYMgPCBzaHV5b3VzaG9nZW5cIDsKK+WNgeWIhuadoeS7tiA8IGp1dWJ1bmpvdWtlblwgOwor5pmC5Luj5oCd5r2uIDwgamlkYWlzaGljaG91XCA7Civku6PnkIbmipXnpaggPCBkYWlyaXRvdWh5b3VcIDsKK+WPpOWFuOmfs+alvSA8IGtvdGVuJydvbmdha3VcIDsKK+mKgOihjOW8t+eblyA8IGdpbmtvdWdvdXRvdVwgOwor5LiA6Z2i6K2YIDwgaWNoaW1lbnNoaWtpXCA7Civlh7rpoZjogIUgPCBzaHV0c3VnYW5zaGFcIDsKK+i1t+eIhuijhee9riA8IGtpYmFrdXNvdWNoaVwgOwor6YCu5o2V6Kix6Ku+IDwgdGFpaG9reW9kYWt1XCA7Civour7mlrkgPCBzaGl0c3VrZWthdGFcIDsKK+atr+eJmeeWvuaCoyA8IHNoaWdhc2hpa2thblwgOwor5Yu/5b+Y6I2JIDwgd2FzdXJlbmFndXNhXCA7CivlvLfntr/olqwgPCBreW91bWVuJyd5YWt1XCA7CivlhbHlkIznpZbnlYwgPCBreW91ZG91c29rYWlcIDsKK+ayueaWreWkp+aVtSA8IHl1ZGFudGFpdGVraVwgOwor5YO75b+DIDwgaGlnYW1pZ29rb3JvXCA7CivlsILmpa3ovrLlrrYgPCBzZW5neW91bm91a2FcIDsKK+eGseWPr+WhkeaApyA8IG5ldHN1a2Fzb3NlaVwgOwor5qK25pyo6a6qIDwga2FqaWtpbWFndXJvXCA7CivluILmnInosqHnlKMgPCBzaGl5dXV6YWlzYW5cIDsKK+WbveWutuizoOWEnyA8IGtva2thYmFpc2hvdVwgOwor5aSx5piO6ICFIDwgc2hpdHN1bWVpc2hhXCA7CivpnZnmhYvnt4/oqIggPCBzZWl0YWlzb3VrZWlcIDsKK+WwgumWgOmbkeiqjCA8IHNlbm1vbnphc3NoaVwgOwor5by+5Li45YiX6LuKIDwgZGFuZ2FucmVzc2hhXCA7CivlpbPpgZPmpb0gPCBvbicnbmFkb3VyYWt1XCA7CivlpKfmraPmmYLku6MgPCB0YWlzaG91amlkYWlcIDsKK+ioreioiOWkieabtCA8IHNla2tlaWhlbmtvdVwgOwor5LqG6Kej5LqL6aCFIDwgcnlvdWthaWppa291XCA7Civlrp/pqJPmrrXpmo4gPCBqaWtrZW5kYW5rYWlcIDsKK+aIkOmVt+eOhyA8IHNlaWNob3VyaXRzdVwgOwor56K65a6f5oCnIDwga2FrdWppdHN1c2VpXCA7Civlrpjlg5rmlL/msrsgPCBrYW5yeW91c2VpamlcIDsKK+S6uueoruWVj+mhjCA8IGppbnNodW1vbmRhaVwgOwor5ryU57+S5ZWP6aGMIDwgZW5zaHV1bW9uZGFpXCA7CivlirTlg43ntYTlkIggPCByb3Vkb3VrdW1pYWlcIDsKK+eBq+eCjuaUvuWwhOWZqCA8IGthZW5ob3VzaGFraVwgOwor5ZCI5ZCM5aeU5ZOh5LyaIDwgZ291ZG91aWlua2FpXCA7Civphofpoqjnvo7kv5cgPCBqdW5wdXViaXpva3VcIDsKK+akv+ayuSA8IHRzdWJha2lhYnVyYVwgOwor6buS6KOF5p2fIDwga3Vyb3Nob3V6b2t1XCA7Civmn4/ppIUgPCBrYXNoaXdhbW9jaGlcIDsKK+mAoOWPjeacieeQhiA8IHpvdWhhbicneXV1cmlcIDsKK+a2iOiyu+aAp+WQkSA8IHNob3VoaXNlaWtvdVwgOwor5b6h55So5paw6IGeIDwgZ295b3VzaGluYnVuXCA7CivlhazlrprkvqHmoLwgPCBrb3V0ZWlrYWtha3VcIDsKK+WghuepjeS9nOeUqCA8IHRhaXNla2lzYXlvdVwgOwor5pS75a6I5ZCM55ufIDwga291c2h1ZG91bWVpXCA7Civlt6Xnp5HlpKflraYgPCBrb3VrYWRhaWdha3VcIDsKK+ekvuWFrOmAo+WQiCA8IHNoYWtvdXJlbmdvdVwgOwor6LuN5LqL5pWZ57e0IDwgZ3VuamlreW91cmVuXCA7CivlubPlkozmnaHntIQgPCBoZWl3YWpvdXlha3VcIDsKK+eEoeizh+agvOiAhSA8IG11c2hpa2FrdXNoYVwgOwor54ax5ouh5pWjIDwgbmV0c3VrYWt1c2FuXCA7Civnm7jmrrrplqLnqI4gPCBzb3VzYWlrYW56ZWlcIDsKK+WNs+aZguWBnOaIpiA8IHNva3VqaXRlaXNlblwgOwor5p+E6aCtIDwgdHN1a2FnYXNoaXJhXCA7CivmuKzlnLDooZvmmJ8gPCBzb2t1Y2hpZWlzZWlcIDsKK+epuuS4rea1rumBiiA8IGt1dWNodXVmdXl1dVwgOwor5b+g6Iej6JS1IDwgY2h1dXNoaW5ndXJhXCA7Civli5XnianlraYgPCBkb3VidXRzdWdha3VcIDsKK+S4gOaemuS4iyA8IGljaGltYWlzaGl0YVwgOwor5L+h55So6KmQ5qy6IDwgc2hpbicneW91c2FnaVwgOwor6Iez5p2x5LqsIDwgaXRhcnV0b3VreW91XCA7Civni6znq4vmgKcgPCBkb2t1cml0c3VzZWlcIDsKK+aYjuecuOeak+atryA8IG1laWJvdWtvdXNoaVwgOwor5LiK562J5YW15pu5IDwgam91dG91aGVpc291XCA7Civph5HliKnmlL/nrZYgPCBraW5yaXNlaXNha3VcIDsKK+iNieagueacqOeariA8IHNvdWtvbm1va3VoaVwgOwor6Zuo5b6M6ZuqIDwgYW1lbm9jaGl5dWtpXCA7CivlirTlg43ngb3lrrMgPCByb3Vkb3VzYWlnYWlcIDsKK+aOqOWumuW5tOm9oiA8IHN1aXRlaW5lbnJlaVwgOwor6YG655Sj566h55CG5Lq6IDwgaXNhbmthbnJpbmluXCA7Civosr/mmJPkvp3lrZjluqYgPCBib3Vla2lpem9uZG9cIDsKK+aXpeacrOaWh+WtpiA8IG5paG9uYnVuZ2FrdVwgOwor5YWr55uu6bC7IDwgeWF0c3VtZXVuYWdpXCA7Civlrp/pqJPnp5HlraYgPCBqaWtrZW5rYWdha3VcIDsKK+WKtOWDjeWnlOWToeS8miA8IHJvdWRvdWlpbmthaVwgOwor5aSp54uX6KmxIDwgdGVuZ3ViYW5hc2hpXCA7CivmoYjlhoXkv4IgPCBhbicnbmFpZ2FrYXJpXCA7CivljbHpmbrkv6Hlj7cgPCBraWtlbnNoaW5nb3VcIDsKK+a1geihjOiJsiA8IHJ5dXVrb3VzaG9rdVwgOwor6Y2+5Lmz55+zIDwgc2hvdW55dXVzZWtpXCA7Civopb/mrKfoq7jlm70gPCBzZWlvdXNob2tva3VcIDsKK+aOpee2muaApyA8IHNldHN1em9rdXNlaVwgOwor5aSc6ZaT5Za25qWtIDwgeWFrYW4nJ2VpZ3lvdVwgOwor5qih5Z6L6aOb6KGM5qmfIDwgbW9rZWloaWtvdWtpXCA7CivnnJ/lrp/mgKcgPCBzaGluaml0c3VzZWlcIDsKK+S9v+W+kuaJv+S8nSA8IHNoaXRvc2hvdWRlblwgOwor5Zu95a625Li75bitIDwga29ra2FzaHVzZWtpXCA7Civpm6ropovnga/nsaAgPCB5dWtpbWlkb3Vyb3VcIDsKK+S4u+W4reWIpOS6iyA8IHNodXNla2loYW5qaVwgOwor6aqo6IKJ6IWrIDwga290c3VuaWt1c2h1XCA7CivniqznlZznlJ8gPCBpbnVjaGlrdXNob3VcIDsKK+WumOijveiRieabuCA8IGthbnNlaWhhZ2FraVwgOwor5Lyd6KiY5paH5a2mIDwgZGVua2lidW5nYWt1XCA7CivliLbli5XmlL7lsIQgPCBzZWlkb3Vob3VzaGFcIDsKK+mgmOWPjuiovCA8IHJ5b3VzaHV1c2hvdVwgOwor5rOV5b6L6KGM54K6IDwgaG91cml0c3Vrb3VpXCA7CivlhbHnlKPlm73lrrYgPCBreW91c2Fua29ra2FcIDsKK+aVmeiCsuapn+mWoiA8IGt5b3Vpa3VraWthblwgOwor6Z2e5bi45L+h5Y+3IDwgaGlqb3VzaGluZ291XCA7Civpm6ropovpmpzlrZAgPCB5dWtpbWlzaG91amlcIDsKK+apn+ani+aUuemdqSA8IGtpa291a2Fpa2FrdVwgOwor5pi85YWJ6ImyIDwgY2h1dWtvdXNob2t1XCA7CivlvqHnjonmnZPlrZAgPCBvdGFtYWpha3VzaGlcIDsKK+acgOe1gue1kOaenCA8IHNhaXNodXVrZWtrYVwgOwor54m55oG16Zai56iOIDwgdG9ra2Vpa2FuemVpXCA7CivlnLDpnIfkuojnn6UgPCBqaXNoaW4nJ3lvY2hpXCA7CivlhbHlkIzli5/ph5EgPCBreW91ZG91Ym9raW5cIDsKK+S6i+WLmeW9k+WxgCA8IGppbXV0b3VreW9rdVwgOwor5LiJ5Y+36ZuR6KqMIDwgc2FuZ291emFzc2hpXCA7CivmvI/mtKnpm7vmtYEgPCByb3VlaWRlbnJ5dXVcIDsKK+Wuo+aIpuW4g+WRiiA8IHNlbnNlbmZ1a29rdVwgOwor5YWx55Sj5Zyw5Yy6IDwga3lvdXNhbmNoaWt1XCA7Civku6PnlKjmlZnlk6EgPCBkYWl5b3VreW91aW5cIDsKK+WMl+alteeGiiA8IGhva2t5b2t1Z3VtYVwgOwor5LiJ6KeS5a6a6KaPIDwgc2Fua2FrdWpvdWdpXCA7Civopb/mtIvlsIbmo4sgPCBzZWl5b3VzaG91Z2lcIDsKK+S/oeWPt+eEoeimliA8IHNoaW5nb3VtdXNoaVwgOwor5Zyf5Zyw5pS56Z2pIDwgdG9jaGlrYWlrYWt1XCA7CivngKzmiLjnianluIIgPCBzZXRvbW9ub2ljaGlcIDsKK+WPuOS7pOWupCA8IHNoaXJlaXNoaXRzdVwgOwor5a6J5YCN5bed6aSFIDwgYWJla2F3YW1vY2hpXCA7CivmnbHmrKfoq7jlm70gPCB0b3VvdXNob2tva3VcIDsKK+i3oeebruebuOe2miA8IGF0b21lc291em9rdVwgOwor5Lq65bel5ZG85ZC4IDwgamlua291a29reXV1XCA7Civkv4Tnm7IgPCBuaXdha2FtZWt1cmFcIDsKK+iIquepuumDteS+vyA8IGtvdWt1dXl1dWJpblwgOwor5Lim6KGM6Ly45YWlIDwgaGVpa291eXVueXV1XCA7CivntYzmuIjmoLzlt64gPCBrZWl6YWlrYWt1c2FcIDsKK+ekvuS8muizh+acrCA8IHNoYWthaXNoaWhvblwgOwor5aSW5Lqk54m55qipIDwgZ2Fpa291dG9ra2VuXCA7CivljbDliLfniakgPCBpbnNhdHN1YnV0c3VcIDsKK+alreWLmeaPkOaQuiA8IGd5b3VtdXRlaWtlaVwgOwor5r2c5Zyo5oSP6K2YIDwgc2VuemFpaXNoaWtpXCA7Civmir3osaHnmoQgPCBjaHV1c2hvdXRla2lcIDsKK+WItuW+oeijhee9riA8IHNlaWd5b3NvdWNoaVwgOwor55m95ouN5a2QIDwgc2hpcmFieW91c2hpXCA7Civmj5Dlh7rogIUgPCB0ZWlzaHV0c3VzaGFcIDsKK+aJgOaJgOaWueaWuSA8IHNob3Nob2hvdWJvdVwgOwor6ICQ5Zyn5YqbIDwgdGFpYXRzdXJ5b2t1XCA7Civlh7jpnaLpj6EgPCB0b3RzdW1lbmt5b3VcIDsKK+mrmOihgOWcpyA8IGtvdWtldHN1YXRzdVwgOwor5p+x5pmC6KiIIDwgaGFzaGlyYWRva2VpXCA7Civlm7rkvZPnh4PmlpkgPCBrb3RhaW5lbnJ5b3VcIDsKK+WCmOatr+i7iiA8IGthc2FoYWd1cnVtYVwgOwor6by75YWD5oCd5qGIIDwgaGFuYW1vdG9qaWFuXCA7Civlj7PmipjnpoHmraIgPCB1c2V0c3VraW5zaGlcIDsKK+i7jeWbveiJsiA8IGd1bmtva3VzaG9rdVwgOwor5YWr6YOO5r2fIDwgaGFjaGlyb3VnYXRhXCA7CivljYPmgJ3kuIfogIMgPCBzZW5zaGliYW5rb3VcIDsKK+S+nemhmOmAgOiBtyA8IGlnYW50YWlzaG9rdVwgOwor5LiJ6YOo5ZCI5ZSxIDwgc2FuYnVnYXNzaG91XCA7CivoqIDoqp7kuK3mnqIgPCBnZW5nb2NodXVzdXVcIDsKK+ePvuS7o+aWh+aYjiA8IGdlbmRhaWJ1bm1laVwgOwor6aSK6K235a2m57SaIDwgeW91Z29nYWtreXV1XCA7Civlrr/lkb3nmoQgPCBzaHVrdW1laXRla2lcIDsKK+Wbnui7oumBi+WLlSA8IGthaXRlbicndW5kb3VcIDsKK+mBi+i8uOalreiAhSA8IHVuJyd5dWd5b3VzaGFcIDsKK+S4reW/g+inkiA8IGNodXVzaGlua2FrdVwgOwor6ZW36aCI6a+oIDwgbmFnYXN1a3VqaXJhXCA7Civnn7Pmsrnlhazlm6MgPCBzZWtpeXVrb3VkYW5cIDsKK+WxgOmDqOm6u+mFlCA8IGt5b2t1YnVtYXN1aVwgOwor576p5aSq5aSr56+AIDwgZ2lkYXl1dWJ1c2hpXCA7Civph5HlsZ7liqDlt6UgPCBraW56b2t1a2Frb3VcIDsKK+aCquaAp+iFq+eYjSA8IGFrdXNlaXNodXlvdVwgOwor5L+u5LqG6Ki8IDwgc2h1dXJ5b3VzaG91XCA7Civppqzpub/mraPnm7QgPCBiYWthc2hvdWppa2lcIDsKK+WQiOW8geS8muekviA8IGdvdWJlbmdhaXNoYVwgOwor5q6144CF55WgIDwgZGFuZGFuYmF0YWtlXCA7Civlhaznm4rkuovmpa0gPCBrb3Vla2lqaWd5b3VcIDsKK+S/oeWPt+mbu+azoiA8IHNoaW5nb3VkZW5wYVwgOwor5aSa6IKJ6LOqIDwgdGFuaWt1c2hpdHN1XCA7CivpgLLlhaXnga8gPCBzaGluJydueXV1dG91XCA7Civpm4bntITnmoQgPCBzaHV1eWFrdXRla2lcIDsKK+WFteWFreeOiSA8IGh5b3Vyb2t1ZGFtYVwgOwor5pGp5pOm54axIDwgbWFzYXRzdW5ldHN1XCA7CivlhoXovKrlkIzlv5cgPCB1Y2hpd2Fkb3VzaGlcIDsKK+ekvuS8muS6i+alrSA8IHNoYWthaWppZ3lvdVwgOwor5oqA6KGT5YqbIDwgZ2lqdXRzdXJ5b2t1XCA7Civpm7bntLDkvIHmpa0gPCByZWlzYWlraWd5b3VcIDsKK+S7rua6tuaOpSA8IGthcml5b3VzZXRzdVwgOwor5Zu95a6a5YWs5ZySIDwga29rdXRlaWtvdWVuXCA7Civlv5zlipvlvoTot68gPCBvdXJ5b2t1a2Vpcm9cIDsKK+S4i+S9jeevhOeWh+WMliA8IGthaWhhbmNodXVrYVwgOwor5o6n6Ki05qOE5Y20IDwga291c29raWt5YWt1XCA7CivpgJrli6TlrprmnJ8gPCB0c3V1a2ludGVpa2lcIDsKK+mrmOWTgeizqiA8IGtvdWhpbnNoaXRzdVwgOwor5q205Y+y5Zyw5ZuzIDwgcmVraXNoaWNoaXp1XCA7Civpm7vlrZDpg7Xkvr8gPCBkZW5zaGl5dXViaW5cIDsKK+aZkuacqOe2vyA8IHNhcmFzaGltb21lblwgOwor5Ly457iu5rOVIDwgc2hpbnNodWt1aG91XCA7Civkurrlt6Xnn6Xog70gPCBqaW5rb3VjaGlub3VcIDsKK+epuuS4reaKleS4iyA8IGt1dWNodXV0b3VrYVwgOwor5qW95aSp5Li7576pIDwgcmFrdXRlbnNodWdpXCA7Civlha3pgKPnmbogPCByb2t1cmVucGF0c3VcIDsKK+a1t+WkluaKleizhyA8IGthaWdhaXRvdXNoaVwgOwor5L2155m655eHIDwgaGVpaGF0c3VzaG91XCA7CivmmpfoqLznlarlj7cgPCBhbnNob3ViYW5nb3VcIDsKK+asoOS5j+eXhyA8IGtldHN1Ym91c2hvdVwgOwor5p6V6KmeIDwgbWFrdXJha290b2JhXCA7CivplqLnr4DmioAgPCBrYW5zZXRzdXdhemFcIDsKK+ayiOayoeiIuSA8IGNoaW5ib3RzdXNlblwgOwor5YCZ5omAIDwgc291cm91dG9rb3JvXCA7CivlrrnnqY3njocgPCB5b3VzZWtpcml0c3VcIDsKK+ahgueUtyA8IGthdHN1cmFvdG9rb1wgOwor5Li75Yqb5qCqIDwgc2h1cnlva3VrYWJ1XCA7CivlubTpvaLliLbpmZAgPCBuZW5yZWlzZWlnZW5cIDsKK+S+oeagvOaIpuS6iSA8IGtha2FrdXNlbnNvdVwgOwor6auY6YCf5bqm6Yu8IDwga291c29rdWRva291XCA7CivlsbHmh5AgPCB5YW1hZnV0b2tvcm9cIDsKK+S5vua5v+ioiCA8IGthbnNoaXRzdWtlaVwgOwor6Z2e5Za25Yip5Zuj5L2TIDwgaGllaXJpZGFudGFpXCA7CivngavlipvmlK/mj7QgPCBrYXJ5b2t1c2hpZW5cIDsKK+mrmOmAn+mBk+i3ryA8IGtvdXNva3Vkb3Vyb1wgOwor5L2/55So56aB5q2iIDwgc2hpeW91a2luc2hpXCA7CivlhqDlqZrokaznpa0gPCBrYW5rb25zb3VzYWlcIDsKK+awtOW5s+Wwvue/vCA8IHN1aWhlaWJpeW9rdVwgOwor5Li86aOvIDwgZG9uYnVyaW1lc2hpXCA7CivmsbrorbDmqZ/plqIgPCBrZXRzdWdpa2lrYW5cIDsKK+S5neaYn+ihkyA8IGt5dXVzZWlqdXRzdVwgOwor5Y+j5YWr5LiBIDwga3VjaGloYXRjaG91XCA7CivpgKPpjpblj43lv5wgPCByZW5zYWhhbicnbm91XCA7CivluILmsJHnpL7kvJogPCBzaGltaW5zaGFrYWlcIDsKK+aknOWvn+W6gSA8IGtlbnNhdHN1Y2hvdVwgOwor6KGo6KGo57SZIDwgb21vdGVieW91c2hpXCA7Civpg6jliIbpm4blkIggPCBidWJ1bnNodXVnb3VcIDsKK+Wbm+aNqOS6lOWFpSA8IHNoaXNoYWdvbnl1dVwgOwor5Y+X6KiX5Lya56S+IDwganV0YWt1Z2Fpc2hhXCA7CivllY/poYzmhI/orZggPCBtb25kYWlpc2hpa2lcIDsKK+mHkeiejeWFrOW6qyA8IGtpbicneXV1a291a29cIDsKK+ebtOWPluW8lSA8IGppa2l0b3JpaGlraVwgOwor5Y+L6YGU55Sy5paQIDwgdG9tb2RhY2hpZ2FpXCA7CivlpKflrabljZIgPCBkYWlnYWt1c290c3VcIDsKK+S4gOiIrOaVmemkiiA8IGlwcGFua3lvdXlvdVwgOwor5aSx6Kqe55eHIDwgc2hpdHN1Z29zaG91XCA7CivpmY3pm6rph48gPCBrb3VzZXRzdXJ5b3VcIDsKK+WuieWumuaBkOaFjCA8IGFudGVpa3lvdWtvdVwgOwor5rC057Sg5YyW54mpIDwgc3Vpc29rYWJ1dHN1XCA7CivnkrDlooPlpInljJYgPCBrYW5reW91aGVua2FcIDsKK+S9k+agvOaknOafuyA8IHRhaWtha3VrZW5zYVwgOwor5ryB5bir55S6IDwgcnlvdXNoaW1hY2hpXCA7CivljJblrablkIjmiJAgPCBrYWdha3Vnb3VzZWlcIDsKK+W5s+W5s+WHoeWHoSA8IGhlaWhlaWJvbmJvblwgOwor5biC5aC05L6h5qC8IDwgc2hpam91a2FrYWt1XCA7Civnianopovmq5MgPCBtb25vbWl5YWd1cmFcIDsKK+WWhOmao+mWouS/giA8IHplbnJpbmthbmtlaVwgOwor5ZCI5oiQ5rSX5YmkIDwgZ291c2Vpc2VuemFpXCA7CivoprPlv7XkuLvnvqkgPCBrYW4nJ25lbnNodWdpXCA7CivpgJrli6TmmYLplpMgPCB0c3V1a2luamlrYW5cIDsKK+e1jOa4iOS9k+WItiA8IGtlaXphaXRhaXNlaVwgOwor5L2P5omA5rCP5ZCNIDwganV1c2hvc2hpbWVpXCA7Civnlr7poqjmgJLmv6QgPCBzaGlwcHV1ZG90b3VcIDsKK+WMu+eZguadkOaWmSA8IGlyeW91emFpcnlvdVwgOwor5pyJ5qmf6L6y5qWtIDwgeXV1a2lub3VneW91XCA7CivlpqjlrrPmlL7pgIEgPCBib3VnYWlob3Vzb3VcIDsKK+mHkeWxnuWFg+e0oCA8IGtpbnpva3VnZW5zb1wgOwor5Y+W5qyh5bqXIDwgdG9yaXRzdWdpdGVuXCA7Civmra/lhoXnmYLms5UgPCBzaGlrYXJ5b3Vob3VcIDsKK+aCquaIr+Wwj+WDpyA8IGl0YXp1cmFrb3pvdVwgOwor5YWo5qip5aSn5L2/IDwgemVua2VudGFpc2hpXCA7CivljbHmgKXlrZjkuqEgPCBraWt5dXVzb25ib3VcIDsKK+Wuh+WumeS4ree2mSA8IHVjaHV1Y2h1dWtlaVwgOwor6Z2e5Lq66ZaT55qEIDwgaGluaW5nZW50ZWtpXCA7Civlj5fkv6Hoo4Xnva4gPCBqdXNoaW5zb3VjaGlcIDsKK+aVsOWApOioiOeulyA8IHN1dWNoaWtlaXNhblwgOwor54mH6KiA6Zq76KqeIDwgaGVuZ2Vuc2VraWdvXCA7Civmh5DkuK3mmYLoqIggPCBrYWljaHV1ZG9rZWlcIDsKK+acp+aciOWknCA8IG9ib3JvZHp1a2l5b1wgOwor56u26Lyq6YG45omLIDwga2Vpcmluc2Vuc2h1XCA7Civkuqvmpb3nmoQgPCBreW91cmFrdXRla2lcIDsKK+aal+WPt+ino+iqrSA8IGFuZ291a2FpZG9rdVwgOwor5Y+N5YuV5oCd5oOzIDwgaGFuZG91c2hpc291XCA7Civlrp/oqLzkuLvnvqkgPCBqaXNzaG91c2h1Z2lcIDsKK+aomea6luWBj+W3riA8IGh5b3VqdW5oZW5zYVwgOwor6LOH5rqQ5ZWP6aGMIDwgc2hpZ2VubW9uZGFpXCA7CivpgYvpgIHmpa3ogIUgPCB1bnNvdWd5b3VzaGFcIDsKK+ihjOWLleWcsOW4ryA8IGtvdWRvdWNoaXRhaVwgOwor5rC05Yqb5a2mIDwgc3Vpcnlva3VnYWt1XCA7CivlubPnrYnkuLvnvqkgPCBieW91ZG91c2h1Z2lcIDsKK+WPluW8leWFiCA8IHRvcmloaWtpc2FraVwgOwor5Lqk5Luj5oqV5omLIDwga291dGFpdG91c2h1XCA7CivkuLzpiaIgPCBkb25idXJpYmFjaGlcIDsKK+WFpeWKm+e3miA8IG55dXVyeW9rdXNlblwgOwor5L2O6KGA5ZynIDwgdGVpa2V0c3VhdHN1XCA7Civlm73lrrbni6zljaAgPCBrb2trYWRva3VzZW5cIDsKK+Wcn+WcsOaUueiJryA8IHRvY2hpa2FpcnlvdVwgOwor55Kw5aKD5Z+65rqWIDwga2Fua3lvdWtpanVuXCA7CivlpJbkuqTmlofmm7ggPCBnYWlrb3VidW5zaG9cIDsKK+i7veaMmeWmhOWLlSA8IGtlaWt5b21vdWRvdVwgOwor6Ziy6Jmr5Yqg5belIDwgYm91Y2h1dWtha291XCA7CivkuI3lnKjmipXnpaggPCBmdXphaXRvdWh5b3VcIDsKK+S8uOe4ruaApyA8IHNoaW5zaHVrdXNlaVwgOwor5b6L5Luk5Yi2IDwgcml0c3VyeW91c2VpXCA7Civlq4znhZnpgYvli5UgPCBrZW4nJ2VuJyd1bmRvdVwgOwor5bCB57eY6JGJ5pu4IDwgZnV1a2FuaGFnYWtpXCA7CivlvaLlvI/nmoQgPCBrZWlzaGlraXRla2lcIDsKK+azsOeEtuiHquiLpSA8IHRhaXplbmppamFrdVwgOwor5pWX5YyX5Li7576pIDwgaGFpYm9rdXNodWdpXCA7CivkvqHmoLzmgKfog70gPCBrYWtha3VzZWlub3VcIDsKK+abuOmhnumAgeaknCA8IHNob3J1aXNvdWtlblwgOwor5Lq65qip5ZWP6aGMIDwgamlua2VubW9uZGFpXCA7Civku7Lnq4vkurogPCBuYWthZGFjaGluaW5cIDsKK+aYh+mZjeWPoyA8IHNob3Vrb3VndWNoaVwgOwor5LiA5q275aCx5Zu9IDwgaXNzaGlob3Vrb2t1XCA7CivoqJjpjLLkv4IgPCBraXJva3VnYWthcmlcIDsKK+W3peS9nOeJqSA8IGtvdXNha3VidXRzdVwgOwor57e06aas5aSn5qC5IDwgbmVyaW1hZGFpa29uXCA7CivkuIDns7jkuIDmr6sgPCBpc3NoaWljaGlnb3VcIDsKK+eJueauiuS6i+aDhSA8IHRva3VzaHVqaWpvdVwgOwor5q2j55u06ICFIDwgc2hvdWppa2ltb25vXCA7CivogIHlsJHkuI3lrpogPCByb3VzaG91ZnV0ZWlcIDsKK+S4reW/g+eahCA8IGNodXVzaGludGVraVwgOwor6Ieq57+S5a6kIDwgamlzaHV1c2hpdHN1XCA7Civku4rmmI7ml6UgPCBrb25teW91bmljaGlcIDsKK+ebuOS5l+W5s+WdhyA8IHNvdWpvdWhlaWtpblwgOwor5LiH5bm05YCZ6KOcIDwgbWFuJyduZW5rb3Vob1wgOwor5a6J5YWo5pWZ6IKyIDwgYW56ZW5reW91aWt1XCA7CivnhKHos4PkuZfou4ogPCBtdWNoaW5qb3VzaGFcIDsKK+eJh+WLmeWlkee0hCA8IGhlbm11a2VpeWFrdVwgOwor5LiA6Iis5aSn6KGGIDwgaXBwYW50YWlzaHV1XCA7Civlj6TlhbjmloflraYgPCBrb3RlbmJ1bmdha3VcIDsKK+mrmOagoemHjueQgyA8IGtvdWtvdXlha3l1dVwgOwor6ZaT5o6l55qEIDwga2Fuc2V0c3V0ZWtpXCA7CivkuK3oj6/mlpnnkIYgPCBjaHV1a2FyeW91cmlcIDsKK+WHuueJiOeJqSA8IHNodXBwYW5idXRzdVwgOwor5YGl5bq354q25oWLIDwga2Vua291am91dGFpXCA7CivmoLjou43nuK4gPCBrYWt1Z3Vuc2h1a3VcIDsKK+m5v+WFkOWztuecjCA8IGthZ29zaGltYWtlblwgOwor5rqW5YKZ54q25rOBIDwganVuYmlqb3VreW91XCA7CivpgbjlpJbkvbPkvZwgPCBzZW5nYWlrYXNha3VcIDsKK+iogOiqnuaVmeiCsiA8IGdlbmdva3lvdWlrdVwgOwor5ZCM5paH5ZCM56iuIDwgZG91YnVuZG91c2h1XCA7CivntabkuI7kvZPns7sgPCBreXV1eW90YWlrZWlcIDsKK+m6u+iWrOeKr+e9qiA8IG1heWFrdWhhbnphaVwgOwor5pyd5Luk5pqu5pS5IDwgY2hvdXJlaWJva2FpXCA7CivkuIDopovorZggPCBpY2hpa2Vuc2hpa2lcIDsKK+aUu+aSg+WKmyA8IGtvdWdla2lyeW9rdVwgOwor5LqS5oG15p2h57SEIDwgZ29rZWlqb3V5YWt1XCA7CivkuIDlm73kuIDnpaggPCBpa2tva3VpcHB5b3VcIDsKK+egsuiJpuWkluS6pCA8IGhvdWthbmdhaWtvdVwgOwor5pW06auq5paZIDwgc2VpaGF0c3VyeW91XCA7CivmtYHooYzoqIDokYkgPCBoYXlhcmlrb3RvYmFcIDsKK+S6pOmAmuapn+mWoiA8IGtvdXRzdXVraWthblwgOwor5rC06YqA6Zu75rGgIDwgc3VpZ2luZGVuY2hpXCA7CivlgJLkuosgPCBzYWthc2FtYWdvdG9cIDsKK+i/veWWhOS+m+mkiiA8IHRzdWl6ZW5rdXlvdVwgOwor5LuW5Yqb5pys6aGYIDwgdGFyaWtpaG9uZ2FuXCA7CivnrKblj7fop6Poqq0gPCBmdWdvdWthaWRva3VcIDsKK+efpeiDveaMh+aVsCA8IGNoaW5vdXNoaXN1dVwgOwor5Lqc54ax5biv5rCX5YCZIDwgYW5ldHRhaWtpa291XCA7CivlvZPllrbmpa3miYAgPCB0b3VlaWd5b3VzaG9cIDsKK+iBt+WToeS8muitsCA8IHNob2t1aW5rYWlnaVwgOwor6KiA6Kqe54m55pyJIDwgZ2VuZ290b2t1eXV1XCA7CivmnIDlsI/pmZDluqYgPCBzYWlzaG91Z2VuZG9cIDsKK+afk+S6leWQiemHjiA8IHNvbWVpeW9zaGlub1wgOwor5a6M5YWo54qv572qIDwga2FuemVuaGFuemFpXCA7CivmmoHpl4cgPCBha2F0c3VraXlhbWlcIDsKK+aVmeiCsuWItuW6piA8IGt5b3Vpa3VzZWlkb1wgOwor5oim5Zu95pmC5LujIDwgc2VuZ29rdWppZGFpXCA7CivliY3pp4bnl4fnirYgPCB6ZW5rdXNob3Vqb3VcIDsKK+S4g+mdouWAkiA8IHNoaWNoaW1lbmRvdVwgOwor6ICQ5rm/5oCnIDwgdGFpc2hpdHN1c2VpXCA7CivntKvntqzopJLos54gPCBzaGlqdWhvdXNob3VcIDsKK+S4gOiogOWNiuWPpSA8IGljaGlnb25oYW5rdVwgOwor5LiN5rOV5Y2g5pyJIDwgZnVob3VzZW4nJ3l1dVwgOwor5LuP5paH5a2mIDwgZnV0c3VidW5nYWt1XCA7Civlrrbluq3nkrDlooMgPCBrYXRlaWthbmt5b3VcIDsKK+eVkeawtOe3tCA8IGhhdGFrZXN1aXJlblwgOwor5YuF5pKw6ZuGIDwgY2hva3VzZW5zaHV1XCA7CivkuIPpnaLkvZMgPCBzaGljaGltZW50YWlcIDsKK+iInuWPsOebo+edoyA8IGJ1dGFpa2FudG9rdVwgOwor5ZCI5oiQ55qu6Z2pIDwgZ291c2VpaGlrYWt1XCA7CivlnKjlroXli6Tli5kgPCB6YWl0YWt1a2lubXVcIDsKK+eEoeaUv+W6nOS4u+e+qSA8IG11c2VpZnVzaHVnaVwgOwor5LiN5Zyo5Zyw5Li7IDwgZnV6YWlqaW51c2hpXCA7CivkuIDlrr/kuIDpo68gPCBpc3NodWt1aXBwYW5cIDsKK+iAgeS6uueXhemZoiA8IHJvdWppbmJ5b3VpblwgOwor54mH6IK66aOb6KGMIDwga2F0YWhhaWhpa291XCA7Civlr77mvZzmsLToiaYgPCB0YWlzZW5zdWlrYW5cIDsKK+itpuaIkuitpuWgsSA8IGtlaWthaWtlaWhvdVwgOwor5Yq5546H55qEIDwga291cml0c3V0ZWtpXCA7CivntK/nqY3otaTlrZcgPCBydWlzZWtpYWthamlcIDsKK+WutuaXj+ani+aIkCA8IGthem9rdWtvdXNlaVwgOwor5YaF5p+U5aSW5YmbIDwgbmFpanV1Z2FpZ291XCA7CivlsZ7kurrkuLvnvqkgPCB6b2t1amluc2h1Z2lcIDsKK+eGsemHj+ioiCA8IG5ldHN1cnlvdWtlaVwgOwor56Gs6Luf5Lih5rS+IDwga291bmFucnlvdWhhXCA7CivluqfluK3nlarlj7cgPCB6YXNla2liYW5nb3VcIDsKK+epuuS4rea1ruaPmiA8IGt1dWNodXVmdXlvdVwgOwor5LiB56ia5aWJ5YWsIDwgZGV0Y2hpYm91a291XCA7CivkuIDmlrnkuqTpgJogPCBpcHBvdWtvdXRzdXVcIDsKK+S4ieaXpeaciOW9oiA8IG1pa2FkenVraWtlaVwgOwor56e75YuV5Zuz5pu46aSoIDwgaWRvdXRvc2hva2FuXCA7CivmpJzkuovnt4/plbcgPCBrZW5qaXNvdWNob3VcIDsKK+azqOmHiOiAhSA8IGNodXVzaGFrdXNoYVwgOwor54ut5b+D55eHIDwga3lvdXNoaW5zaG91XCA7CivmlrDopo/mipXos4cgPCBzaGlua2l0b3VzaGlcIDsKK+WNmOiqnuaknOe0oiA8IHRhbmdva2Vuc2FrdVwgOwor5byl54yb5b+DIDwgeWF0YWtlZ29rb3JvXCA7CivpmqDljL/nianos4cgPCBpbnRva3VidXNzaGlcIDsKK+Wls+S6uuemgeWItiA8IG55b25pbmtpbnNlaVwgOwor5aSn5L+u6YGT6ZmiIDwgZGFpc2h1dWRvdWluXCA7Civmo67mnpflhazlnJIgPCBzaGlucmlua291ZW5cIDsKK+e3j+iKseW8jyA8IHNvdWJhbmFzaGlraVwgOwor5Y2U5ZWG5Zu9IDwga3lvdXNob3Vrb2t1XCA7Civlj5fpqJPos4fmoLwgPCBqdWtlbnNoaWtha3VcIDsKK+S4g+e1g+eQtCA8IHNoaWNoaWdlbmtpblwgOwor5aSn5ZKM6KiA6JGJIDwgeWFtYXRva290b2JhXCA7CivlhIDlvI/kuLvnvqkgPCBnaXNoaWtpc2h1Z2lcIDsKK+mAoOWxsemBi+WLlSA8IHpvdXphbicndW5kb3VcIDsKK+S4gOiIrOaVmeiCsiA8IGlwcGFua3lvdWlrdVwgOwor54iG6KOC5by+IDwgYmFrdXJldHN1ZGFuXCA7Civnq4vkvZPpn7Ppn78gPCByaXR0YWlvbmt5b3VcIDsKK+Wul+aVmeW/gyA8IHNodXVreW91c2hpblwgOwor54m56ZuG6KiY5LqLIDwgdG9rdXNodXVraWppXCA7Civku5jluK/msbrorbAgPCBmdXRhaWtldHN1Z2lcIDsKK+ijvee0meW3peWgtCA8IHNlaXNoaWtvdWpvdVwgOwor5YWs5YWx54mpIDwga291a3lvdWJ1dHN1XCA7CivmlZHmgKXnrrEgPCBreXV1a3l1dWJha29cIDsKK+aVkeaPtOaKleaJiyA8IGt5dXVlbnRvdXNodVwgOwor6LKh5Zuj5rOV5Lq6IDwgemFpZGFuaG91amluXCA7CivmsJHkv5foiJ7ouIogPCBtaW56b2t1YnV5b3VcIDsKK+aIpuS6ieeKr+e9qiA8IHNlbnNvdWhhbnphaVwgOwor6Zuj54eD5Yqg5belIDwgbmFuJyduZW5rYWtvdVwgOwor5Y2X6Ii55YyX6aasIDwgbmFuc2VuaG9rdWJhXCA7CivmqZ/og73pmpzlrrMgPCBraW5vdXNob3VnYWlcIDsKK+Wun+ihjOWnlOWToeS8miA8IGppa2tvdWlpbmthaVwgOwor54uC6Kmp5puyIDwga3lvdXNoaWt5b2t1XCA7Civml6XmnKzlm73msJEgPCBuaWhvbmtva3VtaW5cIDsKK+S/hOWIhumZkCA8IG5pd2FrYWJ1bmdlblwgOwor6Iie6LiP5pWZ5birIDwgYnV0b3VreW91c2hpXCA7CivmnpfplpPlrabmoKEgPCByaW5rYW5nYWtrb3VcIDsKK+advuavrCA8IG1hdHN1cG9ra3VyaVwgOwor6Iqx6a2B6YGT5LitIDwgb2lyYW5kb3VjaHV1XCA7Civmu5HpmY3nq7bmioAgPCBrYWtrb3VreW91Z2lcIDsKK+WcqOWkluWFrOmkqCA8IHphaWdhaWtvdWthblwgOwor5a6X5pWZ5a2mIDwgc2h1dWt5b3VnYWt1XCA7CivpoK3ombEgPCBhdGFtYXNoaXJhbWlcIDsKK+S4gOaXpeS4rSA8IGljaGluaWNoaWp1dVwgOwor5Zyw5pa56YG45oyZIDwgY2hpaG91c2Vua3lvXCA7CivmsYLogbfogIUgPCBreXV1c2hva3VzaGFcIDsKK+eVnOauuuWgtCA8IGNoaWt1c2F0c3ViYVwgOwor5ZCI5oiQ5YyW5a2mIDwgZ291c2Vpa2FnYWt1XCA7Civnp4Hoo73okYnmm7ggPCBzaGlzZWloYWdha2lcIDsKK+WtpuW5tOacqyA8IGdha3VuZW5tYXRzdVwgOwor5LiN5a6a56mN5YiGIDwgZnV0ZWlzZWtpYnVuXCA7CivmraPjgIXloILjgIUgPCBzZWlzZWlkb3Vkb3VcIDsKK+WNiuS/oeWNiueWkSA8IGhhbnNoaW5oYW5naVwgOwor56mA6LGh6JmrIDwga29rdXpvdW11c2hpXCA7CivovLjlhaXotoXpgY4gPCB5dW55dXVjaG91a2FcIDsKK+eEoemfv+WupCA8IG11a3lvdXNoaXRzdVwgOwor562N5Yy76ICFIDwgdGFrZW5va29pc2hhXCA7Civlm5vlhYPpgJ/luqYgPCBzaGlnZW5zb2t1ZG9cIDsKK+S7mOWxnuWtpuagoSA8IGZ1em9rdWdha2tvdVwgOwor5Lq65bel55yf54+gIDwgamlua291c2hpbmp1XCA7CivmvZvlv4PlipsgPCBzZW5zaGlucnlva3VcIDsKK+iIiOihjOS4uyA8IGtvdWd5b3VudXNoaVwgOwor5Lq65qip5Zuj5L2TIDwgamlua2VuZGFudGFpXCA7CivmnKzmlofmibnoqZUgPCBob25tb25oaWh5b3VcIDsKK+S5vuWcsOi+suazlSA8IGthbmNoaW5vdWhvdVwgOwor5Zan5Zan5ZuC5ZuCIDwga2Vua2VuZ291Z291XCA7Civmnb7mnpcgPCBtYXRzdWJheWFzaGlcIDsKK+S6uuWumuWwi+WVjyA8IGppbnRlaWppbm1vblwgOwor5Lu75pyf5rqA5LqGIDwgbmlua2ltYW5yeW91XCA7Civnq7bppqzmlrDogZ4gPCBrZWliYXNoaW5idW5cIDsKK+S/rumjvuWtkCA8IHNodXVzaG9rdXNoaVwgOwor5Y+O55uK546HIDwgc2h1dWVraXJpdHN1XCA7CivnpZ3lhIDooosgPCBzaHV1Z2lidWt1cm9cIDsKK+mbu+awl+W3peWtpiA8IGRlbmtpa291Z2FrdVwgOwor5ama5ae75bGKIDwga29uJydpbnRvZG9rZVwgOwor5L6b57Wm6YGO5aSaIDwga3lvdWt5dXVrYXRhXCA7Civlj6PpoK3lr6nnkIYgPCBrb3V0b3VzaGlucmlcIDsKK+manOWus+eJqSA8IHNob3VnYWlidXRzdVwgOwor5bmz5ZKM5pWZ6IKyIDwgaGVpd2FreW91aWt1XCA7Civpu5Lpirnnl4UgPCBrdXJvc2FiaWJ5b3VcIDsKK+S6uueJqeiplSA8IGppbmJ1dHN1aHlvdVwgOwor57eP5ZCI55eF6ZmiIDwgc291Z291YnlvdWluXCA7CivkuIrlsaTmsJfmtYEgPCBqb3Vzb3VraXJ5dXVcIDsKK+iAgem9ouW5tOmHkSA8IHJvdXJlaW5lbmtpblwgOwor6ZuR5omA5b6XIDwgemF0c3VzaG90b2t1XCA7CivliaXoo73ooZMgPCBoYWt1c2VpanV0c3VcIDsKK+a8lOWlj+e3tOe/kiA8IGVuc291cmVuc2h1dVwgOwor54us5Y2g5qyyIDwgZG9rdXNlbicneW9rdVwgOwor5LuV5o6b5Zyw6Zu3IDwgc2hpa2FrZWppcmFpXCA7CivmnZ/mn7EgPCB0c3VrYWJhc2hpcmFcIDsKK+Wbnui7ouizh+mHkSA8IGthaXRlbnNoaWtpblwgOwor57W25pyb55qEIDwgemV0c3Vib3V0ZWtpXCA7CivmmpfkuK3mqKHntKIgPCBhbmNodXVtb3Nha3VcIDsKK+WkqeeEtuiJsiA8IHRlbicnbmVuc2hva3VcIDsKK+WUr+aIkeeLrOWwiiA8IHl1aWdhZG9rdXNvblwgOwor6ZuG5pWj5Li7576pIDwgc2h1dXNhbnNodWdpXCA7CivlnJ/nlKPnianlsYsgPCBtaXlhZ2Vtb25veWFcIDsKK+iHque1puiHqui2syA8IGppa3l1dWppc29rdVwgOwor6ISC6IKq6LOqIDwgc2hpYm91c2hpdHN1XCA7CivlrpfmlZnliocgPCBzaHV1a3lvdWdla2lcIDsKK+WSjOW5s+WNlOWumiA8IHdhaGVpa3lvdXRlaVwgOwor5LuP5b+DIDwgaG90b2tlZ29rb3JvXCA7Civlh7rloLTogIUgPCBzaHV0c3Vqb3VzaGFcIDsKK+WcsOaWueWIhuaoqSA8IGNoaWhvdWJ1bmtlblwgOwor5Lm+5ryG5YOPIDwga2Fuc2hpdHN1em91XCA7CivluILlhoXoprPlhYkgPCBzaGluYWlrYW5rb3VcIDsKK+aUvuWwhOiDvembqCA8IGhvdXNoYW5vdWFtZVwgOwor5YaF572w55qEIDwgbmFpYmF0c3V0ZWtpXCA7CivkuIPop5LlvaIgPCBzaGljaGlrYWtrZWlcIDsKK+irnOWgseapn+mWoiA8IGNob3Vob3VraWthblwgOwor5Y2z6IiI5puyIDwgc29ra3lvdWt5b2t1XCA7CivlsLHlrabnvqnli5kgPCBzaHV1Z2FrdWdpbXVcIDsKK+iIquepuuWEquWLoiA8IGtvdWt1dXl1dXNlaVwgOwor5Lq65omN55m755SoIDwgamluemFpdG91eW91XCA7CivmlaPnmbrnmoQgPCBzYW5wYXRzdXRla2lcIDsKK+ikh+acrOS9jeWItiA8IGZ1a3Vob24nJ2lzZWlcIDsKK+eUn+a0u+S/neittyA8IHNlaWthdHN1aG9nb1wgOwor6ZuG5Lit6LGq6ZuoIDwgc2h1dWNodXVnb3V1XCA7CivlvrTlhbXlhY3pmaQgPCBjaG91aGVpbWVuam9cIDsKK+WFrOWus+WVj+mhjCA8IGtvdWdhaW1vbmRhaVwgOwor5Y2Y6Lqr6LW05Lu7IDwgdGFuc2hpbmZ1bmluXCA7CivluoPlj6Pnk7YgPCBoaXJva3VjaGliaW5cIDsKK+W3ruWIpeeUqOiqniA8IHNhYmV0c3V5b3Vnb1wgOwor5Lq65Y+j5YuV5oWLIDwgamlua291ZG91dGFpXCA7CivlroflrpnniannkIYgPCB1Y2h1dWJ1dHN1cmlcIDsKK+WFqOmdouaIpuS6iSA8IHplbm1lbnNlbnNvdVwgOwor57WM5riI54q25oWLIDwga2VpemFpam91dGFpXCA7Civlp5ToqJfnoJTnqbYgPCBpdGFrdWtlbmt5dXVcIDsKK+WNg+i+m+S4h+iLpiA8IHNlbnNoaW5iYW5rdVwgOwor5Yy755mC5aCx6YWsIDwgaXJ5b3Vob3VzaHV1XCA7CivmsLTmmbbmmYLoqIggPCBzdWlzaG91ZG9rZWlcIDsKK+S4ieaWh+aWh+WjqyA8IHNhbm1vbmJ1bnNoaVwgOwor5Zue6Lui5pyo6aasIDwga2FpdGVubW9rdWJhXCA7CivkuI3miKbmnaHntIQgPCBmdXNlbmpvdXlha3VcIDsKK+S4gOeUn+aHuOWRvSA8IGlzc2hvdWtlbm1laVwgOwor5Zyn57iu546HIDwgYXNzaHVrdXJpdHN1XCA7Civml6XpgLLmnIjmrakgPCBuaXNzaGluZ2VwcG9cIDsKK+WPl+iol+iyqeWjsiA8IGp1dGFrdWhhbmJhaVwgOwor5paH5YyW5Yuy56ugIDwgYnVua2FrdW5zaG91XCA7CivmgqDmgqDplpHplpEgPCB5dXV5dXVrYW5rYW5cIDsKK+S7j+iLsei+nuWFuCA8IGZ1dHN1ZWlqaXRlblwgOwor5a6/5rOK5Lq6IDwgc2h1a3VoYWt1bmluXCA7CivnlZnlrojnlarpm7voqbEgPCBydXN1YmFuZGVud2FcIDsKK+ihm+eUn+W3peWtpiA8IGVpc2Vpa291Z2FrdVwgOwor5pS/6KaL5pS+6YCBIDwgc2Vpa2VuaG91c291XCA7CivmsLTmgKfloZfmlpkgPCBzdWlzZWl0b3J5b3VcIDsKK+eMqee0heeGsSA8IHNob3Vrb3VuZXRzdVwgOwor5YWI6YCy5YW15ZmoIDwgc2Vuc2hpbmhlaWtpXCA7Civoh6rlt7HkuK3lv4MgPCBqaWtvY2h1dXNoaW5cIDsKK+WNlOWKm+mLvCA8IGt5b3VyeW9rdWtvdVwgOwor5ZCM5ZKM5pWZ6IKyIDwgZG91d2FreW91aWt1XCA7CivlrabpvaLlhZDnq6UgPCBnYWt1cmVpamlkb3VcIDsKK+iBluWcsOW3oeekvCA8IHNlaWNoaWp1bnJlaVwgOwor56S+5Zuj5rOV5Lq6IDwgc2hhZGFuaG91amluXCA7CivmiYDnlarlnLAgPCB0b2tvcm9iYW5jaGlcIDsKK+azqOmHiOabuCA8IGNodXVzaGFrdXNob1wgOwor6LKo54mp6Ly46YCBIDwga2Ftb3RzdXl1c291XCA7CivnibnlvrTph48gPCB0b2t1Y2hvdXJ5b3VcIDsKK+ato+WkmuinkuW9oiA8IHNlaXRha2FrdWtlaVwgOwor5oeQ5bel5ZCIIDwgZnV0b2tvcm9ndWFpXCA7Civpm7vmsJflrrnph48gPCBkZW5raXlvdXJ5b3VcIDsKK+a6luemgeayu+eUoyA8IGp1bmtpbmNoaXNhblwgOwor5o+P5YaZ5YqbIDwgYnlvdXNoYXJ5b2t1XCA7CivljJblrabmp4vpgKAgPCBrYWdha3Vrb3V6b3VcIDsKK+eUn+eJqeWtpiA8IHNlaWJ1dHN1Z2FrdVwgOwor5LiA5YWa54us6KOBIDwgaXR0b3Vkb2t1c2FpXCA7CivnhKHpmZDlsI/mlbAgPCBtdWdlbnNob3VzdXVcIDsKK+a4vueEtuS4gOS9kyA8IGtvbnplbicnaXR0YWlcIDsKK+a1t+W6leWcsOmchyA8IGthaXRlaWppc2hpblwgOwor5Y2a5aOr6Kqy56iLIDwgaGFrdXNoaWthdGVpXCA7CivlubPlnYflr7/lkb0gPCBoZWlraW5qdW15b3VcIDsKK+W4guawkemBi+WLlSA8IHNoaW1pbicndW5kb3VcIDsKK+iomOW/teWHuueJiCA8IGtpbmVuc2h1cHBhblwgOwor6KOF572u5Yi25b6hIDwgc291Y2hpc2VpZ3lvXCA7Civljp/oo4HliKTmiYAgPCBnZW5zYWliYW5zaG9cIDsKK+aknOiojuWnlOWToeS8miA8IGtlbnRvdWlpbmthaVwgOwor5Y6a55Sf5aSn6IejIDwga291c2VpZGFpamluXCA7CivmsrnohILlt6Xmpa0gPCB5dXNoaWtvdWd5b3VcIDsKK+e3j+aUr+mFjeS6uiA8IHNvdXNoaWhhaW5pblwgOwor6Kqt5pu45YqbIDwgZG9rdXNob3J5b2t1XCA7Civml6XnhafmmYLplpMgPCBuaXNzaG91amlrYW5cIDsKK+S4gOiIrOaVmeabuCA8IGlwcGFua3lvdXNob1wgOwor5LiA6YOo5aeL57WCIDwgaWNoaWJ1c2hpanV1XCA7CivplqLmlbDljp/lnosgPCBrYW5zdXVnZW5rZWlcIDsKK+efpeitmOassiA8IGNoaXNoaWtpeW9rdVwgOwor5LiJ6YeN5a6d5YagIDwgc2FuanV1aG91a2FuXCA7CivlhajpgJ/lipsgPCB6ZW5zb2t1cnlva3VcIDsKK+atk+mAgei/juS8miA8IGthbnNvdWdlaWthaVwgOwor57eK5oCl6YG/6ZujIDwga2lua3l1dWhpbmFuXCA7CivliLnpgqPkuLvnvqkgPCBzZXRzdW5hc2h1Z2lcIDsKK+W3pealreWcsOWMuiA8IGtvdWd5b3VjaGlrdVwgOwor5oiR5qW95aSa5biCIDwgZ2FyYWt1dGFpY2hpXCA7CivooYborbDpmaLorbDlk6EgPCBzaHV1Z2lpbmdpaW5cIDsKK+i7ouWGmeaNuuafkyA8IHRlbnNoYW5hc3NlblwgOwor6Ieq54S254G95a6zIDwgc2hpemVuc2FpZ2FpXCA7Civmt7HntIXoibIgPCBzaGlua291c2hva3VcIDsKK+WkqeS6leajp+aVtyA8IHRlbmpvdXNhamlraVwgOwor5YWI6KGM5p2h5Lu2IDwgc2Vua291am91a2VuXCA7CivmnIjkuIvmsLfkurogPCBnZWtrYWh5b3VqaW5cIDsKK+acquW5tCA8IGhpdHN1amlkb3NoaVwgOwor6LC35oeQIDwgdGFuaWJ1dG9rb3JvXCA7CivpgbjogIPlp5Tlk6HkvJogPCBzZW5rb3VpaW5rYWlcIDsKK+WMu+iWrOWIhualrSA8IGl5YWt1YnVuZ3lvdVwgOwor6ZuB6aqoIDwga2FyaWdhbmVib25lXCA7CivouqvlhYPkv53oqLwgPCBtaW1vdG9ob3Nob3VcIDsKK+i7n+edgOmZuCA8IG5hbmNoYWt1cmlrdVwgOwor57SU5q2j56eR5a2mIDwganVuc2Vpa2FnYWt1XCA7Civkuozph43pgZPlvrMgPCBuaWp1dWRvdXRva3VcIDsKK+aCsuWWnOS6pOS6pCA8IGhpa2lrb21vZ29tb1wgOwor57eK5oCl5YuV6K2wIDwga2lua3l1dWRvdWdpXCA7CivlpKrpmb3pm7vmsaAgPCB0YWl5b3VkZW5jaGlcIDsKK+ihl+mgremMsumfsyA8IGdhaXRvdXJva3VvblwgOwor5Zu96Zqb5qmf6ZaiIDwga29rdXNhaWtpa2FuXCA7CivmnbHlj6MgPCBoaWdhc2hpZ3VjaGlcIDsKK+WJjeWCvuWnv+WLoiA8IHplbmtlaXNoaXNlaVwgOwor5biw5bGe5oSP6K2YIDwga2l6b2t1aXNoaWtpXCA7CivlhazooYbkvr/miYAgPCBrb3VzaHV1YmVuam9cIDsKK+aXpeacrOWbveWGhSA8IG5paG9ua29rdW5haVwgOwor6Imy5oOF54uCIDwgc2hpa2lqb3VreW91XCA7Civpg7Xkvr/ooosgPCB5dXViaW5idWt1cm9cIDsKK+mBuOawkeaAneaDsyA8IHNlbm1pbnNoaXNvdVwgOwor5ZKA5Zq86YGL5YuVIDwgc29zaGFrdXVuZG91XCA7CivoqJjlv7XlhpnnnJ8gPCBraW5lbnNoYXNoaW5cIDsKK+iouuWvn+WPsCA8IHNoaW5zYXRzdWRhaVwgOwor5rOh5rKr55qEIDwgaG91bWF0c3V0ZWtpXCA7Civngavnh7XluIPlm6MgPCBrb3RhdHN1YnV0b25cIDsKK+S7rumHiOaUviA8IGthcmlzaGFrdWhvdVwgOwor5YWo6Z2i56aB5q2iIDwgemVubWVua2luc2hpXCA7CivljJflm57luLDnt5ogPCBraXRha2Fpa2lzZW5cIDsKK+mAo+WQiOiJpumaiiA8IHJlbmdvdWthbnRhaVwgOwor5oCl6YCy55qEIDwga3l1dXNoaW50ZWtpXCA7Civkurrlkb3mlZHliqkgPCBqaW5tZWlreXV1am9cIDsKK+aIpuS6ieeKtuaFiyA8IHNlbnNvdWpvdXRhaVwgOwor5aWz5a2Q5aSn5a2mIDwgam9zaGlkYWlnYWt1XCA7Civlm73lo6vnhKHlj4wgPCBrb2t1c2hpbXVzb3VcIDsKK+W5s+Wdh+S9meWRvSA8IGhlaWtpbicneW9tZWlcIDsKK+S6i+S+i+eglOeptiA8IGppcmVpa2Vua3l1dVwgOwor5YiG5pWj5oqV6LOHIDwgYnVuc2FudG91c2hpXCA7CivoqLrlr5/liLggPCBzaGluc2F0c3VrZW5cIDsKK+alteWwj+WApCA8IGt5b2t1c2hvdWNoaVwgOwor5YG25YOP56S85oudIDwgZ3V1em91cmVpaGFpXCA7Civlirnmnpzopr/pnaIgPCBrb3VrYXRla2ltZW5cIDsKK+e3iuW8tee3qeWSjCA8IGtpbmNob3VrYW53YVwgOwor5LiN6Kix6KSH6KO9IDwgZnVreW9mdWt1c2VpXCA7CivljJfmrKfnpZ7oqbEgPCBob2t1b3VzaGlud2FcIDsKK+S6uuS6i+ihjOaUvyA8IGppbmppZ3lvdXNlaVwgOwor5pit5ZKM5bm06ZaTIDwgc2hvdXdhbmVua2FuXCA7Civlm73lrZfllY/poYwgPCBrb2t1amltb25kYWlcIDsKK+S+m+ihgOiAhSA8IGt5b3VrZXRzdXNoYVwgOwor5Zu95YuZ5aSn6IejIDwga29rdW11ZGFpamluXCA7Civmna/kuosgPCBzYWthenVraWdvdG9cIDsKK+iogOiqnumanOWusyA8IGdlbmdvc2hvdWdhaVwgOwor5YaN6LKp5L6h5qC8IDwgc2FpaGFua2FrYWt1XCA7CivlubPlnYfmoKrkvqEgPCBoZWlraW5rYWJ1a2FcIDsKK+WuieaBr+mmmemFuCA8IGFuc29rdWtvdXNhblwgOwor6K2c5Luj5aSn5ZCNIDwgZnVkYWlkYWlteW91XCA7Civlj47lhaXlvbkgPCBzaHV1bnl1dXlha3VcIDsKK+evgOeUqOmbhiA8IHNldHN1eW91c2h1dVwgOwor6YWN6YGU5paZIDwgaGFpdGF0c3VyeW91XCA7CivpoZ7nvqnoqp7ovp7lhbggPCBydWlnaWdvaml0ZW5cIDsKK+mBk+i3r+ioiOeUuyA8IGRvdXJva2Vpa2FrdVwgOwor5Y+k6Ieq5YuV6LuKIDwgZnVydWppZG91c2hhXCA7Civni6zmnpUgPCBoaXRvcmltYWt1cmFcIDsKK+WuueWnv+err+m6lyA8IHlvdXNoaXRhbnJlaVwgOwor5paw5Y2S6ICFIDwgc2hpbnNvdHN1c2hhXCA7Civoq4vosqDmpa3ogIUgPCB1a2VvaWd5b3VzaGFcIDsKK+mAmuW4uOWPo+iqniA8IHRzdXVqb3Vrb3Vnb1wgOwor5Zyo5aSW6YKm5Lq6IDwgemFpZ2FpaG91amluXCA7Civlj47nm6PlipsgPCBzaHV1a2Fucnlva3VcIDsKK+mWi+aUvue1jOa4iCA8IGthaWhvdWtlaXphaVwgOwor55m+6JGJ566xIDwgaHlha3V5b3ViYWtvXCA7CivkvZPmk43nq7bmioAgPCB0YWlzb3VreW91Z2lcIDsKK+WKtOWDjeWQjOebnyA8IHJvdWRvdWRvdW1laVwgOwor5Zu96Zqb6YO95biCIDwga29rdXNhaXRvc2hpXCA7CivmnInliLrpiYTnt5ogPCB5dXVzaGl0ZXNzZW5cIDsKK+Wbo+S9k+ihjOWLlSA8IGRhbnRhaWtvdWRvdVwgOwor5b+c55So5pWw5a2mIDwgb3V5b3VzdXVnYWt1XCA7CivljZTlipvogIUgPCBreW91cnlva3VzaGFcIDsKK+S6pOmAmuW3oeafuyA8IGtvdXRzdXVqdW5zYVwgOwor6YCf6YGU5L6/IDwgc29rdXRhdHN1YmluXCA7CivnhKHmlbXoiabpmoogPCBtdXRla2lrYW50YWlcIDsKK+iIquepuuS8muekviA8IGtvdWt1dWdhaXNoYVwgOwor6YqA55m96ImyIDwgZ2luaGFrdXNob2t1XCA7CivlpKfmlL/lpYnpgoQgPCB0YWlzZWlob3VrYW5cIDsKK+S4jeaSk+S4jeWxiCA8IGZ1dG91ZnVrdXRzdVwgOwor55u46Zai6Zai5L+CIDwgc291a2Fua2Fua2VpXCA7CivlkIznm5/nvbfmpa0gPCBkb3VtZWloaWd5b3VcIDsKK+WkvuerueahgyA8IGt5b3VjaGlrdXRvdVwgOwor6LuN5YKZ56u25LqJIDwgZ3VuYmlreW91c291XCA7CivlvaLlrrnli5XoqZ4gPCBrZWl5b3Vkb3VzaGlcIDsKK+ijnOe1puW5uee3miA8IGhva3l1dWthbnNlblwgOwor55Wc55Sf6YGTIDwgY2hpa3VzaG91ZG91XCA7Civpm6rovrHmiKYgPCBzZXRzdWpva3VzZW5cIDsKK+eCuuabv+ijgeWumiA8IGthd2FzZXNhaXRlaVwgOwor6KGo54++5Li7576pIDwgaHlvdWdlbnNodWdpXCA7CivmnbHkuqznnYAgPCB0b3VreW91Y2hha3VcIDsKK+mbu+S/oeWxgCA8IGRlbnNoaW5reW9rdVwgOwor5paH5pWZ5Zyw5Yy6IDwgYnVua3lvdWNoaWt1XCA7CivpnZLoibLnl4cgPCBzZWlzaG9rdXNob3VcIDsKK+W6g+WRiuS4uyA8IGtvdWtva3VudXNoaVwgOwor6YeR5bGe55ay5Yq0IDwga2luem9rdWhpcm91XCA7Civlj7Pmlrnpq5jpupfmpb0gPCB1aG91a29tYWdha3VcIDsKK+W8t+WItueWjumWiyA8IGt5b3VzZWlzb2thaVwgOwor5p2x5Lqs55m6IDwgdG91a3lvdWhhdHN1XCA7Civoraboppbnt4/nm6MgPCBrZWlzaGlzb3VrYW5cIDsKK+S7o+ihqOekvuWToSA8IGRhaWh5b3VzaGFpblwgOwor5YCf5bGL5L2P5bGFIDwgc2hha3V5YXp1bWFpXCA7CivlvrTlhbXliLbluqYgPCBjaG91aGVpc2VpZG9cIDsKK+efreacn+Wkp+WtpiA8IHRhbmtpZGFpZ2FrdVwgOwor56uL5L2T5pS+6YCBIDwgcml0dGFpaG91c291XCA7CivlhajouqvmtbQgPCB6ZW5zaGluJyd5b2t1XCA7CivlnKfov6vljIXluK8gPCBhcHBha3Vob3V0YWlcIDsKK+WkieizquiAhSA8IGhlbnNoaXRzdXNoYVwgOwor6YCa55So5pyf6ZaTIDwgdHN1dXlvdWtpa2FuXCA7Civli4nlvLfmmYLplpMgPCBiZW5reW91amlrYW5cIDsKK+aIuOexjeishOacrCA8IGtvc2VraXRvdWhvblwgOwor5a625bqt5pWZ6IKyIDwga2F0ZWlreW91aWt1XCA7CivlnLDpnIfmjqLpibEgPCBqaXNoaW50YW5rb3VcIDsKK+mBv+mbo+air+WtkCA8IGhpbmFuYmFzaGlnb1wgOwor5aSP5pyo56uLIDwgbmF0c3Vrb2RhY2hpXCA7CivnpL7kvJrlpYnku5UgPCBzaGFrYWlob3VzaGlcIDsKK+WpmuWkluaAp+S6pCA8IGtvbmdhaXNlaWtvdVwgOwor5LiN5Y+v5oqX5YqbIDwgZnVrYWtvdXJ5b2t1XCA7CivkuIDloYogPCBoaXRva2F0YW1hcmlcIDsKK+itpuWvn+W6gSA8IGtlaXNhdHN1Y2hvdVwgOwor5qWt55WM5YidIDwgZ3lvdWthaWhhdHN1XCA7Civln7fooYzmqZ/plqIgPCBzaGlra291a2lrYW5cIDsKK+WLpOWLmeipleWumiA8IGtpbm11aHlvdXRlaVwgOwor5aSp6ZW356+AIDwgdGVuY2hvdXNldHN1XCA7CivluLjnlKjlr77mlbAgPCBqb3V5b3V0YWlzdXVcIDsKK+WomOW/gyA8IG11c3VtZWdva29yb1wgOwor5aSn6YGT6Iq45Lq6IDwgZGFpZG91Z2VpbmluXCA7Civpu5Lpoqjnmb3pm6ggPCBrb2t1ZnV1aGFrdXVcIDsKK+iCpeWOmuaAp+m8u+eCjiA8IGhpa291c2VpYmllblwgOwor6YqA6KGM5qWt5YuZIDwgZ2lua291Z3lvdW11XCA7Civnj77lnLDoqr/mn7sgPCBnZW5jaGljaG91c2FcIDsKK+mBoOa0i+iIqua1tyA8IGVuJyd5b3Vrb3VrYWlcIDsKK+WkluS6pOmWouS/giA8IGdhaWtvdWthbmtlaVwgOwor56eB5a2m5Yqp5oiQIDwgc2hpZ2FrdWpvc2VpXCA7CivnlKPopKXnhrEgPCBzYW5qb2t1bmV0c3VcIDsKK+eEoeeXm+WIhuWoqSA8IG11dHN1dWJ1bmJlblwgOwor5LiN6Imv5YK15qipIDwgZnVyeW91c2Fpa2VuXCA7CivlnLDln5/mmYLliLsgPCBjaGlpa2lqaWtva3VcIDsKK+WHueeJiOWNsOWItyA8IG91aGFuaW5zYXRzdVwgOwor5Z+65bm555Sj5qWtIDwga2lrYW5zYW5neW91XCA7Civot6/kuIrpp5Dou4ogPCByb2pvdWNodXVzaGFcIDsKK+WNmOWLneW8jyA8IHRhbnNob3VzaGlraVwgOwor5Lqc6YW45YyW56qS57SgIDwgYXNhbmthY2hpc3NvXCA7CivpppbohLPkvJroq4cgPCBzaHVub3VrYWlkYW5cIDsKK+eLrOijgeaUv+ayuyA8IGRva3VzYWlzZWlqaVwgOwor5aSW5Lqk5ZWP6aGMIDwgZ2Fpa291bW9uZGFpXCA7CivpoK3poILpqqggPCB0b3VjaG91a290c3VcIDsKK+egtOeUo+eUs+iriyA8IGhhc2Fuc2hpbnNlaVwgOwor6YO35Zyf6Iq46IO9IDwga3lvdWRvZ2Vpbm91XCA7CivlvozmlrnlnLDln58gPCBrb3Vob3VjaGlpa2lcIDsKK+WkqumZveaUvuWwhCA8IHRhaXlvdWhvdXNoYVwgOwor5aOK6KGA55eFIDwga2Fpa2V0c3VieW91XCA7Civopb/mtIvmlofmmI4gPCBzZWl5b3VidW5tZWlcIDsKK+aMr+abv+i8uOmAgSA8IGZ1cmlrYWV5dXNvdVwgOwor5Lqk5o+b5p2h5Lu2IDwga291a2Fuam91a2VuXCA7CivnmbrooYzluILloLQgPCBoYWtrb3VzaGlqb3VcIDsKK+S4gOaYqOaYqOW5tCA8IHNha2lvdG90b3NoaVwgOwor6KO96I+T5qWt6ICFIDwgc2Vpa2FneW91c2hhXCA7CivnnIvmnb/lqJggPCBrYW5iYW5tdXN1bWVcIDsKK+aEm+WbveWbo+S9kyA8IGFpa29rdWRhbnRhaVwgOwor5aSJ5b2i6KaP5YmHIDwgaGVua2Vpa2lzb2t1XCA7CivkurrmsJfmipXnpaggPCBuaW5raXRvdWh5b3VcIDsKK+eUt+Wls+W5s+etiSA8IGRhbmpvYnlvdWRvdVwgOwor6YO15L6/6JGJ5pu4IDwgeXV1YmluaGFnYWtpXCA7Civnt6jpm4blsYAgPCBoZW5zaHV1a3lva3VcIDsKK+aZtOW+jOmbqCA8IGhhcmVub2NoaWFtZVwgOwor5biC5aC05pKk6YCAIDwgc2hpam91dGV0dGFpXCA7CivlronlrprlkIzkvY3kvZMgPCBhbnRlaWRvdWl0YWlcIDsKK+Wumuacn+aknOiouiA8IHRlaWtpa2Vuc2hpblwgOwor5rWB5YuV6aOfIDwgcnl1dWRvdXNob2t1XCA7CivlpI/npa0gPCBuYXRzdW1hdHN1cmlcIDsKK+Wbo+S9k+ertuaKgCA8IGRhbnRhaWt5b3VnaVwgOwor6aOf6YGT5qW9IDwgc2hva3Vkb3VyYWt1XCA7CivmsJHplpPlm6PkvZMgPCBtaW5rYW5kYW50YWlcIDsKK+WwgeW7uuaAneaDsyA8IGhvdWtlbnNoaXNvdVwgOwor6Iiq57aa6Led6ZuiIDwga291em9rdWt5b3JpXCA7Civlj4zls7Dpp7Hpp50gPCBzb3Vob3VyYWt1ZGFcIDsKK+eZvuenkeWFqOabuCA8IGh5YWtrYXplbnNob1wgOwor6Kmm6KGM6Yyv6KqkIDwgc2hpa291c2FrdWdvXCA7Civlt6XloLTlnLDluK8gPCBrb3Vqb3VjaGl0YWlcIDsKK+avm+e5lOmMpiA8IGtlb3JpbmlzaGlraVwgOwor5pS/5rK75pS56Z2pIDwgc2VpamlrYWlrYWt1XCA7CivluILmsJHkvJrppKggPCBzaGltaW5rYWlrYW5cIDsKK+axguS6uuWPoyA8IGt5dXVqaW5ndWNoaVwgOwor5pyJ6ZmQ5Lya56S+IDwgeXV1Z2VuZ2Fpc2hhXCA7Civph43llYbkuLvnvqkgPCBqdXVzaG91c2h1Z2lcIDsKK+mnheWJjeW6g+WgtCA8IGVraW1hZWhpcm9iYVwgOwor57WC552A6aeFIDwgc2h1dWNoYWt1ZWtpXCA7CivmlL/msrvosqzku7sgPCBzZWlqaXNla2luaW5cIDsKK+m7kuawtOeGsSA8IGtva3VzdWluZXRzdVwgOwor5Luu6YCy57SaIDwga2FyaXNoaW5reXV1XCA7CivlsILmpa3kuLvlqaYgPCBzZW5neW91c2h1ZnVcIDsKK+ePvuWgtOebo+edoyA8IGdlbmJha2FudG9rdVwgOwor5YWs6Lui5ZGo5pyfIDwga291dGVuc2h1dWtpXCA7Civlj6PkuInlkbPnt5ogPCBrdWNoaWphbWlzZW5cIDsKK+mFjemBlOWFiCA8IGhhaXRhdHN1c2FraVwgOwor5a+d54mp6KqeIDwgbmVtb25vZ2F0YXJpXCA7CivkuIDmmKjmmKjlpJwgPCBpc3Nha3VzYWt1eWFcIDsKK+iLpeauv+WOnyA8IHdha2F0b25vYmFyYVwgOwor6KGA5riF6IKd54KOIDwga2Vzc2Vpa2FuJydlblwgOwor5Lq66Leh5pyq6LiPIDwgamluc2VraW1pdG91XCA7CivlvLfliLbkv53pmbogPCBreW91c2VpaG9rZW5cIDsKK+S4gOacm+WNg+mHjCA8IGljaGlib3VzZW5yaVwgOwor5Ya36JS15a6kIDwgcmVpem91c2hpdHN1XCA7CivliJHli5nmiYDplbcgPCBrZWltdXNob2Nob3VcIDsKK+WgtOWGheaUvumAgSA8IGpvdW5haWhvdXNvdVwgOwor5pyd5LiJ5pqu5ZubIDwgY2hvdXNhbmJvc2hpXCA7Civnpo/npYnlm73lrrYgPCBmdWt1c2hpa29ra2FcIDsKK+ayoeS6pOa4iSA8IGJvdHN1a291c2hvdVwgOwor6ZW35YiA5LiA5p6dIDwgY2hvdXRvdWlzc2hpXCA7CivpnZnohIjnmKQgPCBqb3VteWFrdXJ5dXVcIDsKK+eEoee3muW3peWtpiA8IG11c2Vua291Z2FrdVwgOwor5Yud5Yip5oqV5omLIDwgc2hvdXJpdG91c2h1XCA7CivlpKnmsJfmpoLms4EgPCB0ZW5raWdhaWt5b3VcIDsKK+mqqOe1hOe5lCA8IGtvdHN1c29zaGlraVwgOwor5Y2D5Y2S6ZW3IDwgc2Vuc290c3VjaG91XCA7CivnhKHluLjov4XpgJ8gPCBtdWpvdWppbnNva3VcIDsKK+ihjOWLleenkeWtpiA8IGtvdWRvdWthZ2FrdVwgOwor55u06L2E5ZywIDwgY2hva2thdHN1Y2hpXCA7CivkuojpmLLms6jlsIQgPCB5b2JvdWNodXVzaGFcIDsKK+aYlOW8jyA8IG11a2FzaGlzaGlraVwgOwor5qW156eY5oOF5aCxIDwgZ29rdWhpam91aG91XCA7CivlsIHlu7rnpL7kvJogPCBob3VrZW5zaGFrYWlcIDsKK+S4gOeti+e5qSA8IGhpdG9zdWppbmF3YVwgOwor5Yq05L2/57Sb5LqJIDwgcm91c2hpZnVuc291XCA7Civoh6rlraboh6rnv5IgPCBqaWdha3VqaXNodXVcIDsKK+S4jemAo+e2mue3miA8IGZ1cmVuem9rdXNlblwgOwor5rK75aSW5rOV5qipIDwgY2hpZ2FpaG91a2VuXCA7CivntYzmuIjlpJbkuqQgPCBrZWl6YWlnYWlrb3VcIDsKK+WIg+eJqeS4ieaYpyA8IGhhbW9ub3phbm1haVwgOwor5YWJ5a2m57mK57atIDwga291Z2FrdXNlbicnaVwgOwor5bCx6IG36ZujIDwgc2h1dXNob2t1bmFuXCA7CivlhajkvJHmraLnrKYgPCB6ZW5reXV1c2hpZnVcIDsKK+WSjOa0i+aKmOihtyA8IHdheW91c2V0Y2h1dVwgOwor5riF566X5Lya56S+IDwgc2Vpc2FuZ2Fpc2hhXCA7Civlu4Pol6nnva7nnIwgPCBoYWloYW5jaGlrZW5cIDsKK+iHqOW6iuism+e+qSA8IHJpbnNob3Vrb3VnaVwgOwor6Kqs57WM56+AIDwgc2Vra3lvdWJ1c2hpXCA7CivntJTml6XmnKzpoqggPCBqdW4nJ25paG9uZnV1XCA7CivmloflrZfnrKblj7fns7sgPCBtb2ppZnVnb3VrZWlcIDsKK+aMmeWbveS4gOiHtCA8IGt5b2tva3VpdGNoaVwgOwor5aSn6KGG6YGL5YuVIDwgdGFpc2h1dXVuZG91XCA7Civlv4Pouqvnl4cgPCBzaGluc2hpbnNob3VcIDsKK+W4guWgtOiqv+afuyA8IHNoaWpvdWNob3VzYVwgOwor5YWs6ZaL5aSW5LqkIDwga291a2FpZ2Fpa291XCA7CivpnaLkvJrlrqQgPCBtZW5rYWlzaGl0c3VcIDsKK+eLrOWJteWKmyA8IGRva3Vzb3VyeW9rdVwgOwor5aa55aiYIDwgaW1vdXRvbXVzdW1lXCA7CivlpKfolLXlpKfoh6MgPCBvb2t1cmFkYWlqaW5cIDsKK+S/ruato+S6iOeulyA8IHNodXVzZWl5b3NhblwgOwor5aeL5qWt5byPIDwgc2hpZ3lvdXNoaWtpXCA7CivooYzmlL/mqZ/plqIgPCBneW91c2Vpa2lrYW5cIDsKK+WMu+eZgui8uOmAgeapnyA8IGlyeW91eXVzb3VraVwgOwor5p2l5a6i562LIDwgcmFpa3lha3VzdWppXCA7CivpgLLlrablob4gPCBzaGluZ2FrdWp1a3VcIDsKK+ebrueahOagvCA8IG1va3V0ZWtpa2FrdVwgOwor5pS/5pWZ5YiG6ZuiIDwgc2Vpa3lvdWJ1bnJpXCA7CivmkK3kuZfmoYjlhoUgPCB0b3Vqb3VhbicnbmFpXCA7CivkupTkurrlm4PlrZAgPCBnb25pbmJheWFzaGlcIDsKK+eLrOWWhOS4u+e+qSA8IGRva3V6ZW5zaHVnaVwgOwor6Iiq56m65pu457ChIDwga291a3V1c2hva2FuXCA7Civos5vlkKblkIznpaggPCBzYW5waWRvdWh5b3VcIDsKK+S6uuaWh+Wtpua0viA8IGppbmJ1bmdha3VoYVwgOwor5o+055So55Sf55SjIDwgZW4nJ3lvdXNlaXNhblwgOwor5LiN6ICV5L2c5ZywIDwgZnVrb3VzYWt1Y2hpXCA7CivlpKfkvb/lhazpgrggPCB0YWlzaGlrb3V0ZWlcIDsKK+axuuitsOS6i+mghSA8IGtldHN1Z2lqaWtvdVwgOwor5qCh5q2j5L+CIDwga291c2VpZ2FrYXJpXCA7Civlipvoh6rmhaIgPCBjaGlrYXJhamltYW5cIDsKK+mBjumFuOWMluawtOe0oCA8IGthc2Fua2FzdWlzb1wgOwor5bGL5pW355S6IDwgeWFzaGlraW1hY2hpXCA7CivmuKnms4nnmYLms5UgPCBvbnNlbnJ5b3Vob3VcIDsKK+S4gOmhsOS4gOeskSA8IGlwcGluJydpc3Nob3VcIDsKK+mbu+awl+S/oeWPtyA8IGRlbmtpc2hpbmdvdVwgOwor6Zyc5p+xIDwgc2hpbW9iYXNoaXJhXCA7CivmnI3po77lk4EgPCBmdWt1c2hva3VoaW5cIDsKK+iGqOW8teeOhyA8IGJvdWNob3VyaXRzdVwgOwor5bCC566h5rC05Z+fIDwgc2Vua2Fuc3VpaWtpXCA7CivlpKnkvZPltIfmi50gPCB0ZW50YWlzdXVoYWlcIDsKK+iJr+W/g+eahCA8IHJ5b3VzaGludGVraVwgOwor55u45LqS5Y+C54WnIDwgc291Z29zYW5zaG91XCA7CivlibLng7nmlpnnkIYgPCBrYXBwb3VyeW91cmlcIDsKK+epuuW/teS7jyA8IHNvcmFuZW5idXRzdVwgOwor6YOK5aSW6Zu76LuKIDwga291Z2FpZGVuc2hhXCA7Civnmobnmobmp5ggPCBtaW5hbWluYXNhbWFcIDsKK+S/ruato+S4u+e+qSA8IHNodXVzZWlzaHVnaVwgOwor6IO9546H57WmIDwgbm91cml0c3VreXV1XCA7Civoo5zlvLfoqLzmi6AgPCBob2t5b3VzaG91a29cIDsKK+aYn+WNsCA8IGhvc2hpamlydXNoaVwgOwor5aCG56mN54mpIDwgdGFpc2VraWJ1dHN1XCA7CivkurrmnZDpioDooYwgPCBqaW56YWlnaW5rb3VcIDsKK+i/keS7o+mfs+alvSA8IGtpbmRhaW9uZ2FrdVwgOwor6KOP6Z2i5bel5L2cIDwgcmltZW5rb3VzYWt1XCA7Civms5XmsrvnpL7kvJogPCBob3VjaGlzaGFrYWlcIDsKK+WHuue0jeS/giA8IHN1aXRvdWdha2FyaVwgOwor5aSn55uk5oyv6IieIDwgb29iYW5idXJ1bWFpXCA7CivkuInlspDku6PooaggPCBzYW5naWRhaWh5b3VcIDsKK+iThOepjeeuoSA8IGNoaWt1c2VraWthblwgOwor54us6Lqr6ICFIDwgZG9rdXNoaW5tb25vXCA7CivmlZnlk6HntYTlkIggPCBreW91aW5rdW1pYWlcIDsKK+a1t+mbo+aVkeWKqSA8IGthaW5hbmt5dXVqb1wgOwor6Yyy6Z+z5pS+6YCBIDwgcm9rdW9uaG91c291XCA7CivkuInogIXlh6HpgIAgPCBzYW5zaGFib250YWlcIDsKK+efs+erueiJsiA8IHNla2ljaGlrdWlyb1wgOwor55u06IW455mMIDwgY2hva3VjaG91Z2FuXCA7CivnqoHnmbrnmoQgPCB0b3BwYXRzdXRla2lcIDsKK+aXpeacrOa1t+a1gSA8IG5paG9ua2Fpcnl1dVwgOwor5Y+y5LiK5pyA5aSnIDwgc2hpam91c2FpZGFpXCA7CivoirjooZPnmoQgPCBnZWlqdXRzdXRla2lcIDsKK+mdnuaZtuizqiA8IGhpc2hvdXNoaXRzdVwgOwor6KiY5oa26Zqc5a6zIDwga2lva3VzaG91Z2FpXCA7CivkuI3lirTmiYDlvpcgPCBmdXJvdXNob3Rva3VcIDsKK+iAgeiNmOaAneaDsyA8IHJvdXNvdXNoaXNvdVwgOwor546J6JyA6buNIDwgdG91bW9yb2tvc2hpXCA7Civou43pnIDlt6Xmpa0gPCBndW5qdWtvdWd5b3VcIDsKK+Wwj+W/g+iAhSA8IHNob3VzaGlubW9ub1wgOwor6Zui5ZCI6ZuG5pWjIDwgcmlnb3VzaHV1c2FuXCA7Civoia/lprvos6Lmr40gPCByeW91c2Fpa2VuYm9cIDsKK+i7jeWPuOS7pOWumCA8IGd1bnNoaXJlaWthblwgOwor6buS5rC05byVIDwga3Vyb21penVoaWtpXCA7Civosr/mmJPkvJrnpL4gPCBib3Vla2lnYWlzaGFcIDsKK+eHkOmFuOiCpeaWmSA8IHJpbnNhbmhpcnlvdVwgOwor5oSf54ax5YmkIDwga2FuJyduZXRzdXphaVwgOwor54Sh6ZmQ6LKs5Lu7IDwgbXVnZW5zZWtpbmluXCA7CivlqK/mpb3lrqQgPCBnb3Jha3VzaGl0c3VcIDsKK+mOrueXm+iWrCA8IGNoaW50c3V1eWFrdVwgOwor56eR5a2m5oCd5oOzIDwga2FnYWt1c2hpc291XCA7Civlm5vmtbflkIzog54gPCBzaGlrYWlkb3Vob3VcIDsKK+S7o+eQhuWnlOS7u+eKtiA8IGRhaXJpaW5pbmpvdVwgOwor5YGl5bq35ZWP6aGMIDwga2Vua291bW9uZGFpXCA7CivmhJ/lgrfkuLvnvqkgPCBrYW5zaG91c2h1Z2lcIDsKK+mmrOmgreims+mfsyA8IGJhdG91a2FuJydub25cIDsKK+Wkqemggui3nemboiA8IHRlbmNob3VreW9yaVwgOwor6IO9546H55qEIDwgbm91cml0c3V0ZWtpXCA7Civoqr/mn7vpg6jplbcgPCBjaG91c2FidWNob3VcIDsKK+WQiOWUseabsiA8IGdhc3Nob3VreW9rdVwgOwor5Li56aCC6ba0IDwgdGFuY2hvdWR6dXJ1XCA7CivooYzli5Xlkb3ku6QgPCBrb3Vkb3VtZWlyZWlcIDsKK+eCuuabv+aJi+W9oiA8IGthd2FzZXRlZ2F0YVwgOwor6LWk6YGT5rCX5ZujIDwgc2VraWRvdWtpZGFuXCA7CivnqbrkuK3okL3kuIsgPCBrdXVjaHV1cmFra2FcIDsKK+mdqeaWsOeahCA8IGtha3VzaGludGVraVwgOwor5a6a5qC86I236YeNIDwgdGVpa2FrdWthanV1XCA7Civngrrmm7/pioDooYwgPCBrYXdhc2VnaW5rb3VcIDsKK+WumOiDveS4u+e+qSA8IGthbicnbm91c2h1Z2lcIDsKK+WutuW6reaVmeW4qyA8IGthdGVpa3lvdXNoaVwgOwor5pi85aSc5YW86KGMIDwgY2h1dXlha2Vua291XCA7CivlrqLllYblo7IgPCBreWFrdXNob3ViYWlcIDsKK+S4gOaLrOW8jyA8IGlra2F0c3VzaGlraVwgOwor55Wc55Sj5qWtIDwgY2hpa3VzYW5neW91XCA7CivkvJrnpL7llrbmpa0gPCBrYWlzaGFlaWd5b3VcIDsKK+iii+m8oCA8IGZ1a3Vyb25lenVtaVwgOwor5ZWT6JKZ5oCd5oOzIDwga2VpbW91c2hpc291XCA7CivpnZ7lvqrnkrDnmoQgPCBoaWp1bmthbnRla2lcIDsKK+aWh+awkee1seWItiA8IGJ1bm1pbnRvdXNlaVwgOwor6YGO6YW45YyW54mpIDwga2FzYW5rYWJ1dHN1XCA7CivkuIDlv7XnmbrotbcgPCBpY2hpbmVuaG9ra2lcIDsKK+WHuuihgOatuyA8IHNodWtrZXRzdXNoaVwgOwor6IKy5oiQ5qC95Z+5IDwgaWt1c2Vpc2FpYmFpXCA7Civnj77loLTmpJzoqLwgPCBnZW5iYWtlbnNob3VcIDsKK+aZguS7o+iAg+iovCA8IGppZGFpa291c2hvdVwgOwor5oSf5bqm6Imv5aW9IDwga2FuZG9yeW91a291XCA7Civnmb3pq6rpoK0gPCBzaGlyYWdhYXRhbWFcIDsKK+mAj+aYjuS6uumWkyA8IHRvdW1laW5pbmdlblwgOwor5paw5b2i5byPIDwgc2hpbmtlaXNoaWtpXCA7CivluLjlpZfmiYvmrrUgPCBqb3V0b3VzaHVkYW5cIDsKK+WFseacieeJqSA8IGt5b3V5dXVidXRzdVwgOwor5ZKM5bmz5bel5L2cIDwgd2FoZWlrb3VzYWt1XCA7CivnlLPlkYrnrrEgPCBzaGlua29rdWJha29cIDsKK+aal+S4remjm+i6jSA8IGFuY2h1dWhpeWFrdVwgOwor5Lqc5a+S5biv5rCX5YCZIDwgYWthbnRhaWtpa291XCA7Civmm7jnlZnmlpkgPCBrYWtpdG9tZXJ5b3VcIDsKK+mrmOmfs+mDqOiomOWPtyA8IGtvdW9uYnVraWdvdVwgOwor5Lq65rCR6KOB5YikIDwgamlubWluc2FpYmFuXCA7Civmlr3ooYzopo/liYcgPCBzaGlrb3VraXNva3VcIDsKK+WNiui6q+S4jemajyA8IGhhbnNoaW5mdXp1aVwgOwor5biM6YeI54axIDwga2lzaGFrdW5ldHN1XCA7Civmma7pgJrlkI3oqZ4gPCBmdXRzdXVtZWlzaGlcIDsKK+WxseWPo+ecjCA8IHlhbWFndWNoaWtlblwgOwor5Z+3562G6ICFIDwgc2hpcHBpdHN1c2hhXCA7Civlr77osaHnr4Tlm7IgPCB0YWlzaG91aGFuJydpXCA7CivkurrmsJHmiKbnt5ogPCBqaW5taW5zZW5zZW5cIDsKK+ewoeaYjuW8t+WbuiA8IGthbm1laWt5b3Vrb1wgOwor5Y+v6IO96YG45oqeIDwga2Fub3VzZW50YWt1XCA7CivlsYvlhoXnq7bmioAgPCBva3VuYWlreW91Z2lcIDsKK+WkmuaDheS7j+W/gyA8IHRham91YnVzc2hpblwgOwor5Y2Y57SU6KiI566XIDwgdGFuanVua2Vpc2FuXCA7CivlhazooYbpm7voqbEgPCBrb3VzaHV1ZGVud2FcIDsKK+WVhuWPluW8lSA8IHNob3V0b3JpaGlraVwgOwor6Iqx6Ieq5YuV6LuKIDwgaGFuYWppZG91c2hhXCA7CivkvY3nm7jlub7kvZXlraYgPCBpc291a2lrYWdha3VcIDsKK+akjeeJqeayuSA8IHNob2t1YnV0c3V5dVwgOwor5pS+6JWp5oGv5a2QIDwgaG91dG91bXVzdWtvXCA7Civlh7rooYDmlpEgPCBzaHVra2V0c3VoYW5cIDsKK+S8geeUu+WupCA8IGtpa2FrdXNoaXRzdVwgOwor5L615YWl6LuNIDwgc2hpbicnbnl1dWd1blwgOwor5YaZ55yf5qmf5bqXIDwgc2hhc2hpbmtpdGVuXCA7CivmvIHnjbLniakgPCBneW9rYWt1YnV0c3VcIDsKK+S4ieetiei7jeabuSA8IHNhbnRvdWd1bnNvdVwgOwor57eK5oCl6YCu5o2VIDwga2lua3l1dXRhaWhvXCA7CivlipvlrabnmoQgPCByaWtpZ2FrdXRla2lcIDsKK+iynuaTjei5gui6qiA8IHRlaXNvdWp1dXJpblwgOwor5b+D6IK65qmf6IO9IDwgc2hpbnBhaWtpbm91XCA7CivntITmnZ/kuosgPCB5YWt1c29rdWdvdG9cIDsKK+mbjOmbhOWQjOagqiA8IHNoaXl1dWRvdXNodVwgOwor6aCG6aKo5rqA5biGIDwganVucHV1bWFucGFuXCA7CivlrabmoKHms5XkurogPCBnYWtrb3Vob3VqaW5cIDsKK+WkieS9jembu+a1gSA8IGhlbicnaWRlbnJ5dXVcIDsKK+WJjeWTqOWLpOWLmSA8IHplbnNob3VraW5tdVwgOwor57WM5bi35a2QIDwga3lvdWthdGFiaXJhXCA7CivmtbfmtIvnp5HlraYgPCBrYWl5b3VrYWdha3VcIDsKK+i+suawkemBi+WLlSA8IG5vdW1pbicndW5kb3VcIDsKK+eBq+a2iOWjtyA8IGhpa2VzaGl0c3Vib1wgOwor6LKs5Lu756+E5ZuyIDwgc2VraW5pbmhhbicnaVwgOwor55m65YWJ5aGX5paZIDwgaGFra291dG9yeW91XCA7CivmhJ/lv5zkvZznlKggPCBrYW4nJ25vdXNheW91XCA7CivliKnkvJHpvKAgPCByaWt5dXVuZXp1bWlcIDsKK+WtkOaMgeaYhuW4gyA8IGtvbW9jaGlrb25idVwgOwor5biC5Za25L2P5a6FIDwgc2hpZWlqdXV0YWt1XCA7CivpoIblv5zlipsgPCBqdW4nJ25vdXJ5b2t1XCA7Civkuovmpa3pg6jplbcgPCBqaWd5b3VidWNob3VcIDsKK+Wkp+iDhuS4jeaVtSA8IGRhaXRhbmZ1dGVraVwgOwor5LyK5Yui5aSn56We5a6uIDwgaXNlZGFpamluZ3V1XCA7CivlpKnlnLDlibXpgKAgPCB0ZW5jaGlzb3V6b3VcIDsKK+W4guWgtOe1jOa4iCA8IHNoaWpvdWtlaXphaVwgOwor57aa5p+EIDwgdHN1ZHp1a2lnYXJhXCA7CivkuojlrprmnJ/ml6UgPCB5b3RlaWtpaml0c3VcIDsKK+WMu+eZguaKgOihkyA8IGlyeW91Z2lqdXRzdVwgOwor5LiL5Y2K6LqrIDwgc2hpbW9oYW5zaGluXCA7CivooajmsbrmqKkgPCBoeW91a2V0c3VrZW5cIDsKK+aKnuS4gOeahCA8IHRha3VpdHN1dGVraVwgOwor5L2/5b255YuV6KmeIDwgc2hpZWtpZG91c2hpXCA7CivmtYHli5XniakgPCByeXV1ZG91YnV0c3VcIDsKK+mZs+i/sOabuCA8IGNoaW5qdXRzdXNob1wgOwor5b605YW15qSc5p+7IDwgY2hvdWhlaWtlbnNhXCA7Civoh6rlrrbnmbrpm7sgPCBqaWthaGF0c3VkZW5cIDsKK+i/veaCvOW8jyA8IHRzdWl0b3VzaGlraVwgOwor5ZCM6Kqe5Y+N5b6pIDwgZG91Z29oYW5wdWt1XCA7CivlvIHoq5blpKfkvJogPCBiZW5yb250YWlrYWlcIDsKK+S4gOiIrOaKleelqCA8IGlwcGFudG91aHlvdVwgOwor5LiA5Lq65oGv5a2QIDwgaGl0b3JpbXVzdWtvXCA7Civpo7Lpo5/niakgPCBpbnNob2t1YnV0c3VcIDsKK+mAgOW9uei7jeS6uiA8IHRhaWVraWd1bmppblwgOwor5Lq655Sf5pyA5oKqIDwgamluc2Vpc2FpYWt1XCA7CivljbDliqDpm7vlnKcgPCBpbmthZGVuJydhdHN1XCA7CivmtrLmgKfpmZDnlYwgPCBla2lzZWlnZW5rYWlcIDsKK+S6jOmFuOWMlueCree0oCA8IG5pc2Fua2F0YW5zb1wgOwor5qCE6aSK5a2m6ICFIDwgZWl5b3VnYWt1c2hhXCA7CivmmLzpo5/kvJogPCBjaHV1c2hva3VrYWlcIDsKK+mDveW4guS6pOmAmiA8IHRvc2hpa291dHN1dVwgOwor55Wc55Sj5a2mIDwgY2hpa3VzYW5nYWt1XCA7CivkuqTmj5vmlZnmjoggPCBrb3VrYW5reW91anVcIDsKK+WtpueUn+aZguS7oyA8IGdha3VzZWlqaWRhaVwgOwor6K2Y5a2X546HIDwgc2hpa2lqaXJpdHN1XCA7CivmhJvnpL7nsr7npZ4gPCBhaXNoYXNlaXNoaW5cIDsKK+iAgeWMluePvuixoSA8IHJvdWthZ2Vuc2hvdVwgOwor6by76auY6auYIDwgaGFuYXRha2FkYWthXCA7CivnpL7kvJrllY/poYwgPCBzaGFrYWltb25kYWlcIDsKK+ebsueuoemKg+WJtSA8IG1vdWthbmp1dXNvdVwgOwor54m55Yil5rOVIDwgdG9rdWJldHN1aG91XCA7CivmnbHmtbflnLDmlrkgPCB0b3VrYWljaGlob3VcIDsKK+WHuua8geaoqSA8IHNodXRzdWd5b2tlblwgOwor55m66KGM5Lya56S+IDwgaGFra291Z2Fpc2hhXCA7Civov5HmiYDlkIjlo4EgPCBraW5qb2dhcHBla2lcIDsKK+mfs+WjsOWcp+e4riA8IG9uc2VpYXNzaHVrdVwgOwor5rCR5peP5Li7576pIDwgbWluem9rdXNodWdpXCA7CivlsILploDnp5Hnm64gPCBzZW5tb25rYW1va3VcIDsKK+a4m+mHj+e1jOWWtiA8IGdlbnJ5b3VrZWllaVwgOwor552h55yg5LiN6LazIDwgc3VpbWluYnVzb2t1XCA7CivpgYvpgIHlpZHntIQgPCB1bnNvdWtlaXlha3VcIDsKK+iInuWPsOS4ree2mSA8IGJ1dGFpY2h1dWtlaVwgOwor5LiL5bGk6ZqO57SaIDwga2Fzb3VrYWlreXV1XCA7Civps7bogbfkurogPCB0b2Jpc2hva3VuaW5cIDsKK+e1jOa4iOmXmOS6iSA8IGtlaXphaXRvdXNvdVwgOwor5LiN6Imv5bCR5aWzIDwgZnVyeW91c2hvdWpvXCA7Civlv5zmj7TmvJToqqwgPCBvdWVuJydlbnpldHN1XCA7Civpjq7prYLmm7IgPCBjaGlua29ua3lva3VcIDsKK+ihjOWLleWNiuW+hCA8IGtvdWRvdWhhbmtlaVwgOwor5Ye65ryU5paZIDwgc2h1dHN1ZW5yeW91XCA7CivlnLDpnIflnLDluK8gPCBqaXNoaW5jaGl0YWlcIDsKK+mAmumBjuiyv+aYkyA8IHRzdXVrYWJvdWVraVwgOwor57Wx6KiI5bm06ZGRIDwgdG91a2VpbmVua2FuXCA7CivkurrmiYvkuI3otrMgPCBoaXRvZGVidXNva3VcIDsKK+mAmuS/l+eahCA8IHRzdXV6b2t1dGVraVwgOwor5Y2B5Lit5YWr5LmdIDwgaml0Y2h1dWhha2t1XCA7Civmu4vlvLfpo7LmlpkgPCBqaWt5b3VpbnJ5b3VcIDsKK+Wbm+inkuWPt+eivCA8IHNoaWtha3Vnb3VtYVwgOwor5Zu65a6a6Kaz5b+1IDwga290ZWlrYW4nJ25lblwgOwor5L2O6Z+z6YOo6KiY5Y+3IDwgdGVpb25idWtpZ291XCA7CivntYzpqJPnp5HlraYgPCBrZWlrZW5rYWdhZ3VcIDsKK+iNt+mbu+eykuWtkCA8IGthZGVucnl1dXNoaVwgOwor5Lq65bel55Sf5ZG9IDwgamlua291c2VpbWVpXCA7Civpm7vmsJfmlpnph5EgPCBkZW5raXJ5b3VraW5cIDsKK+W+gOW+qeiRieabuCA8IG91ZnVrdWhhZ2FraVwgOwor5Lq66YCg55+z5rK5IDwgamluem91c2VraXl1XCA7CivlnJ/om40gPCB0c3VjaGlib3RhcnVcIDsKK+WkqeeruueJoeS4uSA8IHRlbmppa3Vib3RhblwgOwor5b6h6aaz6LWw5qeYIDwgZ29jaGlzb3VzYW1hXCA7CivkvrXlhaXogIUgPCBzaGluJydueXV1c2hhXCA7CivlpKnot6/mrbTnqIsgPCB0ZW5yb3Jla2l0ZWlcIDsKK+WFseWQjOS+v+aJgCA8IGt5b3Vkb3ViZW5qb1wgOwor5pqX5q665pyq6YGCIDwgYW5zYXRzdW1pc3VpXCA7CivmnKrmiZXosrvnlKggPCBtaWhhcmFpaGl5b3VcIDsKK+epuuWHuuW8tSA8IGthcmFzaHV0Y2hvdVwgOwor55u45LqS6YWN5bGeIDwgc291Z29oYWl6b2t1XCA7CivnoLTpoZTkuIDnrJEgPCBoYWdhbicnaXNzaG91XCA7CivooYDlnKfoqIggPCBrZXRzdWF0c3VrZWlcIDsKK+iDhuaxgeizqiA8IHRhbmp1dXNoaXRzdVwgOwor5rK755mC5Yq55p6cIDwgY2hpcnlvdWtvdWthXCA7CivnjJ/lrpjliLbluqYgPCByeW91a2Fuc2VpZG9cIDsKK+WPjuWuueaCo+iAhSA8IHNodXV5b3VrYW5qYVwgOwor5q2m6Zm15qGD5rqQIDwgYnVyeW91dG91Z2VuXCA7CivkurrmsJHmiYDmnIkgPCBqaW5taW5zaG95dXVcIDsKK+WPjeWwhOS/guaVsCA8IGhhbnNoYWtlaXN1dVwgOwor5bel5qWt5oSP5YygIDwga291Z3lvdWlzaG91XCA7Civnm7jlr77oqZXkvqEgPCBzb3V0YWloeW91a2FcIDsKK+e1jOa4iOWVj+mhjCA8IGtlaXphaW1vbmRhaVwgOwor6buE56Kn546JIDwga291aGVraWd5b2t1XCA7CivpmpTmnIjliIogPCBrYWt1Z2V0c3VrYW5cIDsKK+S4ieWNgeWFreioiCA8IHNhbmp1dXJva2tlaVwgOwor5q6L5qWt5omL5b2TIDwgemFuZ3lvdXRlYXRlXCA7CivmipXnkIPli5XkvZwgPCB0b3VreXV1ZG91c2FcIDsKK+mYsueBveiok+e3tCA8IGJvdXNhaWt1bnJlblwgOwor6ICQ55So5bm05pWwIDwgdGFpeW91bmVuc3V1XCA7CivmsJHlrprmhrLms5UgPCBtaW50ZWlrZW5wb3VcIDsKK+emj+WIqeWOmueUnyA8IGZ1a3VyaWtvdXNlaVwgOwor5raI6ICX5ZOB6LK7IDwgc2hvdW1vdWhpbmhpXCA7CivlrabntJrplonpjpYgPCBnYWtreXV1aGVpc2FcIDsKK+S6uueUn+iomOmMsiA8IGppbnNlaWtpcm9rdVwgOwor5a6f5Yip5Li7576pIDwgaml0c3VyaXNodWdpXCA7Civlvqnljp/lipsgPCBmdWt1Z2Vucnlva3VcIDsKK+ero+W3peW8jyA8IHNodW5rb3VzaGlraVwgOwor5YWs5L2/6aSo5ZOhIDwga291c2hpa2FuJydpblwgOwor56u25LqJ546HIDwga3lvdXNvdXJpdHN1XCA7CivnqY3nq4vph5EgPCB0c3VtaXRhdGVraW5cIDsKK+akjeeJqeWckiA8IHNob2t1YnV0c3VlblwgOwor6YCy5YyW6KuW6ICFIDwgc2hpbmthcm9uc2hhXCA7CivnqbrkuK3mqZ/li5UgPCBrdXVjaHV1a2lkb3VcIDsKK+aKleelqOe1kOaenCA8IHRvdWh5b3VrZWtrYVwgOwor5YmN5o+Q5p2h5Lu2IDwgemVudGVpam91a2VuXCA7CivlpJbkurrpgbjmiYsgPCBnYWlqaW5zZW5zaHVcIDsKK+W3qOWkp+WIhuWtkCA8IGt5b2RhaWJ1bnNoaVwgOwor6LSL6YCg57SZ5bmjIDwgZ2Fuem91c2hpaGVpXCA7Civni6zouqvlr64gPCBkb2t1c2hpbnJ5b3VcIDsKK+aknOWumuippumokyA8IGtlbnRlaXNoaWtlblwgOwor6JeN57as6KSS56ugIDwgcmFuanVob3VzaG91XCA7Civlj7jms5XoqabpqJMgPCBzaGlob3VzaGlrZW5cIDsKK+aflOi7n+S9k+aTjSA8IGp1dW5hbnRhaXNvdVwgOwor5LiN6Imv5bCO5L2TIDwgZnVyeW91ZG91dGFpXCA7Civlr77miKbou4rnoLIgPCB0YWlzZW5zaGFob3VcIDsKK+WFpeacreiAhSA8IG55dXVzYXRzdXNoYVwgOwor5q275L2T6Kej5YmWIDwgc2hpdGFpa2FpYm91XCA7Civlhbzmpa3ovrLlrrYgPCBrZW5neW91bm91a2FcIDsKK+aWsOWFpeeUnyA8IHNoaW4nJ255dXVzZWlcIDsKK+WFrOmWi+mMsumfsyA8IGtvdWthaXJva3VvblwgOwor5rW36LuN5aSn6IejIDwga2FpZ3VuZGFpamluXCA7CivljZfkuqzoirHngasgPCBuYW5raW5oYW5hYmlcIDsKK+elnuisoembhiA8IHNoaW4nJ3lvdXNodXVcIDsKK+aJgeahg+iFuueCjiA8IGhlbnRvdXNlbicnZW5cIDsKK+S4reWkrumKgOihjCA8IGNodXVvdWdpbmtvdVwgOwor5Lih5qW156uvIDwgcnlvdWt5b2t1dGFuXCA7CivlnKfnuK7nqbrmsJcgPCBhc3NodWt1a3V1a2lcIDsKK+W4s+mdoumdoiA8IGNob3VtZW5kenVyYVwgOwor6KaL56mN5pu4IDwgbWl0c3Vtb3Jpc2hvXCA7CivnoJTliYrku6MgPCBrZW5zYWt1c2hpcm9cIDsKK+axuua4iOaJi+autSA8IGtlc3NhaXNodWRhblwgOwor5Luj55CG5qWt6ICFIDwgZGFpcmlneW91c2hhXCA7CivphY3nva7ou6Lmj5sgPCBoYWljaGl0ZW5rYW5cIDsKK+emgeayu+eUo+iAhSA8IGtpbmNoaXNhbnNoYVwgOwor5rS75YuV55qEIDwga2F0c3Vkb3V0ZWtpXCA7CivlhajouqvkuI3pmo8gPCB6ZW5zaGluZnV6dWlcIDsKK+aEm+S7luS4u+e+qeiAhSA8IGFpdGFzaHVnaXNoYVwgOwor5YWo6IO95YqbIDwgemVuJydub3VyeW9rdVwgOwor6YGL6Lui5oqA6KGTIDwgdW50ZW5naWp1dHN1XCA7Civpm7vlrZDpn7Pmpb0gPCBkZW5zaGlvbmdha3VcIDsKK+WNg+S4h+eEoemHjyA8IHNlbm1hbm11cnlvdVwgOwor6Ieq5q665bmH5YqpIDwgamlzYXRzdWhvdWpvXCA7Civku6PmlbDplqLmlbAgPCBkYWlzdXVrYW5zdXVcIDsKK+mfs+mfv+ioreioiCA8IG9ua3lvdXNla2tlaVwgOwor5Lmz5qeY56qB6LW3IDwgbnl1dXlvdXRva2tpXCA7CivkuovliY3libLlvZMgPCBqaXplbndhcmlhdGVcIDsKK+WFteW9ueWFjeeKtiA8IGhlaWVraW1lbmpvdVwgOwor5aSp5rav5a2k54usIDwgdGVuZ2Fpa29kb2t1XCA7CivkuI3mib/kuI3mib8gPCBmdXNob3VidXNob3VcIDsKK+eEoeaJgOWxnuePviA8IG11c2hvem9rdWdlblwgOwor5pyo6YCg5a625bGLIDwgbW9rdXpvdWthb2t1XCA7CivppIrogIHlubTph5EgPCB5b3Vyb3VuZW5raW5cIDsKK+S6i+WJjeeglOS/riA8IGppemVua2Vuc2h1dVwgOwor6aOf6IKJ6aGeIDwgc2hva3VuaWt1cnVpXCA7CivkvZPns7vmlofms5UgPCB0YWlrZWlidW5wb3VcIDsKK+iCuua0u+mHjyA8IGhhaWthdHN1cnlvdVwgOwor6ZuM6ZuE5ZCM5L2TIDwgc2hpeXV1ZG91dGFpXCA7CivplovnpajnjocgPCBrYWloeW91cml0c3VcIDsKK+W4uOitmOeahCA8IGpvdXNoaWtpdGVraVwgOwor5qeL6YCg5rGa6IG3IDwga291em91b3Nob2t1XCA7Civln7rnpI7nn6XorZggPCBraXNvY2hpc2hpa2lcIDsKK+WPjuWuueWKmyA8IHNodXV5b3VyeW9rdVwgOwor5Zyw5Z+f57Sb5LqJIDwgY2hpaWtpZnVuc291XCA7CivljZjls7Dpp7Hpp50gPCB0YW5wb3VyYWt1ZGFcIDsKK+ixoeW+tOeahCA8IHNob3VjaG91dGVraVwgOwor5Lq65rCX5ZWG5aOyIDwgbmlua2lzaG91YmFpXCA7CivljYPlp7/kuIfmhYsgPCBzZW5zaGliYW50YWlcIDsKK+WFrOacieiyoeeUoyA8IGtvdXl1dXphaXNhblwgOwor6Ieq5oWi6KmxIDwgamltYW5iYW5hc2hpXCA7Civmi5vlvoXlrqIgPCBzaG91dGFpa3lha3VcIDsKK+WFiOihjOaKleizhyA8IHNlbmtvdXRvdXNoaVwgOwor6KO96YCg5bel56iLIDwgc2Vpem91a291dGVpXCA7Civoh6rnlLHnq7bkuokgPCBqaXl1dWt5b3Vzb3VcIDsKK+W3nemtmuaWmeeQhiA8IGthd2F1b3J5b3VyaVwgOwor5Lqk6Z+/5puyIDwga291a3lvdWt5b2t1XCA7Civpm7vop6Pos6ogPCBkZW5rYWlzaGl0c3VcIDsKK+ePvuS7o+enkeWtpiA8IGdlbmRhaWthZ2FrdVwgOwor5bmz5bqV6Ii5IDwgaGlyYXNva29idW5lXCA7CivnlKPmpa3mqZ/morAgPCBzYW5neW91a2lrYWlcIDsKK+S4jeWQiOagvOiAhSA8IGZ1Z291a2FrdXNoYVwgOwor5pqR5Lit6KaL6IieIDwgc2hvY2h1dW1pbWFpXCA7CivoqpjlsI7lsIvllY8gPCB5dXVkb3VqaW5tb25cIDsKK+WwseS7u+W8jyA8IHNodXVuaW5zaGlraVwgOwor5Ya35YeN5a6kIDwgcmVpdG91c2hpdHN1XCA7CivnkaDnkoPllJDojYkgPCBydXJpa2FyYWt1c2FcIDsKK+WumuW9ouWLleipniA8IHRlaWtlaWRvdXNoaVwgOwor6YWN6Iaz5a6kIDwgaGFpemVuc2hpdHN1XCA7CivkurrplpPplqLkv4IgPCBuaW5nZW5rYW5rZWlcIDsKK+i1pOWNgeWtl+ekviA8IHNla2lqdXVqaXNoYVwgOwor5bqD5bO255yMIDwgaGlyb3NoaW1ha2VuXCA7CivmmqbmlLnmraMgPCBrb3lvbWlrYWlzZWlcIDsKK+eEoeeUo+majue0miA8IG11c2Fua2Fpa3l1dVwgOwor5b6z5bed5pa5IDwgdG9rdWdhd2FnYXRhXCA7Civlha3ms5Xlhajmm7ggPCByb3Bwb3V6ZW5zaG9cIDsKK+mbhuaoqeaOkumZpCA8IHNodXVrZW5oYWlqb1wgOwor5Zu96Zqb5Lya6K2wIDwga29rdXNhaWthaWdpXCA7CivlhZDnq6XmloflraYgPCBqaWRvdWJ1bmdha3VcIDsKK+i7jeS6i+enmOWvhiA8IGd1bmppaGltaXRzdVwgOwor5Luu5YWl5a2mIDwga2FyaW55dXVnYWt1XCA7Civku7vmhI/lh7rpoK0gPCBuaW4nJ2lzaHV0dG91XCA7Civku5jpmo/nj77osaEgPCBmdXp1aWdlbnNob3VcIDsKK+WOn+W9ouizqiA8IGdlbmtlaXNoaXRzdVwgOwor5ZSH5q2v6LyU6LuKIDwgc2hpbnNoaWhvc2hhXCA7Civljp/lm6Doqr/mn7sgPCBnZW4nJ2luY2hvdXNhXCA7Civmi4XlvZPpg6jplbcgPCB0YW50b3VidWNob3VcIDsKK+S4u+S7u+aVmeaOiCA8IHNodW5pbmt5b3VqdVwgOwor6LuN5YKZ5YmK5ribIDwgZ3VuYmlzYWt1Z2VuXCA7Civlhazplovoo4HliKQgPCBrb3VrYWlzYWliYW5cIDsKK+WIhuino+S/rueQhiA8IGJ1bmthaXNodXVyaVwgOwor55m+6Iqx5paJ5pS+IDwgaHlha2thc2VpaG91XCA7Civpu5LoibLohasgPCBrb2t1c2hva3VzaHVcIDsKK+S6uumAoOecn+ePoCA8IGppbnpvdXNoaW5qdVwgOwor5Y2S5qWt55SfIDwgc290c3VneW91c2VpXCA7CivnpZ7ntYzpgY7mlY8gPCBzaGlua2Vpa2FiaW5cIDsKK+mAgemHkeeCuuabvyA8IHNvdWtpbmthd2FzZVwgOwor5Zue5b6p5YqbIDwga2FpZnVrdXJ5b2t1XCA7CivljrPmraPnp5HlraYgPCBnZW5zZWlrYWdha3VcIDsKK+WFpeS8muW8jyA8IG55dXVrYWlzaGlraVwgOwor5Y+45rOV5pu45aOrIDwgc2hpaG91c2hvc2hpXCA7CivlnKjlpJbos4fnlKMgPCB6YWlnYWlzaGlzYW5cIDsKK+azleW+i+mBleWPjSA8IGhvdXJpdHN1aWhhblwgOwor5ZCR5b+D5YqbIDwga291c2hpbnJ5b2t1XCA7CivnjonomavoibIgPCB0YW1hbXVzaGlpcm9cIDsKK+eJueWIpeWPtyA8IHRva3ViZXRzdWdvdVwgOwor6YCy6Lev5oyH5bCOIDwgc2hpbnJvc2hpZG91XCA7CivkuojlgpnljZTntIQgPCB5b2Jpa3lvdXlha3VcIDsKK+iEseavm+eXhyA8IGRhdHN1bW91c2hvdVwgOwor5aeL55CD5byPIDwgc2hpa3l1dXNoaWtpXCA7CivmlZnogrLnjqnlhbcgPCBreW91aWt1Z2FuZ3VcIDsKK+aWh+azleimj+WJhyA8IGJ1bnBvdWtpc29rdVwgOwor5L2V6Imy5pCoIDwgbmFuc2hva3V6dXJpXCA7CivlrozkuobmmYLliLYgPCBrYW5yeW91amlzZWlcIDsKK+S/oeiol+alrSA8IHNoaW50YWt1Z3lvdVwgOwor5LqL5a6f6Kqk6KqNIDwgamlqaXRzdWdvbmluXCA7Civou43pnIDnlKPmpa0gPCBndW5qdXNhbmd5b3VcIDsKK+Wcn+eFmSA8IHRzdWNoaWtlbXVyaVwgOwor5YO75qC55oCnIDwgaGlnYW1pa29uam91XCA7CivlparkuInmjK8gPCBkYXRzdXNhbnNoaW5cIDsKK+mJhOeBq+S4vCA8IHRla2thZG9uYnVyaVwgOwor6Ieq54S256eR5a2mIDwgc2hpemVua2FnYWt1XCA7CivlpKfnpo/ppIUgPCBkYWlmdWt1bW9jaGlcIDsKK+atpuiAheS/ruihjCA8IG11c2hhc2h1Z3lvdVwgOwor5L6155Wl6LuNIDwgc2hpbnJ5YWt1Z3VuXCA7CivnlJ/miJDmlofms5UgPCBzZWlzZWlidW5wb3VcIDsKK+WPjeeJqeizqiA8IGhhbmJ1c3NoaXRzdVwgOwor5Y+45rOV5aSn6IejIDwgc2hpaG91ZGFpamluXCA7CivkuLvmhI/kuLvnvqnogIUgPCBzaHVpc2h1Z2lzaGFcIDsKK+WItueQg+WKmyA8IHNlaWt5dXVyeW9rdVwgOwor5b6h55So5ZWG5Lq6IDwgZ295b3VzaG91bmluXCA7Civkvb/lvpLkv6HmnaEgPCBzaGl0b3NoaW5qb3VcIDsKK+iovOaLoOeJqeS7tiA8IHNob3Vrb2J1a2tlblwgOwor6Zm455Sj54mpIDwgcmlrdXNhbmJ1dHN1XCA7Civkuojlgpnnn6XorZggPCB5b2JpY2hpc2hpa2lcIDsKK+WQiOWQjeS8muekviA8IGdvdW1laWdhaXNoYVwgOwor5YWx5ZCM5LiA6Ie0IDwga3lvdWRvdWl0Y2hpXCA7CivmrablipvmlL/msrsgPCBidXJ5b2t1c2VpamlcIDsKK+i7jOmBk+S/ruatoyA8IGtpZG91c2h1dXNlaVwgOwor6L6y5L2c54mpIDwgbm91c2FrdWJ1dHN1XCA7Civmub7lsrjmiKbkuokgPCB3YW5nYW5zZW5zb3VcIDsKK+WQiOagvOeliOmhmCA8IGdvdWtha3VraWdhblwgOwor5YyW5a2m6IKl5paZIDwga2FnYWt1aGlyeW91XCA7Civnq5zoiIzomK0gPCByeXV1emV0c3VyYW5cIDsKK+eLrOijgeWbveWutiA8IGRva3VzYWlrb2trYVwgOwor5L2O5Yip6YeR6J6NIDwgdGVpcmlraW4nJ3l1dVwgOwor5Za25qWt55WRIDwgZWlneW91YmF0YWtlXCA7CivlnJ/poZ7ph5HlsZ4gPCBkb3J1aWtpbnpva3VcIDsKK+iCiemjn+eNoyA8IG5pa3VzaG9rdWp1dVwgOwor5YWx5ZKM5pS/5L2TIDwga3lvdXdhc2VpdGFpXCA7Civms5XlvovlraYgPCBob3VyaXRzdWdha3VcIDsKK+azleW7t+mXmOS6iSA8IGhvdXRlaXRvdXNvdVwgOwor5YaN55Sf6KOF572uIDwgc2Fpc2Vpc291Y2hpXCA7CivmlrDnmbrmmI4gPCBzaGluaGF0c3VtZWlcIDsKK+WMl+aWuemgmOWcnyA8IGhvcHBvdXJ5b3Vkb1wgOwor6YCX55WZ5a6iIDwgdG91cnl1dWt5YWt1XCA7Civlhajlu4Poq5bogIUgPCB6ZW5wYWlyb25zaGFcIDsKK+e0r+mAsuiqsueojiA8IHJ1aXNoaW5rYXplaVwgOwor5Zu96Ziy5Lya6K2wIDwga29rdWJvdWthaWdpXCA7CivlvrPls7bnnIwgPCB0b2t1c2hpbWFrZW5cIDsKK+S6jOeZvuWNgeaXpSA8IG5paHlha3V0b29rYVwgOwor5LqL5YmN6YCa5aCxIDwgaml6ZW50c3V1aG91XCA7CivnpL7kvJrmhI/orZggPCBzaGFrYWlpc2hpa2lcIDsKK+aPtOWKqeWHjee1kCA8IGVuam90b3VrZXRzdVwgOwor5riF5rC05a+6IDwga2l5b21penVkZXJhXCA7CivlronlhajnrKzkuIAgPCBhbnplbmRhaWljaGlcIDsKK+WAi+S6uuaUu+aSgyA8IGtvamlua291Z2VraVwgOwor5oKq5oiv5Z2K5Li7IDwgaXRhenVyYWJvdXp1XCA7CivpgYrli5XlhobmnKggPCB5dXVkb3VlbmJva3VcIDsKK+WGhuW9ouWKh+WgtCA8IGVua2VpZ2VraWpvdVwgOwor54ax5a656YePIDwgbmV0c3V5b3VyeW91XCA7CivmlofnrYbmpa0gPCBidW5waXRzdWd5b3VcIDsKK+iKreiVieaituacqCA8IGJhc2hvdWthamlraVwgOwor6ISz5Ye66KGAIDwgbm91c2h1a2tldHN1XCA7CivpnLLlh7rnl4cgPCByb3NodXRzdXNob3VcIDsKK+mrmOi2s+ifuSA8IHRha2Fhc2hpZ2FuaVwgOwor5oOF5aCx56eR5a2mIDwgam91aG91a2FnYWt1XCA7Civnp4HlqLznqp8gPCBzaGlzaG91a3V0c3VcIDsKK+WCt+Wus+S/nemZuiA8IHNob3VnYWlob2tlblwgOwor56C055Sj5a6j5ZGKIDwgaGFzYW5zZW5rb2t1XCA7Civnmannl4XmgqPogIUgPCByYWlieW91a2FuamFcIDsKK+m7kuiJsueZjCA8IGtva3VzaG9rdWdhblwgOwor5Zug5a2Q5YiG5p6QIDwgaW5zaGlidW5zZWtpXCA7CivosqfooYDnl4cgPCBoaW5rZXRzdXNob3VcIDsKK+iqjeitmOelqCA8IG5pbnNoaWtpaHlvdVwgOwor5b6F5ZCI5pS/5rK7IDwgbWFjaGlhaXNlaWppXCA7CivmnKvms5XmgJ3mg7MgPCBtYXBwb3VzaGlzb3VcIDsKK+iIque2muaZgumWkyA8IGtvdXpva3VqaWthblwgOwor5bCC5aOy54m56KixIDwgc2VuYmFpdG9ra3lvXCA7CivlkIznqK7lkIzmlocgPCBkb3VzaHVkb3VidW5cIDsKK+mJhOmBk+S6i+aVhSA8IHRldHN1ZG91amlrb1wgOwor55yf55CG6Zai5pWwIDwgc2hpbnJpa2Fuc3V1XCA7Civnlqvnl4XnpZ4gPCB5YWt1YnlvdWdhbWlcIDsKK+mcsuWHuueLgiA8IHJvc2h1dHN1a3lvdVwgOwor5a2Q5a2Q5a2r5a2rIDwgc2hpc2hpc29uc29uXCA7CivlhavkuIjls7YgPCBoYWNoaWpvdWppbWFcIDsKK+mZjeelnuihkyA8IGtvdXNoaW5qdXRzdVwgOwor6Iux5Zu955+z5rK5IDwgZWlrb2t1c2VraXl1XCA7Civkv53orbfoprPlr58gPCBob2dva2Fuc2F0c3VcIDsKK+enmOWvhuWFteWZqCA8IGhpbWl0c3VoZWlraVwgOwor6YO15L6/6LKv6YeRIDwgeXV1YmluY2hva2luXCA7Civlk7LlrabogIUgPCB0ZXRzdWdha3VzaGFcIDsKK+S6jOmHjeS6uuagvCA8IG5panV1amlua2FrdVwgOwor55m96KGj5piO5aaDIDwgYnlha3VlbXlvdWhpXCA7CivnlJ/kvZPop6PliZYgPCBzZWl0YWlrYWlib3VcIDsKK+eIqyA8IHRzdW1la2FubXVyaVwgOwor5Yqb5LiA5p2vIDwgY2hpa2FyYWlwcGFpXCA7Civlh7rlk4HniakgPCBzaHVwcGluYnV0c3VcIDsKK+eri+WkquWtkOekvCA8IHJpdHRhaXNoaXJlaVwgOwor5a6f6Zqb5ZWP6aGMIDwgamlzc2FpbW9uZGFpXCA7Civlhazou6LpgJ/luqYgPCBrb3V0ZW5zb2t1ZG9cIDsKK+S4gOefs+S6jOmzpSA8IGlzc2VraW5pY2hvdVwgOwor5pWZ6IKy6Kqy56iLIDwga3lvdWlrdWthdGVpXCA7Civkurrku6PlkI3oqZ4gPCBqaW5kYWltZWlzaGlcIDsKK+asoemFuOWMlueCree0oCA8IGppc2Fua2F0YW5zb1wgOwor54Gw55m96ImyIDwga2FpaGFrdXNob2t1XCA7Civni6zlsYXlrqQgPCBkb2treW9zaGl0c3VcIDsKK+WEqueUn+e1kOWpmiA8IHl1dXNlaWtla2tvblwgOwor5Y+j6aCt6Kmm5ZWPIDwga291dG91c2hpbW9uXCA7CivkuqTpgJrlronlhaggPCBrb3V0c3V1YW56ZW5cIDsKK+aOpeW+heS/giA8IHNldHRhaWdha2FyaVwgOwor5LiH5bm06ZuqIDwgbWFuJyduZW4nJ3l1a2lcIDsKK+eLguaDs+absiA8IGt5b3Vzb3VreW9rdVwgOwor5ZKM5paH6Iux6KizIDwgd2FidW4nJ2VpeWFrdVwgOwor5pys5a625pys5YWDIDwgaG9ua2Vob25tb3RvXCA7Civnm7Lnm67po5vooYwgPCBtb3Vtb2t1aGlrb3VcIDsKK+a7nuepuuiomOmMsiA8IHRhaWt1dWtpcm9rdVwgOwor56uL5L2T6KOB5patIDwgcml0dGFpc2FpZGFuXCA7Civlm73lhoXkuovmg4UgPCBrb2t1bmFpamlqb3VcIDsKK+S+teeVpeiAhSA8IHNoaW5yeWFrdXNoYVwgOwor5o6l6Kem5LqL5pWFIDwgc2Vzc2hva3VqaWtvXCA7CivnlLrlvbnkurogPCBtYWNoaXlha3VuaW5cIDsKK+S5vueHpeiFkOacvSA8IGthbnNvdWZ1a3l1dVwgOwor6Jqw6JyS55yJIDwgZ2VqaWdlamltYXl1XCA7CivlkIjos4fkvJrnpL4gPCBnb3VzaGlnYWlzaGFcIDsKK+W9q+WIu+WFt+W6pyA8IGNob3Vrb2t1Z3V6YVwgOwor5rK75a6J57at5oyB5rOVIDwgY2hpYW4nJ2lqaWhvdVwgOwor5a2m57+S5aG+IDwgZ2FrdXNodXVqdWt1XCA7CivmiLjlpJbmkq7lvbEgPCBrb2dhaXNhdHN1ZWlcIDsKK+W/nOaApeS/rueQhiA8IG91a3l1dXNodXVyaVwgOwor6bq76YWU5rOo5bCEIDwgbWFzdWljaHV1c2hhXCA7CivmnKvnq6/kvqHmoLwgPCBtYXR0YW5rYWtha3VcIDsKK+WBtuWDj+W0h+aLnSA8IGd1dXpvdXN1dWhhaVwgOwor5pmu6YCa5YiX6LuKIDwgZnV0c3V1cmVzc2hhXCA7CivmlrDnmbrlo7IgPCBzaGluaGF0c3ViYWlcIDsKK+WSjOW5s+S6pOa4iSA8IHdhaGVpa291c2hvdVwgOwor56u25LqJ5YqbIDwga3lvdXNvdXJ5b2t1XCA7CivlvqrnkrDoq5bms5UgPCBqdW5rYW5yb25wb3VcIDsKK+WkseWQjeawjyA8IHNoaXRzdW1laXNoaVwgOwor6KGo5bqn5pW3IDwgb21vdGV6YXNoaWtpXCA7Civpo73po5/mmpbooaMgPCBob3VzaG9rdWRhbmlcIDsKK+apn+aisOW3pealrSA8IGtpa2Fpa291Z3lvdVwgOwor54Sh6ZmQ6ZuG5ZCIIDwgbXVnZW5zaHV1Z291XCA7CivlvrTnmbrku6QgPCBjaG91aGF0c3VyZWlcIDsKK+acieS+oeiovOWIuCA8IHl1dWthc2hvdWtlblwgOwor5oeQ6YqtIDwgZnV0b2tvcm96ZW5pXCA7CivkupXmiLjnq6/kvJrorbAgPCBpZG9iYXRha2FpZ2lcIDsKK+WJr+WPjuWFpSA8IGZ1a3VzaHV1bnl1dVwgOwor5oGQ5Zad572qIDwga3lvdWthdHN1emFpXCA7CivlsYjmipjou7ggPCBrdXNzZXRzdWppa3VcIDsKK+WQiOWIh+iiiyA8IGdhc3NhaWJ1a3Vyb1wgOwor5raI5oGv6YCaIDwgc2hvdXNva3V0c3V1XCA7Civnt4/ntbHpgbjmjJkgPCBzb3V0b3VzZW5reW9cIDsKK+agquS4u+aoqSA8IGthYnVudXNoaWtlblwgOwor5Lq65rCX5b256ICFIDwgbmlua2l5YWt1c2hhXCA7CivluILlhoXpgJroqbEgPCBzaGluYWl0c3V1d2FcIDsKK+WNoOacieeOhyA8IHNlbicneXV1cml0c3VcIDsKK+WNl+S6rOiiiyA8IG5hbmtpbmJ1a3Vyb1wgOwor6auY6auY5oyHIDwgdGFrYXRha2F5dWJpXCA7Civnmb3oibLlhYkgPCBoYWt1c2hva3Vrb3VcIDsKK+S4gOetiemZuOWjqyA8IGl0dG91cmlrdXNoaVwgOwor6Kyb5ZKM5p2h57SEIDwga291d2Fqb3V5YWt1XCA7Civlt6Xmpa3pg73luIIgPCBrb3VneW91dG9zaGlcIDsKK+WNk+S4iumbu+ipsSA8IHRha3Vqb3VkZW53YVwgOwor5a6i6Kaz5Li7576pIDwga3lha2thbnNodWdpXCA7CivlhbHlkIzorIDorbAgPCBreW91ZG91Ym91Z2lcIDsKK+izvOiyt+e1hOWQiCA8IGtvdWJhaWt1bWlhaVwgOwor6KuL6LKg5LuV5LqLIDwgdWtlb2lzaGlnb3RvXCA7Civpi7jprqsgPCBub2tvZ2lyaXphbWVcIDsKK+mbh+eUqOWlkee0hCA8IGtveW91a2VpeWFrdVwgOwor5b2T5oSP5Y2z5aaZIDwgdG91aXNva3VteW91XCA7Civml6XnsbPljZQgPCBuaWNoaWJlaWt5b3VcIDsKK+WKtOWDjeW4guWgtCA8IHJvdWRvdXNoaWpvdVwgOwor5aOr5a6Y5a2m5qChIDwgc2hpa2FuZ2Fra291XCA7CivlkI3oqonkvJrplbcgPCBtZWl5b2thaWNob3VcIDsKK+W6puaVsOWIhuW4g+WbsyA8IGRvc3V1YnVucHV6dVwgOwor5bGI5oqY6KeSIDwga3Vzc2V0c3VrYWt1XCA7CivmrrrkurrnmoQgPCBzYXRzdWppbnRla2lcIDsKK+W5s+Wdh+e1puS4jiA8IGhlaWtpbmt5dXV5b1wgOwor5bem5Zuj5omHIDwgaGlkYXJpdWNoaXdhXCA7CivpmLLlobXlrqQgPCBib3VqaW5zaGl0c3VcIDsKK+Wwj+S+v+Wwj+WDpyA8IHNob3ViZW5rb3pvdVwgOwor5Zyf5Z+DIDwgdHN1Y2hpYm9rb3JpXCA7CivkurrmqKnouYLouqogPCBqaW5rZW5qdXVyaW5cIDsKK+Wcp+e4rumFuOe0oCA8IGFzc2h1a3VzYW5zb1wgOwor5ZCr5pyJ546HIDwgZ2FuJyd5dXVyaXRzdVwgOwor5bm05qyh5aCx5ZGKIDwgbmVuamlob3Vrb2t1XCA7CivohIjmkI/mlbAgPCBteWFrdWhha3VzdXVcIDsKK+mDteS+v+eVquWPtyA8IHl1dWJpbmJhbmdvdVwgOwor5o6o6YCy5YqbIDwgc3Vpc2hpbnJ5b2t1XCA7Civogb7moZ/mlbcgPCB0c3VuYm9zYWppa2lcIDsKK+ioiOeul+WVj+mhjCA8IGtlaXNhbm1vbmRhaVwgOwor57eP5ZCI6ZuR6KqMIDwgc291Z291emFzc2hpXCA7CivnuK7nt6znmrogPCBjaGlyaW1lbmppd2FcIDsKK+Wcn+WcsOWPjueUqCA8IHRvY2hpc2h1dXlvdVwgOwor5bqD5ZGK5Yq55p6cIDwga291a29rdWtvdWthXCA7Civmrrrkurrni4IgPCBzYXRzdWppbmt5b3VcIDsKK+i8uOWHuuWFpSA8IHl1c2h1dHN1bnl1dVwgOwor5bm85YWQ5pWZ6IKyIDwgeW91amlreW91aWt1XCA7Civov5HmiYDov7fmg5EgPCBraW5qb21laXdha3VcIDsKK+ims+WuouW4rSA8IGthbmt5YWt1c2VraVwgOwor54Sh6ZmQ57Sa5pWwIDwgbXVnZW5reXV1c3V1XCA7CivkuIDliLvljYPph5EgPCBpa2tva3VzZW5raW5cIDsKK+mZquWvqeWItuW6piA8IGJhaXNoaW5zZWlkb1wgOwor57eo6ZuG5qmf6IO9IDwgaGVuc2h1dWtpbm91XCA7CivlhYjlj5bnibnmqKkgPCBzZW5zaHV0b2trZW5cIDsKK+WwgumWgOWIhumHjiA8IHNlbm1vbmJ1bicneWFcIDsKK+W/hCA8IHJpdHN1c2hpbmJlblwgOwor5ZG95Yal5YqgIDwgaW5vY2hpbXlvdWdhXCA7Civmi4XlrZDoj4zpoZ4gPCB0YW5zaGlraW5ydWlcIDsKK+mWouS/guW8t+WMliA8IGthbmtlaWt5b3VrYVwgOwor5qOu5p6X5rW0IDwgc2hpbnJpbicneW9rdVwgOwor5pS75pKD6YOo6ZqKIDwga291Z2VraWJ1dGFpXCA7Civnp5jlr4bkvJrorbAgPCBoaW1pdHN1a2FpZ2lcIDsKK+iHquWLlei7iuS6i+aVhSA8IGppZG91c2hhamlrb1wgOwor5raI6Z+z6KOF572uIDwgc2hvdW9uc291Y2hpXCA7CivmuoDlt57kuovlpIkgPCBtYW5zaHV1amloZW5cIDsKK+eIhueZuueuoSA8IGJha3VoYXRzdWthblwgOwor6LOH55Sj6KmV5L6hIDwgc2hpc2FuaHlvdWthXCA7Civlh7rniYjoqLHlj68gPCBzaHVwcGFua3lva2FcIDsKK+m7kuWFq+S4iCA8IGt1cm9oYWNoaWpvdVwgOwor5Zu95YaF6ZyA6KaBIDwga29rdW5haWp1eW91XCA7CivljYrouqvmtbQgPCBoYW5zaGluJyd5b2t1XCA7CivljYPkuIfplbfogIUgPCBzZW5iYW5jaG91amFcIDsKK+WMluWtpuippumokyA8IGthZ2FrdXNoaWtlblwgOwor57Sw6IOe5Z+56aSKIDwgc2FpYm91YmFpeW91XCA7Civpn7Ppn7vntYTnuZQgPCBvbicnaW5zb3NoaWtpXCA7CivluqfmqJnlpInmj5sgPCB6YWh5b3VoZW5rYW5cIDsKK+apn+aisOW3peWtpiA8IGtpa2Fpa291Z2FrdVwgOwor56ys5LiJ6YOo6ZW3IDwgZGFpc2FuYnVjaG91XCA7CivlpYflsqnmgKrnn7MgPCBraWdhbmthaXNla2lcIDsKK+iAkOmiqOani+mAoCA8IHRhaWZ1dWtvdXpvdVwgOwor5pqX57eR6ImyIDwgYW5yeW9rdXNob2t1XCA7Civnn7Ppubjlt6XloLQgPCBzZWtrZW5rb3Vqb3VcIDsKK+WcqOmDt+i7jeS6uiA8IHphaWdvdWd1bmppblwgOwor5bm96ZyK5Lya56S+IDwgeXV1cmVpZ2Fpc2hhXCA7CivnkrDlooPnoLTlo4ogPCBrYW5reW91aGFrYWlcIDsKK+Wbvemam+S4u+e+qSA8IGtva3VzYWlzaHVnaVwgOwor5b6h56+A5paZ55CGIDwgb3NlY2hpcnlvdXJpXCA7CivnrYvogonnl5sgPCBraW4nJ25pa3V0c3V1XCA7Civkv67nkIblt6XloLQgPCBzaHV1cmlrb3Vqb3VcIDsKK+iBt+iDvee1piA8IHNob2t1bm91a3l1dVwgOwor5paw55Sf54mpIDwgc2hpbnNlaWJ1dHN1XCA7Civlh4zpnIToirEgPCBub3V6ZW5rYXp1cmFcIDsKK+m7kuiJsuWwiSA8IGtva3VzaGlraWpvdVwgOwor6JuN6KKLIDwgaG90YXJ1YnVrdXJvXCA7CivlgbbnmbrnmoQgPCBndXVoYXRzdXRla2lcIDsKK+aLkuWQpuWPjeW/nCA8IGt5b2hpaGFuJydub3VcIDsKK+eJueeUo+eJqSA8IHRva3VzYW5idXRzdVwgOwor5LiA6KiA5LiA5Y+lIDwgaWNoaWdvbicnaWtrdVwgOwor5Y2Y54us6aOb6KGMIDwgdGFuZG9rdWhpa291XCA7CivkuLvmqKnlnKjmsJEgPCBzaHVrZW56YWltaW5cIDsKK+WMlueyp+WupCA8IGtlc2hvdXNoaXRzdVwgOwor57eP5pSv5Ye6IDwgc291c2hpc2h1dHN1XCA7CivkurrmoLzkuLvnvqkgPCBqaW5rYWt1c2h1Z2lcIDsKK+iHquauuuacqumBgiA8IGppc2F0c3VtaXN1aVwgOwor5Ye65a626YGB5LiWIDwgc2h1a2tldG9uc2VpXCA7Civlk7Llrabmm7ggPCB0ZXRzdWdha3VzaG9cIDsKK+WNmueJqemkqCA8IGhha3VidXRzdWthblwgOwor57SQ6Z2p6aWC6aOpIDwgaGltb2thd2F1ZG9uXCA7CivmhJrmsJHmlL/nrZYgPCBndW1pbnNlaXNha3VcIDsKK+WNmOenkeWkp+WtpiA8IHRhbmthZGFpZ2FrdVwgOwor6YGp5q2j5Yip5r2kIDwgdGVraXNlaXJpanVuXCA7Civnmbrpn7PoqJjlj7cgPCBoYXRzdW9ua2lnb3VcIDsKK+i7jeS6i+WNlOWumiA8IGd1bmppa3lvdXRlaVwgOwor6L6y5Zyw5aeU5ZOh5LyaIDwgbm91Y2hpaWlua2FpXCA7Civku7Lku4vniakgPCBjaHV1a2FpYnV0c3VcIDsKK+ilv+mrmOadseS9jiA8IHNlaWtvdXRvdXRlaVwgOwor5pCN6ICX5Lq65ZOhIDwgc29ubW91amluJydpblwgOwor55m96aCt6beyIDwgaGFrdXRvdXdhc2hpXCA7Civlrp/li6LkvqHmoLwgPCBqaXNzZWlrYWtha3VcIDsKK+aPtOeUqOioreioiCA8IGVuJyd5b3VzZWtrZWlcIDsKK+ePvuWgtOS4ree2mSA8IGdlbmJhY2h1dWtlaVwgOwor5pyA5paw5byPIDwgc2Fpc2hpbnNoaWtpXCA7CivlsbHoupHouoUgPCB5YW1hdHN1dHN1amlcIDsKK+aEn+efpeijhee9riA8IGthbmNoaXNvdWNoaVwgOwor6K2w5rG65qmf6ZaiIDwgZ2lrZXRzdWtpa2FuXCA7CivnnIHpm7vlipsgPCBzaG91ZGVucnlva3VcIDsKK+WuieW/g+eri+WRvSA8IGFuamlucnlvdW1laVwgOwor5ZCI5ZCM5LqL5qWtIDwgZ291ZG91amlneW91XCA7CivlkIzmnJ/kv6Hlj7cgPCBkb3VraXNoaW5nb3VcIDsKK+S7sumWk+aEj+itmCA8IG5ha2FtYWlzaGlraVwgOwor5aqS5LuL5aSJ5pWwIDwgYmFpa2FpaGVuc3V1XCA7Civlr5LkuK3msLTms7MgPCBrYW5jaHV1c3VpZWlcIDsKK+S4gOWMueeLvCA8IGlwcGlraW9va2FtaVwgOwor6KKr5L+d6Zm654mpIDwgaGlob2tlbmJ1dHN1XCA7Civmtojmga/nrYsgPCBzaG91c29rdXN1amlcIDsKK+aHkOe0mSA8IGZ1dG9rb3JvZ2FtaVwgOwor5pqX5q665LqL5Lu2IDwgYW5zYXRzdWppa2VuXCA7CivmipjoobfkuLvnvqkgPCBzZXRjaHV1c2h1Z2lcIDsKK+WNmOW8j+ewv+iomCA8IHRhbnNoaWtpYm9raVwgOwor5pWZ6aSK6Kqy56iLIDwga3lvdXlvdWthdGVpXCA7CivkuIflubTnrYYgPCBtYW4nJ25lbmhpdHN1XCA7CivkuInogIXkvJroq4cgPCBzYW5zaGFrYWlkYW5cIDsKK+mAo+iomOaKleelqCA8IHJlbmtpdG91aHlvdVwgOwor5b+D55CG54q25oWLIDwgc2hpbnJpam91dGFpXCA7Civku4flkIzmsI8gPCBrYXRha2lkb3VzaGlcIDsKK+a1t+WkluW4guWgtCA8IGthaWdhaXNoaWpvdVwgOwor5pei5oiQ5LqL5a6fIDwga2lzZWlqaWppdHN1XCA7Civkuovli5nnt4/lsYAgPCBqaW11c291a3lva3VcIDsKK+WJjemAsuWfuuWcsCA8IHplbnNoaW5raWNoaVwgOwor5ZCM5bel55Ww5puyIDwgZG91a291aWt5b2t1XCA7Civlkb3poYzplqLmlbAgPCBtZWlkYWlrYW5zdXVcIDsKK+WMl+ilv+iIqui3ryA8IGhva3VzZWlrb3Vyb1wgOwor5bGA5Zyw55qEIDwga3lva3VjaGl0ZWtpXCA7CivlkIjlkIzkvJrlkIggPCBnb3Vkb3VrYWlnb3VcIDsKK+eri+WcsOadoeS7tiA8IHJpdGNoaWpvdWtlblwgOwor6Z2p5omL6KKLIDwga2F3YXRlYnVrdXJvXCA7CivlnLDnkIblrabogIUgPCBjaGlyaWdha3VzaGFcIDsKK+Wkp+aJgOmrmOaJgCA8IHRhaXNob2tvdXNob1wgOwor6YeN6KSH5L+d6Zm6IDwganV1ZnVrdWhva2VuXCA7CivpgJrluLjlhbXlmaggPCB0c3V1am91aGVpa2lcIDsKK+WkluWbvemDqOmaiiA8IGdhaWtva3VidXRhaVwgOwor5paH5YyW5Lqk5rWBIDwgYnVua2Frb3VyeXV1XCA7CivkuIPliIboopYgPCBzaGljaGlidXNvZGVcIDsKK+W4guWklumAmuipsSA8IHNoaWdhaXRzdXV3YVwgOwor5q+b57Sw6KGA566hIDwgbW91c2Fpa2Vra2FuXCA7Civli5XmhYvntbHoqIggPCBkb3V0YWl0b3VrZWlcIDsKK+ekvuWGheaDheWgsSA8IHNoYW5haWpvdWhvdVwgOwor5Lit5YWs5paH5bqrIDwgY2h1dWtvdWJ1bmtvXCA7CivlnKfpm7vlirnmnpwgPCBhdHN1ZGVua291a2FcIDsKK+mtkemthemtjemtjiA8IGNoaW1pbW91cnlvdVwgOwor5b6q55Kw57O757WxIDwganVua2Fua2VpdG91XCA7Civnp4HpgZQgPCB3YXRhc2hpdGFjaGlcIDsKK+WvvuS6uumWouS/giA8IHRhaWppbmthbmtlaVwgOwor5pmu6YCa6YG45oyZIDwgZnV0c3V1c2Vua3lvXCA7Civlv4PpnIrooZMgPCBzaGlucmVpanV0c3VcIDsKK+adoeS7tumXmOS6iSA8IGpvdWtlbnRvdXNvdVwgOwor5p2+56u55qKFIDwgc2hvdWNoaWt1YmFpXCA7CivljYPnirbkuIfmhYsgPCBzZW5qb3ViYW50YWlcIDsKK+aguOmWi+eZuiA8IGtha3VrYWloYXRzdVwgOwor5YyW5oiQ5bel5qWtIDwga2FzZWlrb3VneW91XCA7CivntYzmuIjljp/oq5YgPCBrZWl6YWlnZW5yb25cIDsKK+aoqeisgOihk+aVsCA8IGtlbmJvdWp1c3N1dVwgOwor5LiN5o+u55m65oCnIDwgZnVraWhhdHN1c2VpXCA7Civpq5jnrYnlrabmoKEgPCBrb3V0b3VnYWtrb3VcIDsKK+mAo+WQiOeOi+WbvSA8IHJlbmdvdW91a29rdVwgOwor5Zu96Zqb6ImyIDwga29rdXNhaXNob2t1XCA7Civpg7Xkvr/mm7jnsKEgPCB5dXViaW5zaG9rYW5cIDsKK+WtkOS+m+W/gyA8IGtvZG9tb2dva29yb1wgOwor57K+56We5YqbIDwgc2Vpc2hpbnJ5b2t1XCA7Civmt7HorIDpgaDmha4gPCBzaGluYm91ZW5yeW9cIDsKK+S9j+awkemBi+WLlSA8IGp1dW1pbicndW5kb3VcIDsKK+azleaWh+WtpumDqCA8IGhvdWJ1bmdha3VidVwgOwor5pmu6YCa6YO15L6/IDwgZnV0c3V1eXV1YmluXCA7Civlho3nqoHlhaUgPCBzYWl0b3RzdW55dXVcIDsKK+WQm+S4u+aUv+S9kyA8IGt1bnNodXNlaXRhaVwgOwor55m65L+h5bGAIDwgaGFzc2hpbmt5b2t1XCA7CivlpKflkozlv4MgPCB5YW1hdG9nb2tvcm9cIDsKK+aNsuWcn+mHjeadpSA8IGtlbmRvY2hvdXJhaVwgOwor5aWz5aOw5ZCI5ZSxIDwgam9zZWlnYXNzaG91XCA7CivnsbPopb/miKbkuokgPCBiZWlzZWlzZW5zb3VcIDsKK+mrmOW6puaIkOmVtyA8IGtvdWRvc2VpY2hvdVwgOwor6Kq/5b6L5birIDwgY2hvdXJpdHN1c2hpXCA7Civkub7luIPmkanmk6YgPCBrYW5wdW1hc2F0c3VcIDsKK+S4reiPr+aAneaDsyA8IGNodXVrYXNoaXNvdVwgOwor6L6e6IG36aGYIDwgamlzaG9rdW5lZ2FpXCA7CivotIjkuI7oqLzmm7ggPCB6b3V5b3Nob3VzaG9cIDsKK+WCteWLmeS4jeWxpeihjCA8IHNhaW11ZnVyaWtvdVwgOwor5YWs6KGG6KGb55SfIDwga291c2h1dWVpc2VpXCA7CivmiYDmiYAgPCB0b2tvcm9kb2tvcm9cIDsKK+ekvuS8muenkeWtpiA8IHNoYWthaWthZ2FrdVwgOwor6L6y6Iq45YyW5a2mIDwgbm91Z2Vpa2FnYWt1XCA7CivkuqTpgJrmlbTnkIYgPCBrb3V0c3V1c2VpcmlcIDsKK+imquWvhuaEnyA8IHNoaW5taXRzdWthblwgOwor54m55q6K6YOo6ZqKIDwgdG9rdXNodWJ1dGFpXCA7CivnqpPpmpvml48gPCBtYWRvZ2l3YXpva3VcIDsKK+S6i+Wun+eEoeaguSA8IGppaml0c3VtdWtvblwgOwor5YaZ55yf6KGTIDwgc2hhc2hpbmp1dHN1XCA7CivlrZTpm4DlppnnjosgPCBrdWpha3VteW91b3VcIDsKK+iyoeeUo+WIhuS4jiA8IHphaXNhbmJ1bicneW9cIDsKK+mCpuWtl+aWsOiBniA8IGhvdWppc2hpbmJ1blwgOwor5qmf5YuV6KiI55S7IDwga2lkb3VrZWlrYWt1XCA7CivovLvlsITnhrEgPCBmdWt1c2hhbmV0c3VcIDsKK+WtpOeri+S4u+e+qSA8IGtvcml0c3VzaHVnaVwgOwor5L6b6L+w6ICFIDwga3lvdWp1dHN1c2hhXCA7CivmmI7msrvlpKnnmocgPCBtZWlqaXRlbicnbm91XCA7CivnhKbngrnot53pm6IgPCBzaG91dGVua3lvcmlcIDsKK+mbhuWQiOaZgumWkyA8IHNodXVnb3VqaWthblwgOwor5L2P5a6F5Zyw5Yy6IDwganV1dGFrdWNoaWt1XCA7CivlpJrop5Losr/mmJMgPCB0YWtha3Vib3Vla2lcIDsKK+mdnuWWq+eFmeiAhSA8IGhpa2l0c3VlbnNoYVwgOwor5raI5YyW5LiN6ImvIDwgc2hvdWthZnVyeW91XCA7CivnpZ7ntYznr4AgPCBzaGlua2Vpc2V0c3VcIDsKK+iInuWPsOeFp+aYjiA8IGJ1dGFpc2hvdW1laVwgOwor5LiN55Sf55Sj55qEIDwgZnVzZWlzYW50ZWtpXCA7CivniIbnmbrmgKcgPCBiYWt1aGF0c3VzZWlcIDsKK+mdnueUn+eUo+eahCA8IGhpc2Vpc2FudGVraVwgOwor5Yuf6ZuG5Lq65ZOhIDwgYm9zaHV1amluJydpblwgOwor5Y6f56i/55So57SZIDwgZ2Vua291eW91c2hpXCA7CivnhKHmhI/orZjnmoQgPCBtdWlzaGlraXRla2lcIDsKK+e3j+WPuOS7pOWumCA8IHNvdXNoaXJlaWthblwgOwor6K2y5rih5omA5b6XIDwgam91dG9zaG90b2t1XCA7Civlrabnq6Xkv53ogrIgPCBnYWt1ZG91aG9pa3VcIDsKK+acgOe1guWFteWZqCA8IHNhaXNodXVoZWlraVwgOwor5ruR6LWw6LuK6LyqIDwga2Fzc291c2hhcmluXCA7CivmnIjliIrpm5HoqowgPCBnZWtrYW56YXNzaGlcIDsKK+WCjeiLpeeEoeS6uiA8IGJvdWpha3VidWppblwgOwor5YWo5pel5Yi2IDwgemVuJyduaWNoaXNlaVwgOwor5Yuk5Yq05aWJ5LuVIDwga2lucm91aG91c2hpXCA7CivmgKfohbrmkZjpmaQgPCBzZWlzZW50ZWtpam9cIDsKK+a2iOavkuiWrCA8IHNob3Vkb2t1eWFrdVwgOwor5oay5rOV5pS55q2jIDwga2VucG91a2Fpc2VpXCA7CivooYzot6/nl4XogIUgPCBrb3Vyb2J5b3VzaGFcIDsKK+S4gOS6uuiKneWxhSA8IGhpdG9yaXNoaWJhaVwgOwor5YWx5ZCM6Ziy6KGbIDwga3lvdWRvdWJvdWVpXCA7Civpl5jlv5fmuoDmuoAgPCB0b3VzaGltYW5tYW5cIDsKK+W4guWLouiqv+afuyA8IHNoaXNlaWNob3VzYVwgOwor5Lya5Y6t6Luf6aqoIDwgZWVuJyduYW5rb3RzdVwgOwor6LuN55So5Zyw5ZuzIDwgZ3VuJyd5b3VjaGl6dVwgOwor5p2x5aWU6KW/6LWwIDwgdG91aG9uc2Vpc291XCA7CivpgZPlvrPlvosgPCBkb3V0b2t1cml0c3VcIDsKK+S6pOS7o+S9nOalrSA8IGtvdXRhaXNhZ3lvdVwgOwor5Zu96Ziy6ImyIDwga29rdWJvdXNob2t1XCA7Civml6XoqJjmloflraYgPCBuaWtraWJ1bmdha3VcIDsKK+e1guacq+irliA8IHNodXVtYXRzdXJvblwgOwor5pel57O757Gz5Lq6IDwgbmlra2VpYmVpamluXCA7CivlsIbou43ogbcgPCBzaG91Z3Vuc2hva3VcIDsKK+iHs+WFrOiHs+W5syA8IHNoaWtvdXNoaWhlaVwgOwor6Zai6YCj5Lya56S+IDwga2FucmVuZ2Fpc2hhXCA7CivkurrmqKnlrqPoqIAgPCBqaW5rZW5zZW5nZW5cIDsKK+S6uumAoOS6uumWkyA8IGppbnpvdW5pbmdlblwgOwor5YK+5pac5a626LODIDwga2Vpc2hheWFjaGluXCA7Civoh6rmsJHlhZrliYcgPCBqaW1pbnRvdXNva3VcIDsKK+WPjeW+qeiomOWPtyA8IGhhbnB1a3VraWdvdVwgOwor5pel5pys6Iiq56m6IDwgbmlwcG9ua291a3V1XCA7Civoi7HmiY3mlZnogrIgPCBlaXNhaWt5b3Vpa3VcIDsKK+iNieaciOa1gSA8IHNvdWdldHN1cnl1dVwgOwor5o6S5rC05p2h5Lu2IDwgaGFpc3Vpam91a2VuXCA7Civoi7Hlm73oiKrnqbogPCBlaWtva3Vrb3VrdXVcIDsKK+aYjui1pOiJsiA8IG1laXNla2lzaG9rdVwgOwor6Kej5rG6562WIDwga2Fpa2V0c3VzYWt1XCA7Civlj6PllIfoo4IgPCBrb3VzaGlucmV0c3VcIDsKK+S4g+iNieeypSA8IG5hbmFrdXNhZ2F5dVwgOwor5YmN5ZOo6aiO5YW1IDwgemVuc2hvdWtpaGVpXCA7CivmsLTntKDniIblvL4gPCBzdWlzb2Jha3VkYW5cIDsKK+a9hea8keeUqOawtCA8IGthbmdhaXlvdXN1aVwgOwor5ZWG5qWt5a2mIDwgc2hvdWd5b3VnYWt1XCA7Civlu7roqK3nnIEgPCBrZW5zZXRzdXNob3VcIDsKK+WIhuWIpeW/gyA8IGZ1bmJldHN1c2hpblwgOwor5bu66Kit55qEIDwga2Vuc2V0c3V0ZWtpXCA7Civph5Hpi7ggPCBrYW5lbm9rb2dpcmlcIDsKK+S6jOe/u+W9uSA8IHJ5YW5mYW4nJ3lha3VcIDsKK+S4gOaWieWwhOaSgyA8IGlzc2Vpc2hhZ2VraVwgOwor5LiA6YW45YyW54Kt57SgIDwgaXNzYW5rYXRhbnNvXCA7Civln7rou7jpgJrosqggPCBraWppa3V0c3V1a2FcIDsKK+WCvuaWnOeUn+eUoyA8IGtlaXNoYXNlaXNhblwgOwor5aKD55WM55CG6KuWIDwga3lvdWthaXJpcm9uXCA7CivlpKnnmofpmZvkuIsgPCB0ZW4nJ25vdWhlaWthXCA7CivlpKnnhLbmnpzmsYEgPCB0ZW4nJ25lbmthanV1XCA7Civlj6Pmi43lrZAgPCBrdWNoaWJ5b3VzaGlcIDsKK+mciuiCieS4gOiHtCA8IHJlaW5pa3VpdGNoaVwgOwor5LuY5Yqg5L6h5YCk56iOIDwgZnVrYWthY2hpemVpXCA7CivntYzmuIjlvqnoiIggPCBrZWl6YWlmdWtrb3VcIDsKK+S6uuWPo+e1seioiCA8IGppbmtvdXRvdWtlaVwgOwor5oim5pmC55Sj5qWtIDwgc2VuamlzYW5neW91XCA7Civlj6Tpiq3lrabogIUgPCBrb3Nlbmdha3VzaGFcIDsKK+WvvuW8vumBk+W8viA8IHRhaWRhbmRvdWRhblwgOwor6KqN6Ki85byPIDwgbmluc2hvdXNoaWtpXCA7Civoo73pgKDnlarlj7cgPCBzZWl6b3ViYW5nb3VcIDsKK+e3j+aLrOeahCA8IHNvdWthdHN1dGVraVwgOwor5aSa6YeN5Lq65qC8IDwgdGFqdXVqaW5rYWt1XCA7CivkuIDliIDkuKHmlq0gPCBpdHRvdXJ5b3VkYW5cIDsKK+aJmOmJouWDpyA8IHRha3VoYXRzdXpvdVwgOwor5YWx55Sj5Li7576pIDwga3lvdXNhbnNodWdpXCA7CivoqJjlkI3mipXnpaggPCBraW1laXRvdWh5b3VcIDsKK+WVhualreWbvSA8IHNob3VneW91a29rdVwgOwor5Luy5Lq65Y+jIDwgbmFrb3Vkb2d1Y2hpXCA7CivmoZzliY3nt5ogPCBzYWt1cmF6ZW5zZW5cIDsKK+S8keaGqeaZgumWkyA8IGt5dXVrZWlqaWthblwgOwor5Li45aSq6Laz5aC0IDwgbWFydXRhYXNoaWJhXCA7CivmoYPoibLpgYrmiK8gPCBtb21vaXJveXV1Z2lcIDsKK+atpuWjq+majue0miA8IGJ1c2hpa2Fpa3l1dVwgOwor5bi4572u5aeU5ZOh5LyaIDwgam91Y2hpaWlua2FpXCA7Civlm73pmpvpm7voqbEgPCBrb2t1c2FpZGVud2FcIDsKK+S6uuW3peWcsOmchyA8IGppbmtvdWppc2hpblwgOwor5r2c5Zyo5Li75qipIDwgc2VuemFpc2h1a2VuXCA7CivpgY7lsI/oqZXkvqEgPCBrYXNob3VoeW91a2FcIDsKK+evhOeWh+mDqOmWgCA8IGhhbmNodXVidW1vblwgOwor5L+u6YGT5Yi25bqmIDwgc2h1dWRvdXNlaWRvXCA7CivntbHoqp7nr4TnlocgPCB0b3Vnb2hhbmNodXVcIDsKK+ihm+eUn+ioreWCmSA8IGVpc2Vpc2V0c3ViaVwgOwor5LiA5qyh55Sj5ZOBIDwgaWNoaWppc2FucGluXCA7CivlvLfliLblipsgPCBreW91c2Vpcnlva3VcIDsKK+WFrOaYjuato+WkpyA8IGtvdW1laXNlaWRhaVwgOwor5b+F6Kqt5pu4IDwgaGl0c3Vkb2t1c2hvXCA7CivoirHngavnt5rpppkgPCBoYW5hYmlzZW5rb3VcIDsKK+Wcp+WKm+ioiCA8IGF0c3VyeW9rdWtlaVwgOwor6Ii255So5qmf6ZaiIDwgaGFrdXlvdWtpa2FuXCA7Civpmo/nrYbpm4YgPCB6dWloaXRzdXNodXVcIDsKK+WFrOawkeaoqeazlSA8IGtvdW1pbmtlbmhvdVwgOwor54yr55uu55+zIDwgbmVrb21va3VzZWtpXCA7Civli4nlvLfmnLogPCBiZW5reW91enVrdWVcIDsKK+aYj+edoeeKtuaFiyA8IGtvbnN1aWpvdXRhaVwgOwor5a++5ZCR6LuK57eaIDwgdGFpa291c2hhc2VuXCA7CivpiYTmi7PliLboo4EgPCB0ZWtrZW5zZWlzYWlcIDsKK+ahguWGoOipqeS6uiA8IGtlaWthbnNoaWppblwgOwor5Lq65Y+j6Kq/5p+7IDwgamlua291Y2hvdXNhXCA7Civlj7jms5Xop6PliZYgPCBzaGlob3VrYWlib3VcIDsKK+S6uuWPo+mdmeaFiyA8IGppbmtvdXNlaXRhaVwgOwor5pyJ5L2T5YuV55SjIDwgeXV1dGFpZG91c2FuXCA7CivmjqHnlKjoqabpqJMgPCBzYWl5b3VzaGlrZW5cIDsKK+eZveeOiealvCA8IGhha3VneW9rdXJvdVwgOwor5rCX6LGh5oOF5aCxIDwga2lzaG91am91aG91XCA7CivmnInnt5rmlL7pgIEgPCB5dXVzZW5ob3Vzb3VcIDsKK+mWi+mAmuW8jyA8IGthaXRzdXVzaGlraVwgOwor5oiv5LqLIDwgdGF3YW11cmVnb3RvXCA7CivlloDnl7DmpJzmn7sgPCBrYWt1dGFua2Vuc2FcIDsKK+mDt+Wcn+aWmeeQhiA8IGt5b3Vkb3J5b3VyaVwgOwor5LiJ5q616KuW5rOVIDwgc2FuZGFucm9ucG91XCA7Civopb/ljYrnkIMgPCBuaXNoaWhhbmt5dXVcIDsKK+aZguS7o+eyvuelniA8IGppZGFpc2Vpc2hpblwgOwor6KqH5aSn5bqD5ZGKIDwga29kYWlrb3Vrb2t1XCA7Civpg73luILoqIjnlLsgPCB0b3NoaWtlaWtha3VcIDsKK+mWouadseS4gOWGhiA8IGthbnRvdWljaGllblwgOwor6Ieq54S255m655SfIDwgc2hpemVuaGFzc2VpXCA7CivllYTmnKjps6UgPCB0YWt1Ym9rdWNob3VcIDsKK+WNmOS4gOW9oiA8IHRhbicnaWNoaWdhdGFcIDsKK+asveWumuaGsuazlSA8IGtpbnRlaWtlbnBvdVwgOwor5b+F54S255qEIDwgaGl0c3V6ZW50ZWtpXCA7CivmlbDlgKTliLblvqEgPCBzdXVjaGlzZWlneW9cIDsKK+atpuiAheS6uuW9oiA8IG11c2hhbmluZ3lvdVwgOwor5YiG5ZGo5Zue6LevIDwgYnVuc2h1dWthaXJvXCA7CivluILmsJHlpKfkvJogPCBzaGltaW50YWlrYWlcIDsKK+i1pOWtl+WbveWCtSA8IGFrYWppa29rdXNhaVwgOwor5L2/55So5pa55rOVIDwgc2hpeW91aG91aG91XCA7CivmsLTon7fonoIgPCBtaXp1a2FtYWtpcmlcIDsKK+Wwj+aYpeaXpeWSjCA8IGtvaGFydWJpeW9yaVwgOwor5pif5pyI5aScIDwgaG9zaGlkenVrdXlvXCA7CivnuJ7nuZTniakgPCBzaGltYW9yaW1vbm9cIDsKK+WFrOW8j+ippuWQiCA8IGtvdXNoaWtpamlhaVwgOwor54Wn5bCE5Yem55CGIDwgc2hvdXNoYXNob3JpXCA7Civlu7roqK3mpa0gPCBrZW5zZXRzdWd5b3VcIDsKK+WPguWLpOS6pOabvyA8IHNhbmtpbmtvdXRhaVwgOwor576K6aCt54uX6IKJIDwgeW91dG91a3VuaWt1XCA7CivmlqHml4vmpa3ogIUgPCBhc3Nlbmd5b3VzaGFcIDsKK+S8muekvuamguimgSA8IGthaXNoYWdhaXlvdVwgOwor5ZWG5Lq66KGXIDwgc2hvdW5pbm1hY2hpXCA7CivkuIDluZXniakgPCBoaXRvbWFrdW1vbm9cIDsKK+awkeS4u+aUv+S9kyA8IG1pbnNodXNlaXRhaVwgOwor57KX5pS+6L6y5qWtIDwgc29ob3Vub3VneW91XCA7CivosqHli5noq7jooaggPCB6YWltdXNob2h5b3VcIDsKK+iaiuWPlue3mummmSA8IGthdG9yaXNlbmtvdVwgOwor5bqD5aCx5oOF5aCxIDwga291aG91am91aG91XCA7Civnt4rmgKXkuovmhYsgPCBraW5reXV1aml0YWlcIDsKK+Wdh+ihoeS+oeagvCA8IGtpbmtvdWtha2FrdVwgOwor5YWs5a6J5aeU5ZOh5LyaIDwga291YW4nJ2lpbmthaVwgOwor5a2j56+A5aSJ55WwIDwga2lzZXRzdWhlbicnaVwgOwor5pyJ5oSf5Zyw6ZyHIDwgeXV1a2FuamlzaGluXCA7Civnt6nlkozmjK/li5UgPCBrYW53YXNoaW5kb3VcIDsKK+W5vemciuS6uuWPoyA8IHl1dXJlaWppbmtvdVwgOwor57Wx6Kqe5oyH5qiZIDwgdG91Z29zaGloeW91XCA7CivmnIDpq5jkvqHmoLwgPCBzYWlrb3VrYWtha3VcIDsKK+eZvuS6uuWKmyA8IGh5YWt1bmlucmlraVwgOwor6YW45oCn55m95ZyfIDwgc2Fuc2VpaGFrdWRvXCA7CivmsJHml4/ooaPoo4UgPCBtaW56b2t1aXNob3VcIDsKK+S+m+i/sOabuCA8IGt5b3VqdXRzdXNob1wgOwor6Z2e5Za25Yip5LqL5qWtIDwgaGllaXJpamlneW91XCA7Civlrp/mpa3nlYwgPCBqaXRzdWd5b3VrYWlcIDsKK+S/ruWjq+iqsueoiyA8IHNodXVzaGlrYXRlaVwgOwor6KGM5bmz6Y2LIDwgeXVraWhpcmFuYWJlXCA7Civlhaznm4rms5XkurogPCBrb3Vla2lob3VqaW5cIDsKK+attOWPsuS4u+e+qSA8IHJla2lzaGlzaHVnaVwgOwor5byB5oW25qC85a2QIDwgYmVua2VpZ291c2hpXCA7CivnrKzkuozkurrnp7AgPCBkYWluaW5pbnNob3VcIDsKK+S4i+a1geekvuS8miA8IGthcnl1dXNoYWthaVwgOwor5b+r5qW95Li7576pIDwga2FpcmFrdXNodWdpXCA7CivokL3miJDlvI8gPCByYWt1c2Vpc2hpa2lcIDsKK+afs+W3nemNiyA8IHlhbmFnYXdhbmFiZVwgOwor6Iiq57aa5YqbIDwga291em9rdXJ5b2t1XCA7CivliLbpmZDpgJ/luqYgPCBzZWlnZW5zb2t1ZG9cIDsKK+aWh+atpuS4oemBkyA8IGJ1bmJ1cnlvdWRvdVwgOwor5LiK5piH6ZmQ5bqmIDwgam91c2hvdWdlbmRvXCA7CivkvZznlKjnqY3liIYgPCBzYXlvdXNla2lidW5cIDsKK+ebtOaOpeiyuyA8IGNob2t1c2V0c3VoaVwgOwor6IW5562L6YGL5YuVIDwgZnVra2luJyd1bmRvdVwgOwor5YWs6KqN6KiY6YyyIDwga291bmlua2lyb2t1XCA7CivlsbHmoqjnnIwgPCB5YW1hbmFzaGlrZW5cIDsKK+S4gOe2suaJk+WwvSA8IGljaGltb3VkYWppblwgOwor5qOX5qSw5a2QIDwgbmF0c3VtZXlhc2hpXCA7CivlrabmoKHnlKjlk4EgPCBnYWtrb3V5b3VoaW5cIDsKK+S9j+WuheaJi+W9kyA8IGp1dXRha3V0ZWF0ZVwgOwor6KqN55+l56eR5a2mIDwgbmluY2hpa2FnYWt1XCA7CivllYblo7LpgZPlhbcgPCBzaG91YmFpZG91Z3VcIDsKK+WIuua/gOeJqSA8IHNoaWdla2lidXRzdVwgOwor5Y6f5a2Q5oim5LqJIDwgZ2Vuc2hpc2Vuc291XCA7CivmvKvpgYrlrqIgPCBtYW4nJ3l1dWt5YWt1XCA7Civkuozph43nhKbngrkgPCBuaWp1dXNob3V0ZW5cIDsKK+eTpueFjumkhSA8IGthd2FyYXNlbmJlaVwgOwor5Zuz5pu46aSo6ZW3IDwgdG9zaG9rYW5jaG91XCA7CivlnKjluqvoqr/mlbQgPCB6YWlrb2Nob3VzZWlcIDsKK+WvvuaVsOmWouaVsCA8IHRhaXN1dWthbnN1dVwgOwor6Kaq5a2Q5Li8IDwgb3lha29kb25idXJpXCA7CivmlL/mlZnkuIDoh7QgPCBzZWlreW91aXRjaGlcIDsKK+aWh+iKuOaJueiplSA8IGJ1bmdlaWhpaHlvdVwgOwor57ea5b2i5Luj5pWwIDwgc2Vua2VpZGFpc3V1XCA7CivpgKPlkIjmlL/mqKkgPCByZW5nb3VzZWlrZW5cIDsKK+mgvOavjeWtkOismyA8IHRhbm9tb3NoaWtvdVwgOwor5Zyo6Z+T57Gz6LuNIDwgemFpa2FuYmVpZ3VuXCA7CivokZfov7Dmpa0gPCBjaG9qdXRzdWd5b3VcIDsKK+S4gOWknOS5numjnyA8IGljaGl5YWtvamlraVwgOwor55Ww5bi457WC5LqGIDwgaWpvdXNodXVyeW91XCA7Civlk4HlvaIgPCBzaGluYWthdGFjaGlcIDsKK+ippumok+WcsOeNhCA8IHNoaWtlbmppZ29rdVwgOwor56S+5ZOh5pWZ6IKyIDwgc2hhaW5reW91aWt1XCA7Civokrznmb3oibIgPCBzb3VoYWt1c2hva3VcIDsKK+S8gealreW5tOmHkSA8IGtpZ3lvdW5lbmtpblwgOwor5Lme6aOf5qC55oCnIDwga29qaWtpa29uam91XCA7CivkvIHmpa3lkIjlkIwgPCBraWd5b3Vnb3Vkb3VcIDsKK+iHquS4u+aMh+mHnSA8IGppc2h1c2hpc2hpblwgOwor5oSf5oWo54Sh6YePIDwga2FuZ2FpbXVyeW91XCA7CivkuIPovrrlvaIgPCBzaGljaGloZW5rZWlcIDsKK+aVteaAp+WbveWutiA8IHRla2lzZWlrb2trYVwgOwor562J5beu57Sa5pWwIDwgdG91c2FreXV1c3V1XCA7CivlubTmnKvov4QgPCBuZW5tYXRzdW1hZGVcIDsKK+W4q+evhOWtpuagoSA8IHNoaWhhbmdha2tvdVwgOwor57WM5riI56S+5LyaIDwga2VpemFpc2hha2FpXCA7CivmlLnoia/kuLvnvqkgPCBrYWlyeW91c2h1Z2lcIDsKK+e1jOa4iOWItuijgSA8IGtlaXphaXNlaXNhaVwgOwor5Li75oim5oqV5omLIDwgc2h1c2VudG91c2h1XCA7Civlo7LmmKXlrr8gPCBiYWlzaHVuJyd5YWRvXCA7CivpgYrmkoPpmorlk6EgPCB5dXVnZWtpdGFpaW5cIDsKK+S4gOaZguW4sOS8kSA8IGljaGlqaWtpa3l1dVwgOwor6LOq54K557O7IDwgc2hpdHN1dGVua2VpXCA7Civlj5fnm4roqLzliLggPCBqdWVraXNob3VrZW5cIDsKK+W+oeS8veipsSA8IG90b2dpYmFuYXNoaVwgOwor5ouZ6YCf5Li7576pIDwgc2Vzc29rdXNodWdpXCA7CivmnKrplovmi5PlnLAgPCBtaWthaXRha3VjaGlcIDsKK+WFqOaoqeWFrOS9vyA8IHplbmtlbmtvdXNoaVwgOwor57Wx5Yi257WM5riIIDwgdG91c2Vpa2VpemFpXCA7CivnlLDlnJLpoqjmma8gPCBkZW4nJ2VuZnV1a2VpXCA7Civml4XooYzml6XnqIsgPCByeW9rb3VuaXR0ZWlcIDsKK+aTjealreeOhyA8IHNvdWd5b3VyaXRzdVwgOwor54Sh6YeP5aSn5pWwIDwgbXVyeW91ZGFpc3V1XCA7CivlibLlvJXmranlkIggPCB3YXJpYmlraWJ1YWlcIDsKK+WPjeaguOmBi+WLlSA8IGhhbmtha3V1bmRvdVwgOwor5p6V5bGP6aKoIDwgbWFrdXJhYnlvdWJ1XCA7CivooYDmtrLlraYgPCBrZXRzdWVraWdha3VcIDsKK+mmmea4r+i/lOmChCA8IGhvbmtvbmhlbmthblwgOwor5LyB5qWt5ZCI5L21IDwga2lneW91Z2FwcGVpXCA7CivpnZ7ooYzlsJHlubQgPCBoaWtvdXNob3VuZW5cIDsKK+Wfuuedo+aVmSA8IGtpcmlzdXRva3lvdVwgOwor6YeO5aSW5pKu5b2xIDwgeWFnYWlzYXRzdWVpXCA7CivpvKDoirHngasgPCBuZXp1bWloYW5hYmlcIDsKK+WNg+aJi+ims+mfsyA8IHNlbmp1a2FuJydub25cIDsKK+eyvuelnuS4u+e+qSA8IHNlaXNoaW5zaHVnaVwgOwor57WC5aeL5LiA6LKrIDwgc2h1dXNoaWlra2FuXCA7CivmjZXnianluLMgPCB0b3JpbW9ub2Nob3VcIDsKK+ecjOawkeS8mumkqCA8IGtlbm1pbmthaWthblwgOwor5pWZ5p2h5Li7576pIDwga3lvdWpvdXNodWdpXCA7Civmm7TnlJ/kvJrnpL4gPCBrb3VzZWlnYWlzaGFcIDsKK+e5iue2reW3pealrSA8IHNlbicnaWtvdWd5b3VcIDsKK+S6uumWk+WQjOWjqyA8IG5pbmdlbmRvdXNoaVwgOwor6LKv6JS15a6kIDwgY2hvem91c2hpdHN1XCA7Civli5jlkIjosr/mmJMgPCBrYW5nb3Vib3Vla2lcIDsKK+eZvuWutuS6iemztCA8IGh5YWtrYXNvdW1laVwgOwor5LiW55WM5pS/562WIDwgc2VrYWlzZWlzYWt1XCA7CivlvJTllY/lrqIgPCBjaG91bW9ua3lha3VcIDsKK+WutuWxi+WPsOW4syA8IGthb2t1ZGFpY2hvdVwgOwor5p2x5rW36YGT57eaIDwgdG91a2FpZG91c2VuXCA7CivpgbrlpLHniakgPCBpc2hpdHN1YnV0c3VcIDsKK+WLleiEiOihgCA8IGRvdW15YWtrZXRzdVwgOwor6YGO5b2T56u25LqJIDwga2F0b3VreW91c291XCA7CivmtrLkvZPnqpLntKAgPCBla2l0YWljaGlzc29cIDsKK+W5s+WSjOWNlOWumiA8IGhlaXdha3lvdXRlaVwgOwor54Sh57ea6Zu75L+hIDwgbXVzZW5kZW5zaGluXCA7CivlhaXloLTlvI8gPCBueXV1am91c2hpa2lcIDsKK+e0sOiDnuizqiA8IHNhaWJvdXNoaXRzdVwgOwor5bCC6ZaA55So6KqeIDwgc2VubW9uJyd5b3Vnb1wgOwor5Lq66YCg6IKl5paZIDwgamluem91aGlyeW91XCA7CivlpKfnoLLkuInploAgPCB0YWlob3VzYW5tb25cIDsKK+Wun+mok+ijhee9riA8IGppa2tlbnNvdWNoaVwgOwor6KGA5ray5Z6LIDwga2V0c3Vla2lnYXRhXCA7CivkuK3lpK7lirTlg40gPCBjaHV1b3Vyb3Vkb3VcIDsKK+WGhee3mueVquWPtyA8IG5haXNlbmJhbmdvdVwgOwor5Lyd6KiY5L2c6ICFIDwgZGVua2lzYWt1c2hhXCA7CivkurrmsJHlhaznpL4gPCBqaW5taW5rb3VzaGFcIDsKK+mAo+e1oeWIh+espiA8IHJlbnJha3VraXBwdVwgOwor5qiZ6K2Y54GvIDwgaHlvdXNoaWtpdG91XCA7CivntYzllrblkIjnkIbljJYgPCBrZWllaWdvdXJpa2FcIDsKK+WFseWQjOWik+WcsCA8IGt5b3Vkb3Vib2NoaVwgOwor5a6f5oWL6Kq/5p+7IDwgaml0dGFpY2hvdXNhXCA7Civnt4/li5nplbflrpggPCBzb3VtdWNob3VrYW5cIDsKK+a3t+S5seeKtuaFiyA8IGtvbnJhbmpvdXRhaVwgOwor5Yui6LuKIDwgaGF6dW1pZ3VydW1hXCA7Civlk4Dlk4kgPCBrYW5hc2hpaWthbmFcIDsKK+WMheaLrOeahCA8IGhvdWthdHN1dGVraVwgOwor5YqH5Lit5YqHIDwgZ2VraWNodXVnZWtpXCA7Civlrrbml4/mhI/orZggPCBrYXpva3Vpc2hpa2lcIDsKK+WkluaflOWGheWJmyA8IGdhaWp1dW5haWdvdVwgOwor6Kiq5ZWP6LKp5aOyIDwgaG91bW9uaGFuYmFpXCA7Civlrp/nlKjnmoQgPCBqaXRzdXlvdXRla2lcIDsKK+S+jeWFq+mojiA8IHNhbXVyYWloYWtraVwgOwor5Lit6ZaT6ImyIDwgY2h1dWthbnNob2t1XCA7CivmjpLmlqXpgYvli5UgPCBoYWlzZWtpdW5kb3VcIDsKK+mWi+iFueihkyA8IGthaWZ1a3VqdXRzdVwgOwor5Y6f5a2Q5by+6aCtIDwgZ2Vuc2hpZGFudG91XCA7Civnm7TmkoPlvL4gPCBjaG9rdWdla2lkYW5cIDsKK+WWtualreahiOWGhSA8IGVpZ3lvdWFuJyduYWlcIDsKK+WkqeaWh+iIquazlSA8IHRlbm1vbmtvdWhvdVwgOwor6Z2e5a6f6Zqb55qEIDwgaGlqaXNzYWl0ZWtpXCA7Civoo4/mm7jorbLmuKEgPCB1cmFnYWtpam91dG9cIDsKK+WJr+eUo+eJqSA8IGZ1a3VzYW5idXRzdVwgOwor5ZG95Lit546HIDwgbWVpY2h1dXJpdHN1XCA7CivooYDlj4vnl4UgPCBrZXRzdXl1dWJ5b3VcIDsKK+mWouS/guabuOmhniA8IGthbmtlaXNob3J1aVwgOwor5YWN6Kix55qG5LydIDwgbWVua3lva2FpZGVuXCA7Civlm57ou6Lnq7bmioAgPCBrYWl0ZW5reW91Z2lcIDsKK+e1jOa4iOawtOWfnyA8IGtlaXphaXN1aWlraVwgOwor54Sh5qyy5oGs5rehIDwgbXV5b2t1dGVudGFuXCA7Civoh6rmiJHlrp/nj74gPCBqaWdhaml0c3VnZW5cIDsKK+Wft+ihjOeMtuS6iCA8IHNoaWtrb3V5dXV5b1wgOwor6J6N6YCa5omL5b2iIDwgeXV1enV1dGVnYXRhXCA7CivljprnlJ/lubTph5EgPCBrb3VzZWluZW5raW5cIDsKK+mZouWGheaEn+afkyA8IGluJyduYWlrYW5zZW5cIDsKK+aCquaAp+awtOiFqyA8IGFrdXNlaXN1aXNodVwgOwor5Zuj5Y2B6YOO5LiIIDwgZGFuanV1cm91am91XCA7Civnsr7nmb3njocgPCBzZWloYWt1cml0c3VcIDsKK+S7peW/g+S8neW/gyA8IGlzaGluZGVuc2hpblwgOwor5LiA5a2X5Y2D6YeRIDwgaWNoaWppc2Vua2luXCA7Civmpa3nuL7mgqrljJYgPCBneW91c2VraWFra2FcIDsKK+WFteWZqOaLoeaVoyA8IGhlaWtpa2FrdXNhblwgOwor5Lqk5Y+L6Zai5L+CIDwga291eXV1a2Fua2VpXCA7Civlm73pmpvmlL/msrsgPCBrb2t1c2Fpc2VpamlcIDsKK+Wdh+izquaApyA8IGtpbnNoaXRzdXNlaVwgOwor5pu46Z2i5a+p55CGIDwgc2hvbWVuc2hpbnJpXCA7CivkurrplpPnpL7kvJogPCBuaW5nZW5zaGFrYWlcIDsKK+i7jeWbveS4u+e+qSA8IGd1bmtva3VzaHVnaVwgOwor5rC05LiK56u25oqAIDwgc3Vpam91a3lvdWdpXCA7CivmsrPljp/kuZ7po58gPCBrYXdhcmFrb2ppa2lcIDsKK+aIuOexjeS/giA8IGtvc2VraWdha2FyaVwgOwor5LqM6YeN5pKu5b2xIDwgbmlqdXVzYXRzdWVpXCA7Civntbblr77oqZXkvqEgPCB6ZXR0YWloeW91a2FcIDsKK+WcqOexs+mCpuS6uiA8IHphaWJlaWhvdWppblwgOwor5Zub5pyI6aas6bm/IDwgc2hpZ2F0c3ViYWthXCA7CivmlrDpgLLmsJfpi60gPCBzaGluc2hpbmtpZWlcIDsKK+aJgOW+l+aOp+mZpCA8IHNob3Rva3Vrb3Vqb1wgOwor6Zai5L+C5Lya56S+IDwga2Fua2VpZ2Fpc2hhXCA7Civoh6rkv6HmuoDmuoAgPCBqaXNoaW5tYW5tYW5cIDsKK+aXpeacrOWtpuiAhSA8IG5paG9uZ2FrdXNoYVwgOwor5o6l5a6i5qWtIDwgc2Vra3lha3VneW91XCA7CivmmKXml6XlpKfnpL4gPCBrYXN1Z2F0YWlzaGFcIDsKK+awtOebgyA8IG1penVzYWthenVraVwgOwor5paH5piO56S+5LyaIDwgYnVubWVpc2hha2FpXCA7Civok4Tohr/nl4cgPCBjaGlrdW5vdXNob3VcIDsKK+WQjOS6uumbkeiqjCA8IGRvdWppbnphc3NoaVwgOwor6Iqx5b2i5qCqIDwgaGFuYWdhdGFrYWJ1XCA7Civlj7jms5Xoo4HliKQgPCBzaGlob3VzYWliYW5cIDsKK+S6uuS9k+Wun+mokyA8IGppbnRhaWppa2tlblwgOwor5Lqh5ZG95pS/5qipIDwgYm91bWVpc2Vpa2VuXCA7CivmjK/lh7rkurogPCBmdXJpZGFzaGluaW5cIDsKK+S7sumWk+WQjOWjqyA8IG5ha2FtYWRvdXNoaVwgOwor57WM5Za25bel5a2mIDwga2VpZWlrb3VnYWt1XCA7CivlvIHorbfkvp3poLzkurogPCBiZW5nb2lyYWluaW5cIDsKK+izm+WQpuS4oeirliA8IHNhbnBpcnlvdXJvblwgOwor5LiN5rOV6ZuG5LyaIDwgZnVob3VzaHV1a2FpXCA7CivnnLzpq5jmiYvkvY4gPCBnYW5rb3VzaHV0ZWlcIDsKK+emgeassueahCA8IGtpbicneW9rdXRla2lcIDsKK+iHquWLleWwj+mKgyA8IGppZG91c2hvdWp1dVwgOwor5Zyw5Z+f56S+5LyaIDwgY2hpaWtpc2hha2FpXCA7CivkuqTmtYHkurrkuosgPCBrb3VyeXV1amluamlcIDsKK+eJueauiuWKueaenCA8IHRva3VzaHVrb3VrYVwgOwor5LiA5YiG5YilIDwgaGl0b2Z1bmJldHN1XCA7Civoh6rlrrbkuK3mr5IgPCBqaWthY2h1dWRva3VcIDsKK+S6uuawl+eVque1hCA8IG5pbmtpYmFuZ3VtaVwgOwor5pW15pys5Li7576pIDwgdGVraWhvbnNodWdpXCA7Civlj6PlhoXmgKfkuqQgPCBrb3VuYWlzZWlrb3VcIDsKK+iEs+i7n+WMlueXhyA8IG5vdW5hbmthc2hvdVwgOwor5Y2K54us56uLIDwgaGFuZG9rdXJpdHN1XCA7Civnj77lnLDms5XkurogPCBnZW5jaGlob3VqaW5cIDsKK+iHquWLlei7iuazpSA8IGppZG91c2hhZG9yb1wgOwor5LiA5pmC5YGc5q2iIDwgaWNoaWppdGVpc2hpXCA7CivlrablnJLntJvkuokgPCBnYWt1ZW5mdW5zb3VcIDsKK+acgOmrmOWtpuW6nCA8IHNhaWtvdWdha3VmdVwgOwor5L+d6Zm65aWR57SEIDwgaG9rZW5rZWl5YWt1XCA7CivlpbPmgKflt67liKUgPCBqb3NlaXNhYmV0c3VcIDsKK+WFkOerpeemj+eliSA8IGppZG91ZnVrdXNoaVwgOwor5Z+35YuZ5LitIDwgc2hpdHN1bXVjaHV1XCA7CivoqabpqJPllY/poYwgPCBzaGlrZW5tb25kYWlcIDsKK+a8uOmAsuS4u+e+qSA8IHplbnNoaW5zaHVnaVwgOwor6Z+z5L+h5LiN6YCaIDwgb25zaGluZnV0c3V1XCA7Civli4flvoDpgoHpgLIgPCB5dXVvdW1haXNoaW5cIDsKK+mdmeatoueKtuaFiyA8IHNlaXNoaWpvdXRhaVwgOwor5YyX5pSv5LqL5aSJIDwgaG9rdXNoaWppaGVuXCA7Civlr7jlgJ/oqZDmrLogPCBzdW5zaGFrdXNhZ2lcIDsKK+aMh+WQjemAmuipsSA8IHNoaW1laXRzdXV3YVwgOwor6Ium5b+D5oOo5oa6IDwga3VzaGluc2FudGFuXCA7Civnib3lvLfku5jkvJogPCBrZW5reW91ZnVrYWlcIDsKK+WvkuWGt+WJjee3miA8IGthbnJlaXplbnNlblwgOwor5Yip5LuW5Li7576p6ICFIDwgcml0YXNodWdpc2hhXCA7Civopqrml6XmtL4gPCBzaGluJyduaWNoaWhhXCA7CivpgJ/luqbliLbpmZAgPCBzb2t1ZG9zZWlnZW5cIDsKK+Wbm+mDqOWQiOWUsSA8IHNoaWJ1Z2Fzc2hvdVwgOwor6Zu76Zu75YWs56S+IDwgZGVuZGVua291c2hhXCA7Civnpo/ls7bnnIwgPCBmdWt1c2hpbWFrZW5cIDsKK+iqv+iJsuadvyA8IGNob3VzaG9rdWJhblwgOwor5YSq5Yud5YCZ6KOcIDwgeXV1c2hvdWtvdWhvXCA7Civlj4vlpb3plqLkv4IgPCB5dXVrb3VrYW5rZWlcIDsKK+aVkeaPtOeJqeizhyA8IGt5dXVlbmJ1c3NoaVwgOwor5Ymq5a6a6YuPIDwgc2VudGVpYmFzYW1pXCA7Civnt5Hpu4ToibIgPCByeW9rdW91c2hva3VcIDsKK+WMhee0mSA8IHRzdXRzdW1pZ2FtaVwgOwor5LiL5bGL5pW3IDwgc2hpbW95YXNoaWtpXCA7CivnpZ7npL7ku4/plqMgPCBqaW5qYWJ1a2tha3VcIDsKK+i7iueUqOWTgSA8IGt1cnVtYXlvdWhpblwgOwor6ICQ5LmF5YqbIDwgdGFpa3l1dXJ5b2t1XCA7CivmsLTlubPmgJ3ogIMgPCBzdWloZWlzaGlrb3VcIDsKK+mfs+aEn+aVmeiCsiA8IG9ua2Fua3lvdWlrdVwgOwor5a+d5Y+w6JmrIDwgc2hpbmRhaW11c2hpXCA7Civll5zomZDnmoQgPCBzaGlneWFrdXRla2lcIDsKK+a7nue0jeWHpuWIhiA8IHRhaW5vdXNob2J1blwgOwor5Lit57aZ5bGAIDwgY2h1dWtlaWt5b2t1XCA7CivlhbHlkIzntYzllrYgPCBreW91ZG91a2VpZWlcIDsKK+mVt+W6g+iIjCA8IGNob3Vrb3V6ZXRzdVwgOwor5LqM5YWt5pmC5LitIDwgbmlyb2t1amljaHV1XCA7CivkuIDmmYLos5zph5EgPCBpY2hpamlzaGlraW5cIDsKK+iHqueEtuW0h+aLnSA8IHNoaXplbnN1dWhhaVwgOwor5a+p6K2w5pyq5LqGIDwgc2hpbmdpbWlyeW91XCA7CivppIrlrZDnuIHntYQgPCB5b3VzaGllbmd1bWlcIDsKK+aXpeayoeW+jCA8IG5pY2hpYm90c3Vnb1wgOwor5rCP5peP5Yi25bqmIDwgc2hpem9rdXNlaWRvXCA7Civli5XohIjnmKQgPCBkb3VteWFrdXJ5dXVcIDsKK+S4gOi8quaMvyA8IGljaGlyaW56YXNoaVwgOwor6LuN6Zmj5Yy75a2mIDwgZ3VuamluJydpZ2FrdVwgOwor6JK455m655q/IDwgam91aGF0c3V6YXJhXCA7CivmraPlm5vpnaLkvZMgPCBzZWlzaGltZW50YWlcIDsKK+WumuagvOiri+iyoCA8IHRlaWtha3V1a2VvaVwgOwor6LOD5YCf5qipIDwgY2hpbnNoYWt1a2VuXCA7CivljbjllY/lsYsgPCBvcm9zaGlkb24nJ3lhXCA7CivpmLLmub/liaQgPCBib3VzaGl0c3V6YWlcIDsKK+WPjuepq+mrmCA8IHNodXVrYWt1ZGFrYVwgOwor5YaN5Ye655m6IDwgc2Fpc2h1cHBhdHN1XCA7CivlvoXpgYfmlLnlloQgPCB0YWlndXVrYWl6ZW5cIDsKK+e5iue2reWFieWtpiA8IHNlbicnaWtvdWdha3VcIDsKK+m7kuS6uumciuatjCA8IGtva3VqaW5yZWlrYVwgOwor5ZGo5qW15pifIDwgc2h1dWt5b2t1c2VpXCA7Civpm7booYzliJcgPCByZWlneW91cmV0c3VcIDsKK+eJueauiuapn+iDvSA8IHRva3VzaHVraW5vdVwgOwor57WM6Lev56mN5YiGIDwga2Vpcm9zZWtpYnVuXCA7Civlm73llrbovrLloLQgPCBrb2t1ZWlub3Vqb3VcIDsKK+Wbveeyi+S4u+e+qSA8IGtva3VzdWlzaHVnaVwgOwor5Ye655m654K5IDwgc2h1cHBhdHN1dGVuXCA7CivnlLLnirbohbrngo4gPCBrb3Vqb3VzZW4nJ2VuXCA7CivlkIjmoLznjocgPCBnb3VrYWt1cml0c3VcIDsKK+izh+eUo+WQiOioiCA8IHNoaXNhbmdvdWtlaVwgOwor6a+o6aOy6aas6aOfIDwgZ2VpaW5iYXNob2t1XCA7Civlv4Poh5PnmbrkvZwgPCBzaGluem91aG9zc2FcIDsKK+aWsOS6uuatjOaJiyA8IHNoaW5qaW5rYXNodVwgOwor6Ly45YWl5omL5b2iIDwgeXVueXV1dGVnYXRhXCA7CivlnKfnnYDnq6/lrZAgPCBhdHN1Z2l0YW5zaGlcIDsKK+acquaUueW/g+iAhSA8IG1pa2Fpc2hpbnNoYVwgOwor54Sh5Yq55oqV56WoIDwgbXVrb3V0b3VoeW91XCA7CivooYzpgLLmm7IgPCBrb3VzaGlua3lva3VcIDsKK+mbo+aUu+S4jeiQvSA8IG5hbmtvdWZ1cmFrdVwgOwor5LiA5b+D5ZCM5L2TIDwgaXNzaGluZG91dGFpXCA7CivlrqXlkozmlL/nrZYgPCB5dXV3YXNlaXNha3VcIDsKK+mZkOeVjOWKueeUqCA8IGdlbmthaWtvdXlvdVwgOwor5Y2B5LiH5YSE5ZyfIDwganV1bWFuJydva3Vkb1wgOwor5aSJ5oWL5b+D55CGIDwgaGVudGFpc2hpbnJpXCA7Civnmb3nhrHnga8gPCBoYWt1bmV0c3V0b3VcIDsKK+aLjeWtkOiomOWPtyA8IGh5b3VzaGlraWdvdVwgOwor5YWs5Lya5ZWP562UIDwga291a2FpbW9uZG91XCA7CivogIPlj6TlrabogIUgPCBrb3Vrb2dha3VzaGFcIDsKK+mjn+aWmeWTgSA8IHNob2t1cnlvdWhpblwgOwor6YeO55CD6YG45omLIDwgeWFreXV1c2Vuc2h1XCA7Civmk43ou4rkv4IgPCBzb3VzaGFnYWthcmlcIDsKK+WkoumBiueXheiAhSA8IG11eXV1YnlvdXNoYVwgOwor6KaB5omA6KaB5omAIDwgeW91c2hveW91c2hvXCA7Civmub/pm7vmsaAgPCBzaGl0c3VkZW5jaGlcIDsKK+ims+aOjOihkyA8IGthbnNob3VqdXRzdVwgOwor5L2/5b6S57aZ5om/IDwgc2hpdG9rZWlzaG91XCA7CivlirHno4Hpm7vmtYEgPCByZWlqaWRlbnJ5dXVcIDsKK+W/lyA8IGtva29yb3phc2hpXCA7CivmlL8gPCBtYXRzdXJpZ290b1wgOwor56S+5Lya5Yi25bqmIDwgc2hha2Fpc2VpZG9cIDsKK+S7o+eQhumgmOS6iyA8IGRhaXJpcnlvdWppXCA7CivngrnmlbDliIfnrKYgPCB0ZW5zdXVraXBwdVwgOwor5YyW5oiQ6IKl5paZIDwga2FzZWloaXJ5b3VcIDsKK+acquaIkOW5tOiAhSA8IG1pc2VpbmVuc2hhXCA7CivnnJ/pqqjpoIIgPCBzaGlua290Y2hvdVwgOwor5b+F6KaB5ZOBIDwgaGl0c3V5b3VoaW5cIDsKK+eUu+S4lueahCA8IGtha3VzZWl0ZWtpXCA7CivkuIDlpKnkuIfkuZcgPCBpdHRlbmJhbmpvdVwgOwor54ao5paX6KKLIDwgbm9zaGlidWt1cm9cIDsKK+a4rOWcsOWtpiA8IHNva3VjaGlnYWt1XCA7CivopqrlrZDplqLkv4IgPCBveWFrb2thbmtlaVwgOwor6ZuB5pyo6ZGiIDwgZ2FuZ2l5YXN1cmlcIDsKK+WGjeWJsuW8lSA8IHNhaXdhcmliaWtpXCA7CivmgZDmgJbmlL/msrsgPCBreW91ZnVzZWlqaVwgOwor5aWJ54yu5byPIDwgaG91a2Vuc2hpa2lcIDsKK+iZmuaVsOWNmOS9jSA8IGt5b3N1dXRhbicnaVwgOwor6YG45oyZ5Yi25bqmIDwgc2Vua3lvc2VpZG9cIDsKK+WIneiqleeUnyA8IGhhdHN1dGFuam91XCA7CivkuInmnKzotrMgPCBzYW5ib24nJ2FzaGlcIDsKK+WIpOaWreWKmyA8IGhhbmRhbnJ5b2t1XCA7CivlpKfpoZjmiJDlsLEgPCBkYWlnYW5qb3VqdVwgOwor5Y2U6Kq/5oCnIDwga3lvdWNob3VzZWlcIDsKK+WGhuWNk+S8muitsCA8IGVudGFrdWthaWdpXCA7CivlpKnpgZPkub4gPCB0ZW50b3Vib3NoaVwgOwor5aSn5a6u5b6h5omAIDwgb29taXlhZ29zaG9cIDsKK+eZveaXpeWkoiA8IGhha3VqaXRzdW11XCA7CivliIbmnpDooaggPCBidW5zZWtpaHlvdVwgOwor5LiK5LiL6Zai5L+CIDwgam91Z2VrYW5rZWlcIDsKK+aJv+irvuabuCA8IHNob3VkYWt1c2hvXCA7CivlsJHpo5/lrrYgPCBzaG91c2hva3VrYVwgOwor5Luu5Z+36KGMIDwga2FyaXNoaWtrb3VcIDsKK+aPoeWKm+ioiCA8IGFrdXJ5b2t1a2VpXCA7CivlhazllrbkvIHmpa0gPCBrb3VlaWtpZ3lvdVwgOwor6YeN5ray5YiG6ZuiIDwganV1ZWtpYnVucmlcIDsKK+S4jei2s+WLnSA8IGZ1c29rdWdhY2hpXCA7Civlrp/ot7XnkIbmgKcgPCBqaXNzZW5yaXNlaVwgOwor5biv6Yu4IDwgb2Jpbm9rb2dpcmlcIDsKK+W+jOmAsuWbvSA8IGtvdXNoaW5rb2t1XCA7CivooYzkvY/lnZDoh6UgPCBneW91anV1emFnYVwgOwor6KiA6KGM5LiA6Ie0IDwgZ2Vua291aXRjaGlcIDsKK+a0l+ecvOiWrCA8IHNlbmdhbicneWFrdVwgOwor5b6p57+S5paHIDwgZnVrdXNodXVidW5cIDsKK+W6g+Wkp+eEoei+uiA8IGtvdWRhaW11aGVuXCA7CivlhKrlhYjkuovpoIUgPCB5dXVzZW5qaWtvdVwgOwor5pC65biv6Zu76KmxIDwga2VpdGFpZGVud2FcIDsKK+atouihgOW4ryA8IHNoaWtldHN1dGFpXCA7CivkuIvlrr/mlpkgPCBnZXNodWt1cnlvdVwgOwor5pmC5Luj6Yyv6KqkIDwgamlkYWlzYWt1Z29cIDsKK+S6uuW3peihm+aYnyA8IGppbmtvdWVpc2VpXCA7Civph43ph4/ntJogPCBqdXVyeW91a3l1dVwgOwor57ea5b2i6aCG5bqPIDwgc2Vua2VpanVuam9cIDsKK+WPrOS9vyA8IG1lc2hpdHN1a2FpXCA7CivliY3pgLLou7ggPCB6ZW5zaGluamlrdVwgOwor6YmE55+z5b+DIDwgdGVzc2VraXNoaW5cIDsKK+eUmOiMtuiUkyA8IGFtYWNoYWR6dXJ1XCA7CivlpJbkuqTlrpjoo5wgPCBnYWlrb3VrYW5ob1wgOwor572y5ZCN5byPIDwgc2hvbWVpc2hpa2lcIDsKK+S6uuW/g+WcsCA8IGhpdG9nb2tvY2hpXCA7Civlm5rkurrmnI0gPCBzaHV1amluZnVrdVwgOwor5b6L5YSA6ICFIDwgcmljaGlnaW1vbm9cIDsKK+WKm+efsyA8IGNoaWthcmFpc2hpXCA7CivkvY/lsYXmiYvlvZMgPCBqdXVreW90ZWF0ZVwgOwor6ZuB5pyo6LuKIDwgZ2FuZ2lndXJ1bWFcIDsKK+mBk+i3r+aomeekuiA8IGRvdXJvaHlvdWppXCA7Civnmb3pvKAgPCBzaGlyb25lenVtaVwgOwor5LqI5YKZ5bCG5qChIDwgeW9iaXNob3Vrb3VcIDsKK+aGguasneeXhyA8IHl1dXV0c3VzaG91XCA7CivmsJHplpPpo5vooYwgPCBtaW5rYW5oaWtvdVwgOwor5a6f6aiT5byPIDwgamlra2Vuc2hpa2lcIDsKK+awuOWtkOS9nOaoqSA8IGVpa29zYWt1a2VuXCA7CivnpL7kvJrpgYvli5UgPCBzaGFrYWl1bmRvdVwgOwor56e76KGM6KiI55S7IDwgaWtvdWtlaWtha3VcIDsKK+eLguS/oeiAhSA8IGt5b3VzaGluc2hhXCA7CivmjqXov5HntYzot68gPCBzZWtraW5rZWlyb1wgOwor5LiW55WM57WM5riIIDwgc2VrYWlrZWl6YWlcIDsKK+a1ruS4luiNieWtkCA8IHVraXlvem91c2hpXCA7CivmsJHml4/nmoQgPCBtaW56b2t1dGVraVwgOwor5a6a5pWw5piv5q2jIDwgdGVpc3V1emVzZWlcIDsKK+eZuuiogOiAhSA8IGhhdHN1Z2Vuc2hhXCA7CivlipvnmKQgPCBjaGlrYXJha29idVwgOwor5Y2Y57im5YiXIDwgdGFuanV1cmV0c3VcIDsKK+WuieS/neadoee0hCA8IGFucG9qb3V5YWt1XCA7Civosqnlo7LlgKTmrrUgPCBoYW5iYWluZWRhblwgOwor5Z+65bqV5qeL6YCgIDwga2l0ZWlrb3V6b3VcIDsKK+W/hemgiOadoeS7tiA8IGhpc3N1am91a2VuXCA7CivkuInkurrntYQgPCBzYW4nJ25pbmd1bWlcIDsKK+m7kuaWkeeXhSA8IGtva3VoYW5ieW91XCA7CivljLroo4HliKTmiYAgPCBrdXNhaWJhbnNob1wgOwor5LqI6KGM5ryU57+SIDwgeW9rb3VlbnNodXVcIDsKK+mBuOaMmemBi+WLlSA8IHNlbmt5b3VuZG91XCA7Civlm73pmpvopo/mqKEgPCBrb2t1c2Fpa2lib1wgOwor5oKq5oKq5oivIDwgd2FydWl0YXp1cmFcIDsKK+mBi+i7ouWFjeiosSA8IHVudGVubWVua3lvXCA7Civnt5rlvaLoq5bnkIYgPCBzZW5rZWlyb25yaVwgOwor5a6f55So5ZOBIDwgaml0c3V5b3VoaW5cIDsKK+Wkp+iFv+mqqCA8IGRhaXRhaWtvdHN1XCA7CivlubTos4Dpg7Xkvr8gPCBuZW5nYXl1dWJpblwgOwor5rip6aKo5pqW5oi/IDwgb25wdXVkYW5ib3VcIDsKK+WGhemDqOani+mAoCA8IG5haWJ1a291em91XCA7CivmsLTonJzmoYMgPCBzdWltaXRzdXRvdVwgOwor5LiN5a6a5Z6L6KmpIDwgZnV0ZWlrZWlzaGlcIDsKK+a8gua1geiIuSA8IGh5b3VyeXV1c2VuXCA7Civpu4Tph5HltIfmi50gPCBvdWdvbnN1dWhhaVwgOwor5LiW6Kmx5aWz5oi/IDwgc2V3YW55b3Vib3VcIDsKK+eKrOWEkuWtpua0viA8IGtlbmp1Z2FrdWhhXCA7CivpoLjli5XohIggPCBrZWlkb3VteWFrdVwgOwor5LiA5ZOB5paZ55CGIDwgaXBwaW5yeW91cmlcIDsKK+S6nOehq+mFuOWhqSA8IGFyeXV1c2FuJydlblwgOwor55Sf5YW15rOVIDwgbmFtYWJ5b3Vob3VcIDsKK+eDj+e+veiJsiA8IGthcmFzdWJhaXJvXCA7CivlvJ/lvJ/lrZAgPCBvdG91dG9kZXNoaVwgOwor5YqH5paH5a2mIDwgZ2VraWJ1bmdha3VcIDsKK+WKoOiWrOmjryA8IGtheWFrdW1lc2hpXCA7CivljJfljYrnkIMgPCBraXRhaGFua3l1dVwgOwor6ZuG5Lit57eaIDwgc2h1dWNodXVzZW5cIDsKK+acieWjsOWtkOmfsyA8IHl1dXNlaXNoaWluXCA7Civlvpfmpa3lo6sgPCB0b2t1Z3lvdXNoaVwgOwor55qG5YW15Yi25bqmIDwga2FpaGVpc2VpZG9cIDsKK+WJjemAsuinkiA8IHplbnNoaW5rYWt1XCA7CivmnKrntYzpqJPogIUgPCBtaWtlaWtlbnNoYVwgOwor6aSK5q6W5rGgIDwgeW91c2hva3VjaGlcIDsKK+WXnOiZkOaApyA8IHNoaWd5YWt1c2VpXCA7CivlsIrnmofnjovmlJjlpLcgPCBzb24nJ25vdWpvdWlcIDsKK+S4iuaEj+S4i+mBlCA8IGpvdWlrYXRhdHN1XCA7Civou4rplpPot53pm6IgPCBzaGFrYW5reW9yaVwgOwor5rC35rKz5pmC5LujIDwgaHlvdWdhamlkYWlcIDsKK+S4ieS6uuensCA8IHNhbicnbmluc2hvdVwgOwor5oOF5aCx55CG6KuWIDwgam91aG91cmlyb25cIDsKK+W+oeWkmuW/meS4rSA8IGdvdGFib3VjaHV1XCA7CivkuK3ntJrlk4EgPCBjaHV1a3l1dWhpblwgOwor5ryC5rWB6ICFIDwgaHlvdXJ5dXVzaGFcIDsKK+aEm+afk+aYjueOiyA8IGFpemVubXlvdW91XCA7Civoqpjmg5HniakgPCB5dXV3YWt1bW9ub1wgOwor6aCt6JOL6aqoIDwgdG91Z2Fpa290c3VcIDsKK+eZuuaYjuWTgSA8IGhhdHN1bWVpaGluXCA7CivlubPpnaLkuqTlt64gPCBoZWltZW5rb3VzYVwgOwor5aSx5qC86ICFIDwgc2hpa2tha3VzaGFcIDsKK+aIkOe4vuihqCA8IHNlaXNla2loeW91XCA7CivntYzpqJPkuLvnvqkgPCBrZWlrZW5zaHVnaVwgOwor5byB6K235aOr5LyaIDwgYmVuZ29zaGlrYWlcIDsKK+azqOaWh+WFiCA8IGNodXVtb25zYWtpXCA7CivntJTmg4Xlj6/mhpAgPCBqdW5qb3VrYXJlblwgOwor6LyJ6LKo5ZCD5rC0IDwgc2Fpa2FraXNzdWlcIDsKK+aXouaxuuWbmiA8IGtpa2V0c3VzaHV1XCA7CivljYrmv4Hpn7PnrKYgPCBoYW5kYWt1b25mdVwgOwor6Zao56eA55S75a62IDwga2Vpc2h1dWdha2FcIDsKK+aRguWLleirliA8IHNldHN1ZG91cm9uXCA7CivkvI/mtYHmsLQgPCBmdWt1cnl1dXN1aVwgOwor54us6KOB55qEIDwgZG9rdXNhaXRla2lcIDsKK+mrmOiqv+WtkCA8IHRha2FjaG91c2hpXCA7Civnq4vohJrlnLAgPCByaWtreWFrdWNoaVwgOwor5LiJ5Y2K6KaP566hIDwgc2FuaGFua2lrYW5cIDsKK+WwgeW7uuaZguS7oyA8IGhvdWtlbmppZGFpXCA7Civotorlhqzos4fph5EgPCBldHRvdXNoaWtpblwgOwor5YaN5qeL56+JIDwgc2Fpa291Y2hpa3VcIDsKK+aJgOW4r+mBk+WFtyA8IHNob3RhaWRvdWd1XCA7CivlgrLlsrjnhKHnpLwgPCBnb3VnYW5idXJlaVwgOwor56S+5Lya5L+d6Zm6IDwgc2hha2FpaG9rZW5cIDsKK+ark+Wkqum8kyA8IHlhZ3VyYWRhaWtvXCA7CivmraLooYDliaQgPCBzaGlrZXRzdXphaVwgOwor6LyD5YSq5L2N6KuWIDwga2FrdXl1dWlyb25cIDsKK+S4luirluiqv+afuyA8IHlvcm9uY2hvdXNhXCA7CivlhqzmnJ/kvJHmmocgPCB0b3VraWt5dXVrYVwgOwor5Lih5pa55YWxIDwgcnlvdWhvdXRvbW9cIDsKK+S4iumDqOani+mAoCA8IGpvdWJ1a291em91XCA7Civmnb7okYnmnZYgPCBtYXRzdWJhZHp1ZVwgOwor6LGh5b2i5paH5a2XIDwgc2hvdWtlaW1vamlcIDsKK+WKm+awtCA8IGNoaWthcmFtaXp1XCA7CivmspbnqY3ntbEgPCBjaHV1c2VraXRvdVwgOwor5LuV5LqL566xIDwgc2hpZ290b2Jha29cIDsKK+awt+mGi+mFuCA8IGh5b3VzYWt1c2FuXCA7CivovrLmnKzkuLvnvqkgPCBub3Vob25zaHVnaVwgOwor5pu457GN5ZWGIDwgc2hvc2VraXNob3VcIDsKK+S4gOWIh+ihhueUnyA8IGlzc2Fpc2h1am91XCA7Civml6fmhYvkvp3nhLYgPCBreXV1dGFpaXplblwgOwor5pW055CG55Wq5Y+3IDwgc2VpcmliYW5nb3VcIDsKK+S7rue2tOacrCA8IGthcml0b2ppaG9uXCA7Civnmbrpm7vmiYAgPCBoYXRzdWRlbnNob1wgOwor5b2T5bqn6LOH55SjIDwgdG91emFzaGlzYW5cIDsKK+WumOiDveeahCA8IGthbicnbm91dGVraVwgOwor5q6L5ZOB5pW055CGIDwgemFucGluc2VpcmlcIDsKK+acq+aioueahCA8IG1hc3Nob3V0ZWtpXCA7CivkuK3plpPlm70gPCBjaHV1a2Fua29rdVwgOwor5a6H5a6Z6YCf5bqmIDwgdWNodXVzb2t1ZG9cIDsKK+aAnee0oueahCA8IHNoaXNha3V0ZWtpXCA7CivljZflj6MgPCBtaW5hbWlndWNoaVwgOwor5Yqg5rC05YiG6KejIDwga2FzdWlidW5rYWlcIDsKK+WHuui6q+agoSA8IHNodXNzaGlua291XCA7CivngbDpnZLoibIgPCBoYWlzZWlzaG9rdVwgOwor6Iiq5rW36KGTIDwga291a2FpanV0c3VcIDsKK+Wwj+adseS6rCA8IHNob3V0b3VreW91XCA7CivlrqPkvJ3kvqHlgKQgPCBzZW5kZW5rYWNoaVwgOwor5bm05a2j5aWJ5YWsIDwgbmVua2lib3Vrb3VcIDsKK+WNg+S6uuWKmyA8IHNlbicnbmlucmlraVwgOwor5Lq65bel6IqdIDwgamlua291c2hpYmFcIDsKK+i7vemHj+e0miA8IGtlaXJ5b3VreXV1XCA7Civlipvmpa0gPCBjaGlrYXJhd2F6YVwgOwor6LKo5bmj57WM5riIIDwga2FoZWlrZWl6YWlcIDsKK+eEoeacn+aHsuW9uSA8IG11a2ljaG91ZWtpXCA7Civmi5jmnZ/lnKcgPCBrb3Vzb2t1YXRzdVwgOwor5oim6ZeY5YqbIDwgc2VudG91cnlva3VcIDsKK+W4guWgtOWMuuWIhiA8IHNoaWpvdWt1YnVuXCA7CivnkIPpnaLpj6EgPCBreXV1bWVua3lvdVwgOwor5Yid5pyf6Kit5a6aIDwgc2hva2lzZXR0ZWlcIDsKK+S6uumAoOe5iue2rSA8IGppbnpvdXNlbicnaVwgOwor5pmu6YCa6aCQ6YeRIDwgZnV0c3V1eW9raW5cIDsKK+S9juWIqeizh+mHkSA8IHRlaXJpc2hpa2luXCA7CivkurrlvaLliocgPCBuaW5neW91Z2VraVwgOwor54Sh6aqo6ICFIDwgYnVrb3RzdW1vbm9cIDsKK+ecn+ePoOe0sOW3pSA8IHNoaW5qdXphaWt1XCA7CivkuLvnn6XkuLvnvqkgPCBzaHVjaGlzaHVnaVwgOwor6YCG552rIDwgc2FrYW1hdHN1Z2VcIDsKK+eUuuWlieihjCA8IG1hY2hpYnVneW91XCA7CivnqbroqLzmlocgPCBrYXJhc2hvdW1vblwgOwor5LqM6aCF5L+C5pWwIDwgbmlrb3VrZWlzdXVcIDsKK+e0oOaAp+ani+mAoCA8IHNvc2Vpa291em91XCA7CivmhJvlm73kuLvnvqkgPCBhaWtva3VzaHVnaVwgOwor5oim6ZeY5pSv5o+0IDwgc2VudG91c2hpZW5cIDsKK+S6uuWQjei+nuabuCA8IGppbm1laWppc2hvXCA7CivliY3ovKrpp4bli5UgPCB6ZW5yaW5rdWRvdVwgOwor5L6h5qC85pON5L2cIDwga2FrYWt1c291c2FcIDsKK+aUvueJqee3miA8IGhvdWJ1dHN1c2VuXCA7CivlvaLogIzkuIvlraYgPCBrZWlqaWthZ2FrdVwgOwor5LiA5pyf5LiA5LyaIDwgaWNoaWdvaWNoaWVcIDsKK+iqv+WtkOiAhSA8IGNob3VzaGltb25vXCA7Civnj77lrp/mhJ8gPCBnZW5qaXRzdWthblwgOwor6bC556+AIDwga2F0c3VvYnVzaGlcIDsKK+epjeWIhuWtpiA8IHNla2lidW5nYWt1XCA7CivlnJ/mnKjlt6XkuosgPCBkb2Jva3Vrb3VqaVwgOwor5aWz5a2Q6auY55SfIDwgam9zaGlrb3VzZWlcIDsKK+ePvuWun+aApyA8IGdlbmppdHN1c2VpXCA7Civpq5jpm7vlnKcgPCBrb3VkZW4nJ2F0c3VcIDsKK+WtpuWVj+eahCA8IGdha3Vtb250ZWtpXCA7CivnjovpgZPmpb3lnJ8gPCBvdWRvdXJha3Vkb1wgOwor5oKq5oim6Ium6ZeYIDwgYWt1c2Vua3V0b3VcIDsKK+elnue1jOWkluenkSA8IHNoaW5rZWlnZWthXCA7CivlrabnqbbnmoQgPCBnYWtreXV1dGVraVwgOwor6Z2e6ZaL56S65ZCI5oSPIDwgaGlrYWlqaWdvdWlcIDsKK+WPjuepq+elrSA8IHNodXVrYWt1c2FpXCA7CivniannkIblraYgPCBidXRzdXJpZ2FrdVwgOwor5LiN55yg5LiN5LyRIDwgZnVtaW5mdWt5dXVcIDsKK+WeguebtOe3miA8IHN1aWNob2t1c2VuXCA7CivlkI3oqonmlZnmjoggPCBtZWl5b2t5b3VqdVwgOwor5Zuz5pu46aSo5ZOhIDwgdG9zaG9rYW4nJ2luXCA7CivmrbTlj7LlraYgPCByZWtpc2hpZ2FrdVwgOwor5r2k5ruR5YmkIDwganVua2F0c3V6YWlcIDsKK+e1hOe5lOWtpiA8IHNvc2hpa2lnYWt1XCA7Civpq5jmrYzmlL7lkJ8gPCBrb3VrYWhvdWdpblwgOwor55m66Zu75a2QIDwgaGF0c3VkZW5zaGlcIDsKK+S4ieWwiuS7jyA8IHNhbnpvbmJ1dHN1XCA7CivlvJXlj5bkurogPCBoaWtpdG9yaW5pblwgOwor5qeL5oiQ5Y2Y5L2NIDwga291c2VpdGFuJydpXCA7CivlpJbkurroqJjogIUgPCBnYWlqaW5raXNoYVwgOwor5ryC5rOK6ICFIDwgaHlvdWhha3VzaGFcIDsKK+S+i+WkluWHpueQhiA8IHJlaWdhaXNob3JpXCA7CivlpKvlqabojLbnopcgPCBtZW90b2RqYXdhblwgOwor55yf55Sw6JmrIDwgc2FuYWRhbXVzaGlcIDsKK+mXh+WVhuS6uiA8IHlhbWlzaG91bmluXCA7CivlhaXmvIHmlpkgPCBueXV1Z3lvcnlvdVwgOwor5YWo6Z2i6Kyb5ZKMIDwgemVubWVua291d2FcIDsKK+S4g+WuneeEvCA8IHNoaXBwb3V5YWtpXCA7Civpi7zpiYTmnb8gPCBrb3V0ZXRzdWJhblwgOwor5YSq6Imv5qCqIDwgeXV1cnlvdWthYnVcIDsKK+acrOagvOeahCA8IGhvbmtha3V0ZWtpXCA7CivlvqnorpDmiKYgPCBmdWt1c2h1dXNlblwgOwor5pq05Yqb5ZujIDwgYm91cnlva3VkYW5cIDsKK+WIneiouuaWmSA8IHNob3NoaW5yeW91XCA7Civnvqnli5nmlZnogrIgPCBnaW11a3lvdWlrdVwgOwor5Y+j6YGU6ICFIDwga3VjaGlkYXNzaGFcIDsKK+iAkOeGseaApyA8IHRhaW5ldHN1c2VpXCA7CivlopfooYDliaQgPCB6b3VrZXRzdXphaVwgOwor5oKy6Kaz6KuW6ICFIDwgaGlrYW5yb25zaGFcIDsKK+WAi+S6uuaDheWgsSA8IGtvamluam91aG91XCA7CivljJfljJfmnbEgPCBob2t1aG9rdXRvdVwgOwor55m66KiA5qipIDwgaGF0c3VnZW5rZW5cIDsKK+eUuuauteeVneatqSA8IGNob3V0YW5zZWJ1XCA7CivmgKXmiJDplbcgPCBreXV1c2VpY2hvdVwgOwor5Luj55CG5aSn5L2/IDwgZGFpcml0YWlzaGlcIDsKK+ani+mAoOS4u+e+qSA8IGtvdXpvdXNodWdpXCA7Civlh7ros4fpoY0gPCBzaHVzc2hpZ2FrdVwgOwor5YaF5YiG5rOMIDwgbmFpYnVucGl0c3VcIDsKK+WFnOiZqyA8IGthYnV0b211c2hpXCA7CivlhoXnt5rpm7voqbEgPCBuYWlzZW5kZW53YVwgOwor5YWs56S65L6h5qC8IDwga291amlrYWtha3VcIDsKK+a2suS9k+mFuOe0oCA8IGVraXRhaXNhbnNvXCA7Civlm5vml6znr4AgPCBzaGlqdW5zZXRzdVwgOwor5rKD5bqm5LiB5bm+IDwgeW91ZG9jaGlua2lcIDsKK+S5neWumOmzpSA8IGt5dXVrYW5jaG91XCA7CivliJHkuovoqLToqJ8gPCBrZWlqaXNvc2hvdVwgOwor6ICB5Lq65YqbIDwgcm91amlucnlva3VcIDsKK+eovOWDjeS6uuWPoyA8IGthZG91amlua291XCA7Civou73mqZ/plqLpioMgPCBrZWlraWthbmp1dVwgOwor5qmf5a+G5L+d6K23IDwga2ltaXRzdWhvZ29cIDsKK+W7uuevieWjqyA8IGtlbmNoaWt1c2hpXCA7CivlpKrmpbXmi7MgPCB0YWlreW9rdWtlblwgOwor55Sf55Wq57WEIDwgbmFtYWJhbmd1bWlcIDsKK+mkiuauluWgtCA8IHlvdXNob2t1am91XCA7CivkuojlgpnkuqTmuIkgPCB5b2Jpa291c2hvdVwgOwor6Jma6ISx5oSfIDwga3lvZGF0c3VrYW5cIDsKK+ixoeeJmeizqiA8IHpvdWdlc2hpdHN1XCA7CivpmobpvLvooZMgPCByeXV1YmlqdXRzdVwgOwor6KGo6Z2i56mNIDwgaHlvdW1lbnNla2lcIDsKK+mAj+imluWbs+azlSA8IHRvdXNoaXp1aG91XCA7Civnt7Tnv5LoqablkIggPCByZW5zaHV1amlhaVwgOwor5Yqq5Yqb6LOeIDwgZG9yeW9rdXNob3VcIDsKK+WNgeS6uuS4piA8IGp1dW5pbicnbmFtaVwgOwor6Jas6ZG16aCtIDwgeWFrYW4nJ2F0YW1hXCA7Civlj6/oppblhYnnt5ogPCBrYXNoaWtvdXNlblwgOwor562G6KiY6Kmm6aiTIDwgaGlra2lzaGlrZW5cIDsKK+WFrOWumuebuOWgtCA8IGtvdXRlaXNvdWJhXCA7CivkvqHmoLzopo/liLYgPCBrYWtha3VraXNlaVwgOwor5Yqg6YeN5bmz5Z2HIDwga2FqdXVoZWlraW5cIDsKK+atpuijheitpuWumCA8IGJ1c291a2Vpa2FuXCA7CivllYblo7LnrYsgPCBzaG91YmFpc3VqaVwgOwor5rC05a2Q5L6b6aSKIDwgbWl6dWdva3V5b3VcIDsKK+a4r+a5vuWxgCA8IGtvdXdhbmt5b2t1XCA7CivljYPlpInkuIfljJYgPCBzZW5wZW5iYW5rYVwgOwor5rC05ZWG5aOyIDwgbWl6dXNob3ViYWlcIDsKK+mJhOmBk+S+vyA8IHRldHN1ZG91YmluXCA7Civmn7vlrprkvqHmoLwgPCBzYXRlaWtha2FrdVwgOwor5rCR5peP5a2mIDwgbWluem9rdWdha3VcIDsKK+attOWPsuWKhyA8IHJla2lzaGlnZWtpXCA7Civmup3lvaLpi7wgPCBtaXpvZ2F0YWtvdVwgOwor5piO5pmw5aSiIDwgbWVpc2VraXl1bWVcIDsKK+W9ouS9kyA8IG5hcmlrYXRhY2hpXCA7CivkuIvlsaTnpL7kvJogPCBrYXNvdXNoYWthaVwgOwor5pat57aa55qEIDwgZGFuem9rdXRla2lcIDsKK+W8j+mDqOecgSA8IHNoaWtpYnVzaG91XCA7CivmpbXpgZPogIUgPCBnb2t1ZG91bW9ub1wgOwor6ZaL5qCh5byPIDwga2Fpa291c2hpa2lcIDsKK+awkee0hOirliA8IG1pbicneWFrdXJvblwgOwor6Ziy5b6h546HIDwgYm91Z3lvcml0c3VcIDsKK+ihqOmdoueahCA8IGh5b3VtZW50ZWtpXCA7CivoqIjmmYLkv4IgPCBrZWlqaWdha2FyaVwgOwor5b6M55m65ZOBIDwga291aGF0c3VoaW5cIDsKK+iHqueEtuS4u+e+qSA8IHNoaXplbnNodWdpXCA7CivolqnmkannhLwgPCBzYXRzdW1heWFraVwgOwor5bqK5p+xIDwgdG9rb2Jhc2hpcmFcIDsKK+iIiOWRs+acrOS9jSA8IGt5b3VtaWhvbicnaVwgOwor5Ye66Lqr5ZywIDwgc2h1c3NoaW5jaGlcIDsKK+eEoeS9k+izh+eUoyA8IG11dGFpc2hpc2FuXCA7CivorbfouqvooZMgPCBnb3NoaW5qdXRzdVwgOwor57WM5riI5bCB6Y6WIDwga2VpemFpZnV1c2FcIDsKK+ertuS6ieebuOaJiyA8IGt5b3Vzb3VhaXRlXCA7Civlh7rmsqEgPCBzaHV0c3Vib3RzdVwgOwor5LiO5aSq6KmxIDwgeW90YWJhbmFzaGlcIDsKK+W3puerryA8IGhpZGFyaWhhc2hpXCA7Civlho3lhaXlraYgPCBzYWlueXV1Z2FrdVwgOwor5LqU6Lyq5aSn5LyaIDwgZ29yaW50YWlrYWlcIDsKK+WNlOe0hOabuCA8IGt5b3V5YWt1c2hvXCA7Civml6XmnKzkuInmma8gPCBuaWhvbnNhbmtlaVwgOwor5LiJ576954OPIDwgc2FuYmFnYXJhc3VcIDsKK+ioquWVj+WuoiA8IGhvdW1vbmt5YWt1XCA7CivmsrnmgKfloZfmlpkgPCB5dXNlaXRvcnlvdVwgOwor5rK76aiT6JasIDwgY2hpa2VuJyd5YWt1XCA7CivmgKflloToqqwgPCBzZWl6ZW5zZXRzdVwgOwor5LuV5LqL5p+EIDwgc2hpZ290b2dhcmFcIDsKK+Wkp+aguei2syA8IGRhaWtvbicnYXNoaVwgOwor5pS56KiC5aKX6KOcIDwga2FpdGVpem91aG9cIDsKK+S4gOiIrOamguW/tSA8IGlwcGFuZ2FpbmVuXCA7CivlhYnngKzpvo0gPCBtaXRzdXNlcnl1dVwgOwor54u86JeJ6ICFIDwgcm91emVraW1vbm9cIDsKK+W/g+aLjeaVsCA8IHNoaW5wYWt1c3V1XCA7CivlsI/kuIDmmYLplpMgPCBrb2ljaGlqaWthblwgOwor5LiJ6ISa5qSF5a2QIDwgc2Fua3lha3Vpc3VcIDsKK+WLleeJqeiqjCA8IGRvdWJ1dHN1c2hpXCA7Civov5TljbTlgKQgPCBoZW5reWFrdWNoaVwgOwor55qu6Iaa5oSf6KaaIDwgaGlmdWthbmtha3VcIDsKK+eEoemnhOipsSA8IG11ZGFiYW5hc2hpXCA7CivliIblrZDlvI8gPCBidW5zaGlzaGlraVwgOwor6ZmN6LuK5Y+jIDwga291c2hhZ3VjaGlcIDsKK+aknOWHuuWZqCA8IGtlbnNodXRzdWtpXCA7CivmqKnliKnooYzkvb8gPCBrZW5yaWtvdXNoaVwgOwor6JC96JGJ5p2+IDwgcmFrdXlvdXNob3VcIDsKK+alteWJjee3miA8IGt5b2t1emVuc2VuXCA7CivotoXotorngrkgPCBjaG91ZXRzdXRlblwgOwor6buS54yp44CFIDwga3Vyb3Nob3Vqb3VcIDsKK+a8ouWtl+WkieaPmyA8IGthbmppaGVua2FuXCA7Civlm73mhbbnr4AgPCBrb2trZWlzZXRzdVwgOwor54Sh5L2T6LKh55SjIDwgbXV0YWl6YWlzYW5cIDsKK+W3tOeTpiA8IHRvbW9lZ2F3YXJhXCA7CivlpKnnlKPniakgPCB0ZW5zYW5idXRzdVwgOwor57Sz5aOr6YyyIDwgc2hpbnNoaXJva3VcIDsKK+WGjeWFpeWbvSA8IHNhaW55dXVrb2t1XCA7CivlhajkvZPkvJrorbAgPCB6ZW50YWlrYWlnaVwgOwor5LqM6YeN5oq15b2TIDwgbmlqdXV0ZWl0b3VcIDsKK+WIh+aXpSA8IHNoaW1la2lyaWJpXCA7CivmqZ/morDmlofmmI4gPCBraWthaWJ1bm1laVwgOwor57Ch5r2U5oCnIDwga2Fua2V0c3VzZWlcIDsKK+Wkqea0peS5meWlsyA8IGFtYXRzdW90b21lXCA7CivliIfmlq3pnaIgPCBzZXRzdWRhbm1lblwgOwor5byV6L6857eaIDwgaGlraWtvbWlzZW5cIDsKK+WIqeWus+mWouS/giA8IHJpZ2Fpa2Fua2VpXCA7CivlpJrop5LntYzllrYgPCB0YWtha3VrZWllaVwgOwor5aSr5amm5Yil5aeTIDwgZnV1ZnViZXNzZWlcIDsKK+eyl+W/veiAhSA8IHNva290c3Vtb25vXCA7CivplovkvJrlvI8gPCBrYWlrYWlzaGlraVwgOwor5pel5pys6Kqe6KizIDwgbmlob25nb3lha3VcIDsKK+S6pOaPm+apn+iDvSA8IGtvdWthbmtpbm91XCA7CivnlKPljbXloLTmiYAgPCBzYW5yYW5iYXNob1wgOwor5oSf5YK355qEIDwga2Fuc2hvdXRla2lcIDsKK+W4guacieeJqSA8IHNoaXl1dWJ1dHN1XCA7CivotbDooYzot53pm6IgPCBzb3Vrb3VreW9yaVwgOwor54Sh5bC957WE5ZCIIDwgbXVqaW5rdW1pYWlcIDsKK+WGjeeUn+WIqeeUqCA8IHNhaXNlaXJpeW91XCA7CivogZbogbfogIUgPCBzZWlzaG9rdXNoYVwgOwor6Iiq56m65q+N6ImmIDwga291a3V1Ym9rYW5cIDsKK+S4reiho+WaoiA8IG5ha2FnYWt1c2hpXCA7Civni6znq4voqp4gPCBkb2t1cml0c3Vnb1wgOwor5Lq65ZCN6L6e5YW4IDwgamlubWVpaml0ZW5cIDsKK+aYqOmdnuS7iuaYryA8IHNha3VoaWtvbnplXCA7CivogrLlhZDlrqQgPCBpa3VqaXNoaXRzdVwgOwor5paw5Y+k5YW45rS+IDwgc2hpbmtvdGVuaGFcIDsKK+e5geauluWcsCA8IGhhbnNob2t1Y2hpXCA7CivkuIDkurrnp7AgPCBpY2hpbmluc2hvdVwgOwor6ZW35bSO55yMIDwgbmFnYXNha2lrZW5cIDsKK+e1jOWWtuizh+a6kCA8IGtlaWVpc2hpZ2VuXCA7Civlubzlv4MgPCBvc2FuYWdva29yb1wgOwor6KKr5a6z5aaE5oOzIDwgaGlnYWltb3Vzb3VcIDsKK+mbu+WKm+ioiCA8IGRlbnJ5b2t1a2VpXCA7Civoo73msLfnmr8gPCBzZWloeW91emFyYVwgOwor57Sw6I+M5YW15ZmoIDwgc2Fpa2luaGVpa2lcIDsKK+mjveWSjOa6tua2siA8IGhvdXdheW91ZWtpXCA7CivkuIDoiKzkvJroqIggPCBpcHBhbmthaWtlaVwgOwor5rqW5YKZ6LOH6YeRIDwganVuYmlzaGlraW5cIDsKK+S4u+eojuWxgCA8IHNodXplaWt5b2t1XCA7CivmlL/lhZrmlL/msrsgPCBzZWl0b3VzZWlqaVwgOwor5q+N5a2Q5bm06YeRIDwgYm9zaGluZW5raW5cIDsKK+aOpee2muiqniA8IHNldHN1em9rdWdvXCA7Civnibnpm4blj7cgPCB0b2t1c2h1dWdvdVwgOwor6buS6KSQ6ImyIDwga29ra2Fzc2hva3VcIDsKK+e+juWuueaVtOW9oiA8IGJpeW91c2Vpa2VpXCA7CivkuK3lm73kurogPCBjaHV1Z29rdWppblwgOwor6Iqx5621IDwgaGFuYW11c2hpcm9cIDsKK+WIneacn+aKleizhyA8IHNob2tpdG91c2hpXCA7CivmnIDnn63ot53pm6IgPCBzYWl0YW5reW9yaVwgOwor5ZGo6L665qmf5ZmoIDwgc2h1dWhlbmtpa2lcIDsKK+WItumZkOaZgumWkyA8IHNlaWdlbmppa2FuXCA7Civli6TlirTmhI/mrLIgPCBraW5yb3VpeW9rdVwgOwor5b6T5bGe5Zu9IDwganV1em9rdWtva3VcIDsKK+WPo+i/lOetlCA8IGt1Y2hpaGVudG91XCA7CivlgInluqvkvJrnpL4gPCBzb3Vrb2dhaXNoYVwgOwor55S36bClIDwgb3Rva295YW1vbWVcIDsKK+acqumWi+ekvuS8miA8IG1pa2Fpc2hha2FpXCA7CivmuJvoobDnjocgPCBnZW5zdWlyaXRzdVwgOwor5bCO6Zu7546HIDwgZG91ZGVucml0c3VcIDsKK+S4gOS6huewoSA8IGljaGlyeW91a2FuXCA7CivpgY7lpKfoqZXkvqEgPCBrYWRhaWh5b3VrYVwgOwor6Iqx56WtIDwgaGFuYW1hdHN1cmlcIDsKK+WGjei8uOWHuiA8IHNhaXl1c2h1dHN1XCA7CivpnZLpioXoibIgPCBzZWlkb3VzaG9rdVwgOwor56C05buJ5oGl572qIDwgaGFyZW5jaGl6YWlcIDsKK+maiuWVhuWuvyA8IHRhaXNob3V5YWRvXCA7CivmmYLpmZDoo4Xnva4gPCBqaWdlbnNvdWNoaVwgOwor5pmv5rCX5aSJ5YuVIDwga2Vpa2loZW5kb3VcIDsKK+W8j+asoeesrCA8IHNoaWtpc2hpZGFpXCA7CivkuIDmrKHoqJjmhrYgPCBpY2hpamlraW9rdVwgOwor55Sf55Sj54mpIDwgc2Vpc2FuYnV0c3VcIDsKK+ihneWLleihjOeCuiA8IHNob3Vkb3Vrb3VpXCA7CivoqLHlrrnnr4Tlm7IgPCBreW95b3VoYW4nJ2lcIDsKK+W5u+immueXhyA8IGdlbmtha3VzaG91XCA7CivnlJ/nlKPnrqHnkIYgPCBzZWlzYW5rYW5yaVwgOwor5oqV5omL5YqbIDwgdG91c2h1cnlva3VcIDsKK+mWieS8muW8jyA8IGhlaWthaXNoaWtpXCA7CivmspbnqY3lsaQgPCBjaHV1c2VraXNvdVwgOwor5Yy755mC5Lyd6YGTIDwgaXJ5b3VkZW5kb3VcIDsKK+WCrOecoOihkyA8IHNhaW1pbmp1dHN1XCA7CivonZnonaDlgpggPCBrb3Vtb3JpZ2FzYVwgOwor56qB6LKr5bel5LqLIDwgdG9ra2Fua291amlcIDsKK+WQkeaXpeaApyA8IGtvdW5pY2hpc2VpXCA7CivliJ3lp78gPCBoYXRzdXN1Z2F0YVwgOwor5ZC45Y+W57SZIDwgc3VpdG9yaWdhbWlcIDsKK+mBuOiAg+Wfuua6liA8IHNlbmtvdWtpanVuXCA7Civpq5joqbEgPCB0YWthYmFuYXNoaVwgOwor6auY5Zyn55qEIDwga291YXRzdXRla2lcIDsKK+acieWKm+iAhSA8IHl1dXJ5b2t1c2hhXCA7CivliKXllY/poYwgPCBiZXRzdW1vbmRhaVwgOwor5Luj5pWw5byPIDwgZGFpc3V1c2hpa2lcIDsKK+WFpea4r+aWmSA8IG55dXVrb3VyeW91XCA7Civohp3poK0gPCBoaXphZ2FzaGlyYVwgOwor54Sh5a6/6ICFIDwgbXVzaHVrdW1vbm9cIDsKK+mDveW4gumKgOihjCA8IHRvc2hpZ2lua291XCA7Civljp/lrZDlipsgPCBnZW5zaGlyeW9rdVwgOwor5oiQ5paH5b6LIDwgc2VpYnVucml0c3VcIDsKK+eUt+S4gOWMuSA8IG90b2tvaXBwaWtpXCA7CivloZ7moJPnl4cgPCBzb2t1c2Vuc2hvdVwgOwor5ZWG5aOy5p+EIDwgc2hvdWJhaWdhcmFcIDsKK+iFuei2s+mhniA8IGZ1a3Vzb2t1cnVpXCA7CivmnbHljbDluqYgPCBoaWdhc2hpaW5kb1wgOwor6LOH5pys5YqbIDwgc2hpaG9ucnlva3VcIDsKK+W3u+afsSA8IG1ha2liYXNoaXJhXCA7CivnpYflnJLnpa0gPCBnaW9ubWF0c3VyaVwgOwor5LiK5Lqs5LitIDwgam91a3lvdWNodXVcIDsKK+WCrOecoOiWrCA8IHNhaW1pbicneWFrdVwgOwor5a6j5Lyd5pig55S7IDwgc2VuZGVuJydlaWdhXCA7CivmhYjlloTkuovmpa0gPCBqaXplbmppZ3lvdVwgOwor54++6LGh5a2mIDwgZ2Vuc2hvdWdha3VcIDsKK+eni+a0peWztiA8IGFraXRzdXNoaW1hXCA7CivnvorlsI/lsYsgPCBoaXRzdWppZ295YVwgOwor6KOF6aO+5ZOBIDwgc291c2hva3VoaW5cIDsKK+WNg+aXpeaJiyA8IHNlbicnbmljaGl0ZVwgOwor5Yqg6YCf5bqm6KiIIDwga2Fzb2t1ZG9rZWlcIDsKK+WCsuaFouS4jemBnCA8IGdvdW1hbmZ1c29uXCA7CivliJHli5nkvZzmpa0gPCBrZWltdXNhZ3lvdVwgOwor5Zyw55CD6KaP5qihIDwgY2hpa3l1dWtpYm9cIDsKK+akjeawkeWcsCA8IHNob2t1bWluY2hpXCA7CivpgJTkuK3oqIjmmYIgPCB0b2NodXVrZWlqaVwgOwor5aSW5YiG5rOMIDwgZ2FpYnVucGl0c3VcIDsKK+mao+i/keaJgCA8IHRvbmFyaWtpbmpvXCA7Civlr77poILop5IgPCB0YWljaG91a2FrdVwgOwor6auY5bCE54m556eRIDwga291c2hhdG9ra2FcIDsKK+iCqeeUsumqqCA8IGtlbmtvdWtvdHN1XCA7CivkuInpnaLlha3oh4IgPCBzYW5tZW5yb3BwaVwgOwor5b6u5YiG5pat6Z2iIDwgYmlidW5kYW5tZW5cIDsKK+WIhuWoqeS9nOeUqCA8IGJ1bmJlbnNheW91XCA7CivohbDlvIHlvZMgPCBrb3NoaWJlbnRvdVwgOwor5Y+j5ben6ICFIDwga3VjaGlnb3VzaGFcIDsKK+S/neWBpeS9k+iCsiA8IGhva2VudGFpaWt1XCA7CivmmrTotbDpgYvou6IgPCBib3Vzb3V1bnRlblwgOwor5bqV5YqbIDwgc29rb2RqaWthcmFcIDsKK+S4jeS4luWHuiA8IGZ1c2Vpc2h1dHN1XCA7Civoq67llY/mqZ/plqIgPCBzaGltb25raWthblwgOwor5YWI5pel5LuYIDwgc2FraWhpZHp1a2VcIDsKK+mAj+imluWKmyA8IHRvdXNoaXJ5b2t1XCA7CivlibXoqK3ogIUgPCBzb3VzZXRzdXNoYVwgOwor55Sw6IiO6Iqd5bGFIDwgaW5ha2FzaGliYWlcIDsKK+mHkemtmumJoiA8IGtpbmd5b2JhY2hpXCA7CivnmYzpgbrkvJ3lrZAgPCBnYW4nJ2lkZW5zaGlcIDsKK+eZvumsvOWknOihjCA8IGh5YWtraXlha291XCA7CivnhKHmrbvmuoDloYEgPCBtdXNoaW1hbnJ1aVwgOwor5LqM55Wq5oq15b2TIDwgbmliYW50ZWl0b3VcIDsKK+ihkuWtpueahCA8IGdlbmdha3V0ZWtpXCA7Civnt4/li5npg6jplbcgPCBzb3VtdWJ1Y2hvdVwgOwor6YeR55+z5a2mIDwga2luc2VraWdha3VcIDsKK+mHjuiPnOeVkSA8IHlhc2FpYmF0YWtlXCA7Civoh6rnlLHosr/mmJMgPCBqaXl1dWJvdWVraVwgOwor5bmz5ZKM5p2h6aCFIDwgaGVpd2Fqb3Vrb3VcIDsKK+ebtOaEn+eahCA8IGNob2trYW50ZWtpXCA7Civli5Xniannm7ggPCBkb3VidXRzdXNvdVwgOwor5rCX5YiG6Lui5o+bIDwga2lidW50ZW5rYW5cIDsKK+izg+S7leS6iyA8IGNoaW5zaGlnb3RvXCA7CivnibnoqLHkuLsgPCB0b2treW9udXNoaVwgOwor5YSS5pWZ5Li7576pIDwganVreW91c2h1Z2lcIDsKK+Wliee0jeeJqSA8IGhvdW5vdWJ1dHN1XCA7CivlpbPmrYzoiJ7kvI4gPCBvbicnbmFrYWJ1a2lcIDsKK+S/nemHiOS4rSA8IGhvc2hha3VjaHV1XCA7Civpo5vooYzmqZ/pm7IgPCBoaWtvdWtpZ3Vtb1wgOwor6Z2S6JeN6ImyIDwgc2VpcmFuc2hva3VcIDsKK+iEhei/q+iAhSA8IGt5b3VoYWt1c2hhXCA7Civli5XniannlYwgPCBkb3VidXRzdWthaVwgOwor6Lev6Z2i6Zu76LuKIDwgcm9tZW5kZW5zaGFcIDsKK+mAmuihjOS4iiA8IHRzdXVrb3Vkb21lXCA7CivlvLflparogIUgPCBnb3VkYXRzdXNoYVwgOwor6ISF6L+r572qIDwga3lvdWhha3V6YWlcIDsKK+WNmOeLrOihjOeCuiA8IHRhbmRva3Vrb3VpXCA7Civlm6PntZDmqKkgPCBkYW5rZXRzdWtlblwgOwor6Kqg5b+D6Kqg5oSPIDwgc2Vpc2hpbnNlaWlcIDsKK+e0hOWNiuW5tCA8IHlha3VoYW4nJ25lblwgOwor5pel5pys5paZ55CGIDwgbmlob25yeW91cmlcIDsKK+aKleelqOeusSA8IHRvdWh5b3ViYWtvXCA7CivntKDkurroirggPCBzaGlyb3V0b2dlaVwgOwor56mN5qW15oCnIDwgc2Vra3lva3VzZWlcIDsKK+alteW6p+aomSA8IGt5b2t1emFoeW91XCA7Civlr53mraPmnIggPCBuZXNob3VnYXRzdVwgOwor5rWa5rir5qmfIDwgc2h1bnNldHN1a2lcIDsKK+e/vOmdouepjSA8IHlva3VtZW5zZWtpXCA7CivnlbPooaggPCB0YXRhbWlvbW90ZVwgOwor57eP55uu6YyyIDwgc291bW9rdXJva3VcIDsKK+aguOWPjeW/nCA8IGtha3VoYW4nJ25vdVwgOwor5Yi26YW46JasIDwgc2Vpc2FuJyd5YWt1XCA7CivotoXkurrnmoQgPCBjaG91amludGVraVwgOwor56ys5LiA5rWBIDwgZGFpaWNoaXJ5dXVcIDsKK+aVheS6i+adpeattCA8IGtvamlyYWlyZWtpXCA7CivlhoXovKrllqflmKkgPCB1Y2hpd2FnZW5rYVwgOwor6Laz5ouN5a2QIDwgYXNoaWJ5b3VzaGlcIDsKK+W8seadkOaWmSA8IHlvd2F6YWlyeW91XCA7CivmjqXop6bnt5ogPCBzZXNzaG9rdXNlblwgOwor5Lqc56Gd6YW45aGpIDwgYXNob3VzYW4nJ2VuXCA7CivkuIDop5LnjaPluqcgPCBpa2tha3VqdXV6YVwgOwor5Ye65YqbIDwgc2h1dHN1cnlva3VcIDsKK+W9ueWKm+WjqyA8IHlha3VyaWtpc2hpXCA7CivntbHovYTogIUgPCB0b3VrYXRzdXNoYVwgOwor5Y+N5L2T5Yi25rS+IDwgaGFudGFpc2VpaGFcIDsKK+WMuuWKg+aVtOeQhiA8IGt1a2FrdXNlaXJpXCA7Civku5XkuovkuK0gPCBzaGlnb3RvY2h1dVwgOwor5Zyf55m+5aeTIDwgZG9ieWFrdXNob3VcIDsKK+aWh+WtpuizniA8IGJ1bmdha3VzaG91XCA7Civmi5voq4vlm70gPCBzaG91c2Vpa29rdVwgOwor57eP5Y+O5YWlIDwgc291c2h1dW55dXVcIDsKK+a4rOmHj+iIuSA8IHNva3VyeW91c2VuXCA7CivmlL7ku7vkuLvnvqkgPCBob3VuaW5zaHVnaVwgOwor6YG65peP57Wm5LuYIDwgaXpva3VreXV1ZnVcIDsKK+WkieS9jeWItuW+oSA8IGhlbicnaXNlaWd5b1wgOwor5YCf5Zyw5qipIDwgc2hha3VjaGlrZW5cIDsKK+aWh+mDqOWkp+iHoyA8IG1vbmJ1ZGFpamluXCA7CivlpbPmqKnoq5bogIUgPCBqb2tlbnJvbnNoYVwgOwor5LiL5aOr5a6Y5YW1IDwga2FzaGlrYW5oZWlcIDsKK+ayluepjeS4liA8IGNodXVzZWtpc2VpXCA7CivkuK3npoXlr7rmuZYgPCBjaHV1emVuamlrb1wgOwor5Y+j6L+w5pu4IDwga291anV0c3VzaG9cIDsKK+auieiBt+iAhSA8IGp1bnNob2t1c2hhXCA7Civoo73lk4Hljp/kvqEgPCBzZWloaW5nZW5rYVwgOwor5Lq65rCR5Li7576pIDwgamlubWluc2h1Z2lcIDsKK+WLieW8t+mDqOWxiyA8IGJlbmt5b3ViZXlhXCA7Civnl4XomavlrrMgPCBieW91Y2h1dWdhaVwgOwor56We5a6u5aSW6IuRIDwgamluZ3V1Z2FpZW5cIDsKK+ahnOmkhSA8IHNha3VyYW1vY2hpXCA7CivmoZzpo68gPCBzYWt1cmFtZXNoaVwgOwor5oqA6KGT55qEIDwgZ2lqdXRzdXRla2lcIDsKK+Wwj+iqrOWutiA8IHNob3VzZXRzdWthXCA7CivnibnntITlupcgPCB0b2t1eWFrdXRlblwgOwor5Lqk6YCa6YePIDwga291dHN1dXJ5b3VcIDsKK+WFqOiIrOaUr+aPtCA8IHplbnBhbnNoaWVuXCA7CivlsJHlo67mnInngrogPCBzaG91c291eXV1aVwgOwor57WM5Y+j5oqV5LiOIDwga2Vpa291dG91eW9cIDsKK+mBk+ahiOWGhSA8IG1pY2hpYW4nJ25haVwgOwor5o+b5rCX6KOF572uIDwga2Fua2lzb3VjaGlcIDsKK+WFseWSjOWItuW6piA8IGt5b3V3YXNlaWRvXCA7CivpgZPmma7oq4sgPCBtaWNoaWJ1c2hpblwgOwor5aW96Imy6ICFIDwga291c2hva3VzaGFcIDsKK+S6jOiqsuWLieW8tyA8IG5pa2FiZW5reW91XCA7Civmtojoh63liaQgPCBzaG91c2h1dXphaVwgOwor5LqI6Ziy5o6l56iuIDwgeW9ib3VzZXNzaHVcIDsKK+eLrOWWhOeahCA8IGRva3V6ZW50ZWtpXCA7CivnlbDlm73mg4Xnt5IgPCBpa29rdWpvdWNob1wgOwor6Kej5YOP5YqbIDwga2Fpem91cnlva3VcIDsKK+mBi+i7ouWBnOatoiA8IHVudGVudGVpc2hpXCA7Civmgqrlj6Ppm5HoqIAgPCBha2tvdXpvdWdvblwgOwor6LuN5rOV5Lya6K2wIDwgZ3VucG91a2FpZ2lcIDsKK+ebtOWHuiA8IGNob2t1c2h1dHN1XCA7CivmtbjpgI/lnKcgPCBzaGludG91YXRzdVwgOwor54ax6KGA5ryiIDwgbmVra2V0c3VrYW5cIDsKK+WkqeWcsOeEoeeUqCA8IHRlbmNoaW11eW91XCA7CivnlbPogbcgPCB0YXRhbWlzaG9rdVwgOwor55Ww5bi45oCn5qyyIDwgaWpvdXNlaXlva3VcIDsKK+Wyqeefs+WtpiA8IGdhbnNla2lnYWt1XCA7CivonJzmn5HnlZEgPCBtaWthbmJhdGFrZVwgOwor54OP5aSp54uXIDwga2FyYXN1dGVuZ3VcIDsKK+e0s+Wjq+eahCA8IHNoaW5zaGl0ZWtpXCA7Civkurrlt6Xlj5fog44gPCBqaW5rb3VqdXRhaVwgOwor5pel5pys5paH5rOVIDwgbmlob25idW5wb3VcIDsKK+eqkuaBr+atuyA8IGNoaXNzb2t1c2hpXCA7CivkuIrkuIvmsLTpgZMgPCBqb3VnZXN1aWRvdVwgOwor5LiJ5aSn56+AIDwgc2FuZGFpc2V0c3VcIDsKK+a0u+aWreWxpCA8IGthdHN1ZGFuc291XCA7CivpioDooYzlj6PluqcgPCBnaW5rb3Vrb3V6YVwgOwor55uu6by756uLIDwgbWVoYW5hZGFjaGlcIDsKK+WRqOacn+W+iyA8IHNodXVraXJpdHN1XCA7CivojYnlhqAgPCBrdXNha2FubXVyaVwgOwor6YCA57SF6ImyIDwgdGFpa291c2hva3VcIDsKK+Wkj+acn+Wkp+WtpiA8IGtha2lkYWlnYWt1XCA7CivpgKPpgqborbDkvJogPCByZW5wb3VnaWthaVwgOwor5pKu5YOP566hIDwgc2F0c3V6b3VrYW5cIDsKK+iFueWFq+WIhiA8IGhhcmFoYWNoaWJ1XCA7CivmnKvmnJ/nl4fnirYgPCBtYWtraWpvdXRhaVwgOwor5LqU5q615YuV6KmeIDwgZ29kYW5kb3VzaGlcIDsKK+eri+azleapn+mWoiA8IHJpcHBvdWtpa2FuXCA7Civlm6Dlvqrlp5Hmga8gPCBpbmp1bmtvc29rdVwgOwor6YCy5YWl6LevIDwgc2hpbicnbnl1dXJvXCA7CivlpKflsbHmpJLprZogPCBvb3NhbnNob3V1b1wgOwor6JmO6KaW55yI55yIIDwga29zaGl0YW50YW5cIDsKK+iDjOaXpeaApyA8IGhhaWppdHN1c2VpXCA7Civog4zpnaLpo5vooYwgPCBoYWltZW5oaWtvdVwgOwor5by+5Li46YGT6LevIDwgZGFuZ2FuZG91cm9cIDsKK+mWk+Wlj+absiA8IGthbnNvdWt5b2t1XCA7CivlhKrlhYjlpJbosqggPCB5dXVzZW5nYWlrYVwgOwor5b2T55So5ryi5a2XIDwgdG91eW91a2FuamlcIDsKK+aMh+WNl+W9uSA8IHNoaW5hbicneWFrdVwgOwor6ISF6L+r54q2IDwga3lvdWhha3Vqb3VcIDsKK+awkeacrOS4u+e+qSA8IG1pbnBvbnNodWdpXCA7Civlip/lkI3lv4MgPCBrb3VteW91c2hpblwgOwor5Zue5pWZ5Zu9IDwga2Fpa3lvdWtva3VcIDsKK+mqqOiGnOeCjiA8IGtvdHN1bWFrdWVuXCA7Civkurrlt6Xlj5fntJsgPCBqaW5rb3VqdWZ1blwgOwor5Li76KaB54mp5L6hIDwgc2h1eW91YnVra2FcIDsKK+ayouW6tea8rCA8IHRha3VhbmR6dWtlXCA7CivmoLnliIfomasgPCBuZWtpcmltdXNoaVwgOwor5Lq65bel5Y+X57K+IDwgamlua291anVzZWlcIDsKK+mAgeaWmeWFsSA8IHNvdXJ5b3V0b21vXCA7CivlvLXmnKzkurogPCBjaG91aG9uJyduaW5cIDsKK+eZu+Wxsembu+i7iiA8IHRvemFuZGVuc2hhXCA7CivmmqvlrprmlL/lupwgPCB6YW50ZWlzZWlmdVwgOwor5LmX6LuK5Y+jIDwgam91c2hhZ3VjaGlcIDsKK+S5l+WQiOmmrOi7iiA8IG5vcmlhaWJhc2hhXCA7CivkuIDml6Xot68gPCBpY2hpbmljaGlqaVwgOwor5Zyw6LOq5ZuzIDwgY2hpc2hpdHN1enVcIDsKK+acn+aIkOWQjOebnyA8IGtpc2VpZG91bWVpXCA7Civnq4vmmI7miKYgPCByaXRzdW1laXNlblwgOwor5oq96LGh6KuWIDwgY2h1dXNob3Vyb25cIDsKK+aVo+WFieaYn+mbsiA8IHNhbmtvdXNlaXVuXCA7Civku5XoqLPooaggPCBzaGl3YWtlaHlvdVwgOwor6aOi6aST55mC5rOVIDwga2lnYXJ5b3Vob3VcIDsKK+WbveeojuW6gSA8IGtva3V6ZWljaG91XCA7Civns7jlgY/mma/msJcgPCBpdG9oZW5rZWlraVwgOwor54mp5L6h5aSJ5YuVIDwgYnVra2FoZW5kb3VcIDsKK+aAp+aCquiqrCA8IHNlaWFrdXNldHN1XCA7Civov5Hpg4rpg73luIIgPCBraW5rb3V0b3NoaVwgOwor5oeQ6YO355eFIDwga2Fpa3lvdWJ5b3VcIDsKK+WFrOmWi+acn+mWkyA8IGtvdWthaWtpa2FuXCA7CivliY3lvozkuI3oppogPCB6ZW5nb2Z1a2FrdVwgOwor5rqW5YKZ5L2T5pONIDwganVuYml0YWlzb3VcIDsKK+avjeezu+WutuaXjyA8IGJva2Vpa2F6b2t1XCA7Civmra/np5HljLvooZMgPCBzaGlrYWlqdXRzdVwgOwor6YeR566h5qW95ZmoIDwga2lua2FuZ2Fra2lcIDsKK+WIh+eji+eQouejqCA8IHNlc3NhdGFrdW1hXCA7CivkuIDmmYLop6Ppm4cgPCBpY2hpamlrYWlrb1wgOwor5p+R5qmY6aGeIDwga2Fua2l0c3VydWlcIDsKK+mBi+i7ouizh+mHkSA8IHVudGVuc2hpa2luXCA7CivloZHmgKfpmZDnlYwgPCBzb3NlaWdlbmthaVwgOwor6YeR5qip5pS/5rK7IDwga2lua2Vuc2VpamlcIDsKK+mYsuW+oemDqOmaiiA8IGJvdWd5b2J1dGFpXCA7CivpnZnmraLooZvmmJ8gPCBzZWlzaGllaXNlaVwgOwor5LiA6Z+z56+AIDwgaWNoaW9uc2V0c3VcIDsKK+WGjeW6puWNlOitsCA8IHNhaWRva3lvdWdpXCA7CivohLHngq3phbggPCBkYXRzdXRhbnNhblwgOwor5paw5oqA6KGTIDwgc2hpbmdpanV0c3VcIDsKK+mAhuaOouefpSA8IGd5YWt1dGFuY2hpXCA7CivkuIDliIflkIjosqEgPCBpc3NhaWdhc3NhaVwgOwor6YG655Sj55u457aaIDwgaXNhbnNvdXpva3VcIDsKK+aLvuW+l+iAhSA8IHNodXV0b2t1c2hhXCA7Civlrp3nianmrr8gPCBob3Vtb3RzdWRlblwgOwor5Zar54WZ5bitIDwga2l0c3VlbnNla2lcIDsKK+WGt+ihgOa8oiA8IHJlaWtldHN1a2FuXCA7CivloZHmgKflpInlvaIgPCBzb3NlaWhlbmtlaVwgOwor6KaL5qeY6KaL55yf5Ly8IDwgbWl5b3VtaW1hbmVcIDsKK+S4u+WKm+iJpiA8IHNodXJ5b2t1a2FuXCA7CivkuIDlpKnlm5vmtbcgPCBpdHRlbnNoaWthaVwgOwor6LuK5aSn5belIDwga3VydW1hZGFpa3VcIDsKK+mBjumjn+eXhyA8IGthc2hva3VzaG91XCA7Civpn7Ppn7/lirnmnpwgPCBvbmt5b3Vrb3VrYVwgOwor5a6/5ZG96KuWIDwgc2h1a3VtZWlyb25cIDsKK+WFpemHkeelqCA8IG55dXVraW5oeW91XCA7CivljZjmnKzkvY3mgKcgPCB0YW5ob24nJ2lzZWlcIDsKK+mbsuaVo+mcp+a2iCA8IHVuc2FubXVzaG91XCA7CivlhajkvZPkuLvnvqkgPCB6ZW50YWlzaHVnaVwgOwor6Iqx5bGL5pW3IDwgaGFuYXlhc2hpa2lcIDsKK+WFseeZvemrqiA8IHRvbW9zaGlyYWdhXCA7CivlgZzmraLmmYLplpMgPCB0ZWlzaGlqaWthblwgOwor5L2O56m66aOb6KGMIDwgdGVpa3V1aGlrb3VcIDsKK+WPo+W6p+S/giA8IGtvdXpha2FrYXJpXCA7Civnk6LomasgPCB0ZW50b3VtdXNoaVwgOwor55Sf5a2Y546HIDwgc2Vpem9ucml0c3VcIDsKK+aUr+W6pumDqOWxiyA8IHNoaXRha3ViZXlhXCA7CivnhormnKznnIwgPCBrdW1hbW90b2tlblwgOwor55u06Yqt5b2iIDwgY2hva3VzZW5rZWlcIDsKK+WLleeJqeaApyA8IGRvdWJ1dHN1c2VpXCA7Civljp/niIbnl4cgPCBnZW5iYWt1c2hvdVwgOwor5Yqg5bel6LK/5piTIDwga2Frb3Vib3Vla2lcIDsKK+ihm+aYn+aUvumAgSA8IGVpc2VpaG91c291XCA7Civpm7vmsJfliIbop6MgPCBkZW5raWJ1bmthaVwgOwor5bem5LiLIDwgaGlkYXJpc2hpdGFcIDsKK+miqOiHtOWcsOWMuiA8IGZ1dWNoaWNoaWt1XCA7Civlr4bplonlrrnlmaggPCBtaXBwZWl5b3VraVwgOwor6YCj5biv5YK15YuZIDwgcmVudGFpc2FpbXVcIDsKK+mHkeWJm+iWqeWglSA8IGtvbmdvdXNhdHRhXCA7CivkuIDkurrlpKnkuIsgPCBoaXRvcmlkZW5rYVwgOwor6Zu75YuV5byPIDwgZGVuZG91c2hpa2lcIDsKK+aZgumWk+WPjei7oiA8IGppa2FuaGFudGVuXCA7CivnlJ/nlKPlipsgPCBzZWlzYW5yeW9rdVwgOwor5Ymv54mn5birIDwgZnVrdWJva3VzaGlcIDsKK+iBlumkkOW8jyA8IHNlaXNhbnNoaWtpXCA7CivpgIbplqLmlbAgPCBneWFrdWthbnN1dVwgOwor5LiD5LqU5LiJIDwgc2hpY2hpZ29zYW5cIDsKK+mnkOeVmei7jSA8IGNodXVyeXV1Z3VuXCA7CivllK/nianoq5YgPCB5dWlidXRzdXJvblwgOwor5peF5ZWG5Lq6IDwgdGFiaXNob3VuaW5cIDsKK+ilv+asp+aWh+aYjiA8IHNlaW91YnVubWVpXCA7CivkuIvpg6jntYTnuZQgPCBrYWJ1c29zaGlraVwgOwor55u45LmX5Yq55p6cIDwgc291am91a291a2FcIDsKK+awtOW5s+i3nemboiA8IHN1aWhlaWt5b3JpXCA7Civnmb7lh7ogPCBoeWFrdXNodXRzdVwgOwor5oqA6KGT5paZIDwgZ2lqdXRzdXJ5b3VcIDsKK+i7jeWCmeaSpOW7gyA8IGd1bmJpdGVwcGFpXCA7Civlm7rmnInlkI3oqZ4gPCBrb3l1dW1laXNoaVwgOwor57e057+S5bizIDwgcmVuc2h1dWNob3VcIDsKK+mAoOefs+mrmCA8IHpvdWtva3VkYWthXCA7Civou43pmorlvI8gPCBndW50YWlzaGlraVwgOwor57+76Kiz6ICFIDwgaG9uJyd5YWt1c2hhXCA7CivmvaTnm67psK8gPCB1cnVtZWl3YXNoaVwgOwor5Lq66ZaT55aO5aSWIDwgbmluZ2Vuc29nYWlcIDsKK+iMtuikkOiJsiA8IGNoYWthc3Nob2t1XCA7Civnorrlrp/luqYgPCBrYWt1aml0c3Vkb1wgOwor5pyJ5qmf5YyW5a2mIDwgeXV1a2lrYWdha3VcIDsKK+e3j+WKm+aIpiA8IHNvdXJ5b2t1c2VuXCA7Civku7LplpPlgKTmrrUgPCBuYWthbWFuZWRhblwgOwor5aW96Imy5ryiIDwga291c2hva3VrYW5cIDsKK+a4qeaVheefpeaWsCA8IG9ua29jaGlzaGluXCA7CivliJ3mipXnqL8gPCBoYXRzdXRvdWtvdVwgOwor5LiH5LiH5LiAIDwgbWFubWFuJydpY2hpXCA7Civmmpfoppboo4Xnva4gPCBhbnNoaXNvdWNoaVwgOwor5Zu95a626Kmm6aiTIDwga29ra2FzaGlrZW5cIDsKK+mdkuaenOW4guWgtCA8IHNlaWthaWNoaWJhXCA7Civoi6Xkvo0gPCB3YWthemFtdXJhaVwgOwor57Sz5aOr5pyNIDwgc2hpbnNoaWZ1a3VcIDsKK+awkeS6i+ijgeWIpCA8IG1pbmppc2FpYmFuXCA7Civljp/lrZDlhbXlmaggPCBnZW5zaGloZWlraVwgOwor5LiA5LuV5LqLIDwgaGl0b3NoaWdvdG9cIDsKK+WXheelnue1jCA8IGt5dXVzaGlua2VpXCA7Civogq/lrprlv5znrZQgPCBrb3V0ZWlvdXRvdVwgOwor5aSJ5pu05LiN6IO9IDwgaGVua291ZnVub3VcIDsKK+e2mee2mueahCA8IGtlaXpva3V0ZWtpXCA7CivmloflrabnmoQgPCBidW5nYWt1dGVraVwgOwor57SA5Yui5pys57eaIDwga2lzZWlob25zZW5cIDsKK+WAmeeUsSA8IHNvdXJvdXlvc2hpXCA7Civpurvoo4/ojYnlsaUgPCBhc2F1cmF6b3VyaVwgOwor5YWt6YeN5ZSxIDwgcm9rdWp1dXNob3VcIDsKK+WPsOa5vuWdiuS4uyA8IHRhaXdhbmJvdXp1XCA7CivlraPliIrpm5HoqowgPCBraWthbnphc3NoaVwgOwor5Y2X6Zi/5oim5LqJIDwgbmFuJydhc2Vuc291XCA7CivnhKHnt5rlkajms6IgPCBtdXNlbnNodXVoYVwgOwor546E5Lq6562LIDwga3Vyb3V0b3N1amlcIDsKK+mVt+acn+mHkeWIqSA8IGNob3VraWtpbnJpXCA7Civlm4PlrZDmlrkgPCBoYXlhc2hpa2F0YVwgOwor5aSn5Lq654mpIDwgZGFpamluYnV0c3VcIDsKK+mjm+ihjOapn+etiSA8IGhpa291a2luYWRvXCA7CivlgoDlhKHmlL/lupwgPCBrYWlyYWlzZWlmdVwgOwor5ZCM57O76ImyIDwgZG91a2Vpc2hva3VcIDsKK+e0heeZveeyiSA8IGJlbmlvc2hpcm9pXCA7CivlrqPoqpPlvI8gPCBzZW5zZWlzaGlraVwgOwor5biC5aSW6Zu76KmxIDwgc2hpZ2FpZGVud2FcIDsKK+mAo+mCpuaUv+W6nCA8IHJlbnBvdXNlaWZ1XCA7CivmlL7mrYzpq5jlkJ8gPCBob3VrYWtvdWdpblwgOwor5Lit5ZKM54axIDwgY2h1dXdhbmV0c3VcIDsKK+W+rumHj+WFg+e0oCA8IGJpcnlvdWdlbnNvXCA7Civoi7HlrZfmlrDogZ4gPCBlaWppc2hpbmJ1blwgOwor5rqA6Lqr5Ym155eNIDwgbWFuc2hpbnNvdWlcIDsKK+esrOS6jOe1hOWQiCA8IGRhaW5pa3VtaWFpXCA7CivmtojogJfnmoQgPCBzaG91a291dGVraVwgOwor5pS75pKD55qEIDwga291Z2VraXRla2lcIDsKK+Wfi+iUteeJqSA8IG1haXpvdWJ1dHN1XCA7Civlia/oqq3mnKwgPCBmdWt1ZG9rdWhvblwgOwor6bqd6aaZ6bygIDwgamFrb3VuZXp1bWlcIDsKK+acqOizg+WuvyA8IGtpY2hpbicneWFkb1wgOwor5Zub6KeS5p+xIDwgc2hpa2FrdWNodXVcIDsKK+S4reepuuWjgSA8IGNodXVrdXVrYWJlXCA7CivlqabkurrorablrpggPCBmdWppbmtlaWthblwgOwor6ICD6Ki85a2mIDwga291c2hvdWdha3VcIDsKK+esrOS4ieS4lueVjCA8IGRhaXNhbnNla2FpXCA7Civmr5jmspnploDlpKkgPCBiaXNoYW1vbnRlblwgOwor56S+5Lya5Li7576pIDwgc2hha2Fpc2h1Z2lcIDsKK+WtpuS9jeirluaWhyA8IGdha3Vpcm9uYnVuXCA7Civlrp/oqLznmoQgPCBqaXNzaG91dGVraVwgOwor5pWR5riI562WIDwga3l1dXNhaXNha3VcIDsKK+i7jeWbveiqvyA8IGd1bmtva3VjaG91XCA7Civnmb3onYvnl4UgPCBoYWt1cm91YnlvdVwgOwor56S+5Lqk6L6e5LukIDwgc2hha291amlyZWlcIDsKK+W+tOWFteW/jOmBvyA8IGNob3VoZWlraWhpXCA7Civni4Lniqznl4UgPCBreW91a2VuYnlvdVwgOwor5rCR6KGG55qEIDwgbWluc2h1dXRla2lcIDsKK+apn+S8muWdh+etiSA8IGtpa2Fpa2ludG91XCA7Civmmqvlrprmjqrnva4gPCB6YW50ZWlzb2NoaVwgOwor5pa55ZCR6Z+z55e0IDwgaG91a291b25jaGlcIDsKK+S4gOS4oeW5tCA8IGljaGlyeW91bmVuXCA7CivkuJbnlYzpioDooYwgPCBzZWthaWdpbmtvdVwgOwor5aSn5LuP5q6/IDwgZGFpYnV0c3VkZW5cIDsKK+WIuemCo+eahCA8IHNldHN1bmF0ZWtpXCA7CivlhajmqKnlp5Tku7sgPCB6ZW5rZW4nJ2luaW5cIDsKK+S8veipsSA8IHRvZ2liYW5hc2hpXCA7Civoh6rnhLboqIDoqp4gPCBzaGl6ZW5nZW5nb1wgOwor5YuF5Lu75a6YIDwgY2hva3VuaW5rYW5cIDsKK+iqh+Wkp+WmhOaDsyA8IGtvZGFpbW91c291XCA7Civlj4zljYHnr4AgPCBzb3VqdXVzZXRzdVwgOwor5aW96Imy5pysIDwga291c2hva3Vib25cIDsKK+WMlueyp+mBk+WFtyA8IGtlc2hvdWRvdWd1XCA7CivkuI3lpInos4fmnKwgPCBmdWhlbnNoaWhvblwgOwor56qS5YyW54mpIDwgY2hpa2thYnV0c3VcIDsKK+advumjviA8IG1hdHN1a2F6YXJpXCA7CivkuInop5Lnv7wgPCBzYW5rYWt1eW9rdVwgOwor6LOe5ZGz5pyf6ZmQIDwgc2hvdW1pa2lnZW5cIDsKK+aIkOmVt+agqiA8IHNlaWNob3VrYWJ1XCA7Civnn7PmnZDllYYgPCBzZWtpemFpc2hvdVwgOwor5L6b6KiX6YeRIDwga3lvdXRha3VraW5cIDsKK+W/g+iHk+WkluenkSA8IHNoaW56b3VnZWthXCA7CivnjKvpoY3lpKcgPCBieW91Z2FrdWRhaVwgOwor5Zyw5pa56ImyIDwgY2hpaG91c2hva3VcIDsKK+W5vuS9lee0muaVsCA8IGtpa2FreXV1c3V1XCA7CivkuInpg6jlkIjlpY8gPCBzYW5idWdhc3NvdVwgOwor55Sf5Lit57aZIDwgbmFtYWNodXVrZWlcIDsKK+WQuOWPjuWJpCA8IGt5dXVzaHV1emFpXCA7Civokpnlj6TkurrnqK4gPCBtb3Vrb2ppbnNodVwgOwor6Zu75rCX5YyW5a2mIDwgZGVua2lrYWdha3VcIDsKK+adsemiqCA8IGhpZ2FzaGlrYXplXCA7Civlu7rolL3njocgPCBrZW5wZWlyaXRzdVwgOwor5a6i6Kaz55qEIDwga3lha2thbnRla2lcIDsKK+ixhuiFkOS4gOS4gSA8IHRvdWZ1aXRjaG91XCA7Civmtojosrvpg73luIIgPCBzaG91aGl0b3NoaVwgOwor5LiL57Sa6IG3IDwga2FreXV1c2hva3VcIDsKK+S4gOS4gOOAh+eVqiA8IGh5YWt1dG9vYmFuXCA7Civkv67po77oqp4gPCBzaHV1c2hva3Vnb1wgOwor5a625peP5Yi25bqmIDwga2F6b2t1c2VpZG9cIDsKK+eUn+WtmOacn+mWkyA8IHNlaXpvbmtpa2FuXCA7CivlpKfpo5/mvKIgPCB0YWlzaG9rdWthblwgOwor5Ya356yR55qEIDwgcmVpc2hvdXRla2lcIDsKK+aUr+e1pumhjSA8IHNoaWt5dXVnYWt1XCA7CivkuI3lnYfos6ogPCBmdWtpbnNoaXRzdVwgOwor5Luj6KGo55qEIDwgZGFpaHlvdXRla2lcIDsKK+WFpemBk+mbsiA8IG55dXVkb3VndW1vXCA7Civph47oia/ku5XkuosgPCBub3Jhc2hpZ290b1wgOwor5YWx6YCa54K5IDwga3lvdXRzdXV0ZW5cIDsKK+aXpeS8iui+nuWFuCA8IG5pY2hpaWppdGVuXCA7CivlhazlvrPlv4MgPCBrb3V0b2t1c2hpblwgOwor5LiN5q2j5LmX6LuKIDwgZnVzZWlqb3VzaGFcIDsKK+iqv+afu+e1kOaenCA8IGNob3VzYWtla2thXCA7CivlvaLlvI/oq5YgPCBrZWlzaGlraXJvblwgOwor5LiN5b2T5buJ5aOyIDwgZnV0b3VyZW5iYWlcIDsKK+mHkeeSsOmjnyA8IGtpbmthbnNob2t1XCA7Civlh7rmnK3miYAgPCBzaHVzc2F0c3Vqb1wgOwor5ruF5aSa55+i6bGIIDwgbWV0dGF5YXRhcmFcIDsKK+WMl+altea1tyA8IGhva2t5b2t1a2FpXCA7CivliY3kurrmnKrouI8gPCB6ZW5qaW5taXRvdVwgOwor6KGM5a6Y5bqBIDwgZ3lvdWthbmNob3VcIDsKK+S4jeW9k+WIqeW+lyA8IGZ1dG91cml0b2t1XCA7Civlm57mlZnlr7rpmaIgPCBrYWlreW91amlpblwgOwor5L+d6Lqr6KGTIDwgaG9zaGluanV0c3VcIDsKK+mRkeitmOecvCA8IGthbnNoaWtpZ2FuXCA7CivljJfmpbXmtIsgPCBob2treW9rdXlvdVwgOwor6LWk57SrIDwgYWthbXVyYXNha2lcIDsKK+i7jeS6i+iok+e3tCA8IGd1bmppa3VucmVuXCA7CivlvavliLvnlYwgPCBjaG91a29rdWthaVwgOwor6aas6bm/6KmxIDwgYmFrYWJhbmFzaGlcIDsKK+e3j+WQiOWPo+W6pyA8IHNvdWdvdWtvdXphXCA7CivnianntI3nqI4gPCBidXRzdW5vdXplaVwgOwor6YOh55yM5Yi25bqmIDwgZ3Vua2Vuc2VpZG9cIDsKK+S9v+eUqOWPr+iDvSA8IHNoaXlvdWthbm91XCA7CivkuIvlpbPkuK0gPCBzaGltb2pvY2h1dVwgOwor5YaF6YOo55WZ5L+dIDwgbmFpYnVyeXV1aG9cIDsKK+WcsOS4i+WupCA8IGNoaWthc2hpdHN1XCA7Civlho3osqnliLbluqYgPCBzYWloYW5zZWlkb1wgOwor6KKr6YG45oyZ5qipIDwgaGlzZW5reW9rZW5cIDsKK+iyuOacrOWxiyA8IGthc2hpaG9uJyd5YVwgOwor54mp5L6h57Wx5Yi2IDwgYnVra2F0b3VzZWlcIDsKK+mYv+WRhumZgOe+hee1jCA8IGFob2RhcmFreW91XCA7Civlm6DmlbDliIbop6MgPCBpbnN1dWJ1bmthaVwgOwor6Y2+5Lmz5rSeIDwgc2hvdW55dXVkb3VcIDsKK+iBt+WToemMsiA8IHNob2t1aW5yb2t1XCA7CivnlJ/nlJ/mtYHou6IgPCBzZWlzZWlydXRlblwgOwor54Sh55+l6JKZ5pinIDwgbXVjaGltb3VtYWlcIDsKK+air+WtkOmFkiA8IGhhc2hpZ296YWtlXCA7Civmu57lnKjlrqIgPCB0YWl6YWlreWFrdVwgOwor6JOE6Zu75rGgIDwgY2hpa3VkZW5jaGlcIDsKK+ippuaOmOiAhSA8IHNoaWt1dHN1c2hhXCA7CivlpKflrablr64gPCBkYWlnYWt1cnlvdVwgOwor5aer5bCP5p2+IDwgaGltZWtvbWF0c3VcIDsKK+ecn+Wun+WRsyA8IHNoaW5qaXRzdW1pXCA7Civml4XlvbnogIUgPCB0YWJpeWFrdXNoYVwgOwor5Zu95rCR55qEIDwga29rdW1pbnRla2lcIDsKK+aIpuayoeiAhSA8IHNlbmJvdHN1c2hhXCA7CivmtYHooYznl4UgPCByeXV1a291YnlvdVwgOwor5b2r5Yi754mIIDwgY2hvdWtva3ViYW5cIDsKK+WgleiQveWdiuS4uyA8IGRhcmFrdWJvdXp1XCA7CivoiJ7lj7Dluqbog7ggPCBidXRhaWRva3lvdVwgOwor5ZGo5peL5qWtIDwgc2h1dXNlbmd5b3VcIDsKK+Wbo+aJh+iZqyA8IHVjaGl3YW11c2hpXCA7Civms7Dopb/lkI3nlLsgPCB0YWlzZWltZWlnYVwgOwor5p+z6IWwIDwgeWFuYWdpZ29zaGlcIDsKK+WPo+Wwj+iogCA8IGt1Y2hpa29nb3RvXCA7Civms5Xmsrvlm73lrrYgPCBob3VjaGlrb2trYVwgOwor5YSq5YWI6aCG5L2NIDwgeXV1c2VuanVuJydpXCA7Civku7vlkb3lvI8gPCBuaW5tZWlzaGlraVwgOwor6Zu75Yqb5YK1IDwgZGVucnlva3VzYWlcIDsKK+WNmOS9jee1hOWQiCA8IHRhbicnaWt1bWlhaVwgOwor5Yqb5YuV55qEIDwgcmlraWRvdXRla2lcIDsKK+Wkj+W4veWtkCA8IG5hdHN1Ym91c2hpXCA7CivnnaHnnKDolqwgPCBzdWltaW4nJ3lha3VcIDsKK+WNuOebuOWgtCA8IG9yb3NoaXNvdWJhXCA7CivljbDliLfmpa0gPCBpbnNhdHN1Z3lvdVwgOwor566h55CG5oOF5aCxIDwga2Fucmlqb3Vob3VcIDsKK+S8neWwjueOhyA8IGRlbmRvdXJpdHN1XCA7Civom7jlhaXpgZMgPCB0YWtvbnl1dWRvdVwgOwor6KuH6Kmx5a6kIDwgZGFud2FzaGl0c3VcIDsKK+WujOWFqOS4u+e+qSA8IGthbnplbnNodWdpXCA7CivlronmnIjntaYgPCB5YXN1Z2Vra3l1dVwgOwor5YyX5qW15pifIDwgaG9ra3lva3VzZWlcIDsKK+W+oemciuS7oyA8IG1pdGFtYXNoaXJvXCA7CivkuIPkuI3mgJ3orbAgPCBuYW5hZnVzaGlnaVwgOwor5ris6YeP5aOrIDwgc29rdXJ5b3VzaGlcIDsKK+WHuumhmOaZgiA8IHNodXRzdWdhbmppXCA7CivloLHlvqnooYzngrogPCBob3VmdWt1a291aVwgOwor5LiJ6KeS55C0IDwgc2Fua2FrdWdvdG9cIDsKK+mJhOadoee2siA8IHRldHN1am91bW91XCA7CivlrqPkvJ3mloflj6UgPCBzZW5kZW5tb25rdVwgOwor5LqM5oiQ5paH57O7IDwgbmlzZWlidW5rZWlcIDsKK+S9k+WGheaZguioiCA8IHRhaW5haWRva2VpXCA7Civnv7voqLPmqKkgPCBob24nJ3lha3VrZW5cIDsKK+eOieadk+WtkCA8IHRhbWFqYWt1c2hpXCA7Civlt6Xmpa3lm70gPCBrb3VneW91a29rdVwgOwor57WC5aSc6YGL6LuiIDwgc2h1dXlhdW50ZW5cIDsKK+WRqOaXi+aWmSA8IHNodXVzZW5yeW91XCA7Civov73mkoPmiKYgPCB0c3VpZ2VraXNlblwgOwor5Yqg6YCf6YGL5YuVIDwga2Fzb2t1dW5kb3VcIDsKK+WCt+eXheWFtSA8IHNob3VieW91aGVpXCA7CivlvbzlsrjmoZwgPCBoaWdhbnpha3VyYVwgOwor5a++5oqX6YOo6ZqKIDwgdGFpa291YnV0YWlcIDsKK+e1kOWpmuiyu+eUqCA8IGtla2tvbmhpeW91XCA7CivkuIDmmYLmiZUgPCBpY2hpamliYXJhaVwgOwor5YaF5a6554mpIDwgbmFpeW91YnV0c3VcIDsKK+i7jeS6i+aUv+aoqSA8IGd1bmppc2Vpa2VuXCA7CivmnInmqZ/ovrLms5UgPCB5dXVraW5vdWhvdVwgOwor6Ziy6KGb6YOo6ZW3IDwgYm91ZWlidWNob3VcIDsKK+mBi+WWtuizh+mHkSA8IHVuJydlaXNoaWtpblwgOwor5pyI6KaL6JWO6bqmIDwgdHN1a2ltaXNvYmFcIDsKK+S6uueUn+iIqui3ryA8IGppbnNlaWtvdXJvXCA7CivnhKHkuIDniakgPCBtdWljaGltb3RzdVwgOwor55Sf5ZG95L+d6Zm6IDwgc2VpbWVpaG9rZW5cIDsKK+WKtOWDjeWKmyA8IHJvdWRvdXJ5b2t1XCA7Civlv5zmgKXmiYvlvZMgPCBvdWt5dXV0ZWF0ZVwgOwor5pyJ5b2i54Sh5b2iIDwgeXV1a2VpbXVrZWlcIDsKK+iLpeerueS6rSA8IHdha2F0YWtldGVpXCA7Civnv7voqLPmm7ggPCBob24nJ3lha3VzaG9cIDsKK+WIsOedgOmnhSA8IHRvdWNoYWt1ZWtpXCA7CivnlLflv4MgPCBvdG9rb2dva29yb1wgOwor5bCR5Zu95rCRIDwgc2hvdWtva3VtaW5cIDsKK+WPl+S/oeWbnui3ryA8IGp1c2hpbmthaXJvXCA7Civlj4LogIPlm7Pmm7ggPCBzYW5rb3V0b3Nob1wgOwor55Sf5a2m5ZWPIDwgbmFtYWdha3Vtb25cIDsKK+iLsembhOW0h+aLnSA8IGVpeXV1c3V1aGFpXCA7Civku4rmnIjliIYgPCBrb25nZXRzdWJ1blwgOwor5YiG5pWw5byPIDwgYnVuc3V1c2hpa2lcIDsKK+WPl+mok+eVquWPtyA8IGp1a2VuYmFuZ291XCA7Civph43ovrLkuLvnvqkgPCBqdXVub3VzaHVnaVwgOwor5o6I6LOe5byPIDwganVzaG91c2hpa2lcIDsKK+aOjOS4reacrCA8IHNob3VjaHV1Ym9uXCA7CivnnIHlipvljJYgPCBzaG91cnlva3VrYVwgOwor5Luj6KGo5qC8IDwgZGFpaHlvdWtha3VcIDsKK+itt+WbveelnuekviA8IGdva29rdWppbmphXCA7CivmmLzoiIjooYwgPCBoaXJ1a291Z3lvdVwgOwor6buZ56S66YyyIDwgbW9rdXNoaXJva3VcIDsKK+aYjuayu+elnuWuriA8IG1laWppamluZ3V1XCA7CivlsJHmlbDmhI/oposgPCBzaG91c3V1aWtlblwgOwor5Lq66JmxIDwgaGl0b3NoaXJhbWlcIDsKK+avlOe/vOmAo+eQhiA8IGhpeW9rdXJlbnJpXCA7CivmpJzlr5/lrpggPCBrZW5zYXRzdWthblwgOwor5L6b6KiX6ICFIDwga3lvdXRha3VzaGFcIDsKK+a1t+eUo+eJqSA8IGthaXNhbmJ1dHN1XCA7CivmnInmnJ/lubTph5EgPCB5dXVraW5lbmtpblwgOwor6L+U5L+h55SoIDwgaGVuc2hpbicneW91XCA7CivkuozlhYPmlL7pgIEgPCBuaWdlbmhvdXNvdVwgOwor6Ieq5L+h6YGO5YmwIDwgamlzaGlua2Fqb3VcIDsKK+mBgei1sOabsiA8IHRvbnNvdWt5b2t1XCA7CivlpYnntI3nm7jmkrIgPCBob3Vub3V6dW1vdVwgOwor6L675by355uXIDwgdHN1amlnb3V0b3VcIDsKK+S6uui6q+W+oeS+myA8IGhpdG9taWdva3V1XCA7CivlhazlvI/miKYgPCBrb3VzaGlraXNlblwgOwor5L+d6K235qSc5p2fIDwgaG9nb2tlbnNva3VcIDsKK+WIhuecjOWcsOWbsyA8IGJ1bmtlbmNoaXp1XCA7CivpnbTkuIDotrMgPCBrdXRzdWlzc29rdVwgOwor6Zi/6Kub6L+95b6TIDwgYXl1dHN1aXNob3VcIDsKK+mbu+WFieefs+eBqyA8IGRlbmtvdXNla2thXCA7Civms6LngL7kuIfkuIggPCBoYXJhbmJhbmpvdVwgOwor55u45LqS6Zai5L+CIDwgc291Z29rYW5rZWlcIDsKK+a1quiKseevgCA8IG5hbml3YWJ1c2hpXCA7CivlhoXpg6jku5Xmp5ggPCBuYWlidXNoaXlvdVwgOwor5ZCE5aSn5a2mIDwga2FrdWRhaWdha3VcIDsKK+e3j+mAgOWNtCA8IHNvdXRhaWt5YWt1XCA7Civnmq7kuIvms6jlsIQgPCBoaWthY2h1dXNoYVwgOwor5Lm+54el6YeO6I+cIDwga2Fuc291eWFzYWlcIDsKK+efreapn+mWoumKgyA8IHRhbmtpa2FuanV1XCA7Civnj77lnLDmmYLplpMgPCBnZW5jaGlqaWthblwgOwor5Zu95rCR5pyNIDwga29rdW1pbmZ1a3VcIDsKK+S4gOetiei7jeabuSA8IGl0dG91Z3Vuc291XCA7Civlrp/lnKjoq5YgPCBqaXRzdXphaXJvblwgOwor5pWR5oCl6LuKIDwga3l1dWt5dXVzaGFcIDsKK+mWk+aOpeeojiA8IGthbnNldHN1emVpXCA7CivnjaPpgZMgPCBrZW1vbm9taWNoaVwgOwor5a625bqt55So5ZOBIDwga2F0ZWl5b3VoaW5cIDsKK+S5semWi+eZuiA8IHJhbmthaWhhdHN1XCA7CivmiYDluK/kuLsgPCBzaG90YWludXNoaVwgOwor6Ymx5bGx5oqA5birIDwga291emFuZ2lzaGlcIDsKK+mYsuWvkumdtCA8IGJvdWthbmd1dHN1XCA7CivkuIDlrZDnm7jkvJ0gPCBpc3NoaXNvdWRlblwgOwor5LiJ6KeS5p+xIDwgc2Fua2FrdWNodXVcIDsKK+S4gOmbqyA8IGhpdG9zaGl6dWt1XCA7Civku5XoqLPluLMgPCBzaGl3YWtlY2hvdVwgOwor57KY552A5oCnIDwgbmVuY2hha3VzZWlcIDsKK+aZgumZkOeri+azlSA8IGppZ2VucmlwcG91XCA7Civnvorpm7IgPCBoaXRzdWppZ3Vtb1wgOwor5oSb5Yil6Zui6IumIDwgYWliZXRzdXJpa3VcIDsKK+WvhumAoOmFkiA8IG1pdHN1em91c2h1XCA7Civlm7rlrpros4fnlKMgPCBrb3RlaXNoaXNhblwgOwor5LiA5aSc5rysIDwgaWNoaXlhZHp1a2VcIDsKK+WSjOeLrOi+nuWFuCA8IHdhZG9rdWppdGVuXCA7CivnmbvmoKHmi5LlkKYgPCB0b3Vrb3VreW9oaVwgOwor5pac6KeS5p+xIDwgc2hha2FrdWNodXVcIDsKK+a8lOWlj+aXheihjCA8IGVuc291cnlva291XCA7Civmm7jnlLvpqqjokaMgPCBzaG9nYWtvdHRvdVwgOwor5a++54Wn55qEIDwgdGFpc2hvdXRla2lcIDsKK+W9ueS6uumiqCA8IHlha3VuaW5rYXplXCA7CivoiLnoiLbmpa0gPCBzZW5wYWt1Z3lvdVwgOwor6YGL5YuV6YG45omLIDwgdW5kb3VzZW5zaHVcIDsKK+WtpuWckumDveW4giA8IGdha3VlbnRvc2hpXCA7CivmsLTpgZPlsYAgPCBzdWlkb3VreW9rdVwgOwor5aeL55m66aeFIDwgc2hpaGF0c3Vla2lcIDsKK+adsea0i+S4u+e+qSA8IHRvdXlvdXNodWdpXCA7CivljJfmpbXlnI8gPCBob2treW9rdWtlblwgOwor5pel55So5ZOBIDwgbmljaGl5b3VoaW5cIDsKK+WPjemAhuiAhSA8IGhhbmd5YWt1c2hhXCA7CivlpKfpoqjlkYLmlbcgPCBvb2J1cm9zaGlraVwgOwor5pyJ6JOL6LKo6LuKIDwgeXV1Z2Fpa2FzaGFcIDsKK+aUv+ayu+izh+mHkSA8IHNlaWppc2hpa2luXCA7CivnmbvpjLLmuIggPCB0b3Vyb2t1enVtaVwgOwor5bCC5aOy5bGAIDwgc2VuYmFpa3lva3VcIDsKK+aoqeWKm+iAhSA8IGtlbnJ5b2t1c2hhXCA7CivoqIDoq5bmqZ/plqIgPCBnZW5yb25raWthblwgOwor6aSK6K235a2m5qChIDwgeW91Z29nYWtrb3VcIDsKK+aBkuS5heeahCA8IGtvdWt5dXV0ZWtpXCA7CivotbDooYzmmYLplpMgPCBzb3Vrb3VqaWthblwgOwor5Y+N6YCG572qIDwgaGFuZ3lha3V6YWlcIDsKK+ipleS+oeWfuua6liA8IGh5b3VrYWtpanVuXCA7CivnibnnrYnluK0gPCB0b2t1dG91c2VraVwgOwor5YaF5pyN6JasIDwgbmFpZnVrdXlha3VcIDsKK+iHhueXhemiqCA8IG9rdWJ5b3VrYXplXCA7CivkvpvntabogIUgPCBreW91a3l1dXNoYVwgOwor5b2r5Yi75birIDwgY2hvdWtva3VzaGlcIDsKK+aWsOiBnuiomOS6iyA8IHNoaW5idW5raWppXCA7CivlpKvllLHlqabpmo8gPCBmdXNob3VmdXp1aVwgOwor6Zu75a2Q6L6e5pu4IDwgZGVuc2hpamlzaG9cIDsKK+axguS6uumboyA8IGt5dXVqaW4nJ25hblwgOwor54y/6L2hIDwgc2FydWd1dHN1d2FcIDsKK+ippuaOmOaoqSA8IHNoaWt1dHN1a2VuXCA7CivlkIzmmYLpjLLpn7MgPCBkb3VqaXJva3VvblwgOwor566h55CG56S+5LyaIDwga2FucmlzaGFrYWlcIDsKK+S4gOimluWQjOS7gSA8IGlzc2hpZG91amluXCA7Civmp4vpgKDlpInljJYgPCBrb3V6b3VoZW5rYVwgOwor5Zyo5Lqs5LitIDwgemFpa3lvdWNodXVcIDsKK+aWueeoi+W8jyA8IGhvdXRlaXNoaWtpXCA7CivpnZnlipvlraYgPCBzZWlyaWtpZ2FrdVwgOwor5aWz5rWB5L2c5a62IDwgam9yeXV1c2Fra2FcIDsKK+S4gOimp+ihqCA8IGljaGlyYW5oeW91XCA7CivljJfmnJ3prq4gPCBraXRhY2hvdXNlblwgOwor5Y+45rOV5Yi25bqmIDwgc2hpaG91c2VpZG9cIDsKK+iEiOaJgCA8IG15YWt1ZG9rb3JvXCA7Civnmb7ljYPps6UgPCBtb21vY2hpZG9yaVwgOwor5Yuk5YuZ5Lqk5LujIDwga2lubXVrb3V0YWlcIDsKK+efree3qOaYoOeUuyA8IHRhbnBlbicnZWlnYVwgOwor6YqD5Ymj6KGTIDwganV1a2VuanV0c3VcIDsKK+S8muWToeimj+e0hCA8IGthaWlua2l5YWt1XCA7CivntI3pqqjloIIgPCBub3Vrb3RzdWRvdVwgOwor6ICz5bCP6aqoIDwgamlzaG91a290c3VcIDsKK+Wkp+mdmeiEiCA8IGRhaWpvdW15YWt1XCA7CivntYzmuIjlipsgPCBrZWl6YWlyeW9rdVwgOwor5a2m5Y2U5LyaIDwgZ2FrdWt5b3VrYWlcIDsKK+S4reW/g+eCuSA8IGNodXVzaGludGVuXCA7CivkuozngrnlhYjlj5YgPCBuaXRlbnNlbnNodVwgOwor5Y+N5oim5Li7576pIDwgaGFuc2Vuc2h1Z2lcIDsKK+aatOiZjummruaysyA8IGJvdWtvaHlvdWdhXCA7CivljJfmpbXlhYkgPCBob2treW9rdWtvdVwgOwor6aOf5ZOB5bqXIDwgc2hva3VoaW50ZW5cIDsKK+mgmOWPjuabuCA8IHJ5b3VzaHV1c2hvXCA7Civlt6bohZXmipXmiYsgPCBzYXdhbnRvdXNodVwgOwor5L2G5pu4IDwgdGFkYXNoaWdha2lcIDsKK+WJjeacn+ippumokyA8IHplbmtpc2hpa2VuXCA7CivpgJrnn6XooaggPCB0c3V1Y2hpaHlvdVwgOwor6YCj55m66YqDIDwgcmVucGF0c3VqdXVcIDsKK+aUu+aSg+WBtCA8IGtvdWdla2lnYXdhXCA7CivlpKfkuK3lsI8gPCBkYWljaHV1c2hvdVwgOwor5bmz5Z2H5b6LIDwgaGVpa2lucml0c3VcIDsKK+i1pOajn+ibhyA8IHlhbWFrYWdhc2hpXCA7CivooqvpgbjmjJnkurogPCBoaXNlbmt5b25pblwgOwor6Kaz5b+155qEIDwga2FuJyduZW50ZWtpXCA7CivlsILploDogbcgPCBzZW5tb25zaG9rdVwgOwor5YWx6YCy5LyaIDwga3lvdXNoaW5rYWlcIDsKK+S/oeeUqOeKtiA8IHNoaW4nJ3lvdWpvdVwgOwor57mU54mp5qWtIDwgb3JpbW9ub2d5b3VcIDsKK+iDjOW+jOmWouS/giA8IGhhaWdva2Fua2VpXCA7CivohbDliIAgPCBrb3NoaWdhdGFuYVwgOwor6LaF54m55oClIDwgY2hvdXRva2t5dXVcIDsKK+i/lOS/oeaWmSA8IGhlbnNoaW5yeW91XCA7Civlo4HmlrDogZ4gPCBrYWJlc2hpbmJ1blwgOwor6aST6ay85aSn5bCGIDwgZ2FraWRhaXNob3VcIDsKK+eVquWPt+iomOWPtyA8IGJhbmdvdWtpZ291XCA7Civono3op6PnhrEgPCB5dXVrYWluZXRzdVwgOwor56+A5Y2a5aOrIDwgZnVzaGloYWthc2VcIDsKK+imi+eJqeS6uiA8IGtlbmJ1dHN1bmluXCA7CivnmbvpjLLmlpkgPCB0b3Vyb2t1cnlvdVwgOwor5ZGo5peL5Lq6IDwgc2h1dXNlbicnbmluXCA7CivliJHkuovoo5zlhJ8gPCBrZWlqaWhvc2hvdVwgOwor6auY6bqX6IqdIDwga291cmFpc2hpYmFcIDsKK+S4jeimquWIhyA8IGZ1c2hpbnNldHN1XCA7CivopqrlkYrnvaogPCBzaGlua29rdXphaVwgOwor6JSm57SF6JGJIDwgdHN1dGFtb21pamlcIDsKK+S6lOebrumuqCA8IGdvbW9rdXp1c2hpXCA7Civnt6jpm4bplbcgPCBoZW5zaHV1Y2hvdVwgOwor5Ye654mI5qWtIDwgc2h1cHBhbmd5b3VcIDsKK+iqv+aVmeW4qyA8IGNob3VreW91c2hpXCA7CivpgLLpp5Dou40gPCBzaGluY2h1dWd1blwgOwor5Yil5YuV6ZqKIDwgYmV0c3Vkb3V0YWlcIDsKK+mAhuWZtOWwhCA8IGd5YWt1ZnVuc2hhXCA7CivkuIDkvZPlhajkvZMgPCBpdHRhaXplbnRhaVwgOwor5LqM5Y+j55uuIDwgZnV0YWt1Y2hpbWVcIDsKK+a1t+mBi+WQjOebnyA8IGthaXVuZG91bWVpXCA7CivlsILlrojpmLLooZsgPCBzZW5zaHVib3VlaVwgOwor5Y2X6Zi/6YCj6YKmIDwgbmFuJydhcmVucG91XCA7CivpgIblkb3poYwgPCBneWFrdW1laWRhaVwgOwor55m66KGM6YOo5pWwIDwgaGFra291YnVzdXVcIDsKK+WIkeS6i+ijgeWIpCA8IGtlaWppc2FpYmFuXCA7CivlhazlubPnhKHnp4EgPCBrb3VoZWltdXNoaVwgOwor54mp5L6h5oyH5pWwIDwgYnVra2FzaGlzdXVcIDsKK+eymOedgOWJpCA8IG5lbmNoYWt1emFpXCA7CivliJHkuovooqvlkYogPCBrZWlqaWhpa29rdVwgOwor55Sf54mp55WMIDwgc2VpYnV0c3VrYWlcIDsKK+iomOiAheS8muimiyA8IGtpc2hha2Fpa2VuXCA7CivlvpPou43oqJjogIUgPCBqdXVndW5raXNoYVwgOwor56m65rCX5oq15oqXIDwga3V1a2l0ZWlrb3VcIDsKK+S6lOebrumjryA8IGdvbW9rdW1lc2hpXCA7CivosqLniakgPCBtaXRzdWdpbW9ub1wgOwor54++6YeR5q2j5L6hIDwgZ2Vua2luc2Vpa2FcIDsKK+aOoeaOmOaoqSA8IHNhaWt1dHN1a2VuXCA7CivlpKflkIzlsI/nlbAgPCBkYWlkb3VzaG91aVwgOwor55Sf5ZG95YCr55CGIDwgc2VpbWVpcmlucmlcIDsKK+WFqOW5heeahCA8IHplbnB1a3V0ZWtpXCA7Civpp4bli5Xoo4Xnva4gPCBrdWRvdXNvdWNoaVwgOwor5b2r5Yi75YiAIDwgY2hvdWtva3V0b3VcIDsKK+WNg+i7jeS4h+mmrCA8IHNlbmd1bmJhbmJhXCA7CivlpInlubvoh6rlnKggPCBoZW5nZW5qaXphaVwgOwor56CU56m25b+DIDwga2Vua3l1dXNoaW5cIDsKK+ebuOWvvuS4u+e+qSA8IHNvdXRhaXNodWdpXCA7Civni6zljaDnmoQgPCBkb2t1c2VudGVraVwgOwor6YW45Lit5q+SIDwgc2FuY2h1dWRva3VcIDsKK+i7jeWMu+WtpuagoSA8IGd1bicnaWdha2tvdVwgOwor6LaF5paw5pifIDwgY2hvdXNoaW5zZWlcIDsKK+mDveawkeS8mumkqCA8IHRvbWlua2Fpa2FuXCA7CivluILloLTkvqHlgKQgPCBzaGlqb3VrYWNoaVwgOwor6aCC5oi054mpIDwgY2hvdWRhaW1vbm9cIDsKK+W5s+WSjOirluiAhSA8IGhlaXdhcm9uc2hhXCA7Civlrr/ms4rmiYAgPCBzaHVrdWhha3Vqb1wgOwor5bC/57Sg5qi56ISCIDwgbnlvdXNvanVzaGlcIDsKK+WjsuWNtOebiiA8IGJhaWt5YWt1ZWtpXCA7CivmjoPpmaTlvZPnlaogPCBzb3VqaXRvdWJhblwgOwor5qeL6YCg5byPIDwga291em91c2hpa2lcIDsKK+S7o+eQhuaIpuS6iSA8IGRhaXJpc2Vuc291XCA7Civku6PooajkvZwgPCBkYWloeW91c2FrdVwgOwor5Zyw55uk5rKI5LiLIDwgamliYW5jaGlua2FcIDsKK+ani+aIkOS4u+e+qSA8IGtvdXNlaXNodWdpXCA7CivmraPlpJrpnaLkvZMgPCBzZWl0YW1lbnRhaVwgOwor6YGO5aSx54qvIDwga2FzaGl0c3VoYW5cIDsKK+e0meS4gOaemiA8IGthbWlpY2hpbWFpXCA7Civkv53nqI7lnLDln58gPCBob3plaWNoaWlraVwgOwor5YaN6KqN6K2YIDwgc2Fpbmluc2hpa2lcIDsKK+S6uuWToeaVtOeQhiA8IGppbicnaW5zZWlyaVwgOwor6aKo54mp6KmpIDwgZnV1YnV0c3VzaGlcIDsKK+S6uumWk+S7peWJjSA8IG5pbmdlbicnaXplblwgOwor5a6f6Zai5pWwIDwgaml0c3VrYW5zdXVcIDsKK+Wkp+WlveeJqSA8IGRhaWtvdWJ1dHN1XCA7CivkubPmv4HmtrIgPCBueXV1ZGFrdWVraVwgOwor5rC05Ya35byPIDwgc3VpcmVpc2hpa2lcIDsKK+W5s+mdouWbs+W9oiA8IGhlaW1lbnp1a2VpXCA7Civlv4PphY3mgKcgPCBzaGlucGFpc2hvdVwgOwor5a6i5a6kIDwga3lha3VzaGl0c3VcIDsKK+Wuh+WumeaXheihjCA8IHVjaHV1cnlva291XCA7Civlvozlp4vmnKsgPCBhdG9zaGltYXRzdVwgOwor5YWo5Yui5YqbIDwgemVuc2Vpcnlva3VcIDsKK+iNmOWckuWItuW6piA8IHNob3VlbnNlaWRvXCA7Civpm6Llv4PnjocgPCByaXNoaW5yaXRzdVwgOwor5L6b57Wm5rqQIDwga3lvdWt5dXVnZW5cIDsKK+iHquekvuijveWTgSA8IGppc2hhc2VpaGluXCA7CivliJ3mnJ/mrrXpmo4gPCBzaG9raWRhbmthaVwgOwor5YmN6YCU6YG86YGgIDwgemVudG9yeW91ZW5cIDsKK+Wkp+aWh+evgCA8IGRhaWJ1bnNldHN1XCA7CivkuIDlpJzlprsgPCBoaXRveW9kenVtYVwgOwor57WQ5ZCI5a2QIDwga2V0c3Vnb3VzaGlcIDsKK+atu+S6oeeOhyA8IHNoaWJvdXJpdHN1XCA7CivmmYLlsYDmn4QgPCBqaWt5b2t1Z2FyYVwgOwor6LWk6JGh6JCE6YWSIDwgYWthYnVkb3VzaHVcIDsKK+WOn+Wni+aZguS7oyA8IGdlbnNoaWppZGFpXCA7CivphY3lvZPnjocgPCBoYWl0b3VyaXRzdVwgOwor5pW06aqo5birIDwgc2Vpa290c3VzaGlcIDsKK+WPguisgOacrOmDqCA8IHNhbmJvdWhvbmJ1XCA7CivlpbPlrZDlpKfnlJ8gPCBqb3NoaWRhaXNlaVwgOwor6Zai56iO546HIDwga2FuemVpcml0c3VcIDsKK+aOkuWklumBi+WLlSA8IGhhaWdhaXVuZG91XCA7CivkuK3mr5LmrbsgPCBjaHV1ZG9rdXNoaVwgOwor5rC05bmz6aOb6KGMIDwgc3VpaGVpaGlrb3VcIDsKK+acgOWJjeWIlyA8IHNhaXplbnJldHN1XCA7CivkvY7lm57otqPlkbMgPCB0ZWlrYWlzaHVtaVwgOwor5LqS5oG16LK/5piTIDwgZ29rZWlib3Vla2lcIDsKK+S6uumWk+S7peS4iiA8IG5pbmdlbicnaWpvdVwgOwor5b6h5omA6LuKIDwgZ29zaG9ndXJ1bWFcIDsKK+WCsuaFoueEoeekvCA8IGdvdW1hbmJ1cmVpXCA7Civkurrmn7EgPCBoaXRvYmFzaGlyYVwgOwor5rOV5YuZ5aeU5ZOh5LyaIDwgaG91bXVpaW5rYWlcIDsKK+WGheabsueQgyA8IG5haWt5b2treXV1XCA7CivlvpLmiYvnqbrmi7MgPCB0b3NodWt1dWtlblwgOwor5Lqc54Kt5YyW54mpIDwgYXRhbmthYnV0c3VcIDsKK+awtOazs+Wkp+S8miA8IHN1aWVpdGFpa2FpXCA7Civop6PmlaPoqqwgPCBrYWlzYW5zZXRzdVwgOwor55S35aWz5ZCM5qipIDwgZGFuam9kb3VrZW5cIDsKK+W5tOmHkeWItuW6piA8IG5lbmtpbnNlaWRvXCA7Civnqbrou43ln7rlnLAgPCBrdXVndW5raWNoaVwgOwor5aSn5ZKM5pmC5LujIDwgeWFtYXRvamlkYWlcIDsKK+W7uumAoOeJqSA8IGtlbnpvdWJ1dHN1XCA7CivluJ3njovliIfplosgPCB0ZWlvdXNla2thaVwgOwor54yu6KGA6LuKIDwga2Vua2V0c3VzaGFcIDsKK+Wwj+WTgembhiA8IHNob3VoaW5zaHV1XCA7CivpnIrlronlrqQgPCByZWlhbnNoaXRzdVwgOwor5Y+N5pS/5bqc5YWaIDwgaGFuc2VpZnV0b3VcIDsKK+mbouedgOmZuCA8IHJpY2hha3VyaWt1XCA7CivohIrpu4TpnZLpuJrlk6UgPCBzZWtpc2VpaW5rb1wgOwor5q2v56eR55eF6ZmiIDwgc2hpa2FieW91aW5cIDsKK+mrmOmHjuiBliA8IGtvdXlhaGlqaXJpXCA7CivovInosqjlsa/mlbAgPCBzYWlrYXRvbnN1dVwgOwor5pW06auq5YmkIDwgc2VpaGF0c3V6YWlcIDsKK+WHpuS4luihkyA8IHNob3NlaWp1dHN1XCA7Civoq5boqqzlp5Tlk6EgPCByb25zZXRzdWlpblwgOwor5Yud5omL5qyh56ysIDwga2F0dGVzaGlkYWlcIDsKK+epuuaMuumaiuWToSA8IGt1dXRlaXRhaWluXCA7Civoh6rnlLHntYzmuIggPCBqaXl1dWtlaXphaVwgOwor5peX6aCtIDwgaGF0YWdhc2hpcmFcIDsKK+WtkOW5tCA8IG5lenVtaWRvc2hpXCA7CivlhavluaHlrq4gPCBoYWNoaW1hbmd1dVwgOwor6LKh5pS/56C057a7IDwgemFpc2VpaGF0YW5cIDsKK+atjOWUseWKmyA8IGthc2hvdXJ5b2t1XCA7Civlm57mipjmkI0gPCBrYWlzZXRzdXNvblwgOwor5pS/5rK754yu6YeRIDwgc2VpamlrZW5raW5cIDsKK+mqqOS7leS6iyA8IGhvbmVzaGlnb3RvXCA7Civoh4bnl4XogIUgPCBva3VieW91bW9ub1wgOwor5peL6aKoIDwgdHN1bXVqaWthemVcIDsKK+aJi+mWk+S7leS6iyA8IHRlbWFzaGlnb3RvXCA7CivkuIDmnKzli53osqAgPCBpcHBvbnNob3VidVwgOwor5pyd6aOv5YmNIDwgYXNhbWVzaGltYWVcIDsKK+izquWunyA8IHNoaXRzdWppdHN1XCA7CivliIrooYzniakgPCBrYW5rb3VidXRzdVwgOwor55y86Y+h5qmLIDwgbWVnYW5lYmFzaGlcIDsKK+izvOWFpeWFiCA8IGtvdW55dXVzYWtpXCA7CivkuK3pgJTljYrnq68gPCBjaHV1dG9oYW5wYVwgOwor6YCa6YGO5YSA56S8IDwgdHN1dWthZ2lyZWlcIDsKK+S4vOeJqSA8IGRvbmJ1cmltb25vXCA7CivlvJjku4HmoLwgPCBrb3VuaW5reWFrdVwgOwor6Iux5a2X6ZuG5ZCIIDwgZWlqaXNodXVnb3VcIDsKK+e9suWQjemBi+WLlSA8IHNob21laXVuZG91XCA7CivloZHmgKfmjIfmlbAgPCBzb3NlaXNoaXN1dVwgOwor5ZCI5ZCM5Yq057WEIDwgZ291ZG91cm91c29cIDsKK+adluafsSA8IHRzdWVoYXNoaXJhXCA7Civml6flpKfpmbggPCBreXV1dGFpcmlrdVwgOwor5Li7566h5qmf6ZaiIDwgc2h1a2Fua2lrYW5cIDsKK+Wkqeawl+mDveWQiCA8IHRlbmtpdHN1Z291XCA7CivlhbXlmajlt6XloLQgPCBoZWlraWtvdWpvdVwgOwor5LiL5568IDwgc2hpdGFtYWJ1dGFcIDsKK+iouuWvn+aXpSA8IHNoaW5zYXRzdWJpXCA7CivlubPmsJHkuLvnvqkgPCBoZWltaW5zaHVnaVwgOwor5a625peP5Lya6K2wIDwga2F6b2t1a2FpZ2lcIDsKK+adseWuruiBtyA8IHRvdWd1dXNob2t1XCA7CivmuJvlgrXln7rph5EgPCBnZW5zYWlraWtpblwgOwor6K2m5a+f572yIDwga2Vpc2F0c3VzaG9cIDsKK+WGl+irh+WPoyA8IGpvdWRhbmd1Y2hpXCA7CivnuZTnianllYYgPCBvcmltb25vc2hvdVwgOwor56WW5YWI5bSH5oudIDwgc29zZW5zdXVoYWlcIDsKK+WFq+i+uuW9oiA8IGhhY2hpaGVua2VpXCA7Civph53ku5XkuosgPCBoYXJpc2hpZ290b1wgOwor5LqL5aSn5oCd5oOzIDwgamlkYWlzaGlzb3VcIDsKK+WlveS6uueJqSA8IGtvdWppbmJ1dHN1XCA7CivlnLDloLTnlKPmpa0gPCBqaWJhc2FuZ3lvdVwgOwor5b6B5pyN5qyyIDwgc2VpZnVrdXlva3VcIDsKK+mAo+mCpuWbveWutiA8IHJlbnBvdWtva2thXCA7Civnq4vmhrLkuLvnvqkgPCByaWtrZW5zaHVnaVwgOwor5p2J5p6XIDwgc3VnaWJheWFzaGlcIDsKK+ino+iqrOiAhSA8IGthaXNldHN1c2hhXCA7CivluoPlkYrmpa0gPCBrb3Vrb2t1Z3lvdVwgOwor5YWr5pa5576O5Lq6IDwgaGFwcG91YmlqaW5cIDsKK+WJteeri+iAhSA8IHNvdXJpdHN1c2hhXCA7Civop6PnhrHolqwgPCBnZW5ldHN1eWFrdVwgOwor5pel5puc54mIIDwgbmljaGl5b3ViYW5cIDsKK+aWsOW/q+mAnyA8IHNoaW5rYWlzb2t1XCA7CivlsYvmoLnoo4/pg6jlsYsgPCB5YW5ldXJhYmV5YVwgOwor5LiW55WM5oOF5YuiIDwgc2VrYWlqb3VzZWlcIDsKK+S4jeW/q+aMh+aVsCA8IGZ1a2Fpc2hpc3V1XCA7CivpgaDmtIvoiKrot68gPCBlbicneW91a291cm9cIDsKK+S4reW5tOiAhSA8IGNodXVuZW5tb25vXCA7Civlm73lrrbntYzmuIggPCBrb2trYWtlaXphaVwgOwor5oi05Yag5byPIDwgdGFpa2Fuc2hpa2lcIDsKK+iHqOaZguWil+WIiiA8IHJpbmppem91a2FuXCA7Civou73mpa3luKsgPCBrYXJ1d2F6YXNoaVwgOwor5Lit5b+D5ZywIDwgY2h1dXNoaW5jaGlcIDsKK+WVhuaFo+e/kiA8IHNob3VrYW5zaHV1XCA7CivnlJ/nianmiKYgPCBzZWlidXRzdXNlblwgOwor5pWR5oCl5rOVIDwga3l1dWt5dXVob3VcIDsKK+mjn+WJjemFkiA8IHNob2t1emVuc2h1XCA7CivlhazmrablkIjkvZMgPCBrb3VidWdhdHRhaVwgOwor5rex5aSc5pePIDwgc2hpbicneWF6b2t1XCA7CivkuojorprmnKznt5ogPCB5b3NhbmhvbnNlblwgOwor5qC55pys5Li7576pIDwga29ucG9uc2h1Z2lcIDsKK+i/q+aSg+egsiA8IGhha3VnZWtpaG91XCA7CivpnZ7luLjorabmiJIgPCBoaWpvdWtlaWthaVwgOwor5Lit5aSu5pS/5bqcIDwgY2h1dW91c2VpZnVcIDsKK+mAsui7jeS4rSA8IHNoaW5ndW5jaHV1XCA7CivlqpLphYzkurogPCBiYWlzaGFrdW5pblwgOwor5Lih5oCn55qEIDwgcnlvdXNlaXRla2lcIDsKK+WIuueKtueqgei1tyA8IHNoaWpvdXRva2tpXCA7CivmvZzli6LlipsgPCBzZW5zZWlyeW9rdVwgOwor5YWs55qE5om25YqpIDwga291dGVraWZ1am9cIDsKK+WQiOaIkOaoueiEgiA8IGdvdXNlaWp1c2hpXCA7CivlibLos6bos7zosrcgPCBrYXBwdWtvdWJhaVwgOwor5L+d5YGl5a6kIDwgaG9rZW5zaGl0c3VcIDsKK+W6g+WRiuaWmSA8IGtvdWtva3VyeW91XCA7CivpgJ/lipvluqYgPCBzb2t1cnlva3Vkb1wgOwor55uG5o+Q54GvIDwgYm9uZGpvdWNoaW5cIDsKK+acquadpeaMh+WQkSA8IG1pcmFpc2hpa291XCA7Civoh6rnlLHmlL7ku7sgPCBqaXl1dWhvdW5pblwgOwor6Ieq6Lui5ZGo5pyfIDwgaml0ZW5zaHV1a2lcIDsKK+iBtOelnue1jCA8IGNob3VzaGlua2VpXCA7CivotoXlpKflm70gPCBjaG91dGFpa29rdVwgOwor5Ye654mI5YWDIDwgc2h1cHBhbm1vdG9cIDsKK+mmrOm5v+WKmyA8IGJha2FkamlrYXJhXCA7Civoh6rlt7HkuLvlvLUgPCBqaWtvc2h1Y2hvdVwgOwor5pmS6ICFIDwgc2FyYXNoaW1vbm9cIDsKK+mZuOWNiueQgyA8IHJpa3VoYW5reXV1XCA7CivljYPoqIDkuIfoqp4gPCBzZW5nZW5iYW5nb1wgOwor57Wx546H6ICFIDwgdG91c290c3VzaGFcIDsKK+WFrOWFseW/gyA8IGtvdWt5b3VzaGluXCA7CivlvpLmrannq7botbAgPCB0b2hva3lvdXNvdVwgOwor6Kaq5ZaE6Kmm5ZCIIDwgc2hpbnplbmppYWlcIDsKK+eqkue0oOWbuuWumiA8IGNoaXNzb2tvdGVpXCA7CivkuK3lhbHou40gPCBjaHV1a3lvdWd1blwgOwor5ryC55m95YmkIDwgaHlvdWhha3V6YWlcIDsKK+WPjuWFpea6kCA8IHNodXVueXV1Z2VuXCA7CivmtbfkuIrkv53pmbogPCBrYWlqb3Vob2tlblwgOwor5q6/5qeY6aKoIDwgdG9ub3NhbWFmdXVcIDsKK+W/g+mFjeS6iyA8IHNoaW5wYWlnb3RvXCA7Civpo5vooYznlLLmnb8gPCBoaWtvdWtvdWJhblwgOwor5oyH5bCO5Li75LqLIDwgc2hpZG91c2h1amlcIDsKK+ebuOS6kumKgOihjCA8IHNvdWdvZ2lua291XCA7Civou43lj7jku6Tpg6ggPCBndW5zaGlyZWlidVwgOwor6Ku45LqL5LiH56uvIDwgc2hvamliYW50YW5cIDsKK+WKtOeBveS/nemZuiA8IHJvdXNhaWhva2VuXCA7CivlpKrpmb3nhrEgPCB0YWl5b3VuZXRzdVwgOwor5Yik5rG65paHIDwgaGFua2V0c3VidW5cIDsKK+aZgui8qumHkeWJmyA8IGppcmlua29uZ291XCA7CivmhI/msJfpirfmsoggPCBpa2lzaG91Y2hpblwgOwor5L+h5Luw55qEIDwgc2hpbmtvdXRla2lcIDsKK+iGneaLjeWtkCA8IGhpemFieW91c2hpXCA7CivplqLnqI7lm57pgb8gPCBrYW56ZWlrYWloaVwgOwor55uy55uu55qEIDwgbW91bW9rdXRla2lcIDsKK+elnumAmuWKmyA8IGppbnRzdXVyaWtpXCA7CivlhbHlkozkuLvnvqkgPCBreW91d2FzaHVnaVwgOwor5oGQ5aa755eFIDwga3lvdXNhaWJ5b3VcIDsKK+mYv+Wkmuemj+miqOmCqiA8IG90YWZ1a3VrYXplXCA7CivkuojpmLLmiKbkuokgPCB5b2JvdXNlbnNvdVwgOwor6YW45oCn5Zyf5aOMIDwgc2Fuc2VpZG9qb3VcIDsKK+W/oOWun+W6piA8IGNodXVqaXRzdWRvXCA7Civkv6Hku7vnirYgPCBzaGluJyduaW5qb3VcIDsKK+S6uui6q+S/neittyA8IGppbnNoaW5ob2dvXCA7CivkuK3mn7EgPCBuYWthYmFzaGlyYVwgOwor5paw5Y+C6ICFIDwgc2hpbnphbm1vbm9cIDsKK+W5tOmHkeS/nemZuiA8IG5lbmtpbmhva2VuXCA7CivmjIflkJHoqIDoqp4gPCBzaGlrb3VnZW5nb1wgOwor5beh5p+76YOo6ZW3IDwganVuc2FidWNob3VcIDsKK+ecn+eKr+S6uiA8IHNoaW5oYW4nJ25pblwgOwor54u454i6IDwgdGFudWtpamlqaWlcIDsKK+S/neiovOacn+mWkyA8IGhvc2hvdWtpa2FuXCA7CivkuI3ms5Xnm6PnpoEgPCBmdWhvdWthbmtpblwgOwor5b6h6Ium5Yq05qeYIDwgZ29rdXJvdXNhbWFcIDsKK+itpuWvn+eKrCA8IGtlaXNhdHN1a2VuXCA7Civoh6rmsrvlpKfoh6MgPCBqaWNoaWRhaWppblwgOwor56uL5L2T5Lqk5beuIDwgcml0dGFpa291c2FcIDsKK+ernOmgreibh+WwviA8IHJ5dXV0b3VkYWJpXCA7CivlhYXpm7vmnJ/plpMgPCBqdXVkZW5raWthblwgOwor5Y+i5pmC6ZuoIDwgbXVyYXNoaWd1cmVcIDsKK+a1t+mjn+a0niA8IGthaXNob2t1ZG91XCA7CivoqJjmhrblqpLkvZMgPCBraW9rdWJhaXRhaVwgOwor5auh5a6kIDwgY2hha3VzaGl0c3VcIDsKK+WPguWIl+iAhSA8IHNhbnJldHN1c2hhXCA7CivppIrorbfmlZnoq60gPCB5b3Vnb2t5b3V5dVwgOwor5Lq65pys5Li7576pIDwgamlucG9uc2h1Z2lcIDsKK+a1t+a0i+aKleajhCA8IGthaXlvdXRvdWtpXCA7CivnlJ/nianlnI8gPCBzZWlidXRzdWtlblwgOwor5L6b57Wm5ZywIDwga3lvdWt5dXVjaGlcIDsKK+W5sua4iee4niA8IGthbnNob3VqaW1hXCA7Civni6zlibXnmoQgPCBkb2t1c291dGVraVwgOwor5LiN6ZqP5oSP6YGL5YuVIDwgZnV6dWlpdW5kb3VcIDsKK+WSjOatjOWxseecjCA8IHdha2F5YW1ha2VuXCA7CivlpKrpmb3pm7vms6IgPCB0YWl5b3VkZW5wYVwgOwor55CG56eR5aSn5a2mIDwgcmlrYWRhaWdha3VcIDsKK+afk+iJsuS9kyA8IHNlbnNob2t1dGFpXCA7CivluqfpoK3pr6ggPCB6YXRvdWt1amlyYVwgOwor6L+R6KGb5bir5ZujIDwga29ub2VzaGlkYW5cIDsKK+S4gOiho+W4r+awtCA8IGljaGlpdGFpc3VpXCA7Civos4fmnKzkuLvnvqkgPCBzaGlob25zaHVnaVwgOwor54uQ54y/IDwga2l0c3VuZXphcnVcIDsKK+iHqueUsee1kOWpmiA8IGppeXV1a2Vra29uXCA7Civlv4XpoIjnp5Hnm64gPCBoaXNzdWthbW9rdVwgOwor6L+R5Luj5Li7576pIDwga2luZGFpc2h1Z2lcIDsKK+adseWMlyA8IGhpZ2FzaGlraXRhXCA7CivlrojorbflpKnkvb8gPCBzaHVnb3RlbnNoaVwgOwor5pel5pys6Kqe5paH5a2XIDwgbmlob25nb21vamlcIDsKK+S9nOalremDqOS8miA8IHNhZ3lvdWJ1a2FpXCA7Civpg73luILlho3nlJ8gPCB0b3NoaXNhaXNlaVwgOwor55uu55qE6KuWIDwgbW9rdXRla2lyb25cIDsKK+ecgeeVpeaZgiA8IHNob3VyeWFrdWppXCA7CivkuIPmnIggPCBzaGljaGlnYXRzdVwgOwor5bm855Sf5Zmo5a6YIDwgeW91c2Vpa2lrYW5cIDsKK+W+oeeUqOe1hOWQiCA8IGdveW91a3VtaWFpXCA7Civou43kuovmvJTnv5IgPCBndW5qaWVuc2h1dVwgOwor55+z54Kt5q67IDwgc2VraXRhbmdhcmFcIDsKK+WIhuijguaApyA8IGJ1bnJldHN1c2VpXCA7Civnn63nuK7lvaIgPCB0YW5zaHVrdWtlaVwgOwor5Lq66YGT5Li7576pIDwgamluZG91c2h1Z2lcIDsKK+WJjeWPsuaZguS7oyA8IHplbnNoaWppZGFpXCA7CivmtbfkuIrlsIHpjpYgPCBrYWlqb3VmdXVzYVwgOwor5pyJ6IG36ICFIDwgeXV1c2hva3VzaGFcIDsKK+aEj+WRs+a3semVtyA8IGltaXNoaW5jaG91XCA7CivkuIDmmJQgPCBoaXRvbXVrYXNoaVwgOwor6Kaq5ZKM5YqbIDwgc2hpbndhcnlva3VcIDsKK+S6pOmAmumBleWPjSA8IGtvdXRzdXVpaGFuXCA7CivlhYjjgIXmnIggPCBzZW5zZW5nZXRzdVwgOwor5Zub5Y2B5YWr5omLIDwgeW9uanV1aGF0dGVcIDsKK+aJi+W3u+Wvv+WPuCA8IHRlbWFraXp1c2hpXCA7CivmnInkvZPniakgPCB5dXV0YWlidXRzdVwgOwor5p2x5YG0IDwgaGlnYXNoaWdhd2FcIDsKK+efree1oeeahCA8IHRhbnJha3V0ZWtpXCA7CivlhazplovorJvluqcgPCBrb3VrYWlrb3V6YVwgOwor54mH6KiA6Zq75Y+lIDwgaGVuZ2Vuc2Vra3VcIDsKK+mtheWKm+eahCA8IG1pcnlva3V0ZWtpXCA7CivljJblrablvI8gPCBrYWdha3VzaGlraVwgOwor5LiA5pKuIDwgaGl0b3RzdW1hbWlcIDsKK+WkqumZveaXpSA8IHRhaXlvdWppdHN1XCA7Civpq5jplqLnqI7ljJYgPCBrb3VrYW56ZWlrYVwgOwor6YGL6YCB5Lya56S+IDwgdW5zb3VnYWlzaGFcIDsKK+adseWuruW+oeaJgCA8IHRvdWd1dWdvc2hvXCA7Civlu7bmu57liKnmga8gPCBlbnRhaXJpc29rdVwgOwor6YeO55CD54axIDwgeWFreXV1bmV0c3VcIDsKK+eBq+eBveitpuWgsSA8IGthc2Fpa2VpaG91XCA7Civpo77ku5ggPCBrYXphcml0c3VrZVwgOwor57eP5oyH5o+u5a6YIDwgc291c2hpa2lrYW5cIDsKK+aUvumAgeaZgumWkyA8IGhvdXNvdWppa2FuXCA7CivnhrHmsJfnkIMgPCBuZXRzdWtpa3l1dVwgOwor56m65oOz5YqbIDwga3V1c291cnlva3VcIDsKK+acieWus+eEoeebiiA8IHl1dWdhaW11ZWtpXCA7CivpnZnlsqHnnIwgPCBzaGl6dW9rYWtlblwgOwor5amm5Lq65ZWP6aGMIDwgZnVqaW5tb25kYWlcIDsKK+aZtOiAlembqOiqrSA8IHNlaWtvdXVkb2t1XCA7Civlj43pgIbkurogPCBoYW5neWFrdW5pblwgOwor5p+T6auq5YmkIDwgc2VucGF0c3V6YWlcIDsKK+WFqOi6q+eXhSA8IHplbnNoaW5ieW91XCA7CivkuI3mlofmhrLms5UgPCBmdWJ1bmtlbnBvdVwgOwor6IW56Kmx6KGTIDwgZnVrdXdhanV0c3VcIDsKK+S4gOWvuOazleW4qyA8IGlzc3VuYm91c2hpXCA7Civlj6/og73li5XoqZ4gPCBrYW5vdWRvdXNoaVwgOwor5rWB6YeP6KiIIDwgcnl1dXJ5b3VrZWlcIDsKK+WujOWFqOmbh+eUqCA8IGthbnplbmtveW91XCA7Civnt5rnuZTpnaIgPCBzZW5zaGlraW1lblwgOwor5a6M57WQ57eoIDwga2Fua2V0c3VoZW5cIDsKK+WJr+m8u+iFlOeCjiA8IGZ1a3ViaWt1dWVuXCA7CivlrabnlJ/oqLwgPCBnYWt1c2Vpc2hvdVwgOwor6YCg5bmj5bGAIDwgem91aGVpa3lva3VcIDsKK+iqrOaYjuabuCA8IHNldHN1bWVpc2hvXCA7Civoh6rntabnjocgPCBqaWt5dXVyaXRzdVwgOwor5aSa5YWD5pS+6YCBIDwgdGFnZW5ob3Vzb3VcIDsKK+aJk+eJqeW4qyA8IHVjaGltb25vc2hpXCA7CivmsJfmga/lpYTlpYQgPCBraXNva3VlbicnZW5cIDsKK+aDqOauuuiAhSA8IHphbnNhdHN1c2hhXCA7Civno6/lt77nnYAgPCBpc29naW5jaGFrdVwgOwor6YeI6L+m5aaC5p2lIDwgc2hha2FueW9yYWlcIDsKK+S6iOe0hOWQjeewvyA8IHlveWFrdW1laWJvXCA7CivoqLzkurrluK0gPCBzaG91bmluc2VraVwgOwor5auh5Ye6IDwgY2hha3VzaHV0c3VcIDsKK+S4jeiyt+WQjOebnyA8IGZ1YmFpZG91bWVpXCA7CivkuIvlv4MgPCBzaGl0YWdva29yb1wgOwor6Iul55m96auqIDwgd2FrYXNoaXJhZ2FcIDsKK+mdnuiyt+WQjOebnyA8IGhpYmFpZG91bWVpXCA7CivmlbDlrabnmoQgPCBzdXVnYWt1dGVraVwgOwor55u05YaG5p+xIDwgY2hva3VlbmNodXVcIDsKK+iqrOaYjuaWhyA8IHNldHN1bWVpYnVuXCA7Civnm7jlr77mlazoqp4gPCBzb3V0YWlrZWlnb1wgOwor57WM5riI54m55Yy6IDwga2VpemFpdG9ra3VcIDsKK+S7u+aEj+Wbo+S9kyA8IG5pbicnaWRhbnRhaVwgOwor5rC055Sj54mpIDwgc3Vpc2FuYnV0c3VcIDsKK+aOpeaVteenu+WLlSA8IHNldHRla2lpZG91XCA7CivmlZnliYfmnKwgPCBreW91c29rdWJvblwgOwor6bCl5a+h5a2k54usIDwga2Fua2Frb2Rva3VcIDsKK+S5meWls+W/gyA8IG90b21lZ29rb3JvXCA7Civnm7jlr77lo7LosrcgPCBhaXRhaWJhaWJhaVwgOwor54Sh5Lq65bel5aC0IDwgbXVqaW5rb3Vqb3VcIDsKK+aIpuWLneWbvSA8IHNlbnNob3Vrb2t1XCA7CivljZfljJfmnJ0gPCBuYW5ib2t1Y2hvdVwgOwor5aSP6KGjIDwgbmF0c3Vnb3JvbW9cIDsKK+W5u+aDs+absiA8IGdlbnNvdWt5b2t1XCA7CivkuI3mj5vntJnluaMgPCBmdWthbnNoaWhlaVwgOwor5peF6IiI6KGMIDwgdGFiaWtvdWd5b3VcIDsKK+ebuOS5l+S9nOeUqCA8IHNvdWpvdXNheW91XCA7CivkuojnrpfkuI3otrMgPCB5b3NhbmZ1c29rdVwgOwor6LGG6Zu755CDIDwgbWFtZWRlbmt5dXVcIDsKK+ino+iqrOabuCA8IGthaXNldHN1c2hvXCA7CivolqznkIbkvZznlKggPCB5YWt1cmlzYXlvdVwgOwor57+85omL55uuIDwgeW9rdXNodW1va3VcIDsKK+Wpmue0hOiAhSA8IGtvbicneWFrdXNoYVwgOwor54K65pu/566h55CGIDwga2F3YXNla2FucmlcIDsKK+mDoeW9ueaJgCA8IGd1bicneWFrdXNob1wgOwor55+l6K2Y5bGkIDwgY2hpc2hpa2lzb3VcIDsKK+S6i+WJjeWNlOitsCA8IGppc2Vua3lvdWdpXCA7CivljprpoZTnhKHmgaUgPCBrb3VnYW5tdWNoaVwgOwor5pKe5pyo6a6rIDwgc2h1bW9rdXphbWVcIDsKK+ehvOmFuOacqyA8IGhvdXNhbm1hdHN1XCA7Civlronlhajoo4Xnva4gPCBhbnplbnNvdWNoaVwgOwor5aaW6KGT6ICFIDwgeW91anV0c3VzaGFcIDsKK+S9meeZvemggSA8IHlvaGFrdXBlZWppXCA7CivntbHkuIDnmoQgPCB0b3VpdHN1dGVraVwgOwor56m65rCX5oSf5p+TIDwga3V1a2lrYW5zZW5cIDsKK+awtOmBk+W3peS6iyA8IHN1aWRvdWtvdWppXCA7CivkuIDntJnljYrpiq0gPCBpc3NoaWhhbnNlblwgOwor5Y+N5bCE6YGL5YuVIDwgaGFuc2hhdW5kb3VcIDsKK+i6q+manOiAhSA8IHNoaW5zaG91c2hhXCA7Civpo5/ljZPloakgPCBzaG9rdXRha3VlblwgOwor5YWr5a2X6autIDwgaGFjaGlqaWhpZ2VcIDsKK+W+qea0u+elrSA8IGZ1a2thdHN1c2FpXCA7CivkuLvnlKPniakgPCBzaHVzYW5idXRzdVwgOwor576O6KGT55qEIDwgYmlqdXRzdXRla2lcIDsKK+Whqemhnua6tua2siA8IGVucnVpeW91ZWtpXCA7Civnj43nj77osaEgPCBjaGluZ2Vuc2hvdVwgOwor5LiJ56ic6Y+hIDwgc2FucnlvdWt5b3VcIDsKK+WkluS6uumDqOmaiiA8IGdhaWppbmJ1dGFpXCA7Civmi53ph5HkuLvnvqkgPCBoYWlraW5zaHVnaVwgOwor5aSn6Zm45qOaIDwgdGFpcmlrdWRhbmFcIDsKK+auv+anmOiKuCA8IHRvbm9zYW1hZ2VpXCA7Civmtbfpo5/ltJYgPCBrYWlzaG9rdWdhaVwgOwor5YWD56aE6KKWIDwgZ2Vucm9rdXNvZGVcIDsKK+eVsOS9k+WQjOW/gyA8IGl0YWlkb3VzaGluXCA7CivkuZfmlbDlirnmnpwgPCBqb3VzdXVrb3VrYVwgOwor5YWo55ub5pmC5LujIDwgemVuc2VpamlkYWlcIDsKK+aWh+aVmeaXjyA8IGJ1bmt5b3V6b2t1XCA7CivpnaLlkJHkuI3og4wgPCBtZW5rb3VmdWhhaVwgOwor5bmz5ZKM57at5oyB6LuNIDwgaGVpd2FpamlndW5cIDsKK+a5v+W6puioiCA8IHNoaXRzdWRva2VpXCA7Civlj6zpm4bogIUgPCBzaG91c2h1dXNoYVwgOwor56m655CG56m66KuWIDwga3V1cmlrdXVyb25cIDsKK+WFq+alteaLsyA8IGhha2t5b2t1a2VuXCA7Civkv6Hku7Dlv4MgPCBzaGlua291c2hpblwgOwor5Lq65LiA5YCNIDwgaGl0b2ljaGliYWlcIDsKK+WQiOihhuWbvSA8IGdhc3NodXVrb2t1XCA7CivmqZ/plqLlrqQgPCBraWthbnNoaXRzdVwgOwor6Z2e5bi46ZqO5q61IDwgaGlqb3VrYWlkYW5cIDsKK+WCt+eXjei7jeS6uiA8IHNob3VpZ3VuamluXCA7CivlhrfljbTmtrIgPCByZWlreWFrdWVraVwgOwor5ryB542y6auYIDwgZ3lva2FrdWRha2FcIDsKK+WFrOeUqOeJqSA8IGtvdXlvdWJ1dHN1XCA7CivljZjnmbrpioMgPCB0YW5wYXRzdWp1dVwgOwor5LiN5ZecIDwgYnV0YXNoaW5hbWlcIDsKK+aciOizpuiyqeWjsiA8IGdlcHB1aGFuYmFpXCA7CivkuIfkuJbkuIDns7sgPCBiYW5zZWlpa2tlaVwgOwor56ys5LqM6YOo6ZW3IDwgZGFpbmlidWNob3VcIDsKK+mbgOicgiA8IHN1enVtZWJhY2hpXCA7CivooYzlhIDkvZzms5UgPCBneW91Z2lzYWhvdVwgOwor6YeN5Yqg566X56iOIDwganV1a2FzYW56ZWlcIDsKK+WGt+WNtOawtCA8IHJlaWt5YWt1c3VpXCA7CivnjK7nq4vooaggPCBrb25kYXRlaHlvdVwgOwor5LiA5b+D5LiN5LmxIDwgaXNzaGluZnVyYW5cIDsKK+i7jeS6i+ijgeWIpCA8IGd1bmppc2FpYmFuXCA7Civoi6XojYnoibIgPCB3YWtha3VzYWlyb1wgOwor54Wn5piO5Zmo5YW3IDwgc2hvdW1laWtpZ3VcIDsKK+S4ieWbveS4gCA8IHNhbmdva3VpY2hpXCA7CivnnaPkv4PnirYgPCB0b2t1c29rdWpvdVwgOwor5bGN6ZmA5p6X546LIDwgc2hpZGFyaW4nJ291XCA7Civku67lj5flj5YgPCBrYXJpdWtldG9yaVwgOwor6YGO5Y675a6M5LqGIDwga2Frb2thbnJ5b3VcIDsKK+aIpuW+jOasp+W3niA8IHNlbmdvb3VzaHV1XCA7CivooovlsI/ot68gPCBmdWt1cm9rb3VqaVwgOwor6K2m5a+f5a6YIDwga2Vpc2F0c3VrYW5cIDsKK+mmluiEs+S8muitsCA8IHNodW5vdWthaWdpXCA7Civlrrbluq3mlpnnkIYgPCBrYXRlaXJ5b3VyaVwgOwor5pel5pys6YqA6KGMIDwgbmlob25naW5rb3VcIDsKK+iHqueEtuW+iyA8IHNoaXplbnJpdHN1XCA7Civogbfli5nntaYgPCBzaG9rdW11a3l1dVwgOwor6YGg5Lqk6L+R5pS7IDwgZW5rb3VraW5rb3VcIDsKK+aXi+WbnumBi+WLlSA8IHNlbmthaXVuZG91XCA7CivnmYLppIrkuK0gPCByeW91eW91Y2h1dVwgOwor5ZCI5oiQ54mpIDwgZ291c2VpYnV0c3VcIDsKK+W4sOWbveWtkOWlsyA8IGtpa29rdXNoaWpvXCA7CivkuInooYzljYogPCBtaWt1ZGFyaWhhblwgOwor6KGM5pS/5a2mIDwgZ3lvdXNlaWdha3VcIDsKK+Wun+ihjOWKmyA8IGppa2tvdXJ5b2t1XCA7CivplbfngavpiaIgPCBuYWdhaGliYWNoaVwgOwor6ZuM6ZuE5reY5rGwIDwgc2hpeXV1dG91dGFcIDsKK+a1t+mjn+WPsCA8IGthaXNob2t1ZGFpXCA7Civpg7Xkvr/niakgPCB5dXViaW5idXRzdVwgOwor6YqA5pys5L2N5Yi2IDwgZ2luaG9uJydpc2VpXCA7CivnqbrmsJfmnpUgPCBrdXVraW1ha3VyYVwgOwor5aWo5a2m6YeRIDwgc2hvdWdha3VraW5cIDsKK+e1hOmgrSA8IGt1bWlnYXNoaXJhXCA7Civoh6rmpa3oh6rlvpcgPCBqaWdvdWppdG9rdVwgOwor5YWs55Sf5rS7IDwga291c2Vpa2F0c3VcIDsKK+mBruiUveeJqSA8IHNoYWhlaWJ1dHN1XCA7CivkuLvmoLzoo5zoqp4gPCBzaHVrYWt1aG9nb1wgOwor57W557mU54mpIDwga2ludW9yaW1vbm9cIDsKK+iKuOihk+irliA8IGdlaWp1dHN1cm9uXCA7CivlgpjlvaLlmajlrpggPCBzYW5rZWlraWthblwgOwor6Jas5Yq554mpIDwgeWFra291YnV0c3VcIDsKK+e3keiZqyA8IG1pZG9yaW11c2hpXCA7Civpm7vljJboo73lk4EgPCBkZW5rYXNlaWhpblwgOwor5bqt5LuV5LqLIDwgbml3YXNoaWdvdG9cIDsKK+izh+eUo+S+oeWApCA8IHNoaXNhbmthY2hpXCA7Civmgqros6rljJYgPCBha3VzaGl0c3VrYVwgOwor5Lit5aSu56u26aasIDwgY2h1dW91a2VpYmFcIDsKK+efpeitmOS6uiA8IGNoaXNoaWtpamluXCA7CivotaTlrZfosqHmlL8gPCBha2FqaXphaXNlaVwgOwor55m95YaF6ZqcIDwgaGFrdW5haXNob3VcIDsKK+aUv+ayu+S6oeWRvSA8IHNlaWppYm91bWVpXCA7CivkupTljYHlubTnpa0gPCBnb2p1dW5lbnNhaVwgOwor6YG65peP5bm06YeRIDwgaXpva3VuZW5raW5cIDsKK+S6uuW3peaghOmkiiA8IGppbmtvdWVpeW91XCA7Civmk6zlj6TlhbjnmoQgPCBnaWtvdGVudGVraVwgOwor5qW95aSp55qEIDwgcmFrdXRlbnRla2lcIDsKK+mbu+awl+S8muekviA8IGRlbmtpZ2Fpc2hhXCA7CivmsJfpmo/msJflhJggPCBraXp1aWtpbWFtYVwgOwor5Yil5YuY5a6aIDwgYmV0c3VrYW5qb3VcIDsKK+mHkeadk+WtkCA8IGthbmFqYWt1c2hpXCA7CivplbflpKfmga8gPCBjaG91dGFpc29rdVwgOwor6IG05Y+W5paZIDwgY2hvdXNodXJ5b3VcIDsKK+eEoeWPjeWLlemKgyA8IG11aGFuZG91anV1XCA7CivpgaDlv4PliIbpm6IgPCBlbnNoaW5idW5yaVwgOwor5aC05aSW6aas5Yi4IDwgam91Z2FpYmFrZW5cIDsKK+mdkuW5tOaZguS7oyA8IHNlaW5lbmppZGFpXCA7CivpoLjpnZnohIggPCBrZWlqb3VteWFrdVwgOwor5ryB542y6YePIDwgZ3lva2FrdXJ5b3VcIDsKK+iqnuWtpuWKmyA8IGdvZ2FrdXJ5b2t1XCA7CivmupblgpnlrqQgPCBqdW5iaXNoaXRzdVwgOwor5Lit5bm05aKXIDwgY2h1dWRvc2hpbWFcIDsKK+iHqueUseWVj+mhjCA8IGppeXV1bW9uZGFpXCA7CivmvKvnlLvpm5HoqowgPCBtYW5nYXphc3NoaVwgOwor5Lqc6Ymb5Lit5q+SIDwgYWVuY2h1dWRva3VcIDsKK+iDjOeti+WKmyA8IGhhaWtpbnJ5b2t1XCA7CivmiYDmnInniakgPCBzaG95dXVidXRzdVwgOwor56WW5YWI5Lyd5p2lIDwgc29zZW5kZW5yYWlcIDsKK+eUo+Wcn+elniA8IHVidXN1bmFnYW1pXCA7Civpm6rnpKsgPCB5dWtpdHN1YnV0ZVwgOwor5pqX6LWk6ImyIDwgYW5zZWtpc2hva3VcIDsKK+S7leeri+eJqSA8IHNoaXRhdGVtb25vXCA7CivkuIDlhZrmlK/phY0gPCBpdHRvdXNoaWhhaVwgOwor5peX5qiZIDwgaGF0YWppcnVzaGlcIDsKK+WkouePviA8IHl1bWV1dHN1dHN1XCA7CivkuIPlm57lv4wgPCBzaGljaGlrYWlraVwgOwor5Li76Kaz5Li7576pIDwgc2h1a2Fuc2h1Z2lcIDsKK+a6tuino+eGsSA8IHlvdWthaW5ldHN1XCA7CivnsbPljYHnspIgPCBrb21lanV1cnl1dVwgOwor5ZG85ZC45Zmo57O7IDwga29reXV1a2lrZWlcIDsKK+eJueazqOWTgSA8IHRva3VjaHV1aGluXCA7Civpm5vnpa0gPCBoaW5hbWF0c3VyaVwgOwor54K65pu/5oqV5qmfIDwga2F3YXNldG91a2lcIDsKK+S4gOefpeWNiuinoyA8IGl0Y2hpaGFua2FpXCA7CivkuI3lrprlhqDoqZ4gPCBmdXRlaWthbnNoaVwgOwor5Luj6K2w5pS/5L2TIDwgZGFpZ2lzZWl0YWlcIDsKK+W5s+WSjOaUu+WLoiA8IGhlaXdha291c2VpXCA7CivkvY7kvqHmoLzljJYgPCB0ZWlrYWtha3VrYVwgOwor5Y+k5paw6IGeIDwgZnVydXNoaW5idW5cIDsKK+mFjemBlOS6uiA8IGhhaXRhdHN1bmluXCA7CivkuqzkurrlvaIgPCBreW91bmluZ3lvdVwgOwor6IKY5o6b5qSF5a2QIDwgaGlqaWtha2Vpc3VcIDsKK+WFrOWLmeeBveWusyA8IGtvdW11c2FpZ2FpXCA7Civmma/msJflvqrnkrAgPCBrZWlraWp1bmthblwgOwor6Zai5L+C5rOV6KaPIDwga2Fua2VpaG91a2lcIDsKK+izgOipnuS6pOaPmyA8IGdhc2hpa291a2FuXCA7CivogJXlnLDmlbTnkIYgPCBrb3VjaGlzZWlyaVwgOwor5a6M57WQ5paHIDwga2Fua2V0c3VidW5cIDsKK+ihqOijj+S4gOS9kyA8IGh5b3VyaWl0dGFpXCA7Civlj43lr77oibIgPCBoYW50YWlzaG9rdVwgOwor5ZWG5ZOB5a2mIDwgc2hvdWhpbmdha3VcIDsKK+WltOmat+ino+aUviA8IGRvcmVpa2FpaG91XCA7CivlhaXlsITop5IgPCBueXV1c2hha2FrdVwgOwor5raI6Ziy5bqBIDwgc2hvdWJvdWNob3VcIDsKK+mYv+Wkmuemj+ixhiA8IG90YWZ1a3VtYW1lXCA7CivlpYfpupfmiYAgPCBraXJlaWRva29yb1wgOwor5aWz5pexIDwgb24nJ25haGlkZXJpXCA7CivlsbHlkLnoibIgPCB5YW1hYnVraWlyb1wgOwor5LyB5qWt5pW05YKZIDwga2lneW91c2VpYmlcIDsKK+i7jeS6i+ihjOWLlSA8IGd1bmppa291ZG91XCA7CivmiZPmkoPnjocgPCBkYWdla2lyaXRzdVwgOwor5Zyw5pa56Ieq5rK7IDwgY2hpaG91amljaGlcIDsKK+iri+axgumhjSA8IHNlaWt5dXVnYWt1XCA7Civnmb7lubTnpa0gPCBoeWFrdW5lbnNhaVwgOwor5LiW5L+X5Li7576pIDwgc2V6b2t1c2h1Z2lcIDsKK+mrmOeCree0oOmLvCA8IGtvdXRhbnNva291XCA7CivmipHnlZnogIUgPCB5b2t1cnl1dXNoYVwgOwor6aOf6YCj5pifIDwgc2hva3VyZW5zZWlcIDsKK+iQveacreWApCA8IHJha3VzYXRzdW5lXCA7Civoh6rnhLblipsgPCBzaGl6ZW5yeW9rdVwgOwor5pyJ5qmf6IKl5paZIDwgeXV1a2loaXJ5b3VcIDsKK+enmOabuOWupCA8IGhpc2hvc2hpdHN1XCA7CivljYPnp4vmpb0gPCBzZW5zaHV1cmFrdVwgOwor5q+U5L6L6YWN5YiGIDwgaGlyZWloYWlidW5cIDsKK+aOoueptuW/gyA8IHRhbmt5dXVzaGluXCA7Civlj43lr77pgYvli5UgPCBoYW50YWl1bmRvdVwgOwor5re75LuY5pu46aGeIDwgdGVucHVzaG9ydWlcIDsKK+aBi+aEm+mBiuaIryA8IHJlbicnYWl5dXVnaVwgOwor5Ymv56S+6ZW3IDwgZnVrdXNoYWNob3VcIDsKK+aKleWwhOWOn+eQhiA8IHRvdXNoYWdlbnJpXCA7CivlpKfoqIDlo67oqp4gPCB0YWlnZW5zb3Vnb1wgOwor5pyI5L6L5LyaIDwgZ2V0c3VyZWlrYWlcIDsKK+aVsOaXpemWkyA8IHN1dWppdHN1a2FuXCA7Civlkb3lkI3lvI8gPCBtZWltZWlzaGlraVwgOwor5oyH5bCO5YqbIDwgc2hpZG91cnlva3VcIDsKK+aEn+immueahCA8IGthbmtha3V0ZWtpXCA7Civph5HmnKzkvY3liLYgPCBraW5ob24nJ2lzZWlcIDsKK+mAoOiqnuaIkOWIhiA8IHpvdWdvc2VpYnVuXCA7Civlho3plovnmbogPCBzYWlrYWloYXRzdVwgOwor5YWl5a2m6ZujIDwgbnl1dWdha3VuYW5cIDsKK+WIhuaKmOWtpiA8IGJ1bnNla2lnYWt1XCA7Civnmb7np5Hovp7lhbggPCBoeWFra2FqaXRlblwgOwor6Iul6Lyp6ICFIDwgamFrdWhhaW1vbm9cIDsKK+S4h+S7o+S4jeaYkyA8IGJhbmRhaWZ1ZWtpXCA7CivluYXlpInoqr8gPCBoYWJhaGVuY2hvdVwgOwor5Y2x6Zm66KeS5bqmIDwga2lrZW5rYWt1ZG9cIDsKK+WMluWtpuWFteWZqCA8IGthZ2FrdWhlaWtpXCA7CivlpbPlv4MgPCBvbicnbmFnb2tvcm9cIDsKK+Wwj+aDkeaYnyA8IHNob3V3YWt1c2VpXCA7CivmvKLlrZfliLbpmZAgPCBrYW5qaXNlaWdlblwgOwor5bm05Yqf5Yi25bqmIDwgbmVua291c2VpZG9cIDsKK+S6uueJqeWDjyA8IGppbmJ1dHN1em91XCA7CivouoHprLHnl4UgPCBzb3V1dHN1YnlvdVwgOwor55u06Ly45YWlIDwgY2hva3V5dW55dXVcIDsKK+S/g+mAsuWJpCA8IHNva3VzaGluemFpXCA7CivmtbflupXngavlsbEgPCBrYWl0ZWlrYXphblwgOwor6ZqU6Z205o6755eSIDwga2Fra2Fzb3V5b3VcIDsKK+aPoemuqCA8IG5pZ2lyaXp1c2hpXCA7CivpvLvlh7rooYAgPCBiaXNodWtrZXRzdVwgOwor6Z2Z5b+DIDwgc2hpenVnb2tvcm9cIDsKK+mdnuaIpuirluiAhSA8IGhpc2Vucm9uc2hhXCA7CivmgKXpgLLlhZogPCBreXV1c2hpbnRvdVwgOwor5LiH5LiW5LiN5piTIDwgYmFuc2VpZnVla2lcIDsKK+WGjeeUn+e5iue2rSA8IHNhaXNlaXNlbicnaVwgOwor6YGL6Lui57O757WxIDwgdW50ZW5rZWl0b3VcIDsKK+S7u+aEj+WQjOihjCA8IG5pbicnaWRvdWtvdVwgOwor6Zqj55S6IDwgdG9uYXJpbWFjaGlcIDsKK+iHqOaZguWbveS8miA8IHJpbmppa29ra2FpXCA7CivoqabpqJPmnJ/plpMgPCBzaGlrZW5raWthblwgOwor6YeR5ama5byPIDwga2lua29uc2hpa2lcIDsKK+a6gOiJpumjviA8IG1hbmthbnNob2t1XCA7CivlubTlip/liqDkv7ggPCBuZW5rb3VrYWhvdVwgOwor5b+c5o+05Zuj6ZW3IDwgb3VlbmRhbmNob3VcIDsKK+Wkp+aZpiA8IG9vdHN1Z29tb3JpXCA7Civlgo3ov7fmg5EgPCBoYXRhbWVpd2FrdVwgOwor6LuN5Yy757eP55ujIDwgZ3VuJydpc291a2FuXCA7CivmmLzpo5/mmYIgPCBjaHV1c2hva3VqaVwgOwor6Iq46KGT56WtIDwgZ2VpanV0c3VzYWlcIDsKK+aFiOWWhOWbo+S9kyA8IGppemVuZGFudGFpXCA7Civoh6rnv5LmmYLplpMgPCBqaXNodXVqaWthblwgOwor5o+h6aOvIDwgbmlnaXJpbWVzaGlcIDsKK+WbveWutuijnOWEnyA8IGtva2thaG9zaG91XCA7Civnm5vogIXlv4XoobAgPCBzZWlqYWhpc3N1aVwgOwor5a2m55Sf5pyNIDwgZ2FrdXNlaWZ1a3VcIDsKK+S6uuaWh+S4u+e+qSA8IGppbmJ1bnNodWdpXCA7Civpm7voqbHnlarlj7cgPCBkZW53YWJhbmdvdVwgOwor5bCx5qWt5ZywIDwgc2h1dWd5b3VjaGlcIDsKK+ihqOekuueJqSA8IGh5b3VqaWJ1dHN1XCA7Civou6LlhaXnlJ8gPCB0ZW4nJ255dXVzZWlcIDsKK+eQhuirluS9k+ezuyA8IHJpcm9udGFpa2VpXCA7CivlhaXlrabph5EgPCBueXV1Z2FrdWtpblwgOwor5pel5pys5rW35rqdIDwgbmlob25rYWlrb3VcIDsKK+e1jOW4uOWIqeebiiA8IGtlaWpvdXJpZWtpXCA7CivpnanmlrDns7sgPCBrYWt1c2hpbmtlaVwgOwor5byV6LKs6L6e5Lu7IDwgaW5zZWtpamluaW5cIDsKK+mZvealtee3miA8IHlvdWt5b2t1c2VuXCA7Civlh7rmvJTogIUgPCBzaHV0c3VlbnNoYVwgOwor5Lya6K2w5a6kIDwga2FpZ2lzaGl0c3VcIDsKK+WHpuWls+iIqua1tyA8IHNob2pva291a2FpXCA7CivpmbjpgYvlsYAgPCByaWt1dW5reW9rdVwgOwor6L+95b606YeRIDwgdHN1aWNob3VraW5cIDsKK+auuuiPjOWKmyA8IHNha2tpbnJ5b2t1XCA7CivmipXlrr/ogIUgPCB0b3VzaHVrdXNoYVwgOwor5paw5bqB6IiOIDwgc2hpbmNob3VzaGFcIDsKK+WGt+WNtOWJpCA8IHJlaWt5YWt1emFpXCA7CivkuIDou5LkuIDou5IgPCBpa2tlbicnaWtrZW5cIDsKK+mBiuimp+WuoiA8IHl1dXJhbmt5YWt1XCA7Civpu4Tph5HomasgPCBrb2dhbmVtdXNoaVwgOwor5ZWP562U54Sh55SoIDwgbW9uZG91bXV5b3VcIDsKK+mBi+WRveirluiAhSA8IHVubWVpcm9uc2hhXCA7Civpu5Lmrbvnl4UgPCBrb2t1c2hpYnlvdVwgOwor6YO15L6/5bGAIDwgeXV1Ymlua3lva3VcIDsKK+iPnOeoruaihembqCA8IG5hdGFuZWR6dXl1XCA7CivoqrLlpJbmjojmpa0gPCBrYWdhaWp1Z3lvdVwgOwor5Y+N5bCE546HIDwgaGFuc2hhcml0c3VcIDsKK+mbo+awkeW4sOmChCA8IG5hbm1pbmtpa2FuXCA7Civlgbblg4/noLTlo4ogPCBndXV6b3VoYWthaVwgOwor5pWZ55qH5bqBIDwga3lvdWtvdWNob3VcIDsKK+iLpemzpeS4vCA8IHdha2Fkb3JpZG9uXCA7CivmjIfnpLroo4Xnva4gPCBzaGlqaXNvdWNoaVwgOwor5a6J5YWo5Zyw5bivIDwgYW56ZW5jaGl0YWlcIDsKK+iHquW3seikh+ijvSA8IGppa29mdWt1c2VpXCA7Civnvo7ooZPllYYgPCBiaWp1dHN1c2hvdVwgOwor5LuW5Lq66KGM5YSAIDwgdGFuaW5neW91Z2lcIDsKK+WIpOWumOi0lOWxkyA8IGhvdWdhbmJpaWtpXCA7Civmu7Tlrprph48gPCB0ZWtpdGVpcnlvdVwgOwor5Zyn5pC+56m65rCXIDwgYXNzYWt1a3V1a2lcIDsKK+elnuWtpuiAhSA8IHNoaW5nYWt1c2hhXCA7Civlr4bovLjlhaUgPCBtaXRzdXl1bnl1dVwgOwor5YGl5bq3566h55CGIDwga2Vua291a2FucmlcIDsKK+i4j+WIh+eVqiA8IGZ1bWlraXJpYmFuXCA7CivoqabpqJPpo5vooYwgPCBzaGlrZW5oaWtvdVwgOwor55Sf55Sj6YGO5YmwIDwgc2Vpc2Fua2Fqb3VcIDsKK+WJjeWlj+absiA8IHplbnNvdWt5b2t1XCA7CivogLPpvLvlkr3llonnp5EgPCBqaWJpaW5rb3VrYVwgOwor55Sf55CG5LyR5pqHIDwgc2VpcmlreXV1a2FcIDsKK+S6pOmam+WgtOijjyA8IGtvdXNhaWpvdXJpXCA7Civoo7jkuIDosqsgPCBoYWRha2Fpa2thblwgOwor5aWP6bO05puyIDwgc291bWVpa3lva3VcIDsKK+ixiuiCpeacrOe3miA8IGhvdWhpaG9uc2VuXCA7Civnp4HnlJ/mtLsgPCBzaGlzZWlrYXRzdVwgOwor57Sr6ImyIDwgbXVyYXNha2lpcm9cIDsKK+WIpOaWreimj+a6liA8IGhhbmRhbmtpanVuXCA7CivnlLLpiYToiaYgPCBrb3V0ZXRzdWthblwgOwor5b+D6IeT55eFIDwgc2hpbnpvdWJ5b3VcIDsKK+mMrOmHkeihkyA8IHJlbmtpbmp1dHN1XCA7Civpu5LlhoXpmpwgPCBrb2t1bmFpc2hvdVwgOwor5pyJ6K2Y6ICFIDwgeXV1c2hpa2lzaGFcIDsKK+Wxsea0peazoiA8IHlhbWF0c3VuYW1pXCA7Civoopbnj43mnKwgPCBzaHV1Y2hpbmJvblwgOwor5aSp6LOH6Iux6YKBIDwgdGVuc2hpZWltYWlcIDsKK+WFiOedgOmghiA8IHNlbmNoYWt1anVuXCA7CivmirXmipfpgYvli5UgPCB0ZWlrb3V1bmRvdVwgOwor6YO15L6/5YiH5omLIDwgeXV1Ymlua2l0dGVcIDsKK+Wun+WQjeipniA8IGppdHN1bWVpc2hpXCA7CivpmLLpo5/liaQgPCBib3VzaG9rdXphaVwgOwor5a++56ew6Lu4IDwgdGFpc2hvdWppa3VcIDsKK+i/keaXpeeCuSA8IGtpbmppdHN1dGVuXCA7CivnlLDlnJLpg73luIIgPCBkZW4nJ2VudG9zaGlcIDsKK+iho+aWmeWTgeW6lyA8IGlyeW91aGludGVuXCA7Civkuozpg6jlkIjllLEgPCBuaWJ1Z2Fzc2hvdVwgOwor6JeN5pm255+zIDwgcmFuc2hvdXNla2lcIDsKK+Wls+WtkOS+myA8IG9uJyduYWtvZG9tb1wgOwor5rKh6aOf5a2QIDwgbW9zc2hva3VzaGlcIDsKK+mbu+WtkOmgreiEsyA8IGRlbnNoaXp1bm91XCA7Civkv67nuZXkuK0gPCBzaHV1emVuY2h1dVwgOwor5Ymy6LOm6LKp5aOyIDwga2FwcHVoYW5iYWlcIDsKK+iAs+WtpuWVjyA8IG1pbWlnYWt1bW9uXCA7CivpqqjokaPotqPlkbMgPCBrb3R0b3VzaHVtaVwgOwor6LuN5YKZ5Yi26ZmQIDwgZ3VuYmlzZWlnZW5cIDsKK+mVt+eykuexsyA8IGNob3VyeXV1bWFpXCA7CivpgYvli5XkuI3otrMgPCB1bmRvdWJ1c29rdVwgOwor5Yi26ZmQ5ryi5a2XIDwgc2VpZ2Vua2FuamlcIDsKK+elnuS/oeW/gyA8IGthbWlzaGluamluXCA7CivnhKHlj43li5XnoLIgPCBtdWhhbmRvdWhvdVwgOwor5aWo5a2m55SfIDwgc2hvdWdha3VzZWlcIDsKK+WOn+WboOS4jeaYjiA8IGdlbicnaW5mdW1laVwgOwor6Kaz5YW15byPIDwga2FucGVpc2hpa2lcIDsKK+iLpeW5tOWeiyA8IGpha3VuZW5nYXRhXCA7Civou73oh6rli5Xou4ogPCBrZWlqaWRvdXNoYVwgOwor6byg5rW36LGaIDwgbmV6dW1paXJ1a2FcIDsKK+eLkOeWkemAoeW3oSA8IGtvZ2lzaHVuanVuXCA7Civpm4bnqY3loLQgPCBzaHV1c2VraWpvdVwgOwor5oyH5Lq65b2iIDwgeXViaW5pbmd5b3VcIDsKK+eoi+W6puWVj+mhjCA8IHRlaWRvbW9uZGFpXCA7Civopo/lrprmiZPluK0gPCBraXRlaWRhc2VraVwgOwor5puy6Iq45birIDwga3lva3VnZWlzaGlcIDsKK+m6pueykuiFqyA8IGJha3VyeXV1c2h1XCA7Civnm67nmoTlnLAgPCBtb2t1dGVraWNoaVwgOwor6aKo57SA57SK5LmxIDwgZnV1a2liaW5yYW5cIDsKK+WtpueUn+WvriA8IGdha3VzZWlyeW91XCA7CivlkIjmiJDlipsgPCBnb3VzZWlyeW9rdVwgOwor5biC5Y+C5LqL5LyaIDwgc2hpc2FuamlrYWlcIDsKK+iomOaGtuijhee9riA8IGtpb2t1c291Y2hpXCA7Civmj5DkvpvlgbQgPCB0ZWlreW91Z2F3YVwgOwor6Zuq5bqHIDwgeXVraWJpc2FzaGlcIDsKK+mbu+awl+S8neWwjiA8IGRlbmtpZGVuZG91XCA7CivmtbflpJbmtL7lhbUgPCBrYWlnYWloYWhlaVwgOwor5aSp6LOm5Lq65qipIDwgdGVucHVqaW5rZW5cIDsKK+aHuOWegumBi+WLlSA8IGtlbnN1aXVuZG91XCA7CivnpZ7np5jkuLvnvqkgPCBzaGlucGlzaHVnaVwgOwor5LmX6ZmN5a6iIDwgam91a291a3lha3VcIDsKK+WGheimqueOiyA8IG5haXNoaW4nJ25vdVwgOwor6YGg5oWu5Lya6YeIIDwgZW5yeW9lc2hha3VcIDsKK+eznuWLieW8tyA8IGt1c29iZW5reW91XCA7Civmmpflj7fmiYvms5UgPCBhbmdvdXNodWhvdVwgOwor55+i57aZ5pepIDwgeWF0c3VnaWJheWFcIDsKK+mVt+ipsSA8IG5hZ2FiYW5hc2hpXCA7CivpgYvovLjlpKfoh6MgPCB1bicneXVkYWlqaW5cIDsKK+mdnuirlueQhueahCA8IGhpcm9ucml0ZWtpXCA7CivlpInmm7LngrkgPCBoZW5reW9rdXRlblwgOwor5Y+z57+85Zuj5L2TIDwgdXlva3VkYW50YWlcIDsKK+mVt+Wbm+inkiA8IG5hZ2FzaGlrYWt1XCA7CivopqrliIfmsJcgPCBzaGluc2V0c3VnaVwgOwor5L+d5YGl6KGb55SfIDwgaG9rZW4nJ2Vpc2VpXCA7Civnm5flk4HmlYXosrcgPCB0b3VoaW5rb2JhaVwgOwor5Ymv56We57WMIDwgZnVrdXNoaW5rZWlcIDsKK+iRiee3keS9kyA8IHlvdXJ5b2t1dGFpXCA7CivpnZnmraLou4zpgZMgPCBzZWlzaGlraWRvdVwgOwor5oW25oeJ576p5aG+IDwga2Vpb3VnaWp1a3VcIDsKK+W/q+WIgOS5sem6uyA8IGthaXRvdXJhbm1hXCA7Civoj4rkurrlvaIgPCBraWt1bmluZ3lvdVwgOwor546p5byE54mpIDwgZ2Fucm91YnV0c3VcIDsKK+WPo+iogOiRiSA8IGt1Y2hpa290b2JhXCA7Civpm4blkIjnmoQgPCBzaHV1Z291dGVraVwgOwor6Iez6L+R6Led6ZuiIDwgc2hpa2lua3lvcmlcIDsKK+WJsuW9k+mhjSA8IHdhcmlhdGVnYWt1XCA7CivluLjnv5LnmoQgPCBqb3VzaHV1dGVraVwgOwor5pCN5a6z5L+d6Zm6IDwgc29uZ2FpaG9rZW5cIDsKK+ani+aIkOimgee0oCA8IGtvdXNlaXlvdXNvXCA7CivmhJ/lnKfntJkgPCBrYW4nJ2F0c3VzaGlcIDsKK+WNlOitsOS6i+mghSA8IGt5b3VnaWppa291XCA7CivntIXnjL/lrZAgPCBiZW5pbWFzaGlrb1wgOwor5by+5oCn546HIDwgZGFuc2Vpcml0c3VcIDsKK+iInuWPsOS/s+WEqiA8IGJ1dGFpaGFpeXV1XCA7CivljbHmqZ/kuIDpq6ogPCBraWtpaXBwYXRzdVwgOwor5Yy75a2m6ZuR6KqMIDwgaWdha3V6YXNzaGlcIDsKK+a3oee0heiJsiA8IHRhbmtvdXNob2t1XCA7Civmn7PooYzmnY4gPCB5YW5hZ2lnb3VyaVwgOwor54mp5L6h5rC05rqWIDwgYnVra2FzdWlqdW5cIDsKK+i1pOWNgeWtl+mZhCA8IHNla2lqdXVqaWZ1XCA7CivmibbppIrlrrbml48gPCBmdXlvdWthem9rdVwgOwor5rWB5YuV55qEIDwgcnl1dWRvdXRla2lcIDsKK+eSsOWig+W6gSA8IGthbmt5b3VjaG91XCA7Civnq4vmhrLmlL/msrsgPCByaWtrZW5zZWlqaVwgOwor5piG6Jmr5a2mIDwga29uY2h1dWdha3VcIDsKK+W4uOaXpemggyA8IHRzdW5laGlnb3JvXCA7Civmr5Tnv7zloZogPCBoaXlva3VkenVrYVwgOwor5re35oiQ54mpIDwga29uc2VpYnV0c3VcIDsKK+S6uuW3peiHk+WZqCA8IGppbmtvdXpvdWtpXCA7Civmurbop6PlipsgPCB5b3VrYWlyeW9rdVwgOwor57SZ56SrIDwga2FtaXRzdWJ1dGVcIDsKK+aVmeiCsumVtyA8IGt5b3Vpa3VjaG91XCA7CivnhLzljbTngokgPCBzaG91a3lha3Vyb1wgOwor56Wt5pS/5LiA6Ie0IDwgc2Fpc2VpaXRjaGlcIDsKK+eZveaqgOayuSA8IGJ5YWt1ZGFuJyd5dVwgOwor54m95byV5YqbIDwga2VuJydpbnJ5b2t1XCA7CivoprPlhYnlsYAgPCBrYW5rb3VreW9rdVwgOwor5LiN6KiA5a6f6KGMIDwgZnVnZW5qaWtrb3VcIDsKK+WFpeWtpuiAhSA8IG55dXVnYWt1c2hhXCA7Civlm73lrabogIUgPCBrb2t1Z2FrdXNoYVwgOwor5LuV5LqL6YOo5bGLIDwgc2hpZ290b2JleWFcIDsKK+a0u+WLleiqjCA8IGthdHN1ZG91c2hpXCA7Civlh7rlnJ/lk4EgPCBzaHV0c3Vkb2hpblwgOwor57SZ6KGo57SZIDwga2FtaWJ5b3VzaGlcIDsKK+ims+WFieWuoiA8IGthbmtvdWt5YWt1XCA7CivmiJDkurrmmKDnlLsgPCBzZWlqaW4nJ2VpZ2FcIDsKK+iHqueUseWWtualrSA8IGppeXV1ZWlneW91XCA7CivlhbHlrabliLYgPCBreW91Z2FrdXNlaVwgOwor6baOIDwga2lrdWl0YWRha2lcIDsKK+aomea6luiqpOW3riA8IGh5b3VqdW5nb3NhXCA7Civnvp7mgaXlv4MgPCBzaHV1Y2hpc2hpblwgOwor5Y+C6K2w6Zmi6K2w5ZOhIDwgc2FuZ2lpbmdpaW5cIDsKK+iZq+ecvOmPoSA8IG11c2hpbWVnYW5lXCA7CivoqIDokYnos6ogPCBrb3RvYmFqaWNoaVwgOwor5a2m6ICF6IaaIDwgZ2FrdXNoYWhhZGFcIDsKK+mAmuS/oee2siA8IHRzdXVzaGlubW91XCA7Civmma7lj4rnjocgPCBmdWt5dXVyaXRzdVwgOwor5Lmz5YWQ6ISa5rCXIDwgbnl1dWppa2Fra2VcIDsKK+WNg+mzpei2syA8IGNoaWRvcmlhc2hpXCA7Civou43pnIDlt6XloLQgPCBndW5qdWtvdWpvdVwgOwor55u45Yqg5bmz5Z2HIDwgc291a2FoZWlraW5cIDsKK+eyl+ijveS5semAoCA8IHNvc2VpcmFuem91XCA7CivlvqHlkI3lvqHnkr0gPCBneW9tZWlneW9qaVwgOwor6KO46JmrIDwgaGFkYWthbXVzaGlcIDsKK+i7oui9jeaJiyA8IHRlbnRldHN1c2h1XCA7Civos7zosrflipsgPCBrb3ViYWlyeW9rdVwgOwor5YWl6LOe6ICFIDwgbnl1dXNob3VzaGFcIDsKK+mZuOi7jeecgSA8IHJpa3VndW5zaG91XCA7Civku67lh7rmiYAgPCBrYXJpc2h1c3Nob1wgOwor5paH5rK75Li7576pIDwgYnVuY2hpc2h1Z2lcIDsKK+WPpOeJqeWVhiA8IGtvYnV0c3VzaG91XCA7Civoh6rnhLbmt5jmsbAgPCBzaGl6ZW50b3V0YVwgOwor5a625a6F5o2c5p+7IDwga2F0YWt1c291c2FcIDsKK+aXouaIkOamguW/tSA8IGtpc2VpZ2FpbmVuXCA7CivmlbTlgpnlt6XloLQgPCBzZWliaWtvdWpvdVwgOwor5a++56m656Cy54GrIDwgdGFpa3V1aG91a2FcIDsKK+a7nuepuuaZgumWkyA8IHRhaWt1dWppa2FuXCA7CivosaHlvrToqakgPCBzaG91Y2hvdXNoaVwgOwor5LiL5Y2U6K2wIDwgc2hpdGFreW91Z2lcIDsKK+WPrOmbhuS7pCA8IHNob3VzaHV1cmVpXCA7Civosr/mmJPotaTlrZcgPCBib3Vla2lha2FqaVwgOwor5LiA6KiA5bGF5aOrIDwgaWNoaWdlbmtvamlcIDsKK+eFp+S8muWFiCA8IHNob3VrYWlzYWtpXCA7CivlsYvkuIrluq3lnJIgPCBva3Vqb3V0ZWllblwgOwor5aCG56mN5a2mIDwgdGFpc2VraWdha3VcIDsKK+iqreino+WKmyA8IGRva2thaXJ5b2t1XCA7Civpn7Plo7DooajoqJggPCBvbnNlaWh5b3VraVwgOwor6IW457WQ5qC4IDwgY2hvdWtla2tha3VcIDsKK+W5tOaBsOWlvSA8IHRvc2hpa2Fra291XCA7Civlr6nnvo7kuLvnvqkgPCBzaGluYmlzaHVnaVwgOwor6YCa55Sj55yBIDwgdHN1dXNhbnNob3VcIDsKK+W/nOeUqOWVj+mhjCA8IG91eW91bW9uZGFpXCA7CivkupLmgbXplqLnqI4gPCBnb2tlaWthbnplaVwgOwor552j5a2m5a6YIDwgdG9rdWdha3VrYW5cIDsKK+aHkOS4reeJqSA8IGthaWNodXVtb25vXCA7CivpgJrkv6HnpL4gPCB0c3V1c2hpbnNoYVwgOwor6Luf5oCn5LiL55azIDwgbmFuc2VpZ2VrYW5cIDsKK+Wbveiqnui+nuWFuCA8IGtva3Vnb2ppdGVuXCA7Civlhazoqo3lgJnoo5wgPCBrb3VuaW5rb3Vob1wgOwor55Sf5bm05pyI5pelIDwgc2VpbmVuZ2FwcGlcIDsKK+Wlh+etlue4puaoqiA8IGtpc2FrdWp1dW91XCA7CivlhYnlrabmloflrZcgPCBrb3VnYWt1bW9qaVwgOwor5Y2D55+z6Ii5IDwgc2VuZ29rdWJ1bmVcIDsKK+WBnOi7iuaZgumWkyA8IHRlaXNoYWppa2FuXCA7Civph5HniZvlrq4gPCBraW5neXV1a3l1dVwgOwor5o6l5ZCI5a2QIDwgc2V0c3Vnb3VzaGlcIDsKK+eah+WupOiyuyA8IGtvdXNoaXRzdWhpXCA7CivlhbHlkozmlL/msrsgPCBreW91d2FzZWlqaVwgOwor5Zu95bqr5YK15qipIDwga29ra29zYWlrZW5cIDsKK+i/veW+tOeojiA8IHRzdWljaG91emVpXCA7Civlo7DluK/mqKHlhpkgPCBzZWl0YWltb3NoYVwgOwor5pyA5aSn6ZmQ5bqmIDwgc2FpZGFpZ2VuZG9cIDsKK+WxgOWkluiAhSA8IGt5b2t1Z2Fpc2hhXCA7CivlhavliIbpn7PnrKYgPCBoYWNoaWJ1b25wdVwgOwor57+M57+M5bm0IDwgeW9rdXlva3VuZW5cIDsKK+eJueWIpeapnyA8IHRva3ViZXRzdWtpXCA7Civmt6HopJDoibIgPCB0YW5rYXNzaG9rdVwgOwor5YGP5Z+355eFIDwgaGVuc2h1dWJ5b3VcIDsKK+S7ruaDs+epuumWkyA8IGthc291a3V1a2FuXCA7Civlrabnv5LogIUgPCBnYWt1c2h1dXNoYVwgOwor6Ziy6Z+z5a6kIDwgYm91b25zaGl0c3VcIDsKK+W5s+aIkOaZguS7oyA8IGhlaXNlaWppZGFpXCA7CivliKnnm4rnpL7kvJogPCByaWVraXNoYWthaVwgOwor6IKJ5L2T55qEIDwgbmlrdXRhaXRla2lcIDsKK+WutuW6reioquWVjyA8IGthdGVpaG91bW9uXCA7Civmlpnph5HooaggPCByeW91a2luaHlvdVwgOwor5YaF6Zm45Zu9IDwgbmFpcmlrdWtva3VcIDsKK+WMheWuueWKmyA8IGhvdXlvdXJ5b2t1XCA7Civlh7rmvIHmnJ8gPCBzaHV0c3VneW9raVwgOwor6JaE5Yip5aSa5aOyIDwgaGFrdXJpdGFiYWlcIDsKK+S4u+S6uuW9uSA8IHNodWppbicneWFrdVwgOwor5rCR5Li75Li7576pIDwgbWluc2h1c2h1Z2lcIDsKK+Wls+aAp+WQjeipniA8IGpvc2VpbWVpc2hpXCA7CivmhJvmho7kvbXlrZggPCBhaXpvdWhlaXNvblwgOwor5oiQ5Yqf546HIDwgc2Vpa291cml0c3VcIDsKK+WFrOacieeJqSA8IGtvdXl1dWJ1dHN1XCA7CivoprPoiablvI8gPCBrYW5rYW5zaGlraVwgOwor5Y+N5bCE5L2c55SoIDwgaGFuc2hhc2F5b3VcIDsKK+aciOWknOiMuCA8IHRzdWtpeW90YWtlXCA7CivmnInkuovnq4vms5UgPCB5dXVqaXJpcHBvdVwgOwor5YWl5a2m55SfIDwgbnl1dWdha3VzZWlcIDsKK+aYjuW+jOaXpSA8IG15b3Vnb25pY2hpXCA7CivmtLvli5XogIUgPCBrYXRzdWRvdXNoYVwgOwor5LiJ5Y6f6ImyIDwgc2FuZ2Vuc2hva3VcIDsKK+eZuuWjsOWZqOWumCA8IGhhc3NlaWtpa2FuXCA7CivlgY/ln7fni4IgPCBoZW5zaHV1a3lvdVwgOwor5ama56S86KGj6KOFIDwga29ucmVpaXNob3VcIDsKK+S4reWkrueqgeegtCA8IGNodXVvdXRvcHBhXCA7CivkuInpoK3mlL/msrsgPCBzYW50b3VzZWlqaVwgOwor5Y2x6Zm65Zyw5bivIDwga2lrZW5jaGl0YWlcIDsKK+WMluWtpuS9nOeUqCA8IGthZ2FrdXNheW91XCA7CivnhKHplpPlnLDnjYQgPCBtdWdlbmppZ29rdVwgOwor6Kmx5LitIDwgaGFuYXNoaWNodXVcIDsKK+W+gOW+qeWIh+espiA8IG91ZnVrdWtpcHB1XCA7Civokovku4vnn7MgPCBzaG91a2Fpc2VraVwgOwor55Sz5ZGK5pu4IDwgc2hpbmtva3VzaG9cIDsKK+WtmOWcqOeQhueUsSA8IHNvbnphaXJpeXV1XCA7Civnt6jnrKDojLggPCBhbWlnYXNhdGFrZVwgOwor5bCP5Y2K5pelIDwga29oYW4nJ25pY2hpXCA7CivpnZ7npL7kuqTnmoQgPCBoaWpha291dGVraVwgOwor6KGo5b2w54q2IDwgaHlvdXNob3Vqb3VcIDsKK+WGheiovOS6iyA8IG5haXNob3Vnb3RvXCA7CivlsIHlu7rliLbluqYgPCBob3VrZW5zZWlkb1wgOwor6Ki65pat5a2mIDwgc2hpbmRhbmdha3VcIDsKK+WNl+alteeCuSA8IG5hbmt5b2t1dGVuXCA7CivkurrouqvkuovmlYUgPCBqaW5zaGluamlrb1wgOwor5puy5bCE56CyIDwga3lva3VzaGFob3VcIDsKK+WFrOmWi+aNnOafuyA8IGtvdWthaXNvdXNhXCA7CivmiJHnlLDlvJXmsLQgPCBnYWRlbicnaW5zdWlcIDsKK+WLleS9nOiomOmMsiA8IGRvdXNha2lyb2t1XCA7CivlhYjnmbrpmoogPCBzZW5wYXRzdXRhaVwgOwor5oiQ5bGk54Gr5bGxIDwgc2Vpc291a2F6YW5cIDsKK+aAp+eUn+a0uyA8IHNlaXNlaWthdHN1XCA7CivmpJzplrLlrpggPCBrZW4nJ2V0c3VrYW5cIDsKK+a1gemAmueojiA8IHJ5dXV0c3V1emVpXCA7CivliKnnm4rphY3lvZMgPCByaWVraWhhaXRvdVwgOwor5rSX5r+v57OKIDwgc2VudGFrdW5vcmlcIDsKK+WNiuebtOe3miA8IGhhbmNob2t1c2VuXCA7CivmtJfmv6/nsaAgPCBzZW50YWt1a2Fnb1wgOwor5o6l5ZCI5YmkIDwgc2V0c3Vnb3V6YWlcIDsKK+S4gOaJgOaHuOWRvSA8IGlzc2hva2VubWVpXCA7CivovrLnlKPniakgPCBub3VzYW5idXRzdVwgOwor5rqQ5rOJ6Kqy56iOIDwgZ2Vuc2Vua2F6ZWlcIDsKK+aUv+ayu+e1kOekviA8IHNlaWppa2Vzc2hhXCA7CivlobXln4MgPCBjaGlyaWhva29yaVwgOwor6aiO6aas5rCR5pePIDwga2liYW1pbnpva3VcIDsKK+malOS4lumBuuS8nSA8IGtha3VzZWlpZGVuXCA7Civlj6TpgZPlhbflsYsgPCBmdXJ1ZG91Z3V5YVwgOwor5ZC55aWP5qW95ZmoIDwgc3Vpc291Z2Fra2lcIDsKK+apn+mKg+aOg+WwhCA8IGtpanV1c291c2hhXCA7CivmjqXlj5flm70gPCBzZXRzdWp1a29rdVwgOwor5q2m5a625bGL5pW3IDwgYnVrZXlhc2hpa2lcIDsKK+WNl+altea1tyA8IG5hbmt5b2t1a2FpXCA7CivnnaHnnKDmmYLplpMgPCBzdWltaW5qaWthblwgOwor57WQ6Iac54KOIDwga2V0c3VtYWt1ZW5cIDsKK+imquedpuS8miA8IHNoaW5ib2t1a2FpXCA7CivnoavljJbniakgPCByeXV1a2FidXRzdVwgOwor5oOz5YOP5YqbIDwgc291em91cnlva3VcIDsKK+iKuOihk+WTgSA8IGdlaWp1dHN1aGluXCA7CivnhKHoqJjlkI3moKogPCBtdWtpbWVpa2FidVwgOwor5Y2X5qW15rSLIDwgbmFua3lva3V5b3VcIDsKK+S6i+WLmee3j+mVtyA8IGppbXVzb3VjaG91XCA7Civlho3muKzph48gPCBzYWlzb2t1cnlvdVwgOwor5Li75rK75Yq56IO9IDwgc2h1amlrb3Vub3VcIDsKK+Wkqea0peW+oeelliA8IGFtYXRzdW1pb3lhXCA7CivmsJfosaHooZvmmJ8gPCBraXNob3VlaXNlaVwgOwor5pyJ5Yq55pyf6ZmQIDwgeXV1a291a2lnZW5cIDsKK+i+suWltOino+aUviA8IG5vdWRva2FpaG91XCA7CivpnLLlh7roqIggPCByb3NodXRzdWtlaVwgOwor5b+D6IeT6bq755e6IDwgc2hpbnpvdW1haGlcIDsKK+mFlOeUn+WkouatuyA8IHN1aXNlaW11c2hpXCA7CivnhKHms5XlnLDluK8gPCBtdWhvdWNoaXRhaVwgOwor6KGX6aCt5Yuf6YeRIDwgZ2FpdG91Ym9raW5cIDsKK+eVmeWtpueUnyA8IHJ5dXVnYWt1c2VpXCA7CivmsLTku5XkuosgPCBtaXp1c2hpZ290b1wgOwor5a2m57+S55SoIDwgZ2FrdXNodXV5b3VcIDsKK+iNkuWUkOeEoeeovSA8IGtvdXRvdW11a2VpXCA7Civms6jlsITph50gPCBjaHV1c2hhYmFyaVwgOwor6Kaz5a+f6ICFIDwga2Fuc2F0c3VzaGFcIDsKK+aghOmkiuS4jei2syA8IGVpeW91ZnVzb2t1XCA7CivpgJrkv6HmrIQgPCB0c3V1c2hpbnJhblwgOwor5ZCN6KqJ5biC5rCRIDwgbWVpeW9zaGltaW5cIDsKK+i7jeS6i+WQjOebnyA8IGd1bmppZG91bWVpXCA7CivmnInlirnkvZznlKggPCB5dXVrb3VzYXlvdVwgOwor5LqU5pyI6ZeHIDwgc2F0c3VraXlhbWlcIDsKK+eZuuedgOWgtCA8IGhhdGNoYWt1am91XCA7CivlhYjpgaPpg6jpmoogPCBzZW5rZW5idXRhaVwgOwor5ZiJ6KiA5ZaE6KGMIDwga2FnZW56ZW5rb3VcIDsKK+i8uOWHuueojiA8IHl1c2h1dHN1emVpXCA7CivlkIjlkIzkvJrorbAgPCBnb3Vkb3VrYWlnaVwgOwor6LW35q275Zue55SfIDwga2lzaGlrYWlzZWlcIDsKK+mAj+imlueUu+azlSA8IHRvdXNoaWdhaG91XCA7CivnhKHpiq3ml4XooYwgPCBtdXNlbnJ5b2tvdVwgOwor5bCx6IG35pmCIDwgc2h1dXNob2t1amlcIDsKK+S/neWuieioreWCmSA8IGhvYW5zZXRzdWJpXCA7CivnnYDnnLzngrkgPCBjaGFrdWdhbnRlblwgOwor56m65Ya35byPIDwga3V1cmVpc2hpa2lcIDsKK+a6tuaOpeW3pSA8IHlvdXNldHN1a291XCA7CivkuLjmnKjmqYsgPCBtYXJ1a2liYXNoaVwgOwor5YaF6YOo6ZeY5LqJIDwgbmFpYnV0b3Vzb3VcIDsKK+S4jeato+iejeizhyA8IGZ1c2VpeXV1c2hpXCA7CivlsbHlvaLnnIwgPCB5YW1hZ2F0YWtlblwgOwor5Lqk6ZyK6KGTIDwga291cmVpanV0c3VcIDsKK+a8ouiLsei+nuWFuCA8IGthbicnZWlqaXRlblwgOwor5Ym16YCg6KqsIDwgc291em91c2V0c3VcIDsKK+mgmOWcn+S/neWFqCA8IHJ5b3Vkb2hvemVuXCA7Civmi5vlvoXluK0gPCBzaG91dGFpc2VraVwgOwor54Sh5LqL5oGv54G9IDwgYnVqaXNva3VzYWlcIDsKK+mbquS4iui7iiA8IHNldHN1am91c2hhXCA7CivkuqTpn7/mpb0gPCBrb3VreW91Z2FrdVwgOwor6L6y5qWt5Zu9IDwgbm91Z3lvdWtva3VcIDsKK+WNk+i2iumiqCA8IHRha3VldHN1ZnV1XCA7CivmjIflkI3miYvphY0gPCBzaGltZWl0ZWhhaVwgOwor6Y6u55eb5oCnIDwgY2hpbnRzdXVzZWlcIDsKK+mBiuimp+mjm+ihjCA8IHl1dXJhbmhpa291XCA7Civoqo3orZjoq5YgPCBuaW5zaGlraXJvblwgOwor5Y+X6aiT5Zyw542EIDwganVrZW5qaWdva3VcIDsKK+itpuWCmeW8t+WMliA8IGtlaWJpa3lvdWthXCA7CivlsLHlr53liY0gPCBzaHV1c2hpbnplblwgOwor5b+D55CG5Li7576pIDwgc2hpbnJpc2h1Z2lcIDsKK+WPjOabsue3miA8IHNvdWt5b2t1c2VuXCA7Civpm6LlqZroqLToqJ8gPCByaWtvbnNvc2hvdVwgOwor5aSP5pmC5Yi7IDwgbmF0c3VqaWtva3VcIDsKK+Wkj+Wkp+aguSA8IG5hdHN1ZGFpa29uXCA7Civpn7PoqJPntKLlvJUgPCBvbmt1bnNha3VpblwgOwor5Y2x6Zm65Zug5a2QIDwga2lrZW4nJ2luc2hpXCA7CivmnZHlhavliIYgPCBtdXJhaGFjaGlidVwgOwor6LaF6YGO5Yuk5YuZIDwgY2hvdWtha2lubXVcIDsKK+WCmOS8kOaelyA8IHNhbmJhdHN1cmluXCA7CivluLjoqK3ppKggPCBqb3VzZXRzdWthblwgOwor5Y2X5qW15pifIDwgbmFua3lva3VzZWlcIDsKK+elnuWtpuWjqyA8IHNoaW5nYWt1c2hpXCA7CivpgLLmrankuLvnvqkgPCBzaGlucG9zaHVnaVwgOwor5LiK5ZGK5a+pIDwgam91a29rdXNoaW5cIDsKK+WFiOWFpeimsyA8IHNlbicnbnl1dWthblwgOwor5YWI5YWl6KaLIDwgc2VuJydueXV1a2VuXCA7Civkv53lhajkvJrnpL4gPCBob3plbmthaXNoYVwgOwor5rSX5r+v54mpIDwgc2VudGFrdW1vbm9cIDsKK+S4h+iRiembhiA8IG1hbicneW91c2h1dVwgOwor6Ieq5bex57S55LuLIDwgamlrb3Nob3VrYWlcIDsKK+S6uumBk+aUr+aPtCA8IGppbmRvdXNoaWVuXCA7CivmuoDlt57lm70gPCBtYW5zaHV1a29rdVwgOwor5biM5bCR5L6h5YCkIDwga2lzaG91a2FjaGlcIDsKK+ihqOW/oOWhlCA8IGh5b3VjaHV1dG91XCA7CivkuInph43mrrogPCBzYW5qdXVzYXRzdVwgOwor5amm5Lq656eR5a2mIDwgZnVqaW5rYWdha3VcIDsKK+aUr+aPtOWbo+S9kyA8IHNoaWVuZGFudGFpXCA7CivliIbms4zmtrIgPCBidW5waXRzdWVraVwgOwor5a6H5a6Z56m66ZaTIDwgdWNodXVrdXVrYW5cIDsKK+mao+aOpeecjCA8IHJpbnNldHN1a2VuXCA7CivlmJjlhavnmb4gPCB1c29oYXBweWFrdVwgOwor6Iie6LiP5a6kIDwgYnV0b3VzaGl0c3VcIDsKK+W9k+WxgOiAhSA8IHRvdWt5b2t1c2hhXCA7CivljJbnsqfnhYnnk6YgPCBrZXNob3VyZW5nYVwgOwor57ep6KGd5Zu9IDwga2Fuc2hvdWtva3VcIDsKK+aXqeacn+eZuuimiyA8IHNvdWtpaGFra2VuXCA7Civoh6rnhLbmsrvnmZIgPCBzaGl6ZW5jaGl5dVwgOwor5LiN5Y+v55+l55qEIDwgZnVrYWNoaXRla2lcIDsKK+iotOion+iyu+eUqCA8IHNvc2hvdWhpeW91XCA7Civol4HkurrlvaIgPCB3YXJhbmluZ3lvdVwgOwor5b2x6Z+/5YqbIDwgZWlreW91cnlva3VcIDsKK+eBveWus+S/nemZuiA8IHNhaWdhaWhva2VuXCA7CivlpKflmajmmanmiJAgPCB0YWlraWJhbnNlaVwgOwor5paH56+A5pWwIDwgYnVuc2V0c3VzdXVcIDsKK+aVsOePoOS4gOmAoyA8IGp1enVpY2hpcmVuXCA7CivmlofmmI7plovljJYgPCBidW5tZWlrYWlrYVwgOwor5oKq5o6o6YePIDwgd2FydXp1aXJ5b3VcIDsKK+WQq+aciemHjyA8IGdhbicneXV1cnlvdVwgOwor6KqY6Zu7546HIDwgeXV1ZGVucml0c3VcIDsKK+WPjeWLleS4u+e+qSA8IGhhbmRvdXNodWdpXCA7CivoprPlr5/nnLwgPCBrYW5zYXRzdWdhblwgOwor5pS/5bqc6auY5a6YIDwgc2VpZnVrb3VrYW5cIDsKK+mPoemkhSA8IGthZ2FtaW1vY2hpXCA7Civoo4/liIfogIUgPCB1cmFnaXJpbW9ub1wgOwor5Lqs6YO95bqc6K2mIDwga3lvdXRvZnVrZWlcIDsKK+mYsumbquaelyA8IGJvdXNldHN1cmluXCA7CivlpKnnpZ7pq60gPCB0ZW5zaGluaGlnZVwgOwor5q665a6z6ICFIDwgc2F0c3VnYWlzaGFcIDsKK+WLpOeOi+aUmOWktyA8IGtpbicnbm91am91aVwgOwor56m65oy66YOo6ZqKIDwga3V1dGVpYnV0YWlcIDsKK+aVmeiCsuecgSA8IGt5b3Vpa3VzaG91XCA7Civpm6LkubPpo58gPCByaW55dXVzaG9rdVwgOwor5pWZ6IKy55qEIDwga3lvdWlrdXRla2lcIDsKK+WkmuWjq+a4iOa4iCA8IHRhc2hpc2Vpc2VpXCA7CivkuI3lmajnlKjogIUgPCBidWtpeW91bW9ub1wgOwor5YW156uZ5Z+65ZywIDwgaGVpdGFua2ljaGlcIDsKK+acieeQhumWouaVsCA8IHl1dXJpa2Fuc3V1XCA7Civkurrlt6XpoK3ohLMgPCBqaW5rb3V6dW5vdVwgOwor54m55Yil5Yy6IDwgdG9rdWJldHN1a3VcIDsKK+iyoeaUv+WKmyA8IHphaXNlaXJ5b2t1XCA7CivljYHlha3pn7PnrKYgPCBqdXVyb2t1b25wdVwgOwor5by356Gs562WIDwga3lvdWtvdXNha3VcIDsKK+aWsOW5tOWPtyA8IHNoaW4nJ25lbmdvdVwgOwor56Ov6aa05p2+IDwgc29uYXJlbWF0c3VcIDsKK+Wlh+aDs+WkqeWkliA8IGtpc291dGVuZ2FpXCA7CivlhoXlrrnopovmnKwgPCBuYWl5b3VtaWhvblwgOwor5YWl6aSo5paZIDwgbnl1dWthbnJ5b3VcIDsKK+eJqeebuOmjryA8IG1vc3NvdW1lc2hpXCA7Civoo73pnanmpa0gPCBzZWlrYWt1Z3lvdVwgOwor5Lit5a2m55SfIDwgY2h1dWdha3VzZWlcIDsKK+i8uOWHuua4ryA8IHl1c2h1dHN1a291XCA7CivljZfmpbXluK8gPCBuYW5reW9rdXRhaVwgOwor5paZ55CG6YGT5YW3IDwgcnlvdXJpZG91Z3VcIDsKK+Wkp+Wcj+iIqui3ryA8IHRhaWtlbmtvdXJvXCA7CivmurbmjqXliaQgPCB5b3VzZXRzdXphaVwgOwor5oCl55eF5Lq6IDwga3l1dWJ5b3VuaW5cIDsKK+WvhOWuv+aWmSA8IGtpc2h1a3VyeW91XCA7Civpq5jls7bnlLAgPCB0YWthc2hpbWFkYVwgOwor5bCP5q2j5pyIIDwga29zaG91Z2F0c3VcIDsKK+WLleWKm+ioiCA8IGRvdXJ5b2t1a2VpXCA7CivmpbXlpKflgKQgPCBreW9rdWRhaWNoaVwgOwor5rqW5YKZ566h5Yi2IDwganVuYmlrYW5zZWlcIDsKK+eDj+WPoyA8IGthcmFzdWd1Y2hpXCA7Civlh7rph5HpoY0gPCBzaHVra2luZ2FrdVwgOwor55Sz5ZGK5Yi2IDwgc2hpbmtva3VzZWlcIDsKK+eyjSA8IG1pcmltZWl0b3J1XCA7CivpmaPpoK3mjIfmj64gPCBqaW50b3VzaGlraVwgOwor57KBIDwga2lyb21laXRvcnVcIDsKK+extSA8IGRla2FtZWV0b3J1XCA7Civoh5Plmajnp7vmpI0gPCB6b3VraWlzaG9rdVwgOwor5Z+65pys5qaC5b+1IDwga2lob25nYWluZW5cIDsKK+WtkOS+m+mBlCA8IGtvZG9tb3RhY2hpXCA7CivkvJrorbDml6XnqIsgPCBrYWlnaW5pdHRlaVwgOwor5YWs5a6a5Zyw5L6hIDwga291dGVpY2hpa2FcIDsKK+WfuuekjueglOeptiA8IGtpc29rZW5reXV1XCA7CivnkrDlooPmsZrmn5MgPCBrYW5reW91b3NlblwgOwor5aqS5LuL54mpIDwgYmFpa2FpYnV0c3VcIDsKK+eWkeW/g+aal+msvCA8IGdpc2hpbicnYW5raVwgOwor6buE6YGT6ImyIDwga291ZG91c2hva3VcIDsKK+S4ieiRieiZqyA8IHNhbicneW91Y2h1dVwgOwor5YWo6LOq5YyWIDwgemVuc2hpdHN1a2FcIDsKK+eUn+a0u+mboyA8IHNlaWthdHN1bmFuXCA7CivntLDli5XohIggPCBzYWlkb3VteWFrdVwgOwor5rGf5oi45YmN5a+/5Y+4IDwgZWRvbWFlenVzaGlcIDsKK+e3j+eQhuWkp+iHoyA8IHNvdXJpZGFpamluXCA7CivopIfpm5HljJYgPCBmdWt1emF0c3VrYVwgOwor6Ieq5bex5rqA6LazIDwgamlrb21hbnpva3VcIDsKK+WLouWKm+WcjyA8IHNlaXJ5b2t1a2VuXCA7Civntbblr77kuLvnvqkgPCB6ZXR0YWlzaHVnaVwgOwor56uwIDwgc2VuY2hpcml0dG9cIDsKK+ato+WRs+WApOautSA8IHNob3VtaW5lZGFuXCA7Civnq6EgPCBoZWt1dG9yaXR0b1wgOwor56uTIDwgbWlyaXJpdHRvcnVcIDsKK+erjyA8IGtpcm9yaXR0b3J1XCA7CivlgIvkurrmlZnmjoggPCBrb2ppbmt5b3VqdVwgOwor6KSH6KSH57eaIDwgZnVrdWZ1a3VzZW5cIDsKK+WwkeWjruawl+mLrSA8IHNob3Vzb3VraWVpXCA7CivmlrDlubTkvJogPCBzaGluJyduZW5rYWlcIDsKK+S4jeeiuuWunyA8IGZ1a2FrdWppdHN1XCA7CivmnbHkupzoq7jlm70gPCB0b3Vhc2hva29rdVwgOwor5ZaH5Y+t5rC05LuZIDwgcmFwcGF6dWlzZW5cIDsKK+mOrueXm+WJpCA8IGNoaW50c3V1emFpXCA7CivmgKrkurrniakgPCBrYWlqaW5idXRzdVwgOwor6YCa5a2m55SfIDwgdHN1dWdha3VzZWlcIDsKK+eIhuW/g+WcsCA8IGJha3VzaGluY2hpXCA7Civlrp/ooYzlj6/og70gPCBqaWtrb3VrYW5vdVwgOwor5LqL5YmN6YGL5YuVIDwgaml6ZW4nJ3VuZG91XCA7Civlp4vmnKvmm7ggPCBzaGltYXRzdXNob1wgOwor5aSW5p2l5oKj6ICFIDwgZ2FpcmFpa2FuamFcIDsKK+ertuS6ieW/gyA8IGt5b3Vzb3VzaGluXCA7Civpgb/pm6PoqJPnt7QgPCBoaW5hbmt1bnJlblwgOwor5Ym96Lu96ICFIDwgaHlvdWtpbm1vbm9cIDsKK+iFuOmWieWhniA8IGNob3VoZWlzb2t1XCA7Civosqnlo7Lpg6jploAgPCBoYW5iYWlidW1vblwgOwor6LuN5b2T5bGAIDwgZ3VudG91a3lva3VcIDsKK+WKtOWDjemBi+WLlSA8IHJvdWRvdXVuZG91XCA7CivmupblgpnpioDooYwgPCBqdW5iaWdpbmtvdVwgOwor5bm557ea6YGT6LevIDwga2Fuc2VuZG91cm9cIDsKK+S4jemAj+aYjuaApyA8IGZ1dG91bWVpc2VpXCA7Civnmb3lrZDps6kgPCBzaGlyYWtvYmF0b1wgOwor55S65b255aC0IDwgbWFjaGl5YWt1YmFcIDsKK+WKoOWcp+awtOeCiSA8IGthYXRzdXN1aXJvXCA7CivkuI3lv6Dlrp8gPCBmdWNodXVqaXRzdVwgOwor6KGo6Z+z5paH5a2XIDwgaHlvdW9ubW9uamlcIDsKK+aMh+WQjeaJk+iAhSA8IHNoaW1laWRhc2hhXCA7Civnt4/lj7jku6Tpg6ggPCBzb3VzaGlyZWlidVwgOwor5Y2a5a2m6ICFIDwgaGFrdWdha3VzaGFcIDsKK+S8nee1seS4u+e+qSA8IGRlbnRvdXNodWdpXCA7CivmiKbnlaXkuIogPCBzZW5yeWFrdWpvdVwgOwor5Li76KaB6YO95biCIDwgc2h1eW91dG9zaGlcIDsKK+WNl+alteWcjyA8IG5hbmt5b2t1a2VuXCA7CivkuKHohJropo8gPCByeW91a3lha3VraVwgOwor5L2O5rip5q666I+MIDwgdGVpb25zYWtraW5cIDsKK+WFseios+iAhSA8IGt5b3V5YWt1c2hhXCA7CivlpKvlqabplqLkv4IgPCBmdXVmdWthbmtlaVwgOwor5b+N6ICQ5YqbIDwgbmludGFpcnlva3VcIDsKK+S9nOalreaZgumWkyA8IHNhZ3lvdWppa2FuXCA7Civpm4bph5HkurogPCBzaHV1a2luJyduaW5cIDsKK+mdnuW4uOaJi+autSA8IGhpam91c2h1ZGFuXCA7CivljYHlhavph5EgPCBqdXVoYWNoaWtpblwgOwor5bCC5Yi25pS/5rK7IDwgc2Vuc2Vpc2VpamlcIDsKK+aYoOeUu+ebo+edoyA8IGVpZ2FrYW50b2t1XCA7CivlgJ/nlKjogIUgPCBzaGFrdXlvdXNoYVwgOwor55OwIDwgZGVzaGlndXJhbXVcIDsKK+a/g+a3oeeUu+WDjyA8IG5vdXRhbmdhem91XCA7Civnq6/ph5EgPCBoYXNoaXRhZ2FuZVwgOwor54Gv54Gr566h5Yi2IDwgdG91a2FrYW5zZWlcIDsKK+mHjeimgeS6i+mghSA8IGp1dXlvdWppa291XCA7CivpnZ7luLjlkbzpm4YgPCBoaWpvdWtvc2h1dVwgOwor5oyB5LmF5YqbIDwgamlreXV1cnlva3VcIDsKK+WxgOWcsOmiqCA8IGt5b2t1Y2hpZnV1XCA7CivnmbrnmYzmgKcgPCBoYXRzdWdhbnNlaVwgOwor5o+a6Zm45paZIDwgeW91cmlrdXJ5b3VcIDsKK+Wvhuiyv+aYkyA8IG1pdHN1Ym91ZWtpXCA7CivpgJrkv6Hlk6EgPCB0c3V1c2hpbicnaW5cIDsKK+eri+WAmeijnOiAhSA8IHJpa2tvdWhvc2hhXCA7CivlhqDli5XohIggPCBrYW5kb3VteWFrdVwgOwor5aSJ5aWP5puyIDwgaGVuc291a3lva3VcIDsKK+a1hOWMluijhee9riA8IGpvdWthc291Y2hpXCA7CivlvqHnlJ/mho7mp5ggPCBvYWluaWt1c2FtYVwgOwor6KGo5b2w5Y+wIDwgaHlvdXNob3VkYWlcIDsKK+S6uuWToea3mOaxsCA8IGppbicnaW50b3V0YVwgOwor6JGs6YCB5puyIDwgc291c291a3lva3VcIDsKK+S6pOmAmuS6i+aVhSA8IGtvdXRzdXVqaWtvXCA7CivljYPliIbnjocgPCBzZW5idW5yaXRzdVwgOwor5Zub6Lyq6aeG5YuVIDwgeW9ucmlua3Vkb3VcIDsKK+S4uOS4gOW5tCA8IG1hcnVpY2hpbmVuXCA7Civku6PnkIblhazkvb8gPCBkYWlyaWtvdXNoaVwgOwor5aSW5YuZ5aSn6IejIDwgZ2FpbXVkYWlqaW5cIDsKK+iAgeW7g+eJqSA8IHJvdWhhaWJ1dHN1XCA7CivljZfmpbXlhYkgPCBuYW5reW9rdWtvdVwgOwor55qu566X55SoIDwga2F3YXphbicneW91XCA7Civph47miKbnoLLlhbUgPCB5YXNlbmhvdWhlaVwgOwor6L+95YiG56+AIDwgb2l3YWtlYnVzaGlcIDsKK+W+s+W3neWLoiA8IHRva3VnYXdhemVpXCA7CivlnLDlkI3ovp7lhbggPCBjaGltZWlqaXRlblwgOwor5LiN5YuV55Sj5bGLIDwgZnVkb3VzYW4nJ3lhXCA7CivlibXpgKDniakgPCBzb3V6b3VidXRzdVwgOwor5Yid6Iiq5rW3IDwgaGF0c3Vrb3VrYWlcIDsKK+izvOiqreaWmSA8IGtvdWRva3VyeW91XCA7CivlvpfnpajmlbAgPCB0b2t1aHlvdXN1dVwgOwor5L2T5oSf5rip5bqmIDwgdGFpa2FuJydvbmRvXCA7Civpm6rmma/oibIgPCB5dWtpZ2VzaGlraVwgOwor6Kaz5YWJ6YO95biCIDwga2Fua291dG9zaGlcIDsKK+WQjOaAp+aEm+iAhSA8IGRvdXNlaWFpc2hhXCA7Civpg6jpmormkqTpgIAgPCBidXRhaXRldHRhaVwgOwor57K+56We55qEIDwgc2Vpc2hpbnRla2lcIDsKK+WNlOitsOS8muWToSA8IGt5b3VnaWthaWluXCA7CivllZPokpnpgYvli5UgPCBrZWltb3V1bmRvdVwgOwor5b6z5bed5YWsIDwgdG9rdWdhd2Frb3VcIDsKK+iHqueri+W/gyA8IGppcml0c3VzaGluXCA7CivkuoDnlLLmqKHmp5ggPCBraWtrb3Vtb3lvdVwgOwor6KGb55Sf54q25oWLIDwgZWlzZWlqb3V0YWlcIDsKK+a8uOmAsueahCA8IHplbnNoaW50ZWtpXCA7CivmlZnkvJrmmqYgPCBreW91a2FpcmVraVwgOwor5q665Lq66ICFIDwgc2F0c3VqaW5zaGFcIDsKK+mOluWbveS4u+e+qSA8IHNha29rdXNodWdpXCA7Civnsr7npZ7nl4UgPCBzZWlzaGluYnlvdVwgOwor5q665Lq6572qIDwgc2F0c3VqaW56YWlcIDsKK+aIkOW5tOW8jyA8IHNlaW5lbnNoaWtpXCA7CivlmajnlKjosqfkuY8gPCBraXlvdWJpbmJvdVwgOwor6ISx55+z5rK5IDwgZGF0c3VzZWtpeXVcIDsKK+WFiOmAsuWbvSA8IHNlbnNoaW5rb2t1XCA7CivnnLznsr7nlrLlirQgPCBnYW5zZWloaXJvdVwgOwor5a6j5Lyd5qmf6ZaiIDwgc2VuZGVua2lrYW5cIDsKK+Wcn+Wbo+WtkCA8IHRzdWNoaWRhbmdvXCA7CivkvZXmmYLkvZXmmYIgPCBpdHN1bmFuZG9raVwgOwor5o6n5a6kIDwgaGlrYWVzaGl0c3VcIDsKK+awkeaoqeS4u+e+qSA8IG1pbmtlbnNodWdpXCA7CivlubTmrKHnt4/kvJogPCBuZW5qaXNvdWthaVwgOwor5re35ZCI54mpIDwga29uZ291YnV0c3VcIDsKK+i7jealvemVtyA8IGd1bmdha3VjaG91XCA7Civms5XlvovkuIogPCBob3VyaXRzdWpvdVwgOwor55Wc54qs56iOIDwgY2hpa3VrZW56ZWlcIDsKK+eEoeWEn+S6pOS7mCA8IG11c2hvdWtvdWZ1XCA7Civnn63mnJ/miYvlvaIgPCB0YW5raXRlZ2F0YVwgOwor5YaF5YuZ5aSn6IejIDwgbmFpbXVkYWlqaW5cIDsKK+S4gOS4luS4gOS7oyA8IGlzc2VpY2hpZGFpXCA7CivkuovpoIXntKLlvJUgPCBqaWtvdXNha3VpblwgOwor5pS+5bCE57ea56eRIDwgaG91c2hhc2Vua2FcIDsKK+eah+WkquWtkOWmgyA8IGtvdXRhaXNoaWhpXCA7CivmooHlsbHms4ogPCByeW91emFucGFrdVwgOwor5b2r5aGR6KGTIDwgY2hvdXNvanV0c3VcIDsKK+S7o+eUqOmjnyA8IGRhaXlvdXNob2t1XCA7CivlppbmgKrlpInljJYgPCB5b3VrYWloZW5nZVwgOwor5Lim5pyo6YGTIDwgbmFtaWtpbWljaGlcIDsKK+Wuneefs+eusSA8IGhvdXNla2liYWtvXCA7CivljZLmpa3lvowgPCBzb3RzdWd5b3Vnb1wgOwor5Y+j6KeS5YqbIDwga3VjaGlkenVtb3VcIDsKK+S6i+alreS4uyA8IGppZ3lvdW51c2hpXCA7Civoh6romZDnmoQgPCBqaWd5YWt1dGVraVwgOwor5LiL55u46KuHIDwgc2hpdGFzb3VkYW5cIDsKK+WkieW9oumDqOmWgCA8IGhlbmtlaWJ1bW9uXCA7Civph47miKbnl4XpmaIgPCB5YXNlbmJ5b3VpblwgOwor56a/6aCt55eFIDwgdG9rdXRvdWJ5b3VcIDsKK+aIpueBveWcsOWMuiA8IHNlbnNhaWNoaWt1XCA7CivlvL7nnYDngrkgPCBkYW5jaGFrdXRlblwgOwor54m55YuZ5qmf6ZaiIDwgdG9rdW11a2lrYW5cIDsKK+S6lOaciOeXhSA8IGdvZ2F0c3VieW91XCA7CivnoILns5blpKfmoLkgPCBzYXRvdWRhaWtvblwgOwor5by+5Yqb5oCnIDwgZGFucnlva3VzZWlcIDsKK+aguOeIhuW8viA8IGtha3ViYWt1ZGFuXCA7CivllYbmpa3ooZcgPCBzaG91Z3lvdWdhaVwgOwor6aCt5paH5a2XIDwga2FzaGlyYW1vamlcIDsKK+WNiuWKoOW3peWTgSA8IGhhbmtha291aGluXCA7Civoh6roqJjmuKnluqboqIggPCBqaWtpb25kb2tlaVwgOwor57iu57es57SZIDwgY2hpcmltZW5zaGlcIDsKK+S6jOetieWIhue3miA8IG5pdG91YnVuc2VuXCA7Civmjojmpa3mmYLplpMgPCBqdWd5b3VqaWthblwgOwor5aSp56We5Zyw56WHIDwgdGVuamluY2hpZ2lcIDsKK+i/veWKoOS6iOeulyA8IHRzdWlrYXlvc2FuXCA7CivpnZ7lkIjnkIbnmoQgPCBoaWdvdXJpdGVraVwgOwor5Yq06L6y5pS/5bqcIDwgcm91bm91c2VpZnVcIDsKK+WNl+S6rOiZqyA8IG5hbmtpbm11c2hpXCA7Civoo4Hmsbrmm7ggPCBzYWlrZXRzdXNob1wgOwor5LiL5oSP5LiK6YGUIDwga2Fpam91dGF0c3VcIDsKK+aguOeHg+aWmSA8IGtha3VuZW5yeW91XCA7CivkuZfou4rmi5LlkKYgPCBqb3VzaGFreW9oaVwgOwor6YCQ5a2X6KizIDwgY2hpa3VqaXlha3VcIDsKK+awtOa0l+S+v+aJgCA8IHN1aXNlbmJlbmpvXCA7Civlj47ntI3lrrblhbcgPCBzaHV1bm91a2FndVwgOwor5pyq6ZaL5aK+5ZywIDwgbWlrYWlrb25jaGlcIDsKK+ato+W9k+mYsuihmyA8IHNlaXRvdWJvdWVpXCA7CivkuIDlvrnogIUgPCBpdHRldHN1bW9ub1wgOwor5b6h5Y2U5YqbIDwgZ29reW91cnlva3VcIDsKK+WtpuenkeippumokyA8IGdha2thc2hpa2VuXCA7Civkv4LlsZ7kuK0gPCBrZWl6b2t1Y2h1dVwgOwor5r2c5rC05q+N6ImmIDwgc2Vuc3VpYm9rYW5cIDsKK+exs+WNsCA8IGtvbWVqaXJ1c2hpXCA7Civnl4XkuK3lkJ8gPCBieW91Y2h1dWdpblwgOwor5L2/55So5L6h5YCkIDwgc2hpeW91a2FjaGlcIDsKK+altemZkOWApCA8IGt5b2t1Z2VuY2hpXCA7CivmlZnogrLlraYgPCBreW91aWt1Z2FrdVwgOwor6Zu76Kmx5a6kIDwgZGVud2FzaGl0c3VcIDsKK+mBoOW/g+WKmyA8IGVuc2hpbnJ5b2t1XCA7CivlrpjlsIrmsJHljZEgPCBrYW5zb25taW5waVwgOwor5a6u5bSO55yMIDwgbWl5YXpha2lrZW5cIDsKK+WVhuW3pealrSA8IHNob3Vrb3VneW91XCA7CivooZ3li5XnmoQgPCBzaG91ZG91dGVraVwgOwor6IOG55+z55eHIDwgdGFuc2VraXNob3VcIDsKK+i8uOWHuuWTgSA8IHl1c2h1dHN1aGluXCA7Civmma7pgY3mlofms5UgPCBmdWhlbmJ1bnBvdVwgOwor6YGO5Ymw5Lq65Y+jIDwga2Fqb3VqaW5rb3VcIDsKK+S4ieecoOialSA8IHNhbm1pbmthaWtvXCA7CivplpPmrKDms4kgPCBrYW5rZXRzdXNlblwgOwor5Ye65YWI5qmf6ZaiIDwgZGVzYWtpa2lrYW5cIDsKK+a6luWCmeWnlOWToeS8miA8IGp1bmJpaWlua2FpXCA7CivlpKnpvo3lt50gPCB0ZW5yeXV1a2F3YVwgOwor5pWZ57+S55SfIDwga3lvdXNodXVzZWlcIDsKK+mao+aOpeWcsCA8IHJpbnNldHN1Y2hpXCA7CivnmbrnlJ/njocgPCBoYXNzZWlyaXRzdVwgOwor6JGh6JCE55WRIDwgYnVkb3ViYXRha2VcIDsKK+Wig+eVjOaomSA8IGt5b3VrYWloeW91XCA7Civnqbrou43lipsgPCBrdXVndW5yeW9rdVwgOwor5Lqk5aOw5puyIDwga291c2Vpa3lva3VcIDsKK+ePvuWGhemWoyA8IGdlbicnbmFpa2FrdVwgOwor5Y2g5pif6KGTIDwgc2Vuc2VpanV0c3VcIDsKK+mmmei+m+aWmSA8IGtvdXNoaW5yeW91XCA7CivnlLrpgZPloLQgPCBtYWNoaWRvdWpvdVwgOwor5a6j5Lyd5Yq55p6cIDwgc2VuZGVua291a2FcIDsKK+aZguOAheWIu+OAhSA8IGppamlrb2trb2t1XCA7Civov5HkvLzoqIjnrpcgPCBraW5qaWtlaXNhblwgOwor5YuV5Yqb5rqQIDwgZG91cnlva3VnZW5cIDsKK+aBkuetieW8jyA8IGtvdXRvdXNoaWtpXCA7CivoqI7kvJDou40gPCB0b3ViYXRzdWd1blwgOwor6KGo55yL5p2/IDwgb21vdGVrYW5iYW5cIDsKK+itt+aGsumBi+WLlSA8IGdva2VuJyd1bmRvdVwgOwor5r+D6Z2S6ImyIDwgbm91c2Vpc2hva3VcIDsKK+auuuS6uueKryA8IHNhdHN1amluaGFuXCA7Civmrovlv7Xos54gPCB6YW4nJ25lbnNob3VcIDsKK+WOn+WboOe1kOaenCA8IGdlbicnaW5rZWtrYVwgOwor5Y+L6LuN6YOo6ZqKIDwgeXV1Z3VuYnV0YWlcIDsKK+iEs+WFheihgCA8IG5vdWp1dWtldHN1XCA7Civpo5/kurrnqK4gPCBzaG9rdWppbnNodVwgOwor6LWk6KSQ6ImyIDwgc2Vra2Fzc2hva3VcIDsKK+eEoeWwveS8muekviA8IG11amluZ2Fpc2hhXCA7CivoiIjkv6HpjLIgPCBrb3VzaGlucm9rdVwgOwor6Zu754ax5ZmoIDwgZGVuJyduZXRzdWtpXCA7CivkvZzmm7LogIUgPCBzYWtreW9rdXNoYVwgOwor5Y+k5LuK5p2x6KW/IDwga29rb250b3V6YWlcIDsKK+WUkOmMpiA8IGthcmFuaXNoaWtpXCA7CivnnIvorbflqabplbcgPCBrYW5nb2Z1Y2hvdVwgOwor5ZWG5qiZ5qipIDwgc2hvdWh5b3VrZW5cIDsKK+aCsuaGpOaFt+aFqCA8IGhpZnVua291Z2FpXCA7CivluLjorZjkurogPCBqb3VzaGlraWppblwgOwor5Y+k5Luj5paH5piOIDwga29kYWlidW5tZWlcIDsKK+ims+WuouWxpCA8IGthbmt5YWt1c291XCA7CivnhKHnlKPmlL/lhZogPCBtdXNhbnNlaXRvdVwgOwor5LiA6YeN5qGcIDwgaGl0b2V6YWt1cmFcIDsKK+mBuOaMmea6luWCmSA8IHNlbmt5b2p1bmJpXCA7CivlnLDli5XoqqwgPCBjaGlkb3VzZXRzdVwgOwor5oSP6K2Y5LiN5piOIDwgaXNoaWtpZnVtZWlcIDsKK+eZveS6nOizqiA8IGhha3Vhc2hpdHN1XCA7CivohqDnnYDliaQgPCBrb3VjaGFrdXphaVwgOwor5LiA5q616JC9IDwgaWNoaWRhbnJha3VcIDsKK+e1hOWQiOS4u+e+qSA8IGt1bWlhaXNodWdpXCA7Civou43nlKjps6kgPCBndW4nJ3lvdWJhdG9cIDsKK+S/l+aWh+WtpiA8IHpva3VidW5nYWt1XCA7CivlgIvkvZPnmbrnlJ8gPCBrb3RhaWhhc3NlaVwgOwor6Zu75Zyn6KiIIDwgZGVuJydhdHN1a2VpXCA7CivolqzlsYDmlrkgPCB5YWtreW9rdWhvdVwgOwor5rOV5Yi25bGAIDwgaG91c2Vpa3lva3VcIDsKK+iWrOWtpuiAhSA8IHlha3VnYWt1c2hhXCA7Civkv4LkuonniakgPCBrZWlzb3VidXRzdVwgOwor5Zub5YiG6Z+z56ymIDwgc2hpYnVuJydvbnB1XCA7Civkvb/lvpLmm7jnsKEgPCBzaGl0b3Nob2thblwgOwor5YSq5p+U5LiN5patIDwgeXV1anV1ZnVkYW5cIDsKK+iEseavm+WJpCA8IGRhdHN1bW91emFpXCA7CivnhY7ppIXokrLlm6MgPCBzZW5iZWlidXRvblwgOwor566h6L2E5qipIDwga2Fua2F0c3VrZW5cIDsKK+WAn+eUqOabuCA8IHNoYWt1eW91c2hvXCA7Civkuojlrproqr/lkowgPCB5b3RlaWNob3V3YVwgOwor5aWJ5YWs5Y+jIDwgaG91a291Z3VjaGlcIDsKK+WFiOelluS8neadpSA8IHNlbnpvZGVucmFpXCA7CivmlL7pgIHlsYAgPCBob3Vzb3VreW9rdVwgOwor5LqL5qWt6YOo5Yi2IDwgamlneW91YnVzZWlcIDsKK+m7hOeZveiJsiA8IGtvaGFrdXNob2t1XCA7Civoh6jmmYLliJfou4ogPCByaW5qaXJlc3NoYVwgOwor5a6a5pyf6Kmm6aiTIDwgdGVpa2lzaGlrZW5cIDsKK+e+vee5lOiitCA8IGhhb3JpaGFrYW1hXCA7Civnt4/lkIjoqrLnqI4gPCBzb3Vnb3VrYXplaVwgOwor6YGg6ZqU6Kyb576pIDwgZW5rYWt1a291Z2lcIDsKK+mZpOW5leW8jyA8IGpvbWFrdXNoaWtpXCA7CivmtbflupXmsrnnlLAgPCBrYWl0ZWl5dWRlblwgOwor55yf5LiA5paH5a2XIDwgbWFpY2hpbW9uamlcIDsKK+iduOeJmyA8IGRlbmRlbm11c2hpXCA7Civpm7voqbHoqr/mn7sgPCBkZW53YWNob3VzYVwgOwor5oqA6KGT5o+05YqpIDwgZ2lqdXRzdWVuam9cIDsKK+W8t+WItueahCA8IGt5b3VzZWl0ZWtpXCA7CivlvLflv4PliaQgPCBreW91c2hpbnphaVwgOwor55Sf5rS755KwIDwgc2Vpa2F0c3VrYW5cIDsKK+aYpeS4gOeVqiA8IGhhcnVpY2hpYmFuXCA7CivljYHlhavnlaogPCBqdXVoYWNoaWJhblwgOwor6buS6barIDwga3Vyb3RzdWd1bWlcIDsKK+WBj+WQkeWbnui3ryA8IGhlbmtvdWthaXJvXCA7CivkuojlrprntI3nqI4gPCB5b3RlaW5vdXplaVwgOwor55qH5ZCO6Zmb5LiLIDwga291Z291aGVpa2FcIDsKK+mAo+mCpuWItuW6piA8IHJlbnBvdXNlaWRvXCA7CivpjKbom4cgPCBuaXNoaWtpaGViaVwgOwor57WC6Lqr5a6YIDwgc2h1dXNoaW5rYW5cIDsKK+WbveS+jSA8IGt1bml6YW11cmFpXCA7Civpm7vmsJfpm7vlrZAgPCBkZW5raWRlbnNoaVwgOwor5Luj6KGM5qmf6ZaiIDwgZGFpa291a2lrYW5cIDsKK+eWsuWKtOWbsOaGiiA8IGhpcm91a29ucGFpXCA7Civnm5fpm6Pkv53pmbogPCB0b3VuYW5ob2tlblwgOwor57SU55yf54Sh5Z6iIDwganVuc2hpbm11a3VcIDsKK+aciOmVt+efsyA8IGdldGNob3VzZWtpXCA7CivmlZnogbflk6EgPCBreW91c2hva3VpblwgOwor5LiL5L2N5LqS5o+b5oCnIDwga2FpZ29rYW5zZWlcIDsKK+azleWLmeWkp+iHoyA8IGhvdW11ZGFpamluXCA7CivpgIHliKXkvJogPCBzb3ViZXRzdWthaVwgOwor5Ye65ZOB5Zu9IDwgc2h1cHBpbmtva3VcIDsKK+WIkeS6i+WHpuWIhiA8IGtlaWppc2hvYnVuXCA7Civpp5Dou4rpgZXlj40gPCBjaHV1c2hhaWhhblwgOwor5Y2X5Lqs55S6IDwgbmFua2lubWFjaGlcIDsKK+aZguapn+WwmuaXqSA8IGppa2lzaG91c291XCA7CivpgZPlvrPnmoQgPCBkb3V0b2t1dGVraVwgOwor5ZWG5qWt55WMIDwgc2hvdWd5b3VrYWlcIDsKK+WPjue0jemhjSA8IHNodXVub3VnYWt1XCA7CivpvI7nq4vmiKYgPCB0ZWlyaXRzdXNlblwgOwor5Y6f5YmH55qEIDwgZ2Vuc29rdXRla2lcIDsKK+W5tOmHkeWfuumHkSA8IG5lbmtpbmtpa2luXCA7Civlgo3ogbTmlpkgPCBib3VjaG91cnlvdVwgOwor5Y2D5YaG5pytIDwgc2VuJydlbnNhdHN1XCA7Civlrprlj47lhaUgPCB0ZWlzaHV1bnl1dVwgOwor6YGp5rOV6KGM54K6IDwgdGVraWhvdWtvdWlcIDsKK+eJqeimi+mBiuWxsSA8IG1vbm9taXl1c2FuXCA7CivlvpfmhI/muoDpnaIgPCB0b2t1aW1hbm1lblwgOwor5pmC5beu5Ye65YukIDwgamlzYXNodWtraW5cIDsKK+aUv+ayu+WVj+mhjCA8IHNlaWppbW9uZGFpXCA7Civntbblr77mlazoqp4gPCB6ZXR0YWlrZWlnb1wgOwor6Y2155uk5qW95ZmoIDwga2VuYmFuZ2Fra2lcIDsKK+iotOion+S6i+S7tiA8IHNvc2hvdWppa2VuXCA7CivmhI/lkbPlvbnlibIgPCBpbWl5YWt1d2FyaVwgOwor5YWt5aSn5beeIDwgcm9rdWRhaXNodXVcIDsKK+WJsuW8leWIuCA8IHdhcmliaWtpa2VuXCA7CivkvY/nlJ/mtLsgPCBqdXVzZWlrYXRzdVwgOwor5L6h5qC85a6J5a6aIDwga2FrYWt1YW50ZWlcIDsKK+S7iuS4iumZm+S4iyA8IGtpbmpvdWhlaWthXCA7Civpm7vmsJfns7vntbEgPCBkZW5raWtlaXRvdVwgOwor5YmN56uL6IW6IDwgemVucml0c3VzZW5cIDsKK+WFjOaPm+mKgOihjCA8IGRha2FuZ2lua291XCA7CivlhpnnnJ/pm4YgPCBzaGFzaGluc2h1dVwgOwor5YWo5Lya5LiA6Ie0IDwgemVua2FpaXRjaGlcIDsKK+eZvuS4h+mBjSA8IGh5YWt1bWFuYmVuXCA7CivonYnmmYLpm6ggPCBzZW1pc2hpZ3VyZVwgOwor6bq76Jas5oKj6ICFIDwgbWF5YWt1a2FuamFcIDsKK+WJsuW8leWCtSA8IHdhcmliaWtpc2FpXCA7Civlv4PmqZ/kuIDou6IgPCBzaGlua2lpdHRlblwgOwor54Sh5ZCN5oim5aOrIDwgbXVtZWlzZW5zaGlcIDsKK+WUr+S4gOeEoeS6jCA8IHl1aWl0c3VtdW5pXCA7CivmjqXnnYDliaQgPCBzZXRjaGFrdXphaVwgOwor5omL6KGT5Y+wIDwgc2h1anV0c3VkYWlcIDsKK+mYsueBq+aJiSA8IGJvdWthdG9iaXJhXCA7CivkubHlhaXogIUgPCByYW4nJ255dXVzaGFcIDsKK+ioiOeUu+eahCA8IGtlaWtha3V0ZWtpXCA7CivosqHmlL/lronlrpogPCB6YWlzZWlhbnRlaVwgOwor6Kq/5Y2w5byPIDwgY2hvdWluc2hpa2lcIDsKK+eci+itt+WtpuagoSA8IGthbmdvZ2Fra291XCA7CivpgIbou6LlsaQgPCBneWFrdXRlbnNvdVwgOwor55Sf5rS75rOVIDwgc2Vpa2F0c3Vob3VcIDsKK+eymOWcn+izqiA8IG5lbmRvc2hpdHN1XCA7CivliIbpoZ7ln7rmupYgPCBidW5ydWlraWp1blwgOwor6YCG6Ly45YWlIDwgZ3lha3V5dW55dXVcIDsKK+aWh+abuOWBvemAoCA8IGJ1bnNob2dpem91XCA7CivlraTou43lpa7pl5ggPCBrb2d1bmZ1bnRvdVwgOwor5paw6IiI5Zu9IDwgc2hpbmtvdWtva3VcIDsKK+aVsOasoeaXheWIuCA8IHN1dWppcnlva2VuXCA7CivlkIjnm67nmoQgPCBnb3Vtb2t1dGVraVwgOwor5ZCI5oiQ57mK57atIDwgZ291c2Vpc2VuJydpXCA7CivmlrDkurros54gPCBzaGluamluc2hvdVwgOwor6Zu75aCx5bGAIDwgZGVucG91a3lva3VcIDsKK+iytOaXj+aUv+ayuyA8IGtpem9rdXNlaWppXCA7CivljZrmhJvkuLvnvqkgPCBoYWt1YWlzaHVnaVwgOwor5LiA5paJ5qSc5oyZIDwgaXNzZWlrZW5reW9cIDsKK+S6nOmJm+iPr+i7n+iGjyA8IGFlbmthbmFua291XCA7CivkuInluZXniakgPCBzYW5tYWt1bW9ub1wgOwor55m95pyo6JOuIDwgaGFrdW1va3VyZW5cIDsKK+WVhualrea4ryA8IHNob3VneW91a291XCA7CivkuIDph4zloZogPCBpY2hpcmlkenVrYVwgOwor57WC6Lqr5YiRIDwgc2h1dXNoaW5rZWlcIDsKK+S9jua4qei8uOmAgSA8IHRlaW9uJyd5dXNvdVwgOwor6aKo5YWJ5piO5aqaIDwgZnV1a291bWVpYmlcIDsKK+W+jOmDqOW6p+W4rSA8IGtvdWJ1emFzZWtpXCA7Civli5XlipvlraYgPCBkb3VyaWtpZ2FrdVwgOwor56+A5paZ55CGIDwgc2VjaGlyeW91cmlcIDsKK+WHuuWTgeS6uiA8IHNodXBwaW4nJ25pblwgOwor5YKN6IG05bitIDwgYm91Y2hvdXNla2lcIDsKK+S4jemBqeWIhyA8IGZ1dGVraXNldHN1XCA7CivlgIvkurrmipXos4cgPCBrb2ppbnRvdXNoaVwgOwor5a2m6Zqb55qEIDwgZ2FrdXNhaXRla2lcIDsKK+ernOmqqOW6pyA8IHJ5dXVrb3RzdXphXCA7Civkv53pmbrkvJrnpL4gPCBob2tlbmdhaXNoYVwgOwor56Gr5YyW5rC057SgIDwgcnl1dWthc3Vpc29cIDsKK+S7ruadoee0hCA8IGthcmlqb3V5YWt1XCA7Civml6XmnKzliJfls7YgPCBuaWhvbnJldHRvdVwgOwor6ZqO57Sa56ugIDwga2Fpa3l1dXNob3VcIDsKK+aIpuaZguWFrOWCtSA8IHNlbmppa291c2FpXCA7CivmirXmipflipsgPCB0ZWlrb3VyeW9rdVwgOwor5qOu5p6X5a2mIDwgc2hpbnJpbmdha3VcIDsKK+a1t+WToee1hOWQiCA8IGthaWlua3VtaWFpXCA7Civnmb7kuIfoqIAgPCBoeWFrdW1hbmdlblwgOwor5L+u6L6e55aR5ZWPIDwgc2h1dWppZ2ltb25cIDsKK+a4r+eUuiA8IG1pbmF0b21hY2hpXCA7Civms5XlrprosqjluaMgPCBob3V0ZWlrYWhlaVwgOwor5L2T5YaF5Y+X57K+IDwgdGFpbmFpanVzZWlcIDsKK+WMlueyp+S4iyA8IGtlc2hvdXNoaXRhXCA7CivomavolqwgPCBtdXNoaWd1c3VyaVwgOwor5qW96Kaz5Li7576pIDwgcmFra2Fuc2h1Z2lcIDsKK+i1pOaPkOeBryA8IGFrYWNob3VjaGluXCA7CivlhaXpmaLmgqPogIUgPCBueXV1aW5rYW5qYVwgOwor5Ym16YCg5Li7IDwgc291em91bnVzaGlcIDsKK+mWoumAo+S6i+mghSA8IGthbnJlbmppa291XCA7Civljp/kvqHoqIjnrpcgPCBnZW5rYWtlaXNhblwgOwor6Zu75a2Q5Zue6LevIDwgZGVuc2hpa2Fpcm9cIDsKK+WAmeWtneizoiA8IGhvdXNoYXVzaGVuXCA7Civph43ngrnkuLvnvqkgPCBqdXV0ZW5zaHVnaVwgOwor5L6h6Zu75a2Q5bivIDwga2FkZW5zaGl0YWlcIDsKK+acieWKuemcgOimgSA8IHl1dWtvdWp1eW91XCA7Civkuovmpa3lubTluqYgPCBqaWd5b3VuZW5kb1wgOwor55u45Y+N5a6a55CGIDwgc291aGFudGVpcmlcIDsKK+WFreWIhuWEgOW6pyA8IHJva3VidW5naXphXCA7CivlhqzlsIbou40gPCBmdXl1c2hvdWd1blwgOwor5a6J5a6a54q25oWLIDwgYW50ZWlqb3V0YWlcIDsKK+awkeS4u+aUv+ayuyA8IG1pbnNodXNlaWppXCA7Civni6znv5Lmm7ggPCBkb2t1c2h1dXNob1wgOwor5YWs6Ki85paZIDwga291c2hvdXJ5b3VcIDsKK+WUkOe0hSA8IGthcmFrdXJlbmFpXCA7Civntr/nuZTniakgPCBtZW4nJ29yaW1vbm9cIDsKK+WMluWtpue5iue2rSA8IGthZ2FrdXNlbicnaVwgOwor57W25a++6Z+z5oSfIDwgemV0dGFpb25rYW5cIDsKK+WFiOWFpeS4uyA8IHNlbicnbnl1dXNodVwgOwor5pyA57WC55qEIDwgc2Fpc2h1dXRla2lcIDsKK+acrOW7uueviSA8IGhvbmtlbmNoaWt1XCA7Civoh6rnhLbnoLTlo4ogPCBzaGl6ZW5oYWthaVwgOwor5aCx6YGT5qmf6ZaiIDwgaG91ZG91a2lrYW5cIDsKK+aNleiZnOS6pOaPmyA8IGhvcnlva291a2FuXCA7Civni5flsL7ojYkgPCBlbm9rb3JvZ3VzYVwgOwor5Lqc57Gz5Yip5Yqg5p2JIDwgYW1lcmlrYXN1Z2lcIDsKK+S+oeWApOWIpOaWrSA8IGthY2hpaGFuZGFuXCA7CivooYzllYbkurogPCBneW91c2hvdW5pblwgOwor5YiH5YiG5rOVIDwgc2V0c3VidW5ob3VcIDsKK+aJi+e3tOaJi+euoSA8IHRlcmVudGVrdWRhXCA7CivlmajmorDkvZPmk40gPCBraWthaXRhaXNvdVwgOwor6aSK6ICB5L+d6Zm6IDwgeW91cm91aG9rZW5cIDsKK+Wwj+eZvuWnkyA8IGtvYnlha3VzaG91XCA7Civlv4PkuIjlpKsgPCBrb2tvcm9qb3VidVwgOwor6bOl6aGe5a2mIDwgY2hvdXJ1aWdha3VcIDsKK+W8seW5tOiAhSA8IGpha3VuZW5tb25vXCA7CivkuK3pmorplbcgPCBjaHV1dGFpY2hvdVwgOwor5LiN5b2T6KGo56S6IDwgZnV0b3VoeW91amlcIDsKK+WuieWFqOmBi+i7oiA8IGFuemVuJyd1bnRlblwgOwor55u46KuH5b25IDwgc291ZGFuJyd5YWt1XCA7CivkuqTpmpvnr4Tlm7IgPCBrb3VzYWloYW4nJ2lcIDsKK+W/nOeUqOenkeWtpiA8IG91eW91a2FnYWt1XCA7Civpo5/kuovmmYIgPCBzaG9rdWppZG9raVwgOwor5YWr6Z2i5L2TIDwgaGFjaGltZW50YWlcIDsKK+S4jeaVtOWQiOS6uiA8IGZ1c2VpZ291amluXCA7Civljp/liKTmsbogPCBnZW5oYW5rZXRzdVwgOwor5Y2Y5YWD5Yi25bqmIDwgdGFuZ2Vuc2VpZG9cIDsKK+S4gOatqeWJjemAsiA8IGlwcG96ZW5zaGluXCA7Civlm73njovpmZvkuIsgPCBrb2t1b3VoZWlrYVwgOwor5qW15Zyw5ZyPIDwga3lva3VjaGlrZW5cIDsKK+aUvumAgeihm+aYnyA8IGhvdXNvdWVpc2VpXCA7Civlr4LlhYnmtYTlnJ8gPCBqYWtrb3Vqb3Vkb1wgOwor55uj5a+f5a6YIDwga2Fuc2F0c3VrYW5cIDsKK+W+jOeUn+Wkp+S6iyA8IGdvc2hvdWRhaWppXCA7CivkuInmsJHkuLvnvqkgPCBzYW5taW5zaHVnaVwgOwor55m9546J57KJIDwgc2hpcmF0YW1ha29cIDsKK+WVhualreaWhyA8IHNob3VneW91YnVuXCA7CivmsJfnrqHliIfplosgPCBraWthbnNla2thaVwgOwor5aSp5YuV6KqsIDwgdGVuZG91c2V0c3VcIDsKK+WCsuWyuOS4jemBnCA8IGdvdWdhbmZ1c29uXCA7Civovrvoqqzms5UgPCB0c3VqaXNlcHBvdVwgOwor5a6254i26ZW35Yi2IDwga2FmdWNob3VzZWlcIDsKK+aal+m7kuaYn+mbsiA8IGFua29rdXNlaXVuXCA7Civov5Hku6Plm73lrrYgPCBraW5kYWlrb2trYVwgOwor54WJ5Li56KGTIDwgcmVudGFuanV0c3VcIDsKK+ilv+a1t+WyuCA8IG5pc2hpa2FpZ2FuXCA7CivliY3pgJTmnInmnJsgPCB6ZW50b3l1dWJvdVwgOwor5oCl5LiK5piHIDwga3l1dWpvdXNob3VcIDsKK+Wuneefs+WVhiA8IGhvdXNla2lzaG91XCA7Civmj5vnrpfnjocgPCBrYW5zYW5yaXRzdVwgOwor5bu66Kit6ICFIDwga2Vuc2V0c3VzaGFcIDsKK+WMl+OAheilvyA8IGhva3Vob2t1c2VpXCA7Civpn7Pmpb3nkIboq5YgPCBvbmdha3VyaXJvblwgOwor5aeU6KiX6LKp5aOyIDwgaXRha3VoYW5iYWlcIDsKK+mKgOWpmuW8jyA8IGdpbmtvbnNoaWtpXCA7CivkuInlr5Llm5vmuKkgPCBzYW5rYW5zaGlvblwgOwor6LKn5LmP5omA5bivIDwgYmluYm91am90YWlcIDsKK+W+oeS8veiNieWtkCA8IG90b2dpem91c2hpXCA7CivnpZ7lpYjlt53nnIwgPCBrYW5hZ2F3YWtlblwgOwor6Zu75rCX6KOF572uIDwgZGVua2lzb3VjaGlcIDsKK+WcsOaWueitsOS8miA8IGNoaWhvdWdpa2FpXCA7Civljp/li5XlipsgPCBnZW5kb3VyeW9rdVwgOwor5L+E5pmv5rCXIDwgbml3YWthZ2Vpa2lcIDsKK+ijheeUsumDqOmaiiA8IHNvdWtvdWJ1dGFpXCA7CivkuI3lj6/lhaXmgKcgPCBmdWthbnl1dXNlaVwgOwor5oKq5oiv6ICFIDwgaXRhenVyYW1vbm9cIDsKK+Wkp+emj+W4syA8IGRhaWZ1a3VjaG91XCA7CivmmYLnr4Dmn4QgPCBqaXNldHN1Z2FyYVwgOwor5Y2X5Lqs5pyo57a/IDwgbmFua2lubW9tZW5cIDsKK+ejr+m1ryA8IGlzb2hpeW9kb3JpXCA7CivljbDosaHkuLvnvqkgPCBpbnNob3VzaHVnaVwgOwor5ZC46KGA6ay8IDwga3l1dWtldHN1a2lcIDsKK+ezluWwv+eXhSA8IHRvdW55b3VieW91XCA7CivkuIDlvLXkuIDlvJsgPCBpdGNob3Vpc3NoaVwgOwor5Yy66ZaT5YiX6LuKIDwga3VrYW5yZXNzaGFcIDsKK+i7ouS7u+WFiCA8IHRlbicnbmluc2FraVwgOwor5pSv6YWN5YqbIDwgc2hpaGFpcnlva3VcIDsKK+ebuOaAneebuOaEmyA8IHNvdXNoaXNvdWFpXCA7CivoiKrnqbrln7rlnLAgPCBrb3VrdXVraWNoaVwgOwor55uj5p+76KiY6YyyIDwga2Fuc2FraXJva3VcIDsKK+aKgOihk+enu+i7oiA8IGdpanV0c3VpdGVuXCA7CivnlKPlhZDliLbpmZAgPCBzYW5qaXNlaWdlblwgOwor5Y2Y6Z+z56+AIDwgdGFuJydvbnNldHN1XCA7CivmlrDogZ7nqK4gPCBzaGluYnVuZGFuZVwgOwor6aO95ZKM54q25oWLIDwgaG91d2Fqb3V0YWlcIDsKK+S9juS4mOmZtSA8IHRlaWt5dXVyeW91XCA7Civlm73pmpvnmoQgPCBrb2t1c2FpdGVraVwgOwor6YO35Zyf6ImyIDwga3lvdWRvc2hva3VcIDsKK+ernOeUsOWnqyA8IHRhdHN1dGFoaW1lXCA7CivlsI/lrabppKggPCBzaG91Z2FrdWthblwgOwor55+l6IO95qSc5p+7IDwgY2hpbm91a2Vuc2FcIDsKK+S9v+evgOWboyA8IHNoaXNldHN1ZGFuXCA7Civmtojmga/mlocgPCBzaG91c29rdWJ1blwgOwor57eL6KGj6I2JIDwgaGlnb3JvbW9zb3VcIDsKK+S4u+ioiOWxgCA8IHNodWtlaWt5b2t1XCA7CivpgZPlvrPlv4MgPCBkb3V0b2t1c2hpblwgOwor5pyq5rG65ZuaIDwgbWlrZXRzdXNodXVcIDsKK+aEm+WUseabsiA8IGFpc2hvdWt5b2t1XCA7CivlraTlvbHmgoTnhLYgPCBrb2Vpc2hvdXplblwgOwor5LqU56iu56u25oqAIDwgZ29zaHVreW91Z2lcIDsKK+WBteWvn+maiiA8IHRlaXNhdHN1dGFpXCA7Civlm6PkvZPkv53pmbogPCBkYW50YWlob2tlblwgOwor55m65L+h5YG0IDwgaGFzc2hpbmdhd2FcIDsKK+WnieWmuemDveW4giA8IHNoaW1haXRvc2hpXCA7CivpgaDlsbHph4wgPCB0b295YW1hemF0b1wgOwor56We57WM55ebIDwgc2hpbmtlaXRzdXVcIDsKK+S4jemAmueuh+aJgCA8IGZ1dHN1dWthc2hvXCA7CivnpZ7ntYznl4cgPCBzaGlua2Vpc2hvdVwgOwor56We57WM55eFIDwgc2hpbmtlaWJ5b3VcIDsKK+egtOmCqumhleatoyA8IGhhamFrZW5zaG91XCA7CivmlL/msrvlm6PkvZMgPCBzZWlqaWRhbnRhaVwgOwor5LiA5Zac5LiA5oaCIDwgaWtraWljaGl5dXVcIDsKK+WumuedgOa2siA8IHRlaWNoYWt1ZWtpXCA7CivlvIHoqLzlraYgPCBiZW5zaG91Z2FrdVwgOwor5rqW5YKZ5ZG95LukIDwganVuYmltZWlyZWlcIDsKK+WPl+mok+enkeebriA8IGp1a2Vua2Ftb2t1XCA7CivmnKjnrqHmpb3lmaggPCBtb2trYW5nYWtraVwgOwor55m65L+h5Lq6IDwgaGFzc2hpbicnbmluXCA7CivkuK3pq5jpn7Ppg6ggPCBjaHV1a291b25idVwgOwor5Y+L5oSb57WQ5amaIDwgeXV1YWlrZWtrb25cIDsKK+e3keWcsOW4ryA8IHJ5b2t1Y2hpdGFpXCA7Civmtbfou43ln7rlnLAgPCBrYWlndW5raWNoaVwgOwor55Sf5rS75ZyPIDwgc2Vpa2F0c3VrZW5cIDsKK+mbu+WtkOe0oOWtkCA8IGRlbnNoaXNvc2hpXCA7CivnhrHkvJ3lsI4gPCBuZXRzdWRlbmRvdVwgOwor6YGT5b6z5a2mIDwgZG91dG9rdWdha3VcIDsKK+aEm+WbvemBi+WLlSA8IGFpa29rdXVuZG91XCA7CivpganmoLzogIUgPCB0ZWtpa2FrdXNoYVwgOwor5Zuz5pu45a6kIDwgdG9zaG9zaGl0c3VcIDsKK+ims+mfs+anmCA8IGthbicnbm9uc2FtYVwgOwor57WQ5ama5byPIDwga2Vra29uc2hpa2lcIDsKK+ilv+a0i+W8jyA8IHNlaXlvdXNoaWtpXCA7CivkurrmloflnLDnkIYgPCBqaW5tb25jaGlyaVwgOwor5Yq05YON5LqJ6K2wIDwgcm91ZG91c291Z2lcIDsKK+aDheWgseWHpueQhiA8IGpvdWhvdXNob3JpXCA7Civlj6/lpInos4fmnKwgPCBrYWhlbnNoaWhvblwgOwor54K65pu/5beu55uKIDwga2F3YXNlc2Fla2lcIDsKK+iqmOaLkOS6i+S7tiA8IHl1dWthaWppa2VuXCA7CivkuInlpKfpg73luIIgPCBzYW5kYWl0b3NoaVwgOwor55S35Yal5YipIDwgb3Rva29teW91cmlcIDsKK+aJgOimgeaZgumWkyA8IHNob3lvdWppa2FuXCA7CivlpbPmqKnpgYvli5UgPCBqb2tlbicndW5kb3VcIDsKK+WIhuaVo+WHpueQhiA8IGJ1bnNhbnNob3JpXCA7CivotbDooYzlj6/og70gPCBzb3Vrb3VrYW5vdVwgOwor5ZG957axIDwgaW5vY2hpZHp1bmFcIDsKK+a1geiogOmjm+iqniA8IHJ5dXVnZW5oaWdvXCA7CivkuIDmlrDntIDlhYMgPCBpc3NoaW5raWdlblwgOwor5b6S5omL5L2T5pONIDwgdG9zaHV0YWlzb3VcIDsKK+S4iuiFlemqqCA8IGpvdXdhbmtvdHN1XCA7CivnlJ/lkb3lipsgPCBzZWltZWlyeW9rdVwgOwor56Gs6aqo5ryiIDwga291a290c3VrYW5cIDsKK+WVhualreWcsCA8IHNob3VneW91Y2hpXCA7Civph5HovaEgPCBrYW5hZ3V0c3V3YVwgOwor5LiH5bm05bqKIDwgbWFuJyduZW5kb2tvXCA7Civlj6Pou4ogPCBrdWNoaWd1cnVtYVwgOwor6Kyb6YeI5birIDwga291c2hha3VzaGlcIDsKK+S4ieW5heWvviA8IHNhbnB1a3V0c3VpXCA7Civom4vnmb3lsL8gPCB0YW5wYWt1bnlvdVwgOwor5Yi65r+A6IetIDwgc2hpZ2VraXNodXVcIDsKK+iNiemei+iZqyA8IHdhcmFqaW11c2hpXCA7Civph5Hono3mpa0gPCBraW4nJ3l1dWd5b3VcIDsKK+WwgeW7uuS4u+e+qSA8IGhvdWtlbnNodWdpXCA7Civoj5znqK7msrkgPCBuYXRhbmVhYnVyYVwgOwor5Y+X6aiT5oim5LqJIDwganVrZW5zZW5zb3VcIDsKK+WHuumbsuWkp+ekviA8IGl6dW1vdGFpc2hhXCA7Civpm5vkurrlvaIgPCBoaW5hbmluZ3lvdVwgOwor5qip6ZaA5Yui5a62IDwga2VubW9uc2Vpa2FcIDsKK+eEoeedgOmZuCA8IG11Y2hha3VyaWt1XCA7CivkuIrliIbliKUgPCBqb3VmdW5iZXRzdVwgOwor5aSn5YuV6ISIIDwgZGFpZG91bXlha3VcIDsKK+eEoee3muaTjee4piA8IG11c2Vuc291anV1XCA7CivnpZ7nhKHmnIggPCBrYW4nJ25hZHp1a2lcIDsKK+W5vOmmtOafkyA8IG9zYW5hbmFqaW1pXCA7CivlhoblkajnjocgPCBlbnNodXVyaXRzdVwgOwor5YCf5a625LqJ6K2wIDwgc2hha2thc291Z2lcIDsKK+Wuh+WumeenkeWtpiA8IHVjaHV1a2FnYWt1XCA7CivllYbmpa3lj7IgPCBzaG91Z3lvdXNoaVwgOwor5Y+k5YW46Iq46IO9IDwga290ZW5nZWlub3VcIDsKK+WxseWys+eXhSA8IHNhbmdha3VieW91XCA7Civopqrku7vlrpggPCBzaGluJyduaW5rYW5cIDsKK+i/vei3oeiAhSA8IHRzdWlzZWtpc2hhXCA7Civosaroj6/ntaLniJsgPCBnb3VrYWtlbnJhblwgOwor55m65Lya5byPIDwgaGFra2Fpc2hpa2lcIDsKK+WppuS6uumBi+WLlSA8IGZ1amluJyd1bmRvdVwgOwor5bqK6Z2i56mNIDwgeXVrYW1lbnNla2lcIDsKK+S4jeWLleaYjueOiyA8IGZ1ZG91bXlvdW91XCA7CivkvZPlpJblj5fnsr4gPCB0YWlnYWlqdXNlaVwgOwor54u46Kaq54i2IDwgdGFudWtpb3lhamlcIDsKK+acqOefs+a8oiA8IGJva3VzZWtpa2FuXCA7Civlm73pmLLnnIEgPCBrb2t1Ym91c2hvdVwgOwor5Yuk5YuZ5bm06ZmQIDwga2lubXVuZW5nZW5cIDsKK+WbveaWh+WtpiA8IGtva3VidW5nYWt1XCA7CivnlJ/mrpbohbogPCBzZWlzaG9rdXNlblwgOwor5rqA5aC05LiA6Ie0IDwgbWFuam91aXRjaGlcIDsKK+WJjeS4lueUn+WtmCA8IHplbnNlc2Vpem9uXCA7Civoh6rmrrrnmoQgPCBqaXNhdHN1dGVraVwgOwor5Lya6KiI5bm05bqmIDwga2Fpa2VpbmVuZG9cIDsKK+mAoOeJqeS4uyA8IHpvdWJ1dHN1c2h1XCA7CivkuIfokYnku67lkI0gPCBtYW4nJ3lvdWdhbmFcIDsKK+WCjeiBtOmaj+aEjyA8IGJvdWNob3V6dWlpXCA7CivnlKjlhbXooZMgPCB5b3VoZWlqdXRzdVwgOwor57W25a++5aSa5pWwIDwgemV0dGFpdGFzdXVcIDsKK+WPluiqvyA8IHRvcmlzaGlyYWJlXCA7CivpgIDogbfph5EgPCB0YWlzaG9rdWtpblwgOwor57SF55m96Kmm5ZCIIDwga291aGFrdWppYWlcIDsKK+S8muioiOebo+afuyA8IGthaWtlaWthbnNhXCA7CivlvY7mnIjnirYgPCB3YW5nZXRzdWpvdVwgOwor5YWr57SY5LiA5a6HIDwgaGFra291aWNoaXVcIDsKK+iInuWPsOijhee9riA8IGJ1dGFpc291Y2hpXCA7CivnlJ/msqHlubQgPCBzZWlib3RzdW5lblwgOwor5Y2Y5LiA5oCnIDwgdGFuJydpdHN1c2VpXCA7CivpvLvmn7EgPCBoYW5hYmFzaGlyYVwgOwor5oyB57aa5YqbIDwgaml6b2t1cnlva3VcIDsKK+S6i+WLmemVt+WumCA8IGppbXVjaG91a2FuXCA7CivkuIDoiKznpL7kvJogPCBpcHBhbnNoYWthaVwgOwor5pel5bid5pmC5LujIDwgbml0dGVpamlkYWlcIDsKK+aWsOiBnualrSA8IHNoaW5idW5neW91XCA7CivnmbvlnYLou4rnt5ogPCB0b2hhbnNoYXNlblwgOwor56We57WM5qC4IDwgc2hpbmtlaWtha3VcIDsKK+S4lueVjOacgOWkpyA8IHNla2Fpc2FpZGFpXCA7CivmjIflsI7ljp/nkIYgPCBzaGlkb3VnZW5yaVwgOwor5p6i6Lu45Zu9IDwgc3V1amlrdWtva3VcIDsKK+mAoOasoemhm+aymyA8IHpvdWppdGVucGFpXCA7CivoiKrnqbrnrqHnkIYgPCBrb3VrdXVrYW5yaVwgOwor5LiJ6Imy54mIIDwgc2Fuc2hva3ViYW5cIDsKK+eqr+WNsCA8IGthbWFqaXJ1c2hpXCA7CivkuK3plpPpp4UgPCBjaHV1a2FuJydla2lcIDsKK+iDveijheadnyA8IG5vdXNob3V6b2t1XCA7CivntZDmmbblraYgPCBrZXNzaG91Z2FrdVwgOwor5oSf5p+T57WM6LevIDwga2Fuc2Vua2Vpcm9cIDsKK+ino+axuuazlSA8IGthaWtldHN1aG91XCA7CivorabmiJLoibIgPCBrZWlrYWlzaG9rdVwgOwor5LqM562J6LuN5pu5IDwgbml0b3VndW5zb3VcIDsKK+S4gOavm+S9nCA8IGljaGltb3VzYWt1XCA7CivmuKnnhrHmgKcgPCBvbicnbmV0c3VzZWlcIDsKK+mYsueBq+Whl+aWmSA8IGJvdWthdG9yeW91XCA7Civoh6rnuIToh6rnuJsgPCBqaWpvdWppYmFrdVwgOwor6YCU5Lit5LiL6LuKIDwgdG9jaHV1Z2VzaGFcIDsKK+eSsOWig+S/neittyA8IGthbmt5b3Vob2dvXCA7CivlmJjnmbropovlmaggPCB1c29oYWtrZW5raVwgOwor6Z2i5Lya5pmC6ZaTIDwgbWVua2FpamlrYW5cIDsKK+mHjeapn+mWoumKgyA8IGp1dWtpa2FuanV1XCA7CivlhoXlj43ohJogPCBuYWloYW5reWFrdVwgOwor5rOV5qGI5a+p6K2wIDwgaG91YW5zaGluZ2lcIDsKK+W7tue4hOa8gSA8IGhhZW5hd2FyeW91XCA7Civnm7TmlrnkvZMgPCBjaG9rdWhvdXRhaVwgOwor6Ieq5YuV5Yi25b6hIDwgamlkb3VzZWlneW9cIDsKK+WutuaXj+mBlCA8IGthem9rdXRhY2hpXCA7CivliLrmv4DnmoQgPCBzaGlnZWtpdGVraVwgOwor5YCL5Lq65oyH5bCOIDwga29qaW5zaGlkb3VcIDsKK+iHqueEtueZuueBqyA8IHNoaXplbmhha2thXCA7CivkuLvli5nlpKfoh6MgPCBzaHVtdWRhaWppblwgOwor55+t5pyf5rG65oimIDwgdGFua2lrZXNzZW5cIDsKK+iogOiqnumBi+eUqCA8IGdlbmdvdW4nJ3lvdVwgOwor5Lqk5o+b5bGAIDwga291a2Fua3lva3VcIDsKK+WNsemZuuaAneaDsyA8IGtpa2Vuc2hpc291XCA7Civnqbrln5/nrqHnkIYgPCBrdXVpa2lrYW5yaVwgOwor5b6h5q6/5aWz5LitIDwgZ290ZW5qb2NodXVcIDsKK+S4g+W5tOW/jCA8IHNoaWNoaW5lbmtpXCA7CivpmqPkv53kuovmpa0gPCByaW5wb2ppZ3lvdVwgOwor5oKq5oiv5pu4IDwgaXRhenVyYWdha2lcIDsKK+WNg+S6uumHnSA8IHNlbicnbmluYmFyaVwgOwor5ZCI5oSP5b+D5LitIDwgZ291aXNoaW5qdXVcIDsKK+S4lueVjOiomOmMsiA8IHNla2Fpa2lyb2t1XCA7Civln7rmnKzmnaHku7YgPCBraWhvbmpvdWtlblwgOwor6L6y5rCR5LiA5o+GIDwgbm91bWluJydpa2tpXCA7CivliY3ku6PmnKrogZ4gPCB6ZW5kYWltaW1vblwgOwor5raI5q+S5rayIDwgc2hvdWRva3Vla2lcIDsKK+ikh+WQiOaxmuafkyA8IGZ1a3Vnb3Vvc2VuXCA7Civntbblr77pm7bluqYgPCB6ZXR0YWlyZWlkb1wgOwor5qeL5oiQ5Y+v6IO9IDwga291c2Vpa2Fub3VcIDsKK+S4gOS6uuiInuWPsCA8IGhpdG9yaWJ1dGFpXCA7Civnmq7kuIvntYTnuZQgPCBoaWthc29zaGlraVwgOwor5rK556Cl55+zIDwgYWJ1cmF0b2lzaGlcIDsKK+WcsOS4i+izh+a6kCA8IGNoaWthc2hpZ2VuXCA7Civni5DppYLpo6kgPCBraXRzdW5ldWRvblwgOwor5r+D6KSQ6ImyIDwgbm91a2Fzc2hva3VcIDsKK+adkOacqOWVhiA8IHphaW1va3VzaG91XCA7Civnmb3ljJblgIvkvZMgPCBoYWt1a2Frb3RhaVwgOwor6Zu76Kmx5Zue57eaIDwgZGVud2FrYWlzZW5cIDsKK+S4jeato+WSrOWQiCA8IGZ1c2Vpa291Z291XCA7CivmkanoqLbkuI3mgJ3orbAgPCBtYWthZnVzaGlnaVwgOwor5Y6f6Imy54mIIDwgZ2Vuc2hva3ViYW5cIDsKK+e+juWuueS9k+aTjSA8IGJpeW91dGFpc291XCA7CivljZTorbDpm6LlqZogPCBreW91Z2lyaWtvblwgOwor6JSm6Ji/IDwgdHN1dGFrYXp1cmFcIDsKK+a4qeaaluWJjee3miA8IG9uZGFuemVuc2VuXCA7CivljZjpoIXlvI8gPCB0YW5rb3VzaGlraVwgOwor5paw6KaP5L+d566hIDwgc2hpbmtpaG9rYW5cIDsKK+Wcn+awl+iJsiA8IHRzdWNoaWtlaXJvXCA7Civlj5bnt6AgPCB0b3Jpc2hpbWFyaVwgOwor5LuY5bGe56+AIDwgZnV6b2t1c2V0c3VcIDsKK+S4gOiyq+eVquWPtyA8IGlra2FuYmFuZ291XCA7Civnj77ooYzms5Xopo8gPCBnZW5rb3Vob3VraVwgOwor5LiA55Wq6baPIDwgaWNoaWJhbmRvcmlcIDsKK+e0i+eroOWtpiA8IG1vbnNob3VnYWt1XCA7CivnnJ/lj6rkuK0gPCBtYXR0YWRhbmFrYVwgOwor56WW5Zu95b6p5biwIDwgc29rb2t1ZnVra2lcIDsKK+WQq+awtOeCree0oCA8IGdhbnN1aXRhbnNvXCA7CivlirTlg43mmYLplpMgPCByb3Vkb3VqaWthblwgOwor5Ye65bit6ICFIDwgc2h1c3Nla2lzaGFcIDsKK+eCuuabv+ebuOWgtCA8IGthd2FzZXNvdWJhXCA7CivkuJbnlYzkuIDlkaggPCBzZWthaWlzc2h1dVwgOwor5Yy755mC5rOV5Lq6IDwgaXJ5b3Vob3VqaW5cIDsKK+mWgOWJjeeUuiA8IG1vbnplbm1hY2hpXCA7CivmsLfooosgPCBrb29yaWJ1a3Vyb1wgOwor6byT6Iie5r+A5YqxIDwga29idWdla2lyZWlcIDsKK+aVmeiok+eahCA8IGt5b3VrdW50ZWtpXCA7Civosq/ph5HlsYAgPCBjaG9raW5reW9rdVwgOwor5a6Y5YOa6IetIDwga2FucnlvdXNodXVcIDsKK+i5hOmJhOW3pSA8IHRlaXRldHN1a291XCA7CivnspLluqbliIbluIMgPCByeXV1ZG9idW5wdVwgOwor56We57WM5a2mIDwgc2hpbmtlaWdha3VcIDsKK+aKleS4i+izh+acrCA8IHRvdWthc2hpaG9uXCA7CivnlKjmhI/lkajliLAgPCB5b3Vpc2h1dXRvdVwgOwor6KGo546E6ZaiIDwgb21vdGVnZW5rYW5cIDsKK+WGheeHg+apn+mWoiA8IG5haW5lbmtpa2FuXCA7Civlh7rlvLXlupcgPCBzaHV0Y2hvdXRlblwgOwor5peF6KGM6Z6EIDwgcnlva291a2FiYW5cIDsKK+a4m+WhqemjnyA8IGdlbicnZW5zaG9rdVwgOwor5Zuj5L2T5a6iIDwgZGFudGFpa3lha3VcIDsKK+mYsuawtOWKoOW3pSA8IGJvdXN1aWtha291XCA7Civlv4PpnIrlraYgPCBzaGlucmVpZ2FrdVwgOwor5YCL5Lq65raI6LK7IDwga29qaW5zaG91aGlcIDsKK+S7ruaAp+i/keimliA8IGthc2Vpa2luc2hpXCA7CivlpKfmraPnkLQgPCB0YWlzaG91Z290b1wgOwor5qyg5Yuk546HIDwga2Vra2lucml0c3VcIDsKK+WumuedgOWJpCA8IHRlaWNoYWt1emFpXCA7CivljZfopb8gPCBtaW5hbWluaXNoaVwgOwor5YWl5aC05paZIDwgbnl1dWpvdXJ5b3VcIDsKK+mAkOiqnuiosyA8IGNoaWt1Z295YWt1XCA7CivmgJ3ogIPlipsgPCBzaGlrb3VyeW9rdVwgOwor5Lmz55So54mbIDwgbnl1dXlvdWd5dXVcIDsKK+ato+immuWdiiA8IHNob3VnYWt1Ym91XCA7Civnt5Hol7vpoZ4gPCByeW9rdXNvdXJ1aVwgOwor55uu5pKD6ICFIDwgbW9rdWdla2lzaGFcIDsKK+m7kuabnOefsyA8IGtva3V5b3VzZWtpXCA7CivnqbrmsJfkvJ3mn5MgPCBrdXVraWRlbnNlblwgOwor5rqA5LiA5bm0IDwgbWFuJydpY2hpbmVuXCA7CivmsqHmiJHnmoQgPCBib3RzdWdhdGVraVwgOwor5ZCr5aG1546HIDwgZ2Fuamlucml0c3VcIDsKK+W5vOW5tOaZguS7oyA8IHlvdW5lbmppZGFpXCA7CivpgIDogbfogIUgPCB0YWlzaG9rdXNoYVwgOwor6JS15bGL5pW3IDwga3VyYXlhc2hpa2lcIDsKK+ekvuS8muW+qeW4sCA8IHNoYWthaWZ1a2tpXCA7Civpm7vmsJfoo73lk4EgPCBkZW5raXNlaWhpblwgOwor5YyF6YeRIDwgdHN1dHN1bWlraW5cIDsKK+WGjeW7uueviSA8IHNhaWtlbmNoaWt1XCA7CivnlKPlqabkurrnp5HljLsgPCBzYW5mdWppbmthaVwgOwor5LiA6LKr5L2c5qWtIDwgaWtrYW5zYWd5b3VcIDsKK+a7nuWcqOacn+mWkyA8IHRhaXphaWtpa2FuXCA7CivnjK7ouqvnmoQgPCBrZW5zaGludGVraVwgOwor54Sh5b2i6LKh55SjIDwgbXVrZWl6YWlzYW5cIDsKK+WmqOWus+eJqSA8IGJvdWdhaWJ1dHN1XCA7CivngrnnnLzolqwgPCB0ZW5nYW4nJ3lha3VcIDsKK+WFg+mmluebuCA8IG1vdG9zaHVzaG91XCA7CivnhKHmlq3ou6LovIkgPCBtdWRhbnRlbnNhaVwgOwor5oGQ5rC055eFIDwga3lvdXN1aWJ5b3VcIDsKK+Wdh+ihoeS6iOeulyA8IGtpbmtvdXlvc2FuXCA7Civlr4blo7Llk4EgPCBtaXRzdWJhaWhpblwgOwor55+z5bed55yMIDwgaXNoaWthd2FrZW5cIDsKK+S7mOW4r+adoeS7tiA8IGZ1dGFpam91a2VuXCA7Civlia/kvJrplbcgPCBmdWt1a2FpY2hvdVwgOwor55m65piO6ICFIDwgaGF0c3VtZWlzaGFcIDsKK+i7jeS6i+W3peWgtCA8IGd1bmppa291am91XCA7CivmnInlirnmlbDlrZcgPCB5dXVrb3VzdXVqaVwgOwor5Ym15L2c55qEIDwgc291c2FrdXRla2lcIDsKK+iHjeS4i+S4ueeUsCA8IHNlaWthdGFuZGVuXCA7CivlpKfpgIbnvaogPCB0YWlneWFrdXphaVwgOwor6Kmm55So5pyf6ZaTIDwgc2hpeW91a2lrYW5cIDsKK+S4gOWFg+eahCA8IGljaGlnZW50ZWtpXCA7CivljJblrablpInljJYgPCBrYWdha3VoZW5rYVwgOwor6Ieq5YuV6LuK56iOIDwgamlkb3VzaGF6ZWlcIDsKK+iogOiqnumBk+aWrSA8IGdvbmdvZG91ZGFuXCA7Civnmb7pnaLnm7ggPCBoeWFrdW1lbnNvdVwgOwor5LiN5L6155WlIDwgZnVzaGlucnlha3VcIDsKK+WPpOeLkCA8IGZ1cnVnaXRzdW5lXCA7Civku5jlsZ7niakgPCBmdXpva3VidXRzdVwgOwor5ouF5L+d54mp5qipIDwgdGFucG9idWtrZW5cIDsKK+WWtualreaZgumWkyA8IGVpZ3lvdWppa2FuXCA7Civli4nlvLfkuK0gPCBiZW5reW91Y2h1dVwgOwor5YaZ55yf5bizIDwgc2hhc2hpbmNob3VcIDsKK+S4gOebruaVoyA8IGljaGltb2t1c2FuXCA7CivpoqjlipvoqIggPCBmdXVyeW9rdWtlaVwgOwor5rS755So5b2iIDwga2F0c3V5b3VrZWlcIDsKK+iHquWLleaJiSA8IGppZG91dG9iaXJhXCA7CivmhJvlprvlvIHlvZMgPCBhaXNhaWJlbnRvdVwgOwor5Lya56S+56uLIDwga2Fpc2hhcml0c3VcIDsKK+e+jueahOWrjOaCqiA8IGJpdGVraWtlbicnb1wgOwor6KaL55uu5b2iIDwgbWltZWthdGFjaGlcIDsKK+S4ieWNg+S4lueVjCA8IHNhbnplbnNla2FpXCA7CivpkZHliKXmiYAgPCBrYW5iZXRzdXNob1wgOwor5aSa6YeN5pS+6YCBIDwgdGFqdXVob3Vzb3VcIDsKK+S6jOmHjeWkluS6pCA8IG5panV1Z2Fpa291XCA7Civku67lpZHntIQgPCBrYXJpa2VpeWFrdVwgOwor5qC45ouh5pWjIDwga2FrdWtha3VzYW5cIDsKK+WRqOi+uuWbvSA8IHNodXVoZW5rb2t1XCA7Civkuojlgpnlt6XkvZwgPCB5b2Jpa291c2FrdVwgOwor55+t5rOi5pS+6YCBIDwgdGFucGFob3Vzb3VcIDsKK+miqOWFiee1tuS9syA8IGZ1dWtvdXpla2thXCA7Civlv4XnhLbmgKcgPCBoaXRzdXplbnNlaVwgOwor5Li75oOF5Li7576pIDwgc2h1am91c2h1Z2lcIDsKK+S4oeabv+WVhiA8IHJ5b3VnYWVzaG91XCA7CivooYzli5XkuLvnvqkgPCBrb3Vkb3VzaHVnaVwgOwor6Ieq5YiG6Ieq6LqrIDwgamlidW5qaXNoaW5cIDsKK+iEseiJsuWJpCA8IGRhc3Nob2t1emFpXCA7CivlpJzlhYnloZfmlpkgPCB5YWtvdXRvcnlvdVwgOwor5Y+z5b+D5a6kIDwgdXNoaW5zaGl0c3VcIDsKK+WKm+mdqSA8IGNoaWthcmFnYXdhXCA7CivkuK3lpK7lj6MgPCBjaHV1b3VndWNoaVwgOwor55yf6I+M55eHIDwgc2hpbmtpbnNob3VcIDsKK+Wcp+WKm+azoiA8IGF0c3VyeW9rdWhhXCA7CivluLDnhKHku67oqqwgPCBraW11a2FzZXRzdVwgOwor5biC5aC05Y6f55CGIDwgc2hpam91Z2VucmlcIDsKK+WFqOWbveeahCA8IHplbmtva3V0ZWtpXCA7Civkuqzmu4vlnLDmlrkgPCBrZWlqaWNoaWhvdVwgOwor57iE5qKv5a2QIDwgbmF3YWJhc2hpZ29cIDsKK+Wkp+e+qeWQjeWIhiA8IHRhaWdpbWVpYnVuXCA7CivlkbzlkLjpgYvli5UgPCBrb2t5dXV1bmRvdVwgOwor6J665peL6ZqO5q61IDwgcmFzZW5rYWlkYW5cIDsKK+iLseiqnuaVmeiCsiA8IGVpZ29reW91aWt1XCA7CivosaHniZnmtbflsrggPCB6b3VnZWthaWdhblwgOwor5oiR54mp6aGUIDwgd2FnYW1vbm9nYW9cIDsKK+aXpeacrOiEs+eCjiA8IG5paG9uJydub3VlblwgOwor6aOf5aCC6LuKIDwgc2hva3Vkb3VzaGFcIDsKK+mBi+WWtuWnlOWToeS8miA8IHVuJydlaWlpbmthaVwgOwor5ZaE55+l6K2YIDwgemVuY2hpc2hpa2lcIDsKK+WSjOmtgua8ouaJjSA8IHdha29ua2Fuc2FpXCA7CivntYzllrblho3lu7ogPCBrZWllaXNhaWtlblwgOwor6ISz5LiL5Z6C5L2TIDwgbm91a2FzdWl0YWlcIDsKK+S4gOWGhuacrSA8IGljaGllbnNhdHN1XCA7CivoppbogbToppogPCBzaGljaG91a2FrdVwgOwor5Yuf6YeR6YGL5YuVIDwgYm9raW4nJ3VuZG91XCA7CivogJDnhrHpi7wgPCB0YWluZXRzdWtvdVwgOwor5Yi76Ium5YuJ5YqxIDwga29ra3ViZW5yZWlcIDsKK+aXouWpmueUt+aApyA8IGtpa29uZGFuc2VpXCA7Civpnanlkb3nmoQgPCBrYWt1bWVpdGVraVwgOwor5rK75rC05bel5LqLIDwgY2hpc3Vpa291amlcIDsKK+Wwj+S8keatoiA8IHNob3VreXV1c2hpXCA7Civml6XmnKzkurroq5YgPCBuaWhvbmppbnJvblwgOwor5aW95Y+W57WEIDwga291dG9yaWt1bWlcIDsKK+WNmuWlleWuvyA8IGJha3VjaGl5YWRvXCA7Civou43kuovlhazlgrUgPCBndW5qaWtvdXNhaVwgOwor5Y2B5Lq65Y2B6ImyIDwganV1bmludG9pcm9cIDsKK+eEoemFjeS8muekviA8IG11aGFpZ2Fpc2hhXCA7CivohLPosqfooYAgPCBub3VoaW5rZXRzdVwgOwor5a625peP5omL5b2TIDwga2F6b2t1dGVhdGVcIDsKK+a0l+ekvOW8jyA8IHNlbnJlaXNoaWtpXCA7CivnlLLpqqjmlocgPCBrb3Vrb3RzdWJ1blwgOwor5pel6YqA5Yi4IDwgbmljaGlnaW5rZW5cIDsKK+e+hemHneebpOW6pyA8IHJhc2hpbmJhbnphXCA7Civnpo/npYnmqZ/lmaggPCBmdWt1c2hpa2lraVwgOwor6LKn5rCR56qfIDwgaGlubWlua3V0c3VcIDsKK+WlieeMrueJqSA8IGhvdWtlbmJ1dHN1XCA7Civlrp/mpa3lrrYgPCBqaXRzdWd5b3VrYVwgOwor6IO4566X55SoIDwgbXVuZXphbicneW91XCA7CivmmqvlrprkuojnrpcgPCB6YW50ZWl5b3NhblwgOwor6Ieq6LK75Ye654mIIDwgamloaXNodXBwYW5cIDsKK+WGrOacqOeriyA8IGZ1eXVrb2RhY2hpXCA7CivluLjnlKjmvKLlrZcgPCBqb3V5b3VrYW5qaVwgOwor57WQ57Su57O4IDwga2Vzc2F0c3VzaGlcIDsKK+eOi+S+r+iytOaXjyA8IG91a291a2l6b2t1XCA7CivpgIblrqPkvJ0gPCBneWFrdXNlbmRlblwgOwor5Lq65L2T5qih5Z6LIDwgamludGFpbW9rZWlcIDsKK+murue0heiJsiA8IHNlbmtvdXNob2t1XCA7CivlhaXlm73nqI4gPCBueXV1a29rdXplaVwgOwor5pel6KW/6L6e5YW4IDwgbmlzc2Vpaml0ZW5cIDsKK+engeWEgCA8IHdhdGFrdXNoaWdpXCA7CivmhJ/mg4Xnp7vlhaUgPCBrYW5qb3Vpbnl1dVwgOwor5ouh5aSn6Y+hIDwga2FrdWRhaWt5b3VcIDsKK+WcsOaWueertummrCA8IGNoaWhvdWtlaWJhXCA7CivpgZPmpb3ogIUgPCBkb3VyYWt1bW9ub1wgOwor5aWz5oi/5b25IDwgbnlvdWJvdXlha3VcIDsKK+adoee0hOWbvSA8IGpvdXlha3Vrb2t1XCA7CivlipvotrMgPCBjaGlrYXJhYXNoaVwgOwor57WM5riI5Yq55p6cIDwga2VpemFpa291a2FcIDsKK+S7o+abv+eJqSA8IGRhaXRhaWJ1dHN1XCA7Civmt7flh53lnJ8gPCBrb25rdXJpemV0b1wgOwor5rCR5LqL6Ki06KifIDwgbWluamlzb3Nob3VcIDsKK+WMluWtpuiomOWPtyA8IGthZ2FrdWtpZ291XCA7Civnp4HkvpsgPCB3YXRhc2hpZG9tb1wgOwor5Y+C5Yqg5oSP6K2YIDwgc2Fua2Fpc2hpa2lcIDsKK+aIpuaZguS9k+WItiA8IHNlbmppdGFpc2VpXCA7Civoh6rnlLHluILloLQgPCBqaXl1dXNoaWpvdVwgOwor5Ya35oi/5a6M5YKZIDwgcmVpYm91a2FuYmlcIDsKK+iHquW3seWPjOWvviA8IGppa29zb3V0c3VpXCA7Civmtojmr5LliaQgPCBzaG91ZG9rdXphaVwgOwor5Yqb6LKgIDwgY2hpa2FyYW1ha2VcIDsKK+eBq+eHteaOm+W4gyA8IGtvdGF0c3VnYWtlXCA7CivkuIfog73olqwgPCBtYW4nJ25vdXlha3VcIDsKK+S/oeaGkeaApyA8IHNoaW5weW91c2VpXCA7CivluIzmnJvkvqHmoLwgPCBraWJvdWtha2FrdVwgOwor5YiX5Lyd5L2TIDwgcmV0c3VkZW50YWlcIDsKK+WPo+WPr+eskSA8IGt1Y2hpb2thc2hpXCA7Civpgbjlr77mnKzpg6ggPCBzZW50YWlob25idVwgOwor5YWI6aCt5omT6ICFIDwgc2VudG91ZGFzaGFcIDsKK+Wun+eUn+a0uyA8IGppc3NlaWthdHN1XCA7CivlkI3liY3nqbrplpMgPCBuYW1hZWt1dWthblwgOwor55m+5aeT5a62IDwgaHlha3VzaG91eWFcIDsKK+a1heiNiea1t+iLlCA8IGFzYWt1c2Fub3JpXCA7Civkuovmpa3mnKzpg6ggPCBqaWd5b3Vob25idVwgOwor55CG6KuW6ZeY5LqJIDwgcmlyb250b3Vzb3VcIDsKK+S6uuWPo+Wil+WKoCA8IGppbmtvdXpvdWthXCA7CivlpJbkuqTovp7ku6QgPCBnYWlrb3VqaXJlaVwgOwor5ZCM6Z+z55Ww576p6KqeIDwgZG91b24nJ2lnaWdvXCA7CivmsI/lp5PliLbluqYgPCBzaGlzZWlzZWlkb1wgOwor5LiA5bGA6YOoIDwgaWNoaWt5b2t1YnVcIDsKK+e4hOaWh+aZguS7oyA8IGpvdW1vbmppZGFpXCA7CivplpPkuIDpq6ogPCBrYW4nJ2lwcGF0c3VcIDsKK+S4lueVjOWkp+aIpiA8IHNla2FpdGFpc2VuXCA7CivmqZ/li5XmvJTnv5IgPCBraWRvdWVuc2h1dVwgOwor6Ieq6K2m5Zuj5ZOhIDwgamlrZWlkYW4nJ2luXCA7Civpm7vmsJfmirXmipcgPCBkZW5raXRlaWtvdVwgOwor6Y6n5LiA5YW3IDwgeW9yb2lpY2hpZ3VcIDsKK+eUuuS6uueJqSA8IGNob3VuaW5tb25vXCA7CivpgJroqLPlrpggPCB0c3V1eWFrdWthblwgOwor5b+F6KaB5oKqIDwgaGl0c3V5b3Vha3VcIDsKK+mJhOmBk+e2siA8IHRldHN1ZG91bW91XCA7Civljp/nlKPniakgPCBnZW5zYW5idXRzdVwgOwor5Zmo5qW95puyIDwga2lnYWt1a3lva3VcIDsKK+W/heimgeaApyA8IGhpdHN1eW91c2VpXCA7CivpmLLpn7Poo4Xnva4gPCBib3VvbnNvdWNoaVwgOwor5Y2K6Z2i6K2YIDwgaGFubWVuc2hpa2lcIDsKK+awtOa+hCA8IG1penVzdW1hc2hpXCA7Civlj5bmibEgPCB0b3JpYXRzdWthaVwgOwor5aSi5b+D5ZywIDwgeXVtZWdva29jaGlcIDsKK+iyoOWCteWQiOioiCA8IGZ1c2FpZ291a2VpXCA7Civku4rpgLHkuK0gPCBrb25zaHV1Y2h1dVwgOwor6Kmx5LiL5omLIDwgaGFuYXNoaWJldGFcIDsKK+mBiui7jeiomOiAhSA8IHl1dWd1bmtpc2hhXCA7CivkvqHlgKTkvZPns7sgPCBrYWNoaXRhaWtlaVwgOwor5LqM6YeN57WQ5amaIDwgbmlqdXVrZWtrb25cIDsKK+S4gOmVt+S4gOefrSA8IGl0Y2hvdWl0dGFuXCA7CivorbfpgIHoiLnlm6MgPCBnb3NvdXNlbmRhblwgOwor54qv6KGM54++5aC0IDwgaGFua291Z2VuYmFcIDsKK+aEj+imi+W6g+WRiiA8IGlrZW5rb3Vrb2t1XCA7CivlsI/kuZfnmoQgPCBzaG91am91dGVraVwgOwor5ZaE5Zug5ZaE5p6cIDwgemVuJydpbnplbmthXCA7Civnq4vohJrngrkgPCByaWtreWFrdXRlblwgOwor6YmE5YWcIDwgdGV0c3VrYWJ1dG9cIDsKK+eEoeS6uuWcsOW4ryA8IG11amluY2hpdGFpXCA7CivntYzllrbou6Lmj5sgPCBrZWllaXRlbmthblwgOwor5LiN5L+h5a6fIDwgZnVzaGluaml0c3VcIDsKK+iyqeWjsuapn+S8miA8IGhhbmJhaWtpa2FpXCA7CivkuonlparmiKYgPCBzb3VkYXRzdXNlblwgOwor5ZWG5a2m5aOrIDwgc2hvdWdha3VzaGlcIDsKK+S4iuWxi+aVtyA8IGthbWl5YXNoaWtpXCA7Civoi6XlpKflsIYgPCB3YWthZGFpc2hvdVwgOwor6YGg6ZqU5pON5L2cIDwgZW5rYWt1c291c2FcIDsKK+aTjeiIteWupCA8IHNvdWRhc2hpdHN1XCA7CivmiJDkurrlvI8gPCBzZWlqaW5zaGlraVwgOwor5oWj55So6Kqe5Y+lIDwga2FuJyd5b3Vnb2t1XCA7CivmtrLkvZPnqbrmsJcgPCBla2l0YWlrdXVraVwgOwor5paw6Z2i55uuIDwgc2hpbm1lbm1va3VcIDsKK+azqOaWh+acjSA8IGNodXVtb25mdWt1XCA7CivkuIrmo5/lvI8gPCBqb3V0b3VzaGlraVwgOwor6LWk6YqF6ImyIDwgc2hha3Vkb3Vpcm9cIDsKK+WHuuWIg+WMheS4gSA8IGRlYmFib3VjaG91XCA7CivlkJHlrablv4MgPCBrb3VnYWt1c2hpblwgOwor5riH5pyb6ICFIDwga2F0c3Vib3VzaGFcIDsKK+Wcn+iumuacrOe3miA8IGRvc2FuaG9uc2VuXCA7CivosqHmlL/mlK/mj7QgPCB6YWlzZWlzaGllblwgOwor5a6u5bu355S75a62IDwga3l1dXRlaWdha2FcIDsKK+Wft+mBlOWQjyA8IHNoaXR0YXRzdXJpXCA7CivmnIDlvozliJfou4ogPCBzYWlnb3Jlc3NoYVwgOwor55CG5bel5a2m6YOoIDwgcmlrb3VnYWt1YnVcIDsKK+S/neeuoeS8muekviA8IGhva2FuZ2Fpc2hhXCA7CivkuZflv4PlnLAgPCBub3JpZ29rb2NoaVwgOwor6YWN5ZCI56aB5b+MIDwgaGFpZ291a2lua2lcIDsKK+W8lOelreaWmSA8IGNob3VzYWlyeW91XCA7CivpgY7libDmipXos4cgPCBrYWpvdXRvdXNoaVwgOwor5a626ZW35Yi25bqmIDwga2FjaG91c2VpZG9cIDsKK+WPr+iBtOi3nemboiA8IGthY2hvdWt5b3JpXCA7CivkuIvmpJzliIYgPCBzaGl0YWtlbmJ1blwgOwor6Kaq6aGe57iB6ICFIDwgc2hpbnJ1aWVuamFcIDsKK+mWi+WCrOW8jyA8IGthaXNhaXNoaWtpXCA7CivnlLDoiI7lqJggPCBpbmFrYW11c3VtZVwgOwor566x54Gr6YmiIDwgaGFrb2hpYmFjaGlcIDsKK+eEoeeQhuW/g+S4rSA8IG11cmlzaGluanV1XCA7Civlia/pppbnm7ggPCBmdWt1c2h1c2hvdVwgOwor5bm06LOA6JGJ5pu4IDwgbmVuZ2FoYWdha2lcIDsKK+aVteaEvuW/gyA8IHRla2lnYWlzaGluXCA7Civph4jnqbrmtbcgPCBzaGFrdWt1dWthaVwgOwor6YCj6YKm5LqI566XIDwgcmVucG91eW9zYW5cIDsKK+e1hOe5lOelqCA8IHNvc2hpa2loeW91XCA7Civlh7rouqvogIUgPCBzaHVzc2hpbnNoYVwgOwor5Ym15L6h5a2m5LyaIDwgc291a2FnYWtrYWlcIDsKK+S7leS6i+mHjyA8IHNoaWdvdG9yeW91XCA7CivljYrmnIjlvaIgPCBoYW5nZXRzdWtlaVwgOwor5YiG5a2Q6KqsIDwgYnVuc2hpc2V0c3VcIDsKK+WNiuaciOW8gSA8IGhhbmdldHN1YmVuXCA7CivmraPnrZTnjocgPCBzZWl0b3VyaXRzdVwgOwor5Yip5a2Q6KOc57WmIDwgcmlzaGlob2t5dXVcIDsKK+Wto+evgOeahCA8IGtpc2V0c3V0ZWtpXCA7CivmsLfmnpUgPCBrb29yaW1ha3VyYVwgOwor5rC05p+xIDwgbWl6dWJhc2hpcmFcIDsKK+agueacrOWOn+eQhiA8IGtvbnBvbmdlbnJpXCA7Civlronlhajkv53pmpwgPCBhbnplbmhvc2hvdVwgOwor5Y6f5a2Q6KqsIDwgZ2Vuc2hpc2V0c3VcIDsKK+WBpeW6t+S/nemZuiA8IGtlbmtvdWhva2VuXCA7Civmmpfpu5LmmYLku6MgPCBhbmtva3VqaWRhaVwgOwor5LiW5Luj5Lqk5LujIDwgc2VkYWlrb3V0YWlcIDsKK+elnuWYl+elrSA8IGthbicnbmFtZXNhaVwgOwor5qGn6Iie5Y+wIDwgaGlub2tpYnV0YWlcIDsKK+i7oumAgembu+ipsSA8IHRlbnNvdWRlbndhXCA7Civlr77lsYDogIUgPCB0YWlreW9rdXNoYVwgOwor6LKd5q676aqoIDwga2FpZ2FyYWJvbmVcIDsKK+WNg+S4oeeusSA8IHNlbnJ5b3ViYWtvXCA7CivmmK3lkozmmYLku6MgPCBzaG91d2FqaWRhaVwgOwor57SU5Y+O5YWlIDwganVuc2h1dW55dXVcIDsKK+eJqeeQhueahCA8IGJ1dHN1cml0ZWtpXCA7CivmnpfnlKPniakgPCByaW5zYW5idXRzdVwgOwor56qB54S25q27IDwgdG90c3V6ZW5zaGlcIDsKK+S9v+eUqOioseWPryA8IHNoaXlvdWt5b2thXCA7CivoqLzlj5bms5UgPCBzaG91dG9yaWhvdVwgOwor5q205Y+y55qEIDwgcmVraXNoaXRla2lcIDsKK+e1hOe5lOeahCA8IHNvc2hpa2l0ZWtpXCA7CivotIjlkYjlvI8gPCB6b3V0ZWlzaGlraVwgOwor56mN6LyJ6YePIDwgc2VraXNhaXJ5b3VcIDsKK+iHqueZuueahCA8IGppaGF0c3V0ZWtpXCA7Civlt7EgPCB0c3VjaGlub3RvXCA7CivlsaEgPCBzaGliYXNoaWJhXCA7CivorIAgPCBoYWthcmlnb3RvXCA7Civnhp8gPCB0c3VrdWR6dWt1XCA7CivlmLQgPCBrdWNoaWJhc2hpXCA7CivjgIUgPCBrdXJpa2Flc2hpXCA7CivlnJ/nn7PmtYEgPCBkb3Nla2lyeXV1XCA7CivluILnlLrmnZEgPCBzaGljaG91c29uXCA7Civpn7Pmpb3mmKDnlLsgPCBvbmdha3VlaWdhXCA7Civpo5/loanmsLQgPCBzaG9rdWVuc3VpXCA7CivmvaTmu5HmsrkgPCBqdW5rYXRzdXl1XCA7CivmtYHmmJ/nvqQgPCByeXV1c2VpZ3VuXCA7CivlpZHntITph5EgPCBrZWl5YWt1a2luXCA7CivmsbrorbDmlocgPCBrZXRzdWdpYnVuXCA7CivokrjnlZnphZIgPCBqb3VyeXV1c2h1XCA7Civph53okYnmqLkgPCBzaGluJyd5b3VqdVwgOwor54yb5YuJ5by3IDwgbW91YmVua3lvdVwgOwor5a6H5a6Z6YGK5rOzIDwgdWNodXV5dXVlaVwgOwor5rex5Yi75YyWIDwgc2hpbmtva3VrYVwgOwor5YiH6YCaIDwga2lyaWRvb3NoaVwgOwor5omA5b6X6aGUIDwgdG9rb3JvZWdhb1wgOwor5b6h5a6i5qeYIDwgb2t5YWt1c2FtYVwgOwor6JS15pu456WoIDwgem91c2hvaHlvdVwgOwor5Lq65bel6ZuqIDwgamlua291eXVraVwgOwor5ZCM6IW55LuUIDwgZG91ZnVrdXNoaVwgOwor5bCE5YCW5b+DIDwgc2hha291c2hpblwgOwor5L+d5YGl5Yi25bqmIDwgaG9rZW5zZWlkb1wgOwor5rqW5YKZ6YGL5YuVIDwganVuYml1bmRvdVwgOwor5Luj6K2w5Yi25bqmIDwgZGFpZ2lzZWlkb1wgOwor5Y2a5aOr5Y+3IDwgaGFrdXNoaWdvdVwgOwor5YWl5ryB6ICFIDwgbnl1dWd5b3NoYVwgOwor5Yil6Zmk5qipIDwgYmV0c3Vqb2tlblwgOwor5oim6ZeY5pyNIDwgc2VudG91ZnVrdVwgOwor5qih5Z6L5Zyw5ZuzIDwgbW9rZWljaGl6dVwgOwor6aSK6baP5qWtIDwgeW91a2VpZ3lvdVwgOwor6K2w5rG65qipIDwgZ2lrZXRzdWtlblwgOwor5YWl5ZyS5paZIDwgbnl1dWVucnlvdVwgOwor5YSq5YWI55qEIDwgeXV1c2VudGVraVwgOwor54Sh6Iy26Ium6Iy2IDwgbXVjaGFrdWNoYVwgOwor5ZCM5LiA6KaWIDwgZG91aXRzdXNoaVwgOwor5Y+k5b6A5LuK5p2lIDwga29vdWtvbnJhaVwgOwor6Zuj6KGM6YGTIDwgbmFuZ3lvdWRvdVwgOwor6YG65aSx5ZOBIDwgaXNoaXRzdWhpblwgOwor6aOf5paH5YyWIDwgc2hva3VidW5rYVwgOwor6a+w6autIDwgbmFtYXp1aGlnZVwgOwor5rCR5Li75Zu9IDwgbWluc2h1a29rdVwgOwor5YaN5biw54axIDwgc2Fpa2luZXRzdVwgOwor54Kt5YyW54mpIDwgdGFua2FidXRzdVwgOwor5pat54mH55qEIDwgZGFucGVudGVraVwgOwor5rq65q275L2TIDwgZGVraXNoaXRhaVwgOwor5rW35rSL5a2mIDwga2FpeW91Z2FrdVwgOwor5q2v56We57WMIDwgc2hpc2hpbmtlaVwgOwor5Y+j5Y+jIDwga3VjaGlndWNoaVwgOwor5Y+N5oqX55qEIDwgaGFua291dGVraVwgOwor6ZaL5YKs5Zu9IDwga2Fpc2Fpa29rdVwgOwor5b6h5Lih6KaqIDwgZ29yeW91c2hpblwgOwor5pGp5Yip5pSv5aSpIDwgbWFyaXNoaXRlblwgOwor5L+u5q2j5rayIDwgc2h1dXNlaWVraVwgOwor5Yid6KmjIDwgaGF0c3Vtb3VkZVwgOwor55+z55WzIDwgaXNoaWRhdGFtaVwgOwor5Lq654K65reY5rGwIDwgamluJydpdG91dGFcIDsKK+WOmueUn+ecgSA8IGtvdXNlaXNob3VcIDsKK+mAhuiqrCA8IGd5YWt1c2V0c3VcIDsKK+mrmOe0mui7iiA8IGtvdWt5dXVzaGFcIDsKK+i7n+aWh+WtpiA8IG5hbmJ1bmdha3VcIDsKK+eovOWDjeaZgumWkyA8IGthZG91amlrYW5cIDsKK+ippuS9nOWTgSA8IHNoaXNha3VoaW5cIDsKK+ims+imp+aWmSA8IGthbnJhbnJ5b3VcIDsKK+S4jeS/oeS7uyA8IGZ1c2hpbicnbmluXCA7CivojLjpm7IgPCBraW5va29ndW1vXCA7Civov5HpgZMgPCBjaGlrYW1pY2hpXCA7CivkuInohJrmnrYgPCBzYW5reWFrdWthXCA7CivlpInmhYvnmoQgPCBoZW50YWl0ZWtpXCA7CivljLvnmYLliLbluqYgPCBpcnlvdXNlaWRvXCA7Civov5Hov5EgPCBjaGlrYWRqaWthXCA7CivkuZ7pq5joqZUgPCBrb3Vrb3VoeW91XCA7CivmsLTlv4MgPCBtaXp1Z29rb3JvXCA7Civmr5vmsIjoi5QgPCBtb3VzZW5nb2tlXCA7CivpnaLnvbXnvbXlgJIgPCBtZW5iYWJhdG91XCA7CivkuInlsLrluK8gPCBzYW5qYWt1b2JpXCA7Civlv5zmgKXnrZYgPCBvdWt5dXVzYWt1XCA7CivnoILnhZkgPCBzdW5ha2VtdXJpXCA7CivkurrpgZPnmoQgPCBqaW5kb3V0ZWtpXCA7CivmtbfphbjmvL8gPCB1bWlob296dWtpXCA7Civmib/oqo3nirYgPCBzaG91bmluam91XCA7Civpmo/nrYblrrYgPCB6dWloaXRzdWthXCA7CivmoLjono3lkIggPCBrYWt1eXV1Z291XCA7Civmir3pgbjliLggPCBjaHV1c2Vua2VuXCA7Civlt53prZogPCBrYXdhemFrYW5hXCA7CivlhY3oqLHoqLwgPCBtZW5reW9zaG91XCA7Civnvo7lrrnooZMgPCBiaXlvdWp1dHN1XCA7Civoo4/osrjlsYsgPCB1cmFnYXNoaXlhXCA7CivpmLLmr5LpnaIgPCBib3Vkb2t1bWVuXCA7CivlvIHmhbbon7kgPCBiZW5rZWlnYW5pXCA7Civlja/lubQgPCB1c2FnaWRvc2hpXCA7Civkuoznt5rlvI8gPCBuaXNlbnNoaWtpXCA7Civlv4XopoHkuosgPCBoaXRzdXlvdWppXCA7CivnmbrmmI7lrrYgPCBoYXRzdW1laWthXCA7Civni6zoo4HogIUgPCBkb2t1c2Fpc2hhXCA7CivnnLrmnJvmqKkgPCBjaG91Ym91a2VuXCA7CivlhoXpgJrogIUgPCBuYWl0c3V1c2hhXCA7CivkuK3plbfmnJ8gPCBjaHV1Y2hvdWtpXCA7CivpgbjmjJnpgZXlj40gPCBzZW5reW9paGFuXCA7Civnj77osaHoq5YgPCBnZW5zaG91cm9uXCA7CivprZTooZPluKsgPCBtYWp1dHN1c2hpXCA7Civlm73lnJ/luoEgPCBrb2t1ZG9jaG91XCA7CivnqY3liIbms5UgPCBzZWtpYnVuaG91XCA7Civkv6Hlj7fnga8gPCBzaGluZ291dG91XCA7CivljYrpmbDpmb0gPCBoYW4nJ2luJyd5b3VcIDsKK+aXpeacrOaZgumWkyA8IG5paG9uamlrYW5cIDsKK+i+u+i+uyA8IHRzdWppdHN1amlcIDsKK+W5s+mdoumPoSA8IGhlaW1lbmt5b3VcIDsKK+WMl+aelSA8IGtpdGFtYWt1cmFcIDsKK+WuhemFjeS+vyA8IHRha3VoYWliaW5cIDsKK+iQjue4rueXhyA8IGlzaHVrdXNob3VcIDsKK+WkqeebruWxsSA8IHRlbm1va3V6YW5cIDsKK+WBj+W5s+i2syA8IGhlbnBlaXNva3VcIDsKK+azleWtpuWjqyA8IGhvdWdha3VzaGlcIDsKK+WltOmat+WItuW6piA8IGRvcmVpc2VpZG9cIDsKK+ani+mAoOS/neaMgSA8IGtvdXpvdWhvamlcIDsKK+eiuuWftyA8IGtha3VzaGl0c3VcIDsKK+awt+WupCA8IGh5b3VzaGl0c3VcIDsKK+eZuueFmeetkiA8IGhhdHN1ZW50b3VcIDsKK+WBtOmgreiRiSA8IHNva3V0b3V5b3VcIDsKK+Wkqeeah+adryA8IHRlbicnbm91aGFpXCA7CivntLDog57moLggPCBzYWlib3VrYWt1XCA7Civoh6rli5Xou4rljJYgPCBqaWRvdXNoYWthXCA7Civni6zmk4XloLQgPCBkb2t1c2Vuam91XCA7Civml6XmnKzmm7jntIAgPCBuaWhvbnNob2tpXCA7Civoo73pi7zmpa0gPCBzZWlrb3VneW91XCA7CivlhYnnhrHosrsgPCBrb3VuZXRzdWhpXCA7CivmhJvpg7flv4MgPCBhaWt5b3VzaGluXCA7CivmsbrliKUgPCBrZXRzdWJldHN1XCA7CivnlJ/nlKPpq5ggPCBzZWlzYW5kYWthXCA7CivmtbfmsLTmtbQgPCBrYWlzdWl5b2t1XCA7Civku67nuYPluK8gPCBrYXJpaG91dGFpXCA7Civlj4rnrKzogIUgPCBreXV1ZGFpc2hhXCA7CivlvozmioAgPCB1c2hpcm93YXphXCA7CivljY3lt7QgPCBtYW5qaWRvbW9lXCA7CivnsbPpmbjou40gPCBiZWlyaWt1Z3VuXCA7Civlv4PlrqQgPCBzaGluc2hpdHN1XCA7Civms6jmloflk4EgPCBjaHV1bW9uaGluXCA7CivmgZLluLjnmoQgPCBrb3Vqb3V0ZWtpXCA7CivkurrlvaLluKsgPCBuaW5neW91c2hpXCA7CivmprTmlaPlvL4gPCByeXV1c2FuZGFuXCA7Civnmbrpm7vmqZ8gPCBoYXRzdWRlbmtpXCA7CivkuI3nqbrmiJDlsLEgPCBmdWt1dWpvdWp1XCA7Civml6fluILooZcgPCBreXV1c2hpZ2FpXCA7CivoprPopqfluK0gPCBrYW5yYW5zZWtpXCA7Civlrp/nlKjljJYgPCBqaXRzdXlvdWthXCA7CivogIPnj77lraYgPCBrb3VnZW5nYWt1XCA7CivlubPlkozpgYvli5UgPCBoZWl3YXVuZG91XCA7CivlhazlrprmranlkIggPCBrb3V0ZWlidWFpXCA7CivlpKnooaPnhKHnuKsgPCB0ZW4nJ2ltdWhvdVwgOwor6ZaL5YKs5LitIDwga2Fpc2FpY2h1dVwgOwor55CG6Lev5pW054S2IDwgcmlyb3NlaXplblwgOwor552A6ImyIDwgY2hha3VzaG9rdVwgOwor5Y2X5Lqs57m75a2QIDwgbmFua2luanVzdVwgOwor5YaG6Y+hIDwgbWFydWthZ2FtaVwgOwor55Sj5qWt55WMIDwgc2FuZ3lvdWthaVwgOwor6YGj55u0IDwgeWFyaW5hb3NoaVwgOwor6Jma54Sh5Li7576pIDwga3lvbXVzaHVnaVwgOwor5bq25rCR5YqHIDwgc2hvbWluZ2VraVwgOwor5LiN5LuV5pyrIDwgZnVzaGltYXRzdVwgOwor5ZGG5rCX6ICFIDwgdXRzdWtlbW9ub1wgOwor6Kej5YmW5a2mIDwga2FpYm91Z2FrdVwgOwor5Luu5Z+L6JGsIDwga2FyaW1haXNvdVwgOwor6Yej6YGT5YW3IDwgdHN1cmlkb3VndVwgOwor55Sf55Sj6aGNIDwgc2Vpc2FuZ2FrdVwgOwor5oKy5YqH55qEIDwgaGlnZWtpdGVraVwgOwor552A6ISxIDwgY2hha3VkYXRzdVwgOwor5YyX5rC35rSLIDwgaG9wcHlvdXlvdVwgOwor5Y2B5LqM5pyIIDwganV1bmlnYXRzdVwgOwor5ZCM5a2m5bm0IDwgZG91Z2FrdW5lblwgOwor5b2X5pifIDwgaG91a2lib3NoaVwgOwor54++5Luj55qEIDwgZ2VuZGFpdGVraVwgOwor5aSi5Yik5patIDwgeXVtZWhhbmRhblwgOwor5bKz5Y+L5LyaIDwgZ2FrdXl1dWthaVwgOwor5YuY5a6a5bC7IDwga2Fuam91amlyaVwgOwor5YaG6YmLIDwgbWFydWdhbicnbmFcIDsKK+W+jOW+jCA8IG5vY2hpbm9jaGlcIDsKK+WQiOWuv+aJgCA8IGdhc3NodWt1am9cIDsKK+igseaDkeeahCA8IGtvd2FrdXRla2lcIDsKK+epuumWk+i7uCA8IGt1dWthbmppa3VcIDsKK+S4remWk+WxpCA8IGNodXVrYW5zb3VcIDsKK+eJuee0mumFkiA8IHRva2t5dXVzaHVcIDsKK+aoqeWogeS4u+e+qSA8IGtlbicnaXNodWdpXCA7CivljbjllYYgPCBvcm9zaGlzaG91XCA7CivnvbLlkI3lm70gPCBzaG9tZWlrb2t1XCA7CivovrvopIQgPCB0c3VqaXRzdW1hXCA7CivmsJfngo7kuIfkuIggPCBraWVuYmFuam91XCA7CivmvJTliofnmoQgPCBlbmdla2l0ZWtpXCA7CivkuqTmiKblm70gPCBrb3VzZW5rb2t1XCA7CivlpJblvaLnmoQgPCBnYWlrZWl0ZWtpXCA7CivkuK3plpPlrZAgPCBjaHV1a2Fuc2hpXCA7CivoirHpsLkgPCBoYW5hZ2F0c3VvXCA7CivmlbTmtYHlrZAgPCBzZWlyeXV1c2hpXCA7CivlhKrlhYjmoKogPCB5dXVzZW5rYWJ1XCA7Civnn63lhbXmgKUgPCB0YW5wZWlreXV1XCA7CivlvIHmhbbnuJ4gPCBiZW5rZWlqaW1hXCA7CivniaHkuLnpm6ogPCBib3RhbicneXVraVwgOwor5pac5qC85oCnIDwgc2hha2FrdXNlaVwgOwor6ba05Zi0IDwgdHN1cnVoYXNoaVwgOwor6auY6KeS56CyIDwga291a2FrdWhvdVwgOwor5q205bm06b2iIDwgcmVraW5lbnJlaVwgOwor54Sh5YiG5YilIDwgbXVmdW5iZXRzdVwgOwor5Yi65oif5oCnIDwgc2hpZ2VraXNlaVwgOwor5YWI6ZqjIDwgc2FraWRvbmFyaVwgOwor6YCa6KGM56iOIDwgdHN1dWtvdXplaVwgOwor6LaF6Ieq54S2IDwgY2hvdXNoaXplblwgOwor5YmK5rC35qmfIDwgc2FrdWh5b3VraVwgOwor5aWR57SE6ICFIDwga2VpeWFrdXNoYVwgOwor5aSc55uX6JmrIDwgeW90b3VtdXNoaVwgOwor5LiJ5LiJ5Lmd5bqmIDwgc2Fuc2Fua3Vkb1wgOwor5a6J5YWo546HIDwgYW56ZW5yaXRzdVwgOwor5Y6f5a2Q55eHIDwgZ2Vuc2hpc2hvdVwgOwor5Y6f5a2Q55eFIDwgZ2Vuc2hpYnlvdVwgOwor6KiI566X5qmf6ZaTIDwga2Vpc2Fua2ltYVwgOwor5a2j56+A5oSfIDwga2lzZXRzdWthblwgOwor5pen5YuY5a6aIDwga3l1dWthbmpvdVwgOwor5Luu6Kq/5Y2wIDwga2FyaWNob3VpblwgOwor56S85YSA5L2c5rOVIDwgcmVpZ2lzYWhvdVwgOwor5ruF6Iy26Ium6Iy2IDwgbWVjaGFrdWNoYVwgOwor5LmX6LuK6LODIDwgam91c2hhY2hpblwgOwor5bem6LazIDwgaGlkYXJpYXNoaVwgOwor6Ziy6Jmr5YmkIDwgYm91Y2h1dXphaVwgOwor5b6X5aSxIDwgdG9rdXNoaXRzdVwgOwor5qC45oim5LqJIDwga2FrdXNlbnNvdVwgOwor55m65aOy5pelIDwgaGF0c3ViYWliaVwgOwor6ICz5LiL6IW654KOIDwgamlrYXNlbicnZW5cIDsKK+Wumui2s+aVsCA8IHRlaXNva3VzdXVcIDsKK+efs+ayueWNseapnyA8IHNla2l5dWtpa2lcIDsKK+mHjOelnualvSA8IHNhdG9rYWd1cmFcIDsKK+WShOOAhSA8IHRvdHN1dG90c3VcIDsKK+iWqeaRqeiKiyA8IHNhdHN1bWFpbW9cIDsKK+WnpumAmue9qiA8IGthbnRzdXV6YWlcIDsKK+Wxseael+WtpiA8IHNhbnJpbmdha3VcIDsKK+WJr+itsOmVtyA8IGZ1a3VnaWNob3VcIDsKK+WIkeS6i+S6i+S7tiA8IGtlaWppamlrZW5cIDsKK+iIquepuueXhSA8IGtvdWt1dWJ5b3VcIDsKK+a8oui2iumfsyA8IGthbicnZXRzdW9uXCA7Civlh7rlhaXlj6MgPCBkZWlyaWd1Y2hpXCA7CivliKnnlKjkvqHlgKQgPCByaXlvdWthY2hpXCA7CivphZLlh6YgPCBzYWtlZG9rb3JvXCA7Civku67ntI3nqI4gPCBrYXJpbm91emVpXCA7Civnt4/lkIjnmoQgPCBzb3Vnb3V0ZWtpXCA7Civku7Loo4HogIUgPCBjaHV1c2Fpc2hhXCA7Civlh7rlsZXogIUgPCBzaHV0dGVuc2hhXCA7CivmtLvlrZfkvZMgPCBrYXRzdWppdGFpXCA7CivogpjpiYTnoLIgPCBoaWppZGVwcG91XCA7Civlr77ouaDlnLAgPCB0YWlzZWtpY2hpXCA7Civlm57nt5rosqDojbcgPCBrYWlzZW5mdWthXCA7Civlu7vmvJXmpa0gPCBrYWlzb3VneW91XCA7CivkvY7pmpznoo0gPCB0ZWlzaG91Z2FpXCA7CivmrbPmnIggPCB0b3NoaXRzdWtpXCA7CivmrovkvZnpoY0gPCB6YW4nJ3lvZ2FrdVwgOwor5qiq6LuKIDwgeW9rb2d1cnVtYVwgOwor5rK755mC5rOVIDwgY2hpcnlvdWhvdVwgOwor5qmf5qKw5rK5IDwga2lrYWlhYnVyYVwgOwor6Ieq55m65oCnIDwgamloYXRzdXNlaVwgOwor5L+h5Y+35omLIDwgc2hpbmdvdXNodVwgOwor6aaW5bC+5LiA6LKrIDwgc2h1Ymlpa2thblwgOwor5Yy755mC5L+d6Zm6IDwgaXJ5b3Vob2tlblwgOwor5qCD5pyo55yMIDwgdG9jaGlnaWtlblwgOwor6Kq/5p+756WoIDwgY2hvdXNhaHlvdVwgOwor5q2m6KOF6Kej6ZmkIDwgYnVzb3VrYWlqb1wgOwor57eo5bm05Y+yIDwgaGVuJyduZW5zaGlcIDsKK+Wcn+edgOawkSA8IGRvY2hha3VtaW5cIDsKK+WNk+WHuiA8IHRha3VzaHV0c3VcIDsKK+mAsuWRiOacrCA8IHNoaW50ZWlib25cIDsKK+eRnuWuneeroCA8IHp1aWhvdXNob3VcIDsKK+ihqOaEj+aWh+WtlyA8IGh5b3VpbW9uamlcIDsKK+iQvemBuOiAhSA8IHJha3VzZW5zaGFcIDsKK+WGheWLmOWumiA8IHVjaGlrYW5qb3VcIDsKK+Wliee0jemhjSA8IGhvdW5vdWdha3VcIDsKK+W8j+aXpSA8IHNoaWtpaml0c3VcIDsKK+e0sOiDnuWtpiA8IHNhaWJvdWdha3VcIDsKK+mDveW4guWbveWutiA8IHRvc2hpa29ra2FcIDsKK+aenOWun+W6lyA8IGthaml0c3V0ZW5cIDsKK+eEoeeCuuW+kumjnyA8IG11aXRvc2hva3VcIDsKK+aYoOeUu+mfs+alvSA8IGVpZ2Fvbmdha3VcIDsKK+Wun+aZgumWkyA8IGppdHN1amlrYW5cIDsKK+WFpea8geaoqSA8IG55dXVneW9rZW5cIDsKK+WFpeizqiA8IG55dXVzaGljaGlcIDsKK+iRl+S9nOiAhSA8IGNob3Nha3VzaGFcIDsKK+edgOedgCA8IGNoYWt1Y2hha3VcIDsKK+WNl+WBtCA8IG1pbmFtaWdhd2FcIDsKK+iEseiEguS5syA8IGRhc3NoaW55dXVcIDsKK+WJjeW+jOW3puWPsyA8IHplbmdvc2F5dXVcIDsKK+elreelgOaWmSA8IHNhaXNoaXJ5b3VcIDsKK+mHjuaIpueJueenkSA8IHlhc2VudG9ra2FcIDsKK+S4jee+iOWllOaUviA8IGZ1a2lob25wb3VcIDsKK+WGheW8geaFtiA8IHVjaGliZW5rZWlcIDsKK+WQkeS4iuW/gyA8IGtvdWpvdXNoaW5cIDsKK+S4gOaJi+iyqeWjsiA8IGl0dGVoYW5iYWlcIDsKK+eJp+e+iuiAhSA8IGJva3V5b3VzaGFcIDsKK+WPguims+S6uiA8IHNhbmthbicnbmluXCA7Civnmq7ooaMgPCBrYXdhZ29yb21vXCA7CivlnYfkuIDljJYgPCBraW4nJ2l0c3VrYVwgOwor5YWx5ZCM6ICFIDwga3lvdWRvdXNoYVwgOwor5piO5pyd5L2TIDwgbWluY2hvdXRhaVwgOwor5aGp6IOh5qSSIDwgc2hpb2tvc2hvdVwgOwor6ICQ6ZyH5oCnIDwgdGFpc2hpbnNlaVwgOwor5paw6KW/6JitIDwgbnnFq2rEq3JhbmRvXCA7CivljLrljLogPCBtYWNoaW1hY2hpXCA7CivnnYDnmbogPCBjaGFrdWhhdHN1XCA7CivkuIDmnprosp0gPCBpY2hpbWFpZ2FpXCA7CivkubHmmrTogIUgPCByYW5ib3Vtb25vXCA7CivlkITkuIDpg6ggPCBrYWt1aWNoaWJ1XCA7CivpmbDml6XlkJEgPCBrYWdlaGluYXRhXCA7CivntKvlrrjmrr8gPCBzaGlzaGluZGVuXCA7Civlub3pnIrmoKogPCB5dXVyZWlrYWJ1XCA7CivmiYDlvpfogIUgPCBzaG90b2t1c2hhXCA7Civou43kuovlipsgPCBndW5qaXJ5b2t1XCA7Civli53osqDkuosgPCBzaG91YnVnb3RvXCA7CivlvZPluqfpoJDph5EgPCB0b3V6YXlva2luXCA7CivoirHpi48gPCBoYW5hYmFzYW1pXCA7CivntabmsLTou4ogPCBreXV1c3Vpc2hhXCA7CivntLDog57lo4EgPCBzYWlib3VoZWtpXCA7Civluq3mvIYgPCBuaXdhdXJ1c2hpXCA7CivmoZzoirHniJvmvKsgPCBvdWthcmFubWFuXCA7Civlj6/pgIbmgKcgPCBrYWd5YWt1c2VpXCA7Civoh6rnlLHoh6rlnKggPCBqaXl1dWppemFpXCA7Civkub7nh6XnhKHlkbMgPCBrYW5zb3VtdW1pXCA7CivkuozpoIXlrprnkIYgPCBuaWtvdXRlaXJpXCA7Civmh7jos57ph5EgPCBrZW5zaG91a2luXCA7CivnoILltZAgPCBzdW5hYXJhc2hpXCA7CivlkKvll73olqwgPCBnYW5zb3V5YWt1XCA7CivopovlrabogIUgPCBrZW5nYWt1c2hhXCA7CivlhKrlhYjluK0gPCB5dXVzZW5zZWtpXCA7CivlsJHmlbDogIUgPCBzaG91c3V1c2hhXCA7CivlhbHlkIznt5ogPCBreW91ZG91c2VuXCA7CivlubTnlLcgPCB0b3NoaW90b2tvXCA7Civlj4rnrKzngrkgPCBreXV1ZGFpdGVuXCA7CivmtLvmgKfmsZrms6UgPCBrYXNzZWlvZGVpXCA7CivliIbpoZ7ooaggPCBidW5ydWloeW91XCA7Civov5HnnLzpj6EgPCBraW5nYW5reW91XCA7CivplqLmlbDml48gPCBrYW5zdXV6b2t1XCA7CivnlLrmnZHliLYgPCBjaG91c29uc2VpXCA7CivmpbXmgqrkurogPCBnb2t1YWt1bmluXCA7CivlvJXlj5fkurogPCBoaWtpdWtlbmluXCA7Civnt6jlubTkvZMgPCBoZW4nJ25lbnRhaVwgOwor5Luj6aGY5Lq6IDwgZGFpZ2FuJyduaW5cIDsKK+acieWKm+mmrCA8IHl1dXJ5b2t1YmFcIDsKK+asoeasoSA8IHRzdWdpdHN1Z2lcIDsKK+S4ieS4ieS6lOS6lCA8IHNhbnNhbmdvZ29cIDsKK+mZpOmbqui7iiA8IGpvc2V0c3VzaGFcIDsKK+Wkp+WvqemZoiA8IGRhaXNoaW4nJ2luXCA7CivnqI7plqLplbcgPCB6ZWlrYW5jaG91XCA7CivkuK3plpPkvZMgPCBjaHV1a2FudGFpXCA7Civmu4vppIrniakgPCBqaXlvdWJ1dHN1XCA7CivkuZ3lt6XlpKcgPCBreXV1a291ZGFpXCA7CivliIDnlrUgPCBrYXRhbmFraXp1XCA7CivliqDmub/lmaggPCBrYXNoaXRzdWtpXCA7CivmlrDoqILniYggPCBzaGludGVpYmFuXCA7CivpgZXmo5ogPCBjaGlnYWlkYW5hXCA7CivljYHkurrlipsgPCBqdXVuaW5yaWtpXCA7CivkuIvlrr/kurogPCBnZXNodWt1bmluXCA7CivlpKfmpa3niakgPCBvb3dhemFtb25vXCA7Civnm7TnrYYgPCBjaG9rdWhpdHN1XCA7CivlgbTpnaLoprMgPCBzb2t1bWVua2FuXCA7CivlvJDlv4MgPCBmdXRhZ29rb3JvXCA7Civnj77osaHnlYwgPCBnZW5zaG91a2FpXCA7Civov73oqabpqJMgPCB0c3Vpc2hpa2VuXCA7CivlhYjlpKnnmoQgPCBzZW50ZW50ZWtpXCA7Civlu7rnr4nlrrYgPCBrZW5jaGlrdWthXCA7CivmsLTph4/oqIggPCBzdWlyeW91a2VpXCA7Civnm7Tnq4sgPCBjaG9rdXJpdHN1XCA7CivlhZzon7kgPCBrYWJ1dG9nYW5pXCA7CivopqrooZvpmoogPCBzaGluJydlaXRhaVwgOwor55uy56qTIDwgbWVrdXJhbWFkb1wgOwor5YWI5aSp55eFIDwgc2VudGVuYnlvdVwgOwor57mB5q6W5pyfIDwgaGFuc2hva3VraVwgOwor6Ii55bm96ZyKIDwgZnVuYXl1dXJlaVwgOwor5rCR5peP5oCnIDwgbWluem9rdXNlaVwgOwor5b6h5LqG5om/IDwgZ29yeW91c2hvdVwgOwor5rC06JuH5bqnIDwgbWl6dWhlYml6YVwgOwor5oud5aSW55qEIDwgaGFpZ2FpdGVraVwgOwor5Yi65oif5YmkIDwgc2hpZ2VraXphaVwgOwor5omA5b6X56iOIDwgc2hvdG9rdXplaVwgOwor5qOJ5a6f5rK5IDwgbWVuaml0c3V5dVwgOwor5Ye6542EIDwgc2h1dHN1Z29rdVwgOwor5Ye654yfIDwgc2h1dHN1cnlvdVwgOwor5Yuk57aa6ICFIDwga2luem9rdXNoYVwgOwor5aSp55qH5Yi2IDwgdGVuJydub3VzZWlcIDsKK+WWq+eFmei7iiA8IGtpdHN1ZW5zaGFcIDsKK+Wun+e/kueUnyA8IGppc3NodXVzZWlcIDsKK+S9k+ezu+eahCA8IHRhaWtlaXRla2lcIDsKK+mBiuiIiOeojiA8IHl1dWt5b3V6ZWlcIDsKK+S/rumBk+WjqyA8IHNodXVkb3VzaGlcIDsKK+aWsOaVmeW+kiA8IHNoaW5reW91dG9cIDsKK+egguWfgyA8IHN1bmFib2tvcmlcIDsKK+WNmuimp+S8miA8IGhha3VyYW5rYWlcIDsKK+WJjeeZu+mMsiA8IHplbnRvdXJva3VcIDsKK+adsea0i+WtpiA8IHRvdXlvdWdha3VcIDsKK+Wkp+Wwhui7jSA8IGRhaXNob3VndW5cIDsKK+WcqOW6q+euoeeQhiA8IHphaWtva2FucmlcIDsKK+WOn+WtkOaguCA8IGdlbnNoaWtha3VcIDsKK+Wkp+WFrOWbvSA8IHRhaWtvdWtva3VcIDsKK+S8keaBr+aJgCA8IGt5dXVzb2t1am9cIDsKK+W3puiAsyA8IGhpZGFyaW1pbWlcIDsKK+mrmOmanOWusyA8IGtvdXNob3VnYWlcIDsKK+WKm+W4ryA8IGNoaWthcmFvYmlcIDsKK+axgumBk+iAhSA8IGt5dXVkb3VzaGFcIDsKK+WkqeWuiOmWoyA8IHRlbnNodWtha3VcIDsKK+egguWaoiA8IHN1bmFidWt1cm9cIDsKK+S5vueJqeWxiyA8IGthbmJ1dHN1eWFcIDsKK+awtOmJhOegsiA8IG1penVkZXBwb3VcIDsKK+WNg+S4ieWxiyA8IHNlbm1pdHN1eWFcIDsKK+WFpea4r+eojiA8IG55dXVrb3V6ZWlcIDsKK+mKgOihjOalrSA8IGdpbmtvdWd5b3VcIDsKK+eBq+eBveS/nemZuiA8IGthc2FpaG9rZW5cIDsKK+S8keaziuaJgCA8IGt5dXVoYWt1am9cIDsKK+S6uuW3peeahCA8IGppbmtvdXRla2lcIDsKK+e9teipiOmbkeiogCA8IGJhcml6b3Vnb25cIDsKK+WFieiYmiA8IGhpa2FyaWdva2VcIDsKK+iBtOimluiAhSA8IGNob3VzaGlzaGFcIDsKK+S4oeWbveiqniA8IHJ5b3Vrb2t1Z29cIDsKK+mBk+i3r+WwgemOliA8IGRvdXJvZnV1c2FcIDsKK+iKseipniA8IGhhbmFrb3RvYmFcIDsKK+mrmOeArOiInyA8IHRha2FzZWJ1bmVcIDsKK+e1hOe5lOWQjSA8IHNvc2hpa2ltZWlcIDsKK+WIneawtyA8IGhhdHN1Z29vcmlcIDsKK+WQjOacn+W8jyA8IGRvdWtpc2hpa2lcIDsKK+Wkp+iFuOiPjCA8IGRhaWNob3VraW5cIDsKK+WNiueLguS5sSA8IGhhbmt5b3VyYW5cIDsKK+i0heayouWTgSA8IHplaXRha3VoaW5cIDsKK+Wwj+WnlOWToeS8miA8IHNob3VpaW5rYWlcIDsKK+S4gOacrOmBkyA8IGlwcG9ubWljaGlcIDsKK+WIqea9pOeOhyA8IHJpanVucml0c3VcIDsKK+i/q+Wus+iAhSA8IGhha3VnYWlzaGFcIDsKK+Wkp+alteauvyA8IGRhaWdva3VkZW5cIDsKK+mHjemHj+aEnyA8IGp1dXJ5b3VrYW5cIDsKK+e+juWtpueahCA8IGJpZ2FrdXRla2lcIDsKK+WGmeeUn+W4syA8IHNoYXNlaWNob3VcIDsKK+S6pOa4ieWnlOWToSA8IGtvdXNob3VpaW5cIDsKK+W7g+ajhOeJqSA8IGhhaWtpYnV0c3VcIDsKK+mbu+ejgeefsyA8IGRlbmppc2hha3VcIDsKK+mAoOWWtueJqSA8IHpvdWVpYnV0c3VcIDsKK+aKgOihk+mdoiA8IGdpanV0c3VtZW5cIDsKK+S7lee9ruiAhSA8IHNoaW9raW1vbm9cIDsKK+iLpuiJviA8IG5pZ2F5b21vZ2lcIDsKK+aZguWIu+ihqCA8IGppa29rdWh5b3VcIDsKK+WQiOWQjOihjOeCuiA8IGdvdWRvdWtvdWlcIDsKK+eCiei+uuirh+ipsSA8IHJvaGVuZGFud2FcIDsKK+avkuenkeWtpiA8IGRva3VrYWdha3VcIDsKK+ebtOihjOS+vyA8IGNob2trb3ViaW5cIDsKK+aJi+WGheiBtyA8IHRlbmFpc2hva3VcIDsKK+aXheihjOWFiCA8IHJ5b2tvdXNha2lcIDsKK+aguOW8vumgrSA8IGtha3VkYW50b3VcIDsKK+mBjuWOu+WIhuipniA8IGtha29idW5zaGlcIDsKK+epuumbhuWQiCA8IGt1dXNodXVnb3VcIDsKK+eav+enpCA8IHNhcmFiYWthcmlcIDsKK+eJueioseaWmSA8IHRva2t5b3J5b3VcIDsKK+S4u+aDheeahCA8IHNodWpvdXRla2lcIDsKK+WWtuWIqeS8muekviA8IGVpcmlnYWlzaGFcIDsKK+abtOiho+WupCA8IGtvdWlzaGl0c3VcIDsKK+auuuS8kCA8IHNhdHN1YmF0c3VcIDsKK+S8muW4reiGsyA8IGthaXNla2l6ZW5cIDsKK+WNg+S4gOWknCA8IHNlbicnaWNoaXlhXCA7CivnnJ/nlLDntJAgPCBzYW5hZGFoaW1vXCA7CivpgZPlrabogIUgPCBkb3VnYWt1c2hhXCA7Civmj67nmbrmgKcgPCBraWhhdHN1c2VpXCA7CivmsrjjgIUgPCBmdXRzdWZ1dHN1XCA7Civlh7ros4fph5EgPCBzaHVzc2hpa2luXCA7CivniafnvorniqwgPCBib2t1eW91a2VuXCA7CivkurrkuovkuI3nnIEgPCBqaW5qaWZ1c2VpXCA7CivokrjnlZnmsLQgPCBqb3VyeXV1c3VpXCA7CivnlbDmgKfplqLkv4IgPCBpc2Vpa2Fua2VpXCA7CivnrYnlnKfnt5ogPCB0b3VhdHN1c2VuXCA7Civmr5LlkbPlvbkgPCBkb2t1bWl5YWt1XCA7CivlhY7ohKMgPCBtaXRzdWt1Y2hpXCA7CivkuovmlYXljp/lm6AgPCBqaWtvZ2VuJydpblwgOwor5YSq6Imv5bqXIDwgeXV1cnlvdXRlblwgOwor5YaF6Iq46ICFIDwgdWNoaWdlaXNoYVwgOwor5oKq6YGU6ICFIDwgd2FydWRhc3NoYVwgOwor5LiJ6Z2i6Y+hIDwgc2FubWVua3lvdVwgOwor54u46JWO6bqmIDwgdGFudWtpc29iYVwgOwor6KOP5pu45Lq6IDwgdXJhZ2FraW5pblwgOwor54m55aSn5Y+3IDwgdG9rdWRhaWdvdVwgOwor57WE57mU5L2TIDwgc29zaGlraXRhaVwgOwor54++5a6f5YyWIDwgZ2Vuaml0c3VrYVwgOwor5aSa55uu55qEIDwgdGFtb2t1dGVraVwgOwor5bCG5p2l5oCnIDwgc2hvdXJhaXNlaVwgOwor5LiA5Lq66IW5IDwgaGl0b3JpYmFyYVwgOwor5bqn5oqAIDwgc3V3YXJpd2F6YVwgOwor55S75LiA5YyWIDwga2FrdWl0c3VrYVwgOwor6YeN6YeR5bGeIDwganV1a2luem9rdVwgOwor6Imv6LOqIDwgcnlvdXNoaXRzdVwgOwor5qeN6KG+IDwgeWFyaWJ1c3VtYVwgOwor5a625Ye65bCR5aWzIDwgaWVkZXNob3Vqb1wgOwor56uL5Lya5Lq6IDwgdGFjaGlhaW5pblwgOwor5Y+k5YW45Li7576pIDwga290ZW5zaHVnaVwgOwor5LiN5rOV5oqV5qOEIDwgZnVob3V0b3VraVwgOwor6YCQ5pelIDwgY2hpa3VqaXRzdVwgOwor5q205Y+y5LiKIDwgcmVraXNoaWpvdVwgOwor6KO96YmE5omAIDwgc2VpdGV0c3Vqb1wgOwor6Iul57eRIDwgd2FrYW1pZG9yaVwgOwor5LiA5Lq66ICFIDwgaGl0b3JpbW9ub1wgOwor6LuK6LODIDwga3VydW1hY2hpblwgOwor5LqM6YeN6J665peLIDwgbmlqdXVyYXNlblwgOwor6YGu5pat5aOBIDwgc2hhZGFucGVraVwgOwor54m55aOy5aC0IDwgdG9rdWJhaWpvdVwgOwor5ZGK55+l5p2/IDwga29rdWNoaWJhblwgOwor5rKW56mN5pyfIDwgY2h1dXNla2lraVwgOwor5Luu6KiY5YWlIDwga2FyaWtpbnl1dVwgOwor5L+u6YGT5LyaIDwgc2h1dWRvdWthaVwgOwor5L2N55u46YCf5bqmIDwgaXNvdXNva3Vkb1wgOwor5qGf5qKv5a2QIDwgc2FuYmFzaGlnb1wgOwor55Wq5Y+35pytIDwgYmFuZ291ZnVkYVwgOwor5bCR5pWw54K5IDwgc2hvdXN1dXRlblwgOwor5bGx54yr5bqnIDwgeWFtYW5la296YVwgOwor5a+d5Y+w5Yi4IDwgc2hpbmRhaWtlblwgOwor5rC06YqA5p+xIDwgc3VpZ2luY2h1dVwgOwor6LWk5rW35LqAIDwgYWthdW1pZ2FtZVwgOwor6aqo55u45a2mIDwga29zc291Z2FrdVwgOwor6Z+z6Z+76YOo6ZaAIDwgb24nJ2luYnVtb25cIDsKK+apn+iDveS4u+e+qSA8IGtpbm91c2h1Z2lcIDsKK+Wkp+iHvOatryA8IGRhaWt5dXVzaGlcIDsKK+apn+aisOitpuWCmSA8IGtpa2Fpa2VpYmlcIDsKK+awkeaXj+WPsiA8IG1pbnpva3VzaGlcIDsKK+S6lOeonOmDrSA8IGdvcnlvdWtha3VcIDsKK+Wlkee0hOabuCA8IGtlaXlha3VzaG9cIDsKK+W9seazleW4qyA8IGthZ2Vib3VzaGlcIDsKK+mHkeWJm+efsyA8IGtvbmdvdXNla2lcIDsKK+eVkem8oCA8IGhhdGFuZXp1bWlcIDsKK+eJueioseW6gSA8IHRva2t5b2Nob3VcIDsKK+WfuuekjuippumokyA8IGtpc29zaGlrZW5cIDsKK+WutuW6reiPnOWckiA8IGthdGVpc2FpZW5cIDsKK+eJueWjsuWTgSA8IHRva3ViYWloaW5cIDsKK+mBk+i3r+W3peS6iyA8IGRvdXJva291amlcIDsKK+S4i+iri+iyoCA8IHNoaXRhdWtlb2lcIDsKK+WPjuepq+acnyA8IHNodXVrYWt1a2lcIDsKK+S6nOeIvueEtuS4gSA8IGFydXplbmNoaW5cIDsKK+Wbm+iLpuWFq+iLpiA8IHNoaWt1aGFra3VcIDsKK+edgOaJlSA8IGNoYWt1YmFyYWlcIDsKK+mZuOaIpumaiiA8IHJpa3VzZW50YWlcIDsKK+e1puawtOeuoSA8IGt5dXVzdWlrYW5cIDsKK+WnlOe0sOmdouirhyA8IGlzYWltZW5kYW5cIDsKK+elnuenmOeahCA8IHNoaW5waXRla2lcIDsKK+mHjemHj+WZuCA8IGp1dXJ5b3V0b25cIDsKK+WvvuagoeippuWQiCA8IHRhaWtvdWppYWlcIDsKK+WPjuepq+aZgiA8IHNodXVrYWt1amlcIDsKK+mrmOWcp+e4riA8IGtvdWFzc2h1a3VcIDsKK+iRl+S9nOaoqSA8IGNob3Nha3VrZW5cIDsKK+S6uuawl+S9nOWutiA8IG5pbmtpc2Fra2FcIDsKK+S7o+Wft+ihjCA8IGRhaXNoaWtrb3VcIDsKK+mZkOWumueahCA8IGdlbnRlaXRla2lcIDsKK+mrmOWcp+e3miA8IGtvdWF0c3VzZW5cIDsKK+S7ruaOoeeUqCA8IGthcmlzYWl5b3VcIDsKK+aaluWGrOeVsOWkiSA8IGRhbnRvdWloZW5cIDsKK+WHuuaSgyA8IHNodXRzdWdla2lcIDsKK+aUuemdqeiAhSA8IGthaWtha3VzaGFcIDsKK+WcsOS4i+mJhCA8IGNoaWthdGV0c3VcIDsKK+WwiueOi+WFmiA8IHNvbicnbm91dG91XCA7CivlnJ/kv7XpmpsgPCBkb2h5b3VnaXdhXCA7CivlpKflsbHnjKsgPCBvb3lhbWFuZWtvXCA7CivoiKrnqbrlraYgPCBrb3VrdXVnYWt1XCA7Civljp/mnZDmlpkgPCBnZW56YWlyeW91XCA7Civlh7rnlKPmlbAgPCBzaHVzc2Fuc3V1XCA7CivmrITlj4LnhacgPCByYW5zYW5zaG91XCA7Civlh7rnlJ/mlbAgPCBzaHVzc2Vpc3V1XCA7CivlrojlgpnnjocgPCBzaHViaXJpdHN1XCA7CivmlofoirjlraYgPCBidW5nZWlnYWt1XCA7CivlpbPmgKfkuIDoiKwgPCBqb3NlaWlwcGFuXCA7CivntIXlhqDps6UgPCBrb3VrYW5jaG91XCA7CivliJ3loLTmiYAgPCBoYXRzdWJhc2hvXCA7CivkubPnirbmtrIgPCBueXV1am91ZWtpXCA7CivljZjlnZDlvI8gPCB0YW56YXNoaWtpXCA7CivlnKjnlZnmsJEgPCB6YWlyeXV1bWluXCA7Civnvo7poZTooZMgPCBiaWdhbmp1dHN1XCA7Civnha7msrjlmaggPCBzaGFmdXRzdWtpXCA7CivlhKroia/lk4EgPCB5dXVyeW91aGluXCA7CivmgKrnjaPmmKDnlLsgPCBrYWlqdXVlaWdhXCA7CivlpJrnqK7lpJrmp5ggPCB0YXNodXRheW91XCA7Civls6DpgZMgPCB0b3VnZW1pY2hpXCA7Civkuozpg6jmlZnmjoggPCBuaWJ1a3lvdWp1XCA7CivmiKbooZPlrrYgPCBzZW5qdXRzdWthXCA7CivpgJ/luqbpgZXlj40gPCBzb2t1ZG9paGFuXCA7Civku5XkuovluKsgPCBzaGlnb3Rvc2hpXCA7CivlubTlvLcgPCB0b3NoaWR6dXlvXCA7CivmqKrmlq3mranpgZMgPCBvdWRhbmhvZG91XCA7CivnhKHnlJ/niakgPCBtdXNlaWJ1dHN1XCA7Civpm5HmloflrrYgPCB6YXRzdWJ1bmthXCA7CivlkIzoqr/ogIUgPCBkb3VjaG91c2hhXCA7CivkuojntITluK0gPCB5b3lha3VzZWtpXCA7Civph5Hnn7PmlocgPCBraW5zZWtpYnVuXCA7Civnt7Tnv5LoiLkgPCByZW5zaHV1c2VuXCA7CivoiJfoo4XpgZPot68gPCBob3NvdWRvdXJvXCA7CivmuKzmt7HmqZ8gPCBzb2t1c2hpbmtpXCA7CivoibboibYgPCB0c3V5YXRzdXlhXCA7CivnmbropovmlpkgPCBoYWtrZW5yeW91XCA7CivooZLlrabogIUgPCBnZW5nYWt1c2hhXCA7CivlvJXlh7rniakgPCBoaWtpZGVtb25vXCA7CivplovmnrblvI8gPCBrYWlrYXNoaWtpXCA7CivljIXlkKvnmoQgPCBob3VnYW50ZWtpXCA7CivlkIjlpY/oqr8gPCBnYXNzb3VjaG91XCA7CivnlLDptZEgPCBob3RvdG9naXN1XCA7CivlhbHlkozlm70gPCBreW91d2Frb2t1XCA7Civlr6nliKTlk6EgPCBzaGlucGFuJydpblwgOwor54Sh57ea5oqA5birIDwgbXVzZW5naXNoaVwgOwor5riF5pyd5L2TIDwgc2VpY2hvdXRhaVwgOwor6aOb6bOl5pmC5LujIDwgYXN1a2FqaWRhaVwgOwor6KGo5pel5pysIDwgb21vdGVuaWhvblwgOwor54++5Luj5YqHIDwgZ2VuZGFpZ2VraVwgOwor5bGx6a+oIDwgeWFtYWt1amlyYVwgOwor5Y2z5Yq56JasIDwgc29ra291eWFrdVwgOwor5pel6YGL5YuVIDwgbmljaGl1bmRvdVwgOwor6I2J5p6VIDwga3VzYW1ha3VyYVwgOwor6IG36ZqO5Yi2IDwgc2hva2thaXNlaVwgOwor5YmN6LuK6Lu4IDwgemVuc2hhamlrdVwgOwor5Zue6Lev5Z+65p2/IDwga2Fpcm9raWJhblwgOwor5LiK5piH57eaIDwgam91c2hvdXNlblwgOwor5qmf5a+G5oCnIDwga2ltaXRzdXNlaVwgOwor5piO57Sw6KGoIDwgbWVpc2FpaHlvdVwgOwor5b2i5oiQ5aSW56eRIDwga2Vpc2VpZ2VrYVwgOwor5L+u6L6e5a2mIDwgc2h1dWppZ2FrdVwgOwor5ZCN6KqJ6IG3IDwgbWVpeW9zaG9rdVwgOwor5a6H5a6Z5YW15ZmoIDwgdWNodXVoZWlraVwgOwor5Zub5aSp546LIDwgc2hpdGVuJydub3VcIDsKK+eVsOW4uOawl+ixoSA8IGlqb3VraXNob3VcIDsKK+S6uuebuOWtpiA8IG5pbnNvdWdha3VcIDsKK+edgOWunyA8IGNoYWt1aml0c3VcIDsKK+aOiOalreaWmSA8IGp1Z3lvdXJ5b3VcIDsKK+mJm+S4reavkiA8IGVuY2h1dWRva3VcIDsKK+eEoeapn+WMluWtpiA8IG11a2lrYWdha3VcIDsKK+iHqueUseS4u+e+qSA8IGppeXV1c2h1Z2lcIDsKK+ayu+eZguS7oyA8IGNoaXJ5b3VkYWlcIDsKK+WCt+iWrCA8IGtpenVndXN1cmlcIDsKK+S9jeiomOi/vei0iCA8IGlraXRzdWlzb3VcIDsKK+W4r+m7hOiJsiA8IHRhaW91c2hva3VcIDsKK+iMtuafsSA8IGNoYWJhc2hpcmFcIDsKK+ebtOaOpSA8IGNob2t1c2V0c3VcIDsKK+W6leWcnyA8IHNva290c3VjaGlcIDsKK+Wun+WGmeaYoOeUuyA8IGppc3NoYWVpZ2FcIDsKK+i1t+W3peW8jyA8IGtpa291c2hpa2lcIDsKK+iHqueUseaZgumWkyA8IGppeXV1amlrYW5cIDsKK+eVs+mHnSA8IHRhdGFtaWhhcmlcIDsKK+eZuueGsSA8IGhhdHN1bmV0c3VcIDsKK+WIh+WunyA8IHNldHN1aml0c3VcIDsKK+WPluW+l+iAhSA8IHNodXRva3VzaGFcIDsKK+W+oeekvOWlieWFrCA8IG9yZWlib3Vrb3VcIDsKK+WxsemiqiA8IHlhbWFvcm9zaGlcIDsKK+aCquW5s+etiSA8IGFrdWJ5b3Vkb3VcIDsKK+WFieeJqSA8IGhpa2FyaW1vbm9cIDsKK+WJlOWHuiA8IHRla2lzaHV0c3VcIDsKK+eUn+mtmiA8IG5hbWF6YWthbmFcIDsKK+acseWtkOWtpiA8IHNodXNoaWdha3VcIDsKK+i7vemHkeWxniA8IGtlaWtpbnpva3VcIDsKK+WBpeiEmuWutiA8IGtlbmt5YWt1a2FcIDsKK+WFiOimmuiAhSA8IHNlbmtha3VzaGFcIDsKK+S4jeaVtOiEiCA8IGZ1c2VpbXlha3VcIDsKK+S7sumWk+WGhSA8IG5ha2FtYXVjaGlcIDsKK+WwhuadpeWDjyA8IHNob3VyYWl6b3VcIDsKK+S9juaVmeS8miA8IHRlaWt5b3VrYWlcIDsKK+aAp+ihneWLlSA8IHNlaXNob3Vkb3VcIDsKK+WckuiKuOeUqOWFtyA8IGVuZ2VpeW91Z3VcIDsKK+e0meiKneWxhSA8IGthbWlzaGliYWlcIDsKK+WBj+i+uiA8IGthdGFob3JvcmlcIDsKK+S9nOaIkOiAhSA8IHNha3VzZWlzaGFcIDsKK+WbnuaYpeWJpCA8IGthaXNodW56YWlcIDsKK+a2iOiyu+mHjyA8IHNob3VoaXJ5b3VcIDsKK+S4puijveWTgSA8IG5hbWlzZWloaW5cIDsKK+iKseeVkSA8IGhhbmFiYXRha2VcIDsKK+egtOiMtuebruiMtiA8IGhhY2hhbWVjaGFcIDsKK+WwguacieaoqSA8IHNlbicneXV1a2VuXCA7CivkuZfppqzpnbQgPCBqb3ViYWd1dHN1XCA7CivlgJnplpMgPCBzb3Vyb3VhaWRhXCA7CivkuI3nqY/mlofmm7ggPCBmdW9uYnVuc2hvXCA7Civlh7ros4fogIUgPCBzaHVzc2hpc2hhXCA7CivljJbnn7PlraYgPCBrYXNla2lnYWt1XCA7CivmvKLlrZfmlofljJYgPCBrYW5qaWJ1bmthXCA7CivogbToqLrlmaggPCBjaG91c2hpbmtpXCA7CivpgLLlh7ogPCBzaGluc2h1dHN1XCA7CivnjKnnjKnooIUgPCBzaG91am91YmFlXCA7CivkubHmlbDooaggPCByYW5zdXVoeW91XCA7CivkuojlgpnoqabpqJMgPCB5b2Jpc2hpa2VuXCA7CivlirTli5nnrqHnkIYgPCByb3VtdWthbnJpXCA7CivlupfljbggPCB0YW5hb3Jvc2hpXCA7Civln4vnq4vlnLAgPCB1bWV0YXRlY2hpXCA7CivlhbHlkIzmgKcgPCBreW91ZG91c2VpXCA7Civnhp/nt7TogIUgPCBqdWt1cmVuc2hhXCA7CivmnbHljJfmnbEgPCB0b3Vob2t1dG91XCA7CivlubPlkozkvJrorbAgPCBoZWl3YWthaWdpXCA7CivnlaXov7AgPCByeWFrdWp1dHN1XCA7CivnlJ/kvZPohpwgPCBzZWl0YWltYWt1XCA7Civku7vli5npg6jpmoogPCBuaW5tdWJ1dGFpXCA7CivmsJHooYbpp4UgPCBtaW5zaHV1ZWtpXCA7Civlroflrpnpo58gPCB1Y2h1dXNob2t1XCA7CivluLjluLggPCB0c3VuZWR6dW5lXCA7Civml6XlhYnmtbQgPCBuaWtrb3V5b2t1XCA7Civku6PmlbDlraYgPCBkYWlzdXVnYWt1XCA7CivlsI/plpPnianlsYsgPCBrb21hbW9ub3lhXCA7Civog73lvbnogIUgPCBub3V5YWt1c2hhXCA7CivmspbnqY3lnJ8gPCBjaHV1c2VraWRvXCA7CivlvJXlipvlnI8gPCBpbnJ5b2t1a2VuXCA7CivliKXlj6MgPCBiZXRzdWt1Y2hpXCA7CivkuK3mipjluL0gPCBuYWthb3JlYm91XCA7CivpnZ7mtLvli5UgPCBoaWthdHN1ZG91XCA7CivnuKbmqKrnhKHlsL0gPCBqdXVvdW11amluXCA7CivlhavmqYsgPCB5YXRzdWhhc2hpXCA7Civlm73lrrbkuLvnvqkgPCBrb2trYXNodWdpXCA7CivpgY7libDmipXkuI4gPCBrYWpvdXRvdXlvXCA7Civoq5bnkIblm57ot68gPCByb25yaWthaXJvXCA7CivmnInlip/nq6AgPCB5dXVrb3VzaG91XCA7CivmipXnpajogIUgPCB0b3VoeW91c2hhXCA7CivmlLvmkoPpmoogPCBrb3VnZWtpdGFpXCA7CivloLHlkYrogIUgPCBob3Vrb2t1c2hhXCA7CivnmbrooajogIUgPCBoYXBweW91c2hhXCA7Civmg6PnrqHpoJggPCBzb3VrYW5yeW91XCA7Civoh6rlo4rkvZznlKggPCBqaWthaXNheW91XCA7Civpgbjmip7ogqIgPCBzZW50YWt1c2hpXCA7CivmioDooZPogIUgPCBnaWp1dHN1c2hhXCA7CivpgLLmrannmoQgPCBzaGlucG90ZWtpXCA7Civln4volLXph48gPCBtYWl6b3VyeW91XCA7Civku5Xkuovlj7AgPCBzaGlnb3RvZGFpXCA7CivmgKfmiJDnhp8gPCBzZWlzZWlqdWt1XCA7CivmsLjlubTplpMgPCBuYWdhbmVua2FuXCA7Civog4zmlZnogIUgPCBoYWlreW91c2hhXCA7CivovrDlubQgPCB0YXRzdWRvc2hpXCA7CivmiYvlt6Xmpa0gPCBzaHVrb3VneW91XCA7CivmupblgpnmnJ/plpMgPCBqdW5iaWtpa2FuXCA7CivliKXliKUgPCBiZXRzdWJldHN1XCA7CivlsLvppKAgPCBzaGlyaW1vY2hpXCA7CivnlLPoq4vogIUgPCBzaGluc2Vpc2hhXCA7CivmvJTlh7rlrrYgPCBlbnNodXRzdWthXCA7CivkuIDlronlv4MgPCBoaXRvYW5zaGluXCA7CivlpKnkuIvnhKHlj4wgPCB0ZW5rYW11c291XCA7CivooYzmpb3lnLAgPCBrb3VyYWt1Y2hpXCA7Civpo5/nrqHms5UgPCBzaG9ra2FuaG91XCA7CivoprPmuKzoiLkgPCBrYW5zb2t1c2VuXCA7Civnq7blkIjogIUgPCBreW91Z291c2hhXCA7CivlgaXohLPliaQgPCBrZW4nJ25vdXphaVwgOwor5LiA54CJ5Y2D6YeMIDwgaXNzaGFzZW5yaVwgOwor55m95qi6IDwgc2hpcmFrYW5iYVwgOwor6YeR5Ymb5p2WIDwga29uZ291ZHp1ZVwgOwor5qiq6KGM6ZeK5q2pIDwgb3Vrb3VrYXBwb1wgOwor6Kyd6IKJ56WtIDwgc2hhbmlrdXNhaVwgOwor6KSH5YaZ57SZIDwgZnVrdXNoYXNoaVwgOwor6YCx5YiK6KqMIDwgc2h1dWthbnNoaVwgOwor5Y+O56iO5omAIDwgc2h1dXplaXNob1wgOwor5Ymw5L2Z5L6h5YCkIDwgam91eW9rYWNoaVwgOwor5YWr5pyIIDwgaGFjaGlnYXRzdVwgOwor6YCa6KGM5Lq6IDwgdHN1dWtvdW5pblwgOwor6ZGR5a6a5paZIDwga2FudGVpcnlvdVwgOwor6LiP6LuKIDwgZnVtaWd1cnVtYVwgOwor5paH5YyW5Zu95a62IDwgYnVua2Frb2trYVwgOwor6Iie5Y+w56i95Y+kIDwgYnV0YWlnZWlrb1wgOwor5ZCM5LiA5Lq6IDwgZG91aXRzdW5pblwgOwor6auY5r2u57eaIDwga291Y2hvdXNlblwgOwor5rW46YCP5oCnIDwgc2hpbnRvdXNlaVwgOwor6KGA6Imy57SgIDwga2Vzc2hpa2lzb1wgOwor6ISz6ZyH55uqIDwgbm91c2hpbnRvdVwgOwor5LyK5Yui5aSn5bufIDwgaXNldGFpYnlvdVwgOwor6LOD6LK45Lq6IDwgY2hpbnRhaW5pblwgOwor5Ye655Sf5ZywIDwgc2h1c3NlaWNoaVwgOwor55Wl6KqsIDwgcnlha3VzZXRzdVwgOwor57e057+S55SfIDwgcmVuc2h1dXNlaVwgOwor5bqn5bit6KGoIDwgemFzZWtpaHlvdVwgOwor6Kaz5ris6ICFIDwga2Fuc29rdXNoYVwgOwor55u45LqS5pSv5o+0IDwgc291Z29zaGllblwgOwor5Zyw542E6ICzIDwgamlnb2t1bWltaVwgOwor6auY57Sa5ZOBIDwga291a3l1dWhpblwgOwor6YGg5pel54K5IDwgZW5qaXRzdXRlblwgOwor5ryi5a2m6ICFIDwga2FuZ2FrdXNoYVwgOwor54mn5aC06bOlIDwgbWFraWJhdG9yaVwgOwor55Sz6L68IDwgbW91c2hpa29taVwgOwor5YiH5YiHIDwgc2V0c3VzZXRzdVwgOwor5q275YiR5ZuaIDwgc2hpa2Vpc2h1dVwgOwor5rC356CC57OWIDwga29vcml6YXRvdVwgOwor5pmu6YGN5Y6f55CGIDwgZnVoZW5nZW5yaVwgOwor5YWx6JGX6ICFIDwga3lvdWNob3NoYVwgOwor6aqo6auE54KOIDwga290c3V6dWllblwgOwor5LiN5Y2z5LiN6ZuiIDwgZnVzb2t1ZnVyaVwgOwor5pS+54mn5ZywIDwgaG91Ym9rdWNoaVwgOwor5oKq5Zug5oKq5p6cIDwgYWt1aW4nJ2Fra2FcIDsKK+eZveihgOeQgyA8IGhha2tla2t5dXVcIDsKK+ebsuWjgSA8IG1la3VyYWthYmVcIDsKK+a6tuWyqea1gSA8IHlvdWdhbnJ5dXVcIDsKK+atu+WCt+iAhSA8IHNoaXNob3VzaGFcIDsKK+W8j+mDqOWumCA8IHNoaWtpYnVrYW5cIDsKK+iEhuW8seaApyA8IHplaWpha3VzZWlcIDsKK+e1puawtOagkyA8IGt5dXVzdWlzZW5cIDsKK+mvqOW5lSA8IGt1amlyYW1ha3VcIDsKK+ims+a4rOe2siA8IGthbnNva3Vtb3VcIDsKK+aApeihjOWIuCA8IGt5dXVrb3VrZW5cIDsKK+eZveaYnyA8IHNoaXJvYm9zaGlcIDsKK+eZvuaXpSA8IGh5YWt1bmljaGlcIDsKK+mZhOWSjOmbt+WQjCA8IGZ1d2FyYWlkb3VcIDsKK+W+oemereaSuyA8IGdvYmVudGF0c3VcIDsKK+e3keWNgeWtlyA8IHJ5b2t1anV1amlcIDsKK+WMlueyp+mDqOWxiyA8IGtlc2hvdWJleWFcIDsKK+a1gee3muW9oiA8IHJ5dXVzZW5rZWlcIDsKK+iGnOizqiA8IG1ha3VzaGl0c3VcIDsKK+WOn+Wni+eahCA8IGdlbnNoaXRla2lcIDsKK+eJp+e+iuWcsCA8IGJva3V5b3VjaGlcIDsKK+WHuuWFpSA8IHNodXRzdW55dXVcIDsKK+ejqOijveefs+WZqCA8IG1hc2Vpc2Vra2lcIDsKK+eItuWtkOWutuW6rSA8IGZ1c2hpa2F0ZWlcIDsKK+WfvOeOieecjCA8IHNhaXRhbWFrZW5cIDsKK+S9memfu+Wri+WriyA8IHlvaW5qb3Vqb3VcIDsKK+aUu+aSg+i7jSA8IGtvdWdla2lndW5cIDsKK+aVteiJpumaiiA8IHRla2lrYW50YWlcIDsKK+W5tOS4iyA8IHRvc2hpc2hpdGFcIDsKK+mjn+WZqOajmiA8IHNob2traWRhbmFcIDsKK+S8nemAgeWFiCA8IGRlbnNvdXNha2lcIDsKK+eosuiNt+muqCA8IGluYXJpenVzaGlcIDsKK+S/gumVtyA8IGtha2FyaWNob3VcIDsKK+W+qeiqv+WZqCA8IGZ1a3VjaG91a2lcIDsKK+Wkp+eXheS6uiA8IGRhaWJ5b3VuaW5cIDsKK+WFseWKtOiAhSA8IGt5b3Vyb3VzaGFcIDsKK+WAmeiqvyA8IHNvdXJvdWNob3VcIDsKK+eXheWOn+iPjCA8IGJ5b3VnZW5raW5cIDsKK+acnemuruS6uiA8IGNob3VzZW5qaW5cIDsKK+e4hOaWh+Wcn+WZqCA8IGpvdW1vbmRva2lcIDsKK+WEqui2iuaoqSA8IHl1dWV0c3VrZW5cIDsKK+mvqOWwuiA8IGt1amlyYWpha3VcIDsKK+S4gOS6uuaXhSA8IGhpdG9yaXRhYmlcIDsKK+aWh+WtpuirliA8IGJ1bmdha3Vyb25cIDsKK+iCieaEn+eahCA8IG5pa2thbnRla2lcIDsKK+aApeihjOS+vyA8IGt5dXVrb3ViaW5cIDsKK+eUsuS5meS4mSA8IGtvdW90c3VoZWlcIDsKK+S4reazoumVtyA8IGNodXVoYWNob3VcIDsKK+eEoeiBt+iAhSA8IG11c2hva3VzaGFcIDsKK+WPjueojuWumCA8IHNodXV6ZWlrYW5cIDsKK+WtpumDqOmVtyA8IGdha3VidWNob3VcIDsKK+iyoeWLmeeuoeeQhiA8IHphaW11a2FucmlcIDsKK+i2heagvOWtkCA8IGNob3Vrb3VzaGlcIDsKK+epgueKtuiKseW6jyA8IHN1aWpvdWtham9cIDsKK+mXiuiRieaouSA8IGthdHN1eW91anVcIDsKK+ebm+WcnyA8IG1vcml0c3VjaGlcIDsKK+WFsemztOiAhSA8IGt5b3VtZWlzaGFcIDsKK+eEoeS9k+eJqSA8IG11dGFpYnV0c3VcIDsKK+a1ruawl+WlsyA8IHV3YWtpb24nJ25hXCA7Civnmbvnq5zploAgPCB0b3VyeXV1bW9uXCA7CivkuIDnvqnnmoQgPCBpY2hpZ2l0ZWtpXCA7CivnrKzkuIDmnaEgPCBkYWlpY2hpam91XCA7Civovp7mm7jpg6jploAgPCBqaXNob2J1bW9uXCA7CivlhoXnlKjolqwgPCBuYWl5b3V5YWt1XCA7CivmqZ/li5Xpg6jpmoogPCBraWRvdWJ1dGFpXCA7Civkv53lronlh6bliIYgPCBob2Fuc2hvYnVuXCA7CivoirHmmqYgPCBoYW5hZ295b21pXCA7CivluqfmqJnou7ggPCB6YWh5b3VqaWt1XCA7CivnrZbmupDlnLAgPCBzYWt1Z2VuY2hpXCA7Civnm7TliJcgPCBjaG9rdXJldHN1XCA7CivlhKrnlJ/lraYgPCB5dXVzZWlnYWt1XCA7CivmhI/mgJ3ooajnpLogPCBpc2hpaHlvdWppXCA7CivliIbpmorplbcgPCBidW50YWljaG91XCA7CivllrbliKnkuovmpa0gPCBlaXJpamlneW91XCA7CivliY3lgJ/ph5EgPCB6ZW5zaGFra2luXCA7Civnmq7ohprnp7vmpI0gPCBoaWZ1aXNob2t1XCA7Civku7Loo4HkurogPCBjaHV1c2FpbmluXCA7CivotaTpgZPnpa0gPCBzZWtpZG91c2FpXCA7CivmnbHljJflpKcgPCB0b3Vob2t1ZGFpXCA7Civlrp/oqLzoq5YgPCBqaXNzaG91cm9uXCA7CivkuI3nh4PniakgPCBmdW5lbmJ1dHN1XCA7CivlhajlvLfpoqggPCB6ZW5reW91ZnV1XCA7CivorbDkuovlpqjlrrMgPCBnaWppYm91Z2FpXCA7CivlsI/lpKnlnLAgPCBzaG91dGVuY2hpXCA7CivphaLphbjloakgPCBzYWt1c2FuJydlblwgOwor6LaF6Z+z6YCfIDwgY2hvdW9uc29rdVwgOwor5a+G5ZGK6ICFIDwgbWlra29rdXNoYVwgOwor5YiG6aGe5a2mIDwgYnVucnVpZ2FrdVwgOwor5b2r6YeR5birIDwgY2hvdWtpbnNoaVwgOwor5LiA6aiO5b2T5Y2DIDwgaWtraXRvdXNlblwgOwor6Zi/6by75Y+r5ZaaIDwgYWJpa3lvdWthblwgOwor57W25a++5rip5bqmIDwgemV0dGFpb25kb1wgOwor6buE6YeR5LiW55WMIDwgb3Vnb25zZWthaVwgOwor5YWx6YCa6KqeIDwga3lvdXRzdXVnb1wgOwor5Ya95Ya9IDwgcmV0c3VyZXRzdVwgOwor56We56eY5a2mIDwgc2hpbmhpZ2FrdVwgOwor5LiA5pys5qmLIDwgaXBwb25iYXNoaVwgOwor56ys5LqU5YiXIDwgZGFpZ29yZXRzdVwgOwor57Sz5aOr55SoIDwgc2hpbnNoaXlvdVwgOwor5LiA5p6a5bKpIDwgaWNoaW1haWl3YVwgOwor5LiA5pys5qeNIDwgaXBwb24nJ3lhcmlcIDsKK+WbsOeqruiAhSA8IGtvbmt5dXVzaGFcIDsKK+WFpeWupCA8IG55dXVzaGl0c3VcIDsKK+ajkua4qeW6puioiCA8IGJvdW9uZG9rZWlcIDsKK+WGrOaUr+W6piA8IGZ1eXVqaXRha3VcIDsKK+WFseWQjOS9kyA8IGt5b3Vkb3V0YWlcIDsKK+WwkeaVsOWFmiA8IHNob3VzdXV0b3VcIDsKK+WFqOawkeihhiA8IHplbm1pbnNodXVcIDsKK+ebuOWPjeeahCA8IHNvdWhhbnRla2lcIDsKK+a1rumBiueJqSA8IGZ1eXV1YnV0c3VcIDsKK+WKtOWDjeecgSA8IHJvdWRvdXNob3VcIDsKK+Wtq+aBr+WtkCA8IG1hZ29tdXN1a29cIDsKK+WPjeWvvuaEj+imiyA8IGhhbnRhaWlrZW5cIDsKK+S+m+mkiuWhmiA8IGt1eW91ZHp1a2FcIDsKK+mnhumAkOiJpiA8IGt1Y2hpa3VrYW5cIDsKK+e0oOS6uuebriA8IHNoaXJvdXRvbWVcIDsKK+eyvuiCieW6lyA8IHNlaW5pa3V0ZW5cIDsKK+WPjOauu+mhniA8IHNvdWtha3VydWlcIDsKK+aso+axgua1hOWcnyA8IGdvbmd1am91ZG9cIDsKK+mHkeiyqOa6luWCmSA8IGtpbmthanVuYmlcIDsKK+WlqOWKsemHkSA8IHNob3VyZWlraW5cIDsKK+S4jeeyvumrrSA8IGJ1c2hvdWhpZ2VcIDsKK+irlueQhue0oOWtkCA8IHJvbnJpc29zaGlcIDsKK+iDveWLleeahCA8IG5vdWRvdXRla2lcIDsKK+e0hOWNiuWIhiA8IHlha3VoYW5idW5cIDsKK+WxseiNkiA8IHlhbWFhcmFzaGlcIDsKK+e2sua8gealrSA8IGFtaWd5b2d5b3VcIDsKK+aOiOalreS4rSA8IGp1Z3lvdWNodXVcIDsKK+Wyqeefs+WcjyA8IGdhbnNla2lrZW5cIDsKK+mcsuWcsOagveWfuSA8IHJvamlzYWliYWlcIDsKK+W9ueebruafhCA8IHlha3VtZWdhcmFcIDsKK+WPpOWis+aZguS7oyA8IGtvZnVuamlkYWlcIDsKK+S4gOacrOadviA8IGlwcG9ubWF0c3VcIDsKK+WhqeeFjumkhSA8IHNoaW9zZW5iZWlcIDsKK+WNl+OAheilvyA8IG5hbicnbmFuc2VpXCA7CivlnKjlrabnlJ8gPCB6YWlnYWt1c2VpXCA7CivliYPliIDnoKUgPCBrYW1pc29yaWRvXCA7CivlpJrnmbrmgKcgPCB0YWhhdHN1c2VpXCA7CivnhKHnhZnngavolqwgPCBtdWVua2F5YWt1XCA7CivlhKrotormhJ8gPCB5dXVldHN1a2FuXCA7CivnibnntJrlk4EgPCB0b2treXV1aGluXCA7CivkuInop5LpjJAgPCBzYW5rYWt1c3VpXCA7CivlgpHniakgPCBrZXRzdWJ1dHN1XCA7Civlv4XmsrvolqwgPCBoaXRjaGl5YWt1XCA7CivljZjmjK/li5UgPCB0YW5zaGluZG91XCA7CivkuLvlvLXogIUgPCBzaHVjaG91c2hhXCA7CivmjpLku5blvosgPCBoYWl0YXJpdHN1XCA7CivmlL/msrvmqZ/mp4sgPCBzZWlqaWtpa291XCA7CivmhI/lv5fmsbrlrpogPCBpc2hpa2V0dGVpXCA7CivlhKrotormgKcgPCB5dXVldHN1c2VpXCA7CivlvaLmhYvlraYgPCBrZWl0YWlnYWt1XCA7Civlt6Xmpa3nlYwgPCBrb3VneW91a2FpXCA7Civlt6Xmpa3nlKggPCBrb3VneW91eW91XCA7CivnqY3kubHpm7IgPCBzZWtpcmFuJyd1blwgOwor5oud6Kaz5paZIDwgaGFpa2FucnlvdVwgOwor6aCY5rW357eaIDwgcnlvdWthaXNlblwgOwor6KeS5YiG5pWjIDwga2FrdWJ1bnNhblwgOwor5LiN6KaL6K2YIDwgZnVrZW5zaGlraVwgOwor5aSn5a2m55SfIDwgZGFpZ2FrdXNlaVwgOwor5pyA5YyX56uvIDwgc2FpaG9rdXRhblwgOwor6KGo6Z2i5LiKIDwgaHlvdW1lbmpvdVwgOwor5r+D56Gr6YW4IDwgbm91cnl1dXNhblwgOwor55Wl562GIDwgcnlha3VoaXRzdVwgOwor5rC05YyW54mpIDwgc3Vpa2FidXRzdVwgOwor6LaF5Lyd5bCOIDwgY2hvdWRlbmRvdVwgOwor5paH5a2m6ICFIDwgYnVuZ2FrdXNoYVwgOwor57KX55uu6ZuqIDwgemFyYW1leXVraVwgOwor5Y+y5a2m6ICFIDwgc2hpZ2FrdXNoYVwgOwor5Zu95rCR6LuNIDwga29rdW1pbmd1blwgOwor5ZKA5Zq8562LIDwgc29zaGFrdWtpblwgOwor5L2P5omA6YyyIDwganV1c2hvcm9rdVwgOwor6aeQ5YGc6LuKIDwgY2h1dXRlaXNoYVwgOwor5qSN5qi556WtIDwgc2hva3VqdXNhaVwgOwor6LKg6I235YiG5pWjIDwgZnVrYWJ1bnNhblwgOwor6KeS6YCf5bqmIDwga2FrdXNva3Vkb1wgOwor5bem5YipIDwgaGlkYXJpa2lraVwgOwor5aSn6LWk5paRIDwgZGFpc2VraWhhblwgOwor5Zyw5Lit5rW3IDwgY2hpY2h1dWthaVwgOwor5Ly46aSFIDwgbm9zaGltb2NoaVwgOwor5LiN5YGP5LiN5YWaIDwgZnVoZW5mdXRvdVwgOwor5YaF5YaRIDwgdWNoaWthYnV0b1wgOwor5ZWG5aOy5Lq6IDwgc2hvdWJhaW5pblwgOwor5ZCM5bqK55Ww5aSiIDwgZG91c2hvdWltdVwgOwor5Y+X5Y+W5Lq6IDwgdWtldG9yaW5pblwgOwor6KaL5pys5biCIDwgbWlob24nJ2ljaGlcIDsKK+eEoemZkOi7jOmBkyA8IG11Z2Vua2lkb3VcIDsKK+aKleelqOaoqSA8IHRvdWh5b3VrZW5cIDsKK+aOoueFp+eBryA8IHRhbnNob3V0b3VcIDsKK+WFqOWLnei7jSA8IHplbnNob3VndW5cIDsKK+e1puawtOWhlCA8IGt5dXVzdWl0b3VcIDsKK+a9ruW5sueLqSA8IHNoaW9oaWdhcmlcIDsKK+i7jeS6i+mhp+WVjyA8IGd1bmppa29tb25cIDsKK+eJoee+iuW6pyA8IG9oaXRzdWppemFcIDsKK+iAvee+juS4u+e+qSA8IHRhbmJpc2h1Z2lcIDsKK+WPjueojuS6uiA8IHNodXV6ZWluaW5cIDsKK+WWnOWKh+aYoOeUuyA8IGtpZ2VraWVpZ2FcIDsKK+W3puWBtCA8IGhpZGFyaWdhd2FcIDsKK+mBuOaKnuaoqSA8IHNlbnRha3VrZW5cIDsKK+aOoeeCueihqCA8IHNhaXRlbmh5b3VcIDsKK+W3peW3peWbmyA8IGt1bmt1bnNoaWlcIDsKK+WFpeWPoyA8IGhhaXJpZ3VjaGlcIDsKK+iomOmMsueahCA8IGtpcm9rdXRla2lcIDsKK+ixhuadv+mKgCA8IG1hbWVpdGFnaW5cIDsKK+e1tuWvvumHjyA8IHpldHRhaXJ5b3VcIDsKK+adseWMl+S6uiA8IHRvdWhva3VqaW5cIDsKK+a1t+i7jeecgSA8IGthaWd1bnNob3VcIDsKK+mHkeWJm+WKmyA8IGtvbmdvdXJpa2lcIDsKK+ecn+aal+mXhyA8IG1ha3VyYXlhbWlcIDsKK+aknOeWq+WumCA8IGtlbicnZWtpa2FuXCA7CivlrqTplbcgPCBzaGl0c3VjaG91XCA7Civlr77osaHlpJYgPCB0YWlzaG91Z2FpXCA7CivmlrDmvZ/nnIwgPCBuaWlnYXRha2VuXCA7Civpl4flho3osqkgPCB5YW1pc2FpaGFuXCA7Civli5XnianmhJsgPCBkb3VidXRzdWFpXCA7Civmm7znj6Dmspnoj68gPCBtYW5qdXNoYWdlXCA7Civkvb/nlKjph48gPCBzaGl5b3VyeW91XCA7CivlhKrlp78gPCB5YXNhc3VnYXRhXCA7Civol4HljYrntJkgPCB3YXJhYmFuc2hpXCA7CivmqKHmk6zoqabpqJMgPCBtb2dpc2hpa2VuXCA7CivmlrDplovlnLAgPCBzaGlua2FpY2hpXCA7CivpnZ7luLjorZggPCBoaWpvdXNoaWtpXCA7CivkuIDpnaLoprMgPCBpY2hpbWVua2FuXCA7CivnrqHntYPmpb0gPCBrYW5nZW5nYWt1XCA7Civopo/liYfpgZXlj40gPCBraXNva3VpaGFuXCA7CivmnIDmgbXlm70gPCBzYWlrZWlrb2t1XCA7CivmhaLmgKfnmoQgPCBtYW5zZWl0ZWtpXCA7CivlpI/ngonlhqzmiYcgPCBrYXJvdG91c2VuXCA7CivmjqjoqIjlraYgPCBzdWlrZWlnYWt1XCA7Civlia/poJjkuosgPCBmdWt1cnlvdWppXCA7CivljbDliLfogIUgPCBpbnNhdHN1c2hhXCA7CivogJDngavlipsgPCB0YWlrYXJ5b2t1XCA7Civlj4vnpoXmn5MgPCB5dXV6ZW56b21lXCA7CivloLHlkYrmm7ggPCBob3Vrb2t1c2hvXCA7CivpqqjmoLznrYsgPCBrb2trYWt1a2luXCA7Civpm6jlpKnmsbrooYwgPCB1dGVua2Vra291XCA7Civol7vloanojYkgPCBtb3NoaW9ndXNhXCA7Civpm4blpKfmiJAgPCBzaHV1dGFpc2VpXCA7CivmhaLmgKfnl4UgPCBtYW5zZWlieW91XCA7CivlrqPoqIDnmoQgPCBzZW5nZW50ZWtpXCA7Civlha3ph43lpY8gPCByb2t1anV1c291XCA7Civpn7Ppn7/lraYgPCBvbmt5b3VnYWt1XCA7CivnlLPnq4sgPCBtb3VzaGl0YXRlXCA7Civlt6Xmpa3muK8gPCBrb3VneW91a291XCA7Civnt4/ovp7ogbcgPCBzb3VqaXNob2t1XCA7Civou43lm6PplbcgPCBndW5kYW5jaG91XCA7CivmhI/opovkuqTmj5sgPCBpa2Vua291a2FuXCA7CivlubTplbfogIUgPCBuZW5jaG91c2hhXCA7Civnt4/li5nlsYAgPCBzb3VtdWt5b2t1XCA7CivkuI3kub7mgKfmsrkgPCBmdWthbnNlaXl1XCA7CivpnaLnm7jnrYYgPCBtZW5zb3VmdWRlXCA7CivmlaPmranpgZMgPCBzYW5wb21pY2hpXCA7CivnpLrlnKfoqIggPCBzaGlhdHN1a2VpXCA7CivkuJbntIDmnKsgPCBzZWlraW1hdHN1XCA7CivnrKzkuInlm70gPCBkYWlzYW5nb2t1XCA7CivmipXnpajmlbAgPCB0b3VoeW91c3V1XCA7CivkvZXnrofmnIggPCBuYW5rYWdldHN1XCA7CivnlLPoq4vmm7ggPCBzaGluc2Vpc2hvXCA7CivmpI3niakgPCBzaG9rdWJ1dHN1XCA7Civohbnohpzngo4gPCBmdWt1bWFrdWVuXCA7CivmuKnms4nnlLogPCBvbnNlbm1hY2hpXCA7CivkuLvli5XnmoQgPCBzaHVkb3V0ZWtpXCA7Civms4zlsL/lmajnp5EgPCBoaW55b3VraWthXCA7CivkuI3mloflvosgPCBmdWJ1bnJpdHN1XCA7CivlvIHlvZPnrrEgPCBiZW50b3ViYWtvXCA7Civlsqnnh5UgPCBpd2F0c3ViYW1lXCA7CivlpKnkvZPlraYgPCB0ZW50YWlnYWt1XCA7CivljbDliLfntJkgPCBpbnNhdHN1c2hpXCA7CivkvY7miJDplbcgPCB0ZWlzZWljaG91XCA7Civkv6/ku7Dop5IgPCBmdWd5b3VrYWt1XCA7CivluLfluYTkuIrlpY8gPCBpYWt1am91c291XCA7CivmlL7nhrHlmaggPCBob3VuZXRzdWtpXCA7CivntJToia/lk4EgPCBqdW5yeW91aGluXCA7CivlgpnlvozooaggPCBiaW5nb29tb3RlXCA7CivmmpfmrrrogIUgPCBhbnNhdHN1c2hhXCA7CivlubPmlZnlk6EgPCBoaXJha3lvdWluXCA7CivkuI3opprogIUgPCBmdWtha3Vtb25vXCA7CivmiJDplbfngrkgPCBzZWljaG91dGVuXCA7CivmnbHmqKrnt5ogPCB0b3V5b2tvc2VuXCA7CivmlZHmuIjogIUgPCBreXV1c2Fpc2hhXCA7Civnn6Xog73nmoQgPCBjaGlub3V0ZWtpXCA7CivlhLLlj6MgPCBtb3VrZWd1Y2hpXCA7CivlhajmqKnlp5Tlk6EgPCB6ZW5rZW4nJ2lpblwgOwor5bm76Kaa5YmkIDwgZ2Vua2FrdXphaVwgOwor5p6c54mp5bGLIDwga3VkYW1vbm95YVwgOwor5ryU566X5qmf5qeLIDwgZW56YW5raWtvdVwgOwor5Lq65qC86ICFIDwgamlua2FrdXNoYVwgOwor54Sh6JOL6LKo6LuKIDwgbXVnYWlrYXNoYVwgOwor6YeR5bGe6ZaTIDwga2luem9rdWthblwgOwor6Iqx5p+z55eFIDwga2FyeXV1YnlvdVwgOwor5qOf55OmIDwgbXVuYWdhd2FyYVwgOwor6auY5p6VIDwgdGFrYW1ha3VyYVwgOwor6ICB5aSn5Zu9IDwgcm91dGFpa29rdVwgOwor5Luj6KiA5Lq6IDwgZGFpZ2VuJyduaW5cIDsKK+W/g+W+l+mhlCA8IGtva29yb2VnYW9cIDsKK+S7o+ihqOiAhSA8IGRhaWh5b3VzaGFcIDsKK+S4u+efpeeahCA8IHNodWNoaXRla2lcIDsKK+aWh+WtpueVjCA8IGJ1bmdha3VrYWlcIDsKK+WIh+aWreapnyA8IHNldHN1ZGFua2lcIDsKK+S4gOaZgueahCA8IGljaGlqaXRla2lcIDsKK+S6pOmAmue2siA8IGtvdXRzdXVtb3VcIDsKK+S6jOWNgeS4lue0gCA8IG5pamlzc2Vpa2lcIDsKK+S/neitt+WHpuWIhiA8IGhvZ29zaG9idW5cIDsKK+WcsOeQg+S6uiA8IGNoaWt5dXVqaW5cIDsKK+iEueiEmyA8IGZ1a3VyYWhhZ2lcIDsKK+mrmOabhyA8IHRha2FndW1vcmlcIDsKK+earuiGmuenkeWtpiA8IGhpZnVrYWdha3VcIDsKK+WcsOeQg+S4iiA8IGNoaWt5dXVqb3VcIDsKK+mAhuaPkOahiCA8IGd5YWt1dGVpYW5cIDsKK+WvvuaVsOihqCA8IHRhaXN1dWh5b3VcIDsKK+ihhuaEmuaUv+ayuyA8IHNodWd1c2VpamlcIDsKK+aVl+aIpuWbvSA8IGhhaXNlbmtva3VcIDsKK+S+jeW+k+atpuWumCA8IGppanV1YnVrYW5cIDsKK+aWsOijveWTgSA8IHNoaW5zZWloaW5cIDsKK+aOp+iotOacn+mWkyA8IGtvdXNva2lrYW5cIDsKK+S4iuS9jeani+mAoCA8IGpvdWlrb3V6b3VcIDsKK+altei3nemboiA8IGt5b2t1a3lvcmlcIDsKK+W4uOS7u+WnlOWToSA8IGpvdW5pbicnaWluXCA7Civoip3lsYXlsI/lsYsgPCBzaGliYWlnb3lhXCA7CivmoZzoirEgPCBzYWt1cmFiYW5hXCA7Civlhaznp5/lhazoqrIgPCBrb3Vzb2tvdWthXCA7Civnhp/nt7Tlt6UgPCBqdWt1cmVua291XCA7CivoibLntKDkvZMgPCBzaGlraXNvdGFpXCA7CivkuLjnoKXnn7MgPCBtYXJ1dG9pc2hpXCA7CivlkIzml4/kvJogPCBkb3V6b2t1a2FpXCA7CivntYzmuIjnmoQgPCBrZWl6YWl0ZWtpXCA7CivmmJPmhJ/mn5PmgKcgPCBpa2Fuc2Vuc2VpXCA7CivniZvkubPlsYsgPCBneXV1bnl1dXlhXCA7Civnt7Tnv5LloLQgPCByZW5zaHV1am91XCA7CivntIDkvIrlnIvlsYsgPCBraW5va3VuaXlhXCA7CivmoZHoi7ogPCBrdXdhaWNoaWdvXCA7CivlpJzpt7nolY7puqYgPCB5b3Rha2Fzb2JhXCA7Civnibnoo73lk4EgPCB0b2t1c2VpaGluXCA7Civli6Tli5nmmYLplpMgPCBraW5tdWppa2FuXCA7Civljq3kuJbkuLvnvqkgPCBlbnNlaXNodWdpXCA7CivljZjkvY3oqJjlj7cgPCB0YW4nJ2lraWdvdVwgOwor6ISa6ImyIDwga3lha3VzaG9rdVwgOwor5LiN6Kqg5a6fIDwgZnVzZWlqaXRzdVwgOwor5b6T5p2l5Z6LIDwganV1cmFpZ2F0YVwgOwor5a++6LGh5L2TIDwgdGFpc2hvdXRhaVwgOwor57KJ55+z6bm4IDwga29uYXNla2tlblwgOwor5aSc5bC/55eHIDwgeWFueW91c2hvdVwgOwor6LaF5paH6Z2iIDwgY2hvdWJ1bm1lblwgOwor5o6S5LuW5Li7576pIDwgaGFpdGFzaHVnaVwgOwor5YuV54mp5ZySIDwgZG91YnV0c3VlblwgOwor57eP55uj552jIDwgc291a2FudG9rdVwgOwor5a6f6Zqb55qEIDwgamlzc2FpdGVraVwgOwor6aC85L+h57SZIDwgcmFpc2hpbnNoaVwgOwor5a6H5a6Z6aOb6KGMIDwgdWNodXVoaWtvdVwgOwor5a6j5pWZ5birIDwgc2Vua3lvdXNoaVwgOwor5qGc6IKJIDwgc2FrdXJhbmlrdVwgOwor6LKs5Lu76ICFIDwgc2VraW5pbnNoYVwgOwor6Zai56+A54KOIDwga2Fuc2V0c3VlblwgOwor6IKp6LuKIDwga2F0YWd1cnVtYVwgOwor5YWx6bO05p2/IDwga3lvdW1laWJhblwgOwor5a6X5Li75Zu9IDwgc291c2h1a29rdVwgOwor5Luu5ZCN6I2J57SZIDwga2FuYXpvdXNoaVwgOwor5pen6LuN5Lq6IDwga3l1dWd1bmppblwgOwor5Y2K5r+B54K5IDwgaGFuZGFrdXRlblwgOwor5Z2R5YaF5LqL5pWFIDwga291bmFpamlrb1wgOwor5Y2K6ZW35b2iIDwgaGFuY2hvdWtlaVwgOwor5Lit5rC06YGTIDwgY2h1dXN1aWRvdVwgOwor6YG45omL5p2RIDwgc2Vuc2h1bXVyYVwgOwor6KuW55CG5ryU566XIDwgcm9ucmllbnphblwgOwor6LOq6YePIDwgc2hpdHN1cnlvdVwgOwor5Y2w5Yi355SoIDwgaW5zYXRzdXlvdVwgOwor6ZyK5p+p6LuKIDwgcmVpa3l1dXNoYVwgOwor5rW35bK456uvIDwga2FpZ2FuYmF0YVwgOwor5aSW55So6JasIDwgZ2FpeW91eWFrdVwgOwor57Sr5paR55eFIDwgc2hpaGFuYnlvdVwgOwor6Ju46YWN5b2TIDwgdGFrb2hhaXRvdVwgOwor6auY5omA55eFIDwga291c2hvYnlvdVwgOwor55Wc5q66IDwgY2hpa3VzYXRzdVwgOwor5aSn5bCP5L6/IDwgZGFpc2hvdWJlblwgOwor6Zu75rCX5q+b5biDIDwgZGVua2ltb3VmdVwgOwor57Gz5Zu95rCRIDwgYmVpa29rdW1pblwgOwor5ZC45rC05oCnIDwga3l1dXN1aXNlaVwgOwor6Zuy6ayi6Iqx6aGUIDwgdW5iaW5rYWdhblwgOwor5b+15LqU5pelIDwgbmVuZ29uaWNoaVwgOwor5Ye65p2l5b+DIDwgZGVraWdva29yb1wgOwor5Lit5b+D6YOoIDwgY2h1dXNoaW5idVwgOwor5b6h5YmN5Lya6K2wIDwgZ296ZW5rYWlnaVwgOwor6ISI6ISIIDwgbXlha3VteWFrdVwgOwor55Sf5L2T5a2mIDwgc2VpdGFpZ2FrdVwgOwor5qWU5b2iIDwga3VzYWJpZ2F0YVwgOwor5LqI5YKZ6Kq/5p+7IDwgeW9iaWNob3VzYVwgOwor5bmz5ZKM5Li7576pIDwgaGVpd2FzaHVnaVwgOwor6IKv5a6a55qEIDwga291dGVpdGVraVwgOwor5qGc57SZIDwgc2FrdXJhZ2FtaVwgOwor5rOo5oSP5LqL6aCFIDwgY2h1dWlqaWtvdVwgOwor5YuV54mp5YyWIDwgZG91YnV0c3VrYVwgOwor5rC05bmz57+8IDwgc3VpaGVpeW9rdVwgOwor6LK/5piT5qWtIDwgYm91ZWtpZ3lvdVwgOwor6IWw5biD5ZujIDwga29zaGlidXRvblwgOwor54iG5pKD5qmfIDwgYmFrdWdla2lraVwgOwor6KiA6KGM6YyyIDwgZ2Vua291cm9rdVwgOwor5Zuj5Zyw5pePIDwgZGFuY2hpem9rdVwgOwor5Lmx6Kq/5a2QIDwgcmFuY2hvdXNoaVwgOwor5YKZ6JOE57GzIDwgYmljaGlrdW1haVwgOwor5aSn5LmX55qEIDwgZGFpam91dGVraVwgOwor54Sh6IO95YqbIDwgbXVub3VyeW9rdVwgOwor6YWq6L6y5aC0IDwgcmFrdW5vdWpvdVwgOwor6IO46YOo5aSW56eRIDwga3lvdWJ1Z2VrYVwgOwor6LKo5a6i6Ii5IDwga2FreWFrdXNlblwgOwor5oSf5p+T55eHIDwga2Fuc2Vuc2hvdVwgOwor55yf55CG5pWZIDwgc2hpbnJpa3lvdVwgOwor5oWI5ZaE6Y2LIDwgaml6ZW4nJ25hYmVcIDsKK+eXheWupCA8IGJ5b3VzaGl0c3VcIDsKK+aKgOihk+WjqyA8IGdpanV0c3VzaGlcIDsKK+iKi+S+jSA8IGltb3phbXVyYWlcIDsKK+WTqOaIkuiJhyA8IHNob3VrYWl0ZWlcIDsKK+mFkuefs+mFuCA8IHNodXNla2lzYW5cIDsKK+aVt+W4g+WboyA8IHNoaWtpYnV0b25cIDsKK+mdnuWPr+aPm+e+pCA8IGhpa2FrYW5ndW5cIDsKK+WPjeWJh+mHkSA8IGhhbnNva3VraW5cIDsKK+mBuuS8neaDheWgsSA8IGlkZW5qb3Vob3VcIDsKK+acieapn+eJqSA8IHl1dWtpYnV0c3VcIDsKK+iCieizqiA8IG5pa3VzaGl0c3VcIDsKK+WvhOeUn+eBq+WxsSA8IGtpc2Vpa2F6YW5cIDsKK+aKveixoeeUuyA8IGNodXVzaG91Z2FcIDsKK+enn+WAn+aoqSA8IHNvc2hha3VrZW5cIDsKK+WGheeUs+abuCA8IG5haXNoaW5zaG9cIDsKK+WQjOe0mueUnyA8IGRvdWt5dXVzZWlcIDsKK+WQkeexs+eahCA8IGtvdWJlaXRla2lcIDsKK+imquihm+WFtSA8IHNoaW4nJ2VpaGVpXCA7Civku4/mlofnp5EgPCBmdXRzdWJ1bmthXCA7Civkuozpg6jmjojmpa0gPCBuaWJ1anVneW91XCA7Civlj5blvJXmiYAgPCB0b3JpaGlraWpvXCA7Civpm7vou4ros4MgPCBkZW5zaGFjaGluXCA7Civpm4bmlaPlnLAgPCBzaHV1c2FuY2hpXCA7Civntrrmg7Pmm7IgPCBraXNvdWt5b2t1XCA7CivkuIroqr/lrZAgPCB1d2FjaG91c2hpXCA7CivlhoXoh5PlvJMgPCBuYWl6b3VreXV1XCA7CivljYrplovlm70gPCBoYW5rYWlrb2t1XCA7Civoo73pgKDmpa0gPCBzZWl6b3VneW91XCA7Civov73mkoPmqZ8gPCB0c3VpZ2VraWtpXCA7CivkuInop5LnrYsgPCBzYW5rYWt1a2luXCA7CivpnZ7llrbliKnnmoQgPCBoaWVpcml0ZWtpXCA7CivnrYnmt7Hnt5ogPCB0b3VzaGluc2VuXCA7Civpp4bli5XlipsgPCBrdWRvdXJ5b2t1XCA7CivmsrPlt53lt6XkuosgPCBrYXNlbmtvdWppXCA7Civph43lt6Xmpa0gPCBqdXVrb3VneW91XCA7CivpurvnuZTniakgPCBhc2Fvcmltb25vXCA7Civml6XlsITnl4UgPCBuaXNzaGFieW91XCA7CivnhrHooYDlhZAgPCBuZWtrZXRzdWppXCA7Civph5HlsZ7oo70gPCBraW56b2t1c2VpXCA7CivmnKzlpZHntIQgPCBob25rZWl5YWt1XCA7Civnm7jmiYvmrKHnrKwgPCBhaXRlc2hpZGFpXCA7Civpu4TopJDoibIgPCBvdWthc3Nob2t1XCA7Civos7zlhaXogIUgPCBrb3VueXV1c2hhXCA7CivkuI3nsr7ogIUgPCBidXNob3Vtb25vXCA7CivkuLvlv5zlipsgPCBzaHVvdXJ5b2t1XCA7Civkvr/lrpzkuLvnvqkgPCBiZW5naXNodWdpXCA7Civln7znjonli6IgPCBzYWl0YW1hemVpXCA7Civlrp3oiLkgPCB0YWthcmFidW5lXCA7Civph43lgrfogIUgPCBqdXVzaG91c2hhXCA7Civnmq7ohprlkbzlkLggPCBoaWZ1a29reXV1XCA7CivlsbHmoZwgPCB5YW1hemFrdXJhXCA7CivkupzmiJDlsaTlnI8gPCBhc2Vpc291a2VuXCA7CivlgrflrrPnvaogPCBzaG91Z2FpemFpXCA7CivkvZzmiKbkuIogPCBzYWt1c2Vuam91XCA7CivlgbTlrqQgPCBzb2t1c2hpdHN1XCA7Civohp3mnpUgPCBoaXphbWFrdXJhXCA7CivmvZzmsLTnl4UgPCBzZW5zdWlieW91XCA7CivkuK3mgKfntJkgPCBjaHV1c2Vpc2hpXCA7CivkubPpppYgPCBjaGljaGlrdWJpXCA7CivoqLrnmYLmiYAgPCBzaGlucnlvdWpvXCA7Civnqbrou43lpKflsIkgPCBrdXVndW50YWlpXCA7Civml6XmnKzpo58gPCBuaWhvbnNob2t1XCA7CivnqLzlg43njocgPCBrYWRvdXJpdHN1XCA7CivpgKPlkIjlm70gPCByZW5nb3Vrb2t1XCA7CivlhazmsJHlraYgPCBrb3VtaW5nYWt1XCA7CivnoJTnqbbogIUgPCBrZW5reXV1c2hhXCA7CivpnZnmsLTlnKcgPCBzZWlzdWlhdHN1XCA7CivnmbvpjLLogIUgPCB0b3Vyb2t1c2hhXCA7Civmupbmsbrli50gPCBqdW5rZXNzaG91XCA7CivmpbXlipsgPCBreW9rdXJ5b2t1XCA7Civmoq/lrZDou4ogPCBoYXNoaWdvc2hhXCA7CivkuInopqrnrYkgPCBzYW5zaGludG91XCA7CivkuI3ntJTniakgPCBmdWp1bmJ1dHN1XCA7CivkuIrlpbPkuK0gPCBrYW1pam9jaHV1XCA7Civps6Xlj5bnnIwgPCB0b3R0b3Jpa2VuXCA7CivmoZHnlZEgPCBrdXdhYmF0YWtlXCA7CivosqfkuY/prK4gPCBiaW5ib3VrdWppXCA7CivllK/kuIDluqYgPCB0YWRhaWNoaWRvXCA7CivmorXlkozovp7lhbggPCBib253YWppdGVuXCA7Civlpb3oibLlrrYgPCBrb3VzaG9rdWthXCA7Civmr5vnmq7llYYgPCBrZWdhd2FzaG91XCA7Civmr5TovIPntJogPCBoaWtha3VreXV1XCA7Civnj77lnKjpq5ggPCBnZW56YWlkYWthXCA7CivnlaXlvI8gPCByeWFrdXNoaWtpXCA7CivpmbjmtbfnqbogPCByaWt1a2Fpa3V1XCA7Civlj4znnLzpj6EgPCBzb3VnYW5reW91XCA7CivmjqfoqLTnkIbnlLEgPCBrb3Vzb3JpeXV1XCA7Civpp5DovKrloLQgPCBjaHV1cmluam91XCA7Civpg6jpmorljLrliIYgPCBidXRhaWt1YnVuXCA7CivmnpXoqLEgPCBtYWt1cmFtb3RvXCA7Civnmb3piYTpibEgPCBoYWt1dGVra291XCA7CivlpKflrq7kurogPCBvb21peWFiaXRvXCA7CivmgqrprZTkuLvnvqkgPCBha3VtYXNodWdpXCA7Civpm6rlkIjmiKYgPCB5dWtpZ2Fzc2VuXCA7CivniYfmoJfnsokgPCBrYXRha3VyaWtvXCA7CivnmbrooajkvJogPCBoYXBweW91a2FpXCA7Civlrp3nsaQgPCB0YWthcmFrdWppXCA7CivlkJDngInniakgPCB0b3NoYWJ1dHN1XCA7Civorbflsrjlt6XkuosgPCBnb2dhbmtvdWppXCA7Civoo4/ooajntJkgPCB1cmFieW91c2hpXCA7CivliIfmlq3lm7MgPCBzZXRzdWRhbnp1XCA7CivmgJ3mg5HosrcgPCBvbW93YWt1Z2FpXCA7CivoprPlv7Xoq5YgPCBrYW4nJ25lbnJvblwgOwor546J6Z+z55ukIDwgZ3lva3VvbmJhblwgOwor5a6d566xIDwgdGFrYXJhYmFrb1wgOwor5Y+N5YuV55qEIDwgaGFuZG91dGVraVwgOwor6LOq6I2JIDwgc2hpY2hpZ3VzYVwgOwor5pWR5ZG96ImHIDwga3l1dW1laXRlaVwgOwor57W25a++55qEIDwgemV0dGFpdGVraVwgOwor6aqo5aO3IDwga290c3V0c3Vib1wgOwor5ris6YeP5ZuzIDwgc29rdXJ5b3V6dVwgOwor5LiJ5aSn5Zu9IDwgc2FuZGFpa29rdVwgOwor5Zyw5pa555eFIDwgY2hpaG91YnlvdVwgOwor5a6/55u0IDwgc2h1a3VjaG9rdVwgOwor5Ye654mI6ICFIDwgc2h1cHBhbnNoYVwgOwor5L6b57Wm6LevIDwga3lvdWt5dXVyb1wgOwor56uc5raO6aaZIDwgcnl1dXplbmtvdVwgOwor5bCE54iG5aC0IDwgc2hhYmFrdWpvdVwgOwor5ris6YeP5ZmoIDwgc29rdXJ5b3VraVwgOwor5Zyf5L+X5a2mIDwgZG96b2t1Z2FrdVwgOwor576O5aWz5qGcIDwgYmlqb3pha3VyYVwgOwor5Y2X44CF5p2xIDwgbmFuJyduYW50b3VcIDsKK+S6uuagvOaoqSA8IGppbmtha3VrZW5cIDsKK+WIhuino+eahCA8IGJ1bmthaXRla2lcIDsKK+eUsOWkq+mHjuS6uiA8IGRlbnB1eWFqaW5cIDsKK+S7luimmueahCA8IHRha2FrdXRla2lcIDsKK+WkqeS4u+aVmSA8IHRlbnNodWt5b3VcIDsKK+mbquWMlueypyA8IHl1a2lnZXNob3VcIDsKK+W9ouW8j+e+jiA8IGtlaXNoaWtpYmlcIDsKK+Wlh+Wlh+aAquaAqiA8IGtpa2lrYWlrYWlcIDsKK+mbu+mAmuWkpyA8IGRlbnRzdXVkYWlcIDsKK+S4ieinkueCuSA8IHNhbmtha3V0ZW5cIDsKK+S8neabuOmzqSA8IGRlbnNob2JhdG9cIDsKK+S7luimmueXhyA8IHRha2FrdXNob3VcIDsKK+a2iOiAl+aIpiA8IHNob3Vtb3VzZW5cIDsKK+S7leios+abuCA8IHNoaXdha2VzaG9cIDsKK+mBiuS8keWcsCA8IHl1dWt5dXVjaGlcIDsKK+WCmeS7mCA8IHNvbmFldHN1a2VcIDsKK+WPjeW/nOaApyA8IGhhbicnbm91c2VpXCA7CivmmrTotbDml48gPCBib3Vzb3V6b2t1XCA7CivntIDlhYPnr4AgPCBraWdlbnNldHN1XCA7CivmuKnms4nlrr8gPCBvbnNlbicneWFkb1wgOwor5ZSQ6L6b5a2QIDwgdG91Z2FyYXNoaVwgOwor5pel5Lit6Z+TIDwgbml0Y2h1dWthblwgOwor55CG6Kej5YqbIDwgcmlrYWlyeW9rdVwgOwor55Wl5aWqIDwgcnlha3VkYXRzdVwgOwor5YWs5YWx6LKhIDwga291a3lvdXphaVwgOwor5qSc5a6a5paZIDwga2VudGVpcnlvdVwgOwor5biC6ZW36YG4IDwgc2hpY2hvdXNlblwgOwor5a6J5pmu6KuLIDwgeWFzdWJ1c2hpblwgOwor56We5Luj5paH5a2XIDwgamluZGFpbW9qaVwgOwor5Y+k5YW45pmC5LujIDwga290ZW5qaWRhaVwgOwor5biC5Lya6K2w5ZOhIDwgc2hpa2FpZ2lpblwgOwor5rC06YGT5paZIDwgc3VpZG91cnlvdVwgOwor5Lih5oiQ5pWXIDwgcnlvdXNlaWJhaVwgOwor5Y2x6Zm66LKg5ouFIDwga2lrZW5mdXRhblwgOwor5Yid56+A5Y+lIDwgaGF0c3V6ZWtrdVwgOwor5q+U6LyD55qEIDwgaGlrYWt1dGVraVwgOwor5Zu96YCj6LuNIDwga29rdXJlbmd1blwgOwor5LiK57Sa55SfIDwgam91a3l1dXNlaVwgOwor54Sh6aCT552AIDwgbXV0b25jaGFrdVwgOwor5YaN5p2l5pyIIDwgc2FyYWlnZXRzdVwgOwor5b6M5pel6KuHIDwgZ29qaXRzdWRhblwgOwor5YKZ6I2S6aOfIDwgYmlrb3VzaG9rdVwgOwor5YGl5bq35LiN5a6JIDwga2Vua291ZnVhblwgOwor5p2+6JmrIDwgbWF0c3VtdXNoaVwgOwor5LiN6KGM6LehIDwgZnVneW91c2VraVwgOwor5pac6Zm95pePIDwgc2hheW91em9rdVwgOwor6Z2S5YyW54mpIDwgc2Vpa2FidXRzdVwgOwor5b+c5oCl5rih5rKzIDwgb3VreXV1dG9rYVwgOwor5aSp546L5bGxIDwgdGVuJydub3V6YW5cIDsKK+S6jOmHjeWQpuWumiA8IG5panV1aGl0ZWlcIDsKK+WOhOS7i+iAhSA8IHlha2thaW1vbm9cIDsKK+WLh+eMm+W/gyA8IHl1dW1vdXNoaW5cIDsKK+atpuWKm+aIpiA8IGJ1cnlva3VzZW5cIDsKK+S4ieinkuazlSA8IHNhbmtha3Vob3VcIDsKK+aEj+awl+ihneWkqSA8IGlraXNob3V0ZW5cIDsKK+Wul+aVmeeUuyA8IHNodXVreW91Z2FcIDsKK+eglOeptueUnyA8IGtlbmt5dXVzZWlcIDsKK+WHuuWllOiAhSA8IHNodXBwb25zaGFcIDsKK+WPjuebiumHkSA8IHNodXVla2lraW5cIDsKK+awt+iPk+WtkCA8IGtvb3JpZ2FzaGlcIDsKK+WMu+WtpueUqOiqniA8IGlnYWt1eW91Z29cIDsKK+iInuWPsOWKueaenCA8IGJ1dGFpa291a2FcIDsKK+i7veW3pealrSA8IGtlaWtvdWd5b3VcIDsKK+iomOaGtuWKmyA8IGtpb2t1cnlva3VcIDsKK+WNs+iIiOipqSA8IHNva2t5b3VzaGlcIDsKK+WPpOeUn+eJqSA8IGtvc2VpYnV0c3VcIDsKK+eGseaEm+iAhSA8IG5ldHN1YWlzaGFcIDsKK+WkqemggueCuSA8IHRlbmNob3V0ZW5cIDsKK+eEoeizh+WKmyA8IG11c2hpcnlva3VcIDsKK+iIiOihjOaoqSA8IGtvdWd5b3VrZW5cIDsKK+advuagueayuSA8IHNob3Vrb24nJ3l1XCA7CivkuKHpmqMgPCByeW91ZG9uYXJpXCA7Civnmb7muIjmpb0gPCBrdWRhcmFnYWt1XCA7CivlnKjku7vkuK0gPCB6YWluaW5jaHV1XCA7Civmu57lnKjkuK0gPCB0YWl6YWljaHV1XCA7Civoo73ojLbmpa0gPCBzZWljaGFneW91XCA7Civosr/mmJPllYYgPCBib3Vla2lzaG91XCA7Civlm73li5nnnIEgPCBrb2t1bXVzaG91XCA7CivkuK3ljZfnsbMgPCBjaHV1bmFuYmVpXCA7CivnvqTpm4AgPCBtdXJhc3V6dW1lXCA7CivmoZDkuIDokYkgPCBraXJpaGl0b2hhXCA7Civpm7vkvY3lt67oqIggPCBkZW4nJ2lzYWtlaVwgOwor5YWl6YG46ICFIDwgbnl1dXNlbnNoYVwgOwor57im56S+5LyaIDwgdGF0ZXNoYWthaVwgOwor5bqm5pWw5YiG5biDIDwgZG9zdXVidW5wdVwgOwor5pON57im5bitIDwgc291anV1c2VraVwgOwor5ZGo5peL5bGLIDwgc2h1dXNlbicneWFcIDsKK+aWh+WtpuWjqyA8IGJ1bmdha3VzaGlcIDsKK+mBi+mAgeS/nemZuiA8IHVuc291aG9rZW5cIDsKK+W3peWtpuiAhSA8IGtvdWdha3VzaGFcIDsKK+WPpOS8neiqrCA8IGtvZGVuc2V0c3VcIDsKK+WNsOWIt+W3pSA8IGluc2F0c3Vrb3VcIDsKK+a9nOawtOacjSA8IHNlbnN1aWZ1a3VcIDsKK+acqOizqiA8IG1va3VzaGl0c3VcIDsKK+Wkp+S4u+aVmSA8IGRhaXNodWt5b3VcIDsKK+S4iuWgtOagqiA8IGpvdWpvdWthYnVcIDsKK+mhnuWei+eahCA8IHJ1aWtlaXRla2lcIDsKK+Wun+eJqSA8IGppdHN1YnV0c3VcIDsKK+S4i+mcsiA8IHNoaXRhdHN1eXVcIDsKK+WQueWHuueJqSA8IGZ1a2lkZW1vbm9cIDsKK+aKl+ecn+iPjCA8IGtvdXNoaW5raW5cIDsKK+mbo+azoua9nyA8IG5hbml3YWdhdGFcIDsKK+enn+WAn+WcsCA8IHNvc2hha3VjaGlcIDsKK+WKoOi+suegsiA8IGthbicnbm9uaG91XCA7CivpgKDnn7PnqI4gPCB6b3Vrb2t1emVpXCA7Civpp5Dou4rloLQgPCBjaHV1c2hham91XCA7CivoqabnrpfooaggPCBzaGlzYW5oeW91XCA7CivntYzmuIjlraYgPCBrZWl6YWlnYWt1XCA7CivmgKXli77phY0gPCBreXV1a291YmFpXCA7CivlhIDlvI/nlKggPCBnaXNoaWtpeW91XCA7Civpq5jmiYvlsI/miYsgPCB0YWthdGVrb3RlXCA7CivooYDmoJPnl4cgPCBrZXNzZW5zaG91XCA7CivkvIrpgZTlp78gPCBkYXRlc3VnYXRhXCA7Civnl4Xljp/kvZMgPCBieW91Z2VudGFpXCA7CivnhKHlkbPkub7nh6UgPCBtdW1pa2Fuc291XCA7CivkuIvpmaLorbDplbcgPCBrYWluZ2ljaG91XCA7CivlhavliIbnm64gPCBoYWNoaWJ1bm1lXCA7Civop6PmnpDmgKcgPCBrYWlzZWtpc2VpXCA7Civou43lgpnnrqHnkIYgPCBndW5iaWthbnJpXCA7CivlrqLoprPmgKcgPCBreWFra2Fuc2VpXCA7CivnlZzlipsgPCBjaGlrdXJ5b2t1XCA7CivotoXlqpLkvZMgPCBjaG91YmFpdGFpXCA7CivmsLToiq3olYkgPCBtaXp1YmFzaG91XCA7CivplbfmnJ/nmoQgPCBjaG91a2l0ZWtpXCA7CivnnLzpj6Hom4cgPCBtZWdhbmVoZWJpXCA7CivmqLnohILliqDlt6UgPCBqdXNoaWtha291XCA7Civlh7rniYjnlYwgPCBzaHVwcGFua2FpXCA7CivlvIHlhJ/ph5EgPCBiZW5zaG91a2luXCA7CivmnKrnhp/ogIUgPCBtaWp1a3Vtb25vXCA7CivliIbmlaPlnosgPCBidW5zYW5nYXRhXCA7Civnn63nt6jpm4YgPCB0YW5wZW5zaHV1XCA7Civlr5LmpL8gPCBrYW50c3ViYWtpXCA7CivliKnmsLTlt6XkuosgPCByaXN1aWtvdWppXCA7Civmt6Hot6/ls7YgPCBhd2FqaXNoaW1hXCA7CivlopfmrpbngokgPCB6b3VzaG9rdXJvXCA7CivkuIvopovmnb8gPCBzaGl0YW1paXRhXCA7CivliIbmlZnloLQgPCBidW5reW91am91XCA7CivpnZ7luLjkuovmhYsgPCBoaWpvdWppdGFpXCA7Civmraboo4XonILotbcgPCBidXNvdWhvdWtpXCA7Civlj7LmlpnppKggPCBzaGlyeW91a2FuXCA7CivmnInlo7Dpn7PljJYgPCB5dXVzZWlvbmthXCA7CivooYDlsI/mnb8gPCBrZXNzaG91YmFuXCA7Civos6rnmoQgPCBzaGl0c3V0ZWtpXCA7Civph5HoibLloIIgPCBrb25qaWtpZG91XCA7CivmvKLmlrnolqwgPCBrYW5wb3V5YWt1XCA7CivkvqHlgKTln7rmupYgPCBrYWNoaWtpanVuXCA7Civoqr/nkIblmajlhbcgPCBjaG91cmlraWd1XCA7CivnoLLnhZnlvL7pm6ggPCBob3VlbmRhbicndVwgOwor57+76Kiz5a62IDwgaG9uJyd5YWt1a2FcIDsKK+W5s+etieimsyA8IGJ5b3Vkb3VrYW5cIDsKK+aknOafu+WumCA8IGtlbnNob3VrYW5cIDsKK+WkieWIhuWtpiA8IGhlbmJ1bmdha3VcIDsKK+WJjeagveeJqSA8IHNlbnphaW1vbm9cIDsKK+W8t+WjruWJpCA8IGt5b3Vzb3V6YWlcIDsKK+a1t+eUo+alrSA8IGthaXNhbmd5b3VcIDsKK+mmrOiAs+adsemiqCA8IGJhaml0b3VmdXVcIDsKK+eMrue0jeiAhSA8IGtlbicnbm91c2hhXCA7Civlha3pgKPmmJ8gPCByb2t1cmVuc2VpXCA7CivmopTlrZAgPCBrdWNoaW5hc2hpXCA7Civli4XpoZjlr7ogPCBjaG9rdWdhbmppXCA7CivkvJ3mn5Pnl4UgPCBkZW5zZW5ieW91XCA7CivpqYDlnLAgPCBtYXNzaGlndXJhXCA7CivkuK3oj6/pjYsgPCBjaHV1a2FuYWJlXCA7CivlpKnkuIrlt50gPCB0ZW5qb3VnYXdhXCA7CivmtIvoiqXlrZAgPCB5b3VnYXJhc2hpXCA7Civnmobli6Tos54gPCBrYWlraW5zaG91XCA7Civph5HlsZ7niYcgPCBraW56b2t1aGVuXCA7CivlpYfooZPluKsgPCBraWp1dHN1c2hpXCA7CivlopfliqDnjocgPCB6b3VrYXJpdHN1XCA7CivmqJnmupblnosgPCBoeW91anVua2VpXCA7Civph5HotaToibIgPCBraW4nJ2FrYWlyb1wgOwor6LKs5Lu75oSfIDwgc2VraW5pbmthblwgOwor5reL5be056+AIDwgcmlucGFzZXRzdVwgOwor5L6b54mp5Y+wIDwga3Vtb3RzdWRhaVwgOwor57Gz5Zu95Lq6IDwgYmVpa29rdWppblwgOwor562J5rip5byPIDwgdG91b25zaGlraVwgOwor5YmN5Lu76ICFIDwgemVuJyduaW5zaGFcIDsKK+ijvemAoOWFgyA8IHNlaXpvdW1vdG9cIDsKK+aDheWgsemHjyA8IGpvdWhvdXJ5b3VcIDsKK+W5s+ihjOenu+WLlSA8IGhlaWtvdWlkb3VcIDsKK+a2iOiAl+WTgSA8IHNob3Vtb3VoaW5cIDsKK+S4oeaJi+WIqSA8IHJ5b3V0ZWtpa2lcIDsKK+iThOmbu+WZqCA8IGNoaWt1ZGVua2lcIDsKK+Wvvuinkue3miA8IHRhaWtha3VzZW5cIDsKK+WxseWIgCA8IHlhbWFnYXRhbmFcIDsKK+S4gOaZqeS4rSA8IGhpdG9iYW5qdXVcIDsKK+S4i+mBkyA8IHNoaXRhbWljaGlcIDsKK+aal+WJo+auuiA8IGFua2Vuc2F0c3VcIDsKK+mgrei2s+mhniA8IHRvdXNva3VydWlcIDsKK+WcqOadseS6rCA8IHphaXRvdWt5b3VcIDsKK+ajhOiogOiRiSA8IHN1dGVrb3RvYmFcIDsKK+WFjeeojuihqCA8IG1lbnplaWh5b3VcIDsKK+WbveawkeaApyA8IGtva3VtaW5zZWlcIDsKK+ijnOWKqeWLleipniA8IGhvam9kb3VzaGlcIDsKK+W9q+WIu+WutiA8IGNob3Vrb2t1a2FcIDsKK+S4jei6viA8IGJ1c2hpdHN1a2VcIDsKK+eUn+WNtSA8IG5hbWF0YW1hZ29cIDsKK+iqreabuOeVjCA8IGRva3VzaG9rYWlcIDsKK+miqOiWrCA8IGthemVndXN1cmlcIDsKK+absuiqrCA8IGt5b2t1c2V0c3VcIDsKK+WxheeVmeawkSA8IGt5b3J5dXVtaW5cIDsKK+S4uOijuCA8IG1hcnVoYWRha2FcIDsKK+aXi+WFieinkiA8IHNlbmtvdWtha3VcIDsKK+mjr+eykiA8IG1lc2hpdHN1YnVcIDsKK+Wwj+mWk+S9vyA8IGtvbWFkenVrYWlcIDsKK+inkuiGnOeCjiA8IGtha3VtYWt1ZW5cIDsKK+eMq+i7iiA8IG5la29ndXJ1bWFcIDsKK+mwreiEmumhniA8IGtpa3lha3VydWlcIDsKK+mRkeitmOWutiA8IGthbnNoaWtpa2FcIDsKK+iIiOihjOW4qyA8IGtvdWd5b3VzaGlcIDsKK+S4iei2iiA8IG1pdHN1a29zaGlcIDsKK+WstuWkqeS4iyA8IGtha2FhZGVua2FcIDsKK+WbuuW9oueJqSA8IGtva2VpYnV0c3VcIDsKK+e0oee4vuezuCA8IGJvdXNla2lpdG9cIDsKK+WQpuWumuW/nOetlCA8IGhpdGVpb3V0b3VcIDsKK+WQneWXh+WutiA8IHJpbnNob2t1a2FcIDsKK+eCuuabv+WwuyA8IGthd2FzZWppcmlcIDsKK+iqreiAheashCA8IGRva3VzaGFyYW5cIDsKK+WHuuS4luS9nCA8IHNodXNzZXNha3VcIDsKK+WLleaRqeaTpiA8IGRvdW1hc2F0c3VcIDsKK+mDqOWIhumjnyA8IGJ1YnVuc2hva3VcIDsKK+WHuueJiOazlSA8IHNodXBwYW5ob3VcIDsKK+iqsumhjOabsiA8IGthZGFpa3lva3VcIDsKK+WuouaciCA8IGt5YWt1Z2V0c3VcIDsKK+auuuiZq+WJpCA8IHNhdGNodXV6YWlcIDsKK+iWhOmbquiNiSA8IHVzdXl1a2lzb3VcIDsKK+S6uuS9k+WtpiA8IGppbnRhaWdha3VcIDsKK+W5s+WfjuS6rCA8IGhlaWpvdWt5b3VcIDsKK+S4ieinkuW4vSA8IHNhbmtha3Vib3VcIDsKK+ihneaSg+azoiA8IHNob3VnZWtpaGFcIDsKK+iHquW3seizh+acrCA8IGppa29zaGlob25cIDsKK+mDtemAgeaWmSA8IHl1dXNvdXJ5b3VcIDsKK+efs+eCremFuCA8IHNla2l0YW5zYW5cIDsKK+W+geacjeiAhSA8IHNlaWZ1a3VzaGFcIDsKK+mhlOiyjCA8IGthb2thdGFjaGlcIDsKK+m7hOmHkeaZguS7oyA8IG91Z29uamlkYWlcIDsKK+WRveS7pOS4gOS4iyA8IG1laXJlaWlra2FcIDsKK+W8t+ihjOi7jSA8IGt5b3Vrb3VndW5cIDsKK+e0jeS7mOacn+mZkCA8IG5vdWZ1a2lnZW5cIDsKK+S7o+ihqOWboyA8IGRhaWh5b3VkYW5cIDsKK+Wwj+WFkOm6u+eXuiA8IHNob3VuaW1haGlcIDsKK+iEmuacrOWutiA8IGt5YWt1aG9ua2FcIDsKK+iPk+WtkOmJoiA8IGthc2hpYmFjaGlcIDsKK+ebtOWGhumMkCA8IGNob2t1ZW5zdWlcIDsKK+Wuo+S8neiomOS6iyA8IHNlbmRlbmtpamlcIDsKK+WHuueJiOaoqSA8IHNodXBwYW5rZW5cIDsKK+WGjeacjeW9uSA8IHNhaWZ1a3Vla2lcIDsKK+eUn+aUvumAgSA8IG5hbWFob3Vzb3VcIDsKK+ioiOeul+WwuiA8IGtlaXNhbmpha3VcIDsKK+Wkj+Wto+S8keaahyA8IGtha2lreXV1a2FcIDsKK+mAmuWLpOiAhSA8IHRzdXVraW5zaGFcIDsKK+S4gOWhgee3miA8IGljaGlydWlzZW5cIDsKK+iHqOaZguaUv+W6nCA8IHJpbmppc2VpZnVcIDsKK+WwuuWFqyA8IHNoYWt1aGFjaGlcIDsKK+a2sumHj+ioiCA8IGVraXJ5b3VrZWlcIDsKK+S4ieaXpeS4ieaZqSA8IG1pa2thbWliYW5cIDsKK+WIh+aUr+S4uSA8IGtpcmlzaGl0YW5cIDsKK+mXh+W4guWgtCA8IHlhbWlzaGlqb3VcIDsKK+adseeUtyA8IGF6dW1hb3Rva29cIDsKK+manOWus+iAhSA8IHNob3VnYWlzaGFcIDsKK+iytOaXj+eahCA8IGtpem9rdXRla2lcIDsKK+WNsOWIt+S6uiA8IGluc2F0c3VuaW5cIDsKK+a1t+iziuiIuSA8IGthaXpva3VzZW5cIDsKK+aKveixoeWMliA8IGNodXVzaG91a2FcIDsKK+ism+e/kuS8miA8IGtvdXNodXVrYWlcIDsKK+aEm+eOqeeJqSA8IGFpZ2FuYnV0c3VcIDsKK+m6u+mbgOWxiyA8IG1hemVqYW4nJ3lhXCA7CivkvJ3mn5Pmr5IgPCBkZW5zZW5kb2t1XCA7CivnhKHnkIbpm6PpoYwgPCBtdXJpbmFuZGFpXCA7Civku5blm73ogIUgPCB0YWtva3Vtb25vXCA7Civkuojlgpnoo4Xnva4gPCB5b2Jpc291Y2hpXCA7CivmnpzmqLnmoL3ln7kgPCBrYWp1c2FpYmFpXCA7Civph43lsaTnmoQgPCBqdXVzb3V0ZWtpXCA7Civos6rmqLggPCBzaGl0c3Vib2t1XCA7CivkupTph43loZQgPCBnb2p1dW5vdG91XCA7CivkuIvntJrlr6kgPCBrYWt5dXVzaGluXCA7CivogpjmnpUgPCBoaWppbWFrdXJhXCA7CivnspfooaPnspfpo58gPCBzb2lzb3Nob2t1XCA7CivkvY7miYDlvpcgPCB0ZWlzaG90b2t1XCA7Civku4/mu4UgPCBidXRzdW1ldHN1XCA7CivlsILploDnq6AgPCBzZW5tb25zaG91XCA7Civpi7PpgKDmiYAgPCBjaHV1em91c2hvXCA7Civnn63mmYLml6UgPCB0YW5qaWppdHN1XCA7CivkvJHmpa3ml6UgPCBreXV1Z3lvdWJpXCA7CivlhYjnq6/nmoQgPCBzZW50YW50ZWtpXCA7CivkurrmsJHlp5Tlk6EgPCBqaW5taW4nJ2lpblwgOwor5Zan5Zip6IWwIDwga2Vua2Fnb3NoaVwgOwor6I2J5Y+M57SZIDwga3VzYXpvdXNoaVwgOwor56m65oOz55qEIDwga3V1c291dGVraVwgOwor6aO95ZKM6JK45rCXIDwgaG91d2Fqb3VraVwgOwor6Zuq6YGU56OoIDwgeXVraWRhcnVtYVwgOwor5Yy55aSr5Yy55ammIDwgaGlwcHVoaXBwdVwgOwor5YaF5Lqk5riJIDwgbmFpa291c2hvdVwgOwor5bqD5ZGK56S+IDwga291a29rdXNoYVwgOwor5bCP5YyFIDwga29kenV0c3VtaVwgOwor5a+G5a+GIDwgbWl0c3VtaXRzdVwgOwor5LqM5YiG6Z+z56ymIDwgbmlidW4nJ29ucHVcIDsKK+iyqOeJqemnhSA8IGthbW90c3Vla2lcIDsKK+WNg+azouS4h+azoiA8IHNlbnBhYmFucGFcIDsKK+iyp+S5j+expCA8IGJpbmJvdWd1amlcIDsKK+WvvuipseW8jyA8IHRhaXdhc2hpa2lcIDsKK+WwseS4rSA8IG5ha2FuZHp1a3VcIDsKK+WFseeUo+i7jSA8IGt5b3VzYW5ndW5cIDsKK+S4iuiThiA8IHV3YW11c2hpcm9cIDsKK+S4jeaJv+irviA8IGZ1c2hvdWRha3VcIDsKK+axguS6uuiqjCA8IGt5dXVqaW5zaGlcIDsKK+mereavm+iZqyA8IGJlbm1vdWNodXVcIDsKK+ewoeWNmOacjSA8IGthbnRhbmZ1a3VcIDsKK+m7kuepgueXhSA8IGt1cm9ob2J5b3VcIDsKK+iEseWKmyA8IGRhdHN1cnlva3VcIDsKK+izquacrSA8IHNoaWNoaWZ1ZGFcIDsKK+WIhuaLhemhjSA8IGJ1bnRhbmdha3VcIDsKK+eVsOW4uOeZuueUnyA8IGlqb3VoYXNzZWlcIDsKK+ayu+WuiemDqOmaiiA8IGNoaWFuYnV0YWlcIDsKK+WkqumZveiZqyA8IHRhaXlvdWNodXVcIDsKK+aaq+WumueahCA8IHphbnRlaXRla2lcIDsKK+S7o+ihqOS+iyA8IGRhaWh5b3VyZWlcIDsKK+S4ieiPsSA8IG1pdHN1YmlzaGlcIDsKK+WIg+WCt+aymeaxsCA8IG5pbmpvdXphdGFcIDsKK+WQjOWbveawkSA8IGRvdWtva3VtaW5cIDsKK+iomOW/teeJqSA8IGtpbmVuYnV0c3VcIDsKK+aXp+S9k+WItiA8IGt5dXV0YWlzZWlcIDsKK+S7ruaelSA8IGthcmltYWt1cmFcIDsKK+WNl+a0i+adkCA8IG5hbicneW91emFpXCA7CivpnZ7luLjlj6MgPCBoaWpvdWd1Y2hpXCA7CivkuIrooajntJkgPCB1d2FieW91c2hpXCA7CivpnaLnmb3lkbMgPCBvbW9zaGlyb21pXCA7Civkv53lrZjpo58gPCBob3pvbnNob2t1XCA7CivkuI3mtLvmgKfljJYgPCBmdWthc3NlaWthXCA7CivljYrmhI/orZggPCBoYW4nJ2lzaGlraVwgOwor5L6b5Ye6IDwga3lvdXNodXRzdVwgOwor5a6u5a6kIDwga3l1dXNoaXRzdVwgOwor5pys6Kq/5a2QIDwgaG9uY2hvdXNoaVwgOwor57mU5aWz5pifIDwgc2hva3Vqb3NlaVwgOwor5pil6ZyeIDwgaGFydWdhc3VtaVwgOwor5bCC6ZaA55qEIDwgc2VubW9udGVraVwgOwor6aOf54mpIDwgc2hva3Vtb3RzdVwgOwor5aCx5YSf6YeRIDwgaG91c2hvdWtpblwgOwor5pOy5by+562SIDwgdGVraWRhbnRvdVwgOwor6LKn5LmP56WeIDwgYmluYm91Z2FtaVwgOwor5piU6aKoIDwgbXVrYXNoaWZ1dVwgOwor5aSn57Wx6aCYIDwgZGFpdG91cnlvdVwgOwor6YeP5a2Q6KuWIDwgcnlvdXNoaXJvblwgOwor5Lit5Yqb57KJIDwgY2h1dXJpa2lrb1wgOwor5a6d5bO2IDwgdGFrYXJhamltYVwgOwor5bel5LqL54++5aC0IDwga291amlnZW5iYVwgOwor55y86Y+h54y/IDwgbWVnYW5lemFydVwgOwor5LuP5qeYIDwgaG90b2tlc2FtYVwgOwor6ISa5YqbIDwga3lha3VyeW9rdVwgOwor5qWt55WM57SZIDwgZ3lvdWthaXNoaVwgOwor6Z2e5YWs5byPIDwgaGlrb3VzaGlraVwgOwor5rC05YW15pyNIDwgc3VpaGVpZnVrdVwgOwor6LKv5pyo5aC0IDwgY2hvYm9rdWpvdVwgOwor5qKv5a2Q5q61IDwgaGFzaGlnb2RhblwgOwor5b2T5q2z6aeSIDwgdG91c2FpZ29tYVwgOwor5a6X5pWZ5a62IDwgc2h1dWt5b3VrYVwgOwor56CU56m25a6YIDwga2Vua3l1dWthblwgOwor5q6J5pWZ6ICFIDwganVua3lvdXNoYVwgOwor5q6J6Zuj6ICFIDwganVuJyduYW5zaGFcIDsKK+WjgeiotOionyA8IGthYmV6b3Nob3VcIDsKK+S4i+iBtyA8IHNoaXRhc2hva3VcIDsKK+iHquW3seWuo+S8nSA8IGppa29zZW5kZW5cIDsKK+eOieaVtOeQhiA8IGd5b2t1c2VpcmlcIDsKK+iMqOWfjuecjCA8IGliYXJha2lrZW5cIDsKK+WxiOabsumDqCA8IGt1a2t5b2t1YnVcIDsKK+a2iOmYsumaiiA8IHNob3Vib3V0YWlcIDsKK+acp+aYhuW4gyA8IG9ib3Jva29uYnVcIDsKK+awl+euoeaUr+eCjiA8IGtpa2Fuc2hpZW5cIDsKK+eci+eXheS6uiA8IGthbmJ5b3VuaW5cIDsKK+iKsembu+i7iiA8IGhhbmFkZW5zaGFcIDsKK+WcsOaWh+WtpiA8IGNoaW1vbmdha3VcIDsKK+WPo+S+m+abuCA8IGtvdWt5b3VzaG9cIDsKK+absuethiA8IGt5b2t1aGl0c3VcIDsKK+aJi+WJjeWLneaJiyA8IHRlbWFlZ2F0dGVcIDsKK+S/neWuiOS4u+e+qSA8IGhvc2h1c2h1Z2lcIDsKK+iNiemHjueQgyA8IGt1c2F5YWt5dXVcIDsKK+aknOS6i+WxgCA8IGtlbmppa3lva3VcIDsKK+acqOerr+W+ruWhtSA8IGtvcHBhbWlqaW5cIDsKK+WFrei+uuW9oiA8IHJva3VoZW5rZWlcIDsKK+atu+S6oeiomOS6iyA8IHNoaWJvdWtpamlcIDsKK+iqreiAheWxpCA8IGRva3VzaGFzb3VcIDsKK+WCrOS/g+eKtiA8IHNhaXNva3Vqb3VcIDsKK+WCvuaWnOinkiA8IGtlaXNoYWtha3VcIDsKK+mBjuWJsOWIqeebiiA8IGtham91cmlla2lcIDsKK+WPjuebo+eKtiA8IHNodXVrYW5qb3VcIDsKK+WcsOmch+WtpiA8IGppc2hpbmdha3VcIDsKK+WcqOS4luS4rSA8IHphaXNlaWNodXVcIDsKK+WlpeW6p+aVtyA8IG9rdXphc2hpa2lcIDsKK+S4gOe6jyA8IGhpdG9tYXRvbWVcIDsKK+e+juihk+mkqCA8IGJpanV0c3VrYW5cIDsKK+ioseWuuemHjyA8IGt5b3lvdXJ5b3VcIDsKK+Wls+WwiueUt+WNkSA8IGpvc29uZGFucGlcIDsKK+WwhOaSg+WgtCA8IHNoYWdla2lqb3VcIDsKK+W+jOWkqeeahCA8IGtvdXRlbnRla2lcIDsKK+mnkOWxr+WcsCA8IGNodXV0b25jaGlcIDsKK+mjr+argyA8IG1lc2hpYml0c3VcIDsKK+iEs+a6ouihgCA8IG5vdWlra2V0c3VcIDsKK+WtmOWRveS4rSA8IHpvbm1laWNodXVcIDsKK+ezu+WIl+WMliA8IGtlaXJldHN1a2FcIDsKK+WHuueJiOWxiyA8IHNodXBwYW4nJ3lhXCA7Civlr6nnvo7nmoQgPCBzaGluYml0ZWtpXCA7CivmgZLkuYXmgKcgPCBrb3VreXV1c2VpXCA7Civosp3mn7EgPCBrYWliYXNoaXJhXCA7CivniYfosr/mmJMgPCBrYXRhYm91ZWtpXCA7CivmlofnjK7lraYgPCBidW5rZW5nYWt1XCA7CivljYHkuozljZjooaMgPCBqdXVuaWhpdG9lXCA7CivmmYLku6PoibIgPCBqaWRhaXNob2t1XCA7CivliIbpm6LoqrLnqI4gPCBidW5yaWthemVpXCA7CivlpKflpKfnmoQgPCBkYWlkYWl0ZWtpXCA7Civkuozph43mqYsgPCBuaWp1dWJhc2hpXCA7CivlnLDoqozlraYgPCBjaGlzaGlnYWt1XCA7CivljJblrabnmoQgPCBrYWdha3V0ZWtpXCA7Civmm7Lnm7QgPCBreW9rdWNob2t1XCA7CivogonlvL7miKYgPCBuaWt1ZGFuc2VuXCA7CivkuIDntYPnkLQgPCBpY2hpZ2Vua2luXCA7CivpgYrniafmsJEgPCB5dXVib2t1bWluXCA7CivkuLjnk6YgPCBtYXJ1Z2F3YXJhXCA7CivmoLjlrp/pqJMgPCBrYWt1amlra2VuXCA7Civosqjnianou4ogPCBrYW1vdHN1c2hhXCA7Civku7vmhI/mjZzmn7sgPCBuaW4nJ2lzb3VzYVwgOwor5rGC5Lq66ICFIDwga3l1dWppbnNoYVwgOwor5LiD56uIIDwgbmFuYWthbWFkb1wgOwor5Zyw6ZyH5Zu9IDwgamlzaGlua29rdVwgOwor5bGF55WZ5ZywIDwga3lvcnl1dWNoaVwgOwor5LiK5L2N5qaC5b+1IDwgam91aWdhaW5lblwgOwor6Zqc5a2Q57SZIDwgc2hvdWppZ2FtaVwgOwor6Iie5Y+w6YGT5YW3IDwgYnV0YWlkb3VndVwgOwor5r2c5Ye955eFIDwgc2Vua2FuYnlvdVwgOwor5LiA56m0IDwgaGl0b3RzdWFuYVwgOwor5byV546H6ICFIDwgaW5zb3RzdXNoYVwgOwor5LiK5pig5pmC6ZaTIDwgam91ZWlqaWthblwgOwor5a2r5aiYIDwgbWFnb211c3VtZVwgOwor5rW36LOK54mIIDwga2Fpem9rdWJhblwgOwor5L+h5Luw6ICFIDwgc2hpbmtvdXNoYVwgOwor5raI6Ziy6LuKIDwgc2hvdWJvdXNoYVwgOwor5LiJ562J6LOeIDwgc2FudG91c2hvdVwgOwor54Sh6K2m5a+fIDwgbXVrZWlzYXRzdVwgOwor5LuP5oCnIDwgaG90b2tlc2hvdVwgOwor6Z2Z6Z2ZIDwgc2hpenVzaGl6dVwgOwor5b2p6Imy55S7IDwgc2Fpc2hva3VnYVwgOwor5Yun5ZGK6ICFIDwga2Fua29rdXNoYVwgOwor6KiI5Zmo6aOb6KGMIDwga2Vpa2loaWtvdVwgOwor5a6f5YqbIDwgaml0c3VyeW9rdVwgOwor5puy546HIDwga3lva3VyaXRzdVwgOwor5aSn6byTIDwgb290c3VkenVtaVwgOwor5bqD5ZGK5qyEIDwga291a29rdXJhblwgOwor6LOe6YeR546LIDwgc2hvdWtpbicnb3VcIDsKK+aIpueBveWtpOWFkCA8IHNlbnNhaWtvamlcIDsKK+mAmuefpeeKtiA8IHRzdXVjaGlqb3VcIDsKK+W3peS9nOWTgSA8IGtvdXNha3VoaW5cIDsKK+WcsOaUv+WtpiA8IGNoaXNlaWdha3VcIDsKK+WkqumZveelniA8IHRhaXlvdXNoaW5cIDsKK+e2meaJv+iAhSA8IGtlaXNob3VzaGFcIDsKK+WfuuacrOWOn+eQhiA8IGtpaG9uZ2VucmlcIDsKK+S5s+ijveWTgSA8IG55dXVzZWloaW5cIDsKK+eLkOiJsiA8IGtpdHN1bmVpcm9cIDsKK+mBiuaSg+maiiA8IHl1dWdla2l0YWlcIDsKK+WNkeaAr+iAhSA8IGhpa3lvdW1vbm9cIDsKK+WGjeaVmeiCsiA8IHNhaWt5b3Vpa3VcIDsKK+WbveWGhee3miA8IGtva3VuYWlzZW5cIDsKK+WZm+eFmeiNiSA8IGthbWl0YWJha29cIDsKK+S4gOedoSA8IGhpdG9uZW11cmlcIDsKK+aFiOWWhOW4giA8IGppemVuJydpY2hpXCA7Civlm57mg7PpjLIgPCBrYWlzb3Vyb2t1XCA7CivlpJbkuqTnmoQgPCBnYWlrb3V0ZWtpXCA7Civmg4XmhI/mipXlkIggPCBqb3VpdG91Z291XCA7CivkuIvnlLogPCBzaGl0YW1hY2hpXCA7CivnrqHnkIbmqZ/og70gPCBrYW5yaWtpbm91XCA7Civkurrlv4MgPCBoaXRvZ29rb3JvXCA7Civkv67nkIbkuK0gPCBzaHV1cmljaHV1XCA7Civoh6jmmYLoqJjlj7cgPCByaW5qaWtpZ291XCA7CivkuInnrYnopqogPCBzYW50b3VzaGluXCA7CivlnLDooajpnaIgPCBjaGloeW91bWVuXCA7CivlubLmuInoqIggPCBrYW5zaG91a2VpXCA7CivnoJTnqbbkvJogPCBrZW5reXV1a2FpXCA7Civogpblg4/mqKkgPCBzaG91em91a2VuXCA7CivkuIPnlJ8gPCBzaGljaGlzaG91XCA7CivlhbXlvbnlv4zpgb8gPCBoZWlla2lraWhpXCA7Civnh5XpuqYgPCBrYXJhc3VtdWdpXCA7CivlvbnkuI3otrMgPCB5YWt1YnVzb2t1XCA7CivkuIDnlaogPCBoaXRvdHN1Z2FpXCA7Civms6jmhI/lipsgPCBjaHV1aXJ5b2t1XCA7CivohbnkuIrmrbsgPCBmdWt1am91c2hpXCA7Civnt6jpm4bogIUgPCBoZW5zaHV1c2hhXCA7CivluoPlkYrmnb8gPCBrb3Vrb2t1YmFuXCA7CivmuInnpr3poZ4gPCBzaG91a2lucnVpXCA7CivlgJLpjK/ogIUgPCB0b3VzYWt1c2hhXCA7CivmsLTnlrHnmKEgPCBtaXp1Ym91c291XCA7CivlubPnrYnmqKkgPCBieW91ZG91a2VuXCA7CivlpKfpnIfngb0gPCBkYWlzaGluc2FpXCA7Civph43nl4fkvosgPCBqdXVzaG91cmVpXCA7CivlnLDln5/nmoQgPCBjaGlpa2l0ZWtpXCA7CivlhbHnlKPns7sgPCBreW91c2Fua2VpXCA7CivplovplonmqYsgPCBrYWloZWlreW91XCA7CivmiKbkuonmmKDnlLsgPCBzZW5zb3VlaWdhXCA7CivpmbPmg4Xmm7ggPCBjaGluam91c2hvXCA7CivosqHmlL/ljbHmqZ8gPCB6YWlzZWlraWtpXCA7CivmipXmqZ/nhrEgPCB0b3VraW5ldHN1XCA7CivmnInpmZDoirHluo8gPCB5dXVnZW5rYWpvXCA7Civnianoqp4gPCBtb25vZ2F0YXJpXCA7Civlhpfoq4fkuosgPCBqb3VkYW5rb3RvXCA7CivmnIDpq5jntJogPCBzYWlrb3VreXV1XCA7CivmgJ3mg5HluKsgPCBvbW93YWt1c2hpXCA7CivlpbPpgZQgPCBvbicnbmF0YWNoaVwgOwor6KW/5pel5pysIDwgbmlzaGluaWhvblwgOwor6L+R5Luj55qEIDwga2luZGFpdGVraVwgOwor6LaF5aSn5Z6LIDwgY2hvdW9vZ2F0YVwgOwor56CV5rC36Ii5IDwgc2FpaHlvdXNlblwgOwor5ryB5qWt5rOVIDwgZ3lvZ3lvdWhvdVwgOwor5pyn5pyIIDwgb2Jvcm9kenVraVwgOwor5pyq6Kej5rG6IDwgbWlrYWlrZXRzdVwgOwor54mH6LebIDwga2F0YWNoaW5iYVwgOwor6LuN5LqL5Z+65ZywIDwgZ3VuamlraWNoaVwgOwor5beo5Lq65Zu9IDwga3lvamlua29rdVwgOwor5pyA5bCP6ZmQIDwgc2Fpc2hvdWdlblwgOwor5pyr5pelIDwgbWF0c3VqaXRzdVwgOwor5YWs5YWx5oCnIDwga291a3lvdXNlaVwgOwor5LiN5q2j5LqL5Lu2IDwgZnVzZWlqaWtlblwgOwor5Ye65p2l5qyh56ysIDwgZGVraXNoaWRhaVwgOwor5bel5a2m5aOrIDwga291Z2FrdXNoaVwgOwor6YWS6YCg5qWtIDwgc2h1em91Z3lvdVwgOwor5aSJ5L2T5Luu5ZCNIDwgaGVudGFpZ2FuYVwgOwor6Imy6Ymb562GIDwgaXJvZW5waXRzdVwgOwor5pyb5pyIIDwgbW9jaGlkenVraVwgOwor6Iux6ZuE5Li7576pIDwgZWl5dXVzaHVnaVwgOwor54Gr5omT55+zIDwgaGl1Y2hpaXNoaVwgOwor6Ya46YCg5qWtIDwgam91em91Z3lvdVwgOwor5aSn6Zq8IDwgb29oYXlhYnVzYVwgOwor5Y2Y55y86Y+hIDwgdGFuZ2Fua3lvdVwgOwor55e06Kmx5Zan5ZipIDwgY2hpd2FnZW5rYVwgOwor5ryB5qWt5qipIDwgZ3lvZ3lvdWtlblwgOwor55+z54Gv57GgIDwgaXNoaWRvdXJvdVwgOwor5Y2X5rC35rSLIDwgbmFucHlvdXlvdVwgOwor6bGI5aC06J+5IDwgdGFyYWJhZ2FuaVwgOwor5bKh5bGx55yMIDwgb2theWFtYWtlblwgOwor54OP5pyJ5YWI55SfIDwgdXl1dXNlbnNlaVwgOwor57Sh57i+5belIDwgYm91c2VraWtvdVwgOwor6LW354iG6JasIDwga2liYWt1eWFrdVwgOwor56K66KqN5pu4IDwga2FrdW5pbnNob1wgOwor5oay5rOV6YGV5Y+NIDwga2VucG91aWhhblwgOwor5Zue6Lui5qSF5a2QIDwga2FpdGVuJydpc3VcIDsKK+iqleeUn+efsyA8IHRhbmpvdXNla2lcIDsKK+mYsuiHreWJpCA8IGJvdXNodXV6YWlcIDsKK+mMq+ijveWTgSA8IHN1enVzZWloaW5cIDsKK+aciOaciCA8IHRzdWtpZHp1a2lcIDsKK+iyqOeJqeiIuSA8IGthbW90c3VzZW5cIDsKK+S4gOWhgeaJiyA8IGljaGlydWlzaHVcIDsKK+iEmue3mue+jiA8IGt5YWt1c2VuYmlcIDsKK+iDveeZu+WNiuWztiA8IG5vdG9oYW50b3VcIDsKK+WKo+aAp+mBuuS8nSA8IHJlc3NlaWlkZW5cIDsKK+acieS+oeeJqSA8IHl1dWthYnV0c3VcIDsKK+iri+iyoOWItuW6piA8IHVrZW9pc2VpZG9cIDsKK+akjeeUn+WbsyA8IHNob2t1c2VpenVcIDsKK+S4gOa4oSA8IGhpdG93YXRhcmlcIDsKK+eZuuaDheacnyA8IGhhdHN1am91a2lcIDsKK+eZveawtOekviA8IGhha3VzdWlzaGFcIDsKK+awtOi7iuWwj+WxiyA8IHN1aXNoYWdveWFcIDsKK+aOoeeul+agqiA8IHNhaXNhbmthYnVcIDsKK+ikkOavm+WSjOeoriA8IGFrYWdld2FzaHVcIDsKK+mVt+S4geWgtCA8IG5hZ2FjaG91YmFcIDsKK+WmvuiFuSA8IG1la2FrZWJhcmFcIDsKK+acieWtlOiZqyA8IHl1dWtvdWNodXVcIDsKK+WbuuWumuiyoOWCtSA8IGtvdGVpZnVzYWlcIDsKK+WkqeeEtueXmCA8IHRlbicnbmVudG91XCA7Civkvp3poZjlhY3lrpggPCBpZ2FubWVua2FuXCA7Civlm5vmi43lrZAgPCB5b25ieW91c2hpXCA7Civlhpfplbfns7sgPCBqb3VjaG91a2VpXCA7Civml6XmnKzlvI8gPCBuaWhvbnNoaWtpXCA7CivmuoDlubTpvaIgPCBtYW4nJ25lbnJlaVwgOwor5raI6Ziy6ImHIDwgc2hvdWJvdXRlaVwgOwor5bCP5ray6IOeIDwgc2hvdWVraWhvdVwgOwor6aaW5ZSx6ICFIDwgc2h1c2hvdXNoYVwgOwor6Zuy6ZyeIDwga3Vtb2thc3VtaVwgOwor5pel5pys5bmzIDwgbmlob25kYWlyYVwgOwor6Z2p6KKLIDwga2F3YWJ1a3Vyb1wgOwor6YmE6Z2i55quIDwgdGV0c3VtZW5waVwgOwor5Li75qip5Zu9IDwgc2h1a2Vua29rdVwgOwor6LK35o6b6YeRIDwga2Fpa2FrZWtpblwgOwor55+z54Gw55+zIDwgc2Vra2Fpc2VraVwgOwor57Gz5ZWP5bGLIDwga29tZWRvbicneWFcIDsKK+aAneaDs+WKhyA8IHNoaXNvdWdla2lcIDsKK+S4h+WbveawkSA8IGJhbmtva3VtaW5cIDsKK+WLp+WRiueKtiA8IGthbmtva3Vqb3VcIDsKK+aVl+WMl+aEnyA8IGhhaWJva3VrYW5cIDsKK+Wvhui8uOiIuSA8IG1pdHN1eXVzZW5cIDsKK+WHuuadpeS4jeWHuuadpSA8IGRla2lmdWRla2lcIDsKK+WPr+Wkiee/vCA8IGthaGVuJyd5b2t1XCA7CivmlL/lupzmqZ/plqIgPCBzZWlmdWtpa2FuXCA7CivlgY/poK3nl5sgPCBoZW50b3V0c3V1XCA7CivlubTpvaLntaYgPCBuZW5yZWlreXV1XCA7CivpgI/no4HnjocgPCB0b3VqaXJpdHN1XCA7Civkuovku7boqJjogIUgPCBqaWtlbmtpc2hhXCA7CivlubPlronlvozmnJ8gPCBoZWlhbmtvdWtpXCA7CivljoTku4vkuosgPCB5YWtrYWlnb3RvXCA7CivkvI/lsITmv6AgPCBmdWt1c2hhZ291XCA7CivmnpDlh7ogPCBzZWtpc2h1dHN1XCA7Civmh7jlo4XlnoIgPCBrZW4nJ3lvdXN1aVwgOwor55WM56OB5qW1IDwga2FpamlreW9rdVwgOwor5b+c55So5YqbIDwgb3V5b3VyeW9rdVwgOwor5pel5puc5pelIDwgbmljaGl5b3ViaVwgOwor5raI6Ziy572yIDwgc2hvdWJvdXNob1wgOwor6ZuH55So5L+d6Zm6IDwga295b3Vob2tlblwgOwor6LKn5LmP5oCnIDwgYmluYm91c2hvdVwgOwor5qC45bSp5aOKIDwga2FrdWhvdWthaVwgOwor5LiN5r2U5oSfIDwgZnVrZXRzdWthblwgOwor5pWw5a2m6ICFIDwgc3V1Z2FrdXNoYVwgOwor6IG05Y+W6ICFIDwgY2hvdXNodXNoYVwgOwor6Kqt5pu45Lq6IDwgZG9rdXNob2ppblwgOwor5L+d6K236LK/5piTIDwgaG9nb2JvdWVraVwgOwor5YmN5Lu75ZywIDwgemVuJyduaW5jaGlcIDsKK+a8geiJsuWutiA8IGd5b3Nob2t1a2FcIDsKK+S4lueVjOWItuimhyA8IHNla2Fpc2VpaGFcIDsKK+ijveS9nOiAhSA8IHNlaXNha3VzaGFcIDsKK+S4jeadnyA8IGZ1dHN1dHN1a2FcIDsKK+ayoeWAi+aApyA8IGJvdHN1a29zZWlcIDsKK+eEoeapn+iCpeaWmSA8IG11a2loaXJ5b3VcIDsKK+WFqOW6l+S4rSA8IHplbnRlbmNodXVcIDsKK+mrmOmHjuixhuiFkCA8IGtvdXlhZG91ZnVcIDsKK+WumOe1puWTgSA8IGthbmt5dXVoaW5cIDsKK+eZvemHkeaXjyA8IGhha2tpbnpva3VcIDsKK+WkqeaWh+WtpiA8IHRlbm1vbmdha3VcIDsKK+WFteWtpuiAhSA8IGhlaWdha3VzaGFcIDsKK+WQiOWUsemaiiA8IGdhc3Nob3V0YWlcIDsKK+S7o+itsOaUv+ayuyA8IGRhaWdpc2VpamlcIDsKK+S4jeaIkOeriyA8IGZ1c2Vpcml0c3VcIDsKK+eMq+afsyA8IG5la295YW5hZ2lcIDsKK+eMrue0jeWTgSA8IGtlbicnbm91aGluXCA7CivntLDnspLliIYgPCBzYWlyeXV1YnVuXCA7CivmhI/ppqzlv4PnjL8gPCBpYmFzaGluJydlblwgOwor54yb57e057+SIDwgbW91cmVuc2h1dVwgOwor5Lqk6YCa6YG65YWQIDwga291dHN1dWlqaVwgOwor5L6L5aSW55qEIDwgcmVpZ2FpdGVraVwgOwor5Yq5546H5YyWIDwga291cml0c3VrYVwgOwor6Zmk6Jmr6I+KIDwgam9jaHV1Z2lrdVwgOwor57SF55Sf5aecIDwgYmVuaXNob3VnYVwgOwor5bmy5ouT5ZywIDwga2FudGFrdWNoaVwgOwor5YeN5YK36ICFIDwgdG91c2hvdXNoYVwgOwor5ZCM5Zu95Lq6IDwgZG91a29rdWppblwgOwor55uu55qE6KqeIDwgbW9rdXRla2lnb1wgOwor6LK45LuYIDwga2FzaGl0c3VrZVwgOwor5LiJ5Zu95b+XIDwgc2FuZ29rdXNoaVwgOwor5Lq654mp55S7IDwgamluYnV0c3VnYVwgOwor5ZC45YWl5ZmoIDwga3l1dW55dXVraVwgOwor6Ziy5a+S5pyNIDwgYm91a2FuZnVrdVwgOwor5L+u6Zmi6ZW3IDwgc2h1dWluY2hvdVwgOwor5Zu95YaF5rOVIDwga29rdW5haWhvdVwgOwor5o6i56m26ICFIDwgdGFua3l1dXNoYVwgOwor5Yid5b+D6ICFIDwgc2hvc2hpbnNoYVwgOwor54u45rGBIDwgdGFudWtpamlydVwgOwor5pyq6ZaL55m6IDwgbWlrYWloYXRzdVwgOwor5bqD5ZGK5aGUIDwga291a29rdXRvdVwgOwor6ZaL5ouT6ICFIDwga2FpdGFrdXNoYVwgOwor5Lq66aGe5a2mIDwgamlucnVpZ2FrdVwgOwor55+l5pel5rS+IDwgY2hpbmljaGloYVwgOwor5pyA6auY5r2uIDwgc2Fpa291Y2hvdVwgOwor5aSp54S25rivIDwgdGVuJyduZW5rb3VcIDsKK+WPjemAhuWFkCA8IGhhbmd5YWt1amlcIDsKK+S4gOWbveiAhSA8IGlra29rdW1vbm9cIDsKK+WlveadkOaWmSA8IGtvdXphaXJ5b3VcIDsKK+WkqumZveaapiA8IHRhaXlvdXJla2lcIDsKK+W4uOeUqOeZliA8IGpvdXlvdWhla2lcIDsKK+aXqeaVmeiCsiA8IHNvdWt5b3Vpa3VcIDsKK+agvOWtkOe4niA8IGtvdXNoaWppbWFcIDsKK+WPjei7jeeahCA8IGhhbmd1bnRla2lcIDsKK+iWrOWMhee0mSA8IHlha3Vob3VzaGlcIDsKK+WFteabuemVtyA8IGhlaXNvdWNob3VcIDsKK+a8ouaWh+WtpiA8IGthbmJ1bmdha3VcIDsKK+aApeWFiOmLkiA8IGt5dXVzZW5wb3VcIDsKK+S4jeaKsSA8IGtha2F3YXJhenVcIDsKK+WPo+Wlh+m6lyA8IGt1Y2hpZ2lyZWlcIDsKK+ihjOaUv+azlSA8IGd5b3VzZWlob3VcIDsKK+mAgemHkemhjSA8IHNvdWtpbmdha3VcIDsKK+axguWpmuiAhSA8IGt5dXVrb25zaGFcIDsKK+WGjeiqv+aVtCA8IHNhaWNob3VzZWlcIDsKK+miqOimi+m2jyA8IGthemFtaWRvcmlcIDsKK+Wft+aUv+WumCA8IHNoaXNzZWlrYW5cIDsKK+iDvealveWggiA8IG5vdWdha3Vkb3VcIDsKK+WlveS4i+eJqSA8IGtvdWthYnV0c3VcIDsKK+WPjOeZuuapnyA8IHNvdWhhdHN1a2lcIDsKK+mBuuajhOiyqOeJqSA8IGlraWthbW90c3VcIDsKK+WFrOWFseWCtSA8IGtvdWt5b3VzYWlcIDsKK+aYqOW5tOadpSA8IHNha3VuZW5yYWlcIDsKK+aPkOS+m+iAhSA8IHRlaWt5b3VzaGFcIDsKK+mGuOmAoOWtpiA8IGpvdXpvdWdha3VcIDsKK+S4gOaJgCA8IGhpdG90b2tvcm9cIDsKK+W+l+eCueWcjyA8IHRva3V0ZW5rZW5cIDsKK+eCreWMluawtOe0oCA8IHRhbmthc3Vpc29cIDsKK+Wvqee+juWtpiA8IHNoaW5iaWdha3VcIDsKK+Wls+S+v+aJgCA8IG9uJyduYWJlbmpvXCA7CivlkYnmnI3niakgPCBnb2Z1a3Vtb25vXCA7Civnl4flgJnnvqQgPCBzaG91a291Z3VuXCA7Civlm7LnooHkuInntJogPCBpZ29zYW5reXV1XCA7CivnlKPlqabkurrnp5EgPCBzYW5mdWppbmthXCA7Civmm7LlsLogPCBreW9rdXNoYWt1XCA7CivmoLzlrZDnqpMgPCBrb3VzaGltYWRvXCA7CivmlofmmI7lm70gPCBidW5tZWlrb2t1XCA7CivooYzmlL/mqKkgPCBneW91c2Vpa2VuXCA7Civph5HmnKjnioAgPCBraW5tb2t1c2VpXCA7CivnkIbmg7PkuLvnvqkgPCByaXNvdXNodWdpXCA7CivljYHlrZfnoLLngasgPCBqdXVqaWhvdWthXCA7Civpm6ros6ogPCB5dWtpc2hpdHN1XCA7Civpg73pgZPlupznnIwgPCB0b2RvdWZ1a2VuXCA7Civpup3pppnosYzosYYgPCBqYWtvdWVuZG91XCA7CivmiYvmnK3lnosgPCB0ZWZ1ZGFnYXRhXCA7CivlhajoiKznmoQgPCB6ZW5wYW50ZWtpXCA7Civnibnmrorpi7wgPCB0b2t1c2h1a291XCA7CivlnKfnuK7mgKcgPCBhc3NodWt1c2VpXCA7Civnm7LllJblrabmoKEgPCBtb3VhZ2Fra291XCA7Civkv53lronmnaHkvosgPCBob2Fuam91cmVpXCA7Civnn7PlmajmmYLku6MgPCBzZWtraWppZGFpXCA7CivkvLzpnZ7nkIblsYggPCBlc2VyaWt1dHN1XCA7CivlrpjmiL/plbcgPCBrYW5ib3VjaG91XCA7CivoqJjlv7XliIfmiYsgPCBraW5lbmtpdHRlXCA7Civnmb3noILns5YgPCBzaGlyb3phdG91XCA7CivlgIvkurrlgIvkurogPCBrb2ppbmtvamluXCA7CivmmKXliIbngrkgPCBzaHVuYnVudGVuXCA7Civml6fkuLvkurogPCBreXV1c2h1amluXCA7CivniofniocgPCBoaXNoaWhpc2hpXCA7Civpm5vosYYgPCBoaXlva29tYW1lXCA7Civlu7bmu57liKnlrZAgPCBlbnRhaXJpc2hpXCA7CivokYnnt5HntKAgPCB5b3VyeW9rdXNvXCA7CivntrLpoK0gPCBhbWlnYXNoaXJhXCA7CivliIbmtL7kuLvnvqkgPCBidW5wYXNodWdpXCA7CivlhoXpnaLnmoQgPCBuYWltZW50ZWtpXCA7Civmr4DoqonopJLosrYgPCBraXlvaG91aGVuXCA7CivogrrntZDmoLggPCBoYWlrZWtrYWt1XCA7CivllK/nvo7kuLvnvqkgPCB5dWliaXNodWdpXCA7CivloanprZogPCBzaGlvemFrYW5hXCA7Civlm57lj47ph5EgPCBrYWlzaHV1a2luXCA7Civntr/luL3lrZAgPCB3YXRhYm91c2hpXCA7CivkuK3ln7cgPCBjaHV1c2hpdHN1XCA7CivlpI/omasgPCBuYXRzdW11c2hpXCA7CivmgKXpgLLmtL4gPCBreXV1c2hpbmhhXCA7Civou43kuovooZvmmJ8gPCBndW5qaWVpc2VpXCA7CivoirjooZPpmaIgPCBnZWlqdXRzdWluXCA7CivmprTlvL7noLIgPCByeXV1ZGFucG91XCA7CivlhpLpmbrlv4MgPCBib3VrZW5zaGluXCA7Civlj6/nh4PniakgPCBrYW5lbmJ1dHN1XCA7Civml6XmnKzkuIAgPCBuaWhvbicnaWNoaVwgOwor5L+u57e06ICFIDwgc2h1dXJlbnNoYVwgOwor5Y+N5bCE6Y+hIDwgaGFuc2hha3lvdVwgOwor5LqM55u06KeSIDwgbmljaG9ra2FrdVwgOwor54Sh5oiR5aSi5LitIDwgbXVnYW11Y2h1dVwgOwor5Z6L5aSJ5o+bIDwga2F0YWhlbmthblwgOwor5Y675Yui54mbIDwga3lvc2VpdXNoaVwgOwor5LqI5a6a5pyf6ZmQIDwgeW90ZWlraWdlblwgOwor54qv572q5a2mIDwgaGFuemFpZ2FrdVwgOwor5Y6f57GN5ZywIDwgZ2Vuc2VraWNoaVwgOwor57a+6YymIDwgYXlhbmlzaGlraVwgOwor5oCn6YGT5b6zIDwgc2VpZG91dG9rdVwgOwor5bmz5ruR5YyWIDwgaGVpa2F0c3VrYVwgOwor56uL5L2T5pig55S7IDwgcml0dGFpZWlnYVwgOwor6YO15L6/566xIDwgeXV1YmluYmFrb1wgOwor5Y+X5L+h5paZIDwganVzaGlucnlvdVwgOwor5YaN57WE57mUIDwgc2Fpc29zaGlraVwgOwor576O6KGT55WMIDwgYmlqdXRzdWthaVwgOwor5aSp5rCX5qih5qeYIDwgdGVua2ltb3lvdVwgOwor5LiN562J5byPIDwgZnVkb3VzaGlraVwgOwor54Gr5Y+j5Y6f5rmWIDwga2Frb3VnZW5rb1wgOwor5pyI5YilIDwgdHN1a2liZXRzdVwgOwor6KGo6Z+z5a2X5q+NIDwgaHlvdW9uamlib1wgOwor57SE5a6a5pu4IDwgeWFrdWpvdXNob1wgOwor5LiJ566H5pelIDwgc2FuZ2FuaWNoaVwgOwor6Z+z5aOw6KiA6KqeIDwgb25zZWlnZW5nb1wgOwor55m656Wl5ZywIDwgaGFzc2hvdWNoaVwgOwor5LiA5pio5pio5pelIDwgc2FraW90b3RvaVwgOwor5Yud5omL5Y+jIDwga2F0dGVndWNoaVwgOwor5aSV6aOf5b6MIDwgeXV1c2hva3Vnb1wgOwor5pCs5YWl5pelIDwgaGFuJydueXV1YmlcIDsKK+ixquWVhuWxpCA8IGdvdXNob3Vzb3VcIDsKK+WltOixhuiFkCA8IHlha2tvZG91ZnVcIDsKK+iEseazleihjOeCuiA8IGRhcHBvdWtvdWlcIDsKK+aEn+immuirliA8IGthbmtha3Vyb25cIDsKK+WbveeUo+i7iiA8IGtva3VzYW5zaGFcIDsKK+S4jea1gemAmiA8IGZ1cnl1dXRzdXVcIDsKK+api+mgreWgoSA8IGt5b3V0b3Vob3VcIDsKK+WAi+S6uuS4u+e+qSA8IGtvamluc2h1Z2lcIDsKK+Wkj+aZgumWkyA8IG5hdHN1amlrYW5cIDsKK+efs+eCreWxpCA8IHNla2l0YW5zb3VcIDsKK+e1ueS4gOWMuSA8IGtpbnVpcHBpa2lcIDsKK+W7uueZveabuCA8IGtlbnBha3VzaG9cIDsKK+a2iOmYsuazlSA8IHNob3Vib3Vob3VcIDsKK+S4rei/keadsSA8IGNodXVraW50b3VcIDsKK+S4jeato+imj+i7jSA8IGZ1c2Vpa2lndW5cIDsKK+WlqueVpSA8IGRhdHN1cnlha3VcIDsKK+iovOS6uuWPsCA8IHNob3VuaW5kYWlcIDsKK+awtOeUo+alrSA8IHN1aXNhbmd5b3VcIDsKK+avlOS+i+W8jyA8IGhpcmVpc2hpa2lcIDsKK+eUt+aJgOW4ryA8IG90b2tvam90YWlcIDsKK+S/ruaVtOeJiCA8IHNodXVzZWloYW5cIDsKK+WHhueci+itt+WppiA8IGp1bmthbmdvZnVcIDsKK+WGt+awtOa1tCA8IHJlaXN1aXlva3VcIDsKK+Wkj+e+vee5lCA8IG5hdHN1YmFvcmlcIDsKK+ikkuiogOiRiSA8IGhvbWVrb3RvYmFcIDsKK+e5gee5gSA8IHNoaWdlc2hpZ2VcIDsKK+S6i+WLmeacuiA8IGppbXVkenVrdWVcIDsKK+S4u+WCrOWbvSA8IHNodXNhaWtva3VcIDsKK+Wkp+WkluWIiCA8IG9vc290b2dhcmlcIDsKK+a4heeul+S6uiA8IHNlaXNhbicnbmluXCA7CivkvY/msJHnpaggPCBqdXVtaW5oeW91XCA7Civmr43lrZDlrrbluq0gPCBib3NoaWthdGVpXCA7CivnhKHnt5rlsYAgPCBtdXNlbmt5b2t1XCA7CivmgqrmnZDmlpkgPCBha3V6YWlyeW91XCA7Civml6XnhafoqIggPCBuaXNzaG91a2VpXCA7CivmlK/mjIHnjocgPCBzaGlqaXJpdHN1XCA7CivkuozpgKPnmbogPCBuaXJlbnBhdHN1XCA7CivlkIzlkI3nlbDkurogPCBkb3VtZWlpamluXCA7CivlhbfosaHnmoQgPCBndXNob3V0ZWtpXCA7Civlia/mirXlvZMgPCBmdWt1dGVpdG91XCA7CivogrLlhZDmmYLplpMgPCBpa3VqaWppa2FuXCA7CivmmYLkvqHnmbrooYwgPCBqaWthaGFra291XCA7Civog7johpzngo4gPCBreW91bWFrdWVuXCA7CivpmaTmub/lmaggPCBqb3NoaXRzdWtpXCA7CivkuZfmj5vpp4UgPCBub3Jpa2FlZWtpXCA7CivkuIDlkaggPCBoaXRvbWVndXJpXCA7Civlj6TmnKzlsYsgPCBmdXJ1aG9uJyd5YVwgOwor5beo5aSn55eHIDwga3lvZGFpc2hvdVwgOwor5Lya6K2w5LqL6aCFIDwga2FpZ2lqaWtvdVwgOwor55+l5pel5a62IDwgY2hpbmljaGlrYVwgOwor55m955y86KaWIDwgaGFrdWdhbnNoaVwgOwor54Wn5bCE5rOVIDwgc2hvdXNoYWhvdVwgOwor5Luu5oOz6KiY5oa2IDwga2Fzb3VraW9rdVwgOwor54OP6bOpIDwga2FyYXN1YmF0b1wgOwor6LWk5L+h5Y+3IDwgYWthc2hpbmdvdVwgOwor6ZW35pa55b2iIDwgY2hvdWhvdWtlaVwgOwor5LiH5Zu95Y+yIDwgYmFua29rdXNoaVwgOwor6YCg5YW15bugIDwgem91aGVpc2hvdVwgOwor5p2x5Lqs5rm+IDwgdG91a3lvdXdhblwgOwor54us5Ym15oCnIDwgZG9rdXNvdXNlaVwgOwor6YOo5YiG6bq76YWUIDwgYnVidW5tYXN1aVwgOwor5qSc5LqL5o6n6Ki0IDwga2Vuamlrb3Vzb1wgOwor5pS+5rWq55mWIDwgaG91cm91aGVraVwgOwor6KGM5pS/5a6YIDwgZ3lvdXNlaWthblwgOwor5rKh6Laj5ZGzIDwgYm90c3VzaHVtaVwgOwor6Zm26YWU5aKDIDwgdG91c3Vpa3lvdVwgOwor5Y+N5bCE6KeSIDwgaGFuc2hha2FrdVwgOwor5peF54OPIDwgdGFiaWdhcmFzdVwgOwor5LiD5YWJIDwgbmFuYWhpa2FyaVwgOwor54m55Yq56JasIDwgdG9ra291eWFrdVwgOwor5aiY5am/IDwgbXVzdW1lbXVrb1wgOwor5pel5rKhIDwgbmljaGlib3RzdVwgOwor5aSa6aCF5byPIDwgdGFrb3VzaGlraVwgOwor6KGo5oOF562LIDwgaHlvdWpvdWtpblwgOwor57WM5Za2566h55CGIDwga2VpZWlrYW5yaVwgOwor5Yip55uK546HIDwgcmlla2lyaXRzdVwgOwor5LiJ5ouN5a2QIDwgc2FuYnlvdXNoaVwgOwor6YeP6LKp5bqXIDwgcnlvdWhhbnRlblwgOwor57eo6ZuG5a2QIDwgaGVuc2h1dXNoaVwgOwor5YaX6ZW35oCnIDwgam91Y2hvdXNlaVwgOwor6by755y86Y+hIDwgaGFuYW1lZ2FuZVwgOwor5YaF6KaW6Y+hIDwgbmFpc2hpa3lvdVwgOwor6LWk57+h57+gIDwgYWthc2hvdWJpblwgOwor6aOb6KGM5pmC6ZaTIDwgaGlrb3VqaWthblwgOwor54ax5qmf6ZaiIDwgbmV0c3VraWthblwgOwor5pGC6K236IW6IDwgc2V0c3Vnb3NlblwgOwor5a++5oqX562WIDwgdGFpa291c2FrdVwgOwor6L+R5Luj5YqHIDwga2luZGFpZ2VraVwgOwor5b655bqV55qEIDwgdGV0dGVpdGVraVwgOwor5Zub5a2X54af6KqeIDwgeW9qaWp1a3Vnb1wgOwor5q205Luj5Y+yIDwgcmVraWRhaXNoaVwgOwor5pep6KaL6KGoIDwgaGF5YW1paHlvdVwgOwor6Ieo5qmf5b+c5aSJIDwgcmlua2lvdWhlblwgOwor5oqV5bCE6KeSIDwgdG91c2hha2FrdVwgOwor5a6a5pyf5L+d6Zm6IDwgdGVpa2lob2tlblwgOwor55uj552j6ICFIDwga2FudG9rdXNoYVwgOwor5YWx55Sj5ZyPIDwga3lvdXNhbmtlblwgOwor5a6f6KGM5LitIDwgamlra291Y2h1dVwgOwor54yb5pS75pKDIDwgbW91a291Z2VraVwgOwor6Zu75a2Q5q67IDwgZGVuc2hpa2FrdVwgOwor6YCg6KiA6aOb6KqeIDwgem91Z2VuaGlnb1wgOwor5p2R5b255aC0IDwgbXVyYXlha3ViYVwgOwor57Sw6ZuqIDwgc2FzYW1leXVraVwgOwor6Zm46Luf6aKoIDwgcmlrdW5hbnB1dVwgOwor5pS/5rK76ImyIDwgc2VpamlzaG9rdVwgOwor5q+N5a2Q6I2JIDwgaGFoYWtvZ3VzYVwgOwor54m55b6F55SfIDwgdG9rdXRhaXNlaVwgOwor6aCt5YiGIDwga2FzaGlyYWJ1blwgOwor5Lit55uk5oimIDwgY2h1dWJhbnNlblwgOwor5LqL5YuZ55So5ZOBIDwgamltdXlvdWhpblwgOwor6Iie6LiP6Z20IDwgYnV0b3VndXRzdVwgOwor6KiA6Kqe5Zyw55CGIDwgZ2VuZ29jaGlyaVwgOwor5aSn6Zmq5a+pIDwgZGFpYmFpc2hpblwgOwor54Sh57iB5LuPIDwgbXVlbmJvdG9rZVwgOwor5paR54mbIDwgbWFkYXJhdXNoaVwgOwor57eR6ImyIDwgcnlva3VzaG9rdVwgOwor6KqN5a6a6Ki8IDwgbmludGVpc2hvdVwgOwor576O6KGT5pu4IDwgYmlqdXRzdXNob1wgOwor6KiI6YeP5rOVIDwga2VpcnlvdWhvdVwgOwor5Y6f5oyv5YuVIDwgZ2Vuc2hpbmRvdVwgOwor5a2m6Iq45LyaIDwgZ2FrdWdlaWthaVwgOwor6ISC6IKq5b+DIDwgc2hpYm91c2hpblwgOwor54u46aWC6aOpIDwgdGFudWtpdWRvblwgOwor5rC055Sj5bqBIDwgc3Vpc2FuY2hvdVwgOwor5ZCI5oay55qEIDwgZ291a2VudGVraVwgOwor5Li75L2T55qEIDwgc2h1dGFpdGVraVwgOwor54qv572q6KGM54K6IDwgaGFuemFpa291aVwgOwor5pel5pyIIDwgbmljaGlnZXRzdVwgOwor56qD55uX54uCIDwgc2V0dG91a3lvdVwgOwor5aWz5LiA6IisIDwgb24nJ25haXBwYW5cIDsKK+axuuWLnee3miA8IGtlc3Nob3VzZW5cIDsKK+aXreaXpSA8IGt5b2t1aml0c3VcIDsKK+i8uOmAgeapn+mWoiA8IHl1c291a2lrYW5cIDsKK+WPo+S4iuaJiyA8IGt1Y2hpam91enVcIDsKK+W3peWgtOmVtyA8IGtvdWpvdWNob3VcIDsKK+aXl+S6jOa1gSA8IGhhdGFuaXJ5dXVcIDsKK+ijnOWKqeiJpuiJhyA8IGhvam9rYW50ZWlcIDsKK+WNs+S9jeW8jyA8IHNva3Vpc2hpa2lcIDsKK+S6lOmHjOmcp+S4rSA8IGdvcmltdWNodXVcIDsKK+aHkOaflOetliA8IGthaWp1dXNha3VcIDsKK+S4ieaXpeWkqeS4iyA8IG1pa2thdGVua2FcIDsKK+W5u+aDs+WKhyA8IGdlbnNvdWdla2lcIDsKK+WfuuacrOWNmOS9jSA8IGtpaG9udGFuJydpXCA7Civkuovli5nlrqQgPCBqaW11c2hpdHN1XCA7CivotoXopo/liYcgPCBjaG91a2lzb2t1XCA7CivmoLjlrrbml48gPCBrYWt1a2F6b2t1XCA7CivlpJXmnIjlpJwgPCB5dXVkenVrZXlvXCA7CivnjLbkuojmnJ/plpMgPCB5dXV5b2tpa2FuXCA7CivlpKfooYbou4ogPCBkYWlzaHV1c2hhXCA7CivnhKHnsY3ogIUgPCBtdXNla2ltb25vXCA7Civml6Xni6zkvIogPCBuaWNoaWRva3VpXCA7CivpmqPntYQgPCB0b25hcmlndW1pXCA7Civmgqrnv5LmhaMgPCBha3VzaHV1a2FuXCA7CivnoavphbjpioUgPCByeXV1c2FuZG91XCA7CivmsLTnlKPlraYgPCBzdWlzYW5nYWt1XCA7Civng4/ph5EgPCBrYXJhc3VnYW5lXCA7Civlubjnpo/mhJ8gPCBrb3VmdWt1a2FuXCA7Civos6DlhJ/ph5EgPCBiYWlzaG91a2luXCA7Civoq4vosqDlt6XkuosgPCB1a2VvaWtvdWppXCA7Civpmrznp5EgPCBoYXlhYnVzYWthXCA7CivlhbHnlKPlhZogPCBreW91c2FudG91XCA7Civnianlv4MgPCBtb25vZ29rb3JvXCA7Civml4XmnpUgPCB0YWJpbWFrdXJhXCA7CivntIXpm4AgPCBiZW5pc3V6dW1lXCA7CivniLbmlrkgPCBjaGljaGlrYXRhXCA7CivlvozpgIDmloflrZcgPCBrb3V0YWltb2ppXCA7CivoiLnmnb/loYAgPCBmdW5haXRhYmVpXCA7CivlhajlrabpgKMgPCB6ZW5nYWt1cmVuXCA7Civnm7TotbDot68gPCBjaG9rdXNvdXJvXCA7CivnlLflsIrlpbPljZEgPCBkYW5zb25qb2hpXCA7CivmsLfosYbohZAgPCBrb29yaWRvdWZ1XCA7CivlhaXlsYXogIUgPCBueXV1a3lvc2hhXCA7Civml6XpmbDogIUgPCBoaWthZ2Vtb25vXCA7CivntbbnuIHnt5ogPCB6ZXRzdWVuc2VuXCA7CivlpKfmhYjlpKfmgrIgPCBkYWlqaWRhaWhpXCA7CivlobXoiqUgPCBjaGlyaWFrdXRhXCA7Civlk4HoqZXkvJogPCBoaW5weW91a2FpXCA7CivmsLTnk7bluqcgPCBtaXp1Z2FtZXphXCA7CivlkITlm6PkvZMgPCBrYWt1ZGFudGFpXCA7CivmnaXmnaXpgLEgPCByYWlyYWlzaHV1XCA7Civlm5vljYHpm4AgPCBzaGlqdXVrYXJhXCA7CivlpoLkvZXmp5jluKsgPCBpa2FzYW1hc2hpXCA7CivpgJrnlKjploAgPCB0c3V1eW91bW9uXCA7CivniKrmpYrmnp0gPCB0c3VtYXlvdWppXCA7CivmlaPpq6rlsYsgPCBzYW5wYXRzdXlhXCA7CivmoKHmraPliLcgPCBrb3VzZWl6dXJpXCA7Civpu5LnnLzpj6EgPCBrdXJvbWVnYW5lXCA7Civoh6jnlYzkuovmlYUgPCByaW5rYWlqaWtvXCA7Civpm6jnh5UgPCBhbWF0c3ViYW1lXCA7Civlprnlqb8gPCBpbW91dG9tdWtvXCA7CivpgKDoiLnmpa0gPCB6b3VzZW5neW91XCA7CivoprPliofkvJogPCBrYW5nZWtpa2FpXCA7Civpm6rnhZkgPCB5dWtpa2VtdXJpXCA7CivlhazlrrPnl4UgPCBrb3VnYWlieW91XCA7Civlj5fkv6HlgbQgPCBqdXNoaW5nYXdhXCA7CivkvIHmpa3lv4MgPCBraWd5b3VzaGluXCA7Civlm6DmnpzplqLkv4IgPCBpbmdha2Fua2VpXCA7Civkv67nuZXlt6UgPCBzaHV1emVua291XCA7CivljZjouqvpioMgPCB0YW5zaGluanV1XCA7Civop5Lom5kgPCB0c3Vub2dhZXJ1XCA7CivnlbDnqK7kuqTphY0gPCBpc2h1a291aGFpXCA7CivlpJzplpPli6Tli5kgPCB5YWthbmtpbm11XCA7Civnmb7lubTnm64gPCBoeWFrdW5lbm1lXCA7CivmsqHnkIbmg7MgPCBib3RzdXJpc291XCA7CivpnZnohIjngo4gPCBqb3VteWFrdWVuXCA7CivlvqHlm73oh6rmhaIgPCBva3VuaWppbWFuXCA7Civlhajog73ogIUgPCB6ZW4nJ25vdXNoYVwgOwor5ZGJ5pyN5ZWGIDwgZ29mdWt1c2hvdVwgOwor55yB6LOH5rqQIDwgc2hvdXNoaWdlblwgOwor6ZuG5ZCI6KuWIDwgc2h1dWdvdXJvblwgOwor56aB54WZ5bitIDwga2luJydlbnNla2lcIDsKK+WksealrSA8IHNoaXRzdWd5b3VcIDsKK+ioreeriyA8IHNldHN1cml0c3VcIDsKK+mVt+aWueS9kyA8IGNob3Vob3V0YWlcIDsKK+WPl+S/oeS6uiA8IGp1c2hpbicnbmluXCA7CivmgKXlgZzou4ogPCBreXV1dGVpc2hhXCA7Civpm5HniakgPCB6YXRzdWJ1dHN1XCA7CivnpZ7ntYznp5HljLsgPCBzaGlua2Vpa2FpXCA7Civns57luqbog7ggPCBrdXNvZG9reW91XCA7CivmtojpmLLlo6sgPCBzaG91Ym91c2hpXCA7CivmnInnkIblvI8gPCB5dXVyaXNoaWtpXCA7CivntYLliJfou4ogPCBzaHV1cmVzc2hhXCA7CivmiYDmnInmoLwgPCBzaG95dXVrYWt1XCA7Civnn6Xopprnn6UgPCBjaGlrYWt1Y2hpXCA7CivpgYrmkoPmiYsgPCB5dXVnZWtpc2h1XCA7Civop6PnhrHliaQgPCBnZW5ldHN1emFpXCA7CivlupflsYvniakgPCB0ZW4nJ3lhbW9ub1wgOwor54ax54OIIDwgbmV0c3VyZXRzdVwgOwor6YGK5pKD5oimIDwgeXV1Z2VraXNlblwgOwor5bGx5rC06ZajIDwgc2Fuc3Vpa2FrdVwgOwor6Kqs5pWZ5birIDwgc2Vra3lvdXNoaVwgOwor5bO25bid5Zu9IDwgdG91dGVpa29rdVwgOwor5Y2R5Yqj5ryiIDwgaGlyZXRzdWthblwgOwor6ZqP56WeIDwga2FuJyduYWdhcmFcIDsKK+ijuOm6piA8IGhhZGFrYW11Z2lcIDsKK+WFqOeUn+a2ryA8IHplbnNob3VnYWlcIDsKK+WFqOS8muihhiA8IHplbmthaXNodXVcIDsKK+WPjuWuueiAhSA8IHNodXV5b3VzaGFcIDsKK+ino+mbhuWQiCA8IGthaXNodXVnb3VcIDsKK+ebuOWvvueahCA8IHNvdXRhaXRla2lcIDsKK+efs+eBsOS5syA8IHNla2thaW55dXVcIDsKK+WFseacieiAhSA8IGt5b3V5dXVzaGFcIDsKK+aMh+WumuW4rSA8IHNoaXRlaXNla2lcIDsKK+WVhuWTgeWQjSA8IHNob3VoaW5tZWlcIDsKK+agueacrOeahCA8IGtvbnBvbnRla2lcIDsKK+e+juihk+WxlSA8IGJpanV0c3V0ZW5cIDsKK+e4nuaooeanmCA8IHNoaW1hbW95b3VcIDsKK+a2iOmYsuWboyA8IHNob3Vib3VkYW5cIDsKK+S5vuiRoeiQhCA8IGhvc2hpYnVkb3VcIDsKK+mcnOaciCA8IHNoaW1vdHN1a2lcIDsKK+e+veaguei7iiA8IGhhbmVndXJ1bWFcIDsKK+WujOWFqOippuWQiCA8IGthbnplbmppYWlcIDsKK+eZuuWLleapnyA8IGhhdHN1ZG91a2lcIDsKK+mXmOeJm+WjqyA8IHRvdWd5dXVzaGlcIDsKK+WQjOaDheelqCA8IGRvdWpvdWh5b3VcIDsKK+WFpeS8mumHkSA8IG55dXVrYWlraW5cIDsKK+eGseehrOWMliA8IG5ldHN1a291a2FcIDsKK+WkouaelSA8IHl1bWVtYWt1cmFcIDsKK+aXheW/gyA8IHRhYmlnb2tvcm9cIDsKK+mXmOeJm+WgtCA8IHRvdWd5dXVqb3VcIDsKK+WPjeWvvuelqCA8IGhhbnRhaWh5b3VcIDsKK+eKrOS+jSA8IGludXphbXVyYWlcIDsKK+WGt+WNtOWZqCA8IHJlaWt5YWt1a2lcIDsKK+WAn+WFpemHkSA8IGthcmlpcmVraW5cIDsKK+WVhuWTgeWIuCA8IHNob3VoaW5rZW5cIDsKK+WFrOekuuWcsOS+oSA8IGtvdWppY2hpa2FcIDsKK+atk+alveihlyA8IGthbnJha3VnYWlcIDsKK+eglOWJiuebpCA8IGtlbnNha3ViYW5cIDsKK+S4gOWtl+S4gOWPpSA8IGljaGlqaWlra3VcIDsKK+itmOWIpSA8IHNoaWtpYmV0c3VcIDsKK+WOn+eQhuS4u+e+qSA8IGdlbnJpc2h1Z2lcIDsKK+acrOexjeWcsCA8IGhvbnNla2ljaGlcIDsKK+awl+asneeXhyA8IGtpdXRzdXNob3VcIDsKK+aBi+Wls+aIvyA8IGtvaW55b3Vib3VcIDsKK+iEs+elnue1jCA8IG5vdXNoaW5rZWlcIDsKK+iGoOWOn+eXhSA8IGtvdWdlbmJ5b3VcIDsKK+eJveWItueQgyA8IGtlbnNlaWt5dXVcIDsKK+aWsOmAoOiIuSA8IHNoaW56b3VzZW5cIDsKK+aEn+immueCuSA8IGthbmtha3V0ZW5cIDsKK+WBveWQm+WtkCA8IG5pc2VrdW5zaGlcIDsKK+axuuWLneeCuSA8IGtlc3Nob3V0ZW5cIDsKK+WkmuaVsOaxuiA8IHRhc3V1a2V0c3VcIDsKK+aEj+itmOeahCA8IGlzaGlraXRla2lcIDsKK+WPjeWwhOeahCA8IGhhbnNoYXRla2lcIDsKK+S4jea0u+eZuiA8IGZ1a2FwcGF0c3VcIDsKK+WPl+mgmOiovCA8IGp1cnlvdXNob3VcIDsKK+e0lOaWh+WtpiA8IGp1bmJ1bmdha3VcIDsKK+eJueaApeWIuCA8IHRva2t5dXVrZW5cIDsKK+WmvuWHuiA8IHNob3VzaHV0c3VcIDsKK+m7hOmHkeihkyA8IG91Z29uanV0c3VcIDsKK+S7ruWLmOWumiA8IGthcmlrYW5qb3VcIDsKK+e3keeOiSA8IHJ5b2t1Z3lva3VcIDsKK+eDj+ibhyA8IGthcmFzdWhlYmlcIDsKK+mciumVt+mhniA8IHJlaWNob3VydWlcIDsKK+WFqOi6q+WDjyA8IHplbnNoaW56b3VcIDsKK+Wvhui8uOWTgSA8IG1pdHN1eXVoaW5cIDsKK+aXouioree3miA8IGtpc2V0c3VzZW5cIDsKK+S6jOmAo+W8jyA8IG5pcmVuc2hpa2lcIDsKK+erpeipseS9nOWutiA8IGRvdXdhc2Fra2FcIDsKK+a4m+mAn+adkCA8IGdlbnNva3V6YWlcIDsKK+WFieejgeawlyA8IGhpa2FyaWppa2lcIDsKK+iovOaYjuabuCA8IHNob3VtZWlzaG9cIDsKK+mWi+aLk+WcsCA8IGthaXRha3VjaGlcIDsKK+S7ruWFjeiosSA8IGthcmltZW5reW9cIDsKK+eJueWHuiA8IHRva3VzaHV0c3VcIDsKK+e0meiiiyA8IGthbWlidWt1cm9cIDsKK+WNsOixoeeahCA8IGluc2hvdXRla2lcIDsKK+aXp+aVmeW+kiA8IGt5dXVreW91dG9cIDsKK+iyqOeJqeS+vyA8IGthbW90c3ViaW5cIDsKK+WmqOWus+ihjOeCuiA8IGJvdWdhaWtvdWlcIDsKK+mbquafsyA8IHl1a2l5YW5hZ2lcIDsKK+acieacm+agqiA8IHl1dWJvdWthYnVcIDsKK+aFo+S+i+eahCA8IGthbnJlaXRla2lcIDsKK+ims+ebuOWtpiA8IGthbnNvdWdha3VcIDsKK+iCieeUqOeoriA8IG5pa3V5b3VzaHVcIDsKK+mBi+WWtue1jOiyuyA8IHVuJydlaWtlaWhpXCA7CivmmKXkvJEgPCBoYXJ1eWFzdW1pXCA7Civln7rlnLDlsYAgPCBraWNoaWt5b2t1XCA7Civpganlv5znl4cgPCB0ZWtpb3VzaG91XCA7CivkuK3pq5jnlJ8gPCBjaHV1a291c2VpXCA7CivkuIvmupblgpkgPCBzaGl0YWp1bmJpXCA7Civkv6HpoLzmhJ8gPCBzaGlucmFpa2FuXCA7CivnmbrphbXkubMgPCBoYWtrb3VueXV1XCA7Civml4XoirjkurogPCB0YWJpZ2VpbmluXCA7Civkurrpm6rltKkgPCBoaXRvbmFkYXJlXCA7CivkuLvkv6Hlj7cgPCBzaHVzaGluZ291XCA7Civkuozpg6jlkIjlpY8gPCBuaWJ1Z2Fzc291XCA7Civkv6HlpYnogIUgPCBzaGlucG91c2hhXCA7CivlkI3oqonmr4DmkI0gPCBtZWl5b2tpc29uXCA7CivlsLrosqvms5UgPCBzaGFra2FuaG91XCA7Civnvo7ooZPlk4EgPCBiaWp1dHN1aGluXCA7CivoqJjpjLLmmKDnlLsgPCBraXJva3VlaWdhXCA7CivpgJrkv6HosrsgPCB0c3V1c2hpbmhpXCA7Civkv6HpoLzmgKcgPCBzaGlucmFpc2VpXCA7CivmhJ/opprmr5sgPCBrYW5rYWt1bW91XCA7CivpoIblv5zmgKcgPCBqdW4nJ25vdXNlaVwgOwor5bi457+S6ICFIDwgam91c2h1dXNoYVwgOwor576O6KGT5Y+yIDwgYmlqdXRzdXNoaVwgOwor5qqA6YKj5a+6IDwgZGFuJyduYWRlcmFcIDsKK+WNg+ats+mjtCA8IGNoaXRvc2VhbWVcIDsKK+ijveadkOalrSA8IHNlaXphaWd5b3VcIDsKK+aWsOapn+i7uCA8IHNoaW5raWppa3VcIDsKK+iCiemlhemgrSA8IG5pa3VtYW5qdXVcIDsKK+awtOizh+a6kCA8IG1penVzaGlnZW5cIDsKK+eZvemzpeW6pyA8IGhha3VjaG91emFcIDsKK+eZvuWIhuavlCA8IGh5YWt1YnVuaGlcIDsKK+ippumHkeefsyA8IHNoaWtpbnNla2lcIDsKK+mBi+aQrOeuoeeQhiA8IHVucGFua2FucmlcIDsKK+WEquetieizniA8IHl1dXRvdXNob3VcIDsKK+WMu+enkeWkp+WtpiA8IGlrYWRhaWdha3VcIDsKK+Wkp+ihhue0mSA8IHRhaXNodXVzaGlcIDsKK+iKseimi+aZgiA8IGhhbmFtaWRva2lcIDsKK+WKoOa4m+S5l+mZpCA8IGthZ2Vuam91am9cIDsKK+Whl+aTpuWJpCA8IHRvc2F0c3V6YWlcIDsKK+mYv+eJh+aIpuS6iSA8IGFoZW5zZW5zb3VcIDsKK+acqOijveWTgSA8IG1va3VzZWloaW5cIDsKK+WGheinkueQgyA8IG5haWtha2t5dXVcIDsKK+mlkuiIjOWutiA8IGpvdXpldHN1a2FcIDsKK+eGseWHpueQhiA8IG5ldHN1c2hvcmlcIDsKK+inpueZuiA8IHNob2t1aGF0c3VcIDsKK+aWsOW5uee3miA8IHNoaW5rYW5zZW5cIDsKK+WLleWQkeihqCA8IGRvdWtvdWh5b3VcIDsKK+S6pOmfv+ipqSA8IGtvdWt5b3VzaGlcIDsKK+aMqOaLtueKtiA8IGFpc2F0c3Vqb3VcIDsKK+mZpeayoea5liA8IGthbmJvdHN1a29cIDsKK+WUr+WUr+irvuirviA8IGlpZGFrdWRha3VcIDsKK+S/oeWkqee/gSA8IHNoaW50ZW4nJ291XCA7Civotbfpm7vlipsgPCBraWRlbnJ5b2t1XCA7Civpjq7prYLnpa0gPCBjaGlua29uc2FpXCA7CivoiLbmnaXlk4EgPCBoYWt1cmFpaGluXCA7CivmiYvloannmr8gPCB0ZXNoaW96YXJhXCA7Civpu5LlupXnv7MgPCBrdXJvc29rb2hpXCA7CivlrabnlJ/luL0gPCBnYWt1c2VpYm91XCA7CivntpnniLYgPCBtYW1hY2hpY2hpXCA7CivmsLTmoL3ln7kgPCBtaXp1c2FpYmFpXCA7CivllrbpgKDniakgPCBlaXpvdWJ1dHN1XCA7Civml6XnhafmqKkgPCBuaXNzaG91a2VuXCA7Civnm7jlr77oqqTlt64gPCBzb3V0YWlnb3NhXCA7CivlhYnph4/lrZAgPCBrb3VyeW91c2hpXCA7CivkuIfmhJrnr4AgPCBiYW5ndXNldHN1XCA7Civog73ni4LoqIAgPCBub3VreW91Z2VuXCA7Civpo7LphZLpgYvou6IgPCBpbnNodXVudGVuXCA7Civng4/ntJkgPCBrYXJhc3VnYW1pXCA7CivmlK/mjIHlipsgPCBzaGlqaXJ5b2t1XCA7CivntbHoqIjooaggPCB0b3VrZWloeW91XCA7CivlhYjlj7LlraYgPCBzZW5zaGlnYWt1XCA7CivmjIflkI3oqablkIggPCBzaGltZWlqaWFpXCA7Civml6Xku48gPCBuaWNoaWZ1dHN1XCA7CivnoavphbjntJkgPCByeXV1c2Fuc2hpXCA7CivmgKflt67liKUgPCBzZWlzYWJldHN1XCA7CivpnbTkuIsgPCBrdXRzdXNoaXRhXCA7CivmnKzlm73kurogPCBob25nb2t1amluXCA7Civlt6joppbnmoQgPCBreW9zaGl0ZWtpXCA7Civou6LovY3mqZ8gPCB0ZW50ZXRzdWtpXCA7Civooajlv6DnopEgPCBoeW91Y2h1dWhpXCA7Civlj47os4TnvaogPCBzaHV1d2FpemFpXCA7CivolqzliaTluKsgPCB5YWt1emFpc2hpXCA7CivlvozopovkurogPCBrb3VrZW4nJ25pblwgOwor6YCj55So5b2iIDwgcmVuJyd5b3VrZWlcIDsKK+S9meeZveazqCA8IHlvaGFrdWNodXVcIDsKK+S8nee1seeahCA8IGRlbnRvdXRla2lcIDsKK+e4ruWwuiA8IHNodWt1c2hha3VcIDsKK+W+kuW8n+WItuW6piA8IHRvdGVpc2VpZG9cIDsKK+imquaoqeiAhSA8IHNoaW5rZW5zaGFcIDsKK+e0i+e+veS6jOmHjSA8IG1vbmhhYnV0YWVcIDsKK+WGhuWkqeS6lSA8IG1hcnV0ZW5qb3VcIDsKK+Wls+S4uyA8IG9uJyduYWFydWppXCA7CivlsJHlubTpmaIgPCBzaG91bmVuJydpblwgOwor5q206Z2S54KtIDwgcmVraXNlaXRhblwgOwor6LKo5bmj5Yi25bqmIDwga2FoZWlzZWlkb1wgOwor6KCP5bel6Ii5IDwga2FuaWtvdXNlblwgOwor55uu5YWr5YiGIDwgbWVoYWNoaWJ1blwgOwor5Zub5Y2B6IKpIDwgc2hpanV1a2F0YVwgOwor5qW96Kaz55qEIDwgcmFra2FudGVraVwgOwor5b+D5YGc5q2iIDwgc2hpbnRlaXNoaVwgOwor6YCf5bCE56CyIDwgc29rdXNoYWhvdVwgOwor5pW15aSxIDwgdGVraXNoaXRzdVwgOwor5pel5ZKM5LiL6aeEIDwgaGl5b3JpZ2V0YVwgOwor5paw5bu65p2QIDwgc2hpbmtlbnphaVwgOwor5LiN5b+F6KaBIDwgZnVoaXRzdXlvdVwgOwor5omB6Z2S55+zIDwgaGVuc2Vpc2VraVwgOwor5Y+M55CD6I+MIDwgc291a3l1dWtpblwgOwor5LiW55WM5bmz5ZKMIDwgc2VrYWloZWl3YVwgOwor5rC0576K576uIDwgbWl6dXlvdWthblwgOwor5oqc5pys55qEIDwgYmFwcG9udGVraVwgOwor5pWZ5a6kIDwga3lvdXNoaXRzdVwgOwor5Y2Y55m65qmfIDwgdGFucGF0c3VraVwgOwor54Sh55CG6Zai5pWwIDwgbXVyaWthbnN1dVwgOwor6Lui6YCB5YWIIDwgdGVuc291c2FraVwgOwor5YWl5Lya6ICFIDwgbnl1dWthaXNoYVwgOwor5Li45pyo6Ii5IDwgbWFydWtpYnVuZVwgOwor6Z+z5ZCQ5pyX5pyXIDwgb250b3JvdXJvdVwgOwor5biM6YeI5rayIDwga2lzaGFrdWVraVwgOwor5qKF6Zuo5YmN57eaIDwgYmFpdXplbnNlblwgOwor5pyI5puc5pelIDwgZ2V0c3V5b3ViaVwgOwor5pyA6LOD5rOVIDwgc2FpY2hpbmhvdVwgOwor6Zu75rCX5pmC6KiIIDwgZGVua2lkb2tlaVwgOwor6Z2p5paw5rS+IDwga2FrdXNoaW5oYVwgOwor57W25ruFIDwgemV0c3VtZXRzdVwgOwor5LqM5Y2B5Zub5pelIDwgbmlqdXV5b2trYVwgOwor5oim55eF5q27IDwgc2VuYnlvdXNoaVwgOwor55S35oCn55qEIDwgZGFuc2VpdGVraVwgOwor5Lmz6YW46I+MIDwgbnl1dXNhbmtpblwgOwor5YmN54Wn54GvIDwgemVuc2hvdXRvdVwgOwor5oKy5q2M5oW35oWoIDwgaGlrYWtvdWdhaVwgOwor6IW45o276LuiIDwgY2hvdW5lbnRlblwgOwor6Kaq5YiG5qCqIDwgb3lhYnVua2FidVwgOwor5a2m55So5ZOBIDwgZ2FrdXlvdWhpblwgOwor54m55q6K5oCnIDwgdG9rdXNodXNlaVwgOwor5Y2Y6Imy55S7IDwgdGFuc2hva3VnYVwgOwor5LuV56uL5Yi4IDwgc2hpdGF0ZWtlblwgOwor5LqI6Ziy5Yy75a2mIDwgeW9ib3VpZ2FrdVwgOwor5b2T5pyf5Yip55uKIDwgdG91a2lyaWVraVwgOwor6KaB55+zIDwga2FuYW1laXNoaVwgOwor55qu5LiL6ISC6IKqIDwgaGlrYXNoaWJvdVwgOwor6Zmw5byB5oW2IDwga2FnZWJlbmtlaVwgOwor5re36KGA5YWQIDwga29ua2V0c3VqaVwgOwor6LKp5aOy5YWDIDwgaGFuYmFpbW90b1wgOwor5bi457+S54qvIDwgam91c2h1dWhhblwgOwor6Zm256OB5Zmo5bqXIDwgdG91amlraXRlblwgOwor5riF5ra85YmkIDwgc2VpcnlvdXphaVwgOwor5pyA5bCP5YCkIDwgc2Fpc2hvdWNoaVwgOwor5YiH56ym5aOy5aC0IDwga2lwcHV1cmliYVwgOwor6KO45L2T5Li7576pIDwgcmF0YWlzaHVnaVwgOwor5rC05peP6aSoIDwgc3Vpem9rdWthblwgOwor5YWx54qv6ICFIDwga3lvdWhhbnNoYVwgOwor5a+/5Y+46aOvIDwgc3VzaGltZXNoaVwgOwor5oCl6Lui5o+bIDwga3l1dXRlbmthblwgOwor5oub5b6F54q2IDwgc2hvdXRhaWpvdVwgOwor5omT5pKy5YK3IDwgZGFib2t1c2hvdVwgOwor6Z+z5qiZ5paH5a2XIDwgb25weW91bW9qaVwgOwor54m55b6F5Yi4IDwgdG9rdXRhaWtlblwgOwor5q+S5Lq65Y+CIDwgZG9rdW5pbmppblwgOwor5LiN5q2j6KaP5oimIDwgZnVzZWlraXNlblwgOwor5aSp56u66JG1IDwgdGVuamlrdWFvaVwgOwor5aWz5LiW5bivIDwgb24nJ25ham90YWlcIDsKK+S6uumWk+eahCA8IG5pbmdlbnRla2lcIDsKK+iouuaWreabuCA8IHNoaW5kYW5zaG9cIDsKK+iYmuiLlOWtpiA8IHNlbnRhaWdha3VcIDsKK+e1tuWvvuS9jee9riA8IHpldHRhaWljaGlcIDsKK+WOn+eov+aWmSA8IGdlbmtvdXJ5b3VcIDsKK+ebo+edo+WumCA8IGthbnRva3VrYW5cIDsKK+WVhuWLmeecgSA8IHNob3VtdXNob3VcIDsKK+Wuo+WRiuabuCA8IHNlbmtva3VzaG9cIDsKK+WknOWknOS4rSA8IHlvcnV5b25ha2FcIDsKK+ijj+ipsSA8IHVyYWJhbmFzaGlcIDsKK+mAmuS/oeewvyA8IHRzdXVzaGluYm9cIDsKK+WghuepjeWyqSA8IHRhaXNla2lnYW5cIDsKK+aKkeeVmeaJgCA8IHlva3VyeXV1am9cIDsKK+aSnuacqOadliA8IHNodW1va3V6dWVcIDsKK+m7hOmHkeeOhyA8IG91Z29ucml0c3VcIDsKK+WghuepjeWxpCA8IHRhaXNla2lzb3VcIDsKK+WQiOWUseWboyA8IGdhc3Nob3VkYW5cIDsKK+WlveaVteaJiyA8IGtvdXRla2lzaHVcIDsKK+ewoeaYk+S/nemZuiA8IGthbicnaWhva2VuXCA7CivnsonolqwgPCBrb25hZ3VzdXJpXCA7Civmlofnq6DpoYwgPCBidW5zaG91ZGFpXCA7Civlr6HpoK3mlL/msrsgPCBrYXRvdXNlaWppXCA7Civph5HnianlsYsgPCBrYW5hbW9ub3lhXCA7Civlm6Poj4rnpa0gPCBkYW5naWt1c2FpXCA7Civnt6nooZ3mtrIgPCBrYW5zaG91ZWtpXCA7Civlr4Tlrr/oiI4gPCBraXNodWt1c2hhXCA7CivnuK7liLcgPCBzaHVrdXNhdHN1XCA7CivmvZzmnJvpj6EgPCBzZW5ib3VreW91XCA7CivmlrDlt6bnv7wgPCBzaGluc2F5b2t1XCA7CivpgaHlj4rnmoQgPCBzb2t5dXV0ZWtpXCA7CivlkIzmg4Xlv4MgPCBkb3Vqb3VzaGluXCA7CivkuIvnqL3lj6QgPCBzaGl0YWdlaWtvXCA7Civnq7bkuonogIUgPCBreW91c291c2hhXCA7CivllYblupfooZcgPCBzaG91dGVuZ2FpXCA7CivnjonmiYvnrrEgPCB0YW1hdGViYWtvXCA7CivlnJ/osZogPCB0c3VjaGlidXRhXCA7CivkuIrljYrouqsgPCBqb3VoYW5zaGluXCA7CivkuIvmsLTlh6bnkIYgPCBnZXN1aXNob3JpXCA7CivmuKzlrprms5UgPCBzb2t1dGVpaG91XCA7CivpmY3lnKfliaQgPCBrb3VhdHN1emFpXCA7CivmgKXlgr7mlpwgPCBreXV1a2Vpc2hhXCA7CivkuKHmo7LpoZ4gPCByeW91c2VpcnVpXCA7CivmnIDkuIrntJogPCBzYWlqb3VreXV1XCA7CivlgYPmnIjliIAgPCBlbmdldHN1dG91XCA7CivnnIvorbfljZIgPCBrYW5nb3NvdHN1XCA7CivoqJjmhrbntKDlrZAgPCBraW9rdXNvc2hpXCA7Civpn7Plo7DoqJjlj7cgPCBvbnNlaWtpZ291XCA7CivlkozlubPkvJrorbAgPCB3YWhlaWthaWdpXCA7Civnvavnt5rooaggPCBrZWlzZW5oeW91XCA7CivnoLTlo4rkuLvnvqkgPCBoYWthaXNodWdpXCA7Civph53lnJ/nq5wgPCBoYXJpbW9ndXJhXCA7Civlroflrpnln7rlnLAgPCB1Y2h1dWtpY2hpXCA7Civnga/lj7DlroggPCB0b3VkYWltb3JpXCA7Civku67lhY3nirYgPCBrYXJpbWVuam91XCA7CivlvL7olqzluqsgPCBkYW4nJ3lha3Vrb1wgOwor5ZCI5rOV55qEIDwgZ291aG91dGVraVwgOwor5LiN5Y+v55+l6KuWIDwgZnVrYWNoaXJvblwgOwor6Ieq6KGb5omL5q61IDwgamllaXNodWRhblwgOwor5oyr5oqY5oSfIDwgemFzZXRzdWthblwgOwor5bCP5aOy5YCk5q61IDwga291cmluZWRhblwgOwor5pWR5Ye6IDwga3l1dXNodXRzdVwgOwor5aOB5ZyfIDwga2FiZXRzdWNoaVwgOwor6LWk5paw6IGeIDwgYWthc2hpbmJ1blwgOwor6Iag552A6KqeIDwga291Y2hha3Vnb1wgOwor57WC5q2i5b2iIDwgc2h1dXNoaWtlaVwgOwor5Ye65riv6Ii5IDwgc2h1a2tvdXNlblwgOwor6Ly45YWl6aGNIDwgeXVueXV1Z2FrdVwgOwor55Sy5q676aGeIDwga291a2FrdXJ1aVwgOwor5biC5aC06KaP5qihIDwgc2hpam91a2lib1wgOwor6K2w5ZOh56uL5rOVIDwgZ2lpbnJpcHBvdVwgOwor6Zqc5aOB55S7IDwgc2hvdWhla2lnYVwgOwor5rq25o6l5qmfIDwgeW91c2V0c3VraVwgOwor5LmX57WE5ZOhIDwgbm9yaWt1bWlpblwgOwor6IWO6IeT55eFIDwgamluem91YnlvdVwgOwor5Y+v5pCs5byPIDwga2FoYW5zaGlraVwgOwor5YGl562G5a62IDwga2VucGl0c3VrYVwgOwor5q2j5Lit57eaIDwgc2VpY2h1dXNlblwgOwor5Y2D5bm06ZaTIDwgc2VuJyduZW5rYW5cIDsKK+ajkuejgeefsyA8IGJvdWppc2hha3VcIDsKK+ims+iznumtmiA8IGthbnNob3VneW9cIDsKK+elnuWtpuagoSA8IHNoaW5nYWtrb3VcIDsKK+S9nOalreacjSA8IHNhZ3lvdWZ1a3VcIDsKK+eZuuedgOaJgCA8IGhhdGNoYWt1am9cIDsKK+imqui/keaEnyA8IHNoaW5raW5rYW5cIDsKK+S5seazpea1gSA8IHJhbmRlaXJ5dXVcIDsKK+W9k+ebtOWToSA8IHRvdWNob2t1aW5cIDsKK+Wtpue0muWnlOWToSA8IGdha2t5dXVpaW5cIDsKK+e1seioiOeahCA8IHRvdWtlaXRla2lcIDsKK+e1kOacqyA8IGtldHN1bWF0c3VcIDsKK+iKuOihk+WutiA8IGdlaWp1dHN1a2FcIDsKK+eOhOmWouWFiCA8IGdlbmthbnNha2lcIDsKK+imquafsSA8IG95YWJhc2hpcmFcIDsKK+a3sea1t+mtmiA8IHNoaW5rYWlneW9cIDsKK+WQjOW/l+eahCA8IGRvdXNoaXRla2lcIDsKK+eym+eymyA8IHNodWt1c2h1a3VcIDsKK+S+oeWNg+mHkSA8IGF0YWlzZW5raW5cIDsKK+itsOS8muS4u+e+qSA8IGdpa2Fpc2h1Z2lcIDsKK+S5neWbnuaIpiA8IGt5dXVrYWlzZW5cIDsKK+WfuuekjuenkeWtpiA8IGtpc29rYWdha3VcIDsKK+WbveiomyA8IGt1bmluYW1hcmlcIDsKK+aNnOafu+acrOmDqCA8IHNvdXNhaG9uYnVcIDsKK+WNiuawuOS5hSA8IGhhbicnZWlreXV1XCA7Civpm5HlvbnlqaYgPCB6YXRzdWVraWZ1XCA7Civlhrflh43mpa0gPCByZWl0b3VneW91XCA7Civntr/ln4MgPCB3YXRhYm9rb3JpXCA7CivlroflrpnmjqLmn7sgPCB1Y2h1dXRhbnNhXCA7CivlhJLmlZnnmoQgPCBqdWt5b3V0ZWtpXCA7Civopqrml6UgPCBzaGluJyduaWNoaVwgOwor6YWbIDwgc2FrZW5vbW90b1wgOwor5o+a6Zm46ImmIDwgeW91cmlrdWthblwgOwor6YeN6Ky55oWOIDwganV1a2luc2hpblwgOwor5YeN6LGG6IWQIDwgc2hpbWlkb3VmdVwgOwor5rC46LC35ZySIDwgbmFnYXRhbmllblwgOwor5LqM5qe95byPIDwgbmlzb3VzaGlraVwgOwor55u45LmX56mNIDwgc291am91c2VraVwgOwor6I+M6aGe5a2mIDwga2lucnVpZ2FrdVwgOwor5paw5YiK5pu4IDwgc2hpbmthbnNob1wgOwor6Z2S5bCR5bm0IDwgc2Vpc2hvdW5lblwgOwor5o6o6YCy6ICFIDwgc3Vpc2hpbnNoYVwgOwor54G854axIDwgc2hha3VuZXRzdVwgOwor5YiX5bit6ICFIDwgcmVzc2VraXNoYVwgOwor5Zu955Sj5ZOBIDwga29rdXNhbmhpblwgOwor5oeQ5pen6KuHIDwga2Fpa3l1dWRhblwgOwor5p6v6I2J54axIDwga29zb3VuZXRzdVwgOwor6ZuH5Li7IDwgeWF0b2ludXNoaVwgOwor5Lit55Sy5p2/IDwgY2h1dWthbnBhblwgOwor5Z+L5LyP5q2vIDwgbWFpZnVrdXNoaVwgOwor5YaF57eS5LqLIDwgbmFpc2hvZ290b1wgOwor5LiA562J5Y2SIDwgaXR0b3Vzb3RzdVwgOwor5Lqc6bq757mU54mpIDwgYW1hb3JpbW9ub1wgOwor56We5Luj5p2JIDwgamluZGFpc3VnaVwgOwor5YCk5bWp5qCqIDwgbmVnYXNha2FidVwgOwor5pS/5rK75YqbIDwgc2VpamlyeW9rdVwgOwor562U55Sz5pu4IDwgdG91c2hpbnNob1wgOwor6aCG5bqP5LiN5ZCMIDwganVuam9mdWRvdVwgOwor57aZ5aiYIDwgbWFtYW11c3VtZVwgOwor5Lmx5b+D6ICFIDwgcmFuc2hpbnNoYVwgOwor57WM5riI5o+05YqpIDwga2VpemFpZW5qb1wgOwor54S85aSxIDwgc2hvdXNoaXRzdVwgOwor5Lq66ZaT5qWtIDwgbmluZ2Vud2F6YVwgOwor57Sv566X5rip5bqmIDwgcnVpc2Fub25kb1wgOwor5YWx6KyA6ICFIDwga3lvdWJvdXNoYVwgOwor5p2l6LOT5bitIDwgcmFpaGluc2VraVwgOwor6Iie6LiP5puyIDwgYnV0b3VreW9rdVwgOwor5L+u6KGM6ICFIDwgc2h1Z3lvdXNoYVwgOwor5bO25qC555yMIDwgc2hpbWFuZWtlblwgOwor5by356Gs6KuWIDwga3lvdWtvdXJvblwgOwor5rOV5rK75Zu9IDwgaG91Y2hpa29rdVwgOwor5LiN5b6X562WIDwgZnV0b2t1c2FrdVwgOwor6Kiz5Ye6IDwgeWFrdXNodXRzdVwgOwor54OI5pelIDwgcmV0c3VqaXRzdVwgOwor5Zyo57Gz5LitIDwgemFpYmVpY2h1dVwgOwor5Yy/5ZCN5oCnIDwgdG9rdW1laXNlaVwgOwor55m75bGx6Z20IDwgdG96YW5ndXRzdVwgOwor5rWq5ryr5Li7576pIDwgcm9tYW5zaHVnaVwgOwor5bqn5pW354miIDwgemFzaGlraXJvdVwgOwor56We5qC85YyWIDwgc2hpbmtha3VrYVwgOwor6LWk5aSW57eaIDwgc2VraWdhaXNlblwgOwor6Jas55So6YWSIDwgeWFrdXlvdXNodVwgOwor57WQ5qC46I+MIDwga2Vra2FrdWtpblwgOwor57eg5LuYIDwgc2hpbWV0c3VrZVwgOwor6I2J5bGl6JmrIDwgem91cmltdXNoaVwgOwor5q2m6KOF6YO95biCIDwgYnVzb3V0b3NoaVwgOwor5aSn6KGG5oCnIDwgdGFpc2h1dXNlaVwgOwor5a+E5a6/55SfIDwga2lzaHVrdXNlaVwgOwor5piH5rGe5rC0IDwgc2hvdWtvdXN1aVwgOwor5q2m6ICF5oWEIDwgbXVzaGFidXJ1aVwgOwor5paH56ug6KuWIDwgYnVuc2hvdXJvblwgOwor54m56YG45ZOBIDwgdG9rdXNlbmhpblwgOwor6L+R6Kaq6ICFIDwga2luc2hpbnNoYVwgOwor6KSH5pWw5b2iIDwgZnVrdXN1dWtlaVwgOwor5bm96YKD5aKDIDwgeXV1c3Vpa3lvdVwgOwor5YaN5oqV56WoIDwgc2FpdG91aHlvdVwgOwor5LiN5rS75YuVIDwgZnVrYXRzdWRvdVwgOwor5YWo5a+u5Yi2IDwgemVucnlvdXNlaVwgOwor5bmz5ZKM5Zu95a62IDwgaGVpd2Frb2trYVwgOwor6L+95oK85LyaIDwgdHN1aXRvdWthaVwgOwor6YGT6Lev5Zyw5ZuzIDwgZG91cm9jaGl6dVwgOwor562S6bOlIDwgdHN1dHN1ZG9yaVwgOwor55m95YW15oimIDwgaGFrdWhlaXNlblwgOwor6KuL5rGC5qipIDwgc2Vpa3l1dWtlblwgOwor5b+g6ZyK5aGUIDwgY2h1dXJlaXRvdVwgOwor6ZqZ6ZaT6aKoIDwgc3VraW1ha2F6ZVwgOwor5YWx5pyJ5ZywIDwga3lvdXl1dWNoaVwgOwor54mH54K65pu/IDwga2F0YWdhd2FzZVwgOwor57ep6KGd5byBIDwga2Fuc2hvdWJlblwgOwor5a6/5qC56I2JIDwgc2h1a2tvbnNvdVwgOwor5aSn56uL6ICFIDwgb29kYXRlbW9ub1wgOwor5rOw5bGx5pyoIDwgdGFpc2FuYm9rdVwgOwor57O454q26JmrIDwgc2hpam91Y2h1dVwgOwor57W257iB5L2TIDwgemV0c3VlbnRhaVwgOwor6YeM6KiA6JGJIDwgc2F0b2tvdG9iYVwgOwor5b6h5pyx5Y2w6Ii5IDwgZ29zaHVpbnNlblwgOwor6LO86Kqt6ICFIDwga291ZG9rdXNoYVwgOwor5aOy6LK36auYIDwgYmFpYmFpZGFrYVwgOwor5oy66YCy6ZqKIDwgdGVpc2hpbnRhaVwgOwor6KmUIDwgbWlrb3Rvbm9yaVwgOwor6ISx5rC055eHIDwgZGFzc3Vpc2hvdVwgOwor5Yun6YCy5bizIDwga2FuamluY2hvdVwgOwor5ouh5by15YyWIDwga2FrdWNob3VrYVwgOwor5q665Lq66ay8IDwgc2F0c3VqaW5raVwgOwor5rWB5YuV5oCnIDwgcnl1dWRvdXNlaVwgOwor5Zub6YeN5ZSxIDwgc2hpanV1c2hvdVwgOwor5pWZ6IKy6ICFIDwga3lvdWlrdXNoYVwgOwor5Y+N5a++5YG0IDwgaGFudGFpZ2F3YVwgOwor55C05LiA5by1IDwga290b2l0Y2hvdVwgOwor5YaF5Zyo55qEIDwgbmFpemFpdGVraVwgOwor5LiJ5q616LezIDwgc2FuZGFudG9iaVwgOwor6aOb6LqN55qEIDwgaGl5YWt1dGVraVwgOwor5omL6ZW354y/IDwgdGVuYWdhemFydVwgOwor6ICB55y86Y+hIDwgcm91Z2Fua3lvdVwgOwor5Luu5Yem5YiGIDwga2FyaXNob2J1blwgOwor6KKL6ICzIDwgZnVrdXJvbWltaVwgOwor5YWo5Lq65qC8IDwgemVuamlua2FrdVwgOwor5YiG5rOM54mpIDwgYnVucGlidXRzdVwgOwor6KuL5rGC5pu4IDwgc2Vpa3l1dXNob1wgOwor57WQ5a6fIDwga2V0c3VqaXRzdVwgOwor5LiN5rG65patIDwgZnVrZXRzdWRhblwgOwor5YWI5YWI6YCxIDwgc2Vuc2Vuc2h1dVwgOwor6Ie05ZG955qEIDwgY2hpbWVpdGVraVwgOwor5Lmz55+z6IuxIDwgbnl1dXNla2llaVwgOwor6LKh5pS/5a2mIDwgemFpc2VpZ2FrdVwgOwor57aa5Ye6IDwgem9rdXNodXRzdVwgOwor5aSc6YOO6Ieq5aSnIDwgeWFyb3VqaWRhaVwgOwor6aOy6aOf5bqXIDwgaW5zaG9rdXRlblwgOwor6YOo5YiG5ZCm5a6aIDwgYnVidW5oaXRlaVwgOwor57SZ6KO95ZOBIDwga2FtaXNlaWhpblwgOwor6J2fIDwgaGFyaW5lenVtaVwgOwor6Kyb5ZKM5Lya6K2wIDwga291d2FrYWlnaVwgOwor57eo57WE5qmf5qKwIDwgaGVuc29raWthaVwgOwor5rOV5b6L5qGIIDwgaG91cml0c3VhblwgOwor5Y2K55uy55eHIDwgaGFubW91c2hvdVwgOwor56Gd6YW46YqAIDwgc2hvdXNhbmdpblwgOwor5Yy755mC5Zmo5qKwIDwgaXJ5b3VraWthaVwgOwor6Ziy57eP55yBIDwgYm91c291c2hvdVwgOwor5q2j6KaP5YiG5biDIDwgc2Vpa2lidW5wdVwgOwor6YCG5q+U5L6LIDwgZ3lha3VoaXJlaVwgOwor5oqV5pu4566xIDwgdG91c2hvYmFrb1wgOwor5Lya5ZOh5ZCN57C/IDwga2FpaW5tZWlib1wgOwor5r+D57SrIDwga29tdXJhc2FraVwgOwor5Z+O5LiL55S6IDwgam91a2FtYWNoaVwgOwor54m55Yil5aeUIDwgdG9rdWJldHN1aVwgOwor5p2R6Iqd5bGFIDwgbXVyYXNoaWJhaVwgOwor57aZ5oGv5a2QIDwgbWFtYW11c3Vrb1wgOwor55m65L+h6Z+zIDwgaGFzc2hpbicnb25cIDsKK+WkqeWkieWcsOeVsCA8IHRlbnBlbmNoaWlcIDsKK+acieWPsuS7peadpSA8IHl1dXNoaWlyYWlcIDsKK+Wbm+atu+eQgyA8IHNoaXNoaWt5dXVcIDsKK+eMrumHkeeusSA8IGtlbmtpbmJha29cIDsKK+aIpueVpeWutiA8IHNlbnJ5YWt1a2FcIDsKK+WFrOiBtOS8miA8IGtvdWNob3VrYWlcIDsKK+a6nem8oCA8IGRvYnVuZXp1bWlcIDsKK+iQmSA8IGt1dGFiaXJlcnVcIDsKK+ikh+aVsOWbniA8IGZ1a3VzdXVrYWlcIDsKK+S8muioiOWtpiA8IGthaWtlaWdha3VcIDsKK+ewoeeVpeWMliA8IGthbnJ5YWt1a2FcIDsKK+e1pumbu+e3miA8IGt5dXVkZW5zZW5cIDsKK+WQieelpeWkqSA8IGtpc3Nob3V0ZW5cIDsKK+S/neitt+mWoueojiA8IGhvZ29rYW56ZWlcIDsKK+acquW4sOmChOiAhSA8IG1pa2lrYW5zaGFcIDsKK+W+oeW9seefsyA8IG1pa2FnZWlzaGlcIDsKK+WGheWbveeUoyA8IG5haWtva3VzYW5cIDsKK+S4ieaXpeWdiuS4uyA8IG1pa2thYm91enVcIDsKK+mbquaciOiKsSA8IHNldHN1Z2Vra2FcIDsKK+engeabuOeusSA8IHNoaXNob2Jha29cIDsKK+ebtOaYoOmkqCA8IGNob2t1ZWlrYW5cIDsKK+eXheeQhuWtpiA8IGJ5b3VyaWdha3VcIDsKK+W+qeWIu+eJiCA8IGZ1a2tva3ViYW5cIDsKK+mAgOW7g+eahCA8IHRhaWhhaXRla2lcIDsKK+eiuuWbuuS4jeWLlSA8IGtha2tvZnVkb3VcIDsKK+S6uumWk+WtpiA8IG5pbmdlbmdha3VcIDsKK+S4i+edgOmhniA8IHNoaXRhZ2lydWlcIDsKK+WUkOWkieacqCA8IHRvdWhlbmJva3VcIDsKK+e3muaSruW9sSA8IHNlbnNhdHN1ZWlcIDsKK+aWh+aIv+WFt+WxiyA8IGJ1bmJvdWd1eWFcIDsKK+aWsOeUn+mdoiA8IHNoaW5zZWltZW5cIDsKK+W6t+eFleWtl+WFuCA8IGtvdWtpaml0ZW5cIDsKK+ihgOiEiCA8IGtldHN1bXlha3VcIDsKK+aVsOaXpeW+jCA8IHN1dWppdHN1Z29cIDsKK+acquadpeawuOWKqyA8IG1pcmFpZWlnb3VcIDsKK+i2heWQiOmHkSA8IGNob3Vnb3VraW5cIDsKK+WkmuWbveexjSA8IHRha29rdXNla2lcIDsKK+epjeeul+azlSA8IHNla2lzYW5ob3VcIDsKK+eEoeeQhueul+autSA8IG11cmlzYW5kYW5cIDsKK+WklueCuuazlSA8IGdhaXRhbWVob3VcIDsKK+WHuuWTgeiAhSA8IHNodXBwaW5zaGFcIDsKK+immumGkuWJpCA8IGtha3VzZWl6YWlcIDsKK+mrmOWxseidtiA8IGtvdXphbmNob3VcIDsKK+i/kee4geWxniA8IGtpbicnZW56b2t1XCA7CivkuIrpgZTpg6ggPCBrYW5kYWNoaW1lXCA7Civlj6/pjZvpiYQgPCBrYXRhbnRldHN1XCA7Civlv4PnkIbnmoQgPCBzaGlucml0ZWtpXCA7CivkuZfmj5vliLggPCBub3Jpa2Fla2VuXCA7CivmlZnogrLnlYwgPCBreW91aWt1a2FpXCA7CivpmbDmpbXnt5ogPCBpbmt5b2t1c2VuXCA7CivljYroiYfouqsgPCBoYW50ZWlzaGluXCA7CivopqrlhYTlvJ8gPCBveWFreW91ZGFpXCA7Civml4XppKjmpa0gPCByeW9rYW5neW91XCA7CivlrabmnJ/mnKsgPCBnYWtraW1hdHN1XCA7CivomZ7nvo7kurrojYkgPCBndWJpamluc291XCA7CivliLDmnaXniakgPCB0b3VyYWltb25vXCA7CivosaHniZnntLDlt6UgPCB6b3VnZXphaWt1XCA7Civmspbku7Lku5UgPCBva2luYWthc2hpXCA7CivlpJblm73oo70gPCBnYWlrb2t1c2VpXCA7CivntYLnm6TmiKYgPCBzaHV1YmFuc2VuXCA7CivpgIblhYnnt5ogPCBneWFra291c2VuXCA7CivosaHlvrTmtL4gPCBzaG91Y2hvdWhhXCA7Civli6fpgLLlhYMgPCBrYW5qaW5tb3RvXCA7CivprZrpoZ7lraYgPCBneW9ydWlnYWt1XCA7CivpjozpvKwgPCBrYW1haXRhY2hpXCA7CivnuJ7nkarnkZkgPCBzaGltYW1lbm91XCA7CivnnJ/nqbrnrqEgPCBzaGlua3V1a2FuXCA7CivoiI7liKnliKUgPCBzaGFyaWJldHN1XCA7CivkuqzpmKrnpZ4gPCBrZWloYW5zaGluXCA7CivmhaPnv5Lms5UgPCBrYW5zaHV1aG91XCA7Civmu4XojLbmu4XojLYgPCBtZWNoYW1lY2hhXCA7CivpoK3pmYDooosgPCB6dWRhYnVrdXJvXCA7CivpmbDmpbXnrqEgPCBpbmt5b2t1a2FuXCA7Civmt7flkozniakgPCBrb253YWJ1dHN1XCA7CivliIDpjZvlhrYgPCBrYXRhbmFrYWppXCA7CivmvZzkvI/mgKcgPCBzZW5wdWt1c2VpXCA7Civpoqjou4rlsI/lsYsgPCBmdXVzaGFnb3lhXCA7Civmi5vlvoXliLggPCBzaG91dGFpa2VuXCA7CivlrZDkvpvpg6jlsYsgPCBrb2RvbW9iZXlhXCA7CivmsYLmhJvoqofnpLogPCBreXV1YWlrb2ppXCA7Civlj5fpm6Pnr4AgPCBqdW5hbnNldHN1XCA7CivmuKzlrprlgKQgPCBzb2t1dGVpY2hpXCA7CivljJbnsqfntJkgPCBrZXNob3VnYW1pXCA7CivlpKfmhrLnq6AgPCBkYWlrZW5zaG91XCA7CivnjovmlL/lvqnlj6QgPCBvdXNlaWZ1a2tvXCA7CivljZjoibLlhYkgPCB0YW5zaG9ra291XCA7CivooovniakgPCBmdWt1cm9tb25vXCA7CivnlLLmrrvntrEgPCBrb3VrYWt1a291XCA7Civpm4blkIjkvZMgPCBzaHV1Z291dGFpXCA7CivkuIDkurrpg6jlsYsgPCBoaXRvcmliZXlhXCA7Civnq4vlvoDnlJ8gPCB0YWNoaW91am91XCA7Civnq5UgPCBkZXNoaXJpdHRvXCA7CivkuI3osrfpgYvli5UgPCBmdWJhaXVuZG91XCA7CivlrZDlrq7poLggPCBzaGlreXV1a2VpXCA7CivlkJ3ll4flkJ3ll4cgPCBrZWNoaWtlY2hpXCA7CivntYzpqJPnmoQgPCBrZWlrZW50ZWtpXCA7CivljJbnsqfnrrEgPCBrZXNob3ViYWtvXCA7CivkuoznlarmmJ8gPCBuaWJhbmJvc2hpXCA7Civopb/lj6MgPCBuaXNoaWd1Y2hpXCA7Civms5XlvovlrrYgPCBob3VyaXRzdWthXCA7CivlrprmnJ/poJDph5EgPCB0ZWlraXlva2luXCA7CivkuIDlrprmnJ/plpMgPCBpdHRlaWtpa2FuXCA7CivmtJfmv6/mnb8gPCBzZW50YWt1aXRhXCA7Civmu5HmsqLliaQgPCBrYXR0YWt1emFpXCA7Civlr77np7DmgKcgPCB0YWlzaG91c2VpXCA7CivlsJHlubTms5UgPCBzaG91bmVuaG91XCA7CivlvrPlt53lrrYgPCB0b2t1Z2F3YWtlXCA7CivlnLDkuIvpgYvli5UgPCBjaGlrYXVuZG91XCA7CivmtYHli5XkvZMgPCByeXV1ZG91dGFpXCA7CivntYLliIrlj7cgPCBzaHV1a2FuZ291XCA7Civnm6Pkv67ogIUgPCBrYW5zaHV1c2hhXCA7CivlhbHnt6jogIUgPCBreW91aGVuc2hhXCA7Civmh5DnlpHkuLvnvqkgPCBrYWlnaXNodWdpXCA7Civono3pgJrnhKHnoo0gPCB5dXV6dXVtdWdlXCA7Civkv53lronopoHlk6EgPCBob2FuJyd5b3VpblwgOwor57Wx6KiI5a2mIDwgdG91a2VpZ2FrdVwgOwor6Lyq6YOt57eaIDwgcmlua2FrdXNlblwgOwor6LuN6Imm6bOlIDwgZ3Vua2FuZG9yaVwgOwor5ZWG6Ii56ZqKIDwgc2hvdXNlbnRhaVwgOwor6LaF5rqA5ZOhIDwgY2hvdW1hbicnaW5cIDsKK+eJh+aJi+mNiyA8IGthdGF0ZW5hYmVcIDsKK+iCoemWouevgCA8IGtva2Fuc2V0c3VcIDsKK+evgOevgCA8IGZ1c2hpYnVzaGlcIDsKK+iqv+WRs+aWmSA8IGNob3VtaXJ5b3VcIDsKK+WPiOWwj+S9nCA8IG1hdGFrb3Nha3VcIDsKK+etkuiiliA8IHRzdXRzdXNvZGVcIDsKK+S4jeato+ebtCA8IGZ1c2hvdWppa2lcIDsKK+a0quepjeWxpCA8IGtvdXNla2lzb3VcIDsKK+aknOWcp+WZqCA8IGtlbicnYXRzdWtpXCA7CivkuLvmiJHkuLvnvqkgPCBzaHVnYXNodWdpXCA7Civmn5PnianlsYsgPCBzb21lbW9ub3lhXCA7CivphY3ohrPkurogPCBoYWl6ZW4nJ25pblwgOwor5aKD55WM57eaIDwga3lvdWthaXNlblwgOwor6Z2Z54mp55S7IDwgc2VpYnV0c3VnYVwgOwor5pWZ6IKy5rOVIDwga3lvdWlrdWhvdVwgOwor5Y+O6ZuG6a2UIDwgc2h1dXNodXVtYVwgOwor6Zui6IG36ICFIDwgcmlzaG9rdXNoYVwgOwor54mn5bir6aSoIDwgYm9rdXNoaWthblwgOwor5Y2g6aCY6LuNIDwgc2VucnlvdWd1blwgOwor57O45Y2wIDwgaXRvamlydXNoaVwgOwor5Lit55Sf5LujIDwgY2h1dXNlaWRhaVwgOwor54K65Lq6IDwgaGl0b3RvbmFyaVwgOwor5LiL5Y2K5pyfIDwgc2hpbW9oYW5raVwgOwor5pWZ5Lya5rOVIDwga3lvdWthaWhvdVwgOwor5Y6f5rC054iGIDwgZ2Vuc3VpYmFrdVwgOwor55SFIDwgc2VuY2hpZ3VyYVwgOwor55O4IDwgaGVrdXRvZ3VyYVwgOwor54Kt5L+1IDwgc3VtaWRhd2FyYVwgOwor55OxIDwgbWlyaWd1cmFtdVwgOwor55OpIDwga2lyb2d1cmFtdVwgOwor55OnIDwgZGVrYWd1cmFtdVwgOwor5Yi657mN57O4IDwgc2hpc2h1dWl0b1wgOwor5LiN5L2c54K654qvIDwgZnVzYWt1aWhhblwgOwor5pCt5LmX5qmLIDwgdG91am91a3lvdVwgOwor55+z6bm4566xIDwgc2Vra2VuYmFrb1wgOwor5Zue6Lui6Lu4IDwga2FpdGVuamlrdVwgOwor5Yi75LiA5Yi7IDwga29rdWlra29rdVwgOwor5Ym16YCg55qEIDwgc291em91dGVraVwgOwor55e05ZGG55eHIDwgY2hpaG91c2hvdVwgOwor57Gz5omAIDwga29tZWRva29yb1wgOwor5o6S5rC06YePIDwgaGFpc3VpcnlvdVwgOwor5ZCE5oOF5aCxIDwga2FrdWpvdWhvdVwgOwor6IiX6KOF54WJ55OmIDwgaG9zb3VyZW5nYVwgOwor5oqV5b2x5Zuz5rOVIDwgdG91ZWl6dWhvdVwgOwor5qC45paH5rOVIDwga2FrdWJ1bnBvdVwgOwor5aOy5LiK6auYIDwgdXJpYWdlZGFrYVwgOwor5rex5oiQ5bKpIDwgc2hpbnNlaWdhblwgOwor6IO45LiJ5a+4IDwgbXVuZXNhbnp1blwgOwor5b6X5oSP5a6iIDwgdG9rdWlreWFrdVwgOwor5b605YW15Yi2IDwgY2hvdWhlaXNlaVwgOwor56uv6L+RIDwgaGFzaGlkamlrYVwgOwor6Y6W6Y6MIDwga3VzYXJpZ2FtYVwgOwor5oCn5pys6IO9IDwgc2VpaG9uJydub3VcIDsKK+a7heijgiA8IG1ldHN1cmV0c3VcIDsKK+S8keiouuaXpSA8IGt5dXVzaGluYmlcIDsKK+Wft+mHkemLvCA8IHNoaWtrb25nb3VcIDsKK+e3j+eKtuiKseW6jyA8IHNvdWpvdWtham9cIDsKK+ernOearuW3uyA8IHJ5dXVoaW1ha2lcIDsKK+WbnuW4sOeGsSA8IGthaWtpbmV0c3VcIDsKK+elneizgOS8miA8IHNodWt1Z2FrYWlcIDsKK+eUn+a0u+iyuyA8IHNlaWthdHN1aGlcIDsKK+azleWLmeWxgCA8IGhvdW11a3lva3VcIDsKK+S4reWtpuagoSA8IGNodXVnYWtrb3VcIDsKK+aciOimi+iNiSA8IHRzdWtpbWlzb3VcIDsKK+a4hea1hOeEoeWeoiA8IHNlaWpvdW11a3VcIDsKK+mAmuS/l+WMliA8IHRzdXV6b2t1a2FcIDsKK+ebtOS6pOaApyA8IGNob2trb3VzZWlcIDsKK+eosueGseeXhSA8IGltb2NoaWJ5b3VcIDsKK+S4iemdouiomOS6iyA8IHNhbm1lbmtpamlcIDsKK+mrmOi4j+eahCA8IGtvdXRvdXRla2lcIDsKK+e1puaWmeaXpSA8IGt5dXVyeW91YmlcIDsKK+aJjeawl+e4puaoqiA8IHNhaWtpanV1b3VcIDsKK+S4h+W5tOmdkiA8IG1hbicnbmVuc2VpXCA7CivlsI/liY3mj5AgPCBzaG91emVudGVpXCA7Civlha3kuInliLYgPCByb2t1c2Fuc2VpXCA7CivpgKDmnpflraYgPCB6b3VyaW5nYWt1XCA7CivmnKzkvY3osqjluaMgPCBob24nJ2lrYWhlaVwgOwor5YWo6LKs5Lu7IDwgemVuc2VraW5pblwgOwor6aas6bm/5LiB5a+nIDwgYmFrYXRlaW5laVwgOwor54Wn5piO5by+IDwgc2hvdW1laWRhblwgOwor5oSb5Zu95b+DIDwgYWlrb2t1c2hpblwgOwor5r2u54WZIDwgc2hpb2tlbXVyaVwgOwor55+z6bm455q/IDwgc2Vra2VuemFyYVwgOwor5LqI5a6a6KqsIDwgeW90ZWlzZXRzdVwgOwor562G6IiMIDwgaGl0c3V6ZXRzdVwgOwor5pel6JGh6L6e5pu4IDwgbmlwcG9qaXNob1wgOwor6ISz56Gs5aGeIDwgbm91a291c29rdVwgOwor57eP5aSn5bCGIDwgc291ZGFpc2hvdVwgOwor5aeL5pyr5bGLIDwgc2hpbWF0c3V5YVwgOwor5Zu95pyJ5p6XIDwga29rdXl1dXJpblwgOwor6Jas5a2m6YOoIDwgeWFrdWdha3VidVwgOwor5om55Yik5YqbIDwgaGloYW5yeW9rdVwgOwor562J6Lqr5aSnIDwgdG91c2hpbmRhaVwgOwor5L2N55u456m66ZaTIDwgaXNvdWt1dWthblwgOwor5rW35LqL6KGb5pifIDwga2FpamllaXNlaVwgOwor56m65rCX5qmf5qKwIDwga3V1a2lraWthaVwgOwor57eP5pS75pKDIDwgc291a291Z2VraVwgOwor6auY5bGx55eFIDwga291emFuYnlvdVwgOwor5LqU5pyI56WtIDwgZ29nYXRzdXNhaVwgOwor5YWx5ZCM5LqV5oi4IDwga3lvdWRvdWlkb1wgOwor6LuN5qW96ZqKIDwgZ3VuZ2FrdXRhaVwgOwor5LiJ6YeN5ZSxIDwgc2FuanV1c2hvdVwgOwor5Y2X5Lqs6LGGIDwgbmFua2lubWFtZVwgOwor5puy6aas5birIDwga3lva3ViYXNoaVwgOwor5Ymv5Y+45LukIDwgZnVrdXNoaXJlaVwgOwor6Yym6a+JIDwgbmlzaGlraWdvaVwgOwor5pi85pel5LitIDwgaGlydWhpbmFrYVwgOwor5ZCI55CG5Li7576pIDwgZ291cmlzaHVnaVwgOwor5bi46K2Y5a62IDwgam91c2hpa2lrYVwgOwor5ruR6ISxIDwga2F0c3VkYXRzdVwgOwor5aSp5rSl5b6h5aeJIDwgYW1hdHN1bWlrb1wgOwor5aSp5omL5Y+k6IieIDwgdGVudGVrb21haVwgOwor6KiA6JGJ5bC7IDwga290b2JhamlyaVwgOwor6IK65rW45r2kIDwgaGFpc2hpbmp1blwgOwor5aSc5YWJ5pmC6KiIIDwgeWFrb3Vkb2tlaVwgOwor6ICV5L2c6ICFIDwga291c2FrdXNoYVwgOwor5ZCM5b+D5YaGIDwgZG91c2hpbicnZW5cIDsKK+iHtOatu+mHjyA8IGNoaXNoaXJ5b3VcIDsKK+W8geiovOirliA8IGJlbnNob3Vyb25cIDsKK+aWsOeZu+WgtCA8IHNoaW50b3Vqb3VcIDsKK+iHqui7oui7iuWxiyA8IGppdGVuc2hheWFcIDsKK+W8t+WKm+eyiSA8IGt5b3VyaWtpa29cIDsKK+S6iOWCmeWupCA8IHlvYmlzaGl0c3VcIDsKK+W6l+mgreagqiA8IHRlbnRvdWthYnVcIDsKK+eZuuWwhOiWrCA8IGhhc3NoYXlha3VcIDsKK+iHquWutueUqOi7iiA8IGppa2F5b3VzaGFcIDsKK+WNmOS9jeWItuW6piA8IHRhbicnaXNlaWRvXCA7CivljJbnsqfmsLQgPCBrZXNob3VtaXp1XCA7CivljYHpgLLms5UgPCBqaXNzaGluaG91XCA7CivmloflrZfmg4XloLEgPCBtb2ppam91aG91XCA7CivmlofnrYblrrYgPCBidW5waXRzdWthXCA7CivlvpPph4/nqI4gPCBqdXVyeW91emVpXCA7Civnk6blsYvmoLkgPCBrYXdhcmF5YW5lXCA7CivplqLkv4Loqr8gPCBrYW5rZWljaG91XCA7CivllK/lv4Poq5YgPCB5dWlzaGlucm9uXCA7CivlirHmjK/nrqEgPCByZWlzaGlua2FuXCA7Civlhajml6XnqbogPCB6ZW4nJ25pa2t1dVwgOwor5LqM5p6a6IWwIDwgbmltYWlnb3NoaVwgOwor5rWB5YiR5ZywIDwgcnl1dWtlaWNoaVwgOwor5rSq56mN5LiWIDwga291c2VraXNlaVwgOwor6ZyH54G95ZywIDwgc2hpbnNhaWNoaVwgOwor562G562SIDwgZnVkZWR6dXRzdVwgOwor6KaP5Yi26Kej6ZmkIDwga2lzZWlrYWlqb1wgOwor5o+P5Ye6IDwgYnlvdXNodXRzdVwgOwor55y86Luf6IaPIDwgZ2FuJyduYW5rb3VcIDsKK+awtOaZtuS9kyA8IHN1aXNob3V0YWlcIDsKK+eCuea7heWZqCA8IHRlbm1ldHN1a2lcIDsKK+WFhOW8n+WIhiA8IGt5b3VkYWlidW5cIDsKK+mHkemWgOapiyA8IGtpbm1vbmt5b3VcIDsKK+aZr+WLneWcsCA8IGtlaXNob3VjaGlcIDsKK+WGheaOpeWGhiA8IG5haXNldHN1ZW5cIDsKK+eUn+a0u+iLpiA8IHNlaWthdHN1a3VcIDsKK+adseeFp+WuriA8IHRvdXNob3VndXVcIDsKK+WPl+mbo+absiA8IGp1bmFua3lva3VcIDsKK+Wvvua1geWcjyA8IHRhaXJ5dXVrZW5cIDsKK+S4i+awtOW3peS6iyA8IGdlc3Vpa291amlcIDsKK+WNsemZuueJqSA8IGtpa2VuYnV0c3VcIDsKK+eglOS/rueUnyA8IGtlbnNodXVzZWlcIDsKK+i/keimquWpmiA8IGtpbnNoaW5rb25cIDsKK+S6pOiqreaWhyA8IGtvdWRva3VidW5cIDsKK+iEs+WNkuS4rSA8IG5vdXNvdGNodXVcIDsKK+eEvOatu+S9kyA8IHNob3VzaGl0YWlcIDsKK+S4gOelnuaVmSA8IGlzc2hpbmt5b3VcIDsKK+a0vuWHuuaJgCA8IGhhc2h1dHN1am9cIDsKK+aMr+WLleioiCA8IHNoaW5kb3VrZWlcIDsKK+WxiOaKmOiqniA8IGt1c3NldHN1Z29cIDsKK+absummrOWboyA8IGt5b2t1YmFkYW5cIDsKK+azqOWwhOa2siA8IGNodXVzaGFla2lcIDsKK+WQiOaEj+aDheatuyA8IGdvdWlqb3VzaGlcIDsKK+emj+emhOWvvyA8IGZ1a3Vyb2t1anVcIDsKK+e0meWQuembqiA8IGthbWlmdWJ1a2lcIDsKK+S7suS7i+iAhSA8IGNodXVrYWlzaGFcIDsKK+mbhumFjeS6uiA8IHNodXVoYWluaW5cIDsKK+WumuekjuW8jyA8IHRlaXNvc2hpa2lcIDsKK+ijgeWIpOmVtyA8IHNhaWJhbmNob3VcIDsKK+mbu+ipseWxgCA8IGRlbndha3lva3VcIDsKK+S/uOelv+exsyA8IGhvdXJva3VtYWlcIDsKK+iKseWQuembqiA8IGhhbmFmdWJ1a2lcIDsKK+Wcn+WjgSA8IHRzdWNoaWthYmVcIDsKK+WFteezp+exsyA8IGh5b3Vyb3VtYWlcIDsKK+inkue0sOW3pSA8IHRzdW5vemFpa3VcIDsKK+i8uOmAgeWKmyA8IHl1c291cnlva3VcIDsKK+ael+mHjuW6gSA8IHJpbicneWFjaG91XCA7CivmlK/phY3nmoQgPCBzaGloYWl0ZWtpXCA7CivlpKrpvJPmqYsgPCB0YWlrb2Jhc2hpXCA7CivnrpTlipvnsokgPCBoYWt1cmlraWtvXCA7CivnjYXlrZDpvLsgPCBzaGlzaGliYW5hXCA7CivpgKPpmorplbcgPCByZW50YWljaG91XCA7Civnq6/mnKvmqZ8gPCB0YW5tYXRzdWtpXCA7CivlkLnlpY/mpb0gPCBzdWlzb3VnYWt1XCA7CivnhrHlsITnl4UgPCBuZXNzaGFieW91XCA7Civmk4UgPCBob3NoaWltYW1hXCA7Civmraboo4XlubPlkowgPCBidXNvdWhlaXdhXCA7CivlvrPnlKjnk7YgPCB0b2t1eW91YmluXCA7CivmiYvntpogPCB0ZXRzdWR6dWtpXCA7CivlpKnmtKXnpZ4gPCBhbWF0c3VrYW1pXCA7CivpmY3msLTph48gPCBrb3VzdWlyeW91XCA7Civlh7rph5HogIUgPCBzaHVra2luc2hhXCA7CivlhbjlnovnmoQgPCB0ZW5rZWl0ZWtpXCA7CivonqLnn7MgPCBob3RhcnVpc2hpXCA7CivkuK3mnqLmgKcgPCBjaHV1c3V1c2VpXCA7Civov7flvanmnI0gPCBtZWlzYWlmdWt1XCA7CivkvY/lroXpm6MgPCBqdXV0YWt1bmFuXCA7Civku5jluK/kuovpoIUgPCBmdXRhaWppa291XCA7CivljJbnsqfmlpkgPCBrZXNob3VyeW91XCA7Civlv4PnkIblraYgPCBzaGlucmlnYWt1XCA7CivoirPlkI3pjLIgPCBob3VtZWlyb2t1XCA7Civli5XlipvngokgPCBkb3VyeW9rdXJvXCA7CivlsI/lhZDnl4UgPCBzaG91bmlieW91XCA7CivlsJHlubTlm6MgPCBzaG91bmVuZGFuXCA7CivlhajpnaLnmoQgPCB6ZW5tZW50ZWtpXCA7CivooYzmlrnkuI3mmI4gPCB5dWt1ZWZ1bWVpXCA7CivlsI/luILmsJEgPCBzaG91c2hpbWluXCA7CivonJzonIIgPCBtaXRzdWJhY2hpXCA7CivlpKnmsJfkuojloLEgPCB0ZW5raXlvaG91XCA7CivkuI3lubPkuI3muoAgPCBmdWhlaWZ1bWFuXCA7Civooqvkv53pmbrogIUgPCBoaWhva2Vuc2hhXCA7Civlia/mrKHnmoQgPCBmdWt1aml0ZWtpXCA7CivmpI7plpPmnb8gPCB0c3Vpa2FuYmFuXCA7CivopqrlrZDpm7voqbEgPCBveWFrb2RlbndhXCA7CivoqrLnqI7njocgPCBrYXplaXJpdHN1XCA7Civpg7XmlL/nnIEgPCB5dXVzZWlzaG91XCA7CivlpI/loLTmiYAgPCBuYXRzdWJhc2hvXCA7CivlpJrmg4XlpJrmgaggPCB0YWpvdXRha29uXCA7CivnrrHmn7MgPCBoYWtveWFuYWdpXCA7CivntYzllrbnoLTntrsgPCBrZWllaWhhdGFuXCA7CivljprljJbnsqcgPCBhdHN1Z2VzaG91XCA7Civos5vliqnkvJrlk6EgPCBzYW5qb2thaWluXCA7CivkuozkurrntYQgPCBmdXRhcmlndW1pXCA7Civoh7Tlkb3lgrcgPCBjaGltZWlzaG91XCA7CivnrrHmnpUgPCBoYWtvbWFrdXJhXCA7Civlia/pg73lv4MgPCBmdWt1dG9zaGluXCA7CivnsbPkv7UgPCBrb21lZGF3YXJhXCA7CivnmbrmoYjogIUgPCBoYXRzdWFuc2hhXCA7CivlvLflipvniq8gPCBnb3VyaWtpaGFuXCA7CivkuIvpg6jmp4vpgKAgPCBrYWJ1a291em91XCA7CivmtJfmv6/ku6MgPCBzZW50YWt1ZGFpXCA7CivpgYrms7PooZMgPCB5dXVlaWp1dHN1XCA7Civmr47lnJ/mm5zml6UgPCBtYWlkb3lvdWJpXCA7Civoo73pmbbmpa0gPCBzZWl0b3VneW91XCA7CivnkIPluqfmqJkgPCBreXV1emFoeW91XCA7CivmsojkuIHoirEgPCBjaGluY2hvdWdlXCA7CivonILonJwgPCBoYWNoaW1pdHN1XCA7Civkuojnrpfmjqrnva4gPCB5b3NhbnNvY2hpXCA7CivokaHokITniZkgPCBwb3J1dG9nYXJ1XCA7CivkuI3nqY/liIblrZAgPCBmdW9uYnVuc2hpXCA7CivmlZnkvJrloIIgPCBreW91a2FpZG91XCA7CivmlK/lupfplbcgPCBzaGl0ZW5jaG91XCA7CivllpzmgJLlk4Dmpb0gPCBraWRvYWlyYWt1XCA7CivlvqHlubTnjokgPCBvdG9zaGlkYW1hXCA7Civopb/mtIvokbEgPCBzZWl5b3VuZWdpXCA7Civnk5zlrp/poZQgPCB1cml6YW5lZ2FvXCA7CivnnJ/nqbrluK8gPCBzaGlua3V1dGFpXCA7Civnq7nnrZIgPCB0YWtlZHp1dHN1XCA7Civov73pgIHmpJwgPCB0c3Vpc291a2VuXCA7CivmnKrmsbrnm6MgPCBtaWtldHN1a2FuXCA7CivmvKLlkozovp7lhbggPCBrYW53YWppdGVuXCA7Civmma7pgJrmoKogPCBmdXRzdXVrYWJ1XCA7Civlj4voqrzlm73lrrYgPCB5dXVnaWtva2thXCA7Civnm7jkupLkv53pmbogPCBzb3Vnb2hva2VuXCA7CivllYblupfkuLsgPCBzaG91dGVuc2h1XCA7CivmjqHnn7PloLQgPCBzYWlzZWtpam91XCA7CivniaLlkI3kuLsgPCByb3VuYW51c2hpXCA7CivntK/pgLLnqI4gPCBydWlzaGluemVpXCA7CivlpKfnq7bkuokgPCBkYWlreW91c291XCA7Civmo67mnpfms5UgPCBzaGlucmluaG91XCA7CivlkIzpg7fkurogPCBkb3VreW91amluXCA7CivmtL7lh7rlqaYgPCBoYXNodXRzdWZ1XCA7CivkuovlpKfkuLvnvqkgPCBqaWRhaXNodWdpXCA7CivlhoXlm73lgrUgPCBuYWlrb2t1c2FpXCA7CivkupTovKrkvJrorbAgPCBnb3JpbmthaWdpXCA7CivmlK/luqbph5EgPCBzaGl0YWt1a2luXCA7Civnq6/nq68gPCBoYXNoaWJhc2hpXCA7Civlho3mtbjnpLwgPCBzYWlzaGlucmVpXCA7Civlm73mnInlnLAgPCBrb2t1eXV1Y2hpXCA7CivopqrlsZXmm7ggPCBzaGludGVuc2hvXCA7Civoqp7lvaLlpInljJYgPCBnb2tlaWhlbmthXCA7Civlu4nmgaXlv4MgPCByZW5jaGlzaGluXCA7Civnmobml6Lpo58gPCBrYWlraXNob2t1XCA7CivpnZ7miKbpl5jlk6EgPCBoaXNlbnRvdWluXCA7Civou6LlsYXlhYggPCB0ZW5reW9zYWtpXCA7CivpgKPntaHpp4UgPCByZW5yYWt1ZWtpXCA7Civpm7voqbHlj6MgPCBkZW53YWd1Y2hpXCA7CivnhKHlv7XnhKHmg7MgPCBtdW5lbm11c291XCA7Civnsr7li6Tos54gPCBzZWlraW5zaG91XCA7CivlgaXlv5jnl4cgPCBrZW5ib3VzaG91XCA7CivonbbnlaogPCBjaG91dHN1Z2FpXCA7CivmvJTnrpfmiYvpoIYgPCBlbnphbnRlanVuXCA7CivmlZnkvJrlj7IgPCBreW91a2Fpc2hpXCA7CivlsJHlubTkvJogPCBzaG91bmVua2FpXCA7CivotIvmiYvntJkgPCBuaXNldGVnYW1pXCA7Civlh7rlvoHou40gPCBzaHVzc2VpZ3VuXCA7Civmrabmlq3kuLvnvqkgPCBidWRhbnNodWdpXCA7CivoqIjnlLvogIUgPCBrZWlrYWt1c2hhXCA7CivmlaPmlofnmoQgPCBzYW5idW50ZWtpXCA7CivkuJboqbHkurrplpMgPCBzZXdhbmluZ2VuXCA7Civlub7kvZXlubPlnYcgPCBraWthaGVpa2luXCA7Civmi6DmiYAgPCB5b3JpZG9rb3JvXCA7Civkurrlt6XpmY3pm6ggPCBqaW5rb3Vrb3V1XCA7Civpu5LpvKAgPCBrdXJvbmV6dW1pXCA7Civlj4vlpb3nmoQgPCB5dXVrb3V0ZWtpXCA7Civoh6rllY/oh6rnrZQgPCBqaW1vbmppdG91XCA7Civlj6zllprnirYgPCBzaG91a2Fuam91XCA7Civoqo3oqLzogIUgPCBuaW5zaG91c2hhXCA7CivlubTnlKPpoY0gPCBuZW5zYW5nYWt1XCA7Civmj5vnrpfooaggPCBrYW56YW5oeW91XCA7CivmspbnuITnnIwgPCBva2luYXdha2VuXCA7CivmlZHkuJbou40gPCBreXV1c2VpZ3VuXCA7CivmuoDotrPmhJ8gPCBtYW56b2t1a2FuXCA7CivlpYnlhazlhYggPCBob3Vrb3VzYWtpXCA7Civpm7vloLHmlpkgPCBkZW5wb3VyeW91XCA7CivojZLkuovluKsgPCBhcmFnb3Rvc2hpXCA7CivmoYPmupDpg7cgPCB0b3VnZW5reW91XCA7Civok67mnIjlsLwgPCByZW5nZXRzdW5pXCA7CivnmofntIDlubTluqYgPCBrb3VraW5lbmRvXCA7Civnvr3mlpHomoogPCBoYW1hZGFyYWthXCA7CivmnLTlv7Xku4EgPCBib2t1bmVuamluXCA7CivlrZDlrq7nmYwgPCBzaGlreXV1Z2FuXCA7Civooajlj6MgPCBvbW90ZWd1Y2hpXCA7Civno4HlipvoqIggPCBqaXJ5b2t1a2VpXCA7CivmoLnnspLoj4wgPCBrb25yeXV1a2luXCA7CivnuKbml4vnm6QgPCB0YXRlc2VuYmFuXCA7CivluILlvbnmiYAgPCBzaGl5YWt1c2hvXCA7CivmpJzmtYHoqIggPCBrZW5yeXV1a2VpXCA7CivljbPlo7LkvJogPCBzb2t1YmFpa2FpXCA7Civlu7bkurrlk6EgPCBub2JlamluJydpblwgOwor5Y+j6IWU5aSW56eRIDwga291a291Z2VrYVwgOwor6Kq/5ZCI5YmkIDwgY2hvdWdvdXphaVwgOwor6KaB56K66KqNIDwgeW91a2FrdW5pblwgOwor5bi457eR5qi5IDwgam91cnlva3VqdVwgOwor56uI56WeIDwga2FtYWRvZ2FtaVwgOwor6YG455CD55y8IDwgc2Vua3l1dWdhblwgOwor55+z5ZCI5oimIDwgaXNoaWdhc3NlblwgOwor5bCB5bu655qEIDwgaG91a2VudGVraVwgOwor6aeQ5Zyo5omAIDwgY2h1dXphaXNob1wgOwor5LiW5biv5Li7IDwgc2V0YWludXNoaVwgOwor5bmz5bi45b+DIDwgaGVpam91c2hpblwgOwor6buS6a6qIDwga3Vyb21hZ3Vyb1wgOwor6ISz5oCn6bq755e6IDwgbm91c2VpbWFoaVwgOwor5LqU5Y2B6Z+z6aCGIDwgZ29qdXVvbmp1blwgOwor6LGG5Y+w6aKoIDwgbWFtZXRhaWZ1dVwgOwor5ryU566X57K+5bqmIDwgZW56YW5zZWlkb1wgOwor6Ymx5bGx5qWtIDwga291emFuZ3lvdVwgOwor5Y2B5a2X5p6254q2IDwganV1amlrYWpvdVwgOwor6KGo5Ye6IDwgaHlvdXNodXRzdVwgOwor5qeL5paH5pyoIDwga291YnVubW9rdVwgOwor5Y+C6KyA6ZW3IDwgc2FuYm91Y2hvdVwgOwor5LiN6ICB5LiN5q27IDwgZnVyb3VmdXNoaVwgOwor5LiW55WM5Li7576pIDwgc2VrYWlzaHVnaVwgOwor5YaZ55yf6aSoIDwgc2hhc2hpbmthblwgOwor5oim5pmC6ImyIDwgc2VuamlzaG9rdVwgOwor6J666Yi/57Sw5belIDwgcmFkZW56YWlrdVwgOwor6KiY6LyJ5LqL6aCFIDwga2lzYWlqaWtvdVwgOwor5L2P5a6F6KGXIDwganV1dGFrdWdhaVwgOwor6aCT54+N5ryiIDwgdG9uY2hpbmthblwgOwor5byx6YW45oCnIDwgamFrdXNhbnNlaVwgOwor5Lit5LuV5YiHIDwgbmFrYWppa2lyaVwgOwor54Kt57Sg57mK57atIDwgdGFuc29zZW4nJ2lcIDsKK+WUkOihoyA8IGthcmFrb3JvbW9cIDsKK+WIneiInuWPsCA8IGhhdHN1YnV0YWlcIDsKK+WGmeecn+mhlCA8IHNoYXNoaW5nYW9cIDsKK+eEoee3mumbu+ipsSA8IG11c2VuZGVud2FcIDsKK+WNl+S6rOeOiSA8IG5hbmtpbmRhbWFcIDsKK+iIueexjea4ryA8IHNlbnNla2lrb3VcIDsKK+eHkOeBsOefsyA8IHJpbmthaXNla2lcIDsKK+S4gOW5tOmWkyA8IGljaGluZW5rYW5cIDsKK+mdnuaOpeinpiA8IGhpc2Vzc2hva3VcIDsKK+aMgee2mueahCA8IGppem9rdXRla2lcIDsKK+a4qeaDheS4u+e+qSA8IG9uam91c2h1Z2lcIDsKK+WWtualreS4rSA8IGVpZ3lvdWNodXVcIDsKK+i2hemBjumhjSA8IGNob3VrYWdha3VcIDsKK+mgkOiyuOeOhyA8IHlvdGFpcml0c3VcIDsKK+S7o+eUqOiCiSA8IGRhaXlvdW5pa3VcIDsKK+WAi+S6uue1jOWWtiA8IGtvamlua2VpZWlcIDsKK+aZguezu+WIlyA8IGppa2VpcmV0c3VcIDsKK+ethuaXgSA8IGZ1ZGV6dWt1cmlcIDsKK+WllOaUvuS4jee+iCA8IGhvbnBvdWZ1a2lcIDsKK+WtkOS+m+acjSA8IGtvZG9tb2Z1a3VcIDsKK+itpuimluW6gSA8IGtlaXNoaWNob3VcIDsKK+WFjeeWq+aApyA8IG1lbicnZWtpc2VpXCA7Civns7vntbHnmoQgPCBrZWl0b3V0ZWtpXCA7Civou43nlKjph5EgPCBndW4nJ3lvdWtpblwgOwor6I2S5LuV5LqLIDwgYXJhc2hpZ290b1wgOwor55m75bGx5a6iIDwgdG96YW5reWFrdVwgOwor5L2O6LOD6YeRIDwgdGVpY2hpbmdpblwgOwor5L615a6z6ICFIDwgc2hpbmdhaXNoYVwgOwor5aOy5LiK56WoIDwgdXJpYWdlcHlvdVwgOwor6YmE5Zmo5pmC5LujIDwgdGVra2lqaWRhaVwgOwor5pS+6YCB5YqHIDwgaG91c291Z2VraVwgOwor5pel56iL6KGoIDwgbml0dGVpaHlvdVwgOwor5Ymv6JGs5ZOBIDwgZnVrdXNvdWhpblwgOwor6b2j6JC9IDwga29tYW90b3NoaVwgOwor5oy/5YWl5paHIDwgc291bnl1dWJ1blwgOwor5Yid5a2m6ICFIDwgc2hvZ2FrdXNoYVwgOwor5pWZ57+S5omAIDwga3lvdXNodXVqb1wgOwor5YWl5aC06ZaAIDwgbnl1dWpvdW1vblwgOwor5a6Y5bqB6KGXIDwga2FuY2hvdWdhaVwgOwor54mp5L6h6aiw6LK0IDwgYnVra2F0b3VraVwgOwor6KaP5YmH55qEIDwga2lzb2t1dGVraVwgOwor5bCP5YaK5a2QIDwgc2hvdXNhc3NoaVwgOwor6Ly75bCE57eaIDwgZnVrdXNoYXNlblwgOwor5YCpIDwgdHN1cmF0c3VyYVwgOwor5Y2B6YCy5Yi2IDwgamlzc2hpbnNlaVwgOwor6KSH6KO95ZOBIDwgZnVrdXNlaWhpblwgOwor5qOu5p6X5bivIDwgc2hpbnJpbnRhaVwgOwor57WQ5pm257O7IDwga2Vzc2hvdWtlaVwgOwor54Sh56ep5bqPIDwgbXVjaGl0c3Vqb1wgOwor5pel5pys6Iie6LiKIDwgbmlob25idXlvdVwgOwor6IG+5ZSW5a2m5qChIDwgcm91YWdha2tvdVwgOwor6Yyo57axIDwgaWthcmlkenVuYVwgOwor5Li76Kaz55qEIDwgc2h1a2FudGVraVwgOwor56C05aOK5YqbIDwgaGFrYWlyeW9rdVwgOwor5LiJ5q+b5L2cIDwgc2FubW91c2FrdVwgOwor5qGn55qu6JG6IDwgaGl3YWRhYnVraVwgOwor5Yqb57mU5qmfIDwgcmlraXNob2traVwgOwor5YWt6Z2i5L2TIDwgcm9rdW1lbnRhaVwgOwor54++5Luj6Iux6KqeIDwgZ2VuZGFpZWlnb1wgOwor55m95Lq656iuIDwgaGFrdWppbnNodVwgOwor5rGO56We6KuWIDwgaGFuc2hpbnJvblwgOwor5Luu5a6a5qy+IDwga2FyaXRlaWthblwgOwor57SN56iO6aGNIDwgbm91emVpZ2FrdVwgOwor6Ku45aSW5Zu9IDwgc2hvZ2Fpa29rdVwgOwor5aSW5o6l5YaGIDwgZ2Fpc2V0c3VlblwgOwor5Y2B5LqM5L2/5b6SIDwganV1bmlzaGl0b1wgOwor6KO957SZ5qWtIDwgc2Vpc2hpZ3lvdVwgOwor6Ymb55u057eaIDwgZW5jaG9rdXNlblwgOwor5b+D6Zu76KiIIDwgc2hpbmRlbmtlaVwgOwor56aP5Yip6KGoIDwgZnVrdXJpaHlvdVwgOwor562S5b2iIDwgdHN1dHN1Z2F0YVwgOwor5b6u55Sf54mpIDwgYmlzZWlidXRzdVwgOwor5a6d55+z5bqXIDwgaG91c2VraXRlblwgOwor5Ym15qWt6ICFIDwgc291Z3lvdXNoYVwgOwor5pel5pys5bqt5ZySIDwgbmlob250ZWllblwgOwor6Z2p6KO95ZOBIDwga2F3YXNlaWhpblwgOwor5bmz5bm05L2cIDwgaGVpbmVuc2FrdVwgOwor5rex57eRIDwgZnVrYW1pZG9yaVwgOwor6YG65Lyd5pqX5Y+3IDwgaWRlbicnYW5nb3VcIDsKK+eMv+iKneWxhSA8IHNhcnVzaGliYWlcIDsKK+WgtOWkluagqiA8IGpvdWdhaWthYnVcIDsKK+m8u+iWrCA8IGhhbmFndXN1cmlcIDsKK+W8geiovOazlSA8IGJlbnNob3Vob3VcIDsKK+WNlOWumuabuCA8IGt5b3V0ZWlzaG9cIDsKK+i7jeS6i+i8uOmAgSA8IGd1bmppeXVzb3VcIDsKK+S6lOaXrOevgCA8IGdvanVuc2V0c3VcIDsKK+S8tOaAp+mBuuS8nSA8IGhhbnNlaWlkZW5cIDsKK+aJgOafhCA8IHRva29yb2dhcmFcIDsKK+WIneS7u+e1piA8IHNob25pbmt5dXVcIDsKK+mZuOabueetiSA8IHJpa3Vzb3V0b3VcIDsKK+e1jOWWtuWPguWKoCA8IGtlaWVpc2Fua2FcIDsKK+WlveaIkOe4viA8IGtvdXNlaXNla2lcIDsKK+mAmuacieaApyA8IHRzdXV5dXVzZWlcIDsKK+iBtOWwjueKrCA8IGNob3Vkb3VrZW5cIDsKK+S6iOWCmemBuOaMmSA8IHlvYmlzZW5reW9cIDsKK+W+oemrmOellumgreW3viA8IG9rb3NvenVraW5cIDsKK+S6iOWCmeiJpumaiiA8IHlvYmlrYW50YWlcIDsKK+ejgeWKm+e3miA8IGppcnlva3VzZW5cIDsKK+mbouWpmueOhyA8IHJpa29ucml0c3VcIDsKK+ehnemFuOWhqSA8IHNob3VzYW4nJ2VuXCA7CivkuojlgpnpgbjmiYsgPCB5b2Jpc2Vuc2h1XCA7Civlho3norroqo0gPCBzYWlrYWt1bmluXCA7CivnmbrmoYjmqKkgPCBoYXRzdWFua2VuXCA7Civpharoo73lk4EgPCByYWt1c2VpaGluXCA7CivlnJ/mgKfpqqggPCBkb3Nob3Vib25lXCA7Civpgb/lporolqwgPCBoaW5pbicneWFrdVwgOwor5LiN5YC25oi05aSpIDwgZnVndXRhaXRlblwgOwor5oyB5Li7IDwgbW9jaGludXNoaVwgOwor55m655Sf5a2mIDwgaGFzc2VpZ2FrdVwgOwor5Lq656iu55qEIDwgamluc2h1dGVraVwgOwor56OB55+z55ukIDwgamlzaGFrdWJhblwgOwor5aSn6JS157WMIDwgZGFpem91a3lvdVwgOwor5rKz5Y6f6ba4IDwga2F3YXJhaGl3YVwgOwor5ouZ5YqjIDwgc2V0c3VyZXRzdVwgOwor55WZ572u5aC0IDwgcnl1dWNoaWpvdVwgOwor6YCa6aKo5a2UIDwgdHN1dWZ1dWtvdVwgOwor6KaB5rGC6ICFIDwgeW91a3l1dXNoYVwgOwor55+l5oG16KKLIDwgY2hpZWJ1a3Vyb1wgOwor57SZ6YmE56CyIDwga2FtaWRlcHBvdVwgOwor5Yid6aOb6KGMIDwgaGF0c3VoaWtvdVwgOwor55m75bGx5Y+jIDwgdG96YW5ndWNoaVwgOwor6LKv5rC06YePIDwgY2hvc3VpcnlvdVwgOwor56S+5Lya6Y2LIDwgc2hha2FpbmFiZVwgOwor5bmz5ZKM6YOo6ZqKIDwgaGVpd2FidXRhaVwgOwor5q6K5Yuy6LOeIDwgc2h1a3Vuc2hvdVwgOwor6YGL5YuV6Z20IDwgdW5kb3VndXRzdVwgOwor5Lqk6Zqb5Zu9IDwga291c2Fpa29rdVwgOwor5YWr5paH5a2XIDwgaGFjaGltb25qaVwgOwor6KOB5Yik5rKZ5rGwIDwgc2FpYmFuemF0YVwgOwor6ZaL55m66YOoIDwga2FpaGF0c3VidVwgOwor6Kq/5Y2w5Zu9IDwgY2hvdWlua29rdVwgOwor55u457aa56iOIDwgc291em9rdXplaVwgOwor6J2L5Lq65b2iIDwgcm91bmluZ3lvdVwgOwor5Lq65ZCN6YyyIDwgamlubWVpcm9rdVwgOwor5Za25Yip5rOV5Lq6IDwgZWlyaWhvdWppblwgOwor6JC956ys55SfIDwgcmFrdWRhaXNlaVwgOwor5Yed54Gw5bKpIDwgZ3lvdWthaWdhblwgOwor5Yip5LuY5YK1IDwgcml0c3VraXNhaVwgOwor6K2w5Lya5pS/5rK7IDwgZ2lrYWlzZWlqaVwgOwor6Zuo5aSp6aCG5bu2IDwgdXRlbmp1bicnZW5cIDsKK+S9k+iFlOWjgSA8IHRhaWtvdWhla2lcIDsKK+aMh+aOjOe0iyA8IHNoaXNob3Vtb25cIDsKK+S7mOW4r+iyu+eUqCA8IGZ1dGFpaGl5b3VcIDsKK+Wlh+i3oeeahCA8IGtpc2VraXRla2lcIDsKK+S7o+itsOWToeWboyA8IGRhaWdpaW5kYW5cIDsKK+ibi+eZvea6kCA8IHRhbnBha3VnZW5cIDsKK+aWreacq+mtlCA8IGRhbm1hdHN1bWFcIDsKK+ips+S8neekviA8IHNob3VkZW5zaGFcIDsKK+iRrOWEgOW8jyA8IHNvdWdpc2hpa2lcIDsKK+aQjeWus+mhjSA8IHNvbmdhaWdha3VcIDsKK+mJhOmLvOalrSA8IHRla2tvdWd5b3VcIDsKK+aal+e0q+iJsiA8IGFuc2hpc2hva3VcIDsKK+WFiOS7u+mghiA8IHNlbicnbmluanVuXCA7Civlpb3miKbnmoQgPCBrb3VzZW50ZWtpXCA7CivpmLLplbflrpggPCBib3VjaG91a2FuXCA7CivmsLTlnKfoqIggPCBzdWlhdHN1a2VpXCA7CivlpJblm73li6IgPCBnYWlrb2t1emVpXCA7Civpn5Plm73kurogPCBrYW5rb2t1amluXCA7CivmlaLpl5jos54gPCBrYW50b3VzaG91XCA7CivmtYHos6ogPCByeXV1c2hpY2hpXCA7CivmqZ/lhoXpo58gPCBraW5haXNob2t1XCA7Civoo4/nlarntYQgPCB1cmFiYW5ndW1pXCA7Civlm73pmLLoq5YgPCBrb2t1Ym91cm9uXCA7Civkuozph43oqrLnqI4gPCBuaWp1dWthemVpXCA7CivmibbppIrmjqfpmaQgPCBmdXlvdWtvdWpvXCA7Civlm73pmpvnt5ogPCBrb2t1c2Fpc2VuXCA7CivooZvmmJ/pg73luIIgPCBlaXNlaXRvc2hpXCA7Civpm7vmsJflm57ot68gPCBkZW5raWthaXJvXCA7Civosrjph5HluqsgPCBrYXNoaWtpbmtvXCA7CivpgJ/oqJjooZMgPCBzb2traWp1dHN1XCA7Civlm73oqIDokYkgPCBrdW5pa290b2JhXCA7Civmir3lh7ogPCBjaHV1c2h1dHN1XCA7CivljJDooYznlrkgPCBmdWtrb3VzaGluXCA7CivnlLrlt6XloLQgPCBtYWNoaWtvdWJhXCA7CivlnLDkuIvkuozpmo4gPCBjaGlrYW5pa2FpXCA7Civoh7PmgKXkvr8gPCBzaGlreXV1YmluXCA7Civlrp3lhqDnq6AgPCBob3VrYW5zaG91XCA7Civoi6Xml6bpgqMgPCB3YWthZGFuJyduYVwgOwor5oyR5oim6ICFIDwgY2hvdXNlbnNoYVwgOwor6YmE6Ymx55+zIDwgdGVra291c2VraVwgOwor5qiq6ZqU6IacIDwgb3VrYWt1bWFrdVwgOwor6aCQ6YeR5Y+j5bqnIDwgeW9raW5rb3V6YVwgOwor5ZCM5qWt6ICFIDwgZG91Z3lvdXNoYVwgOwor5rS755So6KqeIDwga2F0c3V5b3Vnb1wgOwor5rex5ZG85ZC4IDwgc2hpbmtva3l1dVwgOwor5LiJ55Wq6baPIDwgc2FuYmFuZG9yaVwgOwor5Yik5Lu75a6YIDwgaGFuJyduaW5rYW5cIDsKK+WkluWbveWCtSA8IGdhaWtva3VzYWlcIDsKK+mAo+e1oeiIuSA8IHJlbnJha3VzZW5cIDsKK+iQveesrOeCuSA8IHJha3VkYWl0ZW5cIDsKK+mAsuihjOebuCA8IHNoaW5rb3Vzb3VcIDsKK+iJsuaBi+aymeaxsCA8IGlyb2tvaXphdGFcIDsKK+axuuWumueahCA8IGtldHRlaXRla2lcIDsKK+iCieaWmeeQhiA8IG5pa3VyeW91cmlcIDsKK+aWh+azleeahCA8IGJ1bnBvdXRla2lcIDsKK+WbveaWh+azlSA8IGtva3VidW5wb3VcIDsKK+i2heW8qee0miA8IGNob3Vkb2t5dXVcIDsKK+Wkp+iUteecgSA8IG9va3VyYXNob3VcIDsKK+aEn+aDheeahCA8IGthbmpvdXRla2lcIDsKK+S5l+WQiOiIuSA8IG5vcmlhaWJ1bmVcIDsKK+W+s+eUqOWTgSA8IHRva3V5b3VoaW5cIDsKK+eHg+aWmeajkiA8IG5lbnJ5b3Vib3VcIDsKK+S6jOaXpemFlCA8IGZ1dHN1a2F5b2lcIDsKK+elnue1jOezuyA8IHNoaW5rZWlrZWlcIDsKK+S7ruitsOmVtyA8IGthcmlnaWNob3VcIDsKK+iyqOW5o+S+oeWApCA8IGthaGVpa2FjaGlcIDsKK+eLrOaWreirliA8IGRva3VkYW5yb25cIDsKK+WkluWbveS6uiA8IGdhaWtva3VqaW5cIDsKK+ePjeeznua8oiA8IGNoaW5wdW5rYW5cIDsKK+aMr+WLleadvyA8IHNoaW5kb3ViYW5cIDsKK+aui+WLmeaVtOeQhiA8IHphbm11c2VpcmlcIDsKK+S4u+aVmeWGoCA8IHNodWt5b3VrYW5cIDsKK+ato+aVmeW4qyA8IHNlaWt5b3VzaGlcIDsKK+e0sOiPjOWtpiA8IHNhaWtpbmdha3VcIDsKK+icnOaciCA8IG1pdHN1Z2V0c3VcIDsKK+iAleS9nOWcsCA8IGtvdXNha3VjaGlcIDsKK+aUuemAsuWFmiA8IGthaXNoaW50b3VcIDsKK+S4ieWIhuaQlyA8IHNhbmJ1dHN1a2lcIDsKK+S8kemWkeWcsCA8IGt5dXVrYW5jaGlcIDsKK+i7jeeUqOiJpiA8IGd1bicneW91a2FuXCA7CivmlrDogZ7ntJkgPCBzaGluYnVuc2hpXCA7CivovLvlsITngrkgPCBmdWt1c2hhdGVuXCA7Civlhazllrbkv53pmbogPCBrb3VlaWhva2VuXCA7CivkuJbkv5fnmoQgPCBzZXpva3V0ZWtpXCA7Civph43lnKfmhJ8gPCBqdXVhdHN1a2FuXCA7CivosYbpiYTnoLIgPCBtYW1lZGVwcG91XCA7CivlhKrnp4Dlk4EgPCB5dXVzaHV1aGluXCA7CivnqbrmtpkgPCBzb3JhbmFtaWRhXCA7Civph5Hono3nlYwgPCBraW4nJ3l1dWthaVwgOwor5YKN6IG05Yi4IDwgYm91Y2hvdWtlblwgOwor6LKv6YeR566xIDwgY2hva2luYmFrb1wgOwor5Zu95aKD57eaIDwga29ra3lvdXNlblwgOwor6K2y5rih5ouF5L+dIDwgam91dG90YW5wb1wgOwor6JqV57O45qWtIDwgc2Fuc2hpZ3lvdVwgOwor5LiA5bm06I2JIDwgaWNoaW5lbnNvdVwgOwor6auY5a+G5bqmIDwga291bWl0c3Vkb1wgOwor5YWN55ar5L2TIDwgbWVuJydla2l0YWlcIDsKK+ejgeawl+W1kCA8IGppa2lhcmFzaGlcIDsKK+aMr+WLleaVsCA8IHNoaW5kb3VzdXVcIDsKK+Wkp+ekvOacjSA8IHRhaXJlaWZ1a3VcIDsKK+aUueiJr+eoriA8IGthaXJ5b3VzaHVcIDsKK+WMl+WbveS6uiA8IGhva2tva3VqaW5cIDsKK+eJouW9ueS6uiA8IHJvdXlha3VuaW5cIDsKK+a4i+a4iyA8IHNoaWJ1c2hpYnVcIDsKK+WGheelneiogCA8IG5haXNodXVnZW5cIDsKK+S4gOWutuWbo+askiA8IGlra2FkYW5yYW5cIDsKK+S7o+itsOWToeS8miA8IGRhaWdpaW5rYWlcIDsKK+WNiui6q+WDjyA8IGhhbnNoaW56b3VcIDsKK+Wkp+m7kuWkqSA8IGRhaWtva3V0ZW5cIDsKK+emj+iiiyA8IGZ1a3VidWt1cm9cIDsKK+ijnOato+S6iOeulyA8IGhvc2VpeW9zYW5cIDsKK+S4jeWIhuWJsiA8IGZ1YnVua2F0c3VcIDsKK+ilv+WMl+ilvyA8IHNlaWhva3VzZWlcIDsKK+mBjuWJsOmYsuihmyA8IGtham91Ym91ZWlcIDsKK+etkuWFiCA8IHRzdXRzdXNha2lcIDsKK+ethuWKmyA8IGhpdHN1cnlva3VcIDsKK+aAkumrquWkqSA8IGRvaGF0c3V0ZW5cIDsKK+aIkeW/gyA8IHdhZ2Frb2tvcm9cIDsKK+S6iOWCmeW6p+W4rSA8IHlvYml6YXNla2lcIDsKK+WPjemdqeWRvSA8IGhhbmtha3VtZWlcIDsKK+ihm+eUn+Wfuua6liA8IGVpc2Vpa2lqdW5cIDsKK+aWsOiBnuekviA8IHNoaW5idW5zaGFcIDsKK+S4gOapn+i7uCA8IGljaGlraWppa3VcIDsKK+S/neitt+Wbo+S9kyA8IGhvZ29kYW50YWlcIDsKK+mbhumtmueBryA8IHNodXVneW90b3VcIDsKK+mbquimi+mFkiA8IHl1a2ltaXpha2VcIDsKK+WEgOijhemmrOi7iiA8IGdpc291YmFzaGFcIDsKK+WdiuS4u+mgrSA8IGJvdXp1YXRhbWFcIDsKK+WFiOmok+eahCA8IHNlbmtlbnRla2lcIDsKK+mXh+e1puS4jiA8IHlhbWlreXV1eW9cIDsKK+aZguS6i+WVj+mhjCA8IGppamltb25kYWlcIDsKK+WCjeiBtOS6uiA8IGJvdWNob3VuaW5cIDsKK+S6i+Wun+S4iiA8IGppaml0c3Vqb3VcIDsKK+e+qeS+oOW/gyA8IGdpa3lvdXNoaW5cIDsKK+eUqOawtOWggCA8IHlvdXN1aWJvcmlcIDsKK+m7kuiLuiA8IGt1cm9pY2hpZ29cIDsKK+S7ruaZruiriyA8IGthcmlidXNoaW5cIDsKK+WNoOmgmOWcsCA8IHNlbnJ5b3VjaGlcIDsKK+WvneijheWTgSA8IHNoaW5zb3VoaW5cIDsKK+eUuuWGheS8miA8IGNob3VuYWlrYWlcIDsKK+WQjOebn+WbvSA8IGRvdW1laWtva3VcIDsKK+eZuuiCsuacnyA8IGhhdHN1aWt1a2lcIDsKK+iqk+e0hOabuCA8IHNlaXlha3VzaG9cIDsKK+eZuuWxleS4rSA8IGhhdHRlbmNodXVcIDsKK+iMtueVqueahCA8IGNoYWJhbnRla2lcIDsKK+eJueeUo+WTgSA8IHRva3VzYW5oaW5cIDsKK+Wkq+WppuWWp+WYqSA8IGZ1dWZ1Z2Vua2FcIDsKK+ijveeyiealrSA8IHNlaWZ1bmd5b3VcIDsKK+a2iOWOu+azlSA8IHNob3VreW9ob3VcIDsKK+iCm+mWgOWtpiA8IGtvdW1vbmdha3VcIDsKK+enqeemhCA8IGNoaXRzdXJva3VcIDsKK+Wkp+WPuOaVmSA8IGRhaXNoaWt5b3VcIDsKK+WmhOaDs+eXhyA8IG1vdXNvdXNob3VcIDsKK+W+oeeUqOmBlCA8IGdveW91ZGF0c3VcIDsKK+WxleekuueJqSA8IHRlbmppYnV0c3VcIDsKK+iHquauuuiAhSA8IGppc2F0c3VzaGFcIDsKK+S9nOabsuWutiA8IHNha2t5b2t1a2FcIDsKK+WFrOaVmeS8miA8IGtvdWt5b3VrYWlcIDsKK+WPiOmaoyA8IG1hdGFkb25hcmlcIDsKK+ioiOeUu+aApyA8IGtlaWtha3VzZWlcIDsKK+WIh+i/q+aEnyA8IHNlcHBha3VrYW5cIDsKK+aeouWvhumZoiA8IHN1dW1pdHN1aW5cIDsKK+Wbm+WFreWIpCA8IHNoaXJva3ViYW5cIDsKK+i/veS9k+mokyA8IHRzdWl0YWlrZW5cIDsKK+WFpeWgtOiAhSA8IG55dXVqb3VzaGFcIDsKK+WNiueXheS6uiA8IGhhbmJ5b3VuaW5cIDsKK+mHkemLjyA8IGthbmFiYXNhbWlcIDsKK+aWreWbuuaKl+itsCA8IGRhbmtva291Z2lcIDsKK+aNnOe0oumaiiA8IHNvdXNha3V0YWlcIDsKK+WPi+WlveWbvSA8IHl1dWtvdWtva3VcIDsKK+auv+S4iuS6uiA8IHRlbmpvdWJpdG9cIDsKK+eEoeawtOeJqSA8IG11c3VpYnV0c3VcIDsKK+WBpeW6t+eahCA8IGtlbmtvdXRla2lcIDsKK+aWsOS9k+aTjSA8IHNoaW50YWlzb3VcIDsKK+aHkOaJiyA8IGZ1dG9rb3JvZGVcIDsKK+epuuS4ree3miA8IGt1dWNodXVzZW5cIDsKK+eUsOiIjumBkyA8IGluYWthbWljaGlcIDsKK+azouS5g+iKsSA8IG5hbWlub2hhbmFcIDsKK+WBtuWDj+aVmSA8IGd1dXpvdWt5b3VcIDsKK+elnuipseWtpiA8IHNoaW53YWdha3VcIDsKK+ebuOe2muaoqSA8IHNvdXpva3VrZW5cIDsKK+aAp+aVmeiCsiA8IHNlaWt5b3Vpa3VcIDsKK+WJjeWTqOe3miA8IHplbnNob3VzZW5cIDsKK+S6lOi8quiBlueBqyA8IGdvcmluc2Vpa2FcIDsKK+eLrOWlj+iAhSA8IGRva3Vzb3VzaGFcIDsKK+iHquWIhuWLneaJiyA8IGppYnVua2F0dGVcIDsKK+i1pOihgOeQgyA8IHNla2tla2t5dXVcIDsKK+WkqeWPsOWulyA8IHRlbmRhaXNodXVcIDsKK+i7jealveaJiyA8IGd1bmdha3VzaHVcIDsKK+i7jemcgOaZr+awlyA8IGd1bmp1a2Vpa2lcIDsKK+i7jeiJpuW3uyA8IGd1bmthbm1ha2lcIDsKK+m7kue3kSA8IGt1cm9taWRvcmlcIDsKK+aal+ikkOiJsiA8IGFua2Fzc2hva3VcIDsKK+mAhuS9nOeUqCA8IGd5YWt1c2F5b3VcIDsKK+aMkeaIpueKtiA8IGNob3VzZW5qb3VcIDsKK+aknOmHj+e3miA8IGtlbnJ5b3VzZW5cIDsKK+e2suadk+WtkCA8IGFtaWpha3VzaGlcIDsKK+WGjeazqOaWhyA8IHNhaWNodXVtb25cIDsKK+WGheWPjei2syA8IG5haWhhbnNva3VcIDsKK+W5tOWwkeiAhSA8IG5lbnNob3VzaGFcIDsKK+aWsOeUn+S7oyA8IHNoaW5zZWlkYWlcIDsKK+S/neeuoeeJqSA8IGhva2FuYnV0c3VcIDsKK+WfuuW6lemDqOmWgCA8IGtpdGVpYnVtb25cIDsKK+WEquWLneiAhSA8IHl1dXNob3VzaGFcIDsKK+aUueiJr+eCuSA8IGthaXJ5b3V0ZW5cIDsKK+S4uOWkquWwj+WxiyA8IG1hcnV0YWdveWFcIDsKK+aFhOeDiCA8IHJpdHN1cmV0c3VcIDsKK+e1puaOkuawtCA8IGt5dXVoYWlzdWlcIDsKK+WkqeecvOmPoSA8IHRlbmdhbmt5b3VcIDsKK+S4iemAo+WLnSA8IHNhbnJlbnNob3VcIDsKK+S4jeeZuuW8viA8IGZ1aGF0c3VkYW5cIDsKK+WNiuWumOeahCA8IGhhbmthbnRla2lcIDsKK+aMr+WLleWtkCA8IHNoaW5kb3VzaGlcIDsKK+mLuOatryA8IG5va29naXJpYmFcIDsKK+a0u+eZuuWMliA8IGthcHBhdHN1a2FcIDsKK+S6iOaDs+WIqeebiiA8IHlvc291cmlla2lcIDsKK+WPjumbhuWutiA8IHNodXVzaHV1a2FcIDsKK+mFuOWMlumJhCA8IHNhbmthdGV0c3VcIDsKK+aWsOS6uueOiyA8IHNoaW5qaW4nJ291XCA7Civlu7bml6XmlbAgPCBub2Jlbmlzc3V1XCA7CivlpYnnjK7poIwgPCBob3VrZW5zaG91XCA7CivosrjlupfoiJcgPCBrYXNoaXRlbnBvXCA7CivkupTpn7Ppn7Ppmo4gPCBnb29uJydvbmthaVwgOwor5LqM5Lq65YWxIDwgZnV0YXJpdG9tb1wgOwor5Y+O5paC5YmkIDwgc2h1dXJlbnphaVwgOwor5Zu96Zqb5rOVIDwga29rdXNhaWhvdVwgOwor6auY5a2m5bm0IDwga291Z2FrdW5lblwgOwor5qC454G95a6zIDwga2FrdXNhaWdhaVwgOwor5Ly96I2J5a2QIDwgdG9naXpvdXNoaVwgOwor54W95oOF55qEIDwgc2Vuam91dGVraVwgOwor6KqN6Ki85a6YIDwgbmluc2hvdWthblwgOwor6aSK6JqV5qWtIDwgeW91c2FuZ3lvdVwgOwor54Gr5bGx6ISIIDwga2F6YW5teWFrdVwgOwor6I+c56iu5q67IDwgbmF0YW5lZ2FyYVwgOwor6YG/5pqR5a6iIDwgaGlzaG9reWFrdVwgOwor54Gr5rCX5Y6z56aBIDwga2FraWdlbmtpblwgOwor5pu46KmV5qyEIDwgc2hvaHlvdXJhblwgOwor5YWl5aC056iOIDwgbnl1dWpvdXplaVwgOwor5rqM5YmMIDwgaGF0c3VyYXRzdVwgOwor6Kmm5L2c6LuKIDwgc2hpc2FrdXNoYVwgOwor542E5Lit6KiYIDwgZ29rdWNodXVraVwgOwor5Lmz5YWE5byfIDwgY2hpa3lvdWRhaVwgOwor5Y2B5a2X5p625YOPIDwganV1amlrYXpvdVwgOwor5LqM5LiD5pelIDwgZnV0YW5hbm9rYVwgOwor5q2j5pWZ5LyaIDwgc2Vpa3lvdWthaVwgOwor5YWI55Sf5pa5IDwgc2Vuc2VpZ2F0YVwgOwor6I2J6Zuy6ZuAIDwga3VzYWhpYmFyaVwgOwor5L6N5b6T6IG3IDwgamlqdXVzaG9rdVwgOwor5Yem55CG6YGO56iLIDwgc2hvcmlrYXRlaVwgOwor5Zyw5b2i5a2mIDwgY2hpa2VpZ2FrdVwgOwor5LiA5a6a5LiN5aSJIDwgaXR0ZWlmdWhlblwgOwor5pyI5LiL576O5Lq6IDwgZ2Vra2FiaWppblwgOwor5LiA55u057eaIDwgaXRjaG9rdXNlblwgOwor5aSp55y86YCaIDwgdGVuZ2FudHN1dVwgOwor5Luy6LK35Lq6IDwgbmFrYWdhaW5pblwgOwor6Jas55CG5a2mIDwgeWFrdXJpZ2FrdVwgOwor54Cs5oi45YaF5rW3IDwgc2V0b25haWthaVwgOwor6ICB5pS/5rK75a62IDwgcm91c2VpamlrYVwgOwor5Zu95paH5bCCIDwga29rdWJ1bnNlblwgOwor5LiA5bm055SfIDwgaWNoaW5lbnNlaVwgOwor5a6a5byP5YyWIDwgdGVpc2hpa2lrYVwgOwor5ZWG5qWt5YyWIDwgc2hvdWd5b3VrYVwgOwor5LiA6Lyq6LuKIDwgaWNoaXJpbnNoYVwgOwor5Yqf5Yip5Li7576pIDwga291cmlzaHVnaVwgOwor5ruy54Kt6Yu8IDwgc2hpbnRhbmtvdVwgOwor6LuN55So54qsIDwgZ3VuJyd5b3VrZW5cIDsKK+WFreinkuWggiA8IHJva2tha3Vkb3VcIDsKK+W6iuaaluaIvyA8IHl1a2FkYW5ib3VcIDsKK+ethuS4jeeyviA8IGZ1ZGVidXNob3VcIDsKK+a1t+eHlSA8IHVtaXRzdWJhbWVcIDsKK+WFrOiovOS6uiA8IGtvdXNob3VuaW5cIDsKK+imj+WItue3qeWSjCA8IGtpc2Vpa2Fud2FcIDsKK+eJp+iNieWcsCA8IGJva3Vzb3VjaGlcIDsKK+WxnuaAp+WApCA8IHpva3VzZWljaGlcIDsKK+ino+avkuiWrCA8IGdlZG9rdXlha3VcIDsKK+a6gOacn+aXpSA8IG1hbmtpaml0c3VcIDsKK+WQjeS9nOmBuCA8IG1laXNha3VzZW5cIDsKK+WmguaYr+aIkeiBniA8IG55b3plZ2Ftb25cIDsKK+aYjuayu+aZguS7oyA8IG1laWppamlkYWlcIDsKK+WVhueUqOaWhyA8IHNob3V5b3VidW5cIDsKK+WQjOWMluS9nOeUqCA8IGRvdWthc2F5b3VcIDsKK+WbveiqnuWtpiA8IGtva3Vnb2dha3VcIDsKK+WPr+WPiueahCA8IGtha3l1dXRla2lcIDsKK+WIpemAlOmgkOmHkSA8IGJldHRveW9raW5cIDsKK+mHkeiiiyA8IGthbmFidWt1cm9cIDsKK+WGmeecn+ePrSA8IHNoYXNoaW5oYW5cIDsKK+ayueiZqyA8IGFidXJhbXVzaGlcIDsKK+S4gOWFg+irliA8IGljaGlnZW5yb25cIDsKK+S4i+eoruagueaApyA8IGdlc3Vrb25qb3VcIDsKK+iqv+WJpOW4qyA8IGNob3V6YWlzaGlcIDsKK+WNmOS4ieW9oiA8IHRhbnNhbmdhdGFcIDsKK+eUsuWGkeW4qyA8IGthdGNodXVzaGlcIDsKK+WFiOS7u+iAhSA8IHNlbicnbmluc2hhXCA7Civmm7Lnt5rnvo4gPCBreW9rdXNlbmJpXCA7CivpioDni5AgPCBnaW5naXRzdW5lXCA7CivljZfpoqggPCBtaW5hbWlrYXplXCA7CivlhazntITmlbAgPCBrb3V5YWt1c3V1XCA7CivnhrHni4LogIUgPCBuZWtreW91c2hhXCA7CivmsLTntIvlraYgPCBzdWltb25nYWt1XCA7CivkurrnqK7lraYgPCBqaW5zaHVnYWt1XCA7Civmrovlv43mgKcgPCB6YW4nJ25pbnNlaVwgOwor5o+05Yqp5Lqk6ZqbIDwgZW5qb2tvdXNhaVwgOwor6JmQ5q66IDwgZ3lha3VzYXRzdVwgOwor55u46Zai55qEIDwgc291a2FudGVraVwgOwor5YaZ55yf54mIIDwgc2hhc2hpbmJhblwgOwor55Sf5oGv5ZywIDwgc2Vpc29rdWNoaVwgOwor5Zu95Lya6K2w5ZOhIDwga29ra2FpZ2lpblwgOwor5Zyf5Zyw5Yip55SoIDwgdG9jaGlyaXlvdVwgOwor55+l5oCn55qEIDwgY2hpc2VpdGVraVwgOwor5qCE5p6v55ub6KGwIDwgZWlrb3NlaXN1aVwgOwor5pyq55m66YGUIDwgbWloYXR0YXRzdVwgOwor6ZaL5bmV5oimIDwga2FpbWFrdXNlblwgOwor55u45LqS5L2c55SoIDwgc291Z29zYXlvdVwgOwor5rC06Y+hIDwgbWl6dWthZ2FtaVwgOwor6Iie5Y+w6KGj6KOFIDwgYnV0YWlpc2hvdVwgOwor5b6M6YWN5qCqIDwga291aGFpa2FidVwgOwor5YGc5rOK5ZywIDwgdGVpaGFrdWNoaVwgOwor57255oKj546HIDwgcmlrYW5yaXRzdVwgOwor6YCy6KGM5b2iIDwgc2hpbmtvdWtlaVwgOwor6YGT5b6z5LiKIDwgZG91dG9rdWpvdVwgOwor56S+5Lya55qEIDwgc2hha2FpdGVraVwgOwor6ZyH5rqQ5ZywIDwgc2hpbmdlbmNoaVwgOwor5pif6Zuy6KqsIDwgc2VpdW5zZXRzdVwgOwor5rKz5Y6f6ICFIDwga2F3YXJhbW9ub1wgOwor5rq65q276ICFIDwgZGVraXNoaXNoYVwgOwor5rW35ZWG5rOVIDwga2Fpc2hvdWhvdVwgOwor55CG6auq5bqXIDwgcmloYXRzdXRlblwgOwor6Z2p5ZG96LuNIDwga2FrdW1laWd1blwgOwor5rS754mpIDwga2F0c3VidXRzdVwgOwor5Y216YWSIDwgdGFtYWdvemFrZVwgOwor5ZCI6K2w5Yi25bqmIDwgZ291Z2lzZWlkb1wgOwor5pu46KqM5a2mIDwgc2hvc2hpZ2FrdVwgOwor5LqM6YW45YyW56Gr6buEIDwgbmlzYW5rYWlvdVwgOwor55CG6auq5birIDwgcmloYXRzdXNoaVwgOwor5LiW5L+X5b+DIDwgc2V6b2t1c2hpblwgOwor6YGp5Lu76ICFIDwgdGVraW5pbnNoYVwgOwor5aSJ5Zyn5omAIDwgaGVuJydhdHN1am9cIDsKK+a8ouawkeaXjyA8IGthbm1pbnpva3VcIDsKK+mBqeeUqOaApyA8IHRla2l5b3VzZWlcIDsKK+mDvemzpSA8IG1peWFrb2RvcmlcIDsKK+axuuijgiA8IGtldHN1cmV0c3VcIDsKK+iWrOeusSA8IGt1c3VyaWJha29cIDsKK+m6pueVkSA8IG11Z2liYXRha2VcIDsKK+mbjOmbhOeVsOagqiA8IHNoaXl1dWlzaHVcIDsKK+ebtOirh+WIpCA8IGppa2FkYW5wYW5cIDsKK+iDjOS/oeiAhSA8IGhhaXNoaW5zaGFcIDsKK+ethuiAleaWmSA8IGhpa2tvdXJ5b3VcIDsKK+S8neazleiCjCA8IGRlbmJvdWhhZGFcIDsKK+e5iuavm+iZqyA8IHNlbm1vdWNodXVcIDsKK+ertuWjsuS6uiA8IGt5b3ViYWluaW5cIDsKK+S9nOipnuiAhSA8IHNha3VzaGlzaGFcIDsKK+m7kua8hiA8IGtva3VzaGl0c3VcIDsKK+Wuieatu+ihkyA8IGFuc2hpanV0c3VcIDsKK+WWieS7jyA8IG5vZG9ib3Rva2VcIDsKK+WPjeWwhOiqpOW3riA8IGhhbnNoYWdvc2FcIDsKK+Whqee0oOmFuOWhqSA8IGVuc29zYW4nJ2VuXCA7CivmqZ/li5XlipsgPCBraWRvdXJ5b2t1XCA7Civntbblr77oqqTlt64gPCB6ZXR0YWlnb3NhXCA7CivmnIDntYLlm54gPCBzYWlzaHV1a2FpXCA7CivkuLvopoHlm70gPCBzaHV5b3Vrb2t1XCA7Civlj43pmb3lrZAgPCBoYW4nJ3lvdXNoaVwgOwor5YaF5ZCR55qEIDwgbmFpa291dGVraVwgOwor6Ziy5r2u5aCkIDwgYm91Y2hvdXRlaVwgOwor54mp5pCN5LqL5pWFIDwgYnVzc29uamlrb1wgOwor5ray5pm255ukIDwgZWtpc2hvdWJhblwgOwor56We57WM5oimIDwgc2hpbmtlaXNlblwgOwor6buE5YWr5LiIIDwga2loYWNoaWpvdVwgOwor6KGo5LqM6ZqOIDwgb21vdGVuaWthaVwgOwor6Kmm6aiT55qEIDwgc2hpa2VudGVraVwgOwor5bGg5q665aC0IDwgdG9zYXRzdWpvdVwgOwor5peF5pSv5bqmIDwgdGFiaWppdGFrdVwgOwor5YWo6YOo5L+d6Zm6IDwgemVuYnVob2tlblwgOwor6YeR6IG+IDwga2FuYXRzdW5ib1wgOwor5pu457Ch6ZuGIDwgc2hva2Fuc2h1dVwgOwor5Za25p6X5bGAIDwgZWlyaW5reW9rdVwgOwor54Sh6YeN5YqbIDwgbXVqdXVyeW9rdVwgOwor6YG65aSx6ICFIDwgaXNoaXRzdXNoYVwgOwor5oKq5ber5bGx5oivIDwgd2FydWZ1emFrZVwgOwor5pW05b2i5aSW56eRIDwgc2Vpa2VpZ2VrYVwgOwor55Sf5b6X5qipIDwgc2VpdG9rdWtlblwgOwor57Gz6aiS5YuVIDwga29tZXNvdWRvdVwgOwor5paw5L2T5Yi2IDwgc2hpbnRhaXNlaVwgOwor6KGA5riF5a2mIDwga2Vzc2VpZ2FrdVwgOwor6YOo6ZW36ZayIDwgYnVjaG91ZXRzdVwgOwor5aSc5oOz5puyIDwgeWFzb3VreW9rdVwgOwor5q2m5a625pS/5qipIDwgYnVrZXNlaWtlblwgOwor5qaC5b+155qEIDwgZ2FpbmVudGVraVwgOwor56m65Lit5qipIDwga3V1Y2h1dWtlblwgOwor5LqM6aCF5YiG5biDIDwgbmlrb3VidW5wdVwgOwor5ZGo6YGK5Yi4IDwgc2h1dXl1dWtlblwgOwor5Ym15L2c6ICFIDwgc291c2FrdXNoYVwgOwor5ZCr57OW6YePIDwgZ2FudG91cnlvdVwgOwor5YC557SE5a62IDwga2VuJyd5YWt1a2FcIDsKK+WHuuW8teaJgCA8IHNodXRjaG91am9cIDsKK+aYoOeUu+S8muekviA8IGVpZ2FnYWlzaGFcIDsKK+euoeeQhuiBtyA8IGthbnJpc2hva3VcIDsKK+mJhOegsueZvuWQiCA8IHRlcHBvdXl1cmlcIDsKK+aBkOaAlueXhyA8IGt5b3VmdXNob3VcIDsKK+aUv+eVpeWutiA8IHNlaXJ5YWt1a2FcIDsKK+WFrOihhue2siA8IGtvdXNodXVtb3VcIDsKK+WFpeWgtOaoqSA8IG55dXVqb3VrZW5cIDsKK+WQjeiqieS8muWToSA8IG1laXlva2FpaW5cIDsKK+edo+aIpumaiiA8IHRva3VzZW50YWlcIDsKK+WNg+e+vem2tCA8IHNlbmJhZHp1cnVcIDsKK+S9j+WuheWcsCA8IGp1dXRha3VjaGlcIDsKK+W/nOWLn+eUqOe0mSA8IG91Ym95b3VzaGlcIDsKK+WGheaDkeaYnyA8IG5haXdha3VzZWlcIDsKK+ecn+ato+ebtCA8IG1hc2hvdWppa2lcIDsKK+Wto+evgOmiqCA8IGtpc2V0c3VmdXVcIDsKK+S9juWtpuW5tCA8IHRlaWdha3VuZW5cIDsKK+WtpuexjeewvyA8IGdha3VzZWtpYm9cIDsKK+eri+S9k+mPoSA8IHJpdHRhaWt5b3VcIDsKK+S6jOmgheW8jyA8IG5pa291c2hpa2lcIDsKK+eZvuaXpee0hSA8IHNhcnVzdWJlcmlcIDsKK+i7jeeVpeWutiA8IGd1bnJ5YWt1a2FcIDsKK+iHqua1hOS9nOeUqCA8IGppam91c2F5b3VcIDsKK+awkeitmumbhiA8IG1pbmRhbnNodXVcIDsKK+aFsOWVj+iiiyA8IGltb25idWt1cm9cIDsKK+a2iOefs+eBsCA8IHNob3VzZWtrYWlcIDsKK+WNmOS4gOWMliA8IHRhbicnaXRzdWthXCA7CivlsILnlKjou4ogPCBzZW4nJ3lvdXNoYVwgOwor5LuV6Iie54mpIDwgc2hpbWFpbW9ub1wgOwor5aSn55m96bOlIDwgb29oYWt1Y2hvdVwgOwor57ep5b6Q5puyIDwga2Fuam9reW9rdVwgOwor5YiA5Ymj5ZWGIDwgdG91a2Vuc2hvdVwgOwor5Ly96Iqd5bGFIDwgdG9naXNoaWJhaVwgOwor5aSW6LKo6aCQ6YeRIDwgZ2Fpa2F5b2tpblwgOwor5rCX6LGh5bqBIDwga2lzaG91Y2hvdVwgOwor5LiA5YaG546JIDwgaWNoaWVuZGFtYVwgOwor5oGQ5oCW5pig55S7IDwga3lvdWZ1ZWlnYVwgOwor6Kqy56iO5o6n6ZmkIDwga2F6ZWlrb3Vqb1wgOwor5beh5rSL6ImmIDwganVuJyd5b3VrYW5cIDsKK+W/hemcgOWTgSA8IGhpdHN1anVoaW5cIDsKK+S4jeS/oeeUqCA8IGZ1c2hpbicneW91XCA7CivmuKzlnLDnt5ogPCBzb2t1Y2hpc2VuXCA7Civpq5jmnKjlsaQgPCBrb3Vib2t1c291XCA7CivoqLHlrrnoqqTlt64gPCBreW95b3Vnb3NhXCA7CivooajlsaTmgKcgPCBoeW91c291c2VpXCA7CivmsLTolqwgPCBtaXp1Z3VzdXJpXCA7Civlh7rluK3nsL8gPCBzaHVzc2VraWJvXCA7CivopqrnjovlpoMgPCBzaGluJydub3VoaVwgOwor6YWN57Wm57O7IDwgaGFpa3l1dWtlaVwgOwor5aSJ5Zyn5ZmoIDwgaGVuJydhdHN1a2lcIDsKK+Wun+S9k+mPoSA8IGppdHRhaWt5b3VcIDsKK+WEquWLneadryA8IHl1dXNob3VoYWlcIDsKK+mBqeS4jemBqSA8IHRla2lmdXRla2lcIDsKK+S4jeWumuacn+WIkSA8IGZ1dGVpa2lrZWlcIDsKK+ekvuS6pOeahCA8IHNoYWtvdXRla2lcIDsKK+mFjee1puexsyA8IGhhaWt5dXVtYWlcIDsKK+abuOiomOWxgCA8IHNob2tpa3lva3VcIDsKK+i0iOWPjuizhCA8IHpvdXNodXV3YWlcIDsKK+WHuOWHuee0mSA8IHRvdHN1b3VzaGlcIDsKK+ijgeWIpOS6uiA8IHNhaWJhbicnbmluXCA7Civku4rpgZPlv4MgPCBpbWFkb3VzaGluXCA7CivmmI7msrvntq3mlrAgPCBtZWlqaWlzaGluXCA7CivntLnku4vogIUgPCBzaG91a2Fpc2hhXCA7CivoqIDoqp7mqZ/og70gPCBnZW5nb2tpbm91XCA7Civkv53nqI7lgInluqsgPCBob3plaXNvdWtvXCA7CivmsJfosaHlraYgPCBraXNob3VnYWt1XCA7Civnm7jntprkurogPCBzb3V6b2t1bmluXCA7CivooqvlkYrluK0gPCBoaWtva3VzZWtpXCA7CivkubPohILogqogPCBueXV1c2hpYm91XCA7CivovrLniaflnLAgPCBub3Vib2t1Y2hpXCA7CivljLvnmYLmqZ/plqIgPCBpcnlvdWtpa2FuXCA7CivmgqrmiK/lrZAgPCBpdGF6dXJha2tvXCA7CivlsITnmoTloLQgPCBzaGF0ZWtpam91XCA7Civms4nnhrEgPCBpenVtaW5ldHN1XCA7Civms5XlrabogIUgPCBob3VnYWt1c2hhXCA7Civlhajlm73ntJkgPCB6ZW5rb2t1c2hpXCA7CivmlZHpm6PoiLkgPCBreXV1bmFuc2VuXCA7Civph5Hono3lgrUgPCBraW4nJ3l1dXNhaVwgOwor55+z5LqV6IGw5LqSIDwgaXNoaWlzb3Vnb1wgOwor6LuN5LqL5bCB6Y6WIDwgZ3VuamlmdXVzYVwgOwor5LiK6LyJ5ZynIDwgam91c2FpYXRzdVwgOwor5Y+j5Zan5ZipIDwga3VjaGlnZW5rYVwgOwor5oiQ5Lq655eFIDwgc2VpamluYnlvdVwgOwor6Iqx5rC05pyoIDwgaGFuYW1penVraVwgOwor6YCg5ZyS6KGTIDwgem91ZW5qdXRzdVwgOwor5Lmz6IW654KOIDwgbnl1dXNlbicnZW5cIDsKK+S9jemajuWLsuetiSA8IGlrYWlrdW50b3VcIDsKK+a1tOWupCA8IHlva3VzaGl0c3VcIDsKK+a1t+a1geeTtiA8IGthaXJ5dXViaW5cIDsKK+WIhuWFieWtpiA8IGJ1bmtvdWdha3VcIDsKK+awkeS4u+eahCA8IG1pbnNodXRla2lcIDsKK+eyvueZveezliA8IHNlaWhha3V0b3VcIDsKK+eEoeapn+izqiA8IG11a2lzaGl0c3VcIDsKK+aEm+WomCA8IG1hbmFtdXN1bWVcIDsKK+mAmuipseaWmSA8IHRzdXV3YXJ5b3VcIDsKK+iAkOeBq+eFieeTpiA8IHRhaWthcmVuZ2FcIDsKK+aUueiJr+WTgSA8IGthaXJ5b3VoaW5cIDsKK+eyvueZveexsyA8IHNlaWhha3VtYWlcIDsKK+W/q+WJiumLvCA8IGthaXNha3Vrb3VcIDsKK+aXpeWQkeawtCA8IGhpbmF0YW1penVcIDsKK+WPpOeLuCA8IGZ1cnVkYW51a2lcIDsKK+mZquWvqeWToSA8IGJhaXNoaW4nJ2luXCA7Civlj6Tku4rnhKHpoZ4gPCBrb2tvbm11cnVpXCA7CivluKvlm6PplbcgPCBzaGlkYW5jaG91XCA7CivntYTogbfkvZMgPCBzb3Nob2t1dGFpXCA7Civmnpzlrp/phZIgPCBrYWppdHN1c2h1XCA7Civlqb/ppIrlrZAgPCBtdWtveW91c2hpXCA7CivlhpnnnJ/luKsgPCBzaGFzaGluc2hpXCA7Civpm7vms6LnrqHnkIYgPCBkZW5wYWthbnJpXCA7CivmsrPng48gPCBrYXdhZ2FyYXN1XCA7CivkuIvmpJzmn7sgPCBzaGl0YWtlbnNhXCA7CivlhKrli53miKYgPCB5dXVzaG91c2VuXCA7Civnp4HlrpsgPCB3YXRhc2hpYXRlXCA7CivpgKPntprkvZMgPCByZW56b2t1dGFpXCA7CivlpKnliJHnl4UgPCB0ZW5rZWlieW91XCA7CivmsJHkuovkuovku7YgPCBtaW5qaWppa2VuXCA7CivljYrnv4Xnm64gPCBoYW5zaGltb2t1XCA7CivojLbnlarliocgPCBjaGFiYW5nZWtpXCA7Civoh6rnhLbkv53orbcgPCBzaGl6ZW5ob2dvXCA7CivlhpnnnJ/lsYsgPCBzaGFzaGluJyd5YVwgOwor55S75YOP5Yem55CGIDwgZ2F6b3VzaG9yaVwgOwor6Imv5bCO5L2TIDwgcnlvdWRvdXRhaVwgOwor5pWR5LiW5Li7IDwga3l1dXNlaXNodVwgOwor5pyq552A5omLIDwgbWljaGFrdXNodVwgOwor5L2c6Kmp5rOVIDwgc2FrdXNoaWhvdVwgOwor55yf6a2a6bC5IDwgbWFuYWdhdHN1b1wgOwor5Ye65by15ZOhIDwgc2h1dGNob3VpblwgOwor5Lq65Yqb6LuKIDwgamlucmlraXNoYVwgOwor56iu56iu6ZuR5aSaIDwgc2h1anV6YXR0YVwgOwor5b+F572wIDwgaGl0c3ViYXRzdVwgOwor56Wd5pelIDwgc2h1a3VqaXRzdVwgOwor5Zu96Zqb5Lq6IDwga29rdXNhaWppblwgOwor5ris6ZW35qmfIDwgc29rdWNob3VraVwgOwor5bCP5Li76KazIDwgc2hvdXNodWthblwgOwor5pig55S75L+z5YSqIDwgZWlnYWhhaXl1dVwgOwor5a6f6Le155qEIDwgamlzc2VudGVraVwgOwor6YCj57WQ5ZmoIDwgcmVua2V0c3VraVwgOwor6ICQ5LmF5oCnIDwgdGFpa3l1dXNlaVwgOwor5p2J5Lim5pyoIDwgc3VnaW5hbWlraVwgOwor57WC5LqG5b6MIDwgc2h1dXJ5b3Vnb1wgOwor5aSp6YGT5qeYIDwgdGVudG91c2FtYVwgOwor5ZCK5qmLIDwgdHN1cmliYXNoaVwgOwor5pKu5b2x6ZqKIDwgc2F0c3VlaXRhaVwgOwor6Iqx6I+W6JKyIDwgaGFuYXNob3VidVwgOwor5qSc55y86Y+hIDwga2VuZ2Fua3lvdVwgOwor5b2i6KixIDwga2F0YWJha2FyaVwgOwor6YW45YyW54mpIDwgc2Fua2FidXRzdVwgOwor5rOi5p6VIDwgbmFtaW1ha3VyYVwgOwor5bCP5L2c5paZIDwga29zYWt1cnlvdVwgOwor5bq25rCR55qEIDwgc2hvbWludGVraVwgOwor6Lyq6Iie5puyIDwgcmluYnVreW9rdVwgOwor56OB5rCX6Yyy6Z+zIDwgamlraXJva3VvblwgOwor5LiN5Y2U5ZKM6Z+zIDwgZnVreW91d2FvblwgOwor5YeN57WQ5ZmoIDwgdG91a2V0c3VraVwgOwor5aSP6Jyc5p+RIDwgbmF0c3VtaWthblwgOwor5pys5L2N6KiY5Y+3IDwgaG9uJydpa2lnb3VcIDsKK+etieaWueeahCA8IHRvdWhvdXRla2lcIDsKK+ihm+eUn+euoeeQhiA8IGVpc2Vpa2FucmlcIDsKK+Wyqea4heawtCA8IGl3YXNoaW1penVcIDsKK+eri+ahiOiAhSA8IHJpdHN1YW5zaGFcIDsKK+ebuOS6kuS4u+e+qSA8IHNvdWdvc2h1Z2lcIDsKK+iRl+i/sOWutiA8IGNob2p1dHN1a2FcIDsKK+iEs+aiheavkiA8IG5vdWJhaWRva3VcIDsKK+i7jeeUqOWTgSA8IGd1bicneW91aGluXCA7Civlv5zli5/os4fph5EgPCBvdWJvc2hpa2luXCA7Civlg5Xku7LplpMgPCBib2t1bmFrYW1hXCA7Civpm6PoppbogbQgPCBuYW5zaGljaG91XCA7Civlvqnlj6TkuLvnvqkgPCBmdWtrb3NodWdpXCA7CivlvrPnvqnlv4MgPCB0b2t1Z2lzaGluXCA7Civov5HmtbfniakgPCBraW5rYWltb25vXCA7CivmnbHmtIvpgJogPCB0b3V5b3V0c3V1XCA7CivmrKHkupznoavphbggPCBqaWFyeXV1c2FuXCA7CivlubPlronmmYLku6MgPCBoZWlhbmppZGFpXCA7CivpiYTnoLLnjokgPCB0ZXBwb3VkYW1hXCA7CivmsLTnp6QgPCBtaXp1YmFrYXJpXCA7CivmtYHlpLEgPCByeXV1c2hpdHN1XCA7CivkvqHmoLzooaggPCBrYWtha3VoeW91XCA7Civoqr/lgZzogIUgPCBjaG91dGVpc2hhXCA7CivmrbTlj7LoprMgPCByZWtpc2hpa2FuXCA7Civlu7rnr4nosrsgPCBrZW5jaGlrdWhpXCA7CivpiYvlsZEgPCBrYW4nJ25ha3V6dVwgOwor5Lq65oOF5YqHIDwgbmluam91Z2VraVwgOwor6I+x6aSFIDwgaGlzaGltb2NoaVwgOwor5aSa56We5pWZIDwgdGFzaGlua3lvdVwgOwor5oOF5aCx5qmf5ZmoIDwgam91aG91a2lraVwgOwor5YmN5ZOo5ZywIDwgemVuc2hvdWNoaVwgOwor5LiJ5L2N5LiA5L2TIDwgc2FubWlpdHRhaVwgOwor5pS/5YuZ5qyh5a6YIDwgc2VpbXVqaWthblwgOwor5ZCJ5pelIDwga2ljaGluaWNoaVwgOwor5LiA5bqm5LiIIDwgaWNoaWRvZGFrZVwgOwor6Jas5oyHIDwga3VzdXJpeXViaVwgOwor6YCj57Wh5LyaIDwgcmVucmFrdWthaVwgOwor5LiA6Iis6IG3IDwgaXBwYW5zaG9rdVwgOwor6ZuM6ZuE55Ww5L2TIDwgc2hpeXV1aXRhaVwgOwor56S+5Lya5a2mIDwgc2hha2FpZ2FrdVwgOwor5YG15a+f5qmfIDwgdGVpc2F0c3VraVwgOwor5a+d5Y+w6LuKIDwgc2hpbmRhaXNoYVwgOwor5bm05Luj54mpIDwgbmVuZGFpbW9ub1wgOwor5Lih5pu/5Lq6IDwgcnlvdWdhZW5pblwgOwor5ZCE5pa5IDwgb25vb25vZ2F0YVwgOwor5q2m5pat5pS/5rK7IDwgYnVkYW5zZWlqaVwgOwor5ZCI5qC86ICFIDwgZ291a2FrdXNoYVwgOwor6YeR5qeMIDwga2FuYWR6dWNoaVwgOwor5bCC55So57eaIDwgc2VuJyd5b3VzZW5cIDsKK+W4r+Wfn+W5hSA8IHRhaWlraWhhYmFcIDsKK+WIneS4gOW/tSA8IHNob2ljaGluZW5cIDsKK+e0ueS7i+eKtiA8IHNob3VrYWlqb3VcIDsKK+a2iOavkuWZqCA8IHNob3Vkb2t1a2lcIDsKK+aXpumCo+ihhiA8IGRhbicnbmFzaHV1XCA7CivloIXkv6HnpLwgPCBrZW5zaGlucmVpXCA7CivlrpjlhazluoEgPCBrYW5rb3VjaG91XCA7CivogbTogZ7lg6cgPCBjaG91bW9uc291XCA7CivlpKrlubPmpb0gPCB0YWloZWlyYWt1XCA7CivkuKHlpKnnp6QgPCByeW91dGVuYmluXCA7CivlrZTpm4Dnn7MgPCBrdWpha3VzZWtpXCA7CivlibXkvZzmqKkgPCBzb3VzYWt1a2VuXCA7CivoibLkuovluKsgPCBpcm9nb3Rvc2hpXCA7CivphbjljJbngq3ntKAgPCBzYW5rYXRhbnNvXCA7CivmsLTlvannlLvlrrYgPCBzdWlzYWlnYWthXCA7CivpmY3prZTooZMgPCBrb3VtYWp1dHN1XCA7CivlsJHos4fmnKwgPCBzaG91c2hpaG9uXCA7Civos4fnlKPmoKogPCBzaGlzYW5rYWJ1XCA7Civln7rnpI7ku6PorJ0gPCBraXNvdGFpc2hhXCA7CivmgZDmgJblv4MgPCBreW91ZnVzaGluXCA7Civlrp/pqJPnmoQgPCBqaWtrZW50ZWtpXCA7Civkvb/lvpLpgZQgPCBzaGl0b3RhY2hpXCA7CivliY3poK0gPCBtYWVnYXNoaXJhXCA7CivlronphZLloLQgPCB5YXN1c2FrYWJhXCA7CivogbTogZ7kvJogPCBjaG91bW9ua2FpXCA7CivogrLlhZDpo58gPCBpa3VqaXNob2t1XCA7CivnlLfkvr/miYAgPCBvdG9rb2JlbmpvXCA7Civpppblrp/mpJwgPCBrdWJpamlra2VuXCA7CivntLDog57ohpwgPCBzYWlib3VtYWt1XCA7CivlkI3kurrogowgPCBtZWlqaW5oYWRhXCA7CivlsI/lrabmoKEgPCBzaG91Z2Fra291XCA7CivkuIDmna/mqZ/lq4wgPCBpcHBhaWtpZ2VuXCA7Civml6fol6nkuLsgPCBreXV1aGFuc2h1XCA7CivmsJHmnInmnpcgPCBtaW4nJ3l1dXJpblwgOwor6LWk6YmE6YmxIDwgc2VraXRla2tvdVwgOwor5pys6I2J5a2mIDwgaG9uem91Z2FrdVwgOwor5L+u5q2j6ICFIDwgc2h1dXNlaXNoYVwgOwor6aKo6YCf6KiIIDwgZnV1c29rdWtlaVwgOwor6YGT6Lev6Ly46YCBIDwgZG91cm95dXNvdVwgOwor5r2c5Zyo55qEIDwgc2VuemFpdGVraVwgOwor5aSJ5ouN5a2QIDwgaGVuYnlvdXNoaVwgOwor5pen5oCd5oOzIDwga3l1dXNoaXNvdVwgOwor5Lqc54ax5biv5p6XIDwgYW5ldHRhaXJpblwgOwor6ZuR5pyo5p6XIDwgem91Ym9rdXJpblwgOwor5oim6ZeY55qEIDwgc2VudG91dGVraVwgOwor6Z2S5oGv5ZCQ5oGvIDwgYW9pa2l0b2lraVwgOwor57WC6Zu76LuKIDwgc2h1dWRlbnNoYVwgOwor6IOM576O6a+oIDwgc2VtaWt1amlyYVwgOwor5oWH5oeD54Sh56S8IDwgaW5naW5idXJlaVwgOwor56m05p2T5a2QIDwgYW5hamFrdXNoaVwgOwor5LiA5bm05LitIDwgaWNoaW5lbmp1dVwgOwor6YmE56Cy5rC0IDwgdGVwcG91bWl6dVwgOwor5YWo5Zu95rCRIDwgemVua29rdW1pblwgOwor5Lq65Y+j5a2mIDwgamlua291Z2FrdVwgOwor5rWB5Ye6IDwgcnl1dXNodXRzdVwgOwor5rS75YqbIDwga2F0c3VyeW9rdVwgOwor55u05ruR6ZmNIDwgY2hva2tha2tvdVwgOwor57Oe55yf6Z2i55uuIDwga3Vzb21hamltZVwgOwor5LiK55Sz5pu4IDwgam91c2hpbnNob1wgOwor5Y2154S8IDwgdGFtYWdveWFraVwgOwor6Yed5Y2D5pysIDwgaGFyaXNlbmJvblwgOwor6Ieq5Li76KaP5Yi2IDwgamlzaHVraXNlaVwgOwor5LiJ5qWt5ZywIDwgc2FuZ3lvdWNoaVwgOwor5Lim5aSn5oq1IDwgbmFtaXRhaXRlaVwgOwor55m96Zuy55+zIDwgaGFrdXVuc2VraVwgOwor5rC054WZIDwgbWl6dWtlbXVyaVwgOwor5qyg5bit6ICFIDwga2Vzc2VraXNoYVwgOwor5byV5b2T6YeRIDwgaGlraWF0ZWtpblwgOwor6KOF6aO+6Z+zIDwgc291c2hva3VvblwgOwor6KaW6IG06ICFIDwgc2hpY2hvdXNoYVwgOwor5Lmz6Iet5YWQIDwgbnl1dXNodXVqaVwgOwor5omL5rKi5pysIDwgc2h1dGFrdWJvblwgOwor6K2m5oiS5b+DIDwga2Vpa2Fpc2hpblwgOwor5byl55Sf5pmC5LujIDwgeWF5b2lqaWRhaVwgOwor5Lit5Zu96KqeIDwgY2h1dWdva3Vnb1wgOwor5YWl5omL6ZujIDwgbnl1dXNodW5hblwgOwor6Zu75rWB6KiIIDwgZGVucnl1dWtlaVwgOwor6YGT6YGTIDwgbWljaGltaWNoaVwgOwor5LqI5YKZ5Lya6KuHIDwgeW9iaWthaWRhblwgOwor5ZCb5Li75Zu9IDwga3Vuc2h1a29rdVwgOwor6Z+z5qW95a2mIDwgb25nYWt1Z2FrdVwgOwor6Yyv5a2X55eHIDwgc2FrdWppc2hvdVwgOwor562J5L2N5qeL6YCgIDwgdG91aWtvdXpvdVwgOwor5aSn55uk55+zIDwgZGFpYmFuamFrdVwgOwor5YiG5a2Q6YePIDwgYnVuc2hpcnlvdVwgOwor5LiA55Wq6Iy2IDwgaWNoaWJhbmNoYVwgOwor5LuW5rWB6Kmm5ZCIIDwgdGFyeXV1amlhaVwgOwor5a6J5a6a5pON5L2cIDwgYW50ZWlzb3VzYVwgOwor54Sh5YSf6KGM54K6IDwgbXVzaG91a291aVwgOwor6YGF5Yi76ICFIDwgY2hpa29rdXNoYVwgOwor5YaN55m66LazIDwgc2FpaG9zc29rdVwgOwor5a++6Lmg55qEIDwgdGFpc2hvdGVraVwgOwor5aSP5pyf5a2m5qChIDwga2FraWdha2tvdVwgOwor5qeN6KGT5a62IDwgc291anV0c3VrYVwgOwor5q2M6Kyh5puyIDwga2F5b3VreW9rdVwgOwor5rS75Lq655S7IDwga2F0c3VqaW5nYVwgOwor5LqM6KiA55uuIDwgZnV0YWtvdG9tZVwgOwor5Y6f5a2Q6YePIDwgZ2Vuc2hpcnlvdVwgOwor5by36IWwIDwgdHN1eW9nb3NoaVwgOwor5aSn5bmF54mpIDwgb29oYWJhbW9ub1wgOwor54us5aWP5LyaIDwgZG9rdXNvdWthaVwgOwor5Yid6ZycIDwgaGF0c3VzaGltb1wgOwor5a6H5a6Z5Yy75a2mIDwgdWNodXVpZ2FrdVwgOwor5ZCN6KqJ6Zmk6ZqKIDwgbWVpeW9qb3RhaVwgOwor5LqU6IeT5YWt6IWRIDwgZ296b3Vyb3BwdVwgOwor5Y+z5bemIDwgbWlnaWhpZGFyaVwgOwor6ISx6Iet5YmkIDwgZGFzc2h1dXphaVwgOwor5b+r6YCf6Ii5IDwga2Fpc29rdXNlblwgOwor55Sf5q6W5ZmoIDwgc2Vpc2hva3VraVwgOwor6LuK5Lit6KuHIDwgc2hhY2h1dWRhblwgOwor6Y6u6Z2Z5YmkIDwgY2hpbnNlaXphaVwgOwor5ZCI5L2155eHIDwgZ2FwcGVpc2hvdVwgOwor5oeH6Kaq5LyaIDwga29uc2hpbmthaVwgOwor552A6ZuqIDwgY2hha3VzZXRzdVwgOwor5b+F5ruFIDwgaGl0c3VtZXRzdVwgOwor54m954mb5pifIDwga2VuZ3l1dXNlaVwgOwor5Z+36KGM5aeU5ZOhIDwgc2hpa2tvdWlpblwgOwor6YeM5b+DIDwgc2F0b2dva29yb1wgOwor5Zub6Z2i5qWa5q2MIDwgc2hpbWVuc29rYVwgOwor6Iy25p+E5p2TIDwgY2hhYmlzaGFrdVwgOwor5pyJ56We6KuWIDwgeXV1c2hpbnJvblwgOwor5ZG95Lit5pWwIDwgbWVpY2h1dXN1dVwgOwor5pa56Kej55+zIDwgaG91a2Fpc2VraVwgOwor5aOy5o6b6YeRIDwgdXJpa2FrZWtpblwgOwor6LaF5beo5pifIDwgY2hvdWt5b3NlaVwgOwor56uL5L2T55qEIDwgcml0dGFpdGVraVwgOwor55m95pi85aSiIDwgaGFrdWNodXVtdVwgOwor5paw6KiY6YyyIDwgc2hpbmtpcm9rdVwgOwor5L+d6YeI6YeRIDwgaG9zaGFrdWtpblwgOwor5Y+N57KS5a2QIDwgaGFucnl1dXNoaVwgOwor5LiL6Laz5paZIDwgZ2Vzb2t1cnlvdVwgOwor5rOo5paH5pu4IDwgY2h1dW1vbnNob1wgOwor5aiB6aKo5aCC5aCCIDwgaWZ1dWRvdWRvdVwgOwor5YyW5ZCI54mpIDwga2Fnb3VidXRzdVwgOwor5bGL5b2i6Ii5IDwgeWFrYXRhYnVuZVwgOwor6LuN5LqL5Lya6K2wIDwgZ3VuamlrYWlnaVwgOwor6Leb6KGM5pmv5rCXIDwgaGFrb3VrZWlraVwgOwor6YGL5YuV5YqbIDwgdW5kb3VyeW9rdVwgOwor6YqY6YqY55q/IDwgbWVpbWVpemFyYVwgOwor6buS5puc5bKpIDwga29rdXlvdWdhblwgOwor5Y6f5L2c6ICFIDwgZ2Vuc2FrdXNoYVwgOwor5YW156uZ5a2mIDwgaGVpdGFuZ2FrdVwgOwor57Sw5a+G55S7IDwgc2FpbWl0c3VnYVwgOwor6aWC6aOp57KJ55eFIDwgdWRvbmtvYnlvdVwgOwor5LiA55Wq57eaIDwgaWNoaWJhbnNlblwgOwor5Y2K5Lq65YmNIDwgaGFuJyduaW5tYWVcIDsKK+WKh+WgtOihlyA8IGdla2lqb3VnYWlcIDsKK+WkqeS4i+S4gOWTgSA8IHRlbmthaXBwaW5cIDsKK+axuuitsOaoqSA8IGtldHN1Z2lrZW5cIDsKK+WfuuWcsOmWiemOliA8IGtpY2hpaGVpc2FcIDsKK+iRteelrSA8IGFvaW1hdHN1cmlcIDsKK+S4gOanveW8jyA8IGlzc291c2hpa2lcIDsKK+WuheaApeS+vyA8IHRha2t5dXViaW5cIDsKK+ayueWjtyA8IGFidXJhdHN1Ym9cIDsKK+iAgeS6uueXhSA8IHJvdWppbmJ5b3VcIDsKK+ethuiomOeUqOWFtyA8IGhpa2tpeW91Z3VcIDsKK+iSuOawl+apn+mWoiA8IGpvdWtpa2lrYW5cIDsKK+WQiOagvOeCuSA8IGdvdWtha3V0ZW5cIDsKK+WIu+i2syA8IGtpemFtaWFzaGlcIDsKK+ippuS+m+WTgSA8IHNoaWt5b3VoaW5cIDsKK+S4reWgheaJiyA8IGNodXVrZW5zaHVcIDsKK+iRm+mlhemgrSA8IGt1enVtYW5qdXVcIDsKK+aOpeWuouWppiA8IHNla2t5YWt1ZnVcIDsKK+a0u+Wtl+acrCA8IGthdHN1amlob25cIDsKK+WVj+mhjOWKhyA8IG1vbmRhaWdla2lcIDsKK+ejgeawl+aKteaKlyA8IGppa2l0ZWlrb3VcIDsKK+iBtOism+eUnyA8IGNob3Vrb3VzZWlcIDsKK+awtOaelSA8IG1penVtYWt1cmFcIDsKK+izvemKreeusSA8IHNhaXNlbmJha29cIDsKK+aPkOWUseiAhSA8IHRlaXNob3VzaGFcIDsKK+S4geWtl+WumuimjyA8IHRlaWppam91Z2lcIDsKK+WZtOmjr+eJqSA8IGZ1bnBhbm1vbm9cIDsKK+WbuuWumumHkeWIqSA8IGtvdGVpa2lucmlcIDsKK+WIhualteWMliA8IGJ1bmt5b2t1a2FcIDsKK+euoeeQhuWxgCA8IGthbnJpa3lva3VcIDsKK+inkumMkOWPsCA8IGtha3VzdWlkYWlcIDsKK+emj+WyoeecjCA8IGZ1a3Vva2FrZW5cIDsKK+eLrOWjh+WgtCA8IGRva3VkYW5qb3VcIDsKK+S7sumWk+ikkiA8IG5ha2FtYWJvbWVcIDsKK+maj+aDs+mMsiA8IHp1aXNvdXJva3VcIDsKK+aSruW9seiAhSA8IHNhdHN1ZWlzaGFcIDsKK+WmguiPqeiWqSA8IG55b2Jvc2F0c3VcIDsKK+WRveS4reW8viA8IG1laWNodXVkYW5cIDsKK+ecn+WIhuaVsCA8IHNoaW5idW5zdXVcIDsKK+mwr+mbsiA8IGl3YXNoaWd1bW9cIDsKK+mbh+eUqOS4uyA8IGtveW91bnVzaGlcIDsKK+W/g+afhCA8IGtva29yb2dhcmFcIDsKK+i1t+WLleaZgumWkyA8IGtpZG91amlrYW5cIDsKK+W5uyA8IG1hYm9yb3NoaVwgOwor5bGNIDwgc2hpa2FiYW5lXCA7CivlraQgPCBtaW5hc2hpZ29cIDsKK+eMqiA8IGlub3NoaXNoaVwgOwor5ZSHIDwga3VjaGliaXJ1XCA7CivmqqMgPCBob2Jhc2hpcmFcIDsKK+apmCA8IHRhY2hpYmFuYVwgOwor5YW1IDwgdHN1d2Ftb25vXCA7CivpioAgPCBzaGlyb2dhbmVcIDsKK+mCqiA8IHlva29zaGltYVwgOwor5bGv55Sw5YW1IDwgdG9uZGVuaGVpXCA7CivmlbXpg6jpmoogPCB0ZWtpYnV0YWlcIDsKK+aKteW9k+aoqSA8IHRlaXRvdWtlblwgOwor5p2R5aSr5a2QIDwgc29ucHV1c2hpXCA7Civoh6rlt7HmrLrnnp4gPCBqaWtvZ2ltYW5cIDsKK+aFsOWuieaXheihjCA8IGlhbnJ5b2tvdVwgOwor5o+a5rC06LuKIDwgeW91c3Vpc2hhXCA7CivmlZHmj7Tou40gPCBreXV1ZW5ndW5cIDsKK+iCsuavm+WJpCA8IGlrdW1vdXphaVwgOwor552m6KiAIDwgbXV0c3Vnb3RvXCA7Civlj47lpaogPCBzaHV1ZGF0c3VcIDsKK+m7kumgreW3viA8IGt1cm96dWtpblwgOwor6Kej5q+S5YmkIDwgZ2Vkb2t1emFpXCA7CivmgZDllp0gPCBreW91a2F0c3VcIDsKK+mrmOWnv+WLoiA8IGtvdXNoaXNlaVwgOwor5bGL5Y+w5bqXIDwgeWF0YWltaXNlXCA7Civotbfno4HlipsgPCBraWppcnlva3VcIDsKK+WOn+eUn+aelyA8IGdlbnNlaXJpblwgOwor5q205Y+y55S7IDwgcmVraXNoaWdhXCA7Civnm67poK0gPCBtZWdhc2hpcmFcIDsKK+iNiemkoCA8IGt1c2Ftb2NoaVwgOwor5YmN5Y2K55SfIDwgemVuaGFuc2VpXCA7CivlrZjlnKjoq5YgPCBzb256YWlyb25cIDsKK+WKh+iBtyA8IGdla2lzaG9rdVwgOwor5biM5pyb55qEIDwga2lib3V0ZWtpXCA7Civolqzku6MgPCBrdXN1cmlkYWlcIDsKK+S6uuW3pembtyA8IGppbmtvdXJhaVwgOwor5bCC55So5qmfIDwgc2VuJyd5b3VraVwgOwor5by355u0IDwga3lvdWNob2t1XCA7Civluqbph4/ooaEgPCBkb3J5b3Vrb3VcIDsKK+WFmuWkp+S8miA8IHRvdXRhaWthaVwgOwor5ZCM5LmX6ICFIDwgZG91am91c2hhXCA7CivlirTli5XogIUgPCByb3Vkb3VzaGFcIDsKK+WNmOaVsOWeiyA8IHRhbnN1dWtlaVwgOwor5b6T5YWE5byfIDwganV1a2VpdGVpXCA7Civpvafmra/poZ4gPCBnZXNzaGlydWlcIDsKK+WQhOWGiiA8IGtha3VzYXRzdVwgOwor6YCa6KqsIDwgdHN1dXNldHN1XCA7CivlhqDmnKjploAgPCBrYWJ1a2ltb25cIDsKK+S7mOWxnuWTgSA8IGZ1em9rdWhpblwgOwor6Kiq5ZWP6ICFIDwgaG91bW9uc2hhXCA7CivmsrPlj6MgPCBrYXdhZ3VjaGlcIDsKK+mAhuiziiA8IGd5YWt1em9rdVwgOwor6YGT6I2JIDwgbWljaGlrdXNhXCA7CivnmbrpoK3kurogPCBob3R0b3VuaW5cIDsKK+atu+elniA8IHNoaW5pZ2FtaVwgOwor5paH6YG45belIDwgYnVuc2Vua291XCA7CivpganogbcgPCB0ZWtpc2hva3VcIDsKK+asoOiQvSA8IGtldHN1cmFrdVwgOwor5be76a6oIDwgbWFraXp1c2hpXCA7CivlkIzlsYXkurogPCBkb3VreW9uaW5cIDsKK+WPguipo+S6uiA8IHNhbmtlaW5pblwgOwor5b255ZOh5LyaIDwgeWFrdWlua2FpXCA7CivlraTnq4voqp4gPCBrb3JpdHN1Z29cIDsKK+eUn+iPk+WtkCA8IG5hbWFnYXNoaVwgOwor6Zu75rCX5Zmo5YW3IDwgZGVua2lraWd1XCA7Civli53njocgPCBzaG91cml0c3VcIDsKK+WLmOWumuabuCA8IGthbmpvdXNob1wgOwor6ZaL5YKs5ZywIDwga2Fpc2FpY2hpXCA7CivokL3lvozogIUgPCByYWt1Z29zaGFcIDsKK+WHuui7jSA8IHNodXRzdWd1blwgOwor5Y2x5qmf5omT6ICFIDwga2lraWRhc2hhXCA7CivljYrml6UgPCBoYW4nJ25pY2hpXCA7CivloanljJbmsLTntKAgPCBlbmthc3Vpc29cIDsKK+WOhOW5tCA8IHlha3Vkb3NoaVwgOwor55S35a2Q5qChIDwgZGFuc2hpa291XCA7CivliaXohLEgPCBoYWt1ZGF0c3VcIDsKK+S4gOiLpuWKtCA8IGhpdG9rdXJvdVwgOwor5YKs5raZ5by+IDwgc2FpcnVpZGFuXCA7CivntbHmsrvmqKkgPCB0b3VjaGlrZW5cIDsKK+W+kuahnCA8IGFkYXpha3VyYVwgOwor5Y2D5pelIDwgc2VuJyduaWNoaVwgOwor56aB6Lui6LyJIDwga2ludGVuc2FpXCA7CivkurrkuovnlbDli5UgPCBqaW5qaWlkb3VcIDsKK+a4r+a5vueojiA8IGtvdXdhbnplaVwgOwor5LiN5a+b5a65IDwgZnVrYW4nJ3lvdVwgOwor5Yil6KGMIDwgYmV0c3VneW91XCA7CivkuI3kv6Hku7AgPCBmdXNoaW5rb3VcIDsKK+WkquWFrOacmyA8IHRhaWtvdWJvdVwgOwor5Li45ous5bynIDwgbWFydWdha2tvXCA7CivlpJblkJHmgKcgPCBnYWlrb3VzZWlcIDsKK+iQveedgCA8IHJha3VjaGFrdVwgOwor5LiN6Laz5YmNIDwgdGFyYXp1bWFlXCA7Civkuozlm73plpMgPCBuaWtva3VrYW5cIDsKK+S6nOmJm+mJhOadvyA8IGFlbnRlcHBhblwgOwor5Lya6JGs6ICFIDwga2Fpc291c2hhXCA7Civpga7kuoznhKHkuowgPCBzaGFuaW11bmlcIDsKK+mAhuilsiA8IGd5YWt1c2h1dVwgOwor56aP5a+/6I2JIDwgZnVrdWp1c291XCA7Civmr5LmrrogPCBkb2t1c2F0c3VcIDsKK+eiuuWunyA8IGtha3VqaXRzdVwgOwor5rOV5pu555WMIDwgaG91c291a2FpXCA7Civph43lh7ogPCBqdXVzaHV0c3VcIDsKK+WPo+WFiCA8IGt1Y2hpc2FraVwgOwor6YGL6Ly455yBIDwgdW4nJ3l1c2hvdVwgOwor5Y+j5YWDIDwga3VjaGltb3RvXCA7CivlvI/nm64gPCBzaGlraW1va3VcIDsKK+WNk+aKnCA8IHRha3ViYXRzdVwgOwor5LmX6LuK6aeFIDwgam91c2hhZWtpXCA7CivmnJ3prq7oqp4gPCBjaG91c2VuZ29cIDsKK+mdqeWRveWutiA8IGtha3VtZWlrYVwgOwor5qmf5a+G6LK7IDwga2ltaXRzdWhpXCA7CivkurrpgKDnsbMgPCBqaW56b3VtYWlcIDsKK+a0i+WTgeW6lyA8IHlvdWhpbnRlblwgOwor5YCL5Lq655qEIDwga29qaW50ZWtpXCA7CivkuIDlhYPljJYgPCBpY2hpZ2Vua2FcIDsKK+S8nemBk+iIuSA8IGRlbmRvdXNlblwgOwor5rKh5YWlIDwgYm90c3VueXV1XCA7CivlnKfov6vmhJ8gPCBhcHBha3VrYW5cIDsKK+S6iOmYsuetliA8IHlvYm91c2FrdVwgOwor6Iul6Zqg5bGFIDwgd2FrYWlua3lvXCA7CivlrprkvY/ogIUgPCB0ZWlqdXVzaGFcIDsKK+WPs+S4iyA8IG1pZ2lzaGl0YVwgOwor5rC05rq25oCnIDwgc3VpeW91c2VpXCA7CivlvLfng4ggPCBreW91cmV0c3VcIDsKK+mBuuiogOabuCA8IHl1aWdvbnNob1wgOwor5Luj54eD6LuKIDwgZGFpbmVuc2hhXCA7CivlpInmiJDlsqkgPCBoZW5zZWlnYW5cIDsKK+S4gOWumumHjyA8IGl0dGVpcnlvdVwgOwor6Ium54Gw55+zIDwga3VrYWlzZWtpXCA7Civlt6blv4PmiL8gPCBzYXNoaW5ib3VcIDsKK+i8queVquWItiA8IHJpbmJhbnNlaVwgOwor6KuL6aGY6ICFIDwgc2VpZ2Fuc2hhXCA7CivpgLjohLEgPCBpdHN1ZGF0c3VcIDsKK+eZvem7kiA8IHNoaXJva3Vyb1wgOwor55u06YGUIDwgamlraXRhdHN1XCA7CivlnKfov6vmgKcgPCBhcHBha3VzZWlcIDsKK+aBi+S7hyA8IGtvaWdhdGFraVwgOwor576F55Sf6ZaAIDwgcmFzaG91bW9uXCA7Civnm7TpgLIgPCBjaG9rdXNoaW5cIDsKK+WAi+S6uueUqCA8IGtvamluJyd5b3VcIDsKK+S6q+WPl+iAhSA8IGt5b3VqdXNoYVwgOwor5b6h6Laz5Yq0IDwgZ29zb2t1cm91XCA7Civnm7TpgJogPCBjaG9rdXRzdXVcIDsKK+WJveeqgyA8IGh5b3VzZXRzdVwgOwor54is6Jmr6aGeIDwgaGFjaHV1cnVpXCA7Civov7fkv6HlrrYgPCBtZWlzaGlua2FcIDsKK+WJsueuuCA8IHdhcmliYXNoaVwgOwor5pu457Ch5paHIDwgc2hva2FuYnVuXCA7CivoqLHlj6/oqLwgPCBreW9rYXNob3VcIDsKK+awkeS4u+WFmiA8IG1pbnNodXRvdVwgOwor5YWN6bucIDwgbWVuY2h1dHN1XCA7Civph5Hku48gPCBrYW5hYnV0c3VcIDsKK+eZvem3uiA8IHNoaXJhc2FnaVwgOwor6Ya15Ye6IDwga3lvc2h1dHN1XCA7Civnm7TovYQgPCBjaG9ra2F0c3VcIDsKK+WkquWIgOWFiCA8IHRhY2hpc2FraVwgOwor5Y2g5birIDwgdXJhbmFpc2hpXCA7CivkvJ3pgZPogIUgPCBkZW5kb3VzaGFcIDsKK+ebo+imluiIuSA8IGthbnNoaXNlblwgOwor57iE5pqW57C+IDwgbmF3YW5vcmVuXCA7Civntr/oo73lk4EgPCBtZW5zZWloaW5cIDsKK+earumdtCA8IGthd2FndXRzdVwgOwor5Ye66LWw6aasIDwgc2h1c3NvdWJhXCA7CivmgKXliIcgPCBreXV1c2V0c3VcIDsKK+S6jOmajuW7uiA8IG5pa2FpZGF0ZVwgOwor5L+u5q2j5qGIIDwgc2h1dXNlaWFuXCA7CivlrqPkvJ3miKYgPCBzZW5kZW5zZW5cIDsKK+mFieW5tCA8IHRvcmlkb3NoaVwgOwor6KuL6LKg5qWtIDwgdWtlb2lneW91XCA7CivpoZ7kurrnjL8gPCBydWlqaW4nJ2VuXCA7CivlkIjnkIbnmoQgPCBnb3VyaXRla2lcIDsKK+WLneiyoOW4qyA8IHNob3VidXNoaVwgOwor57O46Jqv6JqTIDwgaXRvbWltaXp1XCA7Civlu7bplbfmiKYgPCBlbmNob3VzZW5cIDsKK+Wcn+W7uualrSA8IGRva2VuZ3lvdVwgOwor6LSI5ZGI5ZOBIDwgem91dGVpaGluXCA7Civph5HpibHlnLAgPCBraW5rb3VjaGlcIDsKK+ecn+ijuCA8IG1hcHBhZGFrYVwgOwor5pi85b6h6aOvIDwgaGlydWdvaGFuXCA7Civokpnlj6TopZ4gPCBtb3Vrb2hpZGFcIDsKK+WNiuaciOWIiiA8IGhhbmdla2thblwgOwor5Ye66KGAIDwgc2h1a2tldHN1XCA7Civnmb3psZogPCBzaGlyb2dpc3VcIDsKK+mBk+etiyA8IG1pY2hpc3VqaVwgOwor55yM5rCR56iOIDwga2VubWluemVpXCA7CivmiYfli5XogIUgPCBzZW5kb3VzaGFcIDsKK+mbhuS8muaJgCA8IHNodXVrYWlqb1wgOwor5pyo5bel5aC0IDwgbW9ra291am91XCA7CivmtJLokL3ogIUgPCBzaGFyZW1vbm9cIDsKK+aIpumXmOW4vSA8IHNlbnRvdWJvdVwgOwor5aSV5YyW57KnIDwgeXV1Z2VzaG91XCA7CivpgZPnq68gPCBtaWNoaWJhdGFcIDsKK+WPr+WLleWgsCA8IGthZG91emVraVwgOwor5aSn5bm05aKXIDwgb290b3NoaW1hXCA7Civms5XnkIblraYgPCBob3VyaWdha3VcIDsKK+m7hOmgt+ibhyA8IGFvZGFpc2hvdVwgOwor6YCP5piO5L2TIDwgdG91bWVpdGFpXCA7CivmlYXpmpzou4ogPCBrb3Nob3VzaGFcIDsKK+ebo+imluiAhSA8IGthbnNoaXNoYVwgOwor5Y245aOyIDwgb3Jvc2hpdXJpXCA7Civlv5jlpLEgPCBib3VzaGl0c3VcIDsKK+iUreWPoyA8IGthZ2VndWNoaVwgOwor5Y215aSnIDwgdGFtYWdvZGFpXCA7CivlvIHmhbbojYkgPCBiZW5rZWlzb3VcIDsKK+WIneiKsSA8IGhhdHN1aGFuYVwgOwor6YGT56iLIDwgbWljaGlub3JpXCA7CivlrZjlnKjogIUgPCBzb256YWlzaGFcIDsKK+WFqOWbveWMuiA8IHplbmtva3VrdVwgOwor55m96auqIDwgaGFrdWhhdHN1XCA7CivlpKnnmofml5cgPCB0ZW4nJ25vdWtpXCA7Civlrpjlg5rljJYgPCBrYW5yeW91a2FcIDsKK+aXouW+l+aoqSA8IGtpdG9rdWtlblwgOwor5YWJ57ea6YqDIDwga291c2VuanV1XCA7Civno5TliJEgPCBoYXJpdHN1a2VcIDsKK+S7rumdouWKhyA8IGthbWVuZ2VraVwgOwor5qmf5qKw55qEIDwga2lrYWl0ZWtpXCA7CivlvabmmJ8gPCBoaWtvYm9zaGlcIDsKK+mBuuS8neWcsOWbsyA8IGlkZW5jaGl6dVwgOwor6L6b6L6jIDwgc2hpbnJhdHN1XCA7CivmraPniakgPCBzaG91YnV0c3VcIDsKK+WTgeOAhSA8IHNoaW5hamluYVwgOwor54ao5paX57SZIDwgbm9zaGlnYW1pXCA7CivlhpnmpI3mqZ8gPCBzaGFzaG9ra2lcIDsKK+WHuuiXjSA8IHNodXRzdXJhblwgOwor5pys5L2T6KuWIDwgaG9udGFpcm9uXCA7Civnmbrlo7Dms5UgPCBoYXNzZWlob3VcIDsKK+e1pua5r+WZqCA8IGt5dXV0b3VraVwgOwor5bm06IulIDwgdG9zaGl3YWthXCA7CivpgYroiIjosrsgPCB5dXVreW91aGlcIDsKK+W5s+WuieS6rCA8IGhlaWFua3lvdVwgOwor6YCG6IejIDwgZ3lha3VzaGluXCA7CivnlJ/mrKDkvLggPCBuYW1hYWt1YmlcIDsKK+mAgeS7mOWFiCA8IHNvdWZ1c2FraVwgOwor5aSW6YeO5bitIDwgZ2FpeWFzZWtpXCA7CivlubPoip0gPCBoaXJhc2hpYmFcIDsKK+aoqumdoiA8IHlva290c3VyYVwgOwor56uL5L2T5oimIDwgcml0dGFpc2VuXCA7Civnm7Toqq0gPCBjaG9rdWRva3VcIDsKK+ebo+imlue2siA8IGthbnNoaW1vdVwgOwor5pyI5rC06YeRIDwgZ2Vzc3Vpa2luXCA7CivmraPmipXmiYsgPCBzZWl0b3VzaHVcIDsKK+WHneihgCA8IGd5b3VrZXRzdVwgOwor6YGg6LWk5aSWIDwgZW5zZWtpZ2FpXCA7CivmjIfnpLrolqwgPCBzaGlqaXlha3VcIDsKK+mAg+iFsCA8IG5pZ2Vnb3NoaVwgOwor5b+D5aSqIDwgdG9rb3JvdGVuXCA7Civnm7ToqLMgPCBjaG9rdXlha3VcIDsKK+WIneiAsyA8IGhhdHN1bWltaVwgOwor5L+h5Y+35qmfIDwgc2hpbmdvdWtpXCA7CivkupXmiLjou4ogPCBpZG9ndXJ1bWFcIDsKK+acieWQjeeojiA8IHl1dW1laXplaVwgOwor56uL5L2T5oSfIDwgcml0dGFpa2FuXCA7CivlhKrlhYjmqKkgPCB5dXVzZW5rZW5cIDsKK+Wun+mok+WgtCA8IGppa2tlbmpvdVwgOwor54mh5Li56aSFIDwgYm90YW1vY2hpXCA7CivntYzlm6PpgKMgPCBrZWlkYW5yZW5cIDsKK+S4jeazleihjOeCuiA8IGZ1aG91a291aVwgOwor5pat6aCt5Y+wIDwgZGFudG91ZGFpXCA7CivkuojntITogIUgPCB5b3lha3VzaGFcIDsKK+e1guWknOeBryA8IHNodXV5YXRvdVwgOwor5pqX6buS6Z2iIDwgYW5rb2t1bWVuXCA7CivlrqPkvJ3lsYsgPCBzZW5kZW4nJ3lhXCA7Civku6Pmm7/lk4EgPCBkYWl0YWloaW5cIDsKK+eCremFuOWhqSA8IHRhbnNhbicnZW5cIDsKK+S4i+Wuv+WxiyA8IGdlc2h1a3V5YVwgOwor6KOc57Wm57eaIDwgaG9reXV1c2VuXCA7CivlkI3kurrmiKYgPCBtZWlqaW5zZW5cIDsKK+S4gOiIrOW4rSA8IGlwcGFuc2VraVwgOwor6YGt6Zuj6ICFIDwgc291bmFuc2hhXCA7Civnmb3pm6ogPCBoYWt1c2V0c3VcIDsKK+WHuuiJsiA8IHNodXNzaG9rdVwgOwor5Y6f5a2Q56CyIDwgZ2Vuc2hpaG91XCA7CivlgJLnva7ms5UgPCB0b3VjaGlob3VcIDsKK+W7g+eWviA8IGhhaXNoaXRzdVwgOwor54Wn5rqW5ZmoIDwgc2hvdWp1bmtpXCA7Civljp/kvY/msJEgPCBnZW5qdXVtaW5cIDsKK+iBluWFrOS8miA8IHNlaWtvdWthaVwgOwor5YqH54OIIDwgZ2VraXJldHN1XCA7Civljp/nlKPlnLAgPCBnZW5zYW5jaGlcIDsKK+mdqeWRveWFkCA8IGtha3VtZWlqaVwgOwor6YCf562GIDwgc29rdWhpdHN1XCA7CivlhKrpp7/ppqwgPCB5dXVzaHVuYmFcIDsKK+S4u+aDheirliA8IHNodWpvdXJvblwgOwor6aqo6JGj5ZOBIDwga290dG91aGluXCA7CivnrqHosqHkurogPCBrYW56YWluaW5cIDsKK+a8lOWKh+eVjCA8IGVuZ2VraWthaVwgOwor6YqA6Zaj5a+6IDwgZ2lua2FrdWppXCA7Civpoqjps6XluqcgPCBmdXVjaG91emFcIDsKK+aMn+eevOWZqCA8IGt5b3VrZW5raVwgOwor5pWZ5o6I5rOVIDwga3lvdWp1aG91XCA7Civpm7vmsJfph5wgPCBkZW5raWdhbWFcIDsKK+mbu+awl+mHjyA8IGRlbmtpcnlvdVwgOwor5rC05Y+jIDwgbWl6dWd1Y2hpXCA7CivmrbvkvZPpgbrmo4QgPCBzaGl0YWlpa2lcIDsKK+eCueWFiea6kCA8IHRlbmtvdWdlblwgOwor5pel5YiK57SZIDwgbmlra2Fuc2hpXCA7CivplpPni4LoqIAgPCBhaWt5b3VnZW5cIDsKK+auuuaIriA8IHNhdHN1cmlrdVwgOwor6ICB5Lq65oCnIDwgcm91amluc2VpXCA7CivlvozlrqQgPCBrb3VzaGl0c3VcIDsKK+ioiOaVsOeuoSA8IGtlaXN1dWthblwgOwor6YeR5Yip6Z6YIDwga2lucmlzaG91XCA7Civok4Tlpr4gPCBjaGlrdXNob3VcIDsKK+S7ruaUv+W6nCA8IGthcmlzZWlmdVwgOwor54++5Luj54mIIDwgZ2VuZGFpYmFuXCA7CivkvY7lp7/li6IgPCB0ZWlzaGlzZWlcIDsKK+aApemZjeS4iyA8IGt5dXVrb3VrYVwgOwor56ul6Kmx5YqHIDwgZG91d2FnZWtpXCA7Civlrp/pqJPlj7AgPCBqaWtrZW5kYWlcIDsKK+awtOaIkOWyqSA8IHN1aXNlaWdhblwgOwor5b6h5a+u5Lq6IDwgZ29yeW91bmluXCA7Civoh6rouqvnlaogPCBqaXNoaW5iYW5cIDsKK+egguaZguioiCA8IHN1bmFkb2tlaVwgOwor5YaF6YeO5a6J5omTIDwgbmFpeWFhbmRhXCA7CivooYDpgZTno6ggPCBjaGlkYXJ1bWFcIDsKK+mkium2j+WgtCA8IHlvdWtlaWpvdVwgOwor6YCy55m6IDwgc2hpbnBhdHN1XCA7CivohLHotbDlhbUgPCBkYXNzb3VoZWlcIDsKK+iMtuiiiyA8IGNoYWJ1a3Vyb1wgOwor6I2Y5ZyS5Yi2IDwgc2hvdWVuc2VpXCA7CivliJ3nqbogPCBoYXRzdXpvcmFcIDsKK+WJjeWNiuaIpiA8IHplbnBhbnNlblwgOwor6KiT6KmB5a2mIDwga3Vua29nYWt1XCA7Civou4rkupXmiLggPCBrdXJ1bWFpZG9cIDsKK+WkluWLmeecgSA8IGdhaW11c2hvdVwgOwor5paw5pmC5LujIDwgc2hpbmppZGFpXCA7CivmuInlpJbpg6ggPCBzaG91Z2FpYnVcIDsKK+aoqumBkyA8IHlva29taWNoaVwgOwor5oSf5YWJ57SZIDwga2Fua291c2hpXCA7Civmkq7lvbHmqZ8gPCBzYXRzdWVpa2lcIDsKK+S4gOeUn+a2ryA8IGlzc2hvdWdhaVwgOwor5rC05rqQ5ZywIDwgc3VpZ2VuY2hpXCA7CivmlbTmtYHlmaggPCBzZWlyeXV1a2lcIDsKK+W5s+epj+eEoeS6iyA8IGhlaW9uYnVqaVwgOwor6JC95pytIDwgcmFrdXNhdHN1XCA7CivliK7nm64gPCBrYXRzdW1va3VcIDsKK+eZvemFkiA8IHNoaXJvemFrZVwgOwor6YqA6KGM55WMIDwgZ2lua291a2FpXCA7Civnj77kvY/miYAgPCBnZW5qdXVzaG9cIDsKK+WLmOaJgCA8IGthbmRva29yb1wgOwor5YmN5Y+j5LiKIDwgbWFla291am91XCA7CivlnLDlr77nqbogPCBjaGl0YWlrdXVcIDsKK+i/veeqgSA8IHRzdWl0b3RzdVwgOwor56ys5LiA6ZuGIDwgZGFpaXNzaHV1XCA7CivlvI/mnI0gPCBzaGlraWZ1a3VcIDsKK+Wkqeeah+WutiA8IHRlbicnbm91a2VcIDsKK+WNlOWKmyA8IGt5b3VyeW9rdVwgOwor57Wm5rK56Ii5IDwga3l1dXl1c2VuXCA7Civku6Pmm7jkurogPCBkYWlzaG9uaW5cIDsKK+WJteWni+iAhSA8IHNvdXNoaXNoYVwgOwor5L6h5qC85bivIDwga2FrYWt1dGFpXCA7CivloLTmiYDmn4QgPCBiYXNob2dhcmFcIDsKK+S/oeWPt+aJgCA8IHNoaW5nb3Vqb1wgOwor5piO5piO5b6M5pelIDwgc2hpYXNhdHRlXCA7Civnn7PmjIEgPCBpc2hpbW9jaGlcIDsKK+aCquW+queSsCA8IGFrdWp1bmthblwgOwor6JC95pelIDwgcmFrdWppdHN1XCA7CivkuIDmsJflkbXmiJAgPCBpa2tpa2FzZWlcIDsKK+Wun+mok+WApCA8IGppa2tlbmNoaVwgOwor6YC454mpIDwgaWNoaW1vdHN1XCA7CivkuI3poqjmtYEgPCBidWZ1dXJ5dXVcIDsKK+Wuo+S8neWToSA8IHNlbmRlbicnaW5cIDsKK+mZpOmbu+mHnSA8IGpvZGVuYmFyaVwgOwor6KGb55Sf5a2mIDwgZWlzZWlnYWt1XCA7Civnm7TohbggPCBjaG9rdWNob3VcIDsKK+atpuWZqOiyuOS4jiA8IGJ1a2l0YWl5b1wgOwor55m66KaL6ICFIDwgaGFra2Vuc2hhXCA7Civms5XnjovluoEgPCBob3VvdWNob3VcIDsKK+attOaXpSA8IHJla2lqaXRzdVwgOwor5LiA55Wq5omLIDwgaWNoaWJhbnRlXCA7CivkuIDlpKvlpJrlprsgPCBpcHB1dGFzYWlcIDsKK+mZkOeVjOeCuSA8IGdlbmthaXRlblwgOwor5p2/55uu57SZIDwgaXRhbWVnYW1pXCA7CivmhIHlmIbloLQgPCBzaHV1dGFuYmFcIDsKK+mAsueJqSA8IHNoaW5tb3RzdVwgOwor6Iqx55u45pKyIDwgaGFuYXp1bW91XCA7Civmra/np5HlraYgPCBzaGlrYWdha3VcIDsKK+S7leS6i+edgCA8IHNoaWdvdG9naVwgOwor5YWJ5paH56S+IDwga291YnVuc2hhXCA7Civpq5jnh6XlnLAgPCBrb3Vzb3VjaGlcIDsKK+i+suWcsOazlSA8IG5vdWNoaWhvdVwgOwor6JGb5qC55rmvIDwga2Fra29udG91XCA7Civlh7rnq4sgPCBzaHV0dGF0c3VcIDsKK+ecn+ethiA8IHNoaW5waXRzdVwgOwor5q2j5pyIIDwgc2hvdWdhdHN1XCA7Civlh53nuK4gPCBneW91c2h1a3VcIDsKK+WFiembu+euoSA8IGtvdWRlbmthblwgOwor6Lqr5YiG5p+EIDwgbWlidW5nYXJhXCA7CivoprPopqfliLggPCBrYW5yYW5rZW5cIDsKK+emgeWItuWTgSA8IGtpbnNlaWhpblwgOwor552A55uuIDwgY2hha3Vtb2t1XCA7CivlvZPnsaTogIUgPCB0b3VzZW5zaGFcIDsKK+mAsuWMluirliA8IHNoaW5rYXJvblwgOwor5YaN5qSc6KiOIDwgc2Fpa2VudG91XCA7Civlha3orZggPCByb2t1c2hpa2lcIDsKK+WNiuWkj+eUnyA8IGhhbmdlc2hvdVwgOwor5b6h6aOv5pmCIDwgZ29oYW5kb2tpXCA7CivmhJvlvJ/lrZAgPCBtYW5hZGVzaGlcIDsKK+aJi+W8leabuCA8IHRlYmlraXNob1wgOwor5o+u55m65rK5IDwga2loYXRzdXl1XCA7Civnv7DmnpfpmaIgPCBrYW5yaW4nJ2luXCA7CivmlbTlkIjmgKcgPCBzZWlnb3VzZWlcIDsKK+aWmeeQhueVqiA8IHJ5b3VyaWJhblwgOwor5Y2B5LqM5a6uIDwganV1bmlreXV1XCA7CivnlJ/nlKPosqEgPCBzZWlzYW56YWlcIDsKK+S4gOS7o+iomCA8IGljaGlkYWlraVwgOwor5YWD5aeL56WtIDwgZ2Vuc2hpc2FpXCA7CivkuqHlkb3ogIUgPCBib3VtZWlzaGFcIDsKK+acieeojuWTgSA8IHl1dXplaWhpblwgOwor55y855a+IDwgZ2Fuc2hpdHN1XCA7CivlpKfkvb/ppKggPCB0YWlzaGlrYW5cIDsKK+mZkOWumuipniA8IGdlbnRlaXNoaVwgOwor5q2M5p6VIDwgdXRhbWFrdXJhXCA7CivvvLjnt5ogPCBla2t1c3VzZW5cIDsKK+eEoemnhOmjryA8IG11ZGFtZXNoaVwgOwor57eP5rG6566XIDwgc291a2Vzc2FuXCA7CivmrbTlj7LlrrYgPCByZWtpc2hpa2FcIDsKK+a1t+awtOW4vSA8IGthaXN1aWJvdVwgOwor5o6n6Zmk6aGNIDwga291am9nYWt1XCA7Civnn6XmgokgPCBjaGlzaGl0c3VcIDsKK+WutuaUv+WtpiA8IGthc2VpZ2FrdVwgOwor5YaF5byf5a2QIDwgdWNoaWRlc2hpXCA7CivlpJrlv5nkuK0gPCB0YWJvdWNodXVcIDsKK+WIpeeJqSA8IGJldHN1bW9ub1wgOwor5Y6f5a+45aSnIDwgZ2Vuc3VuZGFpXCA7Civnm7TntZAgPCBjaG9ra2V0c3VcIDsKK+apn+iDveeahCA8IGtpbm91dGVraVwgOwor5aWz5oCn55qEIDwgam9zZWl0ZWtpXCA7Civmu5Hnv5TmqZ8gPCBrYXNzaG91a2lcIDsKK+W5tOWni+eKtiA8IG5lbnNoaWpvdVwgOwor5a2Q54Wp5oKpIDwga29ib24nJ25vdVwgOwor5oyH5Y2X6LuKIDwgc2hpbmFuc2hhXCA7Civlh53nq4sgPCBneW91cml0c3VcIDsKK+W4uOevgCA8IHRva29idXNoaVwgOwor5YaZ55Sf5paHIDwgc2hhc2VpYnVuXCA7CivmqJnorZggPCBoeW91c2hpa2lcIDsKK+WGhemBiuaYnyA8IG5haXl1dXNlaVwgOwor5b6M5Ye6IDwga291c2h1dHN1XCA7CivliJ3niakgPCBoYXRzdW1vbm9cIDsKK+iLpuihjOiAhSA8IGt1Z3lvdXNoYVwgOwor572q5oKq5oSfIDwgemFpYWt1a2FuXCA7CivnhKHnl4fnirYgPCBtdXNob3Vqb3VcIDsKK+iKsemBkyA8IGhhbmFtaWNoaVwgOwor6KeS56CC57OWIDwga2FrdXphdG91XCA7CivnlJ/ov5TkuosgPCBuYW1haGVuamlcIDsKK+WHuueZuiA8IHNodXBwYXRzdVwgOwor5Y2Y57SU5oCnIDwgdGFuanVuc2VpXCA7CivljJflj6MgPCBraXRhZ3VjaGlcIDsKK+Wkp+WDp+atoyA8IGRhaXNvdWpvdVwgOwor5bm0546JIDwgdG9zaGlkYW1hXCA7CivkuIDouqvkuIogPCBpc3NoaW5qb3VcIDsKK+S/rumBk+WwvCA8IHNodXVkb3VuaVwgOwor6LuN5pS+6YCBIDwgZ3VuaG91c291XCA7CivnmbvoqJjmlpkgPCB0b3VraXJ5b3VcIDsKK+iLseWbveS6uiA8IGVpa29rdWppblwgOwor5YG96Ki86ICFIDwgZ2lzaG91c2hhXCA7CivpgZPot6/mqYsgPCBkb3Vyb2t5b3VcIDsKK+apmeiJsiA8IGRhaWRhaWlyb1wgOwor55+p5beuIDwga2FuZXphc2hpXCA7CivljYPkuIcgPCBjaGl5b3JvenVcIDsKK+aSruW9seaJgCA8IHNhdHN1ZWlqb1wgOwor5b2i5oWL6KuWIDwga2VpdGFpcm9uXCA7Civlgb3oqLznvaogPCBnaXNob3V6YWlcIDsKK+mmluisgOiAhSA8IHNodWJvdXNoYVwgOwor6KSH5Y+35YyWIDwgZnVrdWdvdWthXCA7CivlvJPlvKYgPCB5dW1pZHp1cnVcIDsKK+Wni+ellumzpSA8IHNoaXNvY2hvdVwgOwor54m56Kix5rOVIDwgdG9ra3lvaG91XCA7CivppIrmr5vliaQgPCB5b3Vtb3V6YWlcIDsKK+a1ruawl+iAhSA8IHV3YWtpbW9ub1wgOwor55uy56m0IDwgbWVrdXJhYW5hXCA7CivljbHmqZ/nqoHnoLQgPCBraWtpdG9wcGFcIDsKK+aal+m7kuihlyA8IGFua29rdWdhaVwgOwor5aSn5YWD5bilIDwgZGFpZ2Vuc3VpXCA7CivlhY3oqLHnirYgPCBtZW5reW9qb3VcIDsKK+iNieeukiA8IGt1c2Fib3VraVwgOwor5Ye654++IDwgc2h1dHN1Z2VuXCA7CivlpJzlhYnomasgPCB5YWtvdWNodXVcIDsKK+Wlh+WkqeeDiCA8IGtpdGVyZXRzdVwgOwor5YyZ5Yqg5ribIDwgc2FqaWthZ2VuXCA7Civlh53nnYAgPCBneW91Y2hha3VcIDsKK+WKo+W8sSA8IHJldHN1amFrdVwgOwor5oqV5omL5p2/IDwgdG91c2h1YmFuXCA7CivlvpPmpa3lk6EgPCBqdXVneW91aW5cIDsKK+aJueipleecvCA8IGhpaHlvdWdhblwgOwor5L+u6YGT5aWzIDwgc2h1dWRvdWpvXCA7CivlnKfnl5vngrkgPCBhdHRzdXV0ZW5cIDsKK+a1t+WFtemaiiA8IGthaWhlaXRhaVwgOwor6ICD6Kqy6KGoIDwga291a2FoeW91XCA7Civpuqboir3ns5YgPCBiYWt1Z2F0b3VcIDsKK+ecn+eOhyA8IHNoaW5zb3RzdVwgOwor6Ium6JmrIDwgbmlnYW11c2hpXCA7CivmqYvohJogPCBreW91a3lha3VcIDsKK+W3puiFlSA8IGhpZGFyaXVkZVwgOwor5paH6Iq45qyEIDwgYnVuZ2VpcmFuXCA7CivlpJznm7Lnl4cgPCB5YW1vdXNob3VcIDsKK+aKleeov+iAhSA8IHRvdWtvdXNoYVwgOwor54Sh5beu5YilIDwgbXVzYWJldHN1XCA7CivnqbrmjLrpmoogPCBrdXV0ZWl0YWlcIDsKK+W+ruiqv+aVtCA8IGJpY2hvdXNlaVwgOwor5Y+j5b+g5a6fIDwga3VjaGltYW1lXCA7CivoirHmqKHmp5ggPCBoYW5hbW95b3VcIDsKK+acieWQjeagoSA8IHl1dW1laWtvdVwgOwor54m56Kix5qipIDwgdG9ra3lva2VuXCA7Civpq5jpvL4gPCB0YWthaWJpa2lcIDsKK+ani+aIkOWtkCA8IGtvdXNlaXNoaVwgOwor55yf54mpIDwgc2hpbmJ1dHN1XCA7CivlvJTlrqIgPCBjaG91a3lha3VcIDsKK+iri+mhmOabuCA8IHNlaWdhbnNob1wgOwor5ouh5aOw5qmfIDwga2FrdXNlaWtpXCA7CivljLvnmYLmqZ/lmaggPCBpcnlvdWtpa2lcIDsKK+eZvuiWrCA8IGh5YWt1eWFrdVwgOwor6KiO6KuW5LyaIDwgdG91cm9ua2FpXCA7CivojLbnrZIgPCBjaGFkenV0c3VcIDsKK+W8n+WomCA8IG90b211c3VtZVwgOwor55yB55WlIDwgc2hvdXJ5YWt1XCA7Civmi5jnva7miYAgPCBrb3VjaGlzaG9cIDsKK+S6pOa4ieWToSA8IGtvdXNob3VpblwgOwor5Yq05b255aC0IDwgcm91ZWtpam91XCA7CivplbflsL7pto8gPCBuYWdhb2RvcmlcIDsKK+awtOmKgOeBryA8IHN1aWdpbnRvdVwgOwor5Li75oiQ5YiGIDwgc2h1c2VpYnVuXCA7Civkv67ovp7ms5UgPCBzaHV1amlob3VcIDsKK+WNk+ipseS8miA8IHRha3V3YWthaVwgOwor6YCG5rWBIDwgZ3lha3VyeXV1XCA7CivmrYzlv4MgPCB1dGFnb2tvcm9cIDsKK+aJi+W3peiKuCA8IHNodWtvdWdlaVwgOwor5paZ55CG5rOVIDwgcnlvdXJpaG91XCA7Civmib/oqo3lm7MgPCBzaG91bmluenVcIDsKK+acrOWztuS6uiA8IGhvbnRvdWppblwgOwor5oGS5bi45oCnIDwga291am91c2VpXCA7CivpgLHmnKsgPCBzaHV1bWF0c3VcIDsKK+edgOawtyA8IGNoYWt1aHlvdVwgOwor55m96I+KIDwgc2hpcmFnaWt1XCA7CivlubTms6IgPCB0b3NoaW5hbWlcIDsKK+e1hOe5lOWMliA8IHNvc2hpa2lrYVwgOwor5b6h5paw6YCgIDwgZ29zaGluem91XCA7CivmraPlrqQgPCBzZWlzaGl0c3VcIDsKK+S5vumbu+axoCA8IGthbmRlbmNoaVwgOwor6Ieq5L2c6L6yIDwgamlzYWt1bm91XCA7Civoj4rmnIggPCBraWt1ZHp1a2lcIDsKK+WItuepuuaoqSA8IHNlaWt1dWtlblwgOwor6Iqx5qSw6I+cIDwgaGFuYXlhc2FpXCA7Civnq7bmioDloLQgPCBreW91Z2lqb3VcIDsKK+aXp+WItuW6piA8IGt5dXVzZWlkb1wgOwor5YWx5ZKM5pS/IDwga3lvdXdhc2VpXCA7CivlpKnkuIvnhKHmr5QgPCB0ZW5rYW11aGlcIDsKK+WwiueOi+WutiA8IHNvbicnbm91a2FcIDsKK+W5tOavjiA8IHRvc2hpZ290b1wgOwor6YCx5pelIDwgc2h1dWppdHN1XCA7CivpgYXpgLLlhZAgPCBjaGlzaGluamlcIDsKK+iKseihlyA8IGhhbmFtYWNoaVwgOwor5bed57iBIDwga2F3YWJ1Y2hpXCA7CivlvaLku6MgPCBrYXRhc2hpcm9cIDsKK+aghOmkiuWtpiA8IGVpeW91Z2FrdVwgOwor5o6p6K236YOo6ZqKIDwgZW5nb2J1dGFpXCA7Civnmb3oibIgPCBoYWt1c2hva3VcIDsKK+S4jeS7i+WFpSA8IGZ1a2Fpbnl1dVwgOwor5oqV5omL5oimIDwgdG91c2h1c2VuXCA7CivniqzlvLXlrZAgPCBpbnVoYXJpa29cIDsKK+mAgembu+e3miA8IHNvdWRlbnNlblwgOwor5Y216buE5ZqiIDwgcmFuJydvdW5vdVwgOwor5Yil5qOfIDwgYmV0c3VtdW5lXCA7CivmsJflnKfoqIggPCBraWF0c3VrZWlcIDsKK+mnhuiZq+WJpCA8IGt1Y2h1dXphaVwgOwor54qs6L+954mpIDwgaW51b3Vtb25vXCA7CivkuInmlpHptokgPCBtaWZ1dXp1cmFcIDsKK+WGiueriyA8IHNha3VyaXRzdVwgOwor6aas6bm/6YeO6YOOIDwgYmFrYXlhcm91XCA7Civls7bpoqggPCBzaGltYWthemVcIDsKK+aLjeWtkOacqCA8IGh5b3VzaGlnaVwgOwor5aSa5q+b5L2cIDwgdGFtb3VzYWt1XCA7CivmiYvojbfniakgPCB0ZW5pbW90c3VcIDsKK+W8seWNkiA8IGpha3Vzb3RzdVwgOwor5Yeg5biz6Z2iIDwga2ljaG91bWVuXCA7CivmqKHnr4TnmoQgPCBtb2hhbnRla2lcIDsKK+WDlemBlCA8IGJva3V0YWNoaVwgOwor6aut6Z2iIDwgaGlnZWR6dXJhXCA7CivnrYboqJjluLMgPCBoaWtraWNob3VcIDsKK+W8teWKmyA8IGNob3VyeW9rdVwgOwor6Luf6LOqIDwgbmFuc2hpdHN1XCA7Civplbfot53pm6IgPCBjaG91a3lvcmlcIDsKK+e+juWwkeW5tCA8IGJpc2hvdW5lblwgOwor5Lm+54el5p2QIDwga2Fuc291emFpXCA7CivnlJ/nlKPogIUgPCBzZWlzYW5zaGFcIDsKK+S4jeacjeW+kyA8IGZ1ZnVrdWp1dVwgOwor5pys5qC85rS+IDwgaG9ua2FrdWhhXCA7Civoj7HlvaIgPCBoaXNoaWdhdGFcIDsKK+WOn+WtkOaIpiA8IGdlbnNoaXNlblwgOwor5LiN5aSJ6YePIDwgZnVoZW5yeW91XCA7CivpoZTpprTmn5MgPCBrYW9uYWppbWlcIDsKK+mAsuaNlyA8IHNoaW5jaG9rdVwgOwor6JC96JGJ5qi5IDwgcmFrdXlvdWp1XCA7CivkuInpoK3nrYsgPCBzYW50b3VraW5cIDsKK+WDu+iqrCA8IGhla2lzZXRzdVwgOwor5Y+j6Kqe6Iux6KqeIDwga291Z29laWdvXCA7Civku6PoqIDogIUgPCBkYWlnZW5zaGFcIDsKK+iMtueVkSA8IGNoYWJhdGFrZVwgOwor5o+u55m65bqmIDwga2loYXRzdWRvXCA7CivlpKfoh6rnhLYgPCBkYWlzaGl6ZW5cIDsKK+S4jeaZguedgCA8IGZ1amljaGFrdVwgOwor57Wx5Yi257eaIDwgdG91c2Vpc2VuXCA7CivmqKrntrEgPCB5b2tvZHp1bmFcIDsKK+WFjuiAsyA8IHVzYWdpbWltaVwgOwor5YWJ6Zu75rGgIDwga291ZGVuY2hpXCA7CivoirHkvpvppIogPCBoYW5ha3V5b3VcIDsKK+mbo+WVj+mhjCA8IG5hbm1vbmRhaVwgOwor57aZ6Zu76Y21IDwga2VpZGVua2VuXCA7CivmqZ/morDlraYgPCBraWthaWdha3VcIDsKK+WztumZsCA8IHNoaW1ha2FnZVwgOwor5amm5Lq655eFIDwgZnVqaW5ieW91XCA7CivlkIzlpb3ogIUgPCBkb3Vrb3VzaGFcIDsKK+WBveWmiuWooCA8IGdpbmluc2hpblwgOwor55+i5Y2wIDwgeWFqaXJ1c2hpXCA7CivnnYDmnI0gPCBjaGFrdWZ1a3VcIDsKK+eBq+e4hOmKgyA8IGhpbmF3YWp1dVwgOwor5bu65Z2qIDwgdGF0ZXRzdWJvXCA7Civlia/lsLogPCBmdWt1c2hha3VcIDsKK+WIneaYpSA8IGhhdHN1aGFydVwgOwor5YmN5YuY5a6aIDwgbWFla2Fuam91XCA7Civml6LnmbrooaggPCBraWhhcHB5b3VcIDsKK+WFseeriyA8IGt5b3VyaXRzdVwgOwor6Iqx6I+xIDwgaGFuYWJpc2hpXCA7CivnlLLnirbohbogPCBrb3Vqb3VzZW5cIDsKK+eoveWPpOS6iyA8IGtlaWtvZ290b1wgOwor5oiQ5paH5rOVIDwgc2VpYnVuaG91XCA7Civlu7blnaogPCBub2JldHN1Ym9cIDsKK+imj+agvOWTgSA8IGtpa2FrdWhpblwgOwor5LuV5LqL5pelIDwgc2hpZ290b2JpXCA7CivliIbkuI7nqI4gPCBidW4nJ3lvemVpXCA7Civnmb3nhKHlnqIgPCBzaGlyb211a3VcIDsKK+S6jOetieizniA8IG5pdG91c2hvdVwgOwor5qW16YePIDwga3lva3VyeW91XCA7CivlrprkvJHml6UgPCB0ZWlreXV1YmlcIDsKK+iJr+itmCA8IHJ5b3VzaGlraVwgOwor5byf5YiGIDwgb3RvdXRvYnVuXCA7Civnmb3nga/msrkgPCBoYWt1dG91eXVcIDsKK+iJsuiqvyA8IHNoaWtpY2hvdVwgOwor6YmE54Gr5ZGz5ZmMIDwgdGVra2FtaXNvXCA7CivpgYvou6LluK0gPCB1bnRlbnNla2lcIDsKK+WFrOawkemkqCA8IGtvdW1pbmthblwgOwor56+k6L6y5a62IDwgdG9rdW5vdWthXCA7CivojInojonoirEgPCBtYXRzdXJpa2FcIDsKK+S6uuW3pea4ryA8IGppbmtvdWtvdVwgOwor6bO25Y+jIDwgdG9iaWd1Y2hpXCA7Civpq5jpmbXlnJ8gPCBrb3VyeW91ZG9cIDsKK+aEn+WFieadvyA8IGthbmtvdWJhblwgOwor5YWr56aPIDwgaGFjaGlmdWt1XCA7CivoibLoppogPCBzaGlraWtha3VcIDsKK+S4ieS5l+aguSA8IHNhbmpvdWtvblwgOwor55+z5LuPIDwgc2VraWJ1dHN1XCA7CivnlLfpoqjlkYIgPCBvdG9rb2J1cm9cIDsKK+Wls+mDjuiKsSA8IG9taW5hZXNoaVwgOwor5rue57SN6ICFIDwgdGFpbm91c2hhXCA7CivmrbPlh7ogPCBzYWlzaHV0c3VcIDsKK+S8nemBk+W4qyA8IGRlbmRvdXNoaVwgOwor5b+c5Y+s5YW1IDwgb3VzaG91aGVpXCA7CivopIfljYHlrZcgPCBmdWt1anV1amlcIDsKK+ebtOa1gSA8IGNob2t1cnl1dVwgOwor6Zi/5byl6ZmA57WMIDwgYW1pZGFreW91XCA7Civoio3olqwgPCBzaGFrdXlha3VcIDsKK+WGjeani+aIkCA8IHNhaWtvdXNlaVwgOwor5pyJ5q616ICFIDwgeXV1ZGFuc2hhXCA7CivljZjooaPniakgPCBoaXRvZW1vbm9cIDsKK+imj+agvOWIpCA8IGtpa2FrdWJhblwgOwor56ys5LiJ6ICFIDwgZGFpc2Fuc2hhXCA7Civlh7rmnK0gPCBzaHVzc2F0c3VcIDsKK+WJsuWilyA8IHdhcmltYXNoaVwgOwor5L2T5pON5aC0IDwgdGFpc291am91XCA7CivkuLvmtYHmtL4gPCBzaHVyeXV1aGFcIDsKK+iKneiNiSA8IHNoaWJha3VzYVwgOwor5bqD5aCx5a6YIDwga291aG91a2FuXCA7CivnnJ/mnbEgPCBtYWhpZ2FzaGlcIDsKK+S6uuW3peaxoCA8IGppbmtvdWlrZVwgOwor5Y+j6JOL5Z6CIDwga291Z2Fpc3VpXCA7Civph5HliZvnoIIgPCBrb25nb3VzaGFcIDsKK+WNgeS4ieWknCA8IGp1dXNhbicneWFcIDsKK+Wkp+WtpumZoiA8IGRhaWdha3VpblwgOwor5LmX55So6LuKIDwgam91eW91c2hhXCA7CivkuI3mmI7norogPCBmdW1laWtha3VcIDsKK+mYv+W8pemZgOexpCA8IGFtaWRha3VqaVwgOwor6JyD5rCX5qW8IDwgc2hpbmtpcm91XCA7CivopIfokYnmqZ8gPCBmdWt1eW91a2lcIDsKK+S6jOetieimqiA8IG5pdG91c2hpblwgOwor6I2J56u26aasIDwga3VzYWtlaWJhXCA7CivmqLjnm7QgPCBib2t1Y2hva3VcIDsKK+maoOWFg+ixhiA8IGluZ2VubWFtZVwgOwor5bmV5pyrIDwgYmFrdW1hdHN1XCA7CivntK/kuZfmoLkgPCBydWlqb3Vrb25cIDsKK+akjumqqCA8IHRzdWlrb3RzdVwgOwor5p2x5rSL5Lq6IDwgdG91eW91amluXCA7Civnq7bmioDkvJogPCBreW91Z2lrYWlcIDsKK+WLp+iqmOWToSA8IGthbicneXV1aW5cIDsKK+iAgeWphuW/gyA8IHJvdWJhc2hpblwgOwor5YK15qip6ICFIDwgc2Fpa2Vuc2hhXCA7CivnrKzkuIDnvqkgPCBkYWlpY2hpZ2lcIDsKK+ato+WHuiA8IHNlaXNodXRzdVwgOwor5Zyn5YCS55qEIDwgYXR0b3V0ZWtpXCA7CivkuI3mmI7nnq0gPCBmdW1laXJ5b3VcIDsKK+aUvumbu+euoSA8IGhvdWRlbmthblwgOwor5Ye25pelIDwga3lvdWppdHN1XCA7CivliY3ouqvpoIMgPCBtYWVtaWdvcm9cIDsKK+WwkeaVsOa0viA8IHNob3VzdXVoYVwgOwor54m55o2c6YOoIDwgdG9rdXNvdWJ1XCA7Civoqr/ppqzluKsgPCBjaG91YmFzaGlcIDsKK+mBiuWksSA8IHl1dXNoaXRzdVwgOwor55CG6KuW55qEIDwgcmlyb250ZWtpXCA7Civpo7LmsLTph48gPCBpbnN1aXJ5b3VcIDsKK+iqv+eQhuazlSA8IGNob3VyaWhvdVwgOwor57Sv54qv6ICFIDwgcnVpaGFuc2hhXCA7Civou4ronaYgPCBrdXJ1bWFlYmlcIDsKK+WlvemDveWQiCA8IGtvdXRzdWdvdVwgOwor5a6J5YWo5Z+fIDwgYW56ZW4nJ2lraVwgOwor6Jma5qCE5b+DIDwga3lvZWlzaGluXCA7CivlrprmnJ/nmoQgPCB0ZWlraXRla2lcIDsKK+WIneW9uSA8IGhhdHN1eWFrdVwgOwor6KqN5Y+v6Ki8IDwgbmlua2FzaG91XCA7Civkv6Hlv4PlrrYgPCBzaGluamlua2FcIDsKK+W8t+Wnpue9qiA8IGdvdWthbnphaVwgOwor5pWZ5o6I5LyaIDwga3lvdWp1a2FpXCA7CivpgKPlkIjou40gPCByZW5nb3VndW5cIDsKK+mBuOWHuiA8IHNlbnNodXRzdVwgOwor6L+r5oyBIDwgc2VyaW1vY2hpXCA7Civph43lkIjkvZMgPCBqdXVnb3V0YWlcIDsKK+WKoOiZkOaEmyA8IGthZ3lha3VhaVwgOwor5rKz5bed5pW3IDwga2FzZW5qaWtpXCA7Civou43pmorokawgPCBndW50YWlzb3VcIDsKK+aVsOW5tOmWkyA8IHN1dW5lbmthblwgOwor6Lu95rCX55CDIDwga2Vpa2lreXV1XCA7CivpnZLmta7ojYkgPCBhb3VraWt1c2FcIDsKK+WtmOWcqOaEj+e+qSA8IHNvbnphaWlnaVwgOwor5a6J5qW95q27IDwgYW5yYWt1c2hpXCA7Civph5HlubPns5YgPCBrb25wZWl0b3VcIDsKK+WumuS9j+WcsCA8IHRlaWp1dWNoaVwgOwor6YeR6Lyq6ZqbIDwga29ucmluemFpXCA7CivmlpnnkIblupcgPCByeW91cml0ZW5cIDsKK+iyv+aYk+miqCA8IGJvdWVraWZ1dVwgOwor5Lq65bel5p6XIDwgamlua291cmluXCA7CivmtbfpgYvmpa0gPCBrYWl1bmd5b3VcIDsKK+iho+mjn+S9jyA8IGlzaG9rdWp1dVwgOwor552A5bqKIDwgY2hha3VzaG91XCA7Civlr53lhbfpoZ4gPCBzaGluZ3VydWlcIDsKK+W5tOW8sSA8IHRvc2hpeW93YVwgOwor5bGx6baJIDwgeWFtYXV6dXJhXCA7CivmnbHljZfmnbEgPCB0b3VuYW50b3VcIDsKK++8t+adryA8IGRhYnVydWhhaVwgOwor55Sy5p2/5ZOhIDwga291aGFuJydpblwgOwor54++5Luj5Y+yIDwgZ2VuZGFpc2hpXCA7CivmoLnoj5zpoZ4gPCBrb25zYWlydWlcIDsKK+edgOW4rSA8IGNoYWt1c2VraVwgOwor5a6a5L6L5LyaIDwgdGVpcmVpa2FpXCA7Civmsbrpl5jnirYgPCBrZXR0b3Vqb3VcIDsKK+ialeWNtee0mSA8IHNhbnJhbnNoaVwgOwor5aSW6JKZ5Y+kIDwgc290b21vdWtvXCA7CivovrvmnK0gPCB0c3VqaWZ1ZGFcIDsKK+i7iuS4oeWMliA8IHNoYXJ5b3VrYVwgOwor6YGp5YiHIDwgdGVraXNldHN1XCA7Civlj4jlvpPlhYTlvJ8gPCBtYXRhaXRva29cIDsKK+eZuueXhSA8IGhhdHN1YnlvdVwgOwor5oSf5YWJ5oCnIDwga2Fua291c2VpXCA7CivnrKzkuIDnq6AgPCBkYWlpc3Nob3VcIDsKK+eXheitmCA8IGJ5b3VzaGlraVwgOwor5Ym15Ye6IDwgc291c2h1dHN1XCA7CivliKXlrqQgPCBiZXNzaGl0c3VcIDsKK+iHqOeVjOeCuSA8IHJpbmthaXRlblwgOwor5ZWG5aOy5rCXIDwgc2hvdWJhaWdpXCA7Civlm73mhrLms5UgPCBrb2trZW5wb3VcIDsKK+S4oemZm+S4iyA8IHJ5b3VoZWlrYVwgOwor6ZmQ5a6a54mIIDwgZ2VudGVpYmFuXCA7CivliY3ou4rovKogPCB6ZW5zaGFyaW5cIDsKK+W5tOW1qSA8IHRvc2hpa2FzYVwgOwor57695q+b5biD5ZujIDwgdW1vdWZ1dG9uXCA7Civpm4TniZvns54gPCBvdXNoaWt1c29cIDsKK+S4jeWmiueXhyA8IGZ1bmluc2hvdVwgOwor5aSJ5rWB5ZmoIDwgaGVucnl1dWtpXCA7CivliJ3lrasgPCBoYXRzdW1hZ29cIDsKK+WHuuW+oSA8IHNodXRzdWd5b1wgOwor6Yed5L6b6aSKIDwgaGFyaWt1eW91XCA7Civlvq7oppbnmoQgPCBiaXNoaXRla2lcIDsKK+ebo+imluWhlCA8IGthbnNoaXRvdVwgOwor55m9546JIDwgc2hpcmF0YW1hXCA7CivljaDmi6DlnLAgPCBzZW5reW9jaGlcIDsKK+aMh+WQkeaApyA8IHNoaWtvdXNlaVwgOwor5LiA5Lq655SoIDwgaGl0b3JpeW91XCA7Civoqr/ppqzloLQgPCBjaG91YmFqb3VcIDsKK+WGjei8uOWFpSA8IHNhaXl1bnl1dVwgOwor57a/5rSl6KaLIDwgd2F0YXRzdW1pXCA7CivlhKroia/lhZAgPCB5dXVyeW91amlcIDsKK+a1ruWLleelqCA8IGZ1ZG91aHlvdVwgOwor5YWI5aSp5oCnIDwgc2VudGVuc2VpXCA7CivlvaLmiJDlsaQgPCBrZWlzZWlzb3VcIDsKK+ebtOaSgyA8IGNob2t1Z2VraVwgOwor5bir56+E5LujIDwgc2hpaGFuZGFpXCA7CivlubTlr4QgPCB0b3NoaXlvcmlcIDsKK+S8keatouespiA8IGt5dXVzaGlmdVwgOwor5qaO6Iy4IDwgZW5va2l0YWtlXCA7CivkuI3pnaLnm64gPCBmdW1lbm1va3VcIDsKK+iIueiZqyA8IGZ1bmFtdXNoaVwgOwor5bCP57Og6ZuoIDwga29udWthYW1lXCA7CivmnKzkuojnrpcgPCBob24nJ3lvc2FuXCA7CivmjIfljZfnlaogPCBzaGluYW5iYW5cIDsKK+iHqueUsealrSA8IGppeXV1Z3lvdVwgOwor56aB6Ly45ZOBIDwga2luJyd5dWhpblwgOwor5Y+45Lya6ICFIDwgc2hpa2Fpc2hhXCA7CivmipXnqL/mrIQgPCB0b3Vrb3VyYW5cIDsKK+eZveeGsSA8IGhha3VuZXRzdVwgOwor5qW16JaEIDwga3lva3VoYWt1XCA7Civnmb3nhoogPCBzaGlyb2t1bWFcIDsKK+aMv+ipseeahCA8IHNvdXdhdGVraVwgOwor5Ymy5LuYIDwgd2FyaXRzdWtlXCA7CivliJ3lpKIgPCBoYXRzdXl1bWVcIDsKK+mBk+S4reiomCA8IGRvdWNodXVraVwgOwor5Y2K5aGp5rC0IDwgaGFuJydlbnN1aVwgOwor5o6S5LuW55qEIDwgaGFpdGF0ZWtpXCA7CivlpKfohbjngo4gPCBkYWljaG91ZW5cIDsKK+WIhuWupCA8IGJ1bnNoaXRzdVwgOwor5bC85rOV5birIDwgYW1haG91c2hpXCA7Civlrprnva7ntrIgPCB0ZWljaGlhbWlcIDsKK+W6tuWHuiA8IHNob3NodXRzdVwgOwor5YWl5ruFIDwgbnl1dW1ldHN1XCA7Civoirjog73nlYwgPCBnZWlub3VrYWlcIDsKK+WNiua/gemfsyA8IGhhbmRha3VvblwgOwor6YWN566h5belIDwgaGFpa2Fua291XCA7CivlibLkuIsgPCB3YXJpc2hpdGFcIDsKK+ePvuS7o+S6uiA8IGdlbmRhaWppblwgOwor6L6y5ryB5rCRIDwgbm91Z3lvbWluXCA7CivluILmnb4gPCBpY2hpbWF0c3VcIDsKK+Wls+aAp+WtpiA8IGpvc2VpZ2FrdVwgOwor5Lm+54el5ZywIDwga2Fuc291Y2hpXCA7CivliIbpoZ7ms5UgPCBidW5ydWlob3VcIDsKK+WIqeW3seS4u+e+qSA8IHJpa29zaHVnaVwgOwor55+z6IaP5YOPIDwgc2Vra291em91XCA7CivlvbHmrabogIUgPCBrYWdlbXVzaGFcIDsKK+a0u+eJiOacrCA8IGthcHBhbmJvblwgOwor5LuV5LqL5aC0IDwgc2hpZ290b2JhXCA7CivlqabkurrmnI0gPCBmdWppbmZ1a3VcIDsKK+WvneW/g+WcsCA8IG5lZ29rb2NoaVwgOwor5YSq55S3IDwgeWFzYW90b2tvXCA7CivntbXlt7vniakgPCBlbWFraW1vbm9cIDsKK+S4jeaWmeewoSA8IGZ1cnlvdWtlblwgOwor5YyW55+z5bGkIDwga2FzZWtpc291XCA7CivmmanppJDkvJogPCBiYW5zYW5rYWlcIDsKK+S7leaUvumhjCA8IHNoaWhvdWRhaVwgOwor5qGI5YaF54q2IDwgYW4nJ25haWpvdVwgOwor5aSa5YWD55qEIDwgdGFnZW50ZWtpXCA7CivliLbmtbfmqKkgPCBzZWlrYWlrZW5cIDsKK+S6pOmFjeeoriA8IGtvdWhhaXNodVwgOwor6L2i5q66IDwgcmVraXNhdHN1XCA7CivlnKjkvY/ogIUgPCB6YWlqdXVzaGFcIDsKK+aIkOeGn+acnyA8IHNlaWp1a3VraVwgOwor55yf5a6fIDwgc2hpbmppdHN1XCA7CivlhbHlkozlhZogPCBreW91d2F0b3VcIDsKK+W5s+aWueaguSA8IGhlaWhvdWtvblwgOwor6Kuc5aCx5ZOhIDwgY2hvdWhvdWluXCA7CivoiIjlpa7liaQgPCBrb3VmdW56YWlcIDsKK+eZvea7nSA8IHNoaXJhdGFraVwgOwor5YWI6KaL6ICFIDwgc2Vua2Vuc2hhXCA7CivoiKrnqbrliLggPCBrb3VrdXVrZW5cIDsKK+mAn+WPoyA8IGhheWFrdWNoaVwgOwor5YWJ6Zu75a2QIDwga291ZGVuc2hpXCA7CivpgLLlhaUgPCBzaGluJydueXV1XCA7CivlhLLniakgPCBtb3VrZW1vbm9cIDsKK+iFsOmrmCA8IGtvc2hpZGFrYVwgOwor5aOy5Zu95aW0IDwgYmFpa29rdWRvXCA7CivnuYHliIbmlbAgPCBoYW5idW5zdXVcIDsKK+aAp+ihjOWLlSA8IHNlaWtvdWRvdVwgOwor6YqA6KGM5Yi4IDwgZ2lua291a2VuXCA7CivmqYvmoYEgPCBoYXNoaWdldGFcIDsKK+S4h+S4h+atsyA8IGJhbmJhbnphaVwgOwor6aqo6LOqIDwga29zc2hpdHN1XCA7CivlgZzoiLnloLQgPCB0ZWlzZW5qb3VcIDsKK+iFsOmqqCA8IGtvc2hpYm9uZVwgOwor5ZiG6aGY5pu4IDwgdGFuZ2Fuc2hvXCA7Civlho3nlJ/nlKMgPCBzYWlzZWlzYW5cIDsKK+WcsOWvvuWcsCA8IGNoaXRhaWNoaVwgOwor5L+u6aO+IDwgc2h1dXNob2t1XCA7CivmlofkvZPoq5YgPCBidW50YWlyb25cIDsKK+iqv+afu+WboyA8IGNob3VzYWRhblwgOwor55m95rWqIDwgc2hpcmFuYW1pXCA7CivljZjooYzmnKwgPCB0YW5rb3Vib25cIDsKK+Wwj+WknOabsiA8IHNheW9reW9rdVwgOwor5Ye65LiW6ZaTIDwgc2h1c3Nla2VuXCA7Civnmb3mtZwgPCBzaGlyYWhhbWFcIDsKK+iJtueoriA8IHRzdXlhZGFuZVwgOwor6YCf5YqbIDwgc29rdXJ5b2t1XCA7CivljZjooYzmm7ggPCB0YW5rb3VzaG9cIDsKK+S4gOaZgumWkyA8IGljaGlqaWthblwgOwor5rip5rOJ6YO3IDwgb25zZW5reW91XCA7CivovrvlupcgPCB0c3VqaW1pc2VcIDsKK+acieWQjeS6uiA8IHl1dW1laWppblwgOwor5b6M55Sy5p2/IDwga291a2FucGFuXCA7CivllrbliKnkuLvnvqkgPCBlaXJpc2h1Z2lcIDsKK+W8seS9k+WMliA8IGpha3V0YWlrYVwgOwor57WM5riI6Z2iIDwga2VpemFpbWVuXCA7Civkv67pqJPpgZMgPCBzaHVnZW5kb3VcIDsKK+iMtuaJgCA8IGNoYWRva29yb1wgOwor5b6A55Sf6ZqbIDwgb3Vqb3VnaXdhXCA7CivluoPlj6MgPCBoaXJva3VjaGlcIDsKK+WwuumqqCA8IHNoYWtrb3RzdVwgOwor5Ye65aGBIDwgc2h1dHN1cnVpXCA7CivmrovlrZjogIUgPCB6YW56b25zaGFcIDsKK+iIquepuuS+vyA8IGtvdWt1dWJpblwgOwor5qC45q2m6KOFIDwga2FrdWJ1c291XCA7Civnm67luocgPCBtYWJpc2FzaGlcIDsKK+eZveawtCA8IHNoaXJvbWl6dVwgOwor6Imy56WeIDwgc2hpa2lzaGluXCA7Civln4volLXph5EgPCBtYWl6b3VraW5cIDsKK+WtpOeri+WMliA8IGtvcml0c3VrYVwgOwor6IGW5a625pePIDwgc2Vpa2F6b2t1XCA7Civms6Xngq3lnLAgPCBkZWl0YW5jaGlcIDsKK+Wklui8quiIuSA8IGdhaXJpbnNlblwgOwor6KSH5Yip5rOVIDwgZnVrdXJpaG91XCA7CivlhaXmpI0gPCBueXV1c2hva3VcIDsKK+iSuOeVmeWZqCA8IGpvdXJ5dXVraVwgOwor6ZGR5a6a5pu4IDwga2FudGVpc2hvXCA7Civoo73msLfmqZ8gPCBzZWloeW91a2lcIDsKK+ebtOWxniA8IGNob2t1em9rdVwgOwor5raI6LK76LKhIDwgc2hvdWhpemFpXCA7CivokZfkvZzlrrYgPCBjaG9zYWt1a2FcIDsKK+W4guiyqeWTgSA8IHNoaWhhbmhpblwgOwor5be76aCt6KiAIDwga2FudG91Z2VuXCA7Civlh6HlpLEgPCBib25zaGl0c3VcIDsKK+iqv+eQhuW4qyA8IGNob3VyaXNoaVwgOwor5YWt5pyIIDwgcm9rdWdhdHN1XCA7CivnnJ/moZHnk5wgPCBtYWt1d2F1cmlcIDsKK+maj+W+k+iAhSA8IHp1aWp1dXNoYVwgOwor5LiA5a+45YWIIDwgaXNzdW5zYWtpXCA7Civmloflrabpg6ggPCBidW5nYWt1YnVcIDsKK+S6iOe0hOWItiA8IHlveWFrdXNlaVwgOwor57ea6YCf5bqmIDwgc2Vuc29rdWRvXCA7CivlubPpnaLlvaIgPCBoZWltZW5rZWlcIDsKK+ikh+avlOS+iyA8IGZ1a3VoaXJlaVwgOwor5pWj5rC06LuKIDwgc2Fuc3Vpc2hhXCA7CivkuIDmmYLph5EgPCBpY2hpamlraW5cIDsKK+WJjeW5tOW6piA8IHplbicnbmVuZG9cIDsKK+eEoeWjsOaYoOeUuyA8IG11c2VpZWlnYVwgOwor5YWl5pytIDwgbnl1dXNhdHN1XCA7CivnmbrooYzogIUgPCBoYWtrb3VzaGFcIDsKK+WBnOeVmeaJgCA8IHRlaXJ5dXVqb1wgOwor5a6u5Z+O55yMIDwgbWl5YWdpa2VuXCA7CivliY3liY3lm54gPCB6ZW56ZW5rYWlcIDsKK+eHl+W+s+WIqSA8IGthbmRva3VyaVwgOwor5q275YiR5aC0IDwgc2hpa2Vpam91XCA7CivlsbHpgZMgPCB5YW1hbWljaGlcIDsKK+W3u+WtkOacrCA8IGthbnNoaWhvblwgOwor6YCA5Ye6IDwgdGFpc2h1dHN1XCA7Civmpb3nr4AgPCBnYWt1c2V0c3VcIDsKK+W4uOWkjyA8IHRva29uYXRzdVwgOwor55S66K2w5LyaIDwgY2hvdWdpa2FpXCA7CivnlLPpgZQgPCBzaGludGF0c3VcIDsKK+S6uueUn+imsyA8IGppbnNlaWthblwgOwor55yf54+g6LKdIDwgc2hpbmp1Z2FpXCA7Civoi6Xmnb4gPCB3YWthbWF0c3VcIDsKK+WxgOmVtyA8IGt5b2t1Y2hvdVwgOwor6ay855OmIDwgb25pZ2F3YXJhXCA7CivluJ3lrqQgPCB0ZWlzaGl0c3VcIDsKK+S6rOmDveW4giA8IGt5b3V0b3NoaVwgOwor6Zuo5Y+w6aKoIDwgYW1ldGFpZnV1XCA7Civoh6rnlLHlvaIgPCBqaXl1dWdhdGFcIDsKK+WFjeioseWItiA8IG1lbmt5b3NlaVwgOwor6ZuR5aCx5qyEIDwgemFwcG91cmFuXCA7CivmhJvlhZrlv4MgPCBhaXRvdXNoaW5cIDsKK+mYsuatouazlSA8IGJvdXNoaWhvdVwgOwor6KOc5Yqp5ryi5a2XIDwgaG9qb2thbmppXCA7CivluorkuIsgPCB5dWthc2hpdGFcIDsKK+mBuOaMmeazlSA8IHNlbmt5b2hvdVwgOwor5ZKM6Iux6L6e5pu4IDwgd2FlaWppc2hvXCA7CivnnYDkv6EgPCBjaGFrdXNoaW5cIDsKK+WkqeS6leijjyA8IHRlbmpvdXVyYVwgOwor5Y2K6Zmw5b2xIDwgaGFuJydpbicnZWlcIDsKK+acgOmHjeeCuSA8IHNhaWp1dXRlblwgOwor5LiA5a++5LiAIDwgaXR0YWlpY2hpXCA7Civnmb3mnK0gPCBzaGlyb2Z1ZGFcIDsKK+WIh+WFpSA8IHNldHN1bnl1dVwgOwor5qiZ5pytIDwgaHlvdXNhdHN1XCA7Civlh7rli5UgPCBzaHV0c3Vkb3VcIDsKK+i/q+WKmyA8IGhha3VyeW9rdVwgOwor5bGR6YmEIDwga3V6dXRldHN1XCA7Civpq6rntrEgPCBrYW1pZHp1bmFcIDsKK+mBuOaMmeawkSA8IHNlbmt5b21pblwgOwor6YCQ5LiAIDwgY2hpa3VpY2hpXCA7CivmlZnllIbogIUgPCBreW91c2FzaGFcIDsKK+aWmeeQhuS6uiA8IHJ5b3VyaW5pblwgOwor6Ieq55Sx5bitIDwgaml5dXVzZWtpXCA7CivmnIjliIroqowgPCBnZWtrYW5zaGlcIDsKK+S+temjnyA8IHNoaW5zaG9rdVwgOwor5LiN54af57e0IDwgZnVqdWt1cmVuXCA7Civlj6TlhbjnmoQgPCBrb3RlbnRla2lcIDsKK+iKseawtyA8IGhhbmFnb29yaVwgOwor5L+E6ZuoIDwgbml3YWthYW1lXCA7CivlpInmrbvogIUgPCBoZW5zaGlzaGFcIDsKK+acrOagvOWMliA8IGhvbmtha3VrYVwgOwor5LuV5LiK5belIDwgc2hpYWdla291XCA7CivniaHkuLnmnY8gPCBib3Rhbmt5b3VcIDsKK+W5s+aWueW9oiA8IGhlaWhvdWtlaVwgOwor5aSJ5YyW55CDIDwgaGVua2FreXV1XCA7CivpgaDpmpToppYgPCBlbmtha3VzaGlcIDsKK+iMtuWupCA8IGNoYXNoaXRzdVwgOwor6ZuR6KiY5bizIDwgemFra2ljaG91XCA7CivlnKjmoKHnlJ8gPCB6YWlrb3VzZWlcIDsKK+eZveaXpSA8IGhha3VqaXRzdVwgOwor5L6g6aqoIDwga3lvdWtvdHN1XCA7CivlkIzkvY3lhYPntKAgPCBkb3VpZ2Vuc29cIDsKK+aRqeaTpumfsyA8IG1hc2F0c3VvblwgOwor5bCR6aOfIDwgc2hvdXNob2t1XCA7Civlt7PlubQgPCBoZWJpZG9zaGlcIDsKK+ibjeeDj+iziiA8IGhvdGFydWlrYVwgOwor6Im254mpIDwgdHN1eWFtb25vXCA7Civlho3nlJ/ms5UgPCBzYWlzZWlob3VcIDsKK+WkmueZuuapnyA8IHRhaGF0c3VraVwgOwor5Ya35aW0IDwgaGl5YXlha2tvXCA7CivmtLvniYjlsYsgPCBrYXBwYW4nJ3lhXCA7Civph5HliZvmiYsgPCBrb25nb3VzaHVcIDsKK+iiq+Wus+mhjSA8IGhpZ2FpZ2FrdVwgOwor5YaN5b6T5YWE5byfIDwgZnV0YWl0b2tvXCA7CivpgbjmjJnmqKkgPCBzZW5reW9rZW5cIDsKK+WfuuacrOe1piA8IGtpaG9ua3l1dVwgOwor6Z2e6YeR5bGeIDwgaGlraW56b2t1XCA7CivlsI/poK0gPCBrb2dhc2hpcmFcIDsKK+eMqeeMqee3iyA8IHNob3Vqb3VoaVwgOwor5Zue5pWZ5b6SIDwga2Fpa3lvdXRvXCA7CivmjIfnpLrlhYggPCBzaGlqaXNha2lcIDsKK+WCmeW/mOmMsiA8IGJpYm91cm9rdVwgOwor56CC57OW6buNIDwgc2F0b3VraWJpXCA7CivmoYjlhoXmm7ggPCBhbicnbmFpc2hvXCA7Civlip/lirTph5EgPCBrb3Vyb3VraW5cIDsKK+iiq+W3ruWIpSA8IGhpc2FiZXRzdVwgOwor55eY55eV6Z2iIDwgYWJhdGF6dXJhXCA7CivmnLHmlofph5EgPCBzaHVidW5raW5cIDsKK+S4jeisueaFjiA8IGZ1a2luc2hpblwgOwor6IKd56Gs5aSJIDwga2Fua291aGVuXCA7CivmnKvmnJ/nmoQgPCBtYWtraXRla2lcIDsKK+ekvOWlieWFrCA8IHJlaWJvdWtvdVwgOwor5Y2U5oqA6ICFIDwga3lvdWdpc2hhXCA7CivlpJrotrPpoZ4gPCB0YXNva3VydWlcIDsKK+WxiOi+sSA8IGt1dHN1am9rdVwgOwor56We56eY5oCnIDwgc2hpbnBpc2VpXCA7CivmsrjpqLDngrkgPCBmdXR0b3V0ZW5cIDsKK+mkiumtmuaxoCA8IHlvdWd5b2NoaVwgOwor6a2U5rOV55qEIDwgbWFob3V0ZWtpXCA7CivkupzpiZvlh7jniYggPCBhZW50b3BwYW5cIDsKK+ijveawt+aJgCA8IHNlaWh5b3Vqb1wgOwor6Zai6KW/5byBIDwga2Fuc2FpYmVuXCA7CivpqqjohpwgPCBrb3RzdW1ha3VcIDsKK+WFq+WNg+iNiSA8IHlhY2hpZ3VzYVwgOwor55S66KeSIDwgbWFjaGlrYWRvXCA7CivovrvlkJsgPCB0c3VqaWdpbWlcIDsKK+ecgeWKmyA8IHNob3VyeW9rdVwgOwor6a+J5bmfIDwga29pbm9ib3JpXCA7CivpgZPkuqTms5UgPCBkb3Vrb3Vob3VcIDsKK+mHjuiPnOaxgSA8IHlhc2FpamlydVwgOwor5pah5peL5paZIDwgYXNzZW5yeW91XCA7CivotaTpsK8gPCBha2Fpd2FzaGlcIDsKK+iIqua1t+WjqyA8IGtvdWthaXNoaVwgOwor5rWu5YuV5qCqIDwgZnVkb3VrYWJ1XCA7CivpqqjogokgPCBrb3RzdW5pa3VcIDsKK+WGheWupCA8IG5haXNoaXRzdVwgOwor5re35Lqk5p6XIDwga29ua291cmluXCA7CivmqKHnr4Tlm5ogPCBtb2hhbnNodXVcIDsKK+W3neWyuCA8IGthd2FnaXNoaVwgOwor6Kyb576p6YyyIDwga291Z2lyb2t1XCA7CivluZXkuIsgPCBtYWt1c2hpdGFcIDsKK+ebruWNsCA8IG1lamlydXNoaVwgOwor55Sf5a2Y6ICFIDwgc2Vpem9uc2hhXCA7CivlsLvou70gPCBzaGlyaWdhcnVcIDsKK+S4jeisrOaApyA8IGZ1Ynl1dXNlaVwgOwor5bCO6Zu75oCnIDwgZG91ZGVuc2VpXCA7CivmlLnpnanmoYggPCBrYWlrYWt1YW5cIDsKK+ejgeawl+a1ruS4iiA8IGppa2lmdWpvdVwgOwor55S36KGGIDwgb3Rva29zaHV1XCA7Civms5XmlLnmraMgPCBob3VrYWlzZWlcIDsKK+eUn+eUo+aApyA8IHNlaXNhbnNlaVwgOwor6bCQ5Y+jIDwgd2FuaWd1Y2hpXCA7CivkuIrkuK3kuIsgPCBqb3VjaHV1Z2VcIDsKK+S/oei2iiA8IHNoaW4nJ2V0c3VcIDsKK+S/iumAuCA8IHNodW4nJ2l0c3VcIDsKK+e1puawtOaJgCA8IGt5dXVzdWlqb1wgOwor54yc55aR5b+DIDwgc2FpZ2lzaGluXCA7CivkuI3oqr/ms5UgPCBidWNob3Vob3VcIDsKK+WxnuiolyA8IHNob2t1dGFrdVwgOwor55uy5YikIDwgbWVrdXJhYmFuXCA7Civlj5fli5XnmoQgPCBqdWRvdXRla2lcIDsKK+iqv+eQhuWPsCA8IGNob3VyaWRhaVwgOwor56m66ZaR5ZywIDwga3V1a2FuY2hpXCA7CivlirTlg43npa0gPCByb3Vkb3VzYWlcIDsKK+WGjeadpemAsSA8IHNhcmFpc2h1dVwgOwor6Imy5rKiIDwgc2hpa2l0YWt1XCA7Civlha3lsLogPCByb2t1c2hha3VcIDsKK+S7o+ihqOmDqCA8IGRhaWh5b3VidVwgOwor5YOF5bCR5beuIDwga2luc2hvdXNhXCA7CivlkajmnJ/mgKcgPCBzaHV1a2lzZWlcIDsKK+mjm+ihjOacjSA8IGhpa291ZnVrdVwgOwor5LiN54m55a6aIDwgZnV0b2t1dGVpXCA7CivooajpnaLljJYgPCBoeW91bWVua2FcIDsKK+W4guacieWcsCA8IHNoaXl1dWNoaVwgOwor5qiZ5rqW6KqeIDwgaHlvdWp1bmdvXCA7Civovpvlj6MgPCBrYXJha3VjaGlcIDsKK+awtOW5s+mdoiA8IHN1aWhlaW1lblwgOwor5Lqk6YCa6LevIDwga291dHN1dXJvXCA7CivmtojosrvogIUgPCBzaG91aGlzaGFcIDsKK+WPpOmBk+WFtyA8IGZ1cnVkb3VndVwgOwor5Z+65pys55qEIDwga2lob250ZWtpXCA7CivojYnlm6PlrZAgPCBrdXNhZGFuZ29cIDsKK+ecn+ePoOiJsiA8IHNoaW5qdWlyb1wgOwor57Wx5bil5qipIDwgdG91c3Vpa2VuXCA7CivoibLmrLIgPCBzaGlraXlva3VcIDsKK+e3tOe/kuapnyA8IHJlbnNodXVraVwgOwor5qW154axIDwgZ29rdW5ldHN1XCA7Civot7PomasgPCB0b2JpbXVzaGlcIDsKK+aYh+mZjeiItSA8IHNob3Vrb3VkYVwgOwor5YW15bqr55yMIDwgaHlvdWdva2VuXCA7CivlhazmtbfkuIogPCBrb3VrYWlqb3VcIDsKK+a/gOaIpuWMuiA8IGdla2lzZW5rdVwgOwor5YSA56S855qEIDwgZ2lyZWl0ZWtpXCA7CivmnInlubPns5YgPCBhcnVoZWl0b3VcIDsKK+eXm+eDiCA8IHRzdXVyZXRzdVwgOwor5Lqk6YCa6LK7IDwga291dHN1dWhpXCA7Civoh6Pnr4AgPCBzaGluc2V0c3VcIDsKK+mHkemtmuiNiSA8IGtpbmd5b3NvdVwgOwor552A54Gr54K5IDwgY2hha2thdGVuXCA7CivpgbjmjJnmiKYgPCBzZW5reW9zZW5cIDsKK+mqqOeusSA8IGtvdHN1YmFrb1wgOwor5a6X5Li75qipIDwgc291c2h1a2VuXCA7CivmsLTphbjmoLkgPCBzdWlzYW5rb25cIDsKK+i1pOWNgeWtlyA8IHNla2lqdXVqaVwgOwor6JOE6Z+z5qmfIDwgY2hpa3VvbmtpXCA7Civkv5foqqwgPCB6b2t1c2V0c3VcIDsKK+iHquWwiuW/gyA8IGppc29uc2hpblwgOwor6KGo6KiY5rOVIDwgaHlvdWtpaG91XCA7CivpnLLlpKnllYYgPCByb3RlbnNob3VcIDsKK+S8keW7t+aXpSA8IGt5dXV0ZWliaVwgOwor6aOy6YWS55mWIDwgaW5zaHVoZWtpXCA7CivkuIDmlonpq5ggPCBpc3NlaWRha2FcIDsKK+WHpuWIkeWPsCA8IHNob2tlaWRhaVwgOwor5Ya35oi/6LuKIDwgcmVpYm91c2hhXCA7CivmpJznlqvmiYAgPCBrZW4nJ2VraWpvXCA7CivnhafluqboqIggPCBzaG91ZG9rZWlcIDsKK+WPjueojuWQjyA8IHNodXV6ZWlyaVwgOwor5ZaJ6Ieq5oWiIDwgbm9kb2ppbWFuXCA7Civph5HnnIvmnb8gPCBraW5rYW5iYW5cIDsKK+aVo+W8vumKgyA8IHNhbmRhbmp1dVwgOwor5YSy5b25IDwgbW91a2V5YWt1XCA7Civln7nppIrmtrIgPCBiYWl5b3Vla2lcIDsKK+WkqeeLl+miqCA8IHRlbmd1a2F6ZVwgOwor5LiA5pys5p2JIDwgaXBwb25zdWdpXCA7CivmuKzlvq7oqIggPCBzb2t1YmlrZWlcIDsKK+miqOiHtOaelyA8IGZ1dWNoaXJpblwgOwor5Zyw55CG5a2mIDwgY2hpcmlnYWt1XCA7Civnvo7po5/lrrYgPCBiaXNob2t1a2FcIDsKK+Wwv+mBk+eCjiA8IG55b3Vkb3VlblwgOwor6J6z6J6C5ouzIDwgdG91cm91a2VuXCA7Civoqr/nkIbkurogPCBjaG91cmluaW5cIDsKK+WWq+eFmeaJgCA8IGtpdHN1ZW5qb1wgOwor5pmC5YiG5pmCIDwgamlidW5kb2tpXCA7Civkvpvov7AgPCBreW91anV0c3VcIDsKK+WFq+mHjeahnCA8IHlhZXpha3VyYVwgOwor5Y2X6Juu6Ii5IDwgbmFuYmFuc2VuXCA7CivosYzosYbosYYgPCBlbmRvdW1hbWVcIDsKK+Wzu+eDiCA8IHNodW5yZXRzdVwgOwor55S36IW5IDwgb3Rva29iYXJhXCA7Civlm57mlbDliLggPCBrYWlzdXVrZW5cIDsKK+ijvemAoOiAhSA8IHNlaXpvdXNoYVwgOwor6YeN5b255LyaIDwganV1eWFra2FpXCA7CivljJfmrKfkurogPCBob2t1b3VqaW5cIDsKK+S4gOS6uuWtkCA8IGhpdG9yaWtrb1wgOwor5qW15rWBIDwga3lva3VyeXV1XCA7CivmrbvnlJ/oprMgPCBzaGlzZWlrYW5cIDsKK+eCreeWveeXhSA8IHRhbnNvYnlvdVwgOwor55m95Zyw5ZuzIDwgaGFrdWNoaXp1XCA7CivnlaXnq6AgPCByeWFrdXNob3VcIDsKK+m8iOeUsuiJsiA8IGJla2tvdWlyb1wgOwor5LmX6LuK5Yi4IDwgam91c2hha2VuXCA7CivmuKznqIvlmaggPCBzb2t1dGVpa2lcIDsKK+WGhuiInuabsiA8IGVuYnVreW9rdVwgOwor6Imv5pelIDwgcnlvdWppdHN1XCA7CivmtojosrvnqI4gPCBzaG91aGl6ZWlcIDsKK+WjgeS4gOmHjSA8IGthYmVoaXRvZVwgOwor5Zub6Z2i5L2TIDwgc2hpbWVudGFpXCA7Civlt6bliY0gPCBoaWRhcmltYWVcIDsKK+WcqOadpee3miA8IHphaXJhaXNlblwgOwor5aSn55CG55+zIDwgZGFpcmlzZWtpXCA7CivnlJ/nlKPlnLAgPCBzZWlzYW5jaGlcIDsKK+WvvuizqiA8IHRhaXNoaXRzdVwgOwor5LiN5rOV56e75rCRIDwgZnVob3VpbWluXCA7CivniYfnlLDoiI4gPCBrYXRhaW5ha2FcIDsKK+ikh+WGmeapnyA8IGZ1a3VzaGFraVwgOwor5bCP6KqsIDwgc2hvdXNldHN1XCA7Civpoqjkv5fnlLsgPCBmdXV6b2t1Z2FcIDsKK+W3puWFmiA8IGhpZGFyaXRvdVwgOwor6ISH6YGTIDwgd2FraW1pY2hpXCA7CivlgbTpnaLlm7MgPCBzb2t1bWVuenVcIDsKK+ajueenpCA8IHNhb2Jha2FyaVwgOwor6LaK5qip6KGM54K6IDwgZWtrZW5rb3VpXCA7CivoqIDoqp7lraYgPCBnZW5nb2dha3VcIDsKK+W3oeiIquiIuSA8IGp1bmtvdXNlblwgOwor5Y6f5aeL5p6XIDwgZ2Vuc2hpcmluXCA7Civoh7PkuIrmqKkgPCBzaGlqb3VrZW5cIDsKK+Wwj+WjsuWVhiA8IGtvdXJpc2hvdVwgOwor5qGc6LKdIDwgc2FrdXJhZ2FpXCA7CivntbHliLblk4EgPCB0b3VzZWloaW5cIDsKK+eXheayoSA8IGJ5b3Vib3RzdVwgOwor56ys5LiA5a+pIDwgZGFpaXNzaGluXCA7CivntIXmr5vkurogPCBrb3Vtb3VqaW5cIDsKK+iIueapiyA8IGZ1bmFiYXNoaVwgOwor6KyE5YaZ54mIIDwgdG91c2hhYmFuXCA7CivmjqfoqLTlr6kgPCBrb3Vzb3NoaW5cIDsKK+S4reWPpOi7iiA8IGNodXVrb3NoYVwgOwor6auq5rK5IDwga2FtaWFidXJhXCA7CivmlrDntIDlhYMgPCBzaGlua2lnZW5cIDsKK+e3tOe/kuaJgCA8IHJlbnNodXVqb1wgOwor56uL5pa55qC5IDwgcmlwcG91a29uXCA7Civnn63pn7Ppmo4gPCB0YW4nJ29ua2FpXCA7CivkuLvmhI/kuLvnvqkgPCBzaHVpc2h1Z2lcIDsKK+Wuo+iqk+abuCA8IHNlbnNlaXNob1wgOwor5LqM5ouN5a2QIDwgbmlieW91c2hpXCA7CivlirTovrLlhZogPCByb3Vub3V0b3VcIDsKK+W9vOWyuOiKsSA8IGhpZ2FuYmFuYVwgOwor5b+g6a2C56KRIDwgY2h1dWtvbmhpXCA7CivmnInlirnmgKcgPCB5dXVrb3VzZWlcIDsKK+S4ieaXpeaciCA8IG1pa2FkenVraVwgOwor55m65oyv5qmfIDwgaGFzc2hpbmtpXCA7Civoh6rlt7HmpJzmn7sgPCBqaWtva2Vuc2FcIDsKK+e3j+WLmeW6gSA8IHNvdW11Y2hvdVwgOwor55eF5qygIDwgYnlvdWtldHN1XCA7CivlhavliIcgPCB5YXRzdWdpcmlcIDsKK+a1geihjOiqniA8IHJ5dXVrb3Vnb1wgOwor5YaF6a6u5Lq6IDwgbmFpc2VuamluXCA7CivlhaXlipsgPCBueXV1cnlva3VcIDsKK+eUn+eQhueahCA8IHNlaXJpdGVraVwgOwor5ZCN6KqJ5oW+IDwgbWVpeW95b2t1XCA7CivliqrlipvlrrYgPCBkb3J5b2t1a2FcIDsKK+WcqOadpeeoriA8IHphaXJhaXNodVwgOwor55S6562LIDwgbWFjaGlzdWppXCA7CivlpJrkuovlpJrpm6MgPCB0YWppdGFuYW5cIDsKK+WKoOehq+azlSA8IGthcnl1dWhvdVwgOwor5aSn5a625pePIDwgZGFpa2F6b2t1XCA7Civmma/mlZnlvpIgPCBrZWlreW91dG9cIDsKK++8oe+8ou+8o+mghiA8IMSTYsSrc2jEq2p1blwgOwor6ISC6LazIDwgYWJ1cmFhc2hpXCA7CivnlLrnq4sgPCBjaG91cml0c3VcIDsKK+mrmOepjembsiA8IGtvdXNla2l1blwgOwor5oSP5rCX5o+a5o+aIDwgaWtpeW91eW91XCA7CivkuZfoiLnliLggPCBqb3VzZW5rZW5cIDsKK+iEmuiouyA8IGt5YWt1Y2h1dVwgOwor5YaN5a+p5p+7IDwgc2Fpc2hpbnNhXCA7CivnlKjoqp7pm4YgPCB5b3Vnb3NodXVcIDsKK+alteaciCA8IGdva3VnZXRzdVwgOwor6LKg5YK36ICFIDwgZnVzaG91c2hhXCA7CivohILos6ogPCBzaGlzaGl0c3VcIDsKK+WKtOWDjeazlSA8IHJvdWRvdWhvdVwgOwor5rGO55So5qmfIDwgaGFuJyd5b3VraVwgOwor6Iif5qmLIDwgZnVuYWhhc2hpXCA7CivkvpvooYAgPCBreW91a2V0c3VcIDsKK+WQjeiqieW/gyA8IG1laXlvc2hpblwgOwor6ZGR5a6a5Lq6IDwga2FudGVpbmluXCA7Civlt53kuIsgPCBrYXdhc2hpbW9cIDsKK+aKleelqOaXpSA8IHRvdWh5b3ViaVwgOwor5YWI6KGM6KmeIDwgc2Vua291c2hpXCA7Civni6zmvJTkvJogPCBkb2t1ZW5rYWlcIDsKK+mfs+mfu+WtpiA8IG9uJydpbmdha3VcIDsKK+WKn+WKtOiAhSA8IGtvdXJvdXNoYVwgOwor5a6f6YyyIDwgaml0c3Vyb2t1XCA7CivohLPntLDog54gPCBub3VzYWlib3VcIDsKK+e+juaWh+iqvyA8IGJpYnVuY2hvdVwgOwor5piO57Sw5pu4IDwgbWVpc2Fpc2hvXCA7CivnlLfmloflrZcgPCBvdG9rb21vamlcIDsKK+WSjOiLsei+nuWFuCA8IHdhZWlqaXRlblwgOwor57eP5YuY5a6aIDwgc291a2Fuam91XCA7CivoibLlvLEgPCBzaGlraWpha3VcIDsKK+Wbnuimp+advyA8IGthaXJhbmJhblwgOwor5Lu75ZG954q2IDwgbmlubWVpam91XCA7Civnmbrlh7ogPCBoYXNzaHV0c3VcIDsKK+S4iue0jemHkSA8IGpvdW5vdWtpblwgOwor5ou35ZWP5Y+wIDwgZ291bW9uZGFpXCA7CivohbDnuIQgPCBrb3NoaW5hd2FcIDsKK+eUn+evgCA8IG5hbWFidXNoaVwgOwor5LiK5aWP5paHIDwgam91c291YnVuXCA7Civoh6rosqzngrkgPCBqaXNla2l0ZW5cIDsKK+i2s+iFsCA8IGFzaGlrb3NoaVwgOwor5Yqp55uj552jIDwgam9rYW50b2t1XCA7CivlhaXku48gPCBueXV1YnV0c3VcIDsKK+WHpueUn+iokyA8IHNob3NlaWt1blwgOwor5YWl5LqkIDwgaXJpbWFqaXJpXCA7CivohbDntJAgPCBrb3NoaWhpbW9cIDsKK+acrOippumokyA8IGhvbnNoaWtlblwgOwor5aSW5L+h6YOoIDwgZ2Fpc2hpbmJ1XCA7Civkv67nr4kgPCBzaHV1Y2hpa3VcIDsKK+S4gOS6uuWJjSA8IGhpdG9yaW1hZVwgOwor5Yq05YON5qipIDwgcm91ZG91a2VuXCA7Civogonpo58gPCBuaWt1c2hva3VcIDsKK+WcsOeQg+WEgCA8IGNoaWt5dXVnaVwgOwor5Zyw5LiK5qipIDwgY2hpam91a2VuXCA7Civkv6HntIQgPCBzaGluJyd5YWt1XCA7Civph5HlsY/poqggPCBraW5ieW91YnVcIDsKK+Wwjumbu+S9kyA8IGRvdWRlbnRhaVwgOwor5YWx55uK6LK7IDwga3lvdWVraWhpXCA7CivohLHokL0gPCBkYXRzdXJha3VcIDsKK+S4jeaEj+ippumokyA8IGZ1aXNoaWtlblwgOwor6aas6bm/6Z2iIDwgYmFrYWR6dXJhXCA7CivlnJ/nlKjms6IgPCBkb3lvdW5hbWlcIDsKK+e3j+mBuOaMmSA8IHNvdXNlbmt5b1wgOwor5Yi25b6h55ukIDwgc2VpZ3lvYmFuXCA7Civlv4PmhI/msJcgPCBrb2tvcm9pa2lcIDsKK+aooeevhOippuWQiCA8IG1vaGFuamlhaVwgOwor6YeN5Yq05YONIDwganV1cm91ZG91XCA7CivmiYvmprTlvL4gPCB0ZXJ5dXVkYW5cIDsKK+S4gOaemuS4iiA8IGljaGltYWl1ZVwgOwor5aSp5LqV54GvIDwgdGVuam91dG91XCA7CivppIrprZrloLQgPCB5b3VneW9qb3VcIDsKK+aKleelqOaJgCA8IHRvdWh5b3Vqb1wgOwor6Lyp5Ye6IDwgaGFpc2h1dHN1XCA7CivluqfmqJnns7sgPCB6YWh5b3VrZWlcIDsKK+WGhuWAn+asviA8IGVuc2hha2thblwgOwor57W25a++6KuWIDwgemV0dGFpcm9uXCA7CivmjZXomavntrIgPCBob2NodXVhbWlcIDsKK+WHuuadpeaYnyA8IGRla2lib3NoaVwgOwor5LqM6YeN5q+N6Z+zIDwgbmlqdXVib2luXCA7CivoirHmn7PnlYwgPCBrYXJ5dXVrYWlcIDsKK+WFrOawkeaoqSA8IGtvdW1pbmtlblwgOwor5aaC5L2V6KixIDwgaWthYmFrYXJpXCA7CivmuIXmlZnlvpIgPCBzZWlreW91dG9cIDsKK+e0q+Wklue3miA8IHNoaWdhaXNlblwgOwor5L+u56WTIDwgc2h1dWZ1dHN1XCA7CivlkIzlpb3kvJogPCBkb3Vrb3VrYWlcIDsKK+a0l+i7iuWgtCA8IHNlbnNoYWpvdVwgOwor5bGV5pyb6LuKIDwgdGVuYm91c2hhXCA7CivlrabplqUgPCBnYWt1YmF0c3VcIDsKK+aal+WPt+W4syA8IGFuZ291Y2hvdVwgOwor5L2N6LKgIDwga3VyYWltYWtlXCA7Civoi5fku6MgPCBuYXdhc2hpcm9cIDsKK+WxseeUtyA8IHlhbWFvdG9rb1wgOwor5bmM6aas6LuKIDwgaG9yb2Jhc2hhXCA7CivlpKfkvIHmpa0gPCBkYWlraWd5b3VcIDsKK+WjsueskeWppiA8IGJhaXNob3VmdVwgOwor5o6h54K56ICFIDwgc2FpdGVuc2hhXCA7CivmoITogIDmoIToj68gPCBlaXlvdWVpZ2FcIDsKK+mWk+mameavlCA8IGthbmdla2loaVwgOwor5aOu6KGM5LyaIDwgc291a291a2FpXCA7Civlho3nlJ/lk4EgPCBzYWlzZWloaW5cIDsKK+WFrOekvuWCtSA8IGtvdXNoYXNhaVwgOwor5qGc6I2JIDwgc2FrdXJhc291XCA7CivlrqLotrMgPCBreWFrdWFzaGlcIDsKK+WxnuebriA8IHNob2t1bW9rdVwgOwor5pyq5p2l5a2mIDwgbWlyYWlnYWt1XCA7Civkv5fnrYYgPCB6b2t1aGl0c3VcIDsKK+acq+Wni+e1giA8IHN1ZXNoaWp1dVwgOwor5YSf5Y20IDwgc2hvdWt5YWt1XCA7CivmvZzmsLToiaYgPCBzZW5zdWlrYW5cIDsKK+awtOmBk+euoSA8IHN1aWRvdWthblwgOwor5q+N6Kqe6Kmx6ICFIDwgYm9nb3dhc2hhXCA7CivlpKnnkIbmlZkgPCB0ZW5yaWt5b3VcIDsKK+alveW+iyA8IGdha3VyaXRzdVwgOwor5qGc6ImyIDwgc2FrdXJhaXJvXCA7Civkuojmg7Ppq5ggPCB5b3NvdWRha2FcIDsKK+aJi+afhOmhlCA8IHRlZ2FyYWdhb1wgOwor5omL6Iq45ZOBIDwgc2h1Z2VpaGluXCA7CivlubPooaHpjJggPCBoZWlrb3VzdWlcIDsKK+aKl+avkue0oCA8IGtvdWRva3Vzb1wgOwor5bCP576KIDwga29oaXRzdWppXCA7CivlpKfosYbnspUgPCBkYWl6dWthc3VcIDsKK+eglOeptuiyuyA8IGtlbmt5dXVoaVwgOwor5a6f6LOqIDwgamlzc2hpdHN1XCA7Civnn6Xog73niq8gPCBjaGlub3VoYW5cIDsKK+mBuOaJi+aoqSA8IHNlbnNodWtlblwgOwor6bqd6aaZ6bm/IDwgamFrb3VqaWthXCA7Civmtbflsrjnt5ogPCBrYWlnYW5zZW5cIDsKK+iyv+aYk+a4ryA8IGJvdWVraWtvdVwgOwor5pqm5bm05bqmIDwgcmVraW5lbmRvXCA7CivlpKnlrq7lm7MgPCB0ZW5reXV1enVcIDsKK+acieaoqeiAhSA8IHl1dWtlbnNoYVwgOwor5L2T6KOB5LiKIDwgdGVpc2Fpam91XCA7CivkvIrpgZTnlLcgPCBkYXRlb3Rva29cIDsKK+S8keWIiuaXpSA8IGt5dXVrYW5iaVwgOwor6IKY6YmEIDwgaGlqaXRldHN1XCA7Civos4PppIUgPCBjaGlubW9jaGlcIDsKK+WPpOWFuOWtpiA8IGtvdGVuZ2FrdVwgOwor5a6d6LKdIDwgdGFrYXJhZ2FpXCA7Civou73lj6MgPCBrYXJ1a3VjaGlcIDsKK+aUueiogueJiCA8IGthaXRlaWJhblwgOwor55Sf5a2Y5qipIDwgc2Vpem9ua2VuXCA7CivotoXohLEgPCBjaG91ZGF0c3VcIDsKK+ipsuWVj+mhjCA8IGdhaW1vbmRhaVwgOwor5pqX5Y+35a2mIDwgYW5nb3VnYWt1XCA7Civku6PooYzogIUgPCBkYWlrb3VzaGFcIDsKK+eUt+eJqSA8IG90b2tvbW9ub1wgOwor5YWr5Y2D5q2zIDwgeWFjaGl0b3NlXCA7Civlj6PnnJ/kvLwgPCBrdWNoaW1hbmVcIDsKK+WHuueJiOmDqCA8IHNodXBwYW5idVwgOwor6IG36ZW3IDwgc2hva3VjaG91XCA7CivoprPmuKzmiYAgPCBrYW5zb2t1am9cIDsKK+e1jOa4iOeVjCA8IGtlaXphaWthaVwgOwor5LiN54ax5b+DIDwgZnVuZXNzaGluXCA7Civlhazms5XkurogPCBrb3Vob3VqaW5cIDsKK+S8keecoOacnyA8IGt5dXVtaW5raVwgOwor5Ymv57eP55CGIDwgZnVrdXNvdXJpXCA7CivkvLTlpY/ogIUgPCBiYW5zb3VzaGFcIDsKK+Wvvuirh+iAhSA8IHRhaWRhbnNoYVwgOwor6LK/5piT5rOVIDwgYm91ZWtpaG91XCA7CivlnJLpgYrkvJogPCBlbicneXV1a2FpXCA7Civos5vmiJDogIUgPCBzYW5zZWlzaGFcIDsKK+S7j+mhlCA8IGhvdG9rZWdhb1wgOwor6Iq46IO95Lq6IDwgZ2Vpbm91amluXCA7CivliIborbLlnLAgPCBidW5qb3VjaGlcIDsKK+WxiOWFieaApyA8IGt1a2tvdXNlaVwgOwor55yf54+g5rm+IDwgc2hpbmp1d2FuXCA7Civku4/poJggPCBmdXRzdXJ5b3VcIDsKK+S6pOmAmuemjSA8IGtvdXRzdXVrYVwgOwor5oud54Gr5pWZIDwgaGFpa2FreW91XCA7CivnrofmnaHmm7ggPCBrYWpvdWdha2lcIDsKK+eVpeattCA8IHJ5YWt1cmVraVwgOwor6YG45oyZ5Lq6IDwgc2Vua3lvbmluXCA7CivpharovrLlrrYgPCByYWt1bm91a2FcIDsKK+W3peiKuOWTgSA8IGtvdWdlaWhpblwgOwor5pyq5p2l5Z6LIDwgbWlyYWlnYXRhXCA7CivlvIHpsJPpoZ4gPCBiZW5zYWlydWlcIDsKK+eEoeizh+agvCA8IG11c2hpa2FrdVwgOwor5Lu75ZG95qipIDwgbmlubWVpa2VuXCA7CivomavlnoLngo4gPCBjaHV1c3VpZW5cIDsKK+mqqOafhCA8IGtvdHN1Z2FyYVwgOwor5pyo5oi45b6h5YWNIDwga2lkb2dvbWVuXCA7CivnoLTokL3miLggPCBnb3JvdHN1a2lcIDsKK+e3qeS4i+iWrCA8IGthbmdleWFrdVwgOwor5pyJ5qmf55qEIDwgeXV1a2l0ZWtpXCA7CivotaToibIgPCBzZWtpc2hva3VcIDsKK+ato+WPjeWvviA8IHNlaWhhbnRhaVwgOwor5bC755mWIDwgc2hpcmlrdXNlXCA7CivpnZLmtbfljp8gPCBhb3VuYWJhcmFcIDsKK+WHuemdoumPoSA8IG91bWVua3lvdVwgOwor5aCx6YGT6ZmjIDwgaG91ZG91amluXCA7CivmpbXlsI8gPCBreW9rdXNob3VcIDsKK+WKo+WLouaEnyA8IHJlc3NlaWthblwgOwor6Ieq5bex55aO5aSWIDwgamlrb3NvZ2FpXCA7Civkv7XniakgPCBoeW91bW90c3VcIDsKK+W+oeaWmeWcsCA8IGdvcnlvdWNoaVwgOwor55Sf54iqIDwgbmFtYWR6dW1lXCA7Civmnb7poqggPCBtYXRzdWthemVcIDsKK+ioiOeul+iAhSA8IGtlaXNhbnNoYVwgOwor54Sh6aeE5Y+jIDwgbXVkYWd1Y2hpXCA7CivmnY7mib/mmakgPCByaXNob3ViYW5cIDsKK+i2hee1tiA8IGNob3V6ZXRzdVwgOwor6Ii55a6kIDwgc2Vuc2hpdHN1XCA7Civnpo/pn7Pmm7ggPCBmdWt1aW5zaG9cIDsKK+WFq+WNpuaOjCA8IGhha2tlc2hvdVwgOwor6Ieq5Li755qEIDwgamlzaHV0ZWtpXCA7CivpgLLmranlhZogPCBzaGlucG90b3VcIDsKK+ebuOWPjeaApyA8IHNvdWhhbnNlaVwgOwor6IO95YuV5oWLIDwgbm91ZG91dGFpXCA7Civlj7jku6TlrpggPCBzaGlyZWlrYW5cIDsKK+WcsOmch+ioiCA8IGppc2hpbmtlaVwgOwor57SZ5LiA6YeNIDwga2FtaWhpdG9lXCA7CivmsLTliqDmuJsgPCBtaXp1a2FnZW5cIDsKK+WHuueJiOiyuyA8IHNodXBwYW5oaVwgOwor5p6c5aCx6ICFIDwga2Fob3Vtb25vXCA7CivmiJDplbfmnJ8gPCBzZWljaG91a2lcIDsKK+iFuueGsSA8IHNlbicnbmV0c3VcIDsKK+a1hOWcn+aVmSA8IGpvdWRva3lvdVwgOwor5p2f6auqIDwgc29rdWhhdHN1XCA7Civou6Llh7ogPCB0ZW5zaHV0c3VcIDsKK+WkqeS6leadvyA8IHRlbmpvdWl0YVwgOwor6ZuG5aG15qmfIDwgc2h1dWppbmtpXCA7Civlh4zms6LmgKcgPCByeW91aGFzZWlcIDsKK+W/q+eUt+WtkCA8IGthaWRhbnNoaVwgOwor5aSp54uX6Iy4IDwgdGVuZ3V0YWtlXCA7Civni5nmkoPlhbUgPCBzb2dla2loZWlcIDsKK+Wklui8quWxsSA8IGdhaXJpbnphblwgOwor5piH6ZmN5qmfIDwgc2hvdWtvdWtpXCA7Civln7rnpI7mjqfpmaQgPCBraXNva291am9cIDsKK+WztuWztiA8IHNoaW1hamltYVwgOwor5pS+54Gr54uCIDwgaG91a2FreW91XCA7CivpoqjppqzniZsgPCBmdXViYWd5dXVcIDsKK+mZtuWZqOWVhiA8IHRvdWtpc2hvdVwgOwor55Wl5pyNIDwgcnlha3VmdWt1XCA7CivkuInloYHnt5ogPCBzYW5ydWlzZW5cIDsKK+WztuWxsSA8IHNoaW1heWFtYVwgOwor6YGT576p5b+DIDwgZG91Z2lzaGluXCA7CivotoXmmYLnqbogPCBjaG91amlrdXVcIDsKK+W+rueykuWtkCA8IGJpcnl1dXNoaVwgOwor5rC05bmz57eaIDwgc3VpaGVpc2VuXCA7Civlho3lsIvllY8gPCBzYWlqaW5tb25cIDsKK+msseWLgyA8IHV0c3Vib3RzdVwgOwor5p2x6ZuyIDwgc2hpbm9ub21lXCA7CivnlJ/mu4UgPCBzaG91bWV0c3VcIDsKK+a4heaOg+i7iiA8IHNlaXNvdXNoYVwgOwor5L+X54mpIDwgem9rdWJ1dHN1XCA7CivohLHnoasgPCBkYXRzdXJ5dXVcIDsKK+iEiOe1oSA8IG15YWt1cmFrdVwgOwor5LiA5a6a5rip5bqmIDwgaXR0ZWlvbmRvXCA7CivmnIDliY3nt5ogPCBzYWl6ZW5zZW5cIDsKK+e1tuWvvuiAhSA8IHpldHRhaXNoYVwgOwor5q2j56K65bqmIDwgc2Vpa2FrdWRvXCA7CivmsLfliYrmqZ8gPCBoeW91c2Fra2lcIDsKK+WIhuino+iDvSA8IGJ1bmthaW5vdVwgOwor5Zub6KeS5b2iIDwgc2hpa2Fra2VpXCA7CivlrqPoqIDmm7ggPCBzZW5nZW5zaG9cIDsKK+WPuOS7pOWhlCA8IHNoaXJlaXRvdVwgOwor5a2m6K2YIDwgZ2FrdXNoaWtpXCA7Civnq4vlpKrlrZAgPCByaXR0YWlzaGlcIDsKK+aciei5hOmhniA8IHl1dXRlaXJ1aVwgOwor5L2/55So6ICFIDwgc2hpeW91c2hhXCA7CivkvrXnlaUgPCBzaGlucnlha3VcIDsKK+WkqeS4iueVjCA8IHRlbmpvdWthaVwgOwor6Z2S5rW35LqAIDwgYW91bWlnYW1lXCA7CivmnaXpgYrogIUgPCByYWl5dXVzaGFcIDsKK+W3qOS6uui7jSA8IGt5b2ppbmd1blwgOwor5a2m6YOo55SfIDwgZ2FrdWJ1c2VpXCA7Civlt6Xlrabpg6ggPCBrb3VnYWt1YnVcIDsKK+aVmeenkeabuCA8IGt5b3VrYXNob1wgOwor57WM5riI5rOVIDwga2VpemFpaG91XCA7CivnoLTlgrfpoqggPCBoYXNob3VmdXVcIDsKK+iBt+iyrCA8IHNob2t1c2VraVwgOwor5oyB5Y+C5Lq6IDwgamlzYW4nJ25pblwgOwor57eP552j5bqcIDwgc291dG9rdWZ1XCA7Civml6XmnKzpq6ogPCBuaWhvbmdhbWlcIDsKK+iJtuS6iyA8IHRzdXlhZ290b1wgOwor5Yi25b6h5qOSIDwgc2VpZ3lvYm91XCA7CivmpJzmoYjmm7ggPCBrZW4nJ2Fuc2hvXCA7CivnjonptKsgPCB0YW1hc2hpZ2lcIDsKK+atqemBk+apiyA8IGhvZG91a3lvdVwgOwor5Zyw5pa557SZIDwgY2hpaG91c2hpXCA7Civml6Xlgq3lj5YgPCBoaXlvdXRvcmlcIDsKK+WcsOeNhOWkiSA8IGppZ29rdWhlblwgOwor5ZCI5aWP5ZujIDwgZ2Fzc291ZGFuXCA7Civnk6bniYggPCBrYXdhcmFiYW5cIDsKK+WkqeS6leaJhyA8IHRlbmpvdXNlblwgOwor5YK35Y+jIDwga2l6dWd1Y2hpXCA7Civlhajlj43lsIQgPCB6ZW5oYW5zaGFcIDsKK+Wvhue0hCA8IG1pdHN1eWFrdVwgOwor5aSJ6YCf5qmfIDwgaGVuc29rdWtpXCA7CivnhKHnkIblvI8gPCBtdXJpc2hpa2lcIDsKK+i7veWKtOWDjSA8IGtlaXJvdWRvdVwgOwor5a2m6KGTIDwgZ2FrdWp1dHN1XCA7CivmraPlj43lkIggPCBzZWloYW5nb3VcIDsKK+e1jOa4iOashCA8IGtlaXphaXJhblwgOwor6LuS5LiLIDwgbm9raXNoaXRhXCA7Civou4rku6MgPCBrdXJ1bWFkYWlcIDsKK+WAn+aWmSA8IHNoYWt1cnlvdVwgOwor55Sf5a2X5byVIDwgaWtpamliaWtpXCA7CivmipXnpajljLogPCB0b3VoeW91a3VcIDsKK+S6uumBlCA8IGhpdG90YWNoaVwgOwor5pyo5puc5pelIDwgbW9rdXlvdWJpXCA7Civlh7rmnKjlubQgPCBkZWtpZG9zaGlcIDsKK+WAmeaWhyA8IHNvdXJvdWJ1blwgOwor56KT5rC35bOgIDwgdXN1aXRvdWdlXCA7Civlr7rnlLcgPCB0ZXJhb3Rva29cIDsKK+WKoOWFpemHkSA8IGthbnl1dWtpblwgOwor5rCR6ZaT5Lq6IDwgbWlua2FuamluXCA7Civlhazli5/moKogPCBrb3Vib2thYnVcIDsKK+alteWMlyA8IGt5b2t1aG9rdVwgOwor5LmX6aas5pyNIDwgam91YmFmdWt1XCA7CivohLHnjYQgPCBkYXRzdWdva3VcIDsKK+aXpeacrOmgmCA8IG5paG9ucnlvdVwgOwor6JGX5pu45ZCNIDwgY2hvc2hvbWVpXCA7CivntYzllrblraYgPCBrZWllaWdha3VcIDsKK+eZvemJm+mJsSA8IGhha3VlbmtvdVwgOwor55S65pa5IDwgbWFjaGlrYXRhXCA7Civnspfnm67ns5YgPCB6YXJhbWV0b3VcIDsKK+aJi+WJjeWRs+WZjCA8IHRlbWFlbWlzb1wgOwor5YaF546E6ZaiIDwgbmFpZ2Vua2FuXCA7CivlnLDmlrnnqI4gPCBjaGlob3V6ZWlcIDsKK+mrmOWdjyA8IHRha2F0c3VraVwgOwor5beh5p+76ZW3IDwganVuc2FjaG91XCA7CivljbDliLfmqZ8gPCBpbnNhdHN1a2lcIDsKK+WHjeatu+iAhSA8IHRvdXNoaXNoYVwgOwor55m96YqF6LKoIDwgaGFrdWRvdWthXCA7Civosrjos4MgPCBrYXNoaWNoaW5cIDsKK+WOn+Wni+S6uiA8IGdlbnNoaWppblwgOwor5Yqg5bel6LODIDwga2Frb3VjaGluXCA7CivlhYHmloflhYHmraYgPCBpbmJ1bmluYnVcIDsKK+eruei8qum6qSA8IGNoaWt1d2FmdVwgOwor5LiA5pa555qEIDwgaXBwb3V0ZWtpXCA7Civlh7rku5XkuosgPCBkZXNoaWdvdG9cIDsKK+ato+W/teWgtCA8IHNob3VuZW5iYVwgOwor5YCJ5pW3IDwga3VyYXNoaWtpXCA7CivkuZ7po58gPCBrb3RzdWppa2lcIDsKK+aflOmBk+WgtCA8IGp1dWRvdWpvdVwgOwor6ISK6auE54KOIDwgc2VraXp1aWVuXCA7Civkuozph43ph5wgPCBuaWp1dWdhbWFcIDsKK+eri+aWueS9kyA8IHJpcHBvdXRhaVwgOwor5Ly457iuIDwgc2hpbnNodWt1XCA7CivpgaDpmpTmgKcgPCBlbmtha3VzZWlcIDsKK+i7veatjOWKhyA8IGtlaWthZ2VraVwgOwor5Yi25YuV54GvIDwgc2VpZG91dG91XCA7CivlgqznnKDliaQgPCBzYWltaW56YWlcIDsKK+S7iuS4gOW6piA8IGltYWljaGlkb1wgOwor5pS76Ziy5oimIDwga291Ym91c2VuXCA7CivmtYTlnJ/lrpcgPCBqb3Vkb3NodXVcIDsKK+aTjee4puahvyA8IHNvdWp1dWthblwgOwor5paH5piO6aSoIDwgYnVubWVpa2FuXCA7CivlsI7plqLmlbAgPCBkb3VrYW5zdXVcIDsKK+a7nuWcqOWcsCA8IHRhaXphaWNoaVwgOwor5Lq66LOqIDwgaGl0b2ppY2hpXCA7CivmnJ3po58gPCBjaG91c2hva3VcIDsKK+S4iue0jeexsyA8IGpvdW5vdW1haVwgOwor5a6H5a6Z5pyNIDwgdWNodXVmdWt1XCA7CivliKnlj6PogIUgPCByaWtvdW1vbm9cIDsKK+aWueazleirliA8IGhvdWhvdXJvblwgOwor6JOL54S25oCnIDwgZ2FpemVuc2VpXCA7CivljYroo73lk4EgPCBoYW5zZWloaW5cIDsKK+Wzu+WIpSA8IHNodW5iZXRzdVwgOwor5LiA5aC06Z2iIDwgaWNoaWJhbWVuXCA7Civnn7PniYjnlLsgPCBzZWtpYmFuZ2FcIDsKK+eZu+mMsuewvyA8IHRvdXJva3Vib1wgOwor6Ieq5pq06Ieq5qOEIDwgamlib3VqaWtpXCA7CivkuIDmmKjmmakgPCBpc3Nha3ViYW5cIDsKK+WxiuabuCA8IHRvZG9rZXNob1wgOwor5a6i562LIDwga3lha3VzdWppXCA7CivlpJrmpbXljJYgPCB0YWt5b2t1a2FcIDsKK+Wkp+S4gOeVqiA8IG9vaWNoaWJhblwgOwor6KGb5pif5Zu9IDwgZWlzZWlrb2t1XCA7Civnm7jmkrLpg6jlsYsgPCBzdW1vdWJleWFcIDsKK+acjemjviA8IGZ1a3VzaG9rdVwgOwor5YKR5Ye6IDwga2Vzc2h1dHN1XCA7CivkvJHogbcgPCBreXV1c2hva3VcIDsKK+S4i+e0mueUnyA8IGtha3l1dXNlaVwgOwor5qiZ5rqW5pmCIDwgaHlvdWp1bmppXCA7CivkuozpgZMgPCBmdXRhbWljaGlcIDsKK+mrmOm9ouiAhSA8IGtvdXJlaXNoYVwgOwor5LiA5LiB5YmNIDwgaXRjaG91bWFlXCA7CivoiLnkuLsgPCBmdW5hbnVzaGlcIDsKK+mjn+mAmiA8IHNob2t1dHN1dVwgOwor5qiq5oGL5oWVIDwgeW9rb3JlbmJvXCA7CivosqHnlKPnqI4gPCB6YWlzYW56ZWlcIDsKK+iHquW3seS/neWtmCA8IGppa29ob3pvblwgOwor5LqM6YeN6LqrIDwgbmlqdXVzaGluXCA7CivlrqLnqK4gPCBreWFrdWRhbmVcIDsKK+iziuiZkCA8IHpva3VneWFrdVwgOwor55Sf55CG5a2mIDwgc2VpcmlnYWt1XCA7CivnhrHlmajlhbcgPCBuZXRzdWtpZ3VcIDsKK+WvkuWGt+e0lyA8IGthbnJlaXNoYVwgOwor5rC06YGT5qCTIDwgc3VpZG91c2VuXCA7CivmjqLntKLmnKggPCB0YW5zYWt1Z2lcIDsKK+eglOeptuenkSA8IGtlbmt5dXVrYVwgOwor5Lmz6YmiIDwgbnl1dWJhY2hpXCA7CivmnIjpoY0gPCBnZXRzdWdha3VcIDsKK+Wun+aWveS+iyA8IGppc3NoaXJlaVwgOwor6ZW36Z+z6ZqOIDwgY2hvdW9ua2FpXCA7CivkuI3oqZXliKQgPCBmdWh5b3ViYW5cIDsKK+aciOmggyA8IHRzdWtpZ29yb1wgOwor6YG45omL5ZujIDwgc2Vuc2h1ZGFuXCA7CivkvZznlLcgPCBzYWt1b3Rva29cIDsKK+WkmuS6i+WkmuerryA8IHRhaml0YXRhblwgOwor5Yqf5Yip55qEIDwga291cml0ZWtpXCA7CivlpKnnkIPlhIAgPCB0ZW5reXV1Z2lcIDsKK+eUt+W9uSA8IG90b2tveWFrdVwgOwor55yf54+g5bGkIDwgc2hpbmp1c291XCA7CivlubPlnYfngrkgPCBoZWlraW50ZW5cIDsKK+S4ium2siA8IGpvdWJpdGFraVwgOwor6IWV5p6VIDwgdWRlbWFrdXJhXCA7CivpgKPlkIjkvJogPCByZW5nb3VrYWlcIDsKK+W3pealreWMliA8IGtvdWd5b3VrYVwgOwor6LWk6YGT5YSAIDwgc2VraWRvdWdpXCA7CivotaTnhrEgPCBzZWtpbmV0c3VcIDsKK+aWh+WtpuW6pyA8IGJ1bmdha3V6YVwgOwor5puW5pin5qih57OKIDwgYWltYWltb2tvXCA7CivoiIzlhYggPCBzaGl0YXNha2lcIDsKK+WKtOWDjeWFmiA8IHJvdWRvdXRvdVwgOwor6IW55oyBIDwgaGFyYW1vY2hpXCA7CivntYzmuIjmiKYgPCBrZWl6YWlzZW5cIDsKK+ePjeiqrCA8IGNoaW5zZXRzdVwgOwor57Gz56m66LuNIDwgYmVpa3V1Z3VuXCA7CivmlbflsYXnva4gPCBzaGlraWljaGlcIDsKK+S7mOiQvSA8IHRzdWtlb2NoaVwgOwor6YWN5b2T6YeRIDwgaGFpdG91a2luXCA7CivohbDmjpsgPCBrb3NoaWtha2VcIDsKK+S5hemXiiA8IGt5dXVrYXRzdVwgOwor6aOb6JqK55eHIDwgaGlidW5zaG91XCA7Civlr4bnjJ8gPCBtaXRzdXJ5b3VcIDsKK+i1pOeXouiPjCA8IHNla2lyaWtpblwgOwor5LqU5Y2B6IKpIDwgZ29qdXVrYXRhXCA7Civpq5jnrYnlrpggPCBrb3V0b3VrYW5cIDsKK+WcsOaWueeJiCA8IGNoaWhvdWJhblwgOwor55Sz5bm0IDwgc2FydWRvc2hpXCA7CivmnZDos6ogPCB6YWlzaGl0c3VcIDsKK+eJh+iEs+ayuSA8IGhlbicnbm91eXVcIDsKK+advuidiSA8IG1hdHN1emVtaVwgOwor5LqL5YuZ5qyh5a6YIDwgamltdWppa2FuXCA7CivlpYnooYzmiYAgPCBidWd5b3VzaG9cIDsKK+iCr+WumuaWhyA8IGtvdXRlaWJ1blwgOwor5Lqs6KGoIDwga3lvdW9tb3RlXCA7CivoirPpppnliaQgPCBob3Vrb3V6YWlcIDsKK+eBq+eBvea1gSA8IGthc2Fpcnl1dVwgOwor5Y2w5Yi35omAIDwgaW5zYXRzdWpvXCA7CivmooXmmqYgPCB1bWVnb3lvbWlcIDsKK+Wkp+iBluWggiA8IGRhaXNlaWRvdVwgOwor57WM5riI5oCnIDwga2VpemFpc2VpXCA7Civom4fntIvnn7MgPCBqYW1vbnNla2lcIDsKK+a1geihjOatjCA8IHJ5dXVrb3VrYVwgOwor5L2c54mpIDwgc2FrdW1vdHN1XCA7Civos57nvbAgPCBzaG91YmF0c3VcIDsKK+S4ieinkua0siA8IHNhbmtha3VzdVwgOwor5a6k55S6IDwgbXVyb21hY2hpXCA7CivkuInmlofliKQgPCBzYW5tb25iYW5cIDsKK+S4ieinkuazoiA8IHNhbmtha3VoYVwgOwor5a6f6Zqb5oCnIDwgamlzc2Fpc2VpXCA7Civnq7nnn6LmnaUgPCB0YWtleWFyYWlcIDsKK+W5s+ihjOe3miA8IGhlaWtvdXNlblwgOwor6JGx5Z2K5Li7IDwgbmVnaWJvdXp1XCA7CivlravlvJ/lrZAgPCBtYWdvZGVzaGlcIDsKK+WuueepjeavlCA8IHlvdXNla2loaVwgOwor5Li755y854K5IDwgc2h1Z2FudGVuXCA7CivpgaDpmpTlnLAgPCBlbmtha3VjaGlcIDsKK+S4ieinkuavlCA8IHNhbmtha3VoaVwgOwor5bCP5puyIDwgc2hvdWt5b2t1XCA7CivplbfmmYLplpMgPCBjaG91amlrYW5cIDsKK+WNiuerr+iAhSA8IGhhbnBhbW9ub1wgOwor54us56aB5rOVIDwgZG9ra2luaG91XCA7CivluoPlkYrosrsgPCBrb3Vrb2t1aGlcIDsKK+aknOWHuiA8IGtlbnNodXRzdVwgOwor5pyA5YSq6YGHIDwgc2FpeXV1Z3V1XCA7Civlj7DpoqjnnLwgPCB0YWlmdXVnYW5cIDsKK+acquaVmeiCsiA8IG1pa3lvdWlrdVwgOwor5L+K5oqcIDwgc2h1bmJhdHN1XCA7Civoo4Hmlq3luKsgPCBzYWlkYW5zaGlcIDsKK+iCieethiA8IG5pa3VoaXRzdVwgOwor5YWo5Y2Y5bCEIDwgemVudGFuc2hhXCA7CivohbDlvLEgPCBrb3NoaXlvd2FcIDsKK+WKueaenOeahCA8IGtvdWthdGVraVwgOwor56m65omL5b2iIDwga3V1dGVnYXRhXCA7CivljbDliLvluKsgPCBpbmtva3VzaGlcIDsKK+iDhueOiSA8IGtpbW90dGFtYVwgOwor6Z2S5bm06LypIDwgc2VpbmVuaGFpXCA7CivlibLng7nlupcgPCBrYXBwb3V0ZW5cIDsKK+advuiMuCA8IG1hdHN1dGFrZVwgOwor6LK/5piT5ZOBIDwgYm91ZWtpaGluXCA7CivliYrlsqnmqZ8gPCBzYWt1Z2Fua2lcIDsKK+ahnOahgyA8IHNha3VyYW5ib1wgOwor5a+C5ruFIDwgamFrdW1ldHN1XCA7CivmnKzos6ogPCBob25zaGl0c3VcIDsKK+WujOS6huW+jCA8IGthbnJ5b3Vnb1wgOwor5aSn5LiK5q61IDwgZGFpam91ZGFuXCA7CivlnJLoirjlraYgPCBlbmdlaWdha3VcIDsKK+aMh+ebuOaSsiA8IHl1Yml6dW1vdVwgOwor5rCX5a6H5bqD5aSnIDwga2l1a291ZGFpXCA7CivogqnnlLLluK8gPCBrZW5rb3V0YWlcIDsKK+ato+W9k+aApyA8IHNlaXRvdXNlaVwgOwor55Sj5a6kIDwgc2Fuc2hpdHN1XCA7CivnoILns5bmsLQgPCBzYXRvdW1penVcIDsKK+aWuemMkOW9oiA8IGhvdXN1aWtlaVwgOwor55u45b2T5pWwIDwgc291dG91c3V1XCA7CivohbDluIMgPCBrb3NoaW51bm9cIDsKK+iFsOW3uyA8IGtvc2hpbWFraVwgOwor5L2D54WuIDwgdHN1a3VkYW5pXCA7CivphrjpgKDphZIgPCBqb3V6b3VzaHVcIDsKK+W3puS4remWkyA8IHNhY2h1dWthblwgOwor5Lyd5Luk6ICFIDwgZGVucmVpc2hhXCA7CivmnKjntr/ph50gPCBtb21lbmJhcmlcIDsKK+ahgeapiyA8IGtldGFiYXNoaVwgOwor5pyo54mI55S7IDwgbW9rdWhhbmdhXCA7CivmpJzmn7vlvbkgPCBrZW5zYXlha3VcIDsKK+W/mOW5tOS8miA8IGJvdW5lbmthaVwgOwor5a6H5a6Z5a2mIDwgdWNodXVnYWt1XCA7CivmnLToqKUgPCBib2t1dG90c3VcIDsKK+mjn+iZqyA8IHNob2t1Y2h1dVwgOwor55yf55CG5YCkIDwgc2hpbnJpY2hpXCA7CivphY3msLTnrqEgPCBoYWlzdWlrYW5cIDsKK+WkqumZvemiqCA8IHRhaXlvdWZ1dVwgOwor5p2+6ISCIDwgbWF0c3V5YW5pXCA7CivkuIPpm6MgPCBzaGljaGluYW5cIDsKK+S9v+eUqOazlSA8IHNoaXlvdWhvdVwgOwor5Y2w5Yi35bGLIDwgaW5zYXRzdXlhXCA7Civpn7Plo7DlraYgPCBvbnNlaWdha3VcIDsKK+S8iumBlOWlsyA8IGRhdGVvbicnbmFcIDsKK+eUt+WdgiA8IG90b2tvemFrYVwgOwor5a6/5rOKIDwgc2h1a3VoYWt1XCA7CivkvK/niLUgPCBoYWt1c2hha3VcIDsKK+aik+W8kyA8IGF6dXNheXVtaVwgOwor5Ymv6Kme5Y+lIDwgZnVrdXNoaWt1XCA7Civlrp/mlbDkvZMgPCBqaXNzdXV0YWlcIDsKK+WkmuaVsOaEj+imiyA8IHRhc3V1aWtlblwgOwor6aSF6IKMIDwgbW9jaGloYWRhXCA7Civoo4/plbflsYsgPCB1cmFuYWdheWFcIDsKK+adseW3peWkpyA8IHRvdWtvdWRhaVwgOwor5bGF5a6kIDwga3lvc2hpdHN1XCA7CivpoY3pmpsgPCBoaXRhaWdpd2FcIDsKK+eVmeWIpSA8IHJ5dXViZXRzdVwgOwor5q2v56eR5Yy75birIDwgc2hpa2Fpc2hpXCA7CivoirHmmYLoqIggPCBoYW5hZG9rZWlcIDsKK+ijvemAoOWTgSA8IHNlaXpvdWhpblwgOwor6KiI566X5pu4IDwga2Vpc2Fuc2hvXCA7CivliLbli5XmiYsgPCBzZWlkb3VzaHVcIDsKK+S4jeimj+W+iyA8IGZ1a2lyaXRzdVwgOwor5Y+j6IWU55mMIDwga291a291Z2FuXCA7Civlm57nrZTogIUgPCBrYWl0b3VzaGFcIDsKK+WNmOW+k+mZoyA8IHRhbmp1dWppblwgOwor5Y+N6Iux6ZuEIDwgaGFuJydlaXl1dVwgOwor5Li75qip6ICFIDwgc2h1a2Vuc2hhXCA7CivlpKfmnKzlsbEgPCBkYWlob256YW5cIDsKK+S4reWSjOWJpCA8IGNodXV3YXphaVwgOwor5oWI5ZaE566xIDwgaml6ZW5iYWtvXCA7CivmnIDlt6bnv7wgPCBzYWlzYXlva3VcIDsKK+S4ieinkuaXlyA8IHNhbmtha3VraVwgOwor576O5YyW6YGL5YuVIDwgYmlrYXVuZG91XCA7CivliqDlhaXogIUgPCBrYW55dXVzaGFcIDsKK+ijvuaooeanmCA8IHN1c29tb3lvdVwgOwor5LiA6Zq755y8IDwgaXNzZWtpZ2FuXCA7Civkvb/nlKjmqKkgPCBzaGl5b3VrZW5cIDsKK+i/keS9k+ipqSA8IGtpbnRhaXNoaVwgOwor5aSp54u85pifIDwgdGVucm91c2VpXCA7CivotIjniakgPCBva3VyaW1vbm9cIDsKK+WGjeeKr+iAhSA8IHNhaWhhbnNoYVwgOwor5ZOo5oiS5qmfIDwgc2hvdWthaWtpXCA7CivpgJrpgY7pp4UgPCB0c3V1a2Fla2lcIDsKK+Wkp+S6uuWFsSA8IG90b25hZG9tb1wgOwor6aeQ5pelIDwgY2h1dW5pY2hpXCA7Civoi6blv4Poq4cgPCBrdXNoaW5kYW5cIDsKK+aTjee4puWjqyA8IHNvdWp1dXNoaVwgOwor55yf54+g5YWJIDwgc2hpbmp1a291XCA7Civmn7/muIsgPCBrYWtpc2hpYnVcIDsKK+mAn+W6puioiCA8IHNva3Vkb2tlaVwgOwor54Sh6LKs5Lu7IDwgbXVzZWtpbmluXCA7Civmkq3kvYbnt5ogPCBiYW50YW5zZW5cIDsKK+iBluiqleelrSA8IHNlaXRhbnNhaVwgOwor54Sh5LiA5paHIDwgbXVpY2hpbW9uXCA7CivluLjliIbmlbAgPCBqb3VidW5zdXVcIDsKK+S4i+mHkSA8IHNoaXRhZ2FuZVwgOwor5Lit6LaKIDwgY2h1dWdvc2hpXCA7Civlho3ogIPmha4gPCBzYWlrb3VyeW9cIDsKK+WEgOWFuOmVtyA8IGdpdGVuY2hvdVwgOwor5bel5a2m56eRIDwga291Z2FrdWthXCA7Civoh6rlt7HkuLvnvqkgPCBqaWtvc2h1Z2lcIDsKK+WqkuizqiA8IGJhaXNoaXRzdVwgOwor5Lqk5q2T5LyaIDwga291a2Fua2FpXCA7CivlpKnosaHlhIAgPCB0ZW5zaG91Z2lcIDsKK+S5vuiNiSA8IGhvc2hpZ3VzYVwgOwor55C054iqIDwga290b2R6dW1lXCA7CivohbDlnqMgPCBrb3NoaWdha2lcIDsKK+W8leeUqOaWhyA8IGluJyd5b3VidW5cIDsKK+S/guWumCA8IGtha2FyaWthblwgOwor6I2S5rOV5birIDwgYXJhaG91c2hpXCA7CivohIjmkI8gPCBteWFrdWhha3VcIDsKK+eOieiZqyA8IHRhbWFtdXNoaVwgOwor55Sf5ZS+IDwgbmFtYXRzdWJhXCA7Civlrp/ooYzlp5Tlk6EgPCBqaWtrb3VpaW5cIDsKK+eZgumkiuiyuyA8IHJ5b3V5b3VoaVwgOwor5qmf6Zai6ZW3IDwga2lrYW5jaG91XCA7CivlkJHlnLDmgKcgPCBrb3VjaGlzZWlcIDsKK+WHseaXi+mWgCA8IGdhaXNlbm1vblwgOwor6aOf6IKJIDwgc2hva3VuaWt1XCA7CivoqK3lgpnosrsgPCBzZXRzdWJpaGlcIDsKK+advuesoCA8IG1hdHN1a2FzYVwgOwor6KOB57ir5birIDwgc2FpaG91c2hpXCA7CivosqHnlKPmqKkgPCB6YWlzYW5rZW5cIDsKK+aKleefs+apnyA8IHRvdXNla2lraVwgOwor5oSb5qCh5b+DIDwgYWlrb3VzaGluXCA7CivkvI/prZTmrr8gPCBmdWt1bWFkZW5cIDsKK+iMtuWZqOe1hCA8IGNoYWtpZ3VtaVwgOwor5LiJ5aGB5omLIDwgc2FucnVpc2h1XCA7CivkuIPpgZMgPCBzaGljaGlkb3VcIDsKK+iZmueEoeeahCA8IGt5b211dGVraVwgOwor55Sz5YWlIDwgbW91c2hpaXJlXCA7CivkvJ3lsI7mgKcgPCBkZW5kb3VzZWlcIDsKK+WuouanmCA8IGt5YWt1c2FtYVwgOwor5paH5a2X5YiXIDwgbW9qaXJldHN1XCA7Civlj43oirvpoZ4gPCBoYW5zdXVydWlcIDsKK+WumuWei+ipqSA8IHRlaWtlaXNoaVwgOwor5rC06I+T5a2QIDwgbWl6dWdhc2hpXCA7CivlgJ/kuLsgPCBrYXJpbnVzaGlcIDsKK+m7jeWbo+WtkCA8IGtpYmlkYW5nb1wgOwor6Luf5Y+j6JOLIDwgbmFua291Z2FpXCA7Civkub7ogokgPCBob3NoaW5pa3VcIDsKK+mXh+ebuOWgtCA8IHlhbWlzb3ViYVwgOwor5a6/5paZIDwgc2h1a3VyeW91XCA7Civlrp/mpa0gPCBqaXRzdWd5b3VcIDsKK+WQiOawl+mBk+WutiA8IGFpa2lkb3VrYVwgOwor5a6/5pW1IDwgc2h1a3V0ZWtpXCA7CivlroflrpnljZogPCB1Y2h1dWhha3VcIDsKK+S4g+i8qiA8IHNoaWNoaXJpblwgOwor55Sj5Ye6IDwgc2Fuc2h1dHN1XCA7CivoiqXlrZDoj5wgPCBrYXJhc2hpbmFcIDsKK+ePjemBk+WFtyA8IGNoaW5kb3VndVwgOwor5L2V5pelIDwgbmFuJyduaWNoaVwgOwor6LOq54K5IDwgc2hpdHN1dGVuXCA7Civpu4TooajntJkgPCBraWJ5b3VzaGlcIDsKK+iEs+WupCA8IG5vdXNoaXRzdVwgOwor5b6T5aeJ5aa5IDwganV1c2hpbWFpXCA7CivlsbHkvI8gPCB5YW1hYnVzaGlcIDsKK+WtkOemj+iAhSA8IGtvYnVrdXNoYVwgOwor5oCd5oOz55WMIDwgc2hpc291a2FpXCA7CivmsJHooYbljJYgPCBtaW5zaHV1a2FcIDsKK+mIjem7hOiJsiA8IG5pYnVraWlyb1wgOwor5a6f5qCqIDwgaml0c3VrYWJ1XCA7CivkuInop5LlvaIgPCBzYW5rYWtrZWlcIDsKK+S+teWlqiA8IHNoaW5kYXRzdVwgOwor5aSn5pys5Za2IDwgZGFpaG9uJydlaVwgOwor54yb54m56KiTIDwgbW91dG9ra3VuXCA7CivnlLrkuK0gPCBtYWNoaW5ha2FcIDsKK+eUuuS4piA8IG1hY2hpbmFtaVwgOwor5LqI5ZGK57eoIDwgeW9rb2t1aGVuXCA7Civlhrfmub/luIMgPCByZWlzaGlwcHVcIDsKK+aomea6luWMliA8IGh5b3VqdW5rYVwgOwor5LiK6LOqIDwgam91c2hpdHN1XCA7CivkuIvosrwgPCBzaGl0YWJhcmlcIDsKK+mjn+e0hSA8IHNob2t1YmVuaVwgOwor5Y2X6Juu5Lq6IDwgbmFuYmFuamluXCA7Civmm7TooaMgPCBrb3JvbW9nYWVcIDsKK+mjn+ezpyA8IHNob2t1cnlvdVwgOwor55Sw5ZyS6KmpIDwgZGVuJydlbnNoaVwgOwor5Lit6KGoIDwgbmFrYW9tb3RlXCA7CivkuInop5LluqcgPCBzYW5rYWt1emFcIDsKK+Wwj+WnkSA8IGtvanV1dG9tZVwgOwor5YaN6Kmm6aiTIDwgc2Fpc2hpa2VuXCA7CivmoIPmnKggPCB0b2NoaW5va2lcIDsKK+WvkuW4r+aelyA8IGthbnRhaXJpblwgOwor6ISC5oCnIDwgYWJ1cmFzaG91XCA7CivlgInkuLsgPCBrdXJhbnVzaGlcIDsKK+WCvuaWnOmdoiA8IGtlaXNoYW1lblwgOwor5q275Lqh6ICFIDwgc2hpYm91c2hhXCA7CivkuIPos6IgPCBzaGljaGlrZW5cIDsKK+mBuuaXj+aJtuWKqSA8IGl6b2t1ZnVqb1wgOwor5aiR576F5Y+M5qi5IDwgc2FyYXNvdWp1XCA7CivkuInop5LluIYgPCBzYW5rYWt1aG9cIDsKK+Wwu+WPliA8IHNoaXJpdG9yaVwgOwor5ama5ae75rOVIDwga29uJydpbmhvdVwgOwor5LqM6YeN56qTIDwgbmlqdXVtYWRvXCA7Civoh6rnhLbpoZ4gPCBzaGl6ZW5ydWlcIDsKK+WwguWjsuWTgSA8IHNlbmJhaWhpblwgOwor5qC85byPIDwga2FrdXNoaWtpXCA7CivkuI3ntbHkuIAgPCBmdXRvdWl0c3VcIDsKK+aYvOmztiA8IGhpcnV0b25iaVwgOwor5aSc5Lya5pyNIDwgeWFrYWlmdWt1XCA7Civkuq7nm7QgPCByeW91Y2hva3VcIDsKK+aaoumBlCA8IGNob3V0YXRzdVwgOwor5YWa5rS+5b+DIDwgdG91aGFzaGluXCA7CivmgJ3mg7Pniq8gPCBzaGlzb3VoYW5cIDsKK+iFsOWFgyA8IGtvc2hpbW90b1wgOwor6ISH5beuIDwgd2FraXphc2hpXCA7CivlvIHlvZPku6MgPCBiZW50b3VkYWlcIDsKK+adieeuuCA8IHN1Z2liYXNoaVwgOwor6IKd6IeT55mMIDwga2Fuem91Z2FuXCA7Civku5jnhLwgPCB0c3VrZXlha2lcIDsKK+e1jOa4iOS6uiA8IGtlaXphaWppblwgOwor5LuP5pWZ5b6SIDwgYnVra3lvdXRvXCA7CivnsbPmtbfou40gPCBiZWlrYWlndW5cIDsKK+WQq+ayueWxpCA8IGdhbicneXVzb3VcIDsKK+aDheWgseiqjCA8IGpvdWhvdXNoaVwgOwor5a2m5q6WIDwgZ2FrdXNob2t1XCA7Civlh7Hml4vou40gPCBnYWlzZW5ndW5cIDsKK+iejeino+eCuSA8IHl1dWthaXRlblwgOwor5reL5be055CDIDwgcmlucGFreXV1XCA7Civlq4znhZnmqKkgPCBrZW4nJ2Vua2VuXCA7CivlpKvlqabku7IgPCBmdXVmdW5ha2FcIDsKK+aEn+afk+WOnyA8IGthbnNlbmdlblwgOwor6L+O6LOT6aSoIDwgZ2VpaGlua2FuXCA7CivmoKrlvI8gPCBrYWJ1c2hpa2lcIDsKK+ipleitsOS8miA8IGh5b3VnaWthaVwgOwor5aW955S35a2QIDwga291ZGFuc2hpXCA7Civml6nmmKXos6YgPCBzb3VzaHVuZnVcIDsKK+afj+anmSA8IGJ5YWt1c2hpblwgOwor5ZaJ6aCt55mMIDwga291dG91Z2FuXCA7Civni6zphYwgPCBkb2t1c2hha3VcIDsKK+WvnealreW4qyA8IG5ld2F6YXNoaVwgOwor5Lq65qC85YyWIDwgamlua2FrdWthXCA7Civlr4XlubQgPCB0b3JhZG9zaGlcIDsKK+e2uum6l+S6iyA8IGtpcmVpZ290b1wgOwor6KiY5ZCN5qCqIDwga2ltZWlrYWJ1XCA7CivmkLrluK/lk4EgPCBrZWl0YWloaW5cIDsKK+mnkOWxr+aJgCA8IGNodXV0b25qb1wgOwor56CU56m25omAIDwga2Vua3l1dWpvXCA7CivmnIDlhYjnq68gPCBzYWlzZW50YW5cIDsKK+WxheS9j+iAhSA8IGt5b2p1dXNoYVwgOwor6KqH5by15rOVIDwga29jaG91aG91XCA7CivlsI/lkoQgPCBrb2JhbmFzaGlcIDsKK+S4uOiFsCA8IG1hcnVnb3NoaVwgOwor5pi86aOvIDwgaGlydW1lc2hpXCA7CivoppbopprljJYgPCBzaGlrYWt1a2FcIDsKK+S8kOacqCA8IGJhdHN1Ym9rdVwgOwor5L+K5YKRIDwgc2h1bmtldHN1XCA7CivkuK3oj6/ooZcgPCBjaHV1a2FnYWlcIDsKK+iBt+attCA8IHNob2t1cmVraVwgOwor6YCj5Yik54q2IDwgcmVuYmFuam91XCA7Civpup3pppnnjKsgPCBqYWtvdW5la29cIDsKK+WkieWFieaYnyA8IGhlbmtvdXNlaVwgOwor5a+p5p+75a6YIDwgc2hpbnNha2FuXCA7CivlpJrnlKjkuK0gPCB0YXlvdWNodXVcIDsKK+aXqeadseaIpiA8IHNvdXRvdXNlblwgOwor6buZ56eY5qipIDwgbW9rdWhpa2VuXCA7CivlhpLpmbroq4cgPCBib3VrZW5kYW5cIDsKK+W4uOWCmeiWrCA8IGpvdWJpeWFrdVwgOwor5p625qmLIDwga2FrZWhhc2hpXCA7CivlporlqabmnI0gPCBuaW5wdWZ1a3VcIDsKK+afj+acqCA8IGthc2hpd2FnaVwgOwor5L2T6YeN6KiIIDwgdGFpanV1a2VpXCA7CivorablrpjpmoogPCBrZWlrYW50YWlcIDsKK+S7ruapiyA8IGthcmliYXNoaVwgOwor6Kyb6KuH56S+IDwga291ZGFuc2hhXCA7CivosYbnspIgPCBtYW1ldHN1YnVcIDsKK+S8keaXpSA8IGt5dXVqaXRzdVwgOwor5LiK6JasIDwgdXdhZ3VzdXJpXCA7Civov5Hku6PoqakgPCBraW5kYWlzaGlcIDsKK+eFmeiNiemKrSA8IHRhYmFrb3NlblwgOwor6ZaT5oqV6KmeIDwga2FudG91c2hpXCA7CivnrZTlvIHogIUgPCB0b3ViZW5zaGFcIDsKK+W5s+ihjOajkiA8IGhlaWtvdWJvdVwgOwor6J+75Zyw542EIDwgYXJpamlnb2t1XCA7Civlr4blrqQgPCBtaXNzaGl0c3VcIDsKK+aJgeahg+iFuiA8IGhlbnRvdXNlblwgOwor5YWs5Yik5bu3IDwga291aGFudGVpXCA7Civnjonnq6AgPCBneW9rdXNob3VcIDsKK+aVsOWEhOW5tCA8IHN1dW9rdW5lblwgOwor55uG54Gv57GgIDwgYm9uZG91cm91XCA7Civlrr/lsIYgPCBzaHVrdXNob3VcIDsKK+e1guaIpuW+jCA8IHNodXVzZW5nb1wgOwor5bCG5Y2SIDwgc2hvdXNvdHN1XCA7CivkuKHoiIwgPCByeW91emV0c3VcIDsKK+e3qOmbhumDqCA8IGhlbnNodXVidVwgOwor5ZGo5Zuy6ZW3IDwgc2h1dWljaG91XCA7CivlhazpgbjliLYgPCBrb3VzZW5zZWlcIDsKK+iBt+alrSA8IHNob2t1Z3lvdVwgOwor5L+u55CG5belIDwgc2h1dXJpa291XCA7CivmnIDpganljJYgPCBzYWl0ZWtpa2FcIDsKK+WMluWtpuiAhSA8IGthZ2FrdXNoYVwgOwor5bCO5Ye6IDwgZG91c2h1dHN1XCA7CivotIjos4TnvaogPCB6b3V3YWl6YWlcIDsKK+Wuv+WtpiA8IHNodWt1Z2FrdVwgOwor5LiN5om/6KqNIDwgZnVzaG91bmluXCA7CivkupTph43llLEgPCBnb2p1dXNob3VcIDsKK+Wwj+WGiiA8IHNob3VzYXRzdVwgOwor6Ieq5bex6aGV56S6IDwgamlrb2tlbmppXCA7CivlubTpvaLpoIYgPCBuZW5yZWlqdW5cIDsKK+izreWNmuWgtCA8IHRvYmFrdWpvdVwgOwor5Lih6ISaIDwgcnlvdWt5YWt1XCA7CivnnIvlrojogIUgPCBrYW5zaHVzaGFcIDsKK+iEseWHuiA8IGRhc3NodXRzdVwgOwor5a6i5bitIDwga3lha3VzZWtpXCA7CivlvLHpm7vlmaggPCBqYWt1ZGVua2lcIDsKK+S4i+iNiSA8IHNoaXRha3VzYVwgOwor5pel5pys55qEIDwgbmlob250ZWtpXCA7CivlsITlh7ogPCBzaGFzaHV0c3VcIDsKK+mWi+WivuWcsCA8IGthaWtvbmNoaVwgOwor5pqm6KGTIDwgcmVraWp1dHN1XCA7CivnpoHnjJ/mnJ8gPCBraW5yeW91a2lcIDsKK+i1pOWcnyA8IGFrYXRzdWNoaVwgOwor5YmN6aGN6YOoIDwgemVuZ2FrdWJ1XCA7CivoqZXoq5blrrYgPCBoeW91cm9ua2FcIDsKK+iHquW3seiyoOaLhSA8IGppa29mdXRhblwgOwor5LiA5paJ5a6JIDwgaXNzZWl5YXN1XCA7CivpnLLlpKnpoqjlkYIgPCByb3RlbmJ1cm9cIDsKK+S4gOimquetiSA8IGlzc2hpbnRvdVwgOwor5YaN5pS+6YCBIDwgc2FpaG91c291XCA7CivljJblrabnt5ogPCBrYWdha3VzZW5cIDsKK+aIpuatu+iAhSA8IHNlbnNoaXNoYVwgOwor5LiA5paH5a2XIDwgaWNoaW1vbmppXCA7CivmhI/msJfmipXlkIggPCBpa2l0b3Vnb3VcIDsKK+aWh+Wjq+mAoyA8IGJ1bnNoaXJlblwgOwor5pyo57a/57O4IDwgbW9tZW4nJ2l0b1wgOwor54Sm6Zu75rCXIDwgc2hvdWRlbmtpXCA7CivmjojkuI7lvI8gPCBqdXlvc2hpa2lcIDsKK+ebruWIhumHjyA8IG1lYnVucnlvdVwgOwor5aSp5LiL5LiAIDwgdGVua2FpY2hpXCA7CivkuK3lj6Tlk4EgPCBjaHV1a29oaW5cIDsKK+S4ree1tiA8IGNodXV6ZXRzdVwgOwor5biC5aC05oCnIDwgc2hpam91c2VpXCA7CivkuK3mgKfloakgPCBjaHV1c2VpZW5cIDsKK+S4i+iFuSA8IHNoaXRhYmFyYVwgOwor6ISx5L+XIDwgZGF0c3V6b2t1XCA7Civmlofoqp7oqr8gPCBidW5nb2Nob3VcIDsKK+aVo+WFtee3miA8IHNhbnBlaXNlblwgOwor5rWB6KGM5YWQIDwgcnl1dWtvdWppXCA7CivohbnmmYLoqIggPCBoYXJhZG9rZWlcIDsKK+W4g+iii+iFuSA8IGhvdGVpYmFyYVwgOwor54Sh5pWZ6IKyIDwgbXVreW91aWt1XCA7Civmn4/miYsgPCBrYXNoaXdhZGVcIDsKK+aVmeWMuuawkSA8IGt5b3VrdW1pblwgOwor5Zyw6ZyH5bivIDwgamlzaGludGFpXCA7CivplbfmnJ/miKYgPCBjaG91a2lzZW5cIDsKK+mAmuefpeewvyA8IHRzdXVjaGlib1wgOwor5Lm+54mpIDwgaG9zaGltb25vXCA7Civlrp/lraYgPCBqaXRzdWdha3VcIDsKK+WKoOW3pealrSA8IGtha291Z3lvdVwgOwor5LiN6KGM54q2IDwgZnVneW91am91XCA7CivmoZ/kv7UgPCBzYW5kYXdhcmFcIDsKK+iDoem6u+ayuSA8IGdvbWFhYnVyYVwgOwor5pel5pys54y/IDwgbmlob256YXJ1XCA7CivnjJ/oibIgPCByeW91c2hva3VcIDsKK+aXp+S4lueVjCA8IGt5dXVzZWthaVwgOwor5LiA6ISIIDwgaWNoaW15YWt1XCA7CivmsLTlubPli5UgPCBzdWloZWlkb3VcIDsKK+i1pOWPoyA8IHNla2lndWNoaVwgOwor55+t5aSn55SfIDwgdGFuZGFpc2VpXCA7Civogpblg4/nlLsgPCBzaG91em91Z2FcIDsKK+S4gOinkueNoyA8IGlra2FrdWp1dVwgOwor5Y+v5aSJ6ZW3IDwga2FoZW5jaG91XCA7CivkuIDopoHntKAgPCBpY2hpeW91c29cIDsKK+WFkOerpeWKhyA8IGppZG91Z2VraVwgOwor5Lit56uLIDwgY2h1dXJpdHN1XCA7Civln4vokazlnLAgPCBtYWlzb3VjaGlcIDsKK+S4iuijveacrCA8IGpvdXNlaWJvblwgOwor5Lih5oCn6IqxIDwgcnlvdXNlaWthXCA7Civlrp/ooYzogIUgPCBqaWtrb3VzaGFcIDsKK+iBt+aOjCA8IHNob2t1c2hvdVwgOwor5YK+5pac6KiIIDwga2Vpc2hha2VpXCA7CivlrqTlpJYgPCBzaGl0c3VnYWlcIDsKK+eKr+e9quiAhSA8IGhhbnphaXNoYVwgOwor5a+S5Y21IDwga2FudGFtYWdvXCA7CivntbbkuqTnirYgPCB6ZWtrb3Vqb3VcIDsKK+WkluadpeiAhSA8IGdhaXJhaXNoYVwgOwor5Lyd5bCO5L2TIDwgZGVuZG91dGFpXCA7Civos6rmhJ8gPCBzaGl0c3VrYW5cIDsKK+agvOWIpSA8IGtha3ViZXRzdVwgOwor5qC45YqbIDwga2FrdXJ5b2t1XCA7Civmlpzmu5HpmY0gPCBzaGFrYWtrb3VcIDsKK+W4uOW5s+WAiSA8IGpvdWhlaXNvdVwgOwor5Li75YKs6ICFIDwgc2h1c2Fpc2hhXCA7Civmn5Tou5/mgKcgPCBqdXVuYW5zZWlcIDsKK+WIhuaLhemHkSA8IGJ1bnRhbmtpblwgOwor5Ya36JS16LuKIDwgcmVpem91c2hhXCA7CivmnIDpq5joo4EgPCBzYWlrb3VzYWlcIDsKK+S4oeerryA8IHJ5b3VoYXNoaVwgOwor5Yqg5YWl5qipIDwga2FueXV1a2VuXCA7CivkuKHnq4sgPCByeW91cml0c3VcIDsKK+WJjeS9j+aJgCA8IHplbmp1dXNob1wgOwor5bGV5pyb5aGUIDwgdGVuYm91dG91XCA7CivpgY7mlY/nl4cgPCBrYWJpbnNob3VcIDsKK+S6uumgreeojiA8IG5pbnRvdXplaVwgOwor6Iie5Y+w5YqHIDwgYnV0YWlnZWtpXCA7CivkuIvntJAgPCBzaGl0YWhpbW9cIDsKK+W5s+Wdh+WApCA8IGhlaWtpbmNoaVwgOwor5LuK5pelIDwga29uJyduaWNoaVwgOwor5qC85a2Q6Z2iIDwga291c2hpbWVuXCA7Civml6npo68gPCBoYXlhbWVzaGlcIDsKK+awtOiMtuWxiyA8IG1penVjaGF5YVwgOwor5oOF5aCx57ayIDwgam91aG91bW91XCA7Civlt7Tml6bmnY8gPCBoYXRhbmt5b3VcIDsKK+iyuOaWuSA8IGthc2hpa2F0YVwgOwor5a+p576O55y8IDwgc2hpbmJpZ2FuXCA7Civoh6rnhLboprMgPCBzaGl6ZW5rYW5cIDsKK+mBi+WQpuWkqeizpiA8IHVucHV0ZW5wdVwgOwor5a+M5qCE6aSK5YyWIDwgZnVlaXlvdWthXCA7CivohILogqrphbggPCBzaGlib3VzYW5cIDsKK+mWgOWklua8oiA8IG1vbmdhaWthblwgOwor5Lm+5rm/IDwga2Fuc2hpdHN1XCA7Civmipfoj4zmgKcgPCBrb3VraW5zZWlcIDsKK+mhjee4gSA8IGdha3VidWNoaVwgOwor5Lyd5p+T5oCnIDwgZGVuc2Vuc2VpXCA7CivljbDluqbmlK/pgqMgPCBpbmRvc2hpbmFcIDsKK+acque1hOe5lCA8IG1pc29zaGlraVwgOwor5qyn5YyW5Li7576pIDwgb3VrYXNodWdpXCA7CivmsLTmp5jmtrIgPCBzdWl5b3Vla2lcIDsKK+aVkeWKqemaiiA8IGt5dXVqb3RhaVwgOwor54Sh5LqM54Sh5LiJIDwgbXVuaW11emFuXCA7Civkv53lrZjph48gPCBob3pvbnJ5b3VcIDsKK+S4ieaXpeS4ieWknCA8IG1pa2thbWl5b1wgOwor54mh5Li55rW36ICBIDwgYm90YW4nJ2ViaVwgOwor5qC45YW15ZmoIDwga2FrdWhlaWtpXCA7CivkuI3muoDotrMgPCBmdW1hbnpva3VcIDsKK+mVt+irh+itsCA8IG5hZ2FkYW5naVwgOwor5YaS6Zm66ICFIDwgYm91a2Vuc2hhXCA7CivkuIDnspIgPCBoaXRvdHN1YnVcIDsKK+Wroea1gSA8IGNoYWt1cnl1dVwgOwor5puy55uuIDwga3lva3Vtb2t1XCA7Civpo5/mrLIgPCBzaG9rdXlva3VcIDsKK+e+veiSsuWboyA8IGhhbmVidXRvblwgOwor5p+05Z6jIDwgc2hpYmFnYWtpXCA7CivlnLDmlrnlgrUgPCBjaGlob3VzYWlcIDsKK+S6ruaciCA8IHJ5b3VnZXRzdVwgOwor5pys5aC054mpIDwgaG9uYmFtb25vXCA7Civoqp7lrabogIUgPCBnb2dha3VzaGFcIDsKK+S4i+epvyA8IHNoaXRhYmFraVwgOwor5YaN6Kmm6KGMIDwgc2Fpc2hpa291XCA7CivkuIDnr4AgPCBoaXRvZnVzaGlcIDsKK+WxheS4iOmrmCA8IGl0YWtlZGFrYVwgOwor5aSq6Zm957O7IDwgdGFpeW91a2VpXCA7CivnoJTnqbblk6EgPCBrZW5reXV1aW5cIDsKK+W8pee4q+etliA8IGJpaG91c2FrdVwgOwor54Sh5aCx6YWsIDwgbXVob3VzaHV1XCA7CivomIbmup3mqYsgPCByb2tvdWt5b3VcIDsKK+e1tuWvvuWApCA8IHpldHRhaWNoaVwgOwor5aSp6aCC5YSAIDwgdGVuY2hvdWdpXCA7CivkuK3nlaUgPCBjaHV1cnlha3VcIDsKK+a1t+iziueOiyA8IGthaXpva3VvdVwgOwor6LKh55WM5Lq6IDwgemFpa2FpamluXCA7CivpoqjmnaXlnYogPCBmdXVyYWlib3VcIDsKK+eKtuiiiyA8IGpvdWJ1a3Vyb1wgOwor5a+S5Ya35ZywIDwga2FucmVpY2hpXCA7CivliY3nva7oqZ4gPCB6ZW5jaGlzaGlcIDsKK+eJqemHjyA8IGJ1dHN1cnlvdVwgOwor5Yqg5Yik5Lq6IDwga2FoYW4nJ25pblwgOwor5YuV5ruR6LuKIDwgZG91a2Fzc2hhXCA7CivntZDmsLfmnJ8gPCBrZXBweW91a2lcIDsKK+mbu+awl+apn+WZqCA8IGRlbmtpa2lraVwgOwor5bGV5pyb5Y+wIDwgdGVuYm91ZGFpXCA7CivnpLzmi53loIIgPCByZWloYWlkb3VcIDsKK+mrmOaAp+iDvSA8IGtvdXNlaW5vdVwgOwor5Lm+5rW36IuUIDwgaG9zaGlub3JpXCA7Civkvb/nlKjkvosgPCBzaGl5b3VyZWlcIDsKK+acieeUsOeEvCA8IGFyaXRheWFraVwgOwor6auY5ZGo5rOiIDwga291c2h1dWhhXCA7CivlsL/mpJzmn7sgPCBueW91a2Vuc2FcIDsKK+eSsOeKtue3miA8IGthbmpvdXNlblwgOwor5pyr5rWBIDwgbWF0c3VyeXV1XCA7Civnmbrmg7Pms5UgPCBoYXNzb3Vob3VcIDsKK+agquS4uyA8IGthYnVudXNoaVwgOwor5LiL55+zIDwgc2hpdGFpc2hpXCA7CivlhY3nqI7ngrkgPCBtZW56ZWl0ZW5cIDsKK+WApOauteihqCA8IG5lZGFuaHlvdVwgOwor6aOv5pmCIDwgbWVzaGlkb2tpXCA7Civnm7TlvJ/lrZAgPCBqaWtpZGVzaGlcIDsKK+iHquW3seWrjOaCqiA8IGppa29rZW4nJ29cIDsKK+mAo+mCpuWItiA8IHJlbnBvdXNlaVwgOwor5L2/55So5Lq6IDwgc2hpeW91bmluXCA7CivmpI3mnKjpiaIgPCB1ZWtpYmFjaGlcIDsKK+eFp+WwhOmHjiA8IHNob3VzaGF5YVwgOwor5L2c5LuYIDwgc2FrdWR6dWtlXCA7CivmhYjlloTlv4MgPCBqaXplbnNoaW5cIDsKK+S4iueevCA8IHV3YW1hYnV0YVwgOwor5pyo54WJ55OmIDwgbW9rdXJlbmdhXCA7CivmnKjntr/niakgPCBtb21lbm1vbm9cIDsKK+WFreWIhuWEgCA8IHJva3VidW5naVwgOwor6KaW5Zyw5bmzIDwgc2hpY2hpaGVpXCA7Civlt6XkvZzlk6EgPCBrb3VzYWt1aW5cIDsKK+S8r+WPlCA8IGhha3VzaHVrdVwgOwor54iq6Z2pIDwgdHN1bWFrYXdhXCA7CivlrqTlhoUgPCBzaGl0c3VuYWlcIDsKK+Wuv+S4uyA8IHlhZG9udXNoaVwgOwor5Zue5ryV5bqXIDwga2Fpc291dGVuXCA7Civnn7Pngq3ntIAgPCBzZWtpdGFua2lcIDsKK+aKleapn+eahCA8IHRvdWtpdGVraVwgOwor54yf54qs5bqnIDwgcnlvdWtlbnphXCA7CivkuozmnIggPCBmdXRhdHN1a2lcIDsKK+aXpemMsiA8IG5pY2hpcm9rdVwgOwor55qu6LKh5biDIDwga2F3YXphaWZ1XCA7CivkuIDnnqUgPCBpY2hpYmV0c3VcIDsKK+iEs+ihgOagkyA8IG5vdWtlc3NlblwgOwor5q2j5YmH5YyWIDwgc2Vpc29rdWthXCA7CivlpKflpaXmp5ggPCBvb29rdXNhbWFcIDsKK+S7pOWupCA8IHJlaXNoaXRzdVwgOwor5L2T5LitIDwga2FyYWRhanV1XCA7CivmrKDpmaXou4ogPCBrZWtrYW5zaGFcIDsKK+S4gOWkp+S6iyA8IGljaGlkYWlqaVwgOwor6YCj5YiG5pWwIDwgcmVuYnVuc3V1XCA7Civkv67nkIbku6MgPCBzaHV1cmlkYWlcIDsKK+S7suWlvSA8IG5ha2F5b3NoaVwgOwor6JWB6bq755a5IDwgamlubWFzaGluXCA7CivlhbfnlLPmm7ggPCBndXNoaW5zaG9cIDsKK+iqreabuOWutiA8IGRva3VzaG9rYVwgOwor576O6KGT6YOoIDwgYmlqdXRzdWJ1XCA7CivmhJ/orJ3npa0gPCBrYW5zaGFzYWlcIDsKK+iytOaWueaWuSA8IGFuYXRhZ2F0YVwgOwor6Kq/6auqIDwgY2hvdWhhdHN1XCA7CivmnbHkuqzpg70gPCB0b3VreW91dG9cIDsKK+aXp+Wtl+S9kyA8IGt5dXVqaXRhaVwgOwor6KO95L2c6LK7IDwgc2Vpc2FrdWhpXCA7CivkuozpgLHplpMgPCBuaXNodXVrYW5cIDsKK+mDqOiQveawkSA8IGJ1cmFrdW1pblwgOwor54mp6LOqIDwgYnVzc2hpdHN1XCA7Civml6npgZMgPCBoYXlhbWljaGlcIDsKK+WKoOebn+WbvSA8IGthbWVpa29rdVwgOwor5LiA5aSc5LitIDwgaGl0b3lhanV1XCA7Civmp4vpgKDkvZMgPCBrb3V6b3V0YWlcIDsKK+S4reWMu+WtpiA8IGNodXVpZ2FrdVwgOwor5Y+X5L+h6ICFIDwganVzaGluc2hhXCA7CivkvJrorbDpjLIgPCBrYWlnaXJva3VcIDsKK+emgeeFmei7iiA8IGtpbicnZW5zaGFcIDsKK+eJh+mBkyA8IGthdGFtaWNoaVwgOwor6Zu75a2Q6YqDIDwgZGVuc2hpanV1XCA7CivlhbfkvZPnrZYgPCBndXRhaXNha3VcIDsKK+i7iuaOjOWMuiA8IHNoYXNob3VrdVwgOwor54m56KitIDwgdG9rdXNldHN1XCA7Civku5blm73msJEgPCB0YWtva3VtaW5cIDsKK+WEkuWtpuiAhSA8IGp1Z2FrdXNoYVwgOwor5ZCN5o6i5YG1IDwgbWVpdGFudGVpXCA7Civlm73pgKPml5cgPCBrb2t1cmVua2lcIDsKK+mvo+eDj+iziiA8IHN1cnVtZWlrYVwgOwor5YWo5biC5rCRIDwgemVuc2hpbWluXCA7CivloLHpgZPlrpggPCBob3Vkb3VrYW5cIDsKK+S7j+WtpiA8IGJ1dHN1Z2FrdVwgOwor5pel5pys5pm0IDwgbmlob25iYXJlXCA7CivluIPlm6Pnmq4gPCBmdXRvbmdhd2FcIDsKK+S/rue5leiyuyA8IHNodXV6ZW5oaVwgOwor6Zyy6ZycIDwgdHN1eXVqaW1vXCA7CivlsILploDmm7ggPCBzZW5tb25zaG9cIDsKK+WFrOeUqOi7iiA8IGtvdXlvdXNoYVwgOwor6ICQ5oCn6I+MIDwgdGFpc2Vpa2luXCA7CivmnK3mnZ8gPCBzYXRzdXRhYmFcIDsKK+WQjOeorumhniA8IGRvdXNodXJ1aVwgOwor6Z+z5Z+f5aSWIDwgb24nJ2lraWdhaVwgOwor5aSP6bOlIDwgbmF0c3Vkb3JpXCA7Civos6rllY8gPCBzaGl0c3Vtb25cIDsKK+imquWSjOaApyA8IHNoaW53YXNlaVwgOwor5YmN6aCt6JGJIDwgemVudG91eW91XCA7Civnj6DmmpbnsL4gPCB0YW1hbm9yZW5cIDsKK+eLrOeriyA8IGRva3VyaXRzdVwgOwor5Lmd5pif5a62IDwga3l1dXNlaWthXCA7CivpgJrmsJflrZQgPCB0c3V1a2lrb3VcIDsKK+aciOasoSA8IHRzdWtpbmFtaVwgOwor6Kys6KqsIDwgYnl1dXNldHN1XCA7CivpmqPkurrmhJsgPCByaW5qaW4nJ2FpXCA7CivkuI3mib/nn6UgPCBmdXNob3VjaGlcIDsKK+atu+S6oeaVsCA8IHNoaWJvdXN1dVwgOwor5a2m5Y2SIDwgZ2FrdXNvdHN1XCA7CivlsYXkvY/mqKkgPCBreW9qdXVrZW5cIDsKK+mJpOaLrOW8pyA8IGthZ2lrYWtrb1wgOwor5YCm5oCg5oSfIDwga2VudGFpa2FuXCA7CivlhrfolLXoiLkgPCByZWl6b3VzZW5cIDsKK+WltOi8qSA8IHlhdHN1YmFyYVwgOwor5ZCI5oiQ6YWSIDwgZ291c2Vpc2h1XCA7CivlkbPlmYzmsYEgPCBtaXNvc2hpcnVcIDsKK+aMh+WwjuiAhSA8IHNoaWRvdXNoYVwgOwor5a2m5YqbIDwgZ2FrdXJ5b2t1XCA7CivljYrlj6/pgJogPCBoYW5rYXRzdXVcIDsKK+eEoeitpuWRiiA8IG11a2Vpa29rdVwgOwor5Z+65pys5ZCI5oSPIDwga2lob25nb3VpXCA7CivlpKfopb/pg7cgPCBkYWlzYWlnb3VcIDsKK+edoeecoOWJpCA8IHN1aW1pbnphaVwgOwor5peL55uk5belIDwgc2VuYmFua291XCA7CivluK/liIbmlbAgPCB0YWlidW5zdXVcIDsKK+Wwj+WFkOenkeWMuyA8IHNob3VuaWthaVwgOwor5b6M57aZ6ICFIDwga291a2Vpc2hhXCA7Civkuq7lr58gPCByeW91c2F0c3VcIDsKK+WkqeaXpeWhqSA8IHRlbnBpc2hpb1wgOwor5aiB5Zyn55qEIDwgaWF0c3V0ZWtpXCA7Civkuozph43lupUgPCBuaWp1dXpva29cIDsKK+WPiOW8n+WtkCA8IG1hdGFkZXNoaVwgOwor5pWR5ZG95YW3IDwga3l1dW1laWd1XCA7CivkuK3mrKEgPCBuYWthdHN1Z2lcIDsKK+emgeeMn+WMuiA8IGtpbnJ5b3VrdVwgOwor5byp57Sa6ImmIDwgZG9reXV1a2FuXCA7Civml6forZggPCBreXV1c2hpa2lcIDsKK+S6uuWmuyA8IGhpdG9kenVtYVwgOwor5oGS5LmF5YyWIDwga291a3l1dWthXCA7CivmlrDph4ggPCBzaGluc2hha3VcIDsKK+WFt+S9k+eahCA8IGd1dGFpdGVraVwgOwor6IW55LiA5p2vIDwgaGFyYWlwcGFpXCA7CivmoLznkIboq5YgPCBrYWt1cmlyb25cIDsKK+aXpeirviA8IG5pY2hpZGFrdVwgOwor5oSf6Kyd54q2IDwga2Fuc2hham91XCA7CivogqHkuIsgPCBtYXRhc2hpdGFcIDsKK+ePvuihjOeKryA8IGdlbmtvdWhhblwgOwor54+N5a6iIDwgY2hpbmt5YWt1XCA7Civml6Xku5jljbAgPCBoaWR6dWtlaW5cIDsKK+WkqumZveeBryA8IHRhaXlvdXRvdVwgOwor5oiR5q2m6ICF576FIDwgZ2FtdXNoYXJhXCA7CivlpJbpnaIgPCBzb3RvZHp1cmFcIDsKK+aDheWgsea6kCA8IGpvdWhvdWdlblwgOwor5pil6ImyIDwgc2h1bnNob2t1XCA7Civlhazkvb/ppKggPCBrb3VzaGlrYW5cIDsKK+e/jOaciCA8IHlva3VnZXRzdVwgOwor5biG56uL6LKdIDwgaG90YXRlZ2FpXCA7Civoi6XmrabogIUgPCB3YWthbXVzaGFcIDsKK+S6rOWlsyA8IGt5b3VvbicnbmFcIDsKK+a4heeul+abuCA8IHNlaXNhbnNob1wgOwor5pys6KGX6YGTIDwgaG9ua2FpZG91XCA7CivkuLLmn78gPCBrdXNoaWdha2lcIDsKK+mDteS+v+i7iiA8IHl1dWJpbnNoYVwgOwor6Ieq5bex54qg54myIDwgamlrb2dpc2VpXCA7Civnv4zml6UgPCB5b2t1aml0c3VcIDsKK+S4gOeCueapnyA8IGljaGl0ZW5raVwgOwor5Lih5qW1IDwgcnlvdWt5b2t1XCA7CivlpI/poqjpgqogPCBuYXRzdWthemVcIDsKK+S7j+WQjSA8IGJ1dHN1bXlvdVwgOwor54m56ImyIDwgdG9rdXNob2t1XCA7CivkuK3pgZPmtL4gPCBjaHV1ZG91aGFcIDsKK+aatOmiqOWfnyA8IGJvdWZ1dWlraVwgOwor55m656aB5pysIDwgaGFra2luYm9uXCA7CivlnKfpm7vmsJcgPCBhdHN1ZGVua2lcIDsKK+W3qOS6uuWFmiA8IGt5b2ppbnRvdVwgOwor6aOf5a6iIDwgc2hva2t5YWt1XCA7CivmmYLku6PniakgPCBqaWRhaW1vbm9cIDsKK+Wxj+miqOWyqSA8IGJ5b3VidWl3YVwgOwor5b+r6KiY6YyyIDwga2Fpa2lyb2t1XCA7CivniLbopqogPCBjaGljaGlveWFcIDsKK+aatOmiqOWcjyA8IGJvdWZ1dWtlblwgOwor5Luu5L2PIDwga2FyaXp1bWFpXCA7Civpm6rpnbQgPCB5dWtpZ3V0c3VcIDsKK+S4jeaIkOe4viA8IGZ1c2Vpc2VraVwgOwor54++5Ye6IDwgZ2Vuc2h1dHN1XCA7Civku4/lipsgPCBidXRzdXJpa2lcIDsKK+Wkmumfs+evgCA8IHRhb25zZXRzdVwgOwor6YCj5biv5oSfIDwgcmVudGFpa2FuXCA7Civpg6jliIbnmoQgPCBidWJ1bnRla2lcIDsKK+WwgumWgOW6lyA8IHNlbm1vbnRlblwgOwor5oWj55So6Z+zIDwga2FuJyd5b3VvblwgOwor5aSc5LuV5LqLIDwgeW9zaGlnb3RvXCA7CivmvJTnv5LmnpcgPCBlbnNodXVyaW5cIDsKK+S4i+anmCA8IHNoaW1vemFtYVwgOwor5p+Q6auY5qChIDwgYm91a291a291XCA7CivnubDotoogPCBrdXJpa29zaGlcIDsKK+e2v+iPk+WtkCA8IHdhdGFnYXNoaVwgOwor6Leo57ea5qmLIDwga29zZW5reW91XCA7CivnhZnojYnnm4YgPCB0YWJha29ib25cIDsKK+WPl+mok+elqCA8IGp1a2VuaHlvdVwgOwor5YaF5pac6KaWIDwgbmFpc2hhc2hpXCA7Civpm7vkv6HmqZ8gPCBkZW5zaGlua2lcIDsKK+Wcp+e4ruapnyA8IGFzc2h1a3VraVwgOwor54mp6IWwIDwgbW9ub2dvc2hpXCA7CivkuInmpI8gPCBtaXRzdW1hdGFcIDsKK+Wun+ihjOaoqSA8IGppa2tvdWtlblwgOwor5p2+5Y6fIDwgbWF0c3ViYXJhXCA7Civnm7jkupLmibbliqkgPCBzb3Vnb2Z1am9cIDsKK+izg+WAnyA8IGNoaW5zaGFrdVwgOwor54++6KGM5rOVIDwgZ2Vua291aG91XCA7Civoh6rnhLbnlYwgPCBzaGl6ZW5rYWlcIDsKK+aHuOWegue3miA8IGtlbnN1aXNlblwgOwor5LiK5omL6ICFIDwgam91enVtb25vXCA7Civml6XmnKzlraYgPCBuaWhvbmdha3VcIDsKK+aOkumanOWZqCA8IGhhaXNob3VraVwgOwor55yf5aSP5pelIDwgbWFuYXRzdWJpXCA7Civnhp/po58gPCBqdWt1c2hva3VcIDsKK+aEn+eEoemHjyA8IGthbm11cnlvdVwgOwor57Wm5LuY6YeRIDwga3l1dWZ1a2luXCA7Civku5jkurogPCB0c3VrZWJpdG9cIDsKK+S7o+WQjeipniA8IGRhaW1laXNoaVwgOwor5ZCM6Z+z55Ww576pIDwgZG91b24nJ2lnaVwgOwor5pWR5Yqp6Ii5IDwga3l1dWpvc2VuXCA7Civnib3lvJXou4ogPCBrZW4nJ2luc2hhXCA7CivlsYXkvY/mgKcgPCBreW9qdXVzZWlcIDsKK+aKl+WHneWbuiA8IGtvdWd5b3Vrb1wgOwor55yL6K236ZW3IDwga2FuZ29jaG91XCA7CivkvY7mgKfog70gPCB0ZWlzZWlub3VcIDsKK+eEoeioiOeUuyA8IG11a2Vpa2FrdVwgOwor5aSa6Z2i6KeSIDwgdGFtZW5rYWt1XCA7CivkvY7lkajms6IgPCB0ZWlzaHV1aGFcIDsKK+eQhuaDs+mDtyA8IHJpc291a3lvdVwgOwor6KKr54iG6ICFIDwgaGliYWt1c2hhXCA7Civnsr7oo73ns5YgPCBzZWlzZWl0b3VcIDsKK+acieeUqOaApyA8IHl1dXlvdXNlaVwgOwor5aiv5qW96KGXIDwgZ29yYWt1Z2FpXCA7CivlvozlpKnmgKcgPCBrb3V0ZW5zZWlcIDsKK+agoeWPi+S8miA8IGtvdXl1dWthaVwgOwor5Y2Y5Yip6KGoIDwgdGFucmloeW91XCA7Civoh6rlt7HmnKzkvY0gPCBqaWtvaG9uJydpXCA7CivmnIjlvbEgPCB0c3VraWthZ2VcIDsKK+eZgumkiuaJgCA8IHJ5b3V5b3Vqb1wgOwor5L+d5a6I55qEIDwgaG9zaHV0ZWtpXCA7CivmnIjlvaIgPCB0c3VraWdhdGFcIDsKK+eah+awkeWFmiA8IGtvdW1pbnRvdVwgOwor5LqM6YeN5ZSxIDwgbmlqdXVzaG91XCA7CivkuIPmm5wgPCBzaGljaGl5b3VcIDsKK+WNteiDjueUnyA8IHJhbnRhaXNlaVwgOwor5LiA5pyIIDwgaGl0b3RzdWtpXCA7Civnt5rpppnku6MgPCBzZW5rb3VkYWlcIDsKK+WvvuinkuWMliA8IHRhaWtha3VrYVwgOwor5pyA6auY54K5IDwgc2Fpa291dGVuXCA7CivlpKnos6ogPCB0ZW5zaGl0c3VcIDsKK+S4i+aVtyA8IHNoaXRhamlraVwgOwor5pyA5L2O6ZmQIDwgc2FpdGVpZ2VuXCA7CivkuIPmmJ8gPCBzaGljaGlzZWlcIDsKK+atjOWQiOaIpiA8IHV0YWdhc3NlblwgOwor5bmz5ZKM6LOeIDwgaGVpd2FzaG91XCA7CivmlbDkv4LmlbAgPCBzdXVrZWlzdXVcIDsKK+acqOeCreeUuyA8IG1va3V0YW5nYVwgOwor5YaN6ZmN6IeoIDwgc2Fpa291cmluXCA7CivmmJ/nqbogPCBob3NoaXpvcmFcIDsKK+WGjeiqv+afuyA8IHNhaWNob3VzYVwgOwor6auY6YeO5qeZIDwga291eWFtYWtpXCA7Civlrprmu5Hou4ogPCB0ZWlrYXNzaGFcIDsKK+S8vOaIkeicgiA8IGppZ2FiYWNoaVwgOwor5peL5YWJ5oCnIDwgc2Vua291c2VpXCA7CivlkI3mipXmiYsgPCBtZWl0b3VzaHVcIDsKK+eJueethiA8IHRva3VoaXRzdVwgOwor5LiA5pelIDwgdHN1aXRhY2hpXCA7CivmjqHnrpfmgKcgPCBzYWlzYW5zZWlcIDsKK+S8gealreiAhSA8IGtpZ3lvdXNoYVwgOwor5Lq65LydIDwgaGl0b2R6dXRlXCA7CivnlbDluLjpq5jmuKkgPCBpam91a291b25cIDsKK+eLkOeBqyA8IGtpdHN1bmViaVwgOwor6YqA56CC5a2QIDwgZ2luc3VuYWdvXCA7CivniIboo4IgPCBiYWt1cmV0c3VcIDsKK+eJueeriyA8IHRva3VyaXRzdVwgOwor5Lq65LuYIDwgaGl0b2R6dWtpXCA7Civlm73liIblr7ogPCBrb2t1YnVuamlcIDsKK+mkiuixmuWgtCA8IHlvdXRvbmpvdVwgOwor6Z2e5a++56ewIDwgaGl0YWlzaG91XCA7CivkuI3pirnpi7wgPCBmdXNodXVrb3VcIDsKK+WkseiogCA8IHNoaXRzdWdlblwgOwor5LiA6Zmi5Yi2IDwgaWNoaWluc2VpXCA7CivmiYvku5XkuosgPCB0ZXNoaWdvdG9cIDsKK+iDhuWaoueCjiA8IHRhbicnbm91ZW5cIDsKK+mbqumBkyA8IHl1a2ltaWNoaVwgOwor6ZuR6YyyIDwgemF0c3Vyb2t1XCA7CivlvLfmiZPogIUgPCBreW91ZGFzaGFcIDsKK+imj+evhOeahCA8IGtpaGFudGVraVwgOwor576F57SX57SZIDwgcmFzaGFnYW1pXCA7CivohLHooaPloLQgPCBkYXRzdWlqb3VcIDsKK+Wls+iFuSA8IG9uJyduYWJhcmFcIDsKK+eGsemHjyA8IG5ldHN1cnlvdVwgOwor5pWR5Yqp57ayIDwga3l1dWpvbW91XCA7Civpm6rovrEgPCBzZXRzdWpva3VcIDsKK+WkqumZsOaapiA8IHRhaWlucmVraVwgOwor5o+a57696J22IDwgYWdlaGFjaG91XCA7CivpoK3moKogPCBhdGFtYWthYnVcIDsKK+Wjq+WQm+WtkCA8IHNoaWt1bnNoaVwgOwor6IWw576955uuIDwga29zaGliYW1lXCA7CivniYfkuIDmlrkgPCBrYXRhaXBwb3VcIDsKK+mYv+eJh+eqnyA8IGFoZW5rdXRzdVwgOwor5aSx6KGAIDwgc2hpa2tldHN1XCA7CivmmqbmnIggPCByZWtpZ2V0c3VcIDsKK+WQvuacqOmmmSA8IHdhcmVtb2tvdVwgOwor5aSJ6LOqIDwgaGVuc2hpdHN1XCA7Civpo5/lh7ogPCBoYW1pZGFzaGlcIDsKK+Wkp+Wei+i7iiA8IG9vZ2F0YXNoYVwgOwor5aSP5a2j54axIDwga2FraW5ldHN1XCA7CivlpJzoqbEgPCB5b2JhbmFzaGlcIDsKK+WGhemZuOmcpyA8IG5haXJpa3VtdVwgOwor5qSN5a2X5qmfIDwgc2hva3VqaWtpXCA7CivpgYropqfoiLkgPCB5dXVyYW5zZW5cIDsKK+S5s+aIv+eCjiA8IG55dXVib3VlblwgOwor6ISz5oyr5YK3IDwgbm91emFzaG91XCA7CivlpKnooosgPCB0ZW5idWt1cm9cIDsKK+WtpueUn+iqsiA8IGdha3VzZWlrYVwgOwor6Z2057SQIDwga3V0c3VoaW1vXCA7Civol4HluIPlm6MgPCB3YXJhYnV0b25cIDsKK+ips+i/sCA8IHNob3VqdXRzdVwgOwor5oqV5qmf5b+DIDwgdG91a2lzaGluXCA7Civpg7Xkvr/oiLkgPCB5dXViaW5zZW5cIDsKK+mdkuW5tOWboyA8IHNlaW5lbmRhblwgOwor5Yun5ZGK5qGIIDwga2Fua29rdWFuXCA7CivnibnnmbogPCB0b2t1aGF0c3VcIDsKK+i7jeS6i+aPtOWKqSA8IGd1bmppZW5qb1wgOwor5aSp5paH5Y+wIDwgdGVubW9uZGFpXCA7Civoh6rnhLbms5UgPCBzaGl6ZW5ob3VcIDsKK+efs+eBsOa0niA8IHNla2thaWRvdVwgOwor5byK6KGj56C05bi9IDwgaGVpaWhhYm91XCA7CivpnbTnr6YgPCBrdXRzdWJlcmFcIDsKK+Wil+WIiuWPtyA8IHpvdWthbmdvdVwgOwor5LiL5b25IDwgc2hpdGF5YWt1XCA7CivkuKHlsrggPCByeW91Z2lzaGlcIDsKK+absuWtpiA8IGt5b2t1Z2FrdVwgOwor5YaF5aSn6IejIDwgbmFpZGFpamluXCA7Civnj77lnKjlnLAgPCBnZW56YWljaGlcIDsKK+aIpui7iumaiiA8IHNlbnNoYXRhaVwgOwor54af6YGUIDwganVrdXRhdHN1XCA7CivkuJHlubQgPCB1c2hpZG9zaGlcIDsKK+S6jOmHjeS4uCA8IG5panV1bWFydVwgOwor6Zyy6I2JIDwgdHN1eXVrdXNhXCA7CivphZLpgKDloLQgPCBzaHV6b3Vqb3VcIDsKK+aEm+iqreiAhSA8IGFpZG9rdXNoYVwgOwor5LiD5LqU5LiJ57iEIDwgc2hpbWVuYXdhXCA7CivmlofljJbpgbrnlKMgPCBidW5rYWlzYW5cIDsKK+efs+eBsOawtCA8IHNla2thaXN1aVwgOwor5aSn5Zyw6ZyHIDwgZGFpamlzaGluXCA7CivoqZXph4ggPCBoeW91c2hha3VcIDsKK+S4jeaLoeWkpyA8IGZ1a2FrdWRhaVwgOwor5Li75bCO6ICFIDwgc2h1ZG91c2hhXCA7Civpq5jokpTntbUgPCB0YWthbWFraWVcIDsKK+iHqueEtuatuyA8IHNoaXplbnNoaVwgOwor5bGF5L2P5ZywIDwga3lvanV1Y2hpXCA7CivkuIDlvosgPCBpY2hpcml0c3VcIDsKK+axuuatu+maiiA8IGtlc3NoaXRhaVwgOwor5Li76ISz6ICFIDwgc2h1bm91c2hhXCA7CivoiJ7mpb3pnaIgPCBidWdha3VtZW5cIDsKK+mtmuS7i+mhniA8IGd5b2thaXJ1aVwgOwor5pyA6auY5qScIDwgc2Fpa291a2VuXCA7CivnhrHmsZrmn5MgPCBuZXRzdW9zZW5cIDsKK+aBkuaYn+W5tCA8IGtvdXNlaW5lblwgOwor6Ieq5Zyo6YmkIDwgaml6YWlrYWdpXCA7Civnq7botbDppqwgPCBreW91c291YmFcIDsKK+W+oeaJi+a0lyA8IG1pdGFyYXNoaVwgOwor5aKX5bmF5ZmoIDwgem91ZnVrdWtpXCA7Civml6XmnKzlgbQgPCBuaWhvbmdhd2FcIDsKK+S6uumhnuWPsiA8IGppbnJ1aXNoaVwgOwor6Ium5Yq05qeYIDwga3Vyb3VzYW1hXCA7CivnpoDoq4vmm7ggPCByaW5zZWlzaG9cIDsKK+miqOWPoyA8IGthemFndWNoaVwgOwor5L+z6Kun5birIDwgaGFpa2Fpc2hpXCA7CivlpI/onYkgPCBuYXRzdXplbWlcIDsKK+iHquWutuWPl+eyviA8IGppa2FqdXNlaVwgOwor5oWj55So6KqeIDwga2FuJyd5b3Vnb1wgOwor5aWz5a2m55SfIDwgam9nYWt1c2VpXCA7Civpm7vlrZDnrqEgPCBkZW5zaGlrYW5cIDsKK+aiteWkqeeOiyA8IGJvbnRlbicnb3VcIDsKK+mcnuiNiSA8IGthc3VtaXNvdVwgOwor5ZCI5oiQ57SZIDwgZ291c2Vpc2hpXCA7Civpu4TpioXpibEgPCBrb3Vkb3Vrb3VcIDsKK+iHquWutuWPl+eyiSA8IGppa2FqdWZ1blwgOwor54mn55WcIDwgYm9rdWNoaWt1XCA7Civlj7jmlZnljLogPCBzaGlreW91a3VcIDsKK+ino+aVo+aoqSA8IGthaXNhbmtlblwgOwor6YGp6b2i5pyfIDwgdGVraXJlaWtpXCA7CivlqIHlmofnmoQgPCBpa2FrdXRla2lcIDsKK+mKg+mAo+WwhCA8IGp1dXJlbnNoYVwgOwor5YWN56iO5ZOBIDwgbWVuemVpaGluXCA7CivnhLzppIUgPCB5YWtpbW9jaGlcIDsKK+mrmOawtOa6liA8IGtvdXN1aWp1blwgOwor5aSq6Zm95bm0IDwgdGFpeW91bmVuXCA7CivmsJHnlJ/lp5Tlk6EgPCBtaW5zZWlpaW5cIDsKK+efs+e0sOW3pSA8IGlzaGl6YWlrdVwgOwor5a+d5bCP5L6/IDwgbmVzaG91YmVuXCA7CivmnKvlg5ogPCBiYXRzdXJ5b3VcIDsKK+WGt+iUteazlSA8IHJlaXpvdWhvdVwgOwor6YWN5YiG5rOVIDwgaGFpYnVuaG91XCA7CivogL3nvo7nmoQgPCB0YW5iaXRla2lcIDsKK+iou+mHiCA8IGNodXVzaGFrdVwgOwor5r2c6Iiq6ImHIDwgc2Vua291dGVpXCA7CivlkIznqpPnlJ8gPCBkb3Vzb3VzZWlcIDsKK+aUvua1quiAhSA8IGhvdXJvdXNoYVwgOwor56iu5qaC5b+1IDwgc2h1Z2FpbmVuXCA7Civml6nmmI7miKYgPCBzb3VtZWlzZW5cIDsKK+W+ruepjeWIhiA8IGJpc2VraWJ1blwgOwor6bOl556w5ZuzIDwgY2hvdWthbnp1XCA7CivlpbPnjovonIIgPCBqb291YmFjaGlcIDsKK+aWsOe3kSA8IHNoaW5yeW9rdVwgOwor5aSx6ISaIDwgc2hpa2t5YWt1XCA7CivlpJbkuqTlrpggPCBnYWlrb3VrYW5cIDsKK+atr+iCieeCjiA8IHNoaW5pa3VlblwgOwor6Ieq54S25p6XIDwgc2hpemVucmluXCA7CivmvJTnv5LloLQgPCBlbnNodXVqb3VcIDsKK+Wwj+m6puiJsiA8IGtvbXVnaWlyb1wgOwor5b6p5Y+k6Kq/IDwgZnVra29jaG91XCA7Civlj43nnIHkvJogPCBoYW5zZWlrYWlcIDsKK+eGseW4r+mtmiA8IG5ldHRhaWd5b1wgOwor5aSx6IG3IDwgc2hpc3Nob2t1XCA7CivljZjokYnmqZ8gPCB0YW4nJ3lvdWtpXCA7CivmhJvku5bkuLvnvqkgPCBhaXRhc2h1Z2lcIDsKK+aJgOacieiAhSA8IHNob3l1dXNoYVwgOwor6LKp5aOy6ICFIDwgaGFuYmFpc2hhXCA7CivkuLvkurrpoZQgPCBzaHVqaW5nYW9cIDsKK+a7keeoveiAhSA8IG9kb2tlbW9ub1wgOwor5rC06aOi6aWJIDwgbWl6dWtpa2luXCA7CivmtbfkuIrms5UgPCBrYWlqb3Vob3VcIDsKK+eGseWPr+WhkSA8IG5ldHN1a2Fzb1wgOwor5aSP6I+KIDwgbmF0c3VnaWt1XCA7CivkuIDlhZrkuIDmtL4gPCBpdHRvdWlwcGFcIDsKK+WMluWtpuWTgSA8IGthZ2FrdWhpblwgOwor57ie6JuHIDwgc2hpbWFoZWJpXCA7CivkuK3lk7IgPCBjaHV1dGV0c3VcIDsKK+WtkOayouWxsSA8IGtvZGFrdXNhblwgOwor5L2Z5rC05ZCQIDwgeW9zdWloYWtpXCA7CivmgKrlpYfmmKDnlLsgPCBrYWlraWVpZ2FcIDsKK+ios+i/sCA8IHlha3VqdXRzdVwgOwor5paw56+JIDwgc2hpbmNoaWt1XCA7CivlpI/ojYkgPCBuYXRzdWd1c2FcIDsKK+aYqOW5tOW6piA8IHNha3VuZW5kb1wgOwor546J5LiyIDwgdGFtYWd1c2hpXCA7Civoh6rnhLbmlbAgPCBzaGl6ZW5zdXVcIDsKK+WGjeiogueJiCA8IHNhaXRlaWJhblwgOwor6Z2S5bm05LyaIDwgc2VpbmVua2FpXCA7CivkuK3lj6MgPCBuYWthZ3VjaGlcIDsKK+Wls+eZliA8IG9uJyduYWd1c2VcIDsKK+ePvuWcsOS6uiA8IGdlbmNoaWppblwgOwor5oeQ55aR5b+DIDwga2FpZ2lzaGluXCA7Civlp6XmoZwgPCB1YmF6YWt1cmFcIDsKK+acneaXpeW9sSA8IGFzYWhpa2FnZVwgOwor6YeI6L+m54mf5bC8IDwgc2hha2FtdW5pXCA7CivoqpjlsI7lvL4gPCB5dXVkb3VkYW5cIDsKK+iyqeWjsue2siA8IGhhbmJhaW1vdVwgOwor5Lit5Y2SIDwgY2h1dXNvdHN1XCA7Civlhavnmb7kuIcgPCB5YW95b3JvenVcIDsKK+S4i+WdgiA8IHNoaW1vc2FrYVwgOwor6LKn5LmP5Lq6IDwgYmluYm91bmluXCA7Civlt6XkuovkuK0gPCBrb3VqaWNodXVcIDsKK+eqg+ebl+e9qiA8IHNldHRvdXphaVwgOwor6aKo5LiLIDwga2F6YXNoaW1vXCA7CivpnJ7ntrIgPCBrYXN1bWlhbWlcIDsKK+WOn+ijgeWIpCA8IGdlbnNhaWJhblwgOwor54K554Gr6JasIDwgdGVua2F5YWt1XCA7CivmtbfkuIrmqKkgPCBrYWlqb3VrZW5cIDsKK+WMluWtpuWJpCA8IGthZ2FrdXphaVwgOwor57K+6KO95rOVIDwgc2Vpc2VpaG91XCA7CivkuKHlj6MgPCByeW91Z3VjaGlcIDsKK+aWueecvOe0mSA8IGhvdWdhbnNoaVwgOwor5Y+X6LOe6ICFIDwganVzaG91c2hhXCA7CivmjqjolqbogIUgPCBzdWlzZW5zaGFcIDsKK+mbquaooeanmCA8IHl1a2ltb3lvdVwgOwor54iG56u5IDwgYmFrdWNoaWt1XCA7CivkuIDntJrlk4EgPCBpa2t5dXVoaW5cIDsKK+agvOWtkOeCuSA8IGtvdXNoaXRlblwgOwor5pel54usIDwgbmljaGlkb2t1XCA7Civos7zosrfogIUgPCBrb3ViYWlzaGFcIDsKK+S4gOetieizniA8IGl0dG91c2hvdVwgOwor5LuW5Zu95Lq6IDwgdGFrb2t1amluXCA7CivnqbrmsJfmtbQgPCBrdXVraXlva3VcIDsKK+aXp+eJqSA8IGt5dXVidXRzdVwgOwor542j5YGPIDwga2Vtb25vaGVuXCA7CivlpJbkuqTlm6MgPCBnYWlrb3VkYW5cIDsKK+Wft+ihjOmDqCA8IHNoaWtrb3VidVwgOwor6Zyy56iLIDwgdHN1eXVob2RvXCA7Civoqr/nr4AgPCBjaG91c2V0c3VcIDsKK+eQhuelnuirliA8IHJpc2hpbnJvblwgOwor5Y+X6aiT5paZIDwganVrZW5yeW91XCA7CivpoK3lrZcgPCBrYXNoaXJhamlcIDsKK+WLneaJi+WFgyA8IGthdHRlbW90b1wgOwor55u45a++6KuWIDwgc291dGFpcm9uXCA7CivliIrooYzkvJogPCBrYW5rb3VrYWlcIDsKK+eNhOWNkiA8IGdva3Vzb3RzdVwgOwor5L+d6IKy5paZIDwgaG9pa3VyeW91XCA7Civnt4/os4fnlKMgPCBzb3VzaGlzYW5cIDsKK+S9j+awkeeojiA8IGp1dW1pbnplaVwgOwor5LiU5Y+IIDwga2F0c3VtYXRhXCA7Civkv7jntabml6UgPCBob3VreXV1YmlcIDsKK+eJqea1gSA8IGJ1dHN1cnl1dVwgOwor5Lih5Ye4IDwgcnlvdXRvdHN1XCA7CivpmbPov7AgPCBjaGluanV0c3VcIDsKK+ihjOaUv+W6nCA8IGd5b3VzZWlmdVwgOwor5Yem5aWz6IacIDwgc2hvam9tYWt1XCA7Civpmo/kvLTogIUgPCB6dWloYW5zaGFcIDsKK+aWsOedgCA8IHNoaW5jaGFrdVwgOwor5aWz54mpIDwgb24nJ25hbW9ub1wgOwor5LiN5Y2wIDwgZnVqaXJ1c2hpXCA7CivmgqrlrqPkvJ0gPCBha3VzZW5kZW5cIDsKK+abuOS7mCA8IGtha2l0c3VrZVwgOwor5aSa6Z2i55qEIDwgdGFtZW50ZWtpXCA7CivoqbDojYkgPCB0c3VtZWt1c2FcIDsKK+WvvuaIpui7iiA8IHRhaXNlbnNoYVwgOwor5Lit5L2NIDwgY2h1dWd1cmFpXCA7CivnhoronIIgPCBrdW1hYmFjaGlcIDsKK+iLpuWKtOaApyA8IGt1cm91c2hvdVwgOwor5oGQ5aa75a62IDwga3lvdXNhaWthXCA7CivljYrpubnmsLQgPCBoYW5rYW5zdWlcIDsKK+ekvuS8mue1jOa4iCA8IHNoYWthaWtlaVwgOwor57WQ6LeP6La65bqnIDwga2Vra2FmdXphXCA7Civlr4boiKrogIUgPCBtaWtrb3VzaGFcIDsKK+S4gOetieimqiA8IGl0dG91c2hpblwgOwor5pWZ6IG3IDwga3lvdXNob2t1XCA7CivlpLHnpLwgPCBzaGl0c3VyZWlcIDsKK+ijnOW8t+etiyA8IGhva3lvdWtpblwgOwor55yL5p2/5bGLIDwga2FuYmFuJyd5YVwgOwor56S+5ZOh5a+uIDwgc2hhaW5yeW91XCA7CivlkbzlkLjms5UgPCBrb2t5dXVob3VcIDsKK+eJqeassiA8IGJ1dHN1eW9rdVwgOwor5LiA5Y+jIDwgaGl0b2t1Y2hpXCA7Civmk4LpiaIgPCBzdXJpYmFjaGlcIDsKK+S9k+mHj+WZqCA8IHRhaXJ5b3VraVwgOwor5YyW5a2m5LiKIDwga2FnYWt1am91XCA7CivkvL3ol43ps6UgPCBnYXJhbmNob3VcIDsKK+W/g+iHk+mDqCA8IHNoaW56b3VidVwgOwor54iG55m6IDwgYmFrdWhhdHN1XCA7CivmnIDpq5jls7AgPCBzYWlrb3Vob3VcIDsKK+ertui8quWgtCA8IGtlaXJpbmpvdVwgOwor6YeN5ama6ICFIDwganV1a29uc2hhXCA7CivopoHmkoPmqZ8gPCB5b3VnZWtpa2lcIDsKK+awl+WMlueGsSA8IGtpa2FuZXRzdVwgOwor5pio5pelIDwgc2FrdWppdHN1XCA7Civml6XmlZnntYQgPCBuaWtreW91c29cIDsKK+iTlum6u+WtkOayuSA8IGhpbWFzaGl5dVwgOwor57iu57SEIDwgc2h1a3V5YWt1XCA7CivkuInnrYnmmJ8gPCBzYW50b3VzZWlcIDsKK+WRveWQjeazlSA8IG1laW1laWhvdVwgOwor5Y+C5Yqg5Zu9IDwgc2Fua2Frb2t1XCA7CivmnKrplovmi5MgPCBtaWthaXRha3VcIDsKK+WGjee3qOaIkCA8IHNhaWhlbnNlaVwgOwor5aSx552AIDwgc2hpdGNoYWt1XCA7CivpgI/msLTmgKcgPCB0b3VzdWlzZWlcIDsKK+S4gOWIlyA8IGljaGlyZXRzdVwgOwor5Y+N5a++6KuWIDwgaGFudGFpcm9uXCA7Civlraboirjlk6EgPCBnYWt1Z2VpaW5cIDsKK+WGt+WHjemtmiA8IHJlaXRvdWd5b1wgOwor5pWX5q6L5YW1IDwgaGFpemFuaGVpXCA7CivkuIvlgbQgPCBzaGl0YWdhd2FcIDsKK+mbgOiJsiA8IHN1enVtZWlyb1wgOwor5pu455Sf6KuWIDwgc2hvc2Vpcm9uXCA7CivosqHmlL/pm6MgPCB6YWlzZWluYW5cIDsKK+S4gOWEsiA8IGhpdG9tb3VrZVwgOwor5Yi255mM5YmkIDwgc2VpZ2FuemFpXCA7Civml4/mu4UgPCB6b2t1bWV0c3VcIDsKK+eZuuazoeWJpCA8IGhhcHBvdXphaVwgOwor5Lyd5aWH55qEIDwgZGVua2l0ZWtpXCA7CivntYblibXoho8gPCBiYW5zb3Vrb3VcIDsKK+S4i+S9nCA8IHNoaXRhc2FrdVwgOwor55+z54Gw5bKpIDwgc2Vra2FpZ2FuXCA7Civoqr/nlaUgPCBjaG91cnlha3VcIDsKK+WFteWtpuagoSA8IGhlaWdha2tvdVwgOwor5a+M5bGx55yMIDwgdG95YW1ha2VuXCA7CivoqbLlvZPogIUgPCBnYWl0b3VzaGFcIDsKK+eCueaVsOWItiA8IHRlbnN1dXNlaVwgOwor5piU5pelIDwgc2VraWppdHN1XCA7Civpq5jnn6XnnIwgPCBrb3VjaGlrZW5cIDsKK+WPo+S4iuabuCA8IGtvdWpvdXNob1wgOwor6Kej5pS+5oSfIDwga2FpaG91a2FuXCA7CivlubPlkoznmoQgPCBoZWl3YXRla2lcIDsKK+iHqumWieeXhyA8IGppaGVpc2hvdVwgOwor6aOy55So5rC0IDwgaW4nJ3lvdXN1aVwgOwor5aSq6Zm95YWJIDwgdGFpeW91a291XCA7CivmqYvpoK3kv50gPCBreW91dG91aG9cIDsKK+WPpOabuOW4giA8IGtvc2hvaWNoaVwgOwor5aSp54S25aGpIDwgdGVuJyduZW5lblwgOwor5pat54axIDwgZGFuJyduZXRzdVwgOwor5piO5pelIDwgbXlvdW5pY2hpXCA7CivkuIvkuIsgPCBzaGltb2ppbW9cIDsKK+aVt+efsyA8IHNoaWtpaXNoaVwgOwor54m55pKuIDwgdG9rdXNhdHN1XCA7CivlhazlrrPnvaogPCBrb3VnYWl6YWlcIDsKK+a3q+WjsuWuvyA8IGluYmFpeWFkb1wgOwor6LW36KuL5paHIDwga2lzaG91bW9uXCA7CivpoZjkuosgPCBuZWdhaWdvdG9cIDsKK+eigeebpOe4niA8IGdvYmFuamltYVwgOwor6aC75Ye6IDwgaGluc2h1dHN1XCA7CivntrLooosgPCBhbWlidWt1cm9cIDsKK+S/l+S4lumWkyA8IHpva3VzZWtlblwgOwor55SY57SN6LGGIDwgYW1hbmF0dG91XCA7Civkub7pharntKAgPCBrYW5yYWt1c29cIDsKK+WGtumHkeWtpiA8IHlha2luZ2FrdVwgOwor5YaX6ZW35bqmIDwgam91Y2hvdWRvXCA7Civop5LpgJAgPCBrYWt1Y2hpa3VcIDsKK+engeWutumbhiA8IHNoaWthc2h1dVwgOwor5LiD5LiJIDwgc2hpY2hpc2FuXCA7CivntLDpnaIgPCBob3Nvb21vdGVcIDsKK+W4guihl+WcsCA8IHNoaWdhaWNoaVwgOwor5Y+v6Kqt5oCnIDwga2Fkb2t1c2VpXCA7CivmmI7npLrnmoQgPCBtZWlqaXRla2lcIDsKK+Wkp+Wbnui7oiA8IGRhaWthaXRlblwgOwor5ZGJ5pyN5bqXIDwgZ29mdWt1dGVuXCA7CivkuK3oj6/kuLwgPCBjaHV1a2Fkb25cIDsKK+Wkp+ilv+a0iyA8IHRhaXNlaXlvdVwgOwor55CG5oOz55qEIDwgcmlzb3V0ZWtpXCA7CivlprvluK/ogIUgPCBzYWl0YWlzaGFcIDsKK+WFq+WuneiPnCA8IGhhcHBvdXNhaVwgOwor5Y+M6LmE5424IDwgc291dGVpanV1XCA7Civpm4bntZAgPCBzaHV1a2V0c3VcIDsKK+WbveWFqOWcnyA8IGtva3V6ZW5kb1wgOwor5LqM6YCy5rOVIDwgbmlzaGluaG91XCA7Civopb/poqggPCBuaXNoaWthemVcIDsKK+iHqueEtuWilyA8IHNoaXplbnpvdVwgOwor5pmC5Luj5YqHIDwgamlkYWlnZWtpXCA7CivlpI/nl6kgPCBuYXRzdXlhc2VcIDsKK+a3t+aIkOmFkiA8IGtvbnNlaXNodVwgOwor5YWs5YCN5pWwIDwga291YmFpc3V1XCA7Civlh6bmlrnnrosgPCBzaG9ob3VzZW5cIDsKK+eZjOe0sOiDniA8IGdhbnNhaWJvdVwgOwor57Sv5rib56iOIDwgcnVpZ2VuemVpXCA7CivmiYDkvZzkuosgPCBzaG9zYWdvdG9cIDsKK+eEoemZkOWwjyA8IG11Z2Vuc2hvdVwgOwor54mp5oyHIDwgbW9ub3Nhc2hpXCA7CivnqoPnm5fniq8gPCBzZXR0b3VoYW5cIDsKK+S7leaJi+agqiA8IHNoaXRla2FidVwgOwor5Y+j5LiL5omLIDwga3VjaGliZXRhXCA7Civph5Hmm5zml6UgPCBraW4nJ3lvdWJpXCA7CivkvY7msLTmupYgPCB0ZWlzdWlqdW5cIDsKK+ijveS9nOaJgCA8IHNlaXNha3Vqb1wgOwor5Lyd5aOw566hIDwgZGVuc2Vpa2FuXCA7Civph4/lrZDljJYgPCByeW91c2hpa2FcIDsKK+aYn+W9sSA8IGhvc2hpa2FnZVwgOwor54us5YqbIDwgZG9rdXJ5b2t1XCA7Civlpb3kuIDlr74gPCBrb3VpdHRzdWlcIDsKK+inpuiouiA8IHNob2t1c2hpblwgOwor5LqL5YuZ5bGAIDwgamltdWt5b2t1XCA7Civlo7rnmr8gPCB0c3Vib3phcmFcIDsKK+WJr+m8u+iFlCA8IGZ1a3ViaWt1dVwgOwor5rWq6LK755mWIDwgcm91aGloZWtpXCA7CivntabosrvnlJ8gPCBreXV1aGlzZWlcIDsKK+ecjOS6uuS8miA8IGtlbmppbmthaVwgOwor5Li75Lu76ICFIDwgc2h1bmluc2hhXCA7CivlhaznlKjmlocgPCBrb3V5b3VidW5cIDsKK+e9quS6uiA8IHRzdW1pYml0b1wgOwor6KGM5pS/5Yy6IDwgZ3lvdXNlaWt1XCA7CivmjqjolqbnirYgPCBzdWlzZW5qb3VcIDsKK+S4rei3nemboiA8IGNodXVreW9yaVwgOwor5YWx55Sj5YyWIDwga3lvdXNhbmthXCA7CivkvJrmnJ/kuK0gPCBrYWlraWNodXVcIDsKK+mHjueQg+WgtCA8IHlha3l1dWpvdVwgOwor6ZaR5Y+k6bOlIDwga2Fua29kb3JpXCA7CivnlKPopKXmnJ8gPCBzYW5qb2t1a2lcIDsKK+S4u+WwjuaoqSA8IHNodWRvdWtlblwgOwor5Yuf6YeR566xIDwgYm9raW5iYWtvXCA7Civnoazlj6Pok4sgPCBrb3Vrb3VnYWlcIDsKK+aVt+eJqSA8IHNoaWtpbW9ub1wgOwor5Y+y6KiY5oqEIDwgc2hpa2lzaG91XCA7CivlubTpvaLlsaQgPCBuZW5yZWlzb3VcIDsKK+mgremggumDqCA8IHRvdWNob3VidVwgOwor6Zuq55S3IDwgeXVraW90b2tvXCA7Civml6nloLTnsbMgPCBoYXlhYmFtYWlcIDsKK+WPo+iqnuiosyA8IGtvdWdveWFrdVwgOwor5rK55Zyn6KiIIDwgeXVhdHN1a2VpXCA7CivlpI/niakgPCBuYXRzdW1vbm9cIDsKK+S6jOavm+S9nCA8IG5pbW91c2FrdVwgOwor5qSc57OW6KiIIDwga2VudG91a2VpXCA7CivoqpjlsI7kvZMgPCB5dXVkb3V0YWlcIDsKK+ecn+Wbm+inkiA8IG1hc2hpa2FrdVwgOwor55Sz5ZG96KiYIDwgc2hpbm1laWtpXCA7CivohILogqrlsaQgPCBzaGlib3Vzb3VcIDsKK+e1seioiCA8IGJhcmF0c3VraVwgOwor54mp5ZOB56iOIDwgYnVwcGluemVpXCA7Civps7Pnv4XpkJggPCBob3VzaGl0b3VcIDsKK+Wls+aWuSA8IG9uJyduYWdhdGFcIDsKK+aWsOapiyA8IHNoaW5iYXNoaVwgOwor5bGk56mN6ZuyIDwgc291c2VraXVuXCA7Civnp5LmmYLoqIggPCBieW91ZG9rZWlcIDsKK+ePiueRmuekgSA8IHNhbmdvc2hvdVwgOwor6YCj5L2T6KmeIDwgcmVudGFpc2hpXCA7CivnhrHnl4UgPCBuZXRzdWJ5b3VcIDsKK+mbu+eGsSA8IGRlbicnbmV0c3VcIDsKK+aYn+WxkSA8IGhvc2hpa3V6dVwgOwor5aSp5rCX5YW35ZCIIDwgdGVua2lndWFpXCA7CivlsYHnkIblsYggPCBoZXJpa3V0c3VcIDsKK+W/l+mhmOiAhSA8IHNoaWdhbnNoYVwgOwor5rWq5Lq655SfIDwgcm91bmluc2VpXCA7CivkuI3lj6/pgIYgPCBmdWthZ3lha3VcIDsKK+malOe1tiA8IGtha3V6ZXRzdVwgOwor54us5LuPIDwgZG9rdWZ1dHN1XCA7CivlpKfpmKrluIIgPCBvb3Nha2FzaGlcIDsKK+Wmu+WupCA8IHNhaXNoaXRzdVwgOwor5oSb6Kqt5pu4IDwgYWlkb2t1c2hvXCA7Civlj6/loZHniakgPCBrYXNvYnV0c3VcIDsKK+aWsOmAoOiqniA8IHNoaW56b3Vnb1wgOwor54mp5bmyIDwgbW9ub2hvc2hpXCA7Civlj43lr77ogIUgPCBoYW50YWlzaGFcIDsKK+e0sOmBkyA8IGhvc29taWNoaVwgOwor6buS56CC57OWIDwga3Vyb3phdG91XCA7CivnjoTnsbPojLYgPCBnZW5tYWljaGFcIDsKK+a8lOe5ueazlSA8IGVuJydla2lob3VcIDsKK+iHqOWgtOaEnyA8IHJpbmpvdWthblwgOwor54ax55CDIDwgbmV0c3VreXV1XCA7CivlgY/opb/poqggPCBoZW5zZWlmdXVcIDsKK+mmmeWRs+aWmSA8IGtvdW1pcnlvdVwgOwor5q2j55Sy5p2/IDwgc2Vpa2FucGFuXCA7Civlr6norbDkvJogPCBzaGluZ2lrYWlcIDsKK+mdkuajruecjCA8IGFvbW9yaWtlblwgOwor5LiN5oSf55eHIDwgZnVrYW5zaG91XCA7CivnuJ7niakgPCBzaGltYW1vbm9cIDsKK+emgeihm+maiiA8IGtpbicnZWl0YWlcIDsKK+aWsOaelSA8IG5paW1ha3VyYVwgOwor5pS+5rC06LuKIDwgaG91c3Vpc2hhXCA7CivogJDmsLTmgKcgPCB0YWlzdWlzZWlcIDsKK+eOhOmWoueVqiA8IGdlbmthbmJhblwgOwor5YmN5aSc56WtIDwgemVuJyd5YXNhaVwgOwor5pyI5qGC5YagIDwgZ2Vra2Vpa2FuXCA7CivntabooYAgPCBreXV1a2V0c3VcIDsKK+S6jOWIgOa1gSA8IG5pdG91cnl1dVwgOwor5paw5pytIDwgc2hpbnNhdHN1XCA7CivmiYDmnInmqKkgPCBzaG95dXVrZW5cIDsKK+WGt+WHjei7iiA8IHJlaXRvdXNoYVwgOwor5paw5pyIIDwgc2hpbmdldHN1XCA7CivmnaXkvJrogIUgPCByYWlrYWlzaGFcIDsKK+aWsOabsiA8IHNoaW5reW9rdVwgOwor5LiA5Y+j5ZCM6Z+zIDwgaWtrdWRvdW9uXCA7CivkuIrnrYnlk4EgPCBqb3V0b3VoaW5cIDsKK+iNkueZguayuyA8IGFyYXJ5b3VqaVwgOwor5qW96Kaz6KuWIDwgcmFra2Fucm9uXCA7CivlgLboiI7lrpcgPCBrdXNoYXNodXVcIDsKK+eEoeiogOWKhyA8IG11Z29uZ2VraVwgOwor5YWl6IuR5Yi4IDwgbnl1dWVua2VuXCA7CivohbHpnpjngo4gPCBrZW5zaG91ZW5cIDsKK+S4jeWPr+aAneitsCA8IGZ1a2FzaGlnaVwgOwor6auY5bm06ICFIDwga291bmVuc2hhXCA7CivoqbDniakgPCB0c3VtZW1vbm9cIDsKK+aOoua1t+eBryA8IHRhbmthaXRvdVwgOwor54Sh6KaP5b6LIDwgbXVraXJpdHN1XCA7Civng4/osp0gPCBrYXJhc3VnYWlcIDsKK+mdtOW6lSA8IGt1dHN1em9rb1wgOwor5b2i5a656KmeIDwga2VpeW91c2hpXCA7CivljLvkuovkvJ3pgZMgPCBpamlkZW5kb3VcIDsKK+aXp+W5tCA8IGZ1cnV0b3NoaVwgOwor5bKp6Zuy6ZuAIDwgaXdhaGliYXJpXCA7CivmmJ/lnosgPCBob3NoaWdhdGFcIDsKK+W+kuertui1sCA8IHRva3lvdXNvdVwgOwor5LiN5oim5YudIDwgZnVzZW5zaG91XCA7Civoh6rnhLbkurogPCBzaGl6ZW5qaW5cIDsKK+WutuW6reeahCA8IGthdGVpdGVraVwgOwor6auY5rCX5ZynIDwga291a2lhdHN1XCA7Civmu5HnqL3mnKwgPCBrb2trZWlib25cIDsKK+Wls+WtkOWvriA8IGpvc2hpcnlvdVwgOwor5aSx5pybIDwgc2hpdHN1Ym91XCA7CivmlL/msrvnmoQgPCBzZWlqaXRla2lcIDsKK+S4iuetieWFtSA8IGpvdXRvdWhlaVwgOwor54S857WQIDwgc2hvdWtldHN1XCA7Civljp/nqL/ntJkgPCBnZW5rb3VzaGlcIDsKK+iJsuecvOmPoSA8IGlyb21lZ2FuZVwgOwor5qW96K2c5Y+wIDwgZ2FrdWZ1ZGFpXCA7CivlhrfmsLTloYogPCByZWlzdWlrYWlcIDsKK+S/neitt+iJsiA8IGhvZ29zaG9rdVwgOwor5aG157SZIDwgY2hpcmlnYW1pXCA7CivoibLlj47lt64gPCBpcm9zaHV1c2FcIDsKK+e+juihk+WutiA8IGJpanV0c3VrYVwgOwor5YaN6KmV5L6hIDwgc2FpaHlvdWthXCA7CivlpLHmmI4gPCBzaGl0c3VtZWlcIDsKK+a6luWCmeS4rSA8IGp1bmJpY2h1dVwgOwor5YWJ5ZCI5oiQIDwga291Z291c2VpXCA7CivmgqrmnaHku7YgPCBha3Vqb3VrZW5cIDsKK+S4ieaCqui2oyA8IHNhbmFrdXNodVwgOwor5Li755Sj5ZywIDwgc2h1c2FuY2hpXCA7Civpn7Ppg6joqJjlj7cgPCBvbmJ1a2lnb3VcIDsKK+W3u+epjembsiA8IGtlbnNla2l1blwgOwor5biM56Gr6YW4IDwga2lyeXV1c2FuXCA7CivmlofmnIggPCBmdW1pZHp1a2lcIDsKK+iEseepgOapnyA8IGRha2tva3VraVwgOwor6byO6KuH5LyaIDwgdGVpZGFua2FpXCA7CivopIfmnKzkvY0gPCBmdWt1aG9uJydpXCA7Civkv5fotqPlkbMgPCB6b2t1c2h1bWlcIDsKK+e1guatouespiA8IHNodXVzaGlmdVwgOwor54Kt6LOqIDwgdGFuc2hpdHN1XCA7Civnsr7oo73lk4EgPCBzZWlzZWloaW5cIDsKK+aGsuWFtemaiiA8IGtlbnBlaXRhaVwgOwor6KqF5q66IDwgY2h1dXNhdHN1XCA7CivlpKfmmJQgPCBvb211a2FzaGlcIDsKK+mFjeWBtuiAhSA8IGhhaWd1dXNoYVwgOwor5YWF5b2T6YeRIDwganV1dG91a2luXCA7CivmtojngavmoJMgPCBzaG91a2FzZW5cIDsKK+WliOiJr+aZguS7oyA8IG5hcmFqaWRhaVwgOwor5a+E55WZ6ICFIDwga2lyeXV1c2hhXCA7CivngbDnpZ7mpb0gPCBoYWlrYWd1cmFcIDsKK+mHkeS4gOWwgSA8IGtpbicnaXBwdXVcIDsKK+W6iumBi+WLlSA8IHl1a2F1bmRvdVwgOwor6ZW36Z20IDwgbmFnYWd1dHN1XCA7Civlr4TnlJ/omasgPCBraXNlaWNodXVcIDsKK+ezuOi7iiA8IGl0b2d1cnVtYVwgOwor5aSc5pmSIDwgeW96YXJhc2hpXCA7CivkuInnrYnliIYgPCBzYW50b3VidW5cIDsKK+WWq+awtOe3miA8IGtpc3N1aXNlblwgOwor5aSP5pyNIDwgbmF0c3VmdWt1XCA7CivmgqrnjonljJYgPCBha3VkYW1ha2FcIDsKK+i2heewoeaYkyA8IGNob3VrYW4nJ2lcIDsKK+mdtOWiqCA8IGt1dHN1enVtaVwgOwor6KO46aasIDwgaGFkYWthdW1hXCA7CivmiK/kvZzogIUgPCBnZXNha3VzaGFcIDsKK+WmueWIhiA8IGltb3V0b2J1blwgOwor5pel5aKoIDwgbmljaGlib2t1XCA7CivmlrDlvI8gPCBzaGluc2hpa2lcIDsKK+mdkueToueuqiA8IGFvYnlvdXRhblwgOwor5oKj6ICF5qeYIDwga2FuamFzYW1hXCA7CivkupTlr7jph5ggPCBnb3N1bmt1Z2lcIDsKK+S7rueZu+iomCA8IGthcml0b3VraVwgOwor5ZCI5ZCM6LuNIDwgZ291ZG91Z3VuXCA7CivlpI/mmYIgPCBuYXRzdWRva2lcIDsKK+eCuOijgiA8IHNha3VyZXRzdVwgOwor54m55YilIDwgdG9rdWJldHN1XCA7CivopIfpm5EgPCBmdWt1emF0c3VcIDsKK+mdtOWeiyA8IGt1dHN1Z2F0YVwgOwor57KS6aOfIDwgcnl1dXNob2t1XCA7CivpnZ7nj77mpa0gPCBoaWdlbmd5b3VcIDsKK+WLpOWKtOiAhSA8IGtpbnJvdXNoYVwgOwor5Zu65a6a6ZW3IDwga290ZWljaG91XCA7Civmrrroj4zliaQgPCBzYWtraW56YWlcIDsKK+e1kOiGnCA8IGtldHN1bWFrdVwgOwor5rSL5pyN5bGLIDwgeW91ZnVrdXlhXCA7CivotbfniIbliaQgPCBraWJha3V6YWlcIDsKK+ihqOekuueBryA8IGh5b3VqaXRvdVwgOwor5L6/5Yip5bizIDwgYmVucmljaG91XCA7Civlj5bmnZDnj60gPCBzaHV6YWloYW5cIDsKK+iEguiCquS9kyA8IHNoaWJvdXRhaVwgOwor6YO15L6/5bGLIDwgeXV1YmluJyd5YVwgOwor57ie5p+EIDwgc2hpbWFnYXJhXCA7CivkuK3ovp7lhbggPCBjaHV1aml0ZW5cIDsKK+a0l+mdouWPsCA8IHNlbm1lbmRhaVwgOwor5aSx5oGLIDwgc2hpdHN1cmVuXCA7CivlhoXoo4/pm5sgPCBkYWlyaWJpbmFcIDsKK+WFqOS6jOmHjSA8IHplbicnbmlqdXVcIDsKK+a6tuino+aApyA8IHlvdWthaXNlaVwgOwor5aSx5b+1IDwgc2hpdHN1bmVuXCA7Civpm6jmm4cgPCBhbWFndW1vcmlcIDsKK+aVtOaVsOirliA8IHNlaXN1dXJvblwgOwor6KmV5rG6IDwgaHlvdWtldHN1XCA7CivmsJHnpL7lhZogPCBtaW5zaGF0b3VcIDsKK+S8geeUu+abuCA8IGtpa2FrdXNob1wgOwor55Sf5Zyw542EIDwgaWtpamlnb2t1XCA7CivntJTnsbPphZIgPCBqdW5tYWlzaHVcIDsKK+WbnumBiumtmiA8IGthaXl1dWd5b1wgOwor54Sh6Zai5b+DIDwgbXVrYW5zaGluXCA7CivogLPpvLvlkr3llokgPCBqaWJpaW5rb3VcIDsKK+Wls+WdgiA8IG9uJyduYXpha2FcIDsKK+e2mueZuiA8IHpva3VoYXRzdVwgOwor5Y+L5Lq66ZaTIDwgeXV1amlua2FuXCA7CivmnInmlpDplqMgPCB5dXVoaWtha3VcIDsKK+iyqeWjsuW6lyA8IGhhbmJhaXRlblwgOwor6ZuR5qCqIDwgemF0c3VrYWJ1XCA7Civlv5fmnJvmoKEgPCBzaGlib3Vrb3VcIDsKK+Wliei/jumWgCA8IGhvdWdlaW1vblwgOwor54mb5Yi6IDwgZ3l1dXNhc2hpXCA7Civln7fokZcgPCBzaHV1Y2hha3VcIDsKK+mdouS8muS6uiA8IG1lbmthaW5pblwgOwor5LiA566H5pyIIDwgaWtrYWdldHN1XCA7CivpgIHmsLTnrqEgPCBzb3VzdWlrYW5cIDsKK+ezluizqiA8IHRvdXNoaXRzdVwgOwor5Ya35YeN6Ii5IDwgcmVpdG91c2VuXCA7CivlubTphY3ogIUgPCBuZW5wYWlzaGFcIDsKK+aJi+aVsOaWmSA8IHRlc3V1cnlvdVwgOwor6Zui6a2C55eFIDwgcmlrb25ieW91XCA7CivnqbrmsJfmsZrmn5MgPCBrdXVraW9zZW5cIDsKK+eJh+WPoyA8IGthdGFrdWNoaVwgOwor5rC05Lit6IqxIDwgc3VpY2h1dWthXCA7Civli5XlkI3oqZ4gPCBkb3VtZWlzaGlcIDsKK+e0sOiFsCA8IGhvc29nb3NoaVwgOwor54OP5bi95a2Q6LKdIDwgZWJvc2hpZ2FpXCA7Civpu4Tph5HoibIgPCBrb2dhbmVpcm9cIDsKK+S6jOWFg+eahCA8IG5pZ2VudGVraVwgOwor57ie5qCX6bygIDwgc2hpbWFyaXN1XCA7CivlqK/mpb3loLQgPCBnb3Jha3Vqb3VcIDsKK+mBiuimp+WcsCA8IHl1dXJhbmNoaVwgOwor5pys5Zug5Z2KIDwgaG9uJydpbmJvdVwgOwor5YWx5qCE5ZyPIDwga3lvdWVpa2VuXCA7Civnm7jlr77mrbsgPCBhaXRhaWppbmlcIDsKK+WbveiHquaFoiA8IGt1bmlqaW1hblwgOwor6YeN5aSn6KaWIDwganV1ZGFpc2hpXCA7CivkvIHmpa3lhoUgPCBraWd5b3VuYWlcIDsKK+mbhuacrSA8IHNodXVzYXRzdVwgOwor5ZCM56qT5LyaIDwgZG91c291a2FpXCA7Civms5Xok67ojYkgPCBob3VyZW5zb3VcIDsKK+a1t+WklueJiCA8IGthaWdhaWJhblwgOwor5omH54q25ZywIDwgc2Vuam91Y2hpXCA7Civml6Xlh7ogPCBuaXNzaHV0c3VcIDsKK+aJk+aSg+aIpiA8IGRhZ2VraXNlblwgOwor5pyJ6LGh54Sh6LGhIDwgdXpvdW11em91XCA7CivpgI/lhpnntJkgPCB0b3VzaGFzaGlcIDsKK+S6uuaWh+WPsiA8IGppbmJ1bnNoaVwgOwor5oyH5a6a5Yi4IDwgc2hpdGVpa2VuXCA7CivpppnmsLTnk7YgPCBrb3VzdWliaW5cIDsKK+eGseW4r+eXhSA8IG5ldGFpYnlvdVwgOwor5Lyd6KiY54mpIDwgZGVua2ltb25vXCA7CivoqIjph4/lmaggPCBrZWlyeW91a2lcIDsKK+ijnOWEn+mHkSA8IGhvc2hvdWtpblwgOwor6Lu954qv572qIDwga2VpaGFuemFpXCA7Civlnarph48gPCB0c3Vib3J5b3VcIDsKK+WQiOaGsuaApyA8IGdvdWtlbnNlaVwgOwor5Zyw6Y6u56WtIDwgamljaGluc2FpXCA7CivkuLvkvZPmgKcgPCBzaHV0YWlzZWlcIDsKK+e0oOeykuWtkCA8IHNvcnl1dXNoaVwgOwor6J2/5Zyw542EIDwgaGFlamlnb2t1XCA7CivlpKfngb3lrrMgPCBkYWlzYWlnYWlcIDsKK+WltOWHpyA8IHlha2tvZGFrb1wgOwor5qW95aSp5a62IDwgcmFrdXRlbmthXCA7CivnkIbmgKfnmoQgPCByaXNlaXRla2lcIDsKK+e2v+ayuSA8IHdhdGFhYnVyYVwgOwor54S254S2IDwgc2hpa2FqaWthXCA7CivpvJPnrJvpmoogPCBrb3Rla2l0YWlcIDsKK+i1t+iotOeMtuS6iCA8IGtpc295dXV5b1wgOwor5a+S5pqW6KiIIDwga2FuZGFua2VpXCA7CivoirHnsonnl4cgPCBrYWZ1bnNob3VcIDsKK+S6uueCuueahCA8IGppbicnaXRla2lcIDsKK+S8iuWLouelnuWuriA8IGlzZWppbmd1dVwgOwor5Y+X6aCY6ICFIDwganVyeW91c2hhXCA7CivkvIHnlLvmgKcgPCBraWtha3VzZWlcIDsKK+WGhemcgOWeiyA8IG5haWp1Z2F0YVwgOwor5bC45L2N57Sg6aSQIDwgc2hpaXNvc2FuXCA7CivnhKbnhrEgPCBzaG91bmV0c3VcIDsKK+WOn+aIkOWyqSA8IGdlbnNlaWdhblwgOwor6KGo56S65p2/IDwgaHlvdWppYmFuXCA7CivlpI/lsbEgPCBuYXRzdXlhbWFcIDsKK+eIquWIhyA8IHRzdW1la2lyaVwgOwor5rC45LmF5q2vIDwgZWlreXV1c2hpXCA7CivljYPnpL7mnK0gPCBzZW5qYWZ1ZGFcIDsKK+iPqeaPkOW/gyA8IGJvZGFpc2hpblwgOwor5pS/5omAIDwgbWFuZG9rb3JvXCA7CivmlZnlvI8gPCBreW91c2hpa2lcIDsKK+ihqOekuuabuCA8IGh5b3VqaXNob1wgOwor5pS+5rC0566hIDwgaG91c3Vpa2FuXCA7Civlj4zlrZDokYkgPCBzb3VzaGl5b3VcIDsKK+aAp+i7ouaPmyA8IHNlaXRlbmthblwgOwor6Ly46YCB6YePIDwgeXVzb3VyeW91XCA7CivmiYDmnInlnLAgPCBzaG95dXVjaGlcIDsKK+m8k+aJi+mVtyA8IGtvc2h1Y2hvdVwgOwor54iq5YWIIDwgdHN1bWFzYWtpXCA7Civnt4/mnKzlupcgPCBzb3Vob250ZW5cIDsKK+WFg+awl+iAhSA8IGdlbmtpbW9ub1wgOwor5Luj5byB6ICFIDwgZGFpYmVuc2hhXCA7Civph47lpKnpoqjlkYIgPCBub3RlbmJ1cm9cIDsKK+eUuuWMu+iAhSA8IG1hY2hpaXNoYVwgOwor6KO95p2Q5omAIDwgc2VpemFpc2hvXCA7CivloanmvKwgPCBzaGlvZHp1a2VcIDsKK+WPjeS5sei7jSA8IGhhbnJhbmd1blwgOwor57eP5Lq65Y+jIDwgc291amlua291XCA7Civlupfku5XoiJ4gPCBtaXNlamltYWlcIDsKK+S4reS/neiAhSA8IGNodXVob3NoYVwgOwor5aWU5Ye6IDwgaG9uc2h1dHN1XCA7Civnq4vms5XogIUgPCByaXBwb3VzaGFcIDsKK+iNieebuOaSsiA8IGt1c2F6dW1vdVwgOwor5LqI5YKZ6YyoIDwgeW9iaWlrYXJpXCA7CivpmpTmnIggPCBrYWt1Z2V0c3VcIDsKK+atk+mAgeS8miA8IGthbnNvdWthaVwgOwor5Y+M57+F6aGeIDwgc291c2hpcnVpXCA7CivntJnntLDlt6UgPCBrYW1pemFpa3VcIDsKK+WxseawtOiNmCA8IHNhbnN1aXNvdVwgOwor6KGo5rKZ5rGwIDwgb21vdGV6YXRhXCA7CivllJDnjYXlrZAgPCBrYXJhamlzaGlcIDsKK+W5s+WSjOWbvSA8IGhlaXdha29rdVwgOwor5L2O5rCX5ZynIDwgdGVpa2lhdHN1XCA7CivkvZzmpa3nlKggPCBzYWd5b3V5b3VcIDsKK+aSg+eZuiA8IGdla2loYXRzdVwgOwor5Z+3562GIDwgc2hpcHBpdHN1XCA7CivmsLTlrrPlnLAgPCBzdWlnYWljaGlcIDsKK+e3j+acrOWxsSA8IHNvdWhvbnphblwgOwor5ryU6Kqs5a62IDwgZW56ZXRzdWthXCA7Civnm7Lohbjngo4gPCBtb3VjaG91ZW5cIDsKK+aWpeWKmyA8IHNla2lyeW9rdVwgOwor57WC55m6IDwgc2h1dWhhdHN1XCA7CivpgaPllJDkvb8gPCBrZW50b3VzaGlcIDsKK+WdgumBkyA8IHNha2FtaWNoaVwgOwor5L2c5qWt54+tIDwgc2FneW91aGFuXCA7CivmtLvmgKfngq0gPCBrYXNzZWl0YW5cIDsKK+acgOWwj+WMliA8IHNhaXNob3VrYVwgOwor5LmX6ZmN5aC0IDwgam91a291am91XCA7Civkv5fkuJbnlYwgPCB6b2t1c2VrYWlcIDsKK+avm+e5lOeJqSA8IGtlb3JpbW9ub1wgOwor5b+X6aGY5pu4IDwgc2hpZ2Fuc2hvXCA7CivkuI3mrbvps6UgPCBmdXNoaWNob3VcIDsKK+aCsuims+eahCA8IGhpa2FudGVraVwgOwor5pKy5ruFIDwgYm9rdW1ldHN1XCA7CivmiJDlip/ogIUgPCBzZWlrb3VzaGFcIDsKK+eci+itt+WtpiA8IGthbmdvZ2FrdVwgOwor5LiK5ZCR57eaIDwgam91a291c2VuXCA7Civmtojngo7liaQgPCBzaG91ZW56YWlcIDsKK+WFrOS8keaXpSA8IGtvdWt5dXViaVwgOwor57eP57235qWtIDwgc291aGlneW91XCA7Civlho3mipXos4cgPCBzYWl0b3VzaGlcIDsKK+atjOWKh+WgtCA8IGthZ2VraWpvdVwgOwor5rWE5rC05aC0IDwgam91c3Vpam91XCA7Civpm6rlpbMgPCB5dWtpb24nJ25hXCA7CivoqbPlr4YgPCBzaG91bWl0c3VcIDsKK+awtOiAleazlSA8IHN1aWtvdWhvdVwgOwor5aSn5ryU57+SIDwgZGFpZW5zaHV1XCA7CivnhKHnkIbnhKHkvZMgPCBtdXJpbXV0YWlcIDsKK+Wun+a4rOWbsyA8IGppc3Nva3V6dVwgOwor6Iao5by15bqmIDwgYm91Y2hvdWRvXCA7CivmmKDlhpnluZUgPCBlaXNoYW1ha3VcIDsKK+S4iuawtOmBkyA8IGpvdXN1aWRvdVwgOwor5YWo5L2P5rCRIDwgemVuanV1bWluXCA7CivmtYTmsLTlnLAgPCBqb3VzdWljaGlcIDsKK+mbkeWtpiA8IHphdHN1Z2FrdVwgOwor5Z2H6LOqIDwga2luc2hpdHN1XCA7CivnlLfmgKfnlKggPCBkYW5zZWl5b3VcIDsKK+WlveWlh+W/gyA8IGtvdWtpc2hpblwgOwor6IKJ5L2T576OIDwgbmlrdXRhaWJpXCA7Civlm73lrrbnmoQgPCBrb2trYXRla2lcIDsKK+eKoOeJsueahCA8IGdpc2VpdGVraVwgOwor6YCj5a2Q56qTIDwgcmVuamltYWRvXCA7Civnm7jlr77mgKcgPCBzb3V0YWlzZWlcIDsKK+eDj+eTnCA8IGthcmFzdXVyaVwgOwor6Zai5b+D5LqLIDwga2Fuc2hpbmppXCA7CivljJfmlpfmmJ8gPCBob2t1dG9zZWlcIDsKK+acrOaLoOWcsCA8IGhvbmt5b2NoaVwgOwor6Iie6LiP55eFIDwgYnV0b3VieW91XCA7CivlhoXlpJbkurogPCBuYWlnYWlqaW5cIDsKK+aSsuauuiA8IGJva3VzYXRzdVwgOwor5pGY55m6IDwgdGVraWhhdHN1XCA7CivkuIvnqK7lpbMgPCBnZXN1b24nJ25hXCA7CivotaTpm7vou4ogPCBha2FkZW5zaGFcIDsKK+Wkj+WQkSA8IG5hdHN1bXVraVwgOwor57KY5p2/5bKpIDwgbmVuYmFuZ2FuXCA7Civkuovmpa3ogIUgPCBqaWd5b3VzaGFcIDsKK+atk+i/juS8miA8IGthbmdlaWthaVwgOwor6KiX5YWQ5omAIDwgdGFrdWppc2hvXCA7CivmsLTmmYLoqIggPCBtaXp1ZG9rZWlcIDsKK+aNqOmJoiA8IHN1dGViYWNoaVwgOwor55uy5bCO54qsIDwgbW91ZG91a2VuXCA7Civosqnlo7LkurogPCBoYW5iYWluaW5cIDsKK+mvkCA8IHN1YmFzaGlyaVwgOwor5Lq65Zu96KiYIDwgamlua29rdWtpXCA7Civmma7lj4rniYggPCBmdWt5dXViYW5cIDsKK+mulyA8IGtvbm9zaGlyb1wgOwor5Y2K6YOo5pePIDwgaGFuYnV6b2t1XCA7Civpo5vpgZPlhbcgPCB0b2JpZG91Z3VcIDsKK+S6uumWk+eVjCA8IG5pbmdlbmthaVwgOwor5Lmz5q+N6LuKIDwgdWJhZ3VydW1hXCA7Civmg6jmrbvkvZMgPCB6YW5zaGl0YWlcIDsKK+WgheeJqSA8IGthdGFidXRzdVwgOwor6YGL5pCs5Lq6IDwgdW5wYW4nJ25pblwgOwor5oqX55Sf5YmkIDwga291c2VpemFpXCA7Civlm73piYQgPCBrb2t1dGV0c3VcIDsKK+inkuaovSA8IHRzdW5vZGFydVwgOwor5pKD5ruFIDwgZ2VraW1ldHN1XCA7CivkuJbov7foqIAgPCB5b21haWdvdG9cIDsKK+S8neiogOadvyA8IGRlbmdvbmJhblwgOwor6Ieq56uL6KqeIDwgamlyaXRzdWdvXCA7Civns6fnp6MgPCByeW91bWF0c3VcIDsKK+eGseW4r+aelyA8IG5ldHRhaXJpblwgOwor5rC45LmF5oCnIDwgZWlreXV1c2VpXCA7Civoo73mnKzlsYsgPCBzZWlob24nJ3lhXCA7Civmsb3ou4ros4MgPCBraXNoYWNoaW5cIDsKK+mao+WupCA8IHJpbnNoaXRzdVwgOwor56aB6KOP5qeYIDwga2lucmlzYW1hXCA7CivmhaPnlKjlj6UgPCBrYW4nJ3lvdWt1XCA7CivoprPlhYnlnLAgPCBrYW5rb3VjaGlcIDsKK+S8muimi+iAhSA8IGthaWtlbnNoYVwgOwor5p2x5aSp57SFIDwgdG91dGVua291XCA7CivoprPlhYnlm6MgPCBrYW5rb3VkYW5cIDsKK+aKgOW3p+eahCA8IGdpa291dGVraVwgOwor5qW96Zqg5bGFIDwgcmFrdWlua3lvXCA7Civpq5jpgJ/luqYgPCBrb3Vzb2t1ZG9cIDsKK+engeeUn+WtkCA8IHNoaXNlaXNoaVwgOwor5pel6KiY5bizIDwgbmlra2ljaG91XCA7CivmlL/msrvlraYgPCBzZWlqaWdha3VcIDsKK+WkluS7mCA8IHNvdG9kenVrZVwgOwor5rC055CG5a2mIDwgc3VpcmlnYWt1XCA7Civmr43lrZDlr64gPCBib3NoaXJ5b3VcIDsKK+edgOW/g+WcsCA8IGtpZ29rb2NoaVwgOwor5aSP5L2cIDwgbmF0c3VzYWt1XCA7CivmiJLljrPku6QgPCBrYWlnZW5yZWlcIDsKK+aKleS4jumHjyA8IHRvdXlvcnlvdVwgOwor54Wn5bC6IDwgc2hvdXNoYWt1XCA7CivmhI/msJfou5Lpq5ggPCBpa2lrZW5rb3VcIDsKK+mbquWFjiA8IHl1a2l1c2FnaVwgOwor5ZO65Lmz6aGeIDwgaG9ueXV1cnVpXCA7CivlpKfonZnonaAgPCBvb2tvdW1vcmlcIDsKK+eEoeaKleelqCA8IG11dG91aHlvdVwgOwor5oyH5LqG5ZuzIDwgc2hpcnlvdXp1XCA7Civpganlv5zmgKcgPCB0ZWtpb3VzZWlcIDsKK+ilsueItSA8IHNodXVzaGFrdVwgOwor5ryr5omN5birIDwgbWFuemFpc2hpXCA7Civkuovmpa3nqI4gPCBqaWd5b3V6ZWlcIDsKK+WPjuWuueaJgCA8IHNodXV5b3Vqb1wgOwor5Zu955K95pu4IDwga29rdWppc2hvXCA7CivmhJ/opprlmaggPCBrYW5rYWt1a2lcIDsKK+aVmeiCsuiyuyA8IGt5b3Vpa3VoaVwgOwor5Zu65a6a57WmIDwga290ZWlreXV1XCA7CivlsZXopqfkvJogPCB0ZW5yYW5rYWlcIDsKK+S6pOS7o+WItiA8IGtvdXRhaXNlaVwgOwor6ZidIDwga296YXRvaGVuXCA7Civopobmu4UgPCBmdWt1bWV0c3VcIDsKK+W3oeimluiJhyA8IGp1bnNoaXRlaVwgOwor5beh6KaW6Ii5IDwganVuc2hpc2VuXCA7CivmsY7plqLmlbAgPCBoYW5rYW5zdXVcIDsKK+WFqOS6uueUnyA8IHplbmppbnNlaVwgOwor5pat5by35bqmIDwgZGFua3lvdWRvXCA7Civlh6blpbPkvZwgPCBzaG9qb3Nha3VcIDsKK+WAi+aAp+eahCA8IGtvc2VpdGVraVwgOwor5aKo5aO3IDwgc3VtaXRzdWJvXCA7Civlhajpn7Ppmo4gPCB6ZW4nJ29ua2FpXCA7CivoqoXkvJAgPCBjaHV1YmF0c3VcIDsKK+WPjeS5seiAhSA8IGhhbnJhbnNoYVwgOwor6Lu96Z+z5qW9IDwga2Vpb25nYWt1XCA7Civlm57lvqnmnJ8gPCBrYWlmdWt1a2lcIDsKK+S4jeWQiOagvCA8IGZ1Z291a2FrdVwgOwor5ZGo5rOi6KiIIDwgc2h1dWhha2VpXCA7CivkuI3lj6/mrKAgPCBmdWtha2V0c3VcIDsKK+aUvuWHuiA8IGhvdXNodXRzdVwgOwor57WC5qW1IDwgc2h1dWt5b2t1XCA7CivnoazljJbnl4cgPCBrb3VrYXNob3VcIDsKK+mAhuWKueaenCA8IGd5YWtrb3VrYVwgOwor6KO457eaIDwgaGFkYWthc2VuXCA7CivopobmsqEgPCBmdWt1Ym90c3VcIDsKK+S4gOetieWbvSA8IGl0dG91a29rdVwgOwor5YWo5bCB5ZywIDwgemVuaG91Y2hpXCA7CivliIbphY3ph5EgPCBidW5wYWlraW5cIDsKK+iqnuWwvuWkieWMliA8IGdvYmloZW5rYVwgOwor5Zue6YGK6Ii5IDwga2FpeXV1c2VuXCA7CivlhazkvJrloIIgPCBrb3VrYWlkb3VcIDsKK+eEoeihqOaDhSA8IG11aHlvdWpvdVwgOwor54Wp5Z6LIDwgdXJ1c2FnYXRhXCA7CivmsLTppIPlrZAgPCBzdWlneW91emFcIDsKK+iplOWLhSA8IHNob3VjaG9rdVwgOwor6aKo5Zyf55eFIDwgZnV1ZG9ieW91XCA7CivmlK/lh7ogPCBzaGlzaHV0c3VcIDsKK+mAg+mBv+eahCA8IHRvdWhpdGVraVwgOwor5Y+k5paH5a2mIDwga29idW5nYWt1XCA7CivlhKrnrYnnlJ8gPCB5dXV0b3VzZWlcIDsKK+e2ouWvhiA8IGNodXVtaXRzdVwgOwor5Zu65a6a56WoIDwga290ZWloeW91XCA7Civlr77lkJHou4ogPCB0YWlrb3VzaGFcIDsKK+e1hOabsiA8IGt1bWlreW9rdVwgOwor5LqL5qWt55WMIDwgamlneW91a2FpXCA7CivmibnliKTnmoQgPCBoaWhhbnRla2lcIDsKK+WkqeWcsOS6uiA8IHRlbmNoaWppblwgOwor6KGA57Wx5pu4IDwga2V0dG91c2hvXCA7CivkuK3kuozpmo4gPCBjaHV1bmlrYWlcIDsKK+e2meWupCA8IGtlaXNoaXRzdVwgOwor5Zu96KGoIDwga3VuaW9tb3RlXCA7CivlsbHokaHokIQgPCB5YW1hYnVkb3VcIDsKK+m7hOmBk+mdoiA8IGtvdWRvdW1lblwgOwor5Y+X6Zuj6YCxIDwganVuYW5zaHV1XCA7CivlsIrljrPmrbsgPCBzb25nZW5zaGlcIDsKK+iAg+WPpOWtpiA8IGtvdWtvZ2FrdVwgOwor5L+d6Zm66Ki8IDwgaG9rZW5zaG91XCA7Civpq5jliIblrZAgPCBrb3VidW5zaGlcIDsKK+WGpeWKoOmHkSA8IG15b3VnYWtpblwgOwor5YaF5Zyw57GzIDwgbmFpY2hpbWFpXCA7Civmnq/okYnliaQgPCBrYXJlaGF6YWlcIDsKK+e3oOWIhyA8IHNoaW1la2lyaVwgOwor5oub5b6F5pelIDwgc2hvdXRhaWJpXCA7CivoqpPpoZjmqKkgPCBzZWlnYW5rZW5cIDsKK+aEm+WbveiAhSA8IGFpa29rdXNoYVwgOwor6Ki06aGY5Lq6IDwgc29nYW4nJ25pblwgOwor6aCY5LqL6aSoIDwgcnlvdWppa2FuXCA7CivkuLvniq/ogIUgPCBzaHVoYW5zaGFcIDsKK+mYsuitt+WjgSA8IGJvdWdvaGVraVwgOwor6LOH6YeR5rqQIDwgc2hpa2luZ2VuXCA7CivpvKDlkqznl4cgPCBzb2tvdXNob3VcIDsKK+S4iemHjeeblyA8IHNhbmp1dXRvdVwgOwor6YCj5L2T5b2iIDwgcmVudGFpa2VpXCA7CivlnJ/oibIgPCB0c3VjaGlpcm9cIDsKK+ePvuautemajiA8IGdlbmRhbmthaVwgOwor5oiQ5bm06ICFIDwgc2VpbmVuc2hhXCA7Civph5Hop6PnpoEgPCBraW5rYWlraW5cIDsKK+e+veWtkOeqgSA8IGhhbmV0c3VraVwgOwor5rSX5r+v57KJIDwgc2VudGFrdWtvXCA7CivlhYnljJblraYgPCBrb3VrYWdha3VcIDsKK+i+suWtpumDqCA8IG5vdWdha3VidVwgOwor5Li75Lu75Yi2IDwgc2h1bmluc2VpXCA7CivoiJ7ouI/mnI0gPCBidXRvdWZ1a3VcIDsKK+e1jOmok+irliA8IGtlaWtlbnJvblwgOwor57WM6aiT6KuHIDwga2Vpa2VuZGFuXCA7CivmjqXntpogPCBzZXRzdXpva3VcIDsKK+aTpumBjuWCtyA8IHNha2thc2hvdVwgOwor57Gz57KSIDwga29tZXRzdWJ1XCA7Civns5/mvKwgPCBrYXN1ZHp1a2VcIDsKK+Wbm+mHjeWljyA8IHNoaWp1dXNvdVwgOwor6LidIDwga3VydWJ1c2hpXCA7Civnm7jlr77lgKQgPCBzb3V0YWljaGlcIDsKK+avjeWtkOWFsSA8IGJvc2hpdG9tb1wgOwor6YmE54Gr5be7IDwgdGVra2FtYWtpXCA7Civoi7HkvZzmlocgPCBlaXNha3VidW5cIDsKK+aIpui7iuWFtSA8IHNlbnNoYWhlaVwgOwor5YaN5oqV56i/IDwgc2FpdG91a291XCA7CivmlZnppIrpg6ggPCBreW91eW91YnVcIDsKK+eri+azleaoqSA8IHJpcHBvdWtlblwgOwor5aal5Y2U54K5IDwgZGFreW91dGVuXCA7Civpm7Lku5nlsrMgPCB1bnplbmRha2VcIDsKK+WPl+mgmOabuCA8IGp1cnlvdXNob1wgOwor5LiN5rS75YyWIDwgZnVrYXRzdWthXCA7Civmlofnq6Doqp4gPCBidW5zaG91Z29cIDsKK+mdkuS/oeWPtyA8IGFvc2hpbmdvdVwgOwor5pmC6KiI55q/IDwgdG9rZWl6YXJhXCA7Civlub3lhqXnlYwgPCB5dXVtZWlrYWlcIDsKK+Wft+ihjOWQjyA8IHNoaWtrb3VyaVwgOwor562J6auY57eaIDwgdG91a291c2VuXCA7CivntZ7pppblj7AgPCBrb3VzaHVkYWlcIDsKK+egtOaTpumfsyA8IGhhc2F0c3VvblwgOwor6YCB5Y+X5L+hIDwgc291anVzaGluXCA7CivmkqvlrZAgPCBuYWRlc2hpa29cIDsKK+S4gOelnuirliA8IGlzc2hpbnJvblwgOwor552A6YGT5qW9IDwga2lkb3VyYWt1XCA7CivmmI7lvozlubQgPCBteW91Z29uZW5cIDsKK+azleWLmeecgSA8IGhvdW11c2hvdVwgOwor6YW157Sg5a2mIDwga291c29nYWt1XCA7Civns6DmsrkgPCBudWthYWJ1cmFcIDsKK+mVt+eJqSA8IGNob3VidXRzdVwgOwor5Zuz5YOP5a2mIDwgenV6b3VnYWt1XCA7CivlpYnliqDluLMgPCBob3VnYWNob3VcIDsKK+aEn+WYhuipniA8IGthbnRhbnNoaVwgOwor5YmN5aOy5Yi4IDwgbWFldXJpa2VuXCA7Civopqrlv4MgPCBveWFnb2tvcm9cIDsKK+ihhuiqrCA8IHNodXVzZXRzdVwgOwor5b+X6aGY5YW1IDwgc2hpZ2FuaGVpXCA7Civlj43lsITlhYkgPCBoYW5zaGFrb3VcIDsKK+earue0sOW3pSA8IGthd2F6YWlrdVwgOwor5b6p5rC05ZmoIDwgZnVrdXN1aWtpXCA7CivplqLpgKPmgKcgPCBrYW5yZW5zZWlcIDsKK+e1seiqnuWtpiA8IHRvdWdvZ2FrdVwgOwor57W25aaZIDwgemV0c3VteW91XCA7CivorJvmvJTmlpkgPCBrb3VlbnJ5b3VcIDsKK+aVrOiAgeS8miA8IGtlaXJvdWthaVwgOwor5pmC6ZaT6Lu4IDwgamlrYW5qaWt1XCA7Civlj43lr77lhZogPCBoYW50YWl0b3VcIDsKK+aQreS5l+iAhSA8IHRvdWpvdXNoYVwgOwor5Lmd5YiG5Lmd5Y6YIDwga3VidWt1cmluXCA7Civns7jmoZwgPCBpdG96YWt1cmFcIDsKK+ekvuawkeWFmiA8IHNoYW1pbnRvdVwgOwor57We6aaW5YiRIDwga291c2h1a2VpXCA7CivlibXlu7rogIUgPCBzb3VrZW5zaGFcIDsKK+acgOWkp+mZkCA8IHNhaWRhaWdlblwgOwor6Zmz5YiXIDwgY2hpbnJldHN1XCA7Civns7jmn7MgPCBpdG95YW5hZ2lcIDsKK+alk+WtkOmmmSA8IGZ1dXNoaWtvdVwgOwor5re35oiQ5bKpIDwga29uc2VpZ2FuXCA7Civln7fmi5cgPCBzaGl0c3V5b3VcIDsKK+e0meeymOWcnyA8IGthbWluZW5kb1wgOwor5p2h5Lu25paHIDwgam91a2VuYnVuXCA7CivmhI/orZjkvZMgPCBpc2hpa2l0YWlcIDsKK+engeS8gealrSA8IHNoaWtpZ3lvdVwgOwor56m65qih5qeYIDwgc29yYW1veW91XCA7CivlhazmnInmnpcgPCBrb3V5dXVyaW5cIDsKK+WxseawtOalvCA8IHNhbnN1aXJvdVwgOwor6KODIDwga2FtaXNoaW1vXCA7Civlr4TnlZnlnLAgPCBraXJ5dXVjaGlcIDsKK+aWreWJm+aApyA8IGRhbmdvdXNlaVwgOwor56m65YWD5rCXIDwga2FyYWdlbmtpXCA7CivooaQgPCBrb3JvbW9oZW5cIDsKK+aJk+eul+eahCA8IGRhc2FudGVraVwgOwor6YCA6JS15ZOBIDwgdGFpem91aGluXCA7Civopqrlr4YgPCBzaGlubWl0c3VcIDsKK+W9semfv+WcjyA8IGVpa3lvdWtlblwgOwor55yf5ZaE576OIDwgc2hpbnplbmJpXCA7CivmiYvooZPooaMgPCBzaHVqdXRzdWlcIDsKK+S6uumWk+aEmyA8IG5pbmdlbicnYWlcIDsKK+eQhuefpeeahCA8IHJpY2hpdGVraVwgOwor562S6Z+zIDwgdHN1dHN1b3RvXCA7CivnkKXnj4DoibIgPCBrb2hha3Vpcm9cIDsKK+W+oeiUreanmCA8IG9rYWdlc2FtYVwgOwor5q+b57Sw566hIDwgbW91c2Fpa2FuXCA7CivntIvmiYAgPCBtb25kb2tvcm9cIDsKK+iii+e2siA8IGZ1a3Vyb2FtaVwgOwor55m96IOh6bq7IDwgc2hpcm9nb21hXCA7Civoh6rlt7Hopo/liLYgPCBqaWtva2lzZWlcIDsKK+S4u+S6uuWFrCA8IHNodWppbmtvdVwgOwor5ZCM5aeU5ZOh5LyaIDwgZG91aWlua2FpXCA7CivkurrplpPmgKcgPCBuaW5nZW5zZWlcIDsKK+WNmOWtlOmhniA8IHRhbmtvdXJ1aVwgOwor5ZCM5Yq06ICFIDwgZG91cm91c2hhXCA7CivljbPmmYLmgKcgPCBzb2t1amlzZWlcIDsKK+S5s+WRkeWFkCA8IGNoaW5vbWlnb1wgOwor5LiN5b6z5ryiIDwgZnV0b2t1a2FuXCA7Civpga3pgYfmiKYgPCBzb3VndXVzZW5cIDsKK+iogOS8nSA8IGtvdG9kenV0ZVwgOwor5Y+I5a625p2lIDwgbWF0YWdlcmFpXCA7Civngavmn7EgPCBoaWJhc2hpcmFcIDsKK+S4gOWmu+WkmuWkqyA8IGlzc2FpdGFmdVwgOwor6Zal5pePIDwgYmF0c3V6b2t1XCA7CivmraPmm7jms5UgPCBzZWlzaG9ob3VcIDsKK+eLrOiHquaApyA8IGRva3VqaXNlaVwgOwor5byB6LKh5aSpIDwgYmVuemFpdGVuXCA7Civli6Tli5nlhYggPCBraW5tdXNha2lcIDsKK+inkuWPiSA8IHRzdW5vbWF0YVwgOwor5oyB5LmF5oimIDwgamlreXV1c2VuXCA7Civph43opoHoppYgPCBqdXV5b3VzaGlcIDsKK+epuuaihembqCA8IGthcmF0c3V5dVwgOwor5re35oiQ5ZujIDwga29uc2VpZGFuXCA7CivkuI3mraPooYzngrogPCBmdXNlaWtvdWlcIDsKK+aKnOmMqCA8IGJhdHN1YnlvdVwgOwor54Gr5Y+j5aOBIDwga2Frb3VoZWtpXCA7CivmmYLplpPooaggPCBqaWthbmh5b3VcIDsKK+egguWIqemBkyA8IGphcmltaWNoaVwgOwor5Lya6KiI5a6YIDwga2Fpa2Vpa2FuXCA7Civos6Tmpa3lqaYgPCBzZW5neW91ZnVcIDsKK+e1jOmok+iAhSA8IGtlaWtlbnNoYVwgOwor6Z+T5Zu96KqeIDwgaGFua29rdWdvXCA7CivmlZnmnZDosrsgPCBreW91emFpaGlcIDsKK+WbveeriyA8IGtva3VyaXRzdVwgOwor5Yud5Yip6ICFIDwgc2hvdXJpc2hhXCA7CivmvZzkvI/mnJ8gPCBzZW5wdWt1a2lcIDsKK+Wkp+Wbo+WGhiA8IGRhaWRhbicnZW5cIDsKK+WNiOWJjeanmCA8IGdvemVuc2FtYVwgOwor5rW35r2u6Z+zIDwga2FpY2hvdW9uXCA7CivmraPniq/ogIUgPCBzZWloYW5zaGFcIDsKK+WPr+Wcp+aApyA8IGthYXRzdXNlaVwgOwor6Ii55aSn5belIDwgZnVuYWRhaWt1XCA7CivlnJ/lnLDmn4QgPCB0b2NoaWdhcmFcIDsKK+eZu+iIt+ekvCA8IHRvdWdlbnJlaVwgOwor5r+A56qBIDwgZ2VraXRvdHN1XCA7CivmlL/lupznrYsgPCBzZWlmdXN1amlcIDsKK+a0u+aAp+WJpCA8IGthc3NlaXphaVwgOwor5Y+N5L2T5Yi2IDwgaGFudGFpc2VpXCA7Civol7voj4zpoZ4gPCBzb3VraW5ydWlcIDsKK+a7keefs+eyiSA8IGthc3Nla2lrb1wgOwor57ep6KGd5ZmoIDwga2Fuc2hvdWtpXCA7Civps6nnvr3oibIgPCBoYXRvYmFpcm9cIDsKK+mhleW+rumPoSA8IGtlbmJpa3lvdVwgOwor5ZCN5bqX6KGXIDwgbWVpdGVuZ2FpXCA7CivliKnkvJHoibIgPCByaWt5dXVpcm9cIDsKK+WbveS6i+eKryA8IGtva3VqaWhhblwgOwor6ZaA5p2+IDwga2Fkb21hdHN1XCA7Civmt7fmiJDlk4EgPCBrb25zZWloaW5cIDsKK+WIhumFjeiAhSA8IGJ1bnBhaXNoYVwgOwor5Y2K6YCP5piOIDwgaGFudG91bWVpXCA7CivliIbmsLTnt5ogPCBidW5zdWlzZW5cIDsKK+mBiuaIr+eahCA8IHl1dWdpdGVraVwgOwor6L+R6KaW55y8IDwga2luc2hpZ2FuXCA7CivkvJroqIjlo6sgPCBrYWlrZWlzaGlcIDsKK+aKnOmBkyA8IG51a2VtaWNoaVwgOwor5Yid5bm05YW1IDwgc2hvbmVuaGVpXCA7CivlkIzlubTovKkgPCBkb3VuZW5wYWlcIDsKK+ePjeeEoemhniA8IGNoaW5tdXJ1aVwgOwor566d5Y+j5LukIDwga2Fua291cmVpXCA7CivlkIjms5XmgKcgPCBnb3Vob3VzZWlcIDsKK+e3j+mgmOS6iyA8IHNvdXJ5b3VqaVwgOwor5bee5pS/5bqcIDwgc2h1dXNlaWZ1XCA7CivllYbli5nlrpggPCBzaG91bXVrYW5cIDsKK+mVt+aciCA8IG5hZ2F0c3VraVwgOwor5b+c5o6l6ZaTIDwgb3VzZXRzdW1hXCA7CivooYDogokgPCBrZXRzdW5pa3VcIDsKK+WPguS8muiAhSA8IHNhbmthaXNoYVwgOwor5LqU5Lq657WEIDwgZ29uaW5ndW1pXCA7Civpu4TmsLTmmbYgPCBraXp1aXNob3VcIDsKK+WGheijj+anmCA8IGRhaXJpc2FtYVwgOwor5aSn6KGG5YyWIDwgdGFpc2h1dWthXCA7Civph43lpKfmgKcgPCBqdXVkYWlzZWlcIDsKK+WkluWbveiqniA8IGdhaWtva3Vnb1wgOwor54++54q257at5oyBIDwgZ2Vuam91aWppXCA7Civli6LlipvlrrYgPCBzZWlyeW9ra2FcIDsKK+WjsOalveWutiA8IHNlaWdha3VrYVwgOwor6KO96Z205qWtIDwgc2Vpa2FneW91XCA7CivntJvlpLEgPCBmdW5zaGl0c3VcIDsKK+eusemmrOi7iiA8IGhha29iYXNoYVwgOwor5a6u5YaF55yBIDwga3VuYWlzaG91XCA7CivlnJ/niaIgPCB0c3VjaGlyb3VcIDsKK+S6i+alreaJgCA8IGppZ3lvdXNob1wgOwor56m/5bGx55SyIDwgc2VuemFua291XCA7Civoh6jmuK/nt5ogPCByaW5rb3VzZW5cIDsKK+WUr+WQjeirliA8IHl1aW1laXJvblwgOwor57Gz5rK5IDwga29tZWFidXJhXCA7CivmlLnpgKDou4ogPCBrYWl6b3VzaGFcIDsKK+m7hOmHkeWbvSA8IG91Z29ua29rdVwgOwor6IqL576K5765IDwgaW1veW91a2FuXCA7Civmm7TnlJ/lk4EgPCBrb3VzZWloaW5cIDsKK+W6g+Wwj+i3ryA8IGhpcm9rb3VqaVwgOwor562L6YGTIDwgc3VqaW1pY2hpXCA7Civnqbrov5TkuosgPCBzb3JhaGVuamlcIDsKK+evs+evpSA8IGhpY2hpcmlraVwgOwor6IWQ5qSN5ZyfIDwgZnVzaG9rdWRvXCA7CivmrKHlloTnrZYgPCBqaXplbnNha3VcIDsKK+e+jui+num6l+WPpSA8IGJpamlyZWlrdVwgOwor6YGg55y86Y+hIDwgdG9vbWVnYW5lXCA7CivlibXpgKDogIUgPCBzb3V6b3VzaGFcIDsKK+S8kembu+aXpSA8IGt5dXVkZW5iaVwgOwor5p2/6ZaA5bqXIDwgaGFubW9udGVuXCA7CivooZ3nqoEgPCBzaG91dG90c3VcIDsKK+WwjuWFpemDqCA8IGRvdW55dXVidVwgOwor56aF5ZWP562UIDwgemVubW9uZG91XCA7CivopIfmlbDlgIsgPCBmdWt1c3V1a29cIDsKK+ebsuWtpuagoSA8IG1vdWdha2tvdVwgOwor56CU5L+u6KqyIDwga2Vuc2h1dWthXCA7CivlvL7mgKfkvZMgPCBkYW5zZWl0YWlcIDsKK+exs+argyA8IGtvbWViaXRzdVwgOwor54yu5ZGI5pysIDwga2VudGVpYm9uXCA7CivlsL7plbfpto8gPCBvbmFnYWRvcmlcIDsKK+aUvumAgee2siA8IGhvdXNvdW1vdVwgOwor6bq76YWU6JasIDwgbWFzdWl5YWt1XCA7CivljYPlubTntIAgPCBzZW4nJ25lbmtpXCA7Civlg6fluL3lvIEgPCBzb3Vib3ViZW5cIDsKK+Wkqum8k+iFuSA8IHRhaWtvYmFyYVwgOwor5LiN6KiA5LiN6KqeIDwgZnVnZW5mdWdvXCA7CivliY3oo4XnoLIgPCB6ZW5zb3Vob3VcIDsKK+WIhumBo+maiiA8IGJ1bmtlbnRhaVwgOwor5ZC55aWP6ICFIDwgc3Vpc291c2hhXCA7Civnq5zpqqggPCByeXV1a290c3VcIDsKK+WlveinkuWutiA8IGtvdWtha3VrYVwgOwor57WQ5LqGIDwga2V0c3VyeW91XCA7CivmgqrlpKnlgJkgPCBha3V0ZW5rb3VcIDsKK+aOqOmAsuapnyA8IHN1aXNoaW5raVwgOwor5omY6YmiIDwgdGFrdWhhdHN1XCA7CivpiaTljYHlrZcgPCBrYWdpanV1amlcIDsKK+S5seawl+a1gSA8IHJhbmtpcnl1dVwgOwor5Ya35YeN5YmkIDwgcmVpdG91emFpXCA7CivliJ3lr77pnaIgPCBzaG90YWltZW5cIDsKK+mWj+W5tCA8IHVydXVkb3NoaVwgOwor56uNIDwgZGVrYXJpdHRvXCA7CivmnKrlj47ovIkgPCBtaXNodXVzYWlcIDsKK+WXnOWlveWTgSA8IHNoaWtvdWhpblwgOwor5oKq5aSp5L2/IDwgYWt1dGVuc2hpXCA7CivlvLfljJbnsbMgPCBreW91a2FtYWlcIDsKK+awtOmbt+iJhyA8IHN1aXJhaXRlaVwgOwor6Kaz5qWT5LyaIDwga2FucHV1a2FpXCA7CivkvZPpqJPoq4cgPCB0YWlrZW5kYW5cIDsKK+eEoeaEn+immiA8IG11a2Fua2FrdVwgOwor576k6YCf5bqmIDwgZ3Vuc29rdWRvXCA7Civpm7vnt4/noJQgPCBkZW5zb3VrZW5cIDsKK+S4jeeiuuWumiA8IGZ1a2FrdXRlaVwgOwor55m955m+5ZCIIDwgc2hpcmF5dXJpXCA7CivoiJ7ouIrliocgPCBidXlvdWdla2lcIDsKK+eBq+WPo+S4mCA8IGtha291a3l1dVwgOwor5LiN5q2j56K6IDwgZnVzZWlrYWt1XCA7Civnr4DntIQgPCBzZXRzdXlha3VcIDsKK+mZveWtkOe3miA8IHlvdXNoaXNlblwgOwor5LiL6YOo5qmf6ZaiIDwga2FidWtpa2FuXCA7CivlgIvkurroqqTlt64gPCBrb2ppbmdvc2FcIDsKK+aZgumWk+e1piA8IGppa2Fua3l1dVwgOwor5YiG5rC055WMIDwgYnVuc3Vpa2FpXCA7CivkubHlj43lsIQgPCByYW5oYW5zaGFcIDsKK+ino+etlOashCA8IGthaXRvdXJhblwgOwor6a2a6Zu36ImHIDwgZ3lvcmFpdGVpXCA7CivlhazmnInlnLAgPCBrb3V5dXVjaGlcIDsKK+asuueenueahCA8IGdpbWFudGVraVwgOwor5piO556t5bqmIDwgbWVpcnlvdWRvXCA7CivkvJroqIjkv4IgPCBrYWlrZWlrZWlcIDsKK+ifh+ibmSA8IGhpa2lnYWVydVwgOwor6Ly45YWl56iOIDwgeXVueXV1emVpXCA7CivonIDpu40gPCBtb3Jva29zaGlcIDsKK+S4jeW/g+W+lyA8IGZ1a29rb3JvZVwgOwor5LqM5qWt5ZywIDwgbmlneW91Y2hpXCA7CivljZjlrZDoq5YgPCB0YW5zaGlyb25cIDsKK+iovOaLoOmHkSA8IHNob3Vrb2tpblwgOwor55Sf5ryU5aWPIDwgbmFtYWVuc291XCA7Civlvq7liIblraYgPCBiaWJ1bmdha3VcIDsKK+WwguW+k+iAhSA8IHNlbmp1dXNoYVwgOwor5LuZ5Y+w5L6vIDwgc2VuZGFpa291XCA7CivooYDnnLwgPCBjaGltYW5ha29cIDsKK+euuOeusSA8IGhhc2hpYmFrb1wgOwor6KSH5byPIDwgZnVrdXNoaWtpXCA7CivlhYTlvJ/mhJsgPCBreW91ZGFpYWlcIDsKK+S4h+iPr+mPoSA8IG1hbmdla3lvdVwgOwor6KW/5YG0IDwgbmlzaGlnYXdhXCA7CivmkI3lpLEgPCBzb25zaGl0c3VcIDsKK+S6uumWk+WDjyA8IG5pbmdlbnpvdVwgOwor5Zue5biw55qEIDwga2Fpa2l0ZWtpXCA7CivluILmsJHnqI4gPCBzaGltaW56ZWlcIDsKK+WvjOWjq+mhjSA8IGZ1amliaXRhaVwgOwor6ZeW5YWlIDwgY2hpbicnbnl1dVwgOwor6JyC6bOlIDwgaGFjaGlkb3JpXCA7CivplovnpajmiYAgPCBrYWloeW91am9cIDsKK+S9k+iCsumkqCA8IHRhaWlrdWthblwgOwor54K65L2TIDwgdGVpdGFyYWt1XCA7CivlpInoqr/ms6IgPCBoZW5jaG91aGFcIDsKK+WQjOebn+i7jSA8IGRvdW1laWd1blwgOwor5ZGK6Ki05Lq6IDwga29rdXNvbmluXCA7Civlrablo6vpmaIgPCBnYWt1c2hpaW5cIDsKK+WAq+eQhueahCA8IHJpbnJpdGVraVwgOwor54K56by76JasIDwgdGVuYml5YWt1XCA7CivmipXmm7jmrIQgPCB0b3VzaG9yYW5cIDsKK+iotOion+azlSA8IHNvc2hvdWhvdVwgOwor5rq26LOqIDwgeW91c2hpdHN1XCA7Civlm5vljYrliIYgPCBzaGloYW5idW5cIDsKK+WQuOmfs+adkCA8IGt5dXVvbnphaVwgOwor5Yid5L2T6aiTIDwgc2hvdGFpa2VuXCA7CivovLjlhaXnm6QgPCB5dW55dXViYW5cIDsKK+S4jeefpeeBqyA8IHNoaXJhbnVoaVwgOwor5Y2157Sw6IOeIDwgcmFuc2FpYm91XCA7CivngbDlnJ8gPCBoYWl0c3VjaGlcIDsKK+S6jOalteWMliA8IG5pa3lva3VrYVwgOwor5Y2X5Lqs6YygIDwgbmFua2luam91XCA7Civps6nmmYLoqIggPCBoYXRvZG9rZWlcIDsKK+WTuuS5s+eTtiA8IGhvbnl1dWJpblwgOwor6KW/5rSL6aKoIDwgc2VpeW91ZnV1XCA7Civml6Loo73mnI0gPCBraXNlaWZ1a3VcIDsKK+iHqueUseaEj+W/lyA8IGppeXV1aXNoaVwgOwor6YeO5aSW5YqHIDwgeWFnYWlnZWtpXCA7Civmma7pgY3nmoQgPCBmdWhlbnRla2lcIDsKK+S6i+alreWboyA8IGppZ3lvdWRhblwgOwor5bCP5b255Lq6IDwga295YWt1bmluXCA7Civps6XlqpLoirEgPCBjaG91YmFpa2FcIDsKK+iHquayu+mgmCA8IGppY2hpcnlvdVwgOwor6KOP5omJIDwgdXJhdG9iaXJhXCA7CivnoLTlo4rnmoQgPCBoYWthaXRla2lcIDsKK+aQrOWHuiA8IGhhbnNodXRzdVwgOwor56qu5o6q5aSnIDwga3l1dXNvZGFpXCA7CivpgZTno6joiLkgPCBkYXJ1bWFzZW5cIDsKK+WGheWcqOaApyA8IG5haXphaXNlaVwgOwor5bCP6I2354mpIDwga29uaW1vdHN1XCA7Civml6Xns7vkurogPCBuaWtrZWlqaW5cIDsKK+eyvuelnuenkSA8IHNlaXNoaW5rYVwgOwor5LiA5ZCI55uuIDwgaWNoaWdvdW1lXCA7CivkvY/lsYXot6EgPCBqdXVreW9hdG9cIDsKK+WGjeaKl+W8gSA8IHNhaWtvdWJlblwgOwor6L6y5L2c5qWtIDwgbm91c2FneW91XCA7CivonqLlhYnnh4ggPCBrZWlrb3V0b3VcIDsKK+S7mOW5tOihqCA8IGZ1bmVucHlvdVwgOwor5q2j6Kqk6KGoIDwgc2VpZ29oeW91XCA7Civoo4/mg4UgPCB1cmFuYXNha2VcIDsKK+Wbm+i8qui7iiA8IHlvbnJpbnNoYVwgOwor6J+H6IKhIDwga2FlcnVtYXRhXCA7CivkuInph43lpY8gPCBzYW5qdXVzb3VcIDsKK+S/neiovOabuCA8IGhvc2hvdXNob1wgOwor5ZCm5a6a55qEIDwgaGl0ZWl0ZWtpXCA7CivkuI3pgKPntpogPCBmdXJlbnpva3VcIDsKK+atpuaWreeahCA8IGJ1ZGFudGVraVwgOwor5Ye656mC5pyfIDwgc2h1c3N1aWtpXCA7CivkuIrljYrmnJ8gPCBrYW1paGFua2lcIDsKK+WNmOWtkOiRiSA8IHRhbnNoaXlvdVwgOwor5b6u5YiG5ZWGIDwgYmlidW5zaG91XCA7CivooYDnhZkgPCBjaGlrZW11cmlcIDsKK+e+qeWFhOW8nyA8IGdpa3lvdWRhaVwgOwor6KSH57Sg5pWwIDwgZnVrdXNvc3V1XCA7Civou6LmoKHnlJ8gPCB0ZW5rb3VzZWlcIDsKK+aYvOWknOW4ryA8IGNodXV5YW9iaVwgOwor5LqL5Lu26KGoIDwgamlrZW5oeW91XCA7CivlvLfnoazmtL4gPCBreW91a291aGFcIDsKK+aOkuawl+mHjyA8IGhhaWtpcnlvdVwgOwor5LqM5qyh6KiY5oa2IDwgbmlqaWtpb2t1XCA7CivlpbPmloflrZcgPCBvbicnbmFtb2ppXCA7CivnhKHmiYDlsZ4gPCBtdXNob3pva3VcIDsKK+WRqOazouaVsCA8IHNodXVoYXN1dVwgOwor54yb56a96aGeIDwgbW91a2lucnVpXCA7CivnlJ/mhYvns7sgPCBzZWl0YWlrZWlcIDsKK+a7keiQvSA8IGthdHN1cmFrdVwgOwor5oyB54mpIDwgbW9jaGltb25vXCA7CivmlaPmlofoqakgPCBzYW5idW5zaGlcIDsKK+agveWfueeoriA8IHNhaWJhaXNodVwgOwor5Y6f6JGX6ICFIDwgZ2VuY2hvc2hhXCA7Civpm7voqbHmlpkgPCBkZW53YXJ5b3VcIDsKK+aKgOiDveizniA8IGdpbm91c2hvdVwgOwor5paZ6YeR5omAIDwgcnlvdWtpbmpvXCA7CivmlK/phY3ogIUgPCBzaGloYWlzaGFcIDsKK+a0l+a/r+WxiyA8IHNlbnRha3V5YVwgOwor5YG06L+R6ICFIDwgc29ra2luc2hhXCA7CivploDlj6MgPCBrYWRvZ3VjaGlcIDsKK+Wun+ekvuS8miA8IGppc3NoYWthaVwgOwor5b6h6YCj57WhIDwgZ29yZW5yYWt1XCA7Civpppnlt53nnIwgPCBrYWdhd2FrZW5cIDsKK+eCuea7tOWZqCA8IHRlbnRla2lraVwgOwor5LqI5a6a6KGoIDwgeW90ZWloeW91XCA7CivlvIHorbfmlpkgPCBiZW5nb3J5b3VcIDsKK+S4u+imgemnhSA8IHNodXlvdWVraVwgOwor5Yy65Lya6K2w5ZOhIDwga3VrYWlnaWluXCA7CivmjJ/mrrogPCBreW91c2F0c3VcIDsKK+WvvuW/nOetliA8IHRhaW91c2FrdVwgOwor6Ly45YWl5rivIDwgeXVueXV1a291XCA7CivlkIzlv5fkvJogPCBkb3VzaGlrYWlcIDsKK+i/juaSg+apnyA8IGdlaWdla2lraVwgOwor5Lq65Zyw5ZCNIDwgamluY2hpbWVpXCA7Civkv53pmbrmlpkgPCBob2tlbnJ5b3VcIDsKK+Wkp+WSjOiKiyA8IHlhbWF0b2ltb1wgOwor6auY5YSq5YWIIDwga291eXV1c2VuXCA7CivmlL7pgIHms5UgPCBob3Vzb3Vob3VcIDsKK+ekuuWKm+WbsyA8IGppcnlva3V6dVwgOwor5Y+k5LqL6KiY5LydIDwga29qaWtpZGVuXCA7Civpm6rlpbPpg44gPCB5dWtpam9yb3VcIDsKK+ihqOabuCA8IG9tb3RlZ2FraVwgOwor6Zu257Sw6L6yIDwgcmVpc2Fpbm91XCA7Civns4rku6MgPCBub3Jpc2hpcm9cIDsKK+ecn+a4heawtCA8IG1hc2hpbWl6dVwgOwor5Yqp5aSq5YiAIDwgc3VrZWRhY2hpXCA7CivlhYvlt7Hlv4MgPCBrb2traXNoaW5cIDsKK+ioreioiOiAhSA8IHNla2tlaXNoYVwgOwor54Sh56We6KuWIDwgbXVzaGlucm9uXCA7CivnhKHngrrnhKHnrZYgPCBtdWltdXNha3VcIDsKK+acieiii+mhniA8IHl1dXRhaXJ1aVwgOwor5LiA5q666YKjIDwgaXNzZXRzdW5hXCA7Civlv4PnkIbmiKYgPCBzaGlucmlzZW5cIDsKK+W+oeattOattCA8IG9yZWtpcmVraVwgOwor5LiN5bmz562JIDwgZnVieW91ZG91XCA7CivliKnlsL/liaQgPCByaW55b3V6YWlcIDsKK+eptOmamSA8IGtldHN1Z2VraVwgOwor54mn5q2M55qEIDwgYm9ra2F0ZWtpXCA7CivmvLjov5Hnt5ogPCB6ZW5raW5zZW5cIDsKK+WtkOWuieiynSA8IGtveWFzdWthaVwgOwor5peF5pel6KiYIDwgdGFiaW5pa2tpXCA7Civlo7LkuIrph5EgPCB1cmlhZ2VraW5cIDsKK+WPl+e1puiAhSA8IGp1a3l1dXNoYVwgOwor5piO5bm05bqmIDwgbXlvdW5lbmRvXCA7CivkuozmnproiIwgPCBuaW1haWppdGFcIDsKK+S4iemHjeWGoCA8IHNhbmp1dWthblwgOwor6KqY6Zu75a2QIDwgeXV1ZGVuc2hpXCA7CivpjK/pm5EgPCBzYWt1emF0c3VcIDsKK+Wcp+WvhiA8IGF0c3VtaXRzdVwgOwor6Zai5L+C6KmeIDwga2Fua2Vpc2hpXCA7CivntKHpjJjlvaIgPCBib3VzdWlrZWlcIDsKK+WlieW5o+S9vyA8IGhvdWhlaXNoaVwgOwor5biC5rCR5rOVIDwgc2hpbWluaG91XCA7CivmnIDmlaznpLwgPCBzYWlrZWlyZWlcIDsKK+aktCA8IHRvZG9tYXRzdVwgOwor6Ium5a2m55SfIDwga3VnYWt1c2VpXCA7CivlsI/nlJ/mhI/msJcgPCBrb25hbWFpa2lcIDsKK+W+l+aEj+WFiCA8IHRva3Vpc2FraVwgOwor6Zuo5LuV5bqmIDwgYW1haml0YWt1XCA7Civlkajms6LluK8gPCBzaHV1aGF0YWlcIDsKK+a8rOeJqSA8IHRzdWtlbW9ub1wgOwor566h5Yi25a6YIDwga2Fuc2Vpa2FuXCA7CivonJzosYYgPCBtaXRzdW1hbWVcIDsKK+a8guedgCA8IGh5b3VjaGFrdVwgOwor54eD5paZ6LK7IDwgbmVucnlvdWhpXCA7Civph4/oqJjlj7cgPCByeW91a2lnb3VcIDsKK+eZuuWFieS9kyA8IGhha2tvdXRhaVwgOwor5Y2K5YaG5b2iIDwgaGFuJydlbmtlaVwgOwor5rGa5p+T6Zmk5Y67IDwgb3Nlbmpva3lvXCA7Civmj5Dlh7ogPCB0ZWlzaHV0c3VcIDsKK+WGhuiZq+mhniA8IGVuY2h1dXJ1aVwgOwor5om26aSK576p5YuZIDwgZnV5b3VnaW11XCA7Civmh7jmg7PmlocgPCBrZXNvdWJ1bWlcIDsKK+aknOa9ruWZqCA8IGtlbmNob3VraVwgOwor5aeJ5aa557eoIDwgc2hpbWFpaGVuXCA7CivooYDns5blgKQgPCBrZXR0b3VjaGlcIDsKK+a3semdtCA8IGZ1a2FndXRzdVwgOwor54Sh6YeN6YePIDwgbXVqdXVyeW91XCA7Civpm7voqbHluLMgPCBkZW53YWNob3VcIDsKK+WNiOWJjeS4rSA8IGdvemVuY2h1dVwgOwor5Za25qWt5omAIDwgZWlneW91c2hvXCA7Civnr4DmrLIgPCBzZXRzdXlva3VcIDsKK+exs+W4guWgtCA8IGJlaWljaGliYVwgOwor5LiN5YuV5b+DIDwgZnVkb3VzaGluXCA7CivooovluK8gPCBmdWt1cm9vYmlcIDsKK+Wwj+WIpOW9oiA8IGtvYmFuZ2F0YVwgOwor54Wn5piO5ZmoIDwgc2hvdW1laWtpXCA7CivlvrnnlLLlvL4gPCB0ZWtrb3VkYW5cIDsKK+WuruWGheW6gSA8IGt1bmFpY2hvdVwgOwor5pOs5Y+k5Li7576pIDwgZ2lrb3NodWdpXCA7CivluILmsJHmqKkgPCBzaGltaW5rZW5cIDsKK+epgOmjnyA8IGtva3VzaG9rdVwgOwor5Y2K6Ii356CyIDwgaGFuZ2VuaG91XCA7CivmqKnlqIHnrYsgPCBrZW4nJ2lzdWppXCA7CivlpInpm7vmiYAgPCBoZW5kZW5zaG9cIDsKK+epjembqiA8IHNla2lzZXRzdVwgOwor6Zu76Kej5rayIDwgZGVua2FpZWtpXCA7Civpm7LkuIrkurogPCB1bmpvdWJpdG9cIDsKK+evgOamkSA8IGZ1c2hpa3VyZVwgOwor5LiA5ZGo5bm0IDwgaXNzaHV1bmVuXCA7CivooYDml48gPCBrZXRzdXpva3VcIDsKK+euoeWItuWhlCA8IGthbnNlaXRvdVwgOwor6I+v5Y6z57WMIDwga2Vnb25reW91XCA7Civlr77mg4XloLEgPCB0YWlqb3Vob3VcIDsKK+agvOWkieWMliA8IGtha3VoZW5rYVwgOwor5pWZ6IKy5a62IDwga3lvdWlrdWthXCA7Civlronmga/pppkgPCBhbnNva3Vrb3VcIDsKK+efs+m5uOawtCA8IHNla2tlbnN1aVwgOwor5LiN5YuJ5by3IDwgZnViZW5reW91XCA7CivloanljJbniakgPCBlbmthYnV0c3VcIDsKK+S5neWvuOS6lOWIhiA8IGt1c3VuZ29idVwgOwor5Lih55So5qmfIDwgcnlvdXlvdWtpXCA7CivlvZPkuJbpoqggPCB0b3VzZWlmdXVcIDsKK+etlueVpSA8IHNha3VyeWFrdVwgOwor5qC85aSp5LqVIDwgZ291dGVuam91XCA7CivkuK3ogJXmqZ8gPCBjaHV1a291a2lcIDsKK+S4jemBqeagvCA8IGZ1dGVra2FrdVwgOwor6YGg5b+D5YiGIDwgZW5zaGluYnVuXCA7CivpjbzooZMgPCBzaGluanV0c3VcIDsKK+aZrumAmuazlSA8IGZ1dHN1dWhvdVwgOwor5aqS5p+T5YmkIDwgYmFpc2VuemFpXCA7CivnoLToo4Lpn7MgPCBoYXJldHN1b25cIDsKK+S4u+ims+irliA8IHNodWthbnJvblwgOwor5LqM55Wq5L2cIDwgbmliYW5zYWt1XCA7CivnlJ/lkb3nt5ogPCBzZWltZWlzZW5cIDsKK+epuuWvvuepuiA8IGt1dXRhaWt1dVwgOwor54yb5ZC56ZuqIDwgbW91ZnVidWtpXCA7Civmi5PmrpYgPCB0YWt1c2hva3VcIDsKK+mrmOWwhOegsiA8IGtvdXNoYWhvdVwgOwor5LiA5q2p6YqAIDwgaWNoaWJ1Z2luXCA7CivlpYjoia/mvKwgPCBuYXJhZHp1a2VcIDsKK+W9ouixoeWMliA8IGtlaXNob3VrYVwgOwor5YaF5Zyw5Lq6IDwgbmFpY2hpamluXCA7Civnn7PljZfoirEgPCBzaGFrdW5hZ2VcIDsKK+WCgOWEoeW4qyA8IGthaXJhaXNoaVwgOwor5LiA5q2p6YeRIDwgaWNoaWJ1a2luXCA7CivlpbPpg47onJjom5sgPCBqb3JvdWd1bW9cIDsKK+eXqeaIkeaFoiA8IHlhc2VnYW1hblwgOwor6JuZ6LezIDwga2FlcnV0b2JpXCA7Civmgqrlm6DnuIEgPCBha3VpbicnbmVuXCA7CivkuI3nnKDnl4cgPCBmdW1pbnNob3VcIDsKK+mbu+ino+anvSA8IGRlbmthaXNvdVwgOwor5rOV6I+v5a6XIDwgaG9ra2VzaHV1XCA7CivkuIDnnqzplpMgPCBpc3NodW5rYW5cIDsKK+ato+S4ieS9jSA8IHNob3VzYW5taVwgOwor5by+6YGT5by+IDwgZGFuZG91ZGFuXCA7Civmt7flkIjmnpcgPCBrb25nb3VyaW5cIDsKK+awtOWiqOeUuyA8IHN1aWJva3VnYVwgOwor5Lqk5piT5LyaIDwga291ZWtpa2FpXCA7Civpq5jmpYrlrZAgPCB0YWtheW91amlcIDsKK+aoqeWogeeahCA8IGtlbicnaXRla2lcIDsKK+ekvueUqOi7iiA8IHNoYXlvdXNoYVwgOwor5YiG5rC05ba6IDwgYnVuc3VpcmVpXCA7CivlrZDkvpvnlKggPCBrb2RvbW95b3VcIDsKK+imquWtneihjCA8IG95YWtvdWtvdVwgOwor55m65bCE562SIDwgaGFzc2hhdG91XCA7Civmi77kuIflhoYgPCBqdXVtYW4nJ2VuXCA7Civli6TnmoflrrYgPCBraW4nJ25vdWthXCA7CivkubPljJbliaQgPCBueXV1a2F6YWlcIDsKK+i/keWcsOeCuSA8IGtpbmNoaXRlblwgOwor5Zyn5YqbIDwgYXRzdXJ5b2t1XCA7CivnhKHnq7bkuokgPCBtdWt5b3Vzb3VcIDsKK+S6pOmam+azlSA8IGtvdXNhaWhvdVwgOwor5Y+C5LiO6ICFIDwgc2FuJyd5b3NoYVwgOwor56u5566SIDwgdGFrZWJvdWtpXCA7Civpo7LmlpnmsLQgPCBpbnJ5b3VzdWlcIDsKK+m8u+mdoiA8IGhhbmFkenVyYVwgOwor56eL5pel5ZKMIDwgYWtpYml5b3JpXCA7CivljLrlvbnmiYAgPCBrdXlha3VzaG9cIDsKK+eri+W/l+S8nSA8IHJpc3NoaWRlblwgOwor5aSp56ek5qOSIDwgdGVuYmluYm91XCA7CivlpInoqr/lmaggPCBoZW5jaG91a2lcIDsKK+mWouS/guiAhSA8IGthbmtlaXNoYVwgOwor5LiN6ZqP5oSP562LIDwgZnV6dWlpa2luXCA7CivlpKfmiJDlip8gPCBkYWlzZWlrb3VcIDsKK+S6jOS6uuensCA8IG5pbmluc2hvdVwgOwor5YG25YOP6KaWIDwgZ3V1em91c2hpXCA7CivlgbbouYTpoZ4gPCBndXV0ZWlydWlcIDsKK+adpeioquiAhSA8IHJhaWhvdXNoYVwgOwor6aiS5Lmx572qIDwgc291cmFuemFpXCA7CivlrozmiJDlk4EgPCBrYW5zZWloaW5cIDsKK+enu+ihjOacn+mWkyA8IGlrb3VraWthblwgOwor6KKW5Y+jIDwgc29kZWd1Y2hpXCA7CivlibXpgKDmgKcgPCBzb3V6b3VzZWlcIDsKK+aNu+WHuiA8IG5lbnNodXRzdVwgOwor5Y+I6KuL6LKgIDwgbWF0YXVrZW9pXCA7Civph5HplqPlr7ogPCBraW5rYWt1amlcIDsKK+iqmOmbu+S9kyA8IHl1dWRlbnRhaVwgOwor5Y2X5Lqs57GzIDwgbmFua2lubWFpXCA7CivnhKHnpZ7ntYwgPCBtdXNoaW5rZWlcIDsKK+mKgOS6pOaPmyA8IGdpbmtvdWthblwgOwor5bWZIDwgeWFtYXNoaW5hXCA7Civoo73loanmpa0gPCBzZWllbmd5b3VcIDsKK+aVmeS8muWToSA8IGt5b3VrYWlpblwgOwor5ZWT6J+EIDwga2VpY2hpdHN1XCA7CivmkK3kuZfliLggPCB0b3Vqb3VrZW5cIDsKK+mBjuehq+mFuCA8IGthcnl1dXNhblwgOwor6YGL5ZG955qEIDwgdW5tZWl0ZWtpXCA7CivoprPmoZzkvJogPCBrYW4nJ291a2FpXCA7Civmtpnpm6ggPCBuYW1pZGFhbWVcIDsKK+eEoeekvOiAhSA8IGJ1cmVpbW9ub1wgOwor5qeL5paH5rOVIDwga291YnVucG91XCA7Civnr6Tlrp8gPCB0b2t1aml0c3VcIDsKK+mOluezuCA8IGt1c2FyaWl0b1wgOwor56a/6beyIDwgaGFnZXdhc2hpXCA7CivooYDlsL8gPCBrZXRzdW55b3VcIDsKK+aOpei/keaIpiA8IHNla2tpbnNlblwgOwor54Sh5rOV6ICFIDwgbXVob3Vtb25vXCA7Civmh7LnvbAgPCBjaG91YmF0c3VcIDsKK+S4jemBqeW9kyA8IGZ1dGVraXRvdVwgOwor54Sh5rC06Y2LIDwgbXVzdWluYWJlXCA7CivmnIjntabml6UgPCBnZWtreXV1YmlcIDsKK+WbveWKmyA8IGtva3VyeW9rdVwgOwor5pal5YCZ6ZqKIDwgc2Vra291dGFpXCA7CivlibXmpa3osrsgPCBzb3VneW91aGlcIDsKK+WbveWIpSA8IGt1bmliZXRzdVwgOwor6YeN6KaB5oCnIDwganV1eW91c2VpXCA7Civnt4/lo7LkuIogPCBzb3V1cmlhZ2VcIDsKK+WNgeWGhueOiSA8IGp1dWVuZGFtYVwgOwor5oq95paXIDwgaGlraWRhc2hpXCA7CivlgKvnkIblraYgPCByaW5yaWdha3VcIDsKK+S4gOmAsemWkyA8IGlzc2h1dWthblwgOwor56S+5YaF5aCxIDwgc2hhbmFpaG91XCA7CivkvY/lroXosrsgPCBqdXV0YWt1aGlcIDsKK+WxiOWcsOaApyA8IGt1dGNoaXNlaVwgOwor5LuY5Yqg5L6h5YCkIDwgZnVrYWthY2hpXCA7Civnr4nlsbEgPCB0c3VraXlhbWFcIDsKK+WbveacieWMliA8IGtva3V5dXVrYVwgOwor6YCa6aKo5qmfIDwgdHN1dWZ1dWtpXCA7CivlrrblsYvmlbcgPCBpZXlhc2hpa2lcIDsKK+WxseakkumtmiA8IHNhbnNob3V1b1wgOwor5YWs5paH5pu4IDwga291YnVuc2hvXCA7Civmsbrlrproq5YgPCBrZXR0ZWlyb25cIDsKK+S/neiovOS6uiA8IGhvc2hvdW5pblwgOwor5rK/5rW35beeIDwgZW5rYWlzaHV1XCA7CivkuI3pgZPlvrMgPCBmdWRvdXRva3VcIDsKK+S+v+S5l+iAhSA8IGJpbmpvdXNoYVwgOwor5LiA5Y2H55O2IDwgaXNzaG91YmluXCA7CivnqbrohbnmmYIgPCBrdXVmdWt1amlcIDsKK+WJjeihm+aIpiA8IHplbicnZWlzZW5cIDsKK+iiluS7mCA8IHNvZGV0c3VrZVwgOwor5oSf5oOF6KuWIDwga2Fuam91cm9uXCA7CivmlK/phY3mqKkgPCBzaGloYWlrZW5cIDsKK+Wbo+WtkOm8uyA8IGRhbmdvYmFuYVwgOwor5YWo6KuW54K5IDwgemVucm9udGVuXCA7CivmibzmrrogPCB5YWt1c2F0c3VcIDsKK+mBk+WMluiAhSA8IGRvdWtlbW9ub1wgOwor6KW/5rSL57SZIDwgc2VpeW91c2hpXCA7Civmm7joqJjplbcgPCBzaG9raWNob3VcIDsKK+Wcn+WjjOaxmuafkyA8IGRvam91b3NlblwgOwor6KGA5aGXIDwgY2hpbWlkb3JvXCA7Civlv4zoqIDokYkgPCBpbWlrb3RvYmFcIDsKK+mbo+S6i+alrSA8IG5hbmppZ3lvdVwgOwor5LuY5biv55qEIDwgZnV0YWl0ZWtpXCA7Civpq5jpo5vou4ogPCB0YWthYmlzaGFcIDsKK+mbu+ipseS4rSA8IGRlbndhY2h1dVwgOwor6buE6YGT5bivIDwga291ZG91dGFpXCA7Civpq5jmoKHnlJ8gPCBrb3Vrb3VzZWlcIDsKK+m6uem7tCA8IGtvdWppa2FiaVwgOwor5raZ6YeRIDwgbmFtaWRha2luXCA7CivogrrmsLTohasgPCBoYWlzdWlzaHVcIDsKK+WVhueUqOiqniA8IHNob3V5b3Vnb1wgOwor55Wl6KiY5rOVIDwgcnlha2tpaG91XCA7CivooYDlnKcgPCBrZXRzdWF0c3VcIDsKK+a9ruWigyA8IHNoaW96YWthaVwgOwor6JGh6JCE5qOaIDwgYnVkb3VkYW5hXCA7CivlpYnlhazkurogPCBob3Vrb3VuaW5cIDsKK+eon+izqiA8IGhpbnNoaXRzdVwgOwor5rm/55SwIDwgc2hpdHN1ZGVuXCA7Civku4/ms5Xlg6cgPCBidXBwb3Vzb3VcIDsKK+m7kumrqiA8IGtva3VoYXRzdVwgOwor5L2T6IKy56WtIDwgdGFpaWt1c2FpXCA7Civmma7pgJrlvL4gPCBmdXRzdXVkYW5cIDsKK+aIpuS4rea0viA8IHNlbmNodXVoYVwgOwor6auY5bGx5bivIDwga291emFudGFpXCA7CivmgKfniq/nvaogPCBzZWloYW56YWlcIDsKK+awkeiKuOWTgSA8IG1pbmdlaWhpblwgOwor6Kaq5Lya56S+IDwgb3lhZ2Fpc2hhXCA7CivmiZPmtoggPCB1Y2hpa2VzaGlcIDsKK+WPguizgOW4syA8IHNhbmdhY2hvdVwgOwor5LiJ6Lyq6LuKIDwgc2Fucmluc2hhXCA7CivnlKPnp5HlraYgPCBzYW5rYWdha3VcIDsKK+i7iuWGheeBryA8IHNoYW5haXRvdVwgOwor5Yy75YuZ5a6kIDwgaW11c2hpdHN1XCA7CivmsLjntprmgKcgPCBlaXpva3VzZWlcIDsKK+ihqOWBtCA8IG9tb3RlZ2F3YVwgOwor5o6i5qSc6ZqKIDwgdGFua2VudGFpXCA7Civlrp/li5nlrrYgPCBqaXRzdW11a2FcIDsKK+W/hemgiOagvCA8IGhpc3N1a2FrdVwgOwor5aSn5ZKM5q2MIDwgeWFtYXRvdXRhXCA7CivkuLjlpKrmnZAgPCBtYXJ1dGF6YWlcIDsKK+eglOS/ruaJgCA8IGtlbnNodXVqb1wgOwor5YWs5piO5YWaIDwga291bWVpdG91XCA7CivntbXnqbroqIAgPCBlc29yYWdvdG9cIDsKK+e+hemHneebpCA8IHJhc2hpbmJhblwgOwor5LiK6Zmi6K2w5ZOhIDwgam91aW5naWluXCA7Civlmajph4/kurogPCBraXJ5b3VqaW5cIDsKK+Wbvemam+iqniA8IGtva3VzYWlnb1wgOwor5Zub6L665b2iIDwgc2hpaGVua2VpXCA7CivnmbrkvZznmoQgPCBob3NzYXRla2lcIDsKK+iBvuWtpuagoSA8IHJvdWdha2tvdVwgOwor6ZCY5pKeIDwga2FuZXRzdWtpXCA7CivmjoPmtbfoiYcgPCBzb3VrYWl0ZWlcIDsKK+WPguiAg+abuCA8IHNhbmtvdXNob1wgOwor5YyW57Kn5ZOBIDwga2VzaG91aGluXCA7CivlnLDlubPpnaIgPCBjaGloZWltZW5cIDsKK+ihjOWIlyA8IGd5b3VyZXRzdVwgOwor5L2O6IO96ICFIDwgdGVpbm91c2hhXCA7CivlhYjpqJPoq5YgPCBzZW5rZW5yb25cIDsKK+mbhuiLseekviA8IHNodXVlaXNoYVwgOwor55So5rC05rGgIDwgeW91c3VpY2hpXCA7Civlj5fpm6PliocgPCBqdW5hbmdla2lcIDsKK+WAieW6q+alrSA8IHNvdWtvZ3lvdVwgOwor5Y2D5YWt5pysIDwgc2Vucm9wcG9uXCA7CivovLjlhaXlk4EgPCB5dW55dXVoaW5cIDsKK+WMlueyp+WPsCA8IGtlc2hvdWRhaVwgOwor5aGp5Yqg5ribIDwgc2hpb2thZ2VuXCA7CivlqJjlrZDou40gPCBqb3VzaGlndW5cIDsKK+iHquayu+ecgSA8IGppY2hpc2hvdVwgOwor5bC+6ZW354y/IDwgb25hZ2F6YXJ1XCA7CivorabpmLLlm6MgPCBrZWlib3VkYW5cIDsKK+ato+ino+iAhSA8IHNlaWthaXNoYVwgOwor6ZmQ5bqm6aGNIDwgZ2VuZG9nYWt1XCA7Civlho3mtJfnpLwgPCBzYWlzZW5yZWlcIDsKK+WnieWmueagoSA8IHNoaW1haWtvdVwgOwor5qC86ZeY5oqAIDwga2FrdXRvdWdpXCA7CivpnZLmmKXmnJ8gPCBzZWlzaHVua2lcIDsKK+mAn+iomOmMsiA8IHNva2tpcm9rdVwgOwor5YSq5Yud6aasIDwgeXV1c2hvdWJhXCA7Civlh6kgPCBrb2dhcmFzaGlcIDsKK+awl+WAmeWtpiA8IGtpa291Z2FrdVwgOwor55eF6Zmi6Ii5IDwgYnlvdWluc2VuXCA7Civlm73mlofnp5EgPCBrb2t1YnVua2FcIDsKK+aLheW9k+iAhSA8IHRhbnRvdXNoYVwgOwor5p2l5aC06ICFIDwgcmFpam91c2hhXCA7CivmiY3mp4wgPCBzYWlkenVjaGlcIDsKK+aOkuawtOa6nSA8IGhhaXN1aWtvdVwgOwor5bO75LiL5YmkIDwgc2h1bmdlemFpXCA7CivlpJbllYbpg6ggPCBnYWlzaG91YnVcIDsKK+a5v+a9pCA8IHNoaXRzdWp1blwgOwor6by76KGdIDwgaGFuYXRzdWtpXCA7CivmraPmlrnlvaIgPCBzZWlob3VrZWlcIDsKK+a4i+e0mSA8IHNoaWJ1Z2FtaVwgOwor5pyI57WM5bivIDwgZ2Vra2VpdGFpXCA7Civop5LooYznga8gPCBrYWt1YW5kb25cIDsKK+iqsuW+tOmHkSA8IGthY2hvdWtpblwgOwor5Lqk5o+b6Ii5IDwga291a2Fuc2VuXCA7Civkv53nrqHoqLwgPCBob2thbnNob3VcIDsKK+a3u+WKoOeJqSA8IHRlbmthbW9ub1wgOwor6byg6KybIDwgbmV6dW1pa291XCA7CivmnaXoprPogIUgPCByYWlrYW5zaGFcIDsKK+W+oeWutumokuWLlSA8IG9pZXNvdWRvdVwgOwor6Y+h5p2/IDwga2FnYW1paXRhXCA7CivntrrnvoXmmJ8gPCBraXJhYm9zaGlcIDsKK+WxseWys+mDqCA8IHNhbmdha3VidVwgOwor55m65bGV5oCnIDwgaGF0dGVuc2VpXCA7CivnqbrnqbQgPCBrYXJha2V0c3VcIDsKK+WNlOWumuahiCA8IGt5b3V0ZWlhblwgOwor6bqm6aOvIDwgbXVnaW1lc2hpXCA7Civpi7zoibIgPCBoYWdhbmVpcm9cIDsKK+azqOWwhOWZqCA8IGNodXVzaGFraVwgOwor5omV5pqBIDwgZnV0c3VneW91XCA7Civlj7jms5XmqKkgPCBzaGlob3VrZW5cIDsKK+iZq+ieuyA8IG11c2hpa2VyYVwgOwor5q2j5pS75rOVIDwgc2Vpa291aG91XCA7CivmiYvmi43lrZAgPCB0ZWJ5b3VzaGlcIDsKK+ekvuS8mumdoiA8IHNoYWthaW1lblwgOwor6LGh55qu55eFIDwgem91aGlieW91XCA7CivnpoHlj43oqIAgPCBraW5oYW5nZW5cIDsKK+eEoeWPjOeqkyA8IG11c291bWFkb1wgOwor5pmC6ZaT5YmyIDwgamlrYW53YXJpXCA7CivnlKjlv4Pmo5IgPCB5b3VqaW5ib3VcIDsKK+WGjeaEn+afkyA8IHNhaWthbnNlblwgOwor5q+b6KO95ZOBIDwgbW91c2VpaGluXCA7CivkuozluqbkuInluqYgPCBuaWRvc2FuZG9cIDsKK+mrmOellumgreW3viA8IGtvc296dWtpblwgOwor5qC857SN5bqrIDwga2FrdW5vdWtvXCA7Civnt4/ntKLlvJUgPCBzb3VzYWt1aW5cIDsKK+S6iOWvqeW7tyA8IHlvc2hpbnRlaVwgOwor6Iy25bGL6YWSIDwgY2hheWF6YWtlXCA7Civlm5vliIblhoYgPCBzaGlidW4nJ2VuXCA7CivkvZfkvY/lsYUgPCB3YWJpenVtYWlcIDsKK+eJh+aJi+ahtiA8IGthdGF0ZW9rZVwgOwor5Ym15YiK5Y+3IDwgc291a2FuZ291XCA7Civlm5vliIblha0gPCBzaGlidXJva3VcIDsKK+erpeatjCA8IHdhcmFiZXV0YVwgOwor6Ziy5r2c57ayIDwgYm91c2VubW91XCA7CivmiZPmk7IgPCBjaG91Y2hha3VcIDsKK+WQjeWIuuWIpCA8IG1laXNoaWJhblwgOwor5rKz56ul5be7IDwga2FwcGFtYWtpXCA7Civli7LkuIDnrYkgPCBrdW4nJ2l0dG91XCA7Civlj43nianlsYsgPCB0YW5tb25veWFcIDsKK+S6iOWCmemDqOWTgSA8IHlvYmlidWhpblwgOwor5LqS6K2y55qEIDwgZ29qb3V0ZWtpXCA7CivkuJbnlYznmoQgPCBzZWthaXRla2lcIDsKK+W+oei/t+aDkSA8IGdvbWVpd2FrdVwgOwor5LiJ6YOo5L2cIDwgc2FuYnVzYWt1XCA7CivmtLvph48gPCBrYXRzdXJ5b3VcIDsKK+ato+mdouWbsyA8IHNob3VtZW56dVwgOwor6KGo5YW35birIDwgaHlvdWd1c2hpXCA7CivkuI3pganku7sgPCBmdXRla2luaW5cIDsKK+e1jOS8geW6gSA8IGtlaWtpY2hvdVwgOwor6YGL5YuV6aCYIDwgdW5kb3VyeW91XCA7CivlhYjoiKzmnaUgPCBzZW5wYW5yYWlcIDsKK+WumuWGoOipniA8IHRlaWthbnNoaVwgOwor6Ieq5bex5om55YikIDwgamlrb2hpaGFuXCA7CivmjqXlsL7ovp4gPCBzZXRzdWJpamlcIDsKK+awtOeEoeaciCA8IG1pbmFkenVraVwgOwor6aeQ5Zyo5ZOhIDwgY2h1dXphaWluXCA7CivlmbTlh7ogPCBmdW5zaHV0c3VcIDsKK+a4i+eariA8IHNoaWJ1a2F3YVwgOwor6Ly45bC/566hIDwgeXVueW91a2FuXCA7Civol4HpnbQgPCB3YXJhZ3V0c3VcIDsKK+WbvemYsuiyuyA8IGtva3Vib3VoaVwgOwor5L6N5b6T6ZW3IDwgamlqdXVjaG91XCA7CivpjpbmqIsgPCBrdXNhcml0b2lcIDsKK+a0u+i7uCA8IGthdHN1amlrdVwgOwor5q666aKo5pmvIDwgc2FwcHV1a2VpXCA7CivkuK3mlK/pgqMgPCBuYWthc2hpbmFcIDsKK+iqpOaMv+WFpSA8IGdvc291bnl1dVwgOwor5q2j5pWZ5o6IIDwgc2Vpa3lvdWp1XCA7CivkvJHngavlsbEgPCBreXV1a2F6YW5cIDsKK+WtkOWuiOatjCA8IGtvbW9yaXV0YVwgOwor5rG65a6a56i/IDwga2V0dGVpa291XCA7CivpmLLngavlo4EgPCBib3VrYWhla2lcIDsKK+a5v+advyA8IHNoaXRzdWJhblwgOwor5rWu6KKLIDwgdWtpYnVrdXJvXCA7Civlj7Dmub7kurogPCB0YWl3YW5qaW5cIDsKK+a0u+i6jSA8IGthdHN1eWFrdVwgOwor5pel56ug5peXIDwgbmlzc2hvdWtpXCA7Civpg6jpmorplbcgPCBidXRhaWNob3VcIDsKK+W+oeecn+W9sSA8IGdvc2hpbicnZWlcIDsKK+iZq+iFuSA8IG11c2hpYmFyYVwgOwor5Yed5Zu654K5IDwgZ3lvdWtvdGVuXCA7CivmlK/lupfntrIgPCBzaGl0ZW5tb3VcIDsKK+aVsOihqOekuiA8IHN1dWh5b3VqaVwgOwor6aKo5ZCR6KiIIDwgZnV1a291a2VpXCA7Civom43lhYnmnb8gPCBrZWlrb3ViYW5cIDsKK+aWsOiBnuiIlyA8IHNoaW5idW5ob1wgOwor6KW/5Y2X6KW/IDwgc2VpbmFuc2VpXCA7Civpgb/pm7fph50gPCBoaXJhaXNoaW5cIDsKK+eNheWtkOiIniA8IHNoaXNoaW1haVwgOwor5Lu75pyf5LitIDwgbmlua2ljaHV1XCA7CivmlrnpnaLpmoogPCBob3VtZW50YWlcIDsKK+miqOmItOiNiSA8IGZ1dXJpbnNvdVwgOwor5puy54us5qW9IDwga3lva3Vnb21hXCA7CivnnJ/lkJHms5UgPCBtYWtrb3Vob3VcIDsKK+WVhuiIueaXlyA8IHNob3VzZW5raVwgOwor6byg6ImyIDwgbmV6dW1paXJvXCA7Civms6XpnbQgPCBkb3JvZ3V0c3VcIDsKK+eglOS/ruWToSA8IGtlbnNodXVpblwgOwor6KmV5Yik6KiYIDwgaHlvdWJhbmtpXCA7Civmma7pgJrkvr8gPCBmdXRzdXViaW5cIDsKK+WJr+efpeS6iyA8IGZ1a3VjaGlqaVwgOwor5q+N6ZuG5ZujIDwgYm9zaHV1ZGFuXCA7CivkuInlhqDnjosgPCBzYW5rYW4nJ291XCA7CivmgYvmhJvoprMgPCByZW4nJ2Fpa2FuXCA7CivnrYbloqggPCBoaXRzdWJva3VcIDsKK+mHnemwuyA8IGhhcml1bmFnaVwgOwor6by757axIDwgaGFuYWR6dW5hXCA7CivlnLDlvbnmqKkgPCBjaGlla2lrZW5cIDsKK+ethuWhmiA8IGZ1ZGVkenVrYVwgOwor5pmu6YCa5Lq6IDwgZnV0c3V1amluXCA7Civmu53lo7ogPCB0YWtpdHN1Ym9cIDsKK+WGjeWNlOitsCA8IHNhaWt5b3VraVwgOwor5Luj6LWt6ImyIDwgdGFpc2hhaXJvXCA7CivmjqXlsL7oqp4gPCBzZXRzdWJpZ29cIDsKK+WKh+S9nOWutiA8IGdla2lzYWtrYVwgOwor6YeN5oim6LuKIDwganV1c2Vuc2hhXCA7Civpn7Pmpb3pmoogPCBvbmdha3V0YWlcIDsKK+WRiumBlCA8IGtva3V0YXRzdVwgOwor5YaN56aB5q2iIDwgc2Fpa2luc2hpXCA7Civnh7vokrjliaQgPCBrdW5qb3V6YWlcIDsKK+a0i+ijgeW4qyA8IHlvdXNhaXNoaVwgOwor55yf5q2j6Z2iIDwgbWFzaG91bWVuXCA7CivmvI/lh7ogPCByb3VzaHV0c3VcIDsKK+ethuWcpyA8IGhpdHN1YXRzdVwgOwor5pyI57WM5YmNIDwgZ2Vra2VpbWFlXCA7Civnqq7mpbUgPCBreXV1a3lva3VcIDsKK+S9juWxseW4ryA8IHRlaXphbnRhaVwgOwor5Yqx5oyv5ZmoIDwgcmVpc2hpbmtpXCA7Civph5Hpr7EgPCBraW5zaGFjaGlcIDsKK+iLsembhOeahCA8IGVpeXV1dGVraVwgOwor6KiY6ICF5bitIDwga2lzaGFzZWtpXCA7CivlgaXlurfogIUgPCBrZW5rb3VzaGFcIDsKK+iCpea6gOeXhyA8IGhpbWFuc2hvdVwgOwor5pyA5aSn5YCkIDwgc2FpZGFpY2hpXCA7CivoqIjnlLvmoYggPCBrZWlrYWt1YW5cIDsKK+iPr+WOs+WulyA8IGtlZ29uc2h1dVwgOwor5Li76KaB54K5IDwgc2h1eW91dGVuXCA7Civlj6Ppq60gPCBrdWNoaWhpZ2VcIDsKK+iZq+exoCA8IG11c2hpa2Fnb1wgOwor5rWB6KGAIDwgcnl1dWtldHN1XCA7CivmhpHniakgPCB0c3VraW1vbm9cIDsKK+epjeeOhyA8IHNla2lyaXRzdVwgOwor5Lya5ZOh6Ki8IDwga2FpaW5zaG91XCA7Civnsr7oloTlhZAgPCBzZWloYWt1amlcIDsKK+aMv+WFpeWbsyA8IHNvdW55dXV6dVwgOwor6Yec6aOvIDwga2FtYW1lc2hpXCA7CivkuIHlubTogIUgPCB0ZWluZW5zaGFcIDsKK+a3seeIqiA8IGZ1a2FkenVtZVwgOwor56u55bibIDwgY2hpa3VoYWt1XCA7Civnm6Pmn7vlvbkgPCBrYW5zYXlha3VcIDsKK+iWhOWMlueypyA8IHVzdWdlc2hvdVwgOwor5Ye65Yuk57C/IDwgc2h1a2tpbmJvXCA7CivkuK3lpK7nt5ogPCBjaHV1b3VzZW5cIDsKK+WxpeattOabuCA8IHJpcmVraXNob1wgOwor5rOh6YqtIDwgYWJ1a3V6ZW5pXCA7CivppIrll6PlrZAgPCB5b3VzaGlzaGlcIDsKK+aCquizqiA8IGFrdXNoaXRzdVwgOwor5aSn5rW35Y6fIDwgb291bmFiYXJhXCA7CivkvY7kvqHmoLwgPCB0ZWlrYWtha3VcIDsKK+S6pOmam+S4iiA8IGtvdXNhaWpvdVwgOwor6bq76KKLIDwgYXNhYnVrdXJvXCA7Civlj4LogIPlk4EgPCBzYW5rb3VoaW5cIDsKK+elnue1jOenkSA8IHNoaW5rZWlrYVwgOwor5bCP5L2c6L6yIDwga29zYWt1bm91XCA7Civoh6rnlLvoh6ros5sgPCBqaWdhamlzYW5cIDsKK+engeaWh+abuCA8IHNoaWJ1bnNob1wgOwor5rG65a6a54mIIDwga2V0dGVpYmFuXCA7Civlv4PkuI3lhaggPCBzaGluZnV6ZW5cIDsKK+S5s+W5vOWFkCA8IG55dXV5b3VqaVwgOwor6KaP5YmH5pu4IDwga2lzb2t1c2hvXCA7Civmu53lj6MgPCB0YWtpZ3VjaGlcIDsKK+WKoOmZpOW8jyA8IGtham9zaGlraVwgOwor6byg566XIDwgbmV6dW1pemFuXCA7Civmub/lvI8gPCBzaGlzc2hpa2lcIDsKK+WPuOazleWumCA8IHNoaWhvdWthblwgOwor56mA54mpIDwga29rdW1vdHN1XCA7Civnqbrlr77lnLAgPCBrdXV0YWljaGlcIDsKK+ato+imluecvCA8IHNlaXNoaWdhblwgOwor5pep5oW25oimIDwgc291a2Vpc2VuXCA7Civms6XpgZMgPCBkb3JvbWljaGlcIDsKK+WPpOmdtCA8IGZ1cnVndXRzdVwgOwor5o6Y5YmK5qmfIDwga3Vzc2FrdWtpXCA7CivmnKrnorrlrpogPCBtaWtha3V0ZWlcIDsKK+mrmOaetuapiyA8IGtvdWtha3lvdVwgOwor5rKI6ayxIDwgY2hpbicndXRzdVwgOwor5YCL5Yil5YyWIDwga29iZXRzdWthXCA7CivlkJvpgZQgPCBraW1pdGFjaGlcIDsKK+aMv+WFpeWPpSA8IHNvdW55dXVrdVwgOwor6bey6by7IDwgd2FzaGliYW5hXCA7CivmipjkvI8gPCBzaGFrdWJ1a3VcIDsKK+m8oOeptCA8IG5lenVtaWFuYVwgOwor5ruR5Y+wIDwgc3ViZXJpZGFpXCA7CivmlL/mqKnlhZogPCBzZWlrZW50b3VcIDsKK+WwhOWIqeW/gyA8IHNoYXJpc2hpblwgOwor56uc5be7IDwgdGF0c3VtYWtpXCA7Civph6PpkJggPCB0c3VyaWdhbmVcIDsKK+ebo+Wvn+WMuyA8IGthbnNhdHN1aVwgOwor6YGT5YyW5pa5IDwgZG91a2VnYXRhXCA7CivljYrkuozph40gPCBoYW4nJ25panV1XCA7CivnpoHmsrvnlKMgPCBraW5jaGlzYW5cIDsKK+mmluS9jeaJk+iAhSA8IHNodWlkYXNoYVwgOwor5Y2Y6Kqe6ZuGIDwgdGFuZ29zaHV1XCA7CivnlKjmsLTlnLAgPCB5b3VzdWlpa2VcIDsKK+i7iumrmOefrSA8IHNoYWtvdXRhblwgOwor6L+R5rW36a2aIDwga2lua2FpZ3lvXCA7CivmnKjph5HlnJ8gPCBtb2t1a2luZG9cIDsKK+aMgee2muaApyA8IGppem9rdXNlaVwgOwor5ZCN5bel5aSnIDwgbWVpa291ZGFpXCA7CivmlK/phY3kurogPCBzaGloYWluaW5cIDsKK+W5ueS6i+mVtyA8IGthbmppY2hvdVwgOwor6ZW35rC06LevIDwgY2hvdXN1aXJvXCA7CivlubPlhZrlk6EgPCBoaXJhdG91aW5cIDsKK+W+queSsOe3miA8IGp1bmthbnNlblwgOwor5LiL5YmL5LiKIDwgZ2Vrb2t1am91XCA7CivmuoDlrqQgPCBtYW5zaGl0c3VcIDsKK+S4iuWxpOmiqCA8IGpvdXNvdWZ1dVwgOwor5Zyn5bu26Yu8IDwgYXRzdWVua291XCA7Civlm6Dmnpzlv5zloLEgPCBpbmdhb3Vob3VcIDsKK+a6luaVmeWToSA8IGp1bmt5b3VpblwgOwor6bem6bevIDwgbWlzb3NhemFpXCA7Civlh7nnnLzpj6EgPCBvdWdhbmt5b3VcIDsKK+eJqeS+oemrmCA8IGJ1a2thZGFrYVwgOwor6KqY5ouQ572qIDwgeXV1a2FpemFpXCA7Civnq6/lpbMgPCBoYXNoaXRhbWVcIDsKK+W+queSsOezuyA8IGp1bmthbmtlaVwgOwor6Yej6YedIDwgdHN1cmliYXJpXCA7CivmtL7nlJ/nmoQgPCBoYXNlaXRla2lcIDsKK+e0oOWPjeW/nCA8IHNvaGFuJydub3VcIDsKK+WcqOmDt+iAhSA8IHphaWdvdXNoYVwgOwor6YeR6Y6WIDwga2luZ3VzYXJpXCA7CivljJfmtbfpgZMgPCBob2trYWlkb3VcIDsKK+S4i+Wls+S4i+eUtyA8IGdlam9nZW5hblwgOwor5p6X5qqO55eFIDwgcmluZ29ieW91XCA7Civol6TolJMgPCBmdWppZHp1cnVcIDsKK+iWrOS6i+azlSA8IHlha3VqaWhvdVwgOwor55+t5q+b56iuIDwgdGFubW91c2h1XCA7CivmpoLlv7Xoq5YgPCBnYWluZW5yb25cIDsKK+mJm+iJsiA8IG5hbWFyaWlyb1wgOwor6YGT5b6z5a62IDwgZG91dG9rdWthXCA7Civlj4LkuI7lrpggPCBzYW4nJ3lva2FuXCA7CivmuIvmn78gPCBzaGlidWdha2lcIDsKK+acgOe1guahiCA8IHNhaXNodXVhblwgOwor5LiW55WM5pawIDwgc2VrYWlzaGluXCA7Civlj4LogIPkurogPCBzYW5rb3VuaW5cIDsKK+Wxi+WPsOmqqCA8IHlhdGFpYm9uZVwgOwor5aSn5q2T6L+OIDwgZGFpa2FuZ2VpXCA7CivkuIrlsaTpmo4gPCBqb3Vzb3VrYWlcIDsKK+S4gOWIh+e1jCA8IGlzc2Fpa3lvdVwgOwor5Y+k6YmEIDwgZnVydXRldHN1XCA7Civlho3phY3nva4gPCBzYWloYWljaGlcIDsKK+iCjOilpuiioiA8IGhhZGFqdWJhblwgOwor5YWt6KeS5b2iIDwgcm9ra2Fra2VpXCA7CivmlrDnlJ/lhZAgPCBzaGluc2VpamlcIDsKK+mItOiZqyA8IHN1enVtdXNoaVwgOwor6Yac5qWt5ammIDwgc2h1Z3lvdWZ1XCA7CivlkIzos6ogPCBkb3VzaGl0c3VcIDsKK+ijgeWIpOaoqSA8IHNhaWJhbmtlblwgOwor5aSn56We5a6uIDwgZGFpamluZ3V1XCA7CivmraPmlZnlk6EgPCBzZWlreW91aW5cIDsKK+WPo+mHkSA8IGt1Y2hpZ2FuZVwgOwor56qB5pKDIDwgdG90c3VnZWtpXCA7CivmgqrmiK/nnYAgPCBpdGF6dXJhZ2lcIDsKK+aYvOihjOeBryA8IGhpcnVhbmRvblwgOwor5Zyw5bmz57eaIDwgY2hpaGVpc2VuXCA7Civlronmpb3mpIXlrZAgPCBhbnJha3Vpc3VcIDsKK+mFjembu+e3miA8IGhhaWRlbnNlblwgOwor55m96aCt57+BIDwgaGFrdXRvdW91XCA7CivnmbrlsITlj7AgPCBoYXNzaGFkYWlcIDsKK+m7kue4gSA8IGt1cm9idWNoaVwgOwor5Li76Zmj5ZywIDwgc2h1amluY2hpXCA7CivmhJ/mg7PmlocgPCBrYW5zb3VidW5cIDsKK+a2iOWMluezuyA8IHNob3VrYWtlaVwgOwor6Y6u5ZynIDwgY2hpbicnYXRzdVwgOwor5Li76Kaz5oCnIDwgc2h1a2Fuc2VpXCA7CivlpKfms5Xlu7cgPCBkYWlob3V0ZWlcIDsKK+acgOe1guaXpSA8IHNhaXNodXViaVwgOwor5rG65a6a5qipIDwga2V0dGVpa2VuXCA7CivllqrlpLEgPCBzb3VzaGl0c3VcIDsKK+WFjuWwj+WxiyA8IHVzYWdpZ295YVwgOwor5aSa56We6KuWIDwgdGFzaGlucm9uXCA7Civlp5Tlk6Hku5joqJcgPCBpaW5mdXRha3VcIDsKK+W+jOWNiueUnyA8IGtvdWhhbnNlaVwgOwor56iu5rK5IDwgdGFuZWFidXJhXCA7CivlopfoqILniYggPCB6b3V0ZWliYW5cIDsKK+aJgOWcqOWcsCA8IHNob3phaWNoaVwgOwor54G95a6z5ZywIDwgc2FpZ2FpY2hpXCA7CivmtojljJbnrqEgPCBzaG91a2FrYW5cIDsKK+W5tOS7o+mghiA8IG5lbmRhaWp1blwgOwor56We57WM54KOIDwgc2hpbmtlaWVuXCA7CivlpYnku5XogIUgPCBob3VzaGlzaGFcIDsKK+WUkOargyA8IGthcmFiaXRzdVwgOwor5YaN5Y+X5rW4IDwgc2FpanVzaGluXCA7Civlj6Pou70gPCBrdWNoaWdhcnVcIDsKK+eqruWxiCA8IGt5dXVrdXRzdVwgOwor5LqI5YKZ6YGL5YuVIDwgeW9iaXVuZG91XCA7CivkuozkurrliY0gPCBmdXRhcmltYWVcIDsKK+WvjOWjq+WjuiA8IGZ1aml0c3Vib1wgOwor6YG655Sj566h55CGIDwgaXNhbmthbnJpXCA7Civnmb7osqjlupcgPCBoeWFra2F0ZW5cIDsKK+aoquaWreW5lSA8IG91ZGFubWFrdVwgOwor5LqM5Lq65YiGIDwgZnV0YXJpYnVuXCA7CivntI3nqI7ogIUgPCBub3V6ZWlzaGFcIDsKK+mFuOaAp+e0mSA8IHNhbnNlaXNoaVwgOwor5bem5Y+z6Lu4IDwgc2F5dXVqaWt1XCA7CivlpKnmsLTmobYgPCB0ZW5zdWlva2VcIDsKK+m7kueruSA8IGt1cm9jaGlrdVwgOwor5Y+L6YGUIDwgdG9tb2RhY2hpXCA7Civlk4HniakgPCBzaGluYW1vbm9cIDsKK+iytOmHkeWxniA8IGtpa2luem9rdVwgOwor5rOi576F6JycIDwgaGFyYW1pdHN1XCA7Civni6nnjJ/mnJ8gPCBzaHVyeW91a2lcIDsKK+aWh+azleabuCA8IGJ1bnBvdXNob1wgOwor56u55YWJIDwgdGFrZW1pdHN1XCA7Civol4Hoi54gPCB3YXJhZHp1dG9cIDsKK+WNoOmgmOS4iyA8IHNlbnJ5b3VrYVwgOwor54eD54S854KJIDwgbmVuc2hvdXJvXCA7Civlj6TnrYblrrYgPCBrb2hpdHN1a2FcIDsKK+mYsuihm+W6gSA8IGJvdWVpY2hvdVwgOwor5aSn56Wt5Y+4IDwgZGFpc2Fpc2hpXCA7CivllJDmnb4gPCBrYXJhbWF0c3VcIDsKK+mbm+e9jOeynyA8IGhpbmFnZXNoaVwgOwor5YWo5aSp5YCZIDwgemVudGVua291XCA7CivotoXnn63ms6IgPCBjaG91dGFucGFcIDsKK+aUvuWwhOiDvSA8IGhvdXNoYW5vdVwgOwor5YmN56eR6ICFIDwgemVua2Ftb25vXCA7Civplbfph47nnIwgPCBuYWdhbm9rZW5cIDsKK+efpeaBteeGsSA8IGNoaWVuZXRzdVwgOwor5YyF6KOF57SZIDwgaG91c291c2hpXCA7CivkuonorbDooYzngrogPCBzb3VnaWtvdWlcIDsKK+exs+eUo+WcsCA8IGJlaXNhbmNoaVwgOwor5YWr6KeS5b2iIDwgaGFra2Fra2VpXCA7CivkupTlpKfmtLIgPCBnb2RhaXNodXVcIDsKK+aWsOWtpuacnyA8IHNoaW5nYWtraVwgOwor6bq75amG6LGG6IWQIDwgbcSBYm9kb3VmdVwgOwor6YWN6Zu755ukIDwgaGFpZGVuYmFuXCA7Civoi7HmloflraYgPCBlaWJ1bmdha3VcIDsKK+iaiuafsSA8IGthYmFzaGlyYVwgOwor5b6h5YWE5byfIDwgZ29reW91ZGFpXCA7Civoo4HliKTmiYAgPCBzYWliYW5zaG9cIDsKK+WPgumZoumBuCA8IHNhbicnaW5zZW5cIDsKK+erueS4siA8IHRha2VndXNoaVwgOwor6LuN5Lq66aKoIDwgZ3VuamluZnV1XCA7CivnhKHlvpfngrkgPCBtdXRva3V0ZW5cIDsKK+irlueQhueahCA8IHJvbnJpdGVraVwgOwor6buS55m9IDwga29rdWJ5YWt1XCA7CivlioPmnJ/nmoQgPCBrYWtraXRla2lcIDsKK+elnue9sCA8IHNoaW5iYXRzdVwgOwor5rK56J2JIDwgYWJ1cmF6ZW1pXCA7CivkuInnnIHloIIgPCBzYW5zZWlkb3VcIDsKK+WPluiqrCA8IHRvcmlzZXRzdVwgOwor6Jma5byx5YWQIDwga3lvamFrdWppXCA7CivmlofljJbmmKDnlLsgPCBidW5rYWVpZ2FcIDsKK+W9k+S6i+WbvSA8IHRvdWppa29rdVwgOwor6KuW5LqJ6ICFIDwgcm9uc291c2hhXCA7CivmlL7lsITnt5ogPCBob3VzaGFzZW5cIDsKK+ibuOWjvCA8IHRha290c3Vib1wgOwor5bSH5oud6ICFIDwgc3V1aGFpc2hhXCA7CivlgaXlurfms5UgPCBrZW5rb3Vob3VcIDsKK+aAquaWh+abuCA8IGthaWJ1bnNob1wgOwor6YCu5o2V5q20IDwgdGFpaG9yZWtpXCA7CivnrYbpoK3ogIUgPCBoaXR0b3VzaGFcIDsKK+a5p+WHuiA8IHlvdXNodXRzdVwgOwor56m65a6kIDwga3V1c2hpdHN1XCA7Civkub7nlJ/lp5wgPCBrYW5zaG91Z2FcIDsKK+eUn+aui+iAhSA8IHNlaXphbnNoYVwgOwor5reh5rC06a2aIDwgdGFuc3VpZ3lvXCA7CivotIjnrZTlk4EgPCB6b3V0b3VoaW5cIDsKK+S6pOaPm+aJiyA8IGtvdWthbnNodVwgOwor6JuN5YWJ5L2TIDwga2Vpa291dGFpXCA7CivmsLfngrnkuIsgPCBoeW91dGVua2FcIDsKK+iqmOaLkOeKryA8IHl1dWthaWhhblwgOwor54WO546J5a2QIDwgaXJpdGFtYWdvXCA7CivoiIjkv6HmiYAgPCBrb3VzaGluam9cIDsKK+eUmOWRs+aWmSA8IGthbm1pcnlvdVwgOwor6Kmm6aiT57SZIDwgc2hpa2Vuc2hpXCA7CivogonopabooqIgPCBuaWt1anViYW5cIDsKK+ebo+WuiOS6uiA8IGthbnNodW5pblwgOwor5aKX5aSn5Y+3IDwgem91ZGFpZ291XCA7Civmu5HotbDovKogPCBrYXNzb3VyaW5cIDsKK+WGjeWJtemAoCA8IHNhaXNvdXpvdVwgOwor5oi457GN5rOVIDwga29zZWtpaG91XCA7CivpjJjlvaIgPCB0c3VtdWdhdGFcIDsKK+iNkueJqeWxiyA8IGFyYW1vbm95YVwgOwor5Lit6KW/6YOoIDwgY2h1dXNlaWJ1XCA7Civoh6rli5XnmoQgPCBqaWRvdXRla2lcIDsKK+WAn+WutuS6uiA8IHNoYWtrYW5pblwgOwor5rOV5a2m6YOoIDwgaG91Z2FrdWJ1XCA7Civou43os4fph5EgPCBndW5zaGlraW5cIDsKK+aWh+azleaApyA8IGJ1bnBvdXNlaVwgOwor6L6y5aSr55eHIDwgbm91ZnVzaG91XCA7CivmnZDmlpnosrsgPCB6YWlyeW91aGlcIDsKK+WCrOa2memKgyA8IHNhaXJ1aWp1dVwgOwor5aSJ5o+b5a2QIDwgaGVua2Fuc2hpXCA7CivmnZDmnKjlsYsgPCB6YWltb2t1eWFcIDsKK+iyp+eqruWMliA8IGhpbmt5dXVrYVwgOwor5pep5ZCI54K5IDwgaGF5YWdhdGVuXCA7Civou4rppqzos4MgPCBzaGFiYWNoaW5cIDsKK+ernOmojuWFtSA8IHJ5dXVraWhlaVwgOwor5Zyf5Y+w55+zIDwgZG9kYWlpc2hpXCA7CivoqabpqJPnrqEgPCBzaGlrZW5rYW5cIDsKK+Wkp+WPjeWvviA8IGRhaWhhbnRhaVwgOwor6Z2e5Zu95rCRIDwgaGlrb2t1bWluXCA7CivlsI/osYbpsZIgPCBhenVraW1hc3VcIDsKK+iOouixjOixhiA8IHNheWFlbmRvdVwgOwor5Lih5pu/5qmfIDwgcnlvdWdhZWtpXCA7Civntr/ngavolqwgPCBtZW5rYXlha3VcIDsKK+S6uuawkei7jSA8IGppbm1pbmd1blwgOwor5qyg5Yuk6ICFIDwga2Vra2luc2hhXCA7CivlsI/kvZznsbMgPCBrb3Nha3VtYWlcIDsKK+azpeadv+WyqSA8IGRlaWJhbmdhblwgOwor5pOs6Z2p57SZIDwgZ2lrYWt1c2hpXCA7CivosrTph43lk4EgPCBraWNob3VoaW5cIDsKK+eBq+WxseekqyA8IGthemFucmVraVwgOwor6aGU5YaZ55yfIDwga2FvamFzaGluXCA7CivlhbHmvJTogIUgPCBreW91ZW5zaGFcIDsKK+aVkeitt+ePrSA8IGt5dXVnb2hhblwgOwor6YeR6JSTIDwga2FuZWR6dXJ1XCA7Civlho3lvqrnkrAgPCBzYWlqdW5rYW5cIDsKK+aEj+WRs+WGheWuuSA8IGltaW5haXlvdVwgOwor6I275rGf56+AIDwgb2dpZWJ1c2hpXCA7Civpm4blhYnlmaggPCBzaHV1a291a2lcIDsKK+S4gOmDqOWIhiA8IGljaGlidWJ1blwgOwor6Yej6Ii5IDwgdHN1cmlidW5lXCA7Civoo4XnlLLou4ogPCBzb3Vrb3VzaGFcIDsKK+aWsOS4lue0gCA8IHNoaW5zZWlraVwgOwor5LqI5YKZ5Yik5LqLIDwgeW9iaWhhbmppXCA7CivpiaLniakgPCBoYWNoaW1vbm9cIDsKK+a1mua4qyA8IHNodW5zZXRzdVwgOwor5reR5b6zIDwgc2h1a3V0b2t1XCA7CivnpZ3npo8gPCBzaHVrdWZ1a3VcIDsKK+ijgeWIpOWumCA8IHNhaWJhbmthblwgOwor5Ye65Yuk5pelIDwgc2h1a2tpbmJpXCA7CivpgIHkv6HmqZ8gPCBzb3VzaGlua2lcIDsKK+ayoeiQvSA8IGJvdHN1cmFrdVwgOwor56qT5Y+jIDwgbWFkb2d1Y2hpXCA7Civpm5HlsYXlnLAgPCB6YWtreW9jaGlcIDsKK+iLseaVsOWbvSA8IGVpc3V1a29rdVwgOwor5L+d566h5paZIDwgaG9rYW5yeW91XCA7CivmrablrrbmmYLku6MgPCBidWtlamlkYWlcIDsKK+WNiuiytOefsyA8IGhhbmtpc2VraVwgOwor6LuN55So5qmfIDwgZ3VuJyd5b3VraVwgOwor5ZOB5p+EIDwgc2hpbmFnYXJhXCA7CivljLvnmYLpgY7oqqQgPCBpcnlvdWthZ29cIDsKK+iZjuiQveesmyA8IG1vZ2FyaWJ1ZVwgOwor55Sf6YKE6ICFIDwgc2Vpa2Fuc2hhXCA7Civmh4foq4fkvJogPCBrb25kYW5rYWlcIDsKK+acquWFrOihqCA8IG1pa291aHlvdVwgOwor6KW/5rSL5Lq6IDwgc2VpeW91amluXCA7CivnlLDoiI7ogIUgPCBpbmFrYW1vbm9cIDsKK+WQuOedgCA8IGt5dXVjaGFrdVwgOwor5raI5YyW5rayIDwgc2hvdWthZWtpXCA7CivmrablrrbmlL/msrsgPCBidWtlc2VpamlcIDsKK+Wls+eOi+mZm+S4iyA8IGpvb3VoZWlrYVwgOwor56m05bGF5Lq6IDwga2Vra3lvamluXCA7Civlpqjmpa3lk6EgPCBib3VneW91aW5cIDsKK+miqOWRguaVtyA8IGZ1cm9zaGlraVwgOwor5Y+j6ISHIDwga3VjaGl3YWtpXCA7CivkvZXmm5zml6UgPCBuYW4nJ3lvdWJpXCA7CivorabmiJLnt5ogPCBrZWlrYWlzZW5cIDsKK+eiuuiqrCA8IGtha3VzZXRzdVwgOwor5Lqk5o+b5ayiIDwga291a2Fuam91XCA7CivlpKfpgZPoirggPCBkYWlkb3VnZWlcIDsKK+WBnOatoue3miA8IHRlaXNoaXNlblwgOwor6JaE57eRIDwgdXN1bWlkb3JpXCA7Civlk4HmlbAgPCBzaGluYWthenVcIDsKK+WLieW8t+WutiA8IGJlbmt5b3VrYVwgOwor5rWq5ryr55qEIDwgcm9tYW50ZWtpXCA7Civli6fkuJbnuJIgPCBrYW56ZXlvcmlcIDsKK+eruee0sOW3pSA8IHRha2V6YWlrdVwgOwor55Sj5Y215Y+jIDwgc2FucmFua291XCA7CivmhJ/li5XoqZ4gPCBrYW5kb3VzaGlcIDsKK+awtOWcp+apnyA8IHN1aWF0c3VraVwgOwor6Z+z5qW956WtIDwgb25nYWt1c2FpXCA7Civpub/nmq4gPCBzaGlrYWdhd2FcIDsKK+m7meauuiA8IG1va3VzYXRzdVwgOwor5Lq65oOF5pysIDwgbmluam91Ym9uXCA7CivnmofpnIrmrr8gPCBrb3VyZWlkZW5cIDsKK+aBkOe4riA8IGt5b3VzaHVrdVwgOwor5L2/5ZG96ICFIDwgc2hpbWVpc2hhXCA7CivnqoHlh7ogPCB0b3NzaHV0c3VcIDsKK+S7o+eUqOWTgSA8IGRhaXlvdWhpblwgOwor6JGJ6I+c6aGeIDwgeW91c2FpcnVpXCA7Civpg73poqggPCBtaXlha29mdXVcIDsKK+ayueeznyA8IGFidXJha2FzdVwgOwor5YaZ55yf5qmfIDwgc2hhc2hpbmtpXCA7CivmsLTos6ogPCBzdWlzaGl0c3VcIDsKK+eUt+S8iumBlCA8IG90b2tvZGF0ZVwgOwor5YW156uZ57eaIDwgaGVpdGFuc2VuXCA7CivluK/pm7vkvZMgPCB0YWlkZW50YWlcIDsKK+eqgeWFpSA8IHRvdHN1bnl1dVwgOwor5paH5YyW55qEIDwgYnVua2F0ZWtpXCA7CivmnKrnmbrooaggPCBtaWhhcHB5b3VcIDsKK+WFiOS9j+awkSA8IHNlbmp1dW1pblwgOwor6YCU5LiK5Zu9IDwgdG9qb3Vrb2t1XCA7CivlpKfmsJfmsZrmn5MgPCB0YWlraW9zZW5cIDsKK+WNiumfs+majiA8IGhhbicnb25rYWlcIDsKK+eZveacqOWxiyA8IHNoaXJva2l5YVwgOwor5LuV5qeY5pu4IDwgc2hpeW91c2hvXCA7CivmsJHkuovnmoQgPCBtaW5qaXRla2lcIDsKK+aIkOWxpOWcjyA8IHNlaXNvdWtlblwgOwor6JK45rCX5ZynIDwgam91a2lhdHN1XCA7CivkuKHmm7/miYAgPCByeW91Z2Flam9cIDsKK+eooOWvhiA8IGNob3VtaXRzdVwgOwor6buS5qirIDwga3Vyb2dhc2hpXCA7CivmtLvmrbQgPCBrYXRzdXJla2lcIDsKK+W+jOWNiuaIpiA8IGtvdWhhbnNlblwgOwor5Y+j57SFIDwga3VjaGliZW5pXCA7Civlj7Pnq68gPCBtaWdpaGFzaGlcIDsKK+W5veWvguWRsyA8IHl1dWpha3VtaVwgOwor5bid546L5a2mIDwgdGVpb3VnYWt1XCA7Civosq/msLTmsaAgPCBjaG9zdWljaGlcIDsKK+iWrOeTtiA8IGt1c3VyaWJpblwgOwor5ZOy5a2mIDwgdGV0c3VnYWt1XCA7CivmlrDkuJbnlYwgPCBzaGluc2VrYWlcIDsKK+WRveS7pOazlSA8IG1laXJlaWhvdVwgOwor5Z+656SO5bel5LqLIDwga2lzb2tvdWppXCA7Civnj77lg4/mtrIgPCBnZW56b3Vla2lcIDsKK+ims+imp+i7iiA8IGthbnJhbnNoYVwgOwor5Lya56S+6JGsIDwga2Fpc2hhc291XCA7CivpiYTmuIsgPCBrYW5hc2hpYnVcIDsKK+emgemFkuazlSA8IGtpbnNodWhvdVwgOwor6ISz6Iac54KOIDwgbm91bWFrdWVuXCA7Civlj47nuK4gPCBzaHV1c2h1a3VcIDsKK+WPsOenpCA8IGRhaWJha2FyaVwgOwor5paH6YOo55yBIDwgbW9uYnVzaG91XCA7Civou43kuovpgJogPCBndW5qaXRzdXVcIDsKK+iEs+iFq+eYjSA8IG5vdXNodXlvdVwgOwor5LiW55WM5LiAIDwgc2VrYWlpY2hpXCA7Civlv4Xoqq0gPCBoaXRzdWRva3VcIDsKK+WNmuitmCA8IGhha3VzaGlraVwgOwor5YaN5YiG6YWNIDwgc2FpYnVucGFpXCA7CivmjpvluIPlm6MgPCBrYWtlYnV0b25cIDsKK+Wklua0i+iIuSA8IGdhaXlvdXNlblwgOwor6buS5p2+IDwga3Vyb21hdHN1XCA7CivntYTogbflm7MgPCBzb3Nob2t1enVcIDsKK+eEoeeQhuW+gOeUnyA8IG11cmlvdWpvdVwgOwor5Lqk5o+b5ZOBIDwga291a2FuaGluXCA7Civngavpo5/ps6UgPCBoaWt1aWRvcmlcIDsKK+iyr+awtOanvSA8IGNob3N1aXNvdVwgOwor5rW35rC06a2aIDwga2Fpc3VpZ3lvXCA7Civnsr7pgLLml6UgPCBzaG91amluYmlcIDsKK+WNk+itmCA8IHRha3VzaGlraVwgOwor6Jas54mpIDwgeWFrdWJ1dHN1XCA7CivkuInoibLml5cgPCBzYW5zaG9ra2lcIDsKK+mAg+S6oeiAhSA8IHRvdWJvdXNoYVwgOwor6YGT5YW3566xIDwgZG91Z3ViYWtvXCA7Civlh7rlu7fml6UgPCBzaHV0dGVpYmlcIDsKK+eUu+Wtpue0mSA8IGdhZ2FrdXNoaVwgOwor5rC36J2VIDwgaHlvdXNob2t1XCA7Civosq/olLXmiYAgPCBjaG96b3VzaG9cIDsKK+adsea1t+mBkyA8IHRvdWthaWRvdVwgOwor5Lqk5o+b5Y+wIDwga291a2FuZGFpXCA7CivmiKbmmYLkuK0gPCBzZW5qaWNodXVcIDsKK+WNk+iqrCA8IHRha3VzZXRzdVwgOwor6buS5pifIDwga3Vyb2Jvc2hpXCA7Civmt7fliIbmlbAgPCBrb25idW5zdXVcIDsKK+eUn+efs+eBsCA8IHNlaXNla2thaVwgOwor5LiN5qSc5p2fIDwgZnVrZW5zb2t1XCA7CivlsI/mnb7oj5wgPCBrb21hdHN1bmFcIDsKK+i0iOWRiOiAhSA8IHpvdXRlaXNoYVwgOwor6aGe5qaC5b+1IDwgcnVpZ2FpbmVuXCA7Civku7vlpKnloIIgPCBuaW50ZW5kb3VcIDsKK+WNl+aWueeUoyA8IG5hbnBvdXNhblwgOwor57WQ57SN6YeRIDwgeXVpbm91a2luXCA7Civnp4DmipwgPCBzaHV1YmF0c3VcIDsKK+W/g+ihgCA8IHNoaW5rZXRzdVwgOwor5aSq5YiA562LIDwgdGFjaGlzdWppXCA7CivmsLTomasgPCBtaXp1bXVzaGlcIDsKK+iUk+iNiSA8IHRzdXJ1a3VzYVwgOwor5by36aOvIDwga293YW1lc2hpXCA7Civnhp/lrZfoqJMgPCBqdWt1amlrdW5cIDsKK+WjsOaYjuabuCA8IHNlaW1laXNob1wgOwor5ZWP6aGM54K5IDwgbW9uZGFpdGVuXCA7CivliIblt6XloLQgPCBidW5rb3Vqb3VcIDsKK+WumuW5tOWItiA8IHRlaW5lbnNlaVwgOwor5Zyw5YWD57SZIDwgamltb3Rvc2hpXCA7CivpoJDoqJfph5EgPCB5b3Rha3VraW5cIDsKK+mYsuepuuegsiA8IGJvdWt1dWhvdVwgOwor6Z2Z5Zyn5q+UIDwgc2VpYXRzdWhpXCA7CivokZvppIUgPCBrdXp1bW9jaGlcIDsKK+Wbnumhp+mMsiA8IGthaWtvcm9rdVwgOwor6baJ6LGGIDwgdXp1cmFtYW1lXCA7CivkuKHmm7/lsYsgPCByeW91Z2FleWFcIDsKK+S6uuawl+iAhSA8IG5pbmtpbW9ub1wgOwor5LiN6Imv5ZOBIDwgZnVyeW91aGluXCA7CivlsI/kvr/miYAgPCBzaG91YmVuam9cIDsKK+W+queSsOaApyA8IGp1bmthbnNlaVwgOwor5ZWG55So5YyWIDwgc2hvdXlvdWthXCA7CivkuqTmj5vlhoYgPCBrb3VrYW4nJ2VuXCA7CivoqabpqJPms5UgPCBzaGlrZW5ob3VcIDsKK+WtpuWckuelrSA8IGdha3VlbnNhaVwgOwor5L2V5pmC5pmC5YiGIDwgaXRzdWppYnVuXCA7Civph5Hnm6UgPCBrYW5hZGFyYWlcIDsKK+WPo+eZliA8IGt1Y2hpZ3VzZVwgOwor56ys5YWt5oSfIDwgZGFpcm9ra2FuXCA7CivosqfmsJHooZcgPCBoaW5taW5nYWlcIDsKK+WRveS7pOabuCA8IG1laXJlaXNob1wgOwor5Y2K5bCO5L2TIDwgaGFuZG91dGFpXCA7Civnn7PpoK0gPCBpc2hpYXRhbWFcIDsKK+mzpem7kCA8IHRvcmltb2NoaVwgOwor5raZ5aOwIDwgbmFtaWRhZ29lXCA7CivlhbXlmajlu6AgPCBoZWlraXNob3VcIDsKK+iQvemrqiA8IHJha3VoYXRzdVwgOwor6KOB5Yik5LiKIDwgc2FpYmFuam91XCA7Civlo7LmmKXlqaYgPCBiYWlzaHVucHVcIDsKK+WLhemhjSA8IGNob2t1Z2FrdVwgOwor6YWN6Zu75omAIDwgaGFpZGVuc2hvXCA7CivnpL7kuqTnlYwgPCBzaGFrb3VrYWlcIDsKK+WEquWLneaXlyA8IHl1dXNob3VraVwgOwor5omL5ZOB5birIDwgdGVqaW5hc2hpXCA7Civpq4Tohpzngo4gPCB6dWltYWt1ZW5cIDsKK+S/rumBk+mZoiA8IHNodXVkb3VpblwgOwor5Y216ImyIDwgdGFtYWdvaXJvXCA7Civmtbfom4fluqcgPCB1bWloZWJpemFcIDsKK+eosuWFiSA8IGluYWJpa2FyaVwgOwor5ZG95Luk5paHIDwgbWVpcmVpYnVuXCA7CivmnbHmtIvpoqggPCB0b3V5b3VmdXVcIDsKK+W8n+aBr+WtkCA8IG90b211c3Vrb1wgOwor5LqU5aSn5Zu9IDwgZ29kYWlrb2t1XCA7CivmjqXpqqjljLsgPCBzZWtrb3RzdWlcIDsKK+acm+mBoOmPoSA8IGJvdWVua3lvdVwgOwor5qKF6Zuo56m6IDwgdHN1eXV6b3JhXCA7Civlt6Xlk6Hlr64gPCBrb3VpbnJ5b3VcIDsKK+eEoemBiueXhSA8IG11eXV1YnlvdVwgOwor5q6/6YGUIDwgdG9ub3RhY2hpXCA7Civlm73pmpvljJYgPCBrb2t1c2Fpa2FcIDsKK+mpmueVsOeahCA8IGt5b3VpdGVraVwgOwor6JC96aO+IDwgcmFrdXNob2t1XCA7CivplqLmnbHlvIEgPCBrYW50b3ViZW5cIDsKK+ebuOS6kuS+neWtmCA8IHNvdWdvaXpvblwgOwor6KSH5ZCI6KqeIDwgZnVrdWdvdWdvXCA7CivlvJjmuIjkvJogPCBrb3VzYWlrYWlcIDsKK+iHs+i/keW8viA8IHNoaWtpbmRhblwgOwor5pys5bm05bqmIDwgaG9uJyduZW5kb1wgOwor5pWR6K235omAIDwga3l1dWdvc2hvXCA7CivmsojnnYAgPCBjaGluY2hha3VcIDsKK+WRkeawl+iAhSA8IG5vbmtpbW9ub1wgOwor5bCP5L2c5qipIDwga29zYWt1a2VuXCA7Civku6PnkIbmr40gPCBkYWlyaWhhaGFcIDsKK+WIhueVjOe3miA8IGJ1bmthaXNlblwgOwor56uv5aKD5pyfIDwgaGF6YWthaWtpXCA7Civoqp7mupDlraYgPCBnb2dlbmdha3VcIDsKK+W/g+mbu+WbsyA8IHNoaW5kZW56dVwgOwor5YGl5bq35ZywIDwga2Vua291Y2hpXCA7Civoqp7lvZnopo/liYcgPCBnb2lraXNva3VcIDsKK+awj+WtkOacrSA8IHVqaWtvZnVkYVwgOwor6Ku45ZWP6aGMIDwgc2hvbW9uZGFpXCA7Civlj6PllIfmnJ8gPCBrb3VzaGlua2lcIDsKK+Wwhuaji+ebpCA8IHNob3VnaWJhblwgOwor542F5a2Q5ZSQIDwgc2hpc2hpdG91XCA7CivlubPkv6HlvpIgPCBoZWlzaGludG9cIDsKK+elpeaciCA8IHNob3V0c3VraVwgOwor5aSn5rCX5ZynIDwgdGFpa2lhdHN1XCA7CivlsIbou43lrrYgPCBzaG91Z3Vua2VcIDsKK+WNg+S7o+e0mSA8IGNoaXlvZ2FtaVwgOwor5Li75oim6KuWIDwgc2h1c2Vucm9uXCA7CivliqPnrYnnlJ8gPCByZXR0b3VzZWlcIDsKK+aWsOWtl+S9kyA8IHNoaW5qaXRhaVwgOwor5Y+O546HIDwgc2h1dXJpdHN1XCA7CivntI3lk4Hmm7ggPCBub3VoaW5zaG9cIDsKK+eah+WkquWtkCA8IGtvdXRhaXNoaVwgOwor56K656uLIDwga2FrdXJpdHN1XCA7CivpqJLmk77nvaogPCBzb3Vqb3V6YWlcIDsKK+WNiuWumOWgsSA8IGhhbmthbnBvdVwgOwor5ZCM5Ly06ICFIDwgZG91aGFuc2hhXCA7CivmtbfpvKDmnb8gPCBuYW1ha29iYW5cIDsKK+WHhuWjq+WumCA8IGp1bnNoaWthblwgOwor5a6f6aiT6ICFIDwgamlra2Vuc2hhXCA7Civku6PnkIbmpa0gPCBkYWlyaWd5b3VcIDsKK+S4gOasoeWFgyA8IGljaGlqaWdlblwgOwor55So55uK5qipIDwgeW91ZWtpa2VuXCA7CivkuIrohZXnrYsgPCBqb3V3YW5raW5cIDsKK+WPguaUv+aoqSA8IHNhbnNlaWtlblwgOwor5beh56S86ICFIDwganVucmVpc2hhXCA7Civlrp/pqJPnvqQgPCBqaWtrZW5ndW5cIDsKK+epuuaZr+awlyA8IGthcmFnZWlraVwgOwor5Y2g6ICFIDwgdXJhbmFpc2hhXCA7CivlhpnnnJ/lrrYgPCBzaGFzaGlua2FcIDsKK+i7iuakheWtkCA8IGt1cnVtYWlzdVwgOwor5o+u5q+r5paZIDwga2lnb3VyeW91XCA7Civoh6rlt7HlvIHorbcgPCBqaWtvYmVuZ29cIDsKK+itpuWRiumfsyA8IGtlaWtva3VvblwgOwor5pWZ5o6I6ZmjIDwga3lvdWp1amluXCA7CivliJ3kuIPml6UgPCBzaG9uYW5va2FcIDsKK+WuieW/g+aEnyA8IGFuc2hpbmthblwgOwor5b+g56+AIDwgY2h1dXNldHN1XCA7CivpiaLlt7sgPCBoYWNoaW1ha2lcIDsKK+Wkp+WFpemBkyA8IG9vbnl1dWRvdVwgOwor56S+5Lya5oKqIDwgc2hha2FpYWt1XCA7CivlkoTlrrYgPCBoYW5hc2hpa2FcIDsKK+S4u+ijveWTgSA8IHNodXNlaWhpblwgOwor54Sh5rCX5YqbIDwgbXVraXJ5b2t1XCA7CivnpL7kvJrmgKcgPCBzaGFrYWlzZWlcIDsKK+iEseiEgue2vyA8IGRhc3NoaW1lblwgOwor5rCX6LGh5Y+wIDwga2lzaG91ZGFpXCA7Civlkb3ku6TlvaIgPCBtZWlyZWlrZWlcIDsKK+irlueQhuWtpiA8IHJvbnJpZ2FrdVwgOwor5a6f5L2T6KuWIDwgaml0dGFpcm9uXCA7CivlsI/kvJrmtL4gPCBzaG91a2FpaGFcIDsKK+WQjOWApOaApyA8IGRvdWNoaXNlaVwgOwor6YW45oCn5bKpIDwgc2Fuc2VpZ2FuXCA7Civnn43pkaAgPCBrYWt1c2hha3VcIDsKK+S4i+i2s+eVqiA8IGdlc29rdWJhblwgOwor5LqU5Y2B6Z+z5ZuzIDwgZ29qdXVvbnp1XCA7CivmlqXlgJnlhbUgPCBzZWtrb3VoZWlcIDsKK+WlveW9semfvyA8IGtvdWVpa3lvdVwgOwor55Sf5YyW5a2mIDwgc2Vpa2FnYWt1XCA7CivoqabkuZfou4ogPCBzaGlqb3VzaGFcIDsKK+Wcp+WItueahCA8IGFzc2VpdGVraVwgOwor54Kt6YW457SZIDwgdGFuc2Fuc2hpXCA7CivliKnku5bkuLvnvqkgPCByaXRhc2h1Z2lcIDsKK+WGjeW+k+W8nyA8IHNhaWp1dXRlaVwgOwor5L2Z6KiI6ICFIDwgeW9rZWltb25vXCA7Civmr5LomasgPCBkb2t1bXVzaGlcIDsKK+S4jeWvneeVqiA8IGZ1c2hpbmJhblwgOwor55CG5bGI5bGLIDwgcmlrdXRzdXlhXCA7Civkv53nrqHkurogPCBob2thbicnbmluXCA7CivlhKroia/ppqwgPCB5dXVyeW91YmFcIDsKK+mBi+i8uOmHjyA8IHVuJyd5dXJ5b3VcIDsKK+WNk+e1tiA8IHRha3V6ZXRzdVwgOwor5aSq5bmz5rSLIDwgdGFpaGVpeW91XCA7Civosq/olLXlk4EgPCBjaG96b3VoaW5cIDsKK+WNmOezlumhniA8IHRhbnRvdXJ1aVwgOwor5Y+W5raIIDwgdG9yaWtlc2hpXCA7CivogZrmpb3nrKwgPCBqdXJha3VkYWlcIDsKK+eUn+WNiuWPryA8IG5hbWFoYW5rYVwgOwor5ZGo5a+GIDwgc2h1dW1pdHN1XCA7Civokp/okrsgPCBrb24nJ255YWt1XCA7CivljZTorbDmiYAgPCBreW91Z2lzaG9cIDsKK+S7iuW5tOW6piA8IGtvbicnbmVuZG9cIDsKK+WQhOaciCA8IGtha3V0c3VraVwgOwor5q616KKLIDwgZGFuYnVrdXJvXCA7CivnpL7kvJrlsaQgPCBzaGFrYWlzb3VcIDsKK+aAneaYpeacnyA8IHNoaXNodW5raVwgOwor5pS+5bCE5oCnIDwgaG91c2hhc2VpXCA7CivomavlqpLoirEgPCBjaHV1YmFpa2FcIDsKK+WKoOaMgeeliOeltyA8IGthamlraXRvdVwgOwor5YaF5ZCR5oCnIDwgbmFpa291c2VpXCA7CivlhKrlvoXliLggPCB5dXV0YWlrZW5cIDsKK+Wbm+S6uue1hCA8IHlvbmluZ3VtaVwgOwor6YCA5ayw55qEIDwgdGFpZWl0ZWtpXCA7CivlloTlvoznrZYgPCB6ZW5nb3Nha3VcIDsKK+WPjuayoSA8IHNodXVib3RzdVwgOwor6YmE5bGRIDwgdGV0c3VrdXp1XCA7CivliqnmiYvluK0gPCBqb3NodXNla2lcIDsKK+eBq+acqOmHkSA8IGthbW9rdWtpblwgOwor5Y2T562GIDwgdGFrdWhpdHN1XCA7CivmsI/lrZDluLMgPCB1amlrb2Nob3VcIDsKK+eah+WkquWQjiA8IGtvdXRhaWdvdVwgOwor5Y+W5qyhIDwgdG9yaXRzdWdpXCA7CivnibnmlLvpmoogPCB0b2trb3V0YWlcIDsKK+WNk+eriyA8IHRha3VyaXRzdVwgOwor6YG66KiA6ICFIDwgeXVpZ29uc2hhXCA7Civpg7flnJ/lj7IgPCBreW91ZG9zaGlcIDsKK+ato+mBkyA8IG1hc2FtaWNoaVwgOwor5LuY5bGe5qChIDwgZnV6b2t1a291XCA7CivmsojmsqEgPCBjaGluYm90c3VcIDsKK+e1seayu+iAhSA8IHRvdWNoaXNoYVwgOwor5ZCN5Lq66Iq4IDwgbWVpamluZ2VpXCA7Civlh4Tmloflj6UgPCBzdWdvbW9ua3VcIDsKK+aIpueBveiAhSA8IHNlbnNhaXNoYVwgOwor6Kmm5L2c5qmfIDwgc2hpc2FrdWtpXCA7Civpu4Tmnq/ojLYgPCBraWdhcmFjaGFcIDsKK+iDg+iFuOiWrCA8IGljaG91eWFrdVwgOwor5q+S6IiMIDwgZG9rdXpldHN1XCA7Civpmb3pm7vlrZAgPCB5b3VkZW5zaGlcIDsKK+ejqOaxgSA8IHRvZ2lzaGlydVwgOwor5paH5q6K5qeYIDwgbW9uanVzYW1hXCA7CivlvbnogbcgPCB5YWt1c2hva3VcIDsKK+S7mOWxnuabuCA8IGZ1em9rdXNob1wgOwor6KiO6KuW6ICFIDwgdG91cm9uc2hhXCA7CivlpJrmsZfnl4cgPCB0YWthbnNob3VcIDsKK+eip+eOiSA8IGhla2lneW9rdVwgOwor5oqV5omL6ZmjIDwgdG91c2h1amluXCA7CivkuK3ntpnmiYAgPCBjaHV1a2Vpam9cIDsKK+agueaLoOWcsCA8IGtvbmt5b2NoaVwgOwor5rOV5Lq656iOIDwgaG91amluemVpXCA7CivlnLDlhYPmsJEgPCBqaW1vdG9taW5cIDsKK+W5tOacn+iAhSA8IG5lbmtpbW9ub1wgOwor6YW354axIDwga29rdW5ldHN1XCA7CivoirHljYnlnJLoirggPCBrYWtpZW5nZWlcIDsKK+mfs+alveaApyA8IG9uZ2FrdXNlaVwgOwor6KKr5ZGK5Lq6IDwgaGlrb2t1bmluXCA7CivmlofljJbluoEgPCBidW5rYWNob3VcIDsKK+WBj+WQkeadvyA8IGhlbmtvdWJhblwgOwor6IOM5Lu7572qIDwgaGFpbmluemFpXCA7Civlgo3oprPogIUgPCBib3VrYW5zaGFcIDsKK+iUtea1miA8IGt1cmF6YXJhZVwgOwor5pif54q25L2TIDwgc2Vpam91dGFpXCA7CivmtojljJbliaQgPCBzaG91a2F6YWlcIDsKK+asp+W3nueJiCA8IG91c2h1dWJhblwgOwor5ZKM6KO96Iux6KqeIDwgd2FzZWllaWdvXCA7Civlj6Pml6kgPCBrdWNoaWJheWFcIDsKK+Wwj+ixhueypSA8IGF6dWtpZ2F5dVwgOwor5rGB54mpIDwgc2hpcnVtb25vXCA7Civns7vlm7PlraYgPCBrZWl6dWdha3VcIDsKK+mFt+eDiCA8IGtva3VyZXRzdVwgOwor5Luu5ZCN5omL5pysIDwga2FuYWRlaG9uXCA7Civok4TnqY0gPCBjaGlrdXNla2lcIDsKK+abuOewoeeuiyA8IHNob2thbnNlblwgOwor5YaN6YWN5YiGIDwgc2FpaGFpYnVuXCA7CivlvLHomasgPCB5b3dhbXVzaGlcIDsKK+WNlOitsOWumCA8IGt5b3VnaWthblwgOwor5ZCM6aGe6aCFIDwgZG91cnVpa291XCA7Civoh6rou6Lou7ggPCBqaXRlbmppa3VcIDsKK+W/oOeDiCA8IGNodXVyZXRzdVwgOwor5LiK55Sy5p2/IDwgam91a2FucGFuXCA7Civmg5zliKUgPCBzZWtpYmV0c3VcIDsKK+WFqOWcsOaWuSA8IHplbmNoaWhvdVwgOwor5Lya56S+5rOVIDwga2Fpc2hhaG91XCA7CivmtLvliocgPCBrYXRzdWdla2lcIDsKK+WlieS7leWTgSA8IGhvdXNoaWhpblwgOwor5oiq5ouz6YGTIDwgc2Vra2VuZG91XCA7Civlj7DmiYAgPCBkYWlkb2tvcm9cIDsKK+S7leiInuWxiyA8IHNoaW1vdGF5YVwgOwor5oqY6KG35qGIIDwgc2V0Y2h1dWFuXCA7CivoiKrnqbrpmoogPCBrb3VrdXV0YWlcIDsKK+idpuifh+WPoyA8IGdhbWFndWNoaVwgOwor56aB5q2i5rOVIDwga2luc2hpaG91XCA7CivpgZPlhbfmlrkgPCBkb3VndWthdGFcIDsKK+W+jOeoiyA8IG5vY2hpaG9kb1wgOwor5pem6YKj6Iq4IDwgZGFuJyduYWdlaVwgOwor5om26aSK5paZIDwgZnV5b3VyeW91XCA7CivlvJPooZMgPCBreXV1anV0c3VcIDsKK+S4jeS/oeW/gyA8IGZ1c2hpbmppblwgOwor6YGg6L+RIDwgb2NoaWtvY2hpXCA7CivlipvoqqwgPCByaWtpc2V0c3VcIDsKK+W5s+WuieacnSA8IGhlaWFuY2hvdVwgOwor5YaF6YeO5bitIDwgbmFpeWFzZWtpXCA7Civlm6DmnpzlvosgPCBpbmdhcml0c3VcIDsKK+iLseWSjOi+nuWFuCA8IGVpd2FqaXRlblwgOwor6Lu95ryU5YqHIDwga2VpZW5nZWtpXCA7CivkuojlgpnkvJrorbAgPCB5b2Jpa2FpZ2lcIDsKK+adv+mHkeW3pSA8IGJhbmtpbmtvdVwgOwor5a6a5L6h6KGoIDwgdGVpa2FoeW91XCA7Civnr6Tlv5flrrYgPCB0b2t1c2hpa2FcIDsKK+m0rOiJsiA8IHVndWlzdWlyb1wgOwor6Kmm6aiT5aC0IDwgc2hpa2Vuam91XCA7Civml4XooYzogIUgPCByeW9rb3VzaGFcIDsKK+atr+m9pueCjiA8IHNoaWdpbicnZW5cIDsKK+ibuOWdiuS4uyA8IHRha29ib3V6dVwgOwor5Y2a54mpIDwgaGFrdWJ1dHN1XCA7Civlj4LmlL/lrpggPCBzYW5zZWlrYW5cIDsKK+i7jeS6i+eahCA8IGd1bmppdGVraVwgOwor5Y+k6Yqt5a2mIDwga29zZW5nYWt1XCA7Civou43lrpjmhrIgPCBndW5rYW5rZW5cIDsKK+mWouaVsOirliA8IGthbnN1dXJvblwgOwor5rK755mC6LK7IDwgY2hpcnlvdWhpXCA7Civmr5LnrYYgPCBkb2t1aGl0c3VcIDsKK+WRkeWPoyA8IG5vbWlndWNoaVwgOwor5ZG95LmeIDwgaW5vY2hpZ29pXCA7Civmnb/ph5HlsYsgPCBiYW5raW4nJ3lhXCA7Civmk43ou4rloLQgPCBzb3VzaGFqb3VcIDsKK+aKleiejeizhyA8IHRvdXl1dXNoaVwgOwor56S+5Lqk5oCnIDwgc2hha291c2VpXCA7Civmk6zniIblvL4gPCBnaWJha3VkYW5cIDsKK+erueicu+ibiSA8IHRha2V0b25ib1wgOwor5oGL5b+DIDwga29pZ29rb3JvXCA7CivotoXlhZrmtL4gPCBjaG91dG91aGFcIDsKK+WVj+mhjOWkliA8IG1vbmRhaWdhaVwgOwor5LiA6Iis55qEIDwgaXBwYW50ZWtpXCA7Civos4fmnKzph5EgPCBzaGlob25raW5cIDsKK+aCquWPoyA8IHdhcnVndWNoaVwgOwor55S35a2Q55SoIDwgZGFuc2hpeW91XCA7CivliJ3pm6ogPCBoYXRzdXl1a2lcIDsKK+ekvuS8muWFmiA8IHNoYWthaXRvdVwgOwor5Y6t5LiW55qEIDwgZW5zZWl0ZWtpXCA7CivlvLHohbAgPCB5b3dhZ29zaGlcIDsKK+iok+e3tOeUnyA8IGt1bnJlbnNlaVwgOwor6YCG6Z6YIDwgZ3lha3V6YXlhXCA7CivotIjlkYjmnKwgPCB6b3V0ZWlib25cIDsKK+S6jOmZouWItuW6piA8IG5paW5zZWlkb1wgOwor5bm06aCDIDwgdG9zaGlnb3JvXCA7Civlrrbml4/ms5UgPCBrYXpva3Vob3VcIDsKK+S6uuawl+agqiA8IG5pbmtpa2FidVwgOwor6Kqt5b6M5oSfIDwgZG9rdWdva2FuXCA7CivljZjntLDog54gPCB0YW5zYWlib3VcIDsKK+mztOemvemhniA8IG1laWtpbnJ1aVwgOwor5YaF6YOo55qEIDwgbmFpYnV0ZWtpXCA7Civnt7TlhbXloLQgPCByZW5wZWlqb3VcIDsKK+Wkj+acn+aZgumWkyA8IGtha2lqaWthblwgOwor5aSn5YmN5o+QIDwgZGFpemVudGVpXCA7CivnnYDpmbggPCBjaGFrdXJpa3VcIDsKK+WGjeW+k+WFhCA8IHNhaWp1dWtlaVwgOwor5ZGK5YilIDwga29rdWJldHN1XCA7Civlj6/li5XmqYsgPCBrYWRvdWt5b3VcIDsKK+awtOayuSA8IG1penVhYnVyYVwgOwor5rC35rC0IDwga29vcmltaXp1XCA7Civpn7Pmpb3loIIgPCBvbmdha3Vkb3VcIDsKK+iNkumaoOWFgyA8IHNheWFpbmdlblwgOwor5LqV5oi45bGL5b2iIDwgaWRveWFrYXRhXCA7CivmtJfnpLzlkI0gPCBzZW5yZWltZWlcIDsKK+ePvualreWToSA8IGdlbmd5b3VpblwgOwor5LiA5bel5aSrIDwgaGl0b2t1ZnV1XCA7CivliY3ovL8gPCBzYWtpZ29zaGlcIDsKK+WPt+WupCA8IGdvdXNoaXRzdVwgOwor6Iad5bCP5YOnIDwgaGl6YWtvem91XCA7Civoh6rlt7Hnn5vnm74gPCBqaWtvbXVqdW5cIDsKK+S9nOipnuWutiA8IHNha3VzaGlrYVwgOwor5L2c54K655qEIDwgc2FrdWl0ZWtpXCA7CivlsI/lroflrpkgPCBzaG91dWNodXVcIDsKK+miqOawtOWusyA8IGZ1dXN1aWdhaVwgOwor5aSn6LuK6LyqIDwgZGFpc2hhcmluXCA7CivmlLnlrprniYggPCBrYWl0ZWloYW5cIDsKK+ekvuS8muS6uiA8IHNoYWthaWppblwgOwor5oKq5b2x6Z+/IDwgYWt1ZWlreW91XCA7Civopb/pg6jliocgPCBzZWlidWdla2lcIDsKK+mbkeiyqOWVhiA8IHpha2thc2hvdVwgOwor5Yqj562J5oSfIDwgcmV0dG91a2FuXCA7Civlh7rpoZggPCBzaHV0c3VnYW5cIDsKK+mAj+aYjuaApyA8IHRvdW1laXNlaVwgOwor5Ye66aGMIDwgc2h1dHN1ZGFpXCA7Civoi6XlpKvlqaYgPCB3YWthZnV1ZnVcIDsKK+mxl+mbsiA8IHVyb2tvZ3Vtb1wgOwor6bSD6IiMIDwgZ2VraXpldHN1XCA7CivpmbDpmb3pgZMgPCBvbm15b3Vkb3VcIDsKK+S8keaGqeaJgCA8IGt5dXVrZWlqb1wgOwor6YWN57Wm5omAIDwgaGFpa3l1dWpvXCA7Civoo4XouqvlhbcgPCBzb3VzaGluZ3VcIDsKK+eEoeasoOW4rSA8IG11a2Vzc2VraVwgOwor6Ieq5Yi25b+DIDwgamlzZWlzaGluXCA7CivpgJrph4ggPCB0c3V1c2hha3VcIDsKK+eggueykiA8IHN1bmF0c3VidVwgOwor5Ymv5L2c55SoIDwgZnVrdXNheW91XCA7Civlho3pgbjmjJkgPCBzYWlzZW5reW9cIDsKK+maoOWMv+iAhSA8IGludG9rdXNoYVwgOwor5ZCM5Lq656iuIDwgZG91amluc2h1XCA7CivpgYvpgIHmpa0gPCB1bnNvdWd5b3VcIDsKK+WGheWLmeecgSA8IG5haW11c2hvdVwgOwor54Kt6YW45rC0IDwgdGFuc2Fuc3VpXCA7CivooZvnlJ/nmoQgPCBlaXNlaXRla2lcIDsKK+WGjeeZuuihjCA8IHNhaWhha2tvdVwgOwor6YG66KiA54q2IDwgeXVpZ29uam91XCA7CivpgJ/pgZQgPCBzb2t1dGF0c3VcIDsKK+eCueecvOawtCA8IHRlbmdhbnN1aVwgOwor6Lu95ZCI6YeRIDwga2VpZ291a2luXCA7CivkuIDnmbrlsYsgPCBpcHBhdHN1eWFcIDsKK+WHuumZoyA8IHNodXRzdWppblwgOwor5YWo6KO95ZOBIDwgemVuc2VpaGluXCA7CivpgJrpgZQgPCB0c3V1dGF0c3VcIDsKK+W/nOWPrOiAhSA8IG91c2hvdXNoYVwgOwor5Yid6YecIDwgaGF0c3VnYW1hXCA7Civlj6TljbDntJkgPCBmdXJ1aW5zaGlcIDsKK+izh+acrOiyoSA8IHNoaWhvbnphaVwgOwor5Zue6aGn55qEIDwga2Fpa290ZWtpXCA7CivkuozopqrnrYkgPCBuaXNoaW50b3VcIDsKK+S6pOaIpuaoqSA8IGtvdXNlbmtlblwgOwor5bqD5aCx6KqMIDwga291aG91c2hpXCA7CivkvovlubTnpa0gPCByZWluZW5zYWlcIDsKK+S6iOmYsuiWrCA8IHlvYm91eWFrdVwgOwor5ZKM5aOw5a2mIDwgd2FzZWlnYWt1XCA7Civlh7rploAgPCBzaHV0c3Vtb25cIDsKK+mfs+alveWPsiA8IG9uZ2FrdXNoaVwgOwor6JCO57iu6IWOIDwgaXNodWt1amluXCA7Civnm5fogbTlmaggPCB0b3VjaG91a2lcIDsKK+S6iOe0hOmHkSA8IHlveWFrdWtpblwgOwor6Yej5aCAIDwgdHN1cmlib3JpXCA7CivmmKXloLTmiYAgPCBoYXJ1YmFzaG9cIDsKK+enn+W6uOiqvyA8IHNveW91Y2hvdVwgOwor6L+R6aCDIDwgY2hpa2Fnb3JvXCA7Civps7bogbcgPCB0b2Jpc2hva3VcIDsKK+WOn+WtkOirliA8IGdlbnNoaXJvblwgOwor54Sh5qmf54mpIDwgbXVraWJ1dHN1XCA7CivmsbrorbDmoYggPCBrZXRzdWdpYW5cIDsKK+WJteS9nOWutiA8IHNvdXNha3VrYVwgOwor54ib54af5pyfIDwgcmFuanVrdWtpXCA7CivkuK3plpPmtL4gPCBjaHV1a2FuaGFcIDsKK+efs+ethiA8IHNla2loaXRzdVwgOwor6YeM56iL5qiZIDwgcml0ZWloeW91XCA7Civos4fmnKzoq5YgPCBzaGlob25yb25cIDsKK+S7iuanmOatjCA8IGltYXlvdXV0YVwgOwor55+z56u5IDwgc2VraWNoaWt1XCA7CivlvJXntrEgPCBoaWtpZHp1bmFcIDsKK+S8mua0peWhlyA8IGFpZHp1bnVyaVwgOwor5Li45Z2K5Li7IDwgbWFydWJvdXp1XCA7Civnp7vmpI3mgKcgPCBpc2hva3VzZWlcIDsKK+efreetkiA8IHRhbmR6dXRzdVwgOwor5Yil5aSp5ZywIDwgYmV0dGVuY2hpXCA7Civmr5LniakgPCBkb2t1YnV0c3VcIDsKK+WNs+aXpSA8IHNva3VqaXRzdVwgOwor6Ziy56m65aOVIDwgYm91a3V1Z291XCA7CivpgIPpgZMgPCBuaWdlbWljaGlcIDsKK+mBi+mAgeaWmSA8IHVuc291cnlvdVwgOwor56We5Li7IDwga2FuJydudXNoaVwgOwor5bm96ZyK6Ii5IDwgeXV1cmVpc2VuXCA7CivkvK/lgpnnt5ogPCBoYWt1YmlzZW5cIDsKK+iDg+iFuOeXhSA8IGljaG91YnlvdVwgOwor5Y2x5qmf566h55CGIDwga2lraWthbnJpXCA7CivlkIjljbAgPCBhaWppcnVzaGlcIDsKK+WfuuekjuS9k+a4qSA8IGtpc290YWlvblwgOwor5Y2S5qWtIDwgc290c3VneW91XCA7CivlkYrnpLrmnb8gPCBrb2t1amliYW5cIDsKK+Wwj+S9nOS6uiA8IGtvc2FrdW5pblwgOwor6Zui6ZaT562WIDwgcmlrYW5zYWt1XCA7Civli53nnYAgPCBzaG91Y2hha3VcIDsKK+W8sSA8IG5heW9uYXlvXCA7CivoubIgPCB0c3VrdWJhaVwgOwor5aeRIDwgc2h1dXRvbWVcIDsKK+WhiiA8IGthdGFtYXJpXCA7CivloKQgPCB0c3V0c3VtaVwgOwor6byTIDwgdHN1ZHp1bWlcIDsKK+a6kCA8IG1pbmFtb3RvXCA7Civpto8gPCBuaXdhdG9yaVwgOwor5Y+iIDwga3VzYW11cmFcIDsKK+WNsCA8IHNoaXJ1c2hpXCA7CivprYIgPCB0YW1hc2hpaVwgOwor6IW4IDwgaGFyYXdhdGFcIDsKK+adryA8IHNha2F6dWtpXCA7Civpm7cgPCBrYW1pbmFyaVwgOwor6ZuBIDwga2FyaWdhbmVcIDsKK+aagSA8IGFrYXRzdWtpXCA7CivntKsgPCBtdXJhc2FraVwgOwor5o6MIDwgdGVub2hpcmFcIDsKK+aKkSA8IHNvbW9zb21vXCA7Civmh5AgPCBmdXRva29yb1wgOwor5ZCQ5Ye6IDwgdG9zaHV0c3VcIDsKK+mHkeWeiyA8IGthbmFnYXRhXCA7Civnn7PnpZ4gPCBzaGFrdWppblwgOwor5ZCN5Yi5IDwgbWVpc2F0c3VcIDsKK+W8vuedgCA8IGRhbmNoYWt1XCA7CivokL3nsY0gPCByYWt1c2VraVwgOwor55+i562SIDwgeWFkenV0c3VcIDsKK+W/g+acjSA8IHNoaW5wdWt1XCA7CivpgIbou6IgPCBneWFrdXRlblwgOwor5ZCI5YqbIDwgZ291cnlva3VcIDsKK+iWmeWIgCA8IG5hZ2luYXRhXCA7CivlkIzliJcgPCBkb3VyZXRzdVwgOwor5rCR5pWw6KiYIDwgbWluc3V1a2lcIDsKK+mJhOegsuW6pyA8IHRlcHBvdXphXCA7Civnm4LomK3nm4bkvJogPCB1cmFib24nJ2VcIDsKK+aWh+WMluS6uiA8IGJ1bmthamluXCA7CivmnKjlt6XmiYAgPCBtb2trb3Vqb1wgOwor5Yy756eR5q2v56eRIDwgaWthc2hpa2FcIDsKK+ebtOmdoiA8IGNob2t1bWVuXCA7CivkuIDoiKzms5UgPCBpcHBhbmhvdVwgOwor5b6p5qWtIDwgZnVrdWd5b3VcIDsKK+iWhOWPoyA8IHVzdWt1Y2hpXCA7CivlirTli5nogIUgPCByb3VtdXNoYVwgOwor6I2J6aOfIDwgc291c2hva3VcIDsKK+aWh+W6q+acrCA8IGJ1bmtvYm9uXCA7CivluLjpl4cgPCB0b2tveWFtaVwgOwor5ZCI5YaKIDwgZ291c2F0c3VcIDsKK+WJpeiQvSA8IGhha3VyYWt1XCA7CivojLbpq6ogPCBjaGFwYXRzdVwgOwor6YCf6KqtIDwgc29rdWRva3VcIDsKK+WOs+WvhiA8IGdlbm1pdHN1XCA7Civku6PnkIbkurogPCBkYWlyaW5pblwgOwor5rW35rC0552AIDwga2Fpc3VpZ2lcIDsKK+WHuumDtyA8IHNodWtreW91XCA7CivljprlupUgPCBhdHN1em9rb1wgOwor6Ieq5bex5rWBIDwgamlrb3J5dXVcIDsKK+W8leeqkyA8IGhpa2ltYWRvXCA7CivkuIHlr6foqp4gPCB0ZWluZWlnb1wgOwor5YiG6L2EIDwgYnVua2F0c3VcIDsKK+mfs+alveS8miA8IG9uZ2Fra2FpXCA7CivlkIzog57mhJsgPCBkb3Vob3VhaVwgOwor6YCa6KqtIDwgdHN1dWRva3VcIDsKK+avm+WUkOS6uiA8IGtldG91amluXCA7CivmsJHkuovkuIogPCBtaW5qaWpvdVwgOwor5reh5b2p55S7IDwgdGFuc2FpZ2FcIDsKK+acn+W+heWApCA8IGtpdGFpY2hpXCA7CivpgZzoibIgPCBzb25zaG9rdVwgOwor5YWo6KO45L2TIDwgemVucmF0YWlcIDsKK+eri+S9k+a0viA8IHJpdHRhaWhhXCA7Civov73ot6EgPCB0c3Vpc2VraVwgOwor5Yuy54i1IDwga3Vuc2hha3VcIDsKK+itt+mAgeiIuSA8IGdvc291c2VuXCA7CivpgJroqLMgPCB0c3V1eWFrdVwgOwor6YeO6Juu5Lq6IDwgeWFiYW5qaW5cIDsKK+WPquWPqiA8IHRhZGF0YWRhXCA7Civlj4vlnqMgPCB0b21vZ2FraVwgOwor5aWz5oCn6LuNIDwgam9zZWlndW5cIDsKK+WQjOi2o+WRsyA8IGRvdXNodW1pXCA7CivljYrmnIggPCBoYW50c3VraVwgOwor5Y+v5YuV5oCnIDwga2Fkb3VzZWlcIDsKK+S4jemkiueUnyA8IGZ1eW91am91XCA7Civpo73lkozngrkgPCBob3V3YXRlblwgOwor55yf6L+5IDwgc2hpbnNla2lcIDsKK+aXouW+gOeXhyA8IGtpb3VzaG91XCA7CivlkInkvosgPCBraXRzdXJlaVwgOwor6L+R6YmEIDwga2ludGV0c3VcIDsKK+iMtumjryA8IGNoYW1lc2hpXCA7CivliKXoqIAgPCBiZXRzdWdlblwgOwor5q6W55SjIDwgc2hva3VzYW5cIDsKK+mHkeWPoyA8IGtpbmd1Y2hpXCA7CivpgKDooYAgPCB6b3VrZXRzdVwgOwor6bOl57GgIDwgdG9yaWthZ29cIDsKK+WLg+eZuiA8IGJvcHBhdHN1XCA7Civlu7rnr4kgPCBrZW5jaGlrdVwgOwor5LiA6Ie054K5IDwgaXRjaGl0ZW5cIDsKK+WHuui6qyA8IHNodXNzaGluXCA7CivnrYboqJjogIUgPCBoaWtraXNoYVwgOwor5Y2B5pyIIDwganV1Z2F0c3VcIDsKK+mAgemiqOapnyA8IHNvdWZ1dWtpXCA7Civlj6PljaAgPCBrdWNoaXVyYVwgOwor5aer5b6h5a2QIDwgaGltZW1pa29cIDsKK+aJi+mFjeabuCA8IHRlaGFpc2hvXCA7CivmraPnq4sgPCBzZWlyaXRzdVwgOwor6a+o6aqoIDwgZ2Vpa290c3VcIDsKK+axguW/gyA8IGt5dXVzaGluXCA7Civnm7jpjpogPCBhaWR6dWNoaVwgOwor55y86K2YIDwgZ2Fuc2hpa2lcIDsKK+iEs+ePiueRmiA8IG5vdXNhbmdvXCA7CivkuIrlsaTlnJ8gPCBqb3Vzb3Vkb1wgOwor5b+D5ouNIDwgc2hpbnBha3VcIDsKK+S6iOe0hOiqniA8IHlveWFrdWdvXCA7CivlvbzmraQgPCBrYXJla29yZVwgOwor5rK55qe96Ii5IDwgeXVzb3VzZW5cIDsKK+atr+ejqCA8IGhhbWlnYWtpXCA7CivluJ3pl5UgPCB0ZWlrZXRzdVwgOwor5LiA5a+46KaLIDwgY2hvdHRvbWlcIDsKK+S6iOmYsue3miA8IHlvYm91c2VuXCA7Civli5jlrprml6UgPCBrYW5qb3ViaVwgOwor5YaF6bCQIDwgdWNoaXdhbmlcIDsKK+WPpOWJtSA8IGZ1cnVraXp1XCA7CivptKjnjJ8gPCBrYW1vcnlvdVwgOwor5rKh5Y20IDwgYm9ra3lha3VcIDsKK+WGheW4kemHkSA8IG5haWRva2luXCA7Civph5HlipsgPCBraW5yeW9rdVwgOwor5Y+z5YG0IDwgbWlnaWdhd2FcIDsKK+WHuui2hSA8IHNodXRjaG91XCA7Civlj6PliY0gPCBrdWNoaW1hZVwgOwor5Lyd6YCB6LevIDwgZGVuc291cm9cIDsKK+WIu+iWhCA8IGtva3VoYWt1XCA7CivpioDntLDlt6UgPCBnaW56YWlrdVwgOwor5Lq655u46KaLIDwgbmluc291bWlcIDsKK+awtOaApyA8IG1penVzaG91XCA7CivluoPoopYgPCBoaXJvc29kZVwgOwor6YeN5YqbIDwganV1cnlva3VcIDsKK+miqOWIuueUuyA8IGZ1dXNoaWdhXCA7Civnm7jpiYQgPCBzb3V0ZXRzdVwgOwor6I236LuKIDwgbmlndXJ1bWFcIDsKK+WLleeJqSA8IGRvdWJ1dHN1XCA7CivljYjppJDkvJogPCBnb3NhbmthaVwgOwor55+l55WlIDwgY2hpcnlha3VcIDsKK+ebrumMsiA8IG1va3Vyb2t1XCA7CivnhKHmrKDli6QgPCBtdWtla2tpblwgOwor5q+U6YeN6KiIIDwgaGlqdXVrZWlcIDsKK+WIh+irliA8IHNldHN1cm9uXCA7CivpgYvpgIHlupcgPCB1bnNvdXRlblwgOwor5Ye26LOKIDwga3lvdXpva3VcIDsKK+aTjeS9nOebpCA8IHNvdXNhYmFuXCA7CivnnYDoo4UgPCBjaGFrdXNvdVwgOwor5Zyo5bqr5ZOBIDwgemFpa29oaW5cIDsKK+mBheiEiCA8IGNoaW15YWt1XCA7CivmsLTlvJUgPCBtaXp1aGlraVwgOwor5qmI6aqoIDwgdG91a290c3VcIDsKK+ausua7hSA8IHNlbm1ldHN1XCA7CivlhqDpm6ogPCBrYW5zZXRzdVwgOwor5YyX5qW1IDwgaG9ra3lva3VcIDsKK+W5u+ihkyA8IGdlbmp1dHN1XCA7CivmsLfluoogPCBoeW91c2hvdVwgOwor5YqD562WIDwga2FrdXNha3VcIDsKK+awkeS4u+WMliA8IG1pbnNodWthXCA7CivljbPluK0gPCBzb2t1c2VraVwgOwor5bu25rue6YeRIDwgZW50YWlraW5cIDsKK+WPiOWPiCA8IG1hdGFtYXRhXCA7CivmsLTlupUgPCBtaW5hc29rb1wgOwor5ZSQ56C06aKoIDwga2FyYWhhZnVcIDsKK+ebtOmFjSA8IGNob2t1aGFpXCA7CivliIfoqIAgPCBzZXRzdWdlblwgOwor6Ieq5YWs5rCRIDwgamlrb3VtaW5cIDsKK+aApeWRiiA8IGt5dXVrb2t1XCA7Civph4jlhbggPCBzaGFrdXRlblwgOwor6LOi5aSr5Lq6IDwga2VucHVqaW5cIDsKK+avq+acqyA8IGdvdW1hdHN1XCA7CivljYrmipggPCBoYW5zZXRzdVwgOwor5bmz6KKWIDwgaGlyYXNvZGVcIDsKK+S6jOW6puaJi+mWkyA8IG5pZG9kZW1hXCA7Civpr5vpo68gPCB0YWltZXNoaVwgOwor6YGL6Lui6ICFIDwgdW50ZW5zaGFcIDsKK+WIh+imgSA8IHNldHN1eW91XCA7Civlt7vpm7IgPCBtYWtpZ3Vtb1wgOwor5LiN5qC85aW9IDwgYnVrYWtrb3VcIDsKK+WCrOa3q+WJpCA8IHNhaWluemFpXCA7CivmrovniakgPCB6YW5idXRzdVwgOwor5qCE6aSK55+tIDwgZWl5b3V0YW5cIDsKK+aFi+OAhSA8IHdhemF3YXphXCA7CivliqvnlaUgPCBnb3VyeWFrdVwgOwor5Y+N5YilIDwgdGFuYmV0c3VcIDsKK+ato+ebtCA8IHNob3VqaWtpXCA7CivljLvlrabnlYwgPCBpZ2FrdWthaVwgOwor5Yq5546HIDwga291cml0c3VcIDsKK+eEoeW4uOaEnyA8IG11am91a2FuXCA7Civlj6rkuosgPCB0YWRhZ290b1wgOwor56Kp5a2mIDwgc2VraWdha3VcIDsKK+iDjOagvOWlvSA8IHNla2Fra291XCA7CivlsbHmn7vlrZAgPCBzYW56YXNoaVwgOwor5Yy75a2m55SfIDwgaWdha3VzZWlcIDsKK+awtOW1qSA8IG1penVrYXNhXCA7Civplovmpa3ljLsgPCBrYWlneW91aVwgOwor55u06YCBIDwgY2hva3Vzb3VcIDsKK+WIhuijgiA8IGJ1bnJldHN1XCA7Civlvbnmn4QgPCB5YWt1Z2FyYVwgOwor5YeM6L6xIDwgcnlvdWpva3VcIDsKK+W+i+aWhyA8IHJpdHN1YnVuXCA7CivnqIvjgIUgPCBob2RvaG9kb1wgOwor5Y+O5YWlIDwgc2h1dW55dXVcIDsKK+S+v+iho+maiiA8IGJlbicnaXRhaVwgOwor6Iul6baPIDwgd2FrYWRvcmlcIDsKK+ayiOWLhyA8IGNoaW4nJ3l1dVwgOwor5Y+M5YWtIDwgc3Vnb3Jva3VcIDsKK+W7g+e1tiA8IGhhaXpldHN1XCA7CivlubnkuovkvJogPCBrYW5qaWthaVwgOwor6YGT57O4IDwgbWljaGlpdG9cIDsKK+WkmuWOn+WtkCA8IHRhZ2Vuc2hpXCA7CivlibXnq4sgPCBzb3VyaXRzdVwgOwor5Y2U5b+DIDwga3lvdXNoaW5cIDsKK+WMl+acnSA8IGhva3VjaG91XCA7Civli4fng4ggPCB5dXVyZXRzdVwgOwor5oCn5YilIDwgc2VpYmV0c3VcIDsKK+WLg+eEtiA8IGJvdHN1emVuXCA7CivljYHlrZflvaIgPCBqdXVqaWtlaVwgOwor5Y2Y5byPIDwgdGFuc2hpa2lcIDsKK+WklumHjuaJiyA8IGdhaXlhc2h1XCA7CivlgaXog4PpjKAgPCBrZW4nJ2lqb3VcIDsKK+mWouilv+mmrCA8IGthbnNhaWJhXCA7CivmjIfnpLroqZ4gPCBzaGlqaXNoaVwgOwor5Y+C5YiXIDwgc2FucmV0c3VcIDsKK+aYjuaXpeiRiSA8IGFzaGl0YWJhXCA7CivmsJflv4MgPCBraWdva29yb1wgOwor55+t6Led6ZuiIDwgdGFua3lvcmlcIDsKK+S4gOi7kuWxiyA8IGlra2VuJyd5YVwgOwor5bed6aKoIDwga2F3YWthemVcIDsKK+iKuOWCmee3miA8IGdlaWJpc2VuXCA7CivliIDooZMgPCB0b3VqdXRzdVwgOwor5Yyh5pWRIDwga3lvdWt5dXVcIDsKK+atu+eJqSA8IHNoaWJ1dHN1XCA7CivliLPoiJ8gPCBrdXJpYnVuZVwgOwor6Zmj5aSq6byTIDwgamluZGFpa29cIDsKK+ecn+WGrOaXpSA8IG1hZnV5dWJpXCA7Civlm5vlraPloLEgPCBzaGlraWhvdVwgOwor5YiG6J2VIDwgYnVuc2hva3VcIDsKK+eZvemzpSA8IGhha3VjaG91XCA7CivlhbXpo58gPCBoZWlzaG9rdVwgOwor5q6/5qeYIDwgdG9ub3NhbWFcIDsKK+WPguWFpSA8IHNhbicnbnl1dVwgOwor5Y+X5LuYIDwgdWtldHN1a2VcIDsKK+WNmOW4ryA8IGhpdG9lb2JpXCA7Civnn6/mv4AgPCBreW91Z2VraVwgOwor5oCq5YKRIDwga2Fpa2V0c3VcIDsKK+WIuuiCoSA8IHNhc3VtYXRhXCA7CivmsbLlj5YgPCBrdW1pdG9yaVwgOwor56CC5rWcIDwgc3VuYWhhbWFcIDsKK+e5geiPr+ihlyA8IGhhbmthZ2FpXCA7CivoqJPnt7TmiYAgPCBrdW5yZW5qb1wgOwor6YGU562GIDwgdGFwcGl0c3VcIDsKK+a1t+awtOa4qSA8IGthaXN1aW9uXCA7CivnrYvpm7vlm7MgPCBraW5kZW56dVwgOwor5Ymy56S8IDwga2F0c3VyZWlcIDsKK+avjuaciCA8IG1haXRzdWtpXCA7Civms4zlsL/lub4gPCBoaW55b3VraVwgOwor5Y2H5b2iIDwgbWFzdWdhdGFcIDsKK+S4jeWuieW/gyA8IGZ1YW5zaGluXCA7Civlt53pnKcgPCBrYXdhZ2lyaVwgOwor5YqH55qEIDwgZ2VraXRla2lcIDsKK+ioquWVj+edgCA8IGhvdW1vbmdpXCA7CivliIbomJYgPCBidW5rZXRzdVwgOwor5Lya56S+5ZOhIDwga2Fpc2hhaW5cIDsKK+WPlOS4liA8IHNodWt1c2VpXCA7CivlhYDpt7kgPCBoYWdldGFrYVwgOwor5rOV546L5qipIDwgaG91b3VrZW5cIDsKK+WLmOaxuiA8IGthbmtldHN1XCA7CivkuI3lsI7kvZMgPCBmdWRvdXRhaVwgOwor5Y2Y6Kmm5ZCIIDwgdGFuc2hpYWlcIDsKK+WNs+WmmSA8IHNva3VteW91XCA7CivliaPnqoEgPCBrZW50c3VrdVwgOwor5b+F5a6aIDwgaGl0c3Vqb3VcIDsKK+WJjee0hCA8IHplbicneWFrdVwgOwor5YqH55ebIDwgZ2VraXRzdXVcIDsKK+WNiOW5tCA8IHVtYWRvc2hpXCA7CivlubPokL0gPCBoaXJhb2NoaVwgOwor56Gs5byPIDwga291c2hpa2lcIDsKK+WGmeeUn+eUuyA8IHNoYXNlaWdhXCA7CivluLjorZggPCBqb3VzaGlraVwgOwor566h55CG5Lq6IDwga2FucmluaW5cIDsKK+W/g+WtpiA8IHNoaW5nYWt1XCA7Civmr47ml6UgPCBtYWluaWNoaVwgOwor55m96aqoIDwgaGFra290c3VcIDsKK+S4gOWutuiogCA8IGlra2Fnb3RvXCA7CivljYfluK0gPCBtYXN1c2VraVwgOwor5ZCM5pyf55SfIDwgZG91a2lzZWlcIDsKK+aoqumiqCA8IHlva29rYXplXCA7CivkuIHlrpropo8gPCB0ZWlqb3VnaVwgOwor6bCQ6LazIDwgd2FuaWFzaGlcIDsKK+mBheethiA8IGNoaWhpdHN1XCA7Civmr43mlrkgPCBoYWhha2F0YVwgOwor5a6I5YKZ6ZqKIDwgc2h1Yml0YWlcIDsKK+awt+WjgSA8IGh5b3VoZWtpXCA7Civnnp7nnYAgPCBtYW5jaGFrdVwgOwor6L6b6L6bIDwga2FyYWdhcmFcIDsKK+ebuOitmCA8IHNvdXNoaWtpXCA7Civoj5znrrggPCBzYWliYXNoaVwgOwor5L215ZCI572qIDwgaGVpZ296YWlcIDsKK+mAsee1piA8IHNodXVreXV1XCA7CivlhavpnaIgPCBoYWNoaW1lblwgOwor5Y2a5a2mIDwgaGFrdWdha3VcIDsKK+auluawkSA8IHNob2t1bWluXCA7CivpgLLntJogPCBzaGlua3l1dVwgOwor5rCX54Sh57K+IDwga2lidXNob3VcIDsKK+S4ieaemuebriA8IHNhbm1haW1lXCA7CivliY3nr4AgPCB6ZW5zZXRzdVwgOwor5b6X5b+DIDwgdG9rdXNoaW5cIDsKK+aJi+mFjeW4qyA8IHRlaGFpc2hpXCA7CivnnYDoiLkgPCBjaGFrdXNlblwgOwor5byV5r2uIDwgaGlraXNoaW9cIDsKK+W4uOiorSA8IGpvdXNldHN1XCA7CivnhKHoh6roppogPCBtdWppa2FrdVwgOwor5b6X5b6XIDwgdG9rdXRva3VcIDsKK+iQvea9riA8IHJha3VjaG91XCA7CivlvLHmr5IgPCBqYWt1ZG9rdVwgOwor5Y6l5Ya3IDwga2V0c3VyZWlcIDsKK+iUteWFgyA8IGt1cmFtb3RvXCA7Civlu7rniakgPCB0YXRlbW9ub1wgOwor5q275ruFIDwgc2hpbWV0c3VcIDsKK+WLh+axuiA8IHl1dWtldHN1XCA7CivlhYjpq5ggPCBzYWtpZGFrYVwgOwor55m66aeFIDwgaGF0c3Vla2lcIDsKK+eBq+S6i+azpSA8IGthamlkb3JvXCA7CivpgIDoibIgPCB0YWlzaG9rdVwgOwor5rCX5a6kIDwga2lzaGl0c3VcIDsKK+S6uuW3peiqniA8IGppbmtvdWdvXCA7Civml6LlvoDmrbQgPCBraW91cmVraVwgOwor5YaG6YyQIDwgbWFydWdpcmlcIDsKK+S4gOiIrOaApyA8IGlwcGFuc2VpXCA7Civli53mpb0gPCBzaG91cmFrdVwgOwor5bm05pyI5pelIDwgbmVuZ2FwcGlcIDsKK+WFjummrCA8IHVzYWdpdW1hXCA7CivlvZPmnIggPCB0b3VnZXRzdVwgOwor5Y2D5bO2IDwgY2hpc2hpbWFcIDsKK+aoqumbsiA8IHlva29ndW1vXCA7CivlpInmiJDlmaggPCBoZW5zZWlraVwgOwor5b6Q5b6QIDwgc29yb3Nvcm9cIDsKK+WFg+mrmCA8IG1vdG9kYWthXCA7CivmnKrkv6HogIUgPCBtaXNoaW5qYVwgOwor5bir6KqsIDwgc2hpc2V0c3VcIDsKK+WMheaRgiA8IGhvdXNldHN1XCA7Civmrr/mlrkgPCB0b25vZ2F0YVwgOwor5rCR5a6/IDwgbWluc2h1a3VcIDsKK+S4jeahiOWGhSA8IGZ1YW4nJ25haVwgOwor6Ieq5qOE6YWSIDwgeWFrZXpha2VcIDsKK+WhkeW8vuaApyA8IHNvZGFuc2VpXCA7CivmrablmajlgIkgPCBidWtpZ3VyYVwgOwor6YCj57WQIDwgcmVua2V0c3VcIDsKK+iBtOmfs+WZqCA8IGNob3VvbmtpXCA7Civnm7ToqIAgPCBjaG9rdWdlblwgOwor5bmz5Luu5ZCNIDwgaGlyYWdhbmFcIDsKK+W9juaciCA8IHdhbmdldHN1XCA7CivmhJ/nn6XlmaggPCBrYW5jaGlraVwgOwor5beh6YyrIDwganVuc2hha3VcIDsKK+W9juabsiA8IHdhbmt5b2t1XCA7Civnm7Top5IgPCBjaG9ra2FrdVwgOwor5buJ55u0IDwgcmVuY2hva3VcIDsKK+ebtOimliA8IGNob2t1c2hpXCA7CivmrbvmtLsgPCBzaGlrYXRzdVwgOwor5b+D5aKDIDwgc2hpbmt5b3VcIDsKK+W5s+iEiCA8IGhlaW15YWt1XCA7CivlvZPml6UgPCB0b3VqaXRzdVwgOwor5YmN5Y2K5pyfIDwgemVucGFua2lcIDsKK+W+qeWtpiA8IGZ1a3VnYWt1XCA7CivlhaXplqMgPCBueXV1a2FrdVwgOwor56m66KuW5a62IDwga3V1cm9ua2FcIDsKK+aBteavlOWvv+mhlCA8IGViaXN1Z2FvXCA7CivmqKrplbcgPCB5b2tvbmFnYVwgOwor5q275rKhIDwgc2hpYm90c3VcIDsKK+WMheaLrCA8IGhvdWthdHN1XCA7Civlv6DlkYogPCBjaHV1a29rdVwgOwor5be76Lu4IDwgbWFraWppa3VcIDsKK+i+sumWkeacnyA8IG5vdWthbmtpXCA7Civnmb7pm7cgPCBoeWFrdXJhaVwgOwor5LiN6LOb5oiQIDwgZnVzYW5zZWlcIDsKK+eZvumboyA8IGh5YWt1bmFuXCA7CivppIrpto/lrrYgPCB5b3VrZWlrYVwgOwor5Ye66Iq9IDwgc2h1dHN1Z2FcIDsKK+iPheesoCA8IHN1Z2VnYXNhXCA7CivliZvnm7QgPCBnb3VjaG9rdVwgOwor5Y2B5LqM5pSvIDwganV1bmlzaGlcIDsKK+WKoOa5vyA8IGthc2hpdHN1XCA7Civmp4vmiJDmr5QgPCBrb3VzZWloaVwgOwor5ZCR5pel6JG1IDwgaGltYXdhcmlcIDsKK+eZuumbuyA8IGhhdHN1ZGVuXCA7CivliIbohIggPCBidW5teWFrdVwgOwor55uj6KizIDwga2FuJyd5YWt1XCA7CivpgYXnnYAgPCBjaGljaGFrdVwgOwor5qmf5qWt5a62IDwga2lneW91a2FcIDsKK+WFmumWpSA8IHRvdWJhdHN1XCA7CivliKXntI0gPCBiZXRzdW5vdVwgOwor5YiR572wIDwga2VpYmF0c3VcIDsKK+WGhemBlCA8IG5haXRhdHN1XCA7CivmsLTmu7jkvJ0gPCBzdWlrb2RlblwgOwor5b6h5ayi5qeYIDwgb2pvdXNhbWFcIDsKK+W/g+WaoiA8IHNoaW4nJ25vdVwgOwor5b255b6XIDwgeWFrdXRva3VcIDsKK+iHqOW6iuWMuyA8IHJpbnNob3VpXCA7CivpgKPnq4sgPCByZW5yaXRzdVwgOwor6YO35oSBIDwga3lvdXNodXVcIDsKK+W9t+W9vyA8IGhvdWZ1dHN1XCA7Civluq3nn7MgPCBuaXdhaXNoaVwgOwor5YiH6ICFIDwga2lyZW1vbm9cIDsKK+mBheeZuiA8IGNoaWhhdHN1XCA7CivmoITppIrmupAgPCBlaXlvdWdlblwgOwor5aSa5bm06I2JIDwgdGFuZW5zb3VcIDsKK+iNt+WOhOS7iyA8IG5peWFra2FpXCA7CivlhYPpnpggPCBtb3Rvc2F5YVwgOwor5Yqx56OB5pCNIDwgcmVpamlzb25cIDsKK+WuieWFqOeToyA8IGFuemVuYmVuXCA7Civph43phbjntKAgPCBqdXVzYW5zb1wgOwor5b+Y5Y20IDwgYm91a3lha3VcIDsKK+attOattCA8IHJla2lyZWtpXCA7CivkuozloYHmiYsgPCBuaXJ1aXNodVwgOwor56K65L+hIDwga2FrdXNoaW5cIDsKK+efs+afsSA8IHNla2ljaHV1XCA7CivmnKjlt6XlhbcgPCBtb2trb3VndVwgOwor5qyg55WqIDwga2V0c3ViYW5cIDsKK+W9sOW+syA8IHNob3V0b2t1XCA7CivngrnnnLzlmaggPCB0ZW5nYW5raVwgOwor5oSa5Zuz5oSa5ZuzIDwgZ3V6dWd1enVcIDsKK+mxiOiFuSA8IHRhcmFmdWt1XCA7CivlibLniakgPCB3YXJlbW9ub1wgOwor5bmV6IejIDwgYmFrdXNoaW5cIDsKK+WFpemLjyA8IG55dXVreW91XCA7CivojqvlpKflsI8gPCBtZXJpeWFzdVwgOwor6KO96Yu85omAIDwgc2Vpa291am9cIDsKK+i7vem0qCA8IGthcnVnYW1vXCA7CivpmqDolL3lrZAgPCBpbnBlaXNoaVwgOwor5YuY5a6a5aC0IDwga2Fuam91YmFcIDsKK+e+veWbo+aJhyA8IGhhdWNoaXdhXCA7Civlv7Xku48gPCBuZW5idXRzdVwgOwor56C05oiS5YOnIDwgaGFrYWlzb3VcIDsKK+eArOaIuOeJqSA8IHNldG9tb25vXCA7Civoj4rnn7MgPCBraWt1aXNoaVwgOwor5Ya36KGAIDwgcmVpa2V0c3VcIDsKK+W5s+e1uSA8IGhpcmFnaW51XCA7CivphZLlkZEgPCBzYWtlbm9taVwgOwor6JGJ5qGcIDwgaGF6YWt1cmFcIDsKK+edgOexsyA8IGNoYWt1YmVpXCA7CivlpKfoi7Hmlq0gPCBkYWllaWRhblwgOwor5by35pW1IDwga3lvdXRla2lcIDsKK+axguWEnyA8IGt5dXVzaG91XCA7CivpgJrnp7AgPCB0c3V1c2hvdVwgOwor5b+g5YOVIDwgY2h1dWJva3VcIDsKK+awtOWKmyA8IHN1aXJ5b2t1XCA7CivmrovmnIggPCB6YW5nZXRzdVwgOwor5YuF5pu4IDwgY2hva3VzaG9cIDsKK+WFiOitsOaoqSA8IHNlbmdpa2VuXCA7CivlhbHpgJogPCBreW91dHN1dVwgOwor5Y+N5oqX5pyfIDwgaGFua291a2lcIDsKK+acrOS8muitsCA8IGhvbmthaWdpXCA7CivliY3nlaUgPCB6ZW5yeWFrdVwgOwor5q6K5pu0IDwga290b3NhcmFcIDsKK+W8puaciCA8IGdlbmdldHN1XCA7Civoi7HnsbPkurogPCBlaWJlaWppblwgOwor5L2O6aCG5L2NIDwgdGVpanVuJydpXCA7Civnm67olqwgPCBtZWd1c3VyaVwgOwor5LiN6ICB5rOJIDwgZnVyb3VzZW5cIDsKK+WNlOWVhiA8IGt5b3VzaG91XCA7Civnmb7pjKwgPCBoeWFrdXJlblwgOwor5YWs6YGUIDwga291dGF0c3VcIDsKK+W8seaVtSA8IGpha3V0ZWtpXCA7CivpgIbnrpcgPCBneWFrdXNhblwgOwor6buZ44CFIDwgbW9rdW1va3VcIDsKK+WFq+mBlCA8IGhhdHRhdHN1XCA7CivlhavpgZMgPCBoYWNoaWRvdVwgOwor5YyX5bGxIDwga2l0YXlhbWFcIDsKK+WJv+a7hSA8IHNvdW1ldHN1XCA7CivlkI3lrpvkurogPCBuYWF0ZW5pblwgOwor5ZKM5rCX6Je56Je5IDwgd2FraWFpYWlcIDsKK+iHqueUseipqSA8IGppeXV1c2hpXCA7Civlu4PniakgPCBoYWlidXRzdVwgOwor5YWs6L+wIDwga291anV0c3VcIDsKK+W/oOS/oSA8IGNodXVzaGluXCA7Civnmq7os6ogPCBoaXNoaXRzdVwgOwor55+z5paHIDwgaXNoaWJ1bWlcIDsKK+W9ouW8jyA8IGtlaXNoaWtpXCA7Civlh4vokL0gPCBjaG91cmFrdVwgOwor5oSP5b+X55qEIDwgaXNoaXRla2lcIDsKK+WNuOWApCA8IG9yb3NoaW5lXCA7CivmiKbpl5jlk6EgPCBzZW50b3VpblwgOwor5Y6f55S75YOPIDwgZ2VuZ2F6b3VcIDsKK+efreaXpSA8IHRhbmppdHN1XCA7CivmsLTlhYggPCBtaXp1c2FraVwgOwor5be36KqsIDwga291c2V0c3VcIDsKK+Wkp+iFv+mDqCA8IGRhaXRhaWJ1XCA7CivlhbHou5sgPCBreW91eWFrdVwgOwor6buS44CFIDwga3Vyb2d1cm9cIDsKK+WJpeeEvCA8IHN1a2l5YWtpXCA7Civmu4vos4DnnIwgPCBzaGlnYWtlblwgOwor6YeN5rC057SgIDwganV1c3Vpc29cIDsKK+mAouedgCA8IGhvdWNoYWt1XCA7Civlu4PnhrEgPCBoYWluZXRzdVwgOwor5Lq66YCg5rmWIDwgamluem91a29cIDsKK+W9ueWuhSA8IHlha3V0YWt1XCA7CivliLDnnYAgPCB0b3VjaGFrdVwgOwor6KuL6LKg5birIDwgdWtlb2lzaGlcIDsKK+iMueibuCA8IHl1ZGVkYWtvXCA7CivmsLTmupblmaggPCBzdWlqdW5raVwgOwor5ryr55S75pysIDwgbWFuZ2Fob25cIDsKK+S4jeecn+mdouebriA8IGZ1bWFqaW1lXCA7Civlho3oqqwgPCBzYWlzZXRzdVwgOwor6YCj55m6IDwgcmVucGF0c3VcIDsKK+W+qeWUsSA8IGZ1a3VzaG91XCA7Civnn6Xml6UgPCBjaGluaWNoaVwgOwor5b605Y+OIDwgY2hvdXNodXVcIDsKK+WLheaSsCA8IGNob2t1c2VuXCA7CivkupLmj5vmgKcgPCBnb2thbnNlaVwgOwor5YiG56+AIDwgYnVuc2V0c3VcIDsKK+mFjeWIlyA8IGhhaXJldHN1XCA7CivnqK7nqK7nm7ggPCBzaHVqdXNvdVwgOwor5Yem572wIDwgc2hvYmF0c3VcIDsKK+S6iOmYsuazlSA8IHlvYm91aG91XCA7Civlronlhajnga8gPCBhbnplbnRvdVwgOwor5q205pydIDwgcmVraWNob3VcIDsKK+WKh+avkiA8IGdla2lkb2t1XCA7Civov73nqbYgPCB0c3Vpa3l1dVwgOwor5q2z5pyrIDwgc2FpbWF0c3VcIDsKK+aoqui7uCA8IHlva29qaWt1XCA7CivliIbnrYYgPCBidW5waXRzdVwgOwor6Lyv6YyyIDwgc2h1dXJva3VcIDsKK+WNiuWPoyA8IGhhbmt1Y2hpXCA7CivpgYvpgIHkurogPCB1bnNvdW5pblwgOwor5Y2B5ZOyIDwganV0dGV0c3VcIDsKK+eZvumBuCA8IGh5YWt1c2VuXCA7CivkuIrpppblsL4gPCBqb3VzaHViaVwgOwor5LuP6IiO5YipIDwgYnVzc2hhcmlcIDsKK+iIh+WkquiAhSA8IHlvdGFtb25vXCA7CivmuoDlpKnkuIsgPCBtYW50ZW5rYVwgOwor5b6X5omL5Yud5omLIDwgZXRla2F0dGVcIDsKK+WFiOmHkSA8IHNha2lnYW5lXCA7Civou73po58gPCBrZWlzaG9rdVwgOwor5YiG56uLIDwgYnVucml0c3VcIDsKK+S+oeagvOW3riA8IGtha2FrdXNhXCA7CivlhoXoqLMgPCB1Y2hpd2FrZVwgOwor6L+956aPIDwgdHN1aWZ1a3VcIDsKK+eEoeiKseaenCA8IGljaGlqaWt1XCA7CivmrLLmt7EgPCB5b2t1YnVrYVwgOwor5LiN5Lq65oOFIDwgZnVuaW5qb3VcIDsKK+Wcn+W7uuWxiyA8IGRva2VuJyd5YVwgOwor5q2q5puyIDwgd2Fpa3lva3VcIDsKK+WFpei2hSA8IG55dXVjaG91XCA7CivlibLms6ggPCB3YXJpY2h1dVwgOwor5rCR5YqbIDwgbWlucnlva3VcIDsKK+mBruaWreapnyA8IHNoYWRhbmtpXCA7CivkubHmna3mra8gPCByYW5ndWliYVwgOwor6J2L57Sw5belIDwgcm91emFpa3VcIDsKK+WMl+WjgSA8IGhva3VoZWtpXCA7Civns5zniJvmgKcgPCBiaXJhbnNlaVwgOwor6LK05YWs5a2QIDwga2lrb3VzaGlcIDsKK+W7g+a7hSA8IGhhaW1ldHN1XCA7CivmsLTkuIogPCBtaW5ha2FtaVwgOwor5Yid55uGIDwgaGF0c3Vib25cIDsKK+W7ieS+oeeJiCA8IHJlbmthYmFuXCA7CivmraPmnK0gPCBzaG91ZnVkYVwgOwor5YWl6LOeIDwgbnl1dXNob3VcIDsKK+WFiOmBlCA8IHNlbmRhdHN1XCA7CivmraLmnKggPCB0b21hcmlnaVwgOwor552A55y8IDwgY2hha3VnYW5cIDsKK+WIneeZuiA8IHNob2hhdHN1XCA7Civljp/lrZDngokgPCBnZW5zaGlyb1wgOwor6Lui5o+b54KJIDwgdGVua2Fucm9cIDsKK+m7juaYjuacnyA8IHJlaW1laWtpXCA7Civou5/pqqggPCBuYW5rb3RzdVwgOwor6I+W6JKy5rmvIDwgc2hvdWJ1eXVcIDsKK+eEoemnhOmqqCA8IG11ZGFib25lXCA7CivpoZ7kvLzlk4EgPCBydWlqaWhpblwgOwor6aOb6KGM6ZqKIDwgaGlrb3V0YWlcIDsKK+W9k+WxgCA8IHRvdWt5b2t1XCA7CivmrrrlrrMgPCBzYXRzdWdhaVwgOwor6YeR6bOz6IqxIDwga2lucG91Z2VcIDsKK+m7kumbsuavjSA8IGt1cm91bm1vXCA7CivokL3mjowgPCByYWt1c2hvdVwgOwor55u45omL5pa5IDwgYWl0ZWdhdGFcIDsKK+S4jeWujOWFqCA8IGZ1a2FuemVuXCA7CivlvLflvLEgPCBreW91amFrdVwgOwor5b+D5LitIDwgc2hpbmNodXVcIDsKK+elluWbveaEmyA8IHNva29rdWFpXCA7CivlubPnmr8gPCBoaXJhemFyYVwgOwor5Yuf6ZuG6LK7IDwgYm9zaHV1aGlcIDsKK+WIneeUoyA8IGhhdHN1emFuXCA7CivluLjnt5EgPCBqb3VyeW9rdVwgOwor55Sf55Sj6LK7IDwgc2Vpc2FuaGlcIDsKK+e1seWQiOWMliA8IHRvdWdvdWthXCA7Civml4XooYzlrrYgPCByeW9rb3VrYVwgOwor56S+5aSW56eYIDwgc2hhZ2FpaGlcIDsKK+WNl+S7jyA8IG5hbmZ1dHN1XCA7CivlvpPkvqHnqI4gPCBqdXVrYXplaVwgOwor5Y2B5YWrIDwganV1aGFjaGlcIDsKK+S9v+W+kuabuCA8IHNoaXRvc2hvXCA7Civpganmpa0gPCB0ZWtpZ3lvdVwgOwor6ayx6ayxIDwgdXRzdXV0c3VcIDsKK+i/veeZvSA8IHRzdWloYWt1XCA7CivlvpPljZIgPCBqdXVzb3RzdVwgOwor5b6h5YagIDwgb2thbm11cmlcIDsKK+W+i+WRgiA8IHJpdHN1cnlvXCA7CivovqPohZUgPCByYXRzdXdhblwgOwor552A55SoIDwgY2hha3V5b3VcIDsKK+mAhueUqCA8IGd5YWt1eW91XCA7CivpgIbnlKMgPCBneWFrdXphblwgOwor5YWt6KaqIDwgcm9rdXNoaW5cIDsKK+W+jOWPoyA8IGF0b2t1Y2hpXCA7Civlr53ljJbnsqcgPCBuZWdlc2hvdVwgOwor5Ym15LiW5pyfIDwgc291c2Vpa2lcIDsKK+mHkeebrumvmyA8IGtpbm1lZGFpXCA7CivljZjkuIAgPCB0YW4nJ2l0c3VcIDsKK+W4r+e3kSA8IHRhaXJ5b2t1XCA7Civnn7PlvJMgPCBpc2hpeXVtaVwgOwor6YG45puyIDwgc2Vua3lva3VcIDsKK+mAmueJkiA8IHRzdXVjaG91XCA7CivkuIrkuIvnt5ogPCBqb3VnZXNlblwgOwor55CG5LqL5Zu9IDwgcmlqaWtva3VcIDsKK+awtOa6luWEgCA8IHN1aWp1bmdpXCA7Civlho3kv53pmbogPCBzYWlob2tlblwgOwor55yM56uLIDwga2Vucml0c3VcIDsKK+WIpeeKtiA8IGJldHN1am91XCA7CivkuIvppqzlhYggPCBnZWJhc2FraVwgOwor5YeN57WQIDwgdG91a2V0c3VcIDsKK+WvhOS7mOihjOeCuiA8IGtpZnVrb3VpXCA7Civms4nosqjntJkgPCBzZW5rYXNoaVwgOwor5b6h5Luk5ayiIDwgZ29yZWlqb3VcIDsKK+W3neidiSA8IGthd2FzZW1pXCA7Civpg7flm70gPCBreW91a29rdVwgOwor6L+955SzIDwgdHN1aXNoaW5cIDsKK+mbu+awl+ihlyA8IGRlbmtpZ2FpXCA7CivnoILlsbEgPCBzdW5heWFtYVwgOwor5b6L5YuVIDwgcml0c3Vkb3VcIDsKK+ato+aOpSA8IHNlaXNldHN1XCA7Civov6vnnJ8gPCBoYWt1c2hpblwgOwor6LuN5pS/6YOoIDwgZ3Vuc2VpYnVcIDsKK+W+oemhjOebriA8IG9kYWltb2t1XCA7CivnnIHnrYYgPCBzZWloaXRzdVwgOwor5byf5b6hIDwgb3RvdXRvZ29cIDsKK+WHhOe1tiA8IHNlaXpldHN1XCA7CivlvozliJcgPCBrb3VyZXRzdVwgOwor54Sh5L+d6Ki8IDwgbXVob3Nob3VcIDsKK+WPr+WIhuaApyA8IGthYnVuc2VpXCA7CivkupzpiZvpiYQgPCBhZW50ZXRzdVwgOwor5YuV5a6J5a6aIDwgZG91YW50ZWlcIDsKK+W5tOeOhyA8IG5lbnJpdHN1XCA7CivliJHkuovkuIogPCBrZWlqaWpvdVwgOwor5aWz5oCn55SoIDwgam9zZWl5b3VcIDsKK+WGl+iIjCA8IGpvdXpldHN1XCA7CivmqJnoqLsgPCBoeW91Y2h1dVwgOwor55yf55m9IDwgbWFzc2hpcm9cIDsKK+WFuOiWrCA8IHRlbicneWFrdVwgOwor5Lm+54el54KJIDwga2Fuc291cm9cIDsKK+W8seWwkSA8IGpha3VzaG91XCA7CivogrLlhZDms5UgPCBpa3VqaWhvdVwgOwor55u0562UIDwgY2hva3V0b3VcIDsKK+efs+WxsSA8IGlzaGl5YW1hXCA7CivojJzoibIgPCBha2FuZWlyb1wgOwor55m66KiAIDwgaGF0c3VnZW5cIDsKK+aEm+mzpeWutiA8IGFpY2hvdWthXCA7CivmnKzoiJ7lj7AgPCBob25idXRhaVwgOwor5YCL5Lq65oCnIDwga29qaW5zZWlcIDsKK+W8k+W9oiA8IHl1bWluYXJpXCA7Civlia/mnKggPCBmdWt1Ym9rdVwgOwor5L6d5a2Y55eHIDwgaXpvbnNob3VcIDsKK+ecn+eXhyA8IHNoaW5zaG91XCA7CivliqPmg4UgPCByZXRzdWpvdVwgOwor5oKq5oCn5bqmIDwgYWt1c2VpZG9cIDsKK+WGpee9sCA8IG1laWJhdHN1XCA7CivnpZ7jgIUgPCBrYW1pZ2FtaVwgOwor5Yqj5oKqIDwgcmV0c3Vha3VcIDsKK+muruihgCA8IHNlbmtldHN1XCA7Civnvo7nlLflrZAgPCBiaW5hbnNoaVwgOwor5b255YmyIDwgeWFrdXdhcmlcIDsKK+efs+WupCA8IGlzaGltdXJvXCA7Civoi6XooYYgPCB3YWthc2h1dVwgOwor5q+N5ZCbIDwgaGFoYWdpbWlcIDsKK+mbu+azouazlSA8IGRlbnBhaG91XCA7Civou43kuovkuIogPCBndW5qaWpvdVwgOwor5bmz54axIDwgaGVpbmV0c3VcIDsKK+ebtOeojiA8IGNob2t1emVpXCA7Civov5HnnYAgPCBraW5jaGFrdVwgOwor6YGT5p2/IDwgbWljaGlpdGFcIDsKK+eDj+eKgOinkiA8IHVzYWlrYWt1XCA7Civnn6nlsLogPCBrYW5lamFrdVwgOwor5YGP5b6u5YiGIDwgaGVuYmlidW5cIDsKK+e0oOWvkuiypyA8IHN1a2FucGluXCA7CivosZrlsI/lsYsgPCBidXRhZ295YVwgOwor5bu25rue56iOIDwgZW50YWl6ZWlcIDsKK+mBuOaKnCA8IHNlbmJhdHN1XCA7CivlhqXnjovmmJ8gPCBtZWlvdXNlaVwgOwor5YaG55uk54q2IDwgZW5iYW5qb3VcIDsKK+eZveifuyA8IHNoaXJvYXJpXCA7CivlvLflpaogPCBnb3VkYXRzdVwgOwor6JS15pu45a62IDwgem91c2hva2FcIDsKK+mMsumfs+apnyA8IHJva3VvbmtpXCA7CivpgY7oiKzmnaUgPCBrYWhhbnJhaVwgOwor6ZGa5a2U5qmfIDwgc2Fua291a2lcIDsKK+S4gOiIrOS6uiA8IGlwcGFuamluXCA7CivliLrmrrogPCBzaGlzYXRzdVwgOwor5Yeh55m+IDwgYm9ucHlha3VcIDsKK+W+i+S7pCA8IHJpdHN1cmVpXCA7Civnm7jmiYvlvbkgPCBhaXRleWFrdVwgOwor5YaF6IW/IDwgdWNoaW1vbW9cIDsKK+atqeWQiOe1piA8IGJ1YWlreXV1XCA7CivkupXmiLjntrEgPCBpZG9kenVuYVwgOwor5pei55+l5pWwIDwga2ljaGlzdXVcIDsKK+i7jemWpSA8IGd1bmJhdHN1XCA7Civlt6Xli5nlupcgPCBrb3VtdXRlblwgOwor5bmj54mpIDwgaGVpbW90c3VcIDsKK+mAuOalvSA8IGl0c3VyYWt1XCA7CivpgJ/msbogPCBzb2trZXRzdVwgOwor5YyX5YG0IDwgaG9rdXNva3VcIDsKK+S4gOacsemKgCA8IGlzc2h1Z2luXCA7CivlvavliLsgPCBjaG91a29rdVwgOwor6YCG5r2uIDwgc2FrYXNoaW9cIDsKK+egsuWIlyA8IGhvdXJldHN1XCA7CivoiKrnqbrmqZ8gPCBrb3VrdXVraVwgOwor6buS57m75a2QIDwga3Vyb2p1c3VcIDsKK+eZu+iomOaJgCA8IHRvdWtpc2hvXCA7CivmraPlvI8gPCBzZWlzaGlraVwgOwor6YGp5pmC5omTIDwgdGVraWppZGFcIDsKK+WGoOe1tiA8IGthbnpldHN1XCA7Civmrr/ljp8gPCB0b25vYmFyYVwgOwor5Ye454q2IDwgdG90c3Vqb3VcIDsKK+WQiOeQhuaApyA8IGdvdXJpc2VpXCA7CivpgZTmlocgPCB0YXRzdWJ1blwgOwor5b6B5LyQIDwgc2VpYmF0c3VcIDsKK+W5u+a7hSA8IGdlbm1ldHN1XCA7CivlvL7lnKcgPCBkYW4nJ2F0c3VcIDsKK+i7vei7vSA8IGthcnVnYXJ1XCA7CivpmbDpm7vlrZAgPCBpbmRlbnNoaVwgOwor5YWF6KGAIDwganV1a2V0c3VcIDsKK+WGheiBtyA8IG5haXNob2t1XCA7Civliqnli5XoqZ4gPCBqb2RvdXNoaVwgOwor5oWw6JeJ5paZIDwgaXNoYXJ5b3VcIDsKK+i7n+mJhCA8IG5hbnRldHN1XCA7CivooZvnlJ/lhbUgPCBlaXNlaWhlaVwgOwor55+z5aKoIDwgc2VraWJva3VcIDsKK+S9jueJqeS+oSA8IHRlaWJ1a2thXCA7CivlgIvkurrlsZUgPCBrb2ppbnRlblwgOwor5a6f5L2T5YyWIDwgaml0dGFpa2FcIDsKK+WIpOaxuiA8IGhhbmtldHN1XCA7Civnn63lpJwgPCBtaWppa2F5b1wgOwor5by35ZynIDwga3lvdWF0c3VcIDsKK+mCqumtlOiAhSA8IGphbWFtb25vXCA7CivlubPmu5EgPCBoZWlrYXRzdVwgOwor6ayi6ZW3IDwgYmluJyduYWdhXCA7CivnsbPorbDkvJogPCBiZWlnaWthaVwgOwor54Sh5bC96JS1IDwgbXVqaW56b3VcIDsKK+WGhue9kCA8IG1hcnVnYW1hXCA7Civnm7Tnm7QgPCBqaWtpamlraVwgOwor5be757SZIDwgbWFraWdhbWlcIDsKK+WFvOiBtyA8IGtlbnNob2t1XCA7Civou6Lmj5vmnJ8gPCB0ZW5rYW5raVwgOwor5qyg5paHIDwga2V0c3VidW5cIDsKK+S7o+itsOWjqyA8IGRhaWdpc2hpXCA7CivpvLvmv4Hpn7MgPCBiaWRha3VvblwgOwor5Yas56m6IDwgZnV5dXpvcmFcIDsKK+mBheaXpSA8IGNoaWppdHN1XCA7CivliKXmrr8gPCBiZXRzdWRlblwgOwor5Yil5q61IDwgYmV0c3VkYW5cIDsKK+mAhua1qiA8IHNha2FuYW1pXCA7Civnmb3ok64gPCBieWFrdXJlblwgOwor55+z5Z6jIDwgaXNoaWdha2lcIDsKK+mrmOmbu+S9jSA8IGtvdWRlbicnaVwgOwor5oyB5Y+C6YeRIDwgamlzYW5raW5cIDsKK+WUr+eQhuirliA8IHl1aXJpcm9uXCA7Civou7jotrMgPCBqaWt1YXNoaVwgOwor5ZCN5pyb5a62IDwgbWVpYm91a2FcIDsKK+WkmuWFg+irliA8IHRhZ2Vucm9uXCA7Civnm67nmoQgPCBtb2t1dGVraVwgOwor6JCp5bGeIDwgaGFnaXpva3VcIDsKK+iHquajhOezniA8IHlha2VrdXNvXCA7CivmraPnrKblj7cgPCBzZWlmdWdvdVwgOwor54Sh55Sj6ICFIDwgbXVzYW5zaGFcIDsKK+mAn+alrSA8IGhheWF3YXphXCA7CivogrLlhZDmm7ggPCBpa3VqaXNob1wgOwor5biC56uLIDwgc2hpcml0c3VcIDsKK+iLpeiNiSA8IHdha2FrdXNhXCA7CivlrprmnJ/oiLkgPCB0ZWlraXNlblwgOwor552A5rC0IDwgY2hha3VzdWlcIDsKK+aJi+W8geW9kyA8IHRlYmVudG91XCA7Civkub7nh6XmqZ8gPCBrYW5zb3VraVwgOwor5LiJ5pel6ZaTIDwgbWlra2FrYW5cIDsKK+WNgeS6jOWIhiA8IGp1dW5pYnVuXCA7CivnqL3lj6Tlj7AgPCBrZWlrb2RhaVwgOwor6Lui6L2NIDwgdGVudGV0c3VcIDsKK+mwkOeariA8IHdhbmlnYXdhXCA7CivmraLlrr8gPCBzaGlzaHVrdVwgOwor6Iq46KGTIDwgZ2VpanV0c3VcIDsKK+WFiOmgreS8jSA8IHNlbnRvdWdvXCA7CivmraPlrpcgPCBtYXNhbXVuZVwgOwor5qiq6IW5IDwgeW9rb2JhcmFcIDsKK+WGl+ethiA8IGpvdWhpdHN1XCA7CivlhazogbcgPCBrb3VzaG9rdVwgOwor5ZCE44CFIDwgc29yZXpvcmVcIDsKK+WIg+a4oSA8IGhhd2F0YXJpXCA7Civps6nlsL4gPCBtaXpvb2NoaVwgOwor5Ye65p2l6auYIDwgZGVraWRha2FcIDsKK+WHuua8lCA8IHNodXRzdWVuXCA7CivpganlvbkgPCB0ZWtpeWFrdVwgOwor6Lqr6ZW3IDwgc2hpbmNob3VcIDsKK+S4ieS4luebuCA8IHNhbnplc291XCA7CivlipvlraYgPCByaWtpZ2FrdVwgOwor6Imy6YGTIDwgc2hpa2lkb3VcIDsKK+eZvuiKuCA8IGh5YWt1Z2VpXCA7CivkuY7lj6TmraLngrkgPCBva290b3RlblwgOwor5Yui5YqbIDwgc2Vpcnlva3VcIDsKK+iIuemciiA8IGZ1bmFkYW1hXCA7CivpgYvmoLnpiI0gPCB1bmtvbmRvblwgOwor56CC5Y6fIDwgc3VuYWhhcmFcIDsKK+W9juWFpSA8IHdhbicnbnl1dVwgOwor6KGb55Sf5LiKIDwgZWlzZWlqb3VcIDsKK+WItuacrSA8IHNlaXNhdHN1XCA7Civmpb3plbcgPCBnYWt1Y2hvdVwgOwor55u055CDIDwgY2hva2t5dXVcIDsKK+WMu+WtpuWjqyA8IGlnYWt1c2hpXCA7Civoq4vosqDkurogPCB1a2VvaW5pblwgOwor5qW16ZmQIDwga3lva3VnZW5cIDsKK+muq+iGmiA8IHNhbWVoYWRhXCA7Civmlq3pnaLlm7MgPCBkYW5tZW56dVwgOwor55m66ImyIDwgaGFzc2hva3VcIDsKK+iZmuS7rueMvyA8IGtva2V6YXJ1XCA7CivmnKrkvb/nlKggPCBtaXNoaXlvdVwgOwor6Zu75rOi5pifIDwgZGVucGFzZWlcIDsKK+iRrOWIlyA8IHNvdXJldHN1XCA7Civli4XllY8gPCBjaG9rdW1vblwgOwor5by+5YqbIDwgZGFucnlva3VcIDsKK+W8j+WgtCA8IHNoaWtpam91XCA7Civpq5jpq5ggPCB0YWthZGFrYVwgOwor6Z+z6Z+76KuWIDwgb24nJ2lucm9uXCA7CivlibLlvJUgPCB3YXJpYmlraVwgOwor5qmf5qKw5belIDwga2lrYWlrb3VcIDsKK+assuW/gyA8IHlva3VzaGluXCA7Civlho3lsIHpjpYgPCBzYWlmdXVzYVwgOwor5YmU5oqJIDwgdGVra2V0c3VcIDsKK+mYsuazouWgpCA8IGJvdWhhdGVpXCA7CivmrLLlvpcgPCB5b2t1dG9rdVwgOwor6YGL6Lui5omLIDwgdW50ZW5zaHVcIDsKK+muruiCiSA8IHNlbicnbmlrdVwgOwor6YCG5qeYIDwgc2FrYXNhbWFcIDsKK+mAsuaSgyA8IHNoaW5nZWtpXCA7CivkuonopofmiKYgPCBzb3VoYXNlblwgOwor6buS5paH5a2XIDwga3Vyb21vamlcIDsKK+eEoemnhOi2syA8IG11ZGFhc2hpXCA7Civli5XlipsgPCBkb3VyeW9rdVwgOwor5YuF5ZG9IDwgY2hva3VtZWlcIDsKK+edgOeJqeWcsCA8IGtpbW9ub2ppXCA7CivlpJbmsJflnI8gPCBnYWlraWtlblwgOwor5Yeb54OIIDwgcmlucmV0c3VcIDsKK+mWi+S8muaXpSA8IGthaWthaWJpXCA7CivnlLHmnaXmm7ggPCB5dXJhaXNob1wgOwor5q2m5aOrIDwgbW9ub25vZnVcIDsKK+m1neWPo+eYoSA8IGdha291c291XCA7CivmrrrkurogPCBzYXRzdWppblwgOwor5YOt6LaKIDwgc2VuJydldHN1XCA7CivpgKPml6UgPCByZW5qaXRzdVwgOwor5q2j5aSiIDwgbWFzYXl1bWVcIDsKK+S5vueHpeaenCA8IGthbnNvdWthXCA7CivliLfmlbAgPCBzYXRzdXN1dVwgOwor6LuL6L2iIDwgYXRzdXJla2lcIDsKK+WuieWFqOaApyA8IGFuemVuc2VpXCA7CivlhLLok4QgPCBjaG9jaGlrdVwgOwor5a+M5aOr5LqU5rmWIDwgZnVqaWdva29cIDsKK+WGhueqkyA8IG1hcnVtYWRvXCA7Civoi6XogIUgPCB3YWthbW9ub1wgOwor6LuK6L2EIDwgc2hha2F0c3VcIDsKK+aBkOOAhSA8IGtvd2Fnb3dhXCA7CivpgJrmmoEgPCB0c3V1Z3lvdVwgOwor5YmN5omVIDwgbWFlYmFyYWlcIDsKK+eZvuiBniA8IGh5YWt1YnVuXCA7CivmmK/mmK/pnZ7pnZ4gPCB6ZXplaGloaVwgOwor55m66IKyIDwgaGF0c3Vpa3VcIDsKK+mAkOadoSA8IGNoaWt1am91XCA7Civnm4rnm4ogPCBtYXN1bWFzdVwgOwor5qiq57ieIDwgeW9rb2ppbWFcIDsKK+mBlOW8gSA8IHRhdHN1YmVuXCA7CivmoITppIrlo6sgPCBlaXlvdXNoaVwgOwor5Y+w5biD5be+IDwgZGFpYnVraW5cIDsKK+W3o+eqnyA8IHNvdWt1dHN1XCA7Civlt53nrYsgPCBrYXdhc3VqaVwgOwor5qeL5oiQ5ZOhIDwga291c2VpaW5cIDsKK+WFjeiBtyA8IG1lbnNob2t1XCA7CivmqKHnr4TnlJ8gPCBtb2hhbnNlaVwgOwor6aeG5YuV6LyqIDwga3Vkb3VyaW5cIDsKK+WLh+WKmyA8IHl1dXJ5b2t1XCA7Civlt53nq68gPCBrYXdhYmF0YVwgOwor5YuB5Y2SIDwga2Vpc290c3VcIDsKK+adsea0i+WPsiA8IHRveW9mdW1pXCA7CivlhoXnpZ0gPCB1Y2hpaXdhaVwgOwor6I2J54mpIDwga3VzYW1vbm9cIDsKK+Wys+m6kyA8IGdha3Vyb2t1XCA7CivliIbmpbUgPCBidW5reW9rdVwgOwor5qeN6KGTIDwgc291anV0c3VcIDsKK+mAo+aOpSA8IHJlbnNldHN1XCA7CivljZjnsr7luqYgPCB0YW5zZWlkb1wgOwor54Gr5pyo5ZyfIDwga2Ftb2t1ZG9cIDsKK+S7o+itsOWItiA8IGRhaWdpc2VpXCA7CivmnKrlrprnqL8gPCBtaXRlaWtvdVwgOwor5YWl57GNIDwgbnl1dXNla2lcIDsKK+S4luipseeJqSA8IHNld2Ftb25vXCA7Civlia/lr6kgPCBmdWt1c2hpblwgOwor55+l5YqbIDwgY2hpcnlva3VcIDsKK+WJsuWuiSA8IHdhcml5YXN1XCA7Civlh6bmsbogPCBzaG9rZXRzdVwgOwor5bm05pyrIDwgbmVubWF0c3VcIDsKK+W5vuaXpSA8IGlrdW5pY2hpXCA7CivlubTmnIggPCBuZW5nZXRzdVwgOwor5YiH5qCqIDwga2lyaWthYnVcIDsKK+WKueWKmyA8IGtvdXJ5b2t1XCA7CivoprPmiKboqJggPCBrYW5zZW5raVwgOwor5aSp55Oc57KJIDwgdGVua2FmdW5cIDsKK+mquOmqqCA8IGdhaWtvdHN1XCA7CivlvaLmiJDmnJ8gPCBrZWlzZWlraVwgOwor5pS+5pig5qipIDwgaG91ZWlrZW5cIDsKK+W8j+WPsCA8IHNoaWtpZGFpXCA7Civnm6PoppbmiYAgPCBrYW5zaGlqb1wgOwor6aqo6bGXIDwga290c3VyaW5cIDsKK+W+oeacrOWwiiA8IGdvaG9uem9uXCA7CivljZjntJTljJYgPCB0YW5qdW5rYVwgOwor5YCL5Lq65ZCNIDwga29qaW5tZWlcIDsKK+aknOecvOWMuyA8IGtlbmdhbicnaVwgOwor5YaN55m6IDwgc2FpaGF0c3VcIDsKK+atu+WKmyA8IHNoaXJ5b2t1XCA7CivmnKrouI/ls7AgPCBtaXRvdWhvdVwgOwor5Yq05YqbIDwgcm91cnlva3VcIDsKK+aoquetiyA8IHlva29zdWppXCA7Civmlq3mlq3lm7ogPCBkYW5kYW5rb1wgOwor5beM56qfIDwgZ2Fua3V0c3VcIDsKK+WGrOeJqSA8IGZ1eXVtb25vXCA7CivpgIbmlbAgPCBneWFrdXN1dVwgOwor5YWO57ayIDwgdXNhZ2lhbWlcIDsKK+aaluaIv+WZqCA8IGRhbmJvdWtpXCA7Civnmb3ns7ggPCBzaGlyYWl0b1wgOwor5q275YilIDwgc2hpYmV0c3VcIDsKK+WIh+acrSA8IGtpcmlmdWRhXCA7CivmlqHml4vogIUgPCBhc3NlbnNoYVwgOwor5YiH5pybIDwgc2V0c3Vib3VcIDsKK+W5s+aXpSA8IGhlaWppdHN1XCA7Civlt6bnm64gPCBoaWRhcmltZVwgOwor6Lu96JSRIDwga2VpYmV0c3VcIDsKK+S7j+eUn+S8miA8IGJ1c3Nob3VlXCA7CivliaPlrqIgPCBrZW5reWFrdVwgOwor5YaF55m6IDwgbmFpaGF0c3VcIDsKK+imj+agvOWMliA8IGtpa2FrdWthXCA7Civlj7jku6Tpg6ggPCBzaGlyZWlidVwgOwor5oSP5Yyg5qipIDwgaXNob3VrZW5cIDsKK+iKi+iZqyA8IGltb211c2hpXCA7CivmpIvps6UgPCBtdWt1ZG9yaVwgOwor5bmz5pS/IDwgaGlyYW1hc2FcIDsKK+WwiuaVrOiqniA8IHNvbmtlaWdvXCA7Civpqqjpq4QgPCBrb3RzdXp1aVwgOwor5b2i5oWL57SgIDwga2VpdGFpc29cIDsKK+ebrua4rCA8IG1va3Vzb2t1XCA7CivlhYPnt6AgPCBtb3RvamltZVwgOwor5oiR5Yip5oiR5YipIDwgZ2FyaWdhcmlcIDsKK+efs+S6gCA8IGlzaGlnYW1lXCA7CivlhYjntLAgPCBzYWtpYm9zb1wgOwor5YuF5Lu7IDwgY2hva3VuaW5cIDsKK+efm+WFiCA8IGhva29zYWtpXCA7Civnvo7lsJHlpbMgPCBiaXNob3Vqb1wgOwor5bqm5bqmIDwgdGFiaXRhYmlcIDsKK+WGhumBi+WLlSA8IGVuJyd1bmRvdVwgOwor5YuF5LukIDwgY2hva3VyZWlcIDsKK+WFiOe0hCA8IHNlbicneWFrdVwgOwor6LGh54mZ6ImyIDwgem91Z2Vpcm9cIDsKK+iQqeWOnyA8IGhhZ2l3YXJhXCA7CivlhaXnpZ4gPCBueXV1c2hpblwgOwor5q2v5YiXIDwgc2hpcmV0c3VcIDsKK+WIh+aWrSA8IHNldHN1ZGFuXCA7Civlu4Plq6EgPCBoYWljaGFrdVwgOwor5q2q5YqbIDwgd2Fpcnlva3VcIDsKK+W8j+WFuCA8IHNoaWtpdGVuXCA7CivoqLHlj6/mm7ggPCBreW9rYXNob1wgOwor6L+95pKDIDwgdHN1aWdla2lcIDsKK+WVhuitsOWToSA8IHNob3VnaWluXCA7CivlvqHkuIDmlrAgPCBnb2lzc2hpblwgOwor6IqL6JSTIDwgaW1vZHp1cnVcIDsKK+aEieW/q+eKryA8IHl1a2FpaGFuXCA7Civlt7vniakgPCBtYWtpbW9ub1wgOwor5oyH56S65p2/IDwgc2hpamliYW5cIDsKK+ebuOauuiA8IHNvdXNhdHN1XCA7CivlhpfniakgPCBqb3VidXRzdVwgOwor6YmE5bel5omAIDwgdGVra291am9cIDsKK+WJjeWxiCA8IHplbmt1dHN1XCA7CivliLPlvaIgPCBrdXJpa2F0YVwgOwor57WM5Za26ZujIDwga2VpZWluYW5cIDsKK+ato+WJsiA8IHNlaWthdHN1XCA7Civouo3pgLIgPCB5YWt1c2hpblwgOwor5byB5YilIDwgYmVuYmV0c3VcIDsKK+mZsOmZveW4qyA8IG9uJyd5b3VqaVwgOwor5o+b5rCX5omHIDwga2Fua2lzZW5cIDsKK+mdnuWQiOazlSA8IGhpZ291aG91XCA7Civpo5vooYzoiYcgPCBoaWtvdXRlaVwgOwor552A5omLIDwgY2hha3VzaHVcIDsKK+mjm+ihjOiIuSA8IGhpa291c2VuXCA7CivntYzllrbpmaMgPCBrZWllaWppblwgOwor5b6h5p2l5YWJIDwgZ29yYWlrb3VcIDsKK+S4jeaWreiNiSA8IGZ1ZGFuc291XCA7CivojLbmvKwgPCBjaGFkenVrZVwgOwor55WZ6bOlIDwgcnl1dWNob3VcIDsKK+aghOmkiuWJpCA8IGVpeW91emFpXCA7CivoiLnotrMgPCBmdW5hYXNoaVwgOwor6YCj6Y6W5bqXIDwgcmVuc2F0ZW5cIDsKK+WFteeVpSA8IGhlaXJ5YWt1XCA7Civnmb3npaggPCBoYWt1aHlvdVwgOwor5YW15rOV5a62IDwgaGVpaG91a2FcIDsKK+mgu+W6puaVsCA8IGhpbmRvc3V1XCA7Civos4fmnKzlrrYgPCBzaGlob25rYVwgOwor5YGP6aOfIDwgaGVuc2hva3VcIDsKK+acgOWPs+e/vCA8IHNhaXV5b2t1XCA7CivmoITppIrliIYgPCBlaXlvdWJ1blwgOwor5q2M5ZCIIDwgdXRhYXdhc2VcIDsKK+i6kei6hSA8IHRzdXRzdWppXCA7CivmrYzlj6MgPCB1dGFndWNoaVwgOwor6bC55pyoIDwga2F0c3VvZ2lcIDsKK+i/q+aSgyA8IGhha3VnZWtpXCA7Civlj6/lh6bliIYgPCBrYXNob2J1blwgOwor5rGy44CFIDwga3l1dWt5dXVcIDsKK+iSmeWPpOaWkSA8IG1vdWtvaGFuXCA7CivliJ3mgYsgPCBoYXRzdWtvaVwgOwor5YWI56iLIDwgc2FraWhvZG9cIDsKK+iIueizgyA8IGZ1bmFjaGluXCA7CivojLbmuIsgPCBjaGFzaGlidVwgOwor6YCP5b65IDwgdG91dGV0c3VcIDsKK+eXhei6qyA8IGJ5b3VzaGluXCA7Civlr5LnqL3lj6QgPCBrYW5nZWlrb1wgOwor56ys5LiJ57SAIDwgZGFpc2Fua2lcIDsKK+amguiqrCA8IGdhaXNldHN1XCA7CivluorlupcgPCB0b2tvbWlzZVwgOwor56CC6aKo5ZGCIDwgc3VuYWJ1cm9cIDsKK+mBi+i7ouWjqyA8IHVudGVuc2hpXCA7CivnrKzkuIDnt5ogPCBkYWlpc3NlblwgOwor6Imv6JasIDwgcnlvdXlha3VcIDsKK+asoOWgtCA8IGtldHN1am91XCA7CivliIfmiLsgPCBzZXRzdXJhaVwgOwor5qiZ55+zIDwgaHlvdXNla2lcIDsKK+WBvemHkSA8IG5pc2VnYW5lXCA7Civnm67mqJkgPCBtb2t1aHlvdVwgOwor6YqA6KGM5a62IDwgZ2lua291a2FcIDsKK+WKm+WAhiA8IHJpa2lyeW91XCA7CivpgbjliKUgPCBzZW5iZXRzdVwgOwor5Yi65a6iIDwgc2hpa3lha3VcIDsKK+S4ieS7meWPiSA8IHNhbnNlbnNhXCA7CivpgJDlubQgPCBjaGlrdW5lblwgOwor6a6r55quIDwgc2FtZWdhd2FcIDsKK+W6g+W6gyA8IGhpcm9iaXJvXCA7Civlho3lt6XkuosgPCBzYWlrb3VqaVwgOwor5qiq55S6IDwgeW9rb2Nob3VcIDsKK+ijj+aXpeacrCA8IHVyYW5paG9uXCA7Civooqvlgq3ogIUgPCBoaXlvdXNoYVwgOwor6L+R5pelIDwga2luaml0c3VcIDsKK+W6g+W5hSA8IGhpcm9oYWJhXCA7CivlipvkvZwgPCByaWtpc2FrdVwgOwor5qSc6ZayIDwga2VuJydldHN1XCA7CivnnqzliLsgPCBzaHVua29rdVwgOwor55m6552AIDwgaGF0Y2hha3VcIDsKK+alteirliA8IGt5b2t1cm9uXCA7CivnnYDlvL4gPCBjaGFrdWRhblwgOwor6Lu95rC054KJIDwga2Vpc3Vpcm9cIDsKK+WFuOeJqSA8IHRlbmJ1dHN1XCA7Civoh6rnlLHmuK8gPCBqaXl1dWtvdVwgOwor5b6h5pu55a2QIDwgb256b3VzaGlcIDsKK+mYsuawtOaJiSA8IGJvdXN1aWhpXCA7Civnmb3nmpkgPCBoYWt1c2VraVwgOwor5bGF5b+D5ZywIDwgaWdva29jaGlcIDsKK+WcsOS4i+mBkyA8IGNoaWthZG91XCA7Civnmb3nmb0gPCBoYWt1aGFrdVwgOwor5YiH5oOFIDwgc2V0c3Vqb3VcIDsKK+WIkeW+iyA8IGtlaXJpdHN1XCA7CivmqJnnmoQgPCBoeW91dGVraVwgOwor5Ye65omAIDwgZGVkb2tvcm9cIDsKK+eEoemnhOiKsSA8IG11ZGFiYW5hXCA7Civov73lvrQgPCB0c3VpY2hvdVwgOwor552A5bqVIDwgY2hha3V0ZWlcIDsKK+WFmueVpSA8IHRvdXJ5YWt1XCA7CivnhKHlrproposgPCBtdXRlaWtlblwgOwor5bqK5bGxIDwgdG9rb3lhbWFcIDsKK+eXm+immiA8IHRzdXVrYWt1XCA7CivlubTlvI8gPCBuZW5zaGlraVwgOwor55m655mMIDwgaGF0c3VnYW5cIDsKK+edgOW4vSA8IGNoYWt1Ym91XCA7CivlhoXmv6AgPCB1Y2hpYm9yaVwgOwor5YWI552AIDwgc2VuY2hha3VcIDsKK+edgOW4ryA8IGNoYWt1dGFpXCA7CivluLjmmKUgPCB0b2tvaGFydVwgOwor576O5a655birIDwgYml5b3VzaGlcIDsKK+eZuueBq+eCuSA8IGhha2thdGVuXCA7CivojbfmjYwgPCBuaXNhYmFraVwgOwor5bmz5bqtIDwgaGlyYW5pd2FcIDsKK+WxsemzqSA8IHlhbWFiYXRvXCA7CivlsbHps6UgPCB5YW1hZG9yaVwgOwor6YCa5a2mIDwgdHN1dWdha3VcIDsKK+eVnOmhniA8IGNoaWt1cnVpXCA7CivlubPlupUgPCBoaXJhem9rb1wgOwor5YWl542EIDwgbnl1dWdva3VcIDsKK+WFrOeItSA8IGtvdXNoYWt1XCA7CivoibLoibYgPCBpcm90c3V5YVwgOwor5bmz5bmVIDwgaGlyYW1ha3VcIDsKK+ePvuS7o+WMliA8IGdlbmRhaWthXCA7CivlhYjnmbogPCBzZW5wYXRzdVwgOwor56aP5LqV55yMIDwgZnVrdWlrZW5cIDsKK+eZveeTnCA8IHNoaXJvdXJpXCA7CivkuI3mlazomZQgPCBmdWtlaWtlblwgOwor6L+R5o6lIDwga2luc2V0c3VcIDsKK+S4geWtkOayuSA8IGNob3VqaXl1XCA7Civou6LogbcgPCB0ZW5zaG9rdVwgOwor6YCP5a+fIDwgdG91c2F0c3VcIDsKK+WKh+S9nCA8IGdla2lzYWt1XCA7CivosqHli5nlrpggPCB6YWltdWthblwgOwor5paZ55CG5bGLIDwgcnlvdXJpeWFcIDsKK+i7uOe0oiA8IGppa3VzYWt1XCA7CivluK3mlpkgPCBzZWtpcnlvdVwgOwor5qyg5Y+3IDwga2V0c3Vnb3VcIDsKK+WBnOi7iuWgtCA8IHRlaXNoYWJhXCA7CivmhJ/lhYnluqYgPCBrYW5rb3Vkb1wgOwor54Sh6IO96ICFIDwgbXVub3VzaGFcIDsKK+eZvueNoyA8IGh5YWt1anV1XCA7Civlg5roiLkgPCB0b21vYnVuZVwgOwor55yf5b+DIDwgbWFnb2tvcm9cIDsKK+WKh+S4rSA8IGdla2ljaHV1XCA7CivouYTpiYQgPCB0ZWl0ZXRzdVwgOwor5Lqk5Y+J54K5IDwga291c2F0ZW5cIDsKK+awt+ays+acnyA8IGh5b3VnYWtpXCA7CivpgIDlsYggPCB0YWlrdXRzdVwgOwor5L2O6Zu75L2NIDwgdGVpZGVuJydpXCA7Civlh7rkuJbprZogPCBzaHVzc2V1b1wgOwor6YGL6Lui5Y+wIDwgdW50ZW5kYWlcIDsKK+WJjeWTsiA8IHplbnRldHN1XCA7Civlh7rlu6wgPCBzaHV0c3Vyb1wgOwor6YGp5L2cIDwgdGVraXNha3VcIDsKK+mHjuW/g+WutiA8IHlhc2hpbmthXCA7CivlhoXms5UgPCB1Y2hpbm9yaVwgOwor5Ye65bqmIDwgc2h1dHN1ZG9cIDsKK+WKg+S4gCA8IGtha3VpdHN1XCA7Civoh6rnlLHmqKkgPCBqaXl1dWtlblwgOwor6Lu4566xIDwgamlrdWJha29cIDsKK+mYsuawtOW4gyA8IGJvdXN1aWZ1XCA7Civlh7rluK0gPCBzaHVzc2VraVwgOwor5YaN6Ieo5rS+IDwgc2FpcmluaGFcIDsKK+WIpeWjsiA8IGJldHN1YmFpXCA7CivluJ3ml6UgPCB0ZWlqaXRzdVwgOwor5qeL56+JIDwga291Y2hpa3VcIDsKK+ebruaSgyA8IG1va3VnZWtpXCA7Civou43ogbcgPCBndW5zaG9rdVwgOwor5ZCN5aC06Z2iIDwgbWVpYmFtZW5cIDsKK+ethuiomOS9kyA8IGhpa2tpdGFpXCA7CivlvKbmpb3lmaggPCBnZW5nYWtraVwgOwor5rue5Zyo6LK7IDwgdGFpemFpaGlcIDsKK+imj+WumuWApCA8IGtpdGVpY2hpXCA7CivkuIDkvZPmhJ8gPCBpdHRhaWthblwgOwor5Yas5pyNIDwgZnV5dWZ1a3VcIDsKK+iMtuadkyA8IGNoYXNoYWt1XCA7Civprq7ng4ggPCBzZW5yZXRzdVwgOwor6LWk56CC57OWIDwgYWthemF0b3VcIDsKK+eJm+Wwj+WxiyA8IHVzaGlnb3lhXCA7Civlu4nkvqHlk4EgPCByZW5rYWhpblwgOwor5rCR6ZyA5ZOBIDwgbWluanVoaW5cIDsKK+ecn+S6uumWkyA8IG1hbmluZ2VuXCA7CivlhpnmpI0gPCBzaGFzaG9rdVwgOwor6YeR55ue6IqxIDwga2luc2Vua2FcIDsKK+WIpeWggiA8IGJldHN1ZG91XCA7CivliIblrr8gPCBidW5zaHVrdVwgOwor5YWo5ruFIDwgemVubWV0c3VcIDsKK+WxsemiqCA8IHlhbWFrYXplXCA7CivojYnmkbogPCBrdXNhenVyaVwgOwor5rGf5oi45pmC5LujIDwgZWRvamlkYWlcIDsKK+WFiOeJqSA8IHNha2ltb25vXCA7Civlj5bmspnmsbAgPCB0b3JpemF0YVwgOwor6YqA6KGM5ZOhIDwgZ2lua291aW5cIDsKK+WxpOS9jeWtpiA8IHNvdWlnYWt1XCA7Civnmb7ngrkgPCBoeWFrdXRlblwgOwor6YCG5aSiIDwgc2FrYXl1bWVcIDsKK+mAj+imluWbsyA8IHRvdXNoaXp1XCA7CivlkI3nvqnkurogPCBtZWlnaW5pblwgOwor57Wm5rK55omAIDwga3l1dXl1am9cIDsKK+WFieeGsSA8IGtvdW5ldHN1XCA7Civoh6rotbDnoLIgPCBqaXNvdWhvdVwgOwor5YmN5YiXIDwgemVucmV0c3VcIDsKK+WvhOeov+iAhSA8IGtpa291c2hhXCA7CivmipLmg4XoqakgPCBqb2pvdXNoaVwgOwor6YCG5aKDIDwgZ3lha2t5b3VcIDsKK+WGhuWIg+WIgCA8IGVuamludG91XCA7CivnmYfnmaogPCBrYW5zaGFrdVwgOwor6LuN57iuIDwgZ3Vuc2h1a3VcIDsKK+murea8gSA8IHNha2VyeW91XCA7CivpgZTkurogPCB0YXRzdWppblwgOwor6Imy57SZIDwgc2hpa2lzaGlcIDsKK+eZvea/gSA8IGhha3VkYWt1XCA7CivlhIHnp4AgPCBzaHVuc2h1dVwgOwor5bmF5bqDIDwgaGFiYWhpcm9cIDsKK+WxsemcpyA8IHlhbWFnaXJpXCA7CivkuInkuIPml6UgPCBtaW5hbm9rYVwgOwor6YC45Ye6IDwgaXNzaHV0c3VcIDsKK+WFpea1tCA8IG55dXV5b2t1XCA7CivmrKDkvr8gPCBrZXRzdWJpblwgOwor6Lu955+zIDwga2FydWlzaGlcIDsKK+WIh+WmuyA8IGtpcml6dW1hXCA7Civlt7vmnKsgPCBrYW5tYXRzdVwgOwor5a+65bCP5bGLIDwgdGVyYWtveWFcIDsKK+i3nemqqCA8IGt5b2tvdHN1XCA7CivnlLDpm7Lpm4AgPCB0YWhpYmFyaVwgOwor5rip5rm/5biDIDwgb25zaGlwcHVcIDsKK+eUn+mmliA8IG5hbWFrdWJpXCA7CivlhaXmtJsgPCBueXV1cmFrdVwgOwor55u05oOFIDwgY2hva3Vqb3VcIDsKK+WHtuWuhSA8IGt5b3V0YWt1XCA7CivlsbHpmpsgPCB5YW1hZ2l3YVwgOwor5bqt5YWIIDwgbml3YXNha2lcIDsKK+W+oemdouebuCA8IGdvbWVuc291XCA7CivlsbHpmbAgPCB5YW1ha2FnZVwgOwor5YmD5YiAIDwga2FtaXNvcmlcIDsKK+aoquazoiA8IHlva29uYW1pXCA7CivnnYDlnLAgPCBjaGFrdWNoaVwgOwor5LiK5pmv5rCXIDwgam91a2Vpa2lcIDsKK+iCsuiLseS8miA8IGlrdWVpa2FpXCA7CivkuZfppqzpmoogPCBqb3ViYXRhaVwgOwor5Zyw5LiL6KGXIDwgY2hpa2FnYWlcIDsKK+ebl+aOmCA8IHRvdWt1dHN1XCA7CivnnIHluoEgPCBzaG91Y2hvdVwgOwor55WZ6YeRIDwgdG9tZWdhbmVcIDsKK+api+aigSA8IGt5b3VyeW91XCA7CivnlLrplbcgPCBjaG91Y2hvdVwgOwor5bGe6aCYIDwgem9rdXJ5b3VcIDsKK+mAmuWRiiA8IHRzdXVrb2t1XCA7CivliY3lgJ8gPCB6ZW5zaGFrdVwgOwor6Z2S5oe45bejIDwgYW9rYWtlc3VcIDsKK+asoOS5jyA8IGtldHN1Ym91XCA7CivmpbXoh7QgPCBreW9rdWNoaVwgOwor5LiN5pWs572qIDwgZnVrZWl6YWlcIDsKK+WOn+WtkOS+oSA8IGdlbnNoaWthXCA7CivliKXlkb0gPCBiZXRzdW1laVwgOwor6Imv562WIDwgcnlvdXNha3VcIDsKK+eUmOmjnyA8IGFtYXNob2t1XCA7CivlhoXmnqAgPCB1Y2hpd2FrdVwgOwor5qmL5p2tIDwgaGFzaGlndWlcIDsKK+e3j+atpue3miA8IHNvdWJ1c2VuXCA7CivkuI3nuLnnt7sgPCBidWtpcnlvdVwgOwor5Yil5Y+3IDwgYmV0c3Vnb3VcIDsKK+WAn+mKrSA8IHNoYWt1c2VuXCA7CivnnInlsLsgPCBtYXl1amlyaVwgOwor55yf5aaCIDwgc2hpbicnbnlvXCA7Civop6Plg4/luqYgPCBrYWl6b3Vkb1wgOwor6Iul5rC0IDwgd2FrYW1penVcIDsKK+aOp+iotOeKtiA8IGtvdXNvam91XCA7CivpgJrlipsgPCB0c3V1cmlraVwgOwor5bqX5YWIIDwgbWlzZXNha2lcIDsKK+eVlOmBkyA8IGF6ZW1pY2hpXCA7Civoi6Xmrr8gPCB3YWthdG9ub1wgOwor5YaN5qSc5p+7IDwgc2Fpa2Vuc2FcIDsKK+mAmuWJhyA8IHRzdXVzb2t1XCA7CivliJ3lj6MgPCBzaG9rdWNoaVwgOwor5qi95p+/IDwgdGFydWdha2lcIDsKK+iHreimmiA8IHNodXVrYWt1XCA7CivopIfluqfmqZ8gPCBmdWt1emFraVwgOwor5om56KmV5a62IDwgaGloeW91a2FcIDsKK+W+oeS4reWFgyA8IG9jaHV1Z2VuXCA7CivkurrnnJ/kvLwgPCBoaXRvbWFuZVwgOwor5qiq5qeYIDwgeW9rb3phbWFcIDsKK+aoquanjSA8IHlva295YXJpXCA7CivlhrflvrkgPCByZWl0ZXRzdVwgOwor55qE5Zyw5L2NIDwgdGVraWNoaWlcIDsKK+edo+S/gyA8IHRva3Vzb2t1XCA7Civmj5vmsJflj6MgPCBrYW5raWtvdVwgOwor6Kq/5p+75ZOhIDwgY2hvdXNhaW5cIDsKK+S4luipseW9uSA8IHNld2F5YWt1XCA7CivliKTliKUgPCBoYW5iZXRzdVwgOwor5bi45a6iIDwgam91a3lha3VcIDsKK+W4s+WwuyA8IGNob3VqaXJpXCA7Civmgqrnn6XmgbUgPCB3YXJ1ZGppZVwgOwor6IuX5rC0IDwgbmF3YW1penVcIDsKK+efreacn+mWkyA8IHRhbmtpa2FuXCA7CivlvqHkuLvkurogPCBnb3NodWppblwgOwor5bGx6Ym+IDwgeWFtYWJva29cIDsKK+mrhOiZqyA8IHp1aW11c2hpXCA7Civnmobmp5ggPCBtaW5hc2FtYVwgOwor5Yil5YaMIDwgYmVzc2F0c3VcIDsKK+WQjOaZguaApyA8IGRvdWppc2VpXCA7CivluLflrZAgPCBrYXRhYmlyYVwgOwor6I2J5biCIDwga3VzYWljaGlcIDsKK+m7hOWkieexsyA8IG91aGVubWFpXCA7CivkvZnmiYDogIUgPCB5b3NvbW9ub1wgOwor55m95qqAIDwgYnlha3VkYW5cIDsKK+iLpeanmCA8IHdha2FzYW1hXCA7Civnm7TlsIQgPCBjaG9rdXNoYVwgOwor5bGx6YeMIDwgeWFtYXphdG9cIDsKK+mAgOWNtCA8IHRhaWt5YWt1XCA7Civmu4vppIrliIYgPCBqaXlvdWJ1blwgOwor5qeN546JIDwgeWFyaWRhbWFcIDsKK+ajmueJoeS4uSA8IHRhbmFib3RhXCA7CivnlLLpiYQgPCBrb3V0ZXRzdVwgOwor6YqY6YWS5bGLIDwgbWVpc2h1eWFcIDsKK+WhqemhnuaziSA8IGVucnVpc2VuXCA7CivlsYDpnaIgPCBreW9rdW1lblwgOwor5L+d6I+M6ICFIDwgaG9raW5zaGFcIDsKK+mAmuS/oSA8IHRzdXVzaGluXCA7CivmpbXnt5ogPCBreW9rdXNlblwgOwor6Ziy56CC5p6XIDwgYm91c2FyaW5cIDsKK+mAmuS/lyA8IHRzdXV6b2t1XCA7CivoiLnnuIEgPCBmdW5hYmVyaVwgOwor55qT5pyIIDwga291Z2V0c3VcIDsKK+iJsuebuCA8IHNoaWtpc291XCA7CivoibLnm7IgPCBzaGlraW1vdVwgOwor55yJ5aKoIDwgbWF5dXp1bWlcIDsKK+WGheaOpSA8IG5haXNldHN1XCA7CivplonkuJbnlYwgPCBoZWlzZWthaVwgOwor5be05oimIDwgdG9tb2VzZW5cIDsKK+WFqOabsiA8IHplbmt5b2t1XCA7Civou7jniakgPCBqaWt1bW9ub1wgOwor5qWt57i+IDwgZ3lvdXNla2lcIDsKK+WcsOS4i+iMjiA8IGNoaWtha2VpXCA7CivlpJrovrrlvaIgPCB0YWhlbmtlaVwgOwor5YWl5pyoIDwgbnl1dWJva3VcIDsKK+altee0sCA8IGdva3Vib3NvXCA7CivkuI3mmI7mnJcgPCBmdW1laXJvdVwgOwor6YCB5YilIDwgc291YmV0c3VcIDsKK+i2s+mmliA8IGFzaGlrdWJpXCA7CivlhbzmkYIgPCBrZW5zZXRzdVwgOwor5Yil5L6/IDwgYmV0c3ViaW5cIDsKK+W5tOWIpSA8IG5lbmJldHN1XCA7Civms6XngavlsbEgPCBkZWlrYXphblwgOwor55Sf6YyyIDwgbmFtYXJva3VcIDsKK+S6rOmDveW6nCA8IGt5b3V0b2Z1XCA7Civnmb3mooUgPCBzaGlyYXVtZVwgOwor6IeG6KqsIDwgb2t1c2V0c3VcIDsKK+S7pOWkq+S6uiA8IHJlaWZ1amluXCA7CivlhYjmp5ggPCBzYWtpc2FtYVwgOwor5YWo5pelIDwgemVuaml0c3VcIDsKK+W4g+W8lSA8IG51bm9iaWtpXCA7CivnvbflhY3mqKkgPCBoaW1lbmtlblwgOwor5LiB5a2X5b2iIDwgdGVpamlrZWlcIDsKK+ebo+WvnyA8IGthbnNhdHN1XCA7CivliIblipsgPCBidW5yeW9rdVwgOwor5YCZ6KOc6ICFIDwga291aG9zaGFcIDsKK+WCjeiAsyA8IGthdGFtaW1pXCA7CivnlaXoqIAgPCByeWFrdWdlblwgOwor5Yil5Lq6IDwgYmV0c3VuaW5cIDsKK+Wwj+mtmiA8IGtvemFrYW5hXCA7Civlt6bmiYsgPCBoaWRhcml0ZVwgOwor6Imy55S6IDwgaXJvbWFjaGlcIDsKK+iJsueUtyA8IGlyb290b2tvXCA7Civmpb3nq6AgPCBnYWt1c2hvdVwgOwor5YiG5YilIDwgYnVuYmV0c3VcIDsKK+e1teeUu+mkqCA8IGthaWdha2FuXCA7CivprLHnl4UgPCB1dHN1YnlvdVwgOwor5Zu95Za25YyWIDwga29rdWVpa2FcIDsKK+mAhuS/riA8IGd5YWt1c2h1XCA7CivnianmlYXogIUgPCBidWtrb3NoYVwgOwor5YmN55u45pKyIDwgbWFlenVtb3VcIDsKK+eglOexs+apnyA8IGtlbm1haWtpXCA7Civnm7Tlo7IgPCBjaG9rdWJhaVwgOwor5YCf6LK4IDwgc2hha3V0YWlcIDsKK+aal+m7kuacnyA8IGFua29rdWtpXCA7CivlgJ/osqEgPCBzaGFrdXphaVwgOwor54++5pmC54K5IDwgZ2Vuaml0ZW5cIDsKK+mao+S/nemkqCA8IHJpbnBva2FuXCA7CivlhqzlsbEgPCBmdXl1eWFtYVwgOwor5YiG5YaKIDwgYnVuc2F0c3VcIDsKK+eEvOWkt+W8viA8IHNob3VpZGFuXCA7CivkuIHlrZfluK8gPCB0ZWlqaXRhaVwgOwor6LuN55WlIDwgZ3Vucnlha3VcIDsKK+WKoOmFjeexsyA8IGthaGFpbWFpXCA7CivnlKjpgZQgPCB5b3V0YXRzdVwgOwor6I2S5aS3IDwgYXJhZWJpc3VcIDsKK+alteerryA8IGt5b2t1dGFuXCA7CivnnJ/ljZcgPCBtYW1pbmFtaVwgOwor5q2v56eR5Yy76ZmiIDwgc2hpa2FpaW5cIDsKK+mrmOeyvuW6piA8IGtvdXNlaWRvXCA7CivnlaXoo4UgPCByeWFrdXNvdVwgOwor6Zmw6Zai5pWwIDwgaW5rYW5zdXVcIDsKK+awtOazs+W4vSA8IHN1aWVpYm91XCA7CivliJfkvJ0gPCByZXRzdWRlblwgOwor6LK46LK755SfIDwgdGFpaGlzZWlcIDsKK+iIueerryA8IGZ1bmFiYXRhXCA7Civpr6jluqcgPCBrdWppcmF6YVwgOwor552A5Lu7IDwgY2hha3VuaW5cIDsKK+Wil+eojuahiCA8IHpvdXplaWFuXCA7CivovrvloIIgPCB0c3VqaWRvdVwgOwor5L+66YGUIDwgb3JldGFjaGlcIDsKK+mkk+msvOWFsSA8IGdha2lkb21vXCA7CivnnJ/li4cgPCBzaGluJyd5dXVcIDsKK+WCmOe0mSA8IGthc2FnYW1pXCA7CivoqLHlj6/liLYgPCBreW9rYXNlaVwgOwor55m95pi8IDwgaGFrdWNodXVcIDsKK+eXvOeWviA8IGtvc2hpdHN1XCA7Civlgb3ogIUgPCBuaXNlbW9ub1wgOwor5YWL5pyNIDwga29rdWZ1a3VcIDsKK+Wls+aAp+WDjyA8IGpvc2Vpem91XCA7CivnlLvos6ogPCBnYXNoaXRzdVwgOwor6Lez6LqNIDwgY2hvdXlha3VcIDsKK+eBq+aYn+W5tCA8IGthc2VpbmVuXCA7CivnmbrmmI4gPCBoYXRzdW1laVwgOwor5Lqc56Gr6YW4IDwgYXJ5dXVzYW5cIDsKK+mAhuS4iiA8IGd5YWt1am91XCA7CivlhYjmnIggPCBzZW5nZXRzdVwgOwor5bmz5LuEIDwgaHlvdXNva3VcIDsKK+WGhuW9oiA8IG1hcnVnYXRhXCA7Civlho3ou43lgpkgPCBzYWlndW5iaVwgOwor5p2/5bGL6LKdIDwgaXRheWFnYWlcIDsKK+WwkemhjSA8IHNob3VnYWt1XCA7CivmlqHml4vmoYggPCBhc3NlbicnYW5cIDsKK+iKseW0l+WyqSA8IGtha291Z2FuXCA7Civov5TljbQgPCBoZW5reWFrdVwgOwor5Ye25YWGIDwga3lvdWNob3VcIDsKK+alk+ezliA8IGthZWRldG91XCA7CivluZXlhoUgPCBtYWt1dWNoaVwgOwor5pyq5a6M5oiQIDwgbWlrYW5zZWlcIDsKK+W3u+WwuiA8IG1ha2lqYWt1XCA7CivlhYjml6UgPCBzZW5qaXRzdVwgOwor54Sh55So5b+DIDwgYnV5b3VqaW5cIDsKK+aIkOaWh+WMliA8IHNlaWJ1bmthXCA7CivlgJ/opqcgPCBzaGFrdXJhblwgOwor57KX5oKq5ZOBIDwgc29ha3VoaW5cIDsKK+aOp+iotOaoqSA8IGtvdXNva2VuXCA7Civpp5Lps6UgPCBrb21hZG9yaVwgOwor6Kq/55CG5aC0IDwgY2hvdXJpYmFcIDsKK+WcsOS4i+e3miA8IGNoaWthc2VuXCA7CivluZXlg5ogPCBiYWt1cnlvdVwgOwor5YaZ5a6fIDwgc2hhaml0c3VcIDsKK+S6nOehnemFuCA8IGFzaG91c2FuXCA7CivlhYPml6UgPCBnYW5qaXRzdVwgOwor55m95o+PIDwgaGFrdWJ5b3VcIDsKK+Wwu+mHjSA8IHNoaXJpb21vXCA7CivohJvpqqggPCBrZWlrb3RzdVwgOwor5L2T57O75YyWIDwgdGFpa2Vpa2FcIDsKK+WFg+aWuSA8IG1vdG9rYXRhXCA7Civnmbrmj5ogPCBoYXRzdXlvdVwgOwor57WM5Za26ICFIDwga2VpZWlzaGFcIDsKK+iMtuWjuiA8IGNoYXRzdWJvXCA7Civkv67ouqsgPCBzaHV1c2hpblwgOwor55m65o6YIDwgaGFra3V0c3VcIDsKK+W3neW6lSA8IGthd2F6b2tvXCA7Civlt53luoogPCBrYXdhZG9rb1wgOwor5Ye25L2cIDwga3lvdXNha3VcIDsKK+amgueVpSA8IGdhaXJ5YWt1XCA7CivooqvlhpnkvZMgPCBoaXNoYXRhaVwgOwor5bed5bmFIDwga2F3YWhhYmFcIDsKK+WCt+eXhSA8IHNob3VieW91XCA7CivmpI7ojLggPCBzaGlpdGFrZVwgOwor5bee5beeIDwgc2h1dXNodXVcIDsKK+WBnOiBtyA8IHRlaXNob2t1XCA7CivkvpHpo58gPCB5dXVzaG9rdVwgOwor5YiG5aip5pyfIDwgYnVuYmVua2lcIDsKK+W+jOS7leiIniA8IGF0b2ppbWFpXCA7CivlhoXlsYAgPCBuYWlreW9rdVwgOwor55S36KaqIDwgb3Rva29veWFcIDsKK+ijj+mdouWPsiA8IHJpbWVuc2hpXCA7CivoirHmn4QgPCBoYW5hZ2FyYVwgOwor6KaL5LiW54mpIDwgbWlzZW1vbm9cIDsKK+WxseilniA8IHlhbWFoaWRhXCA7CivovrvljaAgPCB0c3VqaXVyYVwgOwor5qeY5qeYIDwgc2FtYXphbWFcIDsKK+ecn+S4rSA8IG1hbicnbmFrYVwgOwor5YaF5a+GIDwgbmFpbWl0c3VcIDsKK+iqnuW9meWKmyA8IGdvaXJ5b2t1XCA7CivoirHmnZ8gPCBoYW5hdGFiYVwgOwor5YaF5a6fIDwgbmFpaml0c3VcIDsKK+WFseW4gyA8IHRvbW9udW5vXCA7CivlsbHoo74gPCB5YW1hc3Vzb1wgOwor6auY56m6IDwgdGFrYXpvcmFcIDsKK+iKseacrSA8IGhhbmFmdWRhXCA7CivprZTms5Xnk7YgPCBtYWhvdWJpblwgOwor55m+5oWLIDwgaHlha3V0YWlcIDsKK+WIhuWoqeaZgiA8IGJ1bmJlbmppXCA7CivkuIrkuIvli5UgPCBqb3VnZWRvdVwgOwor5bmz6Z2i5ZuzIDwgaGVpbWVuenVcIDsKK+iAkOeBq+aApyA8IHRhaWthc2VpXCA7Civnl5Tnlr4gPCBqaXNoaXRzdVwgOwor5YaN5a6a576pIDwgc2FpdGVpZ2lcIDsKK+mbu+awl+W3pSA8IGRlbmtpa291XCA7Civlj43lj6TnsaAgPCBob2d1a2Fnb1wgOwor5YWr5bmhIDwgaGFjaGltYW5cIDsKK+W+oemZjeiqlSA8IGdva291dGFuXCA7Civlt6Hlr58gPCBqdW5zYXRzdVwgOwor6Lu95qWtIDwga2FydXdhemFcIDsKK+W3neWwuyA8IGthd2FqaXJpXCA7CivmmI7mlofljJYgPCBtZWlidW5rYVwgOwor6IW55YW35ZCIIDwgaGFyYWd1YWlcIDsKK+ebtOWJjSA8IGNob2t1emVuXCA7CivpgbjmjJnml6UgPCBzZW5reW9iaVwgOwor5qOS6KGTIDwgYm91anV0c3VcIDsKK+iKseaZgiA8IGhhbmFkb2tpXCA7CivlhaXluZUgPCBueXV1bWFrdVwgOwor55m65oOFIDwgaGF0c3Vqb3VcIDsKK+S/s+islCA8IGhhaWd5YWt1XCA7CivlsqnohIggPCBnYW5teWFrdVwgOwor5biz5YWDIDwgY2hvdW1vdG9cIDsKK+eXheeahCA8IGJ5b3V0ZWtpXCA7CivmqKrluYUgPCB5b2tvaGFiYVwgOwor6Ly457K+566hIDwgeXVzZWlrYW5cIDsKK+eXheeZliA8IGJ5b3VoZWtpXCA7CivlsI/lo7LlupcgPCBrb3VyaXRlblwgOwor5a6H5a6Z6KuWIDwgdWNodXVyb25cIDsKK+iDuOmrmCA8IG11bmFkYWthXCA7CivpkZHlrprlrrYgPCBrYW50ZWlrYVwgOwor5L+D6YCyIDwgc29rdXNoaW5cIDsKK+aomeW+tCA8IGh5b3VjaG91XCA7Civlm7rmurbkvZMgPCBrb3lvdXRhaVwgOwor5qGI5YaF5omAIDwgYW4nJ25haWpvXCA7Civnl4Xnl4cgPCBieW91c2hvdVwgOwor6Ieq5L+h5a62IDwgamlzaGlua2FcIDsKK+WGt+WNtCA8IHJlaWt5YWt1XCA7CivkupzpiZvmnKsgPCBhZW5tYXRzdVwgOwor6IaP6KGAIDwga291a2V0c3VcIDsKK+WCt+eJqSA8IGtpenVtb25vXCA7CivlsI7pm7vluqYgPCBkb3VkZW5kb1wgOwor55yM55+l5LqLIDwga2VuY2hpamlcIDsKK+eZvuW8iiA8IGh5YWt1aGVpXCA7Civlh53kubMgPCBneW91bnl1dVwgOwor55Wc6IiOIDwgY2hpa3VzaGFcIDsKK+aEj+awl+mYu+WWqiA8IGlraXNvc291XCA7CivlhbHlraYgPCBreW91Z2FrdVwgOwor5a6H5a6Z6KazIDwgdWNodXVrYW5cIDsKK+mbu+WLleapnyA8IGRlbmRvdWtpXCA7CivlsJHph48gPCBzaG91cnlvdVwgOwor5LiA5LiB55uuIDwgaXRjaG91bWVcIDsKK+S8iumBlOihhiA8IGRhdGVzaHV1XCA7CivohYvnqqnohbogPCBla2lrYXNlblwgOwor5LiN5paH5rOVIDwgZnVidW5wb3VcIDsKK+eZvuW5tCA8IGh5YWt1bmVuXCA7CivotrPou70gPCBhc2hpZ2FydVwgOwor5LiA6LKr5oCnIDwgaWtrYW5zZWlcIDsKK+WPo+WGheeCjiA8IGtvdW5haWVuXCA7CivlgaXnrYYgPCBrZW5waXRzdVwgOwor6YGO5LiN6LazIDwga2FmdXNva3VcIDsKK+WvkumkhSA8IGthbm1vY2hpXCA7Civlr67plbcgPCByeW91Y2hvdVwgOwor5oSb55So6ICFIDwgYWl5b3VzaGFcIDsKK+S/iui2syA8IHNodW5zb2t1XCA7CivlhazmsJHnp5EgPCBrb3VtaW5rYVwgOwor5YWl5a+CIDwgbnl1dWpha3VcIDsKK+WHuuagvOWtkCA8IGRlZ291c2hpXCA7Civkv6Hoqo0gPCBzaGluJyduaW5cIDsKK+S7iuS4lue0gCA8IGtvbnNlaWtpXCA7CivlhaXlraYgPCBueXV1Z2FrdVwgOwor5qWt54mpIDwgd2F6YW1vbm9cIDsKK+acquWpmuiAhSA8IG1pa29uc2hhXCA7CivotaTpnbQgPCBha2FndXRzdVwgOwor5YCZ6KOc55SfIDwga291aG9zZWlcIDsKK+W3nuWigyA8IHNodXVreW91XCA7CivmnbHljZfkupwgPCB0b3VuYW4nJ2FcIDsKK+S/oeiolyA8IHNoaW50YWt1XCA7CivkvpvppIrloZQgPCBrdXlvdXRvdVwgOwor5YGl6IOD5YmkIDwga2VuJydpemFpXCA7Civlrr/pp4UgPCBzaHVrdWVraVwgOwor5qW154K5IDwga3lva3V0ZW5cIDsKK+S/l+iqvyA8IHpva3VjaG91XCA7CivoiIznmYwgPCB6ZXRzdWdhblwgOwor55u05LitIDwgdGFkYW5ha2FcIDsKK+iKseaIvyA8IGhhbmFmdXNhXCA7Civkv67pqJPogIUgPCBzaHVnZW5qYVwgOwor55ar55eFIDwgeWFrdWJ5b3VcIDsKK+iLpeWuriA8IHdha2FtaXlhXCA7CivlhYPluLMgPCBtb3RvY2hvdVwgOwor5a+b6ZeKIDwga2Fua2F0c3VcIDsKK+WvuOmJhCA8IHN1bnRldHN1XCA7CivpgZXniq/ooYzngrogPCBpaGFua291aVwgOwor5p+U6YGT552AIDwganV1ZG91Z2lcIDsKK+eZvuWusyA8IGh5YWt1Z2FpXCA7Civlvq7ns7vmlbAgPCBiaWtlaXN1dVwgOwor5LuV572u5aC0IDwgc2hpb2tpYmFcIDsKK+WBtueZuiA8IGd1dWhhdHN1XCA7CivlubPmlrnlkowgPCBoZWlob3V3YVwgOwor5bCP6LqrIDwgc2hvdXNoaW5cIDsKK+Wuv+mhmCA8IHNodWt1Z2FuXCA7CivkvLTlpY/pg6ggPCBiYW5zb3VidVwgOwor55Sf6JasIDwgc2hvdXlha3VcIDsKK+Wuv+mhjCA8IHNodWt1ZGFpXCA7Civlj6TlhpnmnKwgPCBrb3NoYWhvblwgOwor55O26KmwIDwgYmluZHp1bWVcIDsKK+WBj+eqnyA8IGhlbmt1dHN1XCA7CivlhYjlsbEgPCBzYWtpeWFtYVwgOwor55S36ImyIDwgbmFuc2hva3VcIDsKK+iEsei8qiA8IGRhdHN1cmluXCA7Civlh7rmnaXniakgPCBkZWtpbW9ub1wgOwor5YC557SEIDwga2VuJyd5YWt1XCA7CivojYnkuIggPCBrdXNhdGFrZVwgOwor5Zyf6aWF6aCtIDwgZG9tYW5qdXVcIDsKK+S4luipseS6uiA8IHNld2FiaXRvXCA7CivlhaXlob4gPCBueXV1anVrdVwgOwor576O6aGU5rC0IDwgYmlnYW5zdWlcIDsKK+iHqueUseWIkSA8IGppeXV1a2VpXCA7CivloanpoqjlkYIgPCBzaGlvYnVyb1wgOwor5YWF6Zu75ZmoIDwganV1ZGVua2lcIDsKK+iiq+mok+iAhSA8IGhpa2Vuc2hhXCA7CivlsI/nhorluqcgPCBrb2d1bWF6YVwgOwor5YSq5b2iIDwgeWFzYWdhdGFcIDsKK+aJi+S/oeiqniA8IHRlc2hpbmdvXCA7CivlhYjlrqIgPCBzZW5reWFrdVwgOwor6LWk5q+b5biDIDwgYWthZ2V0dG9cIDsKK+S/l+ihhiA8IHpva3VzaHV1XCA7CivlsbHohpogPCB5YW1haGFkYVwgOwor5qaV5qi5IDwgZ2FqdW1hcnVcIDsKK+WFiOWuiSA8IHNha2l5YXN1XCA7CivppqzpnaIgPCB1bWFkenVyYVwgOwor5rC05b2p55S7IDwgc3Vpc2FpZ2FcIDsKK+S4gOS6uuWvnSA8IGhpdG9yaW5lXCA7CivpnZLlkbPms6UgPCBhb21pZG9yb1wgOwor55m+5aeTIDwgaHlha3VzZWlcIDsKK+iHqueUseWFmiA8IGppeXV1dG91XCA7CivlhYXlrp8gPCBqdXVqaXRzdVwgOwor6IqZ6JOJ5bOwIDwgZnV5b3Vob3VcIDsKK+iQveiKseeUnyA8IHJha2thc2VpXCA7CivoirHlvaIgPCBoYW5hZ2F0YVwgOwor5bGx6ZaT6YOoIDwgc2Fua2FuYnVcIDsKK+ebl+S6uiA8IG51c3ViaXRvXCA7CivlkIzmmYLku6MgPCBkb3VqaWRhaVwgOwor55m95aaZIDwgc2hpcm90YWVcIDsKK+WxseiEiCA8IHlhbWFuYW1pXCA7CivnhKHlrpfmtL4gPCBtdXNodXVoYVwgOwor6Iqx5byBIDwgaGFuYWJpcmFcIDsKK+WFpeWbvSA8IG55dXVrb2t1XCA7CivmpbXmtIsgPCBreW9rdXlvdVwgOwor6LuN5pS/5bqcIDwgZ3Vuc2VpZnVcIDsKK+eZveWjgSA8IGhha3VoZWtpXCA7Civnmb3loqggPCBoYWt1Ym9rdVwgOwor55m65aOyIDwgaGF0c3ViYWlcIDsKK+WGheWKmyA8IG5haXJ5b2t1XCA7CivotaTpioUgPCBzaGFrdWRvdVwgOwor55qu5YmlIDwga2F3YWhhZ2lcIDsKK+WppuS6uuS8miA8IGZ1amlua2FpXCA7Civljp/nuYrntq0gPCBnZW5zZW4nJ2lcIDsKK+W3qOWIuSA8IGt5b3NhdHN1XCA7Civpqqjnm6QgPCBrb3RzdWJhblwgOwor6a+J5Y+jIDwga29pZ3VjaGlcIDsKK+eUn+iJsiA8IHNlaXNob2t1XCA7Civntpnpm7vmsJcgPCBrZWlkZW5raVwgOwor5LiN5paH5piOIDwgZnVidW5tZWlcIDsKK+W5s+Wcn+mWkyA8IGhpcmFkb21hXCA7CivmrKHnlLflnYogPCBqaW5hbmJvdVwgOwor5YWI5aSqIDwgc2FraWJ1dG9cIDsKK+i2hei2iiA8IGNob3VldHN1XCA7CivohoDog7Hngo4gPCBib3Vrb3VlblwgOwor5pyJ5Yq55omTIDwgeXV1a291ZGFcIDsKK+mbqOmHj+ioiCA8IHVyeW91a2VpXCA7CivlhbXljZIgPCBoZWlzb3RzdVwgOwor5a6H5a6Z6Ii5IDwgdWNodXVzZW5cIDsKK+a4m+ihsOWZqCA8IGdlbnN1aWtpXCA7Civmp5jlvI8gPCB5b3VzaGlraVwgOwor5Ly06aOfIDwgYmFuc2hva3VcIDsKK+WkmuiKuOaApyA8IHRhZ2Vpc2VpXCA7CivlhbXlipsgPCBoZWlyeW9rdVwgOwor6LWk5YiH56ymIDwgYWthZ2lwcHVcIDsKK+alvealvSA8IHJha3VyYWt1XCA7Civpq5jmva4gPCB0YWthc2hpb1wgOwor5YaF5YG0IDwgdWNoaWdhd2FcIDsKK+iEhei/qyA8IGt5b3VoYWt1XCA7CivohbnohpwgPCBmdWt1bWFrdVwgOwor54Gr5pif5Lq6IDwga2FzZWlqaW5cIDsKK+WGheWAiSA8IHVjaGlndXJhXCA7Civml6XoiKrmqZ8gPCBuaWtrb3VraVwgOwor5LuK5LiW55WMIDwga29uc2VrYWlcIDsKK+iKseWuiCA8IGhhbmFtb3JpXCA7Civog7jpg60gPCBreW91a2FrdVwgOwor6LuN6ZyA5ZOBIDwgZ3VuanVoaW5cIDsKK+eXheavkiA8IGJ5b3Vkb2t1XCA7CivmpbXmpb0gPCBnb2t1cmFrdVwgOwor5rC06JK45rCXIDwgc3Vpam91a2lcIDsKK+altealtSA8IGdva3Vnb2t1XCA7CivljZjmvKLlrZcgPCB0YW5rYW5qaVwgOwor5Y2B5paH5a2XIDwganV1bW9uamlcIDsKK+WuiOWCmeWFtSA8IHNodWJpaGVpXCA7Civnl4XmrbQgPCBieW91cmVraVwgOwor5pqX5Y+35paHIDwgYW5nb3VidW5cIDsKK+iKseWrgSA8IGhhbmF5b21lXCA7CivlhajlipsgPCB6ZW5yeW9rdVwgOwor5YWx5YWxIDwgdG9tb2RvbW9cIDsKK+mrmOetieenkSA8IGtvdXRvdWthXCA7CivoirHlqb8gPCBoYW5hbXVrb1wgOwor6LSL6aaWIDwgbmlzZWt1YmlcIDsKK+iLpeWQmyA8IHdha2FnaW1pXCA7CivlsYDoiI4gPCBreW9rdXNoYVwgOwor5bee5L+XIDwgc2h1dXpva3VcIDsKK+a3u+S5l+WToSA8IHRlbmpvdWluXCA7CivmpI3nlJ8gPCBzaG9rdXNlaVwgOwor5qip5YqbIDwga2Vucnlva3VcIDsKK+WEquWlsyA8IHlhc2FvbicnYVwgOwor5a6/6YWUIDwgc2h1a3VzdWlcIDsKK+i1q+i1qyA8IGtha3VrYWt1XCA7CivmoYjlhoXlm7MgPCBhbicnbmFpenVcIDsKK+WQiOiogOiRiSA8IGFpa290b2JhXCA7Civlr4bpgKAgPCBtaXRzdXpvdVwgOwor5qW95puyIDwgZ2Fra3lva3VcIDsKK+mrmOazoiA8IHRha2FuYW1pXCA7CivkvJrpo58gPCBrYWlzaG9rdVwgOwor5a6a5pyf5Yi4IDwgdGVpa2lrZW5cIDsKK+WAkueriyA8IHRvdXJpdHN1XCA7CivoibLmhJ8gPCBzaGlraWthblwgOwor5bem5LiKIDwgaGlkYXJpdWVcIDsKK+S6iOeul+ahiCA8IHlvc2FuJydhblwgOwor5aSa5qeY5oCnIDwgdGF5b3VzZWlcIDsKK+WFiOWTsiA8IHNlbnRldHN1XCA7Civoh6ros6Dms5UgPCBqaWJhaWhvdVwgOwor5qW15p2xIDwga3lva3V0b3VcIDsKK+WHuuS4jeeyviA8IGRlYnVzaG91XCA7CivlronlsbHlsqkgPCBhbnphbmdhblwgOwor6ICB5aSn5a62IDwgcm91dGFpa2FcIDsKK+awj+e0oOaApyA8IHVqaXN1am91XCA7CivkuIrlpKnmsJcgPCBqb3V0ZW5raVwgOwor56ys5LiA5aOwIDwgZGFpaXNzZWlcIDsKK+WwjueBq+e3miA8IGRvdWthc2VuXCA7CivprZrlsYsgPCBzYWthbmF5YVwgOwor5L6d6aC85b+DIDwgaXJhaXNoaW5cIDsKK+i3s+eusSA8IHRvYmliYWtvXCA7Civou5/lvI8gPCBuYW5zaGlraVwgOwor6LKg5YK16ICFIDwgZnVzYWlzaGFcIDsKK+mrmOauvyA8IHRha2Fkb25vXCA7CivlvozpoK3pg6ggPCBrb3V0b3VidVwgOwor5YGP54mHIDwga2F0YWhhcmFcIDsKK+W3neS4iiA8IGthd2FrYW1pXCA7Civnmq7ohprnl4UgPCBoaWZ1YnlvdVwgOwor5bGx56iLIDwgeWFtYWhvZG9cIDsKK+eZuuWLlSA8IGhhdHN1ZG91XCA7CivogIHlpKvlqaYgPCByb3VmdXVmdVwgOwor5YWI5Y+jIDwgc2Vua3VjaGlcIDsKK+WcsOS4i+awtCA8IGNoaWthc3VpXCA7CivogovpqqggPCByb2trb3RzdVwgOwor6Zu75rCX5LujIDwgZGVua2lkYWlcIDsKK+Wumue+qeWfnyA8IHRlaWdpaWtpXCA7CivnlZznlKMgPCBjaGlrdXNhblwgOwor6Imy5b2pIDwgc2hpa2lzYWlcIDsKK+iJr+W/gyA8IHJ5b3VzaGluXCA7CivnlJ/nsbMgPCBuYW1hZ29tZVwgOwor55So562GIDwgeW91aGl0c3VcIDsKK+aUvueBq+e9qiA8IGhvdWthemFpXCA7Civpm6jlkIjnvr0gPCBhbWFnYXBwYVwgOwor5Y+X5YiR6ICFIDwganVrZWlzaGFcIDsKK+iHk+eJqSA8IHpvdW1vdHN1XCA7CivpnZ7lhazplosgPCBoaWtvdWthaVwgOwor6YGZ44CFIDwgaGFydWJhcnVcIDsKK+mqqOeBsCA8IGtvdHN1YmFpXCA7Civmma7oq4vloLQgPCBmdXNoaW5iYVwgOwor5aSa5bO25rW3IDwgdGF0b3VrYWlcIDsKK+iIueaXhSA8IGZ1bmF0YWJpXCA7CivoiLnmlrkgPCBmdW5ha2F0YVwgOwor5Yq05YON5q2MIDwgcm91ZG91a2FcIDsKK+WvhOa4r+WcsCA8IGtpa291Y2hpXCA7CivoirHlnJIgPCBoYW5hem9ub1wgOwor5a6a5pyf5L6/IDwgdGVpa2liaW5cIDsKK+i7jeW+iyA8IGd1bnJpdHN1XCA7Civou43lvbkgPCBndW4nJ3lha3VcIDsKK+acquadpeW9oiA8IG1pcmFpa2VpXCA7Civnmb7lhIQgPCBoeWFrdW9rdVwgOwor5bGR57GgIDwga3V6dWthZ29cIDsKK+eXm+aSgyA8IHRzdXVnZWtpXCA7CivlhajkubMgPCB6ZW4nJ255dXVcIDsKK+agvOiqvyA8IGtha3VjaG91XCA7CivovLjlh7ogPCB5dXNodXRzdVwgOwor6aOb6KGM5aOrIDwgaGlrb3VzaGlcIDsKK+amguaLrCA8IGdhaWthdHN1XCA7CivohqDnnYAgPCBrb3VjaGFrdVwgOwor5aaK55Sj5ammIDwgbmluc2FucHVcIDsKK+efreaZgumWkyA8IHRhbmppa2FuXCA7CivkvbXoqK0gPCBoZWlzZXRzdVwgOwor55m+5YCNIDwgaHlha3ViYWlcIDsKK+WBj+W3ruWApCA8IGhlbnNhY2hpXCA7CivkuIvpmY3nt5ogPCBrYWtvdXNlblwgOwor5rSL6I+T5a2QIDwgeW91Z2FzaGlcIDsKK+aWreijgeapnyA8IGRhbnNhaWtpXCA7Civou4rluqcgPCBrdXJ1bWF6YVwgOwor5YWI5YWlIDwgc2VuJydueXV1XCA7Civpo5vooYzloLQgPCBoaWtvdWpvdVwgOwor5YCf55SoIDwgc2hha3V5b3VcIDsKK+Wuv+izgyA8IHlhZG9jaGluXCA7CivnlZzniqwgPCBjaGlrdWtlblwgOwor5oG15q+U6aCI6KybIDwgZWJpc3Vrb3VcIDsKK+WCjeadliA8IHNvYmFkenVlXCA7CivlhYPlhYMgPCBtb3RvbW90b1wgOwor5bel5YW35YWlIDwga291Z3VpcmVcIDsKK+S9k+a4qeioiCA8IHRhaW9ua2VpXCA7Civlr53ooosgPCBuZWJ1a3Vyb1wgOwor55m66KGM5pelIDwgaGFra291YmlcIDsKK+iKneWcsCA8IHNoaWJhY2hpXCA7Civmi7fllY/lhbcgPCBnb3Vtb25ndVwgOwor55qE5LitIDwgdGVraWNodXVcIDsKK+mZpOWkluS+iyA8IGpvZ2FpcmVpXCA7CivlsLHnuJsgPCBzaHV1YmFrdVwgOwor5a+/6ICB5Lq6IDwganVyb3VqaW5cIDsKK+WvhuisgCA8IG1pdHN1Ym91XCA7Civlhazlj5blp5QgPCBrb3V0b3JpaVwgOwor6Zmi5aSW5ZujIDwgaW5nYWlkYW5cIDsKK+S4jeWkieaApyA8IGZ1aGVuc2VpXCA7Civlr4boq4cgPCBtaXRzdWRhblwgOwor5aSa55Sj57O7IDwgdGFzYW5rZWlcIDsKK+eZuuS7pCA8IGhhdHN1cmVpXCA7CivlsI/opo/mqKEgPCBzaG91a2lib1wgOwor5ZCI6K2w5Yi2IDwgZ291Z2lzZWlcIDsKK+e2reeuoeadnyA8IGlrYW5zb2t1XCA7Civoia/lsIYgPCByeW91c2hvdVwgOwor5a6i6LuKIDwga3lha3VzaGFcIDsKK+iEseiJsiA8IGRhc3Nob2t1XCA7Civpq5jmuKnoqIggPCBrb3VvbmtlaVwgOwor6auY5pytIDwga291c2F0c3VcIDsKK+WIneetieenkSA8IHNob3RvdWthXCA7CivoqJjmhrbms5UgPCBraW9rdWhvdVwgOwor5LuK5pyd5pa5IDwga2VzYWdhdGFcIDsKK+eZvuS4hyA8IGh5YWt1bWFuXCA7CivnoLTnoJXmgKcgPCBoYXNhaXNlaVwgOwor6bm/6YeO6IuRIDwgcm9rdXlhb25cIDsKK+S7memqqCA8IHNlbmtvdHN1XCA7CivlronphZIgPCB5YXN1emFrZVwgOwor5YO75aKDIDwgaGVraWt5b3VcIDsKK+i7iuWxiyA8IGt1cnVtYXlhXCA7CivoiJ7lj7Doo48gPCBidXRhaXVyYVwgOwor57WM5Za25qipIDwga2VpZWlrZW5cIDsKK+i6q+W/gyA8IHNoaW5zaGluXCA7Civnl5vmg5wgPCB0c3V1c2VraVwgOwor5LiN54eD5oCnIDwgZnVuZW5zZWlcIDsKK+WBveacrSA8IG5pc2VmdWRhXCA7CivnpZ7npYflrpggPCBqaW5naWthblwgOwor5YCf54mpIDwga2FyaW1vbm9cIDsKK+i1pOibmSA8IGFrYWdhZXJ1XCA7CivooqvlrrPogIUgPCBoaWdhaXNoYVwgOwor5LuY6aasIDwgdHN1a2V1bWFcIDsKK+awtOmFuOWfuiA8IHN1aXNhbmtpXCA7CivlpKnkvZPlm7MgPCB0ZW50YWl6dVwgOwor6L+R6Led6ZuiIDwga2lua3lvcmlcIDsKK+a6luekvuWToSA8IGp1bnNoYWluXCA7CivotaTomasgPCBha2FtdXNoaVwgOwor5L2X6KiAIDwgd2FiaWdvdG9cIDsKK+S6uuS7tuiyuyA8IGppbmtlbmhpXCA7CivluLjlvpfmhI8gPCBqb3V0b2t1aVwgOwor55Sf55quIDwgbmFtYWthd2FcIDsKK+alteaApyA8IGt5b2t1c2VpXCA7CivoibLlpbMgPCBpcm9vbicnbmFcIDsKK+i8quS8kCA8IHJpbmJhdHN1XCA7CivlgI3njocgPCBiYWlyaXRzdVwgOwor55qu6ISC6IW6IDwgaGlzaGlzZW5cIDsKK+eEoeWumuW9oiA8IG11dGVpa2VpXCA7Civlj6/nlKjmgKcgPCBrYXlvdXNlaVwgOwor5Lq655Sf5rS+IDwgamluc2VpaGFcIDsKK+S/l+ensCA8IHpva3VzaG91XCA7CivlsbHnjL8gPCB5YW1hemFydVwgOwor5bGx54yrIDwgeWFtYW5la29cIDsKK+S8nemBlCA8IGRlbnRhdHN1XCA7CivnmbrooYzmiYAgPCBoYWtrb3Vqb1wgOwor5pGp5aSp5qW8IDwgbWF0ZW5yb3VcIDsKK+WvteiHoyA8IGNob3VzaGluXCA7CivlsI/plpPniakgPCBrb21hbW9ub1wgOwor5qSN5q+bIDwgc2hva3Vtb3VcIDsKK+W+oeWkp+WxpCA8IGdvdGFpc291XCA7CivorablgpnpmoogPCBrZWliaXRhaVwgOwor5Ymy54O5552AIDwga2FwcG91Z2lcIDsKK+WNlOWSjOmfsyA8IGt5b3V3YW9uXCA7Civlj5fli5XmhYsgPCBqdWRvdXRhaVwgOwor57eP5YuV5ZOhIDwgc291ZG91aW5cIDsKK+iCiemNiyA8IG5pa3VuYWJlXCA7CivnlLfniLUgPCBkYW5zaGFrdVwgOwor6Iqx5p6X57OWIDwga2FyaW50b3VcIDsKK+S6uumtgiA8IGhpdG9kYW1hXCA7Civohbnnl5sgPCBmdWt1dHN1dVwgOwor6Ii55bqVIDwgZnVuYXpva29cIDsKK+iIueW6iiA8IGZ1bmFkb2tvXCA7Civpp4bokL0gPCBrYWtlb2NoaVwgOwor5qW15biMIDwgZ29rdW1hcmVcIDsKK+S6uumqqCA8IGppbmtvdHN1XCA7CivlsI/ntZAgPCBrb211c3ViaVwgOwor5q2j56S+5ZOhIDwgc2Vpc2hhaW5cIDsKK+etiea4qee3miA8IHRvdW9uc2VuXCA7Civlrp/oqqwgPCBqaXNzZXRzdVwgOwor5b6h6ZyK5bGLIDwgbWl0YW1heWFcIDsKK+S4gOWkleipsSA8IGlzc2VraXdhXCA7CivlsI/ngrrmm78gPCBrb2dhd2FzZVwgOwor56ys5LiA5L2NIDwgZGFpaWNoaWlcIDsKK+WxpeeJqSA8IGhha2ltb25vXCA7Civnl4XlvrQgPCBieW91Y2hvdVwgOwor56iO6Zai5ZCPIDwgemVpa2FucmlcIDsKK+mkiuiCsuiyuyA8IHlvdWlrdWhpXCA7CivlrproqqwgPCB0ZWlzZXRzdVwgOwor6Ieo5pyIIDwgcmluZ2V0c3VcIDsKK+a1gemPkemmrCA8IHlhYnVzYW1lXCA7Civnl4XlvLEgPCBieW91amFrdVwgOwor5o6n6Ki05Lq6IDwga291c29uaW5cIDsKK+iMtuipseS8miA8IGNoYXdha2FpXCA7Civllqvnt4rkuosgPCBraWtraW5qaVwgOwor5ZC46YeR5YmbIDwga29rb25nb3VcIDsKK+mqqOadkCA8IGtvdHN1emFpXCA7CivnlKPniakgPCBzYW5idXRzdVwgOwor5qSc5pytIDwga2Vuc2F0c3VcIDsKK+iyqumjnyA8IGRvbnNob2t1XCA7Civkv6HnlKggPCBzaGluJyd5b3VcIDsKK+iEh+iFuSA8IHdha2liYXJhXCA7CivogIHnt7TlrrYgPCByb3VyZW5rYVwgOwor5LiN6Kq/5ZKMIDwgZnVjaG91d2FcIDsKK+eUn+eJqSA8IG5hbWFtb25vXCA7CivlsYDnlaogPCBreW9rdWJhblwgOwor5bCP562WIDwgc2hvdXNha3VcIDsKK+anjeWFiCA8IHlhcmlzYWtpXCA7CivmsJfnrqHmlK8gPCBraWthbnNoaVwgOwor55ew5aO6IDwgdGFudHN1Ym9cIDsKK+mrquW6iiA8IGthbWlkb2tvXCA7CivmsLTphbjljJYgPCBzdWlzYW5rYVwgOwor5aSn5Lq65rCXIDwgZGFpbmlua2lcIDsKK+WvkuiJsiA8IGthbnNob2t1XCA7CivpnZLpioXlmaggPCBzZWlkb3VraVwgOwor5qSN5qC9IDwgc2hva3VzYWlcIDsKK+S8kei2syA8IGt5dXVzb2t1XCA7CivoiLnlrr8gPCBmdW5heWFkb1wgOwor5LuP6ZaAIDwgYnV0c3Vtb25cIDsKK+mjm+ihjOS+vyA8IGhpa291YmluXCA7Civlgo3lvbkgPCB3YWtpeWFrdVwgOwor6IKJ6L+rIDwgbmlrdWhha3VcIDsKK+WPr+iDveazlSA8IGthbm91aG91XCA7CivnnJ/nj6Dmr40gPCBzaGluanVib1wgOwor5qC46IacIDwga2FrdW1ha3VcIDsKK+WwguaUu+enkSA8IHNlbmtvdWthXCA7CivljJbohr/oj4wgPCBrYW5vdWtpblwgOwor5Lqh6aq4IDwgbmFraWdhcmFcIDsKK+iHmOaciCA8IHJvdWdldHN1XCA7CivmpI3mnpcgPCBzaG9rdXJpblwgOwor6Z2e5bi457eaIDwgaGlqb3VzZW5cIDsKK+eyvuS4gOadryA8IHNlaWlwcGFpXCA7CivpgYfkuI3pgYcgPCBndXVmdWd1dVwgOwor6IO46IacIDwga3lvdW1ha3VcIDsKK+mjvemjnyA8IGhvdXNob2t1XCA7Civkv67nhp8gPCBzaHV1anVrdVwgOwor5pyq6ICV5ZywIDwgbWlrb3VjaGlcIDsKK+mWgOS4i+eUnyA8IG1vbmthc2VpXCA7CivkuIDpoqjlkYIgPCBoaXRvZnVyb1wgOwor5a6F6Ki6IDwgdGFrdXNoaW5cIDsKK+Wwj+emhCA8IHNob3Vyb2t1XCA7CivkvJ3oqqwgPCBkZW5zZXRzdVwgOwor6Laz55mWIDwgYXNoaWt1c2VcIDsKK+iEseeojiA8IGRhdHN1emVpXCA7Civkuqzpn78gPCBreW91a3lvdVwgOwor5Z+56aSK5Z+6IDwgYmFpeW91a2lcIDsKK+i7ouWFpSA8IHRlbicnbnl1dVwgOwor6LuN6ZqK5YyWIDwgZ3VudGFpa2FcIDsKK+a8lOiKuOS8miA8IGVuZ2Vpa2FpXCA7Civlr77nq4sgPCB0YWlyaXRzdVwgOwor5paH5Lq655S7IDwgYnVuamluZ2FcIDsKK+ePvuaZguS7oyA8IGdlbmppZGFpXCA7CivohavniakgPCBzaHVtb3RzdVwgOwor5bqD56+E5ZuyIDwga291aGFuJydpXCA7CivmpbXlpKcgPCBreW9rdWRhaVwgOwor55Wl5pu4IDwgcnlha3VzaG9cIDsKK+Wuv+iIjiA8IHNodWt1c2hhXCA7Civou43ljZIgPCBndW5zb3RzdVwgOwor5YaG5bGL5qC5IDwgbWFydXlhbmVcIDsKK+WzsOWzsCA8IG1pbmVtaW5lXCA7Civln7nppIrlnJ8gPCBiYWl5b3Vkb1wgOwor5a+S5rCX5ZujIDwga2Fua2lkYW5cIDsKK+WuueiJsiA8IHlvdXNob2t1XCA7CivnspfliKnnm4ogPCBhcmFyaWVraVwgOwor5LuL6YyvIDwga2Fpc2hha3VcIDsKK+S6iOeul+WkliA8IHlvc2FuZ2FpXCA7CivpnZ7msJHkuLsgPCBoaW1pbnNodVwgOwor5bWM5YWlIDwga2FuJydueXV1XCA7Civou5LliKUgPCBrZW5iZXRzdVwgOwor5YG05b25IDwgc29iYXlha3VcIDsKK+i7ouWAnyA8IHRlbnNoYWt1XCA7Civlj5fnm4rogIUgPCBqdWVraXNoYVwgOwor6ISK57SiIDwgc2VraXNha3VcIDsKK+WuieWumuadvyA8IGFudGVpYmFuXCA7CivoqJjlv7XppKggPCBraW5lbmthblwgOwor5LiA5q2p5LiA5q2pIDwgaXBwb2lwcG9cIDsKK+Wkp+Wuh+WumSA8IGRhaXVjaHV1XCA7CivosqHplqUgPCB6YWliYXRzdVwgOwor5Lqc5oCl5oCnIDwgYWt5dXVzZWlcIDsKK+acqOm8oCA8IGtpbmV6dW1pXCA7CivpqqjmipggPCBrb3NzZXRzdVwgOwor6ISa56uLIDwga3lhdGF0c3VcIDsKK+WDu+S6iyA8IGhpZ2Fnb3RvXCA7CivoqIjnrpfnsL8gPCBrZWlzYW5ib1wgOwor55Wl5paHIDwgcnlha3VidW5cIDsKK+i7kuWFiCA8IG5va2lzYWtpXCA7CivpnZnmraLnlLsgPCBzZWlzaGlnYVwgOwor5LiN5pW05ZCIIDwgZnVzZWlnb3VcIDsKK+S6jOmHjemhjiA8IG5panV1YWdvXCA7CivliLblvqHmqZ8gPCBzZWlneW9raVwgOwor5qC557W2IDwga29uemV0c3VcIDsKK+aenemBkyA8IGVkYW1pY2hpXCA7CivkuoznrYnliIYgPCBuaXRvdWJ1blwgOwor5a6/6ICBIDwgc2h1a3Vyb3VcIDsKK+iyuOmHkSA8IGthc2hpa2luXCA7CivlubPngonms5UgPCBoZWlyb2hvdVwgOwor6auY5a+GIDwga291bWl0c3VcIDsKK+S6lOeonOWgoSA8IGdvcnlvdWhvXCA7CivmnKrmnaXlg48gPCBtaXJhaXpvdVwgOwor6Laz5rip5ZmoIDwgc29rdW9ua2lcIDsKK+S6jOetieWFtSA8IG5pdG91aGVpXCA7CivosrTml4/pmaIgPCBraXpva3VpblwgOwor5LuP6YGTIDwgYnV0c3Vkb3VcIDsKK+S9leiAhSA8IG5hbmltb25vXCA7Civoia/kv5cgPCByeW91em9rdVwgOwor6KiY5Y+36KuWIDwga2lnb3Vyb25cIDsKK+S9j+iBtyA8IGp1dXNob2t1XCA7Civmn5TooZMgPCBqdXVqdXRzdVwgOwor55Sf5rC0IDwgbmFtYW1penVcIDsKK+WQjeipnuWPpSA8IG1laXNoaWt1XCA7Civog7jns54gPCBtdW5la3Vzb1wgOwor5a6i6Ii5IDwga3lha3VzZW5cIDsKK+iAgemqqCA8IHJvdWtvdHN1XCA7CivmnpXovrogPCBtYWt1cmFiZVwgOwor5bCk54mpIDwgeXV1YnV0c3VcIDsKK+S8nemmrOiIuSA8IHRlbm1hc2VuXCA7CivkubHpq6ogPCByYW5wYXRzdVwgOwor6YqA5rKz57O7IDwgZ2luZ2FrZWlcIDsKK+S9k+e9sCA8IHRhaWJhdHN1XCA7Civkurrph4wgPCBoaXRvemF0b1wgOwor5a6i6IazIDwga3lha3V6ZW5cIDsKK+Wkp+WuruWPuCA8IGRhaWd1dWppXCA7CivogonopqogPCBuaWt1c2hpblwgOwor5rWB6KGM55uuIDwgaGF5YXJpbWVcIDsKK+mBoOimluecvCA8IGVuc2hpZ2FuXCA7Civlr4znsaQgPCB0b21pa3VqaVwgOwor5Y215bej54KOIDwgcmFuc291ZW5cIDsKK+WBteWvnyA8IHRlaXNhdHN1XCA7Civog73nrYYgPCBub3VoaXRzdVwgOwor5Lm+6aKoIDwga2FyYWthemVcIDsKK+mrquWeiyA8IGthbWlnYXRhXCA7CivmnKrkuqHkurogPCBtaWJvdWppblwgOwor5byV55So56ymIDwgaW4nJ3lvdWZ1XCA7Civoia/kuYUgPCByeW91a3l1dVwgOwor5p2R6ZuoIDwgbXVyYXNhbWVcIDsKK+aflOmBk+WutiA8IGp1dWRvdWthXCA7Civou5LkuKYgPCBub2tpbmFtaVwgOwor5LiN5Z2H6KGhIDwgZnVraW5rb3VcIDsKK+i7kuS4iCA8IG5va2l0YWtlXCA7Civlr5Lnq7kgPCBrYW5jaGlrdVwgOwor5pyI6b2iIDwgZ2V0c3VyZWlcIDsKK+WvvuipseiAhSA8IHRhaXdhc2hhXCA7Civot7PmooEgPCBjaG91cnlvdVwgOwor5a+S56m6IDwgc2FtdXpvcmFcIDsKK+ion+WLmemDqCA8IHNob3VtdWJ1XCA7Civku7Dop5IgPCBneW91a2FrdVwgOwor5b6h6ZyK5YmNIDwgZ29yZWl6ZW5cIDsKK+WFjOaPm+WIuCA8IGRha2Fua2VuXCA7CivkuI3mkYLnlJ8gPCBmdXNlc3NlaVwgOwor5qW95YqHIDwgZ2FrdWdla2lcIDsKK+aXpeacrOmiqCA8IG5paG9uZnV1XCA7Civpo4Tpo4QgPCBoeW91aHlvdVwgOwor5pyo6aqoIDwgbW9ra290c3VcIDsKK+WAmeijnOWcsCA8IGtvdWhvY2hpXCA7Civnjonpq4QgPCBneW9rdXp1aVwgOwor56CC6Ziy5p6XIDwgc2Fib3VyaW5cIDsKK+S/l+a1gSA8IHpva3VyeXV1XCA7CivkuIvlo6vlrpggPCBrYXNoaWthblwgOwor5biC6K2w5LyaIDwgc2hpZ2lrYWlcIDsKK+S4gOaZguacnyA8IGljaGlqaWtpXCA7CivlgaXlrp8gPCBrZW5qaXRzdVwgOwor6Ieq6LKg5b+DIDwgamlmdXNoaW5cIDsKK+ixqumbqiA8IGdvdXNldHN1XCA7Civnm7jlkIjlgpggPCBhaWFpZ2FzYVwgOwor6IG06KaaIDwgY2hvdWtha3VcIDsKK+ismeitsuiqniA8IGtlbmpvdWdvXCA7Civnj43ph40gPCBjaGluY2hvdVwgOwor5om25oyB57GzIDwgZnVjaGltYWlcIDsKK+WGjei1t+WLlSA8IHNhaWtpZG91XCA7CivnjaPljLvlraYgPCBqdXVpZ2FrdVwgOwor6Z2e5bi455SoIDwgaGlqb3V5b3VcIDsKK+egtOW7ieaBpSA8IGhhcmVuY2hpXCA7Civlh7rmlL7poYwgPCBkZWhvdWRhaVwgOwor5a6J5a6a5oSfIDwgYW50ZWlrYW5cIDsKK+WBtOWjgSA8IHNva3VoZWtpXCA7CivmpJzlsL8gPCBrZW4nJ255b3VcIDsKK+mkiuiAgemZoiA8IHlvdXJvdWluXCA7CivkubHpm5EgPCByYW56YXRzdVwgOwor5bGe5pybIDwgc2hva3Vib3VcIDsKK+mHjuiJr+eMqyA8IG5vcmFuZWtvXCA7CivkuK3pu5IgPCBuYWthZ3Vyb1wgOwor5pyq5LiB5bm0IDwgbWl0ZWluZW5cIDsKK+S6uui2syA8IGhpdG9hc2hpXCA7Civlr77niakgPCB0YWlidXRzdVwgOwor5a6J5a6a5oCnIDwgYW50ZWlzZWlcIDsKK+eOiemhlCA8IGd5b2t1Z2FuXCA7Civpoq/poq8gPCBzYXNzYXRzdVwgOwor5LuP6KqsIDwgYnVzc2V0c3VcIDsKK+WztuWPsCA8IHNoaW1hZGFpXCA7Civku4foro4gPCBreXV1c2h1dVwgOwor5L2155m6IDwgaGVpaGF0c3VcIDsKK+mnkOeVmSA8IGNodXVyeXV1XCA7CivnlaXluL0gPCByeWFrdWJvdVwgOwor5rG6566X5pyfIDwga2Vzc2Fua2lcIDsKK+acnemjryA8IGFzYW1lc2hpXCA7Civoh6rkuZfmoLkgPCBqaWpvdWtvblwgOwor5YWo6I236YeNIDwgemVua2FqdXVcIDsKK+S9leeoiyA8IG5hbmlob2RvXCA7CivlpaXlvqHmrr8gPCBva3Vnb3RlblwgOwor6aKo6aOfIDwgZnV1c2hva3VcIDsKK+eVs+WxiyA8IHRhdGFtaXlhXCA7Civoo73pgKDmiYAgPCBzZWl6b3Vqb1wgOwor5YG05ZynIDwgc29rdWF0c3VcIDsKK+i0lue9qiA8IHNob2t1emFpXCA7Civlv6vnlLflhZAgPCBrYWlkYW5qaVwgOwor6IKp6IKYIDwga2F0YWhpamlcIDsKK+aXuuaWh+ekviA8IG91YnVuc2hhXCA7Civmn5PoibIgPCBzZW5zaG9rdVwgOwor6LaF6Z+z5rOiIDwgY2hvdW9ucGFcIDsKK+WuiOitt+mciiA8IHNodWdvcmVpXCA7CivnhKHmnJ/lu7bmnJ8gPCBtdWtpZW5raVwgOwor5pyo5pu+5bedIDwga2lzb2dhd2FcIDsKK+W8semfs+WZqCA8IGpha3VvbmtpXCA7CivmnZHph4wgPCBtdXJhemF0b1wgOwor5LuZ6KGTIDwgc2VuanV0c3VcIDsKK+S/l+alvSA8IHpva3VnYWt1XCA7CivpppbnrYsgPCBrdWJpc3VqaVwgOwor5L2H56uLIDwgY2hvcml0c3VcIDsKK+WvhuedgCA8IG1pdGNoYWt1XCA7Civmsbrnrpfml6UgPCBrZXNzYW5iaVwgOwor6IWw5p2/IDwga29zaGlpdGFcIDsKK+iCoeiCiSA8IG1vbW9uaWt1XCA7CivohLHmvI8gPCBkYXRzdXJvdVwgOwor6Ieq5Li75qipIDwgamlzaHVrZW5cIDsKK+iDveW8geWutiA8IG5vdWJlbmthXCA7Civlj6/og73mgKcgPCBrYW5vdXNlaVwgOwor5aSn5pem6YKjIDwgb29kYW4nJ25hXCA7CivkuLjpq7cgPCBtYXJ1bWFnZVwgOwor5Y2w5bqm5pWZIDwgaW5kb2t5b3VcIDsKK+WxiOabsiA8IGt1a2t5b2t1XCA7CivoiLnkurogPCBmdW5hYml0b1wgOwor6aqo5aSqIDwgaG9uZWJ1dG9cIDsKK+mrmOWNkiA8IGtvdXNvdHN1XCA7CivnhKHkurrls7YgPCBtdWppbnRvdVwgOwor5bCx5qWtIDwgc2h1dWd5b3VcIDsKK+mjn+mBkyA8IHNob2t1ZG91XCA7CivnnJ/kvLzkuosgPCBtYW5lZ290b1wgOwor6LC36aKoIDwgdGFuaWthemVcIDsKK+ishOWGmeWZqCA8IHRvdXNoYWtpXCA7Civku67okbogPCBrYXJpYnVraVwgOwor6aKo6ZuqIDwgZnV1c2V0c3VcIDsKK+aflOiCjCA8IHlhd2FoYWRhXCA7Civpp5Dni6wgPCBjaHV1ZG9rdVwgOwor5biw6YKE6ICFIDwga2lrYW5zaGFcIDsKK+eOiemWgCA8IGd5b2t1bW9uXCA7CivliqnnlKPpmaIgPCBqb3NhbicnaW5cIDsKK+aciOmjnyA8IGdlc3Nob2t1XCA7CivlpbPlupflk6EgPCBqb3RlbicnaW5cIDsKK+agl+efsyA8IGt1cmlpc2hpXCA7CivlsI/ms6IgPCBzYXphbmFtaVwgOwor6Ju46YOo5bGLIDwgdGFrb2JleWFcIDsKK+S6iOeul+S4iiA8IHlvc2Fuam91XCA7Civlrprnq4sgPCB0ZWlyaXRzdVwgOwor5Li46aaWIDwgbWFydWt1YmlcIDsKK+S4remrmCA8IG5ha2FkYWthXCA7CivlrprmmYLliLYgPCB0ZWlqaXNlaVwgOwor5a6Y56uLIDwga2Fucml0c3VcIDsKK+iDveeOhyA8IG5vdXJpdHN1XCA7CivmraPlvKbms6IgPCBzZWlnZW5oYVwgOwor5L2Z5omA5LqLIDwgeW9zb2dvdG9cIDsKK+i2s+alrSA8IGFzaGl3YXphXCA7CivmnKjpkLggPCBib2t1dGFrdVwgOwor5Li76aOfIDwgc2h1c2hva3VcIDsKK+S/l+absiA8IHpva2t5b2t1XCA7CivkvZznl4UgPCBzYWt1YnlvdVwgOwor5L2V55m+IDwgbmFuYnlha3VcIDsKK+S7geihkyA8IGppbmp1dHN1XCA7Civppqzpub/ogIUgPCBiYWthbW9ub1wgOwor5qGc5rmvIDwgc2FrdXJheXVcIDsKK+aknOWcpyA8IGtlbicnYXRzdVwgOwor5YSA56S85YW1IDwgZ2lyZWloZWlcIDsKK+S4gOm9oyA8IGhpdG9rb21hXCA7CivotrPmorAgPCBhc2hpa2FzZVwgOwor5pyI6Z2iIDwgZ2V0c3VtZW5cIDsKK+aXpeacrOmFkiA8IG5paG9uc2h1XCA7CivlsL3ml6UgPCBqaW5qaXRzdVwgOwor5bCR5qyyIDwgc2hvdXlva3VcIDsKK+eUu+W8lSA8IGtha3ViaWtpXCA7Civml6nnlKPlhZAgPCBzb3V6YW5qaVwgOwor55WZ5a2mIDwgcnl1dWdha3VcIDsKK+Wtpue/kiA8IGdha3VzaHV1XCA7Civot4vmlocgPCBiYXRzdWJ1blwgOwor5bGx5b2mIDwgeWFtYWJpa29cIDsKK+WxseW9oiA8IHlhbWFnYXRhXCA7Civnl4XkuK0gPCBieW91Y2h1dVwgOwor5o6h57a/5ZmoIDwgc2FpbWVua2lcIDsKK+WBtuWKmyA8IGd1dXJ5b2t1XCA7Civoi7HpgKPpgqYgPCBlaXJlbnBvdVwgOwor5Lu76IG3IDwgbmluc2hva3VcIDsKK+iEseavmyA8IGRhdHN1bW91XCA7Civml6nnlJ/lhZAgPCBzb3VzZWlqaVwgOwor5pyo6YuPIDwga2liYXNhbWlcIDsKK+iyp+ihgCA8IGhpbmtldHN1XCA7CivliqDnm5/ogIUgPCBrYW1laXNoYVwgOwor6ZmN6Zuo6YePIDwga291dXJ5b3VcIDsKK+iAs+iosSA8IG1pbWltb3RvXCA7CivlgpHkurogPCBrZXRzdWppblwgOwor5a++5rG6IDwgdGFpa2V0c3VcIDsKK+WwhOauuiA8IHNoYXNhdHN1XCA7CivorablgpnoiYcgPCBrZWliaXRlaVwgOwor5Ye65p2l5LqLIDwgZGVraWdvdG9cIDsKK+S7pOiJsiA8IHJlaXNob2t1XCA7CivkvqHpm7vlrZAgPCBrYWRlbnNoaVwgOwor5bCB5q66IDwgZnV1c2F0c3VcIDsKK+WPpOeUn+eVjCA8IGtvc2Vpa2FpXCA7CivlsI/mp4wgPCBrb2R6dWNoaVwgOwor5a2m57i+IDwgZ2FrdXNla2lcIDsKK+WxseW3nSA8IHlhbWFnYXdhXCA7Civpq5jkvY4gPCB0YWthaGlrdVwgOwor5Lit6aCDIDwgbmFrYWdvcm9cIDsKK+iBt+iDvSA8IHNob2t1bm91XCA7CivlsYjmipggPCBrdXNzZXRzdVwgOwor5a6f55u0IDwgaml0Y2hva3VcIDsKK+mHkemtmuWxiyA8IGtpbmd5b3lhXCA7CivohbDmipggPCBrb3NoaW9yZVwgOwor5pyo5aSp6JO8IDwgbWF0YXRhYmlcIDsKK+Wun+ebiiA8IGppdHN1ZWtpXCA7CivljYroo7jkvZMgPCBoYW5yYXRhaVwgOwor5a6a552AIDwgdGVpY2hha3VcIDsKK+aigeacqCA8IHJ5b3Vib2t1XCA7Civml6XmnKzou40gPCBuaWhvbmd1blwgOwor5pel5pys6LuKIDwgbmlob25zaGFcIDsKK+WBtuWBtiA8IHRhbWF0YW1hXCA7Civkv67nvoXpgZMgPCBzaHVyYWRvdVwgOwor6Laz5pepIDwgYXNoaWJheWFcIDsKK+WVhuihjOeCuiA8IHNob3Vrb3VpXCA7CivoiIzku6MgPCB6ZXRzdWRhaVwgOwor5p+x55+zIDwgY2h1dXNla2lcIDsKK+WxseWxsSA8IHlhbWF5YW1hXCA7CivmnaHph4zliLYgPCBqb3VyaXNlaVwgOwor5Lit6ZqUIDwgY2h1dWtha3VcIDsKK+WxgOaJgCA8IGt5b2t1c2hvXCA7Civmn5PnrYYgPCBzZW5waXRzdVwgOwor5oqV5b2x5rOVIDwgdG91ZWlob3VcIDsKK+S/oeaGkSA8IHNoaW5weW91XCA7CivmoZ/mqYsgPCBzYW5iYXNoaVwgOwor6IKJ57SwIDwgbmlrdWJvc29cIDsKK+WuoueUqCA8IGt5YWt1eW91XCA7CivkuK3pmZAgPCBuYWthZ2lyaVwgOwor5pyJ5bC+6aGeIDwgeXV1YmlydWlcIDsKK+WxseWvuiA8IHlhbWFkZXJhXCA7CivmrKfnvoXlt7QgPCB5b3Vyb3BwYVwgOwor5LiH6aqoIDwgYmFua290c3VcIDsKK+S4lumWk+S9kyA8IHNla2VudGVpXCA7CivkvIrpgZTlt7sgPCBkYXRlbWFraVwgOwor5L+u5b6pIDwgc2h1dWZ1a3VcIDsKK+S7j+iJpiA8IGZ1dHN1a2FuXCA7Civlrp/nlKggPCBqaXRzdXlvdVwgOwor5L+u5b6XIDwgc2h1dXRva3VcIDsKK+iDhueVpSA8IHRhbnJ5YWt1XCA7CivmsLTliKnmqKkgPCBzdWlyaWtlblwgOwor5Y+y5a2m5a62IDwgc2hpZ2Fra2FcIDsKK+S4uOmRvyA8IG1hcnVub21pXCA7CivlsbHlroggPCB5YW1hbW9yaVwgOwor6Laz5pG6IDwgYXNoaXp1cmlcIDsKK+mjn+iogCA8IHNob2t1Z2VuXCA7CivntI3ku5jph5EgPCBub3VmdWtpblwgOwor6JWO6bqm5q67IDwgc29iYWdhcmFcIDsKK+S6jOiogCA8IGZ1dGFrb3RvXCA7CivkvZPnhrEgPCB0YWluZXRzdVwgOwor6LWk6bOl6LWk6IW5IDwgYWtha29ra29cIDsKK+aWueWQkeiItSA8IGhvdWtvdWRhXCA7Civku67ntrQgPCBrYXJpdG9qaVwgOwor5aSP6Iez57eaIDwgZ2VzaGlzZW5cIDsKK+S4jeWdh+etiSA8IGZ1a2ludG91XCA7CivlroflrpnluL0gPCB1Y2h1dWJvdVwgOwor54Sh6aC85ryiIDwgYnVyYWlrYW5cIDsKK+WxiOW+kyA8IGt1dHN1anV1XCA7Civlrp/nj74gPCBqaXRzdWdlblwgOwor5r+D5bqm6KiIIDwgbm91ZG9rZWlcIDsKK+ePvuiBtyA8IGdlbnNob2t1XCA7CivosYHpgZQgPCBrYXR0YXRzdVwgOwor5L+h5b+1IDwgc2hpbicnbmVuXCA7CivpoY7pqqggPCBnYWtrb3RzdVwgOwor5LiA5pio5bm0IDwgb3RvdG9zaGlcIDsKK+acque1jOmokyA8IG1pa2Vpa2VuXCA7CivkuInpo58gPCBzYW5zaG9rdVwgOwor5pyd5a+d5Z2KIDwgYXNhbmVib3VcIDsKK+S6huimmiA8IHJ5b3VrYWt1XCA7CivnvqTpm7IgPCBtdXJha3Vtb1wgOwor5pyI6YeRIDwgZ2V0c3VraW5cIDsKK+i1pOayiCA8IHNla2ljaGluXCA7CivkuIvpoY4gPCBzaGl0YWFnb1wgOwor5bGx5aerIDwgeWFtYWhpbWVcIDsKK+iEguaxlyA8IGFidXJhYXNlXCA7CivohbDlvIEgPCBrb3NoaWJlblwgOwor5a6d546JIDwgaG91Z3lva3VcIDsKK+mBjuWkp+imliA8IGthZGFpc2hpXCA7CivlsJHmlbUgPCBzaG91dGVraVwgOwor57+h57+g6ImyIDwgaGlzdWlpcm9cIDsKK+mpjeWwhiA8IGd5b3VzaG91XCA7CivkuJjpmbUgPCBreXV1cnlvdVwgOwor55Wl5ZCNIDwgcnlha3VtZWlcIDsKK+Wcn+agueaApyA8IGRva29uam91XCA7CivnlaXlj7cgPCByeWFrdWdvdVwgOwor55Wl5Y+yIDwgcnlha3VzaGlcIDsKK+eVquWNkiA8IGJhbnNvdHN1XCA7Civnt4/mqKHmp5ggPCBzb3Vtb3lvdVwgOwor55Wl5Y+WIDwgcnlha3VzaHVcIDsKK+ioiOeul+apnyA8IGtlaXNhbmtpXCA7CivlvIHlvZPlsYsgPCBiZW50b3V5YVwgOwor5Luj5omT6ICFIDwgZGFpZGFzaGFcIDsKK+Wun+eKtiA8IGppdHN1am91XCA7CivlgJ/lnLAgPCBzaGFrdWNoaVwgOwor5L215q66IDwgaGVpc2F0c3VcIDsKK+iFsOW4ryA8IGtvc2hpb2JpXCA7CivkuIrpnbQgPCB1d2FndXRzdVwgOwor6Iac5aOBIDwgbWFrdWhla2lcIDsKK+miqOWqkuiKsSA8IGZ1dWJhaWthXCA7CivohLHmlocgPCBkYXRzdWJ1blwgOwor5a2Y56uLIDwgc29ucml0c3VcIDsKK+eEoeippumokyA8IG11c2hpa2VuXCA7Civlrp3niakgPCBob3Vtb3RzdVwgOwor6Ya46YCg6YWiIDwgam91em91c3VcIDsKK+S/l+W9oiA8IHpva3VneW91XCA7Civlj43li5XmtL4gPCBoYW5kb3VoYVwgOwor57WM5riI5a62IDwga2VpemFpa2FcIDsKK+a3i+W3tOiFuiA8IHJpbnBhc2VuXCA7CivkurrohpogPCBoaXRvaGFkYVwgOwor6aKo6LazIDwga2F6YWFzaGlcIDsKK+S5vuijgiA8IGthbnJldHN1XCA7CivmoY7moo8gPCBzaGlra29rdVwgOwor5LiA6aCDIDwgaGl0b2tvcm9cIDsKK+iHquS4u+aApyA8IGppc2h1c2VpXCA7Civnv4zpgLEgPCB5b2t1c2h1dVwgOwor6LaK5aSp5qW9IDwgZXRlbnJha3VcIDsKK+aoqeWIqemHkSA8IGtlbnJpa2luXCA7Civlr77ml6UgPCB0YWluaWNoaVwgOwor5p6g57WEIDwgd2FrdWd1bWlcIDsKK+aFouaAp+WMliA8IG1hbnNlaWthXCA7Civnv7voqLMgPCBob24nJ3lha3VcIDsKK+S6uuiEiCA8IGppbm15YWt1XCA7CivmjojkubPmnJ8gPCBqdW55dXVraVwgOwor5bCC6ZaA6KqeIDwgc2VubW9uZ29cIDsKK+WxseWfjiA8IHlhbWFqaXJvXCA7CivliY3oiJ7lj7AgPCBtYWVidXRhaVwgOwor5aSp54i+5LmO5rOiIDwgdGVuaXdvaGFcIDsKK+iEmuacrCA8IGt5YWt1aG9uXCA7Civpgbjnp5HnlJ8gPCBzZW5rYXNlaVwgOwor5p2x6IqdIDwgdG91c2hpYmFcIDsKK+i1pOaoqyA8IGFrYWdhc2hpXCA7CivohIrmpI4gPCBzZWtpdHN1aVwgOwor5a6f6Zqb5a62IDwgamlzc2Fpa2FcIDsKK+aftOeKrCA8IHNoaWJhaW51XCA7Civkv67lraYgPCBzaHV1Z2FrdVwgOwor5L+K5b6zIDwgc2h1bnRva3VcIDsKK+S4gOaYvOWknCA8IGl0Y2h1dXlhXCA7CivmnIjovKogPCBnZXRzdXJpblwgOwor5Luy56eLIDwgY2h1dXNodXVcIDsKK+S4u+i/sCA8IHNodWp1dHN1XCA7CivooYborbDpmaIgPCBzaHV1Z2lpblwgOwor5Lq66IKJIDwgamluJyduaWt1XCA7CivlqpLphYwgPCBiYWlzaGFrdVwgOwor5pel5pys6KO9IDwgbmlob25zZWlcIDsKK+S+i+aciCA8IHJlaWdldHN1XCA7CivnlJ/lqJggPCBraW11c3VtZVwgOwor5Y2w5Yik5birIDwgaW5iYW5zaGlcIDsKK+S7o+ethiA8IGRhaWhpdHN1XCA7Civlr4bmrrogPCBtaXNzYXRzdVwgOwor5pq06aOfIDwgYm91c2hva3VcIDsKK+WxseWbvSA8IHlhbWFndW5pXCA7CivogbfnqK4gPCBzaG9rdXNodVwgOwor5LiA6ZqbIDwgaGl0b2tpd2FcIDsKK+Wwj+eBq+WZqCA8IHNob3VrYWtpXCA7CivnhKHpoqjluK8gPCBtdWZ1dXRhaVwgOwor5LiA6ZqFIDwgaGl0b3N1bWlcIDsKK+WwseW6iiA8IHNodXVzaG91XCA7CivkuIjplbcgPCB0YWtlbmFnYVwgOwor6aCt6auqIDwgdG91aGF0c3VcIDsKK+eMpembkSA8IHdhaXphdHN1XCA7CivotrPlvaIgPCBhc2hpZ2F0YVwgOwor6LWw5p+757eaIDwgc291c2FzZW5cIDsKK+WuieeJqSA8IHlhc3Vtb25vXCA7CivnqbrmiYvlrrYgPCBrYXJhdGVrYVwgOwor5aSp5LqV5YCkIDwgdGVuam91bmVcIDsKK+WvkualtSA8IGthbmt5b2t1XCA7CivotrPlvLEgPCBhc2hpeW93YVwgOwor6KiI566X5pyoIDwga2Vpc2FuZ2lcIDsKK+WAmeWTiSA8IHNvdXJvdXlhXCA7Civkvovml6UgPCByZWlqaXRzdVwgOwor5Lit6YCfIDwgY2h1dXNva3VcIDsKK+aOoeeCreaJgCA8IHNhaXRhbmpvXCA7CivlvIHli5nlrpggPCBiZW5tdWthblwgOwor5Y+X55uK5qipIDwganVla2lrZW5cIDsKK+eUn+WjgSA8IG5hbWFrYWJlXCA7CivliqDlt6XntJkgPCBrYWtvdXNoaVwgOwor6IKJ55qEIDwgbmlrdXRla2lcIDsKK+iDuOakjiA8IGt5b3V0c3VpXCA7CivmlZnli5noqrIgPCBreW91bXVrYVwgOwor5qGC5pyIIDwga2VpZ2V0c3VcIDsKK+WupOa4qSA8IHNoaXRzdW9uXCA7CivpgKPli5XmqZ8gPCByZW5kb3VraVwgOwor5LuZ56qfIDwgc2Vua3V0c3VcIDsKK+Wvp+aXpSA8IG5laWppdHN1XCA7CivorbDkuovpjLIgPCBnaWppcm9rdVwgOwor5YaN5p2l5bm0IDwgc2FyYWluZW5cIDsKK+S4gOaYqOWknCA8IGlzc2FrdXlhXCA7Civnlarku5ggPCBiYW5kenVrZVwgOwor5a6H5a6Z5aG1IDwgdWNodXVqaW5cIDsKK+awtOmBk+WxiyA8IHN1aWRvdXlhXCA7CivotaTmnb4gPCBha2FtYXRzdVwgOwor55Wl5L2TIDwgcnlha3V0YWlcIDsKK+aiheW5siA8IHVtZWJvc2hpXCA7Civohbnlo4EgPCBmdWt1aGVraVwgOwor5Lit6Lu4IDwgY2h1dWppa3VcIDsKK+eVpeS8nSA8IHJ5YWt1ZGVuXCA7Civohbjlo4EgPCBjaG91aGVraVwgOwor6LGh6JmrIDwgem91bXVzaGlcIDsKK+ael+eriyA8IHJpbnJpdHN1XCA7Civph43ou4zmnaEgPCBqdXVraWpvdVwgOwor6LOq55aRIDwgc2hpdHN1Z2lcIDsKK+WxseWQuSA8IHlhbWFidWtpXCA7CivouI/liIcgPCBmdW1pa2lyaVwgOwor6YGV57SE6YeRIDwgaXlha3VraW5cIDsKK+adj+iMuCA8IGFuenV0YWtlXCA7CivnlJ/lm70gPCBzaG91a29rdVwgOwor6bia6bWh55eFIDwgb3VtdWJ5b3VcIDsKK+adn+iEqSA8IHNva3VzaHV1XCA7CivljZjmgKfoirEgPCB0YW5zZWlrYVwgOwor5a6/5qWtIDwgc2h1a3Vnb3VcIDsKK+azqOaEj+eCuSA8IGNodXVpdGVuXCA7CivluLjlgpnph5EgPCBqb3ViaWtpblwgOwor55Sz5ZGKIDwgc2hpbmtva3VcIDsKK+WvkuaciCA8IGthbmdldHN1XCA7CivmnInorZggPCB5dXVzaGlraVwgOwor6Lui56e75oCnIDwgdGVuJydpc2VpXCA7CivppIXntrIgPCBtb2NoaWFtaVwgOwor5L2V5qeYIDwgbmFuaXNhbWFcIDsKK+e/geiynSA8IG9raW5hZ2FpXCA7CivmtLvngavlsbEgPCBrYWtrYXphblwgOwor5a+M5pytIDwgdG9taWZ1ZGFcIDsKK+WxgOWkliA8IGt5b2t1Z2FpXCA7Civpo5/ohrMgPCBzaG9rdXplblwgOwor5p2J6IuUIDwgc3VnaWdva2VcIDsKK+WvhuaelyA8IG1pdHN1cmluXCA7CivlgInljZIgPCBzb3Vzb3RzdVwgOwor5a6i5q6/IDwga3lha3VkZW5cIDsKK+S4pui2syA8IG5hbWlhc2hpXCA7CivliqDlt6XnqI4gPCBrYWtvdXplaVwgOwor55WR5L2cIDwgaGF0YXNha3VcIDsKK+eTpuWxiyA8IGthd2FyYXlhXCA7CivlrqLmrbsgPCBreWFrdXNoaVwgOwor55S35YmNIDwgb3Rva29tYWVcIDsKK+WxgOWgsSA8IGt5b2t1aG91XCA7CivpobDouZkgPCBoaW5zaHVrdVwgOwor576O57Kn6ZmiIDwgYmlzaG91aW5cIDsKK+WuruanmCA8IG1peWFzYW1hXCA7CivkvZzmn4QgPCBzYWt1Z2FyYVwgOwor54yu6YWMIDwga2Vuc2hha3VcIDsKK+iMtueuquespSA8IGNoYWRhbnN1XCA7Civpo5/ogrIgPCBzaG9rdWlrdVwgOwor5Zm054Gr5bGxIDwgZnVua2F6YW5cIDsKK+WcsOaWueaZgiA8IGNoaWhvdWppXCA7CivkuKHotrMgPCByeW91c29rdVwgOwor5oKq6aST6ay8IDwgd2FydWdha2lcIDsKK+WNmuaEm+WutiA8IGhha3VhaWthXCA7CivkuozogqEgPCBmdXRhbWF0YVwgOwor5LiK6YGUIDwgam91dGF0c3VcIDsKK+aDheWgsemDqCA8IGpvdWhvdWJ1XCA7Civohp3lhYMgPCBoaXphbW90b1wgOwor5a6/5pybIDwgc2h1a3Vib3VcIDsKK+aXpeacrOiMtiA8IG5paG9uY2hhXCA7CivohLHluL0gPCBkYXRzdWJvdVwgOwor55Sz5Ye6IDwgbW91c2hpZGVcIDsKK+afhOeJqSA8IGdhcmFtb25vXCA7CivkuIrov7AgPCBqb3VqdXRzdVwgOwor5L2c5puyIDwgc2Fra3lva3VcIDsKK+iAs+ezniA8IG1pbWlrdXNvXCA7CivogIHoi6UgPCByb3VueWFrdVwgOwor5YWJ6KGM5beuIDwga291a291c2FcIDsKK+WkluiAs+mBkyA8IGdhaWppZG91XCA7CivogonniZsgPCBuaWt1Z3l1dVwgOwor5bGx5YWDIDwgeWFtYW1vdG9cIDsKK+WcsOmch+azoiA8IGppc2hpbmhhXCA7CivkuInloYHmiZMgPCBzYW5ydWlkYVwgOwor5p2f57ibIDwgc29rdWJha3VcIDsKK+WLvuW8leeKtiA8IGtvdWluam91XCA7CivlnLDpm7fmupAgPCBqaXJhaWdlblwgOwor6Zu75qmf5a2QIDwgZGVua2lzaGlcIDsKK+acq+iRiSA8IG1hdHN1eW91XCA7CivluLjlgpnou40gPCBqb3ViaWd1blwgOwor5L2V5pyIIDwgbmFuZ2F0c3VcIDsKK+ixmuiNiSA8IGJ1dGFrdXNhXCA7CivlsJHlsJEgPCBzaG91c2hvdVwgOwor5bCP5Z6L5YyWIDwga29nYXRha2FcIDsKK+WIt+avm+WFiCA8IGhha2VzYWtpXCA7Civmmpfpl4cgPCBrdXJheWFtaVwgOwor546J6JGxIDwgdGFtYW5lZ2lcIDsKK+mdkuWGhemanCA8IGFvc29rb2hpXCA7CivoqZXorbDlk6EgPCBoeW91Z2lpblwgOwor5Lmz6IetIDwgbnl1dXNodXVcIDsKK+eUmOWPoyA8IGFtYWt1Y2hpXCA7CivlhazliIbmr40gPCBrb3VidW5ib1wgOwor5pyo6I+fIDwgbWltaXp1a3VcIDsKK+WPr+iBtOW6piA8IGthY2hvdWRvXCA7CivnhKHmnaHku7YgPCBtdWpvdWtlblwgOwor55+i6aOb55m9IDwgeWFnYXN1cmlcIDsKK+aJi+iFleWutiA8IHNodXdhbmthXCA7CivnlKPliKUgPCBzYW5iZXRzdVwgOwor5qSc5LqL5q2jIDwga2VuamlzZWlcIDsKK+S+v+WjuiA8IGJlbnRzdWJvXCA7CivkuIDovJsgPCBpY2hpcnlvdVwgOwor6LOc54mpIDwgdGFtYW1vbm9cIDsKK+WBveWWhOiAhSA8IGdpemVuc2hhXCA7CivkvJ3lsI7luqYgPCBkZW5kb3Vkb1wgOwor5YWs5Yuf5YK1IDwga291Ym9zYWlcIDsKK+mmluaetyA8IGt1YmlrYXNlXCA7CivlrZDniLUgPCBzaGlzaGFrdVwgOwor5L6L5byPIDwgcmVpc2hpa2lcIDsKK+ePvueUnyA8IGdlbicnbmFtYVwgOwor5pyo6Iu6IDwga2lpY2hpZ29cIDsKK+apn+mWoumKgyA8IGtpa2FuanV1XCA7Civniqzpt7IgPCBpbnV3YXNoaVwgOwor5pys6ImyIDwgaG9uc2hva3VcIDsKK+S5seiEiCA8IHJhbm15YWt1XCA7Civlr4bmjqUgPCBtaXNzZXRzdVwgOwor5LiA6LqNIDwgaWNoaXlha3VcIDsKK+WxseS6uiA8IHlhbWFiaXRvXCA7CivohIfmga8gPCBreW91c29rdVwgOwor57696KGjIDwgaGFnb3JvbW9cIDsKK+acjeiWrCA8IGZ1a3V5YWt1XCA7Civmrabli4fkvJ0gPCBidXl1dWRlblwgOwor5qK15Yi5IDwgYm9uc2V0c3VcIDsKK+S8j+a1gSA8IGZ1a3VyeXV1XCA7CivliLblvqHkuIsgPCBzZWlneW9rYVwgOwor5a++5bGAIDwgdGFpa3lva3VcIDsKK+iTruiPr+iNiSA8IHJlbmdlc291XCA7CivloLHnn6XmqZ8gPCBob3VjaGlraVwgOwor54yr6LazIDwgbmVrb2FzaGlcIDsKK+Wwj+WomCA8IGtvbXVzdW1lXCA7Civku6PniakgPCBkYWlidXRzdVwgOwor5aer6bGSIDwgaGltZW1hc3VcIDsKK+acrOiFsCA8IGhvbmdvc2hpXCA7CivohbnliIcgPCBoYXJha2lyaVwgOwor5pmp6aOvIDwgYmFubWVzaGlcIDsKK+e/vOe/vCA8IHlva3V5b2t1XCA7CivnlJ/lgrcgPCBuYW1ha2l6dVwgOwor6LGa6IKJIDwgYnV0YW5pa3VcIDsKK+Wkj+iHs+eCuSA8IGdlc2hpdGVuXCA7CivpoK3ph5EgPCBhdGFtYWtpblwgOwor5q2m6Iq46ICFIDwgYnVnZWlzaGFcIDsKK+e+juizqiA8IGJpc2hpdHN1XCA7CivotbDppqznga8gPCBzb3VtYXRvdVwgOwor5bGK5Ye6IDwgdG9kb2tlZGVcIDsKK+i1pOW/gyA8IHNla2lzaGluXCA7CivnirbpqqggPCBqb3Vrb3RzdVwgOwor57+g6ImyIDwgc3Vpc2hva3VcIDsKK+S4oeiiliA8IHJ5b3Vzb2RlXCA7CivkuLjolqwgPCBnYW4nJ3lha3VcIDsKK+Wuv+aJgCA8IHNodWt1c2hvXCA7CivmnpzniakgPCBrdWRhbW9ub1wgOwor5LqM6YeN56iOIDwgbmlqdXV6ZWlcIDsKK+ePvueJqSA8IGdlbmJ1dHN1XCA7CivkuIvoq4sgPCBzaGl0YXVrZVwgOwor5pyo6ICzIDwga2lrdXJhZ2VcIDsKK+WwveWKmyA8IGppbnJ5b2t1XCA7CivmraPmr5TkvosgPCBzZWloaXJlaVwgOwor6aCQ6YeR6ICFIDwgeW9raW5zaGFcIDsKK+S6uueVnCA8IGppbmNoaWt1XCA7CivliqDpgJ/luqYgPCBrYXNva3Vkb1wgOwor5q2j5b2T5YyWIDwgc2VpdG91a2FcIDsKK+aJi+S4jei2syA8IHRlYnVzb2t1XCA7CivlgbTngavlsbEgPCBzb2trYXphblwgOwor6YGO5LiN5Y+KIDwga2FmdWt5dXVcIDsKK+auuum8oOWJpCA8IHNhc3NvemFpXCA7CivoqJjlv7Xnpa0gPCBraW5lbnNhaVwgOwor5L+C5ZOhIDwga2FrYXJpaW5cIDsKK+S4jeaJi+mamyA8IGZ1dGVnaXdhXCA7CivkuI3nrYnovrogPCBmdXRvdWhlblwgOwor6KKr5a6z5ZywIDwgaGlnYWljaGlcIDsKK+aXpeacrOe0mSA8IG5paG9uc2hpXCA7CivkuIDoq74gPCBpY2hpZGFrdVwgOwor5r2c5rC05aSrIDwgc2Vuc3VpZnVcIDsKK+W+oemZgOS7jyA8IG9kYWJ1dHN1XCA7CivlrabmrbQgPCBnYWt1cmVraVwgOwor5a6/5oKqIDwgc2h1a3Vha3VcIDsKK+iDuOW6pyA8IG11bmFndXJhXCA7CivkuIDoqq0gPCBpY2hpZG9rdVwgOwor5a+l5a+lIDwgcnlvdXJ5b3VcIDsKK+adpeedgCA8IHJhaWNoYWt1XCA7CivkvJHmpa0gPCBreXV1Z3lvdVwgOwor5aSc5a2m5qChIDwgeWFnYWtrb3VcIDsKK+WGjeS4iuaYoCA8IHNhaWpvdWVpXCA7Civkv67kuoYgPCBzaHV1cnlvdVwgOwor6IO45bmFIDwgbXVuZWhhYmFcIDsKK+WkluadpeiqniA8IGdhaXJhaWdvXCA7Civpm6PnoLToiLkgPCBuYW5wYXNlblwgOwor5LiA6KiAIDwgaGl0b2tvdG9cIDsKK+Wuv+W/lyA8IHNodWt1c2hpXCA7Civpp5LkuIvpp4QgPCBrb21hZ2V0YVwgOwor6IWV5YqbIDwgd2Fucnlva3VcIDsKK+iFueS4rSA8IGZ1a3VjaHV1XCA7CivkuIDop5IgPCBoaXRva2Fkb1wgOwor6IKJ5qyyIDwgbmlrdXlva3VcIDsKK+azqOaEj+abuCA8IGNodXVpc2hvXCA7Civnj6DnjokgPCBzaHVneW9rdVwgOwor5LuA54mpIDwganV1bW90c3VcIDsKK+S6lOmHjeWljyA8IGdvanV1c291XCA7Civogqnmm7ggPCBrYXRhZ2FraVwgOwor5ryr6KuH5a62IDwgbWFuZGFua2FcIDsKK+WAjeeyvuW6piA8IGJhaXNlaWRvXCA7CivntI3ku5jogIUgPCBub3VmdXNoYVwgOwor5a6/5byKIDwgc2h1a3VoZWlcIDsKK+WZtOeBq+WPoyA8IGZ1bmtha291XCA7Civku4vorbfkurogPCBrYWlnb25pblwgOwor5Lmx562GIDwgcmFucGl0c3VcIDsKK+S6uueJqSA8IGppbmJ1dHN1XCA7Civkv5fkv6EgPCB6b2t1c2hpblwgOwor54yu6KGAIDwga2Vua2V0c3VcIDsKK+agvOWuiSA8IGtha3V5YXN1XCA7CivkuKHok4sgPCByeW91YnV0YVwgOwor5a2m5qWtIDwgZ2FrdWd5b3VcIDsKK+S6uueItSA8IGppbnNoYWt1XCA7CivnjKXopLsgPCB3YWlzZXRzdVwgOwor6YGT6K2w5LyaIDwgZG91Z2lrYWlcIDsKK+acieapn+S9kyA8IHl1dWtpdGFpXCA7CivosZrnrrEgPCBidXRhYmFrb1wgOwor5Luu5q6/IDwga2FyaWRvbm9cIDsKK+mjm+efsyA8IHRvYmlpc2hpXCA7CivkubHnq4sgPCByYW5yaXRzdVwgOwor5q2755Sj5YWQIDwgc2hpemFuamlcIDsKK+Wuv+W4syA8IHlhZG9jaG91XCA7Civlr5Llr5IgPCBzYW11emFtdVwgOwor5pyx562GIDwgc2h1aGl0c3VcIDsKK+S4jeimj+WJhyA8IGZ1a2lzb2t1XCA7CivkuLvohIggPCBzaHVteWFrdVwgOwor5r2c5rC05ZmoIDwgc2Vuc3Vpa2lcIDsKK+S7mOa3uyA8IHRzdWtpc29pXCA7CivmnKznr4AgPCBob25idXNoaVwgOwor5puy6Iq4IDwga3lva3VnZWlcIDsKK+acq+evgCA8IG1hc3NldHN1XCA7CivotrPlhYMgPCBhc2hpbW90b1wgOwor6LKh54mpIDwgemFpYnV0c3VcIDsKK+Wwj+WQjSA8IHNob3VteW91XCA7CivmlbTlgpnlt6UgPCBzZWliaWtvdVwgOwor5LmX57WEIDwgbm9yaWt1bWlcIDsKK+WvneWnvyA8IG5lc3VnYXRhXCA7Civmm7PoiLkgPCBoaWtpYnVuZVwgOwor5pyr562GIDwgbWFwcGl0c3VcIDsKK+iNkuatpuiAhSA8IGFyYW11c2hhXCA7CivpgaDlnLDngrkgPCBlbmNoaXRlblwgOwor5pi86aCDIDwgaGlydWdvcm9cIDsKK+eLrOi6qyA8IGRva3VzaGluXCA7CivnkLTmm7IgPCBraW5reW9rdVwgOwor5Lqs54mpIDwga3lvdW1vbm9cIDsKK+afkOaciCA8IGJvdWdldHN1XCA7CivlpJblrZfntJkgPCBnYWlqaXNoaVwgOwor5LuK5pmC5YiGIDwgaW1hamlidW5cIDsKK+ixhueylSA8IG1hbWVrYXN1XCA7CivkuK3ohbkgPCBjaHV1ZnVrdVwgOwor5Y+N5YuV5a62IDwgaGFuZG91a2FcIDsKK+mghumAhiA8IGp1bmd5YWt1XCA7CivlpKfmmabml6UgPCBvb21pc29rYVwgOwor5p2J55quIDwgc3VnaWthd2FcIDsKK+WwhuWPiCA8IGhhdGFtYXRhXCA7CivkuI3nsr7lt6cgPCBmdXNlaWtvdVwgOwor5aSn5LiI5aSrIDwgZGFpam91YnVcIDsKK+iEseWNtCA8IGRha2t5YWt1XCA7Civlr4Llr54gPCBzZWtpYmFrdVwgOwor6aOf55SoIDwgc2hva3V5b3VcIDsKK+afkOaXpSA8IGJvdWppdHN1XCA7Civkv53lhajkvJogPCBob3plbmthaVwgOwor5ZCM57Sg5L2TIDwgZG91c290YWlcIDsKK+aZqemFjCA8IGJhbnNoYWt1XCA7CivkuK3ogokgPCBjaHV1bmlrdVwgOwor5L6d5oCZ6LSU5bGTIDwgZWtvaGlpa2lcIDsKK+iynueDiCA8IHRlaXJldHN1XCA7Civlho3kuqTku5ggPCBzYWlrb3VmdVwgOwor6aOy54mpIDwgbm9taW1vbm9cIDsKK+S4oeiGmiA8IHJ5b3VoYWRhXCA7Civlrp/lvL4gPCBqaXRzdWRhblwgOwor5LiL6JCgIDwgc2hpdGFtb2VcIDsKK+WkqeaXpeazlSA8IHRlbnBpaG91XCA7Civmm7LogIUgPCBrdXNlbW9ub1wgOwor5a6I6K2356WeIDwgc2h1Z29qaW5cIDsKK+ahg+WckiA8IG1vbW96b25vXCA7CivntYTlkIjosrsgPCBrdW1pYWloaVwgOwor6aaW5be7IDwga3ViaW1ha2lcIDsKK+S7j+awlyA8IGhvdG9rZWdpXCA7CivmmKXpoqggPCBoYXJ1a2F6ZVwgOwor6I2S6JWq5ZywIDwga291YnVjaGlcIDsKK+S4puiCiSA8IG5hbWluaWt1XCA7CivmhJvlqpvnnIwgPCBlaGltZWtlblwgOwor5pyq6Z2S5bm0IDwgbWlzZWluZW5cIDsKK+WuouW5tCA8IGt5YWt1bmVuXCA7CivotorljZcgPCBiZXRvbmFtdVwgOwor5Lih6ISHIDwgcnlvdXdha2lcIDsKK+miqOeqkyA8IGthemFtYWRvXCA7CivkurrkuovmrIQgPCBqaW5qaXJhblwgOwor6aKo56m0IDwgZnV1a2V0c3VcIDsKK+S7j+auvyA8IGJ1dHN1ZGVuXCA7Civog7jlo4EgPCBreW91aGVraVwgOwor6ZW36Z+z56ymIDwgY2hvdW9ucHVcIDsKK+WumuW8jyA8IHRlaXNoaWtpXCA7CivkuI3lnYfmlokgPCBmdWtpbnNlaVwgOwor5Lih6IKYIDwgcnlvdWhpamlcIDsKK+a6luWCmemHkSA8IGp1bmJpa2luXCA7Civlq6HnlLcgPCBjaGFrdW5hblwgOwor5Lmz55m9IDwgbnl1dWhha3VcIDsKK+a3i+W3tOa2siA8IHJpbnBhZWtpXCA7Civkuovli5nplbcgPCBqaW11Y2hvdVwgOwor5L+u55CG5bGLIDwgc2h1dXJpeWFcIDsKK+S9juWvhiA8IHRlaW1pdHN1XCA7CivkuKHogLMgPCByeW91bWltaVwgOwor5oeQ55aR6KuWIDwga2FpZ2lyb25cIDsKK+WWiemgreeCjiA8IGtvdXRvdWVuXCA7CivmmrTomZAgPCBib3VneWFrdVwgOwor6IKY5o6bIDwgaGlqaWtha2VcIDsKK+eWjuWkluaEnyA8IHNvZ2Fpa2FuXCA7CivkuKHnv7wgPCByeW91eW9rdVwgOwor5a+G5aOyIDwgbWl0c3ViYWlcIDsKK+acqOefsyA8IGJva3VzZWtpXCA7CivnjonnoJUgPCBneW9rdXNhaVwgOwor5LiD6I2JIDwgbmFuYWt1c2FcIDsKK+WKoOmAn+WZqCA8IGthc29rdWtpXCA7Civlrq7lroggPCBtaXlhbW9yaVwgOwor546J55+zIDwgdGFtYWlzaGlcIDsKK+W6reS4i+mnhCA8IG5pd2FnZXRhXCA7Civku7LmmKUgPCBjaHV1c2h1blwgOwor5qGR5Y6fIDwga3V3YWJhcmFcIDsKK+itmOmWviA8IHNoaWtpaWtpXCA7Civkurrms6IgPCBoaXRvbmFtaVwgOwor5pil6ZuoIDwgaGFydXNhbWVcIDsKK+e/s+ebriA8IGthc3VtaW1lXCA7CivnjL/ogqEgPCBzYXJ1bWF0YVwgOwor5LyR5oiaIDwga3l1dXNla2lcIDsKK+mdnuW4uOWLpCA8IGhpam91a2luXCA7Civph47nkIPpg6ggPCB5YWt5dXVidVwgOwor5a6i5bGkIDwga3lha3Vzb3VcIDsKK+WJjemnhuaIpiA8IHplbmt1c2VuXCA7CivmmKXpmb0gPCBzaHVuJyd5b3VcIDsKK+iynua3kSA8IHRlaXNodWt1XCA7CivlrojlvbkgPCBtb3JpeWFrdVwgOwor5Li756+AIDwgc2h1c2V0c3VcIDsKK+aMh+WwjumDqCA8IHNoaWRvdWJ1XCA7CivosqHnlKPlrrYgPCB6YWlzYW5rYVwgOwor5LiA6IqxIDwgaGl0b2hhbmFcIDsKK+mhlOiJsiA8IGdhbnNob2t1XCA7CivkuK3ntLAgPCBjaHV1Ym9zb1wgOwor5Lit57SaIDwgY2h1dWt5dXVcIDsKK+WxheWCrOS/gyA8IGl6YWlzb2t1XCA7Civnjofnm7QgPCBzb3RjaG9rdVwgOwor54yr6IiMIDwgbmVrb2ppdGFcIDsKK+S4ieiEmiA8IHNhbmt5YWt1XCA7CivmmbrorZggPCBjaGlzaGlraVwgOwor5b2T5q2z6aasIDwgdG91c2FpYmFcIDsKK+S4i+iCpSA8IHNoaW1vZ29lXCA7Civlrp/lrrMgPCBqaXRzdWdhaVwgOwor5bCP5LiAIDwgc2hvdWljaGlcIDsKK+iyquassiA8IGRvbicneW9rdVwgOwor5LuB546L5YqbIDwgbmlvdXJpa2lcIDsKK+S6uuassiA8IGppbicneW9rdVwgOwor5aSa6IKJ5p6cIDwgdGFuaWt1a2FcIDsKK+acgOebm+acnyA8IHNhaXNlaWtpXCA7Civlrp/lrZggPCBqaXRzdXpvblwgOwor5Y+N5q+U5L6LIDwgaGFucGlyZWlcIDsKK+mgmOiiliA8IHJ5b3VzaHV1XCA7Civml7HprYMgPCBrYW5iYXRzdVwgOwor54m56ZuGIDwgdG9rdXNodXVcIDsKK+acq+eUtyA8IGJhdHN1bmFuXCA7Civpn7Pos6ogPCBvbnNoaXRzdVwgOwor5a+45YCfIDwgc3Vuc2hha3VcIDsKK+Wls+WtkOmrmCA8IGpvc2hpa291XCA7Civplovlm57ot68gPCBrYWlrYWlyb1wgOwor6LaF5L+XIDwgY2hvdXpva3VcIDsKK+absueuoSA8IGt5b2t1a2FuXCA7Civlr6nmn7vlk6EgPCBzaGluc2FpblwgOwor6ISI5YuVIDwgbXlha3Vkb3VcIDsKK+iCqeW5hSA8IGthdGFoYWJhXCA7Civkuovli5nmqZ/lmaggPCBqaW11a2lraVwgOwor5qGI5Ye6IDwgYW5zaHV0c3VcIDsKK+m6nemmmeawtCA8IGpha291c3VpXCA7Civml6XmnKzniqwgPCBuaWhvbmtlblwgOwor5LqL5YuZ6YePIDwgamltdXJ5b3VcIDsKK+iCoeW8lSA8IG1vbW9oaWtpXCA7CivkuLjnpr8gPCBtYXJ1aGFnZVwgOwor5byV55So5Y+lIDwgaW4nJ3lvdWt1XCA7CivkvpvkurogPCB0b21vYml0b1wgOwor56eR5a2m6ZmiIDwga2FnYWt1aW5cIDsKK+S6uuanmCA8IGhpdG9zYW1hXCA7CivkubPniZsgPCBueXV1Z3l1dVwgOwor5bCC5LiAIDwgc2VuJydpdHN1XCA7CivliY3poK3pg6ggPCB6ZW50b3VidVwgOwor5Y2B5Zub5pelIDwganV1eW9ra2FcIDsKK+aeleacqCA8IG1ha3VyYWdpXCA7CivogqHluqcgPCBtYXRhZ3VyYVwgOwor54m56ZW3IDwgdG9rdWNob3VcIDsKK+eLuOiXuyA8IHRhbnVraW1vXCA7CivnvLboqbAgPCBrYW5kenVtZVwgOwor5LiA57+8IDwgaWNoaXlva3VcIDsKK+Wun+WmuSA8IGppdHN1bWFpXCA7CivkuK3nqbogPCBuYWthem9yYVwgOwor6aOy5rC0IDwgbm9taW1penVcIDsKK+S4reeoiyA8IG5ha2Fob2RvXCA7Civku4rmnIggPCBrb25nZXRzdVwgOwor6LK45pysIDwga2FzaGlob25cIDsKK+S4pueriyA8IGhlaXJpdHN1XCA7Civlronlrr8gPCB5YXN1eWFkb1wgOwor6Ieq5bex5pqX56S6IDwgamlrb2FuamlcIDsKK+iDveWKmyA8IG5vdXJ5b2t1XCA7CivpgKPmrYzluKsgPCByZW5nYXNoaVwgOwor54mp6ZmwIDwgbW9ub2thZ2VcIDsKK+WuieWuiSA8IHlhc3V5YXN1XCA7CivlrablvrMgPCBnYWt1dG9rdVwgOwor5pSv5o+06ICFIDwgc2hpZW5zaGFcIDsKK+e/kueZliA8IHNodXVoZWtpXCA7CivmorbmnKjluqcgPCBrYWppa2l6YVwgOwor5Li455+zIDwgbWFydWlzaGlcIDsKK+WcsOaWueWMuiA8IGNoaWhvdWt1XCA7CivkuIfnt5EgPCBiYW5yeW9rdVwgOwor5a6/5ZG9IDwgc2h1a3VtZWlcIDsKK+WxseeBq+S6iyA8IHlhbWFrYWppXCA7CivmiY3mnKrmuoAgPCBzYWltaW1hblwgOwor5LuP5paHIDwgZnV0c3VidW5cIDsKK+eJm+mdqSA8IGd5dXVrYXdhXCA7CivogZbml6UgPCBzZWlqaXRzdVwgOwor5Lq65p+EIDwgaGl0b2dhcmFcIDsKK+S6q+alvSA8IGt5b3VyYWt1XCA7Civmnb7mn48gPCBzaG91aGFrdVwgOwor576k56u5IDwgbXVyYXRha2VcIDsKK+itpui5lSA8IGtlaWhpdHN1XCA7CivkubPmv4EgPCBueXV1ZGFrdVwgOwor57+g546JIDwgc3VpZ3lva3VcIDsKK+S6uumhnueMvyA8IGppbnJ1aWVuXCA7Civml6Xpo58gPCBuaXNzaG9rdVwgOwor5LuH5pW1IDwga3l1dXRla2lcIDsKK+mduumeqCA8IG1ha2thdHN1XCA7Civlp7/oposgPCBzdWdhdGFtaVwgOwor6K2w5a6a5pu4IDwgZ2l0ZWlzaG9cIDsKK+Wun+WcqCA8IGppdHN1emFpXCA7CivmnIjnlaogPCB0c3VraWJhblwgOwor55Kw5LiDIDwga2FuJyduYW5hXCA7Civog7jlhYggPCBtdW5hc2FraVwgOwor6IO45YWDIDwgbXVuYW1vdG9cIDsKK+S4gOe1hCA8IGhpdG9rdW1pXCA7CivojLblnYrkuLsgPCBjaGFib3V6dVwgOwor54yr57OeIDwgbmVrb2JhYmFcIDsKK+WKoOebn+W6lyA8IGthbWVpdGVuXCA7CivpnbTpn7MgPCBrdXRzdW90b1wgOwor5LmX54mpIDwgbm9yaW1vbm9cIDsKK+miqOeJqSA8IGZ1dWJ1dHN1XCA7CivkvZzliocgPCBzYWt1Z2VraVwgOwor5pqW6ImyIDwgZGFuc2hva3VcIDsKK+S9leWNkiA8IG5hbml0b3pvXCA7Civnt6nkuIvliaQgPCBrYW5nZXphaVwgOwor546H54S2IDwgc290c3V6ZW5cIDsKK+iQjOm7hOiJsiA8IG1vZWdpaXJvXCA7CivnqbrmsJfpioMgPCBrdXVraWp1dVwgOwor5LyR5a2mIDwga3l1dWdha3VcIDsKK+m5ueawtOa5liA8IGthbnN1aWtvXCA7CivkuInnrYYgPCBzYW5waXRzdVwgOwor5L2P5Y+LIDwgc3VtaXRvbW9cIDsKK+a1t+iAgeiFsCA8IGViaWdvc2hpXCA7Civmnb7mmI4gPCB0YWltYXRzdVwgOwor5Luu5b25IDwga2FyaXlha3VcIDsKK+eUn+ioiOiyuyA8IHNlaWtlaWhpXCA7CivkuK3nmr8gPCBjaHV1emFyYVwgOwor5Lq65pWwIDwgaGl0b2thenVcIDsKK+Wpmue0hCA8IGtvbicneWFrdVwgOwor5LiL56m0IDwgc2hpdGFhbmFcIDsKK+Wuv+WFrSA8IHlhZG9yb2t1XCA7Civlj4LliqDogIUgPCBzYW5rYXNoYVwgOwor5pel5pys5rW3IDwgbmlob25rYWlcIDsKK+iAs+actiA8IG1pbWl0YWJ1XCA7Civmm7jnlZkgPCBrYWtpdG9tZVwgOwor5LiA562LIDwgaGl0b3N1amlcIDsKK+WtpuWvriA8IGdha3VyeW91XCA7CivkuIDnrYYgPCBoaXRvZnVkZVwgOwor6KKr5LmX5pWwIDwgaGlqb3VzdXVcIDsKK+eJh+mahSA8IGthdGFzdW1pXCA7CivosYHnhLYgPCBrYXRzdXplblwgOwor5omL6aKo55C0IDwgdGVmdXVraW5cIDsKK+eJh+mZsCA8IGthdGFrYWdlXCA7CivkuqXmnIggPCBnYWlnZXRzdVwgOwor5rOo5oSP5aCxIDwgY2h1dWlob3VcIDsKK+miqOaZr+eUuyA8IGZ1dWtlaWdhXCA7Civos6rlsYsgPCBzaGljaGl5YVwgOwor54yq56qBIDwgY2hvdG90c3VcIDsKK+S6rOaWuSA8IGt5b3VnYXRhXCA7Civpm7vlrZDpn7MgPCBkZW5zaGlvblwgOwor54mb6Y2LIDwgZ3l1dW5hYmVcIDsKK+Wun+WQjSA8IGppdHN1bWVpXCA7Civou6LljJbns5YgPCB0ZW5rYXRvdVwgOwor5p2l5pyIIDwgcmFpZ2V0c3VcIDsKK+iDuOS4rSA8IGt5b3VjaHV1XCA7CivkuIDnqK4gPCBoaXRva3VzYVwgOwor6ZaJ57WM5pyfIDwgaGVpa2Vpa2lcIDsKK+aYjumBlCA8IG1laXRhdHN1XCA7Civlrr/kvr8gPCBzaHVrdWJlblwgOwor5a+G5LukIDwgbWl0c3VyZWlcIDsKK+S4gOenkiA8IGljaGlieW91XCA7CivkupLliqnnmoQgPCBnb2pvdGVraVwgOwor5Lm+5omA5bivIDwga2Fuam90YWlcIDsKK+Wkp+mfs+WjsCA8IGRhaW9uam91XCA7CivnoLTnlKPogIUgPCBoYXNhbnNoYVwgOwor6ZaJ5Zue6LevIDwgaGVpa2Fpcm9cIDsKK+S4u+eJqSA8IHNodWJ1dHN1XCA7CivnvqTnmbogPCBndW5wYXRzdVwgOwor5puy55CDIDwga3lva2t5dXVcIDsKK+aXqemQmCA8IGhheWFnYW5lXCA7Civog6Hpurvmk4IgPCBnb21hc3VyaVwgOwor5qmf6Zu35Y6fIDwga2lyYWlnZW5cIDsKK+S6jOahgSA8IGZ1dGFrZXRhXCA7CivmnaXml6UgPCByYWluaWNoaVwgOwor54iq6Z+zIDwgdHN1bWFvdG9cIDsKK+aWremrqiA8IGRhbnBhdHN1XCA7Civmm7LnjokgPCBtYWdhdGFtYVwgOwor5aSa5a2U5oCnIDwgdGFrb3VzZWlcIDsKK+WQiOaIkOmfsyA8IGdvdXNlaW9uXCA7CivnoLTprZTlvJMgPCBoYW1heXVtaVwgOwor5a6i5YiGIDwga3lha3VidW5cIDsKK+S9leS9lSA8IG5hbmluYW5pXCA7CivpgKDlvbHliaQgPCB6b3VlaXphaVwgOwor6IOG5YqbIDwgdGFucnlva3VcIDsKK+S6i+afhCA8IGtvdG9nYXJhXCA7Civku67lrq4gPCBrYXJpbWl5YVwgOwor5pu454mpIDwgc2hvbW90c3VcIDsKK+eJm+mFqiA8IGd5dXVyYWt1XCA7CivlgKbmgKDmnJ8gPCBrZW50YWlraVwgOwor54us57+SIDwgZG9rdXNodXVcIDsKK+S7ruWuhSA8IGthcml0YWt1XCA7CivlrZDlrp0gPCBrb2Rha2FyYVwgOwor6Z+u6JGxIDwgbmlyYW5lZ2lcIDsKK+acque0jeiAhSA8IG1pbm91c2hhXCA7Civkuozph43mmJ8gPCBuaWp1dXNlaVwgOwor5L2X5Lq6IDwgd2FiaWJpdG9cIDsKK+S7j+W8jyA8IGJ1c3NoaWtpXCA7CivkuInnm7QgPCBzYW5jaG9rdVwgOwor5L2V5LqLIDwgbmFuaWdvdG9cIDsKK+iCieWkqiA8IG5pa3VidXRvXCA7CivnuYHkvZPlrZcgPCBoYW50YWlqaVwgOwor5LiJ55m+IDwgc2FuYnlha3VcIDsKK+eJueizniA8IHRva3VzaG91XCA7Civmtojpn7PlmaggPCBzaG91b25raVwgOwor6aGU552AIDwgZ2FuY2hha3VcIDsKK+WkmuS6uuaVsCA8IHRhbmluenV1XCA7CivotbTku7vlnLAgPCBmdW5pbmNoaVwgOwor5Y+k55Sf5LujIDwga29zZWlkYWlcIDsKK+S5s+alrSA8IG55dXVneW91XCA7Civml6XpioAgPCBuaWNoaWdpblwgOwor5p6V5bitIDwgY2hpbnNla2lcIDsKK+izk+WuoiA8IGhpbmt5YWt1XCA7Civoip3lsYXmsJcgPCBzaGliYWlnZVwgOwor5a6f5YOPIDwgaml0c3V6b3VcIDsKK+Wun+WDjSA8IGppdHN1ZG91XCA7CivmqKrluqfmqJkgPCBvdXphaHlvdVwgOwor6Ieq6K2m5ZujIDwgamlrZWlkYW5cIDsKK+aaq+WumuahiCA8IHphbnRlaWFuXCA7CivprZrluILloLQgPCB1b2ljaGliYVwgOwor5a6u5Lq6IDwgbWl5YWJpdG9cIDsKK+aXp+mHjCA8IGZ1cnVzYXRvXCA7CivkuIDnmr8gPCBoaXRvc2FyYVwgOwor5LiA55quIDwgaGl0b2thd2FcIDsKK+S6jOaWuSA8IGZ1dGFrYXRhXCA7Civpp4Xppqzou4ogPCBla2liYXNoYVwgOwor5LiK55WlIDwgam91cnlha3VcIDsKK+iyq+W+uSA8IGthbnRldHN1XCA7Civlr77oqbHkvZMgPCB0YWl3YXRhaVwgOwor5p6i5a+GIDwgc3V1bWl0c3VcIDsKK+S4gOeZliA8IGhpdG9rdXNlXCA7Civlrq7kuK0gPCBreXV1Y2h1dVwgOwor6LGG5q67IDwgbWFtZWdhcmFcIDsKK+ePvuWwuiA8IGdlbnNoYWt1XCA7CivkurrlvbEgPCBoaXRva2FnZVwgOwor5a6i5L2TIDwga3lha3V0YWlcIDsKK+a4heaOg+WkqyA8IHNlaXNvdWZ1XCA7Civlrp/kvosgPCBqaXRzdXJlaVwgOwor6auY5oSf5bqmIDwga291a2FuZG9cIDsKK+acqOanjCA8IGtpZHp1Y2hpXCA7CivntIDlhYPliY0gPCBraWdlbnplblwgOwor56Oo56CU57SZIDwgbWFrZW5zaGlcIDsKK+ePvuWunyA8IGdlbmppdHN1XCA7CivlrqLkurogPCBreWFrdWppblwgOwor5pei5ama6ICFIDwga2lrb25zaGFcIDsKK+mcuemdgiA8IGhla2lyZWtpXCA7CivmkKzpgIHms6IgPCBoYW5zb3VoYVwgOwor6K2y6JGJIDwgeXV6dXJpaGFcIDsKK+eWjumWi+iAhSA8IHNva2Fpc2hhXCA7CivmgJ3mg7PlrrYgPCBzaGlzb3VrYVwgOwor6LC35rC0IDwgdGFuaW1penVcIDsKK+ixquaXpSA8IGdvdW5pY2hpXCA7CivmnI3mr5IgPCBmdWt1ZG9rdVwgOwor5bKp55Sw5bivIDwgaXdhdGFvYmlcIDsKK+iBt+WfnyA8IHNob2t1aWtpXCA7CivmmrTnmbogPCBib3VoYXRzdVwgOwor6ZaL6ZaJ5qmfIDwga2FpaGVpa2lcIDsKK+W6j+egtOaApSA8IGpvaGFreXV1XCA7CivotrPlv6Dlrp8gPCBhc2hpbWFtZVwgOwor6aOf5oyHIDwgc2hva3VzaGlcIDsKK+WNiua4m+acnyA8IGhhbmdlbmtpXCA7Civml6XovKogPCBuaWNoaXJpblwgOwor6Ieq54S2576OIDwgc2hpemVuYmlcIDsKK+iCqeWFiCA8IGthdGFzYWtpXCA7CivlpJbpsJAgPCBzb3Rvd2FuaVwgOwor6aC755m6IDwgaGlucGF0c3VcIDsKK+WJjeS4lue0gCA8IHplbnNlaWtpXCA7CivmnKzmnKsgPCBob25tYXRzdVwgOwor56CU56Oo57SZIDwga2VubWFzaGlcIDsKK+S4h+eJqSA8IGJhbm1vdHN1XCA7Civnjonmna8gPCBneW9rdWhhaVwgOwor54yu54mpIDwga2VubW90c3VcIDsKK+S6uuWxsSA8IGhpdG95YW1hXCA7CivpnZLlhpnnnJ8gPCBhb2phc2hpblwgOwor5pep6LazIDwgaGF5YWFzaGlcIDsKK+eliOelt+abuCA8IGtpdG91c2hvXCA7CivpnKfpm6ggPCBraXJpc2FtZVwgOwor5biw6YKE5YW1IDwga2lrYW5oZWlcIDsKK+mWiee1jOW+jCA8IGhlaWtlaWdvXCA7Civos6Llk7IgPCBrZW50ZXRzdVwgOwor54mH6LazIDwga2F0YWFzaGlcIDsKK+S4gOeJhyA8IGhpdG9oaXJhXCA7CivlpJrmlrnpnaIgPCB0YWhvdW1lblwgOwor54eV5bC+5pyNIDwgZW5iaWZ1a3VcIDsKK+emgOitsOabuCA8IHJpbmdpc2hvXCA7CivmnKzml6UgPCBob25qaXRzdVwgOwor5Lm+5outIDwga2FyYWJ1a2lcIDsKK+eItuWFhOS8miA8IGZ1a2Vpa2FpXCA7Civpq5jpupfmpb0gPCBrb21hZ2FrdVwgOwor6aOf5oSfIDwgc2hva3VrYW5cIDsKK+aVtOmrqiA8IHNlaWhhdHN1XCA7Civku4/lo4cgPCBidXRzdWRhblwgOwor5LqI5oOz5aSWIDwgeW9zb3VnYWlcIDsKK+aJgeahg+ayuSA8IGhlbnRvdXl1XCA7CivlrablibIgPCBnYWt1d2FyaVwgOwor5pW06aqoIDwgc2Vpa290c3VcIDsKK+i0i+S9nCA8IG5pc2VzYWt1XCA7CivlrabliYcgPCBnYWt1c29rdVwgOwor5puy5rC0IDwga3lva3VzdWlcIDsKK+mdkuW5tOacnyA8IHNlaW5lbmtpXCA7CivpoqjmnIggPCBmdXVnZXRzdVwgOwor6Zyc6ZuqIDwgc291c2V0c3VcIDsKK+Wdh+etieWMliA8IGtpbnRvdWthXCA7CivkubHmjpggPCByYW5rdXRzdVwgOwor5Y+X6aiT6ICFIDwganVrZW5zaGFcIDsKK+aZguS7o+ebuCA8IGppZGFpc291XCA7CivkuZ3ml6UgPCBrb2tvbm9rYVwgOwor5pel6LGqIDwgbmljaGlnb3VcIDsKK+Wil+WKoOWIhiA8IHpvdWthYnVuXCA7CivkuozpgKPpioMgPCBuaXJlbmp1dVwgOwor5Lmd5pePIDwga3l1dXpva3VcIDsKK+iqremfvyA8IHlvbWlreW91XCA7CivniZvop5IgPCBneXV1a2FrdVwgOwor5aSn6ZuqIDwgdGFpc2V0c3VcIDsKK+WklumjnyA8IGdhaXNob2t1XCA7CivkuIDlm57ou6IgPCBpa2thaXRlblwgOwor5aSV6aOvIDwgeXV1bWVzaGlcIDsKK+iBt+WQjSA8IHNob2t1bWVpXCA7Civmmannr4AgPCBiYW5zZXRzdVwgOwor5LqM5b25IDwgZnV0YXlha3VcIDsKK+S4u+iEs+mDqCA8IHNodW5vdWJ1XCA7CivkuozlvaIgPCBmdXRhbmFyaVwgOwor5pil6I+KIDwgc2h1bmdpa3VcIDsKK+WtpuWDlSA8IGdha3Vib2t1XCA7CivntI3ku5jmm7ggPCBub3VmdXNob1wgOwor6LGG5paZIDwgbWFtZXJ5b3VcIDsKK+acneaVtSA8IGNob3V0ZWtpXCA7CivljZjlvIHoirEgPCB0YW5iZW5rYVwgOwor5rWB5rWq6ICFIDwgcnVyb3VzaGFcIDsKK+aVo+mrqiA8IHNhbnBhdHN1XCA7Civoj5PlrZDnm4YgPCBrYXNoaWJvblwgOwor6KyO6KyOIDwgbmF6b25hem9cIDsKK+WFrOeUqOiqniA8IGtvdXlvdWdvXCA7CivlpoToqqwgPCBtb3VzZXRzdVwgOwor6aCT552AIDwgdG9uY2hha3VcIDsKK+S7j+WZuCA8IGZ1dHN1dG9uXCA7CivlppbooZMgPCB5b3VqdXRzdVwgOwor6Zub6bOlIDwgaGluYWRvcmlcIDsKK+mbu+mjviA8IGRlbnNob2t1XCA7CivlpKrpmb3ngokgPCB0YWl5b3Vyb1wgOwor5pen6KizIDwga3l1dXlha3VcIDsKK+aciOacqyA8IHRzdWtpenVlXCA7Civni6znmb0gPCBkb2t1aGFrdVwgOwor54yb54OIIDwgbW91cmV0c3VcIDsKK+WPl+i6q+W9oiA8IHVrZW1pa2VpXCA7CivmsJHllrbljJYgPCBtaW4nJ2Vpa2FcIDsKK+S6uuacm+WutiA8IGppbmJvdWthXCA7CivniKrot6EgPCB0c3VtZWF0b1wgOwor5Luu5YidIDwga2FyaXNvbWVcIDsKK+adpeWuoiA8IHJhaWt5YWt1XCA7CivmnIjmm5wgPCBnZXRzdXlvdVwgOwor57+M5pydIDwgeW9rdWNob3VcIDsKK+e3j+S6jOmajiA8IHNvdW5pa2FpXCA7CivnuYHpm5EgPCBoYW56YXRzdVwgOwor6Kej6ZuH6ICFIDwga2Fpa29zaGFcIDsKK+a8ouaZguS7oyA8IGthbmppZGFpXCA7CivlhoXlpJbph44gPCBuYWlnYWl5YVwgOwor54mH5Luu5ZCNIDwga2F0YWthbmFcIDsKK+iEseiho+aJgCA8IGRhdHN1aWpvXCA7CivogbfliIYgPCBzaG9rdWJ1blwgOwor5Lm+5byPIDwga2Fuc2hpa2lcIDsKK+mdouitmCA8IG1lbnNoaWtpXCA7CivkurrlnqMgPCBoaXRvZ2FraVwgOwor6LSI5LiO6ICFIDwgem91eW9zaGFcIDsKK+WksemMryA8IHNoaXNzYWt1XCA7CivkuYXmlrkgPCBoaXNha2F0YVwgOwor5pyI5piOIDwgZ2V0c3VtZWlcIDsKK+WjsOmrmCA8IGtvd2FkYWthXCA7Civoq5bov7AgPCByb25qdXRzdVwgOwor57+M5pilIDwgeW9rdXNodW5cIDsKK+S/neWuiOezuyA8IGhvc2h1a2VpXCA7Civoq77oq74gPCBkYWt1ZGFrdVwgOwor6K2Y6ICFIDwgc2hpa2lzaGFcIDsKK+S7leWPoyA8IHNoaWt1Y2hpXCA7Civmtbfppqzlm54gPCBrYWliYWthaVwgOwor6Ieq5aCV6JC9IDwgamlkYXJha3VcIDsKK+ePjeWmmSA8IGNoaW5teW91XCA7Civosp3loZogPCBrYWlkenVrYVwgOwor5pys5aGB5omTIDwgaG9ucnVpZGFcIDsKK+iBluWTsiA8IHNlaXRldHN1XCA7CivmhJvppJDkvJogPCBhaXNhbmthaVwgOwor5a++5oqX6aasIDwgdGFpa291YmFcIDsKK+mdouipsCA8IG1lbmtpdHN1XCA7CivnuJ7ppqwgPCBzaGltYXVtYVwgOwor5Luu5ZCN5paHIDwga2FuYWJ1bWlcIDsKK+mjn+WwvSA8IHNob2t1amluXCA7Civos63kuosgPCBrYWtlZ290b1wgOwor5LiA5rWBIDwgaWNoaXJ5dXVcIDsKK+S4reafhCA8IGNodXVnYXJhXCA7Civmm7jmnK0gPCBzaG9zYXRzdVwgOwor5aaZ6JasIDwgbXlvdXlha3VcIDsKK+S4u+aXpSA8IHNodWppdHN1XCA7Civoq7joq7ggPCBtb3JvbW9yb1wgOwor6IOh6bq75aGpIDwgZ29tYXNoaW9cIDsKK+WKoOW3peWTgSA8IGtha291aGluXCA7CivmqKnliKnmm7ggPCBrZW5yaXNob1wgOwor6Ku46KqsIDwgc2hvc2V0c3VcIDsKK+W7g+imgee0oCA8IGhhaXlvdXNvXCA7CivlpbPopqogPCBvbicnbmFveWFcIDsKK+abtOabtCA8IHNhcmFzYXJhXCA7CivmnZPlrZAgPCBzaGFrdXNoaVwgOwor56m65oOz5a62IDwga3V1c291a2FcIDsKK+absuabsiA8IGt1bWFndW1hXCA7CivmmI7oibIgPCBtZWlzaG9rdVwgOwor6LKp5aOy6YOoIDwgaGFuYmFpYnVcIDsKK+ecvOmPoeWxiyA8IG1lZ2FuZXlhXCA7Civku5blh7ogPCB0YXNodXRzdVwgOwor5YmN5LiW55WMIDwgemVuc2VrYWlcIDsKK+acrOWgtOaJgCA8IGhvbmJhc2hvXCA7Civpm6jpnbQgPCBhbWFndXRzdVwgOwor6Jma54Sh5YWaIDwga3lvbXV0b3VcIDsKK+S6uumhnuaEmyA8IGppbnJ1aWFpXCA7Civkuozph43lpY8gPCBuaWp1dXNvdVwgOwor5oSb5aW96ICFIDwgYWlrb3VzaGFcIDsKK+WQiOaIkOiqniA8IGdvdXNlaWdvXCA7CivmnKzlvI8gPCBob25zaGlraVwgOwor5LuP5YmNIDwgYnV0c3V6ZW5cIDsKK+mbqumbsiA8IHl1a2lndW1vXCA7Civpm6jpnLAgPCBhbWVhcmFyZVwgOwor5pyo5b2rIDwgbW9rdWNob3VcIDsKK+aakeeGsSA8IHNob25ldHN1XCA7Civnn7Pngavnn6IgPCBpc2hpYml5YVwgOwor54mp6ImyIDwgYnVzc2hva3VcIDsKK+iBt+S6uiA8IHNob2t1bmluXCA7Civlh7rntI3nsL8gPCBzdWl0b3Vib1wgOwor6Kun6KyUIDwga2FpZ3lha3VcIDsKK+eLrOeJuSA8IGRva3V0b2t1XCA7CivlpLHpgJ8gPCBzaGlzc29rdVwgOwor5pil57mtIDwgaGFydW1heXVcIDsKK+eGsemhmCA8IG5ldHN1Z2FuXCA7Civou43nrqHljLogPCBndW5rYW5rdVwgOwor5pyr5bm0IDwgbWF0c3VuZW5cIDsKK+WroeWtqyA8IGNoYWt1c29uXCA7Civnianoh60gPCBtb25vZ3VzYVwgOwor5auh5a2QIDwgY2hha3VzaGlcIDsKK+irpOirpCA8IGdha3VnYWt1XCA7Civni6HnjL4gPCBrb3VrYXRzdVwgOwor6ZuR6aOfIDwgemFzc2hva3VcIDsKK+S4u+aMgSA8IHNodW1vY2hpXCA7CivlrLDlhZAgPCBtaWRvcmlnb1wgOwor56eL55Sw55yMIDwgYWtpdGFrZW5cIDsKK+e4pumVtyA8IHRhdGVuYWdhXCA7CivlhJLlrabnlYwgPCBqdWdha2thaVwgOwor5LiL5omL57OeIDwgaGV0YWt1c29cIDsKK+S6ieWlqiA8IHNvdWRhdHN1XCA7Civku4/lg48gPCBidXRzdXpvdVwgOwor5pyq5aK+5ZywIDwgbWlrb25jaGlcIDsKK+Wkp+WkmuaVsCA8IGRhaXRhc3V1XCA7CivlrZDljYjnt5ogPCBzaGlnb3NlblwgOwor6ICB5a6fIDwgcm91aml0c3VcIDsKK+Wkp+mAhiA8IGRhaWd5YWt1XCA7Civml6Xok64gPCBuaWNoaXJlblwgOwor5q2j5bi45YyWIDwgc2Vpam91a2FcIDsKK+eZuumFtee0oCA8IGhha2tvdXNvXCA7Civot53pm6LoqIggPCBreW9yaWtlaVwgOwor54ax6Zu3IDwgbmV0c3VyYWlcIDsKK+iIueWwj+WxiyA8IGZ1bmFnb3lhXCA7CivphrjpgKDmiYAgPCBqb3V6b3Vqb1wgOwor6Kmm6aOfIDwgc2hpc2hva3VcIDsKK+aVt+mHkSA8IHNoaWtpa2luXCA7Civlq6HlprsgPCBjaGFrdXNhaVwgOwor5LiA5qOfIDwgaGl0b211bmVcIDsKK+Wkp+e0jeiogCA8IGRhaW5hZ29uXCA7CivlpKnmloflrrYgPCB0ZW5tb25rYVwgOwor5qih6YCg6ICFIDwgbW96b3VzaGFcIDsKK+Wksei3oSA8IHNoaXNzZWtpXCA7Civlr53kuI3otrMgPCBuZWJ1c29rdVwgOwor5Lq65Yi6IDwgamluc2FzaGlcIDsKK+mbu+mJhCA8IGRlbnRldHN1XCA7CivkurrliKUgPCBuaW5iZXRzdVwgOwor5bCC6ZaA5a62IDwgc2VubW9ua2FcIDsKK+irluiqrCA8IHJvbnNldHN1XCA7CivmnKrnhLblvaIgPCBtaXplbmtlaVwgOwor5pys5bGAIDwgaG9ua3lva3VcIDsKK+WJquijgeapnyA8IHNlbnNhaWtpXCA7CivkuK3mjIcgPCBuYWtheXViaVwgOwor6LO86LK36YOoIDwga291YmFpYnVcIDsKK+iyuOWAnyA8IHRhaXNoYWt1XCA7CivnjbLlvpcgPCBrYWt1dG9rdVwgOwor6KuW6KmwIDwgcm9ua2l0c3VcIDsKK+aFiOWWhOS8miA8IGppemVua2FpXCA7CivmgqrotqPlkbMgPCBha3VzaHVtaVwgOwor5LiA5qGBIDwgaGl0b2tldGFcIDsKK+aWveihkyA8IHNoaWp1dHN1XCA7CivpoZvmnKsgPCB0ZW5tYXRzdVwgOwor6LSI5LiO56iOIDwgem91eW96ZWlcIDsKK+iyoeWKmyA8IHphaXJ5b2t1XCA7Civoqp7pg6ggPCBrYXRhcmliZVwgOwor5L+d5a2Y57O7IDwgaG96b25rZWlcIDsKK+S4ieabsiA8IHNhbmt5b2t1XCA7CivmsJfli5Xou4ogPCBraWRvdXNoYVwgOwor5rC45L2P6ICFIDwgZWlqdXVzaGFcIDsKK+aZr+eJqSA8IGtlaWJ1dHN1XCA7CivmlrnooZMgPCBob3VqdXRzdVwgOwor54m557SEIDwgdG9rdXlha3VcIDsKK+e5sOiogCA8IGt1cmlnb3RvXCA7CivniZvogokgPCBneXV1bmlrdVwgOwor5p2J5Z6jIDwgc3VnaWdha2lcIDsKK+eOi+WupCA8IG91c2hpdHN1XCA7CivkuIDmnZ8gPCBoaXRvdGFiYVwgOwor54mh576KIDwgb2hpdHN1amlcIDsKK+iwt+W6lSA8IHRhbml6b2tvXCA7CivmnKrnhp/lhZAgPCBtaWp1a3VqaVwgOwor5LiA5pyoIDwgaWNoaWJva3VcIDsKK+S6uuWCkSA8IGppbmtldHN1XCA7CivoqJjlv7Xlk4EgPCBraW5lbmhpblwgOwor56C055Oc55eFIDwgaGFrYWJ5b3VcIDsKK+aYqOeniyA8IHNha3VzaHV1XCA7CivosLflt50gPCB0YW5pZ2F3YVwgOwor5LuE5LuEIDwgaG9ub2Jvbm9cIDsKK+egtOeUo+azlSA8IGhhc2FuaG91XCA7CivlgZzpm7vml6UgPCB0ZWlkZW5iaVwgOwor6LK35Li7IDwga2FpbnVzaGlcIDsKK+WPl+mok+eUnyA8IGp1a2Vuc2VpXCA7CivpmbjokrjmsJcgPCBva2Fqb3VraVwgOwor5LiA5pmCIDwgaGl0b3Rva2lcIDsKK+aYh+e1piA8IHNob3VreXV1XCA7Civlrp/ooYzmmYIgPCBqaWtrb3VqaVwgOwor54mH6IadIDwga2F0YWhpemFcIDsKK+mjsuWKqSA8IG5vbWlzdWtlXCA7Civmm7LmgqogPCBreW9rdWFrdVwgOwor5qih6YCg57SZIDwgbW96b3VzaGlcIDsKK+S6jOWOn+WtkCA8IG5pZ2Vuc2hpXCA7CivkuIDml5cgPCBoaXRvaGF0YVwgOwor5LiA5pePIDwgaWNoaXpva3VcIDsKK+mjn+WTgSA8IHNob2t1aGluXCA7CivnianntI0gPCBidXRzdW5vdVwgOwor5aSx6Kq/IDwgc2hpdGNob3VcIDsKK+eFrumtmiA8IG5pemFrYW5hXCA7CivlpLHoqp4gPCBzaGl0c3Vnb1wgOwor5LiH5Zu95peXIDwgYmFua29ra2lcIDsKK+aXqeiAsyA8IGhheWFtaW1pXCA7CivkuLjlupUgPCBtYXJ1em9rb1wgOwor5LqL5YuZ55qEIDwgamltdXRla2lcIDsKK+S6uuS6uiA8IGhpdG9iaXRvXCA7CivmlaPpgLggPCBzYW4nJ2l0c3VcIDsKK+eJh+iCjCA8IGthdGFoYWRhXCA7Civmm7jlvI8gPCBzaG9zaGlraVwgOwor5Lq65LqLIDwgaGl0b2dvdG9cIDsKK+e3j+mrqiA8IHNvdWhhdHN1XCA7CivmnI3lsZ4gPCBmdWt1em9rdVwgOwor54m556iuIDwgdG9rdWRhbmVcIDsKK+S4reW9oiA8IGNodXVnYXRhXCA7CivkurrkuK0gPCBoaXRvbmFrYVwgOwor5o6o56e755qEIDwgc3VpaXRla2lcIDsKK+S4gOaSgyA8IGljaGlnZWtpXCA7CivnqbrmsJfnqbQgPCBrdXVraWFuYVwgOwor5Y+X5a656ICFIDwganV5b3VzaGFcIDsKK+ezoOWRs+WZjCA8IG51a2FtaXNvXCA7CivmlrnlvaLms6IgPCBob3VrZWloYVwgOwor5oim5YmN5rS+IDwgc2VuemVuaGFcIDsKK+WHpueQhuWgtCA8IHNob3Jpam91XCA7CivkuozlvKbnkLQgPCBuaWdlbmtpblwgOwor5Lit5bqtIDwgbmFrYW5pd2FcIDsKK+Wni+eZuiA8IHNoaWhhdHN1XCA7CivorJ3ntbYgPCBzaGF6ZXRzdVwgOwor5Lm+5ZKzIDwga2FyYXpla2lcIDsKK+mFkumAoOWutiA8IHNodXpvdWthXCA7CivkuK3luZUgPCBuYWthbWFrdVwgOwor5Lit5bmFIDwgY2h1dWhhYmFcIDsKK+aOsuekuuadvyA8IGtlaWppYmFuXCA7CivlhoXpoqjlkYIgPCB1Y2hpYnVyb1wgOwor6Ku46IadIDwgbW9yb2hpemFcIDsKK+iruOiGmiA8IG1vcm9oYWRhXCA7CivkuK3luK0gPCBuYWthc2VraVwgOwor5pyd5aSVIDwgY2hvdXNla2lcIDsKK+eJp+esmyA8IGJva3V0ZWtpXCA7CivkuKHlvpcgPCByeW91dG9rdVwgOwor57im6Lu4IDwgdGF0ZWppa3VcIDsKK+S4reWKtOWnlCA8IGNodXVyb3VpXCA7Civlp6bniakgPCBrYW5idXRzdVwgOwor6aOf5Yi7IDwgc2hva2tva3VcIDsKK+eOieWeoyA8IHRhbWFnYWtpXCA7CivmhJvnjKvlrrYgPCBhaWJ5b3VrYVwgOwor5LiJ5Zue5b+MIDwgc2Fua2Fpa2lcIDsKK+e3j+S7leiIniA8IHNvdWppbWFpXCA7Civpm7LotrMgPCBrdW1vYXNoaVwgOwor57eR6aKoIDwgcnlva3VmdXVcIDsKK+eJqeeoriA8IG1vbm9kYW5lXCA7CivkuKbluYUgPCBuYW1paGFiYVwgOwor5aaZ562WIDwgbXlvdXNha3VcIDsKK+mdmeiEiCA8IGpvdW15YWt1XCA7CivniannqI4gPCBidXRzdXplaVwgOwor5Li75a6iIDwgc2h1a3lha3VcIDsKK+mGuOmAoOWutiA8IGpvdXpvdWthXCA7CivkuqTkuqQgPCBrb21vZ29tb1wgOwor54iG6JasIDwgYmFrdXlha3VcIDsKK+S4reWztiA8IG5ha2FqaW1hXCA7CivkuqTku5jph5EgPCBrb3VmdWtpblwgOwor5LqL5YWxIDwga290b2RvbW9cIDsKK+aJh+miqOapnyA8IHNlbnB1dWtpXCA7CivkuI3mgokgPCBmdXNoaXRzdVwgOwor5YWo5YCZ6KOcIDwgemVua291aG9cIDsKK+eQhuaDs+irliA8IHJpc291cm9uXCA7CivniafnpZ4gPCBib2t1c2hpblwgOwor57eR6Z2SIDwgcm9rdXNob3VcIDsKK+a8ouaVsOWtlyA8IGthbnN1dWppXCA7CivovJ3nhYzluJ0gPCBraWtvdXRlaVwgOwor5pSv5oyB6ICFIDwgc2hpamlzaGFcIDsKK+aWueiInyA8IGhha29idW5lXCA7Civpo6/kuosgPCBtYW1hZ290b1wgOwor5Lit5bCPIDwgY2h1dXNob3VcIDsKK+aXpeexsyA8IG5pY2hpYmVpXCA7CivnhLzps6UgPCB5YWtpdG9yaVwgOwor5aSn5paH5a2XIDwgZGFpbW9uamlcIDsKK+isueebtCA8IGtpbmNob2t1XCA7CivkuK3lraYgPCBjaHV1Z2FrdVwgOwor57e06YmEIDwgcmVudGV0c3VcIDsKK+WkieiqrCA8IGhlbnNldHN1XCA7CivmlbXopbIgPCB0ZWtpc2h1dVwgOwor5a2Q5Y2I55KwIDwgc2hpZ29rYW5cIDsKK+aUvumAkCA8IGhvdWNoaWt1XCA7CivkuInlvbkgPCBzYW4nJ3lha3VcIDsKK+iqjeitmCA8IG5pbnNoaWtpXCA7Civoibbnpo/lrrYgPCBlbnB1a3VrYVwgOwor5bCC6ZaA5Yy7IDwgc2VubW9uJydpXCA7Civmm7TlubTmnJ8gPCBrb3VuZW5raVwgOwor5pel5pys5YiAIDwgbmlob250b3VcIDsKK+e3kemWgCA8IHJ5b2t1bW9uXCA7CivkuI3ooYzlhIAgPCBmdWd5b3VnaVwgOwor5biw5bej5oCnIDwga2lzb3VzZWlcIDsKK+S4i+aJi+eJqSA8IGdldGVtb25vXCA7CivmnZHkurogPCBtdXJhYml0b1wgOwor5o+Q5qGI6ICFIDwgdGVpYW5zaGFcIDsKK+WPl+S/oeapnyA8IGp1c2hpbmtpXCA7CivkuIvluK8gPCBzaGl0YW9iaVwgOwor5LiA5b25IDwgaGl0b3lha3VcIDsKK+ixquWCkSA8IGdvdWtldHN1XCA7Civmj5rlrZDmsZ8gPCB5b3VzdWtvdVwgOwor5LqL5LqLIDwga290b2dvdG9cIDsKK+e2v+mbsiA8IHdhdGFndW1vXCA7CivkubHlhaUgPCByYW4nJ255dXVcIDsKK+e2v+mbqiA8IHdhdGF5dWtpXCA7CivntYzluLjosrsgPCBrZWlqb3VoaVwgOwor5LqI5LqIIDwga2FuZWdhbmVcIDsKK+S4luWxgCA8IHNlaWt5b2t1XCA7Civnt7TpgZQgPCByZW50YXRzdVwgOwor5pqH5pqHIDwgaGltYWhpbWFcIDsKK+mahumahiA8IHJ5dXVyeXV1XCA7CivmtbfnjovmmJ8gPCBrYWlvdXNlaVwgOwor5LiA5bqmIDwgaGl0b3RhYmlcIDsKK+mahemahSA8IHN1bWl6dW1pXCA7CivlubznqJrlnJIgPCB5b3VjaGllblwgOwor5LiA5bm0IDwgaGl0b3Rvc2VcIDsKK+mdmeeymyA8IHNlaXNodWt1XCA7Civloanprq0gPCBzaGlvemFrZVwgOwor5peP57GNIDwgem9rdXNla2lcIDsKK+Wkp+iSnCA8IG5pbicnbmlrdVwgOwor5LiA5bmVIDwgaGl0b21ha3VcIDsKK+aciOahguaouSA8IGdla2tlaWp1XCA7CivmnKroqJjlhaUgPCBtaWtpbnl1dVwgOwor5LiA5be7IDwgaGl0b21ha2lcIDsKK+mbo+ipsCA8IG5hbmtpdHN1XCA7Civpm4Douo0gPCBqYWt1eWFrdVwgOwor5Lit5aGXIDwgbmFrYW51cmlcIDsKK+mZqumjnyA8IGJhaXNob2t1XCA7CivnoJTno6jmnZAgPCBrZW5tYXphaVwgOwor5LqM5bm06I2JIDwgbmluZW5zb3VcIDsKK+mgjOaYpSA8IHNob3VzaHVuXCA7Civnvqnli4fou40gPCBnaXl1dWd1blwgOwor5paH6Kqe5paHIDwgYnVuZ29idW5cIDsKK+iqleeUn+aXpSA8IHRhbmpvdWJpXCA7CivkvK/liYzopb/niL4gPCBidXJhamlydVwgOwor5LiH5bGLIDwgeW9yb3p1eWFcIDsKK+S4reWeoyA8IG5ha2FnYWtpXCA7Civph5HmmYLoqIggPCBraW5kb2tlaVwgOwor6aKo5YqbIDwgZnV1cnlva3VcIDsKK+epuua0nuWMliA8IGt1dWRvdWthXCA7Civns57lkbPlmYwgPCBrdXNvbWlzb1wgOwor5Lmx5LyQIDwgcmFuYmF0c3VcIDsKK+aXpeacrOS6uiA8IG5paG9uamluXCA7CivnjKvlsZ4gPCBuZWtvem9rdVwgOwor5oCn6YGK5oivIDwgc2VpeXV1Z2lcIDsKK+S4reWbvSA8IGNodXVnb2t1XCA7CivmrKHngrnogIUgPCBqaXRlbnNoYVwgOwor6aCD5pelIDwga2Vpaml0c3VcIDsKK+mYsuiFkOWJpCA8IGJvdWZ1emFpXCA7CivoqbPoqLsgPCBzaG91Y2h1dVwgOwor5pel5pys5LitIDwgbmlob25qdXVcIDsKK+mbkeirhyA8IHphdHN1ZGFuXCA7CivohZXnm7jmkrIgPCB1ZGV6dW1vdVwgOwor5Zyw5Z+f5beuIDwgY2hpaWtpc2FcIDsKK+S/neitt+mzpSA8IGhvZ29jaG91XCA7Civml6Xnm7QgPCBuaXRjaG9rdVwgOwor57eR6YWSIDwgcnlva3VzaHVcIDsKK+S4gOWupCA8IGlzc2hpdHN1XCA7CivlpKrohb8gPCBmdXRvbW9tb1wgOwor5bCP5omL5YWIIDwga290ZXNha2lcIDsKK+eEoemZjeawtCA8IG11a291c3VpXCA7Civmlq3ntbYgPCBkYW56ZXRzdVwgOwor5LiA5a2QIDwgaGl0b3JpZ29cIDsKK+Wnq+anmCA8IGhpbWVzYW1hXCA7CivpvLvlkbzlkLggPCBiaWtva3l1dVwgOwor6Zu76JOEIDwgZGVuY2hpa3VcIDsKK+mHjemojuWFtSA8IGp1dWtpaGVpXCA7Civlj6Tku6Plj7IgPCBrb2RhaXNoaVwgOwor5pyr5LujIDwgbWF0c3VkYWlcIDsKK+iogOmciiA8IGtvdG9kYW1hXCA7CivkuKHlm70gPCByeW91Z29rdVwgOwor5Li75Y+WIDwgc2h1dWRvcmlcIDsKK+mbqOibmSA8IGFtYWdhZXJ1XCA7Civnhp/oqq0gPCBqdWt1ZG9rdVwgOwor546J5L2TIDwgZ3lva3V0YWlcIDsKK+eJp+eJmyA8IGJva3VneXV1XCA7Civlob7plbcgPCBqdWt1Y2hvdVwgOwor54ax6KGAIDwgbmVra2V0c3VcIDsKK+iDveiInuWPsCA8IG5vdWJ1dGFpXCA7Civnjonku6MgPCBneW9rdWRhaVwgOwor6ZuG6Ki7IDwgc2h1dWNodXVcIDsKK+ertummrOmmrCA8IGtlaWJhdW1hXCA7CivpmpTpgLEgPCBrYWt1c2h1dVwgOwor5YWN56ef5ZywIDwgbWVuc29jaGlcIDsKK+aXpeeUqCA8IG5pY2hpeW91XCA7Civmm7jlj5YgPCBrYWtpdG9yaVwgOwor5LqM5qyh55qEIDwgbmlqaXRla2lcIDsKK+a8lOWlj+iAhSA8IGVuc291c2hhXCA7CivkuLvlipsgPCBzaHVyeW9rdVwgOwor5YW35L2T5oCnIDwgZ3V0YWlzZWlcIDsKK+aciOWGhSA8IGdldHN1bmFpXCA7CivkuZ7kuJAgPCBrb3RzdWdhaVwgOwor5LiD5aSVIDwgdGFuYWJhdGFcIDsKK+isoeeJqSA8IHV0YWltb25vXCA7CivpoLvlsL8gPCBoaW4nJ255b3VcIDsKK+Wkqee9sCA8IHRlbmJhdHN1XCA7CivkuIDnrYnou4ogPCBpdHRvdXNoYVwgOwor6Z2i55m9IDwgb21vc2hpcm9cIDsKK+absuWQjSA8IGt5b2t1bWVpXCA7Civnt4/ovYQgPCBzb3VrYXRzdVwgOwor5Lit5Y+kIDwgY2h1dWJ1cnVcIDsKK+S4jeWTgeihjCA8IGZ1aGlua291XCA7Civni7zluqcgPCBvb2thbWl6YVwgOwor6Ki86LehIDwgc2hvdXNla2lcIDsKK+eJueenkeWFtSA8IHRva2thaGVpXCA7CivohILogqrmsrkgPCBzaGlib3V5dVwgOwor5bem5aSn6IejIDwgc2FkYWlqaW5cIDsKK+mHkeWtl+WhlCA8IGtpbmppdG91XCA7Civlpa7nmbogPCBmdW5wYXRzdVwgOwor6auY6YeO5bGxIDwga291eWFzYW5cIDsKK+Wkp+eGiuW6pyA8IG9vZ3VtYXphXCA7CivmmI7mu4UgPCBtZWltZXRzdVwgOwor6Zm46YejIDwgb2thZHp1cmlcIDsKK+isgOeVpSA8IGJvdXJ5YWt1XCA7CivkuIDloakgPCBoaXRvc2hpb1wgOwor6aKo5LiKIDwga2F6YWthbWlcIDsKK+WGkumZuuWutiA8IGJvdWtlbmthXCA7CivlpJbogqEgPCBzb3RvbWF0YVwgOwor5aGp5r+D5bqmIDwgZW4nJ25vdWRvXCA7Civntbbpo58gPCB6ZXNzaG9rdVwgOwor5pu45YidIDwga2FraXpvbWVcIDsKK+aXpeS5g+S4uCA8IGhpbm9tYXJ1XCA7Civoqqbnv5IgPCBzaG91c2h1dVwgOwor54iG56yRIDwgYmFrdXNob3VcIDsKK+e/kuS9nCA8IHNodXVzYWt1XCA7Civnibnms6ggPCB0b2t1Y2h1dVwgOwor5pqm5a2mIDwgcmVraWdha3VcIDsKK+S4uOWCtyA8IHRhbWFraXp1XCA7CivkvZXlh6bov4QgPCBkb2tvbWFkZVwgOwor6L+R5Ly85YCkIDwga2luamljaGlcIDsKK+mAj+ejgeaApyA8IHRvdWppc2VpXCA7CivlpYnnpZ0gPCBob3VzaHVrdVwgOwor5L+d6K236aCYIDwgaG9nb3J5b3VcIDsKK+S4reWFsSA8IGNodXVreW91XCA7CivnibnmtL7lk6EgPCB0b2t1aGFpblwgOwor5Lim5YiXIDwgaGVpcmV0c3VcIDsKK+S5heS5hSA8IGhpc2FiaXNhXCA7CivllL7mtrLohbogPCBkYWVraXNlblwgOwor57eR6LGGIDwgcnlva3V0b3VcIDsKK+WlveeJqSA8IGtvdWJ1dHN1XCA7CivkuIvpmaLorbDlk6EgPCBrYWluZ2lpblwgOwor5bqt5pyo5oi4IDwgbml3YWtpZG9cIDsKK+mdkueVsyA8IGFvZGF0YW1pXCA7Civpm5voj4ogPCBoaW5hZ2lrdVwgOwor5pmC5pmCIDwgdG9raWRva2lcIDsKK+W+jOaPtOiAhSA8IGtvdWVuc2hhXCA7Civpu4TpiYTpibEgPCBvdXRla2tvdVwgOwor5aSx56yRIDwgc2hpc3Nob3VcIDsKK+aVl+iJsiA8IGhhaXNob2t1XCA7Civpm6rohpogPCB5dWtpaGFkYVwgOwor5pqX5a6kIDwgYW5zaGl0c3VcIDsKK+WPpOS7o+S6uiA8IGtvZGFpamluXCA7Civkuovli5nmnI0gPCBqaW11ZnVrdVwgOwor5bCP6bqm57KJIDwga29tdWdpa29cIDsKK+S4i+WRsyA8IHNoaXRhYWppXCA7CivkuI3murbmgKcgPCBmdXlvdXNlaVwgOwor57WQ6auqIDwga2VwcGF0c3VcIDsKK+mhp+WVj+WboyA8IGtvbW9uZGFuXCA7CivmmLzmmYIgPCBoaXJ1ZG9raVwgOwor5L+d5pyJ6ICFIDwgaG95dXVzaGFcIDsKK+mBv+eXhemZoiA8IGhpYnlvdWluXCA7CivliY3mma/msJcgPCBtYWVnZWlraVwgOwor5Li45LqLIDwgbWFydWdvdG9cIDsKK+mbu+awl+akheWtkCA8IGRlbmtpaXN1XCA7CivlpJbkuqTlk6EgPCBnYWlrb3VpblwgOwor5paH566xIDwgZnVtaWJha29cIDsKK+Wkp+etkiA8IG9vZHp1dHN1XCA7CivkuLjkuLggPCBtYXJ1bWFydVwgOwor6Ziy6ZuqIDwgYm91c2V0c3VcIDsKK+mKheebuOWgtCA8IGRvdXNvdWJhXCA7CivoqLPoqq0gPCB5YWt1ZG9rdVwgOwor5LiD5ZGzIDwgc2hpY2hpbWlcIDsKK+aWueeVpSA8IGhvdXJ5YWt1XCA7CivkuLjkuIAgPCBtYXJ1aWNoaVwgOwor5Lit5L2OIDwgbmFrYWJpa3VcIDsKK+Wni+acqyA8IHNoaW1hdHN1XCA7CivlpKfnq6UgPCBvb3dhcmF3YVwgOwor5YK+5pac5bqmIDwga2Vpc2hhZG9cIDsKK+mrmOW6puioiCA8IGtvdWRva2VpXCA7CivpnZLnjokgPCBzZWlneW9rdVwgOwor6L+R5pyq5p2lIDwga2lubWlyYWlcIDsKK+aNlemvqOiIuSA8IGhvZ2Vpc2VuXCA7CivlpLHnpZ4gPCBzaGlzc2hpblwgOwor6ZuG6JC9IDwgc2h1dXJha3VcIDsKK+mdmeeJqSA8IHNlaWJ1dHN1XCA7CivliqDlrrPogIUgPCBrYWdhaXNoYVwgOwor5pWw54+g546JIDwganV6dWRhbWFcIDsKK+S4gOWQkSA8IGhpdGFzdXJhXCA7Civni6zlraYgPCBkb2t1Z2FrdVwgOwor5pio5pydIDwgc2FrdWNob3VcIDsKK+S4gOWPoiA8IGhpdG9tdXJhXCA7Civmm7LkuosgPCBrdXNlZ290b1wgOwor5omL57695YWIIDwgdGViYXNha2lcIDsKK+ijnOWKqee/vCA8IGhvam95b2t1XCA7CivkuK3kuK0gPCBuYWthbmFrYVwgOwor5oWI5oKy5b+DIDwgamloaXNoaW5cIDsKK+mhnuWIpSA8IHJ1aWJldHN1XCA7CivlpJbosqjlgrUgPCBnYWlrYXNhaVwgOwor57iu57esIDwgY2hpcmltZW5cIDsKK+aDheWgseWMliA8IGpvdWhvdWthXCA7CivmmKjmmoEgPCBzYWt1Z3lvdVwgOwor57eP5LqI566XIDwgc291eW9zYW5cIDsKK+ecn+WknOS4rSA8IG1heW9uYWthXCA7CivntZDpoZggPCBrZWNoaWdhblwgOwor5pio5pilIDwgc2FrdXNodW5cIDsKK+S4h+WIpSA8IGJhbmJldHN1XCA7CivpoIHlsqkgPCBrZXRzdWdhblwgOwor5Lim5LimIDwgbmFtaW5hbWlcIDsKK+e4pue4niA8IHRhdGVqaW1hXCA7CivoppfprZQgPCBub3pva2ltYVwgOwor5aKX6KitIDwgem91c2V0c3VcIDsKK+S4gOWJsiA8IGljaGl3YXJpXCA7CivlpJXnq4sgPCB5dXVkYWNoaVwgOwor5aGp6L6bIDwgc2hpb2thcmFcIDsKK+aXp+a1gSA8IGt5dXVyeXV1XCA7CivkuIvmhI/orZggPCBrYWlzaGlraVwgOwor5Luj56i95Y+kIDwgZGFpZ2Vpa29cIDsKK+awuOS9j+aoqSA8IGVpanV1a2VuXCA7Civkv53mnInnsbMgPCBob3l1dW1haVwgOwor6Ieq5Zu96KqeIDwgamlrb2t1Z29cIDsKK+WPjeWvvuiqniA8IGhhbnRhaWdvXCA7CivlpInnlbDkvZMgPCBoZW4nJ2l0YWlcIDsKK+e1uemHnSA8IGtpbnViYXJpXCA7CivnjYTkuK0gPCBnb2t1Y2h1dVwgOwor5Yip5bex55qEIDwgcmlrb3Rla2lcIDsKK+S4gOWFiCA8IGhpdG9tYXp1XCA7Civlu7rlhbflsYsgPCB0YXRlZ3V5YVwgOwor5piH5qC8IDwgc2hvdWtha3VcIDsKK+mYsuWvkuWFtyA8IGJvdWthbmd1XCA7CivlpbPlrabmoKEgPCBqb2dha2tvdVwgOwor5L+d5a6I5oCnIDwgaG9zaHVzZWlcIDsKK+e5reeOiSA8IG1heXVkYW1hXCA7CivmmI7mnIggPCBtZWlnZXRzdVwgOwor6Z6t5pK7IDwgYmVudGF0c3VcIDsKK+mbqOeykiA8IGFtZXRzdWJ1XCA7Civlpb3mma/msJcgPCBrb3VrZWlraVwgOwor5bmz5ZKM57at5oyBIDwgaGVpd2FpamlcIDsKK+S6pOS7mOiAhSA8IGtvdWZ1c2hhXCA7Civlj6/lpInmlbAgPCBrYWhlbnN1dVwgOwor6Iqx5paH5a2XIDwgaGFuYW1vamlcIDsKK+aatOWKmyA8IGJvdXJ5b2t1XCA7CivpnaLkvJrml6UgPCBtZW5rYWliaVwgOwor6Kaz6ZayIDwga2FuJydldHN1XCA7CivnhZnojYnlsYsgPCB0YWJha295YVwgOwor57eR6Je7IDwgcnlva3Vzb3VcIDsKK+Wjrue1tiA8IHNvdXpldHN1XCA7Civpm6jmqKHmp5ggPCBhbWVtb3lvdVwgOwor5pWZ57GNIDwga3lvdXNla2lcIDsKK+aYjuaYpSA8IG15b3VzaHVuXCA7CivkuIfku6MgPCB5b3JvenV5b1wgOwor5pSv6ISIIDwgc2hpbXlha3VcIDsKK+aPuuexg+acnyA8IHlvdXJhbmtpXCA7CivnqoHnoLTlj6MgPCB0b3BwYWtvdVwgOwor54us5Zu9IDwgZG9rdWtva3VcIDsKK+i/keS7o+WMliA8IGtpbmRhaWthXCA7Civngrnngavns7sgPCB0ZW5rYWtlaVwgOwor5LqM5bm055SfIDwgbmluZW5zZWlcIDsKK+aYn+awl+S9kyA8IHNlaWtpdGFpXCA7CivkuI3nrYnlj7cgPCBmdWRvdWdvdVwgOwor5pyJ54K66Lui5aSJIDwgdWl0ZW5wZW5cIDsKK+S6lOi+uuW9oiA8IGdvaGVua2VpXCA7CivkuozovKrou4ogPCBuaXJpbnNoYVwgOwor5LiJ5LiLIDwgc2Fuc2hpdGFcIDsKK+Wkp+eVpSA8IHRhaXJ5YWt1XCA7CivnlKjnrqrnrKUgPCB5b3VkYW5zdVwgOwor5aWz5rCXIDwgb24nJ25ha2tlXCA7CivloanosYYgPCBzaGlvbWFtZVwgOwor5Ya36JS15bqrIDwgcmVpem91a29cIDsKK+S4h+S4gCA8IG1hbicnaWNoaVwgOwor6Zuq56m6IDwgeXVraXpvcmFcIDsKK+isgOauuiA8IGJvdXNhdHN1XCA7CivntYTplbcgPCBrdW1pY2hvdVwgOwor6KiA6KqsIDwgZ2Vuc2V0c3VcIDsKK+S4jeaJgOWtmCA8IGZ1c2hvem9uXCA7Civop5LpgJogPCBrYWt1dHN1dVwgOwor5oqV5YWJ5ZmoIDwgdG91a291a2lcIDsKK+a1nOiMhOWtkCA8IGhhbWFuYXN1XCA7Civlj6Tmm7jlsZUgPCBrb3Nob3RlblwgOwor5LqM5Y2B5LujIDwgbmlqdXVkYWlcIDsKK+S4gOS4gCA8IGl0c3VpdHN1XCA7CivntbHovYQgPCB0b3VrYXRzdVwgOwor6Kyh5puyIDwgeW91a3lva3VcIDsKK+e0hemxkiA8IGJlbmltYXN1XCA7CivluILooZflm7MgPCBzaGlnYWl6dVwgOwor54us5ZSxIDwgZG9rdXNob3VcIDsKK+aoueaeneeKtiA8IGp1c2hpam91XCA7Civnt5HojLYgPCByeW9rdWNoYVwgOwor5bqP55uk5oimIDwgam9iYW5zZW5cIDsKK+aYvOW4rSA8IGhpcnVzZWtpXCA7CivngavmiJDlsqkgPCBrYXNlaWdhblwgOwor57WE5ZCI5ZOhIDwga3VtaWFpaW5cIDsKK+S6nOiEseiHvCA8IGFkYWtreXV1XCA7CivntIXprq0gPCBiZW5pemFrZVwgOwor57SN6aqoIDwgbm91a290c3VcIDsKK+mssemHkeiJsiA8IHVrb24nJ2lyb1wgOwor5pen5qCqIDwga3l1dWthYnVcIDsKK+Wnq+WuriA8IGhpbWVtaXlhXCA7CivlopzokL0gPCB0c3VpcmFrdVwgOwor6ay85q2m6ICFIDwgb25pbXVzaGFcIDsKK+aWnOaKleW9sSA8IHNoYXRvdWVpXCA7CivmlbDnmb4gPCBzdXVoeWFrdVwgOwor6ZuG57SEIDwgc2h1dXlha3VcIDsKK+iqmOeZuiA8IHl1dWhhdHN1XCA7Civmu5HnqbrmqZ8gPCBrYWtrdXVraVwgOwor54mH5qCXIDwga2F0YWt1cmlcIDsKK+aXrOaciCA8IGp1bmdldHN1XCA7Civou73pqI7lhbUgPCBrZWlraWhlaVwgOwor5LqM5YWD6KuWIDwgbmlnZW5yb25cIDsKK+aJi+aWmeeQhiA8IHRlcnlvdXJpXCA7CivljZjliKnms5UgPCB0YW5yaWhvdVwgOwor5b6h56We6Ly/IDwgb21pa29zaGlcIDsKK+WFiOmLreWMliA8IHNlbicnZWlrYVwgOwor6Zu755WlIDwgZGVucnlha3VcIDsKK+aSkuW4g+WJpCA8IHNhcHB1emFpXCA7CivmlofniakgPCBidW5idXRzdVwgOwor5ZGJ5pyN5bGLIDwgZ29mdWt1eWFcIDsKK+aUueeviSA8IGthaWNoaWt1XCA7CivoqabnrYsgPCB0YW1lc3VqaVwgOwor6Kmm562GIDwgc2hpaGl0c3VcIDsKK+aXp+aapiA8IGt5dXVyZWtpXCA7Civml6zml6UgPCBqdW5qaXRzdVwgOwor6ZuR56iOIDwgemF0c3V6ZWlcIDsKK+iqreeJqSA8IHlvbWltb25vXCA7Civmurbop6PngokgPCB5b3VrYWlyb1wgOwor6Zuq55uyIDwgc2V0c3Vtb3VcIDsKK+WPr+WkieaApyA8IGthaGVuc2VpXCA7Civorablr58gPCBrZWlzYXRzdVwgOwor5bm06b2i5beuIDwgbmVucmVpc2FcIDsKK+ino+iqrCA8IGthaXNldHN1XCA7Civnt6nnt6kgPCB5dXJ1eXVydVwgOwor5pep5pepIDwgaGF5YWJheWFcIDsKK+inkuiynSA8IHRzdW5vZ2FpXCA7CivliIDlnK3lrrYgPCB0b3VrZWlrYVwgOwor5pGC6aOfIDwgc2Vzc2hva3VcIDsKK+ilv+mZoyA8IG5pc2hpamluXCA7Civps7Pku5noirEgPCBob3VzZW5rYVwgOwor6Kem6KeSIDwgc2hva2tha3VcIDsKK+Wjgee0mSA8IGthYmVnYW1pXCA7CivlsI7ms6LnrqEgPCBkb3VoYWthblwgOwor5Y2Y5q+U5L6LIDwgdGFucGlyZWlcIDsKK+aNlemvqOegsiA8IGhvZ2VpaG91XCA7CivntJDpnakgPCBoaW1va2F3YVwgOwor55u06Laz6KKLIDwgamlrYXRhYmlcIDsKK+aXp+aVmSA8IGt5dXVreW91XCA7Civpm4bnqY0gPCBzaHV1c2VraVwgOwor5Z+L6aqoIDwgbWFpa290c3VcIDsKK+aXl+acrCA8IGhhdGFtb3RvXCA7CivlpJbniakgPCBnYWlidXRzdVwgOwor5oKq5aSq6YOOIDwgYWt1dGFyb3VcIDsKK+acieeQhuaVsCA8IHl1dXJpc3V1XCA7Civpg6jliIblk4EgPCBidWJ1bmhpblwgOwor5Y+v54eD5oCnIDwga2FuZW5zZWlcIDsKK+S4jeWWhOaEnyA8IGZ1emVua2FuXCA7CivntJrplbcgPCBreXV1Y2hvdVwgOwor5pas5q66IDwgemFuc2F0c3VcIDsKK+a0l+mdouaJgCA8IHNlbm1lbmpvXCA7Civnianmg4UgPCBidXRzdWpvdVwgOwor6ZuG56WoIDwgc2h1dWh5b3VcIDsKK+mbqOeUtyA8IGFtZW90b2tvXCA7CivniIbmsoggPCBiYWt1Y2hpblwgOwor5aSc54OPIDwgeW9nYXJhc3VcIDsKK+mAgeayueeuoSA8IHNvdXl1a2FuXCA7CivmoLzlrZDmiLggPCBrb3VzaGlkb1wgOwor5YW35L2T5L6LIDwgZ3V0YWlyZWlcIDsKK+Wnq+WeoyA8IGhpbWVnYWtpXCA7CivmlK/mjIHmna0gPCBzaGlqaWtvdVwgOwor54aK56y5IDwga3VtYXphc2FcIDsKK+eGseeZuiA8IG5lcHBhdHN1XCA7CivnhKHpmZDlpKcgPCBtdWdlbmRhaVwgOwor6aCG5YiXIDwganVucmV0c3VcIDsKK+WiqOe5qSA8IHN1bWluYXdhXCA7Civnsr7nsbPmiYAgPCBzZWltYWlqb1wgOwor6KyZ5oqRIDwga2VuJyd5b2t1XCA7Civmkq7opoEgPCBzYXRzdXlvdVwgOwor5aSJ54mpIDwgaGVuYnV0c3VcIDsKK+e1seiqnuirliA8IHRvdWdvcm9uXCA7CivmnKrplovlor4gPCBtaWthaWtvblwgOwor5pil5a61IDwgc2h1bnNob3VcIDsKK+S9nOalreiyuyA8IHNhZ3lvdWhpXCA7Civpl4fpm7IgPCB5YW1pa3Vtb1wgOwor5aSn6Ziq5bqcIDwgb29zYWthZnVcIDsKK+eMiue+jua4kyA8IGdlaWJpa2VpXCA7CivmiZPmkoPnjosgPCBkYWdla2lvdVwgOwor57aa6JC9IDwgem9rdXJha3VcIDsKK+mbqueOiSA8IHl1a2lkYW1hXCA7CivmkZjpjLIgPCB0ZWtpcm9rdVwgOwor5bqD6JGJ5qi5IDwga291eW91anVcIDsKK+e3iue4riA8IGtpbnNodWt1XCA7CivoqabnnYAgPCBzaGljaGFrdVwgOwor6I2J5Ym15pyfIDwgc291c291a2lcIDsKK+S+jeihm+mVtyA8IGppZWljaG91XCA7CivkuozpgLLmnKggPCBuaXNoaW5naVwgOwor5aSW5r+gIDwgc290b2JvcmlcIDsKK+WmvuWuhSA8IHNob3V0YWt1XCA7CivpoZXlnKjljJYgPCBrZW56YWlrYVwgOwor5YaN6Kmm5ZCIIDwgc2Fpc2hpYWlcIDsKK+S8nemfs+WZqCA8IGRlbicnb25raVwgOwor576p5YuZ55qEIDwgZ2ltdXRla2lcIDsKK+i8uOWNteeuoSA8IHl1cmFua2FuXCA7CivkvY7liKnph5EgPCB0ZWlyaWtpblwgOwor5oim5Yip5ZOBIDwgc2VucmloaW5cIDsKK+aWh+iqnuS9kyA8IGJ1bmdvdGFpXCA7Civkub7mgKfmsrkgPCBrYW5zZWl5dVwgOwor6KeS6KKWIDwga2FrdXNvZGVcIDsKK+aTgueyieacqCA8IHN1cmlrb2dpXCA7Civpl4fpl4cgPCB5YW1peWFtaVwgOwor5oyH5bCO5ZOhIDwgc2hpZG91aW5cIDsKK+acqumWi+WcsCA8IG1pa2FpY2hpXCA7Civnp5jmm7jlrpggPCBoaXNob2thblwgOwor5aSa5rm/IDwgdGFzaGl0c3VcIDsKK+mdouaOpSA8IG1lbnNldHN1XCA7Civpm5HnlKggPCB6YXRzdXlvdVwgOwor5paw5qCqIDwgc2hpbmthYnVcIDsKK+aRuui2syA8IHN1cmlhc2hpXCA7CivmrablrrbniakgPCBidWtlbW9ub1wgOwor5pW055CG5Yi4IDwgc2VpcmlrZW5cIDsKK+iCsumbm+WZqCA8IGlrdXN1dWtpXCA7CivlnKfmkL7mqZ8gPCBhc3Nha3VraVwgOwor5peB5peBIDwga2F0YWdhdGFcIDsKK+aWsOafhCA8IHNoaW5nYXJhXCA7CivmlL/nlaUgPCBzZWlyeWFrdVwgOwor6KaL6YCaIDwgbWl0b29zaGlcIDsKK+mbo+eJqSA8IG5hbmJ1dHN1XCA7CivkuozliIbms5UgPCBuaWJ1bmhvdVwgOwor5re35oiQ6KqeIDwga29uc2VpZ29cIDsKK+ePiOeQsuiLkSA8IGtvdWhpaWVuXCA7Civkuozpg6jkvZwgPCBuaWJ1c2FrdVwgOwor57eP5Lya5bGLIDwgc291a2FpeWFcIDsKK+imi+i/lCA8IG1pa2Flc2hpXCA7Civku5XmiYvmiKYgPCBzaGl0ZXNlblwgOwor5aer5ZCbIDwgaGltZWdpbWlcIDsKK+aUu+eVpSA8IGtvdXJ5YWt1XCA7CivntZDoq5YgPCBrZXRzdXJvblwgOwor5aWP5puyIDwgc291a3lva3VcIDsKK+WlveWlveeIuiA8IGtvdWtvdXlhXCA7CivnqI7li5nnvbIgPCB6ZWltdXNob1wgOwor6LKp5aOy5qmfIDwgaGFuYmFpa2lcIDsKK+mcveaciCA8IHNlaWdldHN1XCA7CivnqbrmsJflrZQgPCBrdXVraWtvdVwgOwor55ay5Yq05oSfIDwgaGlyb3VrYW5cIDsKK+aUvuawtOi3ryA8IGhvdXN1aXJvXCA7CivmlrDmmqYgPCBzaGlucmVraVwgOwor54S86IKJIDwgeWFraW5pa3VcIDsKK+e1kOiogCA8IGtldHN1Z2VuXCA7CivoqLznpaggPCBzaG91aHlvdVwgOwor6ZqP562GIDwgenVpaGl0c3VcIDsKK+WkluazlSA8IHNvdG9ub3JpXCA7CivmlrDmmKUgPCBzaGluc2h1blwgOwor5Lya6K2w5omAIDwga2FpZ2lzaG9cIDsKK+mZuOe2miA8IHJpa3V6b2t1XCA7CivnhrHnhrEgPCBhdHN1YXRzdVwgOwor5aKX56+JIDwgem91Y2hpa3VcIDsKK+W9ouWuueiqniA8IGtlaXlvdWdvXCA7CivkuIDlm57miKYgPCBpa2thaXNlblwgOwor57iu5ribIDwgc2h1a3VnZW5cIDsKK+e5geauliA8IGhhbnNob2t1XCA7CivlpKnmpbUgPCB0ZW5reW9rdVwgOwor55aR5ZWP6KmeIDwgZ2ltb25zaGlcIDsKK+aXp+W5lSA8IGt5dXViYWt1XCA7CivntbnojqIgPCBraW51c2F5YVwgOwor6Ium5Yq05Lq6IDwga3Vyb3VuaW5cIDsKK+WkseagvCA8IHNoaWtrYWt1XCA7CivogZbngavlj7AgPCBzZWlrYWRhaVwgOwor5pel5bi4IDwgbmljaGlqb3VcIDsKK+awtOS9jeaomSA8IHN1aWloeW91XCA7CivmgrLoprPoq5YgPCBoaWthbnJvblwgOwor5aaE6Kqe5oiSIDwgbW91Z29rYWlcIDsKK+mbkeeEtiA8IHphdHN1emVuXCA7CivmsLjlsI/kvZwgPCBlaWtvc2FrdVwgOwor54Kt57Sg6Yu8IDwgdGFuc29rb3VcIDsKK+e5iue2readnyA8IHNlbmlzb2t1XCA7Civop6PmlL7ljLogPCBrYWlob3VrdVwgOwor5L+d5a6I5YWaIDwgaG9zaHV0b3VcIDsKK+aUvueGsSA8IGhvdW5ldHN1XCA7CivoqpjmrrogPCB5dXVzYXRzdVwgOwor57Sg6LOqIDwgc29zaGl0c3VcIDsKK+e0heS4gOeCuSA8IGtvdWl0dGVuXCA7CivlnoLpq6ogPCB0YXJlZ2FtaVwgOwor6ZuB54iqIDwgZ2FuZHp1bWVcIDsKK+e4puazoiA8IHRhdGVuYW1pXCA7CivoqLrnmYIgPCBzaGlucnlvdVwgOwor57aa57aaIDwgem9rdXpva3VcIDsKK+eIhuaSgyA8IGJha3VnZWtpXCA7Civlrrbluq3nlKggPCBrYXRlaXlvdVwgOwor6KaL6K2YIDwga2Vuc2hpa2lcIDsKK+iZmuepuuiUtSA8IGtva3V1em91XCA7CivoqrDmn5AgPCBkYXJlc29yZVwgOwor5peL5b6LIDwgc2Vucml0c3VcIDsKK+S8muioiOiqsiA8IGthaWtlaWthXCA7CivnhrHmupAgPCBuZXRzdWdlblwgOwor5Yuk5YuZ6ICFIDwga2lubXVzaGFcIDsKK+WknOahnCA8IHlvemFrdXJhXCA7CivmlofmnKsgPCBidW5tYXRzdVwgOwor6Led6Zui5oSfIDwga3lvcmlrYW5cIDsKK+aXp+WuhSA8IGt5dXV0YWt1XCA7Civoqr/mlZkgPCBjaG91a3lvdVwgOwor5pmC5YG2IDwgdG9raXRhbWFcIDsKK+WmguWunyA8IG55b2ppdHN1XCA7Civmlo7ml6UgPCBzYWlqaXRzdVwgOwor54ax5raZIDwgbmV0c3VydWlcIDsKK+mbu+altSA8IGRlbmt5b2t1XCA7CivlobXnrrEgPCBnb21pYmFrb1wgOwor5pWP5rS7IDwgYmlua2F0c3VcIDsKK+mWi+mXoiA8IGthaWJ5YWt1XCA7CivnhaXnmbogPCBrYW5wYXRzdVwgOwor55yL6K235rOVIDwga2FuZ29ob3VcIDsKK+Wkp+aXpSA8IGRhaW5pY2hpXCA7CivlgqzkuovloLQgPCBzYWlqaWpvdVwgOwor6ay85YW16ZqKIDwga2loZWl0YWlcIDsKK+Wls+WtkOWkpyA8IGpvc2hpZGFpXCA7Civpn5PkurogPCBrYXJhYml0b1wgOwor5aSW5p6gIDwgc290b3dha3VcIDsKK+WUr+aIkeirliA8IHl1aWdhcm9uXCA7CivmnKroo73lk4EgPCBtaXNlaWhpblwgOwor5pW35p2/IDwgc2hpa2lpdGFcIDsKK+iqrOaYjiA8IHNldHN1bWVpXCA7CivnhKHntbHliLYgPCBtdXRvdXNlaVwgOwor57im5qiqIDwgdGF0ZXlva29cIDsKK+imgeiooyA8IHlvdWtldHN1XCA7CivlopfnmbogPCB6b3VoYXRzdVwgOwor6YCg6Ii55omAIDwgem91c2Vuam9cIDsKK+i6q+aUr+W6piA8IG1paml0YWt1XCA7CivmmI7lk7IgPCBtZWl0ZXRzdVwgOwor5aSc5pi8IDwgeW9ydWhpcnVcIDsKK+mHkeacrOS9jSA8IGtpbmhvbicnaVwgOwor5aSV5pyIIDwgeXV1ZHp1a2lcIDsKK+WkmumdouaApyA8IHRhbWVuc2VpXCA7CivlpKflnovmqZ8gPCBvb2dhdGFraVwgOwor5pa55byPIDwgaG91c2hpa2lcIDsKK+acqumWi+S6uiA8IG1pa2FpamluXCA7CivploDplqUgPCBtb25iYXRzdVwgOwor6JeB5bGL5qC5IDwgd2FyYXlhbmVcIDsKK+aciOS4lueVjCA8IGdlc3Nla2FpXCA7CivlvpfmhI/poZQgPCB0b2t1aWdhb1wgOwor5omL6ZaT6ZqZIDwgdGVtYWhpbWFcIDsKK+aUv+ayu+eKryA8IHNlaWppaGFuXCA7CivmmKXlhYggPCBoYXJ1c2FraVwgOwor5aeL5YCkIDwgaGFqaW1lbmVcIDsKK+a0l+mdouWZqCA8IHNlbm1lbmtpXCA7CivmlrDlvaIgPCBzaGluZ2F0YVwgOwor5Lq65paH5a2XIDwgaGl0b21vamlcIDsKK+aooemAoOWTgSA8IG1vem91aGluXCA7Civpmbjnm7ggPCByaWt1c2hvdVwgOwor5ZG85ZC45ZmoIDwga29reXV1a2lcIDsKK+e1uee2vyA8IGtpbnV3YXRhXCA7CivlnJ/lnLDpkZEgPCB0b2NoaWthblwgOwor54mG5aOBIDwgc2hvdWhla2lcIDsKK+Wjiua7hSA8IGthaW1ldHN1XCA7CivpmpvniakgPCBraXdhbW9ub1wgOwor5rCX6YCB566hIDwga2lzb3VrYW5cIDsKK+S9jumHkeWIqSA8IHRlaWtpbnJpXCA7CivlpK3mipggPCB5b3VzZXRzdVwgOwor6Iux5bCP5paH5a2XIDwgZWlrb21vamlcIDsKK+aVteaWuSA8IHRla2lnYXRhXCA7CivplbfplbcgPCBuYWdhbmFnYVwgOwor5bi95a2Q5bGLIDwgYm91c2hpeWFcIDsKK+W+oeaIkOWKnyA8IGdvc2Vpa291XCA7Civnj4rnkZrmtbcgPCBzYW5nb2thaVwgOwor57SE6Ku+IDwgeWFrdWRha3VcIDsKK+aVsOaXpSA8IHN1dWppdHN1XCA7Civmm7PlhYnlvL4gPCBlaWtvdWRhblwgOwor5Y2D6YeM55y8IDwgc2VucmlnYW5cIDsKK+mYsue4riA8IGJvdXNodWt1XCA7CivokL3kuIvlgpggPCByYWtrYXNhblwgOwor5pOB56uLIDwgeW91cml0c3VcIDsKK+a4oeiIquiAhSA8IHRva291c2hhXCA7CivmlbDmlbAgPCBrYXp1a2F6dVwgOwor5aSn5omAIDwgb29kb2tvcm9cIDsKK+WcsOm8oCA8IGppbmV6dW1pXCA7CivkuIvmiYvkurogPCBnZXNodW5pblwgOwor5Yem5aWz5p6XIDwgc2hvam9yaW5cIDsKK+e0lOihgCA8IGp1bmtldHN1XCA7Civkuovmpa3pg6ggPCBqaWd5b3VidVwgOwor5a+M5bGx5oi/IDwgZnV6YW5ib3VcIDsKK+eyiemjviA8IGZ1bnNob2t1XCA7CivnuKbmm7ggPCB0YXRlZ2FraVwgOwor5pOm55a1IDwgc3VyaWtpenVcIDsKK+WhmueptCA8IHRzdWthYW5hXCA7CivmjqXlvoXosrsgPCBzZXR0YWloaVwgOwor57mK57at5oCnIDwgc2VuJydpc2VpXCA7CivmiYvoqbHms5UgPCBzaHV3YWhvdVwgOwor5L2V5Yem5YW25YemIDwgZG9rb3Nva29cIDsKK+S/nemkiuWcsCA8IGhveW91Y2hpXCA7CivnhafnhLwgPCB0ZXJpeWFraVwgOwor5Yip5bex5b+DIDwgcmlrb3NoaW5cIDsKK+eCueeBq+agkyA8IHRlbmthc2VuXCA7CivntbbnrYYgPCB6ZXBwaXRzdVwgOwor6Zuj5puyIDwgbmFua3lva3VcIDsKK+ioiOeVpSA8IGtlaXJ5YWt1XCA7CivpjpTpibHngokgPCB5b3Vrb3Vyb1wgOwor5Y+v5o+b576kIDwga2FrYW5ndW5cIDsKK+S8muitsOWgtCA8IGthaWdpam91XCA7CivkurrpnZ7kurogPCBuaW5waW5pblwgOwor6KaL6JC9IDwgbWlvdG9zaGlcIDsKK+eCuOiWrCA8IHNha3V5YWt1XCA7CivoirHnsonnrqEgPCBrYWZ1bmthblwgOwor5Z+L6KitIDwgbWFpc2V0c3VcIDsKK+mBjua/gOa0viA8IGthZ2VraWhhXCA7CivmjqXpqqggPCBzZWtrb3RzdVwgOwor6Zm954mpIDwgeW91YnV0c3VcIDsKK+irluWuoiA8IHJvbmt5YWt1XCA7Civop5LnrJsgPCB0c3Vub2J1ZVwgOwor54ax5pybIDwgbmV0c3Vib3VcIDsKK+a6tuino+W6piA8IHlvdWthaWRvXCA7CivplrLoqq0gPCBldHN1ZG9rdVwgOwor5Y+l6Kqt54K5IDwga3V0b3V0ZW5cIDsKK+aNnOafu+mZoyA8IHNvdXNhamluXCA7CivoqrDlvbwgPCB0YXJla2FyZVwgOwor57Gz6aOfIDwgYmVpc2hva3VcIDsKK+e0ouiOqyA8IHNha3ViYWt1XCA7CivllrbliKnnmoQgPCBlaXJpdGVraVwgOwor6KKr54G96ICFIDwgaGlzYWlzaGFcIDsKK+S4jeW+k+mghiA8IGZ1anV1anVuXCA7Civlj43lsITngokgPCBoYW5zaGFyb1wgOwor6ZuR5puyIDwgemFra3lva3VcIDsKK+S9neWDgueXhSA8IGt1cnVieW91XCA7CivlpKrlt7sgPCBmdXRvbWFraVwgOwor5paw5aa7IDwgbmlpZHp1bWFcIDsKK+mDveS8muS6uiA8IHRva2FpamluXCA7CivntZDntK4gPCBrZXNzYXRzdVwgOwor5ZGq56aB6YGTIDwganVrb25kb3VcIDsKK+WPpOeJiOacrCA8IGtvaGFuYm9uXCA7CivmuKzlgJnmiYAgPCBzb2trb3Vqb1wgOwor5pen5YqHIDwga3l1dWdla2lcIDsKK+a0vumBo+maiiA8IGhha2VudGFpXCA7CivmkZjoiq8gPCB0ZWtpc2hpblwgOwor5q2T6L+O5a60IDwga2FuZ2VpZW5cIDsKK+eJqeS6iyA8IG1vbm9nb3RvXCA7CivmiJDlip/oo6EgPCBzZWlrb3VyaVwgOwor6Kiz5rOoIDwgeWFrdWNodXVcIDsKK+aUueacrSA8IGthaXNhdHN1XCA7Civlrrbluq3mrIQgPCBrYXRlaXJhblwgOwor54Wu5rK4IDwgc2hhZnV0c3VcIDsKK+Wkp+W1kCA8IG9vYXJhc2hpXCA7CivlpJrlpInmlbAgPCB0YWhlbnN1dVwgOwor55S35oCn576OIDwgZGFuc2VpYmlcIDsKK+mbkeaWhyA8IHphdHN1YnVuXCA7Civpq5jmqZ/og70gPCBrb3VraW5vdVwgOwor57SZ6IqxIDwga2FtaWJhbmFcIDsKK+S6uumWk+iLpiA8IG5pbmdlbmt1XCA7CivnhLzniakgPCB5YWtpbW9ub1wgOwor57WQ56+AIDwga2Vzc2V0c3VcIDsKK+mVt+i7uCA8IGNob3VqaWt1XCA7CivlpJbluq0gPCBzb3Rvbml3YVwgOwor5LiJ5ZGz57eaIDwgc2hhbWlzZW5cIDsKK+e1hOe0kCA8IGt1bWloaW1vXCA7CivnspLpioAgPCB0c3VidWdpblwgOwor6ZaL6LGBIDwga2Fpa2F0c3VcIDsKK+e4geaXpSA8IGVuJyduaWNoaVwgOwor5ZCM56iL5bqmIDwgZG91dGVpZG9cIDsKK+WknOW1kCA8IHlvYXJhc2hpXCA7CivmlbDlvI8gPCBzdXVzaGlraVwgOwor5aW95aGp6I+MIDwga291ZW5raW5cIDsKK+mAgeawl+euoSA8IHNvdWtpa2FuXCA7CivniqDnibLogIUgPCBnaXNlaXNoYVwgOwor6Iqx57SL5p2/IDwga2Ftb25iYW5cIDsKK+mbu+WtkOWMliA8IGRlbnNoaWthXCA7CivniZvkubMgPCBneXV1bnl1dVwgOwor5bC95pyq5p2lIDwgamlubWlyYWlcIDsKK+WPpeiqreazlSA8IGt1dG91aG91XCA7Civlpb3lpKnmsJcgPCBrb3V0ZW5raVwgOwor6ZW36LazIDwgY2hvdXNva3VcIDsKK+WhqeeJqSA8IHNoaW9tb25vXCA7CivniYflgbQgPCBrYXRhZ2F3YVwgOwor5rWE5YyW5qe9IDwgam91a2Fzb3VcIDsKK+mbgOaWkSA8IHNvYmFrYXN1XCA7CivmnInlo7Dpn7MgPCB5dXVzZWlvblwgOwor6Zuy5b2iIDwga3Vtb2dhdGFcIDsKK+e1jOeptCA8IGtlaWtldHN1XCA7Civlj43kvZznlKggPCBoYW5zYXlvdVwgOwor5pKe552AIDwgZG91Y2hha3VcIDsKK+WFqOiHquWLlSA8IHplbmppZG91XCA7Civlj43lr77mtL4gPCBoYW50YWloYVwgOwor5pen5L2cIDwga3l1dXNha3VcIDsKK+e0heiKsSA8IGJlbmliYW5hXCA7Civlh6blpbPmgKcgPCBzaG9qb3NlaVwgOwor5omL6ZaT6LODIDwgdGVtYWNoaW5cIDsKK+mZsOa5vyA8IGluc2hpdHN1XCA7Civnt6jmm7IgPCBoZW5reW9rdVwgOwor57WE56uLIDwga3VtaXRhdGVcIDsKK+e0sOe0sCA8IGhvc29ib3NvXCA7CivoqabmjpggPCBzaGlrdXRzdVwgOwor5aGp54S8IDwgc2hpb3lha2lcIDsKK+WkluWxgCA8IGdhaWt5b2t1XCA7CivlopfmrpYgPCB6b3VzaG9rdVwgOwor5pen5Lq6IDwgZnVydWJpdG9cIDsKK+S4gOWbnuWIhiA8IGlra2FpYnVuXCA7Civnvbnngb3ogIUgPCByaXNhaXNoYVwgOwor6Kiz5qWtIDwgeWFrdWd5b3VcIDsKK+aOkumbqiA8IGhhaXNldHN1XCA7Civnspvou40gPCBzaHVrdWd1blwgOwor54ax5oSfIDwgbmV0c3VrYW5cIDsKK+WkseWinCA8IHNoaXR0c3VpXCA7Civlm73ps6UgPCBrb2t1Y2hvdVwgOwor6LKv54Kt5omAIDwgY2hvdGFuam9cIDsKK+iruOWFsSA8IG1vcm90b21vXCA7CivmnInkurrljJYgPCB5dXVqaW5rYVwgOwor5aSW5a6iIDwgZ2Fpa3lha3VcIDsKK+WNsOixoea0viA8IGluc2hvdWhhXCA7CivnhrHmg4UgPCBuZXRzdWpvdVwgOwor5aSW5a2rIDwgc290b21hZ29cIDsKK+ezluicnCA8IHRvdW1pdHN1XCA7Civpm6PlvbkgPCBuYW4nJ3lha3VcIDsKK+Whl+eJqSA8IG51cmltb25vXCA7CivniYjkuIsgPCBoYW5zaGl0YVwgOwor5qeN6aiO5YW1IDwgc291a2loZWlcIDsKK+mZpOa5vyA8IGpvc2hpdHN1XCA7CivpgIPpgb/ooYwgPCB0b3VoaWtvdVwgOwor5YaF54Gr6ImHIDwgbmFpa2F0ZWlcIDsKK+e1seeOhyA8IHRvdXNvdHN1XCA7Civml4XlhYggPCB0YWJpc2FraVwgOwor57Sw562GIDwgc2FpaGl0c3VcIDsKK+mbquW2uiA8IHNldHN1cmVpXCA7CivntbnniakgPCBraW51bW9ub1wgOwor5Yip5qip5bGLIDwgcmlrZW4nJ3lhXCA7CivoqLPmn4QgPCB3YWtlZ2FyYVwgOwor6KWf6IWwIDwgZXJpa29zaGlcIDsKK+e1kOedgCA8IGtldGNoYWt1XCA7Civnt5HmnpcgPCByeW9rdXJpblwgOwor6Zay5YW15Y+wIDwgZXBwZWlkYWlcIDsKK+e1kOebnyA8IGtldHN1bWVpXCA7Civmt7fnqK7oqp4gPCBrb25zaHVnb1wgOwor54ax5byBIDwgbmV0c3ViZW5cIDsKK+mAj+mBjuaApyA8IHRvdWthc2VpXCA7CivkvJropovoqJggPCBrYWlrZW5raVwgOwor6ZuR5b+1IDwgemF0c3VuZW5cIDsKK+iojuatuyA8IHVjaGlqaW5pXCA7Civnm7jkvLzngrkgPCBzb3VqaXRlblwgOwor6J665a2Q6YeYIDwgbmVqaWt1Z2lcIDsKK+WHpuWls+WzsCA8IHNob2pvaG91XCA7CivnnIvorbfluKsgPCBrYW5nb3NoaVwgOwor5pSv5omVIDwgc2hpaGFyYWlcIDsKK+imquedpiA8IHNoaW5ib2t1XCA7CivloIDnq68gPCBob3JpYmF0YVwgOwor6Zml5rKhIDwga2FuYm90c3VcIDsKK+inkueJmyA8IGtha3VneXV1XCA7Civpm5HlvbkgPCB6YXRzdWVraVwgOwor6Zuq5bGxIDwgeXVraXlhbWFcIDsKK+aciemggueCuSA8IHVjaG91dGVuXCA7Civoq7jkurogPCBtb3JvYml0b1wgOwor5LiA562J5pifIDwgaXR0b3VzZWlcIDsKK+S4i+awtOmBkyA8IGdlc3VpZG91XCA7CivpnZ7kurrmg4UgPCBoaW5pbmpvdVwgOwor6Zmj5rKhIDwgamluYm90c3VcIDsKK+eItuS4iiA8IGNoaWNoaXVlXCA7Civpm6rlrrMgPCBzZXRzdWdhaVwgOwor6ZW36KKWIDwgbmFnYXNvZGVcIDsKK+mYsueGsSA8IGJvdW5ldHN1XCA7CivkuLvnvqnogIUgPCBzaHVnaXNoYVwgOwor57iE5by1IDwgbmF3YWJhcmlcIDsKK+a0vumBo+i7jSA8IGhha2VuZ3VuXCA7Civlho3mj5DmoYggPCBzYWl0ZWlhblwgOwor576O5oSP6K2YIDwgYmlpc2hpa2lcIDsKK+ijj+mBkyA8IHVyYW1pY2hpXCA7CivpmqPmjqUgPCByaW5zZXRzdVwgOwor57aZ5q+NIDwgbWFtYWhhaGFcIDsKK+Wkp+WWnSA8IGRhaWthdHN1XCA7Civnt4/mnKzlrrYgPCBzb3Vob25rZVwgOwor5bqm5aSW6KaWIDwgZG9nYWlzaGlcIDsKK+WHuuadpeWFt+WQiCA8IGRla2lndWFpXCA7CivpnLLlh7ogPCByb3NodXRzdVwgOwor6Kiq5pelIDwgaG91bmljaGlcIDsKK+mBoOW+gemaiiA8IGVuc2VpdGFpXCA7CivloanmsLQgPCBzaGlvbWl6dVwgOwor55CG5oOz5Z6LIDwgcmlzb3VrZWlcIDsKK+aVt+WcsCA8IHNoaWtpY2hpXCA7Civku67liIbmlbAgPCBrYWJ1bnN1dVwgOwor6ZqG5piMIDwgcnl1dXNob3VcIDsKK+aWsOS/riA8IHNoaW5zaHV1XCA7CivliqnmlbDoqZ4gPCBqb3N1dXNoaVwgOwor57K+566X5omAIDwgc2Vpc2Fuam9cIDsKK+Wkp+WQiSA8IGRhaWtpY2hpXCA7CivlpJrpnaLkvZMgPCB0YW1lbnRhaVwgOwor5paw5L2cIDwgc2hpbnNha3VcIDsKK+mWouiEhyA8IHNla2l3YWtlXCA7Civnh63lj7AgPCBzaG9rdWRhaVwgOwor54Kt56qvIDwgc3VtaWdhbWFcIDsKK+mbu+WcpyA8IGRlbicnYXRzdVwgOwor6Zuo5aWzIDwgYW1lb24nJ25hXCA7Civmv4DpnIcgPCBnZWtpc2hpblwgOwor5aSJ5ZynIDwgaGVuJydhdHN1XCA7CivlvaLpqrjljJYgPCBrZWlnYWlrYVwgOwor5qyn57Gz5Lq6IDwgb3ViZWlqaW5cIDsKK+Wkp+WNkiA8IGRhaXNvdHN1XCA7CivntYzluKvlsYsgPCBreW91aml5YVwgOwor6Kqk5aSJ5o+bIDwgZ29oZW5rYW5cIDsKK+mChOS7mOmHkSA8IGthbnB1a2luXCA7Civlo4HlvbkgPCBrYWJleWFrdVwgOwor5o6b6Lu4IDwga2FrZWppa3VcIDsKK+e4hOWwuyA8IG5hd2FqaXJpXCA7Civoo7LopaAgPCB1Y2hpa2FrZVwgOwor5Z+6552jIDwga2lyaXN1dG9cIDsKK+aZqeW+oemjryA8IGJhbmdvaGFuXCA7CivohZXoh6rmhaIgPCB1ZGVqaW1hblwgOwor5rWE5rC05ZmoIDwgam91c3Vpa2lcIDsKK+WKqeaVmeirrSA8IGpva3lvdXl1XCA7CivlpKfliKUgPCB0YWliZXRzdVwgOwor5paJ5YiXIDwgc2VpcmV0c3VcIDsKK+mbquWbvSA8IHl1a2lndW5pXCA7Civlh6blpbPlnLAgPCBzaG9qb2NoaVwgOwor5aSn5YaKIDwgdGFpc2F0c3VcIDsKK+e3u+WvhiA8IGNoaW1pdHN1XCA7CivlpInlk7IgPCBoZW50ZXRzdVwgOwor57O456u5IDwgc2hpY2hpa3VcIDsKK+mWi+iEmiA8IGthaWt5YWt1XCA7CivmlK/lsYAgPCBzaGlreW9rdVwgOwor5aSx5L+dIDwgc2hpdHN1aG9cIDsKK+WIqeeUqOiAhSA8IHJpeW91c2hhXCA7CivntYLnhoQgPCBzaHV1c29rdVwgOwor54Sh57K+5Y21IDwgbXVzZWlyYW5cIDsKK+mxqSA8IGhhdGFoYXRhXCA7CivnhKHplqLkv4IgPCBtdWthbmtlaVwgOwor5aSW5YqbIDwgZ2Fpcnlva3VcIDsKK+iqv+S8jyA8IGNob3VidWt1XCA7Civpm5vlnosgPCBoaW5hZ2F0YVwgOwor5q2j5a2X5rOVIDwgc2Vpamlob3VcIDsKK+imgeeVpSA8IHlvdXJ5YWt1XCA7Civou43ljLvnm6MgPCBndW4nJ2lrYW5cIDsKK+mvkSA8IGthenVub2tvXCA7CivorabkuJblrrYgPCBrZWlzZWlrYVwgOwor5p2l5a2m5pyfIDwgcmFpZ2Fra2lcIDsKK+aYoOeUu+iplSA8IGVpZ2FoeW91XCA7CivmibnliKTogIUgPCBoaWhhbnNoYVwgOwor6ZaA6ISIIDwgbW9ubXlha3VcIDsKK+W5s+WPmeaWhyA8IGhlaWpvYnVuXCA7CivopJDoibIgPCBrYXNzaG9rdVwgOwor5LiJ6YeN6IumIDwgc2FuanV1a3VcIDsKK+mtgSA8IHNha2lnYWtlXCA7CivmqKHlgKPogIUgPCBtb2hvdXNoYVwgOwor6ayjIDwgdGF0ZWdhbWlcIDsKK+mbu+WKmyA8IGRlbnJ5b2t1XCA7CivkuojpgbjkvJogPCB5b3NlbmthaVwgOwor5ryU5aWP5LyaIDwgZW5zb3VrYWlcIDsKK+aVsOWIlyA8IHN1dXJldHN1XCA7CivmlL7ln5IgPCBob3VyYXRzdVwgOwor5aSW5YG0IDwgc290b2dhd2FcIDsKK+ihqOmWgCA8IG9tb3RlbW9uXCA7CivmlbDlhoogPCBzdXVzYXRzdVwgOwor6Zuy5YqpIDwga3Vtb3N1a2VcIDsKK+mbkeWaoiA8IHphdHN1bm91XCA7CivkuI3mtLvmgKcgPCBmdWthc3NlaVwgOwor5r+B6YWSIDwgZG9idXJva3VcIDsKK+Wcn+izqiA8IGRvc2hpdHN1XCA7Civplovlj6Ppg6ggPCBrYWlrb3VidVwgOwor5pW15YG0IDwgdGVraWdhd2FcIDsKK+WPjOiDtOapnyA8IHNvdWRvdWtpXCA7CivoqKXlvIEgPCB0b3RzdWJlblwgOwor6KOP6KGoIDwgdXJhb21vdGVcIDsKK+iqreS6hiA8IGRva3VyeW91XCA7CivngbDnr6kgPCBoYWlmdXJ1aVwgOwor57Kl6IW5IDwga2F5dWJhcmFcIDsKK+mgiOW8peWxsSA8IHNodW1pc2VuXCA7CivngInooYAgPCBzaGFrZXRzdVwgOwor5YG96YCg572qIDwgZ2l6b3V6YWlcIDsKK+WgheeCrSA8IGthdGF6dW1pXCA7Civntr/lvJMgPCB3YXRheXVtaVwgOwor6aSeIDwgaGFuYW11a2VcIDsKK+WeguiAsyA8IHRhcmVtaW1pXCA7CivoqbDllY8gPCBraXRzdW1vblwgOwor56eA55S75a62IDwgc2h1dWdha2FcIDsKK+S6pOS7o+WToSA8IGtvdXRhaWluXCA7Civlo7LljbQgPCBiYWlreWFrdVwgOwor5o6h6KGAIDwgc2Fpa2V0c3VcIDsKK+e4puWIlyA8IGp1dXJldHN1XCA7CivotaTpm7voqbEgPCBha2FkZW53YVwgOwor5pyJ5pyf5YiRIDwgeXV1a2lrZWlcIDsKK+WPo+ipseazlSA8IGtvdXdhaG91XCA7CivmiLjkuLvmqKkgPCBrb3NodWtlblwgOwor57W25pybIDwgemV0c3Vib3VcIDsKK+WFrOWuieWumCA8IGtvdWFua2FuXCA7CivmkoPmsoggPCBnZWtpY2hpblwgOwor6KeS5p+xIDwga2FrdWNodXVcIDsKK+Wbvei+sSA8IGtva3Vqb2t1XCA7Civmra/niZnnirYgPCBzaGlnYWpvdVwgOwor5Lyd5aOw5ZmoIDwgZGVuc2Vpa2lcIDsKK+mgkSA8IGthdGFrdW5hXCA7Civkv53pmbrph5EgPCBob2tlbmtpblwgOwor5aOr5Y2SIDwgc2hpc290c3VcIDsKK+aMh+aVsOmDqCA8IHNoaXN1dWJ1XCA7Civosaroj6/oiLkgPCBnb3VrYXNlblwgOwor5Li45pqX6KiYIDwgbWFydWFua2lcIDsKK+WcsOiiiyA8IGppYnVrdXJvXCA7Civlo7Llh7ogPCB1cmlkYXNoaVwgOwor57eK5a+GIDwga2lubWl0c3VcIDsKK+Wfuua6lueCuSA8IGtpanVudGVuXCA7Civmj7rnr60gPCB5dXJpa2Fnb1wgOwor6Zuq5YOPIDwgc2V0c3V6b3VcIDsKK+e0heeOiSA8IGtvdWd5b2t1XCA7CivnsbPolLUgPCBrb21lZ3VyYVwgOwor5b6M5o+05LyaIDwga291ZW5rYWlcIDsKK+a9rumiqCA8IHNoaW9rYXplXCA7CivlnovntJkgPCBrYXRhZ2FtaVwgOwor55yM6K2w5LyaIDwga2VuZ2lrYWlcIDsKK+ioquWuoiA8IGhvdWt5YWt1XCA7CivooYzlnKjmiYAgPCBhbnphaXNob1wgOwor6Zq8IDwgaGF5YWJ1c2FcIDsKK+ioseWrgSA8IGlpbmF6dWtlXCA7CivmjY/pgKAgPCBuZXRzdXpvdVwgOwor5Y+j6Kqe5paHIDwga291Z29idW5cIDsKK+WvneeFmeiNiSA8IG5ldGFiYWtvXCA7Civmlq3noLTlo4ogPCBkYW5oYWthaVwgOwor6Zm1IDwgbWlzYXNhZ2lcIDsKK+ejgemJhOmJsSA8IGppdGVra291XCA7Civlhobngrrmm78gPCBlbmdhd2FzZVwgOwor55yL6K235YW1IDwga2FuZ29oZWlcIDsKK+WWtualremDqCA8IGVpZ3lvdWJ1XCA7Civplo/np5IgPCB1cnV1YnlvdVwgOwor5LiN5raI5YyWIDwgZnVzaG91a2FcIDsKK+a9pOmjviA8IGp1bnNob2t1XCA7Civmi7PpqqggPCBnZW5rb3RzdVwgOwor57a/5a+GIDwgbWVubWl0c3VcIDsKK+S4jeW+s+e+qSA8IGZ1dG9rdWdpXCA7CivlnLDlkLnpm6ogPCBqaWZ1YnVraVwgOwor5r+A6LaKIDwgZ2VraWV0c3VcIDsKK+mgiOW8peWjhyA8IHNodW1pZGFuXCA7Civntr/lrp8gPCBtZW5qaXRzdVwgOwor5L2Q5bmV5rS+IDwgc2FiYWt1aGFcIDsKK+mWiiA8IHRzdWthZXJ1XCA7CivpoJPnl7TmsJcgPCB0b25jaGlraVwgOwor5Zu96LOKIDwga29rdXpva3VcIDsKK+WkmuaVsOWFmiA8IHRhc3V1dG91XCA7Civngrnmu4UgPCB0ZW5tZXRzdVwgOwor5r+A6LOeIDwgZ2VraXNob3VcIDsKK+aOoeayueaoqSA8IHNhaXl1a2VuXCA7CivmnaXkuJbntIAgPCByYWlzZWlraVwgOwor6ZqU5aOBIDwga2FrdWhla2lcIDsKK+WxseawtOeUuyA8IHNhbnN1aWdhXCA7CivmjoPpmaTkurogPCBzb3VqaW5pblwgOwor5oSP5ZGz6YOo6ZaAIDwgaW1pYnVtb25cIDsKK+S4gOetieWcsCA8IGl0dG91Y2hpXCA7CivnqI7li5nlrpggPCB6ZWltdWthblwgOwor55yL6K235Lq6IDwga2FuZ29uaW5cIDsKK+WNiuWIh+espiA8IGhhbmtpcHB1XCA7CivlnKfngJjlmaggPCBhdHN1cm9raVwgOwor57eR5ZywIDwgcnlva3VjaGlcIDsKK+Wfuua6luazlSA8IGtpanVuaG91XCA7Civnr4Dpm7sgPCBzZXRzdWRlblwgOwor5Y+X6Kyb6ICFIDwganVrb3VzaGFcIDsKK+a4rOi3neWEgCA8IHNva2t5b2dpXCA7CivnspjnspggPCBuZWJhbmViYVwgOwor5Ya35YeN5qmfIDwgcmVpdG91a2lcIDsKK+mLuCA8IG5va29naXJpXCA7CivnrYnot53pm6IgPCB0b3VreW9yaVwgOwor54KO54axIDwgZW4nJ25ldHN1XCA7Civlm73oqLEgPCBrdW5pbW90b1wgOwor5LiN5ZCN5pWwIDwgZnVtZWlzdXVcIDsKK+mWi+eZuiA8IGthaWhhdHN1XCA7CivoqabpgYvou6IgPCBzaGl1bnRlblwgOwor576p5YuH5YW1IDwgZ2l5dXVoZWlcIDsKK+imqueUu+mdoiA8IG95YWdhbWVuXCA7Civmi5LlkKbmqKkgPCBreW9oaWtlblwgOwor5LqM55Wq57eaIDwgbmliYW5zZW5cIDsKK+WWtualreiyuyA8IGVpZ3lvdWhpXCA7Civnm7jkvLzlvaIgPCBzb3VqaWtlaVwgOwor572554G95rCRIDwgcmlzYWltaW5cIDsKK+WvhOeUn+acqCA8IHlhZG9yaWdpXCA7Civopqrml48gPCBzaGluem9rdVwgOwor54Gr6Jas5bqrIDwga2F5YWt1a29cIDsKK+i1pOmgreW3viA8IGFrYXp1a2luXCA7CivonKXonLTluqcgPCB0b2thZ2V6YVwgOwor6K2m5aCx6Z+zIDwga2VpaG91b25cIDsKK+eyieeyiSA8IGtvbmFnb25hXCA7CivlpKfonKXonLQgPCBvb3Rva2FnZVwgOwor6ZuH5Lq6IDwgeWF0b2luaW5cIDsKK+abtOeUn+acnyA8IGtvdXNlaWtpXCA7CivoqK3llY8gPCBzZXRzdW1vblwgOwor5Zyf5bem6KGb6ZaAIDwgZG96YWVtb25cIDsKK+immuabuCA8IG9ib2VnYWtpXCA7CivnlpHllY/mlocgPCBnaW1vbmJ1blwgOwor6I2354K65pu/IDwgbmlnYXdhc2VcIDsKK+e3qOWFpSA8IGhlbicnbnl1dVwgOwor5ouS6aOfIDwga3lvc2hva3VcIDsKK+iFjuiHk+eCjiA8IGppbnpvdWVuXCA7CivntK/mnIggPCBydWlnZXRzdVwgOwor5Z6C55u0IDwgc3VpY2hva3VcIDsKK+WvhOi0iOiAhSA8IGtpem91c2hhXCA7Civlrrbluq3lhoUgPCBrYXRlaW5haVwgOwor57SF5q67IDwgYmVuaWdhcmFcIDsKK+iQveiqnuWutiA8IHJha3Vnb2thXCA7CivnhKHnr4Dmk40gPCBtdXNlc3NvdVwgOwor6KeS5bqXIDwga2Fkb21pc2VcIDsKK+e3tOS5syA8IHJlbicnbnl1dVwgOwor5a6555aR6ICFIDwgeW91Z2lzaGFcIDsKK+exs+ezoCA8IGtvbWVudWthXCA7CivlsZXplovlm7MgPCB0ZW5rYWl6dVwgOwor56eB55Sf5YWQIDwgc2hpc2VpamlcIDsKK+i6viA8IHNoaXRzdWtlXCA7Civnt4/lipsgPCBzb3VyeW9rdVwgOwor5aSn5omL562LIDwgb290ZXN1amlcIDsKK+e0r+aXpSA8IHJ1aWppdHN1XCA7CivlhazlrprkvqEgPCBrb3V0ZWlrYVwgOwor5rCX5YiG5bGLIDwga2lidW4nJ3lhXCA7CivlnKjogbcgPCB6YWlzaG9rdVwgOwor5Z+L5rKhIDwgbWFpYm90c3VcIDsKK+S4gOetieWFtSA8IGl0dG91aGVpXCA7CivkuIvmsLTnrqEgPCBnZXN1aWthblwgOwor5pW05pWw5q+UIDwgc2Vpc3V1aGlcIDsKK+eymOedgCA8IG5lbmNoYWt1XCA7Civns57mupwgPCBrdXNvZGFtZVwgOwor56+J6YCgIDwgY2hpa3V6b3VcIDsKK+ekvuWLmeaJgCA8IHNoYW11c2hvXCA7Civop6blqpIgPCBzaG9rdWJhaVwgOwor6auY5bGk6ZuyIDwga291c291dW5cIDsKK+W4uOWll+iqniA8IGpvdXRvdWdvXCA7CivoiLnlpJbmqZ8gPCBzZW5nYWlraVwgOwor6ZqK5YiXIDwgdGFpcmV0c3VcIDsKK+WPjOaal+i7iiA8IHNvdWFuc2hhXCA7CivntKLmlbUgPCBzYWt1dGVraVwgOwor5peF5a6i5qmfIDwgcnlva2Fra2lcIDsKK+Wil+WItyA8IHpvdXNhdHN1XCA7Civnt5Hkvr8gPCByeW9rdWJlblwgOwor5r2u6LazIDwgc2hpb2FzaGlcIDsKK+mWsuattCA8IGV0c3VyZWtpXCA7CivpgYvllrbogIUgPCB1bicnZWlzaGFcIDsKK+aBo+aEj+eahCA8IHNoaWl0ZWtpXCA7CivntI3mnK0gPCBub3VzYXRzdVwgOwor56C05aSp6I2SIDwgaGF0ZW5rb3VcIDsKK+eGseW4r+WknCA8IG5ldHRhaXlhXCA7CivpgZTmiJDluqYgPCB0YXNzZWlkb1wgOwor5aSa6KeS5b2iIDwgdGFrYWtrZWlcIDsKK+aMr+iiliA8IGZ1cmlzb2RlXCA7Civns5/msYEgPCBrYXN1amlydVwgOwor5YWl5Lya5qipIDwgaXJpYWlrZW5cIDsKK+WNg+iRieecjCA8IGNoaWJha2VuXCA7CivkupTmnIjpm6ggPCBzYW1pZGFyZVwgOwor5rqW5Lya5ZOhIDwganVua2FpaW5cIDsKK+iruiA8IGtvdG93YXphXCA7CivntITmnZ8gPCB5YWt1c29rdVwgOwor5rC05puc5pelIDwgc3VpeW91YmlcIDsKK+a4h+awtOacnyA8IGthc3N1aWtpXCA7CivmipHprLEgPCB5b2t1dXRzdVwgOwor56u26aas5aC0IDwga2VpYmFqb3VcIDsKK+aMh+iyqyA8IHl1YmludWtpXCA7Civps6nlsI/lsYsgPCBoYXRvZ295YVwgOwor5r+A6IetIDwgZ2VraXNodXVcIDsKK+S4jeato+imliA8IGZ1c2Vpc2hpXCA7CivopovmiYAgPCBtaWRva29yb1wgOwor5Zub5Y2K5pyfIDwgc2hpaGFua2lcIDsKK+eyl+eOhyA8IGFyYXJpdHN1XCA7CivkvZznlKjngrkgPCBzYXlvdXRlblwgOwor6YGK5ZyS5ZywIDwgeXV1ZW5jaGlcIDsKK+i7jOmBk+iIuSA8IGtpZG91c2VuXCA7CivlvIHnkIblo6sgPCBiZW5yaXNoaVwgOwor57WC5bmVIDwgc2h1dW1ha3VcIDsKK+ilsuaSgyA8IHNodXVnZWtpXCA7CivpurvphZTpioMgPCBtYXN1aWp1dVwgOwor6KSMIDwgZnVuZG9zaGlcIDsKK+acqOieuuWtkCA8IG1va3VuZWppXCA7CivntZDlsYAgPCBrZWtreW9rdVwgOwor5q2p5pWw6KiIIDwgaG9zdXVrZWlcIDsKK+S4u+mhjOatjCA8IHNodWRhaWthXCA7CivnrYvpqqggPCBzdWppYm9uZVwgOwor5q2j5Lya5ZOhIDwgc2Vpa2FpaW5cIDsKK+W+ruWIhuazlSA8IGJpYnVuaG91XCA7Civli5Xlk6Hku6QgPCBkb3VpbnJlaVwgOwor6Kaz5a6iIDwga2Fua3lha3VcIDsKK+aOpeedgCA8IHNldGNoYWt1XCA7CivpnZLnk6blj7AgPCBzZWlnYWRhaVwgOwor6Zmj5YiXIDwgamlucmV0c3VcIDsKK+a4oeiIueWgtCA8IHRvc2Vuam91XCA7CivlnJ/nrYYgPCB0c3VrdXNoaVwgOwor57Kb54S2IDwgc2h1a3V6ZW5cIDsKK+aEj+itmOS4iyA8IGlzaGlraWthXCA7CivntLDlvJUgPCBob3NvYmlraVwgOwor6Kaq5bGAIDwgb3lha3lva3VcIDsKK+S/neitt+WbvSA8IGhvZ29rb2t1XCA7CivlkIzmgKfmhJsgPCBkb3VzZWlhaVwgOwor5rK55Zyn5ZmoIDwgeXVhdHN1a2lcIDsKK+eHlemdkuaLsyA8IGVuc2Vpa2VuXCA7CivlubzlubTmnJ8gPCB5b3VuZW5raVwgOwor6LGq6I+v54mIIDwgZ291a2FiYW5cIDsKK+ihqOiKuCA8IG9tb3RlZ2VpXCA7CivljLvljp/nl4UgPCBpZ2VuYnlvdVwgOwor6Zu76Kmx57eaIDwgZGVud2FzZW5cIDsKK+WGt+WHjeW6qyA8IHJlaXRvdWtvXCA7CivpgoTku5jnqI4gPCBrYW5wdXplaVwgOwor5byB6K236ICFIDwgYmVuZ29zaGFcIDsKK+ijheedgCA8IHNvdWNoYWt1XCA7Civpm7voqbHntrIgPCBkZW53YW1vdVwgOwor55m75bGx6YGTIDwgdG96YW5kb3VcIDsKK+ibpCA8IGhhbWFndXJpXCA7Civmv4PnuK4gPCBub3VzaHVrdVwgOwor5oSP5ZGz5Y6f55CGIDwgaW1pZ2VucmlcIDsKK+aPkOeBryA8IGNob3VjaGluXCA7CivpmL/miL/ps6UgPCBhaG91ZG9yaVwgOwor5LqI5YKZ55qEIDwgeW9iaXRla2lcIDsKK+ijj+eUuiA8IHVyYW1hY2hpXCA7CivlnJ/npZ4gPCB1Y2hpZ2FtaVwgOwor5om25Yqp5paZIDwgZnVqb3J5b3VcIDsKK+WggOW3nSA8IGhvcmlrYXdhXCA7CivnjL/nn6XmgbUgPCBzYXJ1ZGppZVwgOwor5Zyw6JS16aGUIDwgaml6b3VnYW9cIDsKK+e1tuWRvSA8IHpldHN1bWVpXCA7CivpmYvliqMgPCByb3VyZXRzdVwgOwor5L2c5qWt5aC0IDwgc2FneW91YmFcIDsKK+ethumghiA8IGhpdHN1anVuXCA7Civnqbrnm7jloLQgPCBrdXVzb3ViYVwgOwor6KK0552AIDwgaGFrYW1hZ2lcIDsKK+WbveexjSA8IGtva3VzZWtpXCA7CivmjL3ogokgPCBoaWtpbmlrdVwgOwor5re35ZCI6KqeIDwga29uZ291Z29cIDsKK+WmpeWNlOahiCA8IGRha3lvdWFuXCA7CivntLDlr4YgPCBzYWltaXRzdVwgOwor6ZaT5p+EIDwgYWlkYWdhcmFcIDsKK+eEoeaKteaKlyA8IG11dGVpa291XCA7CivmkoPlopwgPCBnZWtpdHN1aVwgOwor6JGJ56+A54K5IDwgaGFzZXR0ZW5cIDsKK+S7luWLleipniA8IHRhZG91c2hpXCA7CivmmKDnlLvni4IgPCBlaWdha3lvdVwgOwor5Zu9562WIDwga29rdXNha3VcIDsKK+azleiPr+e1jCA8IGhva2VreW91XCA7CivnrYbpmaMgPCBoaXRzdWppblwgOwor6YWi5paZ55CGIDwgc3VyeW91cmlcIDsKK+aUv+W6nOexsyA8IHNlaWZ1bWFpXCA7CivntZDlm6MgPCBrZXRzdWRhblwgOwor6J6i6ZuqIDwga2Vpc2V0c3VcIDsKK+Wlvee1kOaenCA8IGtvdWtla2thXCA7CivmtLvmgKfljJYgPCBrYXNzZWlrYVwgOwor5Yqp6KiA6ICFIDwgam9nb25zaGFcIDsKK+ijj+WNg+WutiA8IHVyYXNlbmtlXCA7CivoiI7liKnloZQgPCBzaGFyaXRvdVwgOwor6J226a6rIDwgY2hvdXphbWVcIDsKK+aQpuaJiyA8IGthcmFtZXRlXCA7CivkuI3npZ3lhIAgPCBidXNodXVnaVwgOwor5Zuj57WQIDwgZGFua2V0c3VcIDsKK+mBjua4oeeahCA8IGthdG90ZWtpXCA7CivpmbboirjlrrYgPCB0b3VnZWlrYVwgOwor57SZ5bGRIDwga2FtaWt1enVcIDsKK+S9nOalreWToSA8IHNhZ3lvdWluXCA7CivooYDoibIgPCBrZXNzaG9rdVwgOwor5aSa5pGp5bedIDwgdGFtYWdhd2FcIDsKK+W+ruiLpueskSA8IGJpa3VzaG91XCA7CivmrLrnnp7ogIUgPCBnaW1hbnNoYVwgOwor6ZaA5pytIDwgbW9uc2F0c3VcIDsKK+eri+azleW6nCA8IHJpcHBvdWZ1XCA7Civooqvngb3lnLAgPCBoaXNhaWNoaVwgOwor54yb5omT6ICFIDwgbW91ZGFzaGFcIDsKK+e1tuWAqyA8IHpldHN1cmluXCA7CivlnovmnqAgPCBrYXRhd2FrdVwgOwor5LiN56Wl5LqLIDwgZnVzaG91amlcIDsKK+e1kOaenOirliA8IGtla2thcm9uXCA7Civpl4fluIIgPCB5YW1paWNoaVwgOwor6J6N6ZuqIDwgeXV1c2V0c3VcIDsKK+ewkueriyA8IHNhbnJpdHN1XCA7CivkuIvmsLTmup0gPCBnZXN1aWtvdVwgOwor5rC06aKo5ZGCIDwgbWl6dWJ1cm9cIDsKK+aWueS9jeinkiA8IGhvdWlrYWt1XCA7CivpmLLlobXnnYAgPCBib3VqaW5naVwgOwor5pei6KaW5oOzIDwga2lzaGlrYW5cIDsKK+WcsOeGsSA8IGNoaW5ldHN1XCA7Civogb4gPCBtaW1pc2hpaVwgOwor5Y+j6Kqe5L2TIDwga291Z290YWlcIDsKK+W5uemDqOS8miA8IGthbmJ1a2FpXCA7CivkuqTpmpvosrsgPCBrb3VzYWloaVwgOwor562L6YeRIDwgc3VqaWdhbmVcIDsKK+atpuWjq+mBkyA8IGJ1c2hpZG91XCA7CivprZTmlrnpmaMgPCBtYWhvdWppblwgOwor566X6KGTIDwgc2FuanV0c3VcIDsKK+iRoeiQhOmFkiA8IGJ1ZG91c2h1XCA7Civplbfml4UgPCBuYWdhdGFiaVwgOwor5Y+M5a2Q5bqnIDwgZnV0YWdvemFcIDsKK+iEseawtOapnyA8IGRhc3N1aWtpXCA7Civngavlj6Pljp8gPCBrYWtvdWdlblwgOwor5L2O5qyh5YWDIDwgdGVpamlnZW5cIDsKK+mYsuS6uiA8IHNha2ltb3JpXCA7CivljrPlhqzmnJ8gPCBnZW50b3VraVwgOwor5LiN6YCA6LuiIDwgZnV0YWl0ZW5cIDsKK+ifu+icgiA8IGFyaWJhY2hpXCA7CivmiYvlnJ/nlKMgPCB0ZW1peWFnZVwgOwor5Y2x6Zm66KaWIDwga2lrZW5zaGlcIDsKK+ihneeriyA8IHRzdWl0YXRlXCA7CivoiJ7ouIrlm6MgPCBidXRvdWRhblwgOwor5LiN5rG65a6aIDwgZnVrZXR0ZWlcIDsKK+WbnuW4sOe3miA8IGthaWtpc2VuXCA7CivntrQgPCB0c3VkenVyaVwgOwor5Yy65rCR56iOIDwga3VtaW56ZWlcIDsKK+S9leeVquebriA8IG5hbmJhbm1lXCA7CivnsKHnlaUgPCBrYW5yeWFrdVwgOwor6ISx5rCX5rC0IDwgZGFra2lzdWlcIDsKK+WIkeWLmeaJgCA8IGtlaW11c2hvXCA7CivlgaXllZblrrYgPCBrZW50YW5rYVwgOwor56C05aOK6ICFIDwgaGFrYWlzaGFcIDsKK+iHquaEj+itmCA8IGppaXNoaWtpXCA7CivkuIPljYHot68gPCBuYW5hc29qaVwgOwor6Kaz6Ieq5ZyoIDwga2Fuaml6YWlcIDsKK+mBoOW/g+apnyA8IGVuc2hpbmtpXCA7CivmjajnjKsgPCBzdXRlbmVrb1wgOwor5pyx5Y2w6Ii5IDwgc2h1aW5zZW5cIDsKK+a0l+a/r+apnyA8IHNlbnRha2tpXCA7CivkuI3li5XnlKMgPCBmdWRvdXNhblwgOwor6J+A6LC3IDwga29tZWthbWlcIDsKK+WZtOawl+WtlCA8IGZ1bmtpa291XCA7Civon6/omasgPCBneW91Y2h1dVwgOwor6J2m5aS35p2+IDwgZXpvbWF0c3VcIDsKK+msvOWIkeS6iyA8IG9uaWtlaWppXCA7CivmhJ/lmIbnrKYgPCBrYW50YW5mdVwgOwor5rOV5Yy75a2mIDwgaG91aWdha3VcIDsKK+eyieacqyA8IGZ1bm1hdHN1XCA7Civnr4EgPCB0YWthbXVyYVwgOwor5Z+S5aSWIDwgcmFjaGlnYWlcIDsKK+mzpeWwj+WxiyA8IHRvcmlnb3lhXCA7CivlnarmlbAgPCB0c3Vib3N1dVwgOwor562NIDwgdGFrZW5va29cIDsKK+iHquWWtualrSA8IGppZWlneW91XCA7Civns57lsL8gPCBmdW4nJ255b3VcIDsKK+ihqOeZvSA8IGh5b3VoYWt1XCA7Civnsr7pjKzmiYAgPCBzZWlyZW5qb1wgOwor5Zub55m+IDwgeW9uaHlha3VcIDsKK+e0sOWIpSA8IHNhaWJldHN1XCA7CivmiYvpj6EgPCB0ZWthZ2FtaVwgOwor6buE6I+W6JKyIDwga2lzaG91YnVcIDsKK+S6nOWkp+mZuCA8IGF0YWlyaWt1XCA7CivlgpnogIPmrIQgPCBiaWtvdXJhblwgOwor6KCP6IKhIDwgZ2FuaW1hdGFcIDsKK+WggOWJsiA8IGhvcml3YXJpXCA7CivniYfmiYvplpMgPCBrYXRhdGVtYVwgOwor5Lq66ZaT5ZGzIDwgbmluZ2VubWlcIDsKK+mWouWuiCA8IHNla2ltb3JpXCA7CivnhKHmhI/orZggPCBtdWlzaGlraVwgOwor5oqV6LOH5a62IDwgdG91c2hpa2FcIDsKK+S4i+awtOadvyA8IGdlc3VpaXRhXCA7CivooYDnqI4gPCBrZXRzdXplaVwgOwor6aas6LmE5b2iIDwgYmF0ZWlrZWlcIDsKK+WFqOmfs+espiA8IHplbicnb25wdVwgOwor5Z+35YuZIDwgc2hpdHN1bXVcIDsKK+aNleeJqSA8IHRvcmltb25vXCA7CivmiJDpppkgPCBuYXJpa3lvdVwgOwor6auY6Lyd5bqmIDwga291a2lkb3VcIDsKK+exs+adviA8IGJlaW1hdHN1XCA7Civnr4Dns7ggPCBmdXNoaWl0b1wgOwor5LiN5Y+v5L61IDwgZnVrYXNoaW5cIDsKK+m7hOWPo+WFkCA8IGtvdWtvdWppXCA7CivliIbnp5HkvJogPCBidW5rYWthaVwgOwor56+A57GzIDwgc2V0c3VtYWlcIDsKK+icmOibm+iGnCA8IGt1bW9tYWt1XCA7Civkuovmpa3lrrYgPCBqaWd5b3VrYVwgOwor5om/6Ku+IDwgc2hvdWRha3VcIDsKK+WFpeS8muWcsCA8IGlyaWFpY2hpXCA7CivnrYboq4cgPCBoaXRzdWRhblwgOwor5Zuz5pu46aSoIDwgdG9zaG9rYW5cIDsKK+mWi+WxgCA8IGthaWt5b2t1XCA7Civoo73niYjmiYAgPCBzZWloYW5qb1wgOwor5p2x5aSn5a+6IDwgdG91ZGFpamlcIDsKK+mOjOmmliA8IGthbWFrdWJpXCA7Civnq4vpo58gPCByaXNzaG9rdVwgOwor5Lit5L2N5pWwIDwgY2h1dWlzdXVcIDsKK+ihhuebriA8IHNodXVtb2t1XCA7CivnrYbop6YgPCBoaXNzaG9rdVwgOwor5Y+C6LOA6ICFIDwgc2FuZ2FzaGFcIDsKK+aJueWHhuabuCA8IGhpanVuc2hvXCA7CivlnoLluZUgPCB0YXJlbWFrdVwgOwor56uL6aGYIDwgcml0c3VnYW5cIDsKK+aRguWLlSA8IHNldHN1ZG91XCA7CivoiJ7ouI/kvJogPCBidXRvdWthaVwgOwor57K+5a+GIDwgc2VpbWl0c3VcIDsKK+eQhuWMluWtpiA8IHJpa2FnYWt1XCA7Civnr4DnqbQgPCBmdXNoaWFuYVwgOwor55m75bGx6ICFIDwgdG96YW5zaGFcIDsKK+WKqeaVmeaOiCA8IGpva3lvdWp1XCA7CivliJHli5nlrpggPCBrZWltdWthblwgOwor55m4IDwgbWl6dW5vdG9cIDsKK+aUv+WLmeWumCA8IHNlaW11a2FuXCA7Civnr4DnqI4gPCBzZXRzdXplaVwgOwor5q2j576p5oSfIDwgc2VpZ2lrYW5cIDsKK+ezuOWPoyA8IGl0b2d1Y2hpXCA7CivljLvolqzlk4EgPCBpeWFrdWhpblwgOwor5YyW57Kn552AIDwga2VzaG91Z2lcIDsKK+aJi+i7iiA8IHRlZ3VydW1hXCA7CivngavpgZTno6ggPCBoaWRhcnVtYVwgOwor6ZW35bC7IDwgbmFnYWppcmlcIDsKK+a/gea1gSA8IGRha3VyeXV1XCA7CivntKDkurogPCBzaGlyb3V0b1wgOwor5LiN5b655bqVIDwgZnV0ZXR0ZWlcIDsKK+a/gOa1gSA8IGdla2lyeXV1XCA7Civln7fkuosgPCBzaGl0c3VqaVwgOwor55WZ5a6I5a6FIDwgcnVzdXRha3VcIDsKK+aJgOi9hCA8IHNob2thdHN1XCA7Civmi5LntbYgPCBreW96ZXRzdVwgOwor5Yeh6Kmm5ZCIIDwgYm9uc2hpYWlcIDsKK+S4h+atqeioiCA8IG1hbnBva2VpXCA7Civkuozmnprosp0gPCBuaW1haWdhaVwgOwor5o6S5pelIDwgaGFpbmljaGlcIDsKK+eUqOawtOi3ryA8IHlvdXN1aXJvXCA7Civns7vliJcgPCBrZWlyZXRzdVwgOwor6KGw5ruFIDwgc3VpbWV0c3VcIDsKK+aZguioiOW6lyA8IHRva2VpdGVuXCA7Civlm7rlrprlrZAgPCBrb3RlaXNoaVwgOwor5pyJ54WZ54KtIDwgeXV1ZW50YW5cIDsKK+ijj+msvOmWgCA8IHVyYWtpbW9uXCA7CivmjqHmjpggPCBzYWlrdXRzdVwgOwor5b6h5q+N5qeYIDwgb2thYXNhbWFcIDsKK+WfkuWGhSA8IHJhY2hpbmFpXCA7CivpgZPnpZbnpZ4gPCBkb3Vzb2ppblwgOwor5Zyo5pelIDwgemFpbmljaGlcIDsKK+WQiOazleWMliA8IGdvdWhvdWthXCA7CivmvIHoibIgPCBneW9zaG9rdVwgOwor5ouZ562GIDwgc2VwcGl0c3VcIDsKK+e0lOS4gCA8IGp1bicnaXRzdVwgOwor6aaW6YO95ZyPIDwgc2h1dG9rZW5cIDsKK+S4ieavm+eMqyA8IG1pa2VuZWtvXCA7CivmjqLnn6XmqZ8gPCB0YW5jaGlraVwgOwor5q2754Gr5bGxIDwgc2hpa2F6YW5cIDsKK+iJsuaooeanmCA8IGlyb21veW91XCA7Civns7jpm7voqbEgPCBpdG9kZW53YVwgOwor6YeN5aSn5YyWIDwganV1ZGFpa2FcIDsKK+aQrOWFpSA8IGhhbicnbnl1dVwgOwor6Zai5Y+WIDwgc2VraXRvcmlcIDsKK+S4ieauteebriA8IHNhbmRhbm1lXCA7Civnpa3lo4fluqcgPCBzYWlkYW56YVwgOwor5pC+5LmzIDwgc2FrdW55dXVcIDsKK+eDj+W4veWtkOWQjSA8IGVib3NoaW5hXCA7CivmvKvnrYYgPCBtYW5waXRzdVwgOwor5YWE5byf5a2QIDwgYW5pZGVzaGlcIDsKK+mBi+WRveirliA8IHVubWVpcm9uXCA7Civmma7pgJrnp5EgPCBmdXRzdXVrYVwgOwor5LiK5Y+k5Y+yIDwgam91a29zaGlcIDsKK+mgkOiyr+mHkSA8IHlvY2hva2luXCA7CivmipznvqQgPCBiYXRzdWd1blwgOwor5aal5b2T5oCnIDwgZGF0b3VzZWlcIDsKK+WbveafhCA8IGt1bmlnYXJhXCA7CivokaHokIToibIgPCBidWRvdWlyb1wgOwor5o6S5rC06LevIDwgaGFpc3Vpcm9cIDsKK+aoquaWremdoiA8IG91ZGFubWVuXCA7CivmlbTntYzmqZ8gPCBzZWlrZWlraVwgOwor5omL6KKLIDwgdGVidWt1cm9cIDsKK+mWo+WDmiA8IGtha3VyeW91XCA7CivnsKHkvZPlrZcgPCBrYW50YWlqaVwgOwor6aKo6YKq5rCX5ZGzIDwga2F6ZWdpbWlcIDsKK+WPr+a6tueJhyA8IGtheW91aGVuXCA7CivlhIDku5flhbUgPCBnaWpvdWhlaVwgOwor6Zm45bGL5qC5IDwgcm9rdXlhbmVcIDsKK+expOW8lSA8IGt1amliaWtpXCA7Civluqfoq4fkvJogPCB6YWRhbmthaVwgOwor5biG5YmN6Ii5IDwgaG9tYWVzZW5cIDsKK+aMh+ipseazlSA8IHNoaXdhaG91XCA7Civlgb3pgKDlk4EgPCBnaXpvdWhpblwgOwor562L6IKJIDwga2luJyduaWt1XCA7CivkuJbluK/mlbAgPCBzZXRhaXN1dVwgOwor5LiA5ZGo5pyfIDwgaXNzaHV1a2lcIDsKK+S4reiAs+eCjiA8IGNodXVqaWVuXCA7CivnqpPpmpsgPCBtYWRvZ2l3YVwgOwor5a+M5aOr6YCaIDwgZnVqaXRzdXVcIDsKK+WutuWxi+eojiA8IGthb2t1emVpXCA7CivplpPlhasgPCBrYW5wYWNoaVwgOwor56y56IifIDwgc2FzYWJ1bmVcIDsKK+apn+WLlemaiiA8IGtpZG91dGFpXCA7CivpmLLngavnt5ogPCBib3VrYXNlblwgOwor5pWZ6K236ZmiIDwga3lvdWdvaW5cIDsKK+aOpeWyuCA8IHNldHN1Z2FuXCA7CivmiK/oqIAgPCB0YXdhZ290b1wgOwor6J665a2Q5bGxIDwgbmVqaXlhbWFcIDsKK+S5s+WFkOmZoiA8IG55dXVqaWluXCA7CivooYDmtrIgPCBrZXRzdWVraVwgOwor6IWV5pmC6KiIIDwgdWRlZG9rZWlcIDsKK+igj+eOiSA8IGthbml0YW1hXCA7CivooYDmtpkgPCBrZXRzdXJ1aVwgOwor5oi46KKLIDwgdG9idWt1cm9cIDsKK+acseWNsOeKtiA8IHNodWluam91XCA7Civmjqjlr58gPCBzdWlzYXRzdVwgOwor55yf5oSP576pIDwgc2hpbicnaWdpXCA7CivpgYrmioDloLQgPCB5dXVnaWpvdVwgOwor5Yun5bel5aC0IDwga2Fua291YmFcIDsKK+aOpeWuoiA8IHNla2t5YWt1XCA7CivkuInlhqDppqwgPCBzYW5rYW5iYVwgOwor5ZeF6KaaIDwga3l1dWtha3VcIDsKK+WkqeaJjeWFkCA8IHRlbnNhaWppXCA7CivpgIbojILmnKggPCBzYWthbW9naVwgOwor5oqY56+AIDwgb3JpZnVzaGlcIDsKK+ijnOWFheWFtSA8IGhvanV1aGVpXCA7Civlu7rorbDogIUgPCBrZW5naXNoYVwgOwor5bi45aSc54GvIDwgam91eWF0b3VcIDsKK+a9pOa7kSA8IGp1bmthdHN1XCA7CivpjozotrMgPCBrYW1hYXNoaVwgOwor6I2J5bGL5qC5IDwga3VzYXlhbmVcIDsKK+a9rua1gSA8IGNob3VyeXV1XCA7Civlm5vmnIggPCBzaGlnYXRzdVwgOwor5Ziy56yRIDwgY2hvdXNob3VcIDsKK+aoqeWogeiAhSA8IGtlbicnaXNoYVwgOwor56qu6L+9IDwga3l1dXRzdWlcIDsKK+eqrui/qyA8IGt5dXVoYWt1XCA7Civmj6HlipsgPCBha3VyeW9rdVwgOwor56CV5bKp5qmfIDwgc2FpZ2Fua2lcIDsKK+iRoeiQhOezliA8IGJ1ZG91dG91XCA7Civnmb3kupzppKggPCBoYWt1YWthblwgOwor5re35ZKM5oCnIDwga29ud2FzZWlcIDsKK+W3pumhp+WPs+echCA8IHNha291YmVuXCA7CivljJbnsqfmrr8gPCBrZXdhaWRlblwgOwor6Y2b6YmEIDwgdGFudGV0c3VcIDsKK+aPmuWKmyA8IHlvdXJ5b2t1XCA7CivljYPliIbmr5QgPCBzZW5idW5oaVwgOwor56u56JauIDwgdGFrZXlhYnVcIDsKK+aJjeiJsiA8IHNhaXNob2t1XCA7CivmmYLoqIjlj7AgPCB0b2tlaWRhaVwgOwor5ZCM5q+N5aeJIDwgZG91Ym9zaGlcIDsKK+eri+irliA8IHJpdHN1cm9uXCA7CivnsbPlnaogPCBiZWl0c3Vib1wgOwor5qWgIDwga3VzdW5va2lcIDsKK+ethueusSA8IGZ1ZGViYWtvXCA7CivmuKzph48gPCBzb2t1cnlvdVwgOwor562J562JIDwgbmFkb25hZG9cIDsKK+eri+iogCA8IHJpdHN1Z2VuXCA7Civpu4TmsLTku5kgPCBraXN1aXNlblwgOwor57Kb5YWaIDwgc2h1a3V0b3VcIDsKK+W8seWRs+WZjCA8IHlvd2FtaXNvXCA7Civoo7jlh7ogPCByYXNodXRzdVwgOwor6Y2L6YecIDwgbmFiZWthbWFcIDsKK+eVmeWuiOS4rSA8IHJ1c3VjaHV1XCA7CivooZ3mkoMgPCBzaG91Z2VraVwgOwor5re36ZuRIDwga29uemF0c3VcIDsKK+Wwj+WFkOenkSA8IHNob3VuaWthXCA7CivplbfkuYUgPCBjaG91a3l1dVwgOwor5LiJ5Y2B5oi4IDwgc2Fuamlra29cIDsKK+mbu+mbouWxpCA8IGRlbnJpc291XCA7Civpq5jouI/mtL4gPCBrb3V0b3VoYVwgOwor55CG5bel57O7IDwgcmlrb3VrZWlcIDsKK+eEoeekvOismyA8IGJ1cmVpa291XCA7CivlnLDlooMgPCBkaml6YWthaVwgOwor5oy/5oqcIDwgc291YmF0c3VcIDsKK+S7ruWQjeaWh+WtlyA8IGthbmFtb2ppXCA7CivkuI3ljYHliIYgPCBmdWp1dWJ1blwgOwor5ZO65Lmz5pyfIDwgaG9ueXV1a2lcIDsKK+efs+ayueeOiyA8IHNla2l5dW91XCA7CivooaPmiYsgPCBrb3JvbW9kZVwgOwor5b6h5Yip55uKIDwgZ29yaXlha3VcIDsKK+aKleabuOWutiA8IHRvdXNob2thXCA7CivpgbrnlZnlk4EgPCBpcnl1dWhpblwgOwor6Ju46LazIDwgdGFrb2FzaGlcIDsKK+mBuuS8neeXhSA8IGlkZW5ieW91XCA7Civmj5rngq3mqZ8gPCB5b3V0YW5raVwgOwor6Z2e5aSJ5o+bIDwgaGloZW5rYW5cIDsKK+aUueato+ahiCA8IGthaXNlaWFuXCA7Civpq5jpq5jluqYgPCBrb3Vrb3Vkb1wgOwor57WM55Sj5ammIDwga2Vpc2FucHVcIDsKK+aOpeWQiCA8IHNldHN1Z291XCA7Civoo4/lj6MgPCB1cmFndWNoaVwgOwor5oqR55WZIDwgeW9rdXJ5dXVcIDsKK+i1pOijuOijuCA8IHNla2lyYXJhXCA7Civmt7flkIjmqZ8gPCBrb25nb3VraVwgOwor5r2u5pmCIDwgc2hpb2Rva2lcIDsKK+WvhOi0iOWTgSA8IGtpem91aGluXCA7Civmv4Plr4YgPCBub3VtaXRzdVwgOwor5aSc6KGM5oCnIDwgeWFrb3VzZWlcIDsKK+WJjeihm+a0viA8IHplbicnZWloYVwgOwor5pyq5rG6566XIDwgbWlrZXNzYW5cIDsKK+WbveWtpiA8IGtva3VnYWt1XCA7CivmvKDmvKAgPCBiYWt1YmFrdVwgOwor5o+J5LqLIDwgbW9tZWdvdG9cIDsKK+S4u+imgemDqCA8IHNodXlvdWJ1XCA7Civpgb/lr5LlnLAgPCBoaWthbmNoaVwgOwor5rC05Z6i6ZuiIDwgbWl6dWdvcmlcIDsKK+WnlOiol+eUnyA8IGl0YWt1c2VpXCA7CivorabloLHmqZ8gPCBrZWlob3VraVwgOwor5rip572o5rOVIDwgb24nJ2FucG91XCA7Civlr77lv5zniYggPCB0YWlvdWJhblwgOwor5ZaH5Zib5pWZIDwgcmFtYWt5b3VcIDsKK+mBuueVmeWIhiA8IGlyeXV1YnVuXCA7CivmmIbluIPojLYgPCBrb25idWNoYVwgOwor6by76autIDwgaGFuYWhpZ2VcIDsKK+S5l+eul+WZqCA8IGpvdXphbmtpXCA7Civnq4vokbUgPCB0YWNoaWFvaVwgOwor57KJ5LmzIDwgZnVuJydueXV1XCA7CivpvLvpq5ggPCBoYW5hdGFrYVwgOwor6JGs5YSA56S+IDwgc291Z2lzaGFcIDsKK+WIpOaknOS6iyA8IGhhbmtlbmppXCA7CivlloDooYAgPCBrYWtrZXRzdVwgOwor54m555Ww54K5IDwgdG9rdWl0ZW5cIDsKK+S/nemZuuWxiyA8IGhva2VuJyd5YVwgOwor5oqV54mpIDwgbmFnZW1vbm9cIDsKK+WcsOWNtSA8IGppdGFtYWdvXCA7CivkuI3pg73lkIggPCBmdXRzdWdvdVwgOwor5omA5oyB6YeRIDwgc2hvamlraW5cIDsKK+iZjuays+ixmiA8IHRvcmFmdWd1XCA7CivmioDog73ogIUgPCBnaW5vdXNoYVwgOwor5oqX6K2w5paHIDwga291Z2lidW5cIDsKK+iiluWeoyA8IHNvZGVnYWtpXCA7Civml6Loo73lk4EgPCBraXNlaWhpblwgOwor5Z+656SO55qEIDwga2lzb3Rla2lcIDsKK+a3semFkiA8IGZ1a2F6YWtlXCA7Civosp3ntLDlt6UgPCBrYWl6YWlrdVwgOwor6buS55m+5ZCIIDwga3Vyb3l1cmlcIDsKK+epuuixhiA8IHNvcmFtYW1lXCA7CivojLboj5PlrZAgPCBjaGFnYXNoaVwgOwor6by76aKoIDwgaGFuYWthemVcIDsKK+exs+S7jyA8IGJlaWZ1dHN1XCA7CivlkKblrprmlocgPCBoaXRlaWJ1blwgOwor5o2V5aSxIDwgaG9zaGl0c3VcIDsKK+aKhOeJqSA8IHNob3Vtb25vXCA7Civnq7nnsKEgPCBjaGlrdWthblwgOwor5oq55q66IDwgbWFzc2F0c3VcIDsKK+W8geitt+WjqyA8IGJlbmdvc2hpXCA7CivmiYvoo4/liaMgPCBzaHVyaWtlblwgOwor6YqA5pmC6KiIIDwgZ2luZG9rZWlcIDsKK+S4iemAo+espiA8IHNhbnJlbnB1XCA7Civoo4/ku5ggPCB1cmFkenVrZVwgOwor5ZSQ6YukIDwga2FyYXN1a2lcIDsKK+Wcp+WHuiA8IGFzc2h1dHN1XCA7Civnq4vohJogPCByaWtreWFrdVwgOwor56u5566GIDwgdGFrZWJlcmFcIDsKK+WbveWbvSA8IGt1bmlndW5pXCA7CivnsJLlpaogPCBzYW5kYXRzdVwgOwor5Z2H5LiAIDwga2luJydpdHN1XCA7CivmvI/ms4QgPCByb3VzZXRzdVwgOwor6by76Z2pIDwgaGFuYWdhd2FcIDsKK+epuuiqrCA8IGt1dXNldHN1XCA7CivlsI/liIflrZAgPCBrb2tpcmlrb1wgOwor5pCt5LmX5ZOhIDwgdG91am91aW5cIDsKK+S4lueVjOimsyA8IHNla2Fpa2FuXCA7CivlnKflhaUgPCBhdHN1bnl1dVwgOwor5oyZ5byPIDwga3lvc2hpa2lcIDsKK+epuuiogCA8IHNvcmFnb3RvXCA7CivllJDph5EgPCBrYXJha2FuZVwgOwor5YCJ5bqr55WqIDwgc291a29iYW5cIDsKK+iZjumsmiA8IHRvcmFoaWdlXCA7CivmurbnmbogPCB5b3VoYXRzdVwgOwor5ru05ru0IDwgdGVraXRla2lcIDsKK+a8gua1gSA8IGh5b3VyeXV1XCA7Civpj5Hnn6IgPCBrYWJ1cmF5YVwgOwor5paH56eR57O7IDwgYnVua2FrZWlcIDsKK+iDveaWh+WutiA8IG5vdWJ1bmthXCA7CivlvIHorbflm6MgPCBiZW5nb2RhblwgOwor5berIDwga2FuJyduYWdpXCA7CivpioDkuJbnlYwgPCBnaW5zZWthaVwgOwor5ouZ5paHIDwgc2V0c3VidW5cIDsKK+ieoueBqyA8IGhvdGFydWJpXCA7CivljIjniZnliKkgPCBoYW5nYXJpaVwgOwor5omN55WlIDwgc2Fpcnlha3VcIDsKK+mKgOm8oCA8IGdpbicnbmV6dVwgOwor54y/55yf5Ly8IDwgc2FydW1hbmVcIDsKK+eMquWPo+aJjSA8IGNob2tvemFpXCA7Civpi7PnianluKsgPCBpbW9ub3NoaVwgOwor54Sh6YmE56CyIDwgbXV0ZXBwb3VcIDsKK+WQjOWIhuavjSA8IGRvdWJ1bmJvXCA7Civlm73ljp8gPCBrdW5pYmFyYVwgOwor5pyq5raI5YyWIDwgbWlzaG91a2FcIDsKK+ibnuidkyA8IG5hbWVrdWppXCA7CivnqbronYkgPCB1dHN1c2VtaVwgOwor56+J5bqtIDwgY2hpa3V0ZWlcIDsKK+evpOWtpiA8IHRva3VnYWt1XCA7CivluoPmnbHoqp4gPCBrYW50b25nb1wgOwor5a+/IDwga290b2J1a2lcIDsKK+S4gOengeS6uiA8IGlzc2hpamluXCA7Civono3nhrEgPCB5dXVuZXRzdVwgOwor5ryi6JS16KqeIDwga2Fuem91Z29cIDsKK+S6jOS6uuebriA8IGZ1dGFyaW1lXCA7Civlr4zlo6vntbkgPCBmdWppZ2ludVwgOwor6IKb6ZaA56eRIDwga291bW9ua2FcIDsKK+mdmembu+awlyA8IHNlaWRlbmtpXCA7CivpjYvok4sgPCBuYWJlYnV0YVwgOwor5Y6f5YuV5qmfIDwgZ2VuZG91a2lcIDsKK+S5vuiIuea4oCA8IGthbmRva2t1XCA7CivpvJPlkLnogIUgPCBrb3N1aXNoYVwgOwor5aSn5ZKM54WuIDwgeWFtYXRvbmlcIDsKK+ethua0lyA8IGZ1ZGVhcmFpXCA7CivojLbpgZPlhbcgPCBjaGFkb3VndVwgOwor5Zuw5Y20IDwga29ua3lha3VcIDsKK+aHuOe1tiA8IGtlbnpldHN1XCA7CivmjpLmsJfnrqEgPCBoYWlraWthblwgOwor6buS6bu0IDwga3Vyb2thYmlcIDsKK+W9k+S6i+iAhSA8IHRvdWppc2hhXCA7CivlopPoqozpipggPCBib3NoaW1laVwgOwor6buS6bqmIDwga3Vyb211Z2lcIDsKK+efreawtOi3ryA8IHRhbnN1aXJvXCA7CivmiJDnqIsgPCBuYXJ1aG9kb1wgOwor5Zar6Iy25bqXIDwga2lzc2F0ZW5cIDsKK+aZgumWk+W4ryA8IGppa2FudGFpXCA7CivnhKHmsLTphbggPCBtdXN1aXNhblwgOwor5omN54mpIDwgc2FpYnV0c3VcIDsKK+m7kum3uiA8IGt1cm9zYWdpXCA7CivpiaTpvLsgPCBrYWdpYmFuYVwgOwor56C06Ziy5rOVIDwgaGFib3Vob3VcIDsKK+a3t+ihgCA8IGtvbmtldHN1XCA7CivnrrHluq0gPCBoYWtvbml3YVwgOwor5ZCI5q2T5pyoIDwgbmVtdW5va2lcIDsKK+aLmeaCqiA8IHNldHN1YWt1XCA7CivogZbmrYzpmoogPCBzZWlrYXRhaVwgOwor6buS6bSoIDwga3Vyb2dhbW9cIDsKK+mKgOmrqiA8IGdpbnBhdHN1XCA7Civom4bomasgPCB1amltdXNoaVwgOwor5Y2w57SZ56iOIDwgaW5zaGl6ZWlcIDsKK+igjeW6pyA8IHNhc29yaXphXCA7CivoopbkuIggPCBzb2RldGFrZVwgOwor5oim55WlIDwgc2Vucnlha3VcIDsKK+aWh+aIv+WFtyA8IGJ1bmJvdWd1XCA7Civkv53nrqHph5EgPCBob2thbmtpblwgOwor5Zue5YuFIDwga2FpY2hva3VcIDsKK+acgOWkmuaVsCA8IHNhaXRhc3V1XCA7CivkuI3pgI/mmI4gPCBmdXRvdW1laVwgOwor5qC95Z+55omAIDwgc2FpYmFpam9cIDsKK+ael+aqjumFkiA8IHJpbmdvc2h1XCA7Civlm73kurogPCBrdW5pYml0b1wgOwor5q+N57Sw6IOeIDwgYm9zYWlib3VcIDsKK+WlveaJk+iAhSA8IGtvdWRhc2hhXCA7CivlhobnrZLlvaIgPCBlbnRvdWtlaVwgOwor5pGC6Zai5a62IDwgc2Vra2Fua2VcIDsKK+ato+imj+i7jSA8IHNlaWtpZ3VuXCA7CivmtZzpoqggPCBoYW1ha2F6ZVwgOwor5bi45aWX5Y+lIDwgam91dG91a3VcIDsKK+erqueQtCA8IHRhdGVnb3RvXCA7CivmuIvojLYgPCBzaGlidWNoYVwgOwor5pyq5rG65riIIDwgbWlrZXNzYWlcIDsKK+iasOickiA8IGdlamlnZWppXCA7CivntI3miLjoibIgPCBuYW5kb2lyb1wgOwor5oqX5pelIDwga291bmljaGlcIDsKK+mdnue3muW9oiA8IGhpc2Vua2VpXCA7CivpoqjlkYLph5wgPCBmdXJvZ2FtYVwgOwor5byB6K235Lq6IDwgYmVuZ29uaW5cIDsKK+a4i+iJsiA8IHNoaWJ1aXJvXCA7Civpjq7lrojlupwgPCBjaGluanVmdVwgOwor5LiA5by1576FIDwgaXRjaG91cmFcIDsKK+WtkOS8muekviA8IGtvZ2Fpc2hhXCA7CivkuI3lh43muK8gPCBmdXRvdWtvdVwgOwor5rS76a2aIDwga2F0c3VneW9cIDsKK+WNteWhlOWgtCA8IHJhbnRvdWJhXCA7CivkuK3lpK7pg6ggPCBjaHV1b3VidVwgOwor5LiN5YeN5rayIDwgZnV0b3Vla2lcIDsKK+WkqeenpOW6pyA8IHRlbmJpbnphXCA7CivnqbrogLMgPCBzb3JhbWltaVwgOwor5Y2x6Zm65oCnIDwga2lrZW5zZWlcIDsKK+S4jeWHjea1tyA8IGZ1dG91a2FpXCA7CivlpKfnnJ/pnaLnm64gPCBvb21hamltZVwgOwor55m75bGx5bi9IDwgdG96YW5ib3VcIDsKK+mKremHkSA8IHplbmlrYW5lXCA7CivnhY7osYbohZAgPCBpcmlkb3VmdVwgOwor5Yi45aOy5qmfIDwga2VuYmFpa2lcIDsKK+aZgumWk+WkliA8IGppa2FuZ2FpXCA7Civmi53lr58gPCBoYWlzYXRzdVwgOwor5rCX5YCZ5bivIDwga2lrb3V0YWlcIDsKK+alveWZqOW6lyA8IGdha2tpdGVuXCA7Civmib/mnI0gPCBzaG91ZnVrdVwgOwor5qSc6Z2e6YGV5L2/IDwga2ViaWlzaGlcIDsKK+aIqueEtiA8IHNldHN1emVuXCA7Civpvo3oiJ8gPCByeXV1c2h1dVwgOwor5pys6YeR5bqrIDwgaG9ua2lua29cIDsKK+mbhOW8geWutiA8IHl1dWJlbmthXCA7Civku5jluK/niq8gPCBmdXRhaWhhblwgOwor6KW/5rSL56KBIDwgc2VpeW91Z29cIDsKK+aIpuS6ieW+jCA8IHNlbnNvdWdvXCA7CivmlY/ohZXlrrYgPCBiaW53YW5rYVwgOwor5Lit5Lul5LiKIDwgY2h1dWlqb3VcIDsKK+mrmOS4i+mnhCA8IHRha2FnZXRhXCA7CivpnZ7lo7Llk4EgPCBoaWJhaWhpblwgOwor5re36ImyIDwga29uc2hva3VcIDsKK+S9leS7o+ebriA8IG5hbmRhaW1lXCA7Civpq5jmnrbnt5ogPCBrb3VrYXNlblwgOwor5rC06Z2i5LiLIDwgc3VpbWVua2FcIDsKK+eyvuayueaJgCA8IHNlaXl1c2hvXCA7CivmnbHopb/lsYsgPCB0b3V6YWl5YVwgOwor5rqi5rWBIDwgaXRzdXJ5dXVcIDsKK+mKheeJiOeUuyA8IGRvdWhhbmdhXCA7CivmipXmioAgPCBuYWdld2F6YVwgOwor54KK6aOv5ZmoIDwgc3VpaGFua2lcIDsKK+aIkeeJqSA8IHdhZ2Ftb25vXCA7CivlhYPluKXlupwgPCBnZW5zdWlmdVwgOwor6by76KixIDwgaGFuYW1vdG9cIDsKK+mzpeS5i+W3oyA8IHRvcmlub3N1XCA7CivljLvnmYLou4ogPCBpcnlvdXNoYVwgOwor54m555Ww5oCnIDwgdG9rdWlzZWlcIDsKK+a6neazpSA8IGRvYnVkb3JvXCA7CivnpoTpq5ggPCByb2t1ZGFrYVwgOwor5Yas6Iez57eaIDwgdG91amlzZW5cIDsKK+epv+WtlOapnyA8IHNlbmtvdWtpXCA7CivnhKHok4vou4ogPCBtdWdhaXNoYVwgOwor5rqd5rC0IDwgZG9idW1penVcIDsKK+epuuexpCA8IGthcmFrdWppXCA7CivmirXmipflmaggPCB0ZWlrb3VraVwgOwor6JK45rCX6Ii5IDwgam91a2lzZW5cIDsKK+mdnuioseWuuSA8IGhpa3lveW91XCA7CivpgaDov5Hms5UgPCBlbmtpbmhvdVwgOwor6YmE6aqoIDwgdGVra290c3VcIDsKK+a5r+eFmSA8IHl1a2VtdXJpXCA7Civmt6HoibIgPCB0YW5zaG9rdVwgOwor5Luu5a6a5rOVIDwga2F0ZWlob3VcIDsKK+ilv+a0i+eUuyA8IHNlaXlvdWdhXCA7Civnp4HpiYQgPCBzaGl0ZXRzdVwgOwor6YGU56Oo5b+MIDwgZGFydW1ha2lcIDsKK+enkumAnyA8IGJ5b3Vzb2t1XCA7CivnqbrnrrEgPCBrYXJhYmFrb1wgOwor56qB56uLIDwgdG90dGF0c3VcIDsKK+eVs+aIkOiqniA8IGpvdXNlaWdvXCA7CivmgKrkuovku7YgPCBrYWlqaWtlblwgOwor5omA5oyB6ICFIDwgc2hvamlzaGFcIDsKK+aTrOS6uuazlSA8IGdpamluaG91XCA7CivllJDojYkgPCBrYXJha3VzYVwgOwor5rqW5aSn5omLIDwganVuJydvb3RlXCA7Civlm57ou6LmqZ8gPCBrYWl0ZW5raVwgOwor6J+75aGaIDwgYXJpZHp1a2FcIDsKK+a9ruWFiCA8IHNoaW9zYWtpXCA7CivomZroqqwgPCBreW9zZXRzdVwgOwor6KGA5L6/IDwga2V0c3ViZW5cIDsKK+aIpuayoSA8IHNlbmJvdHN1XCA7Civlj6/lk4Dnm7ggPCBrYXdhaXNvdVwgOwor5oyH5YWIIDwgeXViaXNha2lcIDsKK+mMpue1tSA8IG5pc2hpa2llXCA7CivkuqTpmpvlrrYgPCBrb3VzYWlrYVwgOwor6Zui5Lmz5pyfIDwgcmlueXV1a2lcIDsKK+ejgeaAp+WxpCA8IGppc2Vpc291XCA7CivotorlhqzpmoogPCBldHRvdXRhaVwgOwor5b6h54Sh5rKZ5rGwIDwgZ29idXNhdGFcIDsKK+aJi+aelSA8IHRlbWFrdXJhXCA7Civlj7Ppoaflt6bnnIQgPCB1a29zYWJlblwgOwor6K2c6Z2i5Y+wIDwgZnVtZW5kYWlcIDsKK+engOmAuCA8IHNodXVpdHN1XCA7Civku67lsI/lsYsgPCBrYXJpZ295YVwgOwor55uu6KuW6KaLIDwgbW9rdXJvbWlcIDsKK+erueanjSA8IHRha2V5YXJpXCA7CivmvJTnrpflrZAgPCBlbnphbnNoaVwgOwor6buS6YmEIDwga3Vyb2dhbmVcIDsKK+aciemZkOWAiyA8IHl1dWdlbmtvXCA7CivmiLjpmpzlrZAgPCB0b3Nob3VqaVwgOwor5Y+v6Y2b5oCnIDwga2F0YW5zZWlcIDsKK+Wkqum8k+WIpCA8IHRhaWtvYmFuXCA7CivmtbflnYrkuLsgPCB1bWlib3V6dVwgOwor562J5byPIDwgdG91c2hpa2lcIDsKK+iXqemWpSA8IGhhbmJhdHN1XCA7CivmtYHph48gPCByeXV1cnlvdVwgOwor6buN6a2a5a2QIDwga2liaW5hZ29cIDsKK+eqgeeZuiA8IHRvcHBhdHN1XCA7CivpiaTph50gPCBrYWdpYmFyaVwgOwor5oqV5a6/IDwgdG91c2h1a3VcIDsKK+WWtuael+e9siA8IGVpcmluc2hvXCA7Civnq7nmnpcgPCBjaGlrdXJpblwgOwor5Zu65pyJ5YCkIDwga295dXVjaGlcIDsKK+WVk+eZuiA8IGtlaWhhdHN1XCA7Civnq7nmnZAgPCBjaGlrdXphaVwgOwor6YG65Lyd5a2mIDwgaWRlbmdha3VcIDsKK+iCsueoruaJgCA8IGlrdXNodWpvXCA7CivnqbrnmbogPCBrdXVoYXRzdVwgOwor5omV5outIDwgZnVzc2hva3VcIDsKK+mHkemNjemHkSA8IGtpbm1la2tpXCA7CivnpZ7poqggPCBrYW1pa2F6ZVwgOwor5rWB6YCfIDwgcnl1dXNva3VcIDsKK+a1gemAmiA8IHJ5dXV0c3V1XCA7Civmu53lt50gPCB0YWtpZ2F3YVwgOwor5Y+C5LqL5a6YIDwgc2FuamlrYW5cIDsKK+ebuOirh+aJgCA8IHNvdWRhbmpvXCA7CivnhKHnqI7lk4EgPCBtdXplaWhpblwgOwor56mA57KSIDwga29rdXJ5dXVcIDsKK+err+acqyA8IHRhbm1hdHN1XCA7CivllJDntJkgPCBrYXJha2FtaVwgOwor5b+c562U6IO9IDwgb3V0b3Vub3VcIDsKK+aknOWVj+aJgCA8IGtlbm1vbmpvXCA7CivlsqHloLTmiYAgPCBva2FiYXNob1wgOwor5Zyw6JS15bCKIDwgaml6b3Vzb25cIDsKK+epuuS4lui+niA8IGthcmFzZWppXCA7CivooajlhbflsYsgPCBoeW91Z3V5YVwgOwor5byU5oWw6YeRIDwgY2hvdWlraW5cIDsKK+WIneeUo+WppiA8IHNob3NhbnB1XCA7Civom7jnhLwgPCB0YWtveWFraVwgOwor56Wd6Zu7IDwgc2h1a3VkZW5cIDsKK+aBkOm+jSA8IGt5b3VyeXV1XCA7CivmmpfoqJjniakgPCBhbmtpbW9ub1wgOwor6bq76YWU5YmkIDwgbWFzdWl6YWlcIDsKK+iXquWMu+iAhSA8IHlhYnVpc2hhXCA7Civlk4HoloQgPCBzaGluYXVzdVwgOwor5oud5YCfIDwgaGFpc2hha3VcIDsKK+S9leaZgumggyA8IGl0c3Vnb3JvXCA7CivnqK7ntJkgPCB0YW5lZ2FtaVwgOwor5rip54axIDwgb24nJ25ldHN1XCA7CivpiYTpiaIgPCB0ZXBwYWNoaVwgOwor5rqA5pyIIDwgbWFuZ2V0c3VcIDsKK+mNi+eJqSA8IG5hYmVtb25vXCA7CivkuoznvqnnmoQgPCBuaWdpdGVraVwgOwor6ZuB55qu57SZIDwgZ2FucGlzaGlcIDsKK+aXpeWSjOimiyA8IGhpeW9yaW1pXCA7Civms6LpoqggPCBuYW1pa2F6ZVwgOwor56S+5Lya6YOoIDwgc2hha2FpYnVcIDsKK+mRkeWIpSA8IGthbmJldHN1XCA7Civpu5LosbkgPCBrdXJvaHlvdVwgOwor5oi/5oi/IDwgZnVzYWZ1c2FcIDsKK+m7kuixhiA8IGt1cm9tYW1lXCA7CivliKXkuJbnlYwgPCBiZXNzZWthaVwgOwor54Sh5ZCN5rCPIDwgbXVtZWlzaGlcIDsKK+mbh+WCreiAhSA8IGtveW91c2hhXCA7CivllJDnqoEgPCB0b3V0b3RzdVwgOwor57Wi57ee5a2QIDwgYXlhZG9uc3VcIDsKK+a4pueKtuaWhyA8IGtham91bW9uXCA7Civpu5noq74gPCBtb2t1ZGFrdVwgOwor6Ieq5YuV6LuKIDwgamlkb3VzaGFcIDsKK+mZpOiNieWJpCA8IGpvc291emFpXCA7Civph47pvKAgPCBub25lenVtaVwgOwor5LiN5YWs5q2jIDwgZnVrb3VzZWlcIDsKK+mXmOaKgOWgtCA8IHRvdWdpam91XCA7CivllqzmnKggPCBreW91Ym9rdVwgOwor6buZ6KqtIDwgbW9rdWRva3VcIDsKK+aBpemqqCA8IGNoaWtvdHN1XCA7CivkuLvoqJjmhrYgPCBzaHVraW9rdVwgOwor5omL5b+DIDwgdGVnb2tvcm9cIDsKK+eqgeeEtiA8IHRvdHN1emVuXCA7CivpvLvkuIvplbcgPCBiaWthY2hvdVwgOwor5pyA5aSn5YyWIDwgc2FpZGFpa2FcIDsKK+aKvOWIhyA8IG9zaGlraXJpXCA7CivpmLLngo7liaQgPCBib3VlbnphaVwgOwor5oqR5ZynIDwgeW9rdWF0c3VcIDsKK+aFtuelnSA8IGtlaXNodWt1XCA7CivnrYblpKogPCBmdWRlYnV0b1wgOwor6YmE6YGTIDwgdGV0c3Vkb3VcIDsKK+S9leaZgumWkyA8IG5hbmppa2FuXCA7Civns7vntbHmqLkgPCBrZWl0b3VqdVwgOwor5b6h6Ieq6LqrIDwgZ29qaXNoaW5cIDsKK+S4iuiPk+WtkCA8IGpvdWdhc2hpXCA7CivomZrohLEgPCBreW9kYXRzdVwgOwor5rKz6bGSIDwga2F3YW1hc3VcIDsKK+iiq+a4m+aVsCA8IGhpZ2Vuc3V1XCA7CivmmJ/mnaHml5cgPCBzZWlqb3VraVwgOwor6Yqt6IuUIDwgemVuaWdva2VcIDsKK+eri+acrSA8IHRhdGVmdWRhXCA7CivlmZvlgrcgPCBrYW1pa2l6dVwgOwor6YeO6bayIDwgbm9iaXRha2lcIDsKK+eWjuawtOaApyA8IHNvc3Vpc2VpXCA7Civoh6rmsrvmqKkgPCBqaWNoaWtlblwgOwor6YCu5o2V6ICFIDwgdGFpaG9zaGFcIDsKK+a8lOWHuiA8IGVuc2h1dHN1XCA7CivpvLvntJkgPCBoYW5hZ2FtaVwgOwor5rip5ripIDwgbnVrdW51a3VcIDsKK+S6jOmgreetiyA8IG5pdG91a2luXCA7CivpvLvns54gPCBoYW5ha3Vzb1wgOwor57Sg5rWq5Lq6IDwgc3Vyb3VuaW5cIDsKK+eni+WgtOaJgCA8IGFraWJhc2hvXCA7CivoiLnngavkuosgPCBmdW5ha2FqaVwgOwor6IKy56iu5a62IDwgaWt1c2h1a2FcIDsKK+aCqumAhiA8IGFrdWd5YWt1XCA7CivmraPoqrLlpJYgPCBzZWlrYWdhaVwgOwor54WJ55Om5aGAIDwgcmVuZ2FiZWlcIDsKK+aCqui+oyA8IGFrdXJhdHN1XCA7Civoi7Hmlofms5UgPCBlaWJ1bnBvdVwgOwor5pyq5rG65a6aIDwgbWlrZXR0ZWlcIDsKK+m7kuihqCA8IGtva3VoeW91XCA7CivlgaXlurfnvo4gPCBrZW5rb3ViaVwgOwor5Lih6K2w6ZmiIDwgcnlvdWdpaW5cIDsKK+aEm+WUseatjCA8IGFpc2hvdWthXCA7CivkuozmnKzmo5IgPCBuaWhvbmJvdVwgOwor6by7562LIDwgaGFuYXN1amlcIDsKK+ayiOm7mSA8IGNoaW5tb2t1XCA7CivpnZLnianlsYsgPCBhb21vbm95YVwgOwor6YeR6auqIDwga2lucGF0c3VcIDsKK+S7ruWumuW9oiA8IGthdGVpa2VpXCA7CivpiYjosYYgPCBuYXRhbWFtZVwgOwor56Ov6be4IDwgaXNvc2hpZ2lcIDsKK+a6neW3nSA8IGRvYnVnYXdhXCA7Civoh6rli5XoqZ4gPCBqaWRvdXNoaVwgOwor5L6/5a6c5LiKIDwgYmVuZ2lqb3VcIDsKK+eUsOiIjumiqCA8IGluYWthZnV1XCA7CivpjbXmnZ8gPCBrYWdpdGFiYVwgOwor56We6YCfIDwgc2hpbnNva3VcIDsKK+acneW+oemjryA8IGFzYWdvaGFuXCA7Civpu5Lom4cgPCBrdXJvaGViaVwgOwor5oyH5o+u5qipIDwgc2hpa2lrZW5cIDsKK+ioreioiOWbsyA8IHNla2tlaXp1XCA7CivmuoDmgqYgPCBtYW4nJ2V0c3VcIDsKK+aIkeaIkSA8IHdhcmV3YXJlXCA7Civpg6jlpJbogIUgPCBidWdhaXNoYVwgOwor5riF5r2UIDwgc2Vpa2V0c3VcIDsKK+iRrOWEgOWgtCA8IHNvdWdpam91XCA7Civno4HmgKfkvZMgPCBqaXNlaXRhaVwgOwor6YqA5pys5L2NIDwgZ2luaG9uJydpXCA7CivnrYblkI0gPCBoaXRzdW1laVwgOwor5pS/5YWa5ZOhIDwgc2VpdG91aW5cIDsKK+WvvuW/nOWApCA8IHRhaW91Y2hpXCA7Civou43oiabml5cgPCBndW5rYW5raVwgOwor5LqM5LmX5qC5IDwgbmlqb3Vrb25cIDsKK+eorueVnCA8IHNodWNoaWt1XCA7CivmjIfmj67mo5IgPCBzaGlraWJvdVwgOwor5q+N5Zu96KqeIDwgYm9rb2t1Z29cIDsKK+eUu+eUqOe0mSA8IGdheW91c2hpXCA7CivpioXoibIgPCBkb3VzaG9rdVwgOwor5qSc5rip5ZmoIDwga2VuJydvbmtpXCA7Civlj43pqqggPCBoYW5rb3RzdVwgOwor5ZWG5rOBIDwgc2hvdWt5b3VcIDsKK+mnhua9nOiJhyA8IGt1c2VudGVpXCA7CivloJXog47nvaogPCBkYXRhaXphaVwgOwor5rm/5bqmIDwgc2hpdHN1ZG9cIDsKK+ejgeawl+WtpiA8IGppa2lnYWt1XCA7Civon4TkvI8gPCBjaGlwcHVrdVwgOwor5rWF6JGxIDwgYXNhdHN1a2lcIDsKK+aHkOeCieeBsCA8IGthaXJvYmFpXCA7CivopoHms6jmhI8gPCB5b3VjaHV1aVwgOwor5Yid55Sf5YWQIDwgc2hvc2VpamlcIDsKK+aIkuW+iyA8IGthaXJpdHN1XCA7CivkuI3prq7mmI4gPCBmdXNlbm1laVwgOwor56u65a2mIDwgamlrdWdha3VcIDsKK+Wkqem1nue1qCA8IGJpcm91ZG91XCA7CivlkLnosqsgPCBmdWtpbnVraVwgOwor56y55Y6fIDwgc2FzYWhhcmFcIDsKK+eqk+aeoCA8IG1hZG93YWt1XCA7CivllJDniakgPCB0b3Vtb3RzdVwgOwor6KO957OW5omAIDwgc2VpdG91am9cIDsKK+err+WxgCA8IHRhbmt5b2t1XCA7Civmip7kuIAgPCB0YWt1aXRzdVwgOwor5YWI6aeG6ICFIDwgc2Vua3VzaGFcIDsKK+WKqeaIkOmHkSA8IGpvc2Vpa2luXCA7CivmuKHmnaXkurogPCB0b3JhaWppblwgOwor562G5YWIIDwgZnVkZXNha2lcIDsKK+mAn+iomOiAhSA8IHNva2tpc2hhXCA7Civpiq3nrrEgPCB6ZW5pYmFrb1wgOwor6Yyo5rOKIDwgYnlvdWhha3VcIDsKK+iJpui8ieapnyA8IGthbnNhaWtpXCA7Civmt7fmtbQgPCBrb24nJ3lva3VcIDsKK+a3sea3sSA8IGZ1a2FidWthXCA7Civol6rom4cgPCB5YWJ1aGViaVwgOwor6KO957KJ5qmfIDwgc2VpZnVua2lcIDsKK+S5seWxpOmbsiA8IHJhbnNvdXVuXCA7Civlj4LkuovkvJogPCBzYW5qaWthaVwgOwor56iu54mpIDwgdGFuZW1vbm9cIDsKK+eorueJmyA8IHRhbmV1c2hpXCA7Civom4fmr5IgPCBoZWJpZG9rdVwgOwor5oiM5bm0IDwgaW51ZG9zaGlcIDsKK+mBleazleihjOeCuiA8IGlob3Vrb3VpXCA7CivmjpLmsJflvIEgPCBoYWlraWJlblwgOwor5ruR5YmkIDwga2F0c3V6YWlcIDsKK+m7kuiIuSA8IGt1cm9mdW5lXCA7CivmraPntbHmtL4gPCBzZWl0b3VoYVwgOwor6YqA57+8IDwgZ2luJyd5b2t1XCA7Civms6XotrMgPCBkb3JvYXNoaVwgOwor6KOc5L2Q5b25IDwgaG9zYXlha3VcIDsKK+mOjOW9oiA8IGthbWFnYXRhXCA7CivmnKrphY3lvZMgPCBtaWhhaXRvdVwgOwor5ruF5Y20IDwgbWVra3lha3VcIDsKK+aYr+mdnuWFsSA8IHplaGl0b21vXCA7Civph6Ppiq0gPCB0c3VyaXNlblwgOwor5pyq5YiK6KGMIDwgbWlrYW5rb3VcIDsKK+aeouapn+WNvyA8IHN1dWtpa2VpXCA7CivmnKrpgYLnvaogPCBtaXN1aXphaVwgOwor5paH5YyW6LKhIDwgYnVua2F6YWlcIDsKK+atpuijheiIuSA8IGJ1c291c2VuXCA7CivoqJjogIXlm6MgPCBraXNoYWRhblwgOwor5ZWG5qWtIDwgc2hvdWd5b3VcIDsKK+W+oeeUqOmCuCA8IGdveW91dGVpXCA7CivlvqHlhYjmo5IgPCBvc2FraWJvdVwgOwor6Ymx6ISIIDwga291bXlha3VcIDsKK+iaiueHuyA8IGthaWJ1c2hpXCA7CivlkIPpgIYgPCBzaGFra3VyaVwgOwor6bq56I+MIDwga291amlraW5cIDsKK+WumuavlOS+iyA8IHRlaWhpcmVpXCA7Civlkb3ohIggPCBtZWlteWFrdVwgOwor5a+M5aOr5bedIDwgZnVqaWthd2FcIDsKK+m7kuiCiSA8IGt1cm9uaWt1XCA7Civpuqbol4EgPCBtdWdpd2FyYVwgOwor55Sj5Y215pyfIDwgc2FucmFua2lcIDsKK+erueWeoyA8IHRha2VnYWtpXCA7CivliIbnm7jmqZ8gPCBidW5zb3VraVwgOwor6Y2b5o6lIDwgdGFuc2V0c3VcIDsKK+mHnemHkSA8IGhhcmlnYW5lXCA7CivkvJrmhI/mloflrZcgPCBrYWlpbW9qaVwgOwor6YqA57iBIDwgZ2luYnVjaGlcIDsKK+S4iuWxpOmbsiA8IGpvdXNvdXVuXCA7Civph5HpjIYgPCBrYW5hc2FiaVwgOwor56iO546HIDwgemVpcml0c3VcIDsKK+eri+WxsSA8IHRhdGV5YW1hXCA7CivkuInmrKHlhYMgPCBzYW5qaWdlblwgOwor576k6aas55yMIDwgZ3VubWFrZW5cIDsKK+m6puiSlCA8IG11Z2ltYWtpXCA7Civlj6Tph5EgPCBmdXJ1Z2FuZVwgOwor5ZWE5pyoIDwgdGFrdWJva3VcIDsKK+WPo+mHjSA8IGt1Y2hpb21vXCA7CivlhbXnq5npg6ggPCBoZWl0YW5idVwgOwor5LiN5YWs5bmzIDwgZnVrb3VoZWlcIDsKK+a4h+acmyA8IGthdHN1Ym91XCA7CivmiY3lipsgPCBzYWlyeW9rdVwgOwor5Y+k6YWSIDwgZnVydXpha2VcIDsKK+WJjem8u+e3kiA8IG1hZWhhbmFvXCA7CivkuI3lh43liaQgPCBmdXRvdXphaVwgOwor6by754aKIDwgaGFuYWd1bWFcIDsKK+mMq+adliA8IHNoYWt1am91XCA7Civnqbrmkq4gPCBrdXVzYXRzdVwgOwor6buZ57SEIDwgbW9rdXlha3VcIDsKK+eJqeecn+S8vCA8IG1vbm9tYW5lXCA7CivpgYrmranpgZMgPCB5dXVob2RvdVwgOwor56S+6KqsIDwgc2hhc2V0c3VcIDsKK+a1hee3kSA8IHNlbnJ5b2t1XCA7CivmiYvliIAgPCB0ZWdhdGFuYVwgOwor5ZCI57iB5aWH57iBIDwgYWllbmtpZW5cIDsKK+eEoeWItumZkCA8IG11c2VpZ2VuXCA7CivnqY3mpbUgPCBzZWtreW9rdVwgOwor5omT5YK3IDwgdWNoaWtpenVcIDsKK+mJhOiJsiA8IHRldHN1aXJvXCA7CivkvZPogrLlrrYgPCB0YWlpa3VrYVwgOwor5YiG5bKQ6aeFIDwgYnVua2lla2lcIDsKK+emj+iAsyA8IGZ1a3VtaW1pXCA7Civmu4XkuqEgPCBtZXRzdWJvdVwgOwor5Yy755mC55SoIDwgaXJ5b3V5b3VcIDsKK+aFhOeEtiA8IHJpdHN1emVuXCA7CivlkIzoqqwgPCBkb3VzZXRzdVwgOwor56qS5oGvIDwgY2hpc3Nva3VcIDsKK+WPs+i2syA8IG1pZ2lhc2hpXCA7CivpgK7mjZXnirYgPCB0YWlob2pvdVwgOwor5rKW6YejIDwgb2tpZHp1cmlcIDsKK+mBjuWOu+W4syA8IGtha29jaG91XCA7Civpu5LnsbMgPCBrdXJvZ29tZVwgOwor5qmf5YuV5oCnIDwga2lkb3VzZWlcIDsKK+mJhOiFlSA8IHRldHN1d2FuXCA7Civlj5vpgIYgPCBoYW5neWFrdVwgOwor54ax6aKo54KJIDwgbmVwcHV1cm9cIDsKK+atqeihjOiAhSA8IGhva291c2hhXCA7Civpu57nqbQgPCB0ZW5rZXRzdVwgOwor5rC06bOlIDwgbWl6dWRvcmlcIDsKK+a6gOWWqyA8IG1hbmtpdHN1XCA7CivlhobpjJDlvaIgPCBlbnN1aWtlaVwgOwor5oiR5Zu9IDwgd2FnYWt1bmlcIDsKK+WuiOmKreWltCA8IHNodXNlbmRvXCA7CivpgZPljJbluKsgPCBkb3VrZXNoaVwgOwor5oKq6IiMIDwgYWt1emV0c3VcIDsKK+iZjueMqyA8IHRvcmFuZWtvXCA7CivkuIvohbnpg6ggPCBrYWZ1a3VidVwgOwor5Y+N5pS/5bqcIDwgaGFuc2VpZnVcIDsKK+Wbnui7ouWEgCA8IGthaXRlbmdpXCA7CivkuIrojYnlsaUgPCB1d2F6b3VyaVwgOwor57Gz5LiK6ZmiIDwgYmVpam91aW5cIDsKK+a0kuiEsSA8IHNoYWRhdHN1XCA7CivpurvntrEgPCBhc2FkenVuYVwgOwor6buQ56u/IDwgbW9jaGl6YW9cIDsKK+acneeoveWPpCA8IGFzYWdlaWtvXCA7CivlkKvok4QgPCBnYW5jaGlrdVwgOwor6KO957KJ5omAIDwgc2VpZnVuam9cIDsKK+iiq+ayu+iAhSA8IGhpY2hpc2hhXCA7Civlj4LphYwgPCBzYW5zaGFrdVwgOwor5a6u55Sw5a62IDwgbWl5YXRha2VcIDsKK+i/keihm+WFtSA8IGtvbm9laGVpXCA7CivlsqnmiYvnnIwgPCBpd2F0ZWtlblwgOwor6YCj6ZqK5peXIDwgcmVudGFpa2lcIDsKK+euoealveWZqCA8IGthbmdha2tpXCA7CivorJ3mgankvJogPCBzaGFvbmthaVwgOwor6aSK6JyC5a62IDwgeW91aG91a2FcIDsKK+S6lOe3mue0mSA8IGdvc2Vuc2hpXCA7CivlkITooYwgPCBrYWt1Z3lvdVwgOwor6Y2L5bqVIDwgbmFiZXpva29cIDsKK+W5s+eUn+edgCA8IGhlaXplaWdpXCA7CivmqZ/luIboiLkgPCBraWhhbnNlblwgOwor5oKq6ICFIDwgd2FydW1vbm9cIDsKK+m8u+awtCA8IGhhbmFtaXp1XCA7CivpnZ7mjpLmsLQgPCBoaWhhaXN1aVwgOwor552A55Wq5Y+3IDwga2liYW5nb3VcIDsKK+S4jeWAq+e9qiA8IGZ1cmluemFpXCA7Civpo7TntLDlt6UgPCBhbWV6YWlrdVwgOwor5YG95Ly855eHIDwgZ2lqaXNob3VcIDsKK+Wkp+W6g+mWkyA8IG9vaGlyb21hXCA7Civpgb/pm6PogIUgPCBoaW5hbnNoYVwgOwor5a6a5bi45rOiIDwgdGVpam91aGFcIDsKK+S7mOWxnuiqniA8IGZ1em9rdWdvXCA7CivmgrbntbYgPCBtb256ZXRzdVwgOwor5bm05Lya6LK7IDwgbmVua2FpaGlcIDsKK+aVheiyt+iAhSA8IGtvYmFpc2hhXCA7CivkupTlpKfmtIsgPCBnb2RhaXlvdVwgOwor56uL5ZG9IDwgcml0c3VtZWlcIDsKK+ePquiXu+WcnyA8IGtlaXNvdWRvXCA7CivljrPpgZQgPCBnZW50YXRzdVwgOwor5Lq65ZCN57C/IDwgamlubWVpYm9cIDsKK+aOkuawl+WPoyA8IGhhaWtpa291XCA7Civpgb/lporms5UgPCBoaW5pbmhvdVwgOwor54m55L6h5ZOBIDwgdG9ra2FoaW5cIDsKK+mHjeiqrCA8IGp1dXNldHN1XCA7Civmj5rmipfmr5QgPCB5b3Vrb3VoaVwgOwor6Y2L5bC7IDwgbmFiZWppcmlcIDsKK+i+nuabuOmhniA8IGppc2hvcnVpXCA7CivlpKflvoDnlJ8gPCBkYWlvdWpvdVwgOwor6L+96LW36Ki0IDwgdHN1aWtpc29cIDsKK+awt+mchyA8IGh5b3VzaGluXCA7CivpgY7ljYrmlbAgPCBrYWhhbnN1dVwgOwor6YmE562GIDwgdGVwcGl0c3VcIDsKK+WuieaBr+aXpSA8IGFuc29rdWJpXCA7Civlho3mta7kuIogPCBzYWlmdWpvdVwgOwor5rS755y8IDwga2F0c3VnYW5cIDsKK+Wbs+abuOWIuCA8IHRvc2hva2VuXCA7CivnmbrotbfkurogPCBob2traW5pblwgOwor5rSe56qfIDwgZG91a3V0c3VcIDsKK+mBk+WFt+irliA8IGRvdWd1cm9uXCA7CivliIbnm7jlv5wgPCBidW5zb3VvdVwgOwor5oiR5YSYIDwgd2FnYW1hbWFcIDsKK+eri+WAmeijnCA8IHJpa2tvdWhvXCA7Civpgb/mmpHlnLAgPCBoaXNob2NoaVwgOwor5rC06ZqbIDwgbWl6dWdpd2FcIDsKK+aOpemqqOacqCA8IG5pd2F0b2tvXCA7CivnpL7kvJrnp5EgPCBzaGFrYWlrYVwgOwor6YeN6KSHIDwgY2hvdWZ1a3VcIDsKK+a0u+eZuiA8IGthcHBhdHN1XCA7CivkuIrmqZ/lq4wgPCBqb3VraWdlblwgOwor5Lqk5o+b5omAIDwga291a2Fuam9cIDsKK+WWnOatjOWKhyA8IGtpa2FnZWtpXCA7Civmt7vliqDliaQgPCB0ZW5rYXphaVwgOwor5pyq5b6p5ZOhIDwgbWlmdWt1aW5cIDsKK+a2iOayiCA8IHNob3VjaGluXCA7CivorJnpgZzoqp4gPCBrZW5zb25nb1wgOwor5pyq5Yem572uIDwgbWlzaG9jaGlcIDsKK+aCquethiA8IGFrdWhpdHN1XCA7CivlnLDlvaLlm7MgPCBjaGlrZWl6dVwgOwor5pyq55+l5pWwIDwgbWljaGlzdXVcIDsKK+ehrOmqqCA8IGtvdWtvdHN1XCA7Civlhavmva7ot68gPCB5YXNoaW9qaVwgOwor5rKi6KCPIDwgc2F3YWdhbmlcIDsKK+S7o+eQhuiAhSA8IGRhaXJpc2hhXCA7Civmhqvlr58gPCBiaW5zYXRzdVwgOwor6bqX562GIDwgcmVpaGl0c3VcIDsKK+iXgee0mSA8IHdhcmFnYW1pXCA7Civou43ku6Tpg6ggPCBndW5yZWlidVwgOwor56uL5YOPIDwgcml0c3V6b3VcIDsKK+aoquaWh+WtlyA8IHlva29tb2ppXCA7CivmtLvnlKggPCBrYXRzdXlvdVwgOwor5raI5q+SIDwgc2hvdWRva3VcIDsKK+WkquWPpOS7oyA8IHRhaWtvZGFpXCA7CivmiJHkurogPCB3YXJlaGl0b1wgOwor6Y2L5aKoIDwgbmFiZXp1bWlcIDsKK+m7kueMqyA8IGt1cm9uZWtvXCA7CivmiJHkuosgPCB3YWdha290b1wgOwor5bm+5L2V5a2mIDwga2lrYWdha3VcIDsKK+ilv+a0i+WMliA8IHNlaXlvdWthXCA7CivliJHkvZnogIUgPCBrZWl5b3NoYVwgOwor5rih5LiW5Lq6IDwgdG9zZWluaW5cIDsKK+WQjOiDniA8IGhhcmFrYXJhXCA7CivnvoXph53lhIAgPCByYXNoaW5naVwgOwor5a2Q6Z+z576kIDwgc2hpaW5ndW5cIDsKK+aal+iovOWMliA8IGFuc2hvdWthXCA7Civmu5HotbDot68gPCBrYXNzb3Vyb1wgOwor6KO95Zuz5p2/IDwgc2VpenViYW5cIDsKK+eah+e1seitnCA8IGtvdXRvdWZ1XCA7CivnkIblrabpg6ggPCByaWdha3VidVwgOwor56m65aSiIDwgc29yYXl1bWVcIDsKK+azpee4hCA8IGRvcm9uYXdhXCA7Civoi7Hoqp7lob4gPCBlaWdvanVrdVwgOwor6YWL6ZW3IDwgc2h1dWNob3VcIDsKK+aCsuWWnOWKhyA8IGhpa2lnZWtpXCA7Civkv53nrqHmnpcgPCBob2thbnJpblwgOwor5Y2K6Z20IDwgaGFuZ3V0c3VcIDsKK+aCtuedgCA8IG1vbmNoYWt1XCA7Civlho3mraboo4UgPCBzYWlidXNvdVwgOwor6buS54aKIDwga3Vyb2d1bWFcIDsKK+iSsumtmiA8IGthbWF0b3RvXCA7CivllonlhYMgPCBub2RvbW90b1wgOwor56m65aCAIDwga2FyYWJvcmlcIDsKK+i1pOicu+ibiSA8IGFrYXRvbmJvXCA7CivoloTohpwgPCBoYWt1bWFrdVwgOwor56qv5YWDIDwga2FtYW1vdG9cIDsKK+a4m+WcpyA8IGdlbicnYXRzdVwgOwor54Sh6L666ZqbIDwgbXVoZW56YWlcIDsKK+S4jeiHqueEtiA8IGZ1c2hpemVuXCA7CivohY7kuI3lhaggPCBqaW5mdXplblwgOwor56ia5ouZIDwgY2hpc2V0c3VcIDsKK+elkOethiA8IHl1dWhpdHN1XCA7CivlrrTkvJrloLQgPCBlbmthaWpvdVwgOwor5Y+k6I2JIDwgZnVydWt1c2FcIDsKK+S4jeS/oeiAhSA8IGZ1c2hpbmphXCA7Civlj6PojZIgPCBrdWNoaWFyYVwgOwor5Y2Y5pys5L2NIDwgdGFuaG9uJydpXCA7CivlhobpjJDlj7AgPCBlbnN1aWRhaVwgOwor56Wd56WtIDwgc2h1a3VzYWlcIDsKK+WboOaenOiAhSA8IGluZ2Ftb25vXCA7CivkuI3kv6HnvqkgPCBmdXNoaW5naVwgOwor5Y2K6ZW3IDwgaGFuJyduYWdhXCA7CivpiYTnk7YgPCB0ZXRzdWJpblwgOwor5rC06YOoIDwgbWl6dW5vYnVcIDsKK+i7jeS6i+mdoiA8IGd1bmppbWVuXCA7CivmgZLmsrPmspkgPCBnb3VnYXNoYVwgOwor5oKq55mWIDwgd2FydWd1c2VcIDsKK+m7kua9riA8IGt1cm9zaGlvXCA7Civok4Tpm7sgPCBjaGlrdWRlblwgOwor5q+N6bOlIDwgaGFoYWRvcmlcIDsKK+iHquayu+S9kyA8IGppY2hpdGFpXCA7CivnnYDlsLrlnLAgPCBraWpha3VqaVwgOwor5b6M5Y2K5pyfIDwga291aGFua2lcIDsKK+WPo+iIjCA8IGtvdXpldHN1XCA7CivnpZ3noLIgPCBzaHVrdWhvdVwgOwor5q+b6auqIDwgbW91aGF0c3VcIDsKK+iHquayu+S8miA8IGppY2hpa2FpXCA7CivkvqHlgKToprMgPCBrYWNoaWthblwgOwor6KW/6YGK6KiYIDwgc2VpeXV1a2lcIDsKK+ebo+afu+WnlOWToSA8IGthbnNhaWluXCA7CivnpLznr4AgPCByZWlzZXRzdVwgOwor5bm05Luj6KiYIDwgbmVuZGFpa2lcIDsKK+aEn+aDheWutiA8IGthbmpvdWthXCA7CivmlofljJbnpa0gPCBidW5rYXNhaVwgOwor5Y+K6JC9IDwga3l1dXJha3VcIDsKK+mKg+auuiA8IGp1dXNhdHN1XCA7CivlpInmj5vlmaggPCBoZW5rYW5raVwgOwor5oOF54axIDwgam91bmV0c3VcIDsKK+S4lueVjOWPsiA8IHNla2Fpc2hpXCA7Civlj5fnsr7ljbUgPCBqdXNlaXJhblwgOwor6YeR6ISIIDwga2lubXlha3VcIDsKK+WPquiAhSA8IHRhZGFtb25vXCA7Civmh4fliIcgPCBrb25zZXRzdVwgOwor56aB54mpIDwga2lubW90c3VcIDsKK+W5tOeUsuaWkCA8IHRvc2hpZ2FpXCA7CivomZDmlL8gPCBneWFrdXNlaVwgOwor5ZCN562GIDwgbWVpaGl0c3VcIDsKK+eiuuiovCA8IGtha3VzaG91XCA7CivlkIznrYYgPCBkb3VoaXRzdVwgOwor6YWN6YGUIDwgaGFpdGF0c3VcIDsKK+azpeS7leWQiCA8IGRvcm9qaWFpXCA7CivmuIXlrZDpn7MgPCBzZWlzaGlpblwgOwor5LqM5pyf5L2cIDwgbmlraXNha3VcIDsKK+mLuOWxkSA8IG5va29rdXp1XCA7CivmqKrntIvnrYsgPCBvdW1vbmtpblwgOwor5reA5bedIDwgeW9kb2dhd2FcIDsKK+mBi+WLleeVjCA8IHVuZG91a2FpXCA7Civmg5HmurogPCB3YWt1ZGVraVwgOwor5pyq55m66KaLIDwgbWloYWtrZW5cIDsKK+a1heaykyA8IGFzYWd1dHN1XCA7CivlkIznqbQgPCBkb3VrZXRzdVwgOwor5YG25YOP5YyWIDwgZ3V1em91a2FcIDsKK+ijnOiBtOWZqCA8IGhvY2hvdWtpXCA7Civoi7Hoqp7liocgPCBlaWdvZ2VraVwgOwor6Yej57O4IDwgdHN1cmlpdG9cIDsKK+mbu+eul+apnyA8IGRlbnNhbmtpXCA7CivmtJfnhoogPCBhcmFpZ3VtYVwgOwor5YaN5ZCf5ZGzIDwgc2FpZ2lubWlcIDsKK+mHjee9sCA8IGp1dWJhdHN1XCA7CivlhobpjJDkvZMgPCBlbnN1aXRhaVwgOwor5rWB5rC3IDwgcnl1dWh5b3VcIDsKK+azqOebriA8IGNodXVtb2t1XCA7CivpnZLlpKnkupUgPCBhb3RlbmpvdVwgOwor5Y+M6ISaIDwgc291a3lha3VcIDsKK+a1quabsiA8IHJvdWt5b2t1XCA7CivpnZ7miKboq5YgPCBoaXNlbnJvblwgOwor5pyq55m66KGMIDwgbWloYWtrb3VcIDsKK+ebuOWgtOW4qyA8IHNvdWJhc2hpXCA7Civlj6TmiKbloLQgPCBrb3NlbmpvdVwgOwor5LiJ55Wz57SAIDwgc2Fuam91a2lcIDsKK+WlveaEj+eahCA8IGtvdWl0ZWtpXCA7CivlvqHpprPotbAgPCBnb2NoaXNvdVwgOwor6YeR57iBIDwga2luYnVjaGlcIDsKK+WNiumBkyA8IGhhbm1pY2hpXCA7CivljJfpmbggPCBob2t1cmlrdVwgOwor5om26aSK6ICFIDwgZnV5b3VzaGFcIDsKK+WNgeWtl+i7jSA8IGp1dWppZ3VuXCA7CivmjInmiYvnpLwgPCBhbnNodXJlaVwgOwor5ZCM5L2N6KeSIDwgZG91aWtha3VcIDsKK+WOn+iWrCA8IGdlbicneWFrdVwgOwor5Y2z6Ku+IDwgc29rdWRha3VcIDsKK+a0u+auuiA8IGthc3NhdHN1XCA7CivlkajmtYEgPCBzaHV1cnl1dVwgOwor6Lyq6Lui5qmfIDwgcmludGVua2lcIDsKK+eosuWmuyA8IGluYWR6dW1hXCA7Civljq3kurrogIUgPCBlbmppbnNoYVwgOwor54Sh6YWN5b2TIDwgbXVoYWl0b3VcIDsKK+WUkOWiqCA8IGthcmFzdW1pXCA7Civlr4zoo5XnqI4gPCBmdXl1dXplaVwgOwor55Ww5Y+j5ZCM6Z+zIDwgaWt1ZG91b25cIDsKK+mHo+ervyA8IHRzdXJpemFvXCA7CivpgY7lirTmrbsgPCBrYXJvdXNoaVwgOwor57SF6KGb5YW1IDwga291ZWloZWlcIDsKK+mHneeusSA8IGhhcmliYWtvXCA7CivnrqHnkIbogIUgPCBrYW5yaXNoYVwgOwor5aSc5ZWG5Lq6IDwgeW9ha2luZG9cIDsKK+iIjOS4i+iFuiA8IHpla2thc2VuXCA7CivmiYDmjIHlk4EgPCBzaG9qaWhpblwgOwor57SA6KGM5paHIDwga2lrb3VidW5cIDsKK+eBq+WxseeBsCA8IGthemFuYmFpXCA7CivpqI7lo6vpgZMgPCBraXNoaWRvdVwgOwor5Ymw5L2Z6YeRIDwgam91eW9raW5cIDsKK+WNk+i2iiA8IHRha3VldHN1XCA7CivosYrmsLTmnJ8gPCBob3VzdWlraVwgOwor5L2O6IO95YWQIDwgdGVpbm91amlcIDsKK+W4sOe0jeazlSA8IGtpbm91aG91XCA7CivnjYXlrZDluqcgPCBzaGlzaGl6YVwgOwor5Lqk5o+b5ZmoIDwga291a2Fua2lcIDsKK+S4lueVjOS6uiA8IHNla2FpamluXCA7CivooZvnlJ/pmoogPCBlaXNlaXRhaVwgOwor5Y+W57WEIDwgdG9yaWt1bWlcIDsKK+iSsumJviA8IGthbWFib2tvXCA7CivmtbfmipwgPCBrYWliYXRzdVwgOwor6YeR566xIDwga2FuZWJha29cIDsKK+eQhuS6i+mVtyA8IHJpamljaG91XCA7CivlubPlsYvmoLkgPCBoaXJheWFuZVwgOwor5raI5oGvIDwgc2hvdXNva3VcIDsKK+WFg+iAgemZoiA8IGdlbnJvdWluXCA7Civmo4TmqKnogIUgPCBraWtlbnNoYVwgOwor5LiW55WM5LitIDwgc2VrYWlqdXVcIDsKK+ays+WPo+a4ryA8IGtha291a291XCA7Civlj6PnrJsgPCBrdWNoaWJ1ZVwgOwor5Y6f6Iy4IDwgaGFyYXRha2VcIDsKK+m0m+m0piA8IG9zaGlkb3JpXCA7CivolqznjokgPCBrdXN1ZGFtYVwgOwor5LiN5L2T6KOBIDwgZnV0ZWlzYWlcIDsKK+iZkOW+hSA8IGd5YWt1dGFpXCA7Civmr5LonJjom5sgPCBkb2t1Z3Vtb1wgOwor5Y2Y6Kqe56+HIDwgdGFuZ29oZW5cIDsKK+m7kuaeoCA8IGt1cm93YWt1XCA7Civph5HnqbQgPCBraW5rZXRzdVwgOwor55Sf5b6S5pWwIDwgc2VpdG9zdXVcIDsKK+m7kuacjSA8IGt1cm9mdWt1XCA7Civnvornmq7ntJkgPCB5b3VoaXNoaVwgOwor5Yud6aasIDwga2FjaGl1bWFcIDsKK+egtOmQmCA8IHdhcmVnYW5lXCA7Civlv4XopoEgPCBoaXRzdXlvdVwgOwor5re35YWlIDwga29uJydueXV1XCA7Civmr43ns7vliLYgPCBib2tlaXNlaVwgOwor5bGV56S65aC0IDwgdGVuamlqb3VcIDsKK+W/jeihkyA8IG5pbmp1dHN1XCA7CivljrPnvbAgPCBnZW5iYXRzdVwgOwor5b6M6YG655eHIDwga291aXNob3VcIDsKK+a1geacqCA8IHJ5dXVib2t1XCA7CivpiI3niakgPCBkb25idXRzdVwgOwor5byV54Gr5rip5bqmIDwgaW5rYW9uZG9cIDsKK+WPuOebtCA8IHNoaWNob2t1XCA7CivnpoHmrLIgPCBraW4nJ3lva3VcIDsKK+a4h+S7sCA8IGthdHN1Z291XCA7Civnp6nluo8gPCBjaGl0c3Vqb1wgOwor5Y2S6KuWIDwgc290c3Vyb25cIDsKK+S4jeWumuipniA8IGZ1dGVpc2hpXCA7CivmsLTonJwgPCBzdWltaXRzdVwgOwor5Yqg5ouF6ICFIDwga2F0YW5zaGFcIDsKK+efs+mrmCA8IGtva3VkYWthXCA7Civpmb3pm7vmsJcgPCB5b3VkZW5raVwgOwor5ZG95pelIDwgbWVpbmljaGlcIDsKK+W+qeiukCA8IGZ1a3VzaHV1XCA7CivlrqPkvJ3osrsgPCBzZW5kZW5oaVwgOwor5ZCM546HIDwgZG91cml0c3VcIDsKK+aDnOaYpSA8IHNla2lzaHVuXCA7CivliofmmKDnlLsgPCBnZWtpZWlnYVwgOwor56S854mpIDwgcmVpbW90c3VcIDsKK+efremrqiA8IHRhbnBhdHN1XCA7CivomZrlrp8gPCBreW9qaXRzdVwgOwor5oGL552AIDwgcmVuY2hha3VcIDsKK+mYv+WPpOWxi+iynSA8IGFrb3lhZ2FpXCA7CivpgYrolanlhZAgPCB5dXV0b3VqaVwgOwor5b6p6Kq/IDwgZnVrdWNob3VcIDsKK+mHkea6gOWutiA8IGtpbm1hbmthXCA7CivpjKDliY3lsYsgPCBqb3VtYWV5YVwgOwor55+l5ZCN5bqmIDwgY2hpbWVpZG9cIDsKK+WQjeeJqSA8IG1laWJ1dHN1XCA7CivljJfpgLIgPCBob2t1c2hpblwgOwor5Ye66bGI55uuIDwgZGV0YXJhbWVcIDsKK+m7hOaYjyA8IHRhc29nYXJlXCA7Civmh4foqbHkvJogPCBrb253YWthaVwgOwor6YG/6Zuj5rCRIDwgaGluYW5taW5cIDsKK+WPsueVpSA8IHNoaXJ5YWt1XCA7CivljYHlrZfooZcgPCBqdXVqaWdhaVwgOwor5Li75ryU6ICFIDwgc2h1ZW5zaGFcIDsKK+azpea/mCA8IG51a2FydW1pXCA7Civol6Tmo5ogPCBmdWppZGFuYVwgOwor5LiW5L+X5YyWIDwgc2V6b2t1a2FcIDsKK+eyl+ijveWTgSA8IHNvc2VpaGluXCA7CivljrPnspsgPCBnZW5zaHVrdVwgOwor6YmE5qOSIDwgdGV0c3Vib3VcIDsKK+mzqem6piA8IGhhdG9tdWdpXCA7Civlj7Plv4PmiL8gPCB1c2hpbmJvdVwgOwor5Zyn5Yi26ICFIDwgYXNzZWlzaGFcIDsKK+WxleekuuWTgSA8IHRlbmppaGluXCA7CivpiYTmooMgPCBrYW5hdGVrb1wgOwor6JC96a2EIDwgcmFrdWhha3VcIDsKK+mHj+eahCA8IHJ5b3V0ZWtpXCA7Civlv6Doia8gPCBjaHV1cnlvdVwgOwor5pu46KiY5a6YIDwgc2hva2lrYW5cIDsKK+mDt+Wcn+aEmyA8IGt5b3Vkb2FpXCA7Civosq/olLXluqsgPCBjaG96b3Vrb1wgOwor6Jep5pytIDwgaGFuc2F0c3VcIDsKK+eUn+ecn+mdouebriA8IGtpbWFqaW1lXCA7CivkuIvppqzoqZUgPCBnZWJhaHlvdVwgOwor5LiN6IO96ICFIDwgZnVub3VzaGFcIDsKK+WLhemhmCA8IGNob2t1Z2FuXCA7CivphZLolLUgPCBzYWthZ3VyYVwgOwor5YuF6aGMIDwgY2hva3VkYWlcIDsKK+S4jeiJr+WMliA8IGZ1cnlvdWthXCA7CivoloTojbfns5YgPCBoYWtrYXRvdVwgOwor6JaE6I2357K+IDwgaGFra2FzZWlcIDsKK+W8semchyA8IGpha3VzaGluXCA7Civmr5TllqnnmoQgPCBoaXl1dGVraVwgOwor56aB5pytIDwga2luc2F0c3VcIDsKK+S6ieitsOaoqSA8IHNvdWdpa2VuXCA7Civph43npoHpjK4gPCBqdXVraW5rb1wgOwor6YGL5YuV5qyEIDwgdW5kb3VyYW5cIDsKK+eoruWIpSA8IHNodWJldHN1XCA7Civpu5LmiL8gPCBrdXJvYnVzYVwgOwor6L6y57mB5pyfIDwgbm91aGFua2lcIDsKK+aCpualvSA8IGV0c3VyYWt1XCA7CivmsLTojYkgPCBtaXp1a3VzYVwgOwor5oSb5a2QIDwgaXRvc2hpZ29cIDsKK+mJhOadkCA8IHRldHN1emFpXCA7CivlvKbpn7MgPCB0c3VydW90b1wgOwor5ZSQ5YKYIDwga2FyYWthc2FcIDsKK+aEn+WPl+aApyA8IGthbmp1c2VpXCA7CivpuqbmnZ8gPCBtdWdpdGFiYVwgOwor5YW15Zmo5belIDwgaGVpa2lrb3VcIDsKK+WAqumbsuaelyA8IGdlaXVucmluXCA7CivmsLTojI4gPCBtaXp1Z3VraVwgOwor6YGL6YCB6Ii5IDwgdW5zb3VzZW5cIDsKK+aGguS6iyA8IHVyZWlnb3RvXCA7Civnn63pnbQgPCB0YW5ndXRzdVwgOwor5rC06IuUIDwgbWl6dWdva2VcIDsKK+mBiuWGtumDjiA8IHl1dXlhcm91XCA7CivnlLvku5nntJkgPCBnYXNlbnNoaVwgOwor5rSL5qKoIDwgeW91bmFzaGlcIDsKK+WkmuautemajiA8IHRhZGFua2FpXCA7CivoqabpqJPmqZ8gPCBzaGlrZW5raVwgOwor5LiA6Iis6KuWIDwgaXBwYW5yb25cIDsKK+WKoOeul+eojiA8IGthc2FuemVpXCA7Civmrovpm6ogPCB6YW5zZXRzdVwgOwor5Y6a57SZIDwgYXRzdWdhbWlcIDsKK+a1tOWuoiA8IHlva2t5YWt1XCA7CivliIblspDnt5ogPCBidW5raXNlblwgOwor5ZaH5Y+t5omLIDwgcmFwcGFzaHVcIDsKK+awtOiIuSA8IG1penVidW5lXCA7Civms6XmsrwgPCBkb3JvbnVtYVwgOwor5Y+N55m6IDwgaGFucGF0c3VcIDsKK+elnuanmCA8IGthbWlzYW1hXCA7Civno6jnn7MgPCB0b2dpaXNoaVwgOwor5byB6auqIDwgYmVucGF0c3VcIDsKK+azpeawtCA8IGRvcm9taXp1XCA7Civms6HmsqsgPCBob3VtYXRzdVwgOwor5YWN572q56ymIDwgbWVuemFpZnVcIDsKK+eKrOm7hOaliiA8IGludXRzdWdlXCA7CivnpZ7mpa0gPCBrYW1pd2F6YVwgOwor5rC06IW5IDwgbWl6dWJhcmFcIDsKK+WPguedgCA8IHNhbmNoYWt1XCA7Civljq3kuJboprMgPCBlbnNlaWthblwgOwor56K657SEIDwga2FrdXlha3VcIDsKK+awtOiEiCA8IHN1aW15YWt1XCA7CivljYrkuJbntIAgPCBoYW5zZWlraVwgOwor6YW15q+N6I+MIDwga291Ym9raW5cIDsKK+elnuajmiA8IGthbWlkYW5hXCA7Civlhrfnvajms5UgPCByZWlhbnBvdVwgOwor5Y+k54mpIDwgZnVydW1vbm9cIDsKK+aEm+iUteeJiCA8IGFpem91YmFuXCA7Civlv6vntbYgPCBrYWl6ZXRzdVwgOwor5b6h5YGJ5pa5IDwgb2VyYWdhdGFcIDsKK+iomOaVsOazlSA8IGtpc3V1aG91XCA7CivnqbrkuIvmiYsgPCBrYXJhaGV0YVwgOwor6YeR54mpIDwga2FuYW1vbm9cIDsKK+elnuagvCA8IHNoaW5rYWt1XCA7Civnpr/lsbEgPCBoYWdleWFtYVwgOwor5Y2B6JasIDwgZG9rdWRhbWlcIDsKK+S4jeWBpeW6tyA8IGZ1a2Vua291XCA7Civmsojnl5sgPCBjaGludHN1dVwgOwor5oCl55eFIDwga3l1dWJ5b3VcIDsKK+aOouaknOWutiA8IHRhbmtlbmthXCA7Civnn7Ppj4MgPCBzZWtpem9rdVwgOwor5aSn5rCX5ZyPIDwgdGFpa2lrZW5cIDsKK+eNheWtkOWQvCA8IHNoaXNoaWt1XCA7CivnqI7liKUgPCB6ZWliZXRzdVwgOwor5Luj55CG5qipIDwgZGFpcmlrZW5cIDsKK+eJqeS7tuiyuyA8IGJ1a2tlbmhpXCA7Civpu5LluZUgPCBrdXJvbWFrdVwgOwor56Wd5p2vIDwgc2h1a3VoYWlcIDsKK+aCquaTpiA8IHdhcnV6dXJlXCA7CivmraPopo/lhbUgPCBzZWlraWhlaVwgOwor5YaN6YWN5biDIDwgc2FpaGFpZnVcIDsKK+m8u+WFiCA8IGhhbmFzYWtpXCA7CivnpZ7mnIggPCBrb3VkenVraVwgOwor5rCR6I2JIDwgdGFtaWd1c2FcIDsKK+Wbm+eVs+WNiiA8IHlvam91aGFuXCA7CivmtLvlvIEgPCBrYXRzdWJlblwgOwor5bGV56S65LyaIDwgdGVuamlrYWlcIDsKK+Wkp+mDveW4giA8IGRhaXRvc2hpXCA7CivlkozlrqQgPCB3YXNoaXRzdVwgOwor5YWI5a2m5pyfIDwgc2VuZ2Fra2lcIDsKK+aCqua0kuiQvSA8IHdhcnVqYXJlXCA7Civph4jnhLYgPCBzaGFrdXplblwgOwor6Ieq5rCR5YWaIDwgamltaW50b3VcIDsKK+WMu+eZguWTgSA8IGlyeW91aGluXCA7CivlhoXmspnmsbAgPCB1Y2hpemF0YVwgOwor5ZOy5Lq6IDwgdGV0c3VqaW5cIDsKK+emj+W+syA8IGZ1a3V0b2t1XCA7Civpu5LlsbEgPCBrdXJveWFtYVwgOwor5Yu/6KuWIDwgbW9jaGlyb25cIDsKK+WIhuWFieWZqCA8IGJ1bmtvdWtpXCA7CivmgKrniakgPCBrYWlidXRzdVwgOwor6Kaq5LiN5a2dIDwgb3lhZnVrb3VcIDsKK+emj+W8lSA8IGZ1a3ViaWtpXCA7CivljZLogIUgPCBzb3RzdXNoYVwgOwor57iB6LW354mpIDwgZW5naW1vbm9cIDsKK+a1geaYn+mbqCA8IHJ5dXVzZWl1XCA7Civljp/nmbogPCBnZW5wYXRzdVwgOwor5Ymy6auYIDwgd2FyaWRha2FcIDsKK+iRl+i/sCA8IGNob2p1dHN1XCA7CivlubTosqLnsbMgPCBuZW5ndW1haVwgOwor5Y6a55quIDwgYXRzdWthd2FcIDsKK+a0l+a1hOWZqCA8IHNlbmpvdWtpXCA7Civmr5vombEgPCBrZWppcmFtaVwgOwor5b6q55Kw5ZmoIDwganVua2Fua2lcIDsKK+mFkueznyA8IHNha2VrYXN1XCA7CivnhKHnkIbnn6LnkIYgPCBtdXJpeWFyaVwgOwor5YGl5bq35YWQIDwga2Vua291amlcIDsKK+eojueQhuWjqyA8IHplaXJpc2hpXCA7CivlvJXph5EgPCBoaWtpZ2FuZVwgOwor5Y+k5rKzIDwgZnVydWthd2FcIDsKK+S6uuaDheWRsyA8IG5pbmpvdW1pXCA7CivnrYnoqp7nt5ogPCB0b3Vnb3NlblwgOwor5q+S6JuHIDwgZG9rdWhlYmlcIDsKK+WNgeWtl+e3miA8IGp1dWppc2VuXCA7CivkuI3kvb/nlKggPCBmdXNoaXlvdVwgOwor5LiA55Sf6Z2iIDwgaXNzZWltZW5cIDsKK+aXheihjOiomCA8IHJ5b2tvdWtpXCA7CivpiYTluoogPCBrYW5hdG9rb1wgOwor5YCL5L2T576kIDwga290YWlndW5cIDsKK+WQjeabsiA8IG1laWt5b2t1XCA7Civlj6Pok4vpn7MgPCBrb3VnYWlvblwgOwor5ZCM5pyIIDwgZG91Z2V0c3VcIDsKK+Wcp+W7tuapnyA8IGF0c3VlbmtpXCA7Civlkozlo7Dms5UgPCB3YXNlaWhvdVwgOwor5Y2g566XIDwgdXJheWFzYW5cIDsKK+mrmOmgu+W6piA8IGtvdWhpbmRvXCA7CivlsI/osYboibIgPCBhenVraWlyb1wgOwor5q+S6JasIDwgZG9rdXlha3VcIDsKK+WOs+e+jua4kyA8IGdlbmJpa2VpXCA7CivmsbrnhLYgPCBrZXRzdXplblwgOwor56S65aiB6YGL5YuVIDwgamlpdW5kb3VcIDsKK+eBq+WxseW8viA8IGthemFuZGFuXCA7CivljYroq6fpn7MgPCBoYW5rYWlvblwgOwor5oOF5a6fIDwgam91aml0c3VcIDsKK+eni+WPoyA8IGFraWd1Y2hpXCA7Civlj5bmsbogPCB0b3Jpa2ltZVwgOwor5ZCM5pelIDwgZG91aml0c3VcIDsKK+elreW8jyA8IHNhaXNoaWtpXCA7CivomZDkvb8gPCBneWFrdXNoaVwgOwor5rKQ5rW0IDwgbW9rdXlva3VcIDsKK+mJhOWxsSA8IHRldHN1emFuXCA7CivmsYLms5XogIUgPCBndWhvdXNoYVwgOwor54Gr5bGx5bivIDwga2F6YW50YWlcIDsKK+a0nuWvnyA8IGRvdXNhdHN1XCA7CivkuIvpp4TnrrEgPCBnZXRhYmFrb1wgOwor6YGT6aCGIDwgbWljaGlqdW5cIDsKK+elnuW+syA8IHNoaW50b2t1XCA7Civoip3mtbfogIEgPCBzaGliYWViaVwgOwor5aSn5YiG55yMIDwgb29pdGFrZW5cIDsKK+W+qeexjSA8IGZ1a3VzZWtpXCA7CivlsbHnvorpq60gPCB5YWdpaGlnZVwgOwor54Cs5oi46ZqbIDwgc2V0b2dpd2FcIDsKK+avkuiMuCA8IGRva3V0YWtlXCA7Civlu7bph5EgPCBub2JlZ2FuZVwgOwor56KM56KMIDwgcm9rdXJva3VcIDsKK+mKreS6gCA8IHplbmlnYW1lXCA7CivngavlsbHls7YgPCBrYXphbnRvdVwgOwor5LiA5aSr5LiA5ammIDwgaXBwdWlwcHVcIDsKK+atr+i7iiA8IGhhZ3VydW1hXCA7CivkuI3lr6nngasgPCBmdXNoaW5iaVwgOwor5aWJ5LuV5aWzIDwgaG91c2hpbWVcIDsKK+eBq+WxseWyqSA8IGthemFuZ2FuXCA7CivlvJXotoogPCBoaWtrb3NoaVwgOwor5YmD6auqIDwgdGVpaGF0c3VcIDsKK+W/veeEtiA8IGtvdHN1emVuXCA7CivnjonnoILliKkgPCB0YW1hamFyaVwgOwor5LiA5YiG5Y2KIDwgaXBwdW5oYW5cIDsKK+WPpOagqiA8IGZ1cnVrYWJ1XCA7CivoirHps6XnlLsgPCBrYWNob3VnYVwgOwor54Sh6I+M5rOVIDwgbXVraW5ob3VcIDsKK+aChOaChCA8IHN1Z29zdWdvXCA7CivnhKHlhY3oqLEgPCBtdW1lbmt5b1wgOwor5b6F6YG/57eaIDwgdGFpaGlzZW5cIDsKK+ehrOethiA8IGtvdWhpdHN1XCA7CivlubTos4DnirYgPCBuZW5nYWpvdVwgOwor5Y+k5Y+C6ICFIDwga29zYW5zaGFcIDsKK+W/heedgCA8IGhpdGNoYWt1XCA7CivkupTliIbkupTliIYgPCBnb2J1Z29idVwgOwor5Y+k5pyNIDwgZnVydWZ1a3VcIDsKK+WIhuWykOeCuSA8IGJ1bmtpdGVuXCA7Civkvo3lvpPlrpggPCBqaWp1dWthblwgOwor5YaF6YeO5omLIDwgbmFpeWFzaHVcIDsKK+ayuemAgeeuoSA8IHl1c291a2FuXCA7CivmsLTnk7YgPCBtaXp1Z2FtZVwgOwor6KqY6Ju+54GvIDwgeXV1Z2F0b3VcIDsKK+W/g+eahCA8IHNoaW50ZWtpXCA7CivoqIjnkIblo6sgPCBrZWlyaXNoaVwgOwor6ZuR6LKo5bqXIDwgemFra2F0ZW5cIDsKK+W6p+WPs+mKmCA8IHpheXV1bWVpXCA7CivlkL7lrZAgPCB3YWdpbW9rb1wgOwor5a2Q6Z+z5oCnIDwgc2hpaW5zZWlcIDsKK+awl+efrSA8IGtpbWlqaWthXCA7CivlvpfnrZYgPCB0b2t1c2FrdVwgOwor5YuF6KOBIDwgY2hva3VzYWlcIDsKK+acn+W+heaEnyA8IGtpdGFpa2FuXCA7Civpganph48gPCB0ZWtpcnlvdVwgOwor5b+D55ebIDwgc2hpbnRzdXVcIDsKK+mBi+WLleWutiA8IHVuZG91c2hhXCA7Civph5HmmJ8gPCBraW5ib3NoaVwgOwor5oSa6YCj6ZqKIDwgZ3VyZW50YWlcIDsKK+WOn+WtkOmbsiA8IGdlbnNoaXVuXCA7Civku6PnkIblupcgPCBkYWlyaXRlblwgOwor5by+6JasIDwgZGFuJyd5YWt1XCA7CivmsLTnjokgPCBtaXp1dGFtYVwgOwor56aB5ZynIDwga2luJydhdHN1XCA7CivlvrPnm64gPCB0b2t1bW9rdVwgOwor6Ku45Zmo5qKwIDwgc2hva2lrYWlcIDsKK+mHjOaWuSA8IHNhdG9rYXRhXCA7Civms5XlvosgPCBob3VyaXRzdVwgOwor6YeI5piOIDwgc2hha3VtZWlcIDsKK+aTjeiIteaJiyA8IHNvdWRhc2h1XCA7Civlh7rmra/kuoAgPCBkZWJha2FtZVwgOwor5LiN5YGl5YWoIDwgZnVrZW56ZW5cIDsKK+a0u+WLlSA8IGthdHN1ZG91XCA7Civpu5LlhoYgPCBrdXJvbWFydVwgOwor55u46KOc5oCnIDwgc291aG9zZWlcIDsKK+awtOeJqSA8IG1penVtb25vXCA7CivlvpfnpaggPCB0b2t1aHlvdVwgOwor5Yid5pyf5YCkIDwgc2hva2ljaGlcIDsKK+a0vuWHuiA8IGhhc2h1dHN1XCA7Civph4jmlL4gPCBzaGFrdWhvdVwgOwor5o6l6aCt6L6eIDwgc2V0dG91amlcIDsKK+eUn+W+kuS8miA8IHNlaXRva2FpXCA7CivmtYHlhaUgPCByeXV1bnl1dVwgOwor5q6L6JmQIDwgemFuZ3lha3VcIDsKK+iWrOWxiyA8IGt1c3VyaXlhXCA7CivolqzlsYAgPCB5YWtreW9rdVwgOwor56Gs55u0IDwga291Y2hva3VcIDsKK+WQiOW8jyA8IGdvdXNoaWtpXCA7CivnpZ7lppkgPCBzaGlubXlvdVwgOwor6YGg6YGTIDwgdG9vbWljaGlcIDsKK+mgkOiogOiAhSA8IHlvZ2Vuc2hhXCA7CivlvZPogbcgPCB0b3VzaG9rdVwgOwor5bqV6Z2pIDwgc29rb2dhd2FcIDsKK+iWrOWtpiA8IHlha3VnYWt1XCA7Civnpo/liqkgPCBmdWt1c3VrZVwgOwor6ZaL5YKs5pelIDwga2Fpc2FpYmlcIDsKK+iDtOmWk+WjsCA8IGRvdW1hZ29lXCA7Civog4znlarlj7cgPCBzZWJhbmdvdVwgOwor5rWu5rWq6ICFIDwgZnVyb3VzaGFcIDsKK+S8muWToeWIuCA8IGthaWlua2VuXCA7CivkvJrlk6HliLYgPCBrYWlpbnNlaVwgOwor5q+b562GIDwgbW91aGl0c3VcIDsKK+iLseexs+azlSA8IGVpYmVpaG91XCA7CivljrvmnIggPCBreW9nZXRzdVwgOwor552A6aeFIDwgY2hha3Vla2lcIDsKK+WQiOeQhuirliA8IGdvdXJpcm9uXCA7CivlpKfpg6jliIYgPCBkYWlidWJ1blwgOwor5oGQ5oKmIDwga3lvdWV0c3VcIDsKK+iUreanmCA8IGthZ2VzYW1hXCA7CivnpZ7ln58gPCBzaGluJydpa2lcIDsKK+WNg+eUnyA8IHNlbicnbmFyaVwgOwor6JaE5byxIDwgaGFrdWpha3VcIDsKK+S6lOinkuW9oiA8IGdva2Fra2VpXCA7CivkuK3opo/mqKEgPCBjaHV1a2lib1wgOwor5b+F54S2IDwgaGl0c3V6ZW5cIDsKK+Wkp+mDveS8miA8IGRhaXRva2FpXCA7CivorbfpgIHou4ogPCBnb3NvdXNoYVwgOwor6YeN5omL5LujIDwgb21vdGVkYWlcIDsKK+WQjOWxgCA8IGRvdWt5b2t1XCA7CivokrjnnYAgPCBqb3VjaGFrdVwgOwor5bqD5aCx6YOoIDwga291aG91YnVcIDsKK+WNiueOiSA8IGhhbmd5b2t1XCA7CivpgIbpoqggPCBneWFrdWZ1dVwgOwor5YiG6aqoIDwgYnVua290c3VcIDsKK+W+jOmzpee+vemZoiA8IGdvdG9iYWluXCA7CivlubzpoZQgPCBvc2FuYWdhb1wgOwor5ZCM5a6/IDwgZG91c2h1a3VcIDsKK+WQjeWunyA8IG1laWppdHN1XCA7CivmraLooYAgPCBzaGlrZXRzdVwgOwor5YuV6ISIIDwgZG91bXlha3VcIDsKK+edgOmghiA8IGNoYWt1anVuXCA7CivokrjnmbogPCBqb3VoYXRzdVwgOwor6YCG6aCGIDwgZ3lha3VqdW5cIDsKK+WQiOWuvyA8IGdhc3NodWt1XCA7CivliofoqZUgPCBnZWtpaHlvdVwgOwor6YW45qygIDwgc2Fua2V0c3VcIDsKK+W+jOeZuiA8IGtvdWhhdHN1XCA7CivkuInmna/phaIgPCBzYW5iYWl6dVwgOwor56+A54Kt5ZmoIDwgc2V0dGFua2lcIDsKK+mJhOWIhiA8IHRldHN1YnVuXCA7CivluIzmnJvogIUgPCBraWJvdXNoYVwgOwor5aSW56eR5a2mIDwgZ2VrYWdha3VcIDsKK+WIkeS6i+eKryA8IGtlaWppaGFuXCA7CivphY3nt5rlm7MgPCBoYWlzZW56dVwgOwor5qmf5qKw6KuWIDwga2lrYWlyb25cIDsKK+edgOmbuyA8IGNoYWt1ZGVuXCA7Civlt53np4vmspkgPCBrYXdhYWlzYVwgOwor5Y+L5oiQIDwgdG9tb25hcmlcIDsKK+aWh+WMluWcjyA8IGJ1bmtha2VuXCA7CivmjqXpoK3oqp4gPCBzZXR0b3Vnb1wgOwor5rC05rSfIDwgbWl6dWJhbmFcIDsKK+S6i+aVheattCA8IGppa29yZWtpXCA7CivliY3ov7AgPCB6ZW5qdXRzdVwgOwor5Ymy6K2yIDwga2F0c3Vqb3VcIDsKK+WxseWwj+WxiyA8IHlhbWFnb3lhXCA7Civljp/mm7IgPCBnZW5reW9rdVwgOwor57O46Jy76JuJIDwgaXRvdG9uYm9cIDsKK+WNgemHjeS6jOWNgemHjSA8IHRvZWhhdGFlXCA7CivlvoznlKMgPCBub2NoaXphblwgOwor56e76Lui5YWIIDwgaXRlbnNha2lcIDsKK+iQveiOqyA8IHJha3ViYWt1XCA7CivpganoqZUgPCB0ZWtpaHlvdVwgOwor6JOL54mpIDwgZnV0YW1vbm9cIDsKK+WHuummrCA8IHNodXRzdWJhXCA7CivmsLTmsqEgPCBzdWlib3RzdVwgOwor5b6h54mpIDwgZ3lvYnV0c3VcIDsKK+Wkp+WLsuS9jSA8IGRhaWt1bicnaVwgOwor5b2T56+AIDwgdG91c2V0c3VcIDsKK+WQuOWPoyA8IHN1aWt1Y2hpXCA7CivlpKfnm67njokgPCBvb21lZGFtYVwgOwor5a6Y5YWs5ZCPIDwga2Fua291cmlcIDsKK+aCi+WXhyA8IHJpbnNob2t1XCA7CivljZTorbDlk6EgPCBreW91Z2lpblwgOwor6LuN5LqL54qvIDwgZ3VuamloYW5cIDsKK+maj+ihjOWToSA8IHp1aWtvdWluXCA7CivkuIDovrrlgJIgPCBpcHBlbnRvdVwgOwor6Yed5bGxIDwgaGFyaXlhbWFcIDsKK+WPluW8lSA8IHRvcmloaWtpXCA7CivmsqHlubQgPCBib3RzdW5lblwgOwor5Y+y5a6fIDwgc2hpaml0c3VcIDsKK+iRieiEiCA8IHlvdW15YWt1XCA7Civlj7Dlr4YgPCB0YWltaXRzdVwgOwor54++5Luj6KqeIDwgZ2VuZGFpZ29cIDsKK+mBlOitmCA8IHRhc3NoaWtpXCA7CivpuqbkvZwgPCBtdWdpc2FrdVwgOwor5LiN5bCO5oCnIDwgZnVkb3VzZWlcIDsKK+aAp+aCqiA8IHNob3V3YXJ1XCA7CivnkIblrrnluKsgPCByaXlvdXNoaVwgOwor5b6T54mpIDwganV1YnV0c3VcIDsKK+S5semrmOS4iyA8IHJhbmtvdWdlXCA7CivlvbnnlZwgPCBla2ljaGlrdVwgOwor5Yeh6aqoIDwgYm9ua290c3VcIDsKK+mHkeWxkSA8IGthbmFrdXp1XCA7Civlv4XmrrogPCBoaXNzYXRzdVwgOwor5Y+k5a+6IDwgZnVydWRlcmFcIDsKK+ekvuS6pOWutiA8IHNoYWtvdWthXCA7CivmtJvkuK0gPCByYWt1Y2h1dVwgOwor5Ye46Z2iIDwgdG90c3VtZW5cIDsKK+aWh+WMluWPsiA8IGJ1bmthc2hpXCA7CivlkLjlhaUgPCBreXV1bnl1dVwgOwor5LiN55So5ZOBIDwgZnV5b3VoaW5cIDsKK+WIsOmBlCA8IHRvdXRhdHN1XCA7Civlj6Plrp8gPCBrb3VqaXRzdVwgOwor6YCP5piO5bqmIDwgdG91bWVpZG9cIDsKK+S4jeWumuazlSA8IGZ1dGVpaG91XCA7CivliofolqwgPCBnZWtpeWFrdVwgOwor55+t57iuIDwgdGFuc2h1a3VcIDsKK+a4qeaOkuawtCA8IG9uaGFpc3VpXCA7CivlhrfpuqYgPCBoaXlhbXVnaVwgOwor56Wd5YW4IDwgc2h1a3V0ZW5cIDsKK+WHuumZsyA8IHNodXRjaGluXCA7CivoiKrnqbrot68gPCBrb3VrdXVyb1wgOwor6JGb57GgIDwgdHN1ZHp1cmFcIDsKK+izh+eUo+WutiA8IHNoaXNhbmthXCA7CivpoZ7kvLzngrkgPCBydWlqaXRlblwgOwor5reh5rC05rmWIDwgdGFuc3Vpa29cIDsKK+W6g+WgseiqsiA8IGtvdWhvdWthXCA7CivlvrPmsqIgPCB0b2t1dGFrdVwgOwor6YeI5bCKIDwgc2hha3Vzb25cIDsKK+W5s+mNiyA8IGhpcmFuYWJlXCA7CivphZLmqL0gPCBzYWthZGFydVwgOwor5byB6IiMIDwgYmVuemV0c3VcIDsKK+Wwj+S6uuaVsCA8IGtvbmluenV1XCA7CivmhJvnn6XnnIwgPCBhaWNoaWtlblwgOwor6L+96YyyIDwgdHN1aXJva3VcIDsKK+aBi+WmuyA8IGtvaWR6dW1hXCA7CivlvqnmtLsgPCBmdWtrYXRzdVwgOwor5Lq66YCg6JeNIDwgamluem91YWlcIDsKK+WMu+WtpuiAhSA8IGlnYWt1c2hhXCA7CivmgqrmhJ/mg4UgPCBha2thbmpvdVwgOwor5oGr5ZadIDwgZG91a2F0c3VcIDsKK+acquWHpuWIhiA8IG1pc2hvYnVuXCA7Civlt67phY3kurogPCBzYWhhaW5pblwgOwor5L2O6aC75bqmIDwgdGVpaGluZG9cIDsKK+S9nOeCuueKryA8IHNha3VpaGFuXCA7CivliaPooZMgPCBrZW5qdXRzdVwgOwor5Y6z5b6LIDwgZ2Vucml0c3VcIDsKK+atr+enkeeUqCA8IHNoaWtheW91XCA7CivliqvnvbAgPCBnb3ViYXRzdVwgOwor5b2r55CiIDwgY2hvdXRha3VcIDsKK+WMlueJqSA8IGJha2Vtb25vXCA7CivolqrlibIgPCBtYWtpd2FyaVwgOwor5b2T55u0IDwgdG91Y2hva3VcIDsKK+WGjeWHpueQhiA8IHNhaXNob3JpXCA7Civlia/ombkgPCBmdWt1bmlqaVwgOwor6Iqx6Iyj6JOZIDwgaGFuYWdvemFcIDsKK+WMl+eIhiA8IGhva3ViYWt1XCA7CivnjoTmrablsqkgPCBnZW5idWdhblwgOwor5bi46aOfIDwgam91c2hva3VcIDsKK+mwkOmuqyA8IHdhbml6YW1lXCA7Civms6jlhaUgPCBjaHV1bnl1dVwgOwor5oCl5bO7IDwga3l1dXNodW5cIDsKK+a2sueKtuWMliA8IGVraWpvdWthXCA7CivnhKHliKnmga8gPCBtdXJpc29rdVwgOwor6Zmj576957mUIDwgamluYmFvcmlcIDsKK+mzqeiDuCA8IGhhdG9tdW5lXCA7CivmiKbpl5jmqZ8gPCBzZW50b3VraVwgOwor5pyJ5oSP55qEIDwgeXV1aXRla2lcIDsKK+W6l+izgyA8IHRhbmFjaGluXCA7CivllY/poYzlhZAgPCBtb25kYWlqaVwgOwor5b+D5qC5IDwga29rb3JvbmVcIDsKK+WGrOmzpSA8IGZ1eXVkb3JpXCA7CivljZTmpa0gPCBreW91Z3lvdVwgOwor5YK15YuZ6ICFIDwgc2FpbXVzaGFcIDsKK+WHnembhiA8IGd5b3VzaHV1XCA7CivkuIDpqI7oqI4gPCBpa2tpdWNoaVwgOwor6KOc57Wm6LevIDwgaG9reXV1cm9cIDsKK+mAgemBlCA8IHNvdXRhdHN1XCA7CivlvavniakgPCBob3JpbW9ub1wgOwor5bqV6LGGIDwgc29rb21hbWVcIDsKK+mzpeiCjCA8IHRvcmloYWRhXCA7Civps6XogokgPCB0b3JpbmlrdVwgOwor5q+N54mpIDwgaGFoYW1vbm9cIDsKK+W9oiA8IGthdGFjaGlcIDsKK+i9jSA8IHdhZGFjaGlcIDsKK+W3tyA8IGNoaW1hdGFcIDsKK+i3oyA8IGhhZGFzaGlcIDsKK+i2oyA8IG9tb211a2lcIDsKK+WxgCA8IHRzdWJvbmVcIDsKK+WvpyA8IG11c2hpcm9cIDsKK+eNuiA8IGthd2F1c29cIDsKK+eLkCA8IGtpdHN1bmVcIDsKK+WrgiA8IGFuaXlvbWVcIDsKK+ipsSA8IGhhbmFzaGlcIDsKK+eHlSA8IHRzdWJhbWVcIDsKK+a7tCA8IHNoaXp1a3VcIDsKK+a5liA8IG1penV1bWlcIDsKK+WJoyA8IHRzdXJ1Z2lcIDsKK+WHnSA8IHNoaWtvcmlcIDsKK+WGoCA8IGthbm11cmlcIDsKK+akvyA8IHRzdWJha2lcIDsKK+ainyA8IGZ1a3Vyb3VcIDsKK+mggiA8IGl0YWRha2lcIDsKK+afsSA8IGhhc2hpcmFcIDsKK+S/jiA8IG1hbmFpdGFcIDsKK+aelyA8IGhheWFzaGlcIDsKK+S+jSA8IHNhbXVyYWlcIDsKK+e+iiA8IGhpdHN1amlcIDsKK+adsSA8IGhpZ2FzaGlcIDsKK+aYlCA8IG11a2FzaGlcIDsKK+e1jCA8IHRhdGVpdG9cIDsKK+mMpiA8IG5pc2hpa2lcIDsKK+engSA8IHdhdGFzaGlcIDsKK+elrSA8IG1hdHN1cmlcIDsKK+ekviA8IHlhc2hpcm9cIDsKK+eiuiA8IHRhc2hpa2FcIDsKK+mCuCA8IHlhc2hpa2lcIDsKK+ekvuWFsSA8IHNoYWt5b3VcIDsKK+W/g+adkCA8IHNoaW56YWlcIDsKK+i/kemWkyA8IGNoaWthbWFcIDsKK+WOu+WwsSA8IGt5b3NodXVcIDsKK+WJjeihqCA8IHplbnB5b3VcIDsKK+WQm+WBtCA8IGt1bnNva3VcIDsKK+i/vemAgSA8IHRzdWlzb3VcIDsKK+WNoOaciSA8IHNlbicneXV1XCA7Civlv4zml6UgPCBraW5pY2hpXCA7CivljaDmm7ggPCB1cmFidW1pXCA7CivluLPpnaIgPCBjaG91bWVuXCA7Civnm7Tpn7MgPCBjaG9rdW9uXCA7Civlip/nuL4gPCBrb3VzZWtpXCA7CivmsJHmpa0gPCBtaW5neW91XCA7CivoloTlkb0gPCBoYWt1bWVpXCA7CivluK3poIYgPCBzZWtpanVuXCA7Civnm4rps6UgPCBla2ljaG91XCA7CivmspblpKkgPCBjaHV1dGVuXCA7CivkuIvlsaTlnJ8gPCBrYXNvdWRvXCA7Civlv5zmjqUgPCBvdXNldHN1XCA7CivnnqDoi6UgPCBkb3VqYWt1XCA7Civotbfli5XmqZ8gPCBraWRvdWtpXCA7CivlvozmtYEgPCBrb3VyeXV1XCA7Civlj6zllpogPCBzaG91a2FuXCA7CivlvJXnrpcgPCBoaWtpemFuXCA7CivluK/pnakgPCBvYmlrYXdhXCA7Civlh7rph5EgPCBzaHVra2luXCA7CivljYHlrZfmnrYgPCBqdXVqaWthXCA7Civlj6vllpogPCBreW91a2FuXCA7CivlkInlh7YgPCBraWtreW91XCA7Civph43lnKcgPCBqdXVhdHN1XCA7Civov7Dpg6ggPCBqdXRzdWJ1XCA7Civpt7LluqcgPCB3YXNoaXphXCA7CivlvJPnrq0gPCBreXV1c2VuXCA7CivliIbpgLIgPCBidW5zaGluXCA7Civoj6nolqkgPCBib3NhdHN1XCA7CivliIbpgJ8gPCBmdW5zb2t1XCA7CivmsLTmkoMgPCBzdWlnZWtpXCA7CivmsqLlnLAgPCBzYXdhY2hpXCA7CivliIfov6sgPCBzZXBwYWt1XCA7CivljZfmnJ0gPCBuYW5jaG91XCA7Civkurrlt6Xpm6ggPCBqaW5rb3V1XCA7Civlv7Xlv7UgPCBuZW4nJ25lblwgOwor77yu6Z+/IDwgZW51a3lvdVwgOwor5q2j57aaIDwgc2Vpem9rdVwgOwor6JC956ysIDwgcmFrdWRhaVwgOwor6Yej5ZCIIDwgdHN1cmlhaVwgOwor5q2j57W5IDwgc2hvdWtlblwgOwor6aST6ay86YGTIDwgZ2FraWRvdVwgOwor5Y6z5a65IDwgZ2VuJyd5b3VcIDsKK+mAsuihjCA8IHNoaW5rb3VcIDsKK+WQieWFhiA8IGtpdGNob3VcIDsKK+S4jeWumuacnyA8IGZ1dGVpa2lcIDsKK+WLleeahCA8IGRvdXRla2lcIDsKK+WQjOWDmiA8IGRvdXJ5b3VcIDsKK+ato+e1jCA8IHNlaWt5b3VcIDsKK+WMl+a6gCA8IGhva3VtYW5cIDsKK+WNiuagvCA8IGhhbmtha3VcIDsKK+mAmuisgCA8IHRzdXVib3VcIDsKK+aooeaTrOW6lyA8IG1vZ2l0ZW5cIDsKK+WPrOWRvSA8IHNob3VtZWlcIDsKK+mAmuirliA8IHRzdXVyb25cIDsKK+W6j+iqrCA8IGpvc2V0c3VcIDsKK+azpeS4rSA8IGRlaWNodXVcIDsKK+W6leinkiA8IHRlaWtha3VcIDsKK+WJsuiIiCA8IHdhcmlrb3VcIDsKK+W+s+acmyA8IHRva3Vib3VcIDsKK+aApeWkiSA8IGt5dXVoZW5cIDsKK+WPo+WUhyA8IGtvdXNoaW5cIDsKK+mzpee2siA8IHRvcmlhbWlcIDsKK+aBreWAuSA8IGt5b3VrZW5cIDsKK+WPq+WPtyA8IGt5b3Vnb3VcIDsKK+WPpOatpumBkyA8IGtvYnVkb3VcIDsKK+aghOmkiue0oCA8IGVpeW91c29cIDsKK+WIuuihnSA8IHNoaXNob3VcIDsKK+W5veiwtyA8IHl1dWtva3VcIDsKK+mEmeatjCA8IGhpbmF1dGFcIDsKK+auteeJqSA8IGRhbm1vbm9cIDsKK+WQjOS/oSA8IGRvdXNoaW5cIDsKK+efs+ebpCA8IHNla2liYW5cIDsKK+atu+elqCA8IHNoaWh5b3VcIDsKK+WJsuiFuSA8IGthcHB1a3VcIDsKK+W7kOiIjiA8IGt5dXVzaGFcIDsKK+mAmuioiCA8IHRzdXVrZWlcIDsKK+WPsOWMlyA8IHRhaWhva3VcIDsKK+WLpOeOiyA8IGtpbicnbm91XCA7Civlv6vlvqkgPCBrYWlmdWt1XCA7CivmsJHmnIkgPCBtaW4nJ3l1dVwgOwor5q2056iLIDwgcmVraXRlaVwgOwor56C05ruFIDwgaGFtZXRzdVwgOwor5oCl5aKXIDwga3l1dXpvdVwgOwor6YCa6KejIDwgdHN1dWthaVwgOwor5Yik6KqtIDwgaGFuZG9rdVwgOwor6YeN5ZSxIDwganV1c2hvdVwgOwor5ZCN5L2cIDwgbWVpc2FrdVwgOwor6YCa6KazIDwgdHN1dWthblwgOwor5byU56WtIDwgY2hvdXNhaVwgOwor5ZCE5YGcIDwga2FrdXRlaVwgOwor5oGp5YCfIDwgb25zaGFrdVwgOwor5Y+y5YqHIDwgc2hpZ2VraVwgOwor5YyX5rSLIDwgaG9rdXlvdVwgOwor6YCa6KanIDwgdHN1dXJhblwgOwor6YGp6ICFIDwgdGVraXNoYVwgOwor5Ymv6IWOIDwgZnVrdWppblwgOwor56S+5LitIDwgc2hhY2h1dVwgOwor6L+96LSIIDwgdHN1aXpvdVwgOwor5oCl5aCxIDwga3l1dWhvdVwgOwor5bir6ZW3IDwgc2hpY2hvdVwgOwor5YiA6LqrIDwgdG91c2hpblwgOwor5Yqg562GIDwga2FoaXRzdVwgOwor5Y675aOwIDwga3lvc2hvdVwgOwor5ZCN5LujIDwgbXlvdWRhaVwgOwor5Yyh5q2jIDwga3lvdXNlaVwgOwor6Lqr5Yud5omLIDwgbWlnYXR0ZVwgOwor5ZCI5L2cIDwgZ2Fzc2FrdVwgOwor54Sh5Yip5a2QIDwgbXVyaXNoaVwgOwor5b6T5qWtIDwganV1Z3lvdVwgOwor5Y2K5pmCIDwgaGFudG9raVwgOwor6JC956OQIDwgcmFrdWJhblwgOwor5Y6f5a+pIDwgZ2Vuc2hpblwgOwor5q+S5rayIDwgZG9rdWVraVwgOwor5b285rCPIDwga2FyZXNoaVwgOwor5bid6Zm1IDwgdGVpcnlvdVwgOwor5b6z5pS/IDwgdG9rdXNlaVwgOwor5rCR5pePIDwgbWluem9rdVwgOwor6YGg6ICzIDwgdG9vbWltaVwgOwor55Gg55KD6ImyIDwgcnVyaWlyb1wgOwor5ZCN5Li7IDwgbmFudXNoaVwgOwor5oCl5Z2CIDwga3l1dWhhblwgOwor5Yid6Ki6IDwgc2hvc2hpblwgOwor5bqD6KeSIDwga291a2FrdVwgOwor5ZCJ5LqLIDwga2l0c3VqaVwgOwor5rCP5pePIDwgc2hpem9rdVwgOwor5byU56CyIDwgY2hvdWhvdVwgOwor5bu6562WIDwga2Vuc2FrdVwgOwor5YmN6JGJIDwgemVuJyd5b3VcIDsKK+mAmuihjCA8IHRzdXVrb3VcIDsKK+WQjOS4gCA8IGRvdWl0c3VcIDsKK+W5vuiosSA8IGlrdWJha3VcIDsKK+mHjeWOmiA8IGNob3Vrb3VcIDsKK+iNt+mAgSA8IG5pb2t1cmlcIDsKK+W+qeaXpyA8IGZ1a2t5dXVcIDsKK+iDg+iFuOeCjiA8IGljaG91ZW5cIDsKK+ayoeWPjiA8IGJvc3NodXVcIDsKK+W7u+eroCA8IGthaXNob3VcIDsKK+WNmuaNnCA8IGhha3Vzb3VcIDsKK+efpeeahCA8IGNoaXRla2lcIDsKK+WQhOS6uiA8IGtha3VqaW5cIDsKK+aui+eVmSA8IHphbnJ5dXVcIDsKK+i1t+WLleaZgiA8IGtpZG91amlcIDsKK+W5lei7jSA8IGJha3VndW5cIDsKK+W7uueriyA8IGtvbnJ5dXVcIDsKK+ayg+WcsCA8IHlva3VjaGlcIDsKK+mBiuiIiCA8IHl1dWt5b3VcIDsKK+W+qeaWhyA8IGZ1a3VidW5cIDsKK+WQiOS4gCA8IGdvdWl0c3VcIDsKK+WIpeihqCA8IGJlcHB5b3VcIDsKK+WJr+e9siA8IGZ1a3VzaG9cIDsKK+WPl+WPliA8IHVrZXRvcmlcIDsKK+W/g+aIvyA8IHNoaW5ib3VcIDsKK+WPpOWIuSA8IGtvc2F0c3VcIDsKK+WKtOebuCA8IHJvdXNob3VcIDsKK+mDrea4hSA8IGtha3VzZWlcIDsKK+WHuui1sCA8IHNodXNzb3VcIDsKK+W5u+immiA8IGdlbmtha3VcIDsKK+WJm+iFuSA8IGdvdWZ1a3VcIDsKK+auuumZo+W4qyA8IHRhdGVzaGlcIDsKK+mhnue+qeiqniA8IHJ1aWdpZ29cIDsKK+atr+efsyA8IHNoaXNla2lcIDsKK+WutuioiOewvyA8IGtha2VpYm9cIDsKK+aBpeS4mCA8IGNoaWt5dXVcIDsKK+WFqOm6piA8IHplbmJha3VcIDsKK+WNmuaJkyA8IGJha3VjaGlcIDsKK+i/veiqjSA8IHRzdWluaW5cIDsKK+mHj+WIkSA8IHJ5b3VrZWlcIDsKK+mHjeWIuyA8IGp1dWtva3VcIDsKK+eiuuWuiCA8IGtha3VzaHVcIDsKK+eZu+iomOewvyA8IHRvdWtpYm9cIDsKK+i/veippiA8IHRzdWlzaGlcIDsKK+WHuuizhyA8IHNodXNzaGlcIDsKK+ecn+i0iyA8IHNoaW5nYW5cIDsKK+awl+aMgSA8IGtpbW9jaGlcIDsKK+mHjeavjemfsyA8IGp1dWJvaW5cIDsKK+W5s+inkiA8IGhlaWtha3VcIDsKK+ato+eiuiA8IHNlaWtha3VcIDsKK+i/veiojiA8IHRzdWl0b3VcIDsKK+avrOaglyA8IGlnYWd1cmlcIDsKK+atu+eXhSA8IHNoaWJ5b3VcIDsKK+WFsemztCA8IGt5b3VtZWlcIDsKK+WPjeWPjiA8IHRhbnNodXVcIDsKK+mBheefpeaBtSA8IG9zb2RqaWVcIDsKK+W/luW6piA8IHNvbnRha3VcIDsKK+W4r+mHkSA8IG9iaWdhbmVcIDsKK+iNmOmHjSA8IHNvdWNob3VcIDsKK+Wkp+mBjuWOuyA8IGRhaWtha29cIDsKK+W/g+aDhSA8IHNoaW5qb3VcIDsKK+WMueaVtSA8IGhpdHRla2lcIDsKK+mDqOa0uyA8IGJ1a2F0c3VcIDsKK+mHjuWFjiA8IG5vdXNhZ2lcIDsKK+awuOW5tCA8IG5hZ2FuZW5cIDsKK+WKoOeul+WZqCA8IGthc2Fua2lcIDsKK+mAhuihjCA8IGd5YWtrb3VcIDsKK+Wkp+ebuOaSsiA8IG9venVtb3VcIDsKK+i/hemAnyA8IGppbnNva3VcIDsKK+apn+iDveiqniA8IGtpbm91Z29cIDsKK+W+jOabuCA8IGF0b2dha2lcIDsKK+WJjeiGiiA8IHplbnBha3VcIDsKK+mHkeWBtCA8IGtpbmdhd2FcIDsKK+W/g+aApyA8IHNoaW5zZWlcIDsKK+i/sOiqniA8IGp1dHN1Z29cIDsKK+eip+WxsSA8IGhla2l6YW5cIDsKK+ayiOWQnyA8IGNoaW5naW5cIDsKK+acieawl+mfsyA8IHl1dWtpb25cIDsKK+WJjeiEsyA8IHplbicnbm91XCA7CivlubTooaggPCBuZW5weW91XCA7CivliY3ohJogPCBtYWVhc2hpXCA7CivmrY7np7AgPCB0YW5zaG91XCA7Civlh7rorJsgPCBzaHVra291XCA7CivkuI3mnaHnkIYgPCBmdWpvdXJpXCA7CivliLrojYkgPCBpcmFrdXNhXCA7CivljYPmjK8gPCBzZW5idXJpXCA7Civlv4PlvpcgPCBrb2tvcm9lXCA7CivmgZLkuYUgPCBrb3VreXV1XCA7Civlj6rku4ogPCB0YWRhaW1hXCA7Civlj43liYcgPCBoYW5zb2t1XCA7Civlj6PkvpsgPCBrb3VreW91XCA7CivlvLfngasgPCB0c3V5b2JpXCA7CivmgYvku7IgPCBrb2luYWthXCA7CivmrbvnkIMgPCBzaGlreXV1XCA7CivliqnnlaogPCBzdWtlYmFuXCA7Civlvozml6UgPCBnb25pY2hpXCA7CivphY3lvbkgPCBoYWl5YWt1XCA7CivmgYvkurogPCBrb2liaXRvXCA7CivlpKfpgZPlhbcgPCBvb2RvdWd1XCA7CivlrprkvY3nva4gPCB0ZWlpY2hpXCA7CivmgKrlipsgPCBrYWlyaWtpXCA7CivlvoHmnI0gPCBzZWlmdWt1XCA7Civmr43mp5ggPCBrYWFzYW1hXCA7CivnnJ/oq6YgPCBzaGludGVpXCA7CivlvLHngrkgPCBqYWt1dGVuXCA7CivpgKPojZggPCByZW5jaGFuXCA7CivlhobpoZQgPCBtYXJ1Z2FvXCA7Civnm7LpgLIgPCBtb3VzaGluXCA7Civlv6DlrZ0gPCBjaHV1a291XCA7Civps6XnnrAgPCBjaG91a2FuXCA7CivlubzomasgPCB5b3VjaHV1XCA7CivokL3nkIMgPCByYWtreXV1XCA7Civlt6jpoY0gPCBreW9nYWt1XCA7CivlibLnrpcgPCB3YXJpemFuXCA7CivpgYvpgIHlsYsgPCB1bnNvdXlhXCA7CivpgKDllrbosrsgPCB6b3VlaWhpXCA7Civlj43lhbEgPCBoYW5reW91XCA7CivmrovnhacgPCB6YW5zaG91XCA7CivljJfmnbEgPCBob2t1dG91XCA7CivpgLjogZ4gPCBpdHN1YnVuXCA7CivphZLluK0gPCBzaHVzZWtpXCA7Civnn7Pngq0gPCBzZWtpdGFuXCA7CivmsLflsbEgPCBoeW91emFuXCA7CivlvJXnjocgPCBpbnNvdHN1XCA7Civlu7bnnYAgPCBlbmNoYWt1XCA7CivmsLflsYsgPCBrb29yaXlhXCA7CivljbHlsYAgPCBraWt5b2t1XCA7Civokpnlj6Toqp4gPCBtb3Vrb2dvXCA7Civlh7jop5IgPCB0b2trYWt1XCA7Civnm67pgIEgPCBtb2t1c291XCA7CivmqZ/morDnp5EgPCBraWthaWthXCA7Civnm7TovLggPCBjaG9rdXl1XCA7CivnoJXmsLcgPCBzYWloeW91XCA7CivnnJ/oqIAgPCBzaGluZ29uXCA7Civlu7rnmb0gPCBrZW5wYWt1XCA7CivmrabnlaUgPCBidXJ5YWt1XCA7CivmgKfliIYgPCBzaG91YnVuXCA7CivlhpfplbcgPCBqb3VjaG91XCA7CivnorrloLEgPCBrYWt1aG91XCA7CivluqfogbcgPCB6YXNob2t1XCA7Civlj6PkuK0gPCBrb3VjaHV1XCA7CivlhrfphbcgPCByZWlrb2t1XCA7CivmrKHlubTluqYgPCBqaW5lbmRvXCA7CivmrrTmrrogPCBvdXNhdHN1XCA7CivlhaXprYIgPCBueXV1a29uXCA7Civlv5flraYgPCBzaGlnYWt1XCA7CivlpJrph43ljJYgPCB0YWp1dWthXCA7CivlvoDml6UgPCBvdWppdHN1XCA7CivmsYLlqZogPCBreXV1a29uXCA7Civlu7bnmbogPCBlbnBhdHN1XCA7CivljYPku6PlpbMgPCBjaGl5b2pvXCA7CivnnJ/opb8gPCBtYW5pc2hpXCA7Civlj6TnpL7lr7ogPCBrb3NoYWppXCA7CivlvJPnirYgPCBreXV1am91XCA7CivphpzlkI0gPCBzaHV1bWVpXCA7CivmsJHlv4MgPCBtaW5zaGluXCA7CivmqKnpq5ggPCBrZW5kYWthXCA7CivkuIDlsaTnm64gPCBpc3NvdW1lXCA7CivmsJHlvrMgPCBtaW50b2t1XCA7Civlj43kv5cgPCBoYW56b2t1XCA7Civmsbrli50gPCBrZXNzaG91XCA7CivlhoXpmbggPCBuYWlyaWt1XCA7Civnm7Tot68gPCBjaG9rdXJvXCA7CivpgannorogPCB0ZWtrYWt1XCA7CivojLbph5wgPCBjaGFnYW1hXCA7CivlqJHlqYbmsJcgPCBzaGFiYWtlXCA7CivovpvphbggPCBzaGluc2FuXCA7CivluIzph4ggPCBraXNoYWt1XCA7Civlh7booYwgPCBreW91a291XCA7Civmr47mnJ0gPCBtYWljaG91XCA7Civnmb3pr6ggPCBoYWt1Z2VpXCA7CivljYrlvJMgPCBoYW5reXV1XCA7CivlirHno4HmqZ8gPCByZWlqaWtpXCA7CivkuI3pppblsL4gPCBmdXNodWJpXCA7CivliJ3ojbcgPCBoYXRzdW5pXCA7CivljJfmlK8gPCBob2t1c2hpXCA7CivmgqrmhJ/ljJYgPCBha2thbmthXCA7CivlvoXpgb/miYAgPCB0YWloaWpvXCA7CivlhoXplrIgPCBuYWlldHN1XCA7CivlhoXplqMgPCBuYWlrYWt1XCA7CivphY3lsZ4gPCBoYWl6b2t1XCA7CivolLXljL8gPCB6b3V0b2t1XCA7CivluKvotbAgPCBzaGl3YXN1XCA7CivmsojlgKsgPCBjaGlucmluXCA7CivphZLlrqIgPCBzaHVrYWt1XCA7Civmr5Tml6UgPCBoaW5pY2hpXCA7Civljp/lkYogPCBnZW5rb2t1XCA7Civlm5vogqHlkI0gPCBzaGlrb25hXCA7Civnmb3prZogPCBzaGlyYXVvXCA7CivljYrlubQgPCBoYW4nJ25lblwgOwor6YGL562GIDwgdW5waXRzdVwgOwor6be55YygIDwgdGFrYWpvdVwgOwor5q2054S2IDwgcmVraXplblwgOwor5LiN5Lq65rCXIDwgZnVuaW5raVwgOwor5YWs6aCYIDwga291cnlvdVwgOwor6L+R6KaqIDwga2luc2hpblwgOwor5oCl5L2/IDwga3l1dXNoaVwgOwor5Ym955uXIDwgaHlvdXRvdVwgOwor5bm86IulIDwgeW91amFrdVwgOwor6KW/5qyn5YyWIDwgc2Vpb3VrYVwgOwor5YWo6aGNIDwgemVuZ2FrdVwgOwor5qiZ6auYIDwgaHlvdWtvdVwgOwor5Y2z5aOyIDwgc29rdWJhaVwgOwor5LqM6ZqO5bGLIDwgbmlrYWl5YVwgOwor5Y2D5bqmIDwgY2hpdGFiaVwgOwor5by35rCXIDwgdHN1eW9raVwgOwor5qOS5pqX6KiYIDwgYm91YW5raVwgOwor5bqB6IiOIDwgY2hvdXNoYVwgOwor5YqH55WMIDwgZ2VraWthaVwgOwor5Y2D5bm0IDwgY2hpdG9zZVwgOwor5LiN5LiA6Ie0IDwgZnVpdGNoaVwgOwor6KGA5Y+N5ZCQIDwgY2hpaGVkb1wgOwor5YqH55SaIDwgZ2VraWppblwgOwor5qiq6aGUIDwgeW9rb2dhb1wgOwor5puz54Gr5by+IDwgZWlrYWRhblwgOwor5Yun5qWtIDwga2FuZ3lvdVwgOwor5Yed6KaWIDwgZ3lvdXNoaVwgOwor5Yi657mNIDwgc2hpc2h1dVwgOwor556g55uuIDwgZG91bW9rdVwgOwor5YaN6YyyIDwgc2Fpcm9rdVwgOwor55yf6JmrIDwgbWFtdXNoaVwgOwor6bOl542jIDwgY2hvdWp1dVwgOwor5b655a61IDwgdGVzc2hvdVwgOwor5Y2R5bGIIDwgaGlrdXRzdVwgOwor5Yqg54axIDwga2FuZXRzdVwgOwor57Ch57Sg5YyWIDwga2Fuc29rYVwgOwor5YCL5L2T5beuIDwga290YWlzYVwgOwor5YaN6YuzIDwgc2FpY2h1dVwgOwor5rC35aGKIDwgaHlvdWthaVwgOwor5ZCM6Z+z6KqeIDwgZG91b25nb1wgOwor5Y2S5a+/IDwgc290c3VqdVwgOwor5by35qyyIDwgZ291eW9rdVwgOwor5Y2U5a6aIDwga3lvdXRlaVwgOwor5YW16ZW3IDwgaGVpY2hvdVwgOwor6YWM5ammIDwgc2hha3VmdVwgOwor56Cy5pKDIDwgaG91Z2VraVwgOwor5rCX5a+GIDwga2ltaXRzdVwgOwor6YG455CDIDwgc2Vua3l1dVwgOwor5Y6f5YmHIDwgZ2Vuc29rdVwgOwor5YWx6ZeYIDwga3lvdXRvdVwgOwor5LmX5YuZ5ZOhIDwgam91bXVpblwgOwor55u06KurIDwgY2hva2thblwgOwor6KOP5pyo5oi4IDwgdXJha2lkb1wgOwor55m66aasIDwgaGF0c3ViYVwgOwor5Yi657WhIDwgc2hpcmFrdVwgOwor5YWo6ZuGIDwgemVuc2h1dVwgOwor5Y2T5a2QIDwgdGVpYnVydVwgOwor55u06KuHIDwgamlraWRhblwgOwor5YWl6Zu7IDwgbnl1dWRlblwgOwor5YmN56ugIDwgemVuc2hvdVwgOwor55+z5q61IDwgaXNoaWRhblwgOwor5q2m54OIIDwgYnVyZXRzdVwgOwor55u06KmxIDwgY2hva3V3YVwgOwor56OB5YqbIDwgamlyeW9rdVwgOwor5rC05Z6iIDwgbWl6dWFrYVwgOwor5bmz6Ie8IDwgaGlyYXVzdVwgOwor5b255omAIDwgeWFrdXNob1wgOwor6YGp55SoIDwgdGVraXlvdVwgOwor6YCj57aaIDwgcmVuem9rdVwgOwor5Y215ZqiIDwgcmFuJydub3VcIDsKK+awj+WvuiA8IHVqaWRlcmFcIDsKK+WFpemaiiA8IG55dXV0YWlcIDsKK+W/g+WkliA8IHNoaW5nYWlcIDsKK+mHkeavmOe+hSA8IGtvbnBpcmFcIDsKK+WNiuWutSA8IGhhbnNob3VcIDsKK+mAo+e1oSA8IHJlbnJha3VcIDsKK+WItue0hCA8IHNlaXlha3VcIDsKK+eekeebriA8IG1laW1va3VcIDsKK+WKm+eCuSA8IHJpa2l0ZW5cIDsKK+awtOWcpyA8IHN1aWF0c3VcIDsKK+W5u+iBtCA8IGdlbmNob3VcIDsKK+aomemhjCA8IGh5b3VkYWlcIDsKK+awt+WaoiA8IGh5b3Vub3VcIDsKK+W/teWKmyA8IG5lbnJpa2lcIDsKK+eEoemAoOS9nCA8IG11em91c2FcIDsKK+ebtOimpyA8IGppa2lyYW5cIDsKK+WNg+WwiyA8IGNoaWhpcm9cIDsKK+WFqOmVtyA8IHplbmNob3VcIDsKK+WNmuWkpyA8IGhha3VkYWlcIDsKK+WNgeS6jOaZgiA8IGp1dW5pamlcIDsKK+iQvea2mSA8IHJha3VydWlcIDsKK+WGhemHkSA8IHVjaGlraW5cIDsKK+eZu+mggiA8IHRvdWNob3VcIDsKK+ebl+iziiA8IHRvdXpva3VcIDsKK+WNmuWjqyA8IGhha3VzaGlcIDsKK+aEj+aDs+WkliA8IGlzb3VnYWlcIDsKK+S4jeWuieWumiA8IGZ1YW50ZWlcIDsKK+eZuumfsyA8IGhhdHN1b25cIDsKK+WFpemWgCA8IG55dXVtb25cIDsKK+avkuaJiyA8IGRva3VzaHVcIDsKK+efs+apiyA8IHNla2t5b3VcIDsKK+ecn+iPjCA8IHNoaW5raW5cIDsKK+eZvemdoiA8IGhha3VtZW5cIDsKK+W+ueWknCA8IHRldHN1eWFcIDsKK+mZsOmbu+awlyA8IGluZGVua2lcIDsKK+efs+anqCA8IHNla2tha3VcIDsKK+WIh+iFuSA8IHNlcHB1a3VcIDsKK+W/oOWQmyA8IGNodXVrdW5cIDsKK+iWhOmmrOm5vyA8IHVzdWJha2FcIDsKK+iUteS6uiA8IGt1cm91ZG9cIDsKK+W5tOiAgSA8IHRvc2hpb2lcIDsKK+iLlOmhniA8IGtva2VydWlcIDsKK+S4geWtl+i3ryA8IHRlaWppcm9cIDsKK+eZuumcsiA8IGhhdHN1cm9cIDsKK+WFh+mhniA8IGt5b3VydWlcIDsKK+mAlOe1tiA8IHRvemV0c3VcIDsKK+ebtOihjCA8IGNob2trb3VcIDsKK+WKm+a8lSA8IHJpa2lzb3VcIDsKK+WNoOWcsCA8IHNoaW1lamlcIDsKK+W/g+WcsCA8IGtva29jaGlcIDsKK+aPkOekuumDqCA8IHRlaWppYnVcIDsKK+WFiOmggyA8IHNlbmtvcm9cIDsKK+atu+avkiA8IHNoaWRva3VcIDsKK+aFsOWVj+WTgSA8IGltb25oaW5cIDsKK+W6nOeriyA8IGZ1cml0c3VcIDsKK+WOn+S9nCA8IGdlbnNha3VcIDsKK+WNsOWTsiA8IGludGV0c3VcIDsKK+WGt+iplSA8IHJlaWh5b3VcIDsKK+W/g+WboCA8IHNoaW4nJ2luXCA7CivpgJ/nrpcgPCBzb2t1c2FuXCA7CivljoTliY0gPCB5YWt1bWFlXCA7Civmrovmpa0gPCB6YW5neW91XCA7CivojZLooYwgPCBhcmFneW91XCA7CivlhoXpgJogPCBuYWl0c3V1XCA7CivopqrmloflrZcgPCBveWFtb2ppXCA7Civli53mma8gPCBzaG91a2VpXCA7Civnnq3nhLYgPCByeW91emVuXCA7CivlvpPlsZ4gPCBqdXV6b2t1XCA7CivlvKbmpb0gPCBnZW5nYWt1XCA7CivlioPnhLYgPCBrYWt1emVuXCA7CivljbPlkJ8gPCBzb2t1Z2luXCA7CivljYPlp6sgPCBzZW5oaW1lXCA7Civlv6Dli6QgPCBjaHV1a2luXCA7Civlv6Dli4cgPCBjaHV1eXV1XCA7CivnkIbosqHlrrYgPCByaXphaWthXCA7CivlhrfoppogPCByZWlrYWt1XCA7CivpgJrnrpcgPCB0c3V1c2FuXCA7CivpgIbnuIEgPCBneWFrdWVuXCA7CivmnInogLbnhKHogLYgPCB1eWFtdXlhXCA7CivnqL3lj6Tml6UgPCBrZWlrb2JpXCA7CivliJ3ntJogPCBzaG9reXV1XCA7Civmr5LmgKcgPCBkb2t1c2VpXCA7Civlt6HpgYogPCBqdW4nJ3l1dVwgOwor5b6T5a65IDwgc2hvdXlvdVwgOwor5Y2X5Zu9IDwgbmFuZ29rdVwgOwor5LqM5aGB5omTIDwgbmlydWlkYVwgOwor5by35pq0IDwga3lvdWJvdVwgOwor5bmV6IiOIDwgYmFrdXNoYVwgOwor5rC35Y6fIDwgaHlvdWdlblwgOwor5bmz57mUIDwgaGlyYW9yaVwgOwor5b+c5YqbIDwgb3VyeW9rdVwgOwor5Yud5pWXIDwgc2hvdWhhaVwgOwor5omL55u46KaLIDwgdGVzb3VtaVwgOwor5rGC5YiRIDwga3l1dWtlaVwgOwor5aSc55uX6Ju+IDwgeW90b3VnYVwgOwor5be76LKdIDwgbWFraWdhaVwgOwor5byP5qyhIDwgc2hpa2lqaVwgOwor5YaZ6LGhIDwgc2hhc2hvdVwgOwor5aWz5oCn576OIDwgam9zZWliaVwgOwor5q6L5p+xIDwgemFuY2h1dVwgOwor55+z5p2QIDwgc2VraXphaVwgOwor6aKo6YKq5aOwIDwga2F6ZWdvZVwgOwor5Y6t5LiW5a62IDwgZW5zZWlrYVwgOwor6YKm5qW9IDwgaG91Z2FrdVwgOwor5Ymj546JIDwga2VuZGFtYVwgOwor5YyX5ba6IDwgaG9rdXJlaVwgOwor5bm057WmIDwgbmVua3l1dVwgOwor5YWo6YePIDwgemVucnlvdVwgOwor5b6M5a2mIDwga291Z2FrdVwgOwor6YKE5rWBIDwga2Fucnl1dVwgOwor5Y2z5Yi7IDwgc29ra29rdVwgOwor5Ye26IGeIDwga3lvdWJ1blwgOwor5rCR5Zu9IDwgbWlua29rdVwgOwor5YWl6YeRIDwgbnl1dWtpblwgOwor5Ymb55CDIDwgZ291a3l1dVwgOwor54ao5paX55uuIDwgbm9zaGltZVwgOwor5Y2K5Zu9IDwgaGFuZ29rdVwgOwor5rC45YilIDwgZWliZXRzdVwgOwor6YW35L2/IDwga29rdXNoaVwgOwor5b+r5L2cIDwga2Fpc2FrdVwgOwor5Y2w5Yi3IDwgaW5zYXRzdVwgOwor6L+957SNIDwgdHN1aW5vdVwgOwor5rC35YiDIDwgaHlvdWppblwgOwor6Zmw6KyA5a62IDwgaW5ib3VrYVwgOwor5YWt6YGTIDwgcm9rdWRvdVwgOwor5YyX5bK4IDwgaG9rdWdhblwgOwor6YCB57GNIDwgc291c2VraVwgOwor5Yil56ewIDwgYmVzc2hvdVwgOwor6ZqP5oSP562LIDwgenVpaWtpblwgOwor5bqt55WqIDwgbml3YWJhblwgOwor6L6y6JasIDwgbm91eWFrdVwgOwor6YGK54yfIDwgeXV1cnlvdVwgOwor55m76YyyIDwgdG91cm9rdVwgOwor5Y2g5Y2cIDwgc2VuYm9rdVwgOwor5omL5Yqg5ribIDwgdGVrYWdlblwgOwor6K6a576O5q2MIDwgc2FuYmlrYVwgOwor6JGJ5pyIIDwgaGFkenVraVwgOwor5beo6LOKIDwga3lvem9rdVwgOwor6I+v54etIDwga2FzaG9rdVwgOwor5b2T5oORIDwgdG91d2FrdVwgOwor5YiG57SNIDwgYnVuJydub3VcIDsKK+WIneepgiA8IGhhdHN1aG9cIDsKK+W/heWLnSA8IGhpc3Nob3VcIDsKK+eZvemKkSA8IGhha3VzZW5cIDsKK+WFqOmAnyA8IHplbnNva3VcIDsKK+WFpemBuCA8IG55dXVzZW5cIDsKK+WFqOmAmiA8IHplbnRzdXVcIDsKK+eZvemKhSA8IGhha3Vkb3VcIDsKK+eZvemKgCA8IGhha3VnaW5cIDsKK+WFpemBkyA8IG55dXVkb3VcIDsKK+mCquabsiA8IGpha3lva3VcIDsKK+WNnOWNoCA8IGJva3VzZW5cIDsKK+WQjOS9jeS9kyA8IGRvdWl0YWlcIDsKK+W3peizgyA8IGtvdWNoaW5cIDsKK+awt+WDjyA8IGh5b3V6b3VcIDsKK+mhnumfs+iqniA8IHJ1aW9uZ29cIDsKK+mBiueJpyA8IHl1dWJva3VcIDsKK+mAseeVqiA8IHNodXViYW5cIDsKK+W/g+WKtCA8IHNoaW5yb3VcIDsKK+WIneeniyA8IHNob3NodXVcIDsKK+W5vueoiyA8IGlrdWhvZG9cIDsKK+aui+aVtSA8IHphbnRla2lcIDsKK+mAmueglCA8IHRzdXVrZW5cIDsKK+WNlOWQjCA8IGt5b3Vkb3VcIDsKK+W5s+etiSA8IGJ5b3Vkb3VcIDsKK+WPieaJi+e2siA8IHNhZGVhbWlcIDsKK+WNs+WApCA8IHNva3VjaGlcIDsKK+mAmuefpSA8IHRzdXVjaGlcIDsKK+eZgumkiiA8IHJ5b3V5b3VcIDsKK+W5tOerryA8IHRvc2hpaGFcIDsKK+W6reeQgyA8IHRlaWt5dXVcIDsKK+auieaVmSA8IGp1bmt5b3VcIDsKK+atjOayoiA8IHV0YXphd2FcIDsKK+WLgeaVtSA8IGtlaXRla2lcIDsKK+WGjeiqvyA8IHNhaWNob3VcIDsKK+WGjeiqrSA8IHNhaWRva3VcIDsKK+axguS6uiA8IGt5dXVqaW5cIDsKK+WKn+alrSA8IGtvdWd5b3VcIDsKK+iJsum7kiA8IGlyb2d1cm9cIDsKK+WNl+WMlyA8IG5hbmJva3VcIDsKK+Wwj+e2rOm2jyA8IGtvanVrZWlcIDsKK+WNmuWKtCA8IGJha3Vyb3VcIDsKK+aZtOmbqOioiCA8IHNlaXVrZWlcIDsKK+aWh+W6q+WMliA8IGJ1bmtva2FcIDsKK+egtOWxgCA8IGhha3lva3VcIDsKK+ato+alrSA8IHNlaWd5b3VcIDsKK+mHjuasoemmrCA8IHlhaml1bWFcIDsKK+W4r+iKryA8IG9iaXNoaW5cIDsKK+WNiuWRqCA8IGhhbnNodXVcIDsKK+mBoea6kCA8IHNha3VnZW5cIDsKK+WFqOi6qyA8IHplbnNoaW5cIDsKK+avkuWusyA8IGRva3VnYWlcIDsKK+ihl+i3r+aouSA8IGdhaXJvanVcIDsKK+WGheirviA8IG5haWRha3VcIDsKK+W5uOemjyA8IGtvdWZ1a3VcIDsKK+WLpOaBqiA8IGtpbmtha3VcIDsKK+WHuueyviA8IHNodXNzZWlcIDsKK+W+qeWRvSA8IGZ1a3VtZWlcIDsKK+iLpemAoCA8IHdha2F6b3VcIDsKK+W6l+eVqiA8IG1pc2ViYW5cIDsKK+mtjemtjiA8IG1vdXJ5b3VcIDsKK+aOp+iotOmZoiA8IGtvdXNvaW5cIDsKK+mBqeazlSA8IHRla2lob3VcIDsKK+WEqumVtyA8IHl1dWNob3VcIDsKK+W/meS4rSA8IGJvdWNodXVcIDsKK+WNkeWKoyA8IGhpcmV0c3VcIDsKK+WIqeeZuiA8IHJpaGF0c3VcIDsKK+S7meS6uuaOjCA8IHNhYm90ZW5cIDsKK+W+qeWPtyA8IGZ1a3Vnb3VcIDsKK+W/g+WDjyA8IHNoaW56b3VcIDsKK+mAo+eUqCA8IHJlbicneW91XCA7CivmsJflipsgPCBraXJ5b2t1XCA7CivmrrXlubMgPCBkYW5iaXJhXCA7CivlhbHosqkgPCBreW91aGFuXCA7CivlhoXoqLwgPCBuYWlzaG91XCA7CivlhoXoqLogPCBuYWlzaGluXCA7CivliYrniYcgPCBzYWt1aGVuXCA7Civlvqnljp8gPCBmdWt1Z2VuXCA7CivnmbrpgLIgPCBoYXNzaGluXCA7CivlvJTmlocgPCBjaG91YnVuXCA7CivljJflpKkgPCBob2t1dGVuXCA7CivljJflpKcgPCBob2t1ZGFpXCA7CivlhYPph5EgPCBtb3Rva2luXCA7Civoi6XovKkgPCBqYWt1aGFpXCA7Civnm4romasgPCBla2ljaHV1XCA7CivlvrPliKkgPCB0b2trdXJpXCA7Civli4HmjbcgPCBrZWlzaG91XCA7Civlv4Xkv64gPCBoaXNzaHV1XCA7Civnm7LohbggPCBtb3VjaG91XCA7CivlvrPliIYgPCB0b2t1YnVuXCA7CivokrjlmaggPCBtdXNoaWtpXCA7Civlvq7lipsgPCBiaXJ5b2t1XCA7CivljL/lkI0gPCB0b2t1bWVpXCA7CivlurXngrkgPCBpb3JpdGVuXCA7Civlu7bmo5IgPCBub2JlYm91XCA7CivluLjnv5IgPCBqb3VzaHV1XCA7CivliLbnkIMgPCBzZWlreXV1XCA7CivliIbnp5IgPCBmdW5ieW91XCA7CivmrZPmpb0gPCBrYW5yYWt1XCA7CivmsLTkuK0gPCBzdWljaHV1XCA7Civpg6jlsYAgPCBidWt5b2t1XCA7Civlh43ogokgPCB0b3VuaWt1XCA7CivpgJrnlKggPCB0c3V1eW91XCA7CivojYnoibIgPCBrdXNhaXJvXCA7CivljJflooMgPCBob2treW91XCA7CivprYLprYQgPCBrb25wYWt1XCA7CivlvrTlhbUgPCBjaG91aGVpXCA7CivphY3kv6EgPCBoYWlzaGluXCA7CivpgJfnlZkgPCB0b3VyeXV1XCA7CivpganmraMgPCB0ZWtpc2VpXCA7CivmraPmnJ0gPCBzZWljaG91XCA7CivmraPmnJQgPCBzZWlzYWt1XCA7Civlh4TohZUgPCBzdWdvdWRlXCA7CivlhYnpgJ8gPCBrb3Vzb2t1XCA7Civli5jlv40gPCBrYW4nJ25pblwgOwor5YWI6YCyIDwgc2Vuc2hpblwgOwor5YWI6YCxIDwgc2Vuc2h1dVwgOwor5YWl6LKiIDwgbnl1dWtvdVwgOwor6YWS5LujIDwgc2FrYWRhaVwgOwor55m96LqrIDwgc2hpcm9taVwgOwor5ber6KGTIDwgZnVqdXRzdVwgOwor6YCf55CDIDwgc29ra3l1dVwgOwor6L+U57SNIDwgaGVuJydub3VcIDsKK+W+qeWIuyA8IGZ1a2tva3VcIDsKK+i7vemchyA8IGtlaXNoaW5cIDsKK+iNkuiCnSA8IGFyYWdpbW9cIDsKK+WHuuepgiA8IHNodXNzdWlcIDsKK+W8leaPmyA8IGhpa2lrYWVcIDsKK+i8u+i8syA8IGZ1a3Vzb3VcIDsKK+assuaxgiA8IHlva2t5dXVcIDsKK+W7tuadvyA8IG5vYmVpdGFcIDsKK+ecn+epuiA8IHNoaW5rdXVcIDsKK+ecvOebriA8IGdhbm1va3VcIDsKK+W8leaOpSA8IGluc2V0c3VcIDsKK+iJsumtlCA8IHNoaWtpbWFcIDsKK+W/heS4rSA8IGhpdGNodXVcIDsKK+i8qumDrSA8IHJpbmtha3VcIDsKK+e+qeaPtOmHkSA8IGdpZW5raW5cIDsKK+WNmOS9nCA8IHRhbnNha3VcIDsKK+ecgee3miA8IHNob3VzZW5cIDsKK+W8vuW5lSA8IGRhbm1ha3VcIDsKK+W5tOebiiA8IG5lbicnZWtpXCA7CivlvqnlhZogPCBmdWt1dG91XCA7CivlhYnou7ggPCBrb3VqaWt1XCA7Civlu7/ml6UgPCBoYXRzdWthXCA7CivlvLHlv5cgPCBqYWt1c2hpXCA7CivljJflm70gPCBob2trb2t1XCA7CivlvLflvIEgPCBreW91YmVuXCA7CivpgoTmmqYgPCBrYW5yZWtpXCA7CivlirHmjK8gPCByZWlzaGluXCA7Civovp7oibIgPCBqaXNob2t1XCA7Civlh7rnpL4gPCBzaHVzc2hhXCA7CivojYnogqUgPCBrdXNhZ29lXCA7CivliKnnjocgPCByaXJpdHN1XCA7CivnmbrotrMgPCBob3Nzb2t1XCA7CivlhazoqZUgPCBrb3VoeW91XCA7CivlhazoqLwgPCBrb3VzaG91XCA7CivljYHlha0gPCBqdXVyb2t1XCA7CivliKXnj40gPCBiZXRjaGluXCA7CivljZTkvJogPCBreW91a2FpXCA7Civkv6/nnrDlm7MgPCBmdWthbnp1XCA7CivlvqHmlrDpppkgPCBvc2hpbmtvXCA7CivkupznsbPliKnliqAgPCBhbWVyaWthXCA7CivljLrliKUgPCBrdWJldHN1XCA7CivljYPlhIQgPCBzZW4nJ29rdVwgOwor5rCX5L2NIDwga2lndXJhaVwgOwor5b6h5a625Lq6IDwgZ29rZW5pblwgOwor5byx5byfIDwgamFrdXRlaVwgOwor5YWx6KWfIDwgdG9tb2VyaVwgOwor55y855eFIDwgZ2FuYnlvdVwgOwor5YWt6KeSIDwgcm9ra2FrdVwgOwor5Y2S5LyNIDwgc290c3Vnb1wgOwor5aSn5a+66ZmiIDwgZGFpamlpblwgOwor5q6v5a6uIDwgaGlua3l1dVwgOwor56CU5a2mIDwga2VuZ2FrdVwgOwor5q6L5b+1IDwgemFuJyduZW5cIDsKK+iNt+epjSA8IG5pZHp1bWlcIDsKK+WNl+S4rSA8IG5hbmNodXVcIDsKK+WGt+iCiSA8IHJlaW5pa3VcIDsKK+iQveaJiyA8IHJha3VzaHVcIDsKK+ebuOe2miA8IHNvdXpva3VcIDsKK+aui+W/jSA8IHphbicnbmluXCA7CivmsJfku5ggPCBraWR6dWtlXCA7CivlhaXoqaYgPCBueXV1c2hpXCA7Civmrovlv4MgPCB6YW5zaGluXCA7Civng4/nvr3njokgPCB1YmF0YW1hXCA7CivlibXmpa0gPCBzb3VneW91XCA7Civlh6HnrZYgPCBib25zYWt1XCA7Civli4nlvLcgPCBiZW5reW91XCA7CivlhbHoo48gPCB0b21vdXJhXCA7CivlvozljoQgPCBhdG95YWt1XCA7CivokL3miJAgPCByYWt1c2VpXCA7Civlhajop5IgPCB6ZW5rYWt1XCA7CivlvLHlubQgPCBqYWt1bmVuXCA7Civli6flraYgPCBrYW5nYWt1XCA7CivljYrkvZwgPCBoYW5zYWt1XCA7CivlurbmtYEgPCBzaG9yeXV1XCA7CivmgKfooYzngrogPCBzZWlrb3VpXCA7CivmrbTmiKYgPCByZWtpc2VuXCA7CivkuIDoiKzljJYgPCBpcHBhbmthXCA7Civlt53onaYgPCBrYXdhZWJpXCA7CivmrYzmm7IgPCBrYWt5b2t1XCA7CivlvoXlkIggPCBtYWNoaWFpXCA7CivluLDntZAgPCBraWtldHN1XCA7Civnn7Pluq0gPCBzZWtpdGVpXCA7CivljZLkuK0gPCBzb3RjaHV1XCA7CivljZPkuIogPCB0YWt1am91XCA7CivlhYXotrMgPCBqdXVzb2t1XCA7CivojLbohbkgPCBjaGFiYXJhXCA7CivlhY3osqwgPCBtZW5zZWtpXCA7CivojZLnuIQgPCBhcmFuYXdhXCA7Civlg7vpmoUgPCBoZWtpZ3V1XCA7CivliofmmpEgPCBnZWtpc2hvXCA7Civnm7TntYwgPCBjaG9ra2VpXCA7CivljYHkupTlpJwgPCBqdXVnb3lhXCA7Civnm67nuIEgPCBtYWJ1Y2hpXCA7Civlg7vpmawgPCBoZWtpc3V1XCA7CivpgY3mrbQgPCBoZW5yZWtpXCA7CivluK/ntJkgPCBvYmlnYW1pXCA7CivlubLnk6IgPCBrYW5weW91XCA7CivlhJ/ph5EgPCBzaG91a2luXCA7CivmsI/kurogPCB1amloaXRvXCA7Civnn6XlvrMgPCBjaGl0b2t1XCA7CivpgYrmrbQgPCB5dXVyZWtpXCA7CivkuozpmaLliLYgPCBuaWluc2VpXCA7CivlhazooYYgPCBrb3VzaHV1XCA7CivlhYjosqAgPCBzZW5tYWtlXCA7CivnnLznkIMgPCBnYW5reXV1XCA7CivluL3nq6AgPCBib3VzaG91XCA7Civov5Hnp7AgPCBraW5zaG91XCA7CivnmbrorbAgPCBoYXRzdWdpXCA7Civlh7rnm6MgPCBzaHVra2FuXCA7CivpgIHnkIMgPCBzb3VreXV1XCA7CivlrrbmlL/lqaYgPCBrYXNlaWZ1XCA7Civoia/poqggPCByeW91ZnV1XCA7CivliIbnlZkgPCBidW5yeXV1XCA7Civli5jlr6kgPCBrYW5zaGluXCA7CivpganmnZAgPCB0ZWtpemFpXCA7CivpgoDmkoMgPCB5b3VnZWtpXCA7CivpgKPmv4EgPCByZW5kYWt1XCA7CivnrKzkuoznvqkgPCBkYWluaWdpXCA7Civmrb/lvowgPCBib3RzdWdvXCA7Civlhobou4zpgZMgPCBlbmtpZG91XCA7CivnnJ/nm7ggPCBzaGluc291XCA7CivnnJ/nm7QgPCBtYXNzdWd1XCA7CivlvbnlkI0gPCB5YWt1bWVpXCA7CivlvpPlg5UgPCBqdXVib2t1XCA7CivpgZPmpb0gPCBkb3VyYWt1XCA7Civnnqzmlq0gPCBzaHVuZGFuXCA7Civph47okaHokIQgPCBub2J1ZG91XCA7Civnmbroqp4gPCBoYXRzdWdvXCA7Civli6flpaggPCBrYW5zaG91XCA7CivlipvmipUgPCByaWtpdG91XCA7CivliJHnjYQgPCBrZWlnb2t1XCA7Civnmb7oqIggPCBoeWFra2VpXCA7CivljYPkuKEgPCBzZW5yeW91XCA7CivlvozlhYggPCBhdG9zYWtpXCA7CivljYHkuZ0gPCBqdXVreXV1XCA7CivnmbroqbEgPCBoYXRzdXdhXCA7CivljJfljYogPCBob2t1aGFuXCA7Civlu4Pmpa0gPCBoYWlneW91XCA7CivnmbroqLsgPCBoYXRjaHV1XCA7CivljYHkuKEgPCBqdXVyeW91XCA7CivlipvmiKYgPCByaWtpc2VuXCA7CivljYHkuIMgPCBqdXVuYW5hXCA7CivljYHkuIAgPCBqdXVpY2hpXCA7CivlvJXlvZMgPCBoaWtpYXRlXCA7CivpgLjmsJEgPCBpdHN1bWluXCA7CivlvovlhIAgPCByaWNoaWdpXCA7Civlv5zli5/ogIUgPCBvdWJvc2hhXCA7CivliY3mrbQgPCB6ZW5yZWtpXCA7Civlia/mnKwgPCBmdWt1aG9uXCA7CivoibHpm6MgPCBrYW4nJ25hblwgOwor6bq75a6f5rK5IDwgYXNhbWl5dVwgOwor6Iy26aOv5LqLIDwgc2FoYW5qaVwgOwor5byP5b6uIDwgc2hpa2liaVwgOwor6YGK5qW9IDwgeXV1cmFrdVwgOwor6Lu96YePIDwga2VpcnlvdVwgOwor6Lu96YeNIDwga2VpY2hvdVwgOwor55uu566XIDwgbW9rdXNhblwgOwor5Ye655SjIDwgc2h1c3NhblwgOwor55m66KaaIDwgaGFra2FrdVwgOwor6YCy5rC0IDwgc2hpbnN1aVwgOwor5YWr6YeN6ZuyIDwgeWFlZ3VtYVwgOwor5qyy5pybIDwgeW9rdWJvdVwgOwor5YuH5bCGIDwgeXV1c2hvdVwgOwor55uf57SEIDwgbWVpeWFrdVwgOwor55u456ewIDwgc291c2hvdVwgOwor5b285YemIDwga2FzaGlrb1wgOwor55+u5bCPIDwgd2Fpc2hvdVwgOwor552r5q+bIDwgbWF0c3VnZVwgOwor6YK45a6FIDwgdGVpdGFrdVwgOwor55uu56uvIDwgbWVoYXNoaVwgOwor5YuJ5a2mIDwgYmVuZ2FrdVwgOwor6a+o6IKJIDwgZ2VpbmlrdVwgOwor5YSq6LaKIDwgeXV1ZXRzdVwgOwor55m+6KGMIDwgaHlha2tvdVwgOwor6L+R55y8IDwgY2hpa2FtZVwgOwor6I+M5q+SIDwga2luZG9rdVwgOwor5q205bm0IDwgcmVraW5lblwgOwor5pyq6LiP5p+7IDwgbWl0b3VzYVwgOwor5byT5birIDwgeXVtaXNoaVwgOwor5YWI6KaaIDwgc2Vua2FrdVwgOwor5b6M5L2cIDwgYXRvc2FrdVwgOwor5beo6Ii2IDwga3lvaGFrdVwgOwor5bqV5rWBIDwgdGVpcnl1dVwgOwor57W16JGJ5pu4IDwgZWhhZ2FraVwgOwor55m66KGoIDwgaGFwcHlvdVwgOwor6YG45oqeIDwgc2VudGFrdVwgOwor5qyg5qC8IDwga2Vra2FrdVwgOwor5YWx6JGXIDwga3lvdWNob1wgOwor56i95Y+k5aC0IDwga2Vpa29iYVwgOwor5bqD5rygIDwga291YmFrdVwgOwor6I2J56ybIDwga3VzYWJ1ZVwgOwor5Yud5aCxIDwgc2hvdWhvdVwgOwor5Yid5r2uIDwgc2hvY2hvdVwgOwor5Yqp5bmzIDwgc3VrZWJlaVwgOwor5a6J5YWo5pyfIDwgYW56ZW5raVwgOwor5by35aSnIDwga3lvdWRhaVwgOwor5Y+N5oSP6KqeIDwgaGFuJydpZ29cIDsKK+i8quiqrSA8IHJpbmRva3VcIDsKK+efpeWwhiA8IGNoaXNob3VcIDsKK+WGheiGnCA8IG5haW1ha3VcIDsKK+W8t+WjriA8IGt5b3Vzb3VcIDsKK+W9ueWDpyA8IHlha3Vzb3VcIDsKK+WAi+S6uuW3riA8IGtvamluc2FcIDsKK+WKh+aIpiA8IGdla2lzZW5cIDsKK+e3j+WLmemDqCA8IHNvdW11YnVcIDsKK+avkuWIgyA8IGRva3VqaW5cIDsKK+eZveidiyA8IGhha3Vyb3VcIDsKK+W4hue2sSA8IGhvZHp1bmFcIDsKK+i7jemVtyA8IGd1bmNob3VcIDsKK+WKm+W9uSA8IHJpa2lla2lcIDsKK+itpumDqOijnCA8IGtlaWJ1aG9cIDsKK+WGt+eskSA8IHJlaXNob3VcIDsKK+S4juWkqumDjiA8IHlvdGFyb3VcIDsKK+iMtueypSA8IGNoYWdheXVcIDsKK+W7u+W/gyA8IGthaXNoaW5cIDsKK+eci+eXhSA8IGthbmJ5b3VcIDsKK+ebruekvCA8IG1va3VyZWlcIDsKK+i8uOihgCA8IHl1a2V0c3VcIDsKK+S9jeeJjOWggiA8IGloYWlkb3VcIDsKK+WLneWcsCA8IHNob3VjaGlcIDsKK+WInea5ryA8IGhhdHN1eXVcIDsKK+e+qeWkquWkqyA8IGdpZGF5dXVcIDsKK+WHtueMmyA8IGt5b3Vtb3VcIDsKK+S4iemeremFkiA8IHNoYW5wZW5cIDsKK+iJpumVtyA8IGthbmNob3VcIDsKK+Wmg+auv+S4iyA8IGhpZGVua2FcIDsKK+WHjeefsyA8IHRvdXNla2lcIDsKK+WItuassiA8IHNlaXlva3VcIDsKK+WHuueJiCA8IHNodXBwYW5cIDsKK+W8n+WrgSA8IG90b3lvbWVcIDsKK+WHtueKtiA8IGt5b3Vqb3VcIDsKK+aouuiJsiA8IGthYmFpcm9cIDsKK+mAgOa9riA8IHRhaWNob3VcIDsKK+egguWcsCA8IHN1bmFjaGlcIDsKK+mBk+aVmSA8IGRvdWt5b3VcIDsKK+a8q+eUu+WutiA8IG1hbmdha2FcIDsKK+mBjuaXpSA8IGthaml0c3VcIDsKK+i7oumHnSA8IHRlbnNoaW5cIDsKK+iMtueusSA8IGNoYWJha29cIDsKK+W4sOedgCA8IGtpY2hha3VcIDsKK+mBqeaJgCA8IHRla2lzaG9cIDsKK+WDu+mCkSA8IGhla2l5dXVcIDsKK+S4jeacrOaEjyA8IGZ1aG9uJydpXCA7CivmrY7mga8gPCB0YW5zb2t1XCA7Civoi5vomZAgPCBrYWd5YWt1XCA7CivmranlkIjnrpcgPCBidWFpemFuXCA7Civlvavlg48gPCBjaG91em91XCA7Civoqp7lvZnnmoQgPCBnb2l0ZWtpXCA7Civnn7PloZQgPCBzZWtpdG91XCA7Civov5TnkIMgPCBoZW5reXV1XCA7Civnn7PloYAgPCBpc2hpYmVpXCA7CivlvJ/lp6sgPCBvdG9oaW1lXCA7CivliKnmrpYgPCByaXNob2t1XCA7CivlvbnkurogPCB5YWt1bmluXCA7CivovrHnn6UgPCBqb2t1Y2hpXCA7Civli6flkYogPCBrYW5rb2t1XCA7Civnm7Lnm64gPCBtb3Vtb2t1XCA7Civnl5vpoqggPCB0c3V1ZnV1XCA7CivpgLjmnZAgPCBpdHN1emFpXCA7CivnrKzkuIDoqrIgPCBkYWlpa2thXCA7Civlh7rngq0gPCBzaHV0dGFuXCA7CivlvLHlm70gPCBqYWtrb2t1XCA7CivojbfniakgPCBuaW1vdHN1XCA7CivljJfkuIogPCBob2t1am91XCA7CivkupXmiLjnq68gPCBpZG9iYXRhXCA7Civlia/miYsgPCBmdWt1c2h1XCA7Civlib3mgo0gPCBoeW91a2FuXCA7CivoibLph4wgPCBpcm96YXRvXCA7CivnkIbkuovkvJogPCByaWppa2FpXCA7Civnm6Tnn7MgPCBiYW5qYWt1XCA7CivovrLnm7ggPCBub3VzaG91XCA7CivpgYrmkoMgPCB5dXVnZWtpXCA7Civngavmm5zml6UgPCBrYXlvdWJpXCA7CivlhaXoiI4gPCBueXV1c2hhXCA7CivlvqHkuI3mtYQgPCBnb2Z1am91XCA7CivpgJDmrKEgPCBjaGlrdWppXCA7CivovrrnloYgPCBoZW5reW91XCA7CivliY3mlrkgPCBtYWVrYXRhXCA7Civnmb3oj5wgPCBoYWt1c2FpXCA7CivmnKrlrprnvqkgPCBtaXRlaWdpXCA7CivlibLmhJsgPCBrYXRzdWFpXCA7Civnm6PnnaMgPCBrYW50b2t1XCA7CivouoHprLEgPCBzb3V1dHN1XCA7Civmpb3pmoogPCBnYWt1dGFpXCA7Civmronlm70gPCBqdW5rb2t1XCA7CivpgIbmr5QgPCBneWFrdWhpXCA7Civlr77kvY3ms5UgPCB0YWlpaG91XCA7CivlhqXnpo8gPCBtZWlmdWt1XCA7CivnnabmnIggPCBtdXRzdWtpXCA7CivliLvmnKwgPCBrb2t1aG9uXCA7CivmraPlrZAgPCBzaG91c2hpXCA7Civlub3mrJ0gPCB5dXV1dHN1XCA7CivmrrrlgrcgPCBzYXNzaG91XCA7Civmta7mtarlhZAgPCBmdXJvdWppXCA7Civlqabkurrnp5EgPCBmdWppbmthXCA7CivlhoXntIQgPCBuYWl5YWt1XCA7CivlvLflkbMgPCB0c3V5b21pXCA7CivliaPmiJ8gPCBrZW5nZWtpXCA7Civov5TnhacgPCBoZW5zaG91XCA7CivoiYfplbcgPCB0ZWljaG91XCA7Civku5bkuJbnlYwgPCB0YXNla2FpXCA7CivpganlvZMgPCB0ZWtpdG91XCA7CivmhbDlirTph5EgPCBpcm91a2luXCA7CivmqKnog70gPCBrZW4nJ25vdVwgOwor5q2j5auhIDwgc2VpdGVraVwgOwor5qyy5oOFIDwgeW9rdWpvdVwgOwor5bqn5pW3IDwgemFzaGlraVwgOwor5qW86ZajIDwgcm91a2FrdVwgOwor5YiG5rOoIDwgYnVuY2h1dVwgOwor5YyF5LiBIDwgaG91Y2hvdVwgOwor55m66Iq9IDwgaGF0c3VnYVwgOwor6YCy5pWwIDwgc2hpbnN1dVwgOwor55CG5LiN5bC9IDwgcmlmdWppblwgOwor55m+6IisIDwgaHlhcHBhblwgOwor5Ye65rigIDwgc2h1a2t5b1wgOwor5Y2Y5Z2Q5qmfIDwgdGFuemFraVwgOwor6JC95Z+OIDwgcmFrdWpvdVwgOwor5Ymy5b2TIDwgd2FyaWF0ZVwgOwor5qyy5b+1IDwgeW9rdW5lblwgOwor5qif6ISzIDwgc2hvdW5vdVwgOwor5LiN6aO95ZKMIDwgZnVob3V3YVwgOwor6L+R54GrIDwgY2hpa2FiaVwgOwor5Yil5qC8IDwgYmVra2FrdVwgOwor55a+6aKoIDwgc2hpcHB1dVwgOwor6JC95ZywIDwgcmFrdWNoaVwgOwor5YWx57eoIDwga3lvdWhlblwgOwor5q2k5aW0IDwga295YXRzdVwgOwor55uX55mWIDwgdG91aGVraVwgOwor6Ii56ZW3IDwgc2VuY2hvdVwgOwor5Luj6K2w5ZOhIDwgZGFpZ2lpblwgOwor56CU5L+uIDwga2Vuc2h1dVwgOwor5Yi35pawIDwgc2Fzc2hpblwgOwor6Z2e5ZCI55CGIDwgaGlnb3VyaVwgOwor5q6/5LitIDwgZGVuY2h1dVwgOwor5by35YqbIDwgZ291cmlraVwgOwor5bqP5puyIDwgam9reW9rdVwgOwor57eP5YuZ6KqyIDwgc291bXVrYVwgOwor5bqK5p2/IDwgeXVrYWl0YVwgOwor6YCa5pyJIDwgdHN1dXl1dVwgOwor5YW157OnIDwgaHlvdXJvdVwgOwor55uG55+zIDwgYm9uc2VraVwgOwor5qyj5oKmIDwga2luZXRzdVwgOwor5YW457GNIDwgdGVuc2VraVwgOwor6YGT5b6zIDwgZG91dG9rdVwgOwor55eF6ZujIDwgYnlvdW5hblwgOwor5Yqb5aOrIDwgcmlraXNoaVwgOwor5qSw5a2Q5rK5IDwgeWFzaGl5dVwgOwor6LuK6LybIDwgc2hhcnlvdVwgOwor5YW157GNIDwgaGVpc2VraVwgOwor6YCf5patIDwgc29rdWRhblwgOwor6LuK6Lu4IDwgc2hhamlrdVwgOwor5YaF56mNIDwgbmFpc2VraVwgOwor5Ymj5b2iIDwga2VuZ2F0YVwgOwor6I2S54mpIDwgYXJhbW9ub1wgOwor55uy54iGIDwgbW91YmFrdVwgOwor5YO76KuWIDwgaGVraXJvblwgOwor5by35YW1IDwga3lvdWhlaVwgOwor5YWs57SEIDwga291eWFrdVwgOwor5q615LiYIDwgZGFua3l1dVwgOwor6L6y54mnIDwgbm91Ym9rdVwgOwor5YWl57a/IDwgaXJld2F0YVwgOwor5rC05rOz552AIDwgc3VpZWlnaVwgOwor5qiq57eaIDwgeW9rb3NlblwgOwor55m95769IDwgc2hpcmFoYVwgOwor5bO76Zm6IDwgc2h1bmtlblwgOwor5ber56WdIDwgZnVzaHVrdVwgOwor6Lu46KOFIDwgamlrdXNvdVwgOwor55uj542EIDwga2FuZ29rdVwgOwor5Yil5pmCIDwgYmV0c3VqaVwgOwor5byU5ZWPIDwgY2hvdW1vblwgOwor5YWo57SaIDwgemVua3l1dVwgOwor5YaF56aPIDwgbmFpZnVrdVwgOwor5YaZ55yfIDwgc2hhc2hpblwgOwor5Yed5rueIDwgZ3lvdXRhaVwgOwor6YGT5bqKIDwgZG91c2hvdVwgOwor5q6K5YudIDwgc2h1c2hvdVwgOwor6LuN6LazIDwgZ3Vuc29rdVwgOwor5YO76KiAIDwgaGVraWdlblwgOwor57W16I2J57SZIDwgZXpvdXNoaVwgOwor5Ymj5bmVIDwga2VubWFrdVwgOwor5Ye25q2zIDwga3lvdXNhaVwgOwor5Ymb5by3IDwgZ291a3lvdVwgOwor5YiG5qWtIDwgYnVuZ3lvdVwgOwor6Lui6Kq/IDwgdGVuY2hvdVwgOwor5q2M5aerIDwgdXRhaGltZVwgOwor6YGg5bGxIDwgdG9veWFtYVwgOwor5qiq57O4IDwgeW9rb2l0b1wgOwor5qyh5byPIDwgamlzaGlraVwgOwor6YGK5byLIDwgeXV1eW9rdVwgOwor6YG65aSxIDwgaXNoaXRzdVwgOwor6YG45aWoIDwgc2Vuc2hvdVwgOwor5YO76KaLIDwgaGVraWtlblwgOwor6Iqx6JG1IDwgaGFuYWFvaVwgOwor6JC95ZG9IDwgcmFrdW1laVwgOwor6YGK5buTIDwgeXV1a2FrdVwgOwor5qi556uLIDwganVyaXRzdVwgOwor6a2U6KGTIDwgbWFqdXRzdVwgOwor5Yeh5rWBIDwgYm9ucnl1dVwgOwor6IiM6Z+zIDwgemV0c3VvblwgOwor5Yid5pelIDwgaGF0c3VoaVwgOwor5byV5Y+XIDwgaGlraXVrZVwgOwor5YqH5aSJIDwgZ2VraWhlblwgOwor5bu65Zu9IDwga2Vua29rdVwgOwor55+t5YaKIDwgdGFuemFrdVwgOwor55+z5YOPIDwgc2VraXpvdVwgOwor552j5oimIDwgdG9rdXNlblwgOwor55y65pybIDwgY2hvdWJvdVwgOwor5YqH5aOHIDwgZ2VraWRhblwgOwor6L+R5rOBIDwga2lua3lvdVwgOwor5qyg5bitIDwga2Vzc2VraVwgOwor5beo55+zIDwga3lvc2VraVwgOwor5q205Y+yIDwgcmVraXNoaVwgOwor5bmz5pyNIDwgaGVpZnVrdVwgOwor6Lui6KaGIDwgdGVucHVrdVwgOwor5qmf55WlIDwga2lyeWFrdVwgOwor5bCP54qs5bqnIDwga29pbnV6YVwgOwor5YqH5aC0IDwgZ2VraWpvdVwgOwor6Lqr6L+RIDwgbWlkamlrYVwgOwor6YCG5peFIDwgZ2VraXJ5b1wgOwor6Lqr6L66IDwgc2hpbnBlblwgOwor5YiG5p6QIDwgYnVuc2VraVwgOwor5byx5L2TIDwgamFrdXRhaVwgOwor5qiq56ybIDwgeW9rb2J1ZVwgOwor55m657WmIDwgaGFra3l1dVwgOwor6Lu96JaEIDwga2VpaGFrdVwgOwor5byV5YqbIDwgaW5yeW9rdVwgOwor5YaG55uGIDwgbWFydWJvblwgOwor6LWk5ZGz5ZmMIDwgYWthbWlzb1wgOwor6JGX5L2cIDwgY2hvc2FrdVwgOwor55ep6LqrIDwgc291c2hpblwgOwor6Iqx6ImyIDwgaGFuYWlyb1wgOwor6YCf5oiQIDwgc29rdXNlaVwgOwor5bem55u0IDwgc2FjaG9rdVwgOwor5YmN5bm0IDwgemVuJyduZW5cIDsKK+mAgeaWmSA8IHNvdXJ5b3VcIDsKK+mxl+acqCA8IHJpbmJva3VcIDsKK+eZveeyiSA8IG9zaGlyb2lcIDsKK+WGheeahCA8IG5haXRla2lcIDsKK+iLpuevgCA8IGt1c2V0c3VcIDsKK+eZveexsyA8IGhha3VtYWlcIDsKK+efreS/oSA8IHRhbnNoaW5cIDsKK+aoqueptCA8IHlva29hbmFcIDsKK+altemBkyA8IGdva3Vkb3VcIDsKK+Wvvue+qeiqniA8IHRhaWdpZ29cIDsKK+ect+aXjyA8IGtlbnpva3VcIDsKK+mBk+WtpiA8IGRvdWdha3VcIDsKK+WBtOmdoiA8IHNva3VtZW5cIDsKK+W5o+adnyA8IGhlaXNva3VcIDsKK+WKqeWLoiA8IHN1a2V6ZWlcIDsKK+WKn+WQjSA8IGtvdW15b3VcIDsKK+iJh+i6qyA8IHRlaXNoaW5cIDsKK+axmuafk+iPjCA8IG9zZW5raW5cIDsKK+mBjuWvhiA8IGthbWl0c3VcIDsKK+S4ieaXpei3ryA8IG1pa2thamlcIDsKK+WKquWKmyA8IGRvcnlva3VcIDsKK+WxhemFkuWxiyA8IGl6YWtheWFcIDsKK+W6reW4qyA8IG5pd2FzaGlcIDsKK+mqqOmqvCA8IGtva2tha3VcIDsKK+WKqeWKmyA8IGpvcnlva3VcIDsKK+i/veaUviA8IHRzdWlob3VcIDsKK+iHquWutuijvSA8IGppa2FzZWlcIDsKK+mBiuWtpiA8IHl1dWdha3VcIDsKK+ats+WFpSA8IHNhaW55dXVcIDsKK+mzqeWQiCA8IGt5dXVnb3VcIDsKK+asoOWtlyA8IGtldHN1amlcIDsKK+Whl+W4g+WJpCA8IHRvZnV6YWlcIDsKK+ato+WMlyA8IHNlaWhva3VcIDsKK+WCt+i3oSA8IGtpenVhdG9cIDsKK+atpuWKmyA8IGJ1cnlva3VcIDsKK+mBqeWcsCA8IHRla2ljaGlcIDsKK+WKn+WKmyA8IGtvdXJpa2lcIDsKK+WPpOWFuOiqniA8IGtvdGVuZ29cIDsKK+iNkuazoiA8IGFyYW5hbWlcIDsKK+i/kealrSA8IGtpbmd5b3VcIDsKK+ecn+abuCA8IHNoaW5zaG9cIDsKK+W6teWupCA8IGFuaml0c3VcIDsKK+WFseebiiA8IGt5b3Vla2lcIDsKK+mAmuaApyA8IHRzdXVzZWlcIDsKK+ato+WJhyA8IHNlaXNva3VcIDsKK+msseihgCA8IHVra2V0c3VcIDsKK+WFvOeUqCA8IGtlbicneW91XCA7CivlirTkvZwgPCByb3VzYWt1XCA7CivpgJrlv7UgPCB0c3V1bmVuXCA7Civlh4vmrosgPCBjaG91emFuXCA7CivkuI3mma/msJcgPCBmdWtlaWtpXCA7CivlhrfmtrwgPCByZWlyeW91XCA7Civou73oiJ8gPCBrZWlzaHV1XCA7CivokL3kvZMgPCByYWt1dGFpXCA7CivpgKPlubQgPCByZW4nJ25lblwgOwor5YiH5o+bIDwga2lyaWthZVwgOwor55eV6LehIDwga29uc2VraVwgOwor5ZCI55CG5YyWIDwgZ291cmlrYVwgOwor5bmy5ouTIDwga2FudGFrdVwgOwor5q275Lq6IDwgc2hpYml0b1wgOwor5YWs55qEIDwga291dGVraVwgOwor5bu65YmNIDwgdGF0ZW1hZVwgOwor5YiH5o6bIDwga2lra2FrZVwgOwor6YCy5bGVIDwgc2hpbnRlblwgOwor5qyg5aaCIDwga2V0c3Vqb1wgOwor6aqo6aCCIDwga290Y2hvdVwgOwor5qiq552AIDwgb3VjaGFrdVwgOwor5YiG5o6MIDwgYnVuc2hvdVwgOwor5byB5YSfIDwgYmVuc2hvdVwgOwor5ouJ5LiB6KqeIDwgcmF0ZW5nb1wgOwor5YiR5oiuIDwga2VpcmlrdVwgOwor6YCa5byKIDwgdHN1dWhlaVwgOwor55m656WlIDwgaGFzc2hvdVwgOwor6YCa5byBIDwgdHN1dWJlblwgOwor5q205LydIDwgcmVraWRlblwgOwor5bm95oSBIDwgeXV1c2h1dVwgOwor6JC95Lq6IDwgb2NodXVkb1wgOwor5YWl55ujIDwgbnl1dWthblwgOwor5q275LitIDwgc2hpY2h1dVwgOwor5q205Lu7IDwgcmVraW5pblwgOwor5Yil5b6MIDwgYmV0c3Vnb1wgOwor6Zu756OB5rOiIDwgZGVuamloYVwgOwor5q205LujIDwgcmVraWRhaVwgOwor5YWx55SoIDwga3lvdXlvdVwgOwor5qW16LKnIDwgZ29rdWhpblwgOwor5YWx55SjIDwga3lvdXNhblwgOwor5qip55uKIDwga2VuJydla2lcIDsKK+W5u+aDkSA8IGdlbndha3VcIDsKK+i7ouiQvSA8IHRlbnJha3VcIDsKK+W5leaUvyA8IGJha3VzZWlcIDsKK+ecjOaciSA8IGtlbicneXV1XCA7Civov73mh5AgPCB0c3Vpa2FpXCA7CivprZrohbkgPCBneW9mdWt1XCA7CivpgJrluLggPCB0c3V1am91XCA7Civov73mhrYgPCB0c3Vpb2t1XCA7CivouorouocgPCBjaHV1Y2hvXCA7CivprLzok64gPCBvbmliYXN1XCA7CivnnJ/mka8gPCBzaGluc2hpXCA7Civpm7vno4HmsJcgPCBkZW5qaWtpXCA7Civnmobnm64gPCBrYWltb2t1XCA7Civnmb3noIIgPCBoYWt1c2hhXCA7CivmpoLoqZUgPCBnYWloeW91XCA7CivlvIvkurogPCB5b2t1amluXCA7Civlh53mnJsgPCBneW91Ym91XCA7Civlgr7op5IgPCBrZWlrYWt1XCA7CivlhbjnjYQgPCB0ZW5nb2t1XCA7Civpr5vnhLwgPCB0YWl5YWtpXCA7CivpganlkIggPCB0ZWtpZ291XCA7CivliofliaQgPCBnZWtpemFpXCA7CivliKXluK0gPCBiZXNzZWtpXCA7CivlhYPnpoQgPCBnZW5yb2t1XCA7Civlgr7opoYgPCBrZWlmdWt1XCA7CivprZrogokgPCBneW9uaWt1XCA7CivlhaXnlKggPCBueXV1eW91XCA7Civnmb3nnLwgPCBoYWt1Z2FuXCA7CivojZLmpa0gPCBhcmF3YXphXCA7CivliLrlrZAgPCBzYXNoaWtvXCA7CivmraPkvZMgPCBzaG91dGFpXCA7CivpgIblvpIgPCBneWFrdXRvXCA7CivlsbHpupMgPCBzYW5yb2t1XCA7Civov47mmKUgPCBnZWlzaHVuXCA7Civnmb3nm64gPCBzaGlyb21lXCA7CivliJflvLcgPCByZWtreW91XCA7CivovrLmpa0gPCBub3VneW91XCA7CivliIfmhJsgPCBzZXRzdWFpXCA7CivlgJnps6UgPCBrb3VjaG91XCA7CivmoITppIrkvqEgPCBlaXlvdWthXCA7CivpgoTkv5cgPCBnZW56b2t1XCA7CivpgJ/lsIQgPCBzb2t1c2hhXCA7Civov7fmg5EgPCBtZWl3YWt1XCA7CivpgLzloZ4gPCBoaXNzb2t1XCA7Civnl5voqIAgPCB0c3V1Z2VuXCA7CivliJ3lt7MgPCBoYXRzdW1pXCA7CivnrKzkuozmrKEgPCBkYWluaWppXCA7Civnlr7otbAgPCBzaGlzc291XCA7CivliJfluqcgPCByZXRzdXphXCA7CivnnYDluqcgPCBjaGFrdXphXCA7CivojLbmrrsgPCBjaGFnYXJhXCA7Civov73lvpMgPCB0c3VpanV1XCA7CivmraPkuK0gPCBzZWljaHV1XCA7CivouqzooYwgPCBreXV1a291XCA7Civnmb3nl7QgPCBoYWt1Y2hpXCA7CivkupXmiLjmsLQgPCBpZG9taXp1XCA7Civlh7bmiYsgPCBreW91c2h1XCA7CivluILms4EgPCBzaGlreW91XCA7CivliJfluK0gPCByZXNzZWtpXCA7CivluJ3mpa0gPCB0ZWlneW91XCA7CivliY3lnoIgPCBtYWVkYXJlXCA7CivkuIDlgIvkurogPCBpa2tvamluXCA7CivkuqHnpZbniLYgPCBib3Vzb2Z1XCA7CivlvqHmnLHljbAgPCBnb3NodWluXCA7CivnnYDlt6UgPCBjaGFra291XCA7CivlibLli5ggPCB3YXJpa2FuXCA7CivnlbDmgKfkvZMgPCBpc2VpdGFpXCA7CivnmbrnlrkgPCBob3NzaGluXCA7Civps6XkurogPCBjaG91amluXCA7Civov47mkoMgPCBnZWlnZWtpXCA7CivpgLLloYEgPCBzaGlucnVpXCA7CivliaPlkZEgPCBrZW4nJ25vblwgOwor5YaS5racIDwgYm91dG9rdVwgOwor5qSc6Y+hIDwga2Vua3lvdVwgOwor5YWI55qHIDwgc2VuJydub3VcIDsKK+mAgOW4rSA8IHRhaXNla2lcIDsKK+WIpeWutCA8IGJldHN1ZW5cIDsKK+mAseWgsSA8IHNodXVob3VcIDsKK+WJsuWJjSA8IHdhcmltYWVcIDsKK+WGhua7kSA8IGVua290c3VcIDsKK+WIpeWuhSA8IGJldHRha3VcIDsKK+WFjeeWqyA8IG1lbicnZWtpXCA7CivlibLliKQgPCB3YXJpaGFuXCA7CivpnZ7lkIzmnJ8gPCBoaWRvdWtpXCA7Civou7jnt5ogPCBqaWt1c2VuXCA7CivljYHpnLLnm6QgPCBzb3JvYmFuXCA7CivlgbTovrogPCBzb2t1aGVuXCA7CivmrKDlk6EgPCBrZXRzdWluXCA7Civmo5LpsYggPCBib3VkYXJhXCA7CivlhaXniakgPCBpcmVtb25vXCA7CivlhaXniaIgPCBueXV1cm91XCA7Civpgbjku7sgPCBzZW4nJ25pblwgOwor5Ye25oKqIDwga3lvdWFrdVwgOwor562G6KiY5YW3IDwgaGlra2lndVwgOwor55Wq6ZW3IDwgYmFuY2hvdVwgOwor56mP5YGl5rS+IDwgb25rZW5oYVwgOwor6IKy5YWQ5ZySIDwgaWt1amllblwgOwor5bm85bCRIDwgeW91c2hvdVwgOwor6Zu75rCX54KJIDwgZGVua2lyb1wgOwor6I2J5pyoIDwgc291bW9rdVwgOwor55uu5pifIDwgbWVib3NoaVwgOwor5L6d5a2Y5oCnIDwgaXpvbnNlaVwgOwor5bm95a+CIDwgeXV1amFrdVwgOwor5YOa6ImmIDwgcnlvdWthblwgOwor5YiG5be7IDwgYnVubWFraVwgOwor5q+U5Y+h5bGxIDwgaGllaXphblwgOwor55mp55eFIDwgcmFpYnlvdVwgOwor6YCa5aWPIDwgdHN1dXNvdVwgOwor55aj6LazIDwgaWJvYXNoaVwgOwor5L6d6aC86ICFIDwgaXJhaXNoYVwgOwor6Imv6IO9IDwgcnlvdW5vdVwgOwor6LyJ56mNIDwgc2Fpc2VraVwgOwor6Iy25qOaIDwgY2hhZGFuYVwgOwor5bm85a2QIDwgb3NhbmFnb1wgOwor6YGp5L6LIDwgdGVraXJlaVwgOwor5qSc6YedIDwga2Vuc2hpblwgOwor5Ye65bu3IDwgc2h1dHRlaVwgOwor5bSp6JC9IDwgaG91cmFrdVwgOwor55yf5b2xIDwgc2hpbicnZWlcIDsKK+W5tOWwkSA8IG5lbnNob3VcIDsKK+W5o+W4myA8IGhlaWhha3VcIDsKK+WHtuW8viA8IGt5b3VkYW5cIDsKK+mAn+WgsSA8IHNva3Vob3VcIDsKK+eUsumrmCA8IGtvdWRha2FcIDsKK+eZveeKtiA8IGhha3Vqb3VcIDsKK+ijveayueaJgCA8IHNlaXl1am9cIDsKK+mBqeS7uyA8IHRla2luaW5cIDsKK+WItuWcpyA8IHNlaWF0c3VcIDsKK+eWvuimliA8IHNoaXNzaGlcIDsKK+iLpueGsSA8IGt1bmV0c3VcIDsKK+eZuueLgiA8IGhha2t5b3VcIDsKK+WJteS9nCA8IHNvdXNha3VcIDsKK+aqhOaWhyA8IGdla2lidW5cIDsKK+WGheaxoCA8IHVjaGlpa2VcIDsKK+ebruaSpSA8IG1lYmFjaGlcIDsKK+WBj+mHnSA8IGhlbnNoaW5cIDsKK+mAgOWtpiA8IHRhaWdha3VcIDsKK+WBj+mHjSA8IGhlbmNob3VcIDsKK+W5tOWtkCA8IHRvc2hpZ29cIDsKK+mAmuWgsSA8IHRzdXVob3VcIDsKK+WfuuacrOiqniA8IGtpaG9uZ29cIDsKK+WJo+WFiCA8IGtlbnNha2lcIDsKK+WHtuW5tCA8IGt5b3VuZW5cIDsKK+ecn+W5syA8IG1hcHBpcmFcIDsKK+eZkuedgCA8IHl1Y2hha3VcIDsKK+W+oeS4ieWutiA8IGdvc2Fua2VcIDsKK+WJr+S9vyA8IGZ1a3VzaGlcIDsKK+iOq+WkpyA8IGJha3VkYWlcIDsKK+WJjeWOhCA8IG1hZXlha3VcIDsKK+mtmuernCA8IGd5b3J5dXVcIDsKK+i/t+WuriA8IG1laWt5dXVcIDsKK+mBheWIuyA8IGNoaWtva3VcIDsKK+W5lOW5lSA8IG1hbm1ha3VcIDsKK+S6lOevgOWPpSA8IGdvc2Vra3VcIDsKK+ajrumWkSA8IHNoaW5rYW5cIDsKK+i+n+aYkyA8IGhla2lla2lcIDsKK+WFpea8gSA8IG55dXVneW9cIDsKK+ebtOaKqyA8IGNob2t1aGlcIDsKK+iqpOWLleS9nCA8IGdvZG91c2FcIDsKK+eZuueFmSA8IGhhdHN1ZW5cIDsKK+iIn+ihjCA8IHNodXVrb3VcIDsKK+WyuOi+uiA8IGtpc2hpYmVcIDsKK+mBk+S/lyA8IGRvdXpva3VcIDsKK+mAsuWPliA8IHNoaW5zaHVcIDsKK+iGqOmahiA8IGJvdXJ5dXVcIDsKK+WAjemhjSA8IGJhaWdha3VcIDsKK+ebruaMhyA8IG1va3VzaGlcIDsKK+W9seWNsOacrCA8IGVpaW5ob25cIDsKK+mtlOeqnyA8IG1ha3V0c3VcIDsKK+WHneW/tSA8IGd5b3VuZW5cIDsKK+W3oeattCA8IGp1bnJla2lcIDsKK+WxsemggiA8IHNhbmNob3VcIDsKK+WFpea5ryA8IG55dXV0b3VcIDsKK+WHuuWxlSA8IHNodXR0ZW5cIDsKK+WFpea4oCA8IG55dXVreW9cIDsKK+iLm+eDiCA8IGthcmV0c3VcIDsKK+e1jOWWtuiyuyA8IGtlaWVpaGlcIDsKK+i/q+WusyA8IGhha3VnYWlcIDsKK+WFq+a0siA8IHlhc2hpbWFcIDsKK+WGhuebuOWgtCA8IGVuc291YmFcIDsKK+i9n+ayiCA8IGdvdWNoaW5cIDsKK+ecjOW6gSA8IGtlbmNob3VcIDsKK+WHoeW6uCA8IGJvbicneW91XCA7CivnmYfnmZYgPCBrYW5wZWtpXCA7CivoibLntKAgPCBzaGlraXNvXCA7Civov5HlubQgPCBraW4nJ25lblwgOwor55uG5pquIDwgYm9ua3VyZVwgOwor6LmJ6LeMIDwgc2F0ZXRzdVwgOwor5bm05aKXIDwgdG9zaGltYVwgOwor6YGT5Li7IDwgZG91c2h1dVwgOwor5YeL5oK0IDwgY2hvdXN1aVwgOwor6YGT5LitIDwgZG91Y2h1dVwgOwor5bGx6Zm9IDwgc2FuJyd5b3VcIDsKK+WxsemZtSA8IHNhbnJ5b3VcIDsKK+mBiuS8kSA8IHl1dWt5dXVcIDsKK+eXmOiLlyA8IHRvdWJ5b3VcIDsKK+mAseWIiiA8IHNodXVrYW5cIDsKK+iiq+eWkeiAhSA8IGhpZ2lzaGFcIDsKK+W6luWOqCA8IGhvdWNodXVcIDsKK+WAkumWoyA8IHRvdWtha3VcIDsKK+WIl+WbvSA8IHJla2tva3VcIDsKK+edo+WKsSA8IHRva3VyZWlcIDsKK+W3oealrSA8IGp1bmd5b3VcIDsKK+aomea6liA8IGh5b3VqdW5cIDsKK+iPiuWIpCA8IGtpa3ViYW5cIDsKK+eUo+mhjSA8IHNhbmdha3VcIDsKK+mAseWGhSA8IHNodXVuYWlcIDsKK+mwu+WxiyA8IHVuYWdpeWFcIDsKK+WFpeawtCA8IG55dXVzdWlcIDsKK+WItuWLnSA8IHNlaXNob3VcIDsKK+WIu+WIuyA8IGtva2tva3VcIDsKK+WCmeiThCA8IGJpY2hpa3VcIDsKK+mAmuWQjSA8IHRvb3JpbmFcIDsKK+i7jeexjSA8IGd1bnNla2lcIDsKK+iIueiItiA8IHNlbnBha3VcIDsKK+mAo+WLnSA8IHJlbnNob3VcIDsKK+mAmuWPsiA8IHRzdXVzaGlcIDsKK+ebtOW+jCA8IGNob2t1Z29cIDsKK+ebtOW+gCA8IGNob2t1b3VcIDsKK+aUvueBq+mtlCA8IGhvdWthbWFcIDsKK+S/rumkiiA8IHNodXV5b3VcIDsKK+S4jeaWreedgCA8IGZ1ZGFuZ2lcIDsKK+iBlui3r+WKoCA8IHNlaXJva2FcIDsKK+eXheiPjCA8IGJ5b3VraW5cIDsKK+WHuuWllCA8IHNodXBwb25cIDsKK+alveiBliA8IGdha3VzZWlcIDsKK+iIueiFuSA8IHNlbnB1a3VcIDsKK+S4i+e3mumDqCA8IGthc2VuYnVcIDsKK+eZvea0siA8IHNoaXJhc3VcIDsKK+WHoeWwjyA8IGJvbnNob3VcIDsKK+WJjeS7uyA8IHplbicnbmluXCA7Civlt6jmnKggPCBreW9ib2t1XCA7CivoiKzoi6UgPCBoYW4nJ255YVwgOwor5YK36ICFIDwgc2hvdXNoYVwgOwor5YaG5puyIDwgZW5reW9rdVwgOwor5bC+6aqoIDwgYmlrb3RzdVwgOwor5bqD5ZGKIDwga291a29rdVwgOwor6Iqd55SfIDwgc2hpYmFmdVwgOwor6YCa5YukIDwgdHN1dWtpblwgOwor6Ieq6KqsIDwgamlzZXRzdVwgOwor5YWF5rqiIDwganV1aXRzdVwgOwor55yL5a6iIDwga2Fua2FrdVwgOwor6Iy25omYIDwgY2hhdGFrdVwgOwor55yf5aSPIDwgbWFuYXRzdVwgOwor6L665bmFIDwgaGVucHVrdVwgOwor5bqX5YaFIDwgdGVuJyduYWlcIDsKK+WkmuasoeWFgyA8IHRhamlnZW5cIDsKK+W3neafsyA8IHNlbnJ5dXVcIDsKK+alreiFuSA8IGdvdWhhcmFcIDsKK+iJr+eoriA8IHJ5b3VzaHVcIDsKK+WAn+mHkSA8IHNoYWtraW5cIDsKK+WJiuS6lSA8IHNha3VzZWlcIDsKK+S8vOmdnuiAhSA8IGVzZW1vbm9cIDsKK+W6j+WIlyA8IGpvcmV0c3VcIDsKK+WAkumMryA8IHRvdXNha3VcIDsKK+W4neW+syA8IHRlaXRva3VcIDsKK+iEs+WkluenkSA8IG5vdWdla2FcIDsKK+mAmuWIhiA8IHRzdXVidW5cIDsKK+i/veWWhCA8IHRzdWl6ZW5cIDsKK+WHtuWgsSA8IGt5b3Vob3VcIDsKK+W+oeS4i+WVjyA8IGdva2Ftb25cIDsKK+aknOiqjSA8IGtlbicnbmluXCA7CivojZLlt7sgPCBhcmFtYWtpXCA7Civnl4XoiI4gPCBieW91c2hhXCA7CivoiJ7ojLggPCBtYWl0YWtlXCA7CivpgLHku6QgPCBzaHV1cmVpXCA7Civlh4blt54gPCBqdW5zaHV1XCA7CivohoPogq3oh40gPCBvdHRvc2VpXCA7CivlhbHmoJMgPCB0b21vc2VuXCA7CivlpbPmgKflmaggPCBqb3NlaWtpXCA7CivlrbXljbXlmaggPCBmdXJhbmtpXCA7CivmpJzoqLwgPCBrZW5zaG91XCA7CivnhKHnkIbop6MgPCBtdXJpa2FpXCA7CivluLjlrr8gPCBqb3V5YWRvXCA7Civkv6HpoLwgPCBzaGlucmFpXCA7CivlhYnmsqIgPCBrb3V0YWt1XCA7CivluJ3lu58gPCB0ZWlieW91XCA7Civlh7nlnLAgPCBrdWJvY2hpXCA7Civlh7jlnYogPCBkZWtvYm91XCA7Civou43npaggPCBndW5weW91XCA7Civnm5vlvrMgPCBzZWl0b2t1XCA7Civmpa3ogIUgPCBneW91c2hhXCA7Civou43npZ4gPCBndW5zaGluXCA7CivouYjopbIgPCB0b3VzaHV1XCA7CivoiJ/oiYcgPCBzaHV1dGVpXCA7CivmqKrmo5IgPCB5b2tvYm91XCA7CivlubTlj44gPCBuZW5zaHV1XCA7CivlhaXmooUgPCBueXV1YmFpXCA7CivohZPpqqggPCBoaWtvdHN1XCA7CivlhbHmnIkgPCBreW91eXV1XCA7CivpsKTlrZAgPCBidXJpa2tvXCA7Civnm7jlrqIgPCBhaWt5YWt1XCA7CivniLbmgKfmhJsgPCBmdXNlaWFpXCA7Civov73lj7cgPCB0c3VpZ291XCA7CivpgKPkvZwgPCByZW5zYWt1XCA7CivlhY7mrKAgPCB0b2tldHN1XCA7CivlhYbmsJEgPCBjaG91bWluXCA7CivliKXlhIAgPCBiZXRzdWdpXCA7CivpnZ7mraboo4UgPCBoaWJ1c291XCA7Civoia/nn6UgPCByeW91Y2hpXCA7CivpgKPkvJEgPCByZW5reXV1XCA7CivliIflkbMgPCBraXJlYWppXCA7CivpgKDkvZwgPCB6b3VzYWt1XCA7Civlha3mm7ggPCByb2t1c2hvXCA7CivnnYDliaMgPCBjaGFra2VuXCA7CivliIblkaggPCBidW5zaHV1XCA7Civlha3mm5wgPCByb2t1eW91XCA7CivlhavmnJQgPCBoYXNzYWt1XCA7CivliKrkv64gPCBzYW5zaHV1XCA7Civlh4blsIYgPCBqdW5zaG91XCA7CivohZXpppYgPCB1ZGVrdWJpXCA7CivnnLzlipsgPCBnYW5yaWtpXCA7CivpgJrkvosgPCB0c3V1cmVpXCA7CivmqJnmppwgPCBoeW91Ym91XCA7CivlhaXmnaUgPCBueXV1cmFpXCA7CivnlaXorZwgPCByeWFrdWZ1XCA7CivovaLmlq0gPCByZWtpZGFuXCA7Civou6LnlKggPCB0ZW4nJ3lvdVwgOwor55qQ5pyIIDwgc2F0c3VraVwgOwor6YCj5LitIDwgcmVuY2h1dVwgOwor5YWD5q2MIDwgbW90b3V0YVwgOwor6Imy55m9IDwgaXJvamlyb1wgOwor5bKp6KeSIDwgaXdha2Fkb1wgOwor5ZCM54i25q+NIDwgZG91ZnVib1wgOwor6Iy25bqXIDwgY2hhbWlzZVwgOwor5Yed5aGKIDwgZ3lvdWthaVwgOwor5Ye65ZOBIDwgc2h1cHBpblwgOwor6L6y5a2mIDwgbm91Z2FrdVwgOwor6YCa5Lq6IDwgdHN1dWppblwgOwor55Wl6KqeIDwgcnlha3Vnb1wgOwor5YOt55SoIDwgc2VuJyd5b3VcIDsKK+i4iui6jSA8IHlvdXlha3VcIDsKK+iMtuW4rSA8IGNoYXNla2lcIDsKK+i/veWIiiA8IHRzdWlrYW5cIDsKK+eUqOmHjyA8IHlvdXJ5b3VcIDsKK+iHquiZkCA8IGppZ3lha3VcIDsKK+msvOeVnCA8IGtpY2hpa3VcIDsKK+iFkOmjnyA8IGZ1c2hva3VcIDsKK+W5tOWGhSA8IG5lbicnbmFpXCA7Civlgo3ogbQgPCBib3VjaG91XCA7Civlt6bmipggPCBzYXNldHN1XCA7Civnmb3moYMgPCBoYWt1dG91XCA7CivlpbPmgKfljJYgPCBqb3NlaWthXCA7Civoi6Xmnp0gPCB3YWthZWRhXCA7Civov5Hlm70gPCBraW5nb2t1XCA7CivoiLnnsY0gPCBzZW5zZWtpXCA7CivlhYPmqJkgPCBnZW5weW91XCA7Civlh7rlj6MgPCBkZWd1Y2hpXCA7CivliIfliYogPCBzZXNzYWt1XCA7CivnlaXop6MgPCByeWFra2FpXCA7CivliIDljKAgPCB0b3VzaG91XCA7CivnmbrmoYggPCBoYXRzdWFuXCA7CivnhKHmnJ/pmZAgPCBtdWtpZ2VuXCA7Civou5/nkIMgPCBuYW5reXV1XCA7Civkv67pjKwgPCBzaHV1cmVuXCA7Civoh6rlrrbnlKggPCBqaWtheW91XCA7Civnm7TlpY8gPCBqaWtpc291XCA7CivoiKrntpogPCBrb3V6b2t1XCA7Civoia/nlLAgPCByeW91ZGVuXCA7CivotrPpn7MgPCBhc2hpb3RvXCA7CivlhYjmo5IgPCBzYWtpYm91XCA7Civlrrbns7vlm7MgPCBrYWtlaXp1XCA7CivkuIDkuJbntIAgPCBpc3NlaWtpXCA7CivliIjlhaUgPCBrYXJpaXJlXCA7Civnmb3mnKggPCBzaGlyYWtpXCA7Civoh6rnlLHluqYgPCBqaXl1dWRvXCA7CivmqJnmnKwgPCBoeW91aG9uXCA7Civnmb3mm7ggPCBoYWt1c2hvXCA7CivmsZrmn5PmupAgPCBvc2VuZ2VuXCA7Civou43nlKggPCBndW4nJ3lvdVwgOwor5Yid5LmzIDwgc2hvbnl1dVwgOwor5bmz5L+hIDwgaGVpc2hpblwgOwor6I2S5aOBIDwgYXJha2FiZVwgOwor5YWr5o6bIDwgaGFra2FrZVwgOwor6Lyq5qWtIDwgcmluZ3lvdVwgOwor6Iy25a+uIDwgY2hhcnlvdVwgOwor5bmz5L2cIDwgaGVpc2FrdVwgOwor55uy5Z+3IDwgbW91c2h1dVwgOwor55SY6YWSIDwgYW1hemFrZVwgOwor5YWD5qCTIDwgbW90b3NlblwgOwor5YWr5oy6IDwgaGF0Y2hvdVwgOwor55yf5YmjIDwgc2hpbmtlblwgOwor5L6d6aC854q2IDwgaXJhaWpvdVwgOwor5Ye55Ye4IDwgb3V0b3RzdVwgOwor6L6b5a2QIDwga2FyYXNoaVwgOwor5Ye45Ye5IDwgdG90c3VvdVwgOwor55m+5pa5IDwgaHlhcHBvdVwgOwor5YG06IOMIDwgc29rdWhhaVwgOwor55mC5rOVIDwgcnlvdWhvdVwgOwor5YWl5o6bIDwgaXJla2FrdVwgOwor6L+35L+hIDwgbWVpc2hpblwgOwor5Ye25YiDIDwga3lvdWppblwgOwor56ys5LiA5q2pIDwgZGFpaXBwb1wgOwor5Ye65YW1IDwgc2h1cHBlaVwgOwor55m95paRIDwgaGFrdWhhblwgOwor6YCA5LqsIDwgdGFpa3lvdVwgOwor55m95paHIDwgaGFrdWJ1blwgOwor5b6u5aG15a2QIDwgbWlqaW5rb1wgOwor5Ye45YaGIDwgdG90c3VlblwgOwor5bGx6LOKIDwgc2Fuem9rdVwgOwor55y85LitIDwgZ2FuY2h1dVwgOwor6LSU5bGT55uuIDwgaGlpa2ltZVwgOwor5YG06IGeIDwgc29rdWJ1blwgOwor5qWt56iuIDwgZ3lvdXNodVwgOwor5YWr5omLIDwgeWF0c3VkZVwgOwor6Imy54mpIDwgaXJvbW9ub1wgOwor55ez55eFIDwgcmluYnlvdVwgOwor5YWD5pyNIDwgZ2VucHVrdVwgOwor5L+u6YGTIDwgc2h1dWRvdVwgOwor5YWL5piOIDwga29rdW1laVwgOwor5bm05LiKIDwgdG9zaGl1ZVwgOwor5L+d6YeIIDwgaG9zaGFrdVwgOwor5YWl5omLIDwgbnl1dXNodVwgOwor5YWl5omAIDwgbnl1dXNob1wgOwor6L+w5L2cIDwganVzc2FrdVwgOwor6Zu756OB5aC0IDwgZGVuamliYVwgOwor55u05Za2IDwgY2hva3VlaVwgOwor5bCP6Z2iIDwgc2hvdW1lblwgOwor5bC/6YW4IDwgbnlvdXNhblwgOwor6L6b5aS3IDwga29idXNoaVwgOwor5YWt5oOFIDwgcm9rdWpvdVwgOwor5LiA5L2T5YyWIDwgaXR0YWlrYVwgOwor5b6h5pel5qeYIDwgb2hpc2FtYVwgOwor6Z+z57695bGLIDwgb3Rvd2F5YVwgOwor6auY57KxIDwga291cnlhblwgOwor5bCP6ZujIDwgc2hvdW5hblwgOwor5bGA6YOoIDwga3lva3VidVwgOwor5Yy76Zmi6ZW3IDwgaWluY2hvdVwgOwor5Y2w5qyn6KqeIDwgaW4nJ291Z29cIDsKK+W4neWbvSA8IHRlaWtva3VcIDsKK+WHuuS8miA8IHNodWtrYWlcIDsKK+msseeEtiA8IHV0c3V6ZW5cIDsKK+WCt+eXlSA8IHNob3Vrb25cIDsKK+WGjeWvqSA8IHNhaXNoaW5cIDsKK+ecjOWGhSA8IGtlbicnbmFpXCA7CivlsL/pgZMgPCBueW91ZG91XCA7CivlgbTnt5ogPCBzb2t1c2VuXCA7CivlhazlvrMgPCBrb3V0b2t1XCA7CivluLjli50gPCBqb3VzaG91XCA7CivlhqXlooMgPCBtZWlreW91XCA7CivnnJ/kurogPCBzaGluamluXCA7CivlhrflmLIgPCByZWljaG91XCA7CivpprTpub8gPCB0b25ha2FpXCA7Civnm7Tlj4IgPCBqaWtpc2FuXCA7Civlh7rmnaXnp4sgPCBkZWtpYWtpXCA7Civpo5vooYzmqZ8gPCBoaWtvdWtpXCA7CivlhaXlv7UgPCBueXV1bmVuXCA7CivohIrpq4QgPCBzZWtpenVpXCA7CivnhKHkvZzngrogPCBtdXNha3VpXCA7CivnnJ/kuIsgPCBtYXNoaXRhXCA7CivlhoblrokgPCBlbicneWFzdVwgOwor5bCK6ZW3IDwgc29uY2hvdVwgOwor5YG9562GIDwgZ2loaXRzdVwgOwor55u45YmLIDwgc291a29rdVwgOwor6Iad6KGMIDwgc2hpa2tvdVwgOwor6YO95biC6YOoIDwgdG9zaGlidVwgOwor6Lui5rOoIDwgdGVuY2h1dVwgOwor5bqn6JKy5ZujIDwgemFidXRvblwgOwor5YWl5bu3IDwgbnl1dXRlaVwgOwor5L+X6LypIDwgem9rdWhhaVwgOwor6ISa6Z+7IDwga3lha3VpblwgOwor5Yeh5L+XIDwgYm9uem9rdVwgOwor5a+S6a6SIDwga2FuYnVuYVwgOwor5qWt55eFIDwgZ291YnlvdVwgOwor6L6y5Y2aIDwgbm91aGFrdVwgOwor6L6y5Y2UIDwgbm91a3lvdVwgOwor5YWo5bmFIDwgemVucHVrdVwgOwor5pS+6Kqy5b6MIDwgaG91a2Fnb1wgOwor5YWo5bitIDwgemVuc2VraVwgOwor6auY56aEIDwga291cm9rdVwgOwor6L+R5L2cIDwga2luc2FrdVwgOwor6I235Li7IDwgbmludXNoaVwgOwor6Imv5rivIDwgcnlvdWtvdVwgOwor5a+46ZqZIDwgc3VuZ2VraVwgOwor5LiA5pys5rCXIDwgaXBwb25naVwgOwor55uu5YmNIDwgbW9rdXplblwgOwor5bKp6IKMIDwgaXdhaGFkYVwgOwor5Yeh5Lq6IDwgYm9uJyduaW5cIDsKK+S/oeiyqSA8IHNoaW5wYW5cIDsKK+mbu+awl+WxiyA8IGRlbmtpeWFcIDsKK+S/l+i2oyA8IHpva3VzaHVcIDsKK+S/ruirliA8IHNodXVyb25cIDsKK+WFteWtpiA8IGhlaWdha3VcIDsKK+eUsOieuiA8IHRhbmlzaGlcIDsKK+eUo+ikpSA8IHNhbmpva3VcIDsKK+Wwj+mKgyA8IHNob3VqdXVcIDsKK+S+v+mAmiA8IGJlbnRzdXVcIDsKK+Wwj+mJoiA8IGtvYmFjaGlcIDsKK+acquadpea0viA8IG1pcmFpaGFcIDsKK+i1pOmjryA8IHNla2loYW5cIDsKK+W4neWKhyA8IHRlaWdla2lcIDsKK+WFseWtmCA8IGt5b3V6b25cIDsKK+ecgeS7pCA8IHNob3VyZWlcIDsKK+iHqueymyA8IGppc2h1a3VcIDsKK+eZvuW6piA8IGh5YWt1ZG9cIDsKK+aghOiqieekvCA8IGVpeW9yZWlcIDsKK+WGheWjgSA8IG5haWhla2lcIDsKK+eWvueXhSA8IHNoaXBwZWlcIDsKK+WFg+aCqiA8IGdlbicnYWt1XCA7Civns5booaPpjKAgPCB0b3Vpam91XCA7Civnlrznl5sgPCB0b3V0c3V1XCA7CivlrrPps6UgPCBnYWljaG91XCA7Civlgo3nmb0gPCBib3VoYWt1XCA7Civoia/msJEgPCByeW91bWluXCA7CivouoHnl4UgPCBzb3VieW91XCA7CivnkIboq5blrrYgPCByaXJvbmthXCA7CivnlLDomasgPCB0YW11c2hpXCA7Civnmb3luIYgPCBzaGlyYWhvXCA7Civpq5jnm7QgPCBrb3VqaWtpXCA7CivmiZPmpb3lmaggPCBkYWdha2tpXCA7CivnlJ/ooYAgPCBuYW1hY2hpXCA7CivnhKHkvZzms5UgPCBidXNhaG91XCA7CivlhaXlrpogPCBueXV1am91XCA7Civou6Lmpa0gPCB0ZW5neW91XCA7CivlsYjoqJcgPCBrdXR0YWt1XCA7Civnm7TkvJ0gPCBqaWtpZGVuXCA7CivojLbljJkgPCBjaGFzYWppXCA7Civoh6rnrYYgPCBqaWhpdHN1XCA7Civku4HnjovploAgPCBuaW91bW9uXCA7Civoi5fluoogPCBuYWVkb2tvXCA7CivotaTpnaIgPCBzZWtpbWVuXCA7Civlj6TlhbjmtL4gPCBrb3RlbmhhXCA7CivlhoXlnKcgPCBuYWlhdHN1XCA7Civnl5vngrkgPCB0c3V1dGVuXCA7CivntKDlsIHlrrYgPCBzb2hvdWthXCA7CivlhYjlubQgPCBzZW4nJ25lblwgOwor55ax55a5IDwgaG91c2hpblwgOwor5L+X6KyhIDwgem9rdXlvdVwgOwor5bCP6YGTIDwga29taWNoaVwgOwor6Ieq56uLIDwgamlyaXRzdVwgOwor5L+u6KGMIDwgc2h1Z3lvdVwgOwor5YaF5Zu9IDwgbmFpa29rdVwgOwor5L+X6Ku6IDwgem9rdWdlblwgOwor6Iez56aPIDwgc2hpZnVrdVwgOwor5a+66YqtIDwgdGVyYXNlblwgOwor6L6y5L2cIDwgbm91c2FrdVwgOwor5L+X6KumIDwgem9rdXRhaVwgOwor5L+K6LGqIDwgc2h1bmdvdVwgOwor5L+X6KuWIDwgem9rdXJvblwgOwor55eH54q2IDwgc2hvdWpvdVwgOwor5L+X6KuHIDwgem9rdWRhblwgOwor5bCO6YCaIDwgZG91dHN1dVwgOwor6a2a5pePIDwgZ3lvem9rdVwgOwor5YWl5am/IDwgaXJpbXVrb1wgOwor5YO75p2RIDwgaGVraXNvblwgOwor6a6o5bGLIDwgc3VzaGl5YVwgOwor5a+E6aOfIDwga2lzaG9rdVwgOwor55m95bGxIDwgaGFrdXNhblwgOwor55eF54q2IDwgYnlvdWpvdVwgOwor5YWD5bm0IDwgZ2FuJyduZW5cIDsKK+W4reS4iiA8IHNla2lqb3VcIDsKK+iNkuS6iyA8IGFyYWdvdG9cIDsKK+ebo+S/riA8IGthbnNodXVcIDsKK+atqeWQiOWItiA8IGJ1YWlzZWlcIDsKK+WBuOeblyA8IGNodXV0b3VcIDsKK+WDu+abuCA8IGhla2lzaG9cIDsKK+eVmee9riA8IHJ5dXVjaGlcIDsKK+i+m+WFmiA8IGthcmF0b3VcIDsKK+agvOmXmCA8IGtha3V0b3VcIDsKK+eVque1hCA8IGJhbmd1bWlcIDsKK+mtguafsSA8IGtvbmNodXVcIDsKK+eZvuWumCA8IGh5YWtrYW5cIDsKK+S9nOmiqCA8IHNha3VmdXVcIDsKK+mtmuays+WyuCA8IHVvZ2FzaGlcIDsKK+mmrOmjnyA8IGJhc2hva3VcIDsKK+iHqueUseWMliA8IGppeXV1a2FcIDsKK+iJpuapiyA8IGthbmt5b3VcIDsKK+aomeWumiA8IGh5b3V0ZWlcIDsKK+aoquWlqiA8IG91ZGF0c3VcIDsKK+eZveWtkCA8IHNoaXJva29cIDsKK+WGjeWRiiA8IHNhaWtva3VcIDsKK+i7jealvSA8IGd1bmdha3VcIDsKK+WxseiKiyA8IHlhbWFpbW9cIDsKK+W4neS6rCA8IHRlaWt5b3VcIDsKK+i8u+WwhCA8IGZ1a3VzaGFcIDsKK+WFpeWjsCA8IG5pc3Nob3VcIDsKK+aOiOeUo+aJgCA8IGp1c2Fuam9cIDsKK+mnhuWLleapnyA8IGt1ZG91a2lcIDsKK+WvhumbsiA8IG1pdHN1dW5cIDsKK+S6jOeuh+aJgCA8IG5pa2FzaG9cIDsKK+WCvuazqCA8IGtlaWNodXVcIDsKK+WFpeWiqCA8IGlyZXp1bWlcIDsKK+WvhumbhiA8IG1pc3NodXVcIDsKK+mBleeKr+iAhSA8IGloYW5zaGFcIDsKK+iHqueUu+WDjyA8IGppZ2F6b3VcIDsKK+iJsuafhCA8IGlyb2dhcmFcIDsKK+W9ouaEj+aLsyA8IGtlaWlrZW5cIDsKK+iDjOmrmCA8IHNlaXRha2FcIDsKK+Wwhui7jSA8IHNob3VndW5cIDsKK+amguazgSA8IGdhaWt5b3VcIDsKK+WFqOWfnyA8IHplbicnaWtpXCA7Civmr43mgKfmhJsgPCBib3NlaWFpXCA7CivkupXmiLjlgbQgPCBpZG9nYXdhXCA7CivlsbHohbkgPCBzYW5wdWt1XCA7CivlhYjlraYgPCBzZW5nYWt1XCA7CivohJrpg6ggPCBreWFrdWJ1XCA7Civog7TplbcgPCBkb3VuYWdhXCA7Civlg6fmnI0gPCBzb3VmdWt1XCA7Civlho3li50gPCBzYWlzaG91XCA7CivohbnolLUgPCBmdWt1em91XCA7Civoia/mnZAgPCByeW91emFpXCA7CivkvY7poY0gPCB0ZWlnYWt1XCA7CivprZrmi5MgPCBneW90YWt1XCA7CivovJTlvLwgPCBob2hpdHN1XCA7Civlhajlm70gPCB6ZW5nb2t1XCA7Civoia/mm7ggPCByeW91c2hvXCA7CivlrrDpoJggPCBzYWlyeW91XCA7Civnmb3lpKogPCBzaGlyYXRhXCA7Civnmb3lpJwgPCBieWFrdXlhXCA7CivoubTniKogPCBrZWR6dW1lXCA7CivotaTpjIYgPCBha2FzYWJpXCA7CivlhaXlm6MgPCBueXV1ZGFuXCA7Civlt6XljZogPCBrb3VoYWt1XCA7Civlt67liKUgPCBzYWJldHN1XCA7CivlhqrkuZcgPCBiZWtpam91XCA7Civou43mnI0gPCBndW5wdWt1XCA7CivnlLLog4QgPCBrYXRjaHV1XCA7Civoh6rnmbogPCBqaWhhdHN1XCA7CivnlaLnq58gPCBoaWtreW91XCA7CivmoKHplrIgPCBrb3VldHN1XCA7Civnlo7nlaUgPCBzb3J5YWt1XCA7CivlsqnnpIEgPCBnYW5zaG91XCA7CivlgrfmrY4gPCBzaG91dGFuXCA7CivoibLmlocgPCBpcm9idW1pXCA7CivnoLTnoJXmqZ8gPCBoYXNhaWtpXCA7CivpppbpoJggPCBzaHVyeW91XCA7CivpgZXorabnvaogPCBpa2VpemFpXCA7CivluIzlnJ/poZ4gPCBraWRvcnVpXCA7CivotaTph5EgPCBha2FnYW5lXCA7CivpqZXogoYgPCBreW91c2hpXCA7CivlrabpvaIgPCBnYWt1cmVpXCA7CivlrrXpl4cgPCB5b2l5YW1pXCA7CivlsI/oq5YgPCBzaG91cm9uXCA7CivkupzpiZvlvJUgPCBhZW5iaWtpXCA7CivlpKrlrrDlupwgPCBkYXphaWZ1XCA7Civlsqnnn7MgPCBnYW5zZWtpXCA7CivohbnoirggPCBoYXJhZ2VpXCA7Civnmb3lnLAgPCBzaGlyb2ppXCA7CivmoLjphbggPCBrYWt1c2FuXCA7Civlha3lkIggPCByaWt1Z291XCA7CivoiLnmrYwgPCBmdW5hdXRhXCA7Civlr77osaEgPCB0YWlzaG91XCA7CivpqLDokL0gPCB0b3VyYWt1XCA7CivlgY/nmZYgPCBoZW5wZWtpXCA7CivlhbjliYcgPCB0ZW5zb2t1XCA7Civmo5LnuJ4gPCBib3VqaW1hXCA7CivkvIrpgZTogIUgPCBkYXRlc2hhXCA7Civlha3ljYEgPCByb2t1anV1XCA7CivotaTpgZMgPCBzZWtpZG91XCA7CivnlJ/ogokgPCBzZWluaWt1XCA7CivpgIHoqbHlmaggPCBzb3V3YWtpXCA7CivmpI3nmq4gPCBzaG9rdWhpXCA7Civlrp/pnIAgPCBqaXRzdWp1XCA7CivlhY3lm5ogPCBtZW5zaHV1XCA7CivkvLTlpKnpgKMgPCBiYXRlcmVuXCA7Civpp4bpgJAgPCBrdWNoaWt1XCA7CivkupzpurvluIMgPCBhbWFudW5vXCA7Civpp5Dou4ogPCBjaHV1c2hhXCA7CivmoKrph5EgPCBrYWJ1a2luXCA7Civoh6rnjokgPCBqaWd5b2t1XCA7CivlpbPpg47lsYsgPCBqb3JvdXlhXCA7Civlrr/piq0gPCB5YWRvc2VuXCA7CivpppbplbcgPCBzaHVjaG91XCA7Civohbnog4wgPCBmdWt1aGFpXCA7CivlmbTpnKflmaggPCBmdW5tdWtpXCA7Civnl4XmrbsgPCBieW91c2hpXCA7CivlsITop5IgPCBzaGFrYWt1XCA7Civoi7HljZjoqp4gPCBlaXRhbmdvXCA7CivlrqLplpMgPCBreWFrdW1hXCA7Civlt6XkvZwgPCBrb3VzYWt1XCA7CivlhIDlvI8gPCBnaXNoaWtpXCA7CivnlLDntLMgPCBkZW5zaGluXCA7Civlr77oqLMgPCB0YWl5YWt1XCA7CivotaTou40gPCBzZWtpZ3VuXCA7CivohILouqsgPCBhYnVyYW1pXCA7Civls6Hmub4gPCBreW91d2FuXCA7Civou43mi6EgPCBndW5rYWt1XCA7Civnmb7lkbMgPCBoeWFrdW1pXCA7Civojbfppqzou4ogPCBuaWJhc2hhXCA7Civmk6zmhYvoqp4gPCBnaXRhaWdvXCA7Civlr77op5IgPCB0YWlrYWt1XCA7Civmn7HpnaIgPCBjaHV1bWVuXCA7Civlt6jkubMgPCBreW9ueXV1XCA7CivnlbDpgqbkurogPCBpaG91amluXCA7CivnlLvnrYYgPCBnYWhpdHN1XCA7CivkvpvopqcgPCBreW91cmFuXCA7CivmgKrmiJHkurogPCBrZWdhbmluXCA7Civlr7joqZUgPCBzdW5weW91XCA7CivlhoXkuK0gPCB1Y2hpanV1XCA7Civlirnmnpzpn7MgPCBrb3VrYW9uXCA7Civlr4bpgJogPCBtaXR0c3V1XCA7CivlgLbnmbogPCBndWhhdHN1XCA7Civlhazlg5UgPCBrb3Vib2t1XCA7CivkvZPph48gPCB0YWlyeW91XCA7CivlopPnopHpipggPCBib2hpbWVpXCA7CivlrpfploAgPCBzaHV1bW9uXCA7Civoh4bnl4UgPCBva3VieW91XCA7CivlhajlhKogPCB6ZW4nJ3l1dVwgOwor6aOb6KGM5a62IDwgaGlrb3VrYVwgOwor55Wl55S7IDwgcnlha3VnYVwgOwor5L+457WmIDwgaG91a3l1dVwgOwor5a6/6YGLIDwgc2h1a3V1blwgOwor6Ii55p2/IDwgZnVuYWl0YVwgOwor5L+K6IuxIDwgc2h1bicnZWlcIDsKK+iKs+WiqCA8IGhvdWJva3VcIDsKK+eZvuWMgSA8IGh5YWt1bWVcIDsKK+eUn+e1uSA8IHN1enVzaGlcIDsKK+i7n+W8sSA8IG5hbmpha3VcIDsKK+S8kemkqCA8IGt5dXVrYW5cIDsKK+Wvhui8uCA8IG1pdHN1eXVcIDsKK+WFmuWJhyA8IHRvdXNva3VcIDsKK+S/rue5lSA8IHNodXV6ZW5cIDsKK+S8kemkiiA8IGt5dXV5b3VcIDsKK+amtOW8viA8IHJ5dXVkYW5cIDsKK+WxseepjSA8IHNhbnNla2lcIDsKK+iItuadpSA8IGhha3VyYWlcIDsKK+i1pOiypyA8IHNla2loaW5cIDsKK+iLseWCkSA8IGVpa2V0c3VcIDsKK+alteaakSA8IGdva3VzaG9cIDsKK+eXheajnyA8IGJ5b3V0b3VcIDsKK+eBq+eGqOaWlyA8IGhpbm9zaGlcIDsKK+iCjOmqqCA8IGtpa290c3VcIDsKK+iJr+aApyA8IHJ5b3VzZWlcIDsKK+i2s+iKuCA8IGFzaGlnZWlcIDsKK+iFuOe3miA8IGNob3VzZW5cIDsKK+i8quWUsSA8IHJpbnNob3VcIDsKK+WBieeJqSA8IGVyYW1vbm9cIDsKK+eZveWIgyA8IGhha3VqaW5cIDsKK+S+ruiUkSA8IGJ1YmV0c3VcIDsKK+iLpeWFmiA8IHdha2F0b3VcIDsKK+eXheaguSA8IGJ5b3Vrb25cIDsKK+S8mumbhiA8IGthaXNodXVcIDsKK+WxkeezuCA8IGt1enVpdG9cIDsKK+ain+e9qiA8IGt5b3V6YWlcIDsKK+eZveWFtSA8IGhha3VoZWlcIDsKK+S9jumAnyA8IHRlaXNva3VcIDsKK+WFpeS8miA8IG55dXVrYWlcIDsKK+WxkeexsyA8IGt1enVtYWlcIDsKK+i7veWmmSA8IGtlaW15b3VcIDsKK+iHqua7hSA8IGppbWV0c3VcIDsKK+S8kembuyA8IGt5dXVkZW5cIDsKK+WztuaguSA8IHNoaW1hbmVcIDsKK+WtpumiqCA8IGdha3VmdXVcIDsKK+WDteWxjSA8IGt5b25zaGlcIDsKK+WFiOWIuyA8IHNlbmtva3VcIDsKK+WEquS9jeaApyA8IHl1dWlzZWlcIDsKK+iCiemlhSA8IG5pa3VtYW5cIDsKK+S9teiqrSA8IGhlaWRva3VcIDsKK+mmrOi3syA8IHVtYXRvYmlcIDsKK+i7ouWxniA8IHRlbnpva3VcIDsKK+i1pOiqoCA8IHNla2lzZWlcIDsKK+iJr+W4qyA8IHJ5b3VzaGlcIDsKK+S8mumVtyA8IGthaWNob3VcIDsKK+agvOiogCA8IGtha3VnZW5cIDsKK+mngeirliA8IGJha3Vyb25cIDsKK+eEoei2o+WRsyA8IG11c2h1bWlcIDsKK+mBjuePvuacqiA8IGthZ2VubWlcIDsKK+WFg+WHtiA8IGdlbmt5b3VcIDsKK+iCiemhniA8IG5pa3VydWlcIDsKK+eWvOacqCA8IGhpaXJhZ2lcIDsKK+i7ouWuhSA8IHRlbnRha3VcIDsKK+aghOmBlCA8IGVpdGF0c3VcIDsKK+i7ouWtpiA8IHRlbmdha3VcIDsKK+iHqua0uyA8IGppa2F0c3VcIDsKK+S/uOemhCA8IGhvdXJva3VcIDsKK+iLpeS6uiA8IHdha291ZG9cIDsKK+alveaJjSA8IGdha3VzYWlcIDsKK+WvhuitsCA8IG1pdHN1Z2lcIDsKK+mmmei7iiA8IGt5b3VzaGFcIDsKK+S/l+e0ryA8IHpva3VydWlcIDsKK+mVt+akheWtkCA8IG5hZ2Fpc3VcIDsKK+iBvuWUluiAhSA8IHJvdWFzaGFcIDsKK+WBnOaziiA8IHRlaWhha3VcIDsKK+aliuafsyA8IHlvdXJ5dXVcIDsKK+Wwj+iIhSA8IGtvanV1dG9cIDsKK+iHquaxuiA8IGppa2V0c3VcIDsKK+eZvuS6iyA8IGh5YWt1amlcIDsKK+WvhuiqniA8IG1pdHN1Z29cIDsKK+iDuOilnyA8IGt5b3VraW5cIDsKK+Wwv+euoSA8IG55b3VrYW5cIDsKK+msseWxiCA8IHVra3V0c3VcIDsKK+i7jeWxniA8IGd1bnpva3VcIDsKK+aWh+Wtl+ebpCA8IG1vamliYW5cIDsKK+eXm+aGpCA8IHRzdXVmdW5cIDsKK+S6lOWNgemfsyA8IGdvanV1b25cIDsKK+WxseeVqiA8IHlhbWFiYW5cIDsKK+alveaDsyA8IGdha3Vzb3VcIDsKK+iHquauuiA8IGppc2F0c3VcIDsKK+iEseiHvCA8IGRha2t5dXVcIDsKK+mmlui2syA8IHNodXNva3VcIDsKK+iEseiHrSA8IGRhc3NodXVcIDsKK+i7jeWwhiA8IGd1bnNob3VcIDsKK+WCt+aCtCA8IHNob3VzdWlcIDsKK+WBj+a1gSA8IGhlbnJ5dXVcIDsKK+iEs+iGnCA8IG5vdW1ha3VcIDsKK+ePvumrmCA8IGdlbmRha2FcIDsKK+iHo+awkSA8IHNoaW5taW5cIDsKK+msvOWphiA8IG9uaWJhYmFcIDsKK+S9nOipqSA8IHNha3VzaGlcIDsKK+iEseiFuCA8IGRhdGNob3VcIDsKK+WuhemFjSA8IHRha3VoYWlcIDsKK+S8kemMmCA8IGt5dXVzdWlcIDsKK+eUsOeVkSA8IGRlbnBhdGFcIDsKK+eXm+aBqCA8IHRzdXVrb25cIDsKK+iHs+altSA8IHNoaWdva3VcIDsKK+alteaCqiA8IGdva3Vha3VcIDsKK+WuiemAuCA8IGFuJydpdHN1XCA7CivlpKnlqabnvoUgPCB0ZW5wdXJhXCA7Civlg7vlnLAgPCBoZWtpY2hpXCA7Civlg7vlnKggPCBoZWtpemFpXCA7Civlrprot6EgPCBqb3VzZWtpXCA7CivovKrkvZwgPCByaW5zYWt1XCA7Civlsqnms6IgPCBpd2FuYW1pXCA7Civls7vmi5IgPCBzaHVua3lvXCA7Civoia/lprsgPCByeW91c2FpXCA7Civoh4bmuKwgPCBva3Vzb2t1XCA7CivnlKPnl5sgPCBzYW50c3V1XCA7Civlr53pgZPlhbcgPCBuZWRvdWd1XCA7Civogbfpmo4gPCBzaG9ra2FpXCA7CivnlZ3mup0gPCB1bmVtaXpvXCA7CivmpbXlvq4gPCBreW9rdWJpXCA7CivnlbDliIblrZAgPCBpYnVuc2hpXCA7CivohpznirYgPCBtYWt1am91XCA7CivnlJjnmq4gPCBhbWFrYXdhXCA7CivotaTolaogPCBha2FrYWJ1XCA7CivlsbHniqwgPCB5YW1haW51XCA7Civkv4rnq6UgPCBzaHVuZG91XCA7Civmpb3luKsgPCBnYWt1c2hpXCA7CivmoZHoibIgPCBrdXdhaXJvXCA7CivohZXnq6AgPCB3YW5zaG91XCA7CivppqzooZMgPCBiYWp1dHN1XCA7Civnl4XmhYsgPCBieW91dGFpXCA7CivohZXnq4sgPCB1ZGV0YXRlXCA7CivohbnnmZIgPCBoYXJhaXNlXCA7CivoiJ7miYcgPCBtYWlvdWdpXCA7Civlr67oiI4gPCByeW91c2hhXCA7CivmpbXluqYgPCBreW9rdWRvXCA7CivlgZXmpb0gPCBrYWlyYWt1XCA7CivnkIPpnaIgPCBreXV1bWVuXCA7CivlsI/nt6ggPCBzaG91aGVuXCA7Civoh6rosqnmqZ8gPCBqaWhhbmtpXCA7Civnl4XmgqMgPCBieW91a2FuXCA7CivlrqLoqp4gPCBreWFrdWdvXCA7CivmnpXpoK0gPCBjaGludG91XCA7CivmpbXlt6YgPCBreW9rdXNhXCA7Civnk6LnrqogPCBoeW91dGFuXCA7Civlhavph43lnqMgPCB5YWVnYWtpXCA7CivoirjkuosgPCBnZWlnb3RvXCA7CivmpI3mqLkgPCBzaG9rdWp1XCA7Civlrp/oqbEgPCBqaXRzdXdhXCA7Civnlr7mgqMgPCBzaGlra2FuXCA7CivnhKHkvqHlgKQgPCBtdWthY2hpXCA7CivmoYPoibIgPCBtb21vaXJvXCA7CivmpJzmoKEgPCBrZW5neW91XCA7Civlrp/oqLwgPCBqaXNzaG91XCA7Civku4rpoIMgPCBpbWFnb3JvXCA7CivohbDnl5sgPCB5b3V0c3V1XCA7CivlsI/nspIgPCBrb3RzdWJ1XCA7Civmpa3luKsgPCB3YXphc2hpXCA7CivoirHku6MgPCBoYW5hZGFpXCA7CivlrqLoprMgPCBreWFra2FuXCA7Civkv5fnnLwgPCB6b2t1Z2FuXCA7Civkvb/oh6MgPCBzaGlzaGluXCA7Civlr5Loj4ogPCBrYW5naWt1XCA7CivkurrkuovpmaIgPCBqaW5qaWluXCA7CivkvJHovIkgPCBreXV1c2FpXCA7CivlsLvnm64gPCBzaGlyaW1lXCA7CivlrproqZUgPCB0ZWloeW91XCA7CivkvJHou6IgPCBreXV1dGVuXCA7Civnl4XlvIogPCBieW91aGVpXCA7CivlgrflrrMgPCBzaG91Z2FpXCA7CivlrproqLMgPCB0ZWl5YWt1XCA7Civou43lm70gPCBndW5rb2t1XCA7CivprZTlipsgPCBtYXJ5b2t1XCA7CivmpJzmnZ8gPCBrZW5zb2t1XCA7CivkuI3lpJzln44gPCBmdXlham91XCA7CivlsYXnlZkgPCBreW9yeXV1XCA7Civnvo7kuIjlpKsgPCBiaWpvdWZ1XCA7CivojY/og6HpurvmsrkgPCBlZ29tYXl1XCA7Civlsqnmo5ogPCBpd2FkYW5hXCA7Civku4/pmYAgPCBidXRzdWRhXCA7CivlrrPomasgPCBnYWljaHV1XCA7CivlsLHnnKAgPCBzaHV1bWluXCA7CivohIfog70gPCB3YWtpbm91XCA7CivlhITlhYYgPCBva3VjaG91XCA7Civnl4Xlt6MgPCBieW91c291XCA7CivotaTohpogPCBha2FoYWRhXCA7CivlsI/nq6UgPCBrb3dhcHBhXCA7Civku4/plqMgPCBidWtrYWt1XCA7CivmmJPmkI3lk4EgPCBpc29uaGluXCA7Civku4/plpMgPCBidXRzdW1hXCA7CivotaTohbkgPCBha2FoYXJhXCA7CivlsLzlg6fpmaIgPCBuaXNvdWluXCA7CivohY7nn7MgPCBqaW5zZWtpXCA7Civoia/lk4EgPCByeW91aGluXCA7Civog4PooosgPCBpYnVrdXJvXCA7CivnhKHnkIbmlbAgPCBtdXJpc3V1XCA7Civls7vltrogPCBzaHVucmVpXCA7CivlhJLku48gPCBqdWJ1dHN1XCA7CivprYXlipsgPCBtaXJ5b2t1XCA7CivosrjplpMgPCBrYXNoaW1hXCA7Civog7joh4YgPCBreW91b2t1XCA7CivnhKHpn7voqakgPCBtdWluc2hpXCA7CivprZrkv6EgPCBneW9zaGluXCA7CivohZXnmb0gPCB3YW5wYWt1XCA7CivlpJrmp5jljJYgPCB0YXlvdWthXCA7Civog7johbogPCBreW91c2VuXCA7CivkuqzpoqggPCBreW91ZnV1XCA7Civmpb3lpKkgPCByYWt1dGVuXCA7Civoia/lj4sgPCByeW91eXV1XCA7CivohLHnqYAgPCBkYWtrb2t1XCA7Civnj63plbcgPCBoYW5jaG91XCA7CivkvJ3oqqYgPCBkZW5zaG91XCA7CivlsIrnp7AgPCBzb25zaG91XCA7CivlgYPmnIggPCBlbmdldHN1XCA7Civlr77nrZYgPCB0YWlzYWt1XCA7CivlgJ/mrL4gPCBzaGFra2FuXCA7Civmpb3lo4cgPCBnYWt1ZGFuXCA7Civkvr/nm4ogPCBiZW4nJ2VraVwgOwor5Lya6KqtIDwga2FpZG9rdVwgOwor5qO65qG2IDwga2FuJydva2VcIDsKK+S9juiQvSA8IHRlaXJha3VcIDsKK+eXheWusyA8IGJ5b3VnYWlcIDsKK+WBieaWuSA8IGVyYWdhdGFcIDsKK+earuiGmuenkeWMuyA8IGhpZnVrYWlcIDsKK+eVjOaomSA8IGthaWh5b3VcIDsKK+izg+mKrSA8IGNoaW5zZW5cIDsKK+S9nuiHoyA8IG5laXNoaW5cIDsKK+S9meiJsiA8IHlvc2hva3VcIDsKK+mjsumjnyA8IGluc2hva3VcIDsKK+Wxi+agueijjyA8IHlhbmV1cmFcIDsKK+WCvuWbvSA8IGtlaWtva3VcIDsKK+aatOmiqOmbqCA8IGJvdWZ1dXVcIDsKK+S/gueVmSA8IGtlaXJ5dXVcIDsKK+eUt+awlyA8IG90b2tvZ2lcIDsKK+alk+WxniA8IGZ1dXpva3VcIDsKK+iDg+iWrCA8IGlndXN1cmlcIDsKK+S7memDtyA8IHNlbmt5b3VcIDsKK+agl+iJsiA8IGt1cmlpcm9cIDsKK+izvOiqrSA8IGtvdWRva3VcIDsKK+eUn+eQhuaXpSA8IHNlaXJpYmlcIDsKK+i7iuWKmyA8IHNoYXJpa2lcIDsKK+WIhumZkOiAhSA8IGJ1Z2VuamFcIDsKK+iHpeaJgCA8IGZ1c2hpZG9cIDsKK+S9k+iHrSA8IHRhaXNodXVcIDsKK+mmrOiEmiA8IGJha3lha3VcIDsKK+WvuOenkiA8IHN1bmJ5b3VcIDsKK+S6uuS6i+mDqCA8IGppbmppYnVcIDsKK+i1t+ethiA8IGtpaGl0c3VcIDsKK+mnkOexsyA8IGNodXViZWlcIDsKK+S5vumtmiA8IGhvc2hpdW9cIDsKK+m4mum1oeiynSA8IG91bXVnYWlcIDsKK+iCneimgSA8IGthbicneW91XCA7Civmo67mnpcgPCBzaGlucmluXCA7CivotaTntYQgPCBha2FndW1pXCA7Civou6Lku7sgPCB0ZW4nJ25pblwgOwor5qC857SNIDwga2FrdW5vdVwgOwor5bCP55mqIDwga29zaGFrdVwgOwor6LWk57SZIDwgYWthZ2FtaVwgOwor6ama5q2OIDwga3lvdXRhblwgOwor6LW356uLIDwga2lyaXRzdVwgOwor5LiA5LiB5a2XIDwgaXR0ZWlqaVwgOwor5L2c6ICFIDwgc2FrdXNoYVwgOwor6aOf6aSMIDwgc2hva3VqaVwgOwor6IW45rqAIDwgY2hvdW1hblwgOwor5Luy6LK3IDwgbmFrYWdhaVwgOwor5YiG6Zui5rS+IDwgYnVucmloYVwgOwor5bCP57Sw5belIDwga296YWlrdVwgOwor55eF5aSJIDwgYnlvdWhlblwgOwor5pqX5Y+35YyWIDwgYW5nb3VrYVwgOwor5YOl5YCWIDwgZ3lvdWtvdVwgOwor6LOg6LKsIDwgYmFpc2VraVwgOwor6LOe6LObIDwgc2hvdXNhblwgOwor5bCK55qHIDwgc29uJydub3VcIDsKK+eOhOm6piA8IGdlbmJha3VcIDsKK+iEiOeuoSA8IG15YWtrYW5cIDsKK+aeoui7uCA8IHN1dWppa3VcIDsKK+iInuWnqyA8IG1haWhpbWVcIDsKK+eXm+WYhiA8IHRzdXV0YW5cIDsKK+WwqOeKrCA8IG11a3VpbnVcIDsKK+ajn+aigSA8IHRvdXJ5b3VcIDsKK+WPs+W+gOW3puW+gCA8IHVvdXNhb3VcIDsKK+WNsOW6pua0iyA8IGluZG95b3VcIDsKK+Whqee0oOmFuCA8IGVuc29zYW5cIDsKK+WxoOauuiA8IHRvc2F0c3VcIDsKK+iziui7jSA8IHpva3VndW5cIDsKK+iFuOa2siA8IGNob3Vla2lcIDsKK+iIjuWuhSA8IHNoYXRha3VcIDsKK+i6q+WRvSA8IHNoaW5tZWlcIDsKK+S+nemgvOS6uiA8IGlyYWluaW5cIDsKK+eWq+WtpiA8IGVraWdha3VcIDsKK+Wwj+eUuiA8IGtvbWFjaGlcIDsKK+Wwj+eUtyA8IGtvb3Rva29cIDsKK+iFsOa5ryA8IGtvc2hpeXVcIDsKK+WwhOeahCA8IHNoYXRla2lcIDsKK+iEs+eXhSA8IG5vdWJ5b3VcIDsKK+Wwj+eUnyA8IHNob3VzZWlcIDsKK+eItuavjeS8miA8IGZ1Ym9rYWlcIDsKK+WxseakkiA8IHNhbnNob3VcIDsKK+S9s+evgCA8IGthc2V0c3VcIDsKK+S7iumAsSA8IGtvbnNodXVcIDsKK+iBlumAsSA8IHNlaXNodXVcIDsKK+mjsumFkuWutiA8IGluc2h1a2FcIDsKK+S4jeiqjeWPryA8IGZ1bmlua2FcIDsKK+S9jue/vCA8IHRlaXlva3VcIDsKK+iJsuS6iyA8IGlyb2dvdG9cIDsKK+afv+iJsiA8IGtha2lpcm9cIDsKK+eUsOalvSA8IGRlbmdha3VcIDsKK+S7iui/hCA8IGltYW1hZGVcIDsKK+S5vumjryA8IGhvc2hpaWlcIDsKK+iJr+S6uiA8IHJ5b3VqaW5cIDsKK+Wuv+e4gSA8IHNodWt1ZW5cIDsKK+iHo+W+kyA8IHNoaW5qdXVcIDsKK+iFueawtCA8IGZ1a3VzdWlcIDsKK+i3i+a4iSA8IGJhc3Nob3VcIDsKK+eUuuadkSA8IGNob3Vzb25cIDsKK+WAkuacqCA8IHRvdWJva3VcIDsKK+aFsOWKtOS8miA8IGlyb3VrYWlcIDsKK+iHqOW4rSA8IHJpbnNla2lcIDsKK+S/ruatoyA8IHNodXVzZWlcIDsKK+acqOmtmiA8IG1va3VneW9cIDsKK+ixhuiFkOWxiyA8IHRvdWZ1eWFcIDsKK+mrmOWjsCA8IHRha2Fnb2VcIDsKK+S9teensCA8IGhlaXNob3VcIDsKK+WIhumbouapnyA8IGJ1bnJpa2lcIDsKK+amguWJhyA8IGdhaXNva3VcIDsKK+iAkOmchyA8IHRhaXNoaW5cIDsKK+aghOiBtyA8IGVpc2hva3VcIDsKK+S7j+i3oSA8IGJ1c3Nla2lcIDsKK+eBq+eCjueTtiA8IGthZW5iaW5cIDsKK+iyq+mAmiA8IGthbnRzdXVcIDsKK+iBlui5nyA8IHNlaXNla2lcIDsKK+WztuWbvSA8IHRvdWdva3VcIDsKK+eUo+alrSA8IHNhbmd5b3VcIDsKK+iFsOawlyA8IGtvc2hpa2VcIDsKK+WCt+WJtSA8IHNob3Vzb3VcIDsKK+mjn+mWkyA8IHNob2trYW5cIDsKK+W+oeWkmuWIhiA8IGdvdGFidW5cIDsKK+S7ruimqiA8IGthcmlveWFcIDsKK+iCsuiLlyA8IGlrdWJ5b3VcIDsKK+WumOiDvSA8IGthbicnbm91XCA7Civos4PosrggPCBjaGludGFpXCA7CivlsqHmg5ogPCBva2Fib3JlXCA7Civmnp3osYYgPCBlZGFtYW1lXCA7CivogbToqLEgPCBjaG91a3lvXCA7CivnlJ/mpa0gPCBuYXJpd2FpXCA7Civku6Poqq0gPCBkYWlkb2t1XCA7Civnj77osaEgPCBnZW5zaG91XCA7Civlrp/nv5IgPCBqaXNzaHV1XCA7Civku7Loo4EgPCBjaHV1c2FpXCA7CivlsI/niKogPCBrb2R6dW1lXCA7Civnlo7lr4YgPCBzb21pdHN1XCA7CivogbTop6MgPCBjaG91a2FpXCA7CivosqfovrIgPCBoaW4nJ25vdVwgOwor6Ieo5pmC6LK7IDwgcmluamloaVwgOwor5Luj6Ki6IDwgZGFpc2hpblwgOwor6IG06KaWIDwgY2hvdXNoaVwgOwor5bGe5qC8IDwgem9ra2FrdVwgOwor5YK35YW1IDwgc2hvdWhlaVwgOwor5qW95YW4IDwgZ2FrdXRlblwgOwor55S75pWwIDwga2FrdXN1dVwgOwor6Ia65oeyIDwgeW91Y2hvdVwgOwor5YCN5penIDwgYmFpa3l1dVwgOwor5aSn5aSq6byTIDwgb29kYWlrb1wgOwor6auY5ZynIDwga291YXRzdVwgOwor55S65pS/IDwgY2hvdXNlaVwgOwor5qW15YiRIDwga3lva2tlaVwgOwor5aaC5L2V56iLIDwgaWthaG9kb1wgOwor54mh54mb5bqnIDwgb3VzaGl6YVwgOwor55eF5ZCNIDwgYnlvdW1laVwgOwor5Yqg5bel6LK7IDwga2Frb3VoaVwgOwor5qK25qOSIDwga2FqaWJvdVwgOwor5qW15YagIDwga3lva2thblwgOwor5qW15YaFIDwgZ29rdW5haVwgOwor55eF5Y+LIDwgYnlvdXl1dVwgOwor6aqw5a2QIDwgc2Fpa29yb1wgOwor5bKh5byVIDwgb2thaGlraVwgOwor5YK05YOCIDwgc2VtdXNoaVwgOwor5pyx6Z6YIDwgc2h1emF5YVwgOwor5Lq65LqL6KqyIDwgamluamlrYVwgOwor5a6f57i+IDwgamlzc2VraVwgOwor55eF5Y6fIDwgYnlvdWdlblwgOwor5qW15YWJIDwga3lva2tvdVwgOwor5Lqo6YCaIDwga291dHN1dVwgOwor5pys6aCYIDwgaG9ucnlvdVwgOwor5Lq66LehIDwgaGl0b2F0b1wgOwor5LuY6KitIDwgZnVzZXRzdVwgOwor6aaW57SaIDwgc2h1a3l1dVwgOwor5L6b54mpIDwga3Vtb3RzdVwgOwor5bO75Y6zIDwgc2h1bmdlblwgOwor6LGh6ZmQIDwgc2hvdWdlblwgOwor6Lqr5L2TIDwgc2hpbnRhaVwgOwor6Iez5aaZIDwgc2hpbXlvdVwgOwor55SY5qCXIDwgYW1hZ3VyaVwgOwor5LuV6KizIDwgc2hpd2FrZVwgOwor6LqN5YuVIDwgeWFrdWRvdVwgOwor5Luj6KGoIDwgZGFpaHlvdVwgOwor6YeO6Imv54qsIDwgbm9yYWludVwgOwor55eF5YuiIDwgYnlvdXNlaVwgOwor5a6556mNIDwgeW91c2VraVwgOwor5LuP6KqeIDwgYnV0c3Vnb1wgOwor6IWw5qSOIDwgeW91dHN1aVwgOwor6Lqr5LujIDwgc2hpbmRhaVwgOwor5pel5pys6ZaTIDwgbmlob25tYVwgOwor546J6Z+zIDwgZ3lva3VvblwgOwor5aSn6LGG5rK5IDwgZGFpenV5dVwgOwor5a+T55uuIDwgZ3V1bW9rdVwgOwor5p2l6YCxIDwgcmFpc2h1dVwgOwor6Ii55YG0IDwgc2Vuc29rdVwgOwor5pys6ZyHIDwgaG9uc2hpblwgOwor5pyo6Z20IDwga2lndXRzdVwgOwor6aaZ566xIDwga291YmFrb1wgOwor5pyd6aKoIDwgYXNha2F6ZVwgOwor5YWQ56ul55S7IDwgamlkb3VnYVwgOwor5ryU6Iie5aC0IDwgZW5idWpvdVwgOwor5bKp5bGxIDwgaXdheWFtYVwgOwor5qW95Lq6IDwgZ2FrdWppblwgOwor6LGG6aGeIDwgbWFtZXJ1aVwgOwor5a6Y57WmIDwga2Fua3l1dVwgOwor546J6ZyyIDwgZ3lva3Vyb1wgOwor6Ii55L6/IDwgZnVuYWJpblwgOwor5YKs5L+DIDwgc2Fpc29rdVwgOwor55Sf5pawIDwgc2Vpc2hpblwgOwor6LaF54S2IDwgY2hvdXplblwgOwor5Lyd57+SIDwgZGVuc2h1dVwgOwor55WZ5bm0IDwgcnl1dW5lblwgOwor6LSF6IKJIDwgemVpbmlrdVwgOwor6auY5Y+wIDwgdGFrYWRhaVwgOwor5bKp5a6kIDwgaXdhbXVyb1wgOwor5L+15pWwIDwgaHlvdXN1dVwgOwor5a2m6Iq4IDwgZ2FrdWdlaVwgOwor55S35omLIDwgb3Rva29kZVwgOwor5Ly86Z2e5LqLIDwgZXNlZ290b1wgOwor5qKF5q+SIDwgYmFpZG9rdVwgOwor5LiN57WQ5p6cIDwgZnVrZWtrYVwgOwor5pyd6Z2EIDwgYXNhbW95YVwgOwor5bGI5pyNIDwga3VwcHVrdVwgOwor5pyd6ZynIDwgYXNhZ2lyaVwgOwor6IKM6ImyIDwgaGFkYWlyb1wgOwor5a2m6IiOIDwgZ2FrdXNoYVwgOwor5qW15LiKIDwgZ29rdWpvdVwgOwor55eH5YCZIDwgc2hvdWtvdVwgOwor6Ii55LitIDwgc2VuY2h1dVwgOwor6IKJ6ImyIDwgbmlrdWlyb1wgOwor5L+u5pS5IDwgc2h1dWthaVwgOwor5bK45aOBIDwgZ2FucGVraVwgOwor5Lq66Ki8IDwgbmluc2hvdVwgOwor55Wl5a2XIDwgcnlha3VqaVwgOwor5L+u5pKwIDwgc2h1dXNlblwgOwor5Zyw5LiL5YyWIDwgY2hpa2FrYVwgOwor5LyP572qIDwgZnVrdXphaVwgOwor5a+G55S7IDwgbWl0c3VnYVwgOwor5YWr55m+6ZW3IDwgeWFvY2hvdVwgOwor6aSh6JycIDwgYW5taXRzdVwgOwor6IC96KqtIDwgdGFuZG9rdVwgOwor6IKJ6IWrIDwgbmlrdXNodVwgOwor5L+X5pu4IDwgem9rdXNob1wgOwor6ICB6YacIDwgcm91c2h1dVwgOwor6amV5oWiIDwga3lvdW1hblwgOwor5YCU5by3IDwga3Vra3lvdVwgOwor55eF5Lq6IDwgYnlvdW5pblwgOwor5YGP5Z+3IDwgaGVuc2h1dVwgOwor6YGO6aO95ZKMIDwga2Fob3V3YVwgOwor5Lmz6YW4IDwgbnl1dXNhblwgOwor5L2v54uCIDwgeW91a3lvdVwgOwor5puz6aasIDwgaGlraXVtYVwgOwor5a++5rWBIDwgdGFpcnl1dVwgOwor6aGU6buSIDwgZ2FuZ3Vyb1wgOwor5LyP57irIDwgZnVzZW51aVwgOwor5puy6aasIDwga3lva3ViYVwgOwor6LWk54eQIDwgc2VraXJpblwgOwor5YKR5L2cIDwga2Vzc2FrdVwgOwor55Ge56WlIDwgenVpc2hvdVwgOwor5LyP57eaIDwgZnVrdXNlblwgOwor5YKA5YShIDwga3VndXRzdVwgOwor54+N6KuHIDwgY2hpbmRhblwgOwor5L+X5paHIDwgem9rdWJ1blwgOwor5YCS5bmVIDwgdG91YmFrdVwgOwor5a6255WcIDwga2FjaGlrdVwgOwor5Lit6aOvIDwgY2h1dWhhblwgOwor55CD6I+MIDwga3l1dWtpblwgOwor5pep5bCR5aWzIDwgc2FvdG9tZVwgOwor5Lit6aKoIDwgY2h1dWJ1dVwgOwor6aKo6Y6uIDwgZnV1Y2hpblwgOwor5YCf5bGLIDwgc2hha3V5YVwgOwor5bO25LitIDwgdG91Y2h1dVwgOwor5a6d55+zIDwgaG91c2VraVwgOwor6IOG55+zIDwgdGFuc2VraVwgOwor5bGx5birIDwgeWFtYXNoaVwgOwor5pyo6YeRIDwgbW9rdWtpblwgOwor5aaC5L2V54mpIDwgaWthbW9ub1wgOwor5bGe5oCnIDwgem9rdXNlaVwgOwor5p2l6Ki6IDwgcmFpc2hpblwgOwor54mI55S75a62IDwgaGFuZ2FrYVwgOwor5L6/5pyNIDwgYmVucHVrdVwgOwor5Lqh6KaqIDwgYm91c2hpblwgOwor5LuV6I2JIDwgc2hpZ3VzYVwgOwor5Lmd6YeNIDwga29rb25vZVwgOwor5L+K5pWPIDwgc2h1bmJpblwgOwor6LiK5a2XIDwgb2RvcmlqaVwgOwor5bGx5bOhIDwgeWFtYWthaVwgOwor6LWk5r2uIDwgYWthc2hpb1wgOwor5a2m57SaIDwgZ2Fra3l1dVwgOwor55Wl5ZuzIDwgcnlha3V6dVwgOwor5Lih6aCtIDwgcnlvdXRvdVwgOwor5bCa5pu0IDwgbmFvc2FyYVwgOwor5Lit6ZqKIDwgY2h1dXRhaVwgOwor5pyo6YCgIDwgbW9rdXpvdVwgOwor5Lyd56WoIDwgZGVucHlvdVwgOwor5pyd6YWSIDwgYXNhemFrZVwgOwor5a+C54S2IDwgc2VraXplblwgOwor5bCC5qWtIDwgc2VuZ3lvdVwgOwor6Leh5b2iIDwgYXRva2F0YVwgOwor5YG25L2cIDwgZ3V1c2FrdVwgOwor5bCP5p+EIDwga29kenVrYVwgOwor6IG0572qIDwgY2hvdXphaVwgOwor5L2Z54axIDwgeW9uZXRzdVwgOwor5Lih6Z2iIDwgcnlvdW1lblwgOwor5L+h5oSbIDwgc2hpbicnYWlcIDsKK+S/l+aJjSA8IHpva3VzYWlcIDsKK+WtmOe2miA8IHNvbnpva3VcIDsKK+acm+mDtyA8IGJvdWt5b3VcIDsKK+WuneeUnyA8IGhvdXNob3VcIDsKK+e+jumrqiA8IGJpaGF0c3VcIDsKK+S4remWkyA8IGNodXVrYW5cIDsKK+S4gOmrqiA8IGlwcGF0c3VcIDsKK+S7sue2mSA8IGNodXVrZWlcIDsKK+WuieedgCA8IGFuY2hha3VcIDsKK+Wto+evgCA8IGtpc2V0c3VcIDsKK+aEm+mjsuiAhSA8IGFpaW5zaGFcIDsKK+S6jOimqiA8IGZ1dGFveWFcIDsKK+ixmui2syA8IHRvbnNva3VcIDsKK+S9meeDiCA8IHlvcmV0c3VcIDsKK+advuiRiSA8IG1hdHN1YmFcIDsKK+WuieebtCA8IGFuY2hva3VcIDsKK+miqOmAnyA8IGZ1dXNva3VcIDsKK+mhjumrrSA8IGFnb2hpZ2VcIDsKK+e/vOizmyA8IHlva3VzYW5cIDsKK+WxnuWztiA8IHpva3V0b3VcIDsKK+iCuueXhSA8IGhhaWJ5b3VcIDsKK+Wun+eQhiA8IGppdHN1cmlcIDsKK+WtpuerpSA8IGdha3Vkb3VcIDsKK+WuieWumuWZqCA8IGFudGVpa2lcIDsKK+aji+WuoiA8IGtpa3lha3VcIDsKK+acq+i3ryA8IG1hdHN1cm9cIDsKK+mnhOiPk+WtkCA8IGRhZ2FzaGlcIDsKK+WwhuadpSA8IHNob3VyYWlcIDsKK+S6huinoyA8IHJ5b3VrYWlcIDsKK+eVkeWcsCA8IGhhdGFjaGlcIDsKK+eUt+WovCA8IGRhbnNob3VcIDsKK+WtpOeriyA8IGtvcml0c3VcIDsKK+WUkOiDoem6uyA8IHRvdWdvbWFcIDsKK+iFueW4ryA8IGZ1a3V0YWlcIDsKK+S/l+aDhSA8IHpva3Vqb3VcIDsKK+S6huimiyA8IHJ5b3VrZW5cIDsKK+S4uOmLvCA8IG1hcnVrb3VcIDsKK+S/iuaJjSA8IHNodW5zYWlcIDsKK+WBnOmfs+espiA8IHRlaW9ucHVcIDsKK+S/l+aCqiA8IHpva3Vha3VcIDsKK+iBt+e1hCA8IHNob2t1c29cIDsKK+e+pOmbhiA8IGd1bnNodXVcIDsKK+e+pOmbhCA8IGd1bicneXV1XCA7CivlsbHlp6UgPCB5YW1hdWJhXCA7CivkuIrpoY4gPCBqb3VnYWt1XCA7Civlr53mrr8gPCBzaGluZGVuXCA7CivlsJHmlbAgPCBzaG91c3V1XCA7CivlnJLoirjlrrYgPCBlbmdlaWthXCA7CivlsI/mlo4gPCBzaG91c2FpXCA7CivmipXlvbHmqZ8gPCB0b3VlaWtpXCA7CivohILmsJcgPCBhYnVyYWtlXCA7CivlsL3lv6AgPCBqaW5jaHV1XCA7Civoi7HlkInliKkgPCBpZ2lyaXN1XCA7CivmnaHomasgPCBqb3VjaHV1XCA7CivnlaXlj5kgPCByeWFrdWpvXCA7Civnvo7po58gPCBiaXNob2t1XCA7CivlsbHlpaUgPCB5YW1hb2t1XCA7Civnj43olLUgPCBjaGluem91XCA7CivnhKHlo7Dpn7MgPCBtdXNlaW9uXCA7Civkv5flv7UgPCB6b2t1bmVuXCA7CivmoLzmrrUgPCBrYWt1ZGFuXCA7CivkuIDpo58gPCBpc3Nob2t1XCA7CivnjYTploAgPCBnb2t1bW9uXCA7CivllJDojITlrZAgPCB0b3VuYXN1XCA7Civml6XmnKzoqp4gPCBuaWhvbmdvXCA7CivkubHoqr8gPCByYW5jaG91XCA7Civkurroh6MgPCBqaW5zaGluXCA7CivkuIDpoZ4gPCBpY2hpcnVpXCA7CivkubHoqq0gPCByYW5kb2t1XCA7CivkuoDoo4IgPCBraXJldHN1XCA7Civog7jmsLQgPCBreW91c3VpXCA7CivmnqDnt5ogPCB3YWt1c2VuXCA7CivkvJHnnKAgPCBreXV1bWluXCA7Civoh6jkvJEgPCByaW5reXV1XCA7CivlvpPkuInkvY0gPCBqdXNhbm1pXCA7CivlqablpbPlrZAgPCBmdWpvc2hpXCA7CivkvI/nm64gPCBmdXNoaW1lXCA7CivkuIfpm6MgPCBiYW4nJ25hblwgOwor5bGO5bC/IDwgc2hpbnlvdVwgOwor5LiK6Zm4IDwgam91cmlrdVwgOwor5bC65bqmIDwgc2hha3Vkb1wgOwor5LiH6ZqcIDwgYmFuc2hvdVwgOwor5pyA6YGpIDwgc2FpdGVraVwgOwor5bCx5b25IDwgc2h1dWVraVwgOwor5LiA6Z2iIDwgaWNoaW1lblwgOwor5a++5pW1IDwgdGFpdGVraVwgOwor5bel5LqL6LK7IDwga291amloaVwgOwor5rip5bqm6KiIIDwgb25kb2tlaVwgOwor5LuP57iBIDwgYnV0c3VlblwgOwor5LuV57WEIDwgc2hpa3VtaVwgOwor5qGQ5p2QIDwga2lyaXphaVwgOwor5bCE5pKDIDwgc2hhZ2VraVwgOwor5a6J5a6a5YyWIDwgYW50ZWlrYVwgOwor5LiA6ZuoIDwgaGl0b2FtZVwgOwor5p+x54q2IDwgY2h1dWpvdVwgOwor5L2c5rOBIDwgc2Fra3lvdVwgOwor5LiA6ZujIDwgaWNoaW5hblwgOwor5bGx5ZywIDwgeWFtYWNoaVwgOwor5rOV6J666LKdIDwgaG9yYWdhaVwgOwor6IO05qyyIDwgZG91eW9rdVwgOwor6aGN6Z2iIDwgZ2FrdW1lblwgOwor54+N6Iq4IDwgY2hpbmdlaVwgOwor5qOu5Y6zIDwgc2hpbmdlblwgOwor55S35ZuaIDwgZGFuc2h1dVwgOwor5qKv5a2QIDwgaGFzaGlnb1wgOwor5p6V57W1IDwgbWFrdXJhZVwgOwor55Wq5YKYIDwgYmFuZ2FzYVwgOwor6Z2e5bi45pmCIDwgaGlqb3VqaVwgOwor5LiA6ZmjIDwgaWNoaWppblwgOwor5LuP57WMIDwgYnVra3lvdVwgOwor6aCs6autIDwgaG9vaGlnZVwgOwor5pyq6KitIDwgbWlzZXRzdVwgOwor55Wl5YSAIDwgcnlha3VnaVwgOwor5Li76Lu4IDwgc2h1amlrdVwgOwor6aCs6aqoIDwgaG9vYm9uZVwgOwor5Lmx6KGMIDwgcmFuZ3lvdVwgOwor6IKJ55y8IDwgbmlrdWdhblwgOwor5Lit6YGTIDwgY2h1dWRvdVwgOwor5a6i5ryUIDwga3lha3VlblwgOwor5a6M54afIDwga2FuanVrdVwgOwor5LiA6ZaAIDwgaWNoaW1vblwgOwor5pqX6ayxIDwgYW4nJ3V0c3VcIDsKK+WFq+WNg+S7oyA8IHlhY2hpeW9cIDsKK+akjeS7mCA8IHVldHN1a2VcIDsKK+eQhueqnyA8IHJpa3V0c3VcIDsKK+Wun+a8lCA8IGppdHN1ZW5cIDsKK+WwvOWvuiA8IGFtYWRlcmFcIDsKK+S4rei+siA8IGNodXVub3VcIDsKK+adkeiQvSA8IHNvbnJha3VcIDsKK+acq+ijlCA8IG1hdHN1ZWlcIDsKK+WwuuWvuCA8IHNla2lzdW5cIDsKK+acqOijvSA8IG1va3VzZWlcIDsKK+S9l+atjCA8IHdhYml1dGFcIDsKK+S/ruWjqyA8IHNodXVzaGlcIDsKK+miqOiplSA8IGZ1dWh5b3VcIDsKK+eVquS6uiA8IGJhbicnbmluXCA7CivlrrPmr5IgPCBnYWlkb2t1XCA7CivmnJfoqq0gPCByb3Vkb2t1XCA7Civlrp/muKwgPCBqaXNzb2t1XCA7CivnlJ/lnqMgPCBpa2VnYWtpXCA7CivlsZ7lm70gPCB6b2trb2t1XCA7CivkupToibIgPCBnb3Nob2t1XCA7CivotaTmnK0gPCBha2FmdWRhXCA7CivkuI3ntLDlt6UgPCBidXNhaWt1XCA7Civmnb/nt6AgPCBpdGFqaW1lXCA7Civnj43ogZ4gPCBjaGluYnVuXCA7CivkvZnmsLTot68gPCB5b3N1aXJvXCA7CivnlLrlkI0gPCBjaG91bWVpXCA7CivmnJ3oposgPCBjaG91a2VuXCA7Civmmq7pm6ogPCBib3NldHN1XCA7CivkvbPmnIggPCBrYWdldHN1XCA7CivogonnlYwgPCBuaWt1a2FpXCA7CivmnaXogbQgPCByYWljaG91XCA7Civku7vnlKggPCBuaW4nJ3lvdVwgOwor6IO45p2/IDwgbXVuYWl0YVwgOwor5L+h5aWJIDwgc2hpbnBvdVwgOwor5p2/57SZIDwgaXRhZ2FtaVwgOwor5LqM6ImyIDwgbmlzaG9rdVwgOwor6aeQ5pSvIDwgY2h1dXNoaVwgOwor5puy6LevIDwga3lva3Vyb1wgOwor5bCR5byfIDwgc2hvdXRlaVwgOwor55u46YGV54K5IDwgc291aXRlblwgOwor5Lih6LyqIDwgcnlvdXJpblwgOwor5pyo6J2LIDwgbW9rdXJvdVwgOwor5LiA6YygIDwgaWNoaWpvdVwgOwor5a6f5rOBIDwgamlra3lvdVwgOwor6LWk5peXIDwgYWthaGF0YVwgOwor5L+C5bGeIDwga2Vpem9rdVwgOwor5Lih6LuNIDwgcnlvdWd1blwgOwor6IOO5q+SIDwgdGFpZG9rdVwgOwor55WZ5Lu7IDwgcnl1dW5pblwgOwor5py96JGJIDwga3VjaGliYVwgOwor5pu86I28576FIDwgbWFuZGFyYVwgOwor5bGx5YuYIDwgeWFtYWthblwgOwor5bCR5bm0IDwgc2hvdW5lblwgOwor5LuK56iLIDwgaW1haG9kb1wgOwor6aeS5pCNIDwga29tYXNvblwgOwor572q6ZqcIDwgemFpc2hvdVwgOwor5bCP5bqXIDwgc2hvdXRlblwgOwor5Zyw6Zu354GrIDwgamlyYWlrYVwgOwor5YWs5YuZ5ZOhIDwga291bXVpblwgOwor5a6/5qC5IDwgc2h1a2tvblwgOwor5pyI6KmVIDwgZ2VwcHlvdVwgOwor5qGI5bGx5a2QIDwga2FrYXNoaVwgOwor5LiL6YOoIDwgc2hpbW9iZVwgOwor5p2f576kIDwgc29rdWd1blwgOwor5a6f5q+NIDwgaml0c3Vib1wgOwor5LiN6YGUIDwgZnV0YXRzdVwgOwor5Y+k5Luj6KqeIDwga29kYWlnb1wgOwor55Sf5LiA5pysIDwga2lpcHBvblwgOwor5LiL6YGUIDwga2F0YXRzdVwgOwor6aOb6ISaIDwgaGlreWFrdVwgOwor55S65YaFIDwgY2hvdW5haVwgOwor5pyI6KaLIDwgdHN1a2ltaVwgOwor5L+X5aG1IDwgem9rdWppblwgOwor5YCL5YilIDwga29iZXRzdVwgOwor5bGe5ZCNIDwgem9rdW1laVwgOwor5LuY552AIDwgZnVjaGFrdVwgOwor5LiK6YCyIDwgam91c2hpblwgOwor54yf6YqDIDwgcnlvdWp1dVwgOwor5Lqk57WhIDwga291cmFrdVwgOwor5L2V5p+QIDwgbmFuaWJvdVwgOwor6Lqr6LSU5bGTIDwgbWliaWlraVwgOwor5LuV552AIDwgc2hpa2lzZVwgOwor5pyo6JSmIDwga2lkenV0YVwgOwor6IKJ54mHIDwgbmlrdWhlblwgOwor55S35YSqIDwgZGFuJyd5dXVcIDsKK+acqOiTriA8IG1va3VyZW5cIDsKK+acquaVtOeQhiA8IG1pc2VpcmlcIDsKK+S6iOenkeeUnyA8IHlva2FzZWlcIDsKK+absuitnCA8IGt5b2t1ZnVcIDsKK+iCpea6nCA8IGtvZWRhbWVcIDsKK+iznueOqSA8IHNob3VnYW5cIDsKK+WAn+S6uiA8IGthcmluaW5cIDsKK+S/iuWjqyA8IHNodW5zaGlcIDsKK+abuOiplSA8IHNob2h5b3VcIDsKK+WvhuaVmSA8IG1pa2t5b3VcIDsKK+S4gOmBkyA8IGljaGlkb3VcIDsKK+S4gOmBhyA8IGljaGlndXVcIDsKK+abuOiovCA8IHNob3Nob3VcIDsKK+iyq+emhCA8IGthbnJva3VcIDsKK+acque1jOmBjiA8IG1pa2Vpa2FcIDsKK+i2iuW5tCA8IGV0c3VuZW5cIDsKK+S4gOmAoyA8IGljaGlyZW5cIDsKK+S4iei7uCA8IHNhbmppa3VcIDsKK+iAgeiHoyA8IHJvdXNoaW5cIDsKK+adoee0hCA8IGpvdXlha3VcIDsKK+ixhuiUtSA8IG1hbWV6b3VcIDsKK+S9meaXpSA8IHlvaml0c3VcIDsKK+eQg+eVjCA8IGt5dXVrYWlcIDsKK+S9nOaWhyA8IHNha3VidW5cIDsKK+a1t+advuiynSA8IG1pcnVnYWlcIDsKK+S9juacqCA8IHRlaWJva3VcIDsKK+mmrOaWuSA8IHVtYWthdGFcIDsKK+S5seiHoyA8IHJhbnNoaW5cIDsKK+S9leaZgiA8IG5hbmRva2lcIDsKK+i1pOaJiyA8IHNla2lzaHVcIDsKK+WAkuS8jyA8IHRvdWZ1a3VcIDsKK+absuinoyA8IGt5b2trYWlcIDsKK+S4gOi8qiA8IGljaGlyaW5cIDsKK+WwiuWuuSA8IHNvbicneW91XCA7CivkuIrotrMgPCBqb3Vzb2t1XCA7CivkuKHoq5YgPCByeW91cm9uXCA7CivkuIDou40gPCBpY2hpZ3VuXCA7CivnlLrkurogPCBjaG91bmluXCA7CivkuIrotoogPCBqb3VldHN1XCA7CivlsYDlk6EgPCBreW9rdWluXCA7CivlsILlsZ4gPCBzZW56b2t1XCA7CivkvZXmlYUgPCBuYW5peXVlXCA7Civku4vnl4UgPCBrYWlieW91XCA7Civku4/nlLsgPCBidXRzdWdhXCA7CivohLHlrZcgPCBkYXRzdWppXCA7CivnjJvov70gPCBtb3V0c3VpXCA7CivotIXmsqIgPCB6ZWl0YWt1XCA7Civkv6Hlj7cgPCBzaGluZ291XCA7CivnlLDkvZwgPCBkZW5zYWt1XCA7CivlhbXlhZDluK8gPCBoZWtvb2JpXCA7CivlsbHkuK0gPCBzYW5jaHV1XCA7CivmnKzohbkgPCBob25wdWt1XCA7CivkupTnr4AgPCBnb3NldHN1XCA7CivkuLvombkgPCBzaHVuaWppXCA7CivkuKboo70gPCBuYW1pc2VpXCA7CivnlJrlha0gPCBqaW5yb2t1XCA7CivotaTmgaUgPCBha2FoYWppXCA7CivouqvlpYfpupcgPCBtaWdpcmVpXCA7CivmnLHogokgPCBzaHVuaWt1XCA7CivkvZnmjqUgPCB5b3NldHN1XCA7CivmpJzmn7vlk6EgPCBrZW5zYWluXCA7CivnlLLkuZkgPCBrb3VvdHN1XCA7CivkupXnrZIgPCBpZHp1dHN1XCA7CivmnKzog70gPCBob24nJ25vdVwgOwor55Gj5pyrIDwgc2FtYXRzdVwgOwor5Lq655qHIDwgbmluJydub3VcIDsKK+S6uueahCA8IGppbnRla2lcIDsKK+iEhuW8sSA8IHplaWpha3VcIDsKK+mlkea4hyA8IGtpa2F0c3VcIDsKK+S4u+iWrCA8IHNodXlha3VcIDsKK+WNseapn+aEnyA8IGtpa2lrYW5cIDsKK+i1pOiMhOWtkCA8IGFrYW5hc3VcIDsKK+WumOaciSA8IGthbicneXV1XCA7Civku5bniakgPCB0YWJ1dHN1XCA7Civnvr3omasgPCBoYW11c2hpXCA7CivnlKPkvJEgPCBzYW5reXV1XCA7CivkvZzmiKYgPCBzYWt1c2VuXCA7CivkvK/mnpcgPCBiZXJ1cmluXCA7Civog4zmlZkgPCBoYWlreW91XCA7CivosYrog7ggPCBob3VreW91XCA7Civmn7PmnaEgPCByeXV1am91XCA7Civnq6/mrabogIUgPCBoYW11c2hhXCA7CivnlJ/kubMgPCBzZWlueXV1XCA7CivljbDluqbkurogPCBpbmRvamluXCA7CivlhoXlronmiZMgPCBuYWlhbmRhXCA7CivogonmsaAgPCBuaWt1Y2hpXCA7CivkuInop5IgPCBzYW5rYWt1XCA7CivkuIvoposgPCBzaGl0YW1pXCA7CivkvI/mqIsgPCBmdXNlZG9pXCA7CivogonmsYEgPCBuaWt1anV1XCA7CivlsYvmoLnmnb8gPCB5YW5laXRhXCA7CivnhKHmnJ/liJEgPCBtdWtpa2VpXCA7CivnjoTnv4EgPCBnZW4nJ25vdVwgOwor6KiY5b+156KRIDwga2luZW5oaVwgOwor5LiA6KqsIDwgaXNzZXRzdVwgOwor6aeQ5bGvIDwgY2h1dXRvblwgOwor5bCx5Yq0IDwgc2h1dXJvdVwgOwor6LK354mpIDwga2FpbW9ub1wgOwor6YO95biC5YyWIDwgdG9zaGlrYVwgOwor5bGF5YCZIDwgaXNvdXJvdVwgOwor5pyN6Ia6IDwgZnVrdXlvdVwgOwor5p6v5riHIDwga29rYXRzdVwgOwor6aKo57+SIDwgZnV1c2h1dVwgOwor5LmX576DIDwgam91YmVraVwgOwor5bGI5Ly4IDwga3Vzc2hpblwgOwor5L+X5YOnIDwgem9rdXNvdVwgOwor5bqc55+l5LqLIDwgZnVjaGlqaVwgOwor5YaF6ICz54KOIDwgbmFpamllblwgOwor5pys57WmIDwgaG9ua3l1dVwgOwor5Lit6JGJIDwgY2h1dXlvdVwgOwor572q6LehIDwgemFpc2VraVwgOwor6aOb56SrIDwgdHN1YnV0ZVwgOwor5p2h55uuIDwgam91bW9rdVwgOwor5LiA6KanIDwgaWNoaXJhblwgOwor5a+G5bqmIDwgbWl0c3Vkb1wgOwor5LiK6KGoIDwgam91aHlvdVwgOwor5YyX5Lqs6KqeIDwgcGVraW5nb1wgOwor5LiL6KGAIDwgZ2VrZXRzdVwgOwor6Laz5Yq0IDwgc29rdXJvdVwgOwor5bCP5ZaEIDwgc2hvdXplblwgOwor5Luu5rG6IDwga2FrZXRzdVwgOwor5LqV55uuIDwgc2VpbW9rdVwgOwor5bCa5Y+IIDwgbmFvbWF0YVwgOwor54qs5bCP5bGLIDwgaW51Z295YVwgOwor5pqX6LqNIDwgYW4nJ3lha3VcIDsKK+W9vOWyuOS8miA8IGhpZ2FuJydlXCA7CivosqjniakgPCBrYW1vdHN1XCA7Civlrp/mioAgPCBqaXRzdWdpXCA7CivmnKznsaQgPCBob25rdWppXCA7CivohLHllrYgPCBkYXRzdWVpXCA7CivkvZPlvpcgPCB0YWl0b2t1XCA7CivmnKznsY0gPCBob25zZWtpXCA7CivlsI/lk4EgPCBzaG91aGluXCA7CivmnInogbcgPCB5dXVzb2t1XCA7CivkvbPlrqIgPCBrYWt5YWt1XCA7Civnvo7ooZMgPCBiaWp1dHN1XCA7CivotaTlrZAgPCBzZWtpc2hpXCA7CivlrrPlv4MgPCBnYWlzaGluXCA7CivmmLzppJAgPCBjaHV1c2FuXCA7CivkuoznnYAgPCBuaWNoYWt1XCA7Civnm7jlvJ/lrZAgPCBhaWRlc2hpXCA7Civkv5fkvJ0gPCB6b2t1ZGVuXCA7CivmoLjlrZAgPCBrYWt1c2hpXCA7CivmnKznrrEgPCBob25iYWtvXCA7Civkuoznm7QgPCBuaWNob2t1XCA7CivppqzluIIgPCB1bWFpY2hpXCA7CivkvZXlubQgPCBuYW4nJ25lblwgOwor5bCP5Y+jIDwga29ndWNoaVwgOwor5p2+54WkIDwgc2hvdWJhaVwgOwor5pys562LIDwgaG9uc3VqaVwgOwor5p2x54usIDwgdG91ZG9rdVwgOwor542j6IKJIDwganV1bmlrdVwgOwor5LqM55m+IDwgbmloeWFrdVwgOwor5puy6IieIDwga3VzZW1haVwgOwor54+N542jIDwgY2hpbmp1dVwgOwor5pys56ugIDwgaG9uc2hvdVwgOwor5Li757+8IDwgc2h1eW9rdVwgOwor576k6JC9IDwgZ3VucmFrdVwgOwor6aO0546JIDwgYW1lZGFtYVwgOwor6ICE56KMIDwgbW91cm9rdVwgOwor5a6u5bu3IDwga3l1dXRlaVwgOwor5bCx5Lu7IDwgc2h1dW5pblwgOwor5aaZ6b2iIDwgbXlvdXJlaVwgOwor5pmC6ZuoIDwgc2hpZ3VyZVwgOwor5pyo56uLIDwga29kYWNoaVwgOwor546L56uLIDwgb3VyaXRzdVwgOwor5bCP5YuHIDwgc2hvdXl1dVwgOwor6IG35qipIDwgc2hva2tlblwgOwor5a+E5a6/IDwga2lzaHVrdVwgOwor6bOz5Yew5bqnIDwgaG91b3V6YVwgOwor6IOM5b6zIDwgaGFpdG9rdVwgOwor5qC85aSWIDwga2FrdWdhaVwgOwor5ZK96aCt54KOIDwgaW50b3VlblwgOwor5LiK6JSfIDwgam91em9rdVwgOwor5Lit6IOMIDwgY2h1dXplaVwgOwor6LWk5aSWIDwgc2VraWdhaVwgOwor5Lih6Ii3IDwgcnlvdWdlblwgOwor5a2j5pyrIDwga2ltYXRzdVwgOwor5p2+5r+kIDwgc2hvdXRvdVwgOwor5p+E5p2TIDwgaGlzaGFrdVwgOwor54us6LWwIDwgZG9rdXNvdVwgOwor5oqV5b2x5ZuzIDwgdG91ZWl6dVwgOwor546J56i/IDwgZ3lva2tvdVwgOwor5L6/5L6rIDwgYmVuJyduZWlcIDsKK+S4jeihm+eUnyA8IGZ1ZWlzZWlcIDsKK+S7luauuiA8IHRhc2F0c3VcIDsKK+S4i+iRiSA8IHNoaXRhYmFcIDsKK+i2s+S7oyA8IGFzaGlkYWlcIDsKK+S4reiAgSA8IGNodXVyb3VcIDsKK+aciOe1piA8IGdla2t5dXVcIDsKK+mnkOWcqCA8IGNodXV6YWlcIDsKK+S4oeiFlSA8IHJ5b3V1ZGVcIDsKK+eNhOiIjiA8IGdva3VzaGFcIDsKK+WwjuWFpSA8IGRvdW55dXVcIDsKK+aVtOeQhumDqCA8IHNlaXJpYnVcIDsKK+WFpeavjeWxiyA8IGlyaW1veWFcIDsKK+S5meeoriA8IG90c3VzaHVcIDsKK+eJnem2jyA8IG1lbmRvcmlcIDsKK+Wkmui2o+WRsyA8IHRhc2h1bWlcIDsKK+Wtn+aYpSA8IG1vdXNodW5cIDsKK+S+m+WLoiA8IHRvbW96ZWlcIDsKK+WvqeWVjyA8IHNoaW5tb25cIDsKK+S7i+auuyA8IGthaWtha3VcIDsKK+S4gOiRiSA8IGljaGl5b3VcIDsKK+acgOe1giA8IHNhaXNodXVcIDsKK+S5s+eZjCA8IG55dXVnYW5cIDsKK+iAvea6uiA8IHRhbmRla2lcIDsKK+S9j+WuhSA8IGp1dXRha3VcIDsKK+i2heWLpCA8IGNob3VraW5cIDsKK+iAgeeXhSA8IHJvdWJ5b3VcIDsKK+izk+agvCA8IGhpbmtha3VcIDsKK+acneekvCA8IGNob3VyZWlcIDsKK+mfs+iomOWPtyA8IG9ua2lnb3VcIDsKK+Wwj+S+vyA8IHNob25iZW5cIDsKK+WwgeWFpSA8IGZ1dW55dXVcIDsKK+aYpembtyA8IHNodW5yYWlcIDsKK+Wwj+WdiuS4uyA8IGtvYm91enVcIDsKK+S4ree3qCA8IGNodXVoZW5cIDsKK+acquedgCA8IG1pY2hha3VcIDsKK+abuOe1jCA8IHNob2t5b3VcIDsKK+WvuOWIuyA8IHN1bmtva3VcIDsKK+S6i+eJqSA8IGppYnV0c3VcIDsKK+S7lealrSA8IHNoaXdhemFcIDsKK+aXpeacrOeUuyA8IG5paG9uZ2FcIDsKK+ePvualrSA8IGdlbmd5b3VcIDsKK+abs+e2siA8IGhpa2lhbWlcIDsKK+WwiuS/oSA8IHNvbnNoaW5cIDsKK+i2heWHoSA8IGNob3Vib25cIDsKK+S7suaWrSA8IGNodXVkYW5cIDsKK+Wwj+S8nSA8IHNob3VkZW5cIDsKK+mepumfhiA8IGJ1cmFua29cIDsKK+e0gOWFg+W+jCA8IGtpZ2VuZ29cIDsKK+S5seeUqCA8IHJhbicneW91XCA7CivkuIPoibIgPCBuYW5haXJvXCA7CivkuIrohoogPCBqb3VoYWt1XCA7CivkvZXlpbQgPCBkb3lhdHN1XCA7CivkvZPmuKnlmaggPCB0YWlvbmtpXCA7CivkuIDoirggPCBpY2hpZ2VpXCA7Civniqzph5ggPCBpbnVrdWdpXCA7CivmnKrnmbogPCBtaWhhdHN1XCA7CivlsI/kurogPCBzaG91bmluXCA7CivkvZflo7AgPCB3YWJpZ29lXCA7CivkuIDoibIgPCBoaXRvaXJvXCA7CivkuLvnrYsgPCBzaHVzdWppXCA7CivkuK3ns7ggPCBjaHV1aXRvXCA7Civos4fmoLwgPCBzaGlrYWt1XCA7Civmm7jnsY0gPCBzaG9zZWtpXCA7Civlrr/loLQgPCBzaHVrdWJhXCA7CivmmKXpl5ggPCBzaHVudG91XCA7CivmmrTokL0gPCBib3VyYWt1XCA7CivkuqzmtJsgPCBrZWlyYWt1XCA7CivkuIfog70gPCBtYW4nJ25vdVwgOwor5LiJ6IKyIDwgc2FuJydpa3VcIDsKK+S4ieiCoSA8IHNhbm1hdGFcIDsKK+S4gOiGsyA8IGljaGl6ZW5cIDsKK+eJuembuyA8IHRva3VkZW5cIDsKK+mghuiqvyA8IGp1bmNob3VcIDsKK+e+veeukiA8IGhhYm91a2lcIDsKK+iEmuWFiSA8IGt5YWtrb3VcIDsKK+eLrOijgSA8IGRva3VzYWlcIDsKK+e+iuiGnCA8IHlvdW1ha3VcIDsKK+acq+eUnyA8IHN1ZW5hcmlcIDsKK+afu+WvnyA8IHNhc2F0c3VcIDsKK+S4iue/vCA8IGpvdXlva3VcIDsKK+S8keaAoCA8IGt5dXV0YWlcIDsKK+S5seeNsiA8IHJhbmtha3VcIDsKK+e+qee1tiA8IGdpemV0c3VcIDsKK+aYh+mghiA8IHNob3VqdW5cIDsKK+ePvuaciSA8IGdlbicneXV1XCA7Civosp3mrrwgPCBrYWlnYXJhXCA7Civnianpn7MgPCBtb25vb3RvXCA7Civlvq7muKnmua8gPCBiaW9udG91XCA7CivkuLvnpZ4gPCBzaHVzaGluXCA7Civnjonnkr0gPCBneW9rdWppXCA7CivkvJrluK0gPCBrYWlzZWtpXCA7Civni7zol4kgPCByb3V6ZWtpXCA7CivnvorogokgPCB5b3VuaWt1XCA7CivpoJDooYAgPCB5b2tldHN1XCA7CivosrTlqabkurogPCBraWZ1amluXCA7CivpoqjnlrkgPCBmdXVzaGluXCA7CivnjonnkZsgPCBneW9rdWVpXCA7Civlrr/llrYgPCBzaHVrdWVpXCA7Civku5bml6UgPCB0YWppdHN1XCA7CivogIHnhp8gPCByb3VqdWt1XCA7Civos4fmlpkgPCBzaGlyeW91XCA7Civpp5DlhbUgPCBjaHV1aGVpXCA7Civlj7PlpKfoh6MgPCB1ZGFpamluXCA7CivkvY7lnKcgPCB0ZWlhdHN1XCA7Civmnb7mpZMgPCBzaG91ZnV1XCA7Civku4rmnJ0gPCBrb25jaG91XCA7CivkuLnnoqcgPCB0YW5wZWtpXCA7Civmmq7oibIgPCBib3Nob2t1XCA7Civku5XmlrkgPCBzaGlrYXRhXCA7CivluLDljJbkurogPCBraWthamluXCA7Civku4rmm7QgPCBpbWFzYXJhXCA7Civlr4blkYogPCBtaWtrb2t1XCA7Civniq/ot6EgPCBoYW5zZWtpXCA7CivosrTmnK0gPCBraXNhdHN1XCA7Civpo4TnhLYgPCBoeW91emVuXCA7Civku4rmmoEgPCBrb25neW91XCA7Civml6nppqwgPCBoYXlhdW1hXCA7CivkvZzlk4EgPCBzYWt1aGluXCA7CivosqDmpbUgPCBmdWt5b2t1XCA7CivmiKblvozmtL4gPCBzZW5nb2hhXCA7CivkurrmoLwgPCBqaW5rYWt1XCA7CivmnKzniakgPCBob25tb25vXCA7Civku4rmmYIgPCBpbWFkb2tpXCA7CivmnaXmrbQgPCByYWlyZWtpXCA7Civpn7PoqLMgPCBvbicneWFrdVwgOwor5LuK5pilIDwga29uc2h1blwgOwor6LKv5pyoIDwgY2hvYm9rdVwgOwor6LK35pilIDwgYmFpc2h1blwgOwor5a+M5YqbIDwgZnVyeW9rdVwgOwor5LiK57SaIDwgam91a3l1dVwgOwor5LiK57SZIDwgdXdhZ2FtaVwgOwor6IGa5pWjIDwgc2h1dXNhblwgOwor5LiK57SQIDwgdXdhaGltb1wgOwor5LuK5pa5IDwgaW1hZ2F0YVwgOwor5pyo54mIIDwgbW9rdWhhblwgOwor5pyo54mHIDwgbW9rdWhlblwgOwor6IOM5ZynIDwgaGFpYXRzdVwgOwor6IKJ5by+IDwgbmlrdWRhblwgOwor542E56qTIDwgZ29rdXNvdVwgOwor5a2m5bm0IDwgZ2FrdW5lblwgOwor5a6i5ZyfIDwga3lha3Vkb1wgOwor6K206LKsIDwga2Vuc2VraVwgOwor5L2O5ZSxIDwgdGVpc2hvdVwgOwor5pen6aKoIDwga3l1dWZ1dVwgOwor5a2Y5b+1IDwgem9uJyduZW5cIDsKK+eOh+eIviA8IHNvdHN1amlcIDsKK+WtpuW4vSA8IGdha3Vib3VcIDsKK+acrOeEtiA8IGhvbicnbmVuXCA7Civni4LoqIAgPCBreW91Z2VuXCA7Civku5XmjpsgPCBzaGlrYWtlXCA7CivmoKrliLggPCBrYWJ1a2VuXCA7Civpo5vmsqsgPCBoaW1hdHN1XCA7Civpoqjni4IgPCBmdXVreW91XCA7CivlrZDmga8gPCBzaGlzb2t1XCA7CivppqzljLkgPCBiYWhpdHN1XCA7Civmm7jnm64gPCBzaG9tb2t1XCA7CivkuIrnrrEgPCB1d2FiYWtvXCA7Civog7jlg48gPCBreW91em91XCA7Civog7TlhYMgPCBkb3Vtb3RvXCA7CivmmpfoibIgPCBhbnNob2t1XCA7Civlrozlo4EgPCBrYW5iZWtpXCA7Civog4blmqIgPCB0YW4nJ25vdVwgOwor6LGK54afIDwgaG91anVrdVwgOwor5LiK562WIDwgam91c2FrdVwgOwor6aGO57SQIDwgYWdvaGltb1wgOwor5pyo54KtIDwgbW9rdXRhblwgOwor5L2Z5YqbIDwgeW9yeW9rdVwgOwor5Y+X5YOP5qmfIDwganV6b3VraVwgOwor5Lit55ukIDwgY2h1dWJhblwgOwor6KiY5b+15qi5IDwga2luZW5qdVwgOwor6ICz5qCTIDwgbWltaXNlblwgOwor5L2Z5YmyIDwgeW9rYXRzdVwgOwor5LiH562WIDwgYmFuc2FrdVwgOwor5Luk5oGvIDwgcmVpc29rdVwgOwor57KJ5b6u5aG1IDwga29taWppblwgOwor54mH6Z2iIDwga2F0YW1lblwgOwor54K65pS/6ICFIDwgaXNlaXNoYVwgOwor54m56YWNIDwgdG9rdWhhaVwgOwor5Lmz5riFIDwgbnl1dXNlaVwgOwor5pel6ZyyIDwgbmljaGlyb1wgOwor5aSn54qs5bqnIDwgb29pbnV6YVwgOwor5pel5pmC6KiIIDwgaGlkb2tlaVwgOwor5Lmz5rayIDwgbnl1dWVraVwgOwor54yu56uLIDwga29uZGF0ZVwgOwor5Lih55y8IDwgcnlvdWdhblwgOwor5L2V5YemIDwgZG9rb2lyYVwgOwor6LGG54KtIDwgbWFtZXRhblwgOwor5a6f5ZOhIDwgaml0c3VpblwgOwor54+N5pysIDwgY2hpbnBvblwgOwor5Luj5b25IDwgZGFpeWFrdVwgOwor5Lmx5rWBIDwgcmFucnl1dVwgOwor5LiA56uvIDwgaXBwYXNoaVwgOwor54+N5pu4IDwgY2hpbnNob1wgOwor5L2V5YWxIDwgbmFudG9tb1wgOwor5a+S5LitIDwga2FuY2h1dVwgOwor5pmC5LqL6KuWIDwgamlqaXJvblwgOwor5Lit55O2IDwgY2h1dWJpblwgOwor5LiH56aPIDwgbWFucHVrdVwgOwor6IG35belIDwgc2hva2tvdVwgOwor5a6F5ZywIDwgdGFrdWNoaVwgOwor5Lmz5rGBIDwgbnl1dWp1dVwgOwor5qCh5YCJIDwgYXpla3VyYVwgOwor57+V54S2IDwga3l1dXplblwgOwor5L+d6aSK6ZmiIDwgaG95b3VpblwgOwor5paw6a6uIDwgc2hpbnNlblwgOwor6LGK5ryBIDwgaG91cnlvdVwgOwor6K2r6KiAIDwgdXdhZ290b1wgOwor5pyd5r2uIDwgYXNhc2hpb1wgOwor6Ieq54S26JavIDwgamluZW5qb1wgOwor5L+d5YGl5omAIDwgaG9rZW5qb1wgOwor6aKo5r2uIDwgZnV1Y2hvdVwgOwor6IO05LitIDwgZG91bmFrYVwgOwor6aCa6IKJIDwga2VpbmlrdVwgOwor5L2c5L6LIDwgc2FrdXJlaVwgOwor6Zui5byB6IqxIDwgcmliZW5rYVwgOwor5pys5rWBIDwgaG9ucnl1dVwgOwor5a+G5LqLIDwgbWl0c3VqaVwgOwor5Luw5bGxIDwgZ3lvdXNhblwgOwor5LuP5oGpIDwgYnV0c3VvblwgOwor5qyh5LiW5LujIDwgamlzZWRhaVwgOwor5LuW5b6LIDwgdGFyaXRzdVwgOwor5p2l5pilIDwgcmFpaGFydVwgOwor5LiN5Zmo55SoIDwgYnVraXlvdVwgOwor54++5b25IDwgZ2VuJydla2lcIDsKK+S4gOekvCA8IGljaGlyZWlcIDsKK+mghuiJryA8IGp1bnJ5b3VcIDsKK+S4iuefsyA8IHV3YWlzaGlcIDsKK+Wun+WLmSA8IGppdHN1bXVcIDsKK+WtkOWxgCA8IGtva3lva3VcIDsKK+aJi+Wlh+m6lyA8IHRlZ2lyZWlcIDsKK+S4i+edgCA8IHNoaXRhZ2lcIDsKK+acquaxuiA8IG1pa2V0c3VcIDsKK+Wkp+m7kiA8IGRhaWtva3VcIDsKK+WhqeWfuuaApyA8IGVua2lzZWlcIDsKK+S7leW6piA8IHNoaXRha3VcIDsKK+WtpuWkliA8IGdha3VnYWlcIDsKK+mgrOe0hSA8IGhvb2JlbmlcIDsKK+mdoumVtyA8IG9tb25hZ2FcIDsKK+itmOiqniA8IHNoaWtpZ29cIDsKK+S9juS/lyA8IHRlaXpva3VcIDsKK+S4i+ebriA8IHNoaXRhbWVcIDsKK+adj+aelyA8IGt5b3VyaW5cIDsKK+WtkeWtkSA8IGJvdWZ1cmlcIDsKK+aal+e3kSA8IGFucnlva3VcIDsKK+mmrOS4uyA8IGJhbnVzaGlcIDsKK+eJuei1piA8IHRva3VzaGFcIDsKK+S4jeeZuiA8IGZ1aGF0c3VcIDsKK+S9leS6uiA8IG5hbnBpdG9cIDsKK+iomOW/teaXpSA8IGtpbmVuYmlcIDsKK+mrmOellueItiA8IGtvdXNvZnVcIDsKK+S7iuaXpeS4rSA8IGt5b3VqdXVcIDsKK+iBt+WuiSA8IHNob2t1YW5cIDsKK+aZr+iJsiA8IGtlc2hpa2lcIDsKK+adkeaciSA8IHNvbicneXV1XCA7CivmnZDmnKggPCB6YWltb2t1XCA7CivmnKfmsJcgPCBvYm9yb2dlXCA7CivkuIfnm64gPCBiYW5tb2t1XCA7CivpnLLpqqggPCByb2tvdHN1XCA7Civku4/luqcgPCBidXRzdXphXCA7Civpo5vmnK0gPCBoaXNhdHN1XCA7CivlpKfpt7ogPCBkYWlzYWdpXCA7Civoq5bpp4EgPCByb25iYWt1XCA7CivpoqjmtYEgPCBmdXVyeXV1XCA7CivlrabloLEgPCBnYWt1aG91XCA7Civogonlo7AgPCBuaWt1c2VpXCA7Civku6PlsIYgPCBkYWlzaG91XCA7CivosYrmsoMgPCBob3V5b2t1XCA7CivokI7pu4Tnl4UgPCBpb3VieW91XCA7CivogZblu58gPCBzZWlieW91XCA7CivlrrbkuLsgPCB5YW51c2hpXCA7CivkuIDnnYAgPCBpdGNoYWt1XCA7CivkuIDnnLwgPCBpY2hpZ2FuXCA7CivkuIDnnLggPCBpY2hpYm91XCA7CivorZjoposgPCBzaGlra2VuXCA7Civmn5Dlm70gPCBib3Vrb2t1XCA7CivmnYnmnZAgPCBzdWdpemFpXCA7CivkuIDnnKAgPCBpY2hpbWluXCA7Civku4HlvrMgPCBqaW50b2t1XCA7CivlrpvlhYggPCBhdGVzYWtpXCA7Civmk6zlj6TmlocgPCBnaWtvYnVuXCA7CivmlrDpoqggPCBzaGlucHV1XCA7CivkuIDnm7QgPCBpdGNob2t1XCA7Civku4rlubQgPCBrb24nJ25lblwgOwor6IOa5LmzIDwgaGFpbnl1dVwgOwor5LqM5pelIDwgZnV0c3VrYVwgOwor5pat6aOfIDwgZGFuamlraVwgOwor5Lmz5qOSIDwgbnl1dWJvdVwgOwor5LiL55WlIDwgZ2VyeWFrdVwgOwor55Ge5YWGIDwgenVpY2hvdVwgOwor5paw6aGUIDwgc2hpbmdhb1wgOwor5LiH55eFIDwgbWFuYnlvdVwgOwor6Z+76ISaIDwgaW5reWFrdVwgOwor5Zyw6KGj6aGeIDwgY2hpaXJ1aVwgOwor57+85qOfIDwgeW9rdXRvdVwgOwor5LiJ55S3IDwgc2FuJyduYW5cIDsKK+adkOaWmSA8IHphaXJ5b3VcIDsKK+Wphue+hemWgCA8IGJhcmFtb25cIDsKK+WumOWDmiA8IGthbnJ5b3VcIDsKK+aWh+mzpSA8IGJ1bmNob3VcIDsKK+S6uuW+syA8IG5pbnRva3VcIDsKK+S7sOWkqSA8IGd5b3V0ZW5cIDsKK+iziuWusyA8IHpva3VnYWlcIDsKK+mhjOebriA8IGRhaW1va3VcIDsKK+S6uuW9oiA8IG5pbmd5b3VcIDsKK+eJm+i7iiA8IGd5dXVzaGFcIDsKK+iziuWtkCA8IHpva3VzaGlcIDsKK+enmOabuOiqsiA8IGhpc2hva2FcIDsKK+acrOalrSA8IGhvbmd5b3VcIDsKK+WNsOeUu+e0mSA8IGluZ2FzaGlcIDsKK+iyp+W8sSA8IGhpbmpha3VcIDsKK+eIhumiqCA8IGJha3VmdXVcIDsKK+iAgeacvSA8IHJvdWt5dXVcIDsKK+aXqemAnyA8IHNhc3Nva3VcIDsKK+aXp+mBkyA8IGt5dXVkb3VcIDsKK+iAgeacqCA8IHJvdWJva3VcIDsKK+eJueiqjSA8IHRva3VuaW5cIDsKK+acrOajmiA8IGhvbmRhbmFcIDsKK+Wmmei2oyA8IG15b3VzaHVcIDsKK+eJqeixoSA8IGJ1c3Nob3VcIDsKK+S7j+WvuiA8IGJ1dHN1amlcIDsKK+S6iOaDs+WxiyA8IHlvc291eWFcIDsKK+aFiOWWhOWutiA8IGppemVua2FcIDsKK+acq+aioiA8IG1hc3Nob3VcIDsKK+irlumboyA8IHJvbicnbmFuXCA7CivlnJ/mm5zml6UgPCBkb3lvdWJpXCA7CivkuIrnjokgPCBqb3VkYW1hXCA7Civoq5bpm4YgPCByb25zaHV1XCA7CivmnpflraYgPCByaW5nYWt1XCA7CivlrabllY8gPCBnYWt1bW9uXCA7Civosarml48gPCBnb3V6b2t1XCA7CivogbfloLQgPCBzaG9rdWJhXCA7CivmnKzmoLwgPCBob25rYWt1XCA7CivkvJrliYcgPCBrYWlzb2t1XCA7CivkuLvmtYEgPCBzaHVyeXV1XCA7Civml6Lov7AgPCBraWp1dHN1XCA7Civnvqnng4ggPCBnaXJldHN1XCA7CivpmY3pm6jmnpcgPCBrb3V1cmluXCA7CivnianorbAgPCBidXRzdWdpXCA7CivosrjlrrYgPCBrYXNoaXlhXCA7CivmnInmr5IgPCB5dXVkb2t1XCA7CivmlrDplosgPCBzaGlua2FpXCA7CivkuIvniakgPCBrYWJ1dHN1XCA7Civku5nlpbMgPCBzZW4nJ255b1wgOwor54iG6Zu3IDwgYmFrdXJhaVwgOwor5LyP5YuiIDwgZnVzZXplaVwgOwor5LiK54mpIDwgam91bW9ub1wgOwor5pyd6aKo5ZGCIDwgYXNhYnVyb1wgOwor5p6g5aSWIDwgd2FrdWdhaVwgOwor5pys5pydIDwgaG9uY2hvdVwgOwor54m56KOFIDwgdG9rdXNvdVwgOwor6aCY56m6IDwgcnlvdWt1dVwgOwor5a2m5ZCNIDwgZ2FrdW1laVwgOwor5pen6LmfIDwgZnVydWF0b1wgOwor5pyr5pyfIDwgbWF0c3Vnb1wgOwor5pyo5p2vIDwgbW9rdWhhaVwgOwor5YaN5LiL5LuYIDwgc2Fpa2FmdVwgOwor5rSL55S75a62IDwgeW91Z2FrYVwgOwor6Kys6KuWIDwgYnl1dXJvblwgOwor5pyo5p2QIDwgbW9rdXphaVwgOwor5a2m5Y+LIDwgZ2FrdXl1dVwgOwor5pyo5pysIDwgbW9rdWhvblwgOwor5LiL54axIDwgZ2VuZXRzdVwgOwor5a6a6KaP5bqnIDwgam91Z2l6YVwgOwor5p2l5b6pIDwgcmFpZnVrdVwgOwor5pyo5pucIDwgbW9rdXlvdVwgOwor5puy5rWmIDwga3lva3Vob1wgOwor6aGe54S8IDwgcnVpc2hvdVwgOwor6aKo5qC8IDwgZnV1a2FrdVwgOwor5p2+5bGLIDwgbWF0c3V5YVwgOwor6aCt55uuIDwgdG91bW9rdVwgOwor5Lmd5pyIIDwga3VnYXRzdVwgOwor5LyP5YW1IDwgZnVrdWhlaVwgOwor54m56J6NIDwgdG9rdXl1dVwgOwor5Lmx5pKDIDwgcmFuZ2VraVwgOwor542j5qyyIDwganV1eW9rdVwgOwor5aSp6aCYIDwgdGVucnlvdVwgOwor6ZyA55So5a62IDwganV5b3VrYVwgOwor5L+d5YGl5ammIDwgaG9rZW5mdVwgOwor6LGG5p2/IDwgbWFtZWl0YVwgOwor6LO85YWlIDwga291bnl1dVwgOwor6aSF5bGLIDwgbW9jaGl5YVwgOwor5auh5oqrIDwgY2hha3VoaVwgOwor5pyd5p2lIDwgY2hvdXJhaVwgOwor6Kys6KaLIDwgYnl1dWtlblwgOwor5LiL54GrIDwgc2hpdGFiaVwgOwor6LGG5pysIDwgbWFtZWhvblwgOwor6auY56WW5q+NIDwga291c29ib1wgOwor5aaZ6KiIIDwgbXlvdWtlaVwgOwor5LuK5aSVIDwga29uJyd5dXVcIDsKK+S5neaYnyA8IGt5dXVzZWlcIDsKK+Wnv+e1tSA8IHN1Z2F0YWVcIDsKK+iBt+WToSA8IHNob2t1aW5cIDsKK+WknOmjnyA8IHlhc2hva3VcIDsKK+eQg+WboyA8IGt5dXVkYW5cIDsKK+WkluiAs+eCjiA8IGdhaWppZW5cIDsKK+WkmumjnyA8IHRhc2hva3VcIDsKK+iCluWDjyA8IHNob3V6b3VcIDsKK+adseWxiyA8IGF6dW1heWFcIDsKK+WkqembsiA8IGFtYWd1bW9cIDsKK+S4jea9lCA8IGZ1a2V0c3VcIDsKK+S4jeijgeWPryA8IGZ1c2Fpa2FcIDsKK+WtpuWGhSA8IGdha3VuYWlcIDsKK+S4reatoyA8IGNodXVzZWlcIDsKK+aWh+mdqSA8IGJ1bmtha3VcIDsKK+adn+W4ryA8IHNva3V0YWlcIDsKK+itpuWCmeWToSA8IGtlaWJpaW5cIDsKK+acn+aXpSA8IGtpaml0c3VcIDsKK+mjn+W+jCA8IHNob2t1Z29cIDsKK+S4jea7hSA8IGZ1bWV0c3VcIDsKK+acneaWuSA8IGFzYWdhdGFcIDsKK+WklemiqCA8IHl1dWthemVcIDsKK+mfs+evgCA8IG9uc2V0c3VcIDsKK+Wkp+mZuCA8IHRhaXJpa3VcIDsKK+iqpOS9nOWLlSA8IGdvc2Fkb3VcIDsKK+iBtOWPliA8IGNob3VzaHVcIDsKK+eLrOecvCA8IGRva3VnYW5cIDsKK+S4i+a5ryA8IHNoaW1veXVcIDsKK+WknOmcsiA8IHlvdHN1eXVcIDsKK+S6uuWjsCA8IGhpdG9nb2VcIDsKK+ePjeWunSA8IGNoaW5wb3VcIDsKK+WmhOiplSA8IG1vdWh5b3VcIDsKK+iBt+WLmSA8IHNob2t1bXVcIDsKK+mjr+WxiyA8IG1lc2hpeWFcIDsKK+adv+WjgSA8IGl0YWthYmVcIDsKK+S6uuWigyA8IGppbmt5b3VcIDsKK+S5vuW+syA8IGtlbnRva3VcIDsKK+S7ruWQjeacrCA8IGthbmFob25cIDsKK+abuOajmiA8IHNob2RhbmFcIDsKK+WklemdhCA8IHl1dW1veWFcIDsKK+adpeWuhSA8IHJhaXRha3VcIDsKK+e9rueJqSA8IG9raW1vbm9cIDsKK+eNhOatuyA8IGdva3VzaGlcIDsKK+acq+aKgCA8IG1hdHN1Z2lcIDsKK+acreaJgCA8IGZ1ZGFzaG9cIDsKK+WklemcpyA8IHl1dWdpcmlcIDsKK+mgkueZvSA8IGhhbnBha3VcIDsKK+S4iua1tyA8IHNoYW5oYWlcIDsKK+aWpOmHjyA8IGtpbnJ5b3VcIDsKK+aWsOmBkyA8IHNoaW5kb3VcIDsKK+aZqeeniyA8IGJhbnNodXVcIDsKK+S4iua1gSA8IGpvdXJ5dXVcIDsKK+S5l+aPmyA8IG5vcmlrYWVcIDsKK+S4iea1gSA8IHNhbnJ5dXVcIDsKK+S4iua0myA8IGpvdXJha3VcIDsKK+acq+aIkCA8IHVyYW5hcmlcIDsKK+eJh+imqiA8IGthdGFveWFcIDsKK+izoOWEnyA8IGJhaXNob3VcIDsKK+e/jOaZqSA8IHlva3ViYW5cIDsKK+S5neaLnSA8IGt5dXVoYWlcIDsKK+S7ruWFjSA8IGthcmltZW5cIDsKK+S4uOadkCA8IG1hcnV6YWlcIDsKK+S7u+S+oCA8IG5pbmt5b3VcIDsKK+iCieS9kyA8IG5pa3V0YWlcIDsKK+aciOaXpSA8IHRzdWtpaGlcIDsKK+aVtemZoyA8IHRla2lqaW5cIDsKK+mgheebriA8IGtvdW1va3VcIDsKK+WkiemdqSA8IGhlbmtha3VcIDsKK+S4gOa1qiA8IGljaGlyb3VcIDsKK+aWmemHkSA8IHJ5b3VraW5cIDsKK+iAgeW8sSA8IHJvdWpha3VcIDsKK+WklemXhyA8IHl1dXlhbWlcIDsKK+aVsOmauyA8IHN1dXNla2lcIDsKK+aWsOi7iiA8IHNoaW5zaGFcIDsKK+S4reaeoiA8IGNodXVzdXVcIDsKK+S6i+WxgCA8IGppa3lva3VcIDsKK+aWh+mOriA8IGJ1bmNoaW5cIDsKK+S7ruWAnyA8IGthc2hha3VcIDsKK+S7o+WFpSA8IGRhaW55dXVcIDsKK+S4gOazoSA8IGhpdG9hd2FcIDsKK+mbqOmiqCA8IGFtZWthemVcIDsKK+ixquW3niA8IGdvdXNodXVcIDsKK+WKqeeUo+aJgCA8IGpvc2Fuam9cIDsKK+mdqeijhSA8IGthd2Fzb3VcIDsKK+S7j+WNsCA8IGZ1dHN1aW5cIDsKK+S4u+aVmSA8IHNodWt5b3VcIDsKK+S4gOaxuiA8IGlra2V0c3VcIDsKK+S6i+WunyA8IGppaml0c3VcIDsKK+S6iOWvnyA8IHlvc2F0c3VcIDsKK+S4gOaxlyA8IGhpdG9hc2VcIDsKK+iruOiosyA8IHNob3dha2VcIDsKK+WnpuetliA8IGthbnNha3VcIDsKK+S7suS7lSA8IG5ha2FzaGlcIDsKK+S7suS7iyA8IGNodXVrYWlcIDsKK+S7suS6uiA8IG5ha291ZG9cIDsKK+S6rOWcsCA8IGt5b3VjaGlcIDsKK+iyt+WPjiA8IGJhaXNodXVcIDsKK+S4gOavqyA8IGljaGlnb3VcIDsKK+aeoOWGhSA8IHdha3VuYWlcIDsKK+S4gOavmyA8IGljaGltb3VcIDsKK+iAs+WeoiA8IG1pbWlha2FcIDsKK+eJp+iNiSA8IGJva3Vzb3VcIDsKK+mkqOWGhSA8IGthbicnbmFpXCA7CivkuK3ml6wgPCBjaHV1anVuXCA7CivnuKbpmpQgPCBqdXVrYWt1XCA7CivlpKfmmYLku6MgPCBvb2ppZGFpXCA7Civmnrjmq57phbggPCBrdWVuc2FuXCA7Civpm5Hpp4EgPCB6YXBwYWt1XCA7CivpoJPni4IgPCB0b25reW91XCA7CivomZrnhKHlg6cgPCBrb211c291XCA7CivlpLHpgI8gPCBzaGl0dG91XCA7CivkuKHmm78gPCByeW91Z2FlXCA7Civpm6rpmqAgPCBzZXRjaGluXCA7CivlrLDoqJjlj7cgPCBlaWtpZ291XCA7CivmnKvluqcgPCBtYXRzdXphXCA7Civpo7TlnYogPCBhbWVuYm91XCA7Civkv53lgaXljLsgPCBob2tlbicnaVwgOwor5Luj5L2cIDwgZGFpc2FrdVwgOwor5Li45pCNIDwgbWFydXpvblwgOwor5p6X5YaFIDwgcmluJyduYWlcIDsKK+acq+W6gyA8IHN1ZWhpcm9cIDsKK+mgreWtl+iqniA8IHRvdWppZ29cIDsKK+S7o+S8kSA8IGRhaWt5dXVcIDsKK+eJp+iIjiA8IGJva3VzaGFcIDsKK+S7j+WFtyA8IGJ1dHN1Z3VcIDsKK+acq+W4rSA8IG1hc3Nla2lcIDsKK+isueiBtCA8IGtpbmNob3VcIDsKK+iruOihjCA8IHNob2d5b3VcIDsKK+acqOWkquWIgCA8IGtpZGFjaGlcIDsKK+eOieW6pyA8IGd5b2t1emFcIDsKK+acrOW3niA8IGhvbnNodXVcIDsKK+eMm+avkiA8IG1vdWRva3VcIDsKK+e3mOm7mSA8IGthbm1va3VcIDsKK+S7i+WFpSA8IGthaW55dXVcIDsKK+abneabuCA8IGJha3VzaG9cIDsKK+ixueWkiSA8IGh5b3VoZW5cIDsKK+aVkemboyA8IGt5dXVuYW5cIDsKK+S4oeaWrSA8IHJ5b3VkYW5cIDsKK+WlpeihjCA8IG9rdXl1a2lcIDsKK+acneW7tyA8IGNob3V0ZWlcIDsKK+aWh+mAmiA8IGJ1bnRzdXVcIDsKK+mjn+WhqSA8IHNob2t1ZW5cIDsKK+eGsembsiA8IG5ldHN1dW5cIDsKK+iTruiPr+W6pyA8IHJlbmdlemFcIDsKK+aVmemWgCA8IGt5b3Vtb25cIDsKK+mbkemfsyA8IHphdHN1b25cIDsKK+eLm+eKrCA8IGtvbWFpbnVcIDsKK+ePjeWVjyA8IGNoaW5tb25cIDsKK+aEm+abuOWutiA8IGFpc2hva2FcIDsKK+mbgemmliA8IGdhbmt1YmlcIDsKK+aapuazlSA8IHJla2lob3VcIDsKK+Wkqei7uCA8IHRlbmppa3VcIDsKK+iqnumHiCA8IGdvc2hha3VcIDsKK+S6uuWJjSA8IGhpdG9tYWVcIDsKK+mmrOWIgOiynSA8IG1hdGVnYWlcIDsKK+ePvuS7uyA8IGdlbicnbmluXCA7CivlpJzpgZMgPCB5b21pY2hpXCA7Civoq5boqr8gPCByb25jaG91XCA7CivkuZnlt6EgPCBvdHN1anVuXCA7CivlpI/ph44gPCBuYXRzdW5vXCA7CivlpJbpg60gPCBnYWlrYWt1XCA7Civnj43lk4EgPCBjaGlucGluXCA7CivmnJ3luIIgPCBhc2FpY2hpXCA7CivlpYnoqq0gPCBob3Vkb2t1XCA7CivmmLznpLwgPCBjaHV1cmVpXCA7CivmnKvlsL4gPCBtYXRzdWJpXCA7CivkuIvmnJ8gPCBzaGltb2tpXCA7CivmlbDph48gPCBzdXVyeW91XCA7Civnh5fphZIgPCBrYW56YWtlXCA7Civku5XkuosgPCBzaGlnb3RvXCA7Civoq5boqZUgPCByb25weW91XCA7CivkuIrmnI0gPCB1d2FmdWt1XCA7CivmnKjlsaUgPCBwb2trdXJpXCA7CivmnKvlr7ogPCBtYXRzdWppXCA7Civoq5boqLwgPCByb25zaG91XCA7Civniannva4gPCBtb25vb2tpXCA7CivmnI3lvpMgPCBmdWt1anV1XCA7CivkuInmnIggPCBtaXRzdWtpXCA7CivotqPmhI/mm7ggPCBzaHVpc2hvXCA7CivmnI3lvbkgPCBmdWt1ZWtpXCA7CivkuKHmkI0gPCByeW91em9uXCA7CivniZvohIIgPCBneXV1c2hpXCA7CivniafnvoogPCBib2t1eW91XCA7CivlpInph48gPCBoZW5yeW91XCA7CivkuIfmnIkgPCBiYW4nJ3l1dVwgOwor5pys5a6FIDwgaG9udGFrdVwgOwor5puy5oqAIDwga3lva3VnaVwgOwor6Z2S6JuZIDwgYW9nYWVydVwgOwor5pyJ5b6zIDwgeXV1dG9rdVwgOwor54m557SaIDwgdG9ra3l1dVwgOwor54yu5pyoIDwga2VuYm9rdVwgOwor6aOb5ZywIDwgdG9iaWNoaVwgOwor54yr5p2/IDwgbmVrb2l0YVwgOwor5pel6IuxIDwgbmljaGllaVwgOwor6KuL6KyBIDwgc2VpZXRzdVwgOwor5piT57WMIDwgZWtpa3lvdVwgOwor6LKd5YmyIDwga2Fpd2FyaVwgOwor5LiN5pelIDwgZnVqaXRzdVwgOwor5pqW5rWBIDwgZGFucnl1dVwgOwor6Z2S6JmrIDwgYW9tdXNoaVwgOwor5LiJ5pilIDwgc2Fuc2h1blwgOwor5LiA5pytIDwgaXNzYXRzdVwgOwor6ICQ5ZynIDwgdGFpYXRzdVwgOwor57ir6YedIDwgbnVpYmFyaVwgOwor6YGL5pCs6LK7IDwgdW5wYW5oaVwgOwor6aCC54K5IDwgY2hvdXRlblwgOwor5LiA5puyIDwgaWtreW9rdVwgOwor5Li55b+1IDwgdGFuJyduZW5cIDsKK+mfs+eJqSA8IGlubW90c3VcIDsKK+aXpeiIniA8IG5pY2hpYnVcIDsKK+aXp+iHmCA8IGt5dXVyb3VcIDsKK+eNo+W/gyA8IGp1dXNoaW5cIDsKK+iri+iolyA8IHNlaXRha3VcIDsKK+iAgeWigyA8IHJvdWt5b3VcIDsKK+aUmOWkt+irliA8IGpvdWlyb25cIDsKK+aHkOeWkea0viA8IGthaWdpaGFcIDsKK+S7iuS4gCA8IGltYWljaGlcIDsKK+S4h+aWmyA8IGJhbmtva3VcIDsKK+eEoeeFmeeCrSA8IG11ZW50YW5cIDsKK+S4ieaVmSA8IHNhbmt5b3VcIDsKK+S4gOaZqSA8IGhpdG9iYW5cIDsKK+WkqeixoSA8IHRlbnNob3VcIDsKK+aZqeeGnyA8IGJhbmp1a3VcIDsKK+Wmpee1kCA8IGRha2V0c3VcIDsKK+aYpeeniyA8IGhhcnVha2lcIDsKK+eJm+e8tiA8IGd5dXVrYW5cIDsKK+WuiemdmeaZgiA8IGFuc2VpamlcIDsKK+acgOW8tyA8IHNhaWt5b3VcIDsKK+WkiemAnyA8IGhlbnNva3VcIDsKK+WkiemAmiA8IGhlbnRzdXVcIDsKK+aal+auuiA8IGFuc2F0c3VcIDsKK+aVtei7jSA8IHRla2lndW5cIDsKK+eJueetiSA8IHRva3V0b3VcIDsKK+eJh+iFlSA8IGthdGF1ZGVcIDsKK+S4gOaXrCA8IGljaGlqdW5cIDsKK+Wls+eUn+W+kiA8IGpvc2VpdG9cIDsKK+S5nuWpvyA8IGtvaW11a29cIDsKK+iZjueHleaLsyA8IGtvZW5rZW5cIDsKK+mguOakjiA8IGtlaXRzdWlcIDsKK+iyrOS7uyA8IHNla2luaW5cIDsKK+mhlOaWmSA8IGdhbnJ5b3VcIDsKK+ato+W4uOS9jSA8IHNlaWpvdWlcIDsKK+acq+WlsyA8IG1hdHN1am9cIDsKK+acseWiqCA8IHNodWJva3VcIDsKK+S4geaVsCA8IGNob3VzdXVcIDsKK+aXl+iJsiA8IGhhdGFpcm9cIDsKK+ijnOWKqemHkSA8IGhvam9raW5cIDsKK+Wls+iJsiA8IGpvc2hva3VcIDsKK+aXp+iBniA8IGt5dXVidW5cIDsKK+mYv+WphuaTpiA8IGFiYXp1cmVcIDsKK+eJh+iCuiA8IGthdGFoYWlcIDsKK+acseWhlyA8IHNodW51cmlcIDsKK+mgmOawtCA8IHJ5b3VzdWlcIDsKK+mdouiItSA8IG9tb2thamlcIDsKK+S4uOW4ryA8IG1hcnVvYmlcIDsKK+eQteeQtuihjCA8IGJpd2Frb3VcIDsKK+e3j+mrmCA8IHNvdWRha2FcIDsKK+WjsOmHjyA8IHNlaXJ5b3VcIDsKK+WKqeeUo+WppiA8IGpvc2FucHVcIDsKK+acp+WknCA8IG9ib3JveW9cIDsKK+WjgemdoiA8IGhla2ltZW5cIDsKK+e/sOWiqCA8IGthbmJva3VcIDsKK+eOhOWmmSA8IGdlbm15b3VcIDsKK+S/rue+heWgtCA8IHNodXJhYmFcIDsKK+e+uOW8sSA8IHJ1aWpha3VcIDsKK+S5neWkpyA8IGt5dXVkYWlcIDsKK+S4ieaMryA8IHNhbnNoaW5cIDsKK+S4jeaKnCA8IGZ1YmF0c3VcIDsKK+Wkp+ipsCA8IG9vZHp1bWVcIDsKK+ixquWVhiA8IGdvdXNob3VcIDsKK+aJi+S4gOadryA8IHRlaXBwYWlcIDsKK+S4reW5tCA8IGNodXVuZW5cIDsKK+S4gOaPoSA8IGljaGlha3VcIDsKK+absuW6hyA8IGt5b2t1aGlcIDsKK+iqrOirrSA8IHNldHN1eXVcIDsKK+eEoee3muapnyA8IG11c2Vua2lcIDsKK+S4reW4vSA8IGNodXVib3VcIDsKK+aYpeecoCA8IHNodW5taW5cIDsKK+mgrOahgSA8IGhvb2dldGFcIDsKK+S4h+eBr+S8miA8IG1hbmRvdWVcIDsKK+eJp+erpSA8IGJva3Vkb3VcIDsKK+adseS6rCA8IHRvdWt5b3VcIDsKK+acrOWbvSA8IGhvbmdva3VcIDsKK+iqrOipsSA8IHNldHN1d2FcIDsKK+S6jOWIlyA8IG5pcmV0c3VcIDsKK+S4gOaLrCA8IGlra2F0c3VcIDsKK+mdnuiBtyA8IGhpc2hva3VcIDsKK+aUuemLsyA8IGthaWNodXVcIDsKK+eMm+aSgyA8IG1vdWdla2lcIDsKK+aVj+mAnyA8IGJpbnNva3VcIDsKK+mgrOadliA8IGhvb2R6dWVcIDsKK+aWsOiRlyA8IHNoaW5jaG9cIDsKK+awtOS9jeioiCA8IHN1aWlrZWlcIDsKK+e+nuaBpSA8IHNodXVjaGlcIDsKK+S5neWcsCA8IGt5dXVjaGlcIDsKK+aYjueiuiA8IG1laWtha3VcIDsKK+e3j+mhjSA8IHNvdWdha3VcIDsKK+S6jOWFqyA8IG5paGFjaGlcIDsKK+a8ouaWueWMuyA8IGthbnBvdWlcIDsKK+aZr+azgSA8IGtlaWt5b3VcIDsKK+aXpee1piA8IG5pa2t5dXVcIDsKK+e+veebruadvyA8IGhhbWVpdGFcIDsKK+WFt+S9k+ahiCA8IGd1dGFpYW5cIDsKK+mbhumHkSA8IHNodXVraW5cIDsKK+mbqOi2syA8IGFtZWFzaGlcIDsKK+aapuaVsCA8IHJla2lzdXVcIDsKK+aWsOiMtiA8IHNoaW5jaGFcIDsKK+miqOWcpyA8IGZ1dWF0c3VcIDsKK+e3j+mdqSA8IHNvdWdhd2FcIDsKK+S4reWwiiA8IGNodXV6b25cIDsKK+aYjueerSA8IG1laXJ5b3VcIDsKK+e4t+iqrCA8IHJ1c2V0c3VcIDsKK+mbhumFjSA8IHNodXVoYWlcIDsKK+aciOWkriA8IGdldHN1b3VcIDsKK+S4reWuriA8IGNodXVndXVcIDsKK+e2v+mjtCA8IHdhdGFhbWVcIDsKK+aciOWknCA8IHRzdWtpeW9cIDsKK+aXpeacrOWMliA8IG5paG9ua2FcIDsKK+S4ieW+syA8IHNhbnRva3VcIDsKK+mZsOmssSA8IGluJyd1dHN1XCA7Civnt5HpmbAgPCByeW9rdWluXCA7CivmlbXoppYgPCB0ZWtpc2hpXCA7CivmlL7pgLggPCBob3VpdHN1XCA7CivnoJTno6jmqZ8gPCBrZW5tYWtpXCA7CivkuIrlvbkgPCB1d2F5YWt1XCA7CivlopfpoY0gPCB6b3VnYWt1XCA7CivkuIDmga8gPCBoaXRvaWtpXCA7CivkubPliaQgPCBueXV1emFpXCA7CivmmI7nmb0gPCBtZWloYWt1XCA7CivlpKfpm5HmioogPCBvb3phcHBhXCA7CivkuIvluqcgPCBzaGltb3phXCA7Civlj6TkupXmiLggPCBmdXJ1aWRvXCA7CivkuIDlv7UgPCBpY2hpbmVuXCA7CivkuIflvJUgPCBtYW5iaWtpXCA7Civog4PmvbDnmI0gPCBpa2FpeW91XCA7CivnibnnlKMgPCB0b2t1c2FuXCA7CivmnKjlj6MgPCBraWd1Y2hpXCA7CivkuIDlvrkgPCBpdHRldHN1XCA7CivpoZTlvbkgPCBrYW95YWt1XCA7Civnv7vliLsgPCBob25rb2t1XCA7CivkuInlubQgPCBzYW4nJ25lblwgOwor5pel56uLIDwgaGl0YWNoaVwgOwor5pWR6LKnIDwga3l1dWhpblwgOwor5pat6IW4IDwgZGFuY2hvdVwgOwor5p2P5LuBIDwga3lvdW5pblwgOwor5LiH5bm0IDwgbWFuJyduZW5cIDsKK+eJqeeahCA8IGJ1dHRla2lcIDsKK+mZuOmiqCA8IHJpa3VmdXVcIDsKK+Wkmue+qeaApyA8IHRhZ2lzZWlcIDsKK+S4gOW8jyA8IGlzc2hpa2lcIDsKK+eKtuazgSA8IGpvdWt5b3VcIDsKK+eUmOmcsueFriA8IGthbnJvbmlcIDsKK+aWsOiBniA8IHNoaW5idW5cIDsKK+acrOWJhyA8IGhvbnNva3VcIDsKK+S4reWkliA8IGNodXVnYWlcIDsKK+S5meWls+W6pyA8IG90b21lemFcIDsKK+WltOetiSA8IHlhdHN1cmFcIDsKK+eLrOaWrSA8IGRva3VkYW5cIDsKK+ipsOiyrCA8IGtpc3Nla2lcIDsKK+iAkOS5hSA8IHRhaWt5dXVcIDsKK+mbo+iqrSA8IG5hbmRva3VcIDsKK+mhp+WuoiA8IGtva3lha3VcIDsKK+eLrOaWhyA8IGRva3VidW5cIDsKK+S/neWuiOa0viA8IGhvc2h1aGFcIDsKK+aXl+ervyA8IGhhdGF6YW9cIDsKK+mciuiWrCA8IHJlaXlha3VcIDsKK+aVmeiokyA8IGt5b3VrdW5cIDsKK+S4jeWxiCA8IGZ1a3V0c3VcIDsKK+acqOWIgCA8IGJva3V0b3VcIDsKK+aWsOe+hSA8IHNoaXJhZ2lcIDsKK+Wil+mVtyA8IHpvdWNob3VcIDsKK+aageaYnyA8IGd5b3VzZWlcIDsKK+mZuumboyA8IGtlbicnbmFuXCA7Civlj5nkuovoqakgPCBqb2ppc2hpXCA7CivkuIrlsaUgPCB1d2FiYWtpXCA7CivmnKzlhYMgPCBob25tb3RvXCA7CivlpKfmjoPpmaQgPCBvb3NvdWppXCA7Civng4/pvo3ojLYgPCDFq3JvbmNoYVwgOwor5Lit5aCFIDwgY2h1dWtlblwgOwor5aSP6JqVIDwgbmF0c3Vnb1wgOwor5aWz546L6J+7IDwgam9vdWFyaVwgOwor5Y2K5q+N6Z+zIDwgaGFuYm9pblwgOwor5LiJ5bC6IDwgc2FuamFrdVwgOwor5aSp6I2JIDwgdGVuZ3VzYVwgOwor5pyI5ZWGIDwgZ2Vzc2hvdVwgOwor54Sh5pS/5bqcIDwgbXVzZWlmdVwgOwor5LiL5a6/IDwgZ2VzaHVrdVwgOwor6K2w5rG6IDwgZ2lrZXRzdVwgOwor5Lmx5L2cIDwgcmFuc2FrdVwgOwor5LiL5a62IDwgc2hpdGF5YVwgOwor54mb55eYIDwgZ3l1dXRvdVwgOwor54mp55CGIDwgYnV0c3VyaVwgOwor5pu05ZywIDwgc2FyYWNoaVwgOwor54mb55arIDwgZ3l1dWVraVwgOwor576p5ZKM5ZujIDwgZ2l3YWRhblwgOwor5pyd5YeqIDwgYXNhbmFnaVwgOwor5LiA5bC6IDwgaXNzaGFrdVwgOwor54us5o6iIDwgZG9rdXRhblwgOwor57eR6YeOIDwgcnlva3V5YVwgOwor5LiD5a6dIDwgc2hpcHBvdVwgOwor5pen55ukIDwga3l1dWJhblwgOwor6Kmz6KejIDwgc2hvdWthaVwgOwor5aWR57SEIDwga2VpeWFrdVwgOwor6Zuj6KGMIDwgbmFuZ3lvdVwgOwor5pyI5Y+OIDwgZ2Vzc2h1dVwgOwor6ZuR6KmxIDwgemF0c3V3YVwgOwor5pen55uGIDwga3l1dWJvblwgOwor5LiA5a6/IDwgaXNzaHVrdVwgOwor54Sh6aqoIDwgYnVrb3RzdVwgOwor5aW95LqL5a62IDwga291enVrYVwgOwor5aOy6KGMIDwgdXJleXVraVwgOwor6aCB5pWwIDwgcMSTamlzdXVcIDsKK+aWree2miA8IGRhbnpva3VcIDsKK+mfs+absiA8IG9uZ3lva3VcIDsKK+S4gOWtmCA8IGljaGl6b25cIDsKK+WkleiPhSA8IHl1dXN1Z2VcIDsKK+aWveetliA8IHNoaXNha3VcIDsKK+aXpeeZvSA8IG5pcHBha3VcIDsKK+Wkp+iFuCA8IGRhaWNob3VcIDsKK+ihjOeCuuiAhSA8IGtvdWlzaGFcIDsKK+eJoueNhCA8IHJvdWdva3VcIDsKK+eKrOaphyA8IGludXpvcmlcIDsKK+S4juWlqiA8IHlvZGF0c3VcIDsKK+acrOS6uiA8IGhvbicnbmluXCA7Civnhp/oq4cgPCBqdWt1ZGFuXCA7CivmqZ/plqLluqsgPCBraWthbmtvXCA7CivmqZ/plqLluqcgPCBraWthbnphXCA7CivniaHnjKsgPCBvc3VuZWtvXCA7CivmmanmmKUgPCBiYW5zaHVuXCA7Civni6zmiL8gPCBkb2t1Ym91XCA7CivmlrDnsbMgPCBzaGlubWFpXCA7CivmlrnnrZYgPCBob3VzYWt1XCA7Civniqzmp5kgPCBpbnVtYWtpXCA7CivmnKjku48gPCBraWJ1dHN1XCA7Civml6nnlaogPCBoYXlhYmFuXCA7CivmnKzkuLggPCBob25tYXJ1XCA7CivmmanmlrkgPCBiYW5nYXRhXCA7Civnua3ntKwgPCBrZW5jaHV1XCA7CivpnZLnpaggPCBzZWloeW91XCA7CivnjJvlsIYgPCBtb3VzaG91XCA7CivlkIzmhI/oposgPCBkb3Vpa2VuXCA7CivkuIjlpKsgPCBtYXN1cmFvXCA7CivmnIjliKkgPCBnZXRzdXJpXCA7CivmlLnoqLMgPCBrYWl5YWt1XCA7Civlopfph48gPCB6b3VyeW91XCA7Civpm7bokL0gPCByZWlyYWt1XCA7CivkuLjljYEgPCBtYXJ1anV1XCA7Civpm4boqIggPCBzaHV1a2VpXCA7CivoqbHooZMgPCB3YWp1dHN1XCA7CivniZ3niqwgPCBtZXN1aW51XCA7Civnhp/opqcgPCBqdWt1cmFuXCA7Civnhp/oppYgPCBqdWt1c2hpXCA7CivpnaLnm64gPCBtZW5tb2t1XCA7CivnhY7pjYsgPCBpcmluYWJlXCA7CivnjoTkurogPCBrdXJvdXRvXCA7Civmlq3nrrEgPCBkYW5iYWtvXCA7CivorbDkuovloIIgPCBnaWppZG91XCA7CivloavpmpkgPCB0ZW5nZWtpXCA7CivkuIrloZcgPCB1d2FudXJpXCA7CivkuIDlpoIgPCBpY2hpbnlvXCA7CivkuI3ln5IgPCBmdXJhY2hpXCA7Civnt4rov6sgPCBraW5wYWt1XCA7CivkuIflooMgPCBiYW5reW91XCA7Civoq5bnrZYgPCByb25zYWt1XCA7CivoqLPovIkgPCB5YWt1c2FpXCA7CivmmI7mvoQgPCBtZWljaG91XCA7CivkuIDlpKcgPCBpY2hpZGFpXCA7CivoqZXoq5YgPCBoeW91cm9uXCA7Civoqr/nt7QgPCBjaG91cmVuXCA7CivkuK3ljp8gPCBjaHV1Z2VuXCA7CivoqqTohLEgPCBnb2RhdHN1XCA7Civoqq3ogIUgPCBkb2t1c2hhXCA7Civlo7LolqwgPCBiYWl5YWt1XCA7CivosYbkubMgPCB0b3VueXV1XCA7CivkuIDlo7AgPCBoaXRva29lXCA7CivlpKnns7jnk5wgPCBoZWNoaW1hXCA7Civkv53lronmnpcgPCBob2FucmluXCA7CivohZDokYnlnJ8gPCBmdXlvdWRvXCA7CivkuIvlnLAgPCBzaGl0YWppXCA7CivlopfpgLIgPCB6b3VzaGluXCA7CivpnaLnlpQgPCBtZW5jaG91XCA7CivpoILmiLQgPCBjaG91ZGFpXCA7Civoq5bnqbYgPCByb25reXV1XCA7CivmlrDnqI4gPCBzaGluemVpXCA7CivmtbfosZrluqcgPCBpcnVrYXphXCA7CivkuIvlm7MgPCBzaGl0YXp1XCA7Civoh6rooZvpmoogPCBqaWVpdGFpXCA7CivmlLnooYwgPCBrYWlneW91XCA7Civoqp7ohIggPCBnb215YWt1XCA7CivnuYrntq3ntKAgPCBzZW4nJ2lzb1wgOwor5LiJ5Zu9IDwgc2FuZ29rdVwgOwor5Lih5ZCNIDwgcnlvdW1laVwgOwor6ZqP6LqrIDwgenVpc2hpblwgOwor54Sh6ZuRIDwgbXV6YXRzdVwgOwor56e76KGM5oCnIDwgaWtvdXNlaVwgOwor5Lit5YmNIDwgY2h1dXplblwgOwor6Kaq6bieIDwgc2hpbnJhblwgOwor6Zu76ISzIDwgZGVuJydub3VcIDsKK+a5r+a5r+WphiA8IHl1dGFucG9cIDsKK+S4reWIhiA8IGNodXVidW5cIDsKK+e1tumggiA8IHpldGNob3VcIDsKK+mgkeW8tyA8IGdhbmt5b3VcIDsKK+e5i+e4myA8IGtlaWJha3VcIDsKK+WkquezuCA8IGZ1dG9pdG9cIDsKK+S6pOWwvuacnyA8IGtvdWJpa2lcIDsKK+Wni+alrSA8IHNoaWd5b3VcIDsKK+S4gOWboyA8IGljaGlkYW5cIDsKK+aXqeeGnyA8IHNvdWp1a3VcIDsKK+iqh+iJsiA8IGtvc2hva3VcIDsKK+iol+mAgSA8IHRha3Vzb3VcIDsKK+mbjOiYgiA8IG1lc2hpYmVcIDsKK+mghuW/nCA8IGp1bicnbm91XCA7CivpmbjpgIEgPCByaWt1c291XCA7CivmnIjkuosgPCBnZXRzdWppXCA7Civopqrps6UgPCBveWFkb3JpXCA7CivnibnmrrUgPCB0b2t1ZGFuXCA7CivkuKHliY0gPCByeW91bWFlXCA7CivlpKfnspIgPCBvb3RzdWJ1XCA7CivoqJPov6ogPCBrdW50ZWtpXCA7Civpmbbno4HlmaggPCB0b3VqaWtpXCA7CivnibnmroogPCB0b2t1c2h1XCA7CivlooPpgYcgPCBreW91Z3V1XCA7CivoqabolqwgPCBzaGl5YWt1XCA7Civph43ppqzloLQgPCBvbW9iYWJhXCA7CivoqZDooZMgPCBzYWp1dHN1XCA7CivkuKHliIYgPCByeW91YnVuXCA7CivmrbPmmYLoqJggPCBzYWlqaWtpXCA7CivpmL/lpJrnpo8gPCBvdGFmdWt1XCA7CivkuI3lkIkgPCBmdWtpdHN1XCA7CivkuIrlkYogPCBqb3Vrb2t1XCA7CivlvqHnr4Dku4sgPCBvc2Vra2FpXCA7Civpmbjou40gPCByaWt1Z3VuXCA7Civkupzpurvku4HmsrkgPCBhbWFuaXl1XCA7CivmlrDnm6QgPCBzaGluYmFuXCA7Civpn7vlvosgPCBpbnJpdHN1XCA7CivmmrTlnKcgPCBib3VhdHN1XCA7CivoqLHoq74gPCBreW9kYWt1XCA7CivniIbnoJUgPCBiYWt1c2FpXCA7CivkuKHlg48gPCByeW91em91XCA7Civni4LmhYsgPCBreW91dGFpXCA7Civlqb/lhaUgPCBtdWtvaXJpXCA7CivoqLPoqakgPCB5YWt1c2hpXCA7Civpm6LohLEgPCByaWRhdHN1XCA7CivmmIfmrrUgPCBzaG91ZGFuXCA7CivniafmsJEgPCBib2t1bWluXCA7CivlpKnnqpMgPCB0ZW5tYWRvXCA7CivkuIDlkb0gPCBpY2hpbWVpXCA7CivmlZnogrIgPCBreW91aWt1XCA7CivkuIDlkbMgPCBoaXRvYWppXCA7CivlpLHnpoEgPCBzaGlra2luXCA7Civnt4/oqZUgPCBzb3VoeW91XCA7Civlppnms5UgPCBteW91aG91XCA7CivopqrpqqggPCBveWFib25lXCA7Civmm7jkuK0gPCBzaG9jaHV1XCA7CivkuIfljZogPCBiYW5wYWt1XCA7CivnlarlsI/lsYsgPCBiYW5nb3lhXCA7Civpn7PlvosgPCBvbnJpdHN1XCA7CivkuIvliqMgPCBnZXJldHN1XCA7CivmhJvniqzlrrYgPCBhaWtlbmthXCA7CivkuInliqkgPCBzYW5zdWtlXCA7CivkuKHkvr8gPCByeW91YmVuXCA7CivogL3nvo7mtL4gPCB0YW5iaWhhXCA7CivmmKXmnKwgPCBzaHVucG9uXCA7CivkuIPljYEgPCBuYW5hanV1XCA7Civopr/pnaIgPCB0ZWtpbWVuXCA7CivkuIflipsgPCBtYW5yaWtpXCA7CivkuIHljYogPCBjaG91aGFuXCA7CivlpKfnpo8gPCBkYWlmdWt1XCA7CivlpKnnpZAgPCB0ZW4nJ3l1dVwgOwor5pio5pmpIDwgc2FrdWJhblwgOwor5L+d6IKy5omAIDwgaG9pa3Vqb1wgOwor5pmp5bm0IDwgYmFuJyduZW5cIDsKK+eFp+impyA8IHNob3VyYW5cIDsKK+e3iuimgSA8IGtpbicneW91XCA7Civlpqjmpa0gPCBib3VneW91XCA7CivkuKHkurogPCByeW91bmluXCA7CivoprPpn7MgPCBrYW4nJ25vblwgOwor5pmC5oqYIDwgdG9raW9yaVwgOwor6YGK6Zui5Z+6IDwgeXV1cmlraVwgOwor5pKw6YyyIDwgc2Vucm9rdVwgOwor5LqS5Yqp5LyaIDwgZ29qb2thaVwgOwor5pS56ImvIDwga2FpcnlvdVwgOwor5pa954mpIDwgc2Vtb3RzdVwgOwor5aWu5r+AIDwgZnVuZ2VraVwgOwor5Lih5LiJIDwgcnlvdXNhblwgOwor6Zu7566XIDwgZGVuc29yb1wgOwor57WQ6ZyyIDwga2V0c3Vyb1wgOwor5pWZ57e0IDwga3lvdXJlblwgOwor5LiK5YG0IDwgdXdhZ2F3YVwgOwor5aem5oKqIDwga2FuJydha3VcIDsKK+ijnOWKqee3miA8IGhvam9zZW5cIDsKK+inkumMkCA8IGtha3VzdWlcIDsKK+e1kOmbhiA8IGtlc3NodXVcIDsKK+S4i+WApCA8IHNoaXRhbmVcIDsKK+Wls+a5ryA8IG9uJyduYXl1XCA7CivkuIDlhYMgPCBpY2hpZ2VuXCA7CivnvoXliJcgPCByYXJldHN1XCA7Civmmpblm70gPCBkYW5rb2t1XCA7Civkuovli5nmiYAgPCBqaW11c2hvXCA7CivpmbPorJ0gPCBjaGluc2hhXCA7CivkuIDlhIQgPCBpY2hpb2t1XCA7CivoqJPoqq0gPCBrdW5kb2t1XCA7CivniJvnhp8gPCByYW5qdWt1XCA7CivmmI7mnJ0gPCBtaW5jaG91XCA7CivoqJfoqIAgPCB0YWt1Z2VuXCA7CivpoJjln58gPCByeW91aWtpXCA7CivoqIDosqwgPCBnZW5zZWtpXCA7Civkv53orbfph5EgPCBob2dva2luXCA7CivlpKrnmb0gPCB0YWloYWt1XCA7Civnibnml6ggPCB0b2t1c2hpXCA7CivlpKnnmocgPCB0ZW4nJ25vdVwgOwor5pWw56eSIDwgc3V1YnlvdVwgOwor5pWj562WIDwgc2Fuc2FrdVwgOwor5LiH5L2cIDwgbWFuc2FrdVwgOwor5piO5pmwIDwgbWVpc2VraVwgOwor5pmp5a2mIDwgYmFuZ2FrdVwgOwor5piO5pmpIDwgbXlvdWJhblwgOwor5LiA5YCNIDwgaWNoaWJhaVwgOwor57WC6Zu7IDwgc2h1dWRlblwgOwor5pel5qynIDwgbmljaGlvdVwgOwor5piO5pifIDwgbXlvdWpvdVwgOwor5LiJ5Lq6IDwgc2FuJyduaW5cIDsKK+e4puesmyA8IHRhdGVidWVcIDsKK+mbhue+pCA8IHNodXVndW5cIDsKK+S4h+S6uiA8IG1hbicnbmluXCA7CivlpKfnl4UgPCB0YWlieW91XCA7Civoj5PlrZDlmaggPCBrYXNoaWtpXCA7CivpoK3lj5YgPCB0b3Vkb3JpXCA7Civpm6jnrKAgPCBhbWFnYXNhXCA7CivnuKbnqbQgPCB0YXRlYW5hXCA7CivkuIDku7sgPCBpY2hpbmluXCA7CivlpKfnlLcgPCBvb290b2tvXCA7CivnvbDliYcgPCBiYXNzb2t1XCA7CivpnIfnm6ogPCBzaGludG91XCA7CivpnIrnmoQgPCByZWl0ZWtpXCA7CivmhJvlprvlrrYgPCBhaXNhaWthXCA7CivlpJbnm7ggPCBnYWlzaG91XCA7CivlpJrnmbogPCB0YWhhdHN1XCA7Civpm6jnqbogPCBhbWF6b3JhXCA7CivnhLboq74gPCB6ZW5kYWt1XCA7Civoqa7ntKIgPCBzZW5zYWt1XCA7CivmlaPnpaggPCBzYW5weW91XCA7CivppIrniLbmr40gPCB5b3VmdWJvXCA7Civnt7Tnv5IgPCByZW5zaHV1XCA7CivoqZXogIUgPCBoeW91c2hhXCA7Civnhp/nt7QgPCBqdWt1cmVuXCA7CivlpJbnmoQgPCBnYWl0ZWtpXCA7Civpmpzms6Xng4/os4ogPCBhb3JpaWthXCA7Civni6zlloQgPCBkb2t1emVuXCA7CivlpI/nnYAgPCBuYXRzdWdpXCA7CivlpKnnkIMgPCB0ZW5reXV1XCA7Civotbfpm7vmqZ8gPCBraWRlbmtpXCA7CivlprvmiLggPCB0c3VtYWRvXCA7CivkuozmrbvlvowgPCBuaXNoaWdvXCA7CivmlpHnjKsgPCBoYW5teW91XCA7CivmmYvlsbEgPCBzaGluemFuXCA7Civml4vmr5sgPCB0c3VtdWppXCA7CivloLHphawgPCBob3VzaHV1XCA7CivokYnniaHkuLkgPCBoYWJvdGFuXCA7Civlt7LnhLblvaIgPCBpemVua2VpXCA7Civng4jpnIcgPCByZXNzaGluXCA7CivmmKXmg4UgPCBzaHVuam91XCA7Civnt6znvoogPCBtZW4nJ3lvdVwgOwor57if56S8IDwgam9rdXJlaVwgOwor5aSn542EIDwgdGFpZ29rdVwgOwor54uC5aWUIDwga3lvdWhvblwgOwor5aKo6ImyIDwgc3VtaWlyb1wgOwor57eP6IqxIDwgc291YmFuYVwgOwor5pWm552mIDwgdG9uYm9rdVwgOwor5aSn6KaP5qihIDwgZGFpa2lib1wgOwor54us5ZCfIDwgZG9rdWdpblwgOwor5YW35L2T5YyWIDwgZ3V0YWlrYVwgOwor6KaG6Z2iIDwgZnVrdW1lblwgOwor57mU54mpIDwgb3JpbW9ub1wgOwor5L+d5a6J5a6YIDwgaG9hbmthblwgOwor5pen5p2lIDwga3l1dXJhaVwgOwor5pen5p2RIDwga3l1dXNvblwgOwor6YeO542j5rS+IDwgeWFqdXVoYVwgOwor54us5Y2gIDwgZG9rdXNlblwgOwor6Zu75L2N5beuIDwgZGVuJydpc2FcIDsKK+aXpeacnSA8IG5pdGNob3VcIDsKK+WmguaciCA8IG5pZ2F0c3VcIDsKK+WkseeCuSA8IHNoaXR0ZW5cIDsKK+mbkeepgCA8IHpha2tva3VcIDsKK+iln+mrqiA8IGVyaWdhbWlcIDsKK+imqumHjCA8IG95YXphdG9cIDsKK+eFp+iHqCA8IHNob3VyaW5cIDsKK+aXqeaYpSA8IHNvdXNodW5cIDsKK+aYqOW5tCA8IHNha3VuZW5cIDsKK+WkqeeEtiA8IHRlbicnbmVuXCA7CivlpaXmp5ggPCBva3VzYW1hXCA7Civml6XmmYIgPCBuaWNoaWppXCA7Civnt5HogqUgPCByeW9rdWhpXCA7CivpnZ7lr77lv5wgPCBoaXRhaW91XCA7Civok5bpurvlrZAgPCBoaW1hc2hpXCA7Civoo7jkvZPnlLsgPCByYXRhaWdhXCA7CivpoJjlhoUgPCByeW91bmFpXCA7Civkuovli5nlrpggPCBqaW11a2FuXCA7Civpm7vnkIMgPCBkZW5reXV1XCA7CivniYfmlrkgPCBrYXRhaG91XCA7CivoqLPogIUgPCB5YWt1c2hhXCA7CivnibnlvoUgPCB0b2t1dGFpXCA7CivotbfoqLTnirYgPCBraXNvam91XCA7CivopZ/pppYgPCBlcmlrdWJpXCA7CivlparmoLwgPCBkYWtrYWt1XCA7Civph47mmq7nlKggPCB5YWJveW91XCA7CivmlbXnirYgPCB0ZWtpam91XCA7CivmkoPpgIAgPCBnZWtpdGFpXCA7CivnhKHnga/ngasgPCBtdXRvdWthXCA7Civpm6PnmZYgPCBuYW5rdXNlXCA7CivmmKXltZAgPCBzaHVucmFuXCA7CivopbLpm7cgPCBzaHV1cmFpXCA7CivlppnmiYAgPCBteW91c2hvXCA7CivmmI7lvrMgPCBtZWl0b2t1XCA7Civpm6Pnl4cgPCBuYW5zaG91XCA7Civpm6Pnl4UgPCBuYW5ieW91XCA7CivnhKHooYAgPCBtdWtldHN1XCA7CivnhKHoqJjlkI0gPCBtdWtpbWVpXCA7CivmmJTlubQgPCBzZWtpbmVuXCA7CivngpLpo68gPCBjaGFhaGFuXCA7CivoqpjniIYgPCB5dXViYWt1XCA7CivlpJbngrogPCBnYWl0YW1lXCA7CivpnIfngb0gPCBzaGluc2FpXCA7CivmmKXlr5IgPCBzaHVua2FuXCA7CivniIbmrbsgPCBiYWt1c2hpXCA7Civpg73orbDpgbggPCB0b2dpc2VuXCA7CivntrLohpwgPCBtb3VtYWt1XCA7Civnhp/nn6UgPCBqdWt1Y2hpXCA7CivmmI7lubQgPCBteW91bmVuXCA7CivlpKnmuJsgPCB0ZW5iaWtpXCA7Civkv53ogrLlnJIgPCBob2lrdWVuXCA7Civlp4nlqb8gPCBhbmVtdWtvXCA7CivntYLou4ogPCBzaHV1c2hhXCA7Civnsr7puqYgPCBzZWliYWt1XCA7Civnhp/nnaEgPCBqdWt1c3VpXCA7CivnuKvniakgPCBudWltb25vXCA7Civnt4rnuJsgPCBraW5iYWt1XCA7Civnhp/nnKAgPCBqdWt1bWluXCA7Civkv53ogrLlmaggPCBob2lrdWtpXCA7Civloqjns7ggPCBzdW1paXRvXCA7CivpmbDohrMgPCBrYWdlemVuXCA7CivoqannmoQgPCBzaGl0ZWtpXCA7CivmmJ/lraYgPCBzZWlnYWt1XCA7CivmhJvlpb3lrrYgPCBhaWtvdWthXCA7CivpnZLmmKUgPCBzZWlzaHVuXCA7CivmmofkurogPCBoaW1hamluXCA7Civpn7PlipsgPCBvbnJ5b2t1XCA7CivngrrpioAgPCB0YW1lZ2luXCA7CivoqJPogrIgPCBrdW4nJ2lrdVwgOwor5aWl5pa5IDwgb2t1Z2F0YVwgOwor54up5Lq6IDwga2FyeXVkb1wgOwor57Sv6YCyIDwgcnVpc2hpblwgOwor54S86IqLIDwgeWFraWltb1wgOwor5aeU5Lu754q2IDwgaW5pbmpvdVwgOwor6Zmq6IejIDwgYmFpc2hpblwgOwor54mn5birIDwgYm9rdXNoaVwgOwor5b6h5oqr6Zyy55uuIDwgb2hpcm9tZVwgOwor5paw5qGIIDwgc2hpbicnYW5cIDsKK+majue0miA8IGthaWt5dXVcIDsKK+eJueWumiA8IHRva3V0ZWlcIDsKK+eUqOWZqOeUuyA8IHlvdWtpZ2FcIDsKK+aYqOWklSA8IHNha3V5dXVcIDsKK+mau+ecvCA8IHNla2lnYW5cIDsKK+S/nemkiuaJgCA8IGhveW91am9cIDsKK+WutuW6reenkSA8IGthdGVpa2FcIDsKK+Wil+e1piA8IHpvdWt5dXVcIDsKK+S4jeWQjeiqiSA8IGZ1bWVpeW9cIDsKK+aXp+aCqiA8IGt5dXVha3VcIDsKK+aVsOa7tCA8IHN1dXRla2lcIDsKK+e2vue1uSA8IGF5YWdpbnVcIDsKK+e0oumBkyA8IHNha3Vkb3VcIDsKK+e1kOiqniA8IGtldHN1Z29cIDsKK+Wls+aJiyA8IG9uJyduYWRlXCA7CivnhrHni4IgPCBuZWtreW91XCA7CivlpbPmiL8gPCBueW91Ym91XCA7CivlpJbmtbcgPCBzb3RvdW1pXCA7CivlpKfmrLIgPCB0YWl5b2t1XCA7CivntZDoqJcgPCBrZXR0YWt1XCA7CivlpJbms4ogPCBnYWloYWt1XCA7CivopobovKogPCBmdWt1cmluXCA7CivmlbTmtYEgPCBzZWlyeXV1XCA7CivpoILkuIogPCBjaG91am91XCA7CivkupTovKrml5cgPCBnb3JpbmtpXCA7CivnhrHnh5cgPCBhdHN1a2FuXCA7Civml6XlvZMgPCBoaWF0YXJpXCA7Civns6Dpm6ggPCBudWthYW1lXCA7Civml6flvIogPCBreXV1aGVpXCA7CivnibnlpKcgPCB0b2t1ZGFpXCA7CivopqroqLEgPCBveWFtb3RvXCA7CivmmKXlnYogPCBoYXJ1Ym91XCA7CivkvZzmpa3ooaMgPCBzYWd5b3VpXCA7CivoqavnirYgPCB3YWJpam91XCA7Civpm7vmtYEgPCBkZW5yeXV1XCA7CivmnKjmiLjpiq0gPCBraWRvc2VuXCA7Civnibnlo7IgPCB0b2t1YmFpXCA7CivogLPkuIvohbogPCBqaWthc2VuXCA7CivnhKHoibIgPCBtdXNob2t1XCA7Civoq5bmlbUgPCByb250ZWtpXCA7Civlrrbluq3nnYAgPCBrYXRlaWdpXCA7Civpm4DnkIMgPCBqYW5reXV1XCA7Civmlofmp5ggPCBtb24nJ3lvdVwgOwor5aSn5qWtIDwgdGFpZ3lvdVwgOwor5peF5omAIDwgdGFiaXNob1wgOwor57O46Yu4IDwgaXRvbm9rb1wgOwor5aSW6Zmw6YOoIDwgZ2FpaW5idVwgOwor54m55aCxIDwgdG9rdWhvdVwgOwor5paH5qW9IDwgYnVucmFrdVwgOwor54Sh6IWwIDwgbXVnb3NoaVwgOwor6Z2i5b2xIDwgb21va2FnZVwgOwor54WZ56qBIDwgZW50b3RzdVwgOwor5aKT56m0IDwgYm9rZXRzdVwgOwor5ZKM6I+T5a2QIDwgd2FnYXNoaVwgOwor6Kq/5pu4IDwgY2hvdXNob1wgOwor6Z2p5bivIDwga2F3YW9iaVwgOwor5peF5oSBIDwgcnlvc2h1dVwgOwor6Ieq5Zyo55S7IDwgaml6YWlnYVwgOwor6Kej6ISxIDwgZ2VkYXRzdVwgOwor5pi85YmNIDwgaGlydW1hZVwgOwor57aa57eoIDwgem9rdWhlblwgOwor6ICV6YGL5qmfIDwga291dW5raVwgOwor54ax5ryUIDwgbmV0c3VlblwgOwor6Zuq5rSeIDwgYm9uYm9yaVwgOwor57eP552jIDwgc291dG9rdVwgOwor5LiA5Zue5b+MIDwgaWtrYWlraVwgOwor6ZaT6ZqZIDwga2FuZ2VraVwgOwor5LiN5Y+v6KejIDwgZnVrYWthaVwgOwor6Z205bGLIDwga3V0c3V5YVwgOwor5paO5pyNIDwgc2FpZnVrdVwgOwor5pen5bGFIDwga3l1dWt5b1wgOwor5LiN5Y+v6KaWIDwgZnVrYXNoaVwgOwor5aSn5pyoIDwgdGFpYm9rdVwgOwor5Z+O6YOtIDwgam91a2FrdVwgOwor6Zm456iyIDwgcmlrdXRvdVwgOwor57eP55CG5bqcIDwgc291cmlmdVwgOwor5aSx5pWsIDwgc2hpa2tlaVwgOwor6ZaL6ZmzIDwga2FpY2hpblwgOwor5aSx5pWXIDwgc2hpcHBhaVwgOwor5aWH5oqcIDwga2liYXRzdVwgOwor5LqM5YiG5pyoIDwgbmlidW5naVwgOwor5aSx5pS/IDwgc2hpc3NlaVwgOwor6KiO56m2IDwgdG91a3l1dVwgOwor6ZyK5p+pIDwgcmVpa3l1dVwgOwor6Kqt5pysIDwgZG9rdWhvblwgOwor6Ziy6IetIDwgYm91c2h1dVwgOwor6Kqt5pu4IDwgZG9rdXNob1wgOwor54qv5Lq6IDwgaGFuJyduaW5cIDsKK+WlpeW6rSA8IG9rdW5pd2FcIDsKK+WmiuWooCA8IG5pbnNoaW5cIDsKK+WlpeW6lSA8IG9rdXpva29cIDsKK+eJp+WcsCA8IGJva3VjaGlcIDsKK+W6g+i+nuiLkSA8IGtvdWppZW5cIDsKK+e3qOeJqSA8IGFtaW1vbm9cIDsKK+WkqeaVtSA8IHRlbnRla2lcIDsKK+mciuacqCA8IHJlaWJva3VcIDsKK+WknOabsiA8IHlha3lva3VcIDsKK+e3j+eUuyA8IHNvdWtha3VcIDsKK+WkmuaVsOa0viA8IHRhc3V1aGFcIDsKK+mZo+esoCA8IGppbmdhc2FcIDsKK+mahuebmyA8IHJ5dXVzZWlcIDsKK+ipleeCuSA8IGh5b3V0ZW5cIDsKK+S/neitt+iAhSA8IGhvZ29zaGFcIDsKK+WknOmWk+mDqCA8IHlha2FuYnVcIDsKK+aWh+aVmSA8IGJ1bmt5b3VcIDsKK+eVmeWuiOmbuyA8IHJ1c3VkZW5cIDsKK+WkieaigyA8IGhlbnRla29cIDsKK+exs+m6piA8IGJlaWJha3VcIDsKK+e0sOieuiA8IGtpc2hhZ29cIDsKK+eGseawlyA8IG5ldHN1a2VcIDsKK+aYqOWGrCA8IHNha3V0b3VcIDsKK+aYpeWIhiA8IHNodW5idW5cIDsKK+mVt+mbqCA8IG5hZ2FhbWVcIDsKK+aXp+WllyA8IGt5dXV0b3VcIDsKK+iqnuacqyA8IGdvbWF0c3VcIDsKK+ezp+mBkyA8IHJ5b3Vkb3VcIDsKK+aOg+mZpOapnyA8IHNvdWppa2lcIDsKK+iln+i2syA8IGVyaWFzaGlcIDsKK+isueWRiiA8IGtpbmtva3VcIDsKK+S6i+WLmeS8miA8IGppbXVrYWlcIDsKK+aWreW/tSA8IGRhbicnbmVuXCA7Civml6XlpJwgPCBuaWNoaXlhXCA7Civml6XlpJUgPCBuaXNzZWtpXCA7CivmmKXlhYkgPCBzaHVua291XCA7CivmlL7mtYEgPCBob3VyeXV1XCA7CivpnIfml6YgPCBzaGludGFuXCA7CivlpaXlsbEgPCBva3V5YW1hXCA7CivpnZnlr4IgPCBzZWlqYWt1XCA7CivkuovliY3lvowgPCBqaXplbmdvXCA7Civoj6nmj5DmqLkgPCBib2RhaWp1XCA7CivngavpiaIgPCBoaWJhY2hpXCA7CivntbbnuIEgPCB6ZXRzdWVuXCA7CivlpJXmlrkgPCB5dXVnYXRhXCA7Civnspfpo58gPCBzb3Nob2t1XCA7Civosp3ni6zmpb0gPCBiYWlnb21hXCA7CivlooPnm64gPCBzYWthaW1lXCA7CivnhKHpmLLlgpkgPCBtdWJvdWJpXCA7CivkuI3mgJ3orbAgPCBmdXNoaWdpXCA7Civml4XlrqIgPCByeW9rYWt1XCA7CivkuI3nqY/lvZMgPCBmdW9udG91XCA7CivmmK3ku6MgPCBzaG91ZGFpXCA7CivnhKHnrYYgPCBtdWhpdHN1XCA7CivlpLHmhYsgPCBzaGl0dGFpXCA7CivntZDohbggPCBrZXRjaG91XCA7CivnibnlhbggPCB0b2t1dGVuXCA7Civlj6/loZHmnZAgPCBrYXNvemFpXCA7CivlpLHmhI8gPCBzaGl0c3VpXCA7CivniIblvL4gPCBiYWt1ZGFuXCA7CivnibnlhY0gPCB0b2t1bWVuXCA7CivmlK/mtYEgPCBzaGlyeXV1XCA7Civmj5rpmbggPCB5b3VyaWt1XCA7CivopqroiLkgPCBveWFidW5lXCA7CivpmbjnlKMgPCByaWt1c2FuXCA7CivpmbjnlJ8gPCByaWt1c2VpXCA7CivpnaLlo4EgPCBtZW5wZWtpXCA7CivmjqLps6UgPCB0YW5jaG91XCA7CivntIToqIAgPCB5YWt1Z2VuXCA7CivmorPntr/mqZ8gPCBzb21lbmtpXCA7Civnspfpm5EgPCBzb3phdHN1XCA7CivnhKHmiYvpoIYgPCBtdXRlanVuXCA7Civpm7vmkoMgPCBkZW5nZWtpXCA7CivmlZnmm7ggPCBreW91c2hvXCA7CivplpPov5EgPCBtYWRqaWthXCA7CivmlrDlsYUgPCBzaGlua3lvXCA7CivntLroibIgPCBrb24nJ2lyb1wgOwor57aZ55uuIDwgdHN1Z2ltZVwgOwor6Zu35pKDIDwgcmFpZ2VraVwgOwor5bC+54q26IqxIDwgYmlqb3VrYVwgOwor5aG+55SfIDwganVrdXNlaVwgOwor6Kq/5bymIDwgY2hvdWdlblwgOwor54eD5paZIDwgbmVucnlvdVwgOwor6Zqg5ruFIDwgaW5tZXRzdVwgOwor5aSn5oGvIDwgdGFpc29rdVwgOwor6ZuG5qipIDwgc2h1dWtlblwgOwor5L6/5Yip5bGLIDwgYmVucml5YVwgOwor6ZaL6YCaIDwga2FpdHN1dVwgOwor6Zmj55ebIDwgamludHN1dVwgOwor5aSW5oiaIDwgZ2Fpc2VraVwgOwor57ay54yfIDwgYW1pcnlvdVwgOwor5pW15omLIDwgdGVraXNodVwgOwor5aSn5b6zIDwgZGFpdG9rdVwgOwor6Zui5pelIDwgcmluaWNoaVwgOwor57K+6YCyIDwgc2hvdWppblwgOwor5LqI55+l5aSiIDwgeW9jaGltdVwgOwor57K+6YCaIDwgc2VpdHN1dVwgOwor54WJ542EIDwgcmVuZ29rdVwgOwor5b6h56We57GkIDwgb21pa3VqaVwgOwor6Ku45Zu9IDwgc2hva29rdVwgOwor5pen5ZCNIDwga3l1dW1laVwgOwor5pig5YaZ5qmfIDwgZWlzaGFraVwgOwor6Zuj5pW1IDwgbmFudGVraVwgOwor5L+d6K2356iOIDwgaG9nb3plaVwgOwor54Cd6Z2SIDwgcmVraXNlaVwgOwor5Y+Z5LqL5paHIDwgam9qaWJ1blwgOwor5pen5Y+LIDwga3l1dXl1dVwgOwor57WQ57iBIDwga2VjaGllblwgOwor6KKe6b6NIDwga29ucnlvdVwgOwor5paw5amaIDwgc2hpbmtvblwgOwor6Iux5Lya6KmxIDwgZWlrYWl3YVwgOwor5paH5byxIDwgYnVuamFrdVwgOwor5pel5Y+OIDwgbmlzc2h1dVwgOwor5LiN5Y+v6IO9IDwgZnVrYW5vdVwgOwor6ZuR5pyoIDwgem91Ym9rdVwgOwor6Kqs5b6XIDwgc2V0dG9rdVwgOwor5pig55S76aSoIDwgZWlnYWthblwgOwor6Z2W5Zu9IDwgc2Vpa29rdVwgOwor5aSp5bmVIDwgdGVubWFrdVwgOwor6Zay6KanIDwgZXRzdXJhblwgOwor6Z2p5ZG9IDwga2FrdW1laVwgOwor57mU5biDIDwgc2hva3VmdVwgOwor5pel5Y2wIDwgbmljaGlpblwgOwor57mK5byxIDwgc2VuamFrdVwgOwor57Sw6IWVIDwgaG9zb3VkZVwgOwor6Zu25oimIDwgemVyb3NlblwgOwor6Kaa6ICFIDwga2FrdXNoYVwgOwor57WE57mUIDwgc29zaGlraVwgOwor6Kys5LydIDwgYnl1dWRlblwgOwor6KqY5oORIDwgeXV1d2FrdVwgOwor54mn5Lq6IDwgYm9rdWppblwgOwor6ZW36L66IDwgY2hvdWhlblwgOwor6ZyK5bufIDwgcmVpYnlvdVwgOwor6Kmu5pa5IDwgc2Vua2F0YVwgOwor54mH5YmNIDwga2F0YW1hZVwgOwor6aKo6Zuy5YWQIDwgZnV1dW5qaVwgOwor5Z6C6L+5IDwgc3VpamFrdVwgOwor5aKo5rGBIDwgYm9rdWp1dVwgOwor5pS55pqmIDwga2FpcmVraVwgOwor6Ziq56WeIDwgaGFuc2hpblwgOwor5pW15by+IDwgdGVraWRhblwgOwor6ZaA6LehIDwgbW9uemVraVwgOwor57KX6YeRIDwgYXJhZ2FuZVwgOwor6Kaq57GzIDwgc2hpbmJlaVwgOwor5pWP5o23IDwgYmluc2hvdVwgOwor54mI5YWDIDwgaGFubW90b1wgOwor5qWV5YaG5b2iIDwgZGFlbmtlaVwgOwor6KaL57+SIDwgbWluYXJhaVwgOwor5paw5ZywIDwgc2hpbmNoaVwgOwor5pS+5pOyIDwgaG91dGVraVwgOwor5ryU5aWP5a62IDwgZW5zb3VrYVwgOwor5pW35biDIDwgc2hpa2lmdVwgOwor54mb5Li8IDwgZ3l1dWRvblwgOwor6KeS55uGIDwga2FrdWJvblwgOwor6KmU5pu4IDwgc2hvdXNob1wgOwor5aSn5a2mIDwgZGFpZ2FrdVwgOwor5Y+v5aGR5oCnIDwga2Fzb3NlaVwgOwor5aOB5p2/IDwga2FiZWl0YVwgOwor6KKr6Zmk5pWwIDwgaGlqb3N1dVwgOwor5paH5a2mIDwgYnVuZ2FrdVwgOwor5pS75pKDIDwga291Z2VraVwgOwor5LqM5qyh5YWDIDwgbmlqaWdlblwgOwor57eR5qi5IDwgcnlva3VqdVwgOwor54iq5Y2wIDwgdHN1bWVpblwgOwor5omL5paH5bqrIDwgdGVidW5rb1wgOwor5pen5L6LIDwga3l1dXJlaVwgOwor57Oe6J2/IDwga3Vzb2JhZVwgOwor5LiA566H5omAIDwgaWtrYXNob1wgOwor5LqI5YKZ6ZqKIDwgeW9iaXRhaVwgOwor55aR5ZWP56ymIDwgZ2ltb25mdVwgOwor57mU5aerIDwgb3JpaGltZVwgOwor57SF6ImyIDwgYmVuaWlyb1wgOwor6Zm45rW3IDwgcmlrdWthaVwgOwor57WC56uvIDwgc2h1dXRhblwgOwor6KeS55WqIDwga2Fkb2JhblwgOwor5Zu65a6a6LK7IDwga290ZWloaVwgOwor57K+6KqtIDwgc2VpZG9rdVwgOwor57mU5aWzIDwgc2hva3Vqb1wgOwor5pel5LuYIDwgaGlkenVrZVwgOwor54ax5oSbIDwgbmV0c3VhaVwgOwor5aKD5ravIDwga3lvdWdhaVwgOwor6Zyc5aScIDwgc2hpbW95b1wgOwor5aWz5YKRIDwgam9rZXRzdVwgOwor5aSp5aWzIDwgdGVuJydueW9cIDsKK+inkueTtiA8IGtha3ViaW5cIDsKK+e0oee4viA8IGJvdXNla2lcIDsKK+aXp+S4uyA8IGt5dXVzaHVcIDsKK+Wkp+WlsyA8IG9vb24nJ25hXCA7CivmlbXlr74gPCB0ZWtpdGFpXCA7CivoqIjmuKwgPCBrZWlzb2t1XCA7CivmlrDlk4EgPCBzaGlucGluXCA7CivmmI7msrvluqcgPCBtZWlqaXphXCA7CivnkIbmg7PlrrYgPCByaXNvdWthXCA7CivnhKHnhrEgPCBtdW5ldHN1XCA7CivlnJ/lo4floLQgPCBkb3RhbmJhXCA7CivkuozmrKHkvJogPCBuaWppa2FpXCA7Civnt4/moZAgPCBzb3VnaXJpXCA7Civoq5blkYogPCByb25rb2t1XCA7CivnhrHlv4MgPCBuZXNzaGluXCA7CivlpYnlkYogPCBob3Vrb2t1XCA7CivlpLHlnLAgPCBzaGl0Y2hpXCA7Civnvqnli5nmhJ8gPCBnaW11a2FuXCA7CivmlbDlraYgPCBzdXVnYWt1XCA7CivmkoPnoJUgPCBnZWtpc2FpXCA7Civoqq3lo7IgPCB5b21pdXJpXCA7Civmjpjpkb8gPCBrdXNzYWt1XCA7Civpm7nlrrMgPCBoeW91Z2FpXCA7Civnt4/mn4QgPCBzb3VnYXJhXCA7CivpnIrlppkgPCByZWlteW91XCA7CivkuInlj4not68gPCBzYW5zYXJvXCA7CivlpInlrrkgPCBoZW4nJ3lvdVwgOwor5peF5YOnIDwgdGFiaXNvdVwgOwor54af5oWuIDwganVrdXJ5b1wgOwor54KO6ImyIDwgZW5zaG9rdVwgOwor6Kiz5pysIDwgeWFrdWhvblwgOwor5aKo5pu4IDwgYm9rdXNob1wgOwor57Sb57O+IDwgZnVua3l1dVwgOwor5o6o6YePIDwgc3VpcnlvdVwgOwor5pKe55CDIDwgZG91a3l1dVwgOwor5aSZ5aScIDwgc2h1a3V5YVwgOwor54ax5bqmIDwgbmV0c3Vkb1wgOwor6ZyH5aSuIDwgc2hpbicnb3VcIDsKK+azouW4g+iMtiA8IGhhYnVjaGFcIDsKK+e0r+epjSA8IHJ1aXNla2lcIDsKK+ijj+mHmCA8IHVyYWt1Z2lcIDsKK+ijj+mHkSA8IHVyYWdhbmVcIDsKK+aUquaLjCA8IGtha3VoYW5cIDsKK+mZuOapiyA8IHJpa2t5b3VcIDsKK+iovOaWhyA8IHNob3Vtb25cIDsKK+i1pOWVhOacqOmzpSA8IGFrYWdlcmFcIDsKK+S4jeaEm+aDsyA8IGJ1YWlzb3VcIDsKK+iouuaWrSA8IHNoaW5kYW5cIDsKK+Wkp+WbvSA8IHRhaWtva3VcIDsKK+iou+aWhyA8IGNodXVtb25cIDsKK+e0uueipyA8IGtvbnBla2lcIDsKK+S4gOeuh+W5tCA8IGlra2FuZW5cIDsKK+aUueaCmyA8IGthaXNodW5cIDsKK+e1tueEoSA8IHpldHN1bXVcIDsKK+WkluWjgSA8IGdhaWhla2lcIDsKK+Whnua6kCA8IHNva3VnZW5cIDsKK+Wkp+WYtCA8IG9vaGFzaGlcIDsKK+aWsOWFtSA8IHNoaW5wZWlcIDsKK+ios+aWhyA8IHlha3VidW5cIDsKK+S6iOWCmemHkSA8IHlvYmlraW5cIDsKK+aOm+mHkSA8IGtha2VraW5cIDsKK+aVl+WwhiA8IGhhaXNob3VcIDsKK+aOqOmAsiA8IHN1aXNoaW5cIDsKK+mbhOW/gyA8IHl1dXNoaW5cIDsKK+aVteWhgSA8IHRla2lydWlcIDsKK+e2suajmiA8IGFtaWRhbmFcIDsKK+mZuOajmiA8IHJpa3Vob3VcIDsKK+S4jeWPr+efpSA8IGZ1a2FjaGlcIDsKK+WbvemiqCA8IGtva3VmdXVcIDsKK+mahuabvyA8IHJ5dXV0YWlcIDsKK+e3muaPjyA8IHNlbmJ5b3VcIDsKK+iqv+WQiCA8IGNob3Vnb3VcIDsKK+iPqeaPkOWvuiA8IGJvZGFpamlcIDsKK+ehq+m7hOWxsSA8IGlvdXlhbWFcIDsKK+mZsOaltSA8IGlua3lva3VcIDsKK+Wkj+WgtCA8IG5hdHN1YmFcIDsKK+e0oOWboOaVsCA8IHNvaW5zdXVcIDsKK+ikh+ijvSA8IGZ1a3VzZWlcIDsKK+WkluWcpyA8IGdhaWF0c3VcIDsKK+S7j+iYreilvyA8IGZ1cmFuc3VcIDsKK+eGn+W5tCA8IGp1a3VuZW5cIDsKK+e1kOeQgyA8IGtla2t5dXVcIDsKK+WkluWbvSA8IGdhaWtva3VcIDsKK+aOpei+niA8IHNldHN1amlcIDsKK+S4jeWQiOeQhiA8IGZ1Z291cmlcIDsKK+eyvuiWhCA8IHNlaWhha3VcIDsKK+aOg+mZpOWppiA8IHNvdWppZnVcIDsKK+aNlemjnyA8IGhvc2hva3VcIDsKK+aVteWbvSA8IHRla2tva3VcIDsKK+mHjuaaruWkqSA8IHlhYm90ZW5cIDsKK+WkieWfnyA8IGhlbicnaWtpXCA7Civkv53orbflp5Tlk6EgPCBob2dvaWluXCA7Civpmb3mmqYgPCB5b3VyZWtpXCA7CivlrrblhbfnrYkgPCBrYWd1dG91XCA7CivlpKflkI0gPCBkYWlteW91XCA7CivolpTolofoibIgPCBiYXJhaXJvXCA7Civlm73pm7sgPCBrb2t1ZGVuXCA7CivlpKflj6MgPCBvb2d1Y2hpXCA7CivkuI3mhInlv6sgPCBmdXl1a2FpXCA7CivovrLmqZ/lhbcgPCBub3VraWd1XCA7Civlm73pm6MgPCBrb2t1bmFuXCA7CivovLjpgIHosrsgPCB5dXNvdWhpXCA7CivpvbIgPCBtdXNoaWJhXCA7Civpmb3mmKUgPCB5b3VzaHVuXCA7CivnnIvorbflqaYgPCBrYW5nb2Z1XCA7Civlm73pmpsgPCBrb2t1c2FpXCA7CivntIvnq6AgPCBtb25zaG91XCA7CivlnLDpgZMgPCBqaW1pY2hpXCA7CivopqrnjokgPCBveWFkYW1hXCA7CivlvqHnpZ7ngasgPCBnb2ppbmthXCA7CivmlYXlrp8gPCBrb2ppdHN1XCA7Civlm73pmLIgPCBrb2t1Ym91XCA7CivmlL7lsL8gPCBob3VueW91XCA7CivmlofljZogPCBidW5oYWt1XCA7Civkuojlgpnou40gPCB5b2JpZ3VuXCA7Civmk6/mlqUgPCBoaW5zZWtpXCA7CivnuK7lm7MgPCBzaHVrdXp1XCA7CivplpPohpwgPCBrYW5tYWt1XCA7CivlpKflipsgPCBkYWlyaWtpXCA7Civmjqjos54gPCBzdWlzaG91XCA7Civmv4Dpl5ggPCBnZWtpdG91XCA7CivlpJblkaggPCBnYWlzaHV1XCA7Civlj6Tmlofmm7ggPCBrb21vbmpvXCA7Civlm7Dpm6MgPCBrb24nJ25hblwgOwor57im5Z2RIDwgdGF0ZWtvdVwgOwor57Wm5rqQIDwga3l1dWdlblwgOwor6Zyy5LuPIDwgcm9mdXRzdVwgOwor6Ieq6KGb5qipIDwgamllaWtlblwgOwor6Kqh5ZGKIDwga2Fpa29rdVwgOwor5Zyw6Lu4IDwgY2hpamlrdVwgOwor5aSn5Ye2IDwgZGFpa3lvdVwgOwor6barIDwgdHN1Z3VtaVwgOwor6KaB55uuIDwgeW91bW9rdVwgOwor57WE54mIIDwga3VtaWhhblwgOwor57mU5YWDIDwgb3JpbW90b1wgOwor6KWf56ugIDwgZXJpc2hvdVwgOwor6bWkIDwgaWthcnVnYVwgOwor6Zub5aOHIDwgaGluYWRhblwgOwor6bWGIDwgY2hpZG9yaVwgOwor57SU55yfIDwganVuc2hpblwgOwor6Zq35bGeIDwgcmVpem9rdVwgOwor5pac5LqkIDwgaGFzdWthaVwgOwor57mB5YqHIDwgaGFuZ2VraVwgOwor54Wp5oKpIDwgYm9uJydub3VcIDsKK+WjsuWbvSA8IGJhaWtva3VcIDsKK+e0lOebiiA8IGp1bicnZWtpXCA7Civmlpnkuq0gPCByeW91dGVpXCA7Civnt57luLMgPCBkb25jaG91XCA7CivpsJggPCBtdXJvYWppXCA7CivmlbXli6IgPCB0ZWtpemVpXCA7CivooajpnaIgPCBoeW91bWVuXCA7CivplbfoiosgPCBuYWdhaW1vXCA7CivntJTnmb0gPCBqdW5wYWt1XCA7Civpr7MgPCBzdWtlc291XCA7CivpmLLmr5IgPCBib3Vkb2t1XCA7CivmlbDljLkgPCBzdXVoaWtpXCA7Civpm7vljZMgPCBkZW50YWt1XCA7CivntYLngrkgPCBzaHV1dGVuXCA7Civnt4rmgKUgPCBraW5reXV1XCA7CivmlbXliY0gPCB0ZWtpemVuXCA7CivlpJXlh6ogPCB5dXVuYWdpXCA7CivlkIjmsKPpgZMgPCBhaWtpZG91XCA7CivnuZrkubEgPCByeW91cmFuXCA7CivnuITloqggPCBqb3Vib2t1XCA7CivprJggPCBrYXRzdXJhXCA7Civopqrmva4gPCBveWFzaGlvXCA7CivngrnngavlmaggPCB0ZW5rYWtpXCA7Civoo5zooYAgPCBob2tldHN1XCA7CivoprPmuKwgPCBrYW5zb2t1XCA7Civnha7lubIgPCBuaWJvc2hpXCA7CivntrHmiYsgPCB0c3VuYWRlXCA7CivpmbjmiKYgPCByaWt1c2VuXCA7Civnvr3kuozph40gPCBoYWJ1dGFlXCA7Civpm4blobUgPCBzaHV1amluXCA7Civopo/mupbljJYgPCBraWp1bmthXCA7CivpmpTlubQgPCBrYWt1bmVuXCA7Civpq5jluqblt64gPCBrb3Vkb3NhXCA7CivnhKHmnK0gPCBtdXNhdHN1XCA7CivnhKHmnIggPCBtdWdldHN1XCA7CivnhrHllLEgPCBuZXNzaG91XCA7Civlr4Tku5jph5EgPCBraWZ1a2luXCA7CivmlonkuIAgPCBzZWlpdHN1XCA7Civngavlj6PmuZYgPCBrYWtvdWtvXCA7CivlopflvLcgPCB6b3VreW91XCA7CivpmbrmgqogPCBrZW4nJ2FrdVwgOwor6ZW36ICBIDwgY2hvdXJvdVwgOwor5pS/5rK75bGLIDwgc2Vpaml5YVwgOwor6KGM6aCtIDwgZ3lvdXRvdVwgOwor5YCL44CF5Lq6IDwga29rb2ppblwgOwor6Zqg5a+GIDwgb25taXRzdVwgOwor6ZyN5LmxIDwga2FrdXJhblwgOwor5Zu96YGTIDwga29rdWRvdVwgOwor57WQ5rC3IDwga2VwcHlvdVwgOwor6ZuG5ZujIDwgc2h1dWRhblwgOwor5pS/5rK75a62IDwgc2VpamlrYVwgOwor5Zu96YCjIDwga29rdXJlblwgOwor6YGL5Za26LK7IDwgdW4nJ2VpaGlcIDsKK+mZs+aDhSA8IGNoaW5qb3VcIDsKK+eBq+euuCA8IGhpYmFzaGlcIDsKK+idpuWkt+iPiiA8IGV6b2dpa3VcIDsKK+WjsuWNnCA8IGJhaWJva3VcIDsKK+aVl+WMlyA8IGhhaWJva3VcIDsKK+Wil+W5hSA8IHpvdWZ1a3VcIDsKK+S/neitt+aelyA8IGhvZ29yaW5cIDsKK+a9rumokiA8IHNoaW9zYWlcIDsKK+acqOaIuOeVqiA8IGtpZG9iYW5cIDsKK+e0oueEtiA8IHNha3V6ZW5cIDsKK+e2vuW4gyA8IGF5YW51bm9cIDsKK+eymOiGnCA8IG5lbm1ha3VcIDsKK+aRgueQhiA8IHNldHN1cmlcIDsKK+mbquWGpCA8IHNldHN1ZW5cIDsKK+WiqOWuiCA8IGJva3VzaHVcIDsKK+eyieiMtiA8IGtvbmFjaGFcIDsKK+inkuadkCA8IGtha3V6YWlcIDsKK+e1jOattCA8IGtlaXJla2lcIDsKK+mbouWIpSA8IHJpYmV0c3VcIDsKK+mXmOeJmyA8IHRvdWd5dXVcIDsKK+aRqea7hSA8IG1hbWV0c3VcIDsKK+Wbvei7jSA8IGtva3VndW5cIDsKK+a/q+intCA8IHJhbnNob3VcIDsKK+aVmeWFuCA8IGt5b3V0ZW5cIDsKK+WcsOihqCA8IGNoaWh5b3VcIDsKK+aOqOiWrCA8IHN1aXlha3VcIDsKK+mZs+W8gSA8IGNoaW5iZW5cIDsKK+eCrOeHtSA8IGtvdGF0c3VcIDsKK+ihjOmWkyA8IGd5b3VrYW5cIDsKK+mWi+eriyA8IGthaXJ5dXVcIDsKK+aSnuacqCA8IHNodW1va3VcIDsKK+a1heefpeaBtSA8IGFzYWRqaWVcIDsKK+mbkeWLmSA8IHphdHN1bXVcIDsKK+e0sOa1gSA8IHNhaXJ5dXVcIDsKK+mbhuWQiCA8IHNodXVnb3VcIDsKK+WcsOicgiA8IGppYmFjaGlcIDsKK+mdkuixjOixhiA8IGFvZW5kb3VcIDsKK+mZuuWzuyA8IGtlbnNodW5cIDsKK+ihl+mMsiA8IGdhaXJva3VcIDsKK+Wls+S4iOWkqyA8IGpvam91YnVcIDsKK+WGhuiomOWPtyA8IGVua2lnb3VcIDsKK+mbkeWJhyA8IHphc3Nva3VcIDsKK+ijheiWrCA8IHNvdXlha3VcIDsKK+WbveizkyA8IGtva3VoaW5cIDsKK+mZuOWyuCA8IHJpa3VnYW5cIDsKK+Whl+aKuSA8IHRvbWF0c3VcIDsKK+mZveWwhCA8IGhpemFzaGlcIDsKK+mWoueZvSA8IGthbnBha3VcIDsKK+eEpuaFriA8IHNob3VyeW9cIDsKK+S6nOWvkuW4ryA8IGFrYW50YWlcIDsKK+aMr+mItCA8IHNoaW5yZWlcIDsKK+mbkeWFtSA8IHpvdWh5b3VcIDsKK+mao+WbvSA8IHJpbmdva3VcIDsKK+mbgOWNkyA8IGphbnRha3VcIDsKK+mbquS4rSA8IHNldGNodXVcIDsKK+WiqOWgpCA8IGJva3V0ZWlcIDsKK+iol+WuoyA8IHRha3VzZW5cIDsKK+aQjeebiiA8IHNvbicnZWtpXCA7CivpmaPluZUgPCBqaW5tYWt1XCA7CivmsZ/miLjlt50gPCBlZG9nYXdhXCA7CivngbDnmr8gPCBoYWl6YXJhXCA7CivntZDmnZ8gPCBrZXNzb2t1XCA7CivngbDnmb0gPCBrYWloYWt1XCA7CivopqrmoKogPCBveWFrYWJ1XCA7CivlubzlhZDoqp4gPCB5b3VqaWdvXCA7CivpjrkgPCBrYXN1Z2FpXCA7Civlm73oq5YgPCBrb2t1cm9uXCA7Civnt5HlnJ8gPCByeW9rdWRvXCA7Civmv4Doq5YgPCBnZWtpcm9uXCA7Civmmpfmmpfoo6EgPCBhbicnYW5yaVwgOwor5LiN5rWE5aC0IDwgZnVqb3ViYVwgOwor6KaB5rGCIDwgeW91a3l1dVwgOwor6YupIDwga2lzc2FraVwgOwor54ax5LitIDwgbmV0Y2h1dVwgOwor5rmv5rK75aC0IDwgdG91amliYVwgOwor6KOP6IW5IDwgdXJhaGFyYVwgOwor6KmV5YikIDwgaHlvdWJhblwgOwor57SN5ra8IDwgbm91cnlvdVwgOwor5Zuz6KqsIDwgenVzZXRzdVwgOwor6ZaT55S3IDwgbWFvdG9rb1wgOwor5pG65pysIDwgc2hvdWhvblwgOwor6ISz5ZGz5ZmMIDwgbm91bWlzb1wgOwor6ZuR5LqLIDwgemF0c3VqaVwgOwor5a2Q55S76Z2iIDwga29nYW1lblwgOwor57W25oGvIDwgemVzc29rdVwgOwor6Zmj5a65IDwgamluJyd5b3VcIDsKK+mZuOWkpyA8IHJpa3VkYWlcIDsKK+ikpeeYoSA8IGpva3Vzb3VcIDsKK+eyl+etiyA8IGFyYXN1amlcIDsKK+mVt+efrSA8IGNob3V0YW5cIDsKK+imquaWuSA8IG95YWthdGFcIDsKK+WPr+imluWMliA8IGthc2hpa2FcIDsKK+ioreWWtiA8IHNldHN1ZWlcIDsKK+e1teW/gyA8IGVnb2tvcm9cIDsKK+aLnemgmCA8IGhhaXJ5b3VcIDsKK+e1tuW+jCA8IHpldHN1Z29cIDsKK+S4jeazqOaEjyA8IGZ1Y2h1dWlcIDsKK+eymOeooCA8IG5lbmNodXVcIDsKK+aSruW9sSA8IHNhdHN1ZWlcIDsKK+itt+ihm+iJpiA8IGdvZWlrYW5cIDsKK+WhqeWusyA8IHNoaW9nYWlcIDsKK+ijnOe2tCA8IGhvdGV0c3VcIDsKK+evpOi+siA8IHRva3Vub3VcIDsKK+aPrueZuiA8IGtpaGF0c3VcIDsKK+eDj+acqCA8IGtva3V0YW5cIDsKK+asoeaJk+iAhSA8IGppZGFzaGFcIDsKK+WghuacsSA8IHRzdWlzaHVcIDsKK+mZuOWcsCA8IHJpa3VjaGlcIDsKK+Wig+WfnyA8IGt5b3Vpa2lcIDsKK+aKq+mcsuWutCA8IGhpcm91ZW5cIDsKK+eFp+WQiCA8IHNob3Vnb3VcIDsKK+ipleS8nSA8IGh5b3VkZW5cIDsKK+iHquihm+WumCA8IGppZWlrYW5cIDsKK+Wei+eVqiA8IGthdGFiYW5cIDsKK+eEvOWjsiA8IHNodXVtYWlcIDsKK+eVmeWuiOeVqiA8IHJ1c3ViYW5cIDsKK+ikh+ecvCA8IGZ1a3VnYW5cIDsKK+S6nOmfs+mAnyA8IGFvbnNva3VcIDsKK+eEoeWuvyA8IG11c2h1a3VcIDsKK+inkuW4vSA8IGtha3Vib3VcIDsKK+mVt+eUtyA8IGNob3VuYW5cIDsKK+imquaMhyA8IG95YXl1YmlcIDsKK+inkuW4ryA8IGtha3VvYmlcIDsKK+eEoeWunyA8IG11aml0c3VcIDsKK+e0ouadoSA8IHNha3Vqb3VcIDsKK+e3j+WJhyA8IHNvdXNva3VcIDsKK+i5hCA8IGhpZHp1bWVcIDsKK+Wil+WPjiA8IHpvdXNodXVcIDsKK+e2vuWPliA8IGF5YXRvcmlcIDsKK+e2muWgsSA8IHpva3Vob3VcIDsKK+WgseW+syA8IGhvdXRva3VcIDsKK+aRqeaTpiA8IG1hc2F0c3VcIDsKK+WgseW+qSA8IGhvdWZ1a3VcIDsKK+W+oeazqOaEjyA8IGdvY2h1dWlcIDsKK+imi+aWmSA8IGtlbnJ5b3VcIDsKK+ihqOijhSA8IGh5b3Vzb3VcIDsKK+WbveiRrCA8IGtva3Vzb3VcIDsKK+ilv+aapiA8IHNlaXJla2lcIDsKK+exoOe1oSA8IHJvdXJha3VcIDsKK+WMu+enkeWtpiA8IGlrYWdha3VcIDsKK+eyl+eariA8IGFyYWthd2FcIDsKK+eCreafsSA8IHRhbmNodXVcIDsKK+ims+W/tSA8IGthbicnbmVuXCA7CivntJTmnLQgPCBqdW5ib2t1XCA7CivoqJPlkYogPCBrdW5rb2t1XCA7Civopb/ml6UgPCBuaXNoaWJpXCA7CivnsbPnqYAgPCBiZWlrb2t1XCA7CivnlbDmlrnmgKcgPCBpaG91c2VpXCA7Civmk4Hlo4EgPCB5b3VoZWtpXCA7CivoqK3lgpkgPCBzZXRzdWJpXCA7CivooYDosYYgPCBjaGltYW1lXCA7CivlnKfnuK4gPCBhc3NodWt1XCA7Civnt5LkvZwgPCBzaG9zYWt1XCA7CivnhKHpkZHmn7sgPCBtdWthbnNhXCA7CivntJrmlbAgPCBreXV1c3V1XCA7CivntIvmnI0gPCBtb25wdWt1XCA7Civoo5Xnpo8gPCB5dXVmdWt1XCA7CivmjpvnrpcgPCBrYWtlemFuXCA7CivntbXlp78gPCBlc3VnYXRhXCA7CivorKwgPCBheWFtYXJpXCA7CivlnLDnsY0gPCBjaGlzZWtpXCA7Civkuoznlarnm64gPCBuaWJhbm1lXCA7CivmjqLnqbYgPCB0YW5reXV1XCA7CivnspLnlYwgPCByeXV1a2FpXCA7CivnoazljJbmsrkgPCBrb3VrYXl1XCA7CivmkI3mtYEgPCBzb25yeXV1XCA7CivoqrwgPCB5b3NoaW1pXCA7CivmmKDnlLvnpa0gPCBlaWdhc2FpXCA7Civoqq4gPCB5YXNhc2hpXCA7CivmvIbpo58gPCBzaGlra3VpXCA7CivmmKDnlLvnpL4gPCBlaWdhc2hhXCA7Civngrnmj48gPCB0ZW5ieW91XCA7CivkuI3mraPopo8gPCBmdXNlaWtpXCA7CivojYrmo5jnt5ogPCBiYXJhc2VuXCA7Civmi5PpioAgPCB0YWt1Z2luXCA7Civntbblo4EgPCB6ZXBwZWtpXCA7CivmhbDpnIrnpa0gPCBpcmVpc2FpXCA7CivlrabmoKHljLsgPCBnYWtrb3VpXCA7CivpmbjlhbUgPCByaWt1aGVpXCA7CivntrHlhbcgPCB0c3VuYWd1XCA7CivnspfnjokgPCBhcmF0YW1hXCA7CivntrLlhYMgPCBhbWltb3RvXCA7CivoqIDlj4ogPCBnZW5reXV1XCA7Civph5HmloflrZcgPCBraW5tb2ppXCA7Civns7jmnqAgPCBpdG93YWt1XCA7CivpmaTljbQgPCBqb2t5YWt1XCA7CivmvKvpjLIgPCBtYW5yb2t1XCA7Civpmo/kuIAgPCB6dWlpY2hpXCA7Civns7jmnYkgPCBpdG9zdWdpXCA7CivngbDmrrsgPCBoYWlnYXJhXCA7CivmkYLmlL8gPCBzZXNzaG91XCA7CivopYUgPCBjaGloYXlhXCA7CivloanlkbMgPCBzaGlvYWppXCA7CivntZDlsL4gPCBrZXRzdWJpXCA7CivntITmlbAgPCB5YWt1c3V1XCA7CivpmLLlo4EgPCBib3VoZWtpXCA7CivlvqHms5XluqYgPCBnb2hhdHRvXCA7CivloYHlo4EgPCBydWloZWtpXCA7CivntZDlr6kgPCBrZXNzaGluXCA7Civmi5npgJ8gPCBzZXNzb2t1XCA7Civmkq7lnJ8gPCBzYXRzdWRvXCA7CivmsJfkv53ppIogPCBraWhveW91XCA7CivooI4gPCB1d2FiYW1pXCA7CivpiYTngavloLQgPCB0ZWtrYWJhXCA7Civli6Tli5nlk6EgPCBraW5tdWluXCA7Civop5LlnLAgPCBrYWRvY2hpXCA7CivntYzlraYgPCBrZWlnYWt1XCA7Civnsovni4IgPCBzdWlreW91XCA7Civoo4/nmb0gPCB1cmFqaXJvXCA7CivlobXlhaUgPCBnb21paXJlXCA7CivnlbDmmJ/kurogPCBpc2VpamluXCA7CivntLDluK8gPCBob3Nvb2JpXCA7CivonIYgPCBzaGlqaW1pXCA7CivnhKHlj6MgPCBtdWt1Y2hpXCA7Civln7flv7UgPCBzaHV1bmVuXCA7CivpmbjkuIogPCByaWt1am91XCA7CivmmKDnlLvnlYwgPCBlaWdha2FpXCA7CivmvKvpgYogPCBtYW4nJ3l1dVwgOwor57W25ZSxIDwgemVzc2hvdVwgOwor6JmxIDwgc2hpcmFtaVwgOwor5LqU55W/5YaFIDwgZ29raW5haVwgOwor5b6h56C0566XIDwgZ29oYXNhblwgOwor5Zyw55uuIDwgY2hpbW9rdVwgOwor5ZCm5a6a6KqeIDwgaGl0ZWlnb1wgOwor54Sh5YqbIDwgbXVyeW9rdVwgOwor6JW+IDwgdHN1Ym9taVwgOwor5oq96YG4IDwgY2h1dXNlblwgOwor57W25Y+rIDwgemVra3lvdVwgOwor6YGV5oay5oCnIDwgaWtlbnNlaVwgOwor5aGp5YyW6YqAIDwgZW5rYWdpblwgOwor5Zu957KLIDwga29rdXN1aVwgOwor6ZaJ5qWtIDwgaGVpZ3lvdVwgOwor57Gz54usIDwgYmVpZG9rdVwgOwor5oyv6IieIDwgZnVydW1haVwgOwor5L+d6K235Y+4IDwgaG9nb3NoaVwgOwor6ZW35q2MIDwgbmFnYXV0YVwgOwor57SN5b6XIDwgbmF0dG9rdVwgOwor5Zyf552AIDwgZG9jaGFrdVwgOwor5Zu9562JIDwga29rdXRvdVwgOwor5aCC5a6IIDwgZG91bW9yaVwgOwor5oud6KyBIDwgaGFpZXRzdVwgOwor5b6X5oSP5rCXIDwgdG9rdWlnZVwgOwor5pKk5Y+OIDwgdGVzc2h1dVwgOwor54Gv5piOIDwgdG91bXlvdVwgOwor5oud6KqtIDwgaGFpZG9rdVwgOwor562J6ZaRIDwgbmFvemFyaVwgOwor6Y+k6aqoIDwgcnVrb3RzdVwgOwor5omL57Sw5belIDwgdGV6YWlrdVwgOwor6IiO5Yip5aGpIDwgc2hhcmllblwgOwor5Zyo55WZIDwgemFpcnl1dVwgOwor5pCN5paZIDwgc29ucnlvdVwgOwor5Zyt55KnIDwga2VpaGVraVwgOwor5o+P5rOVIDwgYnlvdWhvdVwgOwor6Kaq6aas6bm/IDwgb3lhYmFrYVwgOwor6Iie6LiK5a62IDwgYnV0b3VrYVwgOwor5Zu956iOIDwga29rdXplaVwgOwor5aWH5b2i5YWQIDwga2lrZWlqaVwgOwor6ZaA5p+xIDwgbW9uY2h1dVwgOwor5Y2I5b6M5LitIDwgZ29nb2p1dVwgOwor6ImAIDwgaGFzaGlrZVwgOwor5Zuw56quIDwga29ua3l1dVwgOwor6KGo57SZIDwgaHlvdXNoaVwgOwor54OI5aWzIDwgcmV0c3Vqb1wgOwor6Kmt5byB5a62IDwga2liZW5rYVwgOwor6Kaq5ZaEIDwgc2hpbnplblwgOwor5ryr6KqtIDwgbWFuZG9rdVwgOwor6Zai5omAIDwgc2VraXNob1wgOwor57O45bqVIDwgaXRvem9rb1wgOwor5ryr6KmVIDwgbWFucHlvdVwgOwor6KaL5aKDIDwgbWlzYWthaVwgOwor6IGiIDwgc2hpa2F0b1wgOwor6IOD5rSX5rWEIDwgaXNlbmpvdVwgOwor5oqY6L68IDwgb3Jpa29taVwgOwor5LiN5ZCM5YyWIDwgZnVkb3VrYVwgOwor57+8IDwgdHN1YmFzYVwgOwor55Ww5pWZ5b6SIDwgaWt5b3V0b1wgOwor5o6I54i1IDwganVzaGFrdVwgOwor6Y+h6Z2iIDwga3lvdW1lblwgOwor5Zu6552AIDwga29jaGFrdVwgOwor5o6o5risIDwgc3Vpc29rdVwgOwor5Zu955uKIDwga29rdWVraVwgOwor5rmv5Yqg5ribIDwgeXVrYWdlblwgOwor57SE5a6aIDwgeWFrdWpvdVwgOwor6Z2e6Kqy56iOIDwgaGlrYXplaVwgOwor5ZKM5qW95ZmoIDwgd2FnYWtraVwgOwor57Wx5LiAIDwgdG91aXRzdVwgOwor6ZaL5ouTIDwga2FpdGFrdVwgOwor6KOc5q66IDwgaG9zYXRzdVwgOwor57O45bGRIDwgaXRva3V6dVwgOwor6YGV5rOV6ICFIDwgaWhvdXNoYVwgOwor5pKD5YmjIDwgZ2VraWtlblwgOwor5omB6aGNIDwgaGVuZ2FrdVwgOwor5ryU6KqsIDwgZW56ZXRzdVwgOwor5omA6aCYIDwgc2hvcnlvdVwgOwor56u56aasIDwgY2hpa3ViYVwgOwor5Zu955SjIDwga29rdXNhblwgOwor6KGA57iBIDwga2V0c3VlblwgOwor6KSH5pa5IDwgZnVrdWhvdVwgOwor57KX5pyrIDwgc29tYXRzdVwgOwor6Y6u6a2CIDwgY2hpbmdvblwgOwor6KSH5pWwIDwgZnVrdXN1dVwgOwor5pCN5b6XIDwgc29udG9rdVwgOwor5aCV5YqbIDwgZGFyeW9rdVwgOwor6Ly46YCB5qmfIDwgeXVzb3VraVwgOwor5LiO6YeO5YWaIDwgeW95YXRvdVwgOwor6KGA57OKIDwgY2hpbm9yaVwgOwor5byV54Gr54K5IDwgaW5rYXRlblwgOwor5ry46JC9IDwgemVucmFrdVwgOwor57KX5pa5IDwgYXJha2F0YVwgOwor57O45aerIDwgaXRvaGltZVwgOwor56+A576pIDwgc2V0c3VnaVwgOwor57695a2Q5p2/IDwgaGFnb2l0YVwgOwor562G6LmfIDwgaGlzc2VraVwgOwor6Z+z5rKZ5rGwIDwgb3Rvc2F0YVwgOwor56a+5pys56eRIDwga2Fob25rYVwgOwor5LiN5Y+v5YiGIDwgZnVrYWJ1blwgOwor57WC5YCkIDwgb3dhcmluZVwgOwor6KGA562LIDwgY2hpc3VqaVwgOwor5Z+O5aOBIDwgam91aGVraVwgOwor6byg5b6E6YOoIDwgc29rZWlidVwgOwor5Zyw5q67IDwgY2hpa2FrdVwgOwor562W6KyAIDwgc2FrdWJvdVwgOwor6J6N6YCaIDwgeXV1ZHp1dVwgOwor6ZaL5bmVIDwga2FpbWFrdVwgOwor5Zar6amaIDwgYmlra3VyaVwgOwor6ZaJ5bmVIDwgaGVpbWFrdVwgOwor6Y6W6aqoIDwgc2Frb3RzdVwgOwor5rqA6aGNIDwgbWFuZ2FrdVwgOwor6KGX552AIDwgbWFjaGlnaVwgOwor5Zyn5q66IDwgYXNzYXRzdVwgOwor6Y6u6Z2ZIDwgY2hpbnNlaVwgOwor54Sh5oqA5benIDwgbXVnaWtvdVwgOwor6J+L6J+AIDwga29vcm9naVwgOwor5oud6IG0IDwgaGFpY2hvdVwgOwor5r+B54K5IDwgZGFrdXRlblwgOwor6KCP57y2IDwga2FuaWthblwgOwor56SOIDwgaXNoaXp1ZVwgOwor6ZW35b6EIDwgY2hvdWtlaVwgOwor6YO96K2w5LyaIDwgdG9naWthaVwgOwor5o6o5pyNIDwgc3VpZnVrdVwgOwor6ZaR5a+CIDwga2FuamFrdVwgOwor57O+5ZWPIDwga3l1dW1vblwgOwor6KOP5pu4IDwgdXJhZ2FraVwgOwor5LqI5YKZ5qChIDwgeW9iaWtvdVwgOwor6ZW35bm8IDwgY2hvdXlvdVwgOwor5pC+5Y+WIDwgc2FrdXNodVwgOwor5aCF5Lq6IDwga2F0YWppblwgOwor5Zyf5qmLIDwgZG9iYXNoaVwgOwor6Kaz5LiW6Z+zIDwga2FuemVvblwgOwor5omL6L+RIDwgdGVkamlrYVwgOwor6KOP5pa5IDwgdXJha2F0YVwgOwor5Y2K6YGO5Y67IDwgaGFua2Frb1wgOwor5LiN5Y+C5YqgIDwgZnVzYW5rYVwgOwor5r+A5ribIDwgZ2VraWdlblwgOwor57KX5b+9IDwgc29rb3RzdVwgOwor57SN5YWlIDwgbm91bnl1dVwgOwor5oqA6KGTIDwgZ2lqdXRzdVwgOwor5oqV6JasIDwgdG91eWFrdVwgOwor5r+A5rWqIDwgZ2VraXJvdVwgOwor5oGj5oSP5oCnIDwgc2hpaXNlaVwgOwor5Zu95rOVIDwga29rdWhvdVwgOwor57KS5b6EIDwgcnl1dWtlaVwgOwor55SmIDwgeW9taWdhZVwgOwor5LuY5Yqg56iOIDwgZnVrYXplaVwgOwor5Zu95rCRIDwga29rdW1pblwgOwor57K+5aaZIDwgc2VpbXlvdVwgOwor5r+B5rC0IDwgZGFrdXN1aVwgOwor5pmC6KiI5bqnIDwgdG9rZWl6YVwgOwor5o6S5palIDwgaGFpc2VraVwgOwor6YOo5bGL5LujIDwgaGV5YWRhaVwgOwor5q+N6Z+z5oCnIDwgYm9pbnNlaVwgOwor6KGM54q2IDwgZ3lvdWpvdVwgOwor6J226LKdIDwgY2hvdWdhaVwgOwor5LiN5b6X5oSPIDwgZnV0b2t1aVwgOwor6KWf5YWDIDwgZXJpbW90b1wgOwor6Zu76Kmx5qmfIDwgZGVud2FraVwgOwor54Sh5ouF5L+dIDwgbXV0YW5wb1wgOwor5oe46ZqUIDwga2Vua2FrdVwgOwor6KOP5oqAIDwgdXJhd2F6YVwgOwor5Zyo5pa5IDwgemFpa2F0YVwgOwor56u56LyqIDwgY2hpa3V3YVwgOwor5o6S5pKDIDwgaGFpZ2VraVwgOwor5o6q6L6e5rOVIDwgc29qaWhvdVwgOwor5o6h5oqeIDwgc2FpdGFrdVwgOwor5YWr5Lmd5YiGIDwgaGFra3VidVwgOwor6J6f6JmrIDwgbWVpY2h1dVwgOwor54G95Y6EIDwgc2FpeWFrdVwgOwor5Zyf5pelIDwgZG9uaWNoaVwgOwor5qC55aSq5p2/IDwgbmVkYWl0YVwgOwor5oiQ6YqAIDwgbmFyaWdpblwgOwor54mcIDwgdXNoaWhlblwgOwor56+E55aHIDwgaGFuY2h1dVwgOwor54Gr5Yqg5ribIDwgaGlrYWdlblwgOwor5Lqc54eQ6YW4IDwgYXJpbnNhblwgOwor5pmC6KiI5bGLIDwgdG9rZWl5YVwgOwor5o6M5o+hIDwgc2hvdWFrdVwgOwor5oiQ6YeRIDwgbmFyaWtpblwgOwor5r2U55m9IDwga2VwcGFrdVwgOwor6Z2S5LqM5omNIDwgYW9uaXNhaVwgOwor5r2U55mWIDwga2VwcGVraVwgOwor5ryi57GNIDwga2Fuc2VraVwgOwor5Zyn5o6lIDwgYXNzZXRzdVwgOwor6YeO5pS+5ZuzIDwgbm9ob3V6dVwgOwor57KS5a2QIDwgcnl1dXNoaVwgOwor5omN6KaaIDwgc2Fpa2FrdVwgOwor54Gr5Y+jIDwgaGlndWNoaVwgOwor5omA6KyCIDwgaXdheXVydVwgOwor6ZaT5Y+jIDwgbWFndWNoaVwgOwor6Zaj5YaFIDwga2FrdW5haVwgOwor5bm85YWQ5pyfIDwgeW91amlraVwgOwor5rqA6LqrIDwgbWFuc2hpblwgOwor5oyJ5pGp6IaPIDwgYW5tYWtvdVwgOwor5rCX6Ium5Yq0IDwga2lndXJvdVwgOwor6KOP5bqtIDwgdXJhbml3YVwgOwor6KOP5bqXIDwgdXJhZGFuYVwgOwor5Zu95pyJIDwga29rdXl1dVwgOwor5pS/5bqc5qGIIDwgc2VpZnVhblwgOwor5Zu95pu4IDwga29rdXNob1wgOwor54Gr5YqbIDwga2FyeW9rdVwgOwor56uc6LuKIDwgcnl1dXNoYVwgOwor5LqI5YKZ5b25IDwgeW9iaWVraVwgOwor5oiR6LypIDwgd2FnYWhhaVwgOwor5rqA6LazIDwgbWFuem9rdVwgOwor6KGA5r2uIDwgY2hpc2hpb1wgOwor5ryG57W1IDwgdXJ1c2hpZVwgOwor6b236b2qIDwgYWt1c2VrdVwgOwor5Zyw5b+DIDwgY2hpc2hpblwgOwor56m66aasIDwga2FyYXVtYVwgOwor5Zu95paHIDwga29rdWJ1blwgOwor5Zu95pWZIDwga29ra3lvdVwgOwor5Zu95pS/IDwga29rdXNlaVwgOwor57Gz5a+pIDwgYmVpc2hpblwgOwor5Z2p5aCdIDwgcnV0c3Vib1wgOwor5LiN6YGT55CGIDwgZnVkb3VyaVwgOwor6YeR54Sh5Z6iIDwga2lubXVrdVwgOwor5Zuj5qCXIDwgZG9uZ3VyaVwgOwor5Zuz5pifIDwgenVib3NoaVwgOwor6KOP5bGxIDwgdXJheWFtYVwgOwor5oqY57SZIDwgb3JpZ2FtaVwgOwor6KGM5rC0IDwgZ3lvdXp1aVwgOwor57KJ5aOBIDwgZnVucGVraVwgOwor5YG96YCg5Y2wIDwgZ2l6b3VpblwgOwor56uL6LqrIDwgcmlzc2hpblwgOwor56u56KO9IDwgdGFrZXNlaVwgOwor54Sh5om55YikIDwgbXVoaWhhblwgOwor6KGA5rKIIDwga2V0Y2hpblwgOwor5omL6JSTIDwgdGVkenVydVwgOwor5q+uIDwgbXVzaGlydVwgOwor5Zuz5pu46LK7IDwgdG9zaG9oaVwgOwor54Gr5LuYIDwgaGl0c3VrZVwgOwor5bm46YGL5YWQIDwga291dW5qaVwgOwor5ZSQ6buNIDwgdG91a2liaVwgOwor5Zyw5bOhIDwgY2hpa3lvdVwgOwor5aGp5rC05rmWIDwgZW5zdWlrb1wgOwor5rWB5biD5pysIDwgcnVmdWJvblwgOwor56+J5rivIDwgY2hpa2tvdVwgOwor56m66ZqZIDwga3V1Z2VraVwgOwor5oqc56m0IDwgbnVrZWFuYVwgOwor5bGx6Iy26IqxIDwgc2F6YW5rYVwgOwor56e75rCR5rOVIDwgaW1pbmhvdVwgOwor56m66Zm4IDwga3V1cmlrdVwgOwor6ay855m+5ZCIIDwgb25peXVyaVwgOwor6ZaT5LitIDwgYWlkYWp1dVwgOwor5o6S5bC/IDwgaGFpbnlvdVwgOwor5Zu95omLIDwga29rdXNodVwgOwor6KGo5piOIDwgaHlvdW1laVwgOwor5aWI6Imv55yMIDwgbmFyYWtlblwgOwor5LiN5Yud5omLIDwgZnVrYXR0ZVwgOwor5Zue5pWZIDwga2Fpa3lvdVwgOwor5Zyw5a2mIDwgY2hpZ2FrdVwgOwor5ryB56SBIDwgZ3lvc2hvdVwgOwor6KGo5pWsIDwgaHlvdWtlaVwgOwor5r+A5oakIDwgZ2VraWZ1blwgOwor5r2k5rKiIDwganVudGFrdVwgOwor5oyv5pu/IDwgZnVyaWthZVwgOwor56+m5qOSIDwgYmVyYWJvdVwgOwor5oqV56WoIDwgdG91aHlvdVwgOwor5Zu95oOFIDwga29rdWpvdVwgOwor5Zyo5a6FIDwgemFpdGFrdVwgOwor5LiN5Yip55uKIDwgZnVyaWVraVwgOwor5Zyo5a2mIDwgemFpZ2FrdVwgOwor5biC5ZCP5ZOhIDwgc2hpcmlpblwgOwor5oSP6KaL5pu4IDwgaWtlbnNob1wgOwor5oWw6ZyK5aGUIDwgaXJlaXRvdVwgOwor56uL6Ki8IDwgcmlzc2hvdVwgOwor5qOXIDwgbmF0c3VtZVwgOwor5o6b5aOwIDwga2FrZWdvZVwgOwor5qK7IDwgc2hpa2ltaVwgOwor5oiR5Yip5YuJIDwgZ2FyaWJlblwgOwor6KGM5pyrIDwgeXVrdXN1ZVwgOwor6KGM5pu4IDwgZ3lvdXNob1wgOwor5ri+6LqrIDwga29uc2hpblwgOwor5Zuw5oORIDwga29ud2FrdVwgOwor6KGG5pybIDwgc2h1dWJvdVwgOwor5rib6YePIDwgZ2VucnlvdVwgOwor5puZIDwgYWtlYm9ub1wgOwor5pOs5a6d54+gIDwgZ2lib3NoaVwgOwor5aSn5ZKM57W1IDwgeWFtYXRvZVwgOwor6KGM5pWwIDwgZ3lvdXN1dVwgOwor5Zuz5byPIDwgenVzaGlraVwgOwor5bCP5YiH5omLIDwga29naXR0ZVwgOwor5ry/5rayIDwgc2hvdWVraVwgOwor5pmSIDwgc2FyYXNoaVwgOwor6Lui6Lev5ZmoIDwgdGVucm9raVwgOwor56mA6aGeIDwga29rdXJ1aVwgOwor5ryg54S2IDwgYmFrdXplblwgOwor56qB6YCyIDwgdG9zc2hpblwgOwor57Gz5Y+OIDwgYmVpc2h1dVwgOwor5peBIDwgdHN1a3VyaVwgOwor5Yik5LqL6KOcIDwgaGFuamlob1wgOwor5bGg6JiH5pWjIDwgdG9zb3NhblwgOwor56m/6YCaIDwgc2VudHN1dVwgOwor6KGo5oOFIDwgaHlvdWpvdVwgOwor5Zm05rWBIDwgZnVucnl1dVwgOwor56iu6aasIDwgdGFuZXVtYVwgOwor5reh6ZuqIDwgYXdheXVraVwgOwor5Y+C6K2w6ZmiIDwgc2FuZ2lpblwgOwor5o6l5Y+XIDwgc2V0c3VqdVwgOwor5oyo5ou2IDwgYWlzYXRzdVwgOwor5oyr5oqYIDwgemFzZXRzdVwgOwor5o6l5Y+OIDwgc2Vzc2h1dVwgOwor5omL57axIDwgdGFkenVuYVwgOwor5Zu95a++IDwga29rdXRhaVwgOwor5LqI5YKZ5ZOBIDwgeW9iaWhpblwgOwor5ryB542yIDwgZ3lva2FrdVwgOwor5omJ57W1IDwgdG9iaXJhZVwgOwor5ryB54yfIDwgZ3lvcnlvdVwgOwor5Zu95a6aIDwga29rdXRlaVwgOwor55CG5bel56eRIDwgcmlrb3VrYVwgOwor54Gr6JGs5aC0IDwga2Fzb3ViYVwgOwor5ZSH6Z+zIDwgc2hpbicnb25cIDsKK+WvkuWeoumboiA8IGthbmdvcmlcIDsKK+ihjOaIkCA8IGlraW5hcmlcIDsKK+a7keefsyA8IGthc3Nla2lcIDsKK+mYsuihm+iyuyA8IGJvdWVpaGlcIDsKK+WcsOWPoyA8IGppZ3VjaGlcIDsKK+aJi+eukiA8IHRlYm91a2lcIDsKK+WUkOmWgCA8IGthcmFtb25cIDsKK+mmrOWwj+WxiyA8IHVtYWdveWFcIDsKK+ernOiEsyA8IHJ5dXVub3VcIDsKK+WbveWkpyA8IGtva3VkYWlcIDsKK+exs+S/lyA8IGJlaXpva3VcIDsKK+WbveWkliA8IGtva3VnYWlcIDsKK+ijj+WBtCA8IHVyYWdhd2FcIDsKK+a/geWjsCA8IGRhbWlnb2VcIDsKK+exs+S9nCA8IGJlaXNha3VcIDsKK+S6iOWCmeWFtSA8IHlvYmloZWlcIDsKK+WUsemBkyA8IHNob3Vkb3VcIDsKK+WVj+iyrCA8IG1vbnNla2lcIDsKK+epuuiwtyA8IGt1dWtva3VcIDsKK+a/gOWilyA8IGdla2l6b3VcIDsKK+Wwj+mBk+WFtyA8IGtvZG91Z3VcIDsKK+err+e2sSA8IGhhZHp1bmFcIDsKK+a3semBoCA8IHNoaW4nJ2VuXCA7Civoo4/kvZwgPCB1cmFzYWt1XCA7Civoo4LlgrcgPCByZXNzaG91XCA7Civom67opZ8gPCBiYW5rYXJhXCA7CivluIzlhYPntKAgPCBraWdlbnNvXCA7CivmgLogPCBrb3JhZXJ1XCA7CivkuJbnlYzoqp4gPCBzZWthaWdvXCA7CivnsbPkuK0gPCBiZWljaHV1XCA7Civnq4vohbkgPCByaXBwdWt1XCA7CivnqI7poY0gPCB6ZWlnYWt1XCA7Civnq7/nq7kgPCBzYW9kYWtlXCA7Civmt6vpgLggPCBpbicnaXRzdVwgOwor5b6kIDwgdGFrZXNoaVwgOwor6K236KGb5YW1IDwgZ29laWhlaVwgOwor56m66Kq/IDwga3V1Y2hvdVwgOwor6Jmr6aGeIDwgY2h1dXJ1aVwgOwor5b2i6ICM5LiLIDwga2VpamlrYVwgOwor5o265Y2wIDwgbmF0c3VpblwgOwor6KGG5bq2IDwgc2h1dXNob1wgOwor56u556u/IDwgdGFrZXphb1wgOwor6Z2S6Zu76KmxIDwgYW9kZW53YVwgOwor5LqM5p6a55uuIDwgbmltYWltZVwgOwor5ZWP6Ki6IDwgbW9uc2hpblwgOwor5ouT5pysIDwgdGFrdWhvblwgOwor56mN6LyJIDwgc2VraXNhaVwgOwor56m66KWyIDwga3V1c2h1dVwgOwor5LuW5bqc55yMIDwgdGFmdWtlblwgOwor5L+d57ea5Yy6IDwgaG9zZW5rdVwgOwor5be9IDwgdGF0c3VtaVwgOwor5Zyo5L+XIDwgemFpem9rdVwgOwor5Ye656i95Y+kIDwgZGVnZWlrb1wgOwor56m66KGMIDwga3V1Z3lvdVwgOwor5Zyw5Li7IDwgamludXNoaVwgOwor5LiN5YW36ICFIDwgZnVndXNoYVwgOwor5Zyw5LitIDwgY2hpY2h1dVwgOwor5ryU566X5qmfIDwgZW56YW5raVwgOwor6YG65Lyd5rOVIDwgaWRlbmhvdVwgOwor5Zu95Y+3IDwga29rdWdvdVwgOwor6Yyv6KeSIDwgc2Fra2FrdVwgOwor5Zyo5LqsIDwgemFpa3lvdVwgOwor5ouN5pWwIDwgaGFrdXN1dVwgOwor6YG65a625pePIDwgaWthem9rdVwgOwor5bCP5Yip5Y+jIDwga29yaWtvdVwgOwor5Zyo5LitIDwgemFpY2h1dVwgOwor6KGo5ZyoIDwgaHlvdXphaVwgOwor5ru05rC0IDwgdGVraXN1aVwgOwor5omT546HIDwgZGFyaXRzdVwgOwor6Yuz6YCgIDwgY2h1dXpvdVwgOwor5Zub5Zu9IDwgc2hpa29rdVwgOwor5Zu95Yq0IDwga29rdXJvdVwgOwor5r+A5YuVIDwgZ2VraWRvdVwgOwor56uL57GzIDwgcnl1dWJlaVwgOwor562L5rOoIDwga2luY2h1dVwgOwor5r+A5YqxIDwgZ2VraXJlaVwgOwor5oqR5q2iIDwgeW9rdXNoaVwgOwor5ryi5pePIDwga2Fuem9rdVwgOwor56+A5bqmIDwgc2V0c3Vkb1wgOwor5aSp5rCX6YGLIDwgdGVua2l1blwgOwor5ryB5qWtIDwgZ3lvZ3lvdVwgOwor5ray6YePIDwgZWtpcnlvdVwgOwor5bqc6K2w5LyaIDwgZnVnaWthaVwgOwor6JuH6KCNIDwgZGFrYXRzdVwgOwor5Zu95YaFIDwga29rdW5haVwgOwor5Zu95YW4IDwga29rdXRlblwgOwor6J2L55+zIDwgcm91c2VraVwgOwor56uc56WeIDwgcnl1dWppblwgOwor5raI6ZiyIDwgc2hvdWJvdVwgOwor5rWB6bqXIDwgcnl1dXJlaVwgOwor56uv55qEIDwgdGFudGVraVwgOwor5rip6ImyIDwgb25zaG9rdVwgOwor5rqW55SoIDwganVuJyd5b3VcIDsKK+eptOiUtSA8IGFuYWd1cmFcIDsKK+aLjeaJiyA8IGhha3VzaHVcIDsKK+aJi+eHrSA8IHRlc2hva3VcIDsKK+WjrCA8IG1penVub2VcIDsKK+atoumfs+WZqCA8IHNoaW9ua2lcIDsKK+WQiOawl+S8miA8IGFpa2lrYWlcIDsKK+mGjemGkOWRsyA8IGRhaWdvbWlcIDsKK+euseW4qyA8IGhha29zaGlcIDsKK+ihqOWPtyA8IGh5b3Vnb3VcIDsKK+m7hOm6uyA8IHRzdW5hc29cIDsKK+iZq+mFuCA8IG11c2hpenVcIDsKK+a6gOebriA8IG1hbm1va3VcIDsKK+aLneW+qSA8IGhhaWZ1a3VcIDsKK+mQmOalvCA8IHNob3Vyb3VcIDsKK+eri+eniyA8IHJpc3NodXVcIDsKK+eni+miqCA8IHNodXVmdXVcIDsKK+aKvOaNuiA8IG91bmF0c3VcIDsKK+aEj+Wbs+eahCA8IGl0b3Rla2lcIDsKK+a1pumiqCA8IHVyYWthemVcIDsKK+epuuiMtiA8IGthcmFjaGFcIDsKK+ernOecvCA8IHJ5dXVnYW5cIDsKK+a1t+mZuCA8IGthaXJpa3VcIDsKK+WcsOejgeawlyA8IGNoaWppa2lcIDsKK+eojui+vCA8IHplaWtvbWlcIDsKK+eUn+aEj+awlyA8IG5hbWFpa2lcIDsKK+m7kumvmyA8IGt1cm9kYWlcIDsKK+epuuiJsiA8IHNvcmFpcm9cIDsKK+Wbm+asoeWFgyA8IHlvamlnZW5cIDsKK+aMmeWbvSA8IGt5b2tva3VcIDsKK+ihsOWFhiA8IHN1aWNob3VcIDsKK+WbveS4rSA8IGt1bmlqdXVcIDsKK+eni+mcnCA8IHNodXVzb3VcIDsKK+WWieesmyA8IG5vZG9idWVcIDsKK+eni+mcliA8IHNodXVyaW5cIDsKK+W+oeebrueOiSA8IG9tZWRhbWFcIDsKK+ihjOWVkyA8IGd5b3VrZWlcIDsKK+WajyA8IGt1c2hhbWlcIDsKK+eni+mbqCA8IGFraXNhbWVcIDsKK+epuuiFuSA8IGt1dWZ1a3VcIDsKK+aMv+WFpSA8IHNvdW55dXVcIDsKK+WSjOmjnyA8IHdhc2hva3VcIDsKK+aKnOaToiA8IGJhdHRla2lcIDsKK+mNteeptCA8IGthZ2lhbmFcIDsKK+ifu+W3uyA8IGFyaW1ha2lcIDsKK+aMh+WcpyA8IHNoaWF0c3VcIDsKK+aKleaTsiA8IHRvdXRla2lcIDsKK+WFrOaWh+aJgCA8IGt1bW9uam9cIDsKK+aMh+WbsyA8IHNhc2hpenVcIDsKK+W+oeW6p+aJgCA8IGdvemFzaG9cIDsKK+a6uuawtCA8IGRla2lzdWlcIDsKK+Wkp+mLuOWxkSA8IG9nYWt1enVcIDsKK+evieWcsCA8IHRzdWtpamlcIDsKK+eUmOa1t+iLlCA8IGFtYW5vcmlcIDsKK+W7uuitsOahiCA8IGtlbmdpYW5cIDsKK+idi+eHrSA8IHJvdXNva3VcIDsKK+a6uuatuyA8IGRla2lzaGlcIDsKK+eigeS8muaJgCA8IGdva2Fpam9cIDsKK+aLmeWuhSA8IHNldHRha3VcIDsKK+aJi+ayoiA8IHNodXRha3VcIDsKK+aKkeaPmiA8IHlva3V5b3VcIDsKK+esiuazlSA8IHphcnVob3VcIDsKK+aHh+evpCA8IGtvbnRva3VcIDsKK+WUkOiWryA8IGthcmFpbW9cIDsKK+eojuiqvyA8IHplaWNob3VcIDsKK+iYremLsyA8IHJhbmNodXVcIDsKK+aLoeWkpyA8IGtha3VkYWlcIDsKK+mYsueBq+aIuCA8IGJvdWthZG9cIDsKK+mKhemQuCA8IGRvdXRha3VcIDsKK+eZu+WxseWutiA8IHRvemFua2FcIDsKK+eCiuS6i+WgtCA8IHN1aWppYmFcIDsKK+aIkOeGnyA8IHNlaWp1a3VcIDsKK+a6nOaxoCA8IHRhbWVpa2VcIDsKK+a1pumHjCA8IHVyYXphdG9cIDsKK+iLseaWh+enkSA8IGVpYnVua2FcIDsKK+a5r+eGqCA8IHl1bm9zaGlcIDsKK+WWq+eFmSA8IGtpdHN1ZW5cIDsKK+a6gOa9riA8IG1hbmNob3VcIDsKK+Wah+WahyA8IGtha2tha3VcIDsKK+aLk+WkpyA8IHRha3VkYWlcIDsKK+a6kOa1gSA8IGdlbnJ5dXVcIDsKK+epjuiEsSA8IGVpZGF0c3VcIDsKK+eqgeerryA8IHRvcHBhbmFcIDsKK+mFuOaAp+mbqCA8IHNhbnNlaXVcIDsKK+m7hOmbgCA8IGtvdWpha3VcIDsKK+WWgOeXsCA8IGtha3V0YW5cIDsKK+m8u+ihgCA8IGhhbmFkamlcIDsKK+mMr+e2nCA8IHNha3Vzb3VcIDsKK+ihk+S4rSA8IGp1dGNodXVcIDsKK+a0vueUn+iqniA8IGhhc2VpZ29cIDsKK+a0vumWpSA8IGhhYmF0c3VcIDsKK+mBuuS8neaApyA8IGlkZW5zZWlcIDsKK+WMu+eZguiyuyA8IGlyeW91aGlcIDsKK+Wkp+ellueItiA8IGRhaXNvZnVcIDsKK+m6u+mbgCA8IG1hemVqYW5cIDsKK+evhuWIuyA8IHRlbmtva3VcIDsKK+i7jeiNvOWIqSA8IGd1bmRhcmlcIDsKK+aIr+atjCA8IHphcmV1dGFcIDsKK+WUkOiHvCA8IGthcmF1c3VcIDsKK+a6gOa0siA8IG1hbnNodXVcIDsKK+a5vua1gSA8IHdhbnJ5dXVcIDsKK+WWhOeOiSA8IHplbmRhbWFcIDsKK+engemAmiA8IHNoaXRzdXVcIDsKK+eoruiLlyA8IHNodWJ5b3VcIDsKK+eZveS6nOe0gCA8IGhha3Vha2lcIDsKK+S4vCA8IGRvbmJ1cmlcIDsKK+a1t+iziiA8IGthaXpva3VcIDsKK+eoruiKiyA8IHRhbmVpbW9cIDsKK+aIpuattCA8IHNlbnJla2lcIDsKK+mojummrOaIpiA8IGtpYmFzZW5cIDsKK+ebruS4gOadryA8IG1laXBwYWlcIDsKK+aMh+WApCA8IHNhc2hpbmVcIDsKK+iomOS6i+aWhyA8IGtpamlidW5cIDsKK+a1t+ixoSA8IHNlaXVjaGlcIDsKK+aKvOWjsiA8IG9zaGl1cmlcIDsKK+WTgeiplSA8IGhpbnB5b3VcIDsKK+aDqOmFtyA8IHphbmtva3VcIDsKK+WSjOWkqum8kyA8IHdhZGFpa29cIDsKK+aCqumjnyA8IGFrdWppa2lcIDsKK+ibrueahCA8IGJhbnRla2lcIDsKK+S6iOWumuahiCA8IHlvdGVpYW5cIDsKK+elnumrhCA8IHNoaW56dWlcIDsKK+iYh+mJhCA8IHNvdGV0c3VcIDsKK+ifhOWxhSA8IGNoaWtreW9cIDsKK+aEmuiqrCA8IGd1c2V0c3VcIDsKK+aHuOa/gSA8IGtlbmRha3VcIDsKK+a6neadvyA8IGRvYnVpdGFcIDsKK+espuWPt+WZqCA8IGZ1Z291a2lcIDsKK+WaouS4rSA8IG5vdWNodXVcIDsKK+abuOiomOijnCA8IHNob2tpaG9cIDsKK+enmOiooyA8IGhpa2V0c3VcIDsKK+epuueZvSA8IGt1dWhha3VcIDsKK+W/nOaPtOWboyA8IG91ZW5kYW5cIDsKK+mBuuS8neWtkCA8IGlkZW5zaGlcIDsKK+mZpOiNieWZqCA8IGpvc291a2lcIDsKK+iZueiJsiA8IG5pamlpcm9cIDsKK+etluWumiA8IHNha3V0ZWlcIDsKK+a1gemAoyA8IHJ5dXVyZW5cIDsKK+epjeeulyA8IHNla2lzYW5cIDsKK+S6iOWumuaXpSA8IHlvdGVpYmlcIDsKK+aCqumYuyA8IHRzdXdhcmlcIDsKK+aIr+absiA8IGdpa3lva3VcIDsKK+S/neaMgeiAhSA8IGhvamlzaGFcIDsKK+aLoeWFhSA8IGtha3VqdXVcIDsKK+epgOeyiSA8IGtva3VmdW5cIDsKK+WUkOezuCA8IGthcmFpdG9cIDsKK+mJhOmOmiA8IHRldHRzdWlcIDsKK+epuueTtiA8IGthcmFiaW5cIDsKK+WNmOS9jeWFgyA8IHRhbmlnZW5cIDsKK+aEj+WcsOaCqiA8IGlqaXdhcnVcIDsKK+a6gOagqiA8IG1hbmthYnVcIDsKK+enmOihkyA8IGhpanV0c3VcIDsKK+ibi+eZvSA8IHRhbnBha3VcIDsKK+S4iuWHuuadpSA8IGpvdWRla2lcIDsKK+WRqOmBiiA8IHNodXV5dXVcIDsKK+espuWPt+WMliA8IGZ1Z291a2FcIDsKK+a7heW6piA8IG1ldHN1ZG9cIDsKK+a6gOabtCA8IG1hbnphcmFcIDsKK+WRqOi+uiA8IHNodXVoZW5cIDsKK+aIkOahgiA8IG5hcmlrZWlcIDsKK+a1t+ibhyA8IHVtaWhlYmlcIDsKK+a0u+i3ryA8IGthdHN1cm9cIDsKK+m7kuiygiA8IGt1cm90ZW5cIDsKK+S4jeebuOW/nCA8IGZ1c291b3VcIDsKK+mKreiRtSA8IHplbmlhb2lcIDsKK+iLseiqnueJiCA8IGVpZ29iYW5cIDsKK+mHjeeBq+WZqCA8IGp1dWtha2lcIDsKK+azoumfsyA8IG5hbWlvdG9cIDsKK+aRqeWIqeaUryA8IG1hcmlzaGlcIDsKK+eonOe3miA8IHJ5b3VzZW5cIDsKK+eVsOerr+imliA8IGl0YW5zaGlcIDsKK+aJjeW+syA8IHNhaXRva3VcIDsKK+eri+ahiCA8IHJpdHN1YW5cIDsKK+m7meiqjSA8IG1va3VuaW5cIDsKK+epuueIhiA8IGt1dWJha3VcIDsKK+WQhOmnhSA8IGtha3Vla2lcIDsKK+aKvOWFpSA8IG9zaGlpcmVcIDsKK+a3t+eUqCA8IGtvbicneW91XCA7CivmuKbmva4gPCB1enVzaGlvXCA7CivokazlhIDlsYsgPCBzb3VnaXlhXCA7CivpoIXkvY3nva4gPCBrb3VpY2hpXCA7Civph6PprZogPCBjaG91Z3lvXCA7CivmiJHmlrkgPCB3YWdhaG91XCA7CivnqbTnhoogPCBhbmFndW1hXCA7CivmiYDlvpcgPCBzaG90b2t1XCA7CivljLvluKvms5UgPCBpc2hpaG91XCA7Civmupzmga8gPCB0YW1laWtpXCA7Civmga3poIYgPCBreW91anVuXCA7CivmvI/liLsgPCByb3Vrb2t1XCA7CivokaHokITlnJIgPCBidWRvdWVuXCA7CivolqnplbcgPCBzYXRjaG91XCA7CivmtYHoqIAgPCByeXV1Z2VuXCA7Civmi4Xku7sgPCB0YW4nJ25pblwgOwor56uL5pilIDwgcmlzc2h1blwgOwor56qv5qWtIDwgeW91Z3lvdVwgOwor5oqc5Y67IDwgYmFra3lvdVwgOwor5rip5rW0IDwgb24nJ3lva3VcIDsKK+emgei2syA8IGtpbnNva3VcIDsKK+a6luaApSA8IGp1bmt5dXVcIDsKK+WQg+mfsyA8IGtpdHN1b25cIDsKK+mJhOi3ryA8IHRldHN1cm9cIDsKK+S6lOaWl+exsyA8IGdvdG9iZWlcIDsKK+ekvumVtyA8IHNoYWNob3VcIDsKK+WQhOmdoiA8IGtha3VtZW5cIDsKK+m7kuihgCA8IGt1cm9jaGlcIDsKK+a2iOiAlyA8IHNob3Vtb3VcIDsKK+ero+aIkCA8IHNodW5zZWlcIDsKK+m7kuifuyA8IGt1cm9hcmlcIDsKK+WPr+aEm+awlyA8IGthd2FpZ2VcIDsKK+a1geihjCA8IHJ5dXVrb3VcIDsKK+eqkuatuyA8IGNoaXNzaGlcIDsKK+mHkemrmCA8IGtpbmRha2FcIDsKK+S6lOe3muitnCA8IGdvc2VuZnVcIDsKK+WQhOmajiA8IGtha3VrYWlcIDsKK+eni+iNiSA8IGFraWt1c2FcIDsKK+aJjeWtpiA8IHNhaWdha3VcIDsKK+W+oeW6nOWGhSA8IGdvZnVuYWlcIDsKK+WtkOmmrOW6pyA8IGtvdW1hemFcIDsKK+aEieiJsiA8IHl1c2hva3VcIDsKK+Wwj+iKpeWtkCA8IGtva2VzaGlcIDsKK+a4hea/gSA8IHNlaWRha3VcIDsKK+WRqOimpyA8IHNodXVyYW5cIDsKK+aBkua4qeWZqCA8IGtvdW9ua2lcIDsKK+aJgOWxniA8IHNob3pva3VcIDsKK+aIpuW9uSA8IHNlbicnZWtpXCA7Civnn6XmgbXogIUgPCBjaGllc2hhXCA7CivoloTpm7IgPCB1c3VndW1vXCA7CivoloTpm6ogPCB1c3V5dWtpXCA7CivnpZ3ovp4gPCBzaHVrdWppXCA7CivmipHliLYgPCB5b2t1c2VpXCA7CivmgYvpoqggPCBrb2lrYXplXCA7CivnpZ7ovL8gPCBtaWtvc2hpXCA7CivpgbrotIjliIYgPCBpem91YnVuXCA7Civpub/ov70gPCBzaGlrYW9pXCA7CivnpZbov7AgPCBzb2p1dHN1XCA7CivmiIrmiIwgPCBib2p1dHN1XCA7CivolqzphZIgPCB5YWt1c2h1XCA7CivlkarooZMgPCBqdWp1dHN1XCA7Civlj6TpoZQgPCBmdXJ1Z2FvXCA7CivlpKrliIDprZogPCB0YWNoaXVvXCA7CivmiYvlprsgPCB0ZWR6dW1hXCA7Civmt7fmv4EgPCBrb25kYWt1XCA7CivliqnmvJTogIUgPCBqb2Vuc2hhXCA7Civph5HpoY0gPCBraW5nYWt1XCA7Civku6PnkIbpg6ggPCBkYWlyaWJ1XCA7Civmg6jokL0gPCBzYW5yYWt1XCA7CivomIrok4QgPCB1bmNoaWt1XCA7CivpioDoibIgPCBnaW4nJ2lyb1wgOwor6bqm6KeSIDwgYmFra2FrdVwgOwor5Y+w6ZajIDwgZGFpa2FrdVwgOwor5rqA5bitIDwgbWFuc2VraVwgOwor56e75YuV5L2TIDwgaWRvdXRhaVwgOwor6YGL5YuV6LK7IDwgdW5kb3VoaVwgOwor5aSp6bWd57WoIDwgYmlyb3Vkb1wgOwor5LiA6YW45YyWIDwgaXNzYW5rYVwgOwor56Wd6LOAIDwgc2h1a3VnYVwgOwor5oKq6KmVIDwgYWt1aHlvdVwgOwor5oKq6KizIDwgYWt1eWFrdVwgOwor6JWq6ZuRIDwgYnV6YXRzdVwgOwor6buS6Iy2IDwga3Vyb2NoYVwgOwor56iO55uuIDwgemVpbW9rdVwgOwor6YGg6Led6ZuiIDwgZW5reW9yaVwgOwor5L2Q6LOA55yMIDwgc2FnYWtlblwgOwor56S66YGUIDwgaml0YXRzdVwgOwor6JmO56m0IDwga29rZXRzdVwgOwor6auY6Z+z6YOoIDwga291b25idVwgOwor6Y6u5a6aIDwgY2hpbnRlaVwgOwor55Ww56uv6ICFIDwgaXRhbnNoYVwgOwor562S5LqVIDwgdHN1dHN1aVwgOwor5ZOy55CGIDwgdGV0c3VyaVwgOwor6YiN6LazIDwgZG9uc29rdVwgOwor56m65qG2IDwga2FyYW9rZVwgOwor6JaE6YiNIDwgdXN1bm9yb1wgOwor5oey5oKqIDwgY2hvdWFrdVwgOwor56m65qCqIDwga3V1a2FidVwgOwor6Juu5pePIDwgYmFuem9rdVwgOwor56yb5ZC5IDwgZnVlZnVraVwgOwor5oSf5YyW6ZmiIDwga2Fua2FpblwgOwor56uc5a6uIDwgcnl1dWd1dVwgOwor56Wd6KiAIDwgc2h1dWdlblwgOwor5oGl6L6xIDwgY2hpam9rdVwgOwor5LiN5qmf5auMIDwgZnVraWdlblwgOwor6YOo5aSW56eYIDwgYnVnYWloaVwgOwor5ZaE5oKqIDwgemVuJydha3VcIDsKK+mHjemOriA8IGp1dWNoaW5cIDsKK+iWhOmBhyA8IGhha3VndXVcIDsKK+S6nOeGseW4ryA8IGFuZXR0YWlcIDsKK+aJi+WPoyA8IHRlZ3VjaGlcIDsKK+ayiOmZjSA8IGNoaW5rb3VcIDsKK+WWhOW+syA8IHplbnRva3VcIDsKK+a3q+assiA8IGluJyd5b2t1XCA7CivpioDntJkgPCBnaW5nYW1pXCA7Civlr4zlo6vlsbEgPCBmdWppc2FuXCA7CivpiLTomK0gPCBzdXp1cmFuXCA7CivmiKbln58gPCBzZW4nJ2lraVwgOwor5ZCf6KqmIDwgZ2luc2hvdVwgOwor5oyH5o+u5omAIDwgc2hpa2lqb1wgOwor5ZOB55uuIDwgaGlubW9rdVwgOwor6Yac6aGeIDwgc2h1dXJ1aVwgOwor55Sf6Yak5rK5IDwga2lqb3V5dVwgOwor6YqF566UIDwgZG91aGFrdVwgOwor5oim5Zu9IDwgc2VuZ29rdVwgOwor5oSb552AIDwgYWljaGFrdVwgOwor5rWE55Gg55KDIDwgam91cnVyaVwgOwor6KOc5L2Q5a6YIDwgaG9zYWthblwgOwor6YiN6KeSIDwgZG9ua2FrdVwgOwor6bqm6Iy2IDwgbXVnaWNoYVwgOwor6buS57eaIDwga29rdXNlblwgOwor6YGO5Y675b2iIDwga2Frb2tlaVwgOwor6I2J5Luu5ZCNIDwgc291Z2FuYVwgOwor5oSa55u0IDwgZ3VjaG9rdVwgOwor6YqA566UIDwgZ2lucGFrdVwgOwor6Jek6ImyIDwgZnVqaWlyb1wgOwor5oi45Y+jIDwgdG9ndWNoaVwgOwor56m65o+aIDwga2FyYWFnZVwgOwor6YqA56ybIDwgZ2ludGVraVwgOwor5b6h5qmf5auMIDwgZ29raWdlblwgOwor56ys5LiAIDwgZGFpaWNoaVwgOwor6YeO6YGTIDwgbm9taWNoaVwgOwor5ZSQ5q2MIDwga2FyYXV0YVwgOwor5ZCM6Kq/IDwgZG91Y2hvdVwgOwor5LiN5bGl6KGMIDwgZnVyaWtvdVwgOwor5ZCI6Kq/IDwgZ291Y2hvdVwgOwor5Y+j6LyqIDwga3VjaGl3YVwgOwor5b+g6a2CIDwgY2h1dWtvblwgOwor5ZCE6KuWIDwga2FrdXJvblwgOwor5ZCI6KmVIDwgZ2FwcHlvdVwgOwor5Y+Z6L+wIDwgam9qdXRzdVwgOwor56uL5aC0IDwgdGFjaGliYVwgOwor5ZSQ5qeYIDwga2FyYXlvdVwgOwor6Zi/5byX5Yip5YqgIDwgYWZ1cmlrYVwgOwor6bq757iEIDwgYXNhbmF3YVwgOwor6ba66bSSIDwgc2VraXJlaVwgOwor5oKq6IetIDwgYWt1c2h1dVwgOwor5pOs5Lq65YyWIDwgZ2lqaW5rYVwgOwor56mN5pyoIDwgdHN1bWlraVwgOwor5rqW5YmHIDwganVuc29rdVwgOwor6Y6u5Y+wIDwgY2hpbmRhaVwgOwor5YiG5bqm5ZmoIDwgYnVuZG9raVwgOwor5rKI6YWUIDwgY2hpbnN1aVwgOwor6buZ56W3IDwgbW9rdXRvdVwgOwor6YeR6LWkIDwga2luJydha2FcIDsKK+eri+WbvSA8IHJpa2tva3VcIDsKK+aJi+S4rSA8IHNodWNodXVcIDsKK+aJi+S4iyA8IHRlc2hpdGFcIDsKK+WPjui8iSA8IHNodXVzYWlcIDsKK+WHuuebrumHkSA8IGRlbWVraW5cIDsKK+WknOaxvei7iiA8IHlvZ2lzaGFcIDsKK+a6gOWNkyA8IG1hbnRha3VcIDsKK+W3pua0vuezuyA8IHNhaGFrZWlcIDsKK+a4puW3uyA8IHV6dW1ha2lcIDsKK+a1t+eMqyA8IHVtaW5la29cIDsKK+aEmueJqSA8IGd1YnV0c3VcIDsKK+mHjeiyrCA8IGp1dXNla2lcIDsKK+m8u+axlyA8IGhhbmFhc2VcIDsKK+aApemAgSA8IGt5dXVzb3VcIDsKK+WWhOWlsyA8IHplbicnbnlvXCA7CivpiZvnrYYgPCBlbnBpdHN1XCA7CivmiJLlkI0gPCBrYWlteW91XCA7CivljoTpm6MgPCB5YWt1bmFuXCA7CivmtbfniZsgPCBrYWlneXV1XCA7CivolqzojqIgPCB5YWtreW91XCA7CivpvLvmrYwgPCBoYW5hdXRhXCA7CivmhpHmi6AgPCBoeW91a3lvXCA7CivpiYTntKIgPCB0ZXNzYWt1XCA7Civlj43otoogPCBoYW5ldHN1XCA7CivlkLnogbQgPCBmdWljaG91XCA7Civmua/lj6MgPCB5dWd1Y2hpXCA7Civlj6ToqqwgPCBrb3NldHN1XCA7CivmsLTpo7QgPCBtaXp1YW1lXCA7CivljbPpoYwgPCBzb2t1ZGFpXCA7Civlj6PoqqwgPCBrdXpldHN1XCA7CivoqZDmrLrnvaogPCBzYWdpemFpXCA7CivnqK7mnb8gPCB0YW5laXRhXCA7CivomavmsJcgPCBtdXNoaWtlXCA7CivnqbrluK0gPCBrdXVzZWtpXCA7CivmuKzlrpogPCBzb2t1dGVpXCA7CivppYLpo6nlsYsgPCB1ZG9uJyd5YVwgOwor5rm+5YaFIDwgd2FuJyduYWlcIDsKK+aEleeEtiA8IGdha3V6ZW5cIDsKK+eoruacrCA8IHRhbmVob25cIDsKK+WPjuizhCA8IHNodXV3YWlcIDsKK+WkouaDs+WutiA8IG11c291a2FcIDsKK+iomOitnOazlSA8IGtpZnVob3VcIDsKK+S4gOatu+W+jCA8IGlzc2hpZ29cIDsKK+mHjeiosyA8IGp1dXlha3VcIDsKK+mIjeiJsiA8IG5pYmlpcm9cIDsKK+a3seaFriA8IHNoaW5yeW9cIDsKK+mdnuihm+eUnyA8IGhpZWlzZWlcIDsKK+eoruaXjyA8IHNodXpva3VcIDsKK+mHjOimqiA8IHNhdG9veWFcIDsKK+m7kueXoyA8IGt1cm9hemFcIDsKK+mGi+mFuCA8IHNha3VzYW5cIDsKK+m6puesmyA8IG11Z2lidWVcIDsKK+WQm+iHoyA8IGt1bnNoaW5cIDsKK+a0nueptCA8IGhvcmFhbmFcIDsKK+iqpOaKleS4iyA8IGdvdG91a2FcIDsKK+a1uOa9pCA8IHNoaW5qdW5cIDsKK+WPpOihgCA8IGZ1cnVjaGlcIDsKK+aGguaImiA8IHl1dXNla2lcIDsKK+WQq+e+niA8IGdhbnNodXVcIDsKK+epuuWwhiA8IGt1dXNob3VcIDsKK+awtOmZuCA8IHN1aXJpa3VcIDsKK+S4jeiHqueUsSA8IGZ1aml5dXVcIDsKK+a1geeUqCA8IHJ5dXV5b3VcIDsKK+a6gOS6hiA8IG1hbnJ5b3VcIDsKK+a1geeUoyA8IHJ5dXV6YW5cIDsKK+epjeaCqiA8IHNla2lha3VcIDsKK+mJm+ebtCA8IGVuY2hva3VcIDsKK+OAgyA8IG9uYWppa3VcIDsKK+aCquetliA8IGFrdXNha3VcIDsKK+m6pueniyA8IG11Z2lha2lcIDsKK+mHkeiejSA8IGtpbicneXV1XCA7Civoi7HmlbDlrZcgPCBlaXN1dWppXCA7Civlv4XpnIAgPCBoaXRzdWp1XCA7CivnpZ7ntYwgPCBzaGlua2VpXCA7Civlj43opoYgPCBoYW5wdWt1XCA7CivnqoHlpoIgPCB0b3RzdWpvXCA7CivmtrLmmbYgPCBla2lzaG91XCA7CivlkIzohbkgPCBkb3VmdWt1XCA7CivnqY3lvIogPCBzZWtpaGVpXCA7CivomZrmpa0gPCBreW9neW91XCA7Civmsrnoj5wgPCBhYnVyYW5hXCA7CivljYrpoY0gPCBoYW5nYWt1XCA7CivmsbrorbAgPCBrZXRzdWdpXCA7CivpiYTnn7MgPCB0ZXNzZWtpXCA7Civlv6vpgakgPCBrYWl0ZWtpXCA7CivphbfpgYcgPCBrb2t1Z3V1XCA7Civpu5nnhLYgPCBtb2t1bmVuXCA7CivpharphbggPCByYWt1c2FuXCA7Civph4nolqwgPCB5dXV5YWt1XCA7CivlkYrnn6UgPCBrb2t1Y2hpXCA7Civnn6Xmg4XmhI8gPCBjaGlqb3VpXCA7CivpoqjlkYLmobYgPCBmdXJvb2tlXCA7CivmgYvojYkgPCBrb2lndXNhXCA7Civmtabms6IgPCB1cmFuYW1pXCA7CivolqznsaAgPCB5YWt1cm91XCA7Civoi7Hoqp7lnI8gPCBlaWdva2VuXCA7CivnqbrlnKcgPCBrdXVhdHN1XCA7CivkvY7pn7Ppg6ggPCB0ZWlvbmJ1XCA7Civnp4vmsLQgPCBzaHV1c3VpXCA7Civlj7PohZUgPCBtaWdpdWRlXCA7Civlj6PojLYgPCBrdWNoaWphXCA7CivlvpLpo58gPCB0b3Nob2t1XCA7CivpharovrIgPCByYWt1bm91XCA7CivoloTogokgPCB1c3VuaWt1XCA7CivljJfprq4gPCBob2t1c2VuXCA7Civpu4Tnhp8gPCBrb3VqdWt1XCA7CivkuozmnJ/liLYgPCBuaWtpc2VpXCA7Civlj47olLUgPCBzaHV1em91XCA7CivmtbTmp70gPCB5b2t1c291XCA7Civph5HoibIgPCBrb25qaWtpXCA7Civmk6zlo7Doqp4gPCBnaXNlaWdvXCA7Civljp/oqLsgPCBnZW5jaHV1XCA7Civmgqrnl4cgPCBha3VzaG91XCA7Civmgqrnl4UgPCBha3VieW91XCA7CivljJbpqqggPCBrYWtvdHN1XCA7Civph4zoiosgPCBzYXRvaW1vXCA7Civlj43okL0gPCBoYW5yYWt1XCA7Civlv4PphY0gPCBzaGlucGFpXCA7CivmsLfovKogPCBoeW91cmluXCA7CivmhJ/mnI0gPCBrYW5wdWt1XCA7Civmr5LprZogPCBkb2t1Z3lvXCA7Civnp4HmrLIgPCBzaGl5b2t1XCA7Civpub/noKYgPCByb2t1c2FpXCA7CivnlKjli5nlk6EgPCB5b3VtdWluXCA7Civnqq7kuY8gPCBreXV1Ym91XCA7Civmt7HlpJwgPCBzaGluJyd5YVwgOwor56K66KqNIDwga2FrdW5pblwgOwor5rib5Y+OIDwgZ2Vuc2h1dVwgOwor6Jas56S8IDwgeWFrdXJlaVwgOwor6Yyo5ZywIDwgYnlvdWNoaVwgOwor6JaE57iBIDwgdXN1YmVyaVwgOwor5b6h6Ium5Yq0IDwgZ29rdXJvdVwgOwor5pyq55m76KiYIDwgbWl0b3VraVwgOwor57Ch5piT5YyWIDwga2FuJydpa2FcIDsKK+iWhOe1uSA8IHVzdWdpbnVcIDsKK+W/q+irviA8IGthaWRha3VcIDsKK+WMl+miqCA8IGhva3VmdXVcIDsKK+S4gOmBjuaApyA8IGlra2FzZWlcIDsKK+mHjeiBtCA8IGp1dWNob3VcIDsKK+mKmOafhCA8IG1laWdhcmFcIDsKK+aCqueOiSA8IGFrdWRhbWFcIDsKK+enmOabsiA8IGhpa3lva3VcIDsKK+iWhOe0mSA8IHVzdWdhbWlcIDsKK+iWhOe0hSA8IHVzdWJlbmlcIDsKK+mBi+mAgeiyuyA8IHVuc291aGlcIDsKK+a4i+WRsyA8IHNoaWJ1bWlcIDsKK+WNl+mAsiA8IG5hbnNoaW5cIDsKK+WMu+W4q+S8miA8IGlzaGlrYWlcIDsKK+mKmOacqCA8IG1laWJva3VcIDsKK+WQjeensCA8IG1laXNob3VcIDsKK+a1geaxlyA8IHJ5dXVrYW5cIDsKK+WMl+mdoiA8IGhva3VtZW5cIDsKK+aCieeahiA8IHNoaWtrYWlcIDsKK+a1geawtCA8IHJ5dXVzdWlcIDsKK+iHquWPmeS8nSA8IGppam9kZW5cIDsKK+eqgeWFiCA8IHRvc3Nha2lcIDsKK+a0u+azgSA8IGtha2t5b3VcIDsKK+mHiOe+qSA8IHNoYWt1Z2lcIDsKK+Wkqeawl+WxiyA8IHRlbmtpeWFcIDsKK+mbo+aYk+W6piA8IG5hbicnaWRvXCA7CivlkInnpaUgPCBraXNzaG91XCA7CivnoavphbggPCByeXV1c2FuXCA7CivlvLHpvaIgPCBqYWt1cmVpXCA7Civms6Hnm5sgPCBhd2Ftb3JpXCA7CivljJfpmZAgPCBob2t1Z2VuXCA7Civnp4vmmbQgPCBha2liYXJlXCA7CivnqbTlh7kgPCBhbmFib2tvXCA7Civph5HntrIgPCBrYW5hYW1pXCA7Civlj7fnrJsgPCBnb3V0ZWtpXCA7Civom4flj6MgPCBqYWd1Y2hpXCA7Civmt5HlpbMgPCBzaHVrdWpvXCA7Civlj4znv7wgPCBzb3V5b2t1XCA7Civku67mlbDpg6ggPCBrYXN1dWJ1XCA7CivljYrovrIgPCBoYW4nJ25vdVwgOwor6YiN55ebIDwgZG9udHN1dVwgOwor5Y2B5a2X6LevIDwganV1amlyb1wgOwor5YyX6ZaAIDwga2l0YW1vblwgOwor5ZC454mpIDwgc3VpbW9ub1wgOwor5Y2B6YCyIDwgamlzc2hpblwgOwor6Jas55SoIDwgeWFrdXlvdVwgOwor6YqA5p2PIDwgZ2luJyduYW5cIDsKK+a4oeS7jyA8IHRvZnV0c3VcIDsKK+ejiuiQvSA8IHJhaXJha3VcIDsKK+iZmuW/gyA8IGt5b3NoaW5cIDsKK+a0l+a7jCA8IHNlbmRla2lcIDsKK+a0peazoiA8IHRzdW5hbWlcIDsKK+aylue4hCA8IG9raW5hd2FcIDsKK+awkei4iiA8IG1pbicneW91XCA7CivomZrlvLEgPCBreW9qYWt1XCA7Civlj6TnrYYgPCBrb2hpdHN1XCA7Civlvozph5wgPCBhdG9nYW1hXCA7Civph43nr6QgPCBqdXV0b2t1XCA7Civmt7vliYogPCB0ZW5zYWt1XCA7Civph5HnrYsgPCBraW5zdWppXCA7CivlvpfpgZMgPCB0b2t1ZG91XCA7CivosqDnrKblj7cgPCBmdWZ1Z291XCA7Civph43nrrEgPCBqdXViYWtvXCA7CivlkITnnIwgPCBrYWt1a2VuXCA7Civlj6/npZ0gPCBrYXNoaWt1XCA7CivlkIznl4UgPCBkb3VieW91XCA7CivlpKflvqHmiYAgPCBvb2dvc2hvXCA7Civlj47ntI0gPCBzaHV1bm91XCA7CivnqbrkuK0gPCBrdXVjaHV1XCA7Civpu5Lmnb8gPCBrb2t1YmFuXCA7Civol4HngbAgPCB3YXJhYmFpXCA7CivliIbluIPlm7MgPCBidW5wdXp1XCA7CivpioPmkoMgPCBqdXVnZWtpXCA7Civnn7Ppr5sgPCBpc2hpZGFpXCA7CivphpzogZ4gPCBzaHV1YnVuXCA7Civoo73lm7PlrrYgPCBzZWl6dWthXCA7CivlvozpgLggPCBrb3VpdHN1XCA7Civlj7Dnn7MgPCBkYWlpc2hpXCA7CivljZPoq5YgPCB0YWt1cm9uXCA7Civmrr/plqMgPCBkZW5rYWt1XCA7CivoloTnmq4gPCB1c3VrYXdhXCA7CivmiKbmmYLkuIsgPCBzZW5qaWthXCA7Civljproh7wgPCBhdHN1dXN1XCA7CivljZropqcgPCBoYWt1cmFuXCA7CivlpKnmsJflm7MgPCB0ZW5raXp1XCA7CivljZjop5IgPCB0YW5rYWt1XCA7CivomY7lt7sgPCB0b3Jha2FuXCA7CivlvZPpmZAgPCB0b3VnaXJpXCA7CivnqY3liIYgPCBzZWtpYnVuXCA7CivpjK/kubEgPCBzYWt1cmFuXCA7Civpu5LmlpEgPCBrb2t1aGFuXCA7CivmsrvnmYIgPCBjaGlyeW91XCA7CivljZjopIcgPCB0YW5wdWt1XCA7Civmrovpq5ggPCB6YW5kYWthXCA7CivpiYTmqYsgPCB0ZWtreW91XCA7Civou43kuovosrsgPCBndW5qaWhpXCA7Civmt7fkvZwgPCBrb25zYWt1XCA7Civph5Hnn7MgPCBraW5zZWtpXCA7Civngo7lpKnkuIsgPCBlbnRlbmthXCA7Civku4rml6XmmI7ml6UgPCBreW91YXN1XCA7Civlj47nqI4gPCBzaHV1emVpXCA7Civmg5zmlZcgPCBzZWtpaGFpXCA7CivnqLLlj6IgPCBpbmFtdXJhXCA7Civmta7lvasgPCB1a2lib3JpXCA7CivlvozotrMgPCBhdG9hc2hpXCA7CivljJfovrogPCBob2t1aGVuXCA7CivogqXmuoDlhZAgPCBoaW1hbmppXCA7Civph6Pnk7YgPCB0c3VydWJlXCA7CivmtarmvKvmtL4gPCByb21hbmhhXCA7CivmhZ/lk60gPCBkb3Vrb2t1XCA7Civmg5HmmJ8gPCB3YWt1c2VpXCA7CivljYropZ8gPCBoYW4nJ2VyaVwgOwor6LW36YeN5qmfIDwga2lqdXVraVwgOwor5Zyn56CV5qmfIDwgYXNzYWlraVwgOwor5q276a2EIDwgc2hpaGFrdVwgOwor5Zue6Lev5ZuzIDwga2Fpcm96dVwgOwor56K66IGeIDwga2FrdWJ1blwgOwor5oGL55eFIDwga29peWFtaVwgOwor6YeR55qEIDwga2ludGVraVwgOwor5Y2K6KKWIDwgaGFuc29kZVwgOwor5ZC45q67IDwgc3VpZ2FyYVwgOwor6Jmr5Z6CIDwgY2h1dXN1aVwgOwor5rCR6KGGIDwgbWluc2h1dVwgOwor5YW15Zmo5bqrIDwgaGVpa2lrb1wgOwor6YmE5p+xIDwgdGV0Y2h1dVwgOwor5q+O6YCxIDwgbWFpc2h1dVwgOwor5q6L6aGNIDwgemFuZ2FrdVwgOwor5oGv54G9IDwgc29rdXNhaVwgOwor5bKQ6Zic55yMIDwgZ2lmdWtlblwgOwor5byx6Zu7IDwgamFrdWRlblwgOwor6JS157GzIDwga3VyYW1haVwgOwor5rW35bGxIDwgdW1peWFtYVwgOwor5q6L6Z+/IDwgemFua3lvdVwgOwor5rSL5qW9IDwgeW91Z2FrdVwgOwor6YeN55eFIDwganV1YnlvdVwgOwor6Jas5rayIDwgeWFrdWVraVwgOwor6JaE54mpIDwgdXN1bW9ub1wgOwor6JaE54mHIDwgaGFrdWhlblwgOwor5rOl5rW3IDwgZG9yb3VtaVwgOwor5bq25YuZ6KqyIDwgc2hvbXVrYVwgOwor5b6h6KKLIDwgb2Z1a3Vyb1wgOwor5rC06Iq4IDwgbWl6dWdlaVwgOwor5Y2z6IiIIDwgc29ra3lvdVwgOwor56eY5a+GIDwgaGltaXRzdVwgOwor5Y216IacIDwgcmFubWFrdVwgOwor5Y+N55uuIDwgaGFubW9rdVwgOwor5rC06ImyIDwgbWl6dWlyb1wgOwor6Zui57iB54q2IDwgcmllbmpvdVwgOwor6JWD56WeIDwgYmFuc2hpblwgOwor6Yed54q2IDwgaGFyaWpvdVwgOwor5q6J6ZujIDwganVuJyduYW5cIDsKK+W+i+iqniA8IHJpdHN1Z29cIDsKK+aBi+eMqyA8IGtvaW5la29cIDsKK+WSjOW8jyA8IHdhc2hpa2lcIDsKK+WNmOiRiSA8IHRhbicneW91XCA7Civpu5nlvpMgPCBtb2t1anV1XCA7Civph5HnjokgPCBraW50YW1hXCA7CivpioDluZUgPCBnaW5tYWt1XCA7Civnn6LpnaIgPCB5YW9tb3RlXCA7CivnqI7lj44gPCB6ZWlzaHV1XCA7CivnqLLkvZwgPCBpbmFzYWt1XCA7CivmtIvmnI0gPCB5b3VmdWt1XCA7CivmraPopo/ljJYgPCBzZWlraWthXCA7CivljbDogokgPCBpbicnbmlrdVwgOwor5oCn55mWIDwgc2VpaGVraVwgOwor5byB6aeBIDwgYmVucGFrdVwgOwor6Jit5a2mIDwgcmFuZ2FrdVwgOwor5ZCN5rWBIDwgbWVpcnl1dVwgOwor5oG15rKiIDwga2VpdGFrdVwgOwor5b2i6LehIDwga2Vpc2VraVwgOwor5ZCM5rWBIDwgZG91cnl1dVwgOwor5byU6Zu7IDwgY2hvdWRlblwgOwor6JC96Zu3IDwgcmFrdXJhaVwgOwor5Y+M55KnIDwgc291aGVraVwgOwor5oKq5pa5IDwgYWt1Z2F0YVwgOwor5ZCI5rWBIDwgZ291cnl1dVwgOwor6JC96ZuBIDwgcmFrdWdhblwgOwor56S+5q20IDwgc2hhcmVraVwgOwor6JC96Zm9IDwgcmFrdXlvdVwgOwor6YeN54iGIDwganV1YmFrdVwgOwor5LuK5Ye65p2lIDwgaW1hZGVraVwgOwor6buS5bivIDwga3Vyb29iaVwgOwor5Y+Z54i1IDwgam9zaGFrdVwgOwor5YyX6KW/IDwgaG9rdXNlaVwgOwor5qSc5rOi5ZmoIDwga2VucGFraVwgOwor5Y+j54GrIDwga3VjaGliaVwgOwor5Y+U54i2IDwgc2h1a3VmdVwgOwor5rOl5qOSIDwgZG9yb2JvdVwgOwor5rGB57KJIDwgc2hpcnVrb1wgOwor5byx6YW4IDwgamFrdXNhblwgOwor6JS155u4IDwgem91c2hvdVwgOwor5Y2D6I2JIDwgY2hpZ3VzYVwgOwor5ZCr5pyJIDwgZ2FuJyd5dXVcIDsKK+WPjeeJqSA8IHRhbm1vbm9cIDsKK+mzpemhniA8IGNob3VydWlcIDsKK+W8gemboyA8IGJlbicnbmFuXCA7CivljbPntI0gPCBzb2t1bm91XCA7CivnpL7mpa0gPCBzaGFneW91XCA7CivmsJfohIggPCBraW15YWt1XCA7CivnpLzmpb0gPCByZWlnYWt1XCA7Civmr43opqogPCBoYWhhb3lhXCA7Civnp7vlh7ogPCBpc2h1dHN1XCA7CivlvrPogrIgPCB0b2t1aWt1XCA7Civno4Hnn7MgPCBqaXNoYWt1XCA7CivmtojljrsgPCBzaG91a3lvXCA7CivphpznlLcgPCBidW90b2tvXCA7CivnoLToo4IgPCBoYXJldHN1XCA7CivmtojljbAgPCBrZXNoaWluXCA7CivlkIzmpa0gPCBkb3VneW91XCA7Civnp4Hlob4gPCBzaGlqdWt1XCA7CivmgqrmiK8gPCBpdGF6dXJhXCA7Civli5Xou7ggPCBkb3VqaWt1XCA7CivnoqfnqbogPCBoZWtpa3V1XCA7CivliojpoK0gPCBoZWtpdG91XCA7CivomK3lm70gPCByYW5rb2t1XCA7CivljbPnrZQgPCBzb2t1dG91XCA7CivkuIvku5jph5EgPCBrYWZ1a2luXCA7CivpiYTlv4MgPCB0ZXNzaGluXCA7Civmr5vomasgPCBrZW11c2hpXCA7Civpgb/pm6PmiYAgPCBoaW5hbmpvXCA7CivmgYvmsrMgPCBrb2lrYXdhXCA7CivphY3ntaYgPCBoYWlreXV1XCA7CivlkIzmoLwgPCBkb3VrYWt1XCA7CivniYfmhI/lnLAgPCBrYXRhaWppXCA7CivolqzmlrkgPCB5YWt1aG91XCA7CivmtLvlrZcgPCBrYXRzdWppXCA7Civlk4DliKUgPCBhaWJldHN1XCA7CivlvpLoirEgPCBhZGFiYW5hXCA7CivnpLzmnI0gPCByZWlmdWt1XCA7CivmgYvmsLQgPCBrb2ltaXp1XCA7Civlk4DliIcgPCBhaXNldHN1XCA7CivlkIjmoLwgPCBnb3VrYWt1XCA7Civmtbfljp8gPCB1bmFiYXJhXCA7CivpurvlsZEgPCBhc2FrdXp1XCA7Civlj6TmsaAgPCBmdXJ1aWtlXCA7CivmhJrliqMgPCBndXJldHN1XCA7Civnn63ou7ggPCB0YW5qaWt1XCA7CivphpznirYgPCBzaHV1am91XCA7CivlkITmoKEgPCBrYWt1a291XCA7CivmgYvmrbsgPCBrb2lqaW5pXCA7CivmgqrlvrMgPCBha3V0b2t1XCA7CivmsJfntbYgPCBraXpldHN1XCA7CivmsojmvrEgPCBjaGluZGVuXCA7CivliojplosgPCBoZWtpa2FpXCA7Civlj6TmrYwgPCBmdXJ1dXRhXCA7CivokL3pgbggPCByYWt1c2VuXCA7Civlia/poYwgPCBmdWt1ZGFpXCA7CivlvI/pg6ggPCBzaGlraWJ1XCA7CivljZznra4gPCBib2t1emVpXCA7CivljLvlrabpg6ggPCBpZ2FrdWJ1XCA7CivlkYLlvosgPCByb3JldHN1XCA7CivokYnouqsgPCB5b3VzaGluXCA7CivlvpDohIggPCBqb215YWt1XCA7CivnoqfnnLwgPCBoZWtpZ2FuXCA7CivlvozohbkgPCBhdG9iYXJhXCA7CivmrbTpgYogPCByZWtpeXV1XCA7CivkuojloLHpn7MgPCB5b2hvdW9uXCA7CivlvazolJogPCBoaW51dHN1XCA7CivnpoXlr7ogPCB6ZW5kZXJhXCA7CivpoqjlkYLku6MgPCBmdXJvZGFpXCA7Civmrbvou7ggPCBzaGlqaWt1XCA7CivmtYHln58gPCByeXV1aWtpXCA7Civlvoznn6XmgbUgPCBhdG9kamllXCA7CivptrTnp5EgPCB0c3VydWthXCA7Civmga3mlawgPCBreW91a2VpXCA7CivmsY7nlKggPCBoYW4nJ3lvdVwgOwor5beu5qmf6ZaiIDwgc2FraWthblwgOwor5Y+U5q+NIDwgc2h1a3Vib1wgOwor56eA5ZCfIDwgc2h1dWdpblwgOwor5YmN6auqIDwgbWFlZ2FtaVwgOwor5ZKA5Zq8IDwgc29zaGFrdVwgOwor5q666JmrIDwgc2F0Y2h1dVwgOwor5Yuk6KGMIDwgZ29uZ3lvdVwgOwor6KmQ5qy65birIDwgc2FnaXNoaVwgOwor5Y2155m9IDwgcmFucGFrdVwgOwor6YeR5qOSIDwga2FuYWJvdVwgOwor5bqn6aqoIDwgemFrb3RzdVwgOwor5b6056iOIDwgY2hvdXplaVwgOwor5Yq06LODIDwgcm91Y2hpblwgOwor5ZCI5o6MIDwgZ2Fzc2hvdVwgOwor5aSW56WW54i2IDwgZ2Fpc29mdVwgOwor5YuF6KixIDwgY2hva2t5b1wgOwor55+t6KmVIDwgdGFucHlvdVwgOwor6KuW55CG5ZKMIDwgcm9ucml3YVwgOwor56eY5LuPIDwgaGlidXRzdVwgOwor6YeO5Za25ZywIDwgeWFlaWNoaVwgOwor5rW35LqAIDwgdW1pZ2FtZVwgOwor6YKB6YCyIDwgbWFpc2hpblwgOwor6Zuw5Zuy5rCXIDwgZnVuJydpa2lcIDsKK+WboOe+jue3miA8IGluYmlzZW5cIDsKK+WPpOacrCA8IGZ1cnVib25cIDsKK+WPjeanmCA8IGthaXNhbWFcIDsKK+awkeemjyA8IG1pbnB1a3VcIDsKK+awl+S4iOWkqyA8IGtpam91YnVcIDsKK+WIneacn+WMliA8IHNob2tpa2FcIDsKK+mBhemcnCA8IG9zb2ppbW9cIDsKK+a0m+WkliA8IHJha3VnYWlcIDsKK+mFkueZliA8IHNodWhla2lcIDsKK+mCquiqrCA8IGphc2V0c3VcIDsKK+awj+elniA8IHVqaWdhbWlcIDsKK+auteiQvSA8IGRhbnJha3VcIDsKK+WRu+WQnyA8IHNoaW5naW5cIDsKK+mJhOWjgSA8IHRlcHBla2lcIDsKK+eni+S9nCA8IGFraXNha3VcIDsKK+WMuueriyA8IGt1cml0c3VcIDsKK+WQhOaJgCA8IGtha3VzaG9cIDsKK+aDqOWKhyA8IHNhbmdla2lcIDsKK+aBi+aWhyA8IGtvaWJ1bWlcIDsKK+azleaCpiA8IGhvdWV0c3VcIDsKK+mCpuiosyA8IGhvdXlha3VcIDsKK+awtOeQgyA8IHN1aWt5dXVcIDsKK+a1puS6uiA8IHVyYWJpdG9cIDsKK+mKgOWBtCA8IGdpbmdhd2FcIDsKK+WPluabvyA8IHRvcmlrYWVcIDsKK+atqeihjOWZqCA8IGhva291a2lcIDsKK+WJjemZsyA8IHplbmNoaW5cIDsKK+efs+idiyA8IHNla2lyb3VcIDsKK+iTrOeUnyA8IHlvbW9naXVcIDsKK+a1geWLlSA8IHJ5dXVkb3VcIDsKK+a5r+ixhuiFkCA8IHl1ZG91ZnVcIDsKK+ijj+iDjOaIuCA8IHVyYXNlZG9cIDsKK+mAhumxlyA8IGdla2lyaW5cIDsKK+efpeihjCA8IGNoaWd5b3VcIDsKK+WQjOW9uSA8IGRvdXlha3VcIDsKK+mFuOa8vyA8IGhvb3p1a2lcIDsKK+attOimpyA8IHJla2lyYW5cIDsKK+awtOeJoiA8IG1penVyb3VcIDsKK+awtOeJmyA8IHN1aWd5dXVcIDsKK+aUvueUn+S8miA8IGhvdWpvdWVcIDsKK+iCsuWFkOmZoiA8IGlrdWppaW5cIDsKK+S4jeS9nOeCuiA8IGZ1c2FrdWlcIDsKK+mzpeiynSA8IHRvcmlnYWlcIDsKK+awtOeIhiA8IHN1aWJha3VcIDsKK+atpuijheWFtyA8IGJ1c291Z3VcIDsKK+WMl+exsyA8IGhva3ViZWlcIDsKK+S4i+mnhOeVqiA8IGdldGFiYW5cIDsKK+WNk+eUqCA8IHRha3V5b3VcIDsKK+WJvei7vSA8IGh5b3VraW5cIDsKK+WSjuS6uiA8IHRvZ2FuaW5cIDsKK+iRieicgiA8IGhhYmFjaGlcIDsKK+W+s+eUqCA8IHRva3V5b3VcIDsKK+WNgeebriA8IGp1dW1va3VcIDsKK+WQjOW4rSA8IGRvdXNla2lcIDsKK+ecn+m7kiA8IG1ha2t1cm9cIDsKK+iHquWLleWMliA8IGppZG91a2FcIDsKK+WKo+inkiA8IHJla2tha3VcIDsKK+iWrOWusyA8IHlha3VnYWlcIDsKK+emhOWRvSA8IHJva3VtZWlcIDsKK+WIu+mZkCA8IGtva3VnZW5cIDsKK+WQm+WvtSA8IGt1bmNob3VcIDsKK+WQhOW6lyA8IGtha3V0ZW5cIDsKK+WNk+eQgyA8IHRha2t5dXVcIDsKK+eEoemBoOaFriA8IGJ1ZW5yeW9cIDsKK+mBi+WLleWgtCA8IHVuZG91YmFcIDsKK+WutuioiOiyuyA8IGtha2VpaGlcIDsKK+emgOWRiiA8IHJpbmtva3VcIDsKK+WRqOWIsCA8IHNodXV0b3VcIDsKK+axl+awtCA8IGFzZW1penVcIDsKK+WMl+erryA8IGhva3V0YW5cIDsKK+mfs+alveWutiA8IG9uZ2Fra2FcIDsKK+m7kuS6uiA8IGtva3VqaW5cIDsKK+W9vOeoiyA8IGFyZWhvZG9cIDsKK+mBk+i+uiA8IG1pY2hpYmVcIDsKK+atpuihkyA8IGJ1anV0c3VcIDsKK+WkluelluavjSA8IGdhaXNvYm9cIDsKK+aui+iPiiA8IHphbmdpa3VcIDsKK+ayoeaIkSA8IGJvdHN1Z2FcIDsKK+a1geS6oSA8IHJ5dXVib3VcIDsKK+WKtOWLmeiqsiA8IHJvdW11a2FcIDsKK+WInemfsyA8IGhhdHN1bmVcIDsKK+mDveeriyA8IHRvcml0c3VcIDsKK+WIpemboiA8IGJldHN1cmlcIDsKK+W+k+eahCA8IGp1dXRla2lcIDsKK+egtOeruSA8IGhhY2hpa3VcIDsKK+iSvOeZvSA8IHNvdWhha3VcIDsKK+awtOa7tCA8IHN1aXRla2lcIDsKK+WKm+ihjCA8IHJ5b2trb3VcIDsKK+eEoei7jOmBkyA8IG11a2lkb3VcIDsKK+mBuOiplSA8IHNlbnB5b3VcIDsKK+ekq+WyqSA8IHJla2lnYW5cIDsKK+WQhOWxpCA8IGtha3Vzb3VcIDsKK+WIpemZoiA8IGJldHN1aW5cIDsKK+WKh+ipqSA8IGdla2lzaGlcIDsKK+mJhOWJhyA8IHRlc3Nva3VcIDsKK+mBhemAnyA8IGNoaXNva3VcIDsKK+eip+awtCA8IGhla2lzdWlcIDsKK+efs+iHvCA8IGlzaGl1c3VcIDsKK+W5tOmhjSA8IG5lbmdha3VcIDsKK+WIpemWkyA8IGJldHN1bWFcIDsKK+axgeawlyA8IHNoaXJ1a2VcIDsKK+a0m+WGhSA8IHJha3VuYWlcIDsKK+avjuenkiA8IG1haWJ5b3VcIDsKK+W+rueGsSA8IGJpbmV0c3VcIDsKK+awtOa1tCA8IHN1aXlva3VcIDsKK+aDkeS5sSA8IHdha3VyYW5cIDsKK+iDg+eXmeaUoyA8IGlrZWlyZW5cIDsKK+WPpOW8jyA8IGtvc2hpa2lcIDsKK+mBi+WLleWToSA8IHVuZG91aW5cIDsKK+apn+aisOiqniA8IGtpa2FpZ29cIDsKK+WNiueGnyA8IGhhbmp1a3VcIDsKK+awtOa1gSA8IHN1aXJ5dXVcIDsKK+WOn+acqCA8IGdlbmJva3VcIDsKK+WLpOe2miA8IGtpbnpva3VcIDsKK+mAvOi/qyA8IGhpcHBha3VcIDsKK+WOmuadvyA8IGF0c3VpdGFcIDsKK+e+juWuuemZoiA8IGJpeW91aW5cIDsKK+W8seiAhSA8IGpha3VzaGFcIDsKK+mHkeW5syA8IGtpbnBpcmFcIDsKK+WNseawlyA8IGFidW5hZ2VcIDsKK+aApeaJgCA8IGt5dXVzaG9cIDsKK+auu+ervyA8IGthcmFzYW9cIDsKK+S4gOi7ouapnyA8IGl0dGVua2lcIDsKK+WPluW+lyA8IHNodXRva3VcIDsKK+WNs+atuyA8IHNva3VzaGlcIDsKK+m0h+iJsiA8IHRva2lpcm9cIDsKK+WPsOWwuyA8IGRhaWppcmlcIDsKK+adk+aWh+WtlyA8IHNoYW1vamlcIDsKK+i/vemajyA8IHRzdWl6dWlcIDsKK+WLsueroCA8IGt1bnNob3VcIDsKK+mAo+mHjyA8IHJlbnJ5b3VcIDsKK+aOouafu+apnyA8IHRhbnNha2lcIDsKK+eUsOiIjuWutiA8IGluYWtheWFcIDsKK+WQiOWjgSA8IGdhcHBla2lcIDsKK+WHuumhjSA8IGRlYml0YWlcIDsKK+WIuemCoyA8IHNldHN1bmFcIDsKK+W5tOmVtyA8IG5lbmNob3VcIDsKK+WHuumgrSA8IHNodXR0b3VcIDsKK+WIh+mZpCA8IHNldHN1am9cIDsKK+iRreewgCA8IHlvc2hpenVcIDsKK+mBi+i7ouiyuyA8IHVudGVuaGlcIDsKK+apmeearuayuSA8IHRvdWhpeXVcIDsKK+a0i+WCmCA8IHlvdWdhc2FcIDsKK+mBjuW5tOW6piA8IGthbmVuZG9cIDsKK+eglOeptiA8IGtlbmt5dXVcIDsKK+mAsui7jSA8IHNoaW5ndW5cIDsKK+mFkuavkiA8IHNodWRva3VcIDsKK+iWrOWTgSA8IHlha3VoaW5cIDsKK+ayiOaAnSA8IGNoaW5zaGlcIDsKK+WNl+a0iyA8IG5hbicneW91XCA7CivmrbvogokgPCBzaGluaWt1XCA7CivmgJ3mg5EgPCBvbW93YWt1XCA7Civps7boibIgPCB0b2JpaXJvXCA7CivpgYvli5XlhbcgPCB1bmRvdWd1XCA7CivokL3og4YgPCByYWt1dGFuXCA7Civps6XokawgPCBjaG91c291XCA7CivmsqLlsbEgPCB0YWt1c2FuXCA7CivlvqHlrZjnn6UgPCBnb3pvbmppXCA7CivliLrouqsgPCBzYXNoaW1pXCA7CivlkITlnLAgPCBrYWt1Y2hpXCA7CivoloTloqggPCB1c3V6dW1pXCA7CivlrrbmlL/np5EgPCBrYXNlaWthXCA7CivlkITlm70gPCBrYWtrb2t1XCA7CivokabnrJsgPCBhc2hpYnVlXCA7CivlsI/lpYfpupcgPCBrb2dpcmVpXCA7CivluZXpm7sgPCBtYWt1ZGVuXCA7CivliaXoo70gPCBoYWt1c2VpXCA7CivphpzmhYsgPCBzaHV1dGFpXCA7Civnn63ntaEgPCB0YW5yYWt1XCA7Civnp7vkvY/ogIUgPCBpanV1c2hhXCA7CivmsJHms4ogPCBtaW5wYWt1XCA7CivnpL7lkYogPCBzaGFrb2t1XCA7CivlvIHohpwgPCBiZW5tYWt1XCA7CivpgZPlhbflsYsgPCBkb3VndXlhXCA7CivphpzmgqogPCBzaHV1YWt1XCA7CivolqzliaQgPCB5YWt1emFpXCA7Civmr5TnjocgPCBoaXJpdHN1XCA7CivlvIrnv5IgPCBoZWlzaHV1XCA7CivlvbnniZsgPCBla2lneXV1XCA7CivlkIznvqnoqp4gPCBkb3VnaWdvXCA7CivmsrzlnLAgPCBudW1hY2hpXCA7CivojqvpgKMgPCBiYWt1cmVuXCA7Civms5XlkI0gPCBob3VteW91XCA7CivmqKHmk6zmiKYgPCBtb2dpc2VuXCA7CivliJ3pgJ8gPCBzaG9zb2t1XCA7CivlkI3lj7cgPCBteW91Z291XCA7Civms5XljZogPCBob3VoYWt1XCA7CivpgIbpgYsgPCBneWFrdXVuXCA7CivnnInpm6ogPCBiaXNldHN1XCA7Civlh7jpj6EgPCB0b2treW91XCA7CivlkIjlj6MgPCBhaWt1Y2hpXCA7CivnpL7liYcgPCBzaGFzb2t1XCA7CivojZLpp5IgPCBhcmFnb21hXCA7CivmsLjml6UgPCBlaWppdHN1XCA7CivliIbph50gPCBmdW5zaGluXCA7CivliIbph48gPCBidW5yeW91XCA7CivokrLlhazoi7EgPCB0YW5wb3BvXCA7CivliKXot68gPCBiZXRzdXJvXCA7Civms5XlipsgPCBob3VyaWtpXCA7Civmr5TnhrEgPCBoaW5ldHN1XCA7Civms5XliYcgPCBob3Vzb2t1XCA7CivnqL3lj6TnnYAgPCBrZWlrb2dpXCA7CivnnrwgPCBtYWJ1dGFcIDsKK+i+tyA8IHN1YmVydVwgOwor556zIDwgaGl0b21pXCA7CivovKkgPCB5YWthcmFcIDsKK+ebsiA8IG1lc2hpaVwgOwor6LuKIDwga3VydW1hXCA7Civluo8gPCB0c3VpZGVcIDsKK+eahiA8IG1pbicnbmFcIDsKK+W5lSA8IHRvYmFyaVwgOwor5bidIDwgbWlrYWRvXCA7Civlt6YgPCBoaWRhcmlcIDsKK+eWviA8IHNoaXRzdVwgOwor55WzIDwgdGF0YW1pXCA7CivnlaAgPCBoYXRha2VcIDsKK+eTpiA8IGthd2FyYVwgOwor5bKsIDwgbWlzYWtpXCA7CivlsYogPCB0b2Rva2VcIDsKK+WwiiA8IG1pa290b1wgOwor5a6dIDwgdGFrYXJhXCA7CivnjaMgPCBrZW1vbm9cIDsKK+eLvCA8IG9va2FtaVwgOwor54usIDwgZG9pdHN1XCA7CivoqqAgPCBtYWtvdG9cIDsKK+iovCA8IGFrYXNoaVwgOwor54i2IDwgY2hpY2hpXCA7CivoqJsgPCBuYW1hcmlcIDsKK+WomCA8IG11c3VtZVwgOwor5ae/IDwgc3VnYXRhXCA7Civlpr4gPCB3YXJhd2FcIDsKK+WmuSA8IGltb3V0b1wgOwor6KaBIDwga2FuYW1lXCA7CivopbcgPCB0YXN1a2lcIDsKK+eFmSA8IGtlbXVyaVwgOwor6KWWIDwgZnVzdW1hXCA7Civoo7ggPCBoYWRha2FcIDsKK+iitCA8IGhha2FtYVwgOwor6KKLIDwgZnVrdXJvXCA7CivooaMgPCBrb3JvbW9cIDsKK+WfgyA8IGhva29yaVwgOwor6J+AIDwgc2h1dHN1XCA7CivpvKwgPCBpdGFjaGlcIDsKK+m8oCA8IG5lenVtaVwgOwor5ZyfIDwgdHN1Y2hpXCA7CivmvIYgPCB1cnVzaGlcIDsKK+ibuSA8IHNhbmFnaVwgOwor6JuZIDwga2F3YXp1XCA7CivlmaggPCB1dHN1d2FcIDsKK+a4ryA8IG1pbmF0b1wgOwor6JasIDwga3VzdXJpXCA7CivolqogPCB0YWtpZ2lcIDsKK+a2mSA8IG5hbWlkYVwgOwor6JaHIDwgemVubWFpXCA7CivoloQgPCBzdXN1a2lcIDsKK+m0iSA8IGthcmFzdVwgOwor5Y6oIDwga3VyaXlhXCA7CivljbggPCBvcm9zaGlcIDsKK+WNtSA8IHRhbWFnb1wgOwor5q2qIDwgaWJpdHN1XCA7CivprZogPCBzYWthbmFcIDsKK+WNlyA8IG1pbmFtaVwgOwor5YygIDwgdGFrdW1pXCA7Civmq7sgPCBzYWt1cmFcIDsKK+iLuiA8IGljaGlnb1wgOwor5YuiIDwgaGF6dW1pXCA7CivmqpwgPCBoaW5va2lcIDsKK+iIhSA8IHNodXV0b1wgOwor5qaKIDwgc2FrYWtpXCA7CivlhYkgPCBoaWthcmlcIDsKK+mkqCA8IHlha2F0YVwgOwor5YCZIDwgc291cm91XCA7Civpn78gPCBoaWJpa2lcIDsKK+afsyA8IHlhbmFnaVwgOwor5L+EIDwgbml3YWthXCA7Civkv4IgPCBrYWthcmlcIDsKK+S+vyA8IHlvc3VnYVwgOwor5p6VIDwgbWFrdXJhXCA7CivmnLogPCB0c3VrdWVcIDsKK+S7jyA8IGhvdG9rZVwgOwor5puHIDwga3Vtb3JpXCA7Civpm4AgPCBzdXp1bWVcIDsKK+S6rCA8IG1peWFrb1wgOwor6ZqjIDwgdG9uYXJpXCA7CivkuZkgPCBraW5vdG9cIDsKK+S5jSA8IG5hZ2FyYVwgOwor5LiHIDwgeW9yb3p1XCA7CivkuIMgPCBzaGljaGlcIDsKK+S4gSA8IGhpbm90b1wgOwor57eRIDwgbWlkb3JpXCA7CivntaMgPCBrYXN1cmlcIDsKK+e1hiA8IGtpenVuYVwgOwor57C+IDwgc3VkYXJlXCA7Civpj6EgPCBrYWdhbWlcIDsKK+mOliA8IGt1c2FyaVwgOwor562SIDwgdHN1dHN1XCA7CivmjYwgPCBzYWJha2lcIDsKK+mLvCA8IGhhZ2FuZVwgOwor56ulIDwgd2FyYWJlXCA7Civpi48gPCBoYXNhbWlcIDsKK+aJiSA8IHRvYmlyYVwgOwor5omAIDwgdG9rb3JvXCA7Civlu4PomZogPCBoYWlreW9cIDsKK+W/v+aAkiA8IGZ1bicnbnVcIDsKK+mAgei/jiA8IHNvdWdlaVwgOwor6L+F6Zu3IDwgamlucmFpXCA7Civlv5fmk40gPCBzaGlzb3VcIDsKK+mAmuiyqCA8IHRzdXVrYVwgOwor5ZCN5Yi6IDwgbWVpc2hpXCA7CivlkIzliY0gPCBkb3V6ZW5cIDsKK+ekvOWFuCA8IHJlaXRlblwgOwor5YmN6KGbIDwgemVuJydlaVwgOwor55+i562IIDwgeWFoYXp1XCA7Civph5HlnZEgPCBraW5rb3VcIDsKK+WOn+W9oiA8IGdlbmtlaVwgOwor5b6p5qipIDwgZnVra2VuXCA7CivliY3ooYwgPCB6ZW5rb3VcIDsKK+WQjeWIhiA8IG1laWJ1blwgOwor5b2i54q2IDwga2Vpam91XCA7CivliJfou4ogPCByZXNzaGFcIDsKK+WQjeWIgCA8IG1laXRvdVwgOwor5buD6JepIDwgaGFpaGFuXCA7CivphY3mnKwgPCBoYWlob25cIDsKK+WOmuW/lyA8IGtvdXNoaVwgOwor6JaE5ZGzIDwgaGFrdW1pXCA7CivnpL7lg6cgPCBzaGFzb3VcIDsKK+WQiOWJpCA8IGdvdXphaVwgOwor5ZCM5YemIDwgZG91c2hvXCA7Civms5XlhbggPCBob3V0ZW5cIDsKK+ekvuWCtSA8IHNoYXNhaVwgOwor5bm06LyqIDwgbmVucmluXCA7CivlubTovKkgPCBuZW5wYWlcIDsKK+ejgeW/gyA8IGppc2hpblwgOwor5YiG6YGjIDwgYnVua2VuXCA7Civlj4vlpb0gPCB5dXVrb3VcIDsKK+WLpOeVqiA8IGtpbmJhblwgOwor55+z56KRIDwgc2VraWhpXCA7CivlkIjliIcgPCBnYXNzYWlcIDsKK+mAgOi7oiA8IHRhaXRlblwgOwor5q2j57eoIDwgc2VpaGVuXCA7Civlj43lpIkgPCBoYW5wZW5cIDsKK+WPseWSpCA8IHNoaXR0YVwgOwor5ZCM5YWaIDwgZG91dG91XCA7Civlub3otqMgPCB5dXVzaHVcIDsKK+WKoOe1piA8IGtha3l1dVwgOwor5ZCN5YSqIDwgbWVpeXV1XCA7CivljrPlsIEgPCBnZW5wdXVcIDsKK+W4r+mbuyA8IHRhaWRlblwgOwor5b6L5rOVIDwgcmlwcG91XCA7Civlh4zpm7IgPCByeW91dW5cIDsKK+W/q+aEnyA8IGthaWthblwgOwor6YG46ICDIDwgc2Vua291XCA7Civnn6LnqK4gPCB5YWRhbmVcIDsKK+axjuaEmyA8IGhhbicnYWlcIDsKK+W8t+eblyA8IGdvdXRvdVwgOwor5Y6z5a+SIDwgZ2Vua2FuXCA7Civph4/lmaggPCByeW91a2lcIDsKK+WQjeWDpyA8IG1laXNvdVwgOwor5q2j57WxIDwgc2VpdG91XCA7CivpgYrolakgPCB5dXV0b3VcIDsKK+axuuWumiA8IGtldHRlaVwgOwor6JK45rCRIDwgam91bWluXCA7CivlvL7nl5UgPCBkYW5rb25cIDsKK+mHjeWZuCA8IGp1dXRvblwgOwor6L+C6ZeKIDwgdWthdHN1XCA7CivpgKDoqaMgPCB6b3VrZWlcIDsKK+a3oeOAhSA8IHRhbnRhblwgOwor5Y6z5a6IIDwgZ2Vuc2h1XCA7Civlj7DlkI0gPCB0YWltZWlcIDsKK+WOs+WtmCA8IGdlbnNvblwgOwor5q2j57O7IDwgc2Vpa2VpXCA7CivpgqrnpZ4gPCBqYXNoaW5cIDsKK+i+uumZrCA8IGhlbnN1dVwgOwor6YCg6KiAIDwgem91Z2VuXCA7CivpgIPotbAgPCB0b3Vzb3VcIDsKK+mAmuiqniA8IHRzdXVnb1wgOwor5YiG6LyJIDwgYnVuc2FpXCA7CivphbjmgKcgPCBzYW5zZWlcIDsKK+ebuOmWoiA8IHNvdWthblwgOwor5b6M5q61IDwga291ZGFuXCA7CivnpL7kvJogPCBzaGFrYWlcIDsKK+mAmuipsSA8IHRzdXV3YVwgOwor5b6p5qChIDwgZnVra291XCA7CivlkIzlgKQgPCBkb3VjaGlcIDsKK+WIh+i6qyA8IGtpcmltaVwgOwor5ZCb5Li7IDwga3Vuc2h1XCA7CivojYnpnosgPCB3YXJhamlcIDsKK+azleS+iyA8IGhvdXJlaVwgOwor5Yi26KOBIDwgc2Vpc2FpXCA7CivljZfmlrkgPCBuYW5wb3VcIDsKK+WMl+a1tyA8IGhva2thaVwgOwor5b+g5oSbIDwgY2h1dWFpXCA7Civph5Hlk6EgPCBraW4nJ2luXCA7CivljZjmlocgPCB0YW5idW5cIDsKK+eiuuW6piA8IGtha3Vkb1wgOwor5rCR5pybIDwgbWluYm91XCA7CivoloTliKkgPCBoYWt1cmlcIDsKK+ekvuS6pCA8IHNoYWtvdVwgOwor5b6u5pyNIDwgYmlmdWt1XCA7CivmsYLmhJsgPCBreXV1YWlcIDsKK+WNmOaVsCA8IHRhbnN1dVwgOwor5b+F5pC6IDwgaGlra2VpXCA7Civph5Hlk4EgPCBraW5waW5cIDsKK+WKo+etiSA8IHJldHRvdVwgOwor55uk6Z2iIDwgYmFubWVuXCA7CivljKDmsJcgPCBzaG91a2lcIDsKK+WLleeUoyA8IGRvdXNhblwgOwor5bu257SNIDwgZW4nJ25vdVwgOwor56CV54mHIDwgc2FpaGVuXCA7CivnnJ/pgIYgPCBtYXNha2FcIDsKK+WQjOS9kyA8IGRvdXRhaVwgOwor5rKz5YyXIDwga2Fob2t1XCA7CivnpL7kuLsgPCBzaGFzaHVcIDsKK+WNl+aUryA8IG5hbnNoaVwgOwor5Y+j5ZC7IDwga291ZnVuXCA7CivlvL7nkLQgPCBkYW5raW5cIDsKK+W4q+mWgCA8IHNoaW1vblwgOwor5rCX5pepIDwga2liYXlhXCA7CivmgKXloLQgPCBreXV1YmFcIDsKK+WQjOS8tCA8IGRvdWhhblwgOwor6YCj6KGhIDwgcmVua291XCA7Civlj6PlkJ8gPCBrb3VnaW5cIDsKK+azleS6uiA8IGhvdWppblwgOwor5Ya36Z2ZIDwgcmVpc2VpXCA7Civov5Tph5EgPCBoZW5raW5cIDsKK+WPguWggiA8IHNhbmRvdVwgOwor5b+r5byBIDwga2FpYmVuXCA7Civlv6DmgZUgPCBjaHV1am9cIDsKK+WPrOWLnyA8IHNob3Vib1wgOwor5ZCI5L21IDwgZ291aGVpXCA7CivlkJDkubMgPCB0b255dXVcIDsKK+WQjeS6uiA8IG1laWppblwgOwor5ZCI5L2TIDwgZ2F0dGFpXCA7CivoloTlhYkgPCBoYWtrb3VcIDsKK+iUk+W7tiA8IG1hbicnZW5cIDsKK+W9k+eEtiA8IHRvdXplblwgOwor5Y+N5ZmsIDwgaGFuemVpXCA7Civljp/lr7ggPCBnZW5zdW5cIDsKK+WQjOS7gSA8IGRvdWppblwgOwor5ZCM5Lq6IDwgZG91bmluXCA7CivlhbjpupcgPCB0ZW5yZWlcIDsKK+WQkeS4iiA8IGtvdWpvdVwgOwor5bej6baPIDwgc3Vkb3JpXCA7CivljYHmnKwgPCBqdXBwb25cIDsKK+W7g+iJpiA8IGhhaWthblwgOwor5rGf5bGxIDwga291emFuXCA7CivluqfolqwgPCB6YXlha3VcIDsKK+iQjue4riA8IGlzaHVrdVwgOwor6YeN5ZCIIDwganV1Z291XCA7CivluoPoqIAgPCBrb3VnZW5cIDsKK+W7g+iIuSA8IGhhaXNlblwgOwor5buQ6IKlIDwga3l1dWhpXCA7CivlkIzkuZcgPCBkb3Vqb3VcIDsKK+W/nOaApSA8IG91a3l1dVwgOwor6YGK6Iq4IDwgeXV1Z2VpXCA7Civmrovnl5UgPCB6YW5rb25cIDsKK+WJjeiRlyA8IHplbmNob1wgOwor6I+W6JKyIDwgc2hvdWJ1XCA7Civph47ljp8gPCBub2hhcmFcIDsKK+axuuWjiiA8IGtla2thaVwgOwor5Y6f5a2QIDwgZ2Vuc2hpXCA7Civmr5vmsIggPCBtb3VzZW5cIDsKK+WNoOaLoCA8IHNlbmt5b1wgOwor5Yil6KO9IDwgYmVzc2VpXCA7CivlvIrnpL4gPCBoZWlzaGFcIDsKK+avlOazgSA8IGhpa3lvdVwgOwor6YCP6KaWIDwgdG91c2hpXCA7CivljYrmlbAgPCBoYW5zdXVcIDsKK+mGnOWlsyA8IHNodXVqb1wgOwor5Yq555uuIDwga2lraW1lXCA7CivmsJHmlL8gPCBtaW5zZWlcIDsKK+mztOemvSA8IG1laWtpblwgOwor5rCR5pS+IDwgbWlucG91XCA7Civov5Hpg7cgPCBraW5nb3VcIDsKK+mFkuaJiyA8IHNha2F0ZVwgOwor6L+U6YKEIDwgaGVua2FuXCA7CivlvJPnn6IgPCB5dW1peWFcIDsKK+WJjeiPnCA8IHplbnNhaVwgOwor5Y+N5ZWPIDwgaGFubW9uXCA7Civlh6bpgYcgPCBzaG9ndXVcIDsKK+W/g+aKgCA8IHNoaW5naVwgOwor5Yid6KaLIDwgc2hva2VuXCA7CivmrKDoiKogPCBrZWtrb3VcIDsKK+ebl+mbuyA8IHRvdWRlblwgOwor5beo6a+oIDwga3lvZ2VpXCA7CivmsoPlnJ8gPCB5b2t1ZG9cIDsKK+W3u+mmliA8IGthbnNodVwgOwor5Ye66LazIDwgZGVhc2hpXCA7CivmrovnlJ8gPCB6YW5zZWlcIDsKK+WMl+aspyA8IGhva3VvdVwgOwor55uX6ZujIDwgdG91bmFuXCA7CivliqDnpoQgPCBrYXJva3VcIDsKK+WPt+S/uCA8IGdvdWhvdVwgOwor5Y2x5oClIDwga2lreXV1XCA7CivliZvoh4YgPCBnb3Vva3VcIDsKK+W8vueJhyA8IGRhbnBlblwgOwor55yM6YGTIDwga2VuZG91XCA7CivljbPlv5wgPCBzb2t1b3VcIDsKK+atpuelniA8IGJ1c2hpblwgOwor6L+U6YCBIDwgaGVuc291XCA7CivlvqnmlLkgPCBmdWtrYWlcIDsKK+mHkeWJmyA8IGtvbmdvdVwgOwor5bmj6LKiIDwgaGVpa291XCA7CivphY3miYAgPCBoYWlzaG9cIDsKK+WNteW9oiA8IHJhbmtlaVwgOwor6YeR5Yi4IDwga2lua2VuXCA7CivphZTmhYsgPCBzdWl0YWlcIDsKK+W3qOmtgSA8IGt5b2thaVwgOwor6JWD5ZywIDwgYmFuY2hpXCA7CivljYHmlbAgPCBqdXVzdXVcIDsKK+axveWcpyA8IGtpYXRzdVwgOwor5Yeh6YCAIDwgYm9udGFpXCA7CivpgZTogIUgPCB0YXNzaGFcIDsKK+W+k+adpSA8IGp1dXJhaVwgOwor6YG4566hIDwgc2Vua2FuXCA7CivliIborbIgPCBidW5qb3VcIDsKK+WPuOS8miA8IHNoaWthaVwgOwor5b6h5paZIDwgZ29yeW91XCA7Civlhobpq5ggPCBlbmRha2FcIDsKK+i/kei+uiA8IGtpbnBlblwgOwor5Y+j5YaFIDwga291bmFpXCA7Civlh7rosrsgPCBzaHVwcGlcIDsKK+mHkeWGoCA8IGtpbmthblwgOwor5Y2w5b2iIDwgaW5neW91XCA7Civlj7jku6QgPCBzaGlyZWlcIDsKK+mHjeWIkSA8IGp1dWtlaVwgOwor6L+96Ki0IDwgdHN1aXNvXCA7Civlj7fku6QgPCBnb3VyZWlcIDsKK+WKoOehqyA8IGthcnl1dVwgOwor5Ymb6IOGIDwgZ291dGFuXCA7Civph5HlhbcgPCBrYW5hZ3VcIDsKK+WPjuWPlyA8IHNodXVqdVwgOwor6YWN5oWuIDwgaGFpcnlvXCA7Civov7foq5YgPCBtZWlyb25cIDsKK+avjuavjiA8IG1haW1haVwgOwor6L+96KiYIDwgdHN1aWtpXCA7CivnnaHok64gPCBzdWlyZW5cIDsKK+W/g+aEjyA8IHNoaW4nJ2lcIDsKK+WJsue3miA8IGthc3NlblwgOwor5YiH6KuMIDwgc2Vra2FuXCA7Civlv5jlubQgPCBib3VuZW5cIDsKK+WNs+W6pyA8IHNva3V6YVwgOwor5be76aCtIDwga2FudG91XCA7CivlirnnlKggPCBrb3V5b3VcIDsKK+iSsuafsyA8IGhvcnl1dVwgOwor5oGS5L6LIDwga291cmVpXCA7Civlj7LkvJ0gPCBzaGlkZW5cIDsKK+W/jeW+kyA8IG5pbmp1dVwgOwor6YW35a+SIDwga29ra2FuXCA7Civli4fnjJsgPCB5dXVtb3VcIDsKK+avrOaenCA8IGt5dXVrYVwgOwor6I236LazIDwgbmlhc2hpXCA7CivluLjpgZMgPCBqb3Vkb3VcIDsKK+WIhuipniA8IGJ1bnNoaVwgOwor5rK75LmxIDwgY2hpcmFuXCA7CivljbXlt6MgPCByYW5zb3VcIDsKK+atu+eUoyA8IHNoaXphblwgOwor5q2755SfIDwgc2hpc2VpXCA7CivljZrmhJsgPCBoYWt1YWlcIDsKK+W4uOmAoyA8IGpvdXJlblwgOwor5YaS6aCtIDwgYm91dG91XCA7CivmgKflkJEgPCBzZWlrb3VcIDsKK+W4sOmDtyA8IGtpa3lvdVwgOwor5rC05bmzIDwgc3VpaGVpXCA7CivmsrvkuJYgPCBjaGlzZWlcIDsKK+W8leeUqCA8IGluJyd5b3VcIDsKK+murum6lyA8IHNlbnJlaVwgOwor55uu6YeYIDwgbWVrdWdpXCA7Civlj43li5UgPCBoYW5kb3VcIDsKK+WJjeiFlSA8IG1hZXVkZVwgOwor5Y+y5LmXIDwgc2hpam91XCA7CivliIbop6MgPCBidW5rYWlcIDsKK+WPguWQkSA8IHNhbmtvdVwgOwor5Y+z5LiKIDwgbWlnaXVlXCA7CivpgaPnsbMgPCBrZW5iZWlcIDsKK+WPpOS/lyA8IGtvem9rdVwgOwor5b6M5pmvIDwga291a2VpXCA7CivljpblpKcgPCBib3VkYWlcIDsKK+mAgOihjCA8IHRhaWtvdVwgOwor5Y+v5LmfIDwga2FuYXJpXCA7CivluqfoiIggPCB6YWt5b3VcIDsKK+ato+ecvCA8IHNlaWdhblwgOwor5b6F5pybIDwgdGFpYm91XCA7Civno4Hlo4EgPCBqaWhla2lcIDsKK+W3rumhjSA8IHNhZ2FrdVwgOwor5q6L54mHIDwgemFucGVuXCA7Civlj6XkvZwgPCBrdXNha3VcIDsKK+W+jOaYhiA8IGtvdWtvblwgOwor5q2j55uuIDwgbWFzYW1lXCA7Civnn6LnjokgPCB5YWRhbWFcIDsKK+WNgeaMhyA8IGp1c3NoaVwgOwor5Y2Y5oCnIDwgdGFuc2VpXCA7Civmr5vmoLkgPCBtb3Vrb25cIDsKK+iSuOaVoyA8IGpvdXNhblwgOwor5b6M5pa5IDwga291aG91XCA7CivphY3lvZMgPCBoYWl0b3VcIDsKK+WKoOeZgiA8IGthcnlvdVwgOwor5b6L5peLIDwgcmlzc2VuXCA7Civlj6PkvJ0gPCBrb3VkZW5cIDsKK+mFkuW6lyA8IHNodXRlblwgOwor5bir6YGTIDwgc2hpZG91XCA7CivlupXojbcgPCBzb2tvbmlcIDsKK+WIiuihjCA8IGthbmtvdVwgOwor5Ye66Ki0IDwgc2h1c3NvXCA7CivljZrlvpIgPCBiYWt1dG9cIDsKK+eggua8oCA8IHNhYmFrdVwgOwor5oCl5YufIDwga3l1dWJvXCA7CivlvLHngasgPCB5b3dhYmlcIDsKK+WJjeiAhSA8IHplbnNoYVwgOwor5oCl5YuZIDwga3l1dW11XCA7Civlt6jpoK0gPCBreW90b3VcIDsKK+iRieeJqSA8IGhhbW9ub1wgOwor5YiG6KKCIDwgYnVuYmVpXCA7CivlhobpoIIgPCBlbmNob3VcIDsKK+awl+aBryA8IGtpc29rdVwgOwor5b6M5pS7IDwga291a291XCA7Civps6nnm64gPCBoYXRvbWVcIDsKK+mHjeS9kyA8IGp1dXRhaVwgOwor5Y6z5ZG9IDwgZ2VubWVpXCA7CivkuIvkuJboqbEgPCBnZXNld2FcIDsKK+WGkumZuiA8IGJvdWtlblwgOwor5Y6f5ZugIDwgZ2VuJydpblwgOwor5YaF6aCFIDwgbmFpa291XCA7CivliY3nv4UgPCB6ZW5zaGlcIDsKK+W6puiDuCA8IGRva3lvdVwgOwor55yL6LKrIDwga2Fua2FuXCA7CivljZrlvJUgPCBoYWt1aW5cIDsKK+apn+mVtyA8IGtpY2hvdVwgOwor5Ymy56ymIDwgd2FyaWZ1XCA7CivmsJfmgKcgPCBraXNob3VcIDsKK+WNgeaIkiA8IGppa2thaVwgOwor5Y+X5L+hIDwganVzaGluXCA7Civnm67pgJQgPCBtb2t1dG9cIDsKK+i+sumBkyA8IG5vdWRvdVwgOwor55+z54GwIDwgc2Vra2FpXCA7CivmsJHmg4UgPCBtaW5qb3VcIDsKK+WOmuWcsCA8IGF0c3VqaVwgOwor6YeN5Lu7IDwganV1bmluXCA7Civov47os5MgPCBnZWloaW5cIDsKK+WOs+WQmyA8IGdlbmt1blwgOwor5YmN572uIDwgemVuY2hpXCA7Civph43ku6MgPCBqdXVkYWlcIDsKK+WIl+iXqSA8IHJlcHBhblwgOwor6bOl55uuIDwgdG9yaW1lXCA7CivljZjlvIEgPCB0YW5iZW5cIDsKK+auteautSA8IGRhbmRhblwgOwor5rC05bGLIDwgbWl6dXlhXCA7CivlvoDmmJQgPCBvdXNla2lcIDsKK+mHkeS4uyA8IGtpbnNodVwgOwor56C05qC8IDwgaGFrYWt1XCA7CivljYPmha4gPCBzZW5yeW9cIDsKK+WOu+WLoiA8IGt5b3NlaVwgOwor5b2T5q2zIDwgdG91c2FpXCA7Civnmq7pnakgPCBoaWtha3VcIDsKK+WGhemdoiA8IG5haW1lblwgOwor5be36ZaTIDwga291a2FuXCA7CivlhrfphZIgPCByZWlzaHVcIDsKK+WNteWtkCA8IHJhbnNoaVwgOwor5oCq5YWJIDwga2Fpa291XCA7CivlhbzpoYwgPCBrZW5kYWlcIDsKK+aqgOmCoyA8IGRhbicnbmFcIDsKK+mHjuS4rSA8IG5vbmFrYVwgOwor6YCg6Ii5IDwgem91c2VuXCA7Civlj4LlhoUgPCBzYW5kYWlcIDsKK+awtOWusyA8IHN1aWdhaVwgOwor5b655bqVIDwgdGV0dGVpXCA7CivmsJflvLEgPCBraXlvd2FcIDsKK+WPm+S5sSA8IGhhbnJhblwgOwor5b6h5oW2IDwgZ3lva2VpXCA7CivnnIzoraYgPCBrZW5rZWlcIDsKK+W4nemBkyA8IHRlaWRvdVwgOwor5Yil6I2YIDwgYmVzc291XCA7CivnooHluK0gPCBnb3Nla2lcIDsKK+WIneiRiSA8IHNob3lvdVwgOwor5b285pa5IDwga2FuYXRhXCA7Civnm5/pgqYgPCBtZWlob3VcIDsKK+W/q+WgsSA8IGthaWhvdVwgOwor5Y6t5Y6tIDwgaXlhaXlhXCA7CivmsLTlrZAgPCBtaXp1Z29cIDsKK+WGjemWiyA8IHNhaWthaVwgOwor6YGg56ewIDwgZW5zaG91XCA7CivljJfmlrkgPCBob3Bwb3VcIDsKK+WGhemZoyA8IG5haWppblwgOwor5Y2K5b6EIDwgaGFua2VpXCA7CivokZvmua8gPCBrdXp1eXVcIDsKK+murumtmiA8IHNlbmd5b1wgOwor5Ya36YGHIDwgcmVpZ3V1XCA7CivljYrlvbEgPCBoYW4nJ2VpXCA7Civlj43kvosgPCBoYW5yZWlcIDsKK+W3o+mbmyA8IHN1aGluYVwgOwor6L+m5qW8576FIDwga2FydXJhXCA7Civlvq7lvLEgPCBiaWpha3VcIDsKK+mDt+adkSA8IGdvdXNvblwgOwor56Gs5oCnIDwga291c2VpXCA7CivphZLlsYsgPCBzYWtheWFcIDsKK+WJjee3qCA8IHplbnBlblwgOwor6YCA6JS1IDwgdGFpem91XCA7Civlh53orbAgPCBneW91Z2lcIDsKK+WJjee3miA8IHplbnNlblwgOwor5bed6Z2iIDwga2F3YW1vXCA7Civljp/lk4EgPCBnZW5waW5cIDsKK+W8leeFpyA8IGluc2hvdVwgOwor5YWo6aSoIDwgemVua2FuXCA7Civov5HoqaAgPCBraW4nJ2VpXCA7CivokpnmmKcgPCBtb3VtYWlcIDsKK+aui+a7kyA8IHphbnNoaVwgOwor5rKZ5LiYIDwgc2FreXV1XCA7CivmrbvngrkgPCBzaGl0ZW5cIDsKK+ebuOiyjCA8IHNvdWJvdVwgOwor6YCB6JGsIDwgc291c291XCA7Civnmb3prZQgPCBoYWt1bWFcIDsKK+WNnOWxhSA8IGJva2t5b1wgOwor56KN5a2QIDwgZ2Fpc2hpXCA7Civmr47mmakgPCBtYWliYW5cIDsKK+WOs+WGrCA8IGdlbnRvdVwgOwor5Y+L5Lq6IDwgeXV1amluXCA7Civnm4rph5EgPCBla2lraW5cIDsKK+WKtOeBvSA8IHJvdXNhaVwgOwor5Y2X5bK4IDwgbmFuZ2FuXCA7CivmiYvlv6Dlrp8gPCB0ZW1hbWVcIDsKK+edgOiNtyA8IGNoYWtrYVwgOwor6JGm5q+bIDwgYXNoaWdlXCA7CivmrKHnrKwgPCBzaGlkYWlcIDsKK+WOmuWRsyA8IGF0c3VtaVwgOwor5YW16ZujIDwgaGVpbmFuXCA7CivljbPlpJwgPCBzb2t1eWFcIDsKK+W9ouacqCA8IGthdGFnaVwgOwor5bir6LOHIDwgc2hpc2hpXCA7CivljZflsbEgPCBuYW56YW5cIDsKK+eci+imliA8IGthbnNoaVwgOwor6L+R6KaWIDwga2luc2hpXCA7Civlt4zpoK0gPCBnYW50b3VcIDsKK+iMtumBkyA8IGNoYWRvdVwgOwor5qyh56ugIDwgamlzaG91XCA7CivlhbfpmbMgPCBndWNoaW5cIDsKK+aAquS6uiA8IGthaWppblwgOwor55m76auYIDwgdG91a291XCA7Civnm6TouJ4gPCBiYW5reW9cIDsKK+WFtemaiiA8IGhlaXRhaVwgOwor6YCj572yIDwgcmVuc2hvXCA7Civpp4TmtJLokL0gPCBkYWphcmVcIDsKK+ato+eKryA8IHNlaWhhblwgOwor5Y2Y5bCEIDwgdGFuc2hhXCA7Civlj4LkvJogPCBzYW5rYWlcIDsKK+WKh+eUuyA8IGdla2lnYVwgOwor5YWo6Z+zIDwgemVuJydvblwgOwor5Y215aGUIDwgcmFudG91XCA7CivlhZrpppYgPCB0b3VzaHVcIDsKK+mBjuensCA8IGthc2hvdVwgOwor5Y2B5bmyIDwgamlra2FuXCA7Civoi7HpoJggPCBlaXJ5b3VcIDsKK+WNkeWxrCA8IGhpem9rdVwgOwor5beo6ZCYIDwgb29nYW5lXCA7CivmqKrpoJggPCBvdXJ5b3VcIDsKK+efs+ayuSA8IHNla2l5dVwgOwor5bu754q2IDwga2Fpam91XCA7CivkuIvpp4TlsYsgPCBnZXRheWFcIDsKK+mBlOejqCA8IGRhcnVtYVwgOwor5Y6f5YuVIDwgZ2VuZG91XCA7CivljZflrosgPCBuYW5zb3VcIDsKK+W8seawlyA8IHlvd2FraVwgOwor5YWo6Z2iIDwgemVubWVuXCA7CivlvqHlubggPCBtaXl1a2lcIDsKK+W+mOW+iiA8IGhhaWthaVwgOwor6YO15pS/IDwgeXV1c2VpXCA7CivljYrls7YgPCBoYW50b3VcIDsKK+WNkeWwjyA8IGhpc2hvdVwgOwor55m96aasIDwgaGFrdWJhXCA7Civnm7joq4cgPCBzb3VkYW5cIDsKK+asneepjSA8IHVzc2VraVwgOwor5b6B5oimIDwgc2Vpc2VuXCA7CivlibLnm64gPCB3YXJlbWVcIDsKK+WFqOmciiA8IHplbnJlaVwgOwor6YCj57mLIDwgcmVua2VpXCA7CivlvZPmnb8gPCBhdGVpdGFcIDsKK+WPguS4jiA8IHNhbicneW9cIDsKK+W+jOaClCA8IGtvdWthaVwgOwor5Y+C5LiKIDwgc2Fuam91XCA7CivmsojkuIsgPCBjaGlua2FcIDsKK+ecn+iWryA8IHNoaW5qb1wgOwor5Ye96JOLIDwga2FuZ2FpXCA7Civljp/liJ0gPCBnZW5zaG9cIDsKK+WJjeerryA8IHplbnRhblwgOwor5b+r5ZOJIDwga2Fpc2FpXCA7CivmsJflraYgPCBraWdha3VcIDsKK+awtOWfnyA8IHN1aWlraVwgOwor5b6u5bCRIDwgYmlzaG91XCA7CivlhajpmoogPCB6ZW50YWlcIDsKK+mAgeiHtCA8IHNvdWNoaVwgOwor6YCj57a/IDwgcmVubWVuXCA7CivlibXnl5UgPCBzb3Vrb25cIDsKK+assuebriA8IHlva3VtZVwgOwor5b6X5bqmIDwgdG9rdWRvXCA7CivlvpPlvJ8gPCBqdXV0ZWlcIDsKK+mDqOaXjyA8IGJ1em9rdVwgOwor6JWD5Lq6IDwgYmFuamluXCA7Civoj5znqK4gPCBuYXRhbmVcIDsKK+ebtOiotCA8IGppa2lzb1wgOwor5Y6f5YW4IDwgZ2VudGVuXCA7CivpsZfojI4gPCByaW5rZWlcIDsKK+WFpemZoiA8IG55dXVpblwgOwor55+t5q+bIDwgdGFubW91XCA7CivojZLoqpUgPCBrb3V0YW5cIDsKK+WIneiAgSA8IHNob3JvdVwgOwor6YW35ZCPIDwga29rdXJpXCA7CivpgKPntK8gPCByZW5ydWlcIDsKK+iVg+S4uyA8IGJhbnNodVwgOwor5bir6KiTIDwgc2hpa3VuXCA7CivmqKnpmZAgPCBrZW5nZW5cIDsKK+WLmOaknCA8IGthbmtlblwgOwor6YG654mpIDwgaWJ1dHN1XCA7Civlh4boqLEgPCBqdW5reW9cIDsKK+mFkuWgtCA8IHNha2FiYVwgOwor5YWo6ZaLIDwgemVua2FpXCA7CivmronmrbsgPCBqdW5zaGlcIDsKK+WOn+WDjyA8IGdlbnpvdVwgOwor55uu6KixIDwgbWVtb3RvXCA7CivmsLTlmqIgPCBzdWlub3VcIDsKK+W9k+aWuSA8IHRvdWhvdVwgOwor5Ye66I23IDwgc2h1a2thXCA7CivnnJ/oj7AgPCBtYWtvbW9cIDsKK+WNl+WkqSA8IG5hbnRlblwgOwor55uu6KeSIDwgbWVrYWRvXCA7Civlho3pgbggPCBzYWlzZW5cIDsKK+W7g+ebpCA8IGhhaWJhblwgOwor56Gr5a6JIDwgcnl1dWFuXCA7CivmqZ/ou7ggPCBraWppa3VcIDsKK+WLouacmyA8IHNlaWJvdVwgOwor5qip6ZaAIDwga2VubW9uXCA7CivpipjjgIUgPCBtZWltZWlcIDsKK+WLmOahiCA8IGthbicnYW5cIDsKK+W+jOW5tCA8IGtvdW5lblwgOwor5Yy75bGAIDwgaWt5b2t1XCA7Civlho3pgYogPCBzYWl5dXVcIDsKK+egsuaJiyA8IGhvdXNodVwgOwor55m96ZyyIDwgaGFrdXJvXCA7CivoirHps6UgPCBrYWNob3VcIDsKK+i/veiCpSA8IHRzdWloaVwgOwor5b+15YaZIDwgbmVuc2hhXCA7Civnn6Xmra8gPCBjaGlzaGlcIDsKK+W4hui1sCA8IGhhbnNvdVwgOwor5b6A5b6pIDwgb3VmdWt1XCA7Civnn7PmprQgPCB6YWt1cm9cIDsKK+eZvembsiA8IGhha3V1blwgOwor5YaN6YCBIDwgc2Fpc291XCA7CivlhYnpoK0gPCBrb3V0b3VcIDsKK+W+i+W4qyA8IHJpc3NoaVwgOwor5oSI44CFIDwgaXlvaXlvXCA7CivlhbXpi5IgPCBoZWlob3VcIDsKK+WHuuiKsSA8IGRlYmFuYVwgOwor5q2p5risIDwgaG9zb2t1XCA7CivlhYjpoK0gPCBzZW50b3VcIDsKK+W6g+e4gSA8IGhpcm9lblwgOwor5rWq44CFIDwgcm91cm91XCA7CivlipvmvJQgPCByaWtpZW5cIDsKK+mCquassiA8IGpheW9rdVwgOwor6aeE5rOV6J66IDwgZGFib3JhXCA7Civlv4PlnJ8gPCBzaGluZG9cIDsKK+W+ruWmmSA8IGJpbXlvdVwgOwor5b6E5bqtIDwga2VpdGVpXCA7CivliKXntJkgPCBiZXNzaGlcIDsKK+W/nOWPrCA8IG91c2hvdVwgOwor5Ye66Ii5IDwgZGVmdW5lXCA7CivphbfliJEgPCBrb2trZWlcIDsKK+W/q+WIgCA8IGthaXRvdVwgOwor5YWI6Z6tIDwgc2VuYmVuXCA7Civlt6fpgYUgPCBrb3VjaGlcIDsKK+W6p+ekgSA8IHphc2hvdVwgOwor6YG454KtIDwgc2VudGFuXCA7CivlvIHmuIggPCBiZW5zYWlcIDsKK+WNiuWkqSA8IGhhbnRlblwgOwor5b+X5ZCRIDwgc2hpa291XCA7Civlh7roh40gPCBkZWJlc29cIDsKK+W9t+W+qCA8IGhvdWtvdVwgOwor5Y2K5aScIDwgaGFuJyd5YVwgOwor5Yi256m6IDwgc2Vpa3V1XCA7Civljp/kurogPCBnZW5qaW5cIDsKK+WGjei7oiA8IHNhaXRlblwgOwor5b2i5oiQIDwga2Vpc2VpXCA7CivluILosqkgPCBzaGloYW5cIDsKK+ehneWuiSA8IHNob3VhblwgOwor5Yid57WMIDwgc2hva2VpXCA7CivljYrlo4ogPCBoYW5rYWlcIDsKK+W8lOatjCA8IGNob3VrYVwgOwor6L+R6JGXIDwga2luY2hvXCA7CivokL3mrL4gPCByYWtrYW5cIDsKK+WIh+e+vSA8IGtpcmloYVwgOwor56Gd5a2QIDwgZ2FyYXN1XCA7Civlubnnt5ogPCBrYW5zZW5cIDsKK+mDveW/gyA8IHRvc2hpblwgOwor56K65L+dIDwga2FrdWhvXCA7CivmrbPmrbMgPCBzYWlzYWlcIDsKK+WFhembuyA8IGp1dWRlblwgOwor5rGg5LqtIDwgY2hpdGVpXCA7CivlhoXovKogPCB1Y2hpd2FcIDsKK+mBi+eUqCA8IHVuJyd5b3VcIDsKK+ebm+imsyA8IHNlaWthblwgOwor5Y2D5aScIDwgc2VuJyd5YVwgOwor5bqP56ugIDwgam9zaG91XCA7CivliLbnpqYgPCBzZWlneW9cIDsKK+WIhue9siA8IGJ1bnNob1wgOwor5b2i5oWLIDwga2VpdGFpXCA7CivnoazlpIkgPCBrb3VoZW5cIDsKK+WFiOmZoyA8IHNlbmppblwgOwor5YWs6YeRIDwga291a2luXCA7Civps6XmuKEgPCBjaG90dG9cIDsKK+mBheeVqiA8IG9zb2JhblwgOwor5Yqb5rOzIDwgcmlraWVpXCA7CivmraPmsrkgPCBzaG91eXVcIDsKK+WNsOWMoyA8IGluYmFrb1wgOwor5Y2z5Yq5IDwgc29ra291XCA7CivojbfoiLkgPCBuaWJ1bmVcIDsKK+W6g+evhCA8IGtvdWhhblwgOwor55+z5pyoIDwgaXNoaWtpXCA7CivnoqnlhJIgPCBzZWtpanVcIDsKK+iRl+abuCA8IGNob3Nob1wgOwor5bed6L66IDwga2F3YWJlXCA7Civps6nmtL4gPCBoYXRvaGFcIDsKK+avjeW+oSA8IGhhaGFnb1wgOwor6YGO5L+d6K23IDwga2Fob2dvXCA7CivphK3lo7AgPCB0ZWlzZWlcIDsKK+egsuW8viA8IGhvdWRhblwgOwor5b2T5omAIDwgdG91c2hvXCA7Civnm5voo4UgPCBzZWlzb3VcIDsKK+awtOWLoiA8IHN1aXNlaVwgOwor6YO95bqBIDwgdG9jaG91XCA7Civlha3pg6ggPCByb2t1YnVcIDsKK+atouawtCA8IHNoaXN1aVwgOwor6a6u6YutIDwgc2VuJydlaVwgOwor6YWS5ZCNIDwgc2h1bWVpXCA7Civnm5voobAgPCBzZWlzdWlcIDsKK+awkeWboyA8IG1pbmRhblwgOwor6Iq46aKoIDwgZ2VpZnV1XCA7CivlvKbmnZAgPCBnZW56YWlcIDsKK+WIneetiSA8IHNob3RvdVwgOwor5YWs6YK4IDwga291dGVpXCA7CivljbDliLsgPCBpbmtva3VcIDsKK+WJsueDuSA8IGthcHBvdVwgOwor6JOu5Y+wIDwgcmVuZGFpXCA7CivmraPmrr8gPCBzZWlkZW5cIDsKK+WGjeiyqSA8IHNhaWhhblwgOwor5YiH57eaIDwgc2Vzc2VuXCA7CivliaPnirYgPCBrZW5qb3VcIDsKK+WNteWGhiA8IHJhbicnZW5cIDsKK+mFt+S8vCA8IGtva3VqaVwgOwor5Yil56iuIDwgYmVzc2h1XCA7CivnnaXnnaggPCBoZWlnZWlcIDsKK+iRieafhCA8IHlvdWhlaVwgOwor6JGX5piOIDwgY2hvbWVpXCA7CivlvpPlp4kgPCBqdXVzaGlcIDsKK+auuuaEjyA8IHNhdHN1aVwgOwor6L6e6KGoIDwgamloeW91XCA7CivpnZ7llrbliKkgPCBoaWVpcmlcIDsKK+WFrOmBuCA8IGtvdXNlblwgOwor5b6T5aa5IDwganV1bWFpXCA7CivliKnnpo8gPCByaWZ1a3VcIDsKK+e1jOe3r+WEgCA8IGtlaWlnaVwgOwor5Y2g5Y+WIDwgc2Vuc2h1XCA7Civmr47lubQgPCBtYWluZW5cIDsKK+aui+aakSA8IHphbnNob1wgOwor5YWs6YGTIDwga291ZG91XCA7CivmraPmraMgPCBzZWlzZWlcIDsKK+W5s+exsyA8IGhlaWJlaVwgOwor6YWN5ZCIIDwgaGFpZ291XCA7CivmsLTliIYgPCBzdWlidW5cIDsKK+ecn+e+jiA8IHNoaW5iaVwgOwor5bmE6IiOIDwgYWt1c2hhXCA7CivprZrpsZcgPCBneW9yaW5cIDsKK+efouafhCA8IHlhZ2FyYVwgOwor5YWl6YOoIDwgbnl1dWJ1XCA7Civnn7PmlqcgPCBzZWtpZnVcIDsKK+WGl+irhyA8IGpvdWRhblwgOwor5rC05Ya3IDwgc3VpcmVpXCA7Civnn67mmJ8gPCB3YWlzZWlcIDsKK+iSvOWkqSA8IHNvdXRlblwgOwor5YWo6YGTIDwgemVuZG91XCA7Civlubznq6UgPCB5b3Vkb3VcIDsKK+i9n+i9nyA8IGdvdWdvdVwgOwor552h55ygIDwgc3VpbWluXCA7Civlt6jos4cgPCBreW9zaGlcIDsKK+iRieabuCA8IGhhZ2FraVwgOwor5YyF5bivIDwgaG91dGFpXCA7CivljoTku4sgPCB5YWtrYWlcIDsKK+awkeWWtiA8IG1pbicnZWlcIDsKK+WLh+aWrSA8IHl1dWRhblwgOwor5YuV5o+6IDwgZG91eW91XCA7Civmrr/lvqEgPCB0b25vZ29cIDsKK+WNgeWbniA8IGp1a2thaVwgOwor5Y2B5ZubIDwganV1eW9uXCA7Civlt6josqEgPCBreW96YWlcIDsKK+WNlOWSjCA8IGt5b3V3YVwgOwor5bm956qTIDwgeXV1c291XCA7Civlt53ot68gPCBrYXdhamlcIDsKK+WLh+aVoiA8IHl1dWthblwgOwor5beo6LGhIDwga3lvem91XCA7CivlhpfoqIAgPCBqb3VnZW5cIDsKK+asoOeJhyA8IGtha2VyYVwgOwor6YCj55ufIDwgcmVubWVpXCA7CivlubznqJogPCB5b3VjaGlcIDsKK+W+jOWkqSA8IGtvdXRlblwgOwor5YW36LazIDwgZ3Vzb2t1XCA7CivpsZfnsokgPCByaW5wdW5cIDsKK+WMluWtpiA8IGthZ2FrdVwgOwor6YG15rOVIDwganVucG91XCA7Civnmb3ph5EgPCBoYWtraW5cIDsKK+mBqea4qSA8IHRla2lvblwgOwor5Y2X5Y2KIDwgbmFuaGFuXCA7CivpgLjnkIMgPCBpa2t5dXVcIDsKK+mFjeWJpCA8IGhhaXphaVwgOwor5q2v5qC5IDwgc2hpa29uXCA7CivljZLljrsgPCBzb2treW9cIDsKK+WGjeiqlSA8IHNhaXRhblwgOwor6YG45rCRIDwgc2VubWluXCA7CivluILooZcgPCBzaGlnYWlcIDsKK+W1qemrmCA8IHN1dWtvdVwgOwor5YWI6YuSIDwgc2VucG91XCA7CivnnJ/ntr8gPCBtYXdhdGFcIDsKK+aso+eEtiA8IGtpbnplblwgOwor5ZGR5YW16KGbIDwgbm9uYmVlXCA7CivlvozlobUgPCBrb3VqaW5cIDsKK+WFqOi7jSA8IHplbmd1blwgOwor6YCB56i/IDwgc291a291XCA7CivlhrfolLUgPCByZWl6b3VcIDsKK+mFjeWIhiA8IGhhaWJ1blwgOwor5b6p5ZOhIDwgZnVrdWluXCA7Civlh7rntI0gPCBzdWl0b3VcIDsKK+WHpue9riA8IHNob2NoaVwgOwor5YaN6KiqIDwgc2FpaG91XCA7CivojYnokYkgPCBrdXNhYmFcIDsKK+W5tOeojiA8IG5lbnplaVwgOwor5YaN6KiCIDwgc2FpdGVpXCA7Civoi5vphbcgPCBrYWtva3VcIDsKK+W8t+aJkyA8IGt5b3VkYVwgOwor6YKq5pWZIDwgamFreW91XCA7Civnn6LmlocgPCB5YWJ1bWlcIDsKK+WGheirhyA8IG5haWRhblwgOwor5rCP5ZCNIDwgc2hpbWVpXCA7CivlhbfosaEgPCBndXNob3VcIDsKK+ecn+e0hSA8IHNoaW5rdVwgOwor5Y2T5Yq5IDwgdGFra291XCA7CivoiabpvaIgPCBrYW5yZWlcIDsKK+WLpOaAoCA8IGtpbnRhaVwgOwor5Y2z5LuKIDwgc29ra29uXCA7CivpgKPnlaogPCByZW5iYW5cIDsKK+W+tOWLnyA8IGNob3Vib1wgOwor6YKm5paHIDwgaG91YnVuXCA7CivlvZPlupcgPCB0b3V0ZW5cIDsKK+asoOeCuSA8IGtldHRlblwgOwor5byK5p2RIDwgaGVpc29uXCA7CivlvZPlubQgPCB0b3VuZW5cIDsKK+W5tOelrSA8IG5lbnNhaVwgOwor5b285aWzIDwga2Fub2pvXCA7CivojbfnuIQgPCBuaW5hd2FcIDsKK+atu+aWhyA8IHNoaWJ1blwgOwor6I2P6IuSIDwgamluemVuXCA7CivmrbPmmakgPCBzYWliYW5cIDsKK+WMheWuuSA8IGhvdXlvdVwgOwor6L6y6Iq4IDwgbm91Z2VpXCA7CivlubTnpLwgPCBuZW5yZWlcIDsKK+W8lOaXlyA8IGNob3VraVwgOwor6YCA56S+IDwgdGFpc2hhXCA7CivljYrljYogPCBoYW5oYW5cIDsKK+WIpeebgyA8IGJlcHBhaVwgOwor6YGO5r+AIDwga2FnZWtpXCA7CivlhoXoqJMgPCBuYWlrdW5cIDsKK+eah+i7jSA8IGtvdWd1blwgOwor5rC05LuZIDwgc3Vpc2VuXCA7CivljbTkuIsgPCBreWFra2FcIDsKK+S4jee+qeeQhiA8IGZ1Z2lyaVwgOwor5YaN6KO9IDwgc2Fpc2VpXCA7CivlvLfmhaIgPCBnb3VtYW5cIDsKK+W4jOiWhCA8IGtpaGFrdVwgOwor5Y2Y5YWDIDwgdGFuZ2VuXCA7CivpgaDmtYUgPCB0b29hc2FcIDsKK+i9hui9pCA8IHJva3Vyb1wgOwor5q+S5ammIDwgZG9rdWZ1XCA7CivljZflhYkgPCBuYW5rb3VcIDsKK+mFjeWBtiA8IGhhaWd1dVwgOwor5YaF6KazIDwgbmFpa2FuXCA7CivnmbrpgIEgPCBoYXNzb3VcIDsKK+W+oeWRiiA8IG90c3VnZVwgOwor5YaF6KanIDwgbmFpcmFuXCA7CivpgaDmtIsgPCBlbicneW91XCA7CivlvL7mgKcgPCBkYW5zZWlcIDsKK+WGheimiyA8IG5haWtlblwgOwor5b2i5a65IDwga2VpeW91XCA7CivmnInmhI/lt64gPCB5dXVpc2FcIDsKK+W8t+aDhSA8IGdvdWpvdVwgOwor5Y2D5Y2DIDwgY2hpZGppXCA7Civov5HnuIEgPCBraW4nJ2VuXCA7CivnnJ/nrocgPCBzaGlua29cIDsKK+mtmumhniA8IGd5b3J1aVwgOwor5YuH5oimIDwgeXV1c2VuXCA7Civpto/lj6MgPCBrZWlrb3VcIDsKK+W4uOe9riA8IGpvdWNoaVwgOwor5Y2S5YWIIDwgc29zc2VuXCA7CivpgaDmsoggPCBlbmNoaW5cIDsKK+ato+acrCA8IHNlaWhvblwgOwor5q2j5pyoIDwgbWFzYWtpXCA7CivlhajosowgPCB6ZW5ib3VcIDsKK+mDqOWwhiA8IGJ1c2hvdVwgOwor5YWI6YGjIDwgc2Vua2VuXCA7CivnoavljJYgPCByeXV1a2FcIDsKK+mBoeaxgiA8IHNva3l1dVwgOwor55y85568IDwgZ2Fua2VuXCA7CivljYrliIYgPCBoYW5wdW5cIDsKK+WIhuekviA8IGJ1bnNoYVwgOwor5q2j5pu4IDwgc2Vpc2hvXCA7CivlhaXosrsgPCBueXV1aGlcIDsKK+efreaJgCA8IHRhbnNob1wgOwor5Y2I5Yi7IDwgZ29rb2t1XCA7CivljaDkvY8gPCBzZW5qdXVcIDsKK+W3oeimpyA8IGp1bnJhblwgOwor5rCX5YSYIDwga2ltYW1hXCA7Civlv4zkuK0gPCBraWNodXVcIDsKK+WGheijhSA8IG5haXNvdVwgOwor5b255aC0IDwgeWFrdWJhXCA7CivprZTpoqggPCBtYWthemVcIDsKK+WHuueqkyA8IGRlbWFkb1wgOwor55uu6ISCIDwgbWV5YW5pXCA7CivliqnmlZkgPCBqb2t5b3VcIDsKK+mFkuS7mSA8IHNodXNlblwgOwor6baP5Y21IDwga2VpcmFuXCA7CivnnJ/nq7kgPCBtYWRha2VcIDsKK+eci+e1jCA8IGthbmtpblwgOwor5bu65p2QIDwga2VuemFpXCA7Civnmbrou4ogPCBoYXNzaGFcIDsKK+awkeWFtSA8IG1pbnBlaVwgOwor5b6p5YiKIDwgZnVra2FuXCA7CivljYrlhoYgPCBoYW4nJ2VuXCA7Civli5jlvZMgPCBrYW5kb3VcIDsKK+W8iuaUvyA8IGhlaXNlaVwgOwor5YyI5aW0IDwga3lvdWRvXCA7CivphZLkubEgPCBzaHVyYW5cIDsKK+ebsuiAhSA8IG1vdXNoYVwgOwor5buD5rayIDwgaGFpZWtpXCA7Civlt6booaggPCBzYWh5b3VcIDsKK+mBhea7niA8IGNoaXRhaVwgOwor5YiA56S8IDwgdG91cmVpXCA7CivlvIHmmI4gPCBiZW5tZWlcIDsKK+W/g+S6iyA8IHNoaW5qaVwgOwor5YuY5byBIDwga2FuYmVuXCA7CivmrLLmsJcgPCB5b2t1a2VcIDsKK+efreaFriA8IHRhbnJ5b1wgOwor5Y2D5YiGIDwgc2VuYnVuXCA7CivliqPmlZcgPCByZXBwYWlcIDsKK+avjuWklSA8IG1haXl1dVwgOwor56Cy5aOwIDwgaG91c2VpXCA7CivlhYnovKogPCBrb3VyaW5cIDsKK+WNkuWAkiA8IHNvdHRvdVwgOwor5Y2Y5L2TIDwgdGFudGFpXCA7Civnmb7otrMgPCBtdWthZGVcIDsKK+asp+a0siA8IG91c2h1dVwgOwor5YuF5oSPIDwgY2hva3VpXCA7Civlhazoq5YgPCBrb3Vyb25cIDsKK+WNgeWIhiA8IGp1cHB1blwgOwor6a2a6Zu3IDwgZ3lvcmFpXCA7CivlhYjovKkgPCBzZW5wYWlcIDsKK+W5s+ebriA8IGhpcmFtZVwgOwor6YO35aOrIDwgZ291c2hpXCA7CivmraTmlrkgPCBrb25hdGFcIDsKK+WJo+azlSA8IGtlbnBvdVwgOwor6Iy26Iy2IDwgY2hhY2hhXCA7CivmraPmlrkgPCBzZWlob3VcIDsKK+atpuaVmSA8IGJ1a3lvdVwgOwor5Ymq5q+bIDwgc2VubW91XCA7CivphY3kuZcgPCBoYWlqb3VcIDsKK+efnOaMgSA8IGt5b3VqaVwgOwor6L6y6ICVIDwgbm91a291XCA7CivljYPlhoYgPCBzZW4nJ2VuXCA7CivliJ3nlJ8gPCBzaG9zZWlcIDsKK+WFrOiqjSA8IGtvdW5pblwgOwor5beh6KGMIDwganVua291XCA7CivljLrlioMgPCBrdWtha3VcIDsKK+ato+aWhyA8IHNlaWJ1blwgOwor5q2M5qC8IDwga2FrYWt1XCA7Civlub3nlYwgPCB5dXVrYWlcIDsKK+ato+aVsCA8IHNlaXN1dVwgOwor5b6M5ZGzIDwgYXRvYWppXCA7CivnoLLloZQgPCBob3V0b3VcIDsKK+ehneWMliA8IHNob3VrYVwgOwor5YW86KGMIDwga2Vua291XCA7CivlvavloZEgPCBjaG91c29cIDsKK+WNgeWFqCA8IGp1dXplblwgOwor5YWs6KixIDwga291a3lvXCA7CivljZfkuqwgPCBuYW5raW5cIDsKK+efpeaFriA8IGNoaXJ5b1wgOwor5q275omAIDwgc2hpc2hvXCA7CivlubznlJ8gPCB5b3VzZWlcIDsKK+mBk+awkSA8IGRvdW1pblwgOwor5Y2K5YCkIDwgaGFuJyduZVwgOwor5oK244CFIDwgbW9ubW9uXCA7Civov5TnrZQgPCBoZW50b3VcIDsKK+iMtuiJsiA8IGNoYWlyb1wgOwor5qip6KyAIDwga2VuYm91XCA7Civpto/lhqAgPCB0b3Nha2FcIDsKK+eZvuiyqCA8IGh5YWtrYVwgOwor5bu75paHIDwga2FpYnVuXCA7Civli4Hmgo0gPCBrZWlrYW5cIDsKK+WFg+i7jSA8IGdlbmd1blwgOwor5Y2B5YSEIDwganV1b2t1XCA7CivlvJXmiYsgPCBoaWtpdGVcIDsKK+mtlOmanCA8IG1hc2hvdVwgOwor5YiH55uuIDwga2lyZW1lXCA7CivlvJXmiLggPCBoaWtpZG9cIDsKK+i7n+miqCA8IG5hbnB1dVwgOwor55y855WMIDwgZ2Fua2FpXCA7CivojLboh7wgPCBjaGF1c3VcIDsKK+mBuOabuCA8IHNlbnNob1wgOwor6Iux6KizIDwgZWl5YWt1XCA7Civou6Lpn7MgPCB0ZW4nJ29uXCA7CivmrovlvbEgPCB6YW4nJ2VpXCA7CivoirPphocgPCBob3VqdW5cIDsKK+W5tOeUoyA8IG5lbnNhblwgOwor5bm055SfIDwgbmVuc2VpXCA7CivljYPlgI0gPCBzZW5iYWlcIDsKK+W7g+auiyA8IGhhaXphblwgOwor6Imv6aasIDwgcnlvdWJhXCA7CivlubPnlJ8gPCBoZWl6ZWlcIDsKK+mBiuawkSA8IHl1dW1pblwgOwor6JGb5biDIDwga3V6dWZ1XCA7Civlu4PmraIgPCBoYWlzaGlcIDsKK+i8qui7oiA8IHJpbnRlblwgOwor6auY57ev5bqmIDwga291aWRvXCA7CivluIboiLkgPCBob2J1bmVcIDsKK+WNgeWAjSA8IGp1dWJhaVwgOwor5Ymb5q+bIDwgZ291bW91XCA7Civmr47lm54gPCBtYWlrYWlcIDsKK+avjeWbvSA8IGJva29rdVwgOwor5rCR5Lq6IDwgbWluamluXCA7CivnnJ/noIIgPCBtYXNhZ29cIDsKK+WKqeaJiyA8IHN1a2V0ZVwgOwor5q2i5o+aIDwgc2hpeW91XCA7Civlub3njoQgPCB5dXVnZW5cIDsKK+iKuOmBkyA8IGdlaWRvdVwgOwor5Yqg5oyvIDwga2FzaGluXCA7Civnm5vogIUgPCBqb3VzaGFcIDsKK+W9ueWToSA8IHlha3VpblwgOwor5b6u5LmzIDwgYmlueXV1XCA7CivnnIznqI4gPCBrZW56ZWlcIDsKK+WEqumBhyA8IHl1dWd1dVwgOwor55+z5belIDwgc2Vra291XCA7CivlhoXolLUgPCBuYWl6b3VcIDsKK+awkeS4uyA8IG1pbnNodVwgOwor5Yid54qvIDwgc2hvaGFuXCA7Civmrr/loIIgPCBkZW5kb3VcIDsKK+W6tuawkSA8IHNob21pblwgOwor556s5pmCIDwgc2h1bmppXCA7CivlhKrpgIAgPCB5dXV0YWlcIDsKK+WHueebriA8IGt1Ym9tZVwgOwor5Yqj5omNIDwgcmVzc2FpXCA7CivovKrot50gPCByaW5reW9cIDsKK+i/lOekvCA8IGhlbnJlaVwgOwor5YiA55eVIDwgdG91a29uXCA7Civps7TmiLggPCBuYXJ1dG9cIDsKK+WLmOWumiA8IGthbmpvdVwgOwor5YaF6JKZIDwgbmFpbW91XCA7Civnm67ns54gPCBtZWt1c29cIDsKK+W6p+a1tCA8IHpheW9rdVwgOwor5qiZ6KqeIDwgaHlvdWdvXCA7Civnmb3oqbEgPCBoYWt1d2FcIDsKK+WIpOeEtiA8IGhhbnplblwgOwor56CC5a2QIDwgc3VuYWdvXCA7CivmgqDjgIUgPCB5dXV5dXVcIDsKK+WKtOW9uSA8IHJvdWVraVwgOwor6IyX6I23IDwgbXlvdWdhXCA7Civnm67nsaAgPCBtZWthZ29cIDsKK+edgOeJqSA8IGtpbW9ub1wgOwor6LuK6aKoIDwgc2hhZnV1XCA7CivmqJnoqJggPCBoeW91a2lcIDsKK+msmumrryA8IHNodXplblwgOwor5YmN5q61IDwgemVuZGFuXCA7Civpga7mlq0gPCBzaGFkYW5cIDsKK+mBqeaZgiA8IHRla2lqaVwgOwor6I2J57SZIDwgc291c2hpXCA7CivokL3lvowgPCByYWt1Z29cIDsKK+ebsueuoSA8IG1vdWthblwgOwor5Y2B5LiJIDwganV1c2FuXCA7CivljYHkuIcgPCBqdXVtYW5cIDsKK+avkuWRsyA8IGRva3VtaVwgOwor6JGJ5be7IDwgaGFtYWtpXCA7CivlvLXlrZAgPCBoYXJpa29cIDsKK+efs+WxiyA8IGlzaGl5YVwgOwor5b6h5Li7IDwgb251c2hpXCA7Civpg73lkIggPCB0c3Vnb3VcIDsKK+W+oeS4rSA8IG9uY2h1dVwgOwor6Iqx6LyqIDwgaGFuYXdhXCA7CivlvIHmhbYgPCBiZW5rZWlcIDsKK+S4jeiynuWvnSA8IGZ1dGVuZVwgOwor5YWN6KixIDwgbWVua3lvXCA7CivlubLniq8gPCBrYW5wYW5cIDsKK+WJquaenSA8IHNlbnNoaVwgOwor6Iqx6Lu4IDwga2FqaWt1XCA7Civlub3nhLYgPCB5dXV6ZW5cIDsKK+WHueeUsCA8IGt1Ym90YVwgOwor6Ium6KG3IDwga3VjaHV1XCA7CivnmbroposgPCBoYWtrZW5cIDsKK+WFjuinkiA8IHRva2FrdVwgOwor5b2T5ZywIDwgdG91Y2hpXCA7CivlubLniakgPCBoaW1vbm9cIDsKK+W5s+eJiCA8IGhlaWhhblwgOwor6Ium6KGMIDwga3VneW91XCA7Civpr6johIIgPCBnZWlzaGlcIDsKK+WGjeiIiCA8IHNhaWtvdVwgOwor6JC95bqmIDwgb2NoaWRvXCA7CivnoLLlj7AgPCBob3VkYWlcIDsKK+WGjeiHqCA8IHNhaXJpblwgOwor55yf55SwIDwgc2FuYWRhXCA7CivliqnlvbkgPCBqb3lha3VcIDsKK+avjuWPtyA8IG1haWdvdVwgOwor5Yqj5oCnIDwgcmVzc2VpXCA7Civnm67nrIogPCBtZXphcnVcIDsKK+atr+W9oiA8IGhhZ2F0YVwgOwor5by+5aWPIDwgZGFuc291XCA7CivljIXlkKsgPCBob3VnYW5cIDsKK+W7g+agoSA8IGhhaWtvdVwgOwor5b6M5L6/IDwga291YmluXCA7CivljI3ljJAgPCBob2Z1a3VcIDsKK+mDiuWkliA8IGtvdWdhaVwgOwor5by35aemIDwgZ291a2FuXCA7Civnmb3ooaMgPCBieWFrdWVcIDsKK+W3qOiJpiA8IGt5b2thblwgOwor6YCy5q2pIDwgc2hpbnBvXCA7Civlh6HnnLwgPCBib25nYW5cIDsKK+WDp+mWgCA8IHNvdW1vblwgOwor6L+U55uDIDwgaGVucGFpXCA7Civlt6XoirggPCBrb3VnZWlcIDsKK+i7jemaiiA8IGd1bnRhaVwgOwor6JC95beuIDwgcmFrdXNhXCA7Civlt6joiLkgPCBreW9zZW5cIDsKK+mxl+eKtiA8IHJpbmpvdVwgOwor6LuN6ZmjIDwgZ3VuamluXCA7CivovKrorJsgPCByaW5rb3VcIDsKK+aui+WtmCA8IHphbnpvblwgOwor5bmz54S2IDwgaGVpemVuXCA7CivliIfniYcgPCBzZXBwZW5cIDsKK+WMl+WFiSA8IGhva2tvdVwgOwor5q2m5b6zIDwgYnV0b2t1XCA7CivnnInnm64gPCBiaW1va3VcIDsKK+ecvOeCuSA8IGdhbnRlblwgOwor5YuV5aSpIDwgZG91dGVuXCA7Civlip/lvrMgPCBrdWRva3VcIDsKK+W+jOS7tiA8IGtvdWtlblwgOwor6Imm6ZqKIDwga2FudGFpXCA7Civmra/ljLvogIUgPCBoYWlzaGFcIDsKK+iLl+ijlCA8IGJ5b3VlaVwgOwor5Yqg5b25IDwga2F5YWt1XCA7Civlvozku6MgPCBrb3VkYWlcIDsKK+mxl+eJhyA8IHJpbnBlblwgOwor5byK5bqXIDwgaGVpdGVuXCA7CivnnJ/nkIYgPCBzaGlucmlcIDsKK+WElei8qSA8IHNhaWhhaVwgOwor55qu6IacIDwgaGltYWt1XCA7CivkvLzpoZTntbUgPCBuaWdhb2VcIDsKK+W9ueWEgCA8IHlha3VnaVwgOwor55yf54+gIDwgc2hpbmp1XCA7Civliarmlq0gPCBzZW5kYW5cIDsKK+WFrOiRrCA8IGtvdXNvdVwgOwor56CC5aC0IDwgc3VuYWJhXCA7CivlvIHlvZMgPCBiZW50b3VcIDsKK+mAk+a4myA8IHRlaWdlblwgOwor5b6A5L+hIDwgb3VzaGluXCA7Civou43ploAgPCBndW5tb25cIDsKK+W6p+aomSA8IHphaHlvdVwgOwor6a2a6YGTIDwgZ3lvZG91XCA7CivoiYfpppYgPCB0ZWlzaHVcIDsKK+mCquWulyA8IGphc2h1dVwgOwor5q2j5bymIDwgc2VpZ2VuXCA7Civli4flp78gPCB5dXVzaGlcIDsKK+WIhueFmSA8IGJ1bicnZW5cIDsKK+asoOacrCA8IGtlcHBvblwgOwor5q+O5YiGIDwgbWFpZnVuXCA7CivliLbmraIgPCBzZWlzaGlcIDsKK+mDteWIuCA8IHl1dWtlblwgOwor6I2S56OvIDwgYXJhaXNvXCA7Civou73ovKkgPCBrZWloYWlcIDsKK+iPr+aXjyA8IGthem9rdVwgOwor5qeL6YCgIDwga291em91XCA7CivokZflpKcgPCBjaG9kYWlcIDsKK+WHuueJqSA8IGRlbW9ub1wgOwor6IyF6IiOIDwgYm91c2hhXCA7Civluqfmpa0gPCB6YWd5b3VcIDsKK+WLneWboCA8IHNob3VpblwgOwor55qu6IKJIDwgaGluaWt1XCA7CivliY3moL0gPCBzZW56YWlcIDsKK+egsuWFtSA8IGhvdWhlaVwgOwor5YaF6IGeIDwgbmFpYnVuXCA7CivliIbngrkgPCBidW50ZW5cIDsKK+atu+WuiCA8IHNoaXNodVwgOwor5bqV5q2iIDwgdGVpc2hpXCA7CivlhbXoiLkgPCBoZWlzZW5cIDsKK+WIpeazlSA8IGJlcHBvdVwgOwor5Ye454mIIDwgdG9wcGFuXCA7CivpgJrmsJcgPCB0c3V1a2lcIDsKK+WKoOW3niA8IGthc2h1dVwgOwor5q2j5bi4IDwgc2Vpam91XCA7Civlu7vlu4ogPCBrYWlyb3VcIDsKK+mAn+atqSA8IHNva3Vob1wgOwor5bmy5r2fIDwgaGlnYXRhXCA7Civou73ouoEgPCBrZWlzb3VcIDsKK+mBpeaLnSA8IHlvdWhhaVwgOwor6Iq46KuHIDwgZ2VpZGFuXCA7Civlt6fogIUgPCBrb3VzaGFcIDsKK+WEquirmiA8IHl1dWpvdVwgOwor6bOp5bqnIDwgaGF0b3phXCA7Civnn63lpKcgPCB0YW5kYWlcIDsKK+W3pue/vCA8IHNheW9rdVwgOwor6Iy2562FIDwgY2hhc2VuXCA7CivliY3mnb8gPCBtYWVpdGFcIDsKK+WDu+mBoCA8IGhla2llblwgOwor6auY6bqXIDwga291cmFpXCA7CivouqvpoIMgPCBtaWdvcm9cIDsKK+WJjeadoSA8IHplbmpvdVwgOwor5YWl6I23IDwgbnl1dWthXCA7CivlibLmi6AgPCBrYWtreW9cIDsKK+W8t+WbuiA8IGt5b3Vrb1wgOwor5bmz5rqWIDwgaGVpanVuXCA7CivlvJ/lprkgPCB0ZWltYWlcIDsKK+eXm+mjsiA8IHRzdXVpblwgOwor5Yq+5aWPIDwgZ2Fpc291XCA7CivlubLmuoAgPCBrYW5tYW5cIDsKK+WJjeabuCA8IHplbnNob1wgOwor5bu25bm0IDwgZW4nJ25lblwgOwor55eF6a2UIDwgYnlvdW1hXCA7CivliKnmrLIgPCByaXlva3VcIDsKK+mDreWFrCA8IGtha2tvdVwgOwor5bqt5pyoIDwgbml3YWtpXCA7Civmpb3pn7MgPCBnYWt1b25cIDsKK+aui+WhgSA8IHphbnJ1aVwgOwor5YWl6IuRIDwgbnl1dWVuXCA7Civoi6XokYkgPCB3YWthYmFcIDsKK+WHhueciyA8IGp1bmthblwgOwor5bi455SoIDwgam91eW91XCA7Civli7Llip8gPCBrdW5rb3VcIDsKK+W8iuWusyA8IGhlaWdhaVwgOwor5q2k5bK4IDwgc2hpZ2FuXCA7CivlubPmt6EgPCBoZWl0YW5cIDsKK+eBq+S6i+WgtCA8IGthamliYVwgOwor5YWo6IisIDwgemVucGFuXCA7CivliY3mma8gPCB6ZW5rZWlcIDsKK+mBoOaImiA8IGVuc2VraVwgOwor5q665YiwIDwgc2F0dG91XCA7Civnm67nm5sgPCBtZW1vcmlcIDsKK+iLpeiPnCA8IHdha2FuYVwgOwor5biG56uLIDwgaG90YXRlXCA7Civpg6HliLYgPCBndW5zZWlcIDsKK+mDteS+vyA8IHl1dWJpblwgOwor6Lui6YCBIDwgdGVuc291XCA7Civnm67nmb0gPCBtZWppcm9cIDsKK+ebquebqiA8IHRvdXRvdVwgOwor5Yid5q61IDwgc2hvZGFuXCA7CivoiLnpoK0gPCBzZW5kb3VcIDsKK+W9k+WIhiA8IHRvdWJ1blwgOwor6YCx5pyfIDwgc2h1dWtpXCA7Civpg47lkJsgPCByb3VrdW5cIDsKK+i/keeKtiA8IGtpbmpvdVwgOwor5beo57eoIDwga3lvaGVuXCA7CivoirHoposgPCBoYW5hbWlcIDsKK+WGhee3miA8IG5haXNlblwgOwor5qyg5pCNIDwga2Vzc29uXCA7CivlhoXnt5IgPCBuYWlzaG9cIDsKK+WIkeazlSA8IGtlaWhvdVwgOwor6bO05a2QIDwgbmFydWtvXCA7CivliY3mlocgPCB6ZW5idW5cIDsKK+atpuWtpiA8IGJ1Z2FrdVwgOwor5Ye65r2uIDwgZGVzaGlvXCA7CivluK3nlLsgPCBzZWtpZ2FcIDsKK+mAhuavmyA8IHNha2FnZVwgOwor6YGp5b+cIDwgdGVraW91XCA7CivprZrosp0gPCBneW9iYWlcIDsKK+iLpeiKvSA8IHdha2FtZVwgOwor6Lui6LyJIDwgdGVuc2FpXCA7CivlhrfnnLwgPCByZWlnYW5cIDsKK+WLpOWLiSA8IGtpbmJlblwgOwor5qub5q+UIDwgc2hpcHBpXCA7CivpgIHmsLQgPCBzb3VzdWlcIDsKK+WLpOWKtCA8IGtpbnJvdVwgOwor5biC56iOIDwgc2hpemVpXCA7Civmr43kubMgPCBib255dXVcIDsKK+i7oui7oiA8IHRlbnRlblwgOwor6YGU5oiQIDwgdGFzc2VpXCA7CivlhoXntJsgPCBuYWlmdW5cIDsKK+WLv+S9kyA8IG1vdHRhaVwgOwor5YuY5ZCIIDwga2FuZ291XCA7CivojLbnopcgPCBjaGF3YW5cIDsKK+i7jemFjSA8IGd1bmJhaVwgOwor5bmz5rC0IDwgaGVpc3VpXCA7Civps6XlsYsgPCB0b3JpeWFcIDsKK+W5s+awkSA8IGhlaW1pblwgOwor5bmz5rCPIDwgaGVpc2hpXCA7CivpgKPmnp0gPCByZW5zaGlcIDsKK+avjeS4iiA8IGhhaGF1ZVwgOwor5YuV5ZCRIDwgZG91a291XCA7Civnlr7pp4YgPCBzaGlra3VcIDsKK+WHvea4oCA8IGthbmt5b1wgOwor6L6y55SjIDwgbm91c2FuXCA7CivliJHmrbsgPCBrZWlzaGlcIDsKK+alvOmWgCA8IHJvdW1vblwgOwor5YWs572yIDwga291c2hvXCA7CivlubTmra8gPCBuZW5zaGlcIDsKK+mAoOaelyA8IHpvdXJpblwgOwor6Ii56ZqKIDwgc2VudGFpXCA7CivpgaDlv4MgPCBlbnNoaW5cIDsKK+iLm+iLmyA8IGlyYWlyYVwgOwor5byx5ZGzIDwgeW93YW1pXCA7CivpganluqYgPCB0ZWtpZG9cIDsKK+WJiuaRqSA8IHNha3VtYVwgOwor6Lyq6JS1IDwgcmluem91XCA7CivlvL7lir4gPCBkYW5nYWlcIDsKK+mBlOaEjyA8IHRhdHN1aVwgOwor5bqV5pysIDwgdGVpaG9uXCA7CivliLDmnaUgPCB0b3VyYWlcIDsKK+eZuuiJpiA8IGhha2thblwgOwor5YiO5q27IDwgZnVuc2hpXCA7Civou43pgZMgPCBndW5kb3VcIDsKK+WJteW7uiA8IHNvdWtlblwgOwor5YmN5o+QIDwgemVudGVpXCA7CivlhqznnYAgPCBmdXl1Z2lcIDsKK+mAoOacrCA8IHpvdWhvblwgOwor55yL54K5IDwga2FudGVuXCA7CivmrKPmh5AgPCBraW5rYWlcIDsKK+iWhOOAhSA8IHVzdXVzdVwgOwor5Yas55ygIDwgdG91bWluXCA7Civosarpm6jnpo0gPCBnb3V1a2FcIDsKK+WLneWIqSA8IHNob3VyaVwgOwor55m76IeoIDwgdG91cmluXCA7Civou4rpgZMgPCBzaGFkb3VcIDsKK+W8t+WMliA8IGt5b3VrYVwgOwor6L6b55uuIDwga2FyYW1lXCA7Civli5Xli6IgPCBkb3VzZWlcIDsKK+eXtOmIjSA8IGNoaWRvblwgOwor5q6L5ZOBIDwgemFucGluXCA7CivlurjmiY0gPCB5b3VzYWlcIDsKK+WLleWKtCA8IGRvdXJvdVwgOwor6LuS6LyKIDwga2VuY2hpXCA7CivlhYnoipIgPCBrb3Vib3VcIDsKK+W4r+eKtiA8IG9iaWpvdVwgOwor6Ium6IKJIDwga3VuaWt1XCA7CivpgKPmmJ8gPCByZW5zZWlcIDsKK+ebrueOiSA8IG1lZGFtYVwgOwor6Iy255uGIDwgY2hhYm9uXCA7Civpg47lhZogPCByb3Vkb3VcIDsKK+W4g+efsyA8IGZ1c2VraVwgOwor6Iel6b6NIDwgZ2FyeW91XCA7CivlvIHlpKkgPCBiZW50ZW5cIDsKK+WIh+atryA8IHNlc3NoaVwgOwor55+t5ZG9IDwgdGFubWVpXCA7Civlt6PnrrEgPCBzdWJha29cIDsKK+auv+S4iiA8IHRlbmpvdVwgOwor6Ii36ZaAIDwgZ2VubW9uXCA7CivpgbjlrpogPCBzZW50ZWlcIDsKK+WLh+WQjSA8IHl1dW1laVwgOwor5q2j5aSnIDwgc2VpZGFpXCA7Civpq5Hpq48gPCBkb2t1cm9cIDsKK+WIqeacrSA8IHJpZnVkYVwgOwor6YG35a6uIDwgc2VuZ3V1XCA7Civou6LosrggPCB0ZW50YWlcIDsKK+W8geWjqyA8IGJlbnNoaVwgOwor5Lqc6bq76KO9IDwgYW1hc2VpXCA7CivpgZPlv7UgPCBkb3VuZW5cIDsKK+ees+WtkCA8IGRvdXNoaVwgOwor5b2T5LujIDwgdG91ZGFpXCA7CivluormnLogPCBzaG91Z2lcIDsKK+WFiOiIrCA8IHNlbnBhblwgOwor5b2T5Lq6IDwgdG91bmluXCA7CivpgbXlroggPCBqdW5zaHVcIDsKK+i7iui8qiA8IHNoYXJpblwgOwor5Yid5qChIDwgc2hva291XCA7Civou43ou4ogPCBndW5zaGFcIDsKK+mAo+aVlyA8IHJlbnBhaVwgOwor5bqV5pWwIDwgdGVpc3V1XCA7Civlh7rmsLQgPCBkZW1penVcIDsKK+i6q+mKrSA8IG1pemVuaVwgOwor6Imm6LyJIDwga2Fuc2FpXCA7CivluoPmnbEgPCBrYW50b25cIDsKK+W4g+ebriA8IG51bm9tZVwgOwor5YW456+EIDwgdGVucGFuXCA7Civnl4XpmaIgPCBieW91aW5cIDsKK+efpeWRvSA8IGNoaW1laVwgOwor55uX55SoIDwgdG91eW91XCA7CivliZvmgKcgPCBnb3VzZWlcIDsKK+W9k+S4liA8IHRvdXNlaVwgOwor5YuJ5YqxIDwgYmVucmVpXCA7Civlh7rmrrsgPCBkZWdhcmFcIDsKK+WFjuiCiSA8IHRvbmlrdVwgOwor55yg5rCXIDwgbmVtdWtlXCA7CivojLbnlaogPCBjaGFiYW5cIDsKK+ecn+awtCA8IG1hbWl6dVwgOwor5bem56iLIDwgc2Fob2RvXCA7Civpq5jpoqggPCBrb3VmdXVcIDsKK+W5veaelyA8IHl1dXJpblwgOwor6L+U5riIIDwgaGVuc2FpXCA7Civlhqznk5wgPCB0b3VnYW5cIDsKK+auiuWLsiA8IHNodWt1blwgOwor5YWJ6IOMIDwga291aGFpXCA7Civou4zot6EgPCBraXNla2lcIDsKK+W8seWGoCA8IGpha2thblwgOwor55+l5Y+LIDwgY2hpeXV1XCA7CivliqDlnKcgPCBrYWF0c3VcIDsKK+iMtueTtiA8IGNoYWJpblwgOwor5Yip5pW1IDwgcml0ZWtpXCA7CivliKTmmI4gPCBoYW5tZWlcIDsKK+mBqeWunCA8IHRla2lnaVwgOwor5q6K5YqfIDwgc2h1a291XCA7CivlvKXli5IgPCBtaXJva3VcIDsKK+WGpeeVjCA8IG1laWthaVwgOwor6Iqt6JWJIDwgYmFzaG91XCA7CivpgYvlvJMgPCB1bmt5dXVcIDsKK+WJo+W4ryA8IGtlbnRhaVwgOwor6auY6Z+zIDwgdGFrYW5lXCA7Civoia/osqggPCByeW91a2FcIDsKK+efreWJoyA8IHRhbmtlblwgOwor5YWI6IGWIDwgc2Vuc2VpXCA7CivlhajnsbMgPCB6ZW5iZWlcIDsKK+ebsueCuSA8IG1vdXRlblwgOwor5Yik5patIDwgaGFuZGFuXCA7CivmrZPlo7AgPCBrYW5zZWlcIDsKK+asveWumiA8IGtpbnRlaVwgOwor6YCP5piOIDwgdG91bWVpXCA7Civph43jgIUgPCBqdXVqdXVcIDsKK+i7n+irliA8IG5hbnJvblwgOwor6YK45YaFIDwgdGVpbmFpXCA7CivlhY3nvaogPCBtZW56YWlcIDsKK+W7g+W4nSA8IGhhaXRlaVwgOwor55+t5YiAIDwgdGFudG91XCA7CivlhaznrpcgPCBrb3VzYW5cIDsKK+iIjOmgrSA8IHpldHRvdVwgOwor6YG45aSWIDwgc2VuZ2FpXCA7CivmrbvljrsgPCBzaGlreW9cIDsKK+i7jeizhyA8IGd1bnNoaVwgOwor5byV5ZCIIDwgaGlraWFpXCA7Civlub3mma8gPCB5dXVrZWlcIDsKK+mBiuW6lSA8IHl1dXRlaVwgOwor55+p5YmHIDwga3Vzb2t1XCA7Civlt6HnpLwgPCBqdW5yZWlcIDsKK+W5tOadpSA8IG5lbnJhaVwgOwor5Yid5pesIDwgc2hvanVuXCA7CivlubPmnb8gPCBoZWliYW5cIDsKK+WEgOihqCA8IGdpaHlvdVwgOwor5YW156iuIDwgaGVpc2h1XCA7Civlt6jnoLIgPCBreW9ob3VcIDsKK+eahue0jSA8IGthaW5vdVwgOwor5q6L5YWaIDwgemFudG91XCA7CivmrKHluK0gPCBqaXNla2lcIDsKK+atjOWjsCA8IHV0YWdvZVwgOwor5qih57SiIDwgbW9zYWt1XCA7CivmrovlhYkgPCB6YW5rb3VcIDsKK+WFg+iAgSA8IGdlbnJvdVwgOwor6Iqz6I2JIDwgaG91c291XCA7CivnnJ/mqKogPCBtYXlva29cIDsKK+WFq+erryA8IGhhdHRhblwgOwor5YiG5qChIDwgYnVua291XCA7CivpgKPmipUgPCByZW50b3VcIDsKK+ebl+eKryA8IHRvdWhhblwgOwor5by+5Li4IDwgZGFuZ2FuXCA7CivmrYzlooMgPCBrYWt5b3VcIDsKK+WGmeeUnyA8IHNoYXNlaVwgOwor5q6L5YOPIDwgemFuem91XCA7Civmranlk6ggPCBob3Nob3VcIDsKK+ecjOawkSA8IGtlbm1pblwgOwor5Ymj5bGxIDwga2VuemFuXCA7CivlirTlip8gPCByb3Vrb3VcIDsKK+mAo+aIpiA8IHJlbnNlblwgOwor5Ya354S2IDwgcmVpemVuXCA7Civli5XkubEgPCBkb3VyYW5cIDsKK+WItuaGsiA8IHNlaWtlblwgOwor5byT5YuiIDwgeXVuemVpXCA7CivlhoXnnIEgPCBuYWlzZWlcIDsKK+W5s+aYjiA8IGhlaW1laVwgOwor5q275YiRIDwgc2hpa2VpXCA7CivnnInmr5sgPCBtYXl1Z2VcIDsKK+mAoOaIkCA8IHpvdXNlaVwgOwor5buD5bGLIDwgaGFpb2t1XCA7CivliIfmm78gPCBzZXR0YWlcIDsKK+mAg+aVoyA8IHRvdXNhblwgOwor6Lqr6Lu9IDwgbWlnYXJ1XCA7Civnn6LlhYggPCB5YXNha2lcIDsKK+i7jeirhyA8IGd1bmRhblwgOwor5bm05pWwIDwgbmVuc3V1XCA7CivlsbHnvorluqcgPCB5YWdpemFcIDsKK+ato+WRsyA8IHNob3VtaVwgOwor6YCA5pWjIDwgdGFpc2FuXCA7Civoirjog70gPCBnZWlub3VcIDsKK+mAo+aDsyA8IHJlbnNvdVwgOwor5q6L5L2ZIDwgemFuJyd5b1wgOwor6YGj5aSWIDwga2VuZ2FpXCA7CivlvIHlj6MgPCBiZW5rb3VcIDsKK+eak+ekrCA8IGtvdWJhblwgOwor5q2j5Y+3IDwgc2VpZ291XCA7Civoi6bnrJEgPCBrdXNob3VcIDsKK+WIhuaYjiA8IGJ1bm1laVwgOwor5byT5YW3IDwga3l1dWd1XCA7CivnmYzohasgPCBnYW5zaHVcIDsKK+efruS6uiA8IHdhaWppblwgOwor6I2S5rW3IDwgYXJhdW1pXCA7Civps7Tli5UgPCBtZWlkb3VcIDsKK+WGheeVjCA8IG5haWthaVwgOwor5bqn5bitIDwgemFzZWtpXCA7CivmraPljZcgPCBzZWluYW5cIDsKK+iKuOiAhSA8IGdlaXNoYVwgOwor5q2j5Y2IIDwgc2hvdWdvXCA7CivlhoXnlKggPCBuYWl5b3VcIDsKK+WIpeaHhyA8IGJla2tvblwgOwor5YiG5pWwIDwgYnVuc3V1XCA7CivliIbmlaMgPCBidW5zYW5cIDsKK+WEquiAhSA8IHl1dXNoYVwgOwor5Y2S5aGU5amGIDwgc290b2JhXCA7Civmra/lhqAgPCBzaGlrYW5cIDsKK+WGjeePviA8IHNhaWdlblwgOwor5bq35a+nIDwga291bmVpXCA7Civlip/lirQgPCBrb3Vyb3VcIDsKK+ashOW5siA8IHJhbmthblwgOwor5YiX5oyZIDwgcmVra3lvXCA7CivliY3lsbEgPCB6ZW56YW5cIDsKK+W8peS5hSA8IGJpa3l1dVwgOwor55m656uvIDwgaG90dGFuXCA7CivliJ3miKYgPCBzaG9zZW5cIDsKK+i7jeijhSA8IGd1bnNvdVwgOwor5Yil5oSPIDwgYmV0c3VpXCA7Civlh7rmmYIgPCBkZWRva2lcIDsKK+mAo+W8viA8IHJlbmRhblwgOwor5Lqc6bq76ImyIDwgYW1haXJvXCA7Civnn6XkurogPCBjaGlqaW5cIDsKK+iMq+eEtiA8IGJvdXplblwgOwor6LyU57+8IDwgaG95b2t1XCA7CivovrLms5UgPCBub3Vob3VcIDsKK+WIqeaBryA8IHJpc29rdVwgOwor5bqc5bqBIDwgZnVjaG91XCA7CivlurblrZAgPCBzaG9zaGlcIDsKK+iPr+WloiA8IGt5YXNoYVwgOwor6Iez6ZujIDwgc2hpbmFuXCA7CivlirTkvb8gPCByb3VzaGlcIDsKK+W7ieWjsiA8IHJlbmJhaVwgOwor5q275L2TIDwgc2hpdGFpXCA7CivpgKLlvJUgPCBhaWJpa2lcIDsKK+WBnOmgkyA8IHRlaXRvblwgOwor6YG65ZGKIDwgeXVpZ291XCA7Civlh73mlbAgPCBrYW5zdXVcIDsKK+WGt+a3oSA8IHJlaXRhblwgOwor55yf5pi8IDwgbWFoaXJ1XCA7Civlh7rmlrkgPCBkZWthdGFcIDsKK+WJo+WjqyA8IGtlbnNoaVwgOwor5YWs55uKIDwga291ZWtpXCA7CivoiLnot68gPCBmdW5hamlcIDsKK+eWjumalCA8IHNva2FrdVwgOwor5Yqg5YWlIDwga2FueXV1XCA7CivovrLmsJEgPCBub3VtaW5cIDsKK+mBoOWbvSA8IG9uZ29rdVwgOwor5YW355SzIDwgZ3VzaGluXCA7CivojbfmnK0gPCBuaWZ1ZGFcIDsKK+W4reasoSA8IHNla2lqaVwgOwor5Yip5b6XIDwgcml0b2t1XCA7Civlhajnm7IgPCB6ZW5tb3VcIDsKK+atu+S6oSA8IHNoaWJvdVwgOwor5beo542jIDwga3lvanV1XCA7CivmraPlhbUgPCBzZWloZWlcIDsKK+WFqOebmyA8IHplbnNlaVwgOwor6LmI6Z60IDwgdGF0YXJhXCA7CivpgKPluK8gPCByZW50YWlcIDsKK+mAn+W6piA8IHNva3Vkb1wgOwor5Yiw5bqVIDwgdG91dGVpXCA7CivlhY3nqI4gPCBtZW56ZWlcIDsKK+iIjOmLkiA8IHplcHBvdVwgOwor6YCg5bmjIDwgem91aGVpXCA7CivmqJnnpLogPCBoeW91amlcIDsKK+W5s+aJiyA8IGhpcmF0ZVwgOwor5YGc6Zu7IDwgdGVpZGVuXCA7CivlgaXpl5ggPCBrZW50b3VcIDsKK+iIn+mBiyA8IHNodXV1blwgOwor5qiq55uuIDwgeW9rb21lXCA7Civlh7Hml4sgPCBnYWlzZW5cIDsKK+ebruasoSA8IG1va3VqaVwgOwor5Ya35rOJIDwgcmVpc2VuXCA7CivlhajnmZIgPCB6ZW4nJ3l1XCA7Civnmb3no4EgPCBoYWt1amlcIDsKK+i/lOacrCA8IGhlbnBvblwgOwor5Yil5b2iIDwgYmVra2VpXCA7Civlubvmg7MgPCBnZW5zb3VcIDsKK+eci+advyA8IGthbmJhblwgOwor5YaN54eDIDwgc2FpbmVuXCA7CivnnYDmhI8gPCBjaGFrdWlcIDsKK+WGheeKtiA8IG5haWpvdVwgOwor5Yil5b2TIDwgYmV0dG91XCA7Civov5HmnbEgPCBraW50b3VcIDsKK+W7uuWFtyA8IHRhdGVndVwgOwor6L+R5p2lIDwga2lucmFpXCA7Civov5Tmm7ggPCBoZW5zaG9cIDsKK+W6j+W5lSA8IGpvbWFrdVwgOwor5YG06Y6WIDwgc29rdXNhXCA7CivmpoLoq5YgPCBnYWlyb25cIDsKK+eXhei6ryA8IGJ5b3VrdVwgOwor5qW96K2cIDwgZ2FrdWZ1XCA7CivlhrfmsZcgPCByZWlrYW5cIDsKK+WIhuaLhSA8IGJ1bnRhblwgOwor6L6j5rK5IDwgcmF6ZXl1XCA7CivliofljJYgPCBnZWtpa2FcIDsKK+WGt+awtCA8IHJlaXN1aVwgOwor6YKE5YWDIDwga2FuZ2VuXCA7CivliKnluYUgPCByaWhhYmFcIDsKK+WHoeabuCA8IGJvbnNob1wgOwor6YCj5bOwIDwgcmVucG91XCA7Civliofli5kgPCBnZWtpbXVcIDsKK+WIh+aJiyA8IGtpcmV0ZVwgOwor5bm75oCqIDwgZ2Vua2FpXCA7Civov73mhZUgPCB0c3VpYm9cIDsKK+eZuuegsiA8IGhhcHBvdVwgOwor6Lqr6KixIDwgbWltb3RvXCA7CivpganlkKYgPCB0ZWtpaGlcIDsKK+WHuuaOmyA8IGRlZ2FrZVwgOwor5YaG54afIDwgZW5qdWt1XCA7Civov5Hmma8gPCBraW5rZWlcIDsKK+mAo+WxsSA8IHJlbnphblwgOwor6auY6YKBIDwga291bWFpXCA7CivliY3lpY8gPCB6ZW5zb3VcIDsKK+W6l+WxiyA8IG1pc2V5YVwgOwor5Yem5pa5IDwgc2hvaG91XCA7CivpnZLmtbfoi5QgPCBhb25vcmlcIDsKK+mBjeWcqCA8IGhlbnphaVwgOwor5Yil5be7IDwgYmVra2FuXCA7CivlhpfmvKsgPCBqb3VtYW5cIDsKK+amguimsyA8IGdhaWthblwgOwor5YmN5aScIDwgemVuJyd5YVwgOwor5bu65YCkIDwgdGF0ZW5lXCA7CivlubvlvbEgPCBnZW4nJ2VpXCA7CivpgKPlsIQgPCByZW5zaGFcIDsKK+WJjeWjsiA8IG1hZXVyaVwgOwor5qaC6KaBIDwgZ2FpeW91XCA7Civlgo3ovKkgPCBob3ViYWlcIDsKK+eZveeciSA8IGhha3ViaVwgOwor5bOh6YOoIDwga3lvdWJ1XCA7CivliLblrpogPCBzZWl0ZWlcIDsKK+i7vee9qiA8IGtlaXphaVwgOwor55Wq6aCtIDwgYmFudG91XCA7CivliJ3lubQgPCBzaG9uZW5cIDsKK+i+m+awlyA8IHNoaW5raVwgOwor5Ymy5ZCIIDwgd2FyaWFpXCA7CivmpbzoprMgPCByb3VrYW5cIDsKK+iLpueXmyA8IGt1dHN1dVwgOwor5bm+5bm0IDwgaWt1bmVuXCA7Civlhqzmr5sgPCBmdXl1Z2VcIDsKK+WFiOefpSA8IHNlbmNoaVwgOwor5bqX5a2QIDwgdGFuYWtvXCA7CivprZrnvqQgPCBneW9ndW5cIDsKK+mAgOW9uSA8IHRhaWVraVwgOwor5bm85bm0IDwgeW91bmVuXCA7Civov4Lmm7IgPCB1a3lva3VcIDsKK+WJsuWNsCA8IHdhcmlpblwgOwor5Yip5bC/IDwgcmlueW91XCA7CivkvLzpnZ7opqogPCBlc2VveWFcIDsKK+W6iuWxiyA8IHRva295YVwgOwor6YCA5bu3IDwgdGFpdGVpXCA7CivmqKnnj74gPCBnb25nZW5cIDsKK+WBtOmDqCA8IHNva3VidVwgOwor5biw5pyNIDwga2lmdWt1XCA7CivnnLzlupUgPCBnYW50ZWlcIDsKK+mAgOW7gyA8IHRhaWhhaVwgOwor5Yil5bGFIDwgYmVra3lvXCA7CivnlZnpo7IgPCByeXV1aW5cIDsKK+WIquWumiA8IHNhbnRlaVwgOwor5qyE5aSWIDwgcmFuZ2FpXCA7CivlhqDmsLQgPCBrYW5zdWlcIDsKK+WIpeWwgSA8IGJlcHB1dVwgOwor55y85bivIDwgZ2FudGFpXCA7CivlubPlubQgPCBoZWluZW5cIDsKK+W5s+W5syA8IGhlaWhlaVwgOwor6IeG6Z2iIDwgb2t1bWVuXCA7Civlu4Plk4EgPCBoYWloaW5cIDsKK+i/t+W9qSA8IG1laXNhaVwgOwor5biC5rCRIDwgc2hpbWluXCA7CivluoTlsYsgPCBzaG91eWFcIDsKK+iJsuiJsiA8IGlyb2lyb1wgOwor5Yag5q+bIDwga2FubW91XCA7CivluLjmlbAgPCBqb3VzdXVcIDsKK+i+suaelyA8IG5vdXJpblwgOwor5bmz5bi4IDwgaGVpam91XCA7Civoi5TnmawgPCB0YWlzZW5cIDsKK+eZsueZhyA8IHRlbmthblwgOwor5Lqc6bq757O4IDwgYW1haXRvXCA7CivliKTlrpogPCBoYW50ZWlcIDsKK+WIpOWumCA8IGhhbmdhblwgOwor5bed54CsIDwga2F3YXNlXCA7Civlu7fkuIEgPCB0ZWl0ZWlcIDsKK+eZuueUnyA8IGhhc3NlaVwgOwor6L6y5p2RIDwgbm91c29uXCA7CivlgbTov5EgPCBzb2traW5cIDsKK+ebpOaguSA8IGJhbmtvblwgOwor6a2C6IOGIDwga29udGFuXCA7Civlha3ljYHot68gPCBtdXNvamlcIDsKK+i9n+eEtiA8IGdvdXplblwgOwor5Yil5ayqIDwgYmVwcGluXCA7CivmrKDlk4EgPCBrZXBwaW5cIDsKK+mtmue2siA8IGd5b21vdVwgOwor5YaF5rmvIDwgdWNoaXl1XCA7CivkupzmuKnluK8gPCBhb250YWlcIDsKK+eUn+m6qSA8IG5hbWFmdVwgOwor5bm95bGFIDwgeXV1a3lvXCA7CivpgKPlpJwgPCByZW4nJ3lhXCA7Civlt6HmvJQgPCBqdW4nJ2VuXCA7CivmrYzkvJogPCB1dGFrYWlcIDsKK+WFrOeEtiA8IGtvdXplblwgOwor5be75q+bIDwgbWFraWdlXCA7Civou43oiaYgPCBndW5rYW5cIDsKK+mAo+WjsCA8IHJlbmpvdVwgOwor5L2Z5omA6KaLIDwgeW9zb21pXCA7Civoh6rph40gPCBqaWNob3VcIDsKK+WGhea4iCA8IG5haXNhaVwgOwor5YWI55WqIDwgc2VuYmFuXCA7CivpgYrlkJ8gPCB5dXVnaW5cIDsKK+mBiuWQmyA8IHl1dWt1blwgOwor6LuN6Ii5IDwgZ3Vuc2VuXCA7CivojYnmnKwgPCBzb3Vob25cIDsKK+ebsuaWrSA8IG1vdWRhblwgOwor552A5bC6IDwga2lqYWt1XCA7CivoiajoiZ8gPCBtb3Vkb3VcIDsKK+WBvei2syA8IGdpc29rdVwgOwor6I2J5pu4IDwgc291c2hvXCA7CivlhajnhLYgPCB6ZW56ZW5cIDsKK+WIl+WvpyA8IHJlZW5pblwgOwor6a2a57K+IDwgZ3lvc2VpXCA7CivoiaboiYcgPCBrYW50ZWlcIDsKK+ebruaWuSA8IG1la2F0YVwgOwor5Yeh5omNIDwgYm9uc2FpXCA7Civlh6HmiYsgPCBib25zaHVcIDsKK+WFheeUqCA8IGp1dXlvdVwgOwor6a2a57KJIDwgZ3lvZnVuXCA7Civlh6HmiKYgPCBib25zZW5cIDsKK+W6uOWQmyA8IHlvdWt1blwgOwor5YCk6aCDIDwgbmVnb3JvXCA7Civlh7blvpIgPCBreW91dG9cIDsKK+eWjumAmiA8IHNvdHN1dVwgOwor6Iez6L+RIDwgc2hpa2luXCA7CivluaLluaEgPCBkb3ViYW5cIDsKK+W5s+WxiyA8IGhpcmF5YVwgOwor6YGF5Y+CIDwgY2hpc2FuXCA7CivpgIblrZAgPCBzYWthZ29cIDsKK+WnlOWToeS8miA8IGlpbmthaVwgOwor55m954uQIDwgYnlha2tvXCA7CivlgKTpnpggPCBuZXpheWFcIDsKK+WHuuW6qyA8IHNodWtrb1wgOwor6L+95bC+IDwgdHN1aWJpXCA7Civlh7rlupwgPCBzaHVwcHVcIDsKK+WIneWpmiA8IHNob2tvblwgOwor5Ye65bqXIDwgZGVtaXNlXCA7CivlhoXmsrsgPCBuYWljaGlcIDsKK+i+suaUvyA8IG5vdXNlaVwgOwor5Ymb5YuHIDwgZ291eXV1XCA7CivmrKDli6QgPCBrZWtraW5cIDsKK+WFsea8lCA8IGt5b3VlblwgOwor6Ieq6YGpIDwgaml0ZWtpXCA7Civlh6Hmha4gPCBib25yeW9cIDsKK+mAgOWumCA8IHRhaWthblwgOwor55y85a2UIDwgZ2Fua291XCA7CivnlYzpnaIgPCBrYWltZW5cIDsKK+mBr+S4liA8IHRvbnNlaVwgOwor5bmz5a6aIDwgaGVpdGVpXCA7Civoj6/lhpEgPCBrYWNodXVcIDsKK+i8queVqiA8IHJpbmJhblwgOwor5L6d5a2Y5bqmIDwgaXpvbmRvXCA7Civlh7rluKsgPCBzdWlzaGlcIDsKK+WJjeWQjSA8IHplbm1laVwgOwor6YGT5YWDIDwgZG91Z2VuXCA7CivliY3lj7cgPCB6ZW5nb3VcIDsKK+WIpOWjqyA8IGhhbnNoaVwgOwor6Lyq55SfIDwgcmluc2VpXCA7CivlhoXmsJcgPCB1Y2hpa2lcIDsKK+WCjeiokyA8IGJvdWt1blwgOwor55y45a2QIDwgYm91c2hpXCA7CivpgYXlirkgPCBjaGlrb3VcIDsKK+W7g+WFtSA8IGhhaWhlaVwgOwor5YWN54q2IDwgbWVuam91XCA7CivluIbmoYEgPCBob2dldGFcIDsKK+apn+alrSA8IGtpZ3lvdVwgOwor6YCT5aKXIDwgdGVpem91XCA7CivluZXlupwgPCBiYWt1ZnVcIDsKK+W4reaNsiA8IHNla2tlblwgOwor6I235b25IDwgbml5YWt1XCA7CivlhoXmrr8gPCBuYWlkZW5cIDsKK+WCjeimsyA8IGJvdWthblwgOwor55WM6ZqIIDwga2Fpd2FpXCA7CivliIblsIEgPCBidW5wb3VcIDsKK+WFrOa6liA8IGtvdWp1blwgOwor5YKN6KaWIDwgd2FraW1pXCA7Civnmb3nhZkgPCBoYWt1ZW5cIDsKK+iLlOeKtiA8IHRhaWpvdVwgOwor6a2U56ybIDwgbWF0ZWtpXCA7CivlibXkuJYgPCBzb3VzZWlcIDsKK+i3s+mmrCA8IGNob3ViYVwgOwor5bi45oWLIDwgam91dGFpXCA7CivluoPloLQgPCBoaXJvYmFcIDsKK+WxsemhmyA8IHNhbnRlblwgOwor5YGc6LuKIDwgdGVpc2hhXCA7Civpq5jopqcgPCBrb3VyYW5cIDsKK+eUmOmvmyA8IGFtYWRhaVwgOwor5bqD5Z+fIDwga291aWtpXCA7CivmqKrmuqIgPCBvdWl0c3VcIDsKK+WGrOaXpSA8IGZ1eXViaVwgOwor6auY6KaLIDwgdGFrYW1pXCA7Civlg6fntrEgPCBzb3Vnb3VcIDsKK+WJjeWJjSA8IG1hZW1hZVwgOwor5bqn5Y2TIDwgemF0YWt1XCA7CivlhqDmnKggPCBrYWJ1a2lcIDsKK+iJr+e4gSA8IHJ5b3VlblwgOwor5Ymb5YGlIDwgZ291a2VuXCA7Civlgb3oqLwgPCBnaXNob3VcIDsKK+W4guaciSA8IHNoaXl1dVwgOwor5bqt5YmNIDwgdGVpemVuXCA7CivpmL/lg6fnpYcgPCBhc291Z2lcIDsKK+aknOi7iiA8IGtlbnNoYVwgOwor5bqX5ZOhIDwgdGVuJydpblwgOwor6YCy5YyWIDwgc2hpbmthXCA7CivmqLnmsLcgPCBqdWh5b3VcIDsKK+W6hOWckiA8IHNob3VlblwgOwor6Ieq6LazIDwgamlzb2t1XCA7CivpqqjouqsgPCBob25lbWlcIDsKK+WFreazlSA8IHJvcHBvdVwgOwor5Ye65a62IDwgc2h1a2tlXCA7Civpq5joo4EgPCBrb3VzYWlcIDsKK+eUu+mbhiA8IGdhc2h1dVwgOwor5YiG5aipIDwgYnVuYmVuXCA7CivoibLns7ggPCBpcm9pdG9cIDsKK+eUu+manCA8IGdhc2hvdVwgOwor5bGx6ZyKIDwgc2FucmVpXCA7CivlhpnmnKwgPCBzaGFob25cIDsKK+WFpea1tyA8IGlyaXVtaVwgOwor6LmC6LqqIDwganV1cmluXCA7CivluZXlsYsgPCBtYWt1eWFcIDsKK+WIu+WNsCA8IGtva3VpblwgOwor5Yeh5bi4IDwgYm9uam91XCA7Civov7flpoQgPCBtZWltb3VcIDsKK+eXm+iLpiA8IHRzdXVrdVwgOwor55uG5pmvIDwgYm9ua2VpXCA7CivoiLnojbcgPCBmdW5hbmlcIDsKK+mAo+WQnyA8IHJlbmdpblwgOwor5Yid5ZueIDwgc2hva2FpXCA7Civlu4PkurogPCBoYWlqaW5cIDsKK+WJm+S9kyA8IGdvdXRhaVwgOwor6LuK57eaIDwgc2hhc2VuXCA7CivpgKPlkIggPCByZW5nb3VcIDsKK+ebsuaDsyA8IG1vdXNvdVwgOwor5bm05aCxIDwgbmVucG91XCA7Civnm7jmgKcgPCBhaXNob3VcIDsKK+iLpea5ryA8IHdha2F5dVwgOwor5YWs5rCRIDwga291bWluXCA7CivluILml6UgPCBpY2hpYmlcIDsKK+anmOebuCA8IHlvdXNvdVwgOwor6bGI5a2QIDwgdGFyYWtvXCA7CivliIblpJYgPCBidW5nYWlcIDsKK+ebo+aIvyA8IGthbmJvdVwgOwor5biD5pWZIDwgZnVreW91XCA7CivpgKDlj40gPCB6b3VoYW5cIDsKK+WIhuWjsiA8IGJ1bmJhaVwgOwor5YeE5oOoIDwgc2Vpc2FuXCA7Civnm5vmjJkgPCBzZWlreW9cIDsKK+i7veebriA8IGthcnVtZVwgOwor5biw5b+DIDwga2lzaGluXCA7CivojJjmnp0gPCByZWlzaGlcIDsKK+ebuOW9uSA8IGFpeWFrdVwgOwor5bqn5YWDIDwgemFtb3RvXCA7Civlho3mnaUgPCBzYWlyYWlcIDsKK+WFvOalrSA8IGtlbmdvdVwgOwor55u+5bqnIDwgdGF0ZXphXCA7CivlhrfmiL8gPCByZWlib3VcIDsKK+WItuWLlSA8IHNlaWRvdVwgOwor55u45b2TIDwgc291dG91XCA7Civlt6HmpJwgPCBqdW5rZW5cIDsKK+WFteaoqSA8IGhlaWtlblwgOwor55m+5riIIDwga3VkYXJhXCA7Civoh7Poq5YgPCBzaGlyb25cIDsKK+iIueiJmSA8IHNlbnNvdVwgOwor5bGx6ZaTIDwgeWFtYWFpXCA7CivlubPlnYcgPCBoZWlraW5cIDsKK+WxsemWgCA8IHNhbm1vblwgOwor5YKt6Ii5IDwgeW91c2VuXCA7Civlhobmn7EgPCBlbmNodXVcIDsKK+eUn+mhniA8IHNlaXJ1aVwgOwor5bmz5ZywIDwgaGVpY2hpXCA7CivpgKPli5UgPCByZW5kb3VcIDsKK+WJjeS+vyA8IHplbmJpblwgOwor5bq45Lq6IDwgeW91amluXCA7CivlubTlm54gPCBuZW5rYWlcIDsKK+mAgOWboyA8IHRhaWRhblwgOwor55uy5b6TIDwgbW91anV1XCA7CivlhpfmlocgPCBqb3VidW5cIDsKK+WFqOaspyA8IHplbicnb3VcIDsKK+edvuS4uCA8IGtvdWdhblwgOwor6Iez6KiAIDwgc2hpZ2VuXCA7CivpgKPliKQgPCByZW5wYW5cIDsKK+i7kuerryA8IG5va2liYVwgOwor5bir5byfIDwgc2hpdGVpXCA7CivliY3ku7YgPCB6ZW5rZW5cIDsKK+WFq+WNgei3ryA8IHlhc29qaVwgOwor5bGP6aKoIDwgYnlvdWJ1XCA7Civnm7jluK0gPCBhaXNla2lcIDsKK+WJjeS7oyA8IHplbmRhaVwgOwor55Sf6Z2iIDwgc2VpbWVuXCA7Civoi6bmsYEgPCBuaWdhcmlcIDsKK+S8iuWLouidpiA8IGlzZWViaVwgOwor5YmN5Lq6IDwgemVuamluXCA7CivliIflnLAgPCBraXJlamlcIDsKK+WHtuWkoiA8IGt5b3VtdVwgOwor5YiG5ZywIDwgYnVuY2hpXCA7Civoibbnpo8gPCBlbnB1a3VcIDsKK+iLpeawlyA8IHdha2FnZVwgOwor55Sj6ZmiIDwgc2FuJydpblwgOwor5YiG5ZujIDwgYnVuZGFuXCA7Civoh6roqLsgPCBqaWNodXVcIDsKK+WIneWPtyA8IHNob2dvdVwgOwor6YC45LqLIDwgaXRzdWppXCA7Civlg7vnm64gPCBoaWdhbWVcIDsKK+WIgOWcrSA8IHRvdWtlaVwgOwor5YaK5pWwIDwgc2Fzc3V1XCA7CivnlLvpi7IgPCBnYWJ5b3VcIDsKK+WHuuWfjiA8IGRlamlyb1wgOwor5bm85ZCNIDwgeW91bWVpXCA7CivlsI/pvLsgPCBrb2JhbmFcIDsKK+WGheaXqCA8IG5haXNoaVwgOwor55eb5721IDwgdHN1dWJhXCA7Civoh6roppogPCBqaWtha3VcIDsKK+WGheaWuSA8IG5haWhvdVwgOwor5YG96JasIDwgZ2l5YWt1XCA7Civnl4Xoh6UgPCBieW91Z2FcIDsKK+WFseaghCA8IGt5b3VlaVwgOwor5YCk6YGHIDwgY2hpZ3V1XCA7CivlubblkZEgPCBoZWlkb25cIDsKK+W5vuWNgyA8IGlrdXNlblwgOwor6auY6JGXIDwga291Y2hvXCA7CivlsI/puqYgPCBrb211Z2lcIDsKK+WIhuWWtiA8IGJ1bicnZWlcIDsKK+ajkumLvCA8IGJvdWtvdVwgOwor6YCB5ZGIIDwgc291dGVpXCA7CivluqfkuK0gPCB6YWNodXVcIDsKK+W5tuWQiCA8IGhlaWdvdVwgOwor5L+u6ZmiIDwgc2h1dWluXCA7CivlupXlgKQgPCBzb2tvbmVcIDsKK+W4sOWxniA8IGtpem9rdVwgOwor5bel5pWwIDwga291c3V1XCA7CivlhbXmm7kgPCBoZWlzb3VcIDsKK+WFteabuCA8IGhlaXNob1wgOwor5pu+56WW54i2IDwgaGlqaWppXCA7CivliJHlkI0gPCBrZWltZWlcIDsKK+i7jeekvCA8IGd1bnJlaVwgOwor5qi55pyoIDwganVtb2t1XCA7Civpq5joj5wgPCB0YWthbmFcIDsKK+ebuOWvviA8IHNvdXRhaVwgOwor5bm05Y+3IDwgbmVuZ291XCA7CivopovmoITlnYogPCBtaWVib3VcIDsKK+iKseeBqyA8IGhhbmFiaVwgOwor5bGV6ZaLIDwgdGVua2FpXCA7Civnm7jlrr8gPCBhaXlhZG9cIDsKK+mAgOWOuyA8IHRhaWt5b1wgOwor5biv5bCBIDwgb2JpZnV1XCA7CivkupzpiZvniYggPCBhZW5iYW5cIDsKK+WHjeWvkiA8IHRvdWthblwgOwor5bmz5Y6fIDwgaGVpZ2VuXCA7Civlh43lrrMgPCB0b3VnYWlcIDsKK+WxsemHjiA8IHNhbicneWFcIDsKK+mAj+WGmSA8IHRvdXNoYVwgOwor5Yi25LukIDwgc2VpcmVpXCA7Civlha3mnKwgPCByb3Bwb25cIDsKK+iLpualvSA8IGt1cmFrdVwgOwor5biw5a6FIDwga2l0YWt1XCA7Civnlr3ohasgPCBzb3Nob3VcIDsKK+aoquaguSA8IHlva29uZVwgOwor5bm+5YiGIDwgaWt1YnVuXCA7CivnlbDoqqwgPCBpc2V0c3VcIDsKK+mtlOeQgyA8IG1ha3l1dVwgOwor5Ye25ZmoIDwga3lvdWtpXCA7Civkv53pnakgPCBob2tha3VcIDsKK+WGjeaMmSA8IHNhaWt5b1wgOwor5L+K6aasIDwgc2h1bm1lXCA7CivlhavmnKwgPCBoYXBwb25cIDsKK+WFrOaciSA8IGtvdXl1dVwgOwor5YGP6KaLIDwgaGVua2VuXCA7CivlupzkuK0gPCBmdWNodXVcIDsKK+ebruWwuyA8IG1lamlyaVwgOwor5YW25pa5IDwgc29uYXRhXCA7Civnm5vlubQgPCBzZWluZW5cIDsKK+Wwj+m0qCA8IGtvZ2Ftb1wgOwor6YCA5YuiIDwgdGFpc2VpXCA7Civov5TloLEgPCBoZW5wb3VcIDsKK+WGheaOoiA8IG5haXRhblwgOwor5qip5p+EIDwga2VucGVpXCA7CivlsI/ps6UgPCBrb3RvcmlcIDsKK+W5tOWKnyA8IG5lbmtvdVwgOwor55Sw6YeOIDwgZGVuJyd5YVwgOwor5YW15pWwIDwgaGVpc3V1XCA7Civnm6rlsL0gPCB0b3VqaW5cIDsKK+ecvOWJjSA8IGdhbnplblwgOwor6Imm56CyIDwga2FucG91XCA7CivlupfkuLsgPCB0ZW5zaHVcIDsKK+i7oueUnyA8IHRlbnNlaVwgOwor6Laz6aeEIDwgYXNoaWRhXCA7Civlhavmma8gPCBoYWtrZWlcIDsKK+eZu+alvCA8IHRvdXJvdVwgOwor55uu5a6JIDwgbWV5YXN1XCA7CivmpoLnrpcgPCBnYWlzYW5cIDsKK+WIhuWOmCA8IGJ1bnJpblwgOwor5b6h54yq5Y+jIDwgb2Nob2tvXCA7Civov73liqAgPCB0c3Vpa2FcIDsKK+aoquacqCA8IHlva29naVwgOwor5YSq5rilIDwgeXV1YWt1XCA7CivluIblvbEgPCBob2thZ2VcIDsKK+W5tOWInSA8IG5lbnNob1wgOwor6IWw6ZaTIDwgeW91a2FuXCA7CivojYnlsYsgPCBzb3Vva3VcIDsKK+WFrOaYjiA8IGtvdW1laVwgOwor5bm05YiKIDwgbmVua2FuXCA7CivlubTliIYgPCBuZW5idW5cIDsKK+W5leWWtiA8IGJha3VlaVwgOwor5bCP6bCtIDwga29oYWRhXCA7CivlubPliIYgPCBoZWlidW5cIDsKK+W5s+WHoSA8IGhlaWJvblwgOwor55iL55myIDwgZnV1dGVuXCA7Civov73liIYgPCBvaXdha2VcIDsKK+mwpeWkqyA8IHlhbW9tZVwgOwor55So6YeRIDwgeW91a2luXCA7Civpro7kuKblpbMgPCBhaW5hbWVcIDsKK+mtlOeJqSA8IG1hbW9ub1wgOwor5YWs5paHIDwga291YnVuXCA7CivojLblt74gPCBjaGFraW5cIDsKK+WIkeWFuCA8IGtlaXRlblwgOwor6L+R5ZyoIDwga2luemFpXCA7CivliKXku7YgPCBiZWtrZW5cIDsKK+Wxsei+uiA8IHlhbWFiZVwgOwor55Wl6KiYIDwgcnlha2tpXCA7Civlt6fmiYsgPCBrb3VzaHVcIDsKK+ecn+WRsyA8IHNoaW5taVwgOwor6Lqr56m6IDwgbWlzb3JhXCA7CivoiovniYggPCBpbW9iYW5cIDsKK+W3oeaLnSA8IGp1bnBhaVwgOwor55Sj6YeRIDwgc2Fua2luXCA7CivlhajmlbAgPCB6ZW5zdXVcIDsKK+WFqOaVlyA8IHplbnBhaVwgOwor55yf5ZCmIDwgc2hpbnBpXCA7Civoi6XmnKggPCB3YWthZ2lcIDsKK+WIl+WAmSA8IHJla2tvdVwgOwor6L+95YS6IDwgdHN1aW5hXCA7CivlhrflrrMgPCByZWlnYWlcIDsKK+W6iuS4iiA8IHl1a2F1ZVwgOwor5YG96IacIDwgZ2ltYWt1XCA7CivluIbluIMgPCBob251bm9cIDsKK+WHneWbuiA8IGd5b3Vrb1wgOwor6YCU5LitIDwgdG9jaHV1XCA7CivlhoXmhoIgPCBuYWl5dXVcIDsKK+S/l+mWkyA8IHpva2thblwgOwor5L+D6Z+zIDwgc29rdW9uXCA7CivlsI/pqqggPCBrb2JvbmVcIDsKK+WFuOaLoCA8IHRlbmt5b1wgOwor55m75p2/IDwgdG91YmFuXCA7CivliJ3ku6MgPCBzaG9kYWlcIDsKK+WIgOWJoyA8IHRvdWtlblwgOwor5bmV5ZCPIDwgYmFrdXJpXCA7CivprZrnga8gPCBneW90b3VcIDsKK+iGmui6qyA8IGhhZGFtaVwgOwor55mW5q+bIDwga3VzZWdlXCA7Civlg63njosgPCBzZW4nJ291XCA7Civlho3mgJ0gPCBzYWlzaGlcIDsKK+ecjOWWtiA8IGtlbicnZWlcIDsKK+muruaYjiA8IHNlbm1laVwgOwor55Sf6YWSIDwga2l6YWtlXCA7CivliIblhZogPCBidW50b3VcIDsKK+W5vuS6uiA8IGlrdW5pblwgOwor6ISz6auEIDwgbm91enVpXCA7CivnnJ/ljJcgPCBtYWtpdGFcIDsKK+W3qOaCqiA8IGt5b2FrdVwgOwor6I2K5aa7IDwga2Vpc2FpXCA7CivlhajmkI0gPCB6ZW5zb25cIDsKK+WIg+WFiCA8IGhhc2FraVwgOwor5bGx6LevIDwgeWFtYWppXCA7CivluK/ln58gPCB0YWlpa2lcIDsKK+i/lOWTgSA8IGhlbnBpblwgOwor5bCP6aaWIDwga29rdWJpXCA7CivlubTkvZkgPCBuZW4nJ3lvXCA7CivnlJjphbggPCBrYW5zYW5cIDsKK+mokumciiA8IHNvdXJlaVwgOwor6Iez6Iq4IDwgc2hpZ2VpXCA7CivpgIDkvJogPCB0YWlrYWlcIDsKK+Wvoem7mSA8IGthbW9rdVwgOwor5YiD5YK3IDwgbmluam91XCA7Civlho3lu7ogPCBzYWlrb25cIDsKK+alteenmCA8IGdva3VoaVwgOwor6YCD5LqhIDwgdG91Ym91XCA7CivpgIDku7sgPCB0YWluaW5cIDsKK+W5tOS7oyA8IG5lbmRhaVwgOwor5YKN57eaIDwgYm91c2VuXCA7CivnnIHllrYgPCBzaG91ZWlcIDsKK+W4sOWbvSA8IGtpa29rdVwgOwor552A5LiIIDwga2l0YWtlXCA7CivovrLloLQgPCBub3Vqb3VcIDsKK+i7vea4myA8IGtlaWdlblwgOwor6aqo6JGjIDwga290dG91XCA7CivnmYLmsrsgPCByeW91amlcIDsKK+i+uuWcsCA8IGhlbmNoaVwgOwor6aed6bOlIDwgZGFjaG91XCA7CivlhoXlvoQgPCBuYWlrZWlcIDsKK+iFuemDqCA8IGZ1a3VidVwgOwor5Ye65YWIIDwgZGVzYWtpXCA7CivlhYPmnaUgPCBnYW5yYWlcIDsKK+ecn+WGrCA8IG1hZnV5dVwgOwor6Lyq5qC9IDwgcmluc2FpXCA7Civlt6jlvL4gPCBreW9kYW5cIDsKK+WFg+acrCA8IGdlbnBvblwgOwor5Ye25YW3IDwga3lvdWd1XCA7Civoh6roi6UgPCBqaWpha3VcIDsKK+W5tOS4rSA8IG5lbmp1dVwgOwor55m65pWjIDwgaGFzc2FuXCA7CivluKvlm6MgPCBzaGlkYW5cIDsKK+mnsemnnSA8IHJha3VkYVwgOwor5YaF5bu3IDwgbmFpdGVpXCA7Civlgo3ns7sgPCBib3VrZWlcIDsKK+WIhuS9kyA8IGJ1bnRhaVwgOwor5bmz5piT5YyWIDwgaGVpaWthXCA7Civov47lkIggPCBnZWlnb3VcIDsKK+WuieS/neeQhiA8IGFucG9yaVwgOwor5L+u6YCgIDwgc2h1em91XCA7CivojYnloIIgPCBzb3Vkb3VcIDsKK+W5suS4jiA8IGthbicneW9cIDsKK+apn+WxiyA8IGhhdGF5YVwgOwor6L6y5ZywIDwgbm91Y2hpXCA7Civmm77npZbmr40gPCBoaWJhYmFcIDsKK+iIquepuiA8IGtvdWt1dVwgOwor5biC5a2QIDwgaWNoaWtvXCA7CivlsIrpoZQgPCBzb25nYW5cIDsKK+i7jeeKrCA8IGdlbmtlblwgOwor5L+u6L6eIDwgc2h1dWppXCA7CivnlJ/ouqsgPCBuYW1hbWlcIDsKK+aoquaJiyA8IHlva290ZVwgOwor5YGc6Ii5IDwgdGVpc2VuXCA7CivnnIzli6IgPCBrZW5zZWlcIDsKK+WFreaEnyA8IHJva2thblwgOwor5YWD5pemIDwgZ2FudGFuXCA7CivnlLvoqr8gPCBnYWNob3VcIDsKK+WGl+WumCA8IGpvdWthblwgOwor5Yem5YiGIDwgc2hvYnVuXCA7Civou73msLQgPCBrZWlzdWlcIDsKK+iHquiFuSA8IGppYmFyYVwgOwor5YiG5LiOIDwgYnVuJyd5b1wgOwor5Yem5YemIDwgc2hvc2hvXCA7CivoipLmtIsgPCBib3V5b3VcIDsKK+Wwj+mbqiA8IGtveXVraVwgOwor5bCP6ZuoIDwga29zYW1lXCA7CivlsI7pm7sgPCBkb3VkZW5cIDsKK+WFteW9uSA8IGhlaWVraVwgOwor5bCP6ZuAIDwga29nYXJhXCA7CivnsZDmpIXlrZAgPCB0b3Vpc3VcIDsKK+WHveS6uiA8IGthbmppblwgOwor55uX5aGBIDwgdG91cnVpXCA7Civoi6bmiYsgPCBuaWdhdGVcIDsKK+WvvumhlCA8IHRhaWdhblwgOwor6Iul5omLIDwgd2FrYXRlXCA7CivlhqzloLQgPCBmdXl1YmFcIDsKK+WCrOecoCA8IHNhaW1pblwgOwor5YSq5p+UIDwgeXV1anV1XCA7CivlsI/mloflrZcgPCBrb21vamlcIDsKK+iKuOaelyA8IGdlaXJpblwgOwor55u45Y+NIDwgc291aGFuXCA7Civlt6jlsqkgPCBreW9nYW5cIDsKK+W4r+WQjCA8IHRhaWRvdVwgOwor5bi45YukIDwgam91a2luXCA7CivojZjlj7ggPCBzaG91amlcIDsKK+WHjeWOnyA8IHRvdWdlblwgOwor5qW955WMIDwgZ2Fra2FpXCA7CivojZjljrMgPCBzb3Vnb25cIDsKK+WHuuS4liA8IHNodXNzZVwgOwor5YeE5ZGzIDwgc3Vnb21pXCA7Civoh6rnv5IgPCBqaXNodXVcIDsKK+WHoeWDpyA8IGJvbnNvdVwgOwor5a++6Z2iIDwgdGFpbWVuXCA7CivnlarojLYgPCBiYW5jaGFcIDsKK+eVsOiJsiA8IGlzaG9rdVwgOwor5YaG5a+CIDwgZW5qYWt1XCA7Civlt57ltI4gPCBzdXNha2lcIDsKK+i/keWCjSA8IGtpbmJvdVwgOwor5YWl5b6hIDwgbnl1dWdvXCA7CivlhoXlrq4gPCBuYWlndXVcIDsKK+W4guWhtSA8IHNoaWppblwgOwor6Le16KiAIDwgc2VuZ2VuXCA7CivoirPmm7ggPCBob3VzaG9cIDsKK+eUqOirhyA8IHlvdWRhblwgOwor6Iqx5pyoIDwga2Fib2t1XCA7CivkvZnmiYDnm64gPCB5b3NvbWVcIDsKK+WFrOW5syA8IGtvdWhlaVwgOwor5YaF5a2rIDwgbmFpc29uXCA7Civkv53ouqsgPCBob3NoaW5cIDsKK+eZuuaGpCA8IGhhcHB1blwgOwor6IiM56uvIDwgemV0dGFuXCA7CivlhajlupcgPCB6ZW50ZW5cIDsKK+WvvumZoyA8IHRhaWppblwgOwor5L6L6aGMIDwgcmVpZGFpXCA7CivluK/liaMgPCB0YWlrZW5cIDsKK+W4neWRvSA8IHRlaW1laVwgOwor6Luf5rOlIDwgbmFuZGVpXCA7CivojIXlsYsgPCBib3Vva3VcIDsKK+WFpeW6qyA8IG55dXVrb1wgOwor55So6KiAIDwgeW91Z2VuXCA7CivnmbrmhI8gPCBoYXRzdWlcIDsKK+WFpeW6nCA8IG55dXVmdVwgOwor6Iq45paHIDwgZ2VpYnVuXCA7CivlsILploAgPCBzZW5tb25cIDsKK+W4r+WIgCA8IHRhaXRvdVwgOwor6Ium5b+DIDwga3VzaGluXCA7CivmqoDlkJsgPCBkYW5rdW5cIDsKK+WFvOWumCA8IGtlbmthblwgOwor5bC/6LevIDwgbnlvdXJvXCA7CivnnIzkvJogPCBrZW5rYWlcIDsKK+ebpOWPsCA8IGJhbmRhaVwgOwor5biD5ZywIDwgbnVub2ppXCA7Civoh7PntJQgPCBzaGlqdW5cIDsKK+iNieWOnyA8IHNvdWdlblwgOwor6Ieq57ibIDwgamliYWt1XCA7CivmooXphZIgPCB1bWVzaHVcIDsKK+WFg+aJiyA8IG1vdG9kZVwgOwor5LiL6Zmi6K2wIDwga2FpbmdpXCA7CivnnIzku6QgPCBrZW5yZWlcIDsKK+WvnemmliA8IG5la3ViaVwgOwor55Sf6KqVIDwgc2VpdGFuXCA7Civou5/msLQgPCBuYW5zdWlcIDsKK+i/keS7oyA8IGtpbmRhaVwgOwor55yM5Lq6IDwga2VuamluXCA7Civnm4blnLAgPCBib25jaGlcIDsKK+WtteWMluWZqCA8IGZ1a2FraVwgOwor6LuN5rivIDwgZ3Vua291XCA7CivlhZrlvIogPCB0b3VoZWlcIDsKK+WGt+WOsyA8IHJlaWdlblwgOwor6Iet57SgIDwgc2h1dXNvXCA7CivojITlrZAgPCBuYXN1YmlcIDsKK+ebl+WTgSA8IHRvdWhpblwgOwor6IiX55+zIDwgaG9zZWtpXCA7Civoh6rntaYgPCBqaWt5dXVcIDsKK+i/lOS4iiA8IGhlbmpvdVwgOwor6a2a5qKvIDwgZ3lvdGVpXCA7Civnm5vlkI0gPCBzZWltZWlcIDsKK+WFqOWztiA8IHplbnRvdVwgOwor6LWt6aGUIDwgc2hhZ2FuXCA7CivlhbHlr50gPCB0b21vbmVcIDsKK+aJi+ecn+S8vCA8IHRlbWFuZVwgOwor5bCP6YqtIDwga296ZW5pXCA7Civov5HkuJYgPCBraW5zZWlcIDsKK+iHqOe1giA8IHJpbmp1dVwgOwor5bi45L6LIDwgam91cmVpXCA7CivlhajlsrggPCB6ZW5nYW5cIDsKK+W3qOWkpyA8IGt5b2RhaVwgOwor6L6b5ZGzIDwga2FyYW1pXCA7CivlhoXlpJYgPCBuYWlnYWlcIDsKK+ebruWFiCA8IG1lc2FraVwgOwor5bi45L2PIDwgam91anV1XCA7CivovrLlhbUgPCBub3VoZWlcIDsKK+WCjeebriA8IGhhdGFtZVwgOwor5bGV6KanIDwgdGVucmFuXCA7CivluLjkvJogPCBqb3VrYWlcIDsKK+W4uOS7uyA8IGpvdW5pblwgOwor5L+v6KeSIDwgZnVrYWt1XCA7Civnl7TmvKIgPCBjaGlrYW5cIDsKK+i7jeazlSA8IGd1bnBvdVwgOwor5bCP6YeRIDwga29nYW5lXCA7CivlhrfliZsgPCByZWlnb3VcIDsKK+W4uOS6uiA8IGpvdWppblwgOwor6a2a5p2/IDwgZ3lvYmFuXCA7CivltKnmvbAgPCBob3VrYWlcIDsKK+S4jeWmguaEjyA8IGZ1bnlvaVwgOwor5YOn5q2jIDwgc291am91XCA7CivlhYHmga0gPCBpbmt5b3VcIDsKK+i7uOacqCA8IGppa3VnaVwgOwor55u45LydIDwgc291ZGVuXCA7CivluJ3lhqAgPCB0ZWlrYW5cIDsKK+S9temfsyA8IHBpbicnaW5cIDsKK+mrmOebriA8IHRha2FtZVwgOwor5YaG5Z+fIDwgZW4nJ2lraVwgOwor5a+S6aKoIDwga2FucHV1XCA7Civpp4XpoK0gPCBla2l0b3VcIDsKK+WCvueAiSA8IGtlaXNoYVwgOwor5Ya35YeNIDwgcmVpdG91XCA7Civou43msJEgPCBndW5taW5cIDsKK+mqqOeyiSA8IGtvcHB1blwgOwor55eF55CGIDwgYnlvdXJpXCA7CivluLjkuJYgPCB0b2tveW9cIDsKK+iGteiHkyA8IHN1aXpvdVwgOwor5YW25aW0IDwgc29pdHN1XCA7CivlhYXlvZMgPCBqdXV0b3VcIDsKK+S/ruijnCA8IHNodXVob1wgOwor5biD5ZGKIDwgZnVrb2t1XCA7CivoiI7nm6MgPCBzaGFrYW5cIDsKK+WEkuaVmSA8IGp1a3lvdVwgOwor5L+X6K2wIDwgem9rdWdpXCA7Civmua/mloflrZcgPCB5dW1vamlcIDsKK+WGt+WFiSA8IHJlaWtvdVwgOwor5a+d6ZqbIDwgbmVnaXdhXCA7CivnmoTlsYsgPCB0ZWtpeWFcIDsKK+eVsOapn+eoriA8IGlraXNodVwgOwor55uK5Y+LIDwgZWtpeXV1XCA7CivlhoXlnKggPCBuYWl6YWlcIDsKK+WFteWkiSA8IGhlaWhlblwgOwor5bGx6JG1IDwgd2FzYWJpXCA7CivlgbXnn6UgPCB0ZWljaGlcIDsKK+eWq+eZmCA8IGVraXJlaVwgOwor55uy5Lq6IDwgbW91amluXCA7Civnmoflrq4gPCBrb3VndXVcIDsKK+iDvemdoiA8IG5vdW1lblwgOwor55ub5YW4IDwgc2VpdGVuXCA7CivmoLnpm6ogPCBuZXl1a2lcIDsKK+iMheWgtCA8IGtheWFiYVwgOwor5biw5LiAIDwga2lpdHN1XCA7CivnmoflrasgPCBrb3Vzb25cIDsKK+S+rui+sSA8IGJ1am9rdVwgOwor55Wq57eaIDwgYmFuc2VuXCA7CivovrLkvJogPCBub3VrYWlcIDsKK+S/l+iqniA8IHpva3Vnb1wgOwor55uu5LuKIDwgbW9ra29uXCA7Civnm7TkuIsgPCBjaG9ra2FcIDsKK+WxseiPnCA8IHNhbnNhaVwgOwor6Lui5qChIDwgdGVua291XCA7Civkv5foqbEgPCB6b2t1d2FcIDsKK+eWpeeZrCA8IGthaXNlblwgOwor6Ium5a2mIDwga3VnYWt1XCA7CivlhYPluKUgPCBnZW5zdWlcIDsKK+eZveWvvyA8IGhha3VqdVwgOwor5Yal5YipIDwgbXlvdXJpXCA7CivnmbrlsZUgPCBoYXR0ZW5cIDsKK+W3oeWbniA8IGp1bmthaVwgOwor6Lyq5bu7IDwgcmluJyduZVwgOwor5YW45Z6LIDwgdGVua2VpXCA7CivlsbHojZggPCBzYW5zb3VcIDsKK+WFrOWjsiA8IGtvdWJhaVwgOwor6ISx6YCAIDwgZGF0dGFpXCA7Civkv5fop6MgPCB6b2trYWlcIDsKK+iDjOmwrSA8IHNlYmlyZVwgOwor6LWk6ZaAIDwgYWthbW9uXCA7CivlsY3onYsgPCBzaGlyb3VcIDsKK+eVnee5lCA8IHVuZW9yaVwgOwor5L+X6KaLIDwgem9ra2VuXCA7CivlgInojbcgPCBrdXJhbmlcIDsKK+iKs+aDhSA8IGhvdWpvdVwgOwor6aaW6a2BIDwgc2h1a2FpXCA7CivnlJ/olpEgPCBzaG91Z2FcIDsKK+WFteWboyA8IGhlaWRhblwgOwor5a++6YGHIDwgdGFpZ3V1XCA7CivkupznoJLphbggPCBhaGlzYW5cIDsKK+eUn+iVgyA8IHNlaWJhblwgOwor5YWN5a6YIDwgbWVua2FuXCA7CivluILlhoUgPCBzaGluYWlcIDsKK+i7veaMmSA8IGtlaWt5b1wgOwor6Imv5qGIIDwgcnlvdWFuXCA7CivlrrnpoZQgPCB5b3VnYW5cIDsKK+WGhuWRsyA8IG1hcnVtaVwgOwor55ub5LyaIDwgc2Vpa2FpXCA7CivlhoblkaggPCBlbnNodXVcIDsKK+iKuOW9kyA8IGdlaXRvdVwgOwor55SY6JavIDwga2Fuc2hvXCA7CivlhoXlkb0gPCBuYWltZWlcIDsKK+i7iuaknCA8IHNoYWtlblwgOwor6Iqz5b+XIDwgaG91c2hpXCA7CivlsI/otrMgPCBrb2FzaGlcIDsKK+Wvvui+uiA8IHRhaWhlblwgOwor6IuX5a2XIDwgbXlvdWppXCA7Civog4zpqqggPCBzZWJvbmVcIDsKK+WGheWQqyA8IG5haWdhblwgOwor6aas6Z2pIDwgYmFrYWt1XCA7Civnm5/kuLsgPCBtZWlzaHVcIDsKK+WGheWQiCA8IG5haWdvdVwgOwor5beo5Y+jIDwga3lva291XCA7Civlho3li6QgPCBzYWlraW5cIDsKK+W4guWCtSA8IHNoaXNhaVwgOwor5bKp56m0IDwgaXdhYW5hXCA7CivlhYPlr4cgPCBnZW5rb3VcIDsKK+S9memchyA8IHlvc2hpblwgOwor5YaV5YagIDwgYmVua2FuXCA7CivojLbkvJogPCBjaGFrYWlcIDsKK+S9jumgrSA8IHRlaXRvdVwgOwor5YaG5Y2TIDwgZW50YWt1XCA7Civlr4bplokgPCBtaXBwZWlcIDsKK+WxseiDjCA8IHlhbWFzZVwgOwor5qeY5oWLIDwgeW91dGFpXCA7CivojLbku6MgPCBjaGFkYWlcIDsKK+WCrOa2mSA8IHNhaXJ1aVwgOwor6IOM6aazIDwgaGFpY2hpXCA7CivohLHotbAgPCBkYXNzb3VcIDsKK+eZvuWknCA8IG1vbW95b1wgOwor6Ium5aKDIDwga3VreW91XCA7Civlhpnlg48gPCBzaGF6b3VcIDsKK+Wun+mokyA8IGppa2tlblwgOwor6Iy25Lq6IDwgY2hhamluXCA7Civoi7Hlm70gPCBlaWtva3VcIDsKK+WGjeWIiiA8IHNhaWthblwgOwor5YaF5YukIDwgbmFpa2luXCA7CivogrrprZogPCBoYWlneW9cIDsKK+iHqueZvSA8IGppaGFrdVwgOwor6LuN5pu4IDwgZ3Vuc2hvXCA7Civlgo3ngrkgPCBib3V0ZW5cIDsKK+S+v+impyA8IGJlbnJhblwgOwor55m75aOHIDwgdG91ZGFuXCA7CivmpJznnLwgPCBrZW5nYW5cIDsKK+agoemWgCA8IGtvdW1vblwgOwor6aaW6aGMIDwgc2h1ZGFpXCA7CivlhYjlprsgPCBzZW5zYWlcIDsKK+mqqOebuCA8IGtvc3NvdVwgOwor6Zi/5L+u576FIDwgYXNodXJhXCA7CivnlJjojYkgPCBrYW56b3VcIDsKK+eUmOiMtiA8IGFtYWNoYVwgOwor55m75aC0IDwgdG91am91XCA7Civlr53phZIgPCBuZXpha2VcIDsKK+W+oembkeeFriA8IG96b3VuaVwgOwor5YWE5aa5IDwga2VpbWFpXCA7CivlhaXllrYgPCBueXV1ZWlcIDsKK+WFvOWLpCA8IGtlbmtpblwgOwor6LuS5pWwIDwga2Vuc3V1XCA7CivlhYjlpKkgPCBzZW50ZW5cIDsKK+WGhuWGhSA8IGVuJyduYWlcIDsKK+WGheWGhSA8IG5haW5haVwgOwor6LuN5peFIDwgZ3VucnlvXCA7CivlhoXlhbggPCBuYWl0ZW5cIDsKK+i7veW/qyA8IGtlaWthaVwgOwor5YWo5ZOhIDwgemVuJydpblwgOwor6Ieo55WMIDwgcmlua2FpXCA7Civpq5jngKwgPCB0YWthc2VcIDsKK+WFqOWTgSA8IHplbnBpblwgOwor5qSc55ewIDwga2VudGFuXCA7CivlhaXllJAgPCBuaXR0b3VcIDsKK+Wwj+ipsSA8IHNob3V3YVwgOwor6IOM6Z2pIDwgc2VnYXdhXCA7Civlt6jlhIQgPCBreW9va3VcIDsKK+iDjOmdoiA8IGhhaW1lblwgOwor5YK15qipIDwgc2Fpa2VuXCA7CivovKrlp6YgPCByaW5rYW5cIDsKK+eWkeeNhCA8IGdpZ29rdVwgOwor55qu6Iaa56eRIDwgaGlmdWthXCA7CivlsI/oqIAgPCBrb2dvdG9cIDsKK+aknOeVqiA8IGtlbmJhblwgOwor5YWF5aGrIDwganV1dGVuXCA7CivlsaTnvqQgPCBzb3VndW5cIDsKK+iKseWxiyA8IGhhbmF5YVwgOwor6Luf5oqVIDwgbmFudG91XCA7Civou6LmiKYgPCB0ZW5zZW5cIDsKK+WBtueEtiA8IGd1dXplblwgOwor55Sf6IKyIDwgc2VpaWt1XCA7Civlsqnnm6QgPCBnYW5iYW5cIDsKK+WFseWKqSA8IGt5b3Vqb1wgOwor6LyD5beuIDwga2FrdXNhXCA7CivlhbXliIMgPCBoZWlqaW5cIDsKK+iLl+WcgyA8IGJ5b3Vob1wgOwor5YaN5Lu7IDwgc2FpbmluXCA7CivkvZnpjLIgPCB5b3Jva3VcIDsKK+eXheawlyA8IGJ5b3VraVwgOwor6aeF6YCTIDwgZWtpdGVpXCA7Civlrp/pmpsgPCBqaXNzYWlcIDsKK+eUn+iAhSA8IHNob3VqYVwgOwor55Sx57eSIDwgeXVpc2hvXCA7Civkv7PogZYgPCBoYWlzZWlcIDsKK+WxseezuyA8IHNhbmtlaVwgOwor55S357O7IDwgZGFua2VpXCA7Civlr77oq5YgPCB0YWlyb25cIDsKK+WvruiyuyA8IHJ5b3VoaVwgOwor6Lqr5p+EIDwgbWlnYXJhXCA7CivlgKvnpL4gPCByaW5zaGFcIDsKK+W3qOS9kyA8IGt5b3RhaVwgOwor5YaF5L2PIDwgbmFpanV1XCA7CivnmoflkI4gPCBrb3Vnb3VcIDsKK+Wwj+iiliA8IGtvc29kZVwgOwor5a++6KqeIDwgdHN1aWdvXCA7Civog73ovq8gPCBub3ViZW5cIDsKK+iLpuWRsyA8IG5pZ2FtaVwgOwor6a2F5oORIDwgbWl3YWt1XCA7Civlho3kuIkgPCBzYWlzYW5cIDsKK+W3qOS6uiA8IGt5b2ppblwgOwor5bCG6KOcIDwgc2hvdWhvXCA7CivoirjlpKcgPCBnZWlkYWlcIDsKK+iIt+airyA8IGdlbnRlaVwgOwor6ISx6KGjIDwgZGF0c3VpXCA7CivlhobkuJggPCBlbmt5dXVcIDsKK+iKneWxhSA8IHNoaWJhaVwgOwor6Luf5oCnIDwgbmFuc2VpXCA7Civnmobli6QgPCBrYWlraW5cIDsKK+W3qOS4hyA8IGt5b21hblwgOwor5p+76ZayIDwgc2FldHN1XCA7Civlr7joqIAgPCBzdW5nZW5cIDsKK+WvhumAgSA8IG1pc3NvdVwgOwor55So57SZIDwgeW91c2hpXCA7CivkvZPph40gPCB0YWlqdXVcIDsKK+ajhOe0hCA8IGtpeWFrdVwgOwor5L6N6KqtIDwgamlkb2t1XCA7CivpqqjniYwgPCBrYXJ1dGFcIDsKK+mqqOeJhyA8IGtvcHBlblwgOwor5YSS5a2mIDwganVnYWt1XCA7Civoh6rnhLYgPCBzaGl6ZW5cIDsKK+i1pOi1pCA8IGFrYWFrYVwgOwor6Imy5oKqIDwgaXJvYWt1XCA7Civoi6blipsgPCBrdXVyaWlcIDsKK+i6q+aWuSA8IG1pa2F0YVwgOwor5qW35pu4IDwga2Fpc2hvXCA7Civlrp3pkZEgPCBob3VrYW5cIDsKK+W8n+Wwj+eItiA8IG90b29qaVwgOwor5L+h6ICFIDwgc2hpbmphXCA7Civohr/nmI0gPCBub3V5b3VcIDsKK+amguaVsCA8IGdhaXN1dVwgOwor6Iq45Z+fIDwgZ2VpaWtpXCA7CivlsI/omY4gPCBrb2RvcmFcIDsKK+iJsuaBiyA8IGlyb2tvaVwgOwor6IK66ZaAIDwgaGFpbW9uXCA7CivnlaLnlJ8gPCBoaXNzZWlcIDsKK+eUn+e0mSA8IGtpZ2FtaVwgOwor5YWI5ZCbIDwgc2Vua3VuXCA7CivotaTosp0gPCBha2FnYWlcIDsKK+S+i+inoyA8IHJlaWthaVwgOwor55qG5YW1IDwga2FpaGVpXCA7Civou43mg4UgPCBndW5qb3VcIDsKK+mrmOatryA8IHRha2FiYVwgOwor5YW15LmxIDwgaGVpcmFuXCA7CivkvZXpgY0gPCBuYW5iZW5cIDsKK+mnhOizgyA8IGRhY2hpblwgOwor5bC+57+8IDwgYml5b2t1XCA7Civpq4TmtrIgPCB6dWlla2lcIDsKK+WwgeidiyA8IGZ1dXJvdVwgOwor5YWa5YaFIDwgdG91bmFpXCA7CivlhazkvY8gPCBrb3VqdXVcIDsKK+eUn+eyiyA8IGtpc3N1aVwgOwor5L+X6ICzIDwgem9rdWppXCA7CivlrrTpgYogPCBlbicneXV1XCA7CivlhYPlj7cgPCBnZW5nb3VcIDsKK+mqqOeCrSA8IGtvdHRhblwgOwor5YG05rOzIDwgc29iYWVpXCA7Civoi7Hkv4ogPCBlaXNodW5cIDsKK+iEseiXqSA8IGRhcHBhblwgOwor5YSA5a64IDwgZ2lzaGluXCA7Civkv4LoiLkgPCBrZWlzZW5cIDsKK+aflOmghiA8IGp1dWp1blwgOwor55Wq54qsIDwgYmFua2VuXCA7CivppqzouqsgPCBiYXNoaW5cIDsKK+eXmeaUoyA8IGtlaXJlblwgOwor5L6/6Ii5IDwgYmluc2VuXCA7CivohY7oh5MgPCBqaW56b3VcIDsKK+mms+i1sCA8IGNoaXNvdVwgOwor5Li75rK75Yy7IDwgc2h1amlpXCA7CivohYvoh60gPCB3YWtpZ2FcIDsKK+S4jeiqoOaEjyA8IGZ1c2VpaVwgOwor5YGc5rueIDwgdGVpdGFpXCA7Civoi7HkuqwgPCBlaWt5b3VcIDsKK+WvneiogCA8IG5lZ290b1wgOwor5YGJ54OIIDwgaXJldHN1XCA7Civpra/lm70gPCByb2tva3VcIDsKK+WFheWIhiA8IGp1dWJ1blwgOwor55qG5LydIDwga2FpZGVuXCA7Civnl7Tmg4UgPCBjaGlqb3VcIDsKK+W0h+aVrCA8IHN1dWtlaVwgOwor5b6h6Kmg5q2MIDwgZ29laWthXCA7Civou6Llr50gPCBnb3JvbmVcIDsKK+iFkOiCiSA8IGZ1bmlrdVwgOwor6Ly45YWlIDwgeXVueXV1XCA7CivlhYjlhbUgPCBzZW5wZWlcIDsKK+i7jeW4vSA8IGd1bmJvdVwgOwor5L+X57iBIDwgem9rdWVuXCA7CivohbnnrYsgPCBmdWtraW5cIDsKK+iHqua2nCA8IGppdG9rdVwgOwor6Iaa552AIDwgaGFkYWdpXCA7CivlrrnotaYgPCB5b3VzaGFcIDsKK+Wwv+e0oCA8IG55b3Vzb1wgOwor5qCE6YCyIDwgZWlzaGluXCA7CivmpZPmnpcgPCBmdXVyaW5cIDsKK+S9meiziiA8IHlvem9rdVwgOwor5qSc5ripIDwga2VuJydvblwgOwor5a+T6KiAIDwgZ3V1Z2VuXCA7CivpppbovKogPCBrdWJpd2FcIDsKK+iKuOWQjSA8IGdlaW1laVwgOwor5YGl5rCXIDwga2VuYWdlXCA7CivmoITovrEgPCBlaWpva3VcIDsKK+iDg+S4i+WegiA8IGlrYXN1aVwgOwor6LWk6KO4IDwgc2VraXJhXCA7CivlsI/oiLkgPCBrb2J1bmVcIDsKK+S8jemVtyA8IGdvY2hvdVwgOwor5bGI562LIDwga3Vra2luXCA7CivlrrnosowgPCB5b3Vib3VcIDsKK+eZuuS8miA8IGhha2thaVwgOwor6Ieq5rKIIDwgamljaGluXCA7Civnl5vmiZMgPCB0c3V1ZGFcIDsKK+WutuizgyA8IHlhY2hpblwgOwor55m75LuZIDwgdG91c2VuXCA7CivoirPlkI0gPCBob3VtZWlcIDsKK+WtpumZoiA8IGdha3VpblwgOwor5Yi35q+b55uuIDwgaGFrZW1lXCA7CivprZTlooMgPCBtYWt5b3VcIDsKK+eUsueDj+iziiA8IGtvdWlrYVwgOwor6IiM5qC5IDwgemVra29uXCA7CivltKnlvqEgPCBob3VneW9cIDsKK+mlhemgrSA8IG1hbmp1dVwgOwor5L2c6K2cIDwgc2FrdWZ1XCA7CivlhYjkvr8gPCBzZW5iaW5cIDsKK+Wwj+iGnSA8IGtvaGl6YVwgOwor5bKs5rm+IDwga291d2FuXCA7CivlsI/ohbkgPCBrb2JhcmFcIDsKK+WFg+WApCA8IG1vdG9uZVwgOwor6aqo5rOVIDwga29wcG91XCA7Civoia/lrrYgPCByeW91a2VcIDsKK+WFieS9kyA8IGtvdXRhaVwgOwor5a6Y6L66IDwga2FucGVuXCA7Civlrp/ou4ogPCBqaXNzaGFcIDsKK+WvhuioiCA8IG1pa2tlaVwgOwor5Lqc5ouJ5q+Y5LqcIDwgYXJhYmlhXCA7Civku4vpsZcgPCBrYWlyaW5cIDsKK+iDuOijjyA8IGt5b3VyaVwgOwor5bCP6ISHIDwga293YWtpXCA7CivkvIrpgZTnnYAgPCBkYXRlZ2lcIDsKK+W0h+aLnSA8IHN1dWhhaVwgOwor5qaC5b+1IDwgZ2FpbmVuXCA7CivnlKjnm4ogPCB5b3Vla2lcIDsKK+Wxr+eUsCA8IHRvbmRlblwgOwor6Ia+54KZIDwga2Fpc2hhXCA7CivlhYjku6MgPCBzZW5kYWlcIDsKK+Wwj+iCoSA8IGtvbWF0YVwgOwor6Lui5aSJIDwgdGVucGVuXCA7Civou6Llo7IgPCB0ZW5iYWlcIDsKK+W+oeimi+iIniA8IG9taW1haVwgOwor5a6f6Le1IDwgamlzc2VuXCA7Civlrpjou40gPCBrYW5ndW5cIDsKK+iDjOi1sCA8IGhhaXNvdVwgOwor6Lqr5b2iIDwgbWluYXJpXCA7CivmoKHoqJMgPCBrb3VrdW5cIDsKK+Wwj+iAsyA8IGtvbWltaVwgOwor6IG06Z+zIDwgY2hvdW9uXCA7Civlrrnoqo0gPCB5b3VuaW5cIDsKK+iEseiEgiA8IGRhc3NoaVwgOwor5Lya6YeIIDwgZXNoYWt1XCA7CivlrZTpm4AgPCBrdWpha3VcIDsKK+Wwj+iAhSA8IGtvbW9ub1wgOwor5Luj6aGYIDwgZGFpZ2FuXCA7CivppIrpto8gPCB5b3VrZWlcIDsKK+iDjOaWh+WtlyA8IHNlbW9qaVwgOwor5L+C57SvIDwga2VpcnVpXCA7Civogp3pipggPCBrYW5tZWlcIDsKK+S9meinkiA8IHlva2FrdVwgOwor6ISx6IKbIDwgZGFra291XCA7Civlr53ol4EgPCBuZXdhcmFcIDsKK+WEquabh+iPryA8IHVkb25nZVwgOwor5YG25pyJIDwgZ3V1eXV1XCA7Civlr4booYwgPCBtaWtrb3VcIDsKK+WFg+S4iSA8IGdhbnphblwgOwor5L2T6KiAIDwgdGFpZ2VuXCA7CivouqvluYUgPCBtaWhhYmFcIDsKK+S7sumWkyA8IG5ha2FtYVwgOwor5Ly06LWwIDwgYmFuc291XCA7Civou6LlnLAgPCB0ZW5jaGlcIDsKK+iJr+WknCA8IHJ5b3V5YVwgOwor5L2T6KaBIDwgdGFpeW91XCA7CivkvJ3pgIEgPCBkZW5zb3VcIDsKK+i0i+mAoCA8IGdhbnpvdVwgOwor5b6h6KWB6KSTIDwgb211dHN1XCA7Civoh6jmpJwgPCByaW5rZW5cIDsKK+WvvuiBryA8IHRhaXJlblwgOwor6aaW6KyAIDwgc2h1Ym91XCA7Civlg5XlqaIgPCBib2t1aGlcIDsKK+ajkueKtiA8IGJvdWpvdVwgOwor5LuW6aCYIDwgdGFyeW91XCA7Civlr7jog7QgPCB6dW5kb3VcIDsKK+S6uumtmiA8IG5pbmd5b1wgOwor5L2T6KOBIDwgdGVpc2FpXCA7CivlgbbmlbAgPCBndXVzdXVcIDsKK+mkiumtmiA8IHlvdWd5b1wgOwor5bCO57eaIDwgZG91c2VuXCA7CivlrozotbAgPCBrYW5zb3VcIDsKK+mmrOidvyA8IHVtYWJhZVwgOwor5Luk6ZaoIDwgcmVpa2VpXCA7Civlr77nva4gPCB0YWljaGlcIDsKK+mnkOiLsSA8IGNodXVlaVwgOwor6KW/54+t54mZIDwgc3VwZWluXCA7CivogqnouqsgPCBrYXRhbWlcIDsKK+S7iumiqCA8IGltYWZ1dVwgOwor6YCZ44CFIDwgaG91aG91XCA7CivoirjkurogPCBnZWluaW5cIDsKK+aflOmBkyA8IGp1dWRvdVwgOwor6ISx57eaIDwgZGFzc2VuXCA7CivmoLnoj5wgPCBrb25zYWlcIDsKK+iDoeidtiA8IGtvY2hvdVwgOwor5bCP57OgIDwga29udWthXCA7CivmpJzmoYggPCBrZW4nJ2FuXCA7Civlrproq5YgPCB0ZWlyb25cIDsKK+alveWxiyA8IGdha3V5YVwgOwor55eF5b6MIDwgYnlvdWdvXCA7Civohr/msYEgPCBub3VqdXVcIDsKK+WCsuWyuCA8IGdvdWdhblwgOwor5bCP57GzIDwga29nb21lXCA7Civlrabpg6ggPCBnYWt1YnVcIDsKK+iHqOabuCA8IHJpbnNob1wgOwor5p+76KqtIDwgc2Fkb2t1XCA7CivohavnmI0gPCBzaHV5b3VcIDsKK+alveWvnSA8IHJha3VuZVwgOwor5bCB57eYIDwgZnV1a2FuXCA7CivmoLnojI4gPCBrb25rZWlcIDsKK+iGqOa6gCA8IGJvdW1hblwgOwor5L+u55CGIDwgc2h1dXJpXCA7CivohLHns54gPCBkYXBwdW5cIDsKK+iHmOaihSA8IHJvdWJhaVwgOwor5p+76Ki8IDwgc2FzaG91XCA7CivlgJLmvbAgPCB0b3VrYWlcIDsKK+iIjOaIpiA8IHplc3NlblwgOwor6auY5oWiIDwga291bWFuXCA7Civmn5Tou58gPCBqdXVuYW5cIDsKK+Wwj+eusSA8IGtvYmFrb1wgOwor5bC955iBIDwgamluc3VpXCA7CivlsIrnsKEgPCBzb25rYW5cIDsKK+WwjueuoSA8IGRvdWtlblwgOwor5a6a6KaLIDwgdGVpa2VuXCA7Civnk6bnpKsgPCBnYXJla2lcIDsKK+Wun+ijhSA8IGppc3NvdVwgOwor5qW15a+SIDwgZ29ra2FuXCA7Civpp4XoiI4gPCBla2lzaGFcIDsKK+adpemuriA8IHJhaXNlblwgOwor5Lq66aGeIDwgamlucnVpXCA7CivkuqHprYIgPCBib3Vrb25cIDsKK+i0iOizhCA8IHpvdXdhaVwgOwor5L2/6IGYIDwgc2hpaGVpXCA7CivkurrpoK0gPCBqaW50b3VcIDsKK+i1sOiAhSA8IHNvdXNoYVwgOwor5a6f6KGMIDwgamlra291XCA7Civou43llrYgPCBndW4nJ2VpXCA7Civou73kvr8gPCBrZWliZW5cIDsKK+S9v+iAhSA8IHNoaXNoYVwgOwor5YG25oiQIDwgZ3V1c2VpXCA7Civou6Lli6QgPCB0ZW5raW5cIDsKK+S/l+eUuyA8IHpva3VnYVwgOwor5a++57GzIDwgdGFpYmVpXCA7Civot53niKogPCBreW9zb3VcIDsKK+S6uumdoiA8IGppbm1lblwgOwor6ICB6b2iIDwgcm91cmVpXCA7Civoia/lkI8gPCByeW91cmlcIDsKK+advumcsiA8IHNob3Vyb1wgOwor5bCB562SIDwgZnV1dG91XCA7Civpo5vps6UgPCBoaWNob3VcIDsKK+iEmue1hiA8IGt5YWhhblwgOwor5YG25oSfIDwgZ3V1a2FuXCA7Civosp3poZ4gPCBrYWlydWlcIDsKK+S7mOmMsiA8IGZ1cm9rdVwgOwor5YGP5peBIDwgaGVuYm91XCA7Civku6Pph5EgPCBkYWlraW5cIDsKK+WBj+aWnCA8IGhlbnNoYVwgOwor5a+S6IKlIDwga2FuZ29lXCA7Civou6LlhpkgPCB0ZW5zaGFcIDsKK+S8muirhyA8IGthaWRhblwgOwor6IiO5byfIDwgc2hhdGVpXCA7CivpprToh7QgPCBqdW5jaGlcIDsKK+mtmuS7iyA8IGd5b2thaVwgOwor5YKY5bGLIDwga2FzYXlhXCA7CivkvJ3oqIAgPCBkZW5nb25cIDsKK+i7iuWPsCA8IHNoYWRhaVwgOwor5LiN6KaL55uuIDwgbWlqaW1lXCA7Civlr77nqbogPCB0YWlrdXVcIDsKK+S8muioiCA8IGthaWtlaVwgOwor5L2c6IiIIDwgc2Fra291XCA7Civohbjngo4gPCBjaG91ZW5cIDsKK+S6uumWkyA8IG5pbmdlblwgOwor5a2m6LK7IDwgZ2FrdWhpXCA7CivmnbHpnaIgPCB0b3VtZW5cIDsKK+Wwj+egtCA8IHNob3VoYVwgOwor6aOb6a2aIDwgdG9iaXVvXCA7CivlsbHmsLQgPCBzYW5zdWlcIDsKK+S9meiIiCA8IHlva3lvdVwgOwor5bGx5rCXIDwgeWFtYWtlXCA7CivlsI/nn7MgPCBrb2lzaGlcIDsKK+iVjum6pueyiSA8IHNvYmFrb1wgOwor6LuN5YuiIDwgZ3VuemVpXCA7CivkvZnoh60gPCB5b3NodXVcIDsKK+S8muimiyA8IGthaWtlblwgOwor5bCB56aFIDwgaG91emVuXCA7CivotIXoqIAgPCB6ZWlnZW5cIDsKK+ePvumHkSA8IGdlbmtpblwgOwor5bGF54S2IDwga3lvemVuXCA7CivlhITkuIcgPCBva3VtYW5cIDsKK+aknOaMmSA8IGtlbmt5b1wgOwor6Lui5YCSIDwgdGVudG91XCA7CivnlLrmrakgPCBjaG91YnVcIDsKK+WDp+WFtSA8IHNvdWhlaVwgOwor55aR5oORIDwgZ2l3YWt1XCA7Civku6Pov5QgPCBkYWloZW5cIDsKK+alveWcnyA8IHJha3Vkb1wgOwor6Ieo5oimIDwgcmluc2VuXCA7Civlrp3olLUgPCBob3V6b3VcIDsKK+alveWckiA8IHJha3VlblwgOwor5p6X6YeOIDwgcmluJyd5YVwgOwor5Lqs6ZiqIDwga2VpaGFuXCA7CivotaTnt5ogPCBha2FzZW5cIDsKK+S7lumDtyA8IHRha3lvdVwgOwor6LuN5YiAIDwgZ3VudG91XCA7Civnl7TlkYYgPCBjaGlob3VcIDsKK+adoemghSA8IGpvdWtvdVwgOwor5bCP55uuIDwga29tb2t1XCA7CivmoITokL0gPCBlaXJha3VcIDsKK+i7ouS9jyA8IHRlbmp1dVwgOwor55So5rOVIDwgeW91aG91XCA7Civoh4bmlq0gPCBva3VkYW5cIDsKK+i6jeWmgiA8IHlha3Vqb1wgOwor5bCP55q/IDwga296YXJhXCA7CivlsI/nmrogPCBrb2ppd2FcIDsKK+S6oemciiA8IGJvdXJlaVwgOwor5qKt5a2Q6a2aIDwga2FtYXN1XCA7CivoiLnlnosgPCBzZW5rZWlcIDsKK+i1pOe1jCA8IHNla2tlaVwgOwor5L2e6ICFIDwgbmVpc2hhXCA7CivppqzogokgPCBiYW5pa3VcIDsKK+WBleaIkCA8IGthaXNlaVwgOwor6LuN5YW1IDwgZ3VucGVpXCA7CivmnaXpm7sgPCByYWlkZW5cIDsKK+adsemWgCA8IHRvdW1vblwgOwor55So5rC0IDwgeW91c3VpXCA7Civou4rlhoUgPCBzaGFuYWlcIDsKK+mmreiAhSA8IGd5b3NoYVwgOwor5LiN6ZqP5oSPIDwgZnV6dWlpXCA7CivprYXkuoYgPCBtaXJ5b3VcIDsKK+S6jOmjnyA8IG5pamlraVwgOwor6ISC57KJIDwgc2hpZnVuXCA7Civoh7PlvZMgPCBzaGl0b3VcIDsKK+S9k+iCsiA8IHRhaWlrdVwgOwor5bGl5q20IDwgcmlyZWtpXCA7Civlg6fkvrYgPCBzb3VyeW9cIDsKK+ael+mBkyA8IHJpbmRvdVwgOwor5YCk5pytIDwgbmVmdWRhXCA7CivntKvpmb3oirEgPCBhamlzYWlcIDsKK+S9juiDvSA8IHRlaW5vdVwgOwor5p2l6ZiqIDwgcmFpaGFuXCA7Civkvovnpa0gPCByZWlzYWlcIDsKK+iytOmFrCA8IGtpc2h1dVwgOwor6IOa6IOOIDwgaGFpdGFpXCA7Civlg6fkvL0gPCBzb3VneWFcIDsKK+ahp+eariA8IGhpd2FkYVwgOwor5a2Q6LGaIDwga29idXRhXCA7Civosq/ph5EgPCBjaG9raW5cIDsKK+S7o+i1sCA8IGRhaXNvdVwgOwor6IK66JGJIDwgaGFpeW91XCA7Civlg63kuIogPCBzZW5qb3VcIDsKK+iHqOW+oSA8IHJpbmd5b1wgOwor6LKn6YmxIDwgaGlua291XCA7CivlgY/mhJsgPCBoZW4nJ2FpXCA7Civlgb3lraYgPCBnaWdha3VcIDsKK+WCkeWjqyA8IGtlc3NoaVwgOwor6YeO6Imv552AIDwgbm9yYWdpXCA7CivpppbohLMgPCBzaHVub3VcIDsKK+eUn+auiyA8IHNlaXphblwgOwor5p2/6YeRIDwgYmFua2luXCA7Civmo5/mnKggPCBtdW5hZ2lcIDsKK+eVquaJgCA8IGJhbnNob1wgOwor5LqO6Jit55uGIDwgdXJhYm9uXCA7Civot6/mqJkgPCByb2h5b3VcIDsKK+i7iuS9kyA8IHNoYXRhaVwgOwor6Ii55ZOhIDwgc2VuJydpblwgOwor5a2X6KizIDwgaml5YWt1XCA7Civoi6blkbPntKAgPCBrdW1pc29cIDsKK+WBj+aApyA8IGhlbnNlaVwgOwor5qON5qOSIDwga29uYm91XCA7CivlgZzlubQgPCB0ZWluZW5cIDsKK+WCmOWcsCA8IGthc2FqaVwgOwor5a6Y6IiOIDwga2Fuc2hhXCA7CivpqJLnhLYgPCBzb3V6ZW5cIDsKK+WxseaelyA8IHNhbnJpblwgOwor5qW15Y+zIDwga3lva3V1XCA7CivmnKjprYIgPCBrb2RhbWFcIDsKK+iFjueCjiA8IGppbicnZW5cIDsKK+WxseadkSA8IHNhbnNvblwgOwor5Lq66YG4IDwgamluc2VuXCA7CivlsI/njKsgPCBrb25la29cIDsKK+S7ruiolyA8IGthdGFrdVwgOwor5qOS5p2tIDwgYm91Z3VpXCA7CivkurrpgZMgPCBqaW5kb3VcIDsKK+mmrOezpyA8IGJhcnlvdVwgOwor6LOH6LKhIDwgc2hpemFpXCA7Civppqzns54gPCBtYWd1c29cIDsKK+WDheWDhSA8IGtpbmtpblwgOwor5qW15Y2wIDwgZ29rdWluXCA7Civku6PorJsgPCBkYWlrb3VcIDsKK+S8muiRrCA8IGthaXNvdVwgOwor6LuK5LiKIDwgc2hham91XCA7Civoh7PlsIogPCBzaGlzb25cIDsKK+iIheWnkSA8IGt5dXVrb1wgOwor6IK66IeTIDwgaGFpem91XCA7CivouqvlhoUgPCBtaXVjaGlcIDsKK+i6q+WFsSA8IG1pZG9tb1wgOwor6Iez5a6dIDwgc2hpaG91XCA7CivkvZPns7sgPCB0YWlrZWlcIDsKK+WBj+W5syA8IGhlbnBlaVwgOwor5a+f55+lIDwgc2F0Y2hpXCA7CivmnKvpppkgPCBtYWtrb3VcIDsKK+acqOmmrCA8IG1va3ViYVwgOwor5YG05aWzIDwgc29iYW1lXCA7CivmnKzppKggPCBob25rYW5cIDsKK+S7o+iogCA8IGRhaWdlblwgOwor6IK66IOeIDwgaGFpaG91XCA7Civkurrou4ogPCBqaW5zaGFcIDsKK+acsemhlCA8IHNodWdhblwgOwor55So5p2QIDwgeW91emFpXCA7CivotrPmua8gPCBhc2hpeXVcIDsKK+WCvuWAkiA8IGtlaXRvdVwgOwor5qWt5YuZIDwgZ3lvdW11XCA7CivlgI3mlbAgPCBiYWlzdXVcIDsKK+iAgembhCA8IHJvdXl1dVwgOwor6Ii55Ye6IDwgZnVuYWRlXCA7Civoh6rlroUgPCBqaXRha3VcIDsKK+iEh+ebriA8IHdha2ltZVwgOwor5pys6aGYIDwgaG9uZ2FuXCA7CivmnKzpoYwgPCBob25kYWlcIDsKK+S5sembsiA8IHJhbicndW5cIDsKK+eWvuWRvCA8IHNoaWtrb1wgOwor6Ii55YW3IDwgZnVuYWd1XCA7CivlrrbnrYsgPCBpZXN1amlcIDsKK+acrOmfsyA8IGhvbicnbmVcIDsKK+S7mOiolyA8IGZ1dGFrdVwgOwor55Sf5p2lIDwgc2VpcmFpXCA7CivlgKbmhoogPCBrZW5wYWlcIDsKK+aeouimgSA8IHN1dXlvdVwgOwor6aKx6aKoIDwgdGFpZnV1XCA7Civlr53nmZYgPCBuZWd1c2VcIDsKK+eEoeS6i+aVhSA8IG11amlrb1wgOwor6IeN5bivIDwgc2VpdGFpXCA7CivmpJzlrpogPCBrZW50ZWlcIDsKK+adpemCuCA8IHJhaXRlaVwgOwor6IW55qGIIDwgZnVrdWFuXCA7CivnlJ/mnKggPCBuYW1ha2lcIDsKK+S9meeoiyA8IHlvaG9kb1wgOwor5YKy5YCoIDwgZ291a3lvXCA7CivpqqjlrZAgPCBrb3NzaGlcIDsKK+adpemBiiA8IHJhaXl1dVwgOwor5p2x6LuNIDwgdG91Z3VuXCA7CivlsZXmnJsgPCB0ZW5ib3VcIDsKK+iAs+i8qiA8IG1pbWl3YVwgOwor5bCP5r2uIDwga29zaGlvXCA7CivmorbmnKggPCBrYWppa2lcIDsKK+iyp+izpCA8IGhpbnNlblwgOwor5p2l6L+OIDwgcmFpZ291XCA7CivmnInpq6ogPCB1aGF0c3VcIDsKK+i1pOeXoiA8IHNla2lyaVwgOwor5L6/5rOVIDwgYmVucG91XCA7CivkvY7nqbogPCB0ZWlrdXVcIDsKK+S8neiBniA8IGRlbmJ1blwgOwor5pys6ZqKIDwgaG9udGFpXCA7CivlsqnlsaQgPCBnYW5zb3VcIDsKK+acnemhlCA8IGFzYWdhb1wgOwor6Lqr5LiIIDwgbWl0YWtlXCA7CivmnKzpmaMgPCBob25qaW5cIDsKK+acrOmZoiA8IGhvbicnaW5cIDsKK+WwqOavmyA8IG11a3VnZVwgOwor5a6a57SLIDwgam91bW9uXCA7CivppIrosZogPCB5b3V0b25cIDsKK+S7mOihqCA8IGZ1aHlvdVwgOwor5pyx6ZaAIDwgc2h1bW9uXCA7CivkvbXnlKggPCBoZWl5b3VcIDsKK+acqOmZsCA8IGtva2FnZVwgOwor5YK15Li7IDwgc2Fpc2h1XCA7CivmnaXou4ogPCByYWlzaGFcIDsKK+iDjOetiyA8IGhhaWtpblwgOwor5bGx5omLIDwgeWFtYXRlXCA7CivohYvmr5sgPCB3YWtpZ2VcIDsKK+S+v+auvyA8IGJlbmRlblwgOwor6IKd6IOGIDwga2FudGFuXCA7CivmnJ3pnLIgPCBjaG91cm9cIDsKK+Wxr+aJgCA8IHRvbnNob1wgOwor6LOA6KGoIDwgZ2FoeW91XCA7Civlrp3nrpcgPCBob3VzYW5cIDsKK+S4gOaYqOaXpSA8IG90b3RvaVwgOwor6aKo6ZycIDwgZnV1c291XCA7CivotbfniIYgPCBraWJha3VcIDsKK+iIiOWRsyA8IGt5b3VtaVwgOwor6IKJ6Iq9IDwgbmlrdWdhXCA7CivlraToiJ8gPCBrb3NodXVcIDsKK+S6jOmAsiA8IG5pc2hpblwgOwor5p2R6YGTIDwgc29uZG91XCA7CivlgY/lpb0gPCBoZW5rb3VcIDsKK+S6jOmAmiA8IG5pdHN1dVwgOwor5YCk5bmFIDwgbmVoYWJhXCA7CivpoqjpmLIgPCBmdXVib3VcIDsKK+aer+iRiSA8IGthcmVoYVwgOwor5a62552jIDwga2F0b2t1XCA7CivlgbblkJ8gPCBndXVraW5cIDsKK+S8nee3miA8IGRlbnNlblwgOwor6Ieq5Zu9IDwgamlrb2t1XCA7Civoh6jlnKggPCByaW56YWlcIDsKK+S9meeZvSA8IHlvaGFrdVwgOwor5a6/55e+IDwgc2h1a3VhXCA7Civlr4bnlJ8gPCBtaXNzZWlcIDsKK+WvhOeVmSA8IGtpcnl1dVwgOwor5p2l6LOTIDwgcmFpaGluXCA7CivkvJ3ntbEgPCBkZW50b3VcIDsKK+eUu+W/gyA8IGdhc2hpblwgOwor5bCO5rC0IDwgZG91c3VpXCA7CivmnaXosqIgPCByYWlrb3VcIDsKK+iEseazlSA8IGRhcHBvdVwgOwor5YCk5bWpIDwgbmVnYXNhXCA7Civlh7rmnaXlgKQgPCBkZWtpbmVcIDsKK+ixqumCuCA8IGdvdXRlaVwgOwor5L2Z55eFIDwgeW9ieW91XCA7CivogIHphZIgPCByb3VzaHVcIDsKK+S9juebriA8IGhpa3VtZVwgOwor5L2c55S7IDwgc2FrdWdhXCA7CivnjaPpoZ4gPCBqdXVydWlcIDsKK+ixqumCgSA8IGdvdW1haVwgOwor5bCE5rOVIDwgc2hhaG91XCA7Civpp4TniakgPCBkYW1vbm9cIDsKK+iEseawtCA8IGRhc3N1aVwgOwor6aOb6LqNIDwgaGl5YWt1XCA7CivkubHphZQgPCByYW5zdWlcIDsKK+S5semFkiA8IHJhbnNodVwgOwor6IiO5YWEIDwgc2hha2VpXCA7Civku7Doh6UgPCBneW91Z2FcIDsKK+eVquWkliA8IGJhbmdhaVwgOwor5bKp5aGpIDwgZ2FuJydlblwgOwor5L2V55WqIDwgbmFuYmFuXCA7Civmm7jpoqggPCBzaG9mdXVcIDsKK+iEs+atuyA8IG5vdXNoaVwgOwor5LqM6LazIDwgbmlzb2t1XCA7Civnvr3poqggPCBoYWthemVcIDsKK+ixqui+siA8IGdvdW5vdVwgOwor55S75bmFIDwgZ2FmdWt1XCA7Civmm7jpoZ4gPCBzaG9ydWlcIDsKK+eUn+aGjiA8IGFpbmlrdVwgOwor5Lit6aObIDwgY2h1dWhpXCA7CivosLfplpMgPCB0YW5pbWFcIDsKK+adseilvyA8IHRvdXphaVwgOwor6Iet5ZGzIDwgc2h1dW1pXCA7CivnkLTnt5ogPCBraW5zZW5cIDsKK+iDoeeTnCA8IGt5dXVyaVwgOwor6aOb6LaKIDwgaGlldHN1XCA7CivmnaXoq4cgPCByYWlkYW5cIDsKK+WAieW7qSA8IHNvdXJpblwgOwor6IWQ5py9IDwgZnVreXV1XCA7CivlronnqY8gPCBhbicnbm9uXCA7CivlgKTlrokgPCBuZXlhc3VcIDsKK+S7o+iJpiA8IGRhaWthblwgOwor5a+45rOVIDwgc3VucG91XCA7Civog47nm6QgPCB0YWliYW5cIDsKK+iAgei+siA8IHJvdW5vdVwgOwor5Lmx6YCgIDwgcmFuem91XCA7Civlgo3kurogPCBib3VqaW5cIDsKK+WxiOaMhyA8IGt1c3NoaVwgOwor6IKy56iuIDwgaWt1c2h1XCA7CivmooXmnpcgPCBiYWlyaW5cIDsKK+acqOmHmCA8IGtpa3VnaVwgOwor55S35belIDwgZGFua291XCA7CivosbzosoUgPCBoaWt5dXVcIDsKK+aciOmWkyA8IGdla2thblwgOwor5LuP6JGsIDwgYnVzc291XCA7CivlgJ/lrrYgPCBzaGFra2FcIDsKK+abuOmdoiA8IHNob21lblwgOwor5p2l6KiqIDwgcmFpaG91XCA7CivkuK3pn7MgPCBjaHV1b25cIDsKK+i0iOetlCA8IHpvdXRvdVwgOwor6ICB6LypIDwgcm91aGFpXCA7Civogb7ogIUgPCByb3VzaGFcIDsKK+ahkea1tyA8IHNvdWthaVwgOwor5bCP5qWvIDwga29kYXRlXCA7Civmn7HnpI4gPCBjaHV1c29cIDsKK+iBmuiQvSA8IGp1cmFrdVwgOwor5qSc5ZOBIDwga2VucGluXCA7Civlgbblg48gPCBndXV6b3VcIDsKK+WtmOe9riA8IHNvbmNoaVwgOwor5pys6YK4IDwgaG9udGVpXCA7CivmnKzpgqYgPCBob25wb3VcIDsKK+adpeimsyA8IHJhaWthblwgOwor6aSK6JqVIDwgeW91c2FuXCA7CivmnKzpgbggPCBob25zZW5cIDsKK+mgvem9oiA8IHRhaXJlaVwgOwor55Kw5rW3IDwga2Fua2FpXCA7CivmnKjpg6ggPCBtb2t1YnVcIDsKK+acrOmBkyA8IGhvbmRvdVwgOwor5bGF5omAIDwga3lvc2hvXCA7Civot6/luoogPCByb3Nob3VcIDsKK+WBveS9nCA8IGdpc2FrdVwgOwor5Lmx6LuNIDwgcmFuZ3VuXCA7Civos57nvo4gPCBzaG91YmlcIDsKK+iyr+iUtSA8IGNob3pvdVwgOwor5YCh5ammIDwgc2hvdWZ1XCA7CivmnJ3ph44gPCBjaG91eWFcIDsKK+iDmuePoCA8IGhhaXNodVwgOwor5pyq6YCyIDwgbWlzaGluXCA7CivkvJHnrKYgPCBreXV1ZnVcIDsKK+miqOmHhyA8IGZ1dXNhaVwgOwor55Sj5buDIDwgc2FucGFpXCA7Civku6TogZ4gPCByZWlidW5cIDsKK+iHquWKmyA8IGppcmlraVwgOwor5L+C5pWwIDwga2Vpc3V1XCA7CivkuK3pmbAgPCBjaHV1aW5cIDsKK+aknOWNsCA8IGtlbicnaW5cIDsKK+WwkeaelyA8IHNob3JpblwgOwor5YGl5YWoIDwga2VuemVuXCA7Civlr67mr40gPCByeW91Ym9cIDsKK+eUu+WtpiA8IGdhZ2FrdVwgOwor5LqS6KeSIDwgZ29rYWt1XCA7Civos6rntKAgPCBzaGlzc29cIDsKK+aguea6kCA8IGtvbmdlblwgOwor5p+z55yJIDwgcnl1dWJpXCA7Civkuonoq5YgPCBzb3Vyb25cIDsKK+i1sOazlSA8IHNvdWhvdVwgOwor5LiK6aiwIDwgam91dG91XCA7CivlsbHlrrYgPCB5YW1hZ2FcIDsKK+Wun+eUnyA8IG1pc2hvdVwgOwor5pyr6LypIDwgbWFwcGFpXCA7CivlsZ7lt64gPCB6b2t1c2FcIDsKK+S4jemmtCA8IGZ1bmFyZVwgOwor5qS/5LqLIDwgY2hpbmppXCA7Civpppbnj60gPCBzaHVoYW5cIDsKK+WumueVqiA8IHRlaWJhblwgOwor5YG25Lq6IDwgZ3V1amluXCA7CivnlLflrZAgPCBkYW5zaGlcIDsKK+S7o+e9siA8IGRhaXNob1wgOwor5Luj572uIDwgZGFpY2hpXCA7CivkvIrli6LkuLkgPCBpc2V0YW5cIDsKK+iCuueZjCA8IGhhaWdhblwgOwor6aWM57GzIDwgc2VubWFpXCA7CivotqPml6ggPCBzaHVzaGlcIDsKK+S7iuiIrCA8IGtvbnBhblwgOwor5bCK5p2lIDwgc29ucmFpXCA7Civmoq/lvaIgPCB0ZWlrZWlcIDsKK+S6jOimiyA8IGZ1dGFtaVwgOwor6Ieq5YSYIDwgamltYW1hXCA7CivmnpzogokgPCBrYW5pa3VcIDsKK+aknOWIhiA8IGtlbmJ1blwgOwor5Lih6ZmiIDwgcnlvdWluXCA7CivnlLLlrZAgPCBrYXNzaGlcIDsKK+S4gOmpmiA8IGlra3lvdVwgOwor5LqU6KGMIDwgZ29neW91XCA7Civoh7Pkvr8gPCBzaGliZW5cIDsKK+WwiuabuCA8IHNvbnNob1wgOwor5bCP5pi8IDwga29oaXJ1XCA7Civmm53pnLIgPCBiYWt1cm9cIDsKK+Wwj+aYpSA8IGtvaGFydVwgOwor5L2Z54CdIDwgeW9yZWtpXCA7CivnjK7ppYwgPCBrZW5zZW5cIDsKK+S/oeW+kiA8IHNoaW50b1wgOwor55Wq5Y+3IDwgYmFuZ291XCA7CivkuIDpp4QgPCBpY2hpZGFcIDsKK+mhnumhjCA8IHJ1aWRhaVwgOwor5puc6ZyKIDwgeW91cmVpXCA7CivmoLnmsrsgPCBrb25jaGlcIDsKK+WBieWKmyA8IGlyeW9rdVwgOwor5a+h5qyyIDwga2F5b2t1XCA7CivmnInphY0gPCB5dXVoYWlcIDsKK+S7lee9riA8IHNoaW9raVwgOwor6aKo6LuKIDwgZnV1c2hhXCA7Civmmpfpu5kgPCBhbm1va3VcIDsKK+WxseWlsyA8IHlhbWFtZVwgOwor5pqX6buSIDwgYW5rb2t1XCA7CivlsIHmm7ggPCBmdXVzaG9cIDsKK+S7j+iAhSA8IGJ1c3NoYVwgOwor5qOE5a2QIDwgc3V0ZWdvXCA7CivlgLnlkJ0gPCBrZW5yaW5cIDsKK+iHquS+myA8IGppa3lvdVwgOwor5LiJ6Z+TIDwgc2Fua2FuXCA7CivkuojooaggPCB5b2h5b3VcIDsKK+S4h+mggyA8IGJhbmtlaVwgOwor5LiA6aObIDwgaWNoaWhpXCA7CivmoLnmr5sgPCBrb25tb3VcIDsKK+S9mea7tCA8IHlvdGVraVwgOwor5YCN5aSnIDwgYmFpZGFpXCA7Civoh6rkvZwgPCBqaXNha3VcIDsKK+iCsueUnyA8IGlrdXNlaVwgOwor55S75aKDIDwgZ2FreW91XCA7CivmnKjos4ogPCB0b2t1c2FcIDsKK+WwiuaVrCA8IHNvbmtlaVwgOwor5LiK6Z2iIDwgam91bWVuXCA7CivlsYXluLggPCBreW9qb3VcIDsKK+S7o+e0jSA8IGRhaW5vdVwgOwor5a+S5rCXIDwgc2FtdWtlXCA7CivkuInpnaIgPCBzYW5tZW5cIDsKK+WwiuaUmCA8IHNvbmpvdVwgOwor5YGc5LyaIDwgdGVpa2FpXCA7CivlgI3lopcgPCBiYWl6b3VcIDsKK+aknOS+vyA8IGtlbmJlblwgOwor55Sf5a2YIDwgc2Vpem9uXCA7CivlsZHlsYsgPCBrdXp1eWFcIDsKK+mhmOmdoiA8IGdhbm1lblwgOwor6aKo6LajIDwgZnV1c2h1XCA7Civog7jmr5sgPCBtdW5hZ2VcIDsKK+WxseWgtCA8IHlhbWFiYVwgOwor5bGP5bGFIDwgaGVpa3lvXCA7CivkuIfpm7cgPCBiYW5yYWlcIDsKK+S4iemajiA8IHNhbmdhaVwgOwor5a+d5qeYIDwgbmV6YW1hXCA7CivmraTlh6bnrYkgPCBrb2tvcmFcIDsKK+eVquWFtSA8IGJhbnBlaVwgOwor5pyd6LOAIDwgY2hvdWdhXCA7Civlr77mlbAgPCB0YWlzdXVcIDsKK+WvqeafuyA8IHNoaW5zYVwgOwor5a+d5qWtIDwgbmV3YXphXCA7CivpnLLopb/kupwgPCByb3NoaWFcIDsKK+acrOirliA8IGhvbnJvblwgOwor5YCf5ZWPIDwgc2hhbW9uXCA7Civmm77pgYogPCBzb3V5dXVcIDsKK+eQouejqCA8IHRha3VtYVwgOwor6IW55a2QIDwgaGFyYWtvXCA7CivmoZ/mlbcgPCBzYWppa2lcIDsKK+WvvuaUryA8IHRhaXNoaVwgOwor6aSK6IKyIDwgeW91aWt1XCA7CivkvK/niLYgPCBoYWt1ZnVcIDsKK+acrOiqjCA8IGhvbnNoaVwgOwor5a2Q56iuIDwga29kYW5lXCA7CivlsI/mjIcgPCBrb3l1YmlcIDsKK+acquiqrSA8IG1pZG9rdVwgOwor55uu5Yy76ICFIDwgbWVpc2hhXCA7CivkuIDpmrsgPCBpc3Nla2lcIDsKK+WvuOaWrSA8IHN1bmRhblwgOwor6ICB6KGwIDwgcm91c3VpXCA7CivohZDlv4MgPCBmdXNoaW5cIDsKK+aatOmiqCA8IGJvdWZ1dVwgOwor5L2Z5rKiIDwgeW90YWt1XCA7CivlrprngrkgPCB0ZWl0ZW5cIDsKK+abuOmBkyA8IHNob2RvdVwgOwor5Lit6YOoIDwgY2h1dWJ1XCA7CivlgY/kurogPCBoZW5qaW5cIDsKK+WApuWOrSA8IGtlbicnZW5cIDsKK+WtpueboyA8IGdha2thblwgOwor6aSK6ICBIDwgeW91cm91XCA7CivnlKPlo7AgPCB1YnVnb2VcIDsKK+mjtOiJsiA8IGFtZWlyb1wgOwor55Sw5ZywIDwgZGVuY2hpXCA7CivmnJ3orbAgPCBjaG91Z2lcIDsKK+eUsOWckiA8IGRlbicnZW5cIDsKK+mmmea4ryA8IGhvbmtvblwgOwor5qGC5p6XIDwga2VpcmluXCA7CivkuIDplpMgPCBoaXRvbWFcIDsKK+WtmOefpSA8IHpvbmNoaVwgOwor5Lit6YCUIDwgY2h1dXRvXCA7CivnkLrnka8gPCBob3Vyb3VcIDsKK+mgu+mguyA8IGhpbnBpblwgOwor5bC75bC+IDwgc2hpcHBvXCA7CivnlJrlpKcgPCBqaW5kYWlcIDsKK+S+i+aVsCA8IHJlaXN1dVwgOwor5LqM6JGJIDwgZnV0YWJhXCA7Civpo7zogrIgPCBzaGlpa3VcIDsKK+S/s+WjhyA8IGhhaWRhblwgOwor5bGv5Za2IDwgdG9uJydlaVwgOwor5p2l6IeoIDwgcmFpcmluXCA7CivmorXlpKkgPCBib250ZW5cIDsKK+WmguS9leanmCA8IGlrYXlvdVwgOwor5a+S5qKFIDwga2FuYmFpXCA7CivmoLnmn6IgPCBrb250ZWlcIDsKK+S9leatsyA8IG5hbnNhaVwgOwor5qCX5q+bIDwga3VyaWdlXCA7CivlsIrmha4gPCBzb25yeW9cIDsKK+S9j+awkSA8IGp1dW1pblwgOwor5bCR5oGpIDwgc2hvdW9uXCA7CivnlKPlnLAgPCBzYW5jaGlcIDsKK+S8geeUuyA8IGtpa2FrdVwgOwor55SY5aGpIDwgYW1hamlvXCA7CivotaTmnKwgPCBha2Fob25cIDsKK+miqOinoyA8IGZ1dWthaVwgOwor5L215pyJIDwgaGVpeXV1XCA7CivlsYvlpJYgPCBva3VnYWlcIDsKK+mmrOaphyA8IGJhc29yaVwgOwor5Lit6LqrIDwgbmFrYW1pXCA7CivnkIbnpZ4gPCByaXNoaW5cIDsKK+agueacrCA8IG5lbW90b1wgOwor5Lq657W5IDwgamlua2VuXCA7CivkuLvos5MgPCBzaHVoaW5cIDsKK+eUn+WcsCA8IHNlaWNoaVwgOwor6aKo6KaLIDwga2F6YW1pXCA7Civku5bnp7AgPCB0YXNob3VcIDsKK+mmmeawtCA8IGtvdXN1aVwgOwor5a+S5p2RIDwga2Fuc29uXCA7CivmnYnoj5wgPCBzdWdpbmFcIDsKK+eVmeS/nSA8IHJ5dXVob1wgOwor6IO95pu4IDwgbm91c2hvXCA7CivkvZzmpa0gPCBzYWd5b3VcIDsKK+WAqOWCsiA8IGt5b2dvdVwgOwor5qC55pqXIDwgbmVrdXJhXCA7Civot6HlnLAgPCBhdG9jaGlcIDsKK+S6uuezniA8IGppbnB1blwgOwor5a2m55CGIDwgZ2FrdXJpXCA7CivkvZnmpa0gPCB5b2d5b3VcIDsKK+Wwj+W9oiA8IGtvZ2F0YVwgOwor5pyI6KydIDwgZ2Vzc2hhXCA7Civlr4bmoJMgPCBtaXNzZW5cIDsKK+WvkuaaliA8IGthbmRhblwgOwor6aKo6KKLIDwgZnV1dGFpXCA7CivkuInph40gPCBzYW5qdXVcIDsKK+iyoee1jCA8IHphaWtlaVwgOwor5a2Y55SfIDwgem9uam91XCA7CivkuIfph5EgPCBtYW5raW5cIDsKK+WwiuW9sSA8IHNvbicnZWlcIDsKK+agueaWuSA8IG5la2F0YVwgOwor55So5ZOBIDwgeW91aGluXCA7Civku67nl4UgPCBrZWJ5b3VcIDsKK+S4iumFkiA8IGpvdXNodVwgOwor5a6X5rS+IDwgc2h1dWhhXCA7Civlrprms5UgPCBqb3Vob3VcIDsKK+WutualrSA8IGthZ3lvdVwgOwor6IOh5qSSIDwga29zaG91XCA7Civog4bmsYEgPCB0YW5qdXVcIDsKK+eQpeePgCA8IGtvaGFrdVwgOwor6IO95paHIDwgbm91YnVuXCA7CivlsI/luYUgPCBrb2hhYmFcIDsKK+WtpOeLrCA8IGtvZG9rdVwgOwor55Sj5ZOBIDwgc2FucGluXCA7CivkuI3pgakgPCBmdXRla2lcIDsKK+WvhuabuCA8IG1pc3Nob1wgOwor6IKh54GrIDwgbWF0YWJpXCA7Civnvo7phpwgPCBiaXNodXVcIDsKK+S4gOmHjCA8IGljaGlyaVwgOwor5a+15oSbIDwgY2hvdWFpXCA7Civlrp3mrr8gPCBob3VkZW5cIDsKK+Wwj+W3riA8IHNob3VzYVwgOwor54+g566XIDwgc2h1emFuXCA7CivkuI3pgJogPCBmdXRzdXVcIDsKK+iEs+W5uSA8IG5vdWthblwgOwor5L6b5b+cIDwga3lvdW91XCA7Civnjonol7sgPCB0YW1hbW9cIDsKK+iCneeCjiA8IGthbicnZW5cIDsKK+S4iemBuCA8IHNhbnNlblwgOwor5bCL5bi4IDwgamluam91XCA7Civkv67llrYgPCBzaHV1ZWlcIDsKK+iDoeahgyA8IGt1cnVtaVwgOwor5LiH6YKmIDwgYmFucG91XCA7CivogIHojZggPCByb3Vzb3VcIDsKK+WumOawkSA8IGthbm1pblwgOwor56C06a2U55+iIDwgaGFtYXlhXCA7CivlsZ7lkI8gPCB6b2t1cmlcIDsKK+aeoeebriA8IG1hc3VtZVwgOwor5LiB6YWJIDwgdGVpeXV1XCA7CivotorlvowgPCBlY2hpZ29cIDsKK+WwmuWwmiA8IG5hb25hb1wgOwor5LiJ6YCjIDwgc2FucmVuXCA7CivkuLvoqIggPCBzaHVrZWlcIDsKK+agoeacrCA8IGtvdWhvblwgOwor5pqu6ZCYIDwgYm9zaG91XCA7CivlsIHlu7ogPCBob3VrZW5cIDsKK+WAkuWDjyA8IHRvdXpvdVwgOwor576F6YedIDwgcmFzaGluXCA7CivmorXllIQgPCBib25iYWlcIDsKK+S4iui+uiA8IGpvdWhlblwgOwor5LiA6YOtIDwgaWtrYWt1XCA7CivkuIDpg6ggPCBpY2hpYnVcIDsKK+S9leaemiA8IG5hbm1haVwgOwor5a+45b+XIDwgc3Vuc2hpXCA7CivkvZ7mmbogPCBuZWljaGlcIDsKK+S4u+imsyA8IHNodWthblwgOwor5a625p+EIDwgaWVnYXJhXCA7CivlsI/ls7YgPCBrb2ppbWFcIDsKK+acrOiRrCA8IGhvbnNvdVwgOwor55Sj5Y21IDwgc2FucmFuXCA7CivkurrnqK4gPCBqaW5zaHVcIDsKK+WujOayuyA8IGthbmNoaVwgOwor5L2V5p2hIDwgbmFuam91XCA7Civku6PnlKggPCBkYWl5b3VcIDsKK+ebuOmDqOWxiyA8IGFpYmV5YVwgOwor5Lyv5q+NIDwgaGFrdWJvXCA7Civkv7PlkI0gPCBoYWltZWlcIDsKK+WtpOWFkOmZoiA8IGtvamlpblwgOwor576p6LOKIDwgZ2l6b2t1XCA7CivlsI/lsbEgPCBrb3lhbWFcIDsKK+WwiuW0hyA8IHNvbnN1dVwgOwor5L+z5Y+LIDwgaGFpeXV1XCA7CivkuIDpgLEgPCBpc3NodXVcIDsKK+S8kea8lCA8IGt5dXVlblwgOwor5LiA6YCaIDwgaXR0c3V1XCA7CivohIfmiLggPCB3YWtpZG9cIDsKK+Wwv+WZqCA8IG55b3VraVwgOwor5LiJ6LuNIDwgc2FuZ3VuXCA7Civni63pnKcgPCBzYWdpcmlcIDsKK+agueaLoCA8IGtvbmt5b1wgOwor5LqV57axIDwgaWR6dW5hXCA7Civku4rml6Xml6UgPCBreW91YmlcIDsKK+S4h+i7jSA8IGJhbmd1blwgOwor5p2x56uvIDwgdG91dGFuXCA7CivmnKzojYkgPCBob256b3VcIDsKK+iyu+ebriA8IGhpbW9rdVwgOwor5LuZ55WMIDwgc2Vua2FpXCA7CivnlKPliY0gPCBzYW56ZW5cIDsKK+eOieiPnCA8IHRhbWFuYVwgOwor5pyr6Iy2IDwgbWF0Y2hhXCA7Civpo6/nsbMgPCBoYW5tYWlcIDsKK+mghumiqCA8IGp1bnB1dVwgOwor5pyx6ImyIDwgc2h1aXJvXCA7CivkvJ3ms5UgPCBkZW5wb3VcIDsKK+eUu+S8ryA8IGdhaGFrdVwgOwor54ut6ZqYIDwga3lvdWFpXCA7CivnjaPooYwgPCBqdXVrb3VcIDsKK+S4jei2syA8IGZ1c29rdVwgOwor6LOH55SjIDwgc2hpc2FuXCA7Civlq4Hoj5wgPCB5b21lbmFcIDsKK+S6lOe1jCA8IGdva3lvdVwgOwor6aeF5omLIDwgZWtpc2h1XCA7CivnlJ/liY0gPCBzZWl6ZW5cIDsKK+S4i+i2syA8IGdlc29rdVwgOwor5L2V5pa5IDwgZG9uYXRhXCA7CivosZroiI4gPCB0b25zaGFcIDsKK+i2s+WgtCA8IGFzaGliYVwgOwor6aCG6aCGIDwganVuanVuXCA7CivojbzmnrPlsLwgPCBkYWtpbmlcIDsKK+S4gOi6qyA8IGlzc2hpblwgOwor6IKl5rKDIDwgaGl5b2t1XCA7CivmorHljIUgPCBrb25wb3VcIDsKK+ael+eUoyA8IHJpbnNhblwgOwor5Lq655+lIDwgamluY2hpXCA7CivnvbDph5EgPCBiYWtraW5cIDsKK+S7pOeKtiA8IHJlaWpvdVwgOwor5L6L5bm0IDwgcmVpbmVuXCA7Civni63plpMgPCBoYXphbWFcIDsKK+iEm+W3viA8IGhhYmFraVwgOwor5bGl5L+uIDwgcmlzaHV1XCA7Civohp3kuIsgPCBzaGlra2FcIDsKK+S6jOe0miA8IG5pa3l1dVwgOwor5rW36ICB6YygIDwgZWJpam91XCA7CivmnKzohrMgPCBob256ZW5cIDsKK+S4gOi3ryA8IGljaGlyb1wgOwor6ISG5oCnIDwgemVpc2VpXCA7CivkvZPmk40gPCB0YWlzb3VcIDsKK+S9v+W9uSA8IHNoaWVraVwgOwor5pmp6aSQIDwgYmFuc2FuXCA7Civogp3msrkgPCBrYW4nJ3l1XCA7CivnvqToq5YgPCBndW5yb25cIDsKK+eUqOS+vyA8IHlvdWJlblwgOwor5LuK55SfIDwga29uam91XCA7CivlsJHlpbMgPCBzaG91am9cIDsKK+S6uuebuCA8IG5pbnNvdVwgOwor5LqI57SEIDwgeW95YWt1XCA7Civkurrnm64gPCBoaXRvbWVcIDsKK+eUmOWFmiA8IGFtYXRvdVwgOwor6LKn55u4IDwgaGluc291XCA7Civog4zmma8gPCBoYWlrZWlcIDsKK+mnkuW6pyA8IGtvbWF6YVwgOwor5a6J5qW9IDwgYW5yYWt1XCA7CivkuJboqZUgPCBzZWh5b3VcIDsKK+ePreeUsCA8IGhhbmRlblwgOwor5pyJ6JOLIDwgeXV1Z2FpXCA7CivnlKjku7YgPCB5b3VrZW5cIDsKK+S5l+iIuSA8IGpvdXNlblwgOwor5a6f5pmvIDwgamlra2VpXCA7CivlsYvlhoUgPCBva3VuYWlcIDsKK+Wtpua0viA8IGdha3VoYVwgOwor6aKo6Ii5IDwgZnV1c2VuXCA7Civmn5Tmr5sgPCBqdXVtb3VcIDsKK+ePvueKtiA8IGdlbmpvdVwgOwor6Z+z6Z+/IDwgb25reW91XCA7CivmnKjogowgPCBraWhhZGFcIDsKK+WwiuWkpyA8IHNvbmRhaVwgOwor6ISz5aSpIDwgbm91dGVuXCA7CivlqprolqwgPCBiaXlha3VcIDsKK+miqOiHtCA8IGZ1dWNoaVwgOwor5a+d5bqKIDwgbmVkb2tvXCA7CivkuJbopbIgPCBzZXNodXVcIDsKK+iAgee3tCA8IHJvdXJlblwgOwor5LiN6KmzIDwgZnVzaG91XCA7Civlrp/mlr0gPCBqaXNzaGlcIDsKK+S4h+isnSA8IGJhbnNoYVwgOwor5LiJ6KuWIDwgc2Fucm9uXCA7Civkv5fli5kgPCB6b2t1bXVcIDsKK+mnheW8gSA8IGVraWJlblwgOwor5pys572yIDwgaG9uc2hvXCA7Civlr53lt7sgPCBuZW1ha2lcIDsKK+Wun+aVsCA8IGppc3N1dVwgOwor5Lq655SfIDwgamluc2VpXCA7CivlrojmoKogPCBzaHVzaHVcIDsKK+iVjum6puWxiyA8IHNvYmF5YVwgOwor5LqJ56uvIDwgc291dGFuXCA7CivkuIDorbAgPCBpY2hpZ2lcIDsKK+S8tOaYnyA8IGJhbnNlaVwgOwor6aOb56ucIDwgaGlyeXV1XCA7CivmoLnlubkgPCBrb25rYW5cIDsKK+i1pOW4vSA8IGFrYWJvdVwgOwor6aSK55SfIDwgeW91am91XCA7CivmmrTotbAgPCBib3Vzb3VcIDsKK+S4iuioiCA8IGpvdWtlaVwgOwor5a6/5oSPIDwgc2h1a3VpXCA7CivlrozmnKwgPCBrYW5wb25cIDsKK+iAs+ebriA8IGppbW9rdVwgOwor5L2e5oKqIDwgbmVpYWt1XCA7Civkv6/kvI8gPCBmdWZ1a3VcIDsKK+momeWPliA8IGhlbnNodVwgOwor5L+v5LuwIDwgZnVneW91XCA7CivkuIropqcgPCBqb3VyYW5cIDsKK+S4h+iogCA8IG1hbmdlblwgOwor5a++5aSWIDwgdGFpZ2FpXCA7CivkvY/miYAgPCBqdXVzaG9cIDsKK+iyoeeVjCA8IHphaWthaVwgOwor6aKo6IGeIDwgZnV1YnVuXCA7CivkuIropoYgPCB1d2Fvb2lcIDsKK+WuueaFiyA8IHlvdWRhaVwgOwor6LKh55SjIDwgemFpc2FuXCA7Civpm4zmjbvlrZAgPCBtZW5lamlcIDsKK+S4oeiZjiA8IHJ5b3Vrb1wgOwor54yl6KuHIDwgd2FpZGFuXCA7CivotorlooMgPCBla2t5b3VcIDsKK+S4iuijvSA8IGpvdXNlaVwgOwor5L+X5YSSIDwgem9rdWp1XCA7CivkuIroo4EgPCBqb3VzYWlcIDsKK+S8neadpSA8IGRlbnJhaVwgOwor5a+d5bCPIDwgbmVzaG91XCA7CivmnKzntbkgPCBob25rZW5cIDsKK+mjr+ebkiA8IGhhbmdvdVwgOwor5LiL6KGoIDwga2FoeW91XCA7CivohZXliY0gPCB1ZGVtYWVcIDsKK+S7ruaziiA8IGthaGFrdVwgOwor5L2Z5b6zIDwgeW90b2t1XCA7CivkvZ7lvIEgPCBuZWliZW5cIDsKK+S4reiPryA8IGNodXVrYVwgOwor5a6z5oKqIDwgZ2FpYWt1XCA7CivlsIHlnLAgPCBob3VjaGlcIDsKK+WujOaVlyA8IGthbnBhaVwgOwor5L+a5L+XIDwgcml6b2t1XCA7CivlsYvkuIogPCBva3Vqb3VcIDsKK+acqOe1hCA8IGtpZ3VtaVwgOwor5pyJ6IO9IDwgeXV1bm91XCA7CivlsJrlj6QgPCBzaG91a29cIDsKK+iDjOaIuyA8IGhhaXJlaVwgOwor5a6j5oimIDwgc2Vuc2VuXCA7CivkupTnm64gPCBnb21va3VcIDsKK+Wvk+WxhSA8IGd1dWt5b1wgOwor5bCL5ZWPIDwgamlubW9uXCA7CivmmrToq5YgPCBib3Vyb25cIDsKK+adoeeXlSA8IGpvdWtvblwgOwor5L215a2YIDwgaGVpem9uXCA7Civlr4zlsrMgPCBmdWdha3VcIDsKK+iDoeW8kyA8IGtva3l1dVwgOwor5pi86aSJIDwgaGlydWdlXCA7CivnkLTmn7EgPCBrb3RvamlcIDsKK+i2qOWLoiA8IHN1dXNlaVwgOwor6aCR6L+3IDwgZ2FubWVpXCA7CivlrpvmiYAgPCBhdGVzaG9cIDsKK+afkOafkCA8IGJvdWJvdVwgOwor6LKv54KtIDwgY2hvdGFuXCA7Civkuoznm64gPCBmdXRhbWVcIDsKK+aatOiogCA8IGJvdWdlblwgOwor5L+K5YGJIDwgc2h1bicnaVwgOwor5bCK5ZG9IDwgc29ubWVpXCA7CivogqXmlpkgPCBoaXJ5b3VcIDsKK+Wun+aFiyA8IGppdHRhaVwgOwor5pyo566xIDwga2liYWtvXCA7CivmnInnvaogPCB5dXV6YWlcIDsKK+WtpuagoSA8IGdha2tvdVwgOwor5pyo566hIDwgbW9ra2FuXCA7CivnjoTnsbMgPCBnZW5tYWlcIDsKK+ePiOeQsiA8IGtvdWhpaVwgOwor6aKo57SLIDwgZnV1bW9uXCA7CivmoKrlsYsgPCBrYWJ1eWFcIDsKK+WwiuWQmyA8IHNvbmt1blwgOwor5a6f5oSPIDwgaml0c3VpXCA7CivkvY7lu4kgPCB0ZWlyZW5cIDsKK+mjvOeKrCA8IGthaWludVwgOwor5bCK5Y+3IDwgc29uZ291XCA7Civku5bmtYEgPCB0YXJ5dXVcIDsKK+acq+erryA8IG1hdHRhblwgOwor5Lq654G9IDwgamluc2FpXCA7CivkuIvolqwgPCBnZXlha3VcIDsKK+WvhuWwgSA8IG1pcHB1dVwgOwor5bCP5YyZIDwga29zYWppXCA7CivlsIrljrMgPCBzb25nZW5cIDsKK+iCieahgiA8IG5pa2tlaVwgOwor6LWw5aGBIDwgc291cnVpXCA7CivkvJ3mkKwgPCBkZW5wYW5cIDsKK+Wvm+WkpyA8IGthbmRhaVwgOwor5Y+k5LqL6KiYIDwga29qaWtpXCA7CivmnKznqL8gPCBob25rb3VcIDsKK+WtkOanmCA8IGtvc2FtYVwgOwor5a6/5bGLIDwgeWFkb3lhXCA7Civlr7/lkb0gPCBqdW15b3VcIDsKK+ecn+mdouebriA8IG1hamltZVwgOwor5LiJ6JS1IDwgc2Fuem91XCA7Civpn7Pph48gPCBvbnJ5b3VcIDsKK+S5l+eulyA8IGpvdXphblwgOwor5qC55aSqIDwgbmVidXRvXCA7CivorbDplbcgPCBnaWNob3VcIDsKK+abuOe/sCA8IHNob2thblwgOwor5p2l54q2IDwgcmFpam91XCA7Civku4/ms5UgPCBidXBwb3VcIDsKK+WuieaJiyA8IHlhc3VkZVwgOwor5a++5Y+lIDwgdHN1aWt1XCA7CivkuK3ogLMgPCBjaHV1amlcIDsKK+acrOekviA8IGhvbnNoYVwgOwor5LiL6JC9IDwgZ2VyYWt1XCA7CivorabpmLIgPCBrZWlib3VcIDsKK+WvkuWknCA8IGthbicneWFcIDsKK+WuiOaIkCA8IHNodXNlaVwgOwor54m56auYIDwgdG9ra291XCA7CivmnKvnpL4gPCBtYXNzaGFcIDsKK+S9l+WvnSA8IHdhYmluZVwgOwor5a6f5byfIDwgaml0dGVpXCA7CivnjrLnk48gPCByZWlyb3VcIDsKK+iAgeecvCA8IHJvdWdhblwgOwor5qC95Z+5IDwgc2FpYmFpXCA7CivniaHpto8gPCBvbmRvcmlcIDsKK+Wwj+WFtSA8IGtvaHlvdVwgOwor5pyI57WMIDwgZ2Vra2VpXCA7Civog4zluoMgPCBzZWJpcm9cIDsKK+Wto+aYpSA8IGtpc2h1blwgOwor5bCP5YWQIDwgc2hvdW5pXCA7CivosYrnqJQgPCBob3VuZW5cIDsKK+eJnem3hCA8IGhpbmtlaVwgOwor6LGh55y8IDwgem91Z2FuXCA7CivnjrPnkYEgPCB0YWltYWlcIDsKK+aal+iqpiA8IGFuc2hvdVwgOwor6aiS5Lq6IDwgc291amluXCA7CivlrZDmoKogPCBrb2thYnVcIDsKK+aYvOmWkyA8IGhpcnVtYVwgOwor5L2O5bGkIDwgdGVpc291XCA7CivmoLnln44gPCBuZWppcm9cIDsKK+S6gOeUsiA8IGtpa2tvdVwgOwor6aGV6JGXIDwga2VuY2hvXCA7CivpqJLkubEgPCBzb3VyYW5cIDsKK+WwiuWFrCA8IHNvbmtvdVwgOwor5a615a6uIDwgeW9taXlhXCA7CivkvY/lsIIgPCBqdXVzZW5cIDsKK+mfs+mAnyA8IG9uc29rdVwgOwor5LyQ5o6hIDwgYmFzc2FpXCA7Civkvr/kuZcgPCBiaW5qb3VcIDsKK+S5vueUsCA8IGthbmRlblwgOwor6LGG56eRIDwgbWFtZWthXCA7CivohLHlhZogPCBkYXR0b3VcIDsKK+S9nuWnpiA8IG5laWthblwgOwor5L2P5a62IDwgc3VtaWthXCA7CivnjrLnjrIgPCByZWlyZWlcIDsKK+S+tuS8tCA8IHJ5b2hhblwgOwor6LOc5p2vIDwgc2hpaGFpXCA7CivosqHmupAgPCB6YWlnZW5cIDsKK+WuieaBryA8IGFuc29rdVwgOwor5bCK5YOPIDwgc29uem91XCA7CivkuI3oia8gPCBmdXJ5b3VcIDsKK+WumuW4uCA8IHRlaWpvdVwgOwor54yu6Iy2IDwga2VuY2hhXCA7CivkuIDoj4ogPCBpa2tpa3VcIDsKK+WuruWutiA8IG1peWFrZVwgOwor6aKo56WeIDwgZnV1amluXCA7Civlr77lh6YgPCB0YWlzaG9cIDsKK+S4oee+qSA8IHJ5b3VnaVwgOwor5LiH6Iq4IDwgYmFuZ2VpXCA7Civos6LmmI4gPCBrZW5tZWlcIDsKK+iyr+awtCA8IGNob3N1aVwgOwor5p6v5pyoIDwga2FyZWtpXCA7CivkuIDojZggPCBpaWNoYW5cIDsKK+WvuOWJjSA8IHN1bnplblwgOwor5a6P5byBIDwga291YmVuXCA7Civlr77lhoUgPCB0YWluYWlcIDsKK+iAgeeUnyA8IHJvdXNlaVwgOwor542656WtIDwgZGFzc2FpXCA7Civni6zoqp4gPCBkb2t1Z29cIDsKK+S4iuiHvCA8IHV3YXVzdVwgOwor5bCP5L2cIDwga29zYWt1XCA7CivmnKznm5cgPCBob250b3VcIDsKK+mjvea6gCA8IGhvdW1hblwgOwor6YKj55Sx5LuWIDwgbmF5dXRhXCA7Civlr7jliIYgPCBzdW5idW5cIDsKK+eLrOipsSA8IGRva3V3YVwgOwor5LiH6IisIDwgYmFucGFuXCA7CivkuIroh4ggPCBqb3Vyb3VcIDsKK+acqOebriA8IG1va3VtZVwgOwor5a6m5a6YIDwga2FuZ2FuXCA7Civmm7TntJcgPCBzYXJhc2FcIDsKK+S6uuawlyA8IGhpdG9rZVwgOwor5pyo55q/IDwga2l6YXJhXCA7CivkurrmsJEgPCBqaW5taW5cIDsKK+S4iuiFlSA8IGpvdXdhblwgOwor5bCK5L2TIDwgc29udGFpXCA7CivmnKjnmq4gPCBtb2t1aGlcIDsKK+S7o+abvyA8IGRhaXRhaVwgOwor5p+Q5omAIDwgYm91c2hvXCA7CivlrZDmlrkgPCBrb2thdGFcIDsKK+S9nOWgtCA8IHNha3ViYVwgOwor6LKn5rCRIDwgaGlubWluXCA7Civku4rmp5ggPCBpbWF5b3VcIDsKK+S6rOa1nCA8IGtlaWhpblwgOwor5pyJ56iOIDwgeXV1emVpXCA7CivohLHkvJogPCBkYWtrYWlcIDsKK+S4iuiDjCA8IHV3YXplaVwgOwor5a+15YWQIDwgY2hvdWppXCA7CivkuIrogqIgPCBqb3VzaGlcIDsKK+aZuuisgCA8IGNoaWJvdVwgOwor6aGe6IGaIDwgcnVpanV1XCA7CivmnKznlaogPCBob25iYW5cIDsKK+eJuemcgCA8IHRva3VqdVwgOwor6LK05qeYIDwga2lzYW1hXCA7CivogbDmmI4gPCBzb3VtZWlcIDsKK+miqOecvCA8IGZ1dWdhblwgOwor6ICB542qIDwgcm91a2FpXCA7Civlrrblob4gPCBrYWp1a3VcIDsKK+izh+acrCA8IHNoaWhvblwgOwor5L2c5ZyfIDwgc2FrdWRvXCA7CivkvJrlvI8gPCBlc2hpa2lcIDsKK+e+mue+iiA8IHJlaXlvdVwgOwor5LiJ6ICFIDwgc2Fuc2hhXCA7CivosarniL0gPCBnb3Vzb3VcIDsKK+S9nOWbsyA8IHNha3V6dVwgOwor54yr6IOMIDwgbmVrb3plXCA7Civpo5vngasgPCB0b2JpaGlcIDsKK+eJh+mxlyA8IGhlbnJpblwgOwor6aeF5ZCNIDwgZWtpbWVpXCA7Civku6PmlbAgPCBkYWlzdXVcIDsKK+ixkOeUsCA8IHRveW90YVwgOwor54us6KGMIDwgZG9ra291XCA7CivniZvppqwgPCBneXV1YmFcIDsKK+S4uOenmCA8IG1hcnVoaVwgOwor6aOb54CRIDwgaGliYWt1XCA7CivlgLbmpb3pg6ggPCBrdXJhYnVcIDsKK+mgkuihjCA8IGhhbmtvdVwgOwor5p2x5q+OIDwgdG91bWFpXCA7Civog6Hlm70gPCBrb2tva3VcIDsKK+ahiOWGhSA8IGFuJyduYWlcIDsKK+S9leWbniA8IG5hbmthaVwgOwor6K236LqrIDwgZ29zaGluXCA7CivmnKjnkLQgPCBtb2traW5cIDsKK+S7j+abuCA8IGJ1c3Nob1wgOwor6aGe57qCIDwgcnVpc2FuXCA7CivpnZLpu7QgPCBhb2thYmlcIDsKK+acqOeQhiA8IG1va3VyaVwgOwor5L6b5LiOIDwga3lvdXlvXCA7CivorpLorJcgPCB6YW5ib3VcIDsKK+WvneWIgyA8IG5ldGFiYVwgOwor5LiA5769IDwgaWNoaXdhXCA7CivogonmhJ8gPCBuaWtrYW5cIDsKK+izouaJjSA8IGtlbnNhaVwgOwor5bGL5qC55bGLIDwgeWFuZXlhXCA7Civlronlr6cgPCBhbicnbmVpXCA7CivkuLvnoLIgPCBzaHVob3VcIDsKK+WvneWFtyA8IHNoaW5ndVwgOwor6LK/5piTIDwgYm91ZWtpXCA7Civnj77mlbAgPCBnZW5zdXVcIDsKK+mfs+iqvyA8IG9uY2hvdVwgOwor6aeF5YmNIDwgZWtpbWFlXCA7Civlrojlrq4gPCB5YW1vcmlcIDsKK+mfs+iqrSA8IG9uZG9rdVwgOwor5p6a5pWwIDwgbWFpc3V1XCA7CivogaHmlY8gPCBzb3ViaW5cIDsKK+iyp+ajkiA8IGJpbmJvdVwgOwor5pyI55u4IDwgZ2Vzc291XCA7CivpnZLpt7ogPCBhb3NhZ2lcIDsKK+WtpuW+kiA8IGdha3V0b1wgOwor5pyJ55uKIDwgeXV1ZWtpXCA7Civku4rmmakgPCBrb25iYW5cIDsKK+WvkuWJpCA8IGthbnphaVwgOwor6LOi5oWuIDwga2VucnlvXCA7CivkuIvntbUgPCBzaGl0YWVcIDsKK+iukuiogCA8IHphbmdlblwgOwor6LWm5YWNIDwgc2hhbWVuXCA7CivkuojmuKwgPCB5b3Nva3VcIDsKK+miqOeQtCA8IGZ1dWtpblwgOwor5LiJ57WEIDwgbWlrdW1pXCA7CivkuInntYMgPCBzYW5nZW5cIDsKK+S4iue0jSA8IGpvdW5vdVwgOwor546L54mpIDwgb3Vtb25vXCA7CivkuIDnuLcgPCBpY2hpcnVcIDsKK+S6jOa1gSA8IG5pcnl1dVwgOwor5rW36ICB6Iy2IDwgZWJpY2hhXCA7CivogZbmlq0gPCBzZWlkYW5cIDsKK+S9qeWJoyA8IGhhaWtlblwgOwor5Lq65p2QIDwgamluemFpXCA7CivmnKrnhp8gPCBtaWp1a3VcIDsKK+S4iuexsyA8IGpvdW1haVwgOwor5Lit56C0IDwgY2h1dWhhXCA7CivkurrmnJsgPCBqaW5ib3VcIDsKK+WvoeS9nCA8IGthc2FrdVwgOwor5Lit56ClIDwgbmFrYXRvXCA7Civpoq/niL0gPCBzYXNzb3VcIDsKK+Wun+WcsCA8IGppdGNoaVwgOwor6IOM5ZqiIDwgaGFpbm91XCA7Civos6blvbkgPCBidXlha3VcIDsKK+acieeUqCA8IHl1dXlvdVwgOwor5pyJ55SjIDwgeXV1c2FuXCA7CivmnIjnlKMgPCBnZXNzYW5cIDsKK+S8j+WxiyA8IGZ1c2V5YVwgOwor6Zi/5aq95rivIDwgYW1ha291XCA7CivmnZHmsJEgPCBzb25taW5cIDsKK+eQg+aKgCA8IGt5dXVnaVwgOwor5p6a5oyZIDwgbWFpa3lvXCA7Civml6XpoIMgPCBoaWdvcm9cIDsKK+S4i+etliA8IGdlc2FrdVwgOwor6Z2S6a6rIDwgYW96YW1lXCA7CivlrZflvJUgPCBqaWJpa2lcIDsKK+S9juWQnyA8IHRlaWdpblwgOwor5L2V5Y2DIDwgbmFuemVuXCA7CivkvZXljYEgPCBuYW5qdXVcIDsKK+mmrOWKmyA8IGJhcmlraVwgOwor5a2Y5buDIDwgem9ucGFpXCA7Civno4HmlrnkvY0gPCBqaWhvdWlcIDsKK+S4ieetiSA8IHNhbnRvdVwgOwor5LiA57GMIDwgaXRjaHV1XCA7CivlrZDlvbkgPCBrb3lha3VcIDsKK+S8j+WtlyA8IGZ1c2VqaVwgOwor6ICQ5rC0IDwgdGFpc3VpXCA7CivkuIrnq68gPCBqb3V0YW5cIDsKK+mnhOS9nCA8IGRhc2FrdVwgOwor5Li555SwIDwgdGFuZGVuXCA7Civpp4XkvJ0gPCBla2lkZW5cIDsKK+Wtl+W5lSA8IGppbWFrdVwgOwor5LiH56uvIDwgYmFudGFuXCA7CivkuIrnqbogPCBqb3VrdXVcIDsKK+eNsOeMmyA8IG5laW1vdVwgOwor54mH6ZuyIDwgaGVuJyd1blwgOwor54us6IuxIDwgZG9rdWVpXCA7Civml6Xpm4AgPCBoaWdhcmFcIDsKK+mhjOewvSA8IGRhaXNlblwgOwor5a+G5YG1IDwgbWl0dGVpXCA7CivpoLvnuYEgPCBoaW5wYW5cIDsKK+S4gOetliA8IGlzc2FrdVwgOwor5L2V5YiGIDwgbmFucHVuXCA7Civnib3pgKMgPCBrZW5yZW5cIDsKK+Wtq+WtkCA8IG1hZ29rb1wgOwor5LiJ56iuIDwgc2Fuc2h1XCA7CivkuIrnqIsgPCBqb3V0ZWlcIDsKK+aXpemZsCA8IGhpa2FnZVwgOwor6aas5YWLIDwgbWFydWt1XCA7CivlrpjllrYgPCBrYW4nJ2VpXCA7Civnvr3nlLAgPCBoYW5lZGFcIDsKK+S4gOeskSA8IGlzc2hvdVwgOwor6Z2i6aCsIDwgbWVucG9vXCA7Civml6XpmZAgPCBoaWdpcmlcIDsKK+S4oeebriA8IHJ5b3VtZVwgOwor5pys5rqQIDwgaG9uZ2VuXCA7CivogonlsYsgPCBuaWt1eWFcIDsKK+WnpuioiCA8IGthbmtlaVwgOwor6Z2Z6aSKIDwgc2VpeW91XCA7CivosqHmlL8gPCB6YWlzZWlcIDsKK+WtpOWuoiA8IGtva2FrdVwgOwor5Luk5byfIDwgcmVpdGVpXCA7CivmoKrkvqEgPCBrYWJ1a2FcIDsKK+S4reeUnyA8IG5ha2F0ZVwgOwor54us6IeqIDwgZG9rdWppXCA7Civku6PlvIEgPCBkYWliZW5cIDsKK+WvhuS9vyA8IG1pc3NoaVwgOwor5a625YWDIDwgaWVtb3RvXCA7Civniafph44gPCBib2t1eWFcIDsKK+mdoumdoiA8IG1lbm1lblwgOwor5LqL5qWtIDwgamlneW91XCA7CivkuIHnqJogPCBkZXRjaGlcIDsKK+adpeabuCA8IHJhaXNob1wgOwor5pel6ZW3IDwgaGluYWdhXCA7CivkupTmoYEgPCBnb2tldGFcIDsKK+S8muWggiA8IGthaWRvdVwgOwor5a+G5LyaIDwgbWlra2FpXCA7Civos4rlvpIgPCB6b2t1dG9cIDsKK+eMq+enkSA8IG5la29rYVwgOwor5peF6aSoIDwgcnlva2FuXCA7Civku7vlrpggPCBuaW5rYW5cIDsKK+Wtn+WtkCA8IG1vdXNoaVwgOwor576k55uyIDwgZ3VubW91XCA7CivmmI/ov7cgPCBrb25tZWlcIDsKK+S5s+avjSA8IG55dXVib1wgOwor5LuW5b+DIDwgdGFzaGluXCA7CivkvY/lg6cgPCBqdXVzb3VcIDsKK+S4gOelqCA8IGlwcHlvdVwgOwor6Y2b5Ya25bGLIDwga2FqaXlhXCA7Civmn7vlj44gPCBzYXNodXVcIDsKK+S6jOaguCA8IG5pa2FrdVwgOwor5a6f5YuiIDwgamlzc2VpXCA7Civku67lsYsgPCBrYXJpeWFcIDsKK+S9nuS6uiA8IG5laWppblwgOwor5pyr5rOVIDwgbWFwcG91XCA7CivmnaXmlrkgPCBraWthdGFcIDsKK+mjsuaWmSA8IGlucnlvdVwgOwor5a6Y5Y2wIDwga2FuJydpblwgOwor5Lq65omLIDwgaGl0b2RlXCA7Civmm7jnirYgPCBzaG9qb3VcIDsKK+S7ruWvnSA8IGthcmluZVwgOwor5a2U5a2fIDwga291bW91XCA7Civku67lrrYgPCBrYXJpaWVcIDsKK+S7geaEmyA8IGppbicnYWlcIDsKK+Wkp+m6piA8IG9vbXVnaVwgOwor54ut576pIDwga3lvdWdpXCA7CivorJ3ph5EgPCBzaGFraW5cIDsKK+WtkOWuiCA8IGtvbW9yaVwgOwor5a6/5LiWIDwgc3VrdXNlXCA7Civlpa7pl5ggPCBmdW50b3VcIDsKK+Wul+WLmSA8IHNodXVtdVwgOwor5ama56S8IDwga29ucmVpXCA7CivmnKzmrr8gPCBob25kZW5cIDsKK+eMm+emvSA8IG1vdWtpblwgOwor5LuB5oG1IDwgamlua2VpXCA7CivkupTml6UgPCBpdHN1a2FcIDsKK+aZuuiDvSA8IGNoaW5vdVwgOwor5LiA556sIDwgaXNzaHVuXCA7CivpoqjmtJ4gPCBmdXVkb3VcIDsKK+aWrOmmliA8IHphbnNodVwgOwor5pel6YqtIDwgaGl6ZW5pXCA7CivmnKzmrIQgPCBob25yYW5cIDsKK+S7j+W4qyA8IGJ1c3NoaVwgOwor5a625LimIDwgeWFuYW1pXCA7CivosYrmsLQgPCBob3VzdWlcIDsKK+S4geebriA8IGNob3VtZVwgOwor5Luk5a2rIDwgcmVpc29uXCA7Civku4/lt6UgPCBidWtrb3VcIDsKK+WhqeWfuuW6piA8IGVua2lkb1wgOwor6IKJ5aGKIDwgbmlra2FpXCA7Civmmq7np4sgPCBib3NodXVcIDsKK+aZuuiAhSA8IGNoaXNoYVwgOwor5pa56Z2iIDwgaG91bWVuXCA7CivlrZjlpJYgPCB6b25nYWlcIDsKK+e+jueahCA8IGJpdGVraVwgOwor5Ly25YSqIDwgcmVpeXV1XCA7Civnn6Lnvr3moLkgPCB5YWJhbmVcIDsKK+S5l+awlyA8IG5vcmlraVwgOwor5LiK55WqIDwgam91YmFuXCA7CivpoqjmsLQgPCBmdXVzdWlcIDsKK+S7mOWxniA8IGZ1em9rdVwgOwor5LiJ55WqIDwgc2FuYmFuXCA7CivlrablnJIgPCBnYWt1ZW5cIDsKK+ismemBnCA8IGtlbnNvblwgOwor5LiK55SwIDwgam91ZGVuXCA7CivlpJzpt7kgPCB5b3Rha2FcIDsKK+i0iOWRiCA8IHpvdXRlaVwgOwor6KuW6aGMIDwgcm9uZGFpXCA7CivkvJrlkIggPCBrYWlnb3VcIDsKK+eQhuWtpiA8IHJpZ2FrdVwgOwor5pen6YO9IDwga3l1dXRvXCA7CivotIjlj7cgPCB6b3Vnb3VcIDsKK+S4reeBqyA8IGNodXViaVwgOwor5Lyd5Y2YIDwgZGVudGFuXCA7CivlrqPkvJ0gPCBzZW5kZW5cIDsKK+i0i+WNsCA8IG5pc2VpblwgOwor6IOM5Lu7IDwgaGFpbmluXCA7Civnv7vmoYggPCBob24nJ2FuXCA7Civnjovmp5ggPCBvdXNhbWFcIDsKK+S7u+WcsCA8IG5pbmNoaVwgOwor5LiA55aLIDwgaXBwaWtpXCA7CivogIHmnaUgPCByb3VyYWlcIDsKK+S7luWulyA8IHRhc2h1dVwgOwor6ICB5p2JIDwgcm91c2FuXCA7CivlrozlhaggPCBrYW56ZW5cIDsKK+aWremdoiA8IGRhbm1lblwgOwor5Luk5aa5IDwgcmVpbWFpXCA7CivlpJzps6UgPCB5YWNob3VcIDsKK+eMm+ecgSA8IG1vdXNlaVwgOwor5p+U5ZKMIDwgbnl1dXdhXCA7CivlrprkvosgPCB0ZWlyZWlcIDsKK+ePvuWtmCA8IGdlbnpvblwgOwor5Lmx5p2tIDwgcmFuZ3VpXCA7CivkvLTkvrYgPCBoYW5yeW9cIDsKK+WumuS9jyA8IHRlaWp1dVwgOwor5a6I5YW1IDwgc2h1aGVpXCA7Civog4zkuK0gPCBzZW5ha2FcIDsKK+eJueiosSA8IHRva2t5b1wgOwor5a2Y5ZyoIDwgc29uemFpXCA7Civog4zkuIggPCBzZXRha2VcIDsKK+eJueiokyA8IHRva2t1blwgOwor54iG6Z+zIDwgYmFrdW9uXCA7CivkuIvnjYQgPCBnZWdva3VcIDsKK+S7iuWwmiA8IGltYW5hb1wgOwor5Lq65belIDwgamlua291XCA7CivkubHmmrQgPCByYW5ib3VcIDsKK+acm+aokyA8IGJvdXJvdVwgOwor5LiJ54y/IDwgbWl6YXJ1XCA7Civoq5bpmaMgPCByb25qaW5cIDsKK+S8tuS6uiA8IHJlaWppblwgOwor6Ky56KiAIDwga2luZ2VuXCA7CivmnLHmm7ggPCBzaHVzaG9cIDsKK+mkqOWogyA8IGthbicnYWlcIDsKK+eJh+i8qiA8IGthdGF3YVwgOwor5a6J5YCkIDwgeWFzdW5lXCA7CivmnKzmnaUgPCBob25yYWlcIDsKK+aYjuiogCA8IG1laWdlblwgOwor57+w5p6XIDwga2FucmluXCA7Civku6TloIIgPCByZWlkb3VcIDsKK+S4h+eKtiA8IGJhbmpvdVwgOwor5a6X5Li7IDwgc291c2h1XCA7CivpnIrprYIgPCByZWlrb25cIDsKK+acrOacqCA8IG1vdG9raVwgOwor5pys5pybIDwgaG9ubW91XCA7Civnvbnnl4UgPCByaWJ5b3VcIDsKK+mhmOeKtiA8IGdhbmpvdVwgOwor5pyr5pyrIDwgc3VlenVlXCA7Civnmb7lkIjmoLkgPCB5dXJpbmVcIDsKK+WtkOWaoiA8IHNoaW5vdVwgOwor5LqM5omLIDwgZnV0YXRlXCA7CivkubHmlbAgPCByYW5zdXVcIDsKK+aYpeialSA8IGhhcnVnb1wgOwor5pyo5pyrIDwga29udXJlXCA7CivogozlkIggPCBoYWRhYWlcIDsKK+eOi+acnSA8IG91Y2hvdVwgOwor6Zu36bO0IDwgcmFpbWVpXCA7Civku7vlkb0gPCBuaW5tZWlcIDsKK+S7gOWunSA8IGp1dWhvdVwgOwor5Lq65bGLIDwgaGl0b3lhXCA7CivmnKbmnKcgPCBtb3Vyb3VcIDsKK+acpuacpiA8IG1vdW1vdVwgOwor5Lit5rSyIDwgbmFrYXN1XCA7Civos5vlmIYgPCBzYW50YW5cIDsKK+aXpei2syA8IGhpYXNoaVwgOwor5pac6Zm9IDwgc2hheW91XCA7CivlpKfpoqggPCBvb2themVcIDsKK+WlqumChCA8IGRha2thblwgOwor6Z+z57egIDwgbmVqaW1lXCA7CivlpKnpoZQgPCB0ZW5nYW5cIDsKK+eJqeimiyA8IG1vbm9taVwgOwor6Zi/576F5ryiIDwgYXJha2FuXCA7Civlrabli5kgPCBnYWt1bXVcIDsKK+abv+atjCA8IGthZXV0YVwgOwor5a2Y5ZG9IDwgem9ubWVpXCA7Civlpa7ov4UgPCBmdW5qaW5cIDsKK+izreWNmiA8IHRvYmFrdVwgOwor5p2J5oi4IDwgc3VnaWRvXCA7Civosqflr5IgPCBoaW5rYW5cIDsKK+acieanmCA8IGFyaXlvdVwgOwor5pys5paHIDwgaG9ubW9uXCA7CivmnaXlupcgPCByYWl0ZW5cIDsKK+acrOaVsCA8IGhvbnN1dVwgOwor5pan6ZG/IDwgZnVzYWt1XCA7CivmnaXlubQgPCByYWluZW5cIDsKK+aWh+mhjCA8IGJ1bmRhaVwgOwor546L5pePIDwgb3V6b2t1XCA7CivkupTlvrMgPCBnb3Rva3VcIDsKK+S4h+eCuSA8IG1hbnRlblwgOwor5LuK5aScIDwga29uJyd5YVwgOwor5Lit5rCXIDwgY2h1dWtpXCA7CivkvJ3ku6QgPCBkZW5yZWlcIDsKK+S7j+WhlCA8IGJ1dHRvdVwgOwor6Zyc6ZuwIDwgc291ZnVuXCA7CivpoK3nl5sgPCB6dXRzdXVcIDsKK+S4u+aoqSA8IHNodWtlblwgOwor6Zu36a2aIDwgcmFpZ3lvXCA7CivkuIfnga8gPCBtYW5kb3VcIDsKK+iyoeWunSA8IHphaWhvdVwgOwor5aSc6aKoIDwgeW9rYXplXCA7CivosqrlqaogPCBkb25yYW5cIDsKK+S8kOWAkiA8IGJhdHRvdVwgOwor6YeO6Lev5a2QIDwgbm9qaWtvXCA7Civnj77lnLAgPCBnZW5jaGlcIDsKK+eMm+eKrCA8IG1vdWtlblwgOwor5aSp6Zu3IDwgdGVucmFpXCA7CivmnJ3mmakgPCBhc2FiYW5cIDsKK+S7luWbvSA8IHRha29rdVwgOwor5Luu5ZCNIDwga2VteW91XCA7Civpoqjmma8gPCBmdXVrZWlcIDsKK+irlumLkiA8IHJvbnBvdVwgOwor5paH6Z2iIDwgYnVubWVuXCA7CivkvI7lgIYgPCBnaXJ5b3VcIDsKK+mkg+WtkCA8IGd5b3V6YVwgOwor5a2m5YWEIDwgZ2Fra2VpXCA7Civniq/nvaogPCBoYW56YWlcIDsKK+Wkp+mboyA8IHRhaW5hblwgOwor5Lit5qynIDwgY2h1dW91XCA7CivkvJ3kuJYgPCBkZW5zZWlcIDsKK+WkmumhjSA8IHRhZ2FrdVwgOwor5aSp6Zm6IDwgdGVua2VuXCA7CivkvJrkuLsgPCBrYWlzaHVcIDsKK+adseWuriA8IHRvdWd1dVwgOwor6IGW5Z+fIDwgc2VpaWtpXCA7Civku6Plk4EgPCBkYWloaW5cIDsKK+mgk+efpSA8IHRvbmNoaVwgOwor5aSV6aGUIDwgeXV1Z2FvXCA7CivkubHmiKYgPCByYW5zZW5cIDsKK+iAg+aFriA8IGtvdXJ5b1wgOwor5LuL5ZyoIDwga2FpemFpXCA7CivmlbTpoqggPCBzZWlmdXVcIDsKK+S7u+WFjSA8IG5pbm1lblwgOwor5a2Y5YiGIDwgem9uYnVuXCA7Civku6TlkI0gPCByZWltZWlcIDsKK+mjsuWxiyA8IG5vbWl5YVwgOwor5Lq65aSWIDwgbmluZ2FpXCA7CivmlqfpiZ4gPCBmdWV0c3VcIDsKK+WknOmcpyA8IHlvZ2lyaVwgOwor54yb54S2IDwgbW91emVuXCA7Civkurrlo6sgPCBqaW5zaGlcIDsKK+mdouiyjCA8IG1lbmJvdVwgOwor6LKp5aOyIDwgaGFuYmFpXCA7CivkuLvmoLkgPCBzaHVrb25cIDsKK+Wkp+mWoiA8IG9vemVraVwgOwor5pen6KmgIDwga3l1dWVpXCA7Civku4rlm54gPCBrb25rYWlcIDsKK+aXpeiqjCA8IG5pc3NoaVwgOwor5pep6KiIIDwgc291a2VpXCA7Civku6Plj4IgPCBkYWlzYW5cIDsKK+Wkp+mWgCA8IGRhaW1vblwgOwor5pys5ougIDwgaG9ua3lvXCA7CivmnInmnJsgPCB5dXVib3VcIDsKK+aVtOmgkyA8IHNlaXRvblwgOwor5pen6KiYIDwga3l1dWtpXCA7CivlpoToqIAgPCBtb3VnZW5cIDsKK+aXhei3ryA8IHRhYmlqaVwgOwor6LGq5b+rIDwgZ291a2FpXCA7Civml6noposgPCBoYXlhbWlcIDsKK+mbu+mhlSA8IGRlbmtlblwgOwor5aSW6Zu7IDwgZ2FpZGVuXCA7Civmnb/loYAgPCBpdGFiZWlcIDsKK+eJh+iogCA8IGhlbmdlblwgOwor572q54q2IDwgemFpam91XCA7CivnjqnlvIQgPCBnYW5yb3VcIDsKK+WliemBtyA8IGhvdXNlblwgOwor5pys5oeQIDwgaG9ua2FpXCA7CivkuLnmnLEgPCB0YW5zaHVcIDsKK+S4uOacqCA8IG1hcnVraVwgOwor5a2m5LqLIDwgZ2FrdWppXCA7CivmnIjml6YgPCBnZXR0YW5cIDsKK+WknOmVtyA8IHlvbmFnYVwgOwor6Z2i6KuHIDwgbWVuZGFuXCA7CivlpYnov44gPCBob3VnZWlcIDsKK+acieaVsCA8IHl1dXN1dVwgOwor5aqS5p+TIDwgYmFpc2VuXCA7CivnuYHplpEgPCBoYW5rYW5cIDsKK+S7suWApCA8IG5ha2FuZVwgOwor5LiK5rC0IDwgam91c3VpXCA7Civoqpjpm7sgPCB5dXVkZW5cIDsKK+aZtOedgCA8IGhhcmVnaVwgOwor572w54K5IDwgYmF0dGVuXCA7CivlpKfpjowgPCBvb2dhbWFcIDsKK+S6oeWmuyA8IGJvdXNhaVwgOwor6Z2S6LGGIDwgYW9tYW1lXCA7Civosqflm7AgPCBoaW5rb25cIDsKK+S7suS/nSA8IGNodXVob1wgOwor54+N5aWHIDwgY2hpbmtpXCA7CivlpKfpjYsgPCBvb25hYmVcIDsKK+acgOaXqSA8IG1vaGF5YVwgOwor5LiH5rCRIDwgYmFubWluXCA7CivkuZfmiYsgPCBub3JpdGVcIDsKK+S7j+WPgiA8IGJ1c3NhblwgOwor5LiA5rOKIDwgaXBwYWt1XCA7CivkuLvmlocgPCBzaHVidW5cIDsKK+ePvuWLoiA8IGdlbnNlaVwgOwor6ICB5bm8IDwgcm91eW91XCA7CivogIHlubQgPCByb3VuZW5cIDsKK+S4ieatuyA8IHNhbnNoaVwgOwor5LuW5YqbIDwgdGFyaWtpXCA7CivmnKzmgKcgPCBob25zZWlcIDsKK+e/u+W8hCA8IGhvbnJvdVwgOwor6LKh5ZujIDwgemFpZGFuXCA7CivoqozpnaIgPCBzaGltZW5cIDsKK+S4h+atuyA8IGJhbnNoaVwgOwor5LiH5q2zIDwgbWFuemFpXCA7CivlrZDkvpsgPCBrb2RvbW9cIDsKK+WtmOS6oSA8IHNvbmJvdVwgOwor5LqM5a2QIDwgZnV0YWdvXCA7CivlnJ/kuIvluqcgPCBkb2dlemFcIDsKK+mghueVqiA8IGp1bmJhblwgOwor6Zuy6ZuGIDwgdW5zaHV1XCA7Civpm7Lpm4AgPCBoaWJhcmlcIDsKK+ePvuWJjSA8IGdlbnplblwgOwor5LuL5Y21IDwga2FpcmFuXCA7CivlpKfpiYggPCBvb25hdGFcIDsKK+mbo+mhjCA8IG5hbmRhaVwgOwor5pys5b2xIDwgaG9uJydlaVwgOwor5Lim5pyoIDwgbmFtaWtpXCA7CivmlpzovrogPCBzaGFoZW5cIDsKK+izouS4uyA8IGtlbnNodVwgOwor5pu45paOIDwgc2hvc2FpXCA7Civnvormr5sgPCB5b3Vtb3VcIDsKK+Wkp+mHkSA8IHRhaWtpblwgOwor5LuB5ZCbIDwgamlua3VuXCA7CivkuI3mp5ggPCBidXphbWFcIDsKK+S6uuWToSA8IGppbicnaW5cIDsKK+S4reaXpSA8IG5ha2FiaVwgOwor5pyr5byfIDwgbWF0dGVpXCA7Civkurrlk4EgPCBqaW5waW5cIDsKK+S4ieaoqSA8IHNhbmtlblwgOwor5LiA5qyhIDwgaWNoaWppXCA7CivnhrHpoqggPCBuZXBwdXVcIDsKK+S4iuanmCA8IHVlemFtYVwgOwor5aSn6YWSIDwgb296YWtlXCA7Civkurrlkb0gPCBqaW5tZWlcIDsKK+e4pumZoyA8IGp1dWppblwgOwor5auB5b6hIDwgeW9tZWdvXCA7Civos57kuI4gPCBzaG91eW9cIDsKK+acrOW6lyA8IGhvbnRlblwgOwor6Zuy6ZaTIDwga3Vtb21hXCA7Civlp4vntYIgPCBzaGlqdXVcIDsKK+irluizmyA8IHJvbnNhblwgOwor5LuP5YW4IDwgYnV0dGVuXCA7CivkuInmpa0gPCBzYW5nb3VcIDsKK+S7o+S7uyA8IGRhaW5pblwgOwor576o5pybIDwgc2VuYm91XCA7CivoqabpqJMgPCBzaGlrZW5cIDsKK+S4luafhCA8IHlvZ2FyYVwgOwor6Kqe6YyyIDwgZ29yb2t1XCA7CivlpKnpgZMgPCB0ZW5kb3VcIDsKK+S6uuWPgiA8IG5pbmppblwgOwor5aSp6YGLIDwgdGVuJyd1blwgOwor5LiA5qi5IDwgaWNoaWp1XCA7Civku4rlhqwgPCBrb250b3VcIDsKK+Wkp+mBkyA8IGRhaWRvdVwgOwor5oWw5a6J6ICFIDwgaWFuc2hhXCA7Civpm6LpmpQgPCByaWtha3VcIDsKK+aatOawkSA8IGJvdW1pblwgOwor6Zui6Zm4IDwgcmlyaWt1XCA7CivogIHlrrMgPCByb3VnYWlcIDsKK+aWh+mBuCA8IGJ1bnNlblwgOwor5pyo5belIDwgbW9ra291XCA7CivkubHlsIQgPCByYW5zaGFcIDsKK+Wkqei+uiA8IHRlcHBlblwgOwor6LKs5YuZIDwgc2VraW11XCA7CivmlofpgYsgPCBidW4nJ3VuXCA7Civml4Xoo4UgPCByeW9zb3VcIDsKK+aWueiogCA8IGhvdWdlblwgOwor5LiJ5qGBIDwgbWlrZXRhXCA7CivogIHlrKIgPCByb3Vqb3VcIDsKK+iBluWDjyA8IHNlaXpvdVwgOwor5peF6KGMIDwgcnlva291XCA7Civpm6PplqIgPCBuYW5rYW5cIDsKK+aWsOiqniA8IHNoaW5nb1wgOwor5aSn6LyqIDwgdGFpcmluXCA7CivmnKzlsbEgPCBob256YW5cIDsKK+Wkqei7jSA8IHRlbmd1blwgOwor5LiJ5p6aIDwgc2FubWFpXCA7Civmnb/liY0gPCBpdGFtYWVcIDsKK+ePvuS7oyA8IGdlbmRhaVwgOwor6aC75q27IDwgaGluc2hpXCA7CivmnKzlsYsgPCBob24nJ3lhXCA7CivkuInmnb8gPCBzYW5wYW5cIDsKK+mhnuacrCA8IHJ1aWhvblwgOwor5aOw6ZaAIDwgc2VpbW9uXCA7Civnj77ku4ogPCBnZW5rb25cIDsKK+S6q+WPlyA8IGt5b3VqdVwgOwor6aKo5birIDwgZnV1c2hpXCA7CivpoZ7mm7ggPCBydWlzaG9cIDsKK+acrOWwiiA8IGhvbnpvblwgOwor5LiK5pyfIDwga2FtaWtpXCA7CivnhrHpl5ggPCBuZXR0b3VcIDsKK+ePjeWRsyA8IGNoaW5taVwgOwor5pu45oi/IDwgc2hvYm91XCA7CivkuIDmoYggPCBpY2hpYW5cIDsKK+S4ieacrCA8IHNhbmJvblwgOwor6aSK5YiGIDwgeW91YnVuXCA7CivosarlpaIgPCBnb3VzaGFcIDsKK+aUuemhjCA8IGthaWRhaVwgOwor5LiK5pu4IDwgam91c2hvXCA7CivmnKjlsZEgPCBraWt1enVcIDsKK+S7j+S8miA8IGJ1dHN1ZVwgOwor5Lqh5ZG9IDwgYm91bWVpXCA7Civmlq3oqIAgPCBkYW5nZW5cIDsKK+WklumBiiA8IGdhaXl1dVwgOwor546J5bGLIDwgdGFtYXlhXCA7Civku5XkuIogPCBzaGlhZ2VcIDsKK+mhmOacmyA8IGdhbm1vdVwgOwor54is6JmrIDwgaGFjaHV1XCA7CivnjK7mnKwgPCBrZW5wb25cIDsKK+acgOaCqiA8IHNhaWFrdVwgOwor54us5ryUIDwgZG9rdWVuXCA7CivpoZjmm7ggPCBnYW5zaG9cIDsKK+acq+WtqyA8IG1hc3NvblwgOwor5pqX5rWBIDwgYW5yeXV1XCA7CivmnKvlrZAgPCBtYXNzaGlcIDsKK+e/oOW1kCA8IHN1aXJhblwgOwor6aOf5ZmoIDwgc2hva2tpXCA7CivlpKfotrMgPCBvb2FzaGlcIDsKK+S6oeWPiyA8IGJvdXl1dVwgOwor5LuK5LuKIDwgaW1haW1hXCA7Civku4rkurogPCBrb25qaW5cIDsKK+iBluS6uiA8IHNlaWppblwgOwor542j5oCnIDwganV1c2VpXCA7Civpm7Lph48gPCB1bnJ5b3VcIDsKK+S4iuaXrCA8IGpvdWp1blwgOwor5LiA5pydIDwgaXRjaG91XCA7CivlpKLot68gPCB5dW1lamlcIDsKK+S4gOacjSA8IGlwcHVrdVwgOwor6KuH6KuWIDwgZGFucm9uXCA7CivkuKHmi7MgPCBqYW5rZW5cIDsKK+mjr+WPsCA8IGhhbmRhaVwgOwor5pel6IiqIDwgbmlra291XCA7Civnvbfmpa0gPCBoaWd5b3VcIDsKK+S6uuWBjyA8IG5pbmJlblwgOwor5aSW6LyqIDwgZ2FpcmluXCA7CivlpKnos5wgPCB0ZW5zaGlcIDsKK+S4ieaWuSA8IHNhbnBvdVwgOwor6Z2S6JeNIDwgc2VpcmFuXCA7Civpn7LniakgPCBhZW1vbm9cIDsKK+S4u+W+kyA8IHNodWp1dVwgOwor5pat6KOBIDwgZGFuc2FpXCA7CivkurrlgKsgPCBqaW5yaW5cIDsKK+iri+iokyA8IHNlaWt1blwgOwor54yl5pysIDwgd2FpaG9uXCA7Civkub7lnaQgPCBrZW5rb25cIDsKK+S5seWjsiA8IHJhbmJhaVwgOwor5aSJ6YG3IDwgaGVuc2VuXCA7CivpoYzmnZAgPCBkYWl6YWlcIDsKK+Wklui7iiA8IGdhaXNoYVwgOwor5Lih5omLIDwgcnlvdXRlXCA7CivkuIPml6UgPCBuYW5va2FcIDsKK+WkiemAoCA8IGhlbnpvdVwgOwor6aGY5paHIDwgZ2FubW9uXCA7CivlpYnooYwgPCBidWd5b3VcIDsKK+S7geS6uiA8IGppbmppblwgOwor5pys5aa7IDwgaG9uc2FpXCA7CivpoqjlrrMgPCBmdXVnYWlcIDsKK+WrieWmrCA8IHNoaXR0b1wgOwor6Kyd572qIDwgc2hhemFpXCA7CivkurrkvZMgPCBuaW50ZWlcIDsKK+aWh+ixqiA8IGJ1bmdvdVwgOwor5pa96JasIDwgc2V5YWt1XCA7CivmlpzoppYgPCBzaGFzaGlcIDsKK+aVsOi7kiA8IHN1dWtlblwgOwor572q5qWtIDwgemFpZ291XCA7Civpm7vou4ogPCBkZW5zaGFcIDsKK+mhnuaOqCA8IHJ1aXN1aVwgOwor5aSJ6LuiIDwgaGVudGVuXCA7CivkuIDmk7IgPCBpdHRla2lcIDsKK+eMm+aakSA8IG1vdXNob1wgOwor6Ku46Iq4IDwgc2hvZ2VpXCA7CivkuojlkYogPCB5b2tva3VcIDsKK+abuOW6lyA8IHNob3RlblwgOwor5pys5aGBIDwgaG9ucnVpXCA7Civnh7voo70gPCBrdW5zZWlcIDsKK+mboumDtyA8IHJpa3lvdVwgOwor57W15pel6KiYIDwgZW5pa2tpXCA7CivpnZLojYkgPCBhb2t1c2FcIDsKK+WkluiyjCA8IGdhaWJvdVwgOwor5Lit5bqnIDwgY2h1dXphXCA7CivnvbDmna8gPCBiYXBwYWlcIDsKK+mguOacqCA8IGt1YmlraVwgOwor5LmZ5aScIDwgb3RzdXlhXCA7CivpoJPmrbsgPCB0b25zaGlcIDsKK+aYpeedgCA8IGhhcnVnaVwgOwor57eo6ZqKIDwgaGVudGFpXCA7Civoqq3oqqYgPCBkb2t1anVcIDsKK+S6rOS6uiA8IGtlaWppblwgOwor54yb5pS7IDwgbW91a291XCA7CivkuozlibIgPCBuaXdhcmlcIDsKK+acqOWeiyA8IGtpZ2F0YVwgOwor5pyb5aSWIDwgYm91Z2FpXCA7Civmmq7mmKUgPCBib3NodW5cIDsKK+S4u+WwjiA8IHNodWRvdVwgOwor5aiv5qW9IDwgZ29yYWt1XCA7CivpmYDnvoXlsLwgPCBkYXJhbmlcIDsKK+aatOaUvyA8IGJvdXNlaVwgOwor6Kqk6KysIDwgZ29ieXV1XCA7CivkuoDljZwgPCBraWJva3VcIDsKK+iqreinoyA8IGRva2thaVwgOwor5Li75a6wIDwgc2h1c2FpXCA7Civnjovlm70gPCBvdWtva3VcIDsKK+WkmuiqrSA8IHRhZG9rdVwgOwor5LmX5aC0IDwgbm9yaWJhXCA7CivlpKLoposgPCB5dW1lbWlcIDsKK+S4oeW6piA8IHJ5b3Vkb1wgOwor6aC75pWwIDwgaGluc3V1XCA7CivoqqToqq0gPCBnb2Rva3VcIDsKK+aZpua4iyA8IGthaWp1dVwgOwor5LiN5oORIDwgZnV3YWt1XCA7CivmlZfou40gPCBoYWlndW5cIDsKK+adpeS8miA8IHJhaWthaVwgOwor5LiA5omLIDwgaGl0b3RlXCA7CivnvoXmlrnkvY0gPCByYWhvdWlcIDsKK+adpeS7uyA8IHJhaW5pblwgOwor5pu+5a2rIDwgaGltYWdvXCA7CivoqqToqLMgPCBnb3lha3VcIDsKK+acl+WgsSA8IHJvdWhvdVwgOwor5aSa6KeSIDwgdGFrYWt1XCA7CivkuIfmhJ8gPCBiYW5rYW5cIDsKK+WliOiQvSA8IG5hcmFrdVwgOwor5aSc6KWyIDwgeWFzaHV1XCA7CivniqDniZsgPCBnaWd5dXVcIDsKK+aYpeeUuyA8IHNodW5nYVwgOwor5p2h5Lu2IDwgam91a2VuXCA7CivmlaPosqEgPCBzYW56YWlcIDsKK+maj+mghiA8IHp1aWp1blwgOwor5p2l5LiWIDwgcmFpc2VpXCA7CivnuKbosqsgPCBqdXVrYW5cIDsKK+S4jeW+syA8IGZ1dG9rdVwgOwor57eR6ZuoIDwgcnlva3V1XCA7CivlpJboposgPCBzb3RvbWlcIDsKK+aYj+edoSA8IGtvbnN1aVwgOwor6Kmp6YG4IDwgc2hpc2VuXCA7CivpnaLnuYsgPCBvbW9nYWlcIDsKK+aWsOiKvSA8IHNoaW5tZVwgOwor5pWw6KmeIDwgc3V1c2hpXCA7CivmmI7nnLggPCBtZWlib3VcIDsKK+mgreaVsCA8IHRvdXN1dVwgOwor5pq05oyZIDwgYm91a3lvXCA7CivpmpTpm6IgPCBrYWt1cmlcIDsKK+acrOWRvSA8IGhvbm1laVwgOwor6aGe5b2iIDwgcnVpa2VpXCA7CivkuK3lrZAgPCBuYWthZ29cIDsKK+abs+WtkCA8IGhpa2lrb1wgOwor5aSp6JqVIDwgdGVuc2FuXCA7CivlpbPntaYgPCBqb2t5dXVcIDsKK+mbu+inoyA8IGRlbmthaVwgOwor5pyI5aCxIDwgZ2VwcG91XCA7CivmnIDlpKcgPCBzYWlkYWlcIDsKK+eHu+iSuCA8IGt1bmpvdVwgOwor5LqR5LqRIDwgdW4nJ251blwgOwor6ZqZ6ZaTIDwgc3VraW1hXCA7CivmnIDlpJYgPCBzYWlnYWlcIDsKK+aUuemAoCA8IGthaXpvdVwgOwor5aSn6JmOIDwgb29kb3JhXCA7CivpmbXpp5UgPCByeW91Z2FcIDsKK+WjsuiytyA8IGJhaWJhaVwgOwor5Li45aSqIDwgbWFydXRhXCA7CivmnZHkvJogPCBzb25rYWlcIDsKK+e+juW+syA8IGJpdG9rdVwgOwor5pyq5Y+OIDwgbWlzaHV1XCA7CivkuIDlv5wgPCBpY2hpb3VcIDsKK+acjeWcsCA8IGZ1a3VqaVwgOwor6Kyd56S8IDwgc2hhcmVpXCA7CivmnKjlj6IgPCBrb211cmFcIDsKK+S4gOW+syA8IGl0dG9rdVwgOwor5LqM5Lq6IDwgZnV0YXJpXCA7CivogIHlhbUgPCByb3VoZWlcIDsKK+eNhOWxiyA8IGdva3V5YVwgOwor54WO6aSFIDwgc2VuYmVpXCA7CivkuIrluK8gPCB1d2FvYmlcIDsKK+mbkei4jyA8IHphdHRvdVwgOwor5paH6Je7IDwgYnVuc291XCA7CivnhrHos5sgPCBuZXNzYW5cIDsKK+aVmeittyA8IGt5b3Vnb1wgOwor5Lmz5YWQIDwgbnl1dWppXCA7CivnvqTlsYUgPCBndW5reW9cIDsKK+e6j+e2vyA8IHRlbm1lblwgOwor55Ww5L2T5a2XIDwgaXRhaWppXCA7CivnjJvmgqogPCBtb3Vha3VcIDsKK+Wkp+iUtSA8IG9va3VyYVwgOwor5LiH5be7IDwgbWFuZ2FuXCA7Civml6XnqIsgPCBuaXR0ZWlcIDsKK+S4geW6piA8IGNob3Vkb1wgOwor5aSp6JOLIDwgdGVuZ2FpXCA7CivmlZnoq60gPCBreW91eXVcIDsKK+S4gOW6pyA8IGljaGl6YVwgOwor5LmX5ZCIIDwgbm9yaWFpXCA7Civpn7PmqJkgPCBvbnB5b3VcIDsKK+S5l+WPtyA8IGpvdWdvdVwgOwor5pq05oKqIDwgYm91YWt1XCA7CivpoqjlkJEgPCBmdXVrb3VcIDsKK+acrOWIhiA8IGhvbmJ1blwgOwor5pWR6K23IDwga3l1dWdvXCA7CivnuKbopqcgPCBqdXVyYW5cIDsKK+acjeWWqiA8IGZ1a3Vtb1wgOwor5pyo5YmjIDwgYm9ra2VuXCA7CivlpKfokZcgPCB0YWljaG9cIDsKK+aTrOmdqSA8IGdpa2FrdVwgOwor6KuW6ICFIDwgcm9uc2hhXCA7Civoq5bogIMgPCByb25rb3VcIDsKK+mfs+alvSA8IG9uZ2FrdVwgOwor5pyX5ZCfIDwgcm91Z2luXCA7Civpm6roposgPCB5dWtpbWlcIDsKK+S5seWAqyA8IHJhbnJpblwgOwor6Zuy6KGoIDwgdW5weW91XCA7CivniZvnmq4gPCBneXV1aGlcIDsKK+S4iuWxpCA8IGpvdXNvdVwgOwor6Zuj6KiTIDwgbmFua3VuXCA7CivogIHkvZMgPCByb3V0YWlcIDsKK+mZuOmboiA8IHJpa3VyaVwgOwor5pat572qIDwgZGFuemFpXCA7CivoqJPpm7sgPCBrdW5kZW5cIDsKK+eJoueVqiA8IHJvdWJhblwgOwor5pmC5rWBIDwgamlyeXV1XCA7CivmlqznvaogPCB6YW56YWlcIDsKK+aXheexoCA8IGhhdGFnb1wgOwor5pm05pyXIDwgc2Vpcm91XCA7CivkuInlsIEgPCBzYW5wdXVcIDsKK+eGseiqoCA8IG5lc3NlaVwgOwor5LiJ5a+4IDwgc2FuenVuXCA7CivogIHkurogPCByb3VqaW5cIDsKK+aZtOabhyA8IHNlaWRvblwgOwor6aKo5YmNIDwgZnV1emVuXCA7CivpmaPpoqggPCBqaW5wdXVcIDsKK+mbhuiyqCA8IHNodXVrYVwgOwor6Zqn6YGTIDwgc3VpZG91XCA7CivmnIDlloQgPCBzYWl6ZW5cIDsKK+e9quaCqiA8IHphaWFrdVwgOwor5pqW5oi/IDwgZGFuYm91XCA7CivmlazomZQgPCBrZWlrZW5cIDsKK+mao+mCpiA8IHJpbnBvdVwgOwor5Lmx5LqkIDwgcmFua291XCA7CivogIHkuK0gPCByb3VqdXVcIDsKK+Wls+elniA8IG1lZ2FtaVwgOwor6Z2S562LIDwgYW9zdWppXCA7Civoq7jnqK4gPCBzaG9zaHVcIDsKK+aci+WPiyA8IGhvdXl1dVwgOwor5paH6Iq4IDwgYnVuZ2VpXCA7CivpmbDpmb0gPCBvbicneW91XCA7CivkuIHlr6cgPCB0ZWluZWlcIDsKK+S4gOWvviA8IGl0dHN1aVwgOwor576p5aG+IDwgZ2lqdWt1XCA7CivlpKfoiLkgPCBvb2J1bmVcIDsKK+mdkueruSA8IGFvZGFrZVwgOwor6Z2p56ClIDwga2F3YXRvXCA7Civpm5HoqowgPCB6YXNzaGlcIDsKK+eJh+ecvCA8IGthdGFtZVwgOwor5pat57eaIDwgZGFuc2VuXCA7CivkubHkuJYgPCByYW5zZWlcIDsKK+eGn+itsCA8IGp1a3VnaVwgOwor6Zqg6YC4IDwgaW5pdHN1XCA7CivlpKfoh6MgPCBkYWlqaW5cIDsKK+e+juWtpiA8IGJpZ2FrdVwgOwor5pS/6KuWIDwgc2Vpcm9uXCA7CivmnI3li5kgPCBmdWt1bXVcIDsKK+mdkuepuiA8IGFvem9yYVwgOwor5pyJ5Y2KIDwgeXV1aGFuXCA7Civpm5HoqIAgPCB6b3Vnb25cIDsKK+WQjOaEj+iqniA8IGRvdWlnb1wgOwor5LiL5aeTIDwgZ2VzaG91XCA7CivlppnnjosgPCBteW91b3VcIDsKK+aXheeoiyA8IHJ5b3RlaVwgOwor5aWJ57SNIDwgaG91bm91XCA7Civnhp/oqp4gPCBqdWt1Z29cIDsKK+eLmeaSgyA8IHNvZ2VraVwgOwor54y25aSqIDwgeXVkYXlhXCA7CivlpJzoiLkgPCB5b2Z1bmVcIDsKK+Wkp+iDhiA8IGRhaXRhblwgOwor5LiK5aSpIDwgam91dGVuXCA7Civml6nnlKMgPCBzb3V6YW5cIDsKK+Wkp+iCoSA8IG9vbWF0YVwgOwor5pyA5Y2XIDwgc2FpbmFuXCA7CivlpKnogZ4gPCB0ZW5idW5cIDsKK+iotOi/vSA8IHNvdHN1aVwgOwor6Kmg6KqmIDwgZWlzaG91XCA7Civmmabml6UgPCBtaXNva2FcIDsKK+iomOmMsiA8IGtpcm9rdVwgOwor5pu45ZCNIDwgc2hvbWVpXCA7CivkuIflpKkgPCBiYW50ZW5cIDsKK+S4reWSjCA8IGNodXV3YVwgOwor5pS56KiCIDwga2FpdGVpXCA7Civml6XnlKMgPCBuaXNzYW5cIDsKK+mdouebuCA8IG1lbnNvdVwgOwor6KmV6K2wIDwgaHlvdWdpXCA7CivlpKfogIEgPCB0YWlyb3VcIDsKK+miqOS9kyA8IGZ1dXRlaVwgOwor54md54mbIDwgbWV1c2hpXCA7CivlopfphY0gPCB6b3VoYWlcIDsKK+S4gOWlsyA8IGljaGlqb1wgOwor5LiK5aC0IDwgam91am91XCA7CivlpKfnvqQgPCB0YWlndW5cIDsKK+mZoumVtyA8IGluY2hvdVwgOwor5Lit5Y+lIDwgY2h1dWt1XCA7CivkuInloYEgPCBzYW5ydWlcIDsKK+mau+iqniA8IHNla2lnb1wgOwor5puH5aSpIDwgZG9udGVuXCA7CivmnIjlhYkgPCBnZWtrb3VcIDsKK+mciuiDvSA8IHJlaW5vdVwgOwor5ae75pePIDwgaW56b2t1XCA7CivkuLnliY0gPCB0YW56ZW5cIDsKK+S4uOWJpCA8IGdhbnphaVwgOwor5LiA5aSiIDwgaWNoaW11XCA7CivmnIDliJ0gPCBzYWlzaG9cIDsKK+S4gOWknCA8IGhpdG95b1wgOwor5LiH5aC0IDwgbWFuam91XCA7Civoq7jnm7ggPCBzaG9zb3VcIDsKK+Wlh+etliA8IGtpc2FrdVwgOwor5ama5ae7IDwga29uJydpblwgOwor5LiO5ZynIDwgeW9hdHN1XCA7CivnhpTop6MgPCB5b3VrYWlcIDsKK+WkmuiCiSA8IHRhbmlrdVwgOwor5pqX5bmVIDwgYW5tYWt1XCA7CivpmobpgYsgPCByeXV1dW5cIDsKK+mfi+mnhOWkqSA8IGlkYXRlblwgOwor6KqY6Ie0IDwgeXV1Y2hpXCA7CivmmpbluK8gPCBkYW50YWlcIDsKK+S4i+WbvSA8IGdla29rdVwgOwor5pqr5a6aIDwgemFudGVpXCA7Civmlq3nqK4gPCBkYW5zaHVcIDsKK+eLrOW+gCA8IGRva3VvdVwgOwor5LiJ5ZuyIDwgbWl0c3VpXCA7CivlpJbogZ4gPCBnYWlidW5cIDsKK+eJuea0viA8IHRva3VoYVwgOwor5Li75YKYIDwgc2h1c2FuXCA7CivngrrmlL/lrrYgPCBpc2Vpa2FcIDsKK+Wkqee2siA8IHRlbm1vdVwgOwor6Zm26YWUIDwgdG91c3VpXCA7Civmm7jlhpkgPCBzaG9zaGFcIDsKK+S6jOW6puebriA8IG5pZG9tZVwgOwor542E5ZCPIDwgZ29rdXJpXCA7Civni6zluqcgPCBkb2t1emFcIDsKK+S4gOWbvSA8IGlra29rdVwgOwor6aCY5biDIDwgcnlvdWZ1XCA7CivniYfniYcgPCBoZW5wZW5cIDsKK+S4gOWboCA8IGljaGlpblwgOwor6Zyn56ybIDwgbXV0ZWtpXCA7CivpmbjpgYsgPCByaWt1dW5cIDsKK+eEoemXhyA8IG11eWFtaVwgOwor6ZuE6JyCIDwgb2JhY2hpXCA7Civntbnpm7IgPCBrZW4nJ3VuXCA7Civnha7osYYgPCBuaW1hbWVcIDsKK+eGlOiejSA8IHlvdXl1dVwgOwor5Li75L2TIDwgc2h1dGFpXCA7CivoqJPpgKMgPCBrdW5yZW5cIDsKK+S4h+WWhCA8IG1hbnplblwgOwor5paH57O7IDwgYnVua2VpXCA7Civmlr3nmYIgPCBzZXJ5b3VcIDsKK+S4u+S7uyA8IHNodW5pblwgOwor5pWs6ICBIDwga2Vpcm91XCA7CivpoIblvZMgPCBqdW50b3VcIDsKK+mZvei7oiA8IHlvdXRlblwgOwor5pel54S8IDwgaGl5YWtlXCA7CivkuIrlk4EgPCBqb3Vib25cIDsKK+S4u+S6uiA8IHNodWppblwgOwor6ZuE6JiCIDwgeXV1enVpXCA7Civpm6PoiLkgPCBuYW5zZW5cIDsKK+mahui1tyA8IHJ5dXVraVwgOwor5ae75oiaIDwgaW5zZWtpXCA7CivpoZ7lkIwgPCBydWlkb3VcIDsKK+iqpue1jCA8IHp1a3lvdVwgOwor5pep54CsIDwgaGF5YXNlXCA7Civmm7jkvZMgPCBzaG90YWlcIDsKK+e3kuirliA8IGNob3JvblwgOwor5Li75LiKIDwgc2h1am91XCA7CivmnIDkuK0gPCBtb25ha2FcIDsKK+mbkeiPjCA8IHpha2tpblwgOwor5paH56+EIDwgYnVucGFuXCA7CivmlrDnm4YgPCBuaWlib25cIDsKK+Wil+izhyA8IHpvdXNoaVwgOwor5pyA5LiKIDwgbW9nYW1pXCA7CivlpKfnrYsgPCBvb3N1amlcIDsKK+WqkuS9kyA8IGJhaXRhaVwgOwor54iG56C0IDwgYmFrdWhhXCA7Civni6zlsYUgPCBkb2treW9cIDsKK+eJueaoqSA8IHRva2tlblwgOwor6Kiz6KqeIDwgeWFrdWdvXCA7CivkuK3kvZAgPCBjaHV1c2FcIDsKK+S4h+WPoyA8IGJhbmtvdVwgOwor6ZuR6I2JIDwgemFzc291XCA7CivkuIrljYogPCBqb3VoYW5cIDsKK+mZuOi3ryA8IHJpa3Vyb1wgOwor5aqS5LuLIDwgYmFpa2FpXCA7CivlpKnnqbogPCB0ZW5rdXVcIDsKK+e3kuiogCA8IGNob2dlblwgOwor6ZyA57WmIDwganVreXV1XCA7CivkuI7lipsgPCB5b3Jpa2lcIDsKK+Wkp+epuiA8IG9vem9yYVwgOwor5aSW57GzIDwgZ2FpbWFpXCA7CivlpKnnqJ8gPCB0ZW5waW5cIDsKK+S4reS6jCA8IGNodXVuaVwgOwor5aWH55mWIDwga2loZWtpXCA7CivmlY/ohZUgPCBiaW53YW5cIDsKK+WkqeenpCA8IHRlbmJpblwgOwor57Si6bq6IDwgc291bWVuXCA7CivnvqTlg48gPCBndW56b3VcIDsKK+WlrueEtiA8IGZ1bnplblwgOwor5LiH5YqrIDwgbWFuZ291XCA7CivkuIrliY0gPCB1d2FtYWVcIDsKK+mbjOiKsSA8IG1lYmFuYVwgOwor5aWH55eFIDwga2lieW91XCA7CivpnZLniakgPCBhb21vbm9cIDsKK+WkqeelniA8IHRlbmppblwgOwor54S26L+EIDwgc2FtYWRlXCA7CivpoYzlkI0gPCBkYWltZWlcIDsKK+mhjOWPtyA8IGRhaWdvdVwgOwor5aSn56WtIDwgdGFpc2FpXCA7CivkuInliIYgPCBzYW5wdW5cIDsKK+e+qeS+oCA8IGdpa3lvdVwgOwor57eP6KOPIDwgc291dXJhXCA7CivnianmqKkgPCBidWtrZW5cIDsKK+WknOepuiA8IHlvem9yYVwgOwor57eP6KOBIDwgc291c2FpXCA7CivnhKHph48gPCBtdXJ5b3VcIDsKK+mbgOiNmCA8IGphbnNvdVwgOwor57eK6KSMIDwga2lua29uXCA7CivkuJbkv5cgPCBzZXpva3VcIDsKK+eJm+atqSA8IGd5dXVob1wgOwor5pen5rS+IDwga3l1dWhhXCA7CivnvoXljJcgPCByYWhva3VcIDsKK+e0sOmtmiA8IHNheW9yaVwgOwor5LiL5YOVIDwgZ2Vib2t1XCA7CivlpKfnoLIgPCB0YWlob3VcIDsKK+aVsOetiSA8IHN1dXRvdVwgOwor5aWz5rudIDwgbWVkYWtpXCA7CivorabmiYsgPCBrZWlzaHVcIDsKK+maj+ihjCA8IHp1aWtvdVwgOwor5aaC5rOVIDwgbnlvaG91XCA7CivkuIDlhoYgPCBpY2hpZW5cIDsKK+S4gOWFtyA8IGljaGlndVwgOwor5pWw5a+E5bGLIDwgc3VraXlhXCA7Civnt6jokZcgPCBoZW5jaG9cIDsKK+eIm+eImyA8IHJhbnJhblwgOwor5pqW5ZywIDwgZGFuY2hpXCA7CivntrjoqIAgPCByaW5nZW5cIDsKK+aUvuiDhiA8IGhvdXRhblwgOwor6KiT6KutIDwga3VuJyd5dVwgOwor6Kqt56C0IDwgZG9rdWhhXCA7CivkuInlgI0gPCBzYW5iYWlcIDsKK+eMm+WLhyA8IG1vdXl1dVwgOwor6aGe5L6LIDwgcnVpcmVpXCA7CivoqJPoqqEgPCBrdW5rYWlcIDsKK+isueabuCA8IGtpbnNob1wgOwor5piO5pyXIDwgbWVpcm91XCA7CivlpKnnm4MgPCB0ZW5wYWlcIDsKK+aatOWLlSA8IGJvdWRvdVwgOwor5aCk6ZiyIDwgdGVpYm91XCA7CivoqI7oq5YgPCB0b3Vyb25cIDsKK+aXpeavjiA8IGhpZ290b1wgOwor5LiN5LuyIDwgZnVuYWthXCA7CivlpKfnmr8gPCBvb3phcmFcIDsKK+S4ieS9kyA8IHNhbnRhaVwgOwor5ZCM5oSP576pIDwgZG91aWdpXCA7Civmlofnm7IgPCBtb25tb3VcIDsKK+eGsee3miA8IG5lc3NlblwgOwor54af6ICDIDwganVra291XCA7CivnjJ/lhbcgPCByeW91Z3VcIDsKK+Wik+ihqCA8IGJvaHlvdVwgOwor5pi15oeHIDwgamlra29uXCA7CivlpbPmtYEgPCBqb3J5dXVcIDsKK+mciuefpSA8IHJlaWNoaVwgOwor5LiK5LujIDwgam91ZGFpXCA7CivlpYfnibkgPCBraWRva3VcIDsKK+e+juS/lyA8IGJpem9rdVwgOwor5piT5patIDwgZWtpZGFuXCA7CivkuI3kuZkgPCBmdWl0c3VcIDsKK+e9quWQjSA8IHphaW1laVwgOwor5piP5piPIDwga29ua29uXCA7Civpm5HnuoIgPCB6YXNzYW5cIDsKK+WmmeahiCA8IG15b3VhblwgOwor5aWz5rOiIDwgbWVuYW1pXCA7Civpm6LnsY0gPCByaXNla2lcIDsKK+aYjuaWrSA8IG1laWRhblwgOwor5pWs56S8IDwga2VpcmVpXCA7Civpm7fnpZ4gPCByYWlqaW5cIDsKK+iqv+eQhiA8IGNob3VyaVwgOwor5pat54S2IDwgZGFuemVuXCA7CivmmI7mlY8gPCBtZWliaW5cIDsKK+eJiOaoqSA8IGhhbmtlblwgOwor54OI6aKoIDwgcmVwcHV1XCA7CivkuIfkuIcgPCBtYW5tYW5cIDsKK+iogOirliA8IGdlbnJvblwgOwor6Zm46KGMIDwgcmlra291XCA7CivlpKfnlJ8gPCBkYWlzZWlcIDsKK+mbgOe+hSA8IGpha3VyYVwgOwor5LiB5LqlIDwgdGVpZ2FpXCA7CivorbDluK0gPCBnaXNla2lcIDsKK+e+juS6iyA8IG1pZ290b1wgOwor5aeR5oGvIDwga29zb2t1XCA7CivnuYHnm5sgPCBoYW5qb3VcIDsKK+S4gOS6uiA8IGhpdG9yaVwgOwor5pS+57imIDwgaG91anV1XCA7Civoq5bngrkgPCByb250ZW5cIDsKK+ipqee3qCA8IHNoaWhlblwgOwor5pel5qeYIDwgaGlzYW1hXCA7CivpmaroprMgPCBiYWlrYW5cIDsKK+S4gOS6jCA8IGljaGluaVwgOwor57Sg6aaWIDwgc29rdWJpXCA7CivniJvmvKsgPCByYW5tYW5cIDsKK+eJueaOqiA8IHRva3Vzb1wgOwor6Kmm57e0IDwgc2hpcmVuXCA7CivoqIDoqLMgPCBpaXdha2VcIDsKK+WfuemkiiA8IGJhaXlvdVwgOwor6KiA6KiAIDwgZ2VuZ2VuXCA7Civnt4/oj5wgPCBzb3V6YWlcIDsKK+WkmueXhSA8IHRhYnlvdVwgOwor5pKk6YCAIDwgdGV0dGFpXCA7CivmlLnnt6ggPCBrYWloZW5cIDsKK+eEoeizgyA8IG11Y2hpblwgOwor6ZuE57eoIDwgeXV1aGVuXCA7CivnuIHntYQgPCBlbmd1bWlcIDsKK+eJueaKgCA8IHRva3VnaVwgOwor5pWZ56WWIDwga3lvdXNvXCA7CivnianmkI0gPCBidXNzb25cIDsKK+imgemghSA8IHlvdWtvdVwgOwor572w5L+4IDwgYmFwcG91XCA7Civlp4nlvJ8gPCBzaGltYWlcIDsKK+mbouekgSA8IHJpc2hvdVwgOwor6Z+z5Z+fIDwgb24nJ2lraVwgOwor5aCx6YGTIDwgaG91ZG91XCA7Civml63mmokgPCBreW9ra2lcIDsKK+e1tuizmyA8IHplc3NhblwgOwor5aaC5p2lIDwgbnlvcmFpXCA7CivlpKfniakgPCBvb21vbm9cIDsKK+mcsua7tCA8IHJvdGVraVwgOwor57aa6KGMIDwgem9ra291XCA7CivniYjmnKwgPCBoYW5wb25cIDsKK+aaluWGrCA8IGRhbnRvdVwgOwor6Zu755WqIDwgZGVuYmFuXCA7CivlpKfooojoo58gPCBvb2dlc2FcIDsKK+aXqeaZqSA8IHNvdWJhblwgOwor6ZyK542jIDwgcmVpanV1XCA7Civnt6jnuoIgPCBoZW5zYW5cIDsKK+aWsOa0viA8IHNoaW5wYVwgOwor6ZuR56iuIDwgemFzc2h1XCA7Civpm6rnm64gPCB5dWtpbWVcIDsKK+aXp+aZgiA8IGt5dXVqaVwgOwor6KqV55SfIDwgdGFuam91XCA7CivmmLzlr50gPCBoaXJ1bmVcIDsKK+S6i+WLmeWxiyA8IGppbXV5YVwgOwor5rWu5LiW57W1IDwgdWtpeW9lXCA7CivnibnmgbUgPCB0b2trZWlcIDsKK+eFmeiNiSA8IHRhYmFrb1wgOwor55C155C25rmWIDwgYml3YWtvXCA7CivorITmnKwgPCB0b3Vob25cIDsKK+aUueerhCA8IGthaXphblwgOwor54m55b+rIDwgdG9ra2FpXCA7Civkuovli5nlrrYgPCBqaW11a2FcIDsKK+aXpeaVsCA8IGhpa2F6dVwgOwor5pat5rC0IDwgZGFuc3VpXCA7CivlppnmioAgPCBteW91Z2lcIDsKK+Wmu+W4ryA8IHNhaXRhaVwgOwor5aiB5ZadIDwgaWthdHN1XCA7CivnhY7ojLYgPCBzZW5jaGFcIDsKK+mbt+eNoyA8IHJhaWp1dVwgOwor6Z2S5qGQIDwgYW9naXJpXCA7CivlpKfmva4gPCBvb3NoaW9cIDsKK+mZtuiKuCA8IHRvdWdlaVwgOwor5peX5pelIDwgaGF0YWJpXCA7CivpnZLmn7MgPCBhb3lhZ2lcIDsKK+ioree9riA8IHNldGNoaVwgOwor54mp5oCnIDwgYnVzc2VpXCA7CivmmpfkuK0gPCBhbmNodXVcIDsKK+aYvOWknCA8IGNodXV5YVwgOwor6KiA6JGJIDwga290b2JhXCA7CivntKHpjJggPCBib3VzdWlcIDsKK+WklueBryA8IGdhaXRvdVwgOwor5Z+86YqAIDwgc2FpZ2luXCA7CivkuI3lj6/pgb8gPCBmdWthaGlcIDsKK+mWk+m0qCA8IGFpZ2Ftb1wgOwor6Zyn5rC3IDwgbXVoeW91XCA7CivmmKXlraMgPCBzaHVua2lcIDsKK+Wil+e9riA8IHpvdWNoaVwgOwor57a+576FIDwgcnlvdXJhXCA7Civni4Llj6UgPCBreW91a3VcIDsKK+mZs+iFkCA8IGNoaW5wdVwgOwor5aCx6KydIDwgaG91c2hhXCA7CivnhanntK8gPCBoYW5ydWlcIDsKK+eJh+aJiyA8IGthdGF0ZVwgOwor54mH5oi4IDwga2F0YWRvXCA7CivmlpHmsJcgPCBtdXJha2lcIDsKK+aVpueFjCA8IHRvbmtvdVwgOwor5aSn5rOiIDwgb29uYW1pXCA7Civmlq3moYggPCBkYW4nJ2FuXCA7CivlpKnmsLQgPCB0ZW5zdWlcIDsKK+Wklua5ryA8IHNvdG95dVwgOwor5pmm5YalIDwga2FpbWVpXCA7CivmlZnniLYgPCBreW91ZnVcIDsKK+e0lOmKgCA8IGp1bmdpblwgOwor5aSn5rC0IDwgb29taXp1XCA7CivlpJbmuK8gPCBnYWlrb3VcIDsKK+iqrOazlSA8IHNlcHBvdVwgOwor6KaL6L68IDwgbWlrb21pXCA7CivoqKrnsbMgPCBob3ViZWlcIDsKK+e0sOi6qyA8IGhvc29taVwgOwor5paH5rCRIDwgYnVubWluXCA7Civngq3pibEgPCB0YW5rb3VcIDsKK+aXp+aBqSA8IGt5dXVvblwgOwor57SU6YeRIDwganVua2luXCA7Civkuovli5nlmaggPCBqaW11a2lcIDsKK+WknOaziiA8IHlhaGFrdVwgOwor5pa55pa5IDwgaG91Ym91XCA7Civntr/ns7ggPCBtZW5zaGlcIDsKK+aXqOW/tSA8IHNoaW5lblwgOwor5pON6Ii5IDwgc291c2VuXCA7Civntr7ns7ggPCBheWFpdG9cIDsKK+mbu+a6kCA8IGRlbmdlblwgOwor5aaE5b+1IDwgbW91bmVuXCA7Civopb/pgYogPCBzZWl5dXVcIDsKK+WlruaIpiA8IGZ1bnNlblwgOwor54Kt6YW4IDwgdGFuc2FuXCA7CivntI3ph5EgPCBub3VraW5cIDsKK+e0jemHhyA8IG5vdXNhaVwgOwor6Kaz6KanIDwga2FucmFuXCA7Civoq7jmiYsgPCBtb3JvdGVcIDsKK+mfs+S/oSA8IG9uc2hpblwgOwor57K+6a2CIDwgc2Vpa29uXCA7CivlpJzmr44gPCB5b2dvdG9cIDsKK+aVo+a8qyA8IHNhbm1hblwgOwor57ep55uuIDwgeXVydW1lXCA7CivniYflvbEgPCBoZW4nJ2VpXCA7CivlpoTlvIEgPCBib3ViZW5cIDsKK+mciuauvyA8IHJlaWRlblwgOwor5pei5b6XIDwga2l0b2t1XCA7Civoq5bml6ggPCByb25zaGlcIDsKK+eyvumrhCA8IHNlaXp1aVwgOwor5b6h5rSS6JC9IDwgb3NoYXJlXCA7Civkuovli5nlk6EgPCBqaW11aW5cIDsKK+WftOi8qiA8IGhhbml3YVwgOwor6KuW5patIDwgcm9uZGFuXCA7Civoq5bmlocgPCByb25idW5cIDsKK+eFmeeuoSA8IGtpc2VydVwgOwor6Kq/5p+7IDwgY2hvdXNhXCA7CivmpI3mnKjlsYsgPCB1ZWtpeWFcIDsKK+eEoeiHrSA8IG11c2h1dVwgOwor6Z2x5bivIDwgamludGFpXCA7CivmmI7lpKcgPCBtZWlkYWlcIDsKK+mWiemkqCA8IGhlaWthblwgOwor6Ku45oKqIDwgc2hvYWt1XCA7Civlo4HnlLsgPCBoZWtpZ2FcIDsKK+e0oOi2syA8IHN1YXNoaVwgOwor5pW15q2pIDwgdGVraWZ1XCA7Civpm4TniqwgPCBvc3VpbnVcIDsKK+Wil+eojiA8IHpvdXplaVwgOwor5aK+55SwIDwga29uZGVuXCA7CivmlLnniYggPCBrYWloYW5cIDsKK+eItuW+oSA8IHRldGVnb1wgOwor5LiN5Y+v6KqkIDwgZnVrYWdvXCA7CivplqLploAgPCBrYW5tb25cIDsKK+Wkp+aguSA8IGRhaWtvblwgOwor6ZuR54KKIDwgem91c3VpXCA7CivlpJzmpa0gPCB5YWd5b3VcIDsKK+e0sOirliA8IHNhaXJvblwgOwor54mn5aSrIDwgYm9rdWZ1XCA7CivmlofmoYggPCBidW4nJ2FuXCA7Civml4Xmg4UgPCByeW9qb3VcIDsKK+WkieatuyA8IGhlbnNoaVwgOwor5aSW5qeYIDwgdG96YW1hXCA7CivlpKfmn4QgPCBvb2dhcmFcIDsKK+W+oemHiOi/piA8IG9zaGFrYVwgOwor6Ku45b2mIDwgc2hvZ2VuXCA7CivplpPpmpsgPCBtYWdpd2FcIDsKK+eEoeiBiiA8IGJ1cnlvdVwgOwor6ZW36aeGIDwgY2hvdWt1XCA7Civpm7Lmr40gPCBraXJhcmFcIDsKK+aXqeWvnSA8IGhheWFuZVwgOwor6KW/6LKiIDwgc2FpZ29uXCA7CivmlZnmtL4gPCBreW91aGFcIDsKK+aTjee4piA8IHNvdWp1dVwgOwor5aSn5pysIDwgdGFpaG9uXCA7CivlpKfmnJsgPCB0YWltb3VcIDsKK+irluaLoCA8IHJvbmt5b1wgOwor5pel5bCEIDwgbmlzc2hhXCA7CivlpYnmi50gPCBob3VoYWlcIDsKK+eJp+WgtCA8IG1ha2liYVwgOwor6KiI566XIDwga2Vpc2FuXCA7CivpmaTnsY0gPCBqb3Nla2lcIDsKK+ezuOmBiiA8IGl0b3l1dVwgOwor6Zuj5rK7IDwgbmFuY2hpXCA7Civloqjnl5UgPCBib2trb25cIDsKK+WNsOWtl+apnyA8IGluamlraVwgOwor6KuW5oimIDwgcm9uc2VuXCA7CivlpKnmmI4gPCB0ZW5tZWlcIDsKK+Wik+efsyA8IGJvc2VraVwgOwor5aKo55S7IDwgYm9rdWdhXCA7Civpm6PmsJEgPCBuYW5taW5cIDsKK+e0oOiqrSA8IHNvZG9rdVwgOwor6KaB6KumIDwgeW91dGVpXCA7CivlpKnmlocgPCB0ZW5tb25cIDsKK+Wkp+aWuSA8IG9va2F0YVwgOwor56Gr6buE5rOJIDwgaW91c2VuXCA7CivplovploAgPCBrYWltb25cIDsKK+e3tOeCrSA8IHJlbnRhblwgOwor6ZaJ6ZaAIDwgaGVpbW9uXCA7Civlopfnm4ogPCB6b3Vla2lcIDsKK+WkluadpSA8IGdhaXJhaVwgOwor6ZeH6LevIDwgeWFtaWppXCA7CivlpJbmnZAgPCBnYWl6YWlcIDsKK+mWgOmZoiA8IG1vbicnaW5cIDsKK+e0jeixhiA8IG5hdHRvdVwgOwor6ZaA6ZmQIDwgbW9uZ2VuXCA7CivmlrnlvaIgPCBob3VrZWlcIDsKK+aWh+aUvyA8IGJ1bnNlaVwgOwor5aWz5a6YIDwgbnlva2FuXCA7CivnhKHntaYgPCBtdWt5dXVcIDsKK+aXqeWkpyA8IHNvdWRhaVwgOwor6KaB6KanIDwgeW91cmFuXCA7Civpm5vmrrUgPCBzdXVkYW5cIDsKK+mdouWtkCA8IG1lbnRzdVwgOwor5pWw5p6aIDwgc3V1bWFpXCA7Civpm6jmqIsgPCBhbWFkb2lcIDsKK+mbhOa4viA8IHl1dWtvblwgOwor6KSH6Z+zIDwgZnVrdW9uXCA7CivmmI7lkJsgPCBtZWlrdW5cIDsKK+mZuuebuCA8IGtlbnNvdVwgOwor54m55YuZIDwgdG9rdW11XCA7Civnianlk4EgPCBidXBwaW5cIDsKK+Wil+eUoyA8IHpvdXNhblwgOwor5pCN6YeRIDwgc29ua2luXCA7CivplbfplpEgPCBub2Rva2FcIDsKK+iqnuaXjyA8IGdvem9rdVwgOwor5YGJ5LiI5aSrIDwgaWpvdWZ1XCA7Civoq5blvIEgPCByb25iZW5cIDsKK+aXpeWgsSA8IG5pcHBvdVwgOwor6ZaA6ZGRIDwgbW9ua2FuXCA7CivloJXokL0gPCBkYXJha3VcIDsKK+mWoumAoyA8IGthbnJlblwgOwor54Wu54mpIDwgbmltb25vXCA7Civml4Xlr50gPCB0YWJpbmVcIDsKK+mZs+eariA8IGNoaW5waVwgOwor5biD5rW36IuUIDwgZnVub3JpXCA7CivntKvomK0gPCBzaGlyYW5cIDsKK+mWi+mKgCA8IGthaWdpblwgOwor54Sh562WIDwgbXVzYWt1XCA7CivorKblkrMgPCBrZWlnYWlcIDsKK+WmpeWNlCA8IGRha3lvdVwgOwor5aSn5oqAIDwgb293YXphXCA7Civnsr7pjKwgPCBzZWlyZW5cIDsKK+aXp+WcnyA8IGt5dXVkb1wgOwor6Zu75patIDwgZGVuZGFuXCA7CivpnLDlvL4gPCBzYW5kYW5cIDsKK+aVmeahiCA8IGt5b3VhblwgOwor5aaZ5ZGzIDwgbXlvdW1pXCA7CivmmI7liJ0gPCBtZWlzaG9cIDsKK+e1nue9qiA8IGtvdXphaVwgOwor5pio5LuKIDwgc2Fra29uXCA7Civntajnt54gPCBqdXV0YW5cIDsKK+aWueWvuCA8IGhvdXN1blwgOwor5aSJ5pS5IDwgaGVua2FpXCA7Civpm7bmlZcgPCByZWloYWlcIDsKK+WlpeWmmSA8IG91bXlvdVwgOwor5pWj5paHIDwgc2FuYnVuXCA7CivmlaPmlaMgPCBzYW56YW5cIDsKK+Wcn+m+jSA8IG1vZ3VyYVwgOwor57im5patIDwganV1ZGFuXCA7CivorJrlj7cgPCBzaGlnb3VcIDsKK+Wls+WbmiA8IGpvc2h1dVwgOwor5pat5a6aIDwgZGFudGVpXCA7Civoq5blrpogPCByb250ZWlcIDsKK+WhteeVjCA8IGppbmthaVwgOwor6KuW5a2fIDwgcm9ubW91XCA7Civml6XlkowgPCBoaXlvcmlcIDsKK+e2sueKtiA8IG1vdWpvdVwgOwor5aSn5b2iIDwgb29neW91XCA7CivmhbDlronkvJogPCBpYW5rYWlcIDsKK+mbo+aWhyA8IG5hbmJ1blwgOwor5oqr6Zyy55uuIDwgaGlyb21lXCA7CivnsbPpo68gPCBiZWloYW5cIDsKK+e2sueJiCA8IGFtaWhhblwgOwor5aOy5paHIDwgYmFpYnVuXCA7Civml6XlkJEgPCBoaW5hdGFcIDsKK+eyvui+siA8IHNlaW5vdVwgOwor5paw5ammIDwgc2hpbnB1XCA7CivpmLLnqbogPCBib3VrdXVcIDsKK+WkqeW6lSA8IHRlbnRlaVwgOwor5aSq5bmzIDwgdGFpaGVpXCA7CivlpaXlnLAgPCBva3VjaGlcIDsKK+Wkp+W6lyA8IG9vZGFuYVwgOwor6ZuR5pu4IDwgemFzc2hvXCA7CivplqPorbAgPCBrYWt1Z2lcIDsKK+eBsOiynSA8IGhhaWdhaVwgOwor5aSn5bmFIDwgb29oYWJhXCA7CivlpKfluKsgPCBkYWlzaGlcIDsKK+e1kOe0jSA8IHl1aW5vdVwgOwor5peF5ZujIDwgcnlvZGFuXCA7CivnuYHlv5kgPCBoYW5ib3VcIDsKK+WcsOmrqiA8IGppZ2FtaVwgOwor6Ziy56amIDwgYm91Z3lvXCA7CivntLDog54gPCBzYWlib3VcIDsKK+aXpeWLpCA8IG5pa2tpblwgOwor54K56Iy2IDwgdGVuY2hhXCA7CivplbfpgJQgPCBjaG91dG9cIDsKK+S6iOWCmemmrCA8IHlvYmliYVwgOwor5rCX5YyW5ZmoIDwga2lrYWtpXCA7CivmkZjoir0gPCB0ZWtpZ2FcIDsKK+mbhOadviA8IG9tYXRzdVwgOwor5pep5Ye6IDwgaGF5YWRlXCA7CivlpYflppkgPCBraW15b3VcIDsKK+WkluW+hCA8IGdhaWtlaVwgOwor5aSW5b6BIDwgZ2Fpc2VpXCA7CivmjqXpoK0gPCBzZXR0b3VcIDsKK+iok+eCuSA8IGt1bnRlblwgOwor5q2m6ICF57W1IDwgbXVzaGFlXCA7Civoq5blpJYgPCByb25nYWlcIDsKK+WknOW6lyA8IHlvbWlzZVwgOwor57WD57eaIDwgZ2Vuc2VuXCA7Civoq77lkKYgPCBkYWt1aGlcIDsKK+eEoeeXmyA8IG11dHN1dVwgOwor54Sh55eFIDwgbXVieW91XCA7Civlo5/mlq0gPCByb3VkYW5cIDsKK+eJh+WIgyA8IGthdGFoYVwgOwor5pW15b2xIDwgdGVraWVpXCA7Civntbnnm64gPCBraW51bWVcIDsKK+eFruaxgSA8IG5pamlydVwgOwor6KO+6YeOIDwgc3Vzb25vXCA7CivlpJzluIIgPCB5b2ljaGlcIDsKK+Wkp+WxsSA8IHRhaXphblwgOwor6Ku45ZCbIDwgc2hva3VuXCA7CivpnJzlrrMgPCBzb3VnYWlcIDsKK+aUueaYkyA8IGthaWVraVwgOwor5aOu5oyZIDwgc291a3lvXCA7CivntIXokYkgPCBtb21pamlcIDsKK+aWjuWuriA8IHNhaWd1dVwgOwor6Zuj5omAIDwgbmFuc2hvXCA7Civlparlj5YgPCBkYXNzaHVcIDsKK+WkquWuiCA8IHRhaXNodVwgOwor5paJ5bCEIDwgc2Vpc2hhXCA7CivlpInlvaIgPCBoZW5rZWlcIDsKK+e0oOiCjCA8IHN1aGFkYVwgOwor5aSq5a2XIDwgZnV0b2ppXCA7CivlpKnlrasgPCB0ZW5zb25cIDsKK+mbkeaQjSA8IHphc3NvblwgOwor5pel5YKYIDwgaGlnYXNhXCA7CivpnanlhbcgPCBrYXdhZ3VcIDsKK+mdouWJjSA8IG1lbnplblwgOwor6ZyK5bOwIDwgcmVpaG91XCA7Civpmrfmm7ggPCByZWlzaG9cIDsKK+inkueariA8IGtha3VoaVwgOwor5pWw5bm0IDwgc3V1bmVuXCA7Civlpa7lirEgPCBmdW5yZWlcIDsKK+mdnuWKmyA8IGhpcmlraVwgOwor6Kut5ZGKIDwgeXVrb2t1XCA7CivpoqjlnJ/oqJggPCBmdWRva2lcIDsKK+aWh+WumCA8IGJ1bmthblwgOwor5pes5L2ZIDwganVuJyd5b1wgOwor57SF6Iy2IDwga291Y2hhXCA7CivntLDnt7sgPCBzYWljaGlcIDsKK+Wfi+iUtSA8IG1haXpvdVwgOwor6ZyK5bGxIDwgcmVpemFuXCA7Civoo4/ploAgPCB1cmFtb25cIDsKK+mbu+W3pSA8IGRlbmtvdVwgOwor5pac5aGUIDwgc2hhdG91XCA7CivlpJzlr5IgPCB5b3phbXVcIDsKK+WhqeeFriA8IHNoaW9uaVwgOwor6Ku45YiDIDwgbW9yb2hhXCA7Civln4vokawgPCBtYWlzb3VcIDsKK+e2v+avmyA8IHdhdGFnZVwgOwor57WQ56S+IDwga2Vzc2hhXCA7CivopJLosrYgPCBob3VoZW5cIDsKK+e0r+e0ryA8IHJ1aXJ1aVwgOwor5Zyw6ZyKIDwgY2hpcmVpXCA7CivlpJzlraYgPCB5YWdha3VcIDsKK+aXpeS8iiA8IG5pY2hpaVwgOwor6KeS55WMIDwga2Fra2FpXCA7CivmlY/mhJ8gPCBiaW5rYW5cIDsKK+aVt+WxhSA8IHNoaWtpaVwgOwor54Kt6IK6IDwgdGFuaGFpXCA7CivnhZnmr5IgPCBlbmRva3VcIDsKK+eGseaEjyA8IG5ldHN1aVwgOwor5Zyw6ZqOIDwgY2hpa2FpXCA7Civml4XliLggPCByeW9rZW5cIDsKK+mao+adkSA8IHJpbnNvblwgOwor6Z2i5YCSIDwgbWVuZG91XCA7Civml6XkuK0gPCBoaW5ha2FcIDsKK+WlkeWQiCA8IGtlaWdvdVwgOwor6ZyK5aqSIDwgcmVpYmFpXCA7CivnsbPpiq0gPCBiZWlzZW5cIDsKK+iqnuWtpiA8IGdvZ2FrdVwgOwor6KqY5bCOIDwgeXV1ZG91XCA7Civpm5HmhJ8gPCB6YWtrYW5cIDsKK+aWjuWgtCA8IHNhaWpvdVwgOwor5aWz5L2TIDwgbnlvdGFpXCA7CivpnaLkvZMgPCBtZW50ZWlcIDsKK+WlieWRiCA8IGhvdXRlaVwgOwor5pKD56C0IDwgZ2VraWhhXCA7CivpnaLkvJogPCBtZW5rYWlcIDsKK+WjsuW6lyA8IGJhaXRlblwgOwor6KuW5Y+iIDwgcm9uc291XCA7Civpm7vlrZAgPCBkZW5zaGlcIDsKK+eIteS9jSA8IHNoYWt1aVwgOwor5aWz5Lq6IDwgbnlvbmluXCA7CivntbbniYggPCB6ZXBwYW5cIDsKK+mbquW0qSA8IG5hZGFyZVwgOwor57Sb57SbIDwgZnVucHVuXCA7Civlo67lubQgPCBzb3VuZW5cIDsKK+Wkp+WeiyA8IG9vZ2F0YVwgOwor57SU57a/IDwganVubWVuXCA7Civloanmua8gPCBzaGlveXVcIDsKK+Wls+S4rSA8IGpvY2h1dVwgOwor6ZaA6KGbIDwgbW9uJydlaVwgOwor5Z6C6KiTIDwgc3Vpa3VuXCA7CivpmLLniq8gPCBib3VoYW5cIDsKK+eGseW4ryA8IG5ldHRhaVwgOwor54Sa54GrIDwgdGFraWJpXCA7CivmlLnmgqogPCBrYWlha3VcIDsKK+e0lOezuyA8IGp1bmtlaVwgOwor5aWl5LydIDwgb2t1ZGVuXCA7CivloanmtbQgPCBlbnlva3VcIDsKK+irh+WQiCA8IGRhbmdvdVwgOwor6ZyK5Z+fIDwgcmVpaWtpXCA7Civoq5bliKQgPCByb25wYW5cIDsKK+eFruaWuSA8IG5pa2F0YVwgOwor54aK5omLIDwga3VtYWRlXCA7CivntJTnsosgPCBqdW5zdWlcIDsKK+iqreWbsyA8IGRva3V6dVwgOwor54Gr6JOLIDwgaGlidXRhXCA7Civoqr/lkowgPCBjaG91d2FcIDsKK+iqv+WRsyA8IGNob3VtaVwgOwor5peF5Lq6IDwgcnlvamluXCA7Civnt4/mlbAgPCBzb3VzdXVcIDsKK+mbkeW3viA8IHpvdWtpblwgOwor6ZqF5pyoIDwgc3VtaWtpXCA7Civopqrnlo4gPCBzaGluc29cIDsKK+aWueS+vyA8IGhvdWJlblwgOwor6Zui5a6uIDwgcmlreXV1XCA7CivntaLniJsgPCBrZW5yYW5cIDsKK+W+oeays+erpSA8IG9rYXBwYVwgOwor5aSW5ZywIDwgZ2FpY2hpXCA7CivloanmsJcgPCBzaGlva2VcIDsKK+aOpei/kSA8IHNla2tpblwgOwor6ZuE5byBIDwgeXV1YmVuXCA7CivnsbPou40gPCBiZWlndW5cIDsKK+aUueW7gyA8IGthaWhhaVwgOwor6ZqO5pWwIDwga2Fpc3V1XCA7CivlnLDph5EgPCBqaWdhbmVcIDsKK+iqv+WNsCA8IGNob3VpblwgOwor57Gk6YGLIDwga3VqaXVuXCA7Civmv4Hpn7MgPCBkYWt1b25cIDsKK+Wkp+WSjCA8IHlhbWF0b1wgOwor6KuH5YikIDwgZGFucGFuXCA7Civplbfom4cgPCBjaG91ZGFcIDsKK+aWueS7iiA8IGhvdWtvblwgOwor57SF57KJIDwgYmVuaWtvXCA7CivlnLDphZIgPCBqaXpha2VcIDsKK+mau+W9sSA8IHNla2llaVwgOwor5Zyf6Y2LIDwgZG9uYWJlXCA7CivngbDoibIgPCBoYWlpcm9cIDsKK+WkqeWPsCA8IHRlbmRhaVwgOwor5aSn5ZCbIDwgdGFpa3VuXCA7CivpmbDmoLggPCBpbmtha3VcIDsKK+e0sOebriA8IGhvc29tZVwgOwor5o+Q6KaBIDwgdGVpeW91XCA7CivngavoirEgPCBoaWJhbmFcIDsKK+mbkeWxhSA8IHpha2t5b1wgOwor5Z+L57eaIDwgbWFpc2VuXCA7CivmlbDlm54gPCBzdXVrYWlcIDsKK+WlleS4liA8IGVraXNlaVwgOwor6b2mIDwgaGFndWtpXCA7CivlpKfljYogPCB0YWloYW5cIDsKK+m8iCA8IHN1cHBvblwgOwor6KSQ6Je7IDwga2Fzc291XCA7Civpu5wgPCBjaHV0c3VcIDsKK+eEoeavkiA8IG11ZG9rdVwgOwor5aSn5YyZIDwgb29zYWppXCA7CivntbbmtbcgPCB6ZWtrYWlcIDsKK+mbhOWzsCA8IHl1dWhvdVwgOwor57SN56iOIDwgbm91emVpXCA7CivlnJ/ph5wgPCBkb2dhbWFcIDsKK+Wkp+WLoiA8IHRhaXplaVwgOwor57eS5oimIDwgY2hvc2VuXCA7CivpupMgPCBmdW1vdG9cIDsKK+Wkp+WLhyA8IHRhaXl1dVwgOwor6KOz6KO+IDwgbW9zdXNvXCA7CivpmaTmoLggPCBqb2tha3VcIDsKK+ino+avkiA8IGdlZG9rdVwgOwor6Zmw5pqmIDwgaW5yZWtpXCA7CivnhKHmrLIgPCBtdXlva3VcIDsKK+iqo+WRiiA8IGJ1a29rdVwgOwor5aSn5YiGIDwgZGFpYnVuXCA7CivlpKfliIAgPCBkYWl0b3VcIDsKK+mbkeWpmiA8IHpha2tvblwgOwor5pCN6ICXIDwgc29ubW91XCA7CivlnKfov6sgPCBhcHBha3VcIDsKK+Wkp+WHoSA8IG9veW9zb1wgOwor6ZqP5omAIDwgenVpc2hvXCA7Civpm4XlrqIgPCBnYWtha3VcIDsKK+WkqeWFtSA8IHRlbnBlaVwgOwor6bWlIDwga2FrZXN1XCA7CivpmqDlv40gPCBpbicnbmluXCA7CivpmaTmnI0gPCBqb2Z1a3VcIDsKK+m0rCA8IHVndWlzdVwgOwor5aSn5YWoIDwgdGFpemVuXCA7CivptI4gPCBrYW1vbWVcIDsKK+mbu+WRvSA8IGRlbm1laVwgOwor6KOc6Ki7IDwgaG9jaHV1XCA7CivmkbjniYwgPCBtb3VwYWlcIDsKK+aEm+eFmeWutiA8IGFpZW5rYVwgOwor6YOo5bGL552AIDwgaGV5YWdpXCA7CivpnIrliaMgPCByZWlrZW5cIDsKK+aVsOWQjSA8IHN1dW1laVwgOwor6KGo6Z+zIDwgaHlvdW9uXCA7CivkuojlgpnosrsgPCB5b2JpaGlcIDsKK+WkluWLpCA8IGdhaWtpblwgOwor6ZqP5oSfIDwgenVpa2FuXCA7CivpsbggPCBzdXp1a2lcIDsKK+eCr+ecvCA8IGtlaWdhblwgOwor6bGwIDwgc2hpaXJhXCA7CivlpJzlh6ogPCB5b25hZ2lcIDsKK+maj+aDsyA8IHp1aXNvdVwgOwor6bC5IDwga2F0c3VvXCA7Civmjqjoq5YgPCBzdWlyb25cIDsKK+mwryA8IGl3YXNoaVwgOwor5aSJ5ZCNIDwgaGVubWVpXCA7CivntabmsrkgPCBreXV1eXVcIDsKK+mwmiA8IGhhcmFrYVwgOwor57WC54SJIDwgc2h1dWVuXCA7CivpsIYgPCBzYXdhcmFcIDsKK+eGseWeiyA8IG5la2tlaVwgOwor6Zu35ZCMIDwgcmFpZG91XCA7CivpnKfkuK0gPCBtdWNodXVcIDsKK+mvsSA8IHNoYWNoaVwgOwor6a+wIDwgbmFtYXp1XCA7Civpr6ggPCBrdWppcmFcIDsKK+mvoyA8IHN1cnVtZVwgOwor5pWw5Y2DIDwgc3V1c2VuXCA7CivmlbDljYEgPCBzdXVqdXVcIDsKK+imgeeUqCA8IHlvdXlvdVwgOwor57aa5pigIDwgem9rdWVpXCA7Civln7TnlJ8gPCBoYW55dXVcIDsKK+WkluWHuiA8IHNvdG9kZVwgOwor6Zuy5ZGRIDwgd2FudGFuXCA7CivprqogPCBtYWd1cm9cIDsKK+e1kOa7niA8IGtldHRhaVwgOwor6a6WIDwga2FqaWthXCA7Civngonnq68gPCByb2JhdGFcIDsKK+mbkeWgsSA8IHphcHBvdVwgOwor57Sv54qvIDwgcnVpaGFuXCA7CivmjqjoqIggPCBzdWlrZWlcIDsKK+eFp+W/nCA8IHNob3VvdVwgOwor57ir5ZCIIDwgaG91Z291XCA7Civlm5vpmqMgPCBzaGlyaW5cIDsKK+WkluWFuCA8IGdhaXRlblwgOwor54CY6YGO5ZmoIDwgcm9rYWtpXCA7Civlm5vpmoUgPCB5b3N1bWlcIDsKK+WgheeJoiA8IGtlbnJvdVwgOwor54Gr57iEIDwgaGluYXdhXCA7CivlpInli5UgPCBoZW5kb3VcIDsKK+maj+W+kyA8IHp1aWp1dVwgOwor6ZuE5aSnIDwgeXV1ZGFpXCA7CivmlofkvosgPCBidW5yZWlcIDsKK+mbo+WVjyA8IG5hbm1vblwgOwor5pWZ5ZSGIDwga3lvdXNhXCA7CivmjqLoqKogPCB0YW5ib3VcIDsKK+aNu+i7oiA8IG5lbnRlblwgOwor5pWZ5ZOhIDwga3lvdWluXCA7Civlm7PpjLIgPCB6dXJva3VcIDsKK+Wkp+S7oyA8IGRhaWRhaVwgOwor6KOc5Yqp5ZOhIDwgaG9qb2luXCA7Civoo4/opZ8gPCB1cmFlcmlcIDsKK+Wcn+i2syA8IGRvc29rdVwgOwor5aSW5YK1IDwgZ2Fpc2FpXCA7Civmjojos54gPCBqdXNob3VcIDsKK+imi+eJqSA8IG1pbW9ub1wgOwor5aSp5Li8IDwgdGVuZG9uXCA7CivlpKfkubEgPCB0YWlyYW5cIDsKK+eFp+W6piA8IHNob3Vkb1wgOwor5paH5Lq6IDwgYnVuamluXCA7CivlpKfkuZcgPCBkYWlqb3VcIDsKK+WjsuWTgSA8IGJhaWhpblwgOwor5aSp5LiOIDwgdGVuJyd5b1wgOwor5Zyw6KyhIDwgaml1dGFpXCA7Civoo73ojLYgPCBzZWljaGFcIDsKK+WknOS8vSA8IHlvdG9naVwgOwor5aSa5L2cIDwgdGFzYWt1XCA7CivplbfogIUgPCBjaG91amFcIDsKK+WjsuWQjSA8IGJhaW1laVwgOwor5aGK5qC5IDwga2Fpa29uXCA7CivnhJrmm7ggPCBmdW5zaG9cIDsKK+aRgueUnyA8IHNlc3NlaVwgOwor6Zai56m6IDwga2Fua3V1XCA7CivnhKHmmI4gPCBtdW15b3VcIDsKK+avlOS4mOWwvCA8IGJpa3VuaVwgOwor5Zu96YGLIDwga29rdXVuXCA7CivplonntYwgPCBoZWlrZWlcIDsKK+ihgOmkhSA8IGtlcHBlaVwgOwor6Zu75YGcIDwgZGVudGVpXCA7CivmlbDlgKQgPCBzdXVjaGlcIDsKK+mWoueojiA8IGthbnplaVwgOwor5pWw5YCNIDwgc3V1YmFpXCA7CivlpJzkuK0gPCB5b25ha2FcIDsKK+aVo+WFtSA8IHNhbnBlaVwgOwor5aSW5Lq6IDwgZ2FpamluXCA7Civlo4floLQgPCBkYW5qb3VcIDsKK+aNqOi6qyA8IHN1dGVtaVwgOwor5aGX5paZIDwgdG9yeW91XCA7CivntKDnhLwgPCBzdXlha2lcIDsKK+eFmeW5lSA8IGVubWFrdVwgOwor5aSW5LmxIDwgZ2FpcmFuXCA7Civpm5Hlk4EgPCB6YXBwaW5cIDsKK+ino+aVoyA8IGthaXNhblwgOwor5pOx5bqnIDwga2FrdXphXCA7Civnsr7nsr4gPCBzZWl6ZWlcIDsKK+e1tuaZryA8IHpla2tlaVwgOwor6Kix5a65IDwga3lveW91XCA7CivlnLDoo4EgPCBjaGlzYWlcIDsKK+eyvueyiSA8IHNlaWZ1blwgOwor6Z6QIDwga29oYXplXCA7CivmjZXpgLggPCBob2l0c3VcIDsKK+aVkeWKqSA8IGt5dXVqb1wgOwor57K+57GzIDwgc2VpbWFpXCA7CivmlLnlloQgPCBrYWl6ZW5cIDsKK+Wcp+immiA8IGFra2FrdVwgOwor5pWw5Lq6IDwgc3V1bmluXCA7CivpmbDlvrMgPCBpbnRva3VcIDsKK+eBq+eoriA8IGhpZGFuZVwgOwor6ZyeIDwga2FzdW1pXCA7CivpnJkgPCBtaXpvcmVcIDsKK+ioreWumiA8IHNldHRlaVwgOwor6Kmp5ZCfIDwgc2hpZ2luXCA7Civpm5sgPCBoaXlva29cIDsKK+e0r+a4myA8IHJ1aWdlblwgOwor57SU54S2IDwganVuemVuXCA7CivmlbDkuIcgPCBzdXVtYW5cIDsKK+WkieS5sSA8IGhlbnJhblwgOwor5rOi5q2i5aC0IDwgaGF0b2JhXCA7CivpmarlvpMgPCBiYWlqdXVcIDsKK+iho+mJoiA8IGloYXRzdVwgOwor6KKr6KaGIDwgaGlmdWt1XCA7Civngq/ngq8gPCBrZWlrZWlcIDsKK+eCreeBqyA8IHN1bWliaVwgOwor5Zu96LK7IDwga29rdWhpXCA7CivlnLDomasgPCBtaW1penVcIDsKK+WbnumBiiA8IGthaXl1dVwgOwor6Kaz5qGcIDwga2FuJydvdVwgOwor5piT5YuV5bqmIDwgaWRvdWRvXCA7CivlnoLnr4QgPCBzdWloYW5cIDsKK+mbo+S7tiA8IG5hbmtlblwgOwor6KiT5bCOIDwga3VuZG91XCA7CivpkaIgPCB5YXN1cmlcIDsKK+e1teWbs+mdoiA8IGV6dW1lblwgOwor5pWX5LqhIDwgaGFpYm91XCA7Civlo7LkurogPCBiYWluaW5cIDsKK+a9rumWkyA8IHNoaW9tYVwgOwor6KO45amm55S7IDwgcmFmdWdhXCA7Civpm6LkubMgPCByaW55dXVcIDsKK+ijj+iKuCA8IHVyYWdlaVwgOwor5Zue6LuiIDwga2FpdGVuXCA7CivloLTmlbAgPCBiYWthenVcIDsKK+eBq+eavyA8IGhpemFyYVwgOwor5q2p5LiA5q2pIDwgaG9pcHBvXCA7CivlopflpKcgPCB6b3VkYWlcIDsKK+e4geWFiCA8IGVuc2FraVwgOwor5LiJ5Y2B6LevIDwgbWlzb2ppXCA7Civlo7LkuIogPCB1cmlhZ2VcIDsKK+mbkeS/syA8IHphcHBhaVwgOwor5Zu96KqeIDwga29rdWdvXCA7CivpjLogPCBrYXphcmlcIDsKK+e1jOabuCA8IGtlaXNob1wgOwor5pS55YWDIDwga2FpZ2VuXCA7Civmj5vnrpcgPCBrYW56YW5cIDsKK+eyl+eylyA8IGFyYWFyYVwgOwor54KK54ioIDwgc3Vpc2FuXCA7Civmv4Doqp4gPCBnZWtpZ29cIDsKK+e0oeavmyA8IGJvdW1vdVwgOwor54Sh5b+DIDwgbXVzaGluXCA7CivntKvmqoAgPCBzaGl0YW5cIDsKK+e4geWBtCA8IGVuZ2F3YVwgOwor5LiN5rKZ5rGwIDwgYnVzYXRhXCA7Civpio0gPCBjaGl0c3VcIDsKK+ijnOe/kiA8IGhvc2h1dVwgOwor6Zmj5bGLIDwgamluJyd5YVwgOwor6ZuR5Lu2IDwgemFra2VuXCA7CivpiYsgPCBrYW4nJ25hXCA7CivkuI3mrbvouqsgPCBmdWppbWlcIDsKK+mbkeS6uiA8IHpvdW5pblwgOwor57e05YW1IDwgcmVucGVpXCA7CivlopPloLQgPCBoYWthYmFcIDsKK+mbheS/lyA8IGdhem9rdVwgOwor6YaqIDwgbW9yb21pXCA7CivmlL7ku7sgPCBob3VuaW5cIDsKK+WKoOWliOmZgCA8IGthbmFkYVwgOwor5o6o6ICDIDwgc3Vpa291XCA7CivntJTmr5sgPCBqdW5tb3VcIDsKK+e0hea2mSA8IGtvdXJ1aVwgOwor57Sg5qi4IDwgc29ib2t1XCA7CivlmbTpo68gPCBmdW5wYW5cIDsKK+e2meWtkCA8IG1hbWFrb1wgOwor57SU5q2jIDwganVuc2VpXCA7Civopofmpa0gPCBoYWd5b3VcIDsKK+eBq+eOiSA8IGhpZGFtYVwgOwor6Kiq5ZWPIDwgaG91bW9uXCA7Civplbfnm64gPCBuYWdhbWVcIDsKK+e1seW+oSA8IHRvdWd5b1wgOwor6YGWIDwgYXBwYXJlXCA7Civon7vpo58gPCBhcmlrdWlcIDsKK+aQvuayuSA8IHNha3V5dVwgOwor5Lul6YGg5qipIDwgaWVua2VuXCA7Civoob/oo48gPCBlcml1cmFcIDsKK+ijnOe1piA8IGhva3l1dVwgOwor5pa96aST6ay8IDwgc2VnYWtpXCA7CivoqZXkvqEgPCBoeW91a2FcIDsKK+mWgOeVqiA8IG1vbmJhblwgOwor5Zuz6KGoIDwgenVoeW91XCA7Civov5ogPCB0b3RlbW9cIDsKK+exs+e2vyA8IGJlaW1lblwgOwor5aG55aOVIDwgemFuZ291XCA7CivkuInph43nnIwgPCBtaWVrZW5cIDsKK+e3keWMliA8IHJ5b2trYVwgOwor6ZmL5bGLIDwgcm91b2t1XCA7CivlnLDogowgPCBqaWhhZGFcIDsKK+mYsuW8viA8IGJvdWRhblwgOwor5b6h5rKZ5rGwIDwgZ29zYXRhXCA7CivoqIDlpJYgPCBnZW5nYWlcIDsKK+e3j+WLoiA8IHNvdXplaVwgOwor5Zue6KiTIDwga2Fpa3VuXCA7CivntZDmiJAgPCBrZXNzZWlcIDsKK+i7iCA8IHlhZ2F0ZVwgOwor57SE5qy+IDwgeWFra2FuXCA7CivoursgPCB1dHN1a2VcIDsKK+i6riA8IHNlZ2FyZVwgOwor5pKk5buDIDwgdGVwcGFpXCA7Civlm6DopbIgPCBpbnNodXVcIDsKK+exs+eyiSA8IGJlaWZ1blwgOwor54Wp5Yq0IDwgaGFucm91XCA7CivloqjliJEgPCBib2trZWlcIDsKK+eEoeWtpiA8IG11Z2FrdVwgOwor5q+b57m75a2QIDwga2VqdXN1XCA7Civmj4/noLQgPCBieW91aGFcIDsKK+aRmOaenCA8IHRla2lrYVwgOwor6Zmw5ZqiIDwgZnVndXJpXCA7CivouLUgPCBrYWthdG9cIDsKK+S4jeWQjOaEjyA8IGZ1ZG91aVwgOwor5ouz6YqDIDwga2VuanV1XCA7Civnr4DphZIgPCBzZXNzaHVcIDsKK+WZtOmWgCA8IGZ1bm1vblwgOwor6KGo6KOPIDwgaHlvdXJpXCA7Civpmo/liIYgPCB6dWlidW5cIDsKK+e1tuWvviA8IHpldHRhaVwgOwor57KX55uuIDwgemFyYW1lXCA7CivmvKLpn7MgPCBrYW4nJ29uXCA7CivmjIfovKogPCB5dWJpd2FcIDsKK+eyieeglSA8IGZ1bnNhaVwgOwor6Zmw5ZSHIDwgaW5zaGluXCA7CivpmqPkurogPCByaW5qaW5cIDsKK+exs+eqgSA8IG3Ek3RvcnVcIDsKK+e0oOaVtSA8IHN1dGVraVwgOwor5aKX5YiKIDwgem91a2FuXCA7CivlopfliIYgPCB6b3VidW5cIDsKK+a9rui3ryA8IHNoaW9qaVwgOwor6KGT6KiIIDwganVra2VpXCA7CivntI3mna8gPCBub3VoYWlcIDsKK+ihhuitsCA8IHNodXVnaVwgOwor54K55pWwIDwgdGVuc3V1XCA7CivntI3mnKwgPCBub3Vob25cIDsKK+aLs+mBkyA8IGtvbmRvdVwgOwor6Zmj5Za2IDwgamluJydlaVwgOwor57SZ5pWwIDwgc2hpc3V1XCA7CivntJvmk74gPCBmdW5qb3VcIDsKK+mWgOeBryA8IG1vbnRvdVwgOwor5oug6YeRIDwga3lva2luXCA7CivploDngasgPCBrYWRvYmlcIDsKK+e1tuWlvSA8IHpla2tvdVwgOwor57Sg5o+PIDwgc29ieW91XCA7CivoorHntJcgPCBmdWt1c2FcIDsKK+maj+S8tCA8IHp1aWhhblwgOwor5o+Q55C0IDwgdGVpa2luXCA7CivoqJjlhaUgPCBraW55dXVcIDsKK+WcqOexsyA8IHphaWJlaVwgOwor6Kaa5oKfIDwga2FrdWdvXCA7Civlopfkv7ggPCB6b3Vob3VcIDsKK+Wil+S+vyA8IHpvdWJpblwgOwor6KiBIDwgZ29uYmVuXCA7CivmvI/pm7sgPCByb3VkZW5cIDsKK+S6iOWCmeenkSA8IHlvYmlrYVwgOwor6KSQ54KtIDwga2F0dGFuXCA7Civmjrvnl5IgPCBzb3V5b3VcIDsKK+eCieajmiA8IHJvZGFuYVwgOwor5aKD5YaFIDwga2VpZGFpXCA7Civmjqjnn6UgPCBzdWljaGlcIDsKK+eBq+awtCA8IGhpbWl6dVwgOwor6KaB5omAIDwgeW91c2hvXCA7CivlnLDnqI4gPCBjaGl6ZWlcIDsKK+e1ueWcsCA8IGtpbnVqaVwgOwor5rGf5oi45YmNIDwgZWRvbWFlXCA7Civnsr7mtrIgPCBzZWlla2lcIDsKK+aOouefpSA8IHRhbmNoaVwgOwor5Zmo6YePIDwga2lyeW91XCA7CivooI0gPCBzYXNvcmlcIDsKK+mVt+a5ryA8IG5hZ2F5dVwgOwor5ry46L+RIDwgemVua2luXCA7CivpmaLlhoUgPCBpbicnbmFpXCA7CivloLTlpJYgPCBqb3VnYWlcIDsKK+Wegua6liA8IHN1aWp1blwgOwor54Sh5ZGKIDwgbXVrb2t1XCA7CivoqJPku6QgPCBrdW5yZWlcIDsKK+e0r+W5tCA8IHJ1aW5lblwgOwor5Zyn56WeIDwgYXNzaGluXCA7CivnsbPnlKMgPCBiZWlzYW5cIDsKK+e1kOWpmiA8IGtla2tvblwgOwor57SN5omAIDwgbmFzc2hvXCA7Civom40gPCBob3RhcnVcIDsKK+aSpOWbniA8IHRla2thaVwgOwor57Gg55uuIDwga2Fnb21lXCA7CivntJTmhJsgPCBqdW4nJ2FpXCA7CivmiYvpvLsgPCB0ZWJhbmFcIDsKK+mVt+azoiA8IGNob3VoYVwgOwor5Z6C5raOIDwgenVpemVuXCA7CivntKLlvJUgPCBzYWt1aW5cIDsKK+e0lOaDhSA8IGp1bmpvdVwgOwor57W25ZOBIDwgemVwcGluXCA7CivmjqLnlaogPCB0YW5iYW5cIDsKK+mWgOatryA8IG1vbnNoaVwgOwor5r+D57S6IDwgbm91a29uXCA7CivntITmiYsgPCB5YWt1dGVcIDsKK+iWuiA8IG5henVuYVwgOwor6KGw6ICXIDwgc3VpbW91XCA7CivnrYbpoK0gPCBoaXR0b3VcIDsKK+aOoeeUqCA8IHNhaXlvdVwgOwor5o2V57ibIDwgaG9iYWt1XCA7CivolaggPCB3YXJhYmlcIDsKK+eyieeCrSA8IGZ1bnRhblwgOwor6Zmq5LmXIDwgYmFpam91XCA7CivolLYgPCBzb25va29cIDsKK+Wcp+edgCA8IGF0c3VnaVwgOwor5Z6j5qC5IDwga2FraW5lXCA7Civok6wgPCB5b21vZ2lcIDsKK+ino+WJliA8IGthaWJvdVwgOwor57Wx5ZCIIDwgdG91Z291XCA7CivlnJ/nn7MgPCBkb3Nla2lcIDsKK+iShSA8IHN1a3Vtb1wgOwor5Zyw55WqIDwgY2hpYmFuXCA7CivnhJrliJEgPCBmdW5rZWlcIDsKK+e0sOWtlyA8IGhvc29qaVwgOwor54Sh5YSfIDwgbXVzaG91XCA7CivntYLlpJwgPCBzaHV1eWFcIDsKK+iogOS4iiA8IGdvbmpvdVwgOwor5L+d6K235Yy6IDwgaG9nb2t1XCA7CivplpPmnI0gPCBhaWZ1a3VcIDsKK+a1heiMheeUnyA8IGFzYWppdVwgOwor54Sh5YK3IDwgbXVraXp1XCA7CivmkqTljrsgPCB0ZWtreW9cIDsKK+iMuCA8IGtpbm9rb1wgOwor5Zug57iBIDwgaW4nJ25lblwgOwor5ZiG6aGYIDwgdGFuZ2FuXCA7CivmvrHnsokgPCBkZW5wdW5cIDsKK+imgeWusyA8IHlvdWdhaVwgOwor57SZ5bGLIDwga2FtaXlhXCA7CivplpPmlbAgPCBtYWthenVcIDsKK+WbveemgSA8IGtva2tpblwgOwor5oy/57W1IDwgc2FzaGllXCA7CivlnLDnjYQgPCBqaWdva3VcIDsKK+WegualiiA8IHN1aXlvdVwgOwor5Zyf55SjIDwgbWl5YWdlXCA7Civop6PkvZMgPCBrYWl0YWlcIDsKK+aOpeeCuSA8IHNldHRlblwgOwor5Zu956SOIDwga29rdXNvXCA7CivohqAgPCBuaWthd2FcIDsKK+err+m6lyA8IHRhbnJlaVwgOwor6KGA6Ia/IDwgY2hpdW1pXCA7Civop6Pku7sgPCBrYWluaW5cIDsKK+e0meWtkCA8IGthbWlrb1wgOwor54Kt5bGkIDwgdGFuc291XCA7CivmkqTlhbUgPCB0ZXBwZWlcIDsKK+e0r+WilyA8IHJ1aXpvdVwgOwor6KGM6ICFIDwgZ3lvdWphXCA7Civng4jlo6sgPCByZXNzaGlcIDsKK+a8q+irhyA8IG1hbmRhblwgOwor5omL6aeSIDwgdGVnb21hXCA7CivloIXloYEgPCBrZW5ydWlcIDsKK+WutuWFt+WxiyA8IGthZ3V5YVwgOwor5omL6aaWIDwgdGVrdWJpXCA7CivlsI/msJflkbMgPCBrb2tpbWlcIDsKK+eCieW/gyA8IHJvc2hpblwgOwor562G6YuSIDwgaGlwcG91XCA7CivloILloIIgPCBkb3Vkb3VcIDsKK+imquWSjCA8IHNoaW53YVwgOwor5Z6C5pyoIDwgdGFydWtpXCA7CivloLTlhoUgPCBqb3VuYWlcIDsKK+aMieiFuSA8IGFucHVrdVwgOwor5Zyw54K5IDwgY2hpdGVuXCA7Civpl4flsYsgPCB5YW1peWFcIDsKK+e1tuS4liA8IHplc3NlaVwgOwor57WE5ZCIIDwga3VtaWFpXCA7CivmiYvpoIMgPCB0ZWdvcm9cIDsKK+imhuWcnyA8IGZ1a3Vkb1wgOwor5Z+55ZywIDwgYmFpY2hpXCA7Civlm57npLwgPCBrYWlyZWlcIDsKK+aJgOmhmCA8IHNob2dhblwgOwor57WQ5YWaIDwga2V0dG91XCA7CivntJTlopcgPCBqdW56b3VcIDsKK+e4hSA8IG9kb3NoaVwgOwor6KO95p2QIDwgc2VpemFpXCA7Civng5nljbAgPCByYWt1aW5cIDsKK+aJi+mamyA8IHRlZ2l3YVwgOwor5omL6ZqZIDwgdGVzdWtpXCA7CivopqrliIYgPCBveWFidW5cIDsKK+etiei+uiA8IHRvdWhlblwgOwor54K55ZyoIDwgdGVuemFpXCA7CivntabkuI4gPCBreXV1eW9cIDsKK+eCreWhtSA8IHRhbmppblwgOwor57KX5pyNIDwgc29mdWt1XCA7Civln5/lpJYgPCBpa2lnYWlcIDsKK+e0sOWQmyA8IHNhaWt1blwgOwor5aSp6JqV57O4IDwgdGVndXN1XCA7Civns5IgPCBob3NoaWlcIDsKK+aLmeiRlyA8IHNldGNob1wgOwor5omL6ZW3IDwgdGVuYWdhXCA7Civpl4flpJwgPCB5YW1peW9cIDsKK+WbveeOiyA8IGtva3VvdVwgOwor57KJ5pysIDwgZnVucG9uXCA7CivlnI/ngrkgPCBrZW50ZW5cIDsKK+eBq+W6iiA8IGhpZG9rb1wgOwor6KGA566hIDwga2Vra2FuXCA7CivntYzkvJ0gPCBrZWlkZW5cIDsKK+ihqOeariA8IGh5b3VoaVwgOwor56yCIDwgdXRzdWJvXCA7CivmjpLmsLQgPCBoYWlzdWlcIDsKK+WbveeItiA8IGtva3VmdVwgOwor57Sw5YiGIDwgc2FpYnVuXCA7Civnq4ggPCBrYW1hZG9cIDsKK+aMgee2miA8IGppem9rdVwgOwor5o+h5omLIDwgYWt1c2h1XCA7CivmiYvpjYsgPCB0ZW5hYmVcIDsKK+ernOmmrCA8IHJ5dXVtZVwgOwor56qu6bygIDwga3l1dXNvXCA7Civln47loYEgPCBqb3VydWlcIDsKK+a7kei7iiA8IGthc3NoYVwgOwor56ul6aGUIDwgZG91Z2FuXCA7Civnp6QgPCBoYWthcmlcIDsKK+mWgOW8nyA8IG1vbnRlaVwgOwor5oim6ZuyIDwgc2VuJyd1blwgOwor56aKIDwgbWlzb2dpXCA7CivmiYvpiaQgPCB0ZWthZ2lcIDsKK+a5vumgrSA8IHdhbnRvdVwgOwor57SN5ZOBIDwgbm91aGluXCA7CivmkI3lrrMgPCBzb25nYWlcIDsKK+exs+adkCA8IGJlaXphaVwgOwor55Ww5paH5YyWIDwgaWJ1bmthXCA7CivmuoDpnaIgPCBtYW5tZW5cIDsKK+ernOmgrSA8IHJ5dXV6dVwgOwor5Zar6aOvIDwga2lwcGFuXCA7CivntKLlhbcgPCBzYWt1Z3VcIDsKK+ijj+advyA8IHVyYWl0YVwgOwor5omL6YWMIDwgdGVqYWt1XCA7Civmi5nogIUgPCBzZXNzaGFcIDsKK+egpiA8IHRvcmlkZVwgOwor6ZW35bqnIDwgY2hvdXphXCA7CivplonlsbEgPCBoZWl6YW5cIDsKK+WcsOaknCA8IGNoaWtlblwgOwor6ZaL5bCBIDwga2FpZnV1XCA7Civngq3lirQgPCB0YW5yb3VcIDsKK+e0lOWIhiA8IGp1bmJ1blwgOwor5Z2m5oeQIDwgdGFua2FpXCA7CivmuoDplosgPCBtYW5rYWlcIDsKK+e0r+S5lyA8IHJ1aWpvdVwgOwor5o6o5patIDwgc3VpZGFuXCA7CivmibnoqZUgPCBoaWh5b3VcIDsKK+aOiOalrSA8IGp1Z3lvdVwgOwor5L2N55u45beuIDwgaXNvdXNhXCA7CivntK/kuJYgPCBydWlzZWlcIDsKK+ihgOebuCA8IGtlc3NvdVwgOwor6KSH5bqnIDwgZnVrdXphXCA7Civmv4Pmt6EgPCBub3V0YW5cIDsKK+aJi+i7vSA8IHRlZ2FydVwgOwor5Zyo5qChIDwgemFpa291XCA7CivopKXlqaYgPCBqb2t1ZnVcIDsKK+mVt+WxiyA8IG5hZ2F5YVwgOwor6KGA55ewIDwga2V0dGFuXCA7Civplovlp4sgPCBrYWlzaGlcIDsKK+Wfn+WGhSA8IGlraW5haVwgOwor6ZW35a+/IDwgY2hvdWp1XCA7CivlnKjmnaUgPCB6YWlyYWlcIDsKK+ijgeaWrSA8IHNhaWRhblwgOwor55O8IDwgc2FyYWtlXCA7CivmipzokIMgPCBiYXNzdWlcIDsKK+e0m+S6iSA8IGZ1bnNvdVwgOwor5omL6LazIDwgdGVhc2hpXCA7CivlnKfmnI0gPCBhcHB1a3VcIDsKK+e0m+S5sSA8IGZ1bnJhblwgOwor5r2w55iNIDwga2FpeW91XCA7CivmjqjmjJkgPCBzdWlreW9cIDsKK+WbveavjSA8IGtva3Vib1wgOwor57KS5bqmIDwgcnl1dWRvXCA7CivlnLDmlocgPCBjaGltb25cIDsKK+iWlOiWh+WckiA8IGJhcmFlblwgOwor5ri46a2aIDwgeXV1Z3lvXCA7CivlnJ/mnKggPCBkb2Jva3VcIDsKK+exs+aHhyA8IGJlaWtvblwgOwor6Zaj5ZOhIDwga2FrdWluXCA7CivploDlpJYgPCBtb25nYWlcIDsKK+aNuuafkyA8IG5hc3NlblwgOwor5Z+O5YW1IDwgam91aGVpXCA7CivmvIHoiLkgPCBneW9zZW5cIDsKK+mBjua4oeacnyA8IGthdG9raVwgOwor6ZeH5YCkIDwgeWFtaW5lXCA7Civni7ggPCB0YW51a2lcIDsKK+aMgeeXhSA8IGppYnlvdVwgOwor6ZW35aWzIDwgY2hvdWpvXCA7Civlm73mqKkgPCBrb2trZW5cIDsKK+e0iuS5sSA8IGJ1bnJhblwgOwor5Zyf5pa5IDwgZG9rYXRhXCA7CivmiZPoqLogPCBkYXNoaW5cIDsKK+Wcp+aQviA8IGFzc2FrdVwgOwor5ryU57m5IDwgZW4nJ2VraVwgOwor6KOc5by3IDwgaG9reW91XCA7CivploDlnLAgPCBtb25jaGlcIDsKK+eri+mMkCA8IHJpc3N1aVwgOwor5ZaE6ZqjIDwgemVucmluXCA7CivmiKbou4ogPCBzZW5zaGFcIDsKK+aJi+iosSA8IHRlbW90b1wgOwor6KGw5q6LIDwgc3VpemFuXCA7CivnsonlsYsgPCBrb25heWFcIDsKK+aJgOirliA8IHNob3JvblwgOwor5Zuj5qySIDwgZGFucmFuXCA7CivmuoDovIkgPCBtYW5zYWlcIDsKK+WxheWgtOaJgCA8IGliYXNob1wgOwor5rqA6LuKIDwgbWFuc2hhXCA7CivlnKjmiYAgPCB6YWlzaG9cIDsKK+exs+W4nSA8IGJlaXRlaVwgOwor5Zad6YeHIDwga2Fzc2FpXCA7Civom67poqggPCBiYW5wdXVcIDsKK+aHh+mhmCA8IGtvbmdhblwgOwor562G6Ie0IDwgaGl0Y2hpXCA7Civlm7Pmn4QgPCB6dWdhcmFcIDsKK+aIiui+sCA8IGJvc2hpblwgOwor5Zu95pivIDwga29rdXplXCA7Civns57kvr8gPCBmdW5iZW5cIDsKK+mBleWSjOaEnyA8IGl3YWthblwgOwor5r2u54CsIDwgc2hpb3NlXCA7Civnq6Xosp4gPCBkb3V0ZWlcIDsKK+eqgemiqCA8IHRvcHB1dVwgOwor54Gr5YWIIDwgaG9zYWtpXCA7CivnsbPlsYsgPCBrb21leWFcIDsKK+eBq+WFgyA8IGhpbW90b1wgOwor5Zyw5b2iIDwgY2hpa2VpXCA7CivmuJogPCBuYWdpc2FcIDsKK+eyvuWLpCA8IHNlaWtpblwgOwor5oqc57O4IDwgYmFzc2hpXCA7CivnqbTppqwgPCBhbmF1bWFcIDsKK+eBq+WCtyA8IHlha2Vkb1wgOwor5ruF6I+MIDwgbWVra2luXCA7CivnlJ/olY7puqYgPCBraXNvYmFcIDsKK+ethuiAlSA8IGhpa2tvdVwgOwor6Y6u6K23IDwgY2hpbmdvXCA7Civom67pmrcgPCBiYW5yZWlcIDsKK+a2jiA8IHlvZGFyZVwgOwor562G6ICFIDwgaGlzc2hhXCA7CivlnKjlvbkgPCB6YWlla2lcIDsKK+WcsOW5syA8IGNoaWhlaVwgOwor5o6o5a6aIDwgc3VpdGVpXCA7CivllY/poYwgPCBtb25kYWlcIDsKK+mWgOWJjSA8IG1vbnplblwgOwor5Zub5qGBIDwgeW9rZXRhXCA7CivooYzmroogPCBneW91am9cIDsKK+epuumfsyA8IHNvcmFuZVwgOwor5Zyn5bu2IDwgYXRzdWVuXCA7CivploDlh7ogPCBrYWRvZGVcIDsKK+aOoeWvuCA8IHNhaXN1blwgOwor5om257+8IDwgZnV5b2t1XCA7CivmsYAgPCBtaWdpd2FcIDsKK+awtSA8IHNhbnp1aVwgOwor57Gg5bGFIDwgcm91a3lvXCA7Civmh7jou40gPCBrZW5ndW5cIDsKK+epuumbuyA8IGt1dWRlblwgOwor6KO95ZOBIDwgc2VpaGluXCA7CivnqbrpmpsgPCBrdXVzYWlcIDsKK+mNm+mMrCA8IHRhbnJlblwgOwor5Zu95oqAIDwga29rdWdpXCA7CivpjLLpn7MgPCByb2t1b25cIDsKK+aJgOiUtSA8IHNob3pvdVwgOwor6ZaL5LyaIDwga2Fpa2FpXCA7CivmvZ/muZYgPCBzZWtpa29cIDsKK+S4jeawl+WRsyA8IGJ1a2ltaVwgOwor5ZaJ6LyqIDwgbm9kb3dhXCA7CivmuIvpnaIgPCBqdXVtZW5cIDsKK+mWieS8miA8IGhlaWthaVwgOwor562G57SZIDwgaGlzc2hpXCA7CivnqbrplqggPCBrdXVrZWlcIDsKK+a8lOebriA8IGVubW9rdVwgOwor56m66ZaTIDwga3V1a2FuXCA7CivmqLUgPCBraWtvcmlcIDsKK+aoriA8IGhva3Vzb1wgOwor5omN6Iq4IDwgc2FpZ2VpXCA7CivopIfliKkgPCBmdWt1cmlcIDsKK+ijj+WjsCA8IHVyYWdvZVwgOwor5rue57SNIDwgdGFpbm91XCA7Civmi6DngrkgPCBreW90ZW5cIDsKK+aJi+iKuCA8IHNodWdlaVwgOwor5ris6YmbIDwgc29rdWVuXCA7CivlnKjlrpggPCB6YWlrYW5cIDsKK+WZtOeFmSA8IGZ1bicnZW5cIDsKK+allCA8IGt1c2FiaVwgOwor5ryC56CCIDwgaHlvdXNhXCA7CivploDkurogPCBtb25qaW5cIDsKK+akqiA8IGt1bnVnaVwgOwor562G566XIDwgaGlzc2FuXCA7Civlm73mgakgPCBrb2t1b25cIDsKK+aJjeiFlSA8IHNhaXdhblwgOwor5Zuw5oaKIDwga29ucGFpXCA7Civnr4DmsLQgPCBzZXNzdWlcIDsKK+ethuerryA8IGhpdHRhblwgOwor5omL6IWVIDwgc2h1d2FuXCA7CivmvZzmsLQgPCBzZW5zdWlcIDsKK+a/gOaAkiA8IGdla2lkb1wgOwor5omN6IO9IDwgc2Fpbm91XCA7CivpjZvpgKAgPCB0YW56b3VcIDsKK+agniA8IHNoaW9yaVwgOwor5Zyw5aSJIDwgY2hpaGVuXCA7CivooYDmoJMgPCBrZXNzZW5cIDsKK+aJi+iBtyA8IHRlam9rdVwgOwor56qT6L66IDwgbWFkb2JlXCA7CivooZPmlbAgPCBqdXNzdXVcIDsKK+adjiA8IHN1bW9tb1wgOwor5r+B5bqmIDwgZGFrdWRvXCA7CivlnKjlpKkgPCB6YWl0ZW5cIDsKK+WcqOWkliA8IHphaWdhaVwgOwor6KGA5pu4IDwga2Vzc2hvXCA7CivlnLDln58gPCBjaGlpa2lcIDsKK+aapiA8IGtveW9taVwgOwor5rib6YWNIDwgZ2VucGFpXCA7CivnqY3pm7IgPCBzZWtpdW5cIDsKK+aYtCA8IHN1YmFydVwgOwor5rqA6JKZIDwgbWFubW91XCA7CivlvqHmrbPmmq4gPCBvc2VpYm9cIDsKK+a8uOa4myA8IHplbmdlblwgOwor5ruR56m6IDwga2Fra3V1XCA7Civmt7HplpMgPCBmdWthbWFcIDsKK+ihgOaWkSA8IGtlcHBhblwgOwor56ia6bCkIDwgd2FyYXNhXCA7CivmuJvpgIAgPCBnZW50YWlcIDsKK+err+iJhyA8IHRhbnRlaVwgOwor5o6l5ZC7IDwgc2VwcHVuXCA7Civmi5jms6UgPCBrb3VkZWlcIDsKK+eti+ebriA8IHN1amltZVwgOwor56ia6a6OIDwgY2hpYXl1XCA7Civkuojlgpnlk6EgPCB5b2JpaW5cIDsKK+icpeictCA8IHRva2FnZVwgOwor5oud5q6/IDwgaGFpZGVuXCA7CivnqJrprZogPCBjaGlneW9cIDsKK+aYoOeUu+WMliA8IGVpZ2FrYVwgOwor5Zm05rC0IDwgZnVuc3VpXCA7CivmiYvntJkgPCB0ZWdhbWlcIDsKK+evhuabuCA8IHRlbnNob1wgOwor56iu6aGeIDwgc2h1cnVpXCA7CivmuIXphZIgPCBzZWlzaHVcIDsKK+eyieS9kyA8IGZ1bnRhaVwgOwor5ZWG6YGLIDwgc2hvdXVuXCA7Civnqbrou6IgPCBrdXV0ZW5cIDsKK+asp+WNsOiqniA8IG91aW5nb1wgOwor5Z2H5YiGIDwga2luYnVuXCA7Civmu4Xnp4EgPCBtZXNzaGlcIDsKK+epuui7jSA8IGt1dWd1blwgOwor56m66LuKIDwga3V1c2hhXCA7CivnsovkurogPCBzdWlqaW5cIDsKK+Wbs+ahiOWutiA8IHp1YW5rYVwgOwor5omL57GgIDwgdGVrYWdvXCA7CivmuoDohZQgPCBtYW5rb3VcIDsKK+aKq+eAnSA8IGhpcmVraVwgOwor5omL566xIDwgdGViYWtvXCA7CivmiYvnrqEgPCB0ZWt1ZGFcIDsKK+aJi+etiyA8IHRlc3VqaVwgOwor5omL562IIDwgdGVoYXp1XCA7CivmjJnmiYsgPCBreW9zaHVcIDsKK+aJliA8IGhhbWVydVwgOwor56qB6LKrIDwgdG9ra2FuXCA7Civnq7nnuIEgPCB0YWtlZW5cIDsKK+aOkuWNtSA8IGhhaXJhblwgOwor5rmv6IqxIDwgeXViYW5hXCA7Civmh4foq4sgPCBrb25zZWlcIDsKK+aHh+irhyA8IGtvbmRhblwgOwor5o2o5aC0IDwgc3V0ZWJhXCA7Civmua/oiLkgPCB5dWJ1bmVcIDsKK+ihhuaEmiA8IHNodXVndVwgOwor5oaWIDwgbmFtYWppXCA7Civmt7Hpg6ggPCBzaGluYnVcIDsKK+aIuOexjSA8IGtvc2VraVwgOwor56+A5pONIDwgc2Vzc291XCA7CivooqvlkYogPCBoaWtva3VcIDsKK+a7heebuCA8IG1lc3NvdVwgOwor56uv57eaIDwgdGFuc2VuXCA7Civnq6/nt5IgPCB0YW5jaG9cIDsKK+WcqOWLpCA8IHphaWtpblwgOwor5r2U5paOIDwga2Vzc2FpXCA7CivlnKfli50gPCBhc3Nob3VcIDsKK+a1t+m8oCA8IG5hbWFrb1wgOwor5o6l5Ly0IDwgc2VwcGFuXCA7Civnq7nnsIAgPCB0YWtlc3VcIDsKK+WcsOWFgyA8IGppbW90b1wgOwor5ray6Z2iIDwgZWtpbWVuXCA7Civom4fotrMgPCBkYXNva3VcIDsKK+WbveWcnyA8IGtva3Vkb1wgOwor5b+c5o+05q2MIDwgb3VlbmthXCA7Civnqbroq5YgPCBrdXVyb25cIDsKK+epuuirhyA8IGt1dWRhblwgOwor5b2gIDwga3V3YWt1XCA7CivmvIHmuK8gPCBneW9rb3VcIDsKK+aEm+mzpSA8IGFpY2hvdVwgOwor5buTIDwga3VydXdhXCA7CivooLHmg5EgPCBrb3dha3VcIDsKK+aOkuS+vyA8IGhhaWJlblwgOwor5Zu95Za2IDwga29rdWVpXCA7CivluZ8gPCBub2JvcmlcIDsKK+W5iSA8IHRhenVuYVwgOwor5ouu5o2uIDwga2lra3lvXCA7CivmjK/lrZAgPCBmdXJpa29cIDsKK+WZuOaVsCA8IHRvbnN1dVwgOwor5ryB5rOVIDwgZ3lvaG91XCA7Civlm6PloYogPCBkYW5rYWlcIDsKK+WcsOS7oyA8IGNoaWRhaVwgOwor5Zar57eKIDwga2lra2luXCA7CivmiYvnmZYgPCB0ZWt1c2VcIDsKK+mMr+iqpCA8IHNha3Vnb1wgOwor56iO6ZaiIDwgemVpa2FuXCA7CivltZAgPCBhcmFzaGlcIDsKK+a8geawkSA8IGd5b21pblwgOwor5Zyo5L2PIDwgemFpanV1XCA7CivomorpiaQgPCBrYWJhcmlcIDsKK+WcqOS7uyA8IHphaW5pblwgOwor5r2u5bmyIDwgc2hpb2hpXCA7CivmtbfprZogPCBrYWlneW9cIDsKK+eul+aVsCA8IHNhbnN1dVwgOwor5Zyf5L+1IDwgZG9oeW91XCA7CivlnJ/kv5cgPCBkb3pva3VcIDsKK+aJk+eQgyA8IGRha3l1dVwgOwor6by76Y+hIDwgYmlreW91XCA7CivmjojkubMgPCBqdW55dXVcIDsKK+a1t+mpoiA8IGFzaGlrYVwgOwor5ryr5paHIDwgbWFuYnVuXCA7CivooajlnJ8gPCBoeW91ZG9cIDsKK+WbveWLmSA8IGtva3VtdVwgOwor5oiR562JIDwgd2FyZXJhXCA7CivmjL3lm54gPCBiYW5rYWlcIDsKK+epuuiZmiA8IGt1dWt5b1wgOwor5Zyf5LitIDwgZG9jaHV1XCA7CivmiYDnlKMgPCBzaG9zYW5cIDsKK+WrnyA8IGppeXVrdVwgOwor6J6N54K5IDwgeXV1dGVuXCA7CivmvKLmlocgPCBrYW5idW5cIDsKK+aJi+eOiSA8IHRlZGFtYVwgOwor5Zaq56ugIDwgbW9zaG91XCA7Civlm6Plk6EgPCBkYW4nJ2luXCA7CivmiYvni60gPCB0ZXplbWFcIDsKK+WbveWFiSA8IGtva2tvdVwgOwor6YqA6bGXIDwgZ2lucmluXCA7CivpmL/omK3pmYAgPCBvcmFuZGFcIDsKK+WVk+iSmSA8IGtlaW1vdVwgOwor6KGG5aSaIDwgc2h1dXRhXCA7CivnqI7ph5EgPCB6ZWlraW5cIDsKK+m7kum1kCA8IGt1cm9qaVwgOwor6KCP5bqnIDwga2FuaXphXCA7CivmvIHmnZEgPCBneW9zb25cIDsKK+a1t+mboyA8IGthaW5hblwgOwor56m66I23IDwga2FyYW5pXCA7Civlm5vljYMgPCB5b25zZW5cIDsKK+Wbm+WNgSA8IHlvbmp1dVwgOwor5Zu95LyaIDwga29ra2FpXCA7CivlnLcgPCBha3V0c3VcIDsKK+Wbs+S9kyA8IHp1dXRhaVwgOwor566x5bGLIDwgaGFrb3lhXCA7Civmu4Xms5UgPCBtZXBwb3VcIDsKK+aKteaKlyA8IHRlaWtvdVwgOwor5r+B5LiWIDwgZGFrdXNlXCA7CivnhKHmhYjmgrIgPCBtdWppaGlcIDsKK+m9suidlSA8IHVzaG9rdVwgOwor6KGo5YW3IDwgaHlvdWd1XCA7CivmvIHmkoggPCBneW9yb3VcIDsKK+a4m+iAlyA8IGdlbm1vdVwgOwor6KGM5Y+4IDwgZ3lvdWppXCA7Civlj5foqbHlmaggPCBqdXdha2lcIDsKK+eqkue0oCA8IGNoaXNzb1wgOwor6Yut6KeSIDwgZWlrYWt1XCA7Civnp5jpjLIgPCBoaXJva3VcIDsKK+e/u+i7iumtmiA8IG1hbmJvdVwgOwor5LiN5Ye65p2lIDwgZnVkZWtpXCA7CivoobDkuqEgPCBzdWlib3VcIDsKK+ernOeOiyA8IHJ5dXVvdVwgOwor5Zm05bCEIDwgZnVuc2hhXCA7CivlkI4gPCBraXNha2lcIDsKK+WVj+e9qiA8IG1vbnphaVwgOwor6ZuR6a2a5a+dIDwgemFrb25lXCA7CivljqAgPCBrYXdheWFcIDsKK+ibh+iFuSA8IGphYmFyYVwgOwor5LyK5aSq5YipIDwgaXRhcmlpXCA7CivmiYvmsLQgPCB0ZW1penVcIDsKK+aEm+mDtyA8IGFpa3lvdVwgOwor6aWC6aOp57KJIDwgdWRvbmtvXCA7CivmiYvmr6wgPCB0ZW1hcmlcIDsKK+aKmOaKmCA8IG9yaW9yaVwgOwor5rmv546JIDwgeXVkYW1hXCA7CivmjJnli5UgPCBreW9kb3VcIDsKK+a1gemfsyA8IHJ5dXVvblwgOwor5omL5q61IDwgc2h1ZGFuXCA7CivmtYHpnLIgPCByeXV1cm9cIDsKK+aKiuaNiSA8IGhhc29rdVwgOwor5rWB6ZuiIDwgcnl1dXJpXCA7CivpvKDos4ogPCBzb3pva3VcIDsKK+eUmOa1t+iAgSA8IGFtYWViaVwgOwor5oyZ5YW1IDwga3lvaGVpXCA7CivmuKnnqoEgPCBvbmRvcnVcIDsKK+aJi+apnyA8IHRlYmF0YVwgOwor5YWcIDwga2FidXRvXCA7Civmi7fllY8gPCBnb3Vtb25cIDsKK+iejeaclyA8IHl1dXJvdVwgOwor6bq66aGeIDwgbWVucnVpXCA7CivmuJvnrpcgPCBnZW56YW5cIDsKK+aJi+alrSA8IHRld2F6YVwgOwor5ry45aKXIDwgemVuem91XCA7Civmtbfou40gPCBrYWlndW5cIDsKK+a2iOiyuyA8IHNob3VoaVwgOwor5rWq6YCfIDwgbmFuaXdhXCA7CivpioDpibEgPCBnaW5rb3VcIDsKK+WVj+etlCA8IG1vbmRvdVwgOwor5ZC56bO0IDwgc3VpbWVpXCA7CivnrYbmiY0gPCBoaXNzYWlcIDsKK+mKgOmItCA8IGdpbnJlaVwgOwor5riF57SUIDwgc2VpanVuXCA7CivnrYbmiKYgPCBoaXNzZW5cIDsKK+Wwj+mmrOm5vyA8IGtvYmFrYVwgOwor6Jma6KqVIDwga3lvdGFuXCA7Civmt4voj4wgPCByaW5raW5cIDsKK+a4m+eojiA8IGdlbnplaVwgOwor562W5b+cIDwgc2FrdW91XCA7CivnqbrnqbogPCBrdXVrdXVcIDsKK+ertuatqSA8IGt5b3Vob1wgOwor5rip55+zIDwgb25qYWt1XCA7CivomZroqIAgPCBreW9nZW5cIDsKK+aJi+afhCA8IHRlZ2FyYVwgOwor5omL5p63IDwgdGVrYXNlXCA7Civmt7fnt5ogPCBrb25zZW5cIDsKK+S7hyA8IGthdGFraVwgOwor562G5oSPIDwgaGl0c3VpXCA7CivmiYvmnK0gPCB0ZWZ1ZGFcIDsKK+W+oeiPk+WtkCA8IG9rYXNoaVwgOwor562U5byBIDwgdG91YmVuXCA7CivmtJfpoZQgPCBzZW5nYW5cIDsKK+a1nOi+uiA8IGhhbWFiZVwgOwor6buS6YmbIDwga29rdWVuXCA7CivmuoDmsLQgPCBtYW5zdWlcIDsKK+aIuOajmiA8IHRvZGFuYVwgOwor6byO6KuHIDwgdGVpZGFuXCA7Civmub/msJcgPCBzaGlra2VcIDsKK+aIkea1gSA8IGdhcnl1dVwgOwor5oKq6aKoIDwgYWt1ZnV1XCA7CivmtJfpnaIgPCBzZW5tZW5cIDsKK+a0i+miqCA8IHlvdWZ1dVwgOwor56m656CyIDwga3V1aG91XCA7CivmvZzlg48gPCBzZW56b3VcIDsKK+aEm+iqrSA8IGFpZG9rdVwgOwor5omA5pybIDwgc2hvbW91XCA7CivmiYDmnIkgPCBzaG95dXVcIDsKK+m7kumFkiA8IGt1cm9raVwgOwor5omT5pKyIDwgZGFib2t1XCA7CivnpoXploAgPCB6ZW5tb25cIDsKK+aJk+aSgyA8IGRhZ2VraVwgOwor5LiJ55+l5ZyfIDwgdGF0YWtpXCA7CivmtJ7ploAgPCBkb3Vtb25cIDsKK+WQuOmjsiA8IGt5dXVpblwgOwor56m655uuIDwgc29yYW1lXCA7Civmua/msLQgPCB5dW1penVcIDsKK+aCqumciiA8IGFrdXJlaVwgOwor5omL5pG6IDwgdGVzdXJpXCA7Civnr4DkvJogPCBzZWNoaWVcIDsKK+aIkeassiA8IGdheW9rdVwgOwor5rmv5q6/IDwgeXVkb25vXCA7Civnq6/moKogPCBoYWthYnVcIDsKK+a5p+awtCA8IHl1dXN1aVwgOwor5Za25qWtIDwgZWlneW91XCA7CivmuJvnlKMgPCBnZW5zYW5cIDsKK+izk+S9jeiqniA8IGhpbmlnb1wgOwor5omL5outIDwgdGVmdWtpXCA7CivlkLnpm6ogPCBmdWJ1a2lcIDsKK+a6uuaEmyA8IGRla2lhaVwgOwor562L5a2QIDwgc3VqaWtvXCA7CivpiYTpi7wgPCB0ZWtrb3VcIDsKK+aCjOmghiA8IHRlaWp1blwgOwor5rSX6YysIDwgc2VucmVuXCA7CivmuoDmna8gPCBtYW5wYWlcIDsKK+iWrOmkjCA8IHlha3VqaVwgOwor56aP6YGLIDwgZnVrdXVuXCA7CivmkanojqvmnrMgPCBtYW1ha2lcIDsKK+iWq+miqCA8IGt1bnB1dVwgOwor6Yyy55S7IDwgcm9rdWdhXCA7CivmvIblmaggPCBzaGlra2lcIDsKK+a1hOiyoSA8IGpvdXphaVwgOwor6JmO6JC9IDwgbW9nYXJpXCA7CivmuKnngbggPCBvbmt5dXVcIDsKK+aCqumKrSA8IGFrdXNlblwgOwor5ZCN6aaZIDwgbWVpa291XCA7CivlkozoqLMgPCB3YXlha3VcIDsKK+a2meiFuiA8IHJ1aXNlblwgOwor5oqx5Y21IDwgaG91cmFuXCA7CivmiZXlupUgPCBmdXR0ZWlcIDsKK+a0i+mKgCA8IHlvdWdpblwgOwor6Y6u5pKrIDwgY2hpbmJ1XCA7CivllqrmnI0gPCBtb2Z1a3VcIDsKK+WSjOimqiA8IHdhc2hpblwgOwor5omL5b25IDwgdGV5YWt1XCA7CivpioDoo70gPCBnaW5zZWlcIDsKK+m7meiosSA8IG1va2t5b1wgOwor5omL5b2iIDwgdGVnYXRhXCA7CivmiZPluK0gPCBkYXNla2lcIDsKK+iWq+mZtiA8IGt1bnRvdVwgOwor5omL5byVIDwgdGViaWtpXCA7CivmuL7msowgPCBrb250b25cIDsKK+a8lOWKhyA8IGVuZ2VraVwgOwor56aB6Ly4IDwga2luJyd5dVwgOwor5rWu6JaEIDwgZnVoYWt1XCA7CivlkIzpoZ4gPCBkb3VydWlcIDsKK+a0i+mFkiA8IHlvdXNodVwgOwor5omL5bizIDwgdGVjaG91XCA7CivmiJDmlZcgPCBzZWliYWlcIDsKK+iZmuiBniA8IGt5b2J1blwgOwor6YiN6ZaTIDwgbm9yb21hXCA7Civph53prZogPCBoYXJpeW9cIDsKK+azoumWkyA8IG5hbWltYVwgOwor6byT6IacIDwga29tYWt1XCA7CivmhqvnhLYgPCBiaW56ZW5cIDsKK+aCqumBkyA8IGFrdWRvdVwgOwor5rOi6ZW3IDwgaGFjaG91XCA7CivpvJPohbkgPCBrb2Z1a3VcIDsKK+azlemboyA8IGhvdW5hblwgOwor5rK46aiwIDwgZnV0dG91XCA7CivnrKDlrZAgPCBrYXNhZ29cIDsKK+a0u+ioiCA8IGtha2tlaVwgOwor5rue5ZyoIDwgdGFpemFpXCA7CivmuKHmuIkgPCB0b3Nob3VcIDsKK+mHkemtmiA8IGtpbmd5b1wgOwor6YqY6Iy2IDwgbWVpY2hhXCA7Civnp4HolLUgPCBzaGl6b3VcIDsKK+WRs+immiA8IG1pa2FrdVwgOwor6b6V54GvIDwgZ2FuZG91XCA7Civpu7Toj4wgPCBiYWlraW5cIDsKK+aKnOWJoyA8IGJha2tlblwgOwor5ZaE5qC5IDwgemVua29uXCA7CivlkI3ploAgPCBtZWltb25cIDsKK+epuua4ryA8IGt1dWtvdVwgOwor6YyY54q2IDwgc3Vpam91XCA7CivmurblqpIgPCB5b3ViYWlcIDsKK+ayv+mdqSA8IGVua2FrdVwgOwor5bCP55m+5ZCIIDwgc2F5dXJpXCA7Civnq6/lvbkgPCBoYXlha3VcIDsKK+WRiei2iiA8IGdvZXRzdVwgOwor5re354S2IDwga29uemVuXCA7CivnrYvlkIggPCBzdWppYWlcIDsKK+a4m+azlSA8IGdlbnBvdVwgOwor56m65rSeIDwga3V1ZG91XCA7CivmupDlubMgPCBnZW5wZWlcIDsKK+WQjemRkSA8IG1laWthblwgOwor6YeO6aeSIDwgbm9nb21hXCA7Civmta7ohasgPCBtdWt1bWlcIDsKK+m6u+ijjyA8IGFzYXVyYVwgOwor56iu55eYIDwgc2h1dG91XCA7CivpiI3ph40gPCBkb25qdXVcIDsKK+aJgOWumiA8IHNob3RlaVwgOwor5raZ566hIDwgcnVpa2FuXCA7CivmiYDlrZggPCBzaG96b25cIDsKK+azpemFlCA8IGRlaXN1aVwgOwor5rib5q66IDwgZ2Vuc2FpXCA7CivmuJvmrrUgPCBnZW50YW5cIDsKK+mOruW6pyA8IGNoaW56YVwgOwor5ZCI6Y21IDwgYWlrYWdpXCA7Civnq4vmhrIgPCByaWtrZW5cIDsKK+ekvOmHkSA8IHJlaWtpblwgOwor5rqA5bmyIDwgbWFua2FuXCA7Civnpr3oiI4gPCBraW5zaGFcIDsKK+WRiuirrSA8IGtva3V5dVwgOwor56m65qyEIDwga3V1cmFuXCA7CivmsqHpoK0gPCBib3R0b3VcIDsKK+WPpembhiA8IGt1c2h1dVwgOwor5omL5aGpIDwgdGVzaGlvXCA7Civmub/luIMgPCBzaGlwcHVcIDsKK+err+WxsSA8IGhheWFtYVwgOwor56uc5bqnIDwgcnl1dXphXCA7CivpiYToo70gPCB0ZXNzZWlcIDsKK+WPl+mgmCA8IGp1cnlvdVwgOwor5riH5rC0IDwga2Fzc3VpXCA7Civng4/luL3lrZAgPCBlYm9zaGlcIDsKK+WQiOmHkSA8IGdvdWtpblwgOwor5re35reGIDwga29ua291XCA7Civlk4HnrYkgPCBoaW50b3VcIDsKK+aCquiogCA8IGFrdWdlblwgOwor5Zac5oKmIDwga2lldHN1XCA7CivpvJPnrJsgPCBrb3Rla2lcIDsKK+m6u+iWrCA8IG1heWFrdVwgOwor56uv5a2QIDwgdGFuc2hpXCA7CivomZrnpLwgPCBreW9yZWlcIDsKK+iejeWQiCA8IHl1dWdvdVwgOwor5ZCM6YKmIDwgZG91aG91XCA7Civmh4fmm7ggPCBrb25zaG9cIDsKK+a5vuWyuCA8IHdhbmdhblwgOwor5rqA5bGxIDwgbWFuemFuXCA7CivmiY3lmbggPCBzYWl0b25cIDsKK+eosueGsSA8IGltb2NoaVwgOwor6Y6u5a6IIDwgY2hpbmp1XCA7Civlk4HnqK4gPCBoaW5zaHVcIDsKK+m7hOiPiiA8IGtpZ2lrdVwgOwor5oSa562WIDwgZ3VzYWt1XCA7CivlkITpg6ggPCBrYWt1YnVcIDsKK+ellueItuavjSA8IHNvZnVib1wgOwor5rOi6LevIDwgbmFtaWppXCA7Civlj43pnaIgPCBoYW5tZW5cIDsKK+WNgeWFreWknCA8IGl6YXlvaVwgOwor5omA5ZyoIDwgc2hvemFpXCA7CivmgqrooYAgPCBva2V0c3VcIDsKK+aFqOeEtiA8IGdhaXplblwgOwor56u25aOyIDwga2VpYmFpXCA7Civol7vojYkgPCBtb2d1c2FcIDsKK+enu+edgCA8IGljaGFrdVwgOwor56Wd6KmeIDwgbm9yaXRvXCA7CivlkIzovKkgPCBkb3VoYWlcIDsKK+aApemgiCA8IGt5dXVzdVwgOwor56eY562WIDwgaGlzYWt1XCA7Civmtojno6ggPCBzaG91bWFcIDsKK+aGjuawlyA8IG5pa3VnZVwgOwor5ZCM6LuKIDwgZG91c2hhXCA7CivmuZblv4MgPCBrb3NoaW5cIDsKK+eorueBqyA8IHRhbmViaVwgOwor5omL5ZOBIDwgdGVqaW5hXCA7CivmiJHlrrYgPCB3YWdheWFcIDsKK+epuuabuSA8IGt1dXNvdVwgOwor6L+C5Zue6LevIDwgdWthaXJvXCA7CivmiY3lkI0gPCBzYWltZWlcIDsKK+ekvuizkyA8IHNoYWhpblwgOwor5ray54q2IDwgZWtpam91XCA7CivopaTopLjlrrYgPCBib3JveWFcIDsKK+aBtei0iCA8IGtlaXpvdVwgOwor56S86LObIDwgcmFpc2FuXCA7CivnqYLms6IgPCBob25hbWlcIDsKK+mPpOWIuyA8IHJ1a29rdVwgOwor6YeR6YqAIDwga2luZ2luXCA7CivpioDntYwgPCBnaW5rZWlcIDsKK+WSjOe2tCA8IHdhdG9qaVwgOwor6Z2S57Sr6JiHIDwgYW9qaXNvXCA7Civnt5HllYTmnKjps6UgPCBhb2dlcmFcIDsKK+mKgOezuCA8IGdpbnNoaVwgOwor5reh5rC0IDwgdGFuc3VpXCA7CivnqbrmlocgPCBrdXVidW5cIDsKK+WQn+ipoCA8IGdpbicnZWlcIDsKK+mKgOeyiSA8IGdpbnB1blwgOwor5oem5byxIDwgZGFqYWt1XCA7Civmga3os4AgPCBreW91Z2FcIDsKK+WNtem7hCA8IHJhbicnb3VcIDsKK+a6gOWhgSA8IG1hbnJ1aVwgOwor5oGp6LOeIDwgb25zaG91XCA7CivmsLTpu70gPCBhbWVuYm9cIDsKK+WTgOeXmyA8IGFpdHN1dVwgOwor6bqm6Iq9IDwgYmFrdWdhXCA7Civlj7Dou4ogPCBkYWlzaGFcIDsKK+WTgeeVqiA8IGhpbmJhblwgOwor5omL5YaZIDwgc2h1c2hhXCA7Civms5Xoq5YgPCBob3Vyb25cIDsKK+aJi+WFiCA8IHRlc2FraVwgOwor5oGp6K6QIDwgb25zaHV1XCA7Civljp/pn7MgPCBnZW4nJ29uXCA7CivnqbrmjLogPCBrdXV0ZWlcIDsKK+mIjeihjCA8IGRvbmtvdVwgOwor5omL5YK3IDwgdGVraXp1XCA7Civnqbrmi7MgPCBrdXVrZW5cIDsKK+mHnei3ryA8IHNoaW5yb1wgOwor5ZCM6KiTIDwgZG91a3VuXCA7Civph5HovKogPCBrYW5hd2FcIDsKK+ayoui+uiA8IHNhd2FiZVwgOwor6byI55SyIDwgYmVra291XCA7CivnqbrmiYsgPCBrYXJhdGVcIDsKK+ekvOijhSA8IHJlaXNvdVwgOwor56m65omAIDwga3V1c2hvXCA7Civlv7XpoZggPCBuZW5nYW5cIDsKK+WQiOioiCA8IGdvdWtlaVwgOwor6bq757mUIDwgYXNhb3JpXCA7CivlkarnuJsgPCBqdWJha3VcIDsKK+epuuaIpiA8IGt1dXNlblwgOwor5oWo5q2OIDwgZ2FpdGFuXCA7Civlv7XpoK0gPCBuZW50b3VcIDsKK+enkeeZvSA8IHNlcmlmdVwgOwor6Jau6JqKIDwgeWFidWthXCA7CivmuoDlk6EgPCBtYW4nJ2luXCA7Civlj5vou40gPCBoYW5ndW5cIDsKK+m7hOeyiSA8IGtpbmFrb1wgOwor6Y6W5Zu9IDwgc2Frb2t1XCA7CivmhIHnnIkgPCBzaHV1YmlcIDsKK+m6u+e1siA8IGFzYWl0b1wgOwor5omN5Lq6IDwgc2FpamluXCA7CivlkIzoob4gPCBkb3VraW5cIDsKK+eri+WcsCA8IHJpdGNoaVwgOwor6buS56mCIDwga3Vyb2JvXCA7Civmg4Xnt5IgPCBqb3VjaG9cIDsKK+ayg+mHjiA8IHlva3V5YVwgOwor5oSb54yrIDwgYWlieW91XCA7CivphrjpgKAgPCBqb3V6b3VcIDsKK+a5vuWPoyA8IHdhbmtvdVwgOwor6YqD55y8IDwganV1Z2FuXCA7Civnq6Dlj6UgPCBzaG91a3VcIDsKK+aGtuW/tSA8IG9rdW5lblwgOwor5oim5YmNIDwgc2VuemVuXCA7CivpuJ7ovL8gPCByYW4nJ3lvXCA7CivmhqfmhqwgPCBkb3VrZWlcIDsKK+a2suaxgSA8IGVraWp1dVwgOwor5oak5oejIDwgZnVubWFuXCA7Civlj6/oqq0gPCBrYWRva3VcIDsKK+aHuOWegiA8IGtlbnN1aVwgOwor56iO5rOVIDwgemVpaG91XCA7CivljrPph40gPCBnZW5qdXVcIDsKK+mKgOebpCA8IGdpbmJhblwgOwor5Y+L6LuNIDwgeXV1Z3VuXCA7CivlkoznnaYgPCB3YWJva3VcIDsKK+mKgOebgyA8IGdpbnBhaVwgOwor5oak5oWoIDwgZnVuZ2FpXCA7CivpiYTnt5ogPCB0ZXNzZW5cIDsKK+m8u+avmyA8IGhhbmFnZVwgOwor5Y+j6Kq/IDwga3VjaG91XCA7Civnq6/lgKogPCB0YW5nZWlcIDsKK+mHkeirhyA8IGtpbmRhblwgOwor5Y+k6Ki7IDwga29jaHV1XCA7CivmtYHnn7MgPCBzYXN1Z2FcIDsKK+mJhOeyiSA8IHRlcHB1blwgOwor6bqm57KJIDwgbXVnaWtvXCA7Civmt7HmiYsgPCBmdWthZGVcIDsKK+m7kuebriA8IGt1cm9tZVwgOwor5oaQ5oarIDwgcmVuYmluXCA7Civljp/ph44gPCBnZW4nJ3lhXCA7Civlj5foq74gPCBqdWRha3VcIDsKK+awl+mssSA8IGtpdXRzdVwgOwor6Jas6IiXIDwgeWFrdWhvXCA7CivlkI3okZcgPCBtZWljaG9cIDsKK+mJhOeuoSA8IHRla2thblwgOwor6YeN6KiAIDwganV1Z29uXCA7CivmsLfpnKcgPCBoeW91bXVcIDsKK+mHkeiltCA8IGtpbnJhblwgOwor5rC06Z2iIDwgbWlub21vXCA7Civnpo3npo8gPCBrYWZ1a3VcIDsKK+awt+mbqCA8IGhpc2FtZVwgOwor6YmE562LIDwgdGVra2luXCA7CivphZTpoZQgPCBzdWlnYW5cIDsKK+WQiOiRlyA8IGdvdWNob1wgOwor56a9542jIDwga2luanV1XCA7CivmsLTpm7cgPCBzdWlyYWlcIDsKK+WPl+iouyA8IGp1Y2h1dVwgOwor5rC06ZujIDwgc3VpbmFuXCA7CivlkJvoh6ggPCBrdW5yaW5cIDsKK+WPl+iolyA8IGp1dGFrdVwgOwor5oim5LmxIDwgc2VucmFuXCA7CivkuI3lhbflkIggPCBmdWd1YWlcIDsKK+WVj+WxiyA8IHRvbicneWFcIDsKK+mJhOeqkyA8IHRlc3NvdVwgOwor5oWn5pWPIDwga2VpYmluXCA7Civom4fluqcgPCBoZWJpemFcIDsKK+a5r+WFgyA8IHl1bW90b1wgOwor6by75qKBIDwgYmlyeW91XCA7Civlj43oq5YgPCBoYW5yb25cIDsKK+WWnOWKhyA8IGtpZ2VraVwgOwor5oaC5oakIDwgeXV1ZnVuXCA7CivmhJ/mtpkgPCBrYW5ydWlcIDsKK+eptOWxhSA8IGtla2t5b1wgOwor56uL5YasIDwgcml0dG91XCA7CivmhoLmha4gPCB5dXVyeW9cIDsKK+WSjOeLrCA8IHdhZG9rdVwgOwor6YeR6J2/IDwga2luYmFlXCA7CivmsLTploAgPCBzdWltb25cIDsKK+WWhOWTiSA8IHplbnphaVwgOwor5Y2Y6Z+zIDwgdGFuJydvblwgOwor6Ymb55m9IDwgZW5wYWt1XCA7Civlj4LorIAgPCBzYW5ib3VcIDsKK+aGguaCtiA8IHl1dW1vblwgOwor6by75pyoIDwgaGFuYWdpXCA7CivlkozniZsgPCB3YWd5dXVcIDsKK+iWhOiRiSA8IHVzdXlvdVwgOwor5ZSQ5oi4IDwga2FyYWRvXCA7CivlkIjoh7QgPCBnYXRjaGlcIDsKK+WNl+mdoiA8IG5hbm1lblwgOwor5rW35rWcIDwga2FpaGluXCA7CivmsJHpoqggPCBtaW5wdXVcIDsKK+aCqueojiA8IGFrdXplaVwgOwor5ZC5566hIDwgc3Vpa2FuXCA7CivpiYTnoLIgPCB0ZXBwb3VcIDsKK+WQhOiHqiA8IGtha3VqaVwgOwor6bq755a5IDwgbWFzaGluXCA7CivllqfkvJ0gPCBrZW5kZW5cIDsKK+iWhOiMtiA8IHVzdWNoYVwgOwor5Y2X6ZqFIDwgbmFuZ3V1XCA7CivmgqrnpZ4gPCBha3VqaW5cIDsKK+eri+S9kyA8IHJpdHRhaVwgOwor5Y2K6Z+zIDwgaGFuJydvblwgOwor5Y2X6ZmQIDwgbmFuZ2VuXCA7CivnqoHloKQgPCB0b3R0ZWlcIDsKK+WWquS4rSA8IG1vY2h1dVwgOwor5rib5aGpIDwgZ2VuJydlblwgOwor5ril5ZywIDwgYWt1Y2hpXCA7Civmt6HlvakgPCB0YW5zYWlcIDsKK+a1t+awtCA8IGthaXN1aVwgOwor5rWu5rWBIDwgZnVyeXV1XCA7Civph5HolLUgPCBraW56b3VcIDsKK+aEm+assiA8IGFpeW9rdVwgOwor5Y6z6KuHIDwgZ2VuZGFuXCA7CivoloToibIgPCB1c3Vpcm9cIDsKK+elreekvCA8IHNhaXJlaVwgOwor55+l5oG15q2vIDwgY2hpZWJhXCA7CivomZrmoLkgPCBreW9rb25cIDsKK+W+rumchyA8IGJpc2hpblwgOwor6YWp6YWKIDwgbWVpdGVpXCA7CivlkIznvaogPCBkb3V6YWlcIDsKK+a1ruayiCA8IGZ1Y2hpblwgOwor5rC06YqAIDwgc3VpZ2luXCA7CivlvqHpoYwgPCBneW9kYWlcIDsKK+WTgOalvSA8IGFpcmFrdVwgOwor56m65Z+fIDwga3V1aWtpXCA7CivpioDmvKIgPCBnaW5rYW5cIDsKK+a3seWxsSA8IG1peWFtYVwgOwor6YeO6JKcIDwgbm9iaXJ1XCA7CivmtLvniYggPCBrYXBwYW5cIDsKK+awl+mVtyA8IGtpbmFnYVwgOwor56m65ZywIDwgYWtpY2hpXCA7CivmhJvmpb0gPCBhaWd5b3VcIDsKK+mHjuiPiiA8IG5vZ2lrdVwgOwor5rCR6ZaTIDwgbWlua2FuXCA7Civmgqrnm7ggPCBha3Vzb3VcIDsKK+W+oemciiA8IG1pdGFtYVwgOwor5rOV57ayIDwgaG91bW91XCA7CivmgrLnl5sgPCBoaXRzdXVcIDsKK+m6pueUsCA8IG11Z2l0YVwgOwor5rC06YO3IDwgc3VpZ291XCA7CivlkIjnuYogPCBnb3VzZW5cIDsKK+S4jei1t+iotCA8IGZ1a2lzb1wgOwor5oWi5oCnIDwgbWFuc2VpXCA7CivlkJHnsbMgPCBrb3ViZWlcIDsKK+mKgOazpSA8IGdpbmRlaVwgOwor6Jma5pWwIDwga3lvc3V1XCA7CivmgqrnlqsgPCBha3Vla2lcIDsKK+awtOi+uiA8IG1penViZVwgOwor56if5oCnIDwgaGluc2VpXCA7CivpjZvlhrYgPCB0YW4nJ3lhXCA7CivmgqrnlKggPCBha3V5b3VcIDsKK+aEiealvSA8IHl1cmFrdVwgOwor54Sh5Yy75p2RIDwgbXVpc29uXCA7CivmsLTou4ogPCBzdWlzaGFcIDsKK+iZjuaWkSA8IHRvcmFmdVwgOwor5b6M6ZujIDwga291bmFuXCA7CivnqbrlkI0gPCBrdXVtZWlcIDsKK+mMpuWcsCA8IGtpbmNoaVwgOwor6by75oGvIDwgYmlzb2t1XCA7CivmgqrnkIMgPCBha2t5dXVcIDsKK+WQiOeulyA8IGdhc3NhblwgOwor5rW35pyIIDwga3VyYWdlXCA7CivllJDlrZAgPCBrYXJha29cIDsKK+a1gea0viA8IHJ5dXVoYVwgOwor6JaE57SXIDwgaGFrdXNhXCA7Civmt7flnKggPCBrb256YWlcIDsKK+WQjOeqkyA8IGRvdXNvdVwgOwor6YqY5p2/IDwgbWVpYmFuXCA7CivmsrnntbUgPCBhYnVyYWVcIDsKK+WNiumHkSA8IGhhbmtpblwgOwor5q+b6aCtIDwgbW91dG91XCA7CivlkIznqK4gPCBkb3VzaHVcIDsKK+mHjee9qiA8IGp1dXphaVwgOwor6YWi6LGaIDwgc3VidXRhXCA7CivljYPpiJ4gPCBzZW5raW5cIDsKK+epuuWJjSA8IGt1dXplblwgOwor5b+c6Ku+IDwgb3VkYWt1XCA7CivmuJvlhY0gPCBnZW5tZW5cIDsKK+awkemBuCA8IG1pbnNlblwgOwor56m65Ya3IDwga3V1cmVpXCA7Civmg5rmsJcgPCBub3Jva2VcIDsKK+WSjOalvSA8IHdhcmFrdVwgOwor5oCq6IWVIDwga2Fpd2FuXCA7CivlkIjnpa0gPCBnb3VzYWlcIDsKK+WVhuWLmSA8IHNob3VtdVwgOwor5oKq54axIDwgYW5ldHN1XCA7Civpu4TmsLQgPCBraW1penVcIDsKK+WPo+e1tSA8IGt1Y2hpZVwgOwor5b6h6YWMIDwgb3NoYWt1XCA7CivmsJfou70gPCBraWdhcnVcIDsKK+aenOaoueWckiA8IGthanVlblwgOwor5rW35pCNIDwga2Fpc29uXCA7Civmha7lpJYgPCByeW9nYWlcIDsKK+mFkuixqiA8IHNodWdvdVwgOwor5Y2K6LyqIDwgaGFucmluXCA7Civph5HnsokgPCBraW5wdW5cIDsKK+W9k+mnhSA8IHRvdWVraVwgOwor5b6h6YGKIDwgZ3lveXV1XCA7Civms5Xnm7ggPCBob3Nzb3VcIDsKK+a3seWRsyA8IGZ1a2FtaVwgOwor5Y6f6JGXIDwgZ2VuY2hvXCA7Civpuqbmua8gPCBtdWdpeXVcIDsKK+WQjOebnyA8IGRvdW1laVwgOwor5rSq5rC0IDwga291enVpXCA7Civlk4DmhIEgPCBhaXNodXVcIDsKK+WQieebuCA8IGtpc3NvdVwgOwor56m65Ly8IDwgc29yYW5pXCA7CivlkozmnI0gPCB3YWZ1a3VcIDsKK+W+oei7ouWphiA8IG90ZW5iYVwgOwor6Jas55CGIDwgeWFrdXJpXCA7Civlvozph5EgPCBhdG9raW5cIDsKK+m5teeNsiA8IHJva2FrdVwgOwor5ZG95qC5IDwgbWVpa29uXCA7CivpjKDliY0gPCBqb3VtYWVcIDsKK+WQjeeUoyA8IG1laXNhblwgOwor5oSb5oGvIDwgYWlzb2t1XCA7Civms6XnirYgPCBkZWlqb3VcIDsKK+W/heimiyA8IGhpa2tlblwgOwor5Y+N57GzIDwgaGFuYmVpXCA7CivnoLTpj6EgPCBoYWt5b3VcIDsKK+mHjeeojiA8IGp1dXplaVwgOwor6YWi6Ju4IDwgc3VkYWtvXCA7Civlj6LnpaAgPCBob2tvcmFcIDsKK+W+k+i7jSA8IGp1dWd1blwgOwor5q+b6YiOIDwga2ViYXJpXCA7Civpg6jplbcgPCBidWNob3VcIDsKK+aDqOaVlyA8IHphbnBhaVwgOwor5oKq5rOVIDwgYWt1aG91XCA7Civlj7Pnm64gPCBtaWdpbWVcIDsKK+W/heihsCA8IGhpc3N1aVwgOwor5q2v6buSIDwgaGFndXJvXCA7CivmsJHoq5YgPCBtaW5yb25cIDsKK+WPguexoCA8IHNhbnJvdVwgOwor5oKq5rC0IDwgYWt1c3VpXCA7CivmhInmgqYgPCB5dWV0c3VcIDsKK+mHneebriA8IGhhcmltZVwgOwor5YyX6YOoIDwgaG9rdWJ1XCA7CivmgqrmsJcgPCB3YXJ1Z2lcIDsKK+efoumxiCA8IHlhdGFyYVwgOwor56SO55+zIDwgc29zZWtpXCA7CivmtbTlvowgPCB5b2t1Z29cIDsKK+WNk+imiyA8IHRha2tlblwgOwor5ZG95pWwIDwgbWVpc3V1XCA7CivmrovpqrggPCB6YW5nYWlcIDsKK+miqOWRguWxiyA8IGZ1cm95YVwgOwor5rOl54KtIDwgZGVpdGFuXCA7CivlkI3nirYgPCBtZWlqb3VcIDsKK+iRm+mkoSA8IGt1enVhblwgOwor5rK855SwIDwgbnVtYWRhXCA7Civnpa3mrr8gPCBzYWlkZW5cIDsKK+egsumHkSA8IGhvdWtpblwgOwor5Y+k552AIDwgZnVydWdpXCA7CivpioDmiYcgPCBnaW5zZW5cIDsKK+mHjeefsyA8IG9tb3NoaVwgOwor5by36Z+zIDwga3lvdW9uXCA7CivmsZrogbcgPCBvc2hva3VcIDsKK+a3t+S5sSA8IGtvbnJhblwgOwor6YeR55uuIDwga2FuZW1lXCA7CivmhI/lkbPoq5YgPCBpbWlyb25cIDsKK+eglOmRvSA8IGtlbnNhblwgOwor5byx6Z+zIDwgeW93YW5lXCA7Civmrovpo68gPCB6YW5wYW5cIDsKK+awtOiRrCA8IHN1aXNvdVwgOwor5Y2K6KOBIDwgaGFuc2FpXCA7CivllK/kuIAgPCB5dWl0c3VcIDsKK+eEoemCquawlyA8IG11amFraVwgOwor5b6h6KiXIDwgZ290YWt1XCA7Civlvq7oobcgPCBiaWNodXVcIDsKK+WNiuihvyA8IGhhbmVyaVwgOwor6Jma5aaEIDwga3lvbW91XCA7CivmsbrnrpcgPCBrZXNzYW5cIDsKK+WMlui6qyA8IGtlc2hpblwgOwor5oGs54S2IDwgdGVuemVuXCA7Civolqzmua8gPCB5YWt1eXVcIDsKK+axveesmyA8IGtpdGVraVwgOwor5ra85ZGzIDwgcnlvdW1pXCA7CivmsLToj5wgPCBtaXp1bmFcIDsKK+a1t+WyuCA8IGthaWdhblwgOwor5oKq5qWtIDwgYWt1Z291XCA7CivpiYTmnb8gPCB0ZXBwYW5cIDsKK+iTtOiPnCA8IGp1bnNhaVwgOwor5ZCr5rC0IDwgZ2Fuc3VpXCA7CivlvbHouqsgPCBrYWdlbWlcIDsKK+avm+i2syA8IGtlYXNoaVwgOwor5q2v6auEIDwgc2hpenVpXCA7CivokL3ppqwgPCByYWt1YmFcIDsKK+WPjOecvCA8IHNvdWdhblwgOwor5Y+N55yBIDwgaGFuc2VpXCA7Civms6jmsrkgPCBjaHV1eXVcIDsKK+mDt+i7jSA8IGdvdWd1blwgOwor5rKI56CCIDwgY2hpbnNhXCA7Civli6fpioAgPCBrYW5naW5cIDsKK+WMu+ihkyA8IGlqdXRzdVwgOwor6aKo5ZGC5aC0IDwgZnVyb2JhXCA7CivmhJ/lpa4gPCBrYW5wdW5cIDsKK+a2meWaoiA8IHJ1aW5vdVwgOwor5Y216IOeIDwgcmFuaG91XCA7Civph47nkIMgPCB5YWt5dXVcIDsKK+WRieacjSA8IGdvZnVrdVwgOwor56We5qW9IDwga2FndXJhXCA7Civlv6DnvqkgPCBjaHV1Z2lcIDsKK+awtOiFqyA8IHN1aXNodVwgOwor6JeN5p+TIDwgYWl6b21lXCA7Civmgqrmm7ggPCBha3VzaG9cIDsKK+a0i+acrCA8IHlvdWhvblwgOwor5ZCb5rCRIDwga3VubWluXCA7CivokYnpmbAgPCBoYWthZ2VcIDsKK+mYv+iYh+WxsSA8IGFzb3NhblwgOwor5rK454K5IDwgZnV0dGVuXCA7Civmgazmt6EgPCB0ZW50YW5cIDsKK+m7meW6pyA8IG1va3V6YVwgOwor5ray5YmkIDwgZWtpemFpXCA7Civmrr/ou40gPCBkZW5ndW5cIDsKK+W8iumiqCA8IGhlaWZ1dVwgOwor6YeR54mMIDwga2lucGFpXCA7CivpioXlsbEgPCBkb3V6YW5cIDsKK+a1t+WkliA8IGthaWdhaVwgOwor6YO16LKvIDwgeXV1Y2hvXCA7Civph47niZsgPCB5YWd5dXVcIDsKK+a0u+aApyA8IGthc3NlaVwgOwor56S+5q6/IDwgc2hhZGVuXCA7Civph43niYggPCBqdXVoYW5cIDsKK+aCquaWhyA8IGFrdWJ1blwgOwor5b6h5a626Iq4IDwgb2llZ2VpXCA7CivphY3ohrMgPCBoYWl6ZW5cIDsKK+mKgOWxsSA8IGdpbnphblwgOwor5b+N6ICQIDwgbmludGFpXCA7CivmgqrmlL8gPCBha3VzZWlcIDsKK+elreaWhyA8IHNhaW1vblwgOwor5ZCE5rS+IDwga2FrdWhhXCA7CivpgbrpqqggPCBpa290c3VcIDsKK+m7kuW3viA8IGt1cm9nb1wgOwor5oGp5rKiIDwgb250YWt1XCA7Civmtbfln58gPCBrYWlpa2lcIDsKK+aEm+WbvSA8IGFpa29rdVwgOwor6YmE5ouzIDwgdGVra2VuXCA7CivlkI3mrosgPCBuYWdvcmlcIDsKK+iZmuWQjSA8IGt5b21laVwgOwor5by+6YGTIDwgZGFuZG91XCA7CivmsJHoirggPCBtaW5nZWlcIDsKK+WTuuS5syA8IGhvbnl1dVwgOwor5Y+w5rm+IDwgdGFpd2FuXCA7CivmsLjntpogPCBlaXpva3VcIDsKK+ato+mdoiA8IG1hdG9tb1wgOwor6YeN54GwIDwganV1a2FpXCA7CivljbHntbUgPCBhYnVuYWVcIDsKK+aBpeavmyA8IGNoaW1vdVwgOwor5Yqp6ZW3IDwgam9jaG91XCA7CivmtrLkvZMgPCBla2l0YWlcIDsKK+mIjeaguSA8IGRvbmtvblwgOwor5oOF5b+1IDwgam91bmVuXCA7Civmrovph5EgPCB6YW5raW5cIDsKK+avrOiXuyA8IG1hcmltb1wgOwor6Jar5p+TIDwga3Vuc2VuXCA7Civmr5von7kgPCBrZWdhbmlcIDsKK+WTgeWQjSA8IGhpbm1laVwgOwor5oKq5oqVIDwgYWt1dG91XCA7Civljp/nm6QgPCBnZW5iYW5cIDsKK+WLlei8qiA8IGRvdXJpblwgOwor5oKq5omNIDwgYWt1c2FpXCA7CivmsrvmsLQgPCBjaGlzdWlcIDsKK+m7kuWtkCA8IGhva3Vyb1wgOwor5YuH6YKBIDwgeXV1bWFpXCA7CivmgrLmhIEgPCBoaXNodXVcIDsKK+auiumBhyA8IHNodWd1dVwgOwor5oKq5oWLIDwgYWt1dGFpXCA7Civlj6TmtYEgPCBrb3J5dXVcIDsKK+WNgeiDvSA8IGp1dW5vdVwgOwor6YqA5aGKIDwgZ2lua2FpXCA7Civol7vlsZEgPCBtb2t1enVcIDsKK+WQjOaguSA8IGRvdWtvblwgOwor6buZ5aWRIDwgbW9ra2VpXCA7Civph43mtrIgPCBqdXVla2lcIDsKK+avkuibviA8IGRva3VnYVwgOwor6YeR5rOlIDwga29uZGVpXCA7CivmsaDnlZQgPCBjaGloYW5cIDsKK+WQjOadkSA8IGRvdXNvblwgOwor5ZCN5pytIDwgbmFmdWRhXCA7CivljZjntJQgPCB0YW5qdW5cIDsKK+Wkp+mDqOWxiyA8IG9vYmV5YVwgOwor6JiK5aWlIDwgdW4nJ25vdVwgOwor5b+r55ygIDwga2FpbWluXCA7Civmgqrlv7UgPCBha3VuZW5cIDsKK+WQjOaciyA8IGRvdWJvdVwgOwor5ZCI5p2/IDwgZ291YmFuXCA7Civph5HmsJcgPCBrYW5ha2VcIDsKK+enmOWMvyA8IGhpdG9rdVwgOwor56aP5a+/IDwgZnVrdWp1XCA7CivlkIjmnKwgPCBnYXBwb25cIDsKK+mBremboyA8IHNvdW5hblwgOwor6YeN5rC0IDwganV1c3VpXCA7CivmsLTnpr0gPCBzdWlraW5cIDsKK+iZmuS8nSA8IGt5b2RlblwgOwor5Y2X57GzIDwgbmFuYmVpXCA7Civpto/nvqQgPCBrZWlndW5cIDsKK+WgleiDjuWMuyA8IGRhdGFpaVwgOwor5Y2Y57ChIDwgdGFua2FuXCA7CivmgqrlvIogPCBha3VoZWlcIDsKK+W+qee4gSA8IGZ1a3VlblwgOwor6bu95YuJIDwgYmluYmVuXCA7CivnpoXlsLwgPCB6ZW4nJ25pXCA7CivlkIzmlq0gPCBkb3VkYW5cIDsKK+WPluawtCA8IHNodXN1aVwgOwor5rWE5Z+fIDwgam91aWtpXCA7CivphZLnqI4gPCBzaHV6ZWlcIDsKK+WQjOaWhyA8IGRvdWJ1blwgOwor5Yud6Ki0IDwgc2hvdXNvXCA7CivlkIzmlbAgPCBkb3VzdXVcIDsKK+W+k+iAhSA8IGp1dXNoYVwgOwor5ZCI5pa5IDwgYWlrYXRhXCA7Civljp/niYggPCBnZW5wYW5cIDsKK+iWhOadvyA8IHVzdWl0YVwgOwor5Y2X56uvIDwgbmFudGFuXCA7CivlvLfoq4cgPCBnb3VkYW5cIDsKK+engOWPpSA8IHNodXVrdVwgOwor5Y+k5qW9IDwga29nYWt1XCA7CivpiI3miY0gPCBkb25zYWlcIDsKK+iXu+WhqSA8IG1vc2hpb1wgOwor5Y+N5q+bIDwgaGFubW91XCA7CivmsLTnnYAgPCBtaXp1Z2lcIDsKK+eikeefsyA8IGhpc2VraVwgOwor5Yqg6YCfIDwga2Fzb2t1XCA7CivmsZrniakgPCBvYnV0c3VcIDsKK+WPsOacrCA8IGRhaWhvblwgOwor6baP57OeIDwga2VpZnVuXCA7CivmsLTnm6QgPCBzdWliYW5cIDsKK+WNg+evhyA8IHNlbnBlblwgOwor6YiN5oSfIDwgZG9ua2FuXCA7Civmr5vohJsgPCBrZXp1bmVcIDsKK+mzs+i8piA8IGhvdXJlblwgOwor5LiN55So5oSPIDwgZnV5b3VpXCA7CivkuYXmhYjnm64gPCBrdWppbWVcIDsKK+W7uumAoCA8IGtlbnpvdVwgOwor5Yi66a2aIDwgdG9nZXVvXCA7Civpg6jokL0gPCBidXJha3VcIDsKK+WPt+aVsCA8IGdvdXN1dVwgOwor6YqD5YmjIDwganV1a2VuXCA7Civlj4Lmrr8gPCBzYW5kZW5cIDsKK+awtOeWsSA8IHN1aWhvdVwgOwor5Y+z5paHIDwgeXV1YnVuXCA7Civlj6TmnKggPCBrb2Jva3VcIDsKK+WQm+aBqSA8IGt1bicnb25cIDsKK+Wkp+W+oeS7oyA8IG9vbWl5b1wgOwor5b6u56aEIDwgYmlyb2t1XCA7CivnooHnn7MgPCBnb2lzaGlcIDsKK+awtOeUsCA8IHN1aWRlblwgOwor5bqV6a2aIDwgc29rb3VvXCA7Civnp5jkuK0gPCBoaWNodXVcIDsKK+auuuiPjCA8IHNha2tpblwgOwor6YqY5LuZIDwgbWVpc2VuXCA7CivlvLHooYwgPCBqYWtrb3VcIDsKK+WRvOWQjSA8IHlvYmluYVwgOwor5rG65rC0IDwga2Vzc3VpXCA7CivlkIzmhoIgPCBkb3V5dXVcIDsKK+mKheWDjyA8IGRvdXpvdVwgOwor5q2T6L+OIDwga2FuZ2VpXCA7CivpiYTloZQgPCB0ZXR0b3VcIDsKK+WQjOaEnyA8IGRvdWthblwgOwor5rWq5Lq6IDwgcm91bmluXCA7CivliZTpmaQgPCB0ZWtpam9cIDsKK+ayoeabuCA8IGJvc3Nob1wgOwor6be55rS+IDwgdGFrYWhhXCA7CivliY3pm7sgPCB6ZW5kZW5cIDsKK+aDs+WDjyA8IHNvdXpvdVwgOwor5Y+W5p2QIDwgc2h1emFpXCA7CivomK3kurogPCByYW5qaW5cIDsKK+iPjOmhniA8IGtpbnJ1aVwgOwor56We5a6uIDwgamluZ3V1XCA7CivljbXnirYgPCByYW5qb3VcIDsKK+aCquWkqSA8IGFrdXRlblwgOwor6YGt6YGHIDwgc291Z3V1XCA7CivliYrpmaQgPCBzYWt1am9cIDsKK+WNiuedoSA8IGhhbnN1aVwgOwor5ZC+5aa5IDwgd2FnaW1vXCA7Civlj7PmipggPCB1c2V0c3VcIDsKK+WOn+ayuSA8IGdlbicneXVcIDsKK+ats+ioiCA8IHNhaWtlaVwgOwor5oCn5qC5IDwgc2hvdW5lXCA7CivokZvol6QgPCBrYXR0b3VcIDsKK+aCquWgtCA8IHdhcnViYVwgOwor5Y+z5omLIDwgbWlnaXRlXCA7Civlj4nmnKggPCBtYXRhZ2lcIDsKK+atqeiqvyA8IGhvY2hvdVwgOwor5Y6f5rCRIDwgZ2VubWluXCA7CivlkI3lupcgPCBtZWl0ZW5cIDsKK+WIuOmdoiA8IGtlbm1lblwgOwor5bmy6bGIIDwgaGlkYXJhXCA7CivlkIjlvIEgPCBnb3ViZW5cIDsKK+W8geirliA8IGJlbnJvblwgOwor5rWB5YSAIDwgcnl1dWdpXCA7CivmsLTnha4gPCBtaXp1bmlcIDsKK+W6p+mVtyA8IHphY2hvdVwgOwor5q+S57SgIDwgZG9rdXNvXCA7CivlupXpnaIgPCB0ZWltZW5cIDsKK+W9vOetiSA8IGthcmVyYVwgOwor5Y6Y5q+bIDwgcmlubW91XCA7CivljrvmnaUgPCBreW9yYWlcIDsKK+W8geinoyA8IGJlbmthaVwgOwor6YGL6YedIDwgdW5zaGluXCA7Civlj6TmiYsgPCBmdXJ1dGVcIDsKK+avm+etiyA8IGtlc3VqaVwgOwor56S+5bGLIDwgc2hhb2t1XCA7Civlj6/mg5wgPCBhdHRhcmFcIDsKK+mBiumHkSA8IHl1dWtpblwgOwor5ZCb5a2QIDwga3Vuc2hpXCA7CivliKnpnpggPCByaXpheWFcIDsKK+aAqOaVtSA8IG9udGVraVwgOwor5pyJ5oSP576pIDwgeXV1aWdpXCA7Civph47olpTolocgPCBub2JhcmFcIDsKK+aBi+aEmyA8IHJlbicnYWlcIDsKK+asoOmFjSA8IGtlcHBhaVwgOwor5ZG95LukIDwgbWVpcmVpXCA7CivlkI3lsbEgPCBtZWl6YW5cIDsKK+ecn+m0qCA8IG1hZ2Ftb1wgOwor6YCj6ZaiIDwgcmVua2FuXCA7CivmsYDmuJogPCB0ZWlzaG9cIDsKK+W+oeebruimi+W+lyA8IG9tZW1pZVwgOwor5ZCM5bGFIDwgZG91a3lvXCA7CivpgYXphY0gPCBjaGloYWlcIDsKK+aihembqOacnyA8IGJhaXVraVwgOwor5oG15a2YIDwga2Vpem9uXCA7CivlkIzlsIEgPCBkb3VmdXVcIDsKK+WPsOW9oiA8IGRhaWtlaVwgOwor5oGL5oGLIDwgcmVucmVuXCA7CivpgaDotrMgPCBlbnNva3VcIDsKK+WJjemHkSA8IG1hZWtpblwgOwor5Yml6LqrIDwgbXVraW1pXCA7CivmsLTmupAgPCBzdWlnZW5cIDsKK+mAgemiqCA8IHNvdWZ1dVwgOwor6YG66KiAIDwgeXVpZ29uXCA7Civmga/lrZAgPCBtdXN1a29cIDsKK+aCquWQjSA8IGFrdW1laVwgOwor5Y6f5qGIIDwgZ2VuJydhblwgOwor56WW5Zu9IDwgc29rb2t1XCA7CivolLXmm7ggPCB6b3VzaG9cIDsKK+aCquWPiyA8IGFrdXl1dVwgOwor5bm96ZyKIDwgeXV1cmVpXCA7CivmgrLliocgPCBoaWdla2lcIDsKK+W6p+mHkSA8IHphZ2FuZVwgOwor5Y+N5oimIDwgaGFuc2VuXCA7Civluqbph48gPCBkb3J5b3VcIDsKK+mHjuW/gyA8IHlhc2hpblwgOwor5YuD6IiIIDwgYm9ra291XCA7CivljJbnn7MgPCBrYXNla2lcIDsKK+ekvuWkliA8IHNoYWdhaVwgOwor5Y+k5bufIDwga29ieW91XCA7CivluoPplpMgPCBoaXJvbWFcIDsKK+awt+aysyA8IGh5b3VnYVwgOwor5bmz6Z2iIDwgaGVpbWVuXCA7CivlkLvlkIggPCBmdW5nb3VcIDsKK+WIhumhniA8IGJ1bnJ1aVwgOwor5b6M55SfIDwgZ29zaG91XCA7Civlv6vmpb0gPCBrZXJha3VcIDsKK+iWrOWckiA8IHlha3VlblwgOwor5oGv5aWzIDwgc29rdWpvXCA7Civms5XlpJYgPCBob3VnYWlcIDsKK+mJhOWCmCA8IHRlc3NhblwgOwor5bm96ZaJIDwgeXV1aGVpXCA7Civlv43ms5UgPCBuaW5wb3VcIDsKK+WQjOWkpyA8IGRvdWRhaVwgOwor5b2555uuIDwgeWFrdW1lXCA7CivokZfogIUgPCBjaG9zaGFcIDsKK+WQjeWjsCA8IG1laXNlaVwgOwor5Y+k5bejIDwgZnVydXN1XCA7CivmsLTmsJcgPCBtaXp1a2VcIDsKK+W5tOmZkCA8IG5lbmdlblwgOwor5rKi5bq1IDwgdGFrdWFuXCA7Civmr5Lnn6IgPCBkb2t1eWFcIDsKK+WQiOWljyA8IGdhc3NvdVwgOwor5q+b55quIDwga2VnYXdhXCA7CivljZfmup8gPCBuYW5tZWlcIDsKK+ebrum8uyA8IG1laGFuYVwgOwor6YO9552jIDwgdG90b2t1XCA7CivljZfmuoAgPCBuYW5tYW5cIDsKK+mBi+izgyA8IHVuY2hpblwgOwor5Y6f5paHIDwgZ2VuYnVuXCA7CivpuqbkvqEgPCBiYWt1a2FcIDsKK+emgeS7pCA8IGtpbnJlaVwgOwor6Jep5Li7IDwgaGFuc2h1XCA7Civnn6XogrIgPCBjaGlpa3VcIDsKK+WKueiDvSA8IGtvdW5vdVwgOwor5YiG6ZqbIDwgYnVuemFpXCA7CivpgYHotbAgPCB0b25zb3VcIDsKK+WQieWgsSA8IGtpcHBvdVwgOwor5oCg5oWiIDwgdGFpbWFuXCA7CivpgKDphZIgPCB6b3VzaHVcIDsKK+WIhumZoiA8IGJ1bicnaW5cIDsKK+WIhumZkCA8IGJ1bmdlblwgOwor5oCd5oWuIDwgc2hpcnlvXCA7Civlh7HpoqggPCBnYWlmdXVcIDsKK+aAqOW/tSA8IG9uJyduZW5cIDsKK+WMlueUnyA8IGtlc2hvdVwgOwor6YeR5bGxIDwga2luemFuXCA7Civmgp/lhaUgPCBnb255dXVcIDsKK+mAuOi2syA8IGlzc29rdVwgOwor56Cl55+zIDwgdG9pc2hpXCA7Civlj6TlrrYgPCBmdXJ1aWVcIDsKK+iWrOWRsyA8IHlha3VtaVwgOwor55y86Y+hIDwgbWVnYW5lXCA7CivnnJ/pnZIgPCBtYXNzYW9cIDsKK+WNiua4myA8IGhhbmdlblwgOwor5Y+35aSWIDwgZ291Z2FpXCA7CivpgZToprMgPCB0YWtrYW5cIDsKK+WHuumamyA8IGRlZ2l3YVwgOwor5Y+O5beuIDwgc2h1dXNhXCA7CivmsbrmhI8gPCBrZXRzdWlcIDsKK+W6lei+uiA8IHRlaWhlblwgOwor5ZCb5ZG9IDwga3VubWVpXCA7Civph47lrr8gPCBub2p1a3VcIDsKK+efree3qCA8IHRhbnBlblwgOwor6JGb57KJIDwga3V6dWtvXCA7CivpgJrpgYsgPCB0c3V1dW5cIDsKK+iWhOWhqSA8IHVzdWppb1wgOwor5oKq5Lq6IDwgYWt1bmluXCA7CivpgKPovIkgPCByZW5zYWlcIDsKK+WIpemCuCA8IGJldHRlaVwgOwor5rOi5Y+KIDwgaGFreXV1XCA7Civljp/mi6AgPCBnZW5reW9cIDsKK+W8qee0miA8IGRva3l1dVwgOwor5q+b546JIDwga2VkYW1hXCA7Civph4zlrZAgPCBzYXRvZ29cIDsKK+ekvuWRvSA8IHNoYW1laVwgOwor5q2v6IKJIDwgaGFuaWt1XCA7Civojbfpno0gPCBuaWd1cmFcIDsKK+efs+eyiSA8IGlzaGlrb1wgOwor5oKp5LmxIDwgbm91cmFuXCA7CivljoTml6UgPCB5YWt1YmlcIDsKK+WNl+aspyA8IG5hbicnb3VcIDsKK+iAs+m8u+enkSA8IGppYmlrYVwgOwor6YGK6KanIDwgeXV1cmFuXCA7Civpga7olL0gPCBzaGFoZWlcIDsKK+iWrOWKuSA8IHlha2tvdVwgOwor5ZCN5ZOBIDwgbWVpaGluXCA7CivnpL7lj4sgPCBzaGF5dXVcIDsKK+mDoeecjCA8IGd1bmtlblwgOwor6YeN5amaIDwganV1a29uXCA7CivpgIHph5EgPCBzb3VraW5cIDsKK+WOmuaJiyA8IGF0c3VkZVwgOwor5bmV6ZaTIDwgbWFrdWFpXCA7CivlubTph5EgPCBuZW5raW5cIDsKK+WPjeWwhCA8IGhhbnNoYVwgOwor5Y+N5a++IDwgaGFudGFpXCA7CivlkI3lkJ8gPCBtZWlnaW5cIDsKK+ebrumrmCA8IG1lZGFrYVwgOwor6L+U6Zu7IDwgaGVuZGVuXCA7CivpiI3liIAgPCBkb250b3VcIDsKK+egtOeNhCA8IGhhZ29rdVwgOwor5rK55ZynIDwgeXVhdHN1XCA7Civlja/mnIggPCB1ZHp1a2lcIDsKK+awtOacqCA8IG1penVraVwgOwor56CC56SrIDwgc2FyZWtpXCA7CivmgJLlvLUgPCBkb2Nob3VcIDsKK+eUu+aetuW6pyA8IGdha2F6YVwgOwor5YiG6YqFIDwgZnVuZG91XCA7CivkuI3lronmsJcgPCBmdWFuZ2VcIDsKK+mAuOipsSA8IGl0c3V3YVwgOwor6I2J6a2aIDwgc291Z3lvXCA7CivljbPmmYIgPCBzb2t1amlcIDsKK+W8geiAhSA8IGJlbnNoYVwgOwor6YCa6LevIDwgdHN1dXJvXCA7Civok67moLkgPCByZW5rb25cIDsKK+WQiOWQjCA8IGdvdWRvdVwgOwor6L+R6ZqjIDwga2lucmluXCA7CivlpKflh7rmnaUgPCBvb2Rla2lcIDsKK+mHjeWkiSA8IGp1dWhlblwgOwor6aKo6YKq5rCXIDwga2F6ZWtlXCA7CivojZLppqwgPCBhcmF1bWFcIDsKK+W/q+aMmSA8IGthaWt5b1wgOwor5YiG6YeOIDwgYnVuJyd5YVwgOwor6YWS5p2vIDwgc2h1aGFpXCA7CivlkIzli6IgPCBkb3V6ZWlcIDsKK+awl+alvSA8IGtpcmFrdVwgOwor5rCR5qipIDwgbWlua2VuXCA7CivliIPph50gPCBoYWJhcmlcIDsKK+atpuWZqOW6qyA8IGJ1a2lrb1wgOwor5Y+C5a6uIDwgc2FuZ3V1XCA7CivliIbphY0gPCBidW5wYWlcIDsKK+mBuuiEsSA8IGlkYXRzdVwgOwor6L+wIDwganV0c3VcIDsKK+W/hSA8IGhpdHN1XCA7CivovrsgPCB0c3VqaVwgOwor5b65IDwgdGV0c3VcIDsKK+eepSA8IGJldHN1XCA7CivlvowgPCBub2NoaVwgOwor5b6LIDwgcml0c3VcIDsKK+edgCA8IGNoYWt1XCA7CivlvI8gPCBzaGlraVwgOwor55q6IDwgc2hpd2FcIDsKK+i6hSA8IGNob2t1XCA7Civnmb4gPCBoeWFrdVwgOwor55m9IDwgc2hpcm9cIDsKK+eZvCA8IGhvdHN1XCA7CivnmbogPCBoYXRzdVwgOwor5bm4IDwgc2FjaGlcIDsKK+W5tCA8IHRvc2hpXCA7CivnmaogPCBzaGFrdVwgOwor5be0IDwgdG9tb2VcIDsKK+eXhSA8IHlhbWFpXCA7CivnlaUgPCByeWFrdVwgOwor55WcIDwgY2hpa3VcIDsKK+eUuiA8IG1hY2hpXCA7CivnlLcgPCBvdG9rb1wgOwor55SxIDwgeW9zaGlcIDsKK+WztiA8IHNoaW1hXCA7Civos6ogPCB0YWNoaVwgOwor5bK4IDwga2lzaGlcIDsKK+WxiCA8IGt1dHN1XCA7CivlsLsgPCBzaGlyaVwgOwor5a+mIDwgaml0c3VcIDsKK+WvnyA8IHNhdHN1XCA7Civlr4YgPCBtaXRzdVwgOwor5a60IDwgdXRhZ2VcIDsKK+WuoiA8IGt5YWt1XCA7CivnjL4gPCBrYXRzdVwgOwor6KqsIDwgc2V0c3VcIDsKK+ipsCA8IGtpdHN1XCA7CivniLogPCBqaWppaVwgOwor54iqIDwgdHN1bWVcIDsKK+iooyA8IGtldHN1XCA7Civop7ggPCBzaG9rdVwgOwor6KeSIDwgdHN1bm9cIDsKK+WmuyA8IHRzdW1hXCA7CivnhrEgPCBuZXRzdVwgOwor6KW/IDwgbmlzaGlcIDsKK+WltCA8IHlhdHN1XCA7CivlpaogPCBkYXRzdVwgOwor5aSPIDwgbmF0c3VcIDsKK+eDiCA8IHJldHN1XCA7CivoorcgPCBhd2FzZVwgOwor54KOIDwgaG9ub29cIDsKK+WigyA8IHNha2FpXCA7CivlobUgPCBjaGlyaVwgOwor5aGaIDwgdHN1a2FcIDsKK+WfuiA8IG1vdG9pXCA7Civln5IgPCByYWNoaVwgOwor6b2iIDwgeW93YWlcIDsKK+m8viA8IGliaWtpXCA7CivonIIgPCBoYWNoaVwgOwor6buQIDwgbW9jaGlcIDsKK+a7hSA8IG1ldHN1XCA7CivompUgPCBrYWlrb1wgOwor6bm/IDwgc2hpa2FcIDsKK+iZqyA8IG11c2hpXCA7CivomZ4gPCBvc29yZVwgOwor5ZmCIDwgdXdhc2FcIDsKK+a3tSA8IGZ1Y2hpXCA7Civpt7IgPCB3YXNoaVwgOwor5reRIDwgc2h1a3VcIDsKK+m2tCA8IHRzdXJ1XCA7CivllocgPCByYXRzdVwgOwor5ZS+IDwgdHN1YmFcIDsKK+aziSA8IGl6dW1pXCA7CivmsrkgPCBhYnVyYVwgOwor5rKhIDwgYm90c3VcIDsKK+WShCA8IHRvdHN1XCA7CivmsYEgPCB0c3V5dVwgOwor6bCMIDwgZG9qb3VcIDsKK+WQiSA8IGtpY2hpXCA7Civlj6MgPCBrdWNoaVwgOwor5Y2YIDwgaGl0b2VcIDsKK+WNkiA8IHNvdHN1XCA7CivmrKEgPCB0c3VnaVwgOwor5qubIDwga3VzaGlcIDsKK+iKnSA8IHNoaWJhXCA7CivlipsgPCByeW9rdVwgOwor6Im2IDwgdHN1eWFcIDsKK+apiyA8IGhhc2hpXCA7CivmqKsgPCBrYXNoaVwgOwor6IiMIDwgc2hpdGFcIDsKK+WIgyA8IHlhaWJhXCA7CivohbAgPCBrb3NoaVwgOwor5YWOIDwgdXNhZ2lcIDsKK+WFgCA8IGtvdHN1XCA7CivohIggPCBteWFrdVwgOwor6aOvIDwgbWVzaGlcIDsKK+aiqCA8IG5hc2hpXCA7CivmoqIgPCBrb3p1ZVwgOwor5qKTIDwgYXp1c2FcIDsKK+mhjSA8IGhpdGFpXCA7CivpoIEgPCBwZWlqaVwgOwor57+BIDwgb2tpbmFcIDsKK+merSA8IG11Y2hpXCA7CivpnoQgPCBrYWJhblwgOwor5p2+IDwgbWF0c3VcIDsKK+e9sCA8IGJhdHN1XCA7CivnvaogPCB0c3VtaVwgOwor5L2bIDwgYnV0c3VcIDsKK+S9jSA8IGt1cmFpXCA7CivkvLggPCBub3NoaVwgOwor6ZywIDwgYXJhcmVcIDsKK+mcnCA8IHNoaW1vXCA7CivmnIggPCB0c3VraVwgOwor5puyIDwga3lva3VcIDsKK+mbnCA8IHphdHN1XCA7Civku5kgPCBzZW50b1wgOwor6ZuHIDwgeWF0b2lcIDsKK+S5viA8IGhvc2hpXCA7CivkuLsgPCBudXNoaVwgOwor57axIDwgdHN1bmFcIDsKK+e1tiA8IHpldHN1XCA7CivntYIgPCBvd2FyaVwgOwor5pONIDwgbWlzYW9cIDsKK+evgCA8IGJ1c2hpXCA7CivnrpIgPCBob3VraVwgOwor562UIDwga290YWVcIDsKK+aLgiA8IGZ1dHN1XCA7CivmiKYgPCBpa3VzYVwgOwor6YGTIDwgbWljaGlcIDsKK+mAuSA8IHRhdHN1XCA7CivpgIYgPCBneWFrdVwgOwor55696ICFIDwga29zaGFcIDsKK+WQjeWJjSA8IG5hbWFlXCA7CivluLDpoIYgPCBraWp1blwgOwor5bqn6KaWIDwgemFzaGlcIDsKK+W/q+aJkyA8IGthaWRhXCA7CivpgIHovp4gPCBzb3VqaVwgOwor5ZCN5YipIDwgbWVpcmlcIDsKK+eciemWkyA8IG1pa2VuXCA7Civno4HmgKcgPCBqaXNlaVwgOwor6Jas5L6hIDwgeWFra2FcIDsKK+egsueFmSA8IGhvdWVuXCA7CivnpLzlhIAgPCByZWlnaVwgOwor5rOV5YW3IDwgaG91Z3VcIDsKK+WQj+WFmiA8IHJpdG91XCA7Civnm67poZQgPCBtZWdhb1wgOwor56KR5paHIDwgaGlidW5cIDsKK+mAo+iqniA8IHJlbmdvXCA7Civph43lm7IgPCBjaG91aVwgOwor5rKu5ZaqIDwgc29zb3VcIDsKK+mBuue/kiA8IGlzaHV1XCA7CivpgbjogIUgPCBzZW5qYVwgOwor5q2M6IGWIDwga2FzZWlcIDsKK+mAoOiqniA8IHpvdWdvXCA7CivnoLLngasgPCBob3VrYVwgOwor6JK45rCXIDwgam91a2lcIDsKK+aAquWlhyA8IGthaWtpXCA7CivpgKPoqJggPCByZW5raVwgOwor6YeN5ZmoIDwganV1a2lcIDsKK+WKoOezliA8IGthdG91XCA7CivmganlhbggPCBvbnRlblwgOwor5bqP6KuWIDwgam9yb25cIDsKK+avheeEtiA8IGtpemVuXCA7CivliLbopocgPCBzZWloYVwgOwor5q2O576OIDwgdGFuYmlcIDsKK+mAgOi3ryA8IHRhaXJvXCA7Civlv5zmiYsgPCBvdXNodVwgOwor6YCf6KiYIDwgc29ra2lcIDsKK+azouS5sSA8IGhhcmFuXCA7Civlv5zmiKYgPCBvdXNlblwgOwor6YCj6KaHIDwgcmVucGFcIDsKK+aAqOWjsCA8IGVuc2VpXCA7CivmsrnljZggPCB5dXRhblwgOwor5bqP6KmeIDwgam9zaGlcIDsKK+WMu+alrSA8IGlneW91XCA7Civluo/oqIAgPCBqb2dlblwgOwor5b+Y5oiRIDwgYm91Z2FcIDsKK+iNt+mHjSA8IGthanV1XCA7CivljLrmpJwgPCBrdWtlblwgOwor5Y2X5paXIDwgbmFudG9cIDsKK+ayveWIuCA8IGtva2VuXCA7CivljYrmnJ8gPCBoYW5raVwgOwor5ZCM5L6hIDwgZG91a2FcIDsKK+WLleeUuyA8IGRvdWdhXCA7CivmsrPljZcgPCBrYW5hblwgOwor6JaE5YiDIDwgdXN1YmFcIDsKK+WKoOeulyA8IGthc2FuXCA7CivlubTos6YgPCBuZW5wdVwgOwor5Y+j5ZGzIDwga291bWlcIDsKK+i/t+i3ryA8IG1laXJvXCA7CivmsrnliaQgPCB5dXphaVwgOwor5bm06LOAIDwgbmVuZ2FcIDsKK+WPr+WLlSA8IGthZG91XCA7CivlubTosqIgPCBuZW5ndVwgOwor5b6h5qCqIDwgb2thYnVcIDsKK+WOqOWtkCA8IHp1c2hpXCA7CivliKXoqJggPCBiZWtraVwgOwor5ZCP5Lq6IDwgcmlqaW5cIDsKK+WQhOWAiyA8IGtha2tvXCA7Civpgqrnn6UgPCBqYWNoaVwgOwor5Y+k5Y+CIDwga29zYW5cIDsKK+azleS6iyA8IGhvdWppXCA7CivolYPlpLcgPCBiYW4nJ2lcIDsKK+mHjeWRsyA8IG9tb21pXCA7CivmqLnpvaIgPCBqdXJlaVwgOwor5Y2D5pyoIDwgY2hpZ2lcIDsKK+aBteS4jiA8IGtlaXlvXCA7CivphbjluqYgPCBzYW5kb1wgOwor5Yqx56OBIDwgcmVpamlcIDsKK+WJo+iIniA8IGtlbmJ1XCA7Civms5XkuLsgPCBob3NzdVwgOwor5q+N5rivIDwgYm9rb3VcIDsKK+mHjuWQiCA8IHlhZ291XCA7CivlkIzkuosgPCBkb3VqaVwgOwor5Y+v5YiGIDwga2FidW5cIDsKK+mHjuWPsiA8IHlhc2hpXCA7Civliqnnpa0gPCBqb3NhaVwgOwor5ZCE5L2NIDwga2FrdWlcIDsKK+W+oeacrSA8IG9mdWRhXCA7CivpgY7oiKwgPCBrYWhhblwgOwor5YiG6LOmIDwgYnVucHVcIDsKK+eoruOAhSA8IHNodWp1XCA7Civlv5jmgakgPCBib3VvblwgOwor5b6F5qmfIDwgdGFpa2lcIDsKK+aBqeS6uiA8IG9uamluXCA7Civlv4zmhpogPCBraXRhblwgOwor6YGL6IiqIDwgdW5rb3VcIDsKK+ays+WGhSA8IGhhbm9pXCA7CivmgajkuosgPCBrb25qaVwgOwor5oCn5ZmoIDwgc2Vpa2lcIDsKK+aAkuWjsCA8IGRvc2VpXCA7CivmqZ/pppYgPCBraXNodVwgOwor5YiX6KiYIDwgcmVra2lcIDsKK+WPpOWItiA8IGtvc2VpXCA7Civlj43lk7ogPCBoYW5wb1wgOwor5Y2B5pelIDwgdG9va2FcIDsKK+W+oeaYvCA8IG9oaXJ1XCA7Civpg73msJEgPCB0b21pblwgOwor55yL6YGOIDwga2Fua2FcIDsKK+WPpOWIgCA8IGtvdG91XCA7CivlvKXnlJ8gPCB5YXlvaVwgOwor6YCB6KmxIDwgc291d2FcIDsKK+W5s+iqniA8IGhlaWdvXCA7Civmr5LmsJcgPCBkb2trZVwgOwor55+b55u+IDwgbXVqdW5cIDsKK+egtOawtCA8IGhhc3VpXCA7Civph5HliKkgPCBraW5yaVwgOwor5rOJ5LiLIDwgc2Vua2FcIDsKK+i/lOi+niA8IGhlbmppXCA7CivptZ7mr5sgPCBnYW1vdVwgOwor5Y+Z5YuyIDwgam9rdW5cIDsKK+ayluWQiCA8IG9raWFpXCA7Civlj6TlhbggPCBrb3RlblwgOwor6a+o6aOyIDwgZ2VpaW5cIDsKK+mHjeWIqSA8IGp1dXJpXCA7CivljbDlvbEgPCBpbicnZWlcIDsKK+WNmOaJkyA8IHRhbmRhXCA7CivlvqHmlbAgPCBva2F6dVwgOwor5Y+X5YuVIDwganVkb3VcIDsKK+mBk+e+qSA8IGRvdWdpXCA7CivlvozmnrYgPCBrb3VrYVwgOwor6YGg57iBIDwgdG9vZW5cIDsKK+WIhuiqsiA8IGJ1bmthXCA7CivpgqbnlLsgPCBob3VnYVwgOwor6YeO5YWaIDwgeWF0b3VcIDsKK+edgOihoyA8IHlha3VpXCA7Civlj5fliJEgPCBqdWtlaVwgOwor5q+O5qyhIDwgbWFpamlcIDsKK+W+jOacnyA8IGtvdWtpXCA7CivolanlhZAgPCB0b3VqaVwgOwor5rK55LqVIDwgeXVzZWlcIDsKK+W7uueikSA8IGtlbnBpXCA7CivlhqXpl4cgPCBtZWlhblwgOwor5biD6ZmjIDwgZnVqaW5cIDsKK+iNkumHjiA8IGtvdXlhXCA7CivmsrvkuIsgPCBjaGlrYVwgOwor6L666YSZIDwgaGVucGlcIDsKK+mFkuW+kiA8IHNodXRvXCA7CivmqZ/pm7cgPCBraXJhaVwgOwor5q2M56i/IDwga2Frb3VcIDsKK+W8p+eKtiA8IGtvam91XCA7Civpgbfnp7sgPCBzZW4nJ2lcIDsKK+W4sOmChCA8IGtpa2FuXCA7Civmra/nl5sgPCBoYWl0YVwgOwor5rCR5oi4IDwgbWlua29cIDsKK+WKoOebnyA8IGthbWVpXCA7Civoj4roirEgPCBraWtrYVwgOwor5Y+k5L6LIDwga29yZWlcIDsKK+WPsOS4iyA8IGRhaWthXCA7CivliLvoi6YgPCBrb2trdVwgOwor5q+N5qipIDwgYm9rZW5cIDsKK+WPpOS9kyA8IGtvdGFpXCA7CivlvoDmnaUgPCBvdXJhaVwgOwor5Y+X5YOPIDwganV6b3VcIDsKK+WPpeS8miA8IGt1a2FpXCA7Civlj6TkvJ0gPCBrb2RlblwgOwor5b+c5a++IDwgb3V0YWlcIDsKK+WNseWzsCA8IGtpaG91XCA7CivmrrrmsJcgPCBzYWtraVwgOwor5Yqp55SjIDwgam9zYW5cIDsKK+W4sOi+siA8IGtpbm91XCA7Civlj6Tku6MgPCBrb2RhaVwgOwor5Y+k5LuKIDwga29rb25cIDsKK+WPpOS6uiA8IGtvamluXCA7CivpgZXntIQgPCBpeWFrdVwgOwor5Y6f5ZuzIDwgZ2VuenVcIDsKK+WNgeaJiyA8IGppdHRlXCA7CivmsJHmhI8gPCBtaW4nJ2lcIDsKK+WPguWKoCA8IHNhbmthXCA7Civlhrbph5EgPCB5YWtpblwgOwor55+z54GrIDwgc2Vra2FcIDsKK+WFtemmrCA8IGhlaWJhXCA7CivlvqHmiYAgPCBnb3Nob1wgOwor6YeO5Lq6IDwgeWFqaW5cIDsKK+W8geeWjyA8IGJlbnNvXCA7Civljp/lmaggPCBnZW5raVwgOwor6YCg6IqxIDwgem91a2FcIDsKK+W4nemDvSA8IHRlaXRvXCA7Civoi7HprYIgPCBlaWtvblwgOwor5Y6t5ZGzIDwgaXlhbWlcIDsKK+WNseWusyA8IGtpZ2FpXCA7CivlupfoiJcgPCB0ZW5wb1wgOwor6YWN5biDIDwgaGFpZnVcIDsKK+auteatqSA8IHRhbmJ1XCA7CivljZjluqcgPCB0YW56YVwgOwor5Y+Z5Lu7IDwgam9uaW5cIDsKK+asp+exsyA8IG91YmVpXCA7CivmgJLlj7cgPCBkb2dvdVwgOwor5rC45a2YIDwgZWl6b25cIDsKK+W3pemdoiA8IGt1bWVuXCA7CivlhoXpnIAgPCBuYWlqdVwgOwor5Y+X5Lu7IDwganVuaW5cIDsKK+W+jOaPtCA8IGtvdWVuXCA7CivnnIzorbAgPCBrZW5naVwgOwor5Yuk5rGCIDwgZ29uZ3VcIDsKK+eci+ittyA8IGthbmdvXCA7CivlhobpmaMgPCBlbmppblwgOwor6YW45Z+6IDwgc2Fua2lcIDsKK+W4sOi2qCA8IGtpc3V1XCA7CivlvZPmqZ8gPCB0b3VraVwgOwor5byB55CGIDwgYmVucmlcIDsKK+avjeadkCA8IGJvemFpXCA7CivlvpLmiYsgPCB0b3NodVwgOwor55ub6YGLIDwgc2VpdW5cIDsKK+atr+eJmSA8IHNoaWdhXCA7CivmsJHluqYgPCBtaW5kb1wgOwor6YGL566XIDwgdW56YW5cIDsKK+W/nOWkiSA8IG91aGVuXCA7CivphZLlrrYgPCBzaHVrYVwgOwor5byl5ryrIDwgYmltYW5cIDsKK+mFkuWutCA8IHNodWVuXCA7Civprp/psYcgPCBhbmtvdVwgOwor6L2f6Z+zIDwgZ291b25cIDsKK+W+oeW/tSA8IGdvbmVuXCA7CivlvpfmhI8gPCB0b2t1aVwgOwor5YW46ZuFIDwgdGVuZ2FcIDsKK+WPjOS6kiA8IHNvdWdvXCA7Civli5jmsJcgPCBrYW5raVwgOwor6L6e6YCAIDwgaml0YWlcIDsKK+WOn+WPpSA8IGdlbmt1XCA7CivpgbrnlZkgPCBpcnl1dVwgOwor5qmf6YqDIDwga2lqdXVcIDsKK+mDveaUvyA8IHRvc2VpXCA7Civli5XmsJcgPCBkb3VraVwgOwor5b+c5aCxIDwgb3Vob3VcIDsKK+W5vOiKvSA8IHlvdWdhXCA7CivnoazluqYgPCBrb3Vkb1wgOwor5b6p5biwIDwgZnVra2lcIDsKK+asuueeniA8IGdpbWFuXCA7CivpgaDnn6IgPCB0b295YVwgOwor6YGO56iLIDwga2F0ZWlcIDsKK+awtOWkqyA8IHN1aWZ1XCA7Civmr43mlpEgPCBib2hhblwgOwor5oCc5L+QIDwgcmVpcmlcIDsKK+W4gumDqCA8IHNoaWJ1XCA7CivliqvngasgPCBnb3VrYVwgOwor5Yal6YCUIDwgbWVpZG9cIDsKK+WPguS6iyA8IHNhbmppXCA7CivlvqHluaMgPCBnb2hlaVwgOwor5by+5qmfIDwgZGFua2lcIDsKK+mBoOecvCA8IGVuZ2FuXCA7CivnoLTmkacgPCBoYXNhaVwgOwor6L+R6KGbIDwga29ub2VcIDsKK+efreazoiA8IHRhbnBhXCA7CivpgaDnm64gPCB0b29tZVwgOwor6YaH5YyWIDwganVua2FcIDsKK+WIpOiAhSA8IGhhbmphXCA7CivnoLTmkI0gPCBoYXNvblwgOwor6YGT56C0IDwgZG91aGFcIDsKK+iLsemciiA8IGVpcmVpXCA7Civli4fmsJcgPCB5dXVraVwgOwor5rCX5a2UIDwga2lrb3VcIDsKK+WKoOeCuSA8IGthdGVuXCA7CivphbjlkbMgPCBzYW5taVwgOwor5Yag6L6eIDwga2FuamlcIDsKK+iLsembhCA8IGVpeXV1XCA7Civlv6vlkbMgPCBrYWltaVwgOwor5bmz6IelIDwgaGVpZ2FcIDsKK+WOmuWIqSA8IGtvdXJpXCA7CivlvpLlvJ8gPCB0b3RlaVwgOwor55+t5rCXIDwgdGFua2lcIDsKK+awkeWutiA8IG1pbmthXCA7Civlt67ph5EgPCBzYWtpblwgOwor6YOo5pWwIDwgYnVzdXVcIDsKK+W6g+e+qSA8IGtvdWdpXCA7Civli4fmraYgPCB5dXVidVwgOwor5YWI6aeGIDwgc2Vua3VcIDsKK+mCquazlSA8IGphaG91XCA7Civlv4zlnqMgPCBpZ2FraVwgOwor5YmN56eRIDwgemVua2FcIDsKK+awj+WtkCA8IHVqaWtvXCA7Civlt67phY0gPCBzYWhhaVwgOwor55+t5q2MIDwgdGFua2FcIDsKK+WGhemHjiA8IG5haXlhXCA7Civnm7joo5wgPCBzb3Vob1wgOwor5bym5q2MIDwgZ2Vua2FcIDsKK+WNg+WutiA8IHNlbmtlXCA7Civoi6bpm6MgPCBrdW5hblwgOwor5byY5rOVIDwgZ3Vob3VcIDsKK+apn+i7oiA8IGtpdGVuXCA7CivnoLTmiJIgPCBoYWthaVwgOwor5q+A5pCNIDwga2lzb25cIDsKK+WNgeWtlyA8IGp1dWppXCA7Civlt67pgaMgPCBzYWtlblwgOwor5b6h5a60IDwgZ3lvZW5cIDsKK+WLmOafuyA8IGthbnNhXCA7Civnn67mqLkgPCB3YWlqdVwgOwor55m96ZuoIDwgaGFrdXVcIDsKK+W+oeWuhSA8IG90YWt1XCA7CivlhoXpg6ggPCBuYWlidVwgOwor5Ya36KqeIDwgcmVpZ29cIDsKK+W6p+emhSA8IHphemVuXCA7CivojbfokYkgPCBrYXlvdVwgOwor6Ium6ZeYIDwga3V0b3VcIDsKK+i+nuitsiA8IGppam91XCA7CivljLvlraYgPCBpZ2FrdVwgOwor5Yqg5ribIDwga2FnZW5cIDsKK+W6p+ekvCA8IHphcmVpXCA7CivphZLlmaggPCBzaHVraVwgOwor5bem6YG3IDwgc2FzZW5cIDsKK+eZu+mZoiA8IHRvdWluXCA7CivlhYjpnZ4gPCBzZW5waVwgOwor6YGL55e0IDwgdW5jaGlcIDsKK+W4guiyuyA8IHNoaWhpXCA7CivlvoDlubQgPCBvdW5lblwgOwor5bqc56iOIDwgZnV6ZWlcIDsKK+eglOaRqSA8IGtlbm1hXCA7Civlt6Hpgo8gPCBqdW5yYVwgOwor5Ymj55K9IDwga2VuamlcIDsKK+WFjemZpCA8IG1lbmpvXCA7CivoirHprYEgPCBvaXJhblwgOwor5bu25rueIDwgZW50YWlcIDsKK+W3pui+uiA8IHNhaGVuXCA7Civlvq7lobUgPCBtaWppblwgOwor6YOo5omAIDwgYnVzaG9cIDsKK+WMueWppiA8IGhpcHB1XCA7CivlhYnpmbAgPCBrb3VpblwgOwor5qyh55S3IDwgamluYW5cIDsKK+WKoOazlSA8IGthaG91XCA7CivlvozlsL4gPCBrb3ViaVwgOwor5YaG6LuiIDwgZW50ZW5cIDsKK+mBk+eQhiA8IGRvdXJpXCA7CivmrbPmrKEgPCBzYWlqaVwgOwor5YaX6LK7IDwgam91aGlcIDsKK+WIpeeuhyA8IGJla2tvXCA7CivojLboqbEgPCBjaGF3YVwgOwor5q+N5oCnIDwgYm9zZWlcIDsKK+awl+WcjyA8IGtpa2VuXCA7CivluILorbAgPCBzaGlnaVwgOwor5rCX5ZujIDwga2lkYW5cIDsKK+W/nOWIhiA8IG91YnVuXCA7CivlvqHlpKcgPCBvbnRhaVwgOwor5Yqg5rC0IDwga2FzdWlcIDsKK+avm+W4gyA8IG1vdWZ1XCA7Civlho3otbcgPCBzYWlraVwgOwor5rC45YqrIDwgZWlnb3VcIDsKK+awtOWMliA8IHN1aWthXCA7CivpgJTnq68gPCB0b3RhblwgOwor6YO95bqmIDwgdHN1ZG9cIDsKK+avjeW9oiA8IGJva2VpXCA7CivlubPntKAgPCBoZWlzb1wgOwor5Yu/5oCqIDwgbW9ra2VcIDsKK+WGmeitnCA8IHNoYWZ1XCA7CivmraPmr5QgPCBzZWloaVwgOwor5b285bK4IDwgaGlnYW5cIDsKK+WNsOWIpCA8IGlucGFuXCA7Civmr47luqYgPCBtYWlkb1wgOwor5YWo6YO9IDwgemVudG9cIDsKK+WNsOWIgCA8IGludG91XCA7Civlhajpg6ggPCB6ZW5idVwgOwor5rC05YipIDwgc3VpcmlcIDsKK+W9qeW6piA8IHNhaWRvXCA7CivlvaLlvbEgPCBrZWllaVwgOwor5Yil56eRIDwgYmVra2FcIDsKK+mBoOeBqyA8IHRvb2JpXCA7CivokYnmnKsgPCBoYXp1ZVwgOwor5b+r5LqLIDwga2FpamlcIDsKK+W6nOecjCA8IGZ1a2VuXCA7Civlhpfoqp4gPCBqb3Vnb1wgOwor5Yy65Z+fIDwga3Vpa2lcIDsKK+W3qOiyuyA8IGt5b2hpXCA7CivlvqHlnYogPCBnb2JvdVwgOwor55+i5p2lIDwgeWFyYWlcIDsKK+WMluWwjiA8IGtlZG91XCA7Civoi7HpgoEgPCBlaW1haVwgOwor5b6M5aa7IDwgZ29zYWlcIDsKK+avlOWztiA8IGhpdG91XCA7CivljZjlj6UgPCB0YW5rdVwgOwor5rCX5ZOBIDwga2loaW5cIDsKK+WGjeitsCA8IHNhaWdpXCA7Civlt6XosrsgPCBrb3VoaVwgOwor5Yud5omLIDwga2F0dGVcIDsKK+ecvOeqqSA8IGdhbmthXCA7CivluIPooosgPCBob3RlaVwgOwor6Im26bqXIDwgZW5yZWlcIDsKK+WEqumbhSA8IHl1dWdhXCA7Civmr5vlrZQgPCBrZWFuYVwgOwor56C05bGLIDwgaGFva3VcIDsKK+WLpOaDsCA8IGtpbmRhXCA7CivlhoXorbAgPCBuYWlnaVwgOwor5q2U5qy3IDwga3lva2lcIDsKK+i8uOmKgCA8IHl1Z2luXCA7Civlhajouq8gPCB6ZW5rdVwgOwor5bmz56mPIDwgaGVpb25cIDsKK+WNs+S9jSA8IHNva3VpXCA7Civluo/nm6QgPCBqb2JhblwgOwor6L+R57+SIDwga2luanVcIDsKK+aooemAoCA8IG1vem91XCA7Civmr43lsYsgPCBvbW95YVwgOwor6a2R6a2FIDwgY2hpbWlcIDsKK+awuOS9jyA8IGVpanV1XCA7Civnm67ojLYgPCBtZWNoYVwgOwor5YWs6LevIDwga291cm9cIDsKK+WIh+espiA8IGtpcHB1XCA7CivmqKrou6IgPCBvdXRlblwgOwor5bm056efIDwgbmVuc29cIDsKK+i7jem8kyA8IGd1bmtvXCA7CivljYrlj68gPCBoYW5rYVwgOwor5Y2K5Y+lIDwgaGFua3VcIDsKK+WNmOWIqSA8IHRhbnJpXCA7CivlvrPljJYgPCB0b2trYVwgOwor5Yip55uKIDwgcmlla2lcIDsKK+asoeeCuSA8IGppdGVuXCA7CivlvZPluqcgPCB0b3V6YVwgOwor5b6T5ZugIDwganV1aW5cIDsKK+awuOS7oyA8IGVpdGFpXCA7CivmsJfli6IgPCBraXNlaVwgOwor5q2v5py2IDwgc2hpZGFcIDsKK+ats+aariA8IHNlaWJvXCA7CivlvbzlpbQgPCBhaXRzdVwgOwor5b6p5Y+kIDwgZnVra29cIDsKK+WHhOiJtiA8IHNlaWVuXCA7Civmr43lrZAgPCBib3NoaVwgOwor6YGg5rW3IDwgZW5rYWlcIDsKK+awl+WJjSA8IGtpbWFlXCA7CivljYPlj6QgPCBzZW5rb1wgOwor5Ya36I+TIDwgcmVpa2FcIDsKK+W8leaVsCA8IGluc3V1XCA7CivljKrlm6MgPCBoaWRhblwgOwor6YWN5YKZIDwgaGFpYmlcIDsKK+W+ruWLlSA8IGJpZG91XCA7CivmsLjkuJYgPCBlaXNlaVwgOwor5q615beuIDwgZGFuc2FcIDsKK+W9ueWkqyA8IGVraWZ1XCA7CivmsJfliIYgPCBraWJ1blwgOwor6YWS5L+dIDwgc2h1aG9cIDsKK+W8t+aEjyA8IGt5b3VpXCA7CivlhoXopo8gPCBuYWlraVwgOwor6YGg5rOzIDwgZW4nJ2VpXCA7CivojYnoirEgPCBzb3VrYVwgOwor6YWU5L2ZIDwgc3VpeW9cIDsKK+iSsuWboyA8IGZ1dG9uXCA7CivlvqHlj7AgPCBtaWRhaVwgOwor6LuN6baPIDwgc2hhbW9cIDsKK+mAo+eQhiA8IHJlbnJpXCA7CivpgqrmjqggPCBqYXN1aVwgOwor5rCR5YipIDwgbWlucmlcIDsKK+mBi+a8lSA8IHVuc291XCA7CivpgKPnj6AgPCByZW5qdVwgOwor5Yip55SoIDwgcml5b3VcIDsKK+W+ruWIhiA8IGJpYnVuXCA7CivljYjliY0gPCBnb3plblwgOwor6Iux6LOHIDwgZWlzaGlcIDsKK+WGheijjyA8IGRhaXJpXCA7CivovLjpgIEgPCB5dXNvdVwgOwor5YWI6YCUIDwgc2VuZG9cIDsKK+WKqeaUuyA8IGpva291XCA7Civmrr/lrocgPCBkZW4nJ3VcIDsKK+iKn+mZpCA8IHNhbmpvXCA7CivliIfno4sgPCBzZXNzYVwgOwor5rCR5YW3IDwgbWluZ3VcIDsKK+m1hOWwviA8IHNoaWJpXCA7CivljLvljZogPCBpaGFrdVwgOwor6Iy26I+TIDwgY2hha2FcIDsKK+W+ruWFiSA8IGJpa291XCA7CivmranmlbAgPCBob3N1dVwgOwor5q+O5aScIDwgbWFpeW9cIDsKK+atpuaWrSA8IGJ1ZGFuXCA7CivljZjkvY0gPCB0YW4nJ2lcIDsKK+WFvOijnCA8IGtlbnBvXCA7CivliqDmlbAgPCBrYXN1dVwgOwor5b2T5a62IDwgdG91a2VcIDsKK+W8t+W8lSA8IGdvdWluXCA7CivlvpLlkI0gPCBhZGFuYVwgOwor5b6h5Ye4IDwgb2Rla29cIDsKK+W9k+WtlyA8IGF0ZWppXCA7CivphY3kuIsgPCBoYWlrYVwgOwor5YWs6Ki0IDwga291c29cIDsKK+W5s+eZkiA8IGhlaXl1XCA7CivnmbrotbcgPCBob2traVwgOwor5rCX5L2TIDwga2l0YWlcIDsKK+mCquaFsyA8IGpha2VuXCA7CivljLrliIYgPCBrdWJ1blwgOwor6YG/5pqRIDwgaGlzaG9cIDsKK+mBiuazsyA8IHl1dWVpXCA7CivljLrlh6YgPCBrdXNob1wgOwor5q+N5aCCIDwgYm9kb3VcIDsKK+W+oeWFjSA8IGdvbWVuXCA7CivlvqHlhYggPCBvc2FraVwgOwor6Iy26IiXIDwgY2hhaG9cIDsKK+WLh+W+gCA8IHl1dW91XCA7CivlvJPmiYsgPCB5dW5kZVwgOwor5Y2X5LiLIDwgbmFua2FcIDsKK+WMuuWGhSA8IGt1bmFpXCA7CivoibLpppkgPCBpcm9rYVwgOwor5b6S5Yq0IDwgdG9yb3VcIDsKK+WFmuitsCA8IHRvdWdpXCA7CivpgqrmgqogPCBqYWFrdVwgOwor5bm055SrIDwgbmVucG9cIDsKK+mDqOWkliA8IGJ1Z2FpXCA7CivmrYzmm7ggPCBrYXNob1wgOwor5Ymb5rCXIDwgZ291a2lcIDsKK+W8p+W9oiA8IGtva2VpXCA7Civli6LlrrYgPCBzZWlrYVwgOwor5YqD5pyfIDwga2Fra2lcIDsKK+egguWyqSA8IHNhZ2FuXCA7CivpgqrmgYsgPCBqYXJlblwgOwor5rCX5LiIIDwga2lqb3VcIDsKK+W+qeS9jSA8IGZ1a3VpXCA7CivlvpLliJEgPCB0b2tlaVwgOwor55uu57eaIDwgbWVzZW5cIDsKK+iQjOacqCA8IG1vZWdpXCA7CivlhrfnvbUgPCByZWliYVwgOwor5rCR5LqLIDwgbWluamlcIDsKK+efqeW9oiA8IGt1a2VpXCA7Civpgbrml48gPCBpem9rdVwgOwor5q+b5ZSQIDwga2V0b3VcIDsKK+WFqOijuCA8IHplbnJhXCA7Civpgqrlv7UgPCBqYW5lblwgOwor5Yqp5oiQIDwgam9zZWlcIDsKK+i7jemmrCA8IGd1bmJhXCA7CivlibXmoYggPCBzb3VhblwgOwor5qih6KmmIDwgbW9zaGlcIDsKK+mBiuatqSA8IHl1dWhvXCA7Civlh7nnnLwgPCBvdWdhblwgOwor5b2T5aScIDwgdG91eWFcIDsKK+i7iummrCA8IHNoYWJhXCA7CivliqDmi4UgPCBrYXRhblwgOwor6bSo5bGFIDwga2Ftb2lcIDsKK+W+oeS+myA8IG90b21vXCA7CivlvpLlhZogPCB0b3RvdVwgOwor5YaG6JOLIDwgZW5nYWlcIDsKK+WNg+S7oyA8IGNoaXlvXCA7CivlhYTosrQgPCBhbmlraVwgOwor6Ium6KiAIDwga3VnZW5cIDsKK+W+oeS8vSA8IG90b2dpXCA7CivljJblkIggPCBrYWdvdVwgOwor5Yip54K5IDwgcml0ZW5cIDsKK+msvOmdoiA8IGtpbWVuXCA7CivovL/oq5YgPCB5b3JvblwgOwor5Y2B5LqUIDwganV1Z29cIDsKK+atu+W+jCA8IHNoaWdvXCA7CivljYHkuowgPCBqdXVuaVwgOwor5qiq6KGMIDwgb3Vrb3VcIDsKK+W+oeS7gSA8IGdvamluXCA7CivlvozlhYkgPCBnb2tvdVwgOwor5YWI6K2wIDwgc2VuZ2lcIDsKK+mBoOadpSA8IGVucmFpXCA7CivliY3mra8gPCBtYWViYVwgOwor6YGg5pybIDwgZW5ib3VcIDsKK+WHuueVqiA8IGRlYmFuXCA7Civnn6Xlt7EgPCBjaGlraVwgOwor5Yqx5bynIDwgcmVpa29cIDsKK+eci+egtCA8IGthbnBhXCA7CivlvqHkuIogPCBva2FtaVwgOwor5YWN6Ki0IDwgbWVuc29cIDsKK+W9ueWLmSA8IGVraW11XCA7Civokpnlj6QgPCBtb3Vrb1wgOwor5Yag6ICFIDwga2FuamFcIDsKK+W7g+ajhCA8IGhhaWtpXCA7CivliKnmvaQgPCByaWp1blwgOwor5YOn6ZmiIDwgc291aW5cIDsKK+i7jemdtCA8IGd1bmthXCA7CivlhqTnvaogPCBlbnphaVwgOwor6YGg5pmvIDwgZW5rZWlcIDsKK+WGheiLkSA8IG5haWVuXCA7Civlu4PmoYggPCBoYWlhblwgOwor6LuN6ZyAIDwgZ3VuanVcIDsKK+msvOmWgCA8IGtpbW9uXCA7CivpgaDmlrkgPCBlbnBvdVwgOwor5bem6Ii3IDwgc2FnZW5cIDsKK+WFgeiosSA8IGlua3lvXCA7CivluLDnpL4gPCBraXNoYVwgOwor5Yqj5bynIDwgcmVra29cIDsKK+mDqOWTgSA8IGJ1aGluXCA7CivnoILlobUgPCBzYWppblwgOwor5Yid5ryUIDwgc2hvZW5cIDsKK+atqeW7iiA8IGhvcm91XCA7CivmrYzmiYsgPCBrYXNodVwgOwor5b6M5LqLIDwga291amlcIDsKK+WLh+WppiA8IHl1dWZ1XCA7CivmrarluqYgPCB3YWlkb1wgOwor5bmz54KJIDwgaGVpcm9cIDsKK+i+suenkSA8IG5vdWthXCA7CivmrablvIEgPCBidWJlblwgOwor6YO95YaFIDwgdG9uYWlcIDsKK+W8n+WtkCA8IGRlc2hpXCA7Civlt6bohLMgPCBzYW5vdVwgOwor5Yqg5bm0IDwga2FuZW5cIDsKK+i/keeVvyA8IGtpbmtpXCA7CivlvIHluqcgPCBiZW56YVwgOwor5Yil5rS+IDwgYmVwcGFcIDsKK+ato+W6pyA8IHNlaXphXCA7CivlvJXlsI4gPCBpbmRvdVwgOwor6YCj5q2MIDwgcmVuZ2FcIDsKK+mtlOmBkyA8IG1hZG91XCA7CivlvbHlg48gPCBlaXpvdVwgOwor5ber6ICFIDwgZnVzaGFcIDsKK+WHueeJiCA8IG91YmFuXCA7CivlhoXogLMgPCBuYWlqaVwgOwor5b2T5ZCmIDwgdG91aGlcIDsKK+WIqeawtCA8IHJpc3VpXCA7CivpgKDmrKEgPCB6b3VqaVwgOwor5YWt6IqxIDwgcmlra2FcIDsKK+WHpueQhiA8IHNob3JpXCA7Civlu7blvJUgPCBlbicnaW5cIDsKK+edv+aZuiA8IGVpY2hpXCA7Civlhavoi6YgPCBoYWtrdVwgOwor5q+U5YCrIDwgaGlyaW5cIDsKK+mBjuaVjyA8IGthYmluXCA7Civlu7blu7YgPCBlbicnZW5cIDsKK+WLleWboCA8IGRvdWluXCA7CivlvIrlsaUgPCBoZWlyaVwgOwor6YG65b6zIDwgaXRva3VcIDsKK+egtOWAqyA8IGhhcmluXCA7CivljJfkuqwgPCBwZWtpblwgOwor56CC5Zi0IDwgc2FzaGlcIDsKK+WJjeacnyA8IHplbmtpXCA7CivmrKHmlbAgPCBqaXN1dVwgOwor6YCg5qmfIDwgem91a2lcIDsKK+avlOS+iyA8IGhpcmVpXCA7Civpg6jliIYgPCBidWJ1blwgOwor5YaN57iBIDwgc2FpZW5cIDsKK+ebruecqSA8IG1lbWFpXCA7CivmqLnohIIgPCBqdXNoaVwgOwor5q6L5Z+6IDwgemFua2lcIDsKK+mAuOabuCA8IGlzc2hvXCA7Civpg73kvJogPCB0b2thaVwgOwor5qy95oWVIDwga2luYm9cIDsKK+mDqOWGhSA8IGJ1bmFpXCA7Civlha3ohZEgPCByb3BwdVwgOwor6YCT5qyhIDwgdGVpamlcIDsKK+mDveS6uiA8IHRvamluXCA7CivpgYvmkKwgPCB1bnBhblwgOwor5YmN5pelIDwgbWFlYmlcIDsKK+avjeS9kyA8IGJvdGFpXCA7CivliKnmqKkgPCByaWtlblwgOwor6YG35bqnIDwgc2VuemFcIDsKK+WKoOWusyA8IGthZ2FpXCA7CivpgaDmha4gPCBlbnJ5b1wgOwor5Yun5YyWIDwga2FuZ2VcIDsKK+WLh+WbsyA8IHl1dXRvXCA7Civoj6nmj5AgPCBib2RhaVwgOwor5YOn6YO9IDwgc291enVcIDsKK+atpuWumCA8IGJ1a2FuXCA7CivliJ3mrakgPCBzaG9ob1wgOwor55+z5ZmoIDwgc2Vra2lcIDsKK+mAgOayuyA8IHRhaWppXCA7Civoj7LmiY0gPCBoaXNhaVwgOwor5Yuk5YuZIDwga2lubXVcIDsKK+ato+WtlyA8IHNlaWppXCA7Civlt6jntLAgPCBrb3NhaVwgOwor6YGL5oyHIDwgdW5zaGlcIDsKK+mzpeWxhSA8IHRvcmlpXCA7CivlubPmsJcgPCBoZWlraVwgOwor6YCj5p62IDwgcmVua2FcIDsKK+WIhua0viA8IGJ1bnBhXCA7Civou43pg6ggPCBndW5idVwgOwor5Ye65rmvIDwgaWRleXVcIDsKK+W6puaVsCA8IGRvc3V1XCA7CivpgYrmioAgPCB5dXVnaVwgOwor6YCA5q2pIDwgdGFpaG9cIDsKK+mCpuWcnyA8IGhvdWRvXCA7Civpgb/lr5IgPCBoaWthblwgOwor6YOo5LyaIDwgYnVrYWlcIDsKK+WIqeaguSA8IHJpa29uXCA7CivltI7pmb0gPCBraXlvdVwgOwor5bm05qyhIDwgbmVuamlcIDsKK+W3ruetiSA8IHNhdG91XCA7Civou4zpgZMgPCBraWRvdVwgOwor6YG65bC/IDwgaW55b3VcIDsKK+atu+WboCA8IHNoaWluXCA7Civli7LkvY0gPCBrdW4nJ2lcIDsKK+iRrOWFtyA8IHNvdWd1XCA7CivlhobnrZIgPCBlbnRvdVwgOwor5YiG5q+NIDwgYnVuYm9cIDsKK+iMtuebriA8IGNoYW1lXCA7CivlupfmmK8gPCB0ZW56ZVwgOwor5Yuf5YW1IDwgYm9oZWlcIDsKK+auv+S4iyA8IGRlbmthXCA7CivmrJ3mhqQgPCB1cHB1blwgOwor6JGs5YSAIDwgc291Z2lcIDsKK+mBleW/gyA8IGlzaGluXCA7CivlvLHljJYgPCBqYWtrYVwgOwor5Yqg5aKXIDwga2F6b3VcIDsKK+mBiuaDsCA8IHl1dWRhXCA7Civli5/lgrUgPCBib3NhaVwgOwor6YGO5oCgIDwga2F0YWlcIDsKK+WHuuaxgSA8IGRhc2hpXCA7Civnm6PnkIYgPCBrYW5yaVwgOwor5YmN5oivIDwgemVuZ2lcIDsKK+W4q+eItiA8IHNoaWZ1XCA7CivlurjmhJogPCB5b3VndVwgOwor5byV5ZapIDwgaW4nJ3l1XCA7CivluJ3njosgPCB0ZWlvdVwgOwor6YG/5aaKIDwgaGluaW5cIDsKK+WGheenkSA8IG5haWthXCA7Civluo/mlocgPCBqb2J1blwgOwor6LuN6LevIDwgZ3Vucm9cIDsKK+W6j+aVsCA8IGpvc3V1XCA7Civmrovli5kgPCB6YW5tdVwgOwor5Yid5pyfIDwgc2hva2lcIDsKK+i6q+mHjSA8IG1pb21vXCA7CivluqfmiYAgPCB6YXNob1wgOwor6Lyq6IieIDwgcmluYnVcIDsKK+mAlOaWuSA8IHRvaG91XCA7CivlhIDoo4UgPCBnaXNvdVwgOwor5bm95pqXIDwgeXV1YW5cIDsKK+iLseexsyA8IGVpYmVpXCA7Civou43osrsgPCBndW5waVwgOwor6a2U6KGXIDwgbWFnYWlcIDsKK+i7ouiomyA8IHRlbmthXCA7Civou6LoqJggPCB0ZW5raVwgOwor5Yex5q2MIDwgZ2Fpa2FcIDsKK+asoeW5tCA8IGppbmVuXCA7CivpgbrloqggPCBpYm9rdVwgOwor6YGF5bu2IDwgY2hpZW5cIDsKK+W5vOaZgiA8IHlvdWppXCA7Civnm4bnlLsgPCBib25nYVwgOwor5YiR5pyfIDwga2Vpa2lcIDsKK+W5tOacnyA8IG5lbmtpXCA7Civli5XkvZwgPCBkb3VzYVwgOwor5Ye65qeYIDwgZGV5b3VcIDsKK+iKuOiLkSA8IGdlaWVuXCA7CivlvKflhYkgPCBrb2tvdVwgOwor5q2M5aOHIDwga2FkYW5cIDsKK+WFteenkSA8IGhlaWthXCA7Civliqnlkb0gPCBqb21laVwgOwor6auY6ZuFIDwga291Z2FcIDsKK+W4uOa4qSA8IGpvdW9uXCA7CivliY3lvowgPCB6ZW5nb1wgOwor5q2m5ZWPIDwgYnVtb25cIDsKK+WKtOWLmSA8IHJvdW11XCA7Civlt67nm4ogPCBzYWVraVwgOwor6YCj5omTIDwgcmVuZGFcIDsKK+WEquiJtiA8IHl1dWVuXCA7CivoirHojI4gPCBrYWtlaVwgOwor56CC5LiKIDwgc2Fqb3VcIDsKK+i7jeitsCA8IGd1bmdpXCA7CivlubPmmYIgPCBoZWlqaVwgOwor5LyK5ZGC5rOiIDwgaXJvaGFcIDsKK+WGhuebpCA8IGVuYmFuXCA7Civlgb3pm7sgPCBnaWRlblwgOwor55qu55u4IDwgaGlzb3VcIDsKK+i/lOatjCA8IGhlbmthXCA7CivliY3luqcgPCB6ZW56YVwgOwor55ep6LqvIDwgc291a3VcIDsKK+WIhuacqCA8IGJ1bmdpXCA7CivmraPlk6EgPCBzZWlpblwgOwor5YaF55quIDwgbmFpaGlcIDsKK+aooeevhCA8IG1vaGFuXCA7Civoir3og54gPCBnYWhvdVwgOwor5YiA5p62IDwgdG91a2FcIDsKK+i8ieiNtyA8IHNhaWthXCA7Civnmq7nmawgPCBoaXplblwgOwor6YGK5bGxIDwgeXVzYW5cIDsKK+atpuWQjSA8IGJ1bWVpXCA7CivkupzpiZvoj68gPCBhZW5rYVwgOwor6IqZ6JOJIDwgZnV5b3VcIDsKK+atu+WFkCA8IHNoaWppXCA7CivlupXmhI8gPCBzb2tvaVwgOwor6Ieq6aaWIDwgamlzaHVcIDsKK+i7jeiomCA8IGd1bmtpXCA7CivliqPljJYgPCByZWtrYVwgOwor6YGg5aSnIDwgZW5kYWlcIDsKK+WFt+ecvCA8IGd1Z2FuXCA7CivmrKHlrpggPCBqaWthblwgOwor5qyh5a2QIDwgamlzaGlcIDsKK+atpuWLsiA8IGJ1a3VuXCA7Civlu7blkb0gPCBlbm1laVwgOwor5YWD57SgIDwgZ2Vuc29cIDsKK+atpuWLhyA8IGJ1eXV1XCA7Civmrablip8gPCBidWtvdVwgOwor5bu35ZCPIDwgdGVpcmlcIDsKK+WGhueSsCA8IGVua2FuXCA7CivlsqnprZogPCBpd2FuYVwgOwor5Yid5omLIDwgc2hvdGVcIDsKK+WEque+jiA8IHl1dWJpXCA7CivlhJLoia8gPCBqdWdvblwgOwor5YWQ56ulIDwgamlkb3VcIDsKK+atk+WRvCA8IGthbmtvXCA7Civps7Plh7AgPCBob3VvdVwgOwor55+l5LqLIDwgY2hpamlcIDsKK+mBk+WkriA8IGRvdW91XCA7Civou43ooaMgPCBndW4nJ2lcIDsKK+WItuW6piA8IHNlaWRvXCA7CivmranlhbUgPCBob2hlaVwgOwor5YGc6Z+zIDwgdGVpb25cIDsKK+W8leS+iyA8IGlucmVpXCA7Civnl7ToqbEgPCBjaGl3YVwgOwor5Yqg5YagIDwga2FrYW5cIDsKK+mAo+W6pyA8IHJlbnphXCA7CivpgaDlnLAgPCBlbmNoaVwgOwor55m956aNIDwgaGFra2FcIDsKK+mBjuWkpyA8IGthZGFpXCA7Civoi5vnqI4gPCBrYXplaVwgOwor6YGK5aWzIDwgeXV1am9cIDsKK+i8nee3miA8IGtpc2VuXCA7CivlhaXnm7ggPCBpcmlhaVwgOwor6IqL6IyOIDwgenVpa2lcIDsKK+eWjumWiyA8IHNva2FpXCA7CivliY3lqaYgPCB6ZW5wdVwgOwor5YGP6aCXIDwgaGVucGFcIDsKK+mBt+WMliA8IHNlbmdlXCA7Civntq3mjIHosrsgPCBpamloaVwgOwor6JC95LiLIDwgcmFra2FcIDsKK+WFt+ePviA8IGd1Z2VuXCA7CivlhrfmsJcgPCByZWlraVwgOwor5YSS6ICFIDwganVzaGFcIDsKK+iIl+mBkyA8IGhvZG91XCA7CivlhYjnpZYgPCBzZW56b1wgOwor55m656C0IDwgaGFwcGFcIDsKK+eVs+mfuyA8IGpvdWluXCA7Civnm7jmo5IgPCBhaWJvdVwgOwor5buD5ZySIDwgaGFpZW5cIDsKK+i/keaZgiA8IGtpbmppXCA7CivprZrogqUgPCBneW9oaVwgOwor6LqN6LW3IDwgeWFra2lcIDsKK+iKsee0iyA8IGthbW9uXCA7CivlhYPnpZYgPCBnYW5zb1wgOwor55uX5rGXIDwgbmVhc2VcIDsKK+atpuS6uiA8IGJ1amluXCA7CivoirHnsokgPCBrYWZ1blwgOwor6Iie6LmIIDwgYnV0b3VcIDsKK+W5vuW6piA8IGlrdWRvXCA7CivmrKHlm54gPCBqaWthaVwgOwor6ayx6JK8IDwgdXNzb3VcIDsKK+iInui4iiA8IGJ1eW91XCA7CivovKrnpo0gPCByaW5rYVwgOwor5YiR5b6SIDwga2VpdG9cIDsKK+W5tOW+jCA8IG5lbmdvXCA7CivpgKPlrZAgPCByZW5qaVwgOwor55u45p2/IDwgYWliYW5cIDsKK+WJjeWgtCA8IHplbmJhXCA7CivnlLDpuqkgPCBkZW5idVwgOwor5Ye55omAIDwgb3VzaG9cIDsKK+WBvemAoCA8IGdpem91XCA7Civoi6bnlYwgPCBrdWdhaVwgOwor5bi45pmCIDwgam91amlcIDsKK+mChOS7mCA8IGthbnB1XCA7CivpgYvllrYgPCB1bicnZWlcIDsKK+W5tOW6piA8IG5lbmRvXCA7CivpgK7lpJwgPCB0YWl5YVwgOwor6YCA5bqnIDwgdGFpemFcIDsKK+WIqeWusyA8IHJpZ2FpXCA7CivoibHoi6YgPCBrYW5rdVwgOwor5qyh5ZaEIDwgaml6ZW5cIDsKK+WIqeWtkCA8IHJpc2hpXCA7CivliKXlrrYgPCBiZWtrZVwgOwor6YG65L2cIDwgaXNha3VcIDsKK+iNkuacqCA8IGFyYWtpXCA7CivlsqnplpMgPCBpd2FtYVwgOwor5bqt5ZySIDwgdGVpZW5cIDsKK+mvqOazoiA8IGdlaWhhXCA7CivlubTlt64gPCBuZW5zYVwgOwor6a+o5rK5IDwgZ2VpeXVcIDsKK+i5tui1tyA8IGtla2tpXCA7CivlhobmuoAgPCBlbm1hblwgOwor6L6y5pyfIDwgbm91a2lcIDsKK+WIpOWtkCA8IGhhbmtvXCA7Civoj6/ljrMgPCBrZWdvblwgOwor6YGg5Ye6IDwgdG9vZGVcIDsKK+mBi+WRvSA8IHVubWVpXCA7CivpgZPljJYgPCBkb3VrZVwgOwor5q2M5LuZIDwga2FzZW5cIDsKK+i7oue+qSA8IHRlbmdpXCA7CivmrKHlj7cgPCBqaWdvdVwgOwor5q2M5Lq6IDwga2FqaW5cIDsKK+ebuOaSsiA8IHN1bW91XCA7CivoibbogZ4gPCBlbmJ1blwgOwor5bqP5aWPIDwgam9zb3VcIDsKK+i/keaJgCA8IGtpbmpvXCA7Civlh6HmiZMgPCBib25kYVwgOwor5Ye55b2iIDwgb3VrZWlcIDsKK+iIjuiyuyA8IHNoYWhpXCA7CivpgY7li6QgPCBrYWtpblwgOwor6YGO5Yq0IDwga2Fyb3VcIDsKK+iHqumCuCA8IGppdGVpXCA7CivpgYvli6IgPCB1bnNlaVwgOwor5beo5rOiIDwga3lvaGFcIDsKK+mBi+WLlSA8IHVuZG91XCA7Civovp7mn4QgPCBqaWhlaVwgOwor6YGO5YmwIDwga2Fqb3VcIDsKK+eVnemWkyA8IHVuZW1hXCA7Civoh6rpgbggPCBqaXNlblwgOwor6L6e5p6XIDwgamlyaW5cIDsKK+W5s+WutiA8IGhlaWtlXCA7CivpgLjlk4EgPCBpcHBpblwgOwor6YGT5YW3IDwgZG91Z3VcIDsKK+W5s+WuiSA8IGhlaWFuXCA7CivnmobnhKEgPCBrYWltdVwgOwor5Yeh5oSaIDwgYm9uZ3VcIDsKK+WIhuWykCA8IGJ1bmtpXCA7CivliY3lj6QgPCB6ZW5rb1wgOwor55S76aSFIDwgZ2FiZWlcIDsKK+S+neS8sOWcsCA8IGVrb2ppXCA7Civovp7mm7ggPCBqaXNob1wgOwor6YCg5ZySIDwgem91ZW5cIDsKK+WJsOS9mSA8IGpvdXlvXCA7Civlurbli5kgPCBzaG9tdVwgOwor55S76aKoIDwgZ2FmdXVcIDsKK+WEgOevhCA8IGdpaGFuXCA7CivoirPnnIkgPCBob3ViaVwgOwor5Yid5aScIDwgc2hveWFcIDsKK+aouea2siA8IGp1ZWtpXCA7CivliJ3lpI8gPCBzaG9rYVwgOwor5biM5pybIDwga2lib3VcIDsKK+W3qOatqSA8IGt5b2hvXCA7CivlubzlpbMgPCB5b3Vqb1wgOwor55S76aGMIDwgZ2FkYWlcIDsKK+WIhuWutiA8IGJ1bmtlXCA7CivluIzmm7ggPCBraXNob1wgOwor5biw5oqVIDwga2l0b3VcIDsKK+WGpOaeiSA8IGVuJydvdVwgOwor5qi55rW3IDwganVrYWlcIDsKK+W5vuWknCA8IGlrdXlvXCA7Civlub7lpJogPCBpa3V0YVwgOwor5qyh5YWEIDwgamlrZWlcIDsKK+asoeWFgyA8IGppZ2VuXCA7Civov7flrZAgPCBtYWlnb1wgOwor5qmf5qKwIDwga2lrYWlcIDsKK+W6p+WPsyA8IHpheXV1XCA7CivlubvlpKIgPCBnZW5tdVwgOwor5YWI54i2IDwgc2VucHVcIDsKK+mBoeS4iiA8IHNvam91XCA7CivmqZ/moLkgPCBraWtvblwgOwor5YG96KqTIDwgZ2lzZWlcIDsKK+mAoOWWtiA8IHpvdWVpXCA7CivoiJfoo4UgPCBob3NvdVwgOwor55Ww6YO3IDwgaWt5b3VcIDsKK+eUu+mdoiA8IGdhbWVuXCA7CivlgI3pn7MgPCBiYWlvblwgOwor5qOL6aKoIDwga2lmdXVcIDsKK+WBveioiCA8IGdpa2VpXCA7Civnm7jmhJsgPCBzb3VhaVwgOwor5YG96KiAIDwgZ2lnZW5cIDsKK+WBtuiqniA8IGd1dWdvXCA7CivmqZ/mnZAgPCBraXphaVwgOwor5qyh5L6/IDwgamliaW5cIDsKK+mAo+WRvCA8IHJlbmtvXCA7Civlt6bmp5ggPCBzYXlvdVwgOwor5YG26KmgIDwgZ3V1ZWlcIDsKK+mtlOelniA8IG1hamluXCA7Civlu4rkuIsgPCByb3VrYVwgOwor6amf6ZuoIDwgc2h1dXVcIDsKK+ebsuaEmyA8IG1vdWFpXCA7Civlho3moYggPCBzYWlhblwgOwor5oSP5rCX5ZywIDwgaWt1amlcIDsKK+WEgOekvCA8IGdpcmVpXCA7Civoh6ros5sgPCBqaXNhblwgOwor6YCj5Y+lIDwgcmVua3VcIDsKK+i3r+mgrSA8IHJvdG91XCA7Civov7flpKIgPCBtZWltdVwgOwor6Iux5rOVIDwgZWlob3VcIDsKK+iHquiyqSA8IGppaGFuXCA7Civoi6bmuIsgPCBrdWp1dVwgOwor55u45b+cIDwgc291b3VcIDsKK+asoeS7oyA8IGppZGFpXCA7CivlsL7psK0gPCBvYmlyZVwgOwor5bir5oGpIDwgc2hpb25cIDsKK+WFrOatpiA8IGtvdWJ1XCA7Civou6Lnp7sgPCB0ZW4nJ2lcIDsKK+i3r+mdoiA8IHJvbWVuXCA7CivlsqHovrogPCBva2FiZVwgOwor5YGJ6LmfIDwgaXNla2lcIDsKK+WFmua0viA8IHRvdWhhXCA7CivpgYvkuIogPCB1bmpvdVwgOwor5qWt6IumIDwgZ291a3VcIDsKK+WxpOmbsiA8IHNvdXVuXCA7Civluqflg48gPCB6YXpvdVwgOwor5bi35bmVIDwgaWJha3VcIDsKK+W4t+W4syA8IGljaG91XCA7CivliKnlj6MgPCByaWtvdVwgOwor5qmf5pWPIDwga2liaW5cIDsKK+WFpeatryA8IGlyZWJhXCA7CivlurbkuosgPCBzaG9qaVwgOwor6a2U552hIDwgbWFzdWlcIDsKK+aoquatuyA8IG91c2hpXCA7Civou4znr4QgPCBraWhhblwgOwor5YaG5pysIDwgZW5wb25cIDsKK+WEkueUnyA8IGp1c2VpXCA7Civlt6Hmn7sgPCBqdW5zYVwgOwor5YaN5pigIDwgc2FpZWlcIDsKK+W6teS4uyA8IGFuc2h1XCA7Civoh6roqo0gPCBqaW5pblwgOwor6Iqx54mHIDwga2FoZW5cIDsKK+msvOelniA8IGtpamluXCA7CivovLjmtrIgPCB5dWVraVwgOwor55SY6ZyyIDwga2Fucm9cIDsKK+aqgOW+kiA8IGRhbnRvXCA7CivnlbDosaEgPCBpc2hvdVwgOwor6IyC5p6XIDwgbW9yaW5cIDsKK+S/nemkiiA8IGhveW91XCA7CivlhYnms6IgPCBrb3VoYVwgOwor6Led6ZuiIDwga3lvcmlcIDsKK+W3puaWuSA8IHNhaG91XCA7CivluqfkuZcgPCB6YWpvdVwgOwor5qi55p6XIDwganVyaW5cIDsKK+mtlOeVjCA8IG1ha2FpXCA7CivlubPlkowgPCBoZWl3YVwgOwor5YW35pyJIDwgZ3V5dXVcIDsKK+WFrOahiCA8IGtvdWFuXCA7Civlh6blpbMgPCBzaG9qb1wgOwor5bid5bqnIDwgdGVpemFcIDsKK+WIkeWQjyA8IGtlaXJpXCA7CivpgIHlj5cgPCBzb3VqdVwgOwor5beu5pCNIDwgc2Fzb25cIDsKK+aooeanmCA8IG1veW91XCA7CivmqZ/miY0gPCBraXNhaVwgOwor5Yeh5aSrIDwgYm9ucHVcIDsKK+WIu+S4iyA8IGtva2thXCA7CivpgIDljJYgPCB0YWlrYVwgOwor5YeG5bCJIDwganVuJydpXCA7Civlhrblt6UgPCB5YWtvdVwgOwor5qiq5p+EIDwgb3VoZWlcIDsKK+WFuOaVhSA8IHRlbmtvXCA7CivoibLnm64gPCBpcm9tZVwgOwor5Yip5L6/IDwgcmliZW5cIDsKK+eUu+mBkyA8IGdhZG91XCA7Civot6/pioAgPCByb2dpblwgOwor6I2J5bGlIDwgem91cmlcIDsKK+S/nemZuiA8IGhva2VuXCA7CivlubTliKkgPCBuZW5yaVwgOwor6Iux5pu4IDwgZWlzaG9cIDsKK+WFreaXpSA8IG11aWthXCA7CivliIbljLogPCBidW5rdVwgOwor5YWr5pelIDwgeW91a2FcIDsKK+WFrOaWuSA8IGt1Ym91XCA7CivmqKrmmrQgPCBvdWJvdVwgOwor5Yal5bqcIDwgbWVpZnVcIDsKK+WIkeWFtyA8IGtlaWd1XCA7Civoi6bmna8gPCBrdWhhaVwgOwor6Iux5piOIDwgZWltZWlcIDsKK+aqgOWutiA8IGRhbmthXCA7CivmqKHmnKwgPCBtb2hvblwgOwor5YWl5pelIDwgaXJpaGlcIDsKK+WwvumVtyA8IG9uYWdhXCA7CivovrLlqaYgPCBub3VmdVwgOwor5bCP6ayiIDwga29iaW5cIDsKK+WIpOS6iyA8IGhhbmppXCA7CivliIbliKkgPCBidW5yaVwgOwor6Iux5patIDwgZWlkYW5cIDsKK+WCheiCsiA8IGZ1aWt1XCA7CivmqKrmlq0gPCBvdWRhblwgOwor6Iux5paHIDwgZWlidW5cIDsKK+WHoeWZqCA8IGJvbmtpXCA7Civoi7HmlbAgPCBlaXN1dVwgOwor5Ya05a+SIDwgZ29rYW5cIDsKK+mAlOS4iiA8IHRvam91XCA7CivluIPlt74gPCBmdWtpblwgOwor55u45aC0IDwgc291YmFcIDsKK+mokumfsyA8IHNvdW9uXCA7CivlhZrmmK8gPCB0b3V6ZVwgOwor6L6y5aW0IDwgbm91ZG9cIDsKK+eUqOmAlCA8IHlvdXRvXCA7CivlhYnmoIQgPCBrb3VlaVwgOwor6Iy25bGLIDwgY2hheWFcIDsKK+i8v+acmyA8IHlvYm91XCA7Civoh6rokZcgPCBqaWNob1wgOwor5YWQ5pu5IDwgamlzb3VcIDsKK+WHuuWJjSA8IGRlbWFlXCA7CivlsI/ppqwgPCBrb3VtYVwgOwor6I235Y+wIDwgbmlkYWlcIDsKK+eUmOmFoiA8IGFtYXp1XCA7Civoi5fmnKggPCBuYWVnaVwgOwor6ae76aasIDwga2FuYmFcIDsKK+eUu+izmyA8IGdhc2FuXCA7Civnmb3ml5cgPCBoYWtraVwgOwor6YCB5LuYIDwgc291ZnVcIDsKK+WGheW/nCA8IG5haW91XCA7Civlh43lnJ8gPCB0b3Vkb1wgOwor5biv5ZywIDwgb2JpamlcIDsKK+i+uuWcnyA8IGhlbmRvXCA7CivlsL7pjKAgPCBiaWpvdVwgOwor5YiR5LqLIDwga2VpamlcIDsKK+WGhuW8viA8IGVuZGFuXCA7Civnm67lnqIgPCBtZWFrYVwgOwor6L+R5Y+kIDwga2lua29cIDsKK+i7vea1riA8IGtlaWZ1XCA7Civoi5vmloIgPCBrYXJlblwgOwor6Lui54KJIDwgdGVucm9cIDsKK+i+suWckiA8IG5vdWVuXCA7Civlt7vlsL4gPCBrYW5iaVwgOwor56eL5YiA6a2aIDwgc2FubWFcIDsKK+S9s+m6lyA8IGthcmVpXCA7CivoibbnhLYgPCBlbnplblwgOwor6Iux5omNIDwgZWlzYWlcIDsKK+iFsOmDqCA8IHlvdWJ1XCA7Civou73msrkgPCBrZWl5dVwgOwor5bmH5YqpIDwgaG91am9cIDsKK+WGheW4kSA8IG5haWRvXCA7CivnlLvoq4cgPCBnYWRhblwgOwor5YaZ5a2XIDwgc2hhamlcIDsKK+S+m+mkiiA8IGt1eW91XCA7CivlgJLoqp4gPCB0b3Vnb1wgOwor6ay854GrIDwgb25pYmlcIDsKK+mtmuayuSA8IGd5b3l1XCA7CivluJ3lnJ8gPCB0ZWlkb1wgOwor5qmf5auMIDwga2lnZW5cIDsKK+iKseaiqCA8IGthcmluXCA7CivlhYzmj5sgPCBkYWthblwgOwor6a2U5rOVIDwgbWFob3VcIDsKK+iLpuaIpiA8IGt1c2VuXCA7Civlgrfnl40gPCBzaG91aVwgOwor5YCZ6KOcIDwga291aG9cIDsKK+W4uOWLmSA8IGpvdW11XCA7CivluLDlj4IgPCBraXNhblwgOwor5YaG5bGFIDwgbWFkb2lcIDsKK+aoueW5uSA8IGp1a2FuXCA7Civoi6bmha4gPCBrdXJ5b1wgOwor6aas6b2iIDwgYmFyZWlcIDsKK+S9mem9oiA8IHlvcmVpXCA7Civnl5TnmLsgPCBqaXJvdVwgOwor5beo5a+MIDwga3lvZnVcIDsKK+WFrOW6qyA8IGtvdWtvXCA7CivlgpnnoLIgPCBiaWhvdVwgOwor5YWs5bqPIDwga291am9cIDsKK+iLpuaDhSA8IGt1am91XCA7CivojLblnJIgPCBjaGFlblwgOwor6Ium5oK2IDwga3Vtb25cIDsKK+iLpuaCqSA8IGt1bm91XCA7CivnlKjoqp4gPCB5b3Vnb1wgOwor5bem5a6YIDwgc2FrYW5cIDsKK+ankOaouSA8IGthaWp1XCA7CivlhpflpJogPCBqb3V0YVwgOwor6Luf5rS+IDwgbmFucGFcIDsKK+WFrOW4gyA8IGtvdWZ1XCA7CivnlbDohbkgPCBpZnVrdVwgOwor5YWI5omLIDwgc2VudGVcIDsKK+WFrOW3riA8IGtvdXNhXCA7CivojLblmaggPCBjaGFraVwgOwor6IeT6IWRIDwgem91ZnVcIDsKK+mssea7niA8IHV0dGFpXCA7CivmoYLppqwgPCBrZWltYVwgOwor6L+U5LuYIDwgaGVucHVcIDsKK+aihemFoiA8IHVtZXp1XCA7CivovrLli5kgPCBub3VtdVwgOwor5bi45YKZIDwgam91YmlcIDsKK+iLpuW9uSA8IGt1ZWtpXCA7CivoiIznpo0gPCB6ZWtrYVwgOwor5bWQ5rCXIDwgcmFua2lcIDsKK+aiteiqniA8IGJvbmdvXCA7CivnnIzkuIsgPCBrZW5rYVwgOwor6IWV6LyqIDwgdWRld2FcIDsKK+i1t+mbuyA8IGtpZGVuXCA7CivluKvlhJIgPCBzaGlqdVwgOwor5a626bSoIDwgYWhpcnVcIDsKK+WvnemhlCA8IG5lZ2FvXCA7CivovrLlhbcgPCBub3VndVwgOwor5biC5Za2IDwgc2hpZWlcIDsKK+WGhuWisyA8IGVucHVuXCA7CivoibLmsJcgPCBpcm9rZVwgOwor6L6e5Y67IDwgamlreW9cIDsKK+msvOatryA8IG9uaWJhXCA7CivlsIHpjpYgPCBmdXVzYVwgOwor6Iux5bGvIDwgZWl0b25cIDsKK+WwlumDqCA8IHNlbmJ1XCA7Civlt6XloLQgPCBrb3ViYVwgOwor55m65biDIDwgaGFwcHVcIDsKK+W4sOS7uyA8IGtpbmluXCA7CivlhYTlvowgPCBhbmlnb1wgOwor5YWr6YeN5q2vIDwgeWFlYmFcIDsKK+WAtuiAhSA8IGt1c2hhXCA7Civkv5roq7ogPCByaWdlblwgOwor5L+O6LGGIDwgc290b3VcIDsKK+eUn+idiyA8IGtpcm91XCA7CivlhYvlt7EgPCBrb2traVwgOwor5YaF5ZugIDwgbmFpaW5cIDsKK+i3m+ihjCA8IGhha291XCA7Civnm7LkuoAgPCBtb3VraVwgOwor6Ium5a+SIDwga3VrYW5cIDsKK+eWq+eXoiA8IGVraXJpXCA7Civnm5vlhIAgPCBzZWlnaVwgOwor5biC5Yy6IDwgc2hpa3VcIDsKK+mmrOmmliA8IGJhc2h1XCA7CivkvZnpppkgPCB5b2tvdVwgOwor55m75bGxIDwgdG96YW5cIDsKK+WGl+WPpSA8IGpvdWt1XCA7CivlpKfkvK/niLYgPCBvb29qaVwgOwor6L6y5LqLIDwgbm91amlcIDsKK+aoqeWogSA8IGtlbicnaVwgOwor55uu5LiLIDwgbW9ra2FcIDsKK+W2ruWyqCA8IGtlbnNvXCA7Civoh6rnpL4gPCBqaXNoYVwgOwor55aj55eUIDwgaWJvamlcIDsKK+S9memiqCA8IHlvZnV1XCA7CivkvZnpoZ4gPCB5b3J1aVwgOwor5YWQ5a2rIDwgamlzb25cIDsKK+mmrOmgrSA8IGJhdG91XCA7CivnlJjol7sgPCBhbWFtb1wgOwor5a626aKoIDwga2FmdXVcIDsKK+iJtuabuCA8IGVuc2hvXCA7CivlhKrlvKcgPCB5dXVrb1wgOwor6L6e5LukIDwgamlyZWlcIDsKK+ajieiKsSA8IG1lbmthXCA7CivmqZ/lhoUgPCBraW5haVwgOwor5YWs5ZuzIDwga291enVcIDsKK+WFteWWtiA8IGhlaWVpXCA7CivnlLDoiI4gPCBpbmFrYVwgOwor5bem5Y+zIDwgc2F5dXVcIDsKK+WFqOWcnyA8IHplbmRvXCA7Civlhajlm7MgPCB6ZW56dVwgOwor6IOv6ZaTIDwga29rYW5cIDsKK+eUu+iBliA8IGdhc2VpXCA7CivluIzku6MgPCBraWRhaVwgOwor5bCP6LGGIDwgYXp1a2lcIDsKK+WFteWToSA8IGhlaWluXCA7CivmoYjphY0gPCBhbmJhaVwgOwor5a626Zu7IDwga2FkZW5cIDsKK+WGheWLmSA8IG5haW11XCA7CivlsIrosrQgPCBzb25raVwgOwor5beu5YiGIDwgc2FidW5cIDsKK+WGheWKqSA8IG5haWpvXCA7Civnk6bop6MgPCBnYWthaVwgOwor5Yag5L2NIDwga2FuJydpXCA7CivmooXoposgPCB1bWVtaVwgOwor5bel5YuZIDwga291bXVcIDsKK+aooeWeiyA8IG1va2VpXCA7CivmoITppIogPCBlaXlvdVwgOwor5L+Y6JmcIDwgZnVyeW9cIDsKK+mtlOaJiyA8IG1hc2h1XCA7CivkvY7pm7IgPCB0ZWl1blwgOwor5biD5LukIDwgZnVyZWlcIDsKK+eZveWgiiA8IGhha3VhXCA7Civlhbzli5kgPCBrZW5tdVwgOwor6Lev6IKpIDwgcm9rZW5cIDsKK+S8vOmhlCA8IG5pZ2FvXCA7CivnlLLnvoUgPCBrb3VyYVwgOwor6Ieq55SxIDwgaml5dXVcIDsKK+ajhOiDjCA8IGtpaGFpXCA7Civkvr/ooaMgPCBiZW4nJ2lcIDsKK+WGhuWFiSA8IGVua291XCA7Civoh6rnlKggPCBqaXlvdVwgOwor5L2/6YCUIDwgc2hpdG9cIDsKK+i7veW+riA8IGtlaWJpXCA7CivlhbXljKogPCBoZWloaVwgOwor5bel5YW3IDwga291Z3VcIDsKK+eZu+WdgiA8IHRvaGFuXCA7Civlr4zpibEgPCBmdWtvdVwgOwor5L6u6KiAIDwgYnVnZW5cIDsKK+i8v+WcsCA8IHlvY2hpXCA7CivoirjlrZAgPCBnZWlrb1wgOwor6IOM6ZuiIDwgaGFpcmlcIDsKK+W3puWCviA8IHNha2VpXCA7Civkv53oj4wgPCBob2tpblwgOwor5YWr5Y2mIDwgaGFra2VcIDsKK+i7veW6piA8IGtlaWRvXCA7Civlt7TkurogPCBoYWppblwgOwor55S757SZIDwgZ2FzaGlcIDsKK+WFrOWLnyA8IGtvdWJvXCA7Civnlarnm64gPCBiYW5tZVwgOwor5aSn5Lyv5q+NIDwgb29vYmFcIDsKK+WFvOWCmSA8IGtlbmJpXCA7Civlr4Tph5EgPCBraWtpblwgOwor6LWw6LevIDwgc291cm9cIDsKK+mtlOW8viA8IG1hZGFuXCA7CivlsqHnm64gPCBva2FtZVwgOwor5a6Y6ZyAIDwga2FuanVcIDsKK+eRnumbsiA8IHp1aXVuXCA7Civpq5jmuKkgPCBrb3VvblwgOwor5bC+6IqxIDwgb2JhbmFcIDsKK+WvvuipsSA8IHRhaXdhXCA7CivkvJ3ppqwgPCB0ZW5tYVwgOwor6L2N5Y+JIDwgdGVzc2FcIDsKK+S+neiolyA8IGl0YWt1XCA7CivohLPoo6EgPCBub3VyaVwgOwor5qip5YyWIDwgZ29uZ2VcIDsKK+iLpuWQnyA8IGt1Z2luXCA7CivoirjlppMgPCBnZWlnaVwgOwor6Lev57eaIDwgcm9zZW5cIDsKK+i1pOi6qyA8IGFrYW1pXCA7CivlhbXlgpkgPCBoZWliaVwgOwor5a+M6L6yIDwgZnVub3VcIDsKK+S/rue+hSA8IHNodXJhXCA7CivoiqXlrZAgPCBrZXNoaVwgOwor55aR54K5IDwgZ2l0ZW5cIDsKK+aoveS/jiA8IHNvbnNvXCA7Civkvo3orJsgPCBqaWtvdVwgOwor6LuN5omLIDwgZ3VudGVcIDsKK+aoqeWIqSA8IGtlbnJpXCA7CivkvJrpo7IgPCBrYWlpblwgOwor5YW45L6NIDwgdGVuamlcIDsKK+WuiemdmSA8IGFuc2VpXCA7Civpp4Xot68gPCBla2lyb1wgOwor5YWl5YaFIDwganVkYWlcIDsKK+WFmuWLmSA8IHRvdW11XCA7CivlhbfkvZMgPCBndXRhaVwgOwor55m65Y+lIDwgaG9ra3VcIDsKK+iLpuWKtCA8IGt1cm91XCA7Civmp5jlrZAgPCB5b3VzdVwgOwor5L+d6IKyIDwgaG9pa3VcIDsKK+eUu+eovyA8IGdha291XCA7CivkvovoqbEgPCByZWl3YVwgOwor5YWo5YKZIDwgemVuYmlcIDsKK+WFmuWIqSA8IHRvdXJpXCA7Civoh6rngoogPCBqaXN1aVwgOwor5L2z6LOTIDwga2FoaW5cIDsKK+eUn+ezuCA8IGtpaXRvXCA7CivmqKHlhpkgPCBtb3NoYVwgOwor5YOn5b6SIDwgc291dG9cIDsKK+eWjua8jyA8IHNvcm91XCA7CivlronplpEgPCBhbmthblwgOwor5qi55LiKIDwganVqb3VcIDsKK+S9mei8qSA8IHlvaGFpXCA7CivmooXoirEgPCBiYWlrYVwgOwor5YSA5a65IDwgZ2l5b3VcIDsKK+eUsOennyA8IGRlbnNvXCA7Civppqzou4ogPCBiYXNoYVwgOwor5YWI5YuZIDwgc2VubXVcIDsKK+S/uuetiSA8IG9yZXJhXCA7CivmqKHlgKMgPCBtb2hvdVwgOwor5a+M6LGqIDwgZnVnb3VcIDsKK+mmrOi5hCA8IGJhdGVpXCA7Civot7XnpZogPCBzZW5zb1wgOwor6Lev56iLIDwgcm90ZWlcIDsKK+e0q+mbsuiLsSA8IGdlbmdlXCA7Civlr4TotIggPCBraXpvdVwgOwor5L2T6LqvIDwgdGFpa3VcIDsKK+eXtOaEmiA8IGNoaWd1XCA7Civog4zpg6ggPCBoYWlidVwgOwor5L+d57eaIDwgaG9zZW5cIDsKK+iLseS4uyA8IGVpc2h1XCA7CivlhYPliKkgPCBnZW5yaVwgOwor5YCr55CGIDwgcmlucmlcIDsKK+i7iuW6qyA8IHNoYWtvXCA7Civlr5PoqbEgPCBndXV3YVwgOwor55aP5rC0IDwgc29zdWlcIDsKK+S9meiyoSA8IHlvemFpXCA7CivohL7oh58gPCBoaXpvdVwgOwor5YOn5bC8IDwgc291bmlcIDsKK+eZuuS9nCA8IGhvc3NhXCA7Civoh6rmsrsgPCBqaWNoaVwgOwor55mS5ZCIIDwgeXVnb3VcIDsKK+WFheWCmSA8IGp1dWJpXCA7CivohL7ohasgPCBoaXNodVwgOwor5bC+57GgIDwgYmlyb3VcIDsKK+eXm+aJiyA8IGl0YWRlXCA7CivlrrbosqEgPCBrYXphaVwgOwor6Lui5amGIDwgdGVuYmFcIDsKK+msvOWtkCA8IG9uaWdvXCA7CivlrpjpgJQgPCBrYW50b1wgOwor6Ieq5rCRIDwgamltaW5cIDsKK+S/neeuoSA8IGhva2FuXCA7CivmoITou6IgPCBlaXRlblwgOwor5qSc5rOiIDwga2VucGFcIDsKK+Wtl+mdoiA8IGppbWVuXCA7Civot6/nm6QgPCByb2JhblwgOwor6Ii15omLIDwgZGFzaHVcIDsKK+S9meirhyA8IHlvZGFuXCA7Civlr4zoo5UgPCBmdXl1dVwgOwor55Sj552AIDwgdWJ1Z2lcIDsKK+WBj+azoiA8IGhlbmhhXCA7Civlgb3mnKwgPCBnaWhvblwgOwor6Im25ae/IDwgZW5zaGlcIDsKK+WEquWIqSA8IHl1dXJpXCA7CivmpbXmhI8gPCBnb2t1aVwgOwor5Luu6Z2iIDwga2FtZW5cIDsKK+WBveabuCA8IGdpc2hvXCA7CivlsqHmua8gPCBva2F5dVwgOwor5L+d56iOIDwgaG96ZWlcIDsKK+S9meioiCA8IHlva2VpXCA7Civlg4Xlt64gPCBraW5zYVwgOwor5L+v556wIDwgZnVrYW5cIDsKK+iHqOapnyA8IHJpbmtpXCA7CivmnKrmm77mnIkgPCBtaXpvdVwgOwor6ImH5bqrIDwgdGVpa29cIDsKK+WwiuiAhSA8IHNvbmphXCA7Civot6Hnm64gPCBhdG9tZVwgOwor6Lev55SoIDwgcm95b3VcIDsKK+WutuiokyA8IGtha3VuXCA7CivkvY7oqp4gPCB0ZWlnb1wgOwor5a6f6LK7IDwgamlwcGlcIDsKK+WCvuW3riA8IGtlaXNhXCA7CivnlLfnjKsgPCBvbmVrb1wgOwor55Sm55SfIDwgc29zZWlcIDsKK+i1t+iNiSA8IGtpc291XCA7CivkvZnoo5UgPCB5b3l1dVwgOwor5bWp5ZG8IDwgc3V1a29cIDsKK+WumOiyuyA8IGthbnBpXCA7CivppIrpr4kgPCB5b3VyaVwgOwor6LuN5aSrIDwgZ3VucHVcIDsKK+eWjuaelyA8IHNvcmluXCA7Civlrrboo4EgPCBrYXNhaVwgOwor5L+z55S7IDwgaGFpZ2FcIDsKK+S7lumdoiA8IHRhbWVuXCA7CivlsI/ntIsgPCBrb21vblwgOwor55Sf55CGIDwgc2VpcmlcIDsKK+iFi+eqqSA8IGVraWthXCA7Civku5jpmo8gPCBmdXp1aVwgOwor5a626J2/IDwgaWViYWVcIDsKK+aknOafuyA8IGtlbnNhXCA7Civlgpnlv5ggPCBiaWJvdVwgOwor5bCP57KLIDwga29pa2lcIDsKK+Wun+iomCA8IGppa2tpXCA7CivkurrppqwgPCBqaW5iYVwgOwor5YSE5YqrIDwgb2trdXVcIDsKK+iHquaatCA8IGppYm91XCA7Civkvr/np5ggPCBiZW5waVwgOwor5a6Y6KmxIDwga2Fud2FcIDsKK+S8r+eItuiytCA8IG9qaWtpXCA7Civnlo7mlL4gPCBzb2hvdVwgOwor5L2Z6JarIDwgeW9rdW5cIDsKK+iHquaYjiA8IGppbWVpXCA7Civoh6jmmYIgPCByaW5qaVwgOwor6aSM6aOfIDwgZWppa2lcIDsKK+WumuimjyA8IGpvdWdpXCA7CivoiLnlsL4gPCBzZW5iaVwgOwor5LuK6ZqbIDwgaW1hd2FcIDsKK+WEhOWGhiA8IG9rdWVuXCA7CivlhIDliIAgPCBnaXRvdVwgOwor5a6I6K23IDwgc2h1Z29cIDsKK+S8muiyuyA8IGthaWhpXCA7CivlsqnmoLkgPCBpd2FuZVwgOwor55S35rudIDwgb2Rha2lcIDsKK+eTnOenkSA8IHVyaWthXCA7Civou73kvq4gPCBrZWlidVwgOwor5L6b57GzIDwga3VtYWlcIDsKK+aghOieuiA8IHNhemFlXCA7CivlgKTmrrUgPCBuZWRhblwgOwor5a2k6LuNIDwga29ndW5cIDsKK+WBveaCqiA8IGdpYWt1XCA7Civkupzpurvku4EgPCBhbWFuaVwgOwor55ay5byKIDwgaGloZWlcIDsKK+S8muitsCA8IGthaWdpXCA7CivmnaXpp5UgPCByYWlnYVwgOwor6auY5bqnIDwga291emFcIDsKK+iJr+WMuyA8IHJ5b3VpXCA7CivkvJ3oqJggPCBkZW5raVwgOwor5Lya6KmxIDwga2Fpd2FcIDsKK+S9meiKsyA8IHlvaG91XCA7CivkubHpursgPCByYW5tYVwgOwor5YKY5a+/IDwgc2FuanVcIDsKK+WxseaysyA8IHNhbmdhXCA7CivogLPpoIYgPCBqaWp1blwgOwor5Ly96JeNIDwgZ2FyYW5cIDsKK+WEgOS7lyA8IGdpam91XCA7CivlrojooZsgPCBzaHVlaVwgOwor6LuN5YuZIDwgZ3VubXVcIDsKK+eUo+a5ryA8IHVidXl1XCA7Civpppnoj68gPCBrb3VnZVwgOwor5bC+54eIIDwgYml0b3VcIDsKK+S+m+elrSA8IGd1c2FpXCA7Civos5Povp4gPCBoaW5qaVwgOwor5LqU5Y2B6LevIDwgaXNvamlcIDsKK+iInuWtkCA8IG1haWtvXCA7Civoh6rmhaIgPCBqaW1hblwgOwor5qW95ZmoIDwgZ2Fra2lcIDsKK+eWkeW/tSA8IGdpbmVuXCA7CivkvZnogZ4gPCB5b2J1blwgOwor5a2m6KqyIDwgZ2Fra2FcIDsKK+mmrOiAlSA8IGJha291XCA7CivouI/mn7sgPCB0b3VzYVwgOwor55S75qW8IDwgZ2Fyb3VcIDsKK+iEseeariA8IGRhcHBpXCA7CivmnaXpmaIgPCByYWlpblwgOwor5L6N56WtIDwgamlzYWlcIDsKK+i7jeWCmSA8IGd1bmJpXCA7CivnlKPmsJcgPCBzYW5rZVwgOwor55Sj5q+bIDwgdWJ1Z2VcIDsKK+iFkOeImyA8IGZ1cmFuXCA7CivohLHnlr0gPCBkYXNzb1wgOwor5bKp5oi4IDwgaXdhdG9cIDsKK+Wvv+ebgyA8IGp1aGFpXCA7Civoh6rlvIEgPCBqaWJlblwgOwor55Wq5omLIDwgYmFudGVcIDsKK+WBuOWuiSA8IHRvdWFuXCA7CivlsI/nkLQgPCBvZ290b1wgOwor5L+E54S2IDwgZ2F6ZW5cIDsKK+eUu+advyA8IGdhYmFuXCA7CivlrZfoqJMgPCBqaWt1blwgOwor5qKz5q+bIDwgc29tb3VcIDsKK+mjm+mbuyA8IGhpZGVuXCA7Civkuozpmo4gPCBuaWthaVwgOwor55S75p2QIDwgZ2F6YWlcIDsKK+i7jeS6iyA8IGd1bmppXCA7CivnkIbosqEgPCByaXphaVwgOwor55S75pysIDwgZ2Fob25cIDsKK+eVuOW9oiA8IGtpa2VpXCA7Civku6PorbAgPCBkYWlnaVwgOwor6LWw56C0IDwgc291aGFcIDsKK+WCteWLmSA8IHNhaW11XCA7CivouqvliIYgPCBtaWJ1blwgOwor6LOE6LOCIDwgd2Fpcm9cIDsKK+iCsuiLsSA8IGlrdWVpXCA7CivlsI/niqwgPCBrb2ludVwgOwor55Sx5p2lIDwgeXVyYWlcIDsKK+S8vee+hSA8IGt5YXJhXCA7Civku4/osqggPCBmdWtrYVwgOwor5p2x6YO9IDwgdG91dG9cIDsKK+adsemDqCA8IHRvdWJ1XCA7Civku67oo4UgPCBrYXNvdVwgOwor6Ieq5bC9IDwgamlqaW5cIDsKK+eQhuirliA8IHJpcm9uXCA7CivlgY/lt64gPCBoZW5zYVwgOwor5bCK54i2IDwgc29ucHVcIDsKK+WBveWgsSA8IGdpaG91XCA7CivlrprnvqkgPCB0ZWlnaVwgOwor5YKZ5ZOBIDwgYmloaW5cIDsKK+iyqOi7iiA8IGthc2hhXCA7Civkv5fmsJcgPCB6b2trZVwgOwor6Ieq5a6zIDwgamlnYWlcIDsKK+iyuOiyuyA8IHRhaWhpXCA7CivnlZnmhI8gPCByeXV1aVwgOwor5L2V566HIDwgbmFua29cIDsKK+WAi+aVsCA8IGtvc3V1XCA7Civlr53nm7ggPCBuZXpvdVwgOwor6aK26aKoIDwgZ3VmdXVcIDsKK+ahgueariA8IGtlaWhpXCA7Civpo7LphZIgPCBpbnNodVwgOwor5Lqo6YGLIDwga291dW5cIDsKK+eQhuinoyA8IHJpa2FpXCA7CivkvZXnrYkgPCBuYW5yYVwgOwor6LKp6LevIDwgaGFucm9cIDsKK+S/l+atjCA8IHpva2thXCA7CivkuZfppqwgPCBqb3ViYVwgOwor5LuY6KiAIDwgZnVnZW5cIDsKK+i1pOebriA8IGFrYW1lXCA7Civku4vorbcgPCBrYWlnb1wgOwor5LuW6KiAIDwgdGFnb25cIDsKK+S6lOmHjSA8IGdvanV1XCA7CivoiJ7lj7AgPCBidXRhaVwgOwor5pyd6aSJIDwgYXNhZ2VcIDsKK+WvoeeUtyA8IHlhbW9vXCA7Civku5boposgPCB0YWtlblwgOwor6IiO5Za2IDwgc2hhZWlcIDsKK+S8juiKuCA8IGdpZ2VpXCA7Civnlo7lpJYgPCBzb2dhaVwgOwor5YG25ZugIDwgZ3V1aW5cIDsKK+Wuiee9riA8IGFuY2hpXCA7Civlgo3lj5cgPCBib3VqdVwgOwor5bKp5bGLIDwgaXdheWFcIDsKK+S6jOmHjSA8IGZ1dGFlXCA7CivogqXogrIgPCBoaWlrdVwgOwor5bCP5rudIDwgb3Rha2lcIDsKK+WBveWWhCA8IGdpemVuXCA7CivmoqfmoZAgPCBnb3RvdVwgOwor55S75omNIDwgZ2FzYWlcIDsKK+eUu+aJiyA8IGdhc2h1XCA7Civpoqjpn7sgPCBmdXVpblwgOwor5LuW6KGMIDwgdGFrb3VcIDsKK+iyoeiyqCA8IHphaWthXCA7CivkupLpgbggPCBnb3NlblwgOwor6aKo6Z2hIDwgZnV1YmlcIDsKK+S8juiDvSA8IGdpbm91XCA7CivmnKrplosgPCBtaWthaVwgOwor6LK06KanIDwga2lyYW5cIDsKK+miqOmbsiA8IGZ1dXVuXCA7CivkuZbpm6IgPCBrYWlyaVwgOwor55ay5Yq0IDwgaGlyb3VcIDsKK+WBveWQjSA8IGdpbWVpXCA7Civkurroqp4gPCBqaW5nb1wgOwor6aKo6ZuFIDwgZnV1Z2FcIDsKK+S6lOi8qiA8IGdvcmluXCA7Civlgb3lj7IgPCBnaXNoaVwgOwor5LqI6YG4IDwgeW9zZW5cIDsKK+S5l+mZpCA8IGpvdWpvXCA7CivlgY/lpYcgPCBoZW5raVwgOwor5Li76aasIDwgc2h1bWVcIDsKK+S/neaciSA8IGhveXV1XCA7Civoh6rlnKggPCBqaXphaVwgOwor5LqM6LyqIDwgbmlyaW5cIDsKK+acnemWkyA8IGFzYW1hXCA7CivohLPms6IgPCBub3VoYVwgOwor5a6f56eRIDwgamlra2FcIDsKK+WxoOaJgCA8IHRvc2hvXCA7CivnlpHllY8gPCBnaW1vblwgOwor6IiO5YipIDwgc2hhcmlcIDsKK+S6jOi7jSA8IG5pZ3VuXCA7CivlgJLlvbEgPCB0b3VlaVwgOwor5LuW6JamIDwgdGF6ZW5cIDsKK+mnhOeKrCA8IGRha2VuXCA7Civpo5vou4ogPCBoaXNoYVwgOwor5bG55bqmIDwga2l0dG9cIDsKK+WAreWvhyA8IHdha291XCA7CivlsI/mrYwgPCBrb3V0YVwgOwor5Li76Z+zIDwgc2h1b25cIDsKK+WuueeWkSA8IHlvdWdpXCA7CivkvZnnlJ8gPCB5b3NlaVwgOwor576O6bqXIDwgYmlyZWlcIDsKK+WumuekjiA8IHRlaXNvXCA7CivlsqnloLQgPCBpd2FiYVwgOwor6Ieq5ZWPIDwgamltb25cIDsKK+WBveWFtSA8IGdpaGVpXCA7CivohZXmnKggPCB1ZGVnaVwgOwor55S75biWIDwgZ2Fqb3VcIDsKK+e+vemfsyA8IGhhb3RvXCA7CivlgInluqsgPCBzb3Vrb1wgOwor5py66L66IDwga2loZW5cIDsKK+eVsOWbvSA8IGlrb2t1XCA7CivmnZHosrsgPCBzb25waVwgOwor6LOi6ICFIDwga2VuamFcIDsKK+acrOmDqCA8IGhvbmJ1XCA7CivkupLorbIgPCBnb2pvdVwgOwor5a++5qynIDwgdGFpb3VcIDsKK+iAgei6ryA8IHJvdWt1XCA7CivnlKPlvowgPCBzYW5nb1wgOwor55So5bqmIDwgeW91ZG9cIDsKK+abuOmZoiA8IHNob2luXCA7CivmoZDmsrkgPCB0b3V5dVwgOwor5pyq6YGCIDwgbWlzdWlcIDsKK+eUn+W+kiA8IHNlaXRvXCA7CivnlJ/lvowgPCBzZWlnb1wgOwor6ISa5rCXIDwga2Fra2VcIDsKK+eOi+mBkyA8IG91ZG91XCA7Civos5vnvo4gPCBzYW5iaVwgOwor6IWQ5pWXIDwgZnVoYWlcIDsKK+i5hOWPiSA8IHRlaXNhXCA7CivmnKjpgJogPCBha2ViaVwgOwor5LuV6IieIDwgamltYWlcIDsKK+i2iuaoqSA8IGVra2VuXCA7Civot4vmiYggPCBiYWtrb1wgOwor5L2Z54e8IDwgeW9qaW5cIDsKK+iHquWJjSA8IGppbWFlXCA7Civog4Pnl5sgPCBpdHN1dVwgOwor5bCP5p6dIDwga29lZGFcIDsKK+iDg+eXhSA8IGlieW91XCA7Civoh6rliIYgPCBqaWJ1blwgOwor6LW35q+bIDwga2ltb3VcIDsKK+eRqueRmSA8IG1lbm91XCA7CivpoqjpgqogPCBmdXVqYVwgOwor5L2c54K6IDwgc2FrdWlcIDsKK+WuieecoCA8IGFubWluXCA7Civoh6rlhZogPCBqaXRvdVwgOwor5bC/5oSPIDwgbnlvdWlcIDsKK+acm+mBoCA8IGJvdWVuXCA7CivkuojoqIAgPCB5b2dlblwgOwor5Lmd6LyqIDwga3VyaW5cIDsKK+S5seiyuyA8IHJhbnBpXCA7Civku5bogZ4gPCB0YWJ1blwgOwor5pyq6LiPIDwgbWl0b3VcIDsKK+WvvuahiCA8IHRhaWFuXCA7CivkuojoposgPCB5b2tlblwgOwor5LuW6ICFIDwgdGFzaGFcIDsKK+S7rue0jSA8IGthbm91XCA7CivnjKrpppYgPCBpa3ViaVwgOwor5LiN6aCGIDwgZnVqdW5cIDsKK+S4gOmmliA8IGlzc2h1XCA7CivnlKPlsYsgPCB1YnV5YVwgOwor5Luu57KnIDwga2V3YWlcIDsKK+ixquiqniA8IGdvdWdvXCA7CivpoZ7pn7sgPCBydWlpblwgOwor6aGe6Z+zIDwgcnVpb25cIDsKK+iyp+iLpiA8IGhpbmt1XCA7CivnlLflpbMgPCBkYW5qb1wgOwor5qC55rCXIDwga29ua2lcIDsKK+i1pOavmyA8IGFrYWdlXCA7CivkuIDpo68gPCBpcHBhblwgOwor576O6aKoIDwgYmlmdXVcIDsKK+mjm+ihjCA8IGhpa291XCA7Civkuqzoj68gPCBrZWlrYVwgOwor5a6J55SjIDwgYW56YW5cIDsKK+S4gOmiqCA8IGlwcHV1XCA7Civnvo7poZQgPCBiaWdhblwgOwor5a6f54i2IDwgamlwcHVcIDsKK+iHquS8nSA8IGppZGVuXCA7CivogZbogIUgPCBzZWlqYVwgOwor5L6/5omAIDwgYmVuam9cIDsKK+S4lumWkyA8IHNla2VuXCA7CivkuIDpoK0gPCBpdHRvdVwgOwor6Ieq5LuKIDwgamlrb25cIDsKK+S4u+mDqCA8IHNodWJ1XCA7CivkuIDpoIUgPCBpa2tvdVwgOwor55Sw5aSrIDwgZGVucHVcIDsKK+mjm+idlyA8IGJhdHRhXCA7CivnkIbns7sgPCByaWtlaVwgOwor55Sj5ammIDwgc2FucHVcIDsKK+WvuOaahyA8IHN1bmthXCA7CivmnrbnqbogPCBrYWt1dVwgOwor55Sj5amGIDwgc2FuYmFcIDsKK+ixjOixhiA8IGVuZG91XCA7CivkuIvpmKogPCBnZWhhblwgOwor5a+45pmCIDwgc3VuamlcIDsKK+aiteWtlyA8IGJvbmppXCA7CivnlJjlrZAgPCBhbWFnb1wgOwor5L2T5ripIDwgdGFpb25cIDsKK+S7gee+qSA8IGppbmdpXCA7CivkuLvovp4gPCBzaHVqaVwgOwor5pq06aOyIDwgYm91aW5cIDsKK+WvneajuiA8IG5la2FuXCA7CivotbDmn7sgPCBzb3VzYVwgOwor5LiA6ZqOIDwgaWtrYWlcIDsKK+acrOiotCA8IGhvbnNvXCA7CivkuIDpmoogPCBpdHRhaVwgOwor5pu56YGUIDwgc291ZGFcIDsKK+iyp+iAhSA8IGhpbmphXCA7CivnlLDlnIMgPCBkZW5wb1wgOwor5LuY566LIDwgZnVzZW5cIDsKK+S4gOmWgyA8IGlzc2VuXCA7Civkvq7mhaIgPCBidW1hblwgOwor5L2c5q2MIDwgc2Fra2FcIDsKK+acqOS5g+S8iiA8IG1paXJhXCA7Civnvqnph5EgPCBnaWtpblwgOwor5L+d5a6IIDwgaG9zaHVcIDsKK+miqOirrSA8IGZ1dXl1XCA7CivkuJbpioAgPCBzZWdpblwgOwor5L+d5a2YIDwgaG96b25cIDsKK+eUmOWkoiA8IGthbm11XCA7CivlsKTluqYgPCB5dXVkb1wgOwor5pyI6LOmIDwgZ2VwcHVcIDsKK+WxleWikyA8IHRlbmJvXCA7Civnj6rntKAgPCBrZWlzb1wgOwor5qC45p6cIDwga2Fra2FcIDsKK+WwiuaEjyA8IHNvbicnaVwgOwor6aaZ5rK5IDwga291eXVcIDsKK+eUqOWZqCA8IHlvdWtpXCA7CivmoYjmlocgPCBhbm1vblwgOwor5pyX6KmgIDwgcm91ZWlcIDsKK+WAkuWPpSA8IHRvdWt1XCA7CivlgJLlj5kgPCB0b3Vqb1wgOwor5Luu55ygIDwga2FtaW5cIDsKK+S6lOiHkyA8IGdvem91XCA7Civog4zms7MgPCBoYWllaVwgOwor5Lqh6ICFIDwgbW91amFcIDsKK+S4h+mHjCA8IGJhbnJpXCA7CivnkIbnn6UgPCByaWNoaVwgOwor5LuP56WWIDwgYnVzc29cIDsKK+mnhOaWhyA8IGRhYnVuXCA7Civnvqnou40gPCBnaWd1blwgOwor5YCt5Lq6IDwgd2FqaW5cIDsKK+S4g+mHjSA8IG5hbmFlXCA7CivkuIvpg44gPCBnZXJvdVwgOwor5LiK6YOoIDwgam91YnVcIDsKK+mgk+mmrCA8IHRvbm1hXCA7CivkuInpg6ggPCBzYW5idVwgOwor5LiN6YGcIDwgZnVzb25cIDsKK+S4jemBhyA8IGZ1Z3V1XCA7Civkvr/lrpwgPCBiZW5naVwgOwor5LiN6YCeIDwgZnV0ZWlcIDsKK+Wwj+W3nSA8IG9nYXdhXCA7CivkuI3pgIAgPCBmdXRhaVwgOwor576O6YWSIDwgYmlzaHVcIDsKK+S4u+iotCA8IHNodXNvXCA7Civmmpfpm7IgPCBhbicndW5cIDsKK+S6jOWNgemHjSA8IGhhdGFlXCA7CivnlLflhZAgPCBkYW5qaVwgOwor5LqM6ICFIDwgbmlzaGFcIDsKK+eUu+WDjyA8IGdhem91XCA7Civkv7PlkbMgPCBoYWltaVwgOwor55So5YuZIDwgeW91bXVcIDsKK+WppumBkyA8IGZ1ZG91XCA7CivmnZHnv4EgPCBzb25vdVwgOwor5a6J5rOwIDwgYW50YWlcIDsKK+iCpea6gCA8IGhpbWFuXCA7CivkuIvovKkgPCBnZWhhaVwgOwor5a625p2lIDwga2VyYWlcIDsKK+WApOS4iiA8IG5lYWdlXCA7CivnlJjlkbMgPCBrYW5taVwgOwor5L+z5Y+lIDwgaGFpa3VcIDsKK+S4gOmBjSA8IGlwcGVuXCA7CivogIHoiJcgPCByb3Vob1wgOwor5pqX6ZeYIDwgYW50b3VcIDsKK+S4i+i7iiA8IGdlc2hhXCA7CivnlJrlj6UgPCBqaW5rdVwgOwor5Lqb57SwIDwgc2FzYWlcIDsKK+eQhueUsSA8IHJpeXV1XCA7CivkurrnpZYgPCBqaW5zb1wgOwor5Lmx6IieIDwgcmFuYnVcIDsKK+S+jeW+kyA8IGppanV1XCA7CivlqIPprJ8gPCBhaWthblwgOwor5Lya5rS+IDwga2FpaGFcIDsKK+S7lueVjCA8IHRha2FpXCA7CivkupTntYMgPCBnb2dlblwgOwor5bCP5a2XIDwga29hemFcIDsKK+Wxi+WPsCA8IHlhdGFpXCA7CivlsIrlrrYgPCBzb25rYVwgOwor5LiA6LuiIDwgaXR0ZW5cIDsKK+eUu+S6uiA8IGdhamluXCA7CivpoYzovp4gPCBkYWlqaVwgOwor5LiA6LuSIDwgaWtrZW5cIDsKK+Wun+aihSA8IG1pdW1lXCA7Civot6/lgo0gPCByb2JvdVwgOwor5pys6IiXIDwgaG9ucG9cIDsKK+S4jeiytyA8IGZ1YmFpXCA7CivkuIvos6QgPCBnZXNlblwgOwor5a+d5oGvIDwgbmVpa2lcIDsKK+aer+eHpSA8IGtvc291XCA7CivmnKjoiJ4gPCBrb21haVwgOwor6ICB57+BIDwgcm91b3VcIDsKK+e+veifuyA8IGhhYXJpXCA7Civlr5vmgZUgPCBrYW5qb1wgOwor6LK755SoIDwgaGl5b3VcIDsKK+S7o+eItiA8IGRhaWZ1XCA7Civosqvnm64gPCBrYW5tZVwgOwor576p6KiTIDwgZ2lrdW5cIDsKK+S6iOe0jSA8IHlvbm91XCA7CivkuIfosqggPCBiYW5rYVwgOwor5p2/55uuIDwgaXRhbWVcIDsKK+mgremHjSA8IHp1b21vXCA7CivmooXlnJIgPCBiYWllblwgOwor6LK055S3IDwgdGFrYW9cIDsKK+WumuacnyA8IHRlaWtpXCA7CivlsI/lo7AgPCBrb2dvZVwgOwor5qGC5bq1IDwga2VpYW5cIDsKK+S4gOiyqyA8IGlra2FuXCA7CivnlJ/kv50gPCBzZWlob1wgOwor5L6/5ZmoIDwgYmVua2lcIDsKK+acquiBniA8IG1pbW9uXCA7Civpn7Ppn7sgPCBvbicnaW5cIDsKK+aZr+mbsiA8IGtlaXVuXCA7CivkuoznrYkgPCBuaXRvdVwgOwor5LiK6KutIDwgam91eXVcIDsKK+S6iOeulyA8IHlvc2FuXCA7CivpoZ7oqp4gPCBydWlnb1wgOwor6Lev5LiKIDwgcm9qb3VcIDsKK+acrOe+qSA8IGhvbmdpXCA7CivosYbohZAgPCB0b3VmdVwgOwor6aeE5byBIDwgZGFiZW5cIDsKK+WppuitpiA8IGZ1a2VpXCA7CivotbflsYUgPCBraWt5b1wgOwor5p2/55S7IDwgaGFuZ2FcIDsKK+S9k+aKgCA8IHRhaWdpXCA7Civkv53lhrcgPCBob3JlaVwgOwor5L2Z5oakIDwgeW9mdW5cIDsKK+S4iuiotCA8IGpvdXNvXCA7Civkv53lhaggPCBob3plblwgOwor5LqM56iuIDwgbmlzaHVcIDsKK+aenOeEtiA8IGthemVuXCA7Civpn7Ppmo4gPCBvbmthaVwgOwor576O6KuHIDwgYmlkYW5cIDsKK+WutuaGsiA8IGtha2VuXCA7Civku6PmvJQgPCBkYWllblwgOwor5L2Z5oOFIDwgeW9qb3VcIDsKK+WvoeWxhSA8IGtha3lvXCA7CivniqzppqwgPCBrZW5iYVwgOwor5bC85YOnIDwgbmlzb3VcIDsKK+e/oee/oCA8IGhpc3VpXCA7Civmnq/mt6EgPCBrb3RhblwgOwor5pyq57e0IDwgbWlyZW5cIDsKK+S4gOioiCA8IGlra2VpXCA7Civnvo7oprMgPCBiaWthblwgOwor6aCQ6YeRIDwgeW9raW5cIDsKK+S9meW/tSA8IHlvbmVuXCA7CivpoYzoqaAgPCBkYWllaVwgOwor5pyo57a/IDwgbW9tZW5cIDsKK+S4ueiJsiA8IG5paXJvXCA7CivnjovntbEgPCBvdXRvdVwgOwor6Laj5ZGzIDwgc2h1bWlcIDsKK+izouavjSA8IGtlbmJvXCA7Civmmpfou6IgPCBhbnRlblwgOwor5pyq57SNIDwgbWlub3VcIDsKK+itsOmhjCA8IGdpZGFpXCA7CivkvZnlvIogPCB5b2hlaVwgOwor6LWk5a2XIDwgYWthamlcIDsKK+mkiueItiA8IHlvdWZ1XCA7CivmnaXnlLEgPCByYWl5dVwgOwor5qC55a2QIDwgbmVra29cIDsKK+WvuOWcnyA8IHN1bmRvXCA7CivkvZXluqYgPCBuYW5kb1wgOwor6IOh5bqnIDwgYWd1cmFcIDsKK+ahiOWkliA8IGFuZ2FpXCA7CivkvZzli5nooaMgPCBzYW11ZVwgOwor5puz6IiqIDwgZWlrb3VcIDsKK+eQhuazlSA8IHJpaG91XCA7CivpoqjntIAgPCBmdXVraVwgOwor5Luj5q+NIDwgZGFpYm9cIDsKK+S6uueCuiA8IGppbicnaVwgOwor5Lyd5pKtIDwgZGVucGFcIDsKK+e9teiogCA8IGJhZ2VuXCA7CivpqI7lhbUgPCBraWhlaVwgOwor5qGR5ZySIDwgc291ZW5cIDsKK+S6kueUqCA8IGdveW91XCA7CivkuLvnvqkgPCBzaHVnaVwgOwor5p2h55CGIDwgam91cmlcIDsKK+Wwj+WLoiA8IGtvemVpXCA7Civlr4Tlr5MgPCBraWd1dVwgOwor5LqM55WqIDwgbmliYW5cIDsKK+iDjOW+jCA8IGhhaWdvXCA7CivniaHpub8gPCBvamlrYVwgOwor5pys56eRIDwgaG9ua2FcIDsKK+mmrOWxiyA8IHVtYXlhXCA7CivkvJ3mjoggPCBkZW5qdVwgOwor5bCP5YikIDwga29iYW5cIDsKK+e+vee/vCA8IHV5b2t1XCA7Civmnp3mr5sgPCBlZGFnZVwgOwor5a+/5Y+4IDwgc3VzaGlcIDsKK+mmluW6pyA8IHNodXphXCA7CivpppblupwgPCBzaHVmdVwgOwor5Lqh54i2IDwgYm91ZnVcIDsKK+aZrumBjSA8IGZ1aGVuXCA7CivkvZnlr5IgPCB5b2thblwgOwor6K2c6Z2iIDwgZnVtZW5cIDsKK+S7u+acnyA8IG5pbmtpXCA7Civota3lnJ8gPCBzaGFkb1wgOwor5a625bGLIDwga2Fva3VcIDsKK+iBluayuSA8IHNlaXl1XCA7CivnjJ/omY4gPCByYWtrb1wgOwor5a+d5Z2KIDwgbmVib3VcIDsKK+mjtOeFriA8IGFtZW5pXCA7CivmnqLmqZ8gPCBzdXVraVwgOwor5L2P5bGFIDwgc3VtYWlcIDsKK+iDg+W8sSA8IGlqYWt1XCA7CivkvJ3miYsgPCB0c3V0ZVwgOwor5a615a+dIDwgeW9pbmVcIDsKK+i2s+S4iyA8IHNva2thXCA7CivlsI/lg6cgPCBrb3pvdVwgOwor5a6d5bqrIDwgaG91a29cIDsKK+mghui3ryA8IGp1bnJvXCA7CivkuIrojbcgPCB1d2FuaVwgOwor5LiA6JGmIDwgaWNoaWlcIDsKK+WuruWxhSA8IG1peWFpXCA7CivohLHlhY4gPCBkYXR0b1wgOwor576957mUIDwgaGFvcmlcIDsKK+aal+imliA8IGFuc2hpXCA7Civmnpfmqo4gPCByaW5nb1wgOwor5Luj5qGIIDwgZGFpYW5cIDsKK+mmluWwviA8IHNodWJpXCA7CivotorlhqwgPCBldHRvdVwgOwor5a6J5b+DIDwgYW5qaW5cIDsKK+iyquaxmiA8IHRhbicnb1wgOwor5L6h5YCkIDwga2FjaGlcIDsKK+WmlumtlCA8IHlvdW1hXCA7CivkuIDoiZggPCBpc3NvdVwgOwor5p2l5ryUIDwgcmFpZW5cIDsKK+S8keaEjyA8IGt5dXVpXCA7CivppIrmr40gPCB5b3Vib1wgOwor5LiA6Ie0IDwgaXRjaGlcIDsKK+mnheWToSA8IGVraWluXCA7CivkvJrlvpcgPCBldG9rdVwgOwor5a+d5Y+wIDwgbmVkYWlcIDsKK+S4jeiAgSA8IGZ1cm91XCA7CivorbfpgIEgPCBnb3NvdVwgOwor5LuW5p2RIDwgdGFzb25cIDsKK+adnOa8jyA8IHp1cm91XCA7Civmn7vlrpogPCBzYXRlaVwgOwor5a6X5a62IDwgc291a2VcIDsKK+eJnemmrCA8IGhpbmJhXCA7Civnvo7ogrIgPCBiaWlrdVwgOwor5qGI5YiGIDwgYW5idW5cIDsKK+S7j+aenCA8IGJ1a2thXCA7CivogIHniLogPCByb3V5YVwgOwor6ICB54i2IDwgcm91ZnVcIDsKK+mgreiTiyA8IHp1Z2FpXCA7CivnkIbmlbAgPCByaXN1dVwgOwor5Lqc5rWBIDwgYXJ5dXVcIDsKK+ixoeeJmSA8IHpvdWdlXCA7Civorabpgo8gPCBrZWlyYVwgOwor5a6J5bGFIDwgYW5reW9cIDsKK+adseaspyA8IHRvdW91XCA7Civpp4bli5UgPCBrdWRvdVwgOwor6LSU5bGTIDwgaGlpa2lcIDsKK+WvoeWFtSA8IGthaGVpXCA7Civku5bmlrkgPCB0YWhvdVwgOwor5Lu75oSPIDwgbmluJydpXCA7CivpoZ7nuIEgPCBydWllblwgOwor5L2Z5ZaYIDwgeW96ZW5cIDsKK+iukuiqoyA8IHphbmJ1XCA7CivkuqHmr40gPCBib3Vib1wgOwor5bGF55WZ5a6IIDwgaXJ1c3VcIDsKK+WuieWumiA8IGFudGVpXCA7CivkuIvnt5IgPCBzYWdlb1wgOwor5a6H5a6ZIDwgdWNodXVcIDsKK+iukuiotCA8IHphbnNvXCA7Civpn7PoqakgPCBvbnNoaVwgOwor5LyO5belIDwgZ2lrb3VcIDsKK+mfs+iokyA8IG9ua3VuXCA7Civos6LmhJogPCBrZW5ndVwgOwor6IOD5aOBIDwgaWhla2lcIDsKK+S9meWRvSA8IHlvbWVpXCA7CivkuI3nsosgPCBidXN1aVwgOwor5aaW6ZuyIDwgeW91dW5cIDsKK+i1tOS7uyA8IGZ1bmluXCA7Civos6bmgKcgPCBmdXNlaVwgOwor5Luj5omTIDwgZGFpZGFcIDsKK+ahiOS7tiA8IGFua2VuXCA7CivnjaPnmq4gPCBqdXVoaVwgOwor5LqU5q61IDwgZ29kYW5cIDsKK+izm+aEjyA8IHNhbicnaVwgOwor5p2/5pyoIDwgaGFuZ2lcIDsKK+mjouawkSA8IGtpbWluXCA7Civpo5vms4kgPCBoaXNlblwgOwor5pyq54S2IDwgbWl6ZW5cIDsKK+mnkOS8iiA8IGNodXVpXCA7CivmmKDphY0gPCBlaWhhaVwgOwor5a2k5biGIDwga29oYW5cIDsKK+S9nOWLlSA8IHNhZG91XCA7CivkuIDns7ggPCBpc3NoaVwgOwor5LiN562JIDwgZnV0b3VcIDsKK+S6uuaZgiA8IG5pbmppXCA7CivpoK3ohLMgPCB6dW5vdVwgOwor5pyo54GwIDwga2liYWlcIDsKK+e+hee0lyA8IHJhc2hhXCA7CivlpYfpupcgPCBraXJlaVwgOwor5LuV5omLIDwgc2hpdGVcIDsKK+mmrOWIuCA8IGJha2VuXCA7Civlrq7lj7ggPCBndXVqaVwgOwor55CG5oOzIDwgcmlzb3VcIDsKK+WupeWSjCA8IHl1dXdhXCA7CivorbDoq5YgPCBnaXJvblwgOwor5pu455S7IDwgc2hvZ2FcIDsKK+eNsueJqSA8IGVtb25vXCA7Civlpa7po5sgPCBmdW5waVwgOwor6IKl5aSnIDwgaGlkYWlcIDsKK+S9meWFmiA8IHlvdG91XCA7CivnkIbmgKcgPCByaXNlaVwgOwor5pmC6KuWIDwgamlyb25cIDsKK+itpuittyA8IGtlaWdvXCA7CivosqDmlbAgPCBmdXN1dVwgOwor5LqM5qeYIDwgbml5b3VcIDsKK+e+qeecvCA8IGdpZ2FuXCA7Civmn7vllY8gPCBzYW1vblwgOwor55CG5b+1IDwgcmluZW5cIDsKK+mdkummrCA8IGFvdW1hXCA7Civoravoqp4gPCBzZW5nb1wgOwor5pyq5rqAIDwgbWltYW5cIDsKK+WutuWGhSA8IGthbmFpXCA7CivkuJbnn6UgPCBzZWNoaVwgOwor5a6a5ZOhIDwgdGVpaW5cIDsKK+iyt+aJiyA8IGthaXRlXCA7Civlr53mpIXlrZAgPCBuZWlzdVwgOwor5p2l5pyfIDwgcmFpa2lcIDsKK+S6leahgSA8IGlnZXRhXCA7Civmmpfnv7MgPCBhbicnZWlcIDsKK+acqua4iCA8IG1pc2FpXCA7Civlp4nosrQgPCBhbmVraVwgOwor6ICB5q+NIDwgcm91Ym9cIDsKK+S7luW/tSA8IHRhbmVuXCA7CivlrpvlkI0gPCBhdGVuYVwgOwor5aWz6ZujIDwgam9uYW5cIDsKK+WltOmatyA8IGRvcmVpXCA7CivkuJbnm7ggPCBzZXNvdVwgOwor5Luy5bGFIDwgbmFrYWlcIDsKK+acq+a0viA8IG1hcHBhXCA7CivpnZ7pm6MgPCBoaW5hblwgOwor5LiL55+lIDwgZ2VkamlcIDsKK+Wkqum8kyA8IHRhaWtvXCA7CivpoIjoh74gPCBzaHV5dVwgOwor5pyd5rmvIDwgYXNheXVcIDsKK+WllOmmrCA8IGhvbmJhXCA7CivogZbmgakgPCBzZWlvblwgOwor5auM5rCXIDwga2Vua2lcIDsKK+S4jeecoCA8IGZ1bWluXCA7Civkupzml48gPCBhem9rdVwgOwor5LuB5oWIIDwgamluamlcIDsKK+S7ruWvkyA8IGthZ3V1XCA7Civku4/lvpIgPCBidXR0b1wgOwor5p2/5oi4IDwgaXRhZG9cIDsKK+S6uuaIkSA8IGppbmdhXCA7CivosqfmiZMgPCBoaW5kYVwgOwor5L2Z5Lq6IDwgeW9uaW5cIDsKK+S7luW6lyA8IHRhdGVuXCA7CivlpKfpu4QgPCBkYWlvdVwgOwor5LiK552AIDwgdXdhZ2lcIDsKK+Wkp+m6uyA8IHRhaW1hXCA7CivmnKzmsJcgPCBob25raVwgOwor6ICB5qi5IDwgcm91anVcIDsKK+aYr+iqjSA8IHplbmluXCA7CivosqDmi4UgPCBmdXRhblwgOwor5pqX57eaIDwgYW5zZW5cIDsKK+S4iuebriA8IHV3YW1lXCA7CivmoITlhqAgPCBlaWthblwgOwor5L2O5L6hIDwgdGVpa2FcIDsKK+eOi+awtCA8IG91c3VpXCA7Civku4rlvowgPCBrb25nb1wgOwor5LiW55WMIDwgc2VrYWlcIDsKK+Wtn+WlsyA8IG1vdWpvXCA7Civpo5vmnaUgPCBoaXJhaVwgOwor5LqM5pu0IDwgbmlrb3VcIDsKK+mmrOS4iiA8IGJham91XCA7CivlrrbkurogPCBrZW5pblwgOwor5LuB5oGVIDwgamluam9cIDsKK+Wtn+WkjyA8IG1vdWthXCA7CivmlpHps6kgPCBpa2FydVwgOwor6aKo5rOiIDwgZnV1aGFcIDsKK+S7iuW6piA8IGtvbmRvXCA7CivkuIvnlrMgPCBnZWthblwgOwor6Z+z6ImyIDwgbmVpcm9cIDsKK+iAjOadpSA8IGppcmFpXCA7CivmnZzmkrAgPCB6dXNhblwgOwor6K2O6KmQIDwga2lzc2FcIDsKK+S4i+eVjCA8IGdla2FpXCA7CivkuIvnlLcgPCBnZW5hblwgOwor5LiL55SwIDwgZ2VkZW5cIDsKK+aaluewviA8IG5vcmVuXCA7Civku5blsbEgPCB0YXphblwgOwor5a2Q5aWzIDwgc2hpam9cIDsKK+eOi+aoqSA8IG91a2VuXCA7Civpo5vmlaMgPCBoaXNhblwgOwor5ayM5oWLIDwgc2hpbmFcIDsKK+e+jueUtyA8IGJpbmFuXCA7Civnvo7nlLAgPCBiaWRlblwgOwor5LiA55SfIDwgaXNzZWlcIDsKK+WuieWFqCA8IGFuemVuXCA7CivkupTmjIcgPCBnb3NoaVwgOwor5LuP5a62IDwgYnVra2VcIDsKK+eJueiomCA8IHRva2tpXCA7Civml6LpgYIgPCBraXN1aVwgOwor6aGM55S7IDwgZGFpZ2FcIDsKK+iBluWvvyA8IHNlaWp1XCA7CivorLnoqbEgPCBraW53YVwgOwor5LiN54qvIDwgZnVib25cIDsKK+S7iuWutSA8IGtveW9pXCA7CivkupTmiJIgPCBnb2thaVwgOwor5p2e5oaCIDwga2l5dXVcIDsKK+mdoumDqCA8IG1lbmJ1XCA7CivmmI7oqJggPCBtZWlraVwgOwor5LuW5aeTIDwgdGFzZWlcIDsKK+Wls+mDjiA8IGpvcm91XCA7CivosqHluIMgPCBzYWlmdVwgOwor5pyq5p2lIDwgbWlyYWlcIDsKK+S4jeeHgyA8IGZ1bmVuXCA7CivkuIDnjK4gPCBpa2tvblwgOwor5pa96YygIDwgc2Vqb3VcIDsKK+WuieS9jyA8IGFuanV1XCA7CivluqfmpIXlrZAgPCB6YWlzdVwgOwor6Z2e6YGTIDwgaGlkb3VcIDsKK+mcp+mbsCA8IG11ZnVuXCA7Civmnb/lsYsgPCBpdGF5YVwgOwor5LqU5oKqIDwgZ29ha3VcIDsKK+WtpuWMuiA8IGdha2t1XCA7Civkurrlr78gPCBqaW5qdVwgOwor5LiO54K5IDwgeW90ZW5cIDsKK+S6uuWutiA8IGppbmthXCA7CivmnKrmmI4gPCBtaW1laVwgOwor5LqS5oG1IDwgZ29rZWlcIDsKK+mdoui8qiA8IG9tb3dhXCA7Civosqflr4wgPCBoaW5wdVwgOwor54++5aC0IDwgZ2VuYmFcIDsKK+iyp+WutiA8IGhpbmthXCA7CivpoZ7ngasgPCBydWlrYVwgOwor5a2Y5ZCmIDwgem9ucGlcIDsKK+adv+WtkCA8IGl0YWdvXCA7CivlpaDpg70gPCB0ZW50b1wgOwor6IGW5aScIDwgc2VpeWFcIDsKK+S7iuWkjyA8IGtvbmthXCA7Civkuojmg7MgPCB5b3NvdVwgOwor5Lu75YuZIDwgbmlubXVcIDsKK+aWuemHjCA8IGhvdXJpXCA7CivnjovmlL8gPCBvdXNlaVwgOwor576O54K5IDwgYml0ZW5cIDsKK+S6jOW/tSA8IG5pbmVuXCA7CivorJvoqbEgPCBrb3V3YVwgOwor6LOb5ZCmIDwgc2FucGlcIDsKK+Wkp+mbqCA8IG9vYW1lXCA7CivlpJXppIkgPCB5dXVnZVwgOwor5aSq6ZmwIDwgdGFpaW5cIDsKK+acneaXpSA8IGFzYWhpXCA7Civku6Plk6EgPCBkYWlpblwgOwor5LiK5ryUIDwgam91ZW5cIDsKK+aWh+mbhSA8IGJ1bmdhXCA7CivkuI3muoAgPCBmdW1hblwgOwor6LSI5LiOIDwgem91eW9cIDsKK+S5seaJkyA8IHJhbmRhXCA7CivlpJbpoYwgPCBnZWRhaVwgOwor54mh6KCjIDwgYm9yZWlcIDsKK+Wlrui1tyA8IGZ1bmtpXCA7CivkurrlpKsgPCBuaW5wdVwgOwor6IC25ayiIDwgeWFqb3VcIDsKK+WmhOiqniA8IG1vdWdvXCA7Civosp7lqaYgPCB0ZWlmdVwgOwor576p5rCRIDwgZ2ltaW5cIDsKK+iqnumhniA8IGdvcnVpXCA7CivmlrnpgJQgPCBob3V0b1wgOwor5LuP5ZmoIDwgYnVra2lcIDsKK+aXpeiqsiA8IG5pa2thXCA7Civoqp7poIYgPCBnb2p1blwgOwor5Li75p+7IDwgc2h1c2FcIDsKK+WkmumboyA8IHRhbmFuXCA7CivkuI3mtYQgPCBmdWpvdVwgOwor5pel6KiYIDwgbmlra2lcIDsKK+S7peWMlyA8IGlob2t1XCA7CivlrZDliIYgPCBrb2J1blwgOwor5aSW6ZyAIDwgZ2FpanVcIDsKK+WtpuS9jSA8IGdha3VpXCA7CivmnKzmiYsgPCBob250ZVwgOwor6LKe5aWzIDwgdGVpam9cIDsKK+mfs+eoiyA8IG9udGVpXCA7Civnv7vmhI8gPCBob24nJ2lcIDsKK+isgOitsCA8IGJvdWdpXCA7CivkuI3ms5UgPCBmdWhvdVwgOwor5Luj5YuZIDwgZGFpbXVcIDsKK+e+hea8oiA8IHJha2FuXCA7Civnvbnngb0gPCByaXNhaVwgOwor5pyq5oiQIDwgbWlzZWlcIDsKK+acgOacnyA8IHNhaWdvXCA7Civpm6rpp4QgPCBzZXR0YVwgOwor5aSV6Zm9IDwgeXV1aGlcIDsKK+WknOmWkyA8IHlha2FuXCA7CivogIHlvowgPCByb3Vnb1wgOwor5peF6LK7IDwgcnlvaGlcIDsKK+S6leWuiCA8IGltb3JpXCA7CivpnZLosp0gPCBhb2dhaVwgOwor5LiL5rC0IDwgZ2VzdWlcIDsKK+WliOi+uiA8IG5haGVuXCA7CivmlbTpmaQgPCBzZWlqb1wgOwor5LiN5q+bIDwgZnVtb3VcIDsKK+S4i+awkSA8IGdlbWluXCA7Civlq4zmgqogPCBrZW4nJ29cIDsKK+iyp+WcnyA8IGhpbmRvXCA7Civpm7vpm6IgPCBkZW5yaVwgOwor6aGe5q+UIDwgcnVpaGlcIDsKK+S4jeatuyA8IGZ1c2hpXCA7CivkuIvmrrUgPCBnZWRhblwgOwor6Zu26ZyyIDwgcmVpcm9cIDsKK+S6jOWwgSA8IG5pZnV1XCA7Civpm7fpm7IgPCByYWl1blwgOwor5LuW5YuVIDwgdGFkb3VcIDsKK+S4iuatryA8IHV3YWJhXCA7Civkuozlrq4gPCBuaWd1dVwgOwor5LuW5YqxIDwgdGFyZWlcIDsKK+ePreWToSA8IGhhbmluXCA7Civoq7foqqYgPCBmdXVqdVwgOwor5LiA5rC0IDwgaXNzdWlcIDsKK+S6iOWumiA8IHlvdGVpXCA7CivosrTlkJsgPCBraWt1blwgOwor5pat6LevIDwgZGFucm9cIDsKK+eLvOeFmSA8IHJvdWVuXCA7CivosrTlkI0gPCBraW1laVwgOwor5Luu5LukIDwgdGF0b2VcIDsKK+S4gOautSA8IGl0dGFuXCA7CivkuIDmrbMgPCBpc3NhaVwgOwor5p2l5aC0IDwgcmFpYmFcIDsKK+mfs+ebpCA8IG9uYmFuXCA7Civku4vliqkgPCBrYWlqb1wgOwor5LiH5qmfIDwgYmFua2lcIDsKK+mbquiKseiPnCA8IG9rYXJhXCA7Civpo6/loLQgPCBoYW5iYVwgOwor5aSn6YOoIDwgZGFpYnVcIDsKK+aZguepuiA8IGppa3V1XCA7Civpn7Pnl7QgPCBvbmNoaVwgOwor5paH6YOoIDwgbW9uYnVcIDsKK+aal+a+uSA8IGFudGFuXCA7CivoqbHpoYwgPCB3YWRhaVwgOwor5aSa6YeNIDwgdGFqdXVcIDsKK+ipsemgrSA8IHdhdG91XCA7CivkuovlpIkgPCBqaWhlblwgOwor5pmp55SfIDwgb2t1dGVcIDsKK+mbqOmWkyA8IGFtYWFpXCA7CivlppboibYgPCB5b3VlblwgOwor5aSW6YeOIDwgZ2FpeWFcIDsKK+S4i+agoSA8IGdla291XCA7Civoq5borbAgPCByb25naVwgOwor6Kqt6YGOIDwgZG9ra2FcIDsKK+aYjue+jiA8IG1laWJpXCA7Civku5jkvJogPCBmdWthaVwgOwor6KuL6LKgIDwgdWtlb2lcIDsKK+S4u+aIkSA8IHNodWdhXCA7Civpo73lkowgPCBob3V3YVwgOwor5LqM5aGBIDwgbmlydWlcIDsKK+iqpOmFjSA8IGdvaGFpXCA7Civpm6LplpMgPCByaWthblwgOwor57+75a2XIDwgaG9uamlcIDsKK+mjm+WgsSA8IGhpaG91XCA7Civku5bkurogPCB0YW5pblwgOwor5aSW6YOoIDwgZ2FpYnVcIDsKK+irluiqniA8IHJvbmdvXCA7Civmm5zml6UgPCB5b3ViaVwgOwor5aSW6YOOIDwgdWlyb3VcIDsKK+mdkuidvyA8IGFvYmFlXCA7Civnvajms5UgPCBhbnBvdVwgOwor6ICB5amGIDwgcm91YmFcIDsKK+iyoeWLmSA8IHphaW11XCA7CivkuIvmm7ggPCBnZXNob1wgOwor5pa96KGMIDwgc2Vrb3VcIDsKK+acgOaEmyA8IHNhaWFpXCA7Civmm5bmmKcgPCBhaW1haVwgOwor5pep6IuXIDwgc2FuYWVcIDsKK+S4h+actiA8IGJhbmRhXCA7CivmnKzlrrYgPCBob25rZVwgOwor5aSW6YGTIDwgZ2Vkb3VcIDsKK+WqmuaFiyA8IGJpdGFpXCA7CivmmYLnn60gPCBqaXRhblwgOwor5pqX5raZIDwgYW5ydWlcIDsKK+acieW/gyA8IHVzaGluXCA7Civnj77kuJYgPCBnZW56ZVwgOwor5pqi5rCXIDwgbm9ua2lcIDsKK+iAgeWmkyA8IHJvdWdpXCA7CivmnKrlrpogPCBtaXRlaVwgOwor5LiN5piTIDwgZnVla2lcIDsKK+acquWujCA8IG1pa2FuXCA7CivkuI3mmI4gPCBmdW1laVwgOwor6LK85LuYIDwgdGVucHVcIDsKK+acq+WtoyA8IG1ha2tpXCA7CivogIHlpbMgPCByb3Vqb1wgOwor5LiA5p2vIDwgaXBwYWlcIDsKK+e+juacrCA8IGJpaG9uXCA7CivkuIrmmKAgPCBqb3VlaVwgOwor546L5a2rIDwgb3Vzb25cIDsKK+S4i+aXrCA8IGdlanVuXCA7CivkuI3mlq0gPCBmdWRhblwgOwor5LiA5pysIDwgaXBwb25cIDsKK+S4jeaWhyA8IGZ1YnVuXCA7CivmnZDlmaggPCB6YWlraVwgOwor5YWr55m+5bGLIDwgeWFveWFcIDsKK+S4ieaXpSA8IG1pa2thXCA7Civlp4vnpZYgPCBzaGlzb1wgOwor5LiN5pWPIDwgZnViaW5cIDsKK+ixiuWvjCA8IGhvdWZ1XCA7Civnvo7mma8gPCBiaWtlaVwgOwor576p5oyZIDwgZ2lreW9cIDsKK+irh+ipsSA8IGRhbndhXCA7CivmlazpgaAgPCBrZWllblwgOwor5pyq5amaIDwgbWlrb25cIDsKK+acneWvnSA8IGFzYW5lXCA7CivosrjkuI4gPCB0YWl5b1wgOwor6LKg5YK1IDwgZnVzYWlcIDsKK+S5meWtkCA8IG90b2dvXCA7CivlpKfosYYgPCBkYWl6dVwgOwor6Zuo6YePIDwgdXJ5b3VcIDsKK+e+qeaJiyA8IGdpc2h1XCA7CivkuIDmlrkgPCBpcHBvdVwgOwor5LiA5pakIDwgaWtraW5cIDsKK+e+qeaIpiA8IGdpc2VuXCA7CivoqrnorJcgPCBoaWJvdVwgOwor57eL6a+JIDwgaGlnb2lcIDsKK+e+iOaXhSA8IGtpcnlvXCA7CivnvqnmhqQgPCBnaWZ1blwgOwor5LqM5ZCbIDwgbmlrdW5cIDsKK+S4luaJjSA8IHNlc2FpXCA7Civkuozlj7cgPCBuaWdvdVwgOwor5pyA5bemIDwgc2Fpc2FcIDsKK+S6oeWFkCA8IGJvdWppXCA7Civmm7jluqsgPCBzaG9rb1wgOwor6Zu76LevIDwgZGVucm9cIDsKK+S5meWlsyA8IG90b21lXCA7Civmlofoqp4gPCBidW5nb1wgOwor5LiW5oWLIDwgc2V0YWlcIDsKK+eOqeWRsyA8IGdhbm1pXCA7Civpoafmha4gPCBrb3J5b1wgOwor5aSc6K2mIDwgeWFrZWlcIDsKK+maoOmhlSA8IGlua2VuXCA7Civnjovln44gPCBvdWpvdVwgOwor5LiK5omLIDwgam91enVcIDsKK+acrOWcnyA8IGhvbmRvXCA7Civnvo7mjJkgPCBiaWt5b1wgOwor5LiA5oyZIDwgaWtreW9cIDsKK+mboui+siA8IHJpbm91XCA7CivkuIfmiLggPCBiYW5rb1wgOwor6Z+z5rqQIDwgb25nZW5cIDsKK+S6jOWIhiA8IG5pYnVuXCA7CivmmqvmmYIgPCB6YW5qaVwgOwor5piO56S6IDwgbWVpamlcIDsKK+maoOmdoiA8IGlubWVuXCA7CivoqLTpoZggPCBzb2dhblwgOwor576p5byfIDwgZ2l0ZWlcIDsKK+eOh+WcnyA8IHNvdHRvXCA7CivkuqTkupIgPCBrb3Vnb1wgOwor6Kqk6KqNIDwgZ29uaW5cIDsKK+mdoue9tSA8IG1lbmJhXCA7CivlpJboqp4gPCBnYWlnb1wgOwor5aSa6KiAIDwgdGFnZW5cIDsKK+S6lOWAjSA8IGdvYmFpXCA7CivpoIbmrKEgPCBqdW5qaVwgOwor6aGY5oSPIDwgZ2FuJydpXCA7CivpoqjlnJ8gPCBmdXVkb1wgOwor6Zuj6LevIDwgbmFucm9cIDsKK+eHg+iyuyA8IG5lbnBpXCA7CivkupTkvZMgPCBnb3RhaVwgOwor5pyJ5aSPIDwgeXV1a2FcIDsKK+S6jOWAjSA8IG5pYmFpXCA7CivkuIvlvqEgPCBnZWd5b1wgOwor546p5YW3IDwgZ2FuZ3VcIDsKK+iprei+ryA8IGtpYmVuXCA7CivlpaXnvqkgPCBva3VnaVwgOwor6Zu76KmxIDwgZGVud2FcIDsKK+eMm+aJkyA8IG1vdWRhXCA7CivpnIDopoEgPCBqdXlvdVwgOwor5aSn6JuHIDwgZGFpamFcIDsKK+acseWNsCA8IHNodWluXCA7CivlpJbooqsgPCBnYWloaVwgOwor5pyA5aSaIDwgc2FpdGFcIDsKK+S4jeW5syA8IGZ1aGVpXCA7CivlpbPns7sgPCBqb2tlaVwgOwor6LC35ZywIDwgeWFjaGlcIDsKK+S4iuW6pyA8IGpvdXphXCA7CivnuIHovrogPCBlbnBlblwgOwor5LqL5Lu2IDwgamlrZW5cIDsKK+S6jOS5lyA8IG5pam91XCA7CivkuIrluIMgPCBqb3VmdVwgOwor5pys5YuZIDwgaG9ubXVcIDsKK+S6jOS4liA8IG5pc2VpXCA7CivkuozkuIkgPCBuaXNhblwgOwor6K2y5rihIDwgam91dG9cIDsKK+miqOWRsyA8IGZ1dW1pXCA7Civorbfms5UgPCBnb2hvdVwgOwor6LGa5YWQIDwgdG9uamlcIDsKK+mbo+iqniA8IG5hbmdvXCA7CivmlYXosrcgPCBrb2JhaVwgOwor6ZuR6LK7IDwgemFwcGlcIDsKK+mbkeiyqCA8IHpha2thXCA7CivkuIvlsbEgPCBnZXphblwgOwor5pWX6Ki0IDwgaGFpc29cIDsKK+WjsOiqiSA8IHNlaXlvXCA7CivkuIrlsYsgPCB1d2F5YVwgOwor546L5YagIDwgb3VrYW5cIDsKK+miqOWMliA8IGZ1dWthXCA7CivmmrTlvpIgPCBib3V0b1wgOwor576p5aa5IDwgZ2ltYWlcIDsKK+S4h+WvvyA8IGJhbmp1XCA7CivpoZ7lrZcgPCBydWlqaVwgOwor6ZmN6a2UIDwgZ291bWFcIDsKK+mfs+agkyA8IG9uc2VuXCA7Civpn7vmm7ggPCBpbnNob1wgOwor5pa957GzIDwgc2VtYWlcIDsKK+itsuatqSA8IGpvdWhvXCA7Civmlofoi5EgPCBidW5lblwgOwor576O5a65IDwgYml5b3VcIDsKK+irh+e+qSA8IGRhbmdpXCA7CivpmqDpgYEgPCBpbnRvblwgOwor5LiA5a6aIDwgaXR0ZWlcIDsKK+mgk+aMqyA8IHRvbnphXCA7Civpm5HoqJggPCB6YWtraVwgOwor6Zqg6YCAIDwgaW50YWlcIDsKK+mdseeariA8IGppbnBpXCA7CivpoqjlhIAgPCBmdXVnaVwgOwor6Zmk6ZyKIDwgam9yZWlcIDsKK+WhqemhniA8IGVucnVpXCA7CivpmbDploAgPCBpbm1vblwgOwor5pen55e+IDwga3l1dWFcIDsKK+mfu+aWhyA8IGluYnVuXCA7CivmnIDlj6QgPCBzYWlrb1wgOwor57mB6IyCIDwgaGFubW9cIDsKK+WkmuiKuCA8IHRhZ2VpXCA7CivpmaTpmoogPCBqb3RhaVwgOwor5aSW6IuRIDwgZ2FpZW5cIDsKK+acq+S4liA8IG1hc3NlXCA7CivkuIflpKsgPCBiYW5wdVwgOwor5Li75YuZIDwgc2h1bXVcIDsKK+irreekuiA8IHl1c2hpXCA7Civpm4XoqIAgPCBnYWdlblwgOwor54Sh6aKoIDwgbXVmdXVcIDsKK+mdoueariA8IG1lbnBpXCA7CivpoK3lt74gPCB6dWtpblwgOwor54Sh6aGeIDwgbXVydWlcIDsKK+e+juWkpyA8IGJpZGFpXCA7Civnt5rot68gPCBzZW5yb1wgOwor54Sh6aGMIDwgbXVkYWlcIDsKK+eEoemgvCA8IGJ1cmFpXCA7Civoqaboo5wgPCBzaGlob1wgOwor576O5aOwIDwgYmlzZWlcIDsKK+WkmuiDvSA8IHRhbm91XCA7CivkuIvln44gPCBnZWpvdVwgOwor5piv5q2jIDwgemVzZWlcIDsKK+aVo+iPryA8IHNhbmdlXCA7CivlpI/oh7MgPCBnZXNoaVwgOwor57eP6LqrIDwgc291bWlcIDsKK+S4jeWcqCA8IGZ1emFpXCA7CivoqqTogZ4gPCBnb2J1blwgOwor6Z2i55S7IDwgbWVuZ2FcIDsKK+eEoembuyA8IG11ZGVuXCA7CivnhKHpm6MgPCBidW5hblwgOwor5aSW6ICzIDwgZ2FpamlcIDsKK+mdnueVqiA8IGhpYmFuXCA7CivmnInkvZkgPCB5dXV5b1wgOwor54Sh6ZmQIDwgbXVnZW5cIDsKK+S4jeWWhCA8IGZ1emVuXCA7CivkuI3llY8gPCBmdW1vblwgOwor5pyJ5LqLIDwgeXV1amlcIDsKK+ehq+m7hOiPryA8IGlvdWthXCA7Civnvqnli4cgPCBnaXl1dVwgOwor6aCS5biDIDwgaGFucHVcIDsKK+irluegtCA8IHJvbnBhXCA7CivnvbXlo7AgPCBiYXNlaVwgOwor5LiL5ZOBIDwgZ2VoaW5cIDsKK+aciOS4iyA8IGdla2thXCA7CivoqJPovp4gPCBrdW5qaVwgOwor5aSi57K+IDwgbXVzZWlcIDsKK+mfs+aEnyA8IG9ua2FuXCA7CivkuI3lj4IgPCBmdXNhblwgOwor6aCG5bqPIDwganVuam9cIDsKK+mhnuWPpSA8IHJ1aWt1XCA7CivkuIrlj6QgPCBqb3Vrb1wgOwor5LiJ5Y+JIDwgc2Fuc2FcIDsKK+mZuui3ryA8IGtlbnJvXCA7CivpmLLpmaQgPCBib3Vqb1wgOwor5LiN5YuiIDwgYnV6ZWlcIDsKK+ipseiKuCA8IHdhZ2VpXCA7Civnvo7lkI0gPCBiaW1laVwgOwor5aGp6YW4IDwgZW5zYW5cIDsKK+Wkp+eptCA8IG9vYW5hXCA7CivnjKrlj6MgPCBjaG9rb1wgOwor5pak55uuIDwga2lubWVcIDsKK+eJp+atjCA8IGJva2thXCA7CivkuIvliaQgPCBnZXphaVwgOwor54Sh6YqtIDwgbXVzZW5cIDsKK+WgtOmdoiA8IGJhbWVuXCA7CivoqIDovp4gPCBnZW5qaVwgOwor54Sh6YqYIDwgbXVtZWlcIDsKK+iqpOeulyA8IGdvc2FuXCA7CivniKrniZkgPCBzb3VnYVwgOwor5aSq56WWIDwgdGFpc29cIDsKK+aal+WknCA8IGFuJyd5YVwgOwor5aSp56WWIDwgdGVuc29cIDsKK+itt+aGsiA8IGdva2VuXCA7CivlpJrnq68gPCB0YXRhblwgOwor6Kmg6I2JIDwgZWlzb3VcIDsKK+Wjrue+jiA8IHNvdWJpXCA7CivlpJrnqK4gPCB0YXNodVwgOwor54Sh6YWNIDwgbXVoYWlcIDsKK+eKr+aEjyA8IGhhbicnaVwgOwor5LiL5YOnIDwgZ2Vzb3VcIDsKK+e+qeS6uiA8IGdpamluXCA7CivkuIDliIYgPCBpcHB1blwgOwor5aWH55GeIDwga2l6dWlcIDsKK+irlueQhiA8IHJvbnJpXCA7CivlpKfnoLQgPCB0YWloYVwgOwor6ZuF6Ie0IDwgZ2FjaGlcIDsKK+S4jeWAqyA8IGZ1cmluXCA7CivoqbHogIUgPCB3YXNoYVwgOwor5pel5rOiIDwgbmlwcG9cIDsKK+S4luS7oyA8IHNlZGFpXCA7CivkuJbkurogPCBzZWppblwgOwor5pWF6ICBIDwga29yb3VcIDsKK+S4iuWApCA8IHV3YW5lXCA7CivnhKHpgZMgPCBtdWRvdVwgOwor5LiN5L6/IDwgZnViZW5cIDsKK+Wil+ijnCA8IHpvdWhvXCA7CivnuZTnm64gPCBvcmltZVwgOwor6KiT6KmxIDwga3Vud2FcIDsKK+eEoei+uiA8IG11aGVuXCA7CivpmqDolL0gPCBpbnBlaVwgOwor576F5YW4IDwgcmF0ZW5cIDsKK+mZsOisgCA8IGluYm91XCA7CivoqJPoqYEgPCBrdW5rb1wgOwor5aaT5qW8IDwgZ2lyb3VcIDsKK+aWh+ebriA8IGF5YW1lXCA7CivlpInnp7sgPCBoZW4nJ2lcIDsKK+S4i+S6uiA8IGdlbmluXCA7CivmmrTliKkgPCBib3VyaVwgOwor5pqX5ZapIDwgYW4nJ3l1XCA7CivloZHpgKAgPCBzb3pvdVwgOwor5ama5YSAIDwga29uZ2lcIDsKK+e0memtmiA8IHNoaW1pXCA7CivkuIfkuosgPCBiYW5qaVwgOwor6Ku45rS+IDwgc2hvaGFcIDsKK+S4iuS4iyA8IGpvdWdlXCA7CivkuInkuJYgPCBzYW56ZVwgOwor6Zu756OBIDwgZGVuamlcIDsKK+mgkeWbuiA8IGdhbmtvXCA7Civnvo7kurogPCBiaWppblwgOwor57235YWNIDwgaGltZW5cIDsKK+Wkp+eTtiA8IG9vYmluXCA7CivoqIDoqp4gPCBnZW5nb1wgOwor5aS354uEIDwgaXRla2lcIDsKK+aal+WQmyA8IGFua3VuXCA7CivmmpflkIggPCBhbmdvdVwgOwor6K235bK4IDwgZ29nYW5cIDsKK+W+oeelnumFkiA8IG9taWtpXCA7CivnianmlYUgPCBidWtrb1wgOwor5aSp55CGIDwgdGVucmlcIDsKK+e0oOmkiiA8IHNveW91XCA7Civlp5DlvqEgPCBhbmVnb1wgOwor5aSc55WqIDwgeW9iYW5cIDsKK+mcsueCuSA8IHJvdGVuXCA7Civpn7PlpKcgPCBvbmRhaVwgOwor6Z+z5aOwIDwgb25zZWlcIDsKK+WkmueUqCA8IHRheW91XCA7CivlpJrnlKMgPCB0YXNhblwgOwor57Sg6aGUIDwgc3VnYW9cIDsKK+aUuee1hCA8IGthaXNvXCA7CivntKvpm7IgPCBzaGl1blwgOwor57eo6ICFIDwgaGVuamFcIDsKK+Wls+aoqSA8IGpva2VuXCA7CivlpKnni5cgPCB0ZW5ndVwgOwor5aWl5q2vIDwgb2t1YmFcIDsKK+aXqeacnyA8IHNvdWtpXCA7CivntKDpnaIgPCBzdW1lblwgOwor57ir55uuIDwgbnVpbWVcIDsKK+eEoeisgCA8IG11Ym91XCA7Civml4XmrKEgPCByeW9qaVwgOwor5pel5pysIDwgbmlob25cIDsKK+eEoeirliA8IG11cm9uXCA7CivpnZ7mpa0gPCBoaWdvdVwgOwor5pem5pquIDwgdGFuYm9cIDsKK+ezuOmtmiA8IGl0b3lvXCA7Civpm6jnnYAgPCBhbWFnaVwgOwor5aiB5ZynIDwgaWF0c3VcIDsKK+eEoeiogCA8IG11Z29uXCA7CivlpoLmmK8gPCBueW96ZVwgOwor5aiB5ZqHIDwgaWtha3VcIDsKK+aVsOeQhiA8IHN1dXJpXCA7CivnhrHnoIIgPCBuZXNzYVwgOwor5aSp54GrIDwgdGVucGlcIDsKK+eMiuS4iyA8IGdlaWthXCA7CivpmLLorbcgPCBib3Vnb1wgOwor6aCt5LiKIDwgenVqb3VcIDsKK+mdkuaihSA8IGFvdW1lXCA7CivloZfoo4UgPCB0b3NvdVwgOwor5pWF55+lIDwga29jaGlcIDsKK+maoOe3miA8IGluc2VuXCA7Civoppbph44gPCBzaGl5YVwgOwor6Zmw6IyOIDwgaW5rZWlcIDsKK+eHoOeBqyA8IG9raWJpXCA7Civpn7PlkI0gPCBvbm1laVwgOwor5aal5b2TIDwgZGF0b3VcIDsKK+aZguWgsSA8IGppaG91XCA7CivntYzot68gPCBrZWlyb1wgOwor5aGp6JS1IDwgZW56b3VcIDsKK+aYoOWwhCA8IGVpc2hhXCA7Civoq7rmlocgPCBvbm1vblwgOwor5aKo57W1IDwgc3VtaWVcIDsKK+e0sOmDqCA8IHNhaWJ1XCA7Civnt7Tno6ggPCByZW5tYVwgOwor6Kyd5oGpIDwgc2hhb25cIDsKK+aYhuW4gyA8IGtvbmJ1XCA7Civpm7LnhZkgPCB1bicnZW5cIDsKK+WlveaJkyA8IGtvdWRhXCA7CivpmLLooZsgPCBib3VlaVwgOwor5aSn5rKzIDwgdGFpZ2FcIDsKK+mbt+eBqyA8IHJhaWthXCA7CivntrLnvoUgPCBtb3VyYVwgOwor6KiT576pIDwga3VuZ2lcIDsKK+aYqOWknCA8IHl1dWJlXCA7CivnhKHok4sgPCBtdWdhaVwgOwor6KaH6YGTIDwgaGFkb3VcIDsKK+ilv+mDqCA8IHNlaWJ1XCA7Civpm4fnlKggPCBrb3lvdVwgOwor6Z+z5YOPIDwgb256b3VcIDsKK+S8iuS9kOacqCA8IGlzYWtpXCA7CivlprvlpbMgPCBzYWlqb1wgOwor5aSn5q2MIDwgb291dGFcIDsKK+aWh+auiiA8IG1vbmp1XCA7CivnhKHoj4wgPCBtdWtpblwgOwor5paH5q2mIDwgYnVuYnVcIDsKK+aFsOWuieWppiA8IGlhbmZ1XCA7CivnhKHojLYgPCBtdWNoYVwgOwor6Z+z5L6/IDwgb25iaW5cIDsKK+WkmuavmyA8IHRhbW91XCA7CivlpKfmqLkgPCB0YWlqdVwgOwor5aSW5rCXIDwgZ2Fpa2lcIDsKK+eEoeiKuCA8IG11Z2VpXCA7CivlpKfmp5ggPCBvb3lvdVwgOwor6KO96bq7IDwgc2VpbWFcIDsKK+e3j+ekviA8IHNvdWphXCA7Civorablj6UgPCBrZWlrdVwgOwor6Z2e5oOFIDwgaGlqb3VcIDsKK+aZguWMliA8IHNoaWtlXCA7Civpm6jmu7QgPCB1dGVraVwgOwor6Zuy5rW3IDwgdW5rYWlcIDsKK+mbkeeFriA8IHpvdW5pXCA7CivmmJ/lm7MgPCBzZWl6dVwgOwor6KaB6LevIDwgeW91cm9cIDsKK+Wls+W+oSA8IG55b2dvXCA7CivmlqHml4sgPCBhc3NlblwgOwor6Zuy5rOlIDwgdW5kZWlcIDsKK+itpuWLmSA8IGtlaW11XCA7CivnhKHog70gPCBtdW5vdVwgOwor54qs5YSSIDwga2VuanVcIDsKK+Wkp+imi+W+lyA8IG9vbWllXCA7CivmlbDmrKEgPCBzdXVqaVwgOwor5pW15qmfIDwgdGVra2lcIDsKK+mbsuawtCA8IHVuc3VpXCA7CivlppblqYYgPCB5b3ViYVwgOwor6Z2S5oGvIDwgYW9pa2lcIDsKK+mWkembhSA8IGthbmdhXCA7CivlpKfmnp0gPCBvb2VkYVwgOwor5aOy5rerIDwgYmFpaW5cIDsKK+mcp+aVoyA8IG11c2FuXCA7CivlpbPluJ0gPCBqb3RlaVwgOwor57ea55S7IDwgc2VuZ2FcIDsKK+aWsOaJiyA8IGFyYXRlXCA7CivnhKHnvaogPCBtdXphaVwgOwor5pWj5q2pIDwgc2FucG9cIDsKK+mbqOawtyA8IHVoeW91XCA7Civmlofmm7ggPCBtb25qb1wgOwor5pei5a6aIDwga2l0ZWlcIDsKK+e0m+itsCA8IGZ1bmdpXCA7CivpmaTnrpcgPCBqb3phblwgOwor6K2w5LyaIDwgZ2lrYWlcIDsKK+WwhOaJi+W6pyA8IGl0ZXphXCA7CivoqabmvJQgPCBzaGllblwgOwor5pKr6IKyIDwgYnVpa3VcIDsKK+iqnuaguSA8IGdva29uXCA7CivnhrHms6IgPCBuZXBwYVwgOwor5aSa5pybIDwgdGFib3VcIDsKK+Wls+WwiiA8IGpvc29uXCA7CivniaLlm7ogPCByb3Vrb1wgOwor6Kmx5rOVIDwgd2Fob3VcIDsKK+eCiei+uiA8IHJvaGVuXCA7CivnhannkaMgPCBoYW5zYVwgOwor57eP55CGIDwgc291cmlcIDsKK+eEoeezliA8IG11dG91XCA7Civpmb3nmq4gPCB5b3VoaVwgOwor5aSn5pCNIDwgb296b25cIDsKK+mcsuaCqiA8IHJvYWt1XCA7CivnioDliKkgPCBzYWlyaVwgOwor5aSa5pWwIDwgdGFzdXVcIDsKK+e2suebriA8IGFtaW1lXCA7CivlpKnmjoggPCB0ZW5qdVwgOwor5aSW5pa5IDwgc29wcG9cIDsKK+eyl+mkkCA8IHNvc2FuXCA7Civnspfpo68gPCBzb2hhblwgOwor6ZaJ6Y6WIDwgaGVpc2FcIDsKK+e0oOihjCA8IHNva291XCA7CivntbnntbUgPCBraW51ZVwgOwor6K2c5LujIDwgZnVkYWlcIDsKK+WhqeeojiA8IGVuemVpXCA7CivntbXntbkgPCBlZ2ludVwgOwor6Zqg54S2IDwgaW56ZW5cIDsKK+iqnuaVsCA8IGdvc3V1XCA7CivmmKDlgKsgPCBlaXJpblwgOwor57K+6YutIDwgc2VpZWlcIDsKK+mbsuaZryA8IHVua2VpXCA7CivniYjlm7MgPCBoYW50b1wgOwor5aWH5beMIDwga2lnYW5cIDsKK+WnieS4iiA8IGFuZXVlXCA7CivnhKHnqL0gPCBtdWtlaVwgOwor6KWy6KGjIDwgc2h1dWlcIDsKK+mWk+mBoCA8IG1hZG9vXCA7CivnhKHnqI4gPCBtdXplaVwgOwor6Kmg5q2OIDwgZWl0YW5cIDsKK+Wkp+aEmiA8IHRhaWd1XCA7Civpm7LmlaMgPCB1bnNhblwgOwor6Zui5p2RIDwgcmlzb25cIDsKK+WknOaIpiA8IHlhc2VuXCA7CivkuI3mhI/msJcgPCBidWlraVwgOwor57W1562GIDwgZWZ1ZGVcIDsKK+WkmuaJjSA8IHRhc2FpXCA7CivmlofmhI8gPCBidW4nJ2lcIDsKK+ilpOikuCA8IHJhbnJ1XCA7CivlpKfmgp8gPCBkYWlnb1wgOwor54Sh56S8IDwgYnVyZWlcIDsKK+e5u+WtkCA8IHNodXN1XCA7CivplovpgYsgPCBrYWl1blwgOwor5aSn5oGpIDwgZGFpb25cIDsKK+ipsuahiCA8IGdhaWFuXCA7CivlpKLmg7MgPCBtdXNvdVwgOwor6KWm6KKiIDwganViYW5cIDsKK+mbo+aYkyA8IG5hbicnaVwgOwor5peo5ZGzIDwgdW1hbWlcIDsKK+ipseafhCA8IHdhaGVpXCA7CivlpYnlrokgPCBob3VhblwgOwor5aCV6IOOIDwgZGF0YWlcIDsKK+WkmuaEnyA8IHRha2FuXCA7Civmkq3nqK4gPCBoYXNodVwgOwor6Kqy5b25IDwga2Fla2lcIDsKK+mZoueUnyA8IGluc2VpXCA7Civoo5zpoYwgPCBob2RhaVwgOwor5aSa5oOFIDwgdGFqb3VcIDsKK+mbouaVoyA8IHJpc2FuXCA7CivoqabmoYggPCBzaGlhblwgOwor5aSa5oGoIDwgdGFrb25cIDsKK+Wkp+W6piA8IHRhaWRvXCA7CivmlbXmhI8gPCB0ZWtpaVwgOwor5paH5bqrIDwgYnVua29cIDsKK+imi+iIniA8IG1pbWFpXCA7CivloJXnvaogPCBkYXphaVwgOwor5aGp55SwIDwgZW5kZW5cIDsKK+eEoeebiiA8IG11ZWtpXCA7CivlpKflt64gPCB0YWlzYVwgOwor5aSn5belIDwgZGFpa3VcIDsKK+WkmuW9oiA8IHRha2VpXCA7CivmlazmhZUgPCBrZWlib1wgOwor5o+06LuNIDwgZW5ndW5cIDsKK+aVrOaEmyA8IGtlaWFpXCA7CivlpJrlvIEgPCB0YWJlblwgOwor6Z2e5ZG9IDwgaGltZWlcIDsKK+isgOWPmyA8IG11aG9uXCA7CivnspfpioUgPCBzb2RvdVwgOwor5pGp6ICXIDwgbWFtb3VcIDsKK+eItuWQmyA8IGZ1a3VuXCA7CivmlL7mmKAgPCBob3VlaVwgOwor57SF6JOuIDwgZ3VyZW5cIDsKK+mbgeacqCA8IGdhbmdpXCA7Civoo4/pnaIgPCByaW1lblwgOwor5pa55ZuzIDwgaG91enVcIDsKK+mbqOaIuCA8IGFtYWRvXCA7CivnhKHnlKggPCBtdXlvdVwgOwor54mh5Li5IDwgYm90YW5cIDsKK+Wkp+WwviA8IHRhaWJpXCA7CivnspfphZIgPCBzb3NodVwgOwor5aOy5omLIDwgdXJpdGVcIDsKK+Wil+a0viA8IHpvdWhhXCA7CivoqpjlvJUgPCB5dXVpblwgOwor5aSn5a62IDwgdGFpa2VcIDsKK+mbheaWhyA8IGdhYnVuXCA7CivopofogIUgPCBoYXNoYVwgOwor5pWw5bqmIDwgc3V1ZG9cIDsKK+Wkp+WtlyA8IG9vYXphXCA7Civmlq3lm7ogPCBkYW5rb1wgOwor6I2P6IOh6bq7IDwgZWdvbWFcIDsKK+aWh+WtlyA8IG1vbmppXCA7Civnh5Xlt6MgPCBlbnNvdVwgOwor5aWl5Y2wIDwgb2t1aW5cIDsKK+Wkq+WppiA8IG1lb3RvXCA7CivlpJrlsaQgPCB0YXNvdVwgOwor6Ki05qipIDwgc29rZW5cIDsKK+mbtuW6piA8IHJlaWRvXCA7CivngrnogIUgPCB0ZW5qYVwgOwor57W155S7IDwga2FpZ2FcIDsKK+mdnuWHoSA8IGhpYm9uXCA7CivlpbPlhKogPCBqb3l1dVwgOwor6Kqk5bCEIDwgZ29zaGFcIDsKK+WkluWuriA8IGdla3V1XCA7CivlpKrlpKsgPCB0YXl1dVwgOwor5aSn5aWlIDwgb29va3VcIDsKK+aOkumZpCA8IGhhaWpvXCA7CivlpoLkuIogPCBqb2pvdVwgOwor5aSn5aOwIDwgb29nb2VcIDsKK+aTrOavmyA8IGdpbW91XCA7CivlpZHljbAgPCBrZWlpblwgOwor6KaB57SgIDwgeW91c29cIDsKK+mbsuWxhSA8IGt1bW9pXCA7CivpnLLlkb0gPCByb21laVwgOwor6Zmw5q+bIDwgaW5tb3VcIDsKK+e5lOWcsCA8IG9yaWppXCA7CivpnIrlpKIgPCByZWltdVwgOwor5aSa5aSnIDwgdGFkYWlcIDsKK+aNlemvqCA8IGhvZ2VpXCA7CivlpJrlo7IgPCB0YWJhaVwgOwor6Zyy5Y+wIDwgcm9kYWlcIDsKK+e5geWkmiA8IGhhbnRhXCA7CivpmaTms5UgPCBqb2hvdVwgOwor54Sc54KJIDwga29ucm9cIDsKK+mbouWyuCA8IHJpZ2FuXCA7Civngq3ntKAgPCB0YW5zb1wgOwor5aSW5aC0IDwgZ2FpYmFcIDsKK+mbouWxsSA8IHJpemFuXCA7CivlpKflmJggPCBvb3Vzb1wgOwor5pWw5aSaIDwgc3V1dGFcIDsKK+maj+aZgiA8IHp1aWppXCA7CivpnIrlnJIgPCByZWllblwgOwor5pS/5bqcIDwgc2VpZnVcIDsKK+mYv+a8lSA8IGFrb2dpXCA7CivmlpfljZcgPCB0b25hblwgOwor5aOy5a2QIDwgdXJpa29cIDsKK+mbu+WgtCA8IGRlbmJhXCA7CivlpJblm6AgPCBnYWlpblwgOwor6Ziy54GrIDwgYm91a2FcIDsKK+mcsuWFiSA8IHJva291XCA7CivlpKflkbMgPCBvb2FqaVwgOwor5pa95Li7IDwgc2VzaHVcIDsKK+eEoeazlSA8IG11aG91XCA7CivmlYXlsbEgPCBrb3phblwgOwor5aSn5Y+wIDwgb29kYWlcIDsKK+WcqOmHjiA8IHphaXlhXCA7CivngavoibIgPCBoaWlyb1wgOwor5paH5Y+lIDwgbW9ua3VcIDsKK+m8vyA8IGdvdHN1XCA7CivnhKHmsLQgPCBtdXN1aVwgOwor6byOIDwga2FuYWVcIDsKK+eEoeavmyA8IG11bW91XCA7Civlm7PpnaIgPCB6dW1lblwgOwor5pS+5bGBIDwgaG91aGlcIDsKK+WjsuWlsyA8IGJhaXRhXCA7CivlpKnliqkgPCB0ZW5qb1wgOwor57Gz6LKoIDwgYmVpa2FcIDsKK+eEoeauiyA8IG11emFuXCA7CivplovoirEgPCBrYWlrYVwgOwor5aSc5Y+JIDwgeWFzaGFcIDsKK+WfuuebpCA8IGtpYmFuXCA7Civpt6kgPCBoZXRzdVwgOwor5aSn5YikIDwgb29iYW5cIDsKK+e0oOebtCA8IHN1bmFvXCA7CivopqrniLogPCBveWFqaVwgOwor6ZyA5ZOBIDwganVoaW5cIDsKK+ijnOismyA8IGhva291XCA7Civpm6PloLQgPCBuYW5iYVwgOwor6baNIDwgaXN1a2FcIDsKK+WjsuWgtCA8IHVyaWJhXCA7CivptokgPCB1enVyYVwgOwor6Zmi5pysIDwgaW5wb25cIDsKK+WkmuWLoiA8IHRhemVpXCA7Civlm5vpoacgPCBzaGlrb1wgOwor5aSn5YSSIDwgZGFpanVcIDsKK+WknOWJjSA8IHlhemVuXCA7CivnsbPoqp4gPCBiZWlnb1wgOwor6Zi75q2iIDwgc29zaGlcIDsKK+WkluWLmSA8IGdhaW11XCA7Civpm5HlpJogPCB6YXR0YVwgOwor5aSc5YiGIDwgeWFidW5cIDsKK+aVl+WboCA8IGhhaWluXCA7CivnsbPoqbEgPCBiZWl3YVwgOwor6bGXIDwgdXJva29cIDsKK+mwuyA8IHVuYWdpXCA7CivmlonlgpkgPCBzZWliaVwgOwor57W15paH5a2XIDwgZW1vamlcIDsKK+Wik+aJgCA8IGJvc2hvXCA7CivpsJIgPCBhd2FiaVwgOwor6bCPIDwgaHlva3VcIDsKK+iqnuWLoiA8IGdvc2VpXCA7CivpsI0gPCBpbmFkYVwgOwor6Kqk5YikIDwgZ29oYW5cIDsKK+mwiSA8IGhpZ2FpXCA7Civpr48gPCBhc2FyaVwgOwor5Zuz6ZGRIDwgenVrYW5cIDsKK+murSA8IHNoYWtlXCA7Civpm7Llj7AgPCB1bmRhaVwgOwor6KqN5ZCmIDwgbmlucGlcIDsKK+eEoeaguSA8IG11a29uXCA7CivlpInljJYgPCBoZW5nZVwgOwor6KqN5Y+vIDwgbmlua2FcIDsKK+mruiA8IGdhdHN1XCA7CivntrLmiLggPCBhbWlkb1wgOwor6KiY5oa2IDwga2lva3VcIDsKK+aWh+S6iyA8IGJ1bmppXCA7Civmk6zmhYsgPCBnaXRhaVwgOwor57KX6Iy2IDwgc29jaGFcIDsKK+WknOS8miA8IHlha2FpXCA7CivntJTnkIYgPCBqdW5yaVwgOwor6Zui5ZCIIDwgcmlnb3VcIDsKK+mbo+WPpSA8IG5hbmt1XCA7Civnt57lrZAgPCBkb25zdVwgOwor6Zui5Y+NIDwgcmloYW5cIDsKK+e0oOeJhyA8IHNvaGVuXCA7CivoqqTkvJ0gPCBnb2RlblwgOwor57O455uuIDwgaXRvbWVcIDsKK+e1teafhCA8IGVnYXJhXCA7CivoqJjlv7UgPCBraW5lblwgOwor54Sh5patIDwgbXVkYW5cIDsKK+mZsOaDqCA8IGluc2FuXCA7CivnhKHmlbAgPCBtdXN1dVwgOwor57W15pytIDwgZWZ1ZGFcIDsKK+aVsOS+oSA8IHN1dWthXCA7Civntr/luIMgPCBtZW5wdVwgOwor6Zu75L2NIDwgZGVuJydpXCA7Civnsr7nspcgPCBzZWlzb1wgOwor6Zuo5YW3IDwgYW1hZ3VcIDsKK+mdqCA8IGVrdWJvXCA7CivmjqnolL0gPCBlbnBlaVwgOwor6Zuj5YSAIDwgbmFuZ2lcIDsKK+maiSA8IGdldHN1XCA7CivoqablkIggPCBzaGlhaVwgOwor6Zqg5aOrIDwgaW5zaGlcIDsKK+Wis+WikyA8IGZ1bmJvXCA7CivoobDpgYsgPCBzdWl1blwgOwor6ZuF5Y+3IDwgZ2Fnb3VcIDsKK+ipoOWQnyA8IGVpZ2luXCA7CivmlL/li5kgPCBzZWltdVwgOwor5aC05pyrIDwgYmFzdWVcIDsKK+e2vuWtkCA8IHJpbnp1XCA7CivnhKHmiY0gPCBtdXNhaVwgOwor54Ks54GrIDwga3lva2FcIDsKK+exs+iLsSA8IGJlaWVpXCA7CivpmqDlnYogPCBvbmJvdVwgOwor6Zq75Y+lIDwgc2Vra3VcIDsKK+eEoeaFriA8IG11cnlvXCA7CivloIDmsZ8gPCBob3JpZVwgOwor6Zui5Lu7IDwgcmluaW5cIDsKK+e1kOaenCA8IGtla2thXCA7CivoobDouq8gPCBzdWlrdVwgOwor6Zuj5LqLIDwgbmFuamlcIDsKK+WcsOiUtSA8IGppem91XCA7CivnhKHmg4UgPCBtdWpvdVwgOwor6Y+JIDwgc2h5dXVcIDsKK+mOpyA8IHlvcm9pXCA7CivoqZDlj5YgPCBzYXNodVwgOwor6ZuF5YWEIDwgZ2FrZWlcIDsKK+mMqCA8IGlrYXJpXCA7CivpjJggPCB0c3VtdVwgOwor54Sh5b+1IDwgbXVuZW5cIDsKK+Wbnui3ryA8IGthaXJvXCA7CivopqrmnKggPCBveWFnaVwgOwor6ZuR5L2cIDwgem91c2FcIDsKK+mZkOW6piA8IGdlbmRvXCA7CivpiLogPCBneW9rdVwgOwor5aGB5omTIDwgcnVpZGFcIDsKK+Wcn+iUtSA8IGRvem91XCA7Civopovmp5ggPCBtaXlvdVwgOwor5pWF5Li7IDwga29zaHVcIDsKK+ilv+aspyA8IHNlaW91XCA7CivopofmqKkgPCBoYWtlblwgOwor57KX56yoIDwgc29ob25cIDsKK+e0oeapnyA8IGJvdWtpXCA7Civlm7Pop6MgPCB6dWthaVwgOwor5Zyw6ImyIDwgamlpcm9cIDsKK+Wcn+iRrCA8IGRvc291XCA7Civmjqrnva4gPCBzb2NoaVwgOwor5aKT5ZywIDwgYm9jaGlcIDsKK+WcqOiLsSA8IHphaWVpXCA7Civns5zniJsgPCBiaXJhblwgOwor5aC05omAIDwgYmFzaG9cIDsKK+ihl+i3ryA8IGdhaXJvXCA7CivloZflt6UgPCB0b2tvdVwgOwor6ZqP5ZOhIDwgenVpaW5cIDsKK+aLl+mfsyA8IHlvdW9uXCA7CivopovmoIQgPCBtaWJhZVwgOwor57W55biDIDwga2VucHVcIDsKK+eEoeWwvSA8IG11amluXCA7CivpmaTlpJYgPCBqb2dhaVwgOwor5aKX5ZOhIDwgem91aW5cIDsKK+e1teW3uyA8IGVtYWtpXCA7CivopovmnKwgPCBtaWhvblwgOwor6Zmi5aSWIDwgaW5nYWlcIDsKK+e3j+WLmSA8IHNvdW11XCA7Civpl4rmrakgPCBrYXBwb1wgOwor6Lq1IDwgbmVyYXVcIDsKK+maoOWFgyA8IGluZ2VuXCA7CivnhKHlrpggPCBtdWthblwgOwor5Z+65pysIDwga2lob25cIDsKK+eyl+egpSA8IGFyYXRvXCA7CivloLHmgakgPCBob3VvblwgOwor57Sg5p2QIDwgc296YWlcIDsKK+e3j+WHuiA8IHNvdWRlXCA7CivlnJLoirggPCBlbmdlaVwgOwor6LebIDwgYmlra29cIDsKK+aNleiZnCA8IGhvcnlvXCA7CivpmqPkv50gPCByaW5wb1wgOwor5aKT5Y+CIDwgYm9zYW5cIDsKK+ijuOecvCA8IHJhZ2FuXCA7CivntbblrrYgPCB6ZWtrZVwgOwor6KiY5Y+3IDwga2lnb3VcIDsKK+a/vue0mSA8IHJvc2hpXCA7CivmkanmkI0gPCBtYXNvblwgOwor5aGU5amGIDwgdG91YmFcIDsKK+e0oOaVsCA8IHNvc3V1XCA7CivlopPliY0gPCBib3plblwgOwor6Kaq5b6hIDwgb3lhZ29cIDsKK+eCueaSrSA8IHRlbnBhXCA7CivoqLTkurogPCBzb25pblwgOwor6KGX6KGiIDwgZ2Fpa3VcIDsKK+mWi+a8lCA8IGthaWVuXCA7CivntIvml6UgPCBtb25iaVwgOwor6Zmk5Y+3IDwgam9nb3VcIDsKK+WbsOiLpiA8IGtvbmt1XCA7CivpmaTljrsgPCBqb2t5b1wgOwor6Zmi5Y+3IDwgaW5nb3VcIDsKK+maiuS8jSA8IHRhaWdvXCA7Civon7vphbggPCBnaXNhblwgOwor5Zyw56efIDwgY2hpc29cIDsKK+e0sOW+riA8IHNhaWJpXCA7Civmi53ovp4gPCBoYWlqaVwgOwor5Zyf566hIDwgZG9rYW5cIDsKK+WhiuWcnyA8IGthaWRvXCA7Civoo4/nm64gPCB1cmFtZVwgOwor6KaW5bqmIDwgc2hpZG9cIDsKK+eyl+eFriA8IGFyYW5pXCA7Civoppblt64gPCBzaGlzYVwgOwor57Sg5oCnIDwgc3Vqb3VcIDsKK+e0sOW3pSA8IHNhaWt1XCA7Civpmarkvo0gPCBiYWlqaVwgOwor5aCw5aCkIDwgZW50ZWlcIDsKK+iXnCA8IGFrYXphXCA7CivlnKfnoJUgPCBhc3NhaVwgOwor54Sh5Yq5IDwgbXVrb3VcIDsKK+WcsOebpCA8IGppYmFuXCA7CivoloogPCBhemFtaVwgOwor54Gr5qG2IDwgaGlva2VcIDsKK+aNlee4hCA8IGhvam91XCA7Civntbblj6UgPCB6ZWtrdVwgOwor57Ch57SgIDwga2Fuc29cIDsKK+iUpiA8IHRzdXRhXCA7CivolKQgPCBiaXRzdVwgOwor5oq86YCBIDwgb3Vzb3VcIDsKK+Wcn+eggiA8IGRvc2hhXCA7Civngrnlt64gPCB0ZW5zYVwgOwor5aCh5aGBIDwgaG9ydWlcIDsKK+e0lOW6piA8IGp1bmRvXCA7CivlnKfnl5UgPCBha2tvblwgOwor6IyoIDwgaWJhcmFcIDsKK+iMnCA8IGFrYW5lXCA7Civnsr7mn7sgPCBzZWlzYVwgOwor6IyAIDwgaHV0c3VcIDsKK+iLtiA8IGRldHN1XCA7CivmgbXmr5Tlr78gPCBlYmlzdVwgOwor5aC05ZGzIDwgYmFhamlcIDsKK+eDiOWppiA8IHJlcHB1XCA7CivmjojnlKMgPCBqdXNhblwgOwor54Sh5L2TIDwgbXV0YWlcIDsKK+ihjOiEmiA8IGFuZ3lhXCA7CivnhKHkvY8gPCBtdWp1dVwgOwor5o+65puzIDwgeW91ZWlcIDsKK+Wcn+eUqCA8IGRveW91XCA7CivonrrpiL8gPCByYWRlblwgOwor54Sh5Lq6IDwgbXVuaW5cIDsKK+Wcn+eTtiA8IGRvYmluXCA7CivpmLLlhbcgPCBib3VndVwgOwor6ZW35p+EIDwgbmFnYWVcIDsKK+iln+W6piA8IGtpbmRvXCA7CivooaPns6cgPCBpcnlvdVwgOwor6Ziy5YKZIDwgYm91YmlcIDsKK+iCrSA8IGRvdHN1XCA7CivntZDlj6UgPCBrZWtrdVwgOwor6IKLIDwgYWJhcmFcIDsKK+aJk+mghiA8IGRhanVuXCA7CivmkYLlrrYgPCBzZWtrZVwgOwor5aCF5Zu6IDwga2VuZ29cIDsKK+aJi+mghiA8IHRlanVuXCA7CivmiZPpm7sgPCBkYWRlblwgOwor5o+Q5qGIIDwgdGVpYW5cIDsKK+Wcp+eCuSA8IGF0dGVuXCA7Civoo5zmraMgPCBob3NlaVwgOwor5o+h5panIDwgYWt1ZnVcIDsKK+aJk+mWiyA8IGRha2FpXCA7CivopoHlm7MgPCB5b3V6dVwgOwor6KaB5ZugIDwgeW91aW5cIDsKK+ertummrCA8IGtlaWJhXCA7CivmvI/oqbEgPCByb3V3YVwgOwor5o6h5rK5IDwgc2FpeXVcIDsKK+WgtOS7oyA8IGJhZGFpXCA7CivnspfmmrQgPCBzb2JvdVwgOwor5Zyw5ripIDwgY2hpb25cIDsKK+ijj+avmyA8IHVyYWtlXCA7CivploDmiYkgPCBtb25waVwgOwor6ZaA5oi4IDwgbW9ua29cIDsKK+eykiA8IHRzdWJ1XCA7CivmiqvoposgPCBoaWtlblwgOwor56+pIDwgZnVydWlcIDsKK+eCreWboyA8IHRhZG9uXCA7Civlm57nm64gPCBrYWltZVwgOwor5ruF6YeRIDwgbWVra2lcIDsKK+etjyA8IGlrYWRhXCA7CivlnLDmrakgPCBjaGlob1wgOwor5omL6YygIDwgdGVqb3VcIDsKK+WcsOatjCA8IGppdXRhXCA7CivploDlvpIgPCBtb250b1wgOwor56erIDwgam90c3VcIDsKK+Wbs+eJiCA8IHp1aGFuXCA7CivngavlsbEgPCBrYXphblwgOwor57O75ZuzIDwga2VpenVcIDsKK+Wcp+atuyA8IGFzc2hpXCA7CivmiYvph5EgPCB0ZWtpblwgOwor5Zyf5rCRIDwgZG9taW5cIDsKK+eCueWJjSA8IHRlbWFlXCA7CivmjqLmn7sgPCB0YW5zYVwgOwor57SN5Y+XIDwgbm91anVcIDsKK+aJi+mFjSA8IHRlaGFpXCA7CivmjojmqKkgPCBqdWtlblwgOwor562G6KiYIDwgaGlra2lcIDsKK+eyl+aCqiA8IHNvYWt1XCA7CivntKDkvZMgPCBzb3RhaVwgOwor57Oe5ZyfIDwgZnVuZG9cIDsKK+eVmeWuiOWxhSA8IHJ1c3VpXCA7CivplbflsYUgPCBuYWdhaVwgOwor5ryr5721IDwgbWFuYmFcIDsKK+err+mKrSA8IGhhc2VuXCA7CivnlpkgPCBnaXRzdVwgOwor5LiN5b6X5omLIDwgZnVldGVcIDsKK+euquespSA8IHRhbnN1XCA7Civlm7Pms5UgPCB6dWhvdVwgOwor5r2k55uuIDwgdXJ1bWVcIDsKK+a5lumdoiA8IGtvbWVuXCA7Civmj5rlsYsgPCBhZ2V5YVwgOwor6KOP5omLIDwgdXJhdGVcIDsKK+ien+ibviA8IG1laWdhXCA7CivlnKfmlL8gPCBhc3NlaVwgOwor5oq857W1IDwgb3NoaWVcIDsKK+a5r+mKrSA8IHl1c2VuXCA7CivplrLlhbUgPCBlcHBlaVwgOwor6KOc5bymIDwgaG9nZW5cIDsKK+ihjOeBryA8IGFuZG9uXCA7CivmiYvoqbEgPCBzaHV3YVwgOwor5Zyn5o6SIDwgYXBwYWlcIDsKK+WWtui+siA8IGVpbm91XCA7CivmiYvoo70gPCB0ZXNlaVwgOwor5Z+O5LiLIDwgam91a2FcIDsKK+eyl+WkpyA8IHNvZGFpXCA7Civlm7rmnIkgPCBrb3l1dVwgOwor5rip6aGUIDwgb25nYW5cIDsKK+eCiuS6iyA8IHN1aWppXCA7Civngo7kuIogPCBlbmpvdVwgOwor5o275oyrIDwgbmVuemFcIDsKK+a8lOeulyA8IGVuemFuXCA7CivmuKnpoIYgPCBvbmp1blwgOwor56qB6aObIDwgdG9wcGlcIDsKK+eEoeaEj+e+qSA8IG11aWdpXCA7CivnsbPlr78gPCBiZWlqdVwgOwor5oqV57ayIDwgdG9hbWlcIDsKK+aQjeS/nSA8IHNvbnBvXCA7Civoo4/lsYsgPCB1cmF5YVwgOwor5o6q5a6aIDwgc290ZWlcIDsKK+aIpuiomCA8IHNlbmtpXCA7CivmiYvoloQgPCB0ZXVzdVwgOwor5Zyo5bqrIDwgemFpa29cIDsKK+erpeipsSA8IGRvdXdhXCA7CivplpPku6MgPCBtYWRhaVwgOwor5Zyn5be7IDwgYWtrYW5cIDsKK+a8q+eUuyA8IG1hbmdhXCA7Civmj5rlj6UgPCBhZ2VrdVwgOwor6KOc5aGrIDwgaG90ZW5cIDsKK+eyl+WTgSA8IHNvaGluXCA7CivlnJ/lt6UgPCBkb2tvdVwgOwor5Zub5pelIDwgeW9ra2FcIDsKK+aJi+iNkiA8IHRlYXJhXCA7CivnsbPloakgPCBiZWllblwgOwor5o6p5aOVIDwgZW5nb3VcIDsKK+WcqOWutiA8IHphaWtlXCA7Civoo5zlm54gPCBob2thaVwgOwor5qW+IDwgaGF6b3VcIDsKK+akoyA8IHNoaWRlXCA7CivploDkuIsgPCBtb25rYVwgOwor5Zm054GrIDwgZnVua2FcIDsKK+eyl+WIqSA8IGFyYXJpXCA7Civoo4/lnLAgPCB1cmFqaVwgOwor5rer6aKoIDwgaW5wdXVcIDsKK+aJk+iAhSA8IGRhc2hhXCA7CivmoIMgPCB0b2NoaVwgOwor5Zyw5aOwIDwgamlnb2VcIDsKK+WbveW6qyA8IGtva2tvXCA7CivmnYEgPCBlYnVyaVwgOwor562G56aNIDwgaGlra2FcIDsKK+icu+ibiSA8IHRvbmJvXCA7CivooYzmlrkgPCB5dWt1ZVwgOwor6KO45YOPIDwgcmF6b3VcIDsKK+Wbs+W9oiA8IHp1a2VpXCA7CivvvLDvvKMgPCBwxKtzaMSrXCA7CivmiZPnt5ogPCBkYXNlblwgOwor5Zyw5ZuzIDwgY2hpenVcIDsKK+ihqOaEjyA8IGh5b3VpXCA7CivmioDnoJQgPCBnaWtlblwgOwor5omL57mUIDwgdGVvcmlcIDsKK+ijuOS9kyA8IHJhdGFpXCA7Civlm7Plt6UgPCB6dWtvdVwgOwor6KGw5b6uIDwgc3VpYmlcIDsKK+ijj+WQjSA8IHVyYW5hXCA7CivlnJ/loYogPCBkb2thaVwgOwor5omL57e0IDwgdGVyZW5cIDsKK+Wcn+WhgSA8IGRvcnVpXCA7CivlnJ/loYAgPCBkb2JlaVwgOwor5ZSQ6Z+zIDwgdG91b25cIDsKK+WboOW+qiA8IGluanVuXCA7CivnsL/lpJYgPCBib2dhaVwgOwor5o6h5ZCmIDwgc2FpaGlcIDsKK+aSpSA8IGJhY2hpXCA7CivmioDnm6MgPCBnaWthblwgOwor56m66Ly4IDwga3V1eXVcIDsKK+ijnOWFhSA8IGhvanV1XCA7CivlnZHlhJIgPCBrb3VqdVwgOwor5Zu65a6aIDwga290ZWlcIDsKK+aMmeaOqiA8IGt5b3NvXCA7CivmiZPnrpcgPCBkYXNhblwgOwor5o6fIDwgb2tpdGVcIDsKK+Wcn+WaoiA8IGRvbm91XCA7CivmvLjmrKEgPCB6ZW5qaVwgOwor56m66LevIDwga3V1cm9cIDsKK+WbveWogSA8IGtva3VpXCA7CivmvZzmmYIgPCBzZW5qaVwgOwor5oekIDwgY2h5dXVcIDsKK+ijnOS7uyA8IGhvbmluXCA7CivmvKvmrakgPCBtYW5wb1wgOwor5ryB54GrIDwgZ3lva2FcIDsKK+aHh+ipsSA8IGtvbndhXCA7CivnqbrosrsgPCBrdXVoaVwgOwor6Juu6KqeIDwgYmFuZ29cIDsKK+aIr+e1tSA8IHphcmVlXCA7Civlm6PlrZAgPCBkYW5nb1wgOwor5Zyf5Y+wIDwgZG9kYWlcIDsKK+a2vOmbqCA8IHJ5b3V1XCA7CivlnYrkuLsgPCBib3V6dVwgOwor5Za257mVIDwgZWl6ZW5cIDsKK+enu+mnkCA8IGljaHV1XCA7CivomY7prZogPCBva296ZVwgOwor566X5pyoIDwgc2FuZ2lcIDsKK+aJi+ebuCA8IHRlc291XCA7CivlnKflgJIgPCBhdHRvdVwgOwor5rW36bC7IDwgYW5hZ29cIDsKK+W2jSA8IHNoaWh1XCA7CivmhoLouqsgPCB1a2ltaVwgOwor5om554K5IDwgaGl0ZW5cIDsKK+Wcn+WBtiA8IGRvZ3V1XCA7CivooYzlrq4gPCBhbmd1dVwgOwor5bOgIDwgdG91Z2VcIDsKK+WyjyA8IGd1d2FuXCA7Civlk4DpoZggPCBhaWdhblwgOwor5Zyf5Lq6IDwgZG9qaW5cIDsKK+WtsCA8IGl6dXJlXCA7CivmhJvppJAgPCBhaXNhblwgOwor5ayHIDwga3V3YWlcIDsKK+ibh+ihjCA8IGRha291XCA7CivmtYXpu4QgPCBhc2FnaVwgOwor5oW26LOAIDwga2VpZ2FcIDsKK+ihl+WbsyA8IGdhaXp1XCA7Civlo7cgPCB0c3Vib1wgOwor5omT54K5IDwgZGF0ZW5cIDsKK+a8j+aWlyA8IHJvdXRvXCA7CivmuKHoiLkgPCB0b3NlblwgOwor5rer6KGMIDwgaW5rb3VcIDsKK+WelCA8IHNoeW91XCA7Civlno8gPCByb3RzdVwgOwor5ZuuIDwgb3RvcmlcIDsKK+a4qee/kiA8IHNhcmFpXCA7Civnr4DlqaYgPCBzZXBwdVwgOwor5Zad56C0IDwga2FwcGFcIDsKK+WXpyA8IGdhcm9uXCA7Civll5YgPCBzaHVodVwgOwor5ZKM6aKoIDwgd2FmdXVcIDsKK+ieuuaXiyA8IHJhc2VuXCA7CivnqJ/orbAgPCByaW5naVwgOwor5oaC6JmeIDwgeXV1Z3VcIDsKK+aJk+azlSA8IGRhaG91XCA7Civlk5ggPCBzYXNvdVwgOwor5om25qGRIDwgZnVzb3VcIDsKK+iZmui+niA8IGt5b2ppXCA7CivooZvlhbUgPCBlaWhlaVwgOwor5oSa6YiNIDwgZ3Vkb25cIDsKK+m8oOi8qSA8IHNvaGFpXCA7CivlkIsgPCBpbmNoaVwgOwor5Zue5LuYIDwga2FpZnVcIDsKK+WNjSA8IG1hbmppXCA7CivpvKDouYogPCBzb2tlaVwgOwor5YyBIDwgbW9ubWVcIDsKK+aKiuaPoSA8IGhhYWt1XCA7CivmuKHnsbMgPCB0b2JlaVwgOwor5ouz5Zu6IDwgZ2Vua29cIDsKK+aKleaJkyA8IHRvdWRhXCA7CivpupLpup8gPCBraXJpblwgOwor5oaC6IumIDwgeXV1a3VcIDsKK+WXn+atjiA8IHNhdGFuXCA7CivlhLIgPCBtb3VrZVwgOwor5rW36L66IDwgdW1pYmVcIDsKK+aEm+i7iiA8IGFpc2hhXCA7CivmiZPmo5IgPCBkYWJvdVwgOwor5YGfIDwga3V3YXVcIDsKK+WAjCA8IGt1d2FuXCA7CivmgqrprZQgPCBha3VtYVwgOwor5rmv54GMIDwgeXVrYW5cIDsKK+aJi+ahtiA8IHRlb2tlXCA7CivnqLLojbcgPCBpbmFyaVwgOwor5rWm6L66IDwgdXJhYmVcIDsKK+WSjOmHkSA8IHdha2luXCA7Civpup3pppkgPCBqYWtvdVwgOwor6YiN6bq7IDwgZG9ubWFcIDsKK+aCqummrCA8IGFrdW1lXCA7CivmiYvmnKwgPCB0ZWhvblwgOwor5LmEIDwgc2hpbWVcIDsKK+a4m+ejqCA8IGdlbm1hXCA7CivnqoHnoLQgPCB0b3BwYVwgOwor5rW36LGaIDwgaXJ1a2FcIDsKK+ibh+euoSA8IGpha2FuXCA7Civlk4DoqakgPCBhaXNoaVwgOwor5omT5pWwIDwgZGFzdXVcIDsKK+aEmuirliA8IGd1cm9uXCA7CivmiYvmlqcgPCB0ZW9ub1wgOwor5oud5Y+XIDwgaGFpanVcIDsKK+a1quiyuyA8IHJvdWhpXCA7CivmiYvmlbAgPCB0ZXN1dVwgOwor5oi45p2/IDwgdG9pdGFcIDsKK+a8ouWcnyA8IGthbmRvXCA7CivmhJroqIggPCBndWtlaVwgOwor6Ymb6YyYIDwgZW5zdWlcIDsKK+eri+a0viA8IHJpcHBhXCA7CivmhJroposgPCBndWtlblwgOwor5oO56LW3IDwgamFra2lcIDsKK+WRs+mGgiA8IG1pcmluXCA7Civlkb3pgYsgPCBtZWl1blwgOwor56eY6KiIIDwgaGlrZWlcIDsKK+iYh+mAoyA8IHNvcmVuXCA7CivmhJrooYwgPCBndWtvdVwgOwor56m655aOIDwga3V1c29cIDsKK+a8geWkqyA8IGd5b2Z1XCA7Civmi53lhbcgPCBoYWlndVwgOwor6YqA6LKoIDwgZ2lua2FcIDsKK+err+acrCA8IGhhaG9uXCA7CivmtYHou6IgPCBydXRlblwgOwor5rW06KGjIDwgeW9rdWlcIDsKK+a8geWgtCA8IGd5b2JhXCA7CivmhI/ooaggPCBpaHlvdVwgOwor5oiv5paHIDwgZ2lidW5cIDsKK+a2suiCpSA8IGVraWhpXCA7CivnqbrnkIYgPCBrdXVyaVwgOwor5rqA5pyfIDwgbWFua2lcIDsKK+a5luawtCA8IGtvc3VpXCA7CivlkozorpogPCB3YXNhblwgOwor56uv5pWwIDwgaGFzdXVcIDsKK+WYmOWtlyA8IHVzb2ppXCA7CivmiJDmoYggPCBzZWlhblwgOwor5rOi6aCtIDwgaGF0b3VcIDsKK+aEm+iUtSA8IGFpem91XCA7CivpuqbphZIgPCBiaWlydVwgOwor5ZCN6aasIDwgbWVpYmFcIDsKK+WSjOiokyA8IHdha3VuXCA7Civlkozop6MgPCB3YWthaVwgOwor5rOi6Z2iIDwgaGFtZW5cIDsKK+aJi+W9kyA8IHRlYXRlXCA7CivnqLLnqYIgPCBpbmFob1wgOwor6by757eSIDwgaGFuYW9cIDsKK+WSjOijvSA8IHdhc2VpXCA7Civpi6TnsL4gPCBqb3JlblwgOwor5ZKM6KOFIDwgd2Fzb3VcIDsKK+aLheS/nSA8IHRhbnBvXCA7Civlkozoo4EgPCB3YXNhaVwgOwor5oaC55uuIDwgdWtpbWVcIDsKK+a4qea5ryA8IG9udG91XCA7CivlkIzpn7MgPCBkb3VvblwgOwor5oau54S2IDwgYnV6ZW5cIDsKK+aCqumBiyA8IGFrdXVuXCA7Civmh7jmnrYgPCBrZW5nYVwgOwor5oKj6YOoIDwga2FuYnVcIDsKK+mKmOiPkyA8IG1laWthXCA7Civpu5LooaMgPCBrb2t1ZVwgOwor5oKf6YGTIDwgZ29kb3VcIDsKK+WRs+imiyA8IGFqaW1pXCA7CivnhKHmhI/lkbMgPCBtdWltaVwgOwor5rip5rC0IDwgb25zdWlcIDsKK+m8u+erryA8IGJpdGFuXCA7CivmuKHmtIsgPCB0b3lvdVwgOwor5oSb6IKyIDwgYWlpa3VcIDsKK+a7heWkmiA8IG1ldHRhXCA7Civmt6vnjKUgPCBpbndhaVwgOwor5ryB5YW3IDwgZ3lvZ3VcIDsKK+aCqui3ryA8IGFrdXJvXCA7Civmg4XoqbEgPCBqb3V3YVwgOwor56iu55quIDwgc2h1aGlcIDsKK+aEmuiAhSA8IGd1c2hhXCA7CivmiYflrZAgPCBzZW5zdVwgOwor6YeO6aasIDwgbm91bWFcIDsKK+emheipsSA8IHplbndhXCA7CivmiJHmhaIgPCBnYW1hblwgOwor5Y+k6aKoIDwga29mdXVcIDsKK+epuuawlyA8IGt1dWtpXCA7Civnqbrmr40gPCBrdXVib1wgOwor5ZS+5rayIDwgZGFla2lcIDsKK+a6gOW6pyA8IG1hbnphXCA7Civllrbluq0gPCBlaXRlaVwgOwor6Jma56m6IDwga29rdXVcIDsKK+a3tea6kCA8IGVuZ2VuXCA7CivlkozoiLkgPCB3YXNlblwgOwor56S+6YGLIDwgc2hhdW5cIDsKK+aJueWIpCA8IGhpaGFuXCA7CivmiYvlnqIgPCB0ZWFrYVwgOwor5oKq6KiIIDwgYWtrZWlcIDsKK+aJueWHhiA8IGhpanVuXCA7CivpvJPnq6UgPCBrb2RvdVwgOwor5ZCP6YGTIDwgcm9kb3VcIDsKK+aKleS4jiA8IHRvdXlvXCA7Civmh7jmg7MgPCBrZXNvdVwgOwor5Y+X6ZujIDwganVuYW5cIDsKK+aIuOWkliA8IGtvZ2FpXCA7Civmh7rmgpQgPCB6YW5nZVwgOwor6Yuz54mpIDwgaW1vbm9cIDsKK+a4qeaaliA8IG9uZGFuXCA7CivmuKHmnaUgPCB0b3JhaVwgOwor5oGl6YOoIDwgY2hpYnVcIDsKK+aHuOW/tSA8IGtlbmVuXCA7CivmgqrooYwgPCBha2tvdVwgOwor5reh5rmWIDwgdGFua29cIDsKK+aIkOWwsSA8IGpvdWp1XCA7Civnp5/nqI4gPCBzb3plaVwgOwor5ZaE5oSPIDwgemVuJydpXCA7Civlj6Tpiq0gPCBrb3NlblwgOwor56ul5aWzIDwgZG91am9cIDsKK+m8oOeWqyA8IHNvZWtpXCA7CivmtYHnvaogPCBydXphaVwgOwor5Zea5ZK9IDwgb2V0c3VcIDsKK+aBqei1piA8IG9uc2hhXCA7CivmiYvli6IgPCB0ZXplaVwgOwor5oSP5Zu65ZywIDwgaWtvamlcIDsKK+a3mOaxsCA8IHRvdXRhXCA7CivmtJLokL0gPCBzaGFyZVwgOwor5rW356CCIDwga2Fpc2FcIDsKK+WPsOi8qiA8IGRhaXdhXCA7CivmuZblsrggPCBrb2dhblwgOwor5rS1576OIDwganVuYmlcIDsKK+esrOS6jCA8IGRhaW5pXCA7CivnpLroq4cgPCBqaWRhblwgOwor6YeO6YOOIDwgeWFyb3VcIDsKK+azleiqniA8IGhvdWdvXCA7CivlkIjorbAgPCBnb3VnaVwgOwor5oeH5oSPIDwga29uJydpXCA7Civmh4rmgqkgPCBvdW5vdVwgOwor5ZCN6KqJIDwgbWVpeW9cIDsKK+aEmueXtCA8IGd1Y2hpXCA7CivmsLTpto8gPCBrdWluYVwgOwor5Y+J6YqDIDwgc2FqdXVcIDsKK+a4qeaDhSA8IG9uam91XCA7CivmhJvnlKggPCBhaXlvdVwgOwor5oeI5oCgIDwgZ2V0YWlcIDsKK+aEmueUnyA8IGd1c2VpXCA7Civph4jov6YgPCBzaGFrYVwgOwor5rmv5Z6iIDwgeXVha2FcIDsKK+aBi+i3ryA8IGtvaWppXCA7CivmtL7nsbMgPCBoYWJlaVwgOwor5rOV6KKrIDwgaGFwcGlcIDsKK+iXjeiJsiA8IGFpaXJvXCA7Civnq6/ljYggPCB0YW5nb1wgOwor6Jma54ShIDwga3lvbXVcIDsKK+aJi+S7oyA8IHRlZGFpXCA7Civlj5fouqsgPCB1a2VtaVwgOwor5rih5b6hIDwgdG9neW9cIDsKK+awtOmtlCA8IHN1aW1hXCA7Civph47otqMgPCB5YXNodVwgOwor5b+r6Z+zIDwga2Fpb25cIDsKK+aJgOS9nCA8IHNob3NhXCA7Civlj6TosaogPCBrb2dvdVwgOwor6YeR6LKoIDwga2lua2FcIDsKK+aEm+eKrCA8IGFpa2VuXCA7Civno6/ovrogPCBpc29iZVwgOwor6by75rGBIDwgYmlqdXVcIDsKK+aDsOecoCA8IGRhbWluXCA7CivmgqrnvbUgPCBha3ViYVwgOwor5oiQ5Y+lIDwgc2Vpa3VcIDsKK+aJgOS4jiA8IHNob3lvXCA7Civlj6Toq7ogPCBrb2dlblwgOwor56iy5pyoIDwgaW5hZ2lcIDsKK+WPpOiokyA8IGtva3VuXCA7Civnqbrlt6MgPCBha2lzdVwgOwor5oKq57iBIDwgYWt1ZW5cIDsKK+a4qeWtmCA8IG9uem9uXCA7Civlj5forJsgPCBqdWtvdVwgOwor5Y+h6KanIDwgZWlyYW5cIDsKK+WNsemboyA8IGtpbmFuXCA7CivlvqHovp7lhIAgPCBvamlnaVwgOwor5b+F6aCIIDwgaGlzc3VcIDsKK+WPjeiqniA8IGhhbmdvXCA7CivpvLvmoLkgPCBiaWtvblwgOwor5Y+N6Ki0IDwgaGFuc29cIDsKK+mLreaVjyA8IGVpYmluXCA7CivmhJvmtrIgPCBhaWVraVwgOwor5ZCN6IiXIDwgbWVpaG9cIDsKK+a0vueUnyA8IGhhc2VpXCA7Civlloflj60gPCByYXBwYVwgOwor6Y285Yy7IDwgaGFyaWlcIDsKK+aAquionSA8IGtlZ2VuXCA7Civph47om64gPCB5YWJhblwgOwor5Y2w6ZGRIDwgaW5rYW5cIDsKK+axmui+sSA8IG9qb2t1XCA7CivpioPngasgPCBqdXVrYVwgOwor5oSa5rCRIDwgZ3VtaW5cIDsKK+WWquS4uyA8IG1vc2h1XCA7CivljZfpmL8gPCBuYW4nJ2FcIDsKK+m7hOePrSA8IG91aGFuXCA7CivlkI3nvqkgPCBtZWlnaVwgOwor5rCR6ZyAIDwgbWluanVcIDsKK+iZmuaghCA8IGt5b2VpXCA7CivmtoXmp4MgPCBuZWhhblwgOwor5re75a2XIDwgc29lamlcIDsKK+WToeaVsCA8IGluenV1XCA7Civmta7msJcgPCB1d2FraVwgOwor5rOi57SLIDwgaGFtb25cIDsKK+emheeUuyA8IHplbmdhXCA7CivnqbTloLQgPCBhbmFiYVwgOwor5ZKM5ryiIDwgd2FrYW5cIDsKK+aEj+assiA8IGl5b2t1XCA7Civph47oj5wgPCB5YXNhaVwgOwor5Y+k6Iy2IDwga29jaGFcIDsKK+elnuekviA8IGppbmphXCA7Civpu4Tnh5AgPCBvdXJpblwgOwor5rWF54CsIDwgYXNhc2VcIDsKK+W+oemboyA8IGdvbmFuXCA7Civph47ojYkgPCB5YXNvdVwgOwor5b6h6ZmwIDwgb2thZ2VcIDsKK+ialeW6pyA8IHNhbnphXCA7CivmuKnljpogPCBvbmtvdVwgOwor6YqA5rOiIDwgZ2lucGFcIDsKK+mKgOaysyA8IGdpbmdhXCA7CivmhZXmg4UgPCBib2pvdVwgOwor5ZKM5rSLIDwgd2F5b3VcIDsKK+WQjeewvyA8IG1laWJvXCA7Civmt4vlt7QgPCByaW5wYVwgOwor5oWH5oeDIDwgaW5naW5cIDsKK+W/teiqpiA8IG5lbmp1XCA7CivmhJvmm7ggPCBhaXNob1wgOwor5rK/57eaIDwgZW5zZW5cIDsKK+mHkeiCpSA8IGtpbnBpXCA7Civljp/ooqsgPCBnZW5waVwgOwor6JWX6I2JIDwgcm9zb3VcIDsKK+awl+mHjSA8IGtpb21vXCA7CivljZfpg6ggPCBuYW5idVwgOwor5rer5aOyIDwgaW5iYWlcIDsKK+enmOacrCA8IGhpaG9uXCA7CivmhJrmmKcgPCBndW1haVwgOwor5rWB5rWqIDwgcnVyb3VcIDsKK+awtOi3ryA8IHN1aXJvXCA7CivmsJfphY0gPCBrZWhhaVwgOwor6Jas56CUIDwgeWFnZW5cIDsKK+WPl+iDjiA8IGp1dGFpXCA7Civlvq7phrogPCBiaWt1blwgOwor5Y2K6YeMIDwgaGFucmlcIDsKK+eosuWtkCA8IGluYWdvXCA7Civmr5TpoZ4gPCBoaXJ1aVwgOwor5rWB5rCRIDwgcnVtaW5cIDsKK+WNg+mHjCA8IHNlbnJpXCA7CivlkIznpZYgPCBkb3Vzb1wgOwor6YmE54GrIDwgdGVra2FcIDsKK+egtOmhlCA8IGhhZ2FuXCA7CivljZHov5EgPCBoaWtpblwgOwor5b6h6YecIDwgb2thbWFcIDsKK+W+oemHkSA8IG9rYW5lXCA7Civmtabmm7IgPCB1cmF3YVwgOwor6YeN57iBIDwganV1ZW5cIDsKK+mDqOmmliA8IGJ1c2h1XCA7Civpg73pm7sgPCB0b2RlblwgOwor5oSa5oyZIDwgZ3VreW9cIDsKK+WTgOaGqyA8IGFpYmluXCA7Civlk4DmhpAgPCBhaXJlblwgOwor5b2p6ZuyIDwgc2FpdW5cIDsKK+mDqOmhniA8IGJ1cnVpXCA7CivolKzoj5wgPCBzb3NhaVwgOwor5ZKM5pysIDwgd2Fob25cIDsKK+a2suWuiSA8IGVraWFuXCA7CivnqbrkvZAgPCBrdXVzYVwgOwor5Y+X57SNIDwganVub3VcIDsKK+WTgOaDhSA8IGFpam91XCA7Civlk4DmgrwgPCBhaXRvdVwgOwor5ZKM5pu4IDwgd2FzaG9cIDsKK+aGguWTrSA8IHVraW5lXCA7Civlj5fnsokgPCBqdWZ1blwgOwor6YOo6Z2iIDwgYnVtZW5cIDsKK+efrum2jyA8IGNoYWJvXCA7Civmr6vph5AgPCBnb3VyaVwgOwor5oSb5oOzIDwgYWlzb3VcIDsKK+m7hOaliiA8IHRzdWdlXCA7Civpi7PlnosgPCBpZ2F0YVwgOwor5b6u6LOkIDwgYmlzZW5cIDsKK+WSjOaWhyA8IHdhYnVuXCA7CivoloTnnYAgPCB1c3VnaVwgOwor5rOi54q2IDwgaGFqb3VcIDsKK+iWhOebriA8IHVzdW1lXCA7CivlvpLovKkgPCB0b2hhaVwgOwor6YeM56iLIDwgcml0ZWlcIDsKK+ibh+S9kyA8IGphdGFpXCA7CivnqL3lj6QgPCBrZWlrb1wgOwor5oSa5byfIDwgZ3V0ZWlcIDsKK+aEmuW8hCA8IGd1cm91XCA7CivolqvnhZkgPCBrdW5lblwgOwor5rK755mSIDwgY2hpeXVcIDsKK+aCsuatjiA8IGhpdGFuXCA7CivmsZroh60gPCBvc2h1dVwgOwor5Y2R6KiAIDwgaGlnZW5cIDsKK+awkeipsSA8IG1pbndhXCA7Civmr5Tph40gPCBoaWp1dVwgOwor56aN5qC5IDwga2Frb25cIDsKK+mHjuegsiA8IHlhaG91XCA7CivmhInlv6sgPCB5dWthaVwgOwor56mP5YGlIDwgb25rZW5cIDsKK+WOn+e+qSA8IGdlbmdpXCA7CivpmL/lvKXpmYAgPCBhbWlkYVwgOwor5rK555SwIDwgeXVkZW5cIDsKK+W8vumbqCA8IGRhbicndVwgOwor6YO96YKRIDwgdG95dXVcIDsKK+WNiuijuCA8IGhhbnJhXCA7CivlvqHoqaAgPCBneW9laVwgOwor6YeN55uuIDwgb21vbWVcIDsKK+eggumYsiA8IHNhYm91XCA7CivlkarmlocgPCBqdW1vblwgOwor5b6h6KanIDwgZ29yYW5cIDsKK+WQkOeAiSA8IHRvc2hhXCA7Civmt6vkubEgPCBpbnJhblwgOwor56We5q2mIDwgamlubXVcIDsKK+WQiOeCuSA8IGdhdGVuXCA7CivmhJvlrasgPCBhaXNvblwgOwor5rWF5omLIDwgYXNhZGVcIDsKK+ialeWFtyA8IHNhbmd1XCA7Civmg7DmgKcgPCBkYXNlaVwgOwor5bGF5ZCI6YGTIDwgaWFkb3VcIDsKK+ayueeKtiA8IHl1am91XCA7Civph47nlJ8gPCB5YXNlaVwgOwor5rOi5rWqIDwgaGFyb3VcIDsKK+iTruiPryA8IHJlbmdlXCA7CivmhJvlqb8gPCBhaXNlaVwgOwor5b+N6IumIDwgbmlua3VcIDsKK+mKg+W6pyA8IGp1dXphXCA7Civljp/nsL8gPCBnZW5ib1wgOwor6YqA5bqnIDwgZ2luemFcIDsKK+aEm+WmuyA8IGFpc2FpXCA7CivnqI7lkI8gPCB6ZWlyaVwgOwor5oSb5aW9IDwgYWlrb3VcIDsKK+WKtOmfsyA8IHJvdW9uXCA7Civph47njaMgPCB5YWp1dVwgOwor6YeO54yqIDwgeWFjaG9cIDsKK+awtOiCpSA8IHN1aWhpXCA7Civli5/ph5EgPCBib2tpblwgOwor6YW457SgIDwgc2Fuc29cIDsKK+mHjueKrCA8IHlha2VuXCA7Civlu7bpq4QgPCBlbnp1aVwgOwor56iO5YuZIDwgemVpbXVcIDsKK+aCquaXpSA8IGFrdWJpXCA7CivnqJrlhZAgPCBjaGlnb1wgOwor5b+N6ICFIDwgbmluamFcIDsKK+m8u+WGhSA8IGJpbmFpXCA7Civlj6XngrkgPCBrdXRlblwgOwor56C06KuHIDwgaGFkYW5cIDsKK+WSjOWwmiA8IG9zaG91XCA7CivlvZPot68gPCB0b3Vyb1wgOwor5oOF5oSbIDwgam91YWlcIDsKK+mDqOiyoSA8IGJ1emFpXCA7CivpiYTmiYkgPCB0ZXBwaVwgOwor5rW35ZuzIDwga2FpenVcIDsKK+aEmuWVjyA8IGd1bW9uXCA7CivmsLTntKAgPCBzdWlzb1wgOwor5ZOA5Y+3IDwgYWlnb3VcIDsKK+aCsuaGpCA8IGhpZnVuXCA7CivpurvlubkgPCBvZ2FyYVwgOwor5Y2w57GgIDwgaW5yb3VcIDsKK+enu+WFpSA8IGlueXV1XCA7Civms7DmlpcgPCB0YWl0b1wgOwor5oSb5ZCfIDwgYWlnaW5cIDsKK+mHjea5ryA8IG9tb3l1XCA7CivmrLrpqJkgPCBnaWhlblwgOwor5b6h6IW5IDwgb25ha2FcIDsKK+aCsuaBiyA8IGhpcmVuXCA7Civlj6Xms5UgPCBrdWhvdVwgOwor5b6u572qIDwgYml6YWlcIDsKK+WOn+eUuyA8IGdlbmdhXCA7Civlj6Tms5UgPCBrb2hvdVwgOwor6Jma5YG9IDwga3lvZ2lcIDsKK+WLsuiomCA8IGt1bmtpXCA7Civph5Hms6IgPCBraW5wYVwgOwor5rW35Y+CIDwgaXJpa29cIDsKK+enmOWPsiA8IGhpc2hpXCA7CivpgqrpgZMgPCBqYWRvdVwgOwor5Y6z54i2IDwgZ2VucHVcIDsKK+mKgOWcsCA8IGdpbmppXCA7CivnpL7mmK8gPCBzaGF6ZVwgOwor5rW35Yy6IDwga2Fpa3VcIDsKK+WNsOeojiA8IGluemVpXCA7Civph43msrkgPCBqdXV5dVwgOwor55+u6LqvIDwgd2Fpa3VcIDsKK+aCquW/gyA8IG9zaGluXCA7CivmsZfnlrkgPCBhc2Vtb1wgOwor5oKq5b6SIDwgYWt1dG9cIDsKK+ehvOe0oCA8IGhvdXNvXCA7Civlj5fmtJcgPCBqdXNlblwgOwor6YqA5ZmoIDwgZ2lua2lcIDsKK+W/q+eZkiA8IGthaXl1XCA7Civph5Hmra8gPCBraW5iYVwgOwor55+t6LevIDwgdGFucm9cIDsKK+mBoOmfsyA8IHRvb25lXCA7Civlvq7ntLAgPCBiaXNhaVwgOwor5YuD6LW3IDwgYm9ra2lcIDsKK+aEmuWDpyA8IGd1c291XCA7CivnpoXlrrYgPCB6ZW5rZVwgOwor5Yqg6YWNIDwga2FoYWlcIDsKK+WTgeS9jSA8IGhpbicnaVwgOwor5qyn6aKoIDwgb3VmdXVcIDsKK+a1hOWcnyA8IGpvdWRvXCA7CivmnKrpgJrlpbMgPCBvYm9rb1wgOwor5oCS5r+kIDwgZG90b3VcIDsKK+aDueWPpSA8IGpha2t1XCA7Civno6jmt6wgPCBtYXNhaVwgOwor5rC455ygIDwgZWltaW5cIDsKK+W8t+iotCA8IGdvdXNvXCA7CivlkoTll58gPCB0b3NzYVwgOwor5q2m6YGTIDwgYnVkb3VcIDsKK+WPjeavlCA8IGhhbnBpXCA7CivljbDnm7ggPCBpbnpvdVwgOwor5qyh6aGeIDwgamlydWlcIDsKK+WPjeatryA8IHNvcHBhXCA7CivliarpmaQgPCBzZW5qb1wgOwor6Ya45q+NIDwgam91Ym9cIDsKK+atpui+uiA8IGJ1aGVuXCA7Civluqfpq5ggPCB6YWtvdVwgOwor5ZKM5ZCNIDwgd2FtZWlcIDsKK+aEm+S6uiA8IGFpamluXCA7CivlkozlkIggPCB3YWdvdVwgOwor5Y2K56uvIDwgaGFucGFcIDsKK+iWhOaXpSA8IHVzdWJpXCA7CivmhJrkurogPCBndWppblwgOwor5b+c55SoIDwgb3V5b3VcIDsKK+WQpuW/nCA8IGl5YW91XCA7Civmr43oiaYgPCBib2thblwgOwor5rK55patIDwgeXVkYW5cIDsKK+avjeiIuSA8IGJvc2VuXCA7Civlj6TmnaUgPCBrb3JhaVwgOwor5Y+k5pu4IDwga29zaG9cIDsKK+mHjuacqyA8IG5venVlXCA7Civph47mnJsgPCB5YWJvdVwgOwor5q2j6LevIDwgc2Vpcm9cIDsKK+mJseWMuiA8IGtvdWt1XCA7Civms6LlvaIgPCBoYWtlaVwgOwor5YmN6Z2eIDwgemVucGlcIDsKK+axmua/gSA8IG9kYWt1XCA7CivnooHnm6QgPCBnb2JhblwgOwor5byY6KqTIDwgZ3V6ZWlcIDsKK+a1ruS4liA8IHVraXlvXCA7CivluqfpoK0gPCB6YXRvdVwgOwor5ZCQ5oGvIDwgdG9pa2lcIDsKK+aCquWlsyA8IGFrdWpvXCA7Civmr5vnuZQgPCBrZW9yaVwgOwor5rGf5rmWIDwgZ291a29cIDsKK+aBqeaEmyA8IG9uJydhaVwgOwor5oKq5aSiIDwgYWt1bXVcIDsKK+WMl+e3ryA8IGhva3VpXCA7CivoloTmiYsgPCB1c3VkZVwgOwor5oGp5oG1IDwgb25rZWlcIDsKK+awuOeJoiA8IGVpcm91XCA7CivljYjnnaEgPCBnb3N1aVwgOwor5rWB5YiRIDwgcnVrZWlcIDsKK+mKgOS9jSA8IGdpbicnaVwgOwor5Y2X55S7IDwgbmFuZ2FcIDsKK+WbsueCieijjyA8IGlyb3JpXCA7CivlvIHorbcgPCBiZW5nb1wgOwor5Yuk6IumIDwga2lua3VcIDsKK+WKqeiogCA8IGpvZ29uXCA7Civms5XluqYgPCBoYXR0b1wgOwor5oOF5ZGzIDwgam91bWlcIDsKK+WQpuWumiA8IGhpdGVpXCA7CivlvbHntbUgPCBrYWdlZVwgOwor5ZCM5bqnIDwgZG91emFcIDsKK+egtOe2uyA8IGhhdGFuXCA7CivmtL7lhbUgPCBoYWhlaVwgOwor56aF5ZGzIDwgemVubWlcIDsKK+aCquWboCA8IGFrdWluXCA7CivokpTntbUgPCBtYWtpZVwgOwor5YyV5664IDwgaGljaG9cIDsKK+WNiueUsCA8IGhhbmRhXCA7CivmgYvmhZUgPCByZW5ib1wgOwor6YeN5omLIDwgb21vZGVcIDsKK+atpuijhSA8IGJ1c291XCA7CivljZHnjKUgPCBoaXdhaVwgOwor56C0566XIDwgaGFzYW5cIDsKK+WRkeWQkCA8IGRvbnRvXCA7CivmsrnlvakgPCB5dXNhaVwgOwor5Y+h5oWuIDwgZWlyeW9cIDsKK+a1geS6uiA8IHJ1bmluXCA7CivlvqHnkr0gPCBneW9qaVwgOwor5Y+W5omLIDwgdG90dGVcIDsKK+WQjeWumyA8IG5hYXRlXCA7CivnnYDpoZ4gPCBraXJ1aVwgOwor5q2M6KuWIDwga2Fyb25cIDsKK+mHjeaEmyA8IGp1dWFpXCA7Civlj7DluqcgPCBkYWl6YVwgOwor5Ymy6LOmIDwgd2FwcHVcIDsKK+ecn+mviSA8IG1hZ29pXCA7CivmrovoirEgPCB6YW5rYVwgOwor6buE5Lq6IDwgb3VqaW5cIDsKK+awtOa4qSA8IHN1aW9uXCA7CivpgYvovLggPCB1bicneXVcIDsKK+iXqeWEkiA8IGhhbmp1XCA7Civpupflj6UgPCByZWlrdVwgOwor6JGJ6Iy2IDwgaGFkamFcIDsKK+W+oeeOiSA8IG90YW1hXCA7CivpgZPot68gPCBkb3Vyb1wgOwor6YGL6LuiIDwgdW50ZW5cIDsKK+WInemZoyA8IHVpamluXCA7CivpgKPpjpYgPCByZW5zYVwgOwor6YGN6LevIDwgaGVucm9cIDsKK+mJm+S4uSA8IGVudGFuXCA7CivmsLTms7MgPCBzdWllaVwgOwor5rOl5ZyfIDwgZGVpZG9cIDsKK+WPi+aEmyA8IHl1dWFpXCA7CivlkIzlpJwgPCBkb3V5YVwgOwor6YeN5bqmIDwganV1ZG9cIDsKK+WJjei8qiA8IG1hZXdhXCA7CivmsrvlrokgPCBjaGlhblwgOwor6YiN5ZmoIDwgZG9ua2lcIDsKK+aAp+aEmyA8IHNlaWFpXCA7CivnoILntbUgPCBzdW5hZVwgOwor5rKZ5bylIDwgc2hhbWlcIDsKK+elreWFtyA8IHNhaWd1XCA7CivphY3mtYEgPCBoYWlydVwgOwor5YiI6ZmkIDwgZ2Fpam9cIDsKK+aAqOaBqCA8IGVua29uXCA7CivpgaDoposgPCB0b29taVwgOwor6I236aasIDwgbml1bWFcIDsKK+ecn+mhlCA8IG1hZ2FvXCA7CivliKnpiI0gPCByaWRvblwgOwor5oCd5oWVIDwgc2hpYm9cIDsKK+aAoOaDsCA8IHRhaWRhXCA7CivliKnph5EgPCByaWtpblwgOwor6YWU5q2pIDwgc3VpaG9cIDsKK+WHuemdoiA8IG91bWVuXCA7CivlkJ/lkbMgPCBnaW5taVwgOwor5q2m6Iq4IDwgYnVnZWlcIDsKK+W+kueEtiA8IHRvemVuXCA7Civph5HlrZAgPCBraW5zdVwgOwor5Y2Y5q+UIDwgdGFucGlcIDsKK+mBjuiogCA8IGthZ29uXCA7CivnpL7lk6EgPCBzaGFpblwgOwor5oKq5LqLIDwgYWt1amlcIDsKK+W9qeeUuyA8IHNhaWdhXCA7CivolqvljJYgPCBrdW5rYVwgOwor56WW5YWIIDwgc29zZW5cIDsKK+mIjeWMliA8IGRvbmthXCA7CivliKXpgJQgPCBiZXR0b1wgOwor5Y+w5aC0IDwgZGFpYmFcIDsKK+iWhOWcsCA8IHVzdWppXCA7CivljbDmnZAgPCBpbnphaVwgOwor5bmz6YeOIDwgaGVpeWFcIDsKK+aBr+WQuSA8IGlidWtpXCA7CivlkI3lj6UgPCBtZWlrdVwgOwor5q2m6ICFIDwgbXVzaGFcIDsKK+ekvuWLmSA8IHNoYW11XCA7Civljp/mhI8gPCBnZW4nJ2lcIDsKK+WPpOWisyA8IGtvZnVuXCA7Civph47lpKkgPCBub3RlblwgOwor5ZCI5ZCmIDwgZ291aGlcIDsKK+WKtOe1hCA8IHJvdXNvXCA7Civph47lpJYgPCB5YWdhaVwgOwor5bqn6KuHIDwgemFkYW5cIDsKK+W8l+e0oCA8IGZ1c3NvXCA7Civms5Xli5kgPCBob3VtdVwgOwor5b6h5LiW6L6eIDwgb3NlamlcIDsKK+egtOeJhyA8IGhhaGVuXCA7CivlkJDliaQgPCB0b3phaVwgOwor5b6h5q6/IDwgZ290ZW5cIDsKK+WMuuawkSA8IGt1bWluXCA7Civnn7MgPCBrb2t1XCA7Civov6sgPCBoYWt1XCA7Civov4QgPCBtYWRlXCA7Civlv4MgPCBzaGluXCA7CivovrwgPCBrb211XCA7CivlvrQgPCBjaG91XCA7CivlvrMgPCB0b2t1XCA7CivovrEgPCBqb2t1XCA7Civnnq0gPCByeW91XCA7CivnnqwgPCBzaHVuXCA7CivlvqkgPCBmdWt1XCA7CivlvbwgPCBrYXJlXCA7CivlvbkgPCB5YWt1XCA7CivlvbEgPCBrYWdlXCA7CivnnaYgPCBib2t1XCA7CivlvL4gPCB0YW1hXCA7CivlvLcgPCBreW91XCA7CivovK8gPCBzaHV1XCA7CivnnIkgPCBtYXl1XCA7CivovIMgPCBrYWt1XCA7Civnm7QgPCBoaXRhXCA7Civou5IgPCBub2tpXCA7Civlu4IgPCBzaG91XCA7Civnmr8gPCBzYXJhXCA7CivlurUgPCBpb3JpXCA7Civnmq4gPCBrYXdhXCA7Civluq0gPCBuaXdhXCA7CivlupcgPCBtaXNlXCA7CivlupUgPCBzb2tvXCA7CivoupEgPCB0ZWtpXCA7CivouoogPCBjaHV1XCA7CivluoogPCB5dWthXCA7CivnmoQgPCBtYXRvXCA7CivlubkgPCBtaWtpXCA7CivlubMgPCBoaXJhXCA7CivouaAgPCBzZWtpXCA7CivnmZYgPCBrdXNlXCA7CivluYUgPCBoYWJhXCA7CivluLggPCB0b3dhXCA7CivluIwgPCBtYXJlXCA7CivluIMgPCBudW5vXCA7Civlt7sgPCBtYWtpXCA7CivotrMgPCBhc2hpXCA7CivotoogPCBldHN1XCA7CivnlZkgPCByeXV1XCA7CivnlLMgPCBzYXJ1XCA7CivnlJ8gPCBuYW1hXCA7CivltJYgPCBnYWtlXCA7CivltI4gPCBzYWtpXCA7Civls7AgPCBtaW5lXCA7Civos4ogPCB6b2t1XCA7Civos4MgPCBjaGluXCA7CivlsbEgPCB5YW1hXCA7CivlsZEgPCBrdXp1XCA7CivosYYgPCBtYW1lXCA7CivnkLQgPCBrb3RvXCA7Civlr74gPCB0c3VpXCA7Civlr7ogPCB0ZXJhXCA7Civlr4wgPCB0b21pXCA7Civlr4IgPCBzYWJpXCA7Civlrr8gPCB5YWRvXCA7Civlrq4gPCBtaXlhXCA7CivlrqQgPCBtdXJvXCA7CivnjpYgPCBreXV1XCA7CivnjokgPCBkYW1hXCA7CivlrokgPCB5YXN1XCA7CivlroggPCBtb3JpXCA7CivlroUgPCB0YWt1XCA7CivlrbggPCBnYWt1XCA7CivlrasgPCBtYWdvXCA7CivnjaggPCBkb2t1XCA7CivnjYQgPCBnb2t1XCA7CivnjKsgPCBuZWtvXCA7CivorKEgPCB1dGFpXCA7CivorI4gPCBuYXpvXCA7Civlq4EgPCB5b21lXCA7CivoqrAgPCBkYXJlXCA7Civlqb8gPCBtdWtvXCA7CivniakgPCBtb25vXCA7CivniZsgPCB1c2hpXCA7CivoqZUgPCBoeW91XCA7CivlqYYgPCBiYWJhXCA7CivoqLMgPCB3YWtlXCA7CivniIYgPCBiYWt1XCA7Civlp6sgPCBoaW1lXCA7CivlppkgPCBteW91XCA7CivnhoogPCBrdW1hXCA7CivnhaQgPCBzdXN1XCA7CivnhLwgPCB5YWtpXCA7CivlpKsgPCBvdHRvXCA7CivlpKIgPCB5dW1lXCA7CivlpJwgPCB5b3J1XCA7CivlpJYgPCBob2thXCA7Civoo74gPCBzdXNvXCA7Civlo7EgPCBpY2hpXCA7Civlo5MgPCBhdHN1XCA7Civlo4EgPCBrYWJlXCA7CivngrogPCB0YW1lXCA7Civngq0gPCBzdW1pXCA7CivoopYgPCBzb2RlXCA7CivlopMgPCBoYWthXCA7CivloakgPCBzaGlvXCA7CivloZ4gPCBzb2t1XCA7CivooZMgPCBzdWJlXCA7CivooYwgPCBneW91XCA7CivngJ0gPCByZWtpXCA7CivloIAgPCBob3JpXCA7Civmv4EgPCBkYWt1XCA7Civmv4AgPCBnZWtpXCA7CivlnqMgPCBrYWtpXCA7CivlnosgPCBrYXRhXCA7CivonYkgPCBzZW1pXCA7CivlnYIgPCBzYWthXCA7CivpvLsgPCBoYW5hXCA7CivlnJIgPCBzb25vXCA7Civlm70gPCBrdW5pXCA7Civpu7QgPCBrYWJpXCA7Civpu5kgPCBtb2t1XCA7Civpu5IgPCBrdXJvXCA7Civpu40gPCBraWJpXCA7Civom4cgPCBoZWJpXCA7CivmurogPCBkZWtpXCA7CivpuqYgPCBtdWdpXCA7CivomqQgPCBub21pXCA7CivmuqIgPCBpdHN1XCA7Civmup0gPCBtaXpvXCA7CivomY4gPCB0b3JhXCA7Civpt7kgPCB0YWthXCA7Civol6QgPCBmdWppXCA7Civol4EgPCB3YXJhXCA7CivllokgPCBub2RvXCA7CivmtbQgPCB5b2t1XCA7CivmtZwgPCBoYW1hXCA7CivllK8gPCB0YWRhXCA7CivmtJ4gPCBob3JhXCA7CivmtJsgPCByYWt1XCA7CivllJYgPCBvc2hpXCA7Civok64gPCBoYXN1XCA7Civps6kgPCBoYXRvXCA7Civps6UgPCB0b3JpXCA7Civms6UgPCBkb3JvXCA7Civms6IgPCBuYW1pXCA7Civok4sgPCBmdXRhXCA7CivmsrwgPCBudW1hXCA7CivokrsgPCBqYWt1XCA7CivokrIgPCBnYW1hXCA7CivmsqIgPCBzYXdhXCA7CivpsYggPCB0YXJhXCA7CivokL0gPCBvY2hpXCA7CivmsLQgPCBtaXp1XCA7CivmsJEgPCB0YW1pXCA7Civlj7MgPCBtaWdpXCA7Civlj6QgPCBmdXJ1XCA7Civmr40gPCBoYWhhXCA7Civoj4ogPCBraWt1XCA7Civlj4sgPCB0b21vXCA7Civlj4ggPCBtYXRhXCA7Civmrr8gPCBkb25vXCA7CivmrrsgPCBrYXJhXCA7CivojqIgPCBzYXlhXCA7Civljp8gPCBoYXJhXCA7CivojYkgPCBrdXNhXCA7CivljYcgPCBtYXN1XCA7CivprLEgPCB1dHN1XCA7CivprJogPCBoaWdlXCA7CivljJkgPCBzYWppXCA7CivljJcgPCBob2t1XCA7CivojI4gPCBrdWtpXCA7CivojIUgPCBrYXlhXCA7CivljIIgPCBuaW91XCA7Civpq7cgPCBtYWdlXCA7Civpq6ogPCBrYW1pXCA7Civoi5QgPCBrb2tlXCA7CivpqqggPCBob25lXCA7CivliqkgPCBzdWtlXCA7CivlibIgPCB3YXJpXCA7CivmqZ8gPCBoYXRhXCA7CivliYogPCBzYWt1XCA7CivoiLkgPCBmdW5lXCA7CivliLogPCB0b2dlXCA7CivmqKogPCB5b2tvXCA7CivliIggPCBrYXJpXCA7CivmqIUgPCBtb21pXCA7Civpp5IgPCBrb21hXCA7Civoh40gPCBoZXNvXCA7CivlhqwgPCBmdXl1XCA7Civohp0gPCBoaXphXCA7CivohpwgPCBtYWt1XCA7CivpppYgPCBrdWJpXCA7CivlhoYgPCBtYXJ1XCA7CivlhoUgPCB1Y2hpXCA7CivlhbEgPCBkb21vXCA7Civmpa0gPCB3YXphXCA7Civlha0gPCByb2t1XCA7CivlhaUgPCBueXV1XCA7CivlhYMgPCBtb3RvXCA7CivlhJggPCBtYW1hXCA7CivohIcgPCB3YWtpXCA7CivohIIgPCB5YW5pXCA7Civog7ggPCBtdW5lXCA7Civmo5ogPCB0YW5hXCA7Civogp0gPCBraW1vXCA7CivogpggPCBoaWppXCA7CivlgpggPCBrYXNhXCA7CivogowgPCBoYWRhXCA7CivogokgPCBuaWt1XCA7CivmooMgPCB0ZWtvXCA7Civlgb0gPCBuaXNlXCA7CivmoZAgPCBraXJpXCA7CivmoYMgPCBtb21vXCA7CivmoYEgPCBrZXRhXCA7CivogLMgPCBtaW1pXCA7CivpoKwgPCBob2hvXCA7CivmoJcgPCBrdXJpXCA7CivpoIMgPCBnb3JvXCA7Civmn5ogPCB5dXp1XCA7CivkvqEgPCBhdGFpXCA7CivmnZYgPCB0c3VlXCA7CivmnZEgPCBtdXJhXCA7CivmnY8gPCBhbnp1XCA7CivmnYkgPCBzdWdpXCA7CivkvL0gPCB0b2dpXCA7CivmnK0gPCBmdWRhXCA7Civpm7IgPCBrdW1vXCA7Civku7IgPCBuYWthXCA7Civpm6ogPCB5dWtpXCA7Civpm4wgPCBtZXN1XCA7CivkurogPCBoaXRvXCA7CivpmpkgPCBzdWtpXCA7CivmmocgPCBoaW1hXCA7CivkuYsgPCBrb3JlXCA7CivmmYIgPCB0b2tpXCA7CivmmLwgPCBoaXJ1XCA7CivnuKYgPCB0YXRlXCA7CivmmKUgPCBoYXJ1XCA7CivkuIggPCBkYWtlXCA7CivnuIQgPCBuYXdhXCA7Civpl4cgPCB5YW1pXCA7Civml4UgPCB0YWJpXCA7Civntr8gPCB3YXRhXCA7CivntbkgPCBraW51XCA7CivntYQgPCBrdW1pXCA7CivntJAgPCBoaW1vXCA7CivntIUgPCBiZW5pXCA7CivnsqUgPCBrYXl1XCA7CivnsokgPCBrb25hXCA7CivnsbMgPCBrb21lXCA7CivnsaAgPCBrYWdvXCA7CivpkJggPCBrYW5lXCA7Civmj7ogPCB5dXJpXCA7Civmj48gPCBieW91XCA7CivnrrEgPCBoYWtvXCA7CivnrqEgPCBrdWRhXCA7CivpjbUgPCBrYWdpXCA7CivpjYsgPCBuYWJlXCA7CivnrYsgPCBzdWppXCA7CivnrYkgPCBuYWRvXCA7CivnrYggPCBoYXp1XCA7CivnrYYgPCBmdWRlXCA7CivnrLkgPCBzYXNhXCA7CivmjIcgPCB5dWJpXCA7Civnq7kgPCB0YWtlXCA7CivnqpMgPCBtYWRvXCA7CivpipEgPCB6dWt1XCA7CivnqbogPCBzb3JhXCA7CivmiYcgPCBvdWdpXCA7CivmiL8gPCBmdXNhXCA7CivpiLQgPCBzdXp1XCA7CivnqK4gPCB0YW5lXCA7CivmiJEgPCB3YXJlXCA7CivnqI0gPCB5YXlhXCA7CivnqIsgPCBob2RvXCA7Civph50gPCBoYXJpXCA7Civph5wgPCBrYW1hXCA7Civph5ggPCBrdWdpXCA7Civnpr8gPCBoYWdlXCA7CivmhqkgPCBpa29pXCA7CivphZIgPCBzYWtlXCA7CivmhYsgPCB6YW1hXCA7Civmg5EgPCB3YWt1XCA7CivmgqogPCB3YXJ1XCA7CivnoqcgPCBoZWtpXCA7CivmgaUgPCBoYWppXCA7CivpgJogPCB0c3V1XCA7CivnoIIgPCBzdW5hXCA7Civlv5zmj7QgPCBvdWVuXCA7Civlj6TlmaggPCBrb2tpXCA7Civlh43pm6ggPCB0b3V1XCA7CivlvpLmrakgPCB0b2hvXCA7Civlj6/lkKYgPCBrYWhpXCA7CivlvpDmrakgPCBqb2hvXCA7CivluoforbcgPCBoaWdvXCA7Civph47llrYgPCB5YWVpXCA7Civms5XkvJogPCBob3VlXCA7CivlkIzkvY0gPCBkb3VpXCA7CivljbHmh7wgPCBraWd1XCA7Civlj6Xlj6UgPCBrdWt1XCA7Civlj6Plj5cgPCBrdWp1XCA7CivmsrvlhbcgPCBqaWd1XCA7Civlhrfpm6ggPCByZWl1XCA7CivlvZPngrogPCB0b3VpXCA7Civlj7PlhZogPCB1dG91XCA7Civpgbrnsr4gPCBpc2VpXCA7Civph47ljZEgPCB5YWhpXCA7Civlj7Plgr4gPCB1a2VpXCA7CivljLvmm7ggPCBpc2hvXCA7CivpgZXog4wgPCBpaGFpXCA7CivmgKjll58gPCBlbnNhXCA7CivpuJrlk6UgPCBpbmtvXCA7CivnoLTmr4AgPCBoYWtpXCA7Civlj43lkJAgPCBoZWRvXCA7Civlj43lj6QgPCBob2dvXCA7Civlj6TlhIAgPCBrb2dpXCA7CivljbDluqYgPCBpbmRvXCA7CivpgbrnqL8gPCBpa291XCA7Civnm7jpgZUgPCBzb3VpXCA7Civluqfoh6UgPCB6YWdhXCA7CivluLDpgJQgPCBraXRvXCA7CivlhobpobEgPCBlbnJvXCA7Civno4HloLQgPCBqaWJhXCA7Civlj6TkuosgPCBrb2ppXCA7CivmsLjlr78gPCBlaWp1XCA7CivlvoDmmYIgPCBvdWppXCA7Civno4HlnJ8gPCBqaWRvXCA7CivptInniYcgPCBhaGVuXCA7CivljbDlrZcgPCBpbmppXCA7CivpgZXnrpcgPCBpc2FuXCA7Civlj5nkuosgPCBqb2ppXCA7Civno4HlmaggPCBqaWtpXCA7Civlvq7lvq4gPCBiaWJpXCA7CivluLDot68gPCBraXJvXCA7CivlvqHmhI8gPCBneW9pXCA7CivnoILmtLIgPCBzYXN1XCA7CivljYjlvowgPCBnb2dvXCA7Civmr4Dmo4QgPCBraWtpXCA7CivpgaDnpZYgPCBlbnNvXCA7CivlvozmiYsgPCBnb3RlXCA7CivlubLokYkgPCBoaWJhXCA7CivlvJXngasgPCBpbmthXCA7CivlvqHlvbEgPCBnb2VpXCA7CivmqLnpmbAgPCBqdWluXCA7Civoi7Hpn7MgPCBlaW9uXCA7CivmsZrlkI0gPCBvbWVpXCA7Civno4HljLogPCBqaWt1XCA7Civpgqrmt6sgPCBqYWluXCA7Civov4LoqIAgPCB1Z2VuXCA7Civno4HljJYgPCBqaWthXCA7CivljLvluKsgPCBpc2hpXCA7CivlvbzmiJEgPCBoaWdhXCA7CivljbHlnZAgPCBraXphXCA7CivmqZ/pgYsgPCBraXVuXCA7CivliqnmvJQgPCBqb2VuXCA7CivpgqrmsJcgPCBqYWtpXCA7CivlvKXmrKEgPCB5YWppXCA7CivlvoDlvoAgPCBvdW91XCA7CivliIDoh6ogPCB0b2ppXCA7CivlvqHlrZAgPCBtaWtvXCA7CivljLvlrpggPCBpa2FuXCA7CivliqDmuKkgPCBrYW9uXCA7CivpgY7nlo4gPCBrYXNvXCA7Civlv5zli58gPCBvdWJvXCA7CivpgbrmvI8gPCBpcm91XCA7CivlvozlrrYgPCBnb2tlXCA7CivljLvlpKcgPCBpZGFpXCA7CivmrrTmiZMgPCBvdWRhXCA7CivmranmraYgPCBob2J1XCA7CivpgZXniq8gPCBpaGFuXCA7CivlhobosqggPCBlbmthXCA7CivmsJflkbMgPCBnaW1pXCA7CivmsJflkIggPCBraWFpXCA7CivluIPooY0gPCBmdWVuXCA7CivprZTprYUgPCBtYW1pXCA7CivlvozloLQgPCBnb2JhXCA7CivnoLTlrrYgPCBiYWthXCA7CivmsJfljJYgPCBraWthXCA7CivlvoHlpLcgPCBzZWlpXCA7CivmsLTkvY0gPCBzdWlpXCA7Civlhobopo8gPCBlbmtpXCA7Civnm4jomacgPCBlaWtpXCA7CivlvqHlkI0gPCBtaW5hXCA7Civpg6jlsYsgPCBoZXlhXCA7Civoi7HosqggPCBlaWthXCA7CivpgY7muKEgPCBrYXRvXCA7CivpgZXms5UgPCBpaG91XCA7Civmrrflr4wgPCBpbnB1XCA7CivojKPok5kgPCBnb3phXCA7Civoi7Hoqp4gPCBlaWdvXCA7CivpgYvmsrMgPCB1bmdhXCA7Civnn6XmgbUgPCBjaGllXCA7CivpgYvmsJcgPCB1bmtpXCA7CivovLjotI8gPCB5dWVpXCA7Civli6LlrZAgPCBzZWtvXCA7CivljIXlm7IgPCBob3VpXCA7CivlvoDlj6QgPCBvdWtvXCA7CivliqDmjIEgPCBrYWppXCA7CivlvKfluqYgPCBrb2RvXCA7Civpg73llrYgPCB0b2VpXCA7Civmr5TllqkgPCBoaXl1XCA7CivpgbrmlocgPCBpYnVuXCA7CivpgKLngKwgPCBvdXNlXCA7Civlh7rnm64gPCBkZW1lXCA7CivmrabmioAgPCBidWdpXCA7CivluqfmtLIgPCB6YXN1XCA7CivlvqHku6MgPCBtaXlvXCA7CivljLvkvJogPCBpa2FpXCA7CivlvpfkvZMgPCBldGFpXCA7CivlvbHljbAgPCBlaWluXCA7CivlhoboiJ4gPCBlbmJ1XCA7CivptZzljKAgPCB1am91XCA7Civmr43ljbAgPCBib2luXCA7CivpgLjmqZ8gPCBpa2tpXCA7Civpg6jlk6EgPCBidWluXCA7Civnmq7ohpogPCBoaWZ1XCA7CivliLfmr5sgPCBoYWtlXCA7CivmrabluqsgPCBidWtvXCA7CivmqZ/nuIEgPCBraWVuXCA7CivnoILlnJ8gPCBzYWRvXCA7CivpgbrmgaggPCBpa29uXCA7CivoirHorZwgPCBrYWZ1XCA7Civmr5TkvqEgPCBoaWthXCA7CivmrablrrYgPCBidWtlXCA7CivmqKroh6UgPCBvdWdhXCA7CivprLHph5EgPCB1a29uXCA7Civmr5TkuJggPCBiaWt1XCA7Civpg73kuIsgPCB0b2thXCA7Civnn6LloLQgPCB5YWJhXCA7CivpgZXmhrIgPCBpa2VuXCA7Civlu7blr78gPCBlbmp1XCA7Civnmb7oiIwgPCBtb3p1XCA7CivmrablpKsgPCBidWZ1XCA7CivnoILliKkgPCBqYXJpXCA7Civpg6jkuIsgPCBidWthXCA7Civnnr3lpbMgPCBnb3plXCA7Civlh7rmra8gPCBkZWJhXCA7CivpgY7luqYgPCBrYWRvXCA7CivmrablmaggPCBidWtpXCA7CivpgYvluqcgPCB1bnphXCA7CivmrKHluo8gPCBqaWpvXCA7CivmqKHns4ogPCBtb2tvXCA7CivoirHoir0gPCBrYWdhXCA7CivlubPmmJMgPCBoZWlpXCA7CivmranlkIggPCBidWFpXCA7Civnlo7pn7MgPCBzb2luXCA7CivmqLnnmq4gPCBqdWhpXCA7CivlupzluqsgPCBmdWtvXCA7Civpgbrlk4EgPCBpaGluXCA7CivnlpHpm7IgPCBnaXVuXCA7Civpgbrlkb0gPCBpbWVpXCA7CivmraTlh6YgPCBrb2tvXCA7CivmrablhbcgPCBidWd1XCA7Civlh6DmoYggPCBraWFuXCA7CivmrablgpkgPCBidWJpXCA7Civov73miYsgPCBvdHRlXCA7CivnlbDpoqggPCBpZnV1XCA7CivnlbDpoZ4gPCBpcnVpXCA7CivliKnlt7EgPCByaWtvXCA7CivmrabkuosgPCBidWppXCA7CivojYrmo5ggPCBiYXJhXCA7CivprZTnvoUgPCBtYXJhXCA7CivpgbrkvZMgPCBpdGFpXCA7CivpgbrkvJ0gPCBpZGVuXCA7CivpgY7ljrsgPCBrYWtvXCA7CivmrKfljJYgPCBvdWthXCA7Civnlo7pgaAgPCBzb2VuXCA7CivnlpHovp4gPCBnaWppXCA7Civlt6bmtL4gPCBzYWhhXCA7Civoibbnvo4gPCBlbmJpXCA7CivpqaLppqwgPCByb2JhXCA7CivlspDpmJwgPCBnaWZ1XCA7Civluqflk6EgPCB6YWluXCA7CivmsLjjgIUgPCBlaWVpXCA7CivnnJ/luIYgPCBtYWhvXCA7Civnm7jmiYsgPCBhaXRlXCA7CivluqblkIggPCBkb2FpXCA7CivpgZXkvosgPCBpcmVpXCA7CivliKnlmaggPCByaWtpXCA7CivoibLntbUgPCBpcm9lXCA7Civlu4PkvY0gPCBoYWlpXCA7CivluIPmlr0gPCBmdXNlXCA7Civoh6rosrsgPCBqaWhpXCA7Civoh6rosqAgPCBqaWZ1XCA7CivlhaXmsZ8gPCBpcmllXCA7CivpqL7ppqwgPCByYWJhXCA7CivoirHnjosgPCBrYW91XCA7Civmo4vpmaIgPCBraWluXCA7CivluLfluYQgPCBpYWt1XCA7Civoi7HmraYgPCBlaWJ1XCA7CivnlbDotqMgPCBpc2h1XCA7CivlhbfmoYggPCBndWFuXCA7Civoh6rooZsgPCBqaWVpXCA7CivnlbDoq5YgPCBpcm9uXCA7Civnm7jlrZAgPCBhaWtvXCA7CivlupzkuIsgPCBmdWthXCA7CivprZTnjosgPCBtYW91XCA7CivliKnku5YgPCByaXRhXCA7CivpqI7ppqwgPCBraWJhXCA7CivmqZ/lvbEgPCBraWVpXCA7CivnmbrmnaEgPCBiYW5lXCA7CivlhoXmhI8gPCBuYWlpXCA7CivmqZ/luo8gPCBraWpvXCA7CivluJ3lqIEgPCB0ZWlpXCA7Civov4Llm54gPCB1a2FpXCA7CivpgIDkvY0gPCB0YWlpXCA7CivmooXpm6ggPCBiYWl1XCA7CivmqKHmk6wgPCBtb2dpXCA7CivlhoblvKcgPCBlbmtvXCA7Civnl7Lnl7ogPCBtYWhpXCA7Civnm67lnLAgPCBtZWppXCA7CivlhobluqcgPCBlbnphXCA7CivoirHmqLkgPCBrYWp1XCA7CivnlLvorZwgPCBnYWZ1XCA7CivmqZ/lrpwgPCBraWdpXCA7CivlsL7pg6ggPCBiaWJ1XCA7Civnm7LllJYgPCBtb3VhXCA7Civkvp3poZggPCBpZ2FuXCA7Civkvp3poLwgPCBpcmFpXCA7CivnlpHnvqkgPCBnaWdpXCA7CivnnJ/kvLwgPCBtYW5lXCA7Civmo4vorZwgPCBraWZ1XCA7CivlhZDmiK8gPCBqaWdpXCA7CivnnJ/kuIogPCBtYXVlXCA7CivluIzlnJ8gPCBraWRvXCA7Civoh5nohIIgPCBlbmppXCA7CivlgYPoh6UgPCBlbmdhXCA7Civog6HpursgPCBnb21hXCA7CivmoJfpvKAgPCByaXN1XCA7Civlr7rpmaIgPCBqaWluXCA7Civnm67lh6YgPCBtZWRvXCA7Civpp4TppqwgPCBkYWJhXCA7CivlhazlrrYgPCBrdWdlXCA7CivprLHmsJcgPCB1a2tpXCA7Civou73mmJMgPCBrZWlpXCA7Civoi7HlrZcgPCBlaWppXCA7Civkv5roqp4gPCByaWdvXCA7CivlsaDomIcgPCB0b3NvXCA7Civpp4bpmaQgPCBrdWpvXCA7Civlr53plpMgPCBuZW1hXCA7Civnm67kuIogPCBtZXVlXCA7CivovKrlt64gPCB3YXNhXCA7CivkvZnpn7sgPCB5b2luXCA7CivnlbDnq68gPCBpdGFuXCA7Civlt6XlkIggPCBndWFpXCA7CivoirHluo8gPCBrYWpvXCA7CivlsbHnvoogPCB5YWdpXCA7Civoi6blnJ8gPCBrdWRvXCA7Civlr7/os4AgPCBqdWdhXCA7Civoh6rnlLsgPCBqaWdhXCA7Civnn7PmlpHprZogPCB1Z3VpXCA7Civoi7HlkowgPCBlaXdhXCA7CivnlLvntKAgPCBnYXNvXCA7CivmoqjoirEgPCByaWthXCA7CivnlLHnuIEgPCB5dWVuXCA7CivprZrluqcgPCB1b3phXCA7CivlhbflgpkgPCBndWJpXCA7CivotoroqLQgPCBlc3NvXCA7CivlhJLlrrYgPCBqdWthXCA7CivotbfoqLQgPCBraXNvXCA7Civkv5rogLMgPCByaWppXCA7CivlrrbpgYsgPCBrYXVuXCA7CivnlbDnirYgPCBpam91XCA7CivmpZrmpZogPCBzb3NvXCA7CivppZHppJMgPCBraWdhXCA7CivnmofkvY0gPCBrb3VpXCA7Civlrrbot68gPCBpZWppXCA7CivprZTlpbMgPCBtYWpvXCA7CivppYLpo6kgPCB1ZG9uXCA7CivlrZfpn7MgPCBqaW9uXCA7Civlr4Toqp4gPCBraWdvXCA7CivogLPpvLsgPCBqaWJpXCA7CivppJPprLwgPCBnYWtpXCA7Civog6Too5QgPCBpbmVpXCA7CivlhLLkvY0gPCBjaG9pXCA7Civoh6rmo4QgPCB5YWtlXCA7CivnkIbpnZ4gPCByaWhpXCA7CivlhKrkvY0gPCB5dXVpXCA7CivmoIToqokgPCBlaXlvXCA7CivovJTkvZAgPCBob3NhXCA7CivkvIrpgZQgPCBkYXRlXCA7CivnlbDmp5ggPCBpeW91XCA7CivkvZnomIogPCB5b3VuXCA7CivlrrbomoogPCBpZWthXCA7CivlsLznlKsgPCBqaWhvXCA7CivlgYnmnZAgPCBpemFpXCA7CivnlbDmnKwgPCBpaG9uXCA7CivmpI3mnKggPCB1ZWtpXCA7Civog7zog50gPCB0YWtvXCA7CivoiKrlrocgPCBrb3V1XCA7CivnlpHmh7wgPCBnaWt1XCA7CivnlbDmlbAgPCBpc3V1XCA7CivnlpHmg6cgPCBnaWd1XCA7CivprYHlgYkgPCBrYWlpXCA7Civkv53nhKEgPCBob211XCA7Civoh6rmhJsgPCBqaWFpXCA7CivmoIToj68gPCBlaWdhXCA7CivlgYnmjJkgPCBpa3lvXCA7CivlgYnmiY0gPCBpc2FpXCA7CivnkIbot68gPCByaXJvXCA7Civos6boqaAgPCBmdWVpXCA7CivnlY/mlawgPCBpa2VpXCA7Civkv53muKkgPCBob29uXCA7CivnlLvmnrYgPCBnYWthXCA7CivkuozpmaIgPCBuaWluXCA7Civoh6rlt7EgPCBqaWtvXCA7Civosarpm6ggPCBnb3V1XCA7Civku5jorbAgPCBmdWdpXCA7Civkv53mr40gPCBob2JvXCA7Civlronoh6UgPCBhbmdhXCA7CivkupzpiLQgPCBhcmVpXCA7Civku5joqJggPCBmdWtpXCA7CivlsI/ngasgPCBib3lhXCA7Civpp4Tnm64gPCBkYW1lXCA7CivlsYvmoLkgPCB5YW5lXCA7Civkvp3nhLYgPCBpemVuXCA7CivnlbDlrZggPCBpem9uXCA7Civkuozpg6ggPCBuaWJ1XCA7Civpoqjpm6ggPCBmdXV1XCA7CivmpZXlhoYgPCBkYWVuXCA7Civlgb3ljbAgPCBnaWluXCA7CivnlbDlpIkgPCBpaGVuXCA7CivnlZnlroggPCBydXN1XCA7CivkvY3nm7ggPCBpc291XCA7CivkuIDpvJMgPCBpa2tvXCA7CivnlKjmhI8gPCB5b3VpXCA7CivogLPoqp4gPCBqaWdvXCA7CivnlbDln58gPCBpaWtpXCA7Civkv53mjIEgPCBob2ppXCA7CivoiIjkupwgPCBrb3VhXCA7Civnk6bmlq8gPCBnYXN1XCA7Civoh6rliKkgPCBqaXJpXCA7CivkvZnnhZkgPCB5b2VuXCA7CivkuIvpp4QgPCBnZXRhXCA7CivkuIvppqwgPCBnZWJhXCA7CivlgYflkI0gPCBrYW5hXCA7CivnlbDlkIwgPCBpZG91XCA7CivogLbomIcgPCB5YXNvXCA7CivnkaDnkoMgPCBydXJpXCA7CivlgYnli7IgPCBpa3VuXCA7CivkuYXpgaAgPCBrdW9uXCA7Civoh6rkvZkgPCBqaXlvXCA7CivkuI3pm6IgPCBmdXJpXCA7Civoh6rku5YgPCBqaXRhXCA7Civnvo7pn7MgPCBiaW9uXCA7CivlrZDnrYkgPCBrb3JhXCA7CivkuIvpmaIgPCBrYWluXCA7CivkuI3plpMgPCBidW1hXCA7CivnlLvlm6AgPCBnYWluXCA7CivkvZnms6IgPCB5b2hhXCA7CivnlY/lj4sgPCBpeXV1XCA7CivlsI/miYsgPCBrb3RlXCA7CivotqPmhI8gPCBzaHVpXCA7CivlgYnkurogPCBpamluXCA7Civkv53lrokgPCBob2FuXCA7CivkvZnmroMgPCB5b291XCA7Civot6/lnLAgPCByb2ppXCA7CivnkLXnkLYgPCBiaXdhXCA7Civmmq7pm7IgPCBib3VuXCA7Civog4PmtrIgPCBpZWtpXCA7CivkupzogZYgPCBhc2VpXCA7CivkuIvph44gPCBnZXlhXCA7CivkuIrph44gPCB1ZW5vXCA7CivogoznkIYgPCBraW1lXCA7CivpprTmn5MgPCBuYWppXCA7CivkupznvqQgPCBhZ3VuXCA7CivkuJbovp4gPCBzZWppXCA7CivkuI3pgYsgPCBmdXVuXCA7CivkvZnmoIQgPCB5b2VpXCA7CivmoqjlnJIgPCByaWVuXCA7CivkvpvlvqEgPCBndWdvXCA7Civot6/liqAgPCBydWthXCA7CivkupzntrEgPCBha291XCA7CivkvZnmmocgPCB5b2thXCA7CivkuIDpgY4gPCBpa2thXCA7CivlsI/lsYsgPCBrb3lhXCA7CivkuIDpgJQgPCBpdHRvXCA7Civnvo7ovp4gPCBiaWppXCA7CivlronmsJcgPCBhbmtpXCA7CivmoITmnq8gPCBlaWtvXCA7Civlr5PmhI8gPCBndXVpXCA7CivkuJboqbEgPCBzZXdhXCA7CivkupznqK4gPCBhc2h1XCA7CivmmbTpm6ggPCBzZWl1XCA7CivlsI/lpJwgPCBzYXlvXCA7Civpo5vnsLcgPCBoaWVuXCA7Civpn7PpoK0gPCBvbmRvXCA7CivkvZnmioAgPCB5b2dpXCA7CivkuI3oqp4gPCBmdWdvXCA7CivkvZnmiYAgPCB5b3NvXCA7CivnjovogIUgPCBvdWphXCA7Civmmpfpg6ggPCBhbmJ1XCA7CivkvpvlpYkgPCBndWJ1XCA7CivlrrPmhI8gPCBnYWlpXCA7CivkuojnpLogPCB5b2ppXCA7CivlronmmJMgPCBhbicnaVwgOwor5LiL6KGGIDwgZ2VzdVwgOwor5LiK6KGjIDwgam91aVwgOwor5a2X5q+NIDwgamlib1wgOwor6IOM5oi4IDwgc2Vkb1wgOwor5a+E5bitIDwgeW9zZVwgOwor5L2z5a60IDwga2FlblwgOwor54qg6aObIDwgZ2loaVwgOwor5LiN6JmeIDwgZnVndVwgOwor6IWQ5YSSIDwgZnVqdVwgOwor57216KmIIDwgYmFyaVwgOwor5LuW5rS+IDwgdGFoYVwgOwor5a6J5omTIDwgYW5kYVwgOwor5pqX6K2cIDwgYW5wdVwgOwor5piv6Z2eIDwgemVoaVwgOwor5a625a62IDwgaWVpZVwgOwor5p645p2eIDwga3Vrb1wgOwor54y/6IeCIDwgZW5waVwgOwor5LqR54i+IDwgdW5qaVwgOwor5Lqc54KtIDwgYXRhblwgOwor5Lul5p2xIDwgaXRvdVwgOwor5a6J5bqnIDwgYW56YVwgOwor5peX6byTIDwga2lrb1wgOwor6Z6N6aasIDwgYW5iYVwgOwor5LiA6IeCIDwgaXBwaVwgOwor5pyo55OcIDwgYm9rZVwgOwor6IKp5be+IDwgaGlyZVwgOwor5pmC6YGLIDwgaml1blwgOwor6Z+76KqeIDwgaW5nb1wgOwor6Z+z6K2cIDwgb25wdVwgOwor5LiK57W1IDwgdXdhZVwgOwor5a2k5b2xIDwga29laVwgOwor5qGI5L6hIDwgYW5rYVwgOwor54yb6ICFIDwgbW9zYVwgOwor576955uuIDwgaGFtZVwgOwor6K236KyoIDwgZ29tdVwgOwor5LqM5qyhIDwgbmlqaVwgOwor5aaC6ZyyIDwgam9yb1wgOwor5LiN56mPIDwgZnVvblwgOwor5a6J5aC1IDwgYW5kb1wgOwor6aas5YW3IDwgYmFndVwgOwor5LuW5oSbIDwgdGFhaVwgOwor5a625Ye6IDwgaWVkZVwgOwor5a6J5Zu6IDwgYW5rb1wgOwor5a625YW3IDwga2FndVwgOwor5LiN56OoIDwgZnVtYVwgOwor5pel6ZaTIDwgaGlhaVwgOwor5LyO5aWzIDwgZ2lqb1wgOwor5a+E5LiOIDwga2l5b1wgOwor6Z2S6Z2SIDwgYW9hb1wgOwor5LqM5pyfIDwgbmlraVwgOwor5a6J5ZCmIDwgYW5waVwgOwor6IOh5LmxIDwgdXJvblwgOwor5LqI5pyfIDwgeW9raVwgOwor576p55CGIDwgZ2lyaVwgOwor6K2P6Kq5IDwga2loaVwgOwor5LiL55eiIDwgZ2VyaVwgOwor6LOt5aC0IDwgdG9iYVwgOwor6LOA5a60IDwgZ2FlblwgOwor5a6H5YaFIDwgdWRhaVwgOwor5Lul5aSWIDwgaWdhaVwgOwor5aSi6a2UIDwgbXVtYVwgOwor5p2l5oSPIDwgcmFpaVwgOwor5pqX56S6IDwgYW5qaVwgOwor5a6J5L+dIDwgYW5wb1wgOwor6Z2e6YGLIDwgaGl1blwgOwor6IG+5ZSWIDwgcm91YVwgOwor57695q+bIDwgdW1vdVwgOwor6Z+z57SgIDwgb25zb1wgOwor6LSI5L2NIDwgem91aVwgOwor5LuY5ZuzIDwgZnV6dVwgOwor5LqI5b6MIDwgeW9nb1wgOwor5LqM5bqmIDwgbmlkb1wgOwor576p5rCXIDwgZ2lraVwgOwor576p5q+NIDwgZ2lib1wgOwor6Kqe6Z+zIDwgZ29vblwgOwor5Lul5Y2XIDwgaW5hblwgOwor5aSc6ZmwIDwgeWFpblwgOwor5LuY5ZKMIDwgZnV3YVwgOwor546L5omLIDwgb3V0ZVwgOwor57695qC5IDwgaGFuZVwgOwor6Z2e6K2wIDwgaGlnaVwgOwor5Lul5YaFIDwgaW5haVwgOwor5LiA5rS+IDwgaXBwYVwgOwor5LiJ5q+bIDwgbWlrZVwgOwor6Zu36ZuoIDwgcmFpdVwgOwor6ZuR6a2aIDwgamFrb1wgOwor6K2356ymIDwgZ29mdVwgOwor6Zuy6ZynIDwgdW5tdVwgOwor6LOm5LiOIDwgZnV5b1wgOwor5aSn6YeOIDwgb29ub1wgOwor5LiA5q2pIDwgaXBwb1wgOwor5paO6YOoIDwgaW5iZVwgOwor5Luj5L2NIDwgZGFpaVwgOwor546L5bqnIDwgb3V6YVwgOwor5Luj5LujIDwgeW95b1wgOwor5LuW5LqLIDwgdGFqaVwgOwor54uS54uSIDwgaGloaVwgOwor54uQ54u4IDwga29yaVwgOwor6Zyy6KqeIDwgcm9nb1wgOwor5aSn6LevIDwgb29qaVwgOwor546L5a62IDwgb3VrZVwgOwor576p5o+0IDwgZ2llblwgOwor546L5aaDIDwgb3VoaVwgOwor546L5aWzIDwgb3Vqb1wgOwor6Z2S6JGJIDwgYW9iYVwgOwor6Z2S6I+cIDwgYW9uYVwgOwor5LqS5YqpIDwgZ29qb1wgOwor5LqU5YiGIDwgZ29idVwgOwor5LqL5YuZIDwgamltdVwgOwor5LiL5omLIDwgaGV0YVwgOwor5LiL5oi4IDwgZ2Vrb1wgOwor5p2x5LqeIDwgdG91YVwgOwor5pyo5ZywIDwga2lqaVwgOwor546L5ZyfIDwgb3Vkb1wgOwor576O5oqAIDwgYmlnaVwgOwor6Kqk6KiYIDwgZ29raVwgOwor6Z+z5rOiIDwgb25wYVwgOwor6Z+75q+NIDwgaW5ib1wgOwor5LqI5YKZIDwgeW9iaVwgOwor5LqM5L6hIDwgbmlrYVwgOwor5pa96IKlIDwgc2VoaVwgOwor5LqM5L2QIDwgbmlzYVwgOwor5pep56iyIDwgd2FzZVwgOwor54WZ6ZynIDwgZW5tdVwgOwor54WZ6ZuoIDwgZW4nJ3VcIDsKK+miqOWRgiA8IGZ1cm9cIDsKK+S5vuS9jSA8IGtlbmlcIDsKK+aTrOmfsyA8IGdpb25cIDsKK+e4gei1tyA8IGVuZ2lcIDsKK+S5neWIhiA8IGt1YnVcIDsKK+S4jeWuiSA8IGZ1YW5cIDsKK+eItuelliA8IGZ1c29cIDsKK+S4gOWutiA8IGlra2VcIDsKK+mZsOmYnCA8IGluZnVcIDsKK+aal+aEmiA8IGFuZ3VcIDsKK+S4juWkqiA8IHlvdGFcIDsKK+S4i+WlsyA8IGdlam9cIDsKK+eEoemnhCA8IG11ZGFcIDsKK+e4geiqniA8IGVuZ29cIDsKK+mbheiqniA8IGdhZ29cIDsKK+eNo+WMuyA8IGp1dWlcIDsKK+e+juWnqyA8IGJpa2lcIDsKK+WppuWlsyA8IGZ1am9cIDsKK+miqOS9jSA8IGZ1dWlcIDsKK+e+juWlsyA8IGJpam9cIDsKK+mdkuegpSA8IGFvdG9cIDsKK+eEoemfsyA8IG11b25cIDsKK+itsOahiCA8IGdpYW5cIDsKK+S4jeWbsyA8IGZ1dG9cIDsKK+mamOi3ryA8IGFpcm9cIDsKK+eMm+WogSA8IG1vdWlcIDsKK+Wkmue+qSA8IHRhZ2lcIDsKK+aatOWogSA8IGJvdWlcIDsKK+iqnue+qSA8IGdvZ2lcIDsKK+mZsOmDqCA8IGluYnVcIDsKK+Wls+eOiyA8IGpvb3VcIDsKK+mdnueQhiA8IGhpcmlcIDsKK+mbsuiEgiA8IGZ1a2VcIDsKK+e+qeWLmSA8IGdpbXVcIDsKK+mbouiLpiA8IHJpa3VcIDsKK+mdkueUsCA8IGFvdGFcIDsKK+S4jeWRsyA8IGZ1bWlcIDsKK+S4ieWRsyA8IHNhbWlcIDsKK+S4i+WPpSA8IGdla3VcIDsKK+e4t+e4tyA8IHJ1cnVcIDsKK+WjgeidqCA8IGRhbmlcIDsKK+e+juWRsyA8IGJpbWlcIDsKK+S4i+WNkSA8IGdlYmlcIDsKK+itt+aMgSA8IGdvamlcIDsKK+S4gOWPpSA8IGlra3VcIDsKK+eEoemJmyA8IG11ZW5cIDsKK+e+juWMliA8IGJpa2FcIDsKK+S4jeWCmSA8IGZ1YmlcIDsKK+eKoOaJkyA8IGdpZGFcIDsKK+WkluenkSA8IGdla2FcIDsKK+Wkp+ebriA8IG9vbWVcIDsKK+e4geiAhSA8IGVuamFcIDsKK+aXpeatqSA8IGhpYnVcIDsKK+mfs+WtlyA8IG9uamlcIDsKK+mZouitsCA8IGluZ2lcIDsKK+S4gOS9kCA8IGlzc2FcIDsKK+eItuavjSA8IGZ1Ym9cIDsKK+mdnuavgCA8IGhpa2lcIDsKK+aZguW3riA8IGppc2FcIDsKK+e0sOmbqCA8IHNhaXVcIDsKK+mciueVsCA8IHJlaWlcIDsKK+WfuumfsyA8IGtpb25cIDsKK+e3r+e3miA8IGlzZW5cIDsKK+maoOiAhSA8IGluamFcIDsKK+mWu+mtlCA8IGVubWFcIDsKK+aXpeaXpSA8IGhpYmlcIDsKK+aVsOePoCA8IGp1enVcIDsKK+mZsOiQjiA8IGluJydpXCA7Civpn7PlkJAgPCBvbnRvXCA7Civpn7Plj4kgPCBvbnNhXCA7CivpnZLmnKggPCBhb2tpXCA7CivlqIHljrMgPCBpZ2VuXCA7CivorJ3mhI8gPCBzaGFpXCA7CivntrrnvoUgPCBraXJhXCA7Civln7rpg6ggPCBraWJ1XCA7CivlpoLmhI8gPCBueW9pXCA7Civlpb3mgqogPCBrb3VvXCA7Civpn7PkvqEgPCBvbmthXCA7Civml6LlvoAgPCBraW91XCA7CivlpaXmhI8gPCBva3VpXCA7CivlopPnopEgPCBib2hpXCA7Civpm6jmsLQgPCB1c3VpXCA7CivlpJzmmpcgPCB5YWFuXCA7CivmmYLkuosgPCBqaWppXCA7Civlp5Tku7sgPCBpbmluXCA7CivlpbTlqaIgPCBudWhpXCA7CivlpKfmiYsgPCBvb2RlXCA7CivpnLLluqcgPCByb3phXCA7CivpmbDnlLsgPCBpbmdhXCA7Civlo4rmrbsgPCBlc2hpXCA7CivnhKHnoo0gPCBtdWdlXCA7CivoqZDmrLogPCBzYWdpXCA7CivpnZLlnLAgPCBhb2ppXCA7CivpnZLlm7MgPCBhb3p1XCA7Civnspfph44gPCBzb3lhXCA7CivlpKflsYsgPCBvb3lhXCA7CivoqqTlt64gPCBnb3NhXCA7CivnhKHnkIYgPCBtdXJpXCA7CivlpKLlr5AgPCBtdWJpXCA7CivlpJrlspAgPCB0YWtpXCA7CivnhZnms6IgPCBlbnBhXCA7Civml6fkuosgPCBrdWppXCA7Civoqp7lsL4gPCBnb2JpXCA7CivpnLLllrYgPCByb2VpXCA7CivpmbDmsJcgPCBpbmtpXCA7CivlpJrlpJogPCB0YXRhXCA7CivlnJ/plpMgPCBkb21hXCA7Civmjqrovp4gPCBzb2ppXCA7CivnhKHmtL4gPCBtdWhhXCA7Civmv77pgY4gPCByb2thXCA7CivpvbEgPCBzZWt1XCA7Civpm6jlpKkgPCB1dGVuXCA7Civpm6jlo7AgPCB1c2VpXCA7CivpvI8gPCBiZWtpXCA7CivnhKHmr5QgPCBtdWhpXCA7Civopovnm64gPCBtaW1lXCA7Civpur8gPCBtYXJvXCA7Civpm6jln58gPCB1aWtpXCA7CivlpJzljYogPCB5b3dhXCA7CivptqogPCBrZWtpXCA7CivnhKHmqZ8gPCBtdWtpXCA7CivptKggPCBrYW1vXCA7CivpmqDlvq4gPCBpbmJpXCA7Civoo5zoqJggPCBob2tpXCA7Civpmo/mhI8gPCB6dWlpXCA7CivpsacgPCBoYW1vXCA7CivpsZogPCBraXN1XCA7CivpsKQgPCBidXJpXCA7CivpsJkgPCBoYXlhXCA7CivpsJAgPCB3YW5pXCA7CivlpJzlhbcgPCB5YWd1XCA7Civpr5YgPCBzYWJhXCA7Civpr5QgPCBib3JhXCA7Civpr4ogPCBoYXplXCA7CivprrQgPCBnb3JpXCA7CivprrIgPCBtYXRlXCA7CivprqsgPCBzYW1lXCA7CivprpIgPCBmdW5hXCA7CivprbkgPCB0b2RvXCA7Civpqq0gPCBoYWdpXCA7CivpqokgPCBoeXV1XCA7Civnspfoj5MgPCBzb2thXCA7Civngavnrq0gPCBoaXlhXCA7CivntbXmnKwgPCBlaG9uXCA7Civpn64gPCBuaXJhXCA7CivpnqAgPCBtYXJpXCA7CivlnJ/oqp4gPCBkb2dvXCA7CivpnYQgPCBtb3lhXCA7CivlnLDooaMgPCBjaGlpXCA7Civpm4flk6EgPCBrb2luXCA7Civpm4XlkbMgPCBnYW1pXCA7CivnsL/oqJggPCBib2tpXCA7CivplpYgPCB5dXJ1XCA7CivnhKHmiYsgPCBtdXRlXCA7CivnhKHmiJEgPCBtdWdhXCA7CivpkZMgPCB5YXJpXCA7CivpkYMgPCB0eW91XCA7CivpmL/miL8gPCBhaG91XCA7CivpjawgPCBrdXdhXCA7Civoo5zogqUgPCBob2hpXCA7Civpib4gPCBob2tvXCA7Civopo/mqKEgPCBraWJvXCA7Civooojoo58gPCBrZXNhXCA7CivphJkgPCBoaW5hXCA7CivloZfluIMgPCB0b2Z1XCA7CivpgKkgPCBrYW11XCA7CivpgKcgPCBzYWtvXCA7Civov40gPCBjaHVuXCA7CivovYwgPCBzb3JpXCA7CivpmaTlpJwgPCBqb3lhXCA7CivngavngokgPCBrYXJvXCA7Civos60gPCBrYWtlXCA7Civmirzpn7sgPCBvdWluXCA7Civmk6zlj6QgPCBnaWtvXCA7CivosZogPCBidXRhXCA7CivnhKHlnqIgPCBtdWt1XCA7CivnhKHlnLAgPCBtdWppXCA7CivopZ4gPCBoaWRhXCA7CivntKDmiYsgPCBzdWRlXCA7CivopLEgPCBrYWllXCA7Civoo5sgPCB5b3V1XCA7CivoorAgPCBob3JvXCA7Civon7kgPCBrYW5pXCA7CivnhKHlkbMgPCBtdW1pXCA7CivomosgPCBidXlvXCA7CivomZkgPCBodWt1XCA7Civol6ogPCB5YWJ1XCA7CivolaogPCBrYWJ1XCA7CivolIcgPCBraWtlXCA7Civok7wgPCB0YWRlXCA7Civok5EgPCBtaW5vXCA7CivokbEgPCBuZWdpXCA7CivpmaLkuLsgPCBpbmp1XCA7CivloILlrocgPCBkb3V1XCA7CivpmL/lhYQgPCBha2VpXCA7Civoi4YgPCBzdXNhXCA7CivoirkgPCBzZXJpXCA7CivnhKHkvqEgPCBtdWthXCA7CivoipIgPCBub2dpXCA7CivloLTlkIggPCBiYWFpXCA7CivntbXlg48gPCBlem91XCA7CivnhKHkuowgPCBtdW5pXCA7CivohoMgPCBvdHN1XCA7CivohJsgPCBzdW5lXCA7CivooaPntIsgPCBlbW9uXCA7CivntI3lsYsgPCBuYXlhXCA7CivopovloLQgPCBtaWJhXCA7CivnrJHpoZQgPCBlZ2FvXCA7CivnvaAgPCB3YW5hXCA7Civmj7bmj4QgPCB5YXl1XCA7CivntpsgPCBrYXNlXCA7CivnspfmnLYgPCBzb2RhXCA7Civns6AgPCBudWthXCA7Civns4ogPCBub3JpXCA7CivmiYvplpMgPCB0ZW1hXCA7Civlm7PnlLsgPCB6dWdhXCA7CivnsoIgPCBrdW1lXCA7CivnsJcgPCB5YW5hXCA7Civnro0gPCB0YWdhXCA7CivnroYgPCBoZXJhXCA7CivnrIogPCB6YXJ1XCA7CivngavlsYsgPCBob3lhXCA7CivngKzmiLggPCBzZXRvXCA7Civonrvom4QgPCBrZXJhXCA7CivnmKQgPCBrb2J1XCA7CivplpPlpKsgPCBtYWJ1XCA7CivnlJUgPCBtaWthXCA7CivnspfluIMgPCBzb2Z1XCA7CivnkZUgPCBraXp1XCA7CivnjbYgPCBueW91XCA7Civom5npu70gPCBhYm91XCA7Civmjo/mkbggPCBzdXJpXCA7Civnh7ggPCBqaXl1XCA7Civoo7jlqaYgPCByYWZ1XCA7Civlm7PmoYggPCB6dWFuXCA7CivlnJ/miYsgPCBkb3RlXCA7Civmu5MgPCBrYXN1XCA7CivmuKnpm4UgPCBvbmdhXCA7Civmj7TliqkgPCBlbmpvXCA7CivpvZ/pvawgPCBzb2dvXCA7CivmqbMgPCBudWRlXCA7CivmqbIgPCB6dXNhXCA7Civlm5vmlrkgPCB5b21vXCA7CivmqL0gPCB0YXJ1XCA7CivmqLogPCBrYWJhXCA7CivmpYUgPCBoeWt1XCA7CivmpKggPCB0YWZ1XCA7CivmpKUgPCBuYWdpXCA7CivmoIIgPCB0b2dhXCA7CivmnaMgPCBzb21hXCA7Civlm73lupwgPCBrb2Z1XCA7CivmjbvlrZAgPCBuZWppXCA7CivmiYvnvr0gPCB0ZWJhXCA7Civmt6vpm6ggPCBpbicndVwgOwor6KOc5YqpIDwgaG9qb1wgOwor5rmv6JGJIDwgeXViYVwgOwor5Zyf5ZmoIDwgZG9raVwgOwor5oyJ5pGpIDwgYW5tYVwgOwor5omoIDwgc2F0ZVwgOwor5o6I5Y+XIDwganVqdVwgOwor5omT56C0IDwgZGFoYVwgOwor5ou/5o2VIDwgZGFob1wgOwor5Zyf5YyqIDwgZG9oaVwgOwor5b22IDwga2lodVwgOwor5by2IDwgZ3lhdVwgOwor5byXIDwgZG9ydVwgOwor5byTIDwgeXVtaVwgOwor5bunIDwgc2hhdVwgOwor5bikIDwgZ2V5b1wgOwor5biiIDwga2FodVwgOwor5bekIDwgcmVodVwgOwor5bavIDwgc2hpdVwgOwor5bWAIDwgY2hpdVwgOwor5Zyo5L2NIDwgemFpaVwgOwor5bSoIDwgc2VodVwgOwor5bOFIDwga3VyYVwgOwor5rWu5aG15a2QIDwgdW5rYVwgOwor5bG2IDwgbmF0YVwgOwor5oSb6aasIDwgYWliYVwgOwor5a6oIDwgdGV3YVwgOwor5o6I5LiOIDwganV5b1wgOwor5Zub5ZuyIDwgc2hpaVwgOwor5Zu65YyWIDwga29rYVwgOwor5oSb6aOyIDwgYWlpblwgOwor5ay8IDwgcml3YVwgOwor5ZOA6Z+zIDwgYWlvblwgOwor5ay2IDwga2FrYVwgOwor5aqDIDwganl1dVwgOwor5Zue5ZCRIDwgZWtvdVwgOwor5oiv55S7IDwgZ2lnYVwgOwor5aG+IDwganVrdVwgOwor5Z+WIDwgZ29taVwgOwor5oWw6KydIDwgaXNoYVwgOwor5Zy+IDwgZ3l1dVwgOwor5Zi4IDwgc2F6b1wgOwor5ZiBIDwgc2FodVwgOwor5Ze9IDwgdWdhaVwgOwor5ZaiIDwgdGVodVwgOwor5ZWmIDwgcmFodVwgOwor5ZKM6Z+zIDwgd2FvblwgOwor5ZK2IDwga3V1aVwgOwor5oq85b+NIDwgb3NzdVwgOwor56e76LuiIDwgaXRlblwgOwor6YqF6ZG8IDwgZG9yYVwgOwor5YqLIDwgc3lvdVwgOwor5Ye4IDwgZGVrb1wgOwor5oSb6LydIDwgYWlraVwgOwor5rmv54WuIDwgeXVuaVwgOwor5oKq6ay8IDwgYWtraVwgOwor5L+HIDwga3lhdVwgOwor5L6gIDwga3lhblwgOwor5L2XIDwgd2FiaVwgOwor5LqAIDwga2FtZVwgOwor5LmfIDwgbmFyaVwgOwor5oSb6K23IDwgYWlnb1wgOwor5ZOA6KmxIDwgYWl3YVwgOwor5ZOA6Ki0IDwgYWlzb1wgOwor5ZGJ6aCIIDwgZ29zdVwgOwor56eY6KmxIDwgaGl3YVwgOwor5rmv5rCXIDwgeXVnZVwgOwor6buE6LqrIDwga2ltaVwgOwor5ZKM6K2wIDwgd2FnaVwgOwor5ZKM6KqeIDwgd2Fnb1wgOwor5ZCQ6ZyyIDwgdG9yb1wgOwor5oGp6aGnIDwgb25rb1wgOwor5oG16ZuoIDwga2VpdVwgOwor5rW36IqLIDwga2FpdVwgOwor5rWE6KGjIDwgam91ZVwgOwor6JWO6bqmIDwgc29iYVwgOwor6bia6bWhIDwgb3VtdVwgOwor5ZCI6ZaTIDwgYWltYVwgOwor5Y+z6Z2iIDwgdW1lblwgOwor6by756WWIDwgYmlzb1wgOwor5oKq6LKoIDwgYWtrYVwgOwor5rih5qynIDwgdG9vdVwgOwor5Y+k6Z+zIDwga29vblwgOwor5ZiU5ZCQIDwgb3V0b1wgOwor5ZKM6IuxIDwgd2FlaVwgOwor5Y+k6ZuFIDwga29nYVwgOwor5ruL5ZGzIDwgamltaVwgOwor5ZSW54S2IDwgYXplblwgOwor6JiH6IqzIDwgc3VvdVwgOwor6JeN6KS4IDwgYm9yb1wgOwor5oKq6KGjIDwgYWt1aVwgOwor5rmv5bGLIDwgeXV5YVwgOwor5ZS+5qOEIDwgZGFraVwgOwor5Y+z6L66IDwgdWhlblwgOwor5Zac5a+/IDwga2lqdVwgOwor5rmv5aWzIDwgeXVuYVwgOwor5Y6t6ZuiIDwgb25yaVwgOwor6by754KOIDwgYmllblwgOwor6YeO6L66IDwgbm9iZVwgOwor5oGp6Kq8IDwgb25naVwgOwor6YeO6LevIDwgbm9qaVwgOwor5ZGq56ymIDwganVmdVwgOwor5Y+k6KqeIDwga29nb1wgOwor5Za25YipIDwgZWlyaVwgOwor5b+c6ZyAIDwgb3VqdVwgOwor5oiR5YipIDwgZ2FyaVwgOwor56e75rCRIDwgaW1pblwgOwor5ZaH5ZibIDwgcmFtYVwgOwor5oaO5oKqIDwgem91b1wgOwor5Y+z6JGJIDwgdXlvdVwgOwor5ZOA5q2MIDwgYWlrYVwgOwor5Y+X6JiKIDwganV1blwgOwor5b6h6aGUIDwgb2thb1wgOwor6bm157C/IDwgcm9ib1wgOwor5Y2B6ZuoIDwganV1dVwgOwor5Y+z6ISzIDwgdW5vdVwgOwor5rip5ZKMIDwgb253YVwgOwor5rC46YGgIDwgZWllblwgOwor6YeO6ImvIDwgbm9yYVwgOwor5rW35p2+IDwgbWlydVwgOwor5ZKM5q2MIDwgd2FrYVwgOwor5rGa6KGMIDwgb2tvdVwgOwor56C06aKoIDwgaGFmdVwgOwor5oSb5pKrIDwgYWlidVwgOwor6buE5rOJIDwgeW9taVwgOwor5b+c6Ki0IDwgb3Vzb1wgOwor5ZOA5oWVIDwgYWlib1wgOwor5ZCI552AIDwgYWlnaVwgOwor5b6h6LqrIDwgb25taVwgOwor5oWw5ZWPIDwgaW1vblwgOwor5Yy66LK7IDwga3VoaVwgOwor5ZGG5rCXIDwgYWtrZVwgOwor6YKq6a2UIDwgamFtYVwgOwor6YO96YSZIDwgdG9oaVwgOwor56C06YKqIDwgaGFqYVwgOwor5b6A6LevIDwgb3Vyb1wgOwor6YKq6aObIDwgamFoaVwgOwor56WW5q+NIDwgc29ib1wgOwor5rS+5omLIDwgaGFkZVwgOwor5byl6ZmAIDwgbWlkYVwgOwor6YeO54y/IDwgeWFlblwgOwor5Y+X55CGIDwganVyaVwgOwor5ZG85b+cIDwga29vdVwgOwor56eY5aWlIDwgaGlvdVwgOwor5rGa56miIDwgb3dhaVwgOwor5oSa5ZuzIDwgZ3V6dVwgOwor5rWB5biDIDwgcnVmdVwgOwor5q+N6KqeIDwgYm9nb1wgOwor6YeO54GrIDwgbm9iaVwgOwor5ZKM5a2XIDwgd2FqaVwgOwor5ZCI5q2TIDwgbmVtdVwgOwor5b6h6Iy2IDwgb2NoYVwgOwor6bq75biDIDwgbWFmdVwgOwor5oKq5oSfIDwgb2thblwgOwor56e75L2PIDwgaWp1dVwgOwor6Jma5L2NIDwga3lvaVwgOwor5oG15pa5IDwgZWhvdVwgOwor5oSb5YWQIDwgYWlqaVwgOwor5rKZ5rGwIDwgc2F0YVwgOwor5q2m6YGLIDwgYnV1blwgOwor5b6h57C+IDwgbWlzdVwgOwor5ZGz5ZmMIDwgbWlzb1wgOwor5Y+z5pa5IDwgdWhvdVwgOwor5Lqc57Sw5LqcIDwgYWppYVwgOwor5buI6ZaAIDwgYW1vaVwgOwor5rGa54K5IDwgb3RlblwgOwor5q+b5769IDwga2ViYVwgOwor6YeO5pquIDwgeWFib1wgOwor5ZCI5oSPIDwgZ291aVwgOwor5b6h56S8IDwgb3JlaVwgOwor5rOi5biDIDwgaGFidVwgOwor5b6h56KXIDwgb3dhblwgOwor6YG66LSIIDwgaXpvdVwgOwor5rGa5rOlIDwgb2RlaVwgOwor55+z6JO0IDwgYW9zYVwgOwor5b6h55uGIDwgb2JvblwgOwor5rGa5rC0IDwgb3N1aVwgOwor5Y2X54ShIDwgbmFtdVwgOwor6L+96aKoIDwgb2l0ZVwgOwor56CS57SgIDwgaGlzb1wgOwor5oCq5oiRIDwga2VnYVwgOwor5Y+z5bK4IDwgdWdhblwgOwor5rGa5p+TIDwgb3NlblwgOwor5oGp5aiBIDwgb24nJ2lcIDsKK+iNt+mnhCA8IG5pZGFcIDsKK+WQiOWbsyA8IGFpenVcIDsKK+mBuuiRlyA8IGljaG9cIDsKK+W5vumHjSA8IGlrdWVcIDsKK+axmuaQjSA8IG9zb25cIDsKK+WQj+WToSA8IHJpaW5cIDsKK+WOreaCqiA8IGVuJydvXCA7CivljrvlubQgPCBrb3pvXCA7CivlkI3ljLsgPCBtZWlpXCA7CivlkI/li5kgPCByaW11XCA7Civov7cgPCBtZWlcIDsKK+W/tSA8IG5lblwgOwor55+tIDwgdGFuXCA7Civlv6sgPCBrYWlcIDsKK+i/pSA8IGtlaVwgOwor55+lIDwgY2hpXCA7Civnn5wgPCBraW5cIDsKK+W/mSA8IGJvdVwgOwor6L+UIDwgaGVuXCA7Civov44gPCBnZWlcIDsKK+W/jSA8IG5pblwgOwor6L+FIDwgamluXCA7Civovr8gPCB0ZW5cIDsKK+eeuyA8IHNlblwgOwor6L6yIDwgbm91XCA7Civovq8gPCBiZW5cIDsKK+W+qiA8IGp1blwgOwor556gIDwgZG91XCA7Civlvp4gPCBqdXVcIDsKK+W+hSA8IHRhaVwgOwor5b2pIDwgc2FpXCA7CivnnaEgPCBzdWlcIDsKK+i9nyA8IGdvdVwgOwor5b2TIDwgdG91XCA7CivlvYggPCBkYW5cIDsKK+ecqSA8IGdlblwgOwor55ygIDwgbWluXCA7CivlvJ8gPCB0ZWlcIDsKK+W8myA8IHNoaVwgOwor5byYIDwga291XCA7CivnnIwgPCBrZW5cIDsKK+eciyA8IGthblwgOwor5byEIDwgcm91XCA7CivnnIEgPCBzZWlcIDsKK+ebuCA8IHNvdVwgOwor5buiIDwgaGFpXCA7Civou40gPCBndW5cIDsKK+W7iSA8IHJlblwgOwor55uGIDwgYm9uXCA7CivlurggPCB5b3VcIDsKK+easCA8IGhvdVwgOwor6LqHIDwgY2hvXCA7Civlub4gPCBpa3VcIDsKK+W5vSA8IHl1dVwgOwor55mMIDwgZ2FuXCA7Civot6EgPCBhdG9cIDsKK+i3nyA8IGtvblwgOwor6LedIDwga3lvXCA7CivnloogPCBqb3VcIDsKK+eVqiA8IGJhblwgOwor55WmIDwgYXplXCA7CivnlZQgPCBoYW5cIDsKK+eUoyA8IHNhblwgOwor6LSFIDwgemVpXCA7Civnk7YgPCBiaW5cIDsKK+izoyA8IGJhaVwgOwor55OcIDwgdXJpXCA7CivlsqkgPCBpd2FcIDsKK+iyoSA8IHphaVwgOwor6LGhIDwgem91XCA7CivlsY8gPCBoZWlcIDsKK+WwmiA8IG5hb1wgOwor5bCEIDwgc2hhXCA7CivlsIEgPCBmdXVcIDsKK+WvuCA8IHN1blwgOwor5a61IDwgeW9pXCA7CivlrrMgPCBnYWlcIDsKK+WumyA8IGF0ZVwgOwor5a2YIDwgc29uXCA7CivlrKogPCBoaW5cIDsKK+iruCA8IHNob1wgOwor6KuWIDwgcm9uXCA7Civlq4wgPCBpeWFcIDsKK+eKrCA8IGludVwgOwor6KqEIDwgcnVpXCA7CivniaEgPCBvc3VcIDsKK+eJjCA8IHBhaVwgOwor54ibIDwgcmFuXCA7Civnh7sgPCBrdW5cIDsKK+WniSA8IGFuZVwgOwor6KaqIDwgb3lhXCA7Civlpa4gPCBmdW5cIDsKK+WlpSA8IG9rdVwgOwor6KWfIDwgZXJpXCA7CivnhLYgPCB6ZW5cIDsKK+WjsCA8IGtvZVwgOwor6KOPIDwgdXJhXCA7CivoooIgPCBiZWlcIDsKK+ifuyA8IGFyaVwgOwor5r+YIDwgbmVpXCA7Civln4sgPCBtYWlcIDsKK+WeoiA8IGFrYVwgOwor6J2/IDwgaGFlXCA7CivpvaEgPCByZWlcIDsKK+a7vyA8IG1hblwgOwor6JubIDwgc2h1XCA7Civlm5sgPCB5b25cIDsKK+m6uyA8IGFzYVwgOwor5rm+IDwgd2FuXCA7CivomZwgPCByeW9cIDsKK+a4piA8IHV6dVwgOwor5ZiYIDwgdXNvXCA7CivomIIgPCB6dWlcIDsKK+a3iyA8IHJpblwgOwor5rayIDwgZWtpXCA7CivllrAgPCBrdXVcIDsKK+a1tyA8IHVtaVwgOwor5ZWPIDwgbW9uXCA7Civms6EgPCBhd2FcIDsKK+iSmSA8IG1vdVwgOwor5rKWIDwgb2tpXCA7CivmsowgPCB0b25cIDsKK+WRsyA8IGFqaVwgOwor5rGgIDwgaWtlXCA7CivmsZcgPCBhc2VcIDsKK+WRkSA8IGRvblwgOwor5rCPIDwgdWppXCA7Civlj7AgPCBkYWlcIDsKK+aumCA8IHphblwgOwor5q2MIDwgdXRhXCA7CivljYggPCB1bWFcIDsKK+WNgSA8IHRvb1wgOwor6ay8IDwgb25pXCA7CivojLYgPCBjaGFcIDsKK+WLpCA8IGdvblwgOwor6IuXIDwgbmFlXCA7CivoibIgPCBpcm9cIDsKK+WJjSA8IG1hZVwgOwor5YiGIDwgYnVuXCA7Civoh7wgPCB1c3VcIDsKK+mmrSA8IGd5b1wgOwor6IWVIDwgdWRlXCA7CivlhY0gPCBtZW5cIDsKK+WFhCA8IGFuaVwgOwor6aO0IDwgYW1lXCA7Civpo5wgPCBob25cIDsKK+WCsyA8IGRlblwgOwor5qKFIDwgdW1lXCA7CivmobYgPCBva2VcIDsKK+WBtiA8IGd1dVwgOwor6aGUIDwga2FvXCA7CivpoY4gPCBhZ29cIDsKK+mgvCA8IHJhaVwgOwor5L+6IDwgb3JlXCA7Civmnp0gPCBlZGFcIDsKK+advyA8IGl0YVwgOwor5L2VIDwgbmFuXCA7CivpmoggPCB3YWlcIDsKK+e5lCA8IG9yaVwgOwor5LiYIDwgb2thXCA7CivntrIgPCBhbWlcIDsKK+mVtyA8IG9zYVwgOwor5pW4IDwgc3V1XCA7CivmlYUgPCB5dWVcIDsKK+ezuCA8IGl0b1wgOwor57KXIDwgYXJhXCA7Civmj6EgPCBha3VcIDsKK+esmyA8IGZ1ZVwgOwor56u/IDwgc2FvXCA7CivnqLIgPCBpbmVcIDsKK+aIliA8IGFydVwgOwor6YeNIDwgb21vXCA7Civnp4sgPCBha2lcIDsKK+emsCA8IGRlaVwgOwor5oGvIDwgaWtpXCA7CivmgYsgPCBrb2lcIDsKK+i/gumBoCA8IHVlblwgOwor5b6u5oSPIDwgYmlpXCA7Civlj5nkvY0gPCBqb2lcIDsKK+i/gui3ryA8IHVyb1wgOwor5b6X5omLIDwgZXRlXCA7CivmsJflrocgPCBraXVcIDsKK+WMu+WutiA8IGlrYVwgOwor5YWr6YeNIDwgeWFlXCA7CivljLvlk6EgPCBpaW5cIDsKK+WMu+WLmSA8IGltdVwgOwor5Yy75LqLIDwgaWppXCA7CivpgbrmhJsgPCBpYWlcIDsKK+mBuuW9sSA8IGllaVwgOwor6YOo5L2NIDwgYnVpXCA7CivpgbrlraQgPCBpa29cIDsKK+eVsOmfsyA8IGlvblwgOwor5biM5pyJIDwga2V1XCA7Civov4LmhJogPCB1Z3VcIDsKK+asp+S6nCA8IG91YVwgOwor5qyh5L2NIDwgamlpXCA7CivmrKHkupwgPCBqaWFcIDsKK+ecieWuhyA8IGJpdVwgOwor55Ww6K2wIDwgaWdpXCA7CivlsYXplpMgPCBpbWFcIDsKK+W4sOS+nSA8IGtpZVwgOwor6aaZ6a2aIDwgYXl1XCA7CivmqZ/kvY0gPCBraWlcIDsKK+S8vOmdniA8IGVzZVwgOwor5bC+5769IDwgb2hhXCA7CivnlbDniLYgPCBpZnVcIDsKK+S8mumZsCA8IGVpblwgOwor55Ww5q+NIDwgaWJvXCA7CivkupzpursgPCBhbWFcIDsKK+S7pemBoCA8IGllblwgOwor5LyK6KqeIDwgaWdvXCA7CivkupzpiZsgPCBhZW5cIDsKK+WwvuaguSA8IG9uZVwgOwor5qSF5a2QIDwgaXN1XCA7Civkvp3mgJkgPCBla29cIDsKK+S6keeCuiA8IHVuaVwgOwor5Lqc5qynIDwgYW91XCA7Civku6XlvoAgPCBpb3VcIDsKK+acieeEoSA8IHVtdVwgOwor5Lya5Y6tIDwgZWVuXCA7CivmoITkvY0gPCBlaWlcIDsKK+S6leaIuCA8IGlkb1wgOwor6Z2e6YGVIDwgaGlpXCA7CivlpJzpm6ggPCB5YXVcIDsKK+WkmumbqCA8IHRhdVwgOwor5LqM5bCJIDwgbmlpXCA7CivkuI3mhI8gPCBmdWlcIDsKK+WogeatpiA8IGlidVwgOwor5pyJ5Y2mIDwgdWtlXCA7CivnjovkvY0gPCBvdWlcIDsKK+e+heWuhyA8IHJhb1wgOwor57695YyWIDwgdWthXCA7CivntbXppqwgPCBlbWFcIDsKK+WjiueWvSA8IGVzb1wgOwor6Zuo5rCXIDwgdWtpXCA7Civoqp7mhI8gPCBnb2lcIDsKK+mbqOW+jCA8IHVnb1wgOwor54Sh54K6IDwgbXVpXCA7Civoo5zpgbogPCBob2lcIDsKK+m+kiA8IHJ5dVwgOwor6bu2IDwgYXphXCA7CivpmL/mr5QgPCBhYmlcIDsKK+mzsCA8IG5pb1wgOwor6bCVIDwgZWJpXCA7CivpsJMgPCBlcmFcIDsKK+mkjCA8IGVzYVwgOwor6Y6KIDwgaGF1XCA7CivpjZEgPCBodXVcIDsKK+mMtSA8IG5pZVwgOwor6YiWIDwgaHVuXCA7CivphLwgPCBzYWJcIDsKK+mEniA8IGdpblwgOwor6YK+IDwgY2h1XCA7CivovZEgPCByYXVcIDsKK+iknCA8IGVuYVwgOwor57W15ZuzIDwgZXp1XCA7CivopovlvpcgPCBtaWVcIDsKK+iZuyA8IGFidVwgOwor6Zi/5ZC9IDwgYXVuXCA7CivokbUgPCBhb2lcIDsKK+iNuyA8IG9naVwgOwor6IqLIDwgaW1vXCA7Civoh5EgPCBkYXVcIDsKK+a7i+mbqCA8IGppdVwgOwor56iXIDwgaGllXCA7Civnk7QgPCByaWlcIDsKK+e0huS9mSA8IHV5b1wgOwor5qiLIDwgdG9pXCA7Civmo7AgPCBzb2lcIDsKK+adrSA8IGt1aVwgOwor5panIDwgb25vXCA7CivmhLAgPCBrYXVcIDsKK+W9ryA8IGhldVwgOwor5byoIDwgc2V1XCA7Civlu4cgPCByaXVcIDsKK+W7hSA8IGFodVwgOwor5bqjIDwgdGV1XCA7CivltoYgPCBzYXVcIDsKK+W1uiA8IHJldVwgOwor5bW2IDwgdGFvXCA7Civmtbfpq6ogPCBvZ29cIDsKK+WsiCA8IGRldVwgOwor5au5IDwgYmF1XCA7Civlq5kgPCBzZWJcIDsKK+aEj+mmrCA8IGliYVwgOwor5aWhIDwgZ2F1XCA7CivlnpogPCBnZXVcIDsKK+WcpiA8IGlyaVwgOwor5Zq3IDwgamF1XCA7Civlm7PkvJogPCB6dWVcIDsKK+WYqyA8IGRhbVwgOwor5YOgIDwgZmFuXCA7CivkvYIgPCB5YWlcIDsKK+aCqumcsiA8IG9yb1wgOwor6J2m5aS3IDwgZXpvXCA7CivnqaLlpJogPCBldGFcIDsKK+epouWcnyA8IGVkb1wgOwor5oWw5a6JIDwgaWFuXCA7CivljYHph40gPCB0b2VcIDsKK+aEmuaEjyA8IGd1aVwgOwor5Y+z5rS+IDwgdWhhXCA7CivmhI/lkbMgPCBpbWlcIDsKK+iQjumdoSA8IGliaVwgOwor6L+mIDwga2FcIDsKK+efoiA8IHlhXCA7Civlv5wgPCBvdVwgOwor5b+MIDwga2lcIDsKK+i+rSA8IGppXCA7Civlvq4gPCBiaVwgOwor5b6hIDwgZ29cIDsKK+W+kiA8IHRvXCA7CivlvpAgPCBqb1wgOwor55y8IDwgbWVcIDsKK+i8qiA8IHdhXCA7CivlvKUgPCBtaVwgOwor55yfIDwgbWFcIDsKK+W8lSA8IGluXCA7CivlvJAgPCBuaVwgOwor5bu2IDwgZW5cIDsKK+W6qyA8IGtvXCA7CivluqcgPCB6YVwgOwor5bqmIDwgZG9cIDsKK+W6nCA8IGZ1XCA7CivluocgPCBoaVwgOwor6LiwIDwgeXVcIDsKK+i3ryA8IHJvXCA7Civlt64gPCBzYVwgOwor5bejIDwgc3VcIDsKK+eXmyA8IHRzXCA7CivnlpEgPCBnaVwgOwor55aOIDwgc29cIDsKK+eUsCA8IHRhXCA7CivnlKUgPCBvaVwgOwor6LGrIDwgeW9cIDsKK+WxpSA8IHJpXCA7Civlr50gPCBuZVwgOwor5a62IDwga2VcIDsKK+ionSA8IGdhXCA7Civnh58gPCBlaVwgOwor6KWmIDwganVcIDsKK+WliCA8IG5hXCA7CivnhKEgPCBtdVwgOwor6KSeIDwgb25cIDsKK+ikkyA8IGhvXCA7Civoo7MgPCBtb1wgOwor5aKuIDwgZGFcIDsKK+WgtCA8IGJhXCA7CivngKwgPCBzZVwgOwor6J66IDwgcmFcIDsKK+WbsyA8IHp1XCA7Civll58gPCBhYVwgOwor6JeNIDwgYWlcIDsKK+m1oSA8IGJ1XCA7CivmtL4gPCBoYVwgOwor6I6rIDwgYm9cIDsKK+iLpiA8IGt1XCA7Civlh7ogPCBkZVwgOwor5YW3IDwgZ3VcIDsKK+ahiCA8IGFuXCA7CivpnZIgPCBhb1wgOwor5LqRIDwgdW5cIDsKK+S5gyA8IG5vXCA7CivmmK8gPCB6ZVwgOwor5omLIDwgdGVcIDsKK+aDuSA8IGphXCA7CivkvIrkupUgPCBpaVwgOwor6ZeeIDwga25cIDsKK+mIhyA8IGh1XCA7CivoroQgPCBydVwgOwor5pu9IDwgem9cIDsKK+aQmSA8IG51XCA7Civluq4gPCBpdVwgOwor5ba0IDwgYXVcIDsKK+WyhiA8IGV1XCA7CivlsYEgPCBoZVwgOwor5bi3IDwgaVwgOwor5bC+IDwgb1wgOwor5a6HIDwgdVwgOwor5rGfIDwgZVwgOwor5LqeIDwgYVwgOwor5rOV5a2m57O75aSn5a2m6Zmi5YWx6YCa5YWl5a2m6Kmm6aiTID4gaG91Z2FrdWtlaWRhaWdha3Vpbmt5b3V0c3V1bnl1dWdha3VzaGlrZW5cIDsKK+acnemuruawkeS4u+S4u+e+qeS6uuawkeWFseWSjOWbvSA+IGNob3VzZW5taW5zaHVzaHVnaWppbm1pbmt5b3V3YWtva3VcIDsKK+iHquWLlei7iuaQjeWus+izoOWEn+iyrOS7u+S/nemZuiA+IGppZG91c2hhc29uZ2FpYmFpc2hvdXNla2luaW5ob2tlblwgOwor57Gz5Zu95aSn5a2m5YWl5a2m5YWx6YCa6Kmm6aiTID4gYmVpa29rdWRhaWdha3VueXV1Z2FrdWt5b3V0c3V1c2hpa2VuXCA7Civml6XmnKzlirTlg43ntYTlkIjnt4/oqZXorbDkvJogPiBuaWhvbnJvdWRvdWt1bWlhaXNvdWh5b3VnaWthaVwgOwor5ouY5p2f5ZCN57C/5byP5q+U5L6L5Luj6KGo5Yi2ID4ga291c29rdW1laWJvaGlyZWlkYWloeW91c2VpXCA7Civoh6jlhbXpl5jogIXnmobpmaPoo4LlnKjliY0gPiByaW5weW91dG91c2hha2FpamlucmV0c3V6YWl6ZW5cIDsKK+WkquW5s+a0i+apn+aisOe/u+ios+WNlOS8miA+IHRhaWhlaXlvdWtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5Yuk5Yq06ICF6LKh55Sj5b2i5oiQ5L+D6YCyID4ga2lucm91c2hhemFpc2Fua2Vpc2Vpc29rdXNoaW5cIDsKK+i2hei2heWkp+imj+aooembhuepjeWbnui3ryA+IGNob3VjaG91ZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+i2heOAheWkp+imj+aooembhuepjeWbnui3ryA+IGNob3VjaG91ZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+WkquW5s+a0i+WuieWFqOS/nemanOadoee0hCA+IHRhaWhlaXlvdWFuemVuaG9zaG91am91eWFrdVwgOwor5pON57im5bit6Z+z5aOw6KiY6Yyy6KOF572uID4gc291anV1c2VraW9uc2Vpa2lyb2t1c291Y2hpXCA7CivoiKrnqbrlroflrpnmioDooZPnoJTnqbbmiYAgPiBrb3VrdXV1Y2h1dWdpanV0c3VrZW5reXV1am9cIDsKK+a1ruWLleWwj+aVsOeCuea8lOeul+apn+aniyA+IGZ1ZG91c2hvdXN1dXRlbicnZW56YW5raWtvdVwgOwor54++6YeR6Ieq5YuV6aCQ6YeR5pSv5omV5qmfID4gZ2Vua2luamlkb3V5b2tpbnNoaWhhcmFpa2lcIDsKK+S4u+i+numnhuWLleWPpeani+mAoOaWh+azlSA+IHNodWppa3Vkb3VrdWtvdXpvdWJ1bnBvdVwgOwor57WM5riI5Y2U5Yqb6ZaL55m65qmf5qeLID4ga2VpemFpa3lvdXJ5b2t1a2FpaGF0c3VraWtvdVwgOwor5YyX5rW36YGT6ZaL55m65bqB6ZW35a6YID4gaG9ra2FpZG91a2FpaGF0c3VjaG91Y2hvdWthblwgOwor5aSW5Zu95Lq655m76Yyy6Ki85piO5pu4ID4gZ2Fpa29rdWppbnRvdXJva3VzaG91bWVpc2hvXCA7CivmiKbnlaXlhbXlmajliYrmuJvmnaHntIQgPiBzZW5yeWFrdWhlaWtpc2FrdWdlbmpvdXlha3VcIDsKK+Wbvemam+apn+aisOe/u+ios+WNlOS8miA+IGtva3VzYWlraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+Wbvemam+mbu+awl+mAmuS/oemAo+WQiCA+IGtva3VzYWlkZW5raXRzdXVzaGlucmVuZ291XCA7CivmtbflpJbntYzmuIjljZTlipvln7rph5EgPiBrYWlnYWlrZWl6YWlreW91cnlva3VraWtpblwgOwor5pel57Gz5a6J5YWo5L+d6Zqc5p2h57SEID4gbmljaGliZWlhbnplbmhvc2hvdWpvdXlha3VcIDsKK+aIpuayoeiAhei/veaCvOiomOW/teaXpSA+IHNlbmJvdHN1c2hhdHN1aXRvdWtpbmVuYmlcIDsKK+aIpuihk+iIquepuue1seWItuacrOmDqCA+IHNlbmp1dHN1a291a3V1dG91c2VpaG9uYnVcIDsKK+W3pealremrmOetieWwgumWgOWtpuagoSA+IGtvdWd5b3Vrb3V0b3VzZW5tb25nYWtrb3VcIDsKK+WMl+Wkp+ilv+a0i+adoee0hOapn+aniyA+IGtpdGF0YWlzZWl5b3Vqb3V5YWt1a2lrb3VcIDsKK+i2heWkp+imj+aooembhuepjeWbnui3ryA+IGNob3VkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor5YyW5a2m5YW15Zmo56aB5q2i5p2h57SEID4ga2FnYWt1aGVpa2lraW5zaGlqb3V5YWt1XCA7CivplqLnqI7osr/mmJPkuIDoiKzljZTlrpogPiBrYW56ZWlib3Vla2lpcHBhbmt5b3V0ZWlcIDsKK+WcqOeVmeacn+mWk+abtOaWsOioseWPryA+IHphaXJ5dXVraWthbmtvdXNoaW5reW9rYVwgOwor5LiH5Zu95Zu96Zqb6Z+z5qiZ5paH5a2XID4gYmFua29rdWtva3VzYWlvbnB5b3Vtb2ppXCA7CivmtbfmtIvmipXmo4Topo/liLbmnaHntIQgPiBrYWl5b3V0b3VraWtpc2Vpam91eWFrdVwgOwor6YeO55Sf5YuV54mp5L+d6K235Zuj5L2TID4geWFzZWlkb3VidXRzdWhvZ29kYW50YWlcIDsKK+iHquWLleWIl+i7iuWItuW+oeijhee9riA+IGppZG91cmVzc2hhc2VpZ3lvc291Y2hpXCA7CivlpKnnhLbos4fmupDkv53orbfoq5bogIUgPiB0ZW4nJ25lbnNoaWdlbmhvZ29yb25zaGFcIDsKK+mdnuW4uOS6i+aFi+WvvuWHpuioiOeUuyA+IGhpam91aml0YWl0YWlzaG9rZWlrYWt1XCA7Civoh6rli5XliJfou4rlgZzmraLoo4Xnva4gPiBqaWRvdXJlc3NoYXRlaXNoaXNvdWNoaVwgOwor6LWk5Y2B5a2X5Zu96Zqb5aeU5ZOh5LyaID4gc2VraWp1dWppa29rdXNhaWlpbmthaVwgOwor6KuH6Kmx6KGo56S65qeL6YCg55CG6KuWID4gZGFud2FoeW91amlrb3V6b3VyaXJvblwgOwor5YWx55Sj5YWa5Lit5aSu5aeU5ZOh5LyaID4ga3lvdXNhbnRvdWNodXVvdWlpbmthaVwgOwor5rCR5Li75YWa5YWo5Zu95aeU5ZOh5LyaID4gbWluc2h1dG91emVua29rdWlpbmthaVwgOwor6Iux6Kqe5Z+656SO6IO95Yqb6Kmm6aiTID4gZWlnb2tpc29ub3VyeW9rdXNoaWtlblwgOwor5LiA6Iis5ZG95Luk5ryU566X5qmf5qeLID4gaXBwYW5tZWlyZWllbnphbmtpa291XCA7Civnn6XorZjpm4bntITlnovnlKPmpa0gPiBjaGlzaGlraXNodXV5YWt1Z2F0YXNhbmd5b3VcIDsKK+iHquW+i+elnue1jOWkseiqv+eXhyA+IGppcml0c3VzaGlua2Vpc2hpdGNob3VzaG91XCA7CivmspbnuITplovnmbrluoHplbflrpggPiBva2luYXdha2FpaGF0c3VjaG91Y2hvdWthblwgOwor5byB6Ki85rOV55qE5ZSv54mp6KuWID4gYmVuc2hvdWhvdXRla2l5dWlidXRzdXJvblwgOwor5Zu96Zqb5Y2U5Yqb5LqL5qWt5ZujID4ga29rdXNhaWt5b3VyeW9rdWppZ3lvdWRhblwgOwor57eP5ZCI55qE5ZOB6LOq566h55CGID4gc291Z291dGVraWhpbnNoaXRzdWthbnJpXCA7CivnlpHkvLznm7TmjqXnm67nmoToqp4gPiBnaWppY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+S4h+WbveiRl+S9nOaoqeadoee0hCA+IGJhbmtva3VjaG9zYWt1a2Vuam91eWFrdVwgOwor6KiA6Kqe5a2m55qE5a6f5Zyo6KuWID4gZ2VuZ29nYWt1dGVraWppdHN1emFpcm9uXCA7CivlhqDnirbli5XohIjooYDmoJPnl4cgPiBrYW5qb3Vkb3VteWFrdWtlc3NlbnNob3VcIDsKK+enkeWtpuaKgOihk+W6gemVt+WumCA+IGthZ2FrdWdpanV0c3VjaG91Y2hvdWthblwgOwor6LWk6KGA55CD5rKI6ZmN6YCf5bqmID4gc2Vra2Vra3l1dWNoaW5rb3Vzb2t1ZG9cIDsKK+efs+ayuei8uOWHuuWbveapn+aniyA+IHNla2l5dXl1c2h1dHN1a29rdWtpa291XCA7CivlhazlhbHogbfmpa3lronlrprmiYAgPiBrb3VreW91c2hva3VneW91YW50ZWlqb1wgOwor5oim6KGT6Iiq56m657Wx5Yi254+tID4gc2VuanV0c3Vrb3VrdXV0b3VzZWloYW5cIDsKK+iHquWLlemHkemKreWHuuWFpeapnyA+IGppZG91a2luc2Vuc2h1dHN1bnl1dWtpXCA7CivlnLDpnIfpm7fngavkuovopqrniLYgPiBqaXNoaW5rYW1pbmFyaWthamlveWFqaVwgOwor5aSa6IKi6YG45oqe5byP6Kmm5ZWPID4gdGFzaGlzZW50YWt1c2hpa2lzaGltb25cIDsKK+aWsOmWouilv+Wbvemam+epuua4ryA+IHNoaW5rYW5zYWlrb2t1c2Fpa3V1a291XCA7CivoqIDoqp7lrabnmoToprPlv7Xoq5YgPiBnZW5nb2dha3V0ZWtpa2FuJyduZW5yb25cIDsKK+W+jOeZuueZuuWxlemAlOS4iuWbvSA+IGtvdWhhdHN1aGF0dGVudG9qb3Vrb2t1XCA7CivmirnmtojnmbvpjLLoqLzmmI7mm7ggPiBtYXNob3V0b3Vyb2t1c2hvdW1laXNob1wgOwor57WM5riI5LyB55S75bqB6ZW35a6YID4ga2VpemFpa2lrYWt1Y2hvdWNob3VrYW5cIDsKK+WGjeeUn+S4jeiJr+aAp+iyp+ihgCA+IHNhaXNlaWZ1cnlvdXNlaWhpbmtldHN1XCA7CivngavlipvmlK/mj7Toqr/mlbTnt5ogPiBrYXJ5b2t1c2hpZW5jaG91c2Vpc2VuXCA7CivnoLTlo4rmtLvli5XpmLLmraLms5UgPiBoYWthaWthdHN1ZG91Ym91c2hpaG91XCA7Civlm73pmpvov5Tkv6HliIfmiYvliLggPiBrb2t1c2FpaGVuc2hpbmtpdHRla2VuXCA7CivkuK3oj6/kurrmsJHlhbHlkozlm70gPiBjaHV1a2FqaW5taW5reW91d2Frb2t1XCA7CivmnbHmtbfpgZPkupTljYHkuInmrKEgPiB0b3VrYWlkb3Vnb2p1dXNhbnRzdWdpXCA7Civlroflrpnplovnmbrkuovmpa3lm6MgPiB1Y2h1dWthaWhhdHN1amlneW91ZGFuXCA7CivkuInou7jlnKfnuK7oqabpqJPmqZ8gPiBzYW5qaWt1YXNzaHVrdXNoaWtlbmtpXCA7CivoppbogbTogIXlj4LliqDnlarntYQgPiBzaGljaG91c2hhc2Fua2FiYW5ndW1pXCA7Civlt57pmpvpgJrllYblp5Tlk6HkvJogPiBzaHV1c2FpdHN1dXNob3VpaW5rYWlcIDsKK+WRqOazouaVsOWkieaPm+ijhee9riA+IHNodXVoYXN1dWhlbmthbnNvdWNoaVwgOwor5oWi5oCn55ay5Yq055eH5YCZ576kID4gbWFuc2VpaGlyb3VzaG91a291Z3VuXCA7CivlhazlrrPlr77nrZbln7rmnKzms5UgPiBrb3VnYWl0YWlzYWt1a2lob25ob3VcIDsKK+e1jOa4iOWbo+S9k+mAo+WQiOS8miA+IGtlaXphaWRhbnRhaXJlbmdvdWthaVwgOwor5oim6ZeY6Zu75a2Q5oim5oOF5aCxID4gc2VudG91ZGVuc2hpc2Vuam91aG91XCA7Civnj77ph5Hoh6rli5XmlK/miZXmqZ8gPiBnZW5raW5qaWRvdXNoaWhhcmFpa2lcIDsKK+acgOmrmOe1jOWWtuiyrOS7u+iAhSA+IHNhaWtvdWtlaWVpc2VraW5pbnNoYVwgOwor6KOF55Sy5Lq65ZOh6YGL5pCs6LuKID4gc291a291amluJydpbicndW5wYW5zaGFcIDsKK+aXpeacrOiqnuiDveWKm+ippumokyA+IG5paG9uZ29ub3VyeW9rdXNoaWtlblwgOwor6Z+z56+A5Li76Z+z55qE5a2Q6Z+zID4gb25zZXRzdXNodW9udGVraXNoaWluXCA7CivoqLzliLjlj5blvJXlp5Tlk6HkvJogPiBzaG91a2VudG9yaWhpa2lpaW5rYWlcIDsKK+acgOmrmOiyoeWLmeiyrOS7u+iAhSA+IHNhaWtvdXphaW11c2VraW5pbnNoYVwgOwor55+t6Led6Zui6Zui552A6Zm45qmfID4gdGFua3lvcmlyaWNoYWt1cmlrdWtpXCA7CivmqZ/og73ljZjkuIDljJbmlofms5UgPiBraW5vdXRhbicnaXRzdWthYnVucG91XCA7Civnn6Xog73mg4XloLHnoJTnqbbpg6ggPiBjaGlub3Vqb3Vob3VrZW5reXV1YnVcIDsKK+WKoOWcp+awtOWei+WOn+WtkOeCiSA+IGthYXRzdXN1aWdhdGFnZW5zaGlyb1wgOwor55Kw5aSq5bmz5rSL5Zyw6ZyH5bivID4ga2FudGFpaGVpeW91amlzaGludGFpXCA7CivkurrnqK7lt67liKXkuLvnvqnogIUgPiBqaW5zaHVzYWJldHN1c2h1Z2lzaGFcIDsKK+iHqueEtueSsOWig+S/neWFqOazlSA+IHNoaXplbmthbmt5b3Vob3plbmhvdVwgOwor55Kw5aSq5bmz5rSL6YCg5bGx5bivID4ga2FudGFpaGVpeW91em91emFudGFpXCA7CivooYzli5XkuLvnvqnlv4PnkIblraYgPiBrb3Vkb3VzaHVnaXNoaW5yaWdha3VcIDsKK+esrOS4gOasoeS4lueVjOWkp+aIpiA+IGRhaWljaGlqaXNla2FpdGFpc2VuXCA7CivlpInli5Xngrrmm7/nm7jloLTliLYgPiBoZW5kb3VrYXdhc2Vzb3ViYXNlaVwgOwor5q2v5YaF55mC5rOV5bCC6ZaA5Yy7ID4gc2hpa2FyeW91aG91c2VubW9uJydpXCA7CivnkrDlpKrlubPmtIvngavlsbHluK8gPiBrYW50YWloZWl5b3VrYXphbnRhaVwgOwor5a6f5oOF6Kq/5p+75aeU5ZOh5LyaID4gaml0c3Vqb3VjaG91c2FpaW5rYWlcIDsKK+enkeWtpuWfuuekjueglOeptuaJgCA+IGthZ2FrdWtpc29rZW5reXV1c2hvXCA7CivlpInlvaLnlJ/miJDntbHoqp7oq5YgPiBoZW5rZWlzZWlzZWl0b3Vnb3JvblwgOwor5aSn6KaP5qih6ZuG56mN5Zue6LevID4gZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+WNl+eEoeWmmeazleiTruiPr+e1jCA+IG5hbXVteW91aG91cmVuZ2VreW91XCA7CivmnKrnorroqo3po5vooYzniankvZMgPiBtaWtha3VuaW5oaWtvdWJ1dHRhaVwgOwor5LiA6YW45YyW54Kt57Sg5Lit5q+SID4gaXNzYW5rYXRhbnNvY2h1dWRva3VcIDsKK+WFrOato+WPluW8leWnlOWToeS8miA+IGtvdXNlaXRvcmloaWtpaWlua2FpXCA7CivnqI7lvJXliY3lvZPmnJ/liKnnm4ogPiB6ZWliaWtpbWFldG91a2lyaWVraVwgOwor6YCj6YKm5Y+W5byV5aeU5ZOh5LyaID4gcmVucG91dG9yaWhpa2lpaW5rYWlcIDsKK+a1geihjOaAp+iAs+S4i+iFuueCjiA+IHJ5dXVrb3VzZWlqaWthc2VuJydlblwgOwor57eP55CG5bqc57eP5YuZ6ZW35a6YID4gc291cmlmdXNvdW11Y2hvdWthblwgOwor55Kw5aKD5L+d6K235Li7576p6ICFID4ga2Fua3lvdWhvZ29zaHVnaXNoYVwgOwor5pel5pys6Zm45LiK6Ieq6KGb6ZqKID4gbmlob25yaWt1am91amllaXRhaVwgOwor6YeR5Zyw6YeR5pys5L2N5Yi25bqmID4ga2luamlnYW5laG9uJydpc2VpZG9cIDsKK+mHjeimgeeEoeW9ouaWh+WMluiyoSA+IGp1dXlvdW11a2VpYnVua2F6YWlcIDsKK+e1jOa4iOekvuS8mueQhuS6i+S8miA+IGtlaXphaXNoYWthaXJpamlrYWlcIDsKK+S4u+iqnuWKqeWLleipnuWAkue9riA+IHNodWdvam9kb3VzaGl0b3VjaGlcIDsKK+WQiOWQjOaKgOihk+WnlOWToeS8miA+IGdvdWRvdWdpanV0c3VpaW5rYWlcIDsKK+iHquWLleaWueWQkeaOouefpeapnyA+IGppZG91aG91a291dGFuY2hpa2lcIDsKK+W4sOmChOS4jeiDvemZkOeVjOeCuSA+IGtpa2FuZnVub3VnZW5rYWl0ZW5cIDsKK+WbveWutuWFrOWuieWnlOWToemVtyA+IGtva2tha291YW4nJ2lpbmNob3VcIDsKK+WbveS8muWvvuetluWnlOWToeS8miA+IGtva2thaXRhaXNha3VpbmthaVwgOwor56ys5LqM5qyh5LiW55WM5aSn5oimID4gZGFpbmlqaXNla2FpdGFpc2VuXCA7CivkupznsbPliKnliqDlkIjooYblm70gPiBhbWVyaWthZ2Fzc2h1dWtva3VcIDsKK+aXpeacrOiIquepuuiHquihm+maiiA+IG5paG9ua291a3V1amllaXRhaVwgOwor56ym5Y+35YyW5paH5a2X6ZuG5ZCIID4gZnVnb3VrYW1vamlzaHV1Z291XCA7Civml6XmnKzmtbfkuIroh6rooZvpmoogPiBuaWhvbmthaWpvdWppZWl0YWlcIDsKK+S4i+S9jeevhOeWh+WMlue0oOaApyA+IGthaWhhbmNodXVrYXNvc2VpXCA7CivpgbjmjJnnrqHnkIblp5Tlk6HkvJogPiBzZW5reW9rYW5yaWlpbmthaVwgOwor5LiL5L2N56+E55aH5YyW5Y6f55CGID4ga2FpaGFuY2h1dWthZ2VucmlcIDsKK+iAs+m8u+WSveWWieWwgumWgOWMuyA+IGppYmlpbmtvdXNlbm1vbicnaVwgOwor6K2w6Zmi6YGL5Za25aeU5ZOh5LyaID4gZ2lpbicndW4nJ2VpaWlua2FpXCA7CivvvJLvvJDvvJDvvJDlubTllY/poYwgPiBuaXNlbicnbmVubW9uZGFpXCA7CivlrpfmlZnnmoTni6znq4vmgKcgPiBzaHV1a3lvdXRla2lkb2t1cml0c3VzZWlcIDsKK+ebtOaOpeeFp+a6luWwhOaSgyA+IGNob2t1c2V0c3VzaG91anVuc2hhZ2VraVwgOwor54m55q6K5Y+W5omx6YO15L6/ID4gdG9rdXNodXRvcmlhdHN1a2FpeXV1YmluXCA7Civkub7mub/nkIPmub/luqboqIggPiBrYW5zaGl0c3VreXV1c2hpdHN1ZG9rZWlcIDsKK+Wcp+WvhumZjeS8j+W/nOWKmyA+IGF0c3VtaXRzdWtvdWZ1a3VvdXJ5b2t1XCA7Civlhazoqo3ljbjlo7Lmpa3ogIUgPiBrb3VuaW4nJ29yb3NoaXVyaWd5b3VzaGFcIDsKK+aguOWIhuijgueUn+aIkOeJqSA+IGtha3VidW5yZXRzdXNlaXNlaWJ1dHN1XCA7Civogbfmpa3liKXpm7voqbHluLMgPiBzaG9rdWd5b3ViZXRzdWRlbndhY2hvdVwgOwor5YWl5a2m5YWx6YCa6Kmm6aiTID4gbnl1dWdha3VreW91dHN1dXNoaWtlblwgOwor5a6k5YaF566h5bym5qW95ZujID4gc2hpdHN1bmFpa2FuZ2VuZ2FrdWRhblwgOwor5p2x5Lqs5qCq5byP5biC5aC0ID4gdG91a3lvdWthYnVzaGlraXNoaWpvdVwgOwor56K6546H5a+G5bqm6Zai5pWwID4ga2FrdXJpdHN1bWl0c3Vkb2thbnN1dVwgOwor5Y6f5a2Q5Yqb55m66Zu75omAID4gZ2Vuc2hpcnlva3VoYXRzdWRlbnNob1wgOwor5Yun5ZaE5oey5oKq5bCP6KqsID4ga2FuemVuY2hvdWFrdXNob3VzZXRzdVwgOwor5p2t5ZGo6Z2i5pGp5pOm5YqbID4ga3Vpc2h1dW1lbm1hc2F0c3VyeW9rdVwgOwor6ZaT5o6l54Wn5rqW5bCE5pKDID4ga2Fuc2V0c3VzaG91anVuc2hhZ2VraVwgOwor5paw6KaP5qCq5byP5YWs6ZaLID4gc2hpbmtpa2FidXNoaWtpa291a2FpXCA7Civlrabnv5LmjIflsI7opoHpoJggPiBnYWt1c2h1dXNoaWRvdXlvdXJ5b3VcIDsKK+aXqeeZuuaAp+eXtOWRhueXhyA+IHNvdWhhdHN1c2VpY2hpaG91c2hvdVwgOwor5L+h55So5Y2U5ZCM57WE5ZCIID4gc2hpbicneW91a3lvdWRvdWt1bWlhaVwgOwor5bym5qW95Zub6YeN5aWP5puyID4gZ2VuZ2FrdXNoaWp1dXNvdWt5b2t1XCA7CivmvJTnubnnmoToqqzmmI7ms5UgPiBlbicnZWtpdGVraXNldHN1bWVpaG91XCA7Civmt7HlnKjmgKfnnJ/oj4znl4cgPiBzaGluemFpc2Vpc2hpbmtpbnNob3VcIDsKK+e1seeOh+adn+e4m+eQhuirliA+IHRvdXNvdHN1c29rdWJha3VyaXJvblwgOwor5pys5oWL5oCn6auY6KGA5ZynID4gaG9udGFpc2Vpa291a2V0c3VhdHN1XCA7CivpmbjkuIrnq6/lsYDoo4Xnva4gPiByaWt1am91dGFua3lva3Vzb3VjaGlcIDsKK+aXpeexs+iyv+aYk+aRqeaTpiA+IG5pY2hpYmVpYm91ZWtpbWFzYXRzdVwgOwor6YCa5ZWG55Sj5qWt5aSn6IejID4gdHN1dXNob3VzYW5neW91ZGFpamluXCA7CivpgJrllYboiKrmtbfmnaHntIQgPiB0c3V1c2hvdWtvdWthaWpvdXlha3VcIDsKK+i7n+WIpOWumuitmOWIpeWZqCA+IG5hbmhhbnRlaXNoaWtpYmV0c3VraVwgOwor56m65oOz56eR5a2m5bCP6KqsID4ga3V1c291a2FnYWt1c2hvdXNldHN1XCA7CivmlrDlhaXnpL7lk6HmlZnogrIgPiBzaGluJydueXV1c2hhaW5reW91aWt1XCA7CivmjqjlpajmlofnjK7nm67pjLIgPiBzdWlzaG91YnVua2VubW9rdXJva3VcIDsKK+W+s+W3neS4ieS7o+WutuWFiSA+IHRva3VnYXdhc2FuZGFpaWVtaXRzdVwgOwor55Sf5rS75Y2U5ZCM57WE5ZCIID4gc2Vpa2F0c3VreW91ZG91a3VtaWFpXCA7Civmlpnph5HliKXntI3pg7Xkvr8gPiByeW91a2luYmV0c3Vub3V5dXViaW5cIDsKK+S4rei3nembouaguOaIpuWKmyA+IGNodXVreW9yaWtha3VzZW5yeW9rdVwgOwor6L6y5qWt5Y2U5ZCM57WE5ZCIID4gbm91Z3lvdWt5b3Vkb3VrdW1pYWlcIDsKK+Wkp+mZuOaoquaWremJhOmBkyA+IHRhaXJpa3VvdWRhbnRldHN1ZG91XCA7Civpq5jliIblrZDlkLjlj47kvZMgPiBrb3VidW5zaGlreXV1c2h1dXRhaVwgOwor5pel57Gz5qeL6YCg5Y2U6K2wID4gbmljaGliZWlrb3V6b3VreW91Z2lcIDsKK+apn+aisOe/u+ios+WNlOS8miA+IGtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5Lit5aSu6KGM5pS/5a6Y5bqBID4gY2h1dW91Z3lvdXNlaWthbmNob3VcIDsKK+WMl+Wkp+ilv+a0i+adoee0hCA+IGtpdGF0YWlzZWl5b3Vqb3V5YWt1XCA7Civpm7vmsJfpgJrkv6HlpKflraYgPiBkZW5raXRzdXVzaGluZGFpZ2FrdVwgOwor6Iqz6aaZ5peP5YyW5ZCI54mpID4gaG91a291em9rdWthZ291YnV0c3VcIDsKK+WGhemWo+WumOaIv+mVt+WumCA+IG5haWtha3VrYW5ib3VjaG91a2FuXCA7CivlvKbmpb3kupTph43lpY/mm7IgPiBnZW5nYWt1Z29qdXVzb3VreW9rdVwgOwor5a6H5a6Z6ZaL55m66KiI55S7ID4gdWNodXVrYWloYXRzdWtlaWtha3VcIDsKK+exs+mAo+mCpuiIquepuuWxgCA+IGJlaXJlbnBvdWt1dWtvdWt5b2t1XCA7CivlpJblm73kurrnmbvpjLLms5UgPiBnYWlrb2t1amludG91cm9rdWhvdVwgOwor5YWx55Sj5YWa5pS/5rK75bGAID4ga3lvdXNhbnRvdXNlaWppa3lva3VcIDsKK+adn+e4m+e2meaJv+WOn+eQhiA+IHNva3ViYWt1a2Vpc2hvdWdlbnJpXCA7CivkuInou7jlnKfnuK7oqabpqJMgPiBzYW5qaWt1YXNzaHVrdXNoaWtlblwgOwor56m66LuN6YCj57Wh5bCG5qChID4ga3V1Z3VucmVucmFrdXNob3Vrb3VcIDsKK+WNuOWjsueJqeS+oeaMh+aVsCA+IG9yb3NoaXVyaWJ1a2thc2hpc3V1XCA7CivlhpnnnJ/liKTlrprmsbrli50gPiBzaGFzaGluaGFudGVpa2Vzc2hvdVwgOwor5YmN56uL6IW66IKl5aSn55eHID4gemVucml0c3VzZW5oaWRhaXNob3VcIDsKK+iqrOaYjueahOWmpeW9k+aApyA+IHNldHN1bWVpdGVraWRhdG91c2VpXCA7CivlhbHpgJrkuIDmrKHoqabpqJMgPiBreW91dHN1dWljaGlqaXNoaWtlblwgOwor56ys5LiJ56iu6YO15L6/54mpID4gZGFpc2Fuc2h1eXV1YmluYnV0c3VcIDsKK+WPi+WlvemAmuWVhuiIqua1tyA+IHl1dWtvdXRzdXVzaG91a291a2FpXCA7CivnhKHmi4Xkv53osrjku5jph5EgPiBtdXRhbnBva2FzaGl0c3VrZWtpblwgOwor5b+F6KaB5Y2B5YiG5p2h5Lu2ID4gaGl0c3V5b3VqdXVidW5qb3VrZW5cIDsKK+eyvuelnueahOaMh+WwjuiAhSA+IHNlaXNoaW50ZWtpc2hpZG91c2hhXCA7Civljp/lrZDniannkIblrabogIUgPiBnZW5zaGlidXRzdXJpZ2FrdXNoYVwgOwor57K+5a+G5qmf5qKw5bel5qWtID4gc2VpbWl0c3VraWthaWtvdWd5b3VcIDsKK+WGjeWFpeWbveioseWPr+abuCA+IHNhaW55dXVrb2t1a3lvdWthc2hvXCA7CivlrprlvaLlpJbpg7Xkvr/niakgPiB0ZWlrZWlnYWl5dXViaW5idXRzdVwgOwor6LaF5Lim5YiX6KiI566X5qmfID4gY2hvdWhlaXJldHN1a2Vpc2Fua2lcIDsKK+S4reaeouelnue1jOezu+e1sSA+IGNodXVzdXVzaGlua2Vpa2VpdG91XCA7CivkvJ3pgIHliLblvqHmi6HlvLUgPiBkZW5zb3VzZWlneW9rYWt1Y2hvdVwgOwor5pel5Lit5Y+L5aW95Y2U5LyaID4gbml0Y2h1dXl1dWtvdWt5b3VrYWlcIDsKK+WbveawkemHkeiejeWFrOW6qyA+IGtva3VtaW5raW4nJ3l1dWtvdWtvXCA7Civlj6PovrrljZjntJTnlrHnlrkgPiBrb3VoZW50YW5qdW5ob3VzaGluXCA7Civpm4blm6Plronlhajkv53pmpwgPiBzaHV1ZGFuJydhbnplbmhvc2hvdVwgOwor5ZCN56We6auY6YCf6YGT6LevID4gbWVpc2hpbmtvdXNva3Vkb3Vyb1wgOwor5pS+5bCE5oCn6ZmN5LiL54mpID4gaG91c2hhc2Vpa291a2FidXRzdVwgOwor5Yqj5oCn6YG65Lyd5b2i6LOqID4gcmVzc2VpaWRlbmtlaXNoaXRzdVwgOwor5Yid5pyf6YG45oqe6aCF55uuID4gc2hva2lzZW50YWt1a291bW9rdVwgOwor5YWo5Zu95rSl5rSl5rWm5rWmID4gemVua29rdXRzdXRzdXVyYXVyYVwgOwor5L+h5Lu757Wx5rK75Yi25bqmID4gc2hpbicnbmludG91Y2hpc2VpZG9cIDsKK+S4u+imgemDqOe1guerr+WeiyA+IHNodXlvdWJ1c2h1dXRhbmdhdGFcIDsKK+WQiOaIkOWMluWtpuW3pealrSA+IGdvdXNlaWthZ2FrdWtvdWd5b3VcIDsKK+WbveawkeS9k+iCsuWkp+S8miA+IGtva3VtaW50YWlpa3V0YWlrYWlcIDsKK+Wbvemam+mbu+S/oembu+ipsSA+IGtva3VzYWlkZW5zaGluZGVud2FcIDsKK+mbu+WtkOizh+mHkeaMr+abvyA+IGRlbnNoaXNoaWtpbmZ1cmlrYWVcIDsKK+W8pualveWbm+mHjeWlj+WboyA+IGdlbmdha3VzaGlqdXVzb3VkYW5cIDsKK+iIquepuuS6pOmAmueuoeWItiA+IGtvdWt1dWtvdXRzdXVrYW5zZWlcIDsKK+iyoeaUv+Wdh+ihoeioiOeUuyA+IHphaXNlaWtpbmtvdWtlaWtha3VcIDsKK+aXpeacrOimj+agvOWNlOS8miA+IG5pcHBvbmtpa2FrdWt5b3VrYWlcIDsKK+WLleeJqeaEm+itt+WNlOS8miA+IGRvdWJ1dHN1YWlnb2t5b3VrYWlcIDsKK+exs+iIquepuuWuh+WumeWxgCA+IGJlaWtvdWt1dXVjaHV1a3lva3VcIDsKK+WFqOWbvea0peOAhea1puOAhSA+IHplbmtva3V0c3V0c3V1cmF1cmFcIDsKK+aXpeacrOWtpuihk+S8muitsCA+IG5paG9uZ2FrdWp1dHN1a2FpZ2lcIDsKK+S6uumWk+eSsOWig+Wuo+iogCA+IG5pbmdlbmthbmt5b3VzZW5nZW5cIDsKK+WutuWuheaNnOe0ouS7pOeKtiA+IGthdGFrdXNvdXNha3VyZWlqb3VcIDsKK+WuieWcn+ahg+WxseaZguS7oyA+IGF6dWNoaW1vbW95YW1hamlkYWlcIDsKK+eUn+eQhueahOmjn+WhqeawtCA+IHNlaXJpdGVraXNob2t1ZW5zdWlcIDsKK+eSsOWkquW5s+a0i+iruOWbvSA+IGthbnRhaWhlaXlvdXNob2tva3VcIDsKK+eBq+WKm+aUr+aPtOioiOeUuyA+IGthcnlva3VzaGllbmtlaWtha3VcIDsKK+iRl+S9nOaoqeaJgOacieiAhSA+IGNob3Nha3VrZW5zaG95dXVzaGFcIDsKK+aVsOWtpueahOW4sOe0jeazlSA+IHN1dWdha3V0ZWtpa2lub3Vob3VcIDsKK+aXpeacrOWbveeJueioseW6gSA+IG5paG9ua29rdXRva2t5b2Nob3VcIDsKK+mjn+ezp+euoeeQhuWItuW6piA+IHNob2t1cnlvdWthbnJpc2VpZG9cIDsKK+eUn+eJqeWMluWtpuWFteWZqCA+IHNlaWJ1dHN1a2FnYWt1aGVpa2lcIDsKK+Wls+aoqeaLoeW8teirluiAhSA+IGpva2Vua2FrdWNob3Vyb25zaGFcIDsKK+e1seWQiOW5leWDmuS8muitsCA+IHRvdWdvdWJha3VyeW91a2FpZ2lcIDsKK+WwhOaSg+emgeatouWcsOWfnyA+IHNoYWdla2lraW5zaGljaGlpa2lcIDsKK+eJueWRveWFqOaoqeWFrOS9vyA+IHRva3VtZWl6ZW5rZW5rb3VzaGlcIDsKK+aWsOiBnuWAq+eQhue2semgmCA+IHNoaW5idW5yaW5yaWtvdXJ5b3VcIDsKK+iomOi/sOeahOWmpeW9k+aApyA+IGtpanV0c3V0ZWtpZGF0b3VzZWlcIDsKK+S4h+WbvemDteS+v+mAo+WQiCA+IGJhbmtva3V5dXViaW5yZW5nb3VcIDsKK+S9j+WuhemHkeiejeWFrOW6qyA+IGp1dXRha3VraW4nJ3l1dWtvdWtvXCA7CivljZjkvY3kvZPnqY3ph43ph48gPiB0YW4nJ2l0YWlzZWtpanV1cnlvdVwgOwor57Wx5LiA5Zyw5pa56YG45oyZID4gdG91aXRzdWNoaWhvdXNlbmt5b1wgOwor5YWs6ZaL5biC5aC05pS/562WID4ga291a2Fpc2hpam91c2Vpc2FrdVwgOwor5Zyw55CD6Kaz5ris6KGb5pifID4gY2hpa3l1dWthbnNva3VlaXNlaVwgOwor6YeN6YeP5ouz6ZeY6YG45omLID4ganV1cnlvdWtlbnRvdXNlbnNodVwgOwor5Lq65bel5rCX6IO455mC5rOVID4gamlua291a2lreW91cnlvdWhvdVwgOwor5Zyw5pa55YWs5YWx5Zuj5L2TID4gY2hpaG91a291a3lvdWRhbnRhaVwgOwor5omL5qC5566h55eH5YCZ576kID4gc2h1a29ua2Fuc2hvdWtvdWd1blwgOwor6auY5YiG5a2Q5YyW5ZCI54mpID4ga291YnVuc2hpa2Fnb3VidXRzdVwgOwor6Zm45LiK5L2c5oim5pys6YOoID4gcmlrdWpvdXNha3VzZW5ob25idVwgOwor5pS+5bCE5oCn5buD5qOE54mpID4gaG91c2hhc2VpaGFpa2lidXRzdVwgOwor6YCG6Lui5YiG5biD5L+C5pWwID4gZ3lha3V0ZW5idW5wdWtlaXN1dVwgOwor6JyY6Jub6Iac5LiL5Ye66KGAID4ga3Vtb21ha3VrYXNodWtrZXRzdVwgOwor5YWx5ZCM5pWR5riI5Z+66YeRID4ga3lvdWRvdWt5dXVzYWlraWtpblwgOwor5L+d6Zm66YeR5Y+X5Y+W5Lq6ID4gaG9rZW5raW4nJ3VrZXRvcmluaW5cIDsKK+mZuOi7jeWjq+WumOWtpuagoSA+IHJpa3VndW5zaGlrYW5nYWtrb3VcIDsKK+a8gealreWwgueuoeawtOWfnyA+IGd5b2d5b3VzZW5rYW5zdWlpa2lcIDsKK+iKuOihk+iHs+S4iuS4u+e+qSA+IGdlaWp1dHN1c2hpam91c2h1Z2lcIDsKK+eJueWRveWFqOaoqeWkp+S9vyA+IHRva3VtZWl6ZW5rZW50YWlzaGlcIDsKK+i/keaOpeiIquepuuaUr+aPtCA+IGtpbnNldHN1a291a3V1c2hpZW5cIDsKK+acieapn+awtOmKgOS4reavkiA+IHl1dWtpc3VpZ2luY2h1dWRva3VcIDsKK+eSsOWkquW5s+a0i+ani+aDsyA+IGthbnRhaWhlaXlvdWtvdXNvdVwgOwor5YWs55qE5LiN5rOV5aao5a6zID4ga291dGVraWZ1aG91Ym91Z2FpXCA7CivmiKbpl5jmlK/mj7ToqIjnlLsgPiBzZW50b3VzaGllbmtlaWtha3VcIDsKK+Wbnue3muWItuW+oeimj+WJhyA+IGthaXNlbnNlaWd5b2tpc29rdVwgOwor5riv5rm+6YGL6YCB5LqL5qWtID4ga291d2FuJyd1bnNvdWppZ3lvdVwgOwor6ZaA5oi46ZaL5pS+5pS/562WID4gbW9ua29rYWlob3VzZWlzYWt1XCA7CivmnbHlkI3pq5jpgJ/pgZPot68gPiB0b3VtZWlrb3Vzb2t1ZG91cm9cIDsKK+WGhemWo+e3j+eQhuWkp+iHoyA+IG5haWtha3Vzb3VyaWRhaWppblwgOwor5pel5pys5pS+6YCB5Y2U5LyaID4gbmlob25ob3Vzb3VreW91a2FpXCA7CivoiKrnqbrlroflrpnlt6Xmpa0gPiBrb3VrdXV1Y2h1dWtvdWd5b3VcIDsKK+WuieWFqOS/nemanOadoee0hCA+IGFuemVuaG9zaG91am91eWFrdVwgOwor5Li75YON5Zyf5Zyn5L+C5pWwID4gc2h1ZG91ZG9hdHN1a2Vpc3V1XCA7Civlj43lsITnmoTljYrpoIbluo8gPiBoYW5zaGF0ZWtpaGFuanVuam9cIDsKK+Wbvemam+mAmuiyqOWfuumHkSA+IGtva3VzYWl0c3V1a2FraWtpblwgOwor55+t5pyf6ZuG5Lit6Kyb5bqnID4gdGFua2lzaHV1Y2h1dWtvdXphXCA7Civml6XmnKzovrLmnpfopo/moLwgPiBuaWhvbicnbm91cmlua2lrYWt1XCA7CivoiKrnqbrlroflrpnnlKPmpa0gPiBrb3VrdXV1Y2h1dXNhbmd5b3VcIDsKK+WTgeizquS/neaMgeacn+mZkCA+IGhpbnNoaXRzdWhvamlraWdlblwgOwor5pel5pys5bel5qWt6KaP5qC8ID4gbmlob25rb3VneW91a2lrYWt1XCA7CivkuK3ot53pm6LmoLjlhbXlmaggPiBjaHV1a3lvcmlrYWt1aGVpa2lcIDsKK+mFuOWMlumChOWFg+WPjeW/nCA+IHNhbmtha2FuZ2VuaGFuJydub3VcIDsKK+WFrOWLmeWft+ihjOWmqOWusyA+IGtvdW11c2hpa2tvdWJvdWdhaVwgOwor6auY562J5bCC6ZaA5a2m5qChID4ga291dG91c2VubW9uZ2Fra291XCA7CivmranlhbXmiKbpl5jou4rkuKEgPiBob2hlaXNlbnRvdXNoYXJ5b3VcIDsKK+WFseWQjOiomOiAheS8muimiyA+IGt5b3Vkb3VraXNoYWthaWtlblwgOwor5aSq6Zm954ax5rip5rC05ZmoID4gdGFpeW91bmV0c3VvbnN1aWtpXCA7CivpnZnmraLlnJ/lnKfkv4LmlbAgPiBzZWlzaGlkb2F0c3VrZWlzdXVcIDsKK+S6uuWPo+WLleaFi+e1seioiCA+IGppbmtvdWRvdXRhaXRvdWtlaVwgOwor5Zu96YCj5LqL5YuZ57eP6ZW3ID4ga29rdXJlbmppbXVzb3VjaG91XCA7CivkuI3li5XnlKPlj5blvpfnqI4gPiBmdWRvdXNhbnNodXRva3V6ZWlcIDsKK+W5tOasoeaciee1puS8keaahyA+IG5lbmppeXV1a3l1dWt5dXVrYVwgOwor5Y2B5LqM5oyH6IW45r2w55iNID4ganV1bmlzaGljaG91a2FpeW91XCA7CivmiKbkuonniq/nvarms5Xlu7cgPiBzZW5zb3VoYW56YWlob3V0ZWlcIDsKK+W5tOWKn+W6j+WIl+WItuW6piA+IG5lbmtvdWpvcmV0c3VzZWlkb1wgOwor6L6y5p6X5rC055Sj5aSn6IejID4gbm91cmluc3Vpc2FuZGFpamluXCA7CivkuLvopoHpg6jlhYjlsI7lnosgPiBzaHV5b3VidXNlbmRvdWdhdGFcIDsKK+WbveawkeWBpeW6t+S/nemZuiA+IGtva3VtaW5rZW5rb3Vob2tlblwgOwor5LiN5a6a6KiI6YeP56m66ZaTID4gZnV0ZWlrZWlyeW91a3V1a2FuXCA7Civlj43luJ3lm73kuLvnvqnogIUgPiBoYW50ZWlrb2t1c2h1Z2lzaGFcIDsKK+mbu+iNt+e1kOWQiOe0oOWtkCA+IGRlbmtha2V0c3Vnb3Vzb3NoaVwgOwor5pyJ6ZmQ54q25oWL5paH5rOVID4geXV1Z2Vuam91dGFpYnVucG91XCA7Civkv67mraPos4fmnKzkuLvnvqkgPiBzaHV1c2Vpc2hpaG9uc2h1Z2lcIDsKK+S4gOWNteaAp+WPjOeUn+WFkCA+IGljaGlyYW5zZWlzb3VzZWlqaVwgOwor5Zyw5Lit5rW35oCn5rCX5YCZID4gY2hpY2h1dWthaXNlaWtpa291XCA7CivmipXos4fmnInkvqHoqLzliLggPiB0b3VzaGl5dXVrYXNob3VrZW5cIDsKK+WJjeaWueWGjeijnOe1pueCuSA+IHplbnBvdXNhaWhva3l1dXRlblwgOwor56uL5oay5ZCb5Li75pS/5L2TID4gcmlra2Vua3Vuc2h1c2VpdGFpXCA7CivmlL7pgIHnpoHmraLnlKjoqp4gPiBob3Vzb3VraW5zaGl5b3Vnb1wgOwor5Y2B5LiA6Z2i6Kaz5LiW6Z+zID4ganV1aWNoaW1lbmthbnplb25cIDsKK+W9oueKtuiomOaGtuWQiOmHkSA+IGtlaWpvdWtpb2t1Z291a2luXCA7CivooYzli5XnmbrotbfmmYLliLsgPiBrb3Vkb3VoYWtraWppa29rdVwgOwor5Y2B6YOo6ZaA5YiG6aGe5rOVID4ganV1YnVtb25idW5ydWlob3VcIDsKK+S4lueVjOS4gOWRqOaXheihjCA+IHNla2FpaXNzaHV1cnlva291XCA7CivkuJbnlYzkurrmqKnlrqPoqIAgPiBzZWthaWppbmtlbnNlbmdlblwgOwor5YWs55qE5Yy755mC5qmf6ZaiID4ga291dGVraWlyeW91a2lrYW5cIDsKK+WPl+WDjeWcn+Wcp+S/guaVsCA+IGp1ZG91ZG9hdHN1a2Vpc3V1XCA7CivkuI3norrlrprmgKfljp/nkIYgPiBmdWtha3V0ZWlzZWlnZW5yaVwgOwor5LqM562J6L665LiJ6KeS5b2iID4gbml0b3VoZW5zYW5rYWtrZWlcIDsKK+aUv+S7pOaMh+WumumDveW4giA+IHNlaXJlaXNoaXRlaXRvc2hpXCA7CivnhKHmi4Xkv53lgJ/lhaXph5EgPiBtdXRhbnBva2FyaWlyZWtpblwgOwor5Y2Y5L2N5Yq05YON57WE5ZCIID4gdGFuJydpcm91ZG91a3VtaWFpXCA7CivkuK3lpK7lh6bnkIboo4Xnva4gPiBjaHV1b3VzaG9yaXNvdWNoaVwgOwor5qyn5bee6YCa6LKo5Y2Y5L2NID4gb3VzaHV1dHN1dWthdGFuJydpXCA7Civoh6rnlLHosr/mmJPluK/ln58gPiBqaXl1dWJvdWVraXRhaWlraVwgOwor5oGL5oSb6Iez5LiK5Li7576pID4gcmVuJydhaXNoaWpvdXNodWdpXCA7Civoh6rli5Xou4rkv53pmbrmlpkgPiBqaWRvdXNoYWhva2VucnlvdVwgOwor5oim5aC06Iiq56m66Zi75q2iID4gc2Vuam91a291a3V1c29zaGlcIDsKK+e1seWQiOWPguisgOacrOmDqCA+IHRvdWdvdXNhbmJvdWhvbmJ1XCA7CivmnIDplbfkuI3lgJLot53pm6IgPiBzYWljaG91ZnV0b3VreW9yaVwgOwor5Y2w6LGh5Li7576p6Z+z5qW9ID4gaW5zaG91c2h1Z2lvbmdha3VcIDsKK+i/keS7o+S6lOeoruertuaKgCA+IGtpbmRhaWdvc2h1a3lvdWdpXCA7CivlvozmlrnlnLDln5/orablgpkgPiBrb3Vob3VjaGlpa2lrZWliaVwgOwor6Ieq5YuV5pON57im6KOF572uID4gamlkb3Vzb3VqdXVzb3VjaGlcIDsKK+mDveW4guWvvuaKl+mHjueQgyA+IHRvc2hpdGFpa291eWFreXV1XCA7Civph5HliZvlpJzlj4nlppnnjosgPiBrb25nb3V5YXNoYW15b3VvdVwgOwor6auY6YCf5ryU566X5qmf5qeLID4ga291c29rdWVuemFua2lrb3VcIDsKK+mjm+ihjOemgeatouepuuWfnyA+IGhpa291a2luc2hpa3V1aWtpXCA7CivnkrDlooPkv53orbfoq5bogIUgPiBrYW5reW91aG9nb3JvbnNoYVwgOwor6YCx6ZaT5aSp5rCX5LqI5aCxID4gc2h1dWthbnRlbmtpeW9ob3VcIDsKK+aUvuWwhOe3muaEn+WPl+aApyA+IGhvdXNoYXNlbmthbmp1c2VpXCA7CivnpL7kvJrmsJHkuLvkuLvnvqkgPiBzaGFrYWltaW5zaHVzaHVnaVwgOwor6YOo5YiG5oOF5aCx5qeL6YCgID4gYnVidW5qb3Vob3Vrb3V6b3VcIDsKK+S4gOaMmeaJi+S4gOaKlei2syA+IGlra3lvc2h1aXR0b3Vzb2t1XCA7CivmnInlvaLlm7rlrpros4fnlKMgPiB5dXVrZWlrb3RlaXNoaXNhblwgOwor6aOb6KGM6KiY6Yyy6KOF572uID4gaGlrb3VraXJva3Vzb3VjaGlcIDsKK+iiq+aLheS/neWCteaoqemhjSA+IGhpdGFucG9zYWlrZW5nYWt1XCA7CivkuozkuqTmm7/liLblirTlg40gPiBuaWtvdXRhaXNlaXJvdWRvdVwgOwor5L+d5a6I57O754Sh5omA5bGeID4gaG9zaHVrZWltdXNob3pva3VcIDsKK+WPjei7ouWIhuW4g+S/guaVsCA+IGhhbnRlbmJ1bnB1a2Vpc3V1XCA7CivnqbrmjLrpmY3kuIvlnLDln58gPiBrdXV0ZWlrb3VrYWNoaWlraVwgOwor54Gr5Yqb5pSv5o+06YOo6ZqKID4ga2FyeW9rdXNoaWVuYnV0YWlcIDsKK+atjOiInuS8juWNgeWFq+eVqiA+IGthYnVraWp1dWhhY2hpYmFuXCA7CivlpKfph4/noLTlo4rlhbXlmaggPiB0YWlyeW91aGFrYWloZWlraVwgOwor5Y+N5bCE5L+C5pWw57ea5ZuzID4gaGFuc2hha2Vpc3V1c2VuenVcIDsKK+e0oOeykuWtkOWKoOmAn+WZqCA+IHNvcnl1dXNoaWthc29rdWtpXCA7Civoh6rnlLHosr/mmJPlnLDln58gPiBqaXl1dWJvdWVraWNoaWlraVwgOwor5YWs6ZaL5biC5aC05pON5L2cID4ga291a2Fpc2hpam91c291c2FcIDsKK+S6uui6q+S/neitt+S7pOeKtiA+IGppbnNoaW5ob2dvcmVpam91XCA7Civmr43lrZDlgaXlurfmiYvluLMgPiBib3NoaWtlbmtvdXRlY2hvdVwgOwor5Y6a55Sf5bm06YeR5L+d6Zm6ID4ga291c2VpbmVua2luaG9rZW5cIDsKK+aAp+ihjOeCuuaEn+afk+eXhyA+IHNlaWtvdWlrYW5zZW5zaG91XCA7CivnlJ/lkb3kv53pmbrkvJrnpL4gPiBzZWltZWlob2tlbmdhaXNoYVwgOwor56eB5pyJ6LKh55Sj5Yi25bqmID4gc2hpeXV1emFpc2Fuc2VpZG9cIDsKK+S4gOWbveS4gOWFmuS4u+e+qSA+IGlra29rdWl0dG91c2h1Z2lcIDsKK+aXpeacrOmBk+i3r+WFrOWboyA+IG5paG9uZG91cm9rb3VkYW5cIDsKK+Wun+i3teeQhuaAp+aJueWIpCA+IGppc3NlbnJpc2VpaGloYW5cIDsKK+WkmumHjeWQjeWJjeepuumWkyA+IHRhanV1bmFtYWVrdXVrYW5cIDsKK+W5s+WSjOe2reaMgea0u+WLlSA+IGhlaXdhaWppa2F0c3Vkb3VcIDsKK+S6jOWNteaAp+WPjOeUn+WFkCA+IG5pcmFuc2Vpc291c2VpamlcIDsKK+S4u+i+nue0oOaAp+imj+e0hCA+IHNodWppc29zZWlraXlha3VcIDsKK+Wls+aAp+ino+aUvumBi+WLlSA+IGpvc2Vpa2FpaG91dW5kb3VcIDsKK+eCremFuOWQjOWMluS9nOeUqCA+IHRhbnNhbmRvdWthc2F5b3VcIDsKK+S6jOWkp+aUv+WFmuS4u+e+qSA+IG5pZGFpc2VpdG91c2h1Z2lcIDsKK+S4jee0lOeVsOaAp+S6pOmBiiA+IGZ1anVuJydpc2Vpa291eXV1XCA7Civpqqjnmq7nrYvlj7PooZvploAgPiBob25la2F3YXN1amllbW9uXCA7CivmtYXplpPlsbHojZjkuovku7YgPiBhc2FtYXNhbnNvdWppa2VuXCA7CivnkrDlooPkv53orbfkuLvnvqkgPiBrYW5reW91aG9nb3NodWdpXCA7CivkuJbnlYzosr/mmJPmqZ/plqIgPiBzZWthaWJvdWVraWtpa2FuXCA7CivnhKHlvaLlm7rlrpros4fnlKMgPiBtdWtlaWtvdGVpc2hpc2FuXCA7Civpn7Plo7DlpJrph43mlL7pgIEgPiBvbnNlaXRhanV1aG91c291XCA7CivohLPmgKflsI/lhZDpurvnl7ogPiBub3VzZWlzaG91bmltYWhpXCA7CivlpKfmnbHkupzlhbHmoITlnI8gPiBkYWl0b3Vha3lvdWVpa2VuXCA7CivlsI/lo7LniankvqHmjIfmlbAgPiBrb3VyaWJ1a2thc2hpc3V1XCA7Civoh6rnlLHkuLvnvqnntYzmuIggPiBqaXl1dXNodWdpa2VpemFpXCA7CivlpJzplpPpoJDph5HjgIXluqsgPiB5YWthbicneW9raW5raW5rb1wgOwor6YCj6YKm5rqW5YKZ5Yi25bqmID4gcmVucG91anVuYmlzZWlkb1wgOwor6LaF6YGO5Yuk5YuZ5omL5b2TID4gY2hvdWtha2lubXV0ZWF0ZVwgOwor5LqI5YKZ5aOr5a6Y5a2m5qChID4geW9iaXNoaWthbmdha2tvdVwgOwor55S75YOP5Yem55CG6KOF572uID4gZ2F6b3VzaG9yaXNvdWNoaVwgOwor5YWt5Y2B5Zub5YiG6Z+z56ymID4gcm9rdWp1dXNoaWJ1b25wdVwgOwor5pS+5bCE5oCn5ZCM5L2N5L2TID4gaG91c2hhc2VpZG91aXRhaVwgOwor5aSc6ZaT6aCQ6YeR6YeR5bqrID4geWFrYW4nJ3lva2lua2lua29cIDsKK+S6nOeGseW4r+mrmOawl+WcpyA+IGFuZXR0YWlrb3VraWF0c3VcIDsKK+ejgeawl+WFsemztOeUu+WDjyA+IGppa2lreW91bWVpZ2F6b3VcIDsKK+mzpeeNo+S/neitt+WMuuWfnyA+IGNob3VqdXVob2dva3Vpa2lcIDsKK+Wbvemam+aPtOWKqeapn+mWoiA+IGtva3VzYWllbmpva2lrYW5cIDsKK+eEoeaUv+W6nOS4u+e+qeiAhSA+IG11c2VpZnVzaHVnaXNoYVwgOwor5LiW55WM5L+d5YGl5qmf6ZaiID4gc2VrYWlob2tlbmtpa2FuXCA7CivkuozljYHlm5vmmYLplpPliLYgPiBuaWp1dXlvamlrYW5zZWlcIDsKK+eci+itt+WppumkiuaIkOaJgCA+IGthbmdvZnV5b3VzZWlqb1wgOwor5LiN5b2T5Yq05YON6KGM54K6ID4gZnV0b3Vyb3Vkb3Vrb3VpXCA7Civoi6bmg4Xlh6bnkIbmqZ/plqIgPiBrdWpvdXNob3Jpa2lrYW5cIDsKK+ijnOWKqeiomOaGtuijhee9riA+IGhvam9raW9rdXNvdWNoaVwgOwor5paH5a2X5aSa6YeN5pS+6YCBID4gbW9qaXRhanV1aG91c291XCA7CivljLvluKvlm73lrrboqabpqJMgPiBpc2hpa29ra2FzaGlrZW5cIDsKK+iCouS9k+S4jeiHqueUseWFkCA+IHNoaXRhaWZ1aml5dXVqaVwgOwor5Luu5ZCN5ryi5a2X5aSJ5o+bID4ga2FuYWthbmppaGVua2FuXCA7Civlm73lrrblhazli5nlk6Hms5UgPiBrb2trYWtvdW11aW5ob3VcIDsKK+aEj+W/l+axuuWumuapn+mWoiA+IGlzaGlrZXR0ZWlraWthblwgOwor5Li76L6e57Sg5oCn5Y6f55CGID4gc2h1amlzb3NlaWdlbnJpXCA7CivlvIHorbflo6vkuovli5nmiYAgPiBiZW5nb3NoaWppbXVzaG9cIDsKK+iHqueUseS4u+e+qeWbveWutiA+IGppeXV1c2h1Z2lrb2trYVwgOwor55Sf5ZG957at5oyB6KOF572uID4gc2VpbWVpaWppc291Y2hpXCA7CivmloflrZfnrKblj7fljJbms5UgPiBtb2ppZnVnb3VrYWhvdVwgOwor5Y2X54Sh6Zi/5byl6ZmA5LuPID4gbmFtdWFtaWRhYnV0c3VcIDsKK+iqnuW9meapn+iDveaWh+azlSA+IGdvaWtpbm91YnVucG91XCA7CivlgLbmoqjkvL3nvoXntIvntIsgPiBrdXJpa2FyYW1vbm1vblwgOwor5LiJ5Y2B5LqM5YiG6Z+z56ymID4gc2FuanV1bmlidW9ucHVcIDsKK+aIkeWIqeaIkeWIqeS6oeiAhSA+IGdhcmlnYXJpbW91amFcIDsKK+WuiOenmOe+qeWLmemBleWPjSA+IHNodWhpZ2ltdWloYW5cIDsKK+aYr+aYr+mdnumdnuS4u+e+qSA+IHplemVoaWhpc2h1Z2lcIDsKK+eDj+iKu+aymeaRqeWmmeeOiyA+IHVzdXNhbWFteW91b3VcIDsKK+S7o+ihqOWPlue3oOW9uSA+IGRhaWh5b3V0b3Jpc2hpbWFyaXlha3VcIDsKK+WPluaJseiqrOaYjuabuCA+IHRvcmlhdHN1a2Fpc2V0c3VtZWlzaG9cIDsKK+Wbveeri+WNmueJqemkqCA+IGtva3VyaXRzdWhha3VidXRzdWthblwgOwor6ZuG5Lit5rK755mC5a6kID4gc2h1dWNodXVjaGlyeW91c2hpdHN1XCA7Civnm7TovYTmpI3msJHlnLAgPiBjaG9ra2F0c3VzaG9rdW1pbmNoaVwgOwor5pyo6YCg5bu656+J54mpID4gbW9rdXpvdWtlbmNoaWt1YnV0c3VcIDsKK+akjeeJqeaAp+ibi+eZvSA+IHNob2t1YnV0c3VzZWl0YW5wYWt1XCA7Civkv6HnlKjlj5blvJXlhYggPiBzaGluJyd5b3V0b3JpaGlraXNha2lcIDsKK+W4uOWLmeWPlue3oOW9uSA+IGpvdW11dG9yaXNoaW1hcml5YWt1XCA7CivkuIPmmJ/lpKnpgZPomasgPiBuYW5haG9zaGl0ZW50b3VtdXNoaVwgOwor5rCR5peP5aSn6JmQ5q66ID4gbWluem9rdWRhaWd5YWt1c2F0c3VcIDsKK+i2iuW5tOeUn+akjeeJqSA+IGV0c3VuZW5zZWlzaG9rdWJ1dHN1XCA7Civmp4vmiJDntKDntbHlvqEgPiBrb3VzZWlzb2tvdXpvdXRvdWd5b1wgOwor55u05o6l55uu55qE6KqeID4gY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+WwguWLmeWPlue3oOW9uSA+IHNlbm11dG9yaXNoaW1hcml5YWt1XCA7CivkuIDlubTnlJ/mpI3niakgPiBpY2hpbmVuc2Vpc2hva3VidXRzdVwgOwor6bq76Jas5Y+W57eg54+tID4gbWF5YWt1dG9yaXNoaW1hcmloYW5cIDsKK+m6u+iWrOWPlue3oOazlSA+IG1heWFrdXRvcmlzaGltYXJpaG91XCA7CivkuK3lv4PnmoTlvbnlibIgPiBjaHV1c2hpbnRla2l5YWt1d2FyaVwgOwor5Y+O57iu5pyf6KGA5ZynID4gc2h1dXNodWt1a2lrZXRzdWF0c3VcIDsKK+WNmOWtkOiRieakjeeJqSA+IHRhbnNoaXlvdXNob2t1YnV0c3VcIDsKK+mAo+eri+aWueeoi+W8jyA+IHJlbnJpdHN1aG91dGVpc2hpa2lcIDsKK+mAmuWVhueUo+alreecgSA+IHRzdXVzaG91c2FuZ3lvdXNob3VcIDsKK+WOn+WtkOWKm+eZuumbuyA+IGdlbnNoaXJ5b2t1aGF0c3VkZW5cIDsKK+ebtOaOpeawkeS4u+WItiA+IGNob2t1c2V0c3VtaW5zaHVzZWlcIDsKK+mAsuWHuuWItumZkOe3miA+IHNoaW5zaHV0c3VzZWlnZW5zZW5cIDsKK+agquW8j+WPluW8leaJgCA+IGthYnVzaGlraXRvcmloaWtpam9cIDsKK+ebtOaOpeaVmeaOiOazlSA+IGNob2t1c2V0c3VreW91anVob3VcIDsKK+WPjOWtkOiRieakjeeJqSA+IHNvdXNoaXlvdXNob2t1YnV0c3VcIDsKK+iKpeW3nem+jeS5i+S7iyA+IGFrdXRhZ2F3YXJ5dXVub3N1a2VcIDsKK+iyuOWAn+WvvueFp+ihqCA+IHRhaXNoYWt1dGFpc2hvdWh5b3VcIDsKK+WFrOWumuWJsuW8leeOhyA+IGtvdXRlaXdhcmliaWtpcml0c3VcIDsKK+W8t+i/q+elnue1jOeXhyA+IGt5b3VoYWt1c2hpbmtlaXNob3VcIDsKK+WVhualreS/oeeUqOeKtiA+IHNob3VneW91c2hpbicneW91am91XCA7CivovLjlh7rkv6HnlKjnirYgPiB5dXNodXRzdXNoaW4nJ3lvdWpvdVwgOwor5pen5paw57SE5YWo5pu4ID4ga3l1dXNoaW4nJ3lha3V6ZW5zaG9cIDsKK+WHuuWFpeWbveeuoeeQhiA+IHNodXRzdW55dXVrb2t1a2FucmlcIDsKK+manOWus+eJqeertui1sCA+IHNob3VnYWlidXRzdWt5b3Vzb3VcIDsKK+aYvOWFieiJsumbu+eQgyA+IGNodXVrb3VzaG9rdWRlbmt5dXVcIDsKK+WkqeeEtuiJsuWGmeecnyA+IHRlbicnbmVuc2hva3VzaGFzaGluXCA7CivmsLTlipvnmbrpm7vmiYAgPiBzdWlyeW9rdWhhdHN1ZGVuc2hvXCA7CivntKDlh7rlipvmnaHku7YgPiBzb3NodXRzdXJ5b2t1am91a2VuXCA7Civlm73msJHnt4/mlK/lh7ogPiBrb2t1bWluc291c2hpc2h1dHN1XCA7CivmpI3nianmgKfohILogqogPiBzaG9rdWJ1dHN1c2Vpc2hpYm91XCA7Civml6fmlrDntITogZbmm7ggPiBreXV1c2hpbicneWFrdXNlaXNob1wgOwor6ZW35pyf6LK45LuY6YeRID4gY2hvdWtpa2FzaGl0c3VrZWtpblwgOwor55Sf54mp54mp55CG5a2mID4gc2VpYnV0c3VidXRzdXJpZ2FrdVwgOwor5bmz5a6254mp6Kqe5oqEID4gaGVpa2Vtb25vZ2F0YXJpc2hvdVwgOwor6Kaz5a+f55qE56CU56m2ID4ga2Fuc2F0c3V0ZWtpa2Vua3l1dVwgOwor6LOD6LK45YCf5aWR57SEID4gY2hpbnRhaXNoYWt1a2VpeWFrdVwgOwor5b6z5bed5YWs54i16YK4ID4gdG9rdWdhd2Frb3VzaGFrdXRlaVwgOwor57K+56We5YiG6KOC55eHID4gc2Vpc2hpbmJ1bnJldHN1c2hvdVwgOwor5aSq6Zm954ax55m66Zu7ID4gdGFpeW91bmV0c3VoYXRzdWRlblwgOwor5rW35aSW55WZ5a2m54axID4ga2FpZ2Fpcnl1dWdha3VuZXRzdVwgOwor5aaK5aig5Lit5q+S55eHID4gbmluc2hpbmNodXVkb2t1c2hvdVwgOwor54us56uL5o6h566X5Yi2ID4gZG9rdXJpdHN1c2Fpc2Fuc2VpXCA7CivluILloLTljaDmnInnjocgPiBzaGlqb3VzZW4nJ3l1dXJpdHN1XCA7CivoppbogbTopprmlZnmnZAgPiBzaGljaG91a2FrdWt5b3V6YWlcIDsKK+WGhemWo+azleWItuWxgCA+IG5haWtha3Vob3VzZWlreW9rdVwgOwor5Lit5bCP5LyB5qWt5bqBID4gY2h1dXNob3VraWd5b3VjaG91XCA7Civmm7jnsKHkvZPlsI/oqqwgPiBzaG9rYW50YWlzaG91c2V0c3VcIDsKK+ekvuS8mueUn+eJqeWtpiA+IHNoYWthaXNlaWJ1dHN1Z2FrdVwgOwor6LuN6ZqK6KGM6YCy5puyID4gZ3VudGFpa291c2hpbmt5b2t1XCA7CivokazpgIHooYzpgLLmm7IgPiBzb3Vzb3Vrb3VzaGlua3lva3VcIDsKK+eJqeeQhueahOePvuixoSA+IGJ1dHN1cml0ZWtpZ2Vuc2hvdVwgOwor5b+D6IeT5byB6Iac55eHID4gc2hpbnpvdWJlbm1ha3VzaG91XCA7Civohp3ok4vohbHlj43lsIQgPiBzaGl0c3VnYWlrZW5oYW5zaGFcIDsKK+S/uOe1pueUn+a0u+iAhSA+IGhvdWt5dXVzZWlrYXRzdXNoYVwgOwor55Sf54mp5oOF5aCx5a2mID4gc2VpYnV0c3Vqb3Vob3VnYWt1XCA7CivlpJrlubTnlJ/mpI3niakgPiB0YW5lbnNlaXNob2t1YnV0c3VcIDsKK+mHj+WtkOeJqeeQhuWtpiA+IHJ5b3VzaGlidXRzdXJpZ2FrdVwgOwor5YyX57Gz5ZCI6KGG5Zu9ID4gaG9rdWJlaWdhc3NodXVrb2t1XCA7CivmnaXlrqLoirPlkI3pjLIgPiByYWlreWFrdWhvdW1laXJva3VcIDsKK+WcsOaWueaknOWvn+W6gSA+IGNoaWhvdWtlbnNhdHN1Y2hvdVwgOwor5bCC6ZaA55qE55+l6K2YID4gc2VubW9udGVraWNoaXNoaWtpXCA7CivntZDlqZrooYzpgLLmm7IgPiBrZWtrb25rb3VzaGlua3lva3VcIDsKK+agquW8j+mFjeW9k+mHkSA+IGthYnVzaGlraWhhaXRvdWtpblwgOwor54m55Yil6YWN5b2T6YeRID4gdG9rdWJldHN1aGFpdG91a2luXCA7CivntYzmuIjmiJDplbfnjocgPiBrZWl6YWlzZWljaG91cml0c3VcIDsKK+eUo+alreWIpee1hOWQiCA+IHNhbmd5b3ViZXRzdWt1bWlhaVwgOwor5YSq562J5Y2S5qWt55SfID4geXV1dG91c290c3VneW91c2VpXCA7CivlhaXlm73nrqHnkIblsYAgPiBueXV1a29rdWthbnJpa3lva3VcIDsKK+mWk+aOpeaSruW9seazlSA+IGthbnNldHN1c2F0c3VlaWhvdVwgOwor5a6f54mp5aSn5qih5Z6LID4gaml0c3VidXRzdWRhaW1va2VpXCA7Civou43kuovnmoTkvrXnlaUgPiBndW5qaXRla2lzaGlucnlha3VcIDsKK+epjeWIhuaWueeoi+W8jyA+IHNla2lidW5ob3V0ZWlzaGlraVwgOwor56mN566X6Zu75Yqb6KiIID4gc2VraXNhbmRlbnJ5b2t1a2VpXCA7CivkuozlubTnlJ/mpI3niakgPiBuaW5lbnNlaXNob2t1YnV0c3VcIDsKK+WNg+S5neeZvuW5tOS7oyA+IHNlbmt5dXVoeWFrdW5lbmRhaVwgOwor56eR5a2m5Y2a54mp6aSoID4ga2FnYWt1aGFrdWJ1dHN1a2FuXCA7CivkuK3lm73lhbHnlKPlhZogPiBjaHV1Z29rdWt5b3VzYW50b3VcIDsKK+mrmOWIhuWtkOeJqeizqiA+IGtvdWJ1bnNoaWJ1c3NoaXRzdVwgOwor55m66YGU5b+D55CG5a2mID4gaGF0dGF0c3VzaGlucmlnYWt1XCA7Civnsr7npZ7oloTlvLHogIUgPiBzZWlzaGluaGFrdWpha3VzaGFcIDsKK+eJueWIpeihjOaUv+WMuiA+IHRva3ViZXRzdWd5b3VzZWlrdVwgOwor5LiJ6Imy5Y2w5Yi35rOVID4gc2Fuc2hva3VpbnNhdHN1aG91XCA7CivmjpLljbXoqpjnmbrliaQgPiBoYWlyYW4nJ3l1dWhhdHN1emFpXCA7CivnlJ/mtLvlv4XpnIDlk4EgPiBzZWlrYXRzdWhpdHN1anVoaW5cIDsKK+WwkeW5tOmRkeWIpeaJgCA+IHNob3VuZW5rYW5iZXRzdXNob1wgOwor5bqn6aqo56We57WM55ebID4gemFrb3RzdXNoaW5rZWl0c3V1XCA7CivmpI3msJHlnLDmlL/nrZYgPiBzaG9rdW1pbmNoaXNlaXNha3VcIDsKK+iovOWIuOWPluW8leazlSA+IHNob3VrZW50b3JpaGlraWhvdVwgOwor5ZWG5ZOB5Zue6Lui546HID4gc2hvdWhpbmthaXRlbnJpdHN1XCA7Civnr4DotrPli5XnianploAgPiBzZXNzb2t1ZG91YnV0c3Vtb25cIDsKK+ioiOeul+eUn+eJqeWtpiA+IGtlaXNhbnNlaWJ1dHN1Z2FrdVwgOwor5bCx6IG35oOF5aCx6KqMID4gc2h1dXNob2t1am91aG91c2hpXCA7Civlu7roqK3nmoTplqLkv4IgPiBrZW5zZXRzdXRla2lrYW5rZWlcIDsKK+WuouWupOS5l+WLmeWToSA+IGt5YWt1c2hpdHN1am91bXVpblwgOwor5pSv5oyB5Yqb5a6a5byPID4gc2hpamlyeW9rdXRlaXNoaWtpXCA7Civli5XnianooYzli5XlraYgPiBkb3VidXRzdWtvdWRvdWdha3VcIDsKK+iBt+iDveS7o+ihqOWItiA+IHNob2t1bm91ZGFpaHlvdXNlaVwgOwor5pyA6auY5qSc5a+f5bqBID4gc2Fpa291a2Vuc2F0c3VjaG91XCA7Civlv4PnpZ7ogJflvLHogIUgPiBzaGluc2hpbm1vdWpha3VzaGFcIDsKK+eEoeiEiuakjuWLleeJqSA+IG11c2VraXRzdWlkb3VidXRzdVwgOwor5a625a6F5L615YWl572qID4ga2F0YWt1c2hpbicnbnl1dXphaVwgOwor5YiG5a2Q55Sf54mp5a2mID4gYnVuc2hpc2VpYnV0c3VnYWt1XCA7CivlpKnkvZPlhpnnnJ/ooZMgPiB0ZW50YWlzaGFzaGluanV0c3VcIDsKK+enmOWvhua8j+a0qee9qiA+IGhpbWl0c3Vyb3VzZXRzdXphaVwgOwor6ZaT5o6l55uu55qE6KqeID4ga2Fuc2V0c3Vtb2t1dGVraWdvXCA7CivnspjmtrLliIbms4zohbogPiBuZW4nJ2VraWJ1bnBpdHN1c2VuXCA7CivnnqzplpPmjqXnnYDliaQgPiBzaHVua2Fuc2V0Y2hha3V6YWlcIDsKK+S6uuWPo+WvhumbhueOhyA+IGppbmtvdW1pc3NodXVyaXRzdVwgOwor5Y6f6Imy5YaZ55yf54mIID4gZ2Vuc2hva3VzaGFzaGluYmFuXCA7Civph4/lrZDoibLlipvlraYgPiByeW91c2hpaXJvcmlraWdha3VcIDsKK+WcqOaXpeexs+mZuOi7jSA+IHphaW5pY2hpYmVpcmlrdWd1blwgOwor6aOf5ZOB5re75Yqg54mpID4gc2hva3VoaW50ZW5rYWJ1dHN1XCA7Civli5XnianmgKfom4vnmb0gPiBkb3VidXRzdXNlaXRhbnBha3VcIDsKK+eJueWumumDteS+v+WxgCA+IHRva3V0ZWl5dXViaW5reW9rdVwgOwor54Gr5Yqb55m66Zu75omAID4ga2FyeW9rdWhhdHN1ZGVuc2hvXCA7CivlpJrop5LlvI/ovrLmpa0gPiB0YWtha3VzaGlraW5vdWd5b3VcIDsKK+awuOS4luS4reeri+WbvSA+IGVpc2VpY2h1dXJpdHN1a29rdVwgOwor5ZSv54mp5byB6Ki85rOVID4geXVpYnV0c3ViZW5zaG91aG91XCA7Civlj7LnmoTllK/nianoq5YgPiBzaGl0ZWtpeXVpYnV0c3Vyb25cIDsKK+Wuo+iqk+S+m+i/sOabuCA+IHNlbnNlaWt5b3VqdXRzdXNob1wgOwor54ax6Iao5by15L+C5pWwID4gbmV0c3Vib3VjaG91a2Vpc3V1XCA7CivmpI3nianmgKfnuYrntq0gPiBzaG9rdWJ1dHN1c2Vpc2VuJydpXCA7CivpgY7lpLHlgrflrrPnvaogPiBrYXNoaXRzdXNob3VnYWl6YWlcIDsKK+WFseWQjOWJteioreiAhSA+IGt5b3Vkb3Vzb3VzZXRzdXNoYVwgOwor5LiK57Sa5Ymv56S+6ZW3ID4gam91a3l1dWZ1a3VzaGFjaG91XCA7CivmiKbnlaXnmoTmj5DmkLogPiBzZW5yeWFrdXRla2l0ZWlrZWlcIDsKK+eSsOWig+W6gemVt+WumCA+IGthbmt5b3VjaG91Y2hvdWthblwgOwor5Zyn5Yqb6Kq/5pW05ZmoID4gYXRzdXJ5b2t1Y2hvdXNlaWtpXCA7CivnlJ/prq7po5/mlpnlk4EgPiBzZWlzZW5zaG9rdXJ5b3VoaW5cIDsKK+aUvuWwhOaAp+eJqeizqiA+IGhvdXNoYXNlaWJ1c3NoaXRzdVwgOwor5Zyw55CD54mp55CG5a2mID4gY2hpa3l1dWJ1dHN1cmlnYWt1XCA7Civlj43lrpfmlZnmlLnpnakgPiBoYW5zaHV1a3lvdWthaWtha3VcIDsKK+WtpuitmOe1jOmok+iAhSA+IGdha3VzaGlraWtlaWtlbnNoYVwgOwor6LWk6Z2i5oGQ5oCW55eHID4gc2VraW1lbmt5b3VmdXNob3VcIDsKK+mjn+WTgeihm+eUn+azlSA+IHNob2t1aGluJydlaXNlaWhvdVwgOwor5pWZ6IG35ZOh57WE5ZCIID4ga3lvdXNob2t1aW5rdW1pYWlcIDsKK+avm+ayouadseS4u+W4rSA+IG1vdXRha3V0b3VzaHVzZWtpXCA7CivliKXpgJTnqY3nq4vph5EgPiBiZXR0b3RzdW1pdGF0ZWtpblwgOwor6L+U5L+h5paZ6JGJ5pu4ID4gaGVuc2hpbnJ5b3VoYWdha2lcIDsKK+iruOi7iumAmuihjOatoiA+IHNob3NoYXRzdXVrb3Vkb21lXCA7Civlm73lnJ/luoHplbflrpggPiBrb2t1ZG9jaG91Y2hvdWthblwgOwor5Yun5ZaE5oey5oKq5YqHID4ga2FuemVuY2hvdWFrdWdla2lcIDsKK+WMu+WtpueUn+eJqeWtpiA+IGlnYWt1c2VpYnV0c3VnYWt1XCA7CivpnZ7mqJnmupbmi6HlvLUgPiBoaWh5b3VqdW5rYWt1Y2hvdVwgOwor5aSq6Zm95YWJ55m66Zu7ID4gdGFpeW91a291aGF0c3VkZW5cIDsKK+i/lOS/oeeUqOiRieabuCA+IGhlbnNoaW4nJ3lvdWhhZ2FraVwgOwor55yf54+g6aSK5q6W5aC0ID4gc2hpbmp1eW91c2hva3Vqb3VcIDsKK+iCi+mWk+elnue1jOeXmyA+IHJva2thbnNoaW5rZWl0c3V1XCA7CivmtbfmtIvniannkIblraYgPiBrYWl5b3VidXRzdXJpZ2FrdVwgOwor57K+56We55qE6Ium55ebID4gc2Vpc2hpbnRla2lrdXRzdXVcIDsKK+S6pOa1geeZuumbu+apnyA+IGtvdXJ5dXVoYXRzdWRlbmtpXCA7Civni6nnjJ/mjqHpm4bmsJEgPiBzaHVyeW91c2Fpc2h1dW1pblwgOwor5oim6ZeY5q2j6Z2i5bmFID4gc2VudG91c2hvdW1lbmhhYmFcIDsKK+S4jeS/oeS7u+aKleelqCA+IGZ1c2hpbicnbmludG91aHlvdVwgOwor6YCB6YeR5Y+X5Y+W5Lq6ID4gc291a2luJyd1a2V0b3JpbmluXCA7CivvvKTvvLLvvLPnkIboq5YgPiBkaVwgzIRhXCDMhHJ1ZXN1cmlyb25cIDsKK+mjn+ezp+euoeeQhuazlSA+IHNob2t1cnlvdWthbnJpaG91XCA7Civnm7Lohbjngo7miYvooZMgPiBtb3VjaG91ZW5zaHVqdXRzdVwgOwor56ys5LiA57Sa5q665Lq6ID4gZGFpaWtreXV1c2F0c3VqaW5cIDsKK+aIpueVpeaguOWFteWZqCA+IHNlbnJ5YWt1a2FrdWhlaWtpXCA7Civlh43ntZDpmLLmraLliaQgPiB0b3VrZXRzdWJvdXNoaXphaVwgOwor5Lit6ZaT6YWN5b2T6aGNID4gY2h1dWthbmhhaXRvdWdha3VcIDsKK+mrmOmAn+Wil+aulueCiSA+IGtvdXNva3V6b3VzaG9rdXJvXCA7Civov5Tkv6HmlpnlsIHnrZIgPiBoZW5zaGlucnlvdWZ1dXRvdVwgOwor6KGb5pif5Zyw55CD5bGAID4gZWlzZWljaGlreXV1a3lva3VcIDsKK+WcqOeVmeWkluWbveS6uiA+IHphaXJ5dXVnYWlrb2t1amluXCA7CivnlKPmpa3lu4Pmo4TniakgPiBzYW5neW91aGFpa2lidXRzdVwgOwor5aSp54S26KiY5b+154mpID4gdGVuJyduZW5raW5lbmJ1dHN1XCA7Civlh7rnlJ/oqLzmmI7mm7ggPiBzaHVzc2Vpc2hvdW1laXNob1wgOwor5LiK57Sa566h55CG6IG3ID4gam91a3l1dWthbnJpc2hva3VcIDsKK+eojumWoueUs+WRiuabuCA+IHplaWthbnNoaW5rb2t1c2hvXCA7Civov5Tkv6HnlKjlsIHnrZIgPiBoZW5zaGluJyd5b3VmdXV0b3VcIDsKK+eGseeLgueahOS/oeiAhSA+IG5la2t5b3V0ZWtpc2hpbmphXCA7CivkvIHmpa3plpPkv6HnlKggPiBraWd5b3VrYW5zaGluJyd5b3VcIDsKK+mWi+aLk+iAheeyvuelniA+IGthaXRha3VzaGFzZWlzaGluXCA7Civmt7HlnKjmgKfnnJ/oj4wgPiBzaGluemFpc2Vpc2hpbmtpblwgOwor5p2R6JC95YWx5ZCM5L2TID4gc29ucmFrdWt5b3Vkb3V0YWlcIDsKK+S4iumZuOeUqOiIn+iJhyA+IGpvdXJpa3V5b3VzaHV1dGVpXCA7Civlj6TnlJ/nianlrabogIUgPiBrb3NlaWJ1dHN1Z2FrdXNoYVwgOwor6ZaL55m66YCU5LiK5Zu9ID4ga2FpaGF0c3V0b2pvdWtva3VcIDsKK+ihgOWcp+mZjeS4i+WJpCA+IGtldHN1YXRzdWtvdWthemFpXCA7CivnhKHlt67liKXniIbmkoMgPiBtdXNhYmV0c3ViYWt1Z2VraVwgOwor5bmz5ZKM55qE6Kej5rG6ID4gaGVpd2F0ZWtpa2Fpc2V0c3VcIDsKK+mjn+WTgeWKoOW3pealrSA+IHNob2t1aGlua2Frb3VneW91XCA7Civpq5jntJrkvY/lroXlnLAgPiBrb3VreXV1anV1dGFrdWNoaVwgOwor6YGO5aSx6Ie05q27572qID4ga2FzaGl0c3VjaGlzaGl6YWlcIDsKK+mrmOmhjeaJgOW+l+iAhSA+IGtvdWdha3VzaG90b2t1c2hhXCA7CivljYHkuIDpnaLoprPpn7MgPiBqdXVpY2hpbWVua2FuJydub25cIDsKK+aciOe1jOWbsOmbo+eXhyA+IGdla2tlaWtvbicnbmFuc2hvdVwgOwor5Zu96Zqb6KaL5pys5biCID4ga29rdXNhaW1paG9uJydpY2hpXCA7Civnt5HlnLDljJboqIjnlLsgPiByeW9rdWNoaWtha2Vpa2FrdVwgOwor5Lit5p6i56We57WM57O7ID4gY2h1dXN1dXNoaW5rZWlrZWlcIDsKK+Wun+mok+eahOeglOeptiA+IGppa2tlbnRla2lrZW5reXV1XCA7CivlsILnlKjpp5Dou4rloLQgPiBzZW4nJ3lvdWNodXVzaGFqb3VcIDsKK+eEoemBjuWkseiyrOS7uyA+IG11a2FzaGl0c3VzZWtpbmluXCA7CivkuIDmrKHmlrnnqIvlvI8gPiBpY2hpamlob3V0ZWlzaGlraVwgOwor5bCx5qWt5pmC6ZaT5LitID4gc2h1dWd5b3VqaWthbmNodXVcIDsKK+WbveawkeS8keaah+adkSA+IGtva3VtaW5reXV1a2FtdXJhXCA7CivlrZDlrq7lpJblporlqKAgPiBzaGlreXV1Z2Fpbmluc2hpblwgOwor54Sh5ouF5L+d6LK45LuYID4gbXV0YW5wb2thc2hpdHN1a2VcIDsKK+S4gOeykuWtkOaXoue0hCA+IGljaGlyeXV1c2hpa2l5YWt1XCA7CivkvIHmpa3liKXntYTlkIggPiBraWd5b3ViZXRzdWt1bWlhaVwgOwor5LiN5rOV5L615YWl6ICFID4gZnVob3VzaGluJydueXV1c2hhXCA7Civlj47nqavmhJ/orJ3npa0gPiBzaHV1a2FrdWthbnNoYXNhaVwgOwor5oyH5ZCR5oCn54iG6JasID4gc2hpa291c2VpYmFrdXlha3VcIDsKK+W/g+WboOaAp+WPjeW/nCA+IHNoaW4nJ2luc2VpaGFuJydub3VcIDsKK+S6nOeGseW4r+akjeeJqSA+IGFuZXR0YWlzaG9rdWJ1dHN1XCA7CivlhoXplqPnt4/ovp7ogbcgPiBuYWlrYWt1c291amlzaG9rdVwgOwor6Ki85Yi45Y+W5byV5omAID4gc2hvdWtlbnRvcmloaWtpam9cIDsKK+WxiOaKmOacm+mBoOmPoSA+IGt1c3NldHN1Ym91ZW5reW91XCA7Civmra/niZnnn6/mraPooZMgPiBzaGlnYWt5b3VzZWlqdXRzdVwgOwor5Y2Y57Sw6IOe55Sf54mpID4gdGFuc2FpYm91c2VpYnV0c3VcIDsKK+aXpeacrOiWrOWxgOaWuSA+IG5paG9uJyd5YWtreW9rdWhvdVwgOwor5rex5bGk5b+D55CG5a2mID4gc2hpbnNvdXNoaW5yaWdha3VcIDsKK+eyvuelnuiWhOW8seWFkCA+IHNlaXNoaW5oYWt1amFrdWppXCA7CivljJblrabmlrnnqIvlvI8gPiBrYWdha3Vob3V0ZWlzaGlraVwgOwor5oCl6ZmN5LiL54iG5pKDID4ga3l1dWtvdWthYmFrdWdla2lcIDsKK+awtOS4iueUn+a0u+iAhSA+IHN1aWpvdXNlaWthdHN1c2hhXCA7CivlnKjlraboqLzmmI7mm7ggPiB6YWlnYWt1c2hvdW1laXNob1wgOwor5qSN5rCR5Zyw57Wx5rK7ID4gc2hva3VtaW5jaGl0b3VjaGlcIDsKK+mWouaVsOaWueeoi+W8jyA+IGthbnN1dWhvdXRlaXNoaWtpXCA7CivmjqjpgLLnoJTnqbbmiYAgPiBzdWlzaGlua2Vua3l1dXNob1wgOwor5oim6KGT5qC45YW15ZmoID4gc2VuanV0c3VrYWt1aGVpa2lcIDsKK+eZuuWxleeahOino+a2iCA+IGhhdHRlbnRla2lrYWlzaG91XCA7Civlm73nq4vlm7Pmm7jppKggPiBrb2t1cml0c3V0b3Nob2thblwgOwor5LiJ6KGM5bqD5ZGK5qyEID4gc2FuZ3lvdWtvdWtva3VyYW5cIDsKK+WLp+alreWNmuimp+S8miA+IGthbmd5b3VoYWt1cmFua2FpXCA7CivliIbmnpDlv4PnkIblraYgPiBidW5zZWtpc2hpbnJpZ2FrdVwgOwor5pWZ6IKy5b+D55CG5a2mID4ga3lvdWlrdXNoaW5yaWdha3VcIDsKK+alreWLmeS4iumBjuWksSA+IGd5b3VtdWpvdWthc2hpdHN1XCA7CivmiJDnuL7oqLzmmI7mm7ggPiBzZWlzZWtpc2hvdW1laXNob1wgOwor5YWl5a2m5b+X6aGY6ICFID4gbnl1dWdha3VzaGlnYW5zaGFcIDsKK+S4reWkruaUvumAgeWxgCA+IGNodXVvdWhvdXNvdWt5b2t1XCA7CivlhbHlkIznm7jntprkurogPiBreW91ZG91c291em9rdW5pblwgOwor56CU56m255m66KGo5LyaID4ga2Vua3l1dWhhcHB5b3VrYWlcIDsKK+WkqeS9k+WIhuWFieihkyA+IHRlbnRhaWJ1bmtvdWp1dHN1XCA7CivnkIPpnaLkuInop5Lms5UgPiBreXV1bWVuc2Fua2FrdWhvdVwgOwor6KiI6YeP57WM5riI5a2mID4ga2VpcnlvdWtlaXphaWdha3VcIDsKK+iRl+S9nOaoqeS+teWusyA+IGNob3Nha3VrZW5zaGluZ2FpXCA7CivnibnliKXlvIHorbfkurogPiB0b2t1YmV0c3ViZW5nb25pblwgOwor5a+M5Zu95by35YW1562WID4gZnVrb2t1a3lvdWhlaXNha3VcIDsKK+S6iOaDs+WPjuepq+mrmCA+IHlvc291c2h1dWtha3VkYWthXCA7CivooYDlj4vnl4XmgqPogIUgPiBrZXRzdXl1dWJ5b3VrYW5qYVwgOwor55u06KeS5LiJ6KeS5b2iID4gY2hva2tha3VzYW5rYWtrZWlcIDsKK+mXh+S+oeagvOWNlOWumiA+IHlhbWlrYWtha3VreW91dGVpXCA7CivotaTlpJbnt5rlhpnnnJ8gPiBzZWtpZ2Fpc2Vuc2hhc2hpblwgOwor5aSp55qH5qmf6Zai6KqsID4gdGVuJydub3VraWthbnNldHN1XCA7CivlhazoqLzkurrlvbnloLQgPiBrb3VzaG91bmluJyd5YWt1YmFcIDsKK+i2heePvuWun+S4u+e+qSA+IGNob3VnZW5qaXRzdXNodWdpXCA7CivkuozmpbXnnJ/nqbrnrqEgPiBuaWt5b2t1c2hpbmt1dWthblwgOwor6Ziq56We5aSn6ZyH54G9ID4gaGFuc2hpbmRhaXNoaW5zYWlcIDsKK+azleWumuW+l+elqOaVsCA+IGhvdXRlaXRva3VoeW91c3V1XCA7CivoqK3nq4votqPmhI/mm7ggPiBzZXRzdXJpdHN1c2h1aXNob1wgOwor5aSW5Zu95Lq655m76YyyID4gZ2Fpa29rdWppbnRvdXJva3VcIDsKK+i6q+S9k+manOWus+iAhSA+IHNoaW50YWlzaG91Z2Fpc2hhXCA7CivmtojosrvogIXkv6HnlKggPiBzaG91aGlzaGFzaGluJyd5b3VcIDsKK+mIjeinkuS4ieinkuW9oiA+IGRvbmtha3VzYW5rYWt1a2VpXCA7Civmtbfpm6Plr6nliKTluoEgPiBrYWluYW5zaGlucGFuY2hvdVwgOwor54qv572q55m655Sf546HID4gaGFuemFpaGFzc2Vpcml0c3VcIDsKK+W+rueUn+eJqeWtpuiAhSA+IGJpc2VpYnV0c3VnYWt1c2hhXCA7CivkuIPoibLllJDovpvlrZAgPiBuYW5haXJvdG91Z2FyYXNoaVwgOwor5YWs6IG36YG45oyZ5rOVID4ga291c2hva3VzZW5reW9ob3VcIDsKK+WumuW9oumDteS+v+eJqSA+IHRlaWtlaXl1dWJpbmJ1dHN1XCA7Civlr77kuK3lm73plqLkv4IgPiB0YWljaHV1Z29rdWthbmtlaVwgOwor56eR5a2m5oqA6KGT5bqBID4ga2FnYWt1Z2lqdXRzdWNob3VcIDsKK+Wkp+iLseWNmueJqemkqCA+IGRhaWVpaGFrdWJ1dHN1a2FuXCA7Civli5XohIjnoazljJbnl4cgPiBkb3VteWFrdWtvdWthc2hvdVwgOwor5bid546L56We5qip6KqsID4gdGVpb3VzaGlua2Vuc2V0c3VcIDsKK+Wuh+WumeWkp+eIhueZuiA+IHVjaHV1ZGFpYmFrdWhhdHN1XCA7Civpppbnm7jlhbzlpJbnm7ggPiBzaHVzaG91a2VuZ2Fpc2hvdVwgOwor55Sf54mp5Zyw55CG5a2mID4gc2VpYnV0c3VjaGlyaWdha3VcIDsKK+WOn+WtkOeJqeeQhuWtpiA+IGdlbnNoaWJ1dHN1cmlnYWt1XCA7CivnlaXlj5boqpjmi5DnvaogPiByeWFrdXNodXl1dWthaXphaVwgOwor5aSp5L2T54mp55CG5a2mID4gdGVudGFpYnV0c3VyaWdha3VcIDsKK+mZjeWcp+WkieWcp+WZqCA+IGtvdWF0c3VoZW4nJ2F0c3VraVwgOwor5p2x5Y2w5bqm5Lya56S+ID4gaGlnYXNoaWluZG9nYWlzaGFcIDsKK+eJqeizquS4u+e+qeiAhSA+IGJ1c3NoaXRzdXNodWdpc2hhXCA7Civlm73pmpvnmoTosr/mmJMgPiBrb2t1c2FpdGVraWJvdWVraVwgOwor5Lit5oCn5a2Q54iG5by+ID4gY2h1dXNlaXNoaWJha3VkYW5cIDsKK+S7o+aVsOaWueeoi+W8jyA+IGRhaXN1dWhvdXRlaXNoaWtpXCA7CivlubPlnYflpKrpmb3ml6UgPiBoZWlraW50YWl5b3VqaXRzdVwgOwor5Lmz5YWQ5q275Lqh546HID4gbnl1dWppc2hpYm91cml0c3VcIDsKK+S4h+WbveWNmuimp+S8miA+IGJhbmtva3VoYWt1cmFua2FpXCA7CivpmLLooZvmlr3oqK3luoEgPiBib3VlaXNoaXNldHN1Y2hvdVwgOwor5pyJ5paZ6aeQ6LuK5aC0ID4geXV1cnlvdWNodXVzaGFqb3VcIDsKK+iHqOW6iuW/g+eQhuWtpiA+IHJpbnNob3VzaGlucmlnYWt1XCA7CivlhpnnnJ/pgLHliIroqowgPiBzaGFzaGluc2h1dWthbnNoaVwgOwor5beo55+z6KiY5b+154mpID4ga3lvc2VraWtpbmVuYnV0c3VcIDsKK+S6jOWFg+aWueeoi+W8jyA+IG5pZ2VuaG91dGVpc2hpa2lcIDsKK+mBk+e+qeeahOiyrOS7uyA+IGRvdWdpdGVraXNla2luaW5cIDsKK+eNheWtkOWUkOi+m+WtkCA+IHNoaXNoaXRvdWdhcmFzaGlcIDsKK+awl+ixoeims+a4rOiIuSA+IGtpc2hvdWthbnNva3VzZW5cIDsKK+S6uueMv+WQjOelluiqrCA+IGppbicnZW5kb3Vzb3NldHN1XCA7Civlm6PkvZPkuqTmuInmqKkgPiBkYW50YWlrb3VzaG91a2VuXCA7Civlr77kurrmgZDmgJbnl4cgPiB0YWlqaW5reW91ZnVzaG91XCA7CivohLPohIrpq4Tohpzngo4gPiBub3VzZWtpenVpbWFrdWVuXCA7CivopoHms6jmhI/kurrniakgPiB5b3VjaHV1aWppbmJ1dHN1XCA7CivlrabmoKHmlZnogrLms5UgPiBnYWtrb3VreW91aWt1aG91XCA7CivnjovmqKnnpZ7mjojoqqwgPiBvdWtlbnNoaW5qdXNldHN1XCA7CivnnJ/pg6jliIbpm4blkIggPiBzaGluYnVidW5zaHV1Z291XCA7Civni6zljaDnpoHmraLms5UgPiBkb2t1c2Vua2luc2hpaG91XCA7CivlsYXplpPlhbzlr53lrqQgPiBpbWFrZW5zaGluc2hpdHN1XCA7Civlhaznp7Dos4fmnKzph5EgPiBrb3VzaG91c2hpaG9ua2luXCA7Civpm7vli5Xnmbrli5XmqZ8gPiBkZW5kb3VoYXRzdWRvdWtpXCA7Civlv5znlKjniannkIblraYgPiBvdXlvdWJ1dHN1cmlnYWt1XCA7CivkuInljYHlhavluqbnt5ogPiBzYW5qdXVoYWNoaWRvc2VuXCA7Civoqo3nn6Xlv4PnkIblraYgPiBuaW5jaGlzaGlucmlnYWt1XCA7Civlt6Xmpa3miYDmnInmqKkgPiBrb3VneW91c2hveXV1a2VuXCA7CivlpJrlpInph4/op6PmnpAgPiB0YWhlbnJ5b3VrYWlzZWtpXCA7CivmuIXmtrzpo7LmlpnmsLQgPiBzZWlyeW91aW5yeW91c3VpXCA7Civph5HliKnnlJ/mtLvogIUgPiBraW5yaXNlaWthdHN1c2hhXCA7CivpgbroqIDln7fooYzogIUgPiB5dWlnb25zaGlra291c2hhXCA7Civosr/mmJPlpJblj47mlK8gPiBib3Vla2lnYWlzaHV1c2hpXCA7Civmn5PoibLkvZPlnLDlm7MgPiBzZW5zaG9rdXRhaWNoaXp1XCA7CivkuLvluK3noJTnqbblk6EgPiBzaHVzZWtpa2Vua3l1dWluXCA7Civpq5jpgJ/luqblhpnnnJ8gPiBrb3Vzb2t1ZG9zaGFzaGluXCA7Civpq5jmrKHmlrnnqIvlvI8gPiBrb3VqaWhvdXRlaXNoaWtpXCA7Civlvq7liIbmlrnnqIvlvI8gPiBiaWJ1bmhvdXRlaXNoaWtpXCA7Civpg7Xkvr/np4Hmm7jnrrEgPiB5dXViaW5zaGlzaG9iYWtvXCA7CivmlpzmoLzmgKfntbHlvqEgPiBzaGFrYWt1c2VpdG91Z3lvXCA7CivntYzlj6Ppgb/lporolqwgPiBrZWlrb3VoaW5pbicneWFrdVwgOwor5Lq65p2Q6ZaL55m66YOoID4gamluemFpa2FpaGF0c3VidVwgOwor5LiH5Zu95qiZ5rqW5pmCID4gYmFua29rdWh5b3VqdW5qaVwgOwor6Ziy6KGb5bqB6ZW35a6YID4gYm91ZWljaG91Y2hvdWthblwgOwor5ZCr5rC05YyW5ZCI54mpID4gZ2Fuc3Vpa2Fnb3VidXRzdVwgOwor6Zai5p2x5aSn6ZyH54G9ID4ga2FudG91ZGFpc2hpbnNhaVwgOwor6KOF55Sy5Zue5Y+O6LuKID4gc291a291a2Fpc2h1dXNoYVwgOwor5Zyw5pa56KGM6LKh5pS/ID4gY2hpaG91Z3lvdXphaXNlaVwgOwor5oCn6KGo54++5oOF5aCxID4gc2VpaHlvdWdlbmpvdWhvdVwgOwor5biM5pyb55qE6Kaz5risID4ga2lib3V0ZWtpa2Fuc29rdVwgOwor5Y+N5bCE5rib6KGw6YePID4gaGFuc2hhZ2Vuc3VpcnlvdVwgOwor5aSJ5oWL5b+D55CG5a2mID4gaGVudGFpc2hpbnJpZ2FrdVwgOwor5qyn5bee5YWx5ZCM5L2TID4gb3VzaHV1a3lvdWRvdXRhaVwgOwor57Sr5aSW57ea55mC5rOVID4gc2hpZ2Fpc2VucnlvdWhvdVwgOwor6Z2e5q2m6KOF5Lit56uLID4gaGlidXNvdWNodXVyaXRzdVwgOwor5Li75bit5aSW5Lqk5a6YID4gc2h1c2VraWdhaWtvdWthblwgOwor57Sw6IOe6LOq6YG65LydID4gc2FpYm91c2hpdHN1aWRlblwgOwor5YWx55Sj5YWa5a6j6KiAID4ga3lvdXNhbnRvdXNlbmdlblwgOwor5beh5Zue6Ki655mC5omAID4ganVua2Fpc2hpbnJ5b3Vqb1wgOwor5rqQ5rOJ5omA5b6X56iOID4gZ2Vuc2Vuc2hvdG9rdXplaVwgOwor57WE6IG35Yq05YON6ICFID4gc29zaG9rdXJvdWRvdXNoYVwgOwor5Yq05YON6ICF6ZqO57SaID4gcm91ZG91c2hha2Fpa3l1dVwgOwor5ouh5aSn5YaN55Sf55SjID4ga2FrdWRhaXNhaXNlaXNhblwgOwor5LiK57Sa6KOB5Yik5omAID4gam91a3l1dXNhaWJhbnNob1wgOwor56aB5qyy5Li7576p6ICFID4ga2luJyd5b2t1c2h1Z2lzaGFcIDsKK+eJueauiua9nOiIquiJhyA+IHRva3VzaHVzZW5rb3V0ZWlcIDsKK+acgOaBteWbveW+hemBhyA+IHNhaWtlaWtva3V0YWlndXVcIDsKK+WFseeUo+S4u+e+qeWbvSA+IGt5b3VzYW5zaHVnaWtva3VcIDsKK+WOn+WRiuWvvuiiq+WRiiA+IGdlbmtva3V0YWloaWtva3VcIDsKK+WPl+iol+WPjuizhOe9qiA+IGp1dGFrdXNodXV3YWl6YWlcIDsKK+a1geihjOaAp+aEn+WGkiA+IHJ5dXVrb3VzZWlrYW5ib3VcIDsKK+Wbveawkee3j+eUn+eUoyA+IGtva3VtaW5zb3VzZWlzYW5cIDsKK+S4rei3nembouertui1sCA+IGNodXVreW9yaWt5b3Vzb3VcIDsKK+WFqOWbveeahOevhOWbsiA+IHplbmtva3V0ZWtpaGFuJydpXCA7CivpgKPpgqblhbHlkozlm70gPiByZW5wb3VreW91d2Frb2t1XCA7Civmma7pgY3nmoTms5XliYcgPiBmdWhlbnRla2lob3Vzb2t1XCA7CivlpKfntbHpoJjpgbjmjJkgPiBkYWl0b3VyeW91c2Vua3lvXCA7Civml6XnjLblkIznpZboq5YgPiBuaWNoaXl1dWRvdXNvcm9uXCA7CivkuKHmm7/miYvmlbDmlpkgPiByeW91Z2FldGVzdXVyeW91XCA7Civos4fmnKzliKnnm4rnjocgPiBzaGlob25yaWVraXJpdHN1XCA7CivmiKbou4rmj5rpmbjoiaYgPiBzZW5zaGF5b3VyaWt1a2FuXCA7Civlo7LmmKXpmLLmraLms5UgPiBiYWlzaHVuYm91c2hpaG91XCA7CivlhYnljJblrablj43lv5wgPiBrb3VrYWdha3VoYW4nJ25vdVwgOwor6LuN5LqL5b2T5bGA6ICFID4gZ3Vuaml0b3VreW9rdXNoYVwgOwor6IKJ5L2T5Yq05YON6ICFID4gbmlrdXRhaXJvdWRvdXNoYVwgOwor6Ieq5Li75rWB6YCa57GzID4gamlzaHVyeXV1dHN1dW1haVwgOwor56ys5LiA5qyh55Sj5qWtID4gZGFpaWNoaWppc2FuZ3lvdVwgOwor5a6f5a2Y5Li7576p6ICFID4gaml0c3V6b25zaHVnaXNoYVwgOwor54++5a6f5Li7576p6ICFID4gZ2Vuaml0c3VzaHVnaXNoYVwgOwor5Y+N5pS/5bqc5Yui5YqbID4gaGFuc2VpZnVzZWlyeW9rdVwgOwor5YWN55ar5LiN5YWo55eHID4gbWVuJydla2lmdXplbnNob3VcIDsKK+WNgemAsuWIhumhnuazlSA+IGppc3NoaW5idW5ydWlob3VcIDsKK+WBtuWDj+aVmeW+kueahCA+IGd1dXpvdWt5b3V0b3Rla2lcIDsKK+e0heeZveatjOWQiOaIpiA+IGtvdWhha3V1dGFnYXNzZW5cIDsKK+e1jOa4iOeglOeptuaJgCA+IGtlaXphaWtlbmt5dXVzaG9cIDsKK+i7jeS6i+mAmuS/oeWToSA+IGd1bmppdHN1dXNoaW4nJ2luXCA7Civln7rmupblhoXos4Pph5EgPiBraWp1bicnbmFpY2hpbmdpblwgOwor55yM5bqB5omA5Zyo5ZywID4ga2VuY2hvdXNob3phaWNoaVwgOwor55yf5a6X5aSn6LC35rS+ID4gc2hpbnNodXVvb3RhbmloYVwgOwor5YaN5YWl5Zu96Kix5Y+vID4gc2Fpbnl1dWtva3VreW9rYVwgOwor6Iux5Zu95Zu95pWZ5LyaID4gZWlrb2t1a29ra3lvdWthaVwgOwor5riF5pWZ5b6S6Z2p5ZG9ID4gc2Vpa3lvdXRva2FrdW1laVwgOwor5aSq6Zm956We57WM5Y+iID4gdGFpeW91c2hpbmtlaXNvdVwgOwor57WM5Za25a2m5L+u5aOrID4ga2VpZWlnYWt1c2h1dXNoaVwgOwor5YGl5bq36Ki85piO5pu4ID4ga2Vua291c2hvdW1laXNob1wgOwor56S+5Lya5b+D55CG5a2mID4gc2hha2Fpc2hpbnJpZ2FrdVwgOwor5YWs5YWx5LyB5qWt5L2TID4ga291a3lvdWtpZ3lvdXRhaVwgOwor6YO95biC5YaN6ZaL55m6ID4gdG9zaGlzYWlrYWloYXRzdVwgOwor5pS+5bCE57ea55mC5rOVID4gaG91c2hhc2VucnlvdWhvdVwgOwor5Zu96YCj5YiG5ouF6YeRID4ga29rdXJlbmJ1bnRhbmtpblwgOwor5a6a5pyf5YiK6KGM54mpID4gdGVpa2lrYW5rb3VidXRzdVwgOwor5pS75pKD6ZaL5aeL57eaID4ga291Z2VraWthaXNoaXNlblwgOwor5bmz6Z2i5LiJ6KeS5rOVID4gaGVpbWVuc2Fua2FrdWhvdVwgOwor5rOV5a6a5Lyd5p+T55eFID4gaG91dGVpZGVuc2VuYnlvdVwgOwor5Lit6Led6Zui56u25LqJID4gY2h1dWt5b3Jpa3lvdXNvdVwgOwor5LiJ5Y+J56We57WM55ebID4gc2Fuc2FzaGlua2VpdHN1dVwgOwor5YSq5Yud5rG65a6a5oimID4geXV1c2hvdWtldHRlaXNlblwgOwor5pyA5L2O55Sf5rS76LK7ID4gc2FpdGVpc2Vpa2F0c3VoaVwgOwor5bqc55yM5Yil5Lq65Y+jID4gZnVrZW5iZXRzdWppbmtvdVwgOwor5o6o5a6a55u457aa5Lq6ID4gc3VpdGVpc291em9rdW5pblwgOwor5aSa5Zu957GN5LyB5qWtID4gdGFrb2t1c2VraWtpZ3lvdVwgOwor5pm05LiA5pmC5bCP6ZuoID4gaGFyZWljaGlqaWtvc2FtZVwgOwor5a2j56+A5Yq05YON6ICFID4ga2lzZXRzdXJvdWRvdXNoYVwgOwor5Lit5bCP6Ku45Zu95a62ID4gY2hvdXNob3VzaG9rb2trYVwgOwor5LiN5bmz562J5p2h57SEID4gZnVieW91ZG91am91eWFrdVwgOwor5pyA5L2O6LOD6YeR5Yi2ID4gc2FpdGVpY2hpbmdpbnNlaVwgOwor5bid5Zu95Li7576p55qEID4gdGVpa29rdXNodWdpdGVraVwgOwor57SN56iO6YCa55+l5pu4ID4gbm91emVpdHN1dWNoaXNob1wgOwor6Zai56iO5Ymy5b2T5Yi2ID4ga2FuemVpd2FyaWF0ZXNlaVwgOwor5bGF5L2P6Ki85piO5pu4ID4ga3lvanV1c2hvdW1laXNob1wgOwor5aSn5L2/57Sa5Lya6KuHID4gdGFpc2hpa3l1dWthaWRhblwgOwor5rCR5Li75rS75YuV5a62ID4gbWluc2h1a2F0c3Vkb3VrYVwgOwor5a6i5ZOh56CU56m25ZOhID4ga3lha3Vpbmtlbmt5dXVpblwgOwor5pSv5oyB5Yqb5L+C5pWwID4gc2hpamlyeW9rdWtlaXN1dVwgOwor55u05LiL5Z6L5Zyw6ZyHID4gY2hva2thZ2F0YWppc2hpblwgOwor5pyq6Kej5rG65ZWP6aGMID4gbWlrYWlrZXRzdW1vbmRhaVwgOwor5bu656+J5Z+65rqW5rOVID4ga2VuY2hpa3VraWp1bmhvdVwgOwor55+l55qE5omA5pyJ5qipID4gY2hpdGVraXNob3l1dWtlblwgOwor6IG35qWt5a6J5a6a5omAID4gc2hva3VneW91YW50ZWlqb1wgOwor5YWx55Sj5YWa57Sw6IOeID4ga3lvdXNhbnRvdXNhaWJvdVwgOwor5LiA5bm055Sf6I2J5pysID4gaWNoaW5lbnNlaXNvdWhvblwgOwor5p2h57SE5Yqg55uf5Zu9ID4gam91eWFrdWthbWVpa29rdVwgOwor56uL5q2j5L285oiQ5LyaID4gcmlzc2hvdWtvdXNlaWthaVwgOwor5YWx6Kaz56aP6Z+z5pu4ID4ga3lvdWthbmZ1a3VpbnNob1wgOwor6auY5omA5oGQ5oCW55eHID4ga291c2hva3lvdWZ1c2hvdVwgOwor5paw6IGe6LKp5aOy5bqXID4gc2hpbmJ1bmhhbmJhaXRlblwgOwor6L6y5p6X5rC055Sj55yBID4gbm91cmluc3Vpc2Fuc2hvdVwgOwor5LqM6ICF6YG45LiA5rOVID4gbmlzaGFzZW4nJ2l0c3Vob3VcIDsKK+Wig+eVjOWApOWVj+mhjCA+IGt5b3VrYWljaGltb25kYWlcIDsKK+ekvuS8muS6uumHjueQgyA+IHNoYWthaWppbicneWFreXV1XCA7Civoj5zpo5/kuLvnvqnogIUgPiBzYWlzaG9rdXNodWdpc2hhXCA7Civou43nlKPopIflkIjkvZMgPiBndW5zYW5mdWt1Z291dGFpXCA7Civnsr7npZ7ljLvlrabogIUgPiBzZWlzaGluJydpZ2FrdXNoYVwgOwor57WM5riI5LyB55S75bqBID4ga2VpemFpa2lrYWt1Y2hvdVwgOwor5YWI56uv5pSv5oyB5YqbID4gc2VudGFuc2hpamlyeW9rdVwgOwor5L+d5YGl54mp55CG5a2mID4gaG9rZW5idXRzdXJpZ2FrdVwgOwor5YiG6Kej6JK45rqc5rOVID4gYnVua2Fpam91cnl1dWhvdVwgOwor6KiI6YeP6KiA6Kqe5a2mID4ga2VpcnlvdWdlbmdvZ2FrdVwgOwor5Zyw5Z+f5oyv6IiI5Yi4ID4gY2hpaWtpc2hpbmtvdWtlblwgOwor5oCl6YCy5Li7576p6ICFID4ga3l1dXNoaW5zaHVnaXNoYVwgOwor5Lqk6YCa6YGL6Ly45qWtID4ga291dHN1dXVuJyd5dWd5b3VcIDsKK+eEoeWItumZkOS+m+e1piA+IG11c2VpZ2Vua3lvdWt5dXVcIDsKK+e1puS4juaJgOW+l+iAhSA+IGt5dXV5b3Nob3Rva3VzaGFcIDsKK+aIpumXmOeIhuaSg+apnyA+IHNlbnRvdWJha3VnZWtpa2lcIDsKK+ael+alreippumok+WgtCA+IHJpbmd5b3VzaGlrZW5qb3VcIDsKK+aTsuW8vueZuuWwhOetkiA+IHRla2lkYW5oYXNzaGF0b3VcIDsKK+eUo+i7jeikh+WQiOS9kyA+IHNhbmd1bmZ1a3Vnb3V0YWlcIDsKK+acgOWkp+WFrOe0hOaVsCA+IHNhaWRhaWtvdXlha3VzdXVcIDsKK+WbveWGhea2iOiyu+eojiA+IGtva3VuYWlzaG91aGl6ZWlcIDsKK+WwkeW5tOWvqeWIpOaJgCA+IHNob3VuZW5zaGlucGFuam9cIDsKK+a1geihjOaAp+iCneeCjiA+IHJ5dXVrb3VzZWlrYW4nJ2VuXCA7Civmupbmupbmsbrli53miKYgPiBqdW5qdW5rZXNzaG91c2VuXCA7CivkuI3lrozlhajnh4PnhLwgPiBmdWthbnplbicnbmVuc2hvdVwgOwor5Y6f5a2Q5Yqb5pmC5LujID4gZ2Vuc2hpcnlva3VqaWRhaVwgOwor6L6y5qWt6Kmm6aiT5aC0ID4gbm91Z3lvdXNoaWtlbmpvdVwgOwor6auY6YCf5bqm5pKu5b2xID4ga291c29rdWRvc2F0c3VlaVwgOwor5aW95rCX5oCn55Sf54mpID4ga291a2lzZWlzZWlidXRzdVwgOwor5a625bqt5YaF5pq05YqbID4ga2F0ZWluYWlib3VyeW9rdVwgOwor5Zyo57GN5bCC5b6T6ICFID4gemFpc2VraXNlbmp1dXNoYVwgOwor5a6Y6LK755WZ5a2m55SfID4ga2FucGlyeXV1Z2FrdXNlaVwgOwor5Y2X5YyX5pyd5pmC5LujID4gbmFuYm9rdWNob3VqaWRhaVwgOwor5q275Lqh6Ki65pat5pu4ID4gc2hpYm91c2hpbmRhbnNob1wgOwor5bym5qW95Zub6YeN5aWPID4gZ2VuZ2FrdXNoaWp1dXNvdVwgOwor5Luy6KOB6KOB5Yik5omAID4gY2h1dXNhaXNhaWJhbnNob1wgOwor55CG6KuW54mp55CG5a2mID4gcmlyb25idXRzdXJpZ2FrdVwgOwor5YWo6Iis5YmN5ZOo57eaID4gemVucGFuemVuc2hvdXNlblwgOwor5Y2B5LqM5oyH6IW46JmrID4ganV1bmlzaGljaG91Y2h1dVwgOwor5Zyf5pyo5bel5a2m6ICFID4gZG9ib2t1a291Z2FrdXNoYVwgOwor5pel5Lit6Z+T57Wx5ZCIID4gbml0Y2h1dWthbnRvdWdvdVwgOwor5ouh5by15YCN57K+5bqmID4ga2FrdWNob3ViYWlzZWlkb1wgOwor5Yq05YON5Y+O5a655omAID4gcm91ZG91c2h1dXlvdXNob1wgOwor54Sh552A6Zm46aOb6KGMID4gbXVjaGFrdXJpa3VoaWtvdVwgOwor5pel5LuY5aSJ5pu057eaID4gaGlkenVrZWhlbmtvdXNlblwgOwor5b2T5LqL6ICF6IO95YqbID4gdG91amlzaGFub3VyeW9rdVwgOwor5pCN55uK6KiI566X5pu4ID4gc29uJydla2lrZWlzYW5zaG9cIDsKK+aApeihjOWBnOi7iumnhSA+IGt5dXVrb3V0ZWlzaGFla2lcIDsKK+WPjeakjeawkeS4u+e+qSA+IGhhbnNob2t1bWluc2h1Z2lcIDsKK+alteS9jua4qeenkeWtpiA+IGt5b2t1dGVpb25rYWdha3VcIDsKK+WGmeecn+acm+mBoOmPoSA+IHNoYXNoaW5ib3Vlbmt5b3VcIDsKK+WmmeazleiTruiPr+e1jCA+IG15b3Vob3VyZW5nZWt5b3VcIDsKK+Wun+eUqOS4u+e+qeiAhSA+IGppdHN1eW91c2h1Z2lzaGFcIDsKK+W+jOaWuemAo+e1oee3miA+IGtvdWhvdXJlbnJha3VzZW5cIDsKK+Wun+mok+W/g+eQhuWtpiA+IGppa2tlbnNoaW5yaWdha3VcIDsKK+S4jeazleWFpeWbveiAhSA+IGZ1aG91bnl1dWtva3VzaGFcIDsKK+WkmuWFg+aWueeoi+W8jyA+IHRhZ2VuaG91dGVpc2hpa2lcIDsKK+WbveWGhee3j+eUn+eUoyA+IGtva3VuYWlzb3VzZWlzYW5cIDsKK+mJhOmBk+WFrOWuieWumCA+IHRldHN1ZG91a291YW5rYW5cIDsKK+W5s+WPsOWei+iyqOi7iiA+IGhpcmFkYWlnYXRha2FzaGFcIDsKK+S6uuensOS7o+WQjeipniA+IG5pbnNob3VkYWltZWlzaGlcIDsKK+Wun+alreS5i+aXpeacrCA+IGppdHN1Z3lvdW5vbmlob25cIDsKK+epjeWxpOS5vumbu+axoCA+IHNla2lzb3VrYW5kZW5jaGlcIDsKK+ihjOaUv+euoeeQhuW6gSA+IGd5b3VzZWlrYW5yaWNob3VcIDsKK+i1pOWNgeWtl+adoee0hCA+IHNla2lqdXVqaWpvdXlha3VcIDsKK+WFieWtpumhleW+rumPoSA+IGtvdWdha3VrZW5iaWt5b3VcIDsKK+W8t+WItuWPjuWuueaJgCA+IGt5b3VzZWlzaHV1eW91am9cIDsKK+eKr+e9quW/g+eQhuWtpiA+IGhhbnphaXNoaW5yaWdha3VcIDsKK+mAo+mCpuaNnOafu+WxgCA+IHJlbnBvdXNvdXNha3lva3VcIDsKK+Wkp+mZuOenu+WLleiqrCA+IHRhaXJpa3VpZG91c2V0c3VcIDsKK+S8gealreWGheaVmeiCsiA+IGtpZ3lvdW5haWt5b3Vpa3VcIDsKK+eqkue0oOmFuOWMlueJqSA+IGNoaXNzb3NhbmthYnV0c3VcIDsKK+W4neeOi+WIh+mWi+ihkyA+IHRlaW91c2Vra2FpanV0c3VcIDsKK+aYpeapn+eZuuWLleacnyA+IHNodW5raWhhdHN1ZG91a2lcIDsKK+WkqeW5leijvemAoOS6uiA+IHRlbm1ha3VzZWl6b3VuaW5cIDsKK+acgOWEquengOmBuOaJiyA+IHNhaXl1dXNodXVzZW5zaHVcIDsKK+WLneWIqeWPiOWLneWIqSA+IHNob3VyaW1hdGFzaG91cmlcIDsKK+Wls+a1geaWh+WtpuiAhSA+IGpvcnl1dWJ1bmdha3VzaGFcIDsKK+iAkOS5hea2iOiyu+iyoSA+IHRhaWt5dXVzaG91aGl6YWlcIDsKK+mdnuWFrOW8j+WNlOitsCA+IGhpa291c2hpa2lreW91Z2lcIDsKK+epuua4r+S9v+eUqOaWmSA+IGt1dWtvdXNoaXlvdXJ5b3VcIDsKK+eEoemHjeWKm+eKtuaFiyA+IG11anV1cnlva3Vqb3V0YWlcIDsKK+WkqeeFp+eah+Wkp+elniA+IHRlbnNob3Vrb3VkYWlqaW5cIDsKK+eyvuelnuWuieWumuWJpCA+IHNlaXNoaW4nJ2FudGVpemFpXCA7CivphbjmgKfphbjljJbniakgPiBzYW5zZWlzYW5rYWJ1dHN1XCA7Civlhpnlrp/kuLvnvqnogIUgPiBzaGFqaXRzdXNodWdpc2hhXCA7CivlhrfmiKblnovmgJ3ogIMgPiByZWlzZW5nYXRhc2hpa291XCA7Civpm7vlrZDlt6Xmpa3kvJogPiBkZW5zaGlrb3VneW91a2FpXCA7Civpm7vlrZDlt6XlrabogIUgPiBkZW5zaGlrb3VnYWt1c2hhXCA7CivmsJHkuLvlhbHlkozlm70gPiBtaW5zaHVreW91d2Frb2t1XCA7Civni6znq4voqJjlv7Xml6UgPiBkb2t1cml0c3VraW5lbmJpXCA7CivljJblraboqr/lkbPmlpkgPiBrYWdha3VjaG91bWlyeW91XCA7CivntYLouqvpm4fnlKjliLYgPiBzaHV1c2hpbmtveW91c2VpXCA7CivkuI3lrprmlrnnqIvlvI8gPiBmdXRlaWhvdXRlaXNoaWtpXCA7CivlpKfkv67pgZPpmaLplbcgPiBkYWlzaHV1ZG91aW5jaG91XCA7CivmuK/mub7pgYvpgIHmpa0gPiBrb3V3YW4nJ3Vuc291Z3lvdVwgOwor5ZGo5rOi5pWw5aSJ6Kq/ID4gc2h1dWhhc3V1aGVuY2hvdVwgOwor5Lm+54el5Zyw6L6y5qWtID4ga2Fuc291Y2hpbm91Z3lvdVwgOwor55Kw5aKD6YWN5oWu5pu4ID4ga2Fua3lvdWhhaXJ5b3Nob1wgOwor5Zu65L2T54mp55CG5a2mID4ga290YWlidXRzdXJpZ2FrdVwgOwor57WE57mU5Yq05YON6ICFID4gc29zaGlraXJvdWRvdXNoYVwgOwor5Za25qWt5aCx5ZGK5pu4ID4gZWlneW91aG91a29rdXNob1wgOwor5bqD5ZGK5Luj55CG5bqXID4ga291a29rdWRhaXJpdGVuXCA7CivmiKbmmYLlm73pmpvms5UgPiBzZW5qaWtva3VzYWlob3VcIDsKK+Wkmumhjee0jeeojuiAhSA+IHRhZ2FrdW5vdXplaXNoYVwgOwor5aSq5YWD5bil5aaZ546LID4gZGFpZ2Vuc3VpbXlvdW91XCA7CivkuK3pg6jlpKrlubPmtIsgPiBjaHV1YnV0YWloZWl5b3VcIDsKK+S8gealreWGhee1hOWQiCA+IGtpZ3lvdW5haWt1bWlhaVwgOwor5aSq5bmz5rSL5oim5LqJID4gdGFpaGVpeW91c2Vuc291XCA7CivpgKPluK/kv53oqLzkurogPiByZW50YWlob3Nob3VuaW5cIDsKK+i7jeWbveS4u+e+qeiAhSA+IGd1bmtva3VzaHVnaXNoYVwgOwor5Y+N5bid5Zu95Li7576pID4gaGFudGVpa29rdXNodWdpXCA7CivkvJrnpL7mm7TnlJ/ms5UgPiBrYWlzaGFrb3VzZWlob3VcIDsKK+WbvemBuOW8geitt+S6uiA+IGtva3VzZW5iZW5nb25pblwgOwor6Ieq54S25Zyw55CG5a2mID4gc2hpemVuY2hpcmlnYWt1XCA7CivlnLDln5/nmoTliIbluIMgPiBjaGlpa2l0ZWtpYnVucHVcIDsKK+WJquaWreWuieWumuaApyA+IHNlbmRhbicnYW50ZWlzZWlcIDsKK+mrmOWIhuWtkOWMluWtpiA+IGtvdWJ1bnNoaWthZ2FrdVwgOwor5oOF5aCx5YWs6ZaL5rOVID4gam91aG91a291a2FpaG91XCA7Civlj43lsITmnJvpgaDpj6EgPiBoYW5zaGFib3Vlbmt5b3VcIDsKK+eJueWIpeWnlOWToeS8miA+IHRva3ViZXRzdWlpbmthaVwgOwor5YaF6ZyA5Li75bCO5Z6LID4gbmFpanVzaHVkb3VnYXRhXCA7CivmmbTlpKnkubHmsJfmtYEgPiBzZWl0ZW5yYW5raXJ5dXVcIDsKK+WfuuacrOeahOS6uuaoqSA+IGtpaG9udGVraWppbmtlblwgOwor5oim5LqJ54qv572q5Lq6ID4gc2Vuc291aGFuemFpbmluXCA7Civlj43lr77osr/mmJPpoqggPiBoYW50YWlib3Vla2lmdXVcIDsKK+mBk+i3r+S6pOmAmuazlSA+IGRvdXJva291dHN1dWhvdVwgOwor5YWx55Sj5Zu95a626YOhID4ga3lvdXNhbmtva2thZ3VuXCA7Civku67oo4Xlt6HmtIvoiaYgPiBrYXNvdWp1bicneW91a2FuXCA7CivmlZnogrLln7rmnKzms5UgPiBreW91aWt1a2lob25ob3VcIDsKK+eUn+eUo+iAheS+oeagvCA+IHNlaXNhbnNoYWtha2FrdVwgOwor5pyA5bCP5LqM5LmX5rOVID4gc2Fpc2hvdW5pam91aG91XCA7CivkuLvlubnnoJTnqbblk6EgPiBzaHVrYW5rZW5reXV1aW5cIDsKK+WumOWDmuS4u+e+qeiAhSA+IGthbnJ5b3VzaHVnaXNoYVwgOwor5bCP6YG45oyZ5Yy65Yi2ID4gc2hvdXNlbmt5b2t1c2VpXCA7Civoh6rou6Lou4rmk43mpa0gPiBqaXRlbnNoYXNvdWd5b3VcIDsKK+S4lueVjOaWsOiomOmMsiA+IHNla2Fpc2hpbmtpcm9rdVwgOwor5ZWG5bel5Lya6K2w5omAID4gc2hvdWtvdWthaWdpc2hvXCA7CivlvL7lir7oo4HliKTmiYAgPiBkYW5nYWlzYWliYW5zaG9cIDsKK+S/neitt+mWoueojueOhyA+IGhvZ29rYW56ZWlyaXRzdVwgOwor5rqW56aB5rK755Sj6ICFID4ganVua2luY2hpc2Fuc2hhXCA7CivorbDpmaLlhoXplqPliLYgPiBnaWluJyduYWlrYWt1c2VpXCA7CivnlJ/mtLvkv53orbfms5UgPiBzZWlrYXRzdWhvZ29ob3VcIDsKK+WFseeUo+S4u+e+qeiAhSA+IGt5b3VzYW5zaHVnaXNoYVwgOwor5q2j5a6J5oGv6aaZ6YW4ID4gc2VpYW5zb2t1a291c2FuXCA7CivlhazlrrPnl4XmgqPogIUgPiBrb3VnYWlieW91a2FuamFcIDsKK+iyoeaUv+aKleiejeizhyA+IHphaXNlaXRvdXl1dXNoaVwgOwor5riv5rm+5Yq05YON6ICFID4ga291d2Fucm91ZG91c2hhXCA7CivlhoXpmbjmgKfmsJflgJkgPiBuYWlyaWt1c2Vpa2lrb3VcIDsKK+S4reWkruaomea6luaZgiA+IGNodXVvdWh5b3VqdW5qaVwgOwor5oqV5YWJ54Wn5piO5ZmoID4gdG91a291c2hvdW1laWtpXCA7Civnt4/lkIznm5/nvbfmpa0gPiBzb3Vkb3VtZWloaWd5b3VcIDsKK+acgOmrmOijgeWIpOaJgCA+IHNhaWtvdXNhaWJhbnNob1wgOwor5Za25Zuj5Zyw5LiL6YmEID4gZWlkYW5jaGlrYXRldHN1XCA7Civpo73lkozljJblkIjniakgPiBob3V3YWthZ291YnV0c3VcIDsKK+mHkeWxnuaOouefpeapnyA+IGtpbnpva3V0YW5jaGlraVwgOwor5rWu5YuV5bCP5pWw54K5ID4gZnVkb3VzaG91c3V1dGVuXCA7CivoqIDoqp7lv4PnkIblraYgPiBnZW5nb3NoaW5yaWdha3VcIDsKK+S4gOWnq+S6jOWkqumDjiA+IGljaGloaW1lbml0YXJvdVwgOwor55WM6Z2i5rS75oCn5YmkID4ga2FpbWVua2Fzc2VpemFpXCA7CivkurrnlJ/moYjlhoXmrIQgPiBqaW5zZWlhbicnbmFpcmFuXCA7CivkuIDliIbkuozljYHnp5IgPiBpcHB1bicnbmlqdXVieW91XCA7CivljZfpmL/lhbHlkozlm70gPiBuYW4nJ2FreW91d2Frb2t1XCA7CivkuLvmiKbpl5jmiKbou4ogPiBzaHVzZW50b3VzZW5zaGFcIDsKK+avlOi8g+iogOiqnuWtpiA+IGhpa2FrdWdlbmdvZ2FrdVwgOwor5YaF5pS/5LiN5bmy5riJID4gbmFpc2VpZnVrYW5zaG91XCA7Civpq5jnrYnoo4HliKTmiYAgPiBrb3V0b3VzYWliYW5zaG9cIDsKK+eQg+mdouW5vuS9leWtpiA+IGt5dXVtZW5raWthZ2FrdVwgOwor6Zu75a2Q6aGV5b6u6Y+hID4gZGVuc2hpa2VuYmlreW91XCA7CivlirTlg43nlJ/nlKPmgKcgPiByb3Vkb3VzZWlzYW5zZWlcIDsKK+W5s+ihjOWbm+i+uuW9oiA+IGhlaWtvdXNoaWhlbmtlaVwgOwor5oSf5YK35Li7576p6ICFID4ga2Fuc2hvdXNodWdpc2hhXCA7CivlrabnlJ/oh6rmsrvkvJogPiBnYWt1c2VpamljaGlrYWlcIDsKK+W5tOmHkeWPl+e1puiAhSA+IG5lbmtpbmp1a3l1dXNoYVwgOwor6Z2e5ZCM5pyf6YCa5L+hID4gaGlkb3VraXRzdXVzaGluXCA7CivkuInljYHlubTmiKbkuokgPiBzYW5qdXVuZW5zZW5zb3VcIDsKK+mWieaJgOaBkOaAlueXhyA+IGhlaWpva3lvdWZ1c2hvdVwgOwor5Y+45rOV56CU5L+u5omAID4gc2hpaG91a2Vuc2h1dWpvXCA7CivkvY7ph5HliKnmlL/nrZYgPiB0ZWlraW5yaXNlaXNha3VcIDsKK+m6u+iWrOW4uOeUqOiAhSA+IG1heWFrdWpvdXlvdXNoYVwgOwor6ZW36Led6Zui5YiX6LuKID4gY2hvdWt5b3JpcmVzc2hhXCA7Civmh7LnvbDlp5Tlk6HkvJogPiBjaG91YmF0c3VpaW5rYWlcIDsKK+acieapn+WMluWQiOeJqSA+IHl1dWtpa2Fnb3VidXRzdVwgOwor5qW95aSp5Li7576p6ICFID4gcmFrdXRlbnNodWdpc2hhXCA7CivnhKHmnaHku7bpmY3kvI8gPiBtdWpvdWtlbmtvdWZ1a3VcIDsKK+mBi+i7ouWFjeioseiovCA+IHVudGVubWVua3lvc2hvdVwgOwor5qC86ZeY5oim6YOo6ZqKID4ga2FrdXRvdXNlbmJ1dGFpXCA7CivlsZXnpLrljbPlo7LkvJogPiB0ZW5qaXNva3ViYWlrYWlcIDsKK+i7jeS6i+Wig+eVjOe3miA+IGd1bmppa3lvdWthaXNlblwgOwor5raI6LK76ICF5Zuj5L2TID4gc2hvdWhpc2hhZGFudGFpXCA7CivlhajkvZPkuLvnvqnlm70gPiB6ZW50YWlzaHVnaWtva3VcIDsKK+S4jeWPr+S+teadoee0hCA+IGZ1a2FzaGluam91eWFrdVwgOwor5bqn5bit5oyH5a6a5Yi4ID4gemFzZWtpc2hpdGVpa2VuXCA7CivluLDlm73lrZDlpbPmnqAgPiBraWtva3VzaGlqb3dha3VcIDsKK+mBuuiogOijnOi2s+abuCA+IHl1aWdvbmhvc29rdXNob1wgOwor54Kt6Ymx5Yq05YON6ICFID4gdGFua291cm91ZG91c2hhXCA7Civop6PmnpDlub7kvZXlraYgPiBrYWlzZWtpa2lrYWdha3VcIDsKK+e1jOa4iOaAp+WQkeS4iiA+IGtlaXphaXNlaWtvdWpvdVwgOwor5Zyw5LiL5qC45a6f6aiTID4gY2hpa2FrYWt1amlra2VuXCA7Civmr5Tkvovku6PooajliLYgPiBoaXJlaWRhaWh5b3VzZWlcIDsKK+eri+aGsuWQm+S4u+aUvyA+IHJpa2tlbmt1bnNodXNlaVwgOwor6a2a6Zu355m65bCE566hID4gZ3lvcmFpaGFzc2hha2FuXCA7CivmkI3nm4rliIblspDngrkgPiBzb24nJ2VraWJ1bmtpdGVuXCA7CivnpL7kvJrkv53pmbrluoEgPiBzaGFrYWlob2tlbmNob3VcIDsKK+atqeihjOiAheWkqeWbvSA+IGhva291c2hhdGVuZ29rdVwgOwor5Zu95rCR55qG5L+d6Zm6ID4ga29rdW1pbmthaWhva2VuXCA7CivljZjntJTlho3nlJ/nlKMgPiB0YW5qdW5zYWlzZWlzYW5cIDsKK+iiq+mBuOaMmeizh+agvCA+IGhpc2Vua3lvc2hpa2FrdVwgOwor5Z+65rqW5aSW6LOD6YeRID4ga2lqdW5nYWljaGluZ2luXCA7CivnhrHluK/kvY7msJflnKcgPiBuZXR0YWl0ZWlraWF0c3VcIDsKK+ePvuWcqOWujOS6huaZgiA+IGdlbnphaWthbnJ5b3VqaVwgOwor562J6L665LiJ6KeS5b2iID4gdG91aGVuc2Fua2Fra2VpXCA7Civml6XluLjojLbpo6/kuosgPiBuaWNoaWpvdXNhaGFuamlcIDsKK+mAo+mOlueKtueQg+iPjCA+IHJlbnNham91a3l1dWtpblwgOwor5Y6f54iG54qg54my6ICFID4gZ2VuYmFrdWdpc2Vpc2hhXCA7CivlpJblm73mipXos4flrrYgPiBnYWlrb2t1dG91c2hpa2FcIDsKK+mbu+azouWkqeaWh+WtpiA+IGRlbnBhdGVubW9uZ2FrdVwgOwor5qeL6YCg6KiA6Kqe5a2mID4ga291em91Z2VuZ29nYWt1XCA7CivlnLDln5/lhrfmmpbmiL8gPiBjaGlpa2lyZWlkYW5ib3VcIDsKK+S6uuW3peWRvOWQuOazlSA+IGppbmtvdWtva3l1dWhvdVwgOwor5a6f6Ki85Li7576p6ICFID4gamlzc2hvdXNodWdpc2hhXCA7CivmlK/mjIHlipvnkIboq5YgPiBzaGlqaXJ5b2t1cmlyb25cIDsKK+WFrOmWi+iojuirluS8miA+IGtvdWthaXRvdXJvbmthaVwgOwor5paH6YOo56eR5a2m55yBID4gbW9uYnVrYWdha3VzaG91XCA7CivnibnoqLHmmI7ntLDmm7ggPiB0b2treW9tZWlzYWlzaG9cIDsKK+eojuWItuiqv+afu+S8miA+IHplaXNlaWNob3VzYWthaVwgOwor55m65bGV6YCU5LiK5Zu9ID4gaGF0dGVudG9qb3Vrb2t1XCA7CivlhazlhbHlm7Pmm7jppKggPiBrb3VreW91dG9zaG9rYW5cIDsKK+WbveWGheimj+agvOWMliA+IGtva3VuYWlraWtha3VrYVwgOwor5Ym156uL6KiY5b+15pelID4gc291cml0c3VraW5lbmJpXCA7Civph5Hpiq3nmbvpjLLlmaggPiBraW5zZW50b3Vyb2t1a2lcIDsKK+WKtOWDjee1hOWQiOazlSA+IHJvdWRvdWt1bWlhaWhvdVwgOwor57Sg5b2i5p2Q55Sj5qWtID4gc29rZWl6YWlzYW5neW91XCA7CivkuqTmj5vosr/mmJPliLYgPiBrb3VrYW5ib3Vla2lzZWlcIDsKK+ePvuWcsOmnkOWcqOWToSA+IGdlbmNoaWNodXV6YWlpblwgOwor5pyA5bCP6Ieq5LmX5rOVID4gc2Fpc2hvdWppam91aG91XCA7CivlsI/lnovkuZfnlKjou4ogPiBrb2dhdGFqb3V5b3VzaGFcIDsKK+WxnuaAp+WApOihjOWIlyA+IHpva3VzZWd5b3VyZXRzdVwgOwor5rW36LuN5YW15a2m5qChID4ga2FpZ3VuaGVpZ2Fra291XCA7Civpu4TpgZPljYHkuozlrq4gPiBrb3Vkb3VqdXVuaWt5dXVcIDsKK+WHuuadpemrmOS7leS6iyA+IGRla2lkYWthc2hpZ290b1wgOwor6LOH55Sj6LKg5YK16KGoID4gc2hpc2FuZnVzYWloeW91XCA7CivniYjmqKnmiYDmnInogIUgPiBoYW5rZW5zaG95dXVzaGFcIDsKK+S/oeW+kuS8neWLleiAhSA+IHNoaW50b2RlbmRvdXNoYVwgOwor5a6Y6IO95Li7576p6ICFID4ga2FuJydub3VzaHVnaXNoYVwgOwor6IGW6ZyK6ZmN6Ieo56WtID4gc2VpcmVpa291cmluc2FpXCA7CivmtYHooYzmgKfohLPngo4gPiByeXV1a291c2Vpbm91ZW5cIDsKK+iomOW/teirluaWh+mbhiA+IGtpbmVucm9uYnVuc2h1dVwgOwor6Ieq5YuV6YCj57WQ5qmfID4gamlkb3VyZW5rZXRzdWtpXCA7CivlpKfpmbjmgKfmsJflgJkgPiB0YWlyaWt1c2Vpa2lrb3VcIDsKK+aguOWFteWZqOWun+mokyA+IGtha3VoZWlraWppa2tlblwgOwor6KqH5aSn5aaE5oOz54uCID4ga29kYWltb3Vzb3VreW91XCA7CivouqvliIboqLzmmI7mm7ggPiBtaWJ1bnNob3VtZWlzaG9cIDsKK+aWh+WMluS6uumhnuWtpiA+IGJ1bmthamlucnVpZ2FrdVwgOwor56ys5LiJ5qyh55Sj5qWtID4gZGFpc2FuamlzYW5neW91XCA7CivmlofljJblpKfpnanlkb0gPiBidW5rYWRhaWtha3VtZWlcIDsKK+mdnuWxgOaJgOWIhuWykCA+IGhpa3lva3VzaG9idW5raVwgOwor6Zai5L+C5Luj5ZCN6KmeID4ga2Fua2VpZGFpbWVpc2hpXCA7CivlpJrlm73nsY3oqIDoqp4gPiB0YWtva3VzZWtpZ2VuZ29cIDsKK+awtOmKgOawl+Wcp+ioiCA+IHN1aWdpbmtpYXRzdWtlaVwgOwor5YWQ56ul5b+D55CG5a2mID4gamlkb3VzaGlucmlnYWt1XCA7CivnqbrmtJ7ljJbnj77osaEgPiBrdXVkb3VrYWdlbnNob3VcIDsKK+eEoeeQhuaWueeoi+W8jyA+IG11cmlob3V0ZWlzaGlraVwgOwor5Lqk5beu5a++56ew5oCnID4ga291c2F0YWlzaG91c2VpXCA7CivllqflmKnkuKHmiJDmlZcgPiBrZW5rYXJ5b3VzZWliYWlcIDsKK+imluiBtOimmuapn+WZqCA+IHNoaWNob3VrYWt1a2lraVwgOwor5p+T6Imy5L2T55Ww5bi4ID4gc2Vuc2hva3V0YWlpam91XCA7CivntZDlqZrpganpvaLmnJ8gPiBrZWtrb250ZWtpcmVpa2lcIDsKK+a8uOi/keeahOiHqueUsSA+IHplbmtpbnRla2lqaXl1dVwgOwor56S+5Lya5rCR5Li75YWaID4gc2hha2FpbWluc2h1dG91XCA7Civnp4HoqK3lv5zmj7Tlm6MgPiBzaGlzZXRzdW91ZW5kYW5cIDsKK+e1jOa4iOWQjOWPi+S8miA+IGtlaXphaWRvdXl1dWthaVwgOwor5Y+N6Ki85Y+v6IO95oCnID4gaGFuc2hvdWthbm91c2VpXCA7CivmkKzpgIHlkajms6LmlbAgPiBoYW5zb3VzaHV1aGFzdXVcIDsKK+acgOmrmOaMh+WwjuiAhSA+IHNhaWtvdXNoaWRvdXNoYVwgOwor6JGh6JCE54q255CD6I+MID4gYnVkb3Vqb3VreXV1a2luXCA7Civlhajnv7zpo5vooYzmqZ8gPiB6ZW4nJ3lva3VoaWtvdWtpXCA7CivpgJ/lirnmgKfogqXmlpkgPiBzb2trb3VzZWloaXJ5b3VcIDsKK+mBheWKueaAp+iCpeaWmSA+IGNoaWtvdXNlaWhpcnlvdVwgOwor5Zu957KL5Li7576p6ICFID4ga29rdXN1aXNodWdpc2hhXCA7Civmlq3lvL7mgKfkv4LmlbAgPiBkYW5kYW5zZWlrZWlzdXVcIDsKK+S6jOasoeaWueeoi+W8jyA+IG5pamlob3V0ZWlzaGlraVwgOwor5b+c55So5b+D55CG5a2mID4gb3V5b3VzaGlucmlnYWt1XCA7Civnsr7npZ7nlbDluLjogIUgPiBzZWlzaGluJydpam91c2hhXCA7Civlh7rnlJ/lubTmnIjml6UgPiBzaHVzc2VpbmVuZ2FwcGlcIDsKK+WLleipnueKtuWQjeipniA+IGRvdXNoaWpvdW1laXNoaVwgOwor6Ieq55Sx6KOB6YeP5qipID4gaml5dXVzYWlyeW91a2VuXCA7CivkuK3lpK7pm4bmqKnljJYgPiBjaHV1b3VzaHV1a2Vua2FcIDsKK+eEoeWIqeaBr+iovOWIuCA+IG11cmlzb2t1c2hvdWtlblwgOwor5LuB576p56S85pm65L+hID4gamluZ2lyZWljaGlzaGluXCA7Civmm7TlubTmnJ/pmpzlrrMgPiBrb3VuZW5raXNob3VnYWlcIDsKK+WbveiqnuWvqeitsOS8miA+IGtva3Vnb3NoaW5naWthaVwgOwor5Zyw5pa56KOB5Yik5omAID4gY2hpaG91c2FpYmFuc2hvXCA7Civoh6rli5XmlLnmnK3mqZ8gPiBqaWRvdWthaXNhdHN1a2lcIDsKK+acquWwseWtpuWFkOerpSA+IG1pc2h1dWdha3VqaWRvdVwgOwor5a6f5pmC6ZaT5Yem55CGID4gaml0c3VqaWthbnNob3JpXCA7CivpoJDph5HmupblgpnnjocgPiB5b2tpbmp1bmJpcml0c3VcIDsKK+WkqeS9k+acm+mBoOmPoSA+IHRlbnRhaWJvdWVua3lvdVwgOwor56S+5Lya6Ku456eR5a2mID4gc2hha2Fpc2hva2FnYWt1XCA7Civms5Xlvovkuovli5nmiYAgPiBob3VyaXRzdWppbXVzaG9cIDsKK+Wun+WIqeS4u+e+qeiAhSA+IGppdHN1cmlzaHVnaXNoYVwgOwor5pyq56K66KqN5oOF5aCxID4gbWlrYWt1bmluam91aG91XCA7CivogIHkurrmgKfnl7TlkYYgPiByb3VqaW5zZWljaGlob3VcIDsKK+WcqOWklueglOeptuWToSA+IHphaWdhaWtlbmt5dXVpblwgOwor5a6i6Kaz5Li7576p6ICFID4ga3lha2thbnNodWdpc2hhXCA7CivpgbjmiYvmqKnlpKfkvJogPiBzZW5zaHVrZW50YWlrYWlcIDsKK+S4i+e0muijgeWIpOaJgCA+IGtha3l1dXNhaWJhbnNob1wgOwor6YCT6ZmN5aSJ5Zyn5ZmoID4gdGVpa291aGVuYXRzdWtpXCA7CivpmZDnlYzpoZXlvq7pj6EgPiBnZW5rYWlrZW5iaWt5b3VcIDsKK+imgeaSg+aIpumXmOapnyA+IHlvdWdla2lzZW50b3VraVwgOwor5LiN5YWs5bmz56u25LqJID4gZnVrb3VoZWlreW91c291XCA7Civlhazoqo3kvJroqIjlo6sgPiBrb3VuaW5rYWlrZWlzaGlcIDsKK+eKr+ihjOWjsOaYjuaWhyA+IGhhbmtvdXNlaW1laWJ1blwgOwor5raI6LK76ICF5L6h5qC8ID4gc2hvdWhpc2hha2FrYWt1XCA7Civpn7Pmpb3oqZXoq5blrrYgPiBvbmdha3VoeW91cm9ua2FcIDsKK+WFrOWuieiqv+afu+W6gSA+IGtvdWFuY2hvdXNhY2hvdVwgOwor5LmX6ZmN6LuK5YSq5YWIID4gam91a291c2hheXV1c2VuXCA7Civkurrlt6XnlJjlkbPmlpkgPiBqaW5rb3VrYW5taXJ5b3VcIDsKK+WcqOmDt+i7jeS6uuS8miA+IHphaWdvdWd1bmppbmthaVwgOwor6Ieq6KiY5rm/5bqm6KiIID4gamlraXNoaXRzdWRva2VpXCA7CivlpKfntbHkuIDnkIboq5YgPiBkYWl0b3VpdHN1cmlyb25cIDsKK+aknOWumuaVmeenkeabuCA+IGtlbnRlaWt5b3VrYXNob1wgOwor5Yy75a2m5oqA6KGT5aOrID4gaWdha3VnaWp1dHN1c2hpXCA7CivlpKnnmofoqpXnlJ/ml6UgPiB0ZW4nJ25vdXRhbmpvdWJpXCA7CivlpKrlubPmtIvlnLDln58gPiB0YWloZWl5b3VjaGlpa2lcIDsKK+izh+eUo+WGjeipleS+oSA+IHNoaXNhbnNhaWh5b3VrYVwgOwor5oOF57eS6Zqc5a6z5YWQID4gam91Y2hvc2hvdWdhaWppXCA7Civml6XmnKzlm73mhrLms5UgPiBuaWhvbmtva3VrZW5wb3VcIDsKK+S6uuawkeino+aUvui7jSA+IGppbm1pbmthaWhvdWd1blwgOwor57W25a++5ZCb5Li75Yi2ID4gemV0dGFpa3Vuc2h1c2VpXCA7CivoirjooZPmhJvlpb3lrrYgPiBnZWlqdXRzdWFpa291a2FcIDsKK+engeeUn+WFkOWHuueUoyA+IHNoaXNlaWppc2h1c3NhblwgOwor5Lih6Zmi5Y2U6K2w5LyaID4gcnlvdWlua3lvdWdpa2FpXCA7CivlsI/nlLDljp/mj5Dnga8gPiBvZGF3YXJhZGpvdWNoaW5cIDsKK+iyqOeJqeiHquWLlei7iiA+IGthbW90c3VqaWRvdXNoYVwgOwor54mH5omL6ZaT5LuV5LqLID4ga2F0YXRlbWFzaGlnb3RvXCA7CivnpZ7ntYzlm57ot6/ntrIgPiBzaGlua2Vpa2Fpcm9tb3VcIDsKK+eCree0oOWMluWQiOeJqSA+IHRhbnNva2Fnb3VidXRzdVwgOwor5rCX566h5pSv5ZaY5oGvID4ga2lrYW5zaGl6ZW5zb2t1XCA7CivkuI3li5XnlKPmpa3ogIUgPiBmdWRvdXNhbmd5b3VzaGFcIDsKK+a1t+a0i+awl+ixoeWPsCA+IGthaXlvdWtpc2hvdWRhaVwgOwor6Ieq5YuV57+76Kiz5qmfID4gamlkb3Vob24nJ3lha3VraVwgOwor57iE5paH5byP5Zyf5ZmoID4gam91bW9uc2hpa2lkb2tpXCA7CivovLjlhaXoqrLlvrTph5EgPiB5dW55dXVrYWNob3VraW5cIDsKK+mHjeWVhuS4u+e+qeiAhSA+IGp1dXNob3VzaHVnaXNoYVwgOwor6YG655Sj55u457aa56iOID4gaXNhbnNvdXpva3V6ZWlcIDsKK+avmOW7rOmBrumCo+S7jyA+IGJpcnVzaGFuYWJ1dHN1XCA7CivplqLnqI7oh6rkuLvmqKkgPiBrYW56ZWlqaXNodWtlblwgOwor5Z+65pys5ZGo5rOi5pWwID4ga2lob25zaHV1aGFzdXVcIDsKK+Wbm+i8qumnhuWLlei7iiA+IHlvbnJpbmt1ZG91c2hhXCA7CivpnZnpm7vmsJfpmLLmraIgPiBzZWlkZW5raWJvdXNoaVwgOwor54WZ56qB5o6D6Zmk5aSrID4gZW50b3RzdXNvdWppZnVcIDsKK+S8keaIpuiomOW/teaXpSA+IGt5dXVzZW5raW5lbmJpXCA7CivlrabmoKHnvqTliLbluqYgPiBnYWtrb3VndW5zZWlkb1wgOwor5pS+5bCE57ea5oqA5birID4gaG91c2hhc2VuZ2lzaGlcIDsKK+WutuW6reijgeWIpOaJgCA+IGthdGVpc2FpYmFuc2hvXCA7Civplbfot53pm6LmiZPogIUgPiBjaG91a3lvcmlkYXNoYVwgOwor5pel5pys5qiZ5rqW5pmCID4gbmlob25oeW91anVuamlcIDsKK+iqmOWwjumbu+WLleapnyA+IHl1dWRvdWRlbmRvdWtpXCA7Civlu7rlm73oqJjlv7Xml6UgPiBrZW5rb2t1a2luZW5iaVwgOwor5Lyd57Wx5Li7576p6ICFID4gZGVudG91c2h1Z2lzaGFcIDsKK+eZu+iomOeVquWPt+ashCA+IHRvdWtpYmFuZ291cmFuXCA7CivmranooYzogIXlhKrlhYggPiBob2tvdXNoYXl1dXNlblwgOwor54Sh5Lq65a6H5a6Z6Ii5ID4gbXVqaW4nJ3VjaHV1c2VuXCA7CivnvoXokITml6Xovp7lhbggPiByYXBvbmljaGlqaXRlblwgOwor5rip5pqW5YyW54++6LGhID4gb25kYW5rYWdlbnNob3VcIDsKK+WppuS6uuWPguaUv+aoqSA+IGZ1amluc2Fuc2Vpa2VuXCA7Civoh6rnlLHmsJHkuLvlhZogPiBqaXl1dW1pbnNodXRvdVwgOwor5YCL5L2T55m655Sf6KuWID4ga290YWloYXNzZWlyb25cIDsKK+Wkp+WogeW+s+WmmeeOiyA+IGRhaWl0b2t1bXlvdW91XCA7CivlpKfpn5PoiKrnqbrmqZ8gPiB0YWlrYW5rb3VrdXVraVwgOwor5LiN54m55a6a5aSa5pWwID4gZnV0b2t1dGVpdGFzdXVcIDsKK+S4u+aDheS4u+e+qeiAhSA+IHNodWpvdXNodWdpc2hhXCA7Civms5Xlrprku6PnkIbkurogPiBob3V0ZWlkYWlyaW5pblwgOwor5YWs6ZaL5Zuz5pu46aSoID4ga291a2FpdG9zaG9rYW5cIDsKK+S4gOaZgumWk+S7peWGhSA+IGljaGlqaWthbicnaW5haVwgOwor5pWw55CG6KiA6Kqe5a2mID4gc3V1cmlnZW5nb2dha3VcIDsKK+mBuueUo+ebuOe2muS6uiA+IGlzYW5zb3V6b2t1bmluXCA7CivmlrnlkJHmjqLnn6XlmaggPiBob3Vrb3V0YW5jaGlraVwgOwor54ax5Y+v5aGR5qi56ISCID4gbmV0c3VrYXNvanVzaGlcIDsKK+eEoeapn+WMluWQiOeJqSA+IG11a2lrYWdvdWJ1dHN1XCA7Civph43opoHmlofljJbosqEgPiBqdXV5b3VidW5rYXphaVwgOwor5bGF6ZaT5YW86aOf5aCCID4gaW1ha2Vuc2hva3Vkb3VcIDsKK+eVsOaWueWwjumbu+iGnCA+IGlob3Vkb3VkZW5tYWt1XCA7CivmjIfnpLrku6PlkI3oqZ4gPiBzaGlqaWRhaW1laXNoaVwgOwor5Zue5b6p5LiN5Y+v6IO9ID4ga2FpZnVrdWZ1a2Fub3VcIDsKK+aLnemHkeS4u+e+qeiAhSA+IGhhaWtpbnNodWdpc2hhXCA7CivkurrpgZPkuLvnvqnogIUgPiBqaW5kb3VzaHVnaXNoYVwgOwor5Lit5aSu5YiG6Zui5bivID4gY2h1dW91YnVucml0YWlcIDsKK+a4qeW4r+S9juawl+WcpyA+IG9udGFpdGVpa2lhdHN1XCA7CivotoXlm73lrrbkuLvnvqkgPiBjaG91a29ra2FzaHVnaVwgOwor5Yip5a6z6Zai5L+C6ICFID4gcmlnYWlrYW5rZWlzaGFcIDsKK+ihhuitsOWToeitsOmVtyA+IHNodXVnaWluZ2ljaG91XCA7CivlsI7ms6LnrqHlrprmlbAgPiBkb3VoYWthbnRlaXN1dVwgOwor5LiB5a2X5b2i5a6a6KaPID4gdGVpamlnYXRham91Z2lcIDsKK+ewoeaYk+ijgeWIpOaJgCA+IGthbicnaXNhaWJhbnNob1wgOwor5Y+N5YuV5Li7576p6ICFID4gaGFuZG91c2h1Z2lzaGFcIDsKK+mfs+alveWbs+abuOmkqCA+IG9uZ2FrdXRvc2hva2FuXCA7CivkuZfnlKjoh6rli5Xou4ogPiBqb3V5b3VqaWRvdXNoYVwgOwor5Zyn5YCS55qE5aSa5pWwID4gYXR0b3V0ZWtpdGFzdXVcIDsKK+mdnuaUv+W6nOe1hOe5lCA+IGhpc2VpZnVzb3NoaWtpXCA7Civoh6rnlLHlirTlg43ogIUgPiBqaXl1dXJvdWRvdXNoYVwgOwor5Y2a5oSb5Li7576p6ICFID4gaGFrdWFpc2h1Z2lzaGFcIDsKK+Wumuacn+S5l+i7iuWIuCA+IHRlaWtpam91c2hha2VuXCA7Civpm7vmsJfmtJfmv6/mqZ8gPiBkZW5raXNlbnRha3VraVwgOwor57WC5oim6KiY5b+15pelID4gc2h1dXNlbmtpbmVuYmlcIDsKK+ekvuS8muS4u+e+qeiAhSA+IHNoYWthaXNodWdpc2hhXCA7CivlsI/lnovoh6rli5Xou4ogPiBrb2dhdGFqaWRvdXNoYVwgOwor5rCR5LqL6Ki06Kif5rOVID4gbWluamlzb3Nob3Vob3VcIDsKK+esrOS6jOmHj+WtkOWMliA+IGRhaW5pcnlvdXNoaWthXCA7Civkuozljp/lrZDliIblrZAgPiBuaWdlbnNoaWJ1bnNoaVwgOwor5bi45Lu75oyH5o+u6ICFID4gam91bmluc2hpa2lzaGFcIDsKK+i+suS6i+ippumok+WgtCA+IG5vdWppc2hpa2Vuam91XCA7Civmg4XloLHljJbnpL7kvJogPiBqb3Vob3VrYXNoYWthaVwgOwor5Li76Kaz5Li7576p6ICFID4gc2h1a2Fuc2h1Z2lzaGFcIDsKK+eEoeaVmeS8muS4u+e+qSA+IG11a3lvdWthaXNodWdpXCA7CivnsbPkvqHlr6norbDkvJogPiBiZWlrYXNoaW5naWthaVwgOwor5pmC6ZaT5aSW5Yq05YONID4gamlrYW5nYWlyb3Vkb3VcIDsKK+eZvuenkeWFqOabuOa0viA+IGh5YWtrYXplbnNob2hhXCA7Civkuoznmb7kuozljYHml6UgPiBuaWh5YWt1aGF0c3VrYVwgOwor5LqM6YeN5L6h5qC85Yi2ID4gbmlqdXVrYWtha3VzZWlcIDsKK+WIkeS6i+iotOion+azlSA+IGtlaWppc29zaG91aG91XCA7Civosqnlo7Lku6PnkIblupcgPiBoYW5iYWlkYWlyaXRlblwgOwor5p2x5Lqc6Ku45rCR5pePID4gdG91YXNob21pbnpva3VcIDsKK+WNmOiRiemjm+ihjOapnyA+IHRhbicneW91aGlrb3VraVwgOwor5Zu95Lya6K2w5LqL6YyyID4ga29ra2FpZ2lqaXJva3VcIDsKK+aUv+W6nOS/neiovOWCtSA+IHNlaWZ1aG9zaG91c2FpXCA7Civkvr/kuZfkuLvnvqnogIUgPiBiaW5qb3VzaHVnaXNoYVwgOwor5LqM5aSn5pS/5YWa5Yi2ID4gbmlkYWlzZWl0b3VzZWlcIDsKK+eEoeWIqeaBr+WFrOWCtSA+IG11cmlzb2t1a291c2FpXCA7CivotrPntKDmgKfljp/nkIYgPiBhc2hpc3Vqb3VnZW5yaVwgOwor6LOH5pys5Li7576p6ICFID4gc2hpaG9uc2h1Z2lzaGFcIDsKK+aWh+WMluWcsOeQhuWtpiA+IGJ1bmthY2hpcmlnYWt1XCA7Civlhazoqo3lgJnoo5zogIUgPiBrb3VuaW5rb3Vob3NoYVwgOwor5LiW55WM6YG45omL5qipID4gc2VrYWlzZW5zaHVrZW5cIDsKK+aWsOefs+WZqOaZguS7oyA+IHNoaW5zZWtraWppZGFpXCA7Civlj5fpqJPlj4LogIPmm7ggPiBqdWtlbnNhbmtvdXNob1wgOwor6Z2Z5q2i55S75pS+6YCBID4gc2Vpc2hpZ2Fob3Vzb3VcIDsKK+WwkeW5tOaEn+WMlumZoiA+IHNob3VuZW5rYW5rYWluXCA7Civplbfot53pm6LovLjpgIEgPiBjaG91a3lvcml5dXNvdVwgOwor5YaN5biw5Luj5ZCN6KmeID4gc2Fpa2lkYWltZWlzaGlcIDsKK+aOp+iotOijgeWIpOaJgCA+IGtvdXNvaGFpYmFuc2hvXCA7CivmlofljJblip/lirTogIUgPiBidW5rYWtvdXJvdXNoYVwgOwor55yf56m65o6D6Zmk5qmfID4gc2hpbmt1dXNvdWppa2lcIDsKK+S6uuW9oua1hOeRoOeSgyA+IG5pbmd5b3Vqb3VydXJpXCA7CivmlL/msrvoqZXoq5blrrYgPiBzZWlqaWh5b3Vyb25rYVwgOwor5Lyd5om/5Y+Z5LqL6KmpID4gZGVuc2hvdWpvamlzaGlcIDsKK+acieimlueVjOmjm+ihjCA+IHl1dXNoaWthaWhpa291XCA7CivpmY3kuInkuJblppnnjosgPiBnb3V6YW56ZW15b3VvdVwgOwor562J6auY57ea5Zyw5ZuzID4gdG91a291c2VuY2hpenVcIDsKK+ijvemAoOW5tOaciOaXpSA+IHNlaXpvdW5lbmdhcHBpXCA7CivlnLDmlrnkuqTku5jnqI4gPiBjaGlob3Vrb3VmdXplaVwgOwor5pel5pys6Kqe5pWZ5pysID4gbmlob25nb2t5b3Vob25cIDsKK+S/mOiZnOWPjuWuueaJgCA+IGZ1cnlvc2h1dXlvdWpvXCA7CivnqbrmsJflnKfnuK7mqZ8gPiBrdXVraWFzc2h1a3VraVwgOwor5Zu96YCj6KiY5b+15pelID4ga29rdXJlbmtpbmVuYmlcIDsKK+eEoeiomOWQjeaKleelqCA+IG11a2ltZWl0b3VoeW91XCA7Civoh6rnhLbkuLvnvqnogIUgPiBzaGl6ZW5zaHVnaXNoYVwgOwor566h5Yy65rCX6LGh5Y+wID4ga2Fua3VraXNob3VkYWlcIDsKK+azleWumua6luWCmemHkSA+IGhvdXRlaWp1bmJpa2luXCA7CivmtbfmtIvmgKfmsJflgJkgPiBrYWl5b3VzZWlraWtvdVwgOwor5aSW6LKo5rqW5YKZ6auYID4gZ2Fpa2FqdW5iaWRha2FcIDsKK+aXheihjOS7o+eQhuW6lyA+IHJ5b2tvdWRhaXJpdGVuXCA7CivkuojpgbjpgJrpgY7ogIUgPiB5b3NlbnRzdXVrYXNoYVwgOwor5aWz5oCn6Kej5pS+6KuWID4gam9zZWlrYWlob3Vyb25cIDsKK+mBuuS8neWtkOayu+eZgiA+IGlkZW5zaGljaGlyeW91XCA7Civntbblr77kuLvnvqnogIUgPiB6ZXR0YWlzaHVnaXNoYVwgOwor5YWx5ZCM54KK5LqL5aC0ID4ga3lvdWRvdXN1aWppYmFcIDsKK+emj+elieS6i+WLmeaJgCA+IGZ1a3VzaGlqaW11c2hvXCA7CivkuInop5Lns7vnlbDluLggPiBzYW5rYWt1a2VpaWpvdVwgOwor5rC055Sj6Kmm6aiT5omAID4gc3Vpc2Fuc2hpa2Vuam9cIDsKK+i7jeS6i+ijgeWIpOaJgCA+IGd1bmppc2FpYmFuc2hvXCA7CivpmqDpgIDolLXnianos4cgPiBpbnRhaXpvdWJ1c3NoaVwgOwor5Y+C6ICD5Zuz5pu46aSoID4gc2Fua291dG9zaG9rYW5cIDsKK+eEoee3muWRqOazouaVsCA+IG11c2Vuc2h1dWhhc3V1XCA7Civph43ovrLkuLvnvqnogIUgPiBqdXVub3VzaHVnaXNoYVwgOwor5LmX5ZCI6Ieq5YuV6LuKID4gbm9yaWFpamlkb3VzaGFcIDsKK+e0sOiDnumBuuS8neWtpiA+IHNhaWJvdWlkZW5nYWt1XCA7CivotoXpn7Pms6LmtJfmtYQgPiBjaG91b25wYXNlbmpvdVwgOwor5YiR5LqL6KKr5ZGK5Lq6ID4ga2VpamloaWtva3VuaW5cIDsKK+e+pOS8neaQrOaZgumWkyA+IGd1bmRlbnBhbmppa2FuXCA7CivlgaXlurfkv53pmbrms5UgPiBrZW5rb3Vob2tlbmhvdVwgOwor5bi45Lu755CG5LqL5Zu9ID4gam91bmlucmlqaWtva3VcIDsKK+mdnumHkeWxnuWFg+e0oCA+IGhpa2luem9rdWdlbnNvXCA7CivpmbjkuIroh6rooZvpmoogPiByaWt1am91amllaXRhaVwgOwor5L+d6Zm65Yun6KqY5ZOhID4gaG9rZW5rYW4nJ3l1dWluXCA7CivnqpLntKDlm7rlrprms5UgPiBjaGlzc29rb3RlaWhvdVwgOwor55u45a++5oCn5Y6f55CGID4gc291dGFpc2VpZ2VucmlcIDsKK+e+juihk+aEm+WlveWutiA+IGJpanV0c3VhaWtvdWthXCA7CivkuK3nn7PlmajmmYLku6MgPiBjaHV1c2Vra2lqaWRhaVwgOwor5Li755+l5Li7576p6ICFID4gc2h1Y2hpc2h1Z2lzaGFcIDsKK+ialeezuOippumok+aJgCA+IHNhbnNoaXNoaWtlbmpvXCA7Civnq4vkvZPlub7kvZXlraYgPiByaXR0YWlraWthZ2FrdVwgOwor5LiN5YuV55Sj6ZGR5a6aID4gZnVkb3VzYW5rYW50ZWlcIDsKK+mVt+i3nemboumjm+ihjCA+IGNob3VreW9yaWhpa291XCA7CivnrKzkuozmrKHmgKflvrQgPiBkYWluaWppc2VpY2hvdVwgOwor5Y+l5qeL6YCg5paH5rOVID4ga3Vrb3V6b3VidW5wb3VcIDsKK+Wjq+WumOWAmeijnOeUnyA+IHNoaWthbmtvdWhvc2VpXCA7Civlt6Hlm57lm7Pmm7jppKggPiBqdW5rYWl0b3Nob2thblwgOwor5b605YW15b+M6YG/6ICFID4gY2hvdWhlaWtpaGlzaGFcIDsKK+WHuuiotOacn+mZkOazlSA+IHNodXNzb2tpZ2VuaG91XCA7Civou43nlKjovLjpgIHmqZ8gPiBndW4nJ3lvdXl1c291a2lcIDsKK+iogOiqnuWcsOeQhuWtpiA+IGdlbmdvY2hpcmlnYWt1XCA7CivliY3mlrnlvozlhoblorMgPiB6ZW5wb3Vrb3VlbmZ1blwgOwor6Jmr5qeY56qB6LW354KOID4gY2h1dXlvdXRva2tpZW5cIDsKK+acieW9ouaWh+WMluiyoSA+IHl1dWtlaWJ1bmthemFpXCA7Civml6fnn7PlmajmmYLku6MgPiBreXV1c2Vra2lqaWRhaVwgOwor6Ieq55Sx5rCR5qip6KuWID4gaml5dXVtaW5rZW5yb25cIDsKK+egtOeUo+ijgeWIpOaJgCA+IGhhc2Fuc2FpYmFuc2hvXCA7Civkurrouqvkv53orbfms5UgPiBqaW5zaGluaG9nb2hvdVwgOwor5pS+5bCE5oCn5YWD57SgID4gaG91c2hhc2VpZ2Vuc29cIDsKK+aNleiZnOWPjuWuueaJgCA+IGhvcnlvc2h1dXlvdWpvXCA7CivnlJ/oqIjosrvmjIfmlbAgPiBzZWlrZWloaXNoaXN1dVwgOwor5Zu95Lya5Zuz5pu46aSoID4ga29ra2FpdG9zaG9rYW5cIDsKK+mrmOetieW8geWLmeWumCA+IGtvdXRvdWJlbm11a2FuXCA7CivmmYLplpPpoIbluo/nqY0gPiBqaWthbmp1bmpvc2VraVwgOwor5Zyw55CD5rip5pqW5YyWID4gY2hpa3l1dW9uZGFua2FcIDsKK+mdnuW4uOWLpOism+W4qyA+IGhpam91a2lua291c2hpXCA7Civoh6rli5Xou4rlrabmoKEgPiBqaWRvdXNoYWdha2tvdVwgOwor56iO6YeR6YG/6Zuj5ZywID4gemVpa2luaGluYW5jaGlcIDsKK+S6uumBk+eahOaPtOWKqSA+IGppbmRvdXRla2llbmpvXCA7CivmtojosrvogIXpgYvli5UgPiBzaG91aGlzaGF1bmRvdVwgOwor5Yq05YON5Z+65rqW5rOVID4gcm91ZG91a2lqdW5ob3VcIDsKK+a8ouWtl+WItumZkOirliA+IGthbmppc2VpZ2Vucm9uXCA7Civlkajms6LmlbDlgY/np7sgPiBzaHV1aGFzdXVoZW4nJ2lcIDsKK+eEoeWItumZkOiyv+aYkyA+IG11c2VpZ2VuYm91ZWtpXCA7CivmrKHlhYPmraPliYfljJYgPiBqaWdlbnNlaXNva3VrYVwgOwor5Lq65ZCN55So5ryi5a2XID4gamlubWVpeW91a2FuamlcIDsKK+W+geWkt+Wkp+Wwhui7jSA+IHNlaWl0YWlzaG91Z3VuXCA7CivnlKPmpa3kuojlgpnou40gPiBzYW5neW91eW9iaWd1blwgOwor5Yip5a2Q5bmz6KGh56iOID4gcmlzaGloZWlrb3V6ZWlcIDsKK+eEoeS7u+aJgOWkp+iHoyA+IG11bmluc2hvZGFpamluXCA7Civkuozph43nm7LmpJzms5UgPiBuaWp1dW1vdWtlbmhvdVwgOwor6Ieq6LOg6LKs5L+d6Zm6ID4gamliYWlzZWtpaG9rZW5cIDsKK+mHjeeCremFuOabuemBlCA+IGp1dXRhbnNhbnNvdWRhXCA7Civplbfot53pm6Lpm7voqbEgPiBjaG91a3lvcmlkZW53YVwgOwor6YG65Lyd5a2Q5bel5a2mID4gaWRlbnNoaWtvdWdha3VcIDsKK+S4jeWPr+iDvemBuOaKniA+IGZ1a2Fub3VzZW50YWt1XCA7Civlj6Xmp4vpgKDopo/liYcgPiBrdWtvdXpvdWtpc29rdVwgOwor5omL5b2i5Lqk5o+b5omAID4gdGVnYXRha291a2Fuam9cIDsKK+WcsOaWueiHquayu+S9kyA+IGNoaWhvdWppY2hpdGFpXCA7CivkuI3opo/liYfli5XoqZ4gPiBmdWtpc29rdWRvdXNoaVwgOwor5a6M5YWo5Li7576p6ICFID4ga2FuemVuc2h1Z2lzaGFcIDsKK+ani+aIkOe0oOani+mAoCA+IGtvdXNlaXNva291em91XCA7CivovInosqjlkIPmsLTnt5ogPiBzYWlrYWtpc3N1aXNlblwgOwor5rC06YqA5rip5bqm6KiIID4gc3VpZ2luJydvbmRva2VpXCA7CivmlbDnkIboq5bnkIblraYgPiBzdXVyaXJvbnJpZ2FrdVwgOwor55qH5aSq5a2Q5q6/5LiLID4ga291dGFpc2hpZGVua2FcIDsKK+aIpuS6ieacquS6oeS6uiA+IHNlbnNvdW1pYm91amluXCA7CivnoLTnlKPnrqHosqHkurogPiBoYXNhbmthbnphaW5pblwgOwor5Y2U5a6a5LiW55WM5pmCID4ga3lvdXRlaXNla2FpamlcIDsKK+a1t+S4iuS/neWuieW6gSA+IGthaWpvdWhvYW5jaG91XCA7CivnibnnlbDlgKTliIbop6MgPiB0b2t1aWNoaWJ1bmthaVwgOwor5rCR5Za25YyW5LyB5qWtID4gbWluJydlaWtha2lneW91XCA7CivlpKfopb/mtIvmqKrmlq0gPiB0YWlzZWl5b3VvdWRhblwgOwor5Lq65bel6YG/5aaK5rOVID4gamlua291aGluaW5ob3VcIDsKK+mtmue+pOaOouefpeapnyA+IGd5b2d1bnRhbmNoaWtpXCA7CivpgYrpm6Lln7rlj43lv5wgPiB5dXVyaWtpaGFuJydub3VcIDsKK+Wwj+eUsOWOn+ipleWumiA+IG9kYXdhcmFoeW91am91XCA7CivpqJLpn7PpmLLmraLms5UgPiBzb3VvbmJvdXNoaWhvdVwgOwor55aR5ZWP5Luj5ZCN6KmeID4gZ2ltb25kYWltZWlzaGlcIDsKK+ebuOWvvuaAp+eQhuirliA+IHNvdXRhaXNlaXJpcm9uXCA7CivphbjljJbpmLLmraLliaQgPiBzYW5rYWJvdXNoaXphaVwgOwor56ys5LqM5qyh55Sj5qWtID4gZGFpbmlqaXNhbmd5b3VcIDsKK+acieapn+Whqea6tuWqkiA+IHl1dWtpZW4nJ3lvdWJhaVwgOwor6Zu75a2Q6KiI566X5qmfID4gZGVuc2hpa2Vpc2Fua2lcIDsKK+aIpumXmOeKoOeJsuiAhSA+IHNlbnRvdWdpc2Vpc2hhXCA7CivmsJHplpPoiKrnqbrmqZ8gPiBtaW5rYW5rb3VrdXVraVwgOwor5Y+N5oim5Li7576p6ICFID4gaGFuc2Vuc2h1Z2lzaGFcIDsKK+ims+WFieahiOWGheaJgCA+IGthbmtvdWFuJyduYWlqb1wgOwor6auY6b2i5YyW56S+5LyaID4ga291cmVpa2FzaGFrYWlcIDsKK+iomOWPt+irlueQhuWtpiA+IGtpZ291cm9ucmlnYWt1XCA7CivmjIflkI3miYvphY3kurogPiBzaGltZWl0ZWhhaWppblwgOwor6Ieq6Lui6LuK5peF6KGMID4gaml0ZW5zaGFyeW9rb3VcIDsKK+W5s+Wdh+WkqumZveaZgiA+IGhlaWtpbnRhaXlvdWppXCA7Civlpb3msJfmgKfntLDoj4wgPiBrb3VraXNlaXNhaWtpblwgOwor6Zu75rOi5pyb6YGg6Y+hID4gZGVucGFib3Vlbmt5b3VcIDsKK+WKtOWDjemBi+WLleiAhSA+IHJvdWRvdXVuZG91c2hhXCA7CivpnIfngb3oqJjlv7Xml6UgPiBzaGluc2Fpa2luZW5iaVwgOwor5oKq5b6z5pS/5rK75a62ID4gYWt1dG9rdXNlaWppa2FcIDsKK+aDheWgseS4u+imgee0oCA+IGpvdWhvdXNodXlvdXNvXCA7CivlhazmrablkIjkvZPoq5YgPiBrb3VidWdhdHRhaXJvblwgOwor6Zu75YWJ5o6y56S65p2/ID4gZGVua291a2VpamliYW5cIDsKK+S+oembu+WtkOeKtuaFiyA+IGthZGVuc2hpam91dGFpXCA7CivmsLTnlKPliqDlt6Xlk4EgPiBzdWlzYW5rYWtvdWhpblwgOwor5bmz6Z2i5bm+5L2V5a2mID4gaGVpbWVua2lrYWdha3VcIDsKK+iHqui7oui7iue9ruWgtCA+IGppdGVuc2hhb2tpYmFcIDsKK+aVmeiCsuWnlOWToeS8miA+IGt5b3Vpa3VpaW5rYWlcIDsKK+awtOS4iumjm+ihjOapnyA+IHN1aWpvdWhpa291a2lcIDsKK+WOreS4luaCsuims+iAhSA+IGVuc2VpaGlrYW5zaGFcIDsKK+W+jOacn+WNsOixoea0viA+IGtvdWtpaW5zaG91aGFcIDsKK+Wkp+imj+aooeaIpuS6iSA+IGRhaWtpYm9zZW5zb3VcIDsKK+eEoeaLheS/neekvuWCtSA+IG11dGFucG9zaGFzYWlcIDsKK+mBoOW/g+WIhumbouapnyA+IGVuc2hpbmJ1bnJpa2lcIDsKK+mbu+awl+WGt+iUteW6qyA+IGRlbmtpcmVpem91a29cIDsKK+acgOS9jua4qeW6puioiCA+IHNhaXRlaW9uZG9rZWlcIDsKK+mhp+WVj+W8geitt+WjqyA+IGtvbW9uYmVuZ29zaGlcIDsKK+S6jOehq+WMlueCree0oCA+IG5pcnl1dWthdGFuc29cIDsKK+aXqeacn+itpuaIkuapnyA+IHNvdWtpa2Vpa2Fpa2lcIDsKK+ani+mAoOmBuuS8neWtkCA+IGtvdXpvdWlkZW5zaGlcIDsKK+mdkumKheWZqOaZguS7oyA+IHNlaWRvdWtpamlkYWlcIDsKK+S8muioiOaknOafu+mZoiA+IGthaWtlaWtlbnNhaW5cIDsKK+mmluS9jeaUu+mYsuaIpiA+IHNodWlrb3Vib3VzZW5cIDsKK+WFqOaWueS9jeWkluS6pCA+IHplbmhvdWlnYWlrb3VcIDsKK+eEoeS6uuWMluW3peWgtCA+IG11amlua2Frb3Vqb3VcIDsKK+eBq+S6i+WgtOazpeajkiA+IGthamliYWRvcm9ib3VcIDsKK+S6uuW3peaghOmkiuWFkCA+IGppbmtvdWVpeW91amlcIDsKK+asp+exs+iruOiogOiqniA+IG91YmVpc2hvZ2VuZ29cIDsKK+S6uuW3peWtteWMluazlSA+IGppbmtvdWZ1a2Fob3VcIDsKK+i7jeS6i+mhp+WVj+WboyA+IGd1bmppa29tb25kYW5cIDsKK+mrmOWxpOWkqeawl+WbsyA+IGtvdXNvdXRlbmtpenVcIDsKK+S7rumdouiInui4j+S8miA+IGthbWVuYnV0b3VrYWlcIDsKK+S9nOalremDqOS8muahiCA+IHNhZ3lvdWJ1a2FpYW5cIDsKK+aYoOeUu+ipleirluWutiA+IGVpZ2FoeW91cm9ua2FcIDsKK+esrOS6jOasoeWkp+aIpiA+IGRhaW5paml0YWlzZW5cIDsKK+mHjuasoemmrOagueaApyA+IHlhaml1bWFrb25qb3VcIDsKK+iLseS8muipseWtpuagoSA+IGVpa2Fpd2FnYWtrb3VcIDsKK+WJjeaWueS4jeazqOaEjyA+IHplbnBvdWZ1Y2h1dWlcIDsKK+WcsOaWueWFrOWLmeWToSA+IGNoaWhvdWtvdW11aW5cIDsKK+iHquWLleiyqeWjsuapnyA+IGppZG91aGFuYmFpa2lcIDsKK+mbu+ejgeiqv+eQhuWZqCA+IGRlbmppY2hvdXJpa2lcIDsKK+iIquepuuiHquihm+maiiA+IGtvdWt1dWppZWl0YWlcIDsKK+apn+mWouaKleizh+WutiA+IGtpa2FudG91c2hpa2FcIDsKK+Wbnui3r+mBruaWreapnyA+IGthaXJvc2hhZGFua2lcIDsKK+iBlui3r+WKoOeXhemZoiA+IHNlaXJva2FieW91aW5cIDsKK+WIhumbouS4u+e+qeiAhSA+IGJ1bnJpc2h1Z2lzaGFcIDsKK+aGsuazleiomOW/teaXpSA+IGtlbnBvdWtpbmVuYmlcIDsKK+WKoOa4m+aKteaKl+WZqCA+IGthZ2VudGVpa291a2lcIDsKK+iHquWLleiyqeWjsuWZqCA+IGppZG91aGFuYmFpa2lcIDsKK+eEoeWFjeiosemBi+i7oiA+IG11bWVua3lvdW50ZW5cIDsKK+S4jeWPr+imluWFiee3miA+IGZ1a2FzaGlrb3VzZW5cIDsKK+iyv+aYk+iHqueUseWMliA+IGJvdWVraWppeXV1a2FcIDsKK+epuuawl+WItuWLleapnyA+IGt1dWtpc2VpZG91a2lcIDsKK+S6lOWNgeatqeeZvuatqSA+IGdvanVwcG9oeWFwcG9cIDsKK+WOn+eQhuS4u+e+qeiAhSA+IGdlbnJpc2h1Z2lzaGFcIDsKK+WkmuWFg+aWh+WMluirliA+IHRhZ2VuYnVua2Fyb25cIDsKK+itsua4oeaAp+mgkOmHkSA+IGpvdXRvc2VpeW9raW5cIDsKK+WbveWutuS4u+e+qeiAhSA+IGtva2thc2h1Z2lzaGFcIDsKK+ayv+WyuOitpuWCmemaiiA+IGVuZ2Fua2VpYml0YWlcIDsKK+WAi+S6uuS4u+e+qeiAhSA+IGtvamluc2h1Z2lzaGFcIDsKK+WkluS6pOWnlOWToemVtyA+IGdhaWtvdWlpbmNob3VcIDsKK+eEoeaKteaKl+S4u+e+qSA+IG11dGVpa291c2h1Z2lcIDsKK+aUvuWwhOiDveaxmuafkyA+IGhvdXNoYW5vdW9zZW5cIDsKK+mbu+awl+iHquWLlei7iiA+IGRlbmtpamlkb3VzaGFcIDsKK+WEqueUn+S/neitt+azlSA+IHl1dXNlaWhvZ29ob3VcIDsKK+WcsOaWueS6i+WLmeaJgCA+IGNoaWhvdWppbXVzaG9cIDsKK+i8uOWFpeiHqueUseWMliA+IHl1bnl1dWppeXV1a2FcIDsKK+eEoeWIqeaBr+WCteWLmSA+IG11cmlzb2t1c2FpbXVcIDsKK+ehq+m7hOmFuOWMlueJqSA+IGlvdXNhbmthYnV0c3VcIDsKK+mBk+i3r+aOg+mZpOS6uiA+IGRvdXJvc291amlqaW5cIDsKK+S7gei8quWKoOeLguiogCA+IG5pd2FrYWt5b3VnZW5cIDsKK+iHquiHquWFrO+8k+WFmiA+IGppamlrb3VzYW50b3VcIDsKK+awl+euoeaUr+iCuueCjiA+IGtpa2Fuc2hpaGFpZW5cIDsKK+WkmumHjeWCteWLmeiAhSA+IHRhanV1c2FpbXVzaGFcIDsKK+irruWVj+WnlOWToeS8miA+IHNoaW1vbicnaWlua2FpXCA7Civpq5jpq5jluqbpo5vooYwgPiBrb3Vrb3Vkb2hpa291XCA7Civlm73kvJrorbDkuovloIIgPiBrb2trYWlnaWppZG91XCA7CivkuozljYHlm5vnr4DmsJcgPiBuaWp1dXNoaXNla2tpXCA7CivnhKHlvaLmlofljJbosqEgPiBtdWtlaWJ1bmthemFpXCA7CivluILloLToh6rnlLHljJYgPiBzaGlqb3VqaXl1dWthXCA7CivntYzllrblpJrop5LljJYgPiBrZWllaXRha2FrdWthXCA7CivkuLvmiJHkuLvnvqnogIUgPiBzaHVnYXNodWdpc2hhXCA7Civmmpflj7fljJbmiYvms5UgPiBhbmdvdWthc2h1aG91XCA7CivkuI3opovou6LoirjogIUgPiBtaXp1dGVuZ2Vpc2hhXCA7Civlip/liKnkuLvnvqnogIUgPiBrb3VyaXNodWdpc2hhXCA7Civoh6rli5Xou4rkv53pmbogPiBqaWRvdXNoYWhva2VuXCA7Civoh6rlt7HpoZXnpLrmrLIgPiBqaWtva2Vuaml5b2t1XCA7CivnhKHphY3lvZPkv53pmbogPiBtdWhhaXRvdWhva2VuXCA7CivmnpzmqLnmoL3ln7nogIUgPiBrYWp1c2FpYmFpc2hhXCA7Civoo4HliKTlrpjlv4zpgb8gPiBzYWliYW5rYW5raWhpXCA7CivpnZ7mraboo4XlnLDluK8gPiBoaWJ1c291Y2hpdGFpXCA7CivnqbrmsJfmuIXmtYTmqZ8gPiBrdXVraXNlaWpvdWtpXCA7CivkuIDkuovkuI3lho3orbAgPiBpY2hpamlmdXNhaWdpXCA7CivlibXlu7roqJjlv7Xml6UgPiBzb3VrZW5raW5lbmJpXCA7Civmma7pgY3lpqXlvZPmgKcgPiBmdWhlbmRhdG91c2VpXCA7Civljp/lrZDnoLTlo4rmqZ8gPiBnZW5zaGloYWthaWtpXCA7CivntZDlqZroqJjlv7Xml6UgPiBrZWtrb25raW5lbmJpXCA7CivlpKfpm6jms6jmhI/loLEgPiBvb2FtZWNodXVpaG91XCA7CivnsbPmnbHpg6jmmYLplpMgPiBiZWl0b3VidWppa2FuXCA7CivliqPmgKfpgbrkvJ3lrZAgPiByZXNzZWlpZGVuc2hpXCA7CivnhKHkvqHlgKTos4fnlKMgPiBtdWthY2hpc2hpc2FuXCA7CivlgaXlurfkv53pmbrljLsgPiBrZW5rb3Vob2tlbicnaVwgOwor5bi45Lu75aeU5ZOh5LyaID4gam91bmluJydpaW5rYWlcIDsKK+iHqueUseS4u+e+qeiAhSA+IGppeXV1c2h1Z2lzaGFcIDsKK+efreazouWPl+S/oeapnyA+IHRhbnBhanVzaGlua2lcIDsKK+egtOWjiuS4u+e+qeiAhSA+IGhha2Fpc2h1Z2lzaGFcIDsKK+W+oemDveWQiOS4u+e+qSA+IGdvdHN1Z291c2h1Z2lcIDsKK+S6jOWNgeaXpeWkp+aguSA+IGhhdHN1a2FkYWlrb25cIDsKK+iQveS4i+WCmOmDqOmaiiA+IHJha2thc2FuYnV0YWlcIDsKK+mVt+i3nembouS+neWtmCA+IGNob3VreW9yaWl6b25cIDsKK+espuWPt+WkieaPm+WZqCA+IGZ1Z291aGVua2Fua2lcIDsKK+mAgemHkeWwj+WIh+aJiyA+IHNvdWtpbmtvZ2l0dGVcIDsKK+WvvuaIpui7iueBq+WZqCA+IHRhaXNlbnNoYWtha2lcIDsKK+W8l+WMluawtOe0oOmFuCA+IGZ1a2thc3Vpc29zYW5cIDsKK+ebuOijnOaAp+WOn+eQhiA+IHNvdWhvc2VpZ2VucmlcIDsKK+iSuOawl+apn+mWoui7iiA+IGpvdWtpa2lrYW5zaGFcIDsKK+aWh+WMluS6i+alremDqCA+IGJ1bmthamlneW91YnVcIDsKK+eEoeiomOWQjeekvuWCtSA+IG11a2ltZWlzaGFzYWlcIDsKK+WQiOWQjOaFsOmciuelrSA+IGdvdWRvdWlyZWlzYWlcIDsKK+eBq+eBveWgseefpeapnyA+IGthc2FpaG91Y2hpa2lcIDsKK+mbu+azouaOouefpeapnyA+IGRlbnBhdGFuY2hpa2lcIDsKK+WPr+WkieaKteaKl+WZqCA+IGthaGVudGVpa291a2lcIDsKK+WFrOWLmeWToeippumokyA+IGtvdW11aW5zaGlrZW5cIDsKK+Wuh+Wumemjm+ihjOWjqyA+IHVjaHV1aGlrb3VzaGlcIDsKK+eci+itt+WppuWtpumZoiA+IGthbmdvZnVnYWt1aW5cIDsKK+WNgeWtl+i7jemojuWjqyA+IGp1dWppZ3Vua2lzaGlcIDsKK+eEoeapn+mrmOWIhuWtkCA+IG11a2lrb3VidW5zaGlcIDsKK+eBq+eBveWgseefpeWZqCA+IGthc2FpaG91Y2hpa2lcIDsKK+mbu+azouaOouefpeWZqCA+IGRlbnBhdGFuY2hpa2lcIDsKK+aMh+aPruaJgOa8lOe/kiA+IHNoaWtpam9lbnNodXVcIDsKK+S6jOmFuOWMlueqkue0oCA+IG5pc2Fua2FjaGlzc29cIDsKK+iHquWLlei7iumbu+ipsSA+IGppZG91c2hhZGVud2FcIDsKK+aDheWgseWPr+imluWMliA+IGpvdWhvdWthc2hpa2FcIDsKK+aRguawj++8ku+8kOW6piA+IHNlc3NoaW5panV1ZG9cIDsKK+Wwj+Wei+i1pOWutuiaiiA+IGtvZ2F0YWFrYWlla2FcIDsKK+e1kOWpmuaKq+mcsuWutCA+IGtla2tvbmhpcm91ZW5cIDsKK+a1t+S4iuiHquihm+maiiA+IGthaWpvdWppZWl0YWlcIDsKK+WOn+ahiOWnlOWToeS8miA+IGdlbicnYW4nJ2lpbmthaVwgOwor6YG45omL5qip6Kmm5ZCIID4gc2Vuc2h1a2VuamlhaVwgOwor5pel5ZKM6KaL5Li7576pID4gaGl5b3JpbWlzaHVnaVwgOwor5Luu6KOF6Iie6LiP5LyaID4ga2Fzb3VidXRvdWthaVwgOwor6YGu5YWJ5Zmo5Zyf5YG2ID4gc2hha291a2lkb2d1dVwgOwor5LiL5rC05Yem55CG5aC0ID4gZ2VzdWlzaG9yaWpvdVwgOwor5ZCI55CG5Li7576p6ICFID4gZ291cmlzaHVnaXNoYVwgOwor5qW95Zmo5ryU5aWP6ICFID4gZ2Fra2llbnNvdXNoYVwgOwor5Y+k5YW45Li7576p6ICFID4ga290ZW5zaHVnaXNoYVwgOwor5Zu95Zyf5Zyw55CG6ZmiID4ga29rdWRvY2hpcmlpblwgOwor5biC6KGX5YyW5Yy65Z+fID4gc2hpZ2Fpa2FrdWlraVwgOwor6Zu75rCX5qmf6Zai6LuKID4gZGVua2lraWthbnNoYVwgOwor5byl5qyh6aas5qC55oCnID4geWFqaXVtYWtvbmpvdVwgOwor6ZaL5qCh6KiY5b+15pelID4ga2Fpa291a2luZW5iaVwgOwor5LiN5Y+v55+l6KuW6ICFID4gZnVrYWNoaXJvbnNoYVwgOwor54Sh6KiY5ZCN5YK15qipID4gbXVraW1laXNhaWtlblwgOwor5YWo5rOi5Y+X5L+h5qmfID4gemVucGFqdXNoaW5raVwgOwor5bmz5ZKM5Li7576p6ICFID4gaGVpd2FzaHVnaXNoYVwgOwor6Z2S5aSp5LqV5LqI566XID4gYW90ZW5qb3V5b3NhblwgOwor54q25rOB5oSP5ZGz6KuWID4gam91a3lvdWltaXJvblwgOwor5ryi5a2X5paH5YyW5ZyPID4ga2FuamlidW5rYWtlblwgOwor5q2v56eR5oqA5bel5aOrID4gc2hpa2FnaWtvdXNoaVwgOwor5rW35LiK6Ly46YCB6LevID4ga2Fpam91eXVzb3Vyb1wgOwor6Kq/5YGc5aeU5ZOh5LyaID4gY2hvdXRlaWlpbmthaVwgOwor6KGM5pa55LiN5piO6ICFID4geXVrdWVmdW1laXNoYVwgOwor5YCL5Lq655qE5oSP6KaLID4ga29qaW50ZWtpaWtlblwgOwor5YyX5Zu96LWk5rW36ICBID4gaG9ra29rdWFrYWViaVwgOwor5L2/6YCU5LiN5piO6YeRID4gc2hpdG9mdW1laWtpblwgOwor5rCR5Li75YyW6YGL5YuVID4gbWluc2h1a2F1bmRvdVwgOwor5aSp5rCX55u46KuH5omAID4gdGVua2lzb3VkYW5qb1wgOwor5Y+C5Yqg5biM5pyb6ICFID4gc2Fua2FraWJvdXNoYVwgOwor5oeQ55aR5Li7576p6ICFID4ga2FpZ2lzaHVnaXNoYVwgOwor5biC6K2w5Lya6K2w5ZOhID4gc2hpZ2lrYWlnaWluXCA7CivkuK3lpK7lp5Tlk6HkvJogPiBjaHV1b3VpaW5rYWlcIDsKK+iDg+mFuOmBjuWkmueXhyA+IGlzYW5rYXRhc2hvdVwgOwor6Zu75rCX6Zmw5oCn5bqmID4gZGVua2lpbnNlaWRvXCA7CivnhKHoqJjlkI3poJDph5EgPiBtdWtpbWVpeW9raW5cIDsKK+WIqeW3seS4u+e+qeiAhSA+IHJpa29zaHVnaXNoYVwgOwor5Zu95a625YWs5YuZ5ZOhID4ga29ra2Frb3VtdWluXCA7CivluIzlnJ/poZ7lhYPntKAgPiBraWRvcnVpZ2Vuc29cIDsKK+mbu+awl+aOg+mZpOapnyA+IGRlbmtpc291amlraVwgOwor6JaU6JaH5Y2B5a2X5ZujID4gYmFyYWp1dWppZGFuXCA7Civlr4zlo6vngavlsbHluK8gPiBmdWppa2F6YW50YWlcIDsKK+aYn+W6p+aKleW9seapnyA+IHNlaXphdG91ZWlraVwgOwor5qyn5bee5aeU5ZOh5LyaID4gb3VzaHV1aWlua2FpXCA7CivkuIrkvY3kupLmj5vmgKcgPiBqb3VpZ29rYW5zZWlcIDsKK+aUvuWwhOe3muenkeWMuyA+IGhvdXNoYXNlbmthaVwgOwor54Gr54KO5pS+5bCE5ZmoID4ga2FlbmhvdXNoYWtpXCA7CivlkIjlkIzlp5Tlk6HkvJogPiBnb3Vkb3VpaW5rYWlcIDsKK+mBuueUo+euoeeQhuS6uiA+IGlzYW5rYW5yaW5pblwgOwor6LK/5piT5L6d5a2Y5bqmID4gYm91ZWtpaXpvbmRvXCA7CivlirTlg43lp5Tlk6HkvJogPiByb3Vkb3VpaW5rYWlcIDsKK+aooeWei+mjm+ihjOapnyA+IG1va2VpaGlrb3VraVwgOwor5LiL5L2N56+E55aH5YyWID4ga2FpaGFuY2h1dWthXCA7CivpnZ7llrbliKnlm6PkvZMgPiBoaWVpcmlkYW50YWlcIDsKK+S6nOeGseW4r+awl+WAmSA+IGFuZXR0YWlraWtvdVwgOwor54Sh5pS/5bqc5Li7576pID4gbXVzZWlmdXNodWdpXCA7Civnp7vli5Xlm7Pmm7jppKggPiBpZG91dG9zaG9rYW5cIDsKK+Wun+ihjOWnlOWToeS8miA+IGppa2tvdWlpbmthaVwgOwor55WZ5a6I55Wq6Zu76KmxID4gcnVzdWJhbmRlbndhXCA7CivmpJzoqI7lp5Tlk6HkvJogPiBrZW50b3VpaW5rYWlcIDsKK+ihhuitsOmZouitsOWToSA+IHNodXVnaWluZ2lpblwgOwor6YG46ICD5aeU5ZOh5LyaID4gc2Vua291aWlua2FpXCA7CivpoZ7nvqnoqp7ovp7lhbggPiBydWlnaWdvaml0ZW5cIDsKK+WPs+aWuemrmOm6l+alvSA+IHVob3Vrb21hZ2FrdVwgOwor6IKl5Y6a5oCn6by754KOID4gaGlrb3VzZWliaWVuXCA7CivkupzphbjljJbnqpLntKAgPiBhc2Fua2FjaGlzc29cIDsKK+WuieWumuWQjOS9jeS9kyA+IGFudGVpZG91aXRhaVwgOwor5paH5a2X56ym5Y+357O7ID4gbW9qaWZ1Z291a2VpXCA7CivljLvnmYLovLjpgIHmqZ8gPiBpcnlvdXl1c291a2lcIDsKK+mBjumFuOWMluawtOe0oCA+IGthc2Fua2FzdWlzb1wgOwor5Luj55CG5aeU5Lu754q2ID4gZGFpcmlpbmluam91XCA7Civkupzlr5LluK/msJflgJkgPiBha2FudGFpa2lrb3VcIDsKK+mrmOmfs+mDqOiomOWPtyA+IGtvdW9uYnVraWdvdVwgOwor5L2N55u45bm+5L2V5a2mID4gaXNvdWtpa2FnYWt1XCA7CivkvIrli6LlpKfnpZ7lrq4gPiBpc2VkYWlqaW5ndXVcIDsKK+S6jOmFuOWMlueCree0oCA+IG5pc2Fua2F0YW5zb1wgOwor5L2O6Z+z6YOo6KiY5Y+3ID4gdGVpb25idWtpZ291XCA7CivmhJvku5bkuLvnvqnogIUgPiBhaXRhc2h1Z2lzaGFcIDsKK+S4u+aEj+S4u+e+qeiAhSA+IHNodWlzaHVnaXNoYVwgOwor5qyh6YW45YyW54Kt57SgID4gamlzYW5rYXRhbnNvXCA7Civmsrvlronntq3mjIHms5UgPiBjaGlhbicnaWppaG91XCA7CivkupXmiLjnq6/kvJrorbAgPiBpZG9iYXRha2FpZ2lcIDsKK+W6puaVsOWIhuW4g+WbsyA+IGRvc3V1YnVucHV6dVwgOwor6Ieq5YuV6LuK5LqL5pWFID4gamlkb3VzaGFqaWtvXCA7CivovrLlnLDlp5Tlk6HkvJogPiBub3VjaGlpaW5rYWlcIDsKK+WCteWLmeS4jeWxpeihjCA+IHNhaW11ZnVyaWtvdVwgOwor5LiA6YW45YyW54Kt57SgID4gaXNzYW5rYXRhbnNvXCA7Civku5jliqDkvqHlgKTnqI4gPiBmdWtha2FjaGl6ZWlcIDsKK+W4uOe9ruWnlOWToeS8miA+IGpvdWNoaWlpbmthaVwgOwor5YWs5a6J5aeU5ZOh5LyaID4ga291YW4nJ2lpbmthaVwgOwor6Z2e5Za25Yip5LqL5qWtID4gaGllaXJpamlneW91XCA7CivntYzllrblkIjnkIbljJYgPiBrZWllaWdvdXJpa2FcIDsKK+W8geitt+S+nemgvOS6uiA+IGJlbmdvaXJhaW5pblwgOwor5Yip5LuW5Li7576p6ICFID4gcml0YXNodWdpc2hhXCA7CivlsIrnmofnjovmlJjlpLcgPiBzb24nJ25vdWpvdWlcIDsKK+mdnumWi+ekuuWQiOaEjyA+IGhpa2Fpamlnb3VpXCA7Civopovmp5jopovnnJ/kvLwgPiBtaXlvdW1pbWFuZVwgOwor6Zi/5ZGG6ZmA576F57WMID4gYWhvZGFyYWt5b3VcIDsKK+azleWLmeWnlOWToeS8miA+IGhvdW11aWlua2FpXCA7CivohIrpu4TpnZLpuJrlk6UgPiBzZWtpc2VpaW5rb1wgOwor5bGL5qC56KOP6YOo5bGLID4geWFuZXVyYWJleWFcIDsKK+mYv+Wkmuemj+miqOmCqiA+IG90YWZ1a3VrYXplXCA7CivkuI3pmo/mhI/pgYvli5UgPiBmdXp1aWl1bmRvdVwgOwor5pel5pys6Kqe5paH5a2XID4gbmlob25nb21vamlcIDsKK+W5s+WSjOe2reaMgei7jSA+IGhlaXdhaWppZ3VuXCA7CivogLPpvLvlkr3llonnp5EgPiBqaWJpaW5rb3VrYVwgOwor5Y+C6K2w6Zmi6K2w5ZOhID4gc2FuZ2lpbmdpaW5cIDsKK+axn+aIuOWJjeWvv+WPuCA+IGVkb21hZXp1c2hpXCA7Civoh6roqJjmuKnluqboqIggPiBqaWtpb25kb2tlaVwgOwor5rqW5YKZ5aeU5ZOh5LyaID4ganVuYmlpaW5rYWlcIDsKK+S4i+S9jeS6kuaPm+aApyA+IGthaWdva2Fuc2VpXCA7CivkupzpiZvoj6/ou5/oho8gPiBhZW5rYW5hbmtvdVwgOwor5Lqc57Gz5Yip5Yqg5p2JID4gYW1lcmlrYXN1Z2lcIDsKK+aRqeiotuS4jeaAneitsCA+IG1ha2FmdXNoaWdpXCA7CivnlKPlqabkurrnp5HljLsgPiBzYW5mdWppbmthaVwgOwor6YGL5Za25aeU5ZOh5LyaID4gdW4nJ2VpaWlua2FpXCA7CivlkIzpn7PnlbDnvqnoqp4gPiBkb3VvbicnaWdpZ29cIDsKK+WHuuadpeS4jeWHuuadpSA+IGRla2lmdWRla2lcIDsKK+W+oemrmOellumgreW3viA+IG9rb3NvenVraW5cIDsKK+S6jOmFuOWMluehq+m7hCA+IG5pc2Fua2Fpb3VcIDsKK+WNgemHjeS6jOWNgemHjSA+IHRvZWhhdGFlXCA7Civplbfml6XmpI3niakgPiBjaG91aml0c3VzaG9rdWJ1dHN1XCA7Civlvovku6TmoLzlvI8gPiByaXRzdXJ5b3VreWFrdXNoaWtpXCA7Civpo5/ogonmpI3niakgPiBzaG9rdW5pa3VzaG9rdWJ1dHN1XCA7Civnm7TmjqXmjqXntpogPiBjaG9rdXNldHN1c2V0c3V6b2t1XCA7Civpo5/omavmpI3niakgPiBzaG9rdWNodXVzaG9rdWJ1dHN1XCA7CivkuIDml6XkuIDml6UgPiBpY2hpbmljaGlpY2hpbmljaGlcIDsKK+efreaXpeakjeeJqSA+IHRhbmppdHN1c2hva3VidXRzdVwgOwor5qiZ5rqW5Ye65YqbID4gaHlvdWp1bnNodXRzdXJ5b2t1XCA7Civkv6Hos57lv4XnvbAgPiBzaGluc2hvdWhpdHN1YmF0c3VcIDsKK+eJueW+tOaKveWHuiA+IHRva3VjaG91Y2h1dXNodXRzdVwgOwor552A55Sf5qSN54mpID4gY2hha3VzZWlzaG9rdWJ1dHN1XCA7Civlrp/nianlj5blvJUgPiBqaXRzdWJ1dHN1dG9yaWhpa2lcIDsKK+ebtOaOpeaOpeinpiA+IGNob2t1c2V0c3VzZXNzaG9rdVwgOwor6LK45LuY5L+h6KiXID4ga2FzaGl0c3VrZXNoaW50YWt1XCA7CivljbPml6XpgJ/pgZQgPiBzb2t1aml0c3Vzb2t1dGF0c3VcIDsKK+eZvueZuueZvuS4rSA+IGh5YXBwYXRzdWh5YWt1Y2h1dVwgOwor5Y+W57eg5b255LyaID4gdG9yaXNoaW1hcml5YWt1a2FpXCA7Civlh7rlipvoo4Xnva4gPiBzaHV0c3VyeW9rdXNvdWNoaVwgOwor6KSH6ZuR6aqo5oqYID4gZnVrdXphdHN1a29zc2V0c3VcIDsKK+eJqeeahOa1gemAmiA+IGJ1dHN1dGVraXJ5dXV0c3V1XCA7CivljYHlubTkuIDmmJQgPiBqdXVuZW5oaXRvbXVrYXNoaVwgOwor56Wl5pyI5ZG95pelID4gc2hvdXRzdWtpbWVpbmljaGlcIDsKK+aIpueVpeeJqeizqiA+IHNlbnJ5YWt1YnVzc2hpdHN1XCA7CivlsLHogbfmtLvli5UgPiBzaHV1c2hva3VrYXRzdWRvdVwgOwor5byx6IKJ5by36aOfID4gamFrdW5pa3VreW91c2hva3VcIDsKK+S8uOe4rueojueOhyA+IHNoaW5zaHVrdXplaXJpdHN1XCA7CivnpZ7lh7rprLzmsqEgPiBzaGluc2h1dHN1a2lib3RzdVwgOwor5ZC46KGA5YuV54mpID4ga3l1dWtldHN1ZG91YnV0c3VcIDsKK+eGseWKm+WtpueahCA+IG5ldHN1cmlraWdha3V0ZWtpXCA7CivmpI3nianmjqHpm4YgPiBzaG9rdWJ1dHN1c2Fpc2h1dVwgOwor5Ye65Yqb56uv5a2QID4gc2h1dHN1cnlva3V0YW5zaGlcIDsKK+aomea6luWFpeWKmyA+IGh5b3VqdW4nJ255dXVyeW9rdVwgOwor6Kaz6JGJ5qSN54mpID4ga2FuJyd5b3VzaG9rdWJ1dHN1XCA7CivkuIPnlJ/loLHlm70gPiBzaGljaGlzaG91aG91a29rdVwgOwor5a6f54mp5o+P5YaZID4gaml0c3VidXRzdWJ5b3VzaGFcIDsKK+auuuecn+iPjOiWrCA+IHNhdHN1c2hpbmtpbicneWFrdVwgOwor5qiZ5pys5oq95Ye6ID4gaHlvdWhvbmNodXVzaHV0c3VcIDsKK+e3j+aLrOizquWVjyA+IHNvdWthdHN1c2hpdHN1bW9uXCA7Civmva7lipvnmbrpm7sgPiBjaG91cnlva3VoYXRzdWRlblwgOwor55u05o6l6LO85YWlID4gY2hva3VzZXRzdWtvdW55dXVcIDsKK+eqrualteebrueahCA+IGt5dXVreW9rdW1va3V0ZWtpXCA7CivlpKnnhaflpKfnpZ4gPiBhbWF0ZXJhc3Vvb21pa2FtaVwgOwor6LOq5a6f5Ymb5YGlID4gc2hpdHN1aml0c3Vnb3VrZW5cIDsKK+WxgOWkluS4reeriyA+IGt5b2t1Z2FpY2h1dXJpdHN1XCA7CivoibLlvanoqr/nr4AgPiBzaGlraXNhaWNob3VzZXRzdVwgOwor6Jas55So5qSN54mpID4geWFrdXlvdXNob2t1YnV0c3VcIDsKK+eni+mcnOeDiOaXpSA+IHNodXVzb3VyZXRzdWppdHN1XCA7Civnm7TmjqXoq4vmsYIgPiBjaG9rdXNldHN1c2Vpa3l1dVwgOwor5a6X5pWZ5ZOy5a2mID4gc2h1dWt5b3V0ZXRzdWdha3VcIDsKK+iWrOeJqeS4reavkiA+IHlha3VidXRzdWNodXVkb2t1XCA7CivlsI/lv4Pnv7znv7wgPiBzaG91c2hpbicneW9rdXlva3VcIDsKK+eJueWIpeW5leWDmiA+IHRva3ViZXRzdWJha3VyeW91XCA7CivliIboo4Lnianos6ogPiBidW5yZXRzdWJ1c3NoaXRzdVwgOwor55u05o6l54Wn5piOID4gY2hva3VzZXRzdXNob3VtZWlcIDsKK+WYseiol+auuuS6uiA+IHNob2t1dGFrdXNhdHN1amluXCA7Civmub/nlJ/mpI3niakgPiBzaGlzc2Vpc2hva3VidXRzdVwgOwor5LiD5Y2B5Lq66KizID4gc2hpY2hpanV1bmluJyd5YWt1XCA7CivnmbrnmYznianos6ogPiBoYXRzdWdhbmJ1c3NoaXRzdVwgOwor55m96ZW36aCI6a+oID4gc2hpcm9uYWdhc3VrdWppcmFcIDsKK+ims+iznuakjeeJqSA+IGthbnNob3VzaG9rdWJ1dHN1XCA7Civlv4PnpZ7llqrlpLEgPiBzaGluc2hpbnNvdXNoaXRzdVwgOwor6YCa5L+X5bCP6KqsID4gdHN1dXpva3VzaG91c2V0c3VcIDsKK+eZvuaIpueZvuWLnSA+IGh5YWt1c2VuaHlha3VzaG91XCA7Civmj5Dnga/ooYzliJcgPiBjaG91Y2hpbmd5b3VyZXRzdVwgOwor5aSx5qWt5a++562WID4gc2hpdHN1Z3lvdXRhaXNha3VcIDsKK+Wwj+W/g+e/vOOAhSA+IHNob3VzaGluJyd5b2t1eW9rdVwgOwor5bem5YG06YCa6KGMID4gaGlkYXJpZ2F3YXRzdXVrb3VcIDsKK+aVkeWHuuS9nOaIpiA+IGt5dXVzaHV0c3VzYWt1c2VuXCA7CivlrqTlhoXoo4Xpo74gPiBzaGl0c3VuYWlzb3VzaG9rdVwgOwor55u05o6l56u25LqJID4gY2hva3VzZXRzdWt5b3Vzb3VcIDsKK+aXreaXpeaYh+WkqSA+IGt5b2t1aml0c3VzaG91dGVuXCA7CivomJroi5TmpI3niakgPiBzZW50YWlzaG9rdWJ1dHN1XCA7CivnoJTnqbblrqTmo58gPiBrZW5reXV1c2hpdHN1dG91XCA7Civopb/lgbToq7jlm70gPiBuaXNoaWdhd2FzaG9rb2t1XCA7CivohIrmpI7li5XniakgPiBzZWtpdHN1aWRvdWJ1dHN1XCA7CivmoZHljp/moZHljp8gPiBrdXdhYmFyYWt1d2FiYXJhXCA7Civkuqvmpb3nlJ/mtLsgPiBreW91cmFrdXNlaWthdHN1XCA7CivlhaXlipvpm7vmtYEgPiBueXV1cnlva3VkZW5yeXV1XCA7CivljYHlubTkuIDml6UgPiBqdXVuZW4nJ2ljaGlqaXRzdVwgOwor6aKo5L+X5bCP6KqsID4gZnV1em9rdXNob3VzZXRzdVwgOwor5L2O6KGA5Zyn55eHID4gdGVpa2V0c3VhdHN1c2hvdVwgOwor6Jma44CF5a6f44CFID4ga3lva3lvaml0c3VqaXRzdVwgOwor5oqA6KGT5Y2U5YqbID4gZ2lqdXRzdWt5b3VyeW9rdVwgOwor56m65Lit6KGd56qBID4ga3V1Y2h1dXNob3V0b3RzdVwgOwor5Y2D56+H5LiA5b6LID4gc2VucGVuJydpY2hpcml0c3VcIDsKK+aWmeeQhuaVmeWupCA+IHJ5b3VyaWt5b3VzaGl0c3VcIDsKK+acrOagvOWwj+iqrCA+IGhvbmtha3VzaG91c2V0c3VcIDsKK+Wbveeri+WKh+WgtCA+IGtva3VyaXRzdWdla2lqb3VcIDsKK+iNiemjn+WLleeJqSA+IHNvdXNob2t1ZG91YnV0c3VcIDsKK+ebtOaOpemBuOaMmSA+IGNob2t1c2V0c3VzZW5reW9cIDsKK+eUn+iAheW/hea7hSA+IHNob3VqYWhpdHN1bWV0c3VcIDsKK+eGseW4r+akjeeJqSA+IG5ldHRhaXNob2t1YnV0c3VcIDsKK+advuS4i+mbu+W3pSA+IG1hdHN1c2hpdGFkZW5rb3VcIDsKK+WVhualreeul+ihkyA+IHNob3VneW91c2FuanV0c3VcIDsKK+aIpuaIpuagl+aglyA+IHNlbnNlbnJpdHN1cml0c3VcIDsKK+aPrueZuueJqeizqiA+IGtpaGF0c3VidXNzaGl0c3VcIDsKK+eZuuWFieakjeeJqSA+IGhha2tvdXNob2t1YnV0c3VcIDsKK+mbu+WKm+S+m+e1piA+IGRlbnJ5b2t1a3lvdWt5dXVcIDsKK+aIpueVpeeIhuaSgyA+IHNlbnJ5YWt1YmFrdWdla2lcIDsKK+WmiuWooOS4ree1tiA+IG5pbnNoaW5jaHV1emV0c3VcIDsKK+ebtOaOpeS8muirhyA+IGNob2t1c2V0c3VrYWlkYW5cIDsKK+WJsuWil+izg+mHkSA+IHdhcmltYXNoaWNoaW5naW5cIDsKK+S9nOS7mOmdouepjSA+IHNha3VkenVrZW1lbnNla2lcIDsKK+aXpeeLrOWNlOS8miA+IG5pY2hpZG9rdWt5b3VrYWlcIDsKK+aXpeW4uOeUn+a0uyA+IG5pY2hpam91c2Vpa2F0c3VcIDsKK+ats+WFpeats+WHuiA+IHNhaW55dXVzYWlzaHV0c3VcIDsKK+eJueWIpeaApeihjCA+IHRva3ViZXRzdWt5dXVrb3VcIDsKK+i7ouWHuuiovOaYjiA+IHRlbnNodXRzdXNob3VtZWlcIDsKK+aVkeiNkuS9nOeJqSA+IGt5dXVrb3VzYWt1bW90c3VcIDsKK+WcsOeGseeZuumbuyA+IGNoaW5ldHN1aGF0c3VkZW5cIDsKK+iWrOeJqeeZguazlSA+IHlha3VidXRzdXJ5b3Vob3VcIDsKK+mjn+ezp+mFjee1piA+IHNob2t1cnlvdWhhaWt5dXVcIDsKK+ebtOezu+ihgOaXjyA+IGNob2trZWlrZXRzdXpva3VcIDsKK+izquWVj+eUqOe0mSA+IHNoaXRzdW1vbicneW91c2hpXCA7Civni6zouqvnlJ/mtLsgPiBkb2t1c2hpbnNlaWthdHN1XCA7Civorablr5/lvZPlsYAgPiBrZWlzYXRzdXRvdWt5b2t1XCA7Civnm7TmjqXkvJ3mn5MgPiBjaG9rdXNldHN1ZGVuc2VuXCA7CivpnZLnqbrmlZnlrqQgPiBhb3pvcmFreW91c2hpdHN1XCA7CivpnZ7lq6Hlh7rlrZAgPiBoaWNoYWt1c2h1dHN1c2hpXCA7CivnlJ/mtLvmp5jlvI8gPiBzZWlrYXRzdXlvdXNoaWtpXCA7CivniYfpgZPmlpnph5EgPiBrYXRhbWljaGlyeW91a2luXCA7Civljp/msrnmtYHlh7ogPiBnZW4nJ3l1cnl1dXNodXRzdVwgOwor55Wl5byP5ZG95LukID4gcnlha3VzaGlraW1laXJlaVwgOwor6Iq46KGT5rS75YuVID4gZ2VpanV0c3VrYXRzdWRvdVwgOwor5q205Y+y5ZOy5a2mID4gcmVraXNoaXRldHN1Z2FrdVwgOwor5LiL55S66KiA6JGJID4gc2hpdGFtYWNoaWtvdG9iYVwgOwor57eK5oCl552A6Zm4ID4ga2lua3l1dWNoYWt1cmlrdVwgOwor5Ya36KGA5YuV54mpID4gcmVpa2V0c3Vkb3VidXRzdVwgOwor5Y+W5omx5rOo5oSPID4gdG9yaWF0c3VrYWljaHV1aVwgOwor5Ymy5aKX5paZ6YeRID4gd2FyaW1hc2hpcnlvdWtpblwgOwor55u05oiq57Ch5piOID4gY2hva3VzZXRzdWthbm1laVwgOwor6buE6YGT5ZCJ5pelID4ga291ZG91a2ljaGluaWNoaVwgOwor5LiA6Kem5Y2z55m6ID4gaXNzaG9rdXNva3VoYXRzdVwgOwor5Y2z5pel6ZaL56WoID4gc29rdWppdHN1a2FpaHlvdVwgOwor5a6f6LOq6LOD6YeRID4gamlzc2hpdHN1Y2hpbmdpblwgOwor5pWZ6aSK5bCP6KqsID4ga3lvdXlvdXNob3VzZXRzdVwgOwor5oq96LGh6Iq46KGTID4gY2h1dXNob3VnZWlqdXRzdVwgOwor55u05o6l5pSv6YWNID4gY2hva3VzZXRzdXNoaWhhaVwgOwor6ZuG5Zuj5bCx6IG3ID4gc2h1dWRhbnNodXVzaG9rdVwgOwor5rC055Sf5qSN54mpID4gc3Vpc2Vpc2hva3VidXRzdVwgOwor6IG35YuZ6LOq5ZWPID4gc2hva3VtdXNoaXRzdW1vblwgOwor5Lm+55Sf5qSN54mpID4ga2Fuc2Vpc2hva3VidXRzdVwgOwor5a6/5rOK6Kit5YKZID4gc2h1a3VoYWt1c2V0c3ViaVwgOwor5Zu956uL5aSn5a2mID4ga29rdXJpdHN1ZGFpZ2FrdVwgOwor5LiA6KiA5LqM6KiAID4gaGl0b2tvdG9mdXRha290b1wgOwor5q2j6Z2i6KGd56qBID4gc2hvdW1lbnNob3V0b3RzdVwgOwor5LiA5pel5Y2D56eLID4gaWNoaW5pY2hpc2Vuc2h1dVwgOwor5ZWG5qWt55uu55qEID4gc2hvdWd5b3Vtb2t1dGVraVwgOwor6KSH5byP5a2m57SaID4gZnVrdXNoaWtpZ2Fra3l1dVwgOwor5Y2S5qWt6Ki85pu4ID4gc290c3VneW91c2hvdXNob1wgOwor54S86IKJ5a6a6aOfID4geWFraW5pa3V0ZWlzaG9rdVwgOwor6KGo6Z2i5by15YqbID4gaHlvdW1lbmNob3VyeW9rdVwgOwor54m55Yil55Wq57WEID4gdG9rdWJldHN1YmFuZ3VtaVwgOwor5a2m57+S6IO95YqbID4gZ2FrdXNodXVub3VyeW9rdVwgOwor5L+h55So5Y+W5byVID4gc2hpbicneW91dG9yaWhpa2lcIDsKK+mrmOihgOWcp+eXhyA+IGtvdWtldHN1YXRzdXNob3VcIDsKK+S4reW/g+S6uueJqSA+IGNodXVzaGluamluYnV0c3VcIDsKK+mjn+aWmeWTgeWVhiA+IHNob2t1cnlvdWhpbnNob3VcIDsKK+i2heePvuWun+eahCA+IGNob3VnZW5qaXRzdXRla2lcIDsKK+WNs+i6q+aIkOS7jyA+IHNva3VzaGluam91YnV0c3VcIDsKK+WbveWkluiEseWHuiA+IGtva3VnYWlkYXNzaHV0c3VcIDsKK+ebtOaOpeWbnuetlCA+IGNob2t1c2V0c3VrYWl0b3VcIDsKK+WFiOeJqeWPluW8lSA+IHNha2ltb25vdG9yaWhpa2lcIDsKK+attOWPsuWwj+iqrCA+IHJla2lzaGlzaG91c2V0c3VcIDsKK+eFruayuOa2iOavkiA+IHNoYWZ1dHN1c2hvdWRva3VcIDsKK+a1t+WklumAsuWHuiA+IGthaWdhaXNoaW5zaHV0c3VcIDsKK+awtOWKm+eZuumbuyA+IHN1aXJ5b2t1aGF0c3VkZW5cIDsKK+W9ouizquWwjuWFpSA+IGtlaXNoaXRzdWRvdW55dXVcIDsKK+ebtOaOpemWouS/giA+IGNob2t1c2V0c3VrYW5rZWlcIDsKK+ebtOaOpeewoeaYjiA+IGNob2t1c2V0c3VrYW5tZWlcIDsKK+aMr+abv+S8keaXpSA+IGZ1cmlrYWVreXV1aml0c3VcIDsKK+WNg+e3qOS4gOW+iyA+IHNlbnBlbicnaWNoaXJpdHN1XCA7Civpg7Xkvr/lsI/ljIUgPiB5dXViaW5rb2R6dXRzdW1pXCA7CivljZjkuIDnpZ7mlZkgPiB0YW4nJ2l0c3VzaGlua3lvdVwgOwor6Jma5byx5L2T6LOqID4ga3lvamFrdXRhaXNoaXRzdVwgOwor6ISK57Si5YuV54mpID4gc2VraXNha3Vkb3VidXRzdVwgOwor5q2m5Yqb6KGd56qBID4gYnVyeW9rdXNob3V0b3RzdVwgOwor54ax5qC45Y+N5b+cID4gbmV0c3VrYWt1aGFuJydub3VcIDsKK+eoruWtkOakjeeJqSA+IHNodXNoaXNob2t1YnV0c3VcIDsKK+ebtOaOpeihjOWLlSA+IGNob2t1c2V0c3Vrb3Vkb3VcIDsKK+axguiBt+W6g+WRiiA+IGt5dXVzaG9rdWtvdWtva3VcIDsKK+Wun+iovOWTsuWtpiA+IGppc3Nob3V0ZXRzdWdha3VcIDsKK+iKseWrgeiKseWpvyA+IGhhbmF5b21laGFuYW11a29cIDsKK+Wkp+WQjeihjOWIlyA+IGRhaW15b3VneW91cmV0c3VcIDsKK+mrmOWxseakjeeJqSA+IGtvdXphbnNob2t1YnV0c3VcIDsKK+eJueWIpeaWmemHkSA+IHRva3ViZXRzdXJ5b3VraW5cIDsKK+S4remWk+Wwj+iqrCA+IGNodXVrYW5zaG91c2V0c3VcIDsKK+eUn+eJqea/g+e4riA+IHNlaWJ1dHN1bm91c2h1a3VcIDsKK+WFpeWKm+S/oeWPtyA+IG55dXVyeW9rdXNoaW5nb3VcIDsKK+W9q+WIu+WupOW6pyA+IGNob3Vrb2t1c2hpdHN1emFcIDsKK+eiuueOh+aomeacrCA+IGtha3VyaXRzdWh5b3Vob25cIDsKK+W3nueri+Wkp+WtpiA+IHNodXVyaXRzdWRhaWdha3VcIDsKK+WkmuiCieakjeeJqSA+IHRhbmlrdXNob2t1YnV0c3VcIDsKK+eGseS8neWwjueOhyA+IG5ldHN1ZGVuZG91cml0c3VcIDsKK+akjeeJqeS6uumWkyA+IHNob2t1YnV0c3VuaW5nZW5cIDsKK+iZmuiZmuWun+WunyA+IGt5b2t5b2ppdHN1aml0c3VcIDsKK+eJqeeJqeS6pOaPmyA+IGJ1dHN1YnV0c3Vrb3VrYW5cIDsKK+Wun+WKm+ihjOS9vyA+IGppdHN1cnlva3Vrb3VzaGlcIDsKK+Wei+W8j+iovOaYjiA+IGthdGFzaGlraXNob3VtZWlcIDsKK+mAo+WLneikh+W8jyA+IHJlbnNob3VmdWt1c2hpa2lcIDsKK+ebtOaOpeWNlOitsCA+IGNob2t1c2V0c3VreW91Z2lcIDsKK+e9qumanOa2iOa7hSA+IHphaXNob3VzaG91bWV0c3VcIDsKK+aZqeeUn+akjeeJqSA+IGJhbnNlaXNob2t1YnV0c3VcIDsKK+a9nOWcqOWksealrSA+IHNlbnphaXNoaXRzdWd5b3VcIDsKK+ebtOaOpeavlOi8gyA+IGNob2t1c2V0c3VoaWtha3VcIDsKK+aguOaKkeatouWKmyA+IGtha3V5b2t1c2hpcnlva3VcIDsKK+S4h+eJqea1gei7oiA+IGJhbmJ1dHN1cnl1dXRlblwgOwor6Luf5byP5bqt55CDID4gbmFuc2hpa2l0ZWlreXV1XCA7Civkv67pgZPnlJ/mtLsgPiBzaHV1ZG91c2Vpa2F0c3VcIDsKK+enmOWvhuitpuWvnyA+IGhpbWl0c3VrZWlzYXRzdVwgOwor5rOV5Lq65qCq5Li7ID4gaG91amlua2FidW51c2hpXCA7CivplpPmjqXnhafmmI4gPiBrYW5zZXRzdXNob3VtZWlcIDsKK+e0m+mqqOeglei6qyA+IGZ1bmtvdHN1c2Fpc2hpblwgOwor5Lih5qOy5YuV54mpID4gcnlvdXNlaWRvdWJ1dHN1XCA7Civpm4bntITovrLmpa0gPiBzaHV1eWFrdW5vdWd5b3VcIDsKK+W7g+eWvuadoeS7tiA+IGhhaXNoaXRzdWpvdWtlblwgOwor6IO9546H6LOD6YeRID4gbm91cml0c3VjaGluZ2luXCA7CivljZjliIDnm7TlhaUgPiB0YW50b3VjaG9rdW55dXVcIDsKK+S4ieaWh+Wwj+iqrCA+IHNhbm1vbnNob3VzZXRzdVwgOwor562L6IKJ5rOo5bCEID4ga2luJyduaWt1Y2h1dXNoYVwgOwor5Zub6YCa5YWr6YGUID4gc2hpdHN1dWhhdHRhdHN1XCA7CivlibLlopfpgYvos4MgPiB3YXJpbWFzaGl1bmNoaW5cIDsKK+WNl+alteims+a4rCA+IG5hbmt5b2t1a2Fuc29rdVwgOwor5LiA55uu556t54S2ID4gaWNoaW1va3VyeW91emVuXCA7CivntKDkurrkuIvlrr8gPiBzaGlyb3V0b2dlc2h1a3VcIDsKK+Wtpuagoee1pumjnyA+IGdha2tvdWt5dXVzaG9rdVwgOwor6ZaT5o6l5pKu5b2xID4ga2Fuc2V0c3VzYXRzdWVpXCA7Civnmb3lt53lpJzoiLkgPiBzaGlyYWthd2F5b2Z1bmVcIDsKK+eJueethuWkp+abuCA+IHRva3VoaXRzdXRhaXNob1wgOwor6aOf5ZOB5bel5qWtID4gc2hva3VoaW5rb3VneW91XCA7Civmo5jnmq7li5XniakgPiBreW9rdWhpZG91YnV0c3VcIDsKK+aAquWKm+S5seelniA+IGthaXJ5b2t1cmFuc2hpblwgOwor5Lq655Sf5ZOy5a2mID4gamluc2VpdGV0c3VnYWt1XCA7CivmlrDlqZrnlJ/mtLsgPiBzaGlua29uc2Vpa2F0c3VcIDsKK+WFrOmWi+WFpeacrSA+IGtvdWthaW55dXVzYXRzdVwgOwor5qCq5byP5biC5aC0ID4ga2FidXNoaWtpc2hpam91XCA7Civlrabmpa3miJDnuL4gPiBnYWt1Z3lvdXNlaXNla2lcIDsKK+eJqeizquWQjeipniA+IGJ1c3NoaXRzdW1laXNoaVwgOwor55+t57eo5bCP6KqsID4gdGFucGVuc2hvdXNldHN1XCA7CivllYbmpa3mlbDlraYgPiBzaG91Z3lvdXN1dWdha3VcIDsKK+iEseWHuumAn+W6piA+IGRhc3NodXRzdXNva3Vkb1wgOwor54m55Yil57eP5LyaID4gdG9rdWJldHN1c291a2FpXCA7CivnrKzkuIDmpb3nq6AgPiBkYWlpY2hpZ2FrdXNob3VcIDsKK+e0ouadoemJhOmBkyA+IHNha3Vqb3V0ZXRzdWRvdVwgOwor6LuN6KiY54mp6KqeID4gZ3Vua2ltb25vZ2F0YXJpXCA7CivljrPmraPkuK3nq4sgPiBnZW5zZWljaHV1cml0c3VcIDsKK+S4gOaXpeS4gOWknCA+IGljaGluaWNoaWljaGl5YVwgOwor6Zmw6Zmw5ruF5ruFID4gaW4nJ2lubWV0c3VtZXRzdVwgOwor5bCx6IG35rWq5Lq6ID4gc2h1dXNob2t1cm91bmluXCA7CivntJTmvZTmlZnogrIgPiBqdW5rZXRzdWt5b3Vpa3VcIDsKK+Wul+aVmeaUuemdqSA+IHNodXVreW91a2Fpa2FrdVwgOwor5pSv6Zui5ruF6KOCID4gc2hpcmltZXRzdXJldHN1XCA7Civlm73msJHlrr/oiI4gPiBrb2t1bWluc2h1a3VzaGFcIDsKK+eLrOeri+Wuo+iogCA+IGRva3VyaXRzdXNlbmdlblwgOwor5Ymv6IWO55qu6LOqID4gZnVrdWppbmhpc2hpdHN1XCA7Civlm73msJHnlJ/mtLsgPiBrb2t1bWluc2Vpa2F0c3VcIDsKK+epjei8ieiDveWKmyA+IHNla2lzYWlub3VyeW9rdVwgOwor5Y+O5a656IO95YqbID4gc2h1dXlvdW5vdXJ5b2t1XCA7CivohbDpq5jpmpzlrZAgPiBrb3NoaWRha2FzaG91amlcIDsKK+W5tOmgg+aXpemggyA+IHRvc2hpZ29yb2hpZ29yb1wgOwor6YCa5L+X5paH5a2mID4gdHN1dXpva3VidW5nYWt1XCA7CivlhKrlhYjmoKrkuLsgPiB5dXVzZW5rYWJ1bnVzaGlcIDsKK+WGmeecn+a4rOmHjyA+IHNoYXNoaW5zb2t1cnlvdVwgOwor5LyB5qWt5L2T6LOqID4ga2lneW91dGFpc2hpdHN1XCA7CivnjKrnqoHnjJvpgLIgPiBjaG90b3RzdW1vdXNoaW5cIDsKK+WtpueUn+WJsuW8lSA+IGdha3VzZWl3YXJpYmlraVwgOwor5L6h5qC85Zyn5YqbID4ga2FrYWt1YXRzdXJ5b2t1XCA7Civooajnj77lvaLlvI8gPiBoeW91Z2Vua2Vpc2hpa2lcIDsKK+WHuumhmOabuOmhniA+IHNodXRzdWdhbnNob3J1aVwgOwor5a6X5pWZ5pWZ6IKyID4gc2h1dWt5b3VreW91aWt1XCA7CivkvZnoo5Xntr3ntr0gPiB5b3l1dXNoYWt1c2hha3VcIDsKK+efpeeahOiDveWKmyA+IGNoaXRla2lub3VyeW9rdVwgOwor5Y+N6aqo57K+56WeID4gaGFua290c3VzZWlzaGluXCA7CivmraPnorrniIbmkoMgPiBzZWlrYWt1YmFrdWdla2lcIDsKK+aXpeiLsemAmuiosyA+IG5pY2hpZWl0c3V1eWFrdVwgOwor6aOf54mp57mK57atID4gc2hva3Vtb3RzdXNlbicnaVwgOwor566X6KGT57Sa5pWwID4gc2FuanV0c3VreXV1c3V1XCA7CivlhaXlipvoo4Xnva4gPiBueXV1cnlva3Vzb3VjaGlcIDsKK+iBt+alreiok+e3tCA+IHNob2t1Z3lvdWt1bnJlblwgOwor5o6i5YG15bCP6KqsID4gdGFudGVpc2hvdXNldHN1XCA7CivnlJ/mtLvlj43lv5wgPiBzZWlrYXRzdWhhbicnbm91XCA7Civmnb7kuIvpm7vlmaggPiBtYXRzdXNoaXRhZGVua2lcIDsKK+efpeitmOmajue0miA+IGNoaXNoaWtpa2Fpa3l1dVwgOwor5qCq5byP5Lya56S+ID4ga2FidXNoaWtpZ2Fpc2hhXCA7CivkuIDmmYLpoJDmiYAgPiBpY2hpamlhenVrYXJpam9cIDsKK+aLoeWkp+ino+mHiCA+IGtha3VkYWlrYWlzaGFrdVwgOwor5ZOB6LOq5L+d6Ki8ID4gaGluc2hpdHN1aG9zaG91XCA7Civkv6Hku7DlkYrnmb0gPiBzaGlua291a29rdWhha3VcIDsKK+agvOeJqeiHtOefpSA+IGtha3VidXRzdWNoaWNoaVwgOwor57Gz56mA6YCa5bizID4gYmVpa29rdXRzdXVjaG91XCA7Civlrp/nlKjmlrDmoYggPiBqaXRzdXlvdXNoaW4nJ2FuXCA7Civlv4PouqvpmpzlrrMgPiBzaGluc2hpbnNob3VnYWlcIDsKK+mAn+aIpuWNs+axuiA+IHNva3VzZW5zb2trZXRzdVwgOwor5YyW5a2m5ZC4552AID4ga2FnYWt1a3l1dWNoYWt1XCA7Civlm5vmlrnlsbHoqbEgPiB5b21veWFtYWJhbmFzaGlcIDsKK+eah+WupOWFuOevhCA+IGtvdXNoaXRzdXRlbnBhblwgOwor54m55Yil5Zu95LyaID4gdG9rdWJldHN1a29ra2FpXCA7CivkuIDlnarmnKznpL4gPiBoaXRvdHN1Ym9ob25zaGFcIDsKK+aXqeWPo+iogOiRiSA+IGhheWFrdWNoaWtvdG9iYVwgOwor5rex5bGx5bm96LC3ID4gc2hpbnphbicneXV1a29rdVwgOwor6YCa5ZWG55Sj5qWtID4gdHN1dXNob3VzYW5neW91XCA7Civlu7rnr4npnaLnqY0gPiBrZW5jaGlrdW1lbnNla2lcIDsKK+ebpOaguemMr+evgCA+IGJhbmtvbnNha3VzZXRzdVwgOwor5YaF55qE55Sf5rS7ID4gbmFpdGVraXNlaWthdHN1XCA7Civnp5jlr4bmvI/mtKkgPiBoaW1pdHN1cm91c2V0c3VcIDsKK+eOieefs+a3t+a3hiA+IGd5b2t1c2VraWtvbmtvdVwgOwor6Zub6ZGR5Yil6ICFID4gaGluYWthbmJldHN1c2hhXCA7CivntYLouqvlubTph5EgPiBzaHV1c2hpbicnbmVua2luXCA7CivnsonpqqjnoJXouqsgPiBmdW5rb3RzdXNhaXNoaW5cIDsKK+S6uueJqeWvuOaPjyA+IGppbmJ1dHN1c3VuYnlvdVwgOwor5ZWG5ZOB55uu6YyyID4gc2hvdWhpbm1va3Vyb2t1XCA7CivlpJbpo5/nlKPmpa0gPiBnYWlzaG9rdXNhbmd5b3VcIDsKK+izh+a6kOevgOe0hCA+IHNoaWdlbnNldHN1eWFrdVwgOwor6Z2Z6ISI5rOo5bCEID4gam91bXlha3VjaHV1c2hhXCA7CivlhpLpmbrlsI/oqqwgPiBib3VrZW5zaG91c2V0c3VcIDsKK+eGseehrOWMlueJqSA+IG5ldHN1a291a2FidXRzdVwgOwor5Zu95pyJ6YmE6YGTID4ga29rdXl1dXRldHN1ZG91XCA7CivnorrnjoflpInmlbAgPiBrYWt1cml0c3VoZW5zdXVcIDsKK+mWi+eZuuioiOeUuyA+IGthaWhhdHN1a2Vpa2FrdVwgOwor5pyJ5a6z54mp6LOqID4geXV1Z2FpYnVzc2hpdHN1XCA7Civmg4XnirbphYzph48gPiBqb3Vqb3VzaGFrdXJ5b3VcIDsKK+S+teeVpeaIpuS6iSA+IHNoaW5yeWFrdXNlbnNvdVwgOwor5YaS6aCt6Zmz6L+wID4gYm91dG91Y2hpbmp1dHN1XCA7CivnhLzouqvoh6rmrrogPiBzaG91c2hpbmppc2F0c3VcIDsKK+Wkp+WuieWQieaXpSA+IHRhaWFua2ljaGluaWNoaVwgOwor55+v5q2j6KaW5YqbID4ga3lvdXNlaXNoaXJ5b2t1XCA7CivnoJTnqbbplovnmbogPiBrZW5reXV1a2FpaGF0c3VcIDsKK+irh+WQiOWFpeacrSA+IGRhbmdvdW55dXVzYXRzdVwgOwor6Zm455Sf5YuV54mpID4gcmlrdXNlaWRvdWJ1dHN1XCA7CivljZflpKrlubPmtIsgPiBtaW5hbWl0YWloZWl5b3VcIDsKK+WtpueUn+eUn+a0uyA+IGdha3VzZWlzZWlrYXRzdVwgOwor77yR77yR77yZ55WqID4gaHlha3VqdXVreXV1YmFuXCA7CivntZDlkIjntYTnuZQgPiBrZXRzdWdvdXNvc2hpa2lcIDsKK+W9q+W/g+mPpOmqqCA+IGNob3VzaGlucnVrb3RzdVwgOwor57iB5pel5ZWG5Lq6ID4gZW4nJ25pY2hpc2hvdW5pblwgOwor5b+D56We6ICX5byxID4gc2hpbnNoaW5tb3VqYWt1XCA7Civnn63mnJ/osrjku5ggPiB0YW5raWthc2hpdHN1a2VcIDsKK+eOieefs+a3t+S6pCA+IGd5b2t1c2VraWtvbmtvdVwgOwor5bem5Lit5ous5bynID4gaGlkYXJpY2h1dWtha2tvXCA7Civpu5LoibLkurrnqK4gPiBrb2t1c2hva3VqaW5zaHVcIDsKK+WFrOW8j+eZuuihqCA+IGtvdXNoaWtpaGFwcHlvdVwgOwor6Luf6aqo57WE57mUID4gbmFua290c3Vzb3NoaWtpXCA7CivmmJ/plpPnianos6ogPiBzZWlrYW5idXNzaGl0c3VcIDsKK+eUn+a2r+Wtpue/kiA+IHNob3VnYWlnYWt1c2h1dVwgOwor55+l6K2Y6KGo54++ID4gY2hpc2hpa2loeW91Z2VuXCA7CivmupDmsI/nianoqp4gPiBnZW5qaW1vbm9nYXRhcmlcIDsKK+S4g+i7ouWFq+WAkiA+IHNoaWNoaXRlbmJhdHRvdVwgOwor55m96Imy5Lq656iuID4gaGFrdXNob2t1amluc2h1XCA7CivlubPlrrbnianoqp4gPiBoZWlrZW1vbm9nYXRhcmlcIDsKK+S9meijlee2veOAhSA+IHlveXV1c2hha3VzaGFrdVwgOwor5ouS57W25Y+N5b+cID4ga3lvemV0c3VoYW4nJ25vdVwgOwor54m55Yil5b6F6YGHID4gdG9rdWJldHN1dGFpZ3V1XCA7CivpnZLlpKnnmb3ml6UgPiBzZWl0ZW5oYWt1aml0c3VcIDsKK+Wkqee9sOimv+mdoiA+IHRlbmJhdHN1dGVraW1lblwgOwor6KGA5peP57WQ5amaID4ga2V0c3V6b2t1a2Vra29uXCA7CivnmbroibLnj77lg48gPiBoYXNzaG9rdWdlbnNob3VcIDsKK+WFpeacreS+oeagvCA+IG55dXVzYXRzdWtha2FrdVwgOwor6YCj56uL5YaF6ZajID4gcmVucml0c3VuYWlrYWt1XCA7CivohbnlvI/lkbzlkLggPiBmdWt1c2hpa2lrb2t5dXVcIDsKK+S9jumWi+eZuuWbvSA+IHRlaWthaWhhdHN1a29rdVwgOwor6Lu95aaZ5rSS6ISxID4ga2VpbXlvdXNoYWRhdHN1XCA7Civpi7zntKLpiYTpgZMgPiBrb3VzYWt1dGV0c3Vkb3VcIDsKK+ePvuacieWLouWKmyA+IGdlbicneXV1c2Vpcnlva3VcIDsKK+mBiuS8keaWveiorSA+IHl1dWt5dXVzaGlzZXRzdVwgOwor6Lez6LqN5oyv5YuVID4gY2hvdXlha3VzaGluZG91XCA7CivotoXnhLblhoXplqMgPiBjaG91emVuJyduYWlrYWt1XCA7Civlrp/mpa3lrabmoKEgPiBqaXRzdWd5b3VnYWtrb3VcIDsKK+engeeri+Wkp+WtpiA+IHNoaXJpdHN1ZGFpZ2FrdVwgOwor5pyA5L2O6KGA5ZynID4gc2FpdGVpa2V0c3VhdHN1XCA7CivlsIrlsZ7mrrrkurogPiBzb256b2t1c2F0c3VqaW5cIDsKK+S4reeri+WcsOW4ryA+IGNodXVyaXRzdWNoaXRhaVwgOwor5Lih5qW15Zyw5pa5ID4gcnlvdWt5b2t1Y2hpaG91XCA7CivpgKPntprmrrrkurogPiByZW56b2t1c2F0c3VqaW5cIDsKK+WeguebtOWIhualrSA+IHN1aWNob2t1YnVuZ3lvdVwgOwor5rSX5r+v55+z6bm4ID4gc2VudGFrdXNldHN1a2VuXCA7Civpl5jnl4XnlJ/mtLsgPiB0b3VieW91c2Vpa2F0c3VcIDsKK+WQjOaWh+mAmumBlCA+IGRvdWJ1bnRzdXV0YXRzdVwgOwor5YaG6Lui5ruR6ISxID4gZW50ZW5rYXRzdWRhdHN1XCA7CivnlJ/nianlt6XlraYgPiBzZWlidXRzdWtvdWdha3VcIDsKK+S4gOW+i+a4m+WPjSA+IGljaGlyaXRzdWdlbnRhblwgOwor5Lq65ZOh57iu5bCRID4gamluJydpbnNodWt1c2hvdVwgOwor54us56uL5aSJ5pWwID4gZG9rdXJpdHN1aGVuc3V1XCA7Civkurrlrpros6rllY8gPiBqaW50ZWlzaGl0c3Vtb25cIDsKK+aWsOe0hOiBluabuCA+IHNoaW4nJ3lha3VzZWlzaG9cIDsKK+eUn+auuuS4juWlqiA+IHNlaXNhdHN1eW9kYXRzdVwgOwor5q6/5qeY5LuV5LqLID4gdG9ub3NhbWFzaGlnb3RvXCA7Civlj7DmiYDnlKjlk4EgPiBkYWlkb2tvcm95b3VoaW5cIDsKK+iytOmHkeWxnuWNuCA+IGtpa2luem9rdW9yb3NoaVwgOwor5LiK5pa56LSF5YWtID4ga2FtaWdhdGF6ZWlyb2t1XCA7CivooYDml4/plqLkv4IgPiBrZXRzdXpva3VrYW5rZWlcIDsKK+WtkOWuruW+jOWxiCA+IHNoaWt5dXVrb3VrdXRzdVwgOwor5Y2X5b6B5YyX5LyQID4gbmFuc2VpaG9rdWJhdHN1XCA7CivnnJ/lrp/kuIDot68gPiBzaGluaml0c3VpY2hpcm9cIDsKK+eJueWIpemBi+izgyA+IHRva3ViZXRzdXVuY2hpblwgOwor6YCa5bi45oim5YqbID4gdHN1dWpvdXNlbnJ5b2t1XCA7CivliKnlrrPlvpflpLEgPiByaWdhaXRva3VzaGl0c3VcIDsKK+a1hemFjOS9juWUsSA+IHNlbnNoYWt1dGVpc2hvdVwgOwor6KO45a2Q5qSN54mpID4gcmFzaGlzaG9rdWJ1dHN1XCA7CivlgJ/nlKjoqLzmm7ggPiBzaGFrdXlvdXNob3VzaG9cIDsKK+WFseaciee1kOWQiCA+IGt5b3V5dXVrZXRzdWdvdVwgOwor5Zue5oqY6aCY5Z+fID4ga2Fpc2V0c3VyeW91aWtpXCA7Civogbfmpa3mhI/orZggPiBzaG9rdWd5b3Vpc2hpa2lcIDsKK+WNmOW8j+Wtpue0miA+IHRhbnNoaWtpZ2Fra3l1dVwgOwor5a2m6KGT6ZuR6KqMID4gZ2FrdWp1dHN1emFzc2hpXCA7CivljZLmpa3oqabpqJMgPiBzb3RzdWd5b3VzaGlrZW5cIDsKK+WEquaAp+W9ouizqiA+IHl1dXNlaWtlaXNoaXRzdVwgOwor5oiQ6ZW35puy57eaID4gc2VpY2hvdWt5b2t1c2VuXCA7Civnmb7lhavljYHluqYgPiBoeWFrdWhhY2hpanV1ZG9cIDsKK+Wkp+WSjOaSq+WtkCA+IHlhbWF0b25hZGVzaGlrb1wgOwor5aW96Imy5paH5a2mID4ga291c2hva3VidW5nYWt1XCA7CivpnIrprYLmtojmu4UgPiByZWlrb25zaG91bWV0c3VcIDsKK+eJueWIpemFjeW9kyA+IHRva3ViZXRzdWhhaXRvdVwgOwor6aKo5Yqb6ZqO57SaID4gZnV1cnlva3VrYWlreXV1XCA7CivmtYHkvZPlipvlraYgPiByeXV1dGFpcmlraWdha3VcIDsKK+WKo+W8seaEj+itmCA+IHJldHN1amFrdWlzaGlraVwgOwor5LqM6IKh6IaP6JasID4gZnV0YW1hdGFrb3V5YWt1XCA7Civnianos6rku6PorJ0gPiBidXNzaGl0c3V0YWlzaGFcIDsKK+euoei9hOWumOW6gSA+IGthbmthdHN1a2FuY2hvdVwgOwor5L+u5q2j55Sz5ZGKID4gc2h1dXNlaXNoaW5rb2t1XCA7Civlv4PnkIblsI/oqqwgPiBzaGlucmlzaG91c2V0c3VcIDsKK+edgOmZuOWcsOeCuSA+IGNoYWt1cmlrdWNoaXRlblwgOwor5a6f6aiT5bCP6KqsID4gamlra2Vuc2hvdXNldHN1XCA7Civljp/lrZDniIbnmbogPiBnZW5zaGliYWt1aGF0c3VcIDsKK+WFpeWKm+aDheWgsSA+IG55dXVyeW9rdWpvdWhvdVwgOwor6YeP5a2Q5Yqb5a2mID4gcnlvdXNoaXJpa2lnYWt1XCA7CivlparkuInmjK/njosgPiBkYXRzdXNhbnNoaW4nJ291XCA7CivlubTmnKvoqr/mlbQgPiBuZW5tYXRzdWNob3VzZWlcIDsKK+Wtpuihk+irluaWhyA+IGdha3VqdXRzdXJvbmJ1blwgOwor55Sf54mp5a2m6ICFID4gc2VpYnV0c3VnYWt1c2hhXCA7Civlha3nmb7lha3lj7cgPiByb3BweWFrdXJva3Vnb3VcIDsKK+aAneW8geWTsuWtpiA+IHNoaWJlbnRldHN1Z2FrdVwgOwor5oqX55Sf54mp6LOqID4ga291c2VpYnVzc2hpdHN1XCA7CivmtLvli5XlhpnnnJ8gPiBrYXRzdWRvdXNoYXNoaW5cIDsKK+S4oeeUn+WLleeJqSA+IHJ5b3VzZWlkb3VidXRzdVwgOwor57K+56We6JaE5byxID4gc2Vpc2hpbmhha3VqYWt1XCA7CivlvLfov6voprPlv7UgPiBreW91aGFrdWthbicnbmVuXCA7Civou43nuK7ljZTlrpogPiBndW5zaHVrdWt5b3V0ZWlcIDsKK+edgOmZuOWcsOW4ryA+IGNoYWt1cmlrdWNoaXRhaVwgOwor54Kt5aG154iG55m6ID4gdGFuamluYmFrdWhhdHN1XCA7CivnlJ/mtLvnkrDlooMgPiBzZWlrYXRzdWthbmt5b3VcIDsKK+aKgOihk+mdqeaWsCA+IGdpanV0c3VrYWt1c2hpblwgOwor57Kf57KS57WQ5qC4ID4gem9rdXJ5dXVrZWtrYWt1XCA7Civku67lj5flj5boqLwgPiBrYXJpdWtldG9yaXNob3VcIDsKK+aWsOiBnumFjemBlCA+IHNoaW5idW5oYWl0YXRzdVwgOwor5Y2S5qWt6KuW5paHID4gc290c3VneW91cm9uYnVuXCA7CivnmbvpjLLllYbmqJkgPiB0b3Vyb2t1c2hvdWh5b3VcIDsKK+S/oeeUqOmKmOafhCA+IHNoaW4nJ3lvdW1laWdhcmFcIDsKK+aTjea1hOeRoOeSgyA+IGF5YXRzdXJpam91cnVyaVwgOwor5YWx5ZCM55Sf5rS7ID4ga3lvdWRvdXNlaWthdHN1XCA7CivkvJ3pgZTnibnmgKcgPiBkZW50YXRzdXRva3VzZWlcIDsKK+S/oeS7sOeUn+a0uyA+IHNoaW5rb3VzZWlrYXRzdVwgOwor6YO35Zyf5bCP6KqsID4ga3lvdWRvc2hvdXNldHN1XCA7Civpm4blm6PnlJ/mtLsgPiBzaHV1ZGFuc2Vpa2F0c3VcIDsKK+mnkOaXpeWkp+S9vyA+IGNodXVuaWNoaXRhaXNoaVwgOwor5bO25Zu95qC55oCnID4gc2hpbWFndW5pa29uam91XCA7Civlt6blsI/mi6zlvKcgPiBoaWRhcmlzaG91a2Fra29cIDsKK+awkeaXj+Wul+aVmSA+IG1pbnpva3VzaHV1a3lvdVwgOwor5pel5Lit6Z+T6LaKID4gbml0Y2h1dWthbicnZXRzdVwgOwor6buS6Imy54Gr6JasID4ga29rdXNob2t1a2F5YWt1XCA7CivkuIfmnInnpZ7mlZkgPiBiYW4nJ3l1dXNoaW5reW91XCA7CivpoK3ohLPmtYHlh7ogPiB6dW5vdXJ5dXVzaHV0c3VcIDsKK+ebtOaOpeipseazlSA+IGNob2t1c2V0c3V3YWhvdVwgOwor5b2i6LOq6Lui5o+bID4ga2Vpc2hpdHN1dGVua2FuXCA7CivmraPnnJ/mraPpipggPiBzaG91c2hpbnNob3VtZWlcIDsKK+eIhuW8vueZuuiogCA+IGJha3VkYW5oYXRzdWdlblwgOwor55u056uL5LiN5YuVID4gY2hva3VyaXRzdWZ1ZG91XCA7CivllYbmpa3pgZPlvrMgPiBzaG91Z3lvdWRvdXRva3VcIDsKK+eJueioreS8muWgtCA+IHRva3VzZXRzdWthaWpvdVwgOwor5qC454mp55CG5a2mID4ga2FrdWJ1dHN1cmlnYWt1XCA7Civnm7Tnq4vnjL/kurogPiBjaG9rdXJpdHN1ZW5qaW5cIDsKK+i2hemAo+e1kOWtkCA+IGNob3VyZW5rZXRzdXNoaVwgOwor55Sy6KuW5LmZ6aeBID4ga291cm9uJydvdHN1YmFrdVwgOwor54mp55qE6LOH5rqQID4gYnV0c3V0ZWtpc2hpZ2VuXCA7Civnm7TmjqXmlK/mj7QgPiBjaG9rdXNldHN1c2hpZW5cIDsKK+aWsOWItuS4reWtpiA+IHNoaW5zZWljaHV1Z2FrdVwgOwor5Zyn5Yqb5Zuj5L2TID4gYXRzdXJ5b2t1ZGFudGFpXCA7CivmuKnooYDli5XniakgPiBvbmtldHN1ZG91YnV0c3VcIDsKK+S4reeri+WKtOmAoyA+IGNodXVyaXRzdXJvdXJlblwgOwor56CU56m25rS75YuVID4ga2Vua3l1dWthdHN1ZG91XCA7Civoh6rnhLblk7LlraYgPiBzaGl6ZW50ZXRzdWdha3VcIDsKK+agquS4u+e3j+S8miA+IGthYnVudXNoaXNvdWthaVwgOwor5oCn5qC85Yik5YilID4gc2Vpa2FrdWhhbmJldHN1XCA7CivpgY7lpLHlgrflrrMgPiBrYXNoaXRzdXNob3VnYWlcIDsKK+mAmuS/oeW3peWtpiA+IHRzdXVzaGlua291Z2FrdVwgOwor5ZCM5LiA5Lq654mpID4gZG91aXRzdWppbmJ1dHN1XCA7CivllYblrabljZrlo6sgPiBzaG91Z2FrdWhha3VzaGlcIDsKK+W/g+mgrea7heWNtCA+IHNoaW50b3VtZWtreWFrdVwgOwor5LiD6aGb5YWr5YCSID4gc2hpY2hpdGVuYmF0dG91XCA7CivlvLfooYzmjqHmsbogPiBreW91a291c2Fpa2V0c3VcIDsKK+WwseS7u+a8lOiqrCA+IHNodXVuaW4nJ2VuemV0c3VcIDsKK+WQjeirluWNk+iqrCA+IG1laXJvbnRha3VzZXRzdVwgOwor5rOo5YWl5pWZ6IKyID4gY2h1dW55dXVreW91aWt1XCA7CivlkJHnsr7npZ7olqwgPiBrb3VzZWlzaGluJyd5YWt1XCA7CivliIbliJfooYzpgLIgPiBidW5yZXRzdWtvdXNoaW5cIDsKK+mjn+aWmeWTgeW6lyA+IHNob2t1cnlvdWhpbnRlblwgOwor5r2u5rGQ5pGp5pOmID4gY2hvdXNla2ltYXNhdHN1XCA7Civnr4DotrPli5XniakgPiBzZXNzb2t1ZG91YnV0c3VcIDsKK+mjn+eJqemAo+mOliA+IHNob2t1bW90c3VyZW5zYVwgOwor5Lit6IKJ5Lit6IOMID4gY2h1dW5pa3VjaHV1emVpXCA7Civpm4bkuK3mlLvmkoMgPiBzaHV1Y2h1dWtvdWdla2lcIDsKK+eiuuWumuWIpOaxuiA+IGtha3V0ZWloYW5rZXRzdVwgOwor5bCR5aWz5bCP6KqsID4gc2hvdWpvc2hvdXNldHN1XCA7CivljZrlrablipvooYwgPiBoYWt1Z2FrdXJ5b2trb3VcIDsKK+WCjeezu+ihgOaXjyA+IGJvdWtlaWtldHN1em9rdVwgOwor5Lit6ZaT5YaF6ZajID4gY2h1dWthbicnbmFpa2FrdVwgOwor5Y2Y54us5L6b57WmID4gdGFuZG9rdWt5b3VreXV1XCA7CivlpLHmpa3kv53pmbogPiBzaGl0c3VneW91aG9rZW5cIDsKK+eJueWIpeS8muioiCA+IHRva3ViZXRzdWthaWtlaVwgOwor5oyv5bmF5aSJ6Kq/ID4gc2hpbnB1a3VoZW5jaG91XCA7CivluoPlkYrlj47lhaUgPiBrb3Vrb2t1c2h1dW55dXVcIDsKK+S4reWbveWkp+mZuCA+IGNodXVnb2t1dGFpcmlrdVwgOwor5pS+5Ye654mp6LOHID4gaG91c2h1dHN1YnVzc2hpXCA7CivphY3pgZToqLzmmI4gPiBoYWl0YXRzdXNob3VtZWlcIDsKK+acgOe1guebrueahCA+IHNhaXNodXVtb2t1dGVraVwgOwor5LiA6JOu5omY55SfID4gaWNoaXJlbnRha3VzaG91XCA7CivkuInop5LmuKzph48gPiBzYW5rYWt1c29rdXJ5b3VcIDsKK+WLleeJqeWtpuiAhSA+IGRvdWJ1dHN1Z2FrdXNoYVwgOwor5YyW5a2m54mp6LOqID4ga2FnYWt1YnVzc2hpdHN1XCA7CivnhrHljp/lrZDmoLggPiBuZXRzdWdlbnNoaWtha3VcIDsKK+WcsOizquiqv+afuyA+IGNoaXNoaXRzdWNob3VzYVwgOwor5q2v5YiX55+v5q2jID4gc2hpcmV0c3VreW91c2VpXCA7Civlm5vljYHkuIPlo6sgPiBzaGlqdXVzaGljaGlzaGlcIDsKK+WNgeaciOmdqeWRvSA+IGp1dWdhdHN1a2FrdW1laVwgOwor5paH6LOq5b2s5b2sID4gYnVuc2hpdHN1aGlucGluXCA7Civkv6HoqJflpZHntIQgPiBzaGludGFrdWtlaXlha3VcIDsKK+eLrOeri+aIpuS6iSA+IGRva3VyaXRzdXNlbnNvdVwgOwor54Gr5Yqb55m66Zu7ID4ga2FyeW9rdWhhdHN1ZGVuXCA7CivpgJ/pgZTpg7Xkvr8gPiBzb2t1dGF0c3V5dXViaW5cIDsKK+Wbm+eZvuWbm+eXhSA+IHNoaWh5YWt1c2hpYnlvdVwgOwor5YWD5biz5q6L6auYID4gbW90b2Nob3V6YW5kYWthXCA7Civmir3osaHnvo7ooZMgPiBjaHV1c2hvdWJpanV0c3VcIDsKK+eJqeizquaWh+aYjiA+IGJ1c3NoaXRzdWJ1bm1laVwgOwor6LaF54mp55CG5a2mID4gY2hvdWJ1dHN1cmlnYWt1XCA7Civpo5/ns6fkuI3otrMgPiBzaG9rdXJ5b3VidXNva3VcIDsKK+WFrOWFseaWveiorSA+IGtvdWt5b3VzaGlzZXRzdVwgOwor5Y2X5qW15p2h57SEID4gbmFua3lva3Vqb3V5YWt1XCA7CivlhbXlipvliYrmuJsgPiBoZWlyeW9rdXNha3VnZW5cIDsKK+WFrOiBt+i/veaUviA+IGtvdXNob2t1dHN1aWhvdVwgOwor5a2m6KGT5Zuj5L2TID4gZ2FrdWp1dHN1ZGFudGFpXCA7CivlhbHnlJ/nlJ/niakgPiBreW91c2Vpc2VpYnV0c3VcIDsKK+iiq+WtkOakjeeJqSA+IGhpc2hpc2hva3VidXRzdVwgOwor5pyJ55Wc6L6y5qWtID4geXV1Y2hpa3Vub3VneW91XCA7Civlr4TnlJ/mpI3niakgPiBraXNlaXNob2t1YnV0c3VcIDsKK+atpuS+oOWwj+iqrCA+IGJ1a3lvdXNob3VzZXRzdVwgOwor5pyo6LOq57mK57atID4gbW9rdXNoaXRzdXNlbicnaVwgOwor55u06YCa5YiX6LuKID4gY2hva3V0c3V1cmVzc2hhXCA7CivkuIDkuIDkuZ3nlaogPiBoeWFrdWp1dWt5dXViYW5cIDsKK+i7oue9ruihjOWIlyA+IHRlbmNoaWd5b3VyZXRzdVwgOwor5Ye65YuV5ZG95LukID4gc2h1dHN1ZG91bWVpcmVpXCA7CivoiIzlhYjkuInlr7ggPiBzaGl0YXNha2lzYW56dW5cIDsKK+Wkp+ihhumjn+WggiA+IHRhaXNodXVzaG9rdWRvdVwgOwor5YaF6Zaj6Zaj5YOaID4gbmFpa2FrdWtha3VyeW91XCA7Civkurrlj6PniIbnmbogPiBqaW5rb3ViYWt1aGF0c3VcIDsKK+Wcp+e4ruWKueeOhyA+IGFzc2h1a3Vrb3VyaXRzdVwgOwor5Zu956uL6YqA6KGMID4ga29rdXJpdHN1Z2lua291XCA7CivkuIDnl4Xmga/ngb0gPiBpY2hpYnlvdXNva3VzYWlcIDsKK+ato+mHkeWPluW8lSA+IHNob3VraW50b3JpaGlraVwgOwor5rWB6YCa6Z2p5ZG9ID4gcnl1dXRzdXVrYWt1bWVpXCA7CivoirjooZPkvZzlk4EgPiBnZWlqdXRzdXNha3VoaW5cIDsKK+aWsOiIiOWul+aVmSA+IHNoaW5rb3VzaHV1a3lvdVwgOwor55+l6K2Y5bel5a2mID4gY2hpc2hpa2lrb3VnYWt1XCA7CivkvZPos6rmlLnlloQgPiB0YWlzaGl0c3VrYWl6ZW5cIDsKK+eJh+WBtOmAmuihjCA+IGthdGFnYXdhdHN1dWtvdVwgOwor5Y2X5qW15aSn6Zm4ID4gbmFua3lva3V0YWlyaWt1XCA7CivoibbnrJHlsI/oqbEgPiBlbnNob3Vrb2JhbmFzaGlcIDsKK+WVhualree+juihkyA+IHNob3VneW91YmlqdXRzdVwgOwor56We6Imy6Ieq6IulID4gc2hpbnNob2t1amlqYWt1XCA7CivmsLTpmpvkvZzmiKYgPiBtaXp1Z2l3YXNha3VzZW5cIDsKK+eJqeeahOiovOaLoCA+IGJ1dHN1dGVraXNob3Vrb1wgOwor5pON5qWt55+t57iuID4gc291Z3lvdXRhbnNodWt1XCA7CivlhoXogqHoho/olqwgPiB1Y2hpbWF0YWdvdXlha3VcIDsKK+iJsuW9qeaEn+immiA+IHNoaWtpc2Fpa2Fua2FrdVwgOwor6LaF6IO95Yqb6ICFID4gY2hvdW5vdXJ5b2t1c2hhXCA7CivmnKjpo5/kuIrkurogPiBtb2t1amlraXNob3VuaW5cIDsKK+mAo+i8ieWwj+iqrCA+IHJlbnNhaXNob3VzZXRzdVwgOwor54Sm54ax5Zyw542EID4gc2hvdW5ldHN1amlnb2t1XCA7CivpqqjnspfprIbnl4cgPiBrb3RzdXNvc2hvdXNob3VcIDsKK+a1gemAmuiovOWIuCA+IHJ5dXV0c3V1c2hvdWtlblwgOwor5beu5byV5YuY5a6aID4gc2FzaGloaWtpa2Fuam91XCA7CivplovohbnmiYvooZMgPiBrYWlmdWt1c2h1anV0c3VcIDsKK+WNs+aXpeWHuuiNtyA+IHNva3VqaXRzdXNodWtrYVwgOwor5qCq5byP6YWN5b2TID4ga2FidXNoaWtpaGFpdG91XCA7Civom43lhYnnianos6ogPiBrZWlrb3VidXNzaGl0c3VcIDsKK+iBtOimmuelnue1jCA+IGNob3VrYWt1c2hpbmtlaVwgOwor5oey5oiS5YWN6IG3ID4gY2hvdWthaW1lbnNob2t1XCA7CivnorrlrprnlLPlkYogPiBrYWt1dGVpc2hpbmtva3VcIDsKK+iBt+alrei7jeS6uiA+IHNob2t1Z3lvdWd1bmppblwgOwor55m95rKz5aSc6Ii5ID4gc2hpcmFrYXdheW9mdW5lXCA7CivmoKrlvI/lhazplosgPiBrYWJ1c2hpa2lrb3VrYWlcIDsKK+W7g+S7j+avgOmHiCA+IGhhaWJ1dHN1a2lzaGFrdVwgOwor55y85bqV5Ye66KGAID4gZ2FudGVpc2h1a2tldHN1XCA7Civkv6Hku7vmipXnpaggPiBzaGluJyduaW50b3VoeW91XCA7CivplqLpgKPos6rllY8gPiBrYW5yZW5zaGl0c3Vtb25cIDsKK+W7uueviealreiAhSA+IGtlbmNoaWt1Z3lvdXNoYVwgOwor5ZOy5a2m5Y+y6KaBID4gdGV0c3VnYWt1c2hpeW91XCA7Civnn6XorZjnlKPmpa0gPiBjaGlzaGlraXNhbmd5b3VcIDsKK+a1mua4q+S9nOalrSA+IHNodW5zZXRzdXNhZ3lvdVwgOwor5Y245aOy5biC5aC0ID4gb3Jvc2hpdXJpc2hpam91XCA7CivpgJrkv6HmlZnogrIgPiB0c3V1c2hpbmt5b3Vpa3VcIDsKK+WMl+aWl+S4g+aYnyA+IGhva3V0b3NoaWNoaXNlaVwgOwor5q2j5byP55m66KGoID4gc2Vpc2hpa2loYXBweW91XCA7CivmmrTlipvpnanlkb0gPiBib3VyeW9rdWtha3VtZWlcIDsKK+WFseeUo+S4reWbvSA+IGt5b3VzYW5jaHV1Z29rdVwgOwor5qOu5p6X6YmE6YGTID4gc2hpbnJpbnRldHN1ZG91XCA7CivntYzmuIjljZTlipsgPiBrZWl6YWlreW91cnlva3VcIDsKK+eJqeeahOaQjeWusyA+IGJ1dHN1dGVraXNvbmdhaVwgOwor56m65Lit54iG5pKDID4ga3V1Y2h1dWJha3VnZWtpXCA7CivlubTkuK3lpLHoqIAgPiBuZW5qdXVzaGl0c3VnZW5cIDsKK+ato+aWueihjOWIlyA+IHNlaWhvdWd5b3VyZXRzdVwgOwor6ICB6Iul55S35aWzID4gcm91bnlha3VuYW4nJ255b1wgOwor5L+u5LqG6Ki85pu4ID4gc2h1dXJ5b3VzaG91c2hvXCA7CivkuIvnrYnmpI3niakgPiBrYXRvdXNob2t1YnV0c3VcIDsKK+mhleiKseakjeeJqSA+IGtlbmthc2hva3VidXRzdVwgOwor5Zyw5YWD6K2m5a+fID4gamltb3Rva2Vpc2F0c3VcIDsKK+S4reWbveWcsOaWuSA+IGNodXVnb2t1Y2hpaG91XCA7CivkuInmoKHntYLkuoYgPiBzYW5rb3VzaHV1cnlvdVwgOwor5Lq65bel6KGA5rayID4gamlua291a2V0c3Vla2lcIDsKK+acieaAp+eUn+auliA+IHl1dXNlaXNlaXNob2t1XCA7CivpjKzph5HooZPluKsgPiByZW5raW5qdXRzdXNoaVwgOwor5a++5pel5oSf5oOFID4gdGFpbmljaGlrYW5qb3VcIDsKK+eMpeiku+aWh+abuCA+IHdhaXNldHN1YnVuc2hvXCA7Civku67oo4XooYzliJcgPiBrYXNvdWd5b3VyZXRzdVwgOwor5q2j5bym5puy57eaID4gc2VpZ2Vua3lva3VzZW5cIDsKK+ayoeWAi+aAp+eahCA+IGJvdHN1a29zZWl0ZWtpXCA7Civni6znq4vpgYvli5UgPiBkb2t1cml0c3V1bmRvdVwgOwor6ISx6ISC57KJ5LmzID4gZGFzc2hpZnVuJydueXV1XCA7Civljp/lrZDlipvoiLkgPiBnZW5zaGlyeW9rdXNlblwgOwor5LiJ55CD5LiJ5oyvID4gc2Fua3l1dXNhbnNoaW5cIDsKK+mdoueZveWNiuWIhiA+IG9tb3NoaXJvaGFuYnVuXCA7CivllYboiLnlpKflraYgPiBzaG91c2VuZGFpZ2FrdVwgOwor5aSp5Zyw5LiH54mpID4gdGVuY2hpYmFuYnV0c3VcIDsKK+iAkOeGseWQiOmHkSA+IHRhaW5ldHN1Z291a2luXCA7CivmlL/nlaXntZDlqZogPiBzZWlyeWFrdWtla2tvblwgOwor54m56auY6K2m5a+fID4gdG9ra291a2Vpc2F0c3VcIDsKK+WVhuaFo+e/kuazlSA+IHNob3VrYW5zaHV1aG91XCA7CivmmIbomavmjqHpm4YgPiBrb25jaHV1c2Fpc2h1dVwgOwor5Lit5Zu95ouz5rOVID4gY2h1dWdva3VrZW5wb3VcIDsKK+e+juihk+ebo+edoyA+IGJpanV0c3VrYW50b2t1XCA7Civlia/lpKfntbHpoJggPiBmdWt1ZGFpdG91cnlvdVwgOwor54Sm5oCn56Gr6YW4ID4gc2hvdXNlaXJ5dXVzYW5cIDsKK+WRqOaXi+alreiAhSA+IHNodXVzZW5neW91c2hhXCA7CivljZflm57luLDnt5ogPiBtaW5hbWlrYWlraXNlblwgOwor6IOO55Sf5YuV54mpID4gdGFpc2VpZG91YnV0c3VcIDsKK+WFqOWbveS4ree2mSA+IHplbmtva3VjaHV1a2VpXCA7CivniZvmranmiKbooZMgPiBneXV1aG9zZW5qdXRzdVwgOwor56qB5pKD6ZqK5ZOhID4gdG90c3VnZWtpdGFpaW5cIDsKK+e0hOeZvuS4h+WGhiA+IHlha3VoeWFrdW1hbmVuXCA7CivkurrmtbfmiKbooZMgPiBqaW5rYWlzZW5qdXRzdVwgOwor5aSp5paH5a2m55qEID4gdGVubW9uZ2FrdXRla2lcIDsKK+aAneahiOaKlemmliA+IHNoaWFuJyduYWdla3ViaVwgOwor6KOP5Y+j5Za25qWtID4gdXJhZ3VjaGllaWd5b3VcIDsKK+S8neWlh+Wwj+iqrCA+IGRlbmtpc2hvdXNldHN1XCA7CivkuK3nq4vkuLvnvqkgPiBjaHV1cml0c3VzaHVnaVwgOwor56CU56m26LOH5paZID4ga2Vua3l1dXNoaXJ5b3VcIDsKK+WPpOeUn+eJqeWtpiA+IGtvc2VpYnV0c3VnYWt1XCA7Civmm7TnlJ/mlr3oqK0gPiBrb3VzZWlzaGlzZXRzdVwgOwor54mH6YGT5YiH56ymID4ga2F0YW1pY2hpa2lwcHVcIDsKK+aOpee2muWKqeipniA+IHNldHN1em9rdWpvc2hpXCA7Civoi7Hku4/mtbfls6EgPiBlaWZ1dHN1a2Fpa3lvdVwgOwor56iU5a6f5LiN6ImvID4gbmVuaml0c3VmdXJ5b3VcIDsKK+WFrOihhua1tOWgtCA+IGtvdXNodXV5b2t1am91XCA7Civnq6/mnKvoo4Xnva4gPiB0YW5tYXRzdXNvdWNoaVwgOwor6aeQ6LuK5paZ6YeRID4gY2h1dXNoYXJ5b3VraW5cIDsKK+izh+acrOWPluW8lSA+IHNoaWhvbnRvcmloaWtpXCA7CivmoKrlvI/nm7jloLQgPiBrYWJ1c2hpa2lzb3ViYVwgOwor5YWN55ar5Y+N5b+cID4gbWVuJydla2loYW4nJ25vdVwgOwor5bu66Kit5Lya56S+ID4ga2Vuc2V0c3VnYWlzaGFcIDsKK+acrOacq+mhm+WAkiA+IGhvbm1hdHN1dGVudG91XCA7CivliJ3lv5fosqvlvrkgPiBzaG9zaGlrYW50ZXRzdVwgOwor55Sj5qWt6Z2p5ZG9ID4gc2FuZ3lvdWtha3VtZWlcIDsKK+WumuW5tOmAgOiBtyA+IHRlaW5lbnRhaXNob2t1XCA7Civlm73pmpvopqrlloQgPiBrb2t1c2Fpc2hpbnplblwgOwor5oCn5qC86Ki65patID4gc2Vpa2FrdXNoaW5kYW5cIDsKK+WFqOi6q+ihsOW8sSA+IHplbnNoaW5zdWlqYWt1XCA7CivllY/poYzop6PmsbogPiBtb25kYWlrYWlrZXRzdVwgOwor5ZO65Lmz5YuV54mpID4gaG9ueXV1ZG91YnV0c3VcIDsKK+izh+acrOazqOWFpSA+IHNoaWhvbmNodXVueXV1XCA7Civkv67mpa3lubTpmZAgPiBzaHV1Z3lvdW5lbmdlblwgOwor57eR57as6KSS56ugID4gcnlva3VqdWhvdXNob3VcIDsKK+eglOeptumhjOebriA+IGtlbmt5dXVkYWltb2t1XCA7Civnl4Xluorml6XoqowgPiBieW91c2hvdW5pc3NoaVwgOwor566X6KGT6KiI566XID4gc2FuanV0c3VrZWlzYW5cIDsKK+W4sOWMluakjeeJqSA+IGtpa2FzaG9rdWJ1dHN1XCA7Civph5Hono3mgZDmhYwgPiBraW4nJ3l1dWt5b3Vrb3VcIDsKK+eJueWIpeaOque9riA+IHRva3ViZXRzdXNvY2hpXCA7CivlvJvlvLXmjK/li5UgPiBzaGljaG91c2hpbmRvdVwgOwor5oim5oim5YWi5YWiID4gc2Vuc2Vua3lvdWt5b3VcIDsKK+ims+WFieaWveiorSA+IGthbmtvdXNoaXNldHN1XCA7CivlloTnlLflloTlpbMgPiB6ZW4nJ25hbnplbicnbnlvXCA7Civkv6HnlKjosqnlo7IgPiBzaGluJyd5b3VoYW5iYWlcIDsKK+acq+aiouelnue1jCA+IG1hc3Nob3VzaGlua2VpXCA7Civpqqjpq4Tnp7vmpI0gPiBrb3RzdXp1aWlzaG9rdVwgOwor6YGT5b6z5pWZ6IKyID4gZG91dG9rdWt5b3Vpa3VcIDsKK+mHkeauv+eOiealvCA+IGtpbmRlbmd5b2t1cm91XCA7Civngrnmu7Tms6jlsIQgPiB0ZW50ZWtpY2h1dXNoYVwgOwor5bel5a2m5L+u5aOrID4ga291Z2FrdXNodXVzaGlcIDsKK+mWgOWkluS4jeWHuiA+IG1vbmdhaWZ1c2h1dHN1XCA7CivpgJrkv6Hoo4Xnva4gPiB0c3V1c2hpbnNvdWNoaVwgOwor5L2c5oim6KiI55S7ID4gc2FrdXNlbmtlaWtha3VcIDsKK+WgtOWkluWPluW8lSA+IGpvdWdhaXRvcmloaWtpXCA7Civkv6HoqJfpioDooYwgPiBzaGludGFrdWdpbmtvdVwgOwor5aKD55WM6Kq/5pW0ID4ga3lvdWthaWNob3VzZWlcIDsKK+S4u+WKm+iJpumaiiA+IHNodXJ5b2t1a2FudGFpXCA7CivogbfloLTnkrDlooMgPiBzaG9rdWJha2Fua3lvdVwgOwor5Ymy5byV5L6h5qC8ID4gd2FyaWJpa2lrYWtha3VcIDsKK+aVtOW9ouaJi+ihkyA+IHNlaWtlaXNodWp1dHN1XCA7CivphbjmgKfpo5/lk4EgPiBzYW5zZWlzaG9rdWhpblwgOwor5Y6f5a2Q5Yqb5a2mID4gZ2Vuc2hpcmlraWdha3VcIDsKK+awtOS4ree/vOiIuSA+IHN1aWNodXV5b2t1c2VuXCA7CivnmbrpgZTmrrXpmo4gPiBoYXR0YXRzdWRhbmthaVwgOwor6Ku46Kqs57Sb57SbID4gc2hvc2V0c3VmdW5wdW5cIDsKK+S5s+mFuOmjsuaWmSA+IG55dXVzYW4nJ2lucnlvdVwgOwor5YCL44CF5Yil5YilID4ga29rb2JldHN1YmV0c3VcIDsKK+WPo+S4jeiqv+azlSA+IGt1Y2hpYnVjaG91aG91XCA7CivotoXoh6rnhLbnmoQgPiBjaG91c2hpemVudGVraVwgOwor5Zu96Ziy6ZW35a6YID4ga29rdWJvdWNob3VrYW5cIDsKK+ato+e1seS/oeaVmSA+IHNlaXRvdXNoaW5reW91XCA7CivlvLfljJblkIjlrr8gPiBreW91a2FnYXNzaHVrdVwgOwor5pyd6a6u5Lq65Y+CID4gY2hvdXNlbicnbmluamluXCA7CivmnZ/nuJvlpInpoIUgPiBzb2t1YmFrdWhlbmtvdVwgOwor56We57WM57WE57mUID4gc2hpbmtlaXNvc2hpa2lcIDsKK+i2hei2iumWouaVsCA+IGNob3VldHN1a2Fuc3V1XCA7CivlirnnjoflkJHkuIogPiBrb3VyaXRzdWtvdWpvdVwgOwor5aSn6ISz55qu6LOqID4gZGFpbm91aGlzaGl0c3VcIDsKK+eUn+S9k+WKm+WtpiA+IHNlaXRhaXJpa2lnYWt1XCA7CivlsbHkuIvlhazlnJIgPiB5YW1hc2hpdGFrb3VlblwgOwor5Y+j6L+w6Kmm6aiTID4ga291anV0c3VzaGlrZW5cIDsKK+S4gOaXpeeJh+aZgiA+IGljaGluaWNoaWhlbmppXCA7CivnpL7kvJrnlJ/mtLsgPiBzaGFrYWlzZWlrYXRzdVwgOwor5Ye654mI55uu6YyyID4gc2h1cGFubW9rdXJva3VcIDsKK+WIpemAlOaUr+WHuiA+IGJldHRvc2hpc2h1dHN1XCA7CivnlLPlkYrntI3nqI4gPiBzaGlua29rdW5vdXplaVwgOwor5Y2z5rG66KOB5YikID4gc29ra2V0c3VzYWliYW5cIDsKK+eLrOeri+iHquWwiiA+IGRva3VyaXRzdWppc29uXCA7CivlqZrntITmjIfovKogPiBrb24nJ3lha3V5dWJpd2FcIDsKK+ihgOa2suWHneWbuiA+IGtldHN1ZWtpZ3lvdWtvXCA7Civlh7rlh6bpgLLpgIAgPiBzaHVzc2hvc2hpbnRhaVwgOwor5byT55+i5YWr5bmhID4geXVtaXlhaGFjaGltYW5cIDsKK+itpuWvn+aJi+W4syA+IGtlaXNhdHN1dGVjaG91XCA7Civogbfmpa3lqabkurogPiBzaG9rdWd5b3VmdWppblwgOwor6Iez56aP5Y2D5bm0ID4gc2hpZnVrdXNlbicnbmVuXCA7CivlpKnlnLDplovpl6IgPiB0ZW5jaGlrYWlieWFrdVwgOwor5Ya35YeN6aOf5ZOBID4gcmVpdG91c2hva3VoaW5cIDsKK+ijnOi2s+iqrOaYjiA+IGhvc29rdXNldHN1bWVpXCA7Civkv6HnlKjnirbmhYsgPiBzaGluJyd5b3Vqb3V0YWlcIDsKK+e1tuWvvua5v+W6piA+IHpldHRhaXNoaXRzdWRvXCA7CivmmI7mmI7nmb3nmb0gPiBtZWltZWloYWt1aGFrdVwgOwor6LuN5YKZ57iu5bCPID4gZ3VuYmlzaHVrdXNob3VcIDsKK+aatOWKm+Wbo+WToSA+IGJvdXJ5b2t1ZGFuJydpblwgOwor5aSn5a2m5pWZ6IKyID4gZGFpZ2FrdWt5b3Vpa3VcIDsKK+esrOS4ieS6uuensCA+IGRhaXNhbicnbmluc2hvdVwgOwor5rC45LiW5Lit56uLID4gZWlzZWljaHV1cml0c3VcIDsKK+eglOeptumgmOWfnyA+IGtlbmt5dXVyeW91aWtpXCA7CivmlZnogrLli4Xoqp4gPiBreW91aWt1Y2hva3Vnb1wgOwor57K+56We6Zqc5a6zID4gc2Vpc2hpbnNob3VnYWlcIDsKK+Wkqeepuua1t+a/tiA+IHRlbmt1dWthaWthdHN1XCA7Civpo5/ppIznmYLms5UgPiBzaG9rdWppcnlvdWhvdVwgOwor5L2c6ICF5LiN55+lID4gc2FrdXNoYXNoaXJhenVcIDsKK+eUn+a0u+awtOa6liA+IHNlaWthdHN1c3VpanVuXCA7CivljbXnlJ/li5XniakgPiByYW5zZWlkb3VidXRzdVwgOwor562L6IKJ5Yq05YONID4ga2luJyduaWt1cm91ZG91XCA7CivljZfmlK/pgqPmtbcgPiBtaW5hbWlzaGluYWthaVwgOwor5a2m6KGT55So6KqeID4gZ2FrdWp1dHN1eW91Z29cIDsKK+iHqueEtumjn+WTgSA+IHNoaXplbnNob2t1aGluXCA7CivllYbmpa3ntYTlkIggPiBzaG91Z3lvdWt1bWlhaVwgOwor6IG35qip5Lmx55SoID4gc2hva2tlbnJhbicneW91XCA7CivkvLTpo5/lpKfoh6MgPiBiYW5zaG9rdWRhaWppblwgOwor5bKh55uu5YWr55uuID4gb2thbWVoYWNoaW1va3VcIDsKK+aWrOaWsOWlh+aKnCA+IHphbnNoaW5raWJhdHN1XCA7Civnm7Tmg4XlvoTooYwgPiBjaG9rdWpvdWtlaWtvdVwgOwor56eB56uL5a2m5qChID4gc2hpcml0c3VnYWtrb3VcIDsKK+S4reaXpei+nuWFuCA+IGNodXVuaWNoaWppdGVuXCA7CivliIbpoZ7nm67pjLIgPiBidW5ydWltb2t1cm9rdVwgOwor5YaF5YiG5rOM6IW6ID4gbmFpYnVucGl0c3VzZW5cIDsKK+a0u+i3r+mWi+aLkyA+IGthdHN1cm9rYWl0YWt1XCA7CivlubPmnb/muKzph48gPiBoZWliYW5zb2t1cnlvdVwgOwor5rqQ5rOJ5b605Y+OID4gZ2Vuc2VuY2hvdXNodXVcIDsKK+mAmuS/oeihm+aYnyA+IHRzdXVzaGluJydlaXNlaVwgOwor5riF566X5Y+W5byVID4gc2Vpc2FudG9yaWhpa2lcIDsKK+eJueauiuWtpue0miA+IHRva3VzaHVnYWtreXV1XCA7Civkv6HnlKjoqr/mn7sgPiBzaGluJyd5b3VjaG91c2FcIDsKK+WFiOeJqeWjsuiytyA+IHNha2ltb25vYmFpYmFpXCA7CivkuIPpm6Plhavoi6YgPiBzaGljaGluYW5oYWtrdVwgOwor6KeS6Iac56e75qSNID4ga2FrdW1ha3Vpc2hva3VcIDsKK+aVkeaApeeXhemZoiA+IGt5dXVreXV1YnlvdWluXCA7CivmjqXop6bmhJ/mn5MgPiBzZXNzaG9rdWthbnNlblwgOwor56iO6YeR55Sz5ZGKID4gemVpa2luc2hpbmtva3VcIDsKK+e1qOavr+eIhuaSgyA+IGp1dXRhbmJha3VnZWtpXCA7CivkuIPou6LlhavotbcgPiBzaGljaGl0ZW5oYWtraVwgOwor5rC06YqA5Lit5q+SID4gc3VpZ2luY2h1dWRva3VcIDsKK+mcsuWHuuS4jei2syA+IHJvc2h1dHN1YnVzb2t1XCA7CivlubPkuIrljrvlhaUgPiBoeW91am91a3lvbnl1dVwgOwor5Zu956uL5YWs5ZySID4ga29rdXJpdHN1a291ZW5cIDsKK+WFrOeri+WtpuagoSA+IGtvdXJpdHN1Z2Fra291XCA7CivpgJrkv6HlnI/lpJYgPiB0c3V1c2hpbmtlbmdhaVwgOwor57SE5p2f5omL5b2iID4geWFrdXNva3V0ZWdhdGFcIDsKK+WPrOmbhuS7pOeKtiA+IHNob3VzaHV1cmVpam91XCA7CivmlrDlhaXnpL7lk6EgPiBzaGluJydueXV1c2hhaW5cIDsKK+aXpeWNl+a1t+WyuCA+IG5pY2hpbmFua2FpZ2FuXCA7CivmsY7mlbTmlbDlvI8gPiBoYW5zZWlzdXVzaGlraVwgOwor5Y+k54mp5ZWG5Lq6ID4ga29idXRzdXNob3VuaW5cIDsKK+atpuWKm+W5sua4iSA+IGJ1cnlva3VrYW5zaG91XCA7CivlhazooYbpgZPlvrMgPiBrb3VzaHV1ZG91dG9rdVwgOwor5oCq5aWH5bCP6KqsID4ga2Fpa2lzaG91c2V0c3VcIDsKK+enmOWvhuaKleelqCA+IGhpbWl0c3V0b3VoeW91XCA7CivlnKflipvlrrnlmaggPiBhdHN1cnlva3V5b3VraVwgOwor5YKN55uu5YWr55uuID4gb2thbWVoYWNoaW1va3VcIDsKK+axguWpmuW6g+WRiiA+IGt5dXVrb25rb3Vrb2t1XCA7Civlv4Plm6Dlj43lv5wgPiBzaGluJydpbmhhbicnbm91XCA7Civpuqbol4HluL3lrZAgPiBtdWdpd2FyYWJvdXNoaVwgOwor57SN56iO55Sz5ZGKID4gbm91emVpc2hpbmtva3VcIDsKK+WPjeWvvuensOeahCA+IGhhbnRhaXNob3V0ZWtpXCA7CivkvY/lj4vpioDooYwgPiBzdW1pdG9tb2dpbmtvdVwgOwor5Ye65omA6YCy6YCAID4gc2h1c3Nob3NoaW50YWlcIDsKK+WwsealreS6uuWPoyA+IHNodXVneW91amlua291XCA7Civlhajli53lhKrli50gPiB6ZW5zaG91eXV1c2hvdVwgOwor5bu66Kit5aSn6IejID4ga2Vuc2V0c3VkYWlqaW5cIDsKK+mdnuiJr+W/g+eahCA+IGhpcnlvdXNoaW50ZWtpXCA7Civntbblr77lv4XopoEgPiB6ZXR0YWloaXRzdXlvdVwgOwor6Ju46Laz6YWN57eaID4gdGFrb2FzaGloYWlzZW5cIDsKK+W3pealreWkp+WtpiA+IGtvdWd5b3VkYWlnYWt1XCA7Civph5Hlo7HkuIflhoYgPiBraW4nJ2ljaGltYW4nJ2VuXCA7Civml4XlrqLliJfou4ogPiByeW9reWFrdXJlc3NoYVwgOwor56uL5Lya5ryU6KqsID4gdGFjaGlhaWVuemV0c3VcIDsKK+WlqOWtpuizh+mHkSA+IHNob3VnYWt1c2hpa2luXCA7Civnj77ph5Hlj47lhaUgPiBnZW5raW5zaHV1bnl1dVwgOwor5a2m6KGT5Lya6K2wID4gZ2FrdWp1dHN1a2FpZ2lcIDsKK+azleW+i+WVj+mhjCA+IGhvdXJpdHN1bW9uZGFpXCA7Civnm7TpgJrpm7voqbEgPiBjaG9rdXRzdXVkZW53YVwgOwor5Y+w5omA6YGT5YW3ID4gZGFpZG9rb3JvZG91Z3VcIDsKK+mbu+a6kOS+m+e1piA+IGRlbmdlbmt5b3VreXV1XCA7CivlgZzlubTpgIDogbcgPiB0ZWluZW50YWlzaG9rdVwgOwor5rC06Zm45Lih55SoID4gc3VpcmlrdXJ5b3V5b3VcIDsKK+mAmuS/oeaJi+autSA+IHRzdXVzaGluc2h1ZGFuXCA7CivkuIvoq4vkvJrnpL4gPiBzaGl0YXVrZWdhaXNoYVwgOwor56ys5LiA5Lq656ewID4gZGFpaWNoaW5pbnNob3VcIDsKK+WtpuattOekvuS8miA+IGdha3VyZWtpc2hha2FpXCA7CivmvJTlpY/mm7Lnm64gPiBlbnNvdWt5b2t1bW9rdVwgOwor5oCd5oOz6K2m5a+fID4gc2hpc291a2Vpc2F0c3VcIDsKK+WFrOebiuizquWxiyA+IGtvdWVraXNoaWNoaXlhXCA7CivlgZXogIHlkIznqbQgPiBrYWlyb3Vkb3VrZXRzdVwgOwor5YGl5bq36aOf5ZOBID4ga2Vua291c2hva3VoaW5cIDsKK+aKveixoeWQjeipniA+IGNodXVzaG91bWVpc2hpXCA7CivlsI/kuZfku4/mlZkgPiBzaG91am91YnVra3lvdVwgOwor5ZCI55uu55qE5oCnID4gZ291bW9rdXRla2lzZWlcIDsKK+mbu+WKm+S8muekviA+IGRlbnJ5b2t1Z2Fpc2hhXCA7CivmtbfmtIvplovnmbogPiBrYWl5b3VrYWloYXRzdVwgOwor57Sw6IOe5YiG6KOCID4gc2FpYm91YnVucmV0c3VcIDsKK+aApeihjOaWmemHkSA+IGt5dXVrb3VyeW91a2luXCA7CivkuIHkuIHnmbrmraIgPiBjaG91Y2hvdWhhc3NoaVwgOwor5pWZ6IG36Kqy56iLID4ga3lvdXNob2t1a2F0ZWlcIDsKK+WHuueJiOalreiAhSA+IHNodXBwYW5neW91c2hhXCA7CivlsLHogbfpgYvli5UgPiBzaHV1c2hva3V1bmRvdVwgOwor55Wl5aWq6KGM54K6ID4gcnlha3VkYXRzdWtvdWlcIDsKK+eQhumdnuabsuebtCA+IHJpaGlreW9rdWNob2t1XCA7CivliKXlhorku5jpjLIgPiBiZXNzYXRzdWZ1cm9rdVwgOwor5LiJ5qip5YiG56uLID4gc2Fua2VuYnVucml0c3VcIDsKK+WFseWQjOeglOeptiA+IGt5b3Vkb3VrZW5reXV1XCA7CivmlrDliIrntLnku4sgPiBzaGlua2Fuc2hvdWthaVwgOwor5qOf5Ymy6ZW35bGLID4gbXVuZXdhcmluYWdheWFcIDsKK+S/ruWlveadoee0hCA+IHNodXVrb3Vqb3V5YWt1XCA7CivlhqDnirbli5XohIggPiBrYW5qb3Vkb3VteWFrdVwgOwor56m656m65ryg5rygID4ga3V1a3V1YmFrdWJha3VcIDsKK+aCquaAp+iyp+ihgCA+IGFrdXNlaWhpbmtldHN1XCA7CivkvJHmiKbljZTlrpogPiBreXV1c2Vua3lvdXRlaVwgOwor56We57WM6KGw5byxID4gc2hpbmtlaXN1aWpha3VcIDsKK+WbnuaKmOagvOWtkCA+IGthaXNldHN1a291c2hpXCA7CivlhYjmsbrllY/poYwgPiBzZW5rZXRzdW1vbmRhaVwgOwor5bCx5qWt5pel5pWwID4gc2h1dWd5b3VuaXNzdXVcIDsKK+Wun+mok+WLleeJqSA+IGppa2tlbmRvdWJ1dHN1XCA7Civlv6DlkJvmhJvlm70gPiBjaHV1a3VuJydhaWtva3VcIDsKK+axguS6uuW6g+WRiiA+IGt5dXVqaW5rb3Vrb2t1XCA7Civni6znq4vni6zmrakgPiBkb2t1cml0c3Vkb3Bwb1wgOwor6Ku46Kqs57Sb44CFID4gc2hvc2V0c3VmdW5wdW5cIDsKK+acieWus+mjn+WTgSA+IHl1dWdhaXNob2t1aGluXCA7CivpurvolqzkuK3mr5IgPiBtYXlha3VjaHV1ZG9rdVwgOwor6YeR5bGe5bel5qWtID4ga2luem9rdWtvdWd5b3VcIDsKK+WNuOWjsueJqeS+oSA+IG9yb3NoaXVyaWJ1a2thXCA7CivlhbHlkIzlh7ros4cgPiBreW91ZG91c2h1c3NoaVwgOwor54ut6LuM6YmE6YGTID4ga3lvdWtpdGV0c3Vkb3VcIDsKK+WVhualreaJi+W9oiA+IHNob3VneW91dGVnYXRhXCA7Civpg7Xkvr/phY3pgZQgPiB5dXViaW5oYWl0YXRzdVwgOwor5riv5rm+5b2T5bGAID4ga291d2FudG91a3lva3VcIDsKK+WVhualremKgOihjCA+IHNob3VneW91Z2lua291XCA7CivnnIHnlaXoqJjlj7cgPiBzaG91cnlha3VraWdvdVwgOwor5Lit6ZaT5aCx5ZGKID4gY2h1dWthbmhvdWtva3VcIDsKK+S4reW/g+aAneaDsyA+IGNodXVzaGluc2hpc291XCA7CivkupTmnIjkurrlvaIgPiBnb2dhdHN1bmluZ3lvdVwgOwor5Lyd5om/5paH5a2mID4gZGVuc2hvdWJ1bmdha3VcIDsKK+i7n+S9k+WLleeJqSA+IG5hbnRhaWRvdWJ1dHN1XCA7CivlvLfliLblj47lrrkgPiBreW91c2Vpc2h1dXlvdVwgOwor5LiA6Zm95p2l6IW5ID4gaWNoaXlvdXJhaWZ1a3VcIDsKK+a8gealreWNlOWumiA+IGd5b2d5b3VreW91dGVpXCA7CivmsLTnlJ/li5XniakgPiBzdWlzZWlkb3VidXRzdVwgOwor5qWU5b2i5paH5a2XID4ga3VzYWJpZ2F0YW1vamlcIDsKK+S/oeeUqOe1hOWQiCA+IHNoaW4nJ3lvdWt1bWlhaVwgOwor56CU56m25aCx5ZGKID4ga2Vua3l1dWhvdWtva3VcIDsKK+awtOWkqeW9t+W9vyA+IHN1aXRlbmhvdWZ1dHN1XCA7CivkvY/lroXnlKPmpa0gPiBqdXV0YWt1c2FuZ3lvdVwgOwor5rOh5rKr5Lya56S+ID4gaG91bWF0c3VnYWlzaGFcIDsKK+irh+irlumiqOeZuiA+IGRhbnJvbmZ1dWhhdHN1XCA7CivlhYjnmbrmipXmiYsgPiBzZW5wYXRzdXRvdXNodVwgOwor5o6o55CG5bCP6KqsID4gc3VpcmlzaG91c2V0c3VcIDsKK+e0s+Wjq+WNlOWumiA+IHNoaW5zaGlreW91dGVpXCA7CivlpKflkI3lsYvmlbcgPiBkYWlteW91eWFzaGlraVwgOwor54m555Ww5L2T6LOqID4gdG9rdWl0YWlzaGl0c3VcIDsKK+S4remWk+aQvuWPliA+IGNodXVrYW5zYWt1c2h1XCA7CivljZToqr/kvZzmpa0gPiBreW91Y2hvdXNhZ3lvdVwgOwor5oyH5Zyn55mC5rOVID4gc2hpYXRzdXJ5b3Vob3VcIDsKK+W3pealreaKgOihkyA+IGtvdWd5b3VnaWp1dHN1XCA7Civnt4/lkIjoirjooZMgPiBzb3Vnb3VnZWlqdXRzdVwgOwor5Lit55Sj6ZqO57SaID4gY2h1dXNhbmthaWt5dXVcIDsKK+WNl+WNgeWtl+aYnyA+IG1pbmFtaWp1dWppc2VpXCA7Civlv4PpnIrmiYvooZMgPiBzaGlucmVpdGVqdXRzdVwgOwor5oiQ6ZW355Sj5qWtID4gc2VpY2hvdXNhbmd5b3VcIDsKK+Wbvemam+WPjuaUryA+IGtva3VzYWlzaHV1c2hpXCA7CivljprnlJ/mlr3oqK0gPiBrb3VzZWlzaGlzZXRzdVwgOwor5LiK6Zm45L2c5oimID4gam91cmlrdXNha3VzZW5cIDsKK+WLleWKm+izh+a6kCA+IGRvdXJ5b2t1c2hpZ2VuXCA7Civlv4XopoHmnaHku7YgPiBoaXRzdXlvdWpvdWtlblwgOwor5Lit5rWB5oSP6K2YID4gY2h1dXJ5dXVpc2hpa2lcIDsKK+WHuua8geWMuuWfnyA+IHNodXRzdWd5b2t1aWtpXCA7CivosqHlvaLosq/ok4QgPiB6YWlrZWljaG9jaGlrdVwgOwor6IG35Lq65rCX6LOqID4gc2hva3VuaW5rYXRhZ2lcIDsKK+WNmOS9jeihjOWIlyA+IHRhbicnaWd5b3VyZXRzdVwgOwor5Zu96YCj5oay56ugID4ga29rdXJlbmtlbnNob3VcIDsKK+awtOWFiOahiOWGhSA+IG1penVzYWtpYW4nJ25haVwgOwor5Y+O5a656Kit5YKZID4gc2h1dXlvdXNldHN1YmlcIDsKK+a3sea1t+a8gealrSA+IHNoaW5rYWlneW9neW91XCA7Civnm7TlvoDpgoHpgLIgPiBjaG9rdW91bWFpc2hpblwgOwor5aSp5L2T5Yqb5a2mID4gdGVudGFpcmlraWdha3VcIDsKK+ecn+epuumbu+eQgyA+IHNoaW5rdXVkZW5reXV1XCA7CivkuIrlsaTlu7rnr4kgPiBqb3Vzb3VrZW5jaGlrdVwgOwor5b256IG35omL5b2TID4geWFrdXNob2t1dGVhdGVcIDsKK+mrmOWcp+mbu+a1gSA+IGtvdWF0c3VkZW5yeXV1XCA7CivkuqTpgJrpgZPlvrMgPiBrb3V0c3V1ZG91dG9rdVwgOwor5rC05rqW5ris6YePID4gc3VpanVuc29rdXJ5b3VcIDsKK+W8geiovOazleeahCA+IGJlbnNob3Vob3V0ZWtpXCA7Civmnb7ojLjlvqHpo68gPiBtYXRzdXRha2Vnb2hhblwgOwor6Zai56iO6Zqc5aOBID4ga2FuemVpc2hvdWhla2lcIDsKK+e1seaLrOmDqOmVtyA+IHRvdWthdHN1YnVjaG91XCA7CivmkI3lpLHoo5zloasgPiBzb25zaGl0c3Vob3RlblwgOwor5LqL5LqL54mp54mpID4gamlqaWJ1dHN1YnV0c3VcIDsKK+aIpuOAheaBkOOAhSA+IHNlbnNlbmt5b3VreW91XCA7CivpgKPntprlhpnnnJ8gPiByZW56b2t1c2hhc2hpblwgOwor5Zub55m+5L2Z5beeID4gc2hpaHlha3V5b3NodXVcIDsKK+S4gOmZveadpeW+qSA+IGljaGl5b3VyYWlmdWt1XCA7Civlv4PnrYvmopfloZ4gPiBzaGlua2lua291c29rdVwgOwor5a6X5pWZ6KOB5YikID4gc2h1dWt5b3VzYWliYW5cIDsKK+WGmeecn+efs+eJiCA+IHNoYXNoaW5zZWtpYmFuXCA7CivpmqDoirHmpI3niakgPiBpbmthc2hva3VidXRzdVwgOwor5b6u55Sf54mp5a2mID4gYmlzZWlidXRzdWdha3VcIDsKK+aIpueVpeepuui7jSA+IHNlbnJ5YWt1a3V1Z3VuXCA7Civmga3os4DmlrDlubQgPiBreW91Z2FzaGluJyduZW5cIDsKK+Wbvemam+WNlOWumiA+IGtva3VzYWlreW91dGVpXCA7CivoibLljbPmmK/nqbogPiBzaGlraXNva3V6ZWt1dVwgOwor6aCt5a+S6Laz54axID4genVrYW5zb2t1bmV0c3VcIDsKK+WMuuaknOWvn+W6gSA+IGt1a2Vuc2F0c3VjaG91XCA7CivmoLjpmLLooZvlipsgPiBrYWt1Ym91ZWlyeW9rdVwgOwor5a6M5YWo54eD54S8ID4ga2FuemVuJyduZW5zaG91XCA7Civph43ph4/mhJ/oppogPiBqdXVyeW91a2Fua2FrdVwgOwor6ZuM6ZuE6ZGR5YilID4gc2hpeXV1a2FuYmV0c3VcIDsKK+WOn+eUn+WLleeJqSA+IGdlbnNlaWRvdWJ1dHN1XCA7Civnm67nmoTmhI/orZggPiBtb2t1dGVraWlzaGlraVwgOwor5rW355Sf5YuV54mpID4ga2Fpc2VpZG91YnV0c3VcIDsKK+aUu+aSg+eyvuelniA+IGtvdWdla2lzZWlzaGluXCA7CivkvZzmiJDmioDooZMgPiBzYWt1c2VpZ2lqdXRzdVwgOwor6YeR6Yqt5L+h6KiXID4ga2luc2Vuc2hpbnRha3VcIDsKK+WQuOWPjuWQiOS9tSA+IGt5dXVzaHV1Z2FwcGVpXCA7Civmj5vpqqjlparog44gPiBrYW5rb3RzdWRhdHRhaVwgOwor56Gs6LOq6Zm25ZmoID4ga291c2hpdHN1dG91a2lcIDsKK+WvneWPsOaWmemHkSA+IHNoaW5kYWlyeW91a2luXCA7Civos7zlhaXms6jmlocgPiBrb3VueXV1Y2h1dW1vblwgOwor54Sm5Zyf5oim6KGTID4gc2hvdWRvc2VuanV0c3VcIDsKK+acieiBt+aVheWunyA+IHl1dXNva3Vrb2ppdHN1XCA7CivnhKHlhJ/kv6HoqJcgPiBtdXNob3VzaGludGFrdVwgOwor5raI6LK755Sf5rS7ID4gc2hvdWhpc2Vpa2F0c3VcIDsKK+WupOWGhemBiuaIryA+IHNoaXRzdW5haXl1dWdpXCA7CivlrpfmlZnlm6PkvZMgPiBzaHV1a3lvdWRhbnRhaVwgOwor6YCy6KGM54q25rOBID4gc2hpbmtvdWpvdWt5b3VcIDsKK+mrmOetieWLleeJqSA+IGtvdXRvdWRvdWJ1dHN1XCA7CivkuIDohrPpo6/lsYsgPiBpY2hpemVubWVzaGl5YVwgOwor5pmC5Luj5bCP6KqsID4gamlkYWlzaG91c2V0c3VcIDsKK+absue3muW6p+aomSA+IGt5b2t1c2VuemFoeW91XCA7CivlvZPoqbLkurrniakgPiB0b3VnYWlqaW5idXRzdVwgOwor6KaB5rGC6YCB5L+hID4geW91a3l1dXNvdXNoaW5cIDsKK+eZvuS6uuS4gOmmliA+IGh5YWt1bmluJydpc3NodVwgOwor6ZuG5Zuj5qSc6Ki6ID4gc2h1dWRhbmtlbnNoaW5cIDsKK+WuieWvp+enqeW6jyA+IGFuJyduZWljaGl0c3Vqb1wgOwor5qW15qW96bOl6IqxID4gZ29rdXJha3VjaG91a2FcIDsKK+S4rei2iue0m+S6iSA+IGNodXVldHN1ZnVuc291XCA7CivkuIDmi6zos7zlhaUgPiBpa2thdHN1a291bnl1dVwgOwor5rCR5peP6Ieq5rG6ID4gbWluem9rdWppa2V0c3VcIDsKK+ato+mdouaUu+aSgyA+IHNob3VtZW5rb3VnZWtpXCA7CivmlZnogrLnlKPmpa0gPiBreW91aWt1c2FuZ3lvdVwgOwor56m66Kq/6Kit5YKZID4ga3V1Y2hvdXNldHN1YmlcIDsKK+WNmOeLrOWGhemWoyA+IHRhbmRva3VuYWlrYWt1XCA7CivmlZnogrLlrp/nv5IgPiBreW91aWt1amlzc2h1dVwgOwor5bCx5qWt6KaP5YmHID4gc2h1dWd5b3VraXNva3VcIDsKK+aVmemkiueVque1hCA+IGt5b3V5b3ViYW5ndW1pXCA7Civlh43ntZDos4fnlKMgPiB0b3VrZXRzdXNoaXNhblwgOwor6ZuG5Zuj6L6y5aC0ID4gc2h1dWRhbicnbm91am91XCA7Civlkajovrroq7jlm70gPiBzaHV1aGVuc2hva29rdVwgOwor5Zu957GN5p2h6aCFID4ga29rdXNla2lqb3Vrb3VcIDsKK+ePvueJqee1puS4jiA+IGdlbmJ1dHN1a3l1dXlvXCA7Civosarpm6rlnLDluK8gPiBnb3VzZXRzdWNoaXRhaVwgOwor5rW35Y2D5bGx5Y2DID4gdW1pc2VuJyd5YW1hc2VuXCA7CivpnanmlrDmlL/lhZogPiBrYWt1c2hpbnNlaXRvdVwgOwor5bCR5pWw5rCR5pePID4gc2hvdXN1dW1pbnpva3VcIDsKK+WKtOWDjeWNlOe0hCA+IHJvdWRvdWt5b3V5YWt1XCA7Civpm7vmkoPkvZzmiKYgPiBkZW5nZWtpc2FrdXNlblwgOwor5LiD6aGb5YWr6LW3ID4gc2hpY2hpdGVuaGFra2lcIDsKK+iEiumrhOelnue1jCA+IHNla2l6dWlzaGlua2VpXCA7Civnvo7ooZPlpKflraYgPiBiaWp1dHN1ZGFpZ2FrdVwgOwor6YG45oqe6aCF55uuID4gc2VudGFrdWtvdW1va3VcIDsKK+mWk+aOpemBuOaMmSA+IGthbnNldHN1c2Vua3lvXCA7Civosp3mrrvov73mlL4gPiBrYWlnYXJhdHN1aWhvdVwgOwor576k55m65Zyw6ZyHID4gZ3VucGF0c3VqaXNoaW5cIDsKK+e3iuikjOS4gOeVqiA+IGtpbmtvbicnaWNoaWJhblwgOwor54us6Lqr6LK05pePID4gZG9rdXNoaW5raXpva3VcIDsKK+enkeWtpuefpeitmCA+IGthZ2FrdWNoaXNoaWtpXCA7Civnn7Ppg6jph5HlkIkgPiBpc2hpYmVraW5raWNoaVwgOwor6Iqx6bOl6aKo5pyIID4ga2FjaG91ZnV1Z2V0c3VcIDsKK+aPkOWHuuacn+mZkCA+IHRlaXNodXRzdWtpZ2VuXCA7CivlpKnplbflnLDkuYUgPiB0ZW5jaG91Y2hpa3l1dVwgOwor55m+5LiH6ZW36ICFID4gaHlha3VtYW5jaG91amFcIDsKK+WvvueXh+eZguazlSA+IHRhaXNob3VyeW91aG91XCA7CivkuK3mnqLnpZ7ntYwgPiBjaHV1c3V1c2hpbmtlaVwgOwor5ZWG5bel5qWt6ICFID4gc2hvdWtvdWd5b3VzaGFcIDsKK+mWi+elqOmAn+WgsSA+IGthaWh5b3Vzb2t1aG91XCA7CivmgKfnmoTooZ3li5UgPiBzZWl0ZWtpc2hvdWRvdVwgOwor54m55q6K5pKu5b2xID4gdG9rdXNodXNhdHN1ZWlcIDsKK+i8uOWHuuaJi+W9oiA+IHl1c2h1dHN1dGVnYXRhXCA7Civlj7LmlpnppKjlraYgPiBzaGlyeW91a2FuZ2FrdVwgOwor56m65Lit5qW86ZajID4ga3V1Y2h1dXJvdWtha3VcIDsKK+WwkeW5tOaWh+WtpiA+IHNob3VuZW5idW5nYWt1XCA7Civoqr/mlbTmlLvmkoMgPiBjaG91c2Vpa291Z2VraVwgOwor57K+56We5bm06b2iID4gc2Vpc2hpbicnbmVucmVpXCA7CivlsYXkuK3oqr/lgZwgPiBreW9jaHV1Y2hvdXRlaVwgOwor56iO5Yil5L6h5qC8ID4gemVpYmV0c3VrYWtha3VcIDsKK+i7jeS6uueUn+a0uyA+IGd1bmppbnNlaWthdHN1XCA7Civnmoflrq7orablr58gPiBrb3VndXVrZWlzYXRzdVwgOwor57KS44CF6L6b6IumID4gcnl1dXJ5dXVzaGlua3VcIDsKK+adseS6rOWkp+WtpiA+IHRvdWt5b3VkYWlnYWt1XCA7CivoiIjlkbPmtKXmtKUgPiBreW91bWlzaGluc2hpblwgOwor5Y2D5a6i5LiH5p2lID4gc2Vua3lha3ViYW5yYWlcIDsKK+mBuOaKnOippumokyA+IHNlbmJhdHN1c2hpa2VuXCA7CivoiKrot6/mqJnorZggPiBrb3Vyb2h5b3VzaGlraVwgOwor57eK5oCl55m66YCyID4ga2lua3l1dWhhc3NoaW5cIDsKK+epuuS4reWGmeecnyA+IGt1dWNodXVzaGFzaGluXCA7Civllrbmpa3mtLvli5UgPiBlaWd5b3VrYXRzdWRvdVwgOwor5pWR5o+05rS75YuVID4ga3l1dWVua2F0c3Vkb3VcIDsKK+WkqeeEtuehneWtkCA+IHRlbicnbmVuc2hvdXNoaVwgOwor5L+h6KiX6LOH6YeRID4gc2hpbnRha3VzaGlraW5cIDsKK+W4guawkeeUn+a0uyA+IHNoaW1pbnNlaWthdHN1XCA7Civntbblr77mqKnlipsgPiB6ZXR0YWlrZW5yeW9rdVwgOwor5ZGo56ug54u854u9ID4gc2h1dXNob3Vyb3ViYWlcIDsKK+awkeaXj+WtpuiAhSA+IG1pbnpva3VnYWt1c2hhXCA7CivohqDnnYDnirbmhYsgPiBrb3VjaGFrdWpvdXRhaVwgOwor6Z2i5o6l6Kmm6aiTID4gbWVuc2V0c3VzaGlrZW5cIDsKK+aUv+etluWNlOWumiA+IHNlaXNha3VreW91dGVpXCA7Civosqnlo7LmiKbnlaUgPiBoYW5iYWlzZW5yeWFrdVwgOwor5YWs6Kit5biC5aC0ID4ga291c2V0c3VpY2hpYmFcIDsKK+S6uueJqee1jOa4iCA+IGppbmJ1dHN1a2VpemFpXCA7Civlv4PnmoTnirbmhYsgPiBzaGludGVraWpvdXRhaVwgOwor5LiY6Zm15Zyw5bivID4ga3l1dXJ5b3VjaGl0YWlcIDsKK+eUn+a2r+aVmeiCsiA+IHNob3VnYWlreW91aWt1XCA7Civml6fntITlhajmm7ggPiBreXV1eWFrdXplbnNob1wgOwor5aSn5qC55b256ICFID4gZGFpa29uJyd5YWt1c2hhXCA7CivkuIflubTmlrDpgKAgPiBtYW4nJ25lbnNoaW56b3VcIDsKK+W6p+mqqOelnue1jCA+IHpha290c3VzaGlua2VpXCA7CivplbfogIHmlZnkvJogPiBjaG91cm91a3lvdWthaVwgOwor6LKv6JOE5YK15Yi4ID4gY2hvY2hpa3VzYWlrZW5cIDsKK+atpuWKm+S7i+WFpSA+IGJ1cnlva3VrYWlueXV1XCA7Civnsr7lr4bnp5HlraYgPiBzZWltaXRzdWthZ2FrdVwgOwor56eB6YmE57eP6YCjID4gc2hpdGV0c3Vzb3VyZW5cIDsKK+S8nemAgee1guS6hiA+IGRlbnNvdXNodXVyeW91XCA7Civolqvokrjmtojmr5IgPiBrdW5qb3VzaG91ZG9rdVwgOwor6bqm56iI5bi95a2QID4gbXVnaXdhcmFib3VzaGlcIDsKK+azleW+i+ebuOirhyA+IGhvdXJpdHN1c291ZGFuXCA7CivlnLDln5/plovnmbogPiBjaGlpa2lrYWloYXRzdVwgOwor5Zu95YaF55Sj5qWtID4ga29rdW5haXNhbmd5b3VcIDsKK+S4gOaJk+mAhui7oiA+IGljaGlkYWd5YWt1dGVuXCA7CivmsLTnlJ/nlJ/niakgPiBzdWlzZWlzZWlidXRzdVwgOwor5pyJ57ea6YCa5L+hID4geXV1c2VudHN1dXNoaW5cIDsKK+i1t+aJv+i7oue1kCA+IGtpc2hvdXRlbmtldHN1XCA7Civnianos6rkuLvnvqkgPiBidXNzaGl0c3VzaHVnaVwgOwor5L+h6KiX5Lya56S+ID4gc2hpbnRha3VnYWlzaGFcIDsKK+S4remWk+WVhuS6uiA+IGNodXVrYW5zaG91bmluXCA7CivpnZnpm7vlrrnph48gPiBzZWlkZW4nJ3lvdXJ5b3VcIDsKK+S4rea1geekvuS8miA+IGNodXVyeXV1c2hha2FpXCA7Civnp4Hnq4vmjqLlgbUgPiBzaGlyaXRzdXRhbnRlaVwgOwor5Zu95rCR5oqV56WoID4ga29rdW1pbnRvdWh5b3VcIDsKK+aciee9quWIpOaxuiA+IHl1dXphaWhhbmtldHN1XCA7CivlvLfljJbpo5/lk4EgPiBreW91a2FzaG9rdWhpblwgOwor5Ly457iu6Ieq5ZyoID4gc2hpbnNodWt1aml6YWlcIDsKK+mZuOi7jeWkp+WtpiA+IHJpa3VndW5kYWlnYWt1XCA7CivpgJrkv6HpgJ/luqYgPiB0c3V1c2hpbnNva3Vkb1wgOwor6buS6YeR5Ymb55+zID4ga3Vyb2tvbmdvdXNla2lcIDsKK+S4reWbveS6uuihlyA+IGNodXVnb2t1amluZ2FpXCA7CivlraboirjlpKflraYgPiBnYWt1Z2VpZGFpZ2FrdVwgOwor5aSn5rKz5bCP6KqsID4gdGFpZ2FzaG91c2V0c3VcIDsKK+mJhOmBk+S8muekviA+IHRldHN1ZG91Z2Fpc2hhXCA7Civpn7Pmpb3lvaLlvI8gPiBvbmdha3VrZWlzaGlraVwgOwor5oCn5qC85YiG5p6QID4gc2Vpa2FrdWJ1bnNla2lcIDsKK+ePvumHkeabuOeVmSA+IGdlbmtpbmtha2l0b21lXCA7CivkvJHmiKbmnaHntIQgPiBreXV1c2Vuam91eWFrdVwgOwor5LqM6Laz5YuV54mpID4gbmlzb2t1ZG91YnV0c3VcIDsKK+W/g+eQhuWtpueahCA+IHNoaW5yaWdha3V0ZWtpXCA7CivkvoPjgIXoq6Toq6QgPiBrYW5rYW5nYWt1Z2FrdVwgOwor55u057ea6YGL5YuVID4gY2hva3VzZW4nJ3VuZG91XCA7CivmgqrlvrPmlrDogZ4gPiBha3V0b2t1c2hpbmJ1blwgOwor5pyq5rG65ouY55WZID4gbWlrZXRzdWtvdXJ5dXVcIDsKK+WumumHj+WIhuaekCA+IHRlaXJ5b3VidW5zZWtpXCA7CivntJnlsZHlkIznhLYgPiBrYW1pa3V6dWRvdXplblwgOwor5rip5a6k5qC95Z+5ID4gb25zaGl0c3VzYWliYWlcIDsKK+mHneWwj+ajkuWkpyA+IHNoaW5zaG91Ym91ZGFpXCA7CivlpKrliIDkuozohbAgPiB0YWNoaWZ1dGFrb3NoaVwgOwor6KqN6K2Y5LiN6LazID4gbmluc2hpa2lidXNva3VcIDsKK+Wbo+S9k+WNlOe0hCA+IGRhbnRhaWt5b3V5YWt1XCA7CivmiKbjgIXlhaLjgIUgPiBzZW5zZW5reW91a3lvdVwgOwor5L+h6aC85Zue5b6pID4gc2hpbnJhaWthaWZ1a3VcIDsKK+S/ruWtpuaXheihjCA+IHNodXVnYWt1cnlva291XCA7Civpm7vmupDplovnmbogPiBkZW5nZW5rYWloYXRzdVwgOwor5qih5byP5qiZ5pysID4gbW9zaGlraWh5b3Vob25cIDsKK+i/vei3oeiqv+afuyA+IHRzdWlzZWtpY2hvdXNhXCA7CivlibLlvJXmiYvlvaIgPiB3YXJpYmlraXRlZ2F0YVwgOwor55u05rWB5Zue6LevID4gY2hva3VyeXV1a2Fpcm9cIDsKK+iIiOihjOaIkOe4viA+IGtvdWd5b3VzZWlzZWtpXCA7CivljJfmtIvmvIHmpa0gPiBob2t1eW91Z3lvZ3lvdVwgOwor5Zu95paH5a2m5Y+yID4ga29rdWJ1bmdha3VzaGlcIDsKK+awuOS5heiEseavmyA+IGVpa3l1dWRhdHN1bW91XCA7CivmjpLlh7rln7rmupYgPiBoYWlzaHV0c3VraWp1blwgOwor57WE6IG35pS56Z2pID4gc29zaG9rdWthaWtha3VcIDsKK+mBjuWkseiHtOatuyA+IGthc2hpdHN1Y2hpc2hpXCA7CivkuqTpgJrkv6Hlj7cgPiBrb3V0c3V1c2hpbmdvdVwgOwor5YuV54mp5a6f6aiTID4gZG91YnV0c3VqaWtrZW5cIDsKK+awtOS4iuitpuWvnyA+IHN1aWpvdWtlaXNhdHN1XCA7CivlirTkvZzmlZnogrIgPiByb3VzYWt1a3lvdWlrdVwgOwor5qC45buD5qOE54mpID4ga2FrdWhhaWtpYnV0c3VcIDsKK+mOrumtguabsuatjCA+IGNoaW5rb25reW9rdWthXCA7CivpnZ7piYTph5HlsZ4gPiBoaXRldHN1a2luem9rdVwgOwor5LiJ55m+5Luj6KiAID4gc2FuYnlha3VkYWlnZW5cIDsKK+S4reWbveS8neadpSA+IGNodXVnb2t1ZGVucmFpXCA7CivnrYvnhKHlipvnl4cgPiBraW5tdXJ5b2t1c2hvdVwgOwor5rWB6YCa6LOH5pysID4gcnl1dXRzdXVzaGlob25cIDsKK+epuuWNs+aYr+iJsiA+IGt1dXNva3V6ZXNoaWtpXCA7CivmlZnogrLmlLnpnakgPiBreW91aWt1a2Fpa2FrdVwgOwor5YiH6ZaL5omL6KGTID4gc2Vra2Fpc2h1anV0c3VcIDsKK+aVkeitt+a0u+WLlSA+IGt5dXVnb2thdHN1ZG91XCA7CivlrqPkvJ3mtLvli5UgPiBzZW5kZW5rYXRzdWRvdVwgOwor6LKh55Sj55uu6YyyID4gemFpc2FubW9rdXJva3VcIDsKK+ato+W4uOe1guS6hiA+IHNlaWpvdXNodXVyeW91XCA7CivkuqHlkb3nlJ/mtLsgPiBib3VtZWlzZWlrYXRzdVwgOwor5YSq6LaK6KSH5ZCIID4geXV1ZXRzdWZ1a3Vnb3VcIDsKK+e0lOaXpeacrOW8jyA+IGp1bicnbmlob25zaGlraVwgOwor5omL5b2i5Ymy5byVID4gdGVnYXRhd2FyaWJpa2lcIDsKK+WLleeJqeW0h+aLnSA+IGRvdWJ1dHN1c3V1aGFpXCA7CivlhbHlkIzkvY/lroUgPiBreW91ZG91anV1dGFrdVwgOwor5pyJ6KKL5YuV54mpID4geXV1dGFpZG91YnV0c3VcIDsKK+iii+Wwj+i3r+aWhyA+IGZ1a3Vyb2tvdWppYnVuXCA7Civnmb3noILpnZLmnb4gPiBoYWt1c2hhc2Vpc2hvdVwgOwor6Iqx5auB5b6h5a+uID4gaGFuYXlvbWVnb3J5b3VcIDsKK+aWsOmZs+S7o+isnSA+IHNoaW5jaGludGFpc2hhXCA7CivkuIDlha3pioDooYwgPiBpY2hpcm9rdWdpbmtvdVwgOwor5bCx6IG35pah5peLID4gc2h1dXNob2t1YXNzZW5cIDsKK+mereavm+iZq+eXhyA+IGJlbm1vdWNodXVzaG91XCA7CivntbbkvZPntbblkb0gPiB6ZXR0YWl6ZXRzdW1laVwgOwor57K+56We5YiG5p6QID4gc2Vpc2hpbmJ1bnNla2lcIDsKK+ezu+WIl+S8muekviA+IGtlaXJldHN1Z2Fpc2hhXCA7CivliIblrZDplpPlipsgPiBidW5zaGlrYW5yeW9rdVwgOwor5LyB5qWt5oim55WlID4ga2lneW91c2Vucnlha3VcIDsKK+WbveawkeaJgOW+lyA+IGtva3VtaW5zaG90b2t1XCA7CivovLjlh7rliLbpmZAgPiB5dXNodXRzdXNlaWdlblwgOwor54m55a6a6YqY5p+EID4gdG9rdXRlaW1laWdhcmFcIDsKK+iyoeWLmeS9k+izqiA+IHphaW11dGFpc2hpdHN1XCA7Civorablr5/lrabmoKEgPiBrZWlzYXRzdWdha2tvdVwgOwor5LiN5rOV5L615YWlID4gZnVob3VzaGluJydueXV1XCA7CivnlJ/mtLvoqK3oqIggPiBzZWlrYXRzdXNla2tlaVwgOwor6Lu96JaE55+t5bCPID4ga2VpaGFrdXRhbnNob3VcIDsKK+eul+ihk+W5s+WdhyA+IHNhbmp1dHN1aGVpa2luXCA7CivljbPluK3mlpnnkIYgPiBzb2t1c2VraXJ5b3VyaVwgOwor54mp55CG55mC5rOVID4gYnV0c3VyaXJ5b3Vob3VcIDsKK+mdkumFuOS4reavkiA+IHNlaXNhbmNodXVkb2t1XCA7CivlrpfmlZnms5XkurogPiBzaHV1a3lvdWhvdWppblwgOwor5YaZ55yf5qSN5a2XID4gc2hhc2hpbnNob2t1amlcIDsKK+e3iue4ruiyoeaUvyA+IGtpbnNodWt1emFpc2VpXCA7CivljZjmgKfnlJ/mrpYgPiB0YW5zZWlzZWlzaG9rdVwgOwor6auY562J55Sf54mpID4ga291dG91c2VpYnV0c3VcIDsKK+iIiOWRs+a0peOAhSA+IGt5b3VtaXNoaW5zaGluXCA7Civkv53oqLzniZvkubMgPiBob3Nob3VneXV1bnl1dVwgOwor5Y+X6IOO6Kq/56+AID4ganV0YWljaG91c2V0c3VcIDsKK+mAj+aekOeZguazlSA+IHRvdXNla2lyeW91aG91XCA7CivmhJ/opprnpZ7ntYwgPiBrYW5rYWt1c2hpbmtlaVwgOwor5bCC6ZaA55+l6K2YID4gc2VubW9uY2hpc2hpa2lcIDsKK+i7jeaLoeertuS6iSA+IGd1bmtha3VreW91c291XCA7CivnmbvloLTkurrniakgPiB0b3Vqb3VqaW5idXRzdVwgOwor6Z2e54++5a6f55qEID4gaGlnZW5qaXRzdXRla2lcIDsKK+mAhuaAp+efs+m5uCA+IGd5YWt1c2Vpc2Vra2VuXCA7Civlub3ploDni63nqoQgPiB5dXVtb25reW91c2FrdVwgOwor6YCj6YKm5b2T5bGAID4gcmVucG91dG91a3lva3VcIDsKK+ebtOWwhOaXpeWFiSA+IGNob2t1c2hhbmlra291XCA7CivlhYjku7vlsIbmoKEgPiBzZW4nJ25pbnNob3Vrb3VcIDsKK+isueWOs+Wun+ebtCA+IGtpbmdlbmppdGNob2t1XCA7CivlupfpoK3lj5blvJUgPiB0ZW50b3V0b3JpaGlraVwgOwor55m65aOy56aB5q2iID4gaGF0c3ViYWlraW5zaGlcIDsKK+WTgeizqueuoeeQhiA+IGhpbnNoaXRzdWthbnJpXCA7Civnt6jlhaXoqabpqJMgPiBoZW4nJ255dXVzaGlrZW5cIDsKK+S8nemBlOmWouaVsCA+IGRlbnRhdHN1a2Fuc3V1XCA7CivlsL3lv6DloLHlm70gPiBqaW5jaHV1aG91a29rdVwgOwor5Yq05L2/5Y2U6Kq/ID4gcm91c2hpa3lvdWNob3VcIDsKK+eZvuiJsuecvOmPoSA+IGh5YWt1aXJvbWVnYW5lXCA7CivkuK3mgKflrZDmnZ8gPiBjaHV1c2Vpc2hpc29rdVwgOwor57eK5oCl5a++562WID4ga2lua3l1dXRhaXNha3VcIDsKK+WNsOWIt+aKgOihkyA+IGluc2F0c3VnaWp1dHN1XCA7Civlv4PnmoTooajnpLogPiBzaGludGVraWh5b3VqaVwgOwor5ZCN5omA5pen6LehID4gbWVpc2hva3l1dXNla2lcIDsKK+aKleizh+S/oeiolyA+IHRvdXNoaXNoaW50YWt1XCA7CivmlrDpn5Plm73lhZogPiBzaGlua2Fua29rdXRvdVwgOwor5Zu96Zqb5p2h57SEID4ga29rdXNhaWpvdXlha3VcIDsKK+S4g+WgguS8veiXjSA+IHNoaWNoaWRvdWdhcmFuXCA7Civopqrml4/plqLkv4IgPiBzaGluem9rdWthbmtlaVwgOwor5YKY5b2i56KN5a2QID4ga2FzYWdhdGFnYWlzaGlcIDsKK+aCqua8ouWwj+iqrCA+IGFra2Fuc2hvdXNldHN1XCA7CivlhazmlbXkuIDlj7cgPiBrb3V0ZWtpaWNoaWdvdVwgOwor5rC06LOq5rGa5r+BID4gc3Vpc2hpdHN1b2Rha3VcIDsKK+eyvuelnueZguazlSA+IHNlaXNoaW5yeW91aG91XCA7CivojKvnhLboh6rlpLEgPiBib3V6ZW5qaXNoaXRzdVwgOwor5Zyw6LOq5pmC5LujID4gY2hpc2hpdHN1amlkYWlcIDsKK+eri+WFpeemgeatoiA+IHRhY2hpaXJpa2luc2hpXCA7CivlpKflkIzlm6PntZAgPiBkYWlkb3VkYW5rZXRzdVwgOwor6LKv6YeR6YCa5bizID4gY2hva2ludHN1dWNob3VcIDsKK+aWjuaIkuaykOa1tCA+IHNhaWthaW1va3V5b2t1XCA7CivmlrDliLblpKflraYgPiBzaGluc2VpZGFpZ2FrdVwgOwor5YWx5ZCM6LKs5Lu7ID4ga3lvdWRvdXNla2luaW5cIDsKK+aWsOiBnueZuuihqCA+IHNoaW5idW5oYXBweW91XCA7Civou4rlhoXmlLnmnK0gPiBzaGFuYWlrYWlzYXRzdVwgOwor5piG6Jmr5a2m6ICFID4ga29uY2h1dWdha3VzaGFcIDsKK+mAgOiBt+W5tOmHkSA+IHRhaXNob2t1bmVua2luXCA7CivliIblibLntbHmsrsgPiBidW5rYXRzdXRvdWNoaVwgOwor56K6546H6YGO56iLID4ga2FrdXJpdHN1a2F0ZWlcIDsKK+eglOeptueZuuihqCA+IGtlbmt5dXVoYXBweW91XCA7Civml6fntITogZbmm7ggPiBreXV1eWFrdXNlaXNob1wgOwor6JKy6Ym+5YW16IiOID4ga2FtYWJva29oZWlzaGFcIDsKK+e1jOiyu+evgOe0hCA+IGtlaWhpc2V0c3V5YWt1XCA7CivnrYvokI7nuK7nl4cgPiBraW4nJ2lzaHVrdXNob3VcIDsKK+WEqueUn+aJi+ihkyA+IHl1dXNlaXNodWp1dHN1XCA7CivlhazlhbHmlpnph5EgPiBrb3VreW91cnlvdWtpblwgOwor5by35Yi25Lit5patID4ga3lvdXNlaWNodXVkYW5cIDsKK+S4h+acieW8leWKmyA+IGJhbicneXV1aW5yeW9rdVwgOwor56uL5aSq5a2Q5byPID4gcml0dGFpc2hpc2hpa2lcIDsKK+aXpeWGheWRqOacnyA+IG5pY2hpbmFpc2h1dWtpXCA7CivmhrLms5Xop6Pph4ggPiBrZW5wb3VrYWlzaGFrdVwgOwor576O55qE55Sf5rS7ID4gYml0ZWtpc2Vpa2F0c3VcIDsKK+Wbo+S9k+WJsuW8lSA+IGRhbnRhaXdhcmliaWtpXCA7Civlm73pmpvkuqTmtYEgPiBrb2t1c2Fpa291cnl1dVwgOwor5Yag54q26Z2Z6ISIID4ga2Fuam91am91bXlha3VcIDsKK+mAhuS4ieinkuW9oiA+IGd5YWt1c2Fua2Fra2VpXCA7CivluILnq4vlrabmoKEgPiBzaGlyaXRzdWdha2tvdVwgOwor6KSH6ZuR5oCq5aWHID4gZnVrdXphdHN1a2Fpa2lcIDsKK+mrmOWxpOW7uueviSA+IGtvdXNvdWdlbmNoaWt1XCA7CivnnJ/nj6DppIrmrpYgPiBzaGluanV5b3VzaG9rdVwgOwor55Sz5ZGK55So57SZID4gc2hpbmtva3V5b3VzaGlcIDsKK+WxgOWcsOaIpuS6iSA+IGt5b2t1Y2hpc2Vuc291XCA7Civph43opoHkurrniakgPiBqdXV5b3VqaW5idXRzdVwgOwor5rS754mI5Y2w5Yi3ID4ga2FwcGFuJydpbnNhdHN1XCA7CivpgKPml6XpgKPlpJwgPiByZW5qaXRzdXJlbicneWFcIDsKK+S4ieiAheWvvueriyA+IHNhbnNoYXRhaXJpdHN1XCA7CivmsYLlprvluoPlkYogPiBreXV1c2Fpa291a29rdVwgOwor54uC6KiA6Ieq5q66ID4ga3lvdWdlbmppc2F0c3VcIDsKK+aAp+afk+iJsuS9kyA+IHNlaXNlbnNob2t1dGFpXCA7Civlh7jniYjljbDliLcgPiB0b3BwYW4nJ2luc2F0c3VcIDsKK+WIuui6q+WMheS4gSA+IHNhc2hpbWlib3VjaG91XCA7Civml6XnsbPosr/mmJMgPiBuaWNoaWJlaWJvdWVraVwgOwor6LuN5LqL5Y2U5YqbID4gZ3VuamlreW91cnlva3VcIDsKK+altemZkOeKtuaFiyA+IGt5b2t1Z2Vuam91dGFpXCA7CivniannkIbnj77osaEgPiBidXRzdXJpZ2Vuc2hvdVwgOwor5Lq66Lqr5pS75pKDID4gamluc2hpbmtvdWdla2lcIDsKK+iomOaGtuWWquWksSA+IGtpb2t1c291c2hpdHN1XCA7CivnpL7kvJrnp6nluo8gPiBzaGFrYWljaGl0c3Vqb1wgOwor5L6D5L6D6Kuk6KukID4ga2Fua2FuZ2FrdWdha3VcIDsKK+a4m+S+oeWEn+WNtCA+IGdlbmthc2hvdWt5YWt1XCA7CivnqbrkuK3mn7vlr58gPiBrdXVjaHV1c2FzYXRzdVwgOwor57Sg5Lq66Iqd5bGFID4gc2hpcm91dG9zaGliYWlcIDsKK+S4gOWFreWLneiyoCA+IGljaGlyb2t1c2hvdWJ1XCA7CivkuqTpn7/mpb3lm6MgPiBrb3VreW91Z2FrdWRhblwgOwor6KGA5ray6YqA6KGMID4ga2V0c3Vla2lnaW5rb3VcIDsKK+WVhuWTgeWcqOmrmCA+IHNob3VoaW56YWlkYWthXCA7CivniannkIblrabogIUgPiBidXRzdXJpZ2FrdXNoYVwgOwor5bm055m+5bm05LitID4gbmVuYnlha3VuZW5qdXVcIDsKK+aeneiRieacq+evgCA+IHNoaXlvdW1hc3NldHN1XCA7Civou43pmornlJ/mtLsgPiBndW50YWlzZWlrYXRzdVwgOwor5q+U6LyD55qE5bCPID4gaGlrYWt1dGVraXNob3VcIDsKK+a9nOWcqOiDveWKmyA+IHNlbnphaW5vdXJ5b2t1XCA7Civlt6XlrabljZrlo6sgPiBrb3VnYWt1aGFrdXNoaVwgOwor5pyJ5YSf5aWR57SEID4geXV1c2hvdWtlaXlha3VcIDsKK+aWsOiBnuW6g+WRiiA+IHNoaW5idW5rb3Vrb2t1XCA7CivkuIrntJrmm7nplbcgPiBqb3VreXV1c291Y2hvdVwgOwor5Lmx6Ki65Lmx55mCID4gcmFuc2hpbnJhbnJ5b3VcIDsKK+mbhuWQiOS9j+WuhSA+IHNodXVnb3VqdXV0YWt1XCA7CivlvqHpo5/kuovlh6YgPiBvc2hva3VqaWRva29yb1wgOwor6aSK5q6W55yf54+gID4geW91c2hva3VzaGluanVcIDsKK+WGhemDqOWRiueZuiA+IG5haWJ1a29rdWhhdHN1XCA7CivlkI3nm67os4Pph5EgPiBtZWltb2t1Y2hpbmdpblwgOwor55u45a++5rm/5bqmID4gc291dGFpc2hpdHN1ZG9cIDsKK+acrOacq+i7ouWAkiA+IGhvbm1hdHN1dGVudG91XCA7CivlrabmoKHnlJ/mtLsgPiBnYWtrb3VzZWlrYXRzdVwgOwor5YWl5Zu95p+76Ki8ID4gbnl1dWtva3VzYXNob3VcIDsKK+iHquW+i+elnue1jCA+IGppcml0c3VzaGlua2VpXCA7Civlp4nmp5jkurrlvaIgPiBhbmVzYW1hbmluZ3lvdVwgOwor5oim5oim5oGQ5oGQID4gc2Vuc2Vua3lvdWt5b3VcIDsKK+ihneaSg+mWouaVsCA+IHNob3VnZWtpa2Fuc3V1XCA7Civlt6foqIDku6ToibIgPiBrb3VnZW5yZWlzaG9rdVwgOwor5aSJ5rip5YuV54mpID4gaGVuJydvbmRvdWJ1dHN1XCA7Civljp/lp4vli5XniakgPiBnZW5zaGlkb3VidXRzdVwgOwor56m66ZaT6Iq46KGTID4ga3V1a2FuZ2VpanV0c3VcIDsKK+S+g+OAheirpOOAhSA+IGthbmthbmdha3VnYWt1XCA7CivplovlupfkvJHmpa0gPiBrYWl0ZW5reXV1Z3lvdVwgOwor5aiv5qW95pa96KitID4gZ29yYWt1c2hpc2V0c3VcIDsKK+WNiuawuOS5heeahCA+IGhhbicnZWlreXV1dGVraVwgOwor6aOf57On5LqL5oOFID4gc2hva3VyeW91amlqb3VcIDsKK+WPr+mAhuWPjeW/nCA+IGthZ3lha3VoYW4nJ25vdVwgOwor54m55Yil5Lya5ZOhID4gdG9rdWJldHN1a2FpaW5cIDsKK+atu+a0u+WVj+mhjCA+IHNoaWthdHN1bW9uZGFpXCA7Civns7vntbHnpZ7lraYgPiBrZWl0b3VzaGluZ2FrdVwgOwor6Luf6aqo6a2a6aGeID4gbmFua290c3VneW9ydWlcIDsKK+WQhOS6uuWQhOanmCA+IGtha3VqaW5rYWt1eW91XCA7CivpgJrkv6Hkuovmpa0gPiB0c3V1c2hpbmppZ3lvdVwgOwor6LK/5piT6Zqc5aOBID4gYm91ZWtpc2hvdWhla2lcIDsKK+WNmOS4gOmAmuiyqCA+IHRhbicnaXRzdXRzdXVrYVwgOwor5Y2D5Lih5b256ICFID4gc2VucnlvdXlha3VzaGFcIDsKK+WIsOedgOaZguWIuyA+IHRvdWNoYWt1amlrb2t1XCA7CivmpoLnrpfopoHmsYIgPiBnYWlzYW4nJ3lvdWt5dXVcIDsKK+WbveawkeW5tOmHkSA+IGtva3VtaW4nJ25lbmtpblwgOwor5rOl5rC056i85qWtID4gZG9yb21penVrYWd5b3VcIDsKK+WcqOaXpeexs+i7jSA+IHphaW5pY2hpYmVpZ3VuXCA7CivotorlooPlhaXlraYgPiBla2t5b3VueXV1Z2FrdVwgOwor5pWw55CG5ZOy5a2mID4gc3V1cml0ZXRzdWdha3VcIDsKK+WUr+eJqeWPsuimsyA+IHl1aWJ1dHN1c2hpa2FuXCA7CivllYbmpa3lrabmoKEgPiBzaG91Z3lvdWdha2tvdVwgOwor5bem5aSn5ous5bynID4gaGlkYXJpZGFpa2Fra29cIDsKK+awkeaXj+eyvuelniA+IG1pbnpva3VzZWlzaGluXCA7Civlrp/lipvooYzngrogPiBqaXRzdXJ5b2t1a291aVwgOwor5rW357a/5YuV54mpID4ga2FpbWVuZG91YnV0c3VcIDsKK+exs+i7jeWFteWKmyA+IGJlaWd1bmhlaXJ5b2t1XCA7CivlsLHlrablubTpvaIgPiBzaHV1Z2FrdW5lbnJlaVwgOwor6Ymx54mp6LOH5rqQID4ga291YnV0c3VzaGlnZW5cIDsKK+i7n+W8j+mHjueQgyA+IG5hbnNoaWtpeWFreXV1XCA7Civkv6HoqJfntbHmsrsgPiBzaGludGFrdXRvdWNoaVwgOwor57WM5riI5rS75YuVID4ga2VpemFpa2F0c3Vkb3VcIDsKK+WFteW8j+S9k+aTjSA+IGhlaXNoaWtpdGFpc291XCA7CivnlJ/mrpbntLDog54gPiBzZWlzaG9rdXNhaWJvdVwgOwor5Zyw5b2i5ris6YePID4gY2hpa2Vpc29rdXJ5b3VcIDsKK+WVhualreizh+acrCA+IHNob3VneW91c2hpaG9uXCA7CivmlbDlgKTnm67mqJkgPiBzdXVjaGltb2t1aHlvdVwgOwor5LiA5b6X5LiA5aSxID4gaXR0b2t1aXNzaGl0c3VcIDsKK+mAmuS/oeiyqeWjsiA+IHRzdXVzaGluaGFuYmFpXCA7CivlvLfliLbln7fooYwgPiBreW91c2Vpc2hpa2tvdVwgOwor5bm76Kaa55eH54q2ID4gZ2Vua2FrdXNob3Vqb3VcIDsKK+WMl+mZuOWcsOaWuSA+IGhva3VyaWt1Y2hpaG91XCA7CivlibLlvJXnmbrooYwgPiB3YXJpYmlraWhha2tvdVwgOwor5bqD5aCx5rS75YuVID4ga291aG91a2F0c3Vkb3VcIDsKK+WxsemrmOW4veWtkCA+IHlhbWF0YWthYm91c2hpXCA7Civmn5PoibLlt6XloLQgPiBzZW5zaG9rdWtvdWpvdVwgOwor5YWs5byP6Kiq5ZWPID4ga291c2hpa2lob3Vtb25cIDsKK+e3j+WQiOmWi+eZuiA+IHNvdWdvdWthaWhhdHN1XCA7CivpgKPnq4vmlL/mqKkgPiByZW5yaXRzdXNlaWtlblwgOwor5beu5Yil6KGo54++ID4gc2FiZXRzdWh5b3VnZW5cIDsKK+aoqeWKm+mXmOS6iSA+IGtlbnJ5b2t1dG91c291XCA7Civoo73lk4HmiKbnlaUgPiBzZWloaW5zZW5yeWFrdVwgOwor5YiG5rC05bGx6ISIID4gYnVuc3Vpc2FubXlha3VcIDsKK+iqmOmbu+ato+aOpSA+IHl1dWRlbnNlaXNldHN1XCA7Civnn6XopprnpZ7ntYwgPiBjaGlrYWt1c2hpbmtlaVwgOwor6YCQ5p2h5a+p6K2wID4gY2hpa3Vqb3VzaGluZ2lcIDsKK+WNg+WztuWIl+WztiA+IGNoaXNoaW1hcmV0dG91XCA7CivovLjlh7rotoXpgY4gPiB5dXNodXRzdWNob3VrYVwgOwor5bCK546L6KiO5bmVID4gc29uJydub3V0b3ViYWt1XCA7Civmg4XloLHpgJrkv6EgPiBqb3Vob3V0c3V1c2hpblwgOwor6LaF6LaK5Lqk5LujID4gY2hvdWV0c3Vrb3V0YWlcIDsKK+eUn+a0u+epuumWkyA+IHNlaWthdHN1a3V1a2FuXCA7CivliY3nq4vohbrngo4gPiB6ZW5yaXRzdXNlbicnZW5cIDsKK+ihjOaUv+aUuemdqSA+IGd5b3VzZWlrYWlrYWt1XCA7Civlvovku6Tlm73lrrYgPiByaXRzdXJ5b3Vrb2trYVwgOwor5b+D6ZyK54++6LGhID4gc2hpbnJlaWdlbnNob3VcIDsKK+eUn+iqleeZvuW5tCA+IHNlaXRhbmh5YWt1bmVuXCA7Civoh6rli5XnnYDkv6EgPiBqaWRvdWNoYWt1c2hpblwgOwor56ys5LiJ5Yui5YqbID4gZGFpc2Fuc2Vpcnlva3VcIDsKK+abuOeVmemDteS+vyA+IGtha2l0b21leXV1YmluXCA7Civnn6XorZjkvZPns7sgPiBjaGlzaGlraXRhaWtlaVwgOwor6ZuG5ZCI6KiY6L+wID4gc2h1dWdvdWtpanV0c3VcIDsKK+S4ieeZvuiruOS+ryA+IHNhbmJ5YWt1c2hva291XCA7CivlpKfooYbmloflraYgPiB0YWlzaHV1YnVuZ2FrdVwgOwor5Lit562J5pWZ6IKyID4gY2h1dXRvdWt5b3Vpa3VcIDsKK+aVmeiCsuihjOaUvyA+IGt5b3Vpa3VneW91c2VpXCA7Civmraboo4XkuK3nq4sgPiBidXNvdWNodXVyaXRzdVwgOwor5bmz5ZKM5Y2U5YqbID4gaGVpd2FreW91cnlva3VcIDsKK+mbu+mJhOS8muekviA+IGRlbnRldHN1Z2Fpc2hhXCA7Civlh7rluK3ml6XmlbAgPiBzaHVzc2VraW5pc3N1dVwgOwor55yM56uL55eF6ZmiID4ga2Vucml0c3VieW91aW5cIDsKK+eykueykui+m+iLpiA+IHJ5dXVyeXV1c2hpbmt1XCA7CivlgY/ml4HlhqDohJogPiBoZW5ib3VrYW5reWFrdVwgOwor6LKp5aOy5L+D6YCyID4gaGFuYmFpc29rdXNoaW5cIDsKK+S/oeiol+aKleizhyA+IHNoaW50YWt1dG91c2hpXCA7CivkuK3lsI/kvIHmpa0gPiBjaHV1c2hvdWtpZ3lvdVwgOwor5LiJ6KGM5bqD5ZGKID4gc2FuZ3lvdWtvdWtva3VcIDsKK+ihgOa2suW+queSsCA+IGtldHN1ZWtpanVua2FuXCA7CivpgKPntZDmsbrnrpcgPiByZW5rZXRzdWtlc3NhblwgOwor6aqo6Luf5YyW55eHID4ga290c3VuYW5rYXNob3VcIDsKK+aUv+ayu+WTsuWtpiA+IHNlaWppdGV0c3VnYWt1XCA7CivllYbmpa3mlL7pgIEgPiBzaG91Z3lvdWhvdXNvdVwgOwor5Zu96Ziy57eP55yBID4ga29rdWJvdXNvdXNob3VcIDsKK+eUn+a0u+aMh+WwjiA+IHNlaWthdHN1c2hpZG91XCA7Civngo7nhrHlnLDnjYQgPiBlbicnbmV0c3VqaWdva3VcIDsKK+WFq+mdoueOsueTjyA+IGhhY2hpbWVucmVpcm91XCA7CivpnaLkvJrorJ3ntbYgPiBtZW5rYWlzaGF6ZXRzdVwgOwor6YGT6Lev5qiZ6K2YID4gZG91cm9oeW91c2hpa2lcIDsKK+WbveWWtumAmuS/oSA+IGtva3VlaXRzdXVzaGluXCA7CivpganmnZDpganmiYAgPiB0ZWtpemFpdGVraXNob1wgOwor5YqH55eH6IKd54KOID4gZ2VraXNob3VrYW4nJ2VuXCA7Civnianmg4XpqJLnhLYgPiBidXRzdWpvdXNvdXplblwgOwor5YWs5rCR55Sf5rS7ID4ga291bWluc2Vpa2F0c3VcIDsKK+WFpeWtpuippumokyA+IG55dXVnYWt1c2hpa2VuXCA7Civntbblr77ntbblkb0gPiB6ZXR0YWl6ZXRzdW1laVwgOwor5LqL44CF54mp44CFID4gamlqaWJ1dHN1YnV0c3VcIDsKK+WAi+WAi+WIpeWIpSA+IGtva29iZXRzdWJldHN1XCA7CivlkIjllLHpmorplbcgPiBnYXNzaG91dGFpY2hvdVwgOwor5Lm+54el54mb5LmzID4ga2Fuc291Z3l1dW55dXVcIDsKK+ebtOezu+WwiuWxniA+IGNob2trZWlzb256b2t1XCA7CivlhaXlrabpoZjmm7ggPiBueXV1Z2FrdWdhbnNob1wgOwor5Ye655m65pmC6ZaTID4gc2h1cHBhdHN1amlrYW5cIDsKK+S4u+imgeS6uueJqSA+IHNodXlvdWppbmJ1dHN1XCA7CivmloflrabkvZzlk4EgPiBidW5nYWt1c2FrdWhpblwgOwor6Lu95L6/6YmE6YGTID4ga2VpYmVudGV0c3Vkb3VcIDsKK+WJsuW8leW4guWgtCA+IHdhcmliaWtpc2hpam91XCA7CivlpLHouKrlrqPlkYogPiBzaGlzc291c2Vua29rdVwgOwor5YyW5a2m57WQ5ZCIID4ga2FnYWt1a2V0c3Vnb3VcIDsKK+S/nemZuuaWmeeOhyA+IGhva2VucnlvdXJpdHN1XCA7Civkv6HotormnKznt5ogPiBzaGluZXRzdWhvbnNlblwgOwor56We57WM5Lit5p6iID4gc2hpbmtlaWNodXVzdXVcIDsKK+eZuuWFieWLleeJqSA+IGhha2tvdWRvdWJ1dHN1XCA7CivopIflvI/ngavlsbEgPiBmdWt1c2hpa2lrYXphblwgOwor5aCF5b+N5LiN5oqcID4ga2VuJyduaW5mdWJhdHN1XCA7CivogJDkuY/nlJ/mtLsgPiB0YWlib3VzZWlrYXRzdVwgOwor56S+5Lya6YCa5b+1ID4gc2hha2FpdHN1dW5lblwgOwor5o6l5a6i5oWL5bqmID4gc2Vra3lha3V0YWlkb1wgOwor6Lu954iG5pKD5qmfID4ga2VpYmFrdWdla2lraVwgOwor572y5ZCN5o265Y2wID4gc2hvbWVpbmF0c3VpblwgOwor6IO46YOo55a+5oKjID4ga3lvdWJ1c2hpa2thblwgOwor6LGh54mZ5Y+W5byVID4gem91Z2V0b3JpaGlraVwgOwor5pel5puc5aSn5belID4gbmljaGl5b3VkYWlrdVwgOwor55uu546J5ZWG5ZOBID4gbWVkYW1hc2hvdWhpblwgOwor6KO96Jas5Lya56S+ID4gc2VpeWFrdWdhaXNoYVwgOwor5oqV5YWJ54Wn5piOID4gdG91a291c2hvdW1laVwgOwor5riF5buJ5r2U55m9ID4gc2VpcmVua2VwcGFrdVwgOwor5pW15YmN6YCD5LqhID4gdGVraXplbnRvdWJvdVwgOwor5pel5YiK5paw6IGeID4gbmlra2Fuc2hpbmJ1blwgOwor5oqx6IW557W25YCSID4gaG91ZnVrdXpldHRvdVwgOwor5oKq6JmQ54Sh6YGTID4gYWt1Z3lha3VtdWRvdVwgOwor5Zu95a625qip5YqbID4ga29ra2FrZW5yeW9rdVwgOwor5Y2X5rSL6Ku45bO2ID4gbmFuJyd5b3VzaG90b3VcIDsKK+WbmuS6uuWKtOWDjSA+IHNodXVqaW5yb3Vkb3VcIDsKK+WKo+etieims+W/tSA+IHJldHRvdWthbicnbmVuXCA7CivplqLkv4LlrpjluoEgPiBrYW5rZWlrYW5jaG91XCA7CivovrLmsJHmloflraYgPiBub3VtaW5idW5nYWt1XCA7Civoh6rnhLbnj77osaEgPiBzaGl6ZW5nZW5zaG91XCA7CivohY7oh5PntZDnn7MgPiBqaW56b3VrZXNzZWtpXCA7Civmlr3mlL/mlrnph50gPiBzaGlzZWlob3VzaGluXCA7CivlpKnnq7rmtarkurogPiB0ZW5qaWt1cm91bmluXCA7CivpnIrprYLkuI3mu4UgPiByZWlrb25mdW1ldHN1XCA7CivlhazlhbHntYTlkIggPiBrb3VreW91a3VtaWFpXCA7CivmnInnt5rpm7vkv6EgPiB5dXVzZW5kZW5zaGluXCA7CivooYDooYzpmpzlrrMgPiBrZWtrb3VzaG91Z2FpXCA7CivkurrnmoTos4fmupAgPiBqaW50ZWtpc2hpZ2VuXCA7CivlnLDmlrnooYzmlL8gPiBjaGlob3VneW91c2VpXCA7CivpnIflpKnli5XlnLAgPiBzaGludGVuZG91Y2hpXCA7CivnrKzkuInluJ3lm70gPiBkYWlzYW50ZWlrb2t1XCA7CivlpKnmloflrabogIUgPiB0ZW5tb25nYWt1c2hhXCA7Civmt7HlpJzmlL7pgIEgPiBzaGluJyd5YWhvdXNvdVwgOwor6Z+z5aOw5b2i5byPID4gb25zZWlrZWlzaGlraVwgOwor5Lqk6YCa5ZWP6aGMID4ga291dHN1dW1vbmRhaVwgOwor5YWs5YWx5oqV6LOHID4ga291a3lvdXRvdXNoaVwgOwor5YqD5pmC5Luj55qEID4ga2FrdWppZGFpdGVraVwgOwor5ZCM5peP5Lya56S+ID4gZG91em9rdWdhaXNoYVwgOwor5b+D55CG5o+P5YaZID4gc2hpbnJpYnlvdXNoYVwgOwor5oqA6KGT5rC05rqWID4gZ2lqdXRzdXN1aWp1blwgOwor55CG5a2m5Y2a5aOrID4gcmlnYWt1aGFrdXNoaVwgOwor5bGA5omA6bq76YWUID4ga3lva3VzaG9tYXN1aVwgOwor55Sj5Yil5Lya6K2wID4gc2FuYmV0c3VrYWlnaVwgOwor5bCx5a2m5YWQ56ulID4gc2h1dWdha3VqaWRvdVwgOwor56m65Lit57Wm5rK5ID4ga3V1Y2h1dWt5dXV5dVwgOwor5Zu96Zqb6KaP5qC8ID4ga29rdXNhaWtpa2FrdVwgOwor5a2m5qCh5paw6IGeID4gZ2Fra291c2hpbmJ1blwgOwor5oOF5aCx55Sj5qWtID4gam91aG91c2FuZ3lvdVwgOwor55m76Yyy55Wq5Y+3ID4gdG91cm9rdWJhbmdvdVwgOwor5Zyf5pyo5bel5a2mID4gZG9ib2t1a291Z2FrdVwgOwor55Sf5L2T5Y+N5b+cID4gc2VpdGFpaGFuJydub3VcIDsKK+ixoeW+tOS4u+e+qSA+IHNob3VjaG91c2h1Z2lcIDsKK+mfs+alveaVmeiCsiA+IG9uZ2FrdWt5b3Vpa3VcIDsKK+ims+a4rOWcsOeCuSA+IGthbnNva3VjaGl0ZW5cIDsKK+aKgOihk+WQjOWjqyA+IGdpanV0c3Vkb3VzaGlcIDsKK+W/nOaApeaUu+aSgyA+IG91a3l1dWtvdWdla2lcIDsKK+WQjOS7geaVmeS8miA+IGRvdWppbmt5b3VrYWlcIDsKK+Wun+WDjeaZgumWkyA+IGppdHN1ZG91amlrYW5cIDsKK+mdkuepuumnkOi7iiA+IGFvem9yYWNodXVzaGFcIDsKK+mbu+WKm+i8uOmAgSA+IGRlbnJ5b2t1eXVzb3VcIDsKK+i7jemaiuaVmeiCsiA+IGd1bnRhaWt5b3Vpa3VcIDsKK+mBoOa0i+a8gealrSA+IGVuJyd5b3VneW9neW91XCA7Civkv53pmpzljaDpoJggPiBob3Nob3VzZW5yeW91XCA7CivkuqTmj5vms5XliYcgPiBrb3VrYW5ob3Vzb2t1XCA7Civnib3lvJXnmYLms5UgPiBrZW4nJ2lucnlvdWhvdVwgOwor6aeF5Lyd56u26LWwID4gZWtpZGVua3lvdXNvdVwgOwor5YiH5q2v5om86IWVID4gc2Vzc2hpeWFrdXdhblwgOwor5Zuj5L2T5Lqk5riJID4gZGFudGFpa291c2hvdVwgOwor5Lqt5Li76Zai55m9ID4gdGVpc2h1a2FucGFrdVwgOwor5LiA5q615YuV6KmeID4gaWNoaWRhbmRvdXNoaVwgOwor5LiA6Iis5bmV5YOaID4gaXBwYW5iYWt1cnlvdVwgOwor5a+d5Y+w5YiX6LuKID4gc2hpbmRhaXJlc3NoYVwgOwor5oqV5pOy56u25oqAID4gdG91dGVraWt5b3VnaVwgOwor5rCX6LGh6YCa5aCxID4ga2lzaG91dHN1dWhvdVwgOwor6ZaL5p6Q5Y+w5ZywID4ga2Fpc2VraWRhaWNoaVwgOwor5a6f55So5Li7576pID4gaml0c3V5b3VzaHVnaVwgOwor5bel5aC05a6f57+SID4ga291am91amlzc2h1dVwgOwor5Lit57aZ6LK/5piTID4gY2h1dWtlaWJvdWVraVwgOwor5oCn6IO954m55oCnID4gc2Vpbm91dG9rdXNlaVwgOwor5pyA5b6M6YCa54mSID4gc2FpZ290c3V1Y2hvdVwgOwor5Zu96Zqb57WQ5amaID4ga29rdXNhaWtla2tvblwgOwor6YCg5pys5oqA6KGTID4gem91aG9uZ2lqdXRzdVwgOwor5aao5a6z5bel5L2cID4gYm91Z2Fpa291c2FrdVwgOwor5rCR5peP5oSP6K2YID4gbWluem9rdWlzaGlraVwgOwor6LSF5rKi5LiJ5pinID4gemVpdGFrdXphbm1haVwgOwor5YaZ55yf6KO954mIID4gc2hhc2hpbnNlaWhhblwgOwor5a2m5qCh5pWZ6IKyID4gZ2Fra291a3lvdWlrdVwgOwor6Zyn5Lit5L+h5Y+3ID4gbXVjaHV1c2hpbmdvdVwgOwor57K+56We54q25oWLID4gc2Vpc2hpbmpvdXRhaVwgOwor5ZWG56eR5aSn5a2mID4gc2hvdWthZGFpZ2FrdVwgOwor5YaZ55yf57WQ5amaID4gc2hhc2hpbmtla2tvblwgOwor5YWx5ZCM5oim57eaID4ga3lvdWRvdXNlbnNlblwgOwor54Gr5bGx5rS75YuVID4ga2F6YW5rYXRzdWRvdVwgOwor6bqm56iI57Sw5belID4gbXVnaXdhcmF6YWlrdVwgOwor5Yuk5Yq05omA5b6XID4ga2lucm91c2hvdG9rdVwgOwor6aaW55u45a6Y6YK4ID4gc2h1c2hvdWthbnRlaVwgOwor6Kqt5pu45LiJ5pinID4gZG9rdXNob3phbm1haVwgOwor5Lit562J5pWZ5ZOhID4gY2h1dXRvdWt5b3VpblwgOwor5LiA5qyh6Zu75rWBID4gaWNoaWppZGVucnl1dVwgOwor5Y+w5Lit6Zai5L+CID4gdGFpY2h1dWthbmtlaVwgOwor56eY5a+G57WQ56S+ID4gaGltaXRzdWtlc3NoYVwgOwor5p2x5pa55ouh5aSnID4gdG91aG91a2FrdWRhaVwgOwor6L+R6Zqj6Ku45Zu9ID4ga2lucmluc2hva29rdVwgOwor5Yq05YON6ZqO57SaID4gcm91ZG91a2Fpa3l1dVwgOwor6LKe5pON6Kaz5b+1ID4gdGVpc291a2FuJyduZW5cIDsKK+awkemWk+S8neaJvyA+IG1pbmthbmRlbnNob3VcIDsKK+iGgOiDsee1kOefsyA+IGJvdWtvdWtlc3Nla2lcIDsKK+i7ouWxhemAmuefpSA+IHRlbmt5b3RzdXVjaGlcIDsKK+e0lOato+aVsOWtpiA+IGp1bnNlaXN1dWdha3VcIDsKK+eUt+eIteWkq+S6uiA+IGRhbnNoYWt1ZnVqaW5cIDsKK+WhqeiUtemjn+WTgSA+IGVuem91c2hva3VoaW5cIDsKK+S4gOiHtOWbo+e1kCA+IGl0Y2hpZGFua2V0c3VcIDsKK+itpuWvn+WbveWutiA+IGtlaXNhdHN1a29ra2FcIDsKK+e1jOa4iOeZveabuCA+IGtlaXphaWhha3VzaG9cIDsKK+epgOWAieWcsOW4ryA+IGtva3Vzb3VjaGl0YWlcIDsKK+eSsOWig+S6i+alrSA+IGthbmt5b3VqaWd5b3VcIDsKK+e3j+WQiOWVhuekviA+IHNvdWdvdXNob3VzaGFcIDsKK+WwkeW5tOWKtOWDjSA+IHNob3VuZW5yb3Vkb3VcIDsKK+S4gOaMmeS4oeW+lyA+IGlra3lvcnlvdXRva3VcIDsKK+a4rOWumuijhee9riA+IHNva3V0ZWlzb3VjaGlcIDsKK+WJjeihm+e+juihkyA+IHplbicnZWliaWp1dHN1XCA7Civnmobml6LmnIjpo58gPiBrYWlraWdlc3Nob2t1XCA7Civlhazlm6PkvY/lroUgPiBrb3VkYW5qdXV0YWt1XCA7CivoqK3lgpnmipXos4cgPiBzZXRzdWJpdG91c2hpXCA7Civml6XluLjojLbpo68gPiBuaWNoaWpvdXNhaGFuXCA7CivnvqTpm4blv4PnkIYgPiBndW5zaHV1c2hpbnJpXCA7Civnmb7miKbnt7Tno6ggPiBoeWFrdXNlbnJlbm1hXCA7CivljbPoiIjoqankurogPiBzb2treW91c2hpamluXCA7CivlloTpmqPmlL/nrZYgPiB6ZW5yaW5zZWlzYWt1XCA7CivliY3lj5flj47nm4ogPiBtYWV1a2VzaHV1ZWtpXCA7Civlm73msJHnmoblhbUgPiBrb2t1bWlua2FpaGVpXCA7Civpqqjnm7jlrabogIUgPiBrb3Nzb3VnYWt1c2hhXCA7CivmiLjliKXoqKrllY8gPiBrb2JldHN1aG91bW9uXCA7CivniIblvL7lo7DmmI4gPiBiYWt1ZGFuc2VpbWVpXCA7CivpgZPmpb3mga/lrZAgPiBkb3VyYWt1bXVzdWtvXCA7CivnmZLlgrfntYTnuZQgPiB5dXNob3Vzb3NoaWtpXCA7CivnlLflrZDlrabnlJ8gPiBkYW5zaGlnYWt1c2VpXCA7CivosqvpgJrpioPlibUgPiBrYW50c3V1anV1c291XCA7CivmlrDpg47mlrDlqaYgPiBzaGlucm91c2hpbnB1XCA7CivnqbrmjLrkvZzmiKYgPiBrdXV0ZWlzYWt1c2VuXCA7CivphY3nrqHlt6Xmpa0gPiBoYWlrYW5rb3VneW91XCA7CivlroflrpnpgJrkv6EgPiB1Y2h1dXRzdXVzaGluXCA7CivnrYnmr5TmlbDliJcgPiB0b3VoaXN1dXJldHN1XCA7CivluorkuIrmtbjmsLQgPiB5dWthdWVzaGluc3VpXCA7Civoh6rnhLbnkrDlooMgPiBzaGl6ZW5rYW5reW91XCA7Civml6XkuK3miKbkuokgPiBuaXRjaHV1c2Vuc291XCA7CivmqJnpoYzpn7Pmpb0gPiBoeW91ZGFpb25nYWt1XCA7CivliqPnrYnopIflkIggPiByZXR0b3VmdWt1Z291XCA7CivnnLznkIPpioDooYwgPiBnYW5reXV1Z2lua291XCA7CivluILloLTliIbmnpAgPiBzaGlqb3VidW5zZWtpXCA7CivkuK3plpPoqabpqJMgPiBjaHV1a2Fuc2hpa2VuXCA7CivoqLzliLjkvJrnpL4gPiBzaG91a2VuZ2Fpc2hhXCA7CivmvI/oqbHntZDlkIggPiByb3V3YWdldHN1Z291XCA7Civlm73pmpvntJvkuokgPiBrb2t1c2FpZnVuc291XCA7Civpm4blm6PooYzli5UgPiBzaHV1ZGFua291ZG91XCA7Civou4rkuKHnuKbpmoogPiBzaGFyeW91anV1dGFpXCA7CivkuqTku6Pmk43mpa0gPiBrb3V0YWlzb3VneW91XCA7CivkvZzogIXmnKroqbMgPiBzYWt1c2hhbWlzaG91XCA7Civopb/mnKzpoZjlr7ogPiBuaXNoaWhvbmdhbmppXCA7CivmsLjku6PlgJ/lnLAgPiBlaXRhaXNoYWt1Y2hpXCA7CivlrZDlrq7nrYvohasgPiBzaGlreXV1a2luc2h1XCA7CivliIfmiYvokpDpm4YgPiBraXR0ZXNodXVzaHV1XCA7CivlrpjosrvnlZnlraYgPiBrYW5waXJ5dXVnYWt1XCA7Civnt6jpm4bkuLvlubkgPiBoZW5zaHV1c2h1a2FuXCA7CivnlJ/nlKPmioDooZMgPiBzZWlzYW5naWp1dHN1XCA7CivmsLTlubPlv5zlipsgPiBzdWloZWlvdXJ5b2t1XCA7CivlhYjnq6/mioDooZMgPiBzZW50YW5naWp1dHN1XCA7CivnpZ7lrq7nkIPloLQgPiBqaW5ndXVreXV1am91XCA7Civpn7Pmpb3lpKflraYgPiBvbmdha3VkYWlnYWt1XCA7CivkvrXnlaXooYzngrogPiBzaGlucnlha3Vrb3VpXCA7CivlhaXlsITlhYnnt5ogPiBueXV1c2hha291c2VuXCA7CivkuInop5Llh73mlbAgPiBzYW5rYWt1a2Fuc3V1XCA7Civnq4vkvZPlhpnnnJ8gPiByaXR0YWlzaGFzaGluXCA7Civlm73pmpvplqLkv4IgPiBrb2t1c2Fpa2Fua2VpXCA7CivmtYTlnJ/nnJ/lrpcgPiBqb3Vkb3NoaW5zaHV1XCA7CivkuInlm73lkIznm58gPiBzYW5nb2t1ZG91bWVpXCA7CivpqZrlpKnli5XlnLAgPiBreW91dGVuZG91Y2hpXCA7CivnqbrkuK3mu5HotbAgPiBrdXVjaHV1a2Fzc291XCA7Civlm73pmpvllY/poYwgPiBrb2t1c2FpbW9uZGFpXCA7CivnpL7lpJbnmbrkv6EgPiBzaGFnYWloYXNzaGluXCA7Civot7PmooHot4vmiYggPiBjaG91cnlvdWJha2tvXCA7Civpm4bkuK3noLLngasgPiBzaHV1Y2h1dWhvdWthXCA7CivkurrplpPlt6XlraYgPiBuaW5nZW5rb3VnYWt1XCA7CivouqvlhYPnorroqo0gPiBtaW1vdG9rYWt1bmluXCA7Civlt67liKXlvoXpgYcgPiBzYWJldHN1dGFpZ3V1XCA7CivljYPps6XmoLzlrZAgPiBjaGlkb3JpZ291c2hpXCA7Civku4/lg4/kuozkvZMgPiBidXRzdXpvdW5pdGFpXCA7Civlhajmma/lhpnnnJ8gPiB6ZW5rZWlzaGFzaGluXCA7CivlhazlhbHlm6PkvZMgPiBrb3VreW91ZGFudGFpXCA7CivloIbnqY3ovKrlu7sgPiB0YWlzZWtpcmluJyduZVwgOwor5LiA6Iis55Sf5rS7ID4gaXBwYW5zZWlrYXRzdVwgOwor5qiq5rKz6Zu75qmfID4geW9rb2dhd2FkZW5raVwgOwor5Lit57aZ5pS+6YCBID4gY2h1dWtlaWhvdXNvdVwgOwor56aB5q2i5p2h57SEID4ga2luc2hpam91eWFrdVwgOwor5YWo5Zu95pS+6YCBID4gemVua29rdWhvdXNvdVwgOwor5YWa5Yip5YWa55WlID4gdG91cml0b3VyeWFrdVwgOwor5aSW5Lqk5Lqk5riJID4gZ2Fpa291a291c2hvdVwgOwor5a2m5aOr6Zmi6LOeID4gZ2FrdXNoaWluc2hvdVwgOwor6KGM5YuV6KiI55S7ID4ga291ZG91a2Vpa2FrdVwgOwor5YWx5pyJ6LKh55SjID4ga3lvdXl1dXphaXNhblwgOwor6YC45aSx5Yip55uKID4gaXNzaGl0c3VyaWVraVwgOwor6L6y5Zyw5pS56Z2pID4gbm91Y2hpa2Fpa2FrdVwgOwor5Lqk6YCa5riL5rueID4ga291dHN1dWp1dXRhaVwgOwor56We57WM57Sw6IOeID4gc2hpbmtlaXNhaWJvdVwgOwor5qWt55WM5Zuj5L2TID4gZ3lvdWthaWRhbnRhaVwgOwor5Yun5ZaE5oey5oKqID4ga2FuemVuY2hvdWFrdVwgOwor5YWx55Sj6Zmj5Za2ID4ga3lvdXNhbmppbicnZWlcIDsKK+asoOW4reijgeWIpCA+IGtlc3Nla2lzYWliYW5cIDsKK+WNiumdqeijheS4gSA+IGhhbmthd2Fzb3V0ZWlcIDsKK+ertuS6ieW4guWgtCA+IGt5b3Vzb3VzaGlqb3VcIDsKK+efpeeahOiyoeeUoyA+IGNoaXRla2l6YWlzYW5cIDsKK+WNl+WMl+WVj+mhjCA+IG5hbmJva3Vtb25kYWlcIDsKK+eqgeeEtuWkieeVsCA+IHRvdHN1emVuaGVuJydpXCA7Civpganlv5zpmpzlrrMgPiB0ZWtpb3VzaG91Z2FpXCA7Civmt7fovInosqjniakgPiBrb25zYWlrYW1vdHN1XCA7CivogJDpmpzlrrPmgKcgPiB0YWlzaG91Z2Fpc2VpXCA7Civov5Hopqrnm7jlp6YgPiBraW5zaGluc291a2FuXCA7CivlpKfpgZPllYbkurogPiBkYWlkb3VzaG91bmluXCA7CivkuI3kv6Hku7vmoYggPiBmdXNoaW4nJ25pbicnYW5cIDsKK+WuruW7t+mfs+alvSA+IGt5dXV0ZWlvbmdha3VcIDsKK+e3qeihneWcsOW4ryA+IGthbnNob3VjaGl0YWlcIDsKK+ihgOa4heazqOWwhCA+IGtlc3NlaWNodXVzaGFcIDsKK+WKoOezlueyieS5syA+IGthdG91ZnVuJydueXV1XCA7Civkv6HosqnkvJrnpL4gPiBzaGlucGFuZ2Fpc2hhXCA7CivljYHkuIDnjK7ph5EgPiBqdXVpY2hpa2Vua2luXCA7Civnpo/npYnkuovmpa0gPiBmdWt1c2hpamlneW91XCA7CivmmpbooaPpo73po58gPiBkYW4nJ2lob3VzaG9rdVwgOwor5rqW5rG65Yud5oimID4ganVua2Vzc2hvdXNlblwgOwor6YeO55Sf5YuV54mpID4geWFzZWlkb3VidXRzdVwgOwor56S+5Lya54++6LGhID4gc2hha2FpZ2Vuc2hvdVwgOwor5YyX5qyn6Ku45Zu9ID4gaG9rdW91c2hva29rdVwgOwor6Ieq54S25LyR5LyaID4gc2hpemVua3l1dWthaVwgOwor6Imv5LqM5Y2D55+zID4gcnlvdW5pc2Vuc2VraVwgOwor5paH5a2m6Z2S5bm0ID4gYnVuZ2FrdXNlaW5lblwgOwor5L+u6YGT6KqT6aGYID4gc2h1dWRvdXNlaWdhblwgOwor6aOf57On5o+05YqpID4gc2hva3VyeW91ZW5qb1wgOwor6KGG6K2w5LiA5rG6ID4gc2h1dWdpaWtrZXRzdVwgOwor6YW457Sg5ZC45YWlID4gc2Fuc29reXV1bnl1dVwgOwor55Sf6Iet5Z2K5Li7ID4gbmFtYWd1c2Fib3V6dVwgOwor6LuN5LqL5pa96KitID4gZ3VuamlzaGlzZXRzdVwgOwor6YO15L6/5oyv5pu/ID4geXV1YmluZnVyaWthZVwgOwor5pa56Yed5rG65a6aID4gaG91c2hpbmtldHRlaVwgOwor5bCx5qWt5pmC6ZaTID4gc2h1dWd5b3VqaWthblwgOwor5Lq65Y+j5oqR5Yi2ID4gamlua291eW9rdXNlaVwgOwor6LuN5Lq65oGp57WmID4gZ3VuamluJydvbmt5dXVcIDsKK+S6uuW3pea1geeUoyA+IGppbmtvdXJ5dXV6YW5cIDsKK+ecn+WJo+WLneiyoCA+IHNoaW5rZW5zaG91YnVcIDsKK+maoOmAgOeUn+a0uyA+IGludGFpc2Vpa2F0c3VcIDsKK+W9ueWToeWgsemFrCA+IHlha3VpbmhvdXNodXVcIDsKK+WJsuW8leaZgumWkyA+IHdhcmliaWtpamlrYW5cIDsKK+eZveiRoeiQhOmFkiA+IHNoaXJvYnVkb3VzaHVcIDsKK+WItuacjeWItuW4vSA+IHNlaWZ1a3VzZWlib3VcIDsKK+WPpOiJsuiSvOeEtiA+IGtvc2hva3Vzb3V6ZW5cIDsKK+eVmee9rumDteS+vyA+IHRvbWVva2l5dXViaW5cIDsKK+ioiOeUu+WAkueUoyA+IGtlaWtha3V0b3VzYW5cIDsKK+eahuaXouaXpemjnyA+IGthaWtpbmlzc2hva3VcIDsKK+mAo+aIpumAo+WLnSA+IHJlbnNlbnJlbnNob3VcIDsKK+S6q+alveS4u+e+qSA+IGt5b3VyYWt1c2h1Z2lcIDsKK+W6g+WRiuWqkuS9kyA+IGtvdWtva3ViYWl0YWlcIDsKK+WbveawkeWvqeafuyA+IGtva3VtaW5zaGluc2FcIDsKK+a3t+WjsOWQiOWUsSA+IGtvbnNlaWdhc3Nob3VcIDsKK+elnumBk+S/oeiAhSA+IHNoaW50b3VzaGluamFcIDsKK+Wun+azgeaUvumAgSA+IGppa2t5b3Vob3Vzb3VcIDsKK+WIhuWFieWIhuaekCA+IGJ1bmtvdWJ1bnNla2lcIDsKK+eUo+alree1hOWQiCA+IHNhbmd5b3VrdW1pYWlcIDsKK+WPluaNqOmBuOaKniA+IHNodXNoYXNlbnRha3VcIDsKK+WcsOmch+WtpuiAhSA+IGppc2hpbmdha3VzaGFcIDsKK+Wkp+mYquWkp+WtpiA+IG9vc2FrYWRhaWdha3VcIDsKK+eglOeptuaWueazlSA+IGtlbmt5dXVob3Vob3VcIDsKK+aWremDiuertui1sCA+IGRhbmtvdWt5b3Vzb3VcIDsKK+avlOi8g+aWh+WtpiA+IGhpa2FrdWJ1bmdha3VcIDsKK+Wjq+i+suW3peWVhiA+IHNoaW5vdWtvdXNob3VcIDsKK+S5vuWdpOS4gOaTsiA+IGtlbmtvbicnaXR0ZWtpXCA7CivlgZzmraLkv6Hlj7cgPiB0ZWlzaGlzaGluZ291XCA7Civlu7rnr4nnj77loLQgPiBrZW5jaGlrdWdlbmJhXCA7Civlm73pgKPlpKfkvb8gPiBrb2t1cmVudGFpc2hpXCA7CivnnInnm67np4DpupcgPiBiaW1va3VzaHV1cmVpXCA7Civmg4Xnt5LpmpzlrrMgPiBqb3VzaG9zaG91Z2FpXCA7CivorLnos4DmlrDlubQgPiBraW5nYXNoaW4nJ25lblwgOwor57e057+S5ZWP6aGMID4gcmVuc2h1dW1vbmRhaVwgOwor5Lq655Wc54Sh5a6zID4gamluY2hpa3VtdWdhaVwgOwor5LiK5rWB56S+5LyaID4gam91cnl1dXNoYWthaVwgOwor6Zm45rW356m66LuNID4gcmlrdWthaWt1dWd1blwgOwor55yf55u46Kq/5p+7ID4gc2hpbnNvdWNob3VzYVwgOwor6KGo5pWs6Kiq5ZWPID4gaHlvdWtlaWhvdW1vblwgOwor5pmu6YCa5pWZ6IKyID4gZnV0c3V1a3lvdWlrdVwgOwor5YWs5rCR5pWZ6IKyID4ga291bWlua3lvdWlrdVwgOwor5rC05a6z5a++562WID4gc3VpZ2FpdGFpc2FrdVwgOwor5bCG5p2l5bGV5pybID4gc2hvdXJhaXRlbmJvdVwgOwor5bCL5ZWP6Kq/5pu4ID4gamlubW9uY2hvdXNob1wgOwor552A5by+6Led6ZuiID4gY2hha3VkYW5reW9yaVwgOwor5aSp55yf54ib5ryrID4gdGVuc2hpbnJhbm1hblwgOwor5Y+N5bCE56We57WMID4gaGFuc2hhc2hpbmtlaVwgOwor6Z2S6Imy55Sz5ZGKID4gYW9pcm9zaGlua29rdVwgOwor6YCg5b2i576O6KGTID4gem91a2VpYmlqdXRzdVwgOwor5Y+y55qE54++5ZyoID4gc2hpdGVraWdlbnphaVwgOwor5YaF6YOo55Sf5rS7ID4gbmFpYnVzZWlrYXRzdVwgOwor5qeL6YCg6KiY6L+wID4ga291em91a2lqdXRzdVwgOwor5YWx5a2Y5YWx5qCEID4ga3lvdXpvbmt5b3VlaVwgOwor5biv54q255ax55a5ID4gdGFpam91aG91c2hpblwgOwor54++5a6f5Li7576pID4gZ2Vuaml0c3VzaHVnaVwgOwor5bm044CF5q2z44CFID4gbmVuJyduZW5zYWlzYWlcIDsKK+eglOeptuirluaWhyA+IGtlbmt5dXVyb25idW5cIDsKK+acgOe1gue3qOaIkCA+IHNhaXNodXVoZW5zZWlcIDsKK+WwguS/ruWtpuagoSA+IHNlbnNodXVnYWtrb3VcIDsKK+WPs+S4reaLrOW8pyA+IG1pZ2ljaHV1a2Fra29cIDsKK+S/rumBk+mZoumVtyA+IHNodXVkb3VpbmNob3VcIDsKK+Wutuedo+ebuOe2miA+IGthdG9rdXNvdXpva3VcIDsKK+Wuv+WRveirluiAhSA+IHNodWt1bWVpcm9uamFcIDsKK+a4qeW6puiqv+evgCA+IG9uZG9jaG91c2V0c3VcIDsKK+iogOiqnuiDveWKmyA+IGdlbmdvbm91cnlva3VcIDsKK+WIqea9pOi/veaxgiA+IHJpanVudHN1aWt5dXVcIDsKK+e1seeOh+eQhuirliA+IHRvdXNvdHN1cmlyb25cIDsKK+iJr+miqOe+juS/lyA+IHJ5b3VmdXViaXpva3VcIDsKK+WbveawkeWtpuagoSA+IGtva3VtaW5nYWtrb3VcIDsKK+WNmOeCuueUn+auliA+IHRhbicnaXNlaXNob2t1XCA7CivkuozljYHml6XpvKAgPiBoYXRzdWthbmV6dW1pXCA7Civosr/mmJPlj47mlK8gPiBib3Vla2lzaHV1c2hpXCA7Civkurrlt6Xlv4Poh5MgPiBqaW5rb3VzaGluem91XCA7CivlpKnmtKXml6Xll6MgPiBhbWF0c3VoaXRzdWdpXCA7CivnvqTpm4TlibLmi6AgPiBndW4nJ3l1dWtha2t5b1wgOwor5YWI5aSp5qKF5q+SID4gc2VudGVuYmFpZG9rdVwgOwor5Lq65bel5b+D6IK6ID4gamlua291c2hpbmJhaVwgOwor5ZG85ZC45Lit5p6iID4ga29reXV1Y2h1dXN1dVwgOwor6aeQ55WZ6YOo6ZqKID4gY2h1dXJ5dXVidXRhaVwgOwor5q6655Sf56aB5patID4gc2Vzc2hvdWtpbmRhblwgOwor54Sh6Yqt6YGK6IiIID4gbXVzZW4nJ3l1dWt5b3VcIDsKK+S4u+W4reWFqOaoqSA+IHNodXNla2l6ZW5rZW5cIDsKK+eUsuS5meS4meS4gSA+IGtvdW90c3VoZWl0ZWlcIDsKK+ijnOasoOmBuOaMmSA+IGhva2V0c3VzZW5reW9cIDsKK+W+rumHj+WIhuaekCA+IGJpcnlvdWJ1bnNla2lcIDsKK+WcsOWfn+S7o+ihqCA+IGNoaWlraWRhaWh5b3VcIDsKK+eUu+S4gOS4u+e+qSA+IGtha3VpdHN1c2h1Z2lcIDsKK+S6rOmDveWkp+WtpiA+IGt5b3V0b2RhaWdha3VcIDsKK+eUn+S9k+W3peWtpiA+IHNlaXRhaWtvdWdha3VcIDsKK+azoeayq+WAmeijnCA+IGhvdW1hdHN1a291aG9cIDsKK+ebuOe2muiyoeeUoyA+IHNvdXpva3V6YWlzYW5cIDsKK+WvvuaIpuaIkOe4viA+IHRhaXNlbnNlaXNla2lcIDsKK+Wbvemam+epuua4ryA+IGtva3VzYWlrdXVrb3VcIDsKK+WbvemAo+e3j+S8miA+IGtva3VyZW5zb3VrYWlcIDsKK+WwgumWgOaVmeiCsiA+IHNlbm1vbmt5b3Vpa3VcIDsKK+WWtualreWgseWRiiA+IGVpZ3lvdWhvdWtva3VcIDsKK+ihgOa2suaknOafuyA+IGtldHN1ZWtpa2Vuc2FcIDsKK+mdqeaWsOS4u+e+qSA+IGtha3VzaGluc2h1Z2lcIDsKK+mcsuWHuuaZgumWkyA+IHJvc2h1dHN1amlrYW5cIDsKK+aKleelqOeUqOe0mSA+IHRvdWh5b3V5b3VzaGlcIDsKK+iWrOeUqOefs+m5uCA+IHlha3V5b3VzZWtrZW5cIDsKK+WNmOeLrOihjOWLlSA+IHRhbmRva3Vrb3Vkb3VcIDsKK+Wkq+WppueUn+a0uyA+IGZ1dWZ1c2Vpa2F0c3VcIDsKK+iCieS9k+mWouS/giA+IG5pa3V0YWlrYW5rZWlcIDsKK+i7jeS6i+itpuWvnyA+IGd1bmppa2Vpc2F0c3VcIDsKK+aWsOWpmuaXheihjCA+IHNoaW5rb25yeW9rb3VcIDsKK+mZveaAp+WPjeW/nCA+IHlvdXNlaWhhbicnbm91XCA7Civou7jlt67lv5zlipsgPiBqaWt1c2FvdXJ5b2t1XCA7CivkurrpoZ7lrabogIUgPiBqaW5ydWlnYWt1c2hhXCA7Civmrablo6vmsJfos6ogPiBidXNoaWtpc2hpdHN1XCA7CivnrKzkuIDkurrogIUgPiBkYWlpY2hpbmluc2hhXCA7Civlrrbluq3nlJ/mtLsgPiBrYXRlaXNlaWthdHN1XCA7CivljbHpmbrkurrniakgPiBraWtlbmppbmJ1dHN1XCA7CivlpKflrabmlZnmjoggPiBkYWlnYWt1a3lvdWp1XCA7CivliY3pgLLpgYvli5UgPiB6ZW5zaGluJyd1bmRvdVwgOwor5rS75YuV5oiQ5p6cID4ga2F0c3Vkb3VzZWlrYVwgOwor57eP5ZCI5Y+O5pSvID4gc291Z291c2h1dXNoaVwgOwor5ZCE6aeF5YGc6LuKID4ga2FrdWVraXRlaXNoYVwgOwor6Kem5aqS5L2c55SoID4gc2hva3ViYWlzYXlvdVwgOwor56eR5a2m5oqA6KGTID4ga2FnYWt1Z2lqdXRzdVwgOwor5Y2w5Yi355So57SZID4gaW5zYXRzdXlvdXNoaVwgOwor5Lq655qE6Ki85ougID4gamludGVraXNob3Vrb1wgOwor5oqX6K2w5rS75YuVID4ga291Z2lrYXRzdWRvdVwgOwor5YWI5Y+W5b6X54K5ID4gc2Vuc2h1dG9rdXRlblwgOwor6KSH5ZCI5LyB5qWtID4gZnVrdWdvdWtpZ3lvdVwgOwor54Sh5beu5Yil57SaID4gbXVzYWJldHN1a3l1dVwgOwor5aSa5Zu957GN6LuNID4gdGFrb2t1c2VraWd1blwgOwor56u25LqJ5L6h5qC8ID4ga3lvdXNvdWtha2FrdVwgOwor56S+5Lya5Lq65p6gID4gc2hha2Fpamlud2FrdVwgOwor5ZWG5qWt5Zyw5Yy6ID4gc2hvdWd5b3VjaGlrdVwgOwor6KGo5bGk5qeL6YCgID4gaHlvdXNvdWtvdXpvdVwgOwor57K+56We6KGb55SfID4gc2Vpc2hpbicnZWlzZWlcIDsKK+iIquepuuWGmeecnyA+IGtvdWt1dXNoYXNoaW5cIDsKK+S4iuaYh+awl+a1gSA+IGpvdXNob3VraXJ5dXVcIDsKK+WMl+Wkp+ilv+a0iyA+IGtpdGF0YWlzZWl5b3VcIDsKK+ihjOaUv+aMh+WwjiA+IGd5b3VzZWlzaGlkb3VcIDsKK+Wumue9rua8gealrSA+IHRlaWNoaWd5b2d5b3VcIDsKK+acgOmrmOe0muWTgSA+IHNhaWtvdWt5dXVoaW5cIDsKK+WHuumgreWRveS7pCA+IHNodXR0b3VtZWlyZWlcIDsKK+WHuuihgOmBjuWkmiA+IHNodWtrZXRzdWthdGFcIDsKK+mbu+WtkOWHuueJiCA+IGRlbnNoaXNodXBwYW5cIDsKK+iJsue0oOe0sOiDniA+IHNoaWtpc29zYWlib3VcIDsKK+iKseWrgeiho+ijsyA+IGhhbmF5b21laXNob3VcIDsKK+Wwj+WPo+ePvumHkSA+IGtvZ3VjaGlnZW5raW5cIDsKK+WNmuWtpuWkmuaJjSA+IGhha3VnYWt1dGFzYWlcIDsKK+WkluanmOWkp+WQjSA+IHRvemFtYWRhaW15b3VcIDsKK+WbveawkeS4u+aoqSA+IGtva3VtaW5zaHVrZW5cIDsKK+WFrOmHkeaoqumgmCA+IGtvdWtpbicnb3VyeW91XCA7Civov5Hpg4rovrLmpa0gPiBraW5rb3Vub3VneW91XCA7Civlhajlm73lpKfkvJogPiB6ZW5rb2t1dGFpa2FpXCA7CivlkJ/pgYroqankurogPiBnaW4nJ3l1dXNoaWppblwgOwor5Ya35rC05pGp5pOmID4gcmVpc3VpbWFzYXRzdVwgOwor5puy5a2m6Zi/5LiWID4ga3lva3VnYWt1YXNlaVwgOwor5L6h5qC856u25LqJID4ga2FrYWt1a3lvdXNvdVwgOwor56aB5pat55eH54q2ID4ga2luZGFuc2hvdWpvdVwgOwor56uc5pSY6JmO5pCPID4gcnl1dWpvdWtvaGFrdVwgOwor5q2j5ZGz6YeN6YePID4gc2hvdW1panV1cnlvdVwgOwor5YWs6Ki85b255aC0ID4ga291c2hvdXlha3ViYVwgOwor5riF5ra86aOy5paZID4gc2VpcnlvdWlucnlvdVwgOwor5q+b566h54++6LGhID4gbW91a2FuZ2Vuc2hvdVwgOwor5L2c5oim5Zyw5Z+fID4gc2FrdXNlbmNoaWlraVwgOwor5Ye65by15peF6LK7ID4gc2h1dGNob3VyeW9oaVwgOwor5pS+6YCB55Wq57WEID4gaG91c291YmFuZ3VtaVwgOwor5rC45LmF56OB55+zID4gZWlreXV1amlzaGFrdVwgOwor5aOy5o6b5YuY5a6aID4gdXJpa2FrZWthbmpvdVwgOwor6ZaT5a6u5rW35bOhID4gbWFtaXlha2Fpa3lvdVwgOwor542E5Lit5pel6KiYID4gZ29rdWNodXVuaWtraVwgOwor5rKI5oCd6buZ6ICDID4gY2hpbnNoaW1va2tvdVwgOwor6LaF5Zu95a6255qEID4gY2hvdWtva2thdGVraVwgOwor6Ziy54Gr5bu656+JID4gYm91a2FrZW5jaGlrdVwgOwor6YeR6J6N5biC5aC0ID4ga2luJyd5dXVzaGlqb3VcIDsKK+mbhuWbo+W/g+eQhiA+IHNodXVkYW5zaGlucmlcIDsKK+WFpeekvuippumokyA+IG55dXVzaGFzaGlrZW5cIDsKK+mBuOaKnuWApOe+pCA+IHNlbnRha3VjaGlndW5cIDsKK+eiuueOh+iqpOW3riA+IGtha3VyaXRzdWdvc2FcIDsKK+esrOWbm+majue0miA+IGRhaXlvbmthaWt5dXVcIDsKK+mAjemBpeWtpua0viA+IHNob3V5b3VnYWt1aGFcIDsKK+m7kueCueWRqOacnyA+IGtva3V0ZW5zaHV1a2lcIDsKK+e+juihk+WtpuagoSA+IGJpanV0c3VnYWtrb3VcIDsKK+WNiuatu+WNiueUnyA+IGhhbnNoaWhhbnNob3VcIDsKK+W/q+mAn+mbu+i7iiA+IGthaXNva3VkZW5zaGFcIDsKK+WNl+WMl+aIpuS6iSA+IG5hbmJva3VzZW5zb3VcIDsKK+Wwj+WFkOWWmOaBryA+IHNob3VuaXplbnNva3VcIDsKK+WGheaUv+W5sua4iSA+IG5haXNlaWthbnNob3VcIDsKK+WFrOW5s+aUv+etliA+IGtvdWhlaXNlaXNha3VcIDsKK+W3pealreimj+agvCA+IGtvdWd5b3VraWtha3VcIDsKK+Wbm+inkuWbm+mdoiA+IHNoaWtha3VzaGltZW5cIDsKK+WwkeW5tOWwkeWlsyA+IHNob3VuZW5zaG91am9cIDsKK+WGjeiyqealreiAhSA+IHNhaWhhbmd5b3VzaGFcIDsKK+i2hemrmOmAn+W6piA+IGNob3Vrb3Vzb2t1ZG9cIDsKK+iqv+afu+WgseWRiiA+IGNob3VzYWhvdWtva3VcIDsKK+a1t+mbo+WvqeWIpCA+IGthaW5hbnNoaW5wYW5cIDsKK+eQhuWtpuS/ruWjqyA+IHJpZ2FrdXNodXVzaGlcIDsKK+WklueahOagueaLoCA+IGdhaXRla2lrb25reW9cIDsKK+eUn+WRveW3peWtpiA+IHNlaW1laWtvdWdha3VcIDsKK+WkqeS9keelnuWKqSA+IHRlbicneXV1c2hpbmpvXCA7CivlpJblm73ml4XooYwgPiBnYWlrb2t1cnlva291XCA7CivlhbHlkIzmsLTmoJMgPiBreW91ZG91c3Vpc2VuXCA7Civmi6HlpKflnYfooaEgPiBrYWt1ZGFpa2lua291XCA7Civlh7Hml4vlsIbou40gPiBnYWlzZW5zaG91Z3VuXCA7Civpm4bnqY3lm57ot68gPiBzaHV1c2VraWthaXJvXCA7Civoo77ph47nlKPmpa0gPiBzdXNvbm9zYW5neW91XCA7Civpjq7prYLluLDnpZ4gPiBjaGlua29ua2lzaGluXCA7CivlkIjmoLzogIXlkI0gPiBnb3VrYWt1c2hhbWVpXCA7CivmnInos4fmoLzogIUgPiB5dXVzaGlrYWt1c2hhXCA7CivljJblrablj43lv5wgPiBrYWdha3VoYW4nJ25vdVwgOwor6ZyA6KaB5L6b57WmID4ganV5b3VreW91a3l1dVwgOwor5Y+s5Zaa5Luk54q2ID4gc2hvdWthbnJlaWpvdVwgOwor6Kmm6aiT5YuJ5by3ID4gc2hpa2VuYmVua3lvdVwgOwor5rip5a6k5Yq55p6cID4gb25zaGl0c3Vrb3VrYVwgOwor5pyJ6Ymk5p2h6JmrID4geXV1a291am91Y2h1dVwgOwor5YaF55qE5qC55ougID4gbmFpdGVraWtvbmt5b1wgOwor6L+R5rW35ryB5qWtID4ga2lua2FpZ3lvZ3lvdVwgOwor5rG65oim5oqV56WoID4ga2Vzc2VudG91aHlvdVwgOwor5YWx5ZCM56S+5LyaID4ga3lvdWRvdXNoYWthaVwgOwor5ZSQ6I2J5qih5qeYID4ga2FyYWt1c2Ftb3lvdVwgOwor5YyF55qu5YiH5patID4gaG91aGlzZXRzdWRhblwgOwor5a6a5pyf5Y+W5byVID4gdGVpa2l0b3JpaGlraVwgOwor5Lm+54el5rSX5r+vID4ga2Fuc291c2VudGFrdVwgOwor6ZuG5ZCI5ZCN6KmeID4gc2h1dWdvdW1laXNoaVwgOwor5bCP5Z6L5paw6IGeID4ga29nYXRhc2hpbmJ1blwgOwor5Yy755mC5pa96KitID4gaXJ5b3VzaGlzZXRzdVwgOwor5YuV54mp5rK56ISCID4gZG91YnV0c3V5dXNoaVwgOwor5Y+N6Z2i5pWZ5birID4gaGFubWVua3lvdXNoaVwgOwor5pel5bi45Lya6KmxID4gbmljaGlqb3VrYWl3YVwgOwor6Ly45YWl5qWt6ICFID4geXVueXV1Z3lvdXNoYVwgOwor5qiZ5rqW5L6h5qC8ID4gaHlvdWp1bmtha2FrdVwgOwor5LiN5aaK5omL6KGTID4gZnVuaW5zaHVqdXRzdVwgOwor5bGx54yr5LqJ6K2wID4geWFtYW5la29zb3VnaVwgOwor5Ye65LiW6ZaT55qEID4gc2h1c3Nla2VudGVraVwgOwor5bm05Lit6KGM5LqLID4gbmVuY2h1dWd5b3VqaVwgOwor6Y6M5YCJ5pmC5LujID4ga2FtYWt1cmFqaWRhaVwgOwor54KO55eH55eF5bejID4gZW5zaG91YnlvdXNvdVwgOwor5rOo5oSP5Lq654mpID4gY2h1dWlqaW5idXRzdVwgOwor5pel5rSq6Kaq5ZaEID4gbmlra291c2hpbnplblwgOwor6L+95Yqg5rOo5paHID4gdHN1aWthY2h1dW1vblwgOwor562G5YaZ55Wl5a2XID4gaGlzc2hhcnlha3VqaVwgOwor54yu6KGA6YGL5YuVID4ga2Vua2V0c3V1bmRvdVwgOwor6Iie5Y+w6Iq46KGTID4gYnV0YWlnZWlqdXRzdVwgOwor6Kmm6aiT55uj552jID4gc2hpa2Vua2FudG9rdVwgOwor5pKk6aCt5b655bC+ID4gdGV0dG91dGV0c3ViaVwgOwor55a+6aKo6L+F6Zu3ID4gc2hpcHB1dWppbnJhaVwgOwor5biC5aC055Kw5aKDID4gc2hpam91a2Fua3lvdVwgOwor5Y6f5oiQ5bKp55+zID4gZ2Vuc2VpZ2Fuc2VraVwgOwor5YmN5aSn57Wx6aCYID4gemVuZGFpdG91cnlvdVwgOwor5by35Yi26YCB6YKEID4ga3lvdXNlaXNvdWthblwgOwor5ZCM5qWt57WE5ZCIID4gZG91Z3lvdWt1bWlhaVwgOwor6Zu75rCX5YmD5YiAID4gZGVua2lrYW1pc29yaVwgOwor5LqL5YuZ5bGA6ZW3ID4gamltdWt5b2t1Y2hvdVwgOwor57WM5riI5pS56Z2pID4ga2VpemFpa2Fpa2FrdVwgOwor5rCR5L+X6Iq46IO9ID4gbWluem9rdWdlaW5vdVwgOwor5Y+O56mr5LqI5oOzID4gc2h1dWtha3V5b3NvdVwgOwor5aGp6L6b6Jy76JuJID4gc2hpb2thcmF0b25ib1wgOwor57SG5L2Z5puy5oqYID4gdXlva3lva3VzZXRzdVwgOwor5qW16LaF55+t5rOiID4gZ29rdWNob3V0YW5wYVwgOwor5Li75qip5L6154qvID4gc2h1a2Vuc2hpbnBhblwgOwor5Lit5oCn5rSX5YmkID4gY2h1dXNlaXNlbnphaVwgOwor6LKo54mp5YiX6LuKID4ga2Ftb3RzdXJlc3NoYVwgOwor6KGA5riF55mC5rOVID4ga2Vzc2VpcnlvdWhvdVwgOwor5paw5qGI54m56KixID4gc2hpbicnYW50b2treW9cIDsKK+atu+W+jOehrOebtCA+IHNoaWdva291Y2hva3VcIDsKK+WUr+eJqeS4u+e+qSA+IHl1aWJ1dHN1c2h1Z2lcIDsKK+aXpemcsuaIpuS6iSA+IG5pY2hpcm9zZW5zb3VcIDsKK+aWremDiuertuS6iSA+IGRhbmtvdWt5b3Vzb3VcIDsKK+WQjOebn+adoee0hCA+IGRvdW1laWpvdXlha3VcIDsKK+S4gOaUq+WNg+mHkSA+IGlra2Fra3VzZW5raW5cIDsKK+majue0mumXmOS6iSA+IGthaWt5dXV0b3Vzb3VcIDsKK+eGseehrOWMluWJpCA+IG5ldHN1a291a2F6YWlcIDsKK+WwgueUqOWbnue3miA+IHNlbicneW91a2Fpc2VuXCA7CivkuqTmj5vlrabnlJ8gPiBrb3VrYW5nYWt1c2VpXCA7Civli5Xnt5roqIjnlLsgPiBkb3VzZW5rZWlrYWt1XCA7CivmsJHmlL/plbflrpggPiBtaW5zZWljaG91a2FuXCA7CivliKTmlq3kuK3mraIgPiBoYW5kYW5jaHV1c2hpXCA7CivlsYDmiYDliIblspAgPiBreW9rdXNob2J1bmtpXCA7CivpgJrluLjlm73kvJogPiB0c3V1am91a29ra2FpXCA7CivmlbDlgKTop6PmnpAgPiBzdXVjaGlrYWlzZWtpXCA7Civou43lgpnmi6HlvLUgPiBndW5iaWtha3VjaG91XCA7CivpganogIXnlJ/lrZggPiB0ZWtpc2hhc2Vpem9uXCA7Civnsr7npZ7pkZHlrpogPiBzZWlzaGlua2FudGVpXCA7CivpiYTpgZPovLjpgIEgPiB0ZXRzdWRvdXl1c291XCA7CivnrKzkuInpmo7ntJogPiBkYWlzYW5rYWlreXV1XCA7CivljYPmhYvkuIfmp5ggPiBzZW50YWliYW4nJ3lvdVwgOwor6Zu75a2Q5bel5a2mID4gZGVuc2hpa291Z2FrdVwgOwor57WM5riI54q25rOBID4ga2VpemFpam91a3lvdVwgOwor56S+5Lya5pWZ6IKyID4gc2hha2Fpa3lvdWlrdVwgOwor6L6y6ICV5rCR5pePID4gbm91a291bWluem9rdVwgOwor5YWo6Lqr5YWo6ZyKID4gemVuc2hpbnplbnJlaVwgOwor5YWs56ew6LOH5pysID4ga291c2hvdXNoaWhvblwgOwor5aSn5a2X54mH5bGxID4gb29hemFrYXRheWFtYVwgOwor6Jas5bir5aaC5p2lID4geWFrdXNoaW55b3JhaVwgOwor55m+5oim6Yys56OoID4gaHlha3VzZW5yZW5tYVwgOwor5ZCM55uf5LyR5qChID4gZG91bWVpa3l1dWtvdVwgOwor5Lit5aSu6KiI55S7ID4gY2h1dW91a2Vpa2FrdVwgOwor5Lit5aSu6ZuG5qipID4gY2h1dW91c2h1dWtlblwgOwor5LiJ6KeS6LK/5piTID4gc2Fua2FrdWJvdWVraVwgOwor5YiG5p6Q5YyW5a2mID4gYnVuc2VraWthZ2FrdVwgOwor5bCR5aOu5aOr5a6YID4gc2hvdXNvdXNoaWthblwgOwor5rOV55qE5qC55ougID4gaG91dGVraWtvbmt5b1wgOwor5q665a6z5LqL5Lu2ID4gc2F0c3VnYWlqaWtlblwgOwor6Ieq54S25aKX5Y+OID4gc2hpemVuem91c2h1dVwgOwor6Imv5oCn6IWr55iNID4gcnlvdXNlaXNodXlvdVwgOwor6YCa5Yuk6Zu76LuKID4gdHN1dWtpbmRlbnNoYVwgOwor5bCR5bm054qv572qID4gc2hvdW5lbmhhbnphaVwgOwor5rC06YW45YyW54mpID4gc3Vpc2Fua2FidXRzdVwgOwor6Kaq5oia55+l5bexID4gc2hpbnNla2ljaGlraVwgOwor5Y2Y54us5rG6566XID4gdGFuZG9rdWtlc3NhblwgOwor5Zu96Zqb5oOF5YuiID4ga29rdXNhaWpvdXNlaVwgOwor6KGX6aCt5ryU6KqsID4gZ2FpdG91ZW56ZXRzdVwgOwor5qyj5Zac6ZuA6LqNID4ga2lua2lqYWt1eWFrdVwgOwor5ZOB56iu5pS56ImvID4gaGluc2h1a2FpcnlvdVwgOwor5YWs56ew6aas5YqbID4ga291c2hvdWJhcmlraVwgOwor5Zub5YWt5pmC5LitID4gc2hpcm9rdWppY2h1dVwgOwor5Lqk6YCa6YGu5patID4ga291dHN1dXNoYWRhblwgOwor5aSn5a2m57Sb5LqJID4gZGFpZ2FrdWZ1bnNvdVwgOwor6LKh5pS/5Y+O5pSvID4gemFpc2Vpc2h1dXNoaVwgOwor6KGG5Y+C5Lih6ZmiID4gc2h1dXNhbnJ5b3VpblwgOwor6ICQ54Gr5bu656+JID4gdGFpa2FrZW5jaGlrdVwgOwor6KaW5Yqb5qSc5p+7ID4gc2hpcnlva3VrZW5zYVwgOwor5bCP5YiA57Sw5belID4ga29nYXRhbmF6YWlrdVwgOwor6LOq55aR5b+c562UID4gc2hpdHN1Z2lvdXRvdVwgOwor5o2c5p+75b2T5bGAID4gc291c2F0b3VreW9rdVwgOwor54Wn6JGJ54uC6KiAID4gdGVyaWhha3lvdWdlblwgOwor5Ye65b6B6LuN5Lq6ID4gc2h1c3NlaWd1bmppblwgOwor5pS+5bCE6IO96ZuyID4gaG91c2hhbm91Z3Vtb1wgOwor56S+5Lya5pS/562WID4gc2hha2Fpc2Vpc2FrdVwgOwor6Zu75qW16Zu75L2NID4gZGVua3lva3VkZW4nJ2lcIDsKK+S6uuW3pemAj+aekCA+IGppbmtvdXRvdXNla2lcIDsKK+ikh+WQiOWqkuS9kyA+IGZ1a3Vnb3ViYWl0YWlcIDsKK+S9j+awkeaKleelqCA+IGp1dW1pbnRvdWh5b3VcIDsKK+W3pealreWcsOW4ryA+IGtvdWd5b3VjaGl0YWlcIDsKK+WRvOWQuOWbsOmboyA+IGtva3l1dWtvbicnbmFuXCA7CivppIrorbfmlr3oqK0gPiB5b3Vnb3NoaXNldHN1XCA7CivovLjlh7ropo/liLYgPiB5dXNodXRzdWtpc2VpXCA7CivmiKblipvntYTmiJAgPiBzZW5yeW9rdXNvc2VpXCA7CivmsbrpgbjmipXnpaggPiBrZXNzZW50b3VoeW91XCA7CivntbHkuIDopovop6MgPiB0b3VpdHN1a2Vua2FpXCA7CivlgqznnKDnmYLms5UgPiBzYWltaW5yeW91aG91XCA7Civlt6Xmpa3oo73lk4EgPiBrb3VneW91c2VpaGluXCA7CivlvbnkurrmoLnmgKcgPiB5YWt1bmlua29uam91XCA7Civni6zmiL/nm6PnpoEgPiBkb2t1Ym91a2Fua2luXCA7CivlsI7pgJrmirXmipcgPiBkb3V0c3V1dGVpa291XCA7CivljZToqr/kuLvnvqkgPiBreW91Y2hvdXNodWdpXCA7CivkvJroqIjloLHlkYogPiBrYWlrZWlob3Vrb2t1XCA7Civlj7Dmub7mtbfls6EgPiB0YWl3YW5rYWlreW91XCA7Civml6XmuIXmiKbkuokgPiBuaXNzaGluc2Vuc291XCA7CivlrqPoqIDnmbrooaggPiBzZW5nZW5oYXBweW91XCA7CivlpKnkvZPlhpnnnJ8gPiB0ZW50YWlzaGFzaGluXCA7Civph43ph4/lmbjmlbAgPiBqdXVyeW91dG9uc3V1XCA7CivmmI7pj6HmraLmsLQgPiBtZWlreW91c2hpc3VpXCA7CivlubTplpPoqIjnlLsgPiBuZW5rYW5rZWlrYWt1XCA7Civlj6Pov7DnrYboqJggPiBrb3VqdXRzdWhpa2tpXCA7Civlm73pmpvpgJrosqggPiBrb2t1c2FpdHN1dWthXCA7CivlgaXlurfoqLrmlq0gPiBrZW5rb3VzaGluZGFuXCA7CivmoYPlsbHmmYLku6MgPiBtb21veWFtYWppZGFpXCA7CivogbfloLTntZDlqZogPiBzaG9rdWJha2Vra29uXCA7CivnkrDlooPllY/poYwgPiBrYW5reW91bW9uZGFpXCA7CivoqLzkurrllprllY8gPiBzaG91bmlua2FubW9uXCA7CivmlLvmkoPmlrnlkJEgPiBrb3VnZWtpaG91a291XCA7Civnq7bkuonlo7LosrcgPiBreW91c291YmFpYmFpXCA7CivokZfkvZzmqKnms5UgPiBjaG9zYWt1a2VuaG91XCA7Civlm73pmpvnpL7kvJogPiBrb2t1c2Fpc2hha2FpXCA7CivmlrDliLbpq5jmoKEgPiBzaGluc2Vpa291a291XCA7Civlr4TnlJ/omavnl4cgPiBraXNlaWNodXVzaG91XCA7CivkuK3mipjluL3lrZAgPiBuYWthb3JlYm91c2hpXCA7Civlhazplovnt7Tnv5IgPiBrb3VrYWlyZW5zaHV1XCA7CivntYzmuIjmlL/nrZYgPiBrZWl6YWlzZWlzYWt1XCA7CivlkIjmiJDlhpnnnJ8gPiBnb3VzZWlzaGFzaGluXCA7CivmlrDpgLLkvZzlrrYgPiBzaGluc2hpbnNha2thXCA7CivphbjntKDkvpvntaYgPiBzYW5zb2t5b3VreXV1XCA7CivkuqTpgJrlhaznpL4gPiBrb3V0c3V1a291c2hhXCA7CivmtLvmrrroh6rlnKggPiBrYXNzYXRzdWppemFpXCA7Civpm7vpgIHlhpnnnJ8gPiBkZW5zb3VzaGFzaGluXCA7Civlhajnn6Xlhajog70gPiB6ZW5jaGl6ZW4nJ25vdVwgOwor5Zu95Yui6Kq/5p+7ID4ga29rdXNlaWNob3VzYVwgOwor5rWB6YCa5qmf5qeLID4gcnl1dXRzdXVraWtvdVwgOwor5YW15Zmo6Ly45Ye6ID4gaGVpa2l5dXNodXRzdVwgOwor5aSp55qH5bSH5oudID4gdGVuJydub3VzdXVoYWlcIDsKK+S/neiovOS6uuimgSA+IGhvc2hvdW5pbicneW91XCA7Civmta7pgYrnlJ/niakgPiBmdXl1dXNlaWJ1dHN1XCA7CivntYLouqvkv53pmbogPiBzaHV1c2hpbmhva2VuXCA7Civmh7jos57oq5bmlocgPiBrZW5zaG91cm9uYnVuXCA7CivluILloLTmlLnpnakgPiBzaGlqb3VrYWlrYWt1XCA7Civpm7vlipvpnIDopoEgPiBkZW5yeW9rdWp1eW91XCA7Civoh6jluorlsIvllY8gPiByaW5zaG91amlubW9uXCA7CivpmbDmpbXnt5rnrqEgPiBpbmt5b2t1c2Vua2FuXCA7Civml4vlhYnliIbmnpAgPiBzZW5rb3VidW5zZWtpXCA7CivljJbnn7Pnh4PmlpkgPiBrYXNla2luZW5yeW91XCA7Civpm7vkv6Hngrrmm78gPiBkZW5zaGlua2F3YXNlXCA7Civmh5DkuK3pm7vnga8gPiBrYWljaHV1ZGVudG91XCA7CivmiY3oibLlhbzlgpkgPiBzYWlzaG9rdWtlbmJpXCA7CivmjIflsI7opoHpoJggPiBzaGlkb3V5b3VyeW91XCA7Civpg7Xkvr/lubTph5EgPiB5dXViaW4nJ25lbmtpblwgOwor6Zai6YCj5ZWG5ZOBID4ga2FucmVuc2hvdWhpblwgOwor6ZmQ55WM54q25rOBID4gZ2Vua2Fpam91a3lvdVwgOwor54++5Zyo5a6M5LqGID4gZ2VuemFpa2FucnlvdVwgOwor5Yi257SE5Lyd5pCsID4gc2VpeWFrdWRlbnBhblwgOwor5Li45LiA6YCx6ZaTID4gbWFydWlzc2h1dWthblwgOwor5bel5qWt5Zuj5ZywID4ga291Z3lvdWRhbmNoaVwgOwor5qW15qW95rWE5ZyfID4gZ29rdXJha3Vqb3Vkb1wgOwor5YyW5a2m5YiG5p6QID4ga2FnYWt1YnVuc2VraVwgOwor5ZCM54K55rG65YudID4gZG91dGVua2Vzc2hvdVwgOwor5L2T5aSW6Zui6ISxID4gdGFpZ2FpcmlkYXRzdVwgOwor55Sf54mp5YW15ZmoID4gc2VpYnV0c3VoZWlraVwgOwor5Y2Y6Z+z56+A6KqeID4gdGFuJydvbnNldHN1Z29cIDsKK+aUu+aSg+maiuW9oiA+IGtvdWdla2l0YWlrZWlcIDsKK+azleS6uuaJgOW+lyA+IGhvdWppbnNob3Rva3VcIDsKK+Wkp+mAhuS6i+S7tiA+IHRhaWd5YWt1amlrZW5cIDsKK+WOn+Wni+aVmeS8miA+IGdlbnNoaWt5b3VrYWlcIDsKK+S+oeagvOWNlOWumiA+IGtha2FrdWt5b3V0ZWlcIDsKK+Wvk+aEj+Wwj+iqrCA+IGd1dWlzaG91c2V0c3VcIDsKK+WwgumWgOaKgOihkyA+IHNlbm1vbmdpanV0c3VcIDsKK+aLoeW8teWPr+iDvSA+IGtha3VjaG91a2Fub3VcIDsKK+aApemAsuS4u+e+qSA+IGt5dXVzaGluc2h1Z2lcIDsKK+iomOW/teW8j+WFuCA+IGtpbmVuc2hpa2l0ZW5cIDsKK+ertuWQiOiEsee3miA+IGt5b3Vnb3VkYXNzZW5cIDsKK+aakeS4reS8keaahyA+IHNob2NodXVreXV1a2FcIDsKK+e5geaWh+e4n+ekvCA+IGhhbmJ1bmpva3VyZWlcIDsKK+ebruaomeeuoeeQhiA+IG1va3VoeW91a2FucmlcIDsKK+aWueWQkeims+W/tSA+IGhvdWtvdWthbicnbmVuXCA7CivmtbflupXpm7vkv6EgPiBrYWl0ZWlkZW5zaGluXCA7Civmpa3nlYzli5XlkJEgPiBneW91a2FpZG91a291XCA7Civlv4XopoHntYzosrsgPiBoaXRzdXlvdWtlaWhpXCA7CivmsLTnjonmqKHmp5ggPiBtaXp1dGFtYW1veW91XCA7Civlh7rlvoHlrrbml48gPiBzaHVzc2Vpa2F6b2t1XCA7CivntYzluLjlj47mlK8gPiBrZWlqb3VzaHV1c2hpXCA7CivlnLDnkIPnp5HlraYgPiBjaGlreXV1a2FnYWt1XCA7Civmg4XloLHmioDooZMgPiBqb3Vob3VnaWp1dHN1XCA7CivnqbrkuK3liIbop6MgPiBrdXVjaHV1YnVua2FpXCA7CivlvLfliLblirTlg40gPiBreW91c2Vpcm91ZG91XCA7Civpmo7ntJrmhI/orZggPiBrYWlreXV1aXNoaWtpXCA7CivljZrlo6voq5bmlocgPiBoYWt1c2hpcm9uYnVuXCA7CivkurrmoLzlvaLmiJAgPiBqaW5rYWt1a2Vpc2VpXCA7Civntbnns7jntKHnuL4gPiBrZW5zaGlib3VzZWtpXCA7CivogbfloLTpl5jkuokgPiBzaG9rdWJhdG91c291XCA7CivmlZnogrLlrabpg6ggPiBreW91aWt1Z2FrdWJ1XCA7CivlpInpgJ/oo4Xnva4gPiBoZW5zb2t1c291Y2hpXCA7CivnnJ/lhobnnJ/nj6AgPiBzaGluJydlbnNoaW5qdVwgOwor5Zu95rCR57WM5riIID4ga29rdW1pbmtlaXphaVwgOwor5YaF6Z2i5o+P5YaZID4gbmFpbWVuYnlvdXNoYVwgOwor5aqS5L2T57WC56uvID4gYmFpdGFpc2h1dXRhblwgOwor5b+D55CG55mC5rOVID4gc2hpbnJpcnlvdWhvdVwgOwor5oCn55qE6Zai5L+CID4gc2VpdGVraWthbmtlaVwgOwor54Sh6Yqt6aOy6aOfID4gbXVzZW4nJ2luc2hva3VcIDsKK+evhOeWh+aWh+azlSA+IGhhbmNodXVidW5wb3VcIDsKK+mVt+acn+WAn+asviA+IGNob3VraXNoYWtrYW5cIDsKK+WFqOS9k+mbhuWQiCA+IHplbnRhaXNodXVnb3VcIDsKK+WPs+Wwj+aLrOW8pyA+IG1pZ2lzaG91a2Fra29cIDsKK+S7ruaDs+aVteWbvSA+IGthc291dGVraWtva3VcIDsKK+altealveW+gOeUnyA+IGdva3VyYWt1b3Vqb3VcIDsKK+WIneetieaVmeiCsiA+IHNob3RvdWt5b3Vpa3VcIDsKK+ihjOaUv+WRveS7pCA+IGd5b3VzZWltZWlyZWlcIDsKK+WvvuWcsOaUu+aSgyA+IHRhaWNoaWtvdWdla2lcIDsKK+iHqueEtuaPj+WGmSA+IHNoaXplbmJ5b3VzaGFcIDsKK+mHkeiejeizh+acrCA+IGtpbicneXV1c2hpaG9uXCA7CivnhKHog73lipvogIUgPiBtdW5vdXJ5b2t1c2hhXCA7CivljJblrablt6Xmpa0gPiBrYWdha3Vrb3VneW91XCA7CivooYzmlL/ljLrnlLsgPiBneW91c2Vpa3VrYWt1XCA7Civlrabnv5Lovp7lhbggPiBnYWt1c2h1dWppdGVuXCA7CivplqjplqXmlL/msrsgPiBrZWliYXRzdXNlaWppXCA7Civkuovmpa3mi6HlhYUgPiBqaWd5b3VrYWt1anV1XCA7CivovrLmnZHlt6Xmpa0gPiBub3Vzb25rb3VneW91XCA7Civnp4vpm6jliY3nt5ogPiBha2lzYW1lemVuc2VuXCA7CivlhbHlkIzovrLloLQgPiBreW91ZG91bm91am91XCA7CivlpbPmqKnmi6HlvLUgPiBqb2tlbmtha3VjaG91XCA7CivorJvnv5LkvJrloLQgPiBrb3VzaHV1a2Fpam91XCA7CivmsZrmn5Pnianos6ogPiBvc2VuYnVzc2hpdHN1XCA7Civnirbms4HliKTmlq0gPiBqb3VreW91aGFuZGFuXCA7CivlvZPoqbLlrpjluoEgPiB0b3VnYWlrYW5jaG91XCA7Civku7Lku4vosr/mmJMgPiBjaHV1a2FpYm91ZWtpXCA7Civlm73lhoXluILloLQgPiBrb2t1bmFpc2hpam91XCA7CivkuIDmnprnnIvmnb8gPiBpY2hpbWFpa2FuYmFuXCA7CivnhKHnt5rpgJrkv6EgPiBtdXNlbnRzdXVzaGluXCA7CivntYzmuIjlpKflm70gPiBrZWl6YWl0YWlrb2t1XCA7Civlj43npL7kvJrnmoQgPiBoYW5zaGFrYWl0ZWtpXCA7CivkuIDliKnkuIDlrrMgPiBpY2hpcmlpY2hpZ2FpXCA7Civkuozlvovog4zlj40gPiBuaXJpdHN1aGFpaGFuXCA7CivlvqnlhYPkvZzmpa0gPiBmdWt1Z2Vuc2FneW91XCA7CivkurrplpPniIblvL4gPiBuaW5nZW5iYWt1ZGFuXCA7CivlraPnr4DlirTlg40gPiBraXNldHN1cm91ZG91XCA7Civpmbjou43lpKfoh6MgPiByaWt1Z3VuZGFpamluXCA7Civmlq3mirXmipfop5IgPiBkYW50ZWlrb3VrYWt1XCA7CivpgJrkv6HmqZ/plqIgPiB0c3V1c2hpbmtpa2FuXCA7CivlhpnnnJ/lh7jniYggPiBzaGFzaGludG9wcGFuXCA7CivljJblrabnmYLms5UgPiBrYWdha3VyeW91aG91XCA7CivntrHntIDnspvmraMgPiBrb3VraXNodWt1c2VpXCA7CivnqI7liLbmlLnpnakgPiB6ZWlzZWlrYWlrYWt1XCA7Civoqr/lgZzoo4HliKQgPiBjaG91dGVpc2FpYmFuXCA7CivnhKHnvarliKTmsbogPiBtdXphaWhhbmtldHN1XCA7Civou43kuovmiKbnlaUgPiBndW5qaXNlbnJ5YWt1XCA7Civoh6jluoroqabpqJMgPiByaW5zaG91c2hpa2VuXCA7CivpmLLmraLmjIfph50gPiBib3VzaGlzaGlzaGluXCA7CivmsJfosaHoprPmuKwgPiBraXNob3VrYW5zb2t1XCA7CivoiJ7lj7DnlJ/mtLsgPiBidXRhaXNlaWthdHN1XCA7CivlpKflkI3ml4XooYwgPiBkYWlteW91cnlva291XCA7CivkvZzmpa3nmYLms5UgPiBzYWd5b3VyeW91aG91XCA7CivlpJblm73ngrrmm78gPiBnYWlrb2t1a2F3YXNlXCA7Civpg73nq4vpq5jmoKEgPiB0b3JpdHN1a291a291XCA7CivlvaLlvI/kuLvnvqkgPiBrZWlzaGlraXNodWdpXCA7CivljJblrablt6XlraYgPiBrYWdha3Vrb3VnYWt1XCA7Civop5LpgYvli5Xph48gPiBrYWt1dW5kb3VyeW91XCA7CivlrozlhajnhKHmrKAgPiBrYW56ZW5tdWtldHN1XCA7CivmlL/nrZbmsbrlrpogPiBzZWlzYWt1a2V0dGVpXCA7CivlvqrnkrDlsI/mlbAgPiBqdW5rYW5zaG91c3V1XCA7CivlpKfpn5PmsJHlm70gPiBkYWlrYW5taW5rb2t1XCA7CivpgannlKjmpa3li5kgPiB0ZWtpeW91Z3lvdW11XCA7CivmiKbkuonmloflraYgPiBzZW5zb3VidW5nYWt1XCA7CivkuZ3lpKnnm7TkuIsgPiBreXV1dGVuY2hva2thXCA7CivpnaLlvpPohbnog4wgPiBtZW5qdXVmdWt1aGFpXCA7Civnorrkv53lpLHmlZcgPiBrYWt1aG9zaGlwcGFpXCA7CivlhbHpgJroqIDoqp4gPiBreW91dHN1dWdlbmdvXCA7CivlvLfliLblh6bliIYgPiBreW91c2Vpc2hvYnVuXCA7Civmlq3ltJbntbblo4EgPiBkYW5nYWl6ZXBwZWtpXCA7CivnlKPmpa3npL7kvJogPiBzYW5neW91c2hha2FpXCA7CivlkITnqK7lrabmoKEgPiBrYWt1c2h1Z2Fra291XCA7CivliIbop6PlhpnnnJ8gPiBidW5rYWlzaGFzaGluXCA7CivljbDliLflqpLkvZMgPiBpbnNhdHN1YmFpdGFpXCA7CivnoJTnqbbmiYDloLEgPiBrZW5reXV1c2hvaG91XCA7CivkubHlsITkubHmkoMgPiByYW5zaGFyYW5nZWtpXCA7Civmo5LohbnntbblgJIgPiBob3VmdWt1emV0dG91XCA7CivnibnoqLHkvrXlrrMgPiB0b2treW9zaGluZ2FpXCA7CivlrprpoY3osq/ph5EgPiB0ZWlnYWt1Y2hva2luXCA7CivlhazooYbkvJ3li5UgPiBrb3VzaHV1ZGVuZG91XCA7CivpiYTpgZPppqzou4ogPiB0ZXRzdWRvdWJhc2hhXCA7CivlhoXlm73ngrrmm78gPiBuYWlrb2t1a2F3YXNlXCA7CivnqK7nqK7mp5jmp5ggPiBzaHVqdXNhbWF6YW1hXCA7CivllpzoibLmuoDpnaIgPiBraXNob2t1bWFubWVuXCA7CivlvIHliKXntKDmgKcgPiBiZW5iZXRzdXNvc2VpXCA7CivkvZzmiKblkb3ku6QgPiBzYWt1c2VubWVpcmVpXCA7CivorbDplbfogbfmqKkgPiBnaWNob3VzaG9ra2VuXCA7CivllZPokpnmgJ3mva4gPiBrZWltb3VzaGljaG91XCA7CivlhazlqLzlhajlu4MgPiBrb3VzaG91emVucGFpXCA7Civlr77pnaLkuqTpgJogPiB0YWltZW5rb3V0c3V1XCA7CivkuIDllY/kuIDnrZQgPiBpY2hpbW9uJydpdHRvdVwgOwor6Zu75a2Q5a+G5bqmID4gZGVuc2hpbWl0c3Vkb1wgOwor6LaF5L2O5L6h5qC8ID4gY2hvdXRlaWtha2FrdVwgOwor5LiA5ous5aOy6LK3ID4gaWtrYXRzdWJhaWJhaVwgOwor5Yi257SE5p2h5Lu2ID4gc2VpeWFrdWpvdWtlblwgOwor5LyR5oim5Lya6KuHID4ga3l1dXNlbmthaWRhblwgOwor54mI5qip5L615a6zID4gaGFua2Vuc2hpbmdhaVwgOwor6ZqU6Zui55eF5qOfID4ga2FrdXJpYnlvdXRvdVwgOwor55Sf6a6u5paZ5ZOBID4gc2Vpc2VucnlvdWhpblwgOwor5LiK5piH5YK+5ZCRID4gam91c2hvdWtlaWtvdVwgOwor5LiN5rOV5YWl5Zu9ID4gZnVob3VueXV1Z29rdVwgOwor5pWZ6aSK5a2m6YOoID4ga3lvdXlvdWdha3VidVwgOwor6auY5L+h6aC85oCnID4ga291c2hpbnJhaXNlaVwgOwor5a625a6F5o2c57SiID4ga2F0YWt1c291c2FrdVwgOwor6KiI55S757WM5riIID4ga2Vpa2FrdWtlaXphaVwgOwor5LiJ6Lu46Kmm6aiTID4gc2FuamlrdXNoaWtlblwgOwor5pyA57WC5q616ZqOID4gc2Fpc2h1dWRhbmthaVwgOwor5Y+O5YWl5Y2w57SZID4gc2h1dW55dXVpbnNoaVwgOwor5Y2K54af57e05belID4gaGFuanVrdXJlbmtvdVwgOwor5YaZ55yf5Yik5a6aID4gc2hhc2hpbmhhbnRlaVwgOwor57WM5riI6Kaz5b+1ID4ga2VpemFpa2FuJyduZW5cIDsKK+izg+mHkeawtOa6liA+IGNoaW5naW5zdWlqdW5cIDsKK+WWtualreWPjuaUryA+IGVpZ3lvdXNodXVzaGlcIDsKK+S4ieebuOS6pOa1gSA+IHNhbnNvdWtvdXJ5dXVcIDsKK+e1jOWWtuaIpueVpSA+IGtlaWVpc2Vucnlha3VcIDsKK+aYpeWkj+eni+WGrCA+IHNodW5rYXNodXV0b3VcIDsKK+eEpueCuea3seW6piA+IHNob3V0ZW5zaGluZG9cIDsKK+S4gOaZguaJgOW+lyA+IGljaGlqaXNob3Rva3VcIDsKK+adieiKseeyieeXhyA+IHN1Z2lrYWZ1bnNob3VcIDsKK+S6uuawkeaKleelqCA+IGppbm1pbnRvdWh5b3VcIDsKK+WQiOW+k+mAo+ihoSA+IGdhc3Nob3VyZW5rb3VcIDsKK+eDj+mHjuixjOixhiA+IGthcmFzdW5vZW5kb3VcIDsKK+eEoeiKuOWkp+mjnyA+IG11Z2VpdGFpc2hva3VcIDsKK+Wbvemam+mAo+WQiCA+IGtva3VzYWlyZW5nb3VcIDsKK+eGseS6pOaPm+WZqCA+IG5ldHN1a291a2Fua2lcIDsKK+Wuh+WumemWi+eZuiA+IHVjaHV1a2FpaGF0c3VcIDsKK+a8ouaWh+iok+iqrSA+IGthbmJ1bmt1bmRva3VcIDsKK+epuumWk+aEn+immiA+IGt1dWthbmthbmtha3VcIDsKK+S6jOS6uuS4ieiEmiA+IG5pbmluc2Fua3lha3VcIDsKK+aoqeWKm+S4u+e+qSA+IGtlbnJ5b2t1c2h1Z2lcIDsKK+WLn+mbhuW6g+WRiiA+IGJvc2h1dWtvdWtva3VcIDsKK+Wtpue/kueQhuirliA+IGdha3VzaHV1cmlyb25cIDsKK+mnkOi7iuemgeatoiA+IGNodXVzaGFraW5zaGlcIDsKK+WFseWQjOWuo+iogCA+IGt5b3Vkb3VzZW5nZW5cIDsKK+WkqeWcsOelnuaYjiA+IHRlbmNoaXNoaW5tZWlcIDsKK+ips+e0sOaDheWgsSA+IHNob3VzYWlqb3Vob3VcIDsKK+eJm+mjsummrOmjnyA+IGd5dXVpbmJhc2hva3VcIDsKK+mHkeWfjumJhOWjgSA+IGtpbmpvdXRlcHBla2lcIDsKK+mbhuS4reism+e+qSA+IHNodXVjaHV1a291Z2lcIDsKK+WkieW9ouiZq+mhniA+IGhlbmtlaWNodXVydWlcIDsKK+WFrOeahOW5tOmHkSA+IGtvdXRla2luZW5raW5cIDsKK+mAseWIiumbkeiqjCA+IHNodXVrYW56YXNzaGlcIDsKK+e0oee4vuW3peWgtCA+IGJvdXNla2lrb3Vqb3VcIDsKK+WIneetieaVsOWtpiA+IHNob3RvdXN1dWdha3VcIDsKK+aui+WtmOaXpeaVsCA+IHphbnNvbicnbmlzc3V1XCA7Civlm73pmpvlsZXplosgPiBrb2t1c2FpdGVua2FpXCA7CivlubTlip/luo/liJcgPiBuZW5rb3Vqb3JldHN1XCA7CivllYbmpa3pg73luIIgPiBzaG91Z3lvdXRvc2hpXCA7CivkuK3pgJTpgIDlraYgPiBjaHV1dG90YWlnYWt1XCA7CivlhbHlkIzkvJroposgPiBreW91ZG91a2Fpa2VuXCA7CivmhrLms5XlrabogIUgPiBrZW5wb3VnYWt1c2hhXCA7CivmgKXou6Lnm7TkuIsgPiBreXV1dGVuY2hva2thXCA7Civljp/lrZDniIblvL4gPiBnZW5zaGliYWt1ZGFuXCA7CivnmbvlsbHpiYTpgZMgPiB0b3phbnRldHN1ZG91XCA7CivniannkIbljJblraYgPiBidXRzdXJpa2FnYWt1XCA7CivntabmsLTliLbpmZAgPiBreXV1c3Vpc2VpZ2VuXCA7CivmnJ3prq7miKbkuokgPiBjaG91c2Vuc2Vuc291XCA7Civlq4zmsJfnlJ/niakgPiBrZW5raXNlaWJ1dHN1XCA7Civpgbjmip7nirbmhYsgPiBzZW50YWt1am91dGFpXCA7Civpq5jls7DlhavluqcgPiBrb3Vob3VoYWNoaXphXCA7CivkuI3mtojljJbniakgPiBmdXNob3VrYWJ1dHN1XCA7Civms5XnmoTmlofmm7ggPiBob3V0ZWtpYnVuc2hvXCA7Civnp5jlr4bpgbjmjJkgPiBoaW1pdHN1c2Vua3lvXCA7CivlnLDnkIPljJblraYgPiBjaGlreXV1a2FnYWt1XCA7CivmlrDnhrHluK/ljLogPiBzaGluJyduZXR0YWlrdVwgOwor57WQ5ama5oyH6LyqID4ga2Vra29uJyd5dWJpd2FcIDsKK+WWhOmao+WPi+WlvSA+IHplbnJpbicneXV1a291XCA7Civlj5flj5bmiYvlvaIgPiB1a2V0b3JpdGVnYXRhXCA7CivmsbrnrpfloLHlkYogPiBrZXNzYW5ob3Vrb2t1XCA7Civlv4PnkIblrabogIUgPiBzaGlucmlnYWt1c2hhXCA7Civoq5bnkIblvaLlvI8gPiByb25yaWtlaXNoaWtpXCA7CivkvY7poK3lubPouqsgPiB0ZWl0b3VoZWlzaGluXCA7Civmt7flkIjovrLmpa0gPiBrb25nb3Vub3VneW91XCA7CivmlofoirjkvZzlk4EgPiBidW5nZWlzYWt1aGluXCA7CivmnInplpHpmo7ntJogPiB5dXVrYW5rYWlreXV1XCA7Civlj4vlpb3mnaHntIQgPiB5dXVrb3Vqb3V5YWt1XCA7CivliYflpKnljrvnp4EgPiBzb2t1dGVua3lvc2hpXCA7Civlhpnlrp/kuLvnvqkgPiBzaGFqaXRzdXNodWdpXCA7Civlm73pmpvluILloLQgPiBrb2t1c2Fpc2hpam91XCA7Civkuozph43nlJ/mtLsgPiBuaWp1dXNlaWthdHN1XCA7Civoh6jmqZ/nm67mqJkgPiByaW5raW1va3VoeW91XCA7CivllYbmpa3nmbvoqJggPiBzaG91Z3lvdXRvdWtpXCA7Civpu4ToibLkurrnqK4gPiBvdXNob2t1amluc2h1XCA7Civlkajms6LlpInoqr8gPiBzaHV1aGFoZW5jaG91XCA7CivmrKDpmaXllYblk4EgPiBrZWtrYW5zaG91aGluXCA7CivlvpPlsZ7lpInmlbAgPiBqdXV6b2t1aGVuc3V1XCA7Civml6LntITooajnj74gPiBraXlha3VoeW91Z2VuXCA7CivkuI3oia/lsJHlubQgPiBmdXJ5b3VzaG91bmVuXCA7CivmuKzph4/mioDluKsgPiBzb2t1cnlvdWdpc2hpXCA7Civmo67nvoXkuIfosaEgPiBzaGlucmFiYW5zaG91XCA7CivnlKPmpa3mp4vpgKAgPiBzYW5neW91a291em91XCA7CivmrKflt57oq7jlm70gPiBvdXNodXVzaG9rb2t1XCA7CivpgJrli6TlnLDnjYQgPiB0c3V1a2luamlnb2t1XCA7CivmmLzplpPkurrlj6MgPiBjaHV1a2Fuamlua291XCA7CivmgKfmoLzliKTmlq0gPiBzZWlrYWt1aGFuZGFuXCA7Civkv6HpoLzplqLkv4IgPiBzaGlucmFpa2Fua2VpXCA7CivlkIzmnJ/pgJrkv6EgPiBkb3VraXRzdXVzaGluXCA7CivkuInph43nhKbngrkgPiBzYW5qdXVzaG91dGVuXCA7CivmipXnpajnt4/mlbAgPiB0b3VoeW91c291c3V1XCA7CivlpKfluYXliLfmlrAgPiBvb2hhYmFzYXNzaGluXCA7CivliIfmlq3mgqPogIUgPiBzZXRzdWRhbmthbmphXCA7CivoopbmiYvlgo3oprMgPiBzaHV1c2h1Ym91a2FuXCA7Civmi43miYvllp3ph4cgPiBoYWt1c2h1a2Fzc2FpXCA7CivkvZzmpa3ku67oqqwgPiBzYWd5b3VrYXNldHN1XCA7CivntYzmuIjmiJDplbcgPiBrZWl6YWlzZWljaG91XCA7CivlkIjmiJDlrp3nn7MgPiBnb3VzZWlob3VzZWtpXCA7CivntZDnt6DntYTnuZQgPiBrZXR0ZWlzb3NoaWtpXCA7CivlhobpjJDmm7Lnt5ogPiBlbnN1aWt5b2t1c2VuXCA7CivogZbkvZPmi53poJggPiBzZWl0YWloYWlyeW91XCA7CivlurbmsJHph5Hono0gPiBzaG9taW5raW4nJ3l1dVwgOwor5L2T56mN5oq15oqXID4gdGFpc2VraXRlaWtvdVwgOwor5Y2U5ZCM57WE5ZCIID4ga3lvdWRvdWt1bWlhaVwgOwor5YWI5L2P5rCR5pePID4gc2VuanV1bWluem9rdVwgOwor57Wx5LiA5oim57eaID4gdG91aXRzdXNlbnNlblwgOwor5ZCM5pmC6YCa6KizID4gZG91aml0c3V1eWFrdVwgOwor5ZGo55+l5b655bqVID4gc2h1dWNoaXRldHRlaVwgOwor6Imx6Zuj6L6b6IumID4ga2FuJyduYW5zaGlua3VcIDsKK+aUv+WFmuWGhemWoyA+IHNlaXRvdW5haWtha3VcIDsKK+ePvuWcsOWgseWRiiA+IGdlbmNoaWhvdWtva3VcIDsKK+aHuOiznuWVj+mhjCA+IGtlbnNob3Vtb25kYWlcIDsKK+WCreiIueWlkee0hCA+IHlvdXNlbmtlaXlha3VcIDsKK+S7iuS4iuWkqeeahyA+IGtpbmpvdXRlbicnbm91XCA7Civku5bopprnl4fnirYgPiB0YWtha3VzaG91am91XCA7CivmrKDpo5/lhZDnq6UgPiBrZXNzaG9rdWppZG91XCA7CivlqK/mpb3nlarntYQgPiBnb3Jha3ViYW5ndW1pXCA7Civnsr7npZ7ljLvlraYgPiBzZWlzaGluJydpZ2FrdVwgOwor5YaF5a656Ki85piOID4gbmFpeW91c2hvdW1laVwgOwor5Ye65riv5YGc5q2iID4gc2h1a2tvdXRlaXNoaVwgOwor5aSr5amm57SE5p2fID4gZnV1ZnV5YWt1c29rdVwgOwor5peF6KGM5qWt6ICFID4gcnlva291Z3lvdXNoYVwgOwor5L2/5b6S5L+h57WMID4gc2hpdG9zaGlua3lvdVwgOwor5aSW6LOH5bCO5YWlID4gZ2Fpc2hpZG91bnl1dVwgOwor5oiQ5Lq65pWZ6IKyID4gc2Vpamlua3lvdWlrdVwgOwor5YWs5byP5Li7576pID4ga291c2hpa2lzaHVnaVwgOwor5LiA542y5Y2D6YeRID4gaWtrYWtrdXNlbmtpblwgOwor6KSH5pWw5qWt5YuZID4gZnVrdXN1dWd5b3VtdVwgOwor56aB5qyy5Li7576pID4ga2luJyd5b2t1c2h1Z2lcIDsKK+epuuilsuitpuWgsSA+IGt1dXNodXVrZWlob3VcIDsKK+eUo+alreWGjeeUnyA+IHNhbmd5b3VzYWlzZWlcIDsKK+izg+iyuOS+oeagvCA+IGNoaW50YWlrYWtha3VcIDsKK+aIpumXmOWJjeWTqCA+IHNlbnRvdXplbnNob3VcIDsKK+S4gOiogOS4gOihjCA+IGljaGlnZW4nJ2lra291XCA7CivlkLnlpY/mpb3lm6MgPiBzdWlzb3VnYWt1ZGFuXCA7Civnm7Tnt5rot53pm6IgPiBjaG9rdXNlbmt5b3JpXCA7Civov5HopqrntZDlqZogPiBraW5zaGlua2Vra29uXCA7CivnsbPoi7Hku4/omK0gPiBiZWllaWJ1dHN1cmFuXCA7CivlhbHlkIzkvZzmpa0gPiBreW91ZG91c2FneW91XCA7CivmuJvlj43mlL/nrZYgPiBnZW50YW5zZWlzYWt1XCA7Civlv4PnkIbkvZzmiKYgPiBzaGlucmlzYWt1c2VuXCA7Civlv4Poh5Pnp7vmpI0gPiBzaGluem91aXNob2t1XCA7CivmnInpmZDosqzku7sgPiB5dXVnZW5zZWtpbmluXCA7CivntYTnuZTlho3nt6ggPiBzb3NoaWtpc2FpaGVuXCA7Civnpo/pn7PmlZnkvJogPiBmdWt1aW5reW91a2FpXCA7CivplqLkv4Llia/oqZ4gPiBrYW5rZWlmdWt1c2hpXCA7Civlj7Lmlpnnt6jnuoIgPiBzaGlyeW91aGVuc2FuXCA7CivnjJ/lrpjpgYvli5UgPiByeW91a2FuJyd1bmRvdVwgOwor6IKJ5L2T5Yq05YONID4gbmlrdXRhaXJvdWRvdVwgOwor5Y+C54Wn5paH54yuID4gc2Fuc2hvdWJ1bmtlblwgOwor6Z+z5qW955uj552jID4gb25nYWt1a2FudG9rdVwgOwor5bmz6Lqr5L2O6aCtID4gaGVpc2hpbnRlaXRvdVwgOwor5YWx55Sj5YiG5a2QID4ga3lvdXNhbmJ1bnNoaVwgOwor5LqI57SE5Ye654mIID4geW95YWt1c2h1cHBhblwgOwor54Kt5rC05YyW54mpID4gdGFuc3Vpa2FidXRzdVwgOwor6L+R5Luj5paH5a2mID4ga2luZGFpYnVuZ2FrdVwgOwor5Zyw5pa55a6Y5bqBID4gY2hpaG91a2FuY2hvdVwgOwor5Zub5YiG5LqU6KOCID4gc2hpYnVuZ29yZXRzdVwgOwor57WM5riI5Zue5b6pID4ga2VpemFpa2FpZnVrdVwgOwor5a6f5a2Y5Li7576pID4gaml0c3V6b25zaHVnaVwgOwor5oGS5rip5YuV54mpID4ga291b25kb3VidXRzdVwgOwor6YeO6I+c5LiA55q/ID4geWFzYWloaXRvc2FyYVwgOwor5b2i5byP6KuW55CGID4ga2Vpc2hpa2lyb25yaVwgOwor5aSn5a2m5rWq5Lq6ID4gZGFpZ2FrdXJvdW5pblwgOwor5pqr5a6a5Y2U5a6aID4gemFudGVpa3lvdXRlaVwgOwor5pS+6YCB5aSn5a2mID4gaG91c291ZGFpZ2FrdVwgOwor5rOV5b6L5Yi25bqmID4gaG91cml0c3VzZWlkb1wgOwor5L+h55So6YeR5bqrID4gc2hpbicneW91a2lua29cIDsKK+acieWQjeeEoeWunyA+IHl1dW1laW11aml0c3VcIDsKK+e1gui6q+S8muWToSA+IHNodXVzaGlua2FpaW5cIDsKK+S4ieinkumWouaVsCA+IHNhbmtha3VrYW5zdXVcIDsKK+eskeatouWNg+S4hyA+IHNob3VzaGlzZW5iYW5cIDsKK+aWh+WtpuWNmuWjqyA+IGJ1bmdha3VoYWthc2VcIDsKK+W6reWFiOebuOWgtCA+IG5pd2FzYWtpc291YmFcIDsKK+a2iOiyu+iAheWBtCA+IHNob3VoaXNoYWdhd2FcIDsKK+eyvuelnuani+mAoCA+IHNlaXNoaW5rb3V6b3VcIDsKK+mJhOmqqOW3peS6iyA+IHRla2tvdHN1a291amlcIDsKK+WbveWIqeawkeemjyA+IGtva3VyaW1pbnB1a3VcIDsKK+i7veS9u+a1ruiWhCA+IGtlaWNob3VmdWhha3VcIDsKK+ayluepjeW5s+mHjiA+IGNodXVzZWtpaGVpeWFcIDsKK+mFqui+suijveWTgSA+IHJha3Vub3VzZWloaW5cIDsKK+isnee9quW6g+WRiiA+IHNoYXphaWtvdWtva3VcIDsKK+WvjOWbveW8t+WFtSA+IGZ1a29rdWt5b3VoZWlcIDsKK+WklumDreWbo+S9kyA+IGdhaWtha3VkYW50YWlcIDsKK+WFseWQjOS8gealrSA+IGt5b3Vkb3VraWd5b3VcIDsKK+majue0muekvuS8miA+IGthaWt5dXVzaGFrYWlcIDsKK+WvvuWkluaUv+etliA+IHRhaWdhaXNlaXNha3VcIDsKK+eyvumciuS/oeS7sCA+IHNlaXJlaXNoaW5rb3VcIDsKK++8p++8oueQhuirliA+IGppXCDMhGJpXCDMhHJpcm9uXCA7CivmmKXpoqjpp5jolakgPiBzaHVucHV1dGFpdG91XCA7CivmrbvliJHln7fooYwgPiBzaGlrZWlzaGlra291XCA7CivkuozogIXmip7kuIAgPiBuaXNoYXRha3VpdHN1XCA7CivphbjmgKflj43lv5wgPiBzYW5zZWloYW4nJ25vdVwgOwor5rC06YGT5paZ6YeRID4gc3VpZG91cnlvdWtpblwgOwor56m65rCX5Yqb5a2mID4ga3V1a2lyaWtpZ2FrdVwgOwor5ZWG5aOy5rCX6LOqID4gc2hvdWJhaWthdGFnaVwgOwor6KiY6Yyy5paH5a2mID4ga2lyb2t1YnVuZ2FrdVwgOwor5b285pa55q2k5pa5ID4gYWNoaXJha29jaGlyYVwgOwor56uL6Lqr5Ye65LiWID4gcmlzc2hpbnNodXNzZVwgOwor5q2j6YeR6YqA6KGMID4gc2hvdWtpbmdpbmtvdVwgOwor5YWx5riI5LqL5qWtID4ga3lvdXNhaWppZ3lvdVwgOwor5YWI6KGM5oqA6KGTID4gc2Vua291Z2lqdXRzdVwgOwor5Zuz5pu455uu6YyyID4gdG9zaG9tb2t1cm9rdVwgOwor6Ki85oug6Zqg5ruFID4gc2hvdWtvaW5tZXRzdVwgOwor56u25LqJ6Zai5L+CID4ga3lvdXNvdWthbmtlaVwgOwor5LqL5YmN5qSc6ZayID4gaml6ZW5rZW4nJ2V0c3VcIDsKK+ihjOaUv+WHpuWIhiA+IGd5b3VzZWlzaG9idW5cIDsKK+WFqOmdouW6g+WRiiA+IHplbm1lbmtvdWtva3VcIDsKK+WbveWLmemVt+WumCA+IGtva3VtdWNob3VrYW5cIDsKK+eyvuelnueXhemZoiA+IHNlaXNoaW5ieW91aW5cIDsKK+Wbm+WNgeS5neaXpSA+IHNoaWp1dWt1bmljaGlcIDsKK+adk+WtkOWumuimjyA+IHNoYWt1c2hpam91Z2lcIDsKK+WPr+WhkeeJqeizqiA+IGthc29idXNzaGl0c3VcIDsKK+WNiui+suWNiua8gSA+IGhhbicnbm91aGFuZ3lvXCA7CivmmrTpo7LmmrTpo58gPiBib3VpbmJvdXNob2t1XCA7CivnoJTnqbbliIbph44gPiBrZW5reXV1YnVuJyd5YVwgOwor5Lq65Y+j5a+G5bqmID4gamlua291bWl0c3Vkb1wgOwor5Lq66Lqr5aOy6LK3ID4gamluc2hpbmJhaWJhaVwgOwor5q665Lq65pyq6YGCID4gc2F0c3VqaW5taXN1aVwgOwor6Laz5Yip5pmC5LujID4gYXNoaWthZ2FqaWRhaVwgOwor5by+552A6Led6ZuiID4gZGFuY2hha3VreW9yaVwgOwor5YuV54mp5qSc5p+7ID4gZG91YnV0c3VrZW5zYVwgOwor6Jas6aSM55mC5rOVID4geWFrdWppcnlvdWhvdVwgOwor5Lq66ZaT5Zu95a6dID4gbmluZ2Vua29rdWhvdVwgOwor57eK6KaB5Zyw5b2iID4ga2luJyd5b3VjaGlrZWlcIDsKK+W4guWgtOaIkOmVtyA+IHNoaWpvdXNlaWNob3VcIDsKK+aMh+WQjeaKleelqCA+IHNoaW1laXRvdWh5b3VcIDsKK+WRiei2iuWQjOiInyA+IGdvZXRzdWRvdXNodXVcIDsKK+WuheWcsOmAoOaIkCA+IHRha3VjaGl6b3VzZWlcIDsKK+eyvuelnuWKtOWDjSA+IHNlaXNoaW5yb3Vkb3VcIDsKK+WutuaXj+ioiOeUuyA+IGthem9rdWtlaWtha3VcIDsKK+mWi+WPo+S4gOeVqiA+IGthaWtvdWljaGliYW5cIDsKK+ebtOezu+WNkeWxniA+IGNob2trZWloaXpva3VcIDsKK+WJsuizpuaWueW8jyA+IGthcHB1aG91c2hpa2lcIDsKK+WLpOWKtOWkp+ihhiA+IGtpbnJvdXRhaXNodXVcIDsKK+acquWPjuWFpemHkSA+IG1pc2h1dW55dXVraW5cIDsKK+miqOS/l+WWtualrSA+IGZ1dXpva3VlaWd5b3VcIDsKK+awkeS/l+mfs+alvSA+IG1pbnpva3Vvbmdha3VcIDsKK+a1t+awtOa1tOWgtCA+IGthaXN1aXlva3Vqb3VcIDsKK+mAo+WQiOS9nOaIpiA+IHJlbmdvdXNha3VzZW5cIDsKK+S4oeiTi+aZguioiCA+IHJ5b3VidXRhZG9rZWlcIDsKK+S4u+Wuoui7ouWAkiA+IHNodWtha3V0ZW50b3VcIDsKK+aQjeebiuWLmOWumiA+IHNvbicnZWtpa2Fuam91XCA7Civli5XlipvpmY3kuIsgPiBkb3VyeW9rdWtvdWthXCA7CivkuInop5Lpl5jkuokgPiBzYW5rYWt1dG91c291XCA7CivpgIDlrablh6bliIYgPiB0YWlnYWt1c2hvYnVuXCA7Civlrp/pqJPmnZDmlpkgPiBqaWtrZW56YWlyeW91XCA7Civph43opoHnlKPmpa0gPiBqdXV5b3VzYW5neW91XCA7CivmtrLkvZPnh4PmlpkgPiBla2l0YWluZW5yeW91XCA7CivkvJ3pgZPpm4bkvJogPiBkZW5kb3VzaHV1a2FpXCA7CivlhavpnaLlha3oh4IgPiBoYWNoaW1lbnJvcHBpXCA7CivmiY3msJfnhaXnmbogPiBzYWlraWthbnBhdHN1XCA7CivmhJ/mg4Xooajnj74gPiBrYW5qb3VoeW91Z2VuXCA7CivkurrnqK7lt67liKUgPiBqaW5zaHVzYWJldHN1XCA7Civoi7Hlm73nmbrpn7MgPiBlaWtva3VoYXRzdW9uXCA7CivnhKHpmZDmlbDliJcgPiBtdWdlbnN1dXJldHN1XCA7CivmgqrpgIbnhKHpgZMgPiBha3VneWFrdW11ZG91XCA7Civnhp/mha7mlq3ooYwgPiBqdWt1cnlvZGFua291XCA7Civnm7TkuqTluqfmqJkgPiBjaG9ra291emFoeW91XCA7CivljJflpKrlubPmtIsgPiBraXRhdGFpaGVpeW91XCA7CivnlLflo7DlkIjllLEgPiBkYW5zZWlnYXNzaG91XCA7Civog4Pohbjnl4XlraYgPiBpY2hvdWJ5b3VnYWt1XCA7CivkuInop5LplqLkv4IgPiBzYW5rYWt1a2Fua2VpXCA7CivmsJHml4/pn7Pmpb0gPiBtaW56b2t1b25nYWt1XCA7CivljZjni6zkvJroposgPiB0YW5kb2t1a2Fpa2VuXCA7CivosqHnlKPnm7jntpogPiB6YWlzYW5zb3V6b2t1XCA7CivkuIrmmbrlpKflraYgPiBqb3VjaGlkYWlnYWt1XCA7Civlg6flurXnlJ/mtLsgPiBzb3VhbnNlaWthdHN1XCA7Civms5XlvovnlKjoqp4gPiBob3VyaXRzdXlvdWdvXCA7Civpm4zpm4Tpgbjmip4gPiBzaGl5dXVzZW50YWt1XCA7Civnmb7oirHnuZrkubEgPiBoeWFra2FyeW91cmFuXCA7Civpn7Pmpb3nmYLms5UgPiBvbmdha3VyeW91aG91XCA7CivkvY/msJHnmbvpjLIgPiBqdXVtaW50b3Vyb2t1XCA7Civmlq3lsaTlhpnnnJ8gPiBkYW5zb3VzaGFzaGluXCA7CivljaDpoJjlnLDluK8gPiBzZW5yeW91Y2hpdGFpXCA7Civolqzlk4HkvJrnpL4gPiB5YWt1aGluZ2Fpc2hhXCA7Civlh7rlj6Poqr/mn7sgPiBkZWd1Y2hpY2hvdXNhXCA7Civog73li5XlhY3nlqsgPiBub3Vkb3VtZW4nJ2VraVwgOwor5Zyo55WZ6YKm5Lq6ID4gemFpcnl1dWhvdWppblwgOwor6bqm6JeB57Sw5belID4gbXVnaXdhcmFzYWlrdVwgOwor5bel6Iq4576O6KGTID4ga291Z2VpYmlqdXRzdVwgOwor6Iiq56m65pS75pKDID4ga291a3V1a291Z2VraVwgOwor6YeN6YeP6YG45omLID4ganV1cnlvdXNlbnNodVwgOwor6LWk56uL57696J22ID4gYWthdGF0ZWhhY2hvdVwgOwor5oSb6bOl6YCx6ZaTID4gYWljaG91c2h1dWthblwgOwor5bel5qWt5YyW5a2mID4ga291Z3lvdWthZ2FrdVwgOwor5oqA6KGT5o+Q5pC6ID4gZ2lqdXRzdXRlaWtlaVwgOwor5Lit5oCn5a2Q5pifID4gY2h1dXNlaXNoaXNlaVwgOwor5YWs5YWx5LqL5qWtID4ga291a3lvdWppZ3lvdVwgOwor5LiK6LaK5pys57eaID4gam91ZXRzdWhvbnNlblwgOwor54Sh5YSf5aWR57SEID4gbXVzaG91a2VpeWFrdVwgOwor6ZaD5YWJ6Zu755CDID4gc2Vua291ZGVua3l1dVwgOwor5Zu957GN6KiA6KqeID4ga29rdXNla2lnZW5nb1wgOwor5a6a5rip5YuV54mpID4gdGVpb25kb3VidXRzdVwgOwor56m65YmN57W25b6MID4ga3V1emVuemV0c3Vnb1wgOwor5q2m5Yqb5aSW5LqkID4gYnVyeW9rdWdhaWtvdVwgOwor5oi457GN5oqE5pysID4ga29zZWtpc2hvdWhvblwgOwor5pyd6a6u5Y2K5bO2ID4gY2hvdXNlbmhhbnRvdVwgOwor6Z2e5bi45Y+s6ZuGID4gaGlqb3VzaG91c2h1dVwgOwor5YWo6Iis5YmN5ZOoID4gemVucGFuemVuc2hvdVwgOwor5aSn5LmX5LuP5pWZID4gZGFpam91YnVra3lvdVwgOwor5YiG5p6Q6Kmm6aiTID4gYnVuc2VraXNoaWtlblwgOwor5bm96ZyK5bGL5pW3ID4geXV1cmVpeWFzaGlraVwgOwor5pyJ55Sj6ZqO57SaID4geXV1c2Fua2Fpa3l1dVwgOwor5qip5Yqb5pS/5rK7ID4ga2Vucnlva3VzZWlqaVwgOwor6ISF6L+r6Zu76KmxID4ga3lvdWhha3VkZW53YVwgOwor6Ii56I236Ki85Yi4ID4gZnVuYW5pc2hvdWtlblwgOwor5omL5peX5L+h5Y+3ID4gdGViYXRhc2hpbmdvdVwgOwor5qCE6aSK5aSx6Kq/ID4gZWl5b3VzaGl0Y2hvdVwgOwor5L2c5rOB5oyH5pWwID4gc2Fra3lvdXNoaXN1dVwgOwor55u45LqS6YCa5L+hID4gc291Z290c3V1c2hpblwgOwor6KGo5bGk6Zuq5bSpID4gaHlvdXNvdW5hZGFyZVwgOwor54G95a6z5a++562WID4gc2FpZ2FpdGFpc2FrdVwgOwor5LqL5a6f6Kq/5p+7ID4gamlqaXRzdWNob3VzYVwgOwor5pel57WM5paw6IGeID4gbmlra2Vpc2hpbmJ1blwgOwor5Lit6ZaT6YG45oyZID4gY2h1dWthbnNlbmt5b1wgOwor5biC6ZW36YG45oyZID4gc2hpY2hvdXNlbmt5b1wgOwor5rKI6ZmN5rW35bK4ID4gY2hpbmtvdWthaWdhblwgOwor56S+5Lya56aP56WJID4gc2hha2FpZnVrdXNoaVwgOwor6KuW5Yqf6KGM6LOeID4gcm9ua291a291c2hvdVwgOwor5a6f6Le16Lqs6KGMID4gamlzc2Vua3l1dWtvdVwgOwor5q2j5Ymv5LqM6YCaID4gc2VpZnVrdW5pdHN1dVwgOwor5Lqk5oSf56We57WMID4ga291a2Fuc2hpbmtlaVwgOwor5raI6LK76Z2p5ZG9ID4gc2hvdWhpa2FrdW1laVwgOwor5bCC5Lu76Kyb5birID4gc2VuJyduaW5rb3VzaGlcIDsKK+Wkp+mHj+eUn+eUoyA+IHRhaXJ5b3VzZWlzYW5cIDsKK+acgOmrmOapn+WvhiA+IHNhaWtvdWtpbWl0c3VcIDsKK+euoeW8pualveazlSA+IGthbmdlbmdha3Vob3VcIDsKK+aWsOWTgeWQjOanmCA+IHNoaW5waW5kb3V5b3VcIDsKK+WCmeiNkuiyr+iThCA+IGJpa291Y2hvY2hpa3VcIDsKK+iWhOW/l+W8seihjCA+IGhha3VzaGlqYWtrb3VcIDsKK+WLpOWKtOmajue0miA+IGtpbnJvdWthaWt5dXVcIDsKK+aXpeWNsOmWouS/giA+IG5pY2hpaW5rYW5rZWlcIDsKK+mVt+acn+ioiOeUuyA+IGNob3VraWtlaWtha3VcIDsKK+S4jeaZguedgOmZuCA+IGZ1amljaGFrdXJpa3VcIDsKK+aOkuazhOWZqOWumCA+IGhhaXNldHN1a2lrYW5cIDsKK+iLseaWh+ino+mHiCA+IGVpYnVua2Fpc2hha3VcIDsKK+WFjeiyrOadoemghSA+IG1lbnNla2lqb3Vrb3VcIDsKK+mJhOmBk+e3mui3ryA+IHRldHN1ZG91c2Vucm9cIDsKK+aUu+aSg+aFi+WLoiA+IGtvdWdla2l0YWlzZWlcIDsKK+Wumuacn+aYh+e1piA+IHRlaWtpc2hvdWt5dXVcIDsKK+iomOi/sOaWh+azlSA+IGtpanV0c3VidW5wb3VcIDsKK+iHo+exjemZjeS4iyA+IHNoaW5zZWtpa291a2FcIDsKK+eCremFuOmjsuaWmSA+IHRhbnNhbicnaW5yeW91XCA7CivluILloLTmi6HlpKcgPiBzaGlqb3VrYWt1ZGFpXCA7Civnsr7lr4bmqZ/morAgPiBzZWltaXRzdWtpa2FpXCA7CivmqZ/li5Xorablr58gPiBraWRvdWtlaXNhdHN1XCA7CivlubTplpPlj47nm4ogPiBuZW5rYW5zaHV1ZWtpXCA7Civku7Loo4Hoo4HlrpogPiBjaHV1c2Fpc2FpdGVpXCA7CivlgbXlr5/opoHlk6EgPiB0ZWlzYXRzdXlvdWluXCA7Civmlofol53mmKXnp4sgPiBidW5nZWlzaHVuanV1XCA7CivkurrlvaLoip3lsYUgPiBuaW5neW91c2hpYmFpXCA7CivmsLTkuK3nnLzpj6EgPiBzdWljaHV1bWVnYW5lXCA7Civlhazluo/oia/kv5cgPiBrb3Vqb3J5b3V6b2t1XCA7CivlqZrliY3kuqTmuIkgPiBrb256ZW5rb3VzaG91XCA7CivlpKrpmb3pu5LngrkgPiB0YWl5b3Vrb2t1dGVuXCA7CivkuIrlvqHkuIDkurogPiBrYW1pZ29pY2hpbmluXCA7CivkuLvopoHlt6Xmpa0gPiBzaHV5b3Vrb3VneW91XCA7CivkuIvnrYnli5XniakgPiBrYXRvdWRvdWJ1dHN1XCA7Civoh6XolqrlmJfog4YgPiBnYXNoaW5zaG91dGFuXCA7CivoqLrnmYLmlK/mj7QgPiBzaGlucnlvdXNoaWVuXCA7Civou6LlnLDnmYLppIogPiB0ZW5jaGlyeW91eW91XCA7CivkuIfog73pgbjmiYsgPiBiYW4nJ25vdXNlbnNodVwgOwor5pWZ5Lya6Z+z5qW9ID4ga3lvdWthaW9uZ2FrdVwgOwor5Y2D6LyJ5LiA6YGHID4gc2VuemFpaWNoaWd1dVwgOwor5aOy6LK35aWR57SEID4gYmFpYmFpa2VpeWFrdVwgOwor5L2P5a6F5Zyw5bivID4ganV1dGFrdWNoaXRhaVwgOwor5rib6YCf6KOF572uID4gZ2Vuc29rdXNvdWNoaVwgOwor5L2P5a6F5ZWP6aGMID4ganV1dGFrdW1vbmRhaVwgOwor5YWN55ar6KGA5riFID4gbWVuJydla2lrZXNzZWlcIDsKK+aguOWPjeW/nOeCiSA+IGtha3VoYW4nJ25vdXJvXCA7CivmlL7lsITnt5rlraYgPiBob3VzaGFzZW5nYWt1XCA7CivmtYHpgJrntYzot68gPiByeXV1dHN1dWtlaXJvXCA7CivlsIvluLjkuIDmp5ggPiBqaW5qb3VpY2hpeW91XCA7Civlm73mnInosqHnlKMgPiBrb2t1eXV1emFpc2FuXCA7CivluILmsJHpmo7ntJogPiBzaGltaW5rYWlreXV1XCA7CivoqIDoqp7nn6XorZggPiBnZW5nb2NoaXNoaWtpXCA7CivlhazlhbHmlL7pgIEgPiBrb3VreW91aG91c291XCA7CivmlpHnirbntYTnuZQgPiBoYW5qb3Vzb3NoaWtpXCA7Civph43niIbmkoPmqZ8gPiBqdXViYWt1Z2VraWtpXCA7CivlqZrlpJbkuqTmuIkgPiBrb25nYWlrb3VzaG91XCA7Civku7Loo4Hoo4HliKQgPiBjaHV1c2Fpc2FpYmFuXCA7Civkvq/niLXlpKvkurogPiBrb3VzaGFrdWZ1amluXCA7CivmnInoibLph47oj5wgPiB5dXVzaG9rdXlhc2FpXCA7Civpm4blm6PoqLToqJ8gPiBzaHV1ZGFuc29zaG91XCA7CivkuIDmrKHnlKPmpa0gPiBpY2hpamlzYW5neW91XCA7Civnt7Tnv5LkuI3otrMgPiByZW5zaHV1YnVzb2t1XCA7CivllYboiLnlrabmoKEgPiBzaG91c2VuZ2Fra291XCA7Civpuqbol4HonLvom4kgPiBtdWdpd2FyYXRvbmJvXCA7CivmnInpmZDpm4blkIggPiB5dXVnZW5zaHV1Z291XCA7Civov73liqDmlpnph5EgPiB0c3Vpa2FyeW91a2luXCA7CivOoOS4remWk+WtkCA+IHBhaWNodXVrYW5zaGlcIDsKK+mBoOmalOaVmeiCsiA+IGVua2FrdWt5b3Vpa3VcIDsKK+iEs+iEiumrhOa2siA+IG5vdXNla2l6dWlla2lcIDsKK+adseilv+WNl+WMlyA+IHRvdXphaW5hbmJva3VcIDsKK+ioseWuuee3mumHjyA+IGt5b3lvdXNlbnJ5b3VcIDsKK+ato+acreWApOautSA+IHNob3VmdWRhbmVkYW5cIDsKK+W3ruWIpemWoueojiA+IHNhYmV0c3VrYW56ZWlcIDsKK+S4reetieWtpuagoSA+IGNodXV0b3VnYWtrb3VcIDsKK+euoeW8pualveWboyA+IGthbmdlbmdha3VkYW5cIDsKK+WvhOeUn+eUn+eJqSA+IGtpc2Vpc2VpYnV0c3VcIDsKK+S4u+aoqeWbnuW+qSA+IHNodWtlbmthaWZ1a3VcIDsKK+S4oemDqOelnumBkyA+IHJ5b3VidXNoaW50b3VcIDsKK+e1gualreaZgumWkyA+IHNodXVneW91amlrYW5cIDsKK+e1ueW4g+S4gOW3uyA+IGtlbnB1aGl0b21ha2lcIDsKK+mBjuWcp+WvhuavlCA+IGthYXRzdW1pdHN1aGlcIDsKK+iHqueEtumBuOaKniA+IHNoaXplbnNlbnRha3VcIDsKK+WPjeW/nOmAn+W6piA+IGhhbicnbm91c29rdWRvXCA7CivlgbXlr5/ooZvmmJ8gPiB0ZWlzYXRzdWVpc2VpXCA7CivmraPlia/orbDplbcgPiBzZWlmdWt1Z2ljaG91XCA7CivnpZ7liY3ntZDlqZogPiBzaGluemVua2Vra29uXCA7Civms5XnmoTmiYvmrrUgPiBob3V0ZWtpc2h1ZGFuXCA7CivkvZzmpa3poJjln58gPiBzYWd5b3VyeW91aWtpXCA7CivlubTph5HoqLzmm7ggPiBuZW5raW5zaG91c2hvXCA7CivkuqTpgJrlpqjlrrMgPiBrb3V0c3V1Ym91Z2FpXCA7CivnlLrmnZHlkIjkvbUgPiBjaG91c29uZ2FwcGVpXCA7CivmlZnkvJrml4vms5UgPiBreW91a2Fpc2VucG91XCA7CivluZXol6nkvZPliLYgPiBiYWt1aGFudGFpc2VpXCA7CivnrKzkuIDljbDosaEgPiBkYWlpY2hpaW5zaG91XCA7CivnnJ/nqbrljIXoo4UgPiBzaGlua3V1aG91c291XCA7Civnm6Pmn7voqLzot6EgPiBrYW5zYXNob3VzZWtpXCA7CivoqpjlsI7pm7vmtYEgPiB5dXVkb3VkZW5yeXV1XCA7Civlvqnml6fkvZzmpa0gPiBmdWtreXV1c2FneW91XCA7CivmkI3lrrPos6DlhJ8gPiBzb25nYWliYWlzaG91XCA7Civmg7Plg4/lporlqKAgPiBzb3V6b3VuaW5zaGluXCA7CivomZrlv4Plnabmh5AgPiBreW9zaGludGFua2FpXCA7CivogJDpnIfmp4vpgKAgPiB0YWlzaGlua291em91XCA7CivmnInpmZDntJrmlbAgPiB5dXVnZW5reXV1c3V1XCA7Civlm73lnJ/oqIjnlLsgPiBrb2t1ZG9rZWlrYWt1XCA7CivnlJ/lrZjnq7bkuokgPiBzZWl6b25reW91c291XCA7CivluILmsJHpnanlkb0gPiBzaGltaW5rYWt1bWVpXCA7CivlpKfntbHpoJjpgbggPiBkYWl0b3VyeW91c2VuXCA7Civoo5znv5LmlZnogrIgPiBob3NodXVreW91aWt1XCA7Civlj7jku6TplbflrpggPiBzaGlyZWljaG91a2FuXCA7Civos4Pph5HkvZPns7sgPiBjaGluZ2ludGFpa2VpXCA7CivlhajkurrmlZnogrIgPiB6ZW5qaW5reW91aWt1XCA7CivlrpjmiL/plbflrpggPiBrYW5ib3VjaG91a2FuXCA7CivkvIHmpa3np5jlr4YgPiBraWd5b3VoaW1pdHN1XCA7Civmrrrkurrkuovku7YgPiBzYXRzdWppbmppa2VuXCA7Civlh7bmgqrniq/nvaogPiBreW91YWt1aGFuemFpXCA7CivlpKnnhLbos4fmupAgPiB0ZW4nJ25lbnNoaWdlblwgOwor55m+5aeT5LiA5o+GID4gaHlha3VzaG91aWtraVwgOwor57eP5ZCI5aSn5a2mID4gc291Z291ZGFpZ2FrdVwgOwor5LuP6aCC5bCK5YudID4gYnVjaG91c29uc2hvdVwgOwor5Y2D5beu5LiH5YilID4gc2Vuc2FiYW5iZXRzdVwgOwor57ay54q257WE57mUID4gbW91am91c29zaGlraVwgOwor56ys5LiA6YOo6ZW3ID4gZGFpaWNoaWJ1Y2hvdVwgOwor5rqW5rqW5rG65YudID4ganVuanVua2Vzc2hvdVwgOwor5aSn5ZKM5rCR5pePID4geWFtYXRvbWluem9rdVwgOwor5bm05bm05q2z5q2zID4gbmVuJyduZW5zYWlzYWlcIDsKK+WcsOauu+WkieWLlSA+IGNoaWtha3VoZW5kb3VcIDsKK+iyoeaUv+aUuemdqSA+IHphaXNlaWthaWtha3VcIDsKK+WFseWQjOioiOeulyA+IGt5b3Vkb3VrZWlzYW5cIDsKK+WGmeecn+mbu+mAgSA+IHNoYXNoaW5kZW5zb3VcIDsKK+S4jeiJr+iouuaWrSA+IGZ1cnlvdXNoaW5kYW5cIDsKK+awtOeUo+Wkp+WtpiA+IHN1aXNhbmRhaWdha3VcIDsKK+WNmOW8j+eBq+WxsSA+IHRhbnNoaWtpa2F6YW5cIDsKK+S4gOWIhuS4gOWOmCA+IGljaGlidWljaGlyaW5cIDsKK+Wun+WcsOaknOiovCA+IGppdGNoaWtlbnNob3VcIDsKK+WMl+a4heS6i+WkiSA+IGhva3VzaGluamloZW5cIDsKK+S6uumdoueNo+W/gyA+IG5pbm1lbmp1dXNoaW5cIDsKK+ioiOeUu+autemajiA+IGtlaWtha3VkYW5rYWlcIDsKK+ekvuWToemjn+WggiA+IHNoYWluc2hva3Vkb3VcIDsKK+aNp+iFuee1tuWAkiA+IGhvdWZ1a3V6ZXR0b3VcIDsKK+mDteS+v+aWmemHkSA+IHl1dWJpbnJ5b3VraW5cIDsKK+S6lOWNgeS4ieasoSA+IGdvanV1c2FudHN1Z2lcIDsKK+WEquWLneWKo+aVlyA+IHl1dXNob3VyZXBwYWlcIDsKK+W/q+mAn+WIl+i7iiA+IGthaXNva3VyZXNzaGFcIDsKK+mbo+awkeadoee0hCA+IG5hbm1pbmpvdXlha3VcIDsKK+Wbvemam+aUvumAgSA+IGtva3VzYWlob3Vzb3VcIDsKK+WFreWNgeS9meW3niA+IHJva3VqdXV5b3NodXVcIDsKK+aApeihjOWIl+i7iiA+IGt5dXVrb3VyZXNzaGFcIDsKK+ajruael+WcsOW4ryA+IHNoaW5yaW5jaGl0YWlcIDsKK+mOluWbveaUv+etliA+IHNha29rdXNlaXNha3VcIDsKK+WFt+ixoee+juihkyA+IGd1c2hvdWJpanV0c3VcIDsKK+aHkOefs+aWmeeQhiA+IGthaXNla2lyeW91cmlcIDsKK+ewoeaYk+mjn+WggiA+IGthbicnaXNob2t1ZG91XCA7Civmmpfpu5LlpKfpmbggPiBhbmtva3V0YWlyaWt1XCA7Civlj43li5Xpnanlkb0gPiBoYW5kb3VrYWt1bWVpXCA7Civlha3moLnmuIXmtYQgPiByb2trb25zaG91am91XCA7CivllYbmpa3kuLvnvqkgPiBzaG91Z3lvdXNodWdpXCA7Civkv6HpoLzphrjmiJAgPiBzaGlucmFpam91c2VpXCA7CivlhbHlkIzlo7DmmI4gPiBreW91ZG91c2VpbWVpXCA7CivlibLlvJXliIfnrKYgPiB3YXJpYmlraWtpcHB1XCA7CivlhrfljbTmnJ/plpMgPiByZWlreWFrdWtpa2FuXCA7CivkuZ3mrbvkuIDnlJ8gPiBreXV1c2hpaXNzaG91XCA7CivkuK3oj6/msJHlm70gPiBjaHV1a2FtaW5rb2t1XCA7Civmi6Hlo7Doo4Xnva4gPiBrYWt1c2Vpc291Y2hpXCA7CivpgZPot6/lu7roqK0gPiBkb3Vyb2tlbnNldHN1XCA7CivkurrpgKDlrp3nn7MgPiBqaW56b3Vob3VzZWtpXCA7CivovLjlh7rkv53pmbogPiB5dXNodXRzdWhva2VuXCA7Civlv4Xkv67np5Hnm64gPiBoaXNzaHV1a2Ftb2t1XCA7CivntabkuI7miYDlvpcgPiBreXV1eW9zaG90b2t1XCA7CivmrbTlj7LlrabmtL4gPiByZWtpc2hpZ2FrdWhhXCA7CivnrYnlt67mlbDliJcgPiB0b3VzYXN1dXJldHN1XCA7CivlkJvlrZDosbnlpIkgPiBrdW5zaGloeW91aGVuXCA7CivkuIvooajlj4LnhacgPiBrYWh5b3VzYW5zaG91XCA7Civli6Llipvnr4Tlm7IgPiBzZWlyeW9rdWhhbicnaVwgOwor6YCa6LKo5pS/562WID4gdHN1dWthc2Vpc2FrdVwgOwor54us5Y2g5LyB5qWtID4gZG9rdXNlbmtpZ3lvdVwgOwor54m55qip6ZqO57SaID4gdG9ra2Vua2Fpa3l1dVwgOwor5q2j6KaP5puy57eaID4gc2Vpa2lreW9rdXNlblwgOwor5YKN6IG054Sh5paZID4gYm91Y2hvdW11cnlvdVwgOwor55Sj5qWt6LOH5pysID4gc2FuZ3lvdXNoaWhvblwgOwor56uL55+z6Zu75qmfID4gdGF0ZWlzaGlkZW5raVwgOwor5aSc6ZaT5Lit5a2mID4geWFrYW5jaHV1Z2FrdVwgOwor6LK/5piT5pGp5pOmID4gYm91ZWtpbWFzYXRzdVwgOwor5bm06Lyq5Y+y5a2mID4gbmVucmluc2hpZ2FrdVwgOwor5qmf5qKw57+76KizID4ga2lrYWlob24nJ3lha3VcIDsKK+W+uemgreW+ueWwviA+IHRldHRvdXRldHN1YmlcIDsKK+mHkeenkeeOieadoSA+IGtpbmthZ3lva3Vqb3VcIDsKK+awkemWk+eZguazlSA+IG1pbmthbnJ5b3Vob3VcIDsKK+aDheazgeiovOaLoCA+IGpvdWt5b3VzaG91a29cIDsKK+W/g+aCuOS6oumAsiA+IHNoaW5raWtvdXNoaW5cIDsKK+WumuaAp+WIhuaekCA+IHRlaXNlaWJ1bnNla2lcIDsKK+Wbg+WtkOiogOiRiSA+IGhheWFzaGlrb3RvYmFcIDsKK+eJueioseaKgOihkyA+IHRva2t5b2dpanV0c3VcIDsKK+WgsemBk+WGmeecnyA+IGhvdWRvdXNoYXNoaW5cIDsKK+acgOS9juizg+mHkSA+IHNhaXRlaWNoaW5naW5cIDsKK+eerOmWk+mbu+aWrSA+IHNodW5rYW5kZW5kYW5cIDsKK+W5tOmgreaVmeabuCA+IG5lbnRvdWt5b3VzaG9cIDsKK+adsea0i+autemAmiA+IHRvdXlvdWRhbnRzdXVcIDsKK+eLrOWNoOizh+acrCA+IGRva3VzZW5zaGlob25cIDsKK+adseaWueaVmeS8miA+IHRvdWhvdWt5b3VrYWlcIDsKK+iHquimmueXh+eKtiA+IGppa2FrdXNob3Vqb3VcIDsKK+WkqeS9k+ims+a4rCA+IHRlbnRhaWthbnNva3VcIDsKK+e+pOmbhuihjOWLlSA+IGd1bnNodXVrb3Vkb3VcIDsKK+ihhuS6uueSsOimliA+IHNodXVqaW5rYW5zaGlcIDsKK+i/t+i1sOelnue1jCA+IG1laXNvdXNoaW5rZWlcIDsKK+aIpueVpeWFteWZqCA+IHNlbnJ5YWt1aGVpa2lcIDsKK+WFiOWItuaUu+aSgyA+IHNlbnNlaWtvdWdla2lcIDsKK+aciee1puS8keaahyA+IHl1dWt5dXVreXV1a2FcIDsKK+imi+WtpuaXheihjCA+IGtlbmdha3VyeW9rb3VcIDsKK+WbveWGhee1jOa4iCA+IGtva3VuYWlrZWl6YWlcIDsKK+WvvuepuuWwhOaSgyA+IHRhaWt1dXNoYWdla2lcIDsKK+avlOi8g+WvvueFpyA+IGhpa2FrdXRhaXNob3VcIDsKK+W4guS4remKgOihjCA+IHNoaWNodXVnaW5rb3VcIDsKK+WumueCueims+a4rCA+IHRlaXRlbmthbnNva3VcIDsKK+S/g+aIkOagveWfuSA+IHNva3VzZWlzYWliYWlcIDsKK+izg+mHkeagvOW3riA+IGNoaW5naW5rYWt1c2FcIDsKK+aUr+mFjemajue0miA+IHNoaWhhaWthaWt5dXVcIDsKK+S6jOmHjemcsuWHuiA+IG5panV1cm9zaHV0c3VcIDsKK+WLleiEiOehrOWMliA+IGRvdW15YWt1a291a2FcIDsKK+mao+aOpemDqOmaiiA+IHJpbnNldHN1YnV0YWlcIDsKK+W7uuioreapn+aisCA+IGtlbnNldHN1a2lrYWlcIDsKK+S4iuWxpOmajue0miA+IGpvdXNvdWthaWt5dXVcIDsKK+S4ieaLneS5neaLnSA+IHNhbnBhaWt5dXVoYWlcIDsKK+eJueauiuazleS6uiA+IHRva3VzaHVob3VqaW5cIDsKK+Wjq+mtguWVhuaJjSA+IHNoaWtvbnNob3VzYWlcIDsKK+iZmuW/g+aLheaHkCA+IGt5b3NoaW50YW5rYWlcIDsKK+WCt+eXheaNleiZnCA+IHNob3VieW91aG9yeW9cIDsKK+eEoeaAp+eUn+auliA+IG11c2Vpc2Vpc2hva3VcIDsKK+iyoeaUv+aUv+etliA+IHphaXNlaXNlaXNha3VcIDsKK+mZuOS4iuertuaKgCA+IHJpa3Vqb3VreW91Z2lcIDsKK+WNmuimp+W8t+iomCA+IGhha3VyYW5reW91a2lcIDsKK+S6uuaoqeS+teWusyA+IGppbmtlbnNoaW5nYWlcIDsKK+e3j+mgmOaBr+WtkCA+IHNvdXJ5b3VtdXN1a29cIDsKK+iPnOmjn+S4u+e+qSA+IHNhaXNob2t1c2h1Z2lcIDsKK+i1pOWklueZuuaVoyA+IHNla2lnYWloYXNzYW5cIDsKK+ihm+aYn+mAmuS/oSA+IGVpc2VpdHN1dXNoaW5cIDsKK+S6uuWToeWJiua4myA+IGppbicnaW5zYWt1Z2VuXCA7CivnjoflhYjouqzooYwgPiBzb3NzZW5reXV1a291XCA7CivlhY3nqI7miYDlvpcgPiBtZW56ZWlzaG90b2t1XCA7CivpmLLnuK7liqDlt6UgPiBib3VzaHVrdWtha291XCA7CivopIflvI/nsL/oqJggPiBmdWt1c2hpa2lib2tpXCA7Civosqzku7vliIbmi4UgPiBzZWtpbmluYnVudGFuXCA7CivmrablipvooYzkvb8gPiBidXJ5b2t1a291c2hpXCA7CivnlarntYTnt6jmiJAgPiBiYW5ndW1paGVuc2VpXCA7CivkvJHmga/mmYLplpMgPiBreXV1c29rdWppa2FuXCA7Civkuozph43plqLnr4AgPiBuaWp1dWthbnNldHN1XCA7CivoprPlhYnnlKPmpa0gPiBrYW5rb3VzYW5neW91XCA7CivljZrlvJXml4HoqLwgPiBoYWt1aW5ib3VzaG91XCA7CivlhbHosqnkvJrnpL4gPiBreW91aGFuZ2Fpc2hhXCA7Civmj5rpmbjoiaboiYcgPiB5b3VyaWt1a2FudGVpXCA7CivkuLvlrqLpoZvlgJIgPiBzaHVrYWt1dGVudG91XCA7CivlhazlrrPlr77nrZYgPiBrb3VnYWl0YWlzYWt1XCA7Civpmb3li5XkvZzmiKYgPiB5b3Vkb3VzYWt1c2VuXCA7Civoqpjmi5Dniq/kurogPiB5dXVrYWloYW4nJ25pblwgOwor5YaF6IeT55a+5oKjID4gbmFpem91c2hpa2thblwgOwor5L+u5aOr6KuW5paHID4gc2h1dXNoaXJvbmJ1blwgOwor6auY562J5pWZ6IKyID4ga291dG91a3lvdWlrdVwgOwor5ris6YeP5qmf5qKwID4gc29rdXJ5b3VraWthaVwgOwor6ZyK5oSf5ZWG5rOVID4gcmVpa2Fuc2hvdWhvdVwgOwor5ZGq54mp5bSH5oudID4ganVidXRzdXN1dWhhaVwgOwor5paH5Lq65aKo5a6iID4gYnVuamluYm9ra2FrdVwgOwor5om/55+l5LmL5YqpID4gc2hvdWNoaW5vc3VrZVwgOwor6LaK5bm06I2J5pysID4gZXRzdW5lbnNvdWhvblwgOwor6YCa5Yuk5YiX6LuKID4gdHN1dWtpbnJlc3NoYVwgOwor57K+6YCy5paZ55CGID4gc2hvdWppbnJ5b3VyaVwgOwor5Li75Yqb6YOo6ZqKID4gc2h1cnlva3VidXRhaVwgOwor6YO35Zyf5paH5a2mID4ga3lvdWRvYnVuZ2FrdVwgOwor5pyf5pyr6Kmm6aiTID4ga2ltYXRzdXNoaWtlblwgOwor6YCj6YKm6aaW55u4ID4gcmVucG91c2h1c2hvdVwgOwor5oOF5aCx5bel5a2mID4gam91aG91a291Z2FrdVwgOwor5LiD5YiG5LiJ5YiGID4gc2hpY2hpYnVzYW5idVwgOwor5YWs54i15aSr5Lq6ID4ga291c2hha3VmdWppblwgOwor5Y+C6ICD6LOH5paZID4gc2Fua291c2hpcnlvdVwgOwor54us5pat5bCC6KGMID4gZG9rdWRhbnNlbmtvdVwgOwor5YWl5a2m6ICD5p+7ID4gbnl1dWdha3Vrb3VzYVwgOwor6YGt6Zuj5L+h5Y+3ID4gc291bmFuc2hpbmdvdVwgOwor5rWB5YuV6LOH55SjID4gcnl1dWRvdXNoaXNhblwgOwor5LiL5Zub5Y2K5pyfID4gc2hpbW9zaGloYW5raVwgOwor6YG45oqe56eR55uuID4gc2VudGFrdWthbW9rdVwgOwor5oOF5aCx5qSc57SiID4gam91aG91a2Vuc2FrdVwgOwor6aCC5LiK5Lya6KuHID4gY2hvdWpvdWthaWRhblwgOwor5YWx5riI57WE5ZCIID4ga3lvdXNhaWt1bWlhaVwgOwor5Y+C6ICD5pu455uuID4gc2Fua291c2hvbW9rdVwgOwor5rK75a6J6K2m5a+fID4gY2hpYW5rZWlzYXRzdVwgOwor6IiI5qWt6YqA6KGMID4ga291Z3lvdWdpbmtvdVwgOwor6KGM5pS/5pu45aOrID4gZ3lvdXNlaXNob3NoaVwgOwor6Zai6YCj6aCF55uuID4ga2FucmVua291bW9rdVwgOwor6Zuj6KGM6Ium6KGMID4gbmFuZ3lvdWt1Z3lvdVwgOwor6aCQ6YeR6YCa5bizID4geW9raW50c3V1Y2hvdVwgOwor57ay6Iac5Yml6ZuiID4gbW91bWFrdWhha3VyaVwgOwor6Ly45Ye65qSc5p+7ID4geXVzaHV0c3VrZW5zYVwgOwor5oyH5a6a6YqY5p+EID4gc2hpdGVpbWVpZ2FyYVwgOwor6YWS5rGg6IKJ5p6XID4gc2h1Y2hpbmlrdXJpblwgOwor5YSq562J6LOe54q2ID4geXV1dG91c2hvdWpvdVwgOwor6buE6YeR5YiG5YmyID4gb3Vnb25idW5rYXRzdVwgOwor5L+u57mV5bel5aC0ID4gc2h1dXplbmtvdWpvdVwgOwor5LqM6ICF6YG45LiAID4gbmlzaGFzZW4nJ2l0c3VcIDsKK+eKtuazgeiovOaLoCA+IGpvdWt5b3VzaG91a29cIDsKK+iPjOmhnuWtpuiAhSA+IGtpbnJ1aWdha3VzaGFcIDsKK+S7suijgeOAheWIpCA+IGNodXVzYWlzYWliYW5cIDsKK+WkluWbvemDteS+vyA+IGdhaWtva3V5dXViaW5cIDsKK+S6pOmAmuWcsOeNhCA+IGtvdXRzdXVqaWdva3VcIDsKK+mbhuWbo+e1kOWpmiA+IHNodXVkYW5rZWtrb25cIDsKK+aEm+eOqeWLleeJqSA+IGFpZ2FuZG91YnV0c3VcIDsKK+mWk+aOpeipseazlSA+IGthbnNldHN1d2Fob3VcIDsKK+WtpueUn+mDqOmVtyA+IGdha3VzZWlidWNob3VcIDsKK+mbsuW9ouWumuimjyA+IGt1bW9nYXRham91Z2lcIDsKK+Wxi+WkluW6g+WRiiA+IG9rdWdhaWtvdWtva3VcIDsKK+S6oeWRveaWh+WtpiA+IGJvdW1laWJ1bmdha3VcIDsKK+mAo+e2mumWouaVsCA+IHJlbnpva3VrYW5zdXVcIDsKK+ethui3oemRkeWumiA+IGhpc3Nla2lrYW50ZWlcIDsKK+W7g+eJqeWIqeeUqCA+IGhhaWJ1dHN1cml5b3VcIDsKK+i7iuS4oeS8muekviA+IHNoYXJ5b3VnYWlzaGFcIDsKK+m6u+iWrOW4uOe/kiA+IG1heWFrdWpvdXNodXVcIDsKK+S4jeW+l+imgemgmCA+IGZ1dG9rdXlvdXJ5b3VcIDsKK+WxseWys+WcsOW4ryA+IHNhbmdha3VjaGl0YWlcIDsKK+WVj+mhjOmgmOWfnyA+IG1vbmRhaXJ5b3Vpa2lcIDsKK+WAi+WIpeiyqeWjsiA+IGtvYmV0c3VoYW5iYWlcIDsKK+W5s+ihoeaEn+immiA+IGhlaWtvdWthbmtha3VcIDsKK+WGheWbvemDteS+vyA+IG5haWtva3V5dXViaW5cIDsKK+WgsemBk+eVque1hCA+IGhvdWRvdWJhbmd1bWlcIDsKK+WFseWQjOe1hOWQiCA+IGt5b3Vkb3VrdW1pYWlcIDsKK+e0meS4iuioiOeUuyA+IHNoaWpvdWtlaWtha3VcIDsKK+S6jOmHjeWbveexjSA+IG5panV1a29rdXNla2lcIDsKK+ihjOaUv+iotOionyA+IGd5b3VzZWlzb3Nob3VcIDsKK+e1tue4geaKteaKlyA+IHpldHN1ZW50ZWlrb3VcIDsKK+WMv+WQjeaJueiplSA+IHRva3VtZWloaWh5b3VcIDsKK+mVt+acn+WbveWCtSA+IGNob3VraWtva3VzYWlcIDsKK+WFiee3mueZguazlSA+IGtvdXNlbnJ5b3Vob3VcIDsKK+a1geWLleizh+acrCA+IHJ5dXVkb3VzaGlob25cIDsKK+iovOWIuOW4guWgtCA+IHNob3VrZW5zaGlqb3VcIDsKK+W7uuioreW3peS6iyA+IGtlbnNldHN1a291amlcIDsKK+WkieaFi+aAp+assiA+IGhlbnRhaXNlaXlva3VcIDsKK+epuuS4ree0sOiPjCA+IGt1dWNodXVzYWlraW5cIDsKK+S7o+mHkeW8leaPmyA+IGRhaWtpbmhpa2lrYWVcIDsKK+iMtueVqueLguiogCA+IGNoYWJhbmt5b3VnZW5cIDsKK+S6pOmAmuimj+WJhyA+IGtvdXRzdXVraXNva3VcIDsKK+S8muW4reaWmeeQhiA+IGthaXNla2lyeW91cmlcIDsKK+ePvueJqeebuOWgtCA+IGdlbmJ1dHN1c291YmFcIDsKK+adn+e4m+eQhuirliA+IHNva3ViYWt1cmlyb25cIDsKK+WFrOato+iovOabuCA+IGtvdXNlaXNob3VzaG9cIDsKK+WQjOebn+aAoOalrSA+IGRvdW1laXRhaWd5b3VcIDsKK+ihjOWLleaWuemHnSA+IGtvdWRvdWhvdXNoaW5cIDsKK+mBqeato+S+oeagvCA+IHRla2lzZWlrYWtha3VcIDsKK+S6uueoruaUueiJryA+IGppbnNodWthaXJ5b3VcIDsKK+WNiua1geWLleS9kyA+IGhhbnJ5dXVkb3V0YWlcIDsKK+aZruS7j+aIpuS6iSA+IGZ1ZnV0c3VzZW5zb3VcIDsKK+S6jOmHjee1kOWQiCA+IG5panV1a2V0c3Vnb3VcIDsKK+WFjeiyrOeJueaoqSA+IG1lbnNla2l0b2trZW5cIDsKK+aHsuaIkuWHpuWIhiA+IGNob3VrYWlzaG9idW5cIDsKK+S4jeW/g+W+l+iAhSA+IGZ1a29rb3JvZW1vbm9cIDsKK+ixquaUvuejiuiQvSA+IGdvdWhvdXJhaXJha3VcIDsKK+iJpuegsuWwhOaSgyA+IGthbnBvdXNoYWdla2lcIDsKK+mWouaVsOino+aekCA+IGthbnN1dWthaXNla2lcIDsKK+mAmuS/oeism+W6pyA+IHRzdXVzaGlua291emFcIDsKK+WkluiyqOeNsuW+lyA+IGdhaWtha2FrdXRva3VcIDsKK+W/g+aCuOaYgumAsiA+IHNoaW5raWtvdXNoaW5cIDsKK+mbu+awl+a6tuaOpSA+IGRlbmtpeW91c2V0c3VcIDsKK+WQrueZsOiIkOeXlCA+IHNlbicneW91c2hpamlcIDsKK+WKtOWDjeadoeS7tiA+IHJvdWRvdWpvdWtlblwgOwor5aSW5Zu96Iiq6LevID4gZ2Fpa29rdWtvdXJvXCA7CivkvJ3pgIHpgJ/luqYgPiBkZW5zb3Vzb2t1ZG9cIDsKK+S4gOacrOiqv+WtkCA+IGlwcG9uZGpvdXNoaVwgOwor5aKc6JC95LqL5pWFID4gdHN1aXJha3VqaWtvXCA7Civnt5rpppnoirHngasgPiBzZW5rb3VoYW5hYmlcIDsKK+adseS6rOmDveaUvyA+IHRvdWt5b3V0b3NlaVwgOwor6LuN5LqL55Sj5qWtID4gZ3VuamlzYW5neW91XCA7Civku6PnkIbniafluKsgPiBkYWlyaWJva3VzaGlcIDsKK+S4ieWNgeS4ieaJgCA+IHNhbmp1dXNhbnNob1wgOwor5LiA5qyh57ea6LyqID4gaWNoaWppc2VucmluXCA7CivkvqHmoLzlpInli5UgPiBrYWtha3VoZW5kb3VcIDsKK+aCoOaCoOiHqumBqSA+IHl1dXl1dWppdGVraVwgOwor5bGx57Sr5rC05piOID4gc2Fuc2hpc3VpbWVpXCA7CivnqbrovLjosqjniakgPiBrdXV5dWthbW90c3VcIDsKK+ims+WFieizh+a6kCA+IGthbmtvdXNoaWdlblwgOwor6KaW6Kaa6KiA6KqeID4gc2hpa2FrdWdlbmdvXCA7CivpurvolqzluLjnlKggPiBtYXlha3Vqb3V5b3VcIDsKK+aXpeacnei+nuWFuCA+IG5pdGNob3VqaXRlblwgOwor5bqX6aCt5YK15Yi4ID4gdGVudG91c2Fpa2VuXCA7CivniYjmqKnmiYDmnIkgPiBoYW5rZW5zaG95dXVcIDsKK+S4gOaziuihjOi7jSA+IGlwcGFrdWtvdWd1blwgOwor6Z2S56m65biC5aC0ID4gYW96b3Jhc2hpam91XCA7CivplovnpajntZDmnpwgPiBrYWloeW91a2Vra2FcIDsKK+WNmOeLrOism+WSjCA+IHRhbmRva3Vrb3V3YVwgOwor6L+R5Luj56eR5a2mID4ga2luZGFpa2FnYWt1XCA7CivnhKHnpZ7oq5bogIUgPiBtdXNoaW5yb25zaGFcIDsKK+acieW9ouiyoeeUoyA+IHl1dWtlaXphaXNhblwgOwor5rKz5bK45q615LiYID4ga2FnYW5kYW5reXV1XCA7CivlpKrpmb3lhYnnt5ogPiB0YWl5b3Vrb3VzZW5cIDsKK+WEhOS4h+mVt+iAhSA+IG9rdW1hbmNob3VqYVwgOwor5YyW57Kn55+z6bm4ID4ga2VzaG91c2Vra2VuXCA7CivoqIDoqp7nmYLms5UgPiBnZW5nb3J5b3Vob3VcIDsKK+WuieWumuaIkOmVtyA+IGFudGVpc2VpY2hvdVwgOwor56We5qip5pS/5rK7ID4gc2hpbmtlbnNlaWppXCA7Civoh7PkuIrlkb3ku6QgPiBzaGlqb3VtZWlyZWlcIDsKK+mfs+alvee+juWtpiA+IG9uZ2FrdWJpZ2FrdVwgOwor5Yq05YON5aSn6IejID4gcm91ZG91ZGFpamluXCA7CivpmY3moLzkurrkuosgPiBrb3VrYWt1amluamlcIDsKK+eqkue0oOiCpeaWmSA+IGNoaXNzb2hpcnlvdVwgOwor6LuN6YOo54us6KOBID4gZ3VuYnVkb2t1c2FpXCA7Civlhazli5nnlr7nl4UgPiBrb3VtdXNoaXBwZWlcIDsKK+iKseeBq+Wkp+S8miA+IGhhbmFiaXRhaWthaVwgOwor6KGM6Zuy5rWB5rC0ID4ga291dW5yeXV1c3VpXCA7Civlj43lr77oqIrllY8gPiBoYW50YWlqaW5tb25cIDsKK+aWueWQkei7ouaPmyA+IGhvdWtvdXRlbmthblwgOwor54Sh57ea5oqA6KGTID4gbXVzZW5naWp1dHN1XCA7Civoia7kuIvoia7kuIogPiBnb25rYWdvbnNob3VcIDsKK+acquadpeWujOS6hiA+IG1pcmFpa2FucnlvdVwgOwor5YmN6YCy6YOo6ZqKID4gemVuc2hpbmJ1dGFpXCA7Civml6LntITliIbmlbAgPiBraXlha3VidW5zdXVcIDsKK+WFrOWWtuS9j+WuhSA+IGtvdWVpanV1dGFrdVwgOwor55uj5p+75aCx5ZGKID4ga2Fuc2Fob3Vrb2t1XCA7CivmnIjntYzlkajmnJ8gPiBnZWtrZWlzaHV1a2lcIDsKK+enkeWtpumbkeiqjCA+IGthZ2FrdXphc3NoaVwgOwor6YCa6LKo57Wx5ZCIID4gdHN1dWthdG91Z291XCA7Civlr77lnLDpgJ/luqYgPiB0YWljaGlzb2t1ZG9cIDsKK+WumOWDmuS4u+e+qSA+IGthbnJ5b3VzaHVnaVwgOwor5b6h6Kq/5a2Q6ICFID4gb2Nob3VzaGltb25vXCA7CivkuozotrPkuInmlocgPiBuaXNva3VzYW5tb25cIDsKK+mFuOaAp+iCpeaWmSA+IHNhbnNlaWhpcnlvdVwgOwor6KiA5paH5LiA6Ie0ID4gZ2VuYnVuJydpdGNoaVwgOwor5YWx5ZCM566h55CGID4ga3lvdWRvdWthbnJpXCA7CivmtbflpJbml4XooYwgPiBrYWlnYWlyeW9rb3VcIDsKK+S4jeWvqeWwi+WVjyA+IGZ1c2hpbmppbm1vblwgOwor6LKs5Lu76Lui5auBID4gc2VraW5pbnRlbmthXCA7CivplbfmnJ/miYvlvaIgPiBjaG91a2l0ZWdhdGFcIDsKK+e1puS4juawtOa6liA+IGt5dXV5b3N1aWp1blwgOwor5bCR5pWw57K+6YutID4gc2hvdXN1dXNlaWVpXCA7Civou6Lmj5vnpL7lgrUgPiB0ZW5rYW5zaGFzYWlcIDsKK+ayv+WyuOa8gealrSA+IGVuZ2FuZ3lvZ3lvdVwgOwor5Lqk6Zqb56S+5LyaID4ga291c2Fpc2hha2FpXCA7CivliLbpmZDkuovpoIUgPiBzZWlnZW5qaWtva3VcIDsKK+WIkeS6i+iyrOS7uyA+IGtlaWppc2VraW5pblwgOwor5re35ZCI54Gr6JasID4ga29uZ291a2F5YWt1XCA7Civlj4zli5nlpZHntIQgPiBzb3VtdWtlaXlha3VcIDsKK+WPpOWFuOWtpuiAhSA+IGtvdGVuZ2FrdXNoYVwgOwor55Sf5rS75om25YqpID4gc2Vpa2F0c3VmdWpvXCA7CivnlKjnm4rnianmqKkgPiB5b3Vla2lidWtrZW5cIDsKK+WHuuWLpOaZgumWkyA+IHNodWtraW5qaWthblwgOwor55u46Zai5L+C5pWwID4gc291a2Fua2Vpc3V1XCA7CivnpL7kvJrkv53pmpwgPiBzaGFrYWlob3Nob3VcIDsKK+WNlOWQjOWLleS9nCA+IGt5b3Vkb3Vkb3VzYVwgOwor5oOF57eS57qS57a/ID4gam91Y2hvdGVubWVuXCA7Civnq4vmhrLlkJvkuLsgPiByaWtrZW5rdW5zaHVcIDsKK+aXheWIuOafu+iovCA+IHJ5b2tlbnNhc2hvdVwgOwor6JC96Iqx54u86JeJID4gcmFra2Fyb3V6ZWtpXCA7CivljJblraboo73lk4EgPiBrYWdha3VzZWloaW5cIDsKK+mBqeaAp+aknOafuyA+IHRla2lzZWlrZW5zYVwgOwor55Sf5ZG956eR5a2mID4gc2VpbWVpa2FnYWt1XCA7Civlt6XkvZzmqZ/morAgPiBrb3VzYWt1a2lrYWlcIDsKK+Wbs+abuOmkqOWtpiA+IHRvc2hva2FuZ2FrdVwgOwor5Lq65Y+j5ZWP6aGMID4gamlua291bW9uZGFpXCA7CivlvqHnlKjlrabogIUgPiBnb3lvdWdha3VzaGFcIDsKK+awl+Wcp+mFjee9riA+IGtpYXRzdWhhaWNoaVwgOwor5pmC6ZmQ54iG5by+ID4gamlnZW5iYWt1ZGFuXCA7Civoh6rnhLblr77mlbAgPiBzaGl6ZW50YWlzdXVcIDsKK+WknOmWk+aSruW9sSA+IHlha2Fuc2F0c3VlaVwgOwor56We57WM57mK57atID4gc2hpbmtlaXNlbicnaVwgOwor5rWB5YuV6LKg5YK1ID4gcnl1dWRvdWZ1c2FpXCA7CivmnIDpq5joqJjpjLIgPiBzYWlrb3VraXJva3VcIDsKK+aWsOimj+S6i+alrSA+IHNoaW5raWppZ3lvdVwgOwor5aeT5ZCN5Yik5patID4gc2VpbWVpaGFuZGFuXCA7Civlj43lr77ntabku5ggPiBoYW50YWlreXV1ZnVcIDsKK+aVl+aIpuaKleaJiyA+IGhhaXNlbnRvdXNodVwgOwor5q2m5ryi5LiJ6Y6uID4gYnVrYW5zYW5jaGluXCA7CivkuIDmnJ3kuIDlpJUgPiBpdGNob3Vpc3Nla2lcIDsKK+WutuWGheW3pealrSA+IGthbmFpa291Z3lvdVwgOwor5rWF5a2m6I+y5omNID4gc2VuZ2FrdWhpc2FpXCA7Civmt7flkIjntYzmuIggPiBrb25nb3VrZWl6YWlcIDsKK+W4guawkeWbo+S9kyA+IHNoaW1pbmRhbnRhaVwgOwor5LyB5qWt6YCj5ZCIID4ga2lneW91cmVuZ291XCA7CivmmYLku6PmhJ/oppogPiBqaWRhaWthbmtha3VcIDsKK+WFseWQjOWboOWtkCA+IGt5b3Vkb3VpbnNoaVwgOwor5LiA5oSP5bCC5b+DID4gaWNoaWlzZW5zaGluXCA7CivmrKfnsbPoq7jlm70gPiBvdWJlaXNob2tva3VcIDsKK+mdqeWRvemBi+WLlSA+IGtha3VtZWl1bmRvdVwgOwor57SU57KL5Z+56aSKID4ganVuc3VpYmFpeW91XCA7Civlho3kuInlho3lm5sgPiBzYWlzYW5zYWlzaGlcIDsKK+W9ouiAjOS4iuWtpiA+IGtlaWppam91Z2FrdVwgOwor5Zyw5pa55Zuj5L2TID4gY2hpaG91ZGFudGFpXCA7CivlhazmsJHlrabmoKEgPiBrb3VtaW5nYWtrb3VcIDsKK+S+oeagvOe1seWItiA+IGtha2FrdXRvdXNlaVwgOwor5oSP5Yyg55m76YyyID4gaXNob3V0b3Vyb2t1XCA7Civlj5fli5XllqvnhZkgPiBqdWRvdWtpdHN1ZW5cIDsKK+ijvee8tuW3peWgtCA+IHNlaWthbmtvdWpvdVwgOwor5Zu65b2i54eD5paZID4ga29rZWluZW5yeW91XCA7Civpg7Xkvr/ngrrmm78gPiB5dXViaW5rYXdhc2VcIDsKK+WPo+mgreW8geirliA+IGtvdXRvdWJlbnJvblwgOwor56uL5L2T5YyW5a2mID4gcml0dGFpa2FnYWt1XCA7Civlk4HooYzmlrnmraMgPiBoaW5rb3Vob3VzZWlcIDsKK+iyqeWjsuS+oeagvCA+IGhhbmJhaWtha2FrdVwgOwor5oGL5oSb57WQ5amaID4gcmVuJydhaWtla2tvblwgOwor5YyX57Gz5Zyf5Lq6ID4gaG9rdWJlaWRvamluXCA7Civoh6jmtbflrabmoKEgPiByaW5rYWlnYWtrb3VcIDsKK+S4gOiqnuS4gOiqniA+IGljaGlnb2ljaGlnb1wgOwor5Y2K5a6Y5Y2K5rCRID4gaGFua2FuaGFubWluXCA7CivlpKflm73kuLvnvqkgPiB0YWlrb2t1c2h1Z2lcIDsKK+a0i+acjeeuquespSA+IHlvdWZ1a3VkYW5zdVwgOwor5LiA5pa56YCa6KGMID4gaXBwb3V0c3V1a291XCA7Civlj4LogIPmlofnjK4gPiBzYW5rb3VidW5rZW5cIDsKK+S/oeS7sOeuh+adoSA+IHNoaW5rb3VrYWpvdVwgOwor5rCR6ZaT6LOH5pysID4gbWlua2Fuc2hpaG9uXCA7CivkuIDmsYHkuIDoj5wgPiBpY2hpanV1aXNzYWlcIDsKK+WNgeeoruertuaKgCA+IGppc3NodWt5b3VnaVwgOwor5bmz5ZKM5YWx5a2YID4gaGVpd2FreW91em9uXCA7CivljZjnt5rpgYvou6IgPiB0YW5zZW4nJ3VudGVuXCA7Civkuovlvozmib/oq74gPiBqaWdvc2hvdWRha3VcIDsKK+aYoOWDj+S/oeWPtyA+IGVpem91c2hpbmdvdVwgOwor5a6J5YWo5a++562WID4gYW56ZW50YWlzYWt1XCA7CivnlJ/nlKPntYTlkIggPiBzZWlzYW5rdW1pYWlcIDsKK+WxheS9j+awtOa6liA+IGt5b2p1dXN1aWp1blwgOwor566X55So5pWw5a2XID4gc2FuJyd5b3VzdXVqaVwgOwor5aeJ5aa55Lya56S+ID4gc2hpbWFpZ2Fpc2hhXCA7CivpgbjmjJnlhazloLEgPiBzZW5reW9rb3Vob3VcIDsKK+S7j+WDj+S6jOW6pyA+IGJ1dHN1em91bml6YVwgOwor6Kaz5YWJ5peF6KGMID4ga2Fua291cnlva291XCA7CivnoJTnqbboqrLpoYwgPiBrZW5reXV1a2FkYWlcIDsKK+mHkeaLvuS4h+WGhiA+IGtpbmp1dW1hbicnZW5cIDsKK+WxjuWwv+WHpueQhiA+IHNoaW55b3VzaG9yaVwgOwor5ZWG5LqL5Lya56S+ID4gc2hvdWppZ2Fpc2hhXCA7Civpm4blkIjloLTmiYAgPiBzaHV1Z291YmFzaG9cIDsKK+W9ouWuueipnuW5uSA+IGtlaXlvdXNoaWthblwgOwor5p2h5Lu25Y+N5bCEID4gam91a2VuaGFuc2hhXCA7Civkv6HlvpLkvJ3li5UgPiBzaGludG9kZW5kb3VcIDsKK+acieaWmemBk+i3ryA+IHl1dXJ5b3Vkb3Vyb1wgOwor5qWt5YuZ5aao5a6zID4gZ3lvdW11Ym91Z2FpXCA7CivpmL/niYfkuK3mr5IgPiBhaGVuY2h1dWRva3VcIDsKK+e0sOiDnuiejeWQiCA+IHNhaWJvdXl1dWdvdVwgOwor5ZCN5Lq65rCX6LOqID4gbWVpamlua2F0YWdpXCA7Civpg7XmlL/lpKfoh6MgPiB5dXVzZWlkYWlqaW5cIDsKK+S6uuaoqeaTgeittyA+IGppbmtlbicneW91Z29cIDsKK+WFhOW8n+WWp+WYqSA+IGt5b3VkYWlnZW5rYVwgOwor5beh6Iiq6YCf5bqmID4ganVua291c29rdWRvXCA7CivkuIDlpJzlpKfoh6MgPiBpY2hpeWFkYWlqaW5cIDsKK+eNheWtkOWlrui/hSA+IHNoaXNoaWZ1bmppblwgOwor6Zao56eA5L2c5a62ID4ga2Vpc2h1dXNha2thXCA7CivlsILploDlrabmoKEgPiBzZW5tb25nYWtrb3VcIDsKK+aUuemdqemBjueoiyA+IGthaWtha3VrYXRlaVwgOwor57eK5oCl5o6q572uID4ga2lua3l1dXNvY2hpXCA7CivnlLvnq5zlpKnnnZsgPiBnYXJ5b3V0ZW5zZWlcIDsKK+S4gOmAsuS4gOmAgCA+IGlzc2hpbicnaXR0YWlcIDsKK+WumuW4uOeKtuaFiyA+IHRlaWpvdWpvdXRhaVwgOwor5oyH5pWw6Zai5pWwID4gc2hpc3V1a2Fuc3V1XCA7CivoqabpqJPnp5Hnm64gPiBzaGlrZW5rYW1va3VcIDsKK+eBveWus+aVkeWKqSA+IHNhaWdhaWt5dXVqb1wgOwor5Ya26YeR5a2m6ICFID4geWFraW5nYWt1c2hhXCA7CivlnLDmlrnpioDooYwgPiBjaGlob3VnaW5rb3VcIDsKK+e1jOa4iOeZuuWxlSA+IGtlaXphaWhhdHRlblwgOwor54m55q6K5YW15ZmoID4gdG9rdXNodWhlaWtpXCA7CivmtbfkuK3lhazlnJIgPiBrYWljaHV1a291ZW5cIDsKK+Wbo+S9k+aXheihjCA+IGRhbnRhaXJ5b2tvdVwgOwor5LiJ5Y+J56We57WMID4gc2Fuc2FzaGlua2VpXCA7CivmrLLmsYLkuI3muoAgPiB5b2treXV1ZnVtYW5cIDsKK+e1guWknOWWtualrSA+IHNodXV5YWVpZ3lvdVwgOwor5Zyw5LiL57WE57mUID4gY2hpa2Fzb3NoaWtpXCA7CivogJDpnIflrrblsYsgPiB0YWlzaGlua2Fva3VcIDsKK+ato+S4ieinkuW9oiA+IHNlaXNhbmtha2tlaVwgOwor6LWw6KGM6LuK57eaID4gc291a291c2hhc2VuXCA7CivnqbrmsJfoqr/mlbQgPiBrdXVraWNob3VzZWlcIDsKK+mBi+WLleelnue1jCA+IHVuZG91c2hpbmtlaVwgOwor5Y+X6IOO5ZGK55+lID4ganV0YWlrb2t1Y2hpXCA7Civop6PnrZTnlKjntJkgPiBrYWl0b3V5b3VzaGlcIDsKK+S4jeaJgOWtmOiAhSA+IGZ1c2hvem9ubW9ub1wgOwor5Yqg5bel55Sj5qWtID4ga2Frb3VzYW5neW91XCA7Civopo/moLzljp/moYggPiBraWtha3VnZW4nJ2FuXCA7CivlkozprYLmtIvmiY0gPiB3YWtvbicneW91c2FpXCA7Civlj43miKbpgYvli5UgPiBoYW5zZW4nJ3VuZG91XCA7Civoq7jooYznhKHluLggPiBzaG9neW91bXVqb3VcIDsKK+Wlkee0hOacn+mWkyA+IGtlaXlha3VraWthblwgOwor5Lq65paH56eR5a2mID4gamluYnVua2FnYWt1XCA7CivkuIDkurrkuIDkurogPiBoaXRvcmliaXRvcmlcIDsKK+WKseaMr+e0oOWtkCA+IHJlaXNoaW5zb3NoaVwgOwor5a6H5a6Z5bel5a2mID4gdWNodXVrb3VnYWt1XCA7CivkuovliY3ml6Xku5ggPiBqaXplbmhpZHp1a2VcIDsKK+iHquWutuaSnuedgCA+IGppa2Fkb3VjaGFrdVwgOwor55+z54Gw6IKl5paZID4gc2Vra2FpaGlyeW91XCA7Civlhaznm4rlhKrlhYggPiBrb3Vla2l5dXVzZW5cIDsKK+aXpeixiuacrOe3miA+IG5pcHBvdWhvbnNlblwgOwor55+z5rK55YyW5a2mID4gc2VraXl1a2FnYWt1XCA7Civnm7jlr77pgJ/luqYgPiBzb3V0YWlzb2t1ZG9cIDsKK+m7kuWtl+WAkueUoyA+IGt1cm9qaXRvdXNhblwgOwor5YaF5oaC5aSW5oKjID4gbmFpeXV1Z2Fpa2FuXCA7CivplqLmlbDnqbrplpMgPiBrYW5zdXVrdXVrYW5cIDsKK+S7mOWxnueXhemZoiA+IGZ1em9rdWJ5b3VpblwgOwor6Ieo5bqK5Yy75a2mID4gcmluc2hvdWlnYWt1XCA7CivnsbPmtbflhbXpmoogPiBiZWlrYWloZWl0YWlcIDsKK+aLseaJi+WCjeimsyA+IGtvdXNodWJvdWthblwgOwor6aCG5rOV6ZeY5LqJID4ganVucG91dG91c291XCA7CivmiKbpl5jpmaPlnLAgPiBzZW50b3VqaW5jaGlcIDsKK+S4gOaMmeS4gOWLlSA+IGlra3lvaWNoaWRvdVwgOwor5aiB5ZqH5bCE5pKDID4gaWtha3VzaGFnZWtpXCA7Civlrp/lnLDoqabpqJMgPiBqaXRjaGlzaGlrZW5cIDsKK+S4remWk+aZr+awlyA+IGNodXVrYW5rZWlraVwgOwor5Y+45pWZ5qip5bqnID4gc2hpa3lvdWtlbnphXCA7CivlpInmm7TlsaXmrbQgPiBoZW5rb3VyaXJla2lcIDsKK+mAo+aIpumAo+aVlyA+IHJlbnNlbnJlbnBhaVwgOwor5q2v5qe96Ia/5ryPID4gc2hpc291bm91cm91XCA7CivntKDnspLlrZDoq5YgPiBzb3J5dXVzaGlyb25cIDsKK+ihm+aYn+S4ree2mSA+IGVpc2VpY2h1dWtlaVwgOwor5Zyn5bu25bel5aC0ID4gYXRzdWVua291am91XCA7CivliIblqKnoh6XluoogPiBidW5iZW5nYXNob3VcIDsKK+S6uumAoOe1ueezuCA+IGppbnpvdWtlbnNoaVwgOwor55eV6Leh5Zmo5a6YID4ga29uc2VraWtpa2FuXCA7Civom43lhYnloZfmlpkgPiBrZWlrb3V0b3J5b3VcIDsKK+WFrOWIpOiqv+afuyA+IGtvdWhhbmNob3VzYVwgOwor6YCj57Wh5Lya6K2wID4gcmVucmFrdWthaWdpXCA7CivlhazmlZnopoHnkIYgPiBrb3VreW91eW91cmlcIDsKK+mqqOiRo+WTgeW6lyA+IGtvdHRvdWhpbnRlblwgOwor5Y2B5LqM5oyH6IW4ID4ganV1bmlzaGljaG91XCA7CivosqHmlL/llY/poYwgPiB6YWlzZWltb25kYWlcIDsKK+iogOiqnuWtpuiAhSA+IGdlbmdvZ2FrdXNoYVwgOwor6YeR6J6N5qmf6ZaiID4ga2luJyd5dXVraWthblwgOwor55Sw5ZyS6Kmp5Lq6ID4gZGVuJydlbnNoaWppblwgOwor562J5q+U57Sa5pWwID4gdG91aGlreXV1c3V1XCA7CivpgZPljJblvbnogIUgPiBkb3VrZXlha3VzaGFcIDsKK+a0pea0pea1pua1piA+IHRzdWR6dXVyYXVyYVwgOwor5Lm+54el5Zyw5bivID4ga2Fuc291Y2hpdGFpXCA7Civpn7Pnr4DkuLvpn7MgPiBvbnNldHN1c2h1b25cIDsKK+iIqua1t+aXpeiqjCA+IGtvdWthaW5pc3NoaVwgOwor5Y2K5bCB5bu65oCnID4gaGFuaG91a2Vuc2VpXCA7CivmgYvmhJvplqLkv4IgPiByZW4nJ2Fpa2Fua2VpXCA7CivmiJDplbfpgY7nqIsgPiBzZWljaG91a2F0ZWlcIDsKK+mAo+W4r+S/neiovCA+IHJlbnRhaWhvc2hvdVwgOwor5b+D6IeT6IKl5aSnID4gc2hpbnpvdWhpZGFpXCA7CivlpKnlo4znhKHnqq4gPiB0ZW5qb3VtdWt5dXVcIDsKK+WFqOi6q+m6u+mFlCA+IHplbnNoaW5tYXN1aVwgOwor5Zue57ea5Lqk5o+bID4ga2Fpc2Vua291a2FuXCA7CivovLjlhaXliLbpmZAgPiB5dW55dXVzZWlnZW5cIDsKK+ani+mAoOS4jeazgSA+IGtvdXpvdWZ1a3lvdVwgOwor6Ieq5bex5YWx5b25ID4gamlrb2t5b3V5YWt1XCA7Civmp4vmiJDliIblrZAgPiBrb3VzZWlidW5zaGlcIDsKK+W4guWgtOWxlemWiyA+IHNoaWpvdXRlbmthaVwgOwor5bqX6aCt6LKp5aOyID4gdGVudG91aGFuYmFpXCA7CivlkIjllLHpmorlk6EgPiBnYXNzaG91dGFpaW5cIDsKK+e1jOiyu+WJiua4myA+IGtlaWhpc2FrdWdlblwgOwor5paH6Iq45b6p6IiIID4gYnVuZ2VpZnVra291XCA7CivnkrDlpKrlubPmtIsgPiBrYW50YWloZWl5b3VcIDsKK+WQjee+qeabuOaPmyA+IG1laWdpa2FraWthZVwgOwor6YeN5aSn5ZWP6aGMID4ganV1ZGFpbW9uZGFpXCA7CivpnZ7np5HlrabnmoQgPiBoaWthZ2FrdXRla2lcIDsKK+mZkOWumuaIpuS6iSA+IGdlbnRlaXNlbnNvdVwgOwor5LiN5Zyo6Ki85piOID4gZnV6YWlzaG91bWVpXCA7CivljLvlrabljZrlo6sgPiBpZ2FrdWhha3VzaGlcIDsKK+ahiOWGheabuOWRiCA+IGFuJyduYWlzaG90ZWlcIDsKK+WwguWItuWQm+S4uyA+IHNlbnNlaWt1bnNodVwgOwor5Yuk5YuZ5a6f57i+ID4ga2lubXVqaXNzZWtpXCA7CivmqZ/lr4bkuovpoIUgPiBraW1pdHN1amlrb3VcIDsKK+aXqeacn+iouuaWrSA+IHNvdWtpc2hpbmRhblwgOwor5YGc5q2i5L6h5qC8ID4gdGVpc2hpa2FrYWt1XCA7CivoqJjmhrblrrnph48gPiBraW9rdXlvdXJ5b3VcIDsKK+WHuueUn+mBjuWJsCA+IHNodXNzZWlrYWpvdVwgOwor5byV6YCA6IiI6KGMID4gaW50YWlrb3VneW91XCA7CivkuInlkbPnt5rlvL4gPiBzaGFtaXNlbmhpa2lcIDsKK+ippumok+autemajiA+IHNoaWtlbmRhbmthaVwgOwor6LuN5LqL5LuL5YWlID4gZ3VuamlrYWlueXV1XCA7CivmlL/msrvpgZPlvrMgPiBzZWlqaWRvdXRva3VcIDsKK+WbveWWtuS8gealrSA+IGtva3VlaWtpZ3lvdVwgOwor5biw5bej5pys6IO9ID4ga2lzb3Vob24nJ25vdVwgOwor5Lih5oCn5YW35pyJID4gcnlvdXNlaWd1eXV1XCA7Civpu4Tph5HkuIfog70gPiBvdWdvbmJhbicnbm91XCA7Civmi4XlvZPoqrLplbcgPiB0YW50b3VrYWNob3VcIDsKK+a3t+aIkOertuaKgCA+IGtvbnNlaWt5b3VnaVwgOwor5Yq05YON5pS75YuiID4gcm91ZG91a291c2VpXCA7CivplpHoqbHkvJHpoYwgPiBrYW53YWt5dXVkYWlcIDsKK+W9ueWLmeizoOWEnyA+IGVraW11YmFpc2hvdVwgOwor5bmz5ZKM55Sj5qWtID4gaGVpd2FzYW5neW91XCA7CivljbDosaHmibnoqZUgPiBpbnNob3VoaWh5b3VcIDsKK+WBnOa7nuWJjee3miA+IHRlaXRhaXplbnNlblwgOwor5rCR6ZaT5pS+6YCBID4gbWlua2FuaG91c291XCA7CivlsZ7lnLDkuLvnvqkgPiB6b2t1Y2hpc2h1Z2lcIDsKK+WHuueJiOmDqOaVsCA+IHNodXBwYW5idXN1dVwgOwor6Ieq5YuV5Lq65b2iID4gamlkb3VuaW5neW91XCA7CivmhI/lv5foloTlvLEgPiBpc2hpaGFrdWpha3VcIDsKK+W/g+eQhuaIpuS6iSA+IHNoaW5yaXNlbnNvdVwgOwor6Kqy56iO5omA5b6XID4ga2F6ZWlzaG90b2t1XCA7CivmtYHooYzkvZzlrrYgPiByeXV1a291c2Fra2FcIDsKK+agueawl+S7leS6iyA+IGtvbmtpc2hpZ290b1wgOwor6Lu954qv572q5rOVID4ga2VpaGFuemFpaG91XCA7Civmj6PmkanmhrbmuKwgPiBzaGltYW9rdXNva3VcIDsKK+aUueS/ruW3peS6iyA+IGthaXNodXVrb3VqaVwgOwor5a++5oqX5oSP6K2YID4gdGFpa291aXNoaWtpXCA7CivpgZPot6/kuqTpgJogPiBkb3Vyb2tvdXRzdXVcIDsKK+azleW7t+S+rui+sSA+IGhvdXRlaWJ1am9rdVwgOwor5YWJ5a2m5qmf5qKwID4ga291Z2FrdWtpa2FpXCA7CivohLHlrZfoqJjlj7cgPiBkYXRzdWppa2lnb3VcIDsKK+WFrOacieawtOmdoiA+IGtvdXl1dXN1aW1lblwgOwor6Zmw5oCn5Y+N5b+cID4gaW5zZWloYW4nJ25vdVwgOwor5Z2H6KGh57WM5riIID4ga2lua291a2VpemFpXCA7CivomK3moL3ln7nms5UgPiByYW5zYWliYWlob3VcIDsKK+atpuijhembhuWboyA+IGJ1c291c2h1dWRhblwgOwor5Y2w6ZGR6Ki85piOID4gaW5rYW5zaG91bWVpXCA7Civln5/lhoXosr/mmJMgPiBpa2luYWlib3Vla2lcIDsKK+S9v+W+kuihjOS8nSA+IHNoaXRvZ3lvdWRlblwgOwor5L2z5Lq66JaE5ZG9ID4ga2FqaW5oYWt1bWVpXCA7CivmnInkvZPos4fnlKMgPiB5dXV0YWlzaGlzYW5cIDsKK+WvvuazsOmWouS/giA+IHRhaXRhaWthbmtlaVwgOwor5qyn5bee6YCj5ZCIID4gb3VzaHV1cmVuZ291XCA7CivlpbPlrZDlrabnlJ8gPiBqb3NoaWdha3VzZWlcIDsKK+WNmOe0lOW5s+WdhyA+IHRhbmp1bmhlaWtpblwgOwor5YaN5bqm56K66KqNID4gc2FpZG9rYWt1bmluXCA7CivprLzpnaLkvJ3lv4MgPiBraW1lbmRlbnNoaW5cIDsKK+iyv+aYk+m7kuWtlyA+IGJvdWVraWt1cm9qaVwgOwor57WE5ZCI5ZOh6Ki8ID4ga3VtaWFpaW5zaG91XCA7Civnhp/mn7/kuLvnvqkgPiBqdWt1c2hpc2h1Z2lcIDsKK+WGt+aIv+ijhee9riA+IHJlaWJvdXNvdWNoaVwgOwor54++5Zyw55Sf55SjID4gZ2VuY2hpc2Vpc2FuXCA7CivmlrDogZ7oqJjogIUgPiBzaGluYnVua2lzaGFcIDsKK+Wkp+WxsemztOWLlSA+IHRhaXphbm1laWRvdVwgOwor5rOi54q25pS75pKDID4gaGFqb3Vrb3VnZWtpXCA7CivljZjoqJjmipXnpaggPiB0YW5raXRvdWh5b3VcIDsKK+S4gOasoemWouaVsCA+IGljaGlqaWthbnN1dVwgOwor5bm85b2i6YCy5YyWID4geW91a2Vpc2hpbmthXCA7CivpnZLnianluILloLQgPiBhb21vbm9pY2hpYmFcIDsKK+WtpueUn+mBi+WLlSA+IGdha3VzZWl1bmRvdVwgOwor5aCx5b6p5o6q572uID4gaG91ZnVrdXNvY2hpXCA7Civlm57lvqnlj6/og70gPiBrYWlmdWt1a2Fub3VcIDsKK+ato+inkuWumuacqCA+IHNlaWtha3Vqb3VnaVwgOwor5q205Y+y5Zyw55CGID4gcmVraXNoaWNoaXJpXCA7CivlubTkuK3nhKHkvJEgPiBuZW5qdXVtdWt5dXVcIDsKK+eUu+ernOeCueedmyA+IGdhcnlvdXRlbnNlaVwgOwor5Luj5pWw55qE5ZKMID4gZGFpc3V1dGVraXdhXCA7Civlt6blj7Pnm7jnp7AgPiBzYXl1dXNvdXNob3VcIDsKK+W4neWbveS4u+e+qSA+IHRlaWtva3VzaHVnaVwgOwor6KW/5rSL5p2+6ZyyID4gc2VpeW91c2hvdXJvXCA7Civlm57ou6Lli5jlrpogPiBrYWl0ZW5rYW5qb3VcIDsKK+S+neiol+WwhOaSgyA+IGl0YWt1c2hhZ2VraVwgOwor5q2j6KaP6KGo54++ID4gc2Vpa2loeW91Z2VuXCA7Civnt4/poJjkuovppKggPiBzb3VyeW91amlrYW5cIDsKK+ebl+mbo+mYsuatoiA+IHRvdW5hbmJvdXNoaVwgOwor5ruF56eB5aWJ5YWsID4gbWVzc2hpaG91a291XCA7Civnt4/lkIjnp5HlraYgPiBzb3Vnb3VrYWdha3VcIDsKK+aLmOadn+aZgumWkyA+IGtvdXNva3VqaWthblwgOwor5Zub5pa55YWr5pa5ID4gc2hpaG91aGFwcG91XCA7CivkuLvopoHoq7jlhYMgPiBzaHV5b3VzaG9nZW5cIDsKK+WNgeWIhuadoeS7tiA+IGp1dWJ1bmpvdWtlblwgOwor5pmC5Luj5oCd5r2uID4gamlkYWlzaGljaG91XCA7Civku6PnkIbmipXnpaggPiBkYWlyaXRvdWh5b3VcIDsKK+WPpOWFuOmfs+alvSA+IGtvdGVuJydvbmdha3VcIDsKK+mKgOihjOW8t+eblyA+IGdpbmtvdWdvdXRvdVwgOwor6LW354iG6KOF572uID4ga2liYWt1c291Y2hpXCA7CivpgK7mjZXoqLHoq74gPiB0YWlob2t5b2Rha3VcIDsKK+atr+eJmeeWvuaCoyA+IHNoaWdhc2hpa2thblwgOwor5YWx5ZCM56WW55WMID4ga3lvdWRvdXNva2FpXCA7Civmsrnmlq3lpKfmlbUgPiB5dWRhbnRhaXRla2lcIDsKK+Wwgualrei+suWutiA+IHNlbmd5b3Vub3VrYVwgOwor54ax5Y+v5aGR5oCnID4gbmV0c3VrYXNvc2VpXCA7CivluILmnInosqHnlKMgPiBzaGl5dXV6YWlzYW5cIDsKK+WbveWutuizoOWEnyA+IGtva2thYmFpc2hvdVwgOwor6Z2Z5oWL57eP6KiIID4gc2VpdGFpc291a2VpXCA7CivlsILploDpm5HoqowgPiBzZW5tb256YXNzaGlcIDsKK+W8vuS4uOWIl+i7iiA+IGRhbmdhbnJlc3NoYVwgOwor5aSn5q2j5pmC5LujID4gdGFpc2hvdWppZGFpXCA7CivoqK3oqIjlpInmm7QgPiBzZWtrZWloZW5rb3VcIDsKK+S6huino+S6i+mghSA+IHJ5b3VrYWlqaWtvdVwgOwor5a6f6aiT5q616ZqOID4gamlra2VuZGFua2FpXCA7Civlrpjlg5rmlL/msrsgPiBrYW5yeW91c2VpamlcIDsKK+S6uueoruWVj+mhjCA+IGppbnNodW1vbmRhaVwgOwor5ryU57+S5ZWP6aGMID4gZW5zaHV1bW9uZGFpXCA7CivlirTlg43ntYTlkIggPiByb3Vkb3VrdW1pYWlcIDsKK+mGh+miqOe+juS/lyA+IGp1bnB1dWJpem9rdVwgOwor6YCg5Y+N5pyJ55CGID4gem91aGFuJyd5dXVyaVwgOwor5raI6LK75oCn5ZCRID4gc2hvdWhpc2Vpa291XCA7CivlvqHnlKjmlrDogZ4gPiBnb3lvdXNoaW5idW5cIDsKK+WFrOWumuS+oeagvCA+IGtvdXRlaWtha2FrdVwgOwor5aCG56mN5L2c55SoID4gdGFpc2VraXNheW91XCA7CivmlLvlrojlkIznm58gPiBrb3VzaHVkb3VtZWlcIDsKK+W3peenkeWkp+WtpiA+IGtvdWthZGFpZ2FrdVwgOwor56S+5YWs6YCj5ZCIID4gc2hha291cmVuZ291XCA7Civou43kuovmlZnnt7QgPiBndW5qaWt5b3VyZW5cIDsKK+W5s+WSjOadoee0hCA+IGhlaXdham91eWFrdVwgOwor54Sh6LOH5qC86ICFID4gbXVzaGlrYWt1c2hhXCA7Civnm7jmrrrplqLnqI4gPiBzb3VzYWlrYW56ZWlcIDsKK+WNs+aZguWBnOaIpiA+IHNva3VqaXRlaXNlblwgOwor5ris5Zyw6KGb5pifID4gc29rdWNoaWVpc2VpXCA7CivnqbrkuK3mta7pgYogPiBrdXVjaHV1ZnV5dXVcIDsKK+S/oeeUqOipkOasuiA+IHNoaW4nJ3lvdXNhZ2lcIDsKK+aYjuecuOeak+atryA+IG1laWJvdWtvdXNoaVwgOwor5LiK562J5YW15pu5ID4gam91dG91aGVpc291XCA7Civph5HliKnmlL/nrZYgPiBraW5yaXNlaXNha3VcIDsKK+iNieagueacqOeariA+IHNvdWtvbm1va3VoaVwgOwor5Yq05YON54G95a6zID4gcm91ZG91c2FpZ2FpXCA7CivmjqjlrprlubTpvaIgPiBzdWl0ZWluZW5yZWlcIDsKK+aXpeacrOaWh+WtpiA+IG5paG9uYnVuZ2FrdVwgOwor5a6f6aiT56eR5a2mID4gamlra2Vua2FnYWt1XCA7CivljbHpmbrkv6Hlj7cgPiBraWtlbnNoaW5nb3VcIDsKK+ilv+asp+iruOWbvSA+IHNlaW91c2hva29rdVwgOwor5aSc6ZaT5Za25qWtID4geWFrYW4nJ2VpZ3lvdVwgOwor5L2/5b6S5om/5LydID4gc2hpdG9zaG91ZGVuXCA7Civlm73lrrbkuLvluK0gPiBrb2trYXNodXNla2lcIDsKK+mbquimi+eBr+exoCA+IHl1a2ltaWRvdXJvdVwgOwor5Li75bit5Yik5LqLID4gc2h1c2VraWhhbmppXCA7Civlrpjoo73okYnmm7ggPiBrYW5zZWloYWdha2lcIDsKK+S8neiomOaWh+WtpiA+IGRlbmtpYnVuZ2FrdVwgOwor5Yi25YuV5pS+5bCEID4gc2VpZG91aG91c2hhXCA7Civms5XlvovooYzngrogPiBob3VyaXRzdWtvdWlcIDsKK+WFseeUo+WbveWutiA+IGt5b3VzYW5rb2trYVwgOwor5pWZ6IKy5qmf6ZaiID4ga3lvdWlrdWtpa2FuXCA7CivpnZ7luLjkv6Hlj7cgPiBoaWpvdXNoaW5nb3VcIDsKK+mbquimi+manOWtkCA+IHl1a2ltaXNob3VqaVwgOwor5qmf5qeL5pS56Z2pID4ga2lrb3VrYWlrYWt1XCA7CivlvqHnjonmnZPlrZAgPiBvdGFtYWpha3VzaGlcIDsKK+acgOe1gue1kOaenCA+IHNhaXNodXVrZWtrYVwgOwor54m55oG16Zai56iOID4gdG9ra2Vpa2FuemVpXCA7CivlnLDpnIfkuojnn6UgPiBqaXNoaW4nJ3lvY2hpXCA7CivlhbHlkIzli5/ph5EgPiBreW91ZG91Ym9raW5cIDsKK+S6i+WLmeW9k+WxgCA+IGppbXV0b3VreW9rdVwgOwor5LiJ5Y+36ZuR6KqMID4gc2FuZ291emFzc2hpXCA7CivmvI/mtKnpm7vmtYEgPiByb3VlaWRlbnJ5dXVcIDsKK+Wuo+aIpuW4g+WRiiA+IHNlbnNlbmZ1a29rdVwgOwor5YWx55Sj5Zyw5Yy6ID4ga3lvdXNhbmNoaWt1XCA7Civku6PnlKjmlZnlk6EgPiBkYWl5b3VreW91aW5cIDsKK+S4ieinkuWumuimjyA+IHNhbmtha3Vqb3VnaVwgOwor6KW/5rSL5bCG5qOLID4gc2VpeW91c2hvdWdpXCA7Civkv6Hlj7fnhKHoppYgPiBzaGluZ291bXVzaGlcIDsKK+Wcn+WcsOaUuemdqSA+IHRvY2hpa2Fpa2FrdVwgOwor54Cs5oi454mp5biCID4gc2V0b21vbm9pY2hpXCA7CivlronlgI3lt53ppIUgPiBhYmVrYXdhbW9jaGlcIDsKK+adseasp+iruOWbvSA+IHRvdW91c2hva29rdVwgOwor6Leh55uu55u457aaID4gYXRvbWVzb3V6b2t1XCA7Civkurrlt6XlkbzlkLggPiBqaW5rb3Vrb2t5dXVcIDsKK+iIquepuumDteS+vyA+IGtvdWt1dXl1dWJpblwgOwor5Lim6KGM6Ly45YWlID4gaGVpa291eXVueXV1XCA7CivntYzmuIjmoLzlt64gPiBrZWl6YWlrYWt1c2FcIDsKK+ekvuS8muizh+acrCA+IHNoYWthaXNoaWhvblwgOwor5aSW5Lqk54m55qipID4gZ2Fpa291dG9ra2VuXCA7Civmpa3li5nmj5DmkLogPiBneW91bXV0ZWlrZWlcIDsKK+a9nOWcqOaEj+itmCA+IHNlbnphaWlzaGlraVwgOwor5Yi25b6h6KOF572uID4gc2VpZ3lvc291Y2hpXCA7CivmiYDmiYDmlrnmlrkgPiBzaG9zaG9ob3Vib3VcIDsKK+WbuuS9k+eHg+aWmSA+IGtvdGFpbmVucnlvdVwgOwor6by75YWD5oCd5qGIID4gaGFuYW1vdG9qaWFuXCA7Civlj7PmipjnpoHmraIgPiB1c2V0c3VraW5zaGlcIDsKK+WNg+aAneS4h+iAgyA+IHNlbnNoaWJhbmtvdVwgOwor5L6d6aGY6YCA6IG3ID4gaWdhbnRhaXNob2t1XCA7CivkuInpg6jlkIjllLEgPiBzYW5idWdhc3Nob3VcIDsKK+iogOiqnuS4reaeoiA+IGdlbmdvY2h1dXN1dVwgOwor54++5Luj5paH5piOID4gZ2VuZGFpYnVubWVpXCA7CivppIrorbflrabntJogPiB5b3Vnb2dha2t5dXVcIDsKK+Wbnui7oumBi+WLlSA+IGthaXRlbicndW5kb3VcIDsKK+mBi+i8uOalreiAhSA+IHVuJyd5dWd5b3VzaGFcIDsKK+efs+ayueWFrOWboyA+IHNla2l5dWtvdWRhblwgOwor5bGA6YOo6bq76YWUID4ga3lva3VidW1hc3VpXCA7CivnvqnlpKrlpKvnr4AgPiBnaWRheXV1YnVzaGlcIDsKK+mHkeWxnuWKoOW3pSA+IGtpbnpva3VrYWtvdVwgOwor5oKq5oCn6IWr55iNID4gYWt1c2Vpc2h1eW91XCA7Civppqzpub/mraPnm7QgPiBiYWthc2hvdWppa2lcIDsKK+WQiOW8geS8muekviA+IGdvdWJlbmdhaXNoYVwgOwor5YWs55uK5LqL5qWtID4ga291ZWtpamlneW91XCA7Civkv6Hlj7fpm7vms6IgPiBzaGluZ291ZGVucGFcIDsKK+a0peOAhea1puOAhSA+IHRzdWR6dXVyYXVyYVwgOwor5YaF6Lyq5ZCM5b+XID4gdWNoaXdhZG91c2hpXCA7CivnpL7kvJrkuovmpa0gPiBzaGFrYWlqaWd5b3VcIDsKK+mbtue0sOS8gealrSA+IHJlaXNhaWtpZ3lvdVwgOwor5Zu95a6a5YWs5ZySID4ga29rdXRlaWtvdWVuXCA7Civlv5zlipvlvoTot68gPiBvdXJ5b2t1a2Vpcm9cIDsKK+aOp+iotOajhOWNtCA+IGtvdXNva2lreWFrdVwgOwor6YCa5Yuk5a6a5pyfID4gdHN1dWtpbnRlaWtpXCA7CivmrbTlj7LlnLDlm7MgPiByZWtpc2hpY2hpenVcIDsKK+mbu+WtkOmDteS+vyA+IGRlbnNoaXl1dWJpblwgOwor5Lq65bel55+l6IO9ID4gamlua291Y2hpbm91XCA7CivnqbrkuK3mipXkuIsgPiBrdXVjaHV1dG91a2FcIDsKK+alveWkqeS4u+e+qSA+IHJha3V0ZW5zaHVnaVwgOwor5rW35aSW5oqV6LOHID4ga2FpZ2FpdG91c2hpXCA7CivmmpfoqLznlarlj7cgPiBhbnNob3ViYW5nb3VcIDsKK+W5tOm9ouWItumZkCA+IG5lbnJlaXNlaWdlblwgOwor5L6h5qC85oim5LqJID4ga2FrYWt1c2Vuc291XCA7Civpq5jpgJ/luqbpi7wgPiBrb3Vzb2t1ZG9rb3VcIDsKK+eBq+WKm+aUr+aPtCA+IGthcnlva3VzaGllblwgOwor6auY6YCf6YGT6LevID4ga291c29rdWRvdXJvXCA7Civkvb/nlKjnpoHmraIgPiBzaGl5b3VraW5zaGlcIDsKK+WGoOWpmuiRrOelrSA+IGthbmtvbnNvdXNhaVwgOwor5rC05bmz5bC+57+8ID4gc3VpaGVpYml5b2t1XCA7CivmsbrorbDmqZ/plqIgPiBrZXRzdWdpa2lrYW5cIDsKK+mAo+mOluWPjeW/nCA+IHJlbnNhaGFuJydub3VcIDsKK+W4guawkeekvuS8miA+IHNoaW1pbnNoYWthaVwgOwor6YOo5YiG6ZuG5ZCIID4gYnVidW5zaHV1Z291XCA7Civlm5vmjajkupTlhaUgPiBzaGlzaGFnb255dXVcIDsKK+WPl+iol+S8muekviA+IGp1dGFrdWdhaXNoYVwgOwor5ZWP6aGM5oSP6K2YID4gbW9uZGFpaXNoaWtpXCA7Civph5Hono3lhazluqsgPiBraW4nJ3l1dWtvdWtvXCA7Civlj4vpgZTnlLLmlpAgPiB0b21vZGFjaGlnYWlcIDsKK+S4gOiIrOaVmemkiiA+IGlwcGFua3lvdXlvdVwgOwor5a6J5a6a5oGQ5oWMID4gYW50ZWlreW91a291XCA7CivmsLTntKDljJbniakgPiBzdWlzb2thYnV0c3VcIDsKK+eSsOWig+WkieWMliA+IGthbmt5b3VoZW5rYVwgOwor5L2T5qC85qSc5p+7ID4gdGFpa2FrdWtlbnNhXCA7CivljJblrablkIjmiJAgPiBrYWdha3Vnb3VzZWlcIDsKK+W5s+W5s+WHoeWHoSA+IGhlaWhlaWJvbmJvblwgOwor5biC5aC05L6h5qC8ID4gc2hpam91a2FrYWt1XCA7CivlloTpmqPplqLkv4IgPiB6ZW5yaW5rYW5rZWlcIDsKK+WQiOaIkOa0l+WJpCA+IGdvdXNlaXNlbnphaVwgOwor6Kaz5b+15Li7576pID4ga2FuJyduZW5zaHVnaVwgOwor6YCa5Yuk5pmC6ZaTID4gdHN1dWtpbmppa2FuXCA7CivntYzmuIjkvZPliLYgPiBrZWl6YWl0YWlzZWlcIDsKK+S9j+aJgOawj+WQjSA+IGp1dXNob3NoaW1laVwgOwor55a+6aKo5oCS5r+kID4gc2hpcHB1dWRvdG91XCA7CivljLvnmYLmnZDmlpkgPiBpcnlvdXphaXJ5b3VcIDsKK+acieapn+i+sualrSA+IHl1dWtpbm91Z3lvdVwgOwor5aao5a6z5pS+6YCBID4gYm91Z2FpaG91c291XCA7Civph5HlsZ7lhYPntKAgPiBraW56b2t1Z2Vuc29cIDsKK+atr+WGheeZguazlSA+IHNoaWthcnlvdWhvdVwgOwor5oKq5oiv5bCP5YOnID4gaXRhenVyYWtvem91XCA7CivlhajmqKnlpKfkvb8gPiB6ZW5rZW50YWlzaGlcIDsKK+WNseaApeWtmOS6oSA+IGtpa3l1dXNvbmJvdVwgOwor5a6H5a6Z5Lit57aZID4gdWNodXVjaHV1a2VpXCA7CivpnZ7kurrplpPnmoQgPiBoaW5pbmdlbnRla2lcIDsKK+WPl+S/oeijhee9riA+IGp1c2hpbnNvdWNoaVwgOwor5pWw5YCk6KiI566XID4gc3V1Y2hpa2Vpc2FuXCA7CivniYfoqIDpmrvoqp4gPiBoZW5nZW5zZWtpZ29cIDsKK+aHkOS4reaZguioiCA+IGthaWNodXVkb2tlaVwgOwor56u26Lyq6YG45omLID4ga2Vpcmluc2Vuc2h1XCA7Civmmpflj7fop6Poqq0gPiBhbmdvdWthaWRva3VcIDsKK+WPjeWLleaAneaDsyA+IGhhbmRvdXNoaXNvdVwgOwor5a6f6Ki85Li7576pID4gamlzc2hvdXNodWdpXCA7CivmqJnmupblgY/lt64gPiBoeW91anVuaGVuc2FcIDsKK+izh+a6kOWVj+mhjCA+IHNoaWdlbm1vbmRhaVwgOwor6YGL6YCB5qWt6ICFID4gdW5zb3VneW91c2hhXCA7CivooYzli5XlnLDluK8gPiBrb3Vkb3VjaGl0YWlcIDsKK+W5s+etieS4u+e+qSA+IGJ5b3Vkb3VzaHVnaVwgOwor5Lqk5Luj5oqV5omLID4ga291dGFpdG91c2h1XCA7Civlm73lrrbni6zljaAgPiBrb2trYWRva3VzZW5cIDsKK+Wcn+WcsOaUueiJryA+IHRvY2hpa2FpcnlvdVwgOwor55Kw5aKD5Z+65rqWID4ga2Fua3lvdWtpanVuXCA7CivlpJbkuqTmlofmm7ggPiBnYWlrb3VidW5zaG9cIDsKK+i7veaMmeWmhOWLlSA+IGtlaWt5b21vdWRvdVwgOwor6Ziy6Jmr5Yqg5belID4gYm91Y2h1dWtha291XCA7CivkuI3lnKjmipXnpaggPiBmdXphaXRvdWh5b3VcIDsKK+WrjOeFmemBi+WLlSA+IGtlbicnZW4nJ3VuZG91XCA7CivlsIHnt5jokYnmm7ggPiBmdXVrYW5oYWdha2lcIDsKK+azsOeEtuiHquiLpSA+IHRhaXplbmppamFrdVwgOwor5pWX5YyX5Li7576pID4gaGFpYm9rdXNodWdpXCA7CivkvqHmoLzmgKfog70gPiBrYWtha3VzZWlub3VcIDsKK+abuOmhnumAgeaknCA+IHNob3J1aXNvdWtlblwgOwor5Lq65qip5ZWP6aGMID4gamlua2VubW9uZGFpXCA7CivkuIDmrbvloLHlm70gPiBpc3NoaWhvdWtva3VcIDsKK+e3tOmmrOWkp+aguSA+IG5lcmltYWRhaWtvblwgOwor5LiA57O45LiA5q+rID4gaXNzaGlpY2hpZ291XCA7Civnibnmrorkuovmg4UgPiB0b2t1c2h1amlqb3VcIDsKK+iAgeWwkeS4jeWumiA+IHJvdXNob3VmdXRlaVwgOwor55u45LmX5bmz5Z2HID4gc291am91aGVpa2luXCA7CivkuIflubTlgJnoo5wgPiBtYW4nJ25lbmtvdWhvXCA7CivlronlhajmlZnogrIgPiBhbnplbmt5b3Vpa3VcIDsKK+eEoeizg+S5l+i7iiA+IG11Y2hpbmpvdXNoYVwgOwor54mH5YuZ5aWR57SEID4gaGVubXVrZWl5YWt1XCA7CivkuIDoiKzlpKfooYYgPiBpcHBhbnRhaXNodXVcIDsKK+WPpOWFuOaWh+WtpiA+IGtvdGVuYnVuZ2FrdVwgOwor6auY5qCh6YeO55CDID4ga291a291eWFreXV1XCA7CivkuI3lr6noqIrllY8gPiBmdXNoaW5qaW5tb25cIDsKK+S4reiPr+aWmeeQhiA+IGNodXVrYXJ5b3VyaVwgOwor5YGl5bq354q25oWLID4ga2Vua291am91dGFpXCA7Civpub/lhZDls7bnnIwgPiBrYWdvc2hpbWFrZW5cIDsKK+a6luWCmeeKtuazgSA+IGp1bmJpam91a3lvdVwgOwor6YG45aSW5L2z5L2cID4gc2VuZ2Fpa2FzYWt1XCA7CivoqIDoqp7mlZnogrIgPiBnZW5nb2t5b3Vpa3VcIDsKK+WQjOaWh+WQjOeoriA+IGRvdWJ1bmRvdXNodVwgOwor57Wm5LiO5L2T57O7ID4ga3l1dXlvdGFpa2VpXCA7Civpurvolqzniq/nvaogPiBtYXlha3VoYW56YWlcIDsKK+acneS7pOaaruaUuSA+IGNob3VyZWlib2thaVwgOwor5LqS5oG15p2h57SEID4gZ29rZWlqb3V5YWt1XCA7CivkuIDlm73kuIDnpaggPiBpa2tva3VpcHB5b3VcIDsKK+egsuiJpuWkluS6pCA+IGhvdWthbmdhaWtvdVwgOwor5rWB6KGM6KiA6JGJID4gaGF5YXJpa290b2JhXCA7CivkuqTpgJrmqZ/plqIgPiBrb3V0c3V1a2lrYW5cIDsKK+awtOmKgOmbu+axoCA+IHN1aWdpbmRlbmNoaVwgOwor6L+95ZaE5L6b6aSKID4gdHN1aXplbmt1eW91XCA7Civku5blipvmnKzpoZggPiB0YXJpa2lob25nYW5cIDsKK+espuWPt+ino+iqrSA+IGZ1Z291a2FpZG9rdVwgOwor55+l6IO95oyH5pWwID4gY2hpbm91c2hpc3V1XCA7CivlvZPllrbmpa3miYAgPiB0b3VlaWd5b3VzaG9cIDsKK+iBt+WToeS8muitsCA+IHNob2t1aW5rYWlnaVwgOwor6KiA6Kqe54m55pyJID4gZ2VuZ290b2t1eXV1XCA7CivmnIDlsI/pmZDluqYgPiBzYWlzaG91Z2VuZG9cIDsKK+afk+S6leWQiemHjiA+IHNvbWVpeW9zaGlub1wgOwor5a6M5YWo54qv572qID4ga2FuemVuaGFuemFpXCA7CivmlZnogrLliLbluqYgPiBreW91aWt1c2VpZG9cIDsKK+aIpuWbveaZguS7oyA+IHNlbmdva3VqaWRhaVwgOwor5YmN6aeG55eH54q2ID4gemVua3VzaG91am91XCA7CivntKvntqzopJLos54gPiBzaGlqdWhvdXNob3VcIDsKK+S4gOiogOWNiuWPpSA+IGljaGlnb25oYW5rdVwgOwor5LiN5rOV5Y2g5pyJID4gZnVob3VzZW4nJ3l1dVwgOwor5a625bqt55Kw5aKDID4ga2F0ZWlrYW5reW91XCA7CivoiJ7lj7Dnm6PnnaMgPiBidXRhaWthbnRva3VcIDsKK+WQiOaIkOearumdqSA+IGdvdXNlaWhpa2FrdVwgOwor5Zyo5a6F5Yuk5YuZID4gemFpdGFrdWtpbm11XCA7CivkuI3lnKjlnLDkuLsgPiBmdXphaWppbnVzaGlcIDsKK+S4gOWuv+S4gOmjryA+IGlzc2h1a3VpcHBhblwgOwor6ICB5Lq655eF6ZmiID4gcm91amluYnlvdWluXCA7CivniYfogrrpo5vooYwgPiBrYXRhaGFpaGlrb3VcIDsKK+Wvvua9nOawtOiJpiA+IHRhaXNlbnN1aWthblwgOwor6K2m5oiS6K2m5aCxID4ga2Vpa2Fpa2VpaG91XCA7CivntK/nqY3otaTlrZcgPiBydWlzZWtpYWthamlcIDsKK+WutuaXj+ani+aIkCA+IGthem9rdWtvdXNlaVwgOwor5YaF5p+U5aSW5YmbID4gbmFpanV1Z2FpZ291XCA7CivlsZ7kurrkuLvnvqkgPiB6b2t1amluc2h1Z2lcIDsKK+ehrOi7n+S4oea0viA+IGtvdW5hbnJ5b3VoYVwgOwor5bqn5bit55Wq5Y+3ID4gemFzZWtpYmFuZ291XCA7CivnqbrkuK3mta7mj5ogPiBrdXVjaHV1ZnV5b3VcIDsKK+S4geeomuWlieWFrCA+IGRldGNoaWJvdWtvdVwgOwor5LiA5pa55Lqk6YCaID4gaXBwb3Vrb3V0c3V1XCA7CivkuInml6XmnIjlvaIgPiBtaWthZHp1a2lrZWlcIDsKK+aknOS6i+e3j+mVtyA+IGtlbmppc291Y2hvdVwgOwor5paw6KaP5oqV6LOHID4gc2hpbmtpdG91c2hpXCA7CivljZjoqp7mpJzntKIgPiB0YW5nb2tlbnNha3VcIDsKK+maoOWMv+eJqeizhyA+IGludG9rdWJ1c3NoaVwgOwor5aWz5Lq656aB5Yi2ID4gbnlvbmlua2luc2VpXCA7CivlpKfkv67pgZPpmaIgPiBkYWlzaHV1ZG91aW5cIDsKK+ajruael+WFrOWckiA+IHNoaW5yaW5rb3VlblwgOwor5Y+X6aiT6LOH5qC8ID4ganVrZW5zaGlrYWt1XCA7CivlpKflkozoqIDokYkgPiB5YW1hdG9rb3RvYmFcIDsKK+WEgOW8j+S4u+e+qSA+IGdpc2hpa2lzaHVnaVwgOwor6YCg5bGx6YGL5YuVID4gem91emFuJyd1bmRvdVwgOwor5LiA6Iis5pWZ6IKyID4gaXBwYW5reW91aWt1XCA7Civnq4vkvZPpn7Ppn78gPiByaXR0YWlvbmt5b3VcIDsKK+eJuembhuiomOS6iyA+IHRva3VzaHV1a2lqaVwgOwor5LuY5biv5rG66K2wID4gZnV0YWlrZXRzdWdpXCA7Civoo73ntJnlt6XloLQgPiBzZWlzaGlrb3Vqb3VcIDsKK+aVkeaPtOaKleaJiyA+IGt5dXVlbnRvdXNodVwgOwor6LKh5Zuj5rOV5Lq6ID4gemFpZGFuaG91amluXCA7CivmsJHkv5foiJ7ouIogPiBtaW56b2t1YnV5b3VcIDsKK+aIpuS6ieeKr+e9qiA+IHNlbnNvdWhhbnphaVwgOwor6Zuj54eD5Yqg5belID4gbmFuJyduZW5rYWtvdVwgOwor5Y2X6Ii55YyX6aasID4gbmFuc2VuaG9rdWJhXCA7CivmqZ/og73pmpzlrrMgPiBraW5vdXNob3VnYWlcIDsKK+aXpeacrOWbveawkSA+IG5paG9ua29rdW1pblwgOwor6Iie6LiP5pWZ5birID4gYnV0b3VreW91c2hpXCA7CivmnpfplpPlrabmoKEgPiByaW5rYW5nYWtrb3VcIDsKK+iKsemtgemBk+S4rSA+IG9pcmFuZG91Y2h1dVwgOwor5ruR6ZmN56u25oqAID4ga2Fra291a3lvdWdpXCA7CivlnKjlpJblhazppKggPiB6YWlnYWlrb3VrYW5cIDsKK+WcsOaWuemBuOaMmSA+IGNoaWhvdXNlbmt5b1wgOwor5ZCI5oiQ5YyW5a2mID4gZ291c2Vpa2FnYWt1XCA7Civnp4Hoo73okYnmm7ggPiBzaGlzZWloYWdha2lcIDsKK+S4jeWumuepjeWIhiA+IGZ1dGVpc2VraWJ1blwgOwor5q2j44CF5aCC44CFID4gc2Vpc2VpZG91ZG91XCA7CivljYrkv6HljYrnlpEgPiBoYW5zaGluaGFuZ2lcIDsKK+i8uOWFpei2hemBjiA+IHl1bnl1dWNob3VrYVwgOwor5Zub5YWD6YCf5bqmID4gc2hpZ2Vuc29rdWRvXCA7Civku5jlsZ7lrabmoKEgPiBmdXpva3VnYWtrb3VcIDsKK+S6uuW3peecn+ePoCA+IGppbmtvdXNoaW5qdVwgOwor5Lq65qip5Zuj5L2TID4gamlua2VuZGFudGFpXCA7CivmnKzmlofmibnoqZUgPiBob25tb25oaWh5b3VcIDsKK+eUu+m+jeeCueedmyA+IGdhcnlvdXRlbnNlaVwgOwor5Lm+5Zyw6L6y5rOVID4ga2FuY2hpbm91aG91XCA7Civllqfllqflm4Llm4IgPiBrZW5rZW5nb3Vnb3VcIDsKK+S6uuWumuWwi+WVjyA+IGppbnRlaWppbm1vblwgOwor5Lu75pyf5rqA5LqGID4gbmlua2ltYW5yeW91XCA7Civnq7bppqzmlrDogZ4gPiBrZWliYXNoaW5idW5cIDsKK+mbu+awl+W3peWtpiA+IGRlbmtpa291Z2FrdVwgOwor5L6b57Wm6YGO5aSaID4ga3lvdWt5dXVrYXRhXCA7Civlj6PpoK3lr6nnkIYgPiBrb3V0b3VzaGlucmlcIDsKK+W5s+WSjOaVmeiCsiA+IGhlaXdha3lvdWlrdVwgOwor57eP5ZCI55eF6ZmiID4gc291Z291YnlvdWluXCA7CivkuIrlsaTmsJfmtYEgPiBqb3Vzb3VraXJ5dXVcIDsKK+iAgem9ouW5tOmHkSA+IHJvdXJlaW5lbmtpblwgOwor5ryU5aWP57e057+SID4gZW5zb3VyZW5zaHV1XCA7Civku5XmjpvlnLDpm7cgPiBzaGlrYWtlamlyYWlcIDsKK+Wbnui7ouizh+mHkSA+IGthaXRlbnNoaWtpblwgOwor5pqX5Lit5qih57SiID4gYW5jaHV1bW9zYWt1XCA7CivllK/miJHni6zlsIogPiB5dWlnYWRva3Vzb25cIDsKK+mbhuaVo+S4u+e+qSA+IHNodXVzYW5zaHVnaVwgOwor5Zyf55Sj54mp5bGLID4gbWl5YWdlbW9ub3lhXCA7Civoh6rntaboh6rotrMgPiBqaWt5dXVqaXNva3VcIDsKK+WSjOW5s+WNlOWumiA+IHdhaGVpa3lvdXRlaVwgOwor5Zyw5pa55YiG5qipID4gY2hpaG91YnVua2VuXCA7CivluILlhoXoprPlhYkgPiBzaGluYWlrYW5rb3VcIDsKK+aUvuWwhOiDvembqCA+IGhvdXNoYW5vdWFtZVwgOwor6Kuc5aCx5qmf6ZaiID4gY2hvdWhvdWtpa2FuXCA7CivlsLHlrabnvqnli5kgPiBzaHV1Z2FrdWdpbXVcIDsKK+iIquepuuWEquWLoiA+IGtvdWt1dXl1dXNlaVwgOwor5Lq65omN55m755SoID4gamluemFpdG91eW91XCA7CivopIfmnKzkvY3liLYgPiBmdWt1aG9uJydpc2VpXCA7CivnlJ/mtLvkv53orbcgPiBzZWlrYXRzdWhvZ29cIDsKK+mbhuS4reixqumbqCA+IHNodXVjaHV1Z291dVwgOwor5b605YW15YWN6ZmkID4gY2hvdWhlaW1lbmpvXCA7CivlhazlrrPllY/poYwgPiBrb3VnYWltb25kYWlcIDsKK+WNmOi6q+i1tOS7uyA+IHRhbnNoaW5mdW5pblwgOwor5beu5Yil55So6KqeID4gc2FiZXRzdXlvdWdvXCA7Civkurrlj6Pli5XmhYsgPiBqaW5rb3Vkb3V0YWlcIDsKK+Wuh+WumeeJqeeQhiA+IHVjaHV1YnV0c3VyaVwgOwor5YWo6Z2i5oim5LqJID4gemVubWVuc2Vuc291XCA7CivntYzmuIjnirbmhYsgPiBrZWl6YWlqb3V0YWlcIDsKK+WnlOiol+eglOeptiA+IGl0YWt1a2Vua3l1dVwgOwor5Y2D6L6b5LiH6IumID4gc2Vuc2hpbmJhbmt1XCA7CivljLvnmYLloLHphawgPiBpcnlvdWhvdXNodXVcIDsKK+awtOaZtuaZguioiCA+IHN1aXNob3Vkb2tlaVwgOwor5LiJ5paH5paH5aOrID4gc2FubW9uYnVuc2hpXCA7Civlm57ou6LmnKjppqwgPiBrYWl0ZW5tb2t1YmFcIDsKK+S4jeaIpuadoee0hCA+IGZ1c2Vuam91eWFrdVwgOwor5LiA55Sf5oe45ZG9ID4gaXNzaG91a2VubWVpXCA7Civml6XpgLLmnIjmrakgPiBuaXNzaGluZ2VwcG9cIDsKK+WPl+iol+iyqeWjsiA+IGp1dGFrdWhhbmJhaVwgOwor5paH5YyW5Yuy56ugID4gYnVua2FrdW5zaG91XCA7CivmgqDmgqDplpHplpEgPiB5dXV5dXVrYW5rYW5cIDsKK+S7j+iLsei+nuWFuCA+IGZ1dHN1ZWlqaXRlblwgOwor6KGb55Sf5bel5a2mID4gZWlzZWlrb3VnYWt1XCA7CivmlL/opovmlL7pgIEgPiBzZWlrZW5ob3Vzb3VcIDsKK+awtOaAp+Whl+aWmSA+IHN1aXNlaXRvcnlvdVwgOwor5YWI6YCy5YW15ZmoID4gc2Vuc2hpbmhlaWtpXCA7Civoh6rlt7HkuK3lv4MgPiBqaWtvY2h1dXNoaW5cIDsKK+WQjOWSjOaVmeiCsiA+IGRvdXdha3lvdWlrdVwgOwor5a2m6b2i5YWQ56ulID4gZ2FrdXJlaWppZG91XCA7CivogZblnLDlt6HnpLwgPiBzZWljaGlqdW5yZWlcIDsKK+ekvuWbo+azleS6uiA+IHNoYWRhbmhvdWppblwgOwor6LKo54mp6Ly46YCBID4ga2Ftb3RzdXl1c291XCA7CivmraPlpJrop5LlvaIgPiBzZWl0YWtha3VrZWlcIDsKK+mbu+awl+WuuemHjyA+IGRlbmtpeW91cnlvdVwgOwor5rqW56aB5rK755SjID4ganVua2luY2hpc2FuXCA7CivljJblrabmp4vpgKAgPiBrYWdha3Vrb3V6b3VcIDsKK+S4gOWFmueLrOijgSA+IGl0dG91ZG9rdXNhaVwgOwor54Sh6ZmQ5bCP5pWwID4gbXVnZW5zaG91c3V1XCA7CivmuL7nhLbkuIDkvZMgPiBrb256ZW4nJ2l0dGFpXCA7CivmtbflupXlnLDpnIcgPiBrYWl0ZWlqaXNoaW5cIDsKK+WNmuWjq+iqsueoiyA+IGhha3VzaGlrYXRlaVwgOwor5bmz5Z2H5a+/5ZG9ID4gaGVpa2luanVteW91XCA7CivluILmsJHpgYvli5UgPiBzaGltaW4nJ3VuZG91XCA7CivoqJjlv7Xlh7rniYggPiBraW5lbnNodXBwYW5cIDsKK+ijhee9ruWItuW+oSA+IHNvdWNoaXNlaWd5b1wgOwor5Y6f6KOB5Yik5omAID4gZ2Vuc2FpYmFuc2hvXCA7CivljprnlJ/lpKfoh6MgPiBrb3VzZWlkYWlqaW5cIDsKK+ayueiEguW3pealrSA+IHl1c2hpa291Z3lvdVwgOwor57eP5pSv6YWN5Lq6ID4gc291c2hpaGFpbmluXCA7Civml6XnhafmmYLplpMgPiBuaXNzaG91amlrYW5cIDsKK+S4gOiIrOaVmeabuCA+IGlwcGFua3lvdXNob1wgOwor5LiA6YOo5aeL57WCID4gaWNoaWJ1c2hpanV1XCA7CivplqLmlbDljp/lnosgPiBrYW5zdXVnZW5rZWlcIDsKK+S4iemHjeWuneWGoCA+IHNhbmp1dWhvdWthblwgOwor5q2T6YCB6L+O5LyaID4ga2Fuc291Z2Vpa2FpXCA7Civnt4rmgKXpgb/pm6MgPiBraW5reXV1aGluYW5cIDsKK+WIuemCo+S4u+e+qSA+IHNldHN1bmFzaHVnaVwgOwor5bel5qWt5Zyw5Yy6ID4ga291Z3lvdWNoaWt1XCA7CivmiJHmpb3lpJrluIIgPiBnYXJha3V0YWljaGlcIDsKK+i7ouWGmeaNuuafkyA+IHRlbnNoYW5hc3NlblwgOwor6Ieq54S254G95a6zID4gc2hpemVuc2FpZ2FpXCA7CivlpKnkupXmo6fmlbcgPiB0ZW5qb3VzYWppa2lcIDsKK+WFiOihjOadoeS7tiA+IHNlbmtvdWpvdWtlblwgOwor5pyI5LiL5rC35Lq6ID4gZ2Vra2FoeW91amluXCA7CivljLvolqzliIbmpa0gPiBpeWFrdWJ1bmd5b3VcIDsKK+i6q+WFg+S/neiovCA+IG1pbW90b2hvc2hvdVwgOwor57SU5q2j56eR5a2mID4ganVuc2Vpa2FnYWt1XCA7Civkuozph43pgZPlvrMgPiBuaWp1dWRvdXRva3VcIDsKK+aCsuWWnOS6pOS6pCA+IGhpa2lrb21vZ29tb1wgOwor57eK5oCl5YuV6K2wID4ga2lua3l1dWRvdWdpXCA7CivlpKrpmb3pm7vmsaAgPiB0YWl5b3VkZW5jaGlcIDsKK+ihl+mgremMsumfsyA+IGdhaXRvdXJva3VvblwgOwor5Zu96Zqb5qmf6ZaiID4ga29rdXNhaWtpa2FuXCA7CivliY3lgr7lp7/li6IgPiB6ZW5rZWlzaGlzZWlcIDsKK+W4sOWxnuaEj+itmCA+IGtpem9rdWlzaGlraVwgOwor5YWs6KGG5L6/5omAID4ga291c2h1dWJlbmpvXCA7Civml6XmnKzlm73lhoUgPiBuaWhvbmtva3VuYWlcIDsKK+mBuOawkeaAneaDsyA+IHNlbm1pbnNoaXNvdVwgOwor5ZKA5Zq86YGL5YuVID4gc29zaGFrdXVuZG91XCA7CivlhbHlkIznlo7plosgPiBreW91ZG91c29rYWlcIDsKK+iomOW/teWGmeecnyA+IGtpbmVuc2hhc2hpblwgOwor54Gr54e15biD5ZujID4ga290YXRzdWJ1dG9uXCA7CivlhajpnaLnpoHmraIgPiB6ZW5tZW5raW5zaGlcIDsKK+WMl+WbnuW4sOe3miA+IGtpdGFrYWlraXNlblwgOwor6YCj5ZCI6Imm6ZqKID4gcmVuZ291a2FudGFpXCA7Civkurrlkb3mlZHliqkgPiBqaW5tZWlreXV1am9cIDsKK+aIpuS6ieeKtuaFiyA+IHNlbnNvdWpvdXRhaVwgOwor5aWz5a2Q5aSn5a2mID4gam9zaGlkYWlnYWt1XCA7Civlm73lo6vnhKHlj4wgPiBrb2t1c2hpbXVzb3VcIDsKK+W5s+Wdh+S9meWRvSA+IGhlaWtpbicneW9tZWlcIDsKK+S6i+S+i+eglOeptiA+IGppcmVpa2Vua3l1dVwgOwor5YiG5pWj5oqV6LOHID4gYnVuc2FudG91c2hpXCA7Civlgbblg4/npLzmi50gPiBndXV6b3VyZWloYWlcIDsKK+WKueaenOimv+mdoiA+IGtvdWthdGVraW1lblwgOwor57eK5by157ep5ZKMID4ga2luY2hvdWthbndhXCA7CivkuI3oqLHopIfoo70gPiBmdWt5b2Z1a3VzZWlcIDsKK+WMl+asp+elnuipsSA+IGhva3VvdXNoaW53YVwgOwor5Lq65LqL6KGM5pS/ID4gamluamlneW91c2VpXCA7CivmmK3lkozlubTplpMgPiBzaG91d2FuZW5rYW5cIDsKK+WbveWtl+WVj+mhjCA+IGtva3VqaW1vbmRhaVwgOwor5Zu95YuZ5aSn6IejID4ga29rdW11ZGFpamluXCA7CivoqIDoqp7pmpzlrrMgPiBnZW5nb3Nob3VnYWlcIDsKK+WGjeiyqeS+oeagvCA+IHNhaWhhbmtha2FrdVwgOwor5bmz5Z2H5qCq5L6hID4gaGVpa2lua2FidWthXCA7Civlronmga/pppnphbggPiBhbnNva3Vrb3VzYW5cIDsKK+itnOS7o+Wkp+WQjSA+IGZ1ZGFpZGFpbXlvdVwgOwor6YGT6Lev6KiI55S7ID4gZG91cm9rZWlrYWt1XCA7Civlj6Toh6rli5Xou4ogPiBmdXJ1amlkb3VzaGFcIDsKK+WuueWnv+err+m6lyA+IHlvdXNoaXRhbnJlaVwgOwor6KuL6LKg5qWt6ICFID4gdWtlb2lneW91c2hhXCA7CivpgJrluLjlj6Poqp4gPiB0c3V1am91a291Z29cIDsKK+WcqOWklumCpuS6uiA+IHphaWdhaWhvdWppblwgOwor6ZaL5pS+57WM5riIID4ga2FpaG91a2VpemFpXCA7CivkvZPmk43nq7bmioAgPiB0YWlzb3VreW91Z2lcIDsKK+WKtOWDjeWQjOebnyA+IHJvdWRvdWRvdW1laVwgOwor5Zu96Zqb6YO95biCID4ga29rdXNhaXRvc2hpXCA7CivmnInliLrpiYTnt5ogPiB5dXVzaGl0ZXNzZW5cIDsKK+Wbo+S9k+ihjOWLlSA+IGRhbnRhaWtvdWRvdVwgOwor5b+c55So5pWw5a2mID4gb3V5b3VzdXVnYWt1XCA7CivkuqTpgJrlt6Hmn7sgPiBrb3V0c3V1anVuc2FcIDsKK+eEoeaVteiJpumaiiA+IG11dGVraWthbnRhaVwgOwor6Iiq56m65Lya56S+ID4ga291a3V1Z2Fpc2hhXCA7CivlpKfmlL/lpYnpgoQgPiB0YWlzZWlob3VrYW5cIDsKK+S4jeaSk+S4jeWxiCA+IGZ1dG91ZnVrdXRzdVwgOwor55u46Zai6Zai5L+CID4gc291a2Fua2Fua2VpXCA7CivlkIznm5/nvbfmpa0gPiBkb3VtZWloaWd5b3VcIDsKK+i7jeWCmeertuS6iSA+IGd1bmJpa3lvdXNvdVwgOwor5b2i5a655YuV6KmeID4ga2VpeW91ZG91c2hpXCA7Civoo5zntablubnnt5ogPiBob2t5dXVrYW5zZW5cIDsKK+eCuuabv+ijgeWumiA+IGthd2FzZXNhaXRlaVwgOwor6KGo54++5Li7576pID4gaHlvdWdlbnNodWdpXCA7CivmlofmlZnlnLDljLogPiBidW5reW91Y2hpa3VcIDsKK+mHkeWxnueWsuWKtCA+IGtpbnpva3VoaXJvdVwgOwor5by35Yi255aO6ZaLID4ga3lvdXNlaXNva2FpXCA7Civoraboppbnt4/nm6MgPiBrZWlzaGlzb3VrYW5cIDsKK+S7o+ihqOekvuWToSA+IGRhaWh5b3VzaGFpblwgOwor5YCf5bGL5L2P5bGFID4gc2hha3V5YXp1bWFpXCA7CivlvrTlhbXliLbluqYgPiBjaG91aGVpc2VpZG9cIDsKK+efreacn+Wkp+WtpiA+IHRhbmtpZGFpZ2FrdVwgOwor56uL5L2T5pS+6YCBID4gcml0dGFpaG91c291XCA7CivlpKnkupXmoZ/mlbcgPiB0ZW5qb3VzYWppa2lcIDsKK+Wcp+i/q+WMheW4ryA+IGFwcGFrdWhvdXRhaVwgOwor6YCa55So5pyf6ZaTID4gdHN1dXlvdWtpa2FuXCA7Civli4nlvLfmmYLplpMgPiBiZW5reW91amlrYW5cIDsKK+aIuOexjeishOacrCA+IGtvc2VraXRvdWhvblwgOwor5a625bqt5pWZ6IKyID4ga2F0ZWlreW91aWt1XCA7CivlnLDpnIfmjqLpibEgPiBqaXNoaW50YW5rb3VcIDsKK+mBv+mbo+air+WtkCA+IGhpbmFuYmFzaGlnb1wgOwor56S+5Lya5aWJ5LuVID4gc2hha2FpaG91c2hpXCA7CivlqZrlpJbmgKfkuqQgPiBrb25nYWlzZWlrb3VcIDsKK+S4jeWPr+aKl+WKmyA+IGZ1a2Frb3VyeW9rdVwgOwor5Z+36KGM5qmf6ZaiID4gc2hpa2tvdWtpa2FuXCA7Civli6Tli5noqZXlrpogPiBraW5tdWh5b3V0ZWlcIDsKK+W4uOeUqOWvvuaVsCA+IGpvdXlvdXRhaXN1dVwgOwor5aSn6YGT6Iq45Lq6ID4gZGFpZG91Z2VpbmluXCA7Civpu5Lpoqjnmb3pm6ggPiBrb2t1ZnV1aGFrdXVcIDsKK+mKgOihjOalreWLmSA+IGdpbmtvdWd5b3VtdVwgOwor54++5Zyw6Kq/5p+7ID4gZ2VuY2hpY2hvdXNhXCA7CivpgaDmtIvoiKrmtbcgPiBlbicneW91a291a2FpXCA7CivlpJbkuqTplqLkv4IgPiBnYWlrb3VrYW5rZWlcIDsKK+engeWtpuWKqeaIkCA+IHNoaWdha3Vqb3NlaVwgOwor54Sh55eb5YiG5aipID4gbXV0c3V1YnVuYmVuXCA7CivkuI3oia/lgrXmqKkgPiBmdXJ5b3VzYWlrZW5cIDsKK+WcsOWfn+aZguWIuyA+IGNoaWlraWppa29rdVwgOwor5Ye554mI5Y2w5Yi3ID4gb3VoYW5pbnNhdHN1XCA7Civln7rlubnnlKPmpa0gPiBraWthbnNhbmd5b3VcIDsKK+i3r+S4iumnkOi7iiA+IHJvam91Y2h1dXNoYVwgOwor6aaW6ISz5Lya6KuHID4gc2h1bm91a2FpZGFuXCA7Civni6zoo4HmlL/msrsgPiBkb2t1c2Fpc2VpamlcIDsKK+WkluS6pOWVj+mhjCA+IGdhaWtvdW1vbmRhaVwgOwor56C055Sj55Sz6KuLID4gaGFzYW5zaGluc2VpXCA7Civpg7flnJ/oirjog70gPiBreW91ZG9nZWlub3VcIDsKK+W+jOaWueWcsOWfnyA+IGtvdWhvdWNoaWlraVwgOwor5aSq6Zm95pS+5bCEID4gdGFpeW91aG91c2hhXCA7Civopb/mtIvmlofmmI4gPiBzZWl5b3VidW5tZWlcIDsKK+aMr+abv+i8uOmAgSA+IGZ1cmlrYWV5dXNvdVwgOwor5Lqk5o+b5p2h5Lu2ID4ga291a2Fuam91a2VuXCA7CivnmbrooYzluILloLQgPiBoYWtrb3VzaGlqb3VcIDsKK+S4gOaYqOaYqOW5tCA+IHNha2lvdG90b3NoaVwgOwor6KO96I+T5qWt6ICFID4gc2Vpa2FneW91c2hhXCA7CivmhJvlm73lm6PkvZMgPiBhaWtva3VkYW50YWlcIDsKK+WkieW9ouimj+WJhyA+IGhlbmtlaWtpc29rdVwgOwor5Lq65rCX5oqV56WoID4gbmlua2l0b3VoeW91XCA7CivnlLflpbPlubPnrYkgPiBkYW5qb2J5b3Vkb3VcIDsKK+mDteS+v+iRieabuCA+IHl1dWJpbmhhZ2FraVwgOwor5rWF5a2m6Z2e5omNID4gc2VuZ2FrdWhpc2FpXCA7CivluILloLTmkqTpgIAgPiBzaGlqb3V0ZXR0YWlcIDsKK+Wumuacn+aknOiouiA+IHRlaWtpa2Vuc2hpblwgOwor5Zuj5L2T56u25oqAID4gZGFudGFpa3lvdWdpXCA7CivmsJHplpPlm6PkvZMgPiBtaW5rYW5kYW50YWlcIDsKK+WwgeW7uuaAneaDsyA+IGhvdWtlbnNoaXNvdVwgOwor6Iiq57aa6Led6ZuiID4ga291em9rdWt5b3JpXCA7Civlj4zls7Dpp7Hpp50gPiBzb3Vob3VyYWt1ZGFcIDsKK+eZvuenkeWFqOabuCA+IGh5YWtrYXplbnNob1wgOwor6Kmm6KGM6Yyv6KqkID4gc2hpa291c2FrdWdvXCA7Civlt6XloLTlnLDluK8gPiBrb3Vqb3VjaGl0YWlcIDsKK+aUv+ayu+aUuemdqSA+IHNlaWppa2Fpa2FrdVwgOwor5biC5rCR5Lya6aSoID4gc2hpbWlua2Fpa2FuXCA7CivmnInpmZDkvJrnpL4gPiB5dXVnZW5nYWlzaGFcIDsKK+mHjeWVhuS4u+e+qSA+IGp1dXNob3VzaHVnaVwgOwor6aeF5YmN5bqD5aC0ID4gZWtpbWFlaGlyb2JhXCA7CivmlL/msrvosqzku7sgPiBzZWlqaXNla2luaW5cIDsKK+WwgualreS4u+WppiA+IHNlbmd5b3VzaHVmdVwgOwor54++5aC055uj552jID4gZ2VuYmFrYW50b2t1XCA7Civlhazou6LlkajmnJ8gPiBrb3V0ZW5zaHV1a2lcIDsKK+WPo+S4ieWRs+e3miA+IGt1Y2hpamFtaXNlblwgOwor5LiA5pio5pio5aScID4gaXNzYWt1c2FrdXlhXCA7CivooYDmuIXogp3ngo4gPiBrZXNzZWlrYW4nJ2VuXCA7Civkurrot6HmnKrouI8gPiBqaW5zZWtpbWl0b3VcIDsKK+W8t+WItuS/nemZuiA+IGt5b3VzZWlob2tlblwgOwor5LiA5pyb5Y2D6YeMID4gaWNoaWJvdXNlbnJpXCA7CivliJHli5nmiYDplbcgPiBrZWltdXNob2Nob3VcIDsKK+WgtOWGheaUvumAgSA+IGpvdW5haWhvdXNvdVwgOwor5pyd5LiJ5pqu5ZubID4gY2hvdXNhbmJvc2hpXCA7Civnpo/npYnlm73lrrYgPiBmdWt1c2hpa29ra2FcIDsKK+mVt+WIgOS4gOaenSA+IGNob3V0b3Vpc3NoaVwgOwor5oKy5Zac5Lqk44CFID4gaGlraWtvbW9nb21vXCA7CivnhKHnt5rlt6XlraYgPiBtdXNlbmtvdWdha3VcIDsKK+WLneWIqeaKleaJiyA+IHNob3VyaXRvdXNodVwgOwor5aSp5rCX5qaC5rOBID4gdGVua2lnYWlreW91XCA7CivnhKHluLjov4XpgJ8gPiBtdWpvdWppbnNva3VcIDsKK+ihjOWLleenkeWtpiA+IGtvdWRvdWthZ2FrdVwgOwor5LqI6Ziy5rOo5bCEID4geW9ib3VjaHV1c2hhXCA7CivmpbXnp5jmg4XloLEgPiBnb2t1aGlqb3Vob3VcIDsKK+WwgeW7uuekvuS8miA+IGhvdWtlbnNoYWthaVwgOwor5Yq05L2/57Sb5LqJID4gcm91c2hpZnVuc291XCA7Civoh6rlraboh6rnv5IgPiBqaWdha3VqaXNodXVcIDsKK+S4jemAo+e2mue3miA+IGZ1cmVuem9rdXNlblwgOwor5rK75aSW5rOV5qipID4gY2hpZ2FpaG91a2VuXCA7CivntYzmuIjlpJbkuqQgPiBrZWl6YWlnYWlrb3VcIDsKK+WIg+eJqeS4ieaYpyA+IGhhbW9ub3phbm1haVwgOwor5YWJ5a2m57mK57atID4ga291Z2FrdXNlbicnaVwgOwor5YWo5LyR5q2i56ymID4gemVua3l1dXNoaWZ1XCA7CivlkozmtIvmipjoobcgPiB3YXlvdXNldGNodXVcIDsKK+a4heeul+S8muekviA+IHNlaXNhbmdhaXNoYVwgOwor5buD6Jep572u55yMID4gaGFpaGFuY2hpa2VuXCA7Civoh6jluororJvnvqkgPiByaW5zaG91a291Z2lcIDsKK+e0lOaXpeacrOmiqCA+IGp1bicnbmlob25mdXVcIDsKK+aMmeWbveS4gOiHtCA+IGt5b2tva3VpdGNoaVwgOwor5aSn6KGG6YGL5YuVID4gdGFpc2h1dXVuZG91XCA7CivluILloLToqr/mn7sgPiBzaGlqb3VjaG91c2FcIDsKK+WFrOmWi+WkluS6pCA+IGtvdWthaWdhaWtvdVwgOwor5aSn6JS15aSn6IejID4gb29rdXJhZGFpamluXCA7Civkv67mraPkuojnrpcgPiBzaHV1c2VpeW9zYW5cIDsKK+ihjOaUv+apn+mWoiA+IGd5b3VzZWlraWthblwgOwor5pS/5pWZ5YiG6ZuiID4gc2Vpa3lvdWJ1bnJpXCA7CivmkK3kuZfmoYjlhoUgPiB0b3Vqb3VhbicnbmFpXCA7CivkupTkurrlm4PlrZAgPiBnb25pbmJheWFzaGlcIDsKK+eLrOWWhOS4u+e+qSA+IGRva3V6ZW5zaHVnaVwgOwor6Iiq56m65pu457ChID4ga291a3V1c2hva2FuXCA7Civos5vlkKblkIznpaggPiBzYW5waWRvdWh5b3VcIDsKK+S6uuaWh+Wtpua0viA+IGppbmJ1bmdha3VoYVwgOwor5o+055So55Sf55SjID4gZW4nJ3lvdXNlaXNhblwgOwor5LiN6ICV5L2c5ZywID4gZnVrb3VzYWt1Y2hpXCA7CivlpKfkvb/lhazpgrggPiB0YWlzaGlrb3V0ZWlcIDsKK+axuuitsOS6i+mghSA+IGtldHN1Z2lqaWtvdVwgOwor5rip5rOJ55mC5rOVID4gb25zZW5yeW91aG91XCA7CivkuIDpobDkuIDnrJEgPiBpcHBpbicnaXNzaG91XCA7Civpm7vmsJfkv6Hlj7cgPiBkZW5raXNoaW5nb3VcIDsKK+WwgueuoeawtOWfnyA+IHNlbmthbnN1aWlraVwgOwor5aSp5L2T5bSH5oudID4gdGVudGFpc3V1aGFpXCA7Civnm7jkupLlj4LnhacgPiBzb3Vnb3NhbnNob3VcIDsKK+WJsueDueaWmeeQhiA+IGthcHBvdXJ5b3VyaVwgOwor6YOK5aSW6Zu76LuKID4ga291Z2FpZGVuc2hhXCA7Civkv67mraPkuLvnvqkgPiBzaHV1c2Vpc2h1Z2lcIDsKK+ijnOW8t+iovOaLoCA+IGhva3lvdXNob3Vrb1wgOwor5Lq65p2Q6YqA6KGMID4gamluemFpZ2lua291XCA7Civov5Hku6Ppn7Pmpb0gPiBraW5kYWlvbmdha3VcIDsKK+ijj+mdouW3peS9nCA+IHJpbWVua291c2FrdVwgOwor5rOV5rK756S+5LyaID4gaG91Y2hpc2hha2FpXCA7CivlpKfnm6TmjK/oiJ4gPiBvb2JhbmJ1cnVtYWlcIDsKK+S4ieWykOS7o+ihqCA+IHNhbmdpZGFpaHlvdVwgOwor5pWZ5ZOh57WE5ZCIID4ga3lvdWlua3VtaWFpXCA7Civmtbfpm6PmlZHliqkgPiBrYWluYW5reXV1am9cIDsKK+mMsumfs+aUvumAgSA+IHJva3VvbmhvdXNvdVwgOwor5LiJ6ICF5Yeh6YCAID4gc2Fuc2hhYm9udGFpXCA7Civml6XmnKzmtbfmtYEgPiBuaWhvbmthaXJ5dXVcIDsKK+WPsuS4iuacgOWkpyA+IHNoaWpvdXNhaWRhaVwgOwor6KiY5oa26Zqc5a6zID4ga2lva3VzaG91Z2FpXCA7CivkuI3lirTmiYDlvpcgPiBmdXJvdXNob3Rva3VcIDsKK+iAgeiNmOaAneaDsyA+IHJvdXNvdXNoaXNvdVwgOwor6LuN6ZyA5bel5qWtID4gZ3VuanVrb3VneW91XCA7Civpm6LlkIjpm4bmlaMgPiByaWdvdXNodXVzYW5cIDsKK+iJr+Wmu+izouavjSA+IHJ5b3VzYWlrZW5ib1wgOwor6LuN5Y+45Luk5a6YID4gZ3Vuc2hpcmVpa2FuXCA7Civosr/mmJPkvJrnpL4gPiBib3Vla2lnYWlzaGFcIDsKK+eHkOmFuOiCpeaWmSA+IHJpbnNhbmhpcnlvdVwgOwor54Sh6ZmQ6LKs5Lu7ID4gbXVnZW5zZWtpbmluXCA7Civnp5HlrabmgJ3mg7MgPiBrYWdha3VzaGlzb3VcIDsKK+Wbm+a1t+WQjOiDniA+IHNoaWthaWRvdWhvdVwgOwor5YGl5bq35ZWP6aGMID4ga2Vua291bW9uZGFpXCA7CivmhJ/lgrfkuLvnvqkgPiBrYW5zaG91c2h1Z2lcIDsKK+mmrOmgreims+mfsyA+IGJhdG91a2FuJydub25cIDsKK+Wkqemggui3nemboiA+IHRlbmNob3VreW9yaVwgOwor6Kq/5p+76YOo6ZW3ID4gY2hvdXNhYnVjaG91XCA7CivljYPntKvkuIfntIUgPiBzZW5zaGliYW5rb3VcIDsKK+ihjOWLleWRveS7pCA+IGtvdWRvdW1laXJlaVwgOwor54K65pu/5omL5b2iID4ga2F3YXNldGVnYXRhXCA7CivotaTpgZPmsJflm6MgPiBzZWtpZG91a2lkYW5cIDsKK+epuuS4reiQveS4iyA+IGt1dWNodXVyYWtrYVwgOwor5a6a5qC86I236YeNID4gdGVpa2FrdWthanV1XCA7Civngrrmm7/pioDooYwgPiBrYXdhc2VnaW5rb3VcIDsKK+WumOiDveS4u+e+qSA+IGthbicnbm91c2h1Z2lcIDsKK+WutuW6reaVmeW4qyA+IGthdGVpa3lvdXNoaVwgOwor5pi85aSc5YW86KGMID4gY2h1dXlha2Vua291XCA7CivkvJrnpL7llrbmpa0gPiBrYWlzaGFlaWd5b3VcIDsKK+WVk+iSmeaAneaDsyA+IGtlaW1vdXNoaXNvdVwgOwor6Z2e5b6q55Kw55qEID4gaGlqdW5rYW50ZWtpXCA7CivmlofmsJHntbHliLYgPiBidW5taW50b3VzZWlcIDsKK+mBjumFuOWMlueJqSA+IGthc2Fua2FidXRzdVwgOwor5LiA5b+155m66LW3ID4gaWNoaW5lbmhva2tpXCA7CivogrLmiJDmoL3ln7kgPiBpa3VzZWlzYWliYWlcIDsKK+ePvuWgtOaknOiovCA+IGdlbmJha2Vuc2hvdVwgOwor5pmC5Luj6ICD6Ki8ID4gamlkYWlrb3VzaG91XCA7CivmhJ/luqboia/lpb0gPiBrYW5kb3J5b3Vrb3VcIDsKK+mAj+aYjuS6uumWkyA+IHRvdW1laW5pbmdlblwgOwor5bi45aWX5omL5q61ID4gam91dG91c2h1ZGFuXCA7CivlkozlubPlt6XkvZwgPiB3YWhlaWtvdXNha3VcIDsKK+aal+S4remjm+i6jSA+IGFuY2h1dWhpeWFrdVwgOwor5Lq65rCR6KOB5YikID4gamlubWluc2FpYmFuXCA7Civmlr3ooYzopo/liYcgPiBzaGlrb3VraXNva3VcIDsKK+WNiui6q+S4jemajyA+IGhhbnNoaW5mdXp1aVwgOwor5pmu6YCa5ZCN6KmeID4gZnV0c3V1bWVpc2hpXCA7Civlr77osaHnr4Tlm7IgPiB0YWlzaG91aGFuJydpXCA7CivkurrmsJHmiKbnt5ogPiBqaW5taW5zZW5zZW5cIDsKK+ewoeaYjuW8t+WbuiA+IGthbm1laWt5b3Vrb1wgOwor5Y+v6IO96YG45oqeID4ga2Fub3VzZW50YWt1XCA7CivlsYvlhoXnq7bmioAgPiBva3VuYWlreW91Z2lcIDsKK+WkmuaDheS7j+W/gyA+IHRham91YnVzc2hpblwgOwor5Y2Y57SU6KiI566XID4gdGFuanVua2Vpc2FuXCA7CivlhazooYbpm7voqbEgPiBrb3VzaHV1ZGVud2FcIDsKK+iKseiHquWLlei7iiA+IGhhbmFqaWRvdXNoYVwgOwor5pS+6JWp5oGv5a2QID4gaG91dG91bXVzdWtvXCA7CivlhpnnnJ/mqZ/lupcgPiBzaGFzaGlua2l0ZW5cIDsKK+S4ieetiei7jeabuSA+IHNhbnRvdWd1bnNvdVwgOwor57eK5oCl6YCu5o2VID4ga2lua3l1dXRhaWhvXCA7Civosp7mk43ouYLouqogPiB0ZWlzb3VqdXVyaW5cIDsKK+W/g+iCuuapn+iDvSA+IHNoaW5wYWlraW5vdVwgOwor6ZuM6ZuE5ZCM5qCqID4gc2hpeXV1ZG91c2h1XCA7CivpoIbpoqjmuoDluIYgPiBqdW5wdXVtYW5wYW5cIDsKK+WtpuagoeazleS6uiA+IGdha2tvdWhvdWppblwgOwor5aSJ5L2N6Zu75rWBID4gaGVuJydpZGVucnl1dVwgOwor5YmN5ZOo5Yuk5YuZID4gemVuc2hvdWtpbm11XCA7CivmtbfmtIvnp5HlraYgPiBrYWl5b3VrYWdha3VcIDsKK+i+suawkemBi+WLlSA+IG5vdW1pbicndW5kb3VcIDsKK+iyrOS7u+evhOWbsiA+IHNla2luaW5oYW4nJ2lcIDsKK+eZuuWFieWhl+aWmSA+IGhha2tvdXRvcnlvdVwgOwor5oSf5b+c5L2c55SoID4ga2FuJydub3VzYXlvdVwgOwor5a2Q5oyB5piG5biDID4ga29tb2NoaWtvbmJ1XCA7CivluILllrbkvY/lroUgPiBzaGllaWp1dXRha3VcIDsKK+S6i+alremDqOmVtyA+IGppZ3lvdWJ1Y2hvdVwgOwor5aSn6IOG5LiN5pW1ID4gZGFpdGFuZnV0ZWtpXCA7CivlpKnlnLDlibXpgKAgPiB0ZW5jaGlzb3V6b3VcIDsKK+W4guWgtOe1jOa4iCA+IHNoaWpvdWtlaXphaVwgOwor5LqI5a6a5pyf5pelID4geW90ZWlraWppdHN1XCA7CivljLvnmYLmioDooZMgPiBpcnlvdWdpanV0c3VcIDsKK+S9v+W9ueWLleipniA+IHNoaWVraWRvdXNoaVwgOwor5b605YW15qSc5p+7ID4gY2hvdWhlaWtlbnNhXCA7Civoh6rlrrbnmbrpm7sgPiBqaWthaGF0c3VkZW5cIDsKK+WQjOiqnuWPjeW+qSA+IGRvdWdvaGFucHVrdVwgOwor5byB6KuW5aSn5LyaID4gYmVucm9udGFpa2FpXCA7CivkuIDoiKzmipXnpaggPiBpcHBhbnRvdWh5b3VcIDsKK+S4gOS6uuaBr+WtkCA+IGhpdG9yaW11c3Vrb1wgOwor6YCA5b256LuN5Lq6ID4gdGFpZWtpZ3VuamluXCA7CivkurrnlJ/mnIDmgqogPiBqaW5zZWlzYWlha3VcIDsKK+WNsOWKoOmbu+WcpyA+IGlua2FkZW4nJ2F0c3VcIDsKK+a2suaAp+mZkOeVjCA+IGVraXNlaWdlbmthaVwgOwor5qCE6aSK5a2m6ICFID4gZWl5b3VnYWt1c2hhXCA7Civpg73luILkuqTpgJogPiB0b3NoaWtvdXRzdXVcIDsKK+S6pOaPm+aVmeaOiCA+IGtvdWthbmt5b3VqdVwgOwor5a2m55Sf5pmC5LujID4gZ2FrdXNlaWppZGFpXCA7CivmhJvnpL7nsr7npZ4gPiBhaXNoYXNlaXNoaW5cIDsKK+iAgeWMluePvuixoSA+IHJvdWthZ2Vuc2hvdVwgOwor56S+5Lya5ZWP6aGMID4gc2hha2FpbW9uZGFpXCA7Civnm7LnrqHpioPlibUgPiBtb3VrYW5qdXVzb3VcIDsKK+adsea1t+WcsOaWuSA+IHRvdWthaWNoaWhvdVwgOwor55m66KGM5Lya56S+ID4gaGFra291Z2Fpc2hhXCA7Civov5HmiYDlkIjlo4EgPiBraW5qb2dhcHBla2lcIDsKK+mfs+WjsOWcp+e4riA+IG9uc2VpYXNzaHVrdVwgOwor5rCR5peP5Li7576pID4gbWluem9rdXNodWdpXCA7CivlsILploDnp5Hnm64gPiBzZW5tb25rYW1va3VcIDsKK+a4m+mHj+e1jOWWtiA+IGdlbnJ5b3VrZWllaVwgOwor552h55yg5LiN6LazID4gc3VpbWluYnVzb2t1XCA7CivlhYTlprnllqflmKkgPiBreW91ZGFpZ2Vua2FcIDsKK+mBi+mAgeWlkee0hCA+IHVuc291a2VpeWFrdVwgOwor6Iie5Y+w5Lit57aZID4gYnV0YWljaHV1a2VpXCA7CivkuIvlsaTpmo7ntJogPiBrYXNvdWthaWt5dXVcIDsKK+e1jOa4iOmXmOS6iSA+IGtlaXphaXRvdXNvdVwgOwor5LiN6Imv5bCR5aWzID4gZnVyeW91c2hvdWpvXCA7Civlv5zmj7TmvJToqqwgPiBvdWVuJydlbnpldHN1XCA7CivooYzli5XljYrlvoQgPiBrb3Vkb3VoYW5rZWlcIDsKK+WcsOmch+WcsOW4ryA+IGppc2hpbmNoaXRhaVwgOwor6YCa6YGO6LK/5piTID4gdHN1dWthYm91ZWtpXCA7CivntbHoqIjlubTpkZEgPiB0b3VrZWluZW5rYW5cIDsKK+S6uuaJi+S4jei2syA+IGhpdG9kZWJ1c29rdVwgOwor5Y2B5Lit5YWr5LmdID4gaml0Y2h1dWhha2t1XCA7Civmu4vlvLfpo7LmlpkgPiBqaWt5b3VpbnJ5b3VcIDsKK+Wbm+inkuWPt+eivCA+IHNoaWtha3Vnb3VtYVwgOwor5Zu65a6a6Kaz5b+1ID4ga290ZWlrYW4nJ25lblwgOwor57WM6aiT56eR5a2mID4ga2Vpa2Vua2FnYWd1XCA7Civojbfpm7vnspLlrZAgPiBrYWRlbnJ5dXVzaGlcIDsKK+S6uuW3peeUn+WRvSA+IGppbmtvdXNlaW1laVwgOwor6Zu75rCX5paZ6YeRID4gZGVua2lyeW91a2luXCA7CivlvoDlvqnokYnmm7ggPiBvdWZ1a3VoYWdha2lcIDsKK+S6uumAoOefs+ayuSA+IGppbnpvdXNla2l5dVwgOwor5aSp56u654mh5Li5ID4gdGVuamlrdWJvdGFuXCA7CivlvqHpprPotbDmp5ggPiBnb2NoaXNvdXNhbWFcIDsKK+Wkqei3r+attOeoiyA+IHRlbnJvcmVraXRlaVwgOwor5YWx5ZCM5L6/5omAID4ga3lvdWRvdWJlbmpvXCA7CivmmpfmrrrmnKrpgYIgPiBhbnNhdHN1bWlzdWlcIDsKK+acquaJleiyu+eUqCA+IG1paGFyYWloaXlvdVwgOwor55u45LqS6YWN5bGeID4gc291Z29oYWl6b2t1XCA7CivnoLTpoZTkuIDnrJEgPiBoYWdhbicnaXNzaG91XCA7CivmsrvnmYLlirnmnpwgPiBjaGlyeW91a291a2FcIDsKK+eMn+WumOWItuW6piA+IHJ5b3VrYW5zZWlkb1wgOwor5Y+O5a655oKj6ICFID4gc2h1dXlvdWthbmphXCA7CivmrabpmbXmoYPmupAgPiBidXJ5b3V0b3VnZW5cIDsKK+S6uuawkeaJgOaciSA+IGppbm1pbnNob3l1dVwgOwor5Y+N5bCE5L+C5pWwID4gaGFuc2hha2Vpc3V1XCA7Civlt6Xmpa3mhI/ljKAgPiBrb3VneW91aXNob3VcIDsKK+ebuOWvvuipleS+oSA+IHNvdXRhaWh5b3VrYVwgOwor57WM5riI5ZWP6aGMID4ga2VpemFpbW9uZGFpXCA7CivkuInljYHlha3oqIggPiBzYW5qdXVyb2trZWlcIDsKK+aui+alreaJi+W9kyA+IHphbmd5b3V0ZWF0ZVwgOwor5oqV55CD5YuV5L2cID4gdG91a3l1dWRvdXNhXCA7CivpmLLngb3oqJPnt7QgPiBib3VzYWlrdW5yZW5cIDsKK+iAkOeUqOW5tOaVsCA+IHRhaXlvdW5lbnN1dVwgOwor5rCR5a6a5oay5rOVID4gbWludGVpa2VucG91XCA7Civnpo/liKnljprnlJ8gPiBmdWt1cmlrb3VzZWlcIDsKK+a2iOiAl+WTgeiyuyA+IHNob3Vtb3VoaW5oaVwgOwor56eB5pyJ6LKh55SjID4gc2hpeXV1emFpc2FuXCA7CivlrabntJrplonpjpYgPiBnYWtreXV1aGVpc2FcIDsKK+S6uueUn+iomOmMsiA+IGppbnNlaWtpcm9rdVwgOwor5a6f5Yip5Li7576pID4gaml0c3VyaXNodWdpXCA7Civlhazkvb/ppKjlk6EgPiBrb3VzaGlrYW4nJ2luXCA7CivpgLLljJboq5bogIUgPiBzaGlua2Fyb25zaGFcIDsKK+epuuS4reapn+WLlSA+IGt1dWNodXVraWRvdVwgOwor5oqV56Wo57WQ5p6cID4gdG91aHlvdWtla2thXCA7CivliY3mj5DmnaHku7YgPiB6ZW50ZWlqb3VrZW5cIDsKK+WkluS6uumBuOaJiyA+IGdhaWppbnNlbnNodVwgOwor5beo5aSn5YiG5a2QID4ga3lvZGFpYnVuc2hpXCA7CivotIvpgKDntJnluaMgPiBnYW56b3VzaGloZWlcIDsKK+aknOWumuippumokyA+IGtlbnRlaXNoaWtlblwgOwor6JeN57as6KSS56ugID4gcmFuanVob3VzaG91XCA7Civlj7jms5XoqabpqJMgPiBzaGlob3VzaGlrZW5cIDsKK+aflOi7n+S9k+aTjSA+IGp1dW5hbnRhaXNvdVwgOwor5LiN6Imv5bCO5L2TID4gZnVyeW91ZG91dGFpXCA7Civlr77miKbou4rnoLIgPiB0YWlzZW5zaGFob3VcIDsKK+atu+S9k+ino+WJliA+IHNoaXRhaWthaWJvdVwgOwor5YW85qWt6L6y5a62ID4ga2VuZ3lvdW5vdWthXCA7CivlhazplovpjLLpn7MgPiBrb3VrYWlyb2t1b25cIDsKK+a1t+i7jeWkp+iHoyA+IGthaWd1bmRhaWppblwgOwor5Y2X5Lqs6Iqx54GrID4gbmFua2luaGFuYWJpXCA7CivmiYHmoYPohbrngo4gPiBoZW50b3VzZW4nJ2VuXCA7CivkuK3lpK7pioDooYwgPiBjaHV1b3VnaW5rb3VcIDsKK+Wcp+e4ruepuuawlyA+IGFzc2h1a3VrdXVraVwgOwor5rG65riI5omL5q61ID4ga2Vzc2Fpc2h1ZGFuXCA7Civku6PnkIbmpa3ogIUgPiBkYWlyaWd5b3VzaGFcIDsKK+mFjee9rui7ouaPmyA+IGhhaWNoaXRlbmthblwgOwor56aB5rK755Sj6ICFID4ga2luY2hpc2Fuc2hhXCA7CivlhajouqvkuI3pmo8gPiB6ZW5zaGluZnV6dWlcIDsKK+mBi+i7ouaKgOihkyA+IHVudGVuZ2lqdXRzdVwgOwor6Zu75a2Q6Z+z5qW9ID4gZGVuc2hpb25nYWt1XCA7CivljYPkuIfnhKHph48gPiBzZW5tYW5tdXJ5b3VcIDsKK+iHquauuuW5h+WKqSA+IGppc2F0c3Vob3Vqb1wgOwor5Luj5pWw6Zai5pWwID4gZGFpc3V1a2Fuc3V1XCA7Civpn7Ppn7/oqK3oqIggPiBvbmt5b3VzZWtrZWlcIDsKK+S5s+anmOeqgei1tyA+IG55dXV5b3V0b2traVwgOwor5LqL5YmN5Ymy5b2TID4gaml6ZW53YXJpYXRlXCA7CivlhbXlvbnlhY3nirYgPiBoZWlla2ltZW5qb3VcIDsKK+Wkqea2r+WtpOeLrCA+IHRlbmdhaWtvZG9rdVwgOwor5LiN5om/5LiN5om/ID4gZnVzaG91YnVzaG91XCA7CivnhKHmiYDlsZ7nj74gPiBtdXNob3pva3VnZW5cIDsKK+acqOmAoOWutuWxiyA+IG1va3V6b3VrYW9rdVwgOwor6aSK6ICB5bm06YeRID4geW91cm91bmVua2luXCA7CivmgqDjgIXoh6rpgakgPiB5dXV5dXVqaXRla2lcIDsKK+S6i+WJjeeglOS/riA+IGppemVua2Vuc2h1dVwgOwor5L2T57O75paH5rOVID4gdGFpa2VpYnVucG91XCA7Civpm4zpm4TlkIzkvZMgPiBzaGl5dXVkb3V0YWlcIDsKK+ani+mAoOaxmuiBtyA+IGtvdXpvdW9zaG9rdVwgOwor5Z+656SO55+l6K2YID4ga2lzb2NoaXNoaWtpXCA7CivlnLDln5/ntJvkuokgPiBjaGlpa2lmdW5zb3VcIDsKK+WNmOWzsOmnsemnnSA+IHRhbnBvdXJha3VkYVwgOwor5Lq65rCX5ZWG5aOyID4gbmlua2lzaG91YmFpXCA7Civlp4nlprnllqflmKkgPiBreW91ZGFpZ2Vua2FcIDsKK+WNg+Wnv+S4h+aFiyA+IHNlbnNoaWJhbnRhaVwgOwor5YWs5pyJ6LKh55SjID4ga291eXV1emFpc2FuXCA7CivlhYjooYzmipXos4cgPiBzZW5rb3V0b3VzaGlcIDsKK+ijvemAoOW3peeoiyA+IHNlaXpvdWtvdXRlaVwgOwor6Ieq55Sx56u25LqJID4gaml5dXVreW91c291XCA7Civlt53prZrmlpnnkIYgPiBrYXdhdW9yeW91cmlcIDsKK+ePvuS7o+enkeWtpiA+IGdlbmRhaWthZ2FrdVwgOwor55Sj5qWt5qmf5qKwID4gc2FuZ3lvdWtpa2FpXCA7CivkuI3lkIjmoLzogIUgPiBmdWdvdWtha3VzaGFcIDsKK+aakeS4reimi+iIniA+IHNob2NodXVtaW1haVwgOwor6KqY5bCO5bCL5ZWPID4geXV1ZG91amlubW9uXCA7CivnkaDnkoPllJDojYkgPiBydXJpa2FyYWt1c2FcIDsKK+WumuW9ouWLleipniA+IHRlaWtlaWRvdXNoaVwgOwor5Zan44CF5ZuC44CFID4ga2Vua2VuZ291Z291XCA7CivkurrplpPplqLkv4IgPiBuaW5nZW5rYW5rZWlcIDsKK+i1pOWNgeWtl+ekviA+IHNla2lqdXVqaXNoYVwgOwor54Sh55Sj6ZqO57SaID4gbXVzYW5rYWlreXV1XCA7Civlha3ms5Xlhajmm7ggPiByb3Bwb3V6ZW5zaG9cIDsKK+mbhuaoqeaOkumZpCA+IHNodXVrZW5oYWlqb1wgOwor5Zu96Zqb5Lya6K2wID4ga29rdXNhaWthaWdpXCA7CivlhZDnq6XmloflraYgPiBqaWRvdWJ1bmdha3VcIDsKK+i7jeS6i+enmOWvhiA+IGd1bmppaGltaXRzdVwgOwor5Lu75oSP5Ye66aCtID4gbmluJydpc2h1dHRvdVwgOwor5LuY6ZqP54++6LGhID4gZnV6dWlnZW5zaG91XCA7CivllIfmra/ovJTou4ogPiBzaGluc2hpaG9zaGFcIDsKK+WOn+WboOiqv+afuyA+IGdlbicnaW5jaG91c2FcIDsKK+S6uui3oeacquWIsCA+IGppbnNla2ltaXRvdVwgOwor5ouF5b2T6YOo6ZW3ID4gdGFudG91YnVjaG91XCA7CivkuLvku7vmlZnmjoggPiBzaHVuaW5reW91anVcIDsKK+i7jeWCmeWJiua4myA+IGd1bmJpc2FrdWdlblwgOwor5YWs6ZaL6KOB5YikID4ga291a2Fpc2FpYmFuXCA7CivliIbop6Pkv67nkIYgPiBidW5rYWlzaHV1cmlcIDsKK+eZvuiKseaWieaUviA+IGh5YWtrYXNlaWhvdVwgOwor5Lq66YCg55yf54+gID4gamluem91c2hpbmp1XCA7CivnpZ7ntYzpgY7mlY8gPiBzaGlua2Vpa2FiaW5cIDsKK+mAgemHkeeCuuabvyA+IHNvdWtpbmthd2FzZVwgOwor5Y6z5q2j56eR5a2mID4gZ2Vuc2Vpa2FnYWt1XCA7Civlj7jms5Xmm7jlo6sgPiBzaGlob3VzaG9zaGlcIDsKK+WcqOWkluizh+eUoyA+IHphaWdhaXNoaXNhblwgOwor5rOV5b6L6YGV5Y+NID4gaG91cml0c3VpaGFuXCA7CivpgLLot6/mjIflsI4gPiBzaGlucm9zaGlkb3VcIDsKK+S6iOWCmeWNlOe0hCA+IHlvYmlreW91eWFrdVwgOwor5pWZ6IKy546p5YW3ID4ga3lvdWlrdWdhbmd1XCA7Civmlofms5Xopo/liYcgPiBidW5wb3VraXNva3VcIDsKK+WujOS6huaZguWItiA+IGthbnJ5b3VqaXNlaVwgOwor5LqL5a6f6Kqk6KqNID4gamlqaXRzdWdvbmluXCA7Civou43pnIDnlKPmpa0gPiBndW5qdXNhbmd5b3VcIDsKK+iHqueEtuenkeWtpiA+IHNoaXplbmthZ2FrdVwgOwor5q2m6ICF5L+u6KGMID4gbXVzaGFzaHVneW91XCA7CivnlJ/miJDmlofms5UgPiBzZWlzZWlidW5wb3VcIDsKK+WPuOazleWkp+iHoyA+IHNoaWhvdWRhaWppblwgOwor5Li76ISz5Lya6KuHID4gc2h1bm91a2FpZGFuXCA7CivlvqHnlKjllYbkurogPiBnb3lvdXNob3VuaW5cIDsKK+S9v+W+kuS/oeadoSA+IHNoaXRvc2hpbmpvdVwgOwor6Ki85oug54mp5Lu2ID4gc2hvdWtvYnVra2VuXCA7Civkuojlgpnnn6XorZggPiB5b2JpY2hpc2hpa2lcIDsKK+WQiOWQjeS8muekviA+IGdvdW1laWdhaXNoYVwgOwor5YWx5ZCM5LiA6Ie0ID4ga3lvdWRvdWl0Y2hpXCA7CivmrablipvmlL/msrsgPiBidXJ5b2t1c2VpamlcIDsKK+i7jOmBk+S/ruatoyA+IGtpZG91c2h1dXNlaVwgOwor5rm+5bK45oim5LqJID4gd2FuZ2Fuc2Vuc291XCA7CivlkIjmoLznpYjpoZggPiBnb3VrYWt1a2lnYW5cIDsKK+WMluWtpuiCpeaWmSA+IGthZ2FrdWhpcnlvdVwgOwor54us6KOB5Zu95a62ID4gZG9rdXNhaWtva2thXCA7CivkvY7liKnph5Hono0gPiB0ZWlyaWtpbicneXV1XCA7CivlnJ/poZ7ph5HlsZ4gPiBkb3J1aWtpbnpva3VcIDsKK+WFseWSjOaUv+S9kyA+IGt5b3V3YXNlaXRhaVwgOwor5rOV5bu36ZeY5LqJID4gaG91dGVpdG91c291XCA7Civlho3nlJ/oo4Xnva4gPiBzYWlzZWlzb3VjaGlcIDsKK+WMl+aWuemgmOWcnyA+IGhvcHBvdXJ5b3Vkb1wgOwor5YWo5buD6KuW6ICFID4gemVucGFpcm9uc2hhXCA7CivntK/pgLLoqrLnqI4gPiBydWlzaGlua2F6ZWlcIDsKK+WbvemYsuS8muitsCA+IGtva3Vib3VrYWlnaVwgOwor5LqM55m+5Y2B5pelID4gbmloeWFrdXRvb2thXCA7CivkuovliY3pgJrloLEgPiBqaXplbnRzdXVob3VcIDsKK+ekvuS8muaEj+itmCA+IHNoYWthaWlzaGlraVwgOwor5o+05Yqp5YeN57WQID4gZW5qb3RvdWtldHN1XCA7CivlronlhajnrKzkuIAgPiBhbnplbmRhaWljaGlcIDsKK+WAi+S6uuaUu+aSgyA+IGtvamlua291Z2VraVwgOwor5oKq5oiv5Z2K5Li7ID4gaXRhenVyYWJvdXp1XCA7CivpgYrli5XlhobmnKggPiB5dXVkb3VlbmJva3VcIDsKK+WGhuW9ouWKh+WgtCA+IGVua2VpZ2VraWpvdVwgOwor6Iqt6JWJ5qK25pyoID4gYmFzaG91a2FqaWtpXCA7Civmg4XloLHnp5HlraYgPiBqb3Vob3VrYWdha3VcIDsKK+WCt+Wus+S/nemZuiA+IHNob3VnYWlob2tlblwgOwor56C055Sj5a6j5ZGKID4gaGFzYW5zZW5rb2t1XCA7Civnmannl4XmgqPogIUgPiByYWlieW91a2FuamFcIDsKK+ato+ato+WgguWggiA+IHNlaXNlaWRvdWRvdVwgOwor5Zug5a2Q5YiG5p6QID4gaW5zaGlidW5zZWtpXCA7CivlvoXlkIjmlL/msrsgPiBtYWNoaWFpc2VpamlcIDsKK+acq+azleaAneaDsyA+IG1hcHBvdXNoaXNvdVwgOwor6Iiq57aa5pmC6ZaTID4ga291em9rdWppa2FuXCA7CivlsILlo7LnibnoqLEgPiBzZW5iYWl0b2treW9cIDsKK+WQjOeoruWQjOaWhyA+IGRvdXNodWRvdWJ1blwgOwor6YmE6YGT5LqL5pWFID4gdGV0c3Vkb3VqaWtvXCA7CivnnJ/nkIbplqLmlbAgPiBzaGlucmlrYW5zdXVcIDsKK+WtkOWtkOWtq+WtqyA+IHNoaXNoaXNvbnNvblwgOwor6Iux5Zu955+z5rK5ID4gZWlrb2t1c2VraXl1XCA7Civkv53orbfoprPlr58gPiBob2dva2Fuc2F0c3VcIDsKK+enmOWvhuWFteWZqCA+IGhpbWl0c3VoZWlraVwgOwor6YO15L6/6LKv6YeRID4geXV1YmluY2hva2luXCA7Civkuozph43kurrmoLwgPiBuaWp1dWppbmtha3VcIDsKK+eZveiho+aYjuWmgyA+IGJ5YWt1ZW15b3VoaVwgOwor55Sf5L2T6Kej5YmWID4gc2VpdGFpa2FpYm91XCA7Civnq4vlpKrlrZDnpLwgPiByaXR0YWlzaGlyZWlcIDsKK+Wun+mam+WVj+mhjCA+IGppc3NhaW1vbmRhaVwgOwor5YWs6Lui6YCf5bqmID4ga291dGVuc29rdWRvXCA7CivkuIDnn7Pkuozps6UgPiBpc3Nla2luaWNob3VcIDsKK+aVmeiCsuiqsueoiyA+IGt5b3Vpa3VrYXRlaVwgOwor5Lq65Luj5ZCN6KmeID4gamluZGFpbWVpc2hpXCA7CivlhKrnlJ/ntZDlqZogPiB5dXVzZWlrZWtrb25cIDsKK+WPo+mgreippuWVjyA+IGtvdXRvdXNoaW1vblwgOwor5Lqk6YCa5a6J5YWoID4ga291dHN1dWFuemVuXCA7Civlkozmlofoi7HoqLMgPiB3YWJ1bicnZWl5YWt1XCA7CivmnKzlrrbmnKzlhYMgPiBob25rZWhvbm1vdG9cIDsKK+ebsuebrumjm+ihjCA+IG1vdW1va3VoaWtvdVwgOwor5rue56m66KiY6YyyID4gdGFpa3V1a2lyb2t1XCA7Civnq4vkvZPoo4Hmlq0gPiByaXR0YWlzYWlkYW5cIDsKK+WbveWGheS6i+aDhSA+IGtva3VuYWlqaWpvdVwgOwor5o6l6Kem5LqL5pWFID4gc2Vzc2hva3VqaWtvXCA7Civkub7nh6XohZDmnL0gPiBrYW5zb3VmdWt5dXVcIDsKK+WQiOizh+S8muekviA+IGdvdXNoaWdhaXNoYVwgOwor5b2r5Yi75YW35bqnID4gY2hvdWtva3VndXphXCA7CivmiLjlpJbmkq7lvbEgPiBrb2dhaXNhdHN1ZWlcIDsKK+W/nOaApeS/rueQhiA+IG91a3l1dXNodXVyaVwgOwor6bq76YWU5rOo5bCEID4gbWFzdWljaHV1c2hhXCA7CivmnKvnq6/kvqHmoLwgPiBtYXR0YW5rYWtha3VcIDsKK+WBtuWDj+W0h+aLnSA+IGd1dXpvdXN1dWhhaVwgOwor5pmu6YCa5YiX6LuKID4gZnV0c3V1cmVzc2hhXCA7CivlkozlubPkuqTmuIkgPiB3YWhlaWtvdXNob3VcIDsKK+W+queSsOirluazlSA+IGp1bmthbnJvbnBvdVwgOwor6aO96aOf5pqW6KGjID4gaG91c2hva3VkYW5pXCA7CivmqZ/morDlt6Xmpa0gPiBraWthaWtvdWd5b3VcIDsKK+eEoemZkOmbhuWQiCA+IG11Z2Vuc2h1dWdvdVwgOwor5pyJ5L6h6Ki85Yi4ID4geXV1a2FzaG91a2VuXCA7Civnt4/ntbHpgbjmjJkgPiBzb3V0b3VzZW5reW9cIDsKK+S6uuawl+W9ueiAhSA+IG5pbmtpeWFrdXNoYVwgOwor5biC5YaF6YCa6KmxID4gc2hpbmFpdHN1dXdhXCA7CivkuIDnrYnpmbjlo6sgPiBpdHRvdXJpa3VzaGlcIDsKK+ism+WSjOadoee0hCA+IGtvdXdham91eWFrdVwgOwor5bel5qWt6YO95biCID4ga291Z3lvdXRvc2hpXCA7CivljZPkuIrpm7voqbEgPiB0YWt1am91ZGVud2FcIDsKK+Wuouims+S4u+e+qSA+IGt5YWtrYW5zaHVnaVwgOwor5YWx5ZCM6KyA6K2wID4ga3lvdWRvdWJvdWdpXCA7Civos7zosrfntYTlkIggPiBrb3ViYWlrdW1pYWlcIDsKK+iri+iyoOS7leS6iyA+IHVrZW9pc2hpZ290b1wgOwor6ZuH55So5aWR57SEID4ga295b3VrZWl5YWt1XCA7CivlvZPmhI/ljbPlppkgPiB0b3Vpc29rdW15b3VcIDsKK+WKtOWDjeW4guWgtCA+IHJvdWRvdXNoaWpvdVwgOwor5Y+N5a++5bCL5ZWPID4gaGFudGFpamlubW9uXCA7Civlo6vlrpjlrabmoKEgPiBzaGlrYW5nYWtrb3VcIDsKK+WQjeiqieS8mumVtyA+IG1laXlva2FpY2hvdVwgOwor5bmz5Z2H57Wm5LiOID4gaGVpa2lua3l1dXlvXCA7CivlsI/kvr/lsI/lg6cgPiBzaG91YmVua296b3VcIDsKK+S6uuaoqei5gui6qiA+IGppbmtlbmp1dXJpblwgOwor5Zyn57iu6YW457SgID4gYXNzaHVrdXNhbnNvXCA7CivkurrmqKnouYLoupkgPiBqaW5rZW5qdXVyaW5cIDsKK+W5tOasoeWgseWRiiA+IG5lbmppaG91a29rdVwgOwor6YO15L6/55Wq5Y+3ID4geXV1YmluYmFuZ291XCA7CivoqIjnrpfllY/poYwgPiBrZWlzYW5tb25kYWlcIDsKK+e3j+WQiOmbkeiqjCA+IHNvdWdvdXphc3NoaVwgOwor5Zyf5Zyw5Y+O55SoID4gdG9jaGlzaHV1eW91XCA7CivluoPlkYrlirnmnpwgPiBrb3Vrb2t1a291a2FcIDsKK+W5vOWFkOaVmeiCsiA+IHlvdWppa3lvdWlrdVwgOwor6L+R5omA6L+35oORID4ga2luam9tZWl3YWt1XCA7CivnhKHpmZDntJrmlbAgPiBtdWdlbmt5dXVzdXVcIDsKK+S4gOWIu+WNg+mHkSA+IGlra29rdXNlbmtpblwgOwor6Zmq5a+p5Yi25bqmID4gYmFpc2hpbnNlaWRvXCA7Civnt6jpm4bmqZ/og70gPiBoZW5zaHV1a2lub3VcIDsKK+WFiOWPlueJueaoqSA+IHNlbnNodXRva2tlblwgOwor5bCC6ZaA5YiG6YeOID4gc2VubW9uYnVuJyd5YVwgOwor5ouF5a2Q6I+M6aGeID4gdGFuc2hpa2lucnVpXCA7CivplqLkv4LlvLfljJYgPiBrYW5rZWlreW91a2FcIDsKK+aUu+aSg+mDqOmaiiA+IGtvdWdla2lidXRhaVwgOwor56eY5a+G5Lya6K2wID4gaGltaXRzdWthaWdpXCA7CivmrabogIXkv67mpa0gPiBtdXNoYXNodWd5b3VcIDsKK+a2iOmfs+ijhee9riA+IHNob3VvbnNvdWNoaVwgOwor5rqA5bee5LqL5aSJID4gbWFuc2h1dWppaGVuXCA7Civos4fnlKPoqZXkvqEgPiBzaGlzYW5oeW91a2FcIDsKK+WHuueJiOioseWPryA+IHNodXBwYW5reW9rYVwgOwor5Zu95YaF6ZyA6KaBID4ga29rdW5haWp1eW91XCA7CivljYPkuIfplbfogIUgPiBzZW5iYW5jaG91amFcIDsKK+WMluWtpuippumokyA+IGthZ2FrdXNoaWtlblwgOwor57Sw6IOe5Z+56aSKID4gc2FpYm91YmFpeW91XCA7Civpn7Ppn7vntYTnuZQgPiBvbicnaW5zb3NoaWtpXCA7Civlh6blh6bmlrnmlrkgPiBzaG9zaG9ob3Vib3VcIDsKK+W6p+aomeWkieaPmyA+IHphaHlvdWhlbmthblwgOwor5qmf5qKw5bel5a2mID4ga2lrYWlrb3VnYWt1XCA7CivnrKzkuInpg6jplbcgPiBkYWlzYW5idWNob3VcIDsKK+Wlh+WyqeaAquefsyA+IGtpZ2Fua2Fpc2VraVwgOwor6ICQ6aKo5qeL6YCgID4gdGFpZnV1a291em91XCA7Civnn7Ppubjlt6XloLQgPiBzZWtrZW5rb3Vqb3VcIDsKK+WcqOmDt+i7jeS6uiA+IHphaWdvdWd1bmppblwgOwor5bm96ZyK5Lya56S+ID4geXV1cmVpZ2Fpc2hhXCA7CivnkrDlooPnoLTlo4ogPiBrYW5reW91aGFrYWlcIDsKK+Wbvemam+S4u+e+qSA+IGtva3VzYWlzaHVnaVwgOwor5b6h56+A5paZ55CGID4gb3NlY2hpcnlvdXJpXCA7Civkv67nkIblt6XloLQgPiBzaHV1cmlrb3Vqb3VcIDsKK+aLkuWQpuWPjeW/nCA+IGt5b2hpaGFuJydub3VcIDsKK+S4gOiogOS4gOWPpSA+IGljaGlnb24nJ2lra3VcIDsKK+WNmOeLrOmjm+ihjCA+IHRhbmRva3VoaWtvdVwgOwor5Li75qip5Zyo5rCRID4gc2h1a2VuemFpbWluXCA7CivkurrmoLzkuLvnvqkgPiBqaW5rYWt1c2h1Z2lcIDsKK+iHquauuuacqumBgiA+IGppc2F0c3VtaXN1aVwgOwor5Ye65a626YGB5LiWID4gc2h1a2tldG9uc2VpXCA7CivntJDpnanppYLpo6kgPiBoaW1va2F3YXVkb25cIDsKK+aEmuawkeaUv+etliA+IGd1bWluc2Vpc2FrdVwgOwor5Y2Y56eR5aSn5a2mID4gdGFua2FkYWlnYWt1XCA7CivpganmraPliKnmvaQgPiB0ZWtpc2VpcmlqdW5cIDsKK+eZuumfs+iomOWPtyA+IGhhdHN1b25raWdvdVwgOwor6LuN5LqL5Y2U5a6aID4gZ3VuamlreW91dGVpXCA7Civopb/pq5jmnbHkvY4gPiBzZWlrb3V0b3V0ZWlcIDsKK+aQjeiAl+S6uuWToSA+IHNvbm1vdWppbicnaW5cIDsKK+Wun+WLouS+oeagvCA+IGppc3NlaWtha2FrdVwgOwor5o+055So6Kit6KiIID4gZW4nJ3lvdXNla2tlaVwgOwor54++5aC05Lit57aZID4gZ2VuYmFjaHV1a2VpXCA7CivmhJ/nn6Xoo4Xnva4gPiBrYW5jaGlzb3VjaGlcIDsKK+itsOaxuuapn+mWoiA+IGdpa2V0c3VraWthblwgOwor5a6J5b+D56uL5ZG9ID4gYW5qaW5yeW91bWVpXCA7CivlkIjlkIzkuovmpa0gPiBnb3Vkb3VqaWd5b3VcIDsKK+WQjOacn+S/oeWPtyA+IGRvdWtpc2hpbmdvdVwgOwor5Luy6ZaT5oSP6K2YID4gbmFrYW1haXNoaWtpXCA7CivlqpLku4vlpInmlbAgPiBiYWlrYWloZW5zdXVcIDsKK+WvkuS4reawtOazsyA+IGthbmNodXVzdWllaVwgOwor6KKr5L+d6Zm654mpID4gaGlob2tlbmJ1dHN1XCA7Civmmpfmrrrkuovku7YgPiBhbnNhdHN1amlrZW5cIDsKK+aKmOiht+S4u+e+qSA+IHNldGNodXVzaHVnaVwgOwor5Y2Y5byP57C/6KiYID4gdGFuc2hpa2lib2tpXCA7CivmlZnppIroqrLnqIsgPiBreW91eW91a2F0ZWlcIDsKK+S4ieiAheS8muirhyA+IHNhbnNoYWthaWRhblwgOwor6YCj6KiY5oqV56WoID4gcmVua2l0b3VoeW91XCA7Civlv4PnkIbnirbmhYsgPiBzaGlucmlqb3V0YWlcIDsKK+a1t+WkluW4guWgtCA+IGthaWdhaXNoaWpvdVwgOwor5pei5oiQ5LqL5a6fID4ga2lzZWlqaWppdHN1XCA7Civkuovli5nnt4/lsYAgPiBqaW11c291a3lva3VcIDsKK+WJjemAsuWfuuWcsCA+IHplbnNoaW5raWNoaVwgOwor5ZCM5bel55Ww5puyID4gZG91a291aWt5b2t1XCA7Civlkb3poYzplqLmlbAgPiBtZWlkYWlrYW5zdXVcIDsKK+WMl+ilv+iIqui3ryA+IGhva3VzZWlrb3Vyb1wgOwor5ZCI5ZCM5Lya5ZCIID4gZ291ZG91a2FpZ291XCA7Civnq4vlnLDmnaHku7YgPiByaXRjaGlqb3VrZW5cIDsKK+WcsOeQhuWtpuiAhSA+IGNoaXJpZ2FrdXNoYVwgOwor5aSn5omA6auY5omAID4gdGFpc2hva291c2hvXCA7Civph43opIfkv53pmbogPiBqdXVmdWt1aG9rZW5cIDsKK+mAmuW4uOWFteWZqCA+IHRzdXVqb3VoZWlraVwgOwor5aSW5Zu96YOo6ZqKID4gZ2Fpa29rdWJ1dGFpXCA7CivmlofljJbkuqTmtYEgPiBidW5rYWtvdXJ5dXVcIDsKK+W4guWklumAmuipsSA+IHNoaWdhaXRzdXV3YVwgOwor5q+b57Sw6KGA566hID4gbW91c2Fpa2Vra2FuXCA7Civli5XmhYvntbHoqIggPiBkb3V0YWl0b3VrZWlcIDsKK+ekvuWGheaDheWgsSA+IHNoYW5haWpvdWhvdVwgOwor5Lit5YWs5paH5bqrID4gY2h1dWtvdWJ1bmtvXCA7CivlnKfpm7vlirnmnpwgPiBhdHN1ZGVua291a2FcIDsKK+mtkemthemtjemtjiA+IGNoaW1pbW91cnlvdVwgOwor5b6q55Kw57O757WxID4ganVua2Fua2VpdG91XCA7Civlr77kurrplqLkv4IgPiB0YWlqaW5rYW5rZWlcIDsKK+aZrumAmumBuOaMmSA+IGZ1dHN1dXNlbmt5b1wgOwor5p2h5Lu26ZeY5LqJID4gam91a2VudG91c291XCA7CivljYPnirbkuIfmhYsgPiBzZW5qb3ViYW50YWlcIDsKK+WMluaIkOW3pealrSA+IGthc2Vpa291Z3lvdVwgOwor57WM5riI5Y6f6KuWID4ga2VpemFpZ2Vucm9uXCA7CivmqKnorIDooZPmlbAgPiBrZW5ib3VqdXNzdXVcIDsKK+S4jeaPrueZuuaApyA+IGZ1a2loYXRzdXNlaVwgOwor6auY562J5a2m5qChID4ga291dG91Z2Fra291XCA7CivpgKPlkIjnjovlm70gPiByZW5nb3VvdWtva3VcIDsKK+mDteS+v+abuOewoSA+IHl1dWJpbnNob2thblwgOwor5rex6KyA6YGg5oWuID4gc2hpbmJvdWVucnlvXCA7CivkvY/msJHpgYvli5UgPiBqdXVtaW4nJ3VuZG91XCA7Civms5Xmloflrabpg6ggPiBob3VidW5nYWt1YnVcIDsKK+aZrumAmumDteS+vyA+IGZ1dHN1dXl1dWJpblwgOwor5ZCb5Li75pS/5L2TID4ga3Vuc2h1c2VpdGFpXCA7CivmjbLlnJ/ph43mnaUgPiBrZW5kb2Nob3VyYWlcIDsKK+Wls+WjsOWQiOWUsSA+IGpvc2VpZ2Fzc2hvdVwgOwor57Gz6KW/5oim5LqJID4gYmVpc2Vpc2Vuc291XCA7Civpq5jluqbmiJDplbcgPiBrb3Vkb3NlaWNob3VcIDsKK+S5vuW4g+aRqeaTpiA+IGthbnB1bWFzYXRzdVwgOwor5Lit6I+v5oCd5oOzID4gY2h1dWthc2hpc291XCA7CivotIjkuI7oqLzmm7ggPiB6b3V5b3Nob3VzaG9cIDsKK+WFrOihhuihm+eUnyA+IGtvdXNodXVlaXNlaVwgOwor56S+5Lya56eR5a2mID4gc2hha2Fpa2FnYWt1XCA7CivovrLoirjljJblraYgPiBub3VnZWlrYWdha3VcIDsKK+S6pOmAmuaVtOeQhiA+IGtvdXRzdXVzZWlyaVwgOwor54m55q6K6YOo6ZqKID4gdG9rdXNodWJ1dGFpXCA7Civkuovlrp/nhKHmoLkgPiBqaWppdHN1bXVrb25cIDsKK+WtlOmbgOWmmeeOiyA+IGt1amFrdW15b3VvdVwgOwor6LKh55Sj5YiG5LiOID4gemFpc2FuYnVuJyd5b1wgOwor6YKm5a2X5paw6IGeID4gaG91amlzaGluYnVuXCA7CivmqZ/li5XoqIjnlLsgPiBraWRvdWtlaWtha3VcIDsKK+WtpOeri+S4u+e+qSA+IGtvcml0c3VzaHVnaVwgOwor5piO5rK75aSp55qHID4gbWVpaml0ZW4nJ25vdVwgOwor54Sm54K56Led6ZuiID4gc2hvdXRlbmt5b3JpXCA7Civpm4blkIjmmYLplpMgPiBzaHV1Z291amlrYW5cIDsKK+S9j+WuheWcsOWMuiA+IGp1dXRha3VjaGlrdVwgOwor5aSa6KeS6LK/5piTID4gdGFrYWt1Ym91ZWtpXCA7CivpnZ7llqvnhZnogIUgPiBoaWtpdHN1ZW5zaGFcIDsKK+a2iOWMluS4jeiJryA+IHNob3VrYWZ1cnlvdVwgOwor6Iie5Y+w54Wn5piOID4gYnV0YWlzaG91bWVpXCA7CivkuI3nlJ/nlKPnmoQgPiBmdXNlaXNhbnRla2lcIDsKK+mdnueUn+eUo+eahCA+IGhpc2Vpc2FudGVraVwgOwor5Yuf6ZuG5Lq65ZOhID4gYm9zaHV1amluJydpblwgOwor5Y6f56i/55So57SZID4gZ2Vua291eW91c2hpXCA7CivnhKHmhI/orZjnmoQgPiBtdWlzaGlraXRla2lcIDsKK+e3j+WPuOS7pOWumCA+IHNvdXNoaXJlaWthblwgOwor6K2y5rih5omA5b6XID4gam91dG9zaG90b2t1XCA7Civlrabnq6Xkv53ogrIgPiBnYWt1ZG91aG9pa3VcIDsKK+acgOe1guWFteWZqCA+IHNhaXNodXVoZWlraVwgOwor5ruR6LWw6LuK6LyqID4ga2Fzc291c2hhcmluXCA7CivmnIjliIrpm5HoqowgPiBnZWtrYW56YXNzaGlcIDsKK+WCjeiLpeeEoeS6uiA+IGJvdWpha3VidWppblwgOwor5Yuk5Yq05aWJ5LuVID4ga2lucm91aG91c2hpXCA7CivmgKfohbrmkZjpmaQgPiBzZWlzZW50ZWtpam9cIDsKK+aGsuazleaUueatoyA+IGtlbnBvdWthaXNlaVwgOwor6KGM6Lev55eF6ICFID4ga291cm9ieW91c2hhXCA7CivkuIDkurroip3lsYUgPiBoaXRvcmlzaGliYWlcIDsKK+WFseWQjOmYsuihmyA+IGt5b3Vkb3Vib3VlaVwgOwor6ZeY5b+X5rqA5rqAID4gdG91c2hpbWFubWFuXCA7CivluILli6Loqr/mn7sgPiBzaGlzZWljaG91c2FcIDsKK+S8muWOrei7n+mqqCA+IGVlbicnbmFua290c3VcIDsKK+i7jeeUqOWcsOWbsyA+IGd1bicneW91Y2hpenVcIDsKK+adseWllOilv+i1sCA+IHRvdWhvbnNlaXNvdVwgOwor5Lqk5Luj5L2c5qWtID4ga291dGFpc2FneW91XCA7Civml6XoqJjmloflraYgPiBuaWtraWJ1bmdha3VcIDsKK+aXpeezu+exs+S6uiA+IG5pa2tlaWJlaWppblwgOwor6Iez5YWs6Iez5bmzID4gc2hpa291c2hpaGVpXCA7CivplqLpgKPkvJrnpL4gPiBrYW5yZW5nYWlzaGFcIDsKK+S6uuaoqeWuo+iogCA+IGppbmtlbnNlbmdlblwgOwor5Lq66YCg5Lq66ZaTID4gamluem91bmluZ2VuXCA7Civlgr7mlpzlrrbos4MgPiBrZWlzaGF5YWNoaW5cIDsKK+iHquawkeWFmuWJhyA+IGppbWludG91c29rdVwgOwor5Y+N5b6p6KiY5Y+3ID4gaGFucHVrdWtpZ291XCA7Civml6XmnKzoiKrnqbogPiBuaXBwb25rb3VrdXVcIDsKK+iLseaJjeaVmeiCsiA+IGVpc2Fpa3lvdWlrdVwgOwor5o6S5rC05p2h5Lu2ID4gaGFpc3Vpam91a2VuXCA7Civoi7Hlm73oiKrnqbogPiBlaWtva3Vrb3VrdXVcIDsKK+aal+S4reaRuOe0oiA+IGFuY2h1dW1vc2FrdVwgOwor5YmN5ZOo6aiO5YW1ID4gemVuc2hvdWtpaGVpXCA7CivmsLTntKDniIblvL4gPiBzdWlzb2Jha3VkYW5cIDsKK+a9hea8keeUqOawtCA+IGthbmdhaXlvdXN1aVwgOwor5LiA5paJ5bCE5pKDID4gaXNzZWlzaGFnZWtpXCA7Civln7rou7jpgJrosqggPiBraWppa3V0c3V1a2FcIDsKK+WCvuaWnOeUn+eUoyA+IGtlaXNoYXNlaXNhblwgOwor5aKD55WM55CG6KuWID4ga3lvdWthaXJpcm9uXCA7CivlpKnnmofpmZvkuIsgPiB0ZW4nJ25vdWhlaWthXCA7CivlpKnnhLbmnpzmsYEgPiB0ZW4nJ25lbmthanV1XCA7CivpnIrogonkuIDoh7QgPiByZWluaWt1aXRjaGlcIDsKK+e1jOa4iOW+qeiIiCA+IGtlaXphaWZ1a2tvdVwgOwor5Lq65Y+j57Wx6KiIID4gamlua291dG91a2VpXCA7CivmiKbmmYLnlKPmpa0gPiBzZW5qaXNhbmd5b3VcIDsKK+WPpOmKreWtpuiAhSA+IGtvc2VuZ2FrdXNoYVwgOwor5a++5by+6YGT5by+ID4gdGFpZGFuZG91ZGFuXCA7Civoo73pgKDnlarlj7cgPiBzZWl6b3ViYW5nb3VcIDsKK+WkmumHjeS6uuagvCA+IHRhanV1amlua2FrdVwgOwor5LiA5YiA5Lih5patID4gaXR0b3VyeW91ZGFuXCA7CivlhbHnlKPkuLvnvqkgPiBreW91c2Fuc2h1Z2lcIDsKK+iomOWQjeaKleelqCA+IGtpbWVpdG91aHlvdVwgOwor5LyR5oap5pmC6ZaTID4ga3l1dWtlaWppa2FuXCA7CivkuLjlpKrotrPloLQgPiBtYXJ1dGFhc2hpYmFcIDsKK+ahg+iJsumBiuaIryA+IG1vbW9pcm95dXVnaVwgOwor5q2m5aOr6ZqO57SaID4gYnVzaGlrYWlreXV1XCA7Civlm73pmpvpm7voqbEgPiBrb2t1c2FpZGVud2FcIDsKK+S6uuW3peWcsOmchyA+IGppbmtvdWppc2hpblwgOwor5r2c5Zyo5Li75qipID4gc2VuemFpc2h1a2VuXCA7CivpgY7lsI/oqZXkvqEgPiBrYXNob3VoeW91a2FcIDsKK+evhOeWh+mDqOmWgCA+IGhhbmNodXVidW1vblwgOwor5L+u6YGT5Yi25bqmID4gc2h1dWRvdXNlaWRvXCA7CivntbHoqp7nr4TnlocgPiB0b3Vnb2hhbmNodXVcIDsKK+ihm+eUn+ioreWCmSA+IGVpc2Vpc2V0c3ViaVwgOwor5LiA5qyh55Sj5ZOBID4gaWNoaWppc2FucGluXCA7CivlhazmmI7mraPlpKcgPiBrb3VtZWlzZWlkYWlcIDsKK+iKseeBq+e3mummmSA+IGhhbmFiaXNlbmtvdVwgOwor6Ii255So5qmf6ZaiID4gaGFrdXlvdWtpa2FuXCA7CivlhazmsJHmqKnms5UgPiBrb3VtaW5rZW5ob3VcIDsKK+aYj+edoeeKtuaFiyA+IGtvbnN1aWpvdXRhaVwgOwor5a++5ZCR6LuK57eaID4gdGFpa291c2hhc2VuXCA7CivpiYTmi7PliLboo4EgPiB0ZWtrZW5zZWlzYWlcIDsKK+ahguWGoOipqeS6uiA+IGtlaWthbnNoaWppblwgOwor5Lq65Y+j6Kq/5p+7ID4gamlua291Y2hvdXNhXCA7Civlj7jms5Xop6PliZYgPiBzaGlob3VrYWlib3VcIDsKK+S6uuWPo+mdmeaFiyA+IGppbmtvdXNlaXRhaVwgOwor5pyJ5L2T5YuV55SjID4geXV1dGFpZG91c2FuXCA7CivmjqHnlKjoqabpqJMgPiBzYWl5b3VzaGlrZW5cIDsKK+awl+ixoeaDheWgsSA+IGtpc2hvdWpvdWhvdVwgOwor5pyJ57ea5pS+6YCBID4geXV1c2VuaG91c291XCA7CivlloDnl7DmpJzmn7sgPiBrYWt1dGFua2Vuc2FcIDsKK+mDt+Wcn+aWmeeQhiA+IGt5b3Vkb3J5b3VyaVwgOwor5LiJ5q616KuW5rOVID4gc2FuZGFucm9ucG91XCA7CivmmYLku6Pnsr7npZ4gPiBqaWRhaXNlaXNoaW5cIDsKK+iqh+Wkp+W6g+WRiiA+IGtvZGFpa291a29rdVwgOwor5LiA5pio44CF5aScID4gaXNzYWt1c2FrdXlhXCA7Civpg73luILoqIjnlLsgPiB0b3NoaWtlaWtha3VcIDsKK+mWouadseS4gOWGhiA+IGthbnRvdWljaGllblwgOwor6Ieq54S255m655SfID4gc2hpemVuaGFzc2VpXCA7CivmrL3lrprmhrLms5UgPiBraW50ZWlrZW5wb3VcIDsKK+aVsOWApOWItuW+oSA+IHN1dWNoaXNlaWd5b1wgOwor5q2m6ICF5Lq65b2iID4gbXVzaGFuaW5neW91XCA7CivliIblkajlm57ot68gPiBidW5zaHV1a2Fpcm9cIDsKK+iHpem+jeeCueedmyA+IGdhcnlvdXRlbnNlaVwgOwor5biC5rCR5aSn5LyaID4gc2hpbWludGFpa2FpXCA7CivotaTlrZflm73lgrUgPiBha2FqaWtva3VzYWlcIDsKK+S9v+eUqOaWueazlSA+IHNoaXlvdWhvdWhvdVwgOwor5bCP5pil5pel5ZKMID4ga29oYXJ1Yml5b3JpXCA7CivlhazlvI/oqablkIggPiBrb3VzaGlraWppYWlcIDsKK+eFp+WwhOWHpueQhiA+IHNob3VzaGFzaG9yaVwgOwor5Y+C5Yuk5Lqk5pu/ID4gc2Fua2lua291dGFpXCA7CivnvorpoK3ni5fogokgPiB5b3V0b3VrdW5pa3VcIDsKK+aWoeaXi+alreiAhSA+IGFzc2VuZ3lvdXNoYVwgOwor5Lya56S+5qaC6KaBID4ga2Fpc2hhZ2FpeW91XCA7CivmsJHkuLvmlL/kvZMgPiBtaW5zaHVzZWl0YWlcIDsKK+eyl+aUvui+sualrSA+IHNvaG91bm91Z3lvdVwgOwor6LKh5YuZ6Ku46KGoID4gemFpbXVzaG9oeW91XCA7Civomorlj5bnt5rpppkgPiBrYXRvcmlzZW5rb3VcIDsKK+W6g+WgseaDheWgsSA+IGtvdWhvdWpvdWhvdVwgOwor57eK5oCl5LqL5oWLID4ga2lua3l1dWppdGFpXCA7CivlnYfooaHkvqHmoLwgPiBraW5rb3VrYWtha3VcIDsKK+Wto+evgOWkieeVsCA+IGtpc2V0c3VoZW4nJ2lcIDsKK+acieaEn+WcsOmchyA+IHl1dWthbmppc2hpblwgOwor57ep5ZKM5oyv5YuVID4ga2Fud2FzaGluZG91XCA7Civlub3pnIrkurrlj6MgPiB5dXVyZWlqaW5rb3VcIDsKK+e1seiqnuaMh+aomSA+IHRvdWdvc2hpaHlvdVwgOwor5pyA6auY5L6h5qC8ID4gc2Fpa291a2FrYWt1XCA7CivphbjmgKfnmb3lnJ8gPiBzYW5zZWloYWt1ZG9cIDsKK+awkeaXj+iho+ijhSA+IG1pbnpva3Vpc2hvdVwgOwor5L+u5aOr6Kqy56iLID4gc2h1dXNoaWthdGVpXCA7Civlhaznm4rms5XkurogPiBrb3Vla2lob3VqaW5cIDsKK+attOWPsuS4u+e+qSA+IHJla2lzaGlzaHVnaVwgOwor5byB5oW25qC85a2QID4gYmVua2VpZ291c2hpXCA7CivnrKzkuozkurrnp7AgPiBkYWluaW5pbnNob3VcIDsKK+S4i+a1geekvuS8miA+IGthcnl1dXNoYWthaVwgOwor5b+r5qW95Li7576pID4ga2FpcmFrdXNodWdpXCA7CivkuI3nsr7kuI3nsr4gPiBmdXNob3VidXNob3VcIDsKK+WItumZkOmAn+W6piA+IHNlaWdlbnNva3Vkb1wgOwor5paH5q2m5Lih6YGTID4gYnVuYnVyeW91ZG91XCA7CivkuIrmmIfpmZDluqYgPiBqb3VzaG91Z2VuZG9cIDsKK+S9nOeUqOepjeWIhiA+IHNheW91c2VraWJ1blwgOwor6IW5562L6YGL5YuVID4gZnVra2luJyd1bmRvdVwgOwor5YWs6KqN6KiY6YyyID4ga291bmlua2lyb2t1XCA7CivkuIDntrLmiZPlsL0gPiBpY2hpbW91ZGFqaW5cIDsKK+WtpuagoeeUqOWTgSA+IGdha2tvdXlvdWhpblwgOwor5L2P5a6F5omL5b2TID4ganV1dGFrdXRlYXRlXCA7Civoqo3nn6Xnp5HlraYgPiBuaW5jaGlrYWdha3VcIDsKK+WVhuWjsumBk+WFtyA+IHNob3ViYWlkb3VndVwgOwor5Y6f5a2Q5oim5LqJID4gZ2Vuc2hpc2Vuc291XCA7Civkuozph43nhKbngrkgPiBuaWp1dXNob3V0ZW5cIDsKK+WPo+etlOippuWVjyA+IGtvdXRvdXNoaW1vblwgOwor5Zuz5pu46aSo6ZW3ID4gdG9zaG9rYW5jaG91XCA7CivlnKjluqvoqr/mlbQgPiB6YWlrb2Nob3VzZWlcIDsKK+WvvuaVsOmWouaVsCA+IHRhaXN1dWthbnN1dVwgOwor5pS/5pWZ5LiA6Ie0ID4gc2Vpa3lvdWl0Y2hpXCA7CivmlofoirjmibnoqZUgPiBidW5nZWloaWh5b3VcIDsKK+e3muW9ouS7o+aVsCA+IHNlbmtlaWRhaXN1dVwgOwor6YCj5ZCI5pS/5qipID4gcmVuZ291c2Vpa2VuXCA7CivpoLzmr43lrZDorJsgPiB0YW5vbW9zaGlrb3VcIDsKK+WcqOmfk+exs+i7jSA+IHphaWthbmJlaWd1blwgOwor5LiA5aSc5Lme6aOfID4gaWNoaXlha29qaWtpXCA7CivnlbDluLjntYLkuoYgPiBpam91c2h1dXJ5b3VcIDsKK+ippumok+WcsOeNhCA+IHNoaWtlbmppZ29rdVwgOwor56S+5ZOh5pWZ6IKyID4gc2hhaW5reW91aWt1XCA7CivkvIHmpa3lubTph5EgPiBraWd5b3VuZW5raW5cIDsKK+S5numjn+agueaApyA+IGtvamlraWtvbmpvdVwgOwor5LyB5qWt5ZCI5ZCMID4ga2lneW91Z291ZG91XCA7Civoh6rkuLvmjIfph50gPiBqaXNodXNoaXNoaW5cIDsKK+aEn+aFqOeEoemHjyA+IGthbmdhaW11cnlvdVwgOwor5pW15oCn5Zu95a62ID4gdGVraXNlaWtva2thXCA7CivnrYnlt67ntJrmlbAgPiB0b3VzYWt5dXVzdXVcIDsKK+W4q+evhOWtpuagoSA+IHNoaWhhbmdha2tvdVwgOwor57WM5riI56S+5LyaID4ga2VpemFpc2hha2FpXCA7CivmlLnoia/kuLvnvqkgPiBrYWlyeW91c2h1Z2lcIDsKK+e1jOa4iOWItuijgSA+IGtlaXphaXNlaXNhaVwgOwor5Li75oim5oqV5omLID4gc2h1c2VudG91c2h1XCA7CivpgYrmkoPpmorlk6EgPiB5dXVnZWtpdGFpaW5cIDsKK+S4gOaZguW4sOS8kSA+IGljaGlqaWtpa3l1dVwgOwor5Y+X55uK6Ki85Yi4ID4ganVla2lzaG91a2VuXCA7Civmi5npgJ/kuLvnvqkgPiBzZXNzb2t1c2h1Z2lcIDsKK+acqumWi+aLk+WcsCA+IG1pa2FpdGFrdWNoaVwgOwor5YWo5qip5YWs5L2/ID4gemVua2Vua291c2hpXCA7CivntbHliLbntYzmuIggPiB0b3VzZWlrZWl6YWlcIDsKK+eUsOWckumiqOaZryA+IGRlbicnZW5mdXVrZWlcIDsKK+aXheihjOaXpeeoiyA+IHJ5b2tvdW5pdHRlaVwgOwor54Sh6YeP5aSn5pWwID4gbXVyeW91ZGFpc3V1XCA7CivlibLlvJXmranlkIggPiB3YXJpYmlraWJ1YWlcIDsKK+WPjeaguOmBi+WLlSA+IGhhbmtha3V1bmRvdVwgOwor6aaZ5riv6L+U6YKEID4gaG9ua29uaGVua2FuXCA7CivkvIHmpa3lkIjkvbUgPiBraWd5b3VnYXBwZWlcIDsKK+mdnuihjOWwkeW5tCA+IGhpa291c2hvdW5lblwgOwor6YeO5aSW5pKu5b2xID4geWFnYWlzYXRzdWVpXCA7CivljYPmiYvoprPpn7MgPiBzZW5qdWthbicnbm9uXCA7Civnsr7npZ7kuLvnvqkgPiBzZWlzaGluc2h1Z2lcIDsKK+e1guWni+S4gOiyqyA+IHNodXVzaGlpa2thblwgOwor55yM5rCR5Lya6aSoID4ga2VubWlua2Fpa2FuXCA7CivmlZnmnaHkuLvnvqkgPiBreW91am91c2h1Z2lcIDsKK+abtOeUn+S8muekviA+IGtvdXNlaWdhaXNoYVwgOwor57mK57at5bel5qWtID4gc2VuJydpa291Z3lvdVwgOwor5Lq66ZaT5ZCM5aOrID4gbmluZ2VuZG91c2hpXCA7Civli5jlkIjosr/mmJMgPiBrYW5nb3Vib3Vla2lcIDsKK+eZvuWutuS6iemztCA+IGh5YWtrYXNvdW1laVwgOwor5LiW55WM5pS/562WID4gc2VrYWlzZWlzYWt1XCA7CivlrrblsYvlj7DluLMgPiBrYW9rdWRhaWNob3VcIDsKK+adsea1t+mBk+e3miA+IHRvdWthaWRvdXNlblwgOwor6YGO5b2T56u25LqJID4ga2F0b3VreW91c291XCA7CivmtrLkvZPnqpLntKAgPiBla2l0YWljaGlzc29cIDsKK+W5s+WSjOWNlOWumiA+IGhlaXdha3lvdXRlaVwgOwor54Sh57ea6Zu75L+hID4gbXVzZW5kZW5zaGluXCA7CivlsILploDnlKjoqp4gPiBzZW5tb24nJ3lvdWdvXCA7CivkurrpgKDogqXmlpkgPiBqaW56b3VoaXJ5b3VcIDsKK+Wkp+egsuS4iemWgCA+IHRhaWhvdXNhbm1vblwgOwor5a6f6aiT6KOF572uID4gamlra2Vuc291Y2hpXCA7CivkuK3lpK7lirTlg40gPiBjaHV1b3Vyb3Vkb3VcIDsKK+WGhee3mueVquWPtyA+IG5haXNlbmJhbmdvdVwgOwor5Lyd6KiY5L2c6ICFID4gZGVua2lzYWt1c2hhXCA7CivkurrmsJHlhaznpL4gPiBqaW5taW5rb3VzaGFcIDsKK+mAo+e1oeWIh+espiA+IHJlbnJha3VraXBwdVwgOwor5YWx5ZCM5aKT5ZywID4ga3lvdWRvdWJvY2hpXCA7Civlrp/mhYvoqr/mn7sgPiBqaXR0YWljaG91c2FcIDsKK+e3j+WLmemVt+WumCA+IHNvdW11Y2hvdWthblwgOwor5re35Lmx54q25oWLID4ga29ucmFuam91dGFpXCA7Civlrrbml4/mhI/orZggPiBrYXpva3Vpc2hpa2lcIDsKK+WkluaflOWGheWJmyA+IGdhaWp1dW5haWdvdVwgOwor6Kiq5ZWP6LKp5aOyID4gaG91bW9uaGFuYmFpXCA7CivmjpLmlqXpgYvli5UgPiBoYWlzZWtpdW5kb3VcIDsKK+WOn+WtkOW8vumgrSA+IGdlbnNoaWRhbnRvdVwgOwor5Za25qWt5qGI5YaFID4gZWlneW91YW4nJ25haVwgOwor5aSp5paH6Iiq5rOVID4gdGVubW9ua291aG91XCA7CivpnZ7lrp/pmpvnmoQgPiBoaWppc3NhaXRla2lcIDsKK+WPguWLpOS6pOS7oyA+IHNhbmtpbmtvdXRhaVwgOwor6KOP5pu46K2y5rihID4gdXJhZ2FraWpvdXRvXCA7CivplqLkv4Lmm7jpoZ4gPiBrYW5rZWlzaG9ydWlcIDsKK+WFjeioseeahuS8nSA+IG1lbmt5b2thaWRlblwgOwor5Zue6Lui56u25oqAID4ga2FpdGVua3lvdWdpXCA7CivntYzmuIjmsLTln58gPiBrZWl6YWlzdWlpa2lcIDsKK+eEoeassuaBrOa3oSA+IG11eW9rdXRlbnRhblwgOwor6Ieq5oiR5a6f54++ID4gamlnYWppdHN1Z2VuXCA7Civln7fooYznjLbkuoggPiBzaGlra291eXV1eW9cIDsKK+iejemAmuaJi+W9oiA+IHl1dXp1dXRlZ2F0YVwgOwor5Y6a55Sf5bm06YeRID4ga291c2VpbmVua2luXCA7CivpmaLlhoXmhJ/mn5MgPiBpbicnbmFpa2Fuc2VuXCA7CivmgqrmgKfmsLTohasgPiBha3VzZWlzdWlzaHVcIDsKK+Wbo+WNgemDjuS4iCA+IGRhbmp1dXJvdWpvdVwgOwor5Lul5b+D5Lyd5b+DID4gaXNoaW5kZW5zaGluXCA7CivkuIDlrZfljYPph5EgPiBpY2hpamlzZW5raW5cIDsKK+alree4vuaCquWMliA+IGd5b3VzZWtpYWtrYVwgOwor5LqM5p2f5LiJ5paHID4gbmlzb2t1c2FubW9uXCA7CivlhbXlmajmi6HmlaMgPiBoZWlraWtha3VzYW5cIDsKK+S6pOWPi+mWouS/giA+IGtvdXl1dWthbmtlaVwgOwor5Zu96Zqb5pS/5rK7ID4ga29rdXNhaXNlaWppXCA7Civmm7jpnaLlr6nnkIYgPiBzaG9tZW5zaGlucmlcIDsKK+S6uumWk+ekvuS8miA+IG5pbmdlbnNoYWthaVwgOwor6LuN5Zu95Li7576pID4gZ3Vua29rdXNodWdpXCA7CivmsLTkuIrnq7bmioAgPiBzdWlqb3VreW91Z2lcIDsKK+ays+WOn+S5numjnyA+IGthd2FyYWtvamlraVwgOwor5LqM6YeN5pKu5b2xID4gbmlqdXVzYXRzdWVpXCA7Civntbblr77oqZXkvqEgPiB6ZXR0YWloeW91a2FcIDsKK+WcqOexs+mCpuS6uiA+IHphaWJlaWhvdWppblwgOwor5Zub5pyI6aas6bm/ID4gc2hpZ2F0c3ViYWthXCA7CivmlrDpgLLmsJfpi60gPiBzaGluc2hpbmtpZWlcIDsKK+aJgOW+l+aOp+mZpCA+IHNob3Rva3Vrb3Vqb1wgOwor6Zai5L+C5Lya56S+ID4ga2Fua2VpZ2Fpc2hhXCA7Civoh6rkv6HmuoDmuoAgPiBqaXNoaW5tYW5tYW5cIDsKK+aXpeacrOWtpuiAhSA+IG5paG9uZ2FrdXNoYVwgOwor5pil5pel5aSn56S+ID4ga2FzdWdhdGFpc2hhXCA7CivmlofmmI7npL7kvJogPiBidW5tZWlzaGFrYWlcIDsKK+WQjOS6uumbkeiqjCA+IGRvdWppbnphc3NoaVwgOwor5Y+45rOV6KOB5YikID4gc2hpaG91c2FpYmFuXCA7CivkurrkvZPlrp/pqJMgPiBqaW50YWlqaWtrZW5cIDsKK+S6oeWRveaUv+aoqSA+IGJvdW1laXNlaWtlblwgOwor5Luy6ZaT5ZCM5aOrID4gbmFrYW1hZG91c2hpXCA7CivntYzllrblt6XlraYgPiBrZWllaWtvdWdha3VcIDsKK+izm+WQpuS4oeirliA+IHNhbnBpcnlvdXJvblwgOwor5LiN5rOV6ZuG5LyaID4gZnVob3VzaHV1a2FpXCA7CivnnLzpq5jmiYvkvY4gPiBnYW5rb3VzaHV0ZWlcIDsKK+iHquWLleWwj+mKgyA+IGppZG91c2hvdWp1dVwgOwor5Zyw5Z+f56S+5LyaID4gY2hpaWtpc2hha2FpXCA7CivkuqTmtYHkurrkuosgPiBrb3VyeXV1amluamlcIDsKK+eJueauiuWKueaenCA+IHRva3VzaHVrb3VrYVwgOwor6Ieq5a625Lit5q+SID4gamlrYWNodXVkb2t1XCA7Civnm7LosqvpioPlibUgPiBtb3VrYW5qdXVzb3VcIDsKK+S6uuawl+eVque1hCA+IG5pbmtpYmFuZ3VtaVwgOwor5pW15pys5Li7576pID4gdGVraWhvbnNodWdpXCA7Civlj6PlhoXmgKfkuqQgPiBrb3VuYWlzZWlrb3VcIDsKK+iEs+i7n+WMlueXhyA+IG5vdW5hbmthc2hvdVwgOwor54++5Zyw5rOV5Lq6ID4gZ2VuY2hpaG91amluXCA7Civoh6rli5Xou4rms6UgPiBqaWRvdXNoYWRvcm9cIDsKK+S4gOaZguWBnOatoiA+IGljaGlqaXRlaXNoaVwgOwor5a2m5ZyS57Sb5LqJID4gZ2FrdWVuZnVuc291XCA7CivmnIDpq5jlrablupwgPiBzYWlrb3VnYWt1ZnVcIDsKK+S/nemZuuWlkee0hCA+IGhva2Vua2VpeWFrdVwgOwor5aWz5oCn5beu5YilID4gam9zZWlzYWJldHN1XCA7CivlhZDnq6Xnpo/npYkgPiBqaWRvdWZ1a3VzaGlcIDsKK+ippumok+WVj+mhjCA+IHNoaWtlbm1vbmRhaVwgOwor5ry46YCy5Li7576pID4gemVuc2hpbnNodWdpXCA7Civpn7Pkv6HkuI3pgJogPiBvbnNoaW5mdXRzdXVcIDsKK+WLh+W+gOmCgemAsiA+IHl1dW91bWFpc2hpblwgOwor6Z2Z5q2i54q25oWLID4gc2Vpc2hpam91dGFpXCA7CivljJfmlK/kuovlpIkgPiBob2t1c2hpamloZW5cIDsKK+WvuOWAn+ipkOasuiA+IHN1bnNoYWt1c2FnaVwgOwor5oyH5ZCN6YCa6KmxID4gc2hpbWVpdHN1dXdhXCA7Civoi6blv4Pmg6jmhrogPiBrdXNoaW5zYW50YW5cIDsKK+eJveW8t+S7mOS8miA+IGtlbmt5b3VmdWthaVwgOwor5a+S5Ya35YmN57eaID4ga2FucmVpemVuc2VuXCA7CivpgJ/luqbliLbpmZAgPiBzb2t1ZG9zZWlnZW5cIDsKK+Wbm+mDqOWQiOWUsSA+IHNoaWJ1Z2Fzc2hvdVwgOwor6Zu76Zu75YWs56S+ID4gZGVuZGVua291c2hhXCA7CivlhKrli53lgJnoo5wgPiB5dXVzaG91a291aG9cIDsKK+WPi+WlvemWouS/giA+IHl1dWtvdWthbmtlaVwgOwor5pWR5o+054mp6LOHID4ga3l1dWVuYnVzc2hpXCA7CivnpZ7npL7ku4/plqMgPiBqaW5qYWJ1a2tha3VcIDsKK+awtOW5s+aAneiAgyA+IHN1aWhlaXNoaWtvdVwgOwor6Z+z5oSf5pWZ6IKyID4gb25rYW5reW91aWt1XCA7Civmu57ntI3lh6bliIYgPiB0YWlub3VzaG9idW5cIDsKK+WFseWQjOe1jOWWtiA+IGt5b3Vkb3VrZWllaVwgOwor5LqM5YWt5pmC5LitID4gbmlyb2t1amljaHV1XCA7CivkuIDmmYLos5zph5EgPiBpY2hpamlzaGlraW5cIDsKK+iHqueEtuW0h+aLnSA+IHNoaXplbnN1dWhhaVwgOwor5a+p6K2w5pyq5LqGID4gc2hpbmdpbWlyeW91XCA7CivppIrlrZDnuIHntYQgPiB5b3VzaGllbmd1bWlcIDsKK+awj+aXj+WItuW6piA+IHNoaXpva3VzZWlkb1wgOwor6LuN6Zmj5Yy75a2mID4gZ3VuamluJydpZ2FrdVwgOwor5q2j5Zub6Z2i5L2TID4gc2Vpc2hpbWVudGFpXCA7CivlrprmoLzoq4vosqAgPiB0ZWlrYWt1dWtlb2lcIDsKK+W+hemBh+aUueWWhCA+IHRhaWd1dWthaXplblwgOwor57mK57at5YWJ5a2mID4gc2VuJydpa291Z2FrdVwgOwor6buS5Lq66ZyK5q2MID4ga29rdWppbnJlaWthXCA7CivnibnmrormqZ/og70gPiB0b2t1c2h1a2lub3VcIDsKK+e1jOi3r+epjeWIhiA+IGtlaXJvc2VraWJ1blwgOwor5Zu95Za26L6y5aC0ID4ga29rdWVpbm91am91XCA7Civlm73nsovkuLvnvqkgPiBrb2t1c3Vpc2h1Z2lcIDsKK+eUsueKtuiFuueCjiA+IGtvdWpvdXNlbicnZW5cIDsKK+izh+eUo+WQiOioiCA+IHNoaXNhbmdvdWtlaVwgOwor6a+o6aOy6aas6aOfID4gZ2VpaW5iYXNob2t1XCA7Civlv4Poh5PnmbrkvZwgPiBzaGluem91aG9zc2FcIDsKK+aWsOS6uuatjOaJiyA+IHNoaW5qaW5rYXNodVwgOwor6Ly45YWl5omL5b2iID4geXVueXV1dGVnYXRhXCA7CivlnKfnnYDnq6/lrZAgPiBhdHN1Z2l0YW5zaGlcIDsKK+acquaUueW/g+iAhSA+IG1pa2Fpc2hpbnNoYVwgOwor54Sh5Yq55oqV56WoID4gbXVrb3V0b3VoeW91XCA7Civpm6PmlLvkuI3okL0gPiBuYW5rb3VmdXJha3VcIDsKK+S4gOW/g+WQjOS9kyA+IGlzc2hpbmRvdXRhaVwgOwor5a6l5ZKM5pS/562WID4geXV1d2FzZWlzYWt1XCA7CivpmZDnlYzlirnnlKggPiBnZW5rYWlrb3V5b3VcIDsKK+WNgeS4h+WEhOWcnyA+IGp1dW1hbicnb2t1ZG9cIDsKK+WkieaFi+W/g+eQhiA+IGhlbnRhaXNoaW5yaVwgOwor5ouN5a2Q6KiY5Y+3ID4gaHlvdXNoaWtpZ291XCA7CivlhazkvJrllY/nrZQgPiBrb3VrYWltb25kb3VcIDsKK+iAg+WPpOWtpuiAhSA+IGtvdWtvZ2FrdXNoYVwgOwor6YeO55CD6YG45omLID4geWFreXV1c2Vuc2h1XCA7CivlpKLpgYrnl4XogIUgPiBtdXl1dWJ5b3VzaGFcIDsKK+imgeaJgOimgeaJgCA+IHlvdXNob3lvdXNob1wgOwor5L2/5b6S57aZ5om/ID4gc2hpdG9rZWlzaG91XCA7CivlirHno4Hpm7vmtYEgPiByZWlqaWRlbnJ5dXVcIDsKK+ekvuS8muWItuW6piA+IHNoYWthaXNlaWRvXCA7Civku6PnkIbpoJjkuosgPiBkYWlyaXJ5b3VqaVwgOwor54K55pWw5YiH56ymID4gdGVuc3V1a2lwcHVcIDsKK+WMluaIkOiCpeaWmSA+IGthc2VpaGlyeW91XCA7CivmnKrmiJDlubTogIUgPiBtaXNlaW5lbnNoYVwgOwor5LiA5aSp5LiH5LmXID4gaXR0ZW5iYW5qb3VcIDsKK+imquWtkOmWouS/giA+IG95YWtva2Fua2VpXCA7CivmgZDmgJbmlL/msrsgPiBreW91ZnVzZWlqaVwgOwor6Jma5pWw5Y2Y5L2NID4ga3lvc3V1dGFuJydpXCA7CivpgbjmjJnliLbluqYgPiBzZW5reW9zZWlkb1wgOwor5aSn6aGY5oiQ5bCxID4gZGFpZ2Fuam91anVcIDsKK+WGhuWNk+S8muitsCA+IGVudGFrdWthaWdpXCA7CivlpKflrq7lvqHmiYAgPiBvb21peWFnb3Nob1wgOwor5LiK5LiL6Zai5L+CID4gam91Z2VrYW5rZWlcIDsKK+WFrOWWtuS8gealrSA+IGtvdWVpa2lneW91XCA7Civph43mtrLliIbpm6IgPiBqdXVla2lidW5yaVwgOwor5a6f6Le155CG5oCnID4gamlzc2VucmlzZWlcIDsKK+ihjOS9j+WdkOiHpSA+IGd5b3VqdXV6YWdhXCA7CivoqIDooYzkuIDoh7QgPiBnZW5rb3VpdGNoaVwgOwor5bqD5aSn54Sh6L66ID4ga291ZGFpbXVoZW5cIDsKK+WEquWFiOS6i+mghSA+IHl1dXNlbmppa291XCA7CivmkLrluK/pm7voqbEgPiBrZWl0YWlkZW53YVwgOwor5pmC5Luj6Yyv6KqkID4gamlkYWlzYWt1Z29cIDsKK+S6uuW3peihm+aYnyA+IGppbmtvdWVpc2VpXCA7Civnt5rlvaLpoIbluo8gPiBzZW5rZWlqdW5qb1wgOwor5aSW5Lqk5a6Y6KOcID4gZ2Fpa291a2FuaG9cIDsKK+S9j+WxheaJi+W9kyA+IGp1dWt5b3RlYXRlXCA7CivpgZPot6/mqJnnpLogPiBkb3Vyb2h5b3VqaVwgOwor5LqI5YKZ5bCG5qChID4geW9iaXNob3Vrb3VcIDsKK+awkemWk+mjm+ihjCA+IG1pbmthbmhpa291XCA7CivmsLjlrZDkvZzmqKkgPiBlaWtvc2FrdWtlblwgOwor56S+5Lya6YGL5YuVID4gc2hha2FpdW5kb3VcIDsKK+enu+ihjOioiOeUuyA+IGlrb3VrZWlrYWt1XCA7CivmjqXov5HntYzot68gPiBzZWtraW5rZWlyb1wgOwor5LiW55WM57WM5riIID4gc2VrYWlrZWl6YWlcIDsKK+a1ruS4luiNieWtkCA+IHVraXlvem91c2hpXCA7CivlrprmlbDmmK/mraMgPiB0ZWlzdXV6ZXNlaVwgOwor5a6J5L+d5p2h57SEID4gYW5wb2pvdXlha3VcIDsKK+iyqeWjsuWApOautSA+IGhhbmJhaW5lZGFuXCA7Civln7rlupXmp4vpgKAgPiBraXRlaWtvdXpvdVwgOwor5b+F6aCI5p2h5Lu2ID4gaGlzc3Vqb3VrZW5cIDsKK+WMuuijgeWIpOaJgCA+IGt1c2FpYmFuc2hvXCA7CivkuojooYzmvJTnv5IgPiB5b2tvdWVuc2h1dVwgOwor6YG45oyZ6YGL5YuVID4gc2Vua3lvdW5kb3VcIDsKK+Wbvemam+imj+aooSA+IGtva3VzYWlraWJvXCA7CivpgYvou6LlhY3oqLEgPiB1bnRlbm1lbmt5b1wgOwor57ea5b2i6KuW55CGID4gc2Vua2Vpcm9ucmlcIDsKK+W5tOizgOmDteS+vyA+IG5lbmdheXV1YmluXCA7CivmuKnpoqjmmpbmiL8gPiBvbnB1dWRhbmJvdVwgOwor5YaF6YOo5qeL6YCgID4gbmFpYnVrb3V6b3VcIDsKK+S4jeWumuWei+ipqSA+IGZ1dGVpa2Vpc2hpXCA7Civpu4Tph5HltIfmi50gPiBvdWdvbnN1dWhhaVwgOwor5LiW6Kmx5aWz5oi/ID4gc2V3YW55b3Vib3VcIDsKK+eKrOWEkuWtpua0viA+IGtlbmp1Z2FrdWhhXCA7CivkuIDlk4HmlpnnkIYgPiBpcHBpbnJ5b3VyaVwgOwor5Lqc56Gr6YW45aGpID4gYXJ5dXVzYW4nJ2VuXCA7CivmnInlo7DlrZDpn7MgPiB5dXVzZWlzaGlpblwgOwor55qG5YW15Yi25bqmID4ga2FpaGVpc2VpZG9cIDsKK+acque1jOmok+iAhSA+IG1pa2Vpa2Vuc2hhXCA7CivkuIrmhI/kuIvpgZQgPiBqb3Vpa2F0YXRzdVwgOwor6LuK6ZaT6Led6ZuiID4gc2hha2Fua3lvcmlcIDsKK+awt+ays+aZguS7oyA+IGh5b3VnYWppZGFpXCA7Civmg4XloLHnkIboq5YgPiBqb3Vob3VyaXJvblwgOwor5b6h5aSa5b+Z5LitID4gZ290YWJvdWNodXVcIDsKK+aEm+afk+aYjueOiyA+IGFpemVubXlvdW91XCA7CivlubPpnaLkuqTlt64gPiBoZWltZW5rb3VzYVwgOwor57WM6aiT5Li7576pID4ga2Vpa2Vuc2h1Z2lcIDsKK+W8geitt+Wjq+S8miA+IGJlbmdvc2hpa2FpXCA7CivntJTmg4Xlj6/mhpAgPiBqdW5qb3VrYXJlblwgOwor6LyJ6LKo5ZCD5rC0ID4gc2Fpa2FraXNzdWlcIDsKK+WNiua/gemfs+espiA+IGhhbmRha3VvbmZ1XCA7CivmhJvmn5PlppnnjosgPiBhaXplbm15b3VvdVwgOwor6Zao56eA55S75a62ID4ga2Vpc2h1dWdha2FcIDsKK+S4ieWNiuimj+euoSA+IHNhbmhhbmtpa2FuXCA7CivlsIHlu7rmmYLku6MgPiBob3VrZW5qaWRhaVwgOwor6LaK5Yas6LOH6YeRID4gZXR0b3VzaGlraW5cIDsKK+aJgOW4r+mBk+WFtyA+IHNob3RhaWRvdWd1XCA7CivlgrLlsrjnhKHnpLwgPiBnb3VnYW5idXJlaVwgOwor56S+5Lya5L+d6Zm6ID4gc2hha2FpaG9rZW5cIDsKK+i8g+WEquS9jeirliA+IGtha3V5dXVpcm9uXCA7CivkuJboq5boqr/mn7sgPiB5b3JvbmNob3VzYVwgOwor5Yas5pyf5LyR5pqHID4gdG91a2lreXV1a2FcIDsKK+S4iumDqOani+mAoCA+IGpvdWJ1a291em91XCA7CivosaHlvaLmloflrZcgPiBzaG91a2VpbW9qaVwgOwor6L6y5pys5Li7576pID4gbm91aG9uc2h1Z2lcIDsKK+S4gOWIh+ihhueUnyA+IGlzc2Fpc2h1am91XCA7Civml6fmhYvkvp3nhLYgPiBreXV1dGFpaXplblwgOwor5pW055CG55Wq5Y+3ID4gc2VpcmliYW5nb3VcIDsKK+W9k+W6p+izh+eUoyA+IHRvdXphc2hpc2FuXCA7Civmrovlk4HmlbTnkIYgPiB6YW5waW5zZWlyaVwgOwor5a6H5a6Z6YCf5bqmID4gdWNodXVzb2t1ZG9cIDsKK+WKoOawtOWIhuinoyA+IGthc3VpYnVua2FpXCA7CivlrqPkvJ3kvqHlgKQgPiBzZW5kZW5rYWNoaVwgOwor5bm05a2j5aWJ5YWsID4gbmVua2lib3Vrb3VcIDsKK+iyqOW5o+e1jOa4iCA+IGthaGVpa2VpemFpXCA7CivnhKHmnJ/mh7LlvbkgPiBtdWtpY2hvdWVraVwgOwor5biC5aC05Yy65YiGID4gc2hpam91a3VidW5cIDsKK+WIneacn+ioreWumiA+IHNob2tpc2V0dGVpXCA7CivkurrpgKDnuYrntq0gPiBqaW56b3VzZW4nJ2lcIDsKK+aZrumAmumgkOmHkSA+IGZ1dHN1dXlva2luXCA7CivkvY7liKnos4fph5EgPiB0ZWlyaXNoaWtpblwgOwor55yf54+g57Sw5belID4gc2hpbmp1emFpa3VcIDsKK+S4u+efpeS4u+e+qSA+IHNodWNoaXNodWdpXCA7CivkuozpoIXkv4LmlbAgPiBuaWtvdWtlaXN1dVwgOwor57Sg5oCn5qeL6YCgID4gc29zZWlrb3V6b3VcIDsKK+aEm+WbveS4u+e+qSA+IGFpa29rdXNodWdpXCA7CivmiKbpl5jmlK/mj7QgPiBzZW50b3VzaGllblwgOwor5Lq65ZCN6L6e5pu4ID4gamlubWVpamlzaG9cIDsKK+WJjei8qumnhuWLlSA+IHplbnJpbmt1ZG91XCA7CivkvqHmoLzmk43kvZwgPiBrYWtha3Vzb3VzYVwgOwor5b2i6ICM5LiL5a2mID4ga2VpamlrYWdha3VcIDsKK+S4gOacn+S4gOS8miA+IGljaGlnb2ljaGllXCA7CivlnJ/mnKjlt6XkuosgPiBkb2Jva3Vrb3VqaVwgOwor5aWz5a2Q6auY55SfID4gam9zaGlrb3VzZWlcIDsKK+eOi+mBk+alveWcnyA+IG91ZG91cmFrdWRvXCA7CivmgqrmiKboi6bpl5ggPiBha3VzZW5rdXRvdVwgOwor56We57WM5aSW56eRID4gc2hpbmtlaWdla2FcIDsKK+S4jeecoOS4jeS8kSA+IGZ1bWluZnVreXV1XCA7CivlkI3oqonmlZnmjoggPiBtZWl5b2t5b3VqdVwgOwor5Zuz5pu46aSo5ZOhID4gdG9zaG9rYW4nJ2luXCA7Civpq5jmrYzmlL7lkJ8gPiBrb3VrYWhvdWdpblwgOwor5qeL5oiQ5Y2Y5L2NID4ga291c2VpdGFuJydpXCA7CivlpJbkurroqJjogIUgPiBnYWlqaW5raXNoYVwgOwor5L6L5aSW5Yem55CGID4gcmVpZ2Fpc2hvcmlcIDsKK+Wkq+WppuiMtueilyA+IG1lb3RvZGphd2FuXCA7CivlhajpnaLorJvlkowgPiB6ZW5tZW5rb3V3YVwgOwor576p5YuZ5pWZ6IKyID4gZ2ltdWt5b3Vpa3VcIDsKK+aCsuims+irluiAhSA+IGhpa2Fucm9uc2hhXCA7CivlgIvkurrmg4XloLEgPiBrb2ppbmpvdWhvdVwgOwor55S65q6155Wd5q2pID4gY2hvdXRhbnNlYnVcIDsKK+S7o+eQhuWkp+S9vyA+IGRhaXJpdGFpc2hpXCA7Civmp4vpgKDkuLvnvqkgPiBrb3V6b3VzaHVnaVwgOwor5YaF57ea6Zu76KmxID4gbmFpc2VuZGVud2FcIDsKK+WFrOekuuS+oeagvCA+IGtvdWppa2FrYWt1XCA7CivmtrLkvZPphbjntKAgPiBla2l0YWlzYW5zb1wgOwor5rKD5bqm5LiB5bm+ID4geW91ZG9jaGlua2lcIDsKK+WIkeS6i+iotOionyA+IGtlaWppc29zaG91XCA7CivnqLzlg43kurrlj6MgPiBrYWRvdWppbmtvdVwgOwor6Lu95qmf6Zai6YqDID4ga2Vpa2lrYW5qdXVcIDsKK+apn+WvhuS/neittyA+IGtpbWl0c3Vob2dvXCA7CivkuojlgpnkuqTmuIkgPiB5b2Jpa291c2hvdVwgOwor6YCP6KaW5Zuz5rOVID4gdG91c2hpenVob3VcIDsKK+e3tOe/kuippuWQiCA+IHJlbnNodXVqaWFpXCA7Civlj6/oppblhYnnt5ogPiBrYXNoaWtvdXNlblwgOwor562G6KiY6Kmm6aiTID4gaGlra2lzaGlrZW5cIDsKK+WFrOWumuebuOWgtCA+IGtvdXRlaXNvdWJhXCA7CivkvqHmoLzopo/liLYgPiBrYWtha3VraXNlaVwgOwor5Yqg6YeN5bmz5Z2HID4ga2FqdXVoZWlraW5cIDsKK+atpuijheitpuWumCA+IGJ1c291a2Vpa2FuXCA7CivmsLTlrZDkvpvppIogPiBtaXp1Z29rdXlvdVwgOwor5Y2D5aSJ5LiH5YyWID4gc2VucGVuYmFua2FcIDsKK+afu+WumuS+oeagvCA+IHNhdGVpa2FrYWt1XCA7CivkuIvlsaTnpL7kvJogPiBrYXNvdXNoYWthaVwgOwor6Ieq54S25Li7576pID4gc2hpemVuc2h1Z2lcIDsKK+iIiOWRs+acrOS9jSA+IGt5b3VtaWhvbicnaVwgOwor54Sh5L2T6LOH55SjID4gbXV0YWlzaGlzYW5cIDsKK+e1jOa4iOWwgemOliA+IGtlaXphaWZ1dXNhXCA7Civnq7bkuonnm7jmiYsgPiBreW91c291YWl0ZVwgOwor5LqU6Lyq5aSn5LyaID4gZ29yaW50YWlrYWlcIDsKK+aXpeacrOS4ieaZryA+IG5paG9uc2Fua2VpXCA7CivmsrnmgKfloZfmlpkgPiB5dXNlaXRvcnlvdVwgOwor5pS56KiC5aKX6KOcID4ga2FpdGVpem91aG9cIDsKK+S4gOiIrOamguW/tSA+IGlwcGFuZ2FpbmVuXCA7CivlsI/kuIDmmYLplpMgPiBrb2ljaGlqaWthblwgOwor5LiJ6ISa5qSF5a2QID4gc2Fua3lha3Vpc3VcIDsKK+earuiGmuaEn+immiA+IGhpZnVrYW5rYWt1XCA7CivmqKnliKnooYzkvb8gPiBrZW5yaWtvdXNoaVwgOwor5ryi5a2X5aSJ5o+bID4ga2FuamloZW5rYW5cIDsKK+eEoeS9k+iyoeeUoyA+IG11dGFpemFpc2FuXCA7CivlhajkvZPkvJrorbAgPiB6ZW50YWlrYWlnaVwgOwor5LqM6YeN5oq15b2TID4gbmlqdXV0ZWl0b3VcIDsKK+apn+aisOaWh+aYjiA+IGtpa2FpYnVubWVpXCA7CivlpKnmtKXkuZnlpbMgPiBhbWF0c3VvdG9tZVwgOwor5Yip5a6z6Zai5L+CID4gcmlnYWlrYW5rZWlcIDsKK+Wkmuinkue1jOWWtiA+IHRha2FrdWtlaWVpXCA7CivlpKvlqabliKXlp5MgPiBmdXVmdWJlc3NlaVwgOwor5pel5pys6Kqe6KizID4gbmlob25nb3lha3VcIDsKK+S6pOaPm+apn+iDvSA+IGtvdWthbmtpbm91XCA7CivnlKPljbXloLTmiYAgPiBzYW5yYW5iYXNob1wgOwor6LWw6KGM6Led6ZuiID4gc291a291a3lvcmlcIDsKK+eEoeWwvee1hOWQiCA+IG11amlua3VtaWFpXCA7Civlho3nlJ/liKnnlKggPiBzYWlzZWlyaXlvdVwgOwor6Iiq56m65q+N6ImmID4ga291a3V1Ym9rYW5cIDsKK+S6uuWQjei+nuWFuCA+IGppbm1laWppdGVuXCA7CivmmKjpnZ7ku4rmmK8gPiBzYWt1aGlrb256ZVwgOwor5paw5Y+k5YW45rS+ID4gc2hpbmtvdGVuaGFcIDsKK+e1jOWWtuizh+a6kCA+IGtlaWVpc2hpZ2VuXCA7CivooqvlrrPlpoTmg7MgPiBoaWdhaW1vdXNvdVwgOwor57Sw6I+M5YW15ZmoID4gc2Fpa2luaGVpa2lcIDsKK+mjveWSjOa6tua2siA+IGhvdXdheW91ZWtpXCA7CivkuIDoiKzkvJroqIggPiBpcHBhbmthaWtlaVwgOwor5rqW5YKZ6LOH6YeRID4ganVuYmlzaGlraW5cIDsKK+aUv+WFmuaUv+ayuyA+IHNlaXRvdXNlaWppXCA7Civmr43lrZDlubTph5EgPiBib3NoaW5lbmtpblwgOwor576O5a655pW05b2iID4gYml5b3VzZWlrZWlcIDsKK+WIneacn+aKleizhyA+IHNob2tpdG91c2hpXCA7CivmnIDnn63ot53pm6IgPiBzYWl0YW5reW9yaVwgOwor5ZGo6L665qmf5ZmoID4gc2h1dWhlbmtpa2lcIDsKK+WItumZkOaZgumWkyA+IHNlaWdlbmppa2FuXCA7Civli6TlirTmhI/mrLIgPiBraW5yb3VpeW9rdVwgOwor5YCJ5bqr5Lya56S+ID4gc291a29nYWlzaGFcIDsKK+acqumWi+ekvuS8miA+IG1pa2Fpc2hha2FpXCA7CivpgY7lpKfoqZXkvqEgPiBrYWRhaWh5b3VrYVwgOwor56C05buJ5oGl572qID4gaGFyZW5jaGl6YWlcIDsKK+aZgumZkOijhee9riA+IGppZ2Vuc291Y2hpXCA7Civmma/msJflpInli5UgPiBrZWlraWhlbmRvdVwgOwor5LiA5qyh6KiY5oa2ID4gaWNoaWppa2lva3VcIDsKK+ihneWLleihjOeCuiA+IHNob3Vkb3Vrb3VpXCA7CivoqLHlrrnnr4Tlm7IgPiBreW95b3VoYW4nJ2lcIDsKK+eUn+eUo+euoeeQhiA+IHNlaXNhbmthbnJpXCA7CivljLvnmYLkvJ3pgZMgPiBpcnlvdWRlbmRvdVwgOwor56qB6LKr5bel5LqLID4gdG9ra2Fua291amlcIDsKK+mBuOiAg+Wfuua6liA+IHNlbmtvdWtpanVuXCA7Civpg73luILpioDooYwgPiB0b3NoaWdpbmtvdVwgOwor5a6j5Lyd5pig55S7ID4gc2VuZGVuJydlaWdhXCA7CivmhYjlloTkuovmpa0gPiBqaXplbmppZ3lvdVwgOwor5Yqg6YCf5bqm6KiIID4ga2Fzb2t1ZG9rZWlcIDsKK+WCsuaFouS4jemBnCA+IGdvdW1hbmZ1c29uXCA7CivliJHli5nkvZzmpa0gPiBrZWltdXNhZ3lvdVwgOwor5Zyw55CD6KaP5qihID4gY2hpa3l1dWtpYm9cIDsKK+mAlOS4reioiOaZgiA+IHRvY2h1dWtlaWppXCA7Civpq5jlsITnibnnp5EgPiBrb3VzaGF0b2trYVwgOwor5LiJ6Z2i5YWt6IeCID4gc2FubWVucm9wcGlcIDsKK+W+ruWIhuaWremdoiA+IGJpYnVuZGFubWVuXCA7CivliIblqKnkvZznlKggPiBidW5iZW5zYXlvdVwgOwor5L+d5YGl5L2T6IKyID4gaG9rZW50YWlpa3VcIDsKK+aatOi1sOmBi+i7oiA+IGJvdXNvdXVudGVuXCA7Civoq67llY/mqZ/plqIgPiBzaGltb25raWthblwgOwor55Sw6IiO6Iqd5bGFID4gaW5ha2FzaGliYWlcIDsKK+eZjOmBuuS8neWtkCA+IGdhbicnaWRlbnNoaVwgOwor55m+6ay85aSc6KGMID4gaHlha2tpeWFrb3VcIDsKK+awuOWwj+S9nOaoqSA+IGVpa29zYWt1a2VuXCA7CivnhKHmrbvmuoDloYEgPiBtdXNoaW1hbnJ1aVwgOwor5LqM55Wq5oq15b2TID4gbmliYW50ZWl0b3VcIDsKK+e3j+WLmemDqOmVtyA+IHNvdW11YnVjaG91XCA7Civoh6rnlLHosr/mmJMgPiBqaXl1dWJvdWVraVwgOwor5bmz5ZKM5p2h6aCFID4gaGVpd2Fqb3Vrb3VcIDsKK+awl+WIhui7ouaPmyA+IGtpYnVudGVua2FuXCA7CivlhJLmlZnkuLvnvqkgPiBqdWt5b3VzaHVnaVwgOwor5aWz5q2M6Iie5LyOID4gb24nJ25ha2FidWtpXCA7Civpo5vooYzmqZ/pm7IgPiBoaWtvdWtpZ3Vtb1wgOwor6Lev6Z2i6Zu76LuKID4gcm9tZW5kZW5zaGFcIDsKK+WNmOeLrOihjOeCuiA+IHRhbmRva3Vrb3VpXCA7CivoqqDlv4PoqqDmhI8gPiBzZWlzaGluc2VpaVwgOwor5pel5pys5paZ55CGID4gbmlob25yeW91cmlcIDsKK+aVheS6i+adpeattCA+IGtvamlyYWlyZWtpXCA7CivlhoXovKrllqflmKkgPiB1Y2hpd2FnZW5rYVwgOwor5Lqc56Gd6YW45aGpID4gYXNob3VzYW4nJ2VuXCA7CivkuIDop5LnjaPluqcgPiBpa2tha3VqdXV6YVwgOwor5Y+N5L2T5Yi25rS+ID4gaGFudGFpc2VpaGFcIDsKK+WMuuWKg+aVtOeQhiA+IGt1a2FrdXNlaXJpXCA7CivmlL7ku7vkuLvnvqkgPiBob3VuaW5zaHVnaVwgOwor6YG65peP57Wm5LuYID4gaXpva3VreXV1ZnVcIDsKK+WkieS9jeWItuW+oSA+IGhlbicnaXNlaWd5b1wgOwor5paH6YOo5aSn6IejID4gbW9uYnVkYWlqaW5cIDsKK+Wls+aoqeirluiAhSA+IGpva2Vucm9uc2hhXCA7CivkuIvlo6vlrpjlhbUgPiBrYXNoaWthbmhlaVwgOwor5Lit56aF5a+65rmWID4gY2h1dXplbmppa29cIDsKK+ijveWTgeWOn+S+oSA+IHNlaWhpbmdlbmthXCA7CivkurrmsJHkuLvnvqkgPiBqaW5taW5zaHVnaVwgOwor5YuJ5by36YOo5bGLID4gYmVua3lvdWJleWFcIDsKK+elnuWuruWkluiLkSA+IGppbmd1dWdhaWVuXCA7CivlhajoiKzmlK/mj7QgPiB6ZW5wYW5zaGllblwgOwor5bCR5aOu5pyJ54K6ID4gc2hvdXNvdXl1dWlcIDsKK+e1jOWPo+aKleS4jiA+IGtlaWtvdXRvdXlvXCA7Civmj5vmsJfoo4Xnva4gPiBrYW5raXNvdWNoaVwgOwor5YWx5ZKM5Yi25bqmID4ga3lvdXdhc2VpZG9cIDsKK+S6jOiqsuWLieW8tyA+IG5pa2FiZW5reW91XCA7CivkuojpmLLmjqXnqK4gPiB5b2JvdXNlc3NodVwgOwor55Ww5Zu95oOF57eSID4gaWtva3Vqb3VjaG9cIDsKK+mBi+i7ouWBnOatoiA+IHVudGVudGVpc2hpXCA7Civmgqrlj6Ppm5HoqIAgPiBha2tvdXpvdWdvblwgOwor6LuN5rOV5Lya6K2wID4gZ3VucG91a2FpZ2lcIDsKK+WkqeWcsOeEoeeUqCA+IHRlbmNoaW11eW91XCA7CivnlbDluLjmgKfmrLIgPiBpam91c2VpeW9rdVwgOwor5Lq65bel5Y+X6IOOID4gamlua291anV0YWlcIDsKK+aXpeacrOaWh+azlSA+IG5paG9uYnVucG91XCA7CivkuIrkuIvmsLTpgZMgPiBqb3VnZXN1aWRvdVwgOwor6YqA6KGM5Y+j5bqnID4gZ2lua291a291emFcIDsKK+Wkj+acn+Wkp+WtpiA+IGtha2lkYWlnYWt1XCA7CivpgKPpgqborbDkvJogPiByZW5wb3VnaWthaVwgOwor5pyr5pyf55eH54q2ID4gbWFra2lqb3V0YWlcIDsKK+S6lOauteWLleipniA+IGdvZGFuZG91c2hpXCA7Civnq4vms5XmqZ/plqIgPiByaXBwb3VraWthblwgOwor5Zug5b6q5aeR5oGvID4gaW5qdW5rb3Nva3VcIDsKK+Wkp+WxseakkumtmiA+IG9vc2Fuc2hvdXVvXCA7CivomY7oppbnnIjnnIggPiBrb3NoaXRhbnRhblwgOwor6IOM6Z2i6aOb6KGMID4gaGFpbWVuaGlrb3VcIDsKK+W8vuS4uOmBk+i3ryA+IGRhbmdhbmRvdXJvXCA7CivlhKrlhYjlpJbosqggPiB5dXVzZW5nYWlrYVwgOwor5b2T55So5ryi5a2XID4gdG91eW91a2FuamlcIDsKK+awkeacrOS4u+e+qSA+IG1pbnBvbnNodWdpXCA7Civkurrlt6Xlj5fntJsgPiBqaW5rb3VqdWZ1blwgOwor5Li76KaB54mp5L6hID4gc2h1eW91YnVra2FcIDsKK+S6uuW3peWPl+eyviA+IGppbmtvdWp1c2VpXCA7CivnmbvlsbHpm7vou4ogPiB0b3phbmRlbnNoYVwgOwor5pqr5a6a5pS/5bqcID4gemFudGVpc2VpZnVcIDsKK+S5l+WQiOmmrOi7iiA+IG5vcmlhaWJhc2hhXCA7CivmnJ/miJDlkIznm58gPiBraXNlaWRvdW1laVwgOwor5pWj5YWJ5pif6ZuyID4gc2Fua291c2VpdW5cIDsKK+mjoumkk+eZguazlSA+IGtpZ2FyeW91aG91XCA7Civns7jlgY/mma/msJcgPiBpdG9oZW5rZWlraVwgOwor54mp5L6h5aSJ5YuVID4gYnVra2FoZW5kb3VcIDsKK+i/kemDiumDveW4giA+IGtpbmtvdXRvc2hpXCA7CivlhazplovmnJ/plpMgPiBrb3VrYWlraWthblwgOwor5YmN5b6M5LiN6KaaID4gemVuZ29mdWtha3VcIDsKK+a6luWCmeS9k+aTjSA+IGp1bmJpdGFpc291XCA7Civmr43ns7vlrrbml48gPiBib2tlaWthem9rdVwgOwor5q2v56eR5Yy76KGTID4gc2hpa2FpanV0c3VcIDsKK+mHkeeuoealveWZqCA+IGtpbmthbmdha2tpXCA7CivliIfno4vnkKLno6ggPiBzZXNzYXRha3VtYVwgOwor5LiA5pmC6Kej6ZuHID4gaWNoaWppa2Fpa29cIDsKK+mBi+i7ouizh+mHkSA+IHVudGVuc2hpa2luXCA7CivloZHmgKfpmZDnlYwgPiBzb3NlaWdlbmthaVwgOwor6YeR5qip5pS/5rK7ID4ga2lua2Vuc2VpamlcIDsKK+mYsuW+oemDqOmaiiA+IGJvdWd5b2J1dGFpXCA7CivpnZnmraLooZvmmJ8gPiBzZWlzaGllaXNlaVwgOwor5YaN5bqm5Y2U6K2wID4gc2FpZG9reW91Z2lcIDsKK+S4gOWIh+WQiOiyoSA+IGlzc2FpZ2Fzc2FpXCA7CivpgbrnlKPnm7jntpogPiBpc2Fuc291em9rdVwgOwor5aGR5oCn5aSJ5b2iID4gc29zZWloZW5rZWlcIDsKK+S4gOWkqeWbm+a1tyA+IGl0dGVuc2hpa2FpXCA7Civpn7Ppn7/lirnmnpwgPiBvbmt5b3Vrb3VrYVwgOwor5Y2Y5pys5L2N5oCnID4gdGFuaG9uJydpc2VpXCA7Civpm7LmlaPpnKfmtoggPiB1bnNhbm11c2hvdVwgOwor5YWo5L2T5Li7576pID4gemVudGFpc2h1Z2lcIDsKK+WBnOatouaZgumWkyA+IHRlaXNoaWppa2FuXCA7CivkvY7nqbrpo5vooYwgPiB0ZWlrdXVoaWtvdVwgOwor5pSv5bqm6YOo5bGLID4gc2hpdGFrdWJleWFcIDsKK+WKoOW3peiyv+aYkyA+IGtha291Ym91ZWtpXCA7CivooZvmmJ/mlL7pgIEgPiBlaXNlaWhvdXNvdVwgOwor6Zu75rCX5YiG6KejID4gZGVua2lidW5rYWlcIDsKK+miqOiHtOWcsOWMuiA+IGZ1dWNoaWNoaWt1XCA7Civlr4bplonlrrnlmaggPiBtaXBwZWl5b3VraVwgOwor6YCj5biv5YK15YuZID4gcmVudGFpc2FpbXVcIDsKK+mHkeWJm+iWqeWglSA+IGtvbmdvdXNhdHRhXCA7CivkuIDkurrlpKnkuIsgPiBoaXRvcmlkZW5rYVwgOwor5pmC6ZaT5Y+N6LuiID4gamlrYW5oYW50ZW5cIDsKK+ilv+asp+aWh+aYjiA+IHNlaW91YnVubWVpXCA7CivkuIvpg6jntYTnuZQgPiBrYWJ1c29zaGlraVwgOwor55u45LmX5Yq55p6cID4gc291am91a291a2FcIDsKK+awtOW5s+i3nemboiA+IHN1aWhlaWt5b3JpXCA7Civou43lgpnmkqTlu4MgPiBndW5iaXRlcHBhaVwgOwor5Zu65pyJ5ZCN6KmeID4ga295dXVtZWlzaGlcIDsKK+S6uumWk+eWjuWkliA+IG5pbmdlbnNvZ2FpXCA7CivmnInmqZ/ljJblraYgPiB5dXVraWthZ2FrdVwgOwor5Luy6ZaT5YCk5q61ID4gbmFrYW1hbmVkYW5cIDsKK+a4qeaVheefpeaWsCA+IG9ua29jaGlzaGluXCA7Civmmpfoppboo4Xnva4gPiBhbnNoaXNvdWNoaVwgOwor5Zu95a626Kmm6aiTID4ga29ra2FzaGlrZW5cIDsKK+mdkuaenOW4guWgtCA+IHNlaWthaWNoaWJhXCA7CivmsJHkuovoo4HliKQgPiBtaW5qaXNhaWJhblwgOwor5Y6f5a2Q5YW15ZmoID4gZ2Vuc2hpaGVpa2lcIDsKK+iCr+WumuW/nOetlCA+IGtvdXRlaW91dG91XCA7CivlpInmm7TkuI3og70gPiBoZW5rb3VmdW5vdVwgOwor57SA5Yui5pys57eaID4ga2lzZWlob25zZW5cIDsKK+m6u+ijj+iNieWxpSA+IGFzYXVyYXpvdXJpXCA7Civlj7Dmub7lnYrkuLsgPiB0YWl3YW5ib3V6dVwgOwor5a2j5YiK6ZuR6KqMID4ga2lrYW56YXNzaGlcIDsKK+WNl+mYv+aIpuS6iSA+IG5hbicnYXNlbnNvdVwgOwor54Sh57ea5ZGo5rOiID4gbXVzZW5zaHV1aGFcIDsKK+mVt+acn+mHkeWIqSA+IGNob3VraWtpbnJpXCA7Civpo5vooYzmqZ/nrYkgPiBoaWtvdWtpbmFkb1wgOwor5YKA5YSh5pS/5bqcID4ga2FpcmFpc2VpZnVcIDsKK+W4guWklumbu+ipsSA+IHNoaWdhaWRlbndhXCA7CivpgKPpgqbmlL/lupwgPiByZW5wb3VzZWlmdVwgOwor5pS+5q2M6auY5ZCfID4gaG91a2Frb3VnaW5cIDsKK+W+rumHj+WFg+e0oCA+IGJpcnlvdWdlbnNvXCA7Civoi7HlrZfmlrDogZ4gPiBlaWppc2hpbmJ1blwgOwor5rqA6Lqr5Ym155eNID4gbWFuc2hpbnNvdWlcIDsKK+esrOS6jOe1hOWQiCA+IGRhaW5pa3VtaWFpXCA7CivlqabkurrorablrpggPiBmdWppbmtlaWthblwgOwor56ys5LiJ5LiW55WMID4gZGFpc2Fuc2VrYWlcIDsKK+avmOaymemWgOWkqSA+IGJpc2hhbW9udGVuXCA7CivnpL7kvJrkuLvnvqkgPiBzaGFrYWlzaHVnaVwgOwor5a2m5L2N6KuW5paHID4gZ2FrdWlyb25idW5cIDsKK+ekvuS6pOi+nuS7pCA+IHNoYWtvdWppcmVpXCA7CivlvrTlhbXlv4zpgb8gPiBjaG91aGVpa2loaVwgOwor5qmf5Lya5Z2H562JID4ga2lrYWlraW50b3VcIDsKK+aaq+WumuaOque9riA+IHphbnRlaXNvY2hpXCA7CivmlrnlkJHpn7Pnl7QgPiBob3Vrb3VvbmNoaVwgOwor5LiW55WM6YqA6KGMID4gc2VrYWlnaW5rb3VcIDsKK+WFqOaoqeWnlOS7uyA+IHplbmtlbicnaW5pblwgOwor6Ieq54S26KiA6KqeID4gc2hpemVuZ2VuZ29cIDsKK+iqh+Wkp+WmhOaDsyA+IGtvZGFpbW91c291XCA7CivljJbnsqfpgZPlhbcgPiBrZXNob3Vkb3VndVwgOwor5LiN5aSJ6LOH5pysID4gZnVoZW5zaGlob25cIDsKK+iznuWRs+acn+mZkCA+IHNob3VtaWtpZ2VuXCA7Civlv4Poh5PlpJbnp5EgPiBzaGluem91Z2VrYVwgOwor5bm+5L2V57Sa5pWwID4ga2lrYWt5dXVzdXVcIDsKK+S4iemDqOWQiOWljyA+IHNhbmJ1Z2Fzc291XCA7Civokpnlj6TkurrnqK4gPiBtb3Vrb2ppbnNodVwgOwor6Zu75rCX5YyW5a2mID4gZGVua2lrYWdha3VcIDsKK+ixhuiFkOS4gOS4gSA+IHRvdWZ1aXRjaG91XCA7Civmtojosrvpg73luIIgPiBzaG91aGl0b3NoaVwgOwor5LiA5LiA44CH55WqID4gaHlha3V0b29iYW5cIDsKK+WutuaXj+WItuW6piA+IGthem9rdXNlaWRvXCA7CivnlJ/lrZjmnJ/plpMgPiBzZWl6b25raWthblwgOwor6YeO6Imv5LuV5LqLID4gbm9yYXNoaWdvdG9cIDsKK+aXpeS8iui+nuWFuCA+IG5pY2hpaWppdGVuXCA7CivkuI3mraPkuZfou4ogPiBmdXNlaWpvdXNoYVwgOwor6Kq/5p+757WQ5p6cID4gY2hvdXNha2Vra2FcIDsKK+S4jeW9k+W7ieWjsiA+IGZ1dG91cmVuYmFpXCA7Civmu4XlpJrnn6LpsYggPiBtZXR0YXlhdGFyYVwgOwor5YmN5Lq65pyq6LiPID4gemVuamlubWl0b3VcIDsKK+S4jeW9k+WIqeW+lyA+IGZ1dG91cml0b2t1XCA7Civlm57mlZnlr7rpmaIgPiBrYWlreW91amlpblwgOwor6LuN5LqL6KiT57e0ID4gZ3VuamlrdW5yZW5cIDsKK+e3j+WQiOWPo+W6pyA+IHNvdWdvdWtvdXphXCA7Civpg6HnnIzliLbluqYgPiBndW5rZW5zZWlkb1wgOwor5L2/55So5Y+v6IO9ID4gc2hpeW91a2Fub3VcIDsKK+WGhemDqOeVmeS/nSA+IG5haWJ1cnl1dWhvXCA7Civlho3osqnliLbluqYgPiBzYWloYW5zZWlkb1wgOwor6KKr6YG45oyZ5qipID4gaGlzZW5reW9rZW5cIDsKK+eJqeS+oee1seWItiA+IGJ1a2thdG91c2VpXCA7Civlm6DmlbDliIbop6MgPiBpbnN1dWJ1bmthaVwgOwor55Sf55Sf5rWB6LuiID4gc2Vpc2VpcnV0ZW5cIDsKK+eEoeefpeiSmeaYpyA+IG11Y2hpbW91bWFpXCA7CivloJXokL3lnYrkuLsgPiBkYXJha3Vib3V6dVwgOwor6Iie5Y+w5bqm6IO4ID4gYnV0YWlkb2t5b3VcIDsKK+azsOilv+WQjeeUuyA+IHRhaXNlaW1laWdhXCA7Civms5Xmsrvlm73lrrYgPiBob3VjaGlrb2trYVwgOwor5YSq5YWI6aCG5L2NID4geXV1c2VuanVuJydpXCA7CivljZjkvY3ntYTlkIggPiB0YW4nJ2lrdW1pYWlcIDsKK+euoeeQhuaDheWgsSA+IGthbnJpam91aG91XCA7CivlrozlhajkuLvnvqkgPiBrYW56ZW5zaHVnaVwgOwor5LiD5LiN5oCd6K2wID4gbmFuYWZ1c2hpZ2lcIDsKK+WgseW+qeihjOeCuiA+IGhvdWZ1a3Vrb3VpXCA7CivlrqPkvJ3mloflj6UgPiBzZW5kZW5tb25rdVwgOwor5LqM5oiQ5paH57O7ID4gbmlzZWlidW5rZWlcIDsKK+S9k+WGheaZguioiCA+IHRhaW5haWRva2VpXCA7CivljLrnlLvmlbTnkIYgPiBrdWtha3VzZWlyaVwgOwor57WC5aSc6YGL6LuiID4gc2h1dXlhdW50ZW5cIDsKK+WKoOmAn+mBi+WLlSA+IGthc29rdXVuZG91XCA7Civlr77mipfpg6jpmoogPiB0YWlrb3VidXRhaVwgOwor57WQ5ama6LK755SoID4ga2Vra29uaGl5b3VcIDsKK+i7jeS6i+aUv+aoqSA+IGd1bmppc2Vpa2VuXCA7CivmnInmqZ/ovrLms5UgPiB5dXVraW5vdWhvdVwgOwor6Ziy6KGb6YOo6ZW3ID4gYm91ZWlidWNob3VcIDsKK+mBi+WWtuizh+mHkSA+IHVuJydlaXNoaWtpblwgOwor5pyI6KaL6JWO6bqmID4gdHN1a2ltaXNvYmFcIDsKK+S6uueUn+iIqui3ryA+IGppbnNlaWtvdXJvXCA7CivnlJ/lkb3kv53pmbogPiBzZWltZWlob2tlblwgOwor5b+c5oCl5omL5b2TID4gb3VreXV1dGVhdGVcIDsKK+acieW9oueEoeW9oiA+IHl1dWtlaW11a2VpXCA7Civlj5fkv6Hlm57ot68gPiBqdXNoaW5rYWlyb1wgOwor5Y+C6ICD5Zuz5pu4ID4gc2Fua291dG9zaG9cIDsKK+iLsembhOW0h+aLnSA+IGVpeXV1c3V1aGFpXCA7Civlj5fpqJPnlarlj7cgPiBqdWtlbmJhbmdvdVwgOwor6YeN6L6y5Li7576pID4ganV1bm91c2h1Z2lcIDsKK+itt+WbveelnuekviA+IGdva29rdWppbmphXCA7CivmmI7msrvnpZ7lrq4gPiBtZWlqaWppbmd1dVwgOwor5bCR5pWw5oSP6KaLID4gc2hvdXN1dWlrZW5cIDsKK+avlOe/vOmAo+eQhiA+IGhpeW9rdXJlbnJpXCA7CivmnInmnJ/lubTph5EgPiB5dXVraW5lbmtpblwgOwor5LqM5YWD5pS+6YCBID4gbmlnZW5ob3Vzb3VcIDsKK+iHquS/oemBjuWJsCA+IGppc2hpbmtham91XCA7CivlpYnntI3nm7jmkrIgPiBob3Vub3V6dW1vdVwgOwor5Lq66Lqr5b6h5L6bID4gaGl0b21pZ29rdXVcIDsKK+S/neitt+aknOadnyA+IGhvZ29rZW5zb2t1XCA7CivliIbnnIzlnLDlm7MgPiBidW5rZW5jaGl6dVwgOwor6Zi/6Kub6L+95b6TID4gYXl1dHN1aXNob3VcIDsKK+mbu+WFieefs+eBqyA+IGRlbmtvdXNla2thXCA7Civms6LngL7kuIfkuIggPiBoYXJhbmJhbmpvdVwgOwor55u45LqS6Zai5L+CID4gc291Z29rYW5rZWlcIDsKK+WGhemDqOS7leanmCA+IG5haWJ1c2hpeW91XCA7Civnmq7kuIvms6jlsIQgPiBoaWthY2h1dXNoYVwgOwor5Lm+54el6YeO6I+cID4ga2Fuc291eWFzYWlcIDsKK+efreapn+mWoumKgyA+IHRhbmtpa2FuanV1XCA7Civnj77lnLDmmYLplpMgPiBnZW5jaGlqaWthblwgOwor5LiA562J6LuN5pu5ID4gaXR0b3VndW5zb3VcIDsKK+WutuW6reeUqOWTgSA+IGthdGVpeW91aGluXCA7CivpibHlsbHmioDluKsgPiBrb3V6YW5naXNoaVwgOwor5LiA5a2Q55u45LydID4gaXNzaGlzb3VkZW5cIDsKK+aZgumZkOeri+azlSA+IGppZ2VucmlwcG91XCA7CivmhJvliKXpm6Loi6YgPiBhaWJldHN1cmlrdVwgOwor5Zu65a6a6LOH55SjID4ga290ZWlzaGlzYW5cIDsKK+WSjOeLrOi+nuWFuCA+IHdhZG9rdWppdGVuXCA7CivnmbvmoKHmi5LlkKYgPiB0b3Vrb3VreW9oaVwgOwor5ryU5aWP5peF6KGMID4gZW5zb3VyeW9rb3VcIDsKK+abuOeUu+mqqOiRoyA+IHNob2dha290dG91XCA7CivpgYvli5XpgbjmiYsgPiB1bmRvdXNlbnNodVwgOwor5a2m5ZyS6YO95biCID4gZ2FrdWVudG9zaGlcIDsKK+adsea0i+S4u+e+qSA+IHRvdXlvdXNodWdpXCA7CivlpKfpoqjlkYLmlbcgPiBvb2J1cm9zaGlraVwgOwor5pyJ6JOL6LKo6LuKID4geXV1Z2Fpa2FzaGFcIDsKK+aUv+ayu+izh+mHkSA+IHNlaWppc2hpa2luXCA7CivoqIDoq5bmqZ/plqIgPiBnZW5yb25raWthblwgOwor6aSK6K235a2m5qChID4geW91Z29nYWtrb3VcIDsKK+i1sOihjOaZgumWkyA+IHNvdWtvdWppa2FuXCA7CivoqZXkvqHln7rmupYgPiBoeW91a2FraWp1blwgOwor5paw6IGe6KiY5LqLID4gc2hpbmJ1bmtpamlcIDsKK+Wkq+WUseWppumajyA+IGZ1c2hvdWZ1enVpXCA7Civpm7vlrZDovp7mm7ggPiBkZW5zaGlqaXNob1wgOwor5ZCM5pmC6Yyy6Z+zID4gZG91amlyb2t1b25cIDsKK+euoeeQhuekvuS8miA+IGthbnJpc2hha2FpXCA7CivkuIDoppblkIzku4EgPiBpc3NoaWRvdWppblwgOwor5LiA6KaW5ZCM5Lq6ID4gaXNzaGlkb3VqaW5cIDsKK+ani+mAoOWkieWMliA+IGtvdXpvdWhlbmthXCA7CivlpbPmtYHkvZzlrrYgPiBqb3J5dXVzYWtrYVwgOwor77yR77yR77yQ55WqID4gaHlha3V0b29iYW5cIDsKK+WPuOazleWItuW6piA+IHNoaWhvdXNlaWRvXCA7Civli6Tli5nkuqTku6MgPiBraW5tdWtvdXRhaVwgOwor55+t57eo5pig55S7ID4gdGFucGVuJydlaWdhXCA7CivkvJrlk6Hopo/ntIQgPiBrYWlpbmtpeWFrdVwgOwor5LqM54K55YWI5Y+WID4gbml0ZW5zZW5zaHVcIDsKK+WPjeaIpuS4u+e+qSA+IGhhbnNlbnNodWdpXCA7CivmmrTomY7ppq7msrMgPiBib3Vrb2h5b3VnYVwgOwor5bem6IWV5oqV5omLID4gc2F3YW50b3VzaHVcIDsKK+WJjeacn+ippumokyA+IHplbmtpc2hpa2VuXCA7CivooqvpgbjmjJnkurogPiBoaXNlbmt5b25pblwgOwor6IOM5b6M6Zai5L+CID4gaGFpZ29rYW5rZWlcIDsKK+mkk+msvOWkp+WwhiA+IGdha2lkYWlzaG91XCA7Civnlarlj7foqJjlj7cgPiBiYW5nb3VraWdvdVwgOwor5YiR5LqL6KOc5YSfID4ga2Vpamlob3Nob3VcIDsKK+S4gOS9k+WFqOS9kyA+IGl0dGFpemVudGFpXCA7CivmtbfpgYvlkIznm58gPiBrYWl1bmRvdW1laVwgOwor5bCC5a6I6Ziy6KGbID4gc2Vuc2h1Ym91ZWlcIDsKK+WNl+mYv+mAo+mCpiA+IG5hbicnYXJlbnBvdVwgOwor55m66KGM6YOo5pWwID4gaGFra291YnVzdXVcIDsKK+WIkeS6i+ijgeWIpCA+IGtlaWppc2FpYmFuXCA7CivlhazlubPnhKHnp4EgPiBrb3VoZWltdXNoaVwgOwor54mp5L6h5oyH5pWwID4gYnVra2FzaGlzdXVcIDsKK+WIkeS6i+iiq+WRiiA+IGtlaWppaGlrb2t1XCA7CivoqJjogIXkvJroposgPiBraXNoYWthaWtlblwgOwor5b6T6LuN6KiY6ICFID4ganV1Z3Vua2lzaGFcIDsKK+epuuawl+aKteaKlyA+IGt1dWtpdGVpa291XCA7Civnj77ph5HmraPkvqEgPiBnZW5raW5zZWlrYVwgOwor5aSn5ZCM5bCP55WwID4gZGFpZG91c2hvdWlcIDsKK+eUn+WRveWAq+eQhiA+IHNlaW1laXJpbnJpXCA7Civpp4bli5Xoo4Xnva4gPiBrdWRvdXNvdWNoaVwgOwor5Y2D6LuN5LiH6aasID4gc2VuZ3VuYmFuYmFcIDsKK+WkieW5u+iHquWcqCA+IGhlbmdlbmppemFpXCA7Civnm7jlr77kuLvnvqkgPiBzb3V0YWlzaHVnaVwgOwor6LuN5Yy75a2m5qChID4gZ3VuJydpZ2Fra291XCA7Civpg73msJHkvJrppKggPiB0b21pbmthaWthblwgOwor5biC5aC05L6h5YCkID4gc2hpam91a2FjaGlcIDsKK+W5s+WSjOirluiAhSA+IGhlaXdhcm9uc2hhXCA7CivlsL/ntKDmqLnohIIgPiBueW91c29qdXNoaVwgOwor5o6D6Zmk5b2T55WqID4gc291aml0b3ViYW5cIDsKK+S7o+eQhuaIpuS6iSA+IGRhaXJpc2Vuc291XCA7CivlnLDnm6TmsojkuIsgPiBqaWJhbmNoaW5rYVwgOwor5qeL5oiQ5Li7576pID4ga291c2Vpc2h1Z2lcIDsKK+ato+WkmumdouS9kyA+IHNlaXRhbWVudGFpXCA7CivkuIDliIflkIjliIcgPiBpc3NhaWdhc3NhaVwgOwor5L+d56iO5Zyw5Z+fID4gaG96ZWljaGlpa2lcIDsKK+S6uuWToeaVtOeQhiA+IGppbicnaW5zZWlyaVwgOwor5Lq66ZaT5Lul5YmNID4gbmluZ2VuJydpemVuXCA7CivlubPpnaLlm7PlvaIgPiBoZWltZW56dWtlaVwgOwor5a6H5a6Z5peF6KGMID4gdWNodXVyeW9rb3VcIDsKK+iNmOWckuWItuW6piA+IHNob3VlbnNlaWRvXCA7Civoh6rnpL7oo73lk4EgPiBqaXNoYXNlaWhpblwgOwor5Yid5pyf5q616ZqOID4gc2hva2lkYW5rYWlcIDsKK+WJjemAlOmBvOmBoCA+IHplbnRvcnlvdWVuXCA7CivotaTokaHokITphZIgPiBha2FidWRvdXNodVwgOwor5Y6f5aeL5pmC5LujID4gZ2Vuc2hpamlkYWlcIDsKK+WPguisgOacrOmDqCA+IHNhbmJvdWhvbmJ1XCA7CivlpbPlrZDlpKfnlJ8gPiBqb3NoaWRhaXNlaVwgOwor5o6S5aSW6YGL5YuVID4gaGFpZ2FpdW5kb3VcIDsKK+awtOW5s+mjm+ihjCA+IHN1aWhlaWhpa291XCA7CivkvY7lm57otqPlkbMgPiB0ZWlrYWlzaHVtaVwgOwor5LqS5oG16LK/5piTID4gZ29rZWlib3Vla2lcIDsKK+S6uumWk+S7peS4iiA+IG5pbmdlbicnaWpvdVwgOwor5YKy5oWi54Sh56S8ID4gZ291bWFuYnVyZWlcIDsKK+W+kuaJi+epuuaLsyA+IHRvc2h1a3V1a2VuXCA7Civkupzngq3ljJbniakgPiBhdGFua2FidXRzdVwgOwor5rC05rOz5aSn5LyaID4gc3VpZWl0YWlrYWlcIDsKK+eUt+Wls+WQjOaoqSA+IGRhbmpvZG91a2VuXCA7CivlubTph5HliLbluqYgPiBuZW5raW5zZWlkb1wgOwor56m66LuN5Z+65ZywID4ga3V1Z3Vua2ljaGlcIDsKK+Wkp+WSjOaZguS7oyA+IHlhbWF0b2ppZGFpXCA7CivluJ3njovliIfplosgPiB0ZWlvdXNla2thaVwgOwor5Y+N5pS/5bqc5YWaID4gaGFuc2VpZnV0b3VcIDsKK+iZjuimlueciOOAhSA+IGtvc2hpdGFudGFuXCA7Civmra/np5Hnl4XpmaIgPiBzaGlrYWJ5b3VpblwgOwor6LyJ6LKo5bGv5pWwID4gc2Fpa2F0b25zdXVcIDsKK+irluiqrOWnlOWToSA+IHJvbnNldHN1aWluXCA7Civli53miYvmrKHnrKwgPiBrYXR0ZXNoaWRhaVwgOwor56m65oy66ZqK5ZOhID4ga3V1dGVpdGFpaW5cIDsKK+iHqueUsee1jOa4iCA+IGppeXV1a2VpemFpXCA7CivosqHmlL/noLTntrsgPiB6YWlzZWloYXRhblwgOwor5pS/5rK754yu6YeRID4gc2VpamlrZW5raW5cIDsKK+aJi+mWk+S7leS6iyA+IHRlbWFzaGlnb3RvXCA7CivkuIDmnKzli53osqAgPiBpcHBvbnNob3VidVwgOwor5Lit6YCU5Y2K56uvID4gY2h1dXRvaGFucGFcIDsKK+mAmumBjuWEgOekvCA+IHRzdXVrYWdpcmVpXCA7Civoi7HlrZfpm4blkIggPiBlaWppc2h1dWdvdVwgOwor572y5ZCN6YGL5YuVID4gc2hvbWVpdW5kb3VcIDsKK+WhkeaAp+aMh+aVsCA+IHNvc2Vpc2hpc3V1XCA7CivlkIjlkIzlirTntYQgPiBnb3Vkb3Vyb3Vzb1wgOwor5Li7566h5qmf6ZaiID4gc2h1a2Fua2lrYW5cIDsKK+Wkqeawl+mDveWQiCA+IHRlbmtpdHN1Z291XCA7CivlhbXlmajlt6XloLQgPiBoZWlraWtvdWpvdVwgOwor5bmz5rCR5Li7576pID4gaGVpbWluc2h1Z2lcIDsKK+WutuaXj+S8muitsCA+IGthem9rdWthaWdpXCA7CivmuJvlgrXln7rph5EgPiBnZW5zYWlraWtpblwgOwor56WW5YWI5bSH5oudID4gc29zZW5zdXVoYWlcIDsKK+S6i+Wkp+aAneaDsyA+IGppZGFpc2hpc291XCA7CivlnLDloLTnlKPmpa0gPiBqaWJhc2FuZ3lvdVwgOwor6YCj6YKm5Zu95a62ID4gcmVucG91a29ra2FcIDsKK+eri+aGsuS4u+e+qSA+IHJpa2tlbnNodWdpXCA7Civlhavmlrnnvo7kurogPiBoYXBwb3ViaWppblwgOwor5LiW55WM5oOF5YuiID4gc2VrYWlqb3VzZWlcIDsKK+S4jeW/q+aMh+aVsCA+IGZ1a2Fpc2hpc3V1XCA7CivpgaDmtIvoiKrot68gPiBlbicneW91a291cm9cIDsKK+WbveWutue1jOa4iCA+IGtva2tha2VpemFpXCA7Civoh6jmmYLlopfliIogPiByaW5qaXpvdWthblwgOwor5YWs5q2m5ZCI5L2TID4ga291YnVnYXR0YWlcIDsKK+S6iOiumuacrOe3miA+IHlvc2FuaG9uc2VuXCA7CivmoLnmnKzkuLvnvqkgPiBrb25wb25zaHVnaVwgOwor6Z2e5bi46K2m5oiSID4gaGlqb3VrZWlrYWlcIDsKK+S4reWkruaUv+W6nCA+IGNodXVvdXNlaWZ1XCA7CivliLrnirbnqoHotbcgPiBzaGlqb3V0b2traVwgOwor5YWs55qE5om25YqpID4ga291dGVraWZ1am9cIDsKK+WQiOaIkOaoueiEgiA+IGdvdXNlaWp1c2hpXCA7CivlibLos6bos7zosrcgPiBrYXBwdWtvdWJhaVwgOwor5pyq5p2l5oyH5ZCRID4gbWlyYWlzaGlrb3VcIDsKK+iHqueUseaUvuS7uyA+IGppeXV1aG91bmluXCA7Civoh6rou6LlkajmnJ8gPiBqaXRlbnNodXVraVwgOwor6Ieq5bex5Li75by1ID4gamlrb3NodWNob3VcIDsKK+WNg+iogOS4h+iqniA+IHNlbmdlbmJhbmdvXCA7CivlvpLmrannq7botbAgPiB0b2hva3lvdXNvdVwgOwor6Kaq5ZaE6Kmm5ZCIID4gc2hpbnplbmppYWlcIDsKK+eqkue0oOWbuuWumiA+IGNoaXNzb2tvdGVpXCA7CivmtbfkuIrkv53pmbogPiBrYWlqb3Vob2tlblwgOwor6aOb6KGM55Sy5p2/ID4gaGlrb3Vrb3ViYW5cIDsKK+aMh+WwjuS4u+S6iyA+IHNoaWRvdXNodWppXCA7Civnm7jkupLpioDooYwgPiBzb3Vnb2dpbmtvdVwgOwor6LuN5Y+45Luk6YOoID4gZ3Vuc2hpcmVpYnVcIDsKK+iruOS6i+S4h+erryA+IHNob2ppYmFudGFuXCA7CivlirTngb3kv53pmbogPiByb3VzYWlob2tlblwgOwor5pmC6Lyq6YeR5YmbID4gamlyaW5rb25nb3VcIDsKK+aEj+awl+mKt+ayiCA+IGlraXNob3VjaGluXCA7CivplqLnqI7lm57pgb8gPiBrYW56ZWlrYWloaVwgOwor5oSP5rCX5raI5rKIID4gaWtpc2hvdWNoaW5cIDsKK+WJjeS6uuacquWIsCA+IHplbmppbm1pdG91XCA7CivlhbHlkozkuLvnvqkgPiBreW91d2FzaHVnaVwgOwor5LqI6Ziy5oim5LqJID4geW9ib3VzZW5zb3VcIDsKK+mFuOaAp+Wcn+WjjCA+IHNhbnNlaWRvam91XCA7Civkurrouqvkv53orbcgPiBqaW5zaGluaG9nb1wgOwor5bm06YeR5L+d6Zm6ID4gbmVua2luaG9rZW5cIDsKK+aMh+WQkeiogOiqniA+IHNoaWtvdWdlbmdvXCA7Civlt6Hmn7vpg6jplbcgPiBqdW5zYWJ1Y2hvdVwgOwor5L+d6Ki85pyf6ZaTID4gaG9zaG91a2lrYW5cIDsKK+S4jeazleebo+emgSA+IGZ1aG91a2Fua2luXCA7CivlvqHoi6blirTmp5ggPiBnb2t1cm91c2FtYVwgOwor6KGM5L2P5bqn6IelID4gZ3lvdWp1dXphZ2FcIDsKK+iHquayu+Wkp+iHoyA+IGppY2hpZGFpamluXCA7Civnq4vkvZPkuqTlt64gPiByaXR0YWlrb3VzYVwgOwor56uc6aCt6JuH5bC+ID4gcnl1dXRvdWRhYmlcIDsKK+WFhembu+acn+mWkyA+IGp1dWRlbmtpa2FuXCA7CivoqJjmhrblqpLkvZMgPiBraW9rdWJhaXRhaVwgOwor6aSK6K235pWZ6KutID4geW91Z29reW91eXVcIDsKK+S6uuacrOS4u+e+qSA+IGppbnBvbnNodWdpXCA7CivmtbfmtIvmipXmo4QgPiBrYWl5b3V0b3VraVwgOwor5ZKM5q2M5bGx55yMID4gd2FrYXlhbWFrZW5cIDsKK+WkqumZvembu+azoiA+IHRhaXlvdWRlbnBhXCA7CivnkIbnp5HlpKflraYgPiByaWthZGFpZ2FrdVwgOwor6L+R6KGb5bir5ZujID4ga29ub2VzaGlkYW5cIDsKK+S4gOiho+W4r+awtCA+IGljaGlpdGFpc3VpXCA7Civos4fmnKzkuLvnvqkgPiBzaGlob25zaHVnaVwgOwor6Ieq55Sx57WQ5amaID4gaml5dXVrZWtrb25cIDsKK+W/hemgiOenkeebriA+IGhpc3N1a2Ftb2t1XCA7Civov5Hku6PkuLvnvqkgPiBraW5kYWlzaHVnaVwgOwor5a6I6K235aSp5L2/ID4gc2h1Z290ZW5zaGlcIDsKK+S9nOalremDqOS8miA+IHNhZ3lvdWJ1a2FpXCA7Civpg73luILlho3nlJ8gPiB0b3NoaXNhaXNlaVwgOwor5bm855Sf5Zmo5a6YID4geW91c2Vpa2lrYW5cIDsKK+W+oeeUqOe1hOWQiCA+IGdveW91a3VtaWFpXCA7Civou43kuovmvJTnv5IgPiBndW5qaWVuc2h1dVwgOwor5Lq66YGT5Li7576pID4gamluZG91c2h1Z2lcIDsKK+WJjeWPsuaZguS7oyA+IHplbnNoaWppZGFpXCA7CivmtbfkuIrlsIHpjpYgPiBrYWlqb3VmdXVzYVwgOwor5oSP5ZGz5rex6ZW3ID4gaW1pc2hpbmNob3VcIDsKK+S6pOmAmumBleWPjSA+IGtvdXRzdXVpaGFuXCA7Civlm5vljYHlhavmiYsgPiB5b25qdXVoYXR0ZVwgOwor5omL5be75a+/5Y+4ID4gdGVtYWtpenVzaGlcIDsKK+WFrOmWi+ism+W6pyA+IGtvdWthaWtvdXphXCA7CivniYfoqIDpmrvlj6UgPiBoZW5nZW5zZWtrdVwgOwor6auY6Zai56iO5YyWID4ga291a2FuemVpa2FcIDsKK+mBi+mAgeS8muekviA+IHVuc291Z2Fpc2hhXCA7CivmnbHlrq7lvqHmiYAgPiB0b3VndXVnb3Nob1wgOwor5bu25rue5Yip5oGvID4gZW50YWlyaXNva3VcIDsKK+eBq+eBveitpuWgsSA+IGthc2Fpa2VpaG91XCA7Civnt4/mjIfmj67lrpggPiBzb3VzaGlraWthblwgOwor5pS+6YCB5pmC6ZaTID4gaG91c291amlrYW5cIDsKK+acieWus+eEoeebiiA+IHl1dWdhaW11ZWtpXCA7CivlqabkurrllY/poYwgPiBmdWppbm1vbmRhaVwgOwor5pm06ICV6Zuo6KqtID4gc2Vpa291dWRva3VcIDsKK+Wwiueah+aUmOWktyA+IHNvbicnbm91am91aVwgOwor5LiN5paH5oay5rOVID4gZnVidW5rZW5wb3VcIDsKK+S4gOWvuOazleW4qyA+IGlzc3VuYm91c2hpXCA7Civlj6/og73li5XoqZ4gPiBrYW5vdWRvdXNoaVwgOwor5Y+k5LqL5p2l5q20ID4ga29qaXJhaXJla2lcIDsKK+WujOWFqOmbh+eUqCA+IGthbnplbmtveW91XCA7Civlia/pvLvohZTngo4gPiBmdWt1YmlrdXVlblwgOwor5aSa5YWD5pS+6YCBID4gdGFnZW5ob3Vzb3VcIDsKK+awl+aBr+WlhOWlhCA+IGtpc29rdWVuJydlblwgOwor6YeI6L+m5aaC5p2lID4gc2hha2FueW9yYWlcIDsKK+S6iOe0hOWQjeewvyA+IHlveWFrdW1laWJvXCA7CivkuI3osrflkIznm58gPiBmdWJhaWRvdW1laVwgOwor6Z2e6LK35ZCM55ufID4gaGliYWlkb3VtZWlcIDsKK+ebuOWvvuaVrOiqniA+IHNvdXRhaWtlaWdvXCA7CivntYzmuIjnibnljLogPiBrZWl6YWl0b2trdVwgOwor5Lu75oSP5Zuj5L2TID4gbmluJydpZGFudGFpXCA7CivmjqXmlbXnp7vli5UgPiBzZXR0ZWtpaWRvdVwgOwor6bCl5a+h5a2k54usID4ga2Fua2Frb2Rva3VcIDsKK+ebuOWvvuWjsuiytyA+IGFpdGFpYmFpYmFpXCA7CivnhKHkurrlt6XloLQgPiBtdWppbmtvdWpvdVwgOwor5LiN5o+b57SZ5bmjID4gZnVrYW5zaGloZWlcIDsKK+ebuOS5l+S9nOeUqCA+IHNvdWpvdXNheW91XCA7CivkuojnrpfkuI3otrMgPiB5b3NhbmZ1c29rdVwgOwor6Jas55CG5L2c55SoID4geWFrdXJpc2F5b3VcIDsKK+eCuuabv+euoeeQhiA+IGthd2FzZWthbnJpXCA7CivkuovliY3ljZTorbAgPiBqaXNlbmt5b3VnaVwgOwor5Y6a6aGU54Sh5oGlID4ga291Z2FubXVjaGlcIDsKK+WuieWFqOijhee9riA+IGFuemVuc291Y2hpXCA7CivnqbrmsJfmhJ/mn5MgPiBrdXVraWthbnNlblwgOwor5rC06YGT5bel5LqLID4gc3VpZG91a291amlcIDsKK+S4gOe0meWNiumKrSA+IGlzc2hpaGFuc2VuXCA7Civlj43lsITpgYvli5UgPiBoYW5zaGF1bmRvdVwgOwor5aGp6aGe5rq25rayID4gZW5ydWl5b3Vla2lcIDsKK+WkluS6uumDqOmaiiA+IGdhaWppbmJ1dGFpXCA7Civmi53ph5HkuLvnvqkgPiBoYWlraW5zaHVnaVwgOwor55Ww5L2T5ZCM5b+DID4gaXRhaWRvdXNoaW5cIDsKK+S5l+aVsOWKueaenCA+IGpvdXN1dWtvdWthXCA7Civlhajnm5vmmYLku6MgPiB6ZW5zZWlqaWRhaVwgOwor6Z2i5ZCR5LiN6IOMID4gbWVua291ZnVoYWlcIDsKK+epuueQhuepuuirliA+IGt1dXJpa3V1cm9uXCA7CivpnZ7luLjpmo7mrrUgPiBoaWpvdWthaWRhblwgOwor5YK355eN6LuN5Lq6ID4gc2hvdWlndW5qaW5cIDsKK+aciOizpuiyqeWjsiA+IGdlcHB1aGFuYmFpXCA7CivkuIfkuJbkuIDns7sgPiBiYW5zZWlpa2tlaVwgOwor56ys5LqM6YOo6ZW3ID4gZGFpbmlidWNob3VcIDsKK+ihjOWEgOS9nOazlSA+IGd5b3VnaXNhaG91XCA7Civph43liqDnrpfnqI4gPiBqdXVrYXNhbnplaVwgOwor5LiA5b+D5LiN5LmxID4gaXNzaGluZnVyYW5cIDsKK+i7jeS6i+ijgeWIpCA+IGd1bmppc2FpYmFuXCA7CivnhafmmI7lmajlhbcgPiBzaG91bWVpa2lndVwgOwor5bGN6ZmA5p6X546LID4gc2hpZGFyaW4nJ291XCA7CivpgY7ljrvlrozkuoYgPiBrYWtva2FucnlvdVwgOwor5oim5b6M5qyn5beeID4gc2VuZ29vdXNodXVcIDsKK+mmluiEs+S8muitsCA+IHNodW5vdWthaWdpXCA7Civlrrbluq3mlpnnkIYgPiBrYXRlaXJ5b3VyaVwgOwor5pel5pys6YqA6KGMID4gbmlob25naW5rb3VcIDsKK+mBoOS6pOi/keaUuyA+IGVua291a2lua291XCA7Civml4vlm57pgYvli5UgPiBzZW5rYWl1bmRvdVwgOwor5biw5Zu95a2Q5aWzID4ga2lrb2t1c2hpam9cIDsKK+mbjOmbhOa3mOaxsCA+IHNoaXl1dXRvdXRhXCA7CivpioDmnKzkvY3liLYgPiBnaW5ob24nJ2lzZWlcIDsKK+iHqualreiHquW+lyA+IGppZ291aml0b2t1XCA7CivkuLvmoLzoo5zoqp4gPiBzaHVrYWt1aG9nb1wgOwor5YKY5b2i5Zmo5a6YID4gc2Fua2Vpa2lrYW5cIDsKK+mbu+WMluijveWTgSA+IGRlbmthc2VpaGluXCA7Civos4fnlKPkvqHlgKQgPiBzaGlzYW5rYWNoaVwgOwor5Lit5aSu56u26aasID4gY2h1dW91a2VpYmFcIDsKK+i1pOWtl+iyoeaUvyA+IGFrYWppemFpc2VpXCA7CivmlL/msrvkuqHlkb0gPiBzZWlqaWJvdW1laVwgOwor5LqU5Y2B5bm056WtID4gZ29qdXVuZW5zYWlcIDsKK+mBuuaXj+W5tOmHkSA+IGl6b2t1bmVua2luXCA7Civkurrlt6XmoITppIogPiBqaW5rb3VlaXlvdVwgOwor5pOs5Y+k5YW455qEID4gZ2lrb3RlbnRla2lcIDsKK+mbu+awl+S8muekviA+IGRlbmtpZ2Fpc2hhXCA7CivmsJfpmo/msJflhJggPiBraXp1aWtpbWFtYVwgOwor54Sh5Y+N5YuV6YqDID4gbXVoYW5kb3VqdXVcIDsKK+mBoOW/g+WIhumboiA+IGVuc2hpbmJ1bnJpXCA7CivloLTlpJbppqzliLggPiBqb3VnYWliYWtlblwgOwor6Z2S5bm05pmC5LujID4gc2VpbmVuamlkYWlcIDsKK+iHqueUseWVj+mhjCA+IGppeXV1bW9uZGFpXCA7CivmvKvnlLvpm5HoqowgPiBtYW5nYXphc3NoaVwgOwor5Lqc6Ymb5Lit5q+SID4gYWVuY2h1dWRva3VcIDsKK+elluWFiOS8neadpSA+IHNvc2VuZGVucmFpXCA7CivkuIDlhZrmlK/phY0gPiBpdHRvdXNoaWhhaVwgOwor5Li76Kaz5Li7576pID4gc2h1a2Fuc2h1Z2lcIDsKK+WRvOWQuOWZqOezuyA+IGtva3l1dWtpa2VpXCA7Civngrrmm7/mipXmqZ8gPiBrYXdhc2V0b3VraVwgOwor5LiA55+l5Y2K6KejID4gaXRjaGloYW5rYWlcIDsKK+S4jeWumuWGoOipniA+IGZ1dGVpa2Fuc2hpXCA7Civku6PorbDmlL/kvZMgPiBkYWlnaXNlaXRhaVwgOwor5bmz5ZKM5pS75YuiID4gaGVpd2Frb3VzZWlcIDsKK+S9juS+oeagvOWMliA+IHRlaWtha2FrdWthXCA7CivogpjmjpvmpIXlrZAgPiBoaWppa2FrZWlzdVwgOwor5YWs5YuZ54G95a6zID4ga291bXVzYWlnYWlcIDsKK+aZr+awl+W+queSsCA+IGtlaWtpanVua2FuXCA7CivplqLkv4Lms5Xopo8gPiBrYW5rZWlob3VraVwgOwor6LOA6Kme5Lqk5o+bID4gZ2FzaGlrb3VrYW5cIDsKK+iAleWcsOaVtOeQhiA+IGtvdWNoaXNlaXJpXCA7Civooajoo4/kuIDkvZMgPiBoeW91cmlpdHRhaVwgOwor5aW06Zq36Kej5pS+ID4gZG9yZWlrYWlob3VcIDsKK+mYv+Wkmuemj+ixhiA+IG90YWZ1a3VtYW1lXCA7CivkvIHmpa3mlbTlgpkgPiBraWd5b3VzZWliaVwgOwor6LuN5LqL6KGM5YuVID4gZ3Vuamlrb3Vkb3VcIDsKK+WcsOaWueiHquayuyA+IGNoaWhvdWppY2hpXCA7CivkuJbkv5fkuLvnvqkgPiBzZXpva3VzaHVnaVwgOwor6auY54Kt57Sg6Yu8ID4ga291dGFuc29rb3VcIDsKK+acieapn+iCpeaWmSA+IHl1dWtpaGlyeW91XCA7Civmr5TkvovphY3liIYgPiBoaXJlaWhhaWJ1blwgOwor5Y+N5a++6YGL5YuVID4gaGFudGFpdW5kb3VcIDsKK+a3u+S7mOabuOmhniA+IHRlbnB1c2hvcnVpXCA7CivmgYvmhJvpgYrmiK8gPiByZW4nJ2FpeXV1Z2lcIDsKK+aKleWwhOWOn+eQhiA+IHRvdXNoYWdlbnJpXCA7CivlpKfoqIDlo67oqp4gPiB0YWlnZW5zb3Vnb1wgOwor6YeR5pys5L2N5Yi2ID4ga2luaG9uJydpc2VpXCA7CivpgKDoqp7miJDliIYgPiB6b3Vnb3NlaWJ1blwgOwor55m+56eR6L6e5YW4ID4gaHlha2thaml0ZW5cIDsKK+S4h+S7o+S4jeaYkyA+IGJhbmRhaWZ1ZWtpXCA7CivljbHpmbrop5LluqYgPiBraWtlbmtha3Vkb1wgOwor5YyW5a2m5YW15ZmoID4ga2FnYWt1aGVpa2lcIDsKK+a8ouWtl+WItumZkCA+IGthbmppc2VpZ2VuXCA7CivlubTlip/liLbluqYgPiBuZW5rb3VzZWlkb1wgOwor5rW35bqV54Gr5bGxID4ga2FpdGVpa2F6YW5cIDsKK+malOmdtOaOu+eXkiA+IGtha2thc291eW91XCA7CivpnZ7miKboq5bogIUgPiBoaXNlbnJvbnNoYVwgOwor5LiH5LiW5LiN5piTID4gYmFuc2VpZnVla2lcIDsKK+WGjeeUn+e5iue2rSA+IHNhaXNlaXNlbicnaVwgOwor6YGL6Lui57O757WxID4gdW50ZW5rZWl0b3VcIDsKK+S7u+aEj+WQjOihjCA+IG5pbicnaWRvdWtvdVwgOwor6Ieo5pmC5Zu95LyaID4gcmluamlrb2trYWlcIDsKK+ippumok+acn+mWkyA+IHNoaWtlbmtpa2FuXCA7CivlubTlip/liqDkv7ggPiBuZW5rb3VrYWhvdVwgOwor5b+c5o+05Zuj6ZW3ID4gb3VlbmRhbmNob3VcIDsKK+i7jeWMu+e3j+eboyA+IGd1bicnaXNvdWthblwgOwor5oWI5ZaE5Zuj5L2TID4gaml6ZW5kYW50YWlcIDsKK+iHque/kuaZgumWkyA+IGppc2h1dWppa2FuXCA7Civlm73lrrboo5zlhJ8gPiBrb2trYWhvc2hvdVwgOwor55ub6ICF5b+F6KGwID4gc2VpamFoaXNzdWlcIDsKK+S6uuaWh+S4u+e+qSA+IGppbmJ1bnNodWdpXCA7Civpm7voqbHnlarlj7cgPiBkZW53YWJhbmdvdVwgOwor55CG6KuW5L2T57O7ID4gcmlyb250YWlrZWlcIDsKK+aXpeacrOa1t+a6nSA+IG5paG9ua2Fpa291XCA7CivntYzluLjliKnnm4ogPiBrZWlqb3VyaWVraVwgOwor5byV6LKs6L6e5Lu7ID4gaW5zZWtpamluaW5cIDsKK+WHpuWls+iIqua1tyA+IHNob2pva291a2FpXCA7CivkuIDou5LkuIDou5IgPiBpa2tlbicnaWtrZW5cIDsKK+WVj+etlOeEoeeUqCA+IG1vbmRvdW11eW91XCA7CivpgYvlkb3oq5bogIUgPiB1bm1laXJvbnNoYVwgOwor6I+c56iu5qKF6ZuoID4gbmF0YW5lZHp1eXVcIDsKK+iqsuWkluaOiOalrSA+IGthZ2FpanVneW91XCA7Civpm6PmsJHluLDpgoQgPiBuYW5taW5raWthblwgOwor5YG25YOP56C05aOKID4gZ3V1em91aGFrYWlcIDsKK+aMh+ekuuijhee9riA+IHNoaWppc291Y2hpXCA7CivlronlhajlnLDluK8gPiBhbnplbmNoaXRhaVwgOwor6Ieq5bex6KSH6KO9ID4gamlrb2Z1a3VzZWlcIDsKK+S7luS6uuihjOWEgCA+IHRhbmluZ3lvdWdpXCA7CivliKTlrpjotJTlsZMgPiBob3VnYW5iaWlraVwgOwor5Zyn5pC+56m65rCXID4gYXNzYWt1a3V1a2lcIDsKK+WBpeW6t+euoeeQhiA+IGtlbmtvdWthbnJpXCA7CivoqabpqJPpo5vooYwgPiBzaGlrZW5oaWtvdVwgOwor55Sf55Sj6YGO5YmwID4gc2Vpc2Fua2Fqb3VcIDsKK+eUn+eQhuS8keaahyA+IHNlaXJpa3l1dWthXCA7CivkuqTpmpvloLToo48gPiBrb3VzYWlqb3VyaVwgOwor6LGK6IKl5pys57eaID4gaG91aGlob25zZW5cIDsKK+WIpOaWreimj+a6liA+IGhhbmRhbmtpanVuXCA7CivmsJfmga/lpYTjgIUgPiBraXNva3VlbicnZW5cIDsKK+WIpOaWreWfuua6liA+IGhhbmRhbmtpanVuXCA7CivlpKnos4foi7HpgoEgPiB0ZW5zaGllaW1haVwgOwor5oq15oqX6YGL5YuVID4gdGVpa291dW5kb3VcIDsKK+mDteS+v+WIh+aJiyA+IHl1dWJpbmtpdHRlXCA7CivnlLDlnJLpg73luIIgPiBkZW4nJ2VudG9zaGlcIDsKK+iho+aWmeWTgeW6lyA+IGlyeW91aGludGVuXCA7Civkuozpg6jlkIjllLEgPiBuaWJ1Z2Fzc2hvdVwgOwor6Zu75a2Q6aCt6ISzID4gZGVuc2hpenVub3VcIDsKK+WJsuizpuiyqeWjsiA+IGthcHB1aGFuYmFpXCA7CivpqqjokaPotqPlkbMgPiBrb3R0b3VzaHVtaVwgOwor6LuN5YKZ5Yi26ZmQID4gZ3VuYmlzZWlnZW5cIDsKK+mBi+WLleS4jei2syA+IHVuZG91YnVzb2t1XCA7CivliLbpmZDmvKLlrZcgPiBzZWlnZW5rYW5qaVwgOwor54Sh5Y+N5YuV56CyID4gbXVoYW5kb3Vob3VcIDsKK+WOn+WboOS4jeaYjiA+IGdlbicnaW5mdW1laVwgOwor6Lu96Ieq5YuV6LuKID4ga2Vpamlkb3VzaGFcIDsKK+WOn+WtkOaZguS7oyA+IGdlbnNoaWppZGFpXCA7Civni5DnlpHpgKHlt6EgPiBrb2dpc2h1bmp1blwgOwor56iL5bqm5ZWP6aGMID4gdGVpZG9tb25kYWlcIDsKK+imj+WumuaJk+W4rSA+IGtpdGVpZGFzZWtpXCA7CivpoqjntIDntIrkubEgPiBmdXVraWJpbnJhblwgOwor5biC5Y+C5LqL5LyaID4gc2hpc2FuamlrYWlcIDsKK+iomOaGtuijhee9riA+IGtpb2t1c291Y2hpXCA7Civpm7vmsJfkvJ3lsI4gPiBkZW5raWRlbmRvdVwgOwor5rW35aSW5rS+5YW1ID4ga2FpZ2FpaGFoZWlcIDsKK+WkqeizpuS6uuaoqSA+IHRlbnB1amlua2VuXCA7Civmh7jlnoLpgYvli5UgPiBrZW5zdWl1bmRvdVwgOwor56We56eY5Li7576pID4gc2hpbnBpc2h1Z2lcIDsKK+mBoOaFruS8mumHiCA+IGVucnlvZXNoYWt1XCA7Civmmpflj7fmiYvms5UgPiBhbmdvdXNodWhvdVwgOwor6YGL6Ly45aSn6IejID4gdW4nJ3l1ZGFpamluXCA7CivpnZ7oq5bnkIbnmoQgPiBoaXJvbnJpdGVraVwgOwor5Y+z57+85Zuj5L2TID4gdXlva3VkYW50YWlcIDsKK+S/neWBpeihm+eUnyA+IGhva2VuJydlaXNlaVwgOwor55uX5ZOB5pWF6LK3ID4gdG91aGlua29iYWlcIDsKK+mdmeatoui7jOmBkyA+IHNlaXNoaWtpZG91XCA7Civmhbbmh4nnvqnlob4gPiBrZWlvdWdpanVrdVwgOwor5b+r5YiA5Lmx6bq7ID4ga2FpdG91cmFubWFcIDsKK+iHs+i/kei3nemboiA+IHNoaWtpbmt5b3JpXCA7CivmkI3lrrPkv53pmbogPiBzb25nYWlob2tlblwgOwor5qeL5oiQ6KaB57SgID4ga291c2VpeW91c29cIDsKK+WNlOitsOS6i+mghSA+IGt5b3VnaWppa291XCA7CivoiJ7lj7Dkv7PlhKogPiBidXRhaWhhaXl1dVwgOwor5Y2x5qmf5LiA6auqID4ga2lraWlwcGF0c3VcIDsKK+WMu+WtpumbkeiqjCA+IGlnYWt1emFzc2hpXCA7CivniankvqHmsLTmupYgPiBidWtrYXN1aWp1blwgOwor6LWk5Y2B5a2X6ZmEID4gc2VraWp1dWppZnVcIDsKK+aJtumkiuWutuaXjyA+IGZ1eW91a2F6b2t1XCA7Civnq4vmhrLmlL/msrsgPiByaWtrZW5zZWlqaVwgOwor5Lq65bel6IeT5ZmoID4gamlua291em91a2lcIDsKK+elreaUv+S4gOiHtCA+IHNhaXNlaWl0Y2hpXCA7CivkuI3oqIDlrp/ooYwgPiBmdWdlbmppa2tvdVwgOwor5LuV5LqL6YOo5bGLID4gc2hpZ290b2JleWFcIDsKK+aIkOS6uuaYoOeUuyA+IHNlaWppbicnZWlnYVwgOwor6Ieq55Sx5Za25qWtID4gaml5dXVlaWd5b3VcIDsKK+aomea6luiqpOW3riA+IGh5b3VqdW5nb3NhXCA7CivkubPlhZDohJrmsJcgPiBueXV1amlrYWtrZVwgOwor6LuN6ZyA5bel5aC0ID4gZ3VuanVrb3Vqb3VcIDsKK+ebuOWKoOW5s+WdhyA+IHNvdWthaGVpa2luXCA7Civnspfoo73kubHpgKAgPiBzb3NlaXJhbnpvdVwgOwor5b6h5ZCN5b6h55K9ID4gZ3lvbWVpZ3lvamlcIDsKK+aWh+ayu+S4u+e+qSA+IGJ1bmNoaXNodWdpXCA7Civoh6rnhLbmt5jmsbAgPiBzaGl6ZW50b3V0YVwgOwor5a625a6F5o2c5p+7ID4ga2F0YWt1c291c2FcIDsKK+aXouaIkOamguW/tSA+IGtpc2VpZ2FpbmVuXCA7CivmlbTlgpnlt6XloLQgPiBzZWliaWtvdWpvdVwgOwor5a++56m656Cy54GrID4gdGFpa3V1aG91a2FcIDsKK+a7nuepuuaZgumWkyA+IHRhaWt1dWppa2FuXCA7Civosr/mmJPotaTlrZcgPiBib3Vla2lha2FqaVwgOwor5LiA6KiA5bGF5aOrID4gaWNoaWdlbmtvamlcIDsKK+Wxi+S4iuW6reWckiA+IG9rdWpvdXRlaWVuXCA7Civpn7Plo7DooajoqJggPiBvbnNlaWh5b3VraVwgOwor5a+p576O5Li7576pID4gc2hpbmJpc2h1Z2lcIDsKK+W/nOeUqOWVj+mhjCA+IG91eW91bW9uZGFpXCA7CivkupLmgbXplqLnqI4gPiBnb2tlaWthbnplaVwgOwor6Luf5oCn5LiL55azID4gbmFuc2VpZ2VrYW5cIDsKK+Wbveiqnui+nuWFuCA+IGtva3Vnb2ppdGVuXCA7Civlhazoqo3lgJnoo5wgPiBrb3VuaW5rb3Vob1wgOwor55Sf5bm05pyI5pelID4gc2VpbmVuZ2FwcGlcIDsKK+Wlh+etlue4puaoqiA+IGtpc2FrdWp1dW91XCA7CivlhYnlrabmloflrZcgPiBrb3VnYWt1bW9qaVwgOwor5YGc6LuK5pmC6ZaTID4gdGVpc2hhamlrYW5cIDsKK+WFseWSjOaUv+ayuyA+IGt5b3V3YXNlaWppXCA7Civlm73luqvlgrXmqKkgPiBrb2trb3NhaWtlblwgOwor5aOw5biv5qih5YaZID4gc2VpdGFpbW9zaGFcIDsKK+acgOWkp+mZkOW6piA+IHNhaWRhaWdlbmRvXCA7CivlhavliIbpn7PnrKYgPiBoYWNoaWJ1b25wdVwgOwor5Luu5oOz56m66ZaTID4ga2Fzb3VrdXVrYW5cIDsKK+W5s+aIkOaZguS7oyA+IGhlaXNlaWppZGFpXCA7CivliKnnm4rnpL7kvJogPiByaWVraXNoYWthaVwgOwor5a625bqt6Kiq5ZWPID4ga2F0ZWlob3Vtb25cIDsKK+iWhOWIqeWkmuWjsiA+IGhha3VyaXRhYmFpXCA7CivmsJHkuLvkuLvnvqkgPiBtaW5zaHVzaHVnaVwgOwor5aWz5oCn5ZCN6KmeID4gam9zZWltZWlzaGlcIDsKK+aEm+aGjuS9teWtmCA+IGFpem91aGVpc29uXCA7Civlj43lsITkvZznlKggPiBoYW5zaGFzYXlvdVwgOwor5pyJ5LqL56uL5rOVID4geXV1amlyaXBwb3VcIDsKK+eZuuWjsOWZqOWumCA+IGhhc3NlaWtpa2FuXCA7CivlqZrnpLzooaPoo4UgPiBrb25yZWlpc2hvdVwgOwor5Lit5aSu56qB56C0ID4gY2h1dW91dG9wcGFcIDsKK+S4iemgreaUv+ayuyA+IHNhbnRvdXNlaWppXCA7CivljbHpmbrlnLDluK8gPiBraWtlbmNoaXRhaVwgOwor5YyW5a2m5L2c55SoID4ga2FnYWt1c2F5b3VcIDsKK+eEoemWk+WcsOeNhCA+IG11Z2Vuamlnb2t1XCA7CivlvoDlvqnliIfnrKYgPiBvdWZ1a3VraXBwdVwgOwor5a2Y5Zyo55CG55SxID4gc29uemFpcml5dXVcIDsKK+mdnuekvuS6pOeahCA+IGhpamFrb3V0ZWtpXCA7CivlsIHlu7rliLbluqYgPiBob3VrZW5zZWlkb1wgOwor5Lq66Lqr5LqL5pWFID4gamluc2hpbmppa29cIDsKK+WFrOmWi+aNnOafuyA+IGtvdWthaXNvdXNhXCA7CivmiJHnlLDlvJXmsLQgPiBnYWRlbicnaW5zdWlcIDsKK+WLleS9nOiomOmMsiA+IGRvdXNha2lyb2t1XCA7CivmiJDlsaTngavlsbEgPiBzZWlzb3VrYXphblwgOwor5Yip55uK6YWN5b2TID4gcmlla2loYWl0b3VcIDsKK+S4gOaJgOaHuOWRvSA+IGlzc2hva2VubWVpXCA7CivmupDms4noqrLnqI4gPiBnZW5zZW5rYXplaVwgOwor5pS/5rK757WQ56S+ID4gc2VpamlrZXNzaGFcIDsKK+mojummrOawkeaXjyA+IGtpYmFtaW56b2t1XCA7CivpmpTkuJbpgbrkvJ0gPiBrYWt1c2VpaWRlblwgOwor5Y+k6YGT5YW35bGLID4gZnVydWRvdWd1eWFcIDsKK+WQueWlj+alveWZqCA+IHN1aXNvdWdha2tpXCA7CivmqZ/pioPmjoPlsIQgPiBraWp1dXNvdXNoYVwgOwor5q2m5a625bGL5pW3ID4gYnVrZXlhc2hpa2lcIDsKK+edoeecoOaZgumWkyA+IHN1aW1pbmppa2FuXCA7CivnhKHoqJjlkI3moKogPiBtdWtpbWVpa2FidVwgOwor5LqL5YuZ57eP6ZW3ID4gamltdXNvdWNob3VcIDsKK+S4u+ayu+WKueiDvSA+IHNodWppa291bm91XCA7CivlpKnmtKXlvqHnpZYgPiBhbWF0c3VtaW95YVwgOwor5rCX6LGh6KGb5pifID4ga2lzaG91ZWlzZWlcIDsKK+acieWKueacn+mZkCA+IHl1dWtvdWtpZ2VuXCA7CivovrLlpbTop6PmlL4gPiBub3Vkb2thaWhvdVwgOwor5b+D6IeT6bq755e6ID4gc2hpbnpvdW1haGlcIDsKK+mFlOeUn+WkouatuyA+IHN1aXNlaW11c2hpXCA7CivmnInlirnmnJ/plpMgPiB5dXVrb3VraWdlblwgOwor54Sh5rOV5Zyw5bivID4gbXVob3VjaGl0YWlcIDsKK+ihl+mgreWLn+mHkSA+IGdhaXRvdWJva2luXCA7CivojZLllJDnhKHnqL0gPiBrb3V0b3VtdWtlaVwgOwor5qCE6aSK5LiN6LazID4gZWl5b3VmdXNva3VcIDsKK+WQjeiqieW4guawkSA+IG1laXlvc2hpbWluXCA7Civou43kuovlkIznm58gPiBndW5qaWRvdW1laVwgOwor5pyJ5Yq55L2c55SoID4geXV1a291c2F5b3VcIDsKK+WFiOmBo+mDqOmaiiA+IHNlbmtlbmJ1dGFpXCA7CivlmInoqIDlloTooYwgPiBrYWdlbnplbmtvdVwgOwor5ZCI5ZCM5Lya6K2wID4gZ291ZG91a2FpZ2lcIDsKK+i1t+atu+WbnueUnyA+IGtpc2hpa2Fpc2VpXCA7CivpgI/oppbnlLvms5UgPiB0b3VzaGlnYWhvdVwgOwor54Sh6Yqt5peF6KGMID4gbXVzZW5yeW9rb3VcIDsKK+S/neWuieioreWCmSA+IGhvYW5zZXRzdWJpXCA7CivlhoXpg6jpl5jkuokgPiBuYWlidXRvdXNvdVwgOwor5LiN5q2j6J6N6LOHID4gZnVzZWl5dXVzaGlcIDsKK+a8ouiLsei+nuWFuCA+IGthbicnZWlqaXRlblwgOwor6aCY5Zyf5L+d5YWoID4gcnlvdWRvaG96ZW5cIDsKK+eEoeS6i+aBr+eBvSA+IGJ1amlzb2t1c2FpXCA7CivmjIflkI3miYvphY0gPiBzaGltZWl0ZWhhaVwgOwor6YGK6Kan6aOb6KGMID4geXV1cmFuaGlrb3VcIDsKK+WPl+mok+WcsOeNhCA+IGp1a2Vuamlnb2t1XCA7CivorablgpnlvLfljJYgPiBrZWliaWt5b3VrYVwgOwor5b+D55CG5Li7576pID4gc2hpbnJpc2h1Z2lcIDsKK+mbouWpmuiotOionyA+IHJpa29uc29zaG91XCA7Civpn7PoqJPntKLlvJUgPiBvbmt1bnNha3VpblwgOwor5Y2x6Zm65Zug5a2QID4ga2lrZW4nJ2luc2hpXCA7CivotoXpgY7li6Tli5kgPiBjaG91a2FraW5tdVwgOwor6YCy5q2p5Li7576pID4gc2hpbnBvc2h1Z2lcIDsKK+S/neWFqOS8muekviA+IGhvemVua2Fpc2hhXCA7Civoh6rlt7HntLnku4sgPiBqaWtvc2hvdWthaVwgOwor5Lq66YGT5pSv5o+0ID4gamluZG91c2hpZW5cIDsKK+W4jOWwkeS+oeWApCA+IGtpc2hvdWthY2hpXCA7Civlqabkurrnp5HlraYgPiBmdWppbmthZ2FrdVwgOwor5pSv5o+05Zuj5L2TID4gc2hpZW5kYW50YWlcIDsKK+Wuh+WumeepuumWkyA+IHVjaHV1a3V1a2FuXCA7CivljJbnsqfnhYnnk6YgPiBrZXNob3VyZW5nYVwgOwor5pep5pyf55m66KaLID4gc291a2loYWtrZW5cIDsKK+iHqueEtuayu+eZkiA+IHNoaXplbmNoaXl1XCA7CivkuI3lj6/nn6XnmoQgPiBmdWthY2hpdGVraVwgOwor6Ki06Kif6LK755SoID4gc29zaG91aGl5b3VcIDsKK+eBveWus+S/nemZuiA+IHNhaWdhaWhva2VuXCA7CivlpKflmajmmanmiJAgPiB0YWlraWJhbnNlaVwgOwor5pWw54+g5LiA6YCjID4ganV6dWljaGlyZW5cIDsKK+aWh+aYjumWi+WMliA+IGJ1bm1laWthaWthXCA7Civlj43li5XkuLvnvqkgPiBoYW5kb3VzaHVnaVwgOwor5pS/5bqc6auY5a6YID4gc2VpZnVrb3VrYW5cIDsKK+S6rOmDveW6nOitpiA+IGt5b3V0b2Z1a2VpXCA7Civli6TnjovmlJjlpLcgPiBraW4nJ25vdWpvdWlcIDsKK+epuuaMuumDqOmaiiA+IGt1dXRlaWJ1dGFpXCA7CivlpJrlo6vmuIjmuIggPiB0YXNoaXNlaXNlaVwgOwor5LiN5Zmo55So6ICFID4gYnVraXlvdW1vbm9cIDsKK+WFteermeWfuuWcsCA+IGhlaXRhbmtpY2hpXCA7CivmnInnkIbplqLmlbAgPiB5dXVyaWthbnN1dVwgOwor5L2O5b6K6Laj5ZGzID4gdGVpa2Fpc2h1bWlcIDsKK+S6uuW3pemgreiEsyA+IGppbmtvdXp1bm91XCA7CivljYHlha3pn7PnrKYgPiBqdXVyb2t1b25wdVwgOwor5aWH5oOz5aSp5aSWID4ga2lzb3V0ZW5nYWlcIDsKK+WGheWuueimi+acrCA+IG5haXlvdW1paG9uXCA7CivmlpnnkIbpgZPlhbcgPiByeW91cmlkb3VndVwgOwor5aSn5ZyP6Iiq6LevID4gdGFpa2Vua291cm9cIDsKK+a6luWCmeeuoeWItiA+IGp1bmJpa2Fuc2VpXCA7CivkuLvohLPkvJrorbAgPiBzaHVub3VrYWlnaVwgOwor6Zmj6aCt5oyH5o+uID4gamludG91c2hpa2lcIDsKK+iHk+WZqOenu+akjSA+IHpvdWtpaXNob2t1XCA7Civln7rmnKzmpoLlv7UgPiBraWhvbmdhaW5lblwgOwor5Lya6K2w5pel56iLID4ga2FpZ2luaXR0ZWlcIDsKK+WFrOWumuWcsOS+oSA+IGtvdXRlaWNoaWthXCA7Civln7rnpI7noJTnqbYgPiBraXNva2Vua3l1dVwgOwor55Kw5aKD5rGa5p+TID4ga2Fua3lvdW9zZW5cIDsKK+eWkeW/g+aal+msvCA+IGdpc2hpbicnYW5raVwgOwor57eP55CG5aSn6IejID4gc291cmlkYWlqaW5cIDsKK+iHquW3sea6gOi2syA+IGppa29tYW56b2t1XCA7Civntbblr77kuLvnvqkgPiB6ZXR0YWlzaHVnaVwgOwor5q2j5ZGz5YCk5q61ID4gc2hvdW1pbmVkYW5cIDsKK+WAi+S6uuaVmeaOiCA+IGtvamlua3lvdWp1XCA7CivlsJHlo67msJfpi60gPiBzaG91c291a2llaVwgOwor5p2x5Lqc6Ku45Zu9ID4gdG91YXNob2tva3VcIDsKK+WWh+WPreawtOS7mSA+IHJhcHBhenVpc2VuXCA7Civlrp/ooYzlj6/og70gPiBqaWtrb3VrYW5vdVwgOwor5LqL5YmN6YGL5YuVID4gaml6ZW4nJ3VuZG91XCA7CivlpJbmnaXmgqPogIUgPiBnYWlyYWlrYW5qYVwgOwor6YG/6Zuj6KiT57e0ID4gaGluYW5rdW5yZW5cIDsKK+iyqeWjsumDqOmWgCA+IGhhbmJhaWJ1bW9uXCA7CivlirTlg43pgYvli5UgPiByb3Vkb3V1bmRvdVwgOwor5rqW5YKZ6YqA6KGMID4ganVuYmlnaW5rb3VcIDsKK+W5uee3mumBk+i3ryA+IGthbnNlbmRvdXJvXCA7CivkuI3pgI/mmI7mgKcgPiBmdXRvdW1laXNlaVwgOwor5Yqg5Zyn5rC054KJID4ga2FhdHN1c3Vpcm9cIDsKK+W5tOacn+WlieWFrCA+IG5lbmtpYm91a291XCA7Civooajpn7PmloflrZcgPiBoeW91b25tb25qaVwgOwor5oyH5ZCN5omT6ICFID4gc2hpbWVpZGFzaGFcIDsKK+e3j+WPuOS7pOmDqCA+IHNvdXNoaXJlaWJ1XCA7CivkvJ3ntbHkuLvnvqkgPiBkZW50b3VzaHVnaVwgOwor5Li76KaB6YO95biCID4gc2h1eW91dG9zaGlcIDsKK+S9jua4qeauuuiPjCA+IHRlaW9uc2Fra2luXCA7CivlpKvlqabplqLkv4IgPiBmdXVmdWthbmtlaVwgOwor5L2c5qWt5pmC6ZaTID4gc2FneW91amlrYW5cIDsKK+mdnuW4uOaJi+autSA+IGhpam91c2h1ZGFuXCA7CivlsILliLbmlL/msrsgPiBzZW5zZWlzZWlqaVwgOwor5pig55S755uj552jID4gZWlnYWthbnRva3VcIDsKK+a/g+a3oeeUu+WDjyA+IG5vdXRhbmdhem91XCA7Civnga/ngavnrqHliLYgPiB0b3VrYWthbnNlaVwgOwor6YeN6KaB5LqL6aCFID4ganV1eW91amlrb3VcIDsKK+mdnuW4uOWRvOmbhiA+IGhpam91a29zaHV1XCA7Civnq4vlgJnoo5zogIUgPiByaWtrb3Vob3NoYVwgOwor5rWE5YyW6KOF572uID4gam91a2Fzb3VjaGlcIDsKK+W+oeeUn+aGjuanmCA+IG9haW5pa3VzYW1hXCA7Civkurrlk6Hmt5jmsbAgPiBqaW4nJ2ludG91dGFcIDsKK+S6pOmAmuS6i+aVhSA+IGtvdXRzdXVqaWtvXCA7Civlm5vovKrpp4bli5UgPiB5b25yaW5rdWRvdVwgOwor5Luj55CG5YWs5L2/ID4gZGFpcmlrb3VzaGlcIDsKK+WkluWLmeWkp+iHoyA+IGdhaW11ZGFpamluXCA7Civph47miKbnoLLlhbUgPiB5YXNlbmhvdWhlaVwgOwor5Zyw5ZCN6L6e5YW4ID4gY2hpbWVpaml0ZW5cIDsKK+S4jeWLleeUo+WxiyA+IGZ1ZG91c2FuJyd5YVwgOwor5L2T5oSf5rip5bqmID4gdGFpa2FuJydvbmRvXCA7CivoprPlhYnpg73luIIgPiBrYW5rb3V0b3NoaVwgOwor5ZCM5oCn5oSb6ICFID4gZG91c2VpYWlzaGFcIDsKK+mDqOmaiuaSpOmAgCA+IGJ1dGFpdGV0dGFpXCA7CivljZTorbDkvJrlk6EgPiBreW91Z2lrYWlpblwgOwor5ZWT6JKZ6YGL5YuVID4ga2VpbW91dW5kb3VcIDsKK+S6gOeUsuaooeanmCA+IGtpa2tvdW1veW91XCA7CivooZvnlJ/nirbmhYsgPiBlaXNlaWpvdXRhaVwgOwor6Y6W5Zu95Li7576pID4gc2Frb2t1c2h1Z2lcIDsKK+WZqOeUqOiyp+S5jyA+IGtpeW91YmluYm91XCA7CivnnLznsr7nlrLlirQgPiBnYW5zZWloaXJvdVwgOwor5a6j5Lyd5qmf6ZaiID4gc2VuZGVua2lrYW5cIDsKK+S9leaZguS9leaZgiA+IGl0c3VuYW5kb2tpXCA7CivmsJHmqKnkuLvnvqkgPiBtaW5rZW5zaHVnaVwgOwor5bm05qyh57eP5LyaID4gbmVuamlzb3VrYWlcIDsKK+a4qeWPpOefpeaWsCA+IG9ua29jaGlzaGluXCA7CivnhKHlhJ/kuqTku5ggPiBtdXNob3Vrb3VmdVwgOwor55+t5pyf5omL5b2iID4gdGFua2l0ZWdhdGFcIDsKK+WGheWLmeWkp+iHoyA+IG5haW11ZGFpamluXCA7CivkuIDkuJbkuIDku6MgPiBpc3NlaWNoaWRhaVwgOwor5LqL6aCF57Si5byVID4gamlrb3VzYWt1aW5cIDsKK+aUvuWwhOe3muenkSA+IGhvdXNoYXNlbmthXCA7CivnmoflpKrlrZDlpoMgPiBrb3V0YWlzaGloaVwgOwor5aaW5oCq5aSJ5YyWID4geW91a2FpaGVuZ2VcIDsKK+WkieW9oumDqOmWgCA+IGhlbmtlaWJ1bW9uXCA7Civph47miKbnl4XpmaIgPiB5YXNlbmJ5b3VpblwgOwor5oim54G95Zyw5Yy6ID4gc2Vuc2FpY2hpa3VcIDsKK+eJueWLmeapn+mWoiA+IHRva3VtdWtpa2FuXCA7CivnoILns5blpKfmoLkgPiBzYXRvdWRhaWtvblwgOwor5Y2K5Yqg5bel5ZOBID4gaGFua2Frb3VoaW5cIDsKK+S6jOetieWIhue3miA+IG5pdG91YnVuc2VuXCA7Civmjojmpa3mmYLplpMgPiBqdWd5b3VqaWthblwgOwor5aSp56We5Zyw56WHID4gdGVuamluY2hpZ2lcIDsKK+i/veWKoOS6iOeulyA+IHRzdWlrYXlvc2FuXCA7CivpnZ7lkIjnkIbnmoQgPiBoaWdvdXJpdGVraVwgOwor5Yq06L6y5pS/5bqcID4gcm91bm91c2VpZnVcIDsKK+S4i+aEj+S4iumBlCA+IGthaWpvdXRhdHN1XCA7CivkuZfou4rmi5LlkKYgPiBqb3VzaGFreW9oaVwgOwor5rC05rSX5L6/5omAID4gc3Vpc2VuYmVuam9cIDsKK+WPjue0jeWutuWFtyA+IHNodXVub3VrYWd1XCA7CivmnKrplovlor7lnLAgPiBtaWthaWtvbmNoaVwgOwor5q2j5b2T6Ziy6KGbID4gc2VpdG91Ym91ZWlcIDsKK+WtpuenkeippumokyA+IGdha2thc2hpa2VuXCA7CivmvZzmsLTmr43oiaYgPiBzZW5zdWlib2thblwgOwor5L2/55So5L6h5YCkID4gc2hpeW91a2FjaGlcIDsKK+WumOWwiuawkeWNkSA+IGthbnNvbm1pbnBpXCA7Civmma7pgY3mlofms5UgPiBmdWhlbmJ1bnBvdVwgOwor6YGO5Ymw5Lq65Y+jID4ga2Fqb3VqaW5rb3VcIDsKK+WHuuWFiOapn+mWoiA+IGRlc2FraWtpa2FuXCA7CivlrqPkvJ3lirnmnpwgPiBzZW5kZW5rb3VrYVwgOwor5pmC44CF5Yi744CFID4gamlqaWtva2tva3VcIDsKK+i/keS8vOioiOeulyA+IGtpbmppa2Vpc2FuXCA7CivorbfmhrLpgYvli5UgPiBnb2tlbicndW5kb3VcIDsKK+WOn+WboOe1kOaenCA+IGdlbicnaW5rZWtrYVwgOwor5Y+L6LuN6YOo6ZqKID4geXV1Z3VuYnV0YWlcIDsKK+eEoeWwveS8muekviA+IG11amluZ2Fpc2hhXCA7Civlj6Tku4rmnbHopb8gPiBrb2tvbnRvdXphaVwgOwor55yL6K235amm6ZW3ID4ga2FuZ29mdWNob3VcIDsKK+aCsuaGpOaFt+aFqCA+IGhpZnVua291Z2FpXCA7Civlj6Tku6PmlofmmI4gPiBrb2RhaWJ1bm1laVwgOwor54Sh55Sj5pS/5YWaID4gbXVzYW5zZWl0b3VcIDsKK+mBuOaMmea6luWCmSA+IHNlbmt5b2p1bmJpXCA7CivmhI/orZjkuI3mmI4gPiBpc2hpa2lmdW1laVwgOwor57WE5ZCI5Li7576pID4ga3VtaWFpc2h1Z2lcIDsKK+WAi+S9k+eZuueUnyA+IGtvdGFpaGFzc2VpXCA7Civlm5vliIbpn7PnrKYgPiBzaGlidW4nJ29ucHVcIDsKK+S9v+W+kuabuOewoSA+IHNoaXRvc2hva2FuXCA7CivlhKrmn5TkuI3mlq0gPiB5dXVqdXVmdWRhblwgOwor54WO6aSF6JKy5ZujID4gc2VuYmVpYnV0b25cIDsKK+S6iOWumuiqv+WSjCA+IHlvdGVpY2hvdXdhXCA7CivlhYjnpZbkvJ3mnaUgPiBzZW56b2RlbnJhaVwgOwor5LqL5qWt6YOo5Yi2ID4gamlneW91YnVzZWlcIDsKK+iHqOaZguWIl+i7iiA+IHJpbmppcmVzc2hhXCA7CivlrprmnJ/oqabpqJMgPiB0ZWlraXNoaWtlblwgOwor57eP5ZCI6Kqy56iOID4gc291Z291a2F6ZWlcIDsKK+mBoOmalOism+e+qSA+IGVua2FrdWtvdWdpXCA7CivmtbflupXmsrnnlLAgPiBrYWl0ZWl5dWRlblwgOwor55yf5LiA5paH5a2XID4gbWFpY2hpbW9uamlcIDsKK+mbu+ipseiqv+afuyA+IGRlbndhY2hvdXNhXCA7CivmioDooZPmj7TliqkgPiBnaWp1dHN1ZW5qb1wgOwor5YGP5ZCR5Zue6LevID4gaGVua291a2Fpcm9cIDsKK+S6iOWumue0jeeojiA+IHlvdGVpbm91emVpXCA7CivnmoflkI7pmZvkuIsgPiBrb3Vnb3VoZWlrYVwgOwor6YCj6YKm5Yi25bqmID4gcmVucG91c2VpZG9cIDsKK+mbu+awl+mbu+WtkCA+IGRlbmtpZGVuc2hpXCA7Civku6PooYzmqZ/plqIgPiBkYWlrb3VraWthblwgOwor55ay5Yq05Zuw5oaKID4gaGlyb3Vrb25wYWlcIDsKK+ebl+mbo+S/nemZuiA+IHRvdW5hbmhva2VuXCA7CivntJTnnJ/nhKHlnqIgPiBqdW5zaGlubXVrdVwgOwor5rOV5YuZ5aSn6IejID4gaG91bXVkYWlqaW5cIDsKK+WIkeS6i+WHpuWIhiA+IGtlaWppc2hvYnVuXCA7Civpp5Dou4rpgZXlj40gPiBjaHV1c2hhaWhhblwgOwor5pmC5qmf5bCa5pepID4gamlraXNob3Vzb3VcIDsKK+W5tOmHkeWfuumHkSA+IG5lbmtpbmtpa2luXCA7Civpganms5XooYzngrogPiB0ZWtpaG91a291aVwgOwor54mp6KaL6YGK5bGxID4gbW9ub21peXVzYW5cIDsKK+W+l+aEj+a6gOmdoiA+IHRva3VpbWFubWVuXCA7CivmmYLlt67lh7rli6QgPiBqaXNhc2h1a2tpblwgOwor5pS/5rK75ZWP6aGMID4gc2Vpamltb25kYWlcIDsKK+e1tuWvvuaVrOiqniA+IHpldHRhaWtlaWdvXCA7CivpjbXnm6Tmpb3lmaggPiBrZW5iYW5nYWtraVwgOwor6Ki06Kif5LqL5Lu2ID4gc29zaG91amlrZW5cIDsKK+aEj+WRs+W9ueWJsiA+IGltaXlha3V3YXJpXCA7CivkvqHmoLzlronlrpogPiBrYWtha3VhbnRlaVwgOwor5LuK5LiK6Zmb5LiLID4ga2luam91aGVpa2FcIDsKK+mbu+awl+ezu+e1sSA+IGRlbmtpa2VpdG91XCA7CivlhYzmj5vpioDooYwgPiBkYWthbmdpbmtvdVwgOwor55m+56eR5LqL5YW4ID4gaHlha2thaml0ZW5cIDsKK+WFqOS8muS4gOiHtCA+IHplbmthaWl0Y2hpXCA7CivpurvolqzmgqPogIUgPiBtYXlha3VrYW5qYVwgOwor5b+D5qmf5LiA6LuiID4gc2hpbmtpaXR0ZW5cIDsKK+eEoeWQjeaIpuWjqyA+IG11bWVpc2Vuc2hpXCA7CivllK/kuIDnhKHkuowgPiB5dWlpdHN1bXVuaVwgOwor6LKh5pS/5a6J5a6aID4gemFpc2VpYW50ZWlcIDsKK+eci+itt+WtpuagoSA+IGthbmdvZ2Fra291XCA7CivliIbpoZ7ln7rmupYgPiBidW5ydWlraWp1blwgOwor5paH5pu45YG96YCgID4gYnVuc2hvZ2l6b3VcIDsKK+WtpOi7jeWlrumXmCA+IGtvZ3VuZnVudG91XCA7CivmlbDmrKHml4XliLggPiBzdXVqaXJ5b2tlblwgOwor5ZCI5oiQ57mK57atID4gZ291c2Vpc2VuJydpXCA7CivosrTml4/mlL/msrsgPiBraXpva3VzZWlqaVwgOwor5Y2a5oSb5Li7576pID4gaGFrdWFpc2h1Z2lcIDsKK+S4gOaWieaknOaMmSA+IGlzc2Vpa2Vua3lvXCA7CivkvY7muKnovLjpgIEgPiB0ZWlvbicneXVzb3VcIDsKK+miqOWFieaYjuWqmiA+IGZ1dWtvdW1laWJpXCA7Civlvozpg6jluqfluK0gPiBrb3VidXphc2VraVwgOwor5YCL5Lq65oqV6LOHID4ga29qaW50b3VzaGlcIDsKK+S/nemZuuS8muekviA+IGhva2VuZ2Fpc2hhXCA7CivnoavljJbmsLTntKAgPiByeXV1a2FzdWlzb1wgOwor5pel5pys5YiX5bO2ID4gbmlob25yZXR0b3VcIDsKK+aIpuaZguWFrOWCtSA+IHNlbmppa291c2FpXCA7Civmtbflk6HntYTlkIggPiBrYWlpbmt1bWlhaVwgOwor5L+u6L6e55aR5ZWPID4gc2h1dWppZ2ltb25cIDsKK+azleWumuiyqOW5oyA+IGhvdXRlaWthaGVpXCA7CivkvZPlhoXlj5fnsr4gPiB0YWluYWlqdXNlaVwgOwor5qW96Kaz5Li7576pID4gcmFra2Fuc2h1Z2lcIDsKK+WFpemZouaCo+iAhSA+IG55dXVpbmthbmphXCA7CivplqLpgKPkuovpoIUgPiBrYW5yZW5qaWtvdVwgOwor5Y6f5L6h6KiI566XID4gZ2Vua2FrZWlzYW5cIDsKK+mbu+WtkOWbnui3ryA+IGRlbnNoaWthaXJvXCA7Civph43ngrnkuLvnvqkgPiBqdXV0ZW5zaHVnaVwgOwor5L6h6Zu75a2Q5bivID4ga2FkZW5zaGl0YWlcIDsKK+acieWKuemcgOimgSA+IHl1dWtvdWp1eW91XCA7Civkuovmpa3lubTluqYgPiBqaWd5b3VuZW5kb1wgOwor55u45Y+N5a6a55CGID4gc291aGFudGVpcmlcIDsKK+WFreWIhuWEgOW6pyA+IHJva3VidW5naXphXCA7CivlronlrprnirbmhYsgPiBhbnRlaWpvdXRhaVwgOwor5rCR5Li75pS/5rK7ID4gbWluc2h1c2VpamlcIDsKK+WMluWtpue5iue2rSA+IGthZ2FrdXNlbicnaVwgOwor57W25a++6Z+z5oSfID4gemV0dGFpb25rYW5cIDsKK+iHqueEtuegtOWjiiA+IHNoaXplbmhha2FpXCA7CivloLHpgZPmqZ/plqIgPiBob3Vkb3VraWthblwgOwor5o2V6Jmc5Lqk5o+bID4gaG9yeW9rb3VrYW5cIDsKK+S+oeWApOWIpOaWrSA+IGthY2hpaGFuZGFuXCA7CivmiYvnt7TmiYvnrqEgPiB0ZXJlbnRla3VkYVwgOwor5Zmo5qKw5L2T5pONID4ga2lrYWl0YWlzb3VcIDsKK+mkiuiAgeS/nemZuiA+IHlvdXJvdWhva2VuXCA7CivkuI3lvZPooajnpLogPiBmdXRvdWh5b3VqaVwgOwor5a6J5YWo6YGL6LuiID4gYW56ZW4nJ3VudGVuXCA7CivkuqTpmpvnr4Tlm7IgPiBrb3VzYWloYW4nJ2lcIDsKK+W/nOeUqOenkeWtpiA+IG91eW91a2FnYWt1XCA7CivkuI3mlbTlkIjkurogPiBmdXNlaWdvdWppblwgOwor5Y2Y5YWD5Yi25bqmID4gdGFuZ2Vuc2VpZG9cIDsKK+S4gOatqeWJjemAsiA+IGlwcG96ZW5zaGluXCA7Civlm73njovpmZvkuIsgPiBrb2t1b3VoZWlrYVwgOwor5pS+6YCB6KGb5pifID4gaG91c291ZWlzZWlcIDsKK+WvguWFiea1hOWcnyA+IGpha2tvdWpvdWRvXCA7CivlvoznlJ/lpKfkuosgPiBnb3Nob3VkYWlqaVwgOwor5LiJ5rCR5Li7576pID4gc2FubWluc2h1Z2lcIDsKK+awl+euoeWIh+mWiyA+IGtpa2Fuc2Vra2FpXCA7CivlgrLlsrjkuI3pgZwgPiBnb3VnYW5mdXNvblwgOwor5a6254i26ZW35Yi2ID4ga2FmdWNob3VzZWlcIDsKK+aal+m7kuaYn+mbsiA+IGFua29rdXNlaXVuXCA7Civov5Hku6Plm73lrrYgPiBraW5kYWlrb2trYVwgOwor5YmN6YCU5pyJ5pybID4gemVudG95dXVib3VcIDsKK+mfs+alveeQhuirliA+IG9uZ2FrdXJpcm9uXCA7Civlp5ToqJfosqnlo7IgPiBpdGFrdWhhbmJhaVwgOwor5LiJ5a+S5Zub5ripID4gc2Fua2Fuc2hpb25cIDsKK+iyp+S5j+aJgOW4ryA+IGJpbmJvdWpvdGFpXCA7CivlvqHkvL3ojYnlrZAgPiBvdG9naXpvdXNoaVwgOwor56We5aWI5bed55yMID4ga2FuYWdhd2FrZW5cIDsKK+i8v+irluiqv+afuyA+IHlvcm9uY2hvdXNhXCA7Civpm7vmsJfoo4Xnva4gPiBkZW5raXNvdWNoaVwgOwor5Zyw5pa56K2w5LyaID4gY2hpaG91Z2lrYWlcIDsKK+ijheeUsumDqOmaiiA+IHNvdWtvdWJ1dGFpXCA7CivkuI3lj6/lhaXmgKcgPiBmdWthbnl1dXNlaVwgOwor5Y2X5Lqs5pyo57a/ID4gbmFua2lubW9tZW5cIDsKK+WNsOixoeS4u+e+qSA+IGluc2hvdXNodWdpXCA7CivlpJrlo6vmuIjjgIUgPiB0YXNoaXNlaXNlaVwgOwor5LiA5by15LiA5bybID4gaXRjaG91aXNzaGlcIDsKK+WMuumWk+WIl+i7iiA+IGt1a2FucmVzc2hhXCA7Civnm7jmgJ3nm7jmhJsgPiBzb3VzaGlzb3VhaVwgOwor6Iiq56m65Z+65ZywID4ga291a3V1a2ljaGlcIDsKK+ebo+afu+iomOmMsiA+IGthbnNha2lyb2t1XCA7CivmioDooZPnp7vou6IgPiBnaWp1dHN1aXRlblwgOwor55Sj5YWQ5Yi26ZmQID4gc2FuamlzZWlnZW5cIDsKK+mjveWSjOeKtuaFiyA+IGhvdXdham91dGFpXCA7Civnn6Xog73mpJzmn7sgPiBjaGlub3VrZW5zYVwgOwor5a2k5b2x5oKE54S2ID4ga29laXNob3V6ZW5cIDsKK+S6lOeoruertuaKgCA+IGdvc2h1a3lvdWdpXCA7Civlm6PkvZPkv53pmbogPiBkYW50YWlob2tlblwgOwor5aeJ5aa56YO95biCID4gc2hpbWFpdG9zaGlcIDsKK+S4jemAmueuh+aJgCA+IGZ1dHN1dWthc2hvXCA7CivnoLTpgqrpoZXmraMgPiBoYWpha2Vuc2hvdVwgOwor5pS/5rK75Zuj5L2TID4gc2VpamlkYW50YWlcIDsKK+S4gOWWnOS4gOaGgiA+IGlra2lpY2hpeXV1XCA7Civmupblgpnlkb3ku6QgPiBqdW5iaW1laXJlaVwgOwor5Y+X6aiT56eR55uuID4ganVrZW5rYW1va3VcIDsKK+acqOeuoealveWZqCA+IG1va2thbmdha2tpXCA7CivkuK3pq5jpn7Ppg6ggPiBjaHV1a291b25idVwgOwor5Y+L5oSb57WQ5amaID4geXV1YWlrZWtrb25cIDsKK+a1t+i7jeWfuuWcsCA+IGthaWd1bmtpY2hpXCA7Civpm7vlrZDntKDlrZAgPiBkZW5zaGlzb3NoaVwgOwor5oSb5Zu96YGL5YuVID4gYWlrb2t1dW5kb3VcIDsKK+S6uuaWh+WcsOeQhiA+IGppbm1vbmNoaXJpXCA7CivlirTlg43kuonorbAgPiByb3Vkb3Vzb3VnaVwgOwor5oOF5aCx5Yem55CGID4gam91aG91c2hvcmlcIDsKK+WPr+Wkieizh+acrCA+IGthaGVuc2hpaG9uXCA7Civngrrmm7/lt67nm4ogPiBrYXdhc2VzYWVraVwgOwor6KqY5ouQ5LqL5Lu2ID4geXV1a2FpamlrZW5cIDsKK+S4ieWkp+mDveW4giA+IHNhbmRhaXRvc2hpXCA7CivmiYDopoHmmYLplpMgPiBzaG95b3VqaWthblwgOwor5aWz5qip6YGL5YuVID4gam9rZW4nJ3VuZG91XCA7CivliIbmlaPlh6bnkIYgPiBidW5zYW5zaG9yaVwgOwor6LWw6KGM5Y+v6IO9ID4gc291a291a2Fub3VcIDsKK+a1geiogOmjm+iqniA+IHJ5dXVnZW5oaWdvXCA7CivkuIDmlrDntIDlhYMgPiBpc3NoaW5raWdlblwgOwor5b6S5omL5L2T5pONID4gdG9zaHV0YWlzb3VcIDsKK+WwgeW7uuS4u+e+qSA+IGhvdWtlbnNodWdpXCA7Civlj5fpqJPmiKbkuokgPiBqdWtlbnNlbnNvdVwgOwor5Ye66Zuy5aSn56S+ID4gaXp1bW90YWlzaGFcIDsKK+aoqemWgOWLouWutiA+IGtlbm1vbnNlaWthXCA7CivnhKHnt5rmk43nuKYgPiBtdXNlbnNvdWp1dVwgOwor5YCf5a625LqJ6K2wID4gc2hha2thc291Z2lcIDsKK+Wuh+WumeenkeWtpiA+IHVjaHV1a2FnYWt1XCA7Civlj6Tlhbjoirjog70gPiBrb3RlbmdlaW5vdVwgOwor6LGq6I+v57Wi54ibID4gZ291a2FrZW5yYW5cIDsKK+a8ouiLseWtl+WFuCA+IGthbicnZWlqaXRlblwgOwor5amm5Lq66YGL5YuVID4gZnVqaW4nJ3VuZG91XCA7CivkuI3li5XmmI7njosgPiBmdWRvdW15b3VvdVwgOwor5L2T5aSW5Y+X57K+ID4gdGFpZ2FpanVzZWlcIDsKK+WLpOWLmeW5tOmZkCA+IGtpbm11bmVuZ2VuXCA7CivmuoDloLTkuIDoh7QgPiBtYW5qb3VpdGNoaVwgOwor5YmN5LiW55Sf5a2YID4gemVuc2VzZWl6b25cIDsKK+S8muioiOW5tOW6piA+IGthaWtlaW5lbmRvXCA7CivkuIfokYnku67lkI0gPiBtYW4nJ3lvdWdhbmFcIDsKK+WCjeiBtOmaj+aEjyA+IGJvdWNob3V6dWlpXCA7Civntbblr77lpJrmlbAgPiB6ZXR0YWl0YXN1dVwgOwor57SF55m96Kmm5ZCIID4ga291aGFrdWppYWlcIDsKK+S8muioiOebo+afuyA+IGthaWtlaWthbnNhXCA7CivlhavntJjkuIDlrocgPiBoYWtrb3VpY2hpdVwgOwor6Iie5Y+w6KOF572uID4gYnV0YWlzb3VjaGlcIDsKK+S6i+WLmemVt+WumCA+IGppbXVjaG91a2FuXCA7CivkuIDoiKznpL7kvJogPiBpcHBhbnNoYWthaVwgOwor5pel5bid5pmC5LujID4gbml0dGVpamlkYWlcIDsKK+eZu+Wdgui7iue3miA+IHRvaGFuc2hhc2VuXCA7CivkuJbnlYzmnIDlpKcgPiBzZWthaXNhaWRhaVwgOwor5oyH5bCO5Y6f55CGID4gc2hpZG91Z2VucmlcIDsKK+mAoOasoemhm+aymyA+IHpvdWppdGVucGFpXCA7CivoiKrnqbrnrqHnkIYgPiBrb3VrdXVrYW5yaVwgOwor5oSf5p+T57WM6LevID4ga2Fuc2Vua2Vpcm9cIDsKK+S6jOetiei7jeabuSA+IG5pdG91Z3Vuc291XCA7CivpmLLngavloZfmlpkgPiBib3VrYXRvcnlvdVwgOwor6Ieq57iE6Ieq57ibID4gamlqb3VqaWJha3VcIDsKK+mAlOS4reS4i+i7iiA+IHRvY2h1dWdlc2hhXCA7CivnhY7ppIXluIPlm6MgPiBzZW5iZWlidXRvblwgOwor55Kw5aKD5L+d6K23ID4ga2Fua3lvdWhvZ29cIDsKK+WYmOeZuuimi+WZqCA+IHVzb2hha2tlbmtpXCA7CivpnaLkvJrmmYLplpMgPiBtZW5rYWlqaWthblwgOwor6YeN5qmf6Zai6YqDID4ganV1a2lrYW5qdXVcIDsKK+azleahiOWvqeitsCA+IGhvdWFuc2hpbmdpXCA7Civoh6rli5XliLblvqEgPiBqaWRvdXNlaWd5b1wgOwor5YCL5Lq65oyH5bCOID4ga29qaW5zaGlkb3VcIDsKK+iHqueEtueZuueBqyA+IHNoaXplbmhha2thXCA7CivkuLvli5nlpKfoh6MgPiBzaHVtdWRhaWppblwgOwor55+t5pyf5rG65oimID4gdGFua2lrZXNzZW5cIDsKK+iogOiqnumBi+eUqCA+IGdlbmdvdW4nJ3lvdVwgOwor57KX6KO95r+r6YCgID4gc29zZWlyYW56b3VcIDsKK+WNsemZuuaAneaDsyA+IGtpa2Vuc2hpc291XCA7Civnqbrln5/nrqHnkIYgPiBrdXVpa2lrYW5yaVwgOwor5b6h5q6/5aWz5LitID4gZ290ZW5qb2NodXVcIDsKK+mao+S/neS6i+alrSA+IHJpbnBvamlneW91XCA7CivlkIjmhI/lv4PkuK0gPiBnb3Vpc2hpbmp1dVwgOwor5LiW55WM6KiY6YyyID4gc2VrYWlraXJva3VcIDsKK+WfuuacrOadoeS7tiA+IGtpaG9uam91a2VuXCA7CivovrLmsJHkuIDmj4YgPiBub3VtaW4nJ2lra2lcIDsKK+WJjeS7o+acquiBniA+IHplbmRhaW1pbW9uXCA7CivopIflkIjmsZrmn5MgPiBmdWt1Z291b3NlblwgOwor57W25a++6Zu25bqmID4gemV0dGFpcmVpZG9cIDsKK+ani+aIkOWPr+iDvSA+IGtvdXNlaWthbm91XCA7CivkuIDkurroiJ7lj7AgPiBoaXRvcmlidXRhaVwgOwor55qu5LiL57WE57mUID4gaGlrYXNvc2hpa2lcIDsKK+WcsOS4i+izh+a6kCA+IGNoaWthc2hpZ2VuXCA7Civnmb3ljJblgIvkvZMgPiBoYWt1a2Frb3RhaVwgOwor6Zu76Kmx5Zue57eaID4gZGVud2FrYWlzZW5cIDsKK+S4jeato+WSrOWQiCA+IGZ1c2Vpa291Z291XCA7Civnvo7lrrnkvZPmk40gPiBiaXlvdXRhaXNvdVwgOwor5Y2U6K2w6Zui5amaID4ga3lvdWdpcmlrb25cIDsKK+a4qeaaluWJjee3miA+IG9uZGFuemVuc2VuXCA7CivmlrDopo/kv53nrqEgPiBzaGlua2lob2thblwgOwor5LiA6LKr55Wq5Y+3ID4gaWtrYW5iYW5nb3VcIDsKK+ePvuihjOazleimjyA+IGdlbmtvdWhvdWtpXCA7CivnpZblm73lvqnluLAgPiBzb2tva3VmdWtraVwgOwor5ZCr5rC054Kt57SgID4gZ2Fuc3VpdGFuc29cIDsKK+WKtOWDjeaZgumWkyA+IHJvdWRvdWppa2FuXCA7Civngrrmm7/nm7jloLQgPiBrYXdhc2Vzb3ViYVwgOwor5LiW55WM5LiA5ZGoID4gc2VrYWlpc3NodXVcIDsKK+WMu+eZguazleS6uiA+IGlyeW91aG91amluXCA7CivpvJPoiJ7mv4DlirEgPiBrb2J1Z2VraXJlaVwgOwor5pmC5pyf5bCa5pepID4gamlraXNob3Vzb3VcIDsKK+eykuW6puWIhuW4gyA+IHJ5dXVkb2J1bnB1XCA7CivmipXkuIvos4fmnKwgPiB0b3VrYXNoaWhvblwgOwor55So5oSP5ZGo5YiwID4geW91aXNodXV0b3VcIDsKK+WGheeHg+apn+mWoiA+IG5haW5lbmtpa2FuXCA7CivpmLLmsLTliqDlt6UgPiBib3VzdWlrYWtvdVwgOwor5YCL5Lq65raI6LK7ID4ga29qaW5zaG91aGlcIDsKK+S7ruaAp+i/keimliA+IGthc2Vpa2luc2hpXCA7CivlsIrnjovmlJjlpLcgPiBzb24nJ25vdWpvdWlcIDsKK+epuuawl+S8neafkyA+IGt1dWtpZGVuc2VuXCA7CivlubzlubTmmYLku6MgPiB5b3VuZW5qaWRhaVwgOwor56S+5Lya5b6p5biwID4gc2hha2FpZnVra2lcIDsKK+mbu+awl+ijveWTgSA+IGRlbmtpc2VpaGluXCA7CivmmYLmmYLliLvliLsgPiBqaWppa29ra29rdVwgOwor5LiA6LKr5L2c5qWtID4gaWtrYW5zYWd5b3VcIDsKK+a7nuWcqOacn+mWkyA+IHRhaXphaWtpa2FuXCA7CivnhKHlvaLosqHnlKMgPiBtdWtlaXphaXNhblwgOwor54Sh5pat6Lui6LyJID4gbXVkYW50ZW5zYWlcIDsKK+Wdh+ihoeS6iOeulyA+IGtpbmtvdXlvc2FuXCA7Civku5jluK/mnaHku7YgPiBmdXRhaWpvdWtlblwgOwor6LuN5LqL5bel5aC0ID4gZ3Vuamlrb3Vqb3VcIDsKK+acieWKueaVsOWtlyA+IHl1dWtvdXN1dWppXCA7Civoh43kuIvkuLnnlLAgPiBzZWlrYXRhbmRlblwgOwor6Kmm55So5pyf6ZaTID4gc2hpeW91a2lrYW5cIDsKK+WMluWtpuWkieWMliA+IGthZ2FrdWhlbmthXCA7Civoh6rli5Xou4rnqI4gPiBqaWRvdXNoYXplaVwgOwor6KiA6Kqe6YGT5patID4gZ29uZ29kb3VkYW5cIDsKK+aLheS/neeJqeaoqSA+IHRhbnBvYnVra2VuXCA7Civllrbmpa3mmYLplpMgPiBlaWd5b3VqaWthblwgOwor5oSb5aa75byB5b2TID4gYWlzYWliZW50b3VcIDsKK+e+jueahOWrjOaCqiA+IGJpdGVraWtlbicnb1wgOwor5LiJ5Y2D5LiW55WMID4gc2FuemVuc2VrYWlcIDsKK+WkmumHjeaUvumAgSA+IHRhanV1aG91c291XCA7Civkuozph43lpJbkuqQgPiBuaWp1dWdhaWtvdVwgOwor5LqI5YKZ5bel5L2cID4geW9iaWtvdXNha3VcIDsKK+iCseaOm+akheWtkCA+IGhpamlrYWtlaXN1XCA7Civnn63ms6LmlL7pgIEgPiB0YW5wYWhvdXNvdVwgOwor6aKo5YWJ57W25L2zID4gZnV1a291emVra2FcIDsKK+S4u+aDheS4u+e+qSA+IHNodWpvdXNodWdpXCA7CivooYzli5XkuLvnvqkgPiBrb3Vkb3VzaHVnaVwgOwor6Ieq5YiG6Ieq6LqrID4gamlidW5qaXNoaW5cIDsKK+WknOWFieWhl+aWmSA+IHlha291dG9yeW91XCA7CivluLDnhKHku67oqqwgPiBraW11a2FzZXRzdVwgOwor5biC5aC05Y6f55CGID4gc2hpam91Z2VucmlcIDsKK+S6rOa7i+WcsOaWuSA+IGtlaWppY2hpaG91XCA7CivlpKfnvqnlkI3liIYgPiB0YWlnaW1laWJ1blwgOwor5ZG85ZC46YGL5YuVID4ga29reXV1dW5kb3VcIDsKK+ieuuaXi+majuautSA+IHJhc2Vua2FpZGFuXCA7Civoi7Hoqp7mlZnogrIgPiBlaWdva3lvdWlrdVwgOwor6LGh54mZ5rW35bK4ID4gem91Z2VrYWlnYW5cIDsKK+aXpeacrOiEs+eCjiA+IG5paG9uJydub3VlblwgOwor5ZKM6a2C5ryi5omNID4gd2Frb25rYW5zYWlcIDsKK+e1jOWWtuWGjeW7uiA+IGtlaWVpc2Fpa2VuXCA7CivohLPkuIvlnoLkvZMgPiBub3VrYXN1aXRhaVwgOwor5Yuf6YeR6YGL5YuVID4gYm9raW4nJ3VuZG91XCA7CivliLvoi6bli4nlirEgPiBrb2trdWJlbnJlaVwgOwor5pei5ama55S35oCnID4ga2lrb25kYW5zZWlcIDsKK+ayu+awtOW3peS6iyA+IGNoaXN1aWtvdWppXCA7Civml6XmnKzkurroq5YgPiBuaWhvbmppbnJvblwgOwor6LuN5LqL5YWs5YK1ID4gZ3Vuamlrb3VzYWlcIDsKK+WNgeS6uuWNgeiJsiA+IGp1dW5pbnRvaXJvXCA7CivnhKHphY3kvJrnpL4gPiBtdWhhaWdhaXNoYVwgOwor5a625peP5omL5b2TID4ga2F6b2t1dGVhdGVcIDsKK+e+hemHneebpOW6pyA+IHJhc2hpbmJhbnphXCA7Civnpo/npYnmqZ/lmaggPiBmdWt1c2hpa2lraVwgOwor5pqr5a6a5LqI566XID4gemFudGVpeW9zYW5cIDsKK+iHquiyu+WHuueJiCA+IGppaGlzaHVwcGFuXCA7CivluLjnlKjmvKLlrZcgPiBqb3V5b3VrYW5qaVwgOwor546L5L6v6LK05pePID4gb3Vrb3VraXpva3VcIDsKK+S6uuS9k+aooeWeiyA+IGppbnRhaW1va2VpXCA7Civml6Xopb/ovp7lhbggPiBuaXNzZWlqaXRlblwgOwor5oSf5oOF56e75YWlID4ga2Fuam91aW55dXVcIDsKK+WcsOaWueertummrCA+IGNoaWhvdWtlaWJhXCA7CivntYzmuIjlirnmnpwgPiBrZWl6YWlrb3VrYVwgOwor5rCR5LqL6Ki06KifID4gbWluamlzb3Nob3VcIDsKK+WMluWtpuiomOWPtyA+IGthZ2FrdWtpZ291XCA7Civlj4LliqDmhI/orZggPiBzYW5rYWlzaGlraVwgOwor5oim5pmC5L2T5Yi2ID4gc2Vuaml0YWlzZWlcIDsKK+iHqueUseW4guWgtCA+IGppeXV1c2hpam91XCA7CivlhrfmiL/lrozlgpkgPiByZWlib3VrYW5iaVwgOwor6Ieq5bex5Y+M5a++ID4gamlrb3NvdXRzdWlcIDsKK+eBq+eHteaOm+W4gyA+IGtvdGF0c3VnYWtlXCA7CivluIzmnJvkvqHmoLwgPiBraWJvdWtha2FrdVwgOwor6YG45a++5pys6YOoID4gc2VudGFpaG9uYnVcIDsKK+WFiOmgreaJk+iAhSA+IHNlbnRvdWRhc2hhXCA7CivlkI3liY3nqbrplpMgPiBuYW1hZWt1dWthblwgOwor5rWF6I2J5rW36IuUID4gYXNha3VzYW5vcmlcIDsKK+S6i+alreacrOmDqCA+IGppZ3lvdWhvbmJ1XCA7CivnkIboq5bpl5jkuokgPiByaXJvbnRvdXNvdVwgOwor5Lq65Y+j5aKX5YqgID4gamlua291em91a2FcIDsKK+WkluS6pOi+nuS7pCA+IGdhaWtvdWppcmVpXCA7CivmsI/lp5PliLbluqYgPiBzaGlzZWlzZWlkb1wgOwor57iE5paH5pmC5LujID4gam91bW9uamlkYWlcIDsKK+S4lueVjOWkp+aIpiA+IHNla2FpdGFpc2VuXCA7CivmqZ/li5XmvJTnv5IgPiBraWRvdWVuc2h1dVwgOwor6Ieq6K2m5Zuj5ZOhID4gamlrZWlkYW4nJ2luXCA7Civpm7vmsJfmirXmipcgPiBkZW5raXRlaWtvdVwgOwor6Ziy6Z+z6KOF572uID4gYm91b25zb3VjaGlcIDsKK+iyoOWCteWQiOioiCA+IGZ1c2FpZ291a2VpXCA7CivpgYrou43oqJjogIUgPiB5dXVndW5raXNoYVwgOwor5L6h5YCk5L2T57O7ID4ga2FjaGl0YWlrZWlcIDsKK+S6jOmHjee1kOWpmiA+IG5panV1a2Vra29uXCA7CivkuIDplbfkuIDnn60gPiBpdGNob3VpdHRhblwgOwor6K236YCB6Ii55ZujID4gZ29zb3VzZW5kYW5cIDsKK+eKr+ihjOePvuWgtCA+IGhhbmtvdWdlbmJhXCA7CivmhI/opovluoPlkYogPiBpa2Vua291a29rdVwgOwor5ZaE5Zug5ZaE5p6cID4gemVuJydpbnplbmthXCA7CivnhKHkurrlnLDluK8gPiBtdWppbmNoaXRhaVwgOwor57WM5Za26Lui5o+bID4ga2VpZWl0ZW5rYW5cIDsKK+iyqeWjsuapn+S8miA+IGhhbmJhaWtpa2FpXCA7CivpgaDpmpTmk43kvZwgPiBlbmtha3Vzb3VzYVwgOwor5oWj55So6Kqe5Y+lID4ga2FuJyd5b3Vnb2t1XCA7CivmtrLkvZPnqbrmsJcgPiBla2l0YWlrdXVraVwgOwor5Ye65YiD5YyF5LiBID4gZGViYWJvdWNob3VcIDsKK+Wcn+iumuacrOe3miA+IGRvc2FuaG9uc2VuXCA7CivosqHmlL/mlK/mj7QgPiB6YWlzZWlzaGllblwgOwor5a6u5bu355S75a62ID4ga3l1dXRlaWdha2FcIDsKK+acgOW+jOWIl+i7iiA+IHNhaWdvcmVzc2hhXCA7CivnkIblt6Xlrabpg6ggPiByaWtvdWdha3VidVwgOwor5L+d566h5Lya56S+ID4gaG9rYW5nYWlzaGFcIDsKK+mFjeWQiOemgeW/jCA+IGhhaWdvdWtpbmtpXCA7CivpgY7libDmipXos4cgPiBrYWpvdXRvdXNoaVwgOwor5a626ZW35Yi25bqmID4ga2FjaG91c2VpZG9cIDsKK+WPr+iBtOi3nemboiA+IGthY2hvdWt5b3JpXCA7CivopqrpoZ7nuIHogIUgPiBzaGlucnVpZW5qYVwgOwor5a6H5a6Z5YyW5a2mID4gdWNodXVrYWdha3VcIDsKK+eEoeeQhuW/g+S4rSA+IG11cmlzaGluanV1XCA7CivlubTos4DokYnmm7ggPiBuZW5nYWhhZ2FraVwgOwor6YCj6YKm5LqI566XID4gcmVucG91eW9zYW5cIDsKK+WJteS+oeWtpuS8miA+IHNvdWthZ2Fra2FpXCA7CivliKnlrZDoo5zntaYgPiByaXNoaWhva3l1dVwgOwor5qC55pys5Y6f55CGID4ga29ucG9uZ2VucmlcIDsKK+WuieWFqOS/nemanCA+IGFuemVuaG9zaG91XCA7CivlgaXlurfkv53pmbogPiBrZW5rb3Vob2tlblwgOwor5pqX6buS5pmC5LujID4gYW5rb2t1amlkYWlcIDsKK+S4luS7o+S6pOS7oyA+IHNlZGFpa291dGFpXCA7Civou6LpgIHpm7voqbEgPiB0ZW5zb3VkZW53YVwgOwor5pit5ZKM5pmC5LujID4gc2hvdXdhamlkYWlcIDsKK+S9v+eUqOioseWPryA+IHNoaXlvdWt5b2thXCA7Civpn7Pmpb3mmKDnlLsgPiBvbmdha3VlaWdhXCA7CivlroflrpnpgYrms7MgPiB1Y2h1dXl1dWVpXCA7Civkv53lgaXliLbluqYgPiBob2tlbnNlaWRvXCA7CivmupblgpnpgYvli5UgPiBqdW5iaXVuZG91XCA7Civku6PorbDliLbluqYgPiBkYWlnaXNlaWRvXCA7CivmqKHlnovlnLDlm7MgPiBtb2tlaWNoaXp1XCA7CivnhKHojLboi6bojLYgPiBtdWNoYWt1Y2hhXCA7Civlj6TlvoDku4rmnaUgPiBrb291a29ucmFpXCA7CivmkanliKnmlK/lpKkgPiBtYXJpc2hpdGVuXCA7Civkurrngrrmt5jmsbAgPiBqaW4nJ2l0b3V0YVwgOwor56i85YON5pmC6ZaTID4ga2Fkb3VqaWthblwgOwor5Yy755mC5Yi25bqmID4gaXJ5b3VzZWlkb1wgOwor6Z2i572157215YCSID4gbWVuYmFiYXRvdVwgOwor6YG45oyZ6YGV5Y+NID4gc2Vua3lvaWhhblwgOwor5pel5pys5pmC6ZaTID4gbmlob25qaWthblwgOwor5aW06Zq35Yi25bqmID4gZG9yZWlzZWlkb1wgOwor5qeL6YCg5L+d5oyBID4ga291em91aG9qaVwgOwor6Ieq5YuV6LuK5YyWID4gamlkb3VzaGFrYVwgOwor5pel5pys5pu457SAID4gbmlob25zaG9raVwgOwor5LiN56m65oiQ5bCxID4gZnVrdXVqb3VqdVwgOwor5bmz5ZKM6YGL5YuVID4gaGVpd2F1bmRvdVwgOwor5YWs5a6a5q2p5ZCIID4ga291dGVpYnVhaVwgOwor5aSp6KGj54Sh57irID4gdGVuJydpbXVob3VcIDsKK+eQhui3r+aVtOeEtiA+IHJpcm9zZWl6ZW5cIDsKK+WNl+S6rOe5u+WtkCA+IG5hbmtpbmp1c3VcIDsKK+iZmueEoeS4u+e+qSA+IGt5b211c2h1Z2lcIDsKK+aoqeWogeS4u+e+qSA+IGtlbicnaXNodWdpXCA7CivmsJfngo7kuIfkuIggPiBraWVuYmFuam91XCA7CivkuInkuInkuZ3luqYgPiBzYW5zYW5rdWRvXCA7CivoqIjnrpfmqZ/plpMgPiBrZWlzYW5raW1hXCA7CivnpLzlhIDkvZzms5UgPiByZWlnaXNhaG91XCA7Civmu4XojLboi6bojLYgPiBtZWNoYWt1Y2hhXCA7CivogLPkuIvohbrngo4gPiBqaWthc2VuJydlblwgOwor55+z5rK55Y2x5qmfID4gc2VraXl1a2lraVwgOwor5YiR5LqL5LqL5Lu2ID4ga2VpamlqaWtlblwgOwor5Yip55So5L6h5YCkID4gcml5b3VrYWNoaVwgOwor5Zue57ea6LKg6I23ID4ga2Fpc2VuZnVrYVwgOwor6aaW5bC+5LiA6LKrID4gc2h1Ymlpa2thblwgOwor5Yy755mC5L+d6Zm6ID4gaXJ5b3Vob2tlblwgOwor5q2m6KOF6Kej6ZmkID4gYnVzb3VrYWlqb1wgOwor6KGo5oSP5paH5a2XID4gaHlvdWltb25qaVwgOwor6YO95biC5Zu95a62ID4gdG9zaGlrb2trYVwgOwor54Sh54K65b6S6aOfID4gbXVpdG9zaG9rdVwgOwor5pig55S76Z+z5qW9ID4gZWlnYW9uZ2FrdVwgOwor5YmN5b6M5bem5Y+zID4gemVuZ29zYXl1dVwgOwor6YeO5oim54m556eRID4geWFzZW50b2trYVwgOwor5LiN576I5aWU5pS+ID4gZnVraWhvbnBvdVwgOwor5LiA5omL6LKp5aOyID4gaXR0ZWhhbmJhaVwgOwor5b2T5bqn6aCQ6YeRID4gdG91emF5b2tpblwgOwor5qGc6Iqx54ib5ryrID4gb3VrYXJhbm1hblwgOwor6Ieq55Sx6Ieq5ZyoID4gaml5dXVqaXphaVwgOwor5Lm+54el54Sh5ZGzID4ga2Fuc291bXVtaVwgOwor5LqM6aCF5a6a55CGID4gbmlrb3V0ZWlyaVwgOwor5rS75oCn5rGa5rOlID4ga2Fzc2Vpb2RlaVwgOwor5LiJ5LiJ5LqU5LqUID4gc2Fuc2FuZ29nb1wgOwor5Zyo5bqr566h55CGID4gemFpa29rYW5yaVwgOwor54Gr54G95L+d6Zm6ID4ga2FzYWlob2tlblwgOwor57216KmI6ZuR6KiAID4gYmFyaXpvdWdvblwgOwor6YGT6Lev5bCB6Y6WID4gZG91cm9mdXVzYVwgOwor5bCP5aeU5ZOh5LyaID4gc2hvdWlpbmthaVwgOwor5Lqk5riJ5aeU5ZOhID4ga291c2hvdWlpblwgOwor5ZCI5ZCM6KGM54K6ID4gZ291ZG91a291aVwgOwor54KJ6L666KuH6KmxID4gcm9oZW5kYW53YVwgOwor6YGO5Y675YiG6KmeID4ga2Frb2J1bnNoaVwgOwor5Za25Yip5Lya56S+ID4gZWlyaWdhaXNoYVwgOwor5Lq65LqL5LiN55yBID4gamluamlmdXNlaVwgOwor55Ww5oCn6Zai5L+CID4gaXNlaWthbmtlaVwgOwor5LqL5pWF5Y6f5ZugID4gamlrb2dlbicnaW5cIDsKK+WutuWHuuWwkeWlsyA+IGllZGVzaG91am9cIDsKK+WPpOWFuOS4u+e+qSA+IGtvdGVuc2h1Z2lcIDsKK+S4jeazleaKleajhCA+IGZ1aG91dG91a2lcIDsKK+S6jOmHjeieuuaXiyA+IG5panV1cmFzZW5cIDsKK+S9jeebuOmAn+W6piA+IGlzb3Vzb2t1ZG9cIDsKK+mfs+mfu+mDqOmWgCA+IG9uJydpbmJ1bW9uXCA7CivmqZ/og73kuLvnvqkgPiBraW5vdXNodWdpXCA7CivmqZ/morDorablgpkgPiBraWthaWtlaWJpXCA7Civln7rnpI7oqabpqJMgPiBraXNvc2hpa2VuXCA7Civlrrbluq3oj5zlnJIgPiBrYXRlaXNhaWVuXCA7CivpgZPot6/lt6XkuosgPiBkb3Vyb2tvdWppXCA7CivkupzniL7nhLbkuIEgPiBhcnV6ZW5jaGluXCA7Civlm5voi6blhavoi6YgPiBzaGlrdWhha2t1XCA7Civlp5TntLDpnaLoq4cgPiBpc2FpbWVuZGFuXCA7Civlr77moKHoqablkIggPiB0YWlrb3VqaWFpXCA7CivkurrmsJfkvZzlrrYgPiBuaW5raXNha2thXCA7CivmmpblhqznlbDlpIkgPiBkYW50b3VpaGVuXCA7CivlpbPmgKfkuIDoiKwgPiBqb3NlaWlwcGFuXCA7CivmgKrnjaPmmKDnlLsgPiBrYWlqdXVlaWdhXCA7CivlpJrnqK7lpJrmp5ggPiB0YXNodXRheW91XCA7Civkuozpg6jmlZnmjoggPiBuaWJ1a3lvdWp1XCA7CivpgJ/luqbpgZXlj40gPiBzb2t1ZG9paGFuXCA7CivmqKrmlq3mranpgZMgPiBvdWRhbmhvZG91XCA7CivoiJfoo4XpgZPot68gPiBob3NvdWRvdXJvXCA7CivnhKHnt5rmioDluKsgPiBtdXNlbmdpc2hpXCA7Civpo5vps6XmmYLku6MgPiBhc3VrYWppZGFpXCA7Civlm57ot6/ln7rmnb8gPiBrYWlyb2tpYmFuXCA7CivlvaLmiJDlpJbnp5EgPiBrZWlzZWlnZWthXCA7CivlroflrpnlhbXlmaggPiB1Y2h1dWhlaWtpXCA7CivnlbDluLjmsJfosaEgPiBpam91a2lzaG91XCA7CivnhKHmqZ/ljJblraYgPiBtdWtpa2FnYWt1XCA7Civoh6rnlLHkuLvnvqkgPiBqaXl1dXNodWdpXCA7CivkvY3oqJjov73otIggPiBpa2l0c3Vpc291XCA7Civlrp/lhpnmmKDnlLsgPiBqaXNzaGFlaWdhXCA7Civoh6rnlLHmmYLplpMgPiBqaXl1dWppa2FuXCA7CivlvqHnpLzlpYnlhawgPiBvcmVpYm91a291XCA7CivlnJLoirjnlKjlhbcgPiBlbmdlaXlvdWd1XCA7CivnoLTojLbnm67ojLYgPiBoYWNoYW1lY2hhXCA7CivkuI3nqY/mlofmm7ggPiBmdW9uYnVuc2hvXCA7CivmvKLlrZfmlofljJYgPiBrYW5qaWJ1bmthXCA7CivkuojlgpnoqabpqJMgPiB5b2Jpc2hpa2VuXCA7CivlirTli5nnrqHnkIYgPiByb3VtdWthbnJpXCA7CivlubPlkozkvJrorbAgPiBoZWl3YWthaWdpXCA7Civku7vli5npg6jpmoogPiBuaW5tdWJ1dGFpXCA7CivlsI/plpPnianlsYsgPiBrb21hbW9ub3lhXCA7CivnuKbmqKrnhKHlsL0gPiBqdXVvdW11amluXCA7Civlm73lrrbkuLvnvqkgPiBrb2trYXNodWdpXCA7CivpgY7libDmipXkuI4gPiBrYWpvdXRvdXlvXCA7Civoq5bnkIblm57ot68gPiByb25yaWthaXJvXCA7Civoh6rlo4rkvZznlKggPiBqaWthaXNheW91XCA7CivmupblgpnmnJ/plpMgPiBqdW5iaWtpa2FuXCA7CivlpKnkuIvnhKHlj4wgPiB0ZW5rYW11c291XCA7CivkuIDngInljYPph4wgPiBpc3NoYXNlbnJpXCA7CivmqKrooYzpl4rmrakgPiBvdWtvdWthcHBvXCA7CivlibDkvZnkvqHlgKQgPiBqb3V5b2thY2hpXCA7CivmlofljJblm73lrrYgPiBidW5rYWtva2thXCA7CivoiJ7lj7DnqL3lj6QgPiBidXRhaWdlaWtvXCA7CivkvIrli6LlpKflu58gPiBpc2V0YWlieW91XCA7Civnm7jkupLmlK/mj7QgPiBzb3Vnb3NoaWVuXCA7Civmma7pgY3ljp/nkIYgPiBmdWhlbmdlbnJpXCA7CivkuI3ljbPkuI3pm6IgPiBmdXNva3VmdXJpXCA7Civmgqrlm6DmgqrmnpwgPiBha3VpbicnYWtrYVwgOwor5LiJ44CF5Lmd5bqmID4gc2Fuc2Fua3Vkb1wgOwor6ZmE5ZKM6Zu35ZCMID4gZnV3YXJhaWRvdVwgOwor5YyW57Kn6YOo5bGLID4ga2VzaG91YmV5YVwgOwor56Oo6KO955+z5ZmoID4gbWFzZWlzZWtraVwgOwor54i25a2Q5a625bqtID4gZnVzaGlrYXRlaVwgOwor5L2Z6Z+75auL5auLID4geW9pbmpvdWpvdVwgOwor57iE5paH5Zyf5ZmoID4gam91bW9uZG9raVwgOwor6LKh5YuZ566h55CGID4gemFpbXVrYW5yaVwgOwor56mC54q26Iqx5bqPID4gc3Vpam91a2Fqb1wgOwor6L6e5pu46YOo6ZaAID4gamlzaG9idW1vblwgOwor5qmf5YuV6YOo6ZqKID4ga2lkb3VidXRhaVwgOwor5L+d5a6J5Yem5YiGID4gaG9hbnNob2J1blwgOwor5oSP5oCd6KGo56S6ID4gaXNoaWh5b3VqaVwgOwor5Za25Yip5LqL5qWtID4gZWlyaWppZ3lvdVwgOwor55qu6Iaa56e75qSNID4gaGlmdWlzaG9rdVwgOwor6K2w5LqL5aao5a6zID4gZ2lqaWJvdWdhaVwgOwor5LuY5ZKM6Zu35ZCMID4gZnV3YXJhaWRvdVwgOwor5LiA6aiO5b2T5Y2DID4gaWtraXRvdXNlblwgOwor6Zi/6by75Y+r5ZaaID4gYWJpa3lvdWthblwgOwor57W25a++5rip5bqmID4gemV0dGFpb25kb1wgOwor6buE6YeR5LiW55WMID4gb3Vnb25zZWthaVwgOwor5qOS5rip5bqm6KiIID4gYm91b25kb2tlaVwgOwor5Y+N5a++5oSP6KaLID4gaGFudGFpaWtlblwgOwor5qyj5rGC5rWE5ZyfID4gZ29uZ3Vqb3Vkb1wgOwor6YeR6LKo5rqW5YKZID4ga2lua2FqdW5iaVwgOwor6KuW55CG57Sg5a2QID4gcm9ucmlzb3NoaVwgOwor6Zyy5Zyw5qC95Z+5ID4gcm9qaXNhaWJhaVwgOwor5Y+k5aKz5pmC5LujID4ga29mdW5qaWRhaVwgOwor54Sh54WZ54Gr6JasID4gbXVlbmtheWFrdVwgOwor5pS/5rK75qmf5qeLID4gc2VpamlraWtvdVwgOwor5oSP5b+X5rG65a6aID4gaXNoaWtldHRlaVwgOwor6LKg6I235YiG5pWjID4gZnVrYWJ1bnNhblwgOwor5LiN5YGP5LiN5YWaID4gZnVoZW5mdXRvdVwgOwor5ZCM5bqK55Ww5aSiID4gZG91c2hvdWltdVwgOwor54Sh6ZmQ6LuM6YGTID4gbXVnZW5raWRvdVwgOwor6LuN5LqL6aGn5ZWPID4gZ3Vuamlrb21vblwgOwor6IC9576O5Li7576pID4gdGFuYmlzaHVnaVwgOwor5Zac5YqH5pig55S7ID4ga2lnZWtpZWlnYVwgOwor5pu854+g5rKZ6I+vID4gbWFuanVzaGFnZVwgOwor5qih5pOs6Kmm6aiTID4gbW9naXNoaWtlblwgOwor6KaP5YmH6YGV5Y+NID4ga2lzb2t1aWhhblwgOwor5aSP54KJ5Yas5omHID4ga2Fyb3RvdXNlblwgOwor6Zuo5aSp5rG66KGMID4gdXRlbmtla2tvdVwgOwor5oSP6KaL5Lqk5o+bID4gaWtlbmtvdWthblwgOwor5LiN5Lm+5oCn5rK5ID4gZnVrYW5zZWl5dVwgOwor5rOM5bC/5Zmo56eRID4gaGlueW91a2lrYVwgOwor5bi35bmE5LiK5aWPID4gaWFrdWpvdXNvdVwgOwor5YWo5qip5aeU5ZOhID4gemVua2VuJydpaW5cIDsKK+a8lOeul+apn+aniyA+IGVuemFua2lrb3VcIDsKK+eEoeiTi+iyqOi7iiA+IG11Z2Fpa2FzaGFcIDsKK+S6jOWNgeS4lue0gCA+IG5pamlzc2Vpa2lcIDsKK+S/neitt+WHpuWIhiA+IGhvZ29zaG9idW5cIDsKK+earuiGmuenkeWtpiA+IGhpZnVrYWdha3VcIDsKK+ihhuaEmuaUv+ayuyA+IHNodWd1c2VpamlcIDsKK+S+jeW+k+atpuWumCA+IGppanV1YnVrYW5cIDsKK+aOp+iotOacn+mWkyA+IGtvdXNva2lrYW5cIDsKK+S4iuS9jeani+mAoCA+IGpvdWlrb3V6b3VcIDsKK+W4uOS7u+WnlOWToSA+IGpvdW5pbicnaWluXCA7Civoip3lsYXlsI/lsYsgPiBzaGliYWlnb3lhXCA7Civlhaznp5/lhazoqrIgPiBrb3Vzb2tvdWthXCA7CivmmJPmhJ/mn5PmgKcgPiBpa2Fuc2Vuc2VpXCA7CivntIDkvIrlnIvlsYsgPiBraW5va3VuaXlhXCA7CivlpJzpt7nolY7puqYgPiB5b3Rha2Fzb2JhXCA7Civli6Tli5nmmYLplpMgPiBraW5tdWppa2FuXCA7Civljq3kuJbkuLvnvqkgPiBlbnNlaXNodWdpXCA7CivljZjkvY3oqJjlj7cgPiB0YW4nJ2lraWdvdVwgOwor5o6S5LuW5Li7576pID4gaGFpdGFzaHVnaVwgOwor5a6H5a6Z6aOb6KGMID4gdWNodXVoaWtvdVwgOwor5Luu5ZCN6I2J57SZID4ga2FuYXpvdXNoaVwgOwor5Z2R5YaF5LqL5pWFID4ga291bmFpamlrb1wgOwor6KuW55CG5ryU566XID4gcm9ucmllbnphblwgOwor6Zu75rCX5q+b5biDID4gZGVua2ltb3VmdVwgOwor6Zuy6ayi6Iqx6aGUID4gdW5iaW5rYWdhblwgOwor5b6h5YmN5Lya6K2wID4gZ296ZW5rYWlnaVwgOwor5LqI5YKZ6Kq/5p+7ID4geW9iaWNob3VzYVwgOwor5bmz5ZKM5Li7576pID4gaGVpd2FzaHVnaVwgOwor56iy6I235a+/5Y+4ID4gaW5hcml6dXNoaVwgOwor5rOo5oSP5LqL6aCFID4gY2h1dWlqaWtvdVwgOwor6IO46YOo5aSW56eRID4ga3lvdWJ1Z2VrYVwgOwor6Z2e5Y+v5o+b576kID4gaGlrYWthbmd1blwgOwor6YG65Lyd5oOF5aCxID4gaWRlbmpvdWhvdVwgOwor5a+E55Sf54Gr5bGxID4ga2lzZWlrYXphblwgOwor5LqM6YOo5o6I5qWtID4gbmlidWp1Z3lvdVwgOwor6Z2e5Za25Yip55qEID4gaGllaXJpdGVraVwgOwor5rKz5bed5bel5LqLID4ga2FzZW5rb3VqaVwgOwor55u45omL5qyh56ysID4gYWl0ZXNoaWRhaVwgOwor5L6/5a6c5Li7576pID4gYmVuZ2lzaHVnaVwgOwor55qu6Iaa5ZG85ZC4ID4gaGlmdWtva3l1dVwgOwor5Lqc5oiQ5bGk5ZyPID4gYXNlaXNvdWtlblwgOwor56m66LuN5aSn5bCJID4ga3V1Z3VudGFpaVwgOwor5LiJ44CF5LqU44CFID4gc2Fuc2FuZ29nb1wgOwor5qK15ZKM6L6e5YW4ID4gYm9ud2FqaXRlblwgOwor5o6n6Ki055CG55SxID4ga291c29yaXl1dVwgOwor6YOo6ZqK5Yy65YiGID4gYnV0YWlrdWJ1blwgOwor5oKq6a2U5Li7576pID4gYWt1bWFzaHVnaVwgOwor6K235bK45bel5LqLID4gZ29nYW5rb3VqaVwgOwor5L2Z6Z+75auL44CFID4geW9pbmpvdWpvdVwgOwor55Sw5aSr6YeO5Lq6ID4gZGVucHV5YWppblwgOwor5aWH5aWH5oCq5oCqID4ga2lraWthaWthaVwgOwor56We5Luj5paH5a2XID4gamluZGFpbW9qaVwgOwor5Y+k5YW45pmC5LujID4ga290ZW5qaWRhaVwgOwor5biC5Lya6K2w5ZOhID4gc2hpa2FpZ2lpblwgOwor5Y2x6Zm66LKg5ouFID4ga2lrZW5mdXRhblwgOwor5YGl5bq35LiN5a6JID4ga2Vua291ZnVhblwgOwor5b+c5oCl5rih5rKzID4gb3VreXV1dG9rYVwgOwor5LqM6YeN5ZCm5a6aID4gbmlqdXVoaXRlaVwgOwor5oSP5rCX6KGd5aSpID4gaWtpc2hvdXRlblwgOwor5Yy75a2m55So6KqeID4gaWdha3V5b3Vnb1wgOwor6Iie5Y+w5Yq55p6cID4gYnV0YWlrb3VrYVwgOwor6Zu75L2N5beu6KiIID4gZGVuJydpc2FrZWlcIDsKK+W6puaVsOWIhuW4gyA+IGRvc3V1YnVucHVcIDsKK+mBi+mAgeS/nemZuiA+IHVuc291aG9rZW5cIDsKK+mrmOaJi+Wwj+aJiyA+IHRha2F0ZWtvdGVcIDsKK+eEoeWRs+S5vueHpSA+IG11bWlrYW5zb3VcIDsKK+S4i+mZouitsOmVtyA+IGthaW5naWNob3VcIDsKK+i7jeWCmeeuoeeQhiA+IGd1bmJpa2FucmlcIDsKK+aoueiEguWKoOW3pSA+IGp1c2hpa2Frb3VcIDsKK+WIqeawtOW3peS6iyA+IHJpc3Vpa291amlcIDsKK+mdnuW4uOS6i+aFiyA+IGhpam91aml0YWlcIDsKK+atpuijheicgui1tyA+IGJ1c291aG91a2lcIDsKK+acieWjsOmfs+WMliA+IHl1dXNlaW9ua2FcIDsKK+S+oeWApOWfuua6liA+IGthY2hpa2lqdW5cIDsKK+iqv+eQhuWZqOWFtyA+IGNob3VyaWtpZ3VcIDsKK+egsueFmeW8vumbqCA+IGhvdWVuZGFuJyd1XCA7CivppqzogLPmnbHpoqggPiBiYWppdG91ZnV1XCA7CivlubPooYznp7vli5UgPiBoZWlrb3VpZG91XCA7Civoo5zliqnli5XoqZ4gPiBob2pvZG91c2hpXCA7CivlkKblrprlv5znrZQgPiBoaXRlaW91dG91XCA7Civoh6rlt7Hos4fmnKwgPiBqaWtvc2hpaG9uXCA7Civpu4Tph5HmmYLku6MgPiBvdWdvbmppZGFpXCA7Civlkb3ku6TkuIDkuIsgPiBtZWlyZWlpa2thXCA7CivntI3ku5jmnJ/pmZAgPiBub3VmdWtpZ2VuXCA7Civmkbjmk6zoqabpqJMgPiBtb2dpc2hpa2VuXCA7CivlsI/lhZDpurvnl7ogPiBzaG91bmltYWhpXCA7CivlrqPkvJ3oqJjkuosgPiBzZW5kZW5raWppXCA7CivlpI/lraPkvJHmmocgPiBrYWtpa3l1dWthXCA7Civoh6jmmYLmlL/lupwgPiByaW5qaXNlaWZ1XCA7CivkuInml6XkuInmmakgPiBtaWtrYW1pYmFuXCA7CivnhKHnkIbpm6PpoYwgPiBtdXJpbmFuZGFpXCA7Civkuojlgpnoo4Xnva4gPiB5b2Jpc291Y2hpXCA7CivmnpzmqLnmoL3ln7kgPiBrYWp1c2FpYmFpXCA7CivnspfooaPnspfpo58gPiBzb2lzb3Nob2t1XCA7CivkurrmsJHlp5Tlk6EgPiBqaW5taW4nJ2lpblwgOwor6aO95ZKM6JK45rCXID4gaG91d2Fqb3VraVwgOwor5Yy55aSr5Yy55ammID4gaGlwcHVoaXBwdVwgOwor5LqM5YiG6Z+z56ymID4gbmlidW4nJ29ucHVcIDsKK+WNg+azouS4h+azoiA+IHNlbnBhYmFucGFcIDsKK+eVsOW4uOeZuueUnyA+IGlqb3VoYXNzZWlcIDsKK+ayu+WuiemDqOmaiiA+IGNoaWFuYnV0YWlcIDsKK+WIg+WCt+aymeaxsCA+IG5pbmpvdXphdGFcIDsKK+S4jea0u+aAp+WMliA+IGZ1a2Fzc2Vpa2FcIDsKK+W3peS6i+ePvuWgtCA+IGtvdWppZ2VuYmFcIDsKK+iHquW3seWuo+S8nSA+IGppa29zZW5kZW5cIDsKK+awl+euoeaUr+eCjiA+IGtpa2Fuc2hpZW5cIDsKK+aJi+WJjeWLneaJiyA+IHRlbWFlZ2F0dGVcIDsKK+S/neWuiOS4u+e+qSA+IGhvc2h1c2h1Z2lcIDsKK+acqOerr+W+ruWhtSA+IGtvcHBhbWlqaW5cIDsKK+atu+S6oeiomOS6iyA+IHNoaWJvdWtpamlcIDsKK+mBjuWJsOWIqeebiiA+IGtham91cmlla2lcIDsKK+Wls+WwiueUt+WNkSA+IGpvc29uZGFucGlcIDsKK+WNgeS6jOWNmOihoyA+IGp1dW5paGl0b2VcIDsKK+WIhumbouiqsueojiA+IGJ1bnJpa2F6ZWlcIDsKK+S7u+aEj+aNnOafuyA+IG5pbicnaXNvdXNhXCA7CivkuIrkvY3mpoLlv7UgPiBqb3VpZ2FpbmVuXCA7CivoiJ7lj7DpgZPlhbcgPiBidXRhaWRvdWd1XCA7CivkuIrmmKDmmYLplpMgPiBqb3VlaWppa2FuXCA7CivoqIjlmajpo5vooYwgPiBrZWlraWhpa291XCA7CivmiKbngb3lraTlhZAgPiBzZW5zYWlrb2ppXCA7Civln7rmnKzljp/nkIYgPiBraWhvbmdlbnJpXCA7Civmg4XmhI/mipXlkIggPiBqb3VpdG91Z291XCA7CivnrqHnkIbmqZ/og70gPiBrYW5yaWtpbm91XCA7Civoh6jmmYLoqJjlj7cgPiByaW5qaWtpZ291XCA7CivlhbXlvbnlv4zpgb8gPiBoZWlla2lraWhpXCA7CivmiKbkuonmmKDnlLsgPiBzZW5zb3VlaWdhXCA7CivosqHmlL/ljbHmqZ8gPiB6YWlzZWlraWtpXCA7CivmnInpmZDoirHluo8gPiB5dXVnZW5rYWpvXCA7Civou43kuovln7rlnLAgPiBndW5qaWtpY2hpXCA7CivkuI3mraPkuovku7YgPiBmdXNlaWppa2VuXCA7Civlh7rmnaXmrKHnrKwgPiBkZWtpc2hpZGFpXCA7CivlpInkvZPku67lkI0gPiBoZW50YWlnYW5hXCA7Civoi7Hpm4TkuLvnvqkgPiBlaXl1dXNodWdpXCA7Civnl7ToqbHllqflmKkgPiBjaGl3YWdlbmthXCA7Civng4/mnInlhYjnlJ8gPiB1eXV1c2Vuc2VpXCA7CivmhrLms5XpgZXlj40gPiBrZW5wb3VpaGFuXCA7Civlm57ou6LmpIXlrZAgPiBrYWl0ZW4nJ2lzdVwgOwor6IO955m75Y2K5bO2ID4gbm90b2hhbnRvdVwgOwor5Yqj5oCn6YG65LydID4gcmVzc2VpaWRlblwgOwor6KuL6LKg5Yi25bqmID4gdWtlb2lzZWlkb1wgOwor5rC06LuK5bCP5bGLID4gc3Vpc2hhZ295YVwgOwor6KSQ5q+b5ZKM56iuID4gYWthZ2V3YXNodVwgOwor5Zu65a6a6LKg5YK1ID4ga290ZWlmdXNhaVwgOwor5L6d6aGY5YWN5a6YID4gaWdhbm1lbmthblwgOwor5pS/5bqc5qmf6ZaiID4gc2VpZnVraWthblwgOwor5LqL5Lu26KiY6ICFID4gamlrZW5raXNoYVwgOwor5bmz5a6J5b6M5pyfID4gaGVpYW5rb3VraVwgOwor6ZuH55So5L+d6Zm6ID4ga295b3Vob2tlblwgOwor5L+d6K236LK/5piTID4gaG9nb2JvdWVraVwgOwor5LiW55WM5Yi26KaHID4gc2VrYWlzZWloYVwgOwor54Sh5qmf6IKl5paZID4gbXVraWhpcnlvdVwgOwor6auY6YeO6LGG6IWQID4ga291eWFkb3VmdVwgOwor5Luj6K2w5pS/5rK7ID4gZGFpZ2lzZWlqaVwgOwor5oSP6aas5b+D54y/ID4gaWJhc2hpbicnZW5cIDsKK+S6pOmAmumBuuWFkCA+IGtvdXRzdXVpamlcIDsKK+mBuuajhOiyqOeJqSA+IGlraWthbW90c3VcIDsKK+eCreWMluawtOe0oCA+IHRhbmthc3Vpc29cIDsKK+WbsueigeS4iee0miA+IGlnb3Nhbmt5dXVcIDsKK+eUo+WppuS6uuenkSA+IHNhbmZ1amlua2FcIDsKK+eQhuaDs+S4u+e+qSA+IHJpc291c2h1Z2lcIDsKK+WNgeWtl+egsueBqyA+IGp1dWppaG91a2FcIDsKK+mDvemBk+W6nOecjCA+IHRvZG91ZnVrZW5cIDsKK+m6nemmmeixjOixhiA+IGpha291ZW5kb3VcIDsKK+ebsuWUluWtpuagoSA+IG1vdWFnYWtrb3VcIDsKK+S/neWuieadoeS+iyA+IGhvYW5qb3VyZWlcIDsKK+efs+WZqOaZguS7oyA+IHNla2tpamlkYWlcIDsKK+S8vOmdnueQhuWxiCA+IGVzZXJpa3V0c3VcIDsKK+iomOW/teWIh+aJiyA+IGtpbmVua2l0dGVcIDsKK+WAi+S6uuWAi+S6uiA+IGtvamlua29qaW5cIDsKK+W7tua7nuWIqeWtkCA+IGVudGFpcmlzaGlcIDsKK+WIhua0vuS4u+e+qSA+IGJ1bnBhc2h1Z2lcIDsKK+avgOiqieikkuiytiA+IGtpeW9ob3VoZW5cIDsKK+WUr+e+juS4u+e+qSA+IHl1aWJpc2h1Z2lcIDsKK+i7jeS6i+ihm+aYnyA+IGd1bmppZWlzZWlcIDsKK+eEoeaIkeWkouS4rSA+IG11Z2FtdWNodXVcIDsKK+S6iOWumuacn+mZkCA+IHlvdGVpa2lnZW5cIDsKK+eri+S9k+aYoOeUuyA+IHJpdHRhaWVpZ2FcIDsKK+Wkqeawl+aooeanmCA+IHRlbmtpbW95b3VcIDsKK+eBq+WPo+WOn+a5liA+IGtha291Z2Vua29cIDsKK+ihqOmfs+Wtl+avjSA+IGh5b3VvbmppYm9cIDsKK+mfs+WjsOiogOiqniA+IG9uc2VpZ2VuZ29cIDsKK+S4gOaYqOaYqOaXpSA+IHNha2lvdG90b2lcIDsKK+iEseazleihjOeCuiA+IGRhcHBvdWtvdWlcIDsKK+WAi+S6uuS4u+e+qSA+IGtvamluc2h1Z2lcIDsKK+S4jeato+imj+i7jSA+IGZ1c2Vpa2lndW5cIDsKK+WHhueci+itt+WppiA+IGp1bmthbmdvZnVcIDsKK+avjeWtkOWutuW6rSA+IGJvc2hpa2F0ZWlcIDsKK+WQjOWQjeeVsOS6uiA+IGRvdW1laWlqaW5cIDsKK+iCsuWFkOaZgumWkyA+IGlrdWppamlrYW5cIDsKK+aZguS+oeeZuuihjCA+IGppa2FoYWtrb3VcIDsKK+S8muitsOS6i+mghSA+IGthaWdpamlrb3VcIDsKK+S7ruaDs+iomOaGtiA+IGthc291a2lva3VcIDsKK+mDqOWIhum6u+mFlCA+IGJ1YnVubWFzdWlcIDsKK+aknOS6i+aOp+iotCA+IGtlbmppa291c29cIDsKK+e1jOWWtueuoeeQhiA+IGtlaWVpa2FucmlcIDsKK+mjm+ihjOaZgumWkyA+IGhpa291amlrYW5cIDsKK+Wbm+Wtl+eGn+iqniA+IHlvamlqdWt1Z29cIDsKK+iHqOapn+W/nOWkiSA+IHJpbmtpb3VoZW5cIDsKK+Wumuacn+S/nemZuiA+IHRlaWtpaG9rZW5cIDsKK+mAoOiogOmjm+iqniA+IHpvdWdlbmhpZ29cIDsKK+S6i+WLmeeUqOWTgSA+IGppbXV5b3VoaW5cIDsKK+iogOiqnuWcsOeQhiA+IGdlbmdvY2hpcmlcIDsKK+eKr+e9quihjOeCuiA+IGhhbnphaWtvdWlcIDsKK+i8uOmAgeapn+mWoiA+IHl1c291a2lrYW5cIDsKK+ijnOWKqeiJpuiJhyA+IGhvam9rYW50ZWlcIDsKK+S6lOmHjOmcp+S4rSA+IGdvcmltdWNodXVcIDsKK+S4ieaXpeWkqeS4iyA+IG1pa2thdGVua2FcIDsKK+WfuuacrOWNmOS9jSA+IGtpaG9udGFuJydpXCA7CivnjLbkuojmnJ/plpMgPiB5dXV5b2tpa2FuXCA7Civoq4vosqDlt6XkuosgPiB1a2VvaWtvdWppXCA7CivmhI/mgJ3msbrlrpogPiBpc2hpa2V0dGVpXCA7CivlvozpgIDmloflrZcgPiBrb3V0YWltb2ppXCA7CivnlLflsIrlpbPljZEgPiBkYW5zb25qb2hpXCA7CivlpKfmhYjlpKfmgrIgPiBkYWlqaWRhaWhpXCA7CivlpoLkvZXmp5jluKsgPiBpa2FzYW1hc2hpXCA7Civoh6jnlYzkuovmlYUgPiByaW5rYWlqaWtvXCA7Civlm6DmnpzplqLkv4IgPiBpbmdha2Fua2VpXCA7CivnlbDnqK7kuqTphY0gPiBpc2h1a291aGFpXCA7CivlpJzplpPli6Tli5kgPiB5YWthbmtpbm11XCA7CivlvqHlm73oh6rmhaIgPiBva3VuaWppbWFuXCA7CivnpZ7ntYznp5HljLsgPiBzaGlua2Vpa2FpXCA7CivlrozlhajoqablkIggPiBrYW56ZW5qaWFpXCA7CivlhaznpLrlnLDkvqEgPiBrb3VqaWNoaWthXCA7CivkuIDlrZfkuIDlj6UgPiBpY2hpamlpa2t1XCA7Civljp/nkIbkuLvnvqkgPiBnZW5yaXNodWdpXCA7Civnq6XoqbHkvZzlrrYgPiBkb3V3YXNha2thXCA7CivlpqjlrrPooYzngrogPiBib3VnYWlrb3VpXCA7CivpgYvllrbntYzosrsgPiB1bicnZWlrZWloaVwgOwor5LqM6YOo5ZCI5aWPID4gbmlidWdhc3NvdVwgOwor5ZCN6KqJ5q+A5pCNID4gbWVpeW9raXNvblwgOwor6KiY6Yyy5pig55S7ID4ga2lyb2t1ZWlnYVwgOwor6YGL5pCs566h55CGID4gdW5wYW5rYW5yaVwgOwor5Yy756eR5aSn5a2mID4gaWthZGFpZ2FrdVwgOwor5Yqg5rib5LmX6ZmkID4ga2FnZW5qb3Vqb1wgOwor6Zi/54mH5oim5LqJID4gYWhlbnNlbnNvdVwgOwor5ZSv5ZSv6Ku+6Ku+ID4gaWlkYWt1ZGFrdVwgOwor55u45a++6Kqk5beuID4gc291dGFpZ29zYVwgOwor6aOy6YWS6YGL6LuiID4gaW5zaHV1bnRlblwgOwor5oyH5ZCN6Kmm5ZCIID4gc2hpbWVpamlhaVwgOwor5b6S5byf5Yi25bqmID4gdG90ZWlzZWlkb1wgOwor57SL57695LqM6YeNID4gbW9uaGFidXRhZVwgOwor6LKo5bmj5Yi25bqmID4ga2FoZWlzZWlkb1wgOwor5pel5ZKM5LiL6aeEID4gaGl5b3JpZ2V0YVwgOwor5LiW55WM5bmz5ZKMID4gc2VrYWloZWl3YVwgOwor54Sh55CG6Zai5pWwID4gbXVyaWthbnN1dVwgOwor6Z+z5ZCQ5pyX5pyXID4gb250b3JvdXJvdVwgOwor5qKF6Zuo5YmN57eaID4gYmFpdXplbnNlblwgOwor6Zu75rCX5pmC6KiIID4gZGVua2lkb2tlaVwgOwor5LqM5Y2B5Zub5pelID4gbmlqdXV5b2trYVwgOwor5oKy5q2M5oW35oWoID4gaGlrYWtvdWdhaVwgOwor5LqI6Ziy5Yy75a2mID4geW9ib3VpZ2FrdVwgOwor5b2T5pyf5Yip55uKID4gdG91a2lyaWVraVwgOwor55qu5LiL6ISC6IKqID4gaGlrYXNoaWJvdVwgOwor6Zm256OB5Zmo5bqXID4gdG91amlraXRlblwgOwor5YiH56ym5aOy5aC0ID4ga2lwcHV1cmliYVwgOwor6KO45L2T5Li7576pID4gcmF0YWlzaHVnaVwgOwor6Z+z5qiZ5paH5a2XID4gb25weW91bW9qaVwgOwor5LiN5q2j6KaP5oimID4gZnVzZWlraXNlblwgOwor57W25a++5L2N572uID4gemV0dGFpaWNoaVwgOwor57Ch5piT5L+d6Zm6ID4ga2FuJydpaG9rZW5cIDsKK+WvoemgreaUv+ayuyA+IGthdG91c2VpamlcIDsKK+S4i+awtOWHpueQhiA+IGdlc3Vpc2hvcmlcIDsKK+iomOaGtue0oOWtkCA+IGtpb2t1c29zaGlcIDsKK+mfs+WjsOiomOWPtyA+IG9uc2Vpa2lnb3VcIDsKK+WSjOW5s+S8muitsCA+IHdhaGVpa2FpZ2lcIDsKK+egtOWjiuS4u+e+qSA+IGhha2Fpc2h1Z2lcIDsKK+Wuh+WumeWfuuWcsCA+IHVjaHV1a2ljaGlcIDsKK+S4jeWPr+efpeirliA+IGZ1a2FjaGlyb25cIDsKK+iHquihm+aJi+autSA+IGppZWlzaHVkYW5cIDsKK+Wwj+WjsuWApOautSA+IGtvdXJpbmVkYW5cIDsKK+W4guWgtOimj+aooSA+IHNoaWpvdWtpYm9cIDsKK+itsOWToeeri+azlSA+IGdpaW5yaXBwb3VcIDsKK+Wtpue0muWnlOWToSA+IGdha2t5dXVpaW5cIDsKK+itsOS8muS4u+e+qSA+IGdpa2Fpc2h1Z2lcIDsKK+WfuuekjuenkeWtpiA+IGtpc29rYWdha3VcIDsKK+aNnOafu+acrOmDqCA+IHNvdXNhaG9uYnVcIDsKK+Wuh+WumeaOouafuyA+IHVjaHV1dGFuc2FcIDsKK+S6nOm6u+e5lOeJqSA+IGFtYW9yaW1vbm9cIDsKK+mghuW6j+S4jeWQjCA+IGp1bmpvZnVkb3VcIDsKK+e1jOa4iOaPtOWKqSA+IGtlaXphaWVuam9cIDsKK+e0r+eul+a4qeW6piA+IHJ1aXNhbm9uZG9cIDsKK+a1qua8q+S4u+e+qSA+IHJvbWFuc2h1Z2lcIDsKK+atpuijhemDveW4giA+IGJ1c291dG9zaGlcIDsKK+W5s+WSjOWbveWutiA+IGhlaXdha29ra2FcIDsKK+mBk+i3r+WcsOWbsyA+IGRvdXJvY2hpenVcIDsKK+W+oeacseWNsOiIuSA+IGdvc2h1aW5zZW5cIDsKK+WknOmDjuiHquWkpyA+IHlhcm91amlkYWlcIDsKK+mDqOWIhuWQpuWumiA+IGJ1YnVuaGl0ZWlcIDsKK+ism+WSjOS8muitsCA+IGtvdXdha2FpZ2lcIDsKK+e3qOe1hOapn+aisCA+IGhlbnNva2lrYWlcIDsKK+WMu+eZguWZqOaisCA+IGlyeW91a2lrYWlcIDsKK+ato+imj+WIhuW4gyA+IHNlaWtpYnVucHVcIDsKK+S8muWToeWQjeewvyA+IGthaWlubWVpYm9cIDsKK+WkqeWkieWcsOeVsCA+IHRlbnBlbmNoaWlcIDsKK+acieWPsuS7peadpSA+IHl1dXNoaWlyYWlcIDsKK+S/neitt+mWoueojiA+IGhvZ29rYW56ZWlcIDsKK+acquW4sOmChOiAhSA+IG1pa2lrYW5zaGFcIDsKK+S4ieaXpeWdiuS4uyA+IG1pa2thYm91enVcIDsKK+eiuuWbuuS4jeWLlSA+IGtha2tvZnVkb3VcIDsKK+S4jeWBtOS4jemboiA+IGZ1c29rdWZ1cmlcIDsKK+aWh+aIv+WFt+WxiyA+IGJ1bmJvdWd1eWFcIDsKK+W6t+eFleWtl+WFuCA+IGtvdWtpaml0ZW5cIDsKK+acquadpeawuOWKqyA+IG1pcmFpZWlnb3VcIDsKK+eEoeeQhueul+autSA+IG11cmlzYW5kYW5cIDsKK+iZnue+juS6uuiNiSA+IGd1YmlqaW5zb3VcIDsKK+ixoeeJmee0sOW3pSA+IHpvdWdlemFpa3VcIDsKK+a7heiMtua7heiMtiA+IG1lY2hhbWVjaGFcIDsKK+miqOi7iuWwj+WxiyA+IGZ1dXNoYWdveWFcIDsKK+WtkOS+m+mDqOWxiyA+IGtvZG9tb2JleWFcIDsKK+axguaEm+iqh+ekuiA+IGt5dXVhaWtvamlcIDsKK+eOi+aUv+W+qeWPpCA+IG91c2VpZnVra29cIDsKK+S4gOS6uumDqOWxiyA+IGhpdG9yaWJleWFcIDsKK+S4jeiyt+mBi+WLlSA+IGZ1YmFpdW5kb3VcIDsKK+WQneWXh+WQneWXhyA+IGtlY2hpa2VjaGlcIDsKK+Wumuacn+mgkOmHkSA+IHRlaWtpeW9raW5cIDsKK+S4gOWumuacn+mWkyA+IGl0dGVpa2lrYW5cIDsKK+WcsOS4i+mBi+WLlSA+IGNoaWthdW5kb3VcIDsKK+aHkOeWkeS4u+e+qSA+IGthaWdpc2h1Z2lcIDsKK+iejemAmueEoeeijSA+IHl1dXp1dW11Z2VcIDsKK+S/neWuieimgeWToSA+IGhvYW4nJ3lvdWluXCA7CivkuLvmiJHkuLvnvqkgPiBzaHVnYXNodWdpXCA7CivkuI3kvZzngrrniq8gPiBmdXNha3VpaGFuXCA7CivoiJfoo4XnhYnnk6YgPiBob3NvdXJlbmdhXCA7CivmipXlvbHlm7Pms5UgPiB0b3VlaXp1aG91XCA7Civnt4/nirboirHluo8gPiBzb3Vqb3VrYWpvXCA7CivmuIXmtYTnhKHlnqIgPiBzZWlqb3VtdWt1XCA7CivkuInpnaLoqJjkuosgPiBzYW5tZW5raWppXCA7CivmiY3msJfnuKbmqKogPiBzYWlraWp1dW91XCA7CivmnKzkvY3osqjluaMgPiBob24nJ2lrYWhlaVwgOwor6aas6bm/5LiB5a+nID4gYmFrYXRlaW5laVwgOwor5pel6JGh6L6e5pu4ID4gbmlwcG9qaXNob1wgOwor5L2N55u456m66ZaTID4gaXNvdWt1dWthblwgOwor5rW35LqL6KGb5pifID4ga2FpamllaXNlaVwgOwor56m65rCX5qmf5qKwID4ga3V1a2lraWthaVwgOwor5YWx5ZCM5LqV5oi4ID4ga3lvdWRvdWlkb1wgOwor5ZCI55CG5Li7576pID4gZ291cmlzaHVnaVwgOwor5aSp5rSl5b6h5aeJID4gYW1hdHN1bWlrb1wgOwor5aSp5omL5Y+k6IieID4gdGVudGVrb21haVwgOwor5aSc5YWJ5pmC6KiIID4geWFrb3Vkb2tlaVwgOwor6Ieq6Lui6LuK5bGLID4gaml0ZW5zaGF5YVwgOwor6Ieq5a6255So6LuKID4gamlrYXlvdXNoYVwgOwor5Y2Y5L2N5Yi25bqmID4gdGFuJydpc2VpZG9cIDsKK+aWh+Wtl+aDheWgsSA+IG1vamlqb3Vob3VcIDsKK+imj+WItuino+mZpCA+IGtpc2Vpa2Fpam9cIDsKK+awl+eElOS4h+S4iCA+IGtpZW5iYW5qb3VcIDsKK+S4i+awtOW3peS6iyA+IGdlc3Vpa291amlcIDsKK+WQiOaEj+aDheatuyA+IGdvdWlqb3VzaGlcIDsKK+atpuijheW5s+WSjCA+IGJ1c291aGVpd2FcIDsKK+S7mOW4r+S6i+mghSA+IGZ1dGFpamlrb3VcIDsKK+ihjOaWueS4jeaYjiA+IHl1a3VlZnVtZWlcIDsKK+Wkqeawl+S6iOWgsSA+IHRlbmtpeW9ob3VcIDsKK+S4jeW5s+S4jea6gCA+IGZ1aGVpZnVtYW5cIDsKK+iiq+S/nemZuuiAhSA+IGhpaG9rZW5zaGFcIDsKK+imquWtkOmbu+ipsSA+IG95YWtvZGVud2FcIDsKK+WkmuaDheWkmuaBqCA+IHRham91dGFrb25cIDsKK+e1jOWWtuegtOe2uyA+IGtlaWVpaGF0YW5cIDsKK+izm+WKqeS8muWToSA+IHNhbmpva2FpaW5cIDsKK+S4i+mDqOani+mAoCA+IGthYnVrb3V6b3VcIDsKK+avjuWcn+abnOaXpSA+IG1haWRveW91YmlcIDsKK+S6iOeul+aOque9riA+IHlvc2Fuc29jaGlcIDsKK+S4jeepj+WIhuWtkCA+IGZ1b25idW5zaGlcIDsKK+WWnOaAkuWTgOalvSA+IGtpZG9haXJha3VcIDsKK+a8ouWSjOi+nuWFuCA+IGthbndhaml0ZW5cIDsKK+WPi+iqvOWbveWutiA+IHl1dWdpa29ra2FcIDsKK+ebuOS6kuS/nemZuiA+IHNvdWdvaG9rZW5cIDsKK+S6i+Wkp+S4u+e+qSA+IGppZGFpc2h1Z2lcIDsKK+S6lOi8quS8muitsCA+IGdvcmlua2FpZ2lcIDsKK+iqnuW9ouWkieWMliA+IGdva2VpaGVua2FcIDsKK+mdnuaIpumXmOWToSA+IGhpc2VudG91aW5cIDsKK+eEoeW/teeEoeaDsyA+IG11bmVubXVzb3VcIDsKK+a8lOeul+aJi+mghiA+IGVuemFudGVqdW5cIDsKK+atpuaWreS4u+e+qSA+IGJ1ZGFuc2h1Z2lcIDsKK+S4luipseS6uumWkyA+IHNld2FuaW5nZW5cIDsKK+W5vuS9leW5s+WdhyA+IGtpa2FoZWlraW5cIDsKK+S6uuW3pemZjembqCA+IGppbmtvdWtvdXVcIDsKK+iHquWVj+iHquetlCA+IGppbW9uaml0b3VcIDsKK+eah+e0gOW5tOW6piA+IGtvdWtpbmVuZG9cIDsKK+WPo+iFlOWkluenkSA+IGtvdWtvdWdla2FcIDsKK+iEs+aAp+m6u+eXuiA+IG5vdXNlaW1haGlcIDsKK+S6lOWNgemfs+mghiA+IGdvanV1b25qdW5cIDsKK+a8lOeul+eyvuW6piA+IGVuemFuc2VpZG9cIDsKK+WNgeWtl+aetueKtiA+IGp1dWppa2Fqb3VcIDsKK+S4jeiAgeS4jeatuyA+IGZ1cm91ZnVzaGlcIDsKK+S4lueVjOS4u+e+qSA+IHNla2Fpc2h1Z2lcIDsKK+ieuumIv+e0sOW3pSA+IHJhZGVuemFpa3VcIDsKK+iomOi8ieS6i+mghSA+IGtpc2Fpamlrb3VcIDsKK+eCree0oOe5iue2rSA+IHRhbnNvc2VuJydpXCA7CivnhKHnt5rpm7voqbEgPiBtdXNlbmRlbndhXCA7CivmuKnmg4XkuLvnvqkgPiBvbmpvdXNodWdpXCA7CivlgIvkurrntYzllrYgPiBrb2ppbmtlaWVpXCA7CivlpZTmlL7kuI3nvoggPiBob25wb3VmdWtpXCA7CivpiYTlmajmmYLku6MgPiB0ZWtraWppZGFpXCA7CivniankvqHpqLDosrQgPiBidWtrYXRvdWtpXCA7Civml6XmnKzoiJ7ouIogPiBuaWhvbmJ1eW91XCA7Civogb7llJblrabmoKEgPiByb3VhZ2Fra291XCA7Civnj77ku6Poi7Hoqp4gPiBnZW5kYWllaWdvXCA7CivljYHkuozkvb/lvpIgPiBqdXVuaXNoaXRvXCA7Civml6XmnKzluq3lnJIgPiBuaWhvbnRlaWVuXCA7CivpgbrkvJ3mmpflj7cgPiBpZGVuJydhbmdvdVwgOwor6LuN5LqL6Ly46YCBID4gZ3Vuaml5dXNvdVwgOwor5Ly05oCn6YG65LydID4gaGFuc2VpaWRlblwgOwor57WM5Za25Y+C5YqgID4ga2VpZWlzYW5rYVwgOwor5LqI5YKZ6YG45oyZID4geW9iaXNlbmt5b1wgOwor5LqI5YKZ6Imm6ZqKID4geW9iaWthbnRhaVwgOwor5LqI5YKZ6YG45omLID4geW9iaXNlbnNodVwgOwor5LiN5YC25oi05aSpID4gZnVndXRhaXRlblwgOwor5bmz5ZKM6YOo6ZqKID4gaGVpd2FidXRhaVwgOwor5ZSv44CF6Ku+44CFID4gaWlkYWt1ZGFrdVwgOwor6KOB5Yik5rKZ5rGwID4gc2FpYmFuemF0YVwgOwor5Za25Yip5rOV5Lq6ID4gZWlyaWhvdWppblwgOwor6K2w5Lya5pS/5rK7ID4gZ2lrYWlzZWlqaVwgOwor6Zuo5aSp6aCG5bu2ID4gdXRlbmp1bicnZW5cIDsKK+S7mOW4r+iyu+eUqCA+IGZ1dGFpaGl5b3VcIDsKK+S7o+itsOWToeWboyA+IGRhaWdpaW5kYW5cIDsKK+S6jOmHjeiqsueojiA+IG5panV1a2F6ZWlcIDsKK+aJtumkiuaOp+mZpCA+IGZ1eW91a291am9cIDsKK+ihm+aYn+mDveW4giA+IGVpc2VpdG9zaGlcIDsKK+mbu+awl+Wbnui3ryA+IGRlbmtpa2Fpcm9cIDsKK+WcsOS4i+S6jOmajiA+IGNoaWthbmlrYWlcIDsKK+mgkOmHkeWPo+W6pyA+IHlva2lua291emFcIDsKK+iJsuaBi+aymeaxsCA+IGlyb2tvaXphdGFcIDsKK+iyqOW5o+S+oeWApCA+IGthaGVpa2FjaGlcIDsKK+aui+WLmeaVtOeQhiA+IHphbm11c2VpcmlcIDsKK+WFrOWWtuS/nemZuiA+IGtvdWVpaG9rZW5cIDsKK+itsua4oeaLheS/nSA+IGpvdXRvdGFucG9cIDsKK+S4gOWutuWbo+askiA+IGlra2FkYW5yYW5cIDsKK+S7o+itsOWToeS8miA+IGRhaWdpaW5rYWlcIDsKK+ijnOato+S6iOeulyA+IGhvc2VpeW9zYW5cIDsKK+mBjuWJsOmYsuihmyA+IGtham91Ym91ZWlcIDsKK+S6iOWCmeW6p+W4rSA+IHlvYml6YXNla2lcIDsKK+ihm+eUn+Wfuua6liA+IGVpc2Vpa2lqdW5cIDsKK+S/neitt+Wbo+S9kyA+IGhvZ29kYW50YWlcIDsKK+WEgOijhemmrOi7iiA+IGdpc291YmFzaGFcIDsKK+aZguS6i+WVj+mhjCA+IGppamltb25kYWlcIDsKK+Wkq+WppuWWp+WYqSA+IGZ1dWZ1Z2Vua2FcIDsKK+aWreWbuuaKl+itsCA+IGRhbmtva291Z2lcIDsKK+S6lOi8quiBlueBqyA+IGdvcmluc2Vpa2FcIDsKK+iHquWIhuWLneaJiyA+IGppYnVua2F0dGVcIDsKK+i7jemcgOaZr+awlyA+IGd1bmp1a2Vpa2lcIDsKK+WfuuW6lemDqOmWgCA+IGtpdGVpYnVtb25cIDsKK+S4uOWkquWwj+WxiyA+IG1hcnV0YWdveWFcIDsKK+S6iOaDs+WIqeebiiA+IHlvc291cmlla2lcIDsKK+S6lOmfs+mfs+majiA+IGdvb24nJ29ua2FpXCA7CivngavmsJfljrPnpoEgPiBrYWtpZ2Vua2luXCA7CivljYHlrZfmnrblg48gPiBqdXVqaWthem91XCA7Civlh6bnkIbpgY7nqIsgPiBzaG9yaWthdGVpXCA7CivkuIDlrprkuI3lpIkgPiBpdHRlaWZ1aGVuXCA7CivmnIjkuIvnvo7kurogPiBnZWtrYWJpamluXCA7CivngKzmiLjlhoXmtbcgPiBzZXRvbmFpa2FpXCA7CivogIHmlL/msrvlrrYgPiByb3VzZWlqaWthXCA7Civlip/liKnkuLvnvqkgPiBrb3VyaXNodWdpXCA7Civopo/liLbnt6nlkowgPiBraXNlaWthbndhXCA7CivlpoLmmK/miJHogZ4gPiBueW96ZWdhbW9uXCA7CivmmI7msrvmmYLku6MgPiBtZWlqaWppZGFpXCA7CivlkIzljJbkvZznlKggPiBkb3VrYXNheW91XCA7CivliKXpgJTpoJDph5EgPiBiZXR0b3lva2luXCA7CivkuIvnqK7moLnmgKcgPiBnZXN1a29uam91XCA7Civmj7TliqnkuqTpmpsgPiBlbmpva291c2FpXCA7Civlm73kvJrorbDlk6EgPiBrb2trYWlnaWluXCA7CivlnJ/lnLDliKnnlKggPiB0b2NoaXJpeW91XCA7CivmoITmnq/nm5voobAgPiBlaWtvc2Vpc3VpXCA7Civnm7jkupLkvZznlKggPiBzb3Vnb3NheW91XCA7CivoiJ7lj7DooaPoo4UgPiBidXRhaWlzaG91XCA7CivlkIjorbDliLbluqYgPiBnb3VnaXNlaWRvXCA7Civpm4zpm4TnlbDmoKogPiBzaGl5dXVpc2h1XCA7Civlj43lsIToqqTlt64gPiBoYW5zaGFnb3NhXCA7CivloanntKDphbjloakgPiBlbnNvc2FuJydlblwgOwor57W25a++6Kqk5beuID4gemV0dGFpZ29zYVwgOwor54mp5pCN5LqL5pWFID4gYnVzc29uamlrb1wgOwor5YWo6YOo5L+d6Zm6ID4gemVuYnVob2tlblwgOwor5oKq5ber5bGx5oivID4gd2FydWZ1emFrZVwgOwor5pW05b2i5aSW56eRID4gc2Vpa2VpZ2VrYVwgOwor5q2m5a625pS/5qipID4gYnVrZXNlaWtlblwgOwor5LqM6aCF5YiG5biDID4gbmlrb3VidW5wdVwgOwor5pig55S75Lya56S+ID4gZWlnYWdhaXNoYVwgOwor6YmE56Cy55m+5ZCIID4gdGVwcG91eXVyaVwgOwor5ZCN6KqJ5Lya5ZOhID4gbWVpeW9rYWlpblwgOwor5b+c5Yuf55So57SZID4gb3Vib3lvdXNoaVwgOwor6Ieq5rWE5L2c55SoID4gamlqb3VzYXlvdVwgOwor5aSW6LKo6aCQ6YeRID4gZ2Fpa2F5b2tpblwgOwor5oGQ5oCW5pig55S7ID4ga3lvdWZ1ZWlnYVwgOwor6Kqy56iO5o6n6ZmkID4ga2F6ZWlrb3Vqb1wgOwor6Kix5a656Kqk5beuID4ga3lveW91Z29zYVwgOwor5LiN5a6a5pyf5YiRID4gZnV0ZWlraWtlaVwgOwor5piO5rK757at5pawID4gbWVpamlpc2hpblwgOwor6KiA6Kqe5qmf6IO9ID4gZ2VuZ29raW5vdVwgOwor5L+d56iO5YCJ5bqrID4gaG96ZWlzb3Vrb1wgOwor5Yy755mC5qmf6ZaiID4gaXJ5b3VraWthblwgOwor55+z5LqV6IGw5LqSID4gaXNoaWlzb3Vnb1wgOwor6LuN5LqL5bCB6Y6WID4gZ3VuamlmdXVzYVwgOwor5L2N6ZqO5Yuy562JID4gaWthaWt1bnRvdVwgOwor6ICQ54Gr54WJ55OmID4gdGFpa2FyZW5nYVwgOwor5Y+k5LuK54Sh6aGeID4ga29rb25tdXJ1aVwgOwor6Zu75rOi566h55CGID4gZGVucGFrYW5yaVwgOwor5rCR5LqL5LqL5Lu2ID4gbWluamlqaWtlblwgOwor6Ieq54S25L+d6K23ID4gc2hpemVuaG9nb1wgOwor55S75YOP5Yem55CGID4gZ2F6b3VzaG9yaVwgOwor56iu56iu6ZuR5aSaID4gc2h1anV6YXR0YVwgOwor5pig55S75L+z5YSqID4gZWlnYWhhaXl1dVwgOwor55uu6Iy255uu6Iy2ID4gbWVjaGFtZWNoYVwgOwor56OB5rCX6Yyy6Z+zID4gamlraXJva3VvblwgOwor5LiN5Y2U5ZKM6Z+zID4gZnVreW91d2FvblwgOwor5pys5L2N6KiY5Y+3ID4gaG9uJydpa2lnb3VcIDsKK+ihm+eUn+euoeeQhiA+IGVpc2Vpa2FucmlcIDsKK+ebuOS6kuS4u+e+qSA+IHNvdWdvc2h1Z2lcIDsKK+W/nOWLn+izh+mHkSA+IG91Ym9zaGlraW5cIDsKK+W+qeWPpOS4u+e+qSA+IGZ1a2tvc2h1Z2lcIDsKK+asoeS6nOehq+mFuCA+IGppYXJ5dXVzYW5cIDsKK+W5s+WuieaZguS7oyA+IGhlaWFuamlkYWlcIDsKK+aDheWgseapn+WZqCA+IGpvdWhvdWtpa2lcIDsKK+S4ieS9jeS4gOS9kyA+IHNhbm1paXR0YWlcIDsKK+aUv+WLmeasoeWumCA+IHNlaW11amlrYW5cIDsKK+mbjOmbhOeVsOS9kyA+IHNoaXl1dWl0YWlcIDsKK+atpuaWreaUv+ayuyA+IGJ1ZGFuc2VpamlcIDsKK+mFuOWMlueCree0oCA+IHNhbmthdGFuc29cIDsKK+awtOW9qeeUu+WutiA+IHN1aXNhaWdha2FcIDsKK+WfuuekjuS7o+isnSA+IGtpc290YWlzaGFcIDsKK+S4gOadr+apn+WrjCA+IGlwcGFpa2lnZW5cIDsKK+mBk+i3r+i8uOmAgSA+IGRvdXJveXVzb3VcIDsKK+S6nOeGseW4r+aelyA+IGFuZXR0YWlyaW5cIDsKK+mdkuaBr+WQkOaBryA+IGFvaWtpdG9pa2lcIDsKK+aFh+aHg+eEoeekvCA+IGluZ2luYnVyZWlcIDsKK+eznuecn+mdouebriA+IGt1c29tYWppbWVcIDsKK+iHquS4u+imj+WItiA+IGppc2h1a2lzZWlcIDsKK+W8peeUn+aZguS7oyA+IHlheW9pamlkYWlcIDsKK+ebruiMtuiLpuiMtiA+IG1lY2hha3VjaGFcIDsKK+S6iOWCmeS8muirhyA+IHlvYmlrYWlkYW5cIDsKK+etieS9jeani+mAoCA+IHRvdWlrb3V6b3VcIDsKK+S7lua1geippuWQiCA+IHRhcnl1dWppYWlcIDsKK+WuieWumuaTjeS9nCA+IGFudGVpc291c2FcIDsKK+eEoeWEn+ihjOeCuiA+IG11c2hvdWtvdWlcIDsKK+Wkj+acn+S8keaahyA+IGtha2lreXV1a2FcIDsKK+Wkj+acn+WtpuagoSA+IGtha2lnYWtrb3VcIDsKK+Wuh+WumeWMu+WtpiA+IHVjaHV1aWdha3VcIDsKK+WQjeiqiemZpOmaiiA+IG1laXlvam90YWlcIDsKK+S6lOiHk+WFreiFkSA+IGdvem91cm9wcHVcIDsKK+Wft+ihjOWnlOWToSA+IHNoaWtrb3VpaW5cIDsKK+Wbm+mdoualmuatjCA+IHNoaW1lbnNva2FcIDsKK+WogemiqOWgguWggiA+IGlmdXVkb3Vkb3VcIDsKK+i7jeS6i+S8muitsCA+IGd1bmppa2FpZ2lcIDsKK+i3m+ihjOaZr+awlyA+IGhha291a2Vpa2lcIDsKK+mlgumjqeeyieeXhSA+IHVkb25rb2J5b3VcIDsKK+WkqeS4i+S4gOWTgSA+IHRlbmthaXBwaW5cIDsKK+WfuuWcsOmWiemOliA+IGtpY2hpaGVpc2FcIDsKK+ethuiomOeUqOWFtyA+IGhpa2tpeW91Z3VcIDsKK+iSuOawl+apn+mWoiA+IGpvdWtpa2lrYW5cIDsKK+ejgeawl+aKteaKlyA+IGppa2l0ZWlrb3VcIDsKK+S4geWtl+WumuimjyA+IHRlaWppam91Z2lcIDsKK+WbuuWumumHkeWIqSA+IGtvdGVpa2lucmlcIDsKK+i1t+WLleaZgumWkyA+IGtpZG91amlrYW5cIDsKK+iHquW3seasuueeniA+IGppa29naW1hblwgOwor5oWw5a6J5peF6KGMID4gaWFucnlva291XCA7Civpm7vmsJflmajlhbcgPiBkZW5raWtpZ3VcIDsKK+WNseapn+aJk+iAhSA+IGtpa2lkYXNoYVwgOwor5aGp5YyW5rC057SgID4gZW5rYXN1aXNvXCA7CivkurrkuovnlbDli5UgPiBqaW5qaWlkb3VcIDsKK+S6nOmJm+mJhOadvyA+IGFlbnRlcHBhblwgOwor6YGu5LqM54Sh5LqMID4gc2hhbmltdW5pXCA7CivpgbrkvJ3lnLDlm7MgPiBpZGVuY2hpenVcIDsKK+S4jeazleihjOeCuiA+IGZ1aG91a291aVwgOwor5q275L2T6YG65qOEID4gc2hpdGFpaWtpXCA7CivlhoXph47lronmiZMgPiBuYWl5YWFuZGFcIDsKK+W5s+epj+eEoeS6iyA+IGhlaW9uYnVqaVwgOwor5piO5piO5b6M5pelID4gc2hpYXNhdHRlXCA7CivkuIDmsJflkbXmiJAgPiBpa2tpa2FzZWlcIDsKK+atpuWZqOiyuOS4jiA+IGJ1a2l0YWl5b1wgOwor5LiA5aSr5aSa5aa7ID4gaXBwdXRhc2FpXCA7CivljbHmqZ/nqoHnoLQgPiBraWtpdG9wcGFcIDsKK+WMu+eZguapn+WZqCA+IGlyeW91a2lraVwgOwor5aSp5LiL54Sh5q+UID4gdGVua2FtdWhpXCA7Civmjqnorbfpg6jpmoogPiBlbmdvYnV0YWlcIDsKK+mmrOm5v+mHjumDjiA+IGJha2F5YXJvdVwgOwor5Y+j6Kqe6Iux6KqeID4ga291Z29laWdvXCA7CivpiYTngavlkbPlmYwgPiB0ZWtrYW1pc29cIDsKK+mYv+W8pemZgOe1jCA+IGFtaWRha3lvdVwgOwor6Zi/5byl6ZmA57GkID4gYW1pZGFrdWppXCA7CivlrZjlnKjmhI/nvqkgPiBzb256YWlpZ2lcIDsKK+WPiOW+k+WFhOW8nyA+IG1hdGFpdG9rb1wgOwor57695q+b5biD5ZujID4gdW1vdWZ1dG9uXCA7CivliKnlt7HkuLvnvqkgPiByaWtvc2h1Z2lcIDsKK+WWtuWIqeS4u+e+qSA+IGVpcmlzaHVnaVwgOwor54Sh5aOw5pig55S7ID4gbXVzZWllaWdhXCA7Civoo5zliqnmvKLlrZcgPiBob2pva2FuamlcIDsKK+WSjOiLsei+nuabuCA+IHdhZWlqaXNob1wgOwor5ZCM5L2N5YWD57SgID4gZG91aWdlbnNvXCA7Civlho3lvpPlhYTlvJ8gPiBmdXRhaXRva29cIDsKK+S6nOmJm+WHuOeJiCA+IGFlbnRvcHBhblwgOwor56OB5rCX5rWu5LiKID4gamlraWZ1am91XCA7CivkuI3ms5Xnp7vmsJEgPiBmdWhvdWltaW5cIDsKK+i2iuaoqeihjOeCuiA+IGVra2Vua291aVwgOwor5Li75oSP5Li7576pID4gc2h1aXNodWdpXCA7Civoh6rlt7HmpJzmn7sgPiBqaWtva2Vuc2FcIDsKK+WkmuS6i+WkmumboyA+IHRhaml0YW5hblwgOwor77yh77yi77yj6aCGID4gxJNixKtzaMSranVuXCA7CivmhI/msJfmj5rmj5ogPiBpa2l5b3V5b3VcIDsKK+WSjOiLsei+nuWFuCA+IHdhZWlqaXRlblwgOwor5LiN5oSP6Kmm6aiTID4gZnVpc2hpa2VuXCA7CivmqKHnr4ToqablkIggPiBtb2hhbmppYWlcIDsKK+S6jOmHjeavjemfsyA+IG5panV1Ym9pblwgOwor5qCE6ICA5qCE6I+vID4gZWl5b3VlaWdhXCA7Civmr43oqp7oqbHogIUgPiBib2dvd2FzaGFcIDsKK+acqOaIuOW+oeWFjSA+IGtpZG9nb21lblwgOwor6Ieq5bex55aO5aSWID4gamlrb3NvZ2FpXCA7Civln7rnpI7mjqfpmaQgPiBraXNva291am9cIDsKK+S4gOWumua4qeW6piA+IGl0dGVpb25kb1wgOwor5omL5YmN5ZGz5ZmMID4gdGVtYWVtaXNvXCA7CivlhYHmloflhYHmraYgPiBpbmJ1bmluYnVcIDsKK+iHquaatOiHquajhCA+IGppYm91amlraVwgOwor55u45pKy6YOo5bGLID4gc3Vtb3ViZXlhXCA7Civoh6rlt7Hkv53lrZggPiBqaWtvaG96b25cIDsKK+WkmuS6i+WkmuerryA+IHRhaml0YXRhblwgOwor5piO44CF5b6M5pelID4gc2hpYXNhdHRlXCA7Civmm5bmmKfmqKHns4ogPiBhaW1haW1va29cIDsKK+S6i+WLmeasoeWumCA+IGppbXVqaWthblwgOwor5rCX5a6H5bqD5aSnID4ga2l1a291ZGFpXCA7CivlpJrmlbDmhI/oposgPiB0YXN1dWlrZW5cIDsKK+atr+enkeWMu+W4qyA+IHNoaWthaXNoaVwgOwor576O5YyW6YGL5YuVID4gYmlrYXVuZG91XCA7Civoh6rlt7HkuLvnvqkgPiBqaWtvc2h1Z2lcIDsKK+Wun+ihjOWnlOWToSA+IGppa2tvdWlpblwgOwor5ZCI5rCX6YGT5a62ID4gYWlraWRvdWthXCA7Civpgbrml4/mibbliqkgPiBpem9rdWZ1am9cIDsKK+Wokee+heWPjOaouSA+IHNhcmFzb3VqdVwgOwor5oSP5rCX5o+a44CFID4gaWtpeW91eW91XCA7Civoh6rlt7HpoZXnpLogPiBqaWtva2VuamlcIDsKK+iHquW3seiyoOaLhSA+IGppa29mdXRhblwgOwor6Zyy5aSp6aKo5ZGCID4gcm90ZW5idXJvXCA7CivmhI/msJfmipXlkIggPiBpa2l0b3Vnb3VcIDsKK+mBi+WQpuWkqeizpiA+IHVucHV0ZW5wdVwgOwor5a+M5qCE6aSK5YyWID4gZnVlaXlvdWthXCA7CivljbDluqbmlK/pgqMgPiBpbmRvc2hpbmFcIDsKK+asp+WMluS4u+e+qSA+IG91a2FzaHVnaVwgOwor54Sh5LqM54Sh5LiJID4gbXVuaW11emFuXCA7CivkuInml6XkuInlpJwgPiBtaWtrYW1peW9cIDsKK+eJoeS4uea1t+iAgSA+IGJvdGFuJydlYmlcIDsKK+mbu+awl+apn+WZqCA+IGRlbmtpa2lraVwgOwor6Ieq5bex5auM5oKqID4gamlrb2tlbicnb1wgOwor5Z+65pys5ZCI5oSPID4ga2lob25nb3VpXCA7CivlsI/lhZDnp5HljLsgPiBzaG91bmlrYWlcIDsKK+aIkeatpuiAhee+hSA+IGdhbXVzaGFyYVwgOwor6Ieq5bex54qg54myID4gamlrb2dpc2VpXCA7Civnm7jkupLmibbliqkgPiBzb3Vnb2Z1am9cIDsKK+WQjOmfs+eVsOe+qSA+IGRvdW9uJydpZ2lcIDsKK+iHquW3seacrOS9jSA+IGppa29ob24nJ2lcIDsKK+eVsOW4uOmrmOa4qSA+IGlqb3Vrb3VvblwgOwor6LuN5LqL5o+05YqpID4gZ3VuamllbmpvXCA7CivlvIrooaPnoLTluL0gPiBoZWlpaGFib3VcIDsKK+S4g+S6lOS4iee4hCA+IHNoaW1lbmF3YVwgOwor5paH5YyW6YG655SjID4gYnVua2Fpc2FuXCA7Civlj4jlvpPlp4nlprkgPiBtYXRhaXRva29cIDsKK+iHquWutuWPl+eyviA+IGppa2FqdXNlaVwgOwor6Ieq5a625Y+X57KJID4gamlrYWp1ZnVuXCA7CivmsJHnlJ/lp5Tlk6EgPiBtaW5zZWlpaW5cIDsKK+aEm+S7luS4u+e+qSA+IGFpdGFzaHVnaVwgOwor5LiA5YWa5LiA5rS+ID4gaXR0b3VpcHBhXCA7CivmgKrlpYfmmKDnlLsgPiBrYWlraWVpZ2FcIDsKK+mHiOi/pueJn+WwvCA+IHNoYWthbXVuaVwgOwor56S+5Lya57WM5riIID4gc2hha2Fpa2VpXCA7CivntZDot4/otrrluqcgPiBrZWtrYWZ1emFcIDsKK+iTlum6u+WtkOayuSA+IGhpbWFzaGl5dVwgOwor5aSp5rCX5YW35ZCIID4gdGVua2lndWFpXCA7CivkuIDlj6PlkIzpn7MgPiBpa2t1ZG91b25cIDsKK+S4jeWPr+aAneitsCA+IGZ1a2FzaGlnaVwgOwor5Yy75LqL5Lyd6YGTID4gaWppZGVuZG91XCA7Civpn7Ppg6joqJjlj7cgPiBvbmJ1a2lnb3VcIDsKK+WliOiJr+aZguS7oyA+IG5hcmFqaWRhaVwgOwor6ICz6by75ZK95ZaJID4gamliaWlua291XCA7CivnqbrmsJfmsZrmn5MgPiBrdXVraW9zZW5cIDsKK+eDj+W4veWtkOiynSA+IGVib3NoaWdhaVwgOwor5pyJ6LGh54Sh6LGhID4gdXpvdW11em91XCA7CivotbfoqLTnjLbkuoggPiBraXNveXV1eW9cIDsKK+S8iuWLouelnuWuriA+IGlzZWppbmd1dVwgOwor5bC45L2N57Sg6aSQID4gc2hpaXNvc2FuXCA7Civph47lpKnpoqjlkYIgPiBub3RlbmJ1cm9cIDsKK+eEoeeQhueEoeS9kyA+IG11cmltdXRhaVwgOwor5oSP5rCX6LuS6auYID4gaWtpa2Vua291XCA7Civoqp7lsL7lpInljJYgPiBnb2JpaGVua2FcIDsKK+S5neWIhuS5neWOmCA+IGt1YnVrdXJpblwgOwor6Ieq5bex6KaP5Yi2ID4gamlrb2tpc2VpXCA7CivlkIzlp5Tlk6HkvJogPiBkb3VpaW5rYWlcIDsKK+aymee+heWPjOaouSA+IHNhcmFzb3VqdVwgOwor5LiA5aa75aSa5aSrID4gaXNzYWl0YWZ1XCA7CivkuI3mraPooYzngrogPiBmdXNlaWtvdWlcIDsKK+ePvueKtue2reaMgSA+IGdlbmpvdWlqaVwgOwor576O6L6e6bqX5Y+lID4gYmlqaXJlaWt1XCA7CivkuI3oqIDkuI3oqp4gPiBmdWdlbmZ1Z29cIDsKK+S4i+mDqOapn+mWoiA+IGthYnVraWthblwgOwor5YCL5Lq66Kqk5beuID4ga29qaW5nb3NhXCA7Civoh6rnlLHmhI/lv5cgPiBqaXl1dWlzaGlcIDsKK+S6jOasoeiomOaGtiA+IG5pamlraW9rdVwgOwor5Yy65Lya6K2w5ZOhID4ga3VrYWlnaWluXCA7Civlj6TkuovoqJjkvJ0gPiBrb2ppa2lkZW5cIDsKK+eEoeeCuueEoeetliA+IG11aW11c2FrdVwgOwor5bCP55Sf5oSP5rCXID4ga29uYW1haWtpXCA7CivmsZrmn5PpmaTljrsgPiBvc2Vuam9reW9cIDsKK+aJtumkiue+qeWLmSA+IGZ1eW91Z2ltdVwgOwor5pOs5Y+k5Li7576pID4gZ2lrb3NodWdpXCA7CivkuZ3lr7jkupTliIYgPiBrdXN1bmdvYnVcIDsKK+aEj+awl+i7kuaYgiA+IGlraWtlbmtvdVwgOwor5aWz6YOO6JyY6JubID4gam9yb3VndW1vXCA7CivkuI3pmo/mhI/nrYsgPiBmdXp1aWlraW5cIDsKK+enu+ihjOacn+mWkyA+IGlrb3VraWthblwgOwor5LuY5Yqg5L6h5YCkID4gZnVrYWthY2hpXCA7CivlnJ/lo4zmsZrmn5MgPiBkb2pvdW9zZW5cIDsKK+S4iumZouitsOWToSA+IGpvdWluZ2lpblwgOwor5b6h5a626aiS5YuVID4gb2llc291ZG91XCA7CivkuozluqbkuInluqYgPiBuaWRvc2FuZG9cIDsKK+mrmOellumgreW3viA+IGtvc296dWtpblwgOwor5LqI5YKZ6YOo5ZOBID4geW9iaWJ1aGluXCA7Civoh6rlt7HmibnliKQgPiBqaWtvaGloYW5cIDsKK+iHqueUu+iHquizmyA+IGppZ2FqaXNhblwgOwor6Ieq55S76Ieq6K6aID4gamlnYWppc2FuXCA7CivpppbkvY3miZPogIUgPiBzaHVpZGFzaGFcIDsKK+WboOaenOW/nOWgsSA+IGluZ2FvdWhvdVwgOwor5LiL5aWz5LiL55S3ID4gZ2Vqb2dlbmFuXCA7Civlronmpb3mpIXlrZAgPiBhbnJha3Vpc3VcIDsKK+WnlOWToeS7mOiolyA+IGlpbmZ1dGFrdVwgOwor5LqI5YKZ6YGL5YuVID4geW9iaXVuZG91XCA7CivpgbrnlKPnrqHnkIYgPiBpc2Fua2FucmlcIDsKK+S6ieitsOihjOeCuiA+IHNvdWdpa291aVwgOwor6bq75amG6LGG6IWQID4gbcSBYm9kb3VmdVwgOwor5paH5YyW5pig55S7ID4gYnVua2FlaWdhXCA7CivmhI/lkbPlhoXlrrkgPiBpbWluYWl5b3VcIDsKK+S6iOWCmeWIpOS6iyA+IHlvYmloYW5qaVwgOwor5q2m5a625pmC5LujID4gYnVrZWppZGFpXCA7CivljLvnmYLpgY7oqqQgPiBpcnlvdWthZ29cIDsKK+atpuWutuaUv+ayuyA+IGJ1a2VzZWlqaVwgOwor5aWz546L6Zmb5LiLID4gam9vdWhlaWthXCA7CivlpKfmsJfmsZrmn5MgPiB0YWlraW9zZW5cIDsKK+WfuuekjuW3peS6iyA+IGtpc29rb3VqaVwgOwor54Sh55CG5b6A55SfID4gbXVyaW91am91XCA7CivkvZXmmYLmmYLliIYgPiBpdHN1amlidW5cIDsKK+ebuOS6kuS+neWtmCA+IHNvdWdvaXpvblwgOwor6Kqe5b2Z6KaP5YmHID4gZ29pa2lzb2t1XCA7Civoh6rlt7HlvIHorbcgPiBqaWtvYmVuZ29cIDsKK+S6lOWNgemfs+WbsyA+IGdvanV1b256dVwgOwor5Yip5LuW5Li7576pID4gcml0YXNodWdpXCA7CivliqDmjIHnpYjnpbcgPiBrYWppa2l0b3VcIDsKK+iKseWNieWckuiKuCA+IGtha2llbmdlaVwgOwor5ZKM6KO96Iux6KqeID4gd2FzZWllaWdvXCA7Civku67lkI3miYvmnKwgPiBrYW5hZGVob25cIDsKK+iLseWSjOi+nuWFuCA+IGVpd2FqaXRlblwgOwor5LqI5YKZ5Lya6K2wID4geW9iaWthaWdpXCA7CivkuozpmaLliLbluqYgPiBuaWluc2VpZG9cIDsKK+Wkj+acn+aZgumWkyA+IGtha2lqaWthblwgOwor5LqV5oi45bGL5b2iID4gaWRveWFrYXRhXCA7Civoh6rlt7Hnn5vnm74gPiBqaWtvbXVqdW5cIDsKK+WNseapn+euoeeQhiA+IGtpa2lrYW5yaVwgOwor5Z+656SO5L2T5ripID4ga2lzb3RhaW9uXCA7Civnm4LomK3nm4bkvJogPiB1cmFib24nJ2VcIDsKK+WMu+enkeatr+enkSA+IGlrYXNoaWthXCA7CivkuozluqbmiYvplpMgPiBuaWRvZGVtYVwgOwor5LqO6Jit55uG5LyaID4gdXJhYm9uJydlXCA7CivmgbXmr5Tlr7/poZQgPiBlYmlzdWdhb1wgOwor5oSa5Zuz5oSa5ZuzID4gZ3V6dWd1enVcIDsKK+WSjOawl+iXueiXuSA+IHdha2lhaWFpXCA7CivkuI3nnJ/pnaLnm64gPiBmdW1hamltZVwgOwor5b6X5omL5Yud5omLID4gZXRla2F0dGVcIDsKK+WvhOS7mOihjOeCuiA+IGtpZnVrb3VpXCA7CivkuY7lj6TmraLngrkgPiBva290b3RlblwgOwor5a+M5aOr5LqU5rmWID4gZnVqaWdva29cIDsKK+aYr+aYr+mdnumdniA+IHplemVoaWhpXCA7CivmiJHliKnmiJHliKkgPiBnYXJpZ2FyaVwgOwor5rGf5oi45pmC5LujID4gZWRvamlkYWlcIDsKK+atr+enkeWMu+mZoiA+IHNoaWthaWluXCA7CivmhI/msJfpmLvllqogPiBpa2lzb3NvdVwgOwor6YGV54qv6KGM54K6ID4gaWhhbmtvdWlcIDsKK+aBteavlOmgiOismyA+IGViaXN1a291XCA7CivkuIDmrankuIDmrakgPiBpcHBvaXBwb1wgOwor5ZKM5rCX6Je544CFID4gd2FraWFpYWlcIDsKK+eEoeacn+W7tuacnyA+IG11a2llbmtpXCA7CivotaTps6XotaTohbkgPiBha2Frb2trb1wgOwor5aSp54i+5LmO5rOiID4gdGVuaXdvaGFcIDsKK+S+neaAmei0lOWxkyA+IGVrb2hpaWtpXCA7Civkuovli5nmqZ/lmaggPiBqaW11a2lraVwgOwor6Ieq5bex5pqX56S6ID4gamlrb2FuamlcIDsKK+S8r+WJjOilv+eIviA+IGJ1cmFqaXJ1XCA7CivkuIvpmaLorbDlk6EgPiBrYWluZ2lpblwgOwor6Zu75rCX5qSF5a2QID4gZGVua2lpc3VcIDsKK+W5s+WSjOe2reaMgSA+IGhlaXdhaWppXCA7CivmnInngrrou6LlpIkgPiB1aXRlbnBlblwgOwor6Iux5bCP5paH5a2XID4gZWlrb21vamlcIDsKK+S9leWHpuWFtuWHpiA+IGRva29zb2tvXCA7CivlvJbniL7kuY7ms6IgPiB0ZW5pd29oYVwgOwor5Ye65p2l5YW35ZCIID4gZGVraWd1YWlcIDsKK+aEj+WRs+mDqOmWgCA+IGltaWJ1bW9uXCA7CivlnJ/lt6booZvploAgPiBkb3phZW1vblwgOwor5oSP5ZGz5Y6f55CGID4gaW1pZ2VucmlcIDsKK+S+neS8sOi0lOWxkyA+IGVrb2hpaWtpXCA7Civlqabkurrnp5HljLsgPiBmdWppbmthaVwgOwor54OP5bi95a2Q5ZCNID4gZWJvc2hpbmFcIDsKK+miqOmCquawl+WRsyA+IGthemVnaW1pXCA7Civlt6bpoaflj7PnnIQgPiBzYWtvdWJlblwgOwor5Luu5ZCN5paH5a2XID4ga2FuYW1vamlcIDsKK+WcsOS4i+i2s+iiiyA+IGppa2F0YWJpXCA7CivlpKfnnJ/pnaLnm64gPiBvb21hamltZVwgOwor5qSc6Z2e6YGV5L2/ID4ga2ViaWlzaGlcIDsKK+W+oeeEoeaymeaxsCA+IGdvYnVzYXRhXCA7Civlj7Ppoaflt6bnnIQgPiB1a29zYWJlblwgOwor6YGV5rOV6KGM54K6ID4gaWhvdWtvdWlcIDsKK+S8muaEj+aWh+WtlyA+IGthaWltb2ppXCA7CivlkIjnuIHlpYfnuIEgPiBhaWVua2llblwgOwor55uj5p+75aeU5ZOhID4ga2Fuc2FpaW5cIDsKK+eVsOWPo+WQjOmfsyA+IGlrdWRvdW9uXCA7CivlvJXngavmuKnluqYgPiBpbmthb25kb1wgOwor6Zi/5Y+k5bGL6LKdID4gYWtveWFnYWlcIDsKK+eUn+ecn+mdouebriA+IGtpbWFqaW1lXCA7CivmmK/jgIXpnZ7jgIUgPiB6ZXplaGloaVwgOwor54Sh55CG55+i55CGID4gbXVyaXlhcmlcIDsKK+ekuuWogemBi+WLlSA+IGppaXVuZG91XCA7CivkuIDlpKvkuIDlqaYgPiBpcHB1aXBwdVwgOwor5LqU5YiG5LqU5YiGID4gZ29idWdvYnVcIDsKK+WkqeeIvumBoOazoiA+IHRlbml3b2hhXCA7Civlvozps6Xnvr3pmaIgPiBnb3RvYmFpblwgOwor5pyJ6IC254Sh6IC2ID4gdXlhbXV5YVwgOwor5Lqc57Gz5Yip5YqgID4gYW1lcmlrYVwgOwor6I2P6IOh6bq75rK5ID4gZWdvbWF5dVwgOwor55qu6Iaa56eR5Yy7ID4gaGlmdWthaVwgOwor5Y+z5b6A5bem5b6AID4gdW91c2FvdVwgOwor5Lqc6bq75LuB5rK5ID4gYW1hbml5dVwgOwor6Zqc5rOl54OP6LOKID4gYW9yaWlrYVwgOwor5b6h5oqr6Zyy55uuID4gb2hpcm9tZVwgOwor6LWk5ZWE5pyo6bOlID4gYWthZ2VyYVwgOwor5L+d6K235aeU5ZOhID4gaG9nb2lpblwgOwor6Zi/5byX5Yip5YqgID4gYWZ1cmlrYVwgOwor5LuK5pel5piO5pelID4ga3lvdWFzdVwgOwor5Lqc5ouJ5q+Y5LqcID4gYXJhYmlhXCA7CivkvIrli6LmtbfogIEgPiBpc2VlYmlcIDsKK+S6nOWJjOavlOS6nCA+IGFyYWJpYVwgOwor57eR5ZWE5pyo6bOlID4gYW9nZXJhXCA7CivlvqHnm67opovlvpcgPiBvbWVtaWVcIDsKK+Wvv+aVmeWupCA+IGtvdG9idWtpa3lvdXNoaXRzdVwgOwor56eB5bCP6KqsID4gd2F0YWt1c2hpc2hvdXNldHN1XCA7CivkuIPkuIPml6UgPiBzaGljaGlzaGljaGluaWNoaVwgOwor57Sr6Zyy6I2JID4gbXVyYXNha2l0c3V5dWt1c2FcIDsKK+S4g+OAheaXpSA+IHNoaWNoaXNoaWNoaW5pY2hpXCA7Civou73lj6PoqbEgPiBrYXJ1a3VjaGliYW5hc2hpXCA7CivmpI3nianos6ogPiBzaG9rdWJ1dHN1c2hpdHN1XCA7Civlrr/nm7TlrqQgPiBzaHVrdWNob2t1c2hpdHN1XCA7CivkuIDlj6PoqbEgPiBoaXRva3VjaGliYW5hc2hpXCA7CivnrY3nlJ/mtLsgPiB0YWtlbm9rb3NlaWthdHN1XCA7CivorbLmuKHkurogPiB5dXp1cml3YXRhc2hpbmluXCA7CivlhoXluZXoqbEgPiB1Y2hpbWFrdWJhbmFzaGlcIDsKK+mbhuacreS/giA+IHNodXVzYXRzdWdha2FyaVwgOwor6YeR5qeM6aCtID4ga2FuYWR6dWNoaWF0YW1hXCA7Civlh7rmnK3mjpsgPiBzaHVzc2F0c3VnYWthcmlcIDsKK+S4ieaMh+m0jiA+IG1pdHN1eXViaWthbW9tZVwgOwor5Ye65pyt5L+CID4gc2h1c3NhdHN1Z2FrYXJpXCA7CivohbDotaTnh5UgPiBrb3NoaWFrYXRzdWJhbWVcIDsKK+iouuWvn+WupCA+IHNoaW5zYXRzdXNoaXRzdVwgOwor6K2Y5Yil5YqbID4gc2hpa2liZXRzdXJ5b2t1XCA7Civnp4Hoh6rouqsgPiB3YXRha3VzaGlqaXNoaW5cIDsKK+W5s+a4heebmyA+IHRhaXJhbm9raXlvbW9yaVwgOwor5YWl5Ye65YqbID4gbnl1dXNodXRzdXJ5b2t1XCA7CivntJvlpLHlsYogPiBmdW5zaGl0c3V0b2Rva2VcIDsKK+axguiBt+S/giA+IGt5dXVzaG9rdWdha2FyaVwgOwor6YeR5aO655y8ID4ga2FuYXRzdWJvbWFuYWtvXCA7CivpmbPliJflrqQgPiBjaGlucmV0c3VzaGl0c3VcIDsKK+eJueWIpeWupCA+IHRva3ViZXRzdXNoaXRzdVwgOwor57Sr5rC05pm2ID4gbXVyYXNha2l6dWlzaG91XCA7Civlj5bnt6DlvbkgPiB0b3Jpc2hpbWFyaXlha3VcIDsKK+eJh+WPo+mwryA+IGthdGFrdWNoaWl3YXNoaVwgOwor5LiN5YCS57+BID4gb2tpYWdhcmlrb2Jvc2hpXCA7CivkuI3ogpbnp4EgPiBmdXNob3V3YXRha3VzaGlcIDsKK+WksealreeOhyA+IHNoaXRzdWd5b3VyaXRzdVwgOwor5oq95Ye654mpID4gY2h1dXNodXRzdWJ1dHN1XCA7CivlpbPlj4vpgZQgPiBvbicnbmF0b21vZGFjaGlcIDsKK+eZvuaXpeWSsyA+IGh5YWt1bmljaGl6ZWtpXCA7CivooYzliJflvI8gPiBneW91cmV0c3VzaGlraVwgOwor5Y+W5omx5Lq6ID4gdG9yaWF0c3VrYWluaW5cIDsKK+WHuuWFpeWbvSA+IHNodXRzdW55dXVrb2t1XCA7CivmiY3mp4zpoK0gPiBzYWlkenVjaGlhdGFtYVwgOwor6YCG6Kqs55qEID4gZ3lha3VzZXRzdXRla2lcIDsKK+WJr+mjn+eJqSA+IGZ1a3VzaG9rdWJ1dHN1XCA7Civnk6Lnrqrpr7AgPiBoeW91dGFuJyduYW1henVcIDsKK+adseWNiueQgyA+IGhpZ2FzaGloYW5reXV1XCA7Civli5Xnianos6ogPiBkb3VidXRzdXNoaXRzdVwgOwor6LaK5Lit6KSMID4gZXRjaHV1ZnVuZG9zaGlcIDsKK+WNsOWNiue6jyA+IHNoaXJ1c2hpYmFudGVuXCA7Civku5XmlrnoqbEgPiBzaGlrYXRhYmFuYXNoaVwgOwor5pS55pyt5L+CID4ga2Fpc2F0c3VnYWthcmlcIDsKK+WJg+WIgOinpiA+IGthbWlzb3Jpa2FidXJlXCA7Civlo7LmuKHoqLwgPiB1cml3YXRhc2hpc2hvdVwgOwor5ZGK5Yil5byPID4ga29rdWJldHN1c2hpa2lcIDsKK+WkvumbkeeJqSA+IGt5b3V6YXRzdWJ1dHN1XCA7Civnt5Hnmb3oibIgPiByeW9rdWhha3VzaG9rdVwgOwor6Iad6Zai56+AID4gc2hpdHN1a2Fuc2V0c3VcIDsKK+aOpee2muWPoyA+IHNldHN1em9rdWd1Y2hpXCA7Civlh53nnYDlipsgPiBneW91Y2hha3VyeW9rdVwgOwor5oeQ5YuY5a6aID4gZnV0b2tvcm9rYW5qb3VcIDsKK+aPkOWHuueJqSA+IHRlaXNodXRzdWJ1dHN1XCA7Civlh7rmnK3lj6MgPiBzaHVzc2F0c3VndWNoaVwgOwor5aSp5pel55OmID4gdGVuaml0c3VnYXdhcmFcIDsKK+WkoueJqeiqniA+IHl1bWVtb25vZ2F0YXJpXCA7CivkuIDmmJTliY0gPiBoaXRvbXVrYXNoaW1hZVwgOwor55m+5Y2S6ZW3ID4gaHlha3Vzb3RzdWNob3VcIDsKK+mAhuihjOWIlyA+IGd5YWt1Z3lvdXJldHN1XCA7Civml63ml6Xnq6AgPiBreW9rdWppdHN1c2hvdVwgOwor5bm85Y+L6YGUID4gb3NhbmF0b21vZGFjaGlcIDsKK+Wwu+i7veWlsyA+IHNoaXJpZ2FydW9uJyduYVwgOwor55m96Ymi5be7ID4gc2hpcm9oYWNoaW1ha2lcIDsKK+iWhOe0q+iJsiA+IHVzdW11cmFzYWtpaXJvXCA7Civlh7rloYHnjocgPiBzaHV0c3VydWlyaXRzdVwgOwor6Zu75L+h5p+xID4gZGVuc2hpbmJhc2hpcmFcIDsKK+WGheiovOipsSA+IG5haXNob3ViYW5hc2hpXCA7Civnt5Hnjonnn7MgPiByeW9rdWd5b2t1c2VraVwgOwor6Iad6JOL6aqoID4gc2hpdHN1Z2Fpa290c3VcIDsKK+S7ruWHuueNhCA+IGthcmlzaHV0c3Vnb2t1XCA7CivnibnliKXogbcgPiB0b2t1YmV0c3VzaG9rdVwgOwor5ZG96L6b6L6bID4gaW5vY2hpZ2FyYWdhcmFcIDsKK+i7ouWFpeWxiiA+IHRlbicnbnl1dXRvZG9rZVwgOwor5Y+X5LuY5L+CID4gdWtldHN1a2VnYWthcmlcIDsKK+WwseiBt+eOhyA+IHNodXVzaG9rdXJpdHN1XCA7CivntabmlpnooosgPiBreXV1cnlvdWJ1a3Vyb1wgOwor5qSN54mp5a2mID4gc2hva3VidXRzdWdha3VcIDsKK+Wkp+WSjOmtgiA+IHlhbWF0b2RhbWFzaGlpXCA7CivkuIvlj7DmiYAgPiBzaGltb2RhaWRva29yb1wgOwor5bCx6IG35Y+jID4gc2h1dXNob2t1Z3VjaGlcIDsKK+eti+iCieizqiA+IGtpbicnbmlrdXNoaXRzdVwgOwor5Yqb5LuV5LqLID4gY2hpa2FyYXNoaWdvdG9cIDsKK+WroeWHuuWtkCA+IGNoYWt1c2h1dHN1c2hpXCA7CivniYfoopbmnLogPiBrYXRhc29kZWR6dWt1ZVwgOwor5Y2S5qWt5byPID4gc290c3VneW91c2hpa2lcIDsKK+WFiemAmuS/oSA+IGhpa2FyaXRzdXVzaGluXCA7Civlj5bnt6Dms5UgPiB0b3Jpc2hpbWFyaWhvdVwgOwor5omL6KGT5a6kID4gc2h1anV0c3VzaGl0c3VcIDsKK+ippuedgOWupCA+IHNoaWNoYWt1c2hpdHN1XCA7CivniIbnmbrniakgPiBiYWt1aGF0c3VidXRzdVwgOwor54yq5q2m6ICFID4gaW5vc2hpc2hpbXVzaGFcIDsKK+Wkp+m7kuafsSA+IGRhaWtva3ViYXNoaXJhXCA7CivpjpbluLflrZAgPiBrdXNhcmlrYXRhYmlyYVwgOwor5LiN6Lq+6ICFID4gYnVzaGl0c3VrZW1vbm9cIDsKK+S4ieiJsuiPqyA+IHNhbnNob2t1c3VtaXJlXCA7Civlkb3ovpvjgIUgPiBpbm9jaGlnYXJhZ2FyYVwgOwor5Ye65Yqb57eaID4gc2h1dHN1cnlva3VzZW5cIDsKK+eIhueZuuWKmyA+IGJha3VoYXRzdXJ5b2t1XCA7CivnnYDkv6HlsYAgPiBjaGFrdXNoaW5reW9rdVwgOwor5o6S5Ye654mpID4gaGFpc2h1dHN1YnV0c3VcIDsKK+mJseeJqeizqiA+IGtvdWJ1dHN1c2hpdHN1XCA7CivmjK/lh7rlsYAgPiBmdXJpZGFzaGlreW9rdVwgOwor5Z+35YuZ5a6kID4gc2hpdHN1bXVzaGl0c3VcIDsKK+eZuueGsemHjyA+IGhhdHN1bmV0c3VyeW91XCA7CivlpKflhavou4ogPiBkYWloYWNoaWd1cnVtYVwgOwor55u05o6l55qEID4gY2hva3VzZXRzdXRla2lcIDsKK86455CG6KuWID4gc2hpXCDMhHRhXCDMhHJpcm9uXCA7CivmlLnmnK3pi48gPiBrYWlzYXRzdWhhc2FtaVwgOwor5LiN5p2f6ICFID4gZnV0c3V0c3VrYW1vbm9cIDsKK+eHleWNg+mzpSA+IHRzdWJhbWVjaGlkb3JpXCA7CivkvJHmhqnlrqQgPiBreXV1a2Vpc2hpdHN1XCA7Civml6XmsqHliY0gPiBuaWNoaWJvdHN1emVuXCA7Civni5DmoLzlrZAgPiBraXRzdW5lZ291c2hpXCA7CivplrLopqflrqQgPiBldHN1cmFuc2hpdHN1XCA7Civlu7rnr4nniakgPiBrZW5jaGlrdWJ1dHN1XCA7Civlrp/os6rnmoQgPiBqaXNzaGl0c3V0ZWtpXCA7Civnv4zjgIXml6UgPiB5b2t1eW9rdWppdHN1XCA7CivoqabogbTlrqQgPiBzaGljaG91c2hpdHN1XCA7Civlj6TlvLfogIUgPiBmdXJ1dHN1d2Ftb25vXCA7Civni7jlm4PlrZAgPiB0YW51a2liYXlhc2hpXCA7CivmpI3mr5vooZMgPiBzaG9rdW1vdWp1dHN1XCA7Civml6fmraPmnIggPiBreXV1c2hvdWdhdHN1XCA7CivkuLjpvLvonIIgPiBtYXJ1aGFuYWJhY2hpXCA7CivohJroibLogIUgPiBreWFrdXNob2t1c2hhXCA7CivmnbHmtbflsrggPiBoaWdhc2hpa2FpZ2FuXCA7Civnm7Tnq4vojI4gPiBjaG9rdXJpdHN1a2VpXCA7Civnmb3pm6rlp6sgPiBzaGlyYXl1a2loaW1lXCA7Civmlq3nhrHnmoQgPiBkYW4nJ25ldHN1dGVraVwgOwor5rOl57iE5byPID4gZG9yb25hd2FzaGlraVwgOwor6Kaz6Zay5byPID4ga2FuJydldHN1c2hpa2lcIDsKK+WQuOa5v+aApyA+IGt5dXVzaGl0c3VzZWlcIDsKK+a2iOalteeahCA+IHNob3VreW9rdXRla2lcIDsKK+a8gua1geeJqSA+IGh5b3VyeXV1YnV0c3VcIDsKK+S4i+S6jOahgSA+IHNoaW1vZnV0YWtldGFcIDsKK+aGgumsseizqiA+IHl1dXV0c3VzaGl0c3VcIDsKK+S/hOaIkOmHkSA+IG5pd2FrYW5hcmlraW5cIDsKK+WPjuepq+eJqSA+IHNodXVrYWt1YnV0c3VcIDsKK+iyuOS7mOmHkSA+IGthc2hpdHN1a2VraW5cIDsKK+WLleeJqemBlCA+IGRvdWJ1dHN1dGFjaGlcIDsKK+mjn+ezp+W6gSA+IHNob2t1cnlvdWNob3VcIDsKK+iFuueXheizqiA+IHNlbmJ5b3VzaGl0c3VcIDsKK+awkee0hOiqrCA+IG1pbicneWFrdXNldHN1XCA7CivlkLjmub/liaQgPiBreXV1c2hpdHN1emFpXCA7CivkuoznrYvpgZMgPiBmdXRhc3VqaW1pY2hpXCA7CivljYrplbfpnbQgPiBoYW4nJ25hZ2FndXRzdVwgOwor5qCh6ZW35a6kID4ga291Y2hvdXNoaXRzdVwgOwor5rG65pat5YqbID4ga2V0c3VkYW5yeW9rdVwgOwor5beu5Ye65Lq6ID4gc2FzaGlkYXNoaW5pblwgOwor5LiD5puc6KGoID4gc2hpY2hpeW91aHlvdVwgOwor54Gw57eR6ImyID4ga2Fpcnlva3VzaG9rdVwgOwor5pys6LOq55qEID4gaG9uc2hpdHN1dGVraVwgOwor5rGC5b+D5YqbID4ga3l1dXNoaW5yeW9rdVwgOwor57WQ5Zuj5byPID4ga2V0c3VkYW5zaGlraVwgOwor5pS55pyt5Y+jID4ga2Fpc2F0c3VndWNoaVwgOwor57mB5q6W5YqbID4gaGFuc2hva3VyeW9rdVwgOwor5ZuD5a2Q6KmeID4gaGF5YXNoaWtvdG9iYVwgOwor5Lq65beu5oyHID4gaGl0b3Nhc2hpeXViaVwgOwor5LiD6Z2i6bOlID4gc2hpY2hpbWVuY2hvdVwgOwor55m66KiA5YqbID4gaGF0c3VnZW5yeW9rdVwgOwor5Ye65LiW6aCtID4gc2h1c3NlZ2FzaGlyYVwgOwor6ZuG5Lit5YqbID4gc2h1dWNodXVyeW9rdVwgOwor5bGI6L6x55qEID4ga3V0c3Vqb2t1dGVraVwgOwor5ZWG5aOy5pW1ID4gc2hvdWJhaWdhdGFraVwgOwor5Ye655Sf5bGKID4gc2h1c3NlaXRvZG9rZVwgOwor6ISx542E5ZuaID4gZGF0c3Vnb2t1c2h1dVwgOwor5Y+k5q2m5aOrID4gZnVydXRzdXdhbW9ub1wgOwor5Zyf55Sj6KmxID4gbWl5YWdlYmFuYXNoaVwgOwor55m96KOF5p2fID4gc2hpcm9zaG91em9rdVwgOwor6IWw5be+552AID4ga29zaGlnaW5jaGFrdVwgOwor5Y2K54af5Y21ID4gaGFuanVrdXRhbWFnb1wgOwor5rKh5bi46K2YID4gYm90c3Vqb3VzaGlraVwgOwor6ZuG5aG16KKLID4gc2h1dWppbmJ1a3Vyb1wgOwor5LiJ5LiL5aW0ID4gc2Fuc2hpdGF5YWtrb1wgOwor5Zyw6LOq5a2mID4gY2hpc2hpdHN1Z2FrdVwgOwor5qW95bGL6KmxID4gZ2FrdXlhYmFuYXNoaVwgOwor5by35aWq54mpID4gZ291ZGF0c3VidXRzdVwgOwor6ZaR5pel5pyIID4ga2Fuaml0c3VnZXRzdVwgOwor5oyR55m655qEID4gY2hvdWhhdHN1dGVraVwgOwor56Wd56Wt5pelID4gc2h1a3VzYWlqaXRzdVwgOwor5b2r5Yi76KGTID4gY2hvdWtva3VqdXRzdVwgOwor5Lit56uL5Zu9ID4gY2h1dXJpdHN1a29rdVwgOwor5Zar54WZ5a6kID4ga2l0c3VlbnNoaXRzdVwgOwor5LiA5Lih5pelID4gaWNoaXJ5b3VqaXRzdVwgOwor5qmL6ISa6IifID4ga3lvdWt5YWt1c2h1dVwgOwor5rys54mp55+zID4gdHN1a2Vtb25vaXNoaVwgOwor5aSW5Ye65LitID4gZ2Fpc2h1dHN1Y2h1dVwgOwor6YmE5p+T6ImyID4gdGV0c3VzZW5zaG9rdVwgOwor54us56uL5b+DID4gZG9rdXJpdHN1c2hpblwgOwor5LuK5pyI5pyrID4ga29uZ2V0c3VtYXRzdVwgOwor5a6f54mp5aSnID4gaml0c3VidXRzdWRhaVwgOwor5ou+5b6X54mpID4gc2h1dXRva3VidXRzdVwgOwor5YCJ5pW35paZID4ga3VyYXNoaWtpcnlvdVwgOwor6LOH5paZ5a6kID4gc2hpcnlvdXNoaXRzdVwgOwor6LK354mp6KKLID4ga2FpbW9ub2J1a3Vyb1wgOwor5ZC45Y+O5YqbID4ga3l1dXNodXVyeW9rdVwgOwor54us56uL5Zu9ID4gZG9rdXJpdHN1a29rdVwgOwor6KGA5bC/55eHID4ga2V0c3VueW91c2hvdVwgOwor5b2r5Yi754mpID4gY2hvdWtva3VidXRzdVwgOwor5aCq5b+N6KKLID4ga2FuJyduaW5idWt1cm9cIDsKK+ekvumVt+WupCA+IHNoYWNob3VzaGl0c3VcIDsKK+S4vOWLmOWumiA+IGRvbmJ1cmlrYW5qb3VcIDsKK+eOieWtkOS4vCA+IHRhbWFnb2RvbmJ1cmlcIDsKK+e4ruWIt+eJiCA+IHNodWt1c2F0c3ViYW5cIDsKK+S7iuaXpeeahCA+IGtvbicnbmljaGl0ZWtpXCA7CivmtJ7lr5/lipsgPiBkb3VzYXRzdXJ5b2t1XCA7Civmnb7po5/omasgPiBtYXRzdWt1aW11c2hpXCA7CivoiovolJPlvI8gPiBpbW9kenVydXNoaWtpXCA7Civos6rph4/mlbAgPiBzaGl0c3VyeW91c3V1XCA7CivliKXphY3pgZQgPiBiZXRzdWhhaXRhdHN1XCA7Civku4rml6Xmp5ggPiBrb24nJ25pY2hpc2FtYVwgOwor5Yag5aSn5LyaID4ga2FubXVyaXRhaWthaVwgOwor6L+96KSH5puyID4gdHN1aWZ1a3VreW9rdVwgOwor57WE5ZCI6aCtID4ga3VtaWFpZ2FzaGlyYVwgOwor5pWj5q2p5peBID4gc2FucG9rYXRhZ2F0YVwgOwor5L6b6KiX54mpID4ga3lvdXRha3VidXRzdVwgOwor5Ye66aGY5Lq6ID4gc2h1dHN1Z2FuJyduaW5cIDsKK+eymOedgOWKmyA+IG5lbmNoYWt1cnlva3VcIDsKK+Wuv+aziuaWmSA+IHNodWt1aGFrdXJ5b3VcIDsKK+aeneWeguahnCA+IHNoaWRhcmV6YWt1cmFcIDsKK+WPpOS7o+e0qyA+IGtvZGFpbXVyYXNha2lcIDsKK+aeneWeguafsyA+IHNoaWRhcmV5YW5hZ2lcIDsKK+a3see3keiJsiA+IGZ1a2FtaWRvcmlpcm9cIDsKK+epjembqumHjyA+IHNla2lzZXRzdXJ5b3VcIDsKK+eglOeptuWupCA+IGtlbmt5dXVzaGl0c3VcIDsKK+W3peS9nOWupCA+IGtvdXNha3VzaGl0c3VcIDsKK+S9nOWKh+ihkyA+IHNha3VnZWtpanV0c3VcIDsKK+efreaXpeaciCA+IHRhbmppdHN1Z2V0c3VcIDsKK+i7iuaOjOWupCA+IHNoYXNob3VzaGl0c3VcIDsKK+iouuWvn+aWmSA+IHNoaW5zYXRzdXJ5b3VcIDsKK+S/uOe1puiiiyA+IGhvdWt5dXVidWt1cm9cIDsKK+a2iOWkseeCuSA+IHNob3VzaGl0c3V0ZW5cIDsKK+iqreabuOWupCA+IGRva3VzaG9zaGl0c3VcIDsKK+Wuv+aziuWFiCA+IHNodWt1aGFrdXNha2lcIDsKK+itmOWIpeWtkCA+IHNoaWtpYmV0c3VzaGlcIDsKK+WNl+WNiueQgyA+IG1pbmFtaWhhbmt5dXVcIDsKK+iBt+WToeWupCA+IHNob2t1aW5zaGl0c3VcIDsKK+S/oeeOhOiiiyA+IHNoaW5nZW5idWt1cm9cIDsKK+aBi+eJqeiqniA+IGtvaW1vbm9nYXRhcmlcIDsKK+S4gOeykueoriA+IGhpdG90c3VidWRhbmVcIDsKK+e3keafseefsyA+IHJ5b2t1Y2h1dXNla2lcIDsKK+aYlOawl+izqiA+IG11a2FzaGlrYXRhZ2lcIDsKK+S/hOWLieW8tyA+IG5pd2FrYWJlbmt5b3VcIDsKK+mAsuWtpueOhyA+IHNoaW5nYWt1cml0c3VcIDsKK+auv+anmOibmSA+IHRvbm9zYW1hZ2FlcnVcIDsKK+mdmeiEiOihgCA+IGpvdW15YWt1a2V0c3VcIDsKK+S4gOeti+mBkyA+IGhpdG9zdWppbWljaGlcIDsKK+WwsealreeOhyA+IHNodXVneW91cml0c3VcIDsKK+WGhee3kuipsSA+IG5haXNob2JhbmFzaGlcIDsKK+i6gemsseizqiA+IHNvdXV0c3VzaGl0c3VcIDsKK+eGseWKueeOhyA+IG5ldHN1a291cml0c3VcIDsKK+ebrueahOeJqSA+IG1va3V0ZWtpYnV0c3VcIDsKK+WPjeeZuuWKmyA+IGhhbnBhdHN1cnlva3VcIDsKK+akjeeJqeiqjCA+IHNob2t1YnV0c3VzaGlcIDsKK+itpuWvn+WKmyA+IGtlaXNhdHN1cnlva3VcIDsKK+iyqOeJqeWupCA+IGthbW90c3VzaGl0c3VcIDsKK+aHkOS4remPoSA+IGthaWNodXVrYWdhbWlcIDsKK+a3oee3keiJsiA+IHRhbnJ5b2t1c2hva3VcIDsKK+Wkqeeruum8oCA+IHRlbmppa3VuZXp1bWlcIDsKK+e1seeOh+WKmyA+IHRvdXJpdHN1cnlva3VcIDsKK+Wun+mMsueJqSA+IGppdHN1cm9rdW1vbm9cIDsKK+WvhuWFpeWbvSA+IG1pdHN1bnl1dWdva3VcIDsKK+ebtOi8uOWHuiA+IGNob2t1eXVzaHV0c3VcIDsKK+aDmuawl+ipsSA+IG5vcm9rZWJhbmFzaGlcIDsKK+S8kemkiuWupCA+IGt5dXV5b3VzaGl0c3VcIDsKK+mZs+WIl+eqkyA+IGNoaW5yZXRzdW1hZG9cIDsKK+eZvuWIhueOhyA+IGh5YWt1YnVucml0c3VcIDsKK+WHuuihgOeXhyA+IHNodWtrZXRzdXNob3VcIDsKK+Wvhui8uOWHuiA+IG1pdHN1eXVzaHV0c3VcIDsKK+WIpOWIpeW8jyA+IGhhbmJldHN1c2hpa2lcIDsKK+akjeeJqeeVjCA+IHNob2t1YnV0c3VrYWlcIDsKK+eGseWKm+WtpiA+IG5ldHN1cmlraWdha3VcIDsKK+aWsOato+aciCA+IHNoaW5zaG91Z2F0c3VcIDsKK+S4u+mjn+eJqSA+IHNodXNob2t1YnV0c3VcIDsKK+mZs+WIl+ajmiA+IGNoaW5yZXRzdWRhbmFcIDsKK+mbkeWPjuWFpSA+IHphdHN1c2h1dW55dXVcIDsKK+e/jOe/jOaXpSA+IHlva3V5b2t1aml0c3VcIDsKK+ipseWNiuWIhiA+IGhhbmFzaGloYW5idW5cIDsKK+WKm+S4jei2syA+IGNoaWthcmFidXNva3VcIDsKK+WwseWtpueOhyA+IHNodXVnYWt1cml0c3VcIDsKK+awtOS4iueUuiA+IG1pbmFrYW1pbWFjaGlcIDsKK+imquWIh+W/gyA+IHNoaW5zZXRzdXNoaW5cIDsKK+WItuS9nOWupCA+IHNlaXNha3VzaGl0c3VcIDsKK+WNs+eJqeeahCA+IHNva3VidXRzdXRla2lcIDsKK+axsuWPluWPoyA+IGt1bWl0b3JpZ3VjaGlcIDsKK+W7v+aXpem8oCA+IGhhdHN1a2FuZXp1bWlcIDsKK+e3j+mgmOWomCA+IHNvdXJ5b3VtdXN1bWVcIDsKK+S4g+emj+elniA+IHNoaWNoaWZ1a3VqaW5cIDsKK+eJueWIpeW4rSA+IHRva3ViZXRzdXNla2lcIDsKK+WkmuihgOizqiA+IHRha2V0c3VzaGl0c3VcIDsKK+aguOeIhueZuiA+IGtha3ViYWt1aGF0c3VcIDsKK+W+l+elqOeOhyA+IHRva3VoeW91cml0c3VcIDsKK+ihqOW9sOW8jyA+IGh5b3VzaG91c2hpa2lcIDsKK+WFpeWtpuW8jyA+IG55dXVnYWt1c2hpa2lcIDsKK+eBsOeZveizqiA+IGthaWhha3VzaGl0c3VcIDsKK+mjn+eUqOayuSA+IHNob2t1eW91YWJ1cmFcIDsKK+iBt+alreeahCA+IHNob2t1Z3lvdXRla2lcIDsKK+mjn+eUn+a0uyA+IHNob2t1c2Vpa2F0c3VcIDsKK+S4uOS4gOaciCA+IG1hcnVoaXRvdHN1a2lcIDsKK+iBt+alreeXhSA+IHNob2t1Z3lvdWJ5b3VcIDsKK+S4uOS4gOaXpSA+IG1hcnVpY2hpbmljaGlcIDsKK+avkueJqeWtpiA+IGRva3VidXRzdWdha3VcIDsKK+WwseiBt+WFiCA+IHNodXVzaG9rdXNha2lcIDsKK+WPo+e0hOadnyA+IGt1Y2hpeWFrdXNva3VcIDsKK+Wun+WKm+iAhSA+IGppdHN1cnlva3VzaGFcIDsKK+a5p+WHuumHjyA+IHl1dXNodXRzdXJ5b3VcIDsKK+etkuS6leetkiA+IHRzdXRzdWlkenV0c3VcIDsKK+S8muWgguWPuCA+IGthaWRvdWR6dWthc2FcIDsKK+mWk+ath+eGsSA+IGthbmtldHN1bmV0c3VcIDsKK+WTsuWtpueahCA+IHRldHN1Z2FrdXRla2lcIDsKK+iqreWUh+ihkyA+IGRva3VzaGluanV0c3VcIDsKK+mWk+asoOeGsSA+IGthbmtldHN1bmV0c3VcIDsKK+ijuOmbu+eQgyA+IGhhZGFrYWRlbmt5dXVcIDsKK+ibi+eZveizqiA+IHRhbnBha3VzaGl0c3VcIDsKK+aOkuazhOeJqSA+IGhhaXNldHN1YnV0c3VcIDsKK+mjn+iCieebriA+IHNob2t1bmlrdW1va3VcIDsKK+a0u+WLleWKmyA+IGthdHN1ZG91cnlva3VcIDsKK+S+teeVpeeahCA+IHNoaW5yeWFrdXRla2lcIDsKK+WHnembhuWKmyA+IGd5b3VzaHV1cnlva3VcIDsKK+S/hOeLguiogCA+IG5pd2FrYWt5b3VnZW5cIDsKK+eNheWtkOmgrSA+IHNoaXNoaWdhc2hpcmFcIDsKK+ims+Wvn+WKmyA+IGthbnNhdHN1cnlva3VcIDsKK+iEseWKm+aEnyA+IGRhdHN1cnlva3VrYW5cIDsKK+aUr+WHuumhjSA+IHNoaXNodXRzdWdha3VcIDsKK+Wkp+iZkOauuiA+IGRhaWd5YWt1c2F0c3VcIDsKK+WJjea4oemHkSA+IG1hZXdhdGFzaGlraW5cIDsKK+S5s+eZveiJsiA+IG55dXVoYWt1c2hva3VcIDsKK+e1gualreW8jyA+IHNodXVneW91c2hpa2lcIDsKK+eIhueZuueahCA+IGJha3VoYXRzdXRla2lcIDsKK+a4heWFg+evgCA+IGtpeW9tb3RvYnVzaGlcIDsKK+mbt+imqueItiA+IGthbWluYXJpb3lhamlcIDsKK+elnue1jOizqiA+IHNoaW5rZWlzaGl0c3VcIDsKK+aOpeedgOWKmyA+IHNldGNoYWt1cnlva3VcIDsKK+S6lOaciOW5nyA+IHNhdHN1a2lub2JvcmlcIDsKK+mAhui8uOWHuiA+IGd5YWt1eXVzaHV0c3VcIDsKK+eahOS4reeOhyA+IHRla2ljaHV1cml0c3VcIDsKK+W7uuioreiyuyA+IGtlbnNldHN1aGl5b3VcIDsKK+WxiOaKmOeOhyA+IGt1c3NldHN1cml0c3VcIDsKK+iIuemVt+WupCA+IHNlbmNob3VzaGl0c3VcIDsKK+S4u+aVmeWupCA+IHNodWt5b3VzaGl0c3VcIDsKK+WupOWGhealvSA+IHNoaXRzdW5haWdha3VcIDsKK+S6uuaDheipsSA+IG5pbmpvdWJhbmFzaGlcIDsKK+a/g+e3keiJsiA+IG5vdXJ5b2t1c2hva3VcIDsKK+W/nOaOpeWupCA+IG91c2V0c3VzaGl0c3VcIDsKK+S+teeVpeWbvSA+IHNoaW5yeWFrdWtva3VcIDsKK+S+jeawl+izqiA+IHNhbXVyYWlrYXRhZ2lcIDsKK+eUs+i+vOabuCA+IG1vdXNoaWtvbWlzaG9cIDsKK+ebtOiqrOazlSA+IGNob2t1c2V0c3Vob3VcIDsKK+S4i+eUuumiqCA+IHNoaXRhbWFjaGlmdXVcIDsKK+mjn+S4reavkiA+IHNob2t1Y2h1dWRva3VcIDsKK+eUo+WHuumrmCA+IHNhbnNodXRzdWRha2FcIDsKK+S+m+WHuuexsyA+IGt5b3VzaHV0c3VtYWlcIDsKK+Wil+ioreeOhyA+IHpvdXNldHN1cml0c3VcIDsKK+Wcp+WKm+mNiyA+IGF0c3VyeW9rdW5hYmVcIDsKK+Wbo+agl+ecvCA+IGRvbmd1cmltYW5ha29cIDsKK+Wcp+WKm+mHnCA+IGF0c3VyeW9rdWdhbWFcIDsKK+awl+WvhuWupCA+IGtpbWl0c3VzaGl0c3VcIDsKK+W/nOaOpeS/giA+IG91c2V0c3VnYWthcmlcIDsKK+Wls+aIv+ipniA+IG55b3Vib3Vrb3RvYmFcIDsKK+WIhuWIl+W8jyA+IGJ1bnJldHN1c2hpa2lcIDsKK+imquS7u+W8jyA+IHNoaW4nJ25pbnNoaWtpXCA7CivnlJ/mtLvlipsgPiBzZWlrYXRzdXJ5b2t1XCA7Civoqq3lv4PooZMgPiBkb2t1c2hpbmp1dHN1XCA7Civpp4XplbflrqQgPiBla2ljaG91c2hpdHN1XCA7Civlrrbku5jlqJggPiBpZXRzdWtpbXVzdW1lXCA7Civnmb7ml6XojYkgPiBoeWFrdW5pY2hpc291XCA7CivkuKHkuInml6UgPiByeW91c2FuJyduaWNoaVwgOwor5peX6KGM5YiXID4gaGF0YWd5b3VyZXRzdVwgOwor55yJ5ZS+54mpID4gbWF5dXRzdWJhbW9ub1wgOwor6YCy6KGM5L+CID4gc2hpbmtvdWdha2FyaVwgOwor5YuV5qSN54mpID4gZG91c2hva3VidXRzdVwgOwor5b+F6KaB54mpID4gaGl0c3V5b3VidXRzdVwgOwor5LiJ6Lu45a6kID4gc2FuamlrdXNoaXRzdVwgOwor5b6F5ZCI5a6kID4gbWFjaGlhaXNoaXRzdVwgOwor5Y2a54mp5a2mID4gaGFrdWJ1dHN1Z2FrdVwgOwor57WQ57Su6KGTID4ga2Vzc2F0c3VqdXRzdVwgOwor5re35YWl54mpID4ga29uJydueXV1YnV0c3VcIDsKK+S6uuaDheWZuiA+IG5pbmpvdWJhbmFzaGlcIDsKK+WHuuW4reeOhyA+IHNodXNzZWtpcml0c3VcIDsKK+ebtOaOpeeojiA+IGNob2t1c2V0c3V6ZWlcIDsKK+WksealreiAhSA+IHNoaXRzdWd5b3VzaGFcIDsKK+eJp+eVnOalrSA+IGJva3VjaGlrdWd5b3VcIDsKK+ani+evieeJqSA+IGtvdWNoaWt1YnV0c3VcIDsKK+ioreeri+iAhSA+IHNldHN1cml0c3VzaGFcIDsKK+i2s+mVt+icgiA+IGFzaGluYWdhYmFjaGlcIDsKK+eymOa2suizqiA+IG5lbicnZWtpc2hpdHN1XCA7Civnm7TmjqXms5UgPiBjaG9rdXNldHN1aG91XCA7Civlub3pnIroqbEgPiB5dXVyZWliYW5hc2hpXCA7CivlkIzos6rnmoQgPiBkb3VzaGl0c3V0ZWtpXCA7Civln7fnnYDlv4MgPiBzaHV1Y2hha3VzaGluXCA7CivlipvplqLkv4IgPiBjaGlrYXJha2Fua2VpXCA7Civnianos6rnmoQgPiBidXNzaGl0c3V0ZWtpXCA7CivokrjnmbrnhrEgPiBqb3VoYXRzdW5ldHN1XCA7CivolqnmkanplqUgPiBzYXRzdW1hYmF0c3VcIDsKK+imluiBtOeOhyA+IHNoaWNob3VyaXRzdVwgOwor55Wz5rC057e0ID4gdGF0YW1pc3VpcmVuXCA7CivluZXlg5rplbcgPiBiYWt1cnlvdWNob3VcIDsKK+ePvuWun+eahCA+IGdlbmppdHN1dGVraVwgOwor55S75LiA55qEID4ga2FrdWl0c3V0ZWtpXCA7CivljbjphZLosqkgPiBvcm9zaGlzaHVoYW5cIDsKK+imquaXpeWutiA+IHNoaW4nJ25pY2hpa2FcIDsKK+WGheWHuuihgCA+IG5haXNodWtrZXRzdVwgOwor5r2k562G5paZID4ganVucGl0c3VyeW91XCA7CivnlLDoiI7kvo0gPiBpbmFrYXphbXVyYWlcIDsKK+mHkemHmOa1gSA+IGthbmFrdWdpcnl1dVwgOwor5Ym15L2c5YqbID4gc291c2FrdXJ5b2t1XCA7CivljbPmiKblipsgPiBzb2t1c2Vucnlva3VcIDsKK+aLrOe0hOetiyA+IGthdHN1eWFrdWtpblwgOwor6Kqs5b6X5YqbID4gc2V0dG9rdXJ5b2t1XCA7CivpkJjmkp7loIIgPiBrYW5ldHN1a2lkb3VcIDsKK+aXp+W9ouW8jyA+IGt5dXVrZWlzaGlraVwgOwor6buE546J55+zID4ga291Z3lva3VzZWtpXCA7Civlrp/pqJPlrqQgPiBqaWtrZW5zaGl0c3VcIDsKK+Wvhua8geiAhSA+IG1pdHN1cnlvdXNoYVwgOwor5r2u5rGQ6KGoID4gY2hvdXNla2loeW91XCA7Civnmb3nhrHmiKYgPiBoYWt1bmV0c3VzZW5cIDsKK+W+k+WxnuevgCA+IGp1dXpva3VzZXRzdVwgOwor5oq85YiH5bizID4gb3NoaWtpcmljaG91XCA7CivpibHnianlraYgPiBrb3VidXRzdWdha3VcIDsKK+W3puW/g+WupCA+IHNhc2hpbnNoaXRzdVwgOwor5qW15b2p6ImyID4gZ29rdXNhaXNoaWtpXCA7Civogp3lv4PopoEgPiBrYW5qaW5rYW5hbWVcIDsKK+W7uueviealrSA+IGtlbmNoaWt1Z3lvdVwgOwor5ouS6aOf55eHID4ga3lvc2hva3VzaG91XCA7CivnhrHpm7vlr74gPiBuZXRzdWRlbnRzdWlcIDsKK+mOluS8neWLlSA+IGt1c2FyaWRlbmRvdVwgOwor5ouh5aSn546HID4ga2FrdWRhaXJpdHN1XCA7Civni4Lkv6HnmoQgPiBreW91c2hpbnRla2lcIDsKK+ihqOePvuWKmyA+IGh5b3VnZW5yeW9rdVwgOwor5Lit56uL6Z2iID4gY2h1dXJpdHN1bWVuXCA7Civosp3mrrvomasgPiBrYWlnYXJhbXVzaGlcIDsKK+S4gOeVquaYnyA+IGljaGliYW5ib3NoaVwgOwor6LOD5YCf5Lq6ID4gY2hpbnNoYWt1bmluXCA7Civoo4Xpo77nmoQgPiBzb3VzaG9rdXRla2lcIDsKK+a+seeyieizqiA+IGRlbnB1bnNoaXRzdVwgOwor5Y2D5pel6I2JID4gc2VuJyduaWNoaXNvdVwgOwor5LiD5LqU6Kq/ID4gc2hpY2hpZ29jaG91XCA7CivkuK3lm73mnI0gPiBjaHV1Z29rdWZ1a3VcIDsKK+mrmOWkqeWOnyA+IHRha2FtYWdhaGFyYVwgOwor5YuY5a6a5L+CID4ga2Fuam91Z2FrYXJpXCA7Civmi5jmnZ/lipsgPiBrb3Vzb2t1cnlva3VcIDsKK+ayiOa+seeJqSA+IGNoaW5kZW5idXRzdVwgOwor5Zmo6LOq55qEID4ga2lzaGl0c3V0ZWtpXCA7CivljYPml6XntIUgPiBzZW4nJ25pY2hpa291XCA7Civlu7rnr4nlraYgPiBrZW5jaGlrdWdha3VcIDsKK+aVl+ihgOeXhyA+IGhhaWtldHN1c2hvdVwgOwor5Y2B5LiA5pyIID4ganV1aWNoaWdhdHN1XCA7CivooovmiLjmo5ogPiBmdWt1cm90b2RhbmFcIDsKK+aLneeJqeaVmSA+IGhhaWJ1dHN1a3lvdVwgOwor5b6p6K6Q5b+DID4gZnVrdXNodXVzaGluXCA7Civml6flubTmnKsgPiBreXV1bmVubWF0c3VcIDsKK+WkseiBt+iAhSA+IHNoaXNzaG9rdXNoYVwgOwor5YaF5Ymy5byVID4gdWNoaXdhcmliaWtpXCA7Civlh7rnlKPnjocgPiBzaHVzc2Fucml0c3VcIDsKK+WGmeWun+eahCA+IHNoYWppdHN1dGVraVwgOwor5o6l57aa6aeFID4gc2V0c3V6b2t1ZWtpXCA7Civoo73piYTmpa0gPiBzZWl0ZXRzdWd5b3VcIDsKK+WHuueUn+eOhyA+IHNodXNzZWlyaXRzdVwgOwor552A54mp5ae/ID4ga2ltb25vc3VnYXRhXCA7CivnqY3mpbXnrZYgPiBzZWtreW9rdXNha3VcIDsKK+Wwj+aWh+evgCA+IHNob3VidW5zZXRzdVwgOwor57WE57mU5YqbID4gc29zaGlraXJ5b2t1XCA7Civmlq3nhrHmnZAgPiBkYW4nJ25ldHN1emFpXCA7CivokZfkvZzniakgPiBjaG9zYWt1YnV0c3VcIDsKK+ebsua7heazlSA+IG1la3VyYW1lcHBvdVwgOwor6ZmE552A5YqbID4gZnVjaGFrdXJ5b2t1XCA7CivmvILmtYHmnKggPiBoeW91cnl1dWJva3VcIDsKK+e0s+Wjq+mdtCA+IHNoaW5zaGlndXRzdVwgOwor5rWa5rir6Ii5ID4gc2h1bnNldHN1c2VuXCA7Civmt7HlsbHng48gPiBtaXlhbWFnYXJhc3VcIDsKK+eUn+iHreeJqSA+IG5hbWFndXNhbW9ub1wgOwor5a+p5Yik5b25ID4gc2hpbnBhbicneWFrdVwgOwor56mN5qW155qEID4gc2Vra3lva3V0ZWtpXCA7Civnmbrlo7LlhYMgPiBoYXRzdWJhaW1vdG9cIDsKK+S7j+mggumdoiA+IGJ1dGNob3VkenVyYVwgOwor5Y+W5byV6auYID4gdG9yaWhpa2lkYWthXCA7Civpl5blhaXogIUgPiBjaGluJydueXV1c2hhXCA7Civmr6zmoJfpoK0gPiBpZ2FndXJpYXRhbWFcIDsKK+W7uuevieS4rSA+IGtlbmNoaWt1Y2h1dVwgOwor5byx5bCP5Zu9ID4gamFrdXNob3Vrb2t1XCA7Civnmbrlo7LkuK0gPiBoYXRzdWJhaWNodXVcIDsKK+W+qeiukOWKhyA+IGZ1a3VzaHV1Z2VraVwgOwor5LiL5LuV5LqLID4gc2hpdGFzaGlnb3RvXCA7CivmtojmpbXmgKcgPiBzaG91a3lva3VzZWlcIDsKK+mHkeasoOeXhSA+IGtpbmtldHN1YnlvdVwgOwor6IG06KaW546HID4gY2hvdXNoaXJpdHN1XCA7Civmt7HlsbHmoZwgPiBtaXlhbWF6YWt1cmFcIDsKK+izquWVj+iAhSA+IHNoaXRzdW1vbnNoYVwgOwor56m657SE5p2fID4ga2FyYXlha3Vzb2t1XCA7CivmjqXntproqZ4gPiBzZXRzdXpva3VzaGlcIDsKK+aKuemmmemvqCA+IG1ha2tvdWt1amlyYVwgOwor6Iqx55uX5Lq6ID4gaGFuYW51c3ViaXRvXCA7Civkub7nh6XlrqQgPiBrYW5zb3VzaGl0c3VcIDsKK+Wwv+avkueXhyA+IG55b3Vkb2t1c2hvdVwgOwor55mH55mq546JID4ga2Fuc2hha3VkYW1hXCA7CivkuIDkurrniakgPiBpY2hpamluYnV0c3VcIDsKK+WNlOe0hOWbvSA+IGt5b3V5YWt1a29rdVwgOwor5pyr5Luj54mpID4gbWF0c3VkYWltb25vXCA7CivliYPliIDosqAgPiBrYW1pc29yaW1ha2VcIDsKK+S4gOi2s+WFiCA+IGhpdG9hc2hpc2FraVwgOwor5p6c54mp57GgID4ga3VkYW1vbm9rYWdvXCA7CivkuJbplpPoqbEgPiBzZWtlbmJhbmFzaGlcIDsKK+ihjOalveWuoiA+IGtvdXJha3VreWFrdVwgOwor57SL55m96J22ID4gbW9uc2hpcm9jaG91XCA7CivlhaXmua/lrqIgPiBueXV1dG91a3lha3VcIDsKK+mXh+WPluW8lSA+IHlhbWl0b3JpaGlraVwgOwor6YCy5rC05byPID4gc2hpbnN1aXNoaWtpXCA7Civku67miZXph5EgPiBrYXJpYmFyYWlraW5cIDsKK+e0meWxkeexoCA+IGthbWlrdXp1a2Fnb1wgOwor5Lm+54el5Y21ID4ga2Fuc291dGFtYWdvXCA7Civnt5HlhoXpmpwgPiByeW9rdW5haXNob3VcIDsKK+altealvemzpSA+IGdva3VyYWt1Y2hvdVwgOwor6LOD6LK45YCfID4gY2hpbnRhaXNoYWt1XCA7CivlkYrnmbrogIUgPiBrb2t1aGF0c3VzaGFcIDsKK+eZveihgOeXhSA+IGhha2tldHN1YnlvdVwgOwor55yf54+g6LOqID4gc2hpbmp1c2hpdHN1XCA7CivniYflsbHph4wgPiBrYXRheWFtYXphdG9cIDsKK+eLrOeri+elrSA+IGRva3VyaXRzdXNhaVwgOwor5LqI57SE5L+CID4geW95YWt1Z2FrYXJpXCA7Civpu4Tnt5HoibIgPiBvdXJ5b2t1c2hva3VcIDsKK+WJjemAsuWKmyA+IHplbnNoaW5yeW9rdVwgOwor56K6546H6KuWID4ga2FrdXJpdHN1cm9uXCA7Civni6znq4vnj60gPiBkb2t1cml0c3VoYW5cIDsKK+etieWcp+W8jyA+IHRvdWF0c3VzaGlraVwgOwor57Sg5Lq6562LID4gc2hpcm91dG9zdWppXCA7Civnvo7kurrlsYAgPiB0c3V0c3Vtb3Rhc2VcIDsKK+WAn+WcsOaWmSA+IHNoYWt1Y2hpcnlvdVwgOwor6buE54ax55eFID4ga291bmV0c3VieW91XCA7CivmipXnpajnjocgPiB0b3VoeW91cml0c3VcIDsKK+iEhei/q+eahCA+IGt5b3VoYWt1dGVraVwgOwor5Zuj57WQ5b+DID4gZGFua2V0c3VzaGluXCA7Civos6rllY/mm7ggPiBzaGl0c3Vtb25zaG9cIDsKK+S4reeri+aApyA+IGNodXVyaXRzdXNlaVwgOwor5ZGK55m654q2ID4ga29rdWhhdHN1am91XCA7Civlj43lvqnoqqwgPiBoYW5wdWt1c2V0c3VcIDsKK+WNsOWIt+ihkyA+IGluc2F0c3VqdXRzdVwgOwor6IO95Yqb57WmID4gbm91cnlva3VreXV1XCA7Civnt7Tnv5Lmm7IgPiByZW5zaHV1a3lva3VcIDsKK+i2heiDveWKmyA+IGNob3Vub3VyeW9rdVwgOwor5qC45YiG6KOCID4ga2FrdWJ1bnJldHN1XCA7Civni6znq4vmqKkgPiBkb2t1cml0c3VrZW5cIDsKK+W+heWuteiNiSA+IG1hdHN1eW9pZ3VzYVwgOwor5LiA5Lq65aiYID4gaGl0b3JpbXVzdW1lXCA7Civlm73nqI7lsYAgPiBrb2t1emVpa3lva3VcIDsKK+S4gOmdouitmCA+IGljaGltZW5zaGlraVwgOwor5Ye66aGY6ICFID4gc2h1dHN1Z2Fuc2hhXCA7Civli7/lv5jojYkgPiB3YXN1cmVuYWd1c2FcIDsKK+W8t+e2v+iWrCA+IGt5b3VtZW4nJ3lha3VcIDsKK+aituacqOmuqiA+IGthamlraW1hZ3Vyb1wgOwor5aSx5piO6ICFID4gc2hpdHN1bWVpc2hhXCA7CivlpbPpgZPmpb0gPiBvbicnbmFkb3VyYWt1XCA7CivmiJDplbfnjocgPiBzZWljaG91cml0c3VcIDsKK+eiuuWun+aApyA+IGtha3VqaXRzdXNlaVwgOwor6buS6KOF5p2fID4ga3Vyb3Nob3V6b2t1XCA7CivnhrHmi6HmlaMgPiBuZXRzdWtha3VzYW5cIDsKK+W/oOiHo+iUtSA+IGNodXVzaGluZ3VyYVwgOwor5YuV54mp5a2mID4gZG91YnV0c3VnYWt1XCA7CivkuIDmnprkuIsgPiBpY2hpbWFpc2hpdGFcIDsKK+iHs+adseS6rCA+IGl0YXJ1dG91a3lvdVwgOwor54us56uL5oCnID4gZG9rdXJpdHN1c2VpXCA7Civpm6jlvozpm6ogPiBhbWVub2NoaXl1a2lcIDsKK+WFq+ebrumwuyA+IHlhdHN1bWV1bmFnaVwgOwor5aSp54uX6KmxID4gdGVuZ3ViYW5hc2hpXCA7CivmoYjlhoXkv4IgPiBhbicnbmFpZ2FrYXJpXCA7CivmtYHooYzoibIgPiByeXV1a291c2hva3VcIDsKK+mNvuS5s+efsyA+IHNob3VueXV1c2VraVwgOwor5o6l57aa5oCnID4gc2V0c3V6b2t1c2VpXCA7CivnnJ/lrp/mgKcgPiBzaGluaml0c3VzZWlcIDsKK+mqqOiCieiFqyA+IGtvdHN1bmlrdXNodVwgOwor54qs55Wc55SfID4gaW51Y2hpa3VzaG91XCA7CivpoJjlj47oqLwgPiByeW91c2h1dXNob3VcIDsKK+aYvOWFieiJsiA+IGNodXVrb3VzaG9rdVwgOwor5YyX5qW154aKID4gaG9ra3lva3VndW1hXCA7Civlj7jku6TlrqQgPiBzaGlyZWlzaGl0c3VcIDsKK+WNsOWIt+eJqSA+IGluc2F0c3VidXRzdVwgOwor5oq96LGh55qEID4gY2h1dXNob3V0ZWtpXCA7Civnmb3mi43lrZAgPiBzaGlyYWJ5b3VzaGlcIDsKK+aPkOWHuuiAhSA+IHRlaXNodXRzdXNoYVwgOwor6ICQ5Zyn5YqbID4gdGFpYXRzdXJ5b2t1XCA7Civlh7jpnaLpj6EgPiB0b3RzdW1lbmt5b3VcIDsKK+mrmOihgOWcpyA+IGtvdWtldHN1YXRzdVwgOwor5p+x5pmC6KiIID4gaGFzaGlyYWRva2VpXCA7Civlgpjmra/ou4ogPiBrYXNhaGFndXJ1bWFcIDsKK+i7jeWbveiJsiA+IGd1bmtva3VzaG9rdVwgOwor5YWr6YOO5r2fID4gaGFjaGlyb3VnYXRhXCA7Civlrr/lkb3nmoQgPiBzaHVrdW1laXRla2lcIDsKK+S4reW/g+inkiA+IGNodXVzaGlua2FrdVwgOwor6ZW36aCI6a+oID4gbmFnYXN1a3VqaXJhXCA7Civkv67kuoboqLwgPiBzaHV1cnlvdXNob3VcIDsKK+auteOAheeVoCA+IGRhbmRhbmJhdGFrZVwgOwor5q6144CF55WRID4gZGFuZGFuYmF0YWtlXCA7CivlpJrogonos6ogPiB0YW5pa3VzaGl0c3VcIDsKK+mAsuWFpeeBryA+IHNoaW4nJ255dXV0b3VcIDsKK+mbhue0hOeahCA+IHNodXV5YWt1dGVraVwgOwor5YW15YWt546JID4gaHlvdXJva3VkYW1hXCA7Civmkanmk6bnhrEgPiBtYXNhdHN1bmV0c3VcIDsKK+aKgOihk+WKmyA+IGdpanV0c3VyeW9rdVwgOwor5Luu5rq25o6lID4ga2FyaXlvdXNldHN1XCA7Civpq5jlk4Hos6ogPiBrb3VoaW5zaGl0c3VcIDsKK+aZkuacqOe2vyA+IHNhcmFzaGltb21lblwgOwor5Ly457iu5rOVID4gc2hpbnNodWt1aG91XCA7Civlha3pgKPnmbogPiByb2t1cmVucGF0c3VcIDsKK+S9teeZuueXhyA+IGhlaWhhdHN1c2hvdVwgOwor5qyg5LmP55eHID4ga2V0c3Vib3VzaG91XCA7CivplqLnr4DmioAgPiBrYW5zZXRzdXdhemFcIDsKK+ayiOayoeiIuSA+IGNoaW5ib3RzdXNlblwgOwor5a6556mN546HID4geW91c2VraXJpdHN1XCA7CivkuLvlipvmoKogPiBzaHVyeW9rdWthYnVcIDsKK+S5vua5v+ioiCA+IGthbnNoaXRzdWtlaVwgOwor5Lmd5pif6KGTID4ga3l1dXNlaWp1dHN1XCA7Civlj6PlhavkuIEgPiBrdWNoaWhhdGNob3VcIDsKK+aknOWvn+W6gSA+IGtlbnNhdHN1Y2hvdVwgOwor6KGo6KGo57SZID4gb21vdGVieW91c2hpXCA7Civnm7Tlj5blvJUgPiBqaWtpdG9yaWhpa2lcIDsKK+Wkp+WtpuWNkiA+IGRhaWdha3Vzb3RzdVwgOwor5aSx6Kqe55eHID4gc2hpdHN1Z29zaG91XCA7CivpmY3pm6rph48gPiBrb3VzZXRzdXJ5b3VcIDsKK+a8geW4q+eUuiA+IHJ5b3VzaGltYWNoaVwgOwor54mp6KaL5quTID4gbW9ub21peWFndXJhXCA7Civlj5bmrKHlupcgPiB0b3JpdHN1Z2l0ZW5cIDsKK+acp+aciOWknCA+IG9ib3JvZHp1a2l5b1wgOwor5Lqr5qW955qEID4ga3lvdXJha3V0ZWtpXCA7CivmsLTlipvlraYgPiBzdWlyeW9rdWdha3VcIDsKK+WPluW8leWFiCA+IHRvcmloaWtpc2FraVwgOwor5YWl5Yqb57eaID4gbnl1dXJ5b2t1c2VuXCA7CivkvY7ooYDlnKcgPiB0ZWlrZXRzdWF0c3VcIDsKK+S8uOe4ruaApyA+IHNoaW5zaHVrdXNlaVwgOwor5b6L5Luk5Yi2ID4gcml0c3VyeW91c2VpXCA7CivlvaLlvI/nmoQgPiBrZWlzaGlraXRla2lcIDsKK+S7sueri+S6uiA+IG5ha2FkYWNoaW5pblwgOwor5piH6ZmN5Y+jID4gc2hvdWtvdWd1Y2hpXCA7CivoqJjpjLLkv4IgPiBraXJva3VnYWthcmlcIDsKK+W3peS9nOeJqSA+IGtvdXNha3VidXRzdVwgOwor5q2j55u06ICFID4gc2hvdWppa2ltb25vXCA7CivkuK3lv4PnmoQgPiBjaHV1c2hpbnRla2lcIDsKK+iHque/kuWupCA+IGppc2h1dXNoaXRzdVwgOwor5LuK5piO5pelID4ga29ubXlvdW5pY2hpXCA7CivplpPmjqXnmoQgPiBrYW5zZXRzdXRla2lcIDsKK+WHuueJiOeJqSA+IHNodXBwYW5idXRzdVwgOwor5qC46LuN57iuID4ga2FrdWd1bnNodWt1XCA7CivkuIDopovorZggPiBpY2hpa2Vuc2hpa2lcIDsKK+aUu+aSg+WKmyA+IGtvdWdla2lyeW9rdVwgOwor5pW06auq5paZID4gc2VpaGF0c3VyeW91XCA7CivkuIPpnaLlgJIgPiBzaGljaGltZW5kb3VcIDsKK+iAkOa5v+aApyA+IHRhaXNoaXRzdXNlaVwgOwor5LuP5paH5a2mID4gZnV0c3VidW5nYWt1XCA7CivnlZHmsLTnt7QgPiBoYXRha2VzdWlyZW5cIDsKK+WLheaSsOmbhiA+IGNob2t1c2Vuc2h1dVwgOwor5LiD6Z2i5L2TID4gc2hpY2hpbWVudGFpXCA7CivlirnnjofnmoQgPiBrb3VyaXRzdXRla2lcIDsKK+eGsemHj+ioiCA+IG5ldHN1cnlvdWtlaVwgOwor5rOo6YeI6ICFID4gY2h1dXNoYWt1c2hhXCA7Civni63lv4Pnl4cgPiBreW91c2hpbnNob3VcIDsKK+W8peeMm+W/gyA+IHlhdGFrZWdva29yb1wgOwor57eP6Iqx5byPID4gc291YmFuYXNoaWtpXCA7CivljZTllYblm70gPiBreW91c2hvdWtva3VcIDsKK+S4g+e1g+eQtCA+IHNoaWNoaWdlbmtpblwgOwor54iG6KOC5by+ID4gYmFrdXJldHN1ZGFuXCA7CivlrpfmlZnlv4MgPiBzaHV1a3lvdXNoaW5cIDsKK+WFrOWFseeJqSA+IGtvdWt5b3VidXRzdVwgOwor5pWR5oCl566xID4ga3l1dWt5dXViYWtvXCA7Civni4Loqanmm7IgPiBreW91c2hpa3lva3VcIDsKK+S/hOWIhumZkCA+IG5pd2FrYWJ1bmdlblwgOwor5a6X5pWZ5a2mID4gc2h1dWt5b3VnYWt1XCA7CivkuIDml6XkuK0gPiBpY2hpbmljaGlqdXVcIDsKK+axguiBt+iAhSA+IGt5dXVzaG9rdXNoYVwgOwor55Wc5q665aC0ID4gY2hpa3VzYXRzdWJhXCA7CivlrablubTmnKsgPiBnYWt1bmVubWF0c3VcIDsKK+epgOixoeiZqyA+IGtva3V6b3VtdXNoaVwgOwor54Sh6Z+/5a6kID4gbXVreW91c2hpdHN1XCA7CivnrY3ljLvogIUgPiB0YWtlbm9rb2lzaGFcIDsKK+a9m+W/g+WKmyA+IHNlbnNoaW5yeW9rdVwgOwor6IiI6KGM5Li7ID4ga291Z3lvdW51c2hpXCA7Civkv67po77lrZAgPiBzaHV1c2hva3VzaGlcIDsKK+WPjuebiueOhyA+IHNodXVla2lyaXRzdVwgOwor56Wd5YSA6KKLID4gc2h1dWdpYnVrdXJvXCA7CivlqZrlp7vlsYogPiBrb24nJ2ludG9kb2tlXCA7CivpmpzlrrPniakgPiBzaG91Z2FpYnV0c3VcIDsKK+m7kumKueeXhSA+IGt1cm9zYWJpYnlvdVwgOwor5Lq654mp6KmVID4gamluYnV0c3VoeW91XCA7Civpm5HmiYDlvpcgPiB6YXRzdXNob3Rva3VcIDsKK+WJpeijveihkyA+IGhha3VzZWlqdXRzdVwgOwor54us5Y2g5qyyID4gZG9rdXNlbicneW9rdVwgOwor57W25pyb55qEID4gemV0c3Vib3V0ZWtpXCA7CivlpKnnhLboibIgPiB0ZW4nJ25lbnNob2t1XCA7CivohILogqros6ogPiBzaGlib3VzaGl0c3VcIDsKK+Wul+aVmeWKhyA+IHNodXVreW91Z2VraVwgOwor5Ye65aC06ICFID4gc2h1dHN1am91c2hhXCA7Civkub7mvIblg48gPiBrYW5zaGl0c3V6b3VcIDsKK+WGhee9sOeahCA+IG5haWJhdHN1dGVraVwgOwor5LiD6KeS5b2iID4gc2hpY2hpa2Fra2VpXCA7CivljbPoiIjmm7IgPiBzb2treW91a3lva3VcIDsKK+aVo+eZuueahCA+IHNhbnBhdHN1dGVraVwgOwor5bqD5Y+j55O2ID4gaGlyb2t1Y2hpYmluXCA7CivlnKfnuK7njocgPiBhc3NodWt1cml0c3VcIDsKK+Wuv+aziuS6uiA+IHNodWt1aGFrdW5pblwgOwor54yp57SF54axID4gc2hvdWtvdW5ldHN1XCA7CivljZTlipvpi7wgPiBreW91cnlva3Vrb3VcIDsKK+aJgOeVquWcsCA+IHRva29yb2JhbmNoaVwgOwor5rOo6YeI5pu4ID4gY2h1dXNoYWt1c2hvXCA7CivnibnlvrTph48gPiB0b2t1Y2hvdXJ5b3VcIDsKK+aHkOW3peWQiCA+IGZ1dG9rb3JvZ3VhaVwgOwor5o+P5YaZ5YqbID4gYnlvdXNoYXJ5b2t1XCA7CivnlJ/nianlraYgPiBzZWlidXRzdWdha3VcIDsKK+aHkOWFt+WQiCA+IGZ1dG9rb3JvZ3VhaVwgOwor6Kqt5pu45YqbID4gZG9rdXNob3J5b2t1XCA7Civnn6XorZjmrLIgPiBjaGlzaGlraXlva3VcIDsKK+WFqOmAn+WKmyA+IHplbnNva3VyeW9rdVwgOwor6KGo44CF57SZID4gb21vdGVieW91c2hpXCA7Civmt7HntIXoibIgPiBzaGlua291c2hva3VcIDsKK+i7n+edgOmZuCA+IG5hbmNoYWt1cmlrdVwgOwor6Imy5oOF54uCID4gc2hpa2lqb3VreW91XCA7Civpg7Xkvr/ooosgPiB5dXViaW5idWt1cm9cIDsKK+iouuWvn+WPsCA+IHNoaW5zYXRzdWRhaVwgOwor5rOh5rKr55qEID4gaG91bWF0c3V0ZWtpXCA7Civku67ph4jmlL4gPiBrYXJpc2hha3Vob3VcIDsKK+aApemAsueahCA+IGt5dXVzaGludGVraVwgOwor6Ki65a+f5Yi4ID4gc2hpbnNhdHN1a2VuXCA7CivmpbXlsI/lgKQgPiBreW9rdXNob3VjaGlcIDsKK+S+m+ihgOiAhSA+IGt5b3VrZXRzdXNoYVwgOwor5Y+O5YWl5b25ID4gc2h1dW55dXV5YWt1XCA7CivmrrXmrrXnlaAgPiBkYW5kYW5iYXRha2VcIDsKK+auteauteeVkSA+IGRhbmRhbmJhdGFrZVwgOwor56+A55So6ZuGID4gc2V0c3V5b3VzaHV1XCA7CivphY3pgZTmlpkgPiBoYWl0YXRzdXJ5b3VcIDsKK+aWsOWNkuiAhSA+IHNoaW5zb3RzdXNoYVwgOwor5Y+O55uj5YqbID4gc2h1dWthbnJ5b2t1XCA7Civnmb7okYnnrrEgPiBoeWFrdXlvdWJha29cIDsKK+WNlOWKm+iAhSA+IGt5b3VyeW9rdXNoYVwgOwor6YCf6YGU5L6/ID4gc29rdXRhdHN1YmluXCA7CivpioDnmb3oibIgPiBnaW5oYWt1c2hva3VcIDsKK+WkvuerueahgyA+IGt5b3VjaGlrdXRvdVwgOwor55Wc55Sf6YGTID4gY2hpa3VzaG91ZG91XCA7Civpm6rovrHmiKYgPiBzZXRzdWpva3VzZW5cIDsKK+adseS6rOedgCA+IHRvdWt5b3VjaGFrdVwgOwor6Zu75L+h5bGAID4gZGVuc2hpbmt5b2t1XCA7CivpnZLoibLnl4cgPiBzZWlzaG9rdXNob3VcIDsKK+W6g+WRiuS4uyA+IGtvdWtva3VudXNoaVwgOwor5p2x5Lqs55m6ID4gdG91a3lvdWhhdHN1XCA7CivlhajouqvmtbQgPiB6ZW5zaGluJyd5b2t1XCA7CivlpInos6rogIUgPiBoZW5zaGl0c3VzaGFcIDsKK+Wkj+acqOeriyA+IG5hdHN1a29kYWNoaVwgOwor6K2m5a+f5bqBID4ga2Vpc2F0c3VjaG91XCA7Civmpa3nlYzliJ0gPiBneW91a2FpaGF0c3VcIDsKK+WkqemVt+evgCA+IHRlbmNob3VzZXRzdVwgOwor55Sj6KSl54axID4gc2Fuam9rdW5ldHN1XCA7CivljZjli53lvI8gPiB0YW5zaG91c2hpa2lcIDsKK+mgremggumqqCA+IHRvdWNob3Vrb3RzdVwgOwor5aOK6KGA55eFID4ga2Fpa2V0c3VieW91XCA7CivnnIvmnb/lqJggPiBrYW5iYW5tdXN1bWVcIDsKK+e3qOmbhuWxgCA+IGhlbnNodXVreW9rdVwgOwor5pm05b6M6ZuoID4gaGFyZW5vY2hpYW1lXCA7CivmtYHli5Xpo58gPiByeXV1ZG91c2hva3VcIDsKK+mjn+mBk+alvSA+IHNob2t1ZG91cmFrdVwgOwor5q+b57mU6YymID4ga2VvcmluaXNoaWtpXCA7CivmsYLkurrlj6MgPiBreXV1amluZ3VjaGlcIDsKK+e1guedgOmnhSA+IHNodXVjaGFrdWVraVwgOwor6buS5rC054axID4ga29rdXN1aW5ldHN1XCA7Civku67pgLLntJogPiBrYXJpc2hpbmt5dXVcIDsKK+mFjemBlOWFiCA+IGhhaXRhdHN1c2FraVwgOwor5a+d54mp6KqeID4gbmVtb25vZ2F0YXJpXCA7Civoi6Xmrr/ljp8gPiB3YWthdG9ub2JhcmFcIDsKK+WGt+iUteWupCA+IHJlaXpvdXNoaXRzdVwgOwor5rKh5Lqk5riJID4gYm90c3Vrb3VzaG91XCA7CivpnZnohIjnmKQgPiBqb3VteWFrdXJ5dXVcIDsKK+mqqOe1hOe5lCA+IGtvdHN1c29zaGlraVwgOwor5Y2D5Y2S6ZW3ID4gc2Vuc290c3VjaG91XCA7Civnm7TovYTlnLAgPiBjaG9ra2F0c3VjaGlcIDsKK+S4gOeti+e5qSA+IGhpdG9zdWppbmF3YVwgOwor5LiA562L57iEID4gaGl0b3N1amluYXdhXCA7CivlsLHogbfpm6MgPiBzaHV1c2hva3VuYW5cIDsKK+iqrOe1jOevgCA+IHNla2t5b3VidXNoaVwgOwor5b+D6Lqr55eHID4gc2hpbnNoaW5zaG91XCA7CivpnaLkvJrlrqQgPiBtZW5rYWlzaGl0c3VcIDsKK+eLrOWJteWKmyA+IGRva3Vzb3VyeW9rdVwgOwor5aeL5qWt5byPID4gc2hpZ3lvdXNoaWtpXCA7CivmnaXlrqLnrYsgPiByYWlreWFrdXN1amlcIDsKK+mAsuWtpuWhviA+IHNoaW5nYWt1anVrdVwgOwor55uu55qE5qC8ID4gbW9rdXRla2lrYWt1XCA7CivmoKHmraPkv4IgPiBrb3VzZWlnYWthcmlcIDsKK+WKm+iHquaFoiA+IGNoaWthcmFqaW1hblwgOwor5bGL5pW355S6ID4geWFzaGlraW1hY2hpXCA7CivmnI3po77lk4EgPiBmdWt1c2hva3VoaW5cIDsKK+iGqOW8teeOhyA+IGJvdWNob3VyaXRzdVwgOwor6Imv5b+D55qEID4gcnlvdXNoaW50ZWtpXCA7Civnqbrlv7Xku48gPiBzb3JhbmVuYnV0c3VcIDsKK+eahueahuanmCA+IG1pbmFtaW5hc2FtYVwgOwor6IO9546H57WmID4gbm91cml0c3VreXV1XCA7CivloIbnqY3niakgPiB0YWlzZWtpYnV0c3VcIDsKK+WHuue0jeS/giA+IHN1aXRvdWdha2FyaVwgOwor6JOE56mN566hID4gY2hpa3VzZWtpa2FuXCA7Civni6zouqvogIUgPiBkb2t1c2hpbm1vbm9cIDsKK+efs+erueiJsiA+IHNla2ljaGlrdWlyb1wgOwor55u06IW455mMID4gY2hva3VjaG91Z2FuXCA7CivnqoHnmbrnmoQgPiB0b3BwYXRzdXRla2lcIDsKK+iKuOihk+eahCA+IGdlaWp1dHN1dGVraVwgOwor6Z2e5pm26LOqID4gaGlzaG91c2hpdHN1XCA7CivnjononIDpu40gPiB0b3Vtb3Jva29zaGlcIDsKK+Wwj+W/g+iAhSA+IHNob3VzaGlubW9ub1wgOwor6buS5rC05byVID4ga3Vyb21penVoaWtpXCA7CivmhJ/nhrHliaQgPiBrYW4nJ25ldHN1emFpXCA7CivlqK/mpb3lrqQgPiBnb3Jha3VzaGl0c3VcIDsKK+mOrueXm+iWrCA+IGNoaW50c3V1eWFrdVwgOwor6IO9546H55qEID4gbm91cml0c3V0ZWtpXCA7CivlkIjllLHmm7IgPiBnYXNzaG91a3lva3VcIDsKK+S4uemggum2tCA+IHRhbmNob3VkenVydVwgOwor6Z2p5paw55qEID4ga2FrdXNoaW50ZWtpXCA7CivlrqLllYblo7IgPiBreWFrdXNob3ViYWlcIDsKK+S4gOaLrOW8jyA+IGlra2F0c3VzaGlraVwgOwor55Wc55Sj5qWtID4gY2hpa3VzYW5neW91XCA7Civlh7rooYDmrbsgPiBzaHVra2V0c3VzaGlcIDsKK+eZvemrqumgrSA+IHNoaXJhZ2FhdGFtYVwgOwor5paw5b2i5byPID4gc2hpbmtlaXNoaWtpXCA7CivlhbHmnInniakgPiBreW91eXV1YnV0c3VcIDsKK+eUs+WRiueusSA+IHNoaW5rb2t1YmFrb1wgOwor5pu455WZ5paZID4ga2FraXRvbWVyeW91XCA7CivluIzph4jnhrEgPiBraXNoYWt1bmV0c3VcIDsKK+WxseWPo+ecjCA+IHlhbWFndWNoaWtlblwgOwor5Z+3562G6ICFID4gc2hpcHBpdHN1c2hhXCA7CivllYblj5blvJUgPiBzaG91dG9yaWhpa2lcIDsKK+akjeeJqeayuSA+IHNob2t1YnV0c3V5dVwgOwor5Ye66KGA5paRID4gc2h1a2tldHN1aGFuXCA7CivkvIHnlLvlrqQgPiBraWtha3VzaGl0c3VcIDsKK+S+teWFpei7jSA+IHNoaW4nJ255dXVndW5cIDsKK+a8geeNsueJqSA+IGd5b2tha3VidXRzdVwgOwor5Yqb5a2m55qEID4gcmlraWdha3V0ZWtpXCA7CivnlrPnmarnjokgPiBrYW5zaGFrdWRhbWFcIDsKK+e0hOadn+S6iyA+IHlha3Vzb2t1Z290b1wgOwor57WM5bi35a2QID4ga3lvdWthdGFiaXJhXCA7Civngavmtojlo7cgPiBoaWtlc2hpdHN1Ym9cIDsKK+WIqeS8kem8oCA+IHJpa3l1dW5lenVtaVwgOwor6aCG5b+c5YqbID4ganVuJydub3VyeW9rdVwgOwor5LiL5Y2K6LqrID4gc2hpbW9oYW5zaGluXCA7CivooajmsbrmqKkgPiBoeW91a2V0c3VrZW5cIDsKK+aKnuS4gOeahCA+IHRha3VpdHN1dGVraVwgOwor5rWB5YuV54mpID4gcnl1dWRvdWJ1dHN1XCA7CivpmbPov7Dmm7ggPiBjaGluanV0c3VzaG9cIDsKK+i/veaCvOW8jyA+IHRzdWl0b3VzaGlraVwgOwor6aOy6aOf54mpID4gaW5zaG9rdWJ1dHN1XCA7CivmmLzpo5/kvJogPiBjaHV1c2hva3VrYWlcIDsKK+eVnOeUo+WtpiA+IGNoaWt1c2FuZ2FrdVwgOwor6K2Y5a2X546HID4gc2hpa2lqaXJpdHN1XCA7CivpvLvpq5jpq5ggPiBoYW5hdGFrYWRha2FcIDsKK+eJueWIpeazlSA+IHRva3ViZXRzdWhvdVwgOwor5Ye65ryB5qipID4gc2h1dHN1Z3lva2VuXCA7Civps7bogbfkurogPiB0b2Jpc2hva3VuaW5cIDsKK+mOrumtguabsiA+IGNoaW5rb25reW9rdVwgOwor5Ye65ryU5paZID4gc2h1dHN1ZW5yeW91XCA7CivpgJrkv5fnmoQgPiB0c3V1em9rdXRla2lcIDsKK+S+teWFpeiAhSA+IHNoaW4nJ255dXVzaGFcIDsKK+epuuWHuuW8tSA+IGthcmFzaHV0Y2hvdVwgOwor6KGA5Zyn6KiIID4ga2V0c3VhdHN1a2VpXCA7Civog4bmsYHos6ogPiB0YW5qdXVzaGl0c3VcIDsKK+m7hOeip+eOiSA+IGtvdWhla2lneW9rdVwgOwor6ZqU5pyI5YiKID4ga2FrdWdldHN1a2FuXCA7Civlvqnljp/lipsgPiBmdWt1Z2Vucnlva3VcIDsKK+ero+W3peW8jyA+IHNodW5rb3VzaGlraVwgOwor56u25LqJ546HID4ga3lvdXNvdXJpdHN1XCA7CivnqY3nq4vph5EgPiB0c3VtaXRhdGVraW5cIDsKK+akjeeJqeWckiA+IHNob2t1YnV0c3VlblwgOwor54us6Lqr5a+uID4gZG9rdXNoaW5yeW91XCA7CivlhaXmnK3ogIUgPiBueXV1c2F0c3VzaGFcIDsKK+aWsOWFpeeUnyA+IHNoaW4nJ255dXVzZWlcIDsKK+elnuisoembhiA+IHNoaW4nJ3lvdXNodXVcIDsKK+S4oealteerryA+IHJ5b3VreW9rdXRhblwgOwor5biz6Z2i6Z2iID4gY2hvdW1lbmR6dXJhXCA7CivopovnqY3mm7ggPiBtaXRzdW1vcmlzaG9cIDsKK+eglOWJiuS7oyA+IGtlbnNha3VzaGlyb1wgOwor5rS75YuV55qEID4ga2F0c3Vkb3V0ZWtpXCA7Civlhajog73lipsgPiB6ZW4nJ25vdXJ5b2t1XCA7Civpo5/ogonpoZ4gPiBzaG9rdW5pa3VydWlcIDsKK+iCuua0u+mHjyA+IGhhaWthdHN1cnlvdVwgOwor6ZaL56Wo546HID4ga2FpaHlvdXJpdHN1XCA7CivluLjorZjnmoQgPiBqb3VzaGlraXRla2lcIDsKK+WPjuWuueWKmyA+IHNodXV5b3VyeW9rdVwgOwor6LGh5b6055qEID4gc2hvdWNob3V0ZWtpXCA7Civoh6rmhaLoqbEgPiBqaW1hbmJhbmFzaGlcIDsKK+aLm+W+heWuoiA+IHNob3V0YWlreWFrdVwgOwor5Lqk6Z+/5puyID4ga291a3lvdWt5b2t1XCA7Civpm7vop6Pos6ogPiBkZW5rYWlzaGl0c3VcIDsKK+W5s+W6leiIuSA+IGhpcmFzb2tvYnVuZVwgOwor5bCx5Lu75byPID4gc2h1dW5pbnNoaWtpXCA7Civlhrflh43lrqQgPiByZWl0b3VzaGl0c3VcIDsKK+mFjeiGs+WupCA+IGhhaXplbnNoaXRzdVwgOwor5bqD5bO255yMID4gaGlyb3NoaW1ha2VuXCA7CivmmqbmlLnmraMgPiBrb3lvbWlrYWlzZWlcIDsKK+W+s+W3neaWuSA+IHRva3VnYXdhZ2F0YVwgOwor5Luu5YWl5a2mID4ga2FyaW55dXVnYWt1XCA7Civljp/lvaLos6ogPiBnZW5rZWlzaGl0c3VcIDsKK+m7kuiJsuiFqyA+IGtva3VzaG9rdXNodVwgOwor5Y2S5qWt55SfID4gc290c3VneW91c2VpXCA7Civlm57lvqnlipsgPiBrYWlmdWt1cnlva3VcIDsKK+WFpeS8muW8jyA+IG55dXVrYWlzaGlraVwgOwor5ZCR5b+D5YqbID4ga291c2hpbnJ5b2t1XCA7CivnjonomavoibIgPiB0YW1hbXVzaGlpcm9cIDsKK+eJueWIpeWPtyA+IHRva3ViZXRzdWdvdVwgOwor6ISx5q+b55eHID4gZGF0c3Vtb3VzaG91XCA7Civlp4vnkIPlvI8gPiBzaGlreXV1c2hpa2lcIDsKK+S9leiJsuaQqCA+IG5hbnNob2t1enVyaVwgOwor5L+h6KiX5qWtID4gc2hpbnRha3VneW91XCA7Civlg7vmoLnmgKcgPiBoaWdhbWlrb25qb3VcIDsKK+WlquS4ieaMryA+IGRhdHN1c2Fuc2hpblwgOwor6YmE54Gr5Li8ID4gdGVra2Fkb25idXJpXCA7CivlpKfnpo/ppIUgPiBkYWlmdWt1bW9jaGlcIDsKK+S+teeVpei7jSA+IHNoaW5yeWFrdWd1blwgOwor5Y+N54mp6LOqID4gaGFuYnVzc2hpdHN1XCA7CivliLbnkIPlipsgPiBzZWlreXV1cnlva3VcIDsKK+mZuOeUo+eJqSA+IHJpa3VzYW5idXRzdVwgOwor6L6y5L2c54mpID4gbm91c2FrdWJ1dHN1XCA7Civnq5zoiIzomK0gPiByeXV1emV0c3VyYW5cIDsKK+WWtualreeVkSA+IGVpZ3lvdWJhdGFrZVwgOwor6IKJ6aOf542jID4gbmlrdXNob2t1anV1XCA7Civms5XlvovlraYgPiBob3VyaXRzdWdha3VcIDsKK+aWsOeZuuaYjiA+IHNoaW5oYXRzdW1laVwgOwor6YCX55WZ5a6iID4gdG91cnl1dWt5YWt1XCA7CivlvrPls7bnnIwgPiB0b2t1c2hpbWFrZW5cIDsKK+a4heawtOWvuiA+IGtpeW9taXp1ZGVyYVwgOwor54ax5a656YePID4gbmV0c3V5b3VyeW91XCA7CivmlofnrYbmpa0gPiBidW5waXRzdWd5b3VcIDsKK+iEs+WHuuihgCA+IG5vdXNodWtrZXRzdVwgOwor6Zyy5Ye655eHID4gcm9zaHV0c3VzaG91XCA7Civpq5jotrPon7kgPiB0YWthYXNoaWdhbmlcIDsKK+engeWovOeqnyA+IHNoaXNob3VrdXRzdVwgOwor6buS6Imy55mMID4ga29rdXNob2t1Z2FuXCA7CivosqfooYDnl4cgPiBoaW5rZXRzdXNob3VcIDsKK+iqjeitmOelqCA+IG5pbnNoaWtpaHlvdVwgOwor55ar55eF56WeID4geWFrdWJ5b3VnYW1pXCA7CivpnLLlh7rni4IgPiByb3NodXRzdWt5b3VcIDsKK+WvhueMn+iAhSA+IG1pdHN1cnlvdXNoYVwgOwor5YWr5LiI5bO2ID4gaGFjaGlqb3VqaW1hXCA7CivpmY3npZ7ooZMgPiBrb3VzaGluanV0c3VcIDsKK+WTsuWtpuiAhSA+IHRldHN1Z2FrdXNoYVwgOwor5Yqb5LiA5p2vID4gY2hpa2FyYWlwcGFpXCA7Civlh7rlk4HniakgPiBzaHVwcGluYnV0c3VcIDsKK+eBsOeZveiJsiA+IGthaWhha3VzaG9rdVwgOwor54us5bGF5a6kID4gZG9ra3lvc2hpdHN1XCA7CivmjqXlvoXkv4IgPiBzZXR0YWlnYWthcmlcIDsKK+S4h+W5tOmbqiA+IG1hbicnbmVuJyd5dWtpXCA7Civni4Lmg7Pmm7IgPiBreW91c291a3lva3VcIDsKK+S+teeVpeiAhSA+IHNoaW5yeWFrdXNoYVwgOwor55S65b255Lq6ID4gbWFjaGl5YWt1bmluXCA7CivomrDonJLnnIkgPiBnZWppZ2VqaW1heXVcIDsKK+Wtpue/kuWhviA+IGdha3VzaHV1anVrdVwgOwor5paw55m65aOyID4gc2hpbmhhdHN1YmFpXCA7Civnq7bkuonlipsgPiBreW91c291cnlva3VcIDsKK+WkseWQjeawjyA+IHNoaXRzdW1laXNoaVwgOwor6KGo5bqn5pW3ID4gb21vdGV6YXNoaWtpXCA7CivlvrTnmbrku6QgPiBjaG91aGF0c3VyZWlcIDsKK+WJr+WPjuWFpSA+IGZ1a3VzaHV1bnl1dVwgOwor5oGQ5Zad572qID4ga3lvdWthdHN1emFpXCA7CivlsYjmipjou7ggPiBrdXNzZXRzdWppa3VcIDsKK+WQiOWIh+iiiyA+IGdhc3NhaWJ1a3Vyb1wgOwor5raI5oGv6YCaID4gc2hvdXNva3V0c3V1XCA7CivmoKrkuLvmqKkgPiBrYWJ1bnVzaGlrZW5cIDsKK+WNoOacieeOhyA+IHNlbicneXV1cml0c3VcIDsKK+WNl+S6rOiiiyA+IG5hbmtpbmJ1a3Vyb1wgOwor6auY6auY5oyHID4gdGFrYXRha2F5dWJpXCA7Civnmb3oibLlhYkgPiBoYWt1c2hva3Vrb3VcIDsKK+mQmOS5s+efsyA+IHNob3VueXV1c2VraVwgOwor5pel57Gz5Y2UID4gbmljaGliZWlreW91XCA7CivlsYjmipjop5IgPiBrdXNzZXRzdWtha3VcIDsKK+auuuS6uueahCA+IHNhdHN1amludGVraVwgOwor5bem5Zuj5omHID4gaGlkYXJpdWNoaXdhXCA7CivpmLLlobXlrqQgPiBib3VqaW5zaGl0c3VcIDsKK+WQq+acieeOhyA+IGdhbicneXV1cml0c3VcIDsKK+iEiOaQj+aVsCA+IG15YWt1aGFrdXN1dVwgOwor5o6o6YCy5YqbID4gc3Vpc2hpbnJ5b2t1XCA7Civogb7moZ/mlbcgPiB0c3VuYm9zYWppa2lcIDsKK+e4rue3rOeauiA+IGNoaXJpbWVuaml3YVwgOwor5q665Lq654uCID4gc2F0c3VqaW5reW91XCA7CivovLjlh7rlhaUgPiB5dXNodXRzdW55dXVcIDsKK+ims+WuouW4rSA+IGthbmt5YWt1c2VraVwgOwor5ZG95Yal5YqgID4gaW5vY2hpbXlvdWdhXCA7Civooajlha3njokgPiBoeW91cm9rdWRhbWFcIDsKK+ajruael+a1tCA+IHNoaW5yaW4nJ3lva3VcIDsKK+iAleS9nOeJqSA+IGtvdXNha3VidXRzdVwgOwor54iG55m6566hID4gYmFrdWhhdHN1a2FuXCA7Civpu5LlhavkuIggPiBrdXJvaGFjaGlqb3VcIDsKK+WNiui6q+a1tCA+IGhhbnNoaW4nJ3lva3VcIDsKK+aal+e3keiJsiA+IGFucnlva3VzaG9rdVwgOwor562L6IKJ55ebID4ga2luJyduaWt1dHN1dVwgOwor6IG36IO957WmID4gc2hva3Vub3VreXV1XCA7CivmlrDnlJ/niakgPiBzaGluc2VpYnV0c3VcIDsKK+WHjOmchOiKsSA+IG5vdXplbmthenVyYVwgOwor6buS6Imy5bCJID4ga29rdXNoaWtpam91XCA7CivlgbbnmbrnmoQgPiBndXVoYXRzdXRla2lcIDsKK+eJueeUo+eJqSA+IHRva3VzYW5idXRzdVwgOwor5YyW57Kn5a6kID4ga2VzaG91c2hpdHN1XCA7Civnt4/mlK/lh7ogPiBzb3VzaGlzaHV0c3VcIDsKK+WTsuWtpuabuCA+IHRldHN1Z2FrdXNob1wgOwor5Y2a54mp6aSoID4gaGFrdWJ1dHN1a2FuXCA7Civku7Lku4vniakgPiBjaHV1a2FpYnV0c3VcIDsKK+eZvemgrem3siA+IGhha3V0b3V3YXNoaVwgOwor5pyA5paw5byPID4gc2Fpc2hpbnNoaWtpXCA7CivlsbHoupHouoUgPiB5YW1hdHN1dHN1amlcIDsKK+ecgembu+WKmyA+IHNob3VkZW5yeW9rdVwgOwor5LiA5Yy554u8ID4gaXBwaWtpb29rYW1pXCA7Civmtojmga/nrYsgPiBzaG91c29rdXN1amlcIDsKK+S4h+W5tOethiA+IG1hbicnbmVuaGl0c3VcIDsKK+S7h+WQjOawjyA+IGthdGFraWRvdXNoaVwgOwor5bGA5Zyw55qEID4ga3lva3VjaGl0ZWtpXCA7CivpnanmiYvooosgPiBrYXdhdGVidWt1cm9cIDsKK+S4g+WIhuiiliA+IHNoaWNoaWJ1c29kZVwgOwor5b+D6ZyK6KGTID4gc2hpbnJlaWp1dHN1XCA7Civmnb7nq7nmooUgPiBzaG91Y2hpa3ViYWlcIDsKK+aguOmWi+eZuiA+IGtha3VrYWloYXRzdVwgOwor5Zu96Zqb6ImyID4ga29rdXNhaXNob2t1XCA7CivlrZDkvpvlv4MgPiBrb2RvbW9nb2tvcm9cIDsKK+WLhemBuOmbhiA+IGNob2t1c2Vuc2h1dVwgOwor57K+56We5YqbID4gc2Vpc2hpbnJ5b2t1XCA7Civlho3nqoHlhaUgPiBzYWl0b3RzdW55dXVcIDsKK+eZuuS/oeWxgCA+IGhhc3NoaW5reW9rdVwgOwor5aSn5ZKM5b+DID4geWFtYXRvZ29rb3JvXCA7Civoqr/lvovluKsgPiBjaG91cml0c3VzaGlcIDsKK+i+nuiBt+mhmCA+IGppc2hva3VuZWdhaVwgOwor6Kaq5a+G5oSfID4gc2hpbm1pdHN1a2FuXCA7CivnqpPpmpvml48gPiBtYWRvZ2l3YXpva3VcIDsKK+WGmeecn+ihkyA+IHNoYXNoaW5qdXRzdVwgOwor5b6p5YWD5YqbID4gZnVrdWdlbnJ5b2t1XCA7CivovLvlsITnhrEgPiBmdWt1c2hhbmV0c3VcIDsKK+S+m+i/sOiAhSA+IGt5b3VqdXRzdXNoYVwgOwor56We57WM56+AID4gc2hpbmtlaXNldHN1XCA7CivniIbnmbrmgKcgPiBiYWt1aGF0c3VzZWlcIDsKK+WFqOaXpeWItiA+IHplbicnbmljaGlzZWlcIDsKK+a2iOavkuiWrCA+IHNob3Vkb2t1eWFrdVwgOwor6YGT5b6z5b6LID4gZG91dG9rdXJpdHN1XCA7Civlm73pmLLoibIgPiBrb2t1Ym91c2hva3VcIDsKK+e1guacq+irliA+IHNodXVtYXRzdXJvblwgOwor5bCG6LuN6IG3ID4gc2hvdWd1bnNob2t1XCA7CivojYnmnIjmtYEgPiBzb3VnZXRzdXJ5dXVcIDsKK+aYjui1pOiJsiA+IG1laXNla2lzaG9rdVwgOwor5LuY552A5YqbID4gZnVjaGFrdXJ5b2t1XCA7Civop6PmsbrnrZYgPiBrYWlrZXRzdXNha3VcIDsKK+WPo+WUh+ijgiA+IGtvdXNoaW5yZXRzdVwgOwor5LiD6I2J57KlID4gbmFuYWt1c2FnYXl1XCA7CivllYbmpa3lraYgPiBzaG91Z3lvdWdha3VcIDsKK+W7uuioreecgSA+IGtlbnNldHN1c2hvdVwgOwor5YiG5Yil5b+DID4gZnVuYmV0c3VzaGluXCA7Civlu7roqK3nmoQgPiBrZW5zZXRzdXRla2lcIDsKK+S6jOe/u+W9uSA+IHJ5YW5mYW4nJ3lha3VcIDsKK+WPo+aLjeWtkCA+IGt1Y2hpYnlvdXNoaVwgOwor6KqN6Ki85byPID4gbmluc2hvdXNoaWtpXCA7Civnt4/mi6znmoQgPiBzb3VrYXRzdXRla2lcIDsKK+aJmOmJouWDpyA+IHRha3VoYXRzdXpvdVwgOwor5ZWG5qWt5Zu9ID4gc2hvdWd5b3Vrb2t1XCA7Civku7Lkurrlj6MgPiBuYWtvdWRvZ3VjaGlcIDsKK+ahnOWJjee3miA+IHNha3VyYXplbnNlblwgOwor6b6N6IiM6JitID4gcnl1dXpldHN1cmFuXCA7CivlvLfliLblipsgPiBreW91c2Vpcnlva3VcIDsKK+W/heiqreabuCA+IGhpdHN1ZG9rdXNob1wgOwor5Zyn5Yqb6KiIID4gYXRzdXJ5b2t1a2VpXCA7Civpmo/nrYbpm4YgPiB6dWloaXRzdXNodXVcIDsKK+eMq+ebruefsyA+IG5la29tb2t1c2VraVwgOwor5YuJ5by35py6ID4gYmVua3lvdXp1a3VlXCA7Civnmb3njonmpbwgPiBoYWt1Z3lva3Vyb3VcIDsKK+mWi+mAmuW8jyA+IGthaXRzdXVzaGlraVwgOwor6KW/5Y2K55CDID4gbmlzaGloYW5reXV1XCA7CivllYTmnKjps6UgPiB0YWt1Ym9rdWNob3VcIDsKK+WNmOS4gOW9oiA+IHRhbicnaWNoaWdhdGFcIDsKK+W/heeEtueahCA+IGhpdHN1emVudGVraVwgOwor5rC06J+36J6CID4gbWl6dWthbWFraXJpXCA7CivmmJ/mnIjlpJwgPiBob3NoaWR6dWt1eW9cIDsKK+e4nue5lOeJqSA+IHNoaW1hb3JpbW9ub1wgOwor5bu66Kit5qWtID4ga2Vuc2V0c3VneW91XCA7CivpvLvpq5jjgIUgPiBoYW5hdGFrYWRha2FcIDsKK+WVhuS6uuihlyA+IHNob3VuaW5tYWNoaVwgOwor5LiA5bmV54mpID4gaGl0b21ha3Vtb25vXCA7Civnmb7kurrlipsgPiBoeWFrdW5pbnJpa2lcIDsKK+S+m+i/sOabuCA+IGt5b3VqdXRzdXNob1wgOwor5a6f5qWt55WMID4gaml0c3VneW91a2FpXCA7CivooYzlubPpjYsgPiB5dWtpaGlyYW5hYmVcIDsKK+iQveaIkOW8jyA+IHJha3VzZWlzaGlraVwgOwor5p+z5bed6Y2LID4geWFuYWdhd2FuYWJlXCA7CivoiKrntprlipsgPiBrb3V6b2t1cnlva3VcIDsKK+ebtOaOpeiyuyA+IGNob2t1c2V0c3VoaVwgOwor5bGx5qKo55yMID4geWFtYW5hc2hpa2VuXCA7Civmo5fmpLDlrZAgPiBuYXRzdW1leWFzaGlcIDsKK+WIuua/gOeJqSA+IHNoaWdla2lidXRzdVwgOwor5ryr6YGK5a6iID4gbWFuJyd5dXVreWFrdVwgOwor6aOf54mp5rK5ID4gc2hva3VidXRzdXl1XCA7Civnk6bnhY7ppIUgPiBrYXdhcmFzZW5iZWlcIDsKK+imquWtkOS4vCA+IG95YWtvZG9uYnVyaVwgOwor6JGX6L+w5qWtID4gY2hvanV0c3VneW91XCA7Civokrznmb3oibIgPiBzb3VoYWt1c2hva3VcIDsKK+S4g+i+uuW9oiA+IHNoaWNoaWhlbmtlaVwgOwor5bm05pyr6L+EID4gbmVubWF0c3VtYWRlXCA7Civlo7LmmKXlrr8gPiBiYWlzaHVuJyd5YWRvXCA7Civos6rngrnns7sgPiBzaGl0c3V0ZW5rZWlcIDsKK+W+oeS8veipsSA+IG90b2dpYmFuYXNoaVwgOwor5pON5qWt546HID4gc291Z3lvdXJpdHN1XCA7CivmnpXlsY/poqggPiBtYWt1cmFieW91YnVcIDsKK+ihgOa2suWtpiA+IGtldHN1ZWtpZ2FrdVwgOwor5Z+6552j5pWZID4ga2lyaXN1dG9reW91XCA7CivpvKDoirHngasgPiBuZXp1bWloYW5hYmlcIDsKK+aNleeJqeW4syA+IHRvcmltb25vY2hvdVwgOwor5o2V54mp5biWID4gdG9yaW1vbm9jaG91XCA7Civosq/olLXlrqQgPiBjaG96b3VzaGl0c3VcIDsKK+W8lOWVj+WuoiA+IGNob3Vtb25reWFrdVwgOwor6YG65aSx54mpID4gaXNoaXRzdWJ1dHN1XCA7Civli5XohIjooYAgPiBkb3VteWFra2V0c3VcIDsKK+WFpeWgtOW8jyA+IG55dXVqb3VzaGlraVwgOwor57Sw6IOe6LOqID4gc2FpYm91c2hpdHN1XCA7CivooYDmtrLlnosgPiBrZXRzdWVraWdhdGFcIDsKK+aomeitmOeBryA+IGh5b3VzaGlraXRvdVwgOwor5YyF5ous55qEID4gaG91a2F0c3V0ZWtpXCA7CivliofkuK3liocgPiBnZWtpY2h1dWdla2lcIDsKK+Wun+eUqOeahCA+IGppdHN1eW91dGVraVwgOwor5L6N5YWr6aiOID4gc2FtdXJhaWhha2tpXCA7CivkuK3plpPoibIgPiBjaHV1a2Fuc2hva3VcIDsKK+mWi+iFueihkyA+IGthaWZ1a3VqdXRzdVwgOwor55u05pKD5by+ID4gY2hva3VnZWtpZGFuXCA7Civlia/nlKPniakgPiBmdWt1c2FuYnV0c3VcIDsKK+WRveS4reeOhyA+IG1laWNodXVyaXRzdVwgOwor6KGA5Y+L55eFID4ga2V0c3V5dXVieW91XCA7Civnsr7nmb3njocgPiBzZWloYWt1cml0c3VcIDsKK+Wdh+izquaApyA+IGtpbnNoaXRzdXNlaVwgOwor5oi457GN5L+CID4ga29zZWtpZ2FrYXJpXCA7CivmjqXlrqLmpa0gPiBzZWtreWFrdWd5b3VcIDsKK+iThOiGv+eXhyA+IGNoaWt1bm91c2hvdVwgOwor6Iqx5b2i5qCqID4gaGFuYWdhdGFrYWJ1XCA7CivmjK/lh7rkurogPiBmdXJpZGFzaGluaW5cIDsKK+iou+mHiOiAhSA+IGNodXVzaGFrdXNoYVwgOwor56aB5qyy55qEID4ga2luJyd5b2t1dGVraVwgOwor5LiA5YiG5YilID4gaGl0b2Z1bmJldHN1XCA7CivljYrni6znq4sgPiBoYW5kb2t1cml0c3VcIDsKK+Wft+WLmeS4rSA+IHNoaXRzdW11Y2h1dVwgOwor6Kaq5pel5rS+ID4gc2hpbicnbmljaGloYVwgOwor56aP5bO255yMID4gZnVrdXNoaW1ha2VuXCA7Civoqr/oibLmnb8gPiBjaG91c2hva3ViYW5cIDsKK+WJquWumumLjyA+IHNlbnRlaWJhc2FtaVwgOwor57eR6buE6ImyID4gcnlva3VvdXNob2t1XCA7CivkuIvlsYvmlbcgPiBzaGltb3lhc2hpa2lcIDsKK+i7iueUqOWTgSA+IGt1cnVtYXlvdWhpblwgOwor6ICQ5LmF5YqbID4gdGFpa3l1dXJ5b2t1XCA7Civlr53lj7DomasgPiBzaGluZGFpbXVzaGlcIDsKK+WXnOiZkOeahCA+IHNoaWd5YWt1dGVraVwgOwor5Lit57aZ5bGAID4gY2h1dWtlaWt5b2t1XCA7CivplbfluoPoiIwgPiBjaG91a291emV0c3VcIDsKK+aXpeayoeW+jCA+IG5pY2hpYm90c3Vnb1wgOwor5YuV6ISI55ikID4gZG91bXlha3VyeXV1XCA7CivkuIDovKrmjL8gPiBpY2hpcmluemFzaGlcIDsKK+iSuOeZuueavyA+IGpvdWhhdHN1emFyYVwgOwor6LOD5YCf5qipID4gY2hpbnNoYWt1a2VuXCA7CivljbjllY/lsYsgPiBvcm9zaGlkb24nJ3lhXCA7CivpmLLmub/liaQgPiBib3VzaGl0c3V6YWlcIDsKK+WPjuepq+mrmCA+IHNodXVrYWt1ZGFrYVwgOwor5YaN5Ye655m6ID4gc2Fpc2h1cHBhdHN1XCA7CivljZTlpY/mm7IgPiBreW91c291a3lva3VcIDsKK+WRqOalteaYnyA+IHNodXVreW9rdXNlaVwgOwor6Zu26KGM5YiXID4gcmVpZ3lvdXJldHN1XCA7Civlh7rnmbrngrkgPiBzaHVwcGF0c3V0ZW5cIDsKK+WQiOagvOeOhyA+IGdvdWtha3VyaXRzdVwgOwor6KGM6YCy5puyID4ga291c2hpbmt5b2t1XCA7Civnmb3nhrHnga8gPiBoYWt1bmV0c3V0b3VcIDsKK+mjn+aWmeWTgSA+IHNob2t1cnlvdWhpblwgOwor5pON6LuK5L+CID4gc291c2hhZ2FrYXJpXCA7CivliLrmiJ/niakgPiBzaGlnZWtpYnV0c3VcIDsKK+a5v+mbu+axoCA+IHNoaXRzdWRlbmNoaVwgOwor6Kaz5o6M6KGTID4ga2Fuc2hvdWp1dHN1XCA7CivnnJ/pqqjpoIIgPiBzaGlua290Y2hvdVwgOwor5b+F6KaB5ZOBID4gaGl0c3V5b3VoaW5cIDsKK+eUu+S4lueahCA+IGtha3VzZWl0ZWtpXCA7CivnhqjmlpfooosgPiBub3NoaWJ1a3Vyb1wgOwor5ris5Zyw5a2mID4gc29rdWNoaWdha3VcIDsKK+mbgeacqOmRoiA+IGdhbmdpeWFzdXJpXCA7Civlho3libLlvJUgPiBzYWl3YXJpYmlraVwgOwor5aWJ54yu5byPID4gaG91a2Vuc2hpa2lcIDsKK+WIneiqleeUnyA+IGhhdHN1dGFuam91XCA7CivkuInmnKzotrMgPiBzYW5ib24nJ2FzaGlcIDsKK+WIpOaWreWKmyA+IGhhbmRhbnJ5b2t1XCA7CivljZToqr/mgKcgPiBreW91Y2hvdXNlaVwgOwor5aSp6YGT5Lm+ID4gdGVudG91Ym9zaGlcIDsKK+eZveaXpeWkoiA+IGhha3VqaXRzdW11XCA7CivliIbmnpDooaggPiBidW5zZWtpaHlvdVwgOwor5om/6Ku+5pu4ID4gc2hvdWRha3VzaG9cIDsKK+Wwkemjn+WutiA+IHNob3VzaG9rdWthXCA7Civku67ln7fooYwgPiBrYXJpc2hpa2tvdVwgOwor5o+h5Yqb6KiIID4gYWt1cnlva3VrZWlcIDsKK+S4jei2s+WLnSA+IGZ1c29rdWdhY2hpXCA7CivlvozpgLLlm70gPiBrb3VzaGlua29rdVwgOwor5rSX55y86JasID4gc2VuZ2FuJyd5YWt1XCA7Civlvqnnv5LmlocgPiBmdWt1c2h1dWJ1blwgOwor5q2i6KGA5bivID4gc2hpa2V0c3V0YWlcIDsKK+S4i+Wuv+aWmSA+IGdlc2h1a3VyeW91XCA7Civph43ph4/ntJogPiBqdXVyeW91a3l1dVwgOwor5YmN6YCy6Lu4ID4gemVuc2hpbmppa3VcIDsKK+mJhOefs+W/gyA+IHRlc3Nla2lzaGluXCA7CivnlJjojLbolJMgPiBhbWFjaGFkenVydVwgOwor572y5ZCN5byPID4gc2hvbWVpc2hpa2lcIDsKK+S6uuW/g+WcsCA+IGhpdG9nb2tvY2hpXCA7Civlm5rkurrmnI0gPiBzaHV1amluZnVrdVwgOwor5b6L5YSA6ICFID4gcmljaGlnaW1vbm9cIDsKK+mbgeacqOi7iiA+IGdhbmdpZ3VydW1hXCA7CivmhoLmrJ3nl4cgPiB5dXV1dHN1c2hvdVwgOwor5a6f6aiT5byPID4gamlra2Vuc2hpa2lcIDsKK+eLguS/oeiAhSA+IGt5b3VzaGluc2hhXCA7CivmsJHml4/nmoQgPiBtaW56b2t1dGVraVwgOwor55m66KiA6ICFID4gaGF0c3VnZW5zaGFcIDsKK+WNmOe4puWIlyA+IHRhbmp1dXJldHN1XCA7CivkuInkurrntYQgPiBzYW4nJ25pbmd1bWlcIDsKK+m7kuaWkeeXhSA+IGtva3VoYW5ieW91XCA7CivmgqrmgqrmiK8gPiB3YXJ1aXRhenVyYVwgOwor5a6f55So5ZOBID4gaml0c3V5b3VoaW5cIDsKK+Wkp+iFv+mqqCA+IGRhaXRhaWtvdHN1XCA7CivmsLTonJzmoYMgPiBzdWltaXRzdXRvdVwgOwor5ryC5rWB6Ii5ID4gaHlvdXJ5dXVzZW5cIDsKK+mguOWLleiEiCA+IGtlaWRvdW15YWt1XCA7CivnlJ/lhbXms5UgPiBuYW1hYnlvdWhvdVwgOwor54OP57696ImyID4ga2FyYXN1YmFpcm9cIDsKK+W8n+W8n+WtkCA+IG90b3V0b2Rlc2hpXCA7CivliofmloflraYgPiBnZWtpYnVuZ2FrdVwgOwor5Yqg6Jas6aOvID4ga2F5YWt1bWVzaGlcIDsKK+WMl+WNiueQgyA+IGtpdGFoYW5reXV1XCA7Civpm4bkuK3nt5ogPiBzaHV1Y2h1dXNlblwgOwor5b6X5qWt5aOrID4gdG9rdWd5b3VzaGlcIDsKK+WJjemAsuinkiA+IHplbnNoaW5rYWt1XCA7CivppIrmrpbmsaAgPiB5b3VzaG9rdWNoaVwgOwor5Zec6JmQ5oCnID4gc2hpZ3lha3VzZWlcIDsKK+S4ieS6uuensCA+IHNhbicnbmluc2hvdVwgOwor5Lit57Sa5ZOBID4gY2h1dWt5dXVoaW5cIDsKK+a8gua1geiAhSA+IGh5b3VyeXV1c2hhXCA7Civoqpjmg5HniakgPiB5dXV3YWt1bW9ub1wgOwor6aCt6JOL6aqoID4gdG91Z2Fpa290c3VcIDsKK+eZuuaYjuWTgSA+IGhhdHN1bWVpaGluXCA7CivlpLHmoLzogIUgPiBzaGlra2FrdXNoYVwgOwor5oiQ57i+6KGoID4gc2Vpc2VraWh5b3VcIDsKK+azqOaWh+WFiCA+IGNodXVtb25zYWtpXCA7Civml6Lmsbrlm5ogPiBraWtldHN1c2h1dVwgOwor5pGC5YuV6KuWID4gc2V0c3Vkb3Vyb25cIDsKK+S8j+a1geawtCA+IGZ1a3VyeXV1c3VpXCA7Civni6zoo4HnmoQgPiBkb2t1c2FpdGVraVwgOwor6auY6Kq/5a2QID4gdGFrYWNob3VzaGlcIDsKK+eri+iEmuWcsCA+IHJpa2t5YWt1Y2hpXCA7Civlho3mp4vnr4kgPiBzYWlrb3VjaGlrdVwgOwor5quT5aSq6byTID4geWFndXJhZGFpa29cIDsKK+atouihgOWJpCA+IHNoaWtldHN1emFpXCA7CivkuKHmlrnlhbEgPiByeW91aG91dG9tb1wgOwor5p2+6JGJ5p2WID4gbWF0c3ViYWR6dWVcIDsKK+ayluepjee1sSA+IGNodXVzZWtpdG91XCA7Civku5XkuovnrrEgPiBzaGlnb3RvYmFrb1wgOwor5rC36YaL6YW4ID4gaHlvdXNha3VzYW5cIDsKK+abuOexjeWVhiA+IHNob3Nla2lzaG91XCA7Civku67ntrTmnKwgPiBrYXJpdG9qaWhvblwgOwor55m66Zu75omAID4gaGF0c3VkZW5zaG9cIDsKK+WumOiDveeahCA+IGthbicnbm91dGVraVwgOwor5pyr5qKi55qEID4gbWFzc2hvdXRla2lcIDsKK+S4remWk+WbvSA+IGNodXVrYW5rb2t1XCA7CivmgJ3ntKLnmoQgPiBzaGlzYWt1dGVraVwgOwor5Ye66Lqr5qChID4gc2h1c3NoaW5rb3VcIDsKK+eBsOmdkuiJsiA+IGhhaXNlaXNob2t1XCA7CivoiKrmtbfooZMgPiBrb3VrYWlqdXRzdVwgOwor5bCP5p2x5LqsID4gc2hvdXRvdWt5b3VcIDsKK+WNg+S6uuWKmyA+IHNlbicnbmlucmlraVwgOwor5Lq65bel6IqdID4gamlua291c2hpYmFcIDsKK+i7vemHj+e0miA+IGtlaXJ5b3VreXV1XCA7Civmi5jmnZ/lnKcgPiBrb3Vzb2t1YXRzdVwgOwor5oim6ZeY5YqbID4gc2VudG91cnlva3VcIDsKK+eQg+mdoumPoSA+IGt5dXVtZW5reW91XCA7CivkurrlvaLliocgPiBuaW5neW91Z2VraVwgOwor54Sh6aqo6ICFID4gYnVrb3RzdW1vbm9cIDsKK+eUuuWlieihjCA+IG1hY2hpYnVneW91XCA7CivnqbroqLzmlocgPiBrYXJhc2hvdW1vblwgOwor5rC36YWi6YW4ID4gaHlvdXNha3VzYW5cIDsKK+aUvueJqee3miA+IGhvdWJ1dHN1c2VuXCA7Civoqr/lrZDogIUgPiBjaG91c2hpbW9ub1wgOwor54++5a6f5oSfID4gZ2Vuaml0c3VrYW5cIDsKK+epjeWIhuWtpiA+IHNla2lidW5nYWt1XCA7Civnj77lrp/mgKcgPiBnZW5qaXRzdXNlaVwgOwor6auY6Zu75ZynID4ga291ZGVuJydhdHN1XCA7CivlrabllY/nmoQgPiBnYWt1bW9udGVraVwgOwor5a2m56m255qEID4gZ2Fra3l1dXRla2lcIDsKK+WPjuepq+elrSA+IHNodXVrYWt1c2FpXCA7CivniannkIblraYgPiBidXRzdXJpZ2FrdVwgOwor5Z6C55u057eaID4gc3VpY2hva3VzZW5cIDsKK+attOWPsuWtpiA+IHJla2lzaGlnYWt1XCA7CivmvaTmu5HliaQgPiBqdW5rYXRzdXphaVwgOwor57WE57mU5a2mID4gc29zaGlraWdha3VcIDsKK+eZuumbu+WtkCA+IGhhdHN1ZGVuc2hpXCA7CivkuInlsIrku48gPiBzYW56b25idXRzdVwgOwor5byV5Y+W5Lq6ID4gaGlraXRvcmluaW5cIDsKK+a8guaziuiAhSA+IGh5b3VoYWt1c2hhXCA7CivnnJ/nlLDomasgPiBzYW5hZGFtdXNoaVwgOwor6ZeH5ZWG5Lq6ID4geWFtaXNob3VuaW5cIDsKK+WFpea8geaWmSA+IG55dXVneW9yeW91XCA7CivkuIPlrp3nhLwgPiBzaGlwcG91eWFraVwgOwor6Yu86YmE5p2/ID4ga291dGV0c3ViYW5cIDsKK+WEquiJr+agqiA+IHl1dXJ5b3VrYWJ1XCA7CivmnKzmoLznmoQgPiBob25rYWt1dGVraVwgOwor5b6p6K6Q5oimID4gZnVrdXNodXVzZW5cIDsKK+aatOWKm+WboyA+IGJvdXJ5b2t1ZGFuXCA7CivliJ3oqLrmlpkgPiBzaG9zaGlucnlvdVwgOwor5Y+j6YGU6ICFID4ga3VjaGlkYXNzaGFcIDsKK+iAkOeGseaApyA+IHRhaW5ldHN1c2VpXCA7CivlopfooYDliaQgPiB6b3VrZXRzdXphaVwgOwor5YyX5YyX5p2xID4gaG9rdWhva3V0b3VcIDsKK+eZuuiogOaoqSA+IGhhdHN1Z2Vua2VuXCA7CivmgKXmiJDplbcgPiBreXV1c2VpY2hvdVwgOwor5Ye66LOH6aGNID4gc2h1c3NoaWdha3VcIDsKK+WGheWIhuazjCA+IG5haWJ1bnBpdHN1XCA7Civlm5vml6znr4AgPiBzaGlqdW5zZXRzdVwgOwor5Lmd5a6Y6bOlID4ga3l1dWthbmNob3VcIDsKK+iAgeS6uuWKmyA+IHJvdWppbnJ5b2t1XCA7Civlu7rnr4nlo6sgPiBrZW5jaGlrdXNoaVwgOwor5aSq5qW15ouzID4gdGFpa3lva3VrZW5cIDsKK+eUn+eVque1hCA+IG5hbWFiYW5ndW1pXCA7CivppIrmrpbloLQgPiB5b3VzaG9rdWpvdVwgOwor6Jma6ISx5oSfID4ga3lvZGF0c3VrYW5cIDsKK+ixoeeJmeizqiA+IHpvdWdlc2hpdHN1XCA7CivpmobpvLvooZMgPiByeXV1YmlqdXRzdVwgOwor6KGo6Z2i56mNID4gaHlvdW1lbnNla2lcIDsKK+WKquWKm+izniA+IGRvcnlva3VzaG91XCA7CivljYHkurrkuKYgPiBqdXVuaW4nJ25hbWlcIDsKK+iWrOmRtemgrSA+IHlha2FuJydhdGFtYVwgOwor5ZWG5aOy562LID4gc2hvdWJhaXN1amlcIDsKK+a4r+a5vuWxgCA+IGtvdXdhbmt5b2t1XCA7CivmsLTllYblo7IgPiBtaXp1c2hvdWJhaVwgOwor6YmE6YGT5L6/ID4gdGV0c3Vkb3ViaW5cIDsKK+awkeaXj+WtpiA+IG1pbnpva3VnYWt1XCA7CivmrbTlj7LliocgPiByZWtpc2hpZ2VraVwgOwor5rqd5b2i6Yu8ID4gbWl6b2dhdGFrb3VcIDsKK+aYjuaZsOWkoiA+IG1laXNla2l5dW1lXCA7CivpgKDooYDliaQgPiB6b3VrZXRzdXphaVwgOwor5pat57aa55qEID4gZGFuem9rdXRla2lcIDsKK+W8j+mDqOecgSA+IHNoaWtpYnVzaG91XCA7CivmpbXpgZPogIUgPiBnb2t1ZG91bW9ub1wgOwor6ZaL5qCh5byPID4ga2Fpa291c2hpa2lcIDsKK+awkee0hOirliA+IG1pbicneWFrdXJvblwgOwor6Ziy5b6h546HID4gYm91Z3lvcml0c3VcIDsKK+ihqOmdoueahCA+IGh5b3VtZW50ZWtpXCA7CivoqIjmmYLkv4IgPiBrZWlqaWdha2FyaVwgOwor5b6M55m65ZOBID4ga291aGF0c3VoaW5cIDsKK+iWqeaRqeeEvCA+IHNhdHN1bWF5YWtpXCA7Civlh7rouqvlnLAgPiBzaHVzc2hpbmNoaVwgOwor6K236Lqr6KGTID4gZ29zaGluanV0c3VcIDsKK+S4juWkquipsSA+IHlvdGFiYW5hc2hpXCA7Civlho3lhaXlraYgPiBzYWlueXV1Z2FrdVwgOwor5Y2U57SE5pu4ID4ga3lvdXlha3VzaG9cIDsKK+iqv+WtkOeJqSA+IGNob3VzaGltb25vXCA7CivkuInnvr3ng48gPiBzYW5iYWdhcmFzdVwgOwor6Kiq5ZWP5a6iID4gaG91bW9ua3lha3VcIDsKK+ayu+mok+iWrCA+IGNoaWtlbicneWFrdVwgOwor5oCn5ZaE6KqsID4gc2VpemVuc2V0c3VcIDsKK+S7leS6i+afhCA+IHNoaWdvdG9nYXJhXCA7CivlpKfmoLnotrMgPiBkYWlrb24nJ2FzaGlcIDsKK+WFieeArOm+jSA+IG1pdHN1c2VyeXV1XCA7Civni7zol4nogIUgPiByb3V6ZWtpbW9ub1wgOwor5b+D5ouN5pWwID4gc2hpbnBha3VzdXVcIDsKK+WLleeJqeiqjCA+IGRvdWJ1dHN1c2hpXCA7Civov5TljbTlgKQgPiBoZW5reWFrdWNoaVwgOwor54Sh6aeE6KmxID4gbXVkYWJhbmFzaGlcIDsKK+WIhuWtkOW8jyA+IGJ1bnNoaXNoaWtpXCA7CivpmY3ou4rlj6MgPiBrb3VzaGFndWNoaVwgOwor5qSc5Ye65ZmoID4ga2Vuc2h1dHN1a2lcIDsKK+iQveiRieadviA+IHJha3V5b3VzaG91XCA7CivmpbXliY3nt5ogPiBreW9rdXplbnNlblwgOwor6LaF6LaK54K5ID4gY2hvdWV0c3V0ZW5cIDsKK+m7kueMqeOAhSA+IGt1cm9zaG91am91XCA7Civlm73mhbbnr4AgPiBrb2trZWlzZXRzdVwgOwor5aSp55Sj54mpID4gdGVuc2FuYnV0c3VcIDsKK+e0s+Wjq+mMsiA+IHNoaW5zaGlyb2t1XCA7Civlho3lhaXlm70gPiBzYWlueXV1a29rdVwgOwor57Ch5r2U5oCnID4ga2Fua2V0c3VzZWlcIDsKK+WIh+aWremdoiA+IHNldHN1ZGFubWVuXCA7CivlvJXovrznt5ogPiBoaWtpa29taXNlblwgOwor57KX5b+96ICFID4gc29rb3RzdW1vbm9cIDsKK+mWi+S8muW8jyA+IGthaWthaXNoaWtpXCA7CivmhJ/lgrfnmoQgPiBrYW5zaG91dGVraVwgOwor5biC5pyJ54mpID4gc2hpeXV1YnV0c3VcIDsKK+iBluiBt+iAhSA+IHNlaXNob2t1c2hhXCA7CivkuK3ooaPlmqIgPiBuYWthZ2FrdXNoaVwgOwor54us56uL6KqeID4gZG9rdXJpdHN1Z29cIDsKK+iCsuWFkOWupCA+IGlrdWppc2hpdHN1XCA7CivnuYHmrpblnLAgPiBoYW5zaG9rdWNoaVwgOwor5LiA5Lq656ewID4gaWNoaW5pbnNob3VcIDsKK+mVt+W0juecjCA+IG5hZ2FzYWtpa2VuXCA7Civpm7vlipvoqIggPiBkZW5yeW9rdWtlaVwgOwor6KO95rC355q/ID4gc2VpaHlvdXphcmFcIDsKK+S4u+eojuWxgCA+IHNodXplaWt5b2t1XCA7CivmjqXntproqp4gPiBzZXRzdXpva3Vnb1wgOwor54m56ZuG5Y+3ID4gdG9rdXNodXVnb3VcIDsKK+m7kuikkOiJsiA+IGtva2thc3Nob2t1XCA7CivkuK3lm73kurogPiBjaHV1Z29rdWppblwgOwor5b6T5bGe5Zu9ID4ganV1em9rdWtva3VcIDsKK+WPo+i/lOetlCA+IGt1Y2hpaGVudG91XCA7CivmuJvoobDnjocgPiBnZW5zdWlyaXRzdVwgOwor5bCO6Zu7546HID4gZG91ZGVucml0c3VcIDsKK+S4gOS6huewoSA+IGljaGlyeW91a2FuXCA7Civlho3ovLjlh7ogPiBzYWl5dXNodXRzdVwgOwor6Z2S6YqF6ImyID4gc2VpZG91c2hva3VcIDsKK+maiuWVhuWuvyA+IHRhaXNob3V5YWRvXCA7CivlvI/mrKHnrKwgPiBzaGlraXNoaWRhaVwgOwor55Sf55Sj54mpID4gc2Vpc2FuYnV0c3VcIDsKK+W5u+immueXhyA+IGdlbmtha3VzaG91XCA7CivmipXmiYvlipsgPiB0b3VzaHVyeW9rdVwgOwor6ZaJ5Lya5byPID4gaGVpa2Fpc2hpa2lcIDsKK+ayluepjeWxpCA+IGNodXVzZWtpc291XCA7CivlgqznnKDooZMgPiBzYWltaW5qdXRzdVwgOwor6J2Z6J2g5YKYID4ga291bW9yaWdhc2FcIDsKK+WQkeaXpeaApyA+IGtvdW5pY2hpc2VpXCA7CivlkLjlj5bntJkgPiBzdWl0b3JpZ2FtaVwgOwor5oaC6ayx55eHID4geXV1dXRzdXNob3VcIDsKK+mrmOWcp+eahCA+IGtvdWF0c3V0ZWtpXCA7CivmnInlipvogIUgPiB5dXVyeW9rdXNoYVwgOwor5Yil5ZWP6aGMID4gYmV0c3Vtb25kYWlcIDsKK+S7o+aVsOW8jyA+IGRhaXN1dXNoaWtpXCA7CivlhaXmuK/mlpkgPiBueXV1a291cnlvdVwgOwor54Sh5a6/6ICFID4gbXVzaHVrdW1vbm9cIDsKK+WOn+WtkOWKmyA+IGdlbnNoaXJ5b2t1XCA7CivmiJDmloflvosgPiBzZWlidW5yaXRzdVwgOwor55S35LiA5Yy5ID4gb3Rva29pcHBpa2lcIDsKK+Whnuagk+eXhyA+IHNva3VzZW5zaG91XCA7CivllYblo7Lmn4QgPiBzaG91YmFpZ2FyYVwgOwor6IW56Laz6aGeID4gZnVrdXNva3VydWlcIDsKK+adseWNsOW6piA+IGhpZ2FzaGlpbmRvXCA7Civos4fmnKzlipsgPiBzaGlob25yeW9rdVwgOwor56WH5ZyS56WtID4gZ2lvbm1hdHN1cmlcIDsKK+S4iuS6rOS4rSA+IGpvdWt5b3VjaHV1XCA7CivlgqznnKDolqwgPiBzYWltaW4nJ3lha3VcIDsKK+ePvuixoeWtpiA+IGdlbnNob3VnYWt1XCA7Civnp4vmtKXls7YgPiBha2l0c3VzaGltYVwgOwor576K5bCP5bGLID4gaGl0c3VqaWdveWFcIDsKK+ijhemjvuWTgSA+IHNvdXNob2t1aGluXCA7CivljYPml6XmiYsgPiBzZW4nJ25pY2hpdGVcIDsKK+akjeawkeWcsCA+IHNob2t1bWluY2hpXCA7CivlpJbliIbms4wgPiBnYWlidW5waXRzdVwgOwor6Zqj6L+R5omAID4gdG9uYXJpa2luam9cIDsKK+WvvumgguinkiA+IHRhaWNob3VrYWt1XCA7CivogqnnlLLpqqggPiBrZW5rb3Vrb3RzdVwgOwor6IWw5byB5b2TID4ga29zaGliZW50b3VcIDsKK+WPo+W3p+iAhSA+IGt1Y2hpZ291c2hhXCA7CivkuI3kuJblh7ogPiBmdXNlaXNodXRzdVwgOwor5YWI5pel5LuYID4gc2FraWhpZHp1a2VcIDsKK+mAj+imluWKmyA+IHRvdXNoaXJ5b2t1XCA7CivlibXoqK3ogIUgPiBzb3VzZXRzdXNoYVwgOwor6YeR6a2a6YmiID4ga2luZ3lvYmFjaGlcIDsKK+ihkuWtpueahCA+IGdlbmdha3V0ZWtpXCA7Civph5Hnn7PlraYgPiBraW5zZWtpZ2FrdVwgOwor6YeO6I+c55WRID4geWFzYWliYXRha2VcIDsKK+ebtOaEn+eahCA+IGNob2trYW50ZWtpXCA7Civli5Xniannm7ggPiBkb3VidXRzdXNvdVwgOwor6LOD5LuV5LqLID4gY2hpbnNoaWdvdG9cIDsKK+eJueioseS4uyA+IHRva2t5b251c2hpXCA7CivlpYnntI3niakgPiBob3Vub3VidXRzdVwgOwor5L+d6YeI5LitID4gaG9zaGFrdWNodXVcIDsKK+mdkuiXjeiJsiA+IHNlaXJhbnNob2t1XCA7CivohIXov6vogIUgPiBreW91aGFrdXNoYVwgOwor5YuV54mp55WMID4gZG91YnV0c3VrYWlcIDsKK+mAmuihjOS4iiA+IHRzdXVrb3Vkb21lXCA7CivlvLflparogIUgPiBnb3VkYXRzdXNoYVwgOwor6ISF6L+r572qID4ga3lvdWhha3V6YWlcIDsKK+Wbo+e1kOaoqSA+IGRhbmtldHN1a2VuXCA7CivntITljYrlubQgPiB5YWt1aGFuJyduZW5cIDsKK+aKleelqOeusSA+IHRvdWh5b3ViYWtvXCA7CivntKDkurroirggPiBzaGlyb3V0b2dlaVwgOwor56mN5qW15oCnID4gc2Vra3lva3VzZWlcIDsKK+alteW6p+aomSA+IGt5b2t1emFoeW91XCA7Civlr53mraPmnIggPiBuZXNob3VnYXRzdVwgOwor5rWa5rir5qmfID4gc2h1bnNldHN1a2lcIDsKK+e/vOmdouepjSA+IHlva3VtZW5zZWtpXCA7Civnt4/nm67pjLIgPiBzb3Vtb2t1cm9rdVwgOwor5qC45Y+N5b+cID4ga2FrdWhhbicnbm91XCA7CivliLbphbjolqwgPiBzZWlzYW4nJ3lha3VcIDsKK+i2heS6uueahCA+IGNob3VqaW50ZWtpXCA7CivnrKzkuIDmtYEgPiBkYWlpY2hpcnl1dVwgOwor6Laz5ouN5a2QID4gYXNoaWJ5b3VzaGlcIDsKK+W8seadkOaWmSA+IHlvd2F6YWlyeW91XCA7CivmjqXop6bnt5ogPiBzZXNzaG9rdXNlblwgOwor5b255Yqb5aOrID4geWFrdXJpa2lzaGlcIDsKK+e1sei9hOiAhSA+IHRvdWthdHN1c2hhXCA7Civku5XkuovkuK0gPiBzaGlnb3RvY2h1dVwgOwor5Zyf55m+5aeTID4gZG9ieWFrdXNob3VcIDsKK+aWh+WtpuizniA+IGJ1bmdha3VzaG91XCA7Civmi5voq4vlm70gPiBzaG91c2Vpa29rdVwgOwor57eP5Y+O5YWlID4gc291c2h1dW55dXVcIDsKK+a4rOmHj+iIuSA+IHNva3VyeW91c2VuXCA7CivlgJ/lnLDmqKkgPiBzaGFrdWNoaWtlblwgOwor5rKW56mN5LiWID4gY2h1dXNla2lzZWlcIDsKK+WPo+i/sOabuCA+IGtvdWp1dHN1c2hvXCA7CivmronogbfogIUgPiBqdW5zaG9rdXNoYVwgOwor55eF6Jmr5a6zID4gYnlvdWNodXVnYWlcIDsKK+aKgOihk+eahCA+IGdpanV0c3V0ZWtpXCA7CivlsI/oqqzlrrYgPiBzaG91c2V0c3VrYVwgOwor54m557SE5bqXID4gdG9rdXlha3V0ZW5cIDsKK+S6pOmAmumHjyA+IGtvdXRzdXVyeW91XCA7CivpgZPmoYjlhoUgPiBtaWNoaWFuJyduYWlcIDsKK+mBk+aZruiriyA+IG1pY2hpYnVzaGluXCA7Civlpb3oibLogIUgPiBrb3VzaG9rdXNoYVwgOwor5raI6Iet5YmkID4gc2hvdXNodXV6YWlcIDsKK+eLrOWWhOeahCA+IGRva3V6ZW50ZWtpXCA7Civop6Plg4/lipsgPiBrYWl6b3VyeW9rdVwgOwor5rW46YCP5ZynID4gc2hpbnRvdWF0c3VcIDsKK+eGseihgOa8oiA+IG5la2tldHN1a2FuXCA7Civlsqnnn7PlraYgPiBnYW5zZWtpZ2FrdVwgOwor6Jyc5p+R55WRID4gbWlrYW5iYXRha2VcIDsKK+eDj+WkqeeLlyA+IGthcmFzdXRlbmd1XCA7CivntLPlo6vnmoQgPiBzaGluc2hpdGVraVwgOwor56qS5oGv5q27ID4gY2hpc3Nva3VzaGlcIDsKK+S4ieWkp+evgCA+IHNhbmRhaXNldHN1XCA7CivmtLvmlq3lsaQgPiBrYXRzdWRhbnNvdVwgOwor55uu6by756uLID4gbWVoYW5hZGFjaGlcIDsKK+WRqOacn+W+iyA+IHNodXVraXJpdHN1XCA7CivpgIDntIXoibIgPiB0YWlrb3VzaG9rdVwgOwor5pKu5YOP566hID4gc2F0c3V6b3VrYW5cIDsKK+iFueWFq+WIhiA+IGhhcmFoYWNoaWJ1XCA7CivpgLLlhaXot68gPiBzaGluJydueXV1cm9cIDsKK+iDjOaXpeaApyA+IGhhaWppdHN1c2VpXCA7CivplpPlpY/mm7IgPiBrYW5zb3VreW9rdVwgOwor5oyH5Y2X5b25ID4gc2hpbmFuJyd5YWt1XCA7CivohIXov6vnirYgPiBreW91aGFrdWpvdVwgOwor5Yqf5ZCN5b+DID4ga291bXlvdXNoaW5cIDsKK+WbnuaVmeWbvSA+IGthaWt5b3Vrb2t1XCA7Civpqqjohpzngo4gPiBrb3RzdW1ha3VlblwgOwor5rKi5bq15rysID4gdGFrdWFuZHp1a2VcIDsKK+agueWIh+iZqyA+IG5la2lyaW11c2hpXCA7CivpgIHmlpnlhbEgPiBzb3VyeW91dG9tb1wgOwor5by15pys5Lq6ID4gY2hvdWhvbicnbmluXCA7CivkuZfou4rlj6MgPiBqb3VzaGFndWNoaVwgOwor5LiA5pel6LevID4gaWNoaW5pY2hpamlcIDsKK+WcsOizquWbsyA+IGNoaXNoaXRzdXp1XCA7Civnq4vmmI7miKYgPiByaXRzdW1laXNlblwgOwor5oq96LGh6KuWID4gY2h1dXNob3Vyb25cIDsKK+S7leios+ihqCA+IHNoaXdha2VoeW91XCA7Civlm73nqI7luoEgPiBrb2t1emVpY2hvdVwgOwor5oCn5oKq6KqsID4gc2VpYWt1c2V0c3VcIDsKK+aHkOmDt+eXhSA+IGthaWt5b3VieW91XCA7Civmn5HmqZjpoZ4gPiBrYW5raXRzdXJ1aVwgOwor5LiA6Z+z56+AID4gaWNoaW9uc2V0c3VcIDsKK+iCqeiDm+mqqCA+IGtlbmtvdWtvdHN1XCA7CivohLHngq3phbggPiBkYXRzdXRhbnNhblwgOwor5paw5oqA6KGTID4gc2hpbmdpanV0c3VcIDsKK+mAhuaOouefpSA+IGd5YWt1dGFuY2hpXCA7Civmi77lvpfogIUgPiBzaHV1dG9rdXNoYVwgOwor5a6d54mp5q6/ID4gaG91bW90c3VkZW5cIDsKK+WWq+eFmeW4rSA+IGtpdHN1ZW5zZWtpXCA7CivlhrfooYDmvKIgPiByZWlrZXRzdWthblwgOwor5Li75Yqb6ImmID4gc2h1cnlva3VrYW5cIDsKK+i7iuWkp+W3pSA+IGt1cnVtYWRhaWt1XCA7CivpgY7po5/nl4cgPiBrYXNob2t1c2hvdVwgOwor5a6/5ZG96KuWID4gc2h1a3VtZWlyb25cIDsKK+WFpemHkeelqCA+IG55dXVraW5oeW91XCA7CivoirHlsYvmlbcgPiBoYW5heWFzaGlraVwgOwor5YWx55m96auqID4gdG9tb3NoaXJhZ2FcIDsKK+WPo+W6p+S/giA+IGtvdXpha2FrYXJpXCA7CivnlJ/lrZjnjocgPiBzZWl6b25yaXRzdVwgOwor54aK5pys55yMID4ga3VtYW1vdG9rZW5cIDsKK+ebtOmKreW9oiA+IGNob2t1c2Vua2VpXCA7Civli5XnianmgKcgPiBkb3VidXRzdXNlaVwgOwor5Y6f54iG55eHID4gZ2VuYmFrdXNob3VcIDsKK+mbu+WLleW8jyA+IGRlbmRvdXNoaWtpXCA7CivnlJ/nlKPlipsgPiBzZWlzYW5yeW9rdVwgOwor5Ymv54mn5birID4gZnVrdWJva3VzaGlcIDsKK+iBlumkkOW8jyA+IHNlaXNhbnNoaWtpXCA7CivpgIbplqLmlbAgPiBneWFrdWthbnN1dVwgOwor5LiD5LqU5LiJID4gc2hpY2hpZ29zYW5cIDsKK+mnkOeVmei7jSA+IGNodXVyeXV1Z3VuXCA7CivllK/nianoq5YgPiB5dWlidXRzdXJvblwgOwor5peF5ZWG5Lq6ID4gdGFiaXNob3VuaW5cIDsKK+aKgOihk+aWmSA+IGdpanV0c3VyeW91XCA7Civnt7Tnv5LluLMgPiByZW5zaHV1Y2hvdVwgOwor6YCg55+z6auYID4gem91a29rdWRha2FcIDsKK+i7jemaiuW8jyA+IGd1bnRhaXNoaWtpXCA7Civnv7voqLPogIUgPiBob24nJ3lha3VzaGFcIDsKK+a9pOebrumwryA+IHVydW1laXdhc2hpXCA7CivojLbopJDoibIgPiBjaGFrYXNzaG9rdVwgOwor56K65a6f5bqmID4ga2FrdWppdHN1ZG9cIDsKK+e3j+WKm+aIpiA+IHNvdXJ5b2t1c2VuXCA7Civlpb3oibLmvKIgPiBrb3VzaG9rdWthblwgOwor5Yid5oqV56i/ID4gaGF0c3V0b3Vrb3VcIDsKK+S4h+S4h+S4gCA+IG1hbm1hbicnaWNoaVwgOwor57Sz5aOr5pyNID4gc2hpbnNoaWZ1a3VcIDsKK+S4gOS7leS6iyA+IGhpdG9zaGlnb3RvXCA7Civll4XnpZ7ntYwgPiBreXV1c2hpbmtlaVwgOwor57aZ57aa55qEID4ga2Vpem9rdXRla2lcIDsKK+aWh+WtpueahCA+IGJ1bmdha3V0ZWtpXCA7Civlha3ph43llLEgPiByb2t1anV1c2hvdVwgOwor546E5Lq6562LID4ga3Vyb3V0b3N1amlcIDsKK+Wbg+WtkOaWuSA+IGhheWFzaGlrYXRhXCA7CivlpKfkurrniakgPiBkYWlqaW5idXRzdVwgOwor5ZCM57O76ImyID4gZG91a2Vpc2hva3VcIDsKK+e0heeZveeyiSA+IGJlbmlvc2hpcm9pXCA7CivlrqPoqpPlvI8gPiBzZW5zZWlzaGlraVwgOwor5Lit5ZKM54axID4gY2h1dXdhbmV0c3VcIDsKK+a2iOiAl+eahCA+IHNob3Vrb3V0ZWtpXCA7CivmlLvmkoPnmoQgPiBrb3VnZWtpdGVraVwgOwor5Z+L6JS154mpID4gbWFpem91YnV0c3VcIDsKK+WJr+iqreacrCA+IGZ1a3Vkb2t1aG9uXCA7Civpup3pppnpvKAgPiBqYWtvdW5lenVtaVwgOwor5pyo6LOD5a6/ID4ga2ljaGluJyd5YWRvXCA7Civlm5vop5Lmn7EgPiBzaGlrYWt1Y2h1dVwgOwor5Lit56m65aOBID4gY2h1dWt1dWthYmVcIDsKK+iAg+iovOWtpiA+IGtvdXNob3VnYWt1XCA7Civlrp/oqLznmoQgPiBqaXNzaG91dGVraVwgOwor5pWR5riI562WID4ga3l1dXNhaXNha3VcIDsKK+i7jeWbveiqvyA+IGd1bmtva3VjaG91XCA7Civnmb3onYvnl4UgPiBoYWt1cm91YnlvdVwgOwor54uC54qs55eFID4ga3lvdWtlbmJ5b3VcIDsKK+awkeihhueahCA+IG1pbnNodXV0ZWtpXCA7CivkuIDkuKHlubQgPiBpY2hpcnlvdW5lblwgOwor5aSn5LuP5q6/ID4gZGFpYnV0c3VkZW5cIDsKK+WIuemCo+eahCA+IHNldHN1bmF0ZWtpXCA7Civli4Xku7vlrpggPiBjaG9rdW5pbmthblwgOwor5Y+M5Y2B56+AID4gc291anV1c2V0c3VcIDsKK+WlveiJsuacrCA+IGtvdXNob2t1Ym9uXCA7CivnqpLljJbniakgPiBjaGlra2FidXRzdVwgOwor5LiJ6KeS57+8ID4gc2Fua2FrdXlva3VcIDsKK+aIkOmVt+agqiA+IHNlaWNob3VrYWJ1XCA7Civnn7PmnZDllYYgPiBzZWtpemFpc2hvdVwgOwor5L6b6KiX6YeRID4ga3lvdXRha3VraW5cIDsKK+eMq+mhjeWkpyA+IGJ5b3VnYWt1ZGFpXCA7CivlnLDmlrnoibIgPiBjaGlob3VzaG9rdVwgOwor55Sf5Lit57aZID4gbmFtYWNodXVrZWlcIDsKK+WQuOWPjuWJpCA+IGt5dXVzaHV1emFpXCA7Civlu7rolL3njocgPiBrZW5wZWlyaXRzdVwgOwor5a6i6Kaz55qEID4ga3lha2thbnRla2lcIDsKK+W+i+e+qeiAhSA+IHJpY2hpZ2ltb25vXCA7CivkuIvntJrogbcgPiBrYWt5dXVzaG9rdVwgOwor5L+u6aO+6KqeID4gc2h1dXNob2t1Z29cIDsKK+Wkp+mjn+a8oiA+IHRhaXNob2t1a2FuXCA7CivlhrfnrJHnmoQgPiByZWlzaG91dGVraVwgOwor5pSv57Wm6aGNID4gc2hpa3l1dWdha3VcIDsKK+S4jeWdh+izqiA+IGZ1a2luc2hpdHN1XCA7Civku6PooajnmoQgPiBkYWloeW91dGVraVwgOwor5YWl6YGT6ZuyID4gbnl1dWRvdWd1bW9cIDsKK+WFsemAmueCuSA+IGt5b3V0c3V1dGVuXCA7CivlhazlvrPlv4MgPiBrb3V0b2t1c2hpblwgOwor5b2i5byP6KuWID4ga2Vpc2hpa2lyb25cIDsKK+mHkeeSsOmjnyA+IGtpbmthbnNob2t1XCA7Civlh7rmnK3miYAgPiBzaHVzc2F0c3Vqb1wgOwor5YyX5qW15rW3ID4gaG9ra3lva3VrYWlcIDsKK+ihjOWumOW6gSA+IGd5b3VrYW5jaG91XCA7Civkv53ouqvooZMgPiBob3NoaW5qdXRzdVwgOwor6ZGR6K2Y55y8ID4ga2Fuc2hpa2lnYW5cIDsKK+WMl+altea0iyA+IGhva2t5b2t1eW91XCA7CivlvavliLvnlYwgPiBjaG91a29rdWthaVwgOwor6aas6bm/6KmxID4gYmFrYWJhbmFzaGlcIDsKK+eJqee0jeeojiA+IGJ1dHN1bm91emVpXCA7CivkuIvlpbPkuK0gPiBzaGltb2pvY2h1dVwgOwor5Zyw5LiL5a6kID4gY2hpa2FzaGl0c3VcIDsKK+iyuOacrOWxiyA+IGthc2hpaG9uJyd5YVwgOwor6Y2+5Lmz5rSeID4gc2hvdW55dXVkb3VcIDsKK+iBt+WToemMsiA+IHNob2t1aW5yb2t1XCA7Civmoq/lrZDphZIgPiBoYXNoaWdvemFrZVwgOwor5rue5Zyo5a6iID4gdGFpemFpa3lha3VcIDsKK+iThOmbu+axoCA+IGNoaWt1ZGVuY2hpXCA7CivoqabmjpjogIUgPiBzaGlrdXRzdXNoYVwgOwor5aSn5a2m5a+uID4gZGFpZ2FrdXJ5b3VcIDsKK+Wnq+Wwj+adviA+IGhpbWVrb21hdHN1XCA7CivnnJ/lrp/lkbMgPiBzaGluaml0c3VtaVwgOwor5peF5b256ICFID4gdGFiaXlha3VzaGFcIDsKK+WbveawkeeahCA+IGtva3VtaW50ZWtpXCA7CivmiKbmsqHogIUgPiBzZW5ib3RzdXNoYVwgOwor5rWB6KGM55eFID4gcnl1dWtvdWJ5b3VcIDsKK+W9q+WIu+eJiCA+IGNob3Vrb2t1YmFuXCA7Civlkajml4vmpa0gPiBzaHV1c2VuZ3lvdVwgOwor5Zuj5omH6JmrID4gdWNoaXdhbXVzaGlcIDsKK+WPo+Wwj+iogCA+IGt1Y2hpa29nb3RvXCA7Civku7vlkb3lvI8gPiBuaW5tZWlzaGlraVwgOwor6Zu75Yqb5YK1ID4gZGVucnlva3VzYWlcIDsKK+WKm+WLleeahCA+IHJpa2lkb3V0ZWtpXCA7CivlpI/luL3lrZAgPiBuYXRzdWJvdXNoaVwgOwor552h55yg6JasID4gc3VpbWluJyd5YWt1XCA7Civljbjnm7jloLQgPiBvcm9zaGlzb3ViYVwgOwor5Y2w5Yi35qWtID4gaW5zYXRzdWd5b3VcIDsKK+S8neWwjueOhyA+IGRlbmRvdXJpdHN1XCA7Civom7jlhaXpgZMgPiB0YWtvbnl1dWRvdVwgOwor6KuH6Kmx5a6kID4gZGFud2FzaGl0c3VcIDsKK+WuieaciOe1piA+IHlhc3VnZWtreXV1XCA7CivljJfmpbXmmJ8gPiBob2treW9rdXNlaVwgOwor5b6h6ZyK5LujID4gbWl0YW1hc2hpcm9cIDsKK+a4rOmHj+WjqyA+IHNva3VyeW91c2hpXCA7Civlh7rpoZjmmYIgPiBzaHV0c3VnYW5qaVwgOwor5LiJ6KeS55C0ID4gc2Fua2FrdWdvdG9cIDsKK+mJhOadoee2siA+IHRldHN1am91bW91XCA7Civnv7voqLPmqKkgPiBob24nJ3lha3VrZW5cIDsKK+eOieadk+WtkCA+IHRhbWFqYWt1c2hpXCA7Civlt6Xmpa3lm70gPiBrb3VneW91a29rdVwgOwor5ZGo5peL5paZID4gc2h1dXNlbnJ5b3VcIDsKK+i/veaSg+aIpiA+IHRzdWlnZWtpc2VuXCA7Civlgrfnl4XlhbUgPiBzaG91YnlvdWhlaVwgOwor5b285bK45qGcID4gaGlnYW56YWt1cmFcIDsKK+S4gOaZguaJlSA+IGljaGlqaWJhcmFpXCA7CivlhoXlrrnniakgPiBuYWl5b3VidXRzdVwgOwor54Sh5LiA54mpID4gbXVpY2hpbW90c3VcIDsKK+WKtOWDjeWKmyA+IHJvdWRvdXJ5b2t1XCA7Civoi6Xnq7nkuq0gPiB3YWthdGFrZXRlaVwgOwor57+76Kiz5pu4ID4gaG9uJyd5YWt1c2hvXCA7CivliLDnnYDpp4UgPiB0b3VjaGFrdWVraVwgOwor5bCR5Zu95rCRID4gc2hvdWtva3VtaW5cIDsKK+eUn+WtpuWVjyA+IG5hbWFnYWt1bW9uXCA7Civku4rmnIjliIYgPiBrb25nZXRzdWJ1blwgOwor5YiG5pWw5byPID4gYnVuc3V1c2hpa2lcIDsKK+aOiOiznuW8jyA+IGp1c2hvdXNoaWtpXCA7CivmjozkuK3mnKwgPiBzaG91Y2h1dWJvblwgOwor55yB5Yqb5YyWID4gc2hvdXJ5b2t1a2FcIDsKK+S7o+ihqOagvCA+IGRhaWh5b3VrYWt1XCA7CivmmLzoiIjooYwgPiBoaXJ1a291Z3lvdVwgOwor6buZ56S66YyyID4gbW9rdXNoaXJva3VcIDsKK+aknOWvn+WumCA+IGtlbnNhdHN1a2FuXCA7CivkvpvoqJfogIUgPiBreW91dGFrdXNoYVwgOwor5rW355Sj54mpID4ga2Fpc2FuYnV0c3VcIDsKK+ikque0heiJsiA+IHRhaWtvdXNob2t1XCA7Civov5Tkv6HnlKggPiBoZW5zaGluJyd5b3VcIDsKK+mBgei1sOabsiA+IHRvbnNvdWt5b2t1XCA7CivovrvlvLfnm5cgPiB0c3VqaWdvdXRvdVwgOwor5YWs5byP5oimID4ga291c2hpa2lzZW5cIDsKK+mHkeeSsOidlSA+IGtpbmthbnNob2t1XCA7CivpnbTkuIDotrMgPiBrdXRzdWlzc29rdVwgOwor5rWq6Iqx56+AID4gbmFuaXdhYnVzaGlcIDsKK+WQhOWkp+WtpiA+IGtha3VkYWlnYWt1XCA7Civnt4/pgIDljbQgPiBzb3V0YWlreWFrdVwgOwor5Zu95rCR5pyNID4ga29rdW1pbmZ1a3VcIDsKK+Wun+WcqOirliA+IGppdHN1emFpcm9uXCA7CivmlZHmgKXou4ogPiBreXV1a3l1dXNoYVwgOwor6ZaT5o6l56iOID4ga2Fuc2V0c3V6ZWlcIDsKK+S5semWi+eZuiA+IHJhbmthaWhhdHN1XCA7CivmiYDluK/kuLsgPiBzaG90YWludXNoaVwgOwor6Ziy5a+S6Z20ID4gYm91a2FuZ3V0c3VcIDsKK+S4ieinkuafsSA+IHNhbmtha3VjaHV1XCA7Civku5XoqLPluLMgPiBzaGl3YWtlY2hvdVwgOwor57KY552A5oCnID4gbmVuY2hha3VzZWlcIDsKK+WvhumAoOmFkiA+IG1pdHN1em91c2h1XCA7CivkuIDlpJzmvKwgPiBpY2hpeWFkenVrZVwgOwor5pac6KeS5p+xID4gc2hha2FrdWNodXVcIDsKK+WvvueFp+eahCA+IHRhaXNob3V0ZWtpXCA7CivlvbnkurrpoqggPiB5YWt1bmlua2F6ZVwgOwor6Ii56Ii25qWtID4gc2VucGFrdWd5b3VcIDsKK+awtOmBk+WxgCA+IHN1aWRvdWt5b2t1XCA7Civlp4vnmbrpp4UgPiBzaGloYXRzdWVraVwgOwor5YyX5qW15ZyPID4gaG9ra3lva3VrZW5cIDsKK+aXpeeUqOWTgSA+IG5pY2hpeW91aGluXCA7Civlj43pgIbogIUgPiBoYW5neWFrdXNoYVwgOwor55m76Yyy5riIID4gdG91cm9rdXp1bWlcIDsKK+WwguWjsuWxgCA+IHNlbmJhaWt5b2t1XCA7CivmqKnlipvogIUgPiBrZW5yeW9rdXNoYVwgOwor5oGS5LmF55qEID4ga291a3l1dXRla2lcIDsKK+WPjemAhue9qiA+IGhhbmd5YWt1emFpXCA7CivnibnnrYnluK0gPiB0b2t1dG91c2VraVwgOwor5YaF5pyN6JasID4gbmFpZnVrdXlha3VcIDsKK+iHhueXhemiqCA+IG9rdWJ5b3VrYXplXCA7CivkvpvntabogIUgPiBreW91a3l1dXNoYVwgOwor5b2r5Yi75birID4gY2hvdWtva3VzaGlcIDsKK+axguS6uumboyA+IGt5dXVqaW4nJ25hblwgOwor6aCa5YuV6ISIID4ga2VpZG91bXlha3VcIDsKK+ippuaOmOaoqSA+IHNoaWt1dHN1a2VuXCA7CivlnKjkuqzkuK0gPiB6YWlreW91Y2h1dVwgOwor5pa556iL5byPID4gaG91dGVpc2hpa2lcIDsKK+mdmeWKm+WtpiA+IHNlaXJpa2lnYWt1XCA7CivkuIDopqfooaggPiBpY2hpcmFuaHlvdVwgOwor5YyX5pyd6a6uID4ga2l0YWNob3VzZW5cIDsKK+eZvuWNg+mzpSA+IG1vbW9jaGlkb3JpXCA7CivpioPliaPooZMgPiBqdXVrZW5qdXRzdVwgOwor57SN6aqo5aCCID4gbm91a290c3Vkb3VcIDsKK+iAs+Wwj+mqqCA+IGppc2hvdWtvdHN1XCA7CivlpKfpnZnohIggPiBkYWlqb3VteWFrdVwgOwor57WM5riI5YqbID4ga2VpemFpcnlva3VcIDsKK+WtpuWNlOS8miA+IGdha3VreW91a2FpXCA7CivkuK3lv4PngrkgPiBjaHV1c2hpbnRlblwgOwor5YyX5qW15YWJID4gaG9ra3lva3Vrb3VcIDsKK+mjn+WTgeW6lyA+IHNob2t1aGludGVuXCA7CivpoJjlj47mm7ggPiByeW91c2h1dXNob1wgOwor6YCa55+l6KGoID4gdHN1dWNoaWh5b3VcIDsKK+mAo+eZuumKgyA+IHJlbnBhdHN1anV1XCA7CivmlLvmkoPlgbQgPiBrb3VnZWtpZ2F3YVwgOwor5aSn5Lit5bCPID4gZGFpY2h1dXNob3VcIDsKK+W5s+Wdh+W+iyA+IGhlaWtpbnJpdHN1XCA7CivotaTmo5/om4cgPiB5YW1ha2FnYXNoaVwgOwor6Kaz5b+155qEID4ga2FuJyduZW50ZWtpXCA7CivlsILploDogbcgPiBzZW5tb25zaG9rdVwgOwor5YWx6YCy5LyaID4ga3lvdXNoaW5rYWlcIDsKK+S/oeeUqOeKtiA+IHNoaW4nJ3lvdWpvdVwgOwor57mU54mp5qWtID4gb3JpbW9ub2d5b3VcIDsKK+i2heeJueaApSA+IGNob3V0b2treXV1XCA7Civov5Tkv6HmlpkgPiBoZW5zaGlucnlvdVwgOwor5aOB5paw6IGeID4ga2FiZXNoaW5idW5cIDsKK+iejeino+eGsSA+IHl1dWthaW5ldHN1XCA7Civnr4DljZrlo6sgPiBmdXNoaWhha2FzZVwgOwor6KaL54mp5Lq6ID4ga2VuYnV0c3VuaW5cIDsKK+eZu+mMsuaWmSA+IHRvdXJva3VyeW91XCA7Civlkajml4vkurogPiBzaHV1c2VuJyduaW5cIDsKK+mrmOm6l+iKnSA+IGtvdXJhaXNoaWJhXCA7CivkuI3opqrliIcgPiBmdXNoaW5zZXRzdVwgOwor6Kaq5ZGK572qID4gc2hpbmtva3V6YWlcIDsKK+iUpue0heiRiSA+IHRzdXRhbW9taWppXCA7CivkupTnm67prqggPiBnb21va3V6dXNoaVwgOwor57eo6ZuG6ZW3ID4gaGVuc2h1dWNob3VcIDsKK+WHuueJiOalrSA+IHNodXBwYW5neW91XCA7Civoqr/mlZnluKsgPiBjaG91a3lvdXNoaVwgOwor6YCy6aeQ6LuNID4gc2hpbmNodXVndW5cIDsKK+WIpeWLlemaiiA+IGJldHN1ZG91dGFpXCA7CivpgIblmbTlsIQgPiBneWFrdWZ1bnNoYVwgOwor5LqM5Y+j55uuID4gZnV0YWt1Y2hpbWVcIDsKK+mAhuWRvemhjCA+IGd5YWt1bWVpZGFpXCA7CivnspjnnYDliaQgPiBuZW5jaGFrdXphaVwgOwor55Sf54mp55WMID4gc2VpYnV0c3VrYWlcIDsKK+S6lOebrumjryA+IGdvbW9rdW1lc2hpXCA7CivmjqHmjpjmqKkgPiBzYWlrdXRzdWtlblwgOwor5YWo5bmF55qEID4gemVucHVrdXRla2lcIDsKK+W9q+WIu+WIgCA+IGNob3Vrb2t1dG91XCA7CivnoJTnqbblv4MgPiBrZW5reXV1c2hpblwgOwor54us5Y2g55qEID4gZG9rdXNlbnRla2lcIDsKK+mFuOS4reavkiA+IHNhbmNodXVkb2t1XCA7CivotoXmlrDmmJ8gPiBjaG91c2hpbnNlaVwgOwor6aCC5oi054mpID4gY2hvdWRhaW1vbm9cIDsKK+Wuv+aziuaJgCA+IHNodWt1aGFrdWpvXCA7Civlo7LljbTnm4ogPiBiYWlreWFrdWVraVwgOwor5qeL6YCg5byPID4ga291em91c2hpa2lcIDsKK+S7o+ihqOS9nCA+IGRhaWh5b3VzYWt1XCA7CivpgY7lpLHniq8gPiBrYXNoaXRzdWhhblwgOwor57SZ5LiA5p6aID4ga2FtaWljaGltYWlcIDsKK+WGjeiqjeitmCA+IHNhaW5pbnNoaWtpXCA7CivpoqjnianoqakgPiBmdXVidXRzdXNoaVwgOwor5a6f6Zai5pWwID4gaml0c3VrYW5zdXVcIDsKK+Wkp+WlveeJqSA+IGRhaWtvdWJ1dHN1XCA7CivkubPmv4HmtrIgPiBueXV1ZGFrdWVraVwgOwor5rC05Ya35byPID4gc3VpcmVpc2hpa2lcIDsKK+W/g+mFjeaApyA+IHNoaW5wYWlzaG91XCA7Civlvozlp4vmnKsgPiBhdG9zaGltYXRzdVwgOwor5YWo5Yui5YqbID4gemVuc2Vpcnlva3VcIDsKK+mbouW/g+eOhyA+IHJpc2hpbnJpdHN1XCA7CivkvpvntabmupAgPiBreW91a3l1dWdlblwgOwor5aSn5paH56+AID4gZGFpYnVuc2V0c3VcIDsKK+S4gOWknOWmuyA+IGhpdG95b2R6dW1hXCA7CivntZDlkIjlrZAgPiBrZXRzdWdvdXNoaVwgOwor5q275Lqh546HID4gc2hpYm91cml0c3VcIDsKK+aZguWxgOafhCA+IGppa3lva3VnYXJhXCA7CivphY3lvZPnjocgPiBoYWl0b3VyaXRzdVwgOwor5pW06aqo5birID4gc2Vpa290c3VzaGlcIDsKK+mWoueojueOhyA+IGthbnplaXJpdHN1XCA7CivkuK3mr5LmrbsgPiBjaHV1ZG9rdXNoaVwgOwor5pyA5YmN5YiXID4gc2FpemVucmV0c3VcIDsKK+W+oeaJgOi7iiA+IGdvc2hvZ3VydW1hXCA7CivlhoXmm7LnkIMgPiBuYWlreW9ra3l1dVwgOwor6Kej5pWj6KqsID4ga2Fpc2Fuc2V0c3VcIDsKK+W7uumAoOeJqSA+IGtlbnpvdWJ1dHN1XCA7CivnjK7ooYDou4ogPiBrZW5rZXRzdXNoYVwgOwor5bCP5ZOB6ZuGID4gc2hvdWhpbnNodXVcIDsKK+mciuWuieWupCA+IHJlaWFuc2hpdHN1XCA7Civpm6LnnYDpmbggPiByaWNoYWt1cmlrdVwgOwor6auY6YeO6IGWID4ga291eWFoaWppcmlcIDsKK+aVtOmrquWJpCA+IHNlaWhhdHN1emFpXCA7Civlh6bkuJbooZMgPiBzaG9zZWlqdXRzdVwgOwor5YWr5bmh5a6uID4gaGFjaGltYW5ndXVcIDsKK+atjOWUseWKmyA+IGthc2hvdXJ5b2t1XCA7Civlm57mipjmkI0gPiBrYWlzZXRzdXNvblwgOwor6aqo5LuV5LqLID4gaG9uZXNoaWdvdG9cIDsKK+iHhueXheiAhSA+IG9rdWJ5b3Vtb25vXCA7CivmnJ3po6/liY0gPiBhc2FtZXNoaW1hZVwgOwor5YiK6KGM54mpID4ga2Fua291YnV0c3VcIDsKK+ecvOmPoeapiyA+IG1lZ2FuZWJhc2hpXCA7Civos7zlhaXlhYggPiBrb3VueXV1c2FraVwgOwor5byY5LuB5qC8ID4ga291bmlua3lha3VcIDsKK+aXp+Wkp+mZuCA+IGt5dXV0YWlyaWt1XCA7CivoqLrlr5/ml6UgPiBzaGluc2F0c3ViaVwgOwor5p2x5a6u6IG3ID4gdG91Z3V1c2hva3VcIDsKK+itpuWvn+e9siA+IGtlaXNhdHN1c2hvXCA7Civlhpfoq4flj6MgPiBqb3VkYW5ndWNoaVwgOwor57mU54mp5ZWGID4gb3JpbW9ub3Nob3VcIDsKK+WFq+i+uuW9oiA+IGhhY2hpaGVua2VpXCA7Civph53ku5XkuosgPiBoYXJpc2hpZ290b1wgOwor5aW95Lq654mpID4ga291amluYnV0c3VcIDsKK+W+geacjeassiA+IHNlaWZ1a3V5b2t1XCA7Civop6PoqqzogIUgPiBrYWlzZXRzdXNoYVwgOwor5bqD5ZGK5qWtID4ga291a29rdWd5b3VcIDsKK+WJteeri+iAhSA+IHNvdXJpdHN1c2hhXCA7Civop6PnhrHolqwgPiBnZW5ldHN1eWFrdVwgOwor5pel5puc54mIID4gbmljaGl5b3ViYW5cIDsKK+aWsOW/q+mAnyA+IHNoaW5rYWlzb2t1XCA7CivkuK3lubTogIUgPiBjaHV1bmVubW9ub1wgOwor5oi05Yag5byPID4gdGFpa2Fuc2hpa2lcIDsKK+i7vealreW4qyA+IGthcnV3YXphc2hpXCA7CivkuK3lv4PlnLAgPiBjaHV1c2hpbmNoaVwgOwor5ZWG5oWj57+SID4gc2hvdWthbnNodXVcIDsKK+eUn+eJqeaIpiA+IHNlaWJ1dHN1c2VuXCA7CivmlZHmgKXms5UgPiBreXV1a3l1dWhvdVwgOwor6aOf5YmN6YWSID4gc2hva3V6ZW5zaHVcIDsKK+a3seWknOaXjyA+IHNoaW4nJ3lhem9rdVwgOwor6L+r5pKD56CyID4gaGFrdWdla2lob3VcIDsKK+mAsui7jeS4rSA+IHNoaW5ndW5jaHV1XCA7CivlqpLphYzkurogPiBiYWlzaGFrdW5pblwgOwor5Lih5oCn55qEID4gcnlvdXNlaXRla2lcIDsKK+a9nOWLouWKmyA+IHNlbnNlaXJ5b2t1XCA7CivmrabpqqjogIUgPiBidWtvdHN1bW9ub1wgOwor5L+d5YGl5a6kID4gaG9rZW5zaGl0c3VcIDsKK+W6g+WRiuaWmSA+IGtvdWtva3VyeW91XCA7CivpgJ/lipvluqYgPiBzb2t1cnlva3Vkb1wgOwor55uG5o+Q54GvID4gYm9uZGpvdWNoaW5cIDsKK+iBtOelnue1jCA+IGNob3VzaGlua2VpXCA7CivotoXlpKflm70gPiBjaG91dGFpa29rdVwgOwor5Ye654mI5YWDID4gc2h1cHBhbm1vdG9cIDsKK+mmrOm5v+WKmyA+IGJha2FkamlrYXJhXCA7CivpmbjljYrnkIMgPiByaWt1aGFua3l1dVwgOwor57Wx546H6ICFID4gdG91c290c3VzaGFcIDsKK+WFrOWFseW/gyA+IGtvdWt5b3VzaGluXCA7CivkuK3lhbHou40gPiBjaHV1a3lvdWd1blwgOwor5ryC55m95YmkID4gaHlvdWhha3V6YWlcIDsKK+WPjuWFpea6kCA+IHNodXVueXV1Z2VuXCA7Civmrr/mp5jpoqggPiB0b25vc2FtYWZ1dVwgOwor5b+D6YWN5LqLID4gc2hpbnBhaWdvdG9cIDsKK+WkqumZveeGsSA+IHRhaXlvdW5ldHN1XCA7CivliKTmsbrmlocgPiBoYW5rZXRzdWJ1blwgOwor5L+h5Luw55qEID4gc2hpbmtvdXRla2lcIDsKK+iGneaLjeWtkCA+IGhpemFieW91c2hpXCA7Civot6Hlp4vmnKsgPiBhdG9zaGltYXRzdVwgOwor55uy55uu55qEID4gbW91bW9rdXRla2lcIDsKK+elnumAmuWKmyA+IGppbnRzdXVyaWtpXCA7CivmgZDlprvnl4UgPiBreW91c2FpYnlvdVwgOwor5b+g5a6f5bqmID4gY2h1dWppdHN1ZG9cIDsKK+S/oeS7u+eKtiA+IHNoaW4nJ25pbmpvdVwgOwor5paw5Y+C6ICFID4gc2hpbnphbm1vbm9cIDsKK+ecn+eKr+S6uiA+IHNoaW5oYW4nJ25pblwgOwor6K2m5a+f54qsID4ga2Vpc2F0c3VrZW5cIDsKK+WPouaZgumbqCA+IG11cmFzaGlndXJlXCA7Civmtbfpo5/mtJ4gPiBrYWlzaG9rdWRvdVwgOwor5Y+C5YiX6ICFID4gc2FucmV0c3VzaGFcIDsKK+eUn+eJqeWcjyA+IHNlaWJ1dHN1a2VuXCA7CivkvpvntablnLAgPiBreW91a3l1dWNoaVwgOwor5bmy5riJ57ieID4ga2Fuc2hvdWppbWFcIDsKK+eLrOWJteeahCA+IGRva3Vzb3V0ZWtpXCA7Civmn5PoibLkvZMgPiBzZW5zaG9rdXRhaVwgOwor5bqn6aCt6a+oID4gemF0b3VrdWppcmFcIDsKK+ebrueahOirliA+IG1va3V0ZWtpcm9uXCA7CivnnIHnlaXmmYIgPiBzaG91cnlha3VqaVwgOwor55+z54Kt5q67ID4gc2VraXRhbmdhcmFcIDsKK+WIhuijguaApyA+IGJ1bnJldHN1c2VpXCA7Civnn63nuK7lvaIgPiB0YW5zaHVrdWtlaVwgOwor5pyJ6IG36ICFID4geXV1c2hva3VzaGFcIDsKK+imquWSjOWKmyA+IHNoaW53YXJ5b2t1XCA7CivlhYjjgIXmnIggPiBzZW5zZW5nZXRzdVwgOwor5pyJ5L2T54mpID4geXV1dGFpYnV0c3VcIDsKK+efree1oeeahCA+IHRhbnJha3V0ZWtpXCA7CivprYXlipvnmoQgPiBtaXJ5b2t1dGVraVwgOwor5YyW5a2m5byPID4ga2FnYWt1c2hpa2lcIDsKK+WkqumZveaXpSA+IHRhaXlvdWppdHN1XCA7Civph47nkIPnhrEgPiB5YWt5dXVuZXRzdVwgOwor6K2m5a+f5qipID4ga2Vpc2F0c3VrZW5cIDsKK+eGseawl+eQgyA+IG5ldHN1a2lreXV1XCA7Civnqbrmg7PlipsgPiBrdXVzb3VyeW9rdVwgOwor6Z2Z5bKh55yMID4gc2hpenVva2FrZW5cIDsKK+WPjemAhuS6uiA+IGhhbmd5YWt1bmluXCA7Civmn5Ppq6rliaQgPiBzZW5wYXRzdXphaVwgOwor5YWo6Lqr55eFID4gemVuc2hpbmJ5b3VcIDsKK+iFueipseihkyA+IGZ1a3V3YWp1dHN1XCA7CivmtYHph4/oqIggPiByeXV1cnlvdWtlaVwgOwor57ea57mU6Z2iID4gc2Vuc2hpa2ltZW5cIDsKK+WujOe1kOe3qCA+IGthbmtldHN1aGVuXCA7CivlrabnlJ/oqLwgPiBnYWt1c2Vpc2hvdVwgOwor6YCg5bmj5bGAID4gem91aGVpa3lva3VcIDsKK+iqrOaYjuabuCA+IHNldHN1bWVpc2hvXCA7Civoh6rntabnjocgPiBqaWt5dXVyaXRzdVwgOwor5omT54mp5birID4gdWNoaW1vbm9zaGlcIDsKK+aDqOauuuiAhSA+IHphbnNhdHN1c2hhXCA7Civno6/lt77nnYAgPiBpc29naW5jaGFrdVwgOwor6Ki85Lq65bitID4gc2hvdW5pbnNla2lcIDsKK+iLpeeZvemrqiA+IHdha2FzaGlyYWdhXCA7CivmlbDlrabnmoQgPiBzdXVnYWt1dGVraVwgOwor55u05YaG5p+xID4gY2hva3VlbmNodXVcIDsKK+iqrOaYjuaWhyA+IHNldHN1bWVpYnVuXCA7CivmsLTnlKPniakgPiBzdWlzYW5idXRzdVwgOwor5pWZ5YmH5pysID4ga3lvdXNva3Vib25cIDsKK+S5meWls+W/gyA+IG90b21lZ29rb3JvXCA7CivmiKbli53lm70gPiBzZW5zaG91a29rdVwgOwor5Y2X5YyX5pydID4gbmFuYm9rdWNob3VcIDsKK+W5u+aDs+absiA+IGdlbnNvdWt5b2t1XCA7Civml4XoiIjooYwgPiB0YWJpa291Z3lvdVwgOwor6LGG6Zu755CDID4gbWFtZWRlbmt5dXVcIDsKK+ino+iqrOabuCA+IGthaXNldHN1c2hvXCA7Civnv7zmiYvnm64gPiB5b2t1c2h1bW9rdVwgOwor5ama57SE6ICFID4ga29uJyd5YWt1c2hhXCA7Civpg6HlvbnmiYAgPiBndW4nJ3lha3VzaG9cIDsKK+efpeitmOWxpCA+IGNoaXNoaWtpc291XCA7Civmkp7mnKjprqsgPiBzaHVtb2t1emFtZVwgOwor56G86YW45pyrID4gaG91c2FubWF0c3VcIDsKK+Wmluihk+iAhSA+IHlvdWp1dHN1c2hhXCA7CivkvZnnmb3poIEgPiB5b2hha3VwZWVqaVwgOwor57Wx5LiA55qEID4gdG91aXRzdXRla2lcIDsKK+i6q+manOiAhSA+IHNoaW5zaG91c2hhXCA7Civpo5/ljZPloakgPiBzaG9rdXRha3VlblwgOwor5YWr5a2X6autID4gaGFjaGlqaWhpZ2VcIDsKK+W+qea0u+elrSA+IGZ1a2thdHN1c2FpXCA7CivkuLvnlKPniakgPiBzaHVzYW5idXRzdVwgOwor576O6KGT55qEID4gYmlqdXRzdXRla2lcIDsKK+ePjeePvuixoSA+IGNoaW5nZW5zaG91XCA7CivkuInnqJzpj6EgPiBzYW5yeW91a3lvdVwgOwor5aSn6Zm45qOaID4gdGFpcmlrdWRhbmFcIDsKK+auv+anmOiKuCA+IHRvbm9zYW1hZ2VpXCA7Civmtbfpo5/ltJYgPiBrYWlzaG9rdWdhaVwgOwor5YWD56aE6KKWID4gZ2Vucm9rdXNvZGVcIDsKK+aWh+aVmeaXjyA+IGJ1bmt5b3V6b2t1XCA7Civmub/luqboqIggPiBzaGl0c3Vkb2tlaVwgOwor5Y+s6ZuG6ICFID4gc2hvdXNodXVzaGFcIDsKK+WFq+alteaLsyA+IGhha2t5b2t1a2VuXCA7Civkv6Hku7Dlv4MgPiBzaGlua291c2hpblwgOwor5Lq65LiA5YCNID4gaGl0b2ljaGliYWlcIDsKK+WQiOihhuWbvSA+IGdhc3NodXVrb2t1XCA7CivmqZ/plqLlrqQgPiBraWthbnNoaXRzdVwgOwor5Ya35Y205rayID4gcmVpa3lha3Vla2lcIDsKK+a8geeNsumrmCA+IGd5b2tha3VkYWthXCA7CivlhaznlKjniakgPiBrb3V5b3VidXRzdVwgOwor5Y2Y55m66YqDID4gdGFucGF0c3VqdXVcIDsKK+WGt+WNtOawtCA+IHJlaWt5YWt1c3VpXCA7CivnjK7nq4vooaggPiBrb25kYXRlaHlvdVwgOwor6Iul6I2J6ImyID4gd2FrYWt1c2Fpcm9cIDsKK+S4ieWbveS4gCA+IHNhbmdva3VpY2hpXCA7CivnnaPkv4PnirYgPiB0b2t1c29rdWpvdVwgOwor5Luu5Y+X5Y+WID4ga2FyaXVrZXRvcmlcIDsKK+iii+Wwj+i3ryA+IGZ1a3Vyb2tvdWppXCA7Civorablr5/lrpggPiBrZWlzYXRzdWthblwgOwor6Ieq54S25b6LID4gc2hpemVucml0c3VcIDsKK+iBt+WLmee1piA+IHNob2t1bXVreXV1XCA7CivnmYLppIrkuK0gPiByeW91eW91Y2h1dVwgOwor5ZCI5oiQ54mpID4gZ291c2VpYnV0c3VcIDsKK+S4ieihjOWNiiA+IG1pa3VkYXJpaGFuXCA7CivooYzmlL/lraYgPiBneW91c2VpZ2FrdVwgOwor5a6f6KGM5YqbID4gamlra291cnlva3VcIDsKK+mVt+eBq+mJoiA+IG5hZ2FoaWJhY2hpXCA7Civmtbfpo5/lj7AgPiBrYWlzaG9rdWRhaVwgOwor6YO15L6/54mpID4geXV1YmluYnV0c3VcIDsKK+epuuawl+aelSA+IGt1dWtpbWFrdXJhXCA7Civlpajlrabph5EgPiBzaG91Z2FrdWtpblwgOwor5YWs55Sf5rS7ID4ga291c2Vpa2F0c3VcIDsKK+mBruiUveeJqSA+IHNoYWhlaWJ1dHN1XCA7CivntbnnuZTniakgPiBraW51b3JpbW9ub1wgOwor6Iq46KGT6KuWID4gZ2VpanV0c3Vyb25cIDsKK+iWrOWKueeJqSA+IHlha2tvdWJ1dHN1XCA7Civluq3ku5XkuosgPiBuaXdhc2hpZ290b1wgOwor5oKq6LOq5YyWID4gYWt1c2hpdHN1a2FcIDsKK+efpeitmOS6uiA+IGNoaXNoaWtpamluXCA7Civnmb3lhoXpmpwgPiBoYWt1bmFpc2hvdVwgOwor5qW95aSp55qEID4gcmFrdXRlbnRla2lcIDsKK+WIpeWLmOWumiA+IGJldHN1a2Fuam91XCA7Civph5HmnZPlrZAgPiBrYW5hamFrdXNoaVwgOwor6ZW35aSn5oGvID4gY2hvdXRhaXNva3VcIDsKK+iBtOWPluaWmSA+IGNob3VzaHVyeW91XCA7CivpoLjpnZnohIggPiBrZWlqb3VteWFrdVwgOwor5ryB542y6YePID4gZ3lva2FrdXJ5b3VcIDsKK+iqnuWtpuWKmyA+IGdvZ2FrdXJ5b2t1XCA7CivmupblgpnlrqQgPiBqdW5iaXNoaXRzdVwgOwor5Lit5bm05aKXID4gY2h1dWRvc2hpbWFcIDsKK+iDjOeti+WKmyA+IGhhaWtpbnJ5b2t1XCA7CivmiYDmnInniakgPiBzaG95dXVidXRzdVwgOwor55Sj5Zyf56WeID4gdWJ1c3VuYWdhbWlcIDsKK+aal+i1pOiJsiA+IGFuc2VraXNob2t1XCA7Civku5Xnq4vniakgPiBzaGl0YXRlbW9ub1wgOwor5LiD5Zue5b+MID4gc2hpY2hpa2Fpa2lcIDsKK+a6tuino+eGsSA+IHlvdWthaW5ldHN1XCA7CivnsbPljYHnspIgPiBrb21lanV1cnl1dVwgOwor54m55rOo5ZOBID4gdG9rdWNodXVoaW5cIDsKK+WIpeWDjemaiiA+IGJldHN1ZG91dGFpXCA7Civlj6TmlrDogZ4gPiBmdXJ1c2hpbmJ1blwgOwor6YWN6YGU5Lq6ID4gaGFpdGF0c3VuaW5cIDsKK+S6rOS6uuW9oiA+IGt5b3VuaW5neW91XCA7CivlrozntZDmlocgPiBrYW5rZXRzdWJ1blwgOwor5Y+N5a++6ImyID4gaGFudGFpc2hva3VcIDsKK+WVhuWTgeWtpiA+IHNob3VoaW5nYWt1XCA7CivlhaXlsITop5IgPiBueXV1c2hha2FrdVwgOwor5raI6Ziy5bqBID4gc2hvdWJvdWNob3VcIDsKK+Wlh+m6l+aJgCA+IGtpcmVpZG9rb3JvXCA7CivlsbHlkLnoibIgPiB5YW1hYnVraWlyb1wgOwor5omT5pKD546HID4gZGFnZWtpcml0c3VcIDsKK+iri+axgumhjSA+IHNlaWt5dXVnYWt1XCA7Civnmb7lubTnpa0gPiBoeWFrdW5lbnNhaVwgOwor5oqR55WZ6ICFID4geW9rdXJ5dXVzaGFcIDsKK+mjn+mAo+aYnyA+IHNob2t1cmVuc2VpXCA7CivokL3mnK3lgKQgPiByYWt1c2F0c3VuZVwgOwor6Ieq54S25YqbID4gc2hpemVucnlva3VcIDsKK+enmOabuOWupCA+IGhpc2hvc2hpdHN1XCA7CivljYPnp4vmpb0gPiBzZW5zaHV1cmFrdVwgOwor5o6i56m25b+DID4gdGFua3l1dXNoaW5cIDsKK+WJr+ekvumVtyA+IGZ1a3VzaGFjaG91XCA7CivmnIjkvovkvJogPiBnZXRzdXJlaWthaVwgOwor5pWw5pel6ZaTID4gc3V1aml0c3VrYW5cIDsKK+WRveWQjeW8jyA+IG1laW1laXNoaWtpXCA7CivmjIflsI7lipsgPiBzaGlkb3VyeW9rdVwgOwor5oSf6Kaa55qEID4ga2Fua2FrdXRla2lcIDsKK+WGjemWi+eZuiA+IHNhaWthaWhhdHN1XCA7CivlhaXlrabpm6MgPiBueXV1Z2FrdW5hblwgOwor5YiG5oqY5a2mID4gYnVuc2VraWdha3VcIDsKK+iLpei8qeiAhSA+IGpha3VoYWltb25vXCA7CivluYXlpInoqr8gPiBoYWJhaGVuY2hvdVwgOwor5bCP5oOR5pifID4gc2hvdXdha3VzZWlcIDsKK+S6uueJqeWDjyA+IGppbmJ1dHN1em91XCA7CivouoHprLHnl4UgPiBzb3V1dHN1YnlvdVwgOwor55u06Ly45YWlID4gY2hva3V5dW55dXVcIDsKK+S/g+mAsuWJpCA+IHNva3VzaGluemFpXCA7CivpvLvlh7rooYAgPiBiaXNodWtrZXRzdVwgOwor5oCl6YCy5YWaID4ga3l1dXNoaW50b3VcIDsKK+mHkeWpmuW8jyA+IGtpbmtvbnNoaWtpXCA7CivmuoDoiabpo74gPiBtYW5rYW5zaG9rdVwgOwor5YKN6L+35oORID4gaGF0YW1laXdha3VcIDsKK+aYvOmjn+aZgiA+IGNodXVzaG9rdWppXCA7CivoirjooZPnpa0gPiBnZWlqdXRzdXNhaVwgOwor5a2m55Sf5pyNID4gZ2FrdXNlaWZ1a3VcIDsKK+WwsealreWcsCA+IHNodXVneW91Y2hpXCA7CivooajnpLrniakgPiBoeW91amlidXRzdVwgOwor6Lui5YWl55SfID4gdGVuJydueXV1c2VpXCA7CivlhaXlrabph5EgPiBueXV1Z2FrdWtpblwgOwor6Z2p5paw57O7ID4ga2FrdXNoaW5rZWlcIDsKK+mZvealtee3miA+IHlvdWt5b2t1c2VuXCA7Civlh7rmvJTogIUgPiBzaHV0c3VlbnNoYVwgOwor5Lya6K2w5a6kID4ga2FpZ2lzaGl0c3VcIDsKK+mZuOmBi+WxgCA+IHJpa3V1bmt5b2t1XCA7Civov73lvrTph5EgPiB0c3VpY2hvdWtpblwgOwor5q666I+M5YqbID4gc2Fra2lucnlva3VcIDsKK+aKleWuv+iAhSA+IHRvdXNodWt1c2hhXCA7CivmlrDluoHoiI4gPiBzaGluY2hvdXNoYVwgOwor5Ya35Y205YmkID4gcmVpa3lha3V6YWlcIDsKK+mBiuimp+WuoiA+IHl1dXJhbmt5YWt1XCA7Civpu4Tph5HomasgPiBrb2dhbmVtdXNoaVwgOwor6buS5q2755eFID4ga29rdXNoaWJ5b3VcIDsKK+mDteS+v+WxgCA+IHl1dWJpbmt5b2t1XCA7Civlj43lsITnjocgPiBoYW5zaGFyaXRzdVwgOwor5pWZ55qH5bqBID4ga3lvdWtvdWNob3VcIDsKK+iLpemzpeS4vCA+IHdha2Fkb3JpZG9uXCA7Civnvo7ooZPllYYgPiBiaWp1dHN1c2hvdVwgOwor5ru05a6a6YePID4gdGVraXRlaXJ5b3VcIDsKK+elnuWtpuiAhSA+IHNoaW5nYWt1c2hhXCA7Civlr4bovLjlhaUgPiBtaXRzdXl1bnl1dVwgOwor6LiP5YiH55WqID4gZnVtaWtpcmliYW5cIDsKK+WJjeWlj+absiA+IHplbnNvdWt5b2t1XCA7Civoo7jkuIDosqsgPiBoYWRha2Fpa2thblwgOwor5aWP6bO05puyID4gc291bWVpa3lva3VcIDsKK+engeeUn+a0uyA+IHNoaXNlaWthdHN1XCA7CivnlLLpiYToiaYgPiBrb3V0ZXRzdWthblwgOwor5b+D6IeT55eFID4gc2hpbnpvdWJ5b3VcIDsKK+mMrOmHkeihkyA+IHJlbmtpbmp1dHN1XCA7Civpu5LlhoXpmpwgPiBrb2t1bmFpc2hvdVwgOwor5pyJ6K2Y6ICFID4geXV1c2hpa2lzaGFcIDsKK+Wxsea0peazoiA+IHlhbWF0c3VuYW1pXCA7Civoopbnj43mnKwgPiBzaHV1Y2hpbmJvblwgOwor5YWI552A6aCGID4gc2VuY2hha3VqdW5cIDsKK+Wun+WQjeipniA+IGppdHN1bWVpc2hpXCA7CivpmLLpo5/liaQgPiBib3VzaG9rdXphaVwgOwor5a++56ew6Lu4ID4gdGFpc2hvdWppa3VcIDsKK+i/keaXpeeCuSA+IGtpbmppdHN1dGVuXCA7Civol43mmbbnn7MgPiByYW5zaG91c2VraVwgOwor5aWz5a2Q5L6bID4gb24nJ25ha29kb21vXCA7CivmsqHpo5/lrZAgPiBtb3NzaG9rdXNoaVwgOwor5L+u57mV5LitID4gc2h1dXplbmNodXVcIDsKK+iAs+WtpuWVjyA+IG1pbWlnYWt1bW9uXCA7CivplbfnspLnsbMgPiBjaG91cnl1dW1haVwgOwor56We5L+h5b+DID4ga2FtaXNoaW5qaW5cIDsKK+WlqOWtpueUnyA+IHNob3VnYWt1c2VpXCA7CivoprPlhbXlvI8gPiBrYW5wZWlzaGlraVwgOwor6Iul5bm05Z6LID4gamFrdW5lbmdhdGFcIDsKK+m8oOa1t+ixmiA+IG5lenVtaWlydWthXCA7Civpm4bnqY3loLQgPiBzaHV1c2VraWpvdVwgOwor5oyH5Lq65b2iID4geXViaW5pbmd5b3VcIDsKK+absuiKuOW4qyA+IGt5b2t1Z2Vpc2hpXCA7CivpuqbnspLohasgPiBiYWt1cnl1dXNodVwgOwor55uu55qE5ZywID4gbW9rdXRla2ljaGlcIDsKK+WtpueUn+WvriA+IGdha3VzZWlyeW91XCA7CivlkIjmiJDlipsgPiBnb3VzZWlyeW9rdVwgOwor5o+Q5L6b5YG0ID4gdGVpa3lvdWdhd2FcIDsKK+S5l+mZjeWuoiA+IGpvdWtvdWt5YWt1XCA7CivlhoXopqrnjosgPiBuYWlzaGluJydub3VcIDsKK+eznuWLieW8tyA+IGt1c29iZW5reW91XCA7Civnn6Lntpnml6kgPiB5YXRzdWdpYmF5YVwgOwor5aSJ5puy54K5ID4gaGVua3lva3V0ZW5cIDsKK+mVt+Wbm+inkiA+IG5hZ2FzaGlrYWt1XCA7CivopqrliIfmsJcgPiBzaGluc2V0c3VnaVwgOwor5Ymv56We57WMID4gZnVrdXNoaW5rZWlcIDsKK+iRiee3keS9kyA+IHlvdXJ5b2t1dGFpXCA7Civoj4rkurrlvaIgPiBraWt1bmluZ3lvdVwgOwor546p5byE54mpID4gZ2Fucm91YnV0c3VcIDsKK+WPo+iogOiRiSA+IGt1Y2hpa290b2JhXCA7Civpm4blkIjnmoQgPiBzaHV1Z291dGVraVwgOwor5Ymy5b2T6aGNID4gd2FyaWF0ZWdha3VcIDsKK+W4uOe/kueahCA+IGpvdXNodXV0ZWtpXCA7CivmhJ/lnKfntJkgPiBrYW4nJ2F0c3VzaGlcIDsKK+e0heeMv+WtkCA+IGJlbmltYXNoaWtvXCA7CivlvL7mgKfnjocgPiBkYW5zZWlyaXRzdVwgOwor5reh57SF6ImyID4gdGFua291c2hva3VcIDsKK+afs+ihjOadjiA+IHlhbmFnaWdvdXJpXCA7CivmtYHli5XnmoQgPiByeXV1ZG91dGVraVwgOwor55Kw5aKD5bqBID4ga2Fua3lvdWNob3VcIDsKK+aYhuiZq+WtpiA+IGtvbmNodXVnYWt1XCA7CivluLjml6XpoIMgPiB0c3VuZWhpZ29yb1wgOwor5q+U57+85aGaID4gaGl5b2t1ZHp1a2FcIDsKK+a3t+aIkOeJqSA+IGtvbnNlaWJ1dHN1XCA7Civmurbop6PlipsgPiB5b3VrYWlyeW9rdVwgOwor5pWZ6IKy6ZW3ID4ga3lvdWlrdWNob3VcIDsKK+eEvOWNtOeCiSA+IHNob3VreWFrdXJvXCA7Civnmb3mqoDmsrkgPiBieWFrdWRhbicneXVcIDsKK+eJveW8leWKmyA+IGtlbicnaW5yeW9rdVwgOwor6Kaz5YWJ5bGAID4ga2Fua291a3lva3VcIDsKK+WFpeWtpuiAhSA+IG55dXVnYWt1c2hhXCA7Civlm73lrabogIUgPiBrb2t1Z2FrdXNoYVwgOwor5rS75YuV6KqMID4ga2F0c3Vkb3VzaGlcIDsKK+WHuuWcn+WTgSA+IHNodXRzdWRvaGluXCA7CivntJnooajntJkgPiBrYW1pYnlvdXNoaVwgOwor6Kaz5YWJ5a6iID4ga2Fua291a3lha3VcIDsKK+WFseWtpuWItiA+IGt5b3VnYWt1c2VpXCA7Civnvp7mgaXlv4MgPiBzaHV1Y2hpc2hpblwgOwor6Jmr55y86Y+hID4gbXVzaGltZWdhbmVcIDsKK+iogOiRieizqiA+IGtvdG9iYWppY2hpXCA7CivlrabogIXohpogPiBnYWt1c2hhaGFkYVwgOwor6YCa5L+h57ayID4gdHN1dXNoaW5tb3VcIDsKK+aZruWPiueOhyA+IGZ1a3l1dXJpdHN1XCA7CivljYPps6XotrMgPiBjaGlkb3JpYXNoaVwgOwor6Lui6L2N5omLID4gdGVudGV0c3VzaHVcIDsKK+izvOiyt+WKmyA+IGtvdWJhaXJ5b2t1XCA7CivlrabogIXogowgPiBnYWt1c2hhaGFkYVwgOwor5YWl6LOe6ICFID4gbnl1dXNob3VzaGFcIDsKK+mZuOi7jeecgSA+IHJpa3VndW5zaG91XCA7Civku67lh7rmiYAgPiBrYXJpc2h1c3Nob1wgOwor5Y+k54mp5ZWGID4ga29idXRzdXNob3VcIDsKK+ixoeW+tOipqSA+IHNob3VjaG91c2hpXCA7CivkuIvljZTorbAgPiBzaGl0YWt5b3VnaVwgOwor5Y+s6ZuG5LukID4gc2hvdXNodXVyZWlcIDsKK+eFp+S8muWFiCA+IHNob3VrYWlzYWtpXCA7CivloIbnqY3lraYgPiB0YWlzZWtpZ2FrdVwgOwor6Kqt6Kej5YqbID4gZG9ra2Fpcnlva3VcIDsKK+iFuOe1kOaguCA+IGNob3VrZWtrYWt1XCA7CivlubTmgbDlpb0gPiB0b3NoaWtha2tvdVwgOwor6YCa55Sj55yBID4gdHN1dXNhbnNob3VcIDsKK+mAmueUo+ebuCA+IHRzdXVzYW5zaG91XCA7CivnnaPlrablrpggPiB0b2t1Z2FrdWthblwgOwor5oeQ5Lit54mpID4ga2FpY2h1dW1vbm9cIDsKK+mAmuS/oeekviA+IHRzdXVzaGluc2hhXCA7CivljYPnn7PoiLkgPiBzZW5nb2t1YnVuZVwgOwor6YeR54mb5a6uID4ga2luZ3l1dWt5dXVcIDsKK+aOpeWQiOWtkCA+IHNldHN1Z291c2hpXCA7CivnmoflrqTosrsgPiBrb3VzaGl0c3VoaVwgOwor6L+95b6056iOID4gdHN1aWNob3V6ZWlcIDsKK+WxgOWkluiAhSA+IGt5b2t1Z2Fpc2hhXCA7Civnv4znv4zlubQgPiB5b2t1eW9rdW5lblwgOwor54m55Yil5qmfID4gdG9rdWJldHN1a2lcIDsKK+a3oeikkOiJsiA+IHRhbmthc3Nob2t1XCA7CivlgY/ln7fnl4UgPiBoZW5zaHV1YnlvdVwgOwor5a2m57+S6ICFID4gZ2FrdXNodXVzaGFcIDsKK+mYsumfs+WupCA+IGJvdW9uc2hpdHN1XCA7CivogonkvZPnmoQgPiBuaWt1dGFpdGVraVwgOwor5paZ6YeR6KGoID4gcnlvdWtpbmh5b3VcIDsKK+WGhemZuOWbvSA+IG5haXJpa3Vrb2t1XCA7CivljIXlrrnlipsgPiBob3V5b3VyeW9rdVwgOwor5Ye65ryB5pyfID4gc2h1dHN1Z3lva2lcIDsKK+S4u+S6uuW9uSA+IHNodWppbicneWFrdVwgOwor5oiQ5Yqf546HID4gc2Vpa291cml0c3VcIDsKK+WFrOacieeJqSA+IGtvdXl1dWJ1dHN1XCA7CivoprPoiablvI8gPiBrYW5rYW5zaGlraVwgOwor5pyI5aSc6Iy4ID4gdHN1a2l5b3Rha2VcIDsKK+WFpeWtpueUnyA+IG55dXVnYWt1c2VpXCA7CivmmI7lvozml6UgPiBteW91Z29uaWNoaVwgOwor5rS75YuV6ICFID4ga2F0c3Vkb3VzaGFcIDsKK+S4ieWOn+iJsiA+IHNhbmdlbnNob2t1XCA7CivlgY/ln7fni4IgPiBoZW5zaHV1a3lvdVwgOwor6JKL5LuL55+zID4gc2hvdWthaXNla2lcIDsKK+eUs+WRiuabuCA+IHNoaW5rb2t1c2hvXCA7Civnt6jnrKDojLggPiBhbWlnYXNhdGFrZVwgOwor5bCP5Y2K5pelID4ga29oYW4nJ25pY2hpXCA7CivooajlvbDnirYgPiBoeW91c2hvdWpvdVwgOwor5YaF6Ki85LqLID4gbmFpc2hvdWdvdG9cIDsKK+iouuaWreWtpiA+IHNoaW5kYW5nYWt1XCA7CivljZfmpbXngrkgPiBuYW5reW9rdXRlblwgOwor5puy5bCE56CyID4ga3lva3VzaGFob3VcIDsKK+WvvuensOeahCA+IHRhaXNob3V0ZWtpXCA7CivnlLLpiYTmnb8gPiBrb3V0ZXRzdWJhblwgOwor5YWI55m66ZqKID4gc2VucGF0c3V0YWlcIDsKK+aAp+eUn+a0uyA+IHNlaXNlaWthdHN1XCA7CivmpJzplrLlrpggPiBrZW4nJ2V0c3VrYW5cIDsKK+a1gemAmueojiA+IHJ5dXV0c3V1emVpXCA7CivmtJfmv6/ns4ogPiBzZW50YWt1bm9yaVwgOwor5Y2K55u057eaID4gaGFuY2hva3VzZW5cIDsKK+a0l+a/r+exoCA+IHNlbnRha3VrYWdvXCA7CivmjqXlkIjliaQgPiBzZXRzdWdvdXphaVwgOwor6L6y55Sj54mpID4gbm91c2FuYnV0c3VcIDsKK+aOpeWPl+WbvSA+IHNldHN1anVrb2t1XCA7CivljZfmpbXmtbcgPiBuYW5reW9rdWthaVwgOwor57WQ6Iac54KOID4ga2V0c3VtYWt1ZW5cIDsKK+imquedpuS8miA+IHNoaW5ib2t1a2FpXCA7CivnoavljJbniakgPiByeXV1a2FidXRzdVwgOwor5oOz5YOP5YqbID4gc291em91cnlva3VcIDsKK+iKuOihk+WTgSA+IGdlaWp1dHN1aGluXCA7CivljZfmpbXmtIsgPiBuYW5reW9rdXlvdVwgOwor5YaN5ris6YePID4gc2Fpc29rdXJ5b3VcIDsKK+mcsuWHuuioiCA+IHJvc2h1dHN1a2VpXCA7CivnlZnlrabnlJ8gPiByeXV1Z2FrdXNlaVwgOwor5rC05LuV5LqLID4gbWl6dXNoaWdvdG9cIDsKK+Wtpue/kueUqCA+IGdha3VzaHV1eW91XCA7Civms6jlsITph50gPiBjaHV1c2hhYmFyaVwgOwor6Kaz5a+f6ICFID4ga2Fuc2F0c3VzaGFcIDsKK+mAmuS/oeashCA+IHRzdXVzaGlucmFuXCA7CivkupTmnIjpl4cgPiBzYXRzdWtpeWFtaVwgOwor55m6552A5aC0ID4gaGF0Y2hha3Vqb3VcIDsKK+i8uOWHuueojiA+IHl1c2h1dHN1emVpXCA7CivlsLHogbfmmYIgPiBzaHV1c2hva3VqaVwgOwor552A55y854K5ID4gY2hha3VnYW50ZW5cIDsKK+epuuWGt+W8jyA+IGt1dXJlaXNoaWtpXCA7CivmurbmjqXlt6UgPiB5b3VzZXRzdWtvdVwgOwor5Li45pyo5qmLID4gbWFydWtpYmFzaGlcIDsKK+WxseW9ouecjCA+IHlhbWFnYXRha2VuXCA7CivkuqTpnIrooZMgPiBrb3VyZWlqdXRzdVwgOwor5Ym16YCg6KqsID4gc291em91c2V0c3VcIDsKK+aLm+W+heW4rSA+IHNob3V0YWlzZWtpXCA7Civpm6rkuIrou4ogPiBzZXRzdWpvdXNoYVwgOwor5Lqk6Z+/5qW9ID4ga291a3lvdWdha3VcIDsKK+i+sualreWbvSA+IG5vdWd5b3Vrb2t1XCA7CivljZPotorpoqggPiB0YWt1ZXRzdWZ1dVwgOwor6Y6u55eb5oCnID4gY2hpbnRzdXVzZWlcIDsKK+iqjeitmOirliA+IG5pbnNoaWtpcm9uXCA7CivlsLHlr53liY0gPiBzaHV1c2hpbnplblwgOwor5Y+M5puy57eaID4gc291a3lva3VzZW5cIDsKK+Wkj+aZguWIuyA+IG5hdHN1amlrb2t1XCA7CivlpI/lpKfmoLkgPiBuYXRzdWRhaWtvblwgOwor5p2R5YWr5YiGID4gbXVyYWhhY2hpYnVcIDsKK+WCmOS8kOaelyA+IHNhbmJhdHN1cmluXCA7CivluLjoqK3ppKggPiBqb3VzZXRzdWthblwgOwor5Y2X5qW15pifID4gbmFua3lva3VzZWlcIDsKK+elnuWtpuWjqyA+IHNoaW5nYWt1c2hpXCA7CivkuIrlkYrlr6kgPiBqb3Vrb2t1c2hpblwgOwor5YWI5YWl6KazID4gc2VuJydueXV1a2FuXCA7CivlhYjlhaXoposgPiBzZW4nJ255dXVrZW5cIDsKK+a0l+a/r+eJqSA+IHNlbnRha3Vtb25vXCA7CivkuIfokYnpm4YgPiBtYW4nJ3lvdXNodXVcIDsKK+a6gOW3nuWbvSA+IG1hbnNodXVrb2t1XCA7Civooajlv6DloZQgPiBoeW91Y2h1dXRvdVwgOwor5LiJ6YeN5q66ID4gc2FuanV1c2F0c3VcIDsKK+WIhuazjOa2siA+IGJ1bnBpdHN1ZWtpXCA7CivpmqPmjqXnnIwgPiByaW5zZXRzdWtlblwgOwor5ZiY5YWr55m+ID4gdXNvaGFwcHlha3VcIDsKK+iInui4j+WupCA+IGJ1dG91c2hpdHN1XCA7CivlvZPlsYDogIUgPiB0b3VreW9rdXNoYVwgOwor57ep6KGd5Zu9ID4ga2Fuc2hvdWtva3VcIDsKK+iXgeS6uuW9oiA+IHdhcmFuaW5neW91XCA7CivlvbHpn7/lipsgPiBlaWt5b3VyeW9rdVwgOwor5paH56+A5pWwID4gYnVuc2V0c3VzdXVcIDsKK+aCquaOqOmHjyA+IHdhcnV6dWlyeW91XCA7CivlkKvmnInph48gPiBnYW4nJ3l1dXJ5b3VcIDsKK+iqmOmbu+eOhyA+IHl1dWRlbnJpdHN1XCA7CivoprPlr5/nnLwgPiBrYW5zYXRzdWdhblwgOwor5oqb54mp57eaID4gaG91YnV0c3VzZW5cIDsKK+ijj+WIh+iAhSA+IHVyYWdpcmltb25vXCA7CivpmLLpm6rmnpcgPiBib3VzZXRzdXJpblwgOwor5aSp56We6autID4gdGVuc2hpbmhpZ2VcIDsKK+auuuWus+iAhSA+IHNhdHN1Z2Fpc2hhXCA7CivmlZnogrLnnIEgPiBreW91aWt1c2hvdVwgOwor6Zui5Lmz6aOfID4gcmlueXV1c2hva3VcIDsKK+aVmeiCsueahCA+IGt5b3Vpa3V0ZWtpXCA7CivnibnliKXljLogPiB0b2t1YmV0c3VrdVwgOwor6LKh5pS/5YqbID4gemFpc2Vpcnlva3VcIDsKK+W8t+ehrOetliA+IGt5b3Vrb3VzYWt1XCA7CivmlrDlubTlj7cgPiBzaGluJyduZW5nb3VcIDsKK+ejr+mmtOadviA+IHNvbmFyZW1hdHN1XCA7CivlhaXppKjmlpkgPiBueXV1a2FucnlvdVwgOwor54mp55u46aOvID4gbW9zc291bWVzaGlcIDsKK+ijvemdqealrSA+IHNlaWtha3VneW91XCA7CivkuK3lrabnlJ8gPiBjaHV1Z2FrdXNlaVwgOwor6Ly45Ye65rivID4geXVzaHV0c3Vrb3VcIDsKK+WNl+alteW4ryA+IG5hbmt5b2t1dGFpXCA7CivmurbmjqXliaQgPiB5b3VzZXRzdXphaVwgOwor5oCl55eF5Lq6ID4ga3l1dWJ5b3VuaW5cIDsKK+WvhOWuv+aWmSA+IGtpc2h1a3VyeW91XCA7Civpq5jls7bnlLAgPiB0YWthc2hpbWFkYVwgOwor5bCP5q2j5pyIID4ga29zaG91Z2F0c3VcIDsKK+WLleWKm+ioiCA+IGRvdXJ5b2t1a2VpXCA7CivmpbXlpKflgKQgPiBreW9rdWRhaWNoaVwgOwor5Ye66YeR6aGNID4gc2h1a2tpbmdha3VcIDsKK+eUs+WRiuWItiA+IHNoaW5rb2t1c2VpXCA7CivlrZDkvpvpgZQgPiBrb2RvbW90YWNoaVwgOwor5aqS5LuL54mpID4gYmFpa2FpYnV0c3VcIDsKK+m7hOmBk+iJsiA+IGtvdWRvdXNob2t1XCA7CivkuInokYnomasgPiBzYW4nJ3lvdWNodXVcIDsKK+WFqOizquWMliA+IHplbnNoaXRzdWthXCA7CivnlJ/mtLvpm6MgPiBzZWlrYXRzdW5hblwgOwor57Sw5YuV6ISIID4gc2FpZG91bXlha3VcIDsKK+engeacieeJqSA+IHNoaXl1dWJ1dHN1XCA7CivopIfpm5HljJYgPiBmdWt1emF0c3VrYVwgOwor5Yui5Yqb5ZyPID4gc2Vpcnlva3VrZW5cIDsKK+ikh+ikh+e3miA+IGZ1a3VmdWt1c2VuXCA7CivmlrDlubTkvJogPiBzaGluJyduZW5rYWlcIDsKK+S4jeeiuuWunyA+IGZ1a2FrdWppdHN1XCA7Civpjq7nl5vliaQgPiBjaGludHN1dXphaVwgOwor5oCq5Lq654mpID4ga2FpamluYnV0c3VcIDsKK+mAmuWtpueUnyA+IHRzdXVnYWt1c2VpXCA7CivniIblv4PlnLAgPiBiYWt1c2hpbmNoaVwgOwor5aeL5pyr5pu4ID4gc2hpbWF0c3VzaG9cIDsKK+ertuS6ieW/gyA+IGt5b3Vzb3VzaGluXCA7Civlib3ou73ogIUgPiBoeW91a2lubW9ub1wgOwor6IW46ZaJ5aGeID4gY2hvdWhlaXNva3VcIDsKK+i7jeW9k+WxgCA+IGd1bnRvdWt5b2t1XCA7Civnmb3lrZDps6kgPiBzaGlyYWtvYmF0b1wgOwor55S65b255aC0ID4gbWFjaGl5YWt1YmFcIDsKK+S4jeW/oOWunyA+IGZ1Y2h1dWppdHN1XCA7CivljZrlrabogIUgPiBoYWt1Z2FrdXNoYVwgOwor5oim55Wl5LiKID4gc2Vucnlha3Vqb3VcIDsKK+WNl+alteWcjyA+IG5hbmt5b2t1a2VuXCA7CivkuKHohJropo8gPiByeW91a3lha3VraVwgOwor5YWx6Kiz6ICFID4ga3lvdXlha3VzaGFcIDsKK+W/jeiAkOWKmyA+IG5pbnRhaXJ5b2t1XCA7Civpm4bph5HkurogPiBzaHV1a2luJyduaW5cIDsKK+WNgeWFq+mHkSA+IGp1dWhhY2hpa2luXCA7CivlgJ/nlKjogIUgPiBzaGFrdXlvdXNoYVwgOwor5oyB5LmF5YqbID4gamlreXV1cnlva3VcIDsKK+WxgOWcsOmiqCA+IGt5b2t1Y2hpZnV1XCA7CivnmbrnmYzmgKcgPiBoYXRzdWdhbnNlaVwgOwor5o+a6Zm45paZID4geW91cmlrdXJ5b3VcIDsKK+Wvhuiyv+aYkyA+IG1pdHN1Ym91ZWtpXCA7CivpgJrkv6Hlk6EgPiB0c3V1c2hpbicnaW5cIDsKK+WGoOWLleiEiCA+IGthbmRvdW15YWt1XCA7CivlpInlpY/mm7IgPiBoZW5zb3VreW9rdVwgOwor6KGo5b2w5Y+wID4gaHlvdXNob3VkYWlcIDsKK+iRrOmAgeabsiA+IHNvdXNvdWt5b2t1XCA7CivljYPliIbnjocgPiBzZW5idW5yaXRzdVwgOwor5Li45LiA5bm0ID4gbWFydWljaGluZW5cIDsKK+iAgeW7g+eJqSA+IHJvdWhhaWJ1dHN1XCA7CivljZfmpbXlhYkgPiBuYW5reW9rdWtvdVwgOwor55qu566X55SoID4ga2F3YXphbicneW91XCA7Civov73liIbnr4AgPiBvaXdha2VidXNoaVwgOwor5b6z5bed5YuiID4gdG9rdWdhd2F6ZWlcIDsKK+WJtemAoOeJqSA+IHNvdXpvdWJ1dHN1XCA7CivliJ3oiKrmtbcgPiBoYXRzdWtvdWthaVwgOwor6LO86Kqt5paZID4ga291ZG9rdXJ5b3VcIDsKK+W+l+elqOaVsCA+IHRva3VoeW91c3V1XCA7Civpm6rmma/oibIgPiB5dWtpZ2VzaGlraVwgOwor57K+56We55qEID4gc2Vpc2hpbnRla2lcIDsKK+W+s+W3neWFrCA+IHRva3VnYXdha291XCA7CivmtLvli5XlrrYgPiBrYXRzdWRvdXNoYVwgOwor6Ieq56uL5b+DID4gamlyaXRzdXNoaW5cIDsKK+a8uOmAsueahCA+IHplbnNoaW50ZWtpXCA7CivmlZnkvJrmmqYgPiBreW91a2FpcmVraVwgOwor5q665Lq66ICFID4gc2F0c3VqaW5zaGFcIDsKK+eyvuelnueXhSA+IHNlaXNoaW5ieW91XCA7CivmrrrkurrnvaogPiBzYXRzdWppbnphaVwgOwor5oiQ5bm05byPID4gc2VpbmVuc2hpa2lcIDsKK+iEseefs+ayuSA+IGRhdHN1c2VraXl1XCA7CivlhYjpgLLlm70gPiBzZW5zaGlua29rdVwgOwor5Zyf5Zuj5a2QID4gdHN1Y2hpZGFuZ29cIDsKK+a3t+WQiOeJqSA+IGtvbmdvdWJ1dHN1XCA7Civou43mpb3plbcgPiBndW5nYWt1Y2hvdVwgOwor5rOV5b6L5LiKID4gaG91cml0c3Vqb3VcIDsKK+eVnOeKrOeojiA+IGNoaWt1a2VuemVpXCA7CivmooHlsbHms4ogPiByeW91emFucGFrdVwgOwor5b2r5aGR6KGTID4gY2hvdXNvanV0c3VcIDsKK+S7o+eUqOmjnyA+IGRhaXlvdXNob2t1XCA7CivkuKbmnKjpgZMgPiBuYW1pa2ltaWNoaVwgOwor5biz5pys5Lq6ID4gY2hvdWhvbicnbmluXCA7Civlrp3nn7PnrrEgPiBob3VzZWtpYmFrb1wgOwor5Y2S5qWt5b6MID4gc290c3VneW91Z29cIDsKK+WPo+inkuWKmyA+IGt1Y2hpZHp1bW91XCA7Civkuovmpa3kuLsgPiBqaWd5b3VudXNoaVwgOwor6Ieq6JmQ55qEID4gamlneWFrdXRla2lcIDsKK+S4i+ebuOirhyA+IHNoaXRhc291ZGFuXCA7Civnpr/poK3nl4UgPiB0b2t1dG91YnlvdVwgOwor5by+552A54K5ID4gZGFuY2hha3V0ZW5cIDsKK+S6lOaciOeXhSA+IGdvZ2F0c3VieW91XCA7CivlvL7lipvmgKcgPiBkYW5yeW9rdXNlaVwgOwor5qC454iG5by+ID4ga2FrdWJha3VkYW5cIDsKK+S4puacqOi3ryA+IG5hbWlraW1pY2hpXCA7CivllYbmpa3ooZcgPiBzaG91Z3lvdWdhaVwgOwor6aCt5paH5a2XID4ga2FzaGlyYW1vamlcIDsKK+e4rue3rOe0mSA+IGNoaXJpbWVuc2hpXCA7CivmiKrmlq3pnaIgPiBzZXRzdWRhbm1lblwgOwor5Y2X5Lqs6JmrID4gbmFua2lubXVzaGlcIDsKK+ijgeaxuuabuCA+IHNhaWtldHN1c2hvXCA7CivmoLjnh4PmlpkgPiBrYWt1bmVucnlvdVwgOwor6YCQ5a2X6KizID4gY2hpa3VqaXlha3VcIDsKK+S4gOW+ueiAhSA+IGl0dGV0c3Vtb25vXCA7CivlvqHljZTlipsgPiBnb2t5b3VyeW9rdVwgOwor5L+C5bGe5LitID4ga2Vpem9rdWNodXVcIDsKK+eXheS4reWQnyA+IGJ5b3VjaHV1Z2luXCA7CivmpbXpmZDlgKQgPiBreW9rdWdlbmNoaVwgOwor5pWZ6IKy5a2mID4ga3lvdWlrdWdha3VcIDsKK+mbu+ipseWupCA+IGRlbndhc2hpdHN1XCA7CivpgaDlv4PlipsgPiBlbnNoaW5yeW9rdVwgOwor5a6u5bSO55yMID4gbWl5YXpha2lrZW5cIDsKK+WVhuW3pealrSA+IHNob3Vrb3VneW91XCA7CivooZ3li5XnmoQgPiBzaG91ZG91dGVraVwgOwor6IOG55+z55eHID4gdGFuc2VraXNob3VcIDsKK+i8uOWHuuWTgSA+IHl1c2h1dHN1aGluXCA7CivkuInnnKDompUgPiBzYW5taW5rYWlrb1wgOwor6ZaT5qyg5rOJID4ga2Fua2V0c3VzZW5cIDsKK+Wkqem+jeW3nSA+IHRlbnJ5dXVrYXdhXCA7CivmlZnnv5LnlJ8gPiBreW91c2h1dXNlaVwgOwor6Zqj5o6l5ZywID4gcmluc2V0c3VjaGlcIDsKK+eZuueUn+eOhyA+IGhhc3NlaXJpdHN1XCA7CivokaHokITnlZEgPiBidWRvdWJhdGFrZVwgOwor5aKD55WM5qiZID4ga3lvdWthaWh5b3VcIDsKK+epuui7jeWKmyA+IGt1dWd1bnJ5b2t1XCA7CivkuqTlo7Dmm7IgPiBrb3VzZWlreW9rdVwgOwor54++5YaF6ZajID4gZ2VuJyduYWlrYWt1XCA7CivljaDmmJ/ooZMgPiBzZW5zZWlqdXRzdVwgOwor6aaZ6L6b5paZID4ga291c2hpbnJ5b3VcIDsKK+eUuumBk+WgtCA+IG1hY2hpZG91am91XCA7Civli5XlipvmupAgPiBkb3VyeW9rdWdlblwgOwor5oGS562J5byPID4ga291dG91c2hpa2lcIDsKK+iojuS8kOi7jSA+IHRvdWJhdHN1Z3VuXCA7CivooajnnIvmnb8gPiBvbW90ZWthbmJhblwgOwor5r+D6Z2S6ImyID4gbm91c2Vpc2hva3VcIDsKK+auuuS6uueKryA+IHNhdHN1amluaGFuXCA7Civmrovlv7Xos54gPiB6YW4nJ25lbnNob3VcIDsKK+iEs+WFheihgCA+IG5vdWp1dWtldHN1XCA7Civpo5/kurrnqK4gPiBzaG9rdWppbnNodVwgOwor6LWk6KSQ6ImyID4gc2Vra2Fzc2hva3VcIDsKK+iIiOS/oemMsiA+IGtvdXNoaW5yb2t1XCA7Civpm7vnhrHlmaggPiBkZW4nJ25ldHN1a2lcIDsKK+S9nOabsuiAhSA+IHNha2t5b2t1c2hhXCA7CivllYbmqJnmqKkgPiBzaG91aHlvdWtlblwgOwor5bi46K2Y5Lq6ID4gam91c2hpa2lqaW5cIDsKK+ims+WuouWxpCA+IGthbmt5YWt1c291XCA7CivkuIDph43moZwgPiBoaXRvZXpha3VyYVwgOwor5YWI5YWI5pyIID4gc2Vuc2VuZ2V0c3VcIDsKK+WcsOWLleiqrCA+IGNoaWRvdXNldHN1XCA7Civnmb3kupzos6ogPiBoYWt1YXNoaXRzdVwgOwor6Iag552A5YmkID4ga291Y2hha3V6YWlcIDsKK+S4gOauteiQvSA+IGljaGlkYW5yYWt1XCA7Civou43nlKjps6kgPiBndW4nJ3lvdWJhdG9cIDsKK+S/l+aWh+WtpiA+IHpva3VidW5nYWt1XCA7Civpm7vlnKfoqIggPiBkZW4nJ2F0c3VrZWlcIDsKK+iWrOWxgOaWuSA+IHlha2t5b2t1aG91XCA7Civms5XliLblsYAgPiBob3VzZWlreW9rdVwgOwor6Jas5a2m6ICFID4geWFrdWdha3VzaGFcIDsKK+S/guS6ieeJqSA+IGtlaXNvdWJ1dHN1XCA7CivpkJjkubPmtJ4gPiBzaG91bnl1dWRvdVwgOwor6ISx5q+b5YmkID4gZGF0c3Vtb3V6YWlcIDsKK+euoei9hOaoqSA+IGthbmthdHN1a2VuXCA7CivlgJ/nlKjmm7ggPiBzaGFrdXlvdXNob1wgOwor5aWJ5YWs5Y+jID4gaG91a291Z3VjaGlcIDsKK+aUvumAgeWxgCA+IGhvdXNvdWt5b2t1XCA7Civpu4Tnmb3oibIgPiBrb2hha3VzaG9rdVwgOwor576957mU6KK0ID4gaGFvcmloYWthbWFcIDsKK+mZpOW5leW8jyA+IGpvbWFrdXNoaWtpXCA7CivlvLfliLbnmoQgPiBreW91c2VpdGVraVwgOwor5by35b+D5YmkID4ga3lvdXNoaW56YWlcIDsKK+eUn+a0u+eSsCA+IHNlaWthdHN1a2FuXCA7CivmmKXkuIDnlaogPiBoYXJ1aWNoaWJhblwgOwor5Y2B5YWr55WqID4ganV1aGFjaGliYW5cIDsKK+e1gui6q+WumCA+IHNodXVzaGlua2FuXCA7CivmnIjplbfnn7MgPiBnZXRjaG91c2VraVwgOwor5pWZ6IG35ZOhID4ga3lvdXNob2t1aW5cIDsKK+mAgeWIpeS8miA+IHNvdWJldHN1a2FpXCA7Civlh7rlk4Hlm70gPiBzaHVwcGlua29rdVwgOwor5Y2X5Lqs55S6ID4gbmFua2lubWFjaGlcIDsKK+mBk+W+s+eahCA+IGRvdXRva3V0ZWtpXCA7CivllYbmpa3nlYwgPiBzaG91Z3lvdWthaVwgOwor5Y+O57SN6aGNID4gc2h1dW5vdWdha3VcIDsKK+m8jueri+aIpiA+IHRlaXJpdHN1c2VuXCA7Civljp/liYfnmoQgPiBnZW5zb2t1dGVraVwgOwor5YKN6IG05paZID4gYm91Y2hvdXJ5b3VcIDsKK+WNg+WGhuacrSA+IHNlbicnZW5zYXRzdVwgOwor5a6a5Y+O5YWlID4gdGVpc2h1dW55dXVcIDsKK+WFreWkp+W3niA+IHJva3VkYWlzaHV1XCA7CivlibLlvJXliLggPiB3YXJpYmlraWtlblwgOwor5L2P55Sf5rS7ID4ganV1c2Vpa2F0c3VcIDsKK+WJjeeri+iFuiA+IHplbnJpdHN1c2VuXCA7CivlhpnnnJ/pm4YgPiBzaGFzaGluc2h1dVwgOwor55m+5LiH6YGNID4gaHlha3VtYW5iZW5cIDsKK+idieaZgumbqCA+IHNlbWlzaGlndXJlXCA7CivlibLlvJXlgrUgPiB3YXJpYmlraXNhaVwgOwor5o6l552A5YmkID4gc2V0Y2hha3V6YWlcIDsKK+aJi+ihk+WPsCA+IHNodWp1dHN1ZGFpXCA7CivpmLLngavmiYkgPiBib3VrYXRvYmlyYVwgOwor5Lmx5YWl6ICFID4gcmFuJydueXV1c2hhXCA7CivoqIjnlLvnmoQgPiBrZWlrYWt1dGVraVwgOwor6Kq/5Y2w5byPID4gY2hvdWluc2hpa2lcIDsKK+mAhui7ouWxpCA+IGd5YWt1dGVuc291XCA7Civpu4ToibLomasgPiBrb2dhbmVtdXNoaVwgOwor55Sf5rS75rOVID4gc2Vpa2F0c3Vob3VcIDsKK+eymOWcn+izqiA+IG5lbmRvc2hpdHN1XCA7CivpgIbovLjlhaUgPiBneWFrdXl1bnl1dVwgOwor5paw6IiI5Zu9ID4gc2hpbmtvdWtva3VcIDsKK+WJtemAoOWKmyA+IHNvdXpvdXJ5b2t1XCA7CivlkIjnm67nmoQgPiBnb3Vtb2t1dGVraVwgOwor5paw5Lq66LOeID4gc2hpbmppbnNob3VcIDsKK+mgmumdmeiEiCA+IGtlaWpvdW15YWt1XCA7Civpm7vloLHlsYAgPiBkZW5wb3VreW9rdVwgOwor5LiJ5bmV54mpID4gc2FubWFrdW1vbm9cIDsKK+eZveacqOiTriA+IGhha3Vtb2t1cmVuXCA7CivllYbmpa3muK8gPiBzaG91Z3lvdWtvdVwgOwor6Jas572Q6aCtID4geWFrYW4nJ2F0YW1hXCA7CivkuIDph4zloZogPiBpY2hpcmlkenVrYVwgOwor57WC6Lqr5YiRID4gc2h1dXNoaW5rZWlcIDsKK+WLleWKm+WtpiA+IGRvdXJpa2lnYWt1XCA7Civnr4DmlpnnkIYgPiBzZWNoaXJ5b3VyaVwgOwor5Ye65ZOB5Lq6ID4gc2h1cHBpbicnbmluXCA7Civlgo3ogbTluK0gPiBib3VjaG91c2VraVwgOwor5LiN6YGp5YiHID4gZnV0ZWtpc2V0c3VcIDsKK+Wtpumam+eahCA+IGdha3VzYWl0ZWtpXCA7Civnq5zpqqjluqcgPiByeXV1a290c3V6YVwgOwor5Luu5p2h57SEID4ga2FyaWpvdXlha3VcIDsKK+majue0mueroCA+IGthaWt5dXVzaG91XCA7CivmirXmipflipsgPiB0ZWlrb3VyeW9rdVwgOwor5qOu5p6X5a2mID4gc2hpbnJpbmdha3VcIDsKK+eZvuS4h+iogCA+IGh5YWt1bWFuZ2VuXCA7CivljJbnsqfkuIsgPiBrZXNob3VzaGl0YVwgOwor6LWk5o+Q54GvID4gYWthY2hvdWNoaW5cIDsKK+WJtemAoOS4uyA+IHNvdXpvdW51c2hpXCA7CivlgJnlrZ3os6IgPiBob3VzaGF1c2hlblwgOwor6Jas57y26aCtID4geWFrYW4nJ2F0YW1hXCA7CivlhqzlsIbou40gPiBmdXl1c2hvdWd1blwgOwor54us57+S5pu4ID4gZG9rdXNodXVzaG9cIDsKK+WFrOiovOaWmSA+IGtvdXNob3VyeW91XCA7Civntr/nuZTniakgPiBtZW4nJ29yaW1vbm9cIDsKK+WFiOWFpeS4uyA+IHNlbicnbnl1dXNodVwgOwor5pyA57WC55qEID4gc2Fpc2h1dXRla2lcIDsKK+acrOW7uueviSA+IGhvbmtlbmNoaWt1XCA7Civni5flsL7ojYkgPiBlbm9rb3JvZ3VzYVwgOwor6KGM5ZWG5Lq6ID4gZ3lvdXNob3VuaW5cIDsKK+WIh+WIhuazlSA+IHNldHN1YnVuaG91XCA7CivlsI/nmb7lp5MgPiBrb2J5YWt1c2hvdVwgOwor5b+D5LiI5aSrID4ga29rb3Jvam91YnVcIDsKK+mzpemhnuWtpiA+IGNob3VydWlnYWt1XCA7CivlvLHlubTogIUgPiBqYWt1bmVubW9ub1wgOwor5Lit6ZqK6ZW3ID4gY2h1dXRhaWNob3VcIDsKK+ebuOirh+W9uSA+IHNvdWRhbicneWFrdVwgOwor6aOf5LqL5pmCID4gc2hva3VqaWRva2lcIDsKK+WFq+mdouS9kyA+IGhhY2hpbWVudGFpXCA7Civljp/liKTmsbogPiBnZW5oYW5rZXRzdVwgOwor5qW15Zyw5ZyPID4ga3lva3VjaGlrZW5cIDsKK+ebo+Wvn+WumCA+IGthbnNhdHN1a2FuXCA7Civnmb3njonnsokgPiBzaGlyYXRhbWFrb1wgOwor5ZWG5qWt5paHID4gc2hvdWd5b3VidW5cIDsKK+WkqeWLleiqrCA+IHRlbmRvdXNldHN1XCA7Civovrvoqqzms5UgPiB0c3VqaXNlcHBvdVwgOwor54WJ5Li56KGTID4gcmVudGFuanV0c3VcIDsKK+ilv+a1t+WyuCA+IG5pc2hpa2FpZ2FuXCA7CivmgKXkuIrmmIcgPiBreXV1am91c2hvdVwgOwor5a6d55+z5ZWGID4gaG91c2VraXNob3VcIDsKK+aPm+eul+eOhyA+IGthbnNhbnJpdHN1XCA7Civlu7roqK3ogIUgPiBrZW5zZXRzdXNoYVwgOwor5YyX44CF6KW/ID4gaG9rdWhva3VzZWlcIDsKK+mKgOWpmuW8jyA+IGdpbmtvbnNoaWtpXCA7CivkuKHohJrlmaggPiByeW91a3lha3VraVwgOwor5Y6f5YuV5YqbID4gZ2VuZG91cnlva3VcIDsKK+S/hOaZr+awlyA+IG5pd2FrYWdlaWtpXCA7CivmgqrmiK/ogIUgPiBpdGF6dXJhbW9ub1wgOwor5aSn56aP5bizID4gZGFpZnVrdWNob3VcIDsKK+aZguevgOafhCA+IGppc2V0c3VnYXJhXCA7CivlkLjooYDprLwgPiBreXV1a2V0c3VraVwgOwor57OW5bC/55eFID4gdG91bnlvdWJ5b3VcIDsKK+i7ouS7u+WFiCA+IHRlbicnbmluc2FraVwgOwor5pSv6YWN5YqbID4gc2hpaGFpcnlva3VcIDsKK+WNmOmfs+evgCA+IHRhbicnb25zZXRzdVwgOwor5paw6IGe56iuID4gc2hpbmJ1bmRhbmVcIDsKK+W8n+OAheWtkCA+IG90b3V0b2Rlc2hpXCA7CivkvY7kuJjpmbUgPiB0ZWlreXV1cnlvdVwgOwor5Zu96Zqb55qEID4ga29rdXNhaXRla2lcIDsKK+mDt+Wcn+iJsiA+IGt5b3Vkb3Nob2t1XCA7Civnq5znlLDlp6sgPiB0YXRzdXRhaGltZVwgOwor5bCP5a2m6aSoID4gc2hvdWdha3VrYW5cIDsKK+S9v+evgOWboyA+IHNoaXNldHN1ZGFuXCA7Civmtojmga/mlocgPiBzaG91c29rdWJ1blwgOwor57eL6KGj6I2JID4gaGlnb3JvbW9zb3VcIDsKK+S4u+ioiOWxgCA+IHNodWtlaWt5b2t1XCA7CivpgZPlvrPlv4MgPiBkb3V0b2t1c2hpblwgOwor5pyq5rG65ZuaID4gbWlrZXRzdXNodXVcIDsKK+aEm+WUseabsiA+IGFpc2hvdWt5b2t1XCA7CivlsbHmo5/om4cgPiB5YW1ha2FnYXNoaVwgOwor5YG15a+f6ZqKID4gdGVpc2F0c3V0YWlcIDsKK+eZuuS/oeWBtCA+IGhhc3NoaW5nYXdhXCA7CivpgaDlsbHph4wgPiB0b295YW1hemF0b1wgOwor56We57WM55ebID4gc2hpbmtlaXRzdXVcIDsKK+elnue1jOeXhyA+IHNoaW5rZWlzaG91XCA7CivnpZ7ntYznl4UgPiBzaGlua2VpYnlvdVwgOwor5a6a552A5rayID4gdGVpY2hha3Vla2lcIDsKK+W8geiovOWtpiA+IGJlbnNob3VnYWt1XCA7Civnmbrkv6HkurogPiBoYXNzaGluJyduaW5cIDsKK+e3keWcsOW4ryA+IHJ5b2t1Y2hpdGFpXCA7CivnlJ/mtLvlnI8gPiBzZWlrYXRzdWtlblwgOwor54ax5Lyd5bCOID4gbmV0c3VkZW5kb3VcIDsKK+mBk+W+s+WtpiA+IGRvdXRva3VnYWt1XCA7CivpganmoLzogIUgPiB0ZWtpa2FrdXNoYVwgOwor5Zuz5pu45a6kID4gdG9zaG9zaGl0c3VcIDsKK+ims+mfs+anmCA+IGthbicnbm9uc2FtYVwgOwor57WQ5ama5byPID4ga2Vra29uc2hpa2lcIDsKK+ilv+a0i+W8jyA+IHNlaXlvdXNoaWtpXCA7CivnlLflhqXliKkgPiBvdG9rb215b3VyaVwgOwor5LiK6IWV6aqoID4gam91d2Fua290c3VcIDsKK+eUn+WRveWKmyA+IHNlaW1laXJ5b2t1XCA7CivnoazpqqjmvKIgPiBrb3Vrb3RzdWthblwgOwor5ZWG5qWt5ZywID4gc2hvdWd5b3VjaGlcIDsKK+S4h+W5tOW6iiA+IG1hbicnbmVuZG9rb1wgOwor6Kyb6YeI5birID4ga291c2hha3VzaGlcIDsKK+a3oem7hOiJsiA+IHRhbmtvdXNob2t1XCA7CivkuInluYXlr74gPiBzYW5wdWt1dHN1aVwgOwor6JuL55m95bC/ID4gdGFucGFrdW55b3VcIDsKK+WIuua/gOiHrSA+IHNoaWdla2lzaHV1XCA7CivojYnpnovomasgPiB3YXJhamltdXNoaVwgOwor6YeR6J6N5qWtID4ga2luJyd5dXVneW91XCA7Civoj5znqK7msrkgPiBuYXRhbmVhYnVyYVwgOwor6Zub5Lq65b2iID4gaGluYW5pbmd5b3VcIDsKK+eEoeedgOmZuCA+IG11Y2hha3VyaWt1XCA7CivkuIrliIbliKUgPiBqb3VmdW5iZXRzdVwgOwor5aSn5YuV6ISIID4gZGFpZG91bXlha3VcIDsKK+elnueEoeaciCA+IGthbicnbmFkenVraVwgOwor5bm86aa05p+TID4gb3NhbmFuYWppbWlcIDsKK+WGhuWRqOeOhyA+IGVuc2h1dXJpdHN1XCA7CivllYbmpa3lj7IgPiBzaG91Z3lvdXNoaVwgOwor5bGx5bKz55eFID4gc2FuZ2FrdWJ5b3VcIDsKK+imquS7u+WumCA+IHNoaW4nJ25pbmthblwgOwor6L+96Leh6ICFID4gdHN1aXNla2lzaGFcIDsKK+eZuuS8muW8jyA+IGhha2thaXNoaWtpXCA7CivlpKnpgZPomasgPiB0ZW50b3VtdXNoaVwgOwor5bqK6Z2i56mNID4geXVrYW1lbnNla2lcIDsKK+eLuOimqueItiA+IHRhbnVraW95YWppXCA7CivmnKjnn7PmvKIgPiBib2t1c2VraWthblwgOwor5Zu96Ziy55yBID4ga29rdWJvdXNob3VcIDsKK+WbveaWh+WtpiA+IGtva3VidW5nYWt1XCA7CivmsJHkv5flraYgPiBtaW56b2t1Z2FrdVwgOwor55Sf5q6W6IW6ID4gc2Vpc2hva3VzZW5cIDsKK+iHquauuueahCA+IGppc2F0c3V0ZWtpXCA7CivpgKDniankuLsgPiB6b3VidXRzdXNodVwgOwor55So5YW16KGTID4geW91aGVpanV0c3VcIDsKK+mAgOiBt+mHkSA+IHRhaXNob2t1a2luXCA7CivlvY7mnIjnirYgPiB3YW5nZXRzdWpvdVwgOwor55Sf5rKh5bm0ID4gc2VpYm90c3VuZW5cIDsKK+WNmOS4gOaApyA+IHRhbicnaXRzdXNlaVwgOwor5oyB57aa5YqbID4gaml6b2t1cnlva3VcIDsKK+aWsOiBnualrSA+IHNoaW5idW5neW91XCA7CivnpZ7ntYzmoLggPiBzaGlua2Vpa2FrdVwgOwor5p6i6Lu45Zu9ID4gc3V1amlrdWtva3VcIDsKK+S4ieiJsueJiCA+IHNhbnNob2t1YmFuXCA7Civnm7ToprPnmoQgPiBjaG9ra2FudGVraVwgOwor5Lit6ZaT6aeFID4gY2h1dWthbicnZWtpXCA7Civog73oo4XmnZ8gPiBub3VzaG91em9rdVwgOwor57WQ5pm25a2mID4ga2Vzc2hvdWdha3VcIDsKK+ino+axuuazlSA+IGthaWtldHN1aG91XCA7CivorabmiJLoibIgPiBrZWlrYWlzaG9rdVwgOwor5LiA5q+b5L2cID4gaWNoaW1vdXNha3VcIDsKK+a4qeeGseaApyA+IG9uJyduZXRzdXNlaVwgOwor5YaF5Y+N6ISaID4gbmFpaGFua3lha3VcIDsKK+W7tue4hOa8gSA+IGhhZW5hd2FyeW91XCA7Civnm7TmlrnkvZMgPiBjaG9rdWhvdXRhaVwgOwor5a625peP6YGUID4ga2F6b2t1dGFjaGlcIDsKK+WIuua/gOeahCA+IHNoaWdla2l0ZWtpXCA7CivkuqTmj5vlsYAgPiBrb3VrYW5reW9rdVwgOwor5LiD5bm05b+MID4gc2hpY2hpbmVua2lcIDsKK+aCquaIr+abuCA+IGl0YXp1cmFnYWtpXCA7CivljYPkurrph50gPiBzZW4nJ25pbmJhcmlcIDsKK+a2iOavkua2siA+IHNob3Vkb2t1ZWtpXCA7CivmsrnnoKXnn7MgPiBhYnVyYXRvaXNoaVwgOwor54uQ6aWC6aOpID4ga2l0c3VuZXVkb25cIDsKK+WQiOW3nuWbvSA+IGdhc3NodXVrb2t1XCA7Civmv4PopJDoibIgPiBub3VrYXNzaG9rdVwgOwor5p2Q5pyo5ZWGID4gemFpbW9rdXNob3VcIDsKK+WOn+iJsueJiCA+IGdlbnNob2t1YmFuXCA7CivljZjpoIXlvI8gPiB0YW5rb3VzaGlraVwgOwor5Zyf5rCX6ImyID4gdHN1Y2hpa2Vpcm9cIDsKK+S7mOWxnuevgCA+IGZ1em9rdXNldHN1XCA7CivkuIDnlarpto8gPiBpY2hpYmFuZG9yaVwgOwor57SL56ug5a2mID4gbW9uc2hvdWdha3VcIDsKK+ecn+WPquS4rSA+IG1hdHRhZGFuYWthXCA7Civlh7rluK3ogIUgPiBzaHVzc2VraXNoYVwgOwor6ZaA5YmN55S6ID4gbW9uemVubWFjaGlcIDsKK+aVmeiok+eahCA+IGt5b3VrdW50ZWtpXCA7Civosq/ph5HlsYAgPiBjaG9raW5reW9rdVwgOwor5a6Y5YOa6IetID4ga2FucnlvdXNodXVcIDsKK+i5hOmJhOW3pSA+IHRlaXRldHN1a291XCA7CivnpZ7ntYzlraYgPiBzaGlua2VpZ2FrdVwgOwor6KGo546E6ZaiID4gb21vdGVnZW5rYW5cIDsKK+WHuuW8teW6lyA+IHNodXRjaG91dGVuXCA7Civml4XooYzpnoQgPiByeW9rb3VrYWJhblwgOwor5YyX44CF5p2xID4gaG9rdWhva3V0b3VcIDsKK+a4m+WhqemjnyA+IGdlbicnZW5zaG9rdVwgOwor5Zuj5L2T5a6iID4gZGFudGFpa3lha3VcIDsKK+W/g+mciuWtpiA+IHNoaW5yZWlnYWt1XCA7CivlpKfmraPnkLQgPiB0YWlzaG91Z290b1wgOwor5qyg5Yuk546HID4ga2Vra2lucml0c3VcIDsKK+WumuedgOWJpCA+IHRlaWNoYWt1emFpXCA7CivlhaXloLTmlpkgPiBueXV1am91cnlvdVwgOwor6YCQ6Kqe6KizID4gY2hpa3Vnb3lha3VcIDsKK+aAneiAg+WKmyA+IHNoaWtvdXJ5b2t1XCA7CivkubPnlKjniZsgPiBueXV1eW91Z3l1dVwgOwor5q2j6Kaa5Z2KID4gc2hvdWdha3Vib3VcIDsKK+e3keiXu+mhniA+IHJ5b2t1c291cnVpXCA7Civnm67mkoPogIUgPiBtb2t1Z2VraXNoYVwgOwor6buS5puc55+zID4ga29rdXlvdXNla2lcIDsKK+a6gOS4gOW5tCA+IG1hbicnaWNoaW5lblwgOwor5rKh5oiR55qEID4gYm90c3VnYXRla2lcIDsKK+WQq+WhteeOhyA+IGdhbmppbnJpdHN1XCA7CivpgIDogbfogIUgPiB0YWlzaG9rdXNoYVwgOwor6JS15bGL5pW3ID4ga3VyYXlhc2hpa2lcIDsKK+WGjeW7uueviSA+IHNhaWtlbmNoaWt1XCA7CivnjK7ouqvnmoQgPiBrZW5zaGludGVraVwgOwor5aao5a6z54mpID4gYm91Z2FpYnV0c3VcIDsKK+eCueecvOiWrCA+IHRlbmdhbicneWFrdVwgOwor5YWD6aaW55u4ID4gbW90b3NodXNob3VcIDsKK+aBkOawtOeXhSA+IGt5b3VzdWlieW91XCA7Civlr4blo7Llk4EgPiBtaXRzdWJhaWhpblwgOwor55+z5bed55yMID4gaXNoaWthd2FrZW5cIDsKK+WJr+S8mumVtyA+IGZ1a3VrYWljaG91XCA7CivnmbrmmI7ogIUgPiBoYXRzdW1laXNoYVwgOwor5Ym15L2c55qEID4gc291c2FrdXRla2lcIDsKK+Wkp+mAhue9qiA+IHRhaWd5YWt1emFpXCA7CivkuIDlhYPnmoQgPiBpY2hpZ2VudGVraVwgOwor55m+6Z2i55u4ID4gaHlha3VtZW5zb3VcIDsKK+S4jeS+teeVpSA+IGZ1c2hpbnJ5YWt1XCA7CivlsI/lrabnlJ8gPiBzaG91Z2FrdXNlaVwgOwor5LuY5bGe54mpID4gZnV6b2t1YnV0c3VcIDsKK+WLieW8t+S4rSA+IGJlbmt5b3VjaHV1XCA7CivlhpnnnJ/luLMgPiBzaGFzaGluY2hvdVwgOwor5LiA55uu5pWjID4gaWNoaW1va3VzYW5cIDsKK+miqOWKm+ioiCA+IGZ1dXJ5b2t1a2VpXCA7CivmtLvnlKjlvaIgPiBrYXRzdXlvdWtlaVwgOwor6Ieq5YuV5omJID4gamlkb3V0b2JpcmFcIDsKK+S8muekvueriyA+IGthaXNoYXJpdHN1XCA7Civopovnm67lvaIgPiBtaW1la2F0YWNoaVwgOwor6ZGR5Yil5omAID4ga2FuYmV0c3VzaG9cIDsKK+S7ruWlkee0hCA+IGthcmlrZWl5YWt1XCA7CivmoLjmi6HmlaMgPiBrYWt1a2FrdXNhblwgOwor5ZGo6L665Zu9ID4gc2h1dWhlbmtva3VcIDsKK+W/heeEtuaApyA+IGhpdHN1emVuc2VpXCA7Civpu5LnjKnnjKkgPiBrdXJvc2hvdWpvdVwgOwor5Lih5pu/5ZWGID4gcnlvdWdhZXNob3VcIDsKK+iEseiJsuWJpCA+IGRhc3Nob2t1emFpXCA7Civlj7Plv4PlrqQgPiB1c2hpbnNoaXRzdVwgOwor5Lit5aSu5Y+jID4gY2h1dW91Z3VjaGlcIDsKK+ecn+iPjOeXhyA+IHNoaW5raW5zaG91XCA7CivlnKflipvms6IgPiBhdHN1cnlva3VoYVwgOwor5YWo5Zu955qEID4gemVua29rdXRla2lcIDsKK+e4hOair+WtkCA+IG5hd2FiYXNoaWdvXCA7CivmiJHnianpoZQgPiB3YWdhbW9ub2dhb1wgOwor6aOf5aCC6LuKID4gc2hva3Vkb3VzaGFcIDsKK+WWhOefpeitmCA+IHplbmNoaXNoaWtpXCA7CivkuIDlhobmnK0gPiBpY2hpZW5zYXRzdVwgOwor6KaW6IG06KaaID4gc2hpY2hvdWtha3VcIDsKK+iAkOeGsemLvCA+IHRhaW5ldHN1a291XCA7Civpnanlkb3nmoQgPiBrYWt1bWVpdGVraVwgOwor5bCP5LyR5q2iID4gc2hvdWt5dXVzaGlcIDsKK+WlveWPlue1hCA+IGtvdXRvcmlrdW1pXCA7CivljZrlpZXlrr8gPiBiYWt1Y2hpeWFkb1wgOwor6ISz6LKn6KGAID4gbm91aGlua2V0c3VcIDsKK+aCquOAheaIryA+IHdhcnVpdGF6dXJhXCA7CivmtJfnpLzlvI8gPiBzZW5yZWlzaGlraVwgOwor55Sy6aqo5paHID4ga291a290c3VidW5cIDsKK+aXpemKgOWIuCA+IG5pY2hpZ2lua2VuXCA7CivosqfmsJHnqp8gPiBoaW5taW5rdXRzdVwgOwor5aWJ54yu54mpID4gaG91a2VuYnV0c3VcIDsKK+Wun+alreWutiA+IGppdHN1Z3lvdWthXCA7Civog7jnrpfnlKggPiBtdW5lemFuJyd5b3VcIDsKK+WGrOacqOeriyA+IGZ1eXVrb2RhY2hpXCA7CivntZDntK7ns7ggPiBrZXNzYXRzdXNoaVwgOwor6YCG5a6j5LydID4gZ3lha3VzZW5kZW5cIDsKK+murue0heiJsiA+IHNlbmtvdXNob2t1XCA7CivlhaXlm73nqI4gPiBueXV1a29rdXplaVwgOwor5ouh5aSn6Y+hID4ga2FrdWRhaWt5b3VcIDsKK+mBk+alveiAhSA+IGRvdXJha3Vtb25vXCA7CivlpbPmiL/lvbkgPiBueW91Ym91eWFrdVwgOwor5p2h57SE5Zu9ID4gam91eWFrdWtva3VcIDsKK+S7o+abv+eJqSA+IGRhaXRhaWJ1dHN1XCA7Civmt7flh53lnJ8gPiBrb25rdXJpemV0b1wgOwor5raI5q+S5YmkID4gc2hvdWRva3V6YWlcIDsKK+S4h+iDveiWrCA+IG1hbicnbm91eWFrdVwgOwor5L+h5oaR5oCnID4gc2hpbnB5b3VzZWlcIDsKK+WIl+S8neS9kyA+IHJldHN1ZGVudGFpXCA7Civlj6Plj6/nrJEgPiBrdWNoaW9rYXNoaVwgOwor5a6f55Sf5rS7ID4gamlzc2Vpa2F0c3VcIDsKK+eZvuWnk+WutiA+IGh5YWt1c2hvdXlhXCA7CivkuIDlsYDpg6ggPiBpY2hpa3lva3VidVwgOwor6ZaT5LiA6auqID4ga2FuJydpcHBhdHN1XCA7CivlubTmoLzlpb0gPiB0b3NoaWtha2tvdVwgOwor6Y6n5LiA5YW3ID4geW9yb2lpY2hpZ3VcIDsKK+eUuuS6uueJqSA+IGNob3VuaW5tb25vXCA7CivpgJroqLPlrpggPiB0c3V1eWFrdWthblwgOwor5b+F6KaB5oKqID4gaGl0c3V5b3Vha3VcIDsKK+mJhOmBk+e2siA+IHRldHN1ZG91bW91XCA7Civljp/nlKPniakgPiBnZW5zYW5idXRzdVwgOwor5Zmo5qW95puyID4ga2lnYWt1a3lva3VcIDsKK+W/heimgeaApyA+IGhpdHN1eW91c2VpXCA7CivljYrpnaLorZggPiBoYW5tZW5zaGlraVwgOwor5aSi5b+D5ZywID4geXVtZWdva29jaGlcIDsKK+S7iumAseS4rSA+IGtvbnNodXVjaHV1XCA7CivoqbHkuIvmiYsgPiBoYW5hc2hpYmV0YVwgOwor6Ziy6J2V5YmkID4gYm91c2hva3V6YWlcIDsKK+Wwj+S5l+eahCA+IHNob3Vqb3V0ZWtpXCA7Civnq4vohJrngrkgPiByaWtreWFrdXRlblwgOwor5LiN5L+h5a6fID4gZnVzaGluaml0c3VcIDsKK+S6ieWlquaIpiA+IHNvdWRhdHN1c2VuXCA7CivllYblrablo6sgPiBzaG91Z2FrdXNoaVwgOwor5LiK5bGL5pW3ID4ga2FtaXlhc2hpa2lcIDsKK+iLpeWkp+WwhiA+IHdha2FkYWlzaG91XCA7Civmk43oiLXlrqQgPiBzb3VkYXNoaXRzdVwgOwor5oiQ5Lq65byPID4gc2Vpamluc2hpa2lcIDsKK+aWsOmdouebriA+IHNoaW5tZW5tb2t1XCA7Civms6jmlofmnI0gPiBjaHV1bW9uZnVrdVwgOwor5LiK5qOf5byPID4gam91dG91c2hpa2lcIDsKK+i1pOmKheiJsiA+IHNoYWt1ZG91aXJvXCA7CivlkJHlrablv4MgPiBrb3VnYWt1c2hpblwgOwor5riH5pyb6ICFID4ga2F0c3Vib3VzaGFcIDsKK+axvee8tuWupCA+IGtpa2Fuc2hpdHN1XCA7Civln7fpgZTlkI8gPiBzaGl0dGF0c3VyaVwgOwor5LmX5b+D5ZywID4gbm9yaWdva29jaGlcIDsKK+W8lOelreaWmSA+IGNob3VzYWlyeW91XCA7CivliLrmiJ/nmoQgPiBzaGlnZWtpdGVraVwgOwor5LiL5qSc5YiGID4gc2hpdGFrZW5idW5cIDsKK+mWi+WCrOW8jyA+IGthaXNhaXNoaWtpXCA7CivnlLDoiI7lqJggPiBpbmFrYW11c3VtZVwgOwor566x54Gr6YmiID4gaGFrb2hpYmFjaGlcIDsKK+WJr+mmluebuCA+IGZ1a3VzaHVzaG91XCA7CivmlbXmhL7lv4MgPiB0ZWtpZ2Fpc2hpblwgOwor6YeI56m65rW3ID4gc2hha3VrdXVrYWlcIDsKK+WMl+WMl+ilvyA+IGhva3Vob2t1c2VpXCA7CivntYTnuZTnpaggPiBzb3NoaWtpaHlvdVwgOwor5Ye66Lqr6ICFID4gc2h1c3NoaW5zaGFcIDsKK+S7leS6i+mHjyA+IHNoaWdvdG9yeW91XCA7CivljYrmnIjlvaIgPiBoYW5nZXRzdWtlaVwgOwor5YiG5a2Q6KqsID4gYnVuc2hpc2V0c3VcIDsKK+WNiuaciOW8gSA+IGhhbmdldHN1YmVuXCA7CivmraPnrZTnjocgPiBzZWl0b3VyaXRzdVwgOwor5a2j56+A55qEID4ga2lzZXRzdXRla2lcIDsKK+WOn+WtkOiqrCA+IGdlbnNoaXNldHN1XCA7CivnpZ7lmJfnpa0gPiBrYW4nJ25hbWVzYWlcIDsKK+ahp+iInuWPsCA+IGhpbm9raWJ1dGFpXCA7Civlr77lsYDogIUgPiB0YWlreW9rdXNoYVwgOwor6LKd5q676aqoID4ga2FpZ2FyYWJvbmVcIDsKK+WNg+S4oeeusSA+IHNlbnJ5b3ViYWtvXCA7CivntJTlj47lhaUgPiBqdW5zaHV1bnl1dVwgOwor54mp55CG55qEID4gYnV0c3VyaXRla2lcIDsKK+ael+eUo+eJqSA+IHJpbnNhbmJ1dHN1XCA7CivnqoHnhLbmrbsgPiB0b3RzdXplbnNoaVwgOwor6Ki85Y+W5rOVID4gc2hvdXRvcmlob3VcIDsKK+attOWPsueahCA+IHJla2lzaGl0ZWtpXCA7CivntYTnuZTnmoQgPiBzb3NoaWtpdGVraVwgOwor6LSI5ZGI5byPID4gem91dGVpc2hpa2lcIDsKK+epjei8iemHjyA+IHNla2lzYWlyeW91XCA7Civoh6rnmbrnmoQgPiBqaWhhdHN1dGVraVwgOwor5Zyf55+z5rWBID4gZG9zZWtpcnl1dVwgOwor5biC55S65p2RID4gc2hpY2hvdXNvblwgOwor6aOf5aGp5rC0ID4gc2hva3VlbnN1aVwgOwor5r2k5ruR5rK5ID4ganVua2F0c3V5dVwgOwor5rWB5pif576kID4gcnl1dXNlaWd1blwgOwor5aWR57SE6YeRID4ga2VpeWFrdWtpblwgOwor5rG66K2w5paHID4ga2V0c3VnaWJ1blwgOwor6JK455WZ6YWSID4gam91cnl1dXNodVwgOwor6Yed6JGJ5qi5ID4gc2hpbicneW91anVcIDsKK+eMm+WLieW8tyA+IG1vdWJlbmt5b3VcIDsKK+a3seWIu+WMliA+IHNoaW5rb2t1a2FcIDsKK+aJgOW+l+mhlCA+IHRva29yb2VnYW9cIDsKK+W+oeWuouanmCA+IG9reWFrdXNhbWFcIDsKK+iUteabuOelqCA+IHpvdXNob2h5b3VcIDsKK+S6uuW3pembqiA+IGppbmtvdXl1a2lcIDsKK+WQjOiFueS7lCA+IGRvdWZ1a3VzaGlcIDsKK+WwhOWAluW/gyA+IHNoYWtvdXNoaW5cIDsKK+WNmuWjq+WPtyA+IGhha3VzaGlnb3VcIDsKK+WFpea8geiAhSA+IG55dXVneW9zaGFcIDsKK+WIpemZpOaoqSA+IGJldHN1am9rZW5cIDsKK+aIpumXmOacjSA+IHNlbnRvdWZ1a3VcIDsKK+mkium2j+alrSA+IHlvdWtlaWd5b3VcIDsKK+itsOaxuuaoqSA+IGdpa2V0c3VrZW5cIDsKK+WFpeWckuaWmSA+IG55dXVlbnJ5b3VcIDsKK+WEquWFiOeahCA+IHl1dXNlbnRla2lcIDsKK+WQjOS4gOimliA+IGRvdWl0c3VzaGlcIDsKK+mbo+ihjOmBkyA+IG5hbmd5b3Vkb3VcIDsKK+mBuuWkseWTgSA+IGlzaGl0c3VoaW5cIDsKK+mjn+aWh+WMliA+IHNob2t1YnVua2FcIDsKK+awkeS4u+WbvSA+IG1pbnNodWtva3VcIDsKK+WGjeW4sOeGsSA+IHNhaWtpbmV0c3VcIDsKK+eCreWMlueJqSA+IHRhbmthYnV0c3VcIDsKK+aWreeJh+eahCA+IGRhbnBlbnRla2lcIDsKK+a6uuatu+S9kyA+IGRla2lzaGl0YWlcIDsKK+a1t+a0i+WtpiA+IGthaXlvdWdha3VcIDsKK+atr+elnue1jCA+IHNoaXNoaW5rZWlcIDsKK+WPjeaKl+eahCA+IGhhbmtvdXRla2lcIDsKK+mWi+WCrOWbvSA+IGthaXNhaWtva3VcIDsKK+W+oeS4oeimqiA+IGdvcnlvdXNoaW5cIDsKK+S/ruato+a2siA+IHNodXVzZWlla2lcIDsKK+WOmueUn+ecgSA+IGtvdXNlaXNob3VcIDsKK+mrmOe0mui7iiA+IGtvdWt5dXVzaGFcIDsKK+i7n+aWh+WtpiA+IG5hbmJ1bmdha3VcIDsKK+ippuS9nOWTgSA+IHNoaXNha3VoaW5cIDsKK+ims+imp+aWmSA+IGthbnJhbnJ5b3VcIDsKK+S4jeS/oeS7uyA+IGZ1c2hpbicnbmluXCA7CivkuInohJrmnrYgPiBzYW5reWFrdWthXCA7CivlpInmhYvnmoQgPiBoZW50YWl0ZWtpXCA7CivkuZ7pq5joqZUgPiBrb3Vrb3VoeW91XCA7Civmr5vmsIjoi5QgPiBtb3VzZW5nb2tlXCA7CivkuInlsLrluK8gPiBzYW5qYWt1b2JpXCA7Civlv5zmgKXnrZYgPiBvdWt5dXVzYWt1XCA7CivkurrpgZPnmoQgPiBqaW5kb3V0ZWtpXCA7CivmtbfphbjmvL8gPiB1bWlob296dWtpXCA7Civmib/oqo3nirYgPiBzaG91bmluam91XCA7Civpmo/nrYblrrYgPiB6dWloaXRzdWthXCA7CivmoLjono3lkIggPiBrYWt1eXV1Z291XCA7Civmir3pgbjliLggPiBjaHV1c2Vua2VuXCA7CivlhY3oqLHoqLwgPiBtZW5reW9zaG91XCA7Civnvo7lrrnooZMgPiBiaXlvdWp1dHN1XCA7Civoo4/osrjlsYsgPiB1cmFnYXNoaXlhXCA7CivpmLLmr5LpnaIgPiBib3Vkb2t1bWVuXCA7CivlvIHmhbbon7kgPiBiZW5rZWlnYW5pXCA7Civkuoznt5rlvI8gPiBuaXNlbnNoaWtpXCA7Civlv4XopoHkuosgPiBoaXRzdXlvdWppXCA7CivnmbrmmI7lrrYgPiBoYXRzdW1laWthXCA7Civni6zoo4HogIUgPiBkb2t1c2Fpc2hhXCA7CivnnLrmnJvmqKkgPiBjaG91Ym91a2VuXCA7CivlhoXpgJrogIUgPiBuYWl0c3V1c2hhXCA7CivkuK3plbfmnJ8gPiBjaHV1Y2hvdWtpXCA7Civnj77osaHoq5YgPiBnZW5zaG91cm9uXCA7CivprZTooZPluKsgPiBtYWp1dHN1c2hpXCA7Civlm73lnJ/luoEgPiBrb2t1ZG9jaG91XCA7CivnqY3liIbms5UgPiBzZWtpYnVuaG91XCA7Civkv6Hlj7fnga8gPiBzaGluZ291dG91XCA7CivljYrpmbDpmb0gPiBoYW4nJ2luJyd5b3VcIDsKK+W5s+mdoumPoSA+IGhlaW1lbmt5b3VcIDsKK+WuhemFjeS+vyA+IHRha3VoYWliaW5cIDsKK+iQjue4rueXhyA+IGlzaHVrdXNob3VcIDsKK+WkqeebruWxsSA+IHRlbm1va3V6YW5cIDsKK+WBj+W5s+i2syA+IGhlbnBlaXNva3VcIDsKK+azleWtpuWjqyA+IGhvdWdha3VzaGlcIDsKK+eZuueFmeetkiA+IGhhdHN1ZW50b3VcIDsKK+WBtOmgreiRiSA+IHNva3V0b3V5b3VcIDsKK+Wkqeeah+adryA+IHRlbicnbm91aGFpXCA7CivntLDog57moLggPiBzYWlib3VrYWt1XCA7Civni6zmk4XloLQgPiBkb2t1c2Vuam91XCA7Civoo73pi7zmpa0gPiBzZWlrb3VneW91XCA7CivlhYnnhrHosrsgPiBrb3VuZXRzdWhpXCA7CivmhJvpg7flv4MgPiBhaWt5b3VzaGluXCA7CivnlJ/nlKPpq5ggPiBzZWlzYW5kYWthXCA7CivmtbfmsLTmtbQgPiBrYWlzdWl5b2t1XCA7Civku67nuYPluK8gPiBrYXJpaG91dGFpXCA7Civlj4rnrKzogIUgPiBreXV1ZGFpc2hhXCA7CivnsbPpmbjou40gPiBiZWlyaWt1Z3VuXCA7Civms6jmloflk4EgPiBjaHV1bW9uaGluXCA7CivmgZLluLjnmoQgPiBrb3Vqb3V0ZWtpXCA7CivkurrlvaLluKsgPiBuaW5neW91c2hpXCA7CivmprTmlaPlvL4gPiByeXV1c2FuZGFuXCA7Civnmbrpm7vmqZ8gPiBoYXRzdWRlbmtpXCA7Civml6fluILooZcgPiBreXV1c2hpZ2FpXCA7CivoprPopqfluK0gPiBrYW5yYW5zZWtpXCA7Civlrp/nlKjljJYgPiBqaXRzdXlvdWthXCA7CivogIPnj77lraYgPiBrb3VnZW5nYWt1XCA7CivplovlgqzkuK0gPiBrYWlzYWljaHV1XCA7CivnlKPmpa3nlYwgPiBzYW5neW91a2FpXCA7CivlurbmsJHliocgPiBzaG9taW5nZWtpXCA7CivkuI3ku5XmnKsgPiBmdXNoaW1hdHN1XCA7CivlkYbmsJfogIUgPiB1dHN1a2Vtb25vXCA7Civop6PliZblraYgPiBrYWlib3VnYWt1XCA7Civku67ln4vokawgPiBrYXJpbWFpc291XCA7Civph6PpgZPlhbcgPiB0c3VyaWRvdWd1XCA7CivnlJ/nlKPpoY0gPiBzZWlzYW5nYWt1XCA7CivmgrLliofnmoQgPiBoaWdla2l0ZWtpXCA7CivljJfmsLfmtIsgPiBob3BweW91eW91XCA7CivljYHkuozmnIggPiBqdXVuaWdhdHN1XCA7CivlkIzlrablubQgPiBkb3VnYWt1bmVuXCA7Civnj77ku6PnmoQgPiBnZW5kYWl0ZWtpXCA7CivlpKLliKTmlq0gPiB5dW1laGFuZGFuXCA7CivlsrPlj4vkvJogPiBnYWt1eXV1a2FpXCA7Civli5jlrprlsLsgPiBrYW5qb3VqaXJpXCA7CivlkIjlrr/miYAgPiBnYXNzaHVrdWpvXCA7CivooLHmg5HnmoQgPiBrb3dha3V0ZWtpXCA7CivnqbrplpPou7ggPiBrdXVrYW5qaWt1XCA7CivkuK3plpPlsaQgPiBjaHV1a2Fuc291XCA7CivnibnntJrphZIgPiB0b2treXV1c2h1XCA7CivnvbLlkI3lm70gPiBzaG9tZWlrb2t1XCA7CivmvJTliofnmoQgPiBlbmdla2l0ZWtpXCA7CivkuqTmiKblm70gPiBrb3VzZW5rb2t1XCA7CivlpJblvaLnmoQgPiBnYWlrZWl0ZWtpXCA7CivkuK3plpPlrZAgPiBjaHV1a2Fuc2hpXCA7CivmlbTmtYHlrZAgPiBzZWlyeXV1c2hpXCA7CivlhKrlhYjmoKogPiB5dXVzZW5rYWJ1XCA7Civnn63lhbXmgKUgPiB0YW5wZWlreXV1XCA7CivlvIHmhbbnuJ4gPiBiZW5rZWlqaW1hXCA7CivniaHkuLnpm6ogPiBib3RhbicneXVraVwgOwor5pac5qC85oCnID4gc2hha2FrdXNlaVwgOwor6auY6KeS56CyID4ga291a2FrdWhvdVwgOwor5q205bm06b2iID4gcmVraW5lbnJlaVwgOwor54Sh5YiG5YilID4gbXVmdW5iZXRzdVwgOwor5Yi65oif5oCnID4gc2hpZ2VraXNlaVwgOwor6YCa6KGM56iOID4gdHN1dWtvdXplaVwgOwor6LaF6Ieq54S2ID4gY2hvdXNoaXplblwgOwor5YmK5rC35qmfID4gc2FrdWh5b3VraVwgOwor5aWR57SE6ICFID4ga2VpeWFrdXNoYVwgOwor5aSc55uX6JmrID4geW90b3VtdXNoaVwgOwor5a6J5YWo546HID4gYW56ZW5yaXRzdVwgOwor5Y6f5a2Q55eHID4gZ2Vuc2hpc2hvdVwgOwor5Y6f5a2Q55eFID4gZ2Vuc2hpYnlvdVwgOwor5a2j56+A5oSfID4ga2lzZXRzdWthblwgOwor5pen5YuY5a6aID4ga3l1dWthbmpvdVwgOwor5Luu6Kq/5Y2wID4ga2FyaWNob3VpblwgOwor5LmX6LuK6LODID4gam91c2hhY2hpblwgOwor6Ziy6Jmr5YmkID4gYm91Y2h1dXphaVwgOwor5qC45oim5LqJID4ga2FrdXNlbnNvdVwgOwor55m65aOy5pelID4gaGF0c3ViYWliaVwgOwor5a6a6Laz5pWwID4gdGVpc29rdXN1dVwgOwor6YeM56We5qW9ID4gc2F0b2thZ3VyYVwgOwor6Jap5pGp6IqLID4gc2F0c3VtYWltb1wgOwor5aem6YCa572qID4ga2FudHN1dXphaVwgOwor5bGx5p6X5a2mID4gc2FucmluZ2FrdVwgOwor5Ymv6K2w6ZW3ID4gZnVrdWdpY2hvdVwgOwor6Iiq56m655eFID4ga291a3V1YnlvdVwgOwor5ryi6LaK6Z+zID4ga2FuJydldHN1b25cIDsKK+WHuuWFpeWPoyA+IGRlaXJpZ3VjaGlcIDsKK+S7rue0jeeojiA+IGthcmlub3V6ZWlcIDsKK+e3j+WQiOeahCA+IHNvdWdvdXRla2lcIDsKK+S7suijgeiAhSA+IGNodXVzYWlzaGFcIDsKK+WHuuWxleiAhSA+IHNodXR0ZW5zaGFcIDsKK+a0u+Wtl+S9kyA+IGthdHN1aml0YWlcIDsKK+iCmOmJhOegsiA+IGhpamlkZXBwb3VcIDsKK+Wvvui5oOWcsCA+IHRhaXNla2ljaGlcIDsKK+W7u+a8lealrSA+IGthaXNvdWd5b3VcIDsKK+S9jumanOeijSA+IHRlaXNob3VnYWlcIDsKK+aui+S9memhjSA+IHphbicneW9nYWt1XCA7CivmsrvnmYLms5UgPiBjaGlyeW91aG91XCA7CivmqZ/morDmsrkgPiBraWthaWFidXJhXCA7Civoh6rnmbrmgKcgPiBqaWhhdHN1c2VpXCA7Civkv6Hlj7fmiYsgPiBzaGluZ291c2h1XCA7CivmoIPmnKjnnIwgPiB0b2NoaWdpa2VuXCA7Civoqr/mn7vnpaggPiBjaG91c2FoeW91XCA7Civnt6jlubTlj7IgPiBoZW4nJ25lbnNoaVwgOwor5Zyf552A5rCRID4gZG9jaGFrdW1pblwgOwor6YCy5ZGI5pysID4gc2hpbnRlaWJvblwgOwor55Ge5a6d56ugID4genVpaG91c2hvdVwgOwor6JC96YG46ICFID4gcmFrdXNlbnNoYVwgOwor5YaF5YuY5a6aID4gdWNoaWthbmpvdVwgOwor5aWJ57SN6aGNID4gaG91bm91Z2FrdVwgOwor57Sw6IOe5a2mID4gc2FpYm91Z2FrdVwgOwor5p6c5a6f5bqXID4ga2FqaXRzdXRlblwgOwor5a6f5pmC6ZaTID4gaml0c3VqaWthblwgOwor5YWl5ryB5qipID4gbnl1dWd5b2tlblwgOwor6JGX5L2c6ICFID4gY2hvc2FrdXNoYVwgOwor6ISx6ISC5LmzID4gZGFzc2hpbnl1dVwgOwor56Wt56WA5paZID4gc2Fpc2hpcnlvdVwgOwor5YaF5byB5oW2ID4gdWNoaWJlbmtlaVwgOwor5ZCR5LiK5b+DID4ga291am91c2hpblwgOwor54mn576K6ICFID4gYm9rdXlvdXNoYVwgOwor5Y+C6Kaz5Lq6ID4gc2Fua2FuJyduaW5cIDsKK+Wdh+S4gOWMliA+IGtpbicnaXRzdWthXCA7CivlhbHlkIzogIUgPiBreW91ZG91c2hhXCA7CivmmI7mnJ3kvZMgPiBtaW5jaG91dGFpXCA7Civloanog6HmpJIgPiBzaGlva29zaG91XCA7CivogJDpnIfmgKcgPiB0YWlzaGluc2VpXCA7CivmlrDopb/omK0gPiBuecWrasSrcmFuZG9cIDsKK+S4gOaemuiynSA+IGljaGltYWlnYWlcIDsKK+S5seaatOiAhSA+IHJhbmJvdW1vbm9cIDsKK+WQhOS4gOmDqCA+IGtha3VpY2hpYnVcIDsKK+mZsOaXpeWQkSA+IGthZ2VoaW5hdGFcIDsKK+e0q+WuuOauvyA+IHNoaXNoaW5kZW5cIDsKK+W5vemciuagqiA+IHl1dXJlaWthYnVcIDsKK+aJgOW+l+iAhSA+IHNob3Rva3VzaGFcIDsKK+i7jeS6i+WKmyA+IGd1bmppcnlva3VcIDsKK+WLneiyoOS6iyA+IHNob3VidWdvdG9cIDsKK+e1puawtOi7iiA+IGt5dXVzdWlzaGFcIDsKK+e0sOiDnuWjgSA+IHNhaWJvdWhla2lcIDsKK+WPr+mAhuaApyA+IGthZ3lha3VzZWlcIDsKK+aHuOiznumHkSA+IGtlbnNob3VraW5cIDsKK+aapuW5tOm9oiA+IHJla2luZW5yZWlcIDsKK+WQq+WXveiWrCA+IGdhbnNvdXlha3VcIDsKK+imi+WtpuiAhSA+IGtlbmdha3VzaGFcIDsKK+WEquWFiOW4rSA+IHl1dXNlbnNla2lcIDsKK+WwkeaVsOiAhSA+IHNob3VzdXVzaGFcIDsKK+WFseWQjOe3miA+IGt5b3Vkb3VzZW5cIDsKK+WPiuesrOeCuSA+IGt5dXVkYWl0ZW5cIDsKK+WIhumhnuihqCA+IGJ1bnJ1aWh5b3VcIDsKK+i/keecvOmPoSA+IGtpbmdhbmt5b3VcIDsKK+mWouaVsOaXjyA+IGthbnN1dXpva3VcIDsKK+eUuuadkeWItiA+IGNob3Vzb25zZWlcIDsKK+alteaCquS6uiA+IGdva3Vha3VuaW5cIDsKK+W8leWPl+S6uiA+IGhpa2l1a2VuaW5cIDsKK+e3qOW5tOS9kyA+IGhlbicnbmVudGFpXCA7Civku6PpoZjkurogPiBkYWlnYW4nJ25pblwgOwor5pyJ5Yqb6aasID4geXV1cnlva3ViYVwgOwor6Zmk6Zuq6LuKID4gam9zZXRzdXNoYVwgOwor5aSn5a+p6ZmiID4gZGFpc2hpbicnaW5cIDsKK+eojumWoumVtyA+IHplaWthbmNob3VcIDsKK+S4remWk+S9kyA+IGNodXVrYW50YWlcIDsKK+a7i+mkiueJqSA+IGppeW91YnV0c3VcIDsKK+S5neW3peWkpyA+IGt5dXVrb3VkYWlcIDsKK+WKoOa5v+WZqCA+IGthc2hpdHN1a2lcIDsKK+aWsOiogueJiCA+IHNoaW50ZWliYW5cIDsKK+WNgeS6uuWKmyA+IGp1dW5pbnJpa2lcIDsKK+S4i+Wuv+S6uiA+IGdlc2h1a3VuaW5cIDsKK+Wkp+alreeJqSA+IG9vd2F6YW1vbm9cIDsKK+WBtOmdouimsyA+IHNva3VtZW5rYW5cIDsKK+ePvuixoeeVjCA+IGdlbnNob3VrYWlcIDsKK+i/veippumokyA+IHRzdWlzaGlrZW5cIDsKK+WFiOWkqeeahCA+IHNlbnRlbnRla2lcIDsKK+W7uuevieWutiA+IGtlbmNoaWt1a2FcIDsKK+awtOmHj+ioiCA+IHN1aXJ5b3VrZWlcIDsKK+imquihm+maiiA+IHNoaW4nJ2VpdGFpXCA7CivlhYjlpKnnl4UgPiBzZW50ZW5ieW91XCA7CivnuYHmrpbmnJ8gPiBoYW5zaG9rdWtpXCA7CivoiLnlub3pnIogPiBmdW5heXV1cmVpXCA7CivmsJHml4/mgKcgPiBtaW56b2t1c2VpXCA7CivlvqHkuobmib8gPiBnb3J5b3VzaG91XCA7CivmsLTom4fluqcgPiBtaXp1aGViaXphXCA7Civmi53lpJbnmoQgPiBoYWlnYWl0ZWtpXCA7CivliLrmiJ/liaQgPiBzaGlnZWtpemFpXCA7CivmiYDlvpfnqI4gPiBzaG90b2t1emVpXCA7Civmo4nlrp/msrkgPiBtZW5qaXRzdXl1XCA7Civli6TntprogIUgPiBraW56b2t1c2hhXCA7CivlpKnnmofliLYgPiB0ZW4nJ25vdXNlaVwgOwor5Zar54WZ6LuKID4ga2l0c3VlbnNoYVwgOwor5a6f57+S55SfID4gamlzc2h1dXNlaVwgOwor5L2T57O755qEID4gdGFpa2VpdGVraVwgOwor6YGK6IiI56iOID4geXV1a3lvdXplaVwgOwor5L+u6YGT5aOrID4gc2h1dWRvdXNoaVwgOwor5paw5pWZ5b6SID4gc2hpbmt5b3V0b1wgOwor5Y2a6Kan5LyaID4gaGFrdXJhbmthaVwgOwor5YmN55m76YyyID4gemVudG91cm9rdVwgOwor5p2x5rSL5a2mID4gdG91eW91Z2FrdVwgOwor5aSn5bCG6LuNID4gZGFpc2hvdWd1blwgOwor5L+h5Y+35aGUID4gc2hpbmdvdXRvdVwgOwor5Y6f5a2Q5qC4ID4gZ2Vuc2hpa2FrdVwgOwor5aSn5YWs5Zu9ID4gdGFpa291a29rdVwgOwor5LyR5oGv5omAID4ga3l1dXNva3Vqb1wgOwor6auY6Zqc5a6zID4ga291c2hvdWdhaVwgOwor5rGC6YGT6ICFID4ga3l1dWRvdXNoYVwgOwor5aSp5a6I6ZajID4gdGVuc2h1a2FrdVwgOwor5Lm+54mp5bGLID4ga2FuYnV0c3V5YVwgOwor5rC06YmE56CyID4gbWl6dWRlcHBvdVwgOwor5Y2D5LiJ5bGLID4gc2VubWl0c3V5YVwgOwor5YWl5riv56iOID4gbnl1dWtvdXplaVwgOwor6YqA6KGM5qWtID4gZ2lua291Z3lvdVwgOwor5LyR5rOK5omAID4ga3l1dWhha3Vqb1wgOwor5Lq65bel55qEID4gamlua291dGVraVwgOwor6IG06KaW6ICFID4gY2hvdXNoaXNoYVwgOwor5Lih5Zu96KqeID4gcnlvdWtva3Vnb1wgOwor6auY54Cs6IifID4gdGFrYXNlYnVuZVwgOwor57WE57mU5ZCNID4gc29zaGlraW1laVwgOwor5ZCM5pyf5byPID4gZG91a2lzaGlraVwgOwor5aSn6IW46I+MID4gZGFpY2hvdWtpblwgOwor5Y2K54uC5LmxID4gaGFua3lvdXJhblwgOwor6LSF5rKi5ZOBID4gemVpdGFrdWhpblwgOwor5LiA5pys6YGTID4gaXBwb25taWNoaVwgOwor5Yip5r2k546HID4gcmlqdW5yaXRzdVwgOwor6L+r5a6z6ICFID4gaGFrdWdhaXNoYVwgOwor5aSn5qW15q6/ID4gZGFpZ29rdWRlblwgOwor6YeN6YeP5oSfID4ganV1cnlvdWthblwgOwor576O5a2m55qEID4gYmlnYWt1dGVraVwgOwor5YaZ55Sf5bizID4gc2hhc2VpY2hvdVwgOwor5buD5qOE54mpID4gaGFpa2lidXRzdVwgOwor6Zu756OB55+zID4gZGVuamlzaGFrdVwgOwor5YaZ55Sf5biWID4gc2hhc2VpY2hvdVwgOwor6YCg5Za254mpID4gem91ZWlidXRzdVwgOwor5oqA6KGT6Z2iID4gZ2lqdXRzdW1lblwgOwor5LuV572u6ICFID4gc2hpb2tpbW9ub1wgOwor5pmC5Yi76KGoID4gamlrb2t1aHlvdVwgOwor5q+S56eR5a2mID4gZG9rdWthZ2FrdVwgOwor55u06KGM5L6/ID4gY2hva2tvdWJpblwgOwor5omL5YaF6IG3ID4gdGVuYWlzaG9rdVwgOwor5peF6KGM5YWIID4gcnlva291c2FraVwgOwor5qC45by+6aCtID4ga2FrdWRhbnRvdVwgOwor56m66ZuG5ZCIID4ga3V1c2h1dWdvdVwgOwor54m56Kix5paZID4gdG9ra3lvcnlvdVwgOwor5Li75oOF55qEID4gc2h1am91dGVraVwgOwor5pu06KGj5a6kID4ga291aXNoaXRzdVwgOwor5Lya5bit6IazID4ga2Fpc2VraXplblwgOwor5Y2D5LiA5aScID4gc2VuJydpY2hpeWFcIDsKK+ecn+eUsOe0kCA+IHNhbmFkYWhpbW9cIDsKK+mBk+WtpuiAhSA+IGRvdWdha3VzaGFcIDsKK+aPrueZuuaApyA+IGtpaGF0c3VzZWlcIDsKK+WHuuizh+mHkSA+IHNodXNzaGlraW5cIDsKK+eJp+e+iueKrCA+IGJva3V5b3VrZW5cIDsKK+iSuOeVmeawtCA+IGpvdXJ5dXVzdWlcIDsKK+etieWcp+e3miA+IHRvdWF0c3VzZW5cIDsKK+avkuWRs+W9uSA+IGRva3VtaXlha3VcIDsKK+WEquiJr+W6lyA+IHl1dXJ5b3V0ZW5cIDsKK+WGheiKuOiAhSA+IHVjaGlnZWlzaGFcIDsKK+aCqumBlOiAhSA+IHdhcnVkYXNzaGFcIDsKK+S4iemdoumPoSA+IHNhbm1lbmt5b3VcIDsKK+eLuOiVjum6piA+IHRhbnVraXNvYmFcIDsKK+ijj+abuOS6uiA+IHVyYWdha2luaW5cIDsKK+eJueWkp+WPtyA+IHRva3VkYWlnb3VcIDsKK+e1hOe5lOS9kyA+IHNvc2hpa2l0YWlcIDsKK+ePvuWun+WMliA+IGdlbmppdHN1a2FcIDsKK+WkmuebrueahCA+IHRhbW9rdXRla2lcIDsKK+WwhuadpeaApyA+IHNob3VyYWlzZWlcIDsKK+S4gOS6uuiFuSA+IGhpdG9yaWJhcmFcIDsKK+eUu+S4gOWMliA+IGtha3VpdHN1a2FcIDsKK+mHjemHkeWxniA+IGp1dWtpbnpva3VcIDsKK+eri+S8muS6uiA+IHRhY2hpYWluaW5cIDsKK+attOWPsuS4iiA+IHJla2lzaGlqb3VcIDsKK+ijvemJhOaJgCA+IHNlaXRldHN1am9cIDsKK+S4gOS6uuiAhSA+IGhpdG9yaW1vbm9cIDsKK+mBruaWreWjgSA+IHNoYWRhbnBla2lcIDsKK+eJueWjsuWgtCA+IHRva3ViYWlqb3VcIDsKK+WRiuefpeadvyA+IGtva3VjaGliYW5cIDsKK+ayluepjeacnyA+IGNodXVzZWtpa2lcIDsKK+S7ruiomOWFpSA+IGthcmlraW55dXVcIDsKK+S/rumBk+S8miA+IHNodXVkb3VrYWlcIDsKK+ahn+air+WtkCA+IHNhbmJhc2hpZ29cIDsKK+eVquWPt+acrSA+IGJhbmdvdWZ1ZGFcIDsKK+WwkeaVsOeCuSA+IHNob3VzdXV0ZW5cIDsKK+WxseeMq+W6pyA+IHlhbWFuZWtvemFcIDsKK+WvneWPsOWIuCA+IHNoaW5kYWlrZW5cIDsKK+awtOmKgOafsSA+IHN1aWdpbmNodXVcIDsKK+i1pOa1t+S6gCA+IGFrYXVtaWdhbWVcIDsKK+mqqOebuOWtpiA+IGtvc3NvdWdha3VcIDsKK+Wkp+iHvOatryA+IGRhaWt5dXVzaGlcIDsKK+awkeaXj+WPsiA+IG1pbnpva3VzaGlcIDsKK+S6lOeonOmDrSA+IGdvcnlvdWtha3VcIDsKK+aJgeW5s+i2syA+IGhlbnBlaXNva3VcIDsKK+Wlkee0hOabuCA+IGtlaXlha3VzaG9cIDsKK+W9seazleW4qyA+IGthZ2Vib3VzaGlcIDsKK+mHkeWJm+efsyA+IGtvbmdvdXNla2lcIDsKK+eJueioseW6gSA+IHRva2t5b2Nob3VcIDsKK+eJueWjsuWTgSA+IHRva3ViYWloaW5cIDsKK+S4i+iri+iyoCA+IHNoaXRhdWtlb2lcIDsKK+WPjuepq+acnyA+IHNodXVrYWt1a2lcIDsKK+mZuOaIpumaiiA+IHJpa3VzZW50YWlcIDsKK+e1puawtOeuoSA+IGt5dXVzdWlrYW5cIDsKK+elnuenmOeahCA+IHNoaW5waXRla2lcIDsKK+mHjemHj+WZuCA+IGp1dXJ5b3V0b25cIDsKK+WPjuepq+aZgiA+IHNodXVrYWt1amlcIDsKK+mrmOWcp+e4riA+IGtvdWFzc2h1a3VcIDsKK+iRl+S9nOaoqSA+IGNob3Nha3VrZW5cIDsKK+S7o+Wft+ihjCA+IGRhaXNoaWtrb3VcIDsKK+mZkOWumueahCA+IGdlbnRlaXRla2lcIDsKK+mrmOWcp+e3miA+IGtvdWF0c3VzZW5cIDsKK+S7ruaOoeeUqCA+IGthcmlzYWl5b3VcIDsKK+aUuemdqeiAhSA+IGthaWtha3VzaGFcIDsKK+WcsOS4i+mJhCA+IGNoaWthdGV0c3VcIDsKK+WwiueOi+WFmiA+IHNvbicnbm91dG91XCA7CivllqvnhZnogIUgPiBraXRzdWVuc2hhXCA7CivlnJ/kv7XpmpsgPiBkb2h5b3VnaXdhXCA7CivlpKflsbHnjKsgPiBvb3lhbWFuZWtvXCA7CivoiKrnqbrlraYgPiBrb3VrdXVnYWt1XCA7Civljp/mnZDmlpkgPiBnZW56YWlyeW91XCA7Civlh7rnlKPmlbAgPiBzaHVzc2Fuc3V1XCA7CivmrITlj4LnhacgPiByYW5zYW5zaG91XCA7Civlh7rnlJ/mlbAgPiBzaHVzc2Vpc3V1XCA7CivlrojlgpnnjocgPiBzaHViaXJpdHN1XCA7CivmlofoirjlraYgPiBidW5nZWlnYWt1XCA7CivntIXlhqDps6UgPiBrb3VrYW5jaG91XCA7CivliJ3loLTmiYAgPiBoYXRzdWJhc2hvXCA7CivkubPnirbmtrIgPiBueXV1am91ZWtpXCA7CivljZjlnZDlvI8gPiB0YW56YXNoaWtpXCA7CivlnKjnlZnmsJEgPiB6YWlyeXV1bWluXCA7Civnvo7poZTooZMgPiBiaWdhbmp1dHN1XCA7Civnha7msrjlmaggPiBzaGFmdXRzdWtpXCA7CivlhKroia/lk4EgPiB5dXVyeW91aGluXCA7CivmiKbooZPlrrYgPiBzZW5qdXRzdWthXCA7Civku5XkuovluKsgPiBzaGlnb3Rvc2hpXCA7CivnhKHnlJ/niakgPiBtdXNlaWJ1dHN1XCA7Civpm5HmloflrrYgPiB6YXRzdWJ1bmthXCA7CivlkIzoqr/ogIUgPiBkb3VjaG91c2hhXCA7CivkuojntITluK0gPiB5b3lha3VzZWtpXCA7Civph5Hnn7PmlocgPiBraW5zZWtpYnVuXCA7Civnt7Tnv5LoiLkgPiByZW5zaHV1c2VuXCA7CivmuKzmt7HmqZ8gPiBzb2t1c2hpbmtpXCA7CivnmbropovmlpkgPiBoYWtrZW5yeW91XCA7CivooZLlrabogIUgPiBnZW5nYWt1c2hhXCA7CivlsI/mlbDngrkgPiBzaG91c3V1dGVuXCA7CivlvJXlh7rniakgPiBoaWtpZGVtb25vXCA7CivplovmnrblvI8gPiBrYWlrYXNoaWtpXCA7CivljIXlkKvnmoQgPiBob3VnYW50ZWtpXCA7CivlkIjlpY/oqr8gPiBnYXNzb3VjaG91XCA7CivlhbHlkozlm70gPiBreW91d2Frb2t1XCA7Civlr6nliKTlk6EgPiBzaGlucGFuJydpblwgOwor5riF5pyd5L2TID4gc2VpY2hvdXRhaVwgOwor6KGo5pel5pysID4gb21vdGVuaWhvblwgOwor54++5Luj5YqHID4gZ2VuZGFpZ2VraVwgOwor5Y2z5Yq56JasID4gc29ra291eWFrdVwgOwor5pel6YGL5YuVID4gbmljaGl1bmRvdVwgOwor6IG36ZqO5Yi2ID4gc2hva2thaXNlaVwgOwor5YmN6LuK6Lu4ID4gemVuc2hhamlrdVwgOwor5LiK5piH57eaID4gam91c2hvdXNlblwgOwor5qmf5a+G5oCnID4ga2ltaXRzdXNlaVwgOwor5piO57Sw6KGoID4gbWVpc2FpaHlvdVwgOwor5L+u6L6e5a2mID4gc2h1dWppZ2FrdVwgOwor5ZCN6KqJ6IG3ID4gbWVpeW9zaG9rdVwgOwor5Zub5aSp546LID4gc2hpdGVuJydub3VcIDsKK+S6uuebuOWtpiA+IG5pbnNvdWdha3VcIDsKK+aOiOalreaWmSA+IGp1Z3lvdXJ5b3VcIDsKK+mJm+S4reavkiA+IGVuY2h1dWRva3VcIDsKK+ayu+eZguS7oyA+IGNoaXJ5b3VkYWlcIDsKK+W4r+m7hOiJsiA+IHRhaW91c2hva3VcIDsKK+i1t+W3peW8jyA+IGtpa291c2hpa2lcIDsKK+WPluW+l+iAhSA+IHNodXRva3VzaGFcIDsKK+aCquW5s+etiSA+IGFrdWJ5b3Vkb3VcIDsKK+acseWtkOWtpiA+IHNodXNoaWdha3VcIDsKK+i7vemHkeWxniA+IGtlaWtpbnpva3VcIDsKK+WBpeiEmuWutiA+IGtlbmt5YWt1a2FcIDsKK+WFiOimmuiAhSA+IHNlbmtha3VzaGFcIDsKK+S4jeaVtOiEiCA+IGZ1c2VpbXlha3VcIDsKK+S7sumWk+WGhSA+IG5ha2FtYXVjaGlcIDsKK+WwhuadpeWDjyA+IHNob3VyYWl6b3VcIDsKK+S9juaVmeS8miA+IHRlaWt5b3VrYWlcIDsKK+aAp+ihneWLlSA+IHNlaXNob3Vkb3VcIDsKK+e0meiKneWxhSA+IGthbWlzaGliYWlcIDsKK+S9nOaIkOiAhSA+IHNha3VzZWlzaGFcIDsKK+WbnuaYpeWJpCA+IGthaXNodW56YWlcIDsKK+a2iOiyu+mHjyA+IHNob3VoaXJ5b3VcIDsKK+S4puijveWTgSA+IG5hbWlzZWloaW5cIDsKK+WwguacieaoqSA+IHNlbicneXV1a2VuXCA7CivkuZfppqzpnbQgPiBqb3ViYWd1dHN1XCA7Civlh7ros4fogIUgPiBzaHVzc2hpc2hhXCA7CivljJbnn7PlraYgPiBrYXNla2lnYWt1XCA7CivogbToqLrlmaggPiBjaG91c2hpbmtpXCA7CivnjKnnjKnooIUgPiBzaG91am91YmFlXCA7CivkubHmlbDooaggPiByYW5zdXVoeW91XCA7Civln4vnq4vlnLAgPiB1bWV0YXRlY2hpXCA7CivlhbHlkIzmgKcgPiBreW91ZG91c2VpXCA7Civnhp/nt7TogIUgPiBqdWt1cmVuc2hhXCA7CivmnbHljJfmnbEgPiB0b3Vob2t1dG91XCA7CivnlJ/kvZPohpwgPiBzZWl0YWltYWt1XCA7CivmsJHooYbpp4UgPiBtaW5zaHV1ZWtpXCA7Civlroflrpnpo58gPiB1Y2h1dXNob2t1XCA7Civml6XlhYnmtbQgPiBuaWtrb3V5b2t1XCA7Civku6PmlbDlraYgPiBkYWlzdXVnYWt1XCA7Civog73lvbnogIUgPiBub3V5YWt1c2hhXCA7CivmspbnqY3lnJ8gPiBjaHV1c2VraWRvXCA7CivlvJXlipvlnI8gPiBpbnJ5b2t1a2VuXCA7CivkuK3mipjluL0gPiBuYWthb3JlYm91XCA7CivpnZ7mtLvli5UgPiBoaWthdHN1ZG91XCA7CivkuI3lp4vmnKsgPiBmdXNoaW1hdHN1XCA7CivmnInlip/nq6AgPiB5dXVrb3VzaG91XCA7CivmipXnpajogIUgPiB0b3VoeW91c2hhXCA7CivmlLvmkoPpmoogPiBrb3VnZWtpdGFpXCA7CivloLHlkYrogIUgPiBob3Vrb2t1c2hhXCA7CivnmbrooajogIUgPiBoYXBweW91c2hhXCA7Civmg6PnrqHpoJggPiBzb3VrYW5yeW91XCA7Civpgbjmip7ogqIgPiBzZW50YWt1c2hpXCA7CivmioDooZPogIUgPiBnaWp1dHN1c2hhXCA7CivpgLLmrannmoQgPiBzaGlucG90ZWtpXCA7Civln4volLXph48gPiBtYWl6b3VyeW91XCA7Civku5Xkuovlj7AgPiBzaGlnb3RvZGFpXCA7CivmgKfmiJDnhp8gPiBzZWlzZWlqdWt1XCA7CivmsLjlubTplpMgPiBuYWdhbmVua2FuXCA7Civog4zmlZnogIUgPiBoYWlreW91c2hhXCA7CivmiYvlt6Xmpa0gPiBzaHVrb3VneW91XCA7CivnlLPoq4vogIUgPiBzaGluc2Vpc2hhXCA7CivmvJTlh7rlrrYgPiBlbnNodXRzdWthXCA7CivkuIDlronlv4MgPiBoaXRvYW5zaGluXCA7CivooYzmpb3lnLAgPiBrb3VyYWt1Y2hpXCA7Civpo5/nrqHms5UgPiBzaG9ra2FuaG91XCA7CivoprPmuKzoiLkgPiBrYW5zb2t1c2VuXCA7Civnq7blkIjogIUgPiBreW91Z291c2hhXCA7CivlgaXohLPliaQgPiBrZW4nJ25vdXphaVwgOwor6YeR5Ymb5p2WID4ga29uZ291ZHp1ZVwgOwor6Kyd6IKJ56WtID4gc2hhbmlrdXNhaVwgOwor6KSH5YaZ57SZID4gZnVrdXNoYXNoaVwgOwor6YCx5YiK6KqMID4gc2h1dWthbnNoaVwgOwor5Y+O56iO5omAID4gc2h1dXplaXNob1wgOwor6YCa6KGM5Lq6ID4gdHN1dWtvdW5pblwgOwor6ZGR5a6a5paZID4ga2FudGVpcnlvdVwgOwor5ZCM5LiA5Lq6ID4gZG91aXRzdW5pblwgOwor6auY5r2u57eaID4ga291Y2hvdXNlblwgOwor5rW46YCP5oCnID4gc2hpbnRvdXNlaVwgOwor6KGA6Imy57SgID4ga2Vzc2hpa2lzb1wgOwor6ISz6ZyH55uqID4gbm91c2hpbnRvdVwgOwor6LOD6LK45Lq6ID4gY2hpbnRhaW5pblwgOwor5Ye655Sf5ZywID4gc2h1c3NlaWNoaVwgOwor57e057+S55SfID4gcmVuc2h1dXNlaVwgOwor5bqn5bit6KGoID4gemFzZWtpaHlvdVwgOwor6Kaz5ris6ICFID4ga2Fuc29rdXNoYVwgOwor5Zyw542E6ICzID4gamlnb2t1bWltaVwgOwor6auY57Sa5ZOBID4ga291a3l1dWhpblwgOwor6YGg5pel54K5ID4gZW5qaXRzdXRlblwgOwor5ryi5a2m6ICFID4ga2FuZ2FrdXNoYVwgOwor54mn5aC06bOlID4gbWFraWJhdG9yaVwgOwor5q275YiR5ZuaID4gc2hpa2Vpc2h1dVwgOwor5rC356CC57OWID4ga29vcml6YXRvdVwgOwor5YWx6JGX6ICFID4ga3lvdWNob3NoYVwgOwor6aqo6auE54KOID4ga290c3V6dWllblwgOwor5pS+54mn5ZywID4gaG91Ym9rdWNoaVwgOwor55m96KGA55CDID4gaGFra2Vra3l1dVwgOwor5rq25bKp5rWBID4geW91Z2Fucnl1dVwgOwor5q275YK36ICFID4gc2hpc2hvdXNoYVwgOwor5byP6YOo5a6YID4gc2hpa2lidWthblwgOwor6ISG5byx5oCnID4gemVpamFrdXNlaVwgOwor57Wm5rC05qCTID4ga3l1dXN1aXNlblwgOwor6Kaz5ris57ayID4ga2Fuc29rdW1vdVwgOwor5oCl6KGM5Yi4ID4ga3l1dWtvdWtlblwgOwor5b6h6Z6t5pK7ID4gZ29iZW50YXRzdVwgOwor57eR5Y2B5a2XID4gcnlva3VqdXVqaVwgOwor5rWB57ea5b2iID4gcnl1dXNlbmtlaVwgOwor5Y6f5aeL55qEID4gZ2Vuc2hpdGVraVwgOwor54mn576K5ZywID4gYm9rdXlvdWNoaVwgOwor5Z+8546J55yMID4gc2FpdGFtYWtlblwgOwor5pS75pKD6LuNID4ga291Z2VraWd1blwgOwor5pW16Imm6ZqKID4gdGVraWthbnRhaVwgOwor6aOf5Zmo5qOaID4gc2hva2tpZGFuYVwgOwor5Lyd6YCB5YWIID4gZGVuc291c2FraVwgOwor56iy6I236a6oID4gaW5hcml6dXNoaVwgOwor5b6p6Kq/5ZmoID4gZnVrdWNob3VraVwgOwor5aSn55eF5Lq6ID4gZGFpYnlvdW5pblwgOwor5YWx5Yq06ICFID4ga3lvdXJvdXNoYVwgOwor55eF5Y6f6I+MID4gYnlvdWdlbmtpblwgOwor5pyd6a6u5Lq6ID4gY2hvdXNlbmppblwgOwor5YSq6LaK5qipID4geXV1ZXRzdWtlblwgOwor5LiA5Lq65peFID4gaGl0b3JpdGFiaVwgOwor5paH5a2m6KuWID4gYnVuZ2FrdXJvblwgOwor6IKJ5oSf55qEID4gbmlra2FudGVraVwgOwor5oCl6KGM5L6/ID4ga3l1dWtvdWJpblwgOwor55Sy5LmZ5LiZID4ga291b3RzdWhlaVwgOwor5Lit5rOi6ZW3ID4gY2h1dWhhY2hvdVwgOwor54Sh6IG36ICFID4gbXVzaG9rdXNoYVwgOwor5Y+O56iO5a6YID4gc2h1dXplaWthblwgOwor5a2m6YOo6ZW3ID4gZ2FrdWJ1Y2hvdVwgOwor6LaF5qC85a2QID4gY2hvdWtvdXNoaVwgOwor6ZeK6JGJ5qi5ID4ga2F0c3V5b3VqdVwgOwor5YWx6bO06ICFID4ga3lvdW1laXNoYVwgOwor54Sh5L2T54mpID4gbXV0YWlidXRzdVwgOwor5rWu5rCX5aWzID4gdXdha2lvbicnbmFcIDsKK+eZu+ernOmWgCA+IHRvdXJ5dXVtb25cIDsKK+S4gOe+qeeahCA+IGljaGlnaXRla2lcIDsKK+esrOS4gOadoSA+IGRhaWljaGlqb3VcIDsKK+WGheeUqOiWrCA+IG5haXlvdXlha3VcIDsKK+W6p+aomei7uCA+IHphaHlvdWppa3VcIDsKK+etlua6kOWcsCA+IHNha3VnZW5jaGlcIDsKK+WEqueUn+WtpiA+IHl1dXNlaWdha3VcIDsKK+WIhumaiumVtyA+IGJ1bnRhaWNob3VcIDsKK+WJjeWAn+mHkSA+IHplbnNoYWtraW5cIDsKK+S7suijgeS6uiA+IGNodXVzYWluaW5cIDsKK+i1pOmBk+elrSA+IHNla2lkb3VzYWlcIDsKK+adseWMl+WkpyA+IHRvdWhva3VkYWlcIDsKK+Wun+iovOirliA+IGppc3Nob3Vyb25cIDsKK+S4jeeHg+eJqSA+IGZ1bmVuYnV0c3VcIDsKK+WFqOW8t+miqCA+IHplbmt5b3VmdXVcIDsKK+Wwj+WkqeWcsCA+IHNob3V0ZW5jaGlcIDsKK+mFoumFuOWhqSA+IHNha3VzYW4nJ2VuXCA7CivotoXpn7PpgJ8gPiBjaG91b25zb2t1XCA7Civlr4blkYrogIUgPiBtaWtrb2t1c2hhXCA7CivliIbpoZ7lraYgPiBidW5ydWlnYWt1XCA7Civlvavph5HluKsgPiBjaG91a2luc2hpXCA7CivlhbHpgJroqp4gPiBreW91dHN1dWdvXCA7CivnpZ7np5jlraYgPiBzaGluaGlnYWt1XCA7CivkuIDmnKzmqYsgPiBpcHBvbmJhc2hpXCA7CivnrKzkupTliJcgPiBkYWlnb3JldHN1XCA7CivntLPlo6vnlKggPiBzaGluc2hpeW91XCA7CivkuIDmnprlsqkgPiBpY2hpbWFpaXdhXCA7CivmtYHnt5rlnosgPiByeXV1c2Vua2VpXCA7CivkuIDmnKzmp40gPiBpcHBvbicneWFyaVwgOwor5Zuw56qu6ICFID4ga29ua3l1dXNoYVwgOwor5Yas5pSv5bqmID4gZnV5dWppdGFrdVwgOwor5YWx5ZCM5L2TID4ga3lvdWRvdXRhaVwgOwor5bCR5pWw5YWaID4gc2hvdXN1dXRvdVwgOwor5YWo5rCR6KGGID4gemVubWluc2h1dVwgOwor55u45Y+N55qEID4gc291aGFudGVraVwgOwor5rWu6YGK54mpID4gZnV5dXVidXRzdVwgOwor5Yq05YON55yBID4gcm91ZG91c2hvdVwgOwor5a2r5oGv5a2QID4gbWFnb211c3Vrb1wgOwor5Yq05YON55u4ID4gcm91ZG91c2hvdVwgOwor5L6b6aSK5aGaID4ga3V5b3VkenVrYVwgOwor6aeG6YCQ6ImmID4ga3VjaGlrdWthblwgOwor57Sg5Lq655uuID4gc2hpcm91dG9tZVwgOwor6YCx5YiK57SZID4gc2h1dWthbnNoaVwgOwor57K+6IKJ5bqXID4gc2VpbmlrdXRlblwgOwor5Y+M5q676aGeID4gc291a2FrdXJ1aVwgOwor5aWo5Yqx6YeRID4gc2hvdXJlaWtpblwgOwor5LiN57K+6autID4gYnVzaG91aGlnZVwgOwor6IO95YuV55qEID4gbm91ZG91dGVraVwgOwor57SE5Y2K5YiGID4geWFrdWhhbmJ1blwgOwor57ay5ryB5qWtID4gYW1pZ3lvZ3lvdVwgOwor5o6I5qWt5LitID4ganVneW91Y2h1dVwgOwor5bKp55+z5ZyPID4gZ2Fuc2VraWtlblwgOwor5b2555uu5p+EID4geWFrdW1lZ2FyYVwgOwor5LiA5pys5p2+ID4gaXBwb25tYXRzdVwgOwor5aGp54WO6aSFID4gc2hpb3NlbmJlaVwgOwor5LiN5aaC5biwID4gaG90b3RvZ2lzdVwgOwor5Y2X44CF6KW/ID4gbmFuJyduYW5zZWlcIDsKK+WcqOWtpueUnyA+IHphaWdha3VzZWlcIDsKK+WJg+WIgOegpSA+IGthbWlzb3JpZG9cIDsKK+WkmueZuuaApyA+IHRhaGF0c3VzZWlcIDsKK+WEqui2iuaEnyA+IHl1dWV0c3VrYW5cIDsKK+eJuee0muWTgSA+IHRva2t5dXVoaW5cIDsKK+S4ieinkumMkCA+IHNhbmtha3VzdWlcIDsKK+W/heayu+iWrCA+IGhpdGNoaXlha3VcIDsKK+WNmOaMr+WLlSA+IHRhbnNoaW5kb3VcIDsKK+S4u+W8teiAhSA+IHNodWNob3VzaGFcIDsKK+aOkuS7luW+iyA+IGhhaXRhcml0c3VcIDsKK+WEqui2iuaApyA+IHl1dWV0c3VzZWlcIDsKK+W9ouaFi+WtpiA+IGtlaXRhaWdha3VcIDsKK+W3pealreeVjCA+IGtvdWd5b3VrYWlcIDsKK+W3pealreeUqCA+IGtvdWd5b3V5b3VcIDsKK+epjeS5sembsiA+IHNla2lyYW4nJ3VuXCA7Civmi53oprPmlpkgPiBoYWlrYW5yeW91XCA7CivpoJjmtbfnt5ogPiByeW91a2Fpc2VuXCA7Civop5LliIbmlaMgPiBrYWt1YnVuc2FuXCA7CivkuI3opovorZggPiBmdWtlbnNoaWtpXCA7CivlpKflrabnlJ8gPiBkYWlnYWt1c2VpXCA7CivmnIDljJfnq68gPiBzYWlob2t1dGFuXCA7CivooajpnaLkuIogPiBoeW91bWVuam91XCA7Civmv4PnoavphbggPiBub3VyeXV1c2FuXCA7CivmsLTljJbniakgPiBzdWlrYWJ1dHN1XCA7CivotoXkvJ3lsI4gPiBjaG91ZGVuZG91XCA7CivmloflrabogIUgPiBidW5nYWt1c2hhXCA7Civnspfnm67pm6ogPiB6YXJhbWV5dWtpXCA7Civlj7LlrabogIUgPiBzaGlnYWt1c2hhXCA7Civlm73msJHou40gPiBrb2t1bWluZ3VuXCA7CivlkoDlmrznrYsgPiBzb3NoYWt1a2luXCA7CivkvY/miYDpjLIgPiBqdXVzaG9yb2t1XCA7Civpp5DlgZzou4ogPiBjaHV1dGVpc2hhXCA7CivmpI3mqLnnpa0gPiBzaG9rdWp1c2FpXCA7Civop5LpgJ/luqYgPiBrYWt1c29rdWRvXCA7CivlpKfotaTmlpEgPiBkYWlzZWtpaGFuXCA7CivlnLDkuK3mtbcgPiBjaGljaHV1a2FpXCA7CivllYblo7LkurogPiBzaG91YmFpbmluXCA7Civlj5flj5bkurogPiB1a2V0b3JpbmluXCA7CivopovmnKzluIIgPiBtaWhvbicnaWNoaVwgOwor5oqV56Wo5qipID4gdG91aHlvdWtlblwgOwor5o6i54Wn54GvID4gdGFuc2hvdXRvdVwgOwor5YWo5Yud6LuNID4gemVuc2hvdWd1blwgOwor57Wm5rC05aGUID4ga3l1dXN1aXRvdVwgOwor5r2u5bmy54upID4gc2hpb2hpZ2FyaVwgOwor54mh576K5bqnID4gb2hpdHN1aml6YVwgOwor5Y+O56iO5Lq6ID4gc2h1dXplaW5pblwgOwor6YG45oqe5qipID4gc2VudGFrdWtlblwgOwor5o6h54K56KGoID4gc2FpdGVuaHlvdVwgOwor5bel5bel5ZubID4ga3Vua3Vuc2hpaVwgOwor6KiY6Yyy55qEID4ga2lyb2t1dGVraVwgOwor6LGG5p2/6YqAID4gbWFtZWl0YWdpblwgOwor57W25a++6YePID4gemV0dGFpcnlvdVwgOwor5p2x5YyX5Lq6ID4gdG91aG9rdWppblwgOwor5rW36LuN55yBID4ga2FpZ3Vuc2hvdVwgOwor6YeR5Ymb5YqbID4ga29uZ291cmlraVwgOwor55yf5pqX6ZeHID4gbWFrdXJheWFtaVwgOwor5qSc55ar5a6YID4ga2VuJydla2lrYW5cIDsKK+WvvuixoeWkliA+IHRhaXNob3VnYWlcIDsKK+aWsOa9n+ecjCA+IG5paWdhdGFrZW5cIDsKK+mXh+WGjeiyqSA+IHlhbWlzYWloYW5cIDsKK+WLleeJqeaEmyA+IGRvdWJ1dHN1YWlcIDsKK+S9v+eUqOmHjyA+IHNoaXlvdXJ5b3VcIDsKK+iXgeWNiue0mSA+IHdhcmFiYW5zaGlcIDsKK+aWsOmWi+WcsCA+IHNoaW5rYWljaGlcIDsKK+mdnuW4uOitmCA+IGhpam91c2hpa2lcIDsKK+S4gOmdouimsyA+IGljaGltZW5rYW5cIDsKK+euoee1g+alvSA+IGthbmdlbmdha3VcIDsKK+acgOaBteWbvSA+IHNhaWtlaWtva3VcIDsKK+aFouaAp+eahCA+IG1hbnNlaXRla2lcIDsKK+aOqOioiOWtpiA+IHN1aWtlaWdha3VcIDsKK+WJr+mgmOS6iyA+IGZ1a3VyeW91amlcIDsKK+WNsOWIt+iAhSA+IGluc2F0c3VzaGFcIDsKK+iAkOeBq+WKmyA+IHRhaWthcnlva3VcIDsKK+WPi+emheafkyA+IHl1dXplbnpvbWVcIDsKK+WgseWRiuabuCA+IGhvdWtva3VzaG9cIDsKK+mqqOagvOetiyA+IGtva2tha3VraW5cIDsKK+iXu+WhqeiNiSA+IG1vc2hpb2d1c2FcIDsKK+mbhuWkp+aIkCA+IHNodXV0YWlzZWlcIDsKK+aFouaAp+eXhSA+IG1hbnNlaWJ5b3VcIDsKK+Wuo+iogOeahCA+IHNlbmdlbnRla2lcIDsKK+WFremHjeWljyA+IHJva3VqdXVzb3VcIDsKK+mfs+mfv+WtpiA+IG9ua3lvdWdha3VcIDsKK+W3pealrea4ryA+IGtvdWd5b3Vrb3VcIDsKK+e3j+i+nuiBtyA+IHNvdWppc2hva3VcIDsKK+i7jeWbo+mVtyA+IGd1bmRhbmNob3VcIDsKK+W5tOmVt+iAhSA+IG5lbmNob3VzaGFcIDsKK+e3j+WLmeWxgCA+IHNvdW11a3lva3VcIDsKK+mdouebuOethiA+IG1lbnNvdWZ1ZGVcIDsKK+aVo+atqemBkyA+IHNhbnBvbWljaGlcIDsKK+ekuuWcp+ioiCA+IHNoaWF0c3VrZWlcIDsKK+S4lue0gOacqyA+IHNlaWtpbWF0c3VcIDsKK+esrOS4ieWbvSA+IGRhaXNhbmdva3VcIDsKK+aKleelqOaVsCA+IHRvdWh5b3VzdXVcIDsKK+S9leeuh+aciCA+IG5hbmthZ2V0c3VcIDsKK+eUs+iri+abuCA+IHNoaW5zZWlzaG9cIDsKK+iFueiGnOeCjiA+IGZ1a3VtYWt1ZW5cIDsKK+a4qeazieeUuiA+IG9uc2VubWFjaGlcIDsKK+S4u+WLleeahCA+IHNodWRvdXRla2lcIDsKK+S4jeaWh+W+iyA+IGZ1YnVucml0c3VcIDsKK+W8geW9k+eusSA+IGJlbnRvdWJha29cIDsKK+WkqeS9k+WtpiA+IHRlbnRhaWdha3VcIDsKK+WNsOWIt+e0mSA+IGluc2F0c3VzaGlcIDsKK+S9juaIkOmVtyA+IHRlaXNlaWNob3VcIDsKK+S/r+S7sOinkiA+IGZ1Z3lvdWtha3VcIDsKK+aUvueGseWZqCA+IGhvdW5ldHN1a2lcIDsKK+e0lOiJr+WTgSA+IGp1bnJ5b3VoaW5cIDsKK+WCmeW+jOihqCA+IGJpbmdvb21vdGVcIDsKK+aal+auuuiAhSA+IGFuc2F0c3VzaGFcIDsKK+W5s+aVmeWToSA+IGhpcmFreW91aW5cIDsKK+S4jeimmuiAhSA+IGZ1a2FrdW1vbm9cIDsKK+aIkOmVt+eCuSA+IHNlaWNob3V0ZW5cIDsKK+adseaoque3miA+IHRvdXlva29zZW5cIDsKK+aVkea4iOiAhSA+IGt5dXVzYWlzaGFcIDsKK+efpeiDveeahCA+IGNoaW5vdXRla2lcIDsKK+W5u+immuWJpCA+IGdlbmtha3V6YWlcIDsKK+aenOeJqeWxiyA+IGt1ZGFtb25veWFcIDsKK+S6uuagvOiAhSA+IGppbmtha3VzaGFcIDsKK+mHkeWxnumWkyA+IGtpbnpva3VrYW5cIDsKK+iKseafs+eXhSA+IGthcnl1dWJ5b3VcIDsKK+iAgeWkp+WbvSA+IHJvdXRhaWtva3VcIDsKK+S7o+iogOS6uiA+IGRhaWdlbicnbmluXCA7Civlv4PlvpfpoZQgPiBrb2tvcm9lZ2FvXCA7Civku6PooajogIUgPiBkYWloeW91c2hhXCA7CivkuLvnn6XnmoQgPiBzaHVjaGl0ZWtpXCA7CivmloflrabnlYwgPiBidW5nYWt1a2FpXCA7CivliIfmlq3mqZ8gPiBzZXRzdWRhbmtpXCA7CivkuIDmmYLnmoQgPiBpY2hpaml0ZWtpXCA7CivkuqTpgJrntrIgPiBrb3V0c3V1bW91XCA7CivlnLDnkIPkurogPiBjaGlreXV1amluXCA7CivlnLDnkIPkuIogPiBjaGlreXV1am91XCA7CivpgIbmj5DmoYggPiBneWFrdXRlaWFuXCA7Civlr77mlbDooaggPiB0YWlzdXVoeW91XCA7CivmlZfmiKblm70gPiBoYWlzZW5rb2t1XCA7CivljbDliLfnpL4gPiBpbnNhdHN1c2hhXCA7CivmlrDoo73lk4EgPiBzaGluc2VpaGluXCA7CivmpbXot53pm6IgPiBreW9rdWt5b3JpXCA7Civnhp/nt7Tlt6UgPiBqdWt1cmVua291XCA7CivoibLntKDkvZMgPiBzaGlraXNvdGFpXCA7CivkuLjnoKXnn7MgPiBtYXJ1dG9pc2hpXCA7CivlkIzml4/kvJogPiBkb3V6b2t1a2FpXCA7CivntYzmuIjnmoQgPiBrZWl6YWl0ZWtpXCA7CivniZvkubPlsYsgPiBneXV1bnl1dXlhXCA7Civnt7Tnv5LloLQgPiByZW5zaHV1am91XCA7Civnibnoo73lk4EgPiB0b2t1c2VpaGluXCA7CivkuI3oqqDlrp8gPiBmdXNlaWppdHN1XCA7CivlvpPmnaXlnosgPiBqdXVyYWlnYXRhXCA7Civlr77osaHkvZMgPiB0YWlzaG91dGFpXCA7Civnsonnn7PpubggPiBrb25hc2Vra2VuXCA7CivlpJzlsL/nl4cgPiB5YW55b3VzaG91XCA7CivotoXmlofpnaIgPiBjaG91YnVubWVuXCA7Civli5XnianlnJIgPiBkb3VidXRzdWVuXCA7Civnt4/nm6PnnaMgPiBzb3VrYW50b2t1XCA7Civlrp/pmpvnmoQgPiBqaXNzYWl0ZWtpXCA7CivpoLzkv6HntJkgPiByYWlzaGluc2hpXCA7CivlrqPmlZnluKsgPiBzZW5reW91c2hpXCA7Civosqzku7vogIUgPiBzZWtpbmluc2hhXCA7CivplqLnr4Dngo4gPiBrYW5zZXRzdWVuXCA7CivlhbHps7Tmnb8gPiBreW91bWVpYmFuXCA7CivlrpfkuLvlm70gPiBzb3VzaHVrb2t1XCA7Civml6fou43kurogPiBreXV1Z3VuamluXCA7CivljYrmv4HngrkgPiBoYW5kYWt1dGVuXCA7CivljYrplbflvaIgPiBoYW5jaG91a2VpXCA7CivkuK3msLTpgZMgPiBjaHV1c3VpZG91XCA7CivpgbjmiYvmnZEgPiBzZW5zaHVtdXJhXCA7CivljbDliLfnlKggPiBpbnNhdHN1eW91XCA7CivpnIrmn6nou4ogPiByZWlreXV1c2hhXCA7Civmtbflsrjnq68gPiBrYWlnYW5iYXRhXCA7CivlpJbnlKjolqwgPiBnYWl5b3V5YWt1XCA7CivntKvmlpHnl4UgPiBzaGloYW5ieW91XCA7Civom7jphY3lvZMgPiB0YWtvaGFpdG91XCA7Civpq5jmiYDnl4UgPiBrb3VzaG9ieW91XCA7CivlpKflsI/kvr8gPiBkYWlzaG91YmVuXCA7CivnsbPlm73msJEgPiBiZWlrb2t1bWluXCA7CivlkLjmsLTmgKcgPiBreXV1c3Vpc2VpXCA7Civlv7XkupTml6UgPiBuZW5nb25pY2hpXCA7Civlh7rmnaXlv4MgPiBkZWtpZ29rb3JvXCA7CivkuK3lv4Ppg6ggPiBjaHV1c2hpbmJ1XCA7CivnlJ/kvZPlraYgPiBzZWl0YWlnYWt1XCA7Civogq/lrprnmoQgPiBrb3V0ZWl0ZWtpXCA7Civpgbjmip7lrZAgPiBzZW50YWt1c2hpXCA7Civli5XnianljJYgPiBkb3VidXRzdWthXCA7CivmsLTlubPnv7wgPiBzdWloZWl5b2t1XCA7Civosr/mmJPmpa0gPiBib3Vla2lneW91XCA7CivohbDluIPlm6MgPiBrb3NoaWJ1dG9uXCA7CivniIbmkoPmqZ8gPiBiYWt1Z2VraWtpXCA7CivoqIDooYzpjLIgPiBnZW5rb3Vyb2t1XCA7Civlm6PlnLDml48gPiBkYW5jaGl6b2t1XCA7CivkubHoqr/lrZAgPiByYW5jaG91c2hpXCA7Civlgpnok4TnsbMgPiBiaWNoaWt1bWFpXCA7CivlpKfkuZfnmoQgPiBkYWlqb3V0ZWtpXCA7CivnhKHog73lipsgPiBtdW5vdXJ5b2t1XCA7CivpharovrLloLQgPiByYWt1bm91am91XCA7CivosqjlrqLoiLkgPiBrYWt5YWt1c2VuXCA7CivmhJ/mn5Pnl4cgPiBrYW5zZW5zaG91XCA7CivnnJ/nkIbmlZkgPiBzaGlucmlreW91XCA7CivmhYjlloTpjYsgPiBqaXplbicnbmFiZVwgOwor5oqA6KGT5aOrID4gZ2lqdXRzdXNoaVwgOwor5ZOo5oiS6ImHID4gc2hvdWthaXRlaVwgOwor6YWS55+z6YW4ID4gc2h1c2VraXNhblwgOwor5pW35biD5ZujID4gc2hpa2lidXRvblwgOwor5Y+N5YmH6YeRID4gaGFuc29rdWtpblwgOwor5pyJ5qmf54mpID4geXV1a2lidXRzdVwgOwor5oq96LGh55S7ID4gY2h1dXNob3VnYVwgOwor56ef5YCf5qipID4gc29zaGFrdWtlblwgOwor5YaF55Sz5pu4ID4gbmFpc2hpbnNob1wgOwor5ZCM57Sa55SfID4gZG91a3l1dXNlaVwgOwor5ZCR57Gz55qEID4ga291YmVpdGVraVwgOwor6Kaq6KGb5YW1ID4gc2hpbicnZWloZWlcIDsKK+S7j+aWh+enkSA+IGZ1dHN1YnVua2FcIDsKK+WPluW8leaJgCA+IHRvcmloaWtpam9cIDsKK+mbu+i7iuizgyA+IGRlbnNoYWNoaW5cIDsKK+mbhuaVo+WcsCA+IHNodXVzYW5jaGlcIDsKK+e2uuaDs+absiA+IGtpc291a3lva3VcIDsKK+S4iuiqv+WtkCA+IHV3YWNob3VzaGlcIDsKK+WGheiHk+W8kyA+IG5haXpvdWt5dXVcIDsKK+WNiumWi+WbvSA+IGhhbmthaWtva3VcIDsKK+ijvemAoOalrSA+IHNlaXpvdWd5b3VcIDsKK+i/veaSg+apnyA+IHRzdWlnZWtpa2lcIDsKK+S4ieinkuetiyA+IHNhbmtha3VraW5cIDsKK+etiea3see3miA+IHRvdXNoaW5zZW5cIDsKK+mnhuWLleWKmyA+IGt1ZG91cnlva3VcIDsKK+mHjeW3pealrSA+IGp1dWtvdWd5b3VcIDsKK+m6u+e5lOeJqSA+IGFzYW9yaW1vbm9cIDsKK+aXpeWwhOeXhSA+IG5pc3NoYWJ5b3VcIDsKK+eGseihgOWFkCA+IG5la2tldHN1amlcIDsKK+mHkeWxnuijvSA+IGtpbnpva3VzZWlcIDsKK+acrOWlkee0hCA+IGhvbmtlaXlha3VcIDsKK+m7hOikkOiJsiA+IG91a2Fzc2hva3VcIDsKK+izvOWFpeiAhSA+IGtvdW55dXVzaGFcIDsKK+S4jeeyvuiAhSA+IGJ1c2hvdW1vbm9cIDsKK+S4u+W/nOWKmyA+IHNodW91cnlva3VcIDsKK+WfvOeOieWLoiA+IHNhaXRhbWF6ZWlcIDsKK+mHjeWCt+iAhSA+IGp1dXNob3VzaGFcIDsKK+WCt+Wus+e9qiA+IHNob3VnYWl6YWlcIDsKK+S9nOaIpuS4iiA+IHNha3VzZW5qb3VcIDsKK+a9nOawtOeXhSA+IHNlbnN1aWJ5b3VcIDsKK+S4reaAp+e0mSA+IGNodXVzZWlzaGlcIDsKK+iouueZguaJgCA+IHNoaW5yeW91am9cIDsKK+aXpeacrOmjnyA+IG5paG9uc2hva3VcIDsKK+eovOWDjeeOhyA+IGthZG91cml0c3VcIDsKK+mAo+WQiOWbvSA+IHJlbmdvdWtva3VcIDsKK+WFrOawkeWtpiA+IGtvdW1pbmdha3VcIDsKK+eglOeptuiAhSA+IGtlbmt5dXVzaGFcIDsKK+mdmeawtOWcpyA+IHNlaXN1aWF0c3VcIDsKK+eZu+mMsuiAhSA+IHRvdXJva3VzaGFcIDsKK+iIiOihjOeVjCA+IGtvdWd5b3VrYWlcIDsKK+a6luaxuuWLnSA+IGp1bmtlc3Nob3VcIDsKK+WkqeeOi+aYnyA+IHRlbicnbm91c2VpXCA7Civmoq/lrZDou4ogPiBoYXNoaWdvc2hhXCA7CivkuInopqrnrYkgPiBzYW5zaGludG91XCA7CivkuI3ntJTniakgPiBmdWp1bmJ1dHN1XCA7CivkuIrlpbPkuK0gPiBrYW1pam9jaHV1XCA7Civps6Xlj5bnnIwgPiB0b3R0b3Jpa2VuXCA7Civph43nl4fogIUgPiBqdXVzaG91c2hhXCA7CivosqfkuY/prK4gPiBiaW5ib3VrdWppXCA7CivllK/kuIDluqYgPiB0YWRhaWNoaWRvXCA7Civlpb3oibLlrrYgPiBrb3VzaG9rdWthXCA7Civmr5vnmq7llYYgPiBrZWdhd2FzaG91XCA7Civmr5TovIPntJogPiBoaWtha3VreXV1XCA7Civnj77lnKjpq5ggPiBnZW56YWlkYWthXCA7CivpmbjmtbfnqbogPiByaWt1a2Fpa3V1XCA7Civlj4znnLzpj6EgPiBzb3VnYW5reW91XCA7Civpp5DovKrloLQgPiBjaHV1cmluam91XCA7Civnmb3piYTpibEgPiBoYWt1dGVra291XCA7CivlpKflrq7kurogPiBvb21peWFiaXRvXCA7Civpm6rlkIjmiKYgPiB5dWtpZ2Fzc2VuXCA7CivniYfmoJfnsokgPiBrYXRha3VyaWtvXCA7CivnmbrooajkvJogPiBoYXBweW91a2FpXCA7CivlkJDngInniakgPiB0b3NoYWJ1dHN1XCA7Civoo4/ooajntJkgPiB1cmFieW91c2hpXCA7CivliIfmlq3lm7MgPiBzZXRzdWRhbnp1XCA7CivmgJ3mg5HosrcgPiBvbW93YWt1Z2FpXCA7CivoprPlv7Xoq5YgPiBrYW4nJ25lbnJvblwgOwor546J6Z+z55ukID4gZ3lva3VvbmJhblwgOwor5Y+N5YuV55qEID4gaGFuZG91dGVraVwgOwor5pWR5ZG96ImHID4ga3l1dW1laXRlaVwgOwor57W25a++55qEID4gemV0dGFpdGVraVwgOwor5ris6YeP5ZuzID4gc29rdXJ5b3V6dVwgOwor5LiJ5aSn5Zu9ID4gc2FuZGFpa29rdVwgOwor5Zyw5pa555eFID4gY2hpaG91YnlvdVwgOwor5Ye654mI6ICFID4gc2h1cHBhbnNoYVwgOwor5L6b57Wm6LevID4ga3lvdWt5dXVyb1wgOwor56uc5raO6aaZID4gcnl1dXplbmtvdVwgOwor5bCE54iG5aC0ID4gc2hhYmFrdWpvdVwgOwor5ris6YeP5ZmoID4gc29rdXJ5b3VraVwgOwor5Zyf5L+X5a2mID4gZG96b2t1Z2FrdVwgOwor576O5aWz5qGcID4gYmlqb3pha3VyYVwgOwor5Y2X44CF5p2xID4gbmFuJyduYW50b3VcIDsKK+S6uuagvOaoqSA+IGppbmtha3VrZW5cIDsKK+WIhuino+eahCA+IGJ1bmthaXRla2lcIDsKK+S7luimmueahCA+IHRha2FrdXRla2lcIDsKK+WkqeS4u+aVmSA+IHRlbnNodWt5b3VcIDsKK+mbquWMlueypyA+IHl1a2lnZXNob3VcIDsKK+W9ouW8j+e+jiA+IGtlaXNoaWtpYmlcIDsKK+mbu+mAmuWkpyA+IGRlbnRzdXVkYWlcIDsKK+eglOeptuekviA+IGtlbmt5dXVzaGFcIDsKK+S4ieinkueCuSA+IHNhbmtha3V0ZW5cIDsKK+S8neabuOmzqSA+IGRlbnNob2JhdG9cIDsKK+S7luimmueXhyA+IHRha2FrdXNob3VcIDsKK+a2iOiAl+aIpiA+IHNob3Vtb3VzZW5cIDsKK+S7leios+abuCA+IHNoaXdha2VzaG9cIDsKK+mBiuS8keWcsCA+IHl1dWt5dXVjaGlcIDsKK+WPjeW/nOaApyA+IGhhbicnbm91c2VpXCA7CivmmrTotbDml48gPiBib3Vzb3V6b2t1XCA7CivntIDlhYPnr4AgPiBraWdlbnNldHN1XCA7CivmuKnms4nlrr8gPiBvbnNlbicneWFkb1wgOwor5ZSQ6L6b5a2QID4gdG91Z2FyYXNoaVwgOwor5pel5Lit6Z+TID4gbml0Y2h1dWthblwgOwor55CG6Kej5YqbID4gcmlrYWlyeW9rdVwgOwor5YWs5YWx6LKhID4ga291a3lvdXphaVwgOwor5qSc5a6a5paZID4ga2VudGVpcnlvdVwgOwor5biC6ZW36YG4ID4gc2hpY2hvdXNlblwgOwor5a6J5pmu6KuLID4geWFzdWJ1c2hpblwgOwor5rC06YGT5paZID4gc3VpZG91cnlvdVwgOwor5Lih5oiQ5pWXID4gcnlvdXNlaWJhaVwgOwor5Yid56+A5Y+lID4gaGF0c3V6ZWtrdVwgOwor5q+U6LyD55qEID4gaGlrYWt1dGVraVwgOwor5Zu96YCj6LuNID4ga29rdXJlbmd1blwgOwor5LiK57Sa55SfID4gam91a3l1dXNlaVwgOwor54Sh6aCT552AID4gbXV0b25jaGFrdVwgOwor5a2m5Y+L5LyaID4gZ2FrdXl1dWthaVwgOwor5YaN5p2l5pyIID4gc2FyYWlnZXRzdVwgOwor5b6M5pel6KuHID4gZ29qaXRzdWRhblwgOwor5YKZ6I2S6aOfID4gYmlrb3VzaG9rdVwgOwor5LiN6KGM6LehID4gZnVneW91c2VraVwgOwor5pac6Zm95pePID4gc2hheW91em9rdVwgOwor6Z2S5YyW54mpID4gc2Vpa2FidXRzdVwgOwor5aSp546L5bGxID4gdGVuJydub3V6YW5cIDsKK+WOhOS7i+iAhSA+IHlha2thaW1vbm9cIDsKK+WLh+eMm+W/gyA+IHl1dW1vdXNoaW5cIDsKK+atpuWKm+aIpiA+IGJ1cnlva3VzZW5cIDsKK+S4ieinkuazlSA+IHNhbmtha3Vob3VcIDsKK+Wul+aVmeeUuyA+IHNodXVreW91Z2FcIDsKK+eglOeptueUnyA+IGtlbmt5dXVzZWlcIDsKK+WHuuWllOiAhSA+IHNodXBwb25zaGFcIDsKK+WPjuebiumHkSA+IHNodXVla2lraW5cIDsKK+awt+iPk+WtkCA+IGtvb3JpZ2FzaGlcIDsKK+i7veW3pealrSA+IGtlaWtvdWd5b3VcIDsKK+iomOaGtuWKmyA+IGtpb2t1cnlva3VcIDsKK+WNs+iIiOipqSA+IHNva2t5b3VzaGlcIDsKK+WPpOeUn+eJqSA+IGtvc2VpYnV0c3VcIDsKK+eGseaEm+iAhSA+IG5ldHN1YWlzaGFcIDsKK+WkqemggueCuSA+IHRlbmNob3V0ZW5cIDsKK+eEoeizh+WKmyA+IG11c2hpcnlva3VcIDsKK+iIiOihjOaoqSA+IGtvdWd5b3VrZW5cIDsKK+advuagueayuSA+IHNob3Vrb24nJ3l1XCA7Civnmb7muIjmpb0gPiBrdWRhcmFnYWt1XCA7CivlnKjku7vkuK0gPiB6YWluaW5jaHV1XCA7Civmu57lnKjkuK0gPiB0YWl6YWljaHV1XCA7Civlh7rniYjnpL4gPiBzaHVwcGFuc2hhXCA7Civoo73ojLbmpa0gPiBzZWljaGFneW91XCA7Civosr/mmJPllYYgPiBib3Vla2lzaG91XCA7Civlm73li5nnnIEgPiBrb2t1bXVzaG91XCA7CivkuK3ljZfnsbMgPiBjaHV1bmFuYmVpXCA7CivmoZDkuIDokYkgPiBraXJpaGl0b2hhXCA7CivliJ3nr4DkvpsgPiBoYXRzdXpla2t1XCA7CivlhaXpgbjogIUgPiBueXV1c2Vuc2hhXCA7CivnuKbnpL7kvJogPiB0YXRlc2hha2FpXCA7Civmk43nuKbluK0gPiBzb3VqdXVzZWtpXCA7Civlkajml4vlsYsgPiBzaHV1c2VuJyd5YVwgOwor5paH5a2m5aOrID4gYnVuZ2FrdXNoaVwgOwor5bel5a2m6ICFID4ga291Z2FrdXNoYVwgOwor5Y+k5Lyd6KqsID4ga29kZW5zZXRzdVwgOwor5Y2w5Yi35belID4gaW5zYXRzdWtvdVwgOwor5r2c5rC05pyNID4gc2Vuc3VpZnVrdVwgOwor5aSn5Li75pWZID4gZGFpc2h1a3lvdVwgOwor5LiK5aC05qCqID4gam91am91a2FidVwgOwor6aGe5Z6L55qEID4gcnVpa2VpdGVraVwgOwor5ZC55Ye654mpID4gZnVraWRlbW9ub1wgOwor5oqX55yf6I+MID4ga291c2hpbmtpblwgOwor6Zuj5rOi5r2fID4gbmFuaXdhZ2F0YVwgOwor56ef5YCf5ZywID4gc29zaGFrdWNoaVwgOwor5Yqg6L6y56CyID4ga2FuJydub25ob3VcIDsKK+mAoOefs+eojiA+IHpvdWtva3V6ZWlcIDsKK+mnkOi7iuWgtCA+IGNodXVzaGFqb3VcIDsKK+ippueul+ihqCA+IHNoaXNhbmh5b3VcIDsKK+e1jOa4iOWtpiA+IGtlaXphaWdha3VcIDsKK+aApeWLvumFjSA+IGt5dXVrb3ViYWlcIDsKK+WEgOW8j+eUqCA+IGdpc2hpa2l5b3VcIDsKK+ihgOagk+eXhyA+IGtlc3NlbnNob3VcIDsKK+S8iumBlOWnvyA+IGRhdGVzdWdhdGFcIDsKK+eXheWOn+S9kyA+IGJ5b3VnZW50YWlcIDsKK+WFq+WIhuebriA+IGhhY2hpYnVubWVcIDsKK+ino+aekOaApyA+IGthaXNla2lzZWlcIDsKK+Wuouims+aApyA+IGt5YWtrYW5zZWlcIDsKK+i2heWqkuS9kyA+IGNob3ViYWl0YWlcIDsKK+awtOiKreiViSA+IG1penViYXNob3VcIDsKK+mVt+acn+eahCA+IGNob3VraXRla2lcIDsKK+ecvOmPoeibhyA+IG1lZ2FuZWhlYmlcIDsKK+WHuueJiOeVjCA+IHNodXBwYW5rYWlcIDsKK+W8geWEn+mHkSA+IGJlbnNob3VraW5cIDsKK+aOkuWklueahCA+IGhhaWdhaXRla2lcIDsKK+acqueGn+iAhSA+IG1panVrdW1vbm9cIDsKK+WIhuaVo+WeiyA+IGJ1bnNhbmdhdGFcIDsKK+efree3qOmbhiA+IHRhbnBlbnNodXVcIDsKK+a3oei3r+WztiA+IGF3YWppc2hpbWFcIDsKK+Wil+aulueCiSA+IHpvdXNob2t1cm9cIDsKK+S4i+imi+advyA+IHNoaXRhbWlpdGFcIDsKK+WIhuaVmeWgtCA+IGJ1bmt5b3Vqb3VcIDsKK+WPsuaWmemkqCA+IHNoaXJ5b3VrYW5cIDsKK+ihgOWwj+advyA+IGtlc3Nob3ViYW5cIDsKK+mHkeiJsuWggiA+IGtvbmppa2lkb3VcIDsKK+a8ouaWueiWrCA+IGthbnBvdXlha3VcIDsKK+e/u+ios+WutiA+IGhvbicneWFrdWthXCA7CivlubPnrYnoprMgPiBieW91ZG91a2FuXCA7CivmpJzmn7vlrpggPiBrZW5zaG91a2FuXCA7Civmloflrablj7IgPiBidW5nYWt1c2hpXCA7CivlpInliIblraYgPiBoZW5idW5nYWt1XCA7CivliY3moL3niakgPiBzZW56YWltb25vXCA7CivlvLflo67liaQgPiBreW91c291emFpXCA7CivmtbfnlKPmpa0gPiBrYWlzYW5neW91XCA7CivnjK7ntI3ogIUgPiBrZW4nJ25vdXNoYVwgOwor5YWt6YCj5pifID4gcm9rdXJlbnNlaVwgOwor5YuF6aGY5a+6ID4gY2hva3VnYW5qaVwgOwor5Lyd5p+T55eFID4gZGVuc2VuYnlvdVwgOwor5Lit6I+v6Y2LID4gY2h1dWthbmFiZVwgOwor5aSp5LiK5bedID4gdGVuam91Z2F3YVwgOwor5rSL6Iql5a2QID4geW91Z2FyYXNoaVwgOwor55qG5Yuk6LOeID4ga2Fpa2luc2hvdVwgOwor6YeR5bGe54mHID4ga2luem9rdWhlblwgOwor5aWH6KGT5birID4ga2lqdXRzdXNoaVwgOwor5aKX5Yqg546HID4gem91a2FyaXRzdVwgOwor5qiZ5rqW5Z6LID4gaHlvdWp1bmtlaVwgOwor6YeR6LWk6ImyID4ga2luJydha2Fpcm9cIDsKK+iyrOS7u+aEnyA+IHNla2luaW5rYW5cIDsKK+a3i+W3tOevgCA+IHJpbnBhc2V0c3VcIDsKK+S+m+eJqeWPsCA+IGt1bW90c3VkYWlcIDsKK+exs+WbveS6uiA+IGJlaWtva3VqaW5cIDsKK+etiea4qeW8jyA+IHRvdW9uc2hpa2lcIDsKK+WJjeS7u+iAhSA+IHplbicnbmluc2hhXCA7Civoo73pgKDlhYMgPiBzZWl6b3Vtb3RvXCA7Civmg4XloLHph48gPiBqb3Vob3VyeW91XCA7CivmtojogJflk4EgPiBzaG91bW91aGluXCA7CivkuKHmiYvliKkgPiByeW91dGVraWtpXCA7Civok4Tpm7vlmaggPiBjaGlrdWRlbmtpXCA7Civlr77op5Lnt5ogPiB0YWlrYWt1c2VuXCA7CivkuIDmmankuK0gPiBoaXRvYmFuanV1XCA7CivmmpfliaPmrrogPiBhbmtlbnNhdHN1XCA7CivpoK3otrPpoZ4gPiB0b3Vzb2t1cnVpXCA7CivlnKjmnbHkuqwgPiB6YWl0b3VreW91XCA7Civmo4ToqIDokYkgPiBzdXRla290b2JhXCA7CivlhY3nqI7ooaggPiBtZW56ZWloeW91XCA7Civlm73msJHmgKcgPiBrb2t1bWluc2VpXCA7CivlvavliLvlrrYgPiBjaG91a29rdWthXCA7Civoqq3mm7jnlYwgPiBkb2t1c2hva2FpXCA7Civkvb/nlKjmlpkgPiBzaGl5b3VyeW91XCA7CivlsYXnlZnmsJEgPiBreW9yeXV1bWluXCA7Civml4vlhYnop5IgPiBzZW5rb3VrYWt1XCA7CivlsI/plpPkvb8gPiBrb21hZHp1a2FpXCA7Civop5Lohpzngo4gPiBrYWt1bWFrdWVuXCA7CivpsK3ohJrpoZ4gPiBraWt5YWt1cnVpXCA7CivpkZHorZjlrrYgPiBrYW5zaGlraWthXCA7CivoiIjooYzluKsgPiBrb3VneW91c2hpXCA7CivlrLblpKnkuIsgPiBrYWthYWRlbmthXCA7Civlm7rlvaLniakgPiBrb2tlaWJ1dHN1XCA7CivntKHnuL7ns7ggPiBib3VzZWtpaXRvXCA7CivlkJ3ll4flrrYgPiByaW5zaG9rdWthXCA7Civngrrmm7/lsLsgPiBrYXdhc2VqaXJpXCA7Civoqq3ogIXmrIQgPiBkb2t1c2hhcmFuXCA7CivljoTku4vniakgPiB5YWtrYWltb25vXCA7Civlh7rkuJbkvZwgPiBzaHVzc2VzYWt1XCA7Civli5Xmkanmk6YgPiBkb3VtYXNhdHN1XCA7Civpg6jliIbpo58gPiBidWJ1bnNob2t1XCA7Civlh7rniYjms5UgPiBzaHVwcGFuaG91XCA7CivoqrLpoYzmm7IgPiBrYWRhaWt5b2t1XCA7CivmrrromavliaQgPiBzYXRjaHV1emFpXCA7CivoloTpm6rojYkgPiB1c3V5dWtpc291XCA7CivkurrkvZPlraYgPiBqaW50YWlnYWt1XCA7CivlubPln47kuqwgPiBoZWlqb3VreW91XCA7CivkuInop5LluL0gPiBzYW5rYWt1Ym91XCA7CivooZ3mkoPms6IgPiBzaG91Z2VraWhhXCA7CivkuInop5Llt74gPiBzYW5rYWt1a2luXCA7Civpg7XpgIHmlpkgPiB5dXVzb3VyeW91XCA7Civnn7Pngq3phbggPiBzZWtpdGFuc2FuXCA7CivlvoHmnI3ogIUgPiBzZWlmdWt1c2hhXCA7CivlvLfooYzou40gPiBreW91a291Z3VuXCA7Civku6Pooajlm6MgPiBkYWloeW91ZGFuXCA7CivohJrmnKzlrrYgPiBreWFrdWhvbmthXCA7Civoj5PlrZDpiaIgPiBrYXNoaWJhY2hpXCA7Civnm7TlhobpjJAgPiBjaG9rdWVuc3VpXCA7Civlh7rniYjmqKkgPiBzaHVwcGFua2VuXCA7Civlho3mnI3lvbkgPiBzYWlmdWt1ZWtpXCA7CivnlJ/mlL7pgIEgPiBuYW1haG91c291XCA7CivoqIjnrpflsLogPiBrZWlzYW5qYWt1XCA7CivpgJrli6TogIUgPiB0c3V1a2luc2hhXCA7CivkuIDloYHnt5ogPiBpY2hpcnVpc2VuXCA7CivmtrLph4/oqIggPiBla2lyeW91a2VpXCA7CivliIfmlK/kuLkgPiBraXJpc2hpdGFuXCA7Civpl4fluILloLQgPiB5YW1pc2hpam91XCA7CivpmpzlrrPogIUgPiBzaG91Z2Fpc2hhXCA7CivosrTml4/nmoQgPiBraXpva3V0ZWtpXCA7CivljbDliLfkurogPiBpbnNhdHN1bmluXCA7Civmtbfos4roiLkgPiBrYWl6b2t1c2VuXCA7CivljZfljZfopb8gPiBuYW4nJ25hbnNlaVwgOwor6ISz5oyv55uqID4gbm91c2hpbnRvdVwgOwor5oq96LGh5YyWID4gY2h1dXNob3VrYVwgOwor6Kyb57+S5LyaID4ga291c2h1dWthaVwgOwor5oSb546p54mpID4gYWlnYW5idXRzdVwgOwor6bq76ZuA5bGLID4gbWF6ZWphbicneWFcIDsKK+S8neafk+avkiA+IGRlbnNlbmRva3VcIDsKK+S7luWbveiAhSA+IHRha29rdW1vbm9cIDsKK+mHjeWxpOeahCA+IGp1dXNvdXRla2lcIDsKK+S6lOmHjeWhlCA+IGdvanV1bm90b3VcIDsKK+S4i+e0muWvqSA+IGtha3l1dXNoaW5cIDsKK+S9juaJgOW+lyA+IHRlaXNob3Rva3VcIDsKK+WwgumWgOeroCA+IHNlbm1vbnNob3VcIDsKK+mLs+mAoOaJgCA+IGNodXV6b3VzaG9cIDsKK+efreaZguaXpSA+IHRhbmppaml0c3VcIDsKK+S8kealreaXpSA+IGt5dXVneW91YmlcIDsKK+WFiOerr+eahCA+IHNlbnRhbnRla2lcIDsKK+WWp+WYqeiFsCA+IGtlbmthZ29zaGlcIDsKK+iNieWPjOe0mSA+IGt1c2F6b3VzaGlcIDsKK+epuuaDs+eahCA+IGt1dXNvdXRla2lcIDsKK+mbqumBlOejqCA+IHl1a2lkYXJ1bWFcIDsKK+WGheS6pOa4iSA+IG5haWtvdXNob3VcIDsKK+W6g+WRiuekviA+IGtvdWtva3VzaGFcIDsKK+iyqOeJqemnhSA+IGthbW90c3Vla2lcIDsKK+iyp+S5j+expCA+IGJpbmJvdWd1amlcIDsKK+WvvuipseW8jyA+IHRhaXdhc2hpa2lcIDsKK+WFseeUo+i7jSA+IGt5b3VzYW5ndW5cIDsKK+S4jeaJv+irviA+IGZ1c2hvdWRha3VcIDsKK+axguS6uuiqjCA+IGt5dXVqaW5zaGlcIDsKK+mereavm+iZqyA+IGJlbm1vdWNodXVcIDsKK+ewoeWNmOacjSA+IGthbnRhbmZ1a3VcIDsKK+S4reaAp+WtkCA+IGNodXVzZWlzaGlcIDsKK+m7kuepgueXhSA+IGt1cm9ob2J5b3VcIDsKK+WIhuaLhemhjSA+IGJ1bnRhbmdha3VcIDsKK+WkqumZveiZqyA+IHRhaXlvdWNodXVcIDsKK+aaq+WumueahCA+IHphbnRlaXRla2lcIDsKK+S7o+ihqOS+iyA+IGRhaWh5b3VyZWlcIDsKK+WQjOWbveawkSA+IGRvdWtva3VtaW5cIDsKK+iomOW/teeJqSA+IGtpbmVuYnV0c3VcIDsKK+aXp+S9k+WItiA+IGt5dXV0YWlzZWlcIDsKK+WNl+a0i+adkCA+IG5hbicneW91emFpXCA7CivpnZ7luLjlj6MgPiBoaWpvdWd1Y2hpXCA7CivkuIrooajntJkgPiB1d2FieW91c2hpXCA7CivpnaLnmb3lkbMgPiBvbW9zaGlyb21pXCA7Civkv53lrZjpo58gPiBob3pvbnNob2t1XCA7CivljYrmhI/orZggPiBoYW4nJ2lzaGlraVwgOwor5pys6Kq/5a2QID4gaG9uY2hvdXNoaVwgOwor57mU5aWz5pifID4gc2hva3Vqb3NlaVwgOwor5bCC6ZaA55qEID4gc2VubW9udGVraVwgOwor5aCx5YSf6YeRID4gaG91c2hvdWtpblwgOwor5pOy5by+562SID4gdGVraWRhbnRvdVwgOwor6LKn5LmP56WeID4gYmluYm91Z2FtaVwgOwor5Zue5ryV5qWtID4ga2Fpc291Z3lvdVwgOwor5aSn57Wx6aCYID4gZGFpdG91cnlvdVwgOwor6YeP5a2Q6KuWID4gcnlvdXNoaXJvblwgOwor5Lit5Yqb57KJID4gY2h1dXJpa2lrb1wgOwor55y86Y+h54y/ID4gbWVnYW5lemFydVwgOwor5qWt55WM57SZID4gZ3lvdWthaXNoaVwgOwor6Z2e5YWs5byPID4gaGlrb3VzaGlraVwgOwor5rC05YW15pyNID4gc3VpaGVpZnVrdVwgOwor6LKv5pyo5aC0ID4gY2hvYm9rdWpvdVwgOwor5qKv5a2Q5q61ID4gaGFzaGlnb2RhblwgOwor5b2T5q2z6aeSID4gdG91c2FpZ29tYVwgOwor5a6X5pWZ5a62ID4gc2h1dWt5b3VrYVwgOwor56CU56m25a6YID4ga2Vua3l1dWthblwgOwor5q6J5pWZ6ICFID4ganVua3lvdXNoYVwgOwor5q6J6Zuj6ICFID4ganVuJyduYW5zaGFcIDsKK+WjgeiotOionyA+IGthYmV6b3Nob3VcIDsKK+eOieaVtOeQhiA+IGd5b2t1c2VpcmlcIDsKK+iMqOWfjuecjCA+IGliYXJha2lrZW5cIDsKK+WxiOabsumDqCA+IGt1a2t5b2t1YnVcIDsKK+ikkuWlqOmHkSA+IGhvdXNob3VraW5cIDsKK+a2iOmYsumaiiA+IHNob3Vib3V0YWlcIDsKK+acp+aYhuW4gyA+IG9ib3Jva29uYnVcIDsKK+eci+eXheS6uiA+IGthbmJ5b3VuaW5cIDsKK+iKsembu+i7iiA+IGhhbmFkZW5zaGFcIDsKK+WcsOaWh+WtpiA+IGNoaW1vbmdha3VcIDsKK+WPo+S+m+abuCA+IGtvdWt5b3VzaG9cIDsKK+mHkeWxnuaApyA+IGtpbnpva3VzZWlcIDsKK+iNiemHjueQgyA+IGt1c2F5YWt5dXVcIDsKK+aknOS6i+WxgCA+IGtlbmppa3lva3VcIDsKK+WFrei+uuW9oiA+IHJva3VoZW5rZWlcIDsKK+iqreiAheWxpCA+IGRva3VzaGFzb3VcIDsKK+WCrOS/g+eKtiA+IHNhaXNva3Vqb3VcIDsKK+WCvuaWnOinkiA+IGtlaXNoYWtha3VcIDsKK+WPjuebo+eKtiA+IHNodXVrYW5qb3VcIDsKK+WcsOmch+WtpiA+IGppc2hpbmdha3VcIDsKK+WcqOS4luS4rSA+IHphaXNlaWNodXVcIDsKK+WlpeW6p+aVtyA+IG9rdXphc2hpa2lcIDsKK+e+juihk+mkqCA+IGJpanV0c3VrYW5cIDsKK+ioseWuuemHjyA+IGt5b3lvdXJ5b3VcIDsKK+WwhOaSg+WgtCA+IHNoYWdla2lqb3VcIDsKK+W+jOWkqeeahCA+IGtvdXRlbnRla2lcIDsKK+mnkOWxr+WcsCA+IGNodXV0b25jaGlcIDsKK+iEs+a6ouihgCA+IG5vdWlra2V0c3VcIDsKK+WtmOWRveS4rSA+IHpvbm1laWNodXVcIDsKK+ezu+WIl+WMliA+IGtlaXJldHN1a2FcIDsKK+WHuueJiOWxiyA+IHNodXBwYW4nJ3lhXCA7Civlr6nnvo7nmoQgPiBzaGluYml0ZWtpXCA7CivmgZLkuYXmgKcgPiBrb3VreXV1c2VpXCA7CivniYfosr/mmJMgPiBrYXRhYm91ZWtpXCA7CivmlofnjK7lraYgPiBidW5rZW5nYWt1XCA7CivmmYLku6PoibIgPiBqaWRhaXNob2t1XCA7CivlpKflpKfnmoQgPiBkYWlkYWl0ZWtpXCA7Civkuozph43mqYsgPiBuaWp1dWJhc2hpXCA7CivlnLDoqozlraYgPiBjaGlzaGlnYWt1XCA7CivljJblrabnmoQgPiBrYWdha3V0ZWtpXCA7CivogonlvL7miKYgPiBuaWt1ZGFuc2VuXCA7CivkuIDntYPnkLQgPiBpY2hpZ2Vua2luXCA7CivpgYrniafmsJEgPiB5dXVib2t1bWluXCA7CivmoLjlrp/pqJMgPiBrYWt1amlra2VuXCA7Civosqjnianou4ogPiBrYW1vdHN1c2hhXCA7CivmsYLkurrogIUgPiBreXV1amluc2hhXCA7CivlnLDpnIflm70gPiBqaXNoaW5rb2t1XCA7CivlsYXnlZnlnLAgPiBreW9yeXV1Y2hpXCA7CivpmpzlrZDntJkgPiBzaG91amlnYW1pXCA7CivmvZzlh73nl4UgPiBzZW5rYW5ieW91XCA7CivlvJXnjofogIUgPiBpbnNvdHN1c2hhXCA7Civmtbfos4rniYggPiBrYWl6b2t1YmFuXCA7Civkv6Hku7DogIUgPiBzaGlua291c2hhXCA7CivmtojpmLLou4ogPiBzaG91Ym91c2hhXCA7CivkuInnrYnos54gPiBzYW50b3VzaG91XCA7CivnhKHorablr58gPiBtdWtlaXNhdHN1XCA7CivlvanoibLnlLsgPiBzYWlzaG9rdWdhXCA7Civli6flkYrogIUgPiBrYW5rb2t1c2hhXCA7CivluoPlkYrmrIQgPiBrb3Vrb2t1cmFuXCA7Civos57ph5HnjosgPiBzaG91a2luJydvdVwgOwor6YCa55+l54q2ID4gdHN1dWNoaWpvdVwgOwor5bel5L2c5ZOBID4ga291c2FrdWhpblwgOwor5Zyw5pS/5a2mID4gY2hpc2VpZ2FrdVwgOwor5aSq6Zm956WeID4gdGFpeW91c2hpblwgOwor57aZ5om/6ICFID4ga2Vpc2hvdXNoYVwgOwor5Lmz6KO95ZOBID4gbnl1dXNlaWhpblwgOwor6YGK5pKD6ZqKID4geXV1Z2VraXRhaVwgOwor5Y2R5oCv6ICFID4gaGlreW91bW9ub1wgOwor5YaN5pWZ6IKyID4gc2Fpa3lvdWlrdVwgOwor5Zu95YaF57eaID4ga29rdW5haXNlblwgOwor5Zmb54WZ6I2JID4ga2FtaXRhYmFrb1wgOwor5oWI5ZaE5biCID4gaml6ZW4nJ2ljaGlcIDsKK+WbnuaDs+mMsiA+IGthaXNvdXJva3VcIDsKK+WkluS6pOeahCA+IGdhaWtvdXRla2lcIDsKK+S/rueQhuS4rSA+IHNodXVyaWNodXVcIDsKK+S4ieetieimqiA+IHNhbnRvdXNoaW5cIDsKK+WcsOihqOmdoiA+IGNoaWh5b3VtZW5cIDsKK+W5sua4ieioiCA+IGthbnNob3VrZWlcIDsKK+eglOeptuS8miA+IGtlbmt5dXVrYWlcIDsKK+iCluWDj+aoqSA+IHNob3V6b3VrZW5cIDsKK+W9ueS4jei2syA+IHlha3VidXNva3VcIDsKK+azqOaEj+WKmyA+IGNodXVpcnlva3VcIDsKK+iFueS4iuatuyA+IGZ1a3Vqb3VzaGlcIDsKK+e3qOmbhuiAhSA+IGhlbnNodXVzaGFcIDsKK+W6g+WRiuadvyA+IGtvdWtva3ViYW5cIDsKK+a4ieemvemhniA+IHNob3VraW5ydWlcIDsKK+WAkumMr+iAhSA+IHRvdXNha3VzaGFcIDsKK+awtOeWseeYoSA+IG1penVib3Vzb3VcIDsKK+W5s+etieaoqSA+IGJ5b3Vkb3VrZW5cIDsKK+Wkp+mch+eBvSA+IGRhaXNoaW5zYWlcIDsKK+mHjeeXh+S+iyA+IGp1dXNob3VyZWlcIDsKK+WcsOWfn+eahCA+IGNoaWlraXRla2lcIDsKK+WFseeUo+ezuyA+IGt5b3VzYW5rZWlcIDsKK+mWi+mWieapiyA+IGthaWhlaWt5b3VcIDsKK+i2hembu+WwjiA+IGNob3VkZW5kb3VcIDsKK+mZs+aDheabuCA+IGNoaW5qb3VzaG9cIDsKK+aKleapn+eGsSA+IHRvdWtpbmV0c3VcIDsKK+WGl+irh+S6iyA+IGpvdWRhbmtvdG9cIDsKK+acgOmrmOe0miA+IHNhaWtvdWt5dXVcIDsKK+aAneaDkeW4qyA+IG9tb3dha3VzaGlcIDsKK+ilv+aXpeacrCA+IG5pc2hpbmlob25cIDsKK+i/keS7o+eahCA+IGtpbmRhaXRla2lcIDsKK+i2heWkp+WeiyA+IGNob3Vvb2dhdGFcIDsKK+egleawt+iIuSA+IHNhaWh5b3VzZW5cIDsKK+a8gealreazlSA+IGd5b2d5b3Vob3VcIDsKK+acquino+axuiA+IG1pa2Fpa2V0c3VcIDsKK+W3qOS6uuWbvSA+IGt5b2ppbmtva3VcIDsKK+acgOWwj+mZkCA+IHNhaXNob3VnZW5cIDsKK+WFrOWFseaApyA+IGtvdWt5b3VzZWlcIDsKK+eEoeeyvumrrSA+IGJ1c2hvdWhpZ2VcIDsKK+W3peWtpuWjqyA+IGtvdWdha3VzaGlcIDsKK+mFkumAoOalrSA+IHNodXpvdWd5b3VcIDsKK+iJsumJm+ethiA+IGlyb2VucGl0c3VcIDsKK+eBq+aJk+efsyA+IGhpdWNoaWlzaGlcIDsKK+mGuOmAoOalrSA+IGpvdXpvdWd5b3VcIDsKK+WNmOecvOmPoSA+IHRhbmdhbmt5b3VcIDsKK+a8gealreaoqSA+IGd5b2d5b3VrZW5cIDsKK+efs+eBr+exoCA+IGlzaGlkb3Vyb3VcIDsKK+WNl+awt+a0iyA+IG5hbnB5b3V5b3VcIDsKK+mxiOWgtOifuSA+IHRhcmFiYWdhbmlcIDsKK+WyoeWxseecjCA+IG9rYXlhbWFrZW5cIDsKK+e0oee4vuW3pSA+IGJvdXNla2lrb3VcIDsKK+i1t+eIhuiWrCA+IGtpYmFrdXlha3VcIDsKK+eiuuiqjeabuCA+IGtha3VuaW5zaG9cIDsKK+iqleeUn+efsyA+IHRhbmpvdXNla2lcIDsKK+mYsuiHreWJpCA+IGJvdXNodXV6YWlcIDsKK+mMq+ijveWTgSA+IHN1enVzZWloaW5cIDsKK+iyqOeJqeiIuSA+IGthbW90c3VzZW5cIDsKK+S4gOWhgeaJiyA+IGljaGlydWlzaHVcIDsKK+iEmue3mue+jiA+IGt5YWt1c2VuYmlcIDsKK+acieS+oeeJqSA+IHl1dWthYnV0c3VcIDsKK+akjeeUn+WbsyA+IHNob2t1c2VpenVcIDsKK+eZuuaDheacnyA+IGhhdHN1am91a2lcIDsKK+eZveawtOekviA+IGhha3VzdWlzaGFcIDsKK+aOoeeul+agqiA+IHNhaXNhbmthYnVcIDsKK+mVt+S4geWgtCA+IG5hZ2FjaG91YmFcIDsKK+acieWtlOiZqyA+IHl1dWtvdWNodXVcIDsKK+WkqeeEtueXmCA+IHRlbicnbmVudG91XCA7Civlm5vmi43lrZAgPiB5b25ieW91c2hpXCA7Civlhpfplbfns7sgPiBqb3VjaG91a2VpXCA7Civml6XmnKzlvI8gPiBuaWhvbnNoaWtpXCA7CivmuoDlubTpvaIgPiBtYW4nJ25lbnJlaVwgOwor5raI6Ziy6ImHID4gc2hvdWJvdXRlaVwgOwor5bCP5ray6IOeID4gc2hvdWVraWhvdVwgOwor6aaW5ZSx6ICFID4gc2h1c2hvdXNoYVwgOwor5pel5pys5bmzID4gbmlob25kYWlyYVwgOwor6YmE6Z2i55quID4gdGV0c3VtZW5waVwgOwor5Li75qip5Zu9ID4gc2h1a2Vua29rdVwgOwor6LK35o6b6YeRID4ga2Fpa2FrZWtpblwgOwor55+z54Gw55+zID4gc2Vra2Fpc2VraVwgOwor57Gz5ZWP5bGLID4ga29tZWRvbicneWFcIDsKK+aAneaDs+WKhyA+IHNoaXNvdWdla2lcIDsKK+S4h+WbveawkSA+IGJhbmtva3VtaW5cIDsKK+WLp+WRiueKtiA+IGthbmtva3Vqb3VcIDsKK+aVl+WMl+aEnyA+IGhhaWJva3VrYW5cIDsKK+Wvhui8uOiIuSA+IG1pdHN1eXVzZW5cIDsKK+WPr+Wkiee/vCA+IGthaGVuJyd5b2t1XCA7CivlgY/poK3nl5sgPiBoZW50b3V0c3V1XCA7CivlubTpvaLntaYgPiBuZW5yZWlreXV1XCA7CivpgI/no4HnjocgPiB0b3VqaXJpdHN1XCA7CivljoTku4vkuosgPiB5YWtrYWlnb3RvXCA7CivkvI/lsITmv6AgPiBmdWt1c2hhZ291XCA7Civmh7jlo4XlnoIgPiBrZW4nJ3lvdXN1aVwgOwor55WM56OB5qW1ID4ga2FpamlreW9rdVwgOwor5b+c55So5YqbID4gb3V5b3VyeW9rdVwgOwor5pel5puc5pelID4gbmljaGl5b3ViaVwgOwor5raI6Ziy572yID4gc2hvdWJvdXNob1wgOwor6LKn5LmP5oCnID4gYmluYm91c2hvdVwgOwor5qC45bSp5aOKID4ga2FrdWhvdWthaVwgOwor6Kqt5pu45LyaID4gZG9rdXNob2thaVwgOwor5LiN5r2U5oSfID4gZnVrZXRzdWthblwgOwor5pWw5a2m6ICFID4gc3V1Z2FrdXNoYVwgOwor6IG05Y+W6ICFID4gY2hvdXNodXNoYVwgOwor6Kqt5pu45Lq6ID4gZG9rdXNob2ppblwgOwor5YmN5Lu75ZywID4gemVuJyduaW5jaGlcIDsKK+a8geiJsuWutiA+IGd5b3Nob2t1a2FcIDsKK+ijveS9nOiAhSA+IHNlaXNha3VzaGFcIDsKK+ayoeWAi+aApyA+IGJvdHN1a29zZWlcIDsKK+WFqOW6l+S4rSA+IHplbnRlbmNodXVcIDsKK+WumOe1puWTgSA+IGthbmt5dXVoaW5cIDsKK+eZvemHkeaXjyA+IGhha2tpbnpva3VcIDsKK+WkqeaWh+WtpiA+IHRlbm1vbmdha3VcIDsKK+WFteWtpuiAhSA+IGhlaWdha3VzaGFcIDsKK+WQiOWUsemaiiA+IGdhc3Nob3V0YWlcIDsKK+S4jeaIkOeriyA+IGZ1c2Vpcml0c3VcIDsKK+eMrue0jeWTgSA+IGtlbicnbm91aGluXCA7CivntLDnspLliIYgPiBzYWlyeXV1YnVuXCA7CivnjJvnt7Tnv5IgPiBtb3VyZW5zaHV1XCA7CivkvovlpJbnmoQgPiByZWlnYWl0ZWtpXCA7CivlirnnjofljJYgPiBrb3VyaXRzdWthXCA7CivpmaTomavoj4ogPiBqb2NodXVnaWt1XCA7CivntIXnlJ/lp5wgPiBiZW5pc2hvdWdhXCA7CivlubLmi5PlnLAgPiBrYW50YWt1Y2hpXCA7Civlh43lgrfogIUgPiB0b3VzaG91c2hhXCA7CivljZfljZfmnbEgPiBuYW4nJ25hbnRvdVwgOwor5ZCM5Zu95Lq6ID4gZG91a29rdWppblwgOwor55uu55qE6KqeID4gbW9rdXRla2lnb1wgOwor5LiJ5Zu95b+XID4gc2FuZ29rdXNoaVwgOwor5Lq654mp55S7ID4gamluYnV0c3VnYVwgOwor5ZC45YWl5ZmoID4ga3l1dW55dXVraVwgOwor6Ziy5a+S5pyNID4gYm91a2FuZnVrdVwgOwor5L+u6Zmi6ZW3ID4gc2h1dWluY2hvdVwgOwor5Zu95YaF5rOVID4ga29rdW5haWhvdVwgOwor5o6i56m26ICFID4gdGFua3l1dXNoYVwgOwor5Yid5b+D6ICFID4gc2hvc2hpbnNoYVwgOwor5pyq6ZaL55m6ID4gbWlrYWloYXRzdVwgOwor5bqD5ZGK5aGUID4ga291a29rdXRvdVwgOwor6ZaL5ouT6ICFID4ga2FpdGFrdXNoYVwgOwor5Lq66aGe5a2mID4gamlucnVpZ2FrdVwgOwor55+l5pel5rS+ID4gY2hpbmljaGloYVwgOwor5pyA6auY5r2uID4gc2Fpa291Y2hvdVwgOwor5aSp54S25rivID4gdGVuJyduZW5rb3VcIDsKK+WPjemAhuWFkCA+IGhhbmd5YWt1amlcIDsKK+S4gOWbveiAhSA+IGlra29rdW1vbm9cIDsKK+WlveadkOaWmSA+IGtvdXphaXJ5b3VcIDsKK+WkqumZveaapiA+IHRhaXlvdXJla2lcIDsKK+W4uOeUqOeZliA+IGpvdXlvdWhla2lcIDsKK+aXqeaVmeiCsiA+IHNvdWt5b3Vpa3VcIDsKK+agvOWtkOe4niA+IGtvdXNoaWppbWFcIDsKK+WPjei7jeeahCA+IGhhbmd1bnRla2lcIDsKK+iWrOWMhee0mSA+IHlha3Vob3VzaGlcIDsKK+WFteabuemVtyA+IGhlaXNvdWNob3VcIDsKK+a8ouaWh+WtpiA+IGthbmJ1bmdha3VcIDsKK+aApeWFiOmLkiA+IGt5dXVzZW5wb3VcIDsKK+WPo+Wlh+m6lyA+IGt1Y2hpZ2lyZWlcIDsKK+ihjOaUv+azlSA+IGd5b3VzZWlob3VcIDsKK+iKseiogOiRiSA+IGhhbmFrb3RvYmFcIDsKK+mAgemHkemhjSA+IHNvdWtpbmdha3VcIDsKK+axguWpmuiAhSA+IGt5dXVrb25zaGFcIDsKK+WGjeiqv+aVtCA+IHNhaWNob3VzZWlcIDsKK+miqOimi+m2jyA+IGthemFtaWRvcmlcIDsKK+Wft+aUv+WumCA+IHNoaXNzZWlrYW5cIDsKK+iDvealveWggiA+IG5vdWdha3Vkb3VcIDsKK+WlveS4i+eJqSA+IGtvdWthYnV0c3VcIDsKK+WPjOeZuuapnyA+IHNvdWhhdHN1a2lcIDsKK+WFrOWFseWCtSA+IGtvdWt5b3VzYWlcIDsKK+aYqOW5tOadpSA+IHNha3VuZW5yYWlcIDsKK+aPkOS+m+iAhSA+IHRlaWt5b3VzaGFcIDsKK+mGuOmAoOWtpiA+IGpvdXpvdWdha3VcIDsKK+W+l+eCueWcjyA+IHRva3V0ZW5rZW5cIDsKK+Wvqee+juWtpiA+IHNoaW5iaWdha3VcIDsKK+Wls+S+v+aJgCA+IG9uJyduYWJlbmpvXCA7CivlkYnmnI3niakgPiBnb2Z1a3Vtb25vXCA7Civnl4flgJnnvqQgPiBzaG91a291Z3VuXCA7CivmoLzlrZDnqpMgPiBrb3VzaGltYWRvXCA7CivmlofmmI7lm70gPiBidW5tZWlrb2t1XCA7CivooYzmlL/mqKkgPiBneW91c2Vpa2VuXCA7Civph5HmnKjnioAgPiBraW5tb2t1c2VpXCA7Civnp5HlrabnmoQgPiBrYWdha3V0ZWtpXCA7CivmiYvmnK3lnosgPiB0ZWZ1ZGFnYXRhXCA7CivlhajoiKznmoQgPiB6ZW5wYW50ZWtpXCA7Civnibnmrorpi7wgPiB0b2t1c2h1a291XCA7CivlnKfnuK7mgKcgPiBhc3NodWt1c2VpXCA7CivlrpjmiL/plbcgPiBrYW5ib3VjaG91XCA7Civnmb3noILns5YgPiBzaGlyb3phdG91XCA7CivmmKXliIbngrkgPiBzaHVuYnVudGVuXCA7Civml6fkuLvkurogPiBreXV1c2h1amluXCA7CivokYnnt5HntKAgPiB5b3VyeW9rdXNvXCA7CivlhoXpnaLnmoQgPiBuYWltZW50ZWtpXCA7CivogrrntZDmoLggPiBoYWlrZWtrYWt1XCA7Civlm57lj47ph5EgPiBrYWlzaHV1a2luXCA7Civntr/luL3lrZAgPiB3YXRhYm91c2hpXCA7CivmgKXpgLLmtL4gPiBreXV1c2hpbmhhXCA7CivoirjooZPpmaIgPiBnZWlqdXRzdWluXCA7CivmprTlvL7noLIgPiByeXV1ZGFucG91XCA7CivlhpLpmbrlv4MgPiBib3VrZW5zaGluXCA7Civlj6/nh4PniakgPiBrYW5lbmJ1dHN1XCA7Civml6XmnKzkuIAgPiBuaWhvbicnaWNoaVwgOwor5L+u57e06ICFID4gc2h1dXJlbnNoYVwgOwor5Y+N5bCE6Y+hID4gaGFuc2hha3lvdVwgOwor5LqM55u06KeSID4gbmljaG9ra2FrdVwgOwor5Z6L5aSJ5o+bID4ga2F0YWhlbmthblwgOwor5Y675Yui54mbID4ga3lvc2VpdXNoaVwgOwor54qv572q5a2mID4gaGFuemFpZ2FrdVwgOwor5Y6f57GN5ZywID4gZ2Vuc2VraWNoaVwgOwor5oCn6YGT5b6zID4gc2VpZG91dG9rdVwgOwor5bmz5ruR5YyWID4gaGVpa2F0c3VrYVwgOwor6YO15L6/566xID4geXV1YmluYmFrb1wgOwor5Y+X5L+h5paZID4ganVzaGlucnlvdVwgOwor5YaN57WE57mUID4gc2Fpc29zaGlraVwgOwor576O6KGT55WMID4gYmlqdXRzdWthaVwgOwor5LiN562J5byPID4gZnVkb3VzaGlraVwgOwor57SE5a6a5pu4ID4geWFrdWpvdXNob1wgOwor5LiJ566H5pelID4gc2FuZ2FuaWNoaVwgOwor55m656Wl5ZywID4gaGFzc2hvdWNoaVwgOwor5Yud5omL5Y+jID4ga2F0dGVndWNoaVwgOwor5aSV6aOf5b6MID4geXV1c2hva3Vnb1wgOwor5pCs5YWl5pelID4gaGFuJydueXV1YmlcIDsKK+ixquWVhuWxpCA+IGdvdXNob3Vzb3VcIDsKK+WltOixhuiFkCA+IHlha2tvZG91ZnVcIDsKK+aEn+immuirliA+IGthbmtha3Vyb25cIDsKK+WbveeUo+i7iiA+IGtva3VzYW5zaGFcIDsKK+S4jea1gemAmiA+IGZ1cnl1dXRzdXVcIDsKK+api+mgreWgoSA+IGt5b3V0b3Vob3VcIDsKK+Wkj+aZgumWkyA+IG5hdHN1amlrYW5cIDsKK+efs+eCreWxpCA+IHNla2l0YW5zb3VcIDsKK+e1ueS4gOWMuSA+IGtpbnVpcHBpa2lcIDsKK+W7uueZveabuCA+IGtlbnBha3VzaG9cIDsKK+a2iOmYsuazlSA+IHNob3Vib3Vob3VcIDsKK+S4rei/keadsSA+IGNodXVraW50b3VcIDsKK+iovOS6uuWPsCA+IHNob3VuaW5kYWlcIDsKK+awtOeUo+alrSA+IHN1aXNhbmd5b3VcIDsKK+Wlh+aDs+absiA+IGtpc291a3lva3VcIDsKK+avlOS+i+W8jyA+IGhpcmVpc2hpa2lcIDsKK+eUt+aJgOW4ryA+IG90b2tvam90YWlcIDsKK+S/ruaVtOeJiCA+IHNodXVzZWloYW5cIDsKK+WGt+awtOa1tCA+IHJlaXN1aXlva3VcIDsKK+Wkj+e+vee5lCA+IG5hdHN1YmFvcmlcIDsKK+ikkuiogOiRiSA+IGhvbWVrb3RvYmFcIDsKK+S6i+WLmeacuiA+IGppbXVkenVrdWVcIDsKK+S4u+WCrOWbvSA+IHNodXNhaWtva3VcIDsKK+Wkp+WkluWIiCA+IG9vc290b2dhcmlcIDsKK+a4heeul+S6uiA+IHNlaXNhbicnbmluXCA7CivkvY/msJHnpaggPiBqdXVtaW5oeW91XCA7CivnhKHnt5rlsYAgPiBtdXNlbmt5b2t1XCA7CivmgqrmnZDmlpkgPiBha3V6YWlyeW91XCA7Civml6XnhafoqIggPiBuaXNzaG91a2VpXCA7CivmlK/mjIHnjocgPiBzaGlqaXJpdHN1XCA7CivkuozpgKPnmbogPiBuaXJlbnBhdHN1XCA7CivlhbfosaHnmoQgPiBndXNob3V0ZWtpXCA7Civlia/mirXlvZMgPiBmdWt1dGVpdG91XCA7Civog7johpzngo4gPiBreW91bWFrdWVuXCA7CivpmaTmub/lmaggPiBqb3NoaXRzdWtpXCA7CivkuZfmj5vpp4UgPiBub3Jpa2FlZWtpXCA7Civlj6TmnKzlsYsgPiBmdXJ1aG9uJyd5YVwgOwor5beo5aSn55eHID4ga3lvZGFpc2hvdVwgOwor55+l5pel5a62ID4gY2hpbmljaGlrYVwgOwor55m955y86KaWID4gaGFrdWdhbnNoaVwgOwor54Wn5bCE5rOVID4gc2hvdXNoYWhvdVwgOwor6LWk5L+h5Y+3ID4gYWthc2hpbmdvdVwgOwor6ZW35pa55b2iID4gY2hvdWhvdWtlaVwgOwor5LiH5Zu95Y+yID4gYmFua29rdXNoaVwgOwor6YCg5YW15bugID4gem91aGVpc2hvdVwgOwor5p2x5Lqs5rm+ID4gdG91a3lvdXdhblwgOwor54us5Ym15oCnID4gZG9rdXNvdXNlaVwgOwor5pS+5rWq55mWID4gaG91cm91aGVraVwgOwor6KGM5pS/5a6YID4gZ3lvdXNlaWthblwgOwor5rKh6Laj5ZGzID4gYm90c3VzaHVtaVwgOwor6Zm26YWU5aKDID4gdG91c3Vpa3lvdVwgOwor5Y+N5bCE6KeSID4gaGFuc2hha2FrdVwgOwor5YWs55Sf5ravID4ga291c2hvdWdhaVwgOwor54m55Yq56JasID4gdG9ra291eWFrdVwgOwor5aSa6aCF5byPID4gdGFrb3VzaGlraVwgOwor6KGo5oOF562LID4gaHlvdWpvdWtpblwgOwor5Yip55uK546HID4gcmlla2lyaXRzdVwgOwor5LiJ5ouN5a2QID4gc2FuYnlvdXNoaVwgOwor6YeP6LKp5bqXID4gcnlvdWhhbnRlblwgOwor57eo6ZuG5a2QID4gaGVuc2h1dXNoaVwgOwor5YaX6ZW35oCnID4gam91Y2hvdXNlaVwgOwor6by755y86Y+hID4gaGFuYW1lZ2FuZVwgOwor5YaF6KaW6Y+hID4gbmFpc2hpa3lvdVwgOwor6LWk57+h57+gID4gYWthc2hvdWJpblwgOwor54ax5qmf6ZaiID4gbmV0c3VraWthblwgOwor5pGC6K236IW6ID4gc2V0c3Vnb3NlblwgOwor5a++5oqX562WID4gdGFpa291c2FrdVwgOwor6L+R5Luj5YqHID4ga2luZGFpZ2VraVwgOwor5b655bqV55qEID4gdGV0dGVpdGVraVwgOwor5q205Luj5Y+yID4gcmVraWRhaXNoaVwgOwor5pep6KaL6KGoID4gaGF5YW1paHlvdVwgOwor5oqV5bCE6KeSID4gdG91c2hha2FrdVwgOwor55uj552j6ICFID4ga2FudG9rdXNoYVwgOwor5YWx55Sj5ZyPID4ga3lvdXNhbmtlblwgOwor5a6f6KGM5LitID4gamlra291Y2h1dVwgOwor54yb5pS75pKDID4gbW91a291Z2VraVwgOwor6Zu75a2Q5q67ID4gZGVuc2hpa2FrdVwgOwor5p2R5b255aC0ID4gbXVyYXlha3ViYVwgOwor6Zm46Luf6aKoID4gcmlrdW5hbnB1dVwgOwor5pS/5rK76ImyID4gc2VpamlzaG9rdVwgOwor5q+N5a2Q6I2JID4gaGFoYWtvZ3VzYVwgOwor54m55b6F55SfID4gdG9rdXRhaXNlaVwgOwor5Lit55uk5oimID4gY2h1dWJhbnNlblwgOwor6Iie6LiP6Z20ID4gYnV0b3VndXRzdVwgOwor5aSn6Zmq5a+pID4gZGFpYmFpc2hpblwgOwor54Sh57iB5LuPID4gbXVlbmJvdG9rZVwgOwor6KqN5a6a6Ki8ID4gbmludGVpc2hvdVwgOwor576O6KGT5pu4ID4gYmlqdXRzdXNob1wgOwor6KiI6YeP5rOVID4ga2VpcnlvdWhvdVwgOwor5Y6f5oyv5YuVID4gZ2Vuc2hpbmRvdVwgOwor5a2m6Iq45LyaID4gZ2FrdWdlaWthaVwgOwor6ISC6IKq5b+DID4gc2hpYm91c2hpblwgOwor54u46aWC6aOpID4gdGFudWtpdWRvblwgOwor5rC055Sj5bqBID4gc3Vpc2FuY2hvdVwgOwor5ZCI5oay55qEID4gZ291a2VudGVraVwgOwor5Li75L2T55qEID4gc2h1dGFpdGVraVwgOwor56qD55uX54uCID4gc2V0dG91a3lvdVwgOwor5aWz5LiA6IisID4gb24nJ25haXBwYW5cIDsKK+axuuWLnee3miA+IGtlc3Nob3VzZW5cIDsKK+WPo+S4iuaJiyA+IGt1Y2hpam91enVcIDsKK+W3peWgtOmVtyA+IGtvdWpvdWNob3VcIDsKK+aXl+S6jOa1gSA+IGhhdGFuaXJ5dXVcIDsKK+WNs+S9jeW8jyA+IHNva3Vpc2hpa2lcIDsKK+aHkOaflOetliA+IGthaWp1dXNha3VcIDsKK+W5u+aDs+WKhyA+IGdlbnNvdWdla2lcIDsKK+S6i+WLmeWupCA+IGppbXVzaGl0c3VcIDsKK+i2heimj+WJhyA+IGNob3VraXNva3VcIDsKK+aguOWutuaXjyA+IGtha3VrYXpva3VcIDsKK+WkleaciOWknCA+IHl1dWR6dWtleW9cIDsKK+Wkp+ihhui7iiA+IGRhaXNodXVzaGFcIDsKK+eEoeexjeiAhSA+IG11c2VraW1vbm9cIDsKK+aXpeeLrOS8iiA+IG5pY2hpZG9rdWlcIDsKK+aCque/kuaFoyA+IGFrdXNodXVrYW5cIDsKK+ehq+mFuOmKhSA+IHJ5dXVzYW5kb3VcIDsKK+awtOeUo+WtpiA+IHN1aXNhbmdha3VcIDsKK+W5uOemj+aEnyA+IGtvdWZ1a3VrYW5cIDsKK+izoOWEn+mHkSA+IGJhaXNob3VraW5cIDsKK+WFseeUo+WFmiA+IGt5b3VzYW50b3VcIDsKK+iIueadv+WhgCA+IGZ1bmFpdGFiZWlcIDsKK+WFqOWtpumAoyA+IHplbmdha3VyZW5cIDsKK+ebtOi1sOi3ryA+IGNob2t1c291cm9cIDsKK+awt+ixhuiFkCA+IGtvb3JpZG91ZnVcIDsKK+WFpeWxheiAhSA+IG55dXVreW9zaGFcIDsKK+aXpemZsOiAhSA+IGhpa2FnZW1vbm9cIDsKK+e1tue4gee3miA+IHpldHN1ZW5zZW5cIDsKK+WTgeipleS8miA+IGhpbnB5b3VrYWlcIDsKK+awtOeTtuW6pyA+IG1penVnYW1lemFcIDsKK+WQhOWbo+S9kyA+IGtha3VkYW50YWlcIDsKK+adpeadpemAsSA+IHJhaXJhaXNodXVcIDsKK+Wbm+WNgembgCA+IHNoaWp1dWthcmFcIDsKK+mAmueUqOmWgCA+IHRzdXV5b3Vtb25cIDsKK+eIqualiuaenSA+IHRzdW1heW91amlcIDsKK+aVo+mrquWxiyA+IHNhbnBhdHN1eWFcIDsKK+agoeato+WItyA+IGtvdXNlaXp1cmlcIDsKK+m7kuecvOmPoSA+IGt1cm9tZWdhbmVcIDsKK+mAoOiIuealrSA+IHpvdXNlbmd5b3VcIDsKK+ims+WKh+S8miA+IGthbmdla2lrYWlcIDsKK+WFrOWus+eXhSA+IGtvdWdhaWJ5b3VcIDsKK+WPl+S/oeWBtCA+IGp1c2hpbmdhd2FcIDsKK+S8gealreW/gyA+IGtpZ3lvdXNoaW5cIDsKK+S/rue5leW3pSA+IHNodXV6ZW5rb3VcIDsKK+WNmOi6q+mKgyA+IHRhbnNoaW5qdXVcIDsKK+eZvuW5tOebriA+IGh5YWt1bmVubWVcIDsKK+ayoeeQhuaDsyA+IGJvdHN1cmlzb3VcIDsKK+mdmeiEiOeCjiA+IGpvdW15YWt1ZW5cIDsKK+WFqOiDveiAhSA+IHplbicnbm91c2hhXCA7CivlkYnmnI3llYYgPiBnb2Z1a3VzaG91XCA7CivnnIHos4fmupAgPiBzaG91c2hpZ2VuXCA7Civpm4blkIjoq5YgPiBzaHV1Z291cm9uXCA7CivnpoHnhZnluK0gPiBraW4nJ2Vuc2VraVwgOwor6ZW35pa55L2TID4gY2hvdWhvdXRhaVwgOwor5Y+X5L+h5Lq6ID4ganVzaGluJyduaW5cIDsKK+aXl+S6jOaXkiA+IGhhdGFuaXJ5dXVcIDsKK+aApeWBnOi7iiA+IGt5dXV0ZWlzaGFcIDsKK+eznuW6puiDuCA+IGt1c29kb2t5b3VcIDsKK+a2iOmYsuWjqyA+IHNob3Vib3VzaGlcIDsKK+acieeQhuW8jyA+IHl1dXJpc2hpa2lcIDsKK+e1guWIl+i7iiA+IHNodXVyZXNzaGFcIDsKK+aJgOacieagvCA+IHNob3l1dWtha3VcIDsKK+efpeimmuefpSA+IGNoaWtha3VjaGlcIDsKK+mBiuaSg+aJiyA+IHl1dWdla2lzaHVcIDsKK+ino+eGseWJpCA+IGdlbmV0c3V6YWlcIDsKK+W6l+Wxi+eJqSA+IHRlbicneWFtb25vXCA7CivpgYrmkoPmiKYgPiB5dXVnZWtpc2VuXCA7CivlsbHmsLTplqMgPiBzYW5zdWlrYWt1XCA7CivoqqzmlZnluKsgPiBzZWtreW91c2hpXCA7Civls7bluJ3lm70gPiB0b3V0ZWlrb2t1XCA7CivljZHliqPmvKIgPiBoaXJldHN1a2FuXCA7CivlhajnlJ/mtq8gPiB6ZW5zaG91Z2FpXCA7CivlhajkvJrooYYgPiB6ZW5rYWlzaHV1XCA7Civlj47lrrnogIUgPiBzaHV1eW91c2hhXCA7Civop6Ppm4blkIggPiBrYWlzaHV1Z291XCA7Civnm7jlr77nmoQgPiBzb3V0YWl0ZWtpXCA7Civnn7PngbDkubMgPiBzZWtrYWlueXV1XCA7CivlhbHmnInogIUgPiBreW91eXV1c2hhXCA7CivmjIflrprluK0gPiBzaGl0ZWlzZWtpXCA7CivllYblk4HlkI0gPiBzaG91aGlubWVpXCA7CivmoLnmnKznmoQgPiBrb25wb250ZWtpXCA7Civnvo7ooZPlsZUgPiBiaWp1dHN1dGVuXCA7CivnuJ7mqKHmp5ggPiBzaGltYW1veW91XCA7CivmtojpmLLlm6MgPiBzaG91Ym91ZGFuXCA7Civkub7okaHokIQgPiBob3NoaWJ1ZG91XCA7Civnvr3moLnou4ogPiBoYW5lZ3VydW1hXCA7Civnmbrli5XmqZ8gPiBoYXRzdWRvdWtpXCA7Civpl5jniZvlo6sgPiB0b3VneXV1c2hpXCA7CivlkIzmg4XnpaggPiBkb3Vqb3VoeW91XCA7CivlhaXkvJrph5EgPiBueXV1a2Fpa2luXCA7CivnhrHnoazljJYgPiBuZXRzdWtvdWthXCA7Civpl5jniZvloLQgPiB0b3VneXV1am91XCA7Civlj43lr77npaggPiBoYW50YWloeW91XCA7CivlhrfljbTlmaggPiByZWlreWFrdWtpXCA7CivlgJ/lhaXph5EgPiBrYXJpaXJla2luXCA7CivllYblk4HliLggPiBzaG91aGlua2VuXCA7CivmrZPmpb3ooZcgPiBrYW5yYWt1Z2FpXCA7CivnoJTliYrnm6QgPiBrZW5zYWt1YmFuXCA7CivmnKznsY3lnLAgPiBob25zZWtpY2hpXCA7CivmsJfmrJ3nl4cgPiBraXV0c3VzaG91XCA7CivmgYvlpbPmiL8gPiBrb2lueW91Ym91XCA7CivohLPnpZ7ntYwgPiBub3VzaGlua2VpXCA7CivohqDljp/nl4UgPiBrb3VnZW5ieW91XCA7Civnib3liLbnkIMgPiBrZW5zZWlreXV1XCA7CivmlrDpgKDoiLkgPiBzaGluem91c2VuXCA7CivmhJ/opprngrkgPiBrYW5rYWt1dGVuXCA7Civlgb3lkJvlrZAgPiBuaXNla3Vuc2hpXCA7Civmsbrli53ngrkgPiBrZXNzaG91dGVuXCA7CivlpJrmlbDmsbogPiB0YXN1dWtldHN1XCA7CivmhI/orZjnmoQgPiBpc2hpa2l0ZWtpXCA7Civlj43lsITnmoQgPiBoYW5zaGF0ZWtpXCA7CivkuI3mtLvnmbogPiBmdWthcHBhdHN1XCA7Civlj5fpoJjoqLwgPiBqdXJ5b3VzaG91XCA7CivntJTmloflraYgPiBqdW5idW5nYWt1XCA7CivnibnmgKXliLggPiB0b2treXV1a2VuXCA7Civpu4Tph5HooZMgPiBvdWdvbmp1dHN1XCA7Civku67li5jlrpogPiBrYXJpa2Fuam91XCA7CivpnIrplbfpoZ4gPiByZWljaG91cnVpXCA7Civlhajouqvlg48gPiB6ZW5zaGluem91XCA7Civlr4bovLjlk4EgPiBtaXRzdXl1aGluXCA7Civml6LoqK3nt5ogPiBraXNldHN1c2VuXCA7CivkuozpgKPlvI8gPiBuaXJlbnNoaWtpXCA7CivmuJvpgJ/mnZAgPiBnZW5zb2t1emFpXCA7CivlhYnno4HmsJcgPiBoaWthcmlqaWtpXCA7CivoqLzmmI7mm7ggPiBzaG91bWVpc2hvXCA7Civplovmi5PlnLAgPiBrYWl0YWt1Y2hpXCA7CivoqJjov7DlrZAgPiBraWp1dHN1c2hpXCA7Civku67lhY3oqLEgPiBrYXJpbWVua3lvXCA7CivljbDosaHnmoQgPiBpbnNob3V0ZWtpXCA7Civml6fmlZnlvpIgPiBreXV1a3lvdXRvXCA7Civosqjniankvr8gPiBrYW1vdHN1YmluXCA7CivmnInmnJvmoKogPiB5dXVib3VrYWJ1XCA7CivmhaPkvovnmoQgPiBrYW5yZWl0ZWtpXCA7CivoprPnm7jlraYgPiBrYW5zb3VnYWt1XCA7CivogonnlKjnqK4gPiBuaWt1eW91c2h1XCA7Civln7rlnLDlsYAgPiBraWNoaWt5b2t1XCA7CivoppbnpZ7ntYwgPiBzaGlzaGlua2VpXCA7Civpganlv5znl4cgPiB0ZWtpb3VzaG91XCA7CivkuK3pq5jnlJ8gPiBjaHV1a291c2VpXCA7CivkuIvmupblgpkgPiBzaGl0YWp1bmJpXCA7Civkv6HpoLzmhJ8gPiBzaGlucmFpa2FuXCA7CivnmbrphbXkubMgPiBoYWtrb3VueXV1XCA7Civml4XoirjkurogPiB0YWJpZ2VpbmluXCA7Civkurrpm6rltKkgPiBoaXRvbmFkYXJlXCA7CivkuLvkv6Hlj7cgPiBzaHVzaGluZ291XCA7Civkv6HlpYnogIUgPiBzaGlucG91c2hhXCA7CivlsLrosqvms5UgPiBzaGFra2FuaG91XCA7Civnvo7ooZPlk4EgPiBiaWp1dHN1aGluXCA7CivpgJrkv6HosrsgPiB0c3V1c2hpbmhpXCA7Civkv6HpoLzmgKcgPiBzaGlucmFpc2VpXCA7CivmhJ/opprmr5sgPiBrYW5rYWt1bW91XCA7CivpoIblv5zmgKcgPiBqdW4nJ25vdXNlaVwgOwor5bi457+S6ICFID4gam91c2h1dXNoYVwgOwor576O6KGT5Y+yID4gYmlqdXRzdXNoaVwgOwor5qqA6YKj5a+6ID4gZGFuJyduYWRlcmFcIDsKK+WNg+ats+mjtCA+IGNoaXRvc2VhbWVcIDsKK+ijveadkOalrSA+IHNlaXphaWd5b3VcIDsKK+aWsOapn+i7uCA+IHNoaW5raWppa3VcIDsKK+iCiemlhemgrSA+IG5pa3VtYW5qdXVcIDsKK+awtOizh+a6kCA+IG1penVzaGlnZW5cIDsKK+eZvemzpeW6pyA+IGhha3VjaG91emFcIDsKK+eZvuWIhuavlCA+IGh5YWt1YnVuaGlcIDsKK+ippumHkeefsyA+IHNoaWtpbnNla2lcIDsKK+WEquetieizniA+IHl1dXRvdXNob3VcIDsKK+Wkp+ihhue0mSA+IHRhaXNodXVzaGlcIDsKK+iKseimi+aZgiA+IGhhbmFtaWRva2lcIDsKK+Whl+aTpuWJpCA+IHRvc2F0c3V6YWlcIDsKK+acqOijveWTgSA+IG1va3VzZWloaW5cIDsKK+WGheinkueQgyA+IG5haWtha2t5dXVcIDsKK+mlkuiIjOWutiA+IGpvdXpldHN1a2FcIDsKK+eGseWHpueQhiA+IG5ldHN1c2hvcmlcIDsKK+aWsOW5uee3miA+IHNoaW5rYW5zZW5cIDsKK+WLleWQkeihqCA+IGRvdWtvdWh5b3VcIDsKK+S6pOmfv+ipqSA+IGtvdWt5b3VzaGlcIDsKK+aMqOaLtueKtiA+IGFpc2F0c3Vqb3VcIDsKK+mZpeayoea5liA+IGthbmJvdHN1a29cIDsKK+S4jea0u+a6jCA+IGZ1a2FwcGF0c3VcIDsKK+S/oeWkqee/gSA+IHNoaW50ZW4nJ291XCA7Civotbfpm7vlipsgPiBraWRlbnJ5b2t1XCA7Civpjq7prYLnpa0gPiBjaGlua29uc2FpXCA7CivoiLbmnaXlk4EgPiBoYWt1cmFpaGluXCA7CivmiYvloannmr8gPiB0ZXNoaW96YXJhXCA7Civpu5LlupXnv7MgPiBrdXJvc29rb2hpXCA7CivlrabnlJ/luL0gPiBnYWt1c2VpYm91XCA7CivmsLTmoL3ln7kgPiBtaXp1c2FpYmFpXCA7CivllrbpgKDniakgPiBlaXpvdWJ1dHN1XCA7Civml6XnhafmqKkgPiBuaXNzaG91a2VuXCA7CivlhYnph4/lrZAgPiBrb3VyeW91c2hpXCA7CivkuIfmhJrnr4AgPiBiYW5ndXNldHN1XCA7Civog73ni4LoqIAgPiBub3VreW91Z2VuXCA7CivmlK/mjIHlipsgPiBzaGlqaXJ5b2t1XCA7CivntbHoqIjooaggPiB0b3VrZWloeW91XCA7CivlhYjlj7LlraYgPiBzZW5zaGlnYWt1XCA7CivnoavphbjntJkgPiByeXV1c2Fuc2hpXCA7CivmgKflt67liKUgPiBzZWlzYWJldHN1XCA7CivmnKzlm73kurogPiBob25nb2t1amluXCA7Civlt6joppbnmoQgPiBreW9zaGl0ZWtpXCA7Civou6LovY3mqZ8gPiB0ZW50ZXRzdWtpXCA7Civooajlv6DnopEgPiBoeW91Y2h1dWhpXCA7Civlj47os4TnvaogPiBzaHV1d2FpemFpXCA7CivolqzliaTluKsgPiB5YWt1emFpc2hpXCA7CivlvozopovkurogPiBrb3VrZW4nJ25pblwgOwor6YCj55So5b2iID4gcmVuJyd5b3VrZWlcIDsKK+S9meeZveazqCA+IHlvaGFrdWNodXVcIDsKK+S8nee1seeahCA+IGRlbnRvdXRla2lcIDsKK+imquaoqeiAhSA+IHNoaW5rZW5zaGFcIDsKK+WGhuWkqeS6lSA+IG1hcnV0ZW5qb3VcIDsKK+WwkeW5tOmZoiA+IHNob3VuZW4nJ2luXCA7CivmrbTpnZLngq0gPiByZWtpc2VpdGFuXCA7CivooI/lt6XoiLkgPiBrYW5pa291c2VuXCA7Civnm67lhavliIYgPiBtZWhhY2hpYnVuXCA7Civlm5vljYHogqkgPiBzaGlqdXVrYXRhXCA7Civmpb3oprPnmoQgPiByYWtrYW50ZWtpXCA7Civlv4PlgZzmraIgPiBzaGludGVpc2hpXCA7CivpgJ/lsITnoLIgPiBzb2t1c2hhaG91XCA7CivlpJrop5LnmoQgPiB0YWtha3V0ZWtpXCA7CivmlrDlu7rmnZAgPiBzaGlua2VuemFpXCA7Civmsbrli53miKYgPiBrZXNzaG91c2VuXCA7CivkuI3lv4XopoEgPiBmdWhpdHN1eW91XCA7CivmiYHpnZLnn7MgPiBoZW5zZWlzZWtpXCA7Civlj4znkIPoj4wgPiBzb3VreXV1a2luXCA7CivmsLTnvornvq4gPiBtaXp1eW91a2FuXCA7CivmipzmnKznmoQgPiBiYXBwb250ZWtpXCA7CivljZjnmbrmqZ8gPiB0YW5wYXRzdWtpXCA7Civou6LpgIHlhYggPiB0ZW5zb3VzYWtpXCA7CivlhaXkvJrogIUgPiBueXV1a2Fpc2hhXCA7CivkuLjmnKjoiLkgPiBtYXJ1a2lidW5lXCA7CivkuLjmnKjoiJ8gPiBtYXJ1a2lidW5lXCA7CivluIzph4jmtrIgPiBraXNoYWt1ZWtpXCA7CivmnIjmm5zml6UgPiBnZXRzdXlvdWJpXCA7CivmnIDos4Pms5UgPiBzYWljaGluaG91XCA7CivpnanmlrDmtL4gPiBrYWt1c2hpbmhhXCA7CivmjqLmsYLogIUgPiB0YW5reXV1c2hhXCA7CivmiKbnl4XmrbsgPiBzZW5ieW91c2hpXCA7CivnlLfmgKfnmoQgPiBkYW5zZWl0ZWtpXCA7CivkubPphbjoj4wgPiBueXV1c2Fua2luXCA7CivliY3nhafnga8gPiB6ZW5zaG91dG91XCA7Civohbjmjbvou6IgPiBjaG91bmVudGVuXCA7CivopqrliIbmoKogPiBveWFidW5rYWJ1XCA7CivlrabnlKjlk4EgPiBnYWt1eW91aGluXCA7CivnibnmrormgKcgPiB0b2t1c2h1c2VpXCA7CivljZjoibLnlLsgPiB0YW5zaG9rdWdhXCA7Civku5Xnq4vliLggPiBzaGl0YXRla2VuXCA7CivpmbDlvIHmhbYgPiBrYWdlYmVua2VpXCA7Civmt7fooYDlhZAgPiBrb25rZXRzdWppXCA7Civosqnlo7LlhYMgPiBoYW5iYWltb3RvXCA7CivluLjnv5Lniq8gPiBqb3VzaHV1aGFuXCA7CivmuIXmtrzliaQgPiBzZWlyeW91emFpXCA7CivmnIDlsI/lgKQgPiBzYWlzaG91Y2hpXCA7CivmsLTml4/ppKggPiBzdWl6b2t1a2FuXCA7CivlhbHniq/ogIUgPiBreW91aGFuc2hhXCA7Civlr7/lj7jpo68gPiBzdXNoaW1lc2hpXCA7CivmgKXou6Lmj5sgPiBreXV1dGVua2FuXCA7Civmi5vlvoXnirYgPiBzaG91dGFpam91XCA7CivmiZPmkrLlgrcgPiBkYWJva3VzaG91XCA7CivnibnlvoXliLggPiB0b2t1dGFpa2VuXCA7Civmr5Lkurrlj4IgPiBkb2t1bmluamluXCA7CivlpKnnq7rokbUgPiB0ZW5qaWt1YW9pXCA7CivlpbPkuJbluK8gPiBvbicnbmFqb3RhaVwgOwor5Lq66ZaT55qEID4gbmluZ2VudGVraVwgOwor6Ki65pat5pu4ID4gc2hpbmRhbnNob1wgOwor6Jia6IuU5a2mID4gc2VudGFpZ2FrdVwgOwor5Y6f56i/5paZID4gZ2Vua291cnlvdVwgOwor55uj552j5a6YID4ga2FudG9rdWthblwgOwor5ZWG5YuZ55yBID4gc2hvdW11c2hvdVwgOwor5a6j5ZGK5pu4ID4gc2Vua29rdXNob1wgOwor5aSc5aSc5LitID4geW9ydXlvbmFrYVwgOwor6YCa5L+h57C/ID4gdHN1dXNoaW5ib1wgOwor5aCG56mN5bKpID4gdGFpc2VraWdhblwgOwor5oqR55WZ5omAID4geW9rdXJ5dXVqb1wgOwor5pKe5pyo5p2WID4gc2h1bW9rdXp1ZVwgOwor6buE6YeR546HID4gb3Vnb25yaXRzdVwgOwor5aCG56mN5bGkID4gdGFpc2VraXNvdVwgOwor5ZCI5ZSx5ZujID4gZ2Fzc2hvdWRhblwgOwor5aW95pW15omLID4ga291dGVraXNodVwgOwor5paH56ug6aGMID4gYnVuc2hvdWRhaVwgOwor6YeR54mp5bGLID4ga2FuYW1vbm95YVwgOwor5Zuj6I+K56WtID4gZGFuZ2lrdXNhaVwgOwor57ep6KGd5rayID4ga2Fuc2hvdWVraVwgOwor5a+E5a6/6IiOID4ga2lzaHVrdXNoYVwgOwor5r2c5pyb6Y+hID4gc2VuYm91a3lvdVwgOwor5paw5bem57+8ID4gc2hpbnNheW9rdVwgOwor6YGh5Y+K55qEID4gc29reXV1dGVraVwgOwor5ZCM5oOF5b+DID4gZG91am91c2hpblwgOwor5LiL56i95Y+kID4gc2hpdGFnZWlrb1wgOwor56u25LqJ6ICFID4ga3lvdXNvdXNoYVwgOwor5ZWG5bqX6KGXID4gc2hvdXRlbmdhaVwgOwor546J5omL566xID4gdGFtYXRlYmFrb1wgOwor5LiK5Y2K6LqrID4gam91aGFuc2hpblwgOwor5ris5a6a5rOVID4gc29rdXRlaWhvdVwgOwor6ZmN5Zyn5YmkID4ga291YXRzdXphaVwgOwor5oCl5YK+5pacID4ga3l1dWtlaXNoYVwgOwor5Lih5qOy6aGeID4gcnlvdXNlaXJ1aVwgOwor5pyA5LiK57SaID4gc2Fpam91a3l1dVwgOwor5YGD5pyI5YiAID4gZW5nZXRzdXRvdVwgOwor55yL6K235Y2SID4ga2FuZ29zb3RzdVwgOwor572r57ea6KGoID4ga2Vpc2VuaHlvdVwgOwor6Yed5Zyf56ucID4gaGFyaW1vZ3VyYVwgOwor54Gv5Y+w5a6IID4gdG91ZGFpbW9yaVwgOwor5Luu5YWN54q2ID4ga2FyaW1lbmpvdVwgOwor5by+6Jas5bqrID4gZGFuJyd5YWt1a29cIDsKK+WQiOazleeahCA+IGdvdWhvdXRla2lcIDsKK+aMq+aKmOaEnyA+IHphc2V0c3VrYW5cIDsKK+W5suiRoeiQhCA+IGhvc2hpYnVkb3VcIDsKK+i1pOaWsOiBniA+IGFrYXNoaW5idW5cIDsKK+iGoOedgOiqniA+IGtvdWNoYWt1Z29cIDsKK+e1guatouW9oiA+IHNodXVzaGlrZWlcIDsKK+WHuua4r+iIuSA+IHNodWtrb3VzZW5cIDsKK+i8uOWFpemhjSA+IHl1bnl1dWdha3VcIDsKK+eUsuauu+mhniA+IGtvdWtha3VydWlcIDsKK+manOWjgeeUuyA+IHNob3VoZWtpZ2FcIDsKK+a6tuaOpeapnyA+IHlvdXNldHN1a2lcIDsKK+S5l+e1hOWToSA+IG5vcmlrdW1paW5cIDsKK+iFjuiHk+eXhSA+IGppbnpvdWJ5b3VcIDsKK+WPr+aQrOW8jyA+IGthaGFuc2hpa2lcIDsKK+WBpeethuWutiA+IGtlbnBpdHN1a2FcIDsKK+ato+S4ree3miA+IHNlaWNodXVzZW5cIDsKK+WNg+W5tOmWkyA+IHNlbicnbmVua2FuXCA7Civmo5Lno4Hnn7MgPiBib3VqaXNoYWt1XCA7CivoprPos57prZogPiBrYW5zaG91Z3lvXCA7CivnpZ7lrabmoKEgPiBzaGluZ2Fra291XCA7CivkvZzmpa3mnI0gPiBzYWd5b3VmdWt1XCA7CivnmbrnnYDmiYAgPiBoYXRjaGFrdWpvXCA7Civopqrov5HmhJ8gPiBzaGlua2lua2FuXCA7CivkubHms6XmtYEgPiByYW5kZWlyeXV1XCA7CivlvZPnm7Tlk6EgPiB0b3VjaG9rdWluXCA7CivntbHoqIjnmoQgPiB0b3VrZWl0ZWtpXCA7CivoirjooZPlrrYgPiBnZWlqdXRzdWthXCA7CivnjoTplqLlhYggPiBnZW5rYW5zYWtpXCA7Civmt7HmtbfprZogPiBzaGlua2FpZ3lvXCA7CivlkIzlv5fnmoQgPiBkb3VzaGl0ZWtpXCA7CivkvqHljYPph5EgPiBhdGFpc2Vua2luXCA7CivkuZ3lm57miKYgPiBreXV1a2Fpc2VuXCA7CivljYrmsLjkuYUgPiBoYW4nJ2Vpa3l1dVwgOwor6ZuR5b255ammID4gemF0c3Vla2lmdVwgOwor5Ya35YeN5qWtID4gcmVpdG91Z3lvdVwgOwor5Lih55Sf6aGeID4gcnlvdXNlaXJ1aVwgOwor5YSS5pWZ55qEID4ganVreW91dGVraVwgOwor5o+a6Zm46ImmID4geW91cmlrdWthblwgOwor6YeN6Ky55oWOID4ganV1a2luc2hpblwgOwor5YeN6LGG6IWQID4gc2hpbWlkb3VmdVwgOwor5rC46LC35ZySID4gbmFnYXRhbmllblwgOwor5LqM5qe95byPID4gbmlzb3VzaGlraVwgOwor55u45LmX56mNID4gc291am91c2VraVwgOwor6I+M6aGe5a2mID4ga2lucnVpZ2FrdVwgOwor6ZuR5b255aSrID4gemF0c3Vla2lmdVwgOwor5paw5YiK5pu4ID4gc2hpbmthbnNob1wgOwor6Z2S5bCR5bm0ID4gc2Vpc2hvdW5lblwgOwor5o6o6YCy6ICFID4gc3Vpc2hpbnNoYVwgOwor5YiX5bit6ICFID4gcmVzc2VraXNoYVwgOwor5Zu955Sj5ZOBID4ga29rdXNhbmhpblwgOwor5oeQ5pen6KuHID4ga2Fpa3l1dWRhblwgOwor5p6v6I2J54axID4ga29zb3VuZXRzdVwgOwor5Lit55Sy5p2/ID4gY2h1dWthbnBhblwgOwor57a/5a6f5rK5ID4gbWVuaml0c3V5dVwgOwor5Z+L5LyP5q2vID4gbWFpZnVrdXNoaVwgOwor5YaF57eS5LqLID4gbmFpc2hvZ290b1wgOwor5LiA562J5Y2SID4gaXR0b3Vzb3RzdVwgOwor56We5Luj5p2JID4gamluZGFpc3VnaVwgOwor5YCk5bWp5qCqID4gbmVnYXNha2FidVwgOwor5pS/5rK75YqbID4gc2VpamlyeW9rdVwgOwor562U55Sz5pu4ID4gdG91c2hpbnNob1wgOwor5Lmx5b+D6ICFID4gcmFuc2hpbnNoYVwgOwor5Lq66ZaT5qWtID4gbmluZ2Vud2F6YVwgOwor5YWx6KyA6ICFID4ga3lvdWJvdXNoYVwgOwor5p2l6LOT5bitID4gcmFpaGluc2VraVwgOwor6Iie6LiP5puyID4gYnV0b3VreW9rdVwgOwor5L+u6KGM6ICFID4gc2h1Z3lvdXNoYVwgOwor5bO25qC555yMID4gc2hpbWFuZWtlblwgOwor5by356Gs6KuWID4ga3lvdWtvdXJvblwgOwor5rOV5rK75Zu9ID4gaG91Y2hpa29rdVwgOwor5LiN5b6X562WID4gZnV0b2t1c2FrdVwgOwor5Zyo57Gz5LitID4gemFpYmVpY2h1dVwgOwor5Yy/5ZCN5oCnID4gdG9rdW1laXNlaVwgOwor55m75bGx6Z20ID4gdG96YW5ndXRzdVwgOwor5bqn5pW354miID4gemFzaGlraXJvdVwgOwor56We5qC85YyWID4gc2hpbmtha3VrYVwgOwor6LWk5aSW57eaID4gc2VraWdhaXNlblwgOwor6Jas55So6YWSID4geWFrdXlvdXNodVwgOwor57WQ5qC46I+MID4ga2Vra2FrdWtpblwgOwor6I2J5bGl6JmrID4gem91cmltdXNoaVwgOwor5aSn6KGG5oCnID4gdGFpc2h1dXNlaVwgOwor5a+E5a6/55SfID4ga2lzaHVrdXNlaVwgOwor5piH5rGe5rC0ID4gc2hvdWtvdXN1aVwgOwor5q2m6ICF5oWEID4gbXVzaGFidXJ1aVwgOwor5paH56ug6KuWID4gYnVuc2hvdXJvblwgOwor54m56YG45ZOBID4gdG9rdXNlbmhpblwgOwor6L+R6Kaq6ICFID4ga2luc2hpbnNoYVwgOwor6KSH5pWw5b2iID4gZnVrdXN1dWtlaVwgOwor5bm96YKD5aKDID4geXV1c3Vpa3lvdVwgOwor5YaN5oqV56WoID4gc2FpdG91aHlvdVwgOwor5LiN5rS75YuVID4gZnVrYXRzdWRvdVwgOwor5YWo5a+u5Yi2ID4gemVucnlvdXNlaVwgOwor6L+95oK85LyaID4gdHN1aXRvdWthaVwgOwor55m95YW15oimID4gaGFrdWhlaXNlblwgOwor6KuL5rGC5qipID4gc2Vpa3l1dWtlblwgOwor5b+g6ZyK5aGUID4gY2h1dXJlaXRvdVwgOwor6ZqZ6ZaT6aKoID4gc3VraW1ha2F6ZVwgOwor5YWx5pyJ5ZywID4ga3lvdXl1dWNoaVwgOwor54mH54K65pu/ID4ga2F0YWdhd2FzZVwgOwor57ep6KGd5byBID4ga2Fuc2hvdWJlblwgOwor5a6/5qC56I2JID4gc2h1a2tvbnNvdVwgOwor5aSn56uL6ICFID4gb29kYXRlbW9ub1wgOwor5rOw5bGx5pyoID4gdGFpc2FuYm9rdVwgOwor5oq957Gk5Yi4ID4gY2h1dXNlbmtlblwgOwor57O454q26JmrID4gc2hpam91Y2h1dVwgOwor57W257iB5L2TID4gemV0c3VlbnRhaVwgOwor6Z2S5p6c54mpID4gc2Vpa2FidXRzdVwgOwor6YeM6KiA6JGJID4gc2F0b2tvdG9iYVwgOwor6LO86Kqt6ICFID4ga291ZG9rdXNoYVwgOwor5aOy6LK36auYID4gYmFpYmFpZGFrYVwgOwor5oy66YCy6ZqKID4gdGVpc2hpbnRhaVwgOwor6ISx5rC055eHID4gZGFzc3Vpc2hvdVwgOwor5Yun6YCy5bizID4ga2FuamluY2hvdVwgOwor5ouh5by15YyWID4ga2FrdWNob3VrYVwgOwor5q665Lq66ay8ID4gc2F0c3VqaW5raVwgOwor5rWB5YuV5oCnID4gcnl1dWRvdXNlaVwgOwor5Zub6YeN5ZSxID4gc2hpanV1c2hvdVwgOwor5pWZ6IKy6ICFID4ga3lvdWlrdXNoYVwgOwor5Y+N5a++5YG0ID4gaGFudGFpZ2F3YVwgOwor55C05LiA5by1ID4ga290b2l0Y2hvdVwgOwor5YaF5Zyo55qEID4gbmFpemFpdGVraVwgOwor5LiJ5q616LezID4gc2FuZGFudG9iaVwgOwor6aOb6LqN55qEID4gaGl5YWt1dGVraVwgOwor5omL6ZW354y/ID4gdGVuYWdhemFydVwgOwor6ICB55y86Y+hID4gcm91Z2Fua3lvdVwgOwor5Luu5Yem5YiGID4ga2FyaXNob2J1blwgOwor5YWo5Lq65qC8ID4gemVuamlua2FrdVwgOwor5YiG5rOM54mpID4gYnVucGlidXRzdVwgOwor6KuL5rGC5pu4ID4gc2Vpa3l1dXNob1wgOwor5LiN5rG65patID4gZnVrZXRzdWRhblwgOwor5YWI5YWI6YCxID4gc2Vuc2Vuc2h1dVwgOwor6Ie05ZG955qEID4gY2hpbWVpdGVraVwgOwor5Lmz55+z6IuxID4gbnl1dXNla2llaVwgOwor6LKh5pS/5a2mID4gemFpc2VpZ2FrdVwgOwor566h5bym5qW9ID4ga2FuZ2VuZ2FrdVwgOwor6aOy6aOf5bqXID4gaW5zaG9rdXRlblwgOwor57SZ6KO95ZOBID4ga2FtaXNlaWhpblwgOwor6buE6YeR5b6LID4gb3Vnb25yaXRzdVwgOwor5rOV5b6L5qGIID4gaG91cml0c3VhblwgOwor5Y2K55uy55eHID4gaGFubW91c2hvdVwgOwor56Gd6YW46YqAID4gc2hvdXNhbmdpblwgOwor6Ziy57eP55yBID4gYm91c291c2hvdVwgOwor6YCG5q+U5L6LID4gZ3lha3VoaXJlaVwgOwor5oqV5pu4566xID4gdG91c2hvYmFrb1wgOwor5Z+O5LiL55S6ID4gam91a2FtYWNoaVwgOwor54m55Yil5aeUID4gdG9rdWJldHN1aVwgOwor5p2R6Iqd5bGFID4gbXVyYXNoaWJhaVwgOwor57aZ5oGv5a2QID4gbWFtYW11c3Vrb1wgOwor55m65L+h6Z+zID4gaGFzc2hpbicnb25cIDsKK+Wbm+atu+eQgyA+IHNoaXNoaWt5dXVcIDsKK+eMrumHkeeusSA+IGtlbmtpbmJha29cIDsKK+aIpueVpeWutiA+IHNlbnJ5YWt1a2FcIDsKK+WFrOiBtOS8miA+IGtvdWNob3VrYWlcIDsKK+awl+msseeXhyA+IGtpdXRzdXNob3VcIDsKK+ikh+aVsOWbniA+IGZ1a3VzdXVrYWlcIDsKK+S8muioiOWtpiA+IGthaWtlaWdha3VcIDsKK+ewoeeVpeWMliA+IGthbnJ5YWt1a2FcIDsKK+e1pumbu+e3miA+IGt5dXVkZW5zZW5cIDsKK+WQieelpeWkqSA+IGtpc3Nob3V0ZW5cIDsKK+W+oeW9seefsyA+IG1pa2FnZWlzaGlcIDsKK+WGheWbveeUoyA+IG5haWtva3VzYW5cIDsKK+mbquaciOiKsSA+IHNldHN1Z2Vra2FcIDsKK+engeabuOeusSA+IHNoaXNob2Jha29cIDsKK+ebtOaYoOmkqCA+IGNob2t1ZWlrYW5cIDsKK+eXheeQhuWtpiA+IGJ5b3VyaWdha3VcIDsKK+W+qeWIu+eJiCA+IGZ1a2tva3ViYW5cIDsKK+mAgOW7g+eahCA+IHRhaWhhaXRla2lcIDsKK+S6uumWk+WtpiA+IG5pbmdlbmdha3VcIDsKK+S4i+edgOmhniA+IHNoaXRhZ2lydWlcIDsKK+WUkOWkieacqCA+IHRvdWhlbmJva3VcIDsKK+e3muaSruW9sSA+IHNlbnNhdHN1ZWlcIDsKK+aWsOeUn+mdoiA+IHNoaW5zZWltZW5cIDsKK+aVsOaXpeW+jCA+IHN1dWppdHN1Z29cIDsKK+i2heWQiOmHkSA+IGNob3Vnb3VraW5cIDsKK+WkmuWbveexjSA+IHRha29rdXNla2lcIDsKK+epjeeul+azlSA+IHNla2lzYW5ob3VcIDsKK+WklueCuuazlSA+IGdhaXRhbWVob3VcIDsKK+WHuuWTgeiAhSA+IHNodXBwaW5zaGFcIDsKK+immumGkuWJpCA+IGtha3VzZWl6YWlcIDsKK+mrmOWxseidtiA+IGtvdXphbmNob3VcIDsKK+i/kee4geWxniA+IGtpbicnZW56b2t1XCA7CivkuIrpgZTpg6ggPiBrYW5kYWNoaW1lXCA7Civlj6/pjZvpiYQgPiBrYXRhbnRldHN1XCA7Civlv4PnkIbnmoQgPiBzaGlucml0ZWtpXCA7CivkuZfmj5vliLggPiBub3Jpa2Fla2VuXCA7CivmlZnogrLnlYwgPiBreW91aWt1a2FpXCA7CivpmbDmpbXnt5ogPiBpbmt5b2t1c2VuXCA7CivljYroiYfouqsgPiBoYW50ZWlzaGluXCA7CivopqrlhYTlvJ8gPiBveWFreW91ZGFpXCA7Civml4XppKjmpa0gPiByeW9rYW5neW91XCA7CivlrabmnJ/mnKsgPiBnYWtraW1hdHN1XCA7CivliLDmnaXniakgPiB0b3VyYWltb25vXCA7Civmspbku7Lku5UgPiBva2luYWthc2hpXCA7CivlpJblm73oo70gPiBnYWlrb2t1c2VpXCA7CivntYLnm6TmiKYgPiBzaHV1YmFuc2VuXCA7CivpgIblhYnnt5ogPiBneWFra291c2VuXCA7CivosaHlvrTmtL4gPiBzaG91Y2hvdWhhXCA7Civli6fpgLLlhYMgPiBrYW5qaW5tb3RvXCA7CivprZrpoZ7lraYgPiBneW9ydWlnYWt1XCA7CivnuJ7nkarnkZkgPiBzaGltYW1lbm91XCA7CivnnJ/nqbrnrqEgPiBzaGlua3V1a2FuXCA7CivoiI7liKnliKUgPiBzaGFyaWJldHN1XCA7CivkuqzpmKrnpZ4gPiBrZWloYW5zaGluXCA7CivmhaPnv5Lms5UgPiBrYW5zaHV1aG91XCA7CivpoK3pmYDooosgPiB6dWRhYnVrdXJvXCA7CivpmbDmpbXnrqEgPiBpbmt5b2t1a2FuXCA7Civmt7flkozniakgPiBrb253YWJ1dHN1XCA7CivliIDpjZvlhrYgPiBrYXRhbmFrYWppXCA7CivmvZzkvI/mgKcgPiBzZW5wdWt1c2VpXCA7Civmi5vlvoXliLggPiBzaG91dGFpa2VuXCA7Civlj5fpm6Pnr4AgPiBqdW5hbnNldHN1XCA7CivmuKzlrprlgKQgPiBzb2t1dGVpY2hpXCA7CivljJbnsqfntJkgPiBrZXNob3VnYW1pXCA7CivlpKfmhrLnq6AgPiBkYWlrZW5zaG91XCA7CivljZjoibLlhYkgPiB0YW5zaG9ra291XCA7CivnlLLmrrvntrEgPiBrb3VrYWt1a291XCA7Civpm4blkIjkvZMgPiBzaHV1Z291dGFpXCA7Civnq4vlvoDnlJ8gPiB0YWNoaW91am91XCA7CivlrZDlrq7poLggPiBzaGlreXV1a2VpXCA7CivntYzpqJPnmoQgPiBrZWlrZW50ZWtpXCA7CivljJbnsqfnrrEgPiBrZXNob3ViYWtvXCA7CivkuoznlarmmJ8gPiBuaWJhbmJvc2hpXCA7Civms5XlvovlrrYgPiBob3VyaXRzdWthXCA7CivmtJfmv6/mnb8gPiBzZW50YWt1aXRhXCA7Civmu5HmsqLliaQgPiBrYXR0YWt1emFpXCA7Civlr77np7DmgKcgPiB0YWlzaG91c2VpXCA7CivlsJHlubTms5UgPiBzaG91bmVuaG91XCA7CivlvrPlt53lrrYgPiB0b2t1Z2F3YWtlXCA7CivmtYHli5XkvZMgPiByeXV1ZG91dGFpXCA7CivntYLliIrlj7cgPiBzaHV1a2FuZ291XCA7Civnm6Pkv67ogIUgPiBrYW5zaHV1c2hhXCA7CivlhbHnt6jogIUgPiBreW91aGVuc2hhXCA7CivntbHoqIjlraYgPiB0b3VrZWlnYWt1XCA7CivovKrpg63nt5ogPiByaW5rYWt1c2VuXCA7Civou43oiabps6UgPiBndW5rYW5kb3JpXCA7CivllYboiLnpmoogPiBzaG91c2VudGFpXCA7CivotoXmuoDlk6EgPiBjaG91bWFuJydpblwgOwor54mH5omL6Y2LID4ga2F0YXRlbmFiZVwgOwor6IKh6Zai56+AID4ga29rYW5zZXRzdVwgOwor6Kq/5ZGz5paZID4gY2hvdW1pcnlvdVwgOwor5Y+I5bCP5L2cID4gbWF0YWtvc2FrdVwgOwor5LiN5q2j55u0ID4gZnVzaG91amlraVwgOwor5rSq56mN5bGkID4ga291c2VraXNvdVwgOwor5qSc5Zyn5ZmoID4ga2VuJydhdHN1a2lcIDsKK+afk+eJqeWxiyA+IHNvbWVtb25veWFcIDsKK+mFjeiGs+S6uiA+IGhhaXplbicnbmluXCA7CivlooPnlYznt5ogPiBreW91a2Fpc2VuXCA7CivpnZnniannlLsgPiBzZWlidXRzdWdhXCA7CivmlZnogrLms5UgPiBreW91aWt1aG91XCA7Civlj47pm4bprZQgPiBzaHV1c2h1dW1hXCA7Civpm6LogbfogIUgPiByaXNob2t1c2hhXCA7CivloLHlpajph5EgPiBob3VzaG91a2luXCA7CivogqHplpPnr4AgPiBrb2thbnNldHN1XCA7CivniafluKvppKggPiBib2t1c2hpa2FuXCA7CivljaDpoJjou40gPiBzZW5yeW91Z3VuXCA7CivkuK3nlJ/ku6MgPiBjaHV1c2VpZGFpXCA7CivkuIvljYrmnJ8gPiBzaGltb2hhbmtpXCA7CivmlZnkvJrms5UgPiBreW91a2FpaG91XCA7Civljp/msLTniIYgPiBnZW5zdWliYWt1XCA7CivliLrnuY3ns7ggPiBzaGlzaHV1aXRvXCA7CivmkK3kuZfmqYsgPiB0b3Vqb3VreW91XCA7Civnn7PpubjnrrEgPiBzZWtrZW5iYWtvXCA7Civlm57ou6Lou7ggPiBrYWl0ZW5qaWt1XCA7CivliLvkuIDliLsgPiBrb2t1aWtrb2t1XCA7CivlibXpgKDnmoQgPiBzb3V6b3V0ZWtpXCA7Civnl7TlkYbnl4cgPiBjaGlob3VzaG91XCA7CivmjpLmsLTph48gPiBoYWlzdWlyeW91XCA7CivlkITmg4XloLEgPiBrYWt1am91aG91XCA7CivmoLjmlofms5UgPiBrYWt1YnVucG91XCA7CivlpKfjgIXnmoQgPiBkYWlkYWl0ZWtpXCA7Civlo7LkuIrpq5ggPiB1cmlhZ2VkYWthXCA7Civmt7HmiJDlsqkgPiBzaGluc2VpZ2FuXCA7Civog7jkuInlr7ggPiBtdW5lc2FuenVuXCA7CivlvpfmhI/lrqIgPiB0b2t1aWt5YWt1XCA7CivlvrTlhbXliLYgPiBjaG91aGVpc2VpXCA7CivmgKfmnKzog70gPiBzZWlob24nJ25vdVwgOwor5LyR6Ki65pelID4ga3l1dXNoaW5iaVwgOwor5Z+36YeR6Yu8ID4gc2hpa2tvbmdvdVwgOwor56uc55qu5be7ID4gcnl1dWhpbWFraVwgOwor5Zue5biw54axID4ga2Fpa2luZXRzdVwgOwor56Wd6LOA5LyaID4gc2h1a3VnYWthaVwgOwor55Sf5rS76LK7ID4gc2Vpa2F0c3VoaVwgOwor5rOV5YuZ5bGAID4gaG91bXVreW9rdVwgOwor5Lit5a2m5qChID4gY2h1dWdha2tvdVwgOwor5pyI6KaL6I2JID4gdHN1a2ltaXNvdVwgOwor6YCa5L+X5YyWID4gdHN1dXpva3VrYVwgOwor55u05Lqk5oCnID4gY2hva2tvdXNlaVwgOwor56iy54ax55eFID4gaW1vY2hpYnlvdVwgOwor6auY6LiP55qEID4ga291dG91dGVraVwgOwor57Wm5paZ5pelID4ga3l1dXJ5b3ViaVwgOwor5LiH5bm06Z2SID4gbWFuJyduZW5zZWlcIDsKK+Wwj+WJjeaPkCA+IHNob3V6ZW50ZWlcIDsKK+WFreS4ieWItiA+IHJva3VzYW5zZWlcIDsKK+mAoOael+WtpiA+IHpvdXJpbmdha3VcIDsKK+WFqOiyrOS7uyA+IHplbnNla2luaW5cIDsKK+eFp+aYjuW8viA+IHNob3VtZWlkYW5cIDsKK+aEm+WbveW/gyA+IGFpa29rdXNoaW5cIDsKK+efs+m5uOeavyA+IHNla2tlbnphcmFcIDsKK+S6iOWumuiqrCA+IHlvdGVpc2V0c3VcIDsKK+iEs+ehrOWhniA+IG5vdWtvdXNva3VcIDsKK+e3j+Wkp+WwhiA+IHNvdWRhaXNob3VcIDsKK+Wni+acq+WxiyA+IHNoaW1hdHN1eWFcIDsKK+WbveacieaelyA+IGtva3V5dXVyaW5cIDsKK+iWrOWtpumDqCA+IHlha3VnYWt1YnVcIDsKK+aJueWIpOWKmyA+IGhpaGFucnlva3VcIDsKK+etiei6q+WkpyA+IHRvdXNoaW5kYWlcIDsKK+e3j+aUu+aSgyA+IHNvdWtvdWdla2lcIDsKK+mrmOWxseeXhSA+IGtvdXphbmJ5b3VcIDsKK+S6lOaciOelrSA+IGdvZ2F0c3VzYWlcIDsKK+i7jealvemaiiA+IGd1bmdha3V0YWlcIDsKK+S4iemHjeWUsSA+IHNhbmp1dXNob3VcIDsKK+WNl+S6rOixhiA+IG5hbmtpbm1hbWVcIDsKK+absummrOW4qyA+IGt5b2t1YmFzaGlcIDsKK+WJr+WPuOS7pCA+IGZ1a3VzaGlyZWlcIDsKK+aYvOaXpeS4rSA+IGhpcnVoaW5ha2FcIDsKK+W4uOitmOWutiA+IGpvdXNoaWtpa2FcIDsKK+iogOiRieWwuyA+IGtvdG9iYWppcmlcIDsKK+iCuua1uOa9pCA+IGhhaXNoaW5qdW5cIDsKK+iAleS9nOiAhSA+IGtvdXNha3VzaGFcIDsKK+WQjOW/g+WGhiA+IGRvdXNoaW4nJ2VuXCA7Civoh7Tmrbvph48gPiBjaGlzaGlyeW91XCA7CivlvIHoqLzoq5YgPiBiZW5zaG91cm9uXCA7CivmlrDnmbvloLQgPiBzaGludG91am91XCA7CivlvLflipvnsokgPiBreW91cmlraWtvXCA7CivkuojlgpnlrqQgPiB5b2Jpc2hpdHN1XCA7CivlupfpoK3moKogPiB0ZW50b3VrYWJ1XCA7CivnmbrlsITolqwgPiBoYXNzaGF5YWt1XCA7CivljJbnsqfmsLQgPiBrZXNob3VtaXp1XCA7CivljYHpgLLms5UgPiBqaXNzaGluaG91XCA7CivmlofnrYblrrYgPiBidW5waXRzdWthXCA7CivlvpPph4/nqI4gPiBqdXVyeW91emVpXCA7Civnk6blsYvmoLkgPiBrYXdhcmF5YW5lXCA7CivplqLkv4Loqr8gPiBrYW5rZWljaG91XCA7CivllK/lv4Poq5YgPiB5dWlzaGlucm9uXCA7CivlirHmjK/nrqEgPiByZWlzaGlua2FuXCA7Civlhajml6XnqbogPiB6ZW4nJ25pa2t1dVwgOwor5LqM5p6a6IWwID4gbmltYWlnb3NoaVwgOwor5rWB5YiR5ZywID4gcnl1dWtlaWNoaVwgOwor5rSq56mN5LiWID4ga291c2VraXNlaVwgOwor6ZyH54G95ZywID4gc2hpbnNhaWNoaVwgOwor55y86Luf6IaPID4gZ2FuJyduYW5rb3VcIDsKK+awtOaZtuS9kyA+IHN1aXNob3V0YWlcIDsKK+eCuea7heWZqCA+IHRlbm1ldHN1a2lcIDsKK+WFhOW8n+WIhiA+IGt5b3VkYWlidW5cIDsKK+mHkemWgOapiyA+IGtpbm1vbmt5b3VcIDsKK+aZr+WLneWcsCA+IGtlaXNob3VjaGlcIDsKK+WGheaOpeWGhiA+IG5haXNldHN1ZW5cIDsKK+eUn+a0u+iLpiA+IHNlaWthdHN1a3VcIDsKK+adseeFp+WuriA+IHRvdXNob3VndXVcIDsKK+WPl+mbo+absiA+IGp1bmFua3lva3VcIDsKK+Wvvua1geWcjyA+IHRhaXJ5dXVrZW5cIDsKK+WNsemZuueJqSA+IGtpa2VuYnV0c3VcIDsKK+eglOS/rueUnyA+IGtlbnNodXVzZWlcIDsKK+i/keimquWpmiA+IGtpbnNoaW5rb25cIDsKK+S6pOiqreaWhyA+IGtvdWRva3VidW5cIDsKK+iEs+WNkuS4rSA+IG5vdXNvdGNodXVcIDsKK+eEvOatu+S9kyA+IHNob3VzaGl0YWlcIDsKK+S4gOelnuaVmSA+IGlzc2hpbmt5b3VcIDsKK+a0vuWHuuaJgCA+IGhhc2h1dHN1am9cIDsKK+aMr+WLleioiCA+IHNoaW5kb3VrZWlcIDsKK+WxiOaKmOiqniA+IGt1c3NldHN1Z29cIDsKK+absummrOWboyA+IGt5b2t1YmFkYW5cIDsKK+azqOWwhOa2siA+IGNodXVzaGFla2lcIDsKK+emj+emhOWvvyA+IGZ1a3Vyb2t1anVcIDsKK+e0meWQuembqiA+IGthbWlmdWJ1a2lcIDsKK+S7suS7i+iAhSA+IGNodXVrYWlzaGFcIDsKK+mbhumFjeS6uiA+IHNodXVoYWluaW5cIDsKK+WumuekjuW8jyA+IHRlaXNvc2hpa2lcIDsKK+ijgeWIpOmVtyA+IHNhaWJhbmNob3VcIDsKK+mbu+ipseWxgCA+IGRlbndha3lva3VcIDsKK+S/uOelv+exsyA+IGhvdXJva3VtYWlcIDsKK+iKseWQuembqiA+IGhhbmFmdWJ1a2lcIDsKK+WFteezp+exsyA+IGh5b3Vyb3VtYWlcIDsKK+inkue0sOW3pSA+IHRzdW5vemFpa3VcIDsKK+i8uOmAgeWKmyA+IHl1c291cnlva3VcIDsKK+ael+mHjuW6gSA+IHJpbicneWFjaG91XCA7CivmlK/phY3nmoQgPiBzaGloYWl0ZWtpXCA7CivlpKrpvJPmqYsgPiB0YWlrb2Jhc2hpXCA7CivnrpTlipvnsokgPiBoYWt1cmlraWtvXCA7CivnjYXlrZDpvLsgPiBzaGlzaGliYW5hXCA7CivpgKPpmorplbcgPiByZW50YWljaG91XCA7Civnq6/mnKvmqZ8gPiB0YW5tYXRzdWtpXCA7CivlkLnlpY/mpb0gPiBzdWlzb3VnYWt1XCA7CivnhrHlsITnl4UgPiBuZXNzaGFieW91XCA7CivlvrPnlKjnk7YgPiB0b2t1eW91YmluXCA7CivlpKnmtKXnpZ4gPiBhbWF0c3VrYW1pXCA7CivpmY3msLTph48gPiBrb3VzdWlyeW91XCA7Civlh7rph5HogIUgPiBzaHVra2luc2hhXCA7CivlhbjlnovnmoQgPiB0ZW5rZWl0ZWtpXCA7CivkuK3mnqLmgKcgPiBjaHV1c3V1c2VpXCA7Civov7flvanmnI0gPiBtZWlzYWlmdWt1XCA7CivkvY/lroXpm6MgPiBqdXV0YWt1bmFuXCA7CivljJbnsqfmlpkgPiBrZXNob3VyeW91XCA7Civlv4PnkIblraYgPiBzaGlucmlnYWt1XCA7CivoirPlkI3pjLIgPiBob3VtZWlyb2t1XCA7Civli5XlipvngokgPiBkb3VyeW9rdXJvXCA7CivlsI/lhZDnl4UgPiBzaG91bmlieW91XCA7CivlsJHlubTlm6MgPiBzaG91bmVuZGFuXCA7CivlhajpnaLnmoQgPiB6ZW5tZW50ZWtpXCA7CivlsI/luILmsJEgPiBzaG91c2hpbWluXCA7Civlia/mrKHnmoQgPiBmdWt1aml0ZWtpXCA7CivmpI7plpPmnb8gPiB0c3Vpa2FuYmFuXCA7CivoqrLnqI7njocgPiBrYXplaXJpdHN1XCA7Civpg7XmlL/nnIEgPiB5dXVzZWlzaG91XCA7CivlpI/loLTmiYAgPiBuYXRzdWJhc2hvXCA7CivljprljJbnsqcgPiBhdHN1Z2VzaG91XCA7CivkuozkurrntYQgPiBmdXRhcmlndW1pXCA7Civoh7Tlkb3lgrcgPiBjaGltZWlzaG91XCA7Civlia/pg73lv4MgPiBmdWt1dG9zaGluXCA7CivnmbrmoYjogIUgPiBoYXRzdWFuc2hhXCA7CivlvLflipvniq8gPiBnb3VyaWtpaGFuXCA7CivmtJfmv6/ku6MgPiBzZW50YWt1ZGFpXCA7CivpgYrms7PooZMgPiB5dXVlaWp1dHN1XCA7Civoo73pmbbmpa0gPiBzZWl0b3VneW91XCA7CivnkIPluqfmqJkgPiBreXV1emFoeW91XCA7CivljaDmnInmqKkgPiBzZW4nJ3l1dWtlblwgOwor5rKI5LiB6IqxID4gY2hpbmNob3VnZVwgOwor6JGh6JCE54mZID4gcG9ydXRvZ2FydVwgOwor5pWZ5Lya5aCCID4ga3lvdWthaWRvdVwgOwor5pSv5bqX6ZW3ID4gc2hpdGVuY2hvdVwgOwor5b6h5bm0546JID4gb3Rvc2hpZGFtYVwgOwor6KW/5rSL6JGxID4gc2VpeW91bmVnaVwgOwor55Oc5a6f6aGUID4gdXJpemFuZWdhb1wgOwor55yf56m65bivID4gc2hpbmt1dXRhaVwgOwor6L+96YCB5qScID4gdHN1aXNvdWtlblwgOwor5pyq5rG655ujID4gbWlrZXRzdWthblwgOwor5pmu6YCa5qCqID4gZnV0c3V1a2FidVwgOwor5ZWG5bqX5Li7ID4gc2hvdXRlbnNodVwgOwor5o6h55+z5aC0ID4gc2Fpc2VraWpvdVwgOwor54mi5ZCN5Li7ID4gcm91bmFudXNoaVwgOwor57Sv6YCy56iOID4gcnVpc2hpbnplaVwgOwor5aSn56u25LqJID4gZGFpa3lvdXNvdVwgOwor5qOu5p6X5rOVID4gc2hpbnJpbmhvdVwgOwor5ZCM6YO35Lq6ID4gZG91a3lvdWppblwgOwor5rS+5Ye65ammID4gaGFzaHV0c3VmdVwgOwor5YaF5Zu95YK1ID4gbmFpa29rdXNhaVwgOwor5pSv5bqm6YeRID4gc2hpdGFrdWtpblwgOwor5YaN5rW456S8ID4gc2Fpc2hpbnJlaVwgOwor5Zu95pyJ5ZywID4ga29rdXl1dWNoaVwgOwor6Kaq5bGV5pu4ID4gc2hpbnRlbnNob1wgOwor5buJ5oGl5b+DID4gcmVuY2hpc2hpblwgOwor55qG5pei6aOfID4ga2Fpa2lzaG9rdVwgOwor6Lui5bGF5YWIID4gdGVua3lvc2FraVwgOwor6YCj57Wh6aeFID4gcmVucmFrdWVraVwgOwor6Zu76Kmx5Y+jID4gZGVud2FndWNoaVwgOwor57K+5Yuk6LOeID4gc2Vpa2luc2hvdVwgOwor5YGl5b+Y55eHID4ga2VuYm91c2hvdVwgOwor5pWZ5Lya5Y+yID4ga3lvdWthaXNoaVwgOwor5bCR5bm05LyaID4gc2hvdW5lbmthaVwgOwor6LSL5omL57SZID4gbmlzZXRlZ2FtaVwgOwor5Ye65b6B6LuNID4gc2h1c3NlaWd1blwgOwor6KiI55S76ICFID4ga2Vpa2FrdXNoYVwgOwor5pWj5paH55qEID4gc2FuYnVudGVraVwgOwor5oy66Lqr6ZqKID4gdGVpc2hpbnRhaVwgOwor5Y+L5aW955qEID4geXV1a291dGVraVwgOwor5Y+s5Zaa54q2ID4gc2hvdWthbmpvdVwgOwor6KqN6Ki86ICFID4gbmluc2hvdXNoYVwgOwor5bm055Sj6aGNID4gbmVuc2FuZ2FrdVwgOwor5o+b566X6KGoID4ga2FuemFuaHlvdVwgOwor5rKW57iE55yMID4gb2tpbmF3YWtlblwgOwor5pWR5LiW6LuNID4ga3l1dXNlaWd1blwgOwor5rqA6Laz5oSfID4gbWFuem9rdWthblwgOwor5aWJ5YWs5YWIID4gaG91a291c2FraVwgOwor6Zu75aCx5paZID4gZGVucG91cnlvdVwgOwor6I2S5LqL5birID4gYXJhZ290b3NoaVwgOwor5qGD5rqQ6YO3ID4gdG91Z2Vua3lvdVwgOwor6JOu5pyI5bC8ID4gcmVuZ2V0c3VuaVwgOwor57695paR6JqKID4gaGFtYWRhcmFrYVwgOwor56eB5pu45Ye9ID4gc2hpc2hvYmFrb1wgOwor5py05b+15LuBID4gYm9rdW5lbmppblwgOwor5a2Q5a6u55mMID4gc2hpa3l1dWdhblwgOwor56OB5Yqb6KiIID4gamlyeW9rdWtlaVwgOwor5qC557KS6I+MID4ga29ucnl1dWtpblwgOwor57im5peL55ukID4gdGF0ZXNlbmJhblwgOwor5biC5b255omAID4gc2hpeWFrdXNob1wgOwor5qSc5rWB6KiIID4ga2Vucnl1dWtlaVwgOwor5Y2z5aOy5LyaID4gc29rdWJhaWthaVwgOwor5bu25Lq65ZOhID4gbm9iZWppbicnaW5cIDsKK+iqv+WQiOWJpCA+IGNob3Vnb3V6YWlcIDsKK+imgeeiuuiqjSA+IHlvdWtha3VuaW5cIDsKK+W4uOe3keaouSA+IGpvdXJ5b2t1anVcIDsKK+mBuOeQg+ecvCA+IHNlbmt5dXVnYW5cIDsKK+efs+WQiOaIpiA+IGlzaGlnYXNzZW5cIDsKK+WwgeW7uueahCA+IGhvdWtlbnRla2lcIDsKK+mnkOWcqOaJgCA+IGNodXV6YWlzaG9cIDsKK+S4luW4r+S4uyA+IHNldGFpbnVzaGlcIDsKK+W5s+W4uOW/gyA+IGhlaWpvdXNoaW5cIDsKK+ixhuWPsOmiqCA+IG1hbWV0YWlmdXVcIDsKK+mJseWxsealrSA+IGtvdXphbmd5b3VcIDsKK+ani+aWh+acqCA+IGtvdWJ1bm1va3VcIDsKK+WPguisgOmVtyA+IHNhbmJvdWNob3VcIDsKK+WGmeecn+mkqCA+IHNoYXNoaW5rYW5cIDsKK+aIpuaZguiJsiA+IHNlbmppc2hva3VcIDsKK+S9j+WuheihlyA+IGp1dXRha3VnYWlcIDsKK+mgk+ePjea8oiA+IHRvbmNoaW5rYW5cIDsKK+W8semFuOaApyA+IGpha3VzYW5zZWlcIDsKK+S4reS7leWIhyA+IG5ha2FqaWtpcmlcIDsKK+WIneiInuWPsCA+IGhhdHN1YnV0YWlcIDsKK+WGmeecn+mhlCA+IHNoYXNoaW5nYW9cIDsKK+WNl+S6rOeOiSA+IG5hbmtpbmRhbWFcIDsKK+iIueexjea4ryA+IHNlbnNla2lrb3VcIDsKK+eHkOeBsOefsyA+IHJpbmthaXNla2lcIDsKK+S4gOW5tOmWkyA+IGljaGluZW5rYW5cIDsKK+mdnuaOpeinpiA+IGhpc2Vzc2hva3VcIDsKK+aMgee2mueahCA+IGppem9rdXRla2lcIDsKK+WWtualreS4rSA+IGVpZ3lvdWNodXVcIDsKK+i2hemBjumhjSA+IGNob3VrYWdha3VcIDsKK+mgkOiyuOeOhyA+IHlvdGFpcml0c3VcIDsKK+S7o+eUqOiCiSA+IGRhaXlvdW5pa3VcIDsKK+aZguezu+WIlyA+IGppa2VpcmV0c3VcIDsKK+WtkOS+m+acjSA+IGtvZG9tb2Z1a3VcIDsKK+itpuimluW6gSA+IGtlaXNoaWNob3VcIDsKK+WFjeeWq+aApyA+IG1lbicnZWtpc2VpXCA7Civns7vntbHnmoQgPiBrZWl0b3V0ZWtpXCA7Civou43nlKjph5EgPiBndW4nJ3lvdWtpblwgOwor6I2S5LuV5LqLID4gYXJhc2hpZ290b1wgOwor55m75bGx5a6iID4gdG96YW5reWFrdVwgOwor5L2O6LOD6YeRID4gdGVpY2hpbmdpblwgOwor5L615a6z6ICFID4gc2hpbmdhaXNoYVwgOwor5aOy5LiK56WoID4gdXJpYWdlcHlvdVwgOwor5pS+6YCB5YqHID4gaG91c291Z2VraVwgOwor5pel56iL6KGoID4gbml0dGVpaHlvdVwgOwor5Ymv6JGs5ZOBID4gZnVrdXNvdWhpblwgOwor5oy/5YWl5paHID4gc291bnl1dWJ1blwgOwor5Yid5a2m6ICFID4gc2hvZ2FrdXNoYVwgOwor5pWZ57+S5omAID4ga3lvdXNodXVqb1wgOwor5YWl5aC06ZaAID4gbnl1dWpvdW1vblwgOwor5a6Y5bqB6KGXID4ga2FuY2hvdWdhaVwgOwor6KaP5YmH55qEID4ga2lzb2t1dGVraVwgOwor5bCP5YaK5a2QID4gc2hvdXNhc3NoaVwgOwor6Ly75bCE57eaID4gZnVrdXNoYXNlblwgOwor5Y2B6YCy5Yi2ID4gamlzc2hpbnNlaVwgOwor6KSH6KO95ZOBID4gZnVrdXNlaWhpblwgOwor6J+55bel6Ii5ID4ga2FuaWtvdXNlblwgOwor5qOu5p6X5bivID4gc2hpbnJpbnRhaVwgOwor57WQ5pm257O7ID4ga2Vzc2hvdWtlaVwgOwor54Sh56ep5bqPID4gbXVjaGl0c3Vqb1wgOwor5Li76Kaz55qEID4gc2h1a2FudGVraVwgOwor56C05aOK5YqbID4gaGFrYWlyeW9rdVwgOwor5LiJ5q+b5L2cID4gc2FubW91c2FrdVwgOwor5qGn55qu6JG6ID4gaGl3YWRhYnVraVwgOwor5Yqb57mU5qmfID4gcmlraXNob2traVwgOwor5YWt6Z2i5L2TID4gcm9rdW1lbnRhaVwgOwor55m95Lq656iuID4gaGFrdWppbnNodVwgOwor5rGO56We6KuWID4gaGFuc2hpbnJvblwgOwor5Luu5a6a5qy+ID4ga2FyaXRlaWthblwgOwor57SN56iO6aGNID4gbm91emVpZ2FrdVwgOwor6Ku45aSW5Zu9ID4gc2hvZ2Fpa29rdVwgOwor5aSW5o6l5YaGID4gZ2Fpc2V0c3VlblwgOwor6KO957SZ5qWtID4gc2Vpc2hpZ3lvdVwgOwor6Ymb55u057eaID4gZW5jaG9rdXNlblwgOwor5b+D6Zu76KiIID4gc2hpbmRlbmtlaVwgOwor56aP5Yip6KGoID4gZnVrdXJpaHlvdVwgOwor5b6u55Sf54mpID4gYmlzZWlidXRzdVwgOwor5a6d55+z5bqXID4gaG91c2VraXRlblwgOwor5Ym15qWt6ICFID4gc291Z3lvdXNoYVwgOwor6Z2p6KO95ZOBID4ga2F3YXNlaWhpblwgOwor5bmz5bm05L2cID4gaGVpbmVuc2FrdVwgOwor55Sf5oWL5a2mID4gc2VpdGFpZ2FrdVwgOwor54y/6Iqd5bGFID4gc2FydXNoaWJhaVwgOwor5aC05aSW5qCqID4gam91Z2Fpa2FidVwgOwor5byB6Ki85rOVID4gYmVuc2hvdWhvdVwgOwor5Y2U5a6a5pu4ID4ga3lvdXRlaXNob1wgOwor5LqU5pes56+AID4gZ29qdW5zZXRzdVwgOwor5Yid5Lu757WmID4gc2hvbmlua3l1dVwgOwor6Zm45pu5562JID4gcmlrdXNvdXRvdVwgOwor5aW95oiQ57i+ID4ga291c2Vpc2VraVwgOwor6YCa5pyJ5oCnID4gdHN1dXl1dXNlaVwgOwor6IG05bCO54qsID4gY2hvdWRvdWtlblwgOwor56OB5Yqb57eaID4gamlyeW9rdXNlblwgOwor6Zui5ama546HID4gcmlrb25yaXRzdVwgOwor56Gd6YW45aGpID4gc2hvdXNhbicnZW5cIDsKK+WGjeeiuuiqjSA+IHNhaWtha3VuaW5cIDsKK+eZuuahiOaoqSA+IGhhdHN1YW5rZW5cIDsKK+eahuaXouidlSA+IGthaWtpc2hva3VcIDsKK+mFquijveWTgSA+IHJha3VzZWloaW5cIDsKK+Wcn+aAp+mqqCA+IGRvc2hvdWJvbmVcIDsKK+mBv+WmiuiWrCA+IGhpbmluJyd5YWt1XCA7CivnmbrnlJ/lraYgPiBoYXNzZWlnYWt1XCA7CivkurrnqK7nmoQgPiBqaW5zaHV0ZWtpXCA7Civno4Hnn7Pnm6QgPiBqaXNoYWt1YmFuXCA7CivlpKfolLXntYwgPiBkYWl6b3VreW91XCA7CivmsrPljp/ptrggPiBrYXdhcmFoaXdhXCA7CivnlZnnva7loLQgPiByeXV1Y2hpam91XCA7CivpgJrpoqjlrZQgPiB0c3V1ZnV1a291XCA7CivopoHmsYLogIUgPiB5b3VreXV1c2hhXCA7Civoo73ns7jmpa0gPiBzZWlzaGlneW91XCA7Civnn6XmgbXooosgPiBjaGllYnVrdXJvXCA7CivntJnpiYTnoLIgPiBrYW1pZGVwcG91XCA7CivliJ3po5vooYwgPiBoYXRzdWhpa291XCA7CivnmbvlsbHlj6MgPiB0b3phbmd1Y2hpXCA7Civosq/msLTph48gPiBjaG9zdWlyeW91XCA7CivnpL7kvJrpjYsgPiBzaGFrYWluYWJlXCA7Civmrorli7Los54gPiBzaHVrdW5zaG91XCA7CivpgYvli5XpnbQgPiB1bmRvdWd1dHN1XCA7CivkuqTpmpvlm70gPiBrb3VzYWlrb2t1XCA7CivlhavmloflrZcgPiBoYWNoaW1vbmppXCA7Civplovnmbrpg6ggPiBrYWloYXRzdWJ1XCA7Civoqr/ljbDlm70gPiBjaG91aW5rb2t1XCA7Civnm7jntprnqI4gPiBzb3V6b2t1emVpXCA7CivonYvkurrlvaIgPiByb3VuaW5neW91XCA7CivkurrlkI3pjLIgPiBqaW5tZWlyb2t1XCA7CivokL3nrKznlJ8gPiByYWt1ZGFpc2VpXCA7Civlh53ngbDlsqkgPiBneW91a2FpZ2FuXCA7CivliKnku5jlgrUgPiByaXRzdWtpc2FpXCA7CivkvZPohZTlo4EgPiB0YWlrb3VoZWtpXCA7CivmjIfmjozntIsgPiBzaGlzaG91bW9uXCA7CivlpYfot6HnmoQgPiBraXNla2l0ZWtpXCA7Civom4vnmb3mupAgPiB0YW5wYWt1Z2VuXCA7Civmlq3mnKvprZQgPiBkYW5tYXRzdW1hXCA7CivoqbPkvJ3npL4gPiBzaG91ZGVuc2hhXCA7CivokazlhIDlvI8gPiBzb3VnaXNoaWtpXCA7CivmkI3lrrPpoY0gPiBzb25nYWlnYWt1XCA7CivpiYTpi7zmpa0gPiB0ZWtrb3VneW91XCA7CivkuIDlvKbnkLQgPiBpY2hpZ2Vua2luXCA7CivmmpfntKvoibIgPiBhbnNoaXNob2t1XCA7CivlhYjku7vpoIYgPiBzZW4nJ25pbmp1blwgOwor5aW95oim55qEID4ga291c2VudGVraVwgOwor6Ziy6ZW35a6YID4gYm91Y2hvdWthblwgOwor5rC05Zyn6KiIID4gc3VpYXRzdWtlaVwgOwor5aSW5Zu95YuiID4gZ2Fpa29rdXplaVwgOwor6Z+T5Zu95Lq6ID4ga2Fua29rdWppblwgOwor5pWi6ZeY6LOeID4ga2FudG91c2hvdVwgOwor5q+S6KaL5b25ID4gZG9rdW1peWFrdVwgOwor5qmf5YaF6aOfID4ga2luYWlzaG9rdVwgOwor6KOP55Wq57WEID4gdXJhYmFuZ3VtaVwgOwor5Zu96Ziy6KuWID4ga29rdWJvdXJvblwgOwor5a6Y5rGC5ZOBID4ga2Fua3l1dWhpblwgOwor5Zu96Zqb57eaID4ga29rdXNhaXNlblwgOwor6LK46YeR5bqrID4ga2FzaGlraW5rb1wgOwor6YCf6KiY6KGTID4gc29ra2lqdXRzdVwgOwor5Zu96KiA6JGJID4ga3VuaWtvdG9iYVwgOwor5YyQ6KGM55a5ID4gZnVra291c2hpblwgOwor55S65bel5aC0ID4gbWFjaGlrb3ViYVwgOwor6Iez5oCl5L6/ID4gc2hpa3l1dWJpblwgOwor5a6d5Yag56ugID4gaG91a2Fuc2hvdVwgOwor6KO957OW5qWtID4gc2VpdG91Z3lvdVwgOwor6Iul5pem6YKjID4gd2FrYWRhbicnbmFcIDsKK+aMkeaIpuiAhSA+IGNob3VzZW5zaGFcIDsKK+mJhOmJseefsyA+IHRla2tvdXNla2lcIDsKK+aoqumalOiGnCA+IG91a2FrdW1ha3VcIDsKK+WQjOalreiAhSA+IGRvdWd5b3VzaGFcIDsKK+a0u+eUqOiqniA+IGthdHN1eW91Z29cIDsKK+a3seWRvOWQuCA+IHNoaW5rb2t5dXVcIDsKK+S4ieeVqum2jyA+IHNhbmJhbmRvcmlcIDsKK+WIpOS7u+WumCA+IGhhbicnbmlua2FuXCA7Civlh7rli6TogIUgPiBzaHVra2luc2hhXCA7CivlpJblm73lgrUgPiBnYWlrb2t1c2FpXCA7CivpgKPntaHoiLkgPiByZW5yYWt1c2VuXCA7CivokL3nrKzngrkgPiByYWt1ZGFpdGVuXCA7CivpgLLooYznm7ggPiBzaGlua291c291XCA7CivkuInnlarps6UgPiBzYW5iYW5kb3JpXCA7CivmsbrlrprnmoQgPiBrZXR0ZWl0ZWtpXCA7CivogonmlpnnkIYgPiBuaWt1cnlvdXJpXCA7Civmlofms5XnmoQgPiBidW5wb3V0ZWtpXCA7Civlm73mlofms5UgPiBrb2t1YnVucG91XCA7CivotoXlvKnntJogPiBjaG91ZG9reXV1XCA7CivlpKfolLXnnIEgPiBvb2t1cmFzaG91XCA7CivmhJ/mg4XnmoQgPiBrYW5qb3V0ZWtpXCA7CivkuZflkIjoiLkgPiBub3JpYWlidW5lXCA7CivlvrPnlKjlk4EgPiB0b2t1eW91aGluXCA7Civnh4Pmlpnmo5IgPiBuZW5yeW91Ym91XCA7Civkuozml6XphZQgPiBmdXRzdWtheW9pXCA7CivnpZ7ntYzns7sgPiBzaGlua2Vpa2VpXCA7Civku67orbDplbcgPiBrYXJpZ2ljaG91XCA7Civni6zmlq3oq5YgPiBkb2t1ZGFucm9uXCA7CivlpJblm73kurogPiBnYWlrb2t1amluXCA7Civnj43ns57mvKIgPiBjaGlucHVua2FuXCA7CivmjK/li5Xmnb8gPiBzaGluZG91YmFuXCA7CivkuLvmlZnlhqAgPiBzaHVreW91a2FuXCA7CivmraPmlZnluKsgPiBzZWlreW91c2hpXCA7CivntLDoj4zlraYgPiBzYWlraW5nYWt1XCA7CivogJXkvZzlnLAgPiBrb3VzYWt1Y2hpXCA7CivmlLnpgLLlhZogPiBrYWlzaGludG91XCA7CivkuInliIbmkJcgPiBzYW5idXRzdWtpXCA7CivkvJHplpHlnLAgPiBreXV1a2FuY2hpXCA7Civou43nlKjoiaYgPiBndW4nJ3lvdWthblwgOwor5paw6IGe57SZID4gc2hpbmJ1bnNoaVwgOwor6Ly75bCE54K5ID4gZnVrdXNoYXRlblwgOwor5LiW5L+X55qEID4gc2V6b2t1dGVraVwgOwor6YeN5Zyn5oSfID4ganV1YXRzdWthblwgOwor6LGG6YmE56CyID4gbWFtZWRlcHBvdVwgOwor5YSq56eA5ZOBID4geXV1c2h1dWhpblwgOwor6YeR6J6N55WMID4ga2luJyd5dXVrYWlcIDsKK+WCjeiBtOWIuCA+IGJvdWNob3VrZW5cIDsKK+iyr+mHkeeusSA+IGNob2tpbmJha29cIDsKK+WbveWig+e3miA+IGtva2t5b3VzZW5cIDsKK+ialeezuOalrSA+IHNhbnNoaWd5b3VcIDsKK+S4gOW5tOiNiSA+IGljaGluZW5zb3VcIDsKK+mrmOWvhuW6piA+IGtvdW1pdHN1ZG9cIDsKK+WFjeeWq+S9kyA+IG1lbicnZWtpdGFpXCA7Civno4HmsJfltZAgPiBqaWtpYXJhc2hpXCA7CivmjK/li5XmlbAgPiBzaGluZG91c3V1XCA7CivlpKfnpLzmnI0gPiB0YWlyZWlmdWt1XCA7CivmlLnoia/nqK4gPiBrYWlyeW91c2h1XCA7CivljJflm73kurogPiBob2trb2t1amluXCA7CivpgKPntaHnt5ogPiByZW5yYWt1c2VuXCA7CivniaLlvbnkurogPiByb3V5YWt1bmluXCA7CivlhoXnpZ3oqIAgPiBuYWlzaHV1Z2VuXCA7CivljYrouqvlg48gPiBoYW5zaGluem91XCA7CivlpKfpu5LlpKkgPiBkYWlrb2t1dGVuXCA7CivkuI3liIblibIgPiBmdWJ1bmthdHN1XCA7Civopb/ljJfopb8gPiBzZWlob2t1c2VpXCA7CivkuK3kuJblj7IgPiBjaHV1c2Vpc2hpXCA7CivmgJLpq6rlpKkgPiBkb2hhdHN1dGVuXCA7Civlj43pnanlkb0gPiBoYW5rYWt1bWVpXCA7CivmlrDogZ7npL4gPiBzaGluYnVuc2hhXCA7CivkuIDmqZ/ou7ggPiBpY2hpa2lqaWt1XCA7Civpm4bprZrnga8gPiBzaHV1Z3lvdG91XCA7Civpm6ropovphZIgPiB5dWtpbWl6YWtlXCA7CivlnYrkuLvpoK0gPiBib3V6dWF0YW1hXCA7CivlhYjpqJPnmoQgPiBzZW5rZW50ZWtpXCA7Civpl4fntabkuI4gPiB5YW1pa3l1dXlvXCA7Civlgo3ogbTkurogPiBib3VjaG91bmluXCA7Civkuovlrp/kuIogPiBqaWppdHN1am91XCA7CivnvqnkvqDlv4MgPiBnaWt5b3VzaGluXCA7CivnlKjmsLTloIAgPiB5b3VzdWlib3JpXCA7Civku67mma7oq4sgPiBrYXJpYnVzaGluXCA7CivljaDpoJjlnLAgPiBzZW5yeW91Y2hpXCA7Civlr53oo4Xlk4EgPiBzaGluc291aGluXCA7CivnlLrlhoXkvJogPiBjaG91bmFpa2FpXCA7CivlkIznm5/lm70gPiBkb3VtZWlrb2t1XCA7CivnmbrogrLmnJ8gPiBoYXRzdWlrdWtpXCA7CivoqpPntITmm7ggPiBzZWl5YWt1c2hvXCA7CivnmbrlsZXkuK0gPiBoYXR0ZW5jaHV1XCA7CivojLbnlarnmoQgPiBjaGFiYW50ZWtpXCA7CivnibnnlKPlk4EgPiB0b2t1c2FuaGluXCA7Civoo73nsonmpa0gPiBzZWlmdW5neW91XCA7Civmtojljrvms5UgPiBzaG91a3lvaG91XCA7CivogpvploDlraYgPiBrb3Vtb25nYWt1XCA7CivlpKflj7jmlZkgPiBkYWlzaGlreW91XCA7CivlpoTmg7Pnl4cgPiBtb3Vzb3VzaG91XCA7CivlvqHnlKjpgZQgPiBnb3lvdWRhdHN1XCA7CivlsZXnpLrniakgPiB0ZW5qaWJ1dHN1XCA7Civoh6rmrrrogIUgPiBqaXNhdHN1c2hhXCA7CivlsITlubjlv4MgPiBzaGFrb3VzaGluXCA7CivkvZzmm7LlrrYgPiBzYWtreW9rdWthXCA7CivlhazmlZnkvJogPiBrb3VreW91a2FpXCA7CivoqIjnlLvmgKcgPiBrZWlrYWt1c2VpXCA7CivliIfov6vmhJ8gPiBzZXBwYWt1a2FuXCA7CivkuLjlpKnkupUgPiBtYXJ1dGVuam91XCA7CivmnqLlr4bpmaIgPiBzdXVtaXRzdWluXCA7Civlm5vlha3liKQgPiBzaGlyb2t1YmFuXCA7Civov73kvZPpqJMgPiB0c3VpdGFpa2VuXCA7CivlhaXloLTogIUgPiBueXV1am91c2hhXCA7CivljYrnl4XkurogPiBoYW5ieW91bmluXCA7CivmjZzntKLpmoogPiBzb3VzYWt1dGFpXCA7Civlj4vlpb3lm70gPiB5dXVrb3Vrb2t1XCA7Civmrr/kuIrkurogPiB0ZW5qb3ViaXRvXCA7CivmiKrmlq3mqZ8gPiBzZXRzdWRhbmtpXCA7CivnhKHmsLTniakgPiBtdXN1aWJ1dHN1XCA7CivlgaXlurfnmoQgPiBrZW5rb3V0ZWtpXCA7CivmlrDkvZPmk40gPiBzaGludGFpc291XCA7CivnqbrkuK3nt5ogPiBrdXVjaHV1c2VuXCA7CivnlLDoiI7pgZMgPiBpbmFrYW1pY2hpXCA7Civms6LkuYPoirEgPiBuYW1pbm9oYW5hXCA7Civlgbblg4/mlZkgPiBndXV6b3VreW91XCA7CivnpZ7oqbHlraYgPiBzaGlud2FnYWt1XCA7Civnm7jntprmqKkgPiBzb3V6b2t1a2VuXCA7CivmgKfmlZnogrIgPiBzZWlreW91aWt1XCA7CivliY3lk6jnt5ogPiB6ZW5zaG91c2VuXCA7Civni6zlpY/ogIUgPiBkb2t1c291c2hhXCA7CivotaTooYDnkIMgPiBzZWtrZWtreXV1XCA7CivlpKnlj7DlrpcgPiB0ZW5kYWlzaHV1XCA7Civou43mpb3miYsgPiBndW5nYWt1c2h1XCA7Civou43oiablt7sgPiBndW5rYW5tYWtpXCA7CivmmpfopJDoibIgPiBhbmthc3Nob2t1XCA7CivpgIbkvZznlKggPiBneWFrdXNheW91XCA7CivmjJHmiKbnirYgPiBjaG91c2Vuam91XCA7CivmpJzph4/nt5ogPiBrZW5yeW91c2VuXCA7CivntrLmnZPlrZAgPiBhbWlqYWt1c2hpXCA7Civlho3ms6jmlocgPiBzYWljaHV1bW9uXCA7CivlhoXlj43otrMgPiBuYWloYW5zb2t1XCA7CivnpL7nlKjml48gPiBzaGF5b3V6b2t1XCA7CivlubTlsJHogIUgPiBuZW5zaG91c2hhXCA7CivmlrDnlJ/ku6MgPiBzaGluc2VpZGFpXCA7Civkv53nrqHniakgPiBob2thbmJ1dHN1XCA7CivlhKrli53ogIUgPiB5dXVzaG91c2hhXCA7CivmlLnoia/ngrkgPiBrYWlyeW91dGVuXCA7CivntabmjpLmsLQgPiBreXV1aGFpc3VpXCA7CivlpKnnnLzpj6EgPiB0ZW5nYW5reW91XCA7CivkuInpgKPli50gPiBzYW5yZW5zaG91XCA7CivkuI3nmbrlvL4gPiBmdWhhdHN1ZGFuXCA7CivljYrlrpjnmoQgPiBoYW5rYW50ZWtpXCA7CivmjK/li5XlrZAgPiBzaGluZG91c2hpXCA7CivmtLvnmbrljJYgPiBrYXBwYXRzdWthXCA7Civlj47pm4blrrYgPiBzaHV1c2h1dWthXCA7CivphbjljJbpiYQgPiBzYW5rYXRldHN1XCA7CivmlrDkurrnjosgPiBzaGluamluJydvdVwgOwor5bu25pel5pWwID4gbm9iZW5pc3N1dVwgOwor5aWJ54yu6aCMID4gaG91a2Vuc2hvdVwgOwor6LK45bqX6IiXID4ga2FzaGl0ZW5wb1wgOwor5LqM5Lq65YWxID4gZnV0YXJpdG9tb1wgOwor5Y+O5paC5YmkID4gc2h1dXJlbnphaVwgOwor5Zu96Zqb5rOVID4ga29rdXNhaWhvdVwgOwor6auY5a2m5bm0ID4ga291Z2FrdW5lblwgOwor5qC454G95a6zID4ga2FrdXNhaWdhaVwgOwor5Ly96I2J5a2QID4gdG9naXpvdXNoaVwgOwor54W95oOF55qEID4gc2Vuam91dGVraVwgOwor6KqN6Ki85a6YID4gbmluc2hvdWthblwgOwor6aSK6JqV5qWtID4geW91c2FuZ3lvdVwgOwor54Gr5bGx6ISIID4ga2F6YW5teWFrdVwgOwor6I+c56iu5q67ID4gbmF0YW5lZ2FyYVwgOwor6YG/5pqR5a6iID4gaGlzaG9reWFrdVwgOwor5rGO5b+D6KuWID4gaGFuc2hpbnJvblwgOwor5pu46KmV5qyEID4gc2hvaHlvdXJhblwgOwor5YWl5aC056iOID4gbnl1dWpvdXplaVwgOwor6Kmm5L2c6LuKID4gc2hpc2FrdXNoYVwgOwor542E5Lit6KiYID4gZ29rdWNodXVraVwgOwor5Lmz5YWE5byfID4gY2hpa3lvdWRhaVwgOwor5LqM5LiD5pelID4gZnV0YW5hbm9rYVwgOwor5q2j5pWZ5LyaID4gc2Vpa3lvdWthaVwgOwor5YWI55Sf5pa5ID4gc2Vuc2VpZ2F0YVwgOwor6I2J6Zuy6ZuAID4ga3VzYWhpYmFyaVwgOwor5L6N5b6T6IG3ID4gamlqdXVzaG9rdVwgOwor5Zyw5b2i5a2mID4gY2hpa2VpZ2FrdVwgOwor5LiA55u057eaID4gaXRjaG9rdXNlblwgOwor5aSp55y86YCaID4gdGVuZ2FudHN1dVwgOwor5Luy6LK35Lq6ID4gbmFrYWdhaW5pblwgOwor6Jas55CG5a2mID4geWFrdXJpZ2FrdVwgOwor5Zu95paH5bCCID4ga29rdWJ1bnNlblwgOwor5LiA5bm055SfID4gaWNoaW5lbnNlaVwgOwor5a6a5byP5YyWID4gdGVpc2hpa2lrYVwgOwor5ZWG5qWt5YyWID4gc2hvdWd5b3VrYVwgOwor5LiA6Lyq6LuKID4gaWNoaXJpbnNoYVwgOwor5ruy54Kt6Yu8ID4gc2hpbnRhbmtvdVwgOwor6LuN55So54qsID4gZ3VuJyd5b3VrZW5cIDsKK+WFreinkuWggiA+IHJva2tha3Vkb3VcIDsKK+W6iuaaluaIvyA+IHl1a2FkYW5ib3VcIDsKK+ethuS4jeeyviA+IGZ1ZGVidXNob3VcIDsKK+WFrOiovOS6uiA+IGtvdXNob3VuaW5cIDsKK+iWhOWKm+eyiSA+IGhha3VyaWtpa29cIDsKK+eJp+iNieWcsCA+IGJva3Vzb3VjaGlcIDsKK+WxnuaAp+WApCA+IHpva3VzZWljaGlcIDsKK+ino+avkuiWrCA+IGdlZG9rdXlha3VcIDsKK+a6gOacn+aXpSA+IG1hbmtpaml0c3VcIDsKK+WQjeS9nOmBuCA+IG1laXNha3VzZW5cIDsKK+WVhueUqOaWhyA+IHNob3V5b3VidW5cIDsKK+WbveiqnuWtpiA+IGtva3Vnb2dha3VcIDsKK+WPr+WPiueahCA+IGtha3l1dXRla2lcIDsKK+WGmeecn+ePrSA+IHNoYXNoaW5oYW5cIDsKK+S4gOWFg+irliA+IGljaGlnZW5yb25cIDsKK+iqv+WJpOW4qyA+IGNob3V6YWlzaGlcIDsKK+WNmOS4ieW9oiA+IHRhbnNhbmdhdGFcIDsKK+eUsuWGkeW4qyA+IGthdGNodXVzaGlcIDsKK+WFiOS7u+iAhSA+IHNlbicnbmluc2hhXCA7Civmm7Lnt5rnvo4gPiBreW9rdXNlbmJpXCA7CivlhazntITmlbAgPiBrb3V5YWt1c3V1XCA7CivnhrHni4LogIUgPiBuZWtreW91c2hhXCA7CivmsLTntIvlraYgPiBzdWltb25nYWt1XCA7CivkurrnqK7lraYgPiBqaW5zaHVnYWt1XCA7Civmrovlv43mgKcgPiB6YW4nJ25pbnNlaVwgOwor55u46Zai55qEID4gc291a2FudGVraVwgOwor5YaZ55yf54mIID4gc2hhc2hpbmJhblwgOwor55Sf5oGv5ZywID4gc2Vpc29rdWNoaVwgOwor55+l5oCn55qEID4gY2hpc2VpdGVraVwgOwor5pyq55m66YGUID4gbWloYXR0YXRzdVwgOwor6ZaL5bmV5oimID4ga2FpbWFrdXNlblwgOwor5b6M6YWN5qCqID4ga291aGFpa2FidVwgOwor5YGc5rOK5ZywID4gdGVpaGFrdWNoaVwgOwor57255oKj546HID4gcmlrYW5yaXRzdVwgOwor6YCy6KGM5b2iID4gc2hpbmtvdWtlaVwgOwor6YGT5b6z5LiKID4gZG91dG9rdWpvdVwgOwor56S+5Lya55qEID4gc2hha2FpdGVraVwgOwor6ZyH5rqQ5ZywID4gc2hpbmdlbmNoaVwgOwor5pif6Zuy6KqsID4gc2VpdW5zZXRzdVwgOwor5rKz5Y6f6ICFID4ga2F3YXJhbW9ub1wgOwor5rq65q276ICFID4gZGVraXNoaXNoYVwgOwor5rW35ZWG5rOVID4ga2Fpc2hvdWhvdVwgOwor55CG6auq5bqXID4gcmloYXRzdXRlblwgOwor6Z2p5ZG96LuNID4ga2FrdW1laWd1blwgOwor5pu46KqM5a2mID4gc2hvc2hpZ2FrdVwgOwor55CG6auq5birID4gcmloYXRzdXNoaVwgOwor5LiW5L+X5b+DID4gc2V6b2t1c2hpblwgOwor6YGp5Lu76ICFID4gdGVraW5pbnNoYVwgOwor5aSJ5Zyn5omAID4gaGVuJydhdHN1am9cIDsKK+a8ouawkeaXjyA+IGthbm1pbnpva3VcIDsKK+mBqeeUqOaApyA+IHRla2l5b3VzZWlcIDsKK+ebtOirh+WIpCA+IGppa2FkYW5wYW5cIDsKK+iDjOS/oeiAhSA+IGhhaXNoaW5zaGFcIDsKK+ethuiAleaWmSA+IGhpa2tvdXJ5b3VcIDsKK+S8neazleiCjCA+IGRlbmJvdWhhZGFcIDsKK+e5iuavm+iZqyA+IHNlbm1vdWNodXVcIDsKK+ertuWjsuS6uiA+IGt5b3ViYWluaW5cIDsKK+S9nOipnuiAhSA+IHNha3VzaGlzaGFcIDsKK+Wuieatu+ihkyA+IGFuc2hpanV0c3VcIDsKK+apn+WLleWKmyA+IGtpZG91cnlva3VcIDsKK+acgOe1guWbniA+IHNhaXNodXVrYWlcIDsKK+S4u+imgeWbvSA+IHNodXlvdWtva3VcIDsKK+WPjemZveWtkCA+IGhhbicneW91c2hpXCA7CivlhoXlkJHnmoQgPiBuYWlrb3V0ZWtpXCA7CivpmLLmva7loKQgPiBib3VjaG91dGVpXCA7CivmtrLmmbbnm6QgPiBla2lzaG91YmFuXCA7CivnpZ7ntYzmiKYgPiBzaGlua2Vpc2VuXCA7Civpu4TlhavkuIggPiBraWhhY2hpam91XCA7Civooajkuozpmo4gPiBvbW90ZW5pa2FpXCA7CivoqabpqJPnmoQgPiBzaGlrZW50ZWtpXCA7CivlsaDmrrrloLQgPiB0b3NhdHN1am91XCA7Civml4XmlK/luqYgPiB0YWJpaml0YWt1XCA7Civmm7jnsKHpm4YgPiBzaG9rYW5zaHV1XCA7Civlpb3miKblm70gPiBrb3VzZW5rb2t1XCA7CivllrbmnpflsYAgPiBlaXJpbmt5b2t1XCA7CivnhKHph43lipsgPiBtdWp1dXJ5b2t1XCA7CivpgbrlpLHogIUgPiBpc2hpdHN1c2hhXCA7CivnlJ/lvpfmqKkgPiBzZWl0b2t1a2VuXCA7CivnsbPpqJLli5UgPiBrb21lc291ZG91XCA7CivmlrDkvZPliLYgPiBzaGludGFpc2VpXCA7CivooYDmuIXlraYgPiBrZXNzZWlnYWt1XCA7Civpg6jplbfplrIgPiBidWNob3VldHN1XCA7CivlpJzmg7Pmm7IgPiB5YXNvdWt5b2t1XCA7CivmpoLlv7XnmoQgPiBnYWluZW50ZWtpXCA7CivnqbrkuK3mqKkgPiBrdXVjaHV1a2VuXCA7CivlkajpgYrliLggPiBzaHV1eXV1a2VuXCA7CivlibXkvZzogIUgPiBzb3VzYWt1c2hhXCA7CivlkKvns5bph48gPiBnYW50b3VyeW91XCA7CivlgLnntITlrrYgPiBrZW4nJ3lha3VrYVwgOwor5Ye65by15omAID4gc2h1dGNob3Vqb1wgOwor566h55CG6IG3ID4ga2FucmlzaG9rdVwgOwor5oGQ5oCW55eHID4ga3lvdWZ1c2hvdVwgOwor5pS/55Wl5a62ID4gc2Vpcnlha3VrYVwgOwor5YWs6KGG57ayID4ga291c2h1dW1vdVwgOwor5YWl5aC05qipID4gbnl1dWpvdWtlblwgOwor552j5oim6ZqKID4gdG9rdXNlbnRhaVwgOwor5Y2D57696ba0ID4gc2VuYmFkenVydVwgOwor5L2P5a6F5ZywID4ganV1dGFrdWNoaVwgOwor5YaF5oOR5pifID4gbmFpd2FrdXNlaVwgOwor55yf5q2j55u0ID4gbWFzaG91amlraVwgOwor5a2j56+A6aKoID4ga2lzZXRzdWZ1dVwgOwor5L2O5a2m5bm0ID4gdGVpZ2FrdW5lblwgOwor5a2m57GN57C/ID4gZ2FrdXNla2lib1wgOwor56uL5L2T6Y+hID4gcml0dGFpa3lvdVwgOwor5LqM6aCF5byPID4gbmlrb3VzaGlraVwgOwor55m+5pel57SFID4gc2FydXN1YmVyaVwgOwor6LuN55Wl5a62ID4gZ3Vucnlha3VrYVwgOwor5rCR6K2a6ZuGID4gbWluZGFuc2h1dVwgOwor5oWw5ZWP6KKLID4gaW1vbmJ1a3Vyb1wgOwor5raI55+z54GwID4gc2hvdXNla2thaVwgOwor5Y2Y5LiA5YyWID4gdGFuJydpdHN1a2FcIDsKK+WwgueUqOi7iiA+IHNlbicneW91c2hhXCA7Civku5XoiJ7niakgPiBzaGltYWltb25vXCA7CivlpKfnmb3ps6UgPiBvb2hha3VjaG91XCA7Civnt6nlvpDmm7IgPiBrYW5qb2t5b2t1XCA7CivliIDliaPllYYgPiB0b3VrZW5zaG91XCA7CivkvL3oip3lsYUgPiB0b2dpc2hpYmFpXCA7CivlpJzjgIXkuK0gPiB5b3J1eW9uYWthXCA7CivmsJfosaHluoEgPiBraXNob3VjaG91XCA7CivngJ3pnZLngq0gPiByZWtpc2VpdGFuXCA7CivkuIDlhobnjokgPiBpY2hpZW5kYW1hXCA7CivnjYXlrZDlrq4gPiBzaGlzaGlreXV1XCA7Civlt6HmtIvoiaYgPiBqdW4nJ3lvdWthblwgOwor5b+F6ZyA5ZOBID4gaGl0c3VqdWhpblwgOwor5LiN5L+h55SoID4gZnVzaGluJyd5b3VcIDsKK+a4rOWcsOe3miA+IHNva3VjaGlzZW5cIDsKK+mrmOacqOWxpCA+IGtvdWJva3Vzb3VcIDsKK+ahg+a6kOWigyA+IHRvdWdlbmt5b3VcIDsKK+ihqOWxpOaApyA+IGh5b3Vzb3VzZWlcIDsKK+WHuuW4reewvyA+IHNodXNzZWtpYm9cIDsKK+imqueOi+WmgyA+IHNoaW4nJ25vdWhpXCA7CivphY3ntabns7sgPiBoYWlreXV1a2VpXCA7CivlpInlnKflmaggPiBoZW4nJ2F0c3VraVwgOwor5a6f5L2T6Y+hID4gaml0dGFpa3lvdVwgOwor5YSq5Yud5p2vID4geXV1c2hvdWhhaVwgOwor6YGp5LiN6YGpID4gdGVraWZ1dGVraVwgOwor56S+5Lqk55qEID4gc2hha291dGVraVwgOwor6YWN57Wm57GzID4gaGFpa3l1dW1haVwgOwor5pu46KiY5bGAID4gc2hva2lreW9rdVwgOwor6LSI5Y+O6LOEID4gem91c2h1dXdhaVwgOwor5Ye45Ye557SZID4gdG90c3VvdXNoaVwgOwor6KOB5Yik5Lq6ID4gc2FpYmFuJyduaW5cIDsKK+S7iumBk+W/gyA+IGltYWRvdXNoaW5cIDsKK+e0ueS7i+iAhSA+IHNob3VrYWlzaGFcIDsKK+epuuS4reaIpiA+IGt1dWNodXVzZW5cIDsKK+awl+ixoeWtpiA+IGtpc2hvdWdha3VcIDsKK+ebuOe2muS6uiA+IHNvdXpva3VuaW5cIDsKK+iiq+WRiuW4rSA+IGhpa29rdXNla2lcIDsKK+S5s+iEguiCqiA+IG55dXVzaGlib3VcIDsKK+i+sueJp+WcsCA+IG5vdWJva3VjaGlcIDsKK+aCquaIr+WtkCA+IGl0YXp1cmFra29cIDsKK+WwhOeahOWgtCA+IHNoYXRla2lqb3VcIDsKK+WJjeWTqOaIpiA+IHplbnNob3VzZW5cIDsKK+azleWtpuiAhSA+IGhvdWdha3VzaGFcIDsKK+WFqOWbvee0mSA+IHplbmtva3VzaGlcIDsKK+aVkembo+iIuSA+IGt5dXVuYW5zZW5cIDsKK+mHkeiejeWCtSA+IGtpbicneXV1c2FpXCA7CivkuIrovInlnKcgPiBqb3VzYWlhdHN1XCA7Civlj6PllqflmKkgPiBrdWNoaWdlbmthXCA7CivmiJDkurrnl4UgPiBzZWlqaW5ieW91XCA7CivoirHmsLTmnKggPiBoYW5hbWl6dWtpXCA7CivpgKDlnJLooZMgPiB6b3Vlbmp1dHN1XCA7CivkubPohbrngo4gPiBueXV1c2VuJydlblwgOwor5rW35rWB55O2ID4ga2Fpcnl1dWJpblwgOwor5YiG5YWJ5a2mID4gYnVua291Z2FrdVwgOwor5rCR5Li755qEID4gbWluc2h1dGVraVwgOwor57K+55m957OWID4gc2VpaGFrdXRvdVwgOwor54Sh5qmf6LOqID4gbXVraXNoaXRzdVwgOwor6YCa6Kmx5paZID4gdHN1dXdhcnlvdVwgOwor5pS56Imv5ZOBID4ga2FpcnlvdWhpblwgOwor57K+55m957GzID4gc2VpaGFrdW1haVwgOwor5b+r5YmK6Yu8ID4ga2Fpc2FrdWtvdVwgOwor5pel5ZCR5rC0ID4gaGluYXRhbWl6dVwgOwor5omH5oOF55qEID4gc2Vuam91dGVraVwgOwor6Zmq5a+p5ZOhID4gYmFpc2hpbicnaW5cIDsKK+W4q+Wbo+mVtyA+IHNoaWRhbmNob3VcIDsKK+e1hOiBt+S9kyA+IHNvc2hva3V0YWlcIDsKK+aenOWun+mFkiA+IGthaml0c3VzaHVcIDsKK+Wpv+mkiuWtkCA+IG11a295b3VzaGlcIDsKK+WGmeecn+W4qyA+IHNoYXNoaW5zaGlcIDsKK+S4i+aknOafuyA+IHNoaXRha2Vuc2FcIDsKK+miqOmCquiWrCA+IGthemVndXN1cmlcIDsKK+WEquWLneaIpiA+IHl1dXNob3VzZW5cIDsKK+mAo+e2muS9kyA+IHJlbnpva3V0YWlcIDsKK+WkqeWIkeeXhSA+IHRlbmtlaWJ5b3VcIDsKK+WNiue/heebriA+IGhhbnNoaW1va3VcIDsKK+iMtueVquWKhyA+IGNoYWJhbmdla2lcIDsKK+WGmeecn+WxiyA+IHNoYXNoaW4nJ3lhXCA7Civoia/lsI7kvZMgPiByeW91ZG91dGFpXCA7CivmlZHkuJbkuLsgPiBreXV1c2Vpc2h1XCA7CivmspPmiYvps6UgPiBob3RvdG9naXN1XCA7CivmnKrnnYDmiYsgPiBtaWNoYWt1c2h1XCA7CivkvZzoqanms5UgPiBzYWt1c2hpaG91XCA7CivnnJ/prZrpsLkgPiBtYW5hZ2F0c3VvXCA7Civlh7rlvLXlk6EgPiBzaHV0Y2hvdWluXCA7Civkurrlipvou4ogPiBqaW5yaWtpc2hhXCA7Civlm73pmpvkurogPiBrb2t1c2FpamluXCA7CivmuKzplbfmqZ8gPiBzb2t1Y2hvdWtpXCA7CivlsI/kuLvoprMgPiBzaG91c2h1a2FuXCA7Civlrp/ot7XnmoQgPiBqaXNzZW50ZWtpXCA7CivpgKPntZDlmaggPiByZW5rZXRzdWtpXCA7CivogJDkuYXmgKcgPiB0YWlreXV1c2VpXCA7CivmnYnkuKbmnKggPiBzdWdpbmFtaWtpXCA7CivntYLkuoblvowgPiBzaHV1cnlvdWdvXCA7CivlpKnpgZPmp5ggPiB0ZW50b3VzYW1hXCA7Civmkq7lvbHpmoogPiBzYXRzdWVpdGFpXCA7CivoirHoj5bokrIgPiBoYW5hc2hvdWJ1XCA7CivmpJznnLzpj6EgPiBrZW5nYW5reW91XCA7CivphbjljJbniakgPiBzYW5rYWJ1dHN1XCA7CivlsI/kvZzmlpkgPiBrb3Nha3VyeW91XCA7CivlurbmsJHnmoQgPiBzaG9taW50ZWtpXCA7CivovKroiJ7mm7IgPiByaW5idWt5b2t1XCA7Civlh43ntZDlmaggPiB0b3VrZXRzdWtpXCA7CivlpI/onJzmn5EgPiBuYXRzdW1pa2FuXCA7CivnrYnmlrnnmoQgPiB0b3Vob3V0ZWtpXCA7CivlsqnmuIXmsLQgPiBpd2FzaGltaXp1XCA7Civnq4vmoYjogIUgPiByaXRzdWFuc2hhXCA7CivokZfov7DlrrYgPiBjaG9qdXRzdWthXCA7CivohLPmooXmr5IgPiBub3ViYWlkb2t1XCA7Civou43nlKjlk4EgPiBndW4nJ3lvdWhpblwgOwor5YOV5Luy6ZaTID4gYm9rdW5ha2FtYVwgOwor6Zuj6KaW6IG0ID4gbmFuc2hpY2hvdVwgOwor5b6z576p5b+DID4gdG9rdWdpc2hpblwgOwor5Yi65r+A5oCnID4gc2hpZ2VraXNlaVwgOwor6YCj57Wh5YWIID4gcmVucmFrdXNlblwgOwor6L+R5rW354mpID4ga2lua2FpbW9ub1wgOwor5p2x5rSL6YCaID4gdG91eW91dHN1dVwgOwor6YmE56Cy546JID4gdGVwcG91ZGFtYVwgOwor5L6h5qC86KGoID4ga2FrYWt1aHlvdVwgOwor6Kq/5YGc6ICFID4gY2hvdXRlaXNoYVwgOwor5q205Y+y6KazID4gcmVraXNoaWthblwgOwor5bu656+J6LK7ID4ga2VuY2hpa3VoaVwgOwor5Lq65oOF5YqHID4gbmluam91Z2VraVwgOwor5aSa56We5pWZID4gdGFzaGlua3lvdVwgOwor5YmN5ZOo5ZywID4gemVuc2hvdWNoaVwgOwor5LiA5bqm5LiIID4gaWNoaWRvZGFrZVwgOwor6YCj57Wh5LyaID4gcmVucmFrdWthaVwgOwor5LiA6Iis6IG3ID4gaXBwYW5zaG9rdVwgOwor56S+5Lya5a2mID4gc2hha2FpZ2FrdVwgOwor5YG15a+f5qmfID4gdGVpc2F0c3VraVwgOwor5a+d5Y+w6LuKID4gc2hpbmRhaXNoYVwgOwor5bm05Luj54mpID4gbmVuZGFpbW9ub1wgOwor5Lih5pu/5Lq6ID4gcnlvdWdhZW5pblwgOwor5ZCI5qC86ICFID4gZ291a2FrdXNoYVwgOwor5bCC55So57eaID4gc2VuJyd5b3VzZW5cIDsKK+W4r+Wfn+W5hSA+IHRhaWlraWhhYmFcIDsKK+WIneS4gOW/tSA+IHNob2ljaGluZW5cIDsKK+e0ueS7i+eKtiA+IHNob3VrYWlqb3VcIDsKK+a2iOavkuWZqCA+IHNob3Vkb2t1a2lcIDsKK+aXpumCo+ihhiA+IGRhbicnbmFzaHV1XCA7CivloIXkv6HnpLwgPiBrZW5zaGlucmVpXCA7CivlrpjlhazluoEgPiBrYW5rb3VjaG91XCA7CivogbTogZ7lg6cgPiBjaG91bW9uc291XCA7CivlpKrlubPmpb0gPiB0YWloZWlyYWt1XCA7CivkuKHlpKnnp6QgPiByeW91dGVuYmluXCA7CivlrZTpm4Dnn7MgPiBrdWpha3VzZWtpXCA7CivlibXkvZzmqKkgPiBzb3VzYWt1a2VuXCA7CivoibLkuovluKsgPiBpcm9nb3Rvc2hpXCA7CivpmY3prZTooZMgPiBrb3VtYWp1dHN1XCA7CivlsJHos4fmnKwgPiBzaG91c2hpaG9uXCA7Civos4fnlKPmoKogPiBzaGlzYW5rYWJ1XCA7CivmgZDmgJblv4MgPiBreW91ZnVzaGluXCA7Civlrp/pqJPnmoQgPiBqaWtrZW50ZWtpXCA7Civkvb/lvpLpgZQgPiBzaGl0b3RhY2hpXCA7CivlronphZLloLQgPiB5YXN1c2FrYWJhXCA7CivogbTogZ7kvJogPiBjaG91bW9ua2FpXCA7CivogrLlhZDpo58gPiBpa3VqaXNob2t1XCA7CivnlLfkvr/miYAgPiBvdG9rb2JlbmpvXCA7Civpppblrp/mpJwgPiBrdWJpamlra2VuXCA7CivntLDog57ohpwgPiBzYWlib3VtYWt1XCA7CivlkI3kurrogowgPiBtZWlqaW5oYWRhXCA7CivlsI/lrabmoKEgPiBzaG91Z2Fra291XCA7Civml6fol6nkuLsgPiBreXV1aGFuc2h1XCA7CivmsJHmnInmnpcgPiBtaW4nJ3l1dXJpblwgOwor6LWk6YmE6YmxID4gc2VraXRla2tvdVwgOwor5pys6I2J5a2mID4gaG9uem91Z2FrdVwgOwor5L+u5q2j6ICFID4gc2h1dXNlaXNoYVwgOwor6aKo6YCf6KiIID4gZnV1c29rdWtlaVwgOwor5r2c5Zyo55qEID4gc2VuemFpdGVraVwgOwor5aSJ5ouN5a2QID4gaGVuYnlvdXNoaVwgOwor5pen5oCd5oOzID4ga3l1dXNoaXNvdVwgOwor6ZuR5pyo5p6XID4gem91Ym9rdXJpblwgOwor5YWl5aC05Yi4ID4gbnl1dWpvdWtlblwgOwor5oim6ZeY55qEID4gc2VudG91dGVraVwgOwor57WC6Zu76LuKID4gc2h1dWRlbnNoYVwgOwor6IOM576O6a+oID4gc2VtaWt1amlyYVwgOwor56m05p2T5a2QID4gYW5hamFrdXNoaVwgOwor5LiA5bm05LitID4gaWNoaW5lbmp1dVwgOwor6YmE56Cy5rC0ID4gdGVwcG91bWl6dVwgOwor5YWo5Zu95rCRID4gemVua29rdW1pblwgOwor5Lq65Y+j5a2mID4gamlua291Z2FrdVwgOwor55u05ruR6ZmNID4gY2hva2tha2tvdVwgOwor5LiK55Sz5pu4ID4gam91c2hpbnNob1wgOwor6Yed5Y2D5pysID4gaGFyaXNlbmJvblwgOwor5LiJ5qWt5ZywID4gc2FuZ3lvdWNoaVwgOwor5Lim5aSn5oq1ID4gbmFtaXRhaXRlaVwgOwor55m96Zuy55+zID4gaGFrdXVuc2VraVwgOwor5qyg5bit6ICFID4ga2Vzc2VraXNoYVwgOwor5byV5b2T6YeRID4gaGlraWF0ZWtpblwgOwor6KOF6aO+6Z+zID4gc291c2hva3VvblwgOwor6KaW6IG06ICFID4gc2hpY2hvdXNoYVwgOwor5Lmz6Iet5YWQID4gbnl1dXNodXVqaVwgOwor5omL5rKi5pysID4gc2h1dGFrdWJvblwgOwor6K2m5oiS5b+DID4ga2Vpa2Fpc2hpblwgOwor5Lit5Zu96KqeID4gY2h1dWdva3Vnb1wgOwor5YWl5omL6ZujID4gbnl1dXNodW5hblwgOwor6Zu75rWB6KiIID4gZGVucnl1dWtlaVwgOwor5bGx5qKU5a2QID4ga3VjaGluYXNoaVwgOwor5ZCb5Li75Zu9ID4ga3Vuc2h1a29rdVwgOwor6Z+z5qW95a2mID4gb25nYWt1Z2FrdVwgOwor6Yyv5a2X55eHID4gc2FrdWppc2hvdVwgOwor5aSn55uk55+zID4gZGFpYmFuamFrdVwgOwor5YiG5a2Q6YePID4gYnVuc2hpcnlvdVwgOwor5LiA55Wq6Iy2ID4gaWNoaWJhbmNoYVwgOwor6YGF5Yi76ICFID4gY2hpa29rdXNoYVwgOwor5YaN55m66LazID4gc2FpaG9zc29rdVwgOwor5a++6Lmg55qEID4gdGFpc2hvdGVraVwgOwor5qeN6KGT5a62ID4gc291anV0c3VrYVwgOwor5q2M6Kyh5puyID4ga2F5b3VreW9rdVwgOwor5rS75Lq655S7ID4ga2F0c3VqaW5nYVwgOwor5LqM6KiA55uuID4gZnV0YWtvdG9tZVwgOwor5Y6f5a2Q6YePID4gZ2Vuc2hpcnlvdVwgOwor5aSn5bmF54mpID4gb29oYWJhbW9ub1wgOwor54us5aWP5LyaID4gZG9rdXNvdWthaVwgOwor6ISx6Iet5YmkID4gZGFzc2h1dXphaVwgOwor5b+r6YCf6Ii5ID4ga2Fpc29rdXNlblwgOwor55Sf5q6W5ZmoID4gc2Vpc2hva3VraVwgOwor6LuK5Lit6KuHID4gc2hhY2h1dWRhblwgOwor6Y6u6Z2Z5YmkID4gY2hpbnNlaXphaVwgOwor5ZCI5L2155eHID4gZ2FwcGVpc2hvdVwgOwor5oeH6Kaq5LyaID4ga29uc2hpbmthaVwgOwor54m954mb5pifID4ga2VuZ3l1dXNlaVwgOwor5Yi65r+A5YmkID4gc2hpZ2VraXphaVwgOwor6Iy25p+E5p2TID4gY2hhYmlzaGFrdVwgOwor5pyJ56We6KuWID4geXV1c2hpbnJvblwgOwor5ZG95Lit5pWwID4gbWVpY2h1dXN1dVwgOwor5pa56Kej55+zID4gaG91a2Fpc2VraVwgOwor5aOy5o6b6YeRID4gdXJpa2FrZWtpblwgOwor6LaF5beo5pifID4gY2hvdWt5b3NlaVwgOwor56uL5L2T55qEID4gcml0dGFpdGVraVwgOwor55m95pi85aSiID4gaGFrdWNodXVtdVwgOwor5paw6KiY6YyyID4gc2hpbmtpcm9rdVwgOwor5rOo6Kej6ICFID4gY2h1dWthaXNoYVwgOwor5L+d6YeI6YeRID4gaG9zaGFrdWtpblwgOwor5Y+N57KS5a2QID4gaGFucnl1dXNoaVwgOwor5LiL6Laz5paZID4gZ2Vzb2t1cnlvdVwgOwor5rOo5paH5pu4ID4gY2h1dW1vbnNob1wgOwor5YyW5ZCI54mpID4ga2Fnb3VidXRzdVwgOwor5bGL5b2i6Ii5ID4geWFrYXRhYnVuZVwgOwor6YGL5YuV5YqbID4gdW5kb3VyeW9rdVwgOwor6YqY6YqY55q/ID4gbWVpbWVpemFyYVwgOwor6buS5puc5bKpID4ga29rdXlvdWdhblwgOwor5Y6f5L2c6ICFID4gZ2Vuc2FrdXNoYVwgOwor5YW156uZ5a2mID4gaGVpdGFuZ2FrdVwgOwor57Sw5a+G55S7ID4gc2FpbWl0c3VnYVwgOwor5LiA55Wq57eaID4gaWNoaWJhbnNlblwgOwor5Y2K5Lq65YmNID4gaGFuJyduaW5tYWVcIDsKK+iEs+ail+WhniA+IG5vdWtvdXNva3VcIDsKK+WKh+WgtOihlyA+IGdla2lqb3VnYWlcIDsKK+adpeOAhemAsSA+IHJhaXJhaXNodXVcIDsKK+axuuitsOaoqSA+IGtldHN1Z2lrZW5cIDsKK+WKg+S4gOWMliA+IGtha3VpdHN1a2FcIDsKK+S4gOanveW8jyA+IGlzc291c2hpa2lcIDsKK+WuheaApeS+vyA+IHRha2t5dXViaW5cIDsKK+iAgeS6uueXhSA+IHJvdWppbmJ5b3VcIDsKK+WQiOagvOeCuSA+IGdvdWtha3V0ZW5cIDsKK+ippuS+m+WTgSA+IHNoaWt5b3VoaW5cIDsKK+S4reWgheaJiyA+IGNodXVrZW5zaHVcIDsKK+iRm+mlhemgrSA+IGt1enVtYW5qdXVcIDsKK+aOpeWuouWppiA+IHNla2t5YWt1ZnVcIDsKK+a0u+Wtl+acrCA+IGthdHN1amlob25cIDsKK+mcjeWFrOmzpSA+IGhvdG90b2dpc3VcIDsKK+WVj+mhjOWKhyA+IG1vbmRhaWdla2lcIDsKK+iBtOism+eUnyA+IGNob3Vrb3VzZWlcIDsKK+izvemKreeusSA+IHNhaXNlbmJha29cIDsKK+aPkOWUseiAhSA+IHRlaXNob3VzaGFcIDsKK+WZtOmjr+eJqSA+IGZ1bnBhbm1vbm9cIDsKK+WIhualteWMliA+IGJ1bmt5b2t1a2FcIDsKK+euoeeQhuWxgCA+IGthbnJpa3lva3VcIDsKK+inkumMkOWPsCA+IGtha3VzdWlkYWlcIDsKK+emj+WyoeecjCA+IGZ1a3Vva2FrZW5cIDsKK+eLrOWjh+WgtCA+IGRva3VkYW5qb3VcIDsKK+S7sumWk+ikkiA+IG5ha2FtYWJvbWVcIDsKK+maj+aDs+mMsiA+IHp1aXNvdXJva3VcIDsKK+aSruW9seiAhSA+IHNhdHN1ZWlzaGFcIDsKK+WmguiPqeiWqSA+IG55b2Jvc2F0c3VcIDsKK+WRveS4reW8viA+IG1laWNodXVkYW5cIDsKK+ecn+WIhuaVsCA+IHNoaW5idW5zdXVcIDsKK+mbh+eUqOS4uyA+IGtveW91bnVzaGlcIDsKK+mJhOegsuW8viA+IHRlcHBvdWRhbWFcIDsKK+Wxr+eUsOWFtSA+IHRvbmRlbmhlaVwgOwor5pW16YOo6ZqKID4gdGVraWJ1dGFpXCA7CivmirXlvZPmqKkgPiB0ZWl0b3VrZW5cIDsKK+adkeWkq+WtkCA+IHNvbnB1dXNoaVwgOwor5o+a5rC06LuKID4geW91c3Vpc2hhXCA7CivmlZHmj7Tou40gPiBreXV1ZW5ndW5cIDsKK+iCsuavm+WJpCA+IGlrdW1vdXphaVwgOwor6buS6aCt5be+ID4ga3Vyb3p1a2luXCA7Civop6Pmr5LliaQgPiBnZWRva3V6YWlcIDsKK+mrmOWnv+WLoiA+IGtvdXNoaXNlaVwgOwor5bGL5Y+w5bqXID4geWF0YWltaXNlXCA7Civotbfno4HlipsgPiBraWppcnlva3VcIDsKK+WOn+eUn+aelyA+IGdlbnNlaXJpblwgOwor5q205Y+y55S7ID4gcmVraXNoaWdhXCA7CivliY3ljYrnlJ8gPiB6ZW5oYW5zZWlcIDsKK+WtmOWcqOirliA+IHNvbnphaXJvblwgOwor5biM5pyb55qEID4ga2lib3V0ZWtpXCA7Civkurrlt6Xpm7cgPiBqaW5rb3VyYWlcIDsKK+WwgueUqOapnyA+IHNlbicneW91a2lcIDsKK+W6pumHj+ihoSA+IGRvcnlvdWtvdVwgOwor5YWa5aSn5LyaID4gdG91dGFpa2FpXCA7CivlkIzkuZfogIUgPiBkb3Vqb3VzaGFcIDsKK+WKtOWLleiAhSA+IHJvdWRvdXNoYVwgOwor5Y2Y5pWw5Z6LID4gdGFuc3V1a2VpXCA7CivlvpPlhYTlvJ8gPiBqdXVrZWl0ZWlcIDsKK+m9p+atr+mhniA+IGdlc3NoaXJ1aVwgOwor5Yag5pyo6ZaAID4ga2FidWtpbW9uXCA7Civku5jlsZ7lk4EgPiBmdXpva3VoaW5cIDsKK+ioquWVj+iAhSA+IGhvdW1vbnNoYVwgOwor55m66aCt5Lq6ID4gaG90dG91bmluXCA7Civmlofpgbjlt6UgPiBidW5zZW5rb3VcIDsKK+WQjOWxheS6uiA+IGRvdWt5b25pblwgOwor5Y+C6Kmj5Lq6ID4gc2Fua2VpbmluXCA7Civlvbnlk6HkvJogPiB5YWt1aW5rYWlcIDsKK+WtpOeri+iqniA+IGtvcml0c3Vnb1wgOwor55Sf6I+T5a2QID4gbmFtYWdhc2hpXCA7Civli5jlrprmm7ggPiBrYW5qb3VzaG9cIDsKK+mWi+WCrOWcsCA+IGthaXNhaWNoaVwgOwor6JC95b6M6ICFID4gcmFrdWdvc2hhXCA7CivnlLflrZDmoKEgPiBkYW5zaGlrb3VcIDsKK+S4gOiLpuWKtCA+IGhpdG9rdXJvdVwgOwor5YKs5raZ5by+ID4gc2FpcnVpZGFuXCA7CivntbHmsrvmqKkgPiB0b3VjaGlrZW5cIDsKK+emgei7oui8iSA+IGtpbnRlbnNhaVwgOwor5riv5rm+56iOID4ga291d2FuemVpXCA7CivkuI3lr5vlrrkgPiBmdWthbicneW91XCA7CivkuI3kv6Hku7AgPiBmdXNoaW5rb3VcIDsKK+WkquWFrOacmyA+IHRhaWtvdWJvdVwgOwor5Li45ous5bynID4gbWFydWdha2tvXCA7CivlpJblkJHmgKcgPiBnYWlrb3VzZWlcIDsKK+S4jei2s+WJjSA+IHRhcmF6dW1hZVwgOwor5LqM5Zu96ZaTID4gbmlrb2t1a2FuXCA7CivkvJrokazogIUgPiBrYWlzb3VzaGFcIDsKK+emj+Wvv+iNiSA+IGZ1a3VqdXNvdVwgOwor5rOV5pu555WMID4gaG91c291a2FpXCA7CivpgYvovLjnnIEgPiB1bicneXVzaG91XCA7CivpgYvovLjnm7ggPiB1bicneXVzaG91XCA7CivkuZfou4rpp4UgPiBqb3VzaGFla2lcIDsKK+acnemuruiqniA+IGNob3VzZW5nb1wgOwor6Z2p5ZG95a62ID4ga2FrdW1laWthXCA7CivmqZ/lr4bosrsgPiBraW1pdHN1aGlcIDsKK+S6uumAoOexsyA+IGppbnpvdW1haVwgOwor5rSL5ZOB5bqXID4geW91aGludGVuXCA7CivlgIvkurrnmoQgPiBrb2ppbnRla2lcIDsKK+S4gOWFg+WMliA+IGljaGlnZW5rYVwgOwor5Lyd6YGT6Ii5ID4gZGVuZG91c2VuXCA7CivlnKfov6vmhJ8gPiBhcHBha3VrYW5cIDsKK+S6iOmYsuetliA+IHlvYm91c2FrdVwgOwor6Iul6Zqg5bGFID4gd2FrYWlua3lvXCA7CivlrprkvY/ogIUgPiB0ZWlqdXVzaGFcIDsKK+awtOa6tuaApyA+IHN1aXlvdXNlaVwgOwor6YG66KiA5pu4ID4geXVpZ29uc2hvXCA7Civku6Pnh4Pou4ogPiBkYWluZW5zaGFcIDsKK+WkieaIkOWyqSA+IGhlbnNlaWdhblwgOwor5LiA5a6a6YePID4gaXR0ZWlyeW91XCA7Civoi6bngbDnn7MgPiBrdWthaXNla2lcIDsKK+W3puW/g+aIvyA+IHNhc2hpbmJvdVwgOwor6Lyq55Wq5Yi2ID4gcmluYmFuc2VpXCA7Civoq4vpoZjogIUgPiBzZWlnYW5zaGFcIDsKK+Wcp+i/q+aApyA+IGFwcGFrdXNlaVwgOwor576F55Sf6ZaAID4gcmFzaG91bW9uXCA7CivlgIvkurrnlKggPiBrb2ppbicneW91XCA7Civkuqvlj5fogIUgPiBreW91anVzaGFcIDsKK+W+oei2s+WKtCA+IGdvc29rdXJvdVwgOwor54is6Jmr6aGeID4gaGFjaHV1cnVpXCA7Civov7fkv6HlrrYgPiBtZWlzaGlua2FcIDsKK+abuOewoeaWhyA+IHNob2thbmJ1blwgOwor6Kix5Y+v6Ki8ID4ga3lva2FzaG91XCA7CivmsJHkuLvlhZogPiBtaW5zaHV0b3VcIDsKK+WkquWIgOWFiCA+IHRhY2hpc2FraVwgOwor5Lyd6YGT6ICFID4gZGVuZG91c2hhXCA7Civnm6PoppboiLkgPiBrYW5zaGlzZW5cIDsKK+e4hOaaluewviA+IG5hd2Fub3JlblwgOwor57a/6KO95ZOBID4gbWVuc2VpaGluXCA7Civlh7rotbDppqwgPiBzaHVzc291YmFcIDsKK+S6jOmajuW7uiA+IG5pa2FpZGF0ZVwgOwor5L+u5q2j5qGIID4gc2h1dXNlaWFuXCA7CivlrqPkvJ3miKYgPiBzZW5kZW5zZW5cIDsKK+iri+iyoOalrSA+IHVrZW9pZ3lvdVwgOwor6aGe5Lq654y/ID4gcnVpamluJydlblwgOwor5ZCI55CG55qEID4gZ291cml0ZWtpXCA7Civli53osqDluKsgPiBzaG91YnVzaGlcIDsKK+ezuOiar+iakyA+IGl0b21pbWl6dVwgOwor5bu26ZW35oimID4gZW5jaG91c2VuXCA7CivlnJ/lu7rmpa0gPiBkb2tlbmd5b3VcIDsKK+i0iOWRiOWTgSA+IHpvdXRlaWhpblwgOwor6YeR6Ymx5ZywID4ga2lua291Y2hpXCA7CivmmLzlvqHpo68gPiBoaXJ1Z29oYW5cIDsKK+iSmeWPpOilniA+IG1vdWtvaGlkYVwgOwor5Y2K5pyI5YiKID4gaGFuZ2Vra2FuXCA7CivnnIzmsJHnqI4gPiBrZW5taW56ZWlcIDsKK+aJh+WLleiAhSA+IHNlbmRvdXNoYVwgOwor6ZuG5Lya5omAID4gc2h1dWthaWpvXCA7CivmnKjlt6XloLQgPiBtb2trb3Vqb3VcIDsKK+a0kuiQveiAhSA+IHNoYXJlbW9ub1wgOwor5oim6ZeY5bi9ID4gc2VudG91Ym91XCA7CivlpJXljJbnsqcgPiB5dXVnZXNob3VcIDsKK+WPr+WLleWgsCA+IGthZG91emVraVwgOwor5aSn5bm05aKXID4gb290b3NoaW1hXCA7Civms5XnkIblraYgPiBob3VyaWdha3VcIDsKK+m7hOmgt+ibhyA+IGFvZGFpc2hvdVwgOwor6YCP5piO5L2TID4gdG91bWVpdGFpXCA7CivmlYXpmpzou4ogPiBrb3Nob3VzaGFcIDsKK+ebo+imluiAhSA+IGthbnNoaXNoYVwgOwor5byB5oW26I2JID4gYmVua2Vpc291XCA7CivlrZjlnKjogIUgPiBzb256YWlzaGFcIDsKK+WFqOWbveWMuiA+IHplbmtva3VrdVwgOwor5aSp55qH5peXID4gdGVuJydub3VraVwgOwor5a6Y5YOa5YyWID4ga2FucnlvdWthXCA7Civml6LlvpfmqKkgPiBraXRva3VrZW5cIDsKK+WFiee3mumKgyA+IGtvdXNlbmp1dVwgOwor5Luu6Z2i5YqHID4ga2FtZW5nZWtpXCA7CivmqZ/morDnmoQgPiBraWthaXRla2lcIDsKK+eGqOaWl+e0mSA+IG5vc2hpZ2FtaVwgOwor5YaZ5qSN5qmfID4gc2hhc2hva2tpXCA7CivmnKzkvZPoq5YgPiBob250YWlyb25cIDsKK+eZuuWjsOazlSA+IGhhc3NlaWhvdVwgOwor57Wm5rmv5ZmoID4ga3l1dXRvdWtpXCA7CivpgYroiIjosrsgPiB5dXVreW91aGlcIDsKK+W5s+WuieS6rCA+IGhlaWFua3lvdVwgOwor55Sf5qyg5Ly4ID4gbmFtYWFrdWJpXCA7CivpgIHku5jlhYggPiBzb3VmdXNha2lcIDsKK+WklumHjuW4rSA+IGdhaXlhc2VraVwgOwor56uL5L2T5oimID4gcml0dGFpc2VuXCA7Civnm6PoppbntrIgPiBrYW5zaGltb3VcIDsKK+aciOawtOmHkSA+IGdlc3N1aWtpblwgOwor5q2j5oqV5omLID4gc2VpdG91c2h1XCA7CivpgaDotaTlpJYgPiBlbnNla2lnYWlcIDsKK+aMh+ekuuiWrCA+IHNoaWppeWFrdVwgOwor5L+h5Y+35qmfID4gc2hpbmdvdWtpXCA7CivkupXmiLjou4ogPiBpZG9ndXJ1bWFcIDsKK+acieWQjeeojiA+IHl1dW1laXplaVwgOwor56uL5L2T5oSfID4gcml0dGFpa2FuXCA7CivlhKrlhYjmqKkgPiB5dXVzZW5rZW5cIDsKK+Wun+mok+WgtCA+IGppa2tlbmpvdVwgOwor54mh5Li56aSFID4gYm90YW1vY2hpXCA7CivntYzlm6PpgKMgPiBrZWlkYW5yZW5cIDsKK+aWremgreWPsCA+IGRhbnRvdWRhaVwgOwor5LqI57SE6ICFID4geW95YWt1c2hhXCA7CivntYLlpJznga8gPiBzaHV1eWF0b3VcIDsKK+aal+m7kumdoiA+IGFua29rdW1lblwgOwor5a6j5Lyd5bGLID4gc2VuZGVuJyd5YVwgOwor5Luj5pu/5ZOBID4gZGFpdGFpaGluXCA7Civngq3phbjloakgPiB0YW5zYW4nJ2VuXCA7CivkuIvlrr/lsYsgPiBnZXNodWt1eWFcIDsKK+ijnOe1pue3miA+IGhva3l1dXNlblwgOwor5ZCN5Lq65oimID4gbWVpamluc2VuXCA7CivkuIDoiKzluK0gPiBpcHBhbnNla2lcIDsKK+mBrembo+iAhSA+IHNvdW5hbnNoYVwgOwor5Y6f5a2Q56CyID4gZ2Vuc2hpaG91XCA7CivlgJLnva7ms5UgPiB0b3VjaGlob3VcIDsKK+eFp+a6luWZqCA+IHNob3VqdW5raVwgOwor5Y6f5L2P5rCRID4gZ2VuanV1bWluXCA7CivogZblhazkvJogPiBzZWlrb3VrYWlcIDsKK+WOn+eUo+WcsCA+IGdlbnNhbmNoaVwgOwor6Z2p5ZG95YWQID4ga2FrdW1laWppXCA7CivlhKrpp7/ppqwgPiB5dXVzaHVuYmFcIDsKK+S4u+aDheirliA+IHNodWpvdXJvblwgOwor6aqo6JGj5ZOBID4ga290dG91aGluXCA7CivnrqHosqHkurogPiBrYW56YWluaW5cIDsKK+a8lOWKh+eVjCA+IGVuZ2VraWthaVwgOwor6YqA6Zaj5a+6ID4gZ2lua2FrdWppXCA7Civpoqjps6XluqcgPiBmdXVjaG91emFcIDsKK+aMn+eevOWZqCA+IGt5b3VrZW5raVwgOwor5pWZ5o6I5rOVID4ga3lvdWp1aG91XCA7Civpm7vmsJfph5wgPiBkZW5raWdhbWFcIDsKK+mbu+awl+mHjyA+IGRlbmtpcnlvdVwgOwor54K55YWJ5rqQID4gdGVua291Z2VuXCA7Civml6XliIrntJkgPiBuaWtrYW5zaGlcIDsKK+mWk+eLguiogCA+IGFpa3lvdWdlblwgOwor6ICB5Lq65oCnID4gcm91amluc2VpXCA7CivoqIjmlbDnrqEgPiBrZWlzdXVrYW5cIDsKK+mHkeWIqememCA+IGtpbnJpc2hvdVwgOwor5Luu5pS/5bqcID4ga2FyaXNlaWZ1XCA7Civnj77ku6PniYggPiBnZW5kYWliYW5cIDsKK+S9juWnv+WLoiA+IHRlaXNoaXNlaVwgOwor5oCl6ZmN5LiLID4ga3l1dWtvdWthXCA7Civkv6Hlj7fml5cgPiBzaGluZ291a2lcIDsKK+erpeipseWKhyA+IGRvdXdhZ2VraVwgOwor5a6f6aiT5Y+wID4gamlra2VuZGFpXCA7CivmsLTmiJDlsqkgPiBzdWlzZWlnYW5cIDsKK+W+oeWvruS6uiA+IGdvcnlvdW5pblwgOwor6Ieq6Lqr55WqID4gamlzaGluYmFuXCA7CivnoILmmYLoqIggPiBzdW5hZG9rZWlcIDsKK+ihgOmBlOejqCA+IGNoaWRhcnVtYVwgOwor6aSK6baP5aC0ID4geW91a2Vpam91XCA7CivohLHotbDlhbUgPiBkYXNzb3VoZWlcIDsKK+iNmOWckuWItiA+IHNob3VlbnNlaVwgOwor5YmN5Y2K5oimID4gemVucGFuc2VuXCA7CivoqJPoqYHlraYgPiBrdW5rb2dha3VcIDsKK+i7iuS6leaIuCA+IGt1cnVtYWlkb1wgOwor5aSW5YuZ55yBID4gZ2FpbXVzaG91XCA7CivmlrDmmYLku6MgPiBzaGluamlkYWlcIDsKK+a4ieWklumDqCA+IHNob3VnYWlidVwgOwor5oSf5YWJ57SZID4ga2Fua291c2hpXCA7Civmkq7lvbHmqZ8gPiBzYXRzdWVpa2lcIDsKK+S4gOeUn+a2ryA+IGlzc2hvdWdhaVwgOwor5rC05rqQ5ZywID4gc3VpZ2VuY2hpXCA7CivmlbTmtYHlmaggPiBzZWlyeXV1a2lcIDsKK+mKgOihjOeVjCA+IGdpbmtvdWthaVwgOwor54++5L2P5omAID4gZ2VuanV1c2hvXCA7CivliY3lj6PkuIogPiBtYWVrb3Vqb3VcIDsKK+WcsOWvvuepuiA+IGNoaXRhaWt1dVwgOwor56ys5LiA6ZuGID4gZGFpaXNzaHV1XCA7CivlpKnnmoflrrYgPiB0ZW4nJ25vdWtlXCA7CivntabmsrnoiLkgPiBreXV1eXVzZW5cIDsKK+S7o+abuOS6uiA+IGRhaXNob25pblwgOwor5Ym15aeL6ICFID4gc291c2hpc2hhXCA7CivkvqHmoLzluK8gPiBrYWtha3V0YWlcIDsKK+WgtOaJgOafhCA+IGJhc2hvZ2FyYVwgOwor5L+h5Y+35omAID4gc2hpbmdvdWpvXCA7CivmgqrlvqrnkrAgPiBha3VqdW5rYW5cIDsKK+Wun+mok+WApCA+IGppa2tlbmNoaVwgOwor5LiN6aKo5rWBID4gYnVmdXVyeXV1XCA7CivlrqPkvJ3lk6EgPiBzZW5kZW4nJ2luXCA7CivpmaTpm7vph50gPiBqb2RlbmJhcmlcIDsKK+ihm+eUn+WtpiA+IGVpc2VpZ2FrdVwgOwor55m66KaL6ICFID4gaGFra2Vuc2hhXCA7Civms5XnjovluoEgPiBob3VvdWNob3VcIDsKK+S4gOeVquaJiyA+IGljaGliYW50ZVwgOwor6ZmQ55WM54K5ID4gZ2Vua2FpdGVuXCA7Civmnb/nm67ntJkgPiBpdGFtZWdhbWlcIDsKK+aEgeWYhuWgtCA+IHNodXV0YW5iYVwgOwor6Iqx55u45pKyID4gaGFuYXp1bW91XCA7Civmra/np5HlraYgPiBzaGlrYWdha3VcIDsKK+S7leS6i+edgCA+IHNoaWdvdG9naVwgOwor5YWJ5paH56S+ID4ga291YnVuc2hhXCA7Civpq5jnh6XlnLAgPiBrb3Vzb3VjaGlcIDsKK+i+suWcsOazlSA+IG5vdWNoaWhvdVwgOwor6JGb5qC55rmvID4ga2Fra29udG91XCA7CivlhYnpm7vnrqEgPiBrb3VkZW5rYW5cIDsKK+i6q+WIhuafhCA+IG1pYnVuZ2FyYVwgOwor6Kaz6Kan5Yi4ID4ga2FucmFua2VuXCA7CivnpoHliLblk4EgPiBraW5zZWloaW5cIDsKK+W9k+expOiAhSA+IHRvdXNlbnNoYVwgOwor6YCy5YyW6KuWID4gc2hpbmthcm9uXCA7Civlho3mpJzoqI4gPiBzYWlrZW50b3VcIDsKK+WNiuWkj+eUnyA+IGhhbmdlc2hvdVwgOwor5b6h6aOv5pmCID4gZ29oYW5kb2tpXCA7CivmhJvlvJ/lrZAgPiBtYW5hZGVzaGlcIDsKK+aJi+W8leabuCA+IHRlYmlraXNob1wgOwor5o+u55m65rK5ID4ga2loYXRzdXl1XCA7Civnv7DmnpfpmaIgPiBrYW5yaW4nJ2luXCA7CivmlbTlkIjmgKcgPiBzZWlnb3VzZWlcIDsKK+aWmeeQhueVqiA+IHJ5b3VyaWJhblwgOwor5Y2B5LqM5a6uID4ganV1bmlreXV1XCA7CivnlJ/nlKPosqEgPiBzZWlzYW56YWlcIDsKK+S4gOS7o+iomCA+IGljaGlkYWlraVwgOwor5YWD5aeL56WtID4gZ2Vuc2hpc2FpXCA7CivkuqHlkb3ogIUgPiBib3VtZWlzaGFcIDsKK+acieeojuWTgSA+IHl1dXplaWhpblwgOwor5aSn5L2/6aSoID4gdGFpc2hpa2FuXCA7CivpmZDlrproqZ4gPiBnZW50ZWlzaGlcIDsKK+eEoemnhOmjryA+IG11ZGFtZXNoaVwgOwor57eP5rG6566XID4gc291a2Vzc2FuXCA7CivmrbTlj7LlrrYgPiByZWtpc2hpa2FcIDsKK+a1t+awtOW4vSA+IGthaXN1aWJvdVwgOwor5o6n6Zmk6aGNID4ga291am9nYWt1XCA7CivlrrbmlL/lraYgPiBrYXNlaWdha3VcIDsKK+WGheW8n+WtkCA+IHVjaGlkZXNoaVwgOwor5aSa5b+Z5LitID4gdGFib3VjaHV1XCA7Civljp/lr7jlpKcgPiBnZW5zdW5kYWlcIDsKK+apn+iDveeahCA+IGtpbm91dGVraVwgOwor5aWz5oCn55qEID4gam9zZWl0ZWtpXCA7Civmu5Hnv5TmqZ8gPiBrYXNzaG91a2lcIDsKK+W5tOWni+eKtiA+IG5lbnNoaWpvdVwgOwor5a2Q54Wp5oKpID4ga29ib24nJ25vdVwgOwor5oyH5Y2X6LuKID4gc2hpbmFuc2hhXCA7CivlhpnnlJ/mlocgPiBzaGFzZWlidW5cIDsKK+WGhemBiuaYnyA+IG5haXl1dXNlaVwgOwor6Ium6KGM6ICFID4ga3VneW91c2hhXCA7CivnvarmgqrmhJ8gPiB6YWlha3VrYW5cIDsKK+eEoeeXh+eKtiA+IG11c2hvdWpvdVwgOwor6KeS56CC57OWID4ga2FrdXphdG91XCA7CivnlJ/ov5TkuosgPiBuYW1haGVuamlcIDsKK+WNmOe0lOaApyA+IHRhbmp1bnNlaVwgOwor5aSn5YOn5q2jID4gZGFpc291am91XCA7CivkuIDouqvkuIogPiBpc3NoaW5qb3VcIDsKK+S/rumBk+WwvCA+IHNodXVkb3VuaVwgOwor6LuN5pS+6YCBID4gZ3VuaG91c291XCA7CivnmbvoqJjmlpkgPiB0b3VraXJ5b3VcIDsKK+iLseWbveS6uiA+IGVpa29rdWppblwgOwor5YG96Ki86ICFID4gZ2lzaG91c2hhXCA7CivpgZPot6/mqYsgPiBkb3Vyb2t5b3VcIDsKK+aSruW9seaJgCA+IHNhdHN1ZWlqb1wgOwor5b2i5oWL6KuWID4ga2VpdGFpcm9uXCA7Civlgb3oqLznvaogPiBnaXNob3V6YWlcIDsKK+mmluisgOiAhSA+IHNodWJvdXNoYVwgOwor6KSH5Y+35YyWID4gZnVrdWdvdWthXCA7CivnrKzkuIDovK8gPiBkYWlpc3NodXVcIDsKK+Wni+ellumzpSA+IHNoaXNvY2hvdVwgOwor54m56Kix5rOVID4gdG9ra3lvaG91XCA7CivppIrmr5vliaQgPiB5b3Vtb3V6YWlcIDsKK+a1ruawl+iAhSA+IHV3YWtpbW9ub1wgOwor5pqX6buS6KGXID4gYW5rb2t1Z2FpXCA7CivlpKflhYPluKUgPiBkYWlnZW5zdWlcIDsKK+WFjeioseeKtiA+IG1lbmt5b2pvdVwgOwor5aSc5YWJ6JmrID4geWFrb3VjaHV1XCA7CivlpYflpKnng4ggPiBraXRlcmV0c3VcIDsKK+WMmeWKoOa4myA+IHNhamlrYWdlblwgOwor5oqV5omL5p2/ID4gdG91c2h1YmFuXCA7CivlvpPmpa3lk6EgPiBqdXVneW91aW5cIDsKK+aJueipleecvCA+IGhpaHlvdWdhblwgOwor5L+u6YGT5aWzID4gc2h1dWRvdWpvXCA7CivlnKfnl5vngrkgPiBhdHRzdXV0ZW5cIDsKK+a1t+WFtemaiiA+IGthaWhlaXRhaVwgOwor6ICD6Kqy6KGoID4ga291a2FoeW91XCA7Civpuqboir3ns5YgPiBiYWt1Z2F0b3VcIDsKK+aWh+iKuOashCA+IGJ1bmdlaXJhblwgOwor5aSc55uy55eHID4geWFtb3VzaG91XCA7CivmipXnqL/ogIUgPiB0b3Vrb3VzaGFcIDsKK+eEoeW3ruWIpSA+IG11c2FiZXRzdVwgOwor56m65oy66ZqKID4ga3V1dGVpdGFpXCA7Civlvq7oqr/mlbQgPiBiaWNob3VzZWlcIDsKK+WPo+W/oOWunyA+IGt1Y2hpbWFtZVwgOwor6Iqx5qih5qeYID4gaGFuYW1veW91XCA7CivmnInlkI3moKEgPiB5dXVtZWlrb3VcIDsKK+eJueioseaoqSA+IHRva2t5b2tlblwgOwor5qeL5oiQ5a2QID4ga291c2Vpc2hpXCA7Civoq4vpoZjmm7ggPiBzZWlnYW5zaG9cIDsKK+aLoeWjsOapnyA+IGtha3VzZWlraVwgOwor6KiO6KuW5LyaID4gdG91cm9ua2FpXCA7Civmi5jnva7miYAgPiBrb3VjaGlzaG9cIDsKK+S6pOa4ieWToSA+IGtvdXNob3VpblwgOwor5Yq05b255aC0ID4gcm91ZWtpam91XCA7CivplbflsL7pto8gPiBuYWdhb2RvcmlcIDsKK+awtOmKgOeBryA+IHN1aWdpbnRvdVwgOwor5Li75oiQ5YiGID4gc2h1c2VpYnVuXCA7Civkv67ovp7ms5UgPiBzaHV1amlob3VcIDsKK+WNk+ipseS8miA+IHRha3V3YWthaVwgOwor5omL5bel6Iq4ID4gc2h1a291Z2VpXCA7CivmlpnnkIbms5UgPiByeW91cmlob3VcIDsKK+aJv+iqjeWbsyA+IHNob3VuaW56dVwgOwor5pys5bO25Lq6ID4gaG9udG91amluXCA7CivmgZLluLjmgKcgPiBrb3Vqb3VzZWlcIDsKK+mVt+WwvumzpSA+IG5hZ2FvZG9yaVwgOwor57WE57mU5YyWID4gc29zaGlraWthXCA7CivlvqHmlrDpgKAgPiBnb3NoaW56b3VcIDsKK+S5vumbu+axoCA+IGthbmRlbmNoaVwgOwor6Ieq5L2c6L6yID4gamlzYWt1bm91XCA7CivliLbnqbrmqKkgPiBzZWlrdXVrZW5cIDsKK+iKseaksOiPnCA+IGhhbmF5YXNhaVwgOwor56u25oqA5aC0ID4ga3lvdWdpam91XCA7Civml6fliLbluqYgPiBreXV1c2VpZG9cIDsKK+WFseWSjOaUvyA+IGt5b3V3YXNlaVwgOwor5bCK546L5a62ID4gc29uJydub3VrYVwgOwor6YGF6YCy5YWQID4gY2hpc2hpbmppXCA7CivmoITppIrlraYgPiBlaXlvdWdha3VcIDsKK+S4jeS7i+WFpSA+IGZ1a2Fpbnl1dVwgOwor5oqV5omL5oimID4gdG91c2h1c2VuXCA7CivniqzlvLXlrZAgPiBpbnVoYXJpa29cIDsKK+mAgembu+e3miA+IHNvdWRlbnNlblwgOwor5Y216buE5ZqiID4gcmFuJydvdW5vdVwgOwor5rCX5Zyn6KiIID4ga2lhdHN1a2VpXCA7Civpp4bomavliaQgPiBrdWNodXV6YWlcIDsKK+eKrOi/veeJqSA+IGludW91bW9ub1wgOwor5LiJ5paR6baJID4gbWlmdXV6dXJhXCA7Civmi43lrZDmnKggPiBoeW91c2hpZ2lcIDsKK+Wkmuavm+S9nCA+IHRhbW91c2FrdVwgOwor5omL6I2354mpID4gdGVuaW1vdHN1XCA7Civlh6DluLPpnaIgPiBraWNob3VtZW5cIDsKK+aooeevhOeahCA+IG1vaGFudGVraVwgOwor562G6KiY5bizID4gaGlra2ljaG91XCA7Civplbfot53pm6IgPiBjaG91a3lvcmlcIDsKK+e+juWwkeW5tCA+IGJpc2hvdW5lblwgOwor5Lm+54el5p2QID4ga2Fuc291emFpXCA7CivnlJ/nlKPogIUgPiBzZWlzYW5zaGFcIDsKK+S4jeacjeW+kyA+IGZ1ZnVrdWp1dVwgOwor5pys5qC85rS+ID4gaG9ua2FrdWhhXCA7Civljp/lrZDmiKYgPiBnZW5zaGlzZW5cIDsKK+S4jeWkiemHjyA+IGZ1aGVucnlvdVwgOwor6aGU6aa05p+TID4ga2FvbmFqaW1pXCA7CivokL3okYnmqLkgPiByYWt1eW91anVcIDsKK+S4iemgreetiyA+IHNhbnRvdWtpblwgOwor5Luj6KiA6ICFID4gZGFpZ2Vuc2hhXCA7Civmj67nmbrluqYgPiBraWhhdHN1ZG9cIDsKK+Wkp+iHqueEtiA+IGRhaXNoaXplblwgOwor5LiN5pmC552AID4gZnVqaWNoYWt1XCA7CivntbHliLbnt5ogPiB0b3VzZWlzZW5cIDsKK+WFiembu+axoCA+IGtvdWRlbmNoaVwgOwor6Iqx5L6b6aSKID4gaGFuYWt1eW91XCA7Civpm6PllY/poYwgPiBuYW5tb25kYWlcIDsKK+e2membu+mNtSA+IGtlaWRlbmtlblwgOwor5qmf5qKw5a2mID4ga2lrYWlnYWt1XCA7Civlqabkurrnl4UgPiBmdWppbmJ5b3VcIDsKK+WQjOWlveiAhSA+IGRvdWtvdXNoYVwgOwor5YG95aaK5aigID4gZ2luaW5zaGluXCA7CivngavnuITpioMgPiBoaW5hd2FqdXVcIDsKK+WJjeWLmOWumiA+IG1hZWthbmpvdVwgOwor5pei55m66KGoID4ga2loYXBweW91XCA7CivnlLLnirbohbogPiBrb3Vqb3VzZW5cIDsKK+eoveWPpOS6iyA+IGtlaWtvZ290b1wgOwor5oiQ5paH5rOVID4gc2VpYnVuaG91XCA7Civopo/moLzlk4EgPiBraWtha3VoaW5cIDsKK+S7leS6i+aXpSA+IHNoaWdvdG9iaVwgOwor5YiG5LiO56iOID4gYnVuJyd5b3plaVwgOwor55m954Sh5Z6iID4gc2hpcm9tdWt1XCA7CivkuoznrYnos54gPiBuaXRvdXNob3VcIDsKK+WumuS8keaXpSA+IHRlaWt5dXViaVwgOwor55m954Gv5rK5ID4gaGFrdXRvdXl1XCA7CivpgYvou6LluK0gPiB1bnRlbnNla2lcIDsKK+WFrOawkemkqCA+IGtvdW1pbmthblwgOwor56+k6L6y5a62ID4gdG9rdW5vdWthXCA7CivojInojonoirEgPiBtYXRzdXJpa2FcIDsKK+S6uuW3pea4ryA+IGppbmtvdWtvdVwgOwor6auY6Zm15ZyfID4ga291cnlvdWRvXCA7CivmhJ/lhYnmnb8gPiBrYW5rb3ViYW5cIDsKK+S4ieS5l+aguSA+IHNhbmpvdWtvblwgOwor55S36aKo5ZGCID4gb3Rva29idXJvXCA7CivlpbPpg47oirEgPiBvbWluYWVzaGlcIDsKK+a7nue0jeiAhSA+IHRhaW5vdXNoYVwgOwor5Lyd6YGT5birID4gZGVuZG91c2hpXCA7Civlv5zlj6zlhbUgPiBvdXNob3VoZWlcIDsKK+ikh+WNgeWtlyA+IGZ1a3VqdXVqaVwgOwor5YaN5qeL5oiQID4gc2Fpa291c2VpXCA7CivmnInmrrXogIUgPiB5dXVkYW5zaGFcIDsKK+WNmOiho+eJqSA+IGhpdG9lbW9ub1wgOwor6KaP5qC85YikID4ga2lrYWt1YmFuXCA7CivnrKzkuInogIUgPiBkYWlzYW5zaGFcIDsKK+S9k+aTjeWgtCA+IHRhaXNvdWpvdVwgOwor5Li75rWB5rS+ID4gc2h1cnl1dWhhXCA7CivluoPloLHlrpggPiBrb3Vob3VrYW5cIDsKK+S6uuW3peaxoCA+IGppbmtvdWlrZVwgOwor5Y+j6JOL5Z6CID4ga291Z2Fpc3VpXCA7Civph5HliZvnoIIgPiBrb25nb3VzaGFcIDsKK+WNgeS4ieWknCA+IGp1dXNhbicneWFcIDsKK+Wkp+WtpumZoiA+IGRhaWdha3VpblwgOwor5LmX55So6LuKID4gam91eW91c2hhXCA7CivkuI3mmI7norogPiBmdW1laWtha3VcIDsKK+icg+awl+alvCA+IHNoaW5raXJvdVwgOwor6KSH6JGJ5qmfID4gZnVrdXlvdWtpXCA7CivkuoznrYnopqogPiBuaXRvdXNoaW5cIDsKK+iNieertummrCA+IGt1c2FrZWliYVwgOwor6Zqg5YWD6LGGID4gaW5nZW5tYW1lXCA7CivntK/kuZfmoLkgPiBydWlqb3Vrb25cIDsKK+adsea0i+S6uiA+IHRvdXlvdWppblwgOwor56u25oqA5LyaID4ga3lvdWdpa2FpXCA7Civli6foqpjlk6EgPiBrYW4nJ3l1dWluXCA7CivogIHlqYblv4MgPiByb3ViYXNoaW5cIDsKK+WCteaoqeiAhSA+IHNhaWtlbnNoYVwgOwor56ys5LiA576pID4gZGFpaWNoaWdpXCA7CivlnKflgJLnmoQgPiBhdHRvdXRla2lcIDsKK+S4jeaYjueerSA+IGZ1bWVpcnlvdVwgOwor5pS+6Zu7566hID4gaG91ZGVua2FuXCA7CivliY3ouqvpoIMgPiBtYWVtaWdvcm9cIDsKK+WwkeaVsOa0viA+IHNob3VzdXVoYVwgOwor54m55o2c6YOoID4gdG9rdXNvdWJ1XCA7Civoqr/ppqzluKsgPiBjaG91YmFzaGlcIDsKK+eQhuirlueahCA+IHJpcm9udGVraVwgOwor6aOy5rC06YePID4gaW5zdWlyeW91XCA7Civoqr/nkIbms5UgPiBjaG91cmlob3VcIDsKK+e0r+eKr+iAhSA+IHJ1aWhhbnNoYVwgOwor5aW96YO95ZCIID4ga291dHN1Z291XCA7Civlronlhajln58gPiBhbnplbicnaWtpXCA7CivomZrmoITlv4MgPiBreW9laXNoaW5cIDsKK+Wumuacn+eahCA+IHRlaWtpdGVraVwgOwor6KqN5Y+v6Ki8ID4gbmlua2FzaG91XCA7Civkv6Hlv4PlrrYgPiBzaGluamlua2FcIDsKK+W8t+Wnpue9qiA+IGdvdWthbnphaVwgOwor5pWZ5o6I5LyaID4ga3lvdWp1a2FpXCA7CivpgKPlkIjou40gPiByZW5nb3VndW5cIDsKK+mHjeWQiOS9kyA+IGp1dWdvdXRhaVwgOwor5Yqg6JmQ5oSbID4ga2FneWFrdWFpXCA7CivmsrPlt53mlbcgPiBrYXNlbmppa2lcIDsKK+i7jemaiuiRrCA+IGd1bnRhaXNvdVwgOwor5pWw5bm06ZaTID4gc3V1bmVua2FuXCA7Civou73msJfnkIMgPiBrZWlraWt5dXVcIDsKK+mdkua1ruiNiSA+IGFvdWtpa3VzYVwgOwor5a6J5qW95q27ID4gYW5yYWt1c2hpXCA7Civph5HlubPns5YgPiBrb25wZWl0b3VcIDsKK+WumuS9j+WcsCA+IHRlaWp1dWNoaVwgOwor6YeR6Lyq6ZqbID4ga29ucmluemFpXCA7CivmlpnnkIblupcgPiByeW91cml0ZW5cIDsKK+iyv+aYk+miqCA+IGJvdWVraWZ1dVwgOwor5Lq65bel5p6XID4gamlua291cmluXCA7CivmtbfpgYvmpa0gPiBrYWl1bmd5b3VcIDsKK+iho+mjn+S9jyA+IGlzaG9rdWp1dVwgOwor5a+d5YW36aGeID4gc2hpbmd1cnVpXCA7CivmnbHljZfmnbEgPiB0b3VuYW50b3VcIDsKK+eUsuadv+WToSA+IGtvdWhhbicnaW5cIDsKK+ePvuS7o+WPsiA+IGdlbmRhaXNoaVwgOwor5qC56I+c6aGeID4ga29uc2FpcnVpXCA7CivlrprkvovkvJogPiB0ZWlyZWlrYWlcIDsKK+axuumXmOeKtiA+IGtldHRvdWpvdVwgOwor6JqV5Y2157SZID4gc2FucmFuc2hpXCA7CivlpJbokpnlj6QgPiBzb3RvbW91a29cIDsKK+i7iuS4oeWMliA+IHNoYXJ5b3VrYVwgOwor5oSf5YWJ5oCnID4ga2Fua291c2VpXCA7CivnrKzkuIDnq6AgPiBkYWlpc3Nob3VcIDsKK+iHqOeVjOeCuSA+IHJpbmthaXRlblwgOwor5ZWG5aOy5rCXID4gc2hvdWJhaWdpXCA7Civlm73mhrLms5UgPiBrb2trZW5wb3VcIDsKK+S4oemZm+S4iyA+IHJ5b3VoZWlrYVwgOwor6ZmQ5a6a54mIID4gZ2VudGVpYmFuXCA7CivliY3ou4rovKogPiB6ZW5zaGFyaW5cIDsKK+mbhOeJm+ezniA+IG91c2hpa3Vzb1wgOwor5LiN5aaK55eHID4gZnVuaW5zaG91XCA7CivlpInmtYHlmaggPiBoZW5yeXV1a2lcIDsKK+mHneS+m+mkiiA+IGhhcmlrdXlvdVwgOwor5b6u6KaW55qEID4gYmlzaGl0ZWtpXCA7Civnm6PoppbloZQgPiBrYW5zaGl0b3VcIDsKK+WNoOaLoOWcsCA+IHNlbmt5b2NoaVwgOwor5oyH5ZCR5oCnID4gc2hpa291c2VpXCA7CivkuIDkurrnlKggPiBoaXRvcml5b3VcIDsKK+iqv+mmrOWgtCA+IGNob3ViYWpvdVwgOwor5YaN6Ly45YWlID4gc2FpeXVueXV1XCA7Civntr/mtKXoposgPiB3YXRhdHN1bWlcIDsKK+WEquiJr+WFkCA+IHl1dXJ5b3VqaVwgOwor5rWu5YuV56WoID4gZnVkb3VoeW91XCA7CivlhYjlpKnmgKcgPiBzZW50ZW5zZWlcIDsKK+W9ouaIkOWxpCA+IGtlaXNlaXNvdVwgOwor5bir56+E5LujID4gc2hpaGFuZGFpXCA7CivkvJHmraLnrKYgPiBreXV1c2hpZnVcIDsKK+S4jemdouebriA+IGZ1bWVubW9rdVwgOwor5bCP57Og6ZuoID4ga29udWthYW1lXCA7CivmnKzkuojnrpcgPiBob24nJ3lvc2FuXCA7CivmjIfljZfnlaogPiBzaGluYW5iYW5cIDsKK+aLoeWjsOWZqCA+IGtha3VzZWlraVwgOwor6Ieq55Sx5qWtID4gaml5dXVneW91XCA7CivnpoHovLjlk4EgPiBraW4nJ3l1aGluXCA7Civlj7jkvJrogIUgPiBzaGlrYWlzaGFcIDsKK+aKleeov+ashCA+IHRvdWtvdXJhblwgOwor5oy/6Kmx55qEID4gc291d2F0ZWtpXCA7CivpgZPkuK3oqJggPiBkb3VjaHV1a2lcIDsKK+WNiuWhqeawtCA+IGhhbicnZW5zdWlcIDsKK+aOkuS7lueahCA+IGhhaXRhdGVraVwgOwor5aSn6IW454KOID4gZGFpY2hvdWVuXCA7CivlsLzms5XluKsgPiBhbWFob3VzaGlcIDsKK+Wumue9rue2siA+IHRlaWNoaWFtaVwgOwor6Iq46IO955WMID4gZ2Vpbm91a2FpXCA7CivljYrmv4Hpn7MgPiBoYW5kYWt1b25cIDsKK+mFjeeuoeW3pSA+IGhhaWthbmtvdVwgOwor54++5Luj5Lq6ID4gZ2VuZGFpamluXCA7CivovrLmvIHmsJEgPiBub3VneW9taW5cIDsKK+Wls+aAp+WtpiA+IGpvc2VpZ2FrdVwgOwor5Lm+54el5ZywID4ga2Fuc291Y2hpXCA7CivliIbpoZ7ms5UgPiBidW5ydWlob3VcIDsKK+efs+iGj+WDjyA+IHNla2tvdXpvdVwgOwor5b2x5q2m6ICFID4ga2FnZW11c2hhXCA7CivmtLvniYjmnKwgPiBrYXBwYW5ib25cIDsKK+S7leS6i+WgtCA+IHNoaWdvdG9iYVwgOwor5amm5Lq65pyNID4gZnVqaW5mdWt1XCA7Civlr53lv4PlnLAgPiBuZWdva29jaGlcIDsKK+e1teW3u+eJqSA+IGVtYWtpbW9ub1wgOwor5LiN5paZ57ChID4gZnVyeW91a2VuXCA7CivljJbnn7PlsaQgPiBrYXNla2lzb3VcIDsKK+aZqemkkOS8miA+IGJhbnNhbmthaVwgOwor5LuV5pS+6aGMID4gc2hpaG91ZGFpXCA7CivlhbHlkozliLYgPiBreW91d2FzZWlcIDsKK+ahiOWGheeKtiA+IGFuJyduYWlqb3VcIDsKK+WkmuWFg+eahCA+IHRhZ2VudGVraVwgOwor5Yi25rW35qipID4gc2Vpa2Fpa2VuXCA7CivkuqTphY3nqK4gPiBrb3VoYWlzaHVcIDsKK+WcqOS9j+iAhSA+IHphaWp1dXNoYVwgOwor5oiQ54af5pyfID4gc2VpanVrdWtpXCA7CivlhbHlkozlhZogPiBreW91d2F0b3VcIDsKK+W5s+aWueaguSA+IGhlaWhvdWtvblwgOwor6Kuc5aCx5ZOhID4gY2hvdWhvdWluXCA7CivoiIjlpa7liaQgPiBrb3VmdW56YWlcIDsKK+WFiOimi+iAhSA+IHNlbmtlbnNoYVwgOwor6Iiq56m65Yi4ID4ga291a3V1a2VuXCA7CivlhYnpm7vlrZAgPiBrb3VkZW5zaGlcIDsKK+WjsuWbveWltCA+IGJhaWtva3Vkb1wgOwor57mB5YiG5pWwID4gaGFuYnVuc3V1XCA7CivmgKfooYzli5UgPiBzZWlrb3Vkb3VcIDsKK+mKgOihjOWIuCA+IGdpbmtvdWtlblwgOwor5LiH5LiH5q2zID4gYmFuYmFuemFpXCA7CivlgZzoiLnloLQgPiB0ZWlzZW5qb3VcIDsKK+WYhumhmOabuCA+IHRhbmdhbnNob1wgOwor5YaN55Sf55SjID4gc2Fpc2Vpc2FuXCA7CivlnLDlr77lnLAgPiBjaGl0YWljaGlcIDsKK+aWh+S9k+irliA+IGJ1bnRhaXJvblwgOwor6Kq/5p+75ZujID4gY2hvdXNhZGFuXCA7CivljZjooYzmnKwgPiB0YW5rb3Vib25cIDsKK+Wwj+WknOabsiA+IHNheW9reW9rdVwgOwor5Ye65LiW6ZaTID4gc2h1c3Nla2VuXCA7CivljZjooYzmm7ggPiB0YW5rb3VzaG9cIDsKK+S4gOaZgumWkyA+IGljaGlqaWthblwgOwor5rip5rOJ6YO3ID4gb25zZW5reW91XCA7CivmnInlkI3kurogPiB5dXVtZWlqaW5cIDsKK+W+jOeUsuadvyA+IGtvdWthbnBhblwgOwor5byx5L2T5YyWID4gamFrdXRhaWthXCA7CivntYzmuIjpnaIgPiBrZWl6YWltZW5cIDsKK+S/rumok+mBkyA+IHNodWdlbmRvdVwgOwor5b6A55Sf6ZqbID4gb3Vqb3VnaXdhXCA7CivmrovlrZjogIUgPiB6YW56b25zaGFcIDsKK+iIquepuuS+vyA+IGtvdWt1dWJpblwgOwor5qC45q2m6KOFID4ga2FrdWJ1c291XCA7Civln4volLXph5EgPiBtYWl6b3VraW5cIDsKK+WtpOeri+WMliA+IGtvcml0c3VrYVwgOwor6IGW5a625pePID4gc2Vpa2F6b2t1XCA7Civkub7nh6XliaQgPiBrYW5zb3V6YWlcIDsKK+azpeeCreWcsCA+IGRlaXRhbmNoaVwgOwor5aSW6Lyq6Ii5ID4gZ2Fpcmluc2VuXCA7CivopIfliKnms5UgPiBmdWt1cmlob3VcIDsKK+iSuOeVmeWZqCA+IGpvdXJ5dXVraVwgOwor6ZGR5a6a5pu4ID4ga2FudGVpc2hvXCA7Civoo73msLfmqZ8gPiBzZWloeW91a2lcIDsKK+W3u+Wvv+WPuCA+IG1ha2l6dXNoaVwgOwor5raI6LK76LKhID4gc2hvdWhpemFpXCA7CivokZfkvZzlrrYgPiBjaG9zYWt1a2FcIDsKK+W4guiyqeWTgSA+IHNoaWhhbmhpblwgOwor5be76aCt6KiAID4ga2FudG91Z2VuXCA7Civoqr/nkIbluKsgPiBjaG91cmlzaGlcIDsKK+ecn+ahkeeTnCA+IG1ha3V3YXVyaVwgOwor6ZqP5b6T6ICFID4genVpanV1c2hhXCA7CivkuIDlr7jlhYggPiBpc3N1bnNha2lcIDsKK+aWh+WtpumDqCA+IGJ1bmdha3VidVwgOwor5LqI57SE5Yi2ID4geW95YWt1c2VpXCA7Civnt5rpgJ/luqYgPiBzZW5zb2t1ZG9cIDsKK+W5s+mdouW9oiA+IGhlaW1lbmtlaVwgOwor6KSH5q+U5L6LID4gZnVrdWhpcmVpXCA7CivmlaPmsLTou4ogPiBzYW5zdWlzaGFcIDsKK+S4gOaZgumHkSA+IGljaGlqaWtpblwgOwor5YmN5bm05bqmID4gemVuJyduZW5kb1wgOwor55m66KGM6ICFID4gaGFra291c2hhXCA7CivlgZznlZnmiYAgPiB0ZWlyeXV1am9cIDsKK+WuruWfjuecjCA+IG1peWFnaWtlblwgOwor5YmN5YmN5ZueID4gemVuemVua2FpXCA7Civnh5flvrPliKkgPiBrYW5kb2t1cmlcIDsKK+atu+WIkeWgtCA+IHNoaWtlaWpvdVwgOwor5be75a2Q5pysID4ga2Fuc2hpaG9uXCA7CivnlLrorbDkvJogPiBjaG91Z2lrYWlcIDsKK+S6uueUn+imsyA+IGppbnNlaWthblwgOwor55yf54+g6LKdID4gc2hpbmp1Z2FpXCA7Civkuqzpg73luIIgPiBreW91dG9zaGlcIDsKK+mbqOWPsOmiqCA+IGFtZXRhaWZ1dVwgOwor6Ieq55Sx5b2iID4gaml5dXVnYXRhXCA7CivlhY3oqLHliLYgPiBtZW5reW9zZWlcIDsKK+mbkeWgseashCA+IHphcHBvdXJhblwgOwor5oSb5YWa5b+DID4gYWl0b3VzaGluXCA7CivpmLLmraLms5UgPiBib3VzaGlob3VcIDsKK+mBuOaMmeazlSA+IHNlbmt5b2hvdVwgOwor5aSp5LqV6KOPID4gdGVuam91dXJhXCA7CivljYrpmbDlvbEgPiBoYW4nJ2luJydlaVwgOwor5pyA6YeN54K5ID4gc2FpanV1dGVuXCA7CivkuIDlr77kuIAgPiBpdHRhaWljaGlcIDsKK+mBuOaMmeawkSA+IHNlbmt5b21pblwgOwor5pWZ5ZSG6ICFID4ga3lvdXNhc2hhXCA7CivmlpnnkIbkurogPiByeW91cmluaW5cIDsKK+iHqueUseW4rSA+IGppeXV1c2VraVwgOwor5pyI5YiK6KqMID4gZ2Vra2Fuc2hpXCA7CivkuI3nhp/nt7QgPiBmdWp1a3VyZW5cIDsKK+WPpOWFuOeahCA+IGtvdGVudGVraVwgOwor5aSJ5q276ICFID4gaGVuc2hpc2hhXCA7CivmnKzmoLzljJYgPiBob25rYWt1a2FcIDsKK+S7leS4iuW3pSA+IHNoaWFnZWtvdVwgOwor54mh5Li55p2PID4gYm90YW5reW91XCA7CivlubPmlrnlvaIgPiBoZWlob3VrZWlcIDsKK+WKtOWDjeiAhSA+IHJvdWRvdXNoYVwgOwor5aSJ5YyW55CDID4gaGVua2FreXV1XCA7CivpgaDpmpToppYgPiBlbmtha3VzaGlcIDsKK+mbkeiomOW4syA+IHpha2tpY2hvdVwgOwor5Zyo5qCh55SfID4gemFpa291c2VpXCA7Civmkanmk6bpn7MgPiBtYXNhdHN1b25cIDsKK+ibjeeDj+iziiA+IGhvdGFydWlrYVwgOwor5YaN55Sf5rOVID4gc2Fpc2VpaG91XCA7CivlpJrnmbrmqZ8gPiB0YWhhdHN1a2lcIDsKK+a0u+eJiOWxiyA+IGthcHBhbicneWFcIDsKK+mHkeWJm+aJiyA+IGtvbmdvdXNodVwgOwor6KKr5a6z6aGNID4gaGlnYWlnYWt1XCA7CivpgbjmjJnmqKkgPiBzZW5reW9rZW5cIDsKK+WfuuacrOe1piA+IGtpaG9ua3l1dVwgOwor6Z2e6YeR5bGeID4gaGlraW56b2t1XCA7CivnjKnnjKnnt4sgPiBzaG91am91aGlcIDsKK+WbnuaVmeW+kiA+IGthaWt5b3V0b1wgOwor5oyH56S65YWIID4gc2hpamlzYWtpXCA7Civlgpnlv5jpjLIgPiBiaWJvdXJva3VcIDsKK+egguezlum7jSA+IHNhdG91a2liaVwgOwor5qGI5YaF5pu4ID4gYW4nJ25haXNob1wgOwor5Yqf5Yq06YeRID4ga291cm91a2luXCA7Civooqvlt67liKUgPiBoaXNhYmV0c3VcIDsKK+eXmOeXlemdoiA+IGFiYXRhenVyYVwgOwor5pyx5paH6YeRID4gc2h1YnVua2luXCA7CivkuI3orLnmhY4gPiBmdWtpbnNoaW5cIDsKK+iCneehrOWkiSA+IGthbmtvdWhlblwgOwor5pyr5pyf55qEID4gbWFra2l0ZWtpXCA7CivnpLzlpYnlhawgPiByZWlib3Vrb3VcIDsKK+WNlOaKgOiAhSA+IGt5b3VnaXNoYVwgOwor5aSa6Laz6aGeID4gdGFzb2t1cnVpXCA7CivnpZ7np5jmgKcgPiBzaGlucGlzZWlcIDsKK+ayuOmosOeCuSA+IGZ1dHRvdXRlblwgOwor6aSK6a2a5rGgID4geW91Z3lvY2hpXCA7CivprZTms5XnmoQgPiBtYWhvdXRla2lcIDsKK+ijveawt+aJgCA+IHNlaWh5b3Vqb1wgOwor6Zai6KW/5byBID4ga2Fuc2FpYmVuXCA7CivlhavljYPojYkgPiB5YWNoaWd1c2FcIDsKK+mBk+S6pOazlSA+IGRvdWtvdWhvdVwgOwor6YeO6I+c5rGBID4geWFzYWlqaXJ1XCA7CivmlqHml4vmlpkgPiBhc3NlbnJ5b3VcIDsKK+iIqua1t+WjqyA+IGtvdWthaXNoaVwgOwor5rWu5YuV5qCqID4gZnVkb3VrYWJ1XCA7Civmt7fkuqTmnpcgPiBrb25rb3VyaW5cIDsKK+aooeevhOWbmiA+IG1vaGFuc2h1dVwgOwor6Kyb576p6YyyID4ga291Z2lyb2t1XCA7CivnlJ/lrZjogIUgPiBzZWl6b25zaGFcIDsKK+S4jeisrOaApyA+IGZ1Ynl1dXNlaVwgOwor5bCO6Zu75oCnID4gZG91ZGVuc2VpXCA7CivmlLnpnanmoYggPiBrYWlrYWt1YW5cIDsKK+azleaUueatoyA+IGhvdWthaXNlaVwgOwor55Sf55Sj5oCnID4gc2Vpc2Fuc2VpXCA7CivkuIrkuK3kuIsgPiBqb3VjaHV1Z2VcIDsKK+e1puawtOaJgCA+IGt5dXVzdWlqb1wgOwor54yc55aR5b+DID4gc2FpZ2lzaGluXCA7CivkuI3oqr/ms5UgPiBidWNob3Vob3VcIDsKK+WPl+WLleeahCA+IGp1ZG91dGVraVwgOwor6Ieq55Sx5Z6LID4gaml5dXVnYXRhXCA7Civoqr/nkIblj7AgPiBjaG91cmlkYWlcIDsKK+epuumWkeWcsCA+IGt1dWthbmNoaVwgOwor5Yq05YON56WtID4gcm91ZG91c2FpXCA7Civlho3mnaXpgLEgPiBzYXJhaXNodXVcIDsKK+S7o+ihqOmDqCA+IGRhaWh5b3VidVwgOwor5YOF5bCR5beuID4ga2luc2hvdXNhXCA7CivlkajmnJ/mgKcgPiBzaHV1a2lzZWlcIDsKK+mjm+ihjOacjSA+IGhpa291ZnVrdVwgOwor5LiN54m55a6aID4gZnV0b2t1dGVpXCA7CivooajpnaLljJYgPiBoeW91bWVua2FcIDsKK+W4guacieWcsCA+IHNoaXl1dWNoaVwgOwor5qiZ5rqW6KqeID4gaHlvdWp1bmdvXCA7CivmsLTlubPpnaIgPiBzdWloZWltZW5cIDsKK+S6pOmAmui3ryA+IGtvdXRzdXVyb1wgOwor5raI6LK76ICFID4gc2hvdWhpc2hhXCA7Civlj6TpgZPlhbcgPiBmdXJ1ZG91Z3VcIDsKK+WfuuacrOeahCA+IGtpaG9udGVraVwgOwor6I2J5Zuj5a2QID4ga3VzYWRhbmdvXCA7CivnnJ/nj6DoibIgPiBzaGluanVpcm9cIDsKK+e1seW4peaoqSA+IHRvdXN1aWtlblwgOwor57e057+S5qmfID4gcmVuc2h1dWtpXCA7CivmmIfpmY3oiLUgPiBzaG91a291ZGFcIDsKK+WFteW6q+ecjCA+IGh5b3Vnb2tlblwgOwor5YWs5rW35LiKID4ga291a2Fpam91XCA7Civmv4DmiKbljLogPiBnZWtpc2Vua3VcIDsKK+WEgOekvOeahCA+IGdpcmVpdGVraVwgOwor5pyJ5bmz57OWID4gYXJ1aGVpdG91XCA7CivkuqTpgJrosrsgPiBrb3V0c3V1aGlcIDsKK+mHkemtmuiNiSA+IGtpbmd5b3NvdVwgOwor552A54Gr54K5ID4gY2hha2thdGVuXCA7CivpgbjmjJnmiKYgPiBzZW5reW9zZW5cIDsKK+Wul+S4u+aoqSA+IHNvdXNodWtlblwgOwor5rC06YW45qC5ID4gc3Vpc2Fua29uXCA7CivotaTljYHlrZcgPiBzZWtpanV1amlcIDsKK+iThOmfs+apnyA+IGNoaWt1b25raVwgOwor6Ieq5bCK5b+DID4gamlzb25zaGluXCA7CivooajoqJjms5UgPiBoeW91a2lob3VcIDsKK+mcsuWkqeWVhiA+IHJvdGVuc2hvdVwgOwor5LyR5bu35pelID4ga3l1dXRlaWJpXCA7Civpo7LphZLnmZYgPiBpbnNodWhla2lcIDsKK+S4gOaWiemrmCA+IGlzc2VpZGFrYVwgOwor5Yem5YiR5Y+wID4gc2hva2VpZGFpXCA7CivlhrfmiL/ou4ogPiByZWlib3VzaGFcIDsKK+aknOeWq+aJgCA+IGtlbicnZWtpam9cIDsKK+eFp+W6puioiCA+IHNob3Vkb2tlaVwgOwor5Y+O56iO5ZCPID4gc2h1dXplaXJpXCA7Civllonoh6rmhaIgPiBub2RvamltYW5cIDsKK+mHkeeci+advyA+IGtpbmthbmJhblwgOwor5pWj5by+6YqDID4gc2FuZGFuanV1XCA7Civln7nppIrmtrIgPiBiYWl5b3Vla2lcIDsKK+WkqeeLl+miqCA+IHRlbmd1a2F6ZVwgOwor5LiA5pys5p2JID4gaXBwb25zdWdpXCA7CivmuKzlvq7oqIggPiBzb2t1YmlrZWlcIDsKK+miqOiHtOaelyA+IGZ1dWNoaXJpblwgOwor5Zyw55CG5a2mID4gY2hpcmlnYWt1XCA7Civnvo7po5/lrrYgPiBiaXNob2t1a2FcIDsKK+Wwv+mBk+eCjiA+IG55b3Vkb3VlblwgOwor6J6z6J6C5ouzID4gdG91cm91a2VuXCA7Civoqr/nkIbkurogPiBjaG91cmluaW5cIDsKK+WWq+eFmeaJgCA+IGtpdHN1ZW5qb1wgOwor5pmC5YiG5pmCID4gamlidW5kb2tpXCA7Civlhavph43moZwgPiB5YWV6YWt1cmFcIDsKK+WNl+ibruiIuSA+IG5hbmJhbnNlblwgOwor6LGM6LGG6LGGID4gZW5kb3VtYW1lXCA7Civlm57mlbDliLggPiBrYWlzdXVrZW5cIDsKK+ijvemAoOiAhSA+IHNlaXpvdXNoYVwgOwor6YeN5b255LyaID4ganV1eWFra2FpXCA7CivljJfmrKfkurogPiBob2t1b3VqaW5cIDsKK+S4gOS6uuWtkCA+IGhpdG9yaWtrb1wgOwor5q2755Sf6KazID4gc2hpc2Vpa2FuXCA7Civngq3nlr3nl4UgPiB0YW5zb2J5b3VcIDsKK+eZveWcsOWbsyA+IGhha3VjaGl6dVwgOwor6byI55Sy6ImyID4gYmVra291aXJvXCA7CivkuZfou4rliLggPiBqb3VzaGFrZW5cIDsKK+a4rOeoi+WZqCA+IHNva3V0ZWlraVwgOwor5qGI5YaF5ayiID4gYW4nJ25haWpvdVwgOwor5YaG6Iie5puyID4gZW5idWt5b2t1XCA7CivmtojosrvnqI4gPiBzaG91aGl6ZWlcIDsKK+WjgeS4gOmHjSA+IGthYmVoaXRvZVwgOwor5Zub6Z2i5L2TID4gc2hpbWVudGFpXCA7CivlnKjmnaXnt5ogPiB6YWlyYWlzZW5cIDsKK+Wkp+eQhuefsyA+IGRhaXJpc2VraVwgOwor55Sf55Sj5ZywID4gc2Vpc2FuY2hpXCA7CivniYfnlLDoiI4gPiBrYXRhaW5ha2FcIDsKK+ikh+WGmeapnyA+IGZ1a3VzaGFraVwgOwor6aKo5L+X55S7ID4gZnV1em9rdWdhXCA7CivlgbTpnaLlm7MgPiBzb2t1bWVuenVcIDsKK+iogOiqnuWtpiA+IGdlbmdvZ2FrdVwgOwor5beh6Iiq6Ii5ID4ganVua291c2VuXCA7Civljp/lp4vmnpcgPiBnZW5zaGlyaW5cIDsKK+iHs+S4iuaoqSA+IHNoaWpvdWtlblwgOwor5bCP5aOy5ZWGID4ga291cmlzaG91XCA7CivntbHliLblk4EgPiB0b3VzZWloaW5cIDsKK+esrOS4gOWvqSA+IGRhaWlzc2hpblwgOwor57SF5q+b5Lq6ID4ga291bW91amluXCA7CivorITlhpnniYggPiB0b3VzaGFiYW5cIDsKK+aOp+iotOWvqSA+IGtvdXNvc2hpblwgOwor5Lit5Y+k6LuKID4gY2h1dWtvc2hhXCA7CivmlrDntIDlhYMgPiBzaGlua2lnZW5cIDsKK+e3tOe/kuaJgCA+IHJlbnNodXVqb1wgOwor56uL5pa55qC5ID4gcmlwcG91a29uXCA7Civnn63pn7Ppmo4gPiB0YW4nJ29ua2FpXCA7CivlrqPoqpPmm7ggPiBzZW5zZWlzaG9cIDsKK+S6jOaLjeWtkCA+IG5pYnlvdXNoaVwgOwor5Yq06L6y5YWaID4gcm91bm91dG91XCA7CivlvbzlsrjoirEgPiBoaWdhbmJhbmFcIDsKK+W/oOmtgueikSA+IGNodXVrb25oaVwgOwor5pyJ5Yq55oCnID4geXV1a291c2VpXCA7CivkuInml6XmnIggPiBtaWthZHp1a2lcIDsKK+eZuuaMr+apnyA+IGhhc3NoaW5raVwgOwor57eP5YuZ5bqBID4gc291bXVjaG91XCA7CivmtYHooYzoqp4gPiByeXV1a291Z29cIDsKK+WGhemuruS6uiA+IG5haXNlbmppblwgOwor55Sf55CG55qEID4gc2Vpcml0ZWtpXCA7CivlkI3oqonmhb4gPiBtZWl5b3lva3VcIDsKK+WKquWKm+WutiA+IGRvcnlva3VrYVwgOwor5Zyo5p2l56iuID4gemFpcmFpc2h1XCA7CivliqDnoavms5UgPiBrYXJ5dXVob3VcIDsKK+Wkp+WutuaXjyA+IGRhaWthem9rdVwgOwor5pmv5pWZ5b6SID4ga2Vpa3lvdXRvXCA7Civpq5jnqY3pm7IgPiBrb3VzZWtpdW5cIDsKK+S5l+iIueWIuCA+IGpvdXNlbmtlblwgOwor5YaN5a+p5p+7ID4gc2Fpc2hpbnNhXCA7CivnlKjoqp7pm4YgPiB5b3Vnb3NodXVcIDsKK+iyoOWCt+iAhSA+IGZ1c2hvdXNoYVwgOwor5Yq05YON5rOVID4gcm91ZG91aG91XCA7CivmsY7nlKjmqZ8gPiBoYW4nJ3lvdWtpXCA7CivlkI3oqonlv4MgPiBtZWl5b3NoaW5cIDsKK+mRkeWumuS6uiA+IGthbnRlaW5pblwgOwor5oqV56Wo5pelID4gdG91aHlvdWJpXCA7CivlhYjooYzoqZ4gPiBzZW5rb3VzaGlcIDsKK+eLrOa8lOS8miA+IGRva3VlbmthaVwgOwor6Z+z6Z+75a2mID4gb24nJ2luZ2FrdVwgOwor5Yqf5Yq06ICFID4ga291cm91c2hhXCA7CivohLPntLDog54gPiBub3VzYWlib3VcIDsKK+e+juaWh+iqvyA+IGJpYnVuY2hvdVwgOwor5piO57Sw5pu4ID4gbWVpc2Fpc2hvXCA7CivnlLfmloflrZcgPiBvdG9rb21vamlcIDsKK+e3j+WLmOWumiA+IHNvdWthbmpvdVwgOwor5Zue6Kan5p2/ID4ga2FpcmFuYmFuXCA7Civku7vlkb3nirYgPiBuaW5tZWlqb3VcIDsKK+S4iue0jemHkSA+IGpvdW5vdWtpblwgOwor5ou35ZWP5Y+wID4gZ291bW9uZGFpXCA7CivkuIrlpY/mlocgPiBqb3Vzb3VidW5cIDsKK+iHquiyrOeCuSA+IGppc2VraXRlblwgOwor5Yqp55uj552jID4gam9rYW50b2t1XCA7Civlh6bnlJ/oqJMgPiBzaG9zZWlrdW5cIDsKK+acrOippumokyA+IGhvbnNoaWtlblwgOwor5aSW5L+h6YOoID4gZ2Fpc2hpbmJ1XCA7CivkuIDkurrliY0gPiBoaXRvcmltYWVcIDsKK+WKtOWDjeaoqSA+IHJvdWRvdWtlblwgOwor5Zyw55CD5YSAID4gY2hpa3l1dWdpXCA7CivlnLDkuIrmqKkgPiBjaGlqb3VrZW5cIDsKK+mHkeWxj+miqCA+IGtpbmJ5b3VidVwgOwor5bCO6Zu75L2TID4gZG91ZGVudGFpXCA7CivlhbHnm4rosrsgPiBreW91ZWtpaGlcIDsKK+S4jeiqjeaJvyA+IGZ1bmluc2hvdVwgOwor6aas6bm/6Z2iID4gYmFrYWR6dXJhXCA7CivlnJ/nlKjms6IgPiBkb3lvdW5hbWlcIDsKK+e3j+mBuOaMmSA+IHNvdXNlbmt5b1wgOwor5Yi25b6h55ukID4gc2VpZ3lvYmFuXCA7Civlv4PmhI/msJcgPiBrb2tvcm9pa2lcIDsKK+mHjeWKtOWDjSA+IGp1dXJvdWRvdVwgOwor5omL5qa05by+ID4gdGVyeXV1ZGFuXCA7CivkuIDmnprkuIogPiBpY2hpbWFpdWVcIDsKK+WkqeS6leeBryA+IHRlbmpvdXRvdVwgOwor6aSK6a2a5aC0ID4geW91Z3lvam91XCA7CivmipXnpajmiYAgPiB0b3VoeW91am9cIDsKK+W6p+aomeezuyA+IHphaHlvdWtlaVwgOwor5YaG5YCf5qy+ID4gZW5zaGFra2FuXCA7Civntbblr77oq5YgPiB6ZXR0YWlyb25cIDsKK+aNleiZq+e2siA+IGhvY2h1dWFtaVwgOwor5Ye65p2l5pifID4gZGVraWJvc2hpXCA7CivoirHmn7PnlYwgPiBrYXJ5dXVrYWlcIDsKK+WFrOawkeaoqSA+IGtvdW1pbmtlblwgOwor5aaC5L2V6KixID4gaWthYmFrYXJpXCA7CivmuIXmlZnlvpIgPiBzZWlreW91dG9cIDsKK+e0q+Wklue3miA+IHNoaWdhaXNlblwgOwor5ZCM5aW95LyaID4gZG91a291a2FpXCA7CivmtJfou4rloLQgPiBzZW5zaGFqb3VcIDsKK+Wxleacm+i7iiA+IHRlbmJvdXNoYVwgOwor5pqX5Y+35bizID4gYW5nb3VjaG91XCA7CivluYzppqzou4ogPiBob3JvYmFzaGFcIDsKK+Wkp+S8gealrSA+IGRhaWtpZ3lvdVwgOwor5aOy56yR5ammID4gYmFpc2hvdWZ1XCA7CivmjqHngrnogIUgPiBzYWl0ZW5zaGFcIDsKK+mWk+mameavlCA+IGthbmdla2loaVwgOwor5aOu6KGM5LyaID4gc291a291a2FpXCA7Civlho3nlJ/lk4EgPiBzYWlzZWloaW5cIDsKK+WFrOekvuWCtSA+IGtvdXNoYXNhaVwgOwor5pyq5p2l5a2mID4gbWlyYWlnYWt1XCA7CivmnKvlp4vntYIgPiBzdWVzaGlqdXVcIDsKK+a9nOawtOiJpiA+IHNlbnN1aWthblwgOwor5rC06YGT566hID4gc3VpZG91a2FuXCA7CivlpKnnkIbmlZkgPiB0ZW5yaWt5b3VcIDsKK+S6iOaDs+mrmCA+IHlvc291ZGFrYVwgOwor5omL5p+E6aGUID4gdGVnYXJhZ2FvXCA7CivmiYvoirjlk4EgPiBzaHVnZWloaW5cIDsKK+W5s+ihoemMmCA+IGhlaWtvdXN1aVwgOwor5oqX5q+S57SgID4ga291ZG9rdXNvXCA7CivlpKfosYbnspUgPiBkYWl6dWthc3VcIDsKK+eglOeptuiyuyA+IGtlbmt5dXVoaVwgOwor55+l6IO954qvID4gY2hpbm91aGFuXCA7CivpgbjmiYvmqKkgPiBzZW5zaHVrZW5cIDsKK+m6nemmmem5vyA+IGpha291amlrYVwgOwor5rW35bK457eaID4ga2FpZ2Fuc2VuXCA7Civosr/mmJPmuK8gPiBib3Vla2lrb3VcIDsKK+aapuW5tOW6piA+IHJla2luZW5kb1wgOwor5aSp5a6u5ZuzID4gdGVua3l1dXp1XCA7CivmnInmqKnogIUgPiB5dXVrZW5zaGFcIDsKK+S9k+ijgeS4iiA+IHRlaXNhaWpvdVwgOwor5LyK6YGU55S3ID4gZGF0ZW90b2tvXCA7CivkvJHliIrml6UgPiBreXV1a2FuYmlcIDsKK+WPpOWFuOWtpiA+IGtvdGVuZ2FrdVwgOwor5pS56KiC54mIID4ga2FpdGVpYmFuXCA7CivnlJ/lrZjmqKkgPiBzZWl6b25rZW5cIDsKK+ipsuWVj+mhjCA+IGdhaW1vbmRhaVwgOwor5pqX5Y+35a2mID4gYW5nb3VnYWt1XCA7Civku6PooYzogIUgPiBkYWlrb3VzaGFcIDsKK+WFq+WNg+atsyA+IHlhY2hpdG9zZVwgOwor5Y+j55yf5Ly8ID4ga3VjaGltYW5lXCA7Civlh7rniYjpg6ggPiBzaHVwcGFuYnVcIDsKK+ims+a4rOaJgCA+IGthbnNva3Vqb1wgOwor57WM5riI55WMID4ga2VpemFpa2FpXCA7CivkuI3nhrHlv4MgPiBmdW5lc3NoaW5cIDsKK+WFrOazleS6uiA+IGtvdWhvdWppblwgOwor5LyR55yg5pyfID4ga3l1dW1pbmtpXCA7Civlia/nt4/nkIYgPiBmdWt1c291cmlcIDsKK+S8tOWlj+iAhSA+IGJhbnNvdXNoYVwgOwor5a++6KuH6ICFID4gdGFpZGFuc2hhXCA7Civosr/mmJPms5UgPiBib3Vla2lob3VcIDsKK+WckumBiuS8miA+IGVuJyd5dXVrYWlcIDsKK+izm+aIkOiAhSA+IHNhbnNlaXNoYVwgOwor6Iq46IO95Lq6ID4gZ2Vpbm91amluXCA7CivliIborbLlnLAgPiBidW5qb3VjaGlcIDsKK+WxiOWFieaApyA+IGt1a2tvdXNlaVwgOwor55yf54+g5rm+ID4gc2hpbmp1d2FuXCA7CivkuqTpgJrnpo0gPiBrb3V0c3V1a2FcIDsKK+aLneeBq+aVmSA+IGhhaWtha3lvdVwgOwor566H5p2h5pu4ID4ga2Fqb3VnYWtpXCA7CivpgbjmjJnkurogPiBzZW5reW9uaW5cIDsKK+mFqui+suWutiA+IHJha3Vub3VrYVwgOwor5bel6Iq45ZOBID4ga291Z2VpaGluXCA7CivmnKrmnaXlnosgPiBtaXJhaWdhdGFcIDsKK+W8gemwk+mhniA+IGJlbnNhaXJ1aVwgOwor54Sh6LOH5qC8ID4gbXVzaGlrYWt1XCA7Civku7vlkb3mqKkgPiBuaW5tZWlrZW5cIDsKK+iZq+WegueCjiA+IGNodXVzdWllblwgOwor56C06JC95oi4ID4gZ29yb3RzdWtpXCA7Civok4Tpn7PlmaggPiBjaGlrdW9ua2lcIDsKK+e3qeS4i+iWrCA+IGthbmdleWFrdVwgOwor5pyJ5qmf55qEID4geXV1a2l0ZWtpXCA7CivmraPlj43lr74gPiBzZWloYW50YWlcIDsKK+mdkua1t+WOnyA+IGFvdW5hYmFyYVwgOwor5Ye56Z2i6Y+hID4gb3VtZW5reW91XCA7CivloLHpgZPpmaMgPiBob3Vkb3VqaW5cIDsKK+WKo+WLouaEnyA+IHJlc3NlaWthblwgOwor5b6h5paZ5ZywID4gZ29yeW91Y2hpXCA7CivoqIjnrpfogIUgPiBrZWlzYW5zaGFcIDsKK+eEoemnhOWPoyA+IG11ZGFndWNoaVwgOwor5p2O5om/5pmpID4gcmlzaG91YmFuXCA7Civnpo/pn7Pmm7ggPiBmdWt1aW5zaG9cIDsKK+WFq+WNpuaOjCA+IGhha2tlc2hvdVwgOwor6Ieq5Li755qEID4gamlzaHV0ZWtpXCA7CivpgLLmranlhZogPiBzaGlucG90b3VcIDsKK+ebuOWPjeaApyA+IHNvdWhhbnNlaVwgOwor6IO95YuV5oWLID4gbm91ZG91dGFpXCA7Civlj7jku6TlrpggPiBzaGlyZWlrYW5cIDsKK+WcsOmch+ioiCA+IGppc2hpbmtlaVwgOwor57SZ5LiA6YeNID4ga2FtaWhpdG9lXCA7CivmsLTliqDmuJsgPiBtaXp1a2FnZW5cIDsKK+WHuueJiOiyuyA+IHNodXBwYW5oaVwgOwor5p6c5aCx6ICFID4ga2Fob3Vtb25vXCA7CivmiJDplbfmnJ8gPiBzZWljaG91a2lcIDsKK+a1hOWcn+aVmSA+IGpvdWRva3lvdVwgOwor5aSp5LqV5p2/ID4gdGVuam91aXRhXCA7Civpm4blobXmqZ8gPiBzaHV1amlua2lcIDsKK+WHjOazouaApyA+IHJ5b3VoYXNlaVwgOwor5b+r55S35a2QID4ga2FpZGFuc2hpXCA7CivlpKnni5fojLggPiB0ZW5ndXRha2VcIDsKK+eLmeaSg+WFtSA+IHNvZ2VraWhlaVwgOwor5aSW6Lyq5bGxID4gZ2FpcmluemFuXCA7CivmmIfpmY3mqZ8gPiBzaG91a291a2lcIDsKK+aUvueBq+eLgiA+IGhvdWtha3lvdVwgOwor6aKo6aas54mbID4gZnV1YmFneXV1XCA7CivpmbblmajllYYgPiB0b3VraXNob3VcIDsKK+S4ieWhgee3miA+IHNhbnJ1aXNlblwgOwor6YGT576p5b+DID4gZG91Z2lzaGluXCA7CivotoXmmYLnqbogPiBjaG91amlrdXVcIDsKK+W+rueykuWtkCA+IGJpcnl1dXNoaVwgOwor5rC05bmz57eaID4gc3VpaGVpc2VuXCA7Civlho3lsIvllY8gPiBzYWlqaW5tb25cIDsKK+a4heaOg+i7iiA+IHNlaXNvdXNoYVwgOwor5pyA5YmN57eaID4gc2FpemVuc2VuXCA7Civntbblr77ogIUgPiB6ZXR0YWlzaGFcIDsKK+ato+eiuuW6piA+IHNlaWtha3Vkb1wgOwor5rC35YmK5qmfID4gaHlvdXNha2tpXCA7CivliIbop6Pog70gPiBidW5rYWlub3VcIDsKK+Wbm+inkuW9oiA+IHNoaWtha2tlaVwgOwor5a6j6KiA5pu4ID4gc2VuZ2Vuc2hvXCA7Civlj7jku6TloZQgPiBzaGlyZWl0b3VcIDsKK+eri+WkquWtkCA+IHJpdHRhaXNoaVwgOwor5pyJ6LmE6aGeID4geXV1dGVpcnVpXCA7Civkvb/nlKjogIUgPiBzaGl5b3VzaGFcIDsKK+WkqeS4iueVjCA+IHRlbmpvdWthaVwgOwor6Z2S5rW35LqAID4gYW91bWlnYW1lXCA7CivmnaXpgYrogIUgPiByYWl5dXVzaGFcIDsKK+W3qOS6uui7jSA+IGt5b2ppbmd1blwgOwor5a2m6YOo55SfID4gZ2FrdWJ1c2VpXCA7Civlt6Xlrabpg6ggPiBrb3VnYWt1YnVcIDsKK+aVmeenkeabuCA+IGt5b3VrYXNob1wgOwor57WM5riI5rOVID4ga2VpemFpaG91XCA7CivnoLTlgrfpoqggPiBoYXNob3VmdXVcIDsKK+aMgeWPguS6uiA+IGppc2FuJyduaW5cIDsKK+e3j+edo+W6nCA+IHNvdXRva3VmdVwgOwor5pel5pys6auqID4gbmlob25nYW1pXCA7CivliLblvqHmo5IgPiBzZWlneW9ib3VcIDsKK+aknOahiOabuCA+IGtlbicnYW5zaG9cIDsKK+atqemBk+apiyA+IGhvZG91a3lvdVwgOwor5Zyw5pa557SZID4gY2hpaG91c2hpXCA7Civml6Xlgq3lj5YgPiBoaXlvdXRvcmlcIDsKK+WcsOeNhOWkiSA+IGppZ29rdWhlblwgOwor5ZCI5aWP5ZujID4gZ2Fzc291ZGFuXCA7CivnmbrmjK/lmaggPiBoYXNzaGlua2lcIDsKK+WkqeS6leaJhyA+IHRlbmpvdXNlblwgOwor5YWo5Y+N5bCEID4gemVuaGFuc2hhXCA7CivlpInpgJ/mqZ8gPiBoZW5zb2t1a2lcIDsKK+eEoeeQhuW8jyA+IG11cmlzaGlraVwgOwor6Lu95Yq05YONID4ga2Vpcm91ZG91XCA7CivmraPlj43lkIggPiBzZWloYW5nb3VcIDsKK+e1jOa4iOashCA+IGtlaXphaXJhblwgOwor55Sf5a2X5byVID4gaWtpamliaWtpXCA7CivmipXnpajljLogPiB0b3VoeW91a3VcIDsKK+acqOabnOaXpSA+IG1va3V5b3ViaVwgOwor5Ye65pyo5bm0ID4gZGVraWRvc2hpXCA7CivnopPmsLfls6AgPiB1c3VpdG91Z2VcIDsKK+WKoOWFpemHkSA+IGthbnl1dWtpblwgOwor5rCR6ZaT5Lq6ID4gbWlua2FuamluXCA7Civlhazli5/moKogPiBrb3Vib2thYnVcIDsKK+S5l+mmrOacjSA+IGpvdWJhZnVrdVwgOwor5pel5pys6aCYID4gbmlob25yeW91XCA7CivokZfmm7jlkI0gPiBjaG9zaG9tZWlcIDsKK+e1jOWWtuWtpiA+IGtlaWVpZ2FrdVwgOwor55m96Ymb6YmxID4gaGFrdWVua291XCA7Civnspfnm67ns5YgPiB6YXJhbWV0b3VcIDsKK+WGheeOhOmWoiA+IG5haWdlbmthblwgOwor5Zyw5pa556iOID4gY2hpaG91emVpXCA7Civlt6Hmn7vplbcgPiBqdW5zYWNob3VcIDsKK+WNsOWIt+apnyA+IGluc2F0c3VraVwgOwor5YeN5q276ICFID4gdG91c2hpc2hhXCA7Civnmb3pioXosqggPiBoYWt1ZG91a2FcIDsKK+WkqeeQg+WbsyA+IHRlbmt5dXV6dVwgOwor5YWr5Y2D5bm0ID4geWFjaGl0b3NlXCA7Civljp/lp4vkurogPiBnZW5zaGlqaW5cIDsKK+WKoOW3peizgyA+IGtha291Y2hpblwgOwor56u56Lyq6bqpID4gY2hpa3V3YWZ1XCA7CivkuIDmlrnnmoQgPiBpcHBvdXRla2lcIDsKK+WHuuS7leS6iyA+IGRlc2hpZ290b1wgOwor5q2j5b+15aC0ID4gc2hvdW5lbmJhXCA7Civmn5TpgZPloLQgPiBqdXVkb3Vqb3VcIDsKK+iEiumrhOeCjiA+IHNla2l6dWllblwgOwor5LqM6YeN6YecID4gbmlqdXVnYW1hXCA7Civnq4vmlrnkvZMgPiByaXBwb3V0YWlcIDsKK+mBoOmalOaApyA+IGVua2FrdXNlaVwgOwor6Lu95q2M5YqHID4ga2Vpa2FnZWtpXCA7CivliLbli5Xnga8gPiBzZWlkb3V0b3VcIDsKK+WCrOecoOWJpCA+IHNhaW1pbnphaVwgOwor5LuK5LiA5bqmID4gaW1haWNoaWRvXCA7CivmlLvpmLLmiKYgPiBrb3Vib3VzZW5cIDsKK+a1hOWcn+WulyA+IGpvdWRvc2h1dVwgOwor5pON57im5qG/ID4gc291anV1a2FuXCA7CivmlofmmI7ppKggPiBidW5tZWlrYW5cIDsKK+WwjumWouaVsCA+IGRvdWthbnN1dVwgOwor5rue5Zyo5ZywID4gdGFpemFpY2hpXCA7CivkuIrntI3nsbMgPiBqb3Vub3VtYWlcIDsKK+Wuh+WumeacjSA+IHVjaHV1ZnVrdVwgOwor5Yip5Y+j6ICFID4gcmlrb3Vtb25vXCA7Civmlrnms5Xoq5YgPiBob3Vob3Vyb25cIDsKK+iTi+eEtuaApyA+IGdhaXplbnNlaVwgOwor5Y2K6KO95ZOBID4gaGFuc2VpaGluXCA7CivkuIDloLTpnaIgPiBpY2hpYmFtZW5cIDsKK+efs+eJiOeUuyA+IHNla2liYW5nYVwgOwor55m76Yyy57C/ID4gdG91cm9rdWJvXCA7CivkuIDmmKjmmakgPiBpc3Nha3ViYW5cIDsKK+WkmualteWMliA+IHRha3lva3VrYVwgOwor5aSn5LiA55WqID4gb29pY2hpYmFuXCA7CivooZvmmJ/lm70gPiBlaXNlaWtva3VcIDsKK+S4i+e0mueUnyA+IGtha3l1dXNlaVwgOwor5qiZ5rqW5pmCID4gaHlvdWp1bmppXCA7Civpq5jpvaLogIUgPiBrb3VyZWlzaGFcIDsKK+S4gOS4geWJjSA+IGl0Y2hvdW1hZVwgOwor5qiq5oGL5oWVID4geW9rb3JlbmJvXCA7CivosqHnlKPnqI4gPiB6YWlzYW56ZWlcIDsKK+S6jOmHjei6qyA+IG5panV1c2hpblwgOwor55Sf55CG5a2mID4gc2VpcmlnYWt1XCA7CivnhrHlmajlhbcgPiBuZXRzdWtpZ3VcIDsKK+WvkuWGt+e0lyA+IGthbnJlaXNoYVwgOwor5rC06YGT5qCTID4gc3VpZG91c2VuXCA7CivmjqLntKLmnKggPiB0YW5zYWt1Z2lcIDsKK+eglOeptuenkSA+IGtlbmt5dXVrYVwgOwor5a6f5pa95L6LID4gamlzc2hpcmVpXCA7Civplbfpn7Ppmo4gPiBjaG91b25rYWlcIDsKK+S4jeipleWIpCA+IGZ1aHlvdWJhblwgOwor6YG45omL5ZujID4gc2Vuc2h1ZGFuXCA7Civlip/liKnnmoQgPiBrb3VyaXRla2lcIDsKK+WkqeeQg+WEgCA+IHRlbmt5dXVnaVwgOwor55yf54+g5bGkID4gc2hpbmp1c291XCA7CivlubPlnYfngrkgPiBoZWlraW50ZW5cIDsKK+mAo+WQiOS8miA+IHJlbmdvdWthaVwgOwor5bel5qWt5YyWID4ga291Z3lvdWthXCA7CivotaTpgZPlhIAgPiBzZWtpZG91Z2lcIDsKK+aWh+WtpuW6pyA+IGJ1bmdha3V6YVwgOwor5Yq05YON5YWaID4gcm91ZG91dG91XCA7CivntYzmuIjmiKYgPiBrZWl6YWlzZW5cIDsKK+exs+epuui7jSA+IGJlaWt1dWd1blwgOwor5pW35bGF572uID4gc2hpa2lpY2hpXCA7CivphY3lvZPph5EgPiBoYWl0b3VraW5cIDsKK+mjm+iaiueXhyA+IGhpYnVuc2hvdVwgOwor6LWk55ei6I+MID4gc2VraXJpa2luXCA7CivkupTljYHogqkgPiBnb2p1dWthdGFcIDsKK+mrmOetieWumCA+IGtvdXRvdWthblwgOwor5Zyw5pa554mIID4gY2hpaG91YmFuXCA7CivniYfohLPmsrkgPiBoZW4nJ25vdXl1XCA7CivlpYnooYzmiYAgPiBidWd5b3VzaG9cIDsKK+iCr+WumuaWhyA+IGtvdXRlaWJ1blwgOwor6Iqz6aaZ5YmkID4gaG91a291emFpXCA7Civngavngb3mtYEgPiBrYXNhaXJ5dXVcIDsKK+WNsOWIt+aJgCA+IGluc2F0c3Vqb1wgOwor5aSn6IGW5aCCID4gZGFpc2VpZG91XCA7CivntYzmuIjmgKcgPiBrZWl6YWlzZWlcIDsKK+ibh+e0i+efsyA+IGphbW9uc2VraVwgOwor5rWB6KGM5q2MID4gcnl1dWtvdWthXCA7CivkuInop5LmtLIgPiBzYW5rYWt1c3VcIDsKK+S4ieaWh+WIpCA+IHNhbm1vbmJhblwgOwor5LiJ6KeS5rOiID4gc2Fua2FrdWhhXCA7Civlrp/pmpvmgKcgPiBqaXNzYWlzZWlcIDsKK+erueefouadpSA+IHRha2V5YXJhaVwgOwor5bmz6KGM57eaID4gaGVpa291c2VuXCA7CivokbHlnYrkuLsgPiBuZWdpYm91enVcIDsKK+Wtq+W8n+WtkCA+IG1hZ29kZXNoaVwgOwor5a6556mN5q+UID4geW91c2VraWhpXCA7CivliLbphbjliaQgPiBzZWlzYW56YWlcIDsKK+WNoOWPluaoqSA+IHNlbnNodWtlblwgOwor5Li755y854K5ID4gc2h1Z2FudGVuXCA7CivpgaDpmpTlnLAgPiBlbmtha3VjaGlcIDsKK+S4ieinkuavlCA+IHNhbmtha3VoaVwgOwor6ZW35pmC6ZaTID4gY2hvdWppa2FuXCA7CivljYrnq6/ogIUgPiBoYW5wYW1vbm9cIDsKK+eLrOemgeazlSA+IGRva2tpbmhvdVwgOwor5bqD5ZGK6LK7ID4ga291a29rdWhpXCA7CivmnIDlhKrpgYcgPiBzYWl5dXVndXVcIDsKK+WPsOmiqOecvCA+IHRhaWZ1dWdhblwgOwor5pyq5pWZ6IKyID4gbWlreW91aWt1XCA7Civoo4Hmlq3luKsgPiBzYWlkYW5zaGlcIDsKK+WFqOWNmOWwhCA+IHplbnRhbnNoYVwgOwor5Yq55p6c55qEID4ga291a2F0ZWtpXCA7CivnqbrmiYvlvaIgPiBrdXV0ZWdhdGFcIDsKK+WNsOWIu+W4qyA+IGlua29rdXNoaVwgOwor6Z2S5bm06LypID4gc2VpbmVuaGFpXCA7CivlibLng7nlupcgPiBrYXBwb3V0ZW5cIDsKK+iyv+aYk+WTgSA+IGJvdWVraWhpblwgOwor5YmK5bKp5qmfID4gc2FrdWdhbmtpXCA7CivlrozkuoblvowgPiBrYW5yeW91Z29cIDsKK+Wkp+S4iuautSA+IGRhaWpvdWRhblwgOwor5ZyS6Iq45a2mID4gZW5nZWlnYWt1XCA7CivmjIfnm7jmkrIgPiB5dWJpenVtb3VcIDsKK+iCqeeUsuW4ryA+IGtlbmtvdXRhaVwgOwor5q2j5b2T5oCnID4gc2VpdG91c2VpXCA7CivnoILns5bmsLQgPiBzYXRvdW1penVcIDsKK+aWuemMkOW9oiA+IGhvdXN1aWtlaVwgOwor55u45b2T5pWwID4gc291dG91c3V1XCA7CivphrjpgKDphZIgPiBqb3V6b3VzaHVcIDsKK+W3puS4remWkyA+IHNhY2h1dWthblwgOwor5Lyd5Luk6ICFID4gZGVucmVpc2hhXCA7CivmnKjntr/ph50gPiBtb21lbmJhcmlcIDsKK+acqOeJiOeUuyA+IG1va3VoYW5nYVwgOwor5qSc5p+75b25ID4ga2Vuc2F5YWt1XCA7Civlv5jlubTkvJogPiBib3VuZW5rYWlcIDsKK+Wuh+WumeWtpiA+IHVjaHV1Z2FrdVwgOwor55yf55CG5YCkID4gc2hpbnJpY2hpXCA7CivphY3msLTnrqEgPiBoYWlzdWlrYW5cIDsKK+WkqumZvemiqCA+IHRhaXlvdWZ1dVwgOwor5L2/55So5rOVID4gc2hpeW91aG91XCA7CivljbDliLflsYsgPiBpbnNhdHN1eWFcIDsKK+mfs+WjsOWtpiA+IG9uc2VpZ2FrdVwgOwor5LyK6YGU5aWzID4gZGF0ZW9uJyduYVwgOwor5Ymv6Kme5Y+lID4gZnVrdXNoaWt1XCA7Civlrp/mlbDkvZMgPiBqaXNzdXV0YWlcIDsKK+ijj+mVt+WxiyA+IHVyYW5hZ2F5YVwgOwor5p2x5bel5aSnID4gdG91a291ZGFpXCA7CivoirHmmYLoqIggPiBoYW5hZG9rZWlcIDsKK+ijvemAoOWTgSA+IHNlaXpvdWhpblwgOwor6KiI566X5pu4ID4ga2Vpc2Fuc2hvXCA7CivliLbli5XmiYsgPiBzZWlkb3VzaHVcIDsKK+S4jeimj+W+iyA+IGZ1a2lyaXRzdVwgOwor5Y+j6IWU55mMID4ga291a291Z2FuXCA7Civlm57nrZTogIUgPiBrYWl0b3VzaGFcIDsKK+WNmOW+k+mZoyA+IHRhbmp1dWppblwgOwor5Y+N6Iux6ZuEID4gaGFuJydlaXl1dVwgOwor5Li75qip6ICFID4gc2h1a2Vuc2hhXCA7CivlpKfmnKzlsbEgPiBkYWlob256YW5cIDsKK+S4reWSjOWJpCA+IGNodXV3YXphaVwgOwor5oWI5ZaE566xID4gaml6ZW5iYWtvXCA7CivmnIDlt6bnv7wgPiBzYWlzYXlva3VcIDsKK+S4ieinkuaXlyA+IHNhbmtha3VraVwgOwor5Yqg5YWl6ICFID4ga2FueXV1c2hhXCA7Civoo77mqKHmp5ggPiBzdXNvbW95b3VcIDsKK+S4gOmau+ecvCA+IGlzc2VraWdhblwgOwor5L2/55So5qipID4gc2hpeW91a2VuXCA7Civov5HkvZPoqakgPiBraW50YWlzaGlcIDsKK+WkqeeLvOaYnyA+IHRlbnJvdXNlaVwgOwor5YaN54qv6ICFID4gc2FpaGFuc2hhXCA7Civlk6jmiJLmqZ8gPiBzaG91a2Fpa2lcIDsKK+mAmumBjumnhSA+IHRzdXVrYWVraVwgOwor5aSn5Lq65YWxID4gb3RvbmFkb21vXCA7CivngrrmlL7poYwgPiBzaGlob3VkYWlcIDsKK+iLpuW/g+irhyA+IGt1c2hpbmRhblwgOwor5pON57im5aOrID4gc291anV1c2hpXCA7CivnnJ/nj6DlhYkgPiBzaGluanVrb3VcIDsKK+mAn+W6puioiCA+IHNva3Vkb2tlaVwgOwor54Sh6LKs5Lu7ID4gbXVzZWtpbmluXCA7Civmkq3kvYbnt5ogPiBiYW50YW5zZW5cIDsKK+iBluiqleelrSA+IHNlaXRhbnNhaVwgOwor54Sh5LiA5paHID4gbXVpY2hpbW9uXCA7CivluLjliIbmlbAgPiBqb3VidW5zdXVcIDsKK+WGjeiAg+aFriA+IHNhaWtvdXJ5b1wgOwor5YSA5YW46ZW3ID4gZ2l0ZW5jaG91XCA7Civlt6Xlrabnp5EgPiBrb3VnYWt1a2FcIDsKK+S6pOatk+S8miA+IGtvdWthbmthaVwgOwor5aSp6LGh5YSAID4gdGVuc2hvdWdpXCA7CivlvJXnlKjmlocgPiBpbicneW91YnVuXCA7CivojZLms5XluKsgPiBhcmFob3VzaGlcIDsKK+eZgumkiuiyuyA+IHJ5b3V5b3VoaVwgOwor5qmf6Zai6ZW3ID4ga2lrYW5jaG91XCA7CivlkJHlnLDmgKcgPiBrb3VjaGlzZWlcIDsKK+WHseaXi+mWgCA+IGdhaXNlbm1vblwgOwor6Kit5YKZ6LK7ID4gc2V0c3ViaWhpXCA7Civoo4HnuKvluKsgPiBzYWlob3VzaGlcIDsKK+iyoeeUo+aoqSA+IHphaXNhbmtlblwgOwor5ZCM6KGM6ICFID4gZG91a291c2hhXCA7CivmipXnn7PmqZ8gPiB0b3VzZWtpa2lcIDsKK+aEm+agoeW/gyA+IGFpa291c2hpblwgOwor5LyP6a2U5q6/ID4gZnVrdW1hZGVuXCA7CivojLblmajntYQgPiBjaGFraWd1bWlcIDsKK+S4ieWhgeaJiyA+IHNhbnJ1aXNodVwgOwor6Jma54Sh55qEID4ga3lvbXV0ZWtpXCA7CivkvJ3lsI7mgKcgPiBkZW5kb3VzZWlcIDsKK+aWh+Wtl+WIlyA+IG1vamlyZXRzdVwgOwor5Y+N6Iq76aGeID4gaGFuc3V1cnVpXCA7CivlrprlnovoqakgPiB0ZWlrZWlzaGlcIDsKK+awtOiPk+WtkCA+IG1penVnYXNoaVwgOwor5L2/55So5pa5ID4gc2hpeW91aG91XCA7Civpu43lm6PlrZAgPiBraWJpZGFuZ29cIDsKK+i7n+WPo+iTiyA+IG5hbmtvdWdhaVwgOwor6ZeH55u45aC0ID4geWFtaXNvdWJhXCA7CivlroflrpnljZogPiB1Y2h1dWhha3VcIDsKK+acgOWJjeaIpiA+IHNhaXplbnNlblwgOwor6Iql5a2Q6I+cID4ga2FyYXNoaW5hXCA7Civnj43pgZPlhbcgPiBjaGluZG91Z3VcIDsKK+m7hOihqOe0mSA+IGtpYnlvdXNoaVwgOwor5b6T5aeJ5aa5ID4ganV1c2hpbWFpXCA7CivlrZDnpo/ogIUgPiBrb2J1a3VzaGFcIDsKK+aAneaDs+eVjCA+IHNoaXNvdWthaVwgOwor5rCR6KGG5YyWID4gbWluc2h1dWthXCA7CivpiI3pu4ToibIgPiBuaWJ1a2lpcm9cIDsKK+S4ieinkuW9oiA+IHNhbmtha2tlaVwgOwor5aSn5pys5Za2ID4gZGFpaG9uJydlaVwgOwor54yb54m56KiTID4gbW91dG9ra3VuXCA7CivkuojlkYrnt6ggPiB5b2tva3VoZW5cIDsKK+WGt+a5v+W4gyA+IHJlaXNoaXBwdVwgOwor5qiZ5rqW5YyWID4gaHlvdWp1bmthXCA7CivljZfom67kurogPiBuYW5iYW5qaW5cIDsKK+eUsOWckuipqSA+IGRlbicnZW5zaGlcIDsKK+S4ieinkuW6pyA+IHNhbmtha3V6YVwgOwor5YaN6Kmm6aiTID4gc2Fpc2hpa2VuXCA7Civlr5LluK/mnpcgPiBrYW50YWlyaW5cIDsKK+WCvuaWnOmdoiA+IGtlaXNoYW1lblwgOwor5q275Lqh6ICFID4gc2hpYm91c2hhXCA7CivkuInop5LluIYgPiBzYW5rYWt1aG9cIDsKK+WNiuerr+eJqSA+IGhhbnBhbW9ub1wgOwor5ama5ae75rOVID4ga29uJydpbmhvdVwgOwor5LiJ6KeS5beeID4gc2Fua2FrdXN1XCA7Civkuozph43nqpMgPiBuaWp1dW1hZG9cIDsKK+iHqueEtumhniA+IHNoaXplbnJ1aVwgOwor5bCC5aOy5ZOBID4gc2VuYmFpaGluXCA7CivkuI3ntbHkuIAgPiBmdXRvdWl0c3VcIDsKK+WknOS8muacjSA+IHlha2FpZnVrdVwgOwor5LqI5ZGK56+HID4geW9rb2t1aGVuXCA7CivlhZrmtL7lv4MgPiB0b3VoYXNoaW5cIDsKK+aAneaDs+eKryA+IHNoaXNvdWhhblwgOwor5byB5b2T5LujID4gYmVudG91ZGFpXCA7Civogp3oh5PnmYwgPiBrYW56b3VnYW5cIDsKK+e1jOa4iOS6uiA+IGtlaXphaWppblwgOwor5LuP5pWZ5b6SID4gYnVra3lvdXRvXCA7CivnsbPmtbfou40gPiBiZWlrYWlndW5cIDsKK+WQq+ayueWxpCA+IGdhbicneXVzb3VcIDsKK+aDheWgseiqjCA+IGpvdWhvdXNoaVwgOwor5Yex5peL6LuNID4gZ2Fpc2VuZ3VuXCA7CivokL3kvI3ogIUgPiByYWt1Z29zaGFcIDsKK+iejeino+eCuSA+IHl1dWthaXRlblwgOwor5reL5be055CDID4gcmlucGFreXV1XCA7Civlq4znhZnmqKkgPiBrZW4nJ2Vua2VuXCA7CivlpKvlqabku7IgPiBmdXVmdW5ha2FcIDsKK+aEn+afk+WOnyA+IGthbnNlbmdlblwgOwor6L+O6LOT6aSoID4gZ2VpaGlua2FuXCA7CivoqZXorbDkvJogPiBoeW91Z2lrYWlcIDsKK+WlveeUt+WtkCA+IGtvdWRhbnNoaVwgOwor5pep5pil6LOmID4gc291c2h1bmZ1XCA7CivllonpoK3nmYwgPiBrb3V0b3VnYW5cIDsKK+WvnealreW4qyA+IG5ld2F6YXNoaVwgOwor5Lq65qC85YyWID4gamlua2FrdWthXCA7CivntrrpupfkuosgPiBraXJlaWdvdG9cIDsKK+iomOWQjeagqiA+IGtpbWVpa2FidVwgOwor5pC65biv5ZOBID4ga2VpdGFpaGluXCA7Civpp5Dlsa/miYAgPiBjaHV1dG9uam9cIDsKK+eglOeptuaJgCA+IGtlbmt5dXVqb1wgOwor5pyA5YWI56uvID4gc2Fpc2VudGFuXCA7CivlsYXkvY/ogIUgPiBreW9qdXVzaGFcIDsKK+iqh+W8teazlSA+IGtvY2hvdWhvdVwgOwor6KaW6Kaa5YyWID4gc2hpa2FrdWthXCA7CivkuK3oj6/ooZcgPiBjaHV1a2FnYWlcIDsKK+mAo+WIpOeKtiA+IHJlbmJhbmpvdVwgOwor6bqd6aaZ54yrID4gamFrb3VuZWtvXCA7CivlpInlhYnmmJ8gPiBoZW5rb3VzZWlcIDsKK+Wvqeafu+WumCA+IHNoaW5zYWthblwgOwor5aSa55So5LitID4gdGF5b3VjaHV1XCA7Civml6nmnbHmiKYgPiBzb3V0b3VzZW5cIDsKK+m7meenmOaoqSA+IG1va3VoaWtlblwgOwor5YaS6Zm66KuHID4gYm91a2VuZGFuXCA7CivluLjlgpnolqwgPiBqb3ViaXlha3VcIDsKK+WmiuWppuacjSA+IG5pbnB1ZnVrdVwgOwor5L2T6YeN6KiIID4gdGFpanV1a2VpXCA7CivorablrpjpmoogPiBrZWlrYW50YWlcIDsKK+ism+irh+ekviA+IGtvdWRhbnNoYVwgOwor6L+R5Luj6KmpID4ga2luZGFpc2hpXCA7CivnhZnojYnpiq0gPiB0YWJha29zZW5cIDsKK+mWk+aKleipniA+IGthbnRvdXNoaVwgOwor562U5byB6ICFID4gdG91YmVuc2hhXCA7CivlubPooYzmo5IgPiBoZWlrb3Vib3VcIDsKK+ifu+WcsOeNhCA+IGFyaWppZ29rdVwgOwor5omB5qGD6IW6ID4gaGVudG91c2VuXCA7CivlhazliKTlu7cgPiBrb3VoYW50ZWlcIDsKK+aVsOWEhOW5tCA+IHN1dW9rdW5lblwgOwor55uG54Gv57GgID4gYm9uZG91cm91XCA7CivntYLmiKblvowgPiBzaHV1c2VuZ29cIDsKK+e3qOmbhumDqCA+IGhlbnNodXVidVwgOwor5ZGo5Zuy6ZW3ID4gc2h1dWljaG91XCA7CivlhazpgbjliLYgPiBrb3VzZW5zZWlcIDsKK+S/rueQhuW3pSA+IHNodXVyaWtvdVwgOwor5pyA6YGp5YyWID4gc2FpdGVraWthXCA7CivljJblrabogIUgPiBrYWdha3VzaGFcIDsKK+i0iOizhOe9qiA+IHpvdXdhaXphaVwgOwor5LiN5om/6KqNID4gZnVzaG91bmluXCA7CivkupTph43llLEgPiBnb2p1dXNob3VcIDsKK+W5tOm9oumghiA+IG5lbnJlaWp1blwgOwor6LOt5Y2a5aC0ID4gdG9iYWt1am91XCA7CivnnIvlrojogIUgPiBrYW5zaHVzaGFcIDsKK+W8sembu+WZqCA+IGpha3VkZW5raVwgOwor5pel5pys55qEID4gbmlob250ZWtpXCA7Civplovlor7lnLAgPiBrYWlrb25jaGlcIDsKK+emgeeMn+acnyA+IGtpbnJ5b3VraVwgOwor5YmN6aGN6YOoID4gemVuZ2FrdWJ1XCA7CivoqZXoq5blrrYgPiBoeW91cm9ua2FcIDsKK+S4gOaWieWuiSA+IGlzc2VpeWFzdVwgOwor5LiA6Kaq562JID4gaXNzaGludG91XCA7Civlho3mlL7pgIEgPiBzYWlob3Vzb3VcIDsKK+iIiOihjOWMliA+IGtvdWd5b3VrYVwgOwor5YyW5a2m57eaID4ga2FnYWt1c2VuXCA7CivmiKbmrbvogIUgPiBzZW5zaGlzaGFcIDsKK+S4gOaWh+WtlyA+IGljaGltb25qaVwgOwor5paH5aOr6YCjID4gYnVuc2hpcmVuXCA7CivmnKjntr/ns7ggPiBtb21lbicnaXRvXCA7CivnhKbpm7vmsJcgPiBzaG91ZGVua2lcIDsKK+aOiOS4juW8jyA+IGp1eW9zaGlraVwgOwor55uu5YiG6YePID4gbWVidW5yeW91XCA7CivlpKnkuIvkuIAgPiB0ZW5rYWljaGlcIDsKK+S4reWPpOWTgSA+IGNodXVrb2hpblwgOwor5biC5aC05oCnID4gc2hpam91c2VpXCA7CivkuK3mgKfloakgPiBjaHV1c2VpZW5cIDsKK+aWh+iqnuiqvyA+IGJ1bmdvY2hvdVwgOwor5pWj5YW157eaID4gc2FucGVpc2VuXCA7CivmtYHooYzlhZAgPiByeXV1a291amlcIDsKK+WPiOW+k+W8nyA+IG1hdGFpdG9rb1wgOwor6IW55pmC6KiIID4gaGFyYWRva2VpXCA7CivluIPooovohbkgPiBob3RlaWJhcmFcIDsKK+eEoeaVmeiCsiA+IG11a3lvdWlrdVwgOwor56CU56m25a62ID4ga2Vua3l1dWthXCA7CivmlZnljLrmsJEgPiBreW91a3VtaW5cIDsKK+WcsOmch+W4ryA+IGppc2hpbnRhaVwgOwor6ZW35pyf5oimID4gY2hvdWtpc2VuXCA7CivpgJrnn6XnsL8gPiB0c3V1Y2hpYm9cIDsKK+WKoOW3pealrSA+IGtha291Z3lvdVwgOwor5LiN6KGM54q2ID4gZnVneW91am91XCA7Civog6HpurvmsrkgPiBnb21hYWJ1cmFcIDsKK+aXpeacrOeMvyA+IG5paG9uemFydVwgOwor5pen5LiW55WMID4ga3l1dXNla2FpXCA7CivmsLTlubPli5UgPiBzdWloZWlkb3VcIDsKK+efreWkp+eUnyA+IHRhbmRhaXNlaVwgOwor6IKW5YOP55S7ID4gc2hvdXpvdWdhXCA7CivkuIDop5LnjaMgPiBpa2tha3VqdXVcIDsKK+WPr+WkiemVtyA+IGthaGVuY2hvdVwgOwor5LiA6KaB57SgID4gaWNoaXlvdXNvXCA7CivlhZDnq6XliocgPiBqaWRvdWdla2lcIDsKK+Wfi+iRrOWcsCA+IG1haXNvdWNoaVwgOwor5LiK6KO95pysID4gam91c2VpYm9uXCA7CivkuKHmgKfoirEgPiByeW91c2Vpa2FcIDsKK+Wun+ihjOiAhSA+IGppa2tvdXNoYVwgOwor5YK+5pac6KiIID4ga2Vpc2hha2VpXCA7Civniq/nvarogIUgPiBoYW56YWlzaGFcIDsKK+e1tuS6pOeKtiA+IHpla2tvdWpvdVwgOwor5aSW5p2l6ICFID4gZ2FpcmFpc2hhXCA7CivkvJ3lsI7kvZMgPiBkZW5kb3V0YWlcIDsKK+aWnOa7kemZjSA+IHNoYWtha2tvdVwgOwor5bi45bmz5YCJID4gam91aGVpc291XCA7CivkuLvlgqzogIUgPiBzaHVzYWlzaGFcIDsKK+aflOi7n+aApyA+IGp1dW5hbnNlaVwgOwor5YiG5ouF6YeRID4gYnVudGFua2luXCA7CivlhrfolLXou4ogPiByZWl6b3VzaGFcIDsKK+acgOmrmOijgSA+IHNhaWtvdXNhaVwgOwor5Yqg5YWl5qipID4ga2FueXV1a2VuXCA7CivliY3kvY/miYAgPiB6ZW5qdXVzaG9cIDsKK+Wxleacm+WhlCA+IHRlbmJvdXRvdVwgOwor6YGO5pWP55eHID4ga2FiaW5zaG91XCA7CivkurrpoK3nqI4gPiBuaW50b3V6ZWlcIDsKK+iInuWPsOWKhyA+IGJ1dGFpZ2VraVwgOwor5bmz5Z2H5YCkID4gaGVpa2luY2hpXCA7CivmoLzlrZDpnaIgPiBrb3VzaGltZW5cIDsKK+awtOiMtuWxiyA+IG1penVjaGF5YVwgOwor5oOF5aCx57ayID4gam91aG91bW91XCA7Civlt7Tml6bmnY8gPiBoYXRhbmt5b3VcIDsKK+Wvqee+juecvCA+IHNoaW5iaWdhblwgOwor5Yem5LiW6KiTID4gc2hvc2Vpa3VuXCA7Civoh6rnhLboprMgPiBzaGl6ZW5rYW5cIDsKK+iEguiCqumFuCA+IHNoaWJvdXNhblwgOwor6ZaA5aSW5ryiID4gbW9uZ2Fpa2FuXCA7Civmipfoj4zmgKcgPiBrb3VraW5zZWlcIDsKK+S8neafk+aApyA+IGRlbnNlbnNlaVwgOwor5pyq57WE57mUID4gbWlzb3NoaWtpXCA7CivmsLTmp5jmtrIgPiBzdWl5b3Vla2lcIDsKK+aVkeWKqemaiiA+IGt5dXVqb3RhaVwgOwor5L+d5a2Y6YePID4gaG96b25yeW91XCA7CivmoLjlhbXlmaggPiBrYWt1aGVpa2lcIDsKK+S4jea6gOi2syA+IGZ1bWFuem9rdVwgOwor6ZW36KuH6K2wID4gbmFnYWRhbmdpXCA7CivlhpLpmbrogIUgPiBib3VrZW5zaGFcIDsKK+e+veiSsuWboyA+IGhhbmVidXRvblwgOwor5Zyw5pa55YK1ID4gY2hpaG91c2FpXCA7CivmnKzloLTniakgPiBob25iYW1vbm9cIDsKK+iqnuWtpuiAhSA+IGdvZ2FrdXNoYVwgOwor5YaN6Kmm6KGMID4gc2Fpc2hpa291XCA7CivlsYXkuIjpq5ggPiBpdGFrZWRha2FcIDsKK+WkqumZveezuyA+IHRhaXlvdWtlaVwgOwor56CU56m25ZOhID4ga2Vua3l1dWluXCA7CivlvKXnuKvnrZYgPiBiaWhvdXNha3VcIDsKK+eEoeWgsemFrCA+IG11aG91c2h1dVwgOwor6JiG5rqd5qmLID4gcm9rb3VreW91XCA7Civntbblr77lgKQgPiB6ZXR0YWljaGlcIDsKK+WkqemgguWEgCA+IHRlbmNob3VnaVwgOwor5rW36LOK546LID4ga2Fpem9rdW91XCA7CivosqHnlYzkurogPiB6YWlrYWlqaW5cIDsKK+miqOadpeWdiiA+IGZ1dXJhaWJvdVwgOwor5a+S5Ya35ZywID4ga2FucmVpY2hpXCA7CivliY3nva7oqZ4gPiB6ZW5jaGlzaGlcIDsKK+WKoOWIpOS6uiA+IGthaGFuJyduaW5cIDsKK+WLlea7kei7iiA+IGRvdWthc3NoYVwgOwor57WQ5rC35pyfID4ga2VwcHlvdWtpXCA7CivlsZXmnJvlj7AgPiB0ZW5ib3VkYWlcIDsKK+ekvOaLneWggiA+IHJlaWhhaWRvdVwgOwor6auY5oCn6IO9ID4ga291c2Vpbm91XCA7Civkub7mtbfoi5QgPiBob3NoaW5vcmlcIDsKK+S9v+eUqOS+iyA+IHNoaXlvdXJlaVwgOwor5pyJ55Sw54S8ID4gYXJpdGF5YWtpXCA7Civpq5jlkajms6IgPiBrb3VzaHV1aGFcIDsKK+Wwv+aknOafuyA+IG55b3VrZW5zYVwgOwor55Kw54q257eaID4ga2Fuam91c2VuXCA7Civnmbrmg7Pms5UgPiBoYXNzb3Vob3VcIDsKK+WFjeeojueCuSA+IG1lbnplaXRlblwgOwor5YCk5q616KGoID4gbmVkYW5oeW91XCA7Civnm7TlvJ/lrZAgPiBqaWtpZGVzaGlcIDsKK+mAo+mCpuWItiA+IHJlbnBvdXNlaVwgOwor5L2/55So5Lq6ID4gc2hpeW91bmluXCA7CivmpI3mnKjpiaIgPiB1ZWtpYmFjaGlcIDsKK+eFp+WwhOmHjiA+IHNob3VzaGF5YVwgOwor5oWI5ZaE5b+DID4gaml6ZW5zaGluXCA7CivmnKjnhYnnk6YgPiBtb2t1cmVuZ2FcIDsKK+acqOe2v+eJqSA+IG1vbWVubW9ub1wgOwor5YWt5YiG5YSAID4gcm9rdWJ1bmdpXCA7CivoppblnLDlubMgPiBzaGljaGloZWlcIDsKK+W3peS9nOWToSA+IGtvdXNha3VpblwgOwor5Zue5ryV5bqXID4ga2Fpc291dGVuXCA7Civnn7Pngq3ntIAgPiBzZWtpdGFua2lcIDsKK+aKleapn+eahCA+IHRvdWtpdGVraVwgOwor54yf54qs5bqnID4gcnlvdWtlbnphXCA7Civnmq7osqHluIMgPiBrYXdhemFpZnVcIDsKK+iEs+ihgOagkyA+IG5vdWtlc3NlblwgOwor5q2j5YmH5YyWID4gc2Vpc29rdWthXCA7CivlpKflpaXmp5ggPiBvb29rdXNhbWFcIDsKK+asoOmZpei7iiA+IGtla2thbnNoYVwgOwor5LiA5aSn5LqLID4gaWNoaWRhaWppXCA7CivpgKPliIbmlbAgPiByZW5idW5zdXVcIDsKK+S/rueQhuS7oyA+IHNodXVyaWRhaVwgOwor6JWB6bq755a5ID4gamlubWFzaGluXCA7CivlhbfnlLPmm7ggPiBndXNoaW5zaG9cIDsKK+iqreabuOWutiA+IGRva3VzaG9rYVwgOwor576O6KGT6YOoID4gYmlqdXRzdWJ1XCA7CivmhJ/orJ3npa0gPiBrYW5zaGFzYWlcIDsKK+iytOaWueaWuSA+IGFuYXRhZ2F0YVwgOwor5p2x5Lqs6YO9ID4gdG91a3lvdXRvXCA7Civml6flrZfkvZMgPiBreXV1aml0YWlcIDsKK+eEoeiqv+azlSA+IGJ1Y2hvdWhvdVwgOwor6KO95L2c6LK7ID4gc2Vpc2FrdWhpXCA7CivkuozpgLHplpMgPiBuaXNodXVrYW5cIDsKK+mDqOiQveawkSA+IGJ1cmFrdW1pblwgOwor5Yqg55uf5Zu9ID4ga2FtZWlrb2t1XCA7CivkuIDlpJzkuK0gPiBoaXRveWFqdXVcIDsKK+ani+mAoOS9kyA+IGtvdXpvdXRhaVwgOwor5Lit5Yy75a2mID4gY2h1dWlnYWt1XCA7Civlj5fkv6HogIUgPiBqdXNoaW5zaGFcIDsKK+S8muitsOmMsiA+IGthaWdpcm9rdVwgOwor56aB54WZ6LuKID4ga2luJydlbnNoYVwgOwor6Zu75a2Q6YqDID4gZGVuc2hpanV1XCA7CivlhbfkvZPnrZYgPiBndXRhaXNha3VcIDsKK+i7iuaOjOWMuiA+IHNoYXNob3VrdVwgOwor5LuW5Zu95rCRID4gdGFrb2t1bWluXCA7CivlhJLlrabogIUgPiBqdWdha3VzaGFcIDsKK+WQjeaOouWBtSA+IG1laXRhbnRlaVwgOwor5Zu96YCj5peXID4ga29rdXJlbmtpXCA7Civlj4jlvpPlhYQgPiBtYXRhaXRva29cIDsKK+mvo+eDj+iziiA+IHN1cnVtZWlrYVwgOwor5YWo5biC5rCRID4gemVuc2hpbWluXCA7CivloLHpgZPlrpggPiBob3Vkb3VrYW5cIDsKK+aXpeacrOaZtCA+IG5paG9uYmFyZVwgOwor5biD5Zuj55quID4gZnV0b25nYXdhXCA7Civkv67nuZXosrsgPiBzaHV1emVuaGlcIDsKK+WwgumWgOabuCA+IHNlbm1vbnNob1wgOwor5YWs55So6LuKID4ga291eW91c2hhXCA7CivogJDmgKfoj4wgPiB0YWlzZWlraW5cIDsKK+WQjOeorumhniA+IGRvdXNodXJ1aVwgOwor6Z+z5Z+f5aSWID4gb24nJ2lraWdhaVwgOwor6Kaq5ZKM5oCnID4gc2hpbndhc2VpXCA7CivliY3poK3okYkgPiB6ZW50b3V5b3VcIDsKK+ePoOaaluewviA+IHRhbWFub3JlblwgOwor5Lmd5pif5a62ID4ga3l1dXNlaWthXCA7CivpgJrmsJflrZQgPiB0c3V1a2lrb3VcIDsKK+mao+S6uuaEmyA+IHJpbmppbicnYWlcIDsKK+S4jeaJv+efpSA+IGZ1c2hvdWNoaVwgOwor5q275Lqh5pWwID4gc2hpYm91c3V1XCA7CivlsYXkvY/mqKkgPiBreW9qdXVrZW5cIDsKK+mJpOaLrOW8pyA+IGthZ2lrYWtrb1wgOwor5YCm5oCg5oSfID4ga2VudGFpa2FuXCA7CivlhrfolLXoiLkgPiByZWl6b3VzZW5cIDsKK+WQiOaIkOmFkiA+IGdvdXNlaXNodVwgOwor5ZGz5ZmM5rGBID4gbWlzb3NoaXJ1XCA7CivmjIflsI7ogIUgPiBzaGlkb3VzaGFcIDsKK+WNiuWPr+mAmiA+IGhhbmthdHN1dVwgOwor54Sh6K2m5ZGKID4gbXVrZWlrb2t1XCA7CivlpKfopb/pg7cgPiBkYWlzYWlnb3VcIDsKK+edoeecoOWJpCA+IHN1aW1pbnphaVwgOwor5peL55uk5belID4gc2VuYmFua291XCA7CivluK/liIbmlbAgPiB0YWlidW5zdXVcIDsKK+W+jOe2meiAhSA+IGtvdWtlaXNoYVwgOwor6ZW36KuH576pID4gbmFnYWRhbmdpXCA7CivlpKnml6XloakgPiB0ZW5waXNoaW9cIDsKK+WogeWcp+eahCA+IGlhdHN1dGVraVwgOwor5LqM6YeN5bqVID4gbmlqdXV6b2tvXCA7Civlj4jlvJ/lrZAgPiBtYXRhZGVzaGlcIDsKK+aVkeWRveWFtyA+IGt5dXVtZWlndVwgOwor56aB54yf5Yy6ID4ga2lucnlvdWt1XCA7CivlvKnntJroiaYgPiBkb2t5dXVrYW5cIDsKK+aBkuS5heWMliA+IGtvdWt5dXVrYVwgOwor5YW35L2T55qEID4gZ3V0YWl0ZWtpXCA7CivohbnkuIDmna8gPiBoYXJhaXBwYWlcIDsKK+agvOeQhuirliA+IGtha3VyaXJvblwgOwor5oSf6Kyd54q2ID4ga2Fuc2hham91XCA7Civnj77ooYzniq8gPiBnZW5rb3VoYW5cIDsKK+aXpeS7mOWNsCA+IGhpZHp1a2VpblwgOwor5aSq6Zm954GvID4gdGFpeW91dG91XCA7CivluLjnlKjogIUgPiBqb3V5b3VzaGFcIDsKK+aDheWgsea6kCA+IGpvdWhvdWdlblwgOwor5YWs5L2/6aSoID4ga291c2hpa2FuXCA7CivluIbnq4vosp0gPiBob3RhdGVnYWlcIDsKK+iLpeatpuiAhSA+IHdha2FtdXNoYVwgOwor5riF566X5pu4ID4gc2Vpc2Fuc2hvXCA7CivmnKzooZfpgZMgPiBob25rYWlkb3VcIDsKK+mDteS+v+i7iiA+IHl1dWJpbnNoYVwgOwor5LiA54K55qmfID4gaWNoaXRlbmtpXCA7CivlpI/poqjpgqogPiBuYXRzdWthemVcIDsKK+S4remBk+a0viA+IGNodXVkb3VoYVwgOwor5pq06aKo5Z+fID4gYm91ZnV1aWtpXCA7CivnmbrnpoHmnKwgPiBoYWtraW5ib25cIDsKK+Wcp+mbu+awlyA+IGF0c3VkZW5raVwgOwor5beo5Lq65YWaID4ga3lvamludG91XCA7CivmmYLku6PniakgPiBqaWRhaW1vbm9cIDsKK+Wxj+miqOWyqSA+IGJ5b3VidWl3YVwgOwor5b+r6KiY6YyyID4ga2Fpa2lyb2t1XCA7CivmmrTpoqjlnI8gPiBib3VmdXVrZW5cIDsKK+ism+irh+W4qyA+IGtvdWRhbnNoaVwgOwor5LiN5oiQ57i+ID4gZnVzZWlzZWtpXCA7CivlpJrpn7Pnr4AgPiB0YW9uc2V0c3VcIDsKK+mAo+W4r+aEnyA+IHJlbnRhaWthblwgOwor6YOo5YiG55qEID4gYnVidW50ZWtpXCA7CivlsILploDlupcgPiBzZW5tb250ZW5cIDsKK+aFo+eUqOmfsyA+IGthbicneW91b25cIDsKK+WknOS7leS6iyA+IHlvc2hpZ290b1wgOwor5ryU57+S5p6XID4gZW5zaHV1cmluXCA7Civmn5Dpq5jmoKEgPiBib3Vrb3Vrb3VcIDsKK+e2v+iPk+WtkCA+IHdhdGFnYXNoaVwgOwor6Leo57ea5qmLID4ga29zZW5reW91XCA7CivnhZnojYnnm4YgPiB0YWJha29ib25cIDsKK+WPl+mok+elqCA+IGp1a2VuaHlvdVwgOwor5YaF5pac6KaWID4gbmFpc2hhc2hpXCA7Civpm7vkv6HmqZ8gPiBkZW5zaGlua2lcIDsKK+Wcp+e4ruapnyA+IGFzc2h1a3VraVwgOwor5a6f6KGM5qipID4gamlra291a2VuXCA7Civnp5HlrabogIUgPiBrYWdha3VzaGFcIDsKK+ePvuihjOazlSA+IGdlbmtvdWhvdVwgOwor6Ieq54S255WMID4gc2hpemVua2FpXCA7Civmh7jlnoLnt5ogPiBrZW5zdWlzZW5cIDsKK+S4iuaJi+iAhSA+IGpvdXp1bW9ub1wgOwor5pel5pys5a2mID4gbmlob25nYWt1XCA7CivmjpLpmpzlmaggPiBoYWlzaG91a2lcIDsKK+ecn+Wkj+aXpSA+IG1hbmF0c3ViaVwgOwor5oSf54Sh6YePID4ga2FubXVyeW91XCA7Civntabku5jph5EgPiBreXV1ZnVraW5cIDsKK+S7o+WQjeipniA+IGRhaW1laXNoaVwgOwor5pWR5Yqp6Ii5ID4ga3l1dWpvc2VuXCA7Civnib3lvJXou4ogPiBrZW4nJ2luc2hhXCA7CivlsYXkvY/mgKcgPiBreW9qdXVzZWlcIDsKK+aKl+WHneWbuiA+IGtvdWd5b3Vrb1wgOwor55yL6K236ZW3ID4ga2FuZ29jaG91XCA7CivkvY7mgKfog70gPiB0ZWlzZWlub3VcIDsKK+eEoeioiOeUuyA+IG11a2Vpa2FrdVwgOwor5aSa6Z2i6KeSID4gdGFtZW5rYWt1XCA7CivkvY7lkajms6IgPiB0ZWlzaHV1aGFcIDsKK+eQhuaDs+mDtyA+IHJpc291a3lvdVwgOwor6KKr54iG6ICFID4gaGliYWt1c2hhXCA7Civnsr7oo73ns5YgPiBzZWlzZWl0b3VcIDsKK+WMluWtpuaIpiA+IGthZ2FrdXNlblwgOwor5pyJ55So5oCnID4geXV1eW91c2VpXCA7CivlqK/mpb3ooZcgPiBnb3Jha3VnYWlcIDsKK+W+jOWkqeaApyA+IGtvdXRlbnNlaVwgOwor5qCh5Y+L5LyaID4ga291eXV1a2FpXCA7CivljZjliKnooaggPiB0YW5yaWh5b3VcIDsKK+eZgumkiuaJgCA+IHJ5b3V5b3Vqb1wgOwor5L+d5a6I55qEID4gaG9zaHV0ZWtpXCA7CivnmofmsJHlhZogPiBrb3VtaW50b3VcIDsKK+S6jOmHjeWUsSA+IG5panV1c2hvdVwgOwor5YWN56iO5bqXID4gbWVuemVpdGVuXCA7CivljbXog47nlJ8gPiByYW50YWlzZWlcIDsKK+e3mummmeS7oyA+IHNlbmtvdWRhaVwgOwor5a++6KeS5YyWID4gdGFpa2FrdWthXCA7CivmnIDpq5jngrkgPiBzYWlrb3V0ZW5cIDsKK+acgOS9jumZkCA+IHNhaXRlaWdlblwgOwor5q2M5ZCI5oimID4gdXRhZ2Fzc2VuXCA7CivlubPlkozos54gPiBoZWl3YXNob3VcIDsKK+aVsOS/guaVsCA+IHN1dWtlaXN1dVwgOwor5pyo54Kt55S7ID4gbW9rdXRhbmdhXCA7Civlho3pmY3oh6ggPiBzYWlrb3VyaW5cIDsKK+WGjeiqv+afuyA+IHNhaWNob3VzYVwgOwor6auY6YeO5qeZID4ga291eWFtYWtpXCA7Civlrprmu5Hou4ogPiB0ZWlrYXNzaGFcIDsKK+S8vOaIkeicgiA+IGppZ2FiYWNoaVwgOwor5peL5YWJ5oCnID4gc2Vua291c2VpXCA7CivlkI3mipXmiYsgPiBtZWl0b3VzaHVcIDsKK+aOoeeul+aApyA+IHNhaXNhbnNlaVwgOwor5LyB5qWt6ICFID4ga2lneW91c2hhXCA7CivpioDnoILlrZAgPiBnaW5zdW5hZ29cIDsKK+WbveWIhuWvuiA+IGtva3VidW5qaVwgOwor6aSK6LGa5aC0ID4geW91dG9uam91XCA7CivpnZ7lr77np7AgPiBoaXRhaXNob3VcIDsKK+S4jemKuemLvCA+IGZ1c2h1dWtvdVwgOwor5LiA6Zmi5Yi2ID4gaWNoaWluc2VpXCA7CivmiYvku5XkuosgPiB0ZXNoaWdvdG9cIDsKK+iDhuWaoueCjiA+IHRhbicnbm91ZW5cIDsKK+W8t+aJk+iAhSA+IGt5b3VkYXNoYVwgOwor6KaP56+E55qEID4ga2loYW50ZWtpXCA7CivnvoXntJfntJkgPiByYXNoYWdhbWlcIDsKK+iEseiho+WgtCA+IGRhdHN1aWpvdVwgOwor5pWR5Yqp57ayID4ga3l1dWpvbW91XCA7CivlvZPpgbjogIUgPiB0b3VzZW5zaGFcIDsKK+WkqumZsOaapiA+IHRhaWlucmVraVwgOwor5o+a57696J22ID4gYWdlaGFjaG91XCA7Civlo6vlkJvlrZAgPiBzaGlrdW5zaGlcIDsKK+iFsOe+veebriA+IGtvc2hpYmFtZVwgOwor54mH5LiA5pa5ID4ga2F0YWlwcG91XCA7CivpmL/niYfnqp8gPiBhaGVua3V0c3VcIDsKK+WQvuacqOmmmSA+IHdhcmVtb2tvdVwgOwor5aSn5Z6L6LuKID4gb29nYXRhc2hhXCA7CivlpI/lraPnhrEgPiBrYWtpbmV0c3VcIDsKK+WGhemZuOmcpyA+IG5haXJpa3VtdVwgOwor5qSN5a2X5qmfID4gc2hva3VqaWtpXCA7CivpgYropqfoiLkgPiB5dXVyYW5zZW5cIDsKK+S5s+aIv+eCjiA+IG55dXVib3VlblwgOwor6ISz5oyr5YK3ID4gbm91emFzaG91XCA7CivlrabnlJ/oqrIgPiBnYWt1c2Vpa2FcIDsKK+iXgeW4g+WboyA+IHdhcmFidXRvblwgOwor5oqV5qmf5b+DID4gdG91a2lzaGluXCA7Civpg7Xkvr/oiLkgPiB5dXViaW5zZW5cIDsKK+mdkuW5tOWboyA+IHNlaW5lbmRhblwgOwor5Yun5ZGK5qGIID4ga2Fua29rdWFuXCA7CivlpKnmloflj7AgPiB0ZW5tb25kYWlcIDsKK+iHqueEtuazlSA+IHNoaXplbmhvdVwgOwor55+z54Gw5rSeID4gc2Vra2FpZG91XCA7CivlopfliIrlj7cgPiB6b3VrYW5nb3VcIDsKK+WGheWkp+iHoyA+IG5haWRhaWppblwgOwor54++5Zyo5ZywID4gZ2VuemFpY2hpXCA7CivmiKbou4rpmoogPiBzZW5zaGF0YWlcIDsKK+S6jOmHjeS4uCA+IG5panV1bWFydVwgOwor6YWS6YCg5aC0ID4gc2h1em91am91XCA7CivmhJvoqq3ogIUgPiBhaWRva3VzaGFcIDsKK+efs+eBsOawtCA+IHNla2thaXN1aVwgOwor5aSn5Zyw6ZyHID4gZGFpamlzaGluXCA7CivkuI3mi6HlpKcgPiBmdWtha3VkYWlcIDsKK+S4u+WwjuiAhSA+IHNodWRvdXNoYVwgOwor6auY6JKU57W1ID4gdGFrYW1ha2llXCA7Civoh6rnhLbmrbsgPiBzaGl6ZW5zaGlcIDsKK+WxheS9j+WcsCA+IGt5b2p1dWNoaVwgOwor5rG65q276ZqKID4ga2Vzc2hpdGFpXCA7CivkuLvohLPogIUgPiBzaHVub3VzaGFcIDsKK+iInualvemdoiA+IGJ1Z2FrdW1lblwgOwor6a2a5LuL6aGeID4gZ3lva2FpcnVpXCA7CivmnIDpq5jmpJwgPiBzYWlrb3VrZW5cIDsKK+eGseaxmuafkyA+IG5ldHN1b3NlblwgOwor5oGS5pif5bm0ID4ga291c2VpbmVuXCA7Civoh6rlnKjpiaQgPiBqaXphaWthZ2lcIDsKK+ertui1sOmmrCA+IGt5b3Vzb3ViYVwgOwor5b6h5omL5rSXID4gbWl0YXJhc2hpXCA7CivlopfluYXlmaggPiB6b3VmdWt1a2lcIDsKK+aXpeacrOWBtCA+IG5paG9uZ2F3YVwgOwor5Lq66aGe5Y+yID4gamlucnVpc2hpXCA7Civoi6blirTmp5ggPiBrdXJvdXNhbWFcIDsKK+emgOiri+abuCA+IHJpbnNlaXNob1wgOwor5L+z6Kun5birID4gaGFpa2Fpc2hpXCA7CivmhaPnlKjoqp4gPiBrYW4nJ3lvdWdvXCA7CivlpbPlrabnlJ8gPiBqb2dha3VzZWlcIDsKK+mbu+WtkOeuoSA+IGRlbnNoaWthblwgOwor5qK15aSp546LID4gYm9udGVuJydvdVwgOwor5ZCI5oiQ57SZID4gZ291c2Vpc2hpXCA7Civpu4TpioXpibEgPiBrb3Vkb3Vrb3VcIDsKK+WPuOaVmeWMuiA+IHNoaWt5b3VrdVwgOwor6Kej5pWj5qipID4ga2Fpc2Fua2VuXCA7CivpganpvaLmnJ8gPiB0ZWtpcmVpa2lcIDsKK+WogeWah+eahCA+IGlrYWt1dGVraVwgOwor6YqD6YCj5bCEID4ganV1cmVuc2hhXCA7CivlhY3nqI7lk4EgPiBtZW56ZWloaW5cIDsKK+mrmOawtOa6liA+IGtvdXN1aWp1blwgOwor5aSq6Zm95bm0ID4gdGFpeW91bmVuXCA7Civnn7PntLDlt6UgPiBpc2hpemFpa3VcIDsKK+WvneWwj+S+vyA+IG5lc2hvdWJlblwgOwor5Ya36JS15rOVID4gcmVpem91aG91XCA7CivphY3liIbms5UgPiBoYWlidW5ob3VcIDsKK+iAvee+jueahCA+IHRhbmJpdGVraVwgOwor5r2c6Iiq6ImHID4gc2Vua291dGVpXCA7CivlkIznqpPnlJ8gPiBkb3Vzb3VzZWlcIDsKK+aUvua1quiAhSA+IGhvdXJvdXNoYVwgOwor56iu5qaC5b+1ID4gc2h1Z2FpbmVuXCA7Civml6nmmI7miKYgPiBzb3VtZWlzZW5cIDsKK+W+ruepjeWIhiA+IGJpc2VraWJ1blwgOwor6bOl556w5ZuzID4gY2hvdWthbnp1XCA7CivlpbPnjovonIIgPiBqb291YmFjaGlcIDsKK+WkluS6pOWumCA+IGdhaWtvdWthblwgOwor5q2v6IKJ54KOID4gc2hpbmlrdWVuXCA7Civoh6rnhLbmnpcgPiBzaGl6ZW5yaW5cIDsKK+a8lOe/kuWgtCA+IGVuc2h1dWpvdVwgOwor5bCP6bqm6ImyID4ga29tdWdpaXJvXCA7CivprZrosp3poZ4gPiBneW9rYWlydWlcIDsKK+W+qeWPpOiqvyA+IGZ1a2tvY2hvdVwgOwor5Y+N55yB5LyaID4gaGFuc2Vpa2FpXCA7CivnhrHluK/prZogPiBuZXR0YWlneW9cIDsKK+WNmOiRieapnyA+IHRhbicneW91a2lcIDsKK+aJgOacieiAhSA+IHNob3l1dXNoYVwgOwor6LKp5aOy6ICFID4gaGFuYmFpc2hhXCA7CivkuLvkurrpoZQgPiBzaHVqaW5nYW9cIDsKK+a7keeoveiAhSA+IG9kb2tlbW9ub1wgOwor5rC06aOi6aWJID4gbWl6dWtpa2luXCA7CivmtbfkuIrms5UgPiBrYWlqb3Vob3VcIDsKK+eGseWPr+WhkSA+IG5ldHN1a2Fzb1wgOwor5YyW5a2m5ZOBID4ga2FnYWt1aGluXCA7CivlrZDmsqLlsbEgPiBrb2Rha3VzYW5cIDsKK+S9meawtOWQkCA+IHlvc3VpaGFraVwgOwor5pio5bm05bqmID4gc2FrdW5lbmRvXCA7Civoh6rnhLbmlbAgPiBzaGl6ZW5zdXVcIDsKK+WGjeiogueJiCA+IHNhaXRlaWJhblwgOwor6Z2S5bm05LyaID4gc2VpbmVua2FpXCA7Civnj77lnLDkurogPiBnZW5jaGlqaW5cIDsKK+W4guihl+aIpiA+IHNoaWdhaXNlblwgOwor5oeQ55aR5b+DID4ga2FpZ2lzaGluXCA7CivmnJ3ml6XlvbEgPiBhc2FoaWthZ2VcIDsKK+iqmOWwjuW8viA+IHl1dWRvdWRhblwgOwor6LKp5aOy57ayID4gaGFuYmFpbW91XCA7Civlhavnmb7kuIcgPiB5YW95b3JvenVcIDsKK+iyp+S5j+S6uiA+IGJpbmJvdW5pblwgOwor5bel5LqL5LitID4ga291amljaHV1XCA7CivnqoPnm5fnvaogPiBzZXR0b3V6YWlcIDsKK+WOn+ijgeWIpCA+IGdlbnNhaWJhblwgOwor54K554Gr6JasID4gdGVua2F5YWt1XCA7CivmtbfkuIrmqKkgPiBrYWlqb3VrZW5cIDsKK+WMluWtpuWJpCA+IGthZ2FrdXphaVwgOwor57K+6KO95rOVID4gc2Vpc2VpaG91XCA7CivmlrnnnLzntJkgPiBob3VnYW5zaGlcIDsKK+WPl+iznuiAhSA+IGp1c2hvdXNoYVwgOwor5o6o6Jam6ICFID4gc3Vpc2Vuc2hhXCA7Civpm6rmqKHmp5ggPiB5dWtpbW95b3VcIDsKK+S4gOe0muWTgSA+IGlra3l1dWhpblwgOwor5qC85a2Q54K5ID4ga291c2hpdGVuXCA7Civos7zosrfogIUgPiBrb3ViYWlzaGFcIDsKK+S4gOetieizniA+IGl0dG91c2hvdVwgOwor5LuW5Zu95Lq6ID4gdGFrb2t1amluXCA7CivnqbrmsJfmtbQgPiBrdXVraXlva3VcIDsKK+WkluS6pOWboyA+IGdhaWtvdWRhblwgOwor5Z+36KGM6YOoID4gc2hpa2tvdWJ1XCA7CivnkIbnpZ7oq5YgPiByaXNoaW5yb25cIDsKK+WPl+mok+aWmSA+IGp1a2VucnlvdVwgOwor5Yud5omL5YWDID4ga2F0dGVtb3RvXCA7Civnm7jlr77oq5YgPiBzb3V0YWlyb25cIDsKK+WIiuihjOS8miA+IGthbmtvdWthaVwgOwor5Y2R6YeR5bGeID4gaGlraW56b2t1XCA7Civkv53ogrLmlpkgPiBob2lrdXJ5b3VcIDsKK+e3j+izh+eUoyA+IHNvdXNoaXNhblwgOwor5L2P5rCR56iOID4ganV1bWluemVpXCA7CivlnKfnuK7lmaggPiBhc3NodWt1a2lcIDsKK+S/uOe1puaXpSA+IGhvdWt5dXViaVwgOwor6KGM5pS/5bqcID4gZ3lvdXNlaWZ1XCA7Civlh6blpbPohpwgPiBzaG9qb21ha3VcIDsKK+maj+S8tOiAhSA+IHp1aWhhbnNoYVwgOwor6LuK5rW36ICBID4ga3VydW1hZWJpXCA7CivmgqrlrqPkvJ0gPiBha3VzZW5kZW5cIDsKK+WkmumdoueahCA+IHRhbWVudGVraVwgOwor5a++5oim6LuKID4gdGFpc2Vuc2hhXCA7Civoi6blirTmgKcgPiBrdXJvdXNob3VcIDsKK+aBkOWmu+WutiA+IGt5b3VzYWlrYVwgOwor5Li75a6w6ICFID4gc2h1c2Fpc2hhXCA7CivljYrpubnmsLQgPiBoYW5rYW5zdWlcIDsKK+WvhuiIquiAhSA+IG1pa2tvdXNoYVwgOwor5LiA562J6KaqID4gaXR0b3VzaGluXCA7Civms6jpgKPnuIQgPiBzaGltZW5hd2FcIDsKK+ijnOW8t+etiyA+IGhva3lvdWtpblwgOwor55yL5p2/5bGLID4ga2FuYmFuJyd5YVwgOwor56S+5ZOh5a+uID4gc2hhaW5yeW91XCA7CivlkbzlkLjms5UgPiBrb2t5dXVob3VcIDsKK+S9k+mHj+WZqCA+IHRhaXJ5b3VraVwgOwor5YyW5a2m5LiKID4ga2FnYWt1am91XCA7CivkvL3ol43ps6UgPiBnYXJhbmNob3VcIDsKK+W/g+iHk+mDqCA+IHNoaW56b3VidVwgOwor5pyA6auY5bOwID4gc2Fpa291aG91XCA7Civnq7bovKrloLQgPiBrZWlyaW5qb3VcIDsKK+mHjeWpmuiAhSA+IGp1dWtvbnNoYVwgOwor6KaB5pKD5qmfID4geW91Z2VraWtpXCA7CivmsJfljJbnhrEgPiBraWthbmV0c3VcIDsKK+aXpeaVmee1hCA+IG5pa2t5b3Vzb1wgOwor5LiJ562J5pifID4gc2FudG91c2VpXCA7Civlkb3lkI3ms5UgPiBtZWltZWlob3VcIDsKK+WPguWKoOWbvSA+IHNhbmtha29rdVwgOwor5pyq6ZaL5ouTID4gbWlrYWl0YWt1XCA7Civlho3nt6jmiJAgPiBzYWloZW5zZWlcIDsKK+mAj+awtOaApyA+IHRvdXN1aXNlaVwgOwor5Y+N5a++6KuWID4gaGFudGFpcm9uXCA7Civlraboirjlk6EgPiBnYWt1Z2VpaW5cIDsKK+WGt+WHjemtmiA+IHJlaXRvdWd5b1wgOwor5pWX5q6L5YW1ID4gaGFpemFuaGVpXCA7Civmm7jnlJ/oq5YgPiBzaG9zZWlyb25cIDsKK+W/l+acm+iAhSA+IHNoaWJvdXNoYVwgOwor6LKh5pS/6ZujID4gemFpc2VpbmFuXCA7CivliLbnmYzliaQgPiBzZWlnYW56YWlcIDsKK+eZuuazoeWJpCA+IGhhcHBvdXphaVwgOwor5Lyd5aWH55qEID4gZGVua2l0ZWtpXCA7CivntYblibXoho8gPiBiYW5zb3Vrb3VcIDsKK+S/neWtmOaWmSA+IGhvem9ucnlvdVwgOwor55+z54Gw5bKpID4gc2Vra2FpZ2FuXCA7CivlhbXlrabmoKEgPiBoZWlnYWtrb3VcIDsKK+WvjOWxseecjCA+IHRveWFtYWtlblwgOwor6L+R5Luj5Y+yID4ga2luZGFpc2hpXCA7CivoqbLlvZPogIUgPiBnYWl0b3VzaGFcIDsKK+eCueaVsOWItiA+IHRlbnN1dXNlaVwgOwor6auY55+l55yMID4ga291Y2hpa2VuXCA7Civlj6PkuIrmm7ggPiBrb3Vqb3VzaG9cIDsKK+ino+aUvuaEnyA+IGthaWhvdWthblwgOwor5bmz5ZKM55qEID4gaGVpd2F0ZWtpXCA7Civoh6rplonnl4cgPiBqaWhlaXNob3VcIDsKK+mjsueUqOawtCA+IGluJyd5b3VzdWlcIDsKK+WkqumZveWFiSA+IHRhaXlvdWtvdVwgOwor5qmL6aCt5L+dID4ga3lvdXRvdWhvXCA7Civlj6Tmm7jluIIgPiBrb3Nob2ljaGlcIDsKK+WkqeeEtuWhqSA+IHRlbicnbmVuZW5cIDsKK+WFrOWus+e9qiA+IGtvdWdhaXphaVwgOwor5rer5aOy5a6/ID4gaW5iYWl5YWRvXCA7Civotbfoq4vmlocgPiBraXNob3Vtb25cIDsKK+eigeebpOe4niA+IGdvYmFuamltYVwgOwor5L+X5LiW6ZaTID4gem9rdXNla2VuXCA7CivnlJjntI3osYYgPiBhbWFuYXR0b3VcIDsKK+S5vumFque0oCA+IGthbnJha3Vzb1wgOwor5Ya26YeR5a2mID4geWFraW5nYWt1XCA7CivlhpfplbfluqYgPiBqb3VjaG91ZG9cIDsKK+engeWutumbhiA+IHNoaWthc2h1dVwgOwor5biC6KGX5ZywID4gc2hpZ2FpY2hpXCA7Civlj6/oqq3mgKcgPiBrYWRva3VzZWlcIDsKK+aYjuekuueahCA+IG1laWppdGVraVwgOwor5aSn5Zue6LuiID4gZGFpa2FpdGVuXCA7CivlkYnmnI3lupcgPiBnb2Z1a3V0ZW5cIDsKK+S4reiPr+S4vCA+IGNodXVrYWRvblwgOwor5aSn6KW/5rSLID4gdGFpc2VpeW91XCA7CivnkIbmg7PnmoQgPiByaXNvdXRla2lcIDsKK+Wmu+W4r+iAhSA+IHNhaXRhaXNoYVwgOwor5YWr5a6d6I+cID4gaGFwcG91c2FpXCA7Civlj4zouYTnjbggPiBzb3V0ZWlqdXVcIDsKK+WbveWFqOWcnyA+IGtva3V6ZW5kb1wgOwor5LqM6YCy5rOVID4gbmlzaGluaG91XCA7Civnvr3luIPlm6MgPiBoYW5lYnV0b25cIDsKK+iHqueEtuWilyA+IHNoaXplbnpvdVwgOwor5pmC5Luj5YqHID4gamlkYWlnZWtpXCA7Civmt7fmiJDphZIgPiBrb25zZWlzaHVcIDsKK+WFrOWAjeaVsCA+IGtvdWJhaXN1dVwgOwor5Yem5pa5566LID4gc2hvaG91c2VuXCA7CivnmYzntLDog54gPiBnYW5zYWlib3VcIDsKK+e0r+a4m+eojiA+IHJ1aWdlbnplaVwgOwor5omA5L2c5LqLID4gc2hvc2Fnb3RvXCA7CivnhKHpmZDlsI8gPiBtdWdlbnNob3VcIDsKK+eqg+ebl+eKryA+IHNldHRvdWhhblwgOwor5LuV5omL5qCqID4gc2hpdGVrYWJ1XCA7Civlj6PkuIvmiYsgPiBrdWNoaWJldGFcIDsKK+mHkeabnOaXpSA+IGtpbicneW91YmlcIDsKK+S9juawtOa6liA+IHRlaXN1aWp1blwgOwor6KO95L2c5omAID4gc2Vpc2FrdWpvXCA7CivkvJ3lo7DnrqEgPiBkZW5zZWlrYW5cIDsKK+mZsOatpuiAhSA+IGthZ2VtdXNoYVwgOwor6YeP5a2Q5YyWID4gcnlvdXNoaWthXCA7Civlpb3kuIDlr74gPiBrb3VpdHRzdWlcIDsKK+S6i+WLmeWxgCA+IGppbXVreW9rdVwgOwor5Ymv6by76IWUID4gZnVrdWJpa3V1XCA7CivmtarosrvnmZYgPiByb3VoaWhla2lcIDsKK+e1puiyu+eUnyA+IGt5dXVoaXNlaVwgOwor55yM5Lq65LyaID4ga2Vuamlua2FpXCA7CivkuLvku7vogIUgPiBzaHVuaW5zaGFcIDsKK+WFrOeUqOaWhyA+IGtvdXlvdWJ1blwgOwor6KGM5pS/5Yy6ID4gZ3lvdXNlaWt1XCA7CivmjqjolqbnirYgPiBzdWlzZW5qb3VcIDsKK+S4rei3nemboiA+IGNodXVreW9yaVwgOwor5YWx55Sj5YyWID4ga3lvdXNhbmthXCA7CivkvJrmnJ/kuK0gPiBrYWlraWNodXVcIDsKK+mHjueQg+WgtCA+IHlha3l1dWpvdVwgOwor6ZaR5Y+k6bOlID4ga2Fua29kb3JpXCA7CivnlKPopKXmnJ8gPiBzYW5qb2t1a2lcIDsKK+S4u+WwjuaoqSA+IHNodWRvdWtlblwgOwor5Yuf6YeR566xID4gYm9raW5iYWtvXCA7Civnoazlj6Pok4sgPiBrb3Vrb3VnYWlcIDsKK+WPsuiomOaKhCA+IHNoaWtpc2hvdVwgOwor5bm06b2i5bGkID4gbmVucmVpc291XCA7CivpoK3poILpg6ggPiB0b3VjaG91YnVcIDsKK+aXqeWgtOexsyA+IGhheWFiYW1haVwgOwor5Y+j6Kqe6KizID4ga291Z295YWt1XCA7CivmsrnlnKfoqIggPiB5dWF0c3VrZWlcIDsKK+S6jOavm+S9nCA+IG5pbW91c2FrdVwgOwor5qSc57OW6KiIID4ga2VudG91a2VpXCA7CivoqpjlsI7kvZMgPiB5dXVkb3V0YWlcIDsKK+ecn+Wbm+inkiA+IG1hc2hpa2FrdVwgOwor55Sz5ZG96KiYID4gc2hpbm1laWtpXCA7CivohILogqrlsaQgPiBzaGlib3Vzb3VcIDsKK+eJqeWTgeeojiA+IGJ1cHBpbnplaVwgOwor6bOz57+F6ZCYID4gaG91c2hpdG91XCA7CivlsaTnqY3pm7IgPiBzb3VzZWtpdW5cIDsKK+enkuaZguioiCA+IGJ5b3Vkb2tlaVwgOwor54+K55Ga56SBID4gc2FuZ29zaG91XCA7CivpgKPkvZPoqZ4gPiByZW50YWlzaGlcIDsKK+WxgeeQhuWxiCA+IGhlcmlrdXRzdVwgOwor5ZCM5oOF6ICFID4gZG91am91c2hhXCA7Civlv5fpoZjogIUgPiBzaGlnYW5zaGFcIDsKK+a1quS6uueUnyA+IHJvdW5pbnNlaVwgOwor5LiN5Y+v6YCGID4gZnVrYWd5YWt1XCA7CivlpKfpmKrluIIgPiBvb3Nha2FzaGlcIDsKK+aEm+iqreabuCA+IGFpZG9rdXNob1wgOwor5Y+v5aGR54mpID4ga2Fzb2J1dHN1XCA7CivmlrDpgKDoqp4gPiBzaGluem91Z29cIDsKK+WPjeWvvuiAhSA+IGhhbnRhaXNoYVwgOwor6buS56CC57OWID4ga3Vyb3phdG91XCA7CivnjoTnsbPojLYgPiBnZW5tYWljaGFcIDsKK+a8lOe5ueazlSA+IGVuJydla2lob3VcIDsKK+iHqOWgtOaEnyA+IHJpbmpvdWthblwgOwor5YGP6KW/6aKoID4gaGVuc2VpZnV1XCA7CivpppnlkbPmlpkgPiBrb3VtaXJ5b3VcIDsKK+ato+eUsuadvyA+IHNlaWthbnBhblwgOwor5a+p6K2w5LyaID4gc2hpbmdpa2FpXCA7CivpnZLmo67nnIwgPiBhb21vcmlrZW5cIDsKK+S4jeaEn+eXhyA+IGZ1a2Fuc2hvdVwgOwor56aB6KGb6ZqKID4ga2luJydlaXRhaVwgOwor5pS+5rC06LuKID4gaG91c3Vpc2hhXCA7CivogJDmsLTmgKcgPiB0YWlzdWlzZWlcIDsKK+eOhOmWoueVqiA+IGdlbmthbmJhblwgOwor5YmN5aSc56WtID4gemVuJyd5YXNhaVwgOwor5pyI5qGC5YagID4gZ2Vra2Vpa2FuXCA7CivkuozliIDmtYEgPiBuaXRvdXJ5dXVcIDsKK+aJgOacieaoqSA+IHNob3l1dWtlblwgOwor5Ya35YeN6LuKID4gcmVpdG91c2hhXCA7CivmnaXkvJrogIUgPiByYWlrYWlzaGFcIDsKK+S4iuetieWTgSA+IGpvdXRvdWhpblwgOwor6I2S55mC5rK7ID4gYXJhcnlvdWppXCA7Civmpb3oprPoq5YgPiByYWtrYW5yb25cIDsKK+WAtuiIjuWulyA+IGt1c2hhc2h1dVwgOwor54Sh6KiA5YqHID4gbXVnb25nZWtpXCA7CivlhaXoi5HliLggPiBueXV1ZW5rZW5cIDsKK+iFsememOeCjiA+IGtlbnNob3VlblwgOwor6auY5bm06ICFID4ga291bmVuc2hhXCA7CivmjqLmtbfnga8gPiB0YW5rYWl0b3VcIDsKK+eEoeimj+W+iyA+IG11a2lyaXRzdVwgOwor5b2i5a656KmeID4ga2VpeW91c2hpXCA7Civlsqnpm7Lpm4AgPiBpd2FoaWJhcmlcIDsKK+W+kuertui1sCA+IHRva3lvdXNvdVwgOwor5LiN5oim5YudID4gZnVzZW5zaG91XCA7Civoh6rnhLbkurogPiBzaGl6ZW5qaW5cIDsKK+WutuW6reeahCA+IGthdGVpdGVraVwgOwor6auY5rCX5ZynID4ga291a2lhdHN1XCA7Civmu5HnqL3mnKwgPiBrb2trZWlib25cIDsKK+Wls+WtkOWvriA+IGpvc2hpcnlvdVwgOwor5pS/5rK755qEID4gc2Vpaml0ZWtpXCA7CivkuIrnrYnlhbUgPiBqb3V0b3VoZWlcIDsKK+WOn+eov+e0mSA+IGdlbmtvdXNoaVwgOwor6Imy55y86Y+hID4gaXJvbWVnYW5lXCA7Civmpb3orZzlj7AgPiBnYWt1ZnVkYWlcIDsKK+WGt+awtOWhiiA+IHJlaXN1aWthaVwgOwor5L+d6K236ImyID4gaG9nb3Nob2t1XCA7CivoibLlj47lt64gPiBpcm9zaHV1c2FcIDsKK+e+juihk+WutiA+IGJpanV0c3VrYVwgOwor5YaN6KmV5L6hID4gc2FpaHlvdWthXCA7Civnq7bkuonppqwgPiBreW91c291YmFcIDsKK+a6luWCmeS4rSA+IGp1bmJpY2h1dVwgOwor5YWJ5ZCI5oiQID4ga291Z291c2VpXCA7CivmgqrmnaHku7YgPiBha3Vqb3VrZW5cIDsKK+S4ieaCqui2oyA+IHNhbmFrdXNodVwgOwor5Li755Sj5ZywID4gc2h1c2FuY2hpXCA7CivosrTmlrnjgIUgPiBhbmF0YWdhdGFcIDsKK+W3u+epjembsiA+IGtlbnNla2l1blwgOwor5biM56Gr6YW4ID4ga2lyeXV1c2FuXCA7CivohLHnqYDmqZ8gPiBkYWtrb2t1a2lcIDsKK+m8juirh+S8miA+IHRlaWRhbmthaVwgOwor6KSH5pys5L2NID4gZnVrdWhvbicnaVwgOwor5L+X6Laj5ZGzID4gem9rdXNodW1pXCA7CivntYLmraLnrKYgPiBzaHV1c2hpZnVcIDsKK+eyvuijveWTgSA+IHNlaXNlaWhpblwgOwor5oay5YW16ZqKID4ga2VucGVpdGFpXCA7CivphY3lgbbogIUgPiBoYWlndXVzaGFcIDsKK+WFheW9k+mHkSA+IGp1dXRvdWtpblwgOwor5raI54Gr5qCTID4gc2hvdWthc2VuXCA7Civlr4TnlZnogIUgPiBraXJ5dXVzaGFcIDsKK+eBsOelnualvSA+IGhhaWthZ3VyYVwgOwor5LiN6YeP6KaLID4gZnVyeW91a2VuXCA7Civph5HkuIDlsIEgPiBraW4nJ2lwcHV1XCA7CivluorpgYvli5UgPiB5dWthdW5kb3VcIDsKK+WvhOeUn+iZqyA+IGtpc2VpY2h1dVwgOwor5LiJ562J5YiGID4gc2FudG91YnVuXCA7CivllqvmsLTnt5ogPiBraXNzdWlzZW5cIDsKK+aCqueOieWMliA+IGFrdWRhbWFrYVwgOwor6LaF57Ch5piTID4gY2hvdWthbicnaVwgOwor5oiv5L2c6ICFID4gZ2VzYWt1c2hhXCA7CivpnZLnk6LnrqogPiBhb2J5b3V0YW5cIDsKK+aCo+iAheanmCA+IGthbmphc2FtYVwgOwor5LqU5a+46YeYID4gZ29zdW5rdWdpXCA7Civku67nmbvoqJggPiBrYXJpdG91a2lcIDsKK+WQiOWQjOi7jSA+IGdvdWRvdWd1blwgOwor6Z2e54++5qWtID4gaGlnZW5neW91XCA7Civli6TlirTogIUgPiBraW5yb3VzaGFcIDsKK+WbuuWumumVtyA+IGtvdGVpY2hvdVwgOwor5q666I+M5YmkID4gc2Fra2luemFpXCA7CivmtIvmnI3lsYsgPiB5b3VmdWt1eWFcIDsKK+i1t+eIhuWJpCA+IGtpYmFrdXphaVwgOwor6KGo56S654GvID4gaHlvdWppdG91XCA7Civkvr/liKnluLMgPiBiZW5yaWNob3VcIDsKK+WPluadkOePrSA+IHNodXphaWhhblwgOwor6ISC6IKq5L2TID4gc2hpYm91dGFpXCA7Civpg7Xkvr/lsYsgPiB5dXViaW4nJ3lhXCA7CivkuK3ovp7lhbggPiBjaHV1aml0ZW5cIDsKK+a0l+mdouWPsCA+IHNlbm1lbmRhaVwgOwor5YaF6KOP6ZubID4gZGFpcmliaW5hXCA7Civlhajkuozph40gPiB6ZW4nJ25panV1XCA7Civmurbop6PmgKcgPiB5b3VrYWlzZWlcIDsKK+aVtOaVsOirliA+IHNlaXN1dXJvblwgOwor5rCR56S+5YWaID4gbWluc2hhdG91XCA7CivkvIHnlLvmm7ggPiBraWtha3VzaG9cIDsKK+eUn+WcsOeNhCA+IGlraWppZ29rdVwgOwor57SU57Gz6YWSID4ganVubWFpc2h1XCA7Civlm57pgYrprZogPiBrYWl5dXVneW9cIDsKK+eEoemWouW/gyA+IG11a2Fuc2hpblwgOwor5Y+L5Lq66ZaTID4geXV1amlua2FuXCA7CivmnInmlpDplqMgPiB5dXVoaWtha3VcIDsKK+iyqeWjsuW6lyA+IGhhbmJhaXRlblwgOwor5b+X5pyb5qChID4gc2hpYm91a291XCA7CivlpYnov47ploAgPiBob3VnZWltb25cIDsKK+mdouS8muS6uiA+IG1lbmthaW5pblwgOwor5LiA566H5pyIID4gaWtrYWdldHN1XCA7CivpgIHmsLTnrqEgPiBzb3VzdWlrYW5cIDsKK+WGt+WHjeiIuSA+IHJlaXRvdXNlblwgOwor5bm06YWN6ICFID4gbmVucGFpc2hhXCA7CivmiYvmlbDmlpkgPiB0ZXN1dXJ5b3VcIDsKK+mboumtgueXhSA+IHJpa29uYnlvdVwgOwor5rC05Lit6IqxID4gc3VpY2h1dWthXCA7Civli5XlkI3oqZ4gPiBkb3VtZWlzaGlcIDsKK+m7hOmHkeiJsiA+IGtvZ2FuZWlyb1wgOwor5LqM5YWD55qEID4gbmlnZW50ZWtpXCA7CivnuJ7moJfpvKAgPiBzaGltYXJpc3VcIDsKK+Wor+alveWgtCA+IGdvcmFrdWpvdVwgOwor6YGK6Kan5ZywID4geXV1cmFuY2hpXCA7CivmnKzlm6DlnYogPiBob24nJ2luYm91XCA7CivlhbHmoITlnI8gPiBreW91ZWlrZW5cIDsKK+ebuOWvvuatuyA+IGFpdGFpamluaVwgOwor5Zu96Ieq5oWiID4ga3VuaWppbWFuXCA7Civph43lpKfoppYgPiBqdXVkYWlzaGlcIDsKK+S8gealreWGhSA+IGtpZ3lvdW5haVwgOwor5ZCM56qT5LyaID4gZG91c291a2FpXCA7Civms5Xok67ojYkgPiBob3VyZW5zb3VcIDsKK+a1t+WklueJiCA+IGthaWdhaWJhblwgOwor5omH54q25ZywID4gc2Vuam91Y2hpXCA7CivmiZPmkoPmiKYgPiBkYWdla2lzZW5cIDsKK+mAj+WGmee0mSA+IHRvdXNoYXNoaVwgOwor5Lq65paH5Y+yID4gamluYnVuc2hpXCA7CivmjIflrprliLggPiBzaGl0ZWlrZW5cIDsKK+mmmeawtOeTtiA+IGtvdXN1aWJpblwgOwor54ax5biv55eFID4gbmV0YWlieW91XCA7CivkvJ3oqJjniakgPiBkZW5raW1vbm9cIDsKK+ioiOmHj+WZqCA+IGtlaXJ5b3VraVwgOwor6KOc5YSf6YeRID4gaG9zaG91a2luXCA7Civou73niq/nvaogPiBrZWloYW56YWlcIDsKK+mcsOW8vumKgyA+IHNhbmRhbmp1dVwgOwor5ZCI5oay5oCnID4gZ291a2Vuc2VpXCA7CivlnLDpjq7npa0gPiBqaWNoaW5zYWlcIDsKK+S4u+S9k+aApyA+IHNodXRhaXNlaVwgOwor57Sg57KS5a2QID4gc29yeXV1c2hpXCA7CivlpYfpupfkuosgPiBraXJlaWdvdG9cIDsKK+idv+WcsOeNhCA+IGhhZWppZ29rdVwgOwor5aSn54G95a6zID4gZGFpc2FpZ2FpXCA7Civmpb3lpKnlrrYgPiByYWt1dGVua2FcIDsKK+eQhuaAp+eahCA+IHJpc2VpdGVraVwgOwor6byT56yb6ZqKID4ga290ZWtpdGFpXCA7Civlr5LmmpboqIggPiBrYW5kYW5rZWlcIDsKK+iKseeyieeXhyA+IGthZnVuc2hvdVwgOwor5Lq654K655qEID4gamluJydpdGVraVwgOwor5Y+X6aCY6ICFID4ganVyeW91c2hhXCA7CivkvIHnlLvmgKcgPiBraWtha3VzZWlcIDsKK+WGhemcgOWeiyA+IG5haWp1Z2F0YVwgOwor5Y6f5oiQ5bKpID4gZ2Vuc2VpZ2FuXCA7CivooajnpLrmnb8gPiBoeW91amliYW5cIDsKK+awuOS5heatryA+IGVpa3l1dXNoaVwgOwor5Y2D56S+5pytID4gc2VuamFmdWRhXCA7Civoj6nmj5Dlv4MgPiBib2RhaXNoaW5cIDsKK+ihqOekuuabuCA+IGh5b3VqaXNob1wgOwor57K+566X5pu4ID4gc2Vpc2Fuc2hvXCA7CivmlL7msLTnrqEgPiBob3VzdWlrYW5cIDsKK+WPjOWtkOiRiSA+IHNvdXNoaXlvdVwgOwor5oCn6Lui5o+bID4gc2VpdGVua2FuXCA7CivovLjpgIHph48gPiB5dXNvdXJ5b3VcIDsKK+aJgOacieWcsCA+IHNob3l1dWNoaVwgOwor6byT5omL6ZW3ID4ga29zaHVjaG91XCA7Civnt4/mnKzlupcgPiBzb3Vob250ZW5cIDsKK+WFg+awl+iAhSA+IGdlbmtpbW9ub1wgOwor5Luj5byB6ICFID4gZGFpYmVuc2hhXCA7CivnlLrljLvogIUgPiBtYWNoaWlzaGFcIDsKK+ijveadkOaJgCA+IHNlaXphaXNob1wgOwor5Y+N5Lmx6LuNID4gaGFucmFuZ3VuXCA7Civnt4/kurrlj6MgPiBzb3VqaW5rb3VcIDsKK+W6l+S7leiIniA+IG1pc2VqaW1haVwgOwor5Lit5L+d6ICFID4gY2h1dWhvc2hhXCA7Civnq4vms5XogIUgPiByaXBwb3VzaGFcIDsKK+iNieebuOaSsiA+IGt1c2F6dW1vdVwgOwor5LqI5YKZ6YyoID4geW9iaWlrYXJpXCA7CivmrZPpgIHkvJogPiBrYW5zb3VrYWlcIDsKK+WPjOe/hemhniA+IHNvdXNoaXJ1aVwgOwor57SZ57Sw5belID4ga2FtaXphaWt1XCA7CivlsbHmsLTojZggPiBzYW5zdWlzb3VcIDsKK+ihqOaymeaxsCA+IG9tb3RlemF0YVwgOwor5ZSQ542F5a2QID4ga2FyYWppc2hpXCA7CivlubPlkozlm70gPiBoZWl3YWtva3VcIDsKK+S9juawl+WcpyA+IHRlaWtpYXRzdVwgOwor5L2c5qWt55SoID4gc2FneW91eW91XCA7CivmsLTlrrPlnLAgPiBzdWlnYWljaGlcIDsKK+e3j+acrOWxsSA+IHNvdWhvbnphblwgOwor5ryU6Kqs5a62ID4gZW56ZXRzdWthXCA7Civnm7Lohbjngo4gPiBtb3VjaG91ZW5cIDsKK+eogOehq+mFuCA+IGtpcnl1dXNhblwgOwor6YGj5ZSQ5L2/ID4ga2VudG91c2hpXCA7CivkvZzmpa3nj60gPiBzYWd5b3VoYW5cIDsKK+a0u+aAp+eCrSA+IGthc3NlaXRhblwgOwor5pyA5bCP5YyWID4gc2Fpc2hvdWthXCA7CivkuZfpmY3loLQgPiBqb3Vrb3Vqb3VcIDsKK+S/l+S4lueVjCA+IHpva3VzZWthaVwgOwor5q+b57mU54mpID4ga2Vvcmltb25vXCA7Civlv5fpoZjmm7ggPiBzaGlnYW5zaG9cIDsKK+S4jeatu+mzpSA+IGZ1c2hpY2hvdVwgOwor5oKy6Kaz55qEID4gaGlrYW50ZWtpXCA7CivmiJDlip/ogIUgPiBzZWlrb3VzaGFcIDsKK+eci+itt+WtpiA+IGthbmdvZ2FrdVwgOwor5LiK5ZCR57eaID4gam91a291c2VuXCA7Civmtojngo7liaQgPiBzaG91ZW56YWlcIDsKK+WFrOS8keaXpSA+IGtvdWt5dXViaVwgOwor57eP57235qWtID4gc291aGlneW91XCA7Civlho3mipXos4cgPiBzYWl0b3VzaGlcIDsKK+atjOWKh+WgtCA+IGthZ2VraWpvdVwgOwor5rWE5rC05aC0ID4gam91c3Vpam91XCA7CivmsLTogJXms5UgPiBzdWlrb3Vob3VcIDsKK+Wkp+a8lOe/kiA+IGRhaWVuc2h1dVwgOwor5a6f5ris5ZuzID4gamlzc29rdXp1XCA7CivohqjlvLXluqYgPiBib3VjaG91ZG9cIDsKK+aYoOWGmeW5lSA+IGVpc2hhbWFrdVwgOwor5LiK5rC06YGTID4gam91c3VpZG91XCA7CivlhajkvY/msJEgPiB6ZW5qdXVtaW5cIDsKK+a1hOawtOWcsCA+IGpvdXN1aWNoaVwgOwor55S35oCn55SoID4gZGFuc2VpeW91XCA7Civlpb3lpYflv4MgPiBrb3VraXNoaW5cIDsKK+iCieS9k+e+jiA+IG5pa3V0YWliaVwgOwor5Zu95a6255qEID4ga29ra2F0ZWtpXCA7CivniqDnibLnmoQgPiBnaXNlaXRla2lcIDsKK+mAo+WtkOeqkyA+IHJlbmppbWFkb1wgOwor55u45a++5oCnID4gc291dGFpc2VpXCA7CivplqLlv4PkuosgPiBrYW5zaGluamlcIDsKK+iSsuWbo+eariA+IGZ1dG9uZ2F3YVwgOwor5YyX5paX5pifID4gaG9rdXRvc2VpXCA7CivmnKzmi6DlnLAgPiBob25reW9jaGlcIDsKK+iInui4j+eXhSA+IGJ1dG91YnlvdVwgOwor5YaF5aSW5Lq6ID4gbmFpZ2FpamluXCA7CivkuIvnqK7lpbMgPiBnZXN1b24nJ25hXCA7CivotaTpm7vou4ogPiBha2FkZW5zaGFcIDsKK+eymOadv+WyqSA+IG5lbmJhbmdhblwgOwor5LqL5qWt6ICFID4gamlneW91c2hhXCA7CivmrZPov47kvJogPiBrYW5nZWlrYWlcIDsKK+iol+WFkOaJgCA+IHRha3VqaXNob1wgOwor5L+d6Ki86YeRID4gaG9zaG91a2luXCA7CivnjKnjgIXnt4sgPiBzaG91am91aGlcIDsKK+awtOaZguioiCA+IG1penVkb2tlaVwgOwor55uy5bCO54qsID4gbW91ZG91a2VuXCA7Civosqnlo7LkurogPiBoYW5iYWluaW5cIDsKK+S6uuWbveiomCA+IGppbmtva3VraVwgOwor5pmu5Y+K54mIID4gZnVreXV1YmFuXCA7CivljYrpg6jml48gPiBoYW5idXpva3VcIDsKK+mjm+mBk+WFtyA+IHRvYmlkb3VndVwgOwor5Lq66ZaT55WMID4gbmluZ2Vua2FpXCA7CivkubPmr43ou4ogPiB1YmFndXJ1bWFcIDsKK+aDqOatu+S9kyA+IHphbnNoaXRhaVwgOwor6YGL5pCs5Lq6ID4gdW5wYW4nJ25pblwgOwor5oqX55Sf5YmkID4ga291c2VpemFpXCA7CivkuJbov7foqIAgPiB5b21haWdvdG9cIDsKK+S8neiogOadvyA+IGRlbmdvbmJhblwgOwor6Ieq56uL6KqeID4gamlyaXRzdWdvXCA7CivnhrHluK/mnpcgPiBuZXR0YWlyaW5cIDsKK+awuOS5heaApyA+IGVpa3l1dXNlaVwgOwor6KO95pys5bGLID4gc2VpaG9uJyd5YVwgOwor5rG96LuK6LODID4ga2lzaGFjaGluXCA7CivnpoHoo4/mp5ggPiBraW5yaXNhbWFcIDsKK+aFo+eUqOWPpSA+IGthbicneW91a3VcIDsKK+ims+WFieWcsCA+IGthbmtvdWNoaVwgOwor5Lya6KaL6ICFID4ga2Fpa2Vuc2hhXCA7CivmnbHlpKnntIUgPiB0b3V0ZW5rb3VcIDsKK+ims+WFieWboyA+IGthbmtvdWRhblwgOwor5oqA5ben55qEID4gZ2lrb3V0ZWtpXCA7Civmpb3pmqDlsYUgPiByYWt1aW5reW9cIDsKK+mrmOmAn+W6piA+IGtvdXNva3Vkb1wgOwor56eB55Sf5a2QID4gc2hpc2Vpc2hpXCA7Civml6XoqJjluLMgPiBuaWtraWNob3VcIDsKK+aUv+ayu+WtpiA+IHNlaWppZ2FrdVwgOwor5rC055CG5a2mID4gc3VpcmlnYWt1XCA7Civmr43lrZDlr64gPiBib3NoaXJ5b3VcIDsKK+edgOW/g+WcsCA+IGtpZ29rb2NoaVwgOwor5oiS5Y6z5LukID4ga2FpZ2VucmVpXCA7CivmipXkuI7ph48gPiB0b3V5b3J5b3VcIDsKK+WTuuS5s+mhniA+IGhvbnl1dXJ1aVwgOwor5aSn6J2Z6J2gID4gb29rb3Vtb3JpXCA7CivnhKHmipXnpaggPiBtdXRvdWh5b3VcIDsKK+aMh+S6huWbsyA+IHNoaXJ5b3V6dVwgOwor6YGp5b+c5oCnID4gdGVraW91c2VpXCA7Civlm57pgIHou4ogPiBrYWlzb3VzaGFcIDsKK+a8q+aJjeW4qyA+IG1hbnphaXNoaVwgOwor6Iqx54Gr5birID4gaGFuYWJpc2hpXCA7Civkuovmpa3nqI4gPiBqaWd5b3V6ZWlcIDsKK+WPjuWuueaJgCA+IHNodXV5b3Vqb1wgOwor5Zu955K95pu4ID4ga29rdWppc2hvXCA7CivmhJ/opprlmaggPiBrYW5rYWt1a2lcIDsKK+aVmeiCsuiyuyA+IGt5b3Vpa3VoaVwgOwor5Zu65a6a57WmID4ga290ZWlreXV1XCA7CivlsZXopqfkvJogPiB0ZW5yYW5rYWlcIDsKK+S6pOS7o+WItiA+IGtvdXRhaXNlaVwgOwor5beh6KaW6ImHID4ganVuc2hpdGVpXCA7Civlt6HoppboiLkgPiBqdW5zaGlzZW5cIDsKK+axjumWouaVsCA+IGhhbmthbnN1dVwgOwor5YWo5Lq655SfID4gemVuamluc2VpXCA7Civmlq3lvLfluqYgPiBkYW5reW91ZG9cIDsKK+WHpuWls+S9nCA+IHNob2pvc2FrdVwgOwor5YCL5oCn55qEID4ga29zZWl0ZWtpXCA7Civlhajpn7Ppmo4gPiB6ZW4nJ29ua2FpXCA7Civlj43kubHogIUgPiBoYW5yYW5zaGFcIDsKK+i7vemfs+alvSA+IGtlaW9uZ2FrdVwgOwor6ZG/5bKp5qmfID4gc2FrdWdhbmtpXCA7Civlm57lvqnmnJ8gPiBrYWlmdWt1a2lcIDsKK+S4jeWQiOagvCA+IGZ1Z291a2FrdVwgOwor5ZGo5rOi6KiIID4gc2h1dWhha2VpXCA7CivkuI3lj6/mrKAgPiBmdWtha2V0c3VcIDsKK+ehrOWMlueXhyA+IGtvdWthc2hvdVwgOwor6YCG5Yq55p6cID4gZ3lha2tvdWthXCA7CivkuIDnrYnlm70gPiBpdHRvdWtva3VcIDsKK+WFqOWwgeWcsCA+IHplbmhvdWNoaVwgOwor5YiG6YWN6YeRID4gYnVucGFpa2luXCA7Civlm57pgYroiLkgPiBrYWl5dXVzZW5cIDsKK+WFrOS8muWggiA+IGtvdWthaWRvdVwgOwor54Sh6KGo5oOFID4gbXVoeW91am91XCA7CivmsLTppIPlrZAgPiBzdWlneW91emFcIDsKK+miqOWcn+eXhSA+IGZ1dWRvYnlvdVwgOwor6YCD6YG/55qEID4gdG91aGl0ZWtpXCA7Civlj6TmloflraYgPiBrb2J1bmdha3VcIDsKK+WEquetieeUnyA+IHl1dXRvdXNlaVwgOwor5Zu65a6a56WoID4ga290ZWloeW91XCA7Civlr77lkJHou4ogPiB0YWlrb3VzaGFcIDsKK+S6i+alreeVjCA+IGppZ3lvdWthaVwgOwor5om55Yik55qEID4gaGloYW50ZWtpXCA7CivlpKnlnLDkurogPiB0ZW5jaGlqaW5cIDsKK+ihgOe1seabuCA+IGtldHRvdXNob1wgOwor5Lit5LqM6ZqOID4gY2h1dW5pa2FpXCA7CivlsbHokaHokIQgPiB5YW1hYnVkb3VcIDsKK+m7hOmBk+mdoiA+IGtvdWRvdW1lblwgOwor5Y+X6Zuj6YCxID4ganVuYW5zaHV1XCA7CivlsIrljrPmrbsgPiBzb25nZW5zaGlcIDsKK+iAg+WPpOWtpiA+IGtvdWtvZ2FrdVwgOwor5L+d6Zm66Ki8ID4gaG9rZW5zaG91XCA7Civpq5jliIblrZAgPiBrb3VidW5zaGlcIDsKK+WGpeWKoOmHkSA+IG15b3VnYWtpblwgOwor5YaF5Zyw57GzID4gbmFpY2hpbWFpXCA7Civmnq/okYnliaQgPiBrYXJlaGF6YWlcIDsKK+aLm+W+heaXpSA+IHNob3V0YWliaVwgOwor6KqT6aGY5qipID4gc2VpZ2Fua2VuXCA7CivmhJvlm73ogIUgPiBhaWtva3VzaGFcIDsKK+iotOmhmOS6uiA+IHNvZ2FuJyduaW5cIDsKK+mgmOS6i+mkqCA+IHJ5b3VqaWthblwgOwor5Li754qv6ICFID4gc2h1aGFuc2hhXCA7CivpmLLorbflo4EgPiBib3Vnb2hla2lcIDsKK+izh+mHkea6kCA+IHNoaWtpbmdlblwgOwor6byg5ZKs55eHID4gc29rb3VzaG91XCA7CivkuInph43nm5cgPiBzYW5qdXV0b3VcIDsKK+mAo+S9k+W9oiA+IHJlbnRhaWtlaVwgOwor54++5q616ZqOID4gZ2VuZGFua2FpXCA7CivmiJDlubTogIUgPiBzZWluZW5zaGFcIDsKK+mHkeino+emgSA+IGtpbmthaWtpblwgOwor57695a2Q56qBID4gaGFuZXRzdWtpXCA7CivmtJfmv6/nsokgPiBzZW50YWt1a29cIDsKK+WFieWMluWtpiA+IGtvdWthZ2FrdVwgOwor6L6y5a2m6YOoID4gbm91Z2FrdWJ1XCA7CivkuLvku7vliLYgPiBzaHVuaW5zZWlcIDsKK+iInui4j+acjSA+IGJ1dG91ZnVrdVwgOwor57WM6aiT6KuWID4ga2Vpa2Vucm9uXCA7CivntYzpqJPoq4cgPiBrZWlrZW5kYW5cIDsKK+aTpumBjuWCtyA+IHNha2thc2hvdVwgOwor5YaN6KO95ZOBID4gc2Fpc2VpaGluXCA7Civlm5vph43lpY8gPiBzaGlqdXVzb3VcIDsKK+ebuOWvvuWApCA+IHNvdXRhaWNoaVwgOwor5q+N5a2Q5YWxID4gYm9zaGl0b21vXCA7CivpiYTngavlt7sgPiB0ZWtrYW1ha2lcIDsKK+iLseS9nOaWhyA+IGVpc2FrdWJ1blwgOwor5oim6LuK5YW1ID4gc2Vuc2hhaGVpXCA7Civlho3mipXnqL8gPiBzYWl0b3Vrb3VcIDsKK+aVmemkiumDqCA+IGt5b3V5b3VidVwgOwor56uL5rOV5qipID4gcmlwcG91a2VuXCA7CivlpqXljZTngrkgPiBkYWt5b3V0ZW5cIDsKK+mbsuS7meWysyA+IHVuemVuZGFrZVwgOwor5Y+X6aCY5pu4ID4ganVyeW91c2hvXCA7CivkuI3mtLvljJYgPiBmdWthdHN1a2FcIDsKK+aWh+eroOiqniA+IGJ1bnNob3Vnb1wgOwor6Z2S5L+h5Y+3ID4gYW9zaGluZ291XCA7CivmmYLoqIjnmr8gPiB0b2tlaXphcmFcIDsKK+W5veWGpeeVjCA+IHl1dW1laWthaVwgOwor5Z+36KGM5ZCPID4gc2hpa2tvdXJpXCA7CivnrYnpq5jnt5ogPiB0b3Vrb3VzZW5cIDsKK+e1nummluWPsCA+IGtvdXNodWRhaVwgOwor56C05pOm6Z+zID4gaGFzYXRzdW9uXCA7CivpgIHlj5fkv6EgPiBzb3VqdXNoaW5cIDsKK+S4gOelnuirliA+IGlzc2hpbnJvblwgOwor552A6YGT5qW9ID4ga2lkb3VyYWt1XCA7CivmmI7lvozlubQgPiBteW91Z29uZW5cIDsKK+azleWLmeecgSA+IGhvdW11c2hvdVwgOwor6YW157Sg5a2mID4ga291c29nYWt1XCA7Civmt7flkIjphZIgPiBrb25nb3VzaHVcIDsKK+Wbs+WDj+WtpiA+IHp1em91Z2FrdVwgOwor5aWJ5Yqg5bizID4gaG91Z2FjaG91XCA7CivmhJ/lmIboqZ4gPiBrYW50YW5zaGlcIDsKK+WJjeWjsuWIuCA+IG1hZXVyaWtlblwgOwor5b+X6aGY5YW1ID4gc2hpZ2FuaGVpXCA7Civlj43lsITlhYkgPiBoYW5zaGFrb3VcIDsKK+earue0sOW3pSA+IGthd2F6YWlrdVwgOwor5b6p5rC05ZmoID4gZnVrdXN1aWtpXCA7CivplqLpgKPmgKcgPiBrYW5yZW5zZWlcIDsKK+e1seiqnuWtpiA+IHRvdWdvZ2FrdVwgOwor5pm055y86ICFID4gc2VpZ2Fuc2hhXCA7CivorJvmvJTmlpkgPiBrb3VlbnJ5b3VcIDsKK+aVrOiAgeS8miA+IGtlaXJvdWthaVwgOwor5pmC6ZaT6Lu4ID4gamlrYW5qaWt1XCA7Civlj43lr77lhZogPiBoYW50YWl0b3VcIDsKK+aQreS5l+iAhSA+IHRvdWpvdXNoYVwgOwor56S+5rCR5YWaID4gc2hhbWludG91XCA7CivntZ7pppbliJEgPiBrb3VzaHVrZWlcIDsKK+WJteW7uuiAhSA+IHNvdWtlbnNoYVwgOwor5pyA5aSn6ZmQID4gc2FpZGFpZ2VuXCA7CivmpZPlrZDpppkgPiBmdXVzaGlrb3VcIDsKK+a3t+aIkOWyqSA+IGtvbnNlaWdhblwgOwor57SZ57KY5ZyfID4ga2FtaW5lbmRvXCA7CivmnaHku7bmlocgPiBqb3VrZW5idW5cIDsKK+aEj+itmOS9kyA+IGlzaGlraXRhaVwgOwor56eB5LyB5qWtID4gc2hpa2lneW91XCA7CivnqbrmqKHmp5ggPiBzb3JhbW95b3VcIDsKK+WFrOacieaelyA+IGtvdXl1dXJpblwgOwor5bGx5rC05qW8ID4gc2Fuc3Vpcm91XCA7Civlr4TnlZnlnLAgPiBraXJ5dXVjaGlcIDsKK+aWreWJm+aApyA+IGRhbmdvdXNlaVwgOwor56m65YWD5rCXID4ga2FyYWdlbmtpXCA7CivmiZPnrpfnmoQgPiBkYXNhbnRla2lcIDsKK+mAgOiUteWTgSA+IHRhaXpvdWhpblwgOwor5b2x6Z+/5ZyPID4gZWlreW91a2VuXCA7CivnnJ/lloTnvo4gPiBzaGluemVuYmlcIDsKK+S7suS/neiAhSA+IGNodXVob3NoYVwgOwor5omL6KGT6KGjID4gc2h1anV0c3VpXCA7CivkurrplpPmhJsgPiBuaW5nZW4nJ2FpXCA7CivnkIbnn6XnmoQgPiByaWNoaXRla2lcIDsKK+eQpeePgOiJsiA+IGtvaGFrdWlyb1wgOwor5b6h6JSt5qeYID4gb2thZ2VzYW1hXCA7Civmr5vntLDnrqEgPiBtb3VzYWlrYW5cIDsKK+eZveiDoem6uyA+IHNoaXJvZ29tYVwgOwor5Li75Lq65YWsID4gc2h1amlua291XCA7CivkurrplpPmgKcgPiBuaW5nZW5zZWlcIDsKK+WNmOWtlOmhniA+IHRhbmtvdXJ1aVwgOwor5ZCM5Yq06ICFID4gZG91cm91c2hhXCA7CivljbPmmYLmgKcgPiBzb2t1amlzZWlcIDsKK+S5s+WRkeWFkCA+IGNoaW5vbWlnb1wgOwor5LiN5b6z5ryiID4gZnV0b2t1a2FuXCA7Civpga3pgYfmiKYgPiBzb3VndXVzZW5cIDsKK+WPiOWutuadpSA+IG1hdGFnZXJhaVwgOwor5q2j5pu45rOVID4gc2Vpc2hvaG91XCA7Civni6zoh6rmgKcgPiBkb2t1amlzZWlcIDsKK+W8geiyoeWkqSA+IGJlbnphaXRlblwgOwor5Yuk5YuZ5YWIID4ga2lubXVzYWtpXCA7CivmjIHkuYXmiKYgPiBqaWt5dXVzZW5cIDsKK+mHjeimgeimliA+IGp1dXlvdXNoaVwgOwor56m65qKF6ZuoID4ga2FyYXRzdXl1XCA7Civmt7fmiJDlm6MgPiBrb25zZWlkYW5cIDsKK+eBq+WPo+WjgSA+IGtha291aGVraVwgOwor5pmC6ZaT6KGoID4gamlrYW5oeW91XCA7CivnoILliKnpgZMgPiBqYXJpbWljaGlcIDsKK+S8muioiOWumCA+IGthaWtlaWthblwgOwor6LOk5qWt5ammID4gc2VuZ3lvdWZ1XCA7CivntYzpqJPogIUgPiBrZWlrZW5zaGFcIDsKK+mfk+WbveiqniA+IGhhbmtva3Vnb1wgOwor5pWZ5p2Q6LK7ID4ga3lvdXphaWhpXCA7Civli53liKnogIUgPiBzaG91cmlzaGFcIDsKK+a9nOS8j+acnyA+IHNlbnB1a3VraVwgOwor5aSn5Zuj5YaGID4gZGFpZGFuJydlblwgOwor5Y2I5YmN5qeYID4gZ296ZW5zYW1hXCA7Civmtbfmva7pn7MgPiBrYWljaG91b25cIDsKK+ato+eKr+iAhSA+IHNlaWhhbnNoYVwgOwor5Y+v5Zyn5oCnID4ga2FhdHN1c2VpXCA7CivoiLnlpKflt6UgPiBmdW5hZGFpa3VcIDsKK+Wcn+WcsOafhCA+IHRvY2hpZ2FyYVwgOwor55m76Ii356S8ID4gdG91Z2VucmVpXCA7CivmlL/lupznrYsgPiBzZWlmdXN1amlcIDsKK+a0u+aAp+WJpCA+IGthc3NlaXphaVwgOwor5Y+N5L2T5Yi2ID4gaGFudGFpc2VpXCA7Civol7voj4zpoZ4gPiBzb3VraW5ydWlcIDsKK+a7keefs+eyiSA+IGthc3Nla2lrb1wgOwor57ep6KGd5ZmoID4ga2Fuc2hvdWtpXCA7Civps6nnvr3oibIgPiBoYXRvYmFpcm9cIDsKK+mhleW+rumPoSA+IGtlbmJpa3lvdVwgOwor5ris5a6a5ZmoID4gc29rdXRlaWtpXCA7CivlkI3lupfooZcgPiBtZWl0ZW5nYWlcIDsKK+WIqeS8keiJsiA+IHJpa3l1dWlyb1wgOwor5Zu95LqL54qvID4ga29rdWppaGFuXCA7Civmt7fmiJDlk4EgPiBrb25zZWloaW5cIDsKK+WIhumFjeiAhSA+IGJ1bnBhaXNoYVwgOwor5Y2K6YCP5piOID4gaGFudG91bWVpXCA7CivliIbmsLTnt5ogPiBidW5zdWlzZW5cIDsKK+mBiuaIr+eahCA+IHl1dWdpdGVraVwgOwor6L+R6KaW55y8ID4ga2luc2hpZ2FuXCA7CivkuLvorIDogIUgPiBzaHVib3VzaGFcIDsKK+S8muioiOWjqyA+IGthaWtlaXNoaVwgOwor5Yid5bm05YW1ID4gc2hvbmVuaGVpXCA7CivlkIzlubTovKkgPiBkb3VuZW5wYWlcIDsKK+ePjeeEoemhniA+IGNoaW5tdXJ1aVwgOwor566d5Y+j5LukID4ga2Fua291cmVpXCA7CivlkIjms5XmgKcgPiBnb3Vob3VzZWlcIDsKK+e3j+mgmOS6iyA+IHNvdXJ5b3VqaVwgOwor5bee5pS/5bqcID4gc2h1dXNlaWZ1XCA7CivllYbli5nlrpggPiBzaG91bXVrYW5cIDsKK+W/nOaOpemWkyA+IG91c2V0c3VtYVwgOwor5Y+C5Lya6ICFID4gc2Fua2Fpc2hhXCA7CivkupTkurrntYQgPiBnb25pbmd1bWlcIDsKK+m7hOawtOaZtiA+IGtpenVpc2hvdVwgOwor5YaF6KOP5qeYID4gZGFpcmlzYW1hXCA7CivlpKfooYbljJYgPiB0YWlzaHV1a2FcIDsKK+mHjeWkp+aApyA+IGp1dWRhaXNlaVwgOwor5aSW5Zu96KqeID4gZ2Fpa29rdWdvXCA7Civli6LlipvlrrYgPiBzZWlyeW9ra2FcIDsKK+WjsOalveWutiA+IHNlaWdha3VrYVwgOwor6KO96Z205qWtID4gc2Vpa2FneW91XCA7CivnrrHppqzou4ogPiBoYWtvYmFzaGFcIDsKK+WuruWGheecgSA+IGt1bmFpc2hvdVwgOwor5LqL5qWt5omAID4gamlneW91c2hvXCA7Civnqb/lsbHnlLIgPiBzZW56YW5rb3VcIDsKK+iHqOa4r+e3miA+IHJpbmtvdXNlblwgOwor5ZSv5ZCN6KuWID4geXVpbWVpcm9uXCA7CivmlLnpgKDou4ogPiBrYWl6b3VzaGFcIDsKK+m7hOmHkeWbvSA+IG91Z29ua29rdVwgOwor6IqL576K5765ID4gaW1veW91a2FuXCA7Civmm7TnlJ/lk4EgPiBrb3VzZWloaW5cIDsKK+iKi+e+iue+riA+IGltb3lvdWthblwgOwor5bqD5bCP6LevID4gaGlyb2tvdWppXCA7Civnqbrov5TkuosgPiBzb3JhaGVuamlcIDsKK+iFkOakjeWcnyA+IGZ1c2hva3Vkb1wgOwor5qyh5ZaE562WID4gaml6ZW5zYWt1XCA7CivpgaDnnLzpj6EgPiB0b29tZWdhbmVcIDsKK+WJtemAoOiAhSA+IHNvdXpvdXNoYVwgOwor5LyR6Zu75pelID4ga3l1dWRlbmJpXCA7Civmnb/ploDlupcgPiBoYW5tb250ZW5cIDsKK+WwjuWFpemDqCA+IGRvdW55dXVidVwgOwor56aF5ZWP562UID4gemVubW9uZG91XCA7CivopIfmlbDlgIsgPiBmdWt1c3V1a29cIDsKK+ebsuWtpuagoSA+IG1vdWdha2tvdVwgOwor6Kme6I+v6ZuGID4gc2hpa2FzaHV1XCA7CivnoJTkv67oqrIgPiBrZW5zaHV1a2FcIDsKK+W8vuaAp+S9kyA+IGRhbnNlaXRhaVwgOwor54yu5ZGI5pysID4ga2VudGVpYm9uXCA7CivlsL7plbfpto8gPiBvbmFnYWRvcmlcIDsKK+aUvumAgee2siA+IGhvdXNvdW1vdVwgOwor6bq76YWU6JasID4gbWFzdWl5YWt1XCA7CivljYPlubTntIAgPiBzZW4nJ25lbmtpXCA7Civlg6fluL3lvIEgPiBzb3Vib3ViZW5cIDsKK+Wkqum8k+iFuSA+IHRhaWtvYmFyYVwgOwor5YmN6KOF56CyID4gemVuc291aG91XCA7CivliIbpgaPpmoogPiBidW5rZW50YWlcIDsKK+WQueWlj+iAhSA+IHN1aXNvdXNoYVwgOwor5aW96KeS5a62ID4ga291a2FrdWthXCA7CivmgqrlpKnlgJkgPiBha3V0ZW5rb3VcIDsKK+aOqOmAsuapnyA+IHN1aXNoaW5raVwgOwor6Ymk5Y2B5a2XID4ga2FnaWp1dWppXCA7CivkubHmsJfmtYEgPiByYW5raXJ5dXVcIDsKK+WGt+WHjeWJpCA+IHJlaXRvdXphaVwgOwor5Yid5a++6Z2iID4gc2hvdGFpbWVuXCA7CivmnKrlj47ovIkgPiBtaXNodXVzYWlcIDsKK+WXnOWlveWTgSA+IHNoaWtvdWhpblwgOwor54Gr56CV5rWBID4ga2FzYWlyeXV1XCA7CivmgqrlpKnkvb8gPiBha3V0ZW5zaGlcIDsKK+W8t+WMluexsyA+IGt5b3VrYW1haVwgOwor5rC06Zu36ImHID4gc3VpcmFpdGVpXCA7CivoprPmpZPkvJogPiBrYW5wdXVrYWlcIDsKK+S9k+mok+irhyA+IHRhaWtlbmRhblwgOwor54Sh5oSf6KaaID4gbXVrYW5rYWt1XCA7CivnvqTpgJ/luqYgPiBndW5zb2t1ZG9cIDsKK+mbu+e3j+eglCA+IGRlbnNvdWtlblwgOwor5LiN56K65a6aID4gZnVrYWt1dGVpXCA7Civnmb3nmb7lkIggPiBzaGlyYXl1cmlcIDsKK+iInui4iuWKhyA+IGJ1eW91Z2VraVwgOwor54Gr5Y+j5LiYID4ga2Frb3VreXV1XCA7CivkuI3mraPnorogPiBmdXNlaWtha3VcIDsKK+mZveWtkOe3miA+IHlvdXNoaXNlblwgOwor5pmC6ZaT57WmID4gamlrYW5reXV1XCA7CivliIbmsLTnlYwgPiBidW5zdWlrYWlcIDsKK+S5seWPjeWwhCA+IHJhbmhhbnNoYVwgOwor6Kej562U5qyEID4ga2FpdG91cmFuXCA7CivprZrpm7foiYcgPiBneW9yYWl0ZWlcIDsKK+WFrOacieWcsCA+IGtvdXl1dWNoaVwgOwor5qy6556e55qEID4gZ2ltYW50ZWtpXCA7CivmmI7nnq3luqYgPiBtZWlyeW91ZG9cIDsKK+S8muioiOS/giA+IGthaWtlaWtlaVwgOwor6Ly45YWl56iOID4geXVueXV1emVpXCA7CivkuI3lv4PlvpcgPiBmdWtva29yb2VcIDsKK+S6jOalreWcsCA+IG5pZ3lvdWNoaVwgOwor5Y2Y5a2Q6KuWID4gdGFuc2hpcm9uXCA7CivoqLzmi6Dph5EgPiBzaG91a29raW5cIDsKK+eUn+a8lOWljyA+IG5hbWFlbnNvdVwgOwor5b6u5YiG5a2mID4gYmlidW5nYWt1XCA7CivlsILlvpPogIUgPiBzZW5qdXVzaGFcIDsKK+S7meWPsOS+ryA+IHNlbmRhaWtvdVwgOwor5YWE5byf5oSbID4ga3lvdWRhaWFpXCA7CivkuIfoj6/pj6EgPiBtYW5nZWt5b3VcIDsKK+emgea8geacnyA+IGtpbnJ5b3VraVwgOwor5Lq66ZaT5YOPID4gbmluZ2Vuem91XCA7Civlm57luLDnmoQgPiBrYWlraXRla2lcIDsKK+W4guawkeeojiA+IHNoaW1pbnplaVwgOwor5a+M5aOr6aGNID4gZnVqaWJpdGFpXCA7CivlhYnpgJ/luqYgPiBrb3Vzb2t1ZG9cIDsKK+mWi+elqOaJgCA+IGthaWh5b3Vqb1wgOwor5L2T6IKy6aSoID4gdGFpaWt1a2FuXCA7CivlpInoqr/ms6IgPiBoZW5jaG91aGFcIDsKK+WQjOebn+i7jSA+IGRvdW1laWd1blwgOwor5ZGK6Ki05Lq6ID4ga29rdXNvbmluXCA7Civlrablo6vpmaIgPiBnYWt1c2hpaW5cIDsKK+WAq+eQhueahCA+IHJpbnJpdGVraVwgOwor54K56by76JasID4gdGVuYml5YWt1XCA7CivmipXmm7jmrIQgPiB0b3VzaG9yYW5cIDsKK+iotOion+azlSA+IHNvc2hvdWhvdVwgOwor5Zub5Y2K5YiGID4gc2hpaGFuYnVuXCA7CivlkLjpn7PmnZAgPiBreXV1b256YWlcIDsKK+WIneS9k+mokyA+IHNob3RhaWtlblwgOwor6Ly45YWl55ukID4geXVueXV1YmFuXCA7CivkuI3nn6XngasgPiBzaGlyYW51aGlcIDsKK+WNtee0sOiDniA+IHJhbnNhaWJvdVwgOwor5LqM5qW15YyWID4gbmlreW9rdWthXCA7CivljZfkuqzpjKAgPiBuYW5raW5qb3VcIDsKK+mzqeaZguioiCA+IGhhdG9kb2tlaVwgOwor5ZO65Lmz55O2ID4gaG9ueXV1YmluXCA7Civopb/mtIvpoqggPiBzZWl5b3VmdXVcIDsKK+aXouijveacjSA+IGtpc2VpZnVrdVwgOwor6YeO5aSW5YqHID4geWFnYWlnZWtpXCA7Civmma7pgY3nmoQgPiBmdWhlbnRla2lcIDsKK+S6i+alreWboyA+IGppZ3lvdWRhblwgOwor5bCP5b255Lq6ID4ga295YWt1bmluXCA7Civps6XlqpLoirEgPiBjaG91YmFpa2FcIDsKK+iHquayu+mgmCA+IGppY2hpcnlvdVwgOwor56C05aOK55qEID4gaGFrYWl0ZWtpXCA7Civnqq7mjqrlpKcgPiBreXV1c29kYWlcIDsKK+mBlOejqOiIuSA+IGRhcnVtYXNlblwgOwor5YaF5Zyo5oCnID4gbmFpemFpc2VpXCA7CivlsI/ojbfniakgPiBrb25pbW90c3VcIDsKK+aXpeezu+S6uiA+IG5pa2tlaWppblwgOwor57K+56We56eRID4gc2Vpc2hpbmthXCA7CivkuIDlkIjnm64gPiBpY2hpZ291bWVcIDsKK+S9j+Wxhei3oSA+IGp1dWt5b2F0b1wgOwor5YaN5oqX5byBID4gc2Fpa291YmVuXCA7CivovrLkvZzmpa0gPiBub3VzYWd5b3VcIDsKK+ieouWFieeHiCA+IGtlaWtvdXRvdVwgOwor5LuY5bm06KGoID4gZnVuZW5weW91XCA7CivmraPoqqTooaggPiBzZWlnb2h5b3VcIDsKK+Wbm+i8qui7iiA+IHlvbnJpbnNoYVwgOwor6YeR57Gz57OWID4ga29ucGVpdG91XCA7CivkuInph43lpY8gPiBzYW5qdXVzb3VcIDsKK+S/neiovOabuCA+IGhvc2hvdXNob1wgOwor5ZCm5a6a55qEID4gaGl0ZWl0ZWtpXCA7CivkuI3pgKPntpogPiBmdXJlbnpva3VcIDsKK+atpuaWreeahCA+IGJ1ZGFudGVraVwgOwor5Ye656mC5pyfID4gc2h1c3N1aWtpXCA7CivkuIrljYrmnJ8gPiBrYW1paGFua2lcIDsKK+WNmOWtkOiRiSA+IHRhbnNoaXlvdVwgOwor5b6u5YiG5ZWGID4gYmlidW5zaG91XCA7CivnvqnlhYTlvJ8gPiBnaWt5b3VkYWlcIDsKK+ikh+e0oOaVsCA+IGZ1a3Vzb3N1dVwgOwor6Lui5qCh55SfID4gdGVua291c2VpXCA7CivmmLzlpJzluK8gPiBjaHV1eWFvYmlcIDsKK+S6i+S7tuihqCA+IGppa2VuaHlvdVwgOwor6J6i5YWJ54GvID4ga2Vpa291dG91XCA7CivlvLfnoazmtL4gPiBreW91a291aGFcIDsKK+aOkuawl+mHjyA+IGhhaWtpcnlvdVwgOwor5aWz5paH5a2XID4gb24nJ25hbW9qaVwgOwor54Sh5omA5bGeID4gbXVzaG96b2t1XCA7Civlkajms6LmlbAgPiBzaHV1aGFzdXVcIDsKK+eMm+emvemhniA+IG1vdWtpbnJ1aVwgOwor55Sf5oWL57O7ID4gc2VpdGFpa2VpXCA7CivmlaPmlofoqakgPiBzYW5idW5zaGlcIDsKK+agveWfueeoriA+IHNhaWJhaXNodVwgOwor5Y6f6JGX6ICFID4gZ2VuY2hvc2hhXCA7Civpm7voqbHmlpkgPiBkZW53YXJ5b3VcIDsKK+aKgOiDveizniA+IGdpbm91c2hvdVwgOwor5paZ6YeR5omAID4gcnlvdWtpbmpvXCA7CivmlK/phY3ogIUgPiBzaGloYWlzaGFcIDsKK+a0l+a/r+WxiyA+IHNlbnRha3V5YVwgOwor5YG06L+R6ICFID4gc29ra2luc2hhXCA7Civlrp/npL7kvJogPiBqaXNzaGFrYWlcIDsKK+W+oemAo+e1oSA+IGdvcmVucmFrdVwgOwor6aaZ5bed55yMID4ga2FnYXdha2VuXCA7Civngrnmu7TlmaggPiB0ZW50ZWtpa2lcIDsKK+S6iOWumuihqCA+IHlvdGVpaHlvdVwgOwor5byB6K235paZID4gYmVuZ29yeW91XCA7CivkuLvopoHpp4UgPiBzaHV5b3Vla2lcIDsKK+WvvuW/nOetliA+IHRhaW91c2FrdVwgOwor6Ly45YWl5rivID4geXVueXV1a291XCA7CivlkIzlv5fkvJogPiBkb3VzaGlrYWlcIDsKK+i/juaSg+apnyA+IGdlaWdla2lraVwgOwor5Lq65Zyw5ZCNID4gamluY2hpbWVpXCA7Civkv53pmbrmlpkgPiBob2tlbnJ5b3VcIDsKK+Wkp+WSjOiKiyA+IHlhbWF0b2ltb1wgOwor6auY5YSq5YWIID4ga291eXV1c2VuXCA7CivmlL7pgIHms5UgPiBob3Vzb3Vob3VcIDsKK+ekuuWKm+WbsyA+IGppcnlva3V6dVwgOwor6Zuq5aWz6YOOID4geXVraWpvcm91XCA7Civpm7bntLDovrIgPiByZWlzYWlub3VcIDsKK+ecn+a4heawtCA+IG1hc2hpbWl6dVwgOwor5Yqp5aSq5YiAID4gc3VrZWRhY2hpXCA7CivlhYvlt7Hlv4MgPiBrb2traXNoaW5cIDsKK+ioreioiOiAhSA+IHNla2tlaXNoYVwgOwor54Sh56We6KuWID4gbXVzaGlucm9uXCA7CivmnInooovpoZ4gPiB5dXV0YWlydWlcIDsKK+S4gOauuumCoyA+IGlzc2V0c3VuYVwgOwor5b+D55CG5oimID4gc2hpbnJpc2VuXCA7CivlvqHmrbTmrbQgPiBvcmVraXJla2lcIDsKK+S4jeW5s+etiSA+IGZ1YnlvdWRvdVwgOwor5Yip5bC/5YmkID4gcmlueW91emFpXCA7CivntbnnqY3pm7IgPiBrZW5zZWtpdW5cIDsKK+eJp+atjOeahCA+IGJva2thdGVraVwgOwor5ry46L+R57eaID4gemVua2luc2VuXCA7CivlrZDlronosp0gPiBrb3lhc3VrYWlcIDsKK+aXheaXpeiomCA+IHRhYmluaWtraVwgOwor5aOy5LiK6YeRID4gdXJpYWdla2luXCA7Civlj5fntabogIUgPiBqdWt5dXVzaGFcIDsKK+aYjuW5tOW6piA+IG15b3VuZW5kb1wgOwor5LqM5p6a6IiMID4gbmltYWlqaXRhXCA7CivkuInph43lhqAgPiBzYW5qdXVrYW5cIDsKK+iqmOmbu+WtkCA+IHl1dWRlbnNoaVwgOwor6Zai5L+C6KmeID4ga2Fua2Vpc2hpXCA7CivntKHpjJjlvaIgPiBib3VzdWlrZWlcIDsKK+WlieW5o+S9vyA+IGhvdWhlaXNoaVwgOwor6Z2p57Sw5belID4ga2F3YXphaWt1XCA7CivluILmsJHms5UgPiBzaGltaW5ob3VcIDsKK+acgOaVrOekvCA+IHNhaWtlaXJlaVwgOwor6Ium5a2m55SfID4ga3VnYWt1c2VpXCA7CivlvpfmhI/lhYggPiB0b2t1aXNha2lcIDsKK+mbqOS7leW6piA+IGFtYWppdGFrdVwgOwor5ZGo5rOi5bivID4gc2h1dWhhdGFpXCA7CivnrqHliLblrpggPiBrYW5zZWlrYW5cIDsKK+eHg+aWmeiyuyA+IG5lbnJ5b3VoaVwgOwor5bm06Lyp6ICFID4gbmVucGFpc2hhXCA7Civph4/oqJjlj7cgPiByeW91a2lnb3VcIDsKK+eZuuWFieS9kyA+IGhha2tvdXRhaVwgOwor5Y2K5YaG5b2iID4gaGFuJydlbmtlaVwgOwor5YaG6Jmr6aGeID4gZW5jaHV1cnVpXCA7Civmh7jmg7PmlocgPiBrZXNvdWJ1bWlcIDsKK+aknOa9ruWZqCA+IGtlbmNob3VraVwgOwor5aeJ5aa557eoID4gc2hpbWFpaGVuXCA7CivooYDns5blgKQgPiBrZXR0b3VjaGlcIDsKK+eEoemHjemHjyA+IG11anV1cnlvdVwgOwor6Zu76Kmx5bizID4gZGVud2FjaG91XCA7CivljYjliY3kuK0gPiBnb3plbmNodXVcIDsKK+WWtualreaJgCA+IGVpZ3lvdXNob1wgOwor57Gz5biC5aC0ID4gYmVpaWNoaWJhXCA7CivkuI3li5Xlv4MgPiBmdWRvdXNoaW5cIDsKK+aOqOmAsuWZqCA+IHN1aXNoaW5raVwgOwor5bCP5Yik5b2iID4ga29iYW5nYXRhXCA7Civlm57pgIHlupcgPiBrYWlzb3V0ZW5cIDsKK+eFp+aYjuWZqCA+IHNob3VtZWlraVwgOwor5b6555Sy5by+ID4gdGVra291ZGFuXCA7Civlrq7lhoXluoEgPiBrdW5haWNob3VcIDsKK+W4guawkeaoqSA+IHNoaW1pbmtlblwgOwor5Y2D5bm05pyfID4gc2VuJyduZW5raVwgOwor5Y2K6Ii356CyID4gaGFuZ2VuaG91XCA7CivmqKnlqIHnrYsgPiBrZW4nJ2lzdWppXCA7CivlpInpm7vmiYAgPiBoZW5kZW5zaG9cIDsKK+mbu+ino+a2siA+IGRlbmthaWVraVwgOwor6Zuy5LiK5Lq6ID4gdW5qb3ViaXRvXCA7CivkuIDlkajlubQgPiBpc3NodXVuZW5cIDsKK+euoeWItuWhlCA+IGthbnNlaXRvdVwgOwor6I+v5Y6z57WMID4ga2Vnb25reW91XCA7Civlr77mg4XloLEgPiB0YWlqb3Vob3VcIDsKK+agvOWkieWMliA+IGtha3VoZW5rYVwgOwor5pWZ6IKy5a62ID4ga3lvdWlrdWthXCA7Civlronmga/pppkgPiBhbnNva3Vrb3VcIDsKK+efs+m5uOawtCA+IHNla2tlbnN1aVwgOwor5LiN5YuJ5by3ID4gZnViZW5reW91XCA7CivloanljJbniakgPiBlbmthYnV0c3VcIDsKK+S4oeeUqOapnyA+IHJ5b3V5b3VraVwgOwor5b2T5LiW6aKoID4gdG91c2VpZnV1XCA7CivmoLzlpKnkupUgPiBnb3V0ZW5qb3VcIDsKK+S4reiAleapnyA+IGNodXVrb3VraVwgOwor5LiN6YGp5qC8ID4gZnV0ZWtrYWt1XCA7CivpgaDlv4PliIYgPiBlbnNoaW5idW5cIDsKK+aZrumAmuazlSA+IGZ1dHN1dWhvdVwgOwor5aqS5p+T5YmkID4gYmFpc2VuemFpXCA7CivnoLToo4Lpn7MgPiBoYXJldHN1b25cIDsKK+S4u+ims+irliA+IHNodWthbnJvblwgOwor5LqM55Wq5L2cID4gbmliYW5zYWt1XCA7CivnlJ/lkb3nt5ogPiBzZWltZWlzZW5cIDsKK+epuuWvvuepuiA+IGt1dXRhaWt1dVwgOwor54yb5ZC56ZuqID4gbW91ZnVidWtpXCA7Civpq5jlsITnoLIgPiBrb3VzaGFob3VcIDsKK+S4gOatqemKgCA+IGljaGlidWdpblwgOwor56aB5ryB5Yy6ID4ga2lucnlvdWt1XCA7CivlpYjoia/mvKwgPiBuYXJhZHp1a2VcIDsKK+W9ouixoeWMliA+IGtlaXNob3VrYVwgOwor5YaF5Zyw5Lq6ID4gbmFpY2hpamluXCA7Civnn7PljZfoirEgPiBzaGFrdW5hZ2VcIDsKK+WCgOWEoeW4qyA+IGthaXJhaXNoaVwgOwor5LiA5q2p6YeRID4gaWNoaWJ1a2luXCA7Civnl6nmiJHmhaIgPiB5YXNlZ2FtYW5cIDsKK+aCquWboOe4gSA+IGFrdWluJyduZW5cIDsKK+S4jeecoOeXhyA+IGZ1bWluc2hvdVwgOwor6Zu76Kej5qe9ID4gZGVua2Fpc291XCA7Civms5Xoj6/lrpcgPiBob2trZXNodXVcIDsKK+S4gOeerOmWkyA+IGlzc2h1bmthblwgOwor5q2j5LiJ5L2NID4gc2hvdXNhbm1pXCA7CivlvL7pgZPlvL4gPiBkYW5kb3VkYW5cIDsKK+a3t+WQiOaelyA+IGtvbmdvdXJpblwgOwor5rC05aKo55S7ID4gc3VpYm9rdWdhXCA7CivkuqTmmJPkvJogPiBrb3Vla2lrYWlcIDsKK+mrmOaliuWtkCA+IHRha2F5b3VqaVwgOwor5qip5aiB55qEID4ga2VuJydpdGVraVwgOwor56S+55So6LuKID4gc2hheW91c2hhXCA7CivliIbmsLTltrogPiBidW5zdWlyZWlcIDsKK+WtkOS+m+eUqCA+IGtvZG9tb3lvdVwgOwor6Kaq5a2d6KGMID4gb3lha291a291XCA7CivnmbrlsITnrZIgPiBoYXNzaGF0b3VcIDsKK+aLvuS4h+WGhiA+IGp1dW1hbicnZW5cIDsKK+WLpOeah+WutiA+IGtpbicnbm91a2FcIDsKK+S5s+WMluWJpCA+IG55dXVrYXphaVwgOwor6L+R5Zyw54K5ID4ga2luY2hpdGVuXCA7CivnhKHnq7bkuokgPiBtdWt5b3Vzb3VcIDsKK+S6pOmam+azlSA+IGtvdXNhaWhvdVwgOwor56eB5pyJ5ZywID4gc2hpeXV1Y2hpXCA7Civlj4LkuI7ogIUgPiBzYW4nJ3lvc2hhXCA7Civpo7LmlpnmsLQgPiBpbnJ5b3VzdWlcIDsKK+eni+aXpeWSjCA+IGFraWJpeW9yaVwgOwor5Yy65b255omAID4ga3V5YWt1c2hvXCA7Civnq4vlv5fkvJ0gPiByaXNzaGlkZW5cIDsKK+WkqeenpOajkiA+IHRlbmJpbmJvdVwgOwor5aSJ6Kq/5ZmoID4gaGVuY2hvdWtpXCA7CivlsI/liKTlnosgPiBrb2JhbmdhdGFcIDsKK+mWouS/guiAhSA+IGthbmtlaXNoYVwgOwor5aSn5oiQ5YqfID4gZGFpc2Vpa291XCA7Civkuozkurrnp7AgPiBuaW5pbnNob3VcIDsKK+WBtuWDj+imliA+IGd1dXpvdXNoaVwgOwor5YG26LmE6aGeID4gZ3V1dGVpcnVpXCA7CivmnaXoqKrogIUgPiByYWlob3VzaGFcIDsKK+mokuS5see9qiA+IHNvdXJhbnphaVwgOwor5a6M5oiQ5ZOBID4ga2Fuc2VpaGluXCA7CivlibXpgKDmgKcgPiBzb3V6b3VzZWlcIDsKK+aOkuawtOeuoSA+IGhhaXN1aWthblwgOwor5Y+I6KuL6LKgID4gbWF0YXVrZW9pXCA7Civph5HplqPlr7ogPiBraW5rYWt1amlcIDsKK+iqmOmbu+S9kyA+IHl1dWRlbnRhaVwgOwor5Y2X5Lqs57GzID4gbmFua2lubWFpXCA7CivnhKHnpZ7ntYwgPiBtdXNoaW5rZWlcIDsKK+mKgOS6pOaPmyA+IGdpbmtvdWthblwgOwor5LiN5bmy5riJID4gZnVrYW5zaG91XCA7Civoo73loanmpa0gPiBzZWllbmd5b3VcIDsKK+aVmeS8muWToSA+IGt5b3VrYWlpblwgOwor5pCt5LmX5Yi4ID4gdG91am91a2VuXCA7CivpgY7noavphbggPiBrYXJ5dXVzYW5cIDsKK+mBi+WRveeahCA+IHVubWVpdGVraVwgOwor6Kaz5qGc5LyaID4ga2FuJydvdWthaVwgOwor54Sh56S86ICFID4gYnVyZWltb25vXCA7Civmp4vmlofms5UgPiBrb3VidW5wb3VcIDsKK+aOpei/keaIpiA+IHNla2tpbnNlblwgOwor54Sh5rOV6ICFID4gbXVob3Vtb25vXCA7CivkuI3pganlvZMgPiBmdXRla2l0b3VcIDsKK+eEoeawtOmNiyA+IG11c3VpbmFiZVwgOwor5pyI57Wm5pelID4gZ2Vra3l1dWJpXCA7CivmlqXlgJnpmoogPiBzZWtrb3V0YWlcIDsKK+WJtealreiyuyA+IHNvdWd5b3VoaVwgOwor6YeN6KaB5oCnID4ganV1eW91c2VpXCA7Civnt4/lo7LkuIogPiBzb3V1cmlhZ2VcIDsKK+WNgeWGhueOiSA+IGp1dWVuZGFtYVwgOwor5YCr55CG5a2mID4gcmlucmlnYWt1XCA7CivkuIDpgLHplpMgPiBpc3NodXVrYW5cIDsKK+ekvuWGheWgsSA+IHNoYW5haWhvdVwgOwor5L2P5a6F6LK7ID4ganV1dGFrdWhpXCA7CivlsYjlnLDmgKcgPiBrdXRjaGlzZWlcIDsKK+WbveacieWMliA+IGtva3V5dXVrYVwgOwor6YCa6aKo5qmfID4gdHN1dWZ1dWtpXCA7CivlrrblsYvmlbcgPiBpZXlhc2hpa2lcIDsKK+WxseakkumtmiA+IHNhbnNob3V1b1wgOwor5YWs5paH5pu4ID4ga291YnVuc2hvXCA7Civmsbrlrproq5YgPiBrZXR0ZWlyb25cIDsKK+S/neiovOS6uiA+IGhvc2hvdW5pblwgOwor5rK/5rW35beeID4gZW5rYWlzaHV1XCA7CivkuI3pgZPlvrMgPiBmdWRvdXRva3VcIDsKK+S+v+S5l+iAhSA+IGJpbmpvdXNoYVwgOwor5LiA5Y2H55O2ID4gaXNzaG91YmluXCA7CivnqbrohbnmmYIgPiBrdXVmdWt1amlcIDsKK+WJjeihm+aIpiA+IHplbicnZWlzZW5cIDsKK+aEn+aDheirliA+IGthbmpvdXJvblwgOwor5pSv6YWN5qipID4gc2hpaGFpa2VuXCA7Civlm6PlrZDpvLsgPiBkYW5nb2JhbmFcIDsKK+WFqOirlueCuSA+IHplbnJvbnRlblwgOwor6YGT5YyW6ICFID4gZG91a2Vtb25vXCA7Civopb/mtIvntJkgPiBzZWl5b3VzaGlcIDsKK+abuOiomOmVtyA+IHNob2tpY2hvdVwgOwor5b+M6KiA6JGJID4gaW1pa290b2JhXCA7Civpm6Pkuovmpa0gPiBuYW5qaWd5b3VcIDsKK+S7mOW4r+eahCA+IGZ1dGFpdGVraVwgOwor6auY6aOb6LuKID4gdGFrYWJpc2hhXCA7Civpm7voqbHkuK0gPiBkZW53YWNodXVcIDsKK+m7hOmBk+W4ryA+IGtvdWRvdXRhaVwgOwor6auY5qCh55SfID4ga291a291c2VpXCA7CivogrrmsLTohasgPiBoYWlzdWlzaHVcIDsKK+WVhueUqOiqniA+IHNob3V5b3Vnb1wgOwor55Wl6KiY5rOVID4gcnlha2tpaG91XCA7CivokaHokITmo5ogPiBidWRvdWRhbmFcIDsKK+WlieWFrOS6uiA+IGhvdWtvdW5pblwgOwor5LuP5rOV5YOnID4gYnVwcG91c291XCA7CivkvZPogrLnpa0gPiB0YWlpa3VzYWlcIDsKK+aZrumAmuW8viA+IGZ1dHN1dWRhblwgOwor5oim5Lit5rS+ID4gc2VuY2h1dWhhXCA7Civpq5jlsbHluK8gPiBrb3V6YW50YWlcIDsKK+aAp+eKr+e9qiA+IHNlaWhhbnphaVwgOwor5rCR6Iq45ZOBID4gbWluZ2VpaGluXCA7CivopqrkvJrnpL4gPiBveWFnYWlzaGFcIDsKK+WPguizgOW4syA+IHNhbmdhY2hvdVwgOwor5LiJ6Lyq6LuKID4gc2Fucmluc2hhXCA7CivnlKPnp5HlraYgPiBzYW5rYWdha3VcIDsKK+i7iuWGheeBryA+IHNoYW5haXRvdVwgOwor5Yy75YuZ5a6kID4gaW11c2hpdHN1XCA7CivmsLjntprmgKcgPiBlaXpva3VzZWlcIDsKK+aOouaknOmaiiA+IHRhbmtlbnRhaVwgOwor5a6f5YuZ5a62ID4gaml0c3VtdWthXCA7Civlv4XpoIjmoLwgPiBoaXNzdWtha3VcIDsKK+Wkp+WSjOatjCA+IHlhbWF0b3V0YVwgOwor5Li45aSq5p2QID4gbWFydXRhemFpXCA7CivnoJTkv67miYAgPiBrZW5zaHV1am9cIDsKK+S4gOWIuemCoyA+IGlzc2V0c3VuYVwgOwor5YWs5piO5YWaID4ga291bWVpdG91XCA7CivntbXnqbroqIAgPiBlc29yYWdvdG9cIDsKK+e+hemHneebpCA+IHJhc2hpbmJhblwgOwor5Zmo6YeP5Lq6ID4ga2lyeW91amluXCA7Civlm73pmpvoqp4gPiBrb2t1c2FpZ29cIDsKK+Wbm+i+uuW9oiA+IHNoaWhlbmtlaVwgOwor55m65L2c55qEID4gaG9zc2F0ZWtpXCA7Civogb7lrabmoKEgPiByb3VnYWtrb3VcIDsKK+aOg+a1t+iJhyA+IHNvdWthaXRlaVwgOwor5Y+C6ICD5pu4ID4gc2Fua291c2hvXCA7CivljJbnsqflk4EgPiBrZXNob3VoaW5cIDsKK+WcsOW5s+mdoiA+IGNoaWhlaW1lblwgOwor5L2O6IO96ICFID4gdGVpbm91c2hhXCA7CivlhYjpqJPoq5YgPiBzZW5rZW5yb25cIDsKK+mbhuiLseekviA+IHNodXVlaXNoYVwgOwor55So5rC05rGgID4geW91c3VpY2hpXCA7Civlj5fpm6PliocgPiBqdW5hbmdla2lcIDsKK+WAieW6q+alrSA+IHNvdWtvZ3lvdVwgOwor5Y2D5YWt5pysID4gc2Vucm9wcG9uXCA7CivovLjlhaXlk4EgPiB5dW55dXVoaW5cIDsKK+WMlueyp+WPsCA+IGtlc2hvdWRhaVwgOwor5aGp5Yqg5ribID4gc2hpb2thZ2VuXCA7Civom43lhYnnh4ggPiBrZWlrb3V0b3VcIDsKK+WomOWtkOi7jSA+IGpvdXNoaWd1blwgOwor6Ieq5rK755yBID4gamljaGlzaG91XCA7CivlsL7plbfnjL8gPiBvbmFnYXphcnVcIDsKK+itpumYsuWboyA+IGtlaWJvdWRhblwgOwor5q2j6Kej6ICFID4gc2Vpa2Fpc2hhXCA7CivpmZDluqbpoY0gPiBnZW5kb2dha3VcIDsKK+WGjea0l+ekvCA+IHNhaXNlbnJlaVwgOwor5aeJ5aa55qChID4gc2hpbWFpa291XCA7CivmoLzpl5jmioAgPiBrYWt1dG91Z2lcIDsKK+mdkuaYpeacnyA+IHNlaXNodW5raVwgOwor6YCf6KiY6YyyID4gc29ra2lyb2t1XCA7CivlhKrli53ppqwgPiB5dXVzaG91YmFcIDsKK+awl+WAmeWtpiA+IGtpa291Z2FrdVwgOwor55eF6Zmi6Ii5ID4gYnlvdWluc2VuXCA7Civlm73mlofnp5EgPiBrb2t1YnVua2FcIDsKK+aLheW9k+iAhSA+IHRhbnRvdXNoYVwgOwor5p2l5aC06ICFID4gcmFpam91c2hhXCA7Civom43lhYnnga8gPiBrZWlrb3V0b3VcIDsKK+aOkuawtOa6nSA+IGhhaXN1aWtvdVwgOwor5bO75LiL5YmkID4gc2h1bmdlemFpXCA7CivlpJbllYbpg6ggPiBnYWlzaG91YnVcIDsKK+ato+aWueW9oiA+IHNlaWhvdWtlaVwgOwor5pyI57WM5bivID4gZ2Vra2VpdGFpXCA7Civop5LooYznga8gPiBrYWt1YW5kb25cIDsKK+iqsuW+tOmHkSA+IGthY2hvdWtpblwgOwor5Lqk5o+b6Ii5ID4ga291a2Fuc2VuXCA7Civkv53nrqHoqLwgPiBob2thbnNob3VcIDsKK+a3u+WKoOeJqSA+IHRlbmthbW9ub1wgOwor5LiA5YiG6YqAID4gaWNoaWJ1Z2luXCA7CivmnaXoprPogIUgPiByYWlrYW5zaGFcIDsKK+e2uue+heaYnyA+IGtpcmFib3NoaVwgOwor5bGx5bKz6YOoID4gc2FuZ2FrdWJ1XCA7CivnmbrlsZXmgKcgPiBoYXR0ZW5zZWlcIDsKK+S4gOWIhumHkSA+IGljaGlidWtpblwgOwor5Y2U5a6a5qGIID4ga3lvdXRlaWFuXCA7Civms6jlsITlmaggPiBjaHV1c2hha2lcIDsKK+WPuOazleaoqSA+IHNoaWhvdWtlblwgOwor5q2j5pS75rOVID4gc2Vpa291aG91XCA7CivmiYvmi43lrZAgPiB0ZWJ5b3VzaGlcIDsKK+ekvuS8mumdoiA+IHNoYWthaW1lblwgOwor6LGh55qu55eFID4gem91aGlieW91XCA7CivnpoHlj43oqIAgPiBraW5oYW5nZW5cIDsKK+eEoeWPjOeqkyA+IG11c291bWFkb1wgOwor5pmC6ZaT5YmyID4gamlrYW53YXJpXCA7CivnlKjlv4Pmo5IgPiB5b3VqaW5ib3VcIDsKK+WGjeaEn+afkyA+IHNhaWthbnNlblwgOwor5q+b6KO95ZOBID4gbW91c2VpaGluXCA7CivljJbnsqfku6MgPiBrZXNob3VkYWlcIDsKK+agvOe0jeW6qyA+IGtha3Vub3Vrb1wgOwor57eP57Si5byVID4gc291c2FrdWluXCA7Civkuojlr6nlu7cgPiB5b3NoaW50ZWlcIDsKK+iMtuWxi+mFkiA+IGNoYXlhemFrZVwgOwor5Zub5YiG5YaGID4gc2hpYnVuJydlblwgOwor5L2X5L2P5bGFID4gd2FiaXp1bWFpXCA7CivniYfmiYvmobYgPiBrYXRhdGVva2VcIDsKK+WJteWIiuWPtyA+IHNvdWthbmdvdVwgOwor5Zub5YiG5YWtID4gc2hpYnVyb2t1XCA7CivpmLLmvZzntrIgPiBib3VzZW5tb3VcIDsKK+WQjeWIuuWIpCA+IG1laXNoaWJhblwgOwor5rKz56ul5be7ID4ga2FwcGFtYWtpXCA7CivlkJHlhYnmgKcgPiBrb3Vrb3VzZWlcIDsKK+WLsuS4gOetiSA+IGt1bicnaXR0b3VcIDsKK+WPjeeJqeWxiyA+IHRhbm1vbm95YVwgOwor5LqS6K2y55qEID4gZ29qb3V0ZWtpXCA7CivkuJbnlYznmoQgPiBzZWthaXRla2lcIDsKK+W+oei/t+aDkSA+IGdvbWVpd2FrdVwgOwor5LiJ6YOo5L2cID4gc2FuYnVzYWt1XCA7CivmraPpnaLlm7MgPiBzaG91bWVuenVcIDsKK+ihqOWFt+W4qyA+IGh5b3VndXNoaVwgOwor5LiN6YGp5Lu7ID4gZnV0ZWtpbmluXCA7CivntYzkvIHluoEgPiBrZWlraWNob3VcIDsKK+mBi+WLlemgmCA+IHVuZG91cnlvdVwgOwor5YWI6Iis5p2lID4gc2VucGFucmFpXCA7CivlrprlhqDoqZ4gPiB0ZWlrYW5zaGlcIDsKK+m7hOmBk+WFiSA+IGtvdWRvdWtvdVwgOwor5o6l5bC+6L6eID4gc2V0c3ViaWppXCA7CivmsLTnhKHmnIggPiBtaW5hZHp1a2lcIDsKK+mnkOWcqOWToSA+IGNodXV6YWlpblwgOwor6Ly45bC/566hID4geXVueW91a2FuXCA7Civlm73pmLLosrsgPiBrb2t1Ym91aGlcIDsKK+S+jeW+k+mVtyA+IGppanV1Y2hvdVwgOwor5q666aKo5pmvID4gc2FwcHV1a2VpXCA7CivkuK3mlK/pgqMgPiBuYWthc2hpbmFcIDsKK+iqpOaMv+WFpSA+IGdvc291bnl1dVwgOwor5q2j5pWZ5o6IID4gc2Vpa3lvdWp1XCA7CivkvJHngavlsbEgPiBreXV1a2F6YW5cIDsKK+WtkOWuiOatjCA+IGtvbW9yaXV0YVwgOwor5rG65a6a56i/ID4ga2V0dGVpa291XCA7CivpmLLngavlo4EgPiBib3VrYWhla2lcIDsKK+WPsOa5vuS6uiA+IHRhaXdhbmppblwgOwor5pel56ug5peXID4gbmlzc2hvdWtpXCA7Civpg6jpmorplbcgPiBidXRhaWNob3VcIDsKK+W+oeecn+W9sSA+IGdvc2hpbicnZWlcIDsKK+WHneWbuueCuSA+IGd5b3Vrb3RlblwgOwor5pSv5bqX57ayID4gc2hpdGVubW91XCA7CivmlbDooajnpLogPiBzdXVoeW91amlcIDsKK+miqOWQkeioiCA+IGZ1dWtvdWtlaVwgOwor6JuN5YWJ5p2/ID4ga2Vpa291YmFuXCA7CivmlrDogZ7oiJcgPiBzaGluYnVuaG9cIDsKK+ilv+WNl+ilvyA+IHNlaW5hbnNlaVwgOwor6YG/6Zu36YedID4gaGlyYWlzaGluXCA7CivnjYXlrZDoiJ4gPiBzaGlzaGltYWlcIDsKK+S7u+acn+S4rSA+IG5pbmtpY2h1dVwgOwor5pa56Z2i6ZqKID4gaG91bWVudGFpXCA7CivpoqjpiLTojYkgPiBmdXVyaW5zb3VcIDsKK+iKsemHjuiPnCA+IGhhbmF5YXNhaVwgOwor5puy54us5qW9ID4ga3lva3Vnb21hXCA7CivnnJ/lkJHms5UgPiBtYWtrb3Vob3VcIDsKK+WVhuiIueaXlyA+IHNob3VzZW5raVwgOwor56CU5L+u5ZOhID4ga2Vuc2h1dWluXCA7CivoqZXliKToqJggPiBoeW91YmFua2lcIDsKK+aZrumAmuS+vyA+IGZ1dHN1dWJpblwgOwor5Ymv55+l5LqLID4gZnVrdWNoaWppXCA7Civmr43pm4blm6MgPiBib3NodXVkYW5cIDsKK+S4ieWGoOeOiyA+IHNhbmthbicnb3VcIDsKK+aBi+aEm+imsyA+IHJlbicnYWlrYW5cIDsKK+S9teihjOe3miA+IGhlaWtvdXNlblwgOwor5Zyw5b255qipID4gY2hpZWtpa2VuXCA7Civmma7pgJrkurogPiBmdXRzdXVqaW5cIDsKK+WFiOWwjuiAhSA+IHNlbmRvdXNoYVwgOwor5YaN5Y2U6K2wID4gc2Fpa3lvdWtpXCA7CivmipXpmY3ogIUgPiB0b3Vrb3VzaGFcIDsKK+S7o+i1reiJsiA+IHRhaXNoYWlyb1wgOwor5o6l5bC+6KqeID4gc2V0c3ViaWdvXCA7CivliofkvZzlrrYgPiBnZWtpc2Fra2FcIDsKK+mHjeaIpui7iiA+IGp1dXNlbnNoYVwgOwor6Z+z5qW96ZqKID4gb25nYWt1dGFpXCA7Civlho3npoHmraIgPiBzYWlraW5zaGlcIDsKK+eHu+iSuOWJpCA+IGt1bmpvdXphaVwgOwor5rSL6KOB5birID4geW91c2Fpc2hpXCA7CivnnJ/mraPpnaIgPiBtYXNob3VtZW5cIDsKK+aciOe1jOWJjSA+IGdla2tlaW1hZVwgOwor6YGL5YuV6YePID4gdW5kb3VyeW91XCA7CivkvY7lsbHluK8gPiB0ZWl6YW50YWlcIDsKK+WKseaMr+WZqCA+IHJlaXNoaW5raVwgOwor6Iux6ZuE55qEID4gZWl5dXV0ZWtpXCA7CivoqJjogIXluK0gPiBraXNoYXNla2lcIDsKK+WBpeW6t+iAhSA+IGtlbmtvdXNoYVwgOwor6IKl5rqA55eHID4gaGltYW5zaG91XCA7CivmnIDlpKflgKQgPiBzYWlkYWljaGlcIDsKK+ioiOeUu+ahiCA+IGtlaWtha3VhblwgOwor6I+v5Y6z5a6XID4ga2Vnb25zaHV1XCA7CivkuLvopoHngrkgPiBzaHV5b3V0ZW5cIDsKK+S7ruS9j+WxhSA+IGthcml6dW1haVwgOwor5Lya5ZOh6Ki8ID4ga2FpaW5zaG91XCA7Civnsr7oloTlhZAgPiBzZWloYWt1amlcIDsKK+aMv+WFpeWbsyA+IHNvdW55dXV6dVwgOwor5LiB5bm06ICFID4gdGVpbmVuc2hhXCA7Civnm6Pmn7vlvbkgPiBrYW5zYXlha3VcIDsKK+iWhOWMlueypyA+IHVzdWdlc2hvdVwgOwor5Ye65Yuk57C/ID4gc2h1a2tpbmJvXCA7CivkuK3lpK7nt5ogPiBjaHV1b3VzZW5cIDsKK+WxpeattOabuCA+IHJpcmVraXNob1wgOwor6aSK5Zej5a2QID4geW91c2hpc2hpXCA7CivlpKfmtbfljp8gPiBvb3VuYWJhcmFcIDsKK+S9juS+oeagvCA+IHRlaWtha2FrdVwgOwor5Lqk6Zqb5LiKID4ga291c2Fpam91XCA7Civlj4LogIPlk4EgPiBzYW5rb3VoaW5cIDsKK+elnue1jOenkSA+IHNoaW5rZWlrYVwgOwor5bCP5L2c6L6yID4ga29zYWt1bm91XCA7Civnp4Hmlofmm7ggPiBzaGlidW5zaG9cIDsKK+axuuWumueJiCA+IGtldHRlaWJhblwgOwor5b+D5LiN5YWoID4gc2hpbmZ1emVuXCA7CivkubPlubzlhZAgPiBueXV1eW91amlcIDsKK+imj+WJh+abuCA+IGtpc29rdXNob1wgOwor5Yqg6Zmk5byPID4ga2Fqb3NoaWtpXCA7Civlj7jms5XlrpggPiBzaGlob3VrYW5cIDsKK+epuuWvvuWcsCA+IGt1dXRhaWNoaVwgOwor5q2j6KaW55y8ID4gc2Vpc2hpZ2FuXCA7Civml6nmhbbmiKYgPiBzb3VrZWlzZW5cIDsKK+aOmOWJiuapnyA+IGt1c3Nha3VraVwgOwor5pyq56K65a6aID4gbWlrYWt1dGVpXCA7Civpq5jmnrbmqYsgPiBrb3VrYWt5b3VcIDsKK+WAi+WIpeWMliA+IGtvYmV0c3VrYVwgOwor5oy/5YWl5Y+lID4gc291bnl1dWt1XCA7CivmlL/mqKnlhZogPiBzZWlrZW50b3VcIDsKK+WwhOWIqeW/gyA+IHNoYXJpc2hpblwgOwor55uj5a+f5Yy7ID4ga2Fuc2F0c3VpXCA7CivpgZPljJbmlrkgPiBkb3VrZWdhdGFcIDsKK+WNiuS6jOmHjSA+IGhhbicnbmlqdXVcIDsKK+emgeayu+eUoyA+IGtpbmNoaXNhblwgOwor5Y2Y6Kqe6ZuGID4gdGFuZ29zaHV1XCA7CivnlKjmsLTlnLAgPiB5b3VzdWlpa2VcIDsKK+i7iumrmOefrSA+IHNoYWtvdXRhblwgOwor5raI5YyW6IW6ID4gc2hvdWthc2VuXCA7Civov5HmtbfprZogPiBraW5rYWlneW9cIDsKK+aOkuawtOWtlCA+IGhhaXN1aWtvdVwgOwor5pyo6YeR5ZyfID4gbW9rdWtpbmRvXCA7CivmjIHntprmgKcgPiBqaXpva3VzZWlcIDsKK+WQjeW3peWkpyA+IG1laWtvdWRhaVwgOwor5pSv6YWN5Lq6ID4gc2hpaGFpbmluXCA7CivlubnkuovplbcgPiBrYW5qaWNob3VcIDsKK+mVt+awtOi3ryA+IGNob3VzdWlyb1wgOwor5bmz5YWa5ZOhID4gaGlyYXRvdWluXCA7CivlvqrnkrDnt5ogPiBqdW5rYW5zZW5cIDsKK+S4i+WJi+S4iiA+IGdla29rdWpvdVwgOwor5LiK5bGk6aKoID4gam91c291ZnV1XCA7CivlnKflu7bpi7wgPiBhdHN1ZW5rb3VcIDsKK+iPoOiWkOiNiSA+IGhvdXJlbnNvdVwgOwor5rqW5pWZ5ZOhID4ganVua3lvdWluXCA7Civlh7nnnLzpj6EgPiBvdWdhbmt5b3VcIDsKK+eJqeS+oemrmCA+IGJ1a2thZGFrYVwgOwor6KqY5ouQ572qID4geXV1a2FpemFpXCA7CivlvqrnkrDns7sgPiBqdW5rYW5rZWlcIDsKK+a0vueUn+eahCA+IGhhc2VpdGVraVwgOwor57Sg5Y+N5b+cID4gc29oYW4nJ25vdVwgOwor5Zyo6YO36ICFID4gemFpZ291c2hhXCA7CivljJfmtbfpgZMgPiBob2trYWlkb3VcIDsKK+ael+aqjueXhSA+IHJpbmdvYnlvdVwgOwor6Jas5LqL5rOVID4geWFrdWppaG91XCA7Civnn63mr5vnqK4gPiB0YW5tb3VzaHVcIDsKK+amguW/teirliA+IGdhaW5lbnJvblwgOwor6YGT5b6z5a62ID4gZG91dG9rdWthXCA7Civlj4LkuI7lrpggPiBzYW4nJ3lva2FuXCA7CivmnIDntYLmoYggPiBzYWlzaHV1YW5cIDsKK+S4lueVjOaWsCA+IHNla2Fpc2hpblwgOwor5Y+C6ICD5Lq6ID4gc2Fua291bmluXCA7CivlsYvlj7DpqqggPiB5YXRhaWJvbmVcIDsKK+Wkp+atk+i/jiA+IGRhaWthbmdlaVwgOwor5LiK5bGk6ZqOID4gam91c291a2FpXCA7CivkuIDliIfntYwgPiBpc3NhaWt5b3VcIDsKK+WGjemFjee9riA+IHNhaWhhaWNoaVwgOwor6IKM6KWm6KKiID4gaGFkYWp1YmFuXCA7Civlha3op5LlvaIgPiByb2trYWtrZWlcIDsKK+aWsOeUn+WFkCA+IHNoaW5zZWlqaVwgOwor5YWI5L2P6ICFID4gc2VuanV1c2hhXCA7Civphpzmpa3lqaYgPiBzaHVneW91ZnVcIDsKK+ijgeWIpOaoqSA+IHNhaWJhbmtlblwgOwor5aSn56We5a6uID4gZGFpamluZ3V1XCA7CivmraPmlZnlk6EgPiBzZWlreW91aW5cIDsKK+aCquaIr+edgCA+IGl0YXp1cmFnaVwgOwor5pi86KGM54GvID4gaGlydWFuZG9uXCA7CivlnLDlubPnt5ogPiBjaGloZWlzZW5cIDsKK+mFjembu+e3miA+IGhhaWRlbnNlblwgOwor55m96aCt57+BID4gaGFrdXRvdW91XCA7CivnmbrlsITlj7AgPiBoYXNzaGFkYWlcIDsKK+S4u+mZo+WcsCA+IHNodWppbmNoaVwgOwor5oSf5oOz5paHID4ga2Fuc291YnVuXCA7CivmtojljJbns7sgPiBzaG91a2FrZWlcIDsKK+S4u+ims+aApyA+IHNodWthbnNlaVwgOwor5aSn5rOV5bu3ID4gZGFpaG91dGVpXCA7CivmnIDntYLml6UgPiBzYWlzaHV1YmlcIDsKK+axuuWumuaoqSA+IGtldHRlaWtlblwgOwor5YWO5bCP5bGLID4gdXNhZ2lnb3lhXCA7CivlpJrnpZ7oq5YgPiB0YXNoaW5yb25cIDsKK+W+jOWNiueUnyA+IGtvdWhhbnNlaVwgOwor5aKX6KiC54mIID4gem91dGVpYmFuXCA7CivmiYDlnKjlnLAgPiBzaG96YWljaGlcIDsKK+eBveWus+WcsCA+IHNhaWdhaWNoaVwgOwor5raI5YyW566hID4gc2hvdWtha2FuXCA7CivlubTku6PpoIYgPiBuZW5kYWlqdW5cIDsKK+elnue1jOeCjiA+IHNoaW5rZWllblwgOwor5aWJ5LuV6ICFID4gaG91c2hpc2hhXCA7Civlho3lj5fmtbggPiBzYWlqdXNoaW5cIDsKK+aTjealreiyuyA+IHNvdWd5b3VoaVwgOwor5LqM5Lq65YmNID4gZnV0YXJpbWFlXCA7Civlr4zlo6vlo7ogPiBmdWppdHN1Ym9cIDsKK+eZvuiyqOW6lyA+IGh5YWtrYXRlblwgOwor5qiq5pat5bmVID4gb3VkYW5tYWt1XCA7CivkuozkurrliIYgPiBmdXRhcmlidW5cIDsKK+e0jeeojuiAhSA+IG5vdXplaXNoYVwgOwor6YW45oCn57SZID4gc2Fuc2Vpc2hpXCA7Civlt6blj7Pou7ggPiBzYXl1dWppa3VcIDsKK+WkqeawtOahtiA+IHRlbnN1aW9rZVwgOwor5YWs6ZaL54q2ID4ga291a2Fpam91XCA7CivosrTph5HlsZ4gPiBraWtpbnpva3VcIDsKK+azoue+heicnCA+IGhhcmFtaXRzdVwgOwor54up54yf5pyfID4gc2h1cnlvdWtpXCA7Civmlofms5Xmm7ggPiBidW5wb3VzaG9cIDsKK+WNoOmgmOS4iyA+IHNlbnJ5b3VrYVwgOwor54eD54S854KJID4gbmVuc2hvdXJvXCA7Civlj6TnrYblrrYgPiBrb2hpdHN1a2FcIDsKK+mYsuihm+W6gSA+IGJvdWVpY2hvdVwgOwor5aSn56Wt5Y+4ID4gZGFpc2Fpc2hpXCA7Civpm5vnvYznsp8gPiBoaW5hZ2VzaGlcIDsKK+WFqOWkqeWAmSA+IHplbnRlbmtvdVwgOwor6LaF55+t5rOiID4gY2hvdXRhbnBhXCA7CivmlL7lsITog70gPiBob3VzaGFub3VcIDsKK+WJjeenkeiAhSA+IHplbmthbW9ub1wgOwor6ZW36YeO55yMID4gbmFnYW5va2VuXCA7CivpnZLlpKflsIYgPiBhb2RhaXNob3VcIDsKK+efpeaBteeGsSA+IGNoaWVuZXRzdVwgOwor5YyF6KOF57SZID4gaG91c291c2hpXCA7CivkvJrlk6Hnq6AgPiBrYWlpbnNob3VcIDsKK+exs+eUo+WcsCA+IGJlaXNhbmNoaVwgOwor5YWr6KeS5b2iID4gaGFra2Fra2VpXCA7CivkupTlpKfmtLIgPiBnb2RhaXNodXVcIDsKK+aWsOWtpuacnyA+IHNoaW5nYWtraVwgOwor6YWN6Zu755ukID4gaGFpZGVuYmFuXCA7Civoi7HmloflraYgPiBlaWJ1bmdha3VcIDsKK+WtkOWuiOWUhCA+IGtvbW9yaXV0YVwgOwor5b6h5YWE5byfID4gZ29reW91ZGFpXCA7Civoo4HliKTmiYAgPiBzYWliYW5zaG9cIDsKK+WPgumZoumBuCA+IHNhbicnaW5zZW5cIDsKK+i7jeS6uumiqCA+IGd1bmppbmZ1dVwgOwor54Sh5b6X54K5ID4gbXV0b2t1dGVuXCA7Civoq5bnkIbnmoQgPiByb25yaXRla2lcIDsKK+WKg+acn+eahCA+IGtha2tpdGVraVwgOwor5LiJ55yB5aCCID4gc2Fuc2VpZG91XCA7CivomZrlvLHlhZAgPiBreW9qYWt1amlcIDsKK+W9k+S6i+WbvSA+IHRvdWppa29rdVwgOwor6KuW5LqJ6ICFID4gcm9uc291c2hhXCA7CivmlL7lsITnt5ogPiBob3VzaGFzZW5cIDsKK+W0h+aLneiAhSA+IHN1dWhhaXNoYVwgOwor5YGl5bq35rOVID4ga2Vua291aG91XCA7CivmgKrmlofmm7ggPiBrYWlidW5zaG9cIDsKK+mAruaNleattCA+IHRhaWhvcmVraVwgOwor562G6aCt6ICFID4gaGl0dG91c2hhXCA7Civkub7nlJ/lp5wgPiBrYW5zaG91Z2FcIDsKK+eUn+aui+iAhSA+IHNlaXphbnNoYVwgOwor5reh5rC06a2aID4gdGFuc3VpZ3lvXCA7CivotIjnrZTlk4EgPiB6b3V0b3VoaW5cIDsKK+S6pOaPm+aJiyA+IGtvdWthbnNodVwgOwor6JuN5YWJ5L2TID4ga2Vpa291dGFpXCA7CivmsLfngrnkuIsgPiBoeW91dGVua2FcIDsKK+iqmOaLkOeKryA+IHl1dWthaWhhblwgOwor54WO546J5a2QID4gaXJpdGFtYWdvXCA7CivoiIjkv6HmiYAgPiBrb3VzaGluam9cIDsKK+eUmOWRs+aWmSA+IGthbm1pcnlvdVwgOwor6Kmm6aiT57SZID4gc2hpa2Vuc2hpXCA7Civnho/okrjliaQgPiBrdW5qb3V6YWlcIDsKK+iCieilpuiioiA+IG5pa3VqdWJhblwgOwor55uj5a6I5Lq6ID4ga2Fuc2h1bmluXCA7CivlopflpKflj7cgPiB6b3VkYWlnb3VcIDsKK+a7kei1sOi8qiA+IGthc3NvdXJpblwgOwor5YaN5Ym16YCgID4gc2Fpc291em91XCA7Civopb/mtIvlj7IgPiBzZWl5b3VzaGlcIDsKK+aIuOexjeazlSA+IGtvc2VraWhvdVwgOwor6I2S54mp5bGLID4gYXJhbW9ub3lhXCA7CivkuK3opb/pg6ggPiBjaHV1c2VpYnVcIDsKK+iHquWLleeahCA+IGppZG91dGVraVwgOwor5YCf5a625Lq6ID4gc2hha2thbmluXCA7Civms5Xlrabpg6ggPiBob3VnYWt1YnVcIDsKK+i7jeizh+mHkSA+IGd1bnNoaWtpblwgOwor5paH5rOV5oCnID4gYnVucG91c2VpXCA7CivovrLlpKvnl4cgPiBub3VmdXNob3VcIDsKK+adkOaWmeiyuyA+IHphaXJ5b3VoaVwgOwor5YKs5raZ6YqDID4gc2FpcnVpanV1XCA7CivlpInmj5vlrZAgPiBoZW5rYW5zaGlcIDsKK+adkOacqOWxiyA+IHphaW1va3V5YVwgOwor6LKn56qu5YyWID4gaGlua3l1dWthXCA7Civml6nlkIjngrkgPiBoYXlhZ2F0ZW5cIDsKK+iCpea6gOaApyA+IGhpbWFuc2hvdVwgOwor6LuK6aas6LODID4gc2hhYmFjaGluXCA7Civnq5zpqI7lhbUgPiByeXV1a2loZWlcIDsKK+Wcn+WPsOefsyA+IGRvZGFpaXNoaVwgOwor5biw57SN55qEID4ga2lub3V0ZWtpXCA7CivoqabpqJPnrqEgPiBzaGlrZW5rYW5cIDsKK+eUt+WtkOmrmCA+IGRhbnNoaWtvdVwgOwor5aSn5Y+N5a++ID4gZGFpaGFudGFpXCA7CivpnZ7lm73msJEgPiBoaWtva3VtaW5cIDsKK+Wwj+ixhumxkiA+IGF6dWtpbWFzdVwgOwor6I6i6LGM6LGGID4gc2F5YWVuZG91XCA7CivkuKHmm7/mqZ8gPiByeW91Z2Fla2lcIDsKK+e2v+eBq+iWrCA+IG1lbmtheWFrdVwgOwor5Lq65rCR6LuNID4gamlubWluZ3VuXCA7CivmrKDli6TogIUgPiBrZWtraW5zaGFcIDsKK+Wwj+S9nOexsyA+IGtvc2FrdW1haVwgOwor5rOl5p2/5bKpID4gZGVpYmFuZ2FuXCA7Civmk6zpnanntJkgPiBnaWtha3VzaGlcIDsKK+iytOmHjeWTgSA+IGtpY2hvdWhpblwgOwor54Gr5bGx56SrID4ga2F6YW5yZWtpXCA7CivpoZTlhpnnnJ8gPiBrYW9qYXNoaW5cIDsKK+WFsea8lOiAhSA+IGt5b3VlbnNoYVwgOwor5pWR6K2354+tID4ga3l1dWdvaGFuXCA7Civlho3lvqrnkrAgPiBzYWlqdW5rYW5cIDsKK+iNu+axn+evgCA+IG9naWVidXNoaVwgOwor6ZuG5YWJ5ZmoID4gc2h1dWtvdWtpXCA7CivkuIDpg6jliIYgPiBpY2hpYnVidW5cIDsKK+ijheeUsui7iiA+IHNvdWtvdXNoYVwgOwor5paw5LiW57SAID4gc2hpbnNlaWtpXCA7Civoo4HliKTlrpggPiBzYWliYW5rYW5cIDsKK+WHuuWLpOaXpSA+IHNodWtraW5iaVwgOwor6YCB5L+h5qmfID4gc291c2hpbmtpXCA7Civpm5HlsYXlnLAgPiB6YWtreW9jaGlcIDsKK+iLseaVsOWbvSA+IGVpc3V1a29rdVwgOwor5L+d566h5paZID4gaG9rYW5yeW91XCA7CivljYrosrTnn7MgPiBoYW5raXNla2lcIDsKK+i7jeeUqOapnyA+IGd1bicneW91a2lcIDsKK+iZjuiQveesmyA+IG1vZ2FyaWJ1ZVwgOwor55Sf6YKE6ICFID4gc2Vpa2Fuc2hhXCA7Civmh4foq4fkvJogPiBrb25kYW5rYWlcIDsKK+acquWFrOihqCA+IG1pa291aHlvdVwgOwor6KW/5rSL5Lq6ID4gc2VpeW91amluXCA7CivnlLDoiI7ogIUgPiBpbmFrYW1vbm9cIDsKK+a2iOWMlua2siA+IHNob3VrYWVraVwgOwor5YGl5bq35pa5ID4ga2Vua291aG91XCA7CivnqbTlsYXkurogPiBrZWtreW9qaW5cIDsKK+WmqOalreWToSA+IGJvdWd5b3VpblwgOwor6aKo5ZGC5pW3ID4gZnVyb3NoaWtpXCA7CivkvZXmm5zml6UgPiBuYW4nJ3lvdWJpXCA7CivorabmiJLnt5ogPiBrZWlrYWlzZW5cIDsKK+S6pOaPm+WsoiA+IGtvdWthbmpvdVwgOwor5aSn6YGT6Iq4ID4gZGFpZG91Z2VpXCA7CivlgZzmraLnt5ogPiB0ZWlzaGlzZW5cIDsKK+WLieW8t+WutiA+IGJlbmt5b3VrYVwgOwor5rWq5ryr55qEID4gcm9tYW50ZWtpXCA7Civli6fkuJbnuJIgPiBrYW56ZXlvcmlcIDsKK+eruee0sOW3pSA+IHRha2V6YWlrdVwgOwor55Sj5Y215Y+jID4gc2FucmFua291XCA7CivmhJ/li5XoqZ4gPiBrYW5kb3VzaGlcIDsKK+awtOWcp+apnyA+IHN1aWF0c3VraVwgOwor6Z+z5qW956WtID4gb25nYWt1c2FpXCA7Civkurrmg4XmnKwgPiBuaW5qb3Vib25cIDsKK+eah+mciuauvyA+IGtvdXJlaWRlblwgOwor5L2/5ZG96ICFID4gc2hpbWVpc2hhXCA7Civku6PnlKjlk4EgPiBkYWl5b3VoaW5cIDsKK+iRieiPnOmhniA+IHlvdXNhaXJ1aVwgOwor5YaZ55yf5qmfID4gc2hhc2hpbmtpXCA7CivnlLfkvIrpgZQgPiBvdG9rb2RhdGVcIDsKK+WFteermee3miA+IGhlaXRhbnNlblwgOwor5biv6Zu75L2TID4gdGFpZGVudGFpXCA7CivmlofljJbnmoQgPiBidW5rYXRla2lcIDsKK+acqueZuuihqCA+IG1paGFwcHlvdVwgOwor5YWI5L2P5rCRID4gc2VuanV1bWluXCA7CivpgJTkuIrlm70gPiB0b2pvdWtva3VcIDsKK+WNiumfs+majiA+IGhhbicnb25rYWlcIDsKK+eZveacqOWxiyA+IHNoaXJva2l5YVwgOwor5LuV5qeY5pu4ID4gc2hpeW91c2hvXCA7CivmsJHkuovnmoQgPiBtaW5qaXRla2lcIDsKK+aIkOWxpOWcjyA+IHNlaXNvdWtlblwgOwor6JK45rCX5ZynID4gam91a2lhdHN1XCA7CivkuKHmm7/miYAgPiByeW91Z2Flam9cIDsKK+W+jOWNiuaIpiA+IGtvdWhhbnNlblwgOwor5bm95a+C5ZGzID4geXV1amFrdW1pXCA7CivluJ3njovlraYgPiB0ZWlvdWdha3VcIDsKK+iyr+awtOaxoCA+IGNob3N1aWNoaVwgOwor5paw5LiW55WMID4gc2hpbnNla2FpXCA7Civlkb3ku6Tms5UgPiBtZWlyZWlob3VcIDsKK+ePvuWDj+a2siA+IGdlbnpvdWVraVwgOwor6Kaz6Kan6LuKID4ga2FucmFuc2hhXCA7CivkvJrnpL7okawgPiBrYWlzaGFzb3VcIDsKK+emgemFkuazlSA+IGtpbnNodWhvdVwgOwor6ISz6Iac54KOID4gbm91bWFrdWVuXCA7CivkupTlpKflt54gPiBnb2RhaXNodXVcIDsKK+aWh+mDqOecgSA+IG1vbmJ1c2hvdVwgOwor6LuN5LqL6YCaID4gZ3Vuaml0c3V1XCA7CivohLPohavnmI0gPiBub3VzaHV5b3VcIDsKK+S4lueVjOS4gCA+IHNla2FpaWNoaVwgOwor5YaN5YiG6YWNID4gc2FpYnVucGFpXCA7CivmjpvluIPlm6MgPiBrYWtlYnV0b25cIDsKK+Wklua0i+iIuSA+IGdhaXlvdXNlblwgOwor57WE6IG35ZuzID4gc29zaG9rdXp1XCA7CivkuqTmj5vlk4EgPiBrb3VrYW5oaW5cIDsKK+eBq+mjn+mzpSA+IGhpa3VpZG9yaVwgOwor6LKv5rC05qe9ID4gY2hvc3Vpc291XCA7CivmtbfmsLTprZogPiBrYWlzdWlneW9cIDsKK+eyvumAsuaXpSA+IHNob3VqaW5iaVwgOwor5LiJ6Imy5peXID4gc2Fuc2hva2tpXCA7CivpgIPkuqHogIUgPiB0b3Vib3VzaGFcIDsKK+mBk+WFt+eusSA+IGRvdWd1YmFrb1wgOwor5Ye65bu35pelID4gc2h1dHRlaWJpXCA7CivnlLvlrabntJkgPiBnYWdha3VzaGlcIDsKK+iyr+iUteaJgCA+IGNob3pvdXNob1wgOwor5p2x5rW36YGTID4gdG91a2FpZG91XCA7CivkuqTmj5vlj7AgPiBrb3VrYW5kYWlcIDsKK+aIpuaZguS4rSA+IHNlbmppY2h1dVwgOwor5re35YiG5pWwID4ga29uYnVuc3V1XCA7CivnlJ/nn7PngbAgPiBzZWlzZWtrYWlcIDsKK+S4jeaknOadnyA+IGZ1a2Vuc29rdVwgOwor5bCP5p2+6I+cID4ga29tYXRzdW5hXCA7CivoiJ/lpKflt6UgPiBmdW5hZGFpa3VcIDsKK+i0iOWRiOiAhSA+IHpvdXRlaXNoYVwgOwor6aGe5qaC5b+1ID4gcnVpZ2FpbmVuXCA7Civku7vlpKnloIIgPiBuaW50ZW5kb3VcIDsKK+WNl+aWueeUoyA+IG5hbnBvdXNhblwgOwor57WQ57SN6YeRID4geXVpbm91a2luXCA7CivlpKrliIDnrYsgPiB0YWNoaXN1amlcIDsKK+eGn+Wtl+iokyA+IGp1a3VqaWt1blwgOwor5aOw5piO5pu4ID4gc2VpbWVpc2hvXCA7CivllY/poYzngrkgPiBtb25kYWl0ZW5cIDsKK+WIhuW3peWgtCA+IGJ1bmtvdWpvdVwgOwor5a6a5bm05Yi2ID4gdGVpbmVuc2VpXCA7CivlnLDlhYPntJkgPiBqaW1vdG9zaGlcIDsKK+mgkOiol+mHkSA+IHlvdGFrdWtpblwgOwor6Ziy56m656CyID4gYm91a3V1aG91XCA7CivpnZnlnKfmr5QgPiBzZWlhdHN1aGlcIDsKK+Wbnumhp+mMsiA+IGthaWtvcm9rdVwgOwor5Lih5pu/5bGLID4gcnlvdWdhZXlhXCA7CivkurrmsJfogIUgPiBuaW5raW1vbm9cIDsKK+S4jeiJr+WTgSA+IGZ1cnlvdWhpblwgOwor5bCP5L6/5omAID4gc2hvdWJlbmpvXCA7CivlvqrnkrDmgKcgPiBqdW5rYW5zZWlcIDsKK+WVhueUqOWMliA+IHNob3V5b3VrYVwgOwor5Lqk5o+b5YaGID4ga291a2FuJydlblwgOwor6Kmm6aiT5rOVID4gc2hpa2VuaG91XCA7CivlrablnJLnpa0gPiBnYWt1ZW5zYWlcIDsKK+aEn+atjuipniA+IGthbnRhbnNoaVwgOwor56ys5YWt5oSfID4gZGFpcm9ra2FuXCA7CivosqfmsJHooZcgPiBoaW5taW5nYWlcIDsKK+WRveS7pOabuCA+IG1laXJlaXNob1wgOwor5Y2K5bCO5L2TID4gaGFuZG91dGFpXCA7CivlhbXlmajlu6AgPiBoZWlraXNob3VcIDsKK+ijgeWIpOS4iiA+IHNhaWJhbmpvdVwgOwor5aOy5pil5ammID4gYmFpc2h1bnB1XCA7CivkuIvlhYvkuIogPiBnZWtva3Vqb3VcIDsKK+mFjembu+aJgCA+IGhhaWRlbnNob1wgOwor56S+5Lqk55WMID4gc2hha291a2FpXCA7CivlhKrli53ml5cgPiB5dXVzaG91a2lcIDsKK+aJi+WTgeW4qyA+IHRlamluYXNoaVwgOwor6auE6Iac54KOID4genVpbWFrdWVuXCA7Civpm6jmlK/luqYgPiBhbWFqaXRha3VcIDsKK+S/rumBk+mZoiA+IHNodXVkb3VpblwgOwor5rW36JuH5bqnID4gdW1paGViaXphXCA7Civlkb3ku6TmlocgPiBtZWlyZWlidW5cIDsKK+adsea0i+miqCA+IHRvdXlvdWZ1dVwgOwor5byf5oGv5a2QID4gb3RvbXVzdWtvXCA7CivkupTlpKflm70gPiBnb2RhaWtva3VcIDsKK+aOpemqqOWMuyA+IHNla2tvdHN1aVwgOwor5pyb6YGg6Y+hID4gYm91ZW5reW91XCA7CivmooXpm6jnqbogPiB0c3V5dXpvcmFcIDsKK+W3peWToeWvriA+IGtvdWlucnlvdVwgOwor54Sh6YGK55eFID4gbXV5dXVieW91XCA7Civlm73pmpvljJYgPiBrb2t1c2Fpa2FcIDsKK+mpmueVsOeahCA+IGt5b3VpdGVraVwgOwor6Zai5p2x5byBID4ga2FudG91YmVuXCA7CivopIflkIjoqp4gPiBmdWt1Z291Z29cIDsKK+W8mOa4iOS8miA+IGtvdXNhaWthaVwgOwor6Iez6L+R5by+ID4gc2hpa2luZGFuXCA7CivmnKzlubTluqYgPiBob24nJ25lbmRvXCA7CivmlZHorbfmiYAgPiBreXV1Z29zaG9cIDsKK+WRkeawl+iAhSA+IG5vbmtpbW9ub1wgOwor5bCP5L2c5qipID4ga29zYWt1a2VuXCA7Civku6PnkIbmr40gPiBkYWlyaWhhaGFcIDsKK+WIhueVjOe3miA+IGJ1bmthaXNlblwgOwor56uv5aKD5pyfID4gaGF6YWthaWtpXCA7CivliY3jgIXlm54gPiB6ZW56ZW5rYWlcIDsKK+iqnua6kOWtpiA+IGdvZ2VuZ2FrdVwgOwor5b+D6Zu75ZuzID4gc2hpbmRlbnp1XCA7CivlgaXlurflnLAgPiBrZW5rb3VjaGlcIDsKK+awj+WtkOacrSA+IHVqaWtvZnVkYVwgOwor6Ku45ZWP6aGMID4gc2hvbW9uZGFpXCA7Civlj6PllIfmnJ8gPiBrb3VzaGlua2lcIDsKK+Wwhuaji+ebpCA+IHNob3VnaWJhblwgOwor542F5a2Q5ZSQID4gc2hpc2hpdG91XCA7CivlubPkv6HlvpIgPiBoZWlzaGludG9cIDsKK+Wkp+awl+WcpyA+IHRhaWtpYXRzdVwgOwor5bCG6LuN5a62ID4gc2hvdWd1bmtlXCA7CivljYPku6PntJkgPiBjaGl5b2dhbWlcIDsKK+S4u+aIpuirliA+IHNodXNlbnJvblwgOwor5Yqj562J55SfID4gcmV0dG91c2VpXCA7CivmlrDlrZfkvZMgPiBzaGluaml0YWlcIDsKK+e0jeWTgeabuCA+IG5vdWhpbnNob1wgOwor55qH5aSq5a2QID4ga291dGFpc2hpXCA7CivpqJLmk77nvaogPiBzb3Vqb3V6YWlcIDsKK+WNiuWumOWgsSA+IGhhbmthbnBvdVwgOwor5ZCM5Ly06ICFID4gZG91aGFuc2hhXCA7CivmtbfpvKDmnb8gPiBuYW1ha29iYW5cIDsKK+WHhuWjq+WumCA+IGp1bnNoaWthblwgOwor5a6f6aiT6ICFID4gamlra2Vuc2hhXCA7Civku6PnkIbmpa0gPiBkYWlyaWd5b3VcIDsKK+S4gOasoeWFgyA+IGljaGlqaWdlblwgOwor55So55uK5qipID4geW91ZWtpa2VuXCA7CivkuIrohZXnrYsgPiBqb3V3YW5raW5cIDsKK+WPguaUv+aoqSA+IHNhbnNlaWtlblwgOwor5beh56S86ICFID4ganVucmVpc2hhXCA7Civlrp/pqJPnvqQgPiBqaWtrZW5ndW5cIDsKK+epuuaZr+awlyA+IGthcmFnZWlraVwgOwor5YaZ55yf5a62ID4gc2hhc2hpbmthXCA7Civou4rmpIXlrZAgPiBrdXJ1bWFpc3VcIDsKK+aPruavq+aWmSA+IGtpZ291cnlvdVwgOwor6K2m5ZGK6Z+zID4ga2Vpa29rdW9uXCA7CivmlZnmjojpmaMgPiBreW91anVqaW5cIDsKK+WIneS4g+aXpSA+IHNob25hbm9rYVwgOwor5a6J5b+D5oSfID4gYW5zaGlua2FuXCA7CivlpKflhaXpgZMgPiBvb255dXVkb3VcIDsKK+ekvuS8muaCqiA+IHNoYWthaWFrdVwgOwor5Li76KO95ZOBID4gc2h1c2VpaGluXCA7CivnhKHmsJflipsgPiBtdWtpcnlva3VcIDsKK+ekvuS8muaApyA+IHNoYWthaXNlaVwgOwor6ISx6ISC57a/ID4gZGFzc2hpbWVuXCA7CivmsJfosaHlj7AgPiBraXNob3VkYWlcIDsKK+WRveS7pOW9oiA+IG1laXJlaWtlaVwgOwor6KuW55CG5a2mID4gcm9ucmlnYWt1XCA7Civlrp/kvZPoq5YgPiBqaXR0YWlyb25cIDsKK+Wwj+S8mua0viA+IHNob3VrYWloYVwgOwor5ZCM5YCk5oCnID4gZG91Y2hpc2VpXCA7CivphbjmgKflsqkgPiBzYW5zZWlnYW5cIDsKK+S4i+i2s+eVqiA+IGdlc29rdWJhblwgOwor5pal5YCZ5YW1ID4gc2Vra291aGVpXCA7Civlpb3lvbHpn78gPiBrb3VlaWt5b3VcIDsKK+mCr+mEsuW4qyA+IGthbnRhbnNoaVwgOwor55Sf5YyW5a2mID4gc2Vpa2FnYWt1XCA7CivoqabkuZfou4ogPiBzaGlqb3VzaGFcIDsKK+ims+imp+iAhSA+IGthbnJhbnNoYVwgOwor5aWJ6LOA5bizID4gaG91Z2FjaG91XCA7CivlnKfliLbnmoQgPiBhc3NlaXRla2lcIDsKK+eCremFuOe0mSA+IHRhbnNhbnNoaVwgOwor5YaN5b6T5byfID4gc2FpanV1dGVpXCA7CivkvZnoqIjogIUgPiB5b2tlaW1vbm9cIDsKK+S4jeWvneeVqiA+IGZ1c2hpbmJhblwgOwor55CG5bGI5bGLID4gcmlrdXRzdXlhXCA7Civkv53nrqHkurogPiBob2thbicnbmluXCA7CivlhKroia/ppqwgPiB5dXVyeW91YmFcIDsKK+mBi+i8uOmHjyA+IHVuJyd5dXJ5b3VcIDsKK+WkquW5s+a0iyA+IHRhaWhlaXlvdVwgOwor6LKv6JS15ZOBID4gY2hvem91aGluXCA7CivljZjns5bpoZ4gPiB0YW50b3VydWlcIDsKK+iBmualveesrCA+IGp1cmFrdWRhaVwgOwor55Sf5Y2K5Y+vID4gbmFtYWhhbmthXCA7CivljZTorbDmiYAgPiBreW91Z2lzaG9cIDsKK+S7iuW5tOW6piA+IGtvbicnbmVuZG9cIDsKK+WHhuaVmeWToSA+IGp1bmt5b3VpblwgOwor56S+5Lya5bGkID4gc2hha2Fpc291XCA7CivlgaXlurfkvZMgPiBrZW5rb3V0YWlcIDsKK+aAneaYpeacnyA+IHNoaXNodW5raVwgOwor5pS+5bCE5oCnID4gaG91c2hhc2VpXCA7CivomavlqpLoirEgPiBjaHV1YmFpa2FcIDsKK+WGmeecn+WZqCA+IHNoYXNoaW5raVwgOwor5YaF5ZCR5oCnID4gbmFpa291c2VpXCA7CivmlLnlrpfogIUgPiBrYWlzb3VzaGFcIDsKK+WEquW+heWIuCA+IHl1dXRhaWtlblwgOwor5Zub5Lq657WEID4geW9uaW5ndW1pXCA7CivpgIDlrLDnmoQgPiB0YWllaXRla2lcIDsKK+WWhOW+jOetliA+IHplbmdvc2FrdVwgOwor5Yqp5omL5bitID4gam9zaHVzZWtpXCA7CivngavmnKjph5EgPiBrYW1va3VraW5cIDsKK+awj+WtkOW4syA+IHVqaWtvY2hvdVwgOwor55qH5aSq5ZCOID4ga291dGFpZ291XCA7CivnibnmlLvpmoogPiB0b2trb3V0YWlcIDsKK+mBuuiogOiAhSA+IHl1aWdvbnNoYVwgOwor6YO35Zyf5Y+yID4ga3lvdWRvc2hpXCA7Civku5jlsZ7moKEgPiBmdXpva3Vrb3VcIDsKK+e1seayu+iAhSA+IHRvdWNoaXNoYVwgOwor5ZCN5Lq66Iq4ID4gbWVpamluZ2VpXCA7Civlh4Tmloflj6UgPiBzdWdvbW9ua3VcIDsKK+aIpueBveiAhSA+IHNlbnNhaXNoYVwgOwor6Kmm5L2c5qmfID4gc2hpc2FrdWtpXCA7Civpu4Tmnq/ojLYgPiBraWdhcmFjaGFcIDsKK+iDg+iFuOiWrCA+IGljaG91eWFrdVwgOwor6Zm96Zu75a2QID4geW91ZGVuc2hpXCA7Civmlofmrormp5ggPiBtb25qdXNhbWFcIDsKK+S7mOWxnuabuCA+IGZ1em9rdXNob1wgOwor6KiO6KuW6ICFID4gdG91cm9uc2hhXCA7CivlpJrmsZfnl4cgPiB0YWthbnNob3VcIDsKK+aKleaJi+mZoyA+IHRvdXNodWppblwgOwor5Lit57aZ5omAID4gY2h1dWtlaWpvXCA7CivmoLnmi6DlnLAgPiBrb25reW9jaGlcIDsKK+azleS6uueojiA+IGhvdWppbnplaVwgOwor5Zyw5YWD5rCRID4gamltb3RvbWluXCA7CivlubTmnJ/ogIUgPiBuZW5raW1vbm9cIDsKK+mfs+alveaApyA+IG9uZ2FrdXNlaVwgOwor6KKr5ZGK5Lq6ID4gaGlrb2t1bmluXCA7CivmlofljJbluoEgPiBidW5rYWNob3VcIDsKK+WBj+WQkeadvyA+IGhlbmtvdWJhblwgOwor6IOM5Lu7572qID4gaGFpbmluemFpXCA7Civlgo3oprPogIUgPiBib3VrYW5zaGFcIDsKK+aYn+eKtuS9kyA+IHNlaWpvdXRhaVwgOwor5raI5YyW5YmkID4gc2hvdWthemFpXCA7CivmrKflt57niYggPiBvdXNodXViYW5cIDsKK+Wwj+ixhueypSA+IGF6dWtpZ2F5dVwgOwor57O75Zuz5a2mID4ga2VpenVnYWt1XCA7CivoqabpqJPlrpggPiBzaGlrZW5rYW5cIDsKK+efs+aloOiKsSA+IHNoYWt1bmFnZVwgOwor5pu457Ch566LID4gc2hva2Fuc2VuXCA7Civlho3phY3liIYgPiBzYWloYWlidW5cIDsKK+WNlOitsOWumCA+IGt5b3VnaWthblwgOwor5ZCM6aGe6aCFID4gZG91cnVpa291XCA7Civoh6rou6Lou7ggPiBqaXRlbmppa3VcIDsKK+S4iueUsuadvyA+IGpvdWthbnBhblwgOwor5YWo5Zyw5pa5ID4gemVuY2hpaG91XCA7CivkvJrnpL7ms5UgPiBrYWlzaGFob3VcIDsKK+WlieS7leWTgSA+IGhvdXNoaWhpblwgOwor5oiq5ouz6YGTID4gc2Vra2VuZG91XCA7Civku5XoiJ7lsYsgPiBzaGltb3RheWFcIDsKK+aKmOiht+ahiCA+IHNldGNodXVhblwgOwor6Iiq56m66ZqKID4ga291a3V1dGFpXCA7Civonabon4flj6MgPiBnYW1hZ3VjaGlcIDsKK+emgeatouazlSA+IGtpbnNoaWhvdVwgOwor6YGT5YW35pa5ID4gZG91Z3VrYXRhXCA7Civml6bpgqPoirggPiBkYW4nJ25hZ2VpXCA7CivmibbppIrmlpkgPiBmdXlvdXJ5b3VcIDsKK+S4jeS/oeW/gyA+IGZ1c2hpbmppblwgOwor5bmz5a6J5pydID4gaGVpYW5jaG91XCA7CivlhoXph47luK0gPiBuYWl5YXNla2lcIDsKK+WboOaenOW+iyA+IGluZ2FyaXRzdVwgOwor6Lu95ryU5YqHID4ga2VpZW5nZWtpXCA7Civmnb/ph5Hlt6UgPiBiYW5raW5rb3VcIDsKK+WumuS+oeihqCA+IHRlaWthaHlvdVwgOwor56+k5b+X5a62ID4gdG9rdXNoaWthXCA7CivoqabpqJPloLQgPiBzaGlrZW5qb3VcIDsKK+aXheihjOiAhSA+IHJ5b2tvdXNoYVwgOwor5q2v6b2m54KOID4gc2hpZ2luJydlblwgOwor6Ju45Z2K5Li7ID4gdGFrb2JvdXp1XCA7Civlj4LmlL/lrpggPiBzYW5zZWlrYW5cIDsKK+i7jeS6i+eahCA+IGd1bmppdGVraVwgOwor5Y+k6Yqt5a2mID4ga29zZW5nYWt1XCA7Civou43lrpjmhrIgPiBndW5rYW5rZW5cIDsKK+mWouaVsOirliA+IGthbnN1dXJvblwgOwor5rK755mC6LK7ID4gY2hpcnlvdWhpXCA7Civmnb/ph5HlsYsgPiBiYW5raW4nJ3lhXCA7Civmk43ou4rloLQgPiBzb3VzaGFqb3VcIDsKK+aKleiejeizhyA+IHRvdXl1dXNoaVwgOwor6Z2p5ZG95q2MID4ga2FrdW1laWthXCA7CivnpL7kuqTmgKcgPiBzaGFrb3VzZWlcIDsKK+aTrOeIhuW8viA+IGdpYmFrdWRhblwgOwor56u56Jy76JuJID4gdGFrZXRvbmJvXCA7CivotoXlhZrmtL4gPiBjaG91dG91aGFcIDsKK+WVj+mhjOWkliA+IG1vbmRhaWdhaVwgOwor5LiA6Iis55qEID4gaXBwYW50ZWtpXCA7Civos4fmnKzph5EgPiBzaGlob25raW5cIDsKK+eUt+WtkOeUqCA+IGRhbnNoaXlvdVwgOwor5a++55Sf6JGJID4gdGFpc2VpeW91XCA7CivnpL7kvJrlhZogPiBzaGFrYWl0b3VcIDsKK+WOreS4lueahCA+IGVuc2VpdGVraVwgOwor6KiT57e055SfID4ga3VucmVuc2VpXCA7CivotIjlkYjmnKwgPiB6b3V0ZWlib25cIDsKK+WkoumBiueXhSA+IG11eXV1YnlvdVwgOwor5a625peP5rOVID4ga2F6b2t1aG91XCA7CivkurrmsJfmoKogPiBuaW5raWthYnVcIDsKK+iqreW+jOaEnyA+IGRva3Vnb2thblwgOwor5Y2Y57Sw6IOeID4gdGFuc2FpYm91XCA7Civps7Tnpr3poZ4gPiBtZWlraW5ydWlcIDsKK+WGhemDqOeahCA+IG5haWJ1dGVraVwgOwor57e05YW15aC0ID4gcmVucGVpam91XCA7CivlpKfliY3mj5AgPiBkYWl6ZW50ZWlcIDsKK+WGjeW+k+WFhCA+IHNhaWp1dWtlaVwgOwor5Y+v5YuV5qmLID4ga2Fkb3VreW91XCA7CivnlLvmnJ/nmoQgPiBrYWtraXRla2lcIDsKK+mfs+alveWggiA+IG9uZ2FrdWRvdVwgOwor6I2S6Zqg5YWDID4gc2F5YWluZ2VuXCA7CivmtJfnpLzlkI0gPiBzZW5yZWltZWlcIDsKK+ePvualreWToSA+IGdlbmd5b3VpblwgOwor5LiA5bel5aSrID4gaGl0b2t1ZnV1XCA7Civohp3lsI/lg6cgPiBoaXpha296b3VcIDsKK+S9nOipnuWutiA+IHNha3VzaGlrYVwgOwor5L2c54K655qEID4gc2FrdWl0ZWtpXCA7CivlsI/lroflrpkgPiBzaG91dWNodXVcIDsKK+miqOawtOWusyA+IGZ1dXN1aWdhaVwgOwor5Y2Y5pWw5b2iID4gdGFuc3V1a2VpXCA7CivmsLTmurbmtrIgPiBzdWl5b3Vla2lcIDsKK+Wkp+i7iui8qiA+IGRhaXNoYXJpblwgOwor5pS55a6a54mIID4ga2FpdGVpaGFuXCA7CivnpL7kvJrkurogPiBzaGFrYWlqaW5cIDsKK+aCquW9semfvyA+IGFrdWVpa3lvdVwgOwor6KW/6YOo5YqHID4gc2VpYnVnZWtpXCA7Civpm5HosqjllYYgPiB6YWtrYXNob3VcIDsKK+WKo+etieaEnyA+IHJldHRvdWthblwgOwor6YCP5piO5oCnID4gdG91bWVpc2VpXCA7Civoi6XlpKvlqaYgPiB3YWthZnV1ZnVcIDsKK+ePvuS7o+ipqSA+IGdlbmRhaXNoaVwgOwor6Zmw6Zm96YGTID4gb25teW91ZG91XCA7CivkvJHmhqnmiYAgPiBreXV1a2Vpam9cIDsKK+mFjee1puaJgCA+IGhhaWt5dXVqb1wgOwor6KOF6Lqr5YW3ID4gc291c2hpbmd1XCA7CivnhKHmrKDluK0gPiBtdWtlc3Nla2lcIDsKK+iHquWItuW/gyA+IGppc2Vpc2hpblwgOwor5Ymv5L2c55SoID4gZnVrdXNheW91XCA7Civlho3pgbjmjJkgPiBzYWlzZW5reW9cIDsKK+maoOWMv+iAhSA+IGludG9rdXNoYVwgOwor5ZCM5Lq656iuID4gZG91amluc2h1XCA7CivpgYvpgIHmpa0gPiB1bnNvdWd5b3VcIDsKK+WGheWLmeecgSA+IG5haW11c2hvdVwgOwor54Kt6YW45rC0ID4gdGFuc2Fuc3VpXCA7Civli6TnjovlrrYgPiBraW4nJ25vdWthXCA7CivooZvnlJ/nmoQgPiBlaXNlaXRla2lcIDsKK+ertuaKgOiAhSA+IGt5b3VnaXNoYVwgOwor5YaN55m66KGMID4gc2FpaGFra291XCA7CivpgbroqIDnirYgPiB5dWlnb25qb3VcIDsKK+eCueecvOawtCA+IHRlbmdhbnN1aVwgOwor6Lu95ZCI6YeRID4ga2VpZ291a2luXCA7CivkuIDnmbrlsYsgPiBpcHBhdHN1eWFcIDsKK+WFqOijveWTgSA+IHplbnNlaWhpblwgOwor5b+c5Y+s6ICFID4gb3VzaG91c2hhXCA7Civlj6TljbDntJkgPiBmdXJ1aW5zaGlcIDsKK+izh+acrOiyoSA+IHNoaWhvbnphaVwgOwor5Zue6aGn55qEID4ga2Fpa290ZWtpXCA7CivkuozopqrnrYkgPiBuaXNoaW50b3VcIDsKK+S6pOaIpuaoqSA+IGtvdXNlbmtlblwgOwor5bqD5aCx6KqMID4ga291aG91c2hpXCA7CivkvovlubTnpa0gPiByZWluZW5zYWlcIDsKK+S6iOmYsuiWrCA+IHlvYm91eWFrdVwgOwor5ZKM5aOw5a2mID4gd2FzZWlnYWt1XCA7Civpn7Pmpb3lj7IgPiBvbmdha3VzaGlcIDsKK+iQjue4ruiFjiA+IGlzaHVrdWppblwgOwor55uX6IG05ZmoID4gdG91Y2hvdWtpXCA7CivkuojntITph5EgPiB5b3lha3VraW5cIDsKK+aYpeWgtOaJgCA+IGhhcnViYXNob1wgOwor56ef5bq46Kq/ID4gc295b3VjaG91XCA7Civljp/lrZDoq5YgPiBnZW5zaGlyb25cIDsKK+eEoeapn+eJqSA+IG11a2lidXRzdVwgOwor5rG66K2w5qGIID4ga2V0c3VnaWFuXCA7CivlibXkvZzlrrYgPiBzb3VzYWt1a2FcIDsKK+eIm+eGn+acnyA+IHJhbmp1a3VraVwgOwor5Lit6ZaT5rS+ID4gY2h1dWthbmhhXCA7Civph4znqIvmqJkgPiByaXRlaWh5b3VcIDsKK+izh+acrOirliA+IHNoaWhvbnJvblwgOwor5LuK5qeY5q2MID4gaW1heW91dXRhXCA7CivkvJrmtKXloZcgPiBhaWR6dW51cmlcIDsKK+S4uOWdiuS4uyA+IG1hcnVib3V6dVwgOwor56e75qSN5oCnID4gaXNob2t1c2VpXCA7CivliY3lvoznrZYgPiB6ZW5nb3Nha3VcIDsKK+WIpeWkqeWcsCA+IGJldHRlbmNoaVwgOwor5Y2U6K2w5LyaID4ga3lvdWdpa2FpXCA7CivpmLLnqbrlo5UgPiBib3VrdXVnb3VcIDsKK+mBi+mAgeaWmSA+IHVuc291cnlvdVwgOwor5bm96ZyK6Ii5ID4geXV1cmVpc2VuXCA7CivkvK/lgpnnt5ogPiBoYWt1YmlzZW5cIDsKK+iDg+iFuOeXhSA+IGljaG91YnlvdVwgOwor5ZGK56S65p2/ID4ga29rdWppYmFuXCA7CivlsI/kvZzkurogPiBrb3Nha3VuaW5cIDsKK+mboumWk+etliA+IHJpa2Fuc2FrdVwgOwor5rCR5pWw6KiYID4gbWluc3V1a2lcIDsKK+mJhOegsuW6pyA+IHRlcHBvdXphXCA7CivmlofljJbkurogPiBidW5rYWppblwgOwor5pyo5bel5omAID4gbW9ra291am9cIDsKK+S4gOiIrOazlSA+IGlwcGFuaG91XCA7CivlirTli5nogIUgPiByb3VtdXNoYVwgOwor5paH5bqr5pysID4gYnVua29ib25cIDsKK+S7o+eQhuS6uiA+IGRhaXJpbmluXCA7CivmtbfmsLTnnYAgPiBrYWlzdWlnaVwgOwor6Ieq5bex5rWBID4gamlrb3J5dXVcIDsKK+S4geWvp+iqniA+IHRlaW5laWdvXCA7Civpn7Pmpb3kvJogPiBvbmdha2thaVwgOwor5ZCM6IOe5oSbID4gZG91aG91YWlcIDsKK+avm+WUkOS6uiA+IGtldG91amluXCA7CivmsJHkuovkuIogPiBtaW5qaWpvdVwgOwor5reh5b2p55S7ID4gdGFuc2FpZ2FcIDsKK+acn+W+heWApCA+IGtpdGFpY2hpXCA7Civlhajoo7jkvZMgPiB6ZW5yYXRhaVwgOwor56uL5L2T5rS+ID4gcml0dGFpaGFcIDsKK+itt+mAgeiIuSA+IGdvc291c2VuXCA7Civph47om67kurogPiB5YWJhbmppblwgOwor5aWz5oCn6LuNID4gam9zZWlndW5cIDsKK+WQjOi2o+WRsyA+IGRvdXNodW1pXCA7Civlj6/li5XmgKcgPiBrYWRvdXNlaVwgOwor5LiN6aSK55SfID4gZnV5b3Vqb3VcIDsKK+mjveWSjOeCuSA+IGhvdXdhdGVuXCA7Civml6LlvoDnl4cgPiBraW91c2hvdVwgOwor5LiA6Ie054K5ID4gaXRjaGl0ZW5cIDsKK+ethuiomOiAhSA+IGhpa2tpc2hhXCA7CivpgIHpoqjmqZ8gPiBzb3VmdXVraVwgOwor5aer5b6h5a2QID4gaGltZW1pa29cIDsKK+aJi+mFjeabuCA+IHRlaGFpc2hvXCA7CivohLPnj4rnkZogPiBub3VzYW5nb1wgOwor5LiK5bGk5ZyfID4gam91c291ZG9cIDsKK+S6iOe0hOiqniA+IHlveWFrdWdvXCA7Civmsrnmp73oiLkgPiB5dXNvdXNlblwgOwor5LiA5a+46KaLID4gY2hvdHRvbWlcIDsKK+S6iOmYsue3miA+IHlvYm91c2VuXCA7Civli5jlrprml6UgPiBrYW5qb3ViaVwgOwor5YaF5biR6YeRID4gbmFpZG9raW5cIDsKK+S8nemAgei3ryA+IGRlbnNvdXJvXCA7CivpioDntLDlt6UgPiBnaW56YWlrdVwgOwor5Lq655u46KaLID4gbmluc291bWlcIDsKK+miqOWIuueUuyA+IGZ1dXNoaWdhXCA7CivljYjppJDkvJogPiBnb3NhbmthaVwgOwor54Sh5qyg5YukID4gbXVrZWtraW5cIDsKK+avlOmHjeioiCA+IGhpanV1a2VpXCA7CivpgYvpgIHlupcgPiB1bnNvdXRlblwgOwor5pON5L2c55ukID4gc291c2FiYW5cIDsKK+WcqOW6q+WTgSA+IHphaWtvaGluXCA7CivmsJHkuLvljJYgPiBtaW5zaHVrYVwgOwor5bu25rue6YeRID4gZW50YWlraW5cIDsKK+WUkOegtOmiqCA+IGthcmFoYWZ1XCA7Civoh6rlhazmsJEgPiBqaWtvdW1pblwgOwor6LOi5aSr5Lq6ID4ga2VucHVqaW5cIDsKK+mBi+i7ouiAhSA+IHVudGVuc2hhXCA7CivkuI3moLzlpb0gPiBidWtha2tvdVwgOwor5YKs5rer5YmkID4gc2FpaW56YWlcIDsKK+aghOmkiuefrSA+IGVpeW91dGFuXCA7CivljLvlrabnlYwgPiBpZ2FrdWthaVwgOwor54Sh5bi45oSfID4gbXVqb3VrYW5cIDsKK+iDjOagvOWlvSA+IHNla2Fra291XCA7CivlsbHmn7vlrZAgPiBzYW56YXNoaVwgOwor5Yy75a2m55SfID4gaWdha3VzZWlcIDsKK+mWi+alreWMuyA+IGthaWd5b3VpXCA7Civkvr/ooaPpmoogPiBiZW4nJ2l0YWlcIDsKK+W5ueS6i+S8miA+IGthbmppa2FpXCA7CivlpJrljp/lrZAgPiB0YWdlbnNoaVwgOwor5Y2B5a2X5b2iID4ganV1amlrZWlcIDsKK+WklumHjuaJiyA+IGdhaXlhc2h1XCA7CivlgaXog4PpjKAgPiBrZW4nJ2lqb3VcIDsKK+mWouilv+mmrCA+IGthbnNhaWJhXCA7CivmjIfnpLroqZ4gPiBzaGlqaXNoaVwgOwor5piO5pel6JGJID4gYXNoaXRhYmFcIDsKK+efrei3nemboiA+IHRhbmt5b3JpXCA7CivkuIDou5LlsYsgPiBpa2tlbicneWFcIDsKK+iKuOWCmee3miA+IGdlaWJpc2VuXCA7CivpmaPlpKrpvJMgPiBqaW5kYWlrb1wgOwor55yf5Yas5pelID4gbWFmdXl1YmlcIDsKK+Wbm+Wto+WgsSA+IHNoaWtpaG91XCA7CivkuIDou5LlrrYgPiBpa2tlbicneWFcIDsKK+e5geiPr+ihlyA+IGhhbmthZ2FpXCA7CivoqJPnt7TmiYAgPiBrdW5yZW5qb1wgOwor5rW35rC05ripID4ga2Fpc3Vpb25cIDsKK+eti+mbu+WbsyA+IGtpbmRlbnp1XCA7Civms4zlsL/lub4gPiBoaW55b3VraVwgOwor5LiN5a6J5b+DID4gZnVhbnNoaW5cIDsKK+ioquWVj+edgCA+IGhvdW1vbmdpXCA7CivkvJrnpL7lk6EgPiBrYWlzaGFpblwgOwor5rOV546L5qipID4gaG91b3VrZW5cIDsKK+S4jeWwjuS9kyA+IGZ1ZG91dGFpXCA7CivljZjoqablkIggPiB0YW5zaGlhaVwgOwor5YaZ55Sf55S7ID4gc2hhc2VpZ2FcIDsKK+euoeeQhuS6uiA+IGthbnJpbmluXCA7CivkuIDlrrboqIAgPiBpa2thZ290b1wgOwor5ZCM5pyf55SfID4gZG91a2lzZWlcIDsKK+S4geWumuimjyA+IHRlaWpvdWdpXCA7CivlrojlgpnpmoogPiBzaHViaXRhaVwgOwor5L215ZCI572qID4gaGVpZ296YWlcIDsKK+awl+eEoeeyviA+IGtpYnVzaG91XCA7CivkuInmnprnm64gPiBzYW5tYWltZVwgOwor5omL6YWN5birID4gdGVoYWlzaGlcIDsKK+eEoeiHquimmiA+IG11amlrYWt1XCA7Civngavkuovms6UgPiBrYWppZG9yb1wgOwor5Lq65bel6KqeID4gamlua291Z29cIDsKK+aXouW+gOattCA+IGtpb3VyZWtpXCA7CivkuIDoiKzmgKcgPiBpcHBhbnNlaVwgOwor5bm05pyI5pelID4gbmVuZ2FwcGlcIDsKK+WkieaIkOWZqCA+IGhlbnNlaWtpXCA7CivmnKrkv6HogIUgPiBtaXNoaW5qYVwgOwor5LiN5qGI5YaFID4gZnVhbicnbmFpXCA7Civoh6rmo4TphZIgPiB5YWtlemFrZVwgOwor5aGR5by+5oCnID4gc29kYW5zZWlcIDsKK+atpuWZqOWAiSA+IGJ1a2lndXJhXCA7CivogbTpn7PlmaggPiBjaG91b25raVwgOwor5bmz5Luu5ZCNID4gaGlyYWdhbmFcIDsKK+aEn+efpeWZqCA+IGthbmNoaWtpXCA7CivliY3ljYrmnJ8gPiB6ZW5wYW5raVwgOwor56m66KuW5a62ID4ga3V1cm9ua2FcIDsKK+i+sumWkeacnyA+IG5vdWthbmtpXCA7CivkuI3os5vmiJAgPiBmdXNhbnNlaVwgOwor6aSK6baP5a62ID4geW91a2Vpa2FcIDsKK+WNgeS6jOaUryA+IGp1dW5pc2hpXCA7Civmp4vmiJDmr5QgPiBrb3VzZWloaVwgOwor5ZCR5pel6JG1ID4gaGltYXdhcmlcIDsKK+apn+alreWutiA+IGtpZ3lvdWthXCA7CivmsLTmu7jkvJ0gPiBzdWlrb2RlblwgOwor5b6h5ayi5qeYID4gb2pvdXNhbWFcIDsKK+iHqOW6iuWMuyA+IHJpbnNob3VpXCA7CivmoITppIrmupAgPiBlaXlvdWdlblwgOwor5aSa5bm06I2JID4gdGFuZW5zb3VcIDsKK+iNt+WOhOS7iyA+IG5peWFra2FpXCA7CivlirHno4HmkI0gPiByZWlqaXNvblwgOwor5a6J5YWo55OjID4gYW56ZW5iZW5cIDsKK+mHjemFuOe0oCA+IGp1dXNhbnNvXCA7CivkuozloYHmiYsgPiBuaXJ1aXNodVwgOwor5pyo5bel5YW3ID4gbW9ra291Z3VcIDsKK+eCueecvOWZqCA+IHRlbmdhbmtpXCA7CivojqvlpKflsI8gPiBtZXJpeWFzdVwgOwor6KO96Yu85omAID4gc2Vpa291am9cIDsKK+maoOiUveWtkCA+IGlucGVpc2hpXCA7Civli5jlrprloLQgPiBrYW5qb3ViYVwgOwor57695Zuj5omHID4gaGF1Y2hpd2FcIDsKK+egtOaIkuWDpyA+IGhha2Fpc291XCA7CivngKzmiLjniakgPiBzZXRvbW9ub1wgOwor5aSn6Iux5patID4gZGFpZWlkYW5cIDsKK+azjOWwv+WZqCA+IGhpbnlvdWtpXCA7CivlhYjorbDmqKkgPiBzZW5naWtlblwgOwor5Y+N5oqX5pyfID4gaGFua291a2lcIDsKK+acrOS8muitsCA+IGhvbmthaWdpXCA7Civoi7HnsbPkurogPiBlaWJlaWppblwgOwor5L2O6aCG5L2NID4gdGVpanVuJydpXCA7CivkuI3ogIHms4kgPiBmdXJvdXNlblwgOwor5ZCN5a6b5Lq6ID4gbmFhdGVuaW5cIDsKK+iHqueUseipqSA+IGppeXV1c2hpXCA7CivmhI/lv5fnmoQgPiBpc2hpdGVraVwgOwor5oim6ZeY5ZOhID4gc2VudG91aW5cIDsKK+WOn+eUu+WDjyA+IGdlbmdhem91XCA7CivlpKfohb/pg6ggPiBkYWl0YWlidVwgOwor5ruL6LOA55yMID4gc2hpZ2FrZW5cIDsKK+mHjeawtOe0oCA+IGp1dXN1aXNvXCA7CivkurrpgKDmuZYgPiBqaW56b3Vrb1wgOwor6KuL6LKg5birID4gdWtlb2lzaGlcIDsKK+awtOa6luWZqCA+IHN1aWp1bmtpXCA7CivmvKvnlLvmnKwgPiBtYW5nYWhvblwgOwor5LqS5o+b5oCnID4gZ29rYW5zZWlcIDsKK+eorueoruebuCA+IHNodWp1c291XCA7CivkuojpmLLms5UgPiB5b2JvdWhvdVwgOwor5a6J5YWo54GvID4gYW56ZW50b3VcIDsKK+mBi+mAgeS6uiA+IHVuc291bmluXCA7CivkuIrpppblsL4gPiBqb3VzaHViaVwgOwor5LuP6IiO5YipID4gYnVzc2hhcmlcIDsKK+iIh+WkquiAhSA+IHlvdGFtb25vXCA7CivmuoDlpKnkuIsgPiBtYW50ZW5rYVwgOwor5L6h5qC85beuID4ga2FrYWt1c2FcIDsKK+eEoeiKseaenCA+IGljaGlqaWt1XCA7CivkuI3kurrmg4UgPiBmdW5pbmpvdVwgOwor5Zyf5bu65bGLID4gZG9rZW4nJ3lhXCA7Civpga7mlq3mqZ8gPiBzaGFkYW5raVwgOwor5Lmx5p2t5q2vID4gcmFuZ3VpYmFcIDsKK+idi+e0sOW3pSA+IHJvdXphaWt1XCA7Civns5zniJvmgKcgPiBiaXJhbnNlaVwgOwor6LK05YWs5a2QID4ga2lrb3VzaGlcIDsKK+W7ieS+oeeJiCA+IHJlbmthYmFuXCA7Civljp/lrZDngokgPiBnZW5zaGlyb1wgOwor6Lui5o+b54KJID4gdGVua2Fucm9cIDsKK+m7juaYjuacnyA+IHJlaW1laWtpXCA7Civoj5bokrLmua8gPiBzaG91YnV5dVwgOwor54Sh6aeE6aqoID4gbXVkYWJvbmVcIDsKK+mhnuS8vOWTgSA+IHJ1aWppaGluXCA7Civpo5vooYzpmoogPiBoaWtvdXRhaVwgOwor6YeR6bOz6IqxID4ga2lucG91Z2VcIDsKK+m7kumbsuavjSA+IGt1cm91bm1vXCA7Civnm7jmiYvmlrkgPiBhaXRlZ2F0YVwgOwor5LiN5a6M5YWoID4gZnVrYW56ZW5cIDsKK+elluWbveaEmyA+IHNva29rdWFpXCA7Civli5/pm4bosrsgPiBib3NodXVoaVwgOwor55Sf55Sj6LK7ID4gc2Vpc2FuaGlcIDsKK+e1seWQiOWMliA+IHRvdWdvdWthXCA7Civml4XooYzlrrYgPiByeW9rb3VrYVwgOwor56S+5aSW56eYID4gc2hhZ2FpaGlcIDsKK+W+k+S+oeeojiA+IGp1dWthemVpXCA7Civkvb/lvpLmm7ggPiBzaGl0b3Nob1wgOwor5a+d5YyW57KnID4gbmVnZXNob3VcIDsKK+WJteS4luacnyA+IHNvdXNlaWtpXCA7Civph5Hnm67pr5sgPiBraW5tZWRhaVwgOwor5LiK5LiL57eaID4gam91Z2VzZW5cIDsKK+eQhuS6i+WbvSA+IHJpamlrb2t1XCA7CivmsLTmupblhIAgPiBzdWlqdW5naVwgOwor5YaN5L+d6Zm6ID4gc2FpaG9rZW5cIDsKK+S4i+mmrOWFiCA+IGdlYmFzYWtpXCA7Civms4nosqjntJkgPiBzZW5rYXNoaVwgOwor5b6h5Luk5ayiID4gZ29yZWlqb3VcIDsKK+mbu+awl+ihlyA+IGRlbmtpZ2FpXCA7Civou43mlL/pg6ggPiBndW5zZWlidVwgOwor5b6h6aGM55uuID4gb2RhaW1va3VcIDsKK+eEoeS/neiovCA+IG11aG9zaG91XCA7Civlj6/liIbmgKcgPiBrYWJ1bnNlaVwgOwor5Lqc6Ymb6YmEID4gYWVudGV0c3VcIDsKK+WLleWuieWumiA+IGRvdWFudGVpXCA7CivliJHkuovkuIogPiBrZWlqaWpvdVwgOwor5aWz5oCn55SoID4gam9zZWl5b3VcIDsKK+S5vueHpeeCiSA+IGthbnNvdXJvXCA7CivogrLlhZDms5UgPiBpa3VqaWhvdVwgOwor5oSb6bOl5a62ID4gYWljaG91a2FcIDsKK+acrOiInuWPsCA+IGhvbmJ1dGFpXCA7CivlgIvkurrmgKcgPiBrb2ppbnNlaVwgOwor5L6d5a2Y55eHID4gaXpvbnNob3VcIDsKK+aCquaAp+W6piA+IGFrdXNlaWRvXCA7Civnvo7nlLflrZAgPiBiaW5hbnNoaVwgOwor6Zu75rOi5rOVID4gZGVucGFob3VcIDsKK+i7jeS6i+S4iiA+IGd1bmppam91XCA7Civng4/nioDop5IgPiB1c2Fpa2FrdVwgOwor5YGP5b6u5YiGID4gaGVuYmlidW5cIDsKK+e0oOWvkuiypyA+IHN1a2FucGluXCA7CivosZrlsI/lsYsgPiBidXRhZ295YVwgOwor5bu25rue56iOID4gZW50YWl6ZWlcIDsKK+WGpeeOi+aYnyA+IG1laW91c2VpXCA7Civlhobnm6TnirYgPiBlbmJhbmpvdVwgOwor6JS15pu45a62ID4gem91c2hva2FcIDsKK+mMsumfs+apnyA+IHJva3VvbmtpXCA7CivpgY7oiKzmnaUgPiBrYWhhbnJhaVwgOwor6ZGa5a2U5qmfID4gc2Fua291a2lcIDsKK+S4gOiIrOS6uiA+IGlwcGFuamluXCA7Civnm7jmiYvlvbkgPiBhaXRleWFrdVwgOwor5q2p5ZCI57WmID4gYnVhaWt5dXVcIDsKK+S6leaIuOe2sSA+IGlkb2R6dW5hXCA7Civml6Lnn6XmlbAgPiBraWNoaXN1dVwgOwor5bel5YuZ5bqXID4ga291bXV0ZW5cIDsKK+S4gOacsemKgCA+IGlzc2h1Z2luXCA7CivoiKrnqbrmqZ8gPiBrb3VrdXVraVwgOwor6buS57m75a2QID4ga3Vyb2p1c3VcIDsKK+eZu+iomOaJgCA+IHRvdWtpc2hvXCA7CivpganmmYLmiZMgPiB0ZWtpamlkYVwgOwor5ZCI55CG5oCnID4gZ291cmlzZWlcIDsKK+mZsOmbu+WtkCA+IGluZGVuc2hpXCA7Civliqnli5XoqZ4gPiBqb2RvdXNoaVwgOwor5oWw6JeJ5paZID4gaXNoYXJ5b3VcIDsKK+ihm+eUn+WFtSA+IGVpc2VpaGVpXCA7CivkvY7niankvqEgPiB0ZWlidWtrYVwgOwor5YCL5Lq65bGVID4ga29qaW50ZW5cIDsKK+Wun+S9k+WMliA+IGppdHRhaWthXCA7CivpgqrprZTogIUgPiBqYW1hbW9ub1wgOwor57Gz6K2w5LyaID4gYmVpZ2lrYWlcIDsKK+eEoeWwveiUtSA+IG11amluem91XCA7Civou6Lmj5vmnJ8gPiB0ZW5rYW5raVwgOwor5Luj6K2w5aOrID4gZGFpZ2lzaGlcIDsKK+m8u+a/gemfsyA+IGJpZGFrdW9uXCA7Civpq5jpm7vkvY0gPiBrb3VkZW4nJ2lcIDsKK+aMgeWPgumHkSA+IGppc2Fua2luXCA7CivllK/nkIboq5YgPiB5dWlyaXJvblwgOwor5ZCN5pyb5a62ID4gbWVpYm91a2FcIDsKK+WkmuWFg+irliA+IHRhZ2Vucm9uXCA7Civoh6rmo4Tns54gPiB5YWtla3Vzb1wgOwor5q2j56ym5Y+3ID4gc2VpZnVnb3VcIDsKK+eEoeeUo+iAhSA+IG11c2Fuc2hhXCA7CivogrLlhZDmm7ggPiBpa3VqaXNob1wgOwor5a6a5pyf6Ii5ID4gdGVpa2lzZW5cIDsKK+aJi+W8geW9kyA+IHRlYmVudG91XCA7Civkub7nh6XmqZ8gPiBrYW5zb3VraVwgOwor5LiJ5pel6ZaTID4gbWlra2FrYW5cIDsKK+WNgeS6jOWIhiA+IGp1dW5pYnVuXCA7CivnqL3lj6Tlj7AgPiBrZWlrb2RhaVwgOwor5YWI6aCt5LyNID4gc2VudG91Z29cIDsKK+WHuuadpemrmCA+IGRla2lkYWthXCA7CivkuInkuJbnm7ggPiBzYW56ZXNvdVwgOwor6YGL5qC56YiNID4gdW5rb25kb25cIDsKK+ihm+eUn+S4iiA+IGVpc2Vpam91XCA7CivljLvlrablo6sgPiBpZ2FrdXNoaVwgOwor6KuL6LKg5Lq6ID4gdWtlb2luaW5cIDsKK+aWremdouWbsyA+IGRhbm1lbnp1XCA7CivomZrku67njL8gPiBrb2tlemFydVwgOwor5pyq5L2/55SoID4gbWlzaGl5b3VcIDsKK+mbu+azouaYnyA+IGRlbnBhc2VpXCA7Civpn7Ppn7voq5YgPiBvbicnaW5yb25cIDsKK+apn+aisOW3pSA+IGtpa2Fpa291XCA7Civlho3lsIHpjpYgPiBzYWlmdXVzYVwgOwor6Ziy5rOi5aCkID4gYm91aGF0ZWlcIDsKK+mBi+i7ouaJiyA+IHVudGVuc2h1XCA7CivkuonopofmiKYgPiBzb3VoYXNlblwgOwor6buS5paH5a2XID4ga3Vyb21vamlcIDsKK+eEoemnhOi2syA+IG11ZGFhc2hpXCA7CivnnYDnianlnLAgPiBraW1vbm9qaVwgOwor5aSW5rCX5ZyPID4gZ2Fpa2lrZW5cIDsKK+mWi+S8muaXpSA+IGthaWthaWJpXCA7CivnlLHmnaXmm7ggPiB5dXJhaXNob1wgOwor6bWd5Y+j55ihID4gZ2Frb3Vzb3VcIDsKK+S5vueHpeaenCA+IGthbnNvdWthXCA7CivlronlhajmgKcgPiBhbnplbnNlaVwgOwor5Lm+54el5pyfID4ga2Fuc291a2lcIDsKK+aghOmkiuWjqyA+IGVpeW91c2hpXCA7Civlj7DluIPlt74gPiBkYWlidWtpblwgOwor5qeL5oiQ5ZOhID4ga291c2VpaW5cIDsKK+aooeevhOeUnyA+IG1vaGFuc2VpXCA7CivlronlhajlvIEgPiBhbnplbmJlblwgOwor6aeG5YuV6LyqID4ga3Vkb3VyaW5cIDsKK+adsea0i+WPsiA+IHRveW9mdW1pXCA7CivljZjnsr7luqYgPiB0YW5zZWlkb1wgOwor54Gr5pyo5ZyfID4ga2Ftb2t1ZG9cIDsKK+S7o+itsOWItiA+IGRhaWdpc2VpXCA7CivmnKrlrprnqL8gPiBtaXRlaWtvdVwgOwor5LiW6Kmx54mpID4gc2V3YW1vbm9cIDsKK+ims+aIpuiomCA+IGthbnNlbmtpXCA7CivlpKnnk5znsokgPiB0ZW5rYWZ1blwgOwor5b2i5oiQ5pyfID4ga2Vpc2Vpa2lcIDsKK+aUvuaYoOaoqSA+IGhvdWVpa2VuXCA7Civnm6PoppbmiYAgPiBrYW5zaGlqb1wgOwor5b6h5pys5bCKID4gZ29ob256b25cIDsKK+WNmOe0lOWMliA+IHRhbmp1bmthXCA7CivlgIvkurrlkI0gPiBrb2ppbm1laVwgOwor5qSc55y85Yy7ID4ga2VuZ2FuJydpXCA7CivljLvlrablj7IgPiBpZ2FrdXNoaVwgOwor5pyq6LiP5bOwID4gbWl0b3Vob3VcIDsKK+aWreaWreWbuiA+IGRhbmRhbmtvXCA7CivmmpbmiL/lmaggPiBkYW5ib3VraVwgOwor5pah5peL6ICFID4gYXNzZW5zaGFcIDsKK+S7j+eUn+S8miA+IGJ1c3Nob3VlXCA7Civopo/moLzljJYgPiBraWtha3VrYVwgOwor5Y+45Luk6YOoID4gc2hpcmVpYnVcIDsKK+aEj+WMoOaoqSA+IGlzaG91a2VuXCA7CivlsIrmlazoqp4gPiBzb25rZWlnb1wgOwor5b2i5oWL57SgID4ga2VpdGFpc29cIDsKK+e+juWwkeWlsyA+IGJpc2hvdWpvXCA7CivlhobpgYvli5UgPiBlbicndW5kb3VcIDsKK+ixoeeJmeiJsiA+IHpvdWdlaXJvXCA7Civpga7mlq3lmaggPiBzaGFkYW5raVwgOwor6Kix5Y+v5pu4ID4ga3lva2FzaG9cIDsKK+WVhuitsOWToSA+IHNob3VnaWluXCA7CivlvqHkuIDmlrAgPiBnb2lzc2hpblwgOwor5oSJ5b+r54qvID4geXVrYWloYW5cIDsKK+aMh+ekuuadvyA+IHNoaWppYmFuXCA7CivpiYTlt6XmiYAgPiB0ZWtrb3Vqb1wgOwor57WM5Za26ZujID4ga2VpZWluYW5cIDsKK+mZsOmZveW4qyA+IG9uJyd5b3VqaVwgOwor5o+b5rCX5omHID4ga2Fua2lzZW5cIDsKK+mdnuWQiOazlSA+IGhpZ291aG91XCA7Civpo5vooYzoiYcgPiBoaWtvdXRlaVwgOwor6aOb6KGM6Ii5ID4gaGlrb3VzZW5cIDsKK+e1jOWWtumZoyA+IGtlaWVpamluXCA7CivlvqHmnaXlhYkgPiBnb3JhaWtvdVwgOwor5LiN5pat6I2JID4gZnVkYW5zb3VcIDsKK+aghOmkiuWJpCA+IGVpeW91emFpXCA7CivpgKPpjpblupcgPiByZW5zYXRlblwgOwor5YW15rOV5a62ID4gaGVpaG91a2FcIDsKK+mgu+W6puaVsCA+IGhpbmRvc3V1XCA7Civos4fmnKzlrrYgPiBzaGlob25rYVwgOwor5pyA5Y+z57+8ID4gc2FpdXlva3VcIDsKK+aghOmkiuWIhiA+IGVpeW91YnVuXCA7Civlj6/lh6bliIYgPiBrYXNob2J1blwgOwor6JKZ5Y+k5paRID4gbW91a29oYW5cIDsKK+WvkueoveWPpCA+IGthbmdlaWtvXCA7CivnrKzkuInntIAgPiBkYWlzYW5raVwgOwor56CC6aKo5ZGCID4gc3VuYWJ1cm9cIDsKK+mBi+i7ouWjqyA+IHVudGVuc2hpXCA7CivnrKzkuIDnt5ogPiBkYWlpc3NlblwgOwor6YKq6a2U54mpID4gamFtYW1vbm9cIDsKK+mKgOihjOWutiA+IGdpbmtvdWthXCA7CivkuInku5nlj4kgPiBzYW5zZW5zYVwgOwor5YaN5bel5LqLID4gc2Fpa291amlcIDsKK+ijj+aXpeacrCA+IHVyYW5paG9uXCA7Civooqvlgq3ogIUgPiBoaXlvdXNoYVwgOwor6Lu95rC054KJID4ga2Vpc3Vpcm9cIDsKK+iHqueUsea4ryA+IGppeXV1a291XCA7CivlvqHmm7nlrZAgPiBvbnpvdXNoaVwgOwor6Ziy5rC05omJID4gYm91c3VpaGlcIDsKK+WxheW/g+WcsCA+IGlnb2tvY2hpXCA7CivlnLDkuIvpgZMgPiBjaGlrYWRvdVwgOwor54Sh6aeE6IqxID4gbXVkYWJhbmFcIDsKK+S4juWkquiAhSA+IHlvdGFtb25vXCA7CivnhKHlrproposgPiBtdXRlaWtlblwgOwor576O5a655birID4gYml5b3VzaGlcIDsKK+eZuueBq+eCuSA+IGhha2thdGVuXCA7Civnj77ku6PljJYgPiBnZW5kYWlrYVwgOwor56aP5LqV55yMID4gZnVrdWlrZW5cIDsKK+S4jeaVrOiZlCA+IGZ1a2Vpa2VuXCA7CivkuIHlrZDmsrkgPiBjaG91aml5dVwgOwor5Lm+54el5a2jID4ga2Fuc291a2lcIDsKK+aWreaWreS5jiA+IGRhbmRhbmtvXCA7CivosqHli5nlrpggPiB6YWltdWthblwgOwor5paZ55CG5bGLID4gcnlvdXJpeWFcIDsKK+WBnOi7iuWgtCA+IHRlaXNoYWJhXCA7CivmhJ/lhYnluqYgPiBrYW5rb3Vkb1wgOwor54Sh6IO96ICFID4gbXVub3VzaGFcIDsKK+S6pOWPieeCuSA+IGtvdXNhdGVuXCA7CivmsLfmsrPmnJ8gPiBoeW91Z2FraVwgOwor5L2O6Zu75L2NID4gdGVpZGVuJydpXCA7Civlh7rkuJbprZogPiBzaHVzc2V1b1wgOwor6YGL6Lui5Y+wID4gdW50ZW5kYWlcIDsKK+mHjuW/g+WutiA+IHlhc2hpbmthXCA7Civoh6rnlLHmqKkgPiBqaXl1dWtlblwgOwor6Ziy5rC05biDID4gYm91c3VpZnVcIDsKK+WGjeiHqOa0viA+IHNhaXJpbmhhXCA7CivlkI3loLTpnaIgPiBtZWliYW1lblwgOwor562G6KiY5L2TID4gaGlra2l0YWlcIDsKK+W8pualveWZqCA+IGdlbmdha2tpXCA7Civmu57lnKjosrsgPiB0YWl6YWloaVwgOwor6KaP5a6a5YCkID4ga2l0ZWljaGlcIDsKK+S4gOS9k+aEnyA+IGl0dGFpa2FuXCA7CivotaTnoILns5YgPiBha2F6YXRvdVwgOwor54mb5bCP5bGLID4gdXNoaWdveWFcIDsKK+W7ieS+oeWTgSA+IHJlbmthaGluXCA7CivmsJHpnIDlk4EgPiBtaW5qdWhpblwgOwor55yf5Lq66ZaTID4gbWFuaW5nZW5cIDsKK+mHkeebnuiKsSA+IGtpbnNlbmthXCA7Civlj5bmspnmsbAgPiB0b3JpemF0YVwgOwor6YqA6KGM5ZOhID4gZ2lua291aW5cIDsKK+WxpOS9jeWtpiA+IHNvdWlnYWt1XCA7CivpgI/oppblm7MgPiB0b3VzaGl6dVwgOwor5ZCN576p5Lq6ID4gbWVpZ2luaW5cIDsKK+e1puayueaJgCA+IGt5dXV5dWpvXCA7Civoh6rotbDnoLIgPiBqaXNvdWhvdVwgOwor5a+E56i/6ICFID4ga2lrb3VzaGFcIDsKK+aKkuaDheipqSA+IGpvam91c2hpXCA7CivlhobliIPliIAgPiBlbmppbnRvdVwgOwor5Lm+54el5ZmoID4ga2Fuc291a2lcIDsKK+S4ieS4g+aXpSA+IG1pbmFub2thXCA7Civlr7rlsI/lsYsgPiB0ZXJha295YVwgOwor5b6h5pu55Y+4ID4gb256b3VzaGlcIDsKK+eUsOmbsumbgCA+IHRhaGliYXJpXCA7CivmuKnmub/luIMgPiBvbnNoaXBwdVwgOwor5b6h6Z2i55u4ID4gZ29tZW5zb3VcIDsKK+S4iuaZr+awlyA+IGpvdWtlaWtpXCA7CivogrLoi7HkvJogPiBpa3VlaWthaVwgOwor5LmX6aas6ZqKID4gam91YmF0YWlcIDsKK+WcsOS4i+ihlyA+IGNoaWthZ2FpXCA7CivpnZLmh7jlt6MgPiBhb2tha2VzdVwgOwor5LiN5pWs572qID4gZnVrZWl6YWlcIDsKK+WOn+WtkOS+oSA+IGdlbnNoaWthXCA7Civnt4/mrabnt5ogPiBzb3VidXNlblwgOwor5LiN57i557e7ID4gYnVraXJ5b3VcIDsKK+ino+WDj+W6piA+IGthaXpvdWRvXCA7CivmjqfoqLTnirYgPiBrb3Vzb2pvdVwgOwor5YaN5qSc5p+7ID4gc2Fpa2Vuc2FcIDsKK+ikh+W6p+apnyA+IGZ1a3V6YWtpXCA7CivmibnoqZXlrrYgPiBoaWh5b3VrYVwgOwor5b6h5Lit5YWDID4gb2NodXVnZW5cIDsKK+S6uuecn+S8vCA+IGhpdG9tYW5lXCA7CivnmoTlnLDkvY0gPiB0ZWtpY2hpaVwgOwor5o+b5rCX5Y+jID4ga2Fua2lrb3VcIDsKK+iqv+afu+WToSA+IGNob3VzYWluXCA7CivkuJboqbHlvbkgPiBzZXdheWFrdVwgOwor5oKq55+l5oG1ID4gd2FydWRqaWVcIDsKK+efreacn+mWkyA+IHRhbmtpa2FuXCA7CivlvqHkuLvkurogPiBnb3NodWppblwgOwor5ZCM5pmC5oCnID4gZG91amlzZWlcIDsKK+m7hOWkieexsyA+IG91aGVubWFpXCA7CivkvZnmiYDogIUgPiB5b3NvbW9ub1wgOwor5ruL6aSK5YiGID4gaml5b3VidW5cIDsKK+ajmueJoeS4uSA+IHRhbmFib3RhXCA7CivpipjphZLlsYsgPiBtZWlzaHV5YVwgOwor5aGp6aGe5rOJID4gZW5ydWlzZW5cIDsKK+S/neiPjOiAhSA+IGhva2luc2hhXCA7CivpmLLnoILmnpcgPiBib3VzYXJpblwgOwor6ZaJ5LiW55WMID4gaGVpc2VrYWlcIDsKK+WcsOS4i+iMjiA+IGNoaWtha2VpXCA7CivlpJrovrrlvaIgPiB0YWhlbmtlaVwgOwor5LiN5piO5pyXID4gZnVtZWlyb3VcIDsKK+azpeeBq+WxsSA+IGRlaWthemFuXCA7Civkuqzpg73lupwgPiBreW91dG9mdVwgOwor5Luk5aSr5Lq6ID4gcmVpZnVqaW5cIDsKK+e9t+WFjeaoqSA+IGhpbWVua2VuXCA7CivkuIHlrZflvaIgPiB0ZWlqaWtlaVwgOwor5YCZ6KOc6ICFID4ga291aG9zaGFcIDsKK+e1teeUu+mkqCA+IGthaWdha2FuXCA7Civlm73llrbljJYgPiBrb2t1ZWlrYVwgOwor54mp5pWF6ICFID4gYnVra29zaGFcIDsKK+WJjeebuOaSsiA+IG1hZXp1bW91XCA7CivnoJTnsbPmqZ8gPiBrZW5tYWlraVwgOwor5pqX6buS5pyfID4gYW5rb2t1a2lcIDsKK+ePvuaZgueCuSA+IGdlbmppdGVuXCA7CivpmqPkv53ppKggPiByaW5wb2thblwgOwor54S85aS35by+ID4gc2hvdWlkYW5cIDsKK+S4geWtl+W4ryA+IHRlaWppdGFpXCA7CivliqDphY3nsbMgPiBrYWhhaW1haVwgOwor6auY57K+5bqmID4ga291c2VpZG9cIDsKK+mZsOmWouaVsCA+IGlua2Fuc3V1XCA7CivmsLTms7PluL0gPiBzdWllaWJvdVwgOwor6LK46LK755SfID4gdGFpaGlzZWlcIDsKK+Wil+eojuahiCA+IHpvdXplaWFuXCA7CivppJPprLzlhbEgPiBnYWtpZG9tb1wgOwor6Kix5Y+v5Yi2ID4ga3lva2FzZWlcIDsKK+Wls+aAp+WDjyA+IGpvc2Vpem91XCA7CivngavmmJ/lubQgPiBrYXNlaW5lblwgOwor5Lqc56Gr6YW4ID4gYXJ5dXVzYW5cIDsKK+WGjei7jeWCmSA+IHNhaWd1bmJpXCA7Civmnb/lsYvosp0gPiBpdGF5YWdhaVwgOwor5pah5peL5qGIID4gYXNzZW4nJ2FuXCA7CivoirHltJflsqkgPiBrYWtvdWdhblwgOwor5pyq5a6M5oiQID4gbWlrYW5zZWlcIDsKK+eEoeeUqOW/gyA+IGJ1eW91amluXCA7CivmiJDmlofljJYgPiBzZWlidW5rYVwgOwor57KX5oKq5ZOBID4gc29ha3VoaW5cIDsKK+aOp+iotOaoqSA+IGtvdXNva2VuXCA7Civoqr/nkIbloLQgPiBjaG91cmliYVwgOwor5Zyw5LiL57eaID4gY2hpa2FzZW5cIDsKK+S6nOehnemFuCA+IGFzaG91c2FuXCA7CivlrprmnJ/miKYgPiB0ZWlraXNlblwgOwor5L2T57O75YyWID4gdGFpa2Vpa2FcIDsKK+e1jOWWtuiAhSA+IGtlaWVpc2hhXCA7CivooqvlhpnkvZMgPiBoaXNoYXRhaVwgOwor5YiG5aip5pyfID4gYnVuYmVua2lcIDsKK+W+jOS7leiIniA+IGF0b2ppbWFpXCA7Civoo4/pnaLlj7IgPiByaW1lbnNoaVwgOwor6KaL5LiW54mpID4gbWlzZW1vbm9cIDsKK+iiq+eUqOiAhSA+IGhpeW91c2hhXCA7Civoqp7lvZnlipsgPiBnb2lyeW9rdVwgOwor6a2U5rOV55O2ID4gbWFob3ViaW5cIDsKK+WIhuWoqeaZgiA+IGJ1bmJlbmppXCA7CivkuIrkuIvli5UgPiBqb3VnZWRvdVwgOwor5bmz6Z2i5ZuzID4gaGVpbWVuenVcIDsKK+iAkOeBq+aApyA+IHRhaWthc2VpXCA7Civlho3lrprnvqkgPiBzYWl0ZWlnaVwgOwor6Zu75rCX5belID4gZGVua2lrb3VcIDsKK+WPjeWPpOexoCA+IGhvZ3VrYWdvXCA7CivlvqHpmY3oqpUgPiBnb2tvdXRhblwgOwor5piO5paH5YyWID4gbWVpYnVua2FcIDsKK+iFueWFt+WQiCA+IGhhcmFndWFpXCA7CivpgbjmjJnml6UgPiBzZW5reW9iaVwgOwor6Ly457K+566hID4geXVzZWlrYW5cIDsKK+Wwj+WjsuW6lyA+IGtvdXJpdGVuXCA7Civlroflrpnoq5YgPiB1Y2h1dXJvblwgOwor6ZGR5a6a5a62ID4ga2FudGVpa2FcIDsKK+Wbuua6tuS9kyA+IGtveW91dGFpXCA7CivmoYjlhoXmiYAgPiBhbicnbmFpam9cIDsKK+iHquS/oeWutiA+IGppc2hpbmthXCA7CivkupzpiZvmnKsgPiBhZW5tYXRzdVwgOwor5bCO6Zu75bqmID4gZG91ZGVuZG9cIDsKK+ecjOefpeS6iyA+IGtlbmNoaWppXCA7CivlroflrpnoprMgPiB1Y2h1dWthblwgOwor6Zu75YuV5qmfID4gZGVuZG91a2lcIDsKK+S4gOS4geebriA+IGl0Y2hvdW1lXCA7CivkvIrpgZTooYYgPiBkYXRlc2h1dVwgOwor6IWL56qp6IW6ID4gZWtpa2FzZW5cIDsKK+S4jeaWh+azlSA+IGZ1YnVucG91XCA7CivkuIDosqvmgKcgPiBpa2thbnNlaVwgOwor5Y+j5YaF54KOID4ga291bmFpZW5cIDsKK+mBjuS4jei2syA+IGthZnVzb2t1XCA7CivmhJvnlKjogIUgPiBhaXlvdXNoYVwgOwor5YWs5rCR56eRID4ga291bWlua2FcIDsKK+WHuuagvOWtkCA+IGRlZ291c2hpXCA7Civku4rkuJbntIAgPiBrb25zZWlraVwgOwor5pyq5ama6ICFID4gbWlrb25zaGFcIDsKK+WAmeijnOeUnyA+IGtvdWhvc2VpXCA7CivmnbHljZfkupwgPiB0b3VuYW4nJ2FcIDsKK+S+m+mkiuWhlCA+IGt1eW91dG91XCA7CivlgaXog4PliaQgPiBrZW4nJ2l6YWlcIDsKK+S/rumok+iAhSA+IHNodWdlbmphXCA7Civmn5TpgZPnnYAgPiBqdXVkb3VnaVwgOwor5b6u57O75pWwID4gYmlrZWlzdXVcIDsKK+S7lee9ruWgtCA+IHNoaW9raWJhXCA7CivlubPmlrnlkowgPiBoZWlob3V3YVwgOwor5Ly05aWP6YOoID4gYmFuc291YnVcIDsKK+WPpOWGmeacrCA+IGtvc2hhaG9uXCA7Civlh7rmnaXniakgPiBkZWtpbW9ub1wgOwor5Zyf6aWF6aCtID4gZG9tYW5qdXVcIDsKK+S4luipseS6uiA+IHNld2FiaXRvXCA7Civnvo7poZTmsLQgPiBiaWdhbnN1aVwgOwor6Ieq55Sx5YiRID4gaml5dXVrZWlcIDsKK+WhqemiqOWRgiA+IHNoaW9idXJvXCA7CivlhYXpm7vlmaggPiBqdXVkZW5raVwgOwor6KKr6aiT6ICFID4gaGlrZW5zaGFcIDsKK+Wwj+eGiuW6pyA+IGtvZ3VtYXphXCA7CivmiYvkv6Hoqp4gPiB0ZXNoaW5nb1wgOwor6LWk5q+b5biDID4gYWthZ2V0dG9cIDsKK+awtOW9qeeUuyA+IHN1aXNhaWdhXCA7CivkuIDkurrlr50gPiBoaXRvcmluZVwgOwor6Z2S5ZGz5rOlID4gYW9taWRvcm9cIDsKK+iHqueUseWFmiA+IGppeXV1dG91XCA7Civoipnok4nls7AgPiBmdXlvdWhvdVwgOwor6JC96Iqx55SfID4gcmFra2FzZWlcIDsKK+WxsemWk+mDqCA+IHNhbmthbmJ1XCA7CivlkIzmmYLku6MgPiBkb3VqaWRhaVwgOwor54Sh5a6X5rS+ID4gbXVzaHV1aGFcIDsKK+i7jeaUv+W6nCA+IGd1bnNlaWZ1XCA7CivlqabkurrkvJogPiBmdWppbmthaVwgOwor5a+65a2Q5bGLID4gdGVyYWtveWFcIDsKK+WOn+e5iue2rSA+IGdlbnNlbicnaVwgOwor57aZ6Zu75rCXID4ga2VpZGVua2lcIDsKK+WPs+S4remWkyA+IHVjaHV1a2FuXCA7CivkuI3mlofmmI4gPiBmdWJ1bm1laVwgOwor5bmz5Zyf6ZaTID4gaGlyYWRvbWFcIDsKK+asoeeUt+WdiiA+IGppbmFuYm91XCA7CivohoDog7Hngo4gPiBib3Vrb3VlblwgOwor5pyJ5Yq55omTID4geXV1a291ZGFcIDsKK+mbqOmHj+ioiCA+IHVyeW91a2VpXCA7CivlroflrpnoiLkgPiB1Y2h1dXNlblwgOwor5rib6KGw5ZmoID4gZ2Vuc3Vpa2lcIDsKK+e5sOezuOapnyA+IHNvdXNoaWtpXCA7CivlpJroirjmgKcgPiB0YWdlaXNlaVwgOwor6LWk5YiH56ymID4gYWthZ2lwcHVcIDsKK+eBq+aYn+S6uiA+IGthc2VpamluXCA7Civml6XoiKrmqZ8gPiBuaWtrb3VraVwgOwor5LuK5LiW55WMID4ga29uc2VrYWlcIDsKK+i7jemcgOWTgSA+IGd1bmp1aGluXCA7CivmsLTokrjmsJcgPiBzdWlqb3VraVwgOwor5Y2Y5ryi5a2XID4gdGFua2FuamlcIDsKK+WNgeaWh+WtlyA+IGp1dW1vbmppXCA7CivlrojlgpnlhbUgPiBzaHViaWhlaVwgOwor5pqX5Y+35paHID4gYW5nb3VidW5cIDsKK+mrmOetieenkSA+IGtvdXRvdWthXCA7Civmt7vkuZflk6EgPiB0ZW5qb3VpblwgOwor5qGI5YaF5ZuzID4gYW4nJ25haXp1XCA7CivlkIjoqIDokYkgPiBhaWtvdG9iYVwgOwor5a6a5pyf5Yi4ID4gdGVpa2lrZW5cIDsKK+S6iOeul+ahiCA+IHlvc2FuJydhblwgOwor5aSa5qeY5oCnID4gdGF5b3VzZWlcIDsKK+WQjeaWh+WutiA+IG1laWJ1bmthXCA7Civoh6ros6Dms5UgPiBqaWJhaWhvdVwgOwor5Ye65LiN57K+ID4gZGVidXNob3VcIDsKK+WuieWxseWyqSA+IGFuemFuZ2FuXCA7CivogIHlpKflrrYgPiByb3V0YWlrYVwgOwor5rCP57Sg5oCnID4gdWppc3Vqb3VcIDsKK+S4iuWkqeawlyA+IGpvdXRlbmtpXCA7CivnrKzkuIDlo7AgPiBkYWlpc3NlaVwgOwor5bCO54Gr57eaID4gZG91a2FzZW5cIDsKK+S+nemgvOW/gyA+IGlyYWlzaGluXCA7Civlroflrpnnt5ogPiB1Y2h1dXNlblwgOwor6LKg5YK16ICFID4gZnVzYWlzaGFcIDsKK+W+jOmgremDqCA+IGtvdXRvdWJ1XCA7Civnmq7ohprnl4UgPiBoaWZ1YnlvdVwgOwor6ICB5aSr5ammID4gcm91ZnV1ZnVcIDsKK+WcsOS4i+awtCA+IGNoaWthc3VpXCA7Civpm7vmsJfku6MgPiBkZW5raWRhaVwgOwor5a6a576p5Z+fID4gdGVpZ2lpa2lcIDsKK+aUvueBq+e9qiA+IGhvdWthemFpXCA7Civpm6jlkIjnvr0gPiBhbWFnYXBwYVwgOwor5Y+X5YiR6ICFID4ganVrZWlzaGFcIDsKK+mdnuWFrOmWiyA+IGhpa291a2FpXCA7Civmma7oq4vloLQgPiBmdXNoaW5iYVwgOwor5aSa5bO25rW3ID4gdGF0b3VrYWlcIDsKK+WKtOWDjeatjCA+IHJvdWRvdWthXCA7Civlr4TmuK/lnLAgPiBraWtvdWNoaVwgOwor5a6a5pyf5L6/ID4gdGVpa2liaW5cIDsKK+acquadpeW9oiA+IG1pcmFpa2VpXCA7Civpo5vooYzlo6sgPiBoaWtvdXNoaVwgOwor5aaK55Sj5ammID4gbmluc2FucHVcIDsKK+efreaZgumWkyA+IHRhbmppa2FuXCA7CivlgY/lt67lgKQgPiBoZW5zYWNoaVwgOwor5LiL6ZmN57eaID4ga2Frb3VzZW5cIDsKK+a0i+iPk+WtkCA+IHlvdWdhc2hpXCA7Civmlq3oo4HmqZ8gPiBkYW5zYWlraVwgOwor6aOb6KGM5aC0ID4gaGlrb3Vqb3VcIDsKK+W3peWFt+WFpSA+IGtvdWd1aXJlXCA7CivkvZPmuKnoqIggPiB0YWlvbmtlaVwgOwor55m66KGM5pelID4gaGFra291YmlcIDsKK+aLt+WVj+WFtyA+IGdvdW1vbmd1XCA7CivpmaTlpJbkvosgPiBqb2dhaXJlaVwgOwor5a+/6ICB5Lq6ID4ganVyb3VqaW5cIDsKK+WFrOWPluWnlCA+IGtvdXRvcmlpXCA7CivpmaLlpJblm6MgPiBpbmdhaWRhblwgOwor5LiN5aSJ5oCnID4gZnVoZW5zZWlcIDsKK+WkmueUo+ezuyA+IHRhc2Fua2VpXCA7CivlsI/opo/mqKEgPiBzaG91a2lib1wgOwor5ZCI6K2w5Yi2ID4gZ291Z2lzZWlcIDsKK+e2reeuoeadnyA+IGlrYW5zb2t1XCA7Civpq5jmuKnoqIggPiBrb3VvbmtlaVwgOwor5Yid562J56eRID4gc2hvdG91a2FcIDsKK+iomOaGtuazlSA+IGtpb2t1aG91XCA7Civku4rmnJ3mlrkgPiBrZXNhZ2F0YVwgOwor6YG45oyZ5Yy6ID4gc2Vua3lva3VcIDsKK+egtOegleaApyA+IGhhc2Fpc2VpXCA7Civpub/ph47oi5EgPiByb2t1eWFvblwgOwor6Iie5Y+w6KOPID4gYnV0YWl1cmFcIDsKK+e1jOWWtuaoqSA+IGtlaWVpa2VuXCA7CivkuI3nh4PmgKcgPiBmdW5lbnNlaVwgOwor56We56WH5a6YID4gamluZ2lrYW5cIDsKK+awj+e0oOWnkyA+IHVqaXN1am91XCA7CivooqvlrrPogIUgPiBoaWdhaXNoYVwgOwor5rC06YW45Z+6ID4gc3Vpc2Fua2lcIDsKK+WkqeS9k+WbsyA+IHRlbnRhaXp1XCA7Civov5Hot53pm6IgPiBraW5reW9yaVwgOwor5rqW56S+5ZOhID4ganVuc2hhaW5cIDsKK+S6uuS7tuiyuyA+IGppbmtlbmhpXCA7CivluLjlvpfmhI8gPiBqb3V0b2t1aVwgOwor55qu6ISC6IW6ID4gaGlzaGlzZW5cIDsKK+eEoeWumuW9oiA+IG11dGVpa2VpXCA7Civlj6/nlKjmgKcgPiBrYXlvdXNlaVwgOwor5Lq655Sf5rS+ID4gamluc2VpaGFcIDsKK+eZuuihjOaJgCA+IGhha2tvdWpvXCA7CivmkanlpKnmpbwgPiBtYXRlbnJvdVwgOwor5bCP6ZaT54mpID4ga29tYW1vbm9cIDsKK+W+oeWkp+WxpCA+IGdvdGFpc291XCA7CivorablgpnpmoogPiBrZWliaXRhaVwgOwor5Ymy54O5552AID4ga2FwcG91Z2lcIDsKK+WNlOWSjOmfsyA+IGt5b3V3YW9uXCA7Civlj5fli5XmhYsgPiBqdWRvdXRhaVwgOwor57eP5YuV5ZOhID4gc291ZG91aW5cIDsKK+iKseael+ezliA+IGthcmludG91XCA7CivmraPnpL7lk6EgPiBzZWlzaGFpblwgOwor562J5rip57eaID4gdG91b25zZW5cIDsKK+W+oemciuWxiyA+IG1pdGFtYXlhXCA7CivkuIDlpJXoqbEgPiBpc3Nla2l3YVwgOwor5bCP54K65pu/ID4ga29nYXdhc2VcIDsKK+esrOS4gOS9jSA+IGRhaWljaGlpXCA7CivnqI7plqLlkI8gPiB6ZWlrYW5yaVwgOwor6aSK6IKy6LK7ID4geW91aWt1aGlcIDsKK+a1gemPkemmrCA+IHlhYnVzYW1lXCA7CivmjqfoqLTkurogPiBrb3Vzb25pblwgOwor6Iy26Kmx5LyaID4gY2hhd2FrYWlcIDsKK+WWq+e3iuS6iyA+IGtpa2tpbmppXCA7CivlkLjph5HliZsgPiBrb2tvbmdvdVwgOwor6ICB57e05a62ID4gcm91cmVua2FcIDsKK+S4jeiqv+WSjCA+IGZ1Y2hvdXdhXCA7CivmsJfnrqHmlK8gPiBraWthbnNoaVwgOwor5rC06YW45YyWID4gc3Vpc2Fua2FcIDsKK+Wkp+S6uuawlyA+IGRhaW5pbmtpXCA7CivpnZLpioXlmaggPiBzZWlkb3VraVwgOwor6aOb6KGM5L6/ID4gaGlrb3ViaW5cIDsKK+WPr+iDveazlSA+IGthbm91aG91XCA7CivnnJ/nj6Dmr40gPiBzaGluanVib1wgOwor5bCC5pS756eRID4gc2Vua291a2FcIDsKK+WMluiGv+iPjCA+IGthbm91a2luXCA7CivpnZ7luLjnt5ogPiBoaWpvdXNlblwgOwor57K+5LiA5p2vID4gc2VpaXBwYWlcIDsKK+mBh+S4jemBhyA+IGd1dWZ1Z3V1XCA7CivmnKrogJXlnLAgPiBtaWtvdWNoaVwgOwor6ZaA5LiL55SfID4gbW9ua2FzZWlcIDsKK+S4gOmiqOWRgiA+IGhpdG9mdXJvXCA7Civln7nppIrln7ogPiBiYWl5b3VraVwgOwor6LuN6ZqK5YyWID4gZ3VudGFpa2FcIDsKK+a8lOiKuOS8miA+IGVuZ2Vpa2FpXCA7CivmlofkurrnlLsgPiBidW5qaW5nYVwgOwor54++5pmC5LujID4gZ2VuamlkYWlcIDsKK+W6g+evhOWbsiA+IGtvdWhhbicnaVwgOwor5YaG5bGL5qC5ID4gbWFydXlhbmVcIDsKK+WfuemkiuWcnyA+IGJhaXlvdWRvXCA7Civlr5LmsJflm6MgPiBrYW5raWRhblwgOwor57KX5Yip55uKID4gYXJhcmlla2lcIDsKK+S6iOeul+WkliA+IHlvc2FuZ2FpXCA7CivpnZ7msJHkuLsgPiBoaW1pbnNodVwgOwor5Y+X55uK6ICFID4ganVla2lzaGFcIDsKK+WuieWumuadvyA+IGFudGVpYmFuXCA7CivoqJjlv7XppKggPiBraW5lbmthblwgOwor5aSn5a6H5a6ZID4gZGFpdWNodXVcIDsKK+S6nOaApeaApyA+IGFreXV1c2VpXCA7CivoqIjnrpfnsL8gPiBrZWlzYW5ib1wgOwor6Z2Z5q2i55S7ID4gc2Vpc2hpZ2FcIDsKK+S4jeaVtOWQiCA+IGZ1c2VpZ291XCA7Civkuozph43poY4gPiBuaWp1dWFnb1wgOwor5Yi25b6h5qmfID4gc2VpZ3lva2lcIDsKK+S6jOetieWIhiA+IG5pdG91YnVuXCA7CivlubPngonms5UgPiBoZWlyb2hvdVwgOwor5LqU56ic5aChID4gZ29yeW91aG9cIDsKK+acquadpeWDjyA+IG1pcmFpem91XCA7CivotrPmuKnlmaggPiBzb2t1b25raVwgOwor5LqM562J5YW1ID4gbml0b3VoZWlcIDsKK+iytOaXj+mZoiA+IGtpem9rdWluXCA7Civntpnpm7vlmaggPiBrZWlkZW5raVwgOwor6KiY5Y+36KuWID4ga2lnb3Vyb25cIDsKK+WQjeipnuWPpSA+IG1laXNoaWt1XCA7CivkvJ3ppqzoiLkgPiB0ZW5tYXNlblwgOwor6YqA5rKz57O7ID4gZ2luZ2FrZWlcIDsKK+Wkp+WuruWPuCA+IGRhaWd1dWppXCA7CivmtYHooYznm64gPiBoYXlhcmltZVwgOwor6YGg6KaW55y8ID4gZW5zaGlnYW5cIDsKK+WNteW3o+eCjiA+IHJhbnNvdWVuXCA7CivmnKrkuqHkurogPiBtaWJvdWppblwgOwor5LiN57WM5riIID4gZnVrZWl6YWlcIDsKK+W8leeUqOespiA+IGluJyd5b3VmdVwgOwor5p+U6YGT5a62ID4ganV1ZG91a2FcIDsKK+S4jeWdh+ihoSA+IGZ1a2lua291XCA7Civlr77oqbHogIUgPiB0YWl3YXNoYVwgOwor6Kif5YuZ6YOoID4gc2hvdW11YnVcIDsKK+W+oemciuWJjSA+IGdvcmVpemVuXCA7CivlhYzmj5vliLggPiBkYWthbmtlblwgOwor5LiN5pGC55SfID4gZnVzZXNzZWlcIDsKK+aXpeacrOmiqCA+IG5paG9uZnV1XCA7CivlgJnoo5zlnLAgPiBrb3Vob2NoaVwgOwor56CC6Ziy5p6XID4gc2Fib3VyaW5cIDsKK+S4i+Wjq+WumCA+IGthc2hpa2FuXCA7CivluILorbDkvJogPiBzaGlnaWthaVwgOwor5LiA5pmC5pyfID4gaWNoaWppa2lcIDsKK+iHquiyoOW/gyA+IGppZnVzaGluXCA7Civnm7jlkIjlgpggPiBhaWFpZ2FzYVwgOwor6KyZ6K2y6KqeID4ga2Vuam91Z29cIDsKK+aJtuaMgeexsyA+IGZ1Y2hpbWFpXCA7Civlho3otbfli5UgPiBzYWlraWRvdVwgOwor542j5Yy75a2mID4ganV1aWdha3VcIDsKK+mdnuW4uOeUqCA+IGhpam91eW91XCA7CivnoLTlu4nmgaUgPiBoYXJlbmNoaVwgOwor5Ye65pS+6aGMID4gZGVob3VkYWlcIDsKK+WuieWumuaEnyA+IGFudGVpa2FuXCA7CivppIrogIHpmaIgPiB5b3Vyb3VpblwgOwor6YeO6Imv54yrID4gbm9yYW5la29cIDsKK+acquS4geW5tCA+IG1pdGVpbmVuXCA7CivlronlrprmgKcgPiBhbnRlaXNlaVwgOwor5rG6566X5pyfID4ga2Vzc2Fua2lcIDsKK+iHquS5l+aguSA+IGppam91a29uXCA7Civlhajojbfph40gPiB6ZW5rYWp1dVwgOwor5aWl5b6h5q6/ID4gb2t1Z290ZW5cIDsKK+ijvemAoOaJgCA+IHNlaXpvdWpvXCA7Civlv6vnlLflhZAgPiBrYWlkYW5qaVwgOwor5pe65paH56S+ID4gb3VidW5zaGFcIDsKK+i2hemfs+azoiA+IGNob3VvbnBhXCA7CivlrojorbfpnIogPiBzaHVnb3JlaVwgOwor5pyo5pu+5bedID4ga2lzb2dhd2FcIDsKK+W8semfs+WZqCA+IGpha3VvbmtpXCA7Civmsbrnrpfml6UgPiBrZXNzYW5iaVwgOwor6Ieq5Li75qipID4gamlzaHVrZW5cIDsKK+iDveW8geWutiA+IG5vdWJlbmthXCA7Civlj6/og73mgKcgPiBrYW5vdXNlaVwgOwor5aSn5pem6YKjID4gb29kYW4nJ25hXCA7CivljbDluqbmlZkgPiBpbmRva3lvdVwgOwor54Sh5Lq65bO2ID4gbXVqaW50b3VcIDsKK+ecn+S8vOS6iyA+IG1hbmVnb3RvXCA7CivorITlhpnlmaggPiB0b3VzaGFraVwgOwor5biw6YKE6ICFID4ga2lrYW5zaGFcIDsKK+WKqeeUo+mZoiA+IGpvc2FuJydpblwgOwor5aWz5bqX5ZOhID4gam90ZW4nJ2luXCA7Civom7jpg6jlsYsgPiB0YWtvYmV5YVwgOwor5LqI566X5LiKID4geW9zYW5qb3VcIDsKK+WumuaZguWItiA+IHRlaWppc2VpXCA7CivmraPlvKbms6IgPiBzZWlnZW5oYVwgOwor5L2Z5omA5LqLID4geW9zb2dvdG9cIDsKK+mmrOm5v+iAhSA+IGJha2Ftb25vXCA7CivlhIDnpLzlhbUgPiBnaXJlaWhlaVwgOwor5pel5pys6YWSID4gbmlob25zaHVcIDsKK+aXqeeUo+WFkCA+IHNvdXphbmppXCA7CivmjqHntr/lmaggPiBzYWltZW5raVwgOwor6Iux6YCj6YKmID4gZWlyZW5wb3VcIDsKK+aXqeeUn+WFkCA+IHNvdXNlaWppXCA7CivliqDnm5/ogIUgPiBrYW1laXNoYVwgOwor6ZmN6Zuo6YePID4ga291dXJ5b3VcIDsKK+itpuWCmeiJhyA+IGtlaWJpdGVpXCA7Civlh7rmnaXkuosgPiBkZWtpZ290b1wgOwor5L6h6Zu75a2QID4ga2FkZW5zaGlcIDsKK+WPpOeUn+eVjCA+IGtvc2Vpa2FpXCA7CivliLbli5XmqZ8gPiBzZWlkb3VraVwgOwor6YeR6a2a5bGLID4ga2luZ3lveWFcIDsKK+acqOWkqeiTvCA+IG1hdGF0YWJpXCA7CivljYroo7jkvZMgPiBoYW5yYXRhaVwgOwor5pel5pys6LuNID4gbmlob25ndW5cIDsKK+aXpeacrOi7iiA+IG5paG9uc2hhXCA7Civkv67nvoXpgZMgPiBzaHVyYWRvdVwgOwor5ZWG6KGM54K6ID4gc2hvdWtvdWlcIDsKK+adoemHjOWItiA+IGpvdXJpc2VpXCA7CivmipXlvbHms5UgPiB0b3VlaWhvdVwgOwor5pyJ5bC+6aGeID4geXV1YmlydWlcIDsKK+asp+e+heW3tCA+IHlvdXJvcHBhXCA7CivkuJbplpPkvZMgPiBzZWtlbnRlaVwgOwor5LyK6YGU5be7ID4gZGF0ZW1ha2lcIDsKK+awtOWIqeaoqSA+IHN1aXJpa2VuXCA7Civlj7LlrablrrYgPiBzaGlnYWtrYVwgOwor57SN5LuY6YeRID4gbm91ZnVraW5cIDsKK+iVjum6puauuyA+IHNvYmFnYXJhXCA7CivmlrnlkJHoiLUgPiBob3Vrb3VkYVwgOwor5aSP6Iez57eaID4gZ2VzaGlzZW5cIDsKK+S4jeWdh+etiSA+IGZ1a2ludG91XCA7CivlroflrpnluL0gPiB1Y2h1dWJvdVwgOwor54Sh6aC85ryiID4gYnVyYWlrYW5cIDsKK+a/g+W6puioiCA+IG5vdWRva2VpXCA7CivkuIDmmKjlubQgPiBvdG90b3NoaVwgOwor5pyq57WM6aiTID4gbWlrZWlrZW5cIDsKK+acneWvneWdiiA+IGFzYW5lYm91XCA7CivpgY7lpKfoppYgPiBrYWRhaXNoaVwgOwor57+h57+g6ImyID4gaGlzdWlpcm9cIDsKK+Wcn+agueaApyA+IGRva29uam91XCA7Civnt4/mqKHmp5ggPiBzb3Vtb3lvdVwgOwor6KiI566X5qmfID4ga2Vpc2Fua2lcIDsKK+W8geW9k+WxiyA+IGJlbnRvdXlhXCA7Civku6PmiZPogIUgPiBkYWlkYXNoYVwgOwor6aKo5aqS6IqxID4gZnV1YmFpa2FcIDsKK+eEoeippumokyA+IG11c2hpa2VuXCA7CivphrjpgKDphaIgPiBqb3V6b3VzdVwgOwor5Y+N5YuV5rS+ID4gaGFuZG91aGFcIDsKK+e1jOa4iOWutiA+IGtlaXphaWthXCA7Civmt4vlt7TohbogPiByaW5wYXNlblwgOwor6Ieq5Li75oCnID4gamlzaHVzZWlcIDsKK+i2iuWkqealvSA+IGV0ZW5yYWt1XCA7CivmqKnliKnph5EgPiBrZW5yaWtpblwgOwor5oWi5oCn5YyWID4gbWFuc2Vpa2FcIDsKK+aOiOS5s+acnyA+IGp1bnl1dWtpXCA7CivlsILploDoqp4gPiBzZW5tb25nb1wgOwor5YmN6Iie5Y+wID4gbWFlYnV0YWlcIDsKK+mBuOenkeeUnyA+IHNlbmthc2VpXCA7CivlraPliIroqowgPiBraWthbnNoaVwgOwor5a6f6Zqb5a62ID4gamlzc2Fpa2FcIDsKK+S4gOaYvOWknCA+IGl0Y2h1dXlhXCA7CivooYborbDpmaIgPiBzaHV1Z2lpblwgOwor5pel5pys6KO9ID4gbmlob25zZWlcIDsKK+WNsOWIpOW4qyA+IGluYmFuc2hpXCA7CivlsI/ngavlmaggPiBzaG91a2FraVwgOwor54Sh6aKo5bivID4gbXVmdXV0YWlcIDsKK+WItuW+oeWZqCA+IHNlaWd5b2tpXCA7CivotbDmn7vnt5ogPiBzb3VzYXNlblwgOwor56m65omL5a62ID4ga2FyYXRla2FcIDsKK+S4jeWZqOmHjyA+IGJ1a2lyeW91XCA7CivlpKnkupXlgKQgPiB0ZW5qb3VuZVwgOwor6KiI566X5pyoID4ga2Vpc2FuZ2lcIDsKK+aOoeeCreaJgCA+IHNhaXRhbmpvXCA7CivlvIHli5nlrpggPiBiZW5tdWthblwgOwor5Y+X55uK5qipID4ganVla2lrZW5cIDsKK+WKoOW3pee0mSA+IGtha291c2hpXCA7CivmlZnli5noqrIgPiBreW91bXVrYVwgOwor6YCj5YuV5qmfID4gcmVuZG91a2lcIDsKK+S6pOW3rueCuSA+IGtvdXNhdGVuXCA7CivorbDkuovpjLIgPiBnaWppcm9rdVwgOwor5YaN5p2l5bm0ID4gc2FyYWluZW5cIDsKK+S4gOaYqOWknCA+IGlzc2FrdXlhXCA7CivlroflrpnlobUgPiB1Y2h1dWppblwgOwor5rC06YGT5bGLID4gc3VpZG91eWFcIDsKK+mHjei7jOadoSA+IGp1dWtpam91XCA7CivpgZXntITph5EgPiBpeWFrdWtpblwgOwor6bia6bWh55eFID4gb3VtdWJ5b3VcIDsKK+WNmOaAp+iKsSA+IHRhbnNlaWthXCA7Civms6jmhI/ngrkgPiBjaHV1aXRlblwgOwor5bi45YKZ6YeRID4gam91YmlraW5cIDsKK+i7ouenu+aApyA+IHRlbicnaXNlaVwgOwor5rS754Gr5bGxID4ga2Fra2F6YW5cIDsKK+WKoOW3peeojiA+IGtha291emVpXCA7Civnvo7nsqfpmaIgPiBiaXNob3VpblwgOwor6Iy2566q56ylID4gY2hhZGFuc3VcIDsKK+WZtOeBq+WxsSA+IGZ1bmthemFuXCA7CivlnLDmlrnmmYIgPiBjaGlob3VqaVwgOwor5oKq6aST6ay8ID4gd2FydWdha2lcIDsKK+WNmuaEm+WutiA+IGhha3VhaWthXCA7Civmg4XloLHpg6ggPiBqb3Vob3VidVwgOwor5pel5pys6Iy2ID4gbmlob25jaGFcIDsKK+WFieihjOW3riA+IGtvdWtvdXNhXCA7CivlpJbogLPpgZMgPiBnYWlqaWRvdVwgOwor5Zyw6ZyH5rOiID4gamlzaGluaGFcIDsKK+S4ieWhgeaJkyA+IHNhbnJ1aWRhXCA7Civli77lvJXnirYgPiBrb3VpbmpvdVwgOwor5Zyw6Zu35rqQID4gamlyYWlnZW5cIDsKK+mbu+apn+WtkCA+IGRlbmtpc2hpXCA7CivluLjlgpnou40gPiBqb3ViaWd1blwgOwor5bCP5Z6L5YyWID4ga29nYXRha2FcIDsKK+WIt+avm+WFiCA+IGhha2VzYWtpXCA7CivpnZLlhoXpmpwgPiBhb3Nva29oaVwgOwor6KmV6K2w5ZOhID4gaHlvdWdpaW5cIDsKK+WFrOWIhuavjSA+IGtvdWJ1bmJvXCA7Civlj6/ogbTluqYgPiBrYWNob3Vkb1wgOwor54Sh5p2h5Lu2ID4gbXVqb3VrZW5cIDsKK+efoumjm+eZvSA+IHlhZ2FzdXJpXCA7CivmiYvohZXlrrYgPiBzaHV3YW5rYVwgOwor5qSc5LqL5q2jID4ga2VuamlzZWlcIDsKK+WBveWWhOiAhSA+IGdpemVuc2hhXCA7CivkvJ3lsI7luqYgPiBkZW5kb3Vkb1wgOwor5YWs5Yuf5YK1ID4ga291Ym9zYWlcIDsKK+apn+mWoumKgyA+IGtpa2FuanV1XCA7Civmrabli4fkvJ0gPiBidXl1dWRlblwgOwor5Yi25b6h5LiLID4gc2VpZ3lva2FcIDsKK+iTruiPr+iNiSA+IHJlbmdlc291XCA7CivloLHnn6XmqZ8gPiBob3VjaGlraVwgOwor5aSP6Iez54K5ID4gZ2VzaGl0ZW5cIDsKK+atpuiKuOiAhSA+IGJ1Z2Vpc2hhXCA7CivotbDppqznga8gPiBzb3VtYXRvdVwgOwor5q2v6LuM5p2hID4gc2hpa2lqb3VcIDsKK+S6jOmHjeeojiA+IG5panV1emVpXCA7CivmraPmr5TkvosgPiBzZWloaXJlaVwgOwor6aCQ6YeR6ICFID4geW9raW5zaGFcIDsKK+WKoOmAn+W6piA+IGthc29rdWRvXCA7CivmraPlvZPljJYgPiBzZWl0b3VrYVwgOwor5omL5LiN6LazID4gdGVidXNva3VcIDsKK+WBtOeBq+WxsSA+IHNva2themFuXCA7CivpgY7kuI3lj4ogPiBrYWZ1a3l1dVwgOwor5q666byg5YmkID4gc2Fzc296YWlcIDsKK+iomOW/teelrSA+IGtpbmVuc2FpXCA7CivkuI3miYvpmpsgPiBmdXRlZ2l3YVwgOwor5LiN562J6L66ID4gZnV0b3VoZW5cIDsKK+iiq+Wus+WcsCA+IGhpZ2FpY2hpXCA7CivmqZ/plqLou4ogPiBraWthbnNoYVwgOwor5pel5pys57SZID4gbmlob25zaGlcIDsKK+Wuh+WumeS6uiA+IHVjaHV1amluXCA7CivmvZzmsLTlpKsgPiBzZW5zdWlmdVwgOwor5b6h6ZmA5LuPID4gb2RhYnV0c3VcIDsKK+WknOWtpuagoSA+IHlhZ2Fra291XCA7Civlho3kuIrmmKAgPiBzYWlqb3VlaVwgOwor5aSW5p2l6KqeID4gZ2FpcmFpZ29cIDsKK+mbo+egtOiIuSA+IG5hbnBhc2VuXCA7Civpp5LkuIvpp4QgPiBrb21hZ2V0YVwgOwor5rOo5oSP5pu4ID4gY2h1dWlzaG9cIDsKK+S6lOmHjeWljyA+IGdvanV1c291XCA7CivmvKvoq4flrrYgPiBtYW5kYW5rYVwgOwor5YCN57K+5bqmID4gYmFpc2VpZG9cIDsKK+e0jeS7mOiAhSA+IG5vdWZ1c2hhXCA7CivlmbTngavlj6MgPiBmdW5rYWtvdVwgOwor5LuL6K235Lq6ID4ga2FpZ29uaW5cIDsKK+mBk+itsOS8miA+IGRvdWdpa2FpXCA7CivmnInmqZ/kvZMgPiB5dXVraXRhaVwgOwor5q2755Sj5YWQID4gc2hpemFuamlcIDsKK+S4jeimj+WJhyA+IGZ1a2lzb2t1XCA7CivmvZzmsLTlmaggPiBzZW5zdWlraVwgOwor5pW05YKZ5belID4gc2VpYmlrb3VcIDsKK+iNkuatpuiAhSA+IGFyYW11c2hhXCA7CivpgaDlnLDngrkgPiBlbmNoaXRlblwgOwor5aSW5a2X57SZID4gZ2FpamlzaGlcIDsKK+S7iuaZguWIhiA+IGltYWppYnVuXCA7Civlj43li5XlrrYgPiBoYW5kb3VrYVwgOwor5qmf6Zai6KqMID4ga2lrYW5zaGlcIDsKK+Wkp+aZpuaXpSA+IG9vbWlzb2thXCA7CivkuI3nsr7lt6cgPiBmdXNlaWtvdVwgOwor5aSn5LiI5aSrID4gZGFpam91YnVcIDsKK+S/neWFqOS8miA+IGhvemVua2FpXCA7CivlkIzntKDkvZMgPiBkb3Vzb3RhaVwgOwor5YaN5Lqk5LuYID4gc2Fpa291ZnVcIDsKK+WkqeaXpeazlSA+IHRlbnBpaG91XCA7CivlrojorbfnpZ4gPiBzaHVnb2ppblwgOwor57WE5ZCI6LK7ID4ga3VtaWFpaGlcIDsKK+iNkuiVquWcsCA+IGtvdWJ1Y2hpXCA7CivmhJvlqpvnnIwgPiBlaGltZWtlblwgOwor6KiI566X5ZmoID4ga2Vpc2Fua2lcIDsKK+acqumdkuW5tCA+IG1pc2VpbmVuXCA7CivkurrkuovmrIQgPiBqaW5qaXJhblwgOwor6ZW36Z+z56ymID4gY2hvdW9ucHVcIDsKK+S4jeWdh+aWiSA+IGZ1a2luc2VpXCA7Civmupblgpnph5EgPiBqdW5iaWtpblwgOwor5reL5be05rayID4gcmlucGFla2lcIDsKK+S6i+WLmemVtyA+IGppbXVjaG91XCA7Civkv67nkIblsYsgPiBzaHV1cml5YVwgOwor5oeQ55aR6KuWID4ga2FpZ2lyb25cIDsKK+WWiemgreeCjiA+IGtvdXRvdWVuXCA7Civnlo7lpJbmhJ8gPiBzb2dhaWthblwgOwor5Yqg6YCf5ZmoID4ga2Fzb2t1a2lcIDsKK+WKoOW3peatryA+IGtha291c2hpXCA7Civluq3kuIvpp4QgPiBuaXdhZ2V0YVwgOwor6Z2e5bi45YukID4gaGlqb3VraW5cIDsKK+mHjueQg+mDqCA+IHlha3l1dWJ1XCA7CivliY3pp4bmiKYgPiB6ZW5rdXNlblwgOwor5oyH5bCO6YOoID4gc2hpZG91YnVcIDsKK+iyoeeUo+WutiA+IHphaXNhbmthXCA7CivlsYXlgqzkv4MgPiBpemFpc29rdVwgOwor5b2T5q2z6aasID4gdG91c2FpYmFcIDsKK+S7geeOi+WKmyA+IG5pb3VyaWtpXCA7CivlpJrogonmnpwgPiB0YW5pa3VrYVwgOwor5pyA55ub5pyfID4gc2Fpc2Vpa2lcIDsKK+WPjeavlOS+iyA+IGhhbnBpcmVpXCA7CivlpbPlrZDpq5ggPiBqb3NoaWtvdVwgOwor6ZaL5Zue6LevID4ga2Fpa2Fpcm9cIDsKK+Wvqeafu+WToSA+IHNoaW5zYWluXCA7Civpup3pppnmsLQgPiBqYWtvdXN1aVwgOwor5pel5pys54qsID4gbmlob25rZW5cIDsKK+S6i+WLmemHjyA+IGppbXVyeW91XCA7CivlvJXnlKjlj6UgPiBpbicneW91a3VcIDsKK+enkeWtpumZoiA+IGthZ2FrdWluXCA7CivliY3poK3pg6ggPiB6ZW50b3VidVwgOwor5Y2B5Zub5pelID4ganV1eW9ra2FcIDsKK+mAo+atjOW4qyA+IHJlbmdhc2hpXCA7CivmlK/mj7TogIUgPiBzaGllbnNoYVwgOwor5qK25pyo5bqnID4ga2FqaWtpemFcIDsKK+WcsOaWueWMuiA+IGNoaWhvdWt1XCA7CivlsbHngavkuosgPiB5YW1ha2FqaVwgOwor5omN5pyq5rqAID4gc2FpbWltYW5cIDsKK+S6uumhnueMvyA+IGppbnJ1aWVuXCA7CivorbDlrprmm7ggPiBnaXRlaXNob1wgOwor6Iy25Z2K5Li7ID4gY2hhYm91enVcIDsKK+WKoOebn+W6lyA+IGthbWVpdGVuXCA7Civnt6nkuIvliaQgPiBrYW5nZXphaVwgOwor6JCM6buE6ImyID4gbW9lZ2lpcm9cIDsKK+epuuawl+mKgyA+IGt1dWtpanV1XCA7CivpubnmsLTmuZYgPiBrYW5zdWlrb1wgOwor5rW36ICB6IWwID4gZWJpZ29zaGlcIDsKK+eUn+ioiOiyuyA+IHNlaWtlaWhpXCA7Civlj4LliqDogIUgPiBzYW5rYXNoYVwgOwor5pel5pys5rW3ID4gbmlob25rYWlcIDsKK+iiq+S5l+aVsCA+IGhpam91c3V1XCA7CivmiYvpoqjnkLQgPiB0ZWZ1dWtpblwgOwor5rOo5oSP5aCxID4gY2h1dWlob3VcIDsKK+miqOaZr+eUuyA+IGZ1dWtlaWdhXCA7Civpm7vlrZDpn7MgPiBkZW5zaGlvblwgOwor6Lui5YyW57OWID4gdGVua2F0b3VcIDsKK+mWiee1jOacnyA+IGhlaWtlaWtpXCA7Civlh7rnhKHnsr4gPiBkZWJ1c2hvdVwgOwor5LqS5Yqp55qEID4gZ29qb3Rla2lcIDsKK+S5vuaJgOW4ryA+IGthbmpvdGFpXCA7CivlpKfpn7Plo7AgPiBkYWlvbmpvdVwgOwor56C055Sj6ICFID4gaGFzYW5zaGFcIDsKK+mWieWbnui3ryA+IGhlaWthaXJvXCA7CivmqZ/plqLntJkgPiBraWthbnNoaVwgOwor6IOh6bq75pOCID4gZ29tYXN1cmlcIDsKK+apn+mbt+WOnyA+IGtpcmFpZ2VuXCA7CivlpJrlrZTmgKcgPiB0YWtvdXNlaVwgOwor5ZCI5oiQ6Z+zID4gZ291c2Vpb25cIDsKK+egtOmtlOW8kyA+IGhhbWF5dW1pXCA7CivpgKDlvbHliaQgPiB6b3VlaXphaVwgOwor5YCm5oCg5pyfID4ga2VudGFpa2lcIDsKK+acque0jeiAhSA+IG1pbm91c2hhXCA7Civkuozph43mmJ8gPiBuaWp1dXNlaVwgOwor57mB5L2T5a2XID4gaGFudGFpamlcIDsKK+a2iOmfs+WZqCA+IHNob3VvbmtpXCA7CivlpJrkurrmlbAgPiB0YW5pbnp1dVwgOwor6LW05Lu75ZywID4gZnVuaW5jaGlcIDsKK+WPpOeUn+S7oyA+IGtvc2VpZGFpXCA7Civoip3lsYXmsJcgPiBzaGliYWlnZVwgOwor5qiq5bqn5qiZID4gb3V6YWh5b3VcIDsKK+iHquitpuWboyA+IGppa2VpZGFuXCA7CivmmqvlrprmoYggPiB6YW50ZWlhblwgOwor6a2a5biC5aC0ID4gdW9pY2hpYmFcIDsKK+mnhemmrOi7iiA+IGVraWJhc2hhXCA7Civlr77oqbHkvZMgPiB0YWl3YXRhaVwgOwor5riF5o6D5aSrID4gc2Vpc291ZnVcIDsKK+mrmOaEn+W6piA+IGtvdWthbmRvXCA7CivntIDlhYPliY0gPiBraWdlbnplblwgOwor56Oo56CU57SZID4gbWFrZW5zaGlcIDsKK+eBq+icpeictCA+IGhpdG9rYWdlXCA7Civml6LlqZrogIUgPiBraWtvbnNoYVwgOwor5pCs6YCB5rOiID4gaGFuc291aGFcIDsKK+eWjumWi+iAhSA+IHNva2Fpc2hhXCA7CivmgJ3mg7PlrrYgPiBzaGlzb3VrYVwgOwor5bKp55Sw5bivID4gaXdhdGFvYmlcIDsKK+mWi+mWieapnyA+IGthaWhlaWtpXCA7Civluo/noLTmgKUgPiBqb2hha3l1dVwgOwor6Laz5b+g5a6fID4gYXNoaW1hbWVcIDsKK+WNiua4m+acnyA+IGhhbmdlbmtpXCA7Civoh6rnhLbnvo4gPiBzaGl6ZW5iaVwgOwor5YmN5LiW57SAID4gemVuc2Vpa2lcIDsKK+eglOejqOe0mSA+IGtlbm1hc2hpXCA7CivpnZLlhpnnnJ8gPiBhb2phc2hpblwgOwor56WI56W35pu4ID4ga2l0b3VzaG9cIDsKK+W4sOmChOWFtSA+IGtpa2FuaGVpXCA7CivplonntYzlvowgPiBoZWlrZWlnb1wgOwor5aSa5pa56Z2iID4gdGFob3VtZW5cIDsKK+eHleWwvuacjSA+IGVuYmlmdWt1XCA7CivnpoDorbDmm7ggPiByaW5naXNob1wgOwor54i25YWE5LyaID4gZnVrZWlrYWlcIDsKK+mrmOm6l+alvSA+IGtvbWFnYWt1XCA7Civlhajnm5vmnJ8gPiB6ZW5zZWlraVwgOwor5LqI5oOz5aSWID4geW9zb3VnYWlcIDsKK+aJgeahg+ayuSA+IGhlbnRvdXl1XCA7CivpnZLlubTmnJ8gPiBzZWluZW5raVwgOwor5Z2H562J5YyWID4ga2ludG91a2FcIDsKK+WPl+mok+iAhSA+IGp1a2Vuc2hhXCA7CivmmYLku6Pnm7ggPiBqaWRhaXNvdVwgOwor5aKX5Yqg5YiGID4gem91a2FidW5cIDsKK+S6jOmAo+mKgyA+IG5pcmVuanV1XCA7CivkuIDlm57ou6IgPiBpa2thaXRlblwgOwor5Li76ISz6YOoID4gc2h1bm91YnVcIDsKK+e0jeS7mOabuCA+IG5vdWZ1c2hvXCA7CivljZjlvIHoirEgPiB0YW5iZW5rYVwgOwor5rWB5rWq6ICFID4gcnVyb3VzaGFcIDsKK+iNkuWIqeebiiA+IGFyYXJpZWtpXCA7Civoj5PlrZDnm4YgPiBrYXNoaWJvblwgOwor5YWs55So6KqeID4ga291eW91Z29cIDsKK+WkqumZveeCiSA+IHRhaXlvdXJvXCA7Civlj5fouqvlvaIgPiB1a2VtaWtlaVwgOwor5rCR5Za25YyWID4gbWluJydlaWthXCA7CivkurrmnJvlrrYgPiBqaW5ib3VrYVwgOwor57eP5LqM6ZqOID4gc291bmlrYWlcIDsKK+ino+mbh+iAhSA+IGthaWtvc2hhXCA7CivmvKLmmYLku6MgPiBrYW5qaWRhaVwgOwor5YaF5aSW6YeOID4gbmFpZ2FpeWFcIDsKK+eJh+S7ruWQjSA+IGthdGFrYW5hXCA7CivohLHooaPmiYAgPiBkYXRzdWlqb1wgOwor5LiN6YyG6Yu8ID4gZnVzZWlrb3VcIDsKK+i0iOS4juiAhSA+IHpvdXlvc2hhXCA7Civkv53lrojns7sgPiBob3NodWtlaVwgOwor5rW36aas5ZueID4ga2FpYmFrYWlcIDsKK+iHquWgleiQvSA+IGppZGFyYWt1XCA7CivmnKzloYHmiZMgPiBob25ydWlkYVwgOwor5oSb6aSQ5LyaID4gYWlzYW5rYWlcIDsKK+WvvuaKl+mmrCA+IHRhaWtvdWJhXCA7Civku67lkI3mlocgPiBrYW5hYnVtaVwgOwor6IOh6bq75aGpID4gZ29tYXNoaW9cIDsKK+WKoOW3peWTgSA+IGtha291aGluXCA7CivmqKnliKnmm7ggPiBrZW5yaXNob1wgOwor5buD6KaB57SgID4gaGFpeW91c29cIDsKK+epuuaDs+WutiA+IGt1dXNvdWthXCA7Civml6LlrprlgKQgPiBraXRlaWNoaVwgOwor6LKp5aOy6YOoID4gaGFuYmFpYnVcIDsKK+ecvOmPoeWxiyA+IG1lZ2FuZXlhXCA7CivliY3kuJbnlYwgPiB6ZW5zZWthaVwgOwor5pys5aC05omAID4gaG9uYmFzaG9cIDsKK+iZmueEoeWFmiA+IGt5b211dG91XCA7CivkurrpoZ7mhJsgPiBqaW5ydWlhaVwgOwor5LqM6YeN5aWPID4gbmlqdXVzb3VcIDsKK+aEm+WlveiAhSA+IGFpa291c2hhXCA7CivlkIjmiJDoqp4gPiBnb3VzZWlnb1wgOwor55+z54Gr55+iID4gaXNoaWJpeWFcIDsKK+WHuue0jeewvyA+IHN1aXRvdWJvXCA7Civou43nrqHljLogPiBndW5rYW5rdVwgOwor56eL55Sw55yMID4gYWtpdGFrZW5cIDsKK+WEkuWtpueVjCA+IGp1Z2Fra2FpXCA7CivkuIvmiYvns54gPiBoZXRha3Vzb1wgOwor5pyq5aK+5ZywID4gbWlrb25jaGlcIDsKK+Wkp+WkmuaVsCA+IGRhaXRhc3V1XCA7CivlrZDljYjnt5ogPiBzaGlnb3NlblwgOwor5q2j5bi45YyWID4gc2Vpam91a2FcIDsKK+eZuumFtee0oCA+IGhha2tvdXNvXCA7Civot53pm6LoqIggPiBreW9yaWtlaVwgOwor6Ii55bCP5bGLID4gZnVuYWdveWFcIDsKK+mGuOmAoOaJgCA+IGpvdXpvdWpvXCA7CivlpKfntI3oqIAgPiBkYWluYWdvblwgOwor5aSp5paH5a62ID4gdGVubW9ua2FcIDsKK+aooemAoOiAhSA+IG1vem91c2hhXCA7Civlr53kuI3otrMgPiBuZWJ1c29rdVwgOwor5bCC6ZaA5a62ID4gc2VubW9ua2FcIDsKK+acqueEtuW9oiA+IG1pemVua2VpXCA7Civliaroo4HmqZ8gPiBzZW5zYWlraVwgOwor6LO86LK36YOoID4ga291YmFpYnVcIDsKK+aFiOWWhOS8miA+IGppemVua2FpXCA7CivmgqrotqPlkbMgPiBha3VzaHVtaVwgOwor6LSI5LiO56iOID4gem91eW96ZWlcIDsKK+S/neWtmOezuyA+IGhvem9ua2VpXCA7CivmsJfli5Xou4ogPiBraWRvdXNoYVwgOwor5rC45L2P6ICFID4gZWlqdXVzaGFcIDsKK+acqueGn+WFkCA+IG1panVrdWppXCA7CivoqJjlv7Xlk4EgPiBraW5lbmhpblwgOwor56C055Oc55eFID4gaGFrYWJ5b3VcIDsKK+egtOeUo+azlSA+IGhhc2FuaG91XCA7CivlgZzpm7vml6UgPiB0ZWlkZW5iaVwgOwor5Y+X6aiT55SfID4ganVrZW5zZWlcIDsKK+mZuOiSuOawlyA+IG9rYWpvdWtpXCA7Civlrp/ooYzmmYIgPiBqaWtrb3VqaVwgOwor5qih6YCg57SZID4gbW96b3VzaGlcIDsKK+S6jOWOn+WtkCA+IG5pZ2Vuc2hpXCA7Civku5bmiYDogIUgPiB5b3NvbW9ub1wgOwor56eL55Sw54qsID4gYWtpdGFrZW5cIDsKK+S4h+WbveaXlyA+IGJhbmtva2tpXCA7Civkuovli5nnmoQgPiBqaW11dGVraVwgOwor5o6o56e755qEID4gc3VpaXRla2lcIDsKK+epuuawl+eptCA+IGt1dWtpYW5hXCA7Civlj5flrrnogIUgPiBqdXlvdXNoYVwgOwor57Og5ZGz5ZmMID4gbnVrYW1pc29cIDsKK+aWueW9ouazoiA+IGhvdWtlaWhhXCA7CivmiKbliY3mtL4gPiBzZW56ZW5oYVwgOwor5Yem55CG5aC0ID4gc2hvcmlqb3VcIDsKK+S6jOW8pueQtCA+IG5pZ2Vua2luXCA7CivphZLpgKDlrrYgPiBzaHV6b3VrYVwgOwor5o6y56S65p2/ID4ga2VpamliYW5cIDsKK+WGhemiqOWRgiA+IHVjaGlidXJvXCA7CivkuK3lirTlp5QgPiBjaHV1cm91aVwgOwor5oSb54yr5a62ID4gYWlieW91a2FcIDsKK+S4ieWbnuW/jCA+IHNhbmthaWtpXCA7Civnt4/ku5XoiJ4gPiBzb3VqaW1haVwgOwor6Ya46YCg5a62ID4gam91em91a2FcIDsKK+S6pOS7mOmHkSA+IGtvdWZ1a2luXCA7CivmiYfpoqjmqZ8gPiBzZW5wdXVraVwgOwor5YWo5YCZ6KOcID4gemVua291aG9cIDsKK+eQhuaDs+irliA+IHJpc291cm9uXCA7Civml6XmnKzlj7IgPiBuaWhvbnNoaVwgOwor5ryi5pWw5a2XID4ga2Fuc3V1amlcIDsKK+i8neeFjOW4nSA+IGtpa291dGVpXCA7CivmlK/mjIHogIUgPiBzaGlqaXNoYVwgOwor5aSn5paH5a2XID4gZGFpbW9uamlcIDsKK+WtkOWNiOeSsCA+IHNoaWdva2FuXCA7Civoibbnpo/lrrYgPiBlbnB1a3VrYVwgOwor6ZaL6ZaJ5ZmoID4ga2FpaGVpa2lcIDsKK+WwgumWgOWMuyA+IHNlbm1vbicnaVwgOwor5pu05bm05pyfID4ga291bmVua2lcIDsKK+WwgumWgOWMliA+IHNlbm1vbmthXCA7Civml6XmnKzliIAgPiBuaWhvbnRvdVwgOwor5LiN6KGM5YSAID4gZnVneW91Z2lcIDsKK+W4sOW3o+aApyA+IGtpc291c2VpXCA7CivkuIvmiYvniakgPiBnZXRlbW9ub1wgOwor5o+Q5qGI6ICFID4gdGVpYW5zaGFcIDsKK+WPl+S/oeapnyA+IGp1c2hpbmtpXCA7Civmj5rlrZDmsZ8gPiB5b3VzdWtvdVwgOwor57WM5bi46LK7ID4ga2Vpam91aGlcIDsKK+a1t+eOi+aYnyA+IGthaW91c2VpXCA7CivlubznqJrlnJIgPiB5b3VjaGllblwgOwor5LyB55S76KqyID4ga2lrYWt1a2FcIDsKK+aciOahguaouSA+IGdla2tlaWp1XCA7CivmnKroqJjlhaUgPiBtaWtpbnl1dVwgOwor56CU56Oo5p2QID4ga2VubWF6YWlcIDsKK+S6jOW5tOiNiSA+IG5pbmVuc291XCA7Civnvqnli4fou40gPiBnaXl1dWd1blwgOwor5paH6Kqe5paHID4gYnVuZ29idW5cIDsKK+iqleeUn+aXpSA+IHRhbmpvdWJpXCA7Civph5HmmYLoqIggPiBraW5kb2tlaVwgOwor56m65rSe5YyWID4ga3V1ZG91a2FcIDsKK+eznuWRs+WZjCA+IGt1c29taXNvXCA7Civml6XmnKzkurogPiBuaWhvbmppblwgOwor5oCn6YGK5oivID4gc2VpeXV1Z2lcIDsKK+asoeeCueiAhSA+IGppdGVuc2hhXCA7CivpmLLohZDliaQgPiBib3VmdXphaVwgOwor5pel5pys5LitID4gbmlob25qdXVcIDsKK+iFleebuOaSsiA+IHVkZXp1bW91XCA7CivkuI3nr4DliLYgPiBmdXNlc3NlaVwgOwor5Zyw5Z+f5beuID4gY2hpaWtpc2FcIDsKK+S/neitt+mzpSA+IGhvZ29jaG91XCA7CivlsI/miYvlhYggPiBrb3Rlc2FraVwgOwor54Sh6ZmN5rC0ID4gbXVrb3VzdWlcIDsKK+m8u+WRvOWQuCA+IGJpa29reXV1XCA7Civph43pqI7lhbUgPiBqdXVraWhlaVwgOwor5Y+k5Luj5Y+yID4ga29kYWlzaGlcIDsKK+iDveiInuWPsCA+IG5vdWJ1dGFpXCA7Civnq7bppqzppqwgPiBrZWliYXVtYVwgOwor5YWN56ef5ZywID4gbWVuc29jaGlcIDsKK+S6jOasoeeahCA+IG5paml0ZWtpXCA7CivmvJTlpY/ogIUgPiBlbnNvdXNoYVwgOwor5YW35L2T5oCnID4gZ3V0YWlzZWlcIDsKK+S4gOetiei7iiA+IGl0dG91c2hhXCA7CivkuI3lk4HooYwgPiBmdWhpbmtvdVwgOwor54m556eR5YW1ID4gdG9ra2FoZWlcIDsKK+iEguiCquayuSA+IHNoaWJvdXl1XCA7Civlt6blpKfoh6MgPiBzYWRhaWppblwgOwor6YeR5a2X5aGUID4ga2luaml0b3VcIDsKK+mrmOmHjuWxsSA+IGtvdXlhc2FuXCA7CivlpKfnhorluqcgPiBvb2d1bWF6YVwgOwor5YaS6Zm65a62ID4gYm91a2Vua2FcIDsKK+Whqea/g+W6piA+IGVuJydub3Vkb1wgOwor5pel5LmD5Li4ID4gaGlub21hcnVcIDsKK+S9leWHpui/hCA+IGRva29tYWRlXCA7Civov5HkvLzlgKQgPiBraW5qaWNoaVwgOwor6YCP56OB5oCnID4gdG91amlzZWlcIDsKK+S/neitt+mgmCA+IGhvZ29yeW91XCA7CivnibnmtL7lk6EgPiB0b2t1aGFpblwgOwor5ZS+5ray6IW6ID4gZGFla2lzZW5cIDsKK+W6reacqOaIuCA+IG5pd2FraWRvXCA7Civlvozmj7TogIUgPiBrb3VlbnNoYVwgOwor6buE6YmE6YmxID4gb3V0ZWtrb3VcIDsKK+WPpOS7o+S6uiA+IGtvZGFpamluXCA7Civkuovli5nmnI0gPiBqaW11ZnVrdVwgOwor5bCP6bqm57KJID4ga29tdWdpa29cIDsKK+S4jea6tuaApyA+IGZ1eW91c2VpXCA7CivpoafllY/lm6MgPiBrb21vbmRhblwgOwor5L+d5pyJ6ICFID4gaG95dXVzaGFcIDsKK+mBv+eXhemZoiA+IGhpYnlvdWluXCA7CivliY3mma/msJcgPiBtYWVnZWlraVwgOwor5qmf6Zai5aOrID4ga2lrYW5zaGlcIDsKK+WkluS6pOWToSA+IGdhaWtvdWluXCA7CivpioXnm7jloLQgPiBkb3Vzb3ViYVwgOwor5YK+5pac5bqmID4ga2Vpc2hhZG9cIDsKK+mrmOW6puioiCA+IGtvdWRva2VpXCA7Civov5HmnKrmnaUgPiBraW5taXJhaVwgOwor5o2V6a+o6Ii5ID4gaG9nZWlzZW5cIDsKK+WKoOWus+iAhSA+IGthZ2Fpc2hhXCA7CivmlbDnj6DnjokgPiBqdXp1ZGFtYVwgOwor5omL57695YWIID4gdGViYXNha2lcIDsKK+ijnOWKqee/vCA+IGhvam95b2t1XCA7CivmhYjmgrLlv4MgPiBqaWhpc2hpblwgOwor5aSW6LKo5YK1ID4gZ2Fpa2FzYWlcIDsKK+aDheWgseWMliA+IGpvdWhvdWthXCA7Civnt4/kuojnrpcgPiBzb3V5b3NhblwgOwor55yf5aSc5LitID4gbWF5b25ha2FcIDsKK+S4i+aEj+itmCA+IGthaXNoaWtpXCA7Civku6PnqL3lj6QgPiBkYWlnZWlrb1wgOwor5rC45L2P5qipID4gZWlqdXVrZW5cIDsKK+S/neacieexsyA+IGhveXV1bWFpXCA7Civoh6rlm73oqp4gPiBqaWtva3Vnb1wgOwor5Y+N5a++6KqeID4gaGFudGFpZ29cIDsKK+WkieeVsOS9kyA+IGhlbicnaXRhaVwgOwor5Yip5bex55qEID4gcmlrb3Rla2lcIDsKK+W7uuWFt+WxiyA+IHRhdGVndXlhXCA7CivpmLLlr5LlhbcgPiBib3VrYW5ndVwgOwor5aWz5a2m5qChID4gam9nYWtrb3VcIDsKK+S/neWuiOaApyA+IGhvc2h1c2VpXCA7Civlpb3mma/msJcgPiBrb3VrZWlraVwgOwor5Lqk5LuY6ICFID4ga291ZnVzaGFcIDsKK+WPr+WkieaVsCA+IGthaGVuc3V1XCA7CivoirHmloflrZcgPiBoYW5hbW9qaVwgOwor6Z2i5Lya5pelID4gbWVua2FpYmlcIDsKK+eFmeiNieWxiyA+IHRhYmFrb3lhXCA7Civpm6jmqKHmp5ggPiBhbWVtb3lvdVwgOwor5o+657GD5pyfID4geW91cmFua2lcIDsKK+eqgeegtOWPoyA+IHRvcHBha291XCA7Civov5Hku6PljJYgPiBraW5kYWlrYVwgOwor54K554Gr57O7ID4gdGVua2FrZWlcIDsKK+S6jOW5tOeUnyA+IG5pbmVuc2VpXCA7CivmmJ/msJfkvZMgPiBzZWlraXRhaVwgOwor5LiN562J5Y+3ID4gZnVkb3Vnb3VcIDsKK+S6lOi+uuW9oiA+IGdvaGVua2VpXCA7CivkuozovKrou4ogPiBuaXJpbnNoYVwgOwor55So566q56ylID4geW91ZGFuc3VcIDsKK+WGt+iUteW6qyA+IHJlaXpvdWtvXCA7CivkuI3miYDlrZggPiBmdXNob3pvblwgOwor5oqV5YWJ5ZmoID4gdG91a291a2lcIDsKK+Wls+WtkOagoSA+IGpvc2hpa291XCA7CivmtZzojITlrZAgPiBoYW1hbmFzdVwgOwor5Y+k5pu45bGVID4ga29zaG90ZW5cIDsKK+S6jOWNgeS7oyA+IG5panV1ZGFpXCA7CivluILooZflm7MgPiBzaGlnYWl6dVwgOwor5qi55p6d54q2ID4ganVzaGlqb3VcIDsKK+W6j+ebpOaIpiA+IGpvYmFuc2VuXCA7CivngavmiJDlsqkgPiBrYXNlaWdhblwgOwor57WE5ZCI5ZOhID4ga3VtaWFpaW5cIDsKK+S6nOiEseiHvCA+IGFkYWtreXV1XCA7CivprLHph5HoibIgPiB1a29uJydpcm9cIDsKK+msvOatpuiAhSA+IG9uaW11c2hhXCA7CivmlpzmipXlvbEgPiBzaGF0b3VlaVwgOwor5ruR56m65qmfID4ga2Fra3V1a2lcIDsKK+i7vemojuWFtSA+IGtlaWtpaGVpXCA7CivkuozlhYPoq5YgPiBuaWdlbnJvblwgOwor5omL5paZ55CGID4gdGVyeW91cmlcIDsKK+WNmOWIqeazlSA+IHRhbnJpaG91XCA7CivlvqHnpZ7ovL8gPiBvbWlrb3NoaVwgOwor5YWI6Yut5YyWID4gc2VuJydlaWthXCA7CivmkpLluIPliaQgPiBzYXBwdXphaVwgOwor5ZGJ5pyN5bGLID4gZ29mdWt1eWFcIDsKK+WPl+S/oeWZqCA+IGp1c2hpbmtpXCA7Civmurbop6PngokgPiB5b3VrYWlyb1wgOwor5Y+v5aSJ5oCnID4ga2FoZW5zZWlcIDsKK+W5tOm9ouW3riA+IG5lbnJlaXNhXCA7CivliIDlnK3lrrYgPiB0b3VrZWlrYVwgOwor6bOz5LuZ6IqxID4gaG91c2Vua2FcIDsKK+WwjuazoueuoSA+IGRvdWhha2FuXCA7CivljZjmr5TkvosgPiB0YW5waXJlaVwgOwor5o2V6a+o56CyID4gaG9nZWlob3VcIDsKK+ebtOi2s+iiiyA+IGppa2F0YWJpXCA7CivmgqrlpKrpg44gPiBha3V0YXJvdVwgOwor5pyJ55CG5pWwID4geXV1cmlzdXVcIDsKK+mDqOWIhuWTgSA+IGJ1YnVuaGluXCA7Civlj6/nh4PmgKcgPiBrYW5lbnNlaVwgOwor5LiN5ZaE5oSfID4gZnV6ZW5rYW5cIDsKK+a0l+mdouaJgCA+IHNlbm1lbmpvXCA7CivpgIHmsrnnrqEgPiBzb3V5dWthblwgOwor5qC85a2Q5oi4ID4ga291c2hpZG9cIDsKK+WFt+S9k+S+iyA+IGd1dGFpcmVpXCA7CivmlK/mjIHmna0gPiBzaGlqaWtvdVwgOwor54Sh6ZmQ5aSnID4gbXVnZW5kYWlcIDsKK+eyvuexs+aJgCA+IHNlaW1haWpvXCA7CivntbHoqp7oq5YgPiB0b3Vnb3JvblwgOwor5pyq6ZaL5aK+ID4gbWlrYWlrb25cIDsKK+S9nOalreiyuyA+IHNhZ3lvdWhpXCA7CivlpKfpmKrlupwgPiBvb3Nha2FmdVwgOwor54yK576O5riTID4gZ2VpYmlrZWlcIDsKK+aJk+aSg+eOiyA+IGRhZ2VraW91XCA7CivluoPokYnmqLkgPiBrb3V5b3VqdVwgOwor6I2J5Ym15pyfID4gc291c291a2lcIDsKK+S+jeihm+mVtyA+IGppZWljaG91XCA7CivkuozpgLLmnKggPiBuaXNoaW5naVwgOwor6aGV5Zyo5YyWID4ga2VuemFpa2FcIDsKK+WGjeippuWQiCA+IHNhaXNoaWFpXCA7CivkvJ3pn7PlmaggPiBkZW4nJ29ua2lcIDsKK+e+qeWLmeeahCA+IGdpbXV0ZWtpXCA7CivovLjljbXnrqEgPiB5dXJhbmthblwgOwor5L2O5Yip6YeRID4gdGVpcmlraW5cIDsKK+aIpuWIqeWTgSA+IHNlbnJpaGluXCA7Civmlofoqp7kvZMgPiBidW5nb3RhaVwgOwor5Lm+5oCn5rK5ID4ga2Fuc2VpeXVcIDsKK+aTgueyieacqCA+IHN1cmlrb2dpXCA7CivmjIflsI7lk6EgPiBzaGlkb3VpblwgOwor5pyq6ZaL5ZywID4gbWlrYWljaGlcIDsKK+enmOabuOWumCA+IGhpc2hva2FuXCA7CivmrablrrbniakgPiBidWtlbW9ub1wgOwor5pW055CG5Yi4ID4gc2VpcmlrZW5cIDsKK+iCsumbm+WZqCA+IGlrdXN1dWtpXCA7CivlnKfmkL7mqZ8gPiBhc3Nha3VraVwgOwor5LqM5YiG5rOVID4gbmlidW5ob3VcIDsKK+a3t+aIkOiqniA+IGtvbnNlaWdvXCA7Civnj4jnkLLoi5EgPiBrb3VoaWllblwgOwor5LqM6YOo5L2cID4gbmlidXNha3VcIDsKK+e3j+S8muWxiyA+IHNvdWthaXlhXCA7Civku5XmiYvmiKYgPiBzaGl0ZXNlblwgOwor5aW95aW954i6ID4ga291a291eWFcIDsKK+eojuWLmee9siA+IHplaW11c2hvXCA7Civosqnlo7LmqZ8gPiBoYW5iYWlraVwgOwor56m65rCX5a2UID4ga3V1a2lrb3VcIDsKK+eWsuWKtOaEnyA+IGhpcm91a2FuXCA7CivmlL7msLTot68gPiBob3VzdWlyb1wgOwor5Lya6K2w5omAID4ga2FpZ2lzaG9cIDsKK+W9ouWuueiqniA+IGtlaXlvdWdvXCA7CivkuIDlm57miKYgPiBpa2thaXNlblwgOwor55aR5ZWP6KmeID4gZ2ltb25zaGlcIDsKK+iLpuWKtOS6uiA+IGt1cm91bmluXCA7CivogZbngavlj7AgPiBzZWlrYWRhaVwgOwor5rC05L2N5qiZID4gc3VpaWh5b3VcIDsKK+aCsuims+irliA+IGhpa2Fucm9uXCA7CivlpoToqp7miJIgPiBtb3Vnb2thaVwgOwor5rC45bCP5L2cID4gZWlrb3Nha3VcIDsKK+eCree0oOmLvCA+IHRhbnNva291XCA7CivnuYrntq3mnZ8gPiBzZW5pc29rdVwgOwor6Kej5pS+5Yy6ID4ga2FpaG91a3VcIDsKK+S/neWuiOWFmiA+IGhvc2h1dG91XCA7CivntIXkuIDngrkgPiBrb3VpdHRlblwgOwor5LyB5qWt5a62ID4ga2lneW91a2FcIDsKK+WutuW6reeUqCA+IGthdGVpeW91XCA7CivomZrnqbrolLUgPiBrb2t1dXpvdVwgOwor5Lya6KiI6KqyID4ga2Fpa2Vpa2FcIDsKK+WLpOWLmeiAhSA+IGtpbm11c2hhXCA7Civot53pm6LmhJ8gPiBreW9yaWthblwgOwor5LiN5oiQ5YqfID4gZnVzZWlrb3VcIDsKK+eliOW5tOelrSA+IGtpbmVuc2FpXCA7CivnnIvorbfms5UgPiBrYW5nb2hvdVwgOwor5YKs5LqL5aC0ID4gc2Fpamlqb3VcIDsKK+msvOWFtemaiiA+IGtpaGVpdGFpXCA7CivlpbPlrZDlpKcgPiBqb3NoaWRhaVwgOwor5ZSv5oiR6KuWID4geXVpZ2Fyb25cIDsKK+acquijveWTgSA+IG1pc2VpaGluXCA7CivnhKHntbHliLYgPiBtdXRvdXNlaVwgOwor6YCg6Ii55omAID4gem91c2Vuam9cIDsKK+i6q+aUr+W6piA+IG1paml0YWt1XCA7Civph5HmnKzkvY0gPiBraW5ob24nJ2lcIDsKK+WkmumdouaApyA+IHRhbWVuc2VpXCA7CivlpKflnovmqZ8gPiBvb2dhdGFraVwgOwor5pyq6ZaL5Lq6ID4gbWlrYWlqaW5cIDsKK+iXgeWxi+aguSA+IHdhcmF5YW5lXCA7CivmnIjkuJbnlYwgPiBnZXNzZWthaVwgOwor5b6X5oSP6aGUID4gdG9rdWlnYW9cIDsKK+aJi+mWk+mamSA+IHRlbWFoaW1hXCA7CivnqbrmsJflj6MgPiBrdXVraWtvdVwgOwor5pS/5rK754qvID4gc2VpamloYW5cIDsKK+a0l+mdouWZqCA+IHNlbm1lbmtpXCA7CivkurrmloflrZcgPiBoaXRvbW9qaVwgOwor5qih6YCg5ZOBID4gbW96b3VoaW5cIDsKK+WRvOWQuOWZqCA+IGtva3l1dWtpXCA7CivlnJ/lnLDpkZEgPiB0b2NoaWthblwgOwor5rCX6YCB566hID4ga2lzb3VrYW5cIDsKK+S9jumHkeWIqSA+IHRlaWtpbnJpXCA7CivluL3lrZDlsYsgPiBib3VzaGl5YVwgOwor5b6h5oiQ5YqfID4gZ29zZWlrb3VcIDsKK+ePiueRmua1tyA+IHNhbmdva2FpXCA7Civmm7PlhYnlvL4gPiBlaWtvdWRhblwgOwor5Y2D6YeM55y8ID4gc2VucmlnYW5cIDsKK+iQveS4i+WCmCA+IHJha2thc2FuXCA7CivmuKHoiKrogIUgPiB0b2tvdXNoYVwgOwor5LiL5omL5Lq6ID4gZ2VzaHVuaW5cIDsKK+WHpuWls+aelyA+IHNob2pvcmluXCA7Civkuovmpa3pg6ggPiBqaWd5b3VidVwgOwor5a+M5bGx5oi/ID4gZnV6YW5ib3VcIDsKK+aOpeW+heiyuyA+IHNldHRhaWhpXCA7CivnuYrntq3mgKcgPiBzZW4nJ2lzZWlcIDsKK+aJi+ipseazlSA+IHNodXdhaG91XCA7Civkv53ppIrlnLAgPiBob3lvdWNoaVwgOwor5Yip5bex5b+DID4gcmlrb3NoaW5cIDsKK+eCueeBq+agkyA+IHRlbmthc2VuXCA7CivpjpTpibHngokgPiB5b3Vrb3Vyb1wgOwor5Y+v5o+b576kID4ga2FrYW5ndW5cIDsKK+S8muitsOWgtCA+IGthaWdpam91XCA7CivkurrpnZ7kurogPiBuaW5waW5pblwgOwor6Iqx57KJ566hID4ga2FmdW5rYW5cIDsKK+mBjua/gOa0viA+IGthZ2VraWhhXCA7Civmurbop6PluqYgPiB5b3VrYWlkb1wgOwor5Y+l6Kqt54K5ID4ga3V0b3V0ZW5cIDsKK+aNnOafu+mZoyA+IHNvdXNhamluXCA7CivkvIHmpa3ljJYgPiBraWd5b3VrYVwgOwor5Za25Yip55qEID4gZWlyaXRla2lcIDsKK+iiq+eBveiAhSA+IGhpc2Fpc2hhXCA7CivkuI3lvpPpoIYgPiBmdWp1dWp1blwgOwor5Y+N5bCE54KJID4gaGFuc2hhcm9cIDsKK+S9neWDgueXhSA+IGt1cnVieW91XCA7Civpg73kvJrkurogPiB0b2thaWppblwgOwor5ZGq56aB6YGTID4ganVrb25kb3VcIDsKK+WPpOeJiOacrCA+IGtvaGFuYm9uXCA7CivmuKzlgJnmiYAgPiBzb2trb3Vqb1wgOwor5rS+6YGj6ZqKID4gaGFrZW50YWlcIDsKK+atk+i/juWutCA+IGthbmdlaWVuXCA7CivmiJDlip/oo6EgPiBzZWlrb3VyaVwgOwor5a625bqt5qyEID4ga2F0ZWlyYW5cIDsKK+WkmuWkieaVsCA+IHRhaGVuc3V1XCA7CivnlLfmgKfnvo4gPiBkYW5zZWliaVwgOwor6auY5qmf6IO9ID4ga291a2lub3VcIDsKK+S6uumWk+iLpiA+IG5pbmdlbmt1XCA7CivkuInlkbPnt5ogPiBzaGFtaXNlblwgOwor5a+/5Zac54S8ID4gc3VraXlha2lcIDsKK+WQjOeoi+W6piA+IGRvdXRlaWRvXCA7Civlpb3loanoj4wgPiBrb3VlbmtpblwgOwor6YCB5rCX566hID4gc291a2lrYW5cIDsKK+eKoOeJsuiAhSA+IGdpc2Vpc2hhXCA7CivoirHntIvmnb8gPiBrYW1vbmJhblwgOwor6Zu75a2Q5YyWID4gZGVuc2hpa2FcIDsKK+WwveacquadpSA+IGppbm1pcmFpXCA7Civlj6Xoqq3ms5UgPiBrdXRvdWhvdVwgOwor5aW95aSp5rCXID4ga291dGVua2lcIDsKK+a1hOWMluanvSA+IGpvdWthc291XCA7CivmnInlo7Dpn7MgPiB5dXVzZWlvblwgOwor5Y+N5L2c55SoID4gaGFuc2F5b3VcIDsKK+WFqOiHquWLlSA+IHplbmppZG91XCA7Civlj43lr77mtL4gPiBoYW50YWloYVwgOwor5Yem5aWz5oCnID4gc2hvam9zZWlcIDsKK+aJi+mWk+izgyA+IHRlbWFjaGluXCA7CivkuIDlm57liIYgPiBpa2thaWJ1blwgOwor572554G96ICFID4gcmlzYWlzaGFcIDsKK+iyr+eCreaJgCA+IGNob3RhbmpvXCA7CivmnInkurrljJYgPiB5dXVqaW5rYVwgOwor5Y2w6LGh5rS+ID4gaW5zaG91aGFcIDsKK+ism+a8lOiAhSA+IGtvdWVuc2hhXCA7Civmp43pqI7lhbUgPiBzb3VraWhlaVwgOwor6YCD6YG/6KGMID4gdG91aGlrb3VcIDsKK+WGheeBq+iJhyA+IG5haWthdGVpXCA7CivlnKfmkL7lmaggPiBhc3Nha3VraVwgOwor5Yip5qip5bGLID4gcmlrZW4nJ3lhXCA7CivlhYnluqboqIggPiBrb3Vkb2tlaVwgOwor6Zay5YW15Y+wID4gZXBwZWlkYWlcIDsKK+a3t+eoruiqniA+IGtvbnNodWdvXCA7CivpgI/pgY7mgKcgPiB0b3VrYXNlaVwgOwor5Lya6KaL6KiYID4ga2Fpa2Vua2lcIDsKK+ebuOS8vOeCuSA+IHNvdWppdGVuXCA7CivonrrlrZDph5ggPiBuZWppa3VnaVwgOwor5Yem5aWz5bOwID4gc2hvam9ob3VcIDsKK+eci+itt+W4qyA+IGthbmdvc2hpXCA7CivmnInpoILngrkgPiB1Y2hvdXRlblwgOwor5LiA562J5pifID4gaXR0b3VzZWlcIDsKK+S4i+awtOmBkyA+IGdlc3VpZG91XCA7CivpnZ7kurrmg4UgPiBoaW5pbmpvdVwgOwor5Li7576p6ICFID4gc2h1Z2lzaGFcIDsKK+a0vumBo+i7jSA+IGhha2VuZ3VuXCA7Civlho3mj5DmoYggPiBzYWl0ZWlhblwgOwor576O5oSP6K2YID4gYmlpc2hpa2lcIDsKK+e3j+acrOWutiA+IHNvdWhvbmtlXCA7CivluqblpJboppYgPiBkb2dhaXNoaVwgOwor6YGg5b6B6ZqKID4gZW5zZWl0YWlcIDsKK+eQhuaDs+WeiyA+IHJpc291a2VpXCA7Civku67liIbmlbAgPiBrYWJ1bnN1dVwgOwor5Yqp5pWw6KmeID4gam9zdXVzaGlcIDsKK+eyvueul+aJgCA+IHNlaXNhbmpvXCA7CivmtojngavlmaggPiBzaG91a2FraVwgOwor5aSa6Z2i5L2TID4gdGFtZW50YWlcIDsKK+W9oumquOWMliA+IGtlaWdhaWthXCA7CivmrKfnsbPkurogPiBvdWJlaWppblwgOwor57WM5bir5bGLID4ga3lvdWppeWFcIDsKK+iqpOWkieaPmyA+IGdvaGVua2FuXCA7CivpgoTku5jph5EgPiBrYW5wdWtpblwgOwor5pmp5b6h6aOvID4gYmFuZ29oYW5cIDsKK+iFleiHquaFoiA+IHVkZWppbWFuXCA7CivmtYTmsLTlmaggPiBqb3VzdWlraVwgOwor5Yqp5pWZ6KutID4gam9reW91eXVcIDsKK+eci+itt+WjqyA+IGthbmdvc2hpXCA7CivmsLjlrZDkvZwgPiBlaWtvc2FrdVwgOwor5Yem5aWz5ZywID4gc2hvam9jaGlcIDsKK+WIqeeUqOiAhSA+IHJpeW91c2hhXCA7CivnhKHnsr7ljbUgPiBtdXNlaXJhblwgOwor54Sh6Zai5L+CID4gbXVrYW5rZWlcIDsKK+ato+Wtl+azlSA+IHNlaWppaG91XCA7Civou43ljLvnm6MgPiBndW4nJ2lrYW5cIDsKK+itpuS4luWutiA+IGtlaXNlaWthXCA7CivmnaXlrabmnJ8gPiByYWlnYWtraVwgOwor5pig55S76KmVID4gZWlnYWh5b3VcIDsKK+aJueWIpOiAhSA+IGhpaGFuc2hhXCA7CivlubPlj5nmlocgPiBoZWlqb2J1blwgOwor5LiJ6YeN6IumID4gc2FuanV1a3VcIDsKK+aooeWAo+iAhSA+IG1vaG91c2hhXCA7CivkuojpgbjkvJogPiB5b3NlbmthaVwgOwor5ryU5aWP5LyaID4gZW5zb3VrYWlcIDsKK+S4jea0u+aApyA+IGZ1a2Fzc2VpXCA7Civplovlj6Ppg6ggPiBrYWlrb3VidVwgOwor5Y+M6IO05qmfID4gc291ZG91a2lcIDsKK+mgiOW8peWxsSA+IHNodW1pc2VuXCA7Civlgb3pgKDnvaogPiBnaXpvdXphaVwgOwor56eA55S75a62ID4gc2h1dWdha2FcIDsKK+S6pOS7o+WToSA+IGtvdXRhaWluXCA7CivotaTpm7voqbEgPiBha2FkZW53YVwgOwor5pyJ5pyf5YiRID4geXV1a2lrZWlcIDsKK+WPo+ipseazlSA+IGtvdXdhaG91XCA7CivmiLjkuLvmqKkgPiBrb3NodWtlblwgOwor5YWs5a6J5a6YID4ga291YW5rYW5cIDsKK+atr+eJmeeKtiA+IHNoaWdham91XCA7CivkvJ3lo7DlmaggPiBkZW5zZWlraVwgOwor5L+d6Zm66YeRID4gaG9rZW5raW5cIDsKK+aMh+aVsOmDqCA+IHNoaXN1dWJ1XCA7Civosaroj6/oiLkgPiBnb3VrYXNlblwgOwor5Li45pqX6KiYID4gbWFydWFua2lcIDsKK+Wfuua6lueCuSA+IGtpanVudGVuXCA7Civlvozmj7TkvJogPiBrb3VlbmthaVwgOwor55yM6K2w5LyaID4ga2VuZ2lrYWlcIDsKK+ihjOWcqOaJgCA+IGFuemFpc2hvXCA7Civlj6Poqp7mlocgPiBrb3Vnb2J1blwgOwor5a+d54WZ6I2JID4gbmV0YWJha29cIDsKK+aWreegtOWjiiA+IGRhbmhha2FpXCA7Civno4HpiYTpibEgPiBqaXRla2tvdVwgOwor5YaG54K65pu/ID4gZW5nYXdhc2VcIDsKK+eci+itt+WFtSA+IGthbmdvaGVpXCA7Civllrbmpa3pg6ggPiBlaWd5b3VidVwgOwor5LiN5raI5YyWID4gZnVzaG91a2FcIDsKK+S4jeW+s+e+qSA+IGZ1dG9rdWdpXCA7CivlnLDlkLnpm6ogPiBqaWZ1YnVraVwgOwor6aCI5byl5aOHID4gc2h1bWlkYW5cIDsKK+S9kOW5lea0viA+IHNhYmFrdWhhXCA7CivpoJPnl7TmsJcgPiB0b25jaGlraVwgOwor5aSa5pWw5YWaID4gdGFzdXV0b3VcIDsKK+i8uOmAgeiIuSA+IHl1c291c2VuXCA7CivmjqHmsrnmqKkgPiBzYWl5dWtlblwgOwor5p2l5LiW57SAID4gcmFpc2Vpa2lcIDsKK+WxseawtOeUuyA+IHNhbnN1aWdhXCA7CivmjoPpmaTkurogPiBzb3VqaW5pblwgOwor5LiA562J5ZywID4gaXR0b3VjaGlcIDsKK+eojuWLmeWumCA+IHplaW11a2FuXCA7CivnnIvorbfkurogPiBrYW5nb25pblwgOwor5Y2K5YiH56ymID4gaGFua2lwcHVcIDsKK+Wcp+eAmOWZqCA+IGF0c3Vyb2tpXCA7Civln7rmupbms5UgPiBraWp1bmhvdVwgOwor5Y+X6Kyb6ICFID4ganVrb3VzaGFcIDsKK+a4rOi3neWEgCA+IHNva2t5b2dpXCA7Civlhrflh43mqZ8gPiByZWl0b3VraVwgOwor562J6Led6ZuiID4gdG91a3lvcmlcIDsKK+S4jeWQjeaVsCA+IGZ1bWVpc3V1XCA7CivoqabpgYvou6IgPiBzaGl1bnRlblwgOwor576p5YuH5YW1ID4gZ2l5dXVoZWlcIDsKK+imqueUu+mdoiA+IG95YWdhbWVuXCA7Civmi5LlkKbmqKkgPiBreW9oaWtlblwgOwor5LqM55Wq57eaID4gbmliYW5zZW5cIDsKK+WWtualreiyuyA+IGVpZ3lvdWhpXCA7Civnm7jkvLzlvaIgPiBzb3VqaWtlaVwgOwor5Y+M55Sf5YWQID4gc291c2VpamlcIDsKK+e9ueeBveawkSA+IHJpc2FpbWluXCA7Civlr4TnlJ/mnKggPiB5YWRvcmlnaVwgOwor54Gr6Jas5bqrID4ga2F5YWt1a29cIDsKK+i1pOmgreW3viA+IGFrYXp1a2luXCA7CivonKXonLTluqcgPiB0b2thZ2V6YVwgOwor6K2m5aCx6Z+zID4ga2VpaG91b25cIDsKK+Wkp+icpeictCA+IG9vdG9rYWdlXCA7Civmm7TnlJ/mnJ8gPiBrb3VzZWlraVwgOwor55aR5ZWP5paHID4gZ2ltb25idW5cIDsKK+iNt+eCuuabvyA+IG5pZ2F3YXNlXCA7CivlnKfmv77lmaggPiBhdHN1cm9raVwgOwor6IWO6IeT54KOID4gamluem91ZW5cIDsKK+e3mue2readnyA+IHNlbmlzb2t1XCA7Civlr4TotIjogIUgPiBraXpvdXNoYVwgOwor5a625bqt5YaFID4ga2F0ZWluYWlcIDsKK+iQveiqnuWutiA+IHJha3Vnb2thXCA7CivnhKHnr4Dmk40gPiBtdXNlc3NvdVwgOwor5a6555aR6ICFID4geW91Z2lzaGFcIDsKK+WxlemWi+WbsyA+IHRlbmthaXp1XCA7Civnp4HnlJ/lhZAgPiBzaGlzZWlqaVwgOwor5aSn5omL562LID4gb290ZXN1amlcIDsKK+WFrOWumuS+oSA+IGtvdXRlaWthXCA7CivmsJfliIblsYsgPiBraWJ1bicneWFcIDsKK+S4gOetieWFtSA+IGl0dG91aGVpXCA7CivkuIvmsLTnrqEgPiBnZXN1aWthblwgOwor5pW05pWw5q+UID4gc2Vpc3V1aGlcIDsKK+ekvuWLmeaJgCA+IHNoYW11c2hvXCA7Civpq5jlsaTpm7IgPiBrb3Vzb3V1blwgOwor5bi45aWX6KqeID4gam91dG91Z29cIDsKK+iIueWkluapnyA+IHNlbmdhaWtpXCA7Civlj4zmmpfou4ogPiBzb3VhbnNoYVwgOwor5peF5a6i5qmfID4gcnlva2Fra2lcIDsKK+mBi+WWtuiAhSA+IHVuJydlaXNoYVwgOwor5oGj5oSP55qEID4gc2hpaXRla2lcIDsKK+egtOWkqeiNkiA+IGhhdGVua291XCA7CivnhrHluK/lpJwgPiBuZXR0YWl5YVwgOwor6YGU5oiQ5bqmID4gdGFzc2VpZG9cIDsKK+WkmuinkuW9oiA+IHRha2Fra2VpXCA7CivlhaXkvJrmqKkgPiBpcmlhaWtlblwgOwor5Y2D6JGJ55yMID4gY2hpYmFrZW5cIDsKK+S6lOaciOmbqCA+IHNhbWlkYXJlXCA7CivmnInpoILlpKkgPiB1Y2hvdXRlblwgOwor5rqW5Lya5ZOhID4ganVua2FpaW5cIDsKK+awtOabnOaXpSA+IHN1aXlvdWJpXCA7CivmuIfmsLTmnJ8gPiBrYXNzdWlraVwgOwor56u26aas5aC0ID4ga2VpYmFqb3VcIDsKK+mzqeWwj+WxiyA+IGhhdG9nb3lhXCA7CivkuI3mraPoppYgPiBmdXNlaXNoaVwgOwor5Zub5Y2K5pyfID4gc2hpaGFua2lcIDsKK+eGlOmJseeCiSA+IHlvdWtvdXJvXCA7CivkvZznlKjngrkgPiBzYXlvdXRlblwgOwor6YGK5ZyS5ZywID4geXV1ZW5jaGlcIDsKK+i7jOmBk+iIuSA+IGtpZG91c2VuXCA7CivlvIHnkIblo6sgPiBiZW5yaXNoaVwgOwor6bq76YWU6YqDID4gbWFzdWlqdXVcIDsKK+acqOieuuWtkCA+IG1va3VuZWppXCA7CivmranmlbDoqIggPiBob3N1dWtlaVwgOwor5Li76aGM5q2MID4gc2h1ZGFpa2FcIDsKK+ato+S8muWToSA+IHNlaWthaWluXCA7Civlvq7liIbms5UgPiBiaWJ1bmhvdVwgOwor5YuV5ZOh5LukID4gZG91aW5yZWlcIDsKK+mdkueTpuWPsCA+IHNlaWdhZGFpXCA7CivmuKHoiLnloLQgPiB0b3NlbmpvdVwgOwor5oSP6K2Y5LiLID4gaXNoaWtpa2FcIDsKK+S/neitt+WbvSA+IGhvZ29rb2t1XCA7CivlkIzmgKfmhJsgPiBkb3VzZWlhaVwgOwor5rK55Zyn5ZmoID4geXVhdHN1a2lcIDsKK+eHlemdkuaLsyA+IGVuc2Vpa2VuXCA7CivlubzlubTmnJ8gPiB5b3VuZW5raVwgOwor6LGq6I+v54mIID4gZ291a2FiYW5cIDsKK+WMu+WOn+eXhSA+IGlnZW5ieW91XCA7Civpm7voqbHnt5ogPiBkZW53YXNlblwgOwor5Ya35YeN5bqrID4gcmVpdG91a29cIDsKK+mChOS7mOeojiA+IGthbnB1emVpXCA7CivlvIHorbfogIUgPiBiZW5nb3NoYVwgOwor6Zu76Kmx57ayID4gZGVud2Ftb3VcIDsKK+eZu+WxsemBkyA+IHRvemFuZG91XCA7Civph43pm7vmqZ8gPiBqdXVkZW5raVwgOwor5LiN5oGw5aW9ID4gYnVrYWtrb3VcIDsKK+mYv+aIv+mzpSA+IGFob3Vkb3JpXCA7CivkuojlgpnnmoQgPiB5b2JpdGVraVwgOwor5om25Yqp5paZID4gZnVqb3J5b3VcIDsKK+eMv+efpeaBtSA+IHNhcnVkamllXCA7CivlnLDolLXpoZQgPiBqaXpvdWdhb1wgOwor5L2c5qWt5aC0ID4gc2FneW91YmFcIDsKK+epuuebuOWgtCA+IGt1dXNvdWJhXCA7Civmt7flkIjoqp4gPiBrb25nb3Vnb1wgOwor5aal5Y2U5qGIID4gZGFreW91YW5cIDsKK+aFsOisneaWmSA+IGlzaGFyeW91XCA7CivnhKHmirXmipcgPiBtdXRlaWtvdVwgOwor6JGJ56+A54K5ID4gaGFzZXR0ZW5cIDsKK+S7luWLleipniA+IHRhZG91c2hpXCA7CivmnKrmiJDlubQgPiBtaXNlaW5lblwgOwor5ouY5byV54q2ID4ga291aW5qb3VcIDsKK+aYoOeUu+eLgiA+IGVpZ2FreW91XCA7Civms5Xoj6/ntYwgPiBob2tla3lvdVwgOwor6YWi5paZ55CGID4gc3VyeW91cmlcIDsKK+aUv+W6nOexsyA+IHNlaWZ1bWFpXCA7Civlpb3ntZDmnpwgPiBrb3VrZWtrYVwgOwor5rS75oCn5YyWID4ga2Fzc2Vpa2FcIDsKK+WKqeiogOiAhSA+IGpvZ29uc2hhXCA7Civoo4/ljYPlrrYgPiB1cmFzZW5rZVwgOwor6IiO5Yip5aGUID4gc2hhcml0b3VcIDsKK+S4jeelneWEgCA+IGJ1c2h1dWdpXCA7CivpgY7muKHnmoQgPiBrYXRvdGVraVwgOwor6Zm26Iq45a62ID4gdG91Z2Vpa2FcIDsKK+S9nOalreWToSA+IHNhZ3lvdWluXCA7CivlhajkuJbnlYwgPiB6ZW5zZWthaVwgOwor5aSa5pGp5bedID4gdGFtYWdhd2FcIDsKK+W+ruiLpueskSA+IGJpa3VzaG91XCA7CivmrLrnnp7ogIUgPiBnaW1hbnNoYVwgOwor56uL5rOV5bqcID4gcmlwcG91ZnVcIDsKK+iiq+eBveWcsCA+IGhpc2FpY2hpXCA7CivnjJvmiZPogIUgPiBtb3VkYXNoYVwgOwor5LiN56Wl5LqLID4gZnVzaG91amlcIDsKK+e1kOaenOirliA+IGtla2thcm9uXCA7CivkuIvmsLTmup0gPiBnZXN1aWtvdVwgOwor5rC06aKo5ZGCID4gbWl6dWJ1cm9cIDsKK+aWueS9jeinkiA+IGhvdWlrYWt1XCA7CivpmLLlobXnnYAgPiBib3VqaW5naVwgOwor5pei6KaW5oOzID4ga2lzaGlrYW5cIDsKK+WPo+iqnuS9kyA+IGtvdWdvdGFpXCA7Civlubnpg6jkvJogPiBrYW5idWthaVwgOwor5Lqk6Zqb6LK7ID4ga291c2FpaGlcIDsKK+aJi+mWk+aahyA+IHRlbWFoaW1hXCA7Civmrablo6vpgZMgPiBidXNoaWRvdVwgOwor6a2U5pa56ZmjID4gbWFob3VqaW5cIDsKK+iRoeiQhOmFkiA+IGJ1ZG91c2h1XCA7Civlhrflh43lmaggPiByZWl0b3VraVwgOwor5Y+M5a2Q5bqnID4gZnV0YWdvemFcIDsKK+iEseawtOapnyA+IGRhc3N1aWtpXCA7Civngavlj6Pljp8gPiBrYWtvdWdlblwgOwor5L2O5qyh5YWDID4gdGVpamlnZW5cIDsKK+WOs+WGrOacnyA+IGdlbnRvdWtpXCA7CivkuLjoq7PoqJggPiBtYXJ1YW5raVwgOwor5LiN6YCA6LuiID4gZnV0YWl0ZW5cIDsKK+aJi+Wcn+eUoyA+IHRlbWl5YWdlXCA7CivljbHpmbroppYgPiBraWtlbnNoaVwgOwor6Iie6LiK5ZujID4gYnV0b3VkYW5cIDsKK+S4jeaxuuWumiA+IGZ1a2V0dGVpXCA7Civlm57luLDnt5ogPiBrYWlraXNlblwgOwor5Yy65rCR56iOID4ga3VtaW56ZWlcIDsKK+S9leeVquebriA+IG5hbmJhbm1lXCA7CivohLHmsJfmsLQgPiBkYWtraXN1aVwgOwor5YiR5YuZ5omAID4ga2VpbXVzaG9cIDsKK+WBpeWVluWutiA+IGtlbnRhbmthXCA7CivnoLTlo4rogIUgPiBoYWthaXNoYVwgOwor6Ieq5oSP6K2YID4gamlpc2hpa2lcIDsKK+S4g+WNgei3ryA+IG5hbmFzb2ppXCA7CivoprPoh6rlnKggPiBrYW5qaXphaVwgOwor6YGg5b+D5qmfID4gZW5zaGlua2lcIDsKK+acseWNsOiIuSA+IHNodWluc2VuXCA7CivmtJfmv6/mqZ8gPiBzZW50YWtraVwgOwor5LiN5YuV55SjID4gZnVkb3VzYW5cIDsKK+WZtOawl+WtlCA+IGZ1bmtpa291XCA7CivonablpLfmnb4gPiBlem9tYXRzdVwgOwor6ay85YiR5LqLID4gb25pa2VpamlcIDsKK+aEn+WYhuespiA+IGthbnRhbmZ1XCA7Civms5XljLvlraYgPiBob3VpZ2FrdVwgOwor6bOl5bCP5bGLID4gdG9yaWdveWFcIDsKK+iHquWWtualrSA+IGppZWlneW91XCA7Civnsr7pjKzmiYAgPiBzZWlyZW5qb1wgOwor6buE6I+W6JKyID4ga2lzaG91YnVcIDsKK+S6nOWkp+mZuCA+IGF0YWlyaWt1XCA7CivlgpnogIPmrIQgPiBiaWtvdXJhblwgOwor5pyq5oiQ5ZOBID4gbWlzZWloaW5cIDsKK+eJh+aJi+mWkyA+IGthdGF0ZW1hXCA7CivkurrplpPlkbMgPiBuaW5nZW5taVwgOwor54Sh5oSP6K2YID4gbXVpc2hpa2lcIDsKK+aKleizh+WutiA+IHRvdXNoaWthXCA7CivkuIvmsLTmnb8gPiBnZXN1aWl0YVwgOwor6aas6LmE5b2iID4gYmF0ZWlrZWlcIDsKK+WFqOmfs+espiA+IHplbicnb25wdVwgOwor6auY6Lyd5bqmID4ga291a2lkb3VcIDsKK+S4jeWPr+S+tSA+IGZ1a2FzaGluXCA7Civpu4Tlj6PlhZAgPiBrb3Vrb3VqaVwgOwor5YiG56eR5LyaID4gYnVua2FrYWlcIDsKK+icmOibm+iGnCA+IGt1bW9tYWt1XCA7Civkuovmpa3lrrYgPiBqaWd5b3VrYVwgOwor5YWl5Lya5ZywID4gaXJpYWljaGlcIDsKK+Wbs+abuOmkqCA+IHRvc2hva2FuXCA7Civoo73niYjmiYAgPiBzZWloYW5qb1wgOwor5p2x5aSn5a+6ID4gdG91ZGFpamlcIDsKK+S4reS9jeaVsCA+IGNodXVpc3V1XCA7Civlj4Los4DogIUgPiBzYW5nYXNoYVwgOwor5om55YeG5pu4ID4gaGlqdW5zaG9cIDsKK+iInui4j+S8miA+IGJ1dG91a2FpXCA7CivnkIbljJblraYgPiByaWthZ2FrdVwgOwor55m75bGx6ICFID4gdG96YW5zaGFcIDsKK+WKqeaVmeaOiCA+IGpva3lvdWp1XCA7CivliJHli5nlrpggPiBrZWltdWthblwgOwor5pS/5YuZ5a6YID4gc2VpbXVrYW5cIDsKK+ato+e+qeaEnyA+IHNlaWdpa2FuXCA7CivljLvolqzlk4EgPiBpeWFrdWhpblwgOwor5YyW57Kn552AID4ga2VzaG91Z2lcIDsKK+eBq+mBlOejqCA+IGhpZGFydW1hXCA7CivkuI3lvrnlupUgPiBmdXRldHRlaVwgOwor55WZ5a6I5a6FID4gcnVzdXRha3VcIDsKK+WHoeippuWQiCA+IGJvbnNoaWFpXCA7CivkuIfmranoqIggPiBtYW5wb2tlaVwgOwor5LqM5p6a6LKdID4gbmltYWlnYWlcIDsKK+eUqOawtOi3ryA+IHlvdXN1aXJvXCA7CivmmYLoqIjlupcgPiB0b2tlaXRlblwgOwor5Zu65a6a5a2QID4ga290ZWlzaGlcIDsKK+acieeFmeeCrSA+IHl1dWVudGFuXCA7CivorJvmvJTkvJogPiBrb3VlbmthaVwgOwor6KOP6ay86ZaAID4gdXJha2ltb25cIDsKK+W+oeavjeanmCA+IG9rYWFzYW1hXCA7CivpgZPnpZbnpZ4gPiBkb3Vzb2ppblwgOwor5ZCI5rOV5YyWID4gZ291aG91a2FcIDsKK+mmlumDveWcjyA+IHNodXRva2VuXCA7CivkuInmr5vnjKsgPiBtaWtlbmVrb1wgOwor5o6i55+l5qmfID4gdGFuY2hpa2lcIDsKK+atu+eBq+WxsSA+IHNoaWthemFuXCA7CivoibLmqKHmp5ggPiBpcm9tb3lvdVwgOwor57O46Zu76KmxID4gaXRvZGVud2FcIDsKK+mHjeWkp+WMliA+IGp1dWRhaWthXCA7CivkuInmrrXnm64gPiBzYW5kYW5tZVwgOwor56Wt5aOH5bqnID4gc2FpZGFuemFcIDsKK+WFhOW8n+WtkCA+IGFuaWRlc2hpXCA7CivpgYvlkb3oq5YgPiB1bm1laXJvblwgOwor5pmu6YCa56eRID4gZnV0c3V1a2FcIDsKK+S4iuWPpOWPsiA+IGpvdWtvc2hpXCA7CivpoJDosq/ph5EgPiB5b2Nob2tpblwgOwor5aal5b2T5oCnID4gZGF0b3VzZWlcIDsKK+iRoeiQhOiJsiA+IGJ1ZG91aXJvXCA7CivmjpLmsLTot68gPiBoYWlzdWlyb1wgOwor5qiq5pat6Z2iID4gb3VkYW5tZW5cIDsKK+aVtOe1jOapnyA+IHNlaWtlaWtpXCA7Civkuovmpa3ljJYgPiBqaWd5b3VrYVwgOwor57Ch5L2T5a2XID4ga2FudGFpamlcIDsKK+WPr+a6tueJhyA+IGtheW91aGVuXCA7CivlhIDku5flhbUgPiBnaWpvdWhlaVwgOwor6Zm45bGL5qC5ID4gcm9rdXlhbmVcIDsKK+W6p+irh+S8miA+IHphZGFua2FpXCA7CivluIbliY3oiLkgPiBob21hZXNlblwgOwor5oyH6Kmx5rOVID4gc2hpd2Fob3VcIDsKK+WBvemAoOWTgSA+IGdpem91aGluXCA7CivkuJbluK/mlbAgPiBzZXRhaXN1dVwgOwor5LiA5ZGo5pyfID4gaXNzaHV1a2lcIDsKK+S4reiAs+eCjiA+IGNodXVqaWVuXCA7Civlr4zlo6vpgJogPiBmdWppdHN1dVwgOwor5a625bGL56iOID4ga2Fva3V6ZWlcIDsKK+apn+WLlemaiiA+IGtpZG91dGFpXCA7CivpmLLngavnt5ogPiBib3VrYXNlblwgOwor5pWZ6K236ZmiID4ga3lvdWdvaW5cIDsKK+ieuuWtkOWxsSA+IG5laml5YW1hXCA7CivkubPlhZDpmaIgPiBueXV1amlpblwgOwor6IWV5pmC6KiIID4gdWRlZG9rZWlcIDsKK+acseWNsOeKtiA+IHNodWluam91XCA7CivnnJ/mhI/nvqkgPiBzaGluJydpZ2lcIDsKK+mBiuaKgOWgtCA+IHl1dWdpam91XCA7Civli6flt6XloLQgPiBrYW5rb3ViYVwgOwor5LiJ5Yag6aasID4gc2Fua2FuYmFcIDsKK+WkqeaJjeWFkCA+IHRlbnNhaWppXCA7CivpgIbojILmnKggPiBzYWthbW9naVwgOwor6KOc5YWF5YW1ID4gaG9qdXVoZWlcIDsKK+W7uuitsOiAhSA+IGtlbmdpc2hhXCA7CivluLjlpJznga8gPiBqb3V5YXRvdVwgOwor6I2J5bGL5qC5ID4ga3VzYXlhbmVcIDsKK+aoqeWogeiAhSA+IGtlbicnaXNoYVwgOwor56CV5bKp5qmfID4gc2FpZ2Fua2lcIDsKK+iRoeiQhOezliA+IGJ1ZG91dG91XCA7Civnmb3kupzppKggPiBoYWt1YWthblwgOwor5re35ZKM5oCnID4ga29ud2FzZWlcIDsKK+WMlueyp+auvyA+IGtld2FpZGVuXCA7CivljYPliIbmr5QgPiBzZW5idW5oaVwgOwor5pmC6KiI5Y+wID4gdG9rZWlkYWlcIDsKK+WQjOavjeWniSA+IGRvdWJvc2hpXCA7CivkuIrlvpfmhI8gPiBqb3V0b2t1aVwgOwor6buE5rC05LuZID4ga2lzdWlzZW5cIDsKK+W8seWRs+WZjCA+IHlvd2FtaXNvXCA7CivnlZnlrojkuK0gPiBydXN1Y2h1dVwgOwor5aSJ5aOw5pyfID4gaGVuc2Vpa2lcIDsKK+Wwj+WFkOenkSA+IHNob3VuaWthXCA7CivkuInljYHmiLggPiBzYW5qaWtrb1wgOwor6Zu76Zui5bGkID4gZGVucmlzb3VcIDsKK+mrmOi4j+a0viA+IGtvdXRvdWhhXCA7CivnkIblt6Xns7sgPiByaWtvdWtlaVwgOwor54Sh56S86KybID4gYnVyZWlrb3VcIDsKK+S4gOWRqOW/jCA+IGlzc2h1dWtpXCA7CivkuI3ljYHliIYgPiBmdWp1dWJ1blwgOwor5ZO65Lmz5pyfID4gaG9ueXV1a2lcIDsKK+efs+ayueeOiyA+IHNla2l5dW91XCA7Civlj6/pjpTniYcgPiBrYXlvdWhlblwgOwor5b6h5Yip55uKID4gZ29yaXlha3VcIDsKK+aKleabuOWutiA+IHRvdXNob2thXCA7CivpgbrnlZnlk4EgPiBpcnl1dWhpblwgOwor6YG65Lyd55eFID4gaWRlbmJ5b3VcIDsKK+aPmueCreapnyA+IHlvdXRhbmtpXCA7CivpnZ7lpInmj5sgPiBoaWhlbmthblwgOwor5pS55q2j5qGIID4ga2Fpc2VpYW5cIDsKK+mrmOmrmOW6piA+IGtvdWtvdWRvXCA7CivntYznlKPlqaYgPiBrZWlzYW5wdVwgOwor6LWk6KO46KO4ID4gc2VraXJhcmFcIDsKK+a3t+WQiOapnyA+IGtvbmdvdWtpXCA7Civlr4TotIjlk4EgPiBraXpvdWhpblwgOwor5aSc6KGM5oCnID4geWFrb3VzZWlcIDsKK+mRveWtlOapnyA+IHNhbmtvdWtpXCA7CivliY3ooZvmtL4gPiB6ZW4nJ2VpaGFcIDsKK+acquaxuueulyA+IG1pa2Vzc2FuXCA7CivkuLvopoHpg6ggPiBzaHV5b3VidVwgOwor6YG/5a+S5ZywID4gaGlrYW5jaGlcIDsKK+awtOWeoumboiA+IG1penVnb3JpXCA7Civlp5ToqJfnlJ8gPiBpdGFrdXNlaVwgOwor6K2m5aCx5qmfID4ga2VpaG91a2lcIDsKK+a4qee9qOazlSA+IG9uJydhbnBvdVwgOwor5a++5b+c54mIID4gdGFpb3ViYW5cIDsKK+WWh+WYm+aVmSA+IHJhbWFreW91XCA7CivpgbrnlZnliIYgPiBpcnl1dWJ1blwgOwor5piG5biD6Iy2ID4ga29uYnVjaGFcIDsKK+S5l+eul+WZqCA+IGpvdXphbmtpXCA7CivokazlhIDnpL4gPiBzb3VnaXNoYVwgOwor5Yik5qSc5LqLID4gaGFua2VuamlcIDsKK+eJueeVsOeCuSA+IHRva3VpdGVuXCA7Civkv53pmbrlsYsgPiBob2tlbicneWFcIDsKK+S4jemDveWQiCA+IGZ1dHN1Z291XCA7CivmiYDmjIHph5EgPiBzaG9qaWtpblwgOwor6JmO5rKz6LGaID4gdG9yYWZ1Z3VcIDsKK+aKgOiDveiAhSA+IGdpbm91c2hhXCA7CivmipforbDmlocgPiBrb3VnaWJ1blwgOwor5pei6KO95ZOBID4ga2lzZWloaW5cIDsKK+WfuuekjueahCA+IGtpc290ZWtpXCA7Civosp3ntLDlt6UgPiBrYWl6YWlrdVwgOwor6buS55m+5ZCIID4ga3Vyb3l1cmlcIDsKK+iMtuiPk+WtkCA+IGNoYWdhc2hpXCA7CivlkKblrprmlocgPiBoaXRlaWJ1blwgOwor5byB6K235aOrID4gYmVuZ29zaGlcIDsKK+aJi+ijj+WJoyA+IHNodXJpa2VuXCA7CivpioDmmYLoqIggPiBnaW5kb2tlaVwgOwor5LiJ6YCj56ymID4gc2FucmVucHVcIDsKK+Wwj+WIh+WtkCA+IGtva2lyaWtvXCA7CivlvaLogIzkuIogPiBrZWlqaWpvdVwgOwor5pCt5LmX5ZOhID4gdG91am91aW5cIDsKK+S4lueVjOimsyA+IHNla2Fpa2FuXCA7CivmjqLnn6XlmaggPiB0YW5jaGlraVwgOwor5YCJ5bqr55WqID4gc291a29iYW5cIDsKK+aWh+enkeezuyA+IGJ1bmtha2VpXCA7Civog73mloflrrYgPiBub3VidW5rYVwgOwor5byB6K235ZujID4gYmVuZ29kYW5cIDsKK+mKgOS4lueVjCA+IGdpbnNla2FpXCA7Civmma7pgY3mgKcgPiBmdWhlbnNlaVwgOwor5Y+v5rq25oCnID4ga2F5b3VzZWlcIDsKK+WMiOeJmeWIqSA+IGhhbmdhcmlpXCA7CivnjL/nnJ/kvLwgPiBzYXJ1bWFuZVwgOwor54yq5Y+j5omNID4gY2hva296YWlcIDsKK+mLs+eJqeW4qyA+IGltb25vc2hpXCA7CivnhKHpiYTnoLIgPiBtdXRlcHBvdVwgOwor5ZCM5YiG5q+NID4gZG91YnVuYm9cIDsKK+acqua2iOWMliA+IG1pc2hvdWthXCA7CivluoPmnbHoqp4gPiBrYW50b25nb1wgOwor5LiA56eB5Lq6ID4gaXNzaGlqaW5cIDsKK+a8ouiUteiqniA+IGthbnpvdWdvXCA7Civkuozkurrnm64gPiBmdXRhcmltZVwgOwor5a+M5aOr57W5ID4gZnVqaWdpbnVcIDsKK+iCm+mWgOenkSA+IGtvdW1vbmthXCA7CivpnZnpm7vmsJcgPiBzZWlkZW5raVwgOwor5Y6f5YuV5qmfID4gZ2VuZG91a2lcIDsKK+S5vuiIuea4oCA+IGthbmRva2t1XCA7CivpvJPlkLnogIUgPiBrb3N1aXNoYVwgOwor5aSn5ZKM54WuID4geWFtYXRvbmlcIDsKK+iMtumBk+WFtyA+IGNoYWRvdWd1XCA7CivmjpLmsJfnrqEgPiBoYWlraWthblwgOwor5b2T5LqL6ICFID4gdG91amlzaGFcIDsKK+Wik+iqjOmKmCA+IGJvc2hpbWVpXCA7Civnn63msLTot68gPiB0YW5zdWlyb1wgOwor5Zar6Iy25bqXID4ga2lzc2F0ZW5cIDsKK+aZgumWk+W4ryA+IGppa2FudGFpXCA7CivnhKHmsLTphbggPiBtdXN1aXNhblwgOwor56C06Ziy5rOVID4gaGFib3Vob3VcIDsKK+WQiOatk+acqCA+IG5lbXVub2tpXCA7CivogZbmrYzpmoogPiBzZWlrYXRhaVwgOwor5Y2w57SZ56iOID4gaW5zaGl6ZWlcIDsKK+aMh+aPruiAhSA+IHNoaWtpc2hhXCA7CivmlofmiL/lhbcgPiBidW5ib3VndVwgOwor5L+d566h6YeRID4gaG9rYW5raW5cIDsKK+acgOWkmuaVsCA+IHNhaXRhc3V1XCA7CivkuI3pgI/mmI4gPiBmdXRvdW1laVwgOwor5qC95Z+55omAID4gc2FpYmFpam9cIDsKK+ael+aqjumFkiA+IHJpbmdvc2h1XCA7Civmr43ntLDog54gPiBib3NhaWJvdVwgOwor5aW95omT6ICFID4ga291ZGFzaGFcIDsKK+WGhuetkuW9oiA+IGVudG91a2VpXCA7CivmkYLplqLlrrYgPiBzZWtrYW5rZVwgOwor5q2j6KaP6LuNID4gc2Vpa2lndW5cIDsKK+W4uOWll+WPpSA+IGpvdXRvdWt1XCA7CivmnKrmsbrmuIggPiBtaWtlc3NhaVwgOwor57WD5qW95ZmoID4gZ2VuZ2Fra2lcIDsKK+e0jeaIuOiJsiA+IG5hbmRvaXJvXCA7CivpnZ7nt5rlvaIgPiBoaXNlbmtlaVwgOwor6aKo5ZGC6YecID4gZnVyb2dhbWFcIDsKK+W8geitt+S6uiA+IGJlbmdvbmluXCA7Civpjq7lrojlupwgPiBjaGluanVmdVwgOwor5LiA5by1576FID4gaXRjaG91cmFcIDsKK+WtkOS8muekviA+IGtvZ2Fpc2hhXCA7CivkuI3lh43muK8gPiBmdXRvdWtvdVwgOwor5Y215aGU5aC0ID4gcmFudG91YmFcIDsKK+S4reWkrumDqCA+IGNodXVvdWJ1XCA7CivkuI3lh43mtrIgPiBmdXRvdWVraVwgOwor5aSp56ek5bqnID4gdGVuYmluemFcIDsKK+WNsemZuuaApyA+IGtpa2Vuc2VpXCA7CivkuI3lh43mtbcgPiBmdXRvdWthaVwgOwor55m75bGx5bi9ID4gdG96YW5ib3VcIDsKK+eFjuixhuiFkCA+IGlyaWRvdWZ1XCA7CivliLjlo7LmqZ8gPiBrZW5iYWlraVwgOwor5pmC6ZaT5aSWID4gamlrYW5nYWlcIDsKK+awl+WAmeW4ryA+IGtpa291dGFpXCA7Civmpb3lmajlupcgPiBnYWtraXRlblwgOwor5LiN5YiG5piOID4gZnVidW5tZWlcIDsKK+ato+mbu+awlyA+IHNlaWRlbmtpXCA7CivmnKzph5HluqsgPiBob25raW5rb1wgOwor5Y+v6Y6U5oCnID4ga2F5b3VzZWlcIDsKK+mbhOW8geWutiA+IHl1dWJlbmthXCA7Civku5jluK/niq8gPiBmdXRhaWhhblwgOwor6KW/5rSL56KBID4gc2VpeW91Z29cIDsKK+aIpuS6ieW+jCA+IHNlbnNvdWdvXCA7CivmlY/ohZXlrrYgPiBiaW53YW5rYVwgOwor5Lit5Lul5LiKID4gY2h1dWlqb3VcIDsKK+mrmOS4i+mnhCA+IHRha2FnZXRhXCA7CivpnZ7lo7Llk4EgPiBoaWJhaWhpblwgOwor5L2V5Luj55uuID4gbmFuZGFpbWVcIDsKK+mrmOaetue3miA+IGtvdWthc2VuXCA7CivmsLTpnaLkuIsgPiBzdWltZW5rYVwgOwor57K+5rK55omAID4gc2VpeXVzaG9cIDsKK+adseilv+WxiyA+IHRvdXphaXlhXCA7CivpioXniYjnlLsgPiBkb3VoYW5nYVwgOwor54KK6aOv5ZmoID4gc3VpaGFua2lcIDsKK+WFg+W4peW6nCA+IGdlbnN1aWZ1XCA7Civps6XkuYvlt6MgPiB0b3Jpbm9zdVwgOwor5Yy755mC6LuKID4gaXJ5b3VzaGFcIDsKK+eJueeVsOaApyA+IHRva3Vpc2VpXCA7Civlhqzoh7Pnt5ogPiB0b3VqaXNlblwgOwor56m/5a2U5qmfID4gc2Vua291a2lcIDsKK+eEoeiTi+i7iiA+IG11Z2Fpc2hhXCA7CivmirXmipflmaggPiB0ZWlrb3VraVwgOwor6JK45rCX6Ii5ID4gam91a2lzZW5cIDsKK+mdnuioseWuuSA+IGhpa3lveW91XCA7CivpgaDov5Hms5UgPiBlbmtpbmhvdVwgOwor5Luu5a6a5rOVID4ga2F0ZWlob3VcIDsKK+a3t+WQiOWZqCA+IGtvbmdvdWtpXCA7Civopb/mtIvnlLsgPiBzZWl5b3VnYVwgOwor6YGU56Oo5b+MID4gZGFydW1ha2lcIDsKK+eVs+aIkOiqniA+IGpvdXNlaWdvXCA7CivmgKrkuovku7YgPiBrYWlqaWtlblwgOwor5omA5oyB6ICFID4gc2hvamlzaGFcIDsKK+aTrOS6uuazlSA+IGdpamluaG91XCA7CivmupblpKfmiYsgPiBqdW4nJ29vdGVcIDsKK+Wbnui7ouapnyA+IGthaXRlbmtpXCA7Civlj6/lk4Dnm7ggPiBrYXdhaXNvdVwgOwor5Lqk6Zqb5a62ID4ga291c2Fpa2FcIDsKK+mbouS5s+acnyA+IHJpbnl1dWtpXCA7Civno4HmgKflsaQgPiBqaXNlaXNvdVwgOwor6LaK5Yas6ZqKID4gZXR0b3V0YWlcIDsKK+itnOmdouWPsCA+IGZ1bWVuZGFpXCA7Civku67lsI/lsYsgPiBrYXJpZ295YVwgOwor55uu6KuW6KaLID4gbW9rdXJvbWlcIDsKK+S7meiKsee0mSA+IHNlbmthc2hpXCA7CivmvJTnrpflrZAgPiBlbnphbnNoaVwgOwor5pyJ6ZmQ5YCLID4geXV1Z2Vua29cIDsKK+aIuOmanOWtkCA+IHRvc2hvdWppXCA7Civlj6/pjZvmgKcgPiBrYXRhbnNlaVwgOwor5aSq6byT5YikID4gdGFpa29iYW5cIDsKK+a1t+WdiuS4uyA+IHVtaWJvdXp1XCA7Civpu43prZrlrZAgPiBraWJpbmFnb1wgOwor5Za25p6X572yID4gZWlyaW5zaG9cIDsKK+aZrui+uuaApyA+IGZ1aGVuc2VpXCA7Civlm7rmnInlgKQgPiBrb3l1dWNoaVwgOwor6YG65Lyd5a2mID4gaWRlbmdha3VcIDsKK+iCsueoruaJgCA+IGlrdXNodWpvXCA7Civph5HpjY3ph5EgPiBraW5tZWtraVwgOwor6by76aKo6YKqID4gaGFuYWthemVcIDsKK+WPguS6i+WumCA+IHNhbmppa2FuXCA7Civnm7joq4fmiYAgPiBzb3VkYW5qb1wgOwor54Sh56iO5ZOBID4gbXV6ZWloaW5cIDsKK+W/nOetlOiDvSA+IG91dG91bm91XCA7CivmpJzllY/miYAgPiBrZW5tb25qb1wgOwor5bKh5aC05omAID4gb2thYmFzaG9cIDsKK+WcsOiUteWwiiA+IGppem91c29uXCA7CivnqbrkuJbovp4gPiBrYXJhc2VqaVwgOwor6KGo5YW35bGLID4gaHlvdWd1eWFcIDsKK+W8lOaFsOmHkSA+IGNob3Vpa2luXCA7CivliJ3nlKPlqaYgPiBzaG9zYW5wdVwgOwor5pqX6KiY54mpID4gYW5raW1vbm9cIDsKK+m6u+mFlOWJpCA+IG1hc3VpemFpXCA7Civol6rljLvogIUgPiB5YWJ1aXNoYVwgOwor5L2V5pmC6aCDID4gaXRzdWdvcm9cIDsKK+S6jOe+qeeahCA+IG5pZ2l0ZWtpXCA7Civpm4Hnmq7ntJkgPiBnYW5waXNoaVwgOwor5pel5ZKM6KaLID4gaGl5b3JpbWlcIDsKK+ekvuS8mumDqCA+IHNoYWthaWJ1XCA7CivliKXkuJbnlYwgPiBiZXNzZWthaVwgOwor54Sh5ZCN5rCPID4gbXVtZWlzaGlcIDsKK+mbh+WCreiAhSA+IGtveW91c2hhXCA7CivntaLnt57lrZAgPiBheWFkb25zdVwgOwor5rim54q25paHID4ga2Fqb3Vtb25cIDsKK+iHquWLlei7iiA+IGppZG91c2hhXCA7CivpmaTojYnliaQgPiBqb3NvdXphaVwgOwor5LiN5YWs5q2jID4gZnVrb3VzZWlcIDsKK+mXmOaKgOWgtCA+IHRvdWdpam91XCA7CivkuLvoqJjmhrYgPiBzaHVraW9rdVwgOwor6by75LiL6ZW3ID4gYmlrYWNob3VcIDsKK+acgOWkp+WMliA+IHNhaWRhaWthXCA7CivpmLLngo7liaQgPiBib3VlbnphaVwgOwor5rq26Ymx54KJID4geW91a291cm9cIDsKK+S9leaZgumWkyA+IG5hbmppa2FuXCA7Civns7vntbHmqLkgPiBrZWl0b3VqdVwgOwor5b6h6Ieq6LqrID4gZ29qaXNoaW5cIDsKK+S4iuiPk+WtkCA+IGpvdWdhc2hpXCA7CivooqvmuJvmlbAgPiBoaWdlbnN1dVwgOwor5pif5p2h5peXID4gc2Vpam91a2lcIDsKK+eWjuawtOaApyA+IHNvc3Vpc2VpXCA7Civoh6rmsrvmqKkgPiBqaWNoaWtlblwgOwor6YCu5o2V6ICFID4gdGFpaG9zaGFcIDsKK+S6jOmgreetiyA+IG5pdG91a2luXCA7CivntKDmtarkurogPiBzdXJvdW5pblwgOwor56eL5aC05omAID4gYWtpYmFzaG9cIDsKK+iIueeBq+S6iyA+IGZ1bmFrYWppXCA7CivogrLnqK7lrrYgPiBpa3VzaHVrYVwgOwor5q2j6Kqy5aSWID4gc2Vpa2FnYWlcIDsKK+eFieeTpuWhgCA+IHJlbmdhYmVpXCA7Civoi7Hmlofms5UgPiBlaWJ1bnBvdVwgOwor5pyq5rG65a6aID4gbWlrZXR0ZWlcIDsKK+mmluiEs+mDqCA+IHNodW5vdWJ1XCA7CivlgaXlurfnvo4gPiBrZW5rb3ViaVwgOwor5Lih6K2w6ZmiID4gcnlvdWdpaW5cIDsKK+aEm+WUseatjCA+IGFpc2hvdWthXCA7CivkuozmnKzmo5IgPiBuaWhvbmJvdVwgOwor6Z2S54mp5bGLID4gYW9tb25veWFcIDsKK+S7ruWumuW9oiA+IGthdGVpa2VpXCA7Civoh6rli5XoqZ4gPiBqaWRvdXNoaVwgOwor5L6/5a6c5LiKID4gYmVuZ2lqb3VcIDsKK+eUsOiIjumiqCA+IGluYWthZnV1XCA7CivmnJ3lvqHpo68gPiBhc2Fnb2hhblwgOwor5oyH5o+u5qipID4gc2hpa2lrZW5cIDsKK+ioreioiOWbsyA+IHNla2tlaXp1XCA7Civpg6jlpJbogIUgPiBidWdhaXNoYVwgOwor6JGs5YSA5aC0ID4gc291Z2lqb3VcIDsKK+ejgeaAp+S9kyA+IGppc2VpdGFpXCA7CivpioDmnKzkvY0gPiBnaW5ob24nJ2lcIDsKK+aUv+WFmuWToSA+IHNlaXRvdWluXCA7Civlr77lv5zlgKQgPiB0YWlvdWNoaVwgOwor6LuN6Imm5peXID4gZ3Vua2Fua2lcIDsKK+S6jOS5l+aguSA+IG5pam91a29uXCA7CivmjIfmj67mo5IgPiBzaGlraWJvdVwgOwor5q+N5Zu96KqeID4gYm9rb2t1Z29cIDsKK+eUu+eUqOe0mSA+IGdheW91c2hpXCA7CivmpJzmuKnlmaggPiBrZW4nJ29ua2lcIDsKK+mnhua9nOiJhyA+IGt1c2VudGVpXCA7CivloJXog47nvaogPiBkYXRhaXphaVwgOwor56OB5rCX5a2mID4gamlraWdha3VcIDsKK+aHkOeCieeBsCA+IGthaXJvYmFpXCA7CivopoHms6jmhI8gPiB5b3VjaHV1aVwgOwor5Yid55Sf5YWQID4gc2hvc2VpamlcIDsKK+S4jemuruaYjiA+IGZ1c2VubWVpXCA7CivlpKnptZ7ntaggPiBiaXJvdWRvdVwgOwor6KO957OW5omAID4gc2VpdG91am9cIDsKK+WFiOmnhuiAhSA+IHNlbmt1c2hhXCA7CivliqnmiJDph5EgPiBqb3NlaWtpblwgOwor5rih5p2l5Lq6ID4gdG9yYWlqaW5cIDsKK+mAn+iomOiAhSA+IHNva2tpc2hhXCA7CivoiabovInmqZ8gPiBrYW5zYWlraVwgOwor54Sh5ZCN5oyHID4gbXVtZWlzaGlcIDsKK+ijveeyieapnyA+IHNlaWZ1bmtpXCA7CivkubHlsaTpm7IgPiByYW5zb3V1blwgOwor5Y+C5LqL5LyaID4gc2FuamlrYWlcIDsKK+aOkuawl+W8gSA+IGhhaWtpYmVuXCA7CivmraPntbHmtL4gPiBzZWl0b3VoYVwgOwor6KOc5L2Q5b25ID4gaG9zYXlha3VcIDsKK+acqumFjeW9kyA+IG1paGFpdG91XCA7CivmmK/pnZ7lhbEgPiB6ZWhpdG9tb1wgOwor5pyq5YiK6KGMID4gbWlrYW5rb3VcIDsKK+aeouapn+WNvyA+IHN1dWtpa2VpXCA7CivmnKrpgYLnvaogPiBtaXN1aXphaVwgOwor5paH5YyW6LKhID4gYnVua2F6YWlcIDsKK+atpuijheiIuSA+IGJ1c291c2VuXCA7CivoqJjogIXlm6MgPiBraXNoYWRhblwgOwor5b6h55So6YK4ID4gZ295b3V0ZWlcIDsKK+W+oeWFiOajkiA+IG9zYWtpYm91XCA7Civlrprmr5TkvosgPiB0ZWloaXJlaVwgOwor5a+M5aOr5bedID4gZnVqaWthd2FcIDsKK+eUo+WNteacnyA+IHNhbnJhbmtpXCA7CivliIbnm7jmqZ8gPiBidW5zb3VraVwgOwor5LiK5bGk6ZuyID4gam91c291dW5cIDsKK+S4ieasoeWFgyA+IHNhbmppZ2VuXCA7CivnvqTppqznnIwgPiBndW5tYWtlblwgOwor5YW156uZ6YOoID4gaGVpdGFuYnVcIDsKK+S4jeWFrOW5syA+IGZ1a291aGVpXCA7CivliY3pvLvnt5IgPiBtYWVoYW5hb1wgOwor5LiN5YeN5YmkID4gZnV0b3V6YWlcIDsKK+eJqeecn+S8vCA+IG1vbm9tYW5lXCA7CivpgYrmranpgZMgPiB5dXVob2RvdVwgOwor5Y+v5ZOA5oOzID4ga2F3YWlzb3VcIDsKK+eon+itsOabuCA+IHJpbmdpc2hvXCA7CivnhKHliLbpmZAgPiBtdXNlaWdlblwgOwor5L2T6IKy5a62ID4gdGFpaWt1a2FcIDsKK+WIhuWykOmnhSA+IGJ1bmtpZWtpXCA7CivljLvnmYLnlKggPiBpcnlvdXlvdVwgOwor6YCu5o2V54q2ID4gdGFpaG9qb3VcIDsKK+mBjuWOu+W4syA+IGtha29jaG91XCA7CivmqZ/li5XmgKcgPiBraWRvdXNlaVwgOwor54ax6aKo54KJID4gbmVwcHV1cm9cIDsKK+atqeihjOiAhSA+IGhva291c2hhXCA7CivlhobpjJDlvaIgPiBlbnN1aWtlaVwgOwor5a6I6Yqt5aW0ID4gc2h1c2VuZG9cIDsKK+mBk+WMluW4qyA+IGRvdWtlc2hpXCA7CivkuIvohbnpg6ggPiBrYWZ1a3VidVwgOwor5Y+N5pS/5bqcID4gaGFuc2VpZnVcIDsKK+Wbnui7ouWEgCA+IGthaXRlbmdpXCA7CivkuIrojYnlsaUgPiB1d2F6b3VyaVwgOwor57Gz5LiK6ZmiID4gYmVpam91aW5cIDsKK+S4gOW4s+e+hSA+IGl0Y2hvdXJhXCA7CivmnJ3nqL3lj6QgPiBhc2FnZWlrb1wgOwor6KO957KJ5omAID4gc2VpZnVuam9cIDsKK+iiq+ayu+iAhSA+IGhpY2hpc2hhXCA7Civlrq7nlLDlrrYgPiBtaXlhdGFrZVwgOwor6L+R6KGb5YW1ID4ga29ub2VoZWlcIDsKK+WyqeaJi+ecjCA+IGl3YXRla2VuXCA7CivpgKPpmorml5cgPiByZW50YWlraVwgOwor566h5qW95ZmoID4ga2FuZ2Fra2lcIDsKK+isneaBqeS8miA+IHNoYW9ua2FpXCA7CivppIronILlrrYgPiB5b3Vob3VrYVwgOwor5LqU57ea57SZID4gZ29zZW5zaGlcIDsKK+W5s+eUn+edgCA+IGhlaXplaWdpXCA7CivmqZ/luIboiLkgPiBraWhhbnNlblwgOwor6Z2e5o6S5rC0ID4gaGloYWlzdWlcIDsKK+edgOeVquWPtyA+IGtpYmFuZ291XCA7CivkuI3lgKvnvaogPiBmdXJpbnphaVwgOwor6aO057Sw5belID4gYW1lemFpa3VcIDsKK+WBveS8vOeXhyA+IGdpamlzaG91XCA7CivlpKfluoPplpMgPiBvb2hpcm9tYVwgOwor6YG/6Zuj6ICFID4gaGluYW5zaGFcIDsKK+WumuW4uOazoiA+IHRlaWpvdWhhXCA7CivmjIfmj67lrpggPiBzaGlraWthblwgOwor5LuY5bGe6KqeID4gZnV6b2t1Z29cIDsKK+W5tOS8muiyuyA+IG5lbmthaWhpXCA7CivmlYXosrfogIUgPiBrb2JhaXNoYVwgOwor5LqU5aSn5rSLID4gZ29kYWl5b3VcIDsKK+ePquiXu+WcnyA+IGtlaXNvdWRvXCA7CivkurrlkI3nsL8gPiBqaW5tZWlib1wgOwor5o6S5rCX5Y+jID4gaGFpa2lrb3VcIDsKK+mBv+WmiuazlSA+IGhpbmluaG91XCA7CivokIzmnKjoibIgPiBtb2VnaWlyb1wgOwor54m55L6h5ZOBID4gdG9ra2FoaW5cIDsKK+aPmuaKl+avlCA+IHlvdWtvdWhpXCA7Civpm4fnlKjogIUgPiBrb3lvdXNoYVwgOwor6L6e5pu46aGeID4gamlzaG9ydWlcIDsKK+Wkp+W+gOeUnyA+IGRhaW91am91XCA7Civov73otbfoqLQgPiB0c3Vpa2lzb1wgOwor6YGO5Y2K5pWwID4ga2FoYW5zdXVcIDsKK+WuieaBr+aXpSA+IGFuc29rdWJpXCA7Civlho3mta7kuIogPiBzYWlmdWpvdVwgOwor5Zuz5pu45Yi4ID4gdG9zaG9rZW5cIDsKK+eZuui1t+S6uiA+IGhva2tpbmluXCA7CivpgZPlhbfoq5YgPiBkb3VndXJvblwgOwor5YiG55u45b+cID4gYnVuc291b3VcIDsKK+eri+WAmeijnCA+IHJpa2tvdWhvXCA7Civpgb/mmpHlnLAgPiBoaXNob2NoaVwgOwor5o6l6aqo5pyoID4gbml3YXRva29cIDsKK+ekvuS8muenkSA+IHNoYWthaWthXCA7CivkuIrmqZ/lq4wgPiBqb3VraWdlblwgOwor5Lqk5o+b5omAID4ga291a2Fuam9cIDsKK+WWnOatjOWKhyA+IGtpa2FnZWtpXCA7Civmt7vliqDliaQgPiB0ZW5rYXphaVwgOwor5pyq5b6p5ZOhID4gbWlmdWt1aW5cIDsKK+ismemBnOiqniA+IGtlbnNvbmdvXCA7CivmnKrlh6bnva4gPiBtaXNob2NoaVwgOwor5Zyw5b2i5ZuzID4gY2hpa2VpenVcIDsKK+acquefpeaVsCA+IG1pY2hpc3V1XCA7Civlhavmva7ot68gPiB5YXNoaW9qaVwgOwor5Luj55CG6ICFID4gZGFpcmlzaGFcIDsKK+i7jeS7pOmDqCA+IGd1bnJlaWJ1XCA7CivmqKrmloflrZcgPiB5b2tvbW9qaVwgOwor5aSq5Y+k5LujID4gdGFpa29kYWlcIDsKK+W5vuS9leWtpiA+IGtpa2FnYWt1XCA7Civopb/mtIvljJYgPiBzZWl5b3VrYVwgOwor5YiR5L2Z6ICFID4ga2VpeW9zaGFcIDsKK+a4oeS4luS6uiA+IHRvc2VpbmluXCA7CivnvoXph53lhIAgPiByYXNoaW5naVwgOwor5a2Q6Z+z576kID4gc2hpaW5ndW5cIDsKK+aal+iovOWMliA+IGFuc2hvdWthXCA7Civmu5HotbDot68gPiBrYXNzb3Vyb1wgOwor6KO95Zuz5p2/ID4gc2VpenViYW5cIDsKK+eah+e1seitnCA+IGtvdXRvdWZ1XCA7CivnkIblrabpg6ggPiByaWdha3VidVwgOwor6Iux6Kqe5aG+ID4gZWlnb2p1a3VcIDsKK+aCsuWWnOWKhyA+IGhpa2lnZWtpXCA7Civkv53nrqHmnpcgPiBob2thbnJpblwgOwor5YaN5q2m6KOFID4gc2FpYnVzb3VcIDsKK+i1pOicu+ibiSA+IGFrYXRvbmJvXCA7CivkuojppYzkvJogPiB5b3NlbmthaVwgOwor54Sh6L666ZqbID4gbXVoZW56YWlcIDsKK+S4jeiHqueEtiA+IGZ1c2hpemVuXCA7CivohY7kuI3lhaggPiBqaW5mdXplblwgOwor5a605Lya5aC0ID4gZW5rYWlqb3VcIDsKK+e1jOS4luWutiA+IGtlaXNlaWthXCA7CivkuI3kv6HogIUgPiBmdXNoaW5qYVwgOwor5Y2Y5pys5L2NID4gdGFuaG9uJydpXCA7CivlhobpjJDlj7AgPiBlbnN1aWRhaVwgOwor5Zug5p6c6ICFID4gaW5nYW1vbm9cIDsKK+S4jeS/oee+qSA+IGZ1c2hpbmdpXCA7Civou43kuovpnaIgPiBndW5qaW1lblwgOwor5oGS5rKz5rKZID4gZ291Z2FzaGFcIDsKK+WJteahiOiAhSA+IHNvdWFuc2hhXCA7Civoh6rmsrvkvZMgPiBqaWNoaXRhaVwgOwor552A5bC65ZywID4ga2lqYWt1amlcIDsKK+W+jOWNiuacnyA+IGtvdWhhbmtpXCA7Civoh6rmsrvkvJogPiBqaWNoaWthaVwgOwor5L6h5YCk6KazID4ga2FjaGlrYW5cIDsKK+ilv+mBiuiomCA+IHNlaXl1dWtpXCA7CivlubTku6PoqJggPiBuZW5kYWlraVwgOwor5oSf5oOF5a62ID4ga2Fuam91a2FcIDsKK+aWh+WMluelrSA+IGJ1bmthc2FpXCA7CivlpInmj5vlmaggPiBoZW5rYW5raVwgOwor5LiW55WM5Y+yID4gc2VrYWlzaGlcIDsKK+WPl+eyvuWNtSA+IGp1c2VpcmFuXCA7Civnt4/mjIfmj64gPiBzb3VzaGlraVwgOwor5bm055Sy5paQID4gdG9zaGlnYWlcIDsKK+S4jeWFheWIhiA+IGZ1anV1YnVuXCA7Civms6Xku5XlkIggPiBkb3JvamlhaVwgOwor5riF5a2Q6Z+zID4gc2Vpc2hpaW5cIDsKK+S6jOacn+S9nCA+IG5pa2lzYWt1XCA7CivmqKrntIvnrYsgPiBvdW1vbmtpblwgOwor6YGL5YuV55WMID4gdW5kb3VrYWlcIDsKK+acqueZuuimiyA+IG1paGFra2VuXCA7Civlgbblg4/ljJYgPiBndXV6b3VrYVwgOwor6KOc6IG05ZmoID4gaG9jaG91a2lcIDsKK+iLseiqnuWKhyA+IGVpZ29nZWtpXCA7Civpm7vnrpfmqZ8gPiBkZW5zYW5raVwgOwor5YaN5ZCf5ZGzID4gc2FpZ2lubWlcIDsKK+WGhumMkOS9kyA+IGVuc3VpdGFpXCA7CivkuojppJ7kvJogPiB5b3NlbmthaVwgOwor6Z2S5aSp5LqVID4gYW90ZW5qb3VcIDsKK+mdnuaIpuirliA+IGhpc2Vucm9uXCA7CivmnKrnmbrooYwgPiBtaWhha2tvdVwgOwor55u45aC05birID4gc291YmFzaGlcIDsKK+WPpOaIpuWgtCA+IGtvc2Vuam91XCA7CivkuInnlbPntIAgPiBzYW5qb3VraVwgOwor5aW95oSP55qEID4ga291aXRla2lcIDsKK+W+oemms+i1sCA+IGdvY2hpc291XCA7CivmibbppIrogIUgPiBmdXlvdXNoYVwgOwor5Y2B5a2X6LuNID4ganV1amlndW5cIDsKK+aMieaJi+ekvCA+IGFuc2h1cmVpXCA7CivlkIzkvY3op5IgPiBkb3Vpa2FrdVwgOwor6Lyq6Lui5qmfID4gcmludGVua2lcIDsKK+WOreS6uuiAhSA+IGVuamluc2hhXCA7CivnhKHphY3lvZMgPiBtdWhhaXRvdVwgOwor5a+M6KOV56iOID4gZnV5dXV6ZWlcIDsKK+mBjuWKtOatuyA+IGthcm91c2hpXCA7CivntIXooZvlhbUgPiBrb3VlaWhlaVwgOwor566h55CG6ICFID4ga2FucmlzaGFcIDsKK+WknOWVhuS6uiA+IHlvYWtpbmRvXCA7CivoiIzkuIvohbogPiB6ZWtrYXNlblwgOwor5omA5oyB5ZOBID4gc2hvamloaW5cIDsKK+e0gOihjOaWhyA+IGtpa291YnVuXCA7CivngavlsbHngbAgPiBrYXphbmJhaVwgOwor6aiO5aOr6YGTID4ga2lzaGlkb3VcIDsKK+WJsOS9memHkSA+IGpvdXlva2luXCA7CivosYrmsLTmnJ8gPiBob3VzdWlraVwgOwor5L2O6IO95YWQID4gdGVpbm91amlcIDsKK+W4sOe0jeazlSA+IGtpbm91aG91XCA7CivnjYXlrZDluqcgPiBzaGlzaGl6YVwgOwor5Lqk5o+b5ZmoID4ga291a2Fua2lcIDsKK+S4lueVjOS6uiA+IHNla2FpamluXCA7CivooZvnlJ/pmoogPiBlaXNlaXRhaVwgOwor55CG5LqL6ZW3ID4gcmlqaWNob3VcIDsKK+W5s+Wxi+aguSA+IGhpcmF5YW5lXCA7CivlhYPogIHpmaIgPiBnZW5yb3VpblwgOwor5qOE5qip6ICFID4ga2lrZW5zaGFcIDsKK+S4lueVjOS4rSA+IHNla2FpanV1XCA7CivmsrPlj6PmuK8gPiBrYWtvdWtvdVwgOwor5LiN5L2T6KOBID4gZnV0ZWlzYWlcIDsKK+avkuicmOibmyA+IGRva3VndW1vXCA7CivljZjoqp7nr4cgPiB0YW5nb2hlblwgOwor55Sf5b6S5pWwID4gc2VpdG9zdXVcIDsKK+e+iuearue0mSA+IHlvdWhpc2hpXCA7Civmr43ns7vliLYgPiBib2tlaXNlaVwgOwor5bGV56S65aC0ID4gdGVuamlqb3VcIDsKK+W+jOmBuueXhyA+IGtvdWlzaG91XCA7CivkuI3lrproqZ4gPiBmdXRlaXNoaVwgOwor5Yqg5ouF6ICFID4ga2F0YW5zaGFcIDsKK+mZvembu+awlyA+IHlvdWRlbmtpXCA7CivlrqPkvJ3osrsgPiBzZW5kZW5oaVwgOwor5YqH5pig55S7ID4gZ2VraWVpZ2FcIDsKK+eEoeW4uOimsyA+IG11am91a2FuXCA7CivpgYrolanlhZAgPiB5dXV0b3VqaVwgOwor6YeR5rqA5a62ID4ga2lubWFua2FcIDsKK+mMoOWJjeWxiyA+IGpvdW1hZXlhXCA7Civnn6XlkI3luqYgPiBjaGltZWlkb1wgOwor5Ye66bGI55uuID4gZGV0YXJhbWVcIDsKK+aHh+ipseS8miA+IGtvbndha2FpXCA7Civpgb/pm6PmsJEgPiBoaW5hbm1pblwgOwor5Y2B5a2X6KGXID4ganV1amlnYWlcIDsKK+S4u+a8lOiAhSA+IHNodWVuc2hhXCA7CivkuJbkv5fljJYgPiBzZXpva3VrYVwgOwor57KX6KO95ZOBID4gc29zZWloaW5cIDsKK+WPs+W/g+aIvyA+IHVzaGluYm91XCA7CivlnKfliLbogIUgPiBhc3NlaXNoYVwgOwor5bGV56S65ZOBID4gdGVuamloaW5cIDsKK+abuOiomOWumCA+IHNob2tpa2FuXCA7Civpg7flnJ/mhJsgPiBreW91ZG9haVwgOwor6LKv6JS15bqrID4gY2hvem91a29cIDsKK+S4i+mmrOiplSA+IGdlYmFoeW91XCA7CivkuI3og73ogIUgPiBmdW5vdXNoYVwgOwor5LiN6Imv5YyWID4gZnVyeW91a2FcIDsKK+iWhOiNt+ezliA+IGhha2thdG91XCA7CivoloTojbfnsr4gPiBoYWtrYXNlaVwgOwor5q+U5Zap55qEID4gaGl5dXRla2lcIDsKK+S6ieitsOaoqSA+IHNvdWdpa2VuXCA7Civph43npoHpjK4gPiBqdXVraW5rb1wgOwor6YGL5YuV5qyEID4gdW5kb3VyYW5cIDsKK+aZruWBj+aApyA+IGZ1aGVuc2VpXCA7CivovrLnuYHmnJ8gPiBub3VoYW5raVwgOwor5oSf5Y+X5oCnID4ga2FuanVzZWlcIDsKK+WFteWZqOW3pSA+IGhlaWtpa291XCA7CivlgKrpm7LmnpcgPiBnZWl1bnJpblwgOwor6YGL6YCB6Ii5ID4gdW5zb3VzZW5cIDsKK+mBiuWGtumDjiA+IHl1dXlhcm91XCA7CivnlLvku5nntJkgPiBnYXNlbnNoaVwgOwor5aSa5q616ZqOID4gdGFkYW5rYWlcIDsKK+ippumok+apnyA+IHNoaWtlbmtpXCA7CivkuIDoiKzoq5YgPiBpcHBhbnJvblwgOwor5Yqg566X56iOID4ga2FzYW56ZWlcIDsKK+WIhuWykOe3miA+IGJ1bmtpc2VuXCA7Civlloflj63miYsgPiByYXBwYXNodVwgOwor5YWN572q56ymID4gbWVuemFpZnVcIDsKK+eKrOm7hOaliiA+IGludXRzdWdlXCA7Civljq3kuJboprMgPiBlbnNlaWthblwgOwor5Y2K5LiW57SAID4gaGFuc2Vpa2lcIDsKK+mFteavjeiPjCA+IGtvdWJva2luXCA7Civlhrfnvajms5UgPiByZWlhbnBvdVwgOwor5oSb6JS154mIID4gYWl6b3ViYW5cIDsKK+W+oeWBieaWuSA+IG9lcmFnYXRhXCA7CivoqJjmlbDms5UgPiBraXN1dWhvdVwgOwor56m65LiL5omLID4ga2FyYWhldGFcIDsKK+S4jeWBpeW6tyA+IGZ1a2Vua291XCA7CivmjqLmpJzlrrYgPiB0YW5rZW5rYVwgOwor5aSn5rCX5ZyPID4gdGFpa2lrZW5cIDsKK+eNheWtkOWQvCA+IHNoaXNoaWt1XCA7Civku6PnkIbmqKkgPiBkYWlyaWtlblwgOwor54mp5Lu26LK7ID4gYnVra2VuaGlcIDsKK+ato+imj+WFtSA+IHNlaWtpaGVpXCA7Civlho3phY3luIMgPiBzYWloYWlmdVwgOwor5Zub55Wz5Y2KID4geW9qb3VoYW5cIDsKK+WxleekuuS8miA+IHRlbmppa2FpXCA7CivlpKfpg73luIIgPiBkYWl0b3NoaVwgOwor5YWI5a2m5pyfID4gc2VuZ2Fra2lcIDsKK+aCqua0kuiQvSA+IHdhcnVqYXJlXCA7Civoh6rmsJHlhZogPiBqaW1pbnRvdVwgOwor5Yy755mC5ZOBID4gaXJ5b3VoaW5cIDsKK+WGheaymeaxsCA+IHVjaGl6YXRhXCA7CivliIblhYnlmaggPiBidW5rb3VraVwgOwor6Kaq5LiN5a2dID4gb3lhZnVrb3VcIDsKK+e4gei1t+eJqSA+IGVuZ2ltb25vXCA7CivmtYHmmJ/pm6ggPiByeXV1c2VpdVwgOwor5bm06LKi57GzID4gbmVuZ3VtYWlcIDsKK+a0l+a1hOWZqCA+IHNlbmpvdWtpXCA7CivmsrnpgIHoiLkgPiB5dXNvdXNlblwgOwor5b6q55Kw5ZmoID4ganVua2Fua2lcIDsKK+WBpeW6t+WFkCA+IGtlbmtvdWppXCA7CivnqI7nkIblo6sgPiB6ZWlyaXNoaVwgOwor5Lq65oOF5ZGzID4gbmluam91bWlcIDsKK+WrjOeWkeiAhSA+IGtlbmdpc2hhXCA7CivnrYnoqp7nt5ogPiB0b3Vnb3NlblwgOwor5Y2B5a2X57eaID4ganV1amlzZW5cIDsKK+S4jeS9v+eUqCA+IGZ1c2hpeW91XCA7CivkuIDnlJ/pnaIgPiBpc3NlaW1lblwgOwor5peF6KGM6KiYID4gcnlva291a2lcIDsKK+WAi+S9k+e+pCA+IGtvdGFpZ3VuXCA7Civlj6Pok4vpn7MgPiBrb3VnYWlvblwgOwor5Zyn5bu25qmfID4gYXRzdWVua2lcIDsKK+WSjOWjsOazlSA+IHdhc2VpaG91XCA7Civpq5jpoLvluqYgPiBrb3VoaW5kb1wgOwor5bCP6LGG6ImyID4gYXp1a2lpcm9cIDsKK+WOs+e+jua4kyA+IGdlbmJpa2VpXCA7CivngavlsbHlvL4gPiBrYXphbmRhblwgOwor5Y2K6Kun6Z+zID4gaGFua2Fpb25cIDsKK+a2iOWMluWZqCA+IHNob3VrYWtpXCA7CivmsYLms5XogIUgPiBndWhvdXNoYVwgOwor54Gr5bGx5bivID4ga2F6YW50YWlcIDsKK+S4i+mnhOeusSA+IGdldGFiYWtvXCA7Civoip3mtbfogIEgPiBzaGliYWViaVwgOwor5aSn5YiG55yMID4gb29pdGFrZW5cIDsKK+Wxsee+iumrrSA+IHlhZ2loaWdlXCA7CivngKzmiLjpmpsgPiBzZXRvZ2l3YVwgOwor54Gr5bGx5bO2ID4ga2F6YW50b3VcIDsKK+S4jeWvqeeBqyA+IGZ1c2hpbmJpXCA7CivlpYnku5XlpbMgPiBob3VzaGltZVwgOwor54Gr5bGx5bKpID4ga2F6YW5nYW5cIDsKK+eOieegguWIqSA+IHRhbWFqYXJpXCA7CivkuIDliIbljYogPiBpcHB1bmhhblwgOwor6Iqx6bOl55S7ID4ga2FjaG91Z2FcIDsKK+eEoeiPjOazlSA+IG11a2luaG91XCA7CivnhKHlhY3oqLEgPiBtdW1lbmt5b1wgOwor5b6F6YG/57eaID4gdGFpaGlzZW5cIDsKK+etieaZguaApyA+IHRvdWppc2VpXCA7CivlubTos4DnirYgPiBuZW5nYWpvdVwgOwor5Y+k5Y+C6ICFID4ga29zYW5zaGFcIDsKK+aEn+atjuespiA+IGthbnRhbmZ1XCA7CivliIblspDngrkgPiBidW5raXRlblwgOwor5L6N5b6T5a6YID4gamlqdXVrYW5cIDsKK+WGhemHjuaJiyA+IG5haXlhc2h1XCA7CivmsrnpgIHnrqEgPiB5dXNvdWthblwgOwor5LiN55So5b+DID4gYnV5b3VqaW5cIDsKK+iqmOibvueBryA+IHl1dWdhdG91XCA7CivoqIjnkIblo6sgPiBrZWlyaXNoaVwgOwor6ZuR6LKo5bqXID4gemFra2F0ZW5cIDsKK+W6p+WPs+mKmCA+IHpheXV1bWVpXCA7CivlrZDpn7PmgKcgPiBzaGlpbnNlaVwgOwor5pyf5b6F5oSfID4ga2l0YWlrYW5cIDsKK+mBi+WLleWutiA+IHVuZG91c2hhXCA7CivmhJrpgKPpmoogPiBndXJlbnRhaVwgOwor5Y6f5a2Q6ZuyID4gZ2Vuc2hpdW5cIDsKK+S7o+eQhuW6lyA+IGRhaXJpdGVuXCA7Civoq7jlmajmorAgPiBzaG9raWthaVwgOwor5pON6Ii15omLID4gc291ZGFzaHVcIDsKK+WHuuatr+S6gCA+IGRlYmFrYW1lXCA7CivkuI3lgaXlhaggPiBmdWtlbnplblwgOwor55u46KOc5oCnID4gc291aG9zZWlcIDsKK+iHqui7oui7iiA+IGppdGVuc2hhXCA7CivliJ3mnJ/lgKQgPiBzaG9raWNoaVwgOwor5o6l6aCt6L6eID4gc2V0dG91amlcIDsKK+eUn+W+kuS8miA+IHNlaXRva2FpXCA7CivotaToo7jjgIUgPiBzZWtpcmFyYVwgOwor6aCQ6KiA6ICFID4geW9nZW5zaGFcIDsKK+mWi+WCrOaXpSA+IGthaXNhaWJpXCA7Civog7TplpPlo7AgPiBkb3VtYWdvZVwgOwor6IOM55Wq5Y+3ID4gc2ViYW5nb3VcIDsKK+a1rua1quiAhSA+IGZ1cm91c2hhXCA7CivkvJrlk6HliLggPiBrYWlpbmtlblwgOwor5Lya5ZOh5Yi2ID4ga2FpaW5zZWlcIDsKK+iLseexs+azlSA+IGVpYmVpaG91XCA7CivlkIjnkIboq5YgPiBnb3VyaXJvblwgOwor5aSn6YOo5YiGID4gZGFpYnVidW5cIDsKK+S6lOinkuW9oiA+IGdva2Fra2VpXCA7CivnpL7kvJrljJYgPiBzaGFrYWlrYVwgOwor5Lit6KaP5qihID4gY2h1dWtpYm9cIDsKK+Wkp+mDveS8miA+IGRhaXRva2FpXCA7CivorbfpgIHou4ogPiBnb3NvdXNoYVwgOwor6YeN5omL5LujID4gb21vdGVkYWlcIDsKK+W6g+WgsemDqCA+IGtvdWhvdWJ1XCA7CivlibXkuJboqJggPiBzb3VzZWlraVwgOwor5LiJ5p2v6YWiID4gc2FuYmFpenVcIDsKK+evgOeCreWZqCA+IHNldHRhbmtpXCA7CivluIzmnJvogIUgPiBraWJvdXNoYVwgOwor5aSW56eR5a2mID4gZ2VrYWdha3VcIDsKK+WIkeS6i+eKryA+IGtlaWppaGFuXCA7CivphY3nt5rlm7MgPiBoYWlzZW56dVwgOwor5qmf5qKw6KuWID4ga2lrYWlyb25cIDsKK+W3neeni+aymSA+IGthd2FhaXNhXCA7CivmlofljJblnI8gPiBidW5rYWtlblwgOwor5o6l6aCt6KqeID4gc2V0dG91Z29cIDsKK+S6i+aVheattCA+IGppa29yZWtpXCA7CivlsbHlsI/lsYsgPiB5YW1hZ295YVwgOwor57O46Jy76JuJID4gaXRvdG9uYm9cIDsKK+enu+i7ouWFiCA+IGl0ZW5zYWtpXCA7CivlpKfli7LkvY0gPiBkYWlrdW4nJ2lcIDsKK+Wkp+ebrueOiSA+IG9vbWVkYW1hXCA7CivlrpjlhazlkI8gPiBrYW5rb3VyaVwgOwor5Y2U6K2w5ZOhID4ga3lvdWdpaW5cIDsKK+i7jeS6i+eKryA+IGd1bmppaGFuXCA7Civpmo/ooYzlk6EgPiB6dWlrb3VpblwgOwor5LiA6L665YCSID4gaXBwZW50b3VcIDsKK+ePvuS7o+iqniA+IGdlbmRhaWdvXCA7CivogbTpn7PmqZ8gPiBjaG91b25raVwgOwor5LiN5bCO5oCnID4gZnVkb3VzZWlcIDsKK+eQhuWuueW4qyA+IHJpeW91c2hpXCA7CivkubHpq5jkuIsgPiByYW5rb3VnZVwgOwor5Y+Z5oOF6KmpID4gam9qb3VzaGlcIDsKK+ekvuS6pOWutiA+IHNoYWtvdWthXCA7CivmlofljJblj7IgPiBidW5rYXNoaVwgOwor5LiN55So5ZOBID4gZnV5b3VoaW5cIDsKK+mAj+aYjuW6piA+IHRvdW1laWRvXCA7CivkuI3lrprms5UgPiBmdXRlaWhvdVwgOwor5rip5o6S5rC0ID4gb25oYWlzdWlcIDsKK+WkqeiKseeyiSA+IHRlbmthZnVuXCA7CivoiKrnqbrot68gPiBrb3VrdXVyb1wgOwor6LOH55Sj5a62ID4gc2hpc2Fua2FcIDsKK+mhnuS8vOeCuSA+IHJ1aWppdGVuXCA7Civmt6HmsLTmuZYgPiB0YW5zdWlrb1wgOwor5LqI6KiA6ICFID4geW9nZW5zaGFcIDsKK+W6g+WgseiqsiA+IGtvdWhvdWthXCA7CivlsI/kurrmlbAgPiBrb25pbnp1dVwgOwor5oSb55+l55yMID4gYWljaGlrZW5cIDsKK+S6uumAoOiXjSA+IGppbnpvdWFpXCA7CivljLvlrabogIUgPiBpZ2FrdXNoYVwgOwor5oKq5oSf5oOFID4gYWtrYW5qb3VcIDsKK+S7rue0jemHkSA+IGthbm91a2luXCA7CivmnKrlh6bliIYgPiBtaXNob2J1blwgOwor5beu6YWN5Lq6ID4gc2FoYWluaW5cIDsKK+S9jumgu+W6piA+IHRlaWhpbmRvXCA7CivkvZzngrrniq8gPiBzYWt1aWhhblwgOwor5q2v56eR55SoID4gc2hpa2F5b3VcIDsKK+WGjeWHpueQhiA+IHNhaXNob3JpXCA7CivpgYvli5XkvJogPiB1bmRvdWthaVwgOwor6Iqx6Iyj6JOZID4gaGFuYWdvemFcIDsKK+eOhOatpuWyqSA+IGdlbmJ1Z2FuXCA7CivmtrLnirbljJYgPiBla2lqb3VrYVwgOwor54Sh5Yip5oGvID4gbXVyaXNva3VcIDsKK+mZo+e+vee5lCA+IGppbmJhb3JpXCA7CivmiKbpl5jmqZ8gPiBzZW50b3VraVwgOwor5pyJ5oSP55qEID4geXV1aXRla2lcIDsKK+WVj+mhjOWFkCA+IG1vbmRhaWppXCA7CivlgrXli5nogIUgPiBzYWltdXNoYVwgOwor5LiA6aiO6KiOID4gaWtraXVjaGlcIDsKK+ijnOe1pui3ryA+IGhva3l1dXJvXCA7CivkuIvlsaTlnJ8gPiBrYXNvdWRvXCA7Civotbfli5XmqZ8gPiBraWRvdWtpXCA7CivljYHlrZfmnrYgPiBqdXVqaWthXCA7Civkurrlt6Xpm6ggPiBqaW5rb3V1XCA7CivppJPprLzpgZMgPiBnYWtpZG91XCA7CivkuI3lrprmnJ8gPiBmdXRlaWtpXCA7CivmqKHmk6zlupcgPiBtb2dpdGVuXCA7Civlj6TmrabpgZMgPiBrb2J1ZG91XCA7CivmoITppIrntKAgPiBlaXlvdXNvXCA7Civouqvli53miYsgPiBtaWdhdHRlXCA7CivnhKHliKnlrZAgPiBtdXJpc2hpXCA7CivnkaDnkoPoibIgPiBydXJpaXJvXCA7Civog4Pohbjngo4gPiBpY2hvdWVuXCA7Civotbfli5XmmYIgPiBraWRvdWppXCA7CivmrrrpmaPluKsgPiB0YXRlc2hpXCA7CivpoZ7nvqnoqp4gPiBydWlnaWdvXCA7CivlrrboqIjnsL8gPiBrYWtlaWJvXCA7CivnmbvoqJjnsL8gPiB0b3VraWJvXCA7Civph43mr43pn7MgPiBqdXVib2luXCA7CivpgYXnn6XmgbUgPiBvc29kamllXCA7CivlpKfpgY7ljrsgPiBkYWlrYWtvXCA7CivliqDnrpflmaggPiBrYXNhbmtpXCA7CivlpKfnm7jmkrIgPiBvb3p1bW91XCA7CivmqZ/og73oqp4gPiBraW5vdWdvXCA7CivmnInmsJfpn7MgPiB5dXVraW9uXCA7CivkuI3mnaHnkIYgPiBmdWpvdXJpXCA7CivlpKfpgZPlhbcgPiBvb2RvdWd1XCA7CivlrprkvY3nva4gPiB0ZWlpY2hpXCA7CivpgYvpgIHlsYsgPiB1bnNvdXlhXCA7CivpgKDllrbosrsgPiB6b3VlaWhpXCA7Civokpnlj6Toqp4gPiBtb3Vrb2dvXCA7CivmqZ/morDnp5EgPiBraWthaWthXCA7CivmrKHlubTluqYgPiBqaW5lbmRvXCA7CivlpJrph43ljJYgPiB0YWp1dWthXCA7CivljYPku6PlpbMgPiBjaGl5b2pvXCA7Civlj6TnpL7lr7ogPiBrb3NoYWppXCA7CivkuIDlsaTnm64gPiBpc3NvdW1lXCA7CivlqJHlqYbmsJcgPiBzaGFiYWtlXCA7CivlirHno4HmqZ8gPiByZWlqaWtpXCA7CivkuI3pppblsL4gPiBmdXNodWJpXCA7CivmgqrmhJ/ljJYgPiBha2thbmthXCA7CivlvoXpgb/miYAgPiB0YWloaWpvXCA7Civlm5vogqHlkI0gPiBzaGlrb25hXCA7CivkuI3kurrmsJcgPiBmdW5pbmtpXCA7Civopb/mrKfljJYgPiBzZWlvdWthXCA7Civkuozpmo7lsYsgPiBuaWthaXlhXCA7Civmo5LmmpfoqJggPiBib3VhbmtpXCA7CivkuI3kuIDoh7QgPiBmdWl0Y2hpXCA7CivooYDlj43lkJAgPiBjaGloZWRvXCA7Civmm7PngavlvL4gPiBlaWthZGFuXCA7Civkuozpmo7lrrYgPiBuaWthaXlhXCA7CivnsKHntKDljJYgPiBrYW5zb2thXCA7CivlgIvkvZPlt64gPiBrb3RhaXNhXCA7CivlkIzpn7Poqp4gPiBkb3VvbmdvXCA7CivkuZfli5nlk6EgPiBqb3VtdWluXCA7Civoo4/mnKjmiLggPiB1cmFraWRvXCA7Civph5Hmr5jnvoUgPiBrb25waXJhXCA7CivnhKHpgKDkvZwgPiBtdXpvdXNhXCA7CivljYHkuozmmYIgPiBqdXVuaWppXCA7CivmhI/mg7PlpJYgPiBpc291Z2FpXCA7CivkuI3lronlrpogPiBmdWFudGVpXCA7CivpmbDpm7vmsJcgPiBpbmRlbmtpXCA7CivoloTppqzpub8gPiB1c3ViYWthXCA7CivkuIHlrZfot68gPiB0ZWlqaXJvXCA7Civmj5DnpLrpg6ggPiB0ZWlqaWJ1XCA7CivmhbDllY/lk4EgPiBpbW9uaGluXCA7CivopqrmloflrZcgPiBveWFtb2ppXCA7CivnkIbosqHlrrYgPiByaXphaWthXCA7CivnqL3lj6Tml6UgPiBrZWlrb2JpXCA7CivkuozloYHmiZMgPiBuaXJ1aWRhXCA7CivmiYvnm7joposgPiB0ZXNvdW1pXCA7CivlpJznm5fom74gPiB5b3RvdWdhXCA7CivlpbPmgKfnvo4gPiBqb3NlaWJpXCA7Civpoqjpgqrlo7AgPiBrYXplZ29lXCA7Civljq3kuJblrrYgPiBlbnNlaWthXCA7Civnhqjmlpfnm64gPiBub3NoaW1lXCA7CivpmbDorIDlrrYgPiBpbmJvdWthXCA7Civpmo/mhI/nrYsgPiB6dWlpa2luXCA7CivmiYvliqDmuJsgPiB0ZWthZ2VuXCA7Civorprnvo7mrYwgPiBzYW5iaWthXCA7CivlkIzkvY3kvZMgPiBkb3VpdGFpXCA7CivpoZ7pn7Poqp4gPiBydWlvbmdvXCA7Civlj4nmiYvntrIgPiBzYWRlYW1pXCA7CivlsI/ntqzpto8gPiBrb2p1a2VpXCA7CivmmbTpm6joqIggPiBzZWl1a2VpXCA7CivmlofluqvljJYgPiBidW5rb2thXCA7Civph47mrKHppqwgPiB5YWppdW1hXCA7CivooZfot6/mqLkgPiBnYWlyb2p1XCA7CivmjqfoqLTpmaIgPiBrb3Vzb2luXCA7Civku5nkurrmjowgPiBzYWJvdGVuXCA7Civnvqnmj7Tph5EgPiBnaWVua2luXCA7Civkv6/nnrDlm7MgPiBmdWthbnp1XCA7CivlvqHmlrDpppkgPiBvc2hpbmtvXCA7CivlvqHlrrbkurogPiBnb2tlbmluXCA7CivlpKflr7rpmaIgPiBkYWlqaWluXCA7Civng4/nvr3njokgPiB1YmF0YW1hXCA7CivmgKfooYzngrogPiBzZWlrb3VpXCA7CivkuIDoiKzljJYgPiBpcHBhbmthXCA7CivljYHkupTlpJwgPiBqdXVnb3lhXCA7CivkuozpmaLliLYgPiBuaWluc2VpXCA7CivlrrbmlL/lqaYgPiBrYXNlaWZ1XCA7CivnrKzkuoznvqkgPiBkYWluaWdpXCA7CivnnJ/prZrmnb8gPiBtYW5haXRhXCA7Civlhobou4zpgZMgPiBlbmtpZG91XCA7Civph47okaHokIQgPiBub2J1ZG91XCA7Civlv5zli5/ogIUgPiBvdWJvc2hhXCA7Civpurvlrp/msrkgPiBhc2FtaXl1XCA7CivojLbpo6/kuosgPiBzYWhhbmppXCA7Civlhavph43pm7IgPiB5YWVndW1hXCA7CivmnKrouI/mn7sgPiBtaXRvdXNhXCA7CivntbXokYnmm7ggPiBlaGFnYWtpXCA7CivnqL3lj6TloLQgPiBrZWlrb2JhXCA7CivlronlhajmnJ8gPiBhbnplbmtpXCA7Civlj43mhI/oqp4gPiBoYW4nJ2lnb1wgOwor5YCL5Lq65beuID4ga29qaW5zYVwgOwor57eP5YuZ6YOoID4gc291bXVidVwgOwor6K2m6YOo6KOcID4ga2VpYnVob1wgOwor5LiO5aSq6YOOID4geW90YXJvdVwgOwor5L2N54mM5aCCID4gaWhhaWRvdVwgOwor576p5aSq5aSrID4gZ2lkYXl1dVwgOwor5LiJ6Z6t6YWSID4gc2hhbnBlblwgOwor5aaD5q6/5LiLID4gaGlkZW5rYVwgOwor5ryr55S75a62ID4gbWFuZ2FrYVwgOwor5LiN5pys5oSPID4gZnVob24nJ2lcIDsKK+atqeWQiOeulyA+IGJ1YWl6YW5cIDsKK+iqnuW9meeahCA+IGdvaXRla2lcIDsKK+esrOS4gOiqsiA+IGRhaWlra2FcIDsKK+S6leaIuOerryA+IGlkb2JhdGFcIDsKK+eQhuS6i+S8miA+IHJpamlrYWlcIDsKK+eBq+abnOaXpSA+IGtheW91YmlcIDsKK+W+oeS4jea1hCA+IGdvZnVqb3VcIDsKK+acquWumue+qSA+IG1pdGVpZ2lcIDsKK+WvvuS9jeazlSA+IHRhaWlob3VcIDsKK+a1rua1quWFkCA+IGZ1cm91amlcIDsKK+WppuS6uuenkSA+IGZ1amlua2FcIDsKK+S7luS4lueVjCA+IHRhc2VrYWlcIDsKK+aFsOWKtOmHkSA+IGlyb3VraW5cIDsKK+eQhuS4jeWwvSA+IHJpZnVqaW5cIDsKK+WNmOWdkOapnyA+IHRhbnpha2lcIDsKK+S4jemjveWSjCA+IGZ1aG91d2FcIDsKK+S7o+itsOWToSA+IGRhaWdpaW5cIDsKK+mdnuWQiOeQhiA+IGhpZ291cmlcIDsKK+e3j+WLmeiqsiA+IHNvdW11a2FcIDsKK+aksOWtkOayuSA+IHlhc2hpeXVcIDsKK+awtOazs+edgCA+IHN1aWVpZ2lcIDsKK+e1teiNiee0mSA+IGV6b3VzaGlcIDsKK+Wwj+eKrOW6pyA+IGtvaW51emFcIDsKK+i1pOWRs+WZjCA+IGFrYW1pc29cIDsKK+Wvvue+qeiqniA+IHRhaWdpZ29cIDsKK+axmuafk+iPjCA+IG9zZW5raW5cIDsKK+S4ieaXpei3ryA+IG1pa2thamlcIDsKK+WxhemFkuWxiyA+IGl6YWtheWFcIDsKK+iHquWutuijvSA+IGppa2FzZWlcIDsKK+Whl+W4g+WJpCA+IHRvZnV6YWlcIDsKK+WPpOWFuOiqniA+IGtvdGVuZ29cIDsKK+e+qeaNkOmHkSA+IGdpZW5raW5cIDsKK+S4jeaZr+awlyA+IGZ1a2Vpa2lcIDsKK+WQiOeQhuWMliA+IGdvdXJpa2FcIDsKK+aLieS4geiqniA+IHJhdGVuZ29cIDsKK+mbu+ejgeazoiA+IGRlbmppaGFcIDsKK+mbu+ejgeawlyA+IGRlbmppa2lcIDsKK+WuieWFqOWZqCA+IGFuemVua2lcIDsKK+apn+aisOWMliA+IGtpa2Fpa2FcIDsKK+aghOmkiuS+oSA+IGVpeW91a2FcIDsKK+esrOS6jOasoSA+IGRhaW5pamlcIDsKK+S6leaIuOawtCA+IGlkb21penVcIDsKK+S4gOWAi+S6uiA+IGlra29qaW5cIDsKK+S6oeellueItiA+IGJvdXNvZnVcIDsKK+W+oeacseWNsCA+IGdvc2h1aW5cIDsKK+eVsOaAp+S9kyA+IGlzZWl0YWlcIDsKK+mdnuWQjOacnyA+IGhpZG91a2lcIDsKK+WNgemcsuebpCA+IHNvcm9iYW5cIDsKK+ethuiomOWFtyA+IGhpa2tpZ3VcIDsKK+epj+WBpea0viA+IG9ua2VuaGFcIDsKK+iCsuWFkOWckiA+IGlrdWppZW5cIDsKK+mbu+awl+eCiSA+IGRlbmtpcm9cIDsKK+S+neWtmOaApyA+IGl6b25zZWlcIDsKK+avlOWPoeWxsSA+IGhpZWl6YW5cIDsKK+S+nemgvOiAhSA+IGlyYWlzaGFcIDsKK+ijveayueaJgCA+IHNlaXl1am9cIDsKK+WfuuacrOiqniA+IGtpaG9uZ29cIDsKK+W+oeS4ieWutiA+IGdvc2Fua2VcIDsKK+S6lOevgOWPpSA+IGdvc2Vra3VcIDsKK+iqpOWLleS9nCA+IGdvZG91c2FcIDsKK+W9seWNsOacrCA+IGVpaW5ob25cIDsKK+e1jOWWtuiyuyA+IGtlaWVpaGlcIDsKK+WGhuebuOWgtCA+IGVuc291YmFcIDsKK+iiq+eWkeiAhSA+IGhpZ2lzaGFcIDsKK+aUvueBq+mtlCA+IGhvdWthbWFcIDsKK+S4jeaWreedgCA+IGZ1ZGFuZ2lcIDsKK+iBlui3r+WKoCA+IHNlaXJva2FcIDsKK+S4i+e3mumDqCA+IGthc2VuYnVcIDsKK+WkmuasoeWFgyA+IHRhamlnZW5cIDsKK+S8vOmdnuiAhSA+IGVzZW1vbm9cIDsKK+iEs+WkluenkSA+IG5vdWdla2FcIDsKK+W+oeS4i+WVjyA+IGdva2Ftb25cIDsKK+iGg+iCreiHjSA+IG90dG9zZWlcIDsKK+Wls+aAp+WZqCA+IGpvc2Vpa2lcIDsKK+WtteWNteWZqCA+IGZ1cmFua2lcIDsKK+eEoeeQhuinoyA+IG11cmlrYWlcIDsKK+eItuaAp+aEmyA+IGZ1c2VpYWlcIDsKK+mdnuatpuijhSA+IGhpYnVzb3VcIDsKK+WQjOeItuavjSA+IGRvdWZ1Ym9cIDsKK+Wls+aAp+WMliA+IGpvc2Vpa2FcIDsKK+eEoeacn+mZkCA+IG11a2lnZW5cIDsKK+iHquWutueUqCA+IGppa2F5b3VcIDsKK+Wutuezu+WbsyA+IGtha2VpenVcIDsKK+S4gOS4lue0gCA+IGlzc2Vpa2lcIDsKK+iHqueUseW6piA+IGppeXV1ZG9cIDsKK+axmuafk+a6kCA+IG9zZW5nZW5cIDsKK+S+nemgvOeKtiA+IGlyYWlqb3VcIDsKK+esrOS4gOatqSA+IGRhaWlwcG9cIDsKK+W+ruWhteWtkCA+IG1pamlua29cIDsKK+i0lOWxk+ebriA+IGhpaWtpbWVcIDsKK+mbu+ejgeWgtCA+IGRlbmppYmFcIDsKK+S4gOS9k+WMliA+IGl0dGFpa2FcIDsKK+W+oeaXpeanmCA+IG9oaXNhbWFcIDsKK+mfs+e+veWxiyA+IG90b3dheWFcIDsKK+WMu+mZoumVtyA+IGlpbmNob3VcIDsKK+WNsOasp+iqniA+IGluJydvdWdvXCA7Civlh7rmnaXnp4sgPiBkZWtpYWtpXCA7Civpo5vooYzmqZ8gPiBoaWtvdWtpXCA7CivnhKHkvZzngrogPiBtdXNha3VpXCA7Civpg73luILpg6ggPiB0b3NoaWJ1XCA7CivluqfokrLlm6MgPiB6YWJ1dG9uXCA7CivmlL7oqrLlvowgPiBob3VrYWdvXCA7CivkuIDmnKzmsJcgPiBpcHBvbmdpXCA7Civpm7vmsJflsYsgPiBkZW5raXlhXCA7CivmnKrmnaXmtL4gPiBtaXJhaWhhXCA7CivmoIToqonnpLwgPiBlaXlvcmVpXCA7Civns5booaPpjKAgPiB0b3Vpam91XCA7CivnkIboq5blrrYgPiByaXJvbmthXCA7CivmiZPmpb3lmaggPiBkYWdha2tpXCA7CivnhKHkvZzms5UgPiBidXNhaG91XCA7Civku4HnjovploAgPiBuaW91bW9uXCA7Civlj6TlhbjmtL4gPiBrb3RlbmhhXCA7CivntKDlsIHlrrYgPiBzb2hvdWthXCA7CivmranlkIjliLYgPiBidWFpc2VpXCA7CivprZrmsrPlsrggPiB1b2dhc2hpXCA7Civoh6rnlLHljJYgPiBqaXl1dWthXCA7CivmjojnlKPmiYAgPiBqdXNhbmpvXCA7Civpp4bli5XmqZ8gPiBrdWRvdWtpXCA7CivkuoznrofmiYAgPiBuaWthc2hvXCA7CivpgZXniq/ogIUgPiBpaGFuc2hhXCA7Civoh6rnlLvlg48gPiBqaWdhem91XCA7CivlvaLmhI/mi7MgPiBrZWlpa2VuXCA7Civmr43mgKfmhJsgPiBib3NlaWFpXCA7CivkupXmiLjlgbQgPiBpZG9nYXdhXCA7CivnoLTnoJXmqZ8gPiBoYXNhaWtpXCA7CivpgZXorabnvaogPiBpa2VpemFpXCA7CivluIzlnJ/poZ4gPiBraWRvcnVpXCA7CivkupzpiZvlvJUgPiBhZW5iaWtpXCA7CivlpKrlrrDlupwgPiBkYXphaWZ1XCA7CivkvIrpgZTogIUgPiBkYXRlc2hhXCA7CivpgIHoqbHlmaggPiBzb3V3YWtpXCA7CivkvLTlpKnpgKMgPiBiYXRlcmVuXCA7CivkupzpurvluIMgPiBhbWFudW5vXCA7CivlpbPpg47lsYsgPiBqb3JvdXlhXCA7CivlmbTpnKflmaggPiBmdW5tdWtpXCA7Civoi7HljZjoqp4gPiBlaXRhbmdvXCA7Civojbfppqzou4ogPiBuaWJhc2hhXCA7Civmk6zmhYvoqp4gPiBnaXRhaWdvXCA7CivnlbDpgqbkurogPiBpaG91amluXCA7CivmgKrmiJHkurogPiBrZWdhbmluXCA7Civlirnmnpzpn7MgPiBrb3VrYW9uXCA7CivlopPnopHpipggPiBib2hpbWVpXCA7Civpo5vooYzlrrYgPiBoaWtvdWthXCA7CivngavnhqjmlpcgPiBoaW5vc2hpXCA7CivlhKrkvY3mgKcgPiB5dXVpc2VpXCA7CivnhKHotqPlkbMgPiBtdXNodW1pXCA7CivpgY7nj77mnKogPiBrYWdlbm1pXCA7CivplbfmpIXlrZAgPiBuYWdhaXN1XCA7Civogb7llJbogIUgPiByb3Vhc2hhXCA7CivmloflrZfnm6QgPiBtb2ppYmFuXCA7CivkupTljYHpn7MgPiBnb2p1dW9uXCA7CivlpKnlqabnvoUgPiB0ZW5wdXJhXCA7Civlr53pgZPlhbcgPiBuZWRvdWd1XCA7CivnlbDliIblrZAgPiBpYnVuc2hpXCA7Civoh6rosqnmqZ8gPiBqaWhhbmtpXCA7Civlhavph43lnqMgPiB5YWVnYWtpXCA7CivnhKHkvqHlgKQgPiBtdWthY2hpXCA7CivkurrkuovpmaIgPiBqaW5qaWluXCA7CivkuI3lpJzln44gPiBmdXlham91XCA7Civnvo7kuIjlpKsgPiBiaWpvdWZ1XCA7CivmmJPmkI3lk4EgPiBpc29uaGluXCA7CivlsLzlg6fpmaIgPiBuaXNvdWluXCA7CivnhKHnkIbmlbAgPiBtdXJpc3V1XCA7CivnhKHpn7voqakgPiBtdWluc2hpXCA7CivlpJrmp5jljJYgPiB0YXlvdWthXCA7CivnlLLmlpDmgKcgPiBrYWlzaG91XCA7CivlsYvmoLnoo48gPiB5YW5ldXJhXCA7CivmmrTpoqjpm6ggPiBib3VmdXV1XCA7CivnlJ/nkIbml6UgPiBzZWlyaWJpXCA7CivliIbpmZDogIUgPiBidWdlbmphXCA7Civkurrkuovpg6ggPiBqaW5qaWJ1XCA7CivpuJrptaHosp0gPiBvdW11Z2FpXCA7CivkuIDkuIHlrZcgPiBpdHRlaWppXCA7CivliIbpm6LmtL4gPiBidW5yaWhhXCA7CivlsI/ntLDlt6UgPiBrb3phaWt1XCA7Civmmpflj7fljJYgPiBhbmdvdWthXCA7CivljbDluqbmtIsgPiBpbmRveW91XCA7CivloanntKDphbggPiBlbnNvc2FuXCA7Civkvp3poLzkurogPiBpcmFpbmluXCA7CivniLbmr43kvJogPiBmdWJva2FpXCA7Civpo7LphZLlrrYgPiBpbnNodWthXCA7CivkuI3oqo3lj68gPiBmdW5pbmthXCA7CivmhbDlirTkvJogPiBpcm91a2FpXCA7CivosYbohZDlsYsgPiB0b3VmdXlhXCA7CivliIbpm6LmqZ8gPiBidW5yaWtpXCA7Civngavngo7nk7YgPiBrYWVuYmluXCA7CivlvqHlpJrliIYgPiBnb3RhYnVuXCA7Civoh6jmmYLosrsgPiByaW5qaWhpXCA7CivlpKflpKrpvJMgPiBvb2RhaWtvXCA7CivlpoLkvZXnqIsgPiBpa2Fob2RvXCA7CivniaHniZvluqcgPiBvdXNoaXphXCA7CivliqDlt6XosrsgPiBrYWtvdWhpXCA7CivkurrkuovoqrIgPiBqaW5qaWthXCA7Civph47oia/niqwgPiBub3JhaW51XCA7CivoroPnvo7mrYwgPiBzYW5iaWthXCA7Civml6XmnKzplpMgPiBuaWhvbm1hXCA7CivlpKfosYbmsrkgPiBkYWl6dXl1XCA7CivlhZDnq6XnlLsgPiBqaWRvdWdhXCA7CivmvJToiJ7loLQgPiBlbmJ1am91XCA7CivkvLzpnZ7kuosgPiBlc2Vnb3RvXCA7CivkuI3ntZDmnpwgPiBmdWtla2thXCA7CivlnLDkuIvljJYgPiBjaGlrYWthXCA7Civlhavnmb7plbcgPiB5YW9jaG91XCA7CivpgY7po73lkowgPiBrYWhvdXdhXCA7Civml6nlsJHlpbMgPiBzYW90b21lXCA7CivlpoLkvZXniakgPiBpa2Ftb25vXCA7CivniYjnlLvlrrYgPiBoYW5nYWthXCA7CivmhJvpo7LogIUgPiBhaWluc2hhXCA7CivlronlrprlmaggPiBhbnRlaWtpXCA7Civpp4Toj5PlrZAgPiBkYWdhc2hpXCA7CivllJDog6HpursgPiB0b3Vnb21hXCA7CivlgZzpn7PnrKYgPiB0ZWlvbnB1XCA7CivlnJLoirjlrrYgPiBlbmdlaWthXCA7CivmipXlvbHmqZ8gPiB0b3VlaWtpXCA7Civoi7HlkInliKkgPiBpZ2lyaXN1XCA7CivluqfluIPlm6MgPiB6YWJ1dG9uXCA7CivnhKHlo7Dpn7MgPiBtdXNlaW9uXCA7CivllJDojITlrZAgPiB0b3VuYXN1XCA7Civml6XmnKzoqp4gPiBuaWhvbmdvXCA7CivlvpPkuInkvY0gPiBqdXNhbm1pXCA7CivlqablpbPlrZAgPiBmdWpvc2hpXCA7Civlt6XkuovosrsgPiBrb3VqaWhpXCA7CivmuKnluqboqIggPiBvbmRva2VpXCA7CivlronlrprljJYgPiBhbnRlaWthXCA7Civms5Xonrrosp0gPiBob3JhZ2FpXCA7CivpnZ7luLjmmYIgPiBoaWpvdWppXCA7CivlhavljYPku6MgPiB5YWNoaXlvXCA7CivkuI3ntLDlt6UgPiBidXNhaWt1XCA7CivkvZnmsLTot68gPiB5b3N1aXJvXCA7Civnm7jpgZXngrkgPiBzb3VpdGVuXCA7Civmm7zojbznvoUgPiBtYW5kYXJhXCA7CivlnLDpm7fngasgPiBqaXJhaWthXCA7Civlhazli5nlk6EgPiBrb3VtdWluXCA7CivmoYjlsbHlrZAgPiBrYWthc2hpXCA7Civlj6Tku6Poqp4gPiBrb2RhaWdvXCA7CivnlJ/kuIDmnKwgPiBraWlwcG9uXCA7CivouqvotJTlsZMgPiBtaWJpaWtpXCA7CivmnKrmlbTnkIYgPiBtaXNlaXJpXCA7Civkuojnp5HnlJ8gPiB5b2thc2VpXCA7CivmnKrntYzpgY4gPiBtaWtlaWthXCA7Civmtbfmnb7osp0gPiBtaXJ1Z2FpXCA7CivlhbXlhZDluK8gPiBoZWtvb2JpXCA7CivouqvlpYfpupcgPiBtaWdpcmVpXCA7CivmpJzmn7vlk6EgPiBrZW5zYWluXCA7CivljbHmqZ/mhJ8gPiBraWtpa2FuXCA7CivotaTojITlrZAgPiBha2FuYXN1XCA7Civnq6/mrabogIUgPiBoYW11c2hhXCA7CivljbDluqbkurogPiBpbmRvamluXCA7CivlhoXlronmiZMgPiBuYWlhbmRhXCA7CivlsYvmoLnmnb8gPiB5YW5laXRhXCA7CivnhKHmnJ/liJEgPiBtdWtpa2VpXCA7CivoqJjlv7XnopEgPiBraW5lbmhpXCA7Civpg73luILljJYgPiB0b3NoaWthXCA7Civlupznn6XkuosgPiBmdWNoaWppXCA7CivlhoXogLPngo4gPiBuYWlqaWVuXCA7CivljJfkuqzoqp4gPiBwZWtpbmdvXCA7CivniqzlsI/lsYsgPiBpbnVnb3lhXCA7CivlvbzlsrjkvJogPiBoaWdhbicnZVwgOwor55u45byf5a2QID4gYWlkZXNoaVwgOwor6bOz5Yew5bqnID4gaG91b3V6YVwgOwor5ZK96aCt54KOID4gaW50b3VlblwgOwor5oqV5b2x5ZuzID4gdG91ZWl6dVwgOwor5LiN6KGb55SfID4gZnVlaXNlaVwgOwor5pW055CG6YOoID4gc2VpcmlidVwgOwor5YWl5q+N5bGLID4gaXJpbW95YVwgOwor5aSa6Laj5ZGzID4gdGFzaHVtaVwgOwor6Z+z6KiY5Y+3ID4gb25raWdvdVwgOwor5bCP5Z2K5Li7ID4ga29ib3V6dVwgOwor5pel5pys55S7ID4gbmlob25nYVwgOwor57SA5YWD5b6MID4ga2lnZW5nb1wgOwor5L2T5rip5ZmoID4gdGFpb25raVwgOwor5b6u5rip5rmvID4gYmlvbnRvdVwgOwor6LK05amm5Lq6ID4ga2lmdWppblwgOwor5Y+z5aSn6IejID4gdWRhaWppblwgOwor5biw5YyW5Lq6ID4ga2lrYWppblwgOwor5oim5b6M5rS+ID4gc2VuZ29oYVwgOwor5Y+X5YOP5qmfID4ganV6b3VraVwgOwor6KiY5b+15qi5ID4ga2luZW5qdVwgOwor57KJ5b6u5aG1ID4ga29taWppblwgOwor54K65pS/6ICFID4gaXNlaXNoYVwgOwor5aSn54qs5bqnID4gb29pbnV6YVwgOwor5pel5pmC6KiIID4gaGlkb2tlaVwgOwor5pmC5LqL6KuWID4gamlqaXJvblwgOwor5L+d6aSK6ZmiID4gaG95b3VpblwgOwor6Ieq54S26JavID4gamluZW5qb1wgOwor5L+d5YGl5omAID4gaG9rZW5qb1wgOwor6Zui5byB6IqxID4gcmliZW5rYVwgOwor5qyh5LiW5LujID4gamlzZWRhaVwgOwor5LiN5Zmo55SoID4gYnVraXlvdVwgOwor5omL5aWH6bqXID4gdGVnaXJlaVwgOwor5aGp5Z+65oCnID4gZW5raXNlaVwgOwor6KiY5b+15pelID4ga2luZW5iaVwgOwor6auY56WW54i2ID4ga291c29mdVwgOwor5LuK5pel5LitID4ga3lvdWp1dVwgOwor6Lqr57a66bqXID4gbWlnaXJlaVwgOwor6JCO6buE55eFID4gaW91YnlvdVwgOwor5pOs5Y+k5paHID4gZ2lrb2J1blwgOwor5Zyw6KGj6aGeID4gY2hpaXJ1aVwgOwor5amG576F6ZaAID4gYmFyYW1vblwgOwor56eY5pu46KqyID4gaGlzaG9rYVwgOwor5Y2w55S757SZID4gaW5nYXNoaVwgOwor5LqI5oOz5bGLID4geW9zb3V5YVwgOwor5oWI5ZaE5a62ID4gaml6ZW5rYVwgOwor5pep5LmZ5aWzID4gc2FvdG9tZVwgOwor5Zyf5puc5pelID4gZG95b3ViaVwgOwor6ZmN6Zuo5p6XID4ga291dXJpblwgOwor5pyd6aKo5ZGCID4gYXNhYnVyb1wgOwor5YaN5LiL5LuYID4gc2Fpa2FmdVwgOwor5rSL55S75a62ID4geW91Z2FrYVwgOwor5a6a6KaP5bqnID4gam91Z2l6YVwgOwor6ZyA55So5a62ID4ganV5b3VrYVwgOwor5L+d5YGl5ammID4gaG9rZW5mdVwgOwor6auY56WW5q+NID4ga291c29ib1wgOwor5aSW6ICz54KOID4gZ2FpamllblwgOwor5LiN6KOB5Y+vID4gZnVzYWlrYVwgOwor6K2m5YKZ5ZOhID4ga2VpYmlpblwgOwor6Kqk5L2c5YuVID4gZ29zYWRvdVwgOwor5Luu5ZCN5pysID4ga2FuYWhvblwgOwor5Yqp55Sj5omAID4gam9zYW5qb1wgOwor5aSn5pmC5LujID4gb29qaWRhaVwgOwor5p645que6YW4ID4ga3VlbnNhblwgOwor6Jma54Sh5YOnID4ga29tdXNvdVwgOwor5ayw6KiY5Y+3ID4gZWlraWdvdVwgOwor5L+d5YGl5Yy7ID4gaG9rZW4nJ2lcIDsKK+S6jOWNgeatsyA+IGhhdGFjaGlcIDsKK+mgreWtl+iqniA+IHRvdWppZ29cIDsKK+acqOWkquWIgCA+IGtpZGFjaGlcIDsKK+iTruiPr+W6pyA+IHJlbmdlemFcIDsKK+aEm+abuOWutiA+IGFpc2hva2FcIDsKK+mmrOWIgOiynSA+IG1hdGVnYWlcIDsKK+i2o+aEj+abuCA+IHNodWlzaG9cIDsKK+mBi+aQrOiyuyA+IHVucGFuaGlcIDsKK+aUmOWkt+irliA+IGpvdWlyb25cIDsKK+aHkOeWkea0viA+IGthaWdpaGFcIDsKK+eEoeeFmeeCrSA+IG11ZW50YW5cIDsKK+WuiemdmeaZgiA+IGFuc2VpamlcIDsKK+Wls+eUn+W+kiA+IGpvc2VpdG9cIDsKK+iZjueHleaLsyA+IGtvZW5rZW5cIDsKK+ato+W4uOS9jSA+IHNlaWpvdWlcIDsKK+ijnOWKqemHkSA+IGhvam9raW5cIDsKK+mYv+WphuaTpiA+IGFiYXp1cmVcIDsKK+S6jOWNgeaXpSA+IGhhdHN1a2FcIDsKK+eQteeQtuihjCA+IGJpd2Frb3VcIDsKK+enmOabuOenkSA+IGhpc2hva2FcIDsKK+WKqeeUo+WppiA+IGpvc2FucHVcIDsKK+S/rue+heWgtCA+IHNodXJhYmFcIDsKK+aJi+S4gOadryA+IHRlaXBwYWlcIDsKK+eEoee3muapnyA+IG11c2Vua2lcIDsKK+S4h+eBr+S8miA+IG1hbmRvdWVcIDsKK+aJi+e2uum6lyA+IHRlZ2lyZWlcIDsKK+awtOS9jeioiCA+IHN1aWlrZWlcIDsKK+a8ouaWueWMuyA+IGthbnBvdWlcIDsKK+e+veebruadvyA+IGhhbWVpdGFcIDsKK+WFt+S9k+ahiCA+IGd1dGFpYW5cIDsKK+aXpeacrOWMliA+IG5paG9ua2FcIDsKK+eglOejqOapnyA+IGtlbm1ha2lcIDsKK+Wkp+mbkeaKiiA+IG9vemFwcGFcIDsKK+WPpOS6leaIuCA+IGZ1cnVpZG9cIDsKK+iDg+a9sOeYjSA+IGlrYWl5b3VcIDsKK+Wkmue+qeaApyA+IHRhZ2lzZWlcIDsKK+eUmOmcsueFriA+IGthbnJvbmlcIDsKK+S5meWls+W6pyA+IG90b21lemFcIDsKK+S/neWuiOa0viA+IGhvc2h1aGFcIDsKK+WPmeS6i+ipqSA+IGpvamlzaGlcIDsKK+Wkp+aOg+mZpCA+IG9vc291amlcIDsKK+eDj+m+jeiMtiA+IMWrcm9uY2hhXCA7CivlpbPnjovon7sgPiBqb291YXJpXCA7CivljYrmr43pn7MgPiBoYW5ib2luXCA7CivnhKHmlL/lupwgPiBtdXNlaWZ1XCA7Civnvqnlkozlm6MgPiBnaXdhZGFuXCA7Civlpb3kuovlrrYgPiBrb3V6dWthXCA7CivooYzngrrogIUgPiBrb3Vpc2hhXCA7CivmqZ/plqLluqsgPiBraWthbmtvXCA7CivmqZ/plqLluqcgPiBraWthbnphXCA7CivlkIzmhI/oposgPiBkb3Vpa2VuXCA7CivorbDkuovloIIgPiBnaWppZG91XCA7CivlpKnns7jnk5wgPiBoZWNoaW1hXCA7Civkv53lronmnpcgPiBob2FucmluXCA7CivohZDokYnlnJ8gPiBmdXlvdWRvXCA7CivmtbfosZrluqcgPiBpcnVrYXphXCA7Civoh6rooZvpmoogPiBqaWVpdGFpXCA7CivnuYrntq3ntKAgPiBzZW4nJ2lzb1wgOwor56e76KGM5oCnID4gaWtvdXNlaVwgOwor5rmv5rmv5amGID4geXV0YW5wb1wgOwor5Lqk5bC+5pyfID4ga291YmlraVwgOwor6Zm256OB5ZmoID4gdG91amlraVwgOwor6YeN6aas5aC0ID4gb21vYmFiYVwgOwor5q2z5pmC6KiYID4gc2FpamlraVwgOwor6Zi/5aSa56aPID4gb3RhZnVrdVwgOwor5b6h56+A5LuLID4gb3Nla2thaVwgOwor6I+T5a2Q5bGLID4ga2FzaGl5YVwgOwor55Wq5bCP5bGLID4gYmFuZ295YVwgOwor5oSb54qs5a62ID4gYWlrZW5rYVwgOwor6IC9576O5rS+ID4gdGFuYmloYVwgOwor5L+d6IKy5omAID4gaG9pa3Vqb1wgOwor6YGK6Zui5Z+6ID4geXV1cmlraVwgOwor5LqS5Yqp5LyaID4gZ29qb2thaVwgOwor6KOc5Yqp57eaID4gaG9qb3NlblwgOwor5LqL5YuZ5omAID4gamltdXNob1wgOwor5L+d6K236YeRID4gaG9nb2tpblwgOwor6I+T5a2Q5ZmoID4ga2FzaGlraVwgOwor5oSb5aa75a62ID4gYWlzYWlrYVwgOwor6aSK54i25q+NID4geW91ZnVib1wgOwor6LW36Zu75qmfID4ga2lkZW5raVwgOwor5LqM5q275b6MID4gbmlzaGlnb1wgOwor6JGJ54mh5Li5ID4gaGFib3RhblwgOwor5bey54S25b2iID4gaXplbmtlaVwgOwor5Y2Y5bqn5qmfID4gdGFuemFraVwgOwor5aSn6KaP5qihID4gZGFpa2lib1wgOwor5YW35L2T5YyWID4gZ3V0YWlrYVwgOwor5L+d5a6J5a6YID4gaG9hbmthblwgOwor6YeO542j5rS+ID4geWFqdXVoYVwgOwor6Zu75L2N5beuID4gZGVuJydpc2FcIDsKK+mdnuWvvuW/nCA+IGhpdGFpb3VcIDsKK+iTlum6u+WtkCA+IGhpbWFzaGlcIDsKK+ijuOS9k+eUuyA+IHJhdGFpZ2FcIDsKK+S6i+WLmeWumCA+IGppbXVrYW5cIDsKK+i1t+iotOeKtiA+IGtpc29qb3VcIDsKK+mHjuaarueUqCA+IHlhYm95b3VcIDsKK+eEoeeBr+eBqyA+IG11dG91a2FcIDsKK+eEoeiomOWQjSA+IG11a2ltZWlcIDsKK+mDveitsOmBuCA+IHRvZ2lzZW5cIDsKK+S/neiCsuWckiA+IGhvaWt1ZW5cIDsKK+S/neiCsuWZqCA+IGhvaWt1a2lcIDsKK+aEm+WlveWutiA+IGFpa291a2FcIDsKK+WnlOS7u+eKtiA+IGluaW5qb3VcIDsKK+eUqOWZqOeUuyA+IHlvdWtpZ2FcIDsKK+S/nemkiuaJgCA+IGhveW91am9cIDsKK+WutuW6reenkSA+IGthdGVpa2FcIDsKK+S4jeWQjeiqiSA+IGZ1bWVpeW9cIDsKK+S6lOi8quaXlyA+IGdvcmlua2lcIDsKK+S9nOalreihoyA+IHNhZ3lvdWlcIDsKK+acqOaIuOmKrSA+IGtpZG9zZW5cIDsKK+iAs+S4i+iFuiA+IGppa2FzZW5cIDsKK+WutuW6reedgCA+IGthdGVpZ2lcIDsKK+WklumZsOmDqCA+IGdhaWluYnVcIDsKK+WSjOiPk+WtkCA+IHdhZ2FzaGlcIDsKK+iHquWcqOeUuyA+IGppemFpZ2FcIDsKK+iAlemBi+apnyA+IGtvdXVua2lcIDsKK+S4gOWbnuW/jCA+IGlra2Fpa2lcIDsKK+S4jeWPr+inoyA+IGZ1a2FrYWlcIDsKK+S4jeWPr+imliA+IGZ1a2FzaGlcIDsKK+e3j+eQhuW6nCA+IHNvdXJpZnVcIDsKK+S6jOWIhuacqCA+IG5pYnVuZ2lcIDsKK+W6g+i+nuiLkSA+IGtvdWppZW5cIDsKK+WkmuaVsOa0viA+IHRhc3V1aGFcIDsKK+S/neitt+iAhSA+IGhvZ29zaGFcIDsKK+WknOmWk+mDqCA+IHlha2FuYnVcIDsKK+eVmeWuiOmbuyA+IHJ1c3VkZW5cIDsKK+aOg+mZpOapnyA+IHNvdWppa2lcIDsKK+S6i+WLmeS8miA+IGppbXVrYWlcIDsKK+S6i+WJjeW+jCA+IGppemVuZ29cIDsKK+iPqeaPkOaouSA+IGJvZGFpanVcIDsKK+iyneeLrOalvSA+IGJhaWdvbWFcIDsKK+eEoemYsuWCmSA+IG11Ym91YmlcIDsKK+S4jeaAneitsCA+IGZ1c2hpZ2lcIDsKK+S4jeepj+W9kyA+IGZ1b250b3VcIDsKK+WPr+WhkeadkCA+IGthc296YWlcIDsKK+ais+e2v+apnyA+IHNvbWVua2lcIDsKK+eEoeaJi+mghiA+IG11dGVqdW5cIDsKK+WwvueKtuiKsSA+IGJpam91a2FcIDsKK+S+v+WIqeWxiyA+IGJlbnJpeWFcIDsKK+S6iOefpeWkoiA+IHlvY2hpbXVcIDsKK+W+oeelnuexpCA+IG9taWt1amlcIDsKK+aYoOWGmeapnyA+IGVpc2hha2lcIDsKK+S/neitt+eojiA+IGhvZ296ZWlcIDsKK+WPmeS6i+aWhyA+IGpvamlidW5cIDsKK+iLseS8muipsSA+IGVpa2Fpd2FcIDsKK+S4jeWPr+iDvSA+IGZ1a2Fub3VcIDsKK+aYoOeUu+mkqCA+IGVpZ2FrYW5cIDsKK+miqOmbsuWFkCA+IGZ1dXVuamlcIDsKK+alleWGhuW9oiA+IGRhZW5rZWlcIDsKK+a8lOWlj+WutiA+IGVuc291a2FcIDsKK+WPr+WhkeaApyA+IGthc29zZWlcIDsKK+iiq+mZpOaVsCA+IGhpam9zdXVcIDsKK+S6jOasoeWFgyA+IG5pamlnZW5cIDsKK+aJi+aWh+W6qyA+IHRlYnVua29cIDsKK+S4gOeuh+aJgCA+IGlra2FzaG9cIDsKK+S6iOWCmemaiiA+IHlvYml0YWlcIDsKK+eWkeWVj+espiA+IGdpbW9uZnVcIDsKK+WbuuWumuiyuyA+IGtvdGVpaGlcIDsKK+aYjuayu+W6pyA+IG1laWppemFcIDsKK+eQhuaDs+WutiA+IHJpc291a2FcIDsKK+Wcn+Wjh+WgtCA+IGRvdGFuYmFcIDsKK+S6jOasoeS8miA+IG5pamlrYWlcIDsKK+e+qeWLmeaEnyA+IGdpbXVrYW5cIDsKK+S4ieWPiei3ryA+IHNhbnNhcm9cIDsKK+azouW4g+iMtiA+IGhhYnVjaGFcIDsKK+S4jeaEm+aDsyA+IGJ1YWlzb3VcIDsKK+S4gOeuh+W5tCA+IGlra2FuZW5cIDsKK+S6iOWCmemHkSA+IHlvYmlraW5cIDsKK+S4jeWPr+efpSA+IGZ1a2FjaGlcIDsKK+iPqeaPkOWvuiA+IGJvZGFpamlcIDsKK+ehq+m7hOWxsSA+IGlvdXlhbWFcIDsKK+e0oOWboOaVsCA+IHNvaW5zdXVcIDsKK+S7j+iYreilvyA+IGZ1cmFuc3VcIDsKK+S4jeWQiOeQhiA+IGZ1Z291cmlcIDsKK+aOg+mZpOWppiA+IHNvdWppZnVcIDsKK+mHjuaaruWkqSA+IHlhYm90ZW5cIDsKK+WutuWFt+etiSA+IGthZ3V0b3VcIDsKK+iWlOiWh+iJsiA+IGJhcmFpcm9cIDsKK+S4jeaEieW/qyA+IGZ1eXVrYWlcIDsKK+i+suapn+WFtyA+IG5vdWtpZ3VcIDsKK+i8uOmAgeiyuyA+IHl1c291aGlcIDsKK+eci+itt+WppiA+IGthbmdvZnVcIDsKK+W+oeelnueBqyA+IGdvamlua2FcIDsKK+S6iOWCmei7jSA+IHlvYmlndW5cIDsKK+WPpOaWh+abuCA+IGtvbW9uam9cIDsKK+iHquihm+aoqSA+IGppZWlrZW5cIDsKK+aOg+mZpOWZqCA+IHNvdWppa2lcIDsKK+eQhuaDs+WMliA+IHJpc291a2FcIDsKK+WQiOawo+mBkyA+IGFpa2lkb3VcIDsKK+eCueeBq+WZqCA+IHRlbmtha2lcIDsKK+e+veS6jOmHjSA+IGhhYnV0YWVcIDsKK+imj+a6luWMliA+IGtpanVua2FcIDsKK+mrmOW6puW3riA+IGtvdWRvc2FcIDsKK+WQiOawl+mBkyA+IGFpa2lkb3VcIDsKK+eEoeWZqOeUqCA+IGJ1a2l5b3VcIDsKK+WvhOS7mOmHkSA+IGtpZnVraW5cIDsKK+eBq+WPo+a5liA+IGtha291a29cIDsKK+aUv+ayu+WxiyA+IHNlaWppeWFcIDsKK+WAi+OAheS6uiA+IGtva29qaW5cIDsKK+WPr+WhkeWJpCA+IGthc296YWlcIDsKK+aUv+ayu+WutiA+IHNlaWppa2FcIDsKK+mBi+WWtuiyuyA+IHVuJydlaWhpXCA7CivonablpLfoj4ogPiBlem9naWt1XCA7Civkv53orbfmnpcgPiBob2dvcmluXCA7CivmnKjmiLjnlaogPiBraWRvYmFuXCA7CivmtYXnn6XmgbUgPiBhc2FkamllXCA7CivpnZLosYzosYYgPiBhb2VuZG91XCA7CivlpbPkuIjlpKsgPiBqb2pvdWJ1XCA7CivlhoboqJjlj7cgPiBlbmtpZ291XCA7Civkupzlr5LluK8gPiBha2FudGFpXCA7CivmsZ/miLjlt50gPiBlZG9nYXdhXCA7Civmr5Tpm7vojbcgPiBoaWRlbmthXCA7CivlubzlhZDoqp4gPiB5b3VqaWdvXCA7Civmmpfmmpfoo6EgPiBhbicnYW5yaVwgOwor5LiN5rWE5aC0ID4gZnVqb3ViYVwgOwor5pqX5pqX6KOPID4gYW4nJ2FucmlcIDsKK+a5r+ayu+WgtCA+IHRvdWppYmFcIDsKK+iEs+WRs+WZjCA+IG5vdW1pc29cIDsKK+WtkOeUu+mdoiA+IGtvZ2FtZW5cIDsKK+WPr+imluWMliA+IGthc2hpa2FcIDsKK+S4jeazqOaEjyA+IGZ1Y2h1dWlcIDsKK+itt+ihm+iJpiA+IGdvZWlrYW5cIDsKK+asoeaJk+iAhSA+IGppZGFzaGFcIDsKK+aKq+mcsuWutCA+IGhpcm91ZW5cIDsKK+iHquihm+WumCA+IGppZWlrYW5cIDsKK+eVmeWuiOeVqiA+IHJ1c3ViYW5cIDsKK+S6nOmfs+mAnyA+IGFvbnNva3VcIDsKK+W+oeazqOaEjyA+IGdvY2h1dWlcIDsKK+WMu+enkeWtpiA+IGlrYWdha3VcIDsKK+eVsOaWueaApyA+IGlob3VzZWlcIDsKK+eEoemRkeafuyA+IG11a2Fuc2FcIDsKK+S6jOeVquebriA+IG5pYmFubWVcIDsKK+ehrOWMluayuSA+IGtvdWtheXVcIDsKK+aYoOeUu+elrSA+IGVpZ2FzYWlcIDsKK+aYoOeUu+ekviA+IGVpZ2FzaGFcIDsKK+S4jeato+imjyA+IGZ1c2Vpa2lcIDsKK+iNiuajmOe3miA+IGJhcmFzZW5cIDsKK+aFsOmciuelrSA+IGlyZWlzYWlcIDsKK+WtpuagoeWMuyA+IGdha2tvdWlcIDsKK+mHkeaWh+WtlyA+IGtpbm1vamlcIDsKK+W+oeazleW6piA+IGdvaGF0dG9cIDsKK+awl+S/nemkiiA+IGtpaG95b3VcIDsKK+mJhOeBq+WgtCA+IHRla2thYmFcIDsKK+WLpOWLmeWToSA+IGtpbm11aW5cIDsKK+eVsOaYn+S6uiA+IGlzZWlqaW5cIDsKK+aYoOeUu+eVjCA+IGVpZ2FrYWlcIDsKK+S6lOeVv+WGhSA+IGdva2luYWlcIDsKK+W+oeegtOeulyA+IGdvaGFzYW5cIDsKK+aZruauteedgCA+IGZ1ZGFuZ2lcIDsKK+WQpuWumuiqniA+IGhpdGVpZ29cIDsKK+mBleaGsuaApyA+IGlrZW5zZWlcIDsKK+WhqeWMlumKgCA+IGVua2FnaW5cIDsKK+S/neitt+WPuCA+IGhvZ29zaGlcIDsKK+W+l+aEj+awlyA+IHRva3VpZ2VcIDsKK+aJi+e0sOW3pSA+IHRlemFpa3VcIDsKK+iIjuWIqeWhqSA+IHNoYXJpZW5cIDsKK+imqummrOm5vyA+IG95YWJha2FcIDsKK+iInui4iuWutiA+IGJ1dG91a2FcIDsKK+Wlh+W9ouWFkCA+IGtpa2VpamlcIDsKK+WNiOW+jOS4rSA+IGdvZ29qdXVcIDsKK+ipreW8geWutiA+IGtpYmVua2FcIDsKK+iDg+a0l+a1hCA+IGlzZW5qb3VcIDsKK+S4jeWQjOWMliA+IGZ1ZG91a2FcIDsKK+eVsOaVmeW+kiA+IGlreW91dG9cIDsKK+a5r+WKoOa4myA+IHl1a2FnZW5cIDsKK+mdnuiqsueojiA+IGhpa2F6ZWlcIDsKK+WSjOalveWZqCA+IHdhZ2Fra2lcIDsKK+mBleazleiAhSA+IGlob3VzaGFcIDsKK+i8uOmAgeapnyA+IHl1c291a2lcIDsKK+S4jumHjuWFmiA+IHlveWF0b3VcIDsKK+W8leeBq+eCuSA+IGlua2F0ZW5cIDsKK+e+veWtkOadvyA+IGhhZ29pdGFcIDsKK+mfs+aymeaxsCA+IG90b3NhdGFcIDsKK+emvuacrOenkSA+IGthaG9ua2FcIDsKK+S4jeWPr+WIhiA+IGZ1a2FidW5cIDsKK+m8oOW+hOmDqCA+IHNva2VpYnVcIDsKK+S5vuiPk+WtkCA+IGhpZ2FzaGlcIDsKK+eEoeaKgOW3pyA+IG11Z2lrb3VcIDsKK+mDveitsOS8miA+IHRvZ2lrYWlcIDsKK+S6iOWCmeagoSA+IHlvYmlrb3VcIDsKK+ims+S4lumfsyA+IGthbnplb25cIDsKK+WNiumBjuWOuyA+IGhhbmtha29cIDsKK+S4jeWPguWKoCA+IGZ1c2Fua2FcIDsKK+mBleWPjeiAhSA+IGloYW5zaGFcIDsKK+aBo+aEj+aApyA+IHNoaWlzZWlcIDsKK+S7mOWKoOeojiA+IGZ1a2F6ZWlcIDsKK+aZguioiOW6pyA+IHRva2VpemFcIDsKK+mDqOWxi+S7oyA+IGhleWFkYWlcIDsKK+avjemfs+aApyA+IGJvaW5zZWlcIDsKK+S4jeW+l+aEjyA+IGZ1dG9rdWlcIDsKK+mbu+ipseapnyA+IGRlbndha2lcIDsKK+eEoeaLheS/nSA+IG11dGFucG9cIDsKK+aOqui+nuazlSA+IHNvamlob3VcIDsKK+WFq+S5neWIhiA+IGhha2t1YnVcIDsKK+agueWkquadvyA+IG5lZGFpdGFcIDsKK+eBq+WKoOa4myA+IGhpa2FnZW5cIDsKK+S6nOeHkOmFuCA+IGFyaW5zYW5cIDsKK+aZguioiOWxiyA+IHRva2VpeWFcIDsKK+mdkuS6jOaJjSA+IGFvbmlzYWlcIDsKK+mHjuaUvuWbsyA+IG5vaG91enVcIDsKK+W5vOWFkOacnyA+IHlvdWppa2lcIDsKK+aMieaRqeiGjyA+IGFubWFrb3VcIDsKK+awl+iLpuWKtCA+IGtpZ3Vyb3VcIDsKK+aUv+W6nOahiCA+IHNlaWZ1YW5cIDsKK+S6jOeOi+mWgCA+IG5pb3Vtb25cIDsKK+S6iOWCmeW9uSA+IHlvYmlla2lcIDsKK+S4jemBk+eQhiA+IGZ1ZG91cmlcIDsKK+mHkeeEoeWeoiA+IGtpbm11a3VcIDsKK+WBvemAoOWNsCA+IGdpem91aW5cIDsKK+eEoeaJueWIpCA+IG11aGloYW5cIDsKK+Wbs+abuOiyuyA+IHRvc2hvaGlcIDsKK+W5uOmBi+WFkCA+IGtvdXVuamlcIDsKK+WhqeawtOa5liA+IGVuc3Vpa29cIDsKK+a1geW4g+acrCA+IHJ1ZnVib25cIDsKK+WxseiMtuiKsSA+IHNhemFua2FcIDsKK+enu+awkeazlSA+IGltaW5ob3VcIDsKK+msvOeZvuWQiCA+IG9uaXl1cmlcIDsKK+WliOiJr+ecjCA+IG5hcmFrZW5cIDsKK+S4jeWLneaJiyA+IGZ1a2F0dGVcIDsKK+Wkqem6qee+hSA+IHRlbnB1cmFcIDsKK+S4jeWIqeebiiA+IGZ1cmlla2lcIDsKK+W4guWQj+WToSA+IHNoaXJpaW5cIDsKK+aEj+imi+abuCA+IGlrZW5zaG9cIDsKK+aFsOmciuWhlCA+IGlyZWl0b3VcIDsKK+aIkeWIqeWLiSA+IGdhcmliZW5cIDsKK+aTrOWuneePoCA+IGdpYm9zaGlcIDsKK+Wkp+WSjOe1tSA+IHlhbWF0b2VcIDsKK+Wwj+WIh+aJiyA+IGtvZ2l0dGVcIDsKK+i7oui3r+WZqCA+IHRlbnJva2lcIDsKK+WIpOS6i+ijnCA+IGhhbmppaG9cIDsKK+WxoOiYh+aVoyA+IHRvc29zYW5cIDsKK+W+oeW6g+ebriA+IG9oaXJvbWVcIDsKK+WPguitsOmZoiA+IHNhbmdpaW5cIDsKK+S6iOWCmeWTgSA+IHlvYmloaW5cIDsKK+eQhuW3peenkSA+IHJpa291a2FcIDsKK+eBq+iRrOWgtCA+IGthc291YmFcIDsKK+WvkuWeoumboiA+IGthbmdvcmlcIDsKK+mYsuihm+iyuyA+IGJvdWVpaGlcIDsKK+mmrOWwj+WxiyA+IHVtYWdveWFcIDsKK+S6iOWCmeWFtSA+IHlvYmloZWlcIDsKK+Wwj+mBk+WFtyA+IGtvZG91Z3VcIDsKK+W4jOWFg+e0oCA+IGtpZ2Vuc29cIDsKK+S4lueVjOiqniA+IHNla2FpZ29cIDsKK+itt+ihm+WFtSA+IGdvZWloZWlcIDsKK+W9ouiAjOS4iyA+IGtlaWppa2FcIDsKK+mdkumbu+ipsSA+IGFvZGVud2FcIDsKK+S6jOaemuebriA+IG5pbWFpbWVcIDsKK+S4ieW3rui3ryA+IHNhbnNhcm9cIDsKK+S7luW6nOecjCA+IHRhZnVrZW5cIDsKK+S/nee3muWMuiA+IGhvc2Vua3VcIDsKK+WHuueoveWPpCA+IGRlZ2Vpa29cIDsKK+S4jeWFt+iAhSA+IGZ1Z3VzaGFcIDsKK+a8lOeul+apnyA+IGVuemFua2lcIDsKK+W5suiPk+WtkCA+IGhpZ2FzaGlcIDsKK+mBuuS8neazlSA+IGlkZW5ob3VcIDsKK+WMu+WMluWtpiA+IGlrYWdha3VcIDsKK+mBuuWutuaXjyA+IGlrYXpva3VcIDsKK+Wwj+WIqeWPoyA+IGtvcmlrb3VcIDsKK+Wkqeawl+mBiyA+IHRlbmtpdW5cIDsKK+W6nOitsOS8miA+IGZ1Z2lrYWlcIDsKK+S/nemZuuWMuyA+IGhva2VuJydpXCA7CivmraLpn7PlmaggPiBzaGlvbmtpXCA7CivlkIjmsJfkvJogPiBhaWtpa2FpXCA7Civpho3phpDlkbMgPiBkYWlnb21pXCA7CivmhI/lm7PnmoQgPiBpdG90ZWtpXCA7CivlnLDno4HmsJcgPiBjaGlqaWtpXCA7CivnlJ/mhI/msJcgPiBuYW1haWtpXCA7Civlm5vmrKHlhYMgPiB5b2ppZ2VuXCA7CivlvqHnm67njokgPiBvbWVkYW1hXCA7CivlhazmlofmiYAgPiBrdW1vbmpvXCA7CivlvqHluqfmiYAgPiBnb3phc2hvXCA7CivlpKfpi7jlsZEgPiBvZ2FrdXp1XCA7CivnlJjmtbfoi5QgPiBhbWFub3JpXCA7Civlu7rorbDmoYggPiBrZW5naWFuXCA7CivnooHkvJrmiYAgPiBnb2thaWpvXCA7CivpmLLngavmiLggPiBib3VrYWRvXCA7CivnmbvlsbHlrrYgPiB0b3phbmthXCA7CivngorkuovloLQgPiBzdWlqaWJhXCA7CivnhKHmhJvmg7MgPiBidWFpc291XCA7Civoi7Hmlofnp5EgPiBlaWJ1bmthXCA7CivphbjmgKfpm6ggPiBzYW5zZWl1XCA7CivlsIrnmofnjosgPiBzb24nJ25vdVwgOwor5rS+55Sf6KqeID4gaGFzZWlnb1wgOwor6YG65Lyd5oCnID4gaWRlbnNlaVwgOwor5Yy755mC6LK7ID4gaXJ5b3VoaVwgOwor5aSn56WW54i2ID4gZGFpc29mdVwgOwor6LuN6I285YipID4gZ3VuZGFyaVwgOwor55m95Lqc57SAID4gaGFrdWFraVwgOwor6aiO6aas5oimID4ga2liYXNlblwgOwor55uu5LiA5p2vID4gbWVpcHBhaVwgOwor6KiY5LqL5paHID4ga2lqaWJ1blwgOwor5ZKM5aSq6byTID4gd2FkYWlrb1wgOwor5LqI5a6a5qGIID4geW90ZWlhblwgOwor56ym5Y+35ZmoID4gZnVnb3VraVwgOwor5pu46KiY6KOcID4gc2hva2lob1wgOwor5b+c5o+05ZujID4gb3VlbmRhblwgOwor6YG65Lyd5a2QID4gaWRlbnNoaVwgOwor6Zmk6I2J5ZmoID4gam9zb3VraVwgOwor5LqI5a6a5pelID4geW90ZWliaVwgOwor5L+d5oyB6ICFID4gaG9qaXNoYVwgOwor5pu86ZmA576FID4gbWFuZGFyYVwgOwor5Y2Y5L2N5YWDID4gdGFuaWdlblwgOwor5oSP5Zyw5oKqID4gaWppd2FydVwgOwor55uK6I2S55S3ID4gbWFzdXJhb1wgOwor5LiK5Ye65p2lID4gam91ZGVraVwgOwor56ym5Y+35YyWID4gZnVnb3VrYVwgOwor5LiN55u45b+cID4gZnVzb3VvdVwgOwor6Iux6Kqe54mIID4gZWlnb2JhblwgOwor6YeN54Gr5ZmoID4ganV1a2FraVwgOwor5pGp5Yip5pSvID4gbWFyaXNoaVwgOwor55Ww56uv6KaWID4gaXRhbnNoaVwgOwor6JGs5YSA5bGLID4gc291Z2l5YVwgOwor6aCF5L2N572uID4ga291aWNoaVwgOwor5Yy75bir5rOVID4gaXNoaWhvdVwgOwor6JGh6JCE5ZySID4gYnVkb3VlblwgOwor5LqU5paX57GzID4gZ290b2JlaVwgOwor5Y+v5oSb5rCXID4ga2F3YWlnZVwgOwor5LqU57ea6K2cID4gZ29zZW5mdVwgOwor5b6h5bqc5YaFID4gZ29mdW5haVwgOwor5a2Q6aas5bqnID4ga291bWF6YVwgOwor5bCP6Iql5a2QID4ga29rZXNoaVwgOwor5oGS5rip5ZmoID4ga291b25raVwgOwor55+l5oG16ICFID4gY2hpZXNoYVwgOwor6YG66LSI5YiGID4gaXpvdWJ1blwgOwor5aSq5YiA6a2aID4gdGFjaGl1b1wgOwor5Yqp5ryU6ICFID4gam9lbnNoYVwgOwor5Luj55CG6YOoID4gZGFpcmlidVwgOwor56e75YuV5L2TID4gaWRvdXRhaVwgOwor6YGL5YuV6LK7ID4gdW5kb3VoaVwgOwor5aSp6bWd57WoID4gYmlyb3Vkb1wgOwor5LiA6YW45YyWID4gaXNzYW5rYVwgOwor6YGg6Led6ZuiID4gZW5reW9yaVwgOwor5L2Q6LOA55yMID4gc2FnYWtlblwgOwor6auY6Z+z6YOoID4ga291b25idVwgOwor55Ww56uv6ICFID4gaXRhbnNoYVwgOwor5byl5qyh6aasID4geWFqaXVtYVwgOwor6ICV6ICY5qmfID4ga291dW5raVwgOwor5oSf5YyW6ZmiID4ga2Fua2FpblwgOwor5LiN5qmf5auMID4gZnVraWdlblwgOwor6YOo5aSW56eYID4gYnVnYWloaVwgOwor5Lqc54ax5bivID4gYW5ldHRhaVwgOwor5a+M5aOr5bGxID4gZnVqaXNhblwgOwor5oyH5o+u5omAID4gc2hpa2lqb1wgOwor55Sf6Yak5rK5ID4ga2lqb3V5dVwgOwor5rWE55Gg55KDID4gam91cnVyaVwgOwor6KOc5L2Q5a6YID4gaG9zYWthblwgOwor6YGO5Y675b2iID4ga2Frb2tlaVwgOwor6I2J5Luu5ZCNID4gc291Z2FuYVwgOwor5b6h5qmf5auMID4gZ29raWdlblwgOwor5LiN5bGl6KGMID4gZnVyaWtvdVwgOwor5pOs5Lq65YyWID4gZ2lqaW5rYVwgOwor5YiG5bqm5ZmoID4gYnVuZG9raVwgOwor5Ye655uu6YeRID4gZGVtZWtpblwgOwor5aSc5rG96LuKID4geW9naXNoYVwgOwor5bem5rS+57O7ID4gc2FoYWtlaVwgOwor6KmQ5qy6572qID4gc2FnaXphaVwgOwor6aWC6aOp5bGLID4gdWRvbicneWFcIDsKK+WkouaDs+WutiA+IG11c291a2FcIDsKK+iomOitnOazlSA+IGtpZnVob3VcIDsKK+S4gOatu+W+jCA+IGlzc2hpZ29cIDsKK+mdnuihm+eUnyA+IGhpZWlzZWlcIDsKK+iqpOaKleS4iyA+IGdvdG91a2FcIDsKK+S4jeiHqueUsSA+IGZ1aml5dXVcIDsKK+iLseaVsOWtlyA+IGVpc3V1amlcIDsKK+efpeaDheaEjyA+IGNoaWpvdWlcIDsKK+miqOWRguahtiA+IGZ1cm9va2VcIDsKK+iLseiqnuWcjyA+IGVpZ29rZW5cIDsKK+S9jumfs+mDqCA+IHRlaW9uYnVcIDsKK+S6jOacn+WItiA+IG5pa2lzZWlcIDsKK+aTrOWjsOiqniA+IGdpc2VpZ29cIDsKK+eUqOWLmeWToSA+IHlvdW11aW5cIDsKK+W+oeiLpuWKtCA+IGdva3Vyb3VcIDsKK+acqueZu+iomCA+IG1pdG91a2lcIDsKK+ewoeaYk+WMliA+IGthbicnaWthXCA7CivkuIDpgY7mgKcgPiBpa2thc2VpXCA7CivpgYvpgIHosrsgPiB1bnNvdWhpXCA7CivljLvluKvkvJogPiBpc2hpa2FpXCA7Civoh6rlj5nkvJ0gPiBqaWpvZGVuXCA7CivlpKnmsJflsYsgPiB0ZW5raXlhXCA7Civpm6PmmJPluqYgPiBuYW4nJ2lkb1wgOwor5Luu5pWw6YOoID4ga2FzdXVidVwgOwor5Y2B5a2X6LevID4ganV1amlyb1wgOwor6byg6LmK6YOoID4gc29rZWlidVwgOwor6LKg56ym5Y+3ID4gZnVmdWdvdVwgOwor5aSn5b6h5omAID4gb29nb3Nob1wgOwor5YiG5biD5ZuzID4gYnVucHV6dVwgOwor6KO95Zuz5a62ID4gc2VpenVrYVwgOwor5oim5pmC5LiLID4gc2VuamlrYVwgOwor5aSp5rCX5ZuzID4gdGVua2l6dVwgOwor6LOb576O5q2MID4gc2FuYmlrYVwgOwor6LuN5LqL6LK7ID4gZ3VuamloaVwgOwor54KO5aSp5LiLID4gZW50ZW5rYVwgOwor6IKl5rqA5YWQID4gaGltYW5qaVwgOwor5rWq5ryr5rS+ID4gcm9tYW5oYVwgOwor6LW36YeN5qmfID4ga2lqdXVraVwgOwor5Zyn56CV5qmfID4gYXNzYWlraVwgOwor5Zue6Lev5ZuzID4ga2Fpcm96dVwgOwor5YW15Zmo5bqrID4gaGVpa2lrb1wgOwor5bKQ6Zic55yMID4gZ2lmdWtlblwgOwor5bq25YuZ6KqyID4gc2hvbXVrYVwgOwor6Zui57iB54q2ID4gcmllbmpvdVwgOwor5q2j6KaP5YyWID4gc2Vpa2lrYVwgOwor5LuK5Ye65p2lID4gaW1hZGVraVwgOwor5qSc5rOi5ZmoID4ga2VucGFraVwgOwor57W15Y+M57SZID4gZXpvdXNoaVwgOwor5LiL5LuY6YeRID4ga2FmdWtpblwgOwor6YG/6Zuj5omAID4gaGluYW5qb1wgOwor54mH5oSP5ZywID4ga2F0YWlqaVwgOwor5Yy75a2m6YOoID4gaWdha3VidVwgOwor5LqI5aCx6Z+zID4geW9ob3VvblwgOwor6aKo5ZGC5LujID4gZnVyb2RhaVwgOwor5b6M55+l5oG1ID4gYXRvZGppZVwgOwor5beu5qmf6ZaiID4gc2FraWthblwgOwor5aeU5ZOh6ZW3ID4gaWluY2hvdVwgOwor6KmQ5qy65birID4gc2FnaXNoaVwgOwor5aSW56WW54i2ID4gZ2Fpc29mdVwgOwor6KuW55CG5ZKMID4gcm9ucml3YVwgOwor6YeO5Za25ZywID4geWFlaWNoaVwgOwor6Zuw5Zuy5rCXID4gZnVuJydpa2lcIDsKK+WboOe+jue3miA+IGluYmlzZW5cIDsKK+awl+S4iOWkqyA+IGtpam91YnVcIDsKK+WIneacn+WMliA+IHNob2tpa2FcIDsKK+atqeihjOWZqCA+IGhva291a2lcIDsKK+a5r+ixhuiFkCA+IHl1ZG91ZnVcIDsKK+ijj+iDjOaIuCA+IHVyYXNlZG9cIDsKK+WKoOeul+apnyA+IGthc2Fua2lcIDsKK+aUvueUn+S8miA+IGhvdWpvdWVcIDsKK+iCsuWFkOmZoiA+IGlrdWppaW5cIDsKK+S4jeS9nOeCuiA+IGZ1c2FrdWlcIDsKK+atpuijheWFtyA+IGJ1c291Z3VcIDsKK+S4i+mnhOeVqiA+IGdldGFiYW5cIDsKK+iHquWLleWMliA+IGppZG91a2FcIDsKK+eEoemBoOaFriA+IGJ1ZW5yeW9cIDsKK+mBi+WLleWgtCA+IHVuZG91YmFcIDsKK+WutuioiOiyuyA+IGtha2VpaGlcIDsKK+mfs+alveWutiA+IG9uZ2Fra2FcIDsKK+WkluelluavjSA+IGdhaXNvYm9cIDsKK+WKtOWLmeiqsiA+IHJvdW11a2FcIDsKK+eEoei7jOmBkyA+IG11a2lkb3VcIDsKK+S4jeS9nOazlSA+IGJ1c2Fob3VcIDsKK+WNgeWtl+eBqyA+IGp1dWppa2FcIDsKK+iDg+eXmeaUoyA+IGlrZWlyZW5cIDsKK+mBi+WLleWToSA+IHVuZG91aW5cIDsKK+apn+aisOiqniA+IGtpa2FpZ29cIDsKK+e+juWuuemZoiA+IGJpeW91aW5cIDsKK+S4gOi7ouapnyA+IGl0dGVua2lcIDsKK+adk+aWh+WtlyA+IHNoYW1vamlcIDsKK+aOouafu+apnyA+IHRhbnNha2lcIDsKK+eUsOiIjuWutiA+IGluYWtheWFcIDsKK+mBi+i7ouiyuyA+IHVudGVuaGlcIDsKK+apmeearuayuSA+IHRvdWhpeXVcIDsKK+mBjuW5tOW6piA+IGthbmVuZG9cIDsKK+mBi+WLleWFtyA+IHVuZG91Z3VcIDsKK+W+oeWtmOefpSA+IGdvem9uamlcIDsKK+WutuaUv+enkSA+IGthc2Vpa2FcIDsKK+Wwj+Wlh+m6lyA+IGtvZ2lyZWlcIDsKK+enu+S9j+iAhSA+IGlqdXVzaGFcIDsKK+mBk+WFt+WxiyA+IGRvdWd1eWFcIDsKK+WQjOe+qeiqniA+IGRvdWdpZ29cIDsKK+aooeaTrOaIpiA+IG1vZ2lzZW5cIDsKK+iSsuWFrOiLsSA+IHRhbnBvcG9cIDsKK+eoveWPpOedgCA+IGtlaWtvZ2lcIDsKK+S4i+S4luipsSA+IGdlc2V3YVwgOwor6L+m5qW8576FID4ga2FydXJhXCA7CivmiYvlv6Dlrp8gPiB0ZW1hbWVcIDsKK+mnhOa0kuiQvSA+IGRhamFyZVwgOwor5LiL6aeE5bGLID4gZ2V0YXlhXCA7Civpp4Tms5XonrogPiBkYWJvcmFcIDsKK+mBjuS/neittyA+IGthaG9nb1wgOwor6Z2e5Za25YipID4gaGllaXJpXCA7CivntYznt6/lhIAgPiBrZWlpZ2lcIDsKK+WRkeWFteihmyA+IG5vbmJlZVwgOwor5LiN576p55CGID4gZnVnaXJpXCA7CivmnInmhI/lt64gPiB5dXVpc2FcIDsKK+mrmOe3r+W6piA+IGtvdWlkb1wgOwor5LiN6LKe5a+dID4gZnV0ZW5lXCA7Civmra/ljLvogIUgPiBoYWlzaGFcIDsKK+S8vOmhlOe1tSA+IG5pZ2FvZVwgOwor5q2v56eR5Yy7ID4gc2hpa2FpXCA7CivngavkuovloLQgPiBrYWppYmFcIDsKK+ixqumbqOemjSA+IGdvdXVrYVwgOwor5Lqc6bq76KO9ID4gYW1hc2VpXCA7CivkvLzpoZTnlLsgPiBuaWdhb2VcIDsKK+mnhOmFkuiQvSA+IGRhamFyZVwgOwor5bGx576K5bqnID4geWFnaXphXCA7CivljZLloZTlqYYgPiBzb3RvYmFcIDsKK+S6nOm6u+iJsiA+IGFtYWlyb1wgOwor6Z2S5rW36IuUID4gYW9ub3JpXCA7CivkvLzpnZ7opqogPiBlc2VveWFcIDsKK+S6nOm6u+ezuCA+IGFtYWl0b1wgOwor5YWt5Y2B6LevID4gbXVzb2ppXCA7CivkupzmuKnluK8gPiBhb250YWlcIDsKK+S9meaJgOimiyA+IHlvc29taVwgOwor5aeU5ZOh5LyaID4gaWlua2FpXCA7Civkvp3lrZjluqYgPiBpem9uZG9cIDsKK+mYv+WDp+elhyA+IGFzb3VnaVwgOwor5YWr5Y2B6LevID4geWFzb2ppXCA7CivkvIrli6LonaYgPiBpc2VlYmlcIDsKK+S8iuWLouibryA+IGlzZWViaVwgOwor5pu+56WW54i2ID4gaGlqaWppXCA7CivopovmoITlnYogPiBtaWVib3VcIDsKK+S6nOmJm+eJiCA+IGFlbmJhblwgOwor5b6h54yq5Y+jID4gb2Nob2tvXCA7Civpro7kuKblpbMgPiBhaW5hbWVcIDsKK+W5s+aYk+WMliA+IGhlaWlrYVwgOwor5a6J5L+d55CGID4gYW5wb3JpXCA7Civmm77npZbmr40gPiBoaWJhYmFcIDsKK+exkOakheWtkCA+IHRvdWlzdVwgOwor5bCP5paH5a2XID4ga29tb2ppXCA7CivkvZnmiYDnm64gPiB5b3NvbWVcIDsKK+S4i+mZouitsCA+IGthaW5naVwgOwor5a215YyW5ZmoID4gZnVrYWtpXCA7CivkupzpiZvmnb8gPiBhZW5iYW5cIDsKK+aJi+ecn+S8vCA+IHRlbWFuZVwgOwor5LiN5aaC5oSPID4gZnVueW9pXCA7Civmua/mloflrZcgPiB5dW1vamlcIDsKK+eVsOapn+eoriA+IGlraXNodVwgOwor5Lqc56CS6YW4ID4gYWhpc2FuXCA7CivpmL/kv67nvoUgPiBhc2h1cmFcIDsKK+W+oembkeeFriA+IG96b3VuaVwgOwor55qu6Iaa56eRID4gaGlmdWthXCA7CivlvJ/lsI/niLYgPiBvdG9vamlcIDsKK+S4u+ayu+WMuyA+IHNodWppaVwgOwor5LiN6Kqg5oSPID4gZnVzZWlpXCA7CivlvqHoqaDmrYwgPiBnb2Vpa2FcIDsKK+iDg+S4i+WegiA+IGlrYXN1aVwgOwor5Yi35q+b55uuID4gaGFrZW1lXCA7CivnlLLng4/os4ogPiBrb3Vpa2FcIDsKK+S8iumBlOedgCA+IGRhdGVnaVwgOwor5b6h6KaL6IieID4gb21pbWFpXCA7Civog4zmloflrZcgPiBzZW1vamlcIDsKK+WEquabh+iPryA+IHVkb25nZVwgOwor5b6h6KWB6KSTID4gb211dHN1XCA7Civopb/nj63niZkgPiBzdXBlaW5cIDsKK+S4jeimi+ebriA+IG1pamltZVwgOwor6JWO6bqm57KJID4gc29iYWtvXCA7Civmoq3lrZDprZogPiBrYW1hc3VcIDsKK+S4jemaj+aEjyA+IGZ1enVpaVwgOwor57Sr6Zm96IqxID4gYWppc2FpXCA7Civph47oia/nnYAgPiBub3JhZ2lcIDsKK+S6juiYreebhiA+IHVyYWJvblwgOwor6Ium5ZGz57SgID4ga3VtaXNvXCA7CivnhKHkuovmlYUgPiBtdWppa29cIDsKK+S4gOaYqOaXpSA+IG90b3RvaVwgOwor5Ye65p2l5YCkID4gZGVraW5lXCA7CivkvIrli6LkuLkgPiBpc2V0YW5cIDsKK+mjsuWFteihmyA+IG5vbmJlZVwgOwor5q2k5Yem562JID4ga29rb3JhXCA7CivpnLLopb/kupwgPiByb3NoaWFcIDsKK+ebruWMu+iAhSA+IG1laXNoYVwgOwor5aaC5L2V5qeYID4gaWtheW91XCA7CivnoLTprZTnn6IgPiBoYW1heWFcIDsKK+ebuOmDqOWxiyA+IGFpYmV5YVwgOwor5a2k5YWQ6ZmiID4ga29qaWluXCA7Civku4rml6Xml6UgPiBreW91YmlcIDsKK+iNvOaes+WwvCA+IGRha2luaVwgOwor5rW36ICB6YygID4gZWJpam91XCA7CivolY7puqblsYsgPiBzb2JheWFcIDsKK+mbjOaNu+WtkCA+IG1lbmVqaVwgOwor5Y+k5LqL6KiYID4ga29qaWtpXCA7CivnnJ/pnaLnm64gPiBtYWppbWVcIDsKK+mCo+eUseS7liA+IG5heXV0YVwgOwor5YC25qW96YOoID4ga3VyYWJ1XCA7CivlsYvmoLnlsYsgPiB5YW5leWFcIDsKK+a1t+iAgeiMtiA+IGViaWNoYVwgOwor6Zi/5aq95rivID4gYW1ha291XCA7Civno4HmlrnkvY0gPiBqaWhvdWlcIDsKK+mNm+WGtuWxiyA+IGthaml5YVwgOwor5aGp5Z+65bqmID4gZW5raWRvXCA7Civnn6Lnvr3moLkgPiB5YWJhbmVcIDsKK+eZvuWQiOaguSA+IHl1cmluZVwgOwor6Zi/576F5ryiID4gYXJha2FuXCA7Civph47ot6/lrZAgPiBub2ppa29cIDsKK+mbjOieuuWtkCA+IG1lbmVqaVwgOwor5Zyf5LiL5bqnID4gZG9nZXphXCA7CivmhbDlronogIUgPiBpYW5zaGFcIDsKK+e1teaXpeiomCA+IGVuaWtraVwgOwor6ZmA576F5bC8ID4gZGFyYW5pXCA7CivnvoXmlrnkvY0gPiByYWhvdWlcIDsKK+eVsOS9k+WtlyA+IGl0YWlqaVwgOwor5ZCM5oSP6KqeID4gZG91aWdvXCA7Civpn4vpp4TlpKkgPiBpZGF0ZW5cIDsKK+eCuuaUv+WutiA+IGlzZWlrYVwgOwor5LqM5bqm55uuID4gbmlkb21lXCA7CivmlbDlr4TlsYsgPiBzdWtpeWFcIDsKK+WQjOaEj+e+qSA+IGRvdWlnaVwgOwor5aSn6KKI6KOfID4gb29nZXNhXCA7Civkuovli5nlsYsgPiBqaW11eWFcIDsKK+a1ruS4lue1tSA+IHVraXlvZVwgOwor55C155C25rmWID4gYml3YWtvXCA7Civkuovli5nlrrYgPiBqaW11a2FcIDsKK+WKoOeVmeWkmiA+IGthcnV0YVwgOwor5LiN5Y+v6YG/ID4gZnVrYWhpXCA7Civkuovli5nlmaggPiBqaW11a2lcIDsKK+W+oea0kuiQvSA+IG9zaGFyZVwgOwor5LqL5YuZ5ZOhID4gamltdWluXCA7CivmpI3mnKjlsYsgPiB1ZWtpeWFcIDsKK+S4jeWPr+iqpCA+IGZ1a2Fnb1wgOwor5b6h6YeI6L+mID4gb3NoYWthXCA7CivljbDlrZfmqZ8gPiBpbmppa2lcIDsKK+ehq+m7hOaziSA+IGlvdXNlblwgOwor5Y2S6YO95amGID4gc290b2JhXCA7CivlgYnkuIjlpKsgPiBpam91ZnVcIDsKK+W4g+a1t+iLlCA+IGZ1bm9yaVwgOwor55y85Yy76ICFID4gbWVpc2hhXCA7CivnnLznp5HljLsgPiBnYW5rYWlcIDsKK+aFsOWuieS8miA+IGlhbmthaVwgOwor5oqr6Zyy55uuID4gaGlyb21lXCA7CivkuojlgpnppqwgPiB5b2JpYmFcIDsKK+awl+WMluWZqCA+IGtpa2FraVwgOwor5q2m6ICF57W1ID4gbXVzaGFlXCA7CivpoqjlnJ/oqJggPiBmdWRva2lcIDsKK+W+oeays+erpSA+IG9rYXBwYVwgOwor5oSb54WZ5a62ID4gYWllbmthXCA7Civpg6jlsYvnnYAgPiBoZXlhZ2lcIDsKK+S6iOWCmeiyuyA+IHlvYmloaVwgOwor54CY6YGO5ZmoID4gcm9rYWtpXCA7Civoo5zliqnlk6EgPiBob2pvaW5cIDsKK+avlOS4mOWwvCA+IGJpa3VuaVwgOwor5rOi5q2i5aC0ID4gaGF0b2JhXCA7CivmmJPli5XluqYgPiBpZG91ZG9cIDsKK+e1teWbs+mdoiA+IGV6dW1lblwgOwor6KO45amm55S7ID4gcmFmdWdhXCA7CivmrankuIDmrakgPiBob2lwcG9cIDsKK+S4ieWNgei3ryA+IG1pc29qaVwgOwor5LiN5rKZ5rGwID4gYnVzYXRhXCA7CivkuI3mrbvouqsgPiBmdWppbWlcIDsKK+WRiuWkqeWtkCA+IGhpYmFyaVwgOwor5Yqg5aWI6ZmAID4ga2FuYWRhXCA7Civku6XpgaDmqKkgPiBpZW5rZW5cIDsKK+aWvemkk+msvCA+IHNlZ2FraVwgOwor5LiJ6YeN55yMID4gbWlla2VuXCA7CivlvqHmspnmsbAgPiBnb3NhdGFcIDsKK+avm+e5u+WtkCA+IGtlanVzdVwgOwor5LiN5ZCM5oSPID4gZnVkb3VpXCA7Civkuojlgpnnp5EgPiB5b2Jpa2FcIDsKK+axn+aIuOWJjSA+IGVkb21hZVwgOwor55uC6Jit55uGID4gdXJhYm9uXCA7Civkv53orbfljLogPiBob2dva3VcIDsKK+a1heiMheeUnyA+IGFzYWppdVwgOwor5a625YW35bGLID4ga2FndXlhXCA7CivlsI/msJflkbMgPiBrb2tpbWlcIDsKK+WkqeialeezuCA+IHRlZ3VzdVwgOwor55Ww5paH5YyWID4gaWJ1bmthXCA7CivlpJzopovkuJYgPiB5b21pc2VcIDsKK+S9jeebuOW3riA+IGlzb3VzYVwgOwor5pWw5aWH5bGLID4gc3VraXlhXCA7CivolpToloflnJIgPiBiYXJhZW5cIDsKK+mBjua4oeacnyA+IGthdG9raVwgOwor5bGF5aC05omAID4gaWJhc2hvXCA7CivpgZXlkozmhJ8gPiBpd2FrYW5cIDsKK+eUn+iVjum6piA+IGtpc29iYVwgOwor5a+d6ZaT552AID4gbmVtYWtpXCA7CivkuInljYHml6UgPiBtaXNva2FcIDsKK+S4jeawl+WRsyA+IGJ1a2ltaVwgOwor5pyA5LiL5L2NID4gc2Fpa2FpXCA7CivlvqHmrbPmmq4gPiBvc2VpYm9cIDsKK+S6iOWCmeWToSA+IHlvYmlpblwgOwor5pig55S75YyWID4gZWlnYWthXCA7CivmrKfljbDoqp4gPiBvdWluZ29cIDsKK+Wbs+ahiOWutiA+IHp1YW5rYVwgOwor5b+c5o+05q2MID4gb3VlbmthXCA7Civpn4vpmYDlpKkgPiBpZGF0ZW5cIDsKK+atjOiInuS8jiA+IGthYnVraVwgOwor6Zi/6Jit6ZmAID4gb3JhbmRhXCA7CivmrYznlZnlpJogPiBrYXJ1dGFcIDsKK+eEoeaFiOaCsiA+IG11amloaVwgOwor5Y+X6Kmx5ZmoID4ganV3YWtpXCA7Civnv7vou4rprZogPiBtYW5ib3VcIDsKK+S4jeWHuuadpSA+IGZ1ZGVraVwgOwor6ZuR6a2a5a+dID4gemFrb25lXCA7CivkvIrlpKrliKkgPiBpdGFyaWlcIDsKK+mlgumjqeeyiSA+IHVkb25rb1wgOwor55SY5rW36ICBID4gYW1hZWJpXCA7CivlsI/ppqzpub8gPiBrb2Jha2FcIDsKK+W+oeiPk+WtkCA+IG9rYXNoaVwgOwor55Sj56eR5Yy7ID4gc2Fua2FpXCA7CivkuInnn6XlnJ8gPiB0YXRha2lcIDsKK+izk+S9jeiqniA+IGhpbmlnb1wgOwor5pGp6I6r5p6zID4gbWFtYWtpXCA7CivlsI/nmb7lkIggPiBzYXl1cmlcIDsKK+eEoeaymeaxsCA+IGJ1c2F0YVwgOwor54OP5bi95a2QID4gZWJvc2hpXCA7CivnpZbniLbmr40gPiBzb2Z1Ym9cIDsKK+WNgeWFreWknCA+IGl6YXlvaVwgOwor6L+C5Zue6LevID4gdWthaXJvXCA7CivopaTopLjlrrYgPiBib3JveWFcIDsKK+mdkue0q+iYhyA+IGFvamlzb1wgOwor5r++6YGO5ZmoID4gcm9rYWtpXCA7CivkuI3lhbflkIggPiBmdWd1YWlcIDsKK+efpeaBteatryA+IGNoaWViYVwgOwor5LiN6LW36Ki0ID4gZnVraXNvXCA7CivnhKHljLvmnZEgPiBtdWlzb25cIDsKK+aenOaoueWckiA+IGthanVlblwgOwor5b6h6Lui5amGID4gb3RlbmJhXCA7CivpoqjlkYLlsYsgPiBmdXJveWFcIDsKK+aEj+WRs+irliA+IGltaXJvblwgOwor54Sh6YKq5rCXID4gbXVqYWtpXCA7CivpoqjlkYLloLQgPiBmdXJvYmFcIDsKK+mYv+iYh+WxsSA+IGFzb3NhblwgOwor6a6O6a2a5aWzID4gYWluYW1lXCA7CivlvqHlrrboirggPiBvaWVnZWlcIDsKK+eEoeawl+WRsyA+IGJ1a2ltaVwgOwor5YaF56eR5Yy7ID4gbmFpa2FpXCA7CivlpKfpg6jlsYsgPiBvb2JleWFcIDsKK+WgleiDjuWMuyA+IGRhdGFpaVwgOwor5LiN55So5oSPID4gZnV5b3VpXCA7CivkuYXmhYjnm64gPiBrdWppbWVcIDsKK+Wkp+W+oeS7oyA+IG9vbWl5b1wgOwor5pyJ5oSP576pID4geXV1aWdpXCA7Civph47olpTolocgPiBub2JhcmFcIDsKK+aihembqOacnyA+IGJhaXVraVwgOwor6ICz6by756eRID4gamliaWthXCA7CivnlLvmnrbluqcgPiBnYWthemFcIDsKK+S4jeWuieawlyA+IGZ1YW5nZVwgOwor5aSn5Ye65p2lID4gb29kZWtpXCA7CivpoqjpgqrmsJcgPiBrYXpla2VcIDsKK+atpuWZqOW6qyA+IGJ1a2lrb1wgOwor5LyK5ZGC5rOiID4gaXJvaGFcIDsKK+S6nOmJm+iPryA+IGFlbmthXCA7Civntq3mjIHosrsgPiBpamloaVwgOwor5L6d5Lyw5ZywID4gZWtvamlcIDsKK+aEj+awl+WcsCA+IGlrdWppXCA7Civnp4vliIDprZogPiBzYW5tYVwgOwor5YWr6YeN5q2vID4geWFlYmFcIDsKK+Wkp+S8r+eItiA+IG9vb2ppXCA7CivlpKfkvK/mr40gPiBvb29iYVwgOwor57Sr6Zuy6IuxID4gZ2VuZ2VcIDsKK+acquabvuaciSA+IG1pem91XCA7CivkvK/niLbosrQgPiBvamlraVwgOwor5Lqc6bq75LuBID4gYW1hbmlcIDsKK+S6lOWNgei3ryA+IGlzb2ppXCA7CivmnKjkuYPkvIogPiBtaWlyYVwgOwor5LqM5Y2B6YeNID4gaGF0YWVcIDsKK+S9nOWLmeihoyA+IHNhbXVlXCA7CivlsYXnlZnlroggPiBpcnVzdVwgOwor5a+d5qSF5a2QID4gbmVpc3VcIDsKK+W6p+akheWtkCA+IHphaXN1XCA7Civpm6roirHoj5wgPiBva2FyYVwgOwor5YWr55m+5bGLID4geWFveWFcIDsKK+ehq+m7hOiPryA+IGlvdWthXCA7CivlsI/mhI/msJcgPiBrb2lraVwgOwor5b6h56We6YWSID4gb21pa2lcIDsKK+S8iuS9kOacqCA+IGlzYWtpXCA7CivmhbDlronlqaYgPiBpYW5mdVwgOwor5aSn6KaL5b6XID4gb29taWVcIDsKK+WwhOaJi+W6pyA+IGl0ZXphXCA7CivkuI3mhI/msJcgPiBidWlraVwgOwor6I2P6IOh6bq7ID4gZWdvbWFcIDsKK+e1teaWh+WtlyA+IGVtb2ppXCA7CivkupTlgI3lrZAgPiBmdXNoaVwgOwor5oG15q+U5a+/ID4gZWJpc3VcIDsKK+eVmeWuiOWxhSA+IHJ1c3VpXCA7CivkuI3lvpfmiYsgPiBmdWV0ZVwgOwor54Sh5oSP576pID4gbXVpZ2lcIDsKK+S+neaAmeWcsCA+IGVrb2ppXCA7CivpppnlhbfluKsgPiB5YXNoaVwgOwor5aSn5Y+U54i2ID4gb29vamlcIDsKK+eEoeaEj+WRsyA+IG11aW1pXCA7CivlpKflj5Tmr40gPiBvb29iYVwgOwor5oSP5Zu65ZywID4gaWtvamlcIDsKK+W+oei+nuWEgCA+IG9qaWdpXCA7CivpmL/lvKXpmYAgPiBhbWlkYVwgOwor5bGF5ZCI6YGTID4gaWFkb3VcIDsKK+acqumAmuWlsyA+IG9ib2tvXCA7Civlm7Lngonoo48gPiBpcm9yaVwgOwor5b6h5LiW6L6eID4gb3NlamlcIDsKK+WkluenkeWMuyA+IGdla2FpXCA7Civnn7PmlpHprZogPiB1Z3VpXCA7CivlpoLpm6jpnLIgPiBqb3JvXCA7Civnmb7oiIzps6UgPiBtb3p1XCA7Civmta7lobXlrZAgPiB1bmthXCA7CivkupzntLDkupwgPiBhamlhXCA7CivkvLzogIzpnZ4gPiBlc2VcIDsKK+aYlOipsSA+IG11a2FzaGliYW5hc2hpXCA7CivkuqXlubQgPiBpbm9zaGlzaGlkb3NoaVwgOwor6Kmx6KmxID4gaGFuYXNoaWJhbmFzaGlcIDsKK+S4i+WUhyA+IHNoaXRha3VjaGliaXJ1XCA7CivmmJTmmJQgPiBtdWthc2hpbXVrYXNoaVwgOwor5piU44CFID4gbXVrYXNoaW11a2FzaGlcIDsKK+ipseOAhSA+IGhhbmFzaGliYW5hc2hpXCA7Civnp4Hnq4sgPiB3YXRha3VzaGlyaXRzdVwgOwor5oeQ5YiAID4gZnV0b2tvcm9nYXRhbmFcIDsKK+W/nea2mSA+IGthdGFqaWtlbmFtaWRhXCA7CivljZfmnbEgPiBtaW5hbWloaWdhc2hpXCA7Civlj6TlhbUgPiBmdXJ1dHN1d2Ftb25vXCA7CivlhoXouJ0gPiB1Y2hpa3VydWJ1c2hpXCA7CivoiIzpvJMgPiBzaGl0YXRzdWR6dW1pXCA7CivlgaXogIUgPiBzaGl0YXRha2Ftb25vXCA7CivmoZznpa0gPiBzYWt1cmFtYXRzdXJpXCA7CivkubPnqoQgPiBjaGljaGlzaGlib3JpXCA7Civos6LmiYAgPiBrYXNoaWtvZG9rb3JvXCA7CivpnaLprYIgPiB0c3VyYWRhbWFzaGlpXCA7Civku4/kvZwgPiBob3Rva2VkenVrdXJ1XCA7CivmnbHljZcgPiBoaWdhc2hpbWluYW1pXCA7CivlpKnniZsgPiBrYW1pa2lyaW11c2hpXCA7CivlpKLlubsgPiB5dW1lbWFib3Jvc2hpXCA7CivmgZnomasgPiB0c3V0c3VnYW11c2hpXCA7Civnp4HlhbEgPiB3YXRha3VzaGlkb21vXCA7Civnp4HkuosgPiB3YXRha3VzaGlnb3RvXCA7Civpg73lv5ggPiBtaXlha293YXN1cmVcIDsKK+mBk+aomSA+IG1pY2hpc2hpcnViZVwgOwor6L6756S+ID4gdHN1aml5YXNoaXJvXCA7Civoi6XntKsgPiB3YWthbXVyYXNha2lcIDsKK+eVs+mwryA+IHRhdGFtaWl3YXNoaVwgOwor55uy5pqmID4gbWVrdXJhZ295b21pXCA7CivohbnpvJMgPiBoYXJhdHN1ZHp1bWlcIDsKK+WGheaHkCA+IHVjaGlidXRva29yb1wgOwor6bC75Li8ID4gdW5hZ2lkb25idXJpXCA7Civour7mlrkgPiBzaGl0c3VrZWthdGFcIDsKK+WDu+W/gyA+IGhpZ2FtaWdva29yb1wgOwor5qS/5rK5ID4gdHN1YmFraWFidXJhXCA7Civmn4/ppIUgPiBrYXNoaXdhbW9jaGlcIDsKK+afhOmgrSA+IHRzdWthZ2FzaGlyYVwgOwor5L+E55uyID4gbml3YWthbWVrdXJhXCA7CivmnpXoqZ4gPiBtYWt1cmFrb3RvYmFcIDsKK+WAmeaJgCA+IHNvdXJvdXRva29yb1wgOwor5qGC55S3ID4ga2F0c3VyYW90b2tvXCA7CivlsbHmh5AgPiB5YW1hZnV0b2tvcm9cIDsKK+S4vOmjryA+IGRvbmJ1cmltZXNoaVwgOwor5Li86YmiID4gZG9uYnVyaWJhY2hpXCA7CivlgJLkuosgPiBzYWthc2FtYWdvdG9cIDsKK+aagemXhyA+IGFrYXRzdWtpeWFtaVwgOwor5p2+5q+sID4gbWF0c3Vwb2trdXJpXCA7CivpoK3ombEgPiBhdGFtYXNoaXJhbWlcIDsKK+advuaelyA+IG1hdHN1YmF5YXNoaVwgOwor5p2f5p+xID4gdHN1a2FiYXNoaXJhXCA7Civku4/lv4MgPiBob3Rva2Vnb2tvcm9cIDsKK+acquW5tCA+IGhpdHN1amlkb3NoaVwgOwor6LC35oeQID4gdGFuaWJ1dG9rb3JvXCA7Civpm4HpqqggPiBrYXJpZ2FuZWJvbmVcIDsKK+adseWPoyA+IGhpZ2FzaGlndWNoaVwgOwor5p2v5LqLID4gc2FrYXp1a2lnb3RvXCA7Civni6zmnpUgPiBoaXRvcmltYWt1cmFcIDsKK+S4gOWhiiA+IGhpdG9rYXRhbWFyaVwgOwor5aiY5b+DID4gbXVzdW1lZ29rb3JvXCA7CivlpI/npa0gPiBuYXRzdW1hdHN1cmlcIDsKK+aYlOW8jyA+IG11a2FzaGlzaGlraVwgOwor5aa55aiYID4gaW1vdXRvbXVzdW1lXCA7CivpnJzmn7EgPiBzaGltb2Jhc2hpcmFcIDsKK+aYn+WNsCA+IGhvc2hpamlydXNoaVwgOwor6KKL6bygID4gZnVrdXJvbmV6dW1pXCA7Civntprmn4QgPiB0c3VkenVraWdhcmFcIDsKK+Wcn+ibjSA+IHRzdWNoaWJvdGFydVwgOwor5Zyf54WZID4gdHN1Y2hpa2VtdXJpXCA7Civmh5Dpiq0gPiBmdXRva29yb3plbmlcIDsKK+mLuOmuqyA+IG5va29naXJpemFtZVwgOwor5Zyf5Z+DID4gdHN1Y2hpYm9rb3JpXCA7Civom43ooosgPiBob3RhcnVidWt1cm9cIDsKK+aHkOe0mSA+IGZ1dG9rb3JvZ2FtaVwgOwor56eB6YGUID4gd2F0YXNoaXRhY2hpXCA7CivmiYDmiYAgPiB0b2tvcm9kb2tvcm9cIDsKK+mHkemLuCA+IGthbmVub2tvZ2lyaVwgOwor5oiv5LqLID4gdGF3YW11cmVnb3RvXCA7Civlk4HlvaIgPiBzaGluYWthdGFjaGlcIDsKK+WLoui7iiA+IGhhenVtaWd1cnVtYVwgOwor5ZOA5ZOJID4ga2FuYXNoaWlrYW5hXCA7CivmiYDjgIUgPiB0b2tvcm9kb2tvcm9cIDsKK+awtOebgyA+IG1penVzYWthenVraVwgOwor5YyF57SZID4gdHN1dHN1bWlnYW1pXCA7CivmsLTmna8gPiBtaXp1c2FrYXp1a2lcIDsKK+W4r+mLuCA+IG9iaW5va29naXJpXCA7Civlj6zkvb8gPiBtZXNoaXRzdWthaVwgOwor5Yqb55+zID4gY2hpa2FyYWlzaGlcIDsKK+eZvem8oCA+IHNoaXJvbmV6dW1pXCA7CivlipvnmKQgPiBjaGlrYXJha29idVwgOwor5Yqb5rC0ID4gY2hpa2FyYW1penVcIDsKK+WNl+WPoyA+IG1pbmFtaWd1Y2hpXCA7Civlipvmpa0gPiBjaGlrYXJhd2F6YVwgOwor6YCG552rID4gc2FrYW1hdHN1Z2VcIDsKK+mwueevgCA+IGthdHN1b2J1c2hpXCA7CivlhZzomasgPiBrYWJ1dG9tdXNoaVwgOwor5b2i5L2TID4gbmFyaWthdGFjaGlcIDsKK+W6iuafsSA+IHRva29iYXNoaXJhXCA7Civlh7rmsqEgPiBzaHV0c3Vib3RzdVwgOwor5bem56uvID4gaGlkYXJpaGFzaGlcIDsKK+W3tOeTpiA+IHRvbW9lZ2F3YXJhXCA7CivliIfml6UgPiBzaGltZWtpcmliaVwgOwor5bm85b+DID4gb3NhbmFnb2tvcm9cIDsKK+iKseettSA+IGhhbmFtdXNoaXJvXCA7CivnlLfpsKUgPiBvdG9rb3lhbW9tZVwgOwor6Iqx56WtID4gaGFuYW1hdHN1cmlcIDsKK+WIneWnvyA+IGhhdHN1c3VnYXRhXCA7Civpq5joqbEgPiB0YWthYmFuYXNoaVwgOwor6Iad6aCtID4gaGl6YWdhc2hpcmFcIDsKK+W3u+afsSA+IG1ha2liYXNoaXJhXCA7CivlupXlipsgPiBzb2tvZGppa2FyYVwgOwor55Wz6KGoID4gdGF0YW1pb21vdGVcIDsKK+WHuuWKmyA+IHNodXRzdXJ5b2t1XCA7CivmoZzppIUgPiBzYWt1cmFtb2NoaVwgOwor5qGc6aOvID4gc2FrdXJhbWVzaGlcIDsKK+ebtOWHuiA+IGNob2t1c2h1dHN1XCA7CivnlbPogbcgPiB0YXRhbWlzaG9rdVwgOwor6I2J5YagID4ga3VzYWthbm11cmlcIDsKK+eTouiZqyA+IHRlbnRvdW11c2hpXCA7Civlt6bkuIsgPiBoaWRhcmlzaGl0YVwgOwor55m+5Ye6ID4gaHlha3VzaHV0c3VcIDsKK+iLpeS+jSA+IHdha2F6YW11cmFpXCA7CivlgJnnlLEgPiBzb3Vyb3V5b3NoaVwgOwor5Ly96KmxID4gdG9naWJhbmFzaGlcIDsKK+advumjviA+IG1hdHN1a2F6YXJpXCA7CivmnbHpoqggPiBoaWdhc2hpa2F6ZVwgOwor6LWk57SrID4gYWthbXVyYXNha2lcIDsKK+afs+iFsCA+IHlhbmFnaWdvc2hpXCA7CivnlLflv4MgPiBvdG9rb2dva29yb1wgOwor5Lq66JmxID4gaGl0b3NoaXJhbWlcIDsKK+eNo+mBkyA+IGtlbW9ub21pY2hpXCA7CivkuIDpm6sgPiBoaXRvc2hpenVrdVwgOwor576K6ZuyID4gaGl0c3VqaWd1bW9cIDsKK+eMv+i9oSA+IHNhcnVndXRzdXdhXCA7CivohIjmiYAgPiBteWFrdWRva29yb1wgOwor5L2G5pu4ID4gdGFkYXNoaWdha2lcIDsKK+iFsOWIgCA+IGtvc2hpZ2F0YW5hXCA7CivosqLniakgPiBtaXRzdWdpbW9ub1wgOwor5a6i5a6kID4ga3lha3VzaGl0c3VcIDsKK+S6uuafsSA+IGhpdG9iYXNoaXJhXCA7Civml5fpoK0gPiBoYXRhZ2FzaGlyYVwgOwor5a2Q5bm0ID4gbmV6dW1pZG9zaGlcIDsKK+aXi+miqCA+IHRzdW11amlrYXplXCA7Civos6rlrp8gPiBzaGl0c3VqaXRzdVwgOwor5Li854mpID4gZG9uYnVyaW1vbm9cIDsKK+adluafsSA+IHRzdWVoYXNoaXJhXCA7CivkuIvnnrwgPiBzaGl0YW1hYnV0YVwgOwor5p2J5p6XID4gc3VnaWJheWFzaGlcIDsKK+aZkuiAhSA+IHNhcmFzaGltb25vXCA7CivkuIDmu7QgPiBoaXRvc2hpenVrdVwgOwor5Lit5p+xID4gbmFrYWJhc2hpcmFcIDsKK+eLuOeIuiA+IHRhbnVraWppamlpXCA7Civlq6HlrqQgPiBjaGFrdXNoaXRzdVwgOwor54uQ54y/ID4ga2l0c3VuZXphcnVcIDsKK+adseWMlyA+IGhpZ2FzaGlraXRhXCA7CivkuIPmnIggPiBzaGljaGlnYXRzdVwgOwor5LiA5piUID4gaGl0b211a2FzaGlcIDsKK+adseWBtCA+IGhpZ2FzaGlnYXdhXCA7CivkuIDmkq4gPiBoaXRvdHN1bWFtaVwgOwor6aO+5LuYID4ga2F6YXJpdHN1a2VcIDsKK+WroeWHuiA+IGNoYWt1c2h1dHN1XCA7CivkuIvlv4MgPiBzaGl0YWdva29yb1wgOwor5aSP6KGjID4gbmF0c3Vnb3JvbW9cIDsKK+S4jeWXnCA+IGJ1dGFzaGluYW1pXCA7Civpm4DonIIgPiBzdXp1bWViYWNoaVwgOwor57WE6aCtID4ga3VtaWdhc2hpcmFcIDsKK+e3keiZqyA+IG1pZG9yaW11c2hpXCA7Civpm6rnpKsgPiB5dWtpdHN1YnV0ZVwgOwor5peX5qiZID4gaGF0YWppcnVzaGlcIDsKK+WkouePviA+IHl1bWV1dHN1dHN1XCA7Civpm5vnpa0gPiBoaW5hbWF0c3VyaVwgOwor5aWz5pexID4gb24nJ25haGlkZXJpXCA7CivlpbPlv4MgPiBvbicnbmFnb2tvcm9cIDsKK+aPoemuqCA+IG5pZ2lyaXp1c2hpXCA7CivpnZnlv4MgPiBzaGl6dWdva29yb1wgOwor6Zqj55S6ID4gdG9uYXJpbWFjaGlcIDsKK+Wkp+aZpiA+IG9vdHN1Z29tb3JpXCA7Civmj6Hpo68gPiBuaWdpcmltZXNoaVwgOwor57Sr6ImyID4gbXVyYXNha2lpcm9cIDsKK+aXl+WNsCA+IGhhdGFqaXJ1c2hpXCA7Civpm6rluocgPiB5dWtpYmlzYXNoaVwgOwor6ZW36KmxID4gbmFnYWJhbmFzaGlcIDsKK+e0meekqyA+IGthbWl0c3VidXRlXCA7Civoo7jomasgPiBoYWRha2FtdXNoaVwgOwor6Kmx5LitID4gaGFuYXNoaWNodXVcIDsKK+WhteWfgyA+IGNoaXJpaG9rb3JpXCA7Civpj6HppIUgPiBrYWdhbWltb2NoaVwgOwor54OP5Y+jID4ga2FyYXN1Z3VjaGlcIDsKK+err+mHkSA+IGhhc2hpdGFnYW5lXCA7CivmjqflrqQgPiBoaWthZXNoaXRzdVwgOwor57Gz5Y2wID4ga29tZWppcnVzaGlcIDsKK+WUkOmMpiA+IGthcmFuaXNoaWtpXCA7CivonbjniZsgPiBkZW5kZW5tdXNoaVwgOwor6buS6barID4ga3Vyb3RzdWd1bWlcIDsKK+mMpuibhyA+IG5pc2hpa2loZWJpXCA7Civlm73kvo0gPiBrdW5pemFtdXJhaVwgOwor5riv55S6ID4gbWluYXRvbWFjaGlcIDsKK+iZq+iWrCA+IG11c2hpZ3VzdXJpXCA7CivllJDntIUgPiBrYXJha3VyZW5haVwgOwor56Ov6bWvID4gaXNvaGl5b2RvcmlcIDsKK+WRvee2sSA+IGlub2NoaWR6dW5hXCA7Civph5HovaEgPiBrYW5hZ3V0c3V3YVwgOwor5Y+j6LuKID4ga3VjaGlndXJ1bWFcIDsKK+WPluiqvyA+IHRvcmlzaGlyYWJlXCA7CivpvLvmn7EgPiBoYW5hYmFzaGlyYVwgOwor56qv5Y2wID4ga2FtYWppcnVzaGlcIDsKK+iUpuiYvyA+IHRzdXRha2F6dXJhXCA7Civlj5bnt6AgPiB0b3Jpc2hpbWFyaVwgOwor6JSm6JSTID4gdHN1dGFrYXp1cmFcIDsKK+awt+iiiyA+IGtvb3JpYnVrdXJvXCA7CivljZfopb8gPiBtaW5hbWluaXNoaVwgOwor5YyF6YeRID4gdHN1dHN1bWlraW5cIDsKK+WPpOeLkCA+IGZ1cnVnaXRzdW5lXCA7CivlipvpnakgPiBjaGlrYXJhZ2F3YVwgOwor56eB5YSAID4gd2F0YWt1c2hpZ2lcIDsKK+WKm+i2syA+IGNoaWthcmFhc2hpXCA7Civnp4HkvpsgPiB3YXRhc2hpZG9tb1wgOwor5Yqb6LKgID4gY2hpa2FyYW1ha2VcIDsKK+awtOa+hCA+IG1penVzdW1hc2hpXCA7Civlj5bmibEgPiB0b3JpYXRzdWthaVwgOwor6YmE5YWcID4gdGV0c3VrYWJ1dG9cIDsKK+awt+aelSA+IGtvb3JpbWFrdXJhXCA7CivmsLTmn7EgPiBtaXp1YmFzaGlyYVwgOwor5YiH6YCaID4ga2lyaWRvb3NoaVwgOwor6a+w6autID4gbmFtYXp1aGlnZVwgOwor5Y+j5Y+jID4ga3VjaGlndWNoaVwgOwor5Yid6KmjID4gaGF0c3Vtb3VkZVwgOwor55+z55WzID4gaXNoaWRhdGFtaVwgOwor6YCG6KqsID4gZ3lha3VzZXRzdVwgOwor6Iy46ZuyID4ga2lub2tvZ3Vtb1wgOwor6L+R6YGTID4gY2hpa2FtaWNoaVwgOwor6L+R6L+RID4gY2hpa2FkamlrYVwgOwor5rC05b+DID4gbWl6dWdva29yb1wgOwor56CC54WZID4gc3VuYWtlbXVyaVwgOwor5bed6a2aID4ga2F3YXpha2FuYVwgOwor5Y2v5bm0ID4gdXNhZ2lkb3NoaVwgOwor6L+R6LevID4gY2hpa2FtaWNoaVwgOwor6L676L67ID4gdHN1aml0c3VqaVwgOwor5YyX5p6VID4ga2l0YW1ha3VyYVwgOwor56K65Z+3ID4ga2FrdXNoaXRzdVwgOwor5rC35a6kID4gaHlvdXNoaXRzdVwgOwor5rG65YilID4ga2V0c3ViZXRzdVwgOwor5b6M5oqAID4gdXNoaXJvd2F6YVwgOwor5Y2N5be0ID4gbWFuamlkb21vZVwgOwor5b+D5a6kID4gc2hpbnNoaXRzdVwgOwor552A6ImyID4gY2hha3VzaG9rdVwgOwor5YaG6Y+hID4gbWFydWthZ2FtaVwgOwor6YGj55u0ID4geWFyaW5hb3NoaVwgOwor552A6ISxID4gY2hha3VkYXRzdVwgOwor5b2X5pifID4gaG91a2lib3NoaVwgOwor5YaG6YmLID4gbWFydWdhbicnbmFcIDsKK+W+jOW+jCA+IG5vY2hpbm9jaGlcIDsKK+WNuOWVhiA+IG9yb3NoaXNob3VcIDsKK+i+u+ikhCA+IHRzdWppdHN1bWFcIDsKK+iKsemwuSA+IGhhbmFnYXRzdW9cIDsKK+m2tOWYtCA+IHRzdXJ1aGFzaGlcIDsKK+WFiOmaoyA+IHNha2lkb25hcmlcIDsKK+W3pui2syA+IGhpZGFyaWFzaGlcIDsKK+W+l+WksSA+IHRva3VzaGl0c3VcIDsKK+WShOOAhSA+IHRvdHN1dG90c3VcIDsKK+mFkuWHpiA+IHNha2Vkb2tvcm9cIDsKK+ats+aciCA+IHRvc2hpdHN1a2lcIDsKK+aoqui7iiA+IHlva29ndXJ1bWFcIDsKK+WNk+WHuiA+IHRha3VzaHV0c3VcIDsKK+W8j+aXpSA+IHNoaWtpaml0c3VcIDsKK+WFpeizqiA+IG55dXVzaGljaGlcIDsKK+edgOedgCA+IGNoYWt1Y2hha3VcIDsKK+WNl+WBtCA+IG1pbmFtaWdhd2FcIDsKK+earuihoyA+IGthd2Fnb3JvbW9cIDsKK+WMuuWMuiA+IG1hY2hpbWFjaGlcIDsKK+edgOeZuiA+IGNoYWt1aGF0c3VcIDsKK+iKsemLjyA+IGhhbmFiYXNhbWlcIDsKK+W6rea8hiA+IG5pd2F1cnVzaGlcIDsKK+egguW1kCA+IHN1bmFhcmFzaGlcIDsKK+W5tOeUtyA+IHRvc2hpb3Rva29cIDsKK+asoeasoSA+IHRzdWdpdHN1Z2lcIDsKK+WIgOeWtSA+IGthdGFuYWtpenVcIDsKK+mBleajmiA+IGNoaWdhaWRhbmFcIDsKK+ebtOethiA+IGNob2t1aGl0c3VcIDsKK+W8kOW/gyA+IGZ1dGFnb2tvcm9cIDsKK+ebtOeriyA+IGNob2t1cml0c3VcIDsKK+WFnOifuSA+IGthYnV0b2dhbmlcIDsKK+ebsueqkyA+IG1la3VyYW1hZG9cIDsKK+WHuueNhCA+IHNodXRzdWdva3VcIDsKK+WHuueMnyA+IHNodXRzdXJ5b3VcIDsKK+egguWfgyA+IHN1bmFib2tvcmlcIDsKK+W3puiAsyA+IGhpZGFyaW1pbWlcIDsKK+WKm+W4ryA+IGNoaWthcmFvYmlcIDsKK+egguWaoiA+IHN1bmFidWt1cm9cIDsKK+WFieiYmiA+IGhpa2FyaWdva2VcIDsKK+iKseipniA+IGhhbmFrb3RvYmFcIDsKK+WIneawtyA+IGhhdHN1Z29vcmlcIDsKK+iLpuiJviA+IG5pZ2F5b21vZ2lcIDsKK+WHuua8gSA+IHNodXRzdXJ5b3VcIDsKK+eav+enpCA+IHNhcmFiYWthcmlcIDsKK+auuuS8kCA+IHNhdHN1YmF0c3VcIDsKK+ayuOOAhSA+IGZ1dHN1ZnV0c3VcIDsKK+WFjuiEoyA+IG1pdHN1a3VjaGlcIDsKK+W6p+aKgCA+IHN1d2FyaXdhemFcIDsKK+WPo+OAhSA+IGt1Y2hpZ3VjaGlcIDsKK+iJr+izqiA+IHJ5b3VzaGl0c3VcIDsKK+anjeihviA+IHlhcmlidXN1bWFcIDsKK+mAkOaXpSA+IGNoaWt1aml0c3VcIDsKK+iLpee3kSA+IHdha2FtaWRvcmlcIDsKK+i7iuizgyA+IGt1cnVtYWNoaW5cIDsKK+mAhuaOpSA+IGd5YWt1c2V0c3VcIDsKK+eVkem8oCA+IGhhdGFuZXp1bWlcIDsKK+edgOaJlSA+IGNoYWt1YmFyYWlcIDsKK+WHuuaSgyA+IHNodXRzdWdla2lcIDsKK+WzoOmBkyA+IHRvdWdlbWljaGlcIDsKK+W5tOW8tyA+IHRvc2hpZHp1eW9cIDsKK+iJtuiJtiA+IHRzdXlhdHN1eWFcIDsKK+eUsOm1kSA+IGhvdG90b2dpc3VcIDsKK+WxsemvqCA+IHlhbWFrdWppcmFcIDsKK+iNieaelSA+IGt1c2FtYWt1cmFcIDsKK+edgOWunyA+IGNoYWt1aml0c3VcIDsKK+WCt+iWrCA+IGtpenVndXN1cmlcIDsKK+iMtuafsSA+IGNoYWJhc2hpcmFcIDsKK+W4muaYnyA+IGhvdWtpYm9zaGlcIDsKK+ebtOaOpSA+IGNob2t1c2V0c3VcIDsKK+W6leWcnyA+IHNva290c3VjaGlcIDsKK+eVs+mHnSA+IHRhdGFtaWhhcmlcIDsKK+eZuueGsSA+IGhhdHN1bmV0c3VcIDsKK+WIh+WunyA+IHNldHN1aml0c3VcIDsKK+WxsemiqiA+IHlhbWFvcm9zaGlcIDsKK+WFieeJqSA+IGhpa2FyaW1vbm9cIDsKK+WJlOWHuiA+IHRla2lzaHV0c3VcIDsKK+eUn+mtmiA+IG5hbWF6YWthbmFcIDsKK+ebtOaIqiA+IGNob2t1c2V0c3VcIDsKK+WBj+i+uiA+IGthdGFob3JvcmlcIDsKK+iKseeVkSA+IGhhbmFiYXRha2VcIDsKK+WAmemWkyA+IHNvdXJvdWFpZGFcIDsKK+mAsuWHuiA+IHNoaW5zaHV0c3VcIDsKK+W6l+WNuCA+IHRhbmFvcm9zaGlcIDsKK+eVpei/sCA+IHJ5YWt1anV0c3VcIDsKK+W4uOW4uCA+IHRzdW5lZHp1bmVcIDsKK+eWteiWrCA+IGtpenVndXN1cmlcIDsKK+WIpeWPoyA+IGJldHN1a3VjaGlcIDsKK+WFq+apiyA+IHlhdHN1aGFzaGlcIDsKK+i+sOW5tCA+IHRhdHN1ZG9zaGlcIDsKK+WIpeWIpSA+IGJldHN1YmV0c3VcIDsKK+Wwu+mkoCA+IHNoaXJpbW9jaGlcIDsKK+WHuuWbvSA+IHNodXRzdWdva3VcIDsKK+Wwu+mkhSA+IHNoaXJpbW9jaGlcIDsKK+WMuuOAhSA+IG1hY2hpbWFjaGlcIDsKK+eZveaouiA+IHNoaXJha2FuYmFcIDsKK+WFq+aciCA+IGhhY2hpZ2F0c3VcIDsKK+i4j+i7iiA+IGZ1bWlndXJ1bWFcIDsKK+W+jOOAhSA+IG5vY2hpbm9jaGlcIDsKK+eVpeiqrCA+IHJ5YWt1c2V0c3VcIDsKK+eUs+i+vCA+IG1vdXNoaWtvbWlcIDsKK+WIh+WIhyA+IHNldHN1c2V0c3VcIDsKK+ebsuWjgSA+IG1la3VyYWthYmVcIDsKK+mvqOW5lSA+IGt1amlyYW1ha3VcIDsKK+eZveaYnyA+IHNoaXJvYm9zaGlcIDsKK+eZvuaXpSA+IGh5YWt1bmljaGlcIDsKK+iGnOizqiA+IG1ha3VzaGl0c3VcIDsKK+WHuuWFpSA+IHNodXRzdW55dXVcIDsKK+W5tOS4iyA+IHRvc2hpc2hpdGFcIDsKK+S/gumVtyA+IGtha2FyaWNob3VcIDsKK+WAmeiqvyA+IHNvdXJvdWNob3VcIDsKK+mvqOWwuiA+IGt1amlyYWpha3VcIDsKK+ebm+WcnyA+IG1vcml0c3VjaGlcIDsKK+iKseaapiA+IGhhbmFnb3lvbWlcIDsKK+ebtOWIlyA+IGNob2t1cmV0c3VcIDsKK+eUsuifuSA+IGthYnV0b2dhbmlcIDsKK+WGveWGvSA+IHJldHN1cmV0c3VcIDsKK+WFpeWupCA+IG55dXVzaGl0c3VcIDsKK+WxseiNkiA+IHlhbWFhcmFzaGlcIDsKK+WCkeeJqSA+IGtldHN1YnV0c3VcIDsKK+eVpeethiA+IHJ5YWt1aGl0c3VcIDsKK+W3puWIqSA+IGhpZGFyaWtpa2lcIDsKK+S8uOmkhSA+IG5vc2hpbW9jaGlcIDsKK+WGheWGkSA+IHVjaGlrYWJ1dG9cIDsKK+WGheWFnCA+IHVjaGlrYWJ1dG9cIDsKK+W3puWBtCA+IGhpZGFyaWdhd2FcIDsKK+WFpeWPoyA+IGhhaXJpZ3VjaGlcIDsKK+WupOmVtyA+IHNoaXRzdWNob3VcIDsKK+WEquWnvyA+IHlhc2FzdWdhdGFcIDsKK+WFjuWPoyA+IG1pdHN1a3VjaGlcIDsKK+eUs+eriyA+IG1vdXNoaXRhdGVcIDsKK+aguOizqiA+IGtha3VzaGl0c3VcIDsKK+akjeeJqSA+IHNob2t1YnV0c3VcIDsKK+WyqeeHlSA+IGl3YXRzdWJhbWVcIDsKK+asoeOAhSA+IHRzdWdpdHN1Z2lcIDsKK+WEsuWPoyA+IG1vdWtlZ3VjaGlcIDsKK+ajn+eTpiA+IG11bmFnYXdhcmFcIDsKK+mrmOaelSA+IHRha2FtYWt1cmFcIDsKK+iEueiEmyA+IGZ1a3VyYWhhZ2lcIDsKK+mrmOabhyA+IHRha2FndW1vcmlcIDsKK+ahnOiKsSA+IHNha3VyYWJhbmFcIDsKK+ahkeiLuiA+IGt1d2FpY2hpZ29cIDsKK+iEmuiJsiA+IGt5YWt1c2hva3VcIDsKK+ahnOiCiSA+IHNha3VyYW5pa3VcIDsKK+iCqei7iiA+IGthdGFndXJ1bWFcIDsKK+WIpeOAhSA+IGJldHN1YmV0c3VcIDsKK+izqumHjyA+IHNoaXRzdXJ5b3VcIDsKK+eVnOauuiA+IGNoaWt1c2F0c3VcIDsKK+adnOm1kSA+IGhvdG90b2dpc3VcIDsKK+iEiOiEiCA+IG15YWt1bXlha3VcIDsKK+edgOOAhSA+IGNoYWt1Y2hha3VcIDsKK+allOW9oiA+IGt1c2FiaWdhdGFcIDsKK+ahnOe0mSA+IHNha3VyYWdhbWlcIDsKK+WIh+OAhSA+IHNldHN1c2V0c3VcIDsKK+eXheWupCA+IGJ5b3VzaGl0c3VcIDsKK+iKi+S+jSA+IGltb3phbXVyYWlcIDsKK+iCieizqiA+IG5pa3VzaGl0c3VcIDsKK+i/keOAhSA+IGNoaWthZGppa2FcIDsKK+WuneiIuSA+IHRha2FyYWJ1bmVcIDsKK+WxseahnCA+IHlhbWF6YWt1cmFcIDsKK+WBtOWupCA+IHNva3VzaGl0c3VcIDsKK+iGneaelSA+IGhpemFtYWt1cmFcIDsKK+S5s+mmliA+IGNoaWNoaWt1YmlcIDsKK+W4uOOAhSA+IHRzdW5lZHp1bmVcIDsKK+WtkOimjyA+IGhvdG90b2dpc3VcIDsKK+alteWKmyA+IGt5b2t1cnlva3VcIDsKK+i+u+OAhSA+IHRzdWppdHN1amlcIDsKK+ahkeeVkSA+IGt1d2FiYXRha2VcIDsKK+eVpeW8jyA+IHJ5YWt1c2hpa2lcIDsKK+WGveOAhSA+IHJldHN1cmV0c3VcIDsKK+aeleiosSA+IG1ha3VyYW1vdG9cIDsKK+WuneexpCA+IHRha2FyYWt1amlcIDsKK+WuneeusSA+IHRha2FyYWJha29cIDsKK+izquiNiSA+IHNoaWNoaWd1c2FcIDsKK+mqqOWjtyA+IGtvdHN1dHN1Ym9cIDsKK+Wuv+ebtCA+IHNodWt1Y2hva3VcIDsKK+WCmeS7mCA+IHNvbmFldHN1a2VcIDsKK+eVpeWlqiA+IHJ5YWt1ZGF0c3VcIDsKK+WxseW1kCA+IHlhbWFhcmFzaGlcIDsKK+advuiZqyA+IG1hdHN1bXVzaGlcIDsKK+S5s+izqiA+IG55dXVzaGl0c3VcIDsKK+S4oemaoyA+IHJ5b3Vkb25hcmlcIDsKK+WxoeWxoSA+IHNoaWJhc2hpYmFcIDsKK+e+pOmbgCA+IG11cmFzdXp1bWVcIDsKK+acqOizqiA+IG1va3VzaGl0c3VcIDsKK+Wun+eJqSA+IGppdHN1YnV0c3VcIDsKK+izqueoriA+IHNoaWNoaWd1c2FcIDsKK+S4i+mcsiA+IHNoaXRhdHN1eXVcIDsKK+eVnOWKmyA+IGNoaWt1cnlva3VcIDsKK+WvkuakvyA+IGthbnRzdWJha2lcIDsKK+izqueahCA+IHNoaXRzdXRla2lcIDsKK+ajmuWNuCA+IHRhbmFvcm9zaGlcIDsKK+ailOWtkCA+IGt1Y2hpbmFzaGlcIDsKK+mpgOWcsCA+IG1hc3NoaWd1cmFcIDsKK+WxseWIgCA+IHlhbWFnYXRhbmFcIDsKK+S4i+mBkyA+IHNoaXRhbWljaGlcIDsKK+S4jei6viA+IGJ1c2hpdHN1a2VcIDsKK+eUn+WNtSA+IG5hbWF0YW1hZ29cIDsKK+miqOiWrCA+IGthemVndXN1cmlcIDsKK+absuiqrCA+IGt5b2t1c2V0c3VcIDsKK+S4uOijuCA+IG1hcnVoYWRha2FcIDsKK+mjr+eykiA+IG1lc2hpdHN1YnVcIDsKK+eMq+i7iiA+IG5la29ndXJ1bWFcIDsKK+S4iei2iiA+IG1pdHN1a29zaGlcIDsKK+WuouaciCA+IGt5YWt1Z2V0c3VcIDsKK+aZgumzpSA+IGhvdG90b2dpc3VcIDsKK+mhlOiyjCA+IGthb2thdGFjaGlcIDsKK+WupOaWmSA+IHNoaXRzdXJ5b3VcIDsKK+WwuuWFqyA+IHNoYWt1aGFjaGlcIDsKK+iJtuOAhSA+IHRzdXlhdHN1eWFcIDsKK+adseeUtyA+IGF6dW1hb3Rva29cIDsKK+WvneWupCA+IHNoaW5zaGl0c3VcIDsKK+izquaouCA+IHNoaXRzdWJva3VcIDsKK+iCmOaelSA+IGhpamltYWt1cmFcIDsKK+S7j+a7hSA+IGJ1dHN1bWV0c3VcIDsKK+Wwj+WMhSA+IGtvZHp1dHN1bWlcIDsKK+WvhuWvhiA+IG1pdHN1bWl0c3VcIDsKK+WwseS4rSA+IG5ha2FuZHp1a3VcIDsKK+S4iuiThiA+IHV3YW11c2hpcm9cIDsKK+izquactCA+IHNoaXRzdWJva3VcIDsKK+iEseWKmyA+IGRhdHN1cnlva3VcIDsKK+izquacrSA+IHNoaWNoaWZ1ZGFcIDsKK+S4ieiPsSA+IG1pdHN1YmlzaGlcIDsKK+S7ruaelSA+IGthcmltYWt1cmFcIDsKK+S+m+WHuiA+IGt5b3VzaHV0c3VcIDsKK+WuruWupCA+IGt5dXVzaGl0c3VcIDsKK+aYpemcniA+IGhhcnVnYXN1bWlcIDsKK+mjn+eJqSA+IHNob2t1bW90c3VcIDsKK+aYlOmiqCA+IG11a2FzaGlmdXVcIDsKK+WuneWztiA+IHRha2FyYWppbWFcIDsKK+S7j+anmCA+IGhvdG9rZXNhbWFcIDsKK+iEmuWKmyA+IGt5YWt1cnlva3VcIDsKK+S4i+iBtyA+IHNoaXRhc2hva3VcIDsKK+absuevgCA+IGt5b2t1c2V0c3VcIDsKK+absuethiA+IGt5b2t1aGl0c3VcIDsKK+S4gOe6jyA+IGhpdG9tYXRvbWVcIDsKK+mjr+argyA+IG1lc2hpYml0c3VcIDsKK+iyneafsSA+IGthaWJhc2hpcmFcIDsKK+S4iuettSA+IHV3YW11c2hpcm9cIDsKK+absuebtCA+IGt5b2t1Y2hva3VcIDsKK+S4uOeTpiA+IG1hcnVnYXdhcmFcIDsKK+S4g+eriCA+IG5hbmFrYW1hZG9cIDsKK+S4gOeptCA+IGhpdG90c3VhbmFcIDsKK+Wtq+WomCA+IG1hZ29tdXN1bWVcIDsKK+S7j+aApyA+IGhvdG9rZXNob3VcIDsKK+mdmemdmSA+IHNoaXp1c2hpenVcIDsKK+Wun+WKmyA+IGppdHN1cnlva3VcIDsKK+absueOhyA+IGt5b2t1cml0c3VcIDsKK+Wkp+m8kyA+IG9vdHN1ZHp1bWlcIDsKK+eLkOiJsiA+IGtpdHN1bmVpcm9cIDsKK+eJueizqiA+IHRva3VzaGl0c3VcIDsKK+S4gOedoSA+IGhpdG9uZW11cmlcIDsKK+S4i+eUuiA+IHNoaXRhbWFjaGlcIDsKK+S6uuW/gyA+IGhpdG9nb2tvcm9cIDsKK+S4g+eUnyA+IHNoaWNoaXNob3VcIDsKK+eHlem6piA+IGthcmFzdW11Z2lcIDsKK+S4gOeVqiA+IGhpdG90c3VnYWlcIDsKK+eJqeiqniA+IG1vbm9nYXRhcmlcIDsKK+Wls+mBlCA+IG9uJyduYXRhY2hpXCA7CivmnKfmnIggPiBvYm9yb2R6dWtpXCA7CivniYfot5sgPiBrYXRhY2hpbmJhXCA7CivmnKvml6UgPiBtYXRzdWppdHN1XCA7CivmnJvmnIggPiBtb2NoaWR6dWtpXCA7Civkuozlv4MgPiBmdXRhZ29rb3JvXCA7Civpnanos6ogPiBrYWt1c2hpdHN1XCA7CivlpKfpmrwgPiBvb2hheWFidXNhXCA7CivmnIjmnIggPiB0c3VraWR6dWtpXCA7CivkuIDmuKEgPiBoaXRvd2F0YXJpXCA7CivlsaHjgIUgPiBzaGliYXNoaWJhXCA7CivmnZzlrocgPiBob3RvdG9naXN1XCA7Civlpr7ohbkgPiBtZWtha2ViYXJhXCA7Civpm7LpnJ4gPiBrdW1va2FzdW1pXCA7CivpnanooosgPiBrYXdhYnVrdXJvXCA7CivmnpDlh7ogPiBzZWtpc2h1dHN1XCA7CivmnpXlhYMgPiBtYWt1cmFtb3RvXCA7CivkuI3mnZ8gPiBmdXRzdXRzdWthXCA7CivnjKvmn7MgPiBuZWtveWFuYWdpXCA7Civmm7LmipggPiBreW9rdXNldHN1XCA7Civosrjku5ggPiBrYXNoaXRzdWtlXCA7Civni7jmsYEgPiB0YW51a2lqaXJ1XCA7CivkuI3mirEgPiBrYWthd2FyYXp1XCA7CivkuIDmiYAgPiBoaXRvdG9rb3JvXCA7Civmm7LlsLogPiBreW9rdXNoYWt1XCA7Civpm6ros6ogPiB5dWtpc2hpdHN1XCA7CivpoZTlvaIgPiBrYW9rYXRhY2hpXCA7CivniofniocgPiBoaXNoaWhpc2hpXCA7Civpm5vosYYgPiBoaXlva29tYW1lXCA7CivntrLpoK0gPiBhbWlnYXNoaXJhXCA7CivloanprZogPiBzaGlvemFrYW5hXCA7CivkuK3ln7cgPiBjaHV1c2hpdHN1XCA7CivlpI/omasgPiBuYXRzdW11c2hpXCA7Civntr7pjKYgPiBheWFuaXNoaWtpXCA7CivmnIjliKUgPiB0c3VraWJldHN1XCA7CivlparnlaUgPiBkYXRzdXJ5YWt1XCA7CivnuYHnuYEgPiBzaGlnZXNoaWdlXCA7Civng4/puqYgPiBrYXJhc3VtdWdpXCA7CivkuIDlkaggPiBoaXRvbWVndXJpXCA7Civng4/ps6kgPiBrYXJhc3ViYXRvXCA7CivoqKXoqKUgPiB0b3RzdXRvdHN1XCA7Civml4Xng48gPiB0YWJpZ2FyYXN1XCA7CivkuIPlhYkgPiBuYW5haGlrYXJpXCA7CivlqJjlqb8gPiBtdXN1bWVtdWtvXCA7Civml6XmsqEgPiBuaWNoaWJvdHN1XCA7CivntLDpm6ogPiBzYXNhbWV5dWtpXCA7CivpoK3liIYgPiBrYXNoaXJhYnVuXCA7CivmlpHniZsgPiBtYWRhcmF1c2hpXCA7Civnt5HoibIgPiByeW9rdXNob2t1XCA7Civml6XmnIggPiBuaWNoaWdldHN1XCA7Civml63ml6UgPiBreW9rdWppdHN1XCA7Civop5Los6ogPiBrYWt1c2hpdHN1XCA7CivpmqPntYQgPiB0b25hcmlndW1pXCA7Civng4/ph5EgPiBrYXJhc3VnYW5lXCA7Civpmrznp5EgPiBoYXlhYnVzYWthXCA7Civnianlv4MgPiBtb25vZ29rb3JvXCA7Civml4XmnpUgPiB0YWJpbWFrdXJhXCA7CivntIXpm4AgPiBiZW5pc3V6dW1lXCA7CivniLbmlrkgPiBjaGljaGlrYXRhXCA7CivlobXoiqUgPiBjaGlyaWFrdXRhXCA7Civpm6jnh5UgPiBhbWF0c3ViYW1lXCA7Civlprnlqb8gPiBpbW91dG9tdWtvXCA7Civpm6rnhZkgPiB5dWtpa2VtdXJpXCA7CivlparmjqAgPiBkYXRzdXJ5YWt1XCA7Civop5Lom5kgPiB0c3Vub2dhZXJ1XCA7CivlpLHmpa0gPiBzaGl0c3VneW91XCA7CivoqK3nq4sgPiBzZXRzdXJpdHN1XCA7Civpm5HniakgPiB6YXRzdWJ1dHN1XCA7CivnhrHng4ggPiBuZXRzdXJldHN1XCA7Civpmo/npZ4gPiBrYW4nJ25hZ2FyYVwgOwor6KO46bqmID4gaGFkYWthbXVnaVwgOwor6Zyc5pyIID4gc2hpbW90c3VraVwgOwor5aSi5p6VID4geXVtZW1ha3VyYVwgOwor5peF5b+DID4gdGFiaWdva29yb1wgOwor54qs5L6NID4gaW51emFtdXJhaVwgOwor6K2Y5YilID4gc2hpa2liZXRzdVwgOwor5aa+5Ye6ID4gc2hvdXNodXRzdVwgOwor57eR546JID4gcnlva3VneW9rdVwgOwor54OP6JuHID4ga2FyYXN1aGViaVwgOwor54m55Ye6ID4gdG9rdXNodXRzdVwgOwor57SZ6KKLID4ga2FtaWJ1a3Vyb1wgOwor6Zuq5p+zID4geXVraXlhbmFnaVwgOwor5pil5LyRID4gaGFydXlhc3VtaVwgOwor5pyI44CFID4gdHN1a2lkenVraVwgOwor6Kem55m6ID4gc2hva3VoYXRzdVwgOwor57aZ54i2ID4gbWFtYWNoaWNoaVwgOwor54OP57SZID4ga2FyYXN1Z2FtaVwgOwor5pel5LuPID4gbmljaGlmdXRzdVwgOwor5o6b6ZW3ID4ga2FrYXJpY2hvdVwgOwor6Z205LiLID4ga3V0c3VzaGl0YVwgOwor57iu5bC6ID4gc2h1a3VzaGFrdVwgOwor5aWz5Li7ID4gb24nJ25hYXJ1amlcIDsKK+aVteWksSA+IHRla2lzaGl0c3VcIDsKK+aVmeWupCA+IGt5b3VzaGl0c3VcIDsKK+e1tua7hSA+IHpldHN1bWV0c3VcIDsKK+imgeefsyA+IGthbmFtZWlzaGlcIDsKK+ijj+ipsSA+IHVyYWJhbmFzaGlcIDsKK+eyieiWrCA+IGtvbmFndXN1cmlcIDsKK+e4ruWItyA+IHNodWt1c2F0c3VcIDsKK+Wcn+ixmiA+IHRzdWNoaWJ1dGFcIDsKK+eDiOeDiCA+IHJldHN1cmV0c3VcIDsKK+aVkeWHuiA+IGt5dXVzaHV0c3VcIDsKK+WjgeWcnyA+IGthYmV0c3VjaGlcIDsKK+e1kOacqyA+IGtldHN1bWF0c3VcIDsKK+imquafsSA+IG95YWJhc2hpcmFcIDsKK+eym+eymyA+IHNodWt1c2h1a3VcIDsKK+WbveiomyA+IGt1bmluYW1hcmlcIDsKK+e2v+WfgyA+IHdhdGFib2tvcmlcIDsKK+imquaXpSA+IHNoaW4nJ25pY2hpXCA7CivngbznhrEgPiBzaGFrdW5ldHN1XCA7Civpm4fkuLsgPiB5YXRvaW51c2hpXCA7CivntpnlqJggPiBtYW1hbXVzdW1lXCA7CivnhLzlpLEgPiBzaG91c2hpdHN1XCA7CivoqLPlh7ogPiB5YWt1c2h1dHN1XCA7Civng4jml6UgPiByZXRzdWppdHN1XCA7Civnt6Dku5ggPiBzaGltZXRzdWtlXCA7CivoqKPliKUgPiBrZXRzdWJldHN1XCA7CivnrZLps6UgPiB0c3V0c3Vkb3JpXCA7CivooovogLMgPiBmdWt1cm9taW1pXCA7CivntZDlrp8gPiBrZXRzdWppdHN1XCA7Civntprlh7ogPiB6b2t1c2h1dHN1XCA7Civmv4PntKsgPiBrb211cmFzYWtpXCA7Civmup3pvKAgPiBkb2J1bmV6dW1pXCA7CivnspvmrrogPiBzaHVrdXNhdHN1XCA7CivooYDohIggPiBrZXRzdW15YWt1XCA7CivpjozpvKwgPiBrYW1haXRhY2hpXCA7CivooovniakgPiBmdWt1cm9tb25vXCA7Civopb/lj6MgPiBuaXNoaWd1Y2hpXCA7CivmkZjlh7ogPiB0ZWtpc2h1dHN1XCA7Civnr4Dnr4AgPiBmdXNoaWJ1c2hpXCA7CivnrZLoopYgPiB0c3V0c3Vzb2RlXCA7Civns7jljbAgPiBpdG9qaXJ1c2hpXCA7CivngrrkurogPiBoaXRvdG9uYXJpXCA7Civngq3kv7UgPiBzdW1pZGF3YXJhXCA7CivonIDprYIgPiBob3RvdG9naXN1XCA7CivnsbPmiYAgPiBrb21lZG9rb3JvXCA7Civnq6/ov5EgPiBoYXNoaWRqaWthXCA7CivpjpbpjowgPiBrdXNhcmlnYW1hXCA7Civmu4Xoo4IgPiBtZXRzdXJldHN1XCA7Civmva7nhZkgPiBzaGlva2VtdXJpXCA7CivnrYboiIwgPiBoaXRzdXpldHN1XCA7CivpjKbpr4kgPiBuaXNoaWtpZ29pXCA7Civmu5HohLEgPiBrYXRzdWRhdHN1XCA7CivmjqDlpaogPiByeWFrdWRhdHN1XCA7CivnrYbnrZIgPiBmdWRlZHp1dHN1XCA7Civmj4/lh7ogPiBieW91c2h1dHN1XCA7CivlnJ/lo4EgPiB0c3VjaGlrYWJlXCA7CivmiYvntpogPiB0ZXRzdWR6dWtpXCA7CivonqLnn7MgPiBob3RhcnVpc2hpXCA7CivonJzonIIgPiBtaXRzdWJhY2hpXCA7CivnrrHmn7MgPiBoYWtveWFuYWdpXCA7CivnrrHmnpUgPiBoYWtvbWFrdXJhXCA7CivnsbPkv7UgPiBrb21lZGF3YXJhXCA7CivonILonJwgPiBoYWNoaW1pdHN1XCA7Civnq7nnrZIgPiB0YWtlZHp1dHN1XCA7Civnq6/nq68gPiBoYXNoaWJhc2hpXCA7CivnrpLmmJ8gPiBob3VraWJvc2hpXCA7CivonbbnlaogPiBjaG91dHN1Z2FpXCA7Civmi6DmiYAgPiB5b3JpZG9rb3JvXCA7Civpu5LpvKAgPiBrdXJvbmV6dW1pXCA7Civooajlj6MgPiBvbW90ZWd1Y2hpXCA7Civnq4jnpZ4gPiBrYW1hZG9nYW1pXCA7Civpu5LprqogPiBrdXJvbWFndXJvXCA7CivnsIflh7ogPiB6b2t1c2h1dHN1XCA7Civooajlh7ogPiBoeW91c2h1dHN1XCA7CivllJDooaMgPiBrYXJha29yb21vXCA7CivnrYbml4EgPiBmdWRlenVrdXJpXCA7CivpvaPokL0gPiBrb21hb3Rvc2hpXCA7CivpjKjntrEgPiBpa2FyaWR6dW5hXCA7CivnrZLlvaIgPiB0c3V0c3VnYXRhXCA7Civmt7Hnt5EgPiBmdWthbWlkb3JpXCA7CivpvLvolqwgPiBoYW5hZ3VzdXJpXCA7CivmiYDmn4QgPiB0b2tvcm9nYXJhXCA7CivmjIHkuLsgPiBtb2NoaW51c2hpXCA7Civmi5nliqMgPiBzZXRzdXJldHN1XCA7Civom43nn7MgPiBob3RhcnVpc2hpXCA7CivmvILlpLEgPiBoeW91c2hpdHN1XCA7Civph53pvKAgPiBoYXJpbmV6dW1pXCA7CivmtYHos6ogPiByeXV1c2hpY2hpXCA7Civmir3lh7ogPiBjaHV1c2h1dHN1XCA7CivonJzmnIggPiBtaXRzdWdldHN1XCA7CivnqbrmtpkgPiBzb3JhbmFtaWRhXCA7CivmuIvmuIsgPiBzaGlidXNoaWJ1XCA7Civmu7Llh7ogPiBzaGluc2h1dHN1XCA7Civnpo/ooosgPiBmdWt1YnVrdXJvXCA7CivnrZLlhYggPiB0c3V0c3VzYWtpXCA7CivnrYblipsgPiBoaXRzdXJ5b2t1XCA7CivmioTlh7ogPiBzaG91c2h1dHN1XCA7CivmiJHlv4MgPiB3YWdha29rb3JvXCA7Civpu5Loi7ogPiBrdXJvaWNoaWdvXCA7Civnp6nnpoQgPiBjaGl0c3Vyb2t1XCA7Civlj4jpmqMgPiBtYXRhZG9uYXJpXCA7Civph5Hpi48gPiBrYW5hYmFzYW1pXCA7Civmh5DmiYsgPiBmdXRva29yb2RlXCA7Civpu5Lnt5EgPiBrdXJvbWlkb3JpXCA7CivmhYTng4ggPiByaXRzdXJldHN1XCA7Civpi7jmra8gPiBub2tvZ2lyaWJhXCA7CivmuozliYwgPiBoYXRzdXJhdHN1XCA7Civmg5/npZ4gPiBrYW4nJ25hZ2FyYVwgOwor5rW354eVID4gdW1pdHN1YmFtZVwgOwor6YeR6KKLID4ga2FuYWJ1a3Vyb1wgOwor5rK56JmrID4gYWJ1cmFtdXNoaVwgOwor6YqA54uQID4gZ2luZ2l0c3VuZVwgOwor5Y2X6aKoID4gbWluYW1pa2F6ZVwgOwor6JmQ5q66ID4gZ3lha3VzYXRzdVwgOwor5rC06Y+hID4gbWl6dWthZ2FtaVwgOwor5rS754mpID4ga2F0c3VidXRzdVwgOwor5Y216YWSID4gdGFtYWdvemFrZVwgOwor56+A44CFID4gZnVzaGlidXNoaVwgOwor6YO96bOlID4gbWl5YWtvZG9yaVwgOwor5rG66KOCID4ga2V0c3VyZXRzdVwgOwor6Jas566xID4ga3VzdXJpYmFrb1wgOwor6bqm55WRID4gbXVnaWJhdGFrZVwgOwor6buS5ryGID4ga29rdXNoaXRzdVwgOwor5ZaJ5LuPID4gbm9kb2JvdG9rZVwgOwor6YeR6IG+ID4ga2FuYXRzdW5ib1wgOwor5ZC45rm/ID4ga3l1dXNoaXRzdVwgOwor5rC06JasID4gbWl6dWd1c3VyaVwgOwor5rOJ54axID4gaXp1bWluZXRzdVwgOwor5rW05a6kID4geW9rdXNoaXRzdVwgOwor5oSb5aiYID4gbWFuYW11c3VtZVwgOwor5Y+k54u4ID4gZnVydWRhbnVraVwgOwor5rKz54OPID4ga2F3YWdhcmFzdVwgOwor56eB5a6bID4gd2F0YXNoaWF0ZVwgOwor5b+F572wID4gaGl0c3ViYXRzdVwgOwor56Wd5pelID4gc2h1a3VqaXRzdVwgOwor5ZCK5qmLID4gdHN1cmliYXNoaVwgOwor5b2i6KixID4ga2F0YWJha2FyaVwgOwor5rK45rK4ID4gZnV0c3VmdXRzdVwgOwor5rOi5p6VID4gbmFtaW1ha3VyYVwgOwor56KH57axID4gaWthcmlkenVuYVwgOwor5rC056ekID4gbWl6dWJha2FyaVwgOwor5rWB5aSxID4gcnl1dXNoaXRzdVwgOwor5rW45Ye6ID4gc2hpbnNodXRzdVwgOwor6YmL5bGRID4ga2FuJyduYWt1enVcIDsKK+iPsemkhSA+IGhpc2hpbW9jaGlcIDsKK+WQieaXpSA+IGtpY2hpbmljaGlcIDsKK+iWrOaMhyA+IGt1c3VyaXl1YmlcIDsKK+WQhOaWuSA+IG9ub29ub2dhdGFcIDsKK+mHkeanjCA+IGthbmFkenVjaGlcIDsKK+egguiiiyA+IHN1bmFidWt1cm9cIDsKK+WShOWShCA+IHRvdHN1dG90c3VcIDsKK+WJjemgrSA+IG1hZWdhc2hpcmFcIDsKK+a1geWHuiA+IHJ5dXVzaHV0c3VcIDsKK+a0u+WKmyA+IGthdHN1cnlva3VcIDsKK+WNteeEvCA+IHRhbWFnb3lha2lcIDsKK+awtOeFmSA+IG1penVrZW11cmlcIDsKK+mBk+mBkyA+IG1pY2hpbWljaGlcIDsKK+W8t+iFsCA+IHRzdXlvZ29zaGlcIDsKK+a0u+S7jyA+IGthdHN1YnV0c3VcIDsKK+WInemcnCA+IGhhdHN1c2hpbW9cIDsKK+WPs+W3piA+IG1pZ2loaWRhcmlcIDsKK+WQhOWupCA+IGtha3VzaGl0c3VcIDsKK+edgOmbqiA+IGNoYWt1c2V0c3VcIDsKK+W/hea7hSA+IGhpdHN1bWV0c3VcIDsKK+mHjOW/gyA+IHNhdG9nb2tvcm9cIDsKK+iRteelrSA+IGFvaW1hdHN1cmlcIDsKK+ayueWjtyA+IGFidXJhdHN1Ym9cIDsKK+a4i+OAhSA+IHNoaWJ1c2hpYnVcIDsKK+WIu+i2syA+IGtpemFtaWFzaGlcIDsKK+awtOaelSA+IG1penVtYWt1cmFcIDsKK+WLheethiA+IGNob2t1aGl0c3VcIDsKK+mwr+mbsiA+IGl3YXNoaWd1bW9cIDsKK+W/g+afhCA+IGtva29yb2dhcmFcIDsKK+edpuiogCA+IG11dHN1Z290b1wgOwor5Y+O5aWqID4gc2h1dWRhdHN1XCA7CivmgZDllp0gPiBreW91a2F0c3VcIDsKK+ebrumgrSA+IG1lZ2FzaGlyYVwgOwor6I2J6aSgID4ga3VzYW1vY2hpXCA7CivliofogbcgPiBnZWtpc2hva3VcIDsKK+iWrOS7oyA+IGt1c3VyaWRhaVwgOwor5by355u0ID4ga3lvdWNob2t1XCA7CivlkITlhoogPiBrYWt1c2F0c3VcIDsKK+mAmuiqrCA+IHRzdXVzZXRzdVwgOwor5rKz5Y+jID4ga2F3YWd1Y2hpXCA7CivpgIbos4ogPiBneWFrdXpva3VcIDsKK+mBk+iNiSA+IG1pY2hpa3VzYVwgOwor5q2756WeID4gc2hpbmlnYW1pXCA7CivpganogbcgPiB0ZWtpc2hva3VcIDsKK+asoOiQvSA+IGtldHN1cmFrdVwgOwor5be76a6oID4gbWFraXp1c2hpXCA7Civli53njocgPiBzaG91cml0c3VcIDsKK+WHuui7jSA+IHNodXRzdWd1blwgOwor5Y2K5pelID4gaGFuJyduaWNoaVwgOwor5Y6E5bm0ID4geWFrdWRvc2hpXCA7CivliaXohLEgPiBoYWt1ZGF0c3VcIDsKK+W+kuahnCA+IGFkYXpha3VyYVwgOwor5Y2D5pelID4gc2VuJyduaWNoaVwgOwor5Yil6KGMID4gYmV0c3VneW91XCA7CivokL3nnYAgPiByYWt1Y2hha3VcIDsKK+mAhuilsiA+IGd5YWt1c2h1dVwgOwor5q+S5q66ID4gZG9rdXNhdHN1XCA7Civnorrlrp8gPiBrYWt1aml0c3VcIDsKK+mHjeWHuiA+IGp1dXNodXRzdVwgOwor5Y+j5YWIID4ga3VjaGlzYWtpXCA7Civlj6PlhYMgPiBrdWNoaW1vdG9cIDsKK+W8j+ebriA+IHNoaWtpbW9rdVwgOwor5Y2T5oqcID4gdGFrdWJhdHN1XCA7CivmsqHlhaUgPiBib3RzdW55dXVcIDsKK+WPs+S4iyA+IG1pZ2lzaGl0YVwgOwor5by354OIID4ga3lvdXJldHN1XCA7CivpgLjohLEgPiBpdHN1ZGF0c3VcIDsKK+eZvem7kiA+IHNoaXJva3Vyb1wgOwor55u06YGUID4gamlraXRhdHN1XCA7CivmgYvku4cgPiBrb2lnYXRha2lcIDsKK+ebtOmAsiA+IGNob2t1c2hpblwgOwor55u06YCaID4gY2hva3V0c3V1XCA7Civlib3nqoMgPiBoeW91c2V0c3VcIDsKK+WJsueuuCA+IHdhcmliYXNoaVwgOwor5YWN6bucID4gbWVuY2h1dHN1XCA7Civph5Hku48gPiBrYW5hYnV0c3VcIDsKK+eZvem3uiA+IHNoaXJhc2FnaVwgOwor6Ya15Ye6ID4ga3lvc2h1dHN1XCA7Civnm7TovYQgPiBjaG9ra2F0c3VcIDsKK+WNoOW4qyA+IHVyYW5haXNoaVwgOwor55qu6Z20ID4ga2F3YWd1dHN1XCA7CivmgKXliIcgPiBreXV1c2V0c3VcIDsKK+mFieW5tCA+IHRvcmlkb3NoaVwgOwor55yf6KO4ID4gbWFwcGFkYWthXCA7Civlh7rooYAgPiBzaHVra2V0c3VcIDsKK+eZvemxmiA+IHNoaXJvZ2lzdVwgOwor6YGT562LID4gbWljaGlzdWppXCA7CivpgZPnq68gPiBtaWNoaWJhdGFcIDsKK+WNuOWjsiA+IG9yb3NoaXVyaVwgOwor5b+Y5aSxID4gYm91c2hpdHN1XCA7CivolK3lj6MgPiBrYWdlZ3VjaGlcIDsKK+WNteWkpyA+IHRhbWFnb2RhaVwgOwor5Yid6IqxID4gaGF0c3VoYW5hXCA7CivpgZPnqIsgPiBtaWNoaW5vcmlcIDsKK+eZvemrqiA+IGhha3VoYXRzdVwgOwor56OU5YiRID4gaGFyaXRzdWtlXCA7CivlvabmmJ8gPiBoaWtvYm9zaGlcIDsKK+i+m+i+oyA+IHNoaW5yYXRzdVwgOwor5q2j54mpID4gc2hvdWJ1dHN1XCA7Civlk4HjgIUgPiBzaGluYWppbmFcIDsKK+WHuuiXjSA+IHNodXRzdXJhblwgOwor5bm06IulID4gdG9zaGl3YWthXCA7CivpgIboh6MgPiBneWFrdXNoaW5cIDsKK+W5s+iKnSA+IGhpcmFzaGliYVwgOwor5qiq6Z2iID4geW9rb3RzdXJhXCA7Civnm7Toqq0gPiBjaG9rdWRva3VcIDsKK+WHneihgCA+IGd5b3VrZXRzdVwgOwor6YCD6IWwID4gbmlnZWdvc2hpXCA7Civlv4PlpKogPiB0b2tvcm90ZW5cIDsKK+W/g+WkqSA+IHRva29yb3RlblwgOwor55u06KizID4gY2hva3V5YWt1XCA7CivliJ3ogLMgPiBoYXRzdW1pbWlcIDsKK+eZvembqiA+IGhha3VzZXRzdVwgOwor5Ye66ImyID4gc2h1c3Nob2t1XCA7Civlu4Pnlr4gPiBoYWlzaGl0c3VcIDsKK+WKh+eDiCA+IGdla2lyZXRzdVwgOwor6YCf562GID4gc29rdWhpdHN1XCA7CivmsLTlj6MgPiBtaXp1Z3VjaGlcIDsKK+auuuaIriA+IHNhdHN1cmlrdVwgOwor5b6M5a6kID4ga291c2hpdHN1XCA7Civok4Tlpr4gPiBjaGlrdXNob3VcIDsKK+WHuue+pCA+IHNodXRzdWd1blwgOwor6YCy55m6ID4gc2hpbnBhdHN1XCA7CivojLbooosgPiBjaGFidWt1cm9cIDsKK+WIneepuiA+IGhhdHN1em9yYVwgOwor5qiq6YGTID4geW9rb21pY2hpXCA7CivokL3mnK0gPiByYWt1c2F0c3VcIDsKK+WIruebriA+IGthdHN1bW9rdVwgOwor55m96YWSID4gc2hpcm96YWtlXCA7Civli5jmiYAgPiBrYW5kb2tvcm9cIDsKK+i/veeqgSA+IHRzdWl0b3RzdVwgOwor5byP5pyNID4gc2hpa2lmdWt1XCA7CivljZTlipsgPiBreW91cnlva3VcIDsKK+efs+aMgSA+IGlzaGltb2NoaVwgOwor6JC95pelID4gcmFrdWppdHN1XCA7CivpgLjniakgPiBpY2hpbW90c3VcIDsKK+ebtOiFuCA+IGNob2t1Y2hvdVwgOwor5q205pelID4gcmVraWppdHN1XCA7CivpgLLniakgPiBzaGlubW90c3VcIDsKK+WHuueriyA+IHNodXR0YXRzdVwgOwor55yf562GID4gc2hpbnBpdHN1XCA7CivmraPmnIggPiBzaG91Z2F0c3VcIDsKK+WHnee4riA+IGd5b3VzaHVrdVwgOwor552A55uuID4gY2hha3Vtb2t1XCA7Civlha3orZggPiByb2t1c2hpa2lcIDsKK+WHnee1kCA+IGd5b3VrZXRzdVwgOwor55y855a+ID4gZ2Fuc2hpdHN1XCA7CivmrYzmnpUgPiB1dGFtYWt1cmFcIDsKK++8uOe3miA+IGVra3VzdXNlblwgOwor55+l5oKJID4gY2hpc2hpdHN1XCA7CivliKXniakgPiBiZXRzdW1vbm9cIDsKK+ebtOe1kCA+IGNob2trZXRzdVwgOwor5Yed56uLID4gZ3lvdXJpdHN1XCA7CivluLjnr4AgPiB0b2tvYnVzaGlcIDsKK+aomeitmCA+IGh5b3VzaGlraVwgOwor5b6M5Ye6ID4ga291c2h1dHN1XCA7CivliJ3niakgPiBoYXRzdW1vbm9cIDsKK+iKsemBkyA+IGhhbmFtaWNoaVwgOwor5Ye655m6ID4gc2h1cHBhdHN1XCA7CivljJflj6MgPiBraXRhZ3VjaGlcIDsKK+W5tOeOiSA+IHRvc2hpZGFtYVwgOwor5qmZ6ImyID4gZGFpZGFpaXJvXCA7Civnn6nlt64gPiBrYW5lemFzaGlcIDsKK+WNg+S4hyA+IGNoaXlvcm96dVwgOwor5byT5bymID4geXVtaWR6dXJ1XCA7Civnm7LnqbQgPiBtZWt1cmFhbmFcIDsKK+iNieeukiA+IGt1c2Fib3VraVwgOwor5Ye654++ID4gc2h1dHN1Z2VuXCA7Civlh53nnYAgPiBneW91Y2hha3VcIDsKK+WKo+W8sSA+IHJldHN1amFrdVwgOwor55yf546HID4gc2hpbnNvdHN1XCA7Civoi6bomasgPiBuaWdhbXVzaGlcIDsKK+api+iEmiA+IGt5b3VreWFrdVwgOwor5bem6IWVID4gaGlkYXJpdWRlXCA7Civpq5jpvL4gPiB0YWthaWJpa2lcIDsKK+ecn+eJqSA+IHNoaW5idXRzdVwgOwor5byU5a6iID4gY2hvdWt5YWt1XCA7Civnmb7olqwgPiBoeWFrdXlha3VcIDsKK+iMtuetkiA+IGNoYWR6dXRzdVwgOwor5byf5aiYID4gb3RvbXVzdW1lXCA7CivnnIHnlaUgPiBzaG91cnlha3VcIDsKK+mAhua1gSA+IGd5YWt1cnl1dVwgOwor5q2M5b+DID4gdXRhZ29rb3JvXCA7CivpgLHmnKsgPiBzaHV1bWF0c3VcIDsKK+edgOawtyA+IGNoYWt1aHlvdVwgOwor55m96I+KID4gc2hpcmFnaWt1XCA7CivlubTms6IgPiB0b3NoaW5hbWlcIDsKK+ato+WupCA+IHNlaXNoaXRzdVwgOwor6I+K5pyIID4ga2lrdWR6dWtpXCA7CivliKXmpa0gPiBiZXRzdWd5b3VcIDsKK+W5tOavjiA+IHRvc2hpZ290b1wgOwor6YCx5pelID4gc2h1dWppdHN1XCA7CivoirHooZcgPiBoYW5hbWFjaGlcIDsKK+W3nee4gSA+IGthd2FidWNoaVwgOwor5b2i5LujID4ga2F0YXNoaXJvXCA7Civnmb3oibIgPiBoYWt1c2hva3VcIDsKK+WIpeajnyA+IGJldHN1bXVuZVwgOwor5YaK56uLID4gc2FrdXJpdHN1XCA7Civls7bpoqggPiBzaGltYWthemVcIDsKK+W8seWNkiA+IGpha3Vzb3RzdVwgOwor5YOV6YGUID4gYm9rdXRhY2hpXCA7Civpq63pnaIgPiBoaWdlZHp1cmFcIDsKK+W8teWKmyA+IGNob3VyeW9rdVwgOwor6Luf6LOqID4gbmFuc2hpdHN1XCA7Civoj7HlvaIgPiBoaXNoaWdhdGFcIDsKK+mAsuaNlyA+IHNoaW5jaG9rdVwgOwor5YO76KqsID4gaGVraXNldHN1XCA7CivojLbnlZEgPiBjaGFiYXRha2VcIDsKK+aoque2sSA+IHlva29kenVuYVwgOwor5YWO6ICzID4gdXNhZ2ltaW1pXCA7Civlh7rmrKAgPiBzaHVra2V0c3VcIDsKK+WztumZsCA+IHNoaW1ha2FnZVwgOwor55+i5Y2wID4geWFqaXJ1c2hpXCA7CivnnYDmnI0gPiBjaGFrdWZ1a3VcIDsKK+W7uuWdqiA+IHRhdGV0c3Vib1wgOwor5Ymv5bC6ID4gZnVrdXNoYWt1XCA7CivliJ3mmKUgPiBoYXRzdWhhcnVcIDsKK+WFseeriyA+IGt5b3VyaXRzdVwgOwor6Iqx6I+xID4gaGFuYWJpc2hpXCA7Civlu7blnaogPiBub2JldHN1Ym9cIDsKK+altemHjyA+IGt5b2t1cnlvdVwgOwor6Imv6K2YID4gcnlvdXNoaWtpXCA7CivlvJ/liIYgPiBvdG91dG9idW5cIDsKK+iJsuiqvyA+IHNoaWtpY2hvdVwgOwor6bO25Y+jID4gdG9iaWd1Y2hpXCA7Civlhavnpo8gPiBoYWNoaWZ1a3VcIDsKK+iJsuimmiA+IHNoaWtpa2FrdVwgOwor55+z5LuPID4gc2VraWJ1dHN1XCA7CivmrbPlh7ogPiBzYWlzaHV0c3VcIDsKK+ebtOa1gSA+IGNob2t1cnl1dVwgOwor6IqN6JasID4gc2hha3V5YWt1XCA7Civlh7rmnK0gPiBzaHVzc2F0c3VcIDsKK+WJsuWilyA+IHdhcmltYXNoaVwgOwor6Iqd6I2JID4gc2hpYmFrdXNhXCA7CivnnJ/mnbEgPiBtYWhpZ2FzaGlcIDsKK+aouOebtCA+IGJva3VjaG9rdVwgOwor5Yml5aWqID4gaGFrdWRhdHN1XCA7CivluZXmnKsgPiBiYWt1bWF0c3VcIDsKK+akjumqqCA+IHRzdWlrb3RzdVwgOwor5q2j5Ye6ID4gc2Vpc2h1dHN1XCA7Civlh7bml6UgPiBreW91aml0c3VcIDsKK+mBiuWksSA+IHl1dXNoaXRzdVwgOwor6LuK6J2mID4ga3VydW1hZWJpXCA7CivliJ3lvbkgPiBoYXRzdXlha3VcIDsKK+mBuOWHuiA+IHNlbnNodXRzdVwgOwor6YCG5b+DID4gZ3lha3VzaGluXCA7Civov6vmjIEgPiBzZXJpbW9jaGlcIDsKK+edgOW6iiA+IGNoYWt1c2hvdVwgOwor5bm05byxID4gdG9zaGl5b3dhXCA7CivlsbHptokgPiB5YW1hdXp1cmFcIDsKK++8t+adryA+IGRhYnVydWhhaVwgOwor552A5bitID4gY2hha3VzZWtpXCA7CivovrvmnK0gPiB0c3VqaWZ1ZGFcIDsKK+mBqeWIhyA+IHRla2lzZXRzdVwgOwor55m655eFID4gaGF0c3VieW91XCA7Civnl4XorZggPiBieW91c2hpa2lcIDsKK+WJteWHuiA+IHNvdXNodXRzdVwgOwor5Yil5a6kID4gYmVzc2hpdHN1XCA7CivlubTltakgPiB0b3NoaWthc2FcIDsKK+WIneWtqyA+IGhhdHN1bWFnb1wgOwor5Ye65b6hID4gc2h1dHN1Z3lvXCA7Civlub3lrqQgPiB5dXVzaGl0c3VcIDsKK+eZveeOiSA+IHNoaXJhdGFtYVwgOwor55u05pKDID4gY2hva3VnZWtpXCA7CivlubTlr4QgPiB0b3NoaXlvcmlcIDsKK+amjuiMuCA+IGVub2tpdGFrZVwgOwor6Ii56JmrID4gZnVuYW11c2hpXCA7Civnmb3nhrEgPiBoYWt1bmV0c3VcIDsKK+alteiWhCA+IGt5b2t1aGFrdVwgOwor55m954aKID4gc2hpcm9rdW1hXCA7CivluIbmn7EgPiBob2Jhc2hpcmFcIDsKK+WJsuS7mCA+IHdhcml0c3VrZVwgOwor5Yid5aSiID4gaGF0c3V5dW1lXCA7CivliIblrqQgPiBidW5zaGl0c3VcIDsKK+W6tuWHuiA+IHNob3NodXRzdVwgOwor5YWl5ruFID4gbnl1dW1ldHN1XCA7CivlibLkuIsgPiB3YXJpc2hpdGFcIDsKK+W4guadviA+IGljaGltYXRzdVwgOwor5YSq55S3ID4geWFzYW90b2tvXCA7CivoirHnlLogPiBoYW5hbWFjaGlcIDsKK+i9ouauuiA+IHJla2lzYXRzdVwgOwor55mI55a+ID4gaGFpc2hpdHN1XCA7CivnnJ/lrp8gPiBzaGluaml0c3VcIDsKK+eZvea7nSA+IHNoaXJhdGFraVwgOwor6YCf5Y+jID4gaGF5YWt1Y2hpXCA7CivpgLLlhaUgPiBzaGluJydueXV1XCA7CivlhLLniakgPiBtb3VrZW1vbm9cIDsKK+iFsOmrmCA+IGtvc2hpZGFrYVwgOwor5qmL5qGBID4gaGFzaGlnZXRhXCA7Civpqqjos6ogPiBrb3NzaGl0c3VcIDsKK+iFsOmqqCA+IGtvc2hpYm9uZVwgOwor5L+u6aO+ID4gc2h1dXNob2t1XCA7Civnmb3mtaogPiBzaGlyYW5hbWlcIDsKK+eZvea1nCA+IHNoaXJhaGFtYVwgOwor6Im256iuID4gdHN1eWFkYW5lXCA7CivpgJ/lipsgPiBzb2t1cnlva3VcIDsKK+i+u+W6lyA+IHRzdWppbWlzZVwgOwor55m95rOiID4gc2hpcmFuYW1pXCA7CivojLbmiYAgPiBjaGFkb2tvcm9cIDsKK+W6g+WPoyA+IGhpcm9rdWNoaVwgOwor5bC66aqoID4gc2hha2tvdHN1XCA7Civlh7rloYEgPiBzaHV0c3VydWlcIDsKK+ebruW6hyA+IG1hYmlzYXNoaVwgOwor55m95rC0ID4gc2hpcm9taXp1XCA7CivoibLnpZ4gPiBzaGlraXNoaW5cIDsKK+WFpeakjSA+IG55dXVzaG9rdVwgOwor55u05bGeID4gY2hva3V6b2t1XCA7CivliJ3lh7ogPiBzaG9zaHV0c3VcIDsKK+WHoeWksSA+IGJvbnNoaXRzdVwgOwor5YWt5pyIID4gcm9rdWdhdHN1XCA7CivlhaXmnK0gPiBueXV1c2F0c3VcIDsKK+mAgeWHuiA+IHNvdXNodXRzdVwgOwor5bGx6YGTID4geWFtYW1pY2hpXCA7CivpgIDlh7ogPiB0YWlzaHV0c3VcIDsKK+alveevgCA+IGdha3VzZXRzdVwgOwor5bi45aSPID4gdG9rb25hdHN1XCA7CivnlLPpgZQgPiBzaGludGF0c3VcIDsKK+iLpeadviA+IHdha2FtYXRzdVwgOwor5bGA6ZW3ID4ga3lva3VjaG91XCA7CivprLznk6YgPiBvbmlnYXdhcmFcIDsKK+W4neWupCA+IHRlaXNoaXRzdVwgOwor5bqK5LiLID4geXVrYXNoaXRhXCA7CivnnYDkv6EgPiBjaGFrdXNoaW5cIDsKK+eZveacrSA+IHNoaXJvZnVkYVwgOwor5YiH5YWlID4gc2V0c3VueXV1XCA7CivmqJnmnK0gPiBoeW91c2F0c3VcIDsKK+WHuuWLlSA+IHNodXRzdWRvdVwgOwor6L+r5YqbID4gaGFrdXJ5b2t1XCA7CivlsZHpiYQgPiBrdXp1dGV0c3VcIDsKK+mrque2sSA+IGthbWlkenVuYVwgOwor6YCQ5LiAID4gY2hpa3VpY2hpXCA7CivkvrXpo58gPiBzaGluc2hva3VcIDsKK+iKseawtyA+IGhhbmFnb29yaVwgOwor5L+E6ZuoID4gbml3YWthYW1lXCA7CivohqDos6ogPiBrb3VzaGl0c3VcIDsKK+iMtuWupCA+IGNoYXNoaXRzdVwgOwor55m95pelID4gaGFrdWppdHN1XCA7CivkvqDpqqggPiBreW91a290c3VcIDsKK+WwkemjnyA+IHNob3VzaG9rdVwgOwor5bez5bm0ID4gaGViaWRvc2hpXCA7CivoibbniakgPiB0c3V5YW1vbm9cIDsKK+Wwj+mjnyA+IHNob3VzaG9rdVwgOwor5Ya35aW0ID4gaGl5YXlha2tvXCA7CivlsI/poK0gPiBrb2dhc2hpcmFcIDsKK+WxiOi+sSA+IGt1dHN1am9rdVwgOwor6aqo6IacID4ga290c3VtYWt1XCA7CivnlLrop5IgPiBtYWNoaWthZG9cIDsKK+i+u+WQmyA+IHRzdWppZ2ltaVwgOwor55yB5YqbID4gc2hvdXJ5b2t1XCA7Civpr4nluZ8gPiBrb2lub2JvcmlcIDsKK+i1pOmwryA+IGFrYWl3YXNoaVwgOwor6aqo6IKJID4ga290c3VuaWt1XCA7CivlhoXlrqQgPiBuYWlzaGl0c3VcIDsKK+W3neWyuCA+IGthd2FnaXNoaVwgOwor5bmV5LiLID4gbWFrdXNoaXRhXCA7Civnm67ljbAgPiBtZWppcnVzaGlcIDsKK+Wwu+i7vSA+IHNoaXJpZ2FydVwgOwor55S36KGGID4gb3Rva29zaHV1XCA7CivpsJDlj6MgPiB3YW5pZ3VjaGlcIDsKK+S/oei2iiA+IHNoaW4nJ2V0c3VcIDsKK+S/iumAuCA+IHNodW4nJ2l0c3VcIDsKK+WxnuiolyA+IHNob2t1dGFrdVwgOwor55uy5YikID4gbWVrdXJhYmFuXCA7Civog7jpqqggPiBreW91a290c3VcIDsKK+WvnemjnyA+IHNoaW5zaG9rdVwgOwor6Imy5rKiID4gc2hpa2l0YWt1XCA7Civlha3lsLogPiByb2t1c2hha3VcIDsKK+i+m+WPoyA+IGthcmFrdWNoaVwgOwor6Imy5qyyID4gc2hpa2l5b2t1XCA7CivmpbXnhrEgPiBnb2t1bmV0c3VcIDsKK+i3s+iZqyA+IHRvYmltdXNoaVwgOwor55eb54OIID4gdHN1dXJldHN1XCA7Civoh6Pnr4AgPiBzaGluc2V0c3VcIDsKK+mqqOeusSA+IGtvdHN1YmFrb1wgOwor55qH5a6kID4ga291c2hpdHN1XCA7Civkv5foqqwgPiB6b2t1c2V0c3VcIDsKK+WEsuW9uSA+IG1vdWtleWFrdVwgOwor5L6b6L+wID4ga3lvdWp1dHN1XCA7Civls7vng4ggPiBzaHVucmV0c3VcIDsKK+eUt+iFuSA+IG90b2tvYmFyYVwgOwor5qW15rWBID4ga3lva3VyeXV1XCA7CivnlaXnq6AgPiByeWFrdXNob3VcIDsKK+WGjeWHuiA+IHNhaXNodXRzdVwgOwor5bed5Y+jID4ga2F3YWd1Y2hpXCA7Civoia/ml6UgPiByeW91aml0c3VcIDsKK+eVpeensCA+IHJ5YWt1c2hvdVwgOwor5bem5YmNID4gaGlkYXJpbWFlXCA7Civlr77os6ogPiB0YWlzaGl0c3VcIDsKK+Wwj+iqrCA+IHNob3VzZXRzdVwgOwor5bem5YWaID4gaGlkYXJpdG91XCA7CivohIfpgZMgPiB3YWtpbWljaGlcIDsKK+ajueenpCA+IHNhb2Jha2FyaVwgOwor5qGc6LKdID4gc2FrdXJhZ2FpXCA7Civnl4XmsqEgPiBieW91Ym90c3VcIDsKK+WFseWKmyA+IGt5b3VyeW9rdVwgOwor6Ii55qmLID4gZnVuYWJhc2hpXCA7Civpq6rmsrkgPiBrYW1pYWJ1cmFcIDsKK+eXheatvyA+IGJ5b3Vib3RzdVwgOwor5L616J2VID4gc2hpbnNob2t1XCA7Civnl4XmrKAgPiBieW91a2V0c3VcIDsKK+WFq+WIhyA+IHlhdHN1Z2lyaVwgOwor5YWl5YqbID4gbnl1dXJ5b2t1XCA7CivnlLrnrYsgPiBtYWNoaXN1amlcIDsKK+iJsuaFviA+IHNoaWtpeW9rdVwgOwor6ISC6LazID4gYWJ1cmFhc2hpXCA7CivnlLrnq4sgPiBjaG91cml0c3VcIDsKK+iEmuiouyA+IGt5YWt1Y2h1dVwgOwor5qW15pyIID4gZ29rdWdldHN1XCA7CivohILos6ogPiBzaGlzaGl0c3VcIDsKK+iIn+apiyA+IGZ1bmFoYXNoaVwgOwor5L6b6KGAID4ga3lvdWtldHN1XCA7Civlt53kuIsgPiBrYXdhc2hpbW9cIDsKK+Wun+mMsiA+IGppdHN1cm9rdVwgOwor55Wc55SfID4gY2hpa3VzaG91XCA7CivoibLlvLEgPiBzaGlraWpha3VcIDsKK+eZuuWHuiA+IGhhc3NodXRzdVwgOwor6IWw57iEID4ga29zaGluYXdhXCA7CivnlJ/nr4AgPiBuYW1hYnVzaGlcIDsKK+WwseiBtyA+IHNodXVzaG9rdVwgOwor6Laz6IWwID4gYXNoaWtvc2hpXCA7CivlhaXku48gPiBueXV1YnV0c3VcIDsKK+WFpeS6pCA+IGlyaW1hamlyaVwgOwor6IWw57SQID4ga29zaGloaW1vXCA7Civkv67nr4kgPiBzaHV1Y2hpa3VcIDsKK+iCiemjnyA+IG5pa3VzaG9rdVwgOwor5L+h57SEID4gc2hpbicneWFrdVwgOwor6ISx6JC9ID4gZGF0c3VyYWt1XCA7CivkvZPos6ogPiB0YWlzaGl0c3VcIDsKK+i8qeWHuiA+IGhhaXNodXRzdVwgOwor5L+u56WTID4gc2h1dWZ1dHN1XCA7CivlrabplqUgPiBnYWt1YmF0c3VcIDsKK+S9jeiyoCA+IGt1cmFpbWFrZVwgOwor6IuX5LujID4gbmF3YXNoaXJvXCA7CivlsbHnlLcgPiB5YW1hb3Rva29cIDsKK+ahnOiNiSA+IHNha3VyYXNvdVwgOwor5a6i6LazID4ga3lha3Vhc2hpXCA7CivlsZ7nm64gPiBzaG9rdW1va3VcIDsKK+S/l+ethiA+IHpva3VoaXRzdVwgOwor5bCP6IG3ID4gc2hvdXNob2t1XCA7CivlhJ/ljbQgPiBzaG91a3lha3VcIDsKK+alveW+iyA+IGdha3VyaXRzdVwgOwor5qGc6ImyID4gc2FrdXJhaXJvXCA7CivlsI/nvoogPiBrb2hpdHN1amlcIDsKK+Wun+izqiA+IGppc3NoaXRzdVwgOwor6IKY6YmEID4gaGlqaXRldHN1XCA7Civos4PppIUgPiBjaGlubW9jaGlcIDsKK+WuneiynSA+IHRha2FyYWdhaVwgOwor6Lu95Y+jID4ga2FydWt1Y2hpXCA7CivotoXohLEgPiBjaG91ZGF0c3VcIDsKK+eUt+eJqSA+IG90b2tvbW9ub1wgOwor6IG36ZW3ID4gc2hva3VjaG91XCA7Civku4/poZQgPiBob3Rva2VnYW9cIDsKK+S7j+mgmCA+IGZ1dHN1cnlvdVwgOwor55Wl5q20ID4gcnlha3VyZWtpXCA7Civpqqjmn4QgPiBrb3RzdWdhcmFcIDsKK+i1pOiJsiA+IHNla2lzaG9rdVwgOwor5bCP56+AID4gc2hvdXNldHN1XCA7CivlsLvnmZYgPiBzaGlyaWt1c2VcIDsKK+iGoOa8hiA+IGtvdXNoaXRzdVwgOwor5bO25b2xID4gc2hpbWFrYWdlXCA7CivmpbXlsI8gPiBreW9rdXNob3VcIDsKK+S/teeJqSA+IGh5b3Vtb3RzdVwgOwor55Sf54iqID4gbmFtYWR6dW1lXCA7Civmnb7poqggPiBtYXRzdWthemVcIDsKK+i2hee1tiA+IGNob3V6ZXRzdVwgOwor6Ii55a6kID4gc2Vuc2hpdHN1XCA7CivohbrnhrEgPiBzZW4nJ25ldHN1XCA7CivmnZ/pq6ogPiBzb2t1aGF0c3VcIDsKK+i7ouWHuiA+IHRlbnNodXRzdVwgOwor6ISp56u5ID4gc2h1dWNoaWt1XCA7Civls7bls7YgPiBzaGltYWppbWFcIDsKK+eVpeacjSA+IHJ5YWt1ZnVrdVwgOwor5bO25bGxID4gc2hpbWF5YW1hXCA7CivprLHli4MgPiB1dHN1Ym90c3VcIDsKK+adsembsiA+IHNoaW5vbm9tZVwgOwor55Sf5ruFID4gc2hvdW1ldHN1XCA7Civkv5fniakgPiB6b2t1YnV0c3VcIDsKK+iEseehqyA+IGRhdHN1cnl1dVwgOwor6ISI57WhID4gbXlha3VyYWt1XCA7CivlraborZggPiBnYWt1c2hpa2lcIDsKK+S+teeVpSA+IHNoaW5yeWFrdVwgOwor5a2m6KqsID4gZ2FrdXNldHN1XCA7CivogbfosqwgPiBzaG9rdXNla2lcIDsKK+iJtuS6iyA+IHRzdXlhZ290b1wgOwor546J6bSrID4gdGFtYXNoaWdpXCA7Civnk6bniYggPiBrYXdhcmFiYW5cIDsKK+WCt+WPoyA+IGtpenVndWNoaVwgOwor5a+G57SEID4gbWl0c3V5YWt1XCA7CivlrabooZMgPiBnYWt1anV0c3VcIDsKK+i7kuS4iyA+IG5va2lzaGl0YVwgOwor6LuK5LujID4ga3VydW1hZGFpXCA7CivlgJ/mlpkgPiBzaGFrdXJ5b3VcIDsKK+izh+izqiA+IHNoaXNoaXRzdVwgOwor5Lq66YGUID4gaGl0b3RhY2hpXCA7CivlgJnmlocgPiBzb3Vyb3VidW5cIDsKK+WvuueUtyA+IHRlcmFvdG9rb1wgOwor5qW15YyXID4ga3lva3Vob2t1XCA7CivohLHnjYQgPiBkYXRzdWdva3VcIDsKK+eUuuaWuSA+IG1hY2hpa2F0YVwgOwor55eb5YiHID4gdHN1dXNldHN1XCA7Civpq5jlnY8gPiB0YWthdHN1a2lcIDsKK+iyuOizgyA+IGthc2hpY2hpblwgOwor5YCJ5pW3ID4ga3VyYXNoaWtpXCA7CivkuZ7po58gPiBrb3RzdWppa2lcIDsKK+S8uOe4riA+IHNoaW5zaHVrdVwgOwor5Lq66LOqID4gaGl0b2ppY2hpXCA7CivmnJ3po58gPiBjaG91c2hva3VcIDsKK+eWteWPoyA+IGtpenVndWNoaVwgOwor5bO75YilID4gc2h1bmJldHN1XCA7CivlsYrmm7ggPiB0b2Rva2VzaG9cIDsKK+WuouetiyA+IGt5YWt1c3VqaVwgOwor5pyN6aO+ID4gZnVrdXNob2t1XCA7CivlgpHlh7ogPiBrZXNzaHV0c3VcIDsKK+S8keiBtyA+IGt5dXVzaG9rdVwgOwor55Sy5omAID4ga2FuZG9rb3JvXCA7CivkuozpgZMgPiBmdXRhbWljaGlcIDsKK+iIueS4uyA+IGZ1bmFudXNoaVwgOwor6aOf6YCaID4gc2hva3V0c3V1XCA7CivlrqLnqK4gPiBreWFrdWRhbmVcIDsKK+iziuiZkCA+IHpva3VneWFrdVwgOwor5Lmz6YmiID4gbnl1dWJhY2hpXCA7CivmnIjpoY0gPiBnZXRzdWdha3VcIDsKK+aciOmggyA+IHRzdWtpZ29yb1wgOwor5L2c55S3ID4gc2FrdW90b2tvXCA7CivnlLflvbkgPiBvdG9rb3lha3VcIDsKK+S4ium2siA+IGpvdWJpdGFraVwgOwor6IWV5p6VID4gdWRlbWFrdXJhXCA7CivotaTnhrEgPiBzZWtpbmV0c3VcIDsKK+iIjOWFiCA+IHNoaXRhc2FraVwgOwor6IW55oyBID4gaGFyYW1vY2hpXCA7Civnj43oqqwgPiBjaGluc2V0c3VcIDsKK+S7mOiQvSA+IHRzdWtlb2NoaVwgOwor6IWw5o6bID4ga29zaGlrYWtlXCA7CivkuYXpl4ogPiBreXV1a2F0c3VcIDsKK+WvhueMnyA+IG1pdHN1cnlvdVwgOwor55Sz5bm0ID4gc2FydWRvc2hpXCA7CivmnZDos6ogPiB6YWlzaGl0c3VcIDsKK+advuidiSA+IG1hdHN1emVtaVwgOwor5Lqs6KGoID4ga3lvdW9tb3RlXCA7CivohJrms6ggPiBreWFrdWNodXVcIDsKK+aiheaapiA+IHVtZWdveW9taVwgOwor5L2c54mpID4gc2FrdW1vdHN1XCA7Civos57nvbAgPiBzaG91YmF0c3VcIDsKK+WtkOe+iiA+IGtvaGl0c3VqaVwgOwor5a6k55S6ID4gbXVyb21hY2hpXCA7CivlsI/mm7IgPiBzaG91a3lva3VcIDsKK+aknOWHuiA+IGtlbnNodXRzdVwgOwor5L+K5oqcID4gc2h1bmJhdHN1XCA7Civlr4bmvIEgPiBtaXRzdXJ5b3VcIDsKK+iCieethiA+IG5pa3VoaXRzdVwgOwor6IWw5byxID4ga29zaGl5b3dhXCA7Civog4bnjokgPiBraW1vdHRhbWFcIDsKK+advuiMuCA+IG1hdHN1dGFrZVwgOwor5qGc5qGDID4gc2FrdXJhbmJvXCA7Civlr4Lmu4UgPiBqYWt1bWV0c3VcIDsKK+acrOizqiA+IGhvbnNoaXRzdVwgOwor5LuU576KID4ga29oaXRzdWppXCA7CivnlKPlrqQgPiBzYW5zaGl0c3VcIDsKK+iFsOW4gyA+IGtvc2hpbnVub1wgOwor6IWw5be7ID4ga29zaGltYWtpXCA7CivkvYPnha4gPiB0c3VrdWRhbmlcIDsKK+S+teaOoCA+IHNoaW5yeWFrdVwgOwor5qGB5qmLID4ga2V0YWJhc2hpXCA7CivmnLToqKUgPiBib2t1dG90c3VcIDsKK+mjn+iZqyA+IHNob2t1Y2h1dVwgOwor5p2+6ISCID4gbWF0c3V5YW5pXCA7CivkuIPpm6MgPiBzaGljaGluYW5cIDsKK+S9jua5vyA+IHRlaXNoaXRzdVwgOwor55S35Z2CID4gb3Rva296YWthXCA7Civlrr/ms4ogPiBzaHVrdWhha3VcIDsKK+S8r+eItSA+IGhha3VzaGFrdVwgOwor5qKT5byTID4gYXp1c2F5dW1pXCA7CivppIXogowgPiBtb2NoaWhhZGFcIDsKK+WxheWupCA+IGt5b3NoaXRzdVwgOwor5pyo6KilID4gYm9rdXRvdHN1XCA7CivpoY3pmpsgPiBoaXRhaWdpd2FcIDsKK+eVmeWIpSA+IHJ5dXViZXRzdVwgOwor5L+h5a6fID4gc2hpbmppdHN1XCA7CivotIjniakgPiBva3VyaW1vbm9cIDsKK+mnkOaXpSA+IGNodXVuaWNoaVwgOwor5p+/5riLID4ga2FraXNoaWJ1XCA7CivkuIvph5EgPiBzaGl0YWdhbmVcIDsKK+S4rei2iiA+IGNodXVnb3NoaVwgOwor5aqS6LOqID4gYmFpc2hpdHN1XCA7Civkub7ojYkgPiBob3NoaWd1c2FcIDsKK+eQtOeIqiA+IGtvdG9kenVtZVwgOwor6IWw5Z6jID4ga29zaGlnYWtpXCA7Civkv4LlrpggPiBrYWthcmlrYW5cIDsKK+iEiOaQjyA+IG15YWt1aGFrdVwgOwor546J6JmrID4gdGFtYW11c2hpXCA7CivnlJ/llL4gPiBuYW1hdHN1YmFcIDsKK+mjn+iCiSA+IHNob2t1bmlrdVwgOwor5p2+56ygID4gbWF0c3VrYXNhXCA7CivohIjmi40gPiBteWFrdWhha3VcIDsKK+S4g+mBkyA+IHNoaWNoaWRvdVwgOwor55Sz5YWlID4gbW91c2hpaXJlXCA7CivlrqLmp5ggPiBreWFrdXNhbWFcIDsKK+S5s+iJsiA+IG55dXVzaG9rdVwgOwor5puy6Kq/ID4ga3lva3VjaG91XCA7CivlgJ/kuLsgPiBrYXJpbnVzaGlcIDsKK+S5vuiCiSA+IGhvc2hpbmlrdVwgOwor5a6/5paZID4gc2h1a3VyeW91XCA7Civlrp/mpa0gPiBqaXRzdWd5b3VcIDsKK+Wuv+aVtSA+IHNodWt1dGVraVwgOwor5LiD6LyqID4gc2hpY2hpcmluXCA7CivnlKPlh7ogPiBzYW5zaHV0c3VcIDsKK+S9leaXpSA+IG5hbicnbmljaGlcIDsKK+izqueCuSA+IHNoaXRzdXRlblwgOwor6ISz5a6kID4gbm91c2hpdHN1XCA7CivlsbHkvI8gPiB5YW1hYnVzaGlcIDsKK+Wun+agqiA+IGppdHN1a2FidVwgOwor5L615aWqID4gc2hpbmRhdHN1XCA7CivnlLrkuK0gPiBtYWNoaW5ha2FcIDsKK+eUuuS4piA+IG1hY2hpbmFtaVwgOwor5LiK6LOqID4gam91c2hpdHN1XCA7CivkuIvosrwgPiBzaGl0YWJhcmlcIDsKK+mjn+e0hSA+IHNob2t1YmVuaVwgOwor5L6g5a6iID4ga3lvdWt5YWt1XCA7Civmm7TooaMgPiBrb3JvbW9nYWVcIDsKK+mjn+ezpyA+IHNob2t1cnlvdVwgOwor5Lit6KGoID4gbmFrYW9tb3RlXCA7CivlsI/lp5EgPiBrb2p1dXRvbWVcIDsKK+agg+acqCA+IHRvY2hpbm9raVwgOwor6ISC5oCnID4gYWJ1cmFzaG91XCA7CivlgInkuLsgPiBrdXJhbnVzaGlcIDsKK+S4g+izoiA+IHNoaWNoaWtlblwgOwor5bC75Y+WID4gc2hpcml0b3JpXCA7CivmoLzlvI8gPiBrYWt1c2hpa2lcIDsKK+aYvOmztiA+IGhpcnV0b25iaVwgOwor5Lqu55u0ID4gcnlvdWNob2t1XCA7CivmmqLpgZQgPiBjaG91dGF0c3VcIDsKK+iFsOWFgyA+IGtvc2hpbW90b1wgOwor6ISH5beuID4gd2FraXphc2hpXCA7CivmnYnnrrggPiBzdWdpYmFzaGlcIDsKK+S7mOeEvCA+IHRzdWtleWFraVwgOwor5a2m5q6WID4gZ2FrdXNob2t1XCA7CivmoKrlvI8gPiBrYWJ1c2hpa2lcIDsKK+afj+anmSA+IGJ5YWt1c2hpblwgOwor54us6YWMID4gZG9rdXNoYWt1XCA7Civlr4XlubQgPiB0b3JhZG9zaGlcIDsKK+izquaoqSA+IHNoaWNoaWtlblwgOwor5bCP5ZKEID4ga29iYW5hc2hpXCA7CivkuLjohbAgPiBtYXJ1Z29zaGlcIDsKK+aYvOmjryA+IGhpcnVtZXNoaVwgOwor5LyQ5pyoID4gYmF0c3Vib2t1XCA7Civkv4rlgpEgPiBzaHVua2V0c3VcIDsKK+iBt+attCA+IHNob2t1cmVraVwgOwor5LmL57meID4gc2hpbicnbnl1dVwgOwor5p625qmLID4ga2FrZWhhc2hpXCA7Civmn4/mnKggPiBrYXNoaXdhZ2lcIDsKK+S7ruapiyA+IGthcmliYXNoaVwgOwor6LGG57KSID4gbWFtZXRzdWJ1XCA7CivkvJHml6UgPiBreXV1aml0c3VcIDsKK+S4reiFsCA+IGNodXVnb3NoaVwgOwor5LiK6JasID4gdXdhZ3VzdXJpXCA7Civlr4blrqQgPiBtaXNzaGl0c3VcIDsKK+eOieeroCA+IGd5b2t1c2hvdVwgOwor5L615YWlID4gc2hpbicnbnl1dVwgOwor5a6/5bCGID4gc2h1a3VzaG91XCA7CivlsIbljZIgPiBzaG91c290c3VcIDsKK+S4oeiIjCA+IHJ5b3V6ZXRzdVwgOwor6IG35qWtID4gc2hva3VneW91XCA7CivlsI7lh7ogPiBkb3VzaHV0c3VcIDsKK+Wuv+WtpiA+IHNodWt1Z2FrdVwgOwor5bCP5YaKID4gc2hvdXNhdHN1XCA7CivkuKHohJogPiByeW91a3lha3VcIDsKK+iEseWHuiA+IGRhc3NodXRzdVwgOwor5a6i5bitID4ga3lha3VzZWtpXCA7CivkuIvojYkgPiBzaGl0YWt1c2FcIDsKK+WwhOWHuiA+IHNoYXNodXRzdVwgOwor5pqm6KGTID4gcmVraWp1dHN1XCA7CivmnLTnm7QgPiBib2t1Y2hva3VcIDsKK+i1pOWcnyA+IGFrYXRzdWNoaVwgOwor6ISF5ZadID4ga3lvdWthdHN1XCA7CivkuK3ntbYgPiBjaHV1emV0c3VcIDsKK+S4i+iFuSA+IHNoaXRhYmFyYVwgOwor6ISx5L+XID4gZGF0c3V6b2t1XCA7Civmn4/miYsgPiBrYXNoaXdhZGVcIDsKK+S5vueJqSA+IGhvc2hpbW9ub1wgOwor5a6f5a2mID4gaml0c3VnYWt1XCA7CivmoZ/kv7UgPiBzYW5kYXdhcmFcIDsKK+eMn+iJsiA+IHJ5b3VzaG9rdVwgOwor5LiA6ISIID4gaWNoaW15YWt1XCA7CivotaTlj6MgPiBzZWtpZ3VjaGlcIDsKK+S4reeriyA+IGNodXVyaXRzdVwgOwor6IG35o6MID4gc2hva3VzaG91XCA7CivlrqTlpJYgPiBzaGl0c3VnYWlcIDsKK+WvkuWNtSA+IGthbnRhbWFnb1wgOwor5bO244CFID4gc2hpbWFqaW1hXCA7Civos6rmhJ8gPiBzaGl0c3VrYW5cIDsKK+agvOWIpSA+IGtha3ViZXRzdVwgOwor5qC45YqbID4ga2FrdXJ5b2t1XCA7CivkuKHnq68gPiByeW91aGFzaGlcIDsKK+S4oeeriyA+IHJ5b3VyaXRzdVwgOwor6ICQ5rm/ID4gdGFpc2hpdHN1XCA7CivkuIvntJAgPiBzaGl0YWhpbW9cIDsKK+S7iuaXpSA+IGtvbicnbmljaGlcIDsKK+aXqemjryA+IGhheWFtZXNoaVwgOwor6LK45pa5ID4ga2FzaGlrYXRhXCA7Civkub7mub8gPiBrYW5zaGl0c3VcIDsKK+mhjee4gSA+IGdha3VidWNoaVwgOwor5LiA57KSID4gaGl0b3RzdWJ1XCA7Civlq6HmtYEgPiBjaGFrdXJ5dXVcIDsKK+absuebriA+IGt5b2t1bW9rdVwgOwor6aOf5qyyID4gc2hva3V5b2t1XCA7Civmn7TlnqMgPiBzaGliYWdha2lcIDsKK+S6ruaciCA+IHJ5b3VnZXRzdVwgOwor5LiL56m/ID4gc2hpdGFiYWtpXCA7CivkuIDnr4AgPiBoaXRvZnVzaGlcIDsKK+mdqemdtCA+IGthd2FndXRzdVwgOwor5Lit55WlID4gY2h1dXJ5YWt1XCA7CivnirbooosgPiBqb3VidWt1cm9cIDsKK+eJqemHjyA+IGJ1dHN1cnlvdVwgOwor5pyr5rWBID4gbWF0c3VyeXV1XCA7CivmoKrkuLsgPiBrYWJ1bnVzaGlcIDsKK+S4i+efsyA+IHNoaXRhaXNoaVwgOwor6aOv5pmCID4gbWVzaGlkb2tpXCA7CivkvZzku5ggPiBzYWt1ZHp1a2VcIDsKK+S4iueevCA+IHV3YW1hYnV0YVwgOwor5Lyv5Y+UID4gaGFrdXNodWt1XCA7CivniKrpnakgPiB0c3VtYWthd2FcIDsKK+WupOWGhSA+IHNoaXRzdW5haVwgOwor5a6/5Li7ID4geWFkb251c2hpXCA7CivkuYXmv7YgPiBreXV1a2F0c3VcIDsKK+S6jOaciCA+IGZ1dGF0c3VraVwgOwor5pel6YyyID4gbmljaGlyb2t1XCA7CivkuIDnnqUgPiBpY2hpYmV0c3VcIDsKK+S7pOWupCA+IHJlaXNoaXRzdVwgOwor5L2T5LitID4ga2FyYWRhanV1XCA7Civku7Llpb0gPiBuYWtheW9zaGlcIDsKK+mjn+aWmSA+IHNob2t1cnlvdVwgOwor6Kq/6auqID4gY2hvdWhhdHN1XCA7Civnianos6ogPiBidXNzaGl0c3VcIDsKK+aXqemBkyA+IGhheWFtaWNoaVwgOwor5paw6ZuqID4gc2hpbnNldHN1XCA7CivniYfpgZMgPiBrYXRhbWljaGlcIDsKK+eJueiorSA+IHRva3VzZXRzdVwgOwor5LuP5a2mID4gYnV0c3VnYWt1XCA7CivpnLLpnJwgPiB0c3V5dWppbW9cIDsKK+acreadnyA+IHNhdHN1dGFiYVwgOwor5aSP6bOlID4gbmF0c3Vkb3JpXCA7Civos6rllY8gPiBzaGl0c3Vtb25cIDsKK+eLrOeriyA+IGRva3VyaXRzdVwgOwor5pyI5qyhID4gdHN1a2luYW1pXCA7CivorKzoqqwgPiBieXV1c2V0c3VcIDsKK+WtpuWNkiA+IGdha3Vzb3RzdVwgOwor5puy5rWBID4ga3lva3VyeXV1XCA7Civpo5/mhb4gPiBzaG9rdXlva3VcIDsKK+S4gOeJqSA+IGljaGltb3RzdVwgOwor5aW06LypID4geWF0c3ViYXJhXCA7CivlrablipsgPiBnYWt1cnlva3VcIDsKK+S6ruWvnyA+IHJ5b3VzYXRzdVwgOwor5Lit5qyhID4gbmFrYXRzdWdpXCA7Civos6rliLggPiBzaGljaGlrZW5cIDsKK+WtpOWFkCA+IG1pbmFzaGlnb1wgOwor5pen6K2YID4ga3l1dXNoaWtpXCA7CivkurrlprsgPiBoaXRvZHp1bWFcIDsKK+aWsOmHiCA+IHNoaW5zaGFrdVwgOwor5pel6Ku+ID4gbmljaGlkYWt1XCA7Civml6foqqwgPiBreXV1c2V0c3VcIDsKK+iCoeS4iyA+IG1hdGFzaGl0YVwgOwor54+N5a6iID4gY2hpbmt5YWt1XCA7CivlpJbpnaIgPiBzb3RvZHp1cmFcIDsKK+aYpeiJsiA+IHNodW5zaG9rdVwgOwor57+M5pyIID4geW9rdWdldHN1XCA7CivogbTlipsgPiBjaG91cnlva3VcIDsKK+S6rOWlsyA+IGt5b3VvbicnbmFcIDsKK+S4suafvyA+IGt1c2hpZ2FraVwgOwor5Lmd5oqYID4ga3l1dXNldHN1XCA7Civnv4zml6UgPiB5b2t1aml0c3VcIDsKK+aWn+mFjCA+IHNoaW5zaGFrdVwgOwor5Lih5qW1ID4gcnlvdWt5b2t1XCA7Civku4/lkI0gPiBidXRzdW15b3VcIDsKK+eJueiJsiA+IHRva3VzaG9rdVwgOwor5Lqh5aSxID4gYm91c2hpdHN1XCA7Civpo5/lrqIgPiBzaG9ra3lha3VcIDsKK+eItuimqiA+IGNoaWNoaW95YVwgOwor5Luu5L2PID4ga2FyaXp1bWFpXCA7Civkuoblr58gPiByeW91c2F0c3VcIDsKK+mbqumdtCA+IHl1a2lndXRzdVwgOwor54++5Ye6ID4gZ2Vuc2h1dHN1XCA7Civku4/lipsgPiBidXRzdXJpa2lcIDsKK+iqv+mBlCA+IGNob3V0YXRzdVwgOwor5LiL5qeYID4gc2hpbW96YW1hXCA7CivnubDotoogPiBrdXJpa29zaGlcIDsKK+eJqeiFsCA+IG1vbm9nb3NoaVwgOwor5LiJ5qSPID4gbWl0c3VtYXRhXCA7CivkuKHml6UgPiByeW91aml0c3VcIDsKK+advuWOnyA+IG1hdHN1YmFyYVwgOwor6LOD5YCfID4gY2hpbnNoYWt1XCA7Civnhp/po58gPiBqdWt1c2hva3VcIDsKK+aWsOiqrCA+IHNoaW5zZXRzdVwgOwor5LuY5Lq6ID4gdHN1a2ViaXRvXCA7CivmlrDoqLMgPiBzaGluJyd5YWt1XCA7CivmlrDoqK0gPiBzaGluc2V0c3VcIDsKK+eOieWwhiA+IGd5b2t1c2hvdVwgOwor5pyI5b2xID4gdHN1a2lrYWdlXCA7CivmnIjlvaIgPiB0c3VraWdhdGFcIDsKK+S4g+abnCA+IHNoaWNoaXlvdVwgOwor5LiA5pyIID4gaGl0b3RzdWtpXCA7CivlpKnos6ogPiB0ZW5zaGl0c3VcIDsKK+S4i+aVtyA+IHNoaXRhamlraVwgOwor5LiD5pifID4gc2hpY2hpc2VpXCA7CivmmJ/nqbogPiBob3NoaXpvcmFcIDsKK+eJueethiA+IHRva3VoaXRzdVwgOwor5LiA5pelID4gdHN1aXRhY2hpXCA7CivkurrkvJ0gPiBoaXRvZHp1dGVcIDsKK+eLkOeBqyA+IGtpdHN1bmViaVwgOwor54iG6KOCID4gYmFrdXJldHN1XCA7Civnibnnq4sgPiB0b2t1cml0c3VcIDsKK+S6uuS7mCA+IGhpdG9kenVraVwgOwor6Z2S6JCNID4gYW91a2lrdXNhXCA7CivlpLHoqIAgPiBzaGl0c3VnZW5cIDsKK+mbqumBkyA+IHl1a2ltaWNoaVwgOwor6ZuR6YyyID4gemF0c3Vyb2t1XCA7CivlpbPohbkgPiBvbicnbmFiYXJhXCA7Civpo5/ljZMgPiBzaG9rdXRha3VcIDsKK+eGsemHjyA+IG5ldHN1cnlvdVwgOwor6Zuq6L6xID4gc2V0c3Vqb2t1XCA7CivmlrDolqwgPiBzaGluJyd5YWt1XCA7CivpoK3moKogPiBhdGFtYWthYnVcIDsKK+WkseihgCA+IHNoaWtrZXRzdVwgOwor5pqm5pyIID4gcmVraWdldHN1XCA7CivlpInos6ogPiBoZW5zaGl0c3VcIDsKK+mjn+WHuiA+IGhhbWlkYXNoaVwgOwor5aSc6KmxID4geW9iYW5hc2hpXCA7CivkuIDmirkgPiBpY2hpbWF0c3VcIDsKK+WkqeiiiyA+IHRlbmJ1a3Vyb1wgOwor6Z2057SQID4ga3V0c3VoaW1vXCA7Civmmqbml6UgPiByZWtpaml0c3VcIDsKK+ips+i/sCA+IHNob3VqdXRzdVwgOwor6aOf5YK3ID4gc2hva3VzaG91XCA7CivnibnnmbogPiB0b2t1aGF0c3VcIDsKK+mdtOevpiA+IGt1dHN1YmVyYVwgOwor5LiL5b25ID4gc2hpdGF5YWt1XCA7CivkuKHlsrggPiByeW91Z2lzaGlcIDsKK+absuWtpiA+IGt5b2t1Z2FrdVwgOwor54af6YGUID4ganVrdXRhdHN1XCA7CivpnbTnroYgPiBrdXRzdWJlcmFcIDsKK+S4keW5tCA+IHVzaGlkb3NoaVwgOwor6Zyy6I2JID4gdHN1eXVrdXNhXCA7CivoqZXph4ggPiBoeW91c2hha3VcIDsKK+S4gOW+iyA+IGljaGlyaXRzdVwgOwor54mp55mCID4gYnV0c3VyeW91XCA7Civpoqjlj6MgPiBrYXphZ3VjaGlcIDsKK+Wkj+idiSA+IG5hdHN1emVtaVwgOwor6Zye6I2JID4ga2FzdW1pc291XCA7CivniafnlZwgPiBib2t1Y2hpa3VcIDsKK+iqv+iJsiA+IGNob3VzaG9rdVwgOwor54S86aSFID4geWFraW1vY2hpXCA7CivmnKvlg5ogPiBiYXRzdXJ5b3VcIDsKK+iou+mHiCA+IGNodXVzaGFrdVwgOwor6Kmz6KqsID4gc2hvdXNldHN1XCA7CivmlrDnt5EgPiBzaGlucnlva3VcIDsKK+WkseiEmiA+IHNoaWtreWFrdVwgOwor5aSx6IG3ID4gc2hpc3Nob2t1XCA7CivmlrDntIQgPiBzaGluJyd5YWt1XCA7CivlpI/oj4ogPiBuYXRzdWdpa3VcIDsKK+e4nuibhyA+IHNoaW1haGViaVwgOwor5Lit5ZOyID4gY2h1dXRldHN1XCA7CivoqLPov7AgPiB5YWt1anV0c3VcIDsKK+aWsOeviSA+IHNoaW5jaGlrdVwgOwor5aSP6I2JID4gbmF0c3VndXNhXCA7CivnjonkuLIgPiB0YW1hZ3VzaGlcIDsKK+S4reWPoyA+IG5ha2FndWNoaVwgOwor5aWz55mWID4gb24nJ25hZ3VzZVwgOwor5ael5qGcID4gdWJhemFrdXJhXCA7CivkuK3ljZIgPiBjaHV1c290c3VcIDsKK+S4i+WdgiA+IHNoaW1vc2FrYVwgOwor6aKo5LiLID4ga2F6YXNoaW1vXCA7CivpnJ7ntrIgPiBrYXN1bWlhbWlcIDsKK+S4oeWPoyA+IHJ5b3VndWNoaVwgOwor54iq55quID4gdHN1bWFrYXdhXCA7CivniIbnq7kgPiBiYWt1Y2hpa3VcIDsKK+aXpeeLrCA+IG5pY2hpZG9rdVwgOwor5pen54mpID4ga3l1dWJ1dHN1XCA7CivnjaPlgY8gPiBrZW1vbm9oZW5cIDsKK+mcsueoiyA+IHRzdXl1aG9kb1wgOwor6Kq/56+AID4gY2hvdXNldHN1XCA7CivpoK3lrZcgPiBrYXNoaXJhamlcIDsKK+eNhOWNkiA+IGdva3Vzb3RzdVwgOwor57Wm6aOfID4ga3l1dXNob2t1XCA7CivkuJTlj4ggPiBrYXRzdW1hdGFcIDsKK+aciOS4piA+IHRzdWtpbmFtaVwgOwor54mp5rWBID4gYnV0c3VyeXV1XCA7CivkuKHlh7ggPiByeW91dG90c3VcIDsKK+mZs+i/sCA+IGNoaW5qdXRzdVwgOwor5paw552AID4gc2hpbmNoYWt1XCA7CivlpbPniakgPiBvbicnbmFtb25vXCA7CivkuI3ljbAgPiBmdWppcnVzaGlcIDsKK+abuOS7mCA+IGtha2l0c3VrZVwgOwor6Kmw6I2JID4gdHN1bWVrdXNhXCA7CivkuK3kvY0gPiBjaHV1Z3VyYWlcIDsKK+eGiuicgiA+IGt1bWFiYWNoaVwgOwor5pWZ6IG3ID4ga3lvdXNob2t1XCA7CivlpLHnpLwgPiBzaGl0c3VyZWlcIDsKK+S4g+WOmCA+IHNoaWNoaXJpblwgOwor54mp5qyyID4gYnV0c3V5b2t1XCA7CivkuIDlj6MgPiBoaXRva3VjaGlcIDsKK+aTgumJoiA+IHN1cmliYWNoaVwgOwor54iG55m6ID4gYmFrdWhhdHN1XCA7CivmmKjml6UgPiBzYWt1aml0c3VcIDsKK+e4rue0hCA+IHNodWt1eWFrdVwgOwor5aSx552AID4gc2hpdGNoYWt1XCA7CivkuIDliKUgPiBpY2hpYmV0c3VcIDsKK+S4gOWIlyA+IGljaGlyZXRzdVwgOwor5LiL5YG0ID4gc2hpdGFnYXdhXCA7Civpm4DoibIgPiBzdXp1bWVpcm9cIDsKK+S4gOWEsiA+IGhpdG9tb3VrZVwgOwor5peP5ruFID4gem9rdW1ldHN1XCA7CivkuIvkvZwgPiBzaGl0YXNha3VcIDsKK+iqv+eVpSA+IGNob3VyeWFrdVwgOwor5piU5pelID4gc2VraWppdHN1XCA7Civmlq3nhrEgPiBkYW4nJ25ldHN1XCA7CivmmI7ml6UgPiBteW91bmljaGlcIDsKK+S4i+S4iyA+IHNoaW1vamltb1wgOwor5pW355+zID4gc2hpa2lpc2hpXCA7Civnibnmkq4gPiB0b2t1c2F0c3VcIDsKK+imqumWsiA+IHNoaW4nJ2V0c3VcIDsKK+mhmOS6iyA+IG5lZ2FpZ290b1wgOwor6aC75Ye6ID4gaGluc2h1dHN1XCA7CivntrLooosgPiBhbWlidWt1cm9cIDsKK+aWmeeOhyA+IHJ5b3VyaXRzdVwgOwor6KeS6YCQID4ga2FrdWNoaWt1XCA7CivkuIPkuIkgPiBzaGljaGlzYW5cIDsKK+e0sOmdoiA+IGhvc29vbW90ZVwgOwor6ZuG57WQID4gc2h1dWtldHN1XCA7Civopb/poqggPiBuaXNoaWthemVcIDsKK+Wkj+eXqSA+IG5hdHN1eWFzZVwgOwor54mp5oyHID4gbW9ub3Nhc2hpXCA7CivmmJ/lvbEgPiBob3NoaWthZ2VcIDsKK+eLrOWKmyA+IGRva3VyeW9rdVwgOwor6Kem6Ki6ID4gc2hva3VzaGluXCA7Civlo7rnmr8gPiB0c3Vib3phcmFcIDsKK+e9quS6uiA+IHRzdW1pYml0b1wgOwor54mp5oW+ID4gYnV0c3V5b2t1XCA7CivmlbfniakgPiBzaGlraW1vbm9cIDsKK+mbqueUtyA+IHl1a2lvdG9rb1wgOwor5aSP54mpID4gbmF0c3Vtb25vXCA7CivntbHoqIggPiBiYXJhdHN1a2lcIDsKK+Wls+aWuSA+IG9uJyduYWdhdGFcIDsKK+aWsOapiyA+IHNoaW5iYXNoaVwgOwor54ax55eFID4gbmV0c3VieW91XCA7Civpm7vnhrEgPiBkZW4nJ25ldHN1XCA7CivmmJ/lsZEgPiBob3NoaWt1enVcIDsKK+malOe1tiA+IGtha3V6ZXRzdVwgOwor54us5LuPID4gZG9rdWZ1dHN1XCA7CivlprvlrqQgPiBzYWlzaGl0c3VcIDsKK+eJqeW5siA+IG1vbm9ob3NoaVwgOwor57Sw6YGTID4gaG9zb21pY2hpXCA7Civns6fpo58gPiByeW91c2hva3VcIDsKK+eJqeW3riA+IG1vbm9zYXNoaVwgOwor54ax55CDID4gbmV0c3VreXV1XCA7CivnuJ7niakgPiBzaGltYW1vbm9cIDsKK+aWsOaelSA+IG5paW1ha3VyYVwgOwor57Wm6KGAID4ga3l1dWtldHN1XCA7CivmlrDmnK0gPiBzaGluc2F0c3VcIDsKK+aWsOaciCA+IHNoaW5nZXRzdVwgOwor5paw5puyID4gc2hpbmt5b2t1XCA7Civml6flvI8gPiBreXV1c2hpa2lcIDsKK+ipsOeJqSA+IHRzdW1lbW9ub1wgOwor54OP6LKdID4ga2FyYXN1Z2FpXCA7CivpnbTlupUgPiBrdXRzdXpva29cIDsKK+aXp+W5tCA+IGZ1cnV0b3NoaVwgOwor5pif5Z6LID4gaG9zaGlnYXRhXCA7Civplbfpq6ogPiBjaG91aGF0c3VcIDsKK+Wls+W9oiA+IG9uJyduYWdhdGFcIDsKK+WkseacmyA+IHNoaXRzdWJvdVwgOwor54S857WQID4gc2hvdWtldHN1XCA7CivlobXntJkgPiBjaGlyaWdhbWlcIDsKK+WkseaYjiA+IHNoaXRzdW1laVwgOwor57SZ6LOqID4gc2hpc2hpdHN1XCA7Civpm6rmspMgPiB5dWtpZ3V0c3VcIDsKK+aWh+aciCA+IGZ1bWlkenVraVwgOwor54Kt6LOqID4gdGFuc2hpdHN1XCA7CivoqoXmrrogPiBjaHV1c2F0c3VcIDsKK+Wkp+aYlCA+IG9vbXVrYXNoaVwgOwor6ZW36Z20ID4gbmFnYWd1dHN1XCA7Civns7jou4ogPiBpdG9ndXJ1bWFcIDsKK+WknOaZkiA+IHlvemFyYXNoaVwgOwor5aSP5pyNID4gbmF0c3VmdWt1XCA7CivpnbTloqggPiBrdXRzdXp1bWlcIDsKK+ijuOmmrCA+IGhhZGFrYXVtYVwgOwor5aa55YiGID4gaW1vdXRvYnVuXCA7Civml6XloqggPiBuaWNoaWJva3VcIDsKK+aWsOW8jyA+IHNoaW5zaGlraVwgOwor5aSP5pmCID4gbmF0c3Vkb2tpXCA7Civngrjoo4IgPiBzYWt1cmV0c3VcIDsKK+eJueWIpSA+IHRva3ViZXRzdVwgOwor6KSH6ZuRID4gZnVrdXphdHN1XCA7CivpnbTlnosgPiBrdXRzdWdhdGFcIDsKK+eykumjnyA+IHJ5dXVzaG9rdVwgOwor57WQ6IacID4ga2V0c3VtYWt1XCA7CivnuJ7mn4QgPiBzaGltYWdhcmFcIDsKK+WkseaBiyA+IHNoaXRzdXJlblwgOwor5aSx5b+1ID4gc2hpdHN1bmVuXCA7Civpm6jmm4cgPiBhbWFndW1vcmlcIDsKK+ipleaxuiA+IGh5b3VrZXRzdVwgOwor6Kq/5b6LID4gY2hvdXJpdHN1XCA7CivlpbPlnYIgPiBvbicnbmF6YWthXCA7CivntprnmbogPiB6b2t1aGF0c3VcIDsKK+mbkeagqiA+IHphdHN1a2FidVwgOwor6KuS5a+fID4gcnlvdXNhdHN1XCA7CivniZvliLogPiBneXV1c2FzaGlcIDsKK+Wft+iRlyA+IHNodXVjaGFrdVwgOwor5pep5Y+jID4gaGF5YWt1Y2hpXCA7Civns5bos6ogPiB0b3VzaGl0c3VcIDsKK+eJh+WPoyA+IGthdGFrdWNoaVwgOwor57Sw6IWwID4gaG9zb2dvc2hpXCA7Civpm4bmnK0gPiBzaHV1c2F0c3VcIDsKK+aXpeWHuiA+IG5pc3NodXRzdVwgOwor57WC57WQID4gc2h1dWtldHN1XCA7Civlnarph48gPiB0c3Vib3J5b3VcIDsKK+WltOWHpyA+IHlha2tvZGFrb1wgOwor6Kaq562GID4gc2hpbnBpdHN1XCA7Civntr/msrkgPiB3YXRhYWJ1cmFcIDsKK+eEtueEtiA+IHNoaWthamlrYVwgOwor54Sm54axID4gc2hvdW5ldHN1XCA7CivlpI/lsbEgPiBuYXRzdXlhbWFcIDsKK+eIquWIhyA+IHRzdW1la2lyaVwgOwor5pS/5omAID4gbWFuZG9rb3JvXCA7CivmlZnlvI8gPiBreW91c2hpa2lcIDsKK+eIquWFiCA+IHRzdW1hc2FraVwgOwor5aGp5rysID4gc2hpb2R6dWtlXCA7CivnuK7lsI8gPiBzaHVrdXNob3VcIDsKK+S4i+OAhSA+IHNoaW1vamltb1wgOwor5aWU5Ye6ID4gaG9uc2h1dHN1XCA7CivpmpTmnIggPiBrYWt1Z2V0c3VcIDsKK+aSg+eZuiA+IGdla2loYXRzdVwgOwor5Z+3562GID4gc2hpcHBpdHN1XCA7CivpmpTml6UgPiBrYWt1aml0c3VcIDsKK+aWsOWFpSA+IHNoaW4nJ255dXVcIDsKK+aWpeWKmyA+IHNla2lyeW9rdVwgOwor57WC55m6ID4gc2h1dWhhdHN1XCA7CivlpLHlkb0gPiBzaGl0c3VtZWlcIDsKK+WdgumBkyA+IHNha2FtaWNoaVwgOwor5aSx5ZCNID4gc2hpdHN1bWVpXCA7CivmkrLmu4UgPiBib2t1bWV0c3VcIDsKK+ips+WvnyA+IHNob3VzYXRzdVwgOwor6Zuq5aWzID4geXVraW9uJyduYVwgOwor6Kmz5a+GID4gc2hvdW1pdHN1XCA7Civpm5HlraYgPiB6YXRzdWdha3VcIDsKK+mYsua5vyA+IGJvdXNoaXRzdVwgOwor5Z2H6LOqID4ga2luc2hpdHN1XCA7Civln7fnnYAgPiBzaHV1Y2hha3VcIDsKK+eDj+eTnCA+IGthcmFzdXVyaVwgOwor5pKy5q66ID4gYm9rdXNhdHN1XCA7CivmkZjnmbogPiB0ZWtpaGF0c3VcIDsKK+Wkj+WQkSA+IG5hdHN1bXVraVwgOwor5o2o6YmiID4gc3V0ZWJhY2hpXCA7CivlnLDos6ogPiBjaGlzaGl0c3VcIDsKK+WgheeJqSA+IGthdGFidXRzdVwgOwor5Zu96YmEID4ga29rdXRldHN1XCA7Civop5LmqL0gPiB0c3Vub2RhcnVcIDsKK+aSg+a7hSA+IGdla2ltZXRzdVwgOwor57On56ejID4gcnlvdW1hdHN1XCA7CivpmqPlrqQgPiByaW5zaGl0c3VcIDsKK+iouuWvnyA+IHNoaW5zYXRzdVwgOwor5aSW5LuYID4gc290b2R6dWtlXCA7CivlpI/kvZwgPiBuYXRzdXNha3VcIDsKK+eFp+WwuiA+IHNob3VzaGFrdVwgOwor6Zuq5YWOID4geXVraXVzYWdpXCA7CivntYLmsbogPiBzaHV1a2V0c3VcIDsKK+ilsueItSA+IHNodXVzaGFrdVwgOwor6KaG5ruFID4gZnVrdW1ldHN1XCA7Civloqjlo7cgPiBzdW1pdHN1Ym9cIDsKK+iqheS8kCA+IGNodXViYXRzdVwgOwor5pS+5Ye6ID4gaG91c2h1dHN1XCA7CivntYLmpbUgPiBzaHV1a3lva3VcIDsKK+ijuOe3miA+IGhhZGFrYXNlblwgOwor6KaG5rKhID4gZnVrdWJvdHN1XCA7CivnhanlnosgPiB1cnVzYWdhdGFcIDsKK+iplOWLhSA+IHNob3VjaG9rdVwgOwor5pSv5Ye6ID4gc2hpc2h1dHN1XCA7CivntqLlr4YgPiBjaHV1bWl0c3VcIDsKK+e1hOabsiA+IGt1bWlreW9rdVwgOwor57WC5pyrID4gc2h1dW1hdHN1XCA7CivntYLmm7IgPiBzaHV1a3lva3VcIDsKK+e2meWupCA+IGtlaXNoaXRzdVwgOwor5Zu96KGoID4ga3VuaW9tb3RlXCA7CivntYLml6UgPiBzaHV1aml0c3VcIDsKK+e3oOWIhyA+IHNoaW1la2lyaVwgOwor5Zyf6ImyID4gdHN1Y2hpaXJvXCA7CivmjqXntpogPiBzZXRzdXpva3VcIDsKK+exs+eykiA+IGtvbWV0c3VidVwgOwor57Of5rysID4ga2FzdWR6dWtlXCA7Civnspvnmb0gPiBzaHVrdWhha3VcIDsKK+ihl+inkiA+IG1hY2hpa2Fkb1wgOwor5pKr5a2QID4gbmFkZXNoaWtvXCA7Civns6DmsrkgPiBudWthYWJ1cmFcIDsKK+mVt+eJqSA+IGNob3VidXRzdVwgOwor6Zmw5Y+jID4ga2FnZWd1Y2hpXCA7Civopqrlv4MgPiBveWFnb2tvcm9cIDsKK+ihhuiqrCA+IHNodXVzZXRzdVwgOwor57W25aaZID4gemV0c3VteW91XCA7Civns7jmoZwgPiBpdG96YWt1cmFcIDsKK+mZs+WIlyA+IGNoaW5yZXRzdVwgOwor57O45p+zID4gaXRveWFuYWdpXCA7Civln7fmi5cgPiBzaGl0c3V5b3VcIDsKK+eEvOWNtCA+IHNob3VreWFrdVwgOwor5r+A6IG3ID4gZ2VraXNob2t1XCA7Civopqrlr4YgPiBzaGlubWl0c3VcIDsKK+e1guWxgCA+IHNodXVreW9rdVwgOwor562S6Z+zID4gdHN1dHN1b3RvXCA7CivntIvmiYAgPiBtb25kb2tvcm9cIDsKK+iii+e2siA+IGZ1a3Vyb2FtaVwgOwor6KiA5LydID4ga290b2R6dXRlXCA7Civngavmn7EgPiBoaWJhc2hpcmFcIDsKK+mWpeaXjyA+IGJhdHN1em9rdVwgOwor6KS25puyID4gc2h1dWt5b2t1XCA7Civop5Llj4kgPiB0c3Vub21hdGFcIDsKK+aKnOmMqCA+IGJhdHN1YnlvdVwgOwor5Zu956uLID4ga29rdXJpdHN1XCA7Civmv4DnqoEgPiBnZWtpdG90c3VcIDsKK+mWgOadviA+IGthZG9tYXRzdVwgOwor5oqc6YGTID4gbnVrZW1pY2hpXCA7CivplbfmnIggPiBuYWdhdHN1a2lcIDsKK+ihgOiCiSA+IGtldHN1bmlrdVwgOwor57Sb5aSxID4gZnVuc2hpdHN1XCA7CivmjK/nspsgPiBzaGluc2h1a3VcIDsKK+Wcn+eJoiA+IHRzdWNoaXJvdVwgOwor5r+A55m6ID4gZ2VraWhhdHN1XCA7CivnsbPmsrkgPiBrb21lYWJ1cmFcIDsKK+eti+mBkyA+IHN1amltaWNoaVwgOwor56+z56+lID4gaGljaGlyaWtpXCA7CivooZ3nqoEgPiBzaG91dG90c3VcIDsKK+imquWIhyA+IHNoaW5zZXRzdVwgOwor57Gz5quDID4ga29tZWJpdHN1XCA7Civnq5zpqqggPiByeXV1a290c3VcIDsKK+e1kOS6hiA+IGtldHN1cnlvdVwgOwor5omY6YmiID4gdGFrdWhhdHN1XCA7Civplo/lubQgPiB1cnV1ZG9zaGlcIDsKK+etieizqiA+IHRvdXNoaXRzdVwgOwor5Zix6KiXID4gc2hva3V0YWt1XCA7Civnr4DntIQgPiBzZXRzdXlha3VcIDsKK+a/gOeDiCA+IGdla2lyZXRzdVwgOwor6J+H6JuZID4gaGlraWdhZXJ1XCA7CivonIDpu40gPiBtb3Jva29zaGlcIDsKK+ihgOecvCA+IGNoaW1hbmFrb1wgOwor5664566xID4gaGFzaGliYWtvXCA7CivopIflvI8gPiBmdWt1c2hpa2lcIDsKK+ilv+WBtCA+IG5pc2hpZ2F3YVwgOwor5pCN5aSxID4gc29uc2hpdHN1XCA7Civpl5blhaUgPiBjaGluJydueXV1XCA7CivonILps6UgPiBoYWNoaWRvcmlcIDsKK+eCuuS9kyA+IHRlaXRhcmFrdVwgOwor5oyR55m6ID4gY2hvdWhhdHN1XCA7Civmurbos6ogPiB5b3VzaGl0c3VcIDsKK+eBsOWcnyA+IGhhaXRzdWNoaVwgOwor6KOP5omJID4gdXJhdG9iaXJhXCA7CivmkKzlh7ogPiBoYW5zaHV0c3VcIDsKK+eym+WtpiA+IHNodWt1Z2FrdVwgOwor6Za+5YCkID4gc2hpa2lpY2hpXCA7Civoo4/mg4UgPiB1cmFuYXNha2VcIDsKK+ifh+iCoSA+IGthZXJ1bWF0YVwgOwor6KGA54WZID4gY2hpa2VtdXJpXCA7CivooajmsbogPiBoeW91a2V0c3VcIDsKK+a7keiQvSA+IGthdHN1cmFrdVwgOwor5oyB54mpID4gbW9jaGltb25vXCA7CivploDlj6MgPiBrYWRvZ3VjaGlcIDsKK+a9nOeGsSA+IHNlbicnbmV0c3VcIDsKK+aMn+auuiA+IGt5b3VzYXRzdVwgOwor6KGo5pytID4gaHlvdXNhdHN1XCA7Civooajmm7ggPiBvbW90ZWdha2lcIDsKK+eziuS7oyA+IG5vcmlzaGlyb1wgOwor56m06ZqZID4ga2V0c3VnZWtpXCA7CivpjK/pm5EgPiBzYWt1emF0c3VcIDsKK+Wcp+WvhiA+IGF0c3VtaXRzdVwgOwor5Zyo5a6kID4gemFpc2hpdHN1XCA7CivmvKzniakgPiB0c3VrZW1vbm9cIDsKK+icnOixhiA+IG1pdHN1bWFtZVwgOwor5ryC552AID4gaHlvdWNoYWt1XCA7Civmj5Dlh7ogPiB0ZWlzaHV0c3VcIDsKK+a3semdtCA+IGZ1a2FndXRzdVwgOwor56+A5qyyID4gc2V0c3V5b2t1XCA7CivooovluK8gPiBmdWt1cm9vYmlcIDsKK+WYseebriA+IHNob2t1bW9rdVwgOwor56mA6aOfID4ga29rdXNob2t1XCA7CivnqY3pm6ogPiBzZWtpc2V0c3VcIDsKK+evgOamkSA+IGZ1c2hpa3VyZVwgOwor6KGA5pePID4ga2V0c3V6b2t1XCA7CivnrZbnlaUgPiBzYWt1cnlha3VcIDsKK+mNvOihkyA+IHNoaW5qdXRzdVwgOwor5oyR5pKlID4gY2hvdWhhdHN1XCA7Civmi5PmrpYgPiB0YWt1c2hva3VcIDsKK+ibmei3syA+IGthZXJ1dG9iaVwgOwor5o6S5Ye6ID4gaGFpc2h1dHN1XCA7CivlnKflipsgPiBhdHN1cnlva3VcIDsKK+erueeukiA+IHRha2Vib3VraVwgOwor6by76Z2iID4gaGFuYWR6dXJhXCA7Civnq7/np6QgPiBzYW9iYWthcmlcIDsKK+iiluWPoyA+IHNvZGVndWNoaVwgOwor5o275Ye6ID4gbmVuc2h1dHN1XCA7Civpi7PpiYQgPiBjaHV1dGV0c3VcIDsKK+eroOevgCA+IHNob3VzZXRzdVwgOwor5ZWT6J+EID4ga2VpY2hpdHN1XCA7Civmtpnpm6ggPiBuYW1pZGFhbWVcIDsKK+evpOWunyA+IHRva3VqaXRzdVwgOwor6Y6W57O4ID4ga3VzYXJpaXRvXCA7Civnpr/pt7IgPiBoYWdld2FzaGlcIDsKK+ihgOWwvyA+IGtldHN1bnlvdVwgOwor5oey572wID4gY2hvdWJhdHN1XCA7Civlm73lipsgPiBrb2t1cnlva3VcIDsKK+WbveWIpSA+IGt1bmliZXRzdVwgOwor5oq95paXID4gaGlraWRhc2hpXCA7Civmtbjpo58gPiBzaGluc2hva3VcIDsKK+evieWxsSA+IHRzdWtpeWFtYVwgOwor6KKW5LuYID4gc29kZXRzdWtlXCA7CivmibzmrrogPiB5YWt1c2F0c3VcIDsKK+ihgOWhlyA+IGNoaW1pZG9yb1wgOwor6bq56bu0ID4ga291amlrYWJpXCA7Civmtpnph5EgPiBuYW1pZGFraW5cIDsKK+ihgOWcpyA+IGtldHN1YXRzdVwgOwor5r2u5aKDID4gc2hpb3pha2FpXCA7CivnqJ/os6ogPiBoaW5zaGl0c3VcIDsKK+a5v+eUsCA+IHNoaXRzdWRlblwgOwor6buS6auqID4ga29rdWhhdHN1XCA7CivmiZPmtoggPiB1Y2hpa2VzaGlcIDsKK+ihqOWBtCA+IG9tb3RlZ2F3YVwgOwor6JuZ6IKhID4ga2FlcnVtYXRhXCA7CivpkJjmkp4gPiBrYW5ldHN1a2lcIDsKK+ihjOWIlyA+IGd5b3VyZXRzdVwgOwor56yR5q66ID4gc2hvdXNhdHN1XCA7CivmiY3mp4wgPiBzYWlkenVjaGlcIDsKK+a5v+a9pCA+IHNoaXRzdWp1blwgOwor6KGX5LimID4gbWFjaGluYW1pXCA7CivpvLvooZ0gPiBoYW5hdHN1a2lcIDsKK+a4i+e0mSA+IHNoaWJ1Z2FtaVwgOwor5ZOB6LOqID4gaGluc2hpdHN1XCA7CivpvKDorJsgPiBuZXp1bWlrb3VcIDsKK+mPoeadvyA+IGthZ2FtaWl0YVwgOwor56m656m0ID4ga2FyYWtldHN1XCA7Civpuqbpo68gPiBtdWdpbWVzaGlcIDsKK+mLvOiJsiA+IGhhZ2FuZWlyb1wgOwor5omV5pqBID4gZnV0c3VneW91XCA7CivomavonrsgPiBtdXNoaWtlcmFcIDsKK+erpeatjCA+IHdhcmFiZXV0YVwgOwor5omT5pOyID4gY2hvdWNoYWt1XCA7CivmtLvph48gPiBrYXRzdXJ5b3VcIDsKK+aLoOWHuiA+IGt5b3NodXRzdVwgOwor5Zm05Ye6ID4gZnVuc2h1dHN1XCA7CivmuIvnmq4gPiBzaGlidWthd2FcIDsKK+iXgemdtCA+IHdhcmFndXRzdVwgOwor566X5Ye6ID4gc2Fuc2h1dHN1XCA7CivpjpbmqIsgPiBrdXNhcml0b2lcIDsKK+a0u+i7uCA+IGthdHN1amlrdVwgOwor5rm/5p2/ID4gc2hpdHN1YmFuXCA7Civmta7ooosgPiB1a2lidWt1cm9cIDsKK+a1uOidlSA+IHNoaW5zaG9rdVwgOwor5ZWG55WlID4gc2hvdXJ5YWt1XCA7CivmtLvouo0gPiBrYXRzdXlha3VcIDsKK+mJseizqiA+IGtvdXNoaXRzdVwgOwor6Jmr6IW5ID4gbXVzaGliYXJhXCA7CivpvKDoibIgPiBuZXp1bWlpcm9cIDsKK+azpemdtCA+IGRvcm9ndXRzdVwgOwor5rac6IG3ID4gdG9rdXNob2t1XCA7CivnrYbloqggPiBoaXRzdWJva3VcIDsKK+mHnemwuyA+IGhhcml1bmFnaVwgOwor6by757axID4gaGFuYWR6dW5hXCA7CivnrYbloZogPiBmdWRlZHp1a2FcIDsKK+a7neWjuiA+IHRha2l0c3Vib1wgOwor5rud5aO3ID4gdGFraXRzdWJvXCA7CivlkYrpgZQgPiBrb2t1dGF0c3VcIDsKK+a8j+WHuiA+IHJvdXNodXRzdVwgOwor562G5ZynID4gaGl0c3VhdHN1XCA7Civnqq7mpbUgPiBreXV1a3lva3VcIDsKK+mHkemvsSA+IGtpbnNoYWNoaVwgOwor56aA6LOqID4gaGluc2hpdHN1XCA7Civlj6Ppq60gPiBrdWNoaWhpZ2VcIDsKK+iZq+exoCA+IG11c2hpa2Fnb1wgOwor5rWB6KGAID4gcnl1dWtldHN1XCA7CivmhpHniakgPiB0c3VraW1vbm9cIDsKK+epjeeOhyA+IHNla2lyaXRzdVwgOwor6by756qBID4gaGFuYXRzdWtpXCA7Civph5zpo68gPiBrYW1hbWVzaGlcIDsKK+a3seeIqiA+IGZ1a2FkenVtZVwgOwor56u55bibID4gY2hpa3VoYWt1XCA7Civnp4voibIgPiBzaHV1c2hva3VcIDsKK+azoemKrSA+IGFidWt1emVuaVwgOwor5rOo6YeIID4gY2h1dXNoYWt1XCA7CivmhIHoibIgPiBzaHV1c2hva3VcIDsKK+aCquizqiA+IGFrdXNoaXRzdVwgOwor5reL55a+ID4gcmluc2hpdHN1XCA7Civpupfos6ogPiByZWlzaGl0c3VcIDsKK+m6u+iiiyA+IGFzYWJ1a3Vyb1wgOwor5rud5Y+jID4gdGFraWd1Y2hpXCA7CivpvKDnrpcgPiBuZXp1bWl6YW5cIDsKK+a5v+W8jyA+IHNoaXNzaGlraVwgOwor56mA54mpID4ga29rdW1vdHN1XCA7Civms6XpgZMgPiBkb3JvbWljaGlcIDsKK+WPpOmdtCA+IGZ1cnVndXRzdVwgOwor5rKI6ayxID4gY2hpbicndXRzdVwgOwor5ZCb6YGUID4ga2ltaXRhY2hpXCA7Civpt7LpvLsgPiB3YXNoaWJhbmFcIDsKK+aKmOS8jyA+IHNoYWt1YnVrdVwgOwor6byg56m0ID4gbmV6dW1pYW5hXCA7Civmu5Hlj7AgPiBzdWJlcmlkYWlcIDsKK+ernOW3uyA+IHRhdHN1bWFraVwgOwor6Yej6ZCYID4gdHN1cmlnYW5lXCA7Civpu5LoibIgPiBrb2t1c2hva3VcIDsKK+eptualtSA+IGt5dXVreW9rdVwgOwor5rqA5a6kID4gbWFuc2hpdHN1XCA7Civpt6bpt68gPiBtaXNvc2F6YWlcIDsKK+err+WlsyA+IGhhc2hpdGFtZVwgOwor6Yej6YedID4gdHN1cmliYXJpXCA7Civph5HpjpYgPiBraW5ndXNhcmlcIDsKK+iXpOiUkyA+IGZ1amlkenVydVwgOwor6Ymb6ImyID4gbmFtYXJpaXJvXCA7CivmuIvmn78gPiBzaGlidWdha2lcIDsKK+WQuOihgCA+IGt5dXVrZXRzdVwgOwor5Y+k6YmEID4gZnVydXRldHN1XCA7CivmtbfnpZ4gPiB3YXRhdHN1bWlcIDsKK+mItOiZqyA+IHN1enVtdXNoaVwgOwor5ZCM6LOqID4gZG91c2hpdHN1XCA7Civlj6Pph5EgPiBrdWNoaWdhbmVcIDsKK+eqgeaSgyA+IHRvdHN1Z2VraVwgOwor6beT6bSjID4geWFtYXV6dXJhXCA7Civpu5LnuIEgPiBrdXJvYnVjaGlcIDsKK+mOruWcpyA+IGNoaW4nJ2F0c3VcIDsKK+WWquWksSA+IHNvdXNoaXRzdVwgOwor56iu5rK5ID4gdGFuZWFidXJhXCA7CivllJDmq4MgPiBrYXJhYml0c3VcIDsKK+WPo+i7vSA+IGt1Y2hpZ2FydVwgOwor56qu5bGIID4ga3l1dWt1dHN1XCA7Civpu5Lnq7kgPiBrdXJvY2hpa3VcIDsKK+WPi+mBlCA+IHRvbW9kYWNoaVwgOwor5ZOB54mpID4gc2hpbmFtb25vXCA7Civnq7nlhYkgPiB0YWtlbWl0c3VcIDsKK+iXgeiLniA+IHdhcmFkenV0b1wgOwor5rm/5Y6fID4gc2hpdHN1Z2VuXCA7CivnpZ7oibIgPiBzaGluc2hva3VcIDsKK+WUkOadviA+IGthcmFtYXRzdVwgOwor56We6IG3ID4gc2hpbnNob2t1XCA7Civlj6PoqLEgPiBrdWNoaW1vdG9cIDsKK+iaiuafsSA+IGthYmFzaGlyYVwgOwor56u55LiyID4gdGFrZWd1c2hpXCA7Civmtojmu4UgPiBzaG91bWV0c3VcIDsKK+mHneihkyA+IHNoaW5qdXRzdVwgOwor6buS55m9ID4ga29rdWJ5YWt1XCA7CivnpZ7nvbAgPiBzaGluYmF0c3VcIDsKK+ayueidiSA+IGFidXJhemVtaVwgOwor5oCn6LOqID4gc2Vpc2hpdHN1XCA7Civlj5boqqwgPiB0b3Jpc2V0c3VcIDsKK+awt+mbqiA+IGh5b3VzZXRzdVwgOwor6Ju45aO8ID4gdGFrb3RzdWJvXCA7Civom7jlo7cgPiB0YWtvdHN1Ym9cIDsKK+a5p+WHuiA+IHlvdXNodXRzdVwgOwor56m65a6kID4ga3V1c2hpdHN1XCA7CivpjJjlvaIgPiB0c3VtdWdhdGFcIDsKK+aGqeWupCA+IGtlaXNoaXRzdVwgOwor5oCl6KitID4ga3l1dXNldHN1XCA7Civph5HolJMgPiBrYW5lZHp1cnVcIDsKK+a2iOaltSA+IHNob3VreW9rdVwgOwor6Yej6Ii5ID4gdHN1cmlidW5lXCA7CivmsLfph4ggPiBoeW91c2hha3VcIDsKK+mJoueJqSA+IGhhY2hpbW9ub1wgOwor5rWa5rirID4gc2h1bnNldHN1XCA7Civmt5HlvrMgPiBzaHVrdXRva3VcIDsKK+elneemjyA+IHNodWt1ZnVrdVwgOwor5rKh6JC9ID4gYm90c3VyYWt1XCA7CivnqpPlj6MgPiBtYWRvZ3VjaGlcIDsKK+WRiueZuiA+IGtva3VoYXRzdVwgOwor5ZOB5p+EID4gc2hpbmFnYXJhXCA7Civmgqrnlr4gPiBha3VzaGl0c3VcIDsKK+WQuOedgCA+IGt5dXVjaGFrdVwgOwor6YWM6YePID4gc2hha3VyeW91XCA7Civlj6PohIcgPiBrdWNoaXdha2lcIDsKK+eiuuiqrCA+IGtha3VzZXRzdVwgOwor6JaE57eRID4gdXN1bWlkb3JpXCA7Civlk4HmlbAgPiBzaGluYWthenVcIDsKK+m5v+eariA+IHNoaWthZ2F3YVwgOwor6JuZ5Y+IID4ga2FlcnVtYXRhXCA7Civpu5nmrrogPiBtb2t1c2F0c3VcIDsKK+aBkOe4riA+IGt5b3VzaHVrdVwgOwor6JqV5a6kID4gc2Fuc2hpdHN1XCA7CivnqoHlh7ogPiB0b3NzaHV0c3VcIDsKK+mDvemiqCA+IG1peWFrb2Z1dVwgOwor5rK557OfID4gYWJ1cmFrYXN1XCA7CivmsLTos6ogPiBzdWlzaGl0c3VcIDsKK+eqgeWFpSA+IHRvdHN1bnl1dVwgOwor5rK557KVID4gYWJ1cmFrYXN1XCA7CivnqKDlr4YgPiBjaG91bWl0c3VcIDsKK+m7kuaoqyA+IGt1cm9nYXNoaVwgOwor5rS75q20ID4ga2F0c3VyZWtpXCA7Civlj6PntIUgPiBrdWNoaWJlbmlcIDsKK+eni+aXpSA+IHNodXVqaXRzdVwgOwor5Y+z56uvID4gbWlnaWhhc2hpXCA7Civolqznk7YgPiBrdXN1cmliaW5cIDsKK+WTsuWtpiA+IHRldHN1Z2FrdVwgOwor6YmE5riLID4ga2FuYXNoaWJ1XCA7Civlj47nuK4gPiBzaHV1c2h1a3VcIDsKK+W/jOipniA+IGltaWtvdG9iYVwgOwor5Y+w56ekID4gZGFpYmFrYXJpXCA7CivmtbfmiYcgPiBob3RhdGVnYWlcIDsKK+W/heiqrSA+IGhpdHN1ZG9rdVwgOwor5Y2a6K2YID4gaGFrdXNoaWtpXCA7Civpu5Lmnb4gPiBrdXJvbWF0c3VcIDsKK+OAhuWIhyA+IHNoaW1la2lyaVwgOwor5Y2T6K2YID4gdGFrdXNoaWtpXCA7CivolqzniakgPiB5YWt1YnV0c3VcIDsKK+a3seWIhyA+IHNoaW5zZXRzdVwgOwor56Gs6LOqID4ga291c2hpdHN1XCA7CivmsLfonZUgPiBoeW91c2hva3VcIDsKK+WNk+iqrCA+IHRha3VzZXRzdVwgOwor6buS5pifID4ga3Vyb2Jvc2hpXCA7Civnp4DmipwgPiBzaHV1YmF0c3VcIDsKK+W/g+ihgCA+IHNoaW5rZXRzdVwgOwor5rC06JmrID4gbWl6dW11c2hpXCA7CivolJPojYkgPiB0c3VydWt1c2FcIDsKK+W8t+mjryA+IGtvd2FtZXNoaVwgOwor56Wo5rG6ID4gaHlvdWtldHN1XCA7CivokZvppIUgPiBrdXp1bW9jaGlcIDsKK+m2ieixhiA+IHV6dXJhbWFtZVwgOwor6YeR55ulID4ga2FuYWRhcmFpXCA7Civnn6/po74gPiBreW91c2hva3VcIDsKK+WPo+eZliA+IGt1Y2hpZ3VzZVwgOwor55+z6aCtID4gaXNoaWF0YW1hXCA7Civps6Xpu5AgPiB0b3JpbW9jaGlcIDsKK+a2meWjsCA+IG5hbWlkYWdvZVwgOwor6JC96auqID4gcmFrdWhhdHN1XCA7Civli4XpoY0gPiBjaG9rdWdha3VcIDsKK+WNteiJsiA+IHRhbWFnb2lyb1wgOwor56iy5YWJID4gaW5hYmlrYXJpXCA7Civlj47nnYAgPiBzaHV1Y2hha3VcIDsKK+a2iOWksSA+IHNvdXNoaXRzdVwgOwor5q6/6YGUID4gdG9ub3RhY2hpXCA7CivmsYLogbcgPiBreXV1c2hva3VcIDsKK+iQvemjviA+IHJha3VzaG9rdVwgOwor5rKI552AID4gY2hpbmNoYWt1XCA7CivolqzmrrogPiB5YWt1c2F0c3VcIDsKK+elpeaciCA+IHNob3V0c3VraVwgOwor56eB5a6kID4gc2hpc2hpdHN1XCA7CivlvaLos6ogPiBrZWlzaGl0c3VcIDsKK+WPjueOhyA+IHNodXVyaXRzdVwgOwor56We5puyID4gc2hpbmt5b2t1XCA7Civnorrnq4sgPiBrYWt1cml0c3VcIDsKK+WNoOiAhSA+IHVyYW5haXNoYVwgOwor5ZOB5ZOBID4gc2hpbmFqaW5hXCA7CivmsLfntZAgPiBoeW91a2V0c3VcIDsKK+W/oOevgCA+IGNodXVzZXRzdVwgOwor6Ymi5be7ID4gaGFjaGltYWtpXCA7CivlkoTlrrYgPiBoYW5hc2hpa2FcIDsKK+mKt+WNtCA+IHNob3VreWFrdVwgOwor5raI5Y20ID4gc2hvdWt5YWt1XCA7Civnn43pkaAgPiBrYWt1c2hha3VcIDsKK+W+qeiBtyA+IGZ1a3VzaG9rdVwgOwor5q+S6JmrID4gZG9rdW11c2hpXCA7CivljZPntbYgPiB0YWt1emV0c3VcIDsKK+WPlua2iCA+IHRvcmlrZXNoaVwgOwor5ZGo5a+GID4gc2h1dW1pdHN1XCA7Civlia/po58gPiBmdWt1c2hva3VcIDsKK+iSn+iSuyA+IGtvbicnbnlha3VcIDsKK+WQhOaciCA+IGtha3V0c3VraVwgOwor5q616KKLID4gZGFuYnVrdXJvXCA7CivmtbjlhaUgPiBzaGluJydueXV1XCA7Civlj47msqEgPiBzaHV1Ym90c3VcIDsKK+mJhOWxkSA+IHRldHN1a3V6dVwgOwor5Y2T562GID4gdGFrdWhpdHN1XCA7CivnorrnjocgPiBrYWt1cml0c3VcIDsKK+WPluasoSA+IHRvcml0c3VnaVwgOwor5Y2T56uLID4gdGFrdXJpdHN1XCA7CivnpZ7lvI8gPiBzaGluc2hpa2lcIDsKK+ato+mBkyA+IG1hc2FtaWNoaVwgOwor5rKI5rKhID4gY2hpbmJvdHN1XCA7Civmr5LoiIwgPiBkb2t1emV0c3VcIDsKK+ejqOaxgSA+IHRvZ2lzaGlydVwgOwor5b256IG3ID4geWFrdXNob2t1XCA7CivmtIvlrqQgPiB5b3VzaGl0c3VcIDsKK+eip+eOiSA+IGhla2lneW9rdVwgOwor5q2v6LOqID4gc2hpc2hpdHN1XCA7CivphbfnhrEgPiBrb2t1bmV0c3VcIDsKK+iUtea1miA+IGt1cmF6YXJhZVwgOwor5oGL5pW1ID4ga29pZ2F0YWtpXCA7Civlj6Pml6kgPiBrdWNoaWJheWFcIDsKK+axgeeJqSA+IHNoaXJ1bW9ub1wgOwor6YW354OIID4ga29rdXJldHN1XCA7Civok4TnqY0gPiBjaGlrdXNla2lcIDsKK+W8seiZqyA+IHlvd2FtdXNoaVwgOwor5b6055m6ID4gY2hvdWhhdHN1XCA7Civlv6Dng4ggPiBjaHV1cmV0c3VcIDsKK+aDnOWIpSA+IHNla2liZXRzdVwgOwor5rS75YqHID4ga2F0c3VnZWtpXCA7Civlj7DmiYAgPiBkYWlkb2tvcm9cIDsKK+W+jOeoiyA+IG5vY2hpaG9kb1wgOwor5Y+N5pelID4gaGFuJyduaWNoaVwgOwor5byT6KGTID4ga3l1dWp1dHN1XCA7CivpgaDov5EgPiBvY2hpa29jaGlcIDsKK+WKm+iqrCA+IHJpa2lzZXRzdVwgOwor6bSs6ImyID4gdWd1aXN1aXJvXCA7CivljZrniakgPiBoYWt1YnV0c3VcIDsKK+WNmOeJqSA+IGhpdG9lbW9ub1wgOwor5q+S562GID4gZG9rdWhpdHN1XCA7CivlkZHlj6MgPiBub21pZ3VjaGlcIDsKK+WRveS5niA+IGlub2NoaWdvaVwgOwor5ZCM5a6kID4gZG91c2hpdHN1XCA7CivmgYvlv4MgPiBrb2lnb2tvcm9cIDsKK+aCquWPoyA+IHdhcnVndWNoaVwgOwor5Yid6ZuqID4gaGF0c3V5dWtpXCA7CivlvLHohbAgPiB5b3dhZ29zaGlcIDsKK+mAhumemCA+IGd5YWt1emF5YVwgOwor5bm06aCDID4gdG9zaGlnb3JvXCA7CivnnYDpmbggPiBjaGFrdXJpa3VcIDsKK+WRiuWIpSA+IGtva3ViZXRzdVwgOwor5rC05rK5ID4gbWl6dWFidXJhXCA7CivmsLfmsLQgPiBrb29yaW1penVcIDsKK+WRiOWHuiA+IHRlaXNodXRzdVwgOwor5YmN6Ly/ID4gc2FraWdvc2hpXCA7Civlj7flrqQgPiBnb3VzaGl0c3VcIDsKK+ays+WyuCA+IGthd2FnaXNoaVwgOwor5by357iuID4ga3lvdXNodWt1XCA7Civlh7rpoZggPiBzaHV0c3VnYW5cIDsKK+WHuumhjCA+IHNodXRzdWRhaVwgOwor5oGQ5a+fID4ga3lvdXNhdHN1XCA7CivpsZfpm7IgPiB1cm9rb2d1bW9cIDsKK+m0g+iIjCA+IGdla2l6ZXRzdVwgOwor56We5YuFID4gc2hpbmNob2t1XCA7CivnpZ3li50gPiBzaHVrdXNob3VcIDsKK+mAmumHiCA+IHRzdXVzaGFrdVwgOwor56CC57KSID4gc3VuYXRzdWJ1XCA7CivpgJ/pgZQgPiBzb2t1dGF0c3VcIDsKK+WHuumZoyA+IHNodXRzdWppblwgOwor6YCa6YGUID4gdHN1dXRhdHN1XCA7CivliJ3ph5wgPiBoYXRzdWdhbWFcIDsKK+WHuumWgCA+IHNodXRzdW1vblwgOwor6Yej5aCAID4gdHN1cmlib3JpXCA7Civov5HpoIMgPiBjaGlrYWdvcm9cIDsKK+mztuiBtyA+IHRvYmlzaG9rdVwgOwor55+z562GID4gc2VraWhpdHN1XCA7Civnn7Pnq7kgPiBzZWtpY2hpa3VcIDsKK+W8lee2sSA+IGhpa2lkenVuYVwgOwor56We5LuPID4gc2hpbmJ1dHN1XCA7Civnn63nrZIgPiB0YW5kenV0c3VcIDsKK+avkueJqSA+IGRva3VidXRzdVwgOwor5Y2z5pelID4gc29rdWppdHN1XCA7CivpgIPpgZMgPiBuaWdlbWljaGlcIDsKK+elnuS4uyA+IGthbicnbnVzaGlcIDsKK+WQiOWNsCA+IGFpamlydXNoaVwgOwor5Y2S5qWtID4gc290c3VneW91XCA7Civli53nnYAgPiBzaG91Y2hha3VcIDsKK+WQkOWHuiA+IHRvc2h1dHN1XCA7Civph5HlnosgPiBrYW5hZ2F0YVwgOwor55+z56WeID4gc2hha3VqaW5cIDsKK+WQjeWIuSA+IG1laXNhdHN1XCA7CivlvL7nnYAgPiBkYW5jaGFrdVwgOwor6JC957GNID4gcmFrdXNla2lcIDsKK+efouetkiA+IHlhZHp1dHN1XCA7Civlv4PmnI0gPiBzaGlucHVrdVwgOwor6YCG6LuiID4gZ3lha3V0ZW5cIDsKK+WQiOWKmyA+IGdvdXJ5b2t1XCA7CivolpnliIAgPiBuYWdpbmF0YVwgOwor5ZCM5YiXID4gZG91cmV0c3VcIDsKK+ebtOmdoiA+IGNob2t1bWVuXCA7Civlvqnmpa0gPiBmdWt1Z3lvdVwgOwor6JaE5Y+jID4gdXN1a3VjaGlcIDsKK+iNiemjnyA+IHNvdXNob2t1XCA7CivluLjpl4cgPiB0b2tveWFtaVwgOwor5ZCI5YaKID4gZ291c2F0c3VcIDsKK+WJpeiQvSA+IGhha3VyYWt1XCA7CivojLbpq6ogPiBjaGFwYXRzdVwgOwor6YCf6KqtID4gc29rdWRva3VcIDsKK+WOs+WvhiA+IGdlbm1pdHN1XCA7Civlh7rpg7cgPiBzaHVra3lvdVwgOwor5Y6a5bqVID4gYXRzdXpva29cIDsKK+W8leeqkyA+IGhpa2ltYWRvXCA7CivliIbovYQgPiBidW5rYXRzdVwgOwor6YCa6KqtID4gdHN1dWRva3VcIDsKK+mBnOiJsiA+IHNvbnNob2t1XCA7Civov73ot6EgPiB0c3Vpc2VraVwgOwor5Yuy54i1ID4ga3Vuc2hha3VcIDsKK+mAmuiosyA+IHRzdXV5YWt1XCA7Civlj6rlj6ogPiB0YWRhdGFkYVwgOwor5Y+L5Z6jID4gdG9tb2dha2lcIDsKK+WNiuaciCA+IGhhbnRzdWtpXCA7CivnnJ/ov7kgPiBzaGluc2VraVwgOwor5ZCJ5L6LID4ga2l0c3VyZWlcIDsKK+i/kemJhCA+IGtpbnRldHN1XCA7CivojLbpo68gPiBjaGFtZXNoaVwgOwor5Yil6KiAID4gYmV0c3VnZW5cIDsKK+aulueUoyA+IHNob2t1c2FuXCA7Civph5Hlj6MgPiBraW5ndWNoaVwgOwor6YCg6KGAID4gem91a2V0c3VcIDsKK+mzpeexoCA+IHRvcmlrYWdvXCA7Civli4PnmbogPiBib3BwYXRzdVwgOwor5bu656+JID4ga2VuY2hpa3VcIDsKK+WHuui6qyA+IHNodXNzaGluXCA7CivljYHmnIggPiBqdXVnYXRzdVwgOwor5Y+j5Y2gID4ga3VjaGl1cmFcIDsKK+ato+eriyA+IHNlaXJpdHN1XCA7Civpr6jpqqggPiBnZWlrb3RzdVwgOwor5rGC5b+DID4ga3l1dXNoaW5cIDsKK+ebuOmOmiA+IGFpZHp1Y2hpXCA7CivnnLzorZggPiBnYW5zaGlraVwgOwor5b+D5ouNID4gc2hpbnBha3VcIDsKK+W9vOatpCA+IGthcmVrb3JlXCA7Civmra/no6ggPiBoYW1pZ2FraVwgOwor6JC955+zID4gcmFrdXNla2lcIDsKK+W4nemXlSA+IHRlaWtldHN1XCA7CivlhoXpsJAgPiB1Y2hpd2FuaVwgOwor55yf6LmfID4gc2hpbnNla2lcIDsKK+WPpOWJtSA+IGZ1cnVraXp1XCA7CivptKjnjJ8gPiBrYW1vcnlvdVwgOwor5rKh5Y20ID4gYm9ra3lha3VcIDsKK+mHkeWKmyA+IGtpbnJ5b2t1XCA7Civlj7PlgbQgPiBtaWdpZ2F3YVwgOwor5Ye66LaFID4gc2h1dGNob3VcIDsKK+WPo+WJjSA+IGt1Y2hpbWFlXCA7CivliLvoloQgPiBrb2t1aGFrdVwgOwor55yf6LehID4gc2hpbnNla2lcIDsKK+awtOaApyA+IG1penVzaG91XCA7CivluoPoopYgPiBoaXJvc29kZVwgOwor6YeN5YqbID4ganV1cnlva3VcIDsKK+ebuOmJhCA+IHNvdXRldHN1XCA7Civojbfou4ogPiBuaWd1cnVtYVwgOwor5YuV54mpID4gZG91YnV0c3VcIDsKK+efpeeVpSA+IGNoaXJ5YWt1XCA7Civnm67pjLIgPiBtb2t1cm9rdVwgOwor5YiH6KuWID4gc2V0c3Vyb25cIDsKK+WHtuiziiA+IGt5b3V6b2t1XCA7CivnnYDoo4UgPiBjaGFrdXNvdVwgOwor6YGF6ISIID4gY2hpbXlha3VcIDsKK+awtOW8lSA+IG1penVoaWtpXCA7CivmqYjpqqggPiB0b3Vrb3RzdVwgOwor5q6y5ruFID4gc2VubWV0c3VcIDsKK+WPpOWCtyA+IGZ1cnVraXp1XCA7CivlhqDpm6ogPiBrYW5zZXRzdVwgOwor5YyX5qW1ID4gaG9ra3lva3VcIDsKK+W5u+ihkyA+IGdlbmp1dHN1XCA7CivmsLfluoogPiBoeW91c2hvdVwgOwor5YqD562WID4ga2FrdXNha3VcIDsKK+WNs+W4rSA+IHNva3VzZWtpXCA7Civlj4jlj4ggPiBtYXRhbWF0YVwgOwor5rC05bqVID4gbWluYXNva29cIDsKK+ebtOmFjSA+IGNob2t1aGFpXCA7CivliIfoqIAgPiBzZXRzdWdlblwgOwor5oCl5ZGKID4ga3l1dWtva3VcIDsKK+mHiOWFuCA+IHNoYWt1dGVuXCA7Civmr6vmnKsgPiBnb3VtYXRzdVwgOwor5Y2K5oqYID4gaGFuc2V0c3VcIDsKK+W5s+iiliA+IGhpcmFzb2RlXCA7Civpr5vpo68gPiB0YWltZXNoaVwgOwor5YiH6KaBID4gc2V0c3V5b3VcIDsKK+W3u+mbsiA+IG1ha2lndW1vXCA7CivmrovniakgPiB6YW5idXRzdVwgOwor5oWL44CFID4gd2F6YXdhemFcIDsKK+WKq+eVpSA+IGdvdXJ5YWt1XCA7Civlj43liKUgPiB0YW5iZXRzdVwgOwor5q2j55u0ID4gc2hvdWppa2lcIDsKK+WKueeOhyA+IGtvdXJpdHN1XCA7Civlj6rkuosgPiB0YWRhZ290b1wgOwor56Kp5a2mID4gc2VraWdha3VcIDsKK+awtOW1qSA+IG1penVrYXNhXCA7Civnm7TpgIEgPiBjaG9rdXNvdVwgOwor5YiG6KOCID4gYnVucmV0c3VcIDsKK+W9ueafhCA+IHlha3VnYXJhXCA7Civlh4zovrEgPiByeW91am9rdVwgOwor5b6L5paHID4gcml0c3VidW5cIDsKK+eoi+OAhSA+IGhvZG9ob2RvXCA7Civlj47lhaUgPiBzaHV1bnl1dVwgOwor6Iul6baPID4gd2FrYWRvcmlcIDsKK+ayiOWLhyA+IGNoaW4nJ3l1dVwgOwor5Y+M5YWtID4gc3Vnb3Jva3VcIDsKK+W7g+e1tiA+IGhhaXpldHN1XCA7CivpgZPns7ggPiBtaWNoaWl0b1wgOwor5Ym156uLID4gc291cml0c3VcIDsKK+WNlOW/gyA+IGt5b3VzaGluXCA7CivljJfmnJ0gPiBob2t1Y2hvdVwgOwor5YuH54OIID4geXV1cmV0c3VcIDsKK+aAp+WIpSA+IHNlaWJldHN1XCA7Civli4PnhLYgPiBib3RzdXplblwgOwor5Y2Y5byPID4gdGFuc2hpa2lcIDsKK+WPguWIlyA+IHNhbnJldHN1XCA7CivmsJflv4MgPiBraWdva29yb1wgOwor5bed6aKoID4ga2F3YWthemVcIDsKK+WIgOihkyA+IHRvdWp1dHN1XCA7CivljKHmlZEgPiBreW91a3l1dVwgOwor5q2754mpID4gc2hpYnV0c3VcIDsKK+WIs+iInyA+IGt1cmlidW5lXCA7CivlvbzmmK8gPiBrYXJla29yZVwgOwor5YiG6J2VID4gYnVuc2hva3VcIDsKK+eZvemzpSA+IGhha3VjaG91XCA7CivlhbXpo58gPiBoZWlzaG9rdVwgOwor5q6/5qeYID4gdG9ub3NhbWFcIDsKK+WPguWFpSA+IHNhbicnbnl1dVwgOwor5Y+X5LuYID4gdWtldHN1a2VcIDsKK+WNmOW4ryA+IGhpdG9lb2JpXCA7Civnn6/mv4AgPiBreW91Z2VraVwgOwor5oCq5YKRID4ga2Fpa2V0c3VcIDsKK+WIuuiCoSA+IHNhc3VtYXRhXCA7CivmsbLlj5YgPiBrdW1pdG9yaVwgOwor56CC5rWcID4gc3VuYWhhbWFcIDsKK+mBlOethiA+IHRhcHBpdHN1XCA7CivlibLnpLwgPiBrYXRzdXJlaVwgOwor5q+O5pyIID4gbWFpdHN1a2lcIDsKK+WNh+W9oiA+IG1hc3VnYXRhXCA7Civlt53pnKcgPiBrYXdhZ2lyaVwgOwor5YqH55qEID4gZ2VraXRla2lcIDsKK+WIhuiYliA+IGJ1bmtldHN1XCA7Civlj5TkuJYgPiBzaHVrdXNlaVwgOwor5YWA6be5ID4gaGFnZXRha2FcIDsKK+WLmOaxuiA+IGthbmtldHN1XCA7CivljbPlppkgPiBzb2t1bXlvdVwgOwor5Ymj56qBID4ga2VudHN1a3VcIDsKK+W/heWumiA+IGhpdHN1am91XCA7CivmgKXkv6EgPiBreXV1c2hpblwgOwor5YmN57SEID4gemVuJyd5YWt1XCA7Civliofnl5sgPiBnZWtpdHN1dVwgOwor5Y2I5bm0ID4gdW1hZG9zaGlcIDsKK+W5s+iQvSA+IGhpcmFvY2hpXCA7CivnoazlvI8gPiBrb3VzaGlraVwgOwor5bi46K2YID4gam91c2hpa2lcIDsKK+W/g+WtpiA+IHNoaW5nYWt1XCA7Civmr47ml6UgPiBtYWluaWNoaVwgOwor55m96aqoID4gaGFra290c3VcIDsKK+WNh+W4rSA+IG1hc3VzZWtpXCA7CivmqKrpoqggPiB5b2tva2F6ZVwgOwor5oCl5Ly4ID4ga3l1dXNoaW5cIDsKK+mwkOi2syA+IHdhbmlhc2hpXCA7CivpgYXnrYYgPiBjaGloaXRzdVwgOwor5q+N5pa5ID4gaGFoYWthdGFcIDsKK+awt+WjgSA+IGh5b3VoZWtpXCA7Civnnp7nnYAgPiBtYW5jaGFrdVwgOwor6L6b6L6bID4ga2FyYWdhcmFcIDsKK+ebuOitmCA+IHNvdXNoaWtpXCA7Civoj5znrrggPiBzYWliYXNoaVwgOwor6YCx57WmID4gc2h1dWt5dXVcIDsKK+WFq+mdoiA+IGhhY2hpbWVuXCA7CivljZrlraYgPiBoYWt1Z2FrdVwgOwor5q6W5rCRID4gc2hva3VtaW5cIDsKK+mAsue0miA+IHNoaW5reXV1XCA7CivliY3nr4AgPiB6ZW5zZXRzdVwgOwor5b6X5b+DID4gdG9rdXNoaW5cIDsKK+edgOiIuSA+IGNoYWt1c2VuXCA7CivlvJXmva4gPiBoaWtpc2hpb1wgOwor5bi46KitID4gam91c2V0c3VcIDsKK+W+l+W+lyA+IHRva3V0b2t1XCA7CivokL3mva4gPiByYWt1Y2hvdVwgOwor5byx5q+SID4gamFrdWRva3VcIDsKK+WOpeWGtyA+IGtldHN1cmVpXCA7CivolLXlhYMgPiBrdXJhbW90b1wgOwor5bu654mpID4gdGF0ZW1vbm9cIDsKK+atu+a7hSA+IHNoaW1ldHN1XCA7Civli4fmsbogPiB5dXVrZXRzdVwgOwor5YWI6auYID4gc2FraWRha2FcIDsKK+eZuumnhSA+IGhhdHN1ZWtpXCA7CivpgIDoibIgPiB0YWlzaG9rdVwgOwor5rCX5a6kID4ga2lzaGl0c3VcIDsKK+WGhumMkCA+IG1hcnVnaXJpXCA7Civli53mpb0gPiBzaG91cmFrdVwgOwor5YWO6aasID4gdXNhZ2l1bWFcIDsKK+asoOekvCA+IGtldHN1cmVpXCA7CivlvZPmnIggPiB0b3VnZXRzdVwgOwor5Y2D5bO2ID4gY2hpc2hpbWFcIDsKK+aoqumbsiA+IHlva29ndW1vXCA7CivlvpDlvpAgPiBzb3Jvc29yb1wgOwor5YWD6auYID4gbW90b2Rha2FcIDsKK+W4q+iqrCA+IHNoaXNldHN1XCA7CivljIXmkYIgPiBob3VzZXRzdVwgOwor5q6/5pa5ID4gdG9ub2dhdGFcIDsKK+awkeWuvyA+IG1pbnNodWt1XCA7CivpgKPntZAgPiByZW5rZXRzdVwgOwor55u06KiAID4gY2hva3VnZW5cIDsKK+W9juaciCA+IHdhbmdldHN1XCA7Civlt6HpjKsgPiBqdW5zaGFrdVwgOwor5b2O5puyID4gd2Fua3lva3VcIDsKK+ebtOinkiA+IGNob2trYWt1XCA7Civlu4nnm7QgPiByZW5jaG9rdVwgOwor55u06KaaID4gY2hva2tha3VcIDsKK+ebtOimliA+IGNob2t1c2hpXCA7CivmrbvmtLsgPiBzaGlrYXRzdVwgOwor5b+D5aKDID4gc2hpbmt5b3VcIDsKK+W5s+iEiCA+IGhlaW15YWt1XCA7CivlvZPml6UgPiB0b3VqaXRzdVwgOwor5b6p5a2mID4gZnVrdWdha3VcIDsKK+WFpemWoyA+IG55dXVrYWt1XCA7CivmqKrplbcgPiB5b2tvbmFnYVwgOwor5q275rKhID4gc2hpYm90c3VcIDsKK+WMheaLrCA+IGhvdWthdHN1XCA7CivpgIDogbcgPiB0YWlzaG9rdVwgOwor5b+g5ZGKID4gY2h1dWtva3VcIDsKK+W3u+i7uCA+IG1ha2lqaWt1XCA7Civnmb7pm7cgPiBoeWFrdXJhaVwgOwor55m+6ZujID4gaHlha3VuYW5cIDsKK+WHuuiKvSA+IHNodXRzdWdhXCA7Civoj4XnrKAgPiBzdWdlZ2FzYVwgOwor5Ymb55u0ID4gZ291Y2hva3VcIDsKK+WKoOa5vyA+IGthc2hpdHN1XCA7Civnmbrpm7sgPiBoYXRzdWRlblwgOwor5YiG6ISIID4gYnVubXlha3VcIDsKK+ebo+iosyA+IGthbicneWFrdVwgOwor5byP5rOVID4gc2hpa2lob3VcIDsKK+mBheedgCA+IGNoaWNoYWt1XCA7CivlhZrplqUgPiB0b3ViYXRzdVwgOwor5Yil57SNID4gYmV0c3Vub3VcIDsKK+WIkee9sCA+IGtlaWJhdHN1XCA7CivlhoXpgZQgPiBuYWl0YXRzdVwgOwor5q275q2/ID4gc2hpYm90c3VcIDsKK+W/g+WaoiA+IHNoaW4nJ25vdVwgOwor5b255b6XID4geWFrdXRva3VcIDsKK+mAo+eriyA+IHJlbnJpdHN1XCA7Civpg7fmhIEgPiBreW91c2h1dVwgOwor5b235b2/ID4gaG91ZnV0c3VcIDsKK+W6reefsyA+IG5pd2Fpc2hpXCA7CivliIfogIUgPiBraXJlbW9ub1wgOwor6YGF55m6ID4gY2hpaGF0c3VcIDsKK+WFg+memCA+IG1vdG9zYXlhXCA7Civlv5jljbQgPiBib3VreWFrdVwgOwor5q205q20ID4gcmVraXJla2lcIDsKK+eiuuS/oSA+IGtha3VzaGluXCA7Civnn7Pmn7EgPiBzZWtpY2h1dVwgOwor5qyg55WqID4ga2V0c3ViYW5cIDsKK+W9sOW+syA+IHNob3V0b2t1XCA7CivpsYjohbkgPiB0YXJhZnVrdVwgOwor5Ymy54mpID4gd2FyZW1vbm9cIDsKK+W5leiHoyA+IGJha3VzaGluXCA7CivlhaXpi48gPiBueXV1a3lvdVwgOwor6Lu96bSoID4ga2FydWdhbW9cIDsKK+W8r+absiA+IHdhbmt5b2t1XCA7Civlv7Xku48gPiBuZW5idXRzdVwgOwor6I+K55+zID4ga2lrdWlzaGlcIDsKK+WGt+ihgCA+IHJlaWtldHN1XCA7CivlubPntbkgPiBoaXJhZ2ludVwgOwor6YWS5ZGRID4gc2FrZW5vbWlcIDsKK+iRieahnCA+IGhhemFrdXJhXCA7CivnnYDnsbMgPiBjaGFrdWJlaVwgOwor5by35pW1ID4ga3lvdXRla2lcIDsKK+axguWEnyA+IGt5dXVzaG91XCA7CivpgJrnp7AgPiB0c3V1c2hvdVwgOwor5b+g5YOVID4gY2h1dWJva3VcIDsKK+awtOWKmyA+IHN1aXJ5b2t1XCA7CivmrovmnIggPiB6YW5nZXRzdVwgOwor5YuF5pu4ID4gY2hva3VzaG9cIDsKK+WFsemAmiA+IGt5b3V0c3V1XCA7CivliY3nlaUgPiB6ZW5yeWFrdVwgOwor5q6K5pu0ID4ga290b3NhcmFcIDsKK+W8puaciCA+IGdlbmdldHN1XCA7Civnm67olqwgPiBtZWd1c3VyaVwgOwor5Y2U5ZWGID4ga3lvdXNob3VcIDsKK+eZvumMrCA+IGh5YWt1cmVuXCA7CivlhazpgZQgPiBrb3V0YXRzdVwgOwor5byx5pW1ID4gamFrdXRla2lcIDsKK+mAhueulyA+IGd5YWt1c2FuXCA7Civpu5njgIUgPiBtb2t1bW9rdVwgOwor5YWr6YGUID4gaGF0dGF0c3VcIDsKK+WFq+mBkyA+IGhhY2hpZG91XCA7CivljJflsbEgPiBraXRheWFtYVwgOwor5Ym/5ruFID4gc291bWV0c3VcIDsKK+W7g+eJqSA+IGhhaWJ1dHN1XCA7Civlhazov7AgPiBrb3VqdXRzdVwgOwor5b+g5L+hID4gY2h1dXNoaW5cIDsKK+earuizqiA+IGhpc2hpdHN1XCA7Civnn7PmlocgPiBpc2hpYnVtaVwgOwor5b2i5byPID4ga2Vpc2hpa2lcIDsKK+WHi+iQvSA+IGNob3VyYWt1XCA7Civli4Xml6ggPiBjaG9rdXNoaVwgOwor5Y245YCkID4gb3Jvc2hpbmVcIDsKK+efreaXpSA+IHRhbmppdHN1XCA7CivmsLTlhYggPiBtaXp1c2FraVwgOwor5be36KqsID4ga291c2V0c3VcIDsKK+WFsei7myA+IGt5b3V5YWt1XCA7Civpu5LjgIUgPiBrdXJvZ3Vyb1wgOwor5Yml54S8ID4gc3VraXlha2lcIDsKK+mAouedgCA+IGhvdWNoYWt1XCA7Civlu4PnhrEgPiBoYWluZXRzdVwgOwor5b255a6FID4geWFrdXRha3VcIDsKK+WIsOedgCA+IHRvdWNoYWt1XCA7CivojLnom7ggPiB5dWRlZGFrb1wgOwor5by35oyvID4ga3lvdXNoaW5cIDsKK+WGjeiqrCA+IHNhaXNldHN1XCA7CivpgKPnmbogPiByZW5wYXRzdVwgOwor5b6p5ZSxID4gZnVrdXNob3VcIDsKK+efpeaXpSA+IGNoaW5pY2hpXCA7CivlvrTlj44gPiBjaG91c2h1dVwgOwor5YuF5pKwID4gY2hva3VzZW5cIDsKK+WIhuevgCA+IGJ1bnNldHN1XCA7CivphY3liJcgPiBoYWlyZXRzdVwgOwor5Yem572wID4gc2hvYmF0c3VcIDsKK+WGjeiorSA+IHNhaXNldHN1XCA7CivmrbTmnJ0gPiByZWtpY2hvdVwgOwor5YqH5q+SID4gZ2VraWRva3VcIDsKK+i/veeptiA+IHRzdWlreXV1XCA7CivmrbPmnKsgPiBzYWltYXRzdVwgOwor5qiq6Lu4ID4geW9rb2ppa3VcIDsKK+WIhuethiA+IGJ1bnBpdHN1XCA7CivovK/pjLIgPiBzaHV1cm9rdVwgOwor5Y2K5Y+jID4gaGFua3VjaGlcIDsKK+WNgeWTsiA+IGp1dHRldHN1XCA7Civnmb7pgbggPiBoeWFrdXNlblwgOwor5buJ5r2UID4gcmVua2V0c3VcIDsKK+WFiOmHkSA+IHNha2lnYW5lXCA7Civou73po58gPiBrZWlzaG9rdVwgOwor5YiG56uLID4gYnVucml0c3VcIDsKK+WGheiosyA+IHVjaGl3YWtlXCA7Civov73npo8gPiB0c3VpZnVrdVwgOwor55m66YGUID4gaGF0dGF0c3VcIDsKK+assua3sSA+IHlva3VidWthXCA7Civmrarmm7IgPiB3YWlreW9rdVwgOwor5YWl6LaFID4gbnl1dWNob3VcIDsKK+WJsuazqCA+IHdhcmljaHV1XCA7CivmsJHlipsgPiBtaW5yeW9rdVwgOwor5YyX5aOBID4gaG9rdWhla2lcIDsKK+W7g+a7hSA+IGhhaW1ldHN1XCA7CivmsLTkuIogPiBtaW5ha2FtaVwgOwor5Yid55uGID4gaGF0c3Vib25cIDsKK+ato+acrSA+IHNob3VmdWRhXCA7CivokazlvI8gPiBzb3VzaGlraVwgOwor5YWl6LOeID4gbnl1dXNob3VcIDsKK+WFiOmBlCA+IHNlbmRhdHN1XCA7CivmraLmnKggPiB0b21hcmlnaVwgOwor552A55y8ID4gY2hha3VnYW5cIDsKK+WNiuWIhyA+IGhhbnNldHN1XCA7CivliJ3nmbogPiBzaG9oYXRzdVwgOwor6Luf6aqoID4gbmFua290c3VcIDsKK+W9k+WxgCA+IHRvdWt5b2t1XCA7CivmrrrlrrMgPiBzYXRzdWdhaVwgOwor6JC95o6MID4gcmFrdXNob3VcIDsKK+WFseiosyA+IGt5b3V5YWt1XCA7CivlvLflvLEgPiBreW91amFrdVwgOwor5b+D5LitID4gc2hpbmNodXVcIDsKK+W5s+eavyA+IGhpcmF6YXJhXCA7CivliJ3nlKMgPiBoYXRzdXphblwgOwor5bi457eRID4gam91cnlva3VcIDsKK+WNl+S7jyA+IG5hbmZ1dHN1XCA7CivliqvmjqAgPiBnb3VyeWFrdVwgOwor5Y2B5YWrID4ganV1aGFjaGlcIDsKK+WFrOiorSA+IGtvdXNldHN1XCA7Civpganmpa0gPiB0ZWtpZ3lvdVwgOwor6ayx6ayxID4gdXRzdXV0c3VcIDsKK+i/veeZvSA+IHRzdWloYWt1XCA7CivlvpPljZIgPiBqdXVzb3RzdVwgOwor5b6h5YagID4gb2thbm11cmlcIDsKK+W+i+WRgiA+IHJpdHN1cnlvXCA7CivovqPohZUgPiByYXRzdXdhblwgOwor552A55SoID4gY2hha3V5b3VcIDsKK+mAhueUqCA+IGd5YWt1eW91XCA7CivpgIbnlKMgPiBneWFrdXphblwgOwor5YWt6KaqID4gcm9rdXNoaW5cIDsKK+W+jOWPoyA+IGF0b2t1Y2hpXCA7CivlhajoqLMgPiB6ZW4nJ3lha3VcIDsKK+WNmOS4gCA+IHRhbicnaXRzdVwgOwor5biv57eRID4gdGFpcnlva3VcIDsKK+efs+W8kyA+IGlzaGl5dW1pXCA7Civpgbjmm7IgPiBzZW5reW9rdVwgOwor6YCa54mSID4gdHN1dWNob3VcIDsKK+ebtOe3miA+IGNob2t1c2VuXCA7CivnnIznq4sgPiBrZW5yaXRzdVwgOwor5Yil54q2ID4gYmV0c3Vqb3VcIDsKK+WHjee1kCA+IHRvdWtldHN1XCA7Civlt53onYkgPiBrYXdhc2VtaVwgOwor6YO35Zu9ID4ga3lvdWtva3VcIDsKK+WJr+alrSA+IGZ1a3VneW91XCA7Civov73nlLMgPiB0c3Vpc2hpblwgOwor56CC5bGxID4gc3VuYXlhbWFcIDsKK+W+i+WLlSA+IHJpdHN1ZG91XCA7CivmraPmjqUgPiBzZWlzZXRzdVwgOwor6L+r55yfID4gaGFrdXNoaW5cIDsKK+ecgeethiA+IHNlaWhpdHN1XCA7CivlvJ/lvqEgPiBvdG91dG9nb1wgOwor5YWH6LOKID4ga3lvdXpva3VcIDsKK+WHhOe1tiA+IHNlaXpldHN1XCA7CivlvozliJcgPiBrb3VyZXRzdVwgOwor5by35bCGID4ga3lvdXNob3VcIDsKK+W5tOeOhyA+IG5lbnJpdHN1XCA7CivlhpfoiIwgPiBqb3V6ZXRzdVwgOwor5qiZ6Ki7ID4gaHlvdWNodXVcIDsKK+ecn+eZvSA+IG1hc3NoaXJvXCA7CivlhbjolqwgPiB0ZW4nJ3lha3VcIDsKK+W8seWwkSA+IGpha3VzaG91XCA7CivlvLHlsI8gPiBqYWt1c2hvdVwgOwor55u0562UID4gY2hva3V0b3VcIDsKK+efs+WxsSA+IGlzaGl5YW1hXCA7CivojJzoibIgPiBha2FuZWlyb1wgOwor55m66KiAID4gaGF0c3VnZW5cIDsKK+W8k+W9oiA+IHl1bWluYXJpXCA7Civlia/mnKggPiBmdWt1Ym9rdVwgOwor55yf55eHID4gc2hpbnNob3VcIDsKK+WKo+aDhSA+IHJldHN1am91XCA7CivlhqXnvbAgPiBtZWliYXRzdVwgOwor56We44CFID4ga2FtaWdhbWlcIDsKK+WKo+aCqiA+IHJldHN1YWt1XCA7Civprq7ooYAgPiBzZW5rZXRzdVwgOwor5b255YmyID4geWFrdXdhcmlcIDsKK+efs+WupCA+IGlzaGltdXJvXCA7Civoi6XooYYgPiB3YWthc2h1dVwgOwor5q+N5ZCbID4gaGFoYWdpbWlcIDsKK+W5s+eGsSA+IGhlaW5ldHN1XCA7Civnm7TnqI4gPiBjaG9rdXplaVwgOwor6L+R552AID4ga2luY2hha3VcIDsKK+mBk+advyA+IG1pY2hpaXRhXCA7Civli4XlrqMgPiBjaG9rdXNlblwgOwor55+p5bC6ID4ga2FuZWpha3VcIDsKK+WIh+eJqSA+IGtpcmVtb25vXCA7CivpgbjmipwgPiBzZW5iYXRzdVwgOwor55m96J+7ID4gc2hpcm9hcmlcIDsKK+W8t+WlqiA+IGdvdWRhdHN1XCA7CivliLrmrrogPiBzaGlzYXRzdVwgOwor5Yeh55m+ID4gYm9ucHlha3VcIDsKK+W+i+S7pCA+IHJpdHN1cmVpXCA7CivlhoXohb8gPiB1Y2hpbW9tb1wgOwor6LuN6ZalID4gZ3VuYmF0c3VcIDsKK+W5o+eJqSA+IGhlaW1vdHN1XCA7CivpgLjmpb0gPiBpdHN1cmFrdVwgOwor6YCf5rG6ID4gc29ra2V0c3VcIDsKK+WMl+WBtCA+IGhva3Vzb2t1XCA7CivlvavliLsgPiBjaG91a29rdVwgOwor6YCG5r2uID4gc2FrYXNoaW9cIDsKK+egsuWIlyA+IGhvdXJldHN1XCA7CivmraPlvI8gPiBzZWlzaGlraVwgOwor5Yag57W2ID4ga2FuemV0c3VcIDsKK+auv+WOnyA+IHRvbm9iYXJhXCA7Civlh7jnirYgPiB0b3RzdWpvdVwgOwor5YaF6IKhID4gdWNoaW1vbW9cIDsKK+mBlOaWhyA+IHRhdHN1YnVuXCA7CivlvoHkvJAgPiBzZWliYXRzdVwgOwor5bm75ruFID4gZ2VubWV0c3VcIDsKK+W8vuWcpyA+IGRhbicnYXRzdVwgOwor6Lu96Lu9ID4ga2FydWdhcnVcIDsKK+WFheihgCA+IGp1dWtldHN1XCA7CivlhoXogbcgPiBuYWlzaG9rdVwgOwor6Luf6YmEID4gbmFudGV0c3VcIDsKK+W5sua9riA+IGhpa2lzaGlvXCA7Civnn7PloqggPiBzZWtpYm9rdVwgOwor5Yik5rG6ID4gaGFua2V0c3VcIDsKK+efreWknCA+IG1pamlrYXlvXCA7CivlvLflnKcgPiBreW91YXRzdVwgOwor5bmz5ruRID4gaGVpa2F0c3VcIDsKK+W8t+WbvSA+IGt5b3Vrb2t1XCA7CivprKLplbcgPiBiaW4nJ25hZ2FcIDsKK+WGhue9kCA+IG1hcnVnYW1hXCA7Civnm7Tnm7QgPiBqaWtpamlraVwgOwor5be757SZID4gbWFraWdhbWlcIDsKK+WFvOiBtyA+IGtlbnNob2t1XCA7CivmrKDmlocgPiBrZXRzdWJ1blwgOwor5Yas56m6ID4gZnV5dXpvcmFcIDsKK+mBheaXpSA+IGNoaWppdHN1XCA7CivliKXmrr8gPiBiZXRzdWRlblwgOwor5Yil5q61ID4gYmV0c3VkYW5cIDsKK+mAhua1qiA+IHNha2FuYW1pXCA7Civnmb3ok64gPiBieWFrdXJlblwgOwor55+z5Z6jID4gaXNoaWdha2lcIDsKK+mDt+S/lyA+IGt5b3V6b2t1XCA7Civou7jotrMgPiBqaWt1YXNoaVwgOwor6YCG5rOiID4gc2FrYW5hbWlcIDsKK+ebrueahCA+IG1va3V0ZWtpXCA7CivokKnlsZ4gPiBoYWdpem9rdVwgOwor6YCf5qWtID4gaGF5YXdhemFcIDsKK+auteWIpSA+IHRhbmJldHN1XCA7CivluILnq4sgPiBzaGlyaXRzdVwgOwor6Iul6I2JID4gd2FrYWt1c2FcIDsKK+edgOawtCA+IGNoYWt1c3VpXCA7Civou6LovY0gPiB0ZW50ZXRzdVwgOwor6bCQ55quID4gd2FuaWdhd2FcIDsKK+atouWuvyA+IHNoaXNodWt1XCA7CivoirjooZMgPiBnZWlqdXRzdVwgOwor5q2j5a6XID4gbWFzYW11bmVcIDsKK+aoquiFuSA+IHlva29iYXJhXCA7CivlhpfnrYYgPiBqb3VoaXRzdVwgOwor5YWs6IG3ID4ga291c2hva3VcIDsKK+WQhOOAhSA+IHNvcmV6b3JlXCA7CivliIPmuKEgPiBoYXdhdGFyaVwgOwor6bOp5bC+ID4gbWl6b29jaGlcIDsKK+mro+mrtCA+IGhvdWZ1dHN1XCA7Civlh7rmvJQgPiBzaHV0c3VlblwgOwor6YGp5b25ID4gdGVraXlha3VcIDsKK+i6q+mVtyA+IHNoaW5jaG91XCA7CivlipvlraYgPiByaWtpZ2FrdVwgOwor6Imy6YGTID4gc2hpa2lkb3VcIDsKK+eZvuiKuCA+IGh5YWt1Z2VpXCA7Civli6LlipsgPiBzZWlyeW9rdVwgOwor6Ii56ZyKID4gZnVuYWRhbWFcIDsKK+i/veaxgiA+IHRzdWlreXV1XCA7CivnoILljp8gPiBzdW5haGFyYVwgOwor5b2O5YWlID4gd2FuJydueXV1XCA7CivliLbmnK0gPiBzZWlzYXRzdVwgOwor5qW96ZW3ID4gZ2FrdWNob3VcIDsKK+ebtOeQgyA+IGNob2treXV1XCA7CivliIbms4wgPiBidW5waXRzdVwgOwor5qW16ZmQID4ga3lva3VnZW5cIDsKK+muq+iGmiA+IHNhbWVoYWRhXCA7CivnmbroibIgPiBoYXNzaG9rdVwgOwor6JGs5YiXID4gc291cmV0c3VcIDsKK+WLheWVjyA+IGNob2t1bW9uXCA7CivlvL7lipsgPiBkYW5yeW9rdVwgOwor5byP5aC0ID4gc2hpa2lqb3VcIDsKK+mrmOmrmCA+IHRha2FkYWthXCA7CivlibLlvJUgPiB3YXJpYmlraVwgOwor5qyy5b+DID4geW9rdXNoaW5cIDsKK+mBuOWxgCA+IHNlbmt5b2t1XCA7CivliZTmiokgPiB0ZWtrZXRzdVwgOwor5qyy5b6XID4geW9rdXRva3VcIDsKK+muruiCiSA+IHNlbicnbmlrdVwgOwor6YCG5qeYID4gc2FrYXNhbWFcIDsKK+mAsuaSgyA+IHNoaW5nZWtpXCA7Civli5XlipsgPiBkb3VyeW9rdVwgOwor5YuF5ZG9ID4gY2hva3VtZWlcIDsKK+WHm+eDiCA+IHJpbnJldHN1XCA7Civmrablo6sgPiBtb25vbm9mdVwgOwor6a6r6IKMID4gc2FtZWhhZGFcIDsKK+auuuS6uiA+IHNhdHN1amluXCA7Civlg63otoogPiBzZW4nJ2V0c3VcIDsKK+mAo+aXpSA+IHJlbmppdHN1XCA7CivmraPlpKIgPiBtYXNheXVtZVwgOwor5Yi35pWwID4gc2F0c3VzdXVcIDsKK+i7i+i9oiA+IGF0c3VyZWtpXCA7CivliKXmnaEgPiBiZXRzdWpvdVwgOwor5YSy6JOEID4gY2hvY2hpa3VcIDsKK+WGhueqkyA+IG1hcnVtYWRvXCA7Civoi6XogIUgPiB3YWthbW9ub1wgOwor6LuK6L2EID4gc2hha2F0c3VcIDsKK+aBkOOAhSA+IGtvd2Fnb3dhXCA7CivpgJrmmoEgPiB0c3V1Z3lvdVwgOwor5YmN5omVID4gbWFlYmFyYWlcIDsKK+eZvuiBniA+IGh5YWt1YnVuXCA7CivnmbrogrIgPiBoYXRzdWlrdVwgOwor5Y+q44CFID4gdGFkYXRhZGFcIDsKK+mAkOadoSA+IGNoaWt1am91XCA7Civnm4rnm4ogPiBtYXN1bWFzdVwgOwor5qiq57ieID4geW9rb2ppbWFcIDsKK+mBlOW8gSA+IHRhdHN1YmVuXCA7Civlt6Pnqp8gPiBzb3VrdXRzdVwgOwor5bed562LID4ga2F3YXN1amlcIDsKK+WDo+i2iiA+IHNlbicnZXRzdVwgOwor5be+552AID4ga2luY2hha3VcIDsKK+WFjeiBtyA+IG1lbnNob2t1XCA7Civli4flipsgPiB5dXVyeW9rdVwgOwor5bed56uvID4ga2F3YWJhdGFcIDsKK+WLgeWNkiA+IGtlaXNvdHN1XCA7CivlhoXnpZ0gPiB1Y2hpaXdhaVwgOwor6I2J54mpID4ga3VzYW1vbm9cIDsKK+Wys+m6kyA+IGdha3Vyb2t1XCA7CivliIbmpbUgPiBidW5reW9rdVwgOwor5qeN6KGTID4gc291anV0c3VcIDsKK+mAo+aOpSA+IHJlbnNldHN1XCA7CivlhaXnsY0gPiBueXV1c2VraVwgOwor5Ymv5bCGID4gZnVrdXNob3VcIDsKK+WJr+WvqSA+IGZ1a3VzaGluXCA7Civnn6XlipsgPiBjaGlyeW9rdVwgOwor5Ymy5a6JID4gd2FyaXlhc3VcIDsKK+WHpuaxuiA+IHNob2tldHN1XCA7CivlubTmnKsgPiBuZW5tYXRzdVwgOwor5bm+5pelID4gaWt1bmljaGlcIDsKK+W5tOaciCA+IG5lbmdldHN1XCA7CivliIfmoKogPiBraXJpa2FidVwgOwor5Yq55YqbID4ga291cnlva3VcIDsKK+mquOmqqCA+IGdhaWtvdHN1XCA7Civlhaznq4sgPiBrb3VyaXRzdVwgOwor5byP5Y+wID4gc2hpa2lkYWlcIDsKK+mqqOmxlyA+IGtvdHN1cmluXCA7Civlho3nmbogPiBzYWloYXRzdVwgOwor5q275YqbID4gc2hpcnlva3VcIDsKK+WKtOWKmyA+IHJvdXJ5b2t1XCA7CivmqKrnrYsgPiB5b2tvc3VqaVwgOwor5beM56qfID4gZ2Fua3V0c3VcIDsKK+WGrOeJqSA+IGZ1eXVtb25vXCA7CivpgIbmlbAgPiBneWFrdXN1dVwgOwor5YWO57ayID4gdXNhZ2lhbWlcIDsKK+eZveezuCA+IHNoaXJhaXRvXCA7CivmrbvliKUgPiBzaGliZXRzdVwgOwor5YiH5pytID4ga2lyaWZ1ZGFcIDsKK+WIh+acmyA+IHNldHN1Ym91XCA7CivlubPml6UgPiBoZWlqaXRzdVwgOwor5bem55uuID4gaGlkYXJpbWVcIDsKK+i7veiUkSA+IGtlaWJldHN1XCA7CivliaPlrqIgPiBrZW5reWFrdVwgOwor5YaF55m6ID4gbmFpaGF0c3VcIDsKK+WLheS9vyA+IGNob2t1c2hpXCA7CivoiovomasgPiBpbW9tdXNoaVwgOwor5Y+I44CFID4gbWF0YW1hdGFcIDsKK+aki+mzpSA+IG11a3Vkb3JpXCA7CivlubPmlL8gPiBoaXJhbWFzYVwgOwor6aqo6auEID4ga290c3V6dWlcIDsKK+ebrua4rCA+IG1va3Vzb2t1XCA7CivlhYPnt6AgPiBtb3RvamltZVwgOwor55+z5LqAID4gaXNoaWdhbWVcIDsKK+WFiOe0sCA+IHNha2lib3NvXCA7Civli4Xku7sgPiBjaG9rdW5pblwgOwor55+b5YWIID4gaG9rb3Nha2lcIDsKK+W6puW6piA+IHRhYml0YWJpXCA7Civli4Xku6QgPiBjaG9rdXJlaVwgOwor5YWI57SEID4gc2VuJyd5YWt1XCA7CivokKnljp8gPiBoYWdpd2FyYVwgOwor5YWl56WeID4gbnl1dXNoaW5cIDsKK+atr+WIlyA+IHNoaXJldHN1XCA7CivliIfmlq0gPiBzZXRzdWRhblwgOwor5buD5auhID4gaGFpY2hha3VcIDsKK+atquWKmyA+IHdhaXJ5b2t1XCA7CivlvI/lhbggPiBzaGlraXRlblwgOwor6L+95pKDID4gdHN1aWdla2lcIDsKK+iKi+iUkyA+IGltb2R6dXJ1XCA7CivmqJnnq6AgPiBoeW91c2hvdVwgOwor5be754mpID4gbWFraW1vbm9cIDsKK+ebuOauuiA+IHNvdXNhdHN1XCA7CivlhpfniakgPiBqb3VidXRzdVwgOwor5YmN5bGIID4gemVua3V0c3VcIDsKK+WIs+W9oiA+IGt1cmlrYXRhXCA7CivmraPlibIgPiBzZWlrYXRzdVwgOwor6LqN6YCyID4geWFrdXNoaW5cIDsKK+W8geWIpSA+IGJlbmJldHN1XCA7CivnnYDmiYsgPiBjaGFrdXNodVwgOwor5q2j5YiHID4gc2Vpc2V0c3VcIDsKK+iMtua8rCA+IGNoYWR6dWtlXCA7CivmgJbjgIUgPiBrb3dhZ293YVwgOwor55WZ6bOlID4gcnl1dWNob3VcIDsKK+mBjuWksSA+IGthc2hpdHN1XCA7CivoiLnotrMgPiBmdW5hYXNoaVwgOwor5YW155WlID4gaGVpcnlha3VcIDsKK+eZveelqCA+IGhha3VoeW91XCA7CivlgY/po58gPiBoZW5zaG9rdVwgOwor5bel546HID4ga291cml0c3VcIDsKK+atjOWQiCA+IHV0YWF3YXNlXCA7CivoupHouoUgPiB0c3V0c3VqaVwgOwor5q2M5Y+jID4gdXRhZ3VjaGlcIDsKK+mwueacqCA+IGthdHN1b2dpXCA7Civov6vmkoMgPiBoYWt1Z2VraVwgOwor55u45qeMID4gYWlkenVjaGlcIDsKK+axsuOAhSA+IGt5dXVreXV1XCA7CivliJ3mgYsgPiBoYXRzdWtvaVwgOwor5YWI56iLID4gc2FraWhvZG9cIDsKK+edgOaDsyA+IGNoYWt1c291XCA7CivoiLnos4MgPiBmdW5hY2hpblwgOwor6Iy25riLID4gY2hhc2hpYnVcIDsKK+mAj+W+uSA+IHRvdXRldHN1XCA7Civnl4XouqsgPiBieW91c2hpblwgOwor6YCy5a2mID4gc2hpbmdha3VcIDsKK+amguiqrCA+IGdhaXNldHN1XCA7CivokL3kuIEgPiByYWt1Y2hvdVwgOwor6YCa5bizID4gdHN1dWNob3VcIDsKK+W6iuW6lyA+IHRva29taXNlXCA7Civoia/olqwgPiByeW91eWFrdVwgOwor5qyg5aC0ID4ga2V0c3Vqb3VcIDsKK+WIh+aIuyA+IHNldHN1cmFpXCA7CivmqJnnn7MgPiBoeW91c2VraVwgOwor5YG96YeRID4gbmlzZWdhbmVcIDsKK+ebruaomSA+IG1va3VoeW91XCA7Civmpb3oqr8gPiBnYWt1Y2hvdVwgOwor5Yqb5YCGID4gcmlraXJ5b3VcIDsKK+mBuOWIpSA+IHNlbmJldHN1XCA7CivliLrlrqIgPiBzaGlreWFrdVwgOwor5bid5qygID4gdGVpa2V0c3VcIDsKK+WHuuaNkCA+IHNodXRzdWVuXCA7CivnnYDlv4MgPiBraWdva29yb1wgOwor6YCQ5bm0ID4gY2hpa3VuZW5cIDsKK+muq+eariA+IHNhbWVnYXdhXCA7CivluoPluoMgPiBoaXJvYmlyb1wgOwor5qiq55S6ID4geW9rb2Nob3VcIDsKK+i/keaXpSA+IGtpbmppdHN1XCA7CivluoPluYUgPiBoaXJvaGFiYVwgOwor5Yqb5L2cID4gcmlraXNha3VcIDsKK+mzqeS/oSA+IGt5dXVzaGluXCA7CivmpJzplrIgPiBrZW4nJ2V0c3VcIDsKK+eerOWIuyA+IHNodW5rb2t1XCA7CivnmbrnnYAgPiBoYXRjaGFrdVwgOwor5qW16KuWID4ga3lva3Vyb25cIDsKK+edgOW8viA+IGNoYWt1ZGFuXCA7CivlhbjniakgPiB0ZW5idXRzdVwgOwor55m955qZID4gaGFrdXNla2lcIDsKK+eZveeZvSA+IGhha3VoYWt1XCA7CivliIfmg4UgPiBzZXRzdWpvdVwgOwor5YiR5b6LID4ga2Vpcml0c3VcIDsKK+aomeeahCA+IGh5b3V0ZWtpXCA7Civlh7rmiYAgPiBkZWRva29yb1wgOwor6L+95b60ID4gdHN1aWNob3VcIDsKK+edgOW6lSA+IGNoYWt1dGVpXCA7CivlhZrnlaUgPiB0b3VyeWFrdVwgOwor5qW16KiAID4ga3lva3VnZW5cIDsKK+W6iuWxsSA+IHRva295YW1hXCA7Civnl5voppogPiB0c3V1a2FrdVwgOwor5bm05byPID4gbmVuc2hpa2lcIDsKK+eZuueZjCA+IGhhdHN1Z2FuXCA7CivnnYDluL0gPiBjaGFrdWJvdVwgOwor5YaF5r+gID4gdWNoaWJvcmlcIDsKK+WFiOedgCA+IHNlbmNoYWt1XCA7CivnnYDluK8gPiBjaGFrdXRhaVwgOwor5bi45pilID4gdG9rb2hhcnVcIDsKK+i/veW8lCA+IHRzdWljaG91XCA7CivojbfmjYwgPiBuaXNhYmFraVwgOwor5bmz5bqtID4gaGlyYW5pd2FcIDsKK+WxsemzqSA+IHlhbWFiYXRvXCA7CivpgLLlooMgPiBzaGlua3lvdVwgOwor5bGx6bOlID4geWFtYWRvcmlcIDsKK+mAmuWtpiA+IHRzdXVnYWt1XCA7CivnlZzpoZ4gPiBjaGlrdXJ1aVwgOwor5bmz5bqVID4gaGlyYXpva29cIDsKK+WFpeeNhCA+IG55dXVnb2t1XCA7CivlhazniLUgPiBrb3VzaGFrdVwgOwor6Imy6Im2ID4gaXJvdHN1eWFcIDsKK+W5s+W5lSA+IGhpcmFtYWt1XCA7CivlhYjnmbogPiBzZW5wYXRzdVwgOwor5Ym05YiHID4gZ2Fpc2V0c3VcIDsKK+eZveeTnCA+IHNoaXJvdXJpXCA7Civov5HmjqUgPiBraW5zZXRzdVwgOwor6Lmy6LieID4gdHN1a3ViYWlcIDsKK+i7ouiBtyA+IHRlbnNob2t1XCA7CivpgI/lr58gPiB0b3VzYXRzdVwgOwor5YqH5L2cID4gZ2VraXNha3VcIDsKK+edgOWyuCA+IGNoYWt1Z2FuXCA7Civou7jntKIgPiBqaWt1c2FrdVwgOwor5bit5paZID4gc2VraXJ5b3VcIDsKK+asoOWPtyA+IGtldHN1Z291XCA7Civnmbrnj74gPiBoYXRzdWdlblwgOwor55m+542jID4gaHlha3VqdXVcIDsKK+WDmuiIuSA+IHRvbW9idW5lXCA7CivnnJ/lv4MgPiBtYWdva29yb1wgOwor5YqH5LitID4gZ2VraWNodXVcIDsKK+i5hOmJhCA+IHRlaXRldHN1XCA7Civlh7rlvLUgPiBzaHV0Y2hvdVwgOwor5YOn6IG3ID4gc291c2hva3VcIDsKK+mAgOWxiCA+IHRhaWt1dHN1XCA7CivliY3lk7IgPiB6ZW50ZXRzdVwgOwor5Ye65busID4gc2h1dHN1cm9cIDsKK+mBqeS9nCA+IHRla2lzYWt1XCA7CivlhoXms5UgPiB1Y2hpbm9yaVwgOwor5Ye65bqmID4gc2h1dHN1ZG9cIDsKK+WKg+S4gCA+IGtha3VpdHN1XCA7Civou7jnrrEgPiBqaWt1YmFrb1wgOwor5bOh6LC3ID4ga3lvdWtva3VcIDsKK+WHuuW4rSA+IHNodXNzZWtpXCA7CivliKXlo7IgPiBiZXRzdWJhaVwgOwor5bid5pelID4gdGVpaml0c3VcIDsKK+ani+eviSA+IGtvdWNoaWt1XCA7Civnm67mkoMgPiBtb2t1Z2VraVwgOwor6LuN6IG3ID4gZ3Vuc2hva3VcIDsKK+WIhuWxgCA+IGJ1bmt5b2t1XCA7CivlhqzmnI0gPiBmdXl1ZnVrdVwgOwor6Iy25p2TID4gY2hhc2hha3VcIDsKK+murueDiCA+IHNlbnJldHN1XCA7Civpq5joqqwgPiBrb3VzZXRzdVwgOwor5YaZ5qSNID4gc2hhc2hva3VcIDsKK+WIpeWggiA+IGJldHN1ZG91XCA7CivliIblrr8gPiBidW5zaHVrdVwgOwor5YWo5ruFID4gemVubWV0c3VcIDsKK+WxsemiqCA+IHlhbWFrYXplXCA7CivojYnmkbogPiBrdXNhenVyaVwgOwor5YWI54mpID4gc2FraW1vbm9cIDsKK+eZvueCuSA+IGh5YWt1dGVuXCA7CivpgIblpKIgPiBzYWtheXVtZVwgOwor5YWJ54axID4ga291bmV0c3VcIDsKK+WJjeWIlyA+IHplbnJldHN1XCA7CivpgIblooMgPiBneWFra3lvdVwgOwor55mH55mqID4ga2Fuc2hha3VcIDsKK+i7jee4riA+IGd1bnNodWt1XCA7Civprq3mvIEgPiBzYWtlcnlvdVwgOwor6YGU5Lq6ID4gdGF0c3VqaW5cIDsKK+iJsue0mSA+IHNoaWtpc2hpXCA7Civnmb3mv4EgPiBoYWt1ZGFrdVwgOwor5YSB56eAID4gc2h1bnNodXVcIDsKK+W5heW6gyA+IGhhYmFoaXJvXCA7CivlubPlo7AgPiBoeW91c2hvdVwgOwor5bGx6ZynID4geWFtYWdpcmlcIDsKK+mAuOWHuiA+IGlzc2h1dHN1XCA7Civnm5fmkq4gPiB0b3VzYXRzdVwgOwor5YWl5rW0ID4gbnl1dXlva3VcIDsKK+asoOS+vyA+IGtldHN1YmluXCA7Civou73nn7MgPiBrYXJ1aXNoaVwgOwor5YiH5aa7ID4ga2lyaXp1bWFcIDsKK+W3u+acqyA+IGthbm1hdHN1XCA7CivpgJrllYYgPiB0c3V1c2hvdVwgOwor6Led6aqoID4ga3lva290c3VcIDsKK+WFpea0pSA+IG55dXVzaGluXCA7CivnlJ/pppYgPiBuYW1ha3ViaVwgOwor5YWl5rSbID4gbnl1dXJha3VcIDsKK+ebtOaDhSA+IGNob2t1am91XCA7Civlh7blroUgPiBreW91dGFrdVwgOwor5bGx6ZqbID4geWFtYWdpd2FcIDsKK+W6reWFiCA+IG5pd2FzYWtpXCA7CivlsbHpmbAgPiB5YW1ha2FnZVwgOwor5YmD5YiAID4ga2FtaXNvcmlcIDsKK+aoquazoiA+IHlva29uYW1pXCA7CivnnYDlnLAgPiBjaGFrdWNoaVwgOwor55uX5o6YID4gdG91a3V0c3VcIDsKK+ecgeW6gSA+IHNob3VjaG91XCA7CivnlZnph5EgPiB0b21lZ2FuZVwgOwor5qmL5qKBID4ga3lvdXJ5b3VcIDsKK+eUuumVtyA+IGNob3VjaG91XCA7CivlsZ7poJggPiB6b2t1cnlvdVwgOwor6YCa5ZGKID4gdHN1dWtva3VcIDsKK+WJjeWAnyA+IHplbnNoYWt1XCA7CivmrKDkuY8gPiBrZXRzdWJvdVwgOwor5qW16Ie0ID4ga3lva3VjaGlcIDsKK+WIpeWRvSA+IGJldHN1bWVpXCA7Civoia/nrZYgPiByeW91c2FrdVwgOwor55SY6aOfID4gYW1hc2hva3VcIDsKK+WGheaeoCA+IHVjaGl3YWt1XCA7CivliKXlkI0gPiBiZXRzdW1laVwgOwor5qmL5p2tID4gaGFzaGlndWlcIDsKK+WIpeWPtyA+IGJldHN1Z291XCA7CivmqYvmnZkgPiBoYXNoaWd1aVwgOwor5YCf6YqtID4gc2hha3VzZW5cIDsKK+ecieWwuyA+IG1heXVqaXJpXCA7CivnnJ/lpoIgPiBzaGluJydueW9cIDsKK+iLpeawtCA+IHdha2FtaXp1XCA7CivpgJrlipsgPiB0c3V1cmlraVwgOwor5bqX5YWIID4gbWlzZXNha2lcIDsKK+eVlOmBkyA+IGF6ZW1pY2hpXCA7Civoi6Xmrr8gPiB3YWthdG9ub1wgOwor6YCa5YmHID4gdHN1dXNva3VcIDsKK+WIneWPoyA+IHNob2t1Y2hpXCA7CivmqL3mn78gPiB0YXJ1Z2FraVwgOwor6Iet6KaaID4gc2h1dWtha3VcIDsKK+mAseS8kSA+IHNodXVreXV1XCA7CivnnIHlr58gPiBzZWlzYXRzdVwgOwor5qiq5qeYID4geW9rb3phbWFcIDsKK+aoquanjSA+IHlva295YXJpXCA7CivlhrflvrkgPiByZWl0ZXRzdVwgOwor552j5L+DID4gdG9rdXNva3VcIDsKK+WIpOWIpSA+IGhhbmJldHN1XCA7CivoirPng4ggPiBob3VyZXRzdVwgOwor5bi45a6iID4gam91a3lha3VcIDsKK+W4s+WwuyA+IGNob3VqaXJpXCA7Civlh7rlnJ8gPiBzaHV0c3Vkb1wgOwor6IuX5rC0ID4gbmF3YW1penVcIDsKK+WFiOaxuiA+IHNlbmtldHN1XCA7Civou73njocgPiBrZWlzb3RzdVwgOwor5bGx6Ym+ID4geWFtYWJva29cIDsKK+mrhOiZqyA+IHp1aW11c2hpXCA7Civnmobmp5ggPiBtaW5hc2FtYVwgOwor5Yil5YaMID4gYmVzc2F0c3VcIDsKK+WIpeWGiiA+IGJlc3NhdHN1XCA7CivluLflrZAgPiBrYXRhYmlyYVwgOwor6I2J5biCID4ga3VzYWljaGlcIDsKK+eZveaqgCA+IGJ5YWt1ZGFuXCA7Civoi6Xmp5ggPiB3YWthc2FtYVwgOwor55u05bCEID4gY2hva3VzaGFcIDsKK+WxsemHjCA+IHlhbWF6YXRvXCA7CivpgIDljbQgPiB0YWlreWFrdVwgOwor6L+95Y+KID4gdHN1aWt5dXVcIDsKK+anjeeOiSA+IHlhcmlkYW1hXCA7CivnlLLpiYQgPiBrb3V0ZXRzdVwgOwor5bGA6Z2iID4ga3lva3VtZW5cIDsKK+mAmuS/oSA+IHRzdXVzaGluXCA7CivmpbXnt5ogPiBreW9rdXNlblwgOwor6YCa5L+XID4gdHN1dXpva3VcIDsKK+iIuee4gSA+IGZ1bmFiZXJpXCA7CivnmpPmnIggPiBrb3VnZXRzdVwgOwor6Imy55u4ID4gc2hpa2lzb3VcIDsKK+iJsuebsiA+IHNoaWtpbW91XCA7CivnnInloqggPiBtYXl1enVtaVwgOwor5YaF5o6lID4gbmFpc2V0c3VcIDsKK+W3tOaIpiA+IHRvbW9lc2VuXCA7Civlhajmm7IgPiB6ZW5reW9rdVwgOwor5b6Q44CFID4gc29yb3Nvcm9cIDsKK+i7uOeJqSA+IGppa3Vtb25vXCA7Civmpa3nuL4gPiBneW91c2VraVwgOwor5YWl5pyoID4gbnl1dWJva3VcIDsKK+eZu+altSA+IHRvdWt5b2t1XCA7CivmpbXntLAgPiBnb2t1Ym9zb1wgOwor5YWl5pydID4gbnl1dWNob3VcIDsKK+mAgeWIpSA+IHNvdWJldHN1XCA7CivotrPpppYgPiBhc2hpa3ViaVwgOwor5YW85pGCID4ga2Vuc2V0c3VcIDsKK+WIpeS+vyA+IGJldHN1YmluXCA7CivlubTliKUgPiBuZW5iZXRzdVwgOwor5bGA6ZmQID4ga3lva3VnZW5cIDsKK+eUn+mMsiA+IG5hbWFyb2t1XCA7Civlt6fmi5kgPiBrb3VzZXRzdVwgOwor55m95qKFID4gc2hpcmF1bWVcIDsKK+iHhuiqrCA+IG9rdXNldHN1XCA7CivlhYjmp5ggPiBzYWtpc2FtYVwgOwor5YWo5pelID4gemVuaml0c3VcIDsKK+W4g+W8lSA+IG51bm9iaWtpXCA7Civnm6Plr58gPiBrYW5zYXRzdVwgOwor5YiG5YqbID4gYnVucnlva3VcIDsKK+WCjeiAsyA+IGthdGFtaW1pXCA7CivnlaXoqIAgPiByeWFrdWdlblwgOwor5Yil5Lq6ID4gYmV0c3VuaW5cIDsKK+WIhuWJsiA+IGJ1bmthdHN1XCA7CivlsI/prZogPiBrb3pha2FuYVwgOwor5bem5omLID4gaGlkYXJpdGVcIDsKK+iJsueUuiA+IGlyb21hY2hpXCA7CivoibLnlLcgPiBpcm9vdG9rb1wgOwor5qW956ugID4gZ2FrdXNob3VcIDsKK+WIhuWIpSA+IGJ1bmJldHN1XCA7CivliIbliJcgPiBidW5yZXRzdVwgOwor6ayx55eFID4gdXRzdWJ5b3VcIDsKK+mAhuS/riA+IGd5YWt1c2h1XCA7Civnm7Tlo7IgPiBjaG9rdWJhaVwgOwor5YCf6LK4ID4gc2hha3V0YWlcIDsKK+WAn+iyoSA+IHNoYWt1emFpXCA7CivlhqzlsbEgPiBmdXl1eWFtYVwgOwor5YiG5YaKID4gYnVuc2F0c3VcIDsKK+i7jeeVpSA+IGd1bnJ5YWt1XCA7CivnlKjpgZQgPiB5b3V0YXRzdVwgOwor6I2S5aS3ID4gYXJhZWJpc3VcIDsKK+alteerryA+IGt5b2t1dGFuXCA7CivnnJ/ljZcgPiBtYW1pbmFtaVwgOwor55Wl6KOFID4gcnlha3Vzb3VcIDsKK+WIl+S8nSA+IHJldHN1ZGVuXCA7CivlhbHmjK8gPiBreW91c2hpblwgOwor6Ii556uvID4gZnVuYWJhdGFcIDsKK+mvqOW6pyA+IGt1amlyYXphXCA7CivnnYDku7sgPiBjaGFrdW5pblwgOwor6L675aCCID4gdHN1amlkb3VcIDsKK+S/uumBlCA+IG9yZXRhY2hpXCA7CivnnJ/li4cgPiBzaGluJyd5dXVcIDsKK+WCmOe0mSA+IGthc2FnYW1pXCA7Civnmb3mmLwgPiBoYWt1Y2h1dVwgOwor55e855a+ID4ga29zaGl0c3VcIDsKK+WHuuWHpiA+IGRlZG9rb3JvXCA7Civlgb3ogIUgPiBuaXNlbW9ub1wgOwor5YWL5pyNID4ga29rdWZ1a3VcIDsKK+eUu+izqiA+IGdhc2hpdHN1XCA7Civot7Pouo0gPiBjaG91eWFrdVwgOwor6L+95Ly4ID4gdHN1aXNoaW5cIDsKK+eZuuaYjiA+IGhhdHN1bWVpXCA7CivpgIbkuIogPiBneWFrdWpvdVwgOwor5YWI5pyIID4gc2VuZ2V0c3VcIDsKK+W5s+S7hCA+IGh5b3Vzb2t1XCA7CivlhoblvaIgPiBtYXJ1Z2F0YVwgOwor5bCR6aGNID4gc2hvdWdha3VcIDsKK+i/lOWNtCA+IGhlbmt5YWt1XCA7CivlsI/poY0gPiBzaG91Z2FrdVwgOwor5Ye25YWGID4ga3lvdWNob3VcIDsKK+mpgOmAsiA+IGJha3VzaGluXCA7CivmpZPns5YgPiBrYWVkZXRvdVwgOwor5bmV5YaFID4gbWFrdXVjaGlcIDsKK+W3u+WwuiA+IG1ha2lqYWt1XCA7CivlhYjml6UgPiBzZW5qaXRzdVwgOwor5YCf6KanID4gc2hha3VyYW5cIDsKK+mnkumzpSA+IGtvbWFkb3JpXCA7CivlgaXohJogPiBrZW5reWFrdVwgOwor5bmV5YOaID4gYmFrdXJ5b3VcIDsKK+WGmeWunyA+IHNoYWppdHN1XCA7CivlhYPml6UgPiBnYW5qaXRzdVwgOwor55m95o+PID4gaGFrdWJ5b3VcIDsKK+Wwu+mHjSA+IHNoaXJpb21vXCA7CivohJvpqqggPiBrZWlrb3RzdVwgOwor5YWD5pa5ID4gbW90b2thdGFcIDsKK+eZuuaPmiA+IGhhdHN1eW91XCA7CivojLblo7ogPiBjaGF0c3Vib1wgOwor5L+u6LqrID4gc2h1dXNoaW5cIDsKK+eZuuaOmCA+IGhha2t1dHN1XCA7Civlt53lupUgPiBrYXdhem9rb1wgOwor5bed5bqKID4ga2F3YWRva29cIDsKK+WHtuS9nCA+IGt5b3VzYWt1XCA7CivmpoLnlaUgPiBnYWlyeWFrdVwgOwor5bed5bmFID4ga2F3YWhhYmFcIDsKK+WHuuS6rCA+IHNodWtreW91XCA7Civlgrfnl4UgPiBzaG91YnlvdVwgOwor5qSO6Iy4ID4gc2hpaXRha2VcIDsKK+W3nuW3niA+IHNodXVzaHV1XCA7CivlgZzogbcgPiB0ZWlzaG9rdVwgOwor5L6R6aOfID4geXV1c2hva3VcIDsKK+WGheWxgCA+IG5haWt5b2t1XCA7CivnlLfopqogPiBvdG9rb295YVwgOwor5Yeb5Ya9ID4gcmlucmV0c3VcIDsKK+iKseafhCA+IGhhbmFnYXJhXCA7CivlhazlvI8gPiBrb3VzaGlraVwgOwor5bGx6KWeID4geWFtYWhpZGFcIDsKK+i+u+WNoCA+IHRzdWppdXJhXCA7Civmp5jmp5ggPiBzYW1hemFtYVwgOwor55yf5LitID4gbWFuJyduYWthXCA7CivlhoXlr4YgPiBuYWltaXRzdVwgOwor6Iqx5p2fID4gaGFuYXRhYmFcIDsKK+WGheWunyA+IG5haWppdHN1XCA7CivlhbHluIMgPiB0b21vbnVub1wgOwor5bGx6KO+ID4geWFtYXN1c29cIDsKK+mrmOepuiA+IHRha2F6b3JhXCA7CivoirHmnK0gPiBoYW5hZnVkYVwgOwor55m+5oWLID4gaHlha3V0YWlcIDsKK+eXlOeWviA+IGppc2hpdHN1XCA7CivlhavluaEgPiBoYWNoaW1hblwgOwor5beh5a+fID4ganVuc2F0c3VcIDsKK+i7vealrSA+IGthcnV3YXphXCA7Civlt53lsLsgPiBrYXdhamlyaVwgOwor55u05YmNID4gY2hva3V6ZW5cIDsKK+ajkuihkyA+IGJvdWp1dHN1XCA7CivojYnlj6IgPiBrdXNhbXVyYVwgOwor6Iqx5pmCID4gaGFuYWRva2lcIDsKK+WFpeW5lSA+IG55dXVtYWt1XCA7Civnm7TliIAgPiBjaG9rdXRvdVwgOwor55m65oOFID4gaGF0c3Vqb3VcIDsKK+S/s+islCA+IGhhaWd5YWt1XCA7CivlsqnohIggPiBnYW5teWFrdVwgOwor5biz5YWDID4gY2hvdW1vdG9cIDsKK+eXheeahCA+IGJ5b3V0ZWtpXCA7CivmqKrluYUgPiB5b2tvaGFiYVwgOwor55eF55mWID4gYnlvdWhla2lcIDsKK+iDuOmrmCA+IG11bmFkYWthXCA7Civkv4PpgLIgPiBzb2t1c2hpblwgOwor5qiZ5b60ID4gaHlvdWNob3VcIDsKK+eXheeXhyA+IGJ5b3VzaG91XCA7CivlhrfljbQgPiByZWlreWFrdVwgOwor6IaP6KGAID4ga291a2V0c3VcIDsKK+WCt+eJqSA+IGtpenVtb25vXCA7Civnmb7lvIogPiBoeWFrdWhlaVwgOwor5Yed5LmzID4gZ3lvdW55dXVcIDsKK+eVnOiIjiA+IGNoaWt1c2hhXCA7CivlhbHlraYgPiBreW91Z2FrdVwgOwor5YaF5aOVID4gdWNoaWJvcmlcIDsKK+WwkemHjyA+IHNob3VyeW91XCA7CivlhajlsYAgPiB6ZW5reW9rdVwgOwor5YWL5b6pID4ga29rdWZ1a3VcIDsKK+eZvuW5tCA+IGh5YWt1bmVuXCA7CivotrPou70gPiBhc2hpZ2FydVwgOwor5bCP6YePID4gc2hvdXJ5b3VcIDsKK+WBpeethiA+IGtlbnBpdHN1XCA7Civlr5LppIUgPiBrYW5tb2NoaVwgOwor5a+u6ZW3ID4gcnlvdWNob3VcIDsKK+WFiOW9uSA+IHNlbicneWFrdVwgOwor5L+K6LazID4gc2h1bnNva3VcIDsKK+WGheWggCA+IHVjaGlib3JpXCA7CivlhaXlr4IgPiBueXV1amFrdVwgOwor6Iej57GNID4gc2hpbnNla2lcIDsKK+S/oeiqjSA+IHNoaW4nJ25pblwgOwor5YaG5Z6LID4gbWFydWdhdGFcIDsKK+i+m+WLnSA+IHNoaW5zaG91XCA7CivlhaXlraYgPiBueXV1Z2FrdVwgOwor5qWt54mpID4gd2F6YW1vbm9cIDsKK+i1pOmdtCA+IGFrYWd1dHN1XCA7CivotrPot6EgPiBzb2t1c2VraVwgOwor5L+h6Ki8ID4gc2hpbnNob3VcIDsKK+W3nuWigyA+IHNodXVreW91XCA7Civkv6HoqJcgPiBzaGludGFrdVwgOwor5a6/6aeFID4gc2h1a3Vla2lcIDsKK+alteeCuSA+IGt5b2t1dGVuXCA7Civkv5foqr8gPiB6b2t1Y2hvdVwgOwor6IiM55mMID4gemV0c3VnYW5cIDsKK+ebtOS4rSA+IHRhZGFuYWthXCA7CivoirHmiL8gPiBoYW5hZnVzYVwgOwor55u05LiKID4gY2hva3Vqb3VcIDsKK+eWq+eXhSA+IHlha3VieW91XCA7Civoi6Xlrq4gPiB3YWthbWl5YVwgOwor5YWD5bizID4gbW90b2Nob3VcIDsKK+Wvm+mXiiA+IGthbmthdHN1XCA7Civlr7jpiYQgPiBzdW50ZXRzdVwgOwor55m+5a6zID4gaHlha3VnYWlcIDsKK+WBtueZuiA+IGd1dWhhdHN1XCA7CivlsI/ouqsgPiBzaG91c2hpblwgOwor5a6/6aGYID4gc2h1a3VnYW5cIDsKK+eUn+iWrCA+IHNob3V5YWt1XCA7Civlrr/poYwgPiBzaHVrdWRhaVwgOwor55O26KmwID4gYmluZHp1bWVcIDsKK+WBj+eqnyA+IGhlbmt1dHN1XCA7CivlhYjlsbEgPiBzYWtpeWFtYVwgOwor55S36ImyID4gbmFuc2hva3VcIDsKK+iEsei8qiA+IGRhdHN1cmluXCA7CivoubTnkIMgPiBzaHV1a3l1dVwgOwor5YC557SEID4ga2VuJyd5YWt1XCA7CivojYnkuIggPiBrdXNhdGFrZVwgOwor5YWl5aG+ID4gbnl1dWp1a3VcIDsKK+mrmOeOhyA+IGtvdXJpdHN1XCA7Civpp7/otrMgPiBzaHVuc29rdVwgOwor5YSq5b2iID4geWFzYWdhdGFcIDsKK+WFiOWuoiA+IHNlbmt5YWt1XCA7CivnlrXniakgPiBraXp1bW9ub1wgOwor5L+X6KGGID4gem9rdXNodXVcIDsKK+WxseiGmiA+IHlhbWFoYWRhXCA7CivmppXmqLkgPiBnYWp1bWFydVwgOwor5YWI5a6JID4gc2FraXlhc3VcIDsKK+mmrOmdoiA+IHVtYWR6dXJhXCA7Civnm5fkvJAgPiB0b3ViYXRzdVwgOwor55m+5aeTID4gaHlha3VzZWlcIDsKK+WyqeeqnyA+IGdhbmt1dHN1XCA7CivmrbTjgIUgPiByZWtpcmVraVwgOwor5YWF5a6fID4ganV1aml0c3VcIDsKK+iKseW9oiA+IGhhbmFnYXRhXCA7Civnm5fkurogPiBudXN1Yml0b1wgOwor55m95aaZID4gc2hpcm90YWVcIDsKK+WxseiEiCA+IHlhbWFuYW1pXCA7CivoirHlvIEgPiBoYW5hYmlyYVwgOwor5bGx6IKMID4geWFtYWhhZGFcIDsKK+WFpeWbvSA+IG55dXVrb2t1XCA7CivmpbXmtIsgPiBreW9rdXlvdVwgOwor55m95aOBID4gaGFrdWhla2lcIDsKK+mrmOeGsSA+IGtvdW5ldHN1XCA7Civnmb3loqggPiBoYWt1Ym9rdVwgOwor55m65aOyID4gaGF0c3ViYWlcIDsKK+WGheWKmyA+IG5haXJ5b2t1XCA7CivotaTpioUgPiBzaGFrdWRvdVwgOwor5YG954mpID4gbmlzZW1vbm9cIDsKK+earuWJpSA+IGthd2FoYWdpXCA7Civlt6jliLkgPiBreW9zYXRzdVwgOwor6aqo55ukID4ga290c3ViYW5cIDsKK+mvieWPoyA+IGtvaWd1Y2hpXCA7CivnlJ/oibIgPiBzZWlzaG9rdVwgOwor5YWI5aSqID4gc2FraWJ1dG9cIDsKK+i2hei2iiA+IGNob3VldHN1XCA7Civlrprpo58gPiB0ZWlzaG9rdVwgOwor5YW15Y2SID4gaGVpc290c3VcIDsKK+anmOW8jyA+IHlvdXNoaWtpXCA7CivkvLTpo58gPiBiYW5zaG9rdVwgOwor5YW15YqbID4gaGVpcnlva3VcIDsKK+alvealvSA+IHJha3VyYWt1XCA7Civpq5jmva4gPiB0YWthc2hpb1wgOwor5YaF5YG0ID4gdWNoaWdhd2FcIDsKK+iEhei/qyA+IGt5b3VoYWt1XCA7Civpq5jmvZQgPiBrb3VrZXRzdVwgOwor6IW56IacID4gZnVrdW1ha3VcIDsKK+WGheWAiSA+IHVjaGlndXJhXCA7CivoirHlroggPiBoYW5hbW9yaVwgOwor6IO46YOtID4ga3lvdWtha3VcIDsKK+WFtuWFtiA+IHNvcmV6b3JlXCA7Civnl4Xmr5IgPiBieW91ZG9rdVwgOwor5qW15qW9ID4gZ29rdXJha3VcIDsKK+altealtSA+IGdva3Vnb2t1XCA7Civnl4XmrbQgPiBieW91cmVraVwgOwor6Iqx5auBID4gaGFuYXlvbWVcIDsKK+WFqOWKmyA+IHplbnJ5b2t1XCA7CivlhbHlhbEgPiB0b21vZG9tb1wgOwor6Iqx5am/ID4gaGFuYW11a29cIDsKK+i0i+mmliA+IG5pc2VrdWJpXCA7CivkvpvoqJcgPiBreW91dGFrdVwgOwor6Iul5ZCbID4gd2FrYWdpbWlcIDsKK+WxgOiIjiA+IGt5b2t1c2hhXCA7Civlt57kv5cgPiBzaHV1em9rdVwgOwor5L+h6IW5ID4gc2hpbnB1a3VcIDsKK+akjeeUnyA+IHNob2t1c2VpXCA7CivmqKnlipsgPiBrZW5yeW9rdVwgOwor5YSq5aWzID4geWFzYW9uJydhXCA7CivnlLvnrZYgPiBrYWt1c2FrdVwgOwor5p+T6auqID4gc2VucGF0c3VcIDsKK+Wuv+mFlCA+IHNodWt1c3VpXCA7CivotavotasgPiBrYWt1a2FrdVwgOwor5Ly46ZW3ID4gc2hpbmNob3VcIDsKK+WvhumAoCA+IG1pdHN1em91XCA7Civmpb3mm7IgPiBnYWtreW9rdVwgOwor6auY5rOiID4gdGFrYW5hbWlcIDsKK+S8mumjnyA+IGthaXNob2t1XCA7CivlgJLnq4sgPiB0b3VyaXRzdVwgOwor5L+X6IetID4gem9rdXNodXVcIDsKK+iJsuaEnyA+IHNoaWtpa2FuXCA7Civlt6bkuIogPiBoaWRhcml1ZVwgOwor5YWI5ZOyID4gc2VudGV0c3VcIDsKK+alteadsSA+IGt5b2t1dG91XCA7CivoibLmg4UgPiBzaGlraWpvdVwgOwor6a2a5bGLID4gc2FrYW5heWFcIDsKK+i3s+eusSA+IHRvYmliYWtvXCA7Civou5/lvI8gPiBuYW5zaGlraVwgOwor6auY5q6/ID4gdGFrYWRvbm9cIDsKK+WBj+eJhyA+IGthdGFoYXJhXCA7Civlt53kuIogPiBrYXdha2FtaVwgOwor5bGx56iLID4geWFtYWhvZG9cIDsKK+eZuuWLlSA+IGhhdHN1ZG91XCA7CivlhYjlj6MgPiBzZW5rdWNoaVwgOwor6IKL6aqoID4gcm9ra290c3VcIDsKK+eVnOeUoyA+IGNoaWt1c2FuXCA7CivoibLlvakgPiBzaGlraXNhaVwgOwor6Imv5b+DID4gcnlvdXNoaW5cIDsKK+eUn+exsyA+IG5hbWFnb21lXCA7CivnlKjnrYYgPiB5b3VoaXRzdVwgOwor5YWl5L+hID4gbnl1dXNoaW5cIDsKK+iHk+eJqSA+IHpvdW1vdHN1XCA7Civkv5fnv5IgPiB6b2t1c2h1dVwgOwor6YGZ44CFID4gaGFydWJhcnVcIDsKK+mqqOeBsCA+IGtvdHN1YmFpXCA7CivoiLnml4UgPiBmdW5hdGFiaVwgOwor6Ii55pa5ID4gZnVuYWthdGFcIDsKK+iKseWckiA+IGhhbmF6b25vXCA7CivlhaXkvLggPiBueXV1c2hpblwgOwor5YWJ5YqbID4ga291cnlva3VcIDsKK+i7jeW+iyA+IGd1bnJpdHN1XCA7Civou43lvbkgPiBndW4nJ3lha3VcIDsKK+eZvuWEhCA+IGh5YWt1b2t1XCA7CivlsZHnsaAgPiBrdXp1a2Fnb1wgOwor55eb5pKDID4gdHN1dWdla2lcIDsKK+WFqOS5syA+IHplbicnbnl1dVwgOwor5qC86Kq/ID4ga2FrdWNob3VcIDsKK+WFpeS6rCA+IG55dXVreW91XCA7CivovLjlh7ogPiB5dXNodXRzdVwgOwor5qaC5ousID4gZ2Fpa2F0c3VcIDsKK+iGoOedgCA+IGtvdWNoYWt1XCA7Civkv6HntYwgPiBzaGlua3lvdVwgOwor5L216KitID4gaGVpc2V0c3VcIDsKK+eZvuWAjSA+IGh5YWt1YmFpXCA7Civou4rluqcgPiBrdXJ1bWF6YVwgOwor5YWI5YWlID4gc2VuJydueXV1XCA7CivmqKrkuIEgPiB5b2tvY2hvdVwgOwor5YCf55SoID4gc2hha3V5b3VcIDsKK+Wuv+izgyA+IHlhZG9jaGluXCA7CivnlZzniqwgPiBjaGlrdWtlblwgOwor5YKN5p2WID4gc29iYWR6dWVcIDsKK+WFg+WFgyA+IG1vdG9tb3RvXCA7Civlr53ooosgPiBuZWJ1a3Vyb1wgOwor6Iqd5ZywID4gc2hpYmFjaGlcIDsKK+eahOS4rSA+IHRla2ljaHV1XCA7CivlsLHnuJsgPiBzaHV1YmFrdVwgOwor5a+G6KyAID4gbWl0c3Vib3VcIDsKK+WvhuirhyA+IG1pdHN1ZGFuXCA7Civnmbrku6QgPiBoYXRzdXJlaVwgOwor6Imv5bCGID4gcnlvdXNob3VcIDsKK+Wuoui7iiA+IGt5YWt1c2hhXCA7CivohLHoibIgPiBkYXNzaG9rdVwgOwor55m+5LiWID4gaHlha3VzZWlcIDsKK+mrmOacrSA+IGtvdXNhdHN1XCA7Civnmb7kuIcgPiBoeWFrdW1hblwgOwor5bCP6IW4ID4gc2hvdWNob3VcIDsKK+S7memqqCA+IHNlbmtvdHN1XCA7CivlronphZIgPiB5YXN1emFrZVwgOwor5YO75aKDID4gaGVraWt5b3VcIDsKK+WtpumVtyA+IGdha3VjaG91XCA7Civou4rlsYsgPiBrdXJ1bWF5YVwgOwor5YSq5YqjID4geXV1cmV0c3VcIDsKK+i6q+W/gyA+IHNoaW5zaGluXCA7Civnl5vmg5wgPiB0c3V1c2VraVwgOwor5YG95pytID4gbmlzZWZ1ZGFcIDsKK+i0i+mHkSA+IG5pc2VnYW5lXCA7CivlgJ/niakgPiBrYXJpbW9ub1wgOwor5bqm44CFID4gdGFiaXRhYmlcIDsKK+i1pOibmSA+IGFrYWdhZXJ1XCA7Civlgrflv4MgPiBzaG91c2hpblwgOwor5LuY6aasID4gdHN1a2V1bWFcIDsKK+i1pOiZqyA+IGFrYW11c2hpXCA7CivkvZfoqIAgPiB3YWJpZ290b1wgOwor55Sf55quID4gbmFtYWthd2FcIDsKK+WBtOadliA+IHNvYmFkenVlXCA7CivmpbXmgKcgPiBreW9rdXNlaVwgOwor55eb5b+DID4gdHN1dXNoaW5cIDsKK+iJsuWlsyA+IGlyb29uJyduYVwgOwor6Lyq5LyQID4gcmluYmF0c3VcIDsKK+WAjeeOhyA+IGJhaXJpdHN1XCA7Civkv5fnp7AgPiB6b2t1c2hvdVwgOwor5bGx54y/ID4geWFtYXphcnVcIDsKK+WxseeMqyA+IHlhbWFuZWtvXCA7CivkvJ3pgZQgPiBkZW50YXRzdVwgOwor5qSN5rCRID4gc2hva3VtaW5cIDsKK+WvteiHoyA+IGNob3VzaGluXCA7CivmpI3mr5sgPiBzaG9rdW1vdVwgOwor6IKJ6Y2LID4gbmlrdW5hYmVcIDsKK+eUt+eItSA+IGRhbnNoYWt1XCA7CivkurrprYIgPiBoaXRvZGFtYVwgOwor6IW555ebID4gZnVrdXRzdXVcIDsKK+iIueW6lSA+IGZ1bmF6b2tvXCA7CivoiLnluoogPiBmdW5hZG9rb1wgOwor6aeG6JC9ID4ga2FrZW9jaGlcIDsKK+alteW4jCA+IGdva3VtYXJlXCA7Civkv4rnp4AgPiBzaHVuc2h1dVwgOwor5Lq66aqoID4gamlua290c3VcIDsKK+Wwj+e1kCA+IGtvbXVzdWJpXCA7Civlrp/oqqwgPiBqaXNzZXRzdVwgOwor5bGl54mpID4gaGFraW1vbm9cIDsKK+eXheW+tCA+IGJ5b3VjaG91XCA7CivlrproqqwgPiB0ZWlzZXRzdVwgOwor6Ieo5pyIID4gcmluZ2V0c3VcIDsKK+eXheW8sSA+IGJ5b3VqYWt1XCA7CivluoPjgIUgPiBoaXJvYmlyb1wgOwor6aqo5p2QID4ga290c3V6YWlcIDsKK+eUo+eJqSA+IHNhbmJ1dHN1XCA7CivlrpjoqK0gPiBrYW5zZXRzdVwgOwor5qSc5pytID4ga2Vuc2F0c3VcIDsKK+iHo+acjSA+IHNoaW5wdWt1XCA7Civosqrpo58gPiBkb25zaG9rdVwgOwor55eF5bqKID4gYnlvdXNob3VcIDsKK+S/oeeUqCA+IHNoaW4nJ3lvdVwgOwor6ISH6IW5ID4gd2FraWJhcmFcIDsKK+eUn+eJqSA+IG5hbWFtb25vXCA7CivkvpvntaYgPiBreW91a3l1dVwgOwor5bGA55WqID4ga3lva3ViYW5cIDsKK+Wwj+etliA+IHNob3VzYWt1XCA7Civmp43lhYggPiB5YXJpc2FraVwgOwor55ew5aO6ID4gdGFudHN1Ym9cIDsKK+mrquW6iiA+IGthbWlkb2tvXCA7Civlr5LoibIgPiBrYW5zaG9rdVwgOwor5qSN5qC9ID4gc2hva3VzYWlcIDsKK+S8kei2syA+IGt5dXVzb2t1XCA7CivoiLnlrr8gPiBmdW5heWFkb1wgOwor5LuP6ZaAID4gYnV0c3Vtb25cIDsKK+iIueWuoiA+IHNlbmt5YWt1XCA7Civlgo3lvbkgPiB3YWtpeWFrdVwgOwor6IKJ6L+rID4gbmlrdWhha3VcIDsKK+aguOiGnCA+IGtha3VtYWt1XCA7CivkuqHpqrggPiBuYWtpZ2FyYVwgOwor6IeY5pyIID4gcm91Z2V0c3VcIDsKK+akjeaelyA+IHNob2t1cmluXCA7CivlrozoqLMgPiBrYW4nJ3lha3VcIDsKK+iDuOiGnCA+IGt5b3VtYWt1XCA7Civpo73po58gPiBob3VzaG9rdVwgOwor5L+u54afID4gc2h1dWp1a3VcIDsKK+WuheiouiA+IHRha3VzaGluXCA7CivlsI/npoQgPiBzaG91cm9rdVwgOwor5Lyd6KqsID4gZGVuc2V0c3VcIDsKK+i2s+eZliA+IGFzaGlrdXNlXCA7CivohLHnqI4gPiBkYXRzdXplaVwgOwor5Lqs6Z+/ID4ga3lvdWt5b3VcIDsKK+i7ouWFpSA+IHRlbicnbnl1dVwgOwor5a++56uLID4gdGFpcml0c3VcIDsKK+iFq+eJqSA+IHNodW1vdHN1XCA7CivmpbXlpKcgPiBreW9rdWRhaVwgOwor55Wl5pu4ID4gcnlha3VzaG9cIDsKK+Wuv+iIjiA+IHNodWt1c2hhXCA7Civou43ljZIgPiBndW5zb3RzdVwgOwor5bOw5bOwID4gbWluZW1pbmVcIDsKK+WuueiJsiA+IHlvdXNob2t1XCA7Civku4vpjK8gPiBrYWlzaGFrdVwgOwor5qOu5qOuID4gc2hpbnNoaW5cIDsKK+W1jOWFpSA+IGthbicnbnl1dVwgOwor6LuS5YilID4ga2VuYmV0c3VcIDsKK+WBtOW9uSA+IHNvYmF5YWt1XCA7Civou6LlgJ8gPiB0ZW5zaGFrdVwgOwor6ISK57SiID4gc2VraXNha3VcIDsKK+S8keiouiA+IGt5dXVzaGluXCA7CivosqHplqUgPiB6YWliYXRzdVwgOwor55Kw56+AID4ga2Fuc2V0c3VcIDsKK+acqOm8oCA+IGtpbmV6dW1pXCA7CivpqqjmipggPiBrb3NzZXRzdVwgOwor6ISa56uLID4ga3lhdGF0c3VcIDsKK+WDu+S6iyA+IGhpZ2Fnb3RvXCA7CivnlaXmlocgPiByeWFrdWJ1blwgOwor6LuS5YWIID4gbm9raXNha2lcIDsKK+aguee1tiA+IGtvbnpldHN1XCA7CivmpbXlnLAgPiBreW9rdWNoaVwgOwor5p6d6YGTID4gZWRhbWljaGlcIDsKK+Wuv+iAgSA+IHNodWt1cm91XCA7Civkvb/nr4AgPiBzaGlzZXRzdVwgOwor6LK46YeRID4ga2FzaGlraW5cIDsKK+mrmOWvnyA+IGtvdXNhdHN1XCA7CivlgJLmp5ggPiBzYWthc2FtYVwgOwor55Sf5rS7ID4gc2Vpa2F0c3VcIDsKK+mrmOWvhiA+IGtvdW1pdHN1XCA7Civku4/pgZMgPiBidXRzdWRvdVwgOwor5L2V6ICFID4gbmFuaW1vbm9cIDsKK+iJr+S/lyA+IHJ5b3V6b2t1XCA7CivkvY/ogbcgPiBqdXVzaG9rdVwgOwor5p+U6KGTID4ganV1anV0c3VcIDsKK+eUn+awtCA+IG5hbWFtaXp1XCA7Civog7jns54gPiBtdW5la3Vzb1wgOwor5a6i6Ii5ID4ga3lha3VzZW5cIDsKK+iAkOmjnyA+IHRhaXNob2t1XCA7CivogIHpqqggPiByb3Vrb3RzdVwgOwor5p6V6L66ID4gbWFrdXJhYmVcIDsKK+WwpOeJqSA+IHl1dWJ1dHN1XCA7CivlrqLoiI4gPiBreWFrdXNoYVwgOwor5Lmx6auqID4gcmFucGF0c3VcIDsKK+S9k+e9sCA+IHRhaWJhdHN1XCA7Civnl5vlk60gPiB0c3V1a29rdVwgOwor55Sf5q6WID4gc2Vpc2hva3VcIDsKK+S6uumHjCA+IGhpdG96YXRvXCA7CivlrqLohrMgPiBreWFrdXplblwgOwor6IKJ6KaqID4gbmlrdXNoaW5cIDsKK+WvjOexpCA+IHRvbWlrdWppXCA7CivlgbXlr58gPiB0ZWlzYXRzdVwgOwor6IO9562GID4gbm91aGl0c3VcIDsKK+S5vumiqCA+IGthcmFrYXplXCA7Civpq6rlnosgPiBrYW1pZ2F0YVwgOwor6Imv5LmFID4gcnlvdWt5dXVcIDsKK+adkembqCA+IG11cmFzYW1lXCA7Civou5LkuKYgPiBub2tpbmFtaVwgOwor6LuS5LiIID4gbm9raXRha2VcIDsKK+WvkueruSA+IGthbmNoaWt1XCA7CivmnIjpvaIgPiBnZXRzdXJlaVwgOwor5qW95YygID4gZ2FrdXNob3VcIDsKK+alveWLnSA+IHJha3VzaG91XCA7Civot7PmooEgPiBjaG91cnlvdVwgOwor5a+S56m6ID4gc2FtdXpvcmFcIDsKK+S7sOinkiA+IGd5b3VrYWt1XCA7Civmpb3liocgPiBnYWt1Z2VraVwgOwor6aOE6aOEID4gaHlvdWh5b3VcIDsKK+acqOmqqCA+IG1va2tvdHN1XCA7Civkvq/niLUgPiBrb3VzaGFrdVwgOwor546J6auEID4gZ3lva3V6dWlcIDsKK+iBtOiouiA+IGNob3VzaGluXCA7Civkv5fmtYEgPiB6b2t1cnl1dVwgOwor5a6a6IG3ID4gdGVpc2hva3VcIDsKK+WumOiBtyA+IGthbnNob2t1XCA7CivlgaXlrp8gPiBrZW5qaXRzdVwgOwor6LGq6ZuqID4gZ291c2V0c3VcIDsKK+iBtOimmiA+IGNob3VrYWt1XCA7Civnj43ph40gPiBjaGluY2hvdVwgOwor55u044CFID4gamlraWppa2lcIDsKK+iHquWupCA+IGppc2hpdHN1XCA7CivlgbTlo4EgPiBzb2t1aGVraVwgOwor5qSc5bC/ID4ga2VuJydueW91XCA7CivkubHpm5EgPiByYW56YXRzdVwgOwor5bGe5pybID4gc2hva3Vib3VcIDsKK+iBtOihhiA+IGNob3VzaHV1XCA7CivkuK3pu5IgPiBuYWthZ3Vyb1wgOwor5qSc5a+fID4ga2Vuc2F0c3VcIDsKK+S6uui2syA+IGhpdG9hc2hpXCA7Civlr77niakgPiB0YWlidXRzdVwgOwor6IKJ6JaEID4gbmlrdWhha3VcIDsKK+eOiemhlCA+IGd5b2t1Z2FuXCA7Civpoq/poq8gPiBzYXNzYXRzdVwgOwor5YGP5bGIID4gaGVua3V0c3VcIDsKK+S7j+iqrCA+IGJ1c3NldHN1XCA7Civls7blj7AgPiBzaGltYWRhaVwgOwor5LuH6K6OID4ga3l1dXNodXVcIDsKK+S9teeZuiA+IGhlaWhhdHN1XCA7Civpp5DnlZkgPiBjaHV1cnl1dVwgOwor55Wl5bi9ID4gcnlha3Vib3VcIDsKK+acnemjryA+IGFzYW1lc2hpXCA7CivkvZXnqIsgPiBuYW5paG9kb1wgOwor6aKo6aOfID4gZnV1c2hva3VcIDsKK+eVs+WxiyA+IHRhdGFtaXlhXCA7CivlgbTlnKcgPiBzb2t1YXRzdVwgOwor6LSW572qID4gc2hva3V6YWlcIDsKK+iCqeiCmCA+IGthdGFoaWppXCA7Civmn5PoibIgPiBzZW5zaG9rdVwgOwor6Lqr5LitID4gc2hpbmNodXVcIDsKK+adkemHjCA+IG11cmF6YXRvXCA7Civku5nooZMgPiBzZW5qdXRzdVwgOwor6Ieq5aSxID4gamlzaGl0c3VcIDsKK+S/l+alvSA+IHpva3VnYWt1XCA7CivpppbnrYsgPiBrdWJpc3VqaVwgOwor5L2H56uLID4gY2hvcml0c3VcIDsKK+i0i+iAhSA+IG5pc2Vtb25vXCA7Civlr4bnnYAgPiBtaXRjaGFrdVwgOwor6IWw5p2/ID4ga29zaGlpdGFcIDsKK+iCoeiCiSA+IG1vbW9uaWt1XCA7CivohLHmvI8gPiBkYXRzdXJvdVwgOwor6IO455ebID4ga3lvdXRzdXVcIDsKK+S4uOmrtyA+IG1hcnVtYWdlXCA7CivlsYjmm7IgPiBrdWtreW9rdVwgOwor6Ii55Lq6ID4gZnVuYWJpdG9cIDsKK+mqqOWkqiA+IGhvbmVidXRvXCA7Civpq5jljZIgPiBrb3Vzb3RzdVwgOwor5bCx5qWtID4gc2h1dWd5b3VcIDsKK+mjn+mBkyA+IHNob2t1ZG91XCA7CivosLfpoqggPiB0YW5pa2F6ZVwgOwor5L+h5pyNID4gc2hpbnB1a3VcIDsKK+S7ruiRuiA+IGthcmlidWtpXCA7Civpoqjpm6ogPiBmdXVzZXRzdVwgOwor5a6M57WQID4ga2Fua2V0c3VcIDsKK+aflOiCjCA+IHlhd2FoYWRhXCA7Civpp5Dni6wgPiBjaHV1ZG9rdVwgOwor546J6ZaAID4gZ3lva3Vtb25cIDsKK+mlkuiIjCA+IGpvdXpldHN1XCA7CivmnIjpo58gPiBnZXNzaG9rdVwgOwor5qCX55+zID4ga3VyaWlzaGlcIDsKK+Wwj+azoiA+IHNhemFuYW1pXCA7Civnm4rjgIUgPiBtYXN1bWFzdVwgOwor5a6a56uLID4gdGVpcml0c3VcIDsKK+S4uOmmliA+IG1hcnVrdWJpXCA7CivkuK3pq5ggPiBuYWthZGFrYVwgOwor5a6Y56uLID4ga2Fucml0c3VcIDsKK+iDveeOhyA+IG5vdXJpdHN1XCA7CivotrPmpa0gPiBhc2hpd2F6YVwgOwor5pyo6ZC4ID4gYm9rdXRha3VcIDsKK+S4u+mjnyA+IHNodXNob2t1XCA7CivpqZrmhJUgPiBreW91Z2FrdVwgOwor5L+X5puyID4gem9ra3lva3VcIDsKK+S7meiWrCA+IHNlbicneWFrdVwgOwor5L2c55eFID4gc2FrdWJ5b3VcIDsKK+S9leeZviA+IG5hbmJ5YWt1XCA7Civku4HooZMgPiBqaW5qdXRzdVwgOwor5L+h5pWZID4gc2hpbmt5b3VcIDsKK+ahnOa5ryA+IHNha3VyYXl1XCA7CivmpJzlnKcgPiBrZW4nJ2F0c3VcIDsKK+S4gOm9oyA+IGhpdG9rb21hXCA7CivotrPmorAgPiBhc2hpa2FzZVwgOwor5pyI6Z2iID4gZ2V0c3VtZW5cIDsKK+S5s+mFqiA+IG55dXVyYWt1XCA7CivlsL3ml6UgPiBqaW5qaXRzdVwgOwor5bCR5qyyID4gc2hvdXlva3VcIDsKK+eUu+W8lSA+IGtha3ViaWtpXCA7CivnlZnlraYgPiByeXV1Z2FrdVwgOwor5a2m57+SID4gZ2FrdXNodXVcIDsKK+i3i+aWhyA+IGJhdHN1YnVuXCA7CivlsbHlvaYgPiB5YW1hYmlrb1wgOwor5bGx5b2iID4geWFtYWdhdGFcIDsKK+eXheS4rSA+IGJ5b3VjaHV1XCA7CivlsI/mrLIgPiBzaG91eW9rdVwgOwor5YG25YqbID4gZ3V1cnlva3VcIDsKK+afk+e5lCA+IHNlbnNob2t1XCA7Civku7vogbcgPiBuaW5zaG9rdVwgOwor6ISx5q+bID4gZGF0c3Vtb3VcIDsKK+WwguaxuiA+IHNlbmtldHN1XCA7Civmop/mlbUgPiBreW91dGVraVwgOwor5pyo6YuPID4ga2liYXNhbWlcIDsKK+iIn+S6uiA+IGZ1bmFiaXRvXCA7CivosqfooYAgPiBoaW5rZXRzdVwgOwor6Laz5p63ID4gYXNoaWthc2VcIDsKK+iAs+iosSA+IG1pbWltb3RvXCA7CivlgpHkurogPiBrZXRzdWppblwgOwor5a++5rG6ID4gdGFpa2V0c3VcIDsKK+WwhOauuiA+IHNoYXNhdHN1XCA7Civku6ToibIgPiByZWlzaG9rdVwgOwor5bCB5q66ID4gZnV1c2F0c3VcIDsKK+Wwj+anjCA+IGtvZHp1Y2hpXCA7CivlrabnuL4gPiBnYWt1c2VraVwgOwor5bGx5bedID4geWFtYWdhd2FcIDsKK+mrmOS9jiA+IHRha2FoaWt1XCA7CivkuK3poIMgPiBuYWthZ29yb1wgOwor6IG36IO9ID4gc2hva3Vub3VcIDsKK+WxiOaKmCA+IGt1c3NldHN1XCA7Civlrp/nm7QgPiBqaXRjaG9rdVwgOwor6IWw5oqYID4ga29zaGlvcmVcIDsKK+Wun+ebiiA+IGppdHN1ZWtpXCA7CivlrprnnYAgPiB0ZWljaGFrdVwgOwor5qKB5pyoID4gcnlvdWJva3VcIDsKK+WBtuWBtiA+IHRhbWF0YW1hXCA7Civmm7LpnaIgPiBreW9rdW1lblwgOwor6Laz5pepID4gYXNoaWJheWFcIDsKK+S4remchyA+IGNodXVzaGluXCA7CivoiIzku6MgPiB6ZXRzdWRhaVwgOwor5p+x55+zID4gY2h1dXNla2lcIDsKK+WxseWxsSA+IHlhbWF5YW1hXCA7CivkuK3pmpQgPiBjaHV1a2FrdVwgOwor5bGA5omAID4ga3lva3VzaG9cIDsKK+iyr+iThCA+IGNob2NoaWt1XCA7CivkvY7njocgPiB0ZWlyaXRzdVwgOwor5bee44CFID4gc2h1dXNodXVcIDsKK+afk+ethiA+IHNlbnBpdHN1XCA7Civkv6HmhpEgPiBzaGlucHlvdVwgOwor5qGf5qmLID4gc2FuYmFzaGlcIDsKK+eUu+WupCA+IGdhc2hpdHN1XCA7CivogonntLAgPiBuaWt1Ym9zb1wgOwor5a6i55SoID4ga3lha3V5b3VcIDsKK+S4remZkCA+IG5ha2FnaXJpXCA7CivkvZXniakgPiBuYW5pbW9ub1wgOwor5bGx5a+6ID4geWFtYWRlcmFcIDsKK+eMn+mzpSA+IHJ5b3VjaG91XCA7CivlrabnsY0gPiBnYWt1c2VraVwgOwor5LiH6aqoID4gYmFua290c3VcIDsKK+S/ruW+qSA+IHNodXVmdWt1XCA7Civku4/oiaYgPiBmdXRzdWthblwgOwor6IW55b+DID4gZnVrdXNoaW5cIDsKK+Wun+eUqCA+IGppdHN1eW91XCA7Civkv67lvpcgPiBzaHV1dG9rdVwgOwor6IOG55WlID4gdGFucnlha3VcIDsKK+WFtuOAhSA+IHNvcmV6b3JlXCA7CivkuLjpkb8gPiBtYXJ1bm9taVwgOwor5bGx5a6IID4geWFtYW1vcmlcIDsKK+i2s+aRuiA+IGFzaGl6dXJpXCA7Civpo5/oqIAgPiBzaG9rdWdlblwgOwor5YCL5a6kID4ga29zaGl0c3VcIDsKK+S6jOiogCA+IGZ1dGFrb3RvXCA7CivkvZPnhrEgPiB0YWluZXRzdVwgOwor5YWx44CFID4gdG9tb2RvbW9cIDsKK+S7rue2tCA+IGthcml0b2ppXCA7CivkvJHnpaUgPiBreXV1c2hvdVwgOwor5bGI5b6TID4ga3V0c3VqdXVcIDsKK+Wun+ePviA+IGppdHN1Z2VuXCA7Civnj77ogbcgPiBnZW5zaG9rdVwgOwor6LGB6YGUID4ga2F0dGF0c3VcIDsKK+S/oeW/tSA+IHNoaW4nJ25lblwgOwor6aGO6aqoID4gZ2Fra290c3VcIDsKK+S4iemjnyA+IHNhbnNob2t1XCA7CivkuoboppogPiByeW91a2FrdVwgOwor5LiA6aeSID4gaGl0b2tvbWFcIDsKK+e+pOmbsiA+IG11cmFrdW1vXCA7CivmnIjph5EgPiBnZXRzdWtpblwgOwor6LWk5rKIID4gc2VraWNoaW5cIDsKK+S4i+mhjiA+IHNoaXRhYWdvXCA7CivlsbHlp6sgPiB5YW1haGltZVwgOwor6ISC5rGXID4gYWJ1cmFhc2VcIDsKK+iFsOW8gSA+IGtvc2hpYmVuXCA7Civlrp3njokgPiBob3VneW9rdVwgOwor5bCR5pW1ID4gc2hvdXRla2lcIDsKK+S+teaSgyA+IHNoaW5nZWtpXCA7CivpqY3lsIYgPiBneW91c2hvdVwgOwor5LiY6Zm1ID4ga3l1dXJ5b3VcIDsKK+eVpeWQjSA+IHJ5YWt1bWVpXCA7CivlsI/mlbUgPiBzaG91dGVraVwgOwor55Wl5Y+3ID4gcnlha3Vnb3VcIDsKK+i2s+aKgCA+IGFzaGl3YXphXCA7CivnlaXlj7IgPiByeWFrdXNoaVwgOwor5a6a546HID4gdGVpcml0c3VcIDsKK+eVquWNkiA+IGJhbnNvdHN1XCA7CivnlaXlj5YgPiByeWFrdXNodVwgOwor5a6f54q2ID4gaml0c3Vqb3VcIDsKK+WAn+WcsCA+IHNoYWt1Y2hpXCA7CivkvbXmrrogPiBoZWlzYXRzdVwgOwor6IGW6IG3ID4gc2Vpc2hva3VcIDsKK+iFsOW4ryA+IGtvc2hpb2JpXCA7CivkuIrpnbQgPiB1d2FndXRzdVwgOwor6Iac5aOBID4gbWFrdWhla2lcIDsKK+iEseaWhyA+IGRhdHN1YnVuXCA7CivlrZjnq4sgPiBzb25yaXRzdVwgOwor5a6d54mpID4gaG91bW90c3VcIDsKK+S/l+W9oiA+IHpva3VneW91XCA7CivkurrohpogPiBoaXRvaGFkYVwgOwor6aKo6LazID4ga2F6YWFzaGlcIDsKK+S5vuijgiA+IGthbnJldHN1XCA7CivmoY7moo8gPiBzaGlra29rdVwgOwor5LiA6aCDID4gaGl0b2tvcm9cIDsKK+e/jOmAsSA+IHlva3VzaHV1XCA7Civlr77ml6UgPiB0YWluaWNoaVwgOwor5p6g57WEID4gd2FrdWd1bWlcIDsKK+S6uuiEmiA+IGhpdG9hc2hpXCA7Civnv7voqLMgPiBob24nJ3lha3VcIDsKK+S6uuiEiCA+IGppbm15YWt1XCA7CivlsbHln44gPiB5YW1hamlyb1wgOwor6aC46aqoID4ga2Vpa290c3VcIDsKK+S+m+aWmSA+IGt5b3VyeW91XCA7CivohJrmnKwgPiBreWFrdWhvblwgOwor5p2x6IqdID4gdG91c2hpYmFcIDsKK+i1pOaoqyA+IGFrYWdhc2hpXCA7CivogJDonZUgPiB0YWlzaG9rdVwgOwor6ISK5qSOID4gc2VraXRzdWlcIDsKK+aftOeKrCA+IHNoaWJhaW51XCA7Civkv67lraYgPiBzaHV1Z2FrdVwgOwor5L+K5b6zID4gc2h1bnRva3VcIDsKK+aciOi8qiA+IGdldHN1cmluXCA7Civku7Lnp4sgPiBjaHV1c2h1dVwgOwor5Li76L+wID4gc2h1anV0c3VcIDsKK+S6uuiCjCA+IGhpdG9oYWRhXCA7CivkurrogokgPiBqaW4nJ25pa3VcIDsKK+WqkumFjCA+IGJhaXNoYWt1XCA7CivkvovmnIggPiByZWlnZXRzdVwgOwor55Sf5aiYID4ga2ltdXN1bWVcIDsKK+S7o+ethiA+IGRhaWhpdHN1XCA7CivohIrmooEgPiBzZWtpcnlvdVwgOwor5a+G5q66ID4gbWlzc2F0c3VcIDsKK+aatOmjnyA+IGJvdXNob2t1XCA7CivlsbHlm70gPiB5YW1hZ3VuaVwgOwor6IG356iuID4gc2hva3VzaHVcIDsKK+S4gOmamyA+IGhpdG9raXdhXCA7Civkub7onZUgPiBrYW5zaG9rdVwgOwor5LiA6ZqFID4gaGl0b3N1bWlcIDsKK+WwseW6iiA+IHNodXVzaG91XCA7CivkuIjplbcgPiB0YWtlbmFnYVwgOwor6aCt6auqID4gdG91aGF0c3VcIDsKK+eMpembkSA+IHdhaXphdHN1XCA7Civoga/nq4sgPiByZW5yaXRzdVwgOwor6ISK5p+xID4gc2VraWNodXVcIDsKK+mgremqqCA+IHRvdWtvdHN1XCA7CivotrPlvaIgPiBhc2hpZ2F0YVwgOwor5a6J54mpID4geWFzdW1vbm9cIDsKK+WvkualtSA+IGthbmt5b2t1XCA7CivotrPlvLEgPiBhc2hpeW93YVwgOwor5YCZ5ZOJID4gc291cm91eWFcIDsKK+S+i+aXpSA+IHJlaWppdHN1XCA7CivkuK3pgJ8gPiBjaHV1c29rdVwgOwor55Sf5aOBID4gbmFtYWthYmVcIDsKK+abtOi/rSA+IGtvdXRldHN1XCA7Civmop/lsIYgPiBreW91c2hvdVwgOwor5YWD44CFID4gbW90b21vdG9cIDsKK+iCieeahCA+IG5pa3V0ZWtpXCA7Civog7jmpI4gPiBreW91dHN1aVwgOwor6aKo6KqsID4gZnV1c2V0c3VcIDsKK+ahguaciCA+IGtlaWdldHN1XCA7CivlrqTmuKkgPiBzaGl0c3VvblwgOwor5LuZ56qfID4gc2Vua3V0c3VcIDsKK+Wvp+aXpSA+IG5laWppdHN1XCA7CivotIvniakgPiBuaXNlbW9ub1wgOwor55Wq5LuYID4gYmFuZHp1a2VcIDsKK+i1pOadviA+IGFrYW1hdHN1XCA7CivnlaXkvZMgPiByeWFrdXRhaVwgOwor5qKF5bmyID4gdW1lYm9zaGlcIDsKK+S/l+WtpiA+IHpva3VnYWt1XCA7Civohbnlo4EgPiBmdWt1aGVraVwgOwor5Lit6Lu4ID4gY2h1dWppa3VcIDsKK+eVpeS8nSA+IHJ5YWt1ZGVuXCA7Civohbjlo4EgPiBjaG91aGVraVwgOwor6LGh6JmrID4gem91bXVzaGlcIDsKK+ael+eriyA+IHJpbnJpdHN1XCA7CivlrIznvp4gPiBreW91c2h1dVwgOwor6LOq55aRID4gc2hpdHN1Z2lcIDsKK+WxseWQuSA+IHlhbWFidWtpXCA7CivouI/liIcgPiBmdW1pa2lyaVwgOwor5bCx5a+dID4gc2h1dXNoaW5cIDsKK+adj+iMuCA+IGFuenV0YWtlXCA7CivnlJ/lm70gPiBzaG91a29rdVwgOwor5L+h5aWzID4gc2hpbicnbnlvXCA7CivmnZ/ohKkgPiBzb2t1c2h1dVwgOwor5bCP5b+DID4gc2hvdXNoaW5cIDsKK+Wuv+alrSA+IHNodWt1Z291XCA7CivnlLPlkYogPiBzaGlua29rdVwgOwor5a+S5pyIID4ga2FuZ2V0c3VcIDsKK+acieitmCA+IHl1dXNoaWtpXCA7CivkvZrmpb0gPiBpdHN1cmFrdVwgOwor5bCx5a2mID4gc2h1dWdha3VcIDsKK+mkhee2siA+IG1vY2hpYW1pXCA7CivkvZXmp5ggPiBuYW5pc2FtYVwgOwor57+B6LKdID4gb2tpbmFnYWlcIDsKK+WvjOacrSA+IHRvbWlmdWRhXCA7CivlsYDlpJYgPiBreW9rdWdhaVwgOwor6aOf6IazID4gc2hva3V6ZW5cIDsKK+adieiLlCA+IHN1Z2lnb2tlXCA7Civlr4bmnpcgPiBtaXRzdXJpblwgOwor5YCJ5Y2SID4gc291c290c3VcIDsKK+eUsuWNkiA+IGtvdXNvdHN1XCA7CivlrqLmrr8gPiBreWFrdWRlblwgOwor5Lim6LazID4gbmFtaWFzaGlcIDsKK+S6pOe5lCA+IGtvdXNob2t1XCA7CivnlZHkvZwgPiBoYXRhc2FrdVwgOwor55Om5bGLID4ga2F3YXJheWFcIDsKK+WuouatuyA+IGt5YWt1c2hpXCA7CivnlLfliY0gPiBvdG9rb21hZVwgOwor5bGA5aCxID4ga3lva3Vob3VcIDsKK+mhsOi5mSA+IGhpbnNodWt1XCA7Civlrq7mp5ggPiBtaXlhc2FtYVwgOwor5L2c5p+EID4gc2FrdWdhcmFcIDsKK+eMrumFjCA+IGtlbnNoYWt1XCA7Civpo5/ogrIgPiBzaG9rdWlrdVwgOwor6aKo6J2VID4gZnV1c2hva3VcIDsKK+S4oei2syA+IHJ5b3Vzb2t1XCA7CivkuozogqEgPiBmdXRhbWF0YVwgOwor55Om5a62ID4ga2F3YXJheWFcIDsKK+S4iumBlCA+IGpvdXRhdHN1XCA7Civohp3lhYMgPiBoaXphbW90b1wgOwor5pyb6JyAID4gYm91c2hva3VcIDsKK+Wuv+acmyA+IHNodWt1Ym91XCA7CivohLHluL0gPiBkYXRzdWJvdVwgOwor55Sz5Ye6ID4gbW91c2hpZGVcIDsKK+afhOeJqSA+IGdhcmFtb25vXCA7CivkuIrov7AgPiBqb3VqdXRzdVwgOwor5L2c5puyID4gc2Fra3lva3VcIDsKK+iAs+ezniA+IG1pbWlrdXNvXCA7CivogIHoi6UgPiByb3VueWFrdVwgOwor6IKJ54mbID4gbmlrdWd5dXVcIDsKK+WxseWFgyA+IHlhbWFtb3RvXCA7CivlsYDlnLAgPiBreW9rdWNoaVwgOwor6LKe56+AID4gdGVpc2V0c3VcIDsKK+adn+e4myA+IHNva3ViYWt1XCA7CivmnKvokYkgPiBtYXRzdXlvdVwgOwor5L2V5pyIID4gbmFuZ2F0c3VcIDsKK+WwuuWcsCA+IHNoYWt1Y2hpXCA7CivosZrojYkgPiBidXRha3VzYVwgOwor5puy6KuWID4ga3lva3Vyb25cIDsKK+WxseWBtCA+IHlhbWFnYXdhXCA7CivlsJHlsJEgPiBzaG91c2hvdVwgOwor5bCR5bCGID4gc2hvdXNob3VcIDsKK+aal+mXhyA+IGt1cmF5YW1pXCA7CivkvJHmvIEgPiBreXV1cnlvdVwgOwor546J6JGxID4gdGFtYW5lZ2lcIDsKK+S5s+iHrSA+IG55dXVzaHV1XCA7CivnlJjlj6MgPiBhbWFrdWNoaVwgOwor5pyo6I+fID4gbWltaXp1a3VcIDsKK+WsjOeskSA+IGt5b3VzaG91XCA7CivnlKPliKUgPiBzYW5iZXRzdVwgOwor5pyI6J2VID4gZ2Vzc2hva3VcIDsKK+Wwj+WtpiA+IHNob3VnYWt1XCA7Civmp5jjgIUgPiBzYW1hemFtYVwgOwor5L6/5aO6ID4gYmVudHN1Ym9cIDsKK+S4gOi8myA+IGljaGlyeW91XCA7Civos5zniakgPiB0YW1hbW9ub1wgOwor55Sf5YilID4gc2VpYmV0c3VcIDsKK+mmluaetyA+IGt1YmlrYXNlXCA7CivlrZDniLUgPiBzaGlzaGFrdVwgOwor5L6L5byPID4gcmVpc2hpa2lcIDsKK+ePvueUnyA+IGdlbicnbmFtYVwgOwor5pyo6Iu6ID4ga2lpY2hpZ29cIDsKK+eKrOm3siA+IGludXdhc2hpXCA7CivmnKzoibIgPiBob25zaG9rdVwgOwor5Lmx6ISIID4gcmFubXlha3VcIDsKK+WumuakjSA+IHRlaXNob2t1XCA7Civou73jgIUgPiBrYXJ1Z2FydVwgOwor5a+G5o6lID4gbWlzc2V0c3VcIDsKK+S4gOi6jSA+IGljaGl5YWt1XCA7CivlsbHkurogPiB5YW1hYml0b1wgOwor6ISH5oGvID4ga3lvdXNva3VcIDsKK+e+veihoyA+IGhhZ29yb21vXCA7CivmnI3olqwgPiBmdWt1eWFrdVwgOwor5bGe5YOaID4gem9rdXJ5b3VcIDsKK+i2s+WeiyA+IGFzaGlnYXRhXCA7CivnlLvkuIAgPiBrYWt1aXRzdVwgOwor5qK15Yi5ID4gYm9uc2V0c3VcIDsKK+S8j+a1gSA+IGZ1a3VyeXV1XCA7Civlr77lsYAgPiB0YWlreW9rdVwgOwor54yr6LazID4gbmVrb2FzaGlcIDsKK+Wwj+WomCA+IGtvbXVzdW1lXCA7Civku6PniakgPiBkYWlidXRzdVwgOwor5aer6bGSID4gaGltZW1hc3VcIDsKK+acrOiFsCA+IGhvbmdvc2hpXCA7CivkuIDotrMgPiBoaXRvYXNoaVwgOwor6IW55YiHID4gaGFyYWtpcmlcIDsKK+S4oeimqiA+IHJ5b3VzaGluXCA7Civmmanpo68gPiBiYW5tZXNoaVwgOwor57+857+8ID4geW9rdXlva3VcIDsKK+eUn+WCtyA+IG5hbWFraXp1XCA7CivosZrogokgPiBidXRhbmlrdVwgOwor6ISH5b25ID4gd2FraXlha3VcIDsKK+mgremHkSA+IGF0YW1ha2luXCA7Civnvo7os6ogPiBiaXNoaXRzdVwgOwor5bGK5Ye6ID4gdG9kb2tlZGVcIDsKK+i1pOW/gyA+IHNla2lzaGluXCA7CivmnKzogbcgPiBob25zaG9rdVwgOwor54q26aqoID4gam91a290c3VcIDsKK+e/oOiJsiA+IHN1aXNob2t1XCA7CivkuKHoopYgPiByeW91c29kZVwgOwor5qC45b+DID4ga2FrdXNoaW5cIDsKK+S4uOiWrCA+IGdhbicneWFrdVwgOwor5Ly45pqiID4gc2hpbmNob3VcIDsKK+acneiHoyA+IGNob3VzaGluXCA7Civlrr/miYAgPiBzaHVrdXNob1wgOwor5p6c54mpID4ga3VkYW1vbm9cIDsKK+ePvueJqSA+IGdlbmJ1dHN1XCA7CivkuIvoq4sgPiBzaGl0YXVrZVwgOwor5pyo6ICzID4ga2lrdXJhZ2VcIDsKK+WwveWKmyA+IGppbnJ5b2t1XCA7CivkurrnlZwgPiBqaW5jaGlrdVwgOwor5Luu5ryGID4ga2FzaGl0c3VcIDsKK+adkeeriyA+IHNvbnJpdHN1XCA7CivpoqjohJogPiBrYXphYXNoaVwgOwor5L+C5ZOhID4ga2FrYXJpaW5cIDsKK+S4gOirviA+IGljaGlkYWt1XCA7CivlsI/lm70gPiBzaG91a29rdVwgOwor5a2m5q20ID4gZ2FrdXJla2lcIDsKK+Wuv+aCqiA+IHNodWt1YWt1XCA7Civog7jluqcgPiBtdW5hZ3VyYVwgOwor5LiA6KqtID4gaWNoaWRva3VcIDsKK+Wul+aVmSA+IHNodXVreW91XCA7Civlr6Xlr6UgPiByeW91cnlvdVwgOwor5pyJ6ImyID4geXV1c2hva3VcIDsKK+eLremHjyA+IGt5b3VyeW91XCA7CivmnaXnnYAgPiByYWljaGFrdVwgOwor5LyR5qWtID4ga3l1dWd5b3VcIDsKK+aciOiJsiA+IGdlc3Nob2t1XCA7Civkv67kuoYgPiBzaHV1cnlvdVwgOwor6IO45bmFID4gbXVuZWhhYmFcIDsKK+S4gOiogCA+IGhpdG9rb3RvXCA7Civlrr/lv5cgPiBzaHVrdXNoaVwgOwor6ICz55a+ID4gamlzaGl0c3VcIDsKK+iFleWKmyA+IHdhbnJ5b2t1XCA7CivohbnkuK0gPiBmdWt1Y2h1dVwgOwor5LiA6KeSID4gaGl0b2thZG9cIDsKK+iCieassiA+IG5pa3V5b2t1XCA7Civnj6DnjokgPiBzaHVneW9rdVwgOwor5LuA54mpID4ganV1bW90c3VcIDsKK+S4u+iJsiA+IHNodXNob2t1XCA7CivotIvmnK0gPiBuaXNlZnVkYVwgOwor6IKp5pu4ID4ga2F0YWdha2lcIDsKK+S/oeS8jyA+IHNoaW5wdWt1XCA7Civkv6Hku7sgPiBzaGluJyduaW5cIDsKK+Wuv+W8iiA+IHNodWt1aGVpXCA7CivprLHjgIUgPiB1dHN1dXRzdVwgOwor5Lmx562GID4gcmFucGl0c3VcIDsKK+S6uueJqSA+IGppbmJ1dHN1XCA7Civkv5fkv6EgPiB6b2t1c2hpblwgOwor54yu6KGAID4ga2Vua2V0c3VcIDsKK+agvOWuiSA+IGtha3V5YXN1XCA7CivkuKHok4sgPiByeW91YnV0YVwgOwor5a2m5qWtID4gZ2FrdWd5b3VcIDsKK+S6uueItSA+IGppbnNoYWt1XCA7CivnjKXopLsgPiB3YWlzZXRzdVwgOwor6LGa566xID4gYnV0YWJha29cIDsKK+S7ruauvyA+IGthcmlkb25vXCA7Civpo5vnn7MgPiB0b2JpaXNoaVwgOwor5Lmx56uLID4gcmFucml0c3VcIDsKK+Wuv+W4syA+IHlhZG9jaG91XCA7Civlr5Llr5IgPiBzYW11emFtdVwgOwor5pyx562GID4gc2h1aGl0c3VcIDsKK+S4u+iEiCA+IHNodW15YWt1XCA7Civku5jmt7sgPiB0c3VraXNvaVwgOwor5pys56+AID4gaG9uYnVzaGlcIDsKK+absuiKuCA+IGt5b2t1Z2VpXCA7CivmnKvnr4AgPiBtYXNzZXRzdVwgOwor6Laz5YWDID4gYXNoaW1vdG9cIDsKK+iyoeeJqSA+IHphaWJ1dHN1XCA7CivlsI/lkI0gPiBzaG91bXlvdVwgOwor5LmX57WEID4gbm9yaWt1bWlcIDsKK+WvneWnvyA+IG5lc3VnYXRhXCA7Civmm7PoiLkgPiBoaWtpYnVuZVwgOwor57+M57+MID4geW9rdXlva3VcIDsKK+acq+ethiA+IG1hcHBpdHN1XCA7CivmmLzpoIMgPiBoaXJ1Z29yb1wgOwor6IKh5peFID4gbWF0YXRhYmlcIDsKK+eLrOi6qyA+IGRva3VzaGluXCA7CivnkLTmm7IgPiBraW5reW9rdVwgOwor5Lqs54mpID4ga3lvdW1vbm9cIDsKK+afkOaciCA+IGJvdWdldHN1XCA7CivosYbnspUgPiBtYW1la2FzdVwgOwor5a6f5oOFID4gaml0c3Vqb3VcIDsKK+S4reiFuSA+IGNodXVmdWt1XCA7CivpoIbpgIYgPiBqdW5neWFrdVwgOwor5p2J55quID4gc3VnaWthd2FcIDsKK+WwhuWPiCA+IGhhdGFtYXRhXCA7CivohLHljbQgPiBkYWtreWFrdVwgOwor5a+C5a+lID4gc2VraXJ5b3VcIDsKK+WvguWvniA+IHNla2liYWt1XCA7Civpo5/nlKggPiBzaG9rdXlvdVwgOwor5p+Q5pelID4gYm91aml0c3VcIDsKK+aZqemFjCA+IGJhbnNoYWt1XCA7CivkuK3ogokgPiBjaHV1bmlrdVwgOwor6LKe54OIID4gdGVpcmV0c3VcIDsKK+mjsueJqSA+IG5vbWltb25vXCA7CivkuKHohpogPiByeW91aGFkYVwgOwor5Luy5qC4ID4gY2h1dWtha3VcIDsKK+S5neepgCA+IGt5dXVrb2t1XCA7Civlrp/lvL4gPiBqaXRzdWRhblwgOwor5LiL6JCgID4gc2hpdGFtb2VcIDsKK+absuiAhSA+IGt1c2Vtb25vXCA7CivlrprlvosgPiB0ZWlyaXRzdVwgOwor5qGD5ZySID4gbW9tb3pvbm9cIDsKK+mmluW3uyA+IGt1YmltYWtpXCA7Civku4/msJcgPiBob3Rva2VnaVwgOwor5pil6aKoID4gaGFydWthemVcIDsKK+S4puiCiSA+IG5hbWluaWt1XCA7CivlrqLlubQgPiBreWFrdW5lblwgOwor6LaK5Y2XID4gYmV0b25hbXVcIDsKK+S4oeiEhyA+IHJ5b3V3YWtpXCA7CivkvLjlvLUgPiBzaGluY2hvdVwgOwor6aKo56qTID4ga2F6YW1hZG9cIDsKK+miqOeptCA+IGZ1dWtldHN1XCA7Civku4/mrr8gPiBidXRzdWRlblwgOwor6IO45aOBID4ga3lvdWhla2lcIDsKK+WumuW8jyA+IHRlaXNoaWtpXCA7CivmmJ/po58gPiBzZWlzaG9rdVwgOwor5Lih6IKYID4gcnlvdWhpamlcIDsKK+S4oeiCjCA+IHJ5b3VoYWRhXCA7Civosp7mvZQgPiB0ZWlrZXRzdVwgOwor5auh55S3ID4gY2hha3VuYW5cIDsKK+S5s+eZvSA+IG55dXVoYWt1XCA7CivkvY7lr4YgPiB0ZWltaXRzdVwgOwor5Lih6ICzID4gcnlvdW1pbWlcIDsKK+S5seeZuiA+IHJhbnBhdHN1XCA7CivohIXlmocgPiBreW91a2FrdVwgOwor5pq06JmQID4gYm91Z3lha3VcIDsKK+iCmOaOmyA+IGhpamlrYWtlXCA7CivkuKHnv7wgPiByeW91eW9rdVwgOwor5a+G5aOyID4gbWl0c3ViYWlcIDsKK+acqOefsyA+IGJva3VzZWtpXCA7CivnjonnoJUgPiBneW9rdXNhaVwgOwor5LiD6I2JID4gbmFuYWt1c2FcIDsKK+WuruWuiCA+IG1peWFtb3JpXCA7Civmm6DogbcgPiBrb3VzaG9rdVwgOwor546J55+zID4gdGFtYWlzaGlcIDsKK+S4ieiJsiA+IHNhbnNob2t1XCA7Civku7LmmKUgPiBjaHV1c2h1blwgOwor5qGR5Y6fID4ga3V3YWJhcmFcIDsKK+itmOmWviA+IHNoaWtpaWtpXCA7Civkurrms6IgPiBoaXRvbmFtaVwgOwor5pil6ZuoID4gaGFydXNhbWVcIDsKK+e/s+ebriA+IGthc3VtaW1lXCA7CivnjL/ogqEgPiBzYXJ1bWF0YVwgOwor5puy57eaID4ga3lva3VzZW5cIDsKK+S8keaImiA+IGt5dXVzZWtpXCA7CivlrqLlsaQgPiBreWFrdXNvdVwgOwor5pil6Zm9ID4gc2h1bicneW91XCA7Civosp7mt5EgPiB0ZWlzaHVrdVwgOwor5a6I5b25ID4gbW9yaXlha3VcIDsKK+S4u+evgCA+IHNodXNldHN1XCA7CivkuIDoirEgPiBoaXRvaGFuYVwgOwor6aGU6ImyID4gZ2Fuc2hva3VcIDsKK+S4ree0sCA+IGNodXVib3NvXCA7CivkuK3ntJogPiBjaHV1a3l1dVwgOwor6LaF5YWLID4gY2hvdWtva3VcIDsKK+S4u+ethiA+IHNodWhpdHN1XCA7Civnjofnm7QgPiBzb3RjaG9rdVwgOwor54yr6IiMID4gbmVrb2ppdGFcIDsKK+S4ieiEmiA+IHNhbmt5YWt1XCA7CivmmbrorZggPiBjaGlzaGlraVwgOwor5LiL6IKlID4gc2hpbW9nb2VcIDsKK+Wun+WusyA+IGppdHN1Z2FpXCA7CivppIrmrpYgPiB5b3VzaG9rdVwgOwor5bCP5LiAID4gc2hvdWljaGlcIDsKK+iyquassiA+IGRvbicneW9rdVwgOwor5Lq65qyyID4gamluJyd5b2t1XCA7CivogJDnhrEgPiB0YWluZXRzdVwgOwor5a6f5a2YID4gaml0c3V6b25cIDsKK+mgmOiiliA+IHJ5b3VzaHV1XCA7CivkvJHmga8gPiBreXV1c29rdVwgOwor5pex6a2DID4ga2FuYmF0c3VcIDsKK+eJuembhiA+IHRva3VzaHV1XCA7CivmnKvnlLcgPiBiYXRzdW5hblwgOwor5a6/5Z2KID4gc2h1a3Vib3VcIDsKK+mfs+izqiA+IG9uc2hpdHN1XCA7CivkuLjnqpMgPiBtYXJ1bWFkb1wgOwor54yr6ISaID4gbmVrb2FzaGlcIDsKK+WvuOWAnyA+IHN1bnNoYWt1XCA7CivotoXkv5cgPiBjaG91em9rdVwgOwor5puy566hID4ga3lva3VrYW5cIDsKK+S8keW/gyA+IGt5dXVzaGluXCA7CivohIjli5UgPiBteWFrdWRvdVwgOwor6aGV6IG3ID4ga2Vuc2hva3VcIDsKK+iCqeW5hSA+IGthdGFoYWJhXCA7CivmoYjlh7ogPiBhbnNodXRzdVwgOwor6IKh5byVID4gbW9tb2hpa2lcIDsKK+S4uOemvyA+IG1hcnVoYWdlXCA7CivkvpvkurogPiB0b21vYml0b1wgOwor5Lq65qeYID4gaGl0b3NhbWFcIDsKK+S5s+eJmyA+IG55dXVneXV1XCA7CivlsILkuIAgPiBzZW4nJ2l0c3VcIDsKK+aeleacqCA+IG1ha3VyYWdpXCA7CivogqHluqcgPiBtYXRhZ3VyYVwgOwor54m56ZW3ID4gdG9rdWNob3VcIDsKK+mgguinkiA+IGNob3VrYWt1XCA7Civni7jol7sgPiB0YW51a2ltb1wgOwor57y26KmwID4ga2FuZHp1bWVcIDsKK+S4gOe/vCA+IGljaGl5b2t1XCA7Civlrp/lprkgPiBqaXRzdW1haVwgOwor5Lit56m6ID4gbmFrYXpvcmFcIDsKK+aflOW8sSA+IG55dXVqYWt1XCA7Civpo7LmsLQgPiBub21pbWl6dVwgOwor5Lit56iLID4gbmFrYWhvZG9cIDsKK+S7iuaciCA+IGtvbmdldHN1XCA7CivosrjmnKwgPiBrYXNoaWhvblwgOwor5Lim56uLID4gaGVpcml0c3VcIDsKK+WuieWuvyA+IHlhc3V5YWRvXCA7Civog73lipsgPiBub3VyeW9rdVwgOwor5Lit56eLID4gY2h1dXNodXVcIDsKK+eJqemZsCA+IG1vbm9rYWdlXCA7CivlronlrokgPiB5YXN1eWFzdVwgOwor5a2m5b6zID4gZ2FrdXRva3VcIDsKK+e/kueZliA+IHNodXVoZWtpXCA7CivkuLjnn7MgPiBtYXJ1aXNoaVwgOwor5LiH57eRID4gYmFucnlva3VcIDsKK+Wuv+WRvSA+IHNodWt1bWVpXCA7Civku4/mlocgPiBmdXRzdWJ1blwgOwor54mb6Z2pID4gZ3l1dWthd2FcIDsKK+iBluaXpSA+IHNlaWppdHN1XCA7Civkurrmn4QgPiBoaXRvZ2FyYVwgOwor6auY44CFID4gdGFrYWRha2FcIDsKK+S6q+alvSA+IGt5b3VyYWt1XCA7Civmnb7mn48gPiBzaG91aGFrdVwgOwor576k56u5ID4gbXVyYXRha2VcIDsKK+itpui5lSA+IGtlaWhpdHN1XCA7CivkubPmv4EgPiBueXV1ZGFrdVwgOwor57+g546JID4gc3VpZ3lva3VcIDsKK+aXpemjnyA+IG5pc3Nob2t1XCA7Civku4fmlbUgPiBreXV1dGVraVwgOwor6Z266Z6oID4gbWFra2F0c3VcIDsKK+Wnv+imiyA+IHN1Z2F0YW1pXCA7Civlrp/lnKggPiBqaXRzdXphaVwgOwor5pyI55WqID4gdHN1a2liYW5cIDsKK+eSsOS4gyA+IGthbicnbmFuYVwgOwor6IO45YWIID4gbXVuYXNha2lcIDsKK+iDuOWFgyA+IG11bmFtb3RvXCA7CivkuIDntYQgPiBoaXRva3VtaVwgOwor54yr57OeID4gbmVrb2JhYmFcIDsKK+aXp+mgmCA+IGt5dXVyeW91XCA7CivpnbTpn7MgPiBrdXRzdW90b1wgOwor5LmX54mpID4gbm9yaW1vbm9cIDsKK+miqOeJqSA+IGZ1dWJ1dHN1XCA7CivkvZzliocgPiBzYWt1Z2VraVwgOwor5pqW6ImyID4gZGFuc2hva3VcIDsKK+S9leWNkiA+IG5hbml0b3pvXCA7CivnjofnhLYgPiBzb3RzdXplblwgOwor5LyR5a2mID4ga3l1dWdha3VcIDsKK+S4ieethiA+IHNhbnBpdHN1XCA7CivkvY/lj4sgPiBzdW1pdG9tb1wgOwor5p2+5piOID4gdGFpbWF0c3VcIDsKK+WBtuOAhSA+IHRhbWF0YW1hXCA7Civku67lvbkgPiBrYXJpeWFrdVwgOwor5Lit55q/ID4gY2h1dXphcmFcIDsKK+iDuOWAiSA+IG11bmFndXJhXCA7CivkurrmlbAgPiBoaXRva2F6dVwgOwor5ama57SEID4ga29uJyd5YWt1XCA7CivkuIvnqbQgPiBzaGl0YWFuYVwgOwor5L2T5YqbID4gdGFpcnlva3VcIDsKK+Wuv+WFrSA+IHlhZG9yb2t1XCA7CivogLPmnLYgPiBtaW1pdGFidVwgOwor5pu455WZID4ga2FraXRvbWVcIDsKK+S4gOetiyA+IGhpdG9zdWppXCA7Civlrablr64gPiBnYWt1cnlvdVwgOwor5LiA562GID4gaGl0b2Z1ZGVcIDsKK+eJh+mahSA+IGthdGFzdW1pXCA7CivosYHnhLYgPiBrYXRzdXplblwgOwor5L2O5YqjID4gdGVpcmV0c3VcIDsKK+eJh+mZsCA+IGthdGFrYWdlXCA7CivkuqXmnIggPiBnYWlnZXRzdVwgOwor54m56YCyID4gdG9rdXNoaW5cIDsKK+izquWxiyA+IHNoaWNoaXlhXCA7CivnjKrnqoEgPiBjaG90b3RzdVwgOwor5Lqs5pa5ID4ga3lvdWdhdGFcIDsKK+eJm+mNiyA+IGd5dXVuYWJlXCA7Civlrp/lkI0gPiBqaXRzdW1laVwgOwor5p2l5pyIID4gcmFpZ2V0c3VcIDsKK+iDuOS4rSA+IGt5b3VjaHV1XCA7CivkuIDnqK4gPiBoaXRva3VzYVwgOwor57+S54afID4gc2h1dWp1a3VcIDsKK+aYjumBlCA+IG1laXRhdHN1XCA7CivmnqHlvaIgPiBtYXN1Z2F0YVwgOwor5a6/5L6/ID4gc2h1a3ViZW5cIDsKK+WvhuS7pCA+IG1pdHN1cmVpXCA7CivnibnovK8gPiB0b2t1c2h1dVwgOwor5LiA56eSID4gaWNoaWJ5b3VcIDsKK+S4u+eJqSA+IHNodWJ1dHN1XCA7CivnvqTnmbogPiBndW5wYXRzdVwgOwor5puy55CDID4ga3lva2t5dXVcIDsKK+aXqemQmCA+IGhheWFnYW5lXCA7Civos6Llr58gPiBrZW5zYXRzdVwgOwor5LqM5qGBID4gZnV0YWtldGFcIDsKK+adpeaXpSA+IHJhaW5pY2hpXCA7CivmmIfpgLIgPiBzaG91c2hpblwgOwor54iq6Z+zID4gdHN1bWFvdG9cIDsKK+aWremrqiA+IGRhbnBhdHN1XCA7Civmm7LnjokgPiBtYWdhdGFtYVwgOwor5a6i5YiGID4ga3lha3VidW5cIDsKK+S4mOeWuSA+IGt5dXVzaGluXCA7CivkvZXkvZUgPiBuYW5pbmFuaVwgOwor6IOG5YqbID4gdGFucnlva3VcIDsKK+S6i+afhCA+IGtvdG9nYXJhXCA7Civku67lrq4gPiBrYXJpbWl5YVwgOwor5pu454mpID4gc2hvbW90c3VcIDsKK+eJm+mFqiA+IGd5dXVyYWt1XCA7Civni6znv5IgPiBkb2t1c2h1dVwgOwor5Luu5a6FID4ga2FyaXRha3VcIDsKK+WtkOWunSA+IGtvZGFrYXJhXCA7Civpn67okbEgPiBuaXJhbmVnaVwgOwor5L2X5Lq6ID4gd2FiaWJpdG9cIDsKK+S7j+W8jyA+IGJ1c3NoaWtpXCA7CivpoLjnrYsgPiBrdWJpc3VqaVwgOwor6LKq5oW+ID4gZG9uJyd5b2t1XCA7CivorJvph4ggPiBrb3VzaGFrdVwgOwor5LiJ55u0ID4gc2FuY2hva3VcIDsKK+S9leS6iyA+IG5hbmlnb3RvXCA7CivogonlpKogPiBuaWt1YnV0b1wgOwor5LiJ55m+ID4gc2FuYnlha3VcIDsKK+aXj+mVtyA+IHpva3VjaG91XCA7Civnibnos54gPiB0b2t1c2hvdVwgOwor5a6i5YOnID4ga3lha3Vzb3VcIDsKK+S6pOaOpSA+IGtvdXNldHN1XCA7CivpoZTnnYAgPiBnYW5jaGFrdVwgOwor5Lmz5qWtID4gbnl1dWd5b3VcIDsKK+aXpemKgCA+IG5pY2hpZ2luXCA7CivmnpXluK0gPiBjaGluc2VraVwgOwor6LOT5a6iID4gaGlua3lha3VcIDsKK+Wun+WDjyA+IGppdHN1em91XCA7Civlrp/lg40gPiBqaXRzdWRvdVwgOwor5a6u5Lq6ID4gbWl5YWJpdG9cIDsKK+aXp+mHjCA+IGZ1cnVzYXRvXCA7CivkuIDnmr8gPiBoaXRvc2FyYVwgOwor5LiA55quID4gaGl0b2thd2FcIDsKK+S6jOaWuSA+IGZ1dGFrYXRhXCA7CivkuIrnlaUgPiBqb3VyeWFrdVwgOwor6LOK5bCGID4gem9rdXNob3VcIDsKK+iyq+W+uSA+IGthbnRldHN1XCA7CivmnqLlr4YgPiBzdXVtaXRzdVwgOwor5LiA55mWID4gaGl0b2t1c2VcIDsKK+eQg+WvqSA+IGt5dXVzaGluXCA7Civlrq7kuK0gPiBreXV1Y2h1dVwgOwor6LGG5q67ID4gbWFtZWdhcmFcIDsKK+ePvuWwuiA+IGdlbnNoYWt1XCA7CivkurrlvbEgPiBoaXRva2FnZVwgOwor5a6i5L2TID4ga3lha3V0YWlcIDsKK+Wun+S+iyA+IGppdHN1cmVpXCA7CivmnKjmp4wgPiBraWR6dWNoaVwgOwor5Luk5aeqID4gcmVpdGV0c3VcIDsKK+ePvuWunyA+IGdlbmppdHN1XCA7Civogoflm70gPiBjaG91a29rdVwgOwor5a6i5Lq6ID4ga3lha3VqaW5cIDsKK+mcuemdgiA+IGhla2lyZWtpXCA7CivorbLokYkgPiB5dXp1cmloYVwgOwor6LC35rC0ID4gdGFuaW1penVcIDsKK+ixquaXpSA+IGdvdW5pY2hpXCA7CivmnI3mr5IgPiBmdWt1ZG9rdVwgOwor6IG35Z+fID4gc2hva3Vpa2lcIDsKK+aatOeZuiA+IGJvdWhhdHN1XCA7CivkuqzlvaIgPiBreW91Z2F0YVwgOwor6aOf5oyHID4gc2hva3VzaGlcIDsKK+eJtOinpiA+IHRlaXNob2t1XCA7Civml6XovKogPiBuaWNoaXJpblwgOwor6IKp5YWIID4ga2F0YXNha2lcIDsKK+WklumwkCA+IHNvdG93YW5pXCA7CivpoLvnmbogPiBoaW5wYXRzdVwgOwor5Lyv5LuyID4gaGFrdWNodXVcIDsKK+acrOacrCA+IG1vdG9tb3RvXCA7CivmnKzmnKsgPiBob25tYXRzdVwgOwor5LiH54mpID4gYmFubW90c3VcIDsKK+eLreeqhCA+IGt5b3VzYWt1XCA7Civnjonmna8gPiBneW9rdWhhaVwgOwor54yu54mpID4ga2VubW90c3VcIDsKK+S6uuWxsSA+IGhpdG95YW1hXCA7Civml6notrMgPiBoYXlhYXNoaVwgOwor5LqG5om/ID4gcnlvdXNob3VcIDsKK+S4rea1gSA+IGNodXVyeXV1XCA7CivpnKfpm6ggPiBraXJpc2FtZVwgOwor5aSn6aOfID4gdGFpc2hva3VcIDsKK+aWh+mjviA+IGJ1bnNob2t1XCA7Civos6Llk7IgPiBrZW50ZXRzdVwgOwor54mH6LazID4ga2F0YWFzaGlcIDsKK+S4gOeJhyA+IGhpdG9oaXJhXCA7CivmnKzml6UgPiBob25qaXRzdVwgOwor5Lm+5outID4ga2FyYWJ1a2lcIDsKK+mjn+aEnyA+IHNob2t1a2FuXCA7CivmlbTpq6ogPiBzZWloYXRzdVwgOwor5LuP5aOHID4gYnV0c3VkYW5cIDsKK+WtpuWJsiA+IGdha3V3YXJpXCA7CivmlbTpqqggPiBzZWlrb3RzdVwgOwor6LSL5L2cID4gbmlzZXNha3VcIDsKK+WtpuWJhyA+IGdha3Vzb2t1XCA7Civmm7LmsLQgPiBreW9rdXN1aVwgOwor6aKo5pyIID4gZnV1Z2V0c3VcIDsKK+mcnOmbqiA+IHNvdXNldHN1XCA7CivkubHmjpggPiByYW5rdXRzdVwgOwor5Lit5q+SID4gY2h1dWRva3VcIDsKK+S5neaXpSA+IGtva29ub2thXCA7Civml6XosaogPiBuaWNoaWdvdVwgOwor5LuP5aCCID4gYnV0c3Vkb3VcIDsKK+S5neaXjyA+IGt5dXV6b2t1XCA7Civpn7/nrJsgPiBreW91dGVraVwgOwor6Kqt6Z+/ID4geW9taWt5b3VcIDsKK+ism+iqrCA+IGtvdXNldHN1XCA7CivniZvop5IgPiBneXV1a2FrdVwgOwor5aSn6ZuqID4gdGFpc2V0c3VcIDsKK+WklumjnyA+IGdhaXNob2t1XCA7CivogLPlsY4gPiBtaW1pa3Vzb1wgOwor5aSV6aOvID4geXV1bWVzaGlcIDsKK+iBt+WQjSA+IHNob2t1bWVpXCA7Civmmannr4AgPiBiYW5zZXRzdVwgOwor5LqM5b25ID4gZnV0YXlha3VcIDsKK+WklemjnyA+IHl1dXNob2t1XCA7CivkuozlvaIgPiBmdXRhbmFyaVwgOwor5pil6I+KID4gc2h1bmdpa3VcIDsKK+WtpuWDlSA+IGdha3Vib2t1XCA7CivosYbmlpkgPiBtYW1lcnlvdVwgOwor546J5pGnID4gZ3lva3VzYWlcIDsKK+acneaVtSA+IGNob3V0ZWtpXCA7CivmlaPpq6ogPiBzYW5wYXRzdVwgOwor6KyO6KyOID4gbmF6b25hem9cIDsKK+WxseOAhSA+IHlhbWF5YW1hXCA7CivlpoToqqwgPiBtb3VzZXRzdVwgOwor6aCT552AID4gdG9uY2hha3VcIDsKK+S7j+WZuCA+IGZ1dHN1dG9uXCA7CivlppbooZMgPiB5b3VqdXRzdVwgOwor6Zub6bOlID4gaGluYWRvcmlcIDsKK+mbu+mjviA+IGRlbnNob2t1XCA7Civlrabkv64gPiBnYWt1c2h1dVwgOwor5pen6KizID4ga3l1dXlha3VcIDsKK+aciOacqyA+IHRzdWtpenVlXCA7Civni6znmb0gPiBkb2t1aGFrdVwgOwor54yb54OIID4gbW91cmV0c3VcIDsKK+eIqui3oSA+IHRzdW1lYXRvXCA7Civku67liJ0gPiBrYXJpc29tZVwgOwor5p2l5a6iID4gcmFpa3lha3VcIDsKK+aciOabnCA+IGdldHN1eW91XCA7Civnv4zmnJ0gPiB5b2t1Y2hvdVwgOwor57mB6ZuRID4gaGFuemF0c3VcIDsKK+iBt+WItiA+IHNob2t1c2VpXCA7CivmlrDpgLIgPiBzaGluc2hpblwgOwor6IG35YiGID4gc2hva3VidW5cIDsKK+S5vuW8jyA+IGthbnNoaWtpXCA7CivpnaLorZggPiBtZW5zaGlraVwgOwor5Lq65Z6jID4gaGl0b2dha2lcIDsKK+WksemMryA+IHNoaXNzYWt1XCA7CivkuYXmlrkgPiBoaXNha2F0YVwgOwor5pyI5piOID4gZ2V0c3VtZWlcIDsKK+WjsOmrmCA+IGtvd2FkYWthXCA7Civoq5bov7AgPiByb25qdXRzdVwgOwor57+M5pilID4geW9rdXNodW5cIDsKK+irvuirviA+IGRha3VkYWt1XCA7CivorZjogIUgPiBzaGlraXNoYVwgOwor5LuV5Y+jID4gc2hpa3VjaGlcIDsKK+S4reaguCA+IGNodXVrYWt1XCA7CivosaHlvrQgPiBzaG91Y2hvdVwgOwor54+N5aaZID4gY2hpbm15b3VcIDsKK+iyneWhmiA+IGthaWR6dWthXCA7CivogZblk7IgPiBzZWl0ZXRzdVwgOwor6Z2i6KmwID4gbWVua2l0c3VcIDsKK+e4nummrCA+IHNoaW1hdW1hXCA7Civpo5/lsL0gPiBzaG9rdWppblwgOwor6LOt5LqLID4ga2FrZWdvdG9cIDsKK+S4gOa1gSA+IGljaGlyeXV1XCA7CivkuK3mn4QgPiBjaHV1Z2FyYVwgOwor5pu45pytID4gc2hvc2F0c3VcIDsKK+WmmeiWrCA+IG15b3V5YWt1XCA7CivkuLvml6UgPiBzaHVqaXRzdVwgOwor6Ku46Ku4ID4gbW9yb21vcm9cIDsKK+mdmeiskCA+IHNlaWhpdHN1XCA7Civoq7joqqwgPiBzaG9zZXRzdVwgOwor6LOH5YqbID4gc2hpcnlva3VcIDsKK+Wls+imqiA+IG9uJyduYW95YVwgOwor5pu05pu0ID4gc2FyYXNhcmFcIDsKK+adk+WtkCA+IHNoYWt1c2hpXCA7Civmm7Lmm7IgPiBrdW1hZ3VtYVwgOwor5pm655WlID4gY2hpcnlha3VcIDsKK+aYjuiJsiA+IG1laXNob2t1XCA7Civml6XonZUgPiBuaXNzaG9rdVwgOwor5LuW5Ye6ID4gdGFzaHV0c3VcIDsKK+mbqOmdtCA+IGFtYWd1dHN1XCA7CivmnKzlvI8gPiBob25zaGlraVwgOwor5LuP5YmNID4gYnV0c3V6ZW5cIDsKK+iqv+mAsiA+IGNob3VzaGluXCA7Civpm6rpm7IgPiB5dWtpZ3Vtb1wgOwor6Zuo6ZywID4gYW1lYXJhcmVcIDsKK+S7j+WIuSA+IGJ1c3NldHN1XCA7CivmnKjlvasgPiBtb2t1Y2hvdVwgOwor5pqR54axID4gc2hvbmV0c3VcIDsKK+eJqeiJsiA+IGJ1c3Nob2t1XCA7CivogbfkurogPiBzaG9rdW5pblwgOwor6Kun6KyUID4ga2FpZ3lha3VcIDsKK+eLrOeJuSA+IGRva3V0b2t1XCA7CivlpLHpgJ8gPiBzaGlzc29rdVwgOwor5pil57mtID4gaGFydW1heXVcIDsKK+mknuWIpSA+IHNlbmJldHN1XCA7CivnhrHpoZggPiBuZXRzdWdhblwgOwor5pyr5bm0ID4gbWF0c3VuZW5cIDsKK+WroeWtqyA+IGNoYWt1c29uXCA7Civnianoh60gPiBtb25vZ3VzYVwgOwor6IGW5YilID4gc2VpYmV0c3VcIDsKK+WroeWtkCA+IGNoYWt1c2hpXCA7Civoq6Toq6QgPiBnYWt1Z2FrdVwgOwor54uh54y+ID4ga291a2F0c3VcIDsKK+iAg+WvnyA+IGtvdXNhdHN1XCA7Civpm5Hpo58gPiB6YXNzaG9rdVwgOwor5Li75oyBID4gc2h1bW9jaGlcIDsKK+WssOWFkCA+IG1pZG9yaWdvXCA7CivnuKbplbcgPiB0YXRlbmFnYVwgOwor5pa96KitID4gc2hpc2V0c3VcIDsKK+eLgueahCA+IGt5b3V0ZWtpXCA7CivkuonlpaogPiBzb3VkYXRzdVwgOwor6Z6P6IacID4ga3lvdW1ha3VcIDsKK+S7j+WDjyA+IGJ1dHN1em91XCA7CivogIHlrp8gPiByb3VqaXRzdVwgOwor5aSn6YCGID4gZGFpZ3lha3VcIDsKK+aXpeiTriA+IG5pY2hpcmVuXCA7CivnhrHpm7cgPiBuZXRzdXJhaVwgOwor6Kmm6aOfID4gc2hpc2hva3VcIDsKK+aVt+mHkSA+IHNoaWtpa2luXCA7CivkurrlipsgPiBqaW5yeW9rdVwgOwor5Lmd5beeID4ga3l1dXNodXVcIDsKK+aWsOiqvyA+IHNoaW5jaG91XCA7Civpo5/loIIgPiBzaG9rdWRvdVwgOwor5auh5aa7ID4gY2hha3VzYWlcIDsKK+S4gOajnyA+IGhpdG9tdW5lXCA7CivlpLHot6EgPiBzaGlzc2VraVwgOwor5Lq65Yi6ID4gamluc2FzaGlcIDsKK+mbu+mJhCA+IGRlbnRldHN1XCA7CivkurrliKUgPiBuaW5iZXRzdVwgOwor6KuW6KqsID4gcm9uc2V0c3VcIDsKK+acrOWxgCA+IGhvbmt5b2t1XCA7CivkuK3mjIcgPiBuYWtheXViaVwgOwor6LK45YCfID4gdGFpc2hha3VcIDsKK+eNsuW+lyA+IGtha3V0b2t1XCA7Civoq5boqbAgPiByb25raXRzdVwgOwor5LiA5qGBID4gaGl0b2tldGFcIDsKK+aWveihkyA+IHNoaWp1dHN1XCA7CivpoZvmnKsgPiB0ZW5tYXRzdVwgOwor6LKr5YWlID4ga2FuJydueXV1XCA7CivosqHlipsgPiB6YWlyeW9rdVwgOwor6Kqe6YOoID4ga2F0YXJpYmVcIDsKK+e/kuW+lyA+IHNodXV0b2t1XCA7CivkuInmm7IgPiBzYW5reW9rdVwgOwor5pmv54mpID4ga2VpYnV0c3VcIDsKK+aWueihkyA+IGhvdWp1dHN1XCA7CivnibnntIQgPiB0b2t1eWFrdVwgOwor5LiA5p6aID4gaGl0b2hpcmFcIDsKK+e5sOiogCA+IGt1cmlnb3RvXCA7CivniZvogokgPiBneXV1bmlrdVwgOwor5p2J5Z6jID4gc3VnaWdha2lcIDsKK+eOi+WupCA+IG91c2hpdHN1XCA7CivkuIDmnZ8gPiBoaXRvdGFiYVwgOwor5Lqs5YqHID4ga3lvdWdla2lcIDsKK+eJoee+iiA+IG9oaXRzdWppXCA7CivosLflupUgPiB0YW5pem9rb1wgOwor5LiA5pyoID4gaWNoaWJva3VcIDsKK+S6uuWCkSA+IGppbmtldHN1XCA7Civpn5znlaUgPiB0b3VyeWFrdVwgOwor5pen6IejID4ga3l1dXNoaW5cIDsKK+aYqOeniyA+IHNha3VzaHV1XCA7Civlpb3oibIgPiBrb3VzaG9rdVwgOwor6LC35bedID4gdGFuaWdhd2FcIDsKK+S7hOS7hCA+IGhvbm9ib25vXCA7CivosrfkuLsgPiBrYWludXNoaVwgOwor5LiA5pmCID4gaGl0b3Rva2lcIDsKK+aYh+e1piA+IHNob3VreXV1XCA7CivniYfohp0gPiBrYXRhaGl6YVwgOwor5LmX5a6iID4gam91a3lha3VcIDsKK+S4uOW9oiA+IG1hcnVnYXRhXCA7Civpo7LliqkgPiBub21pc3VrZVwgOwor5puy5oKqID4ga3lva3Vha3VcIDsKK+aYh+e0miA+IHNob3VreXV1XCA7CivkuIDml5cgPiBoaXRvaGF0YVwgOwor5LiA5pePID4gaWNoaXpva3VcIDsKK+mjn+WTgSA+IHNob2t1aGluXCA7CivnianntI0gPiBidXRzdW5vdVwgOwor5aSx6Kq/ID4gc2hpdGNob3VcIDsKK+eFrumtmiA+IG5pemFrYW5hXCA7CivlpLHoqp4gPiBzaGl0c3Vnb1wgOwor6ICz5YWDID4gbWltaW1vdG9cIDsKK+aXqeiAsyA+IGhheWFtaW1pXCA7CivkuLjlupUgPiBtYXJ1em9rb1wgOwor6Z2i6ImyID4gbWVuc2hva3VcIDsKK+S6uuS6uiA+IGhpdG9iaXRvXCA7CivmlaPpgLggPiBzYW4nJ2l0c3VcIDsKK+S4reW/gyA+IGNodXVzaGluXCA7CivniYfogowgPiBrYXRhaGFkYVwgOwor6Kmz6YyyID4gc2hvdXJva3VcIDsKK+WroeWXoyA+IGNoYWt1c2hpXCA7Civmm7jlvI8gPiBzaG9zaGlraVwgOwor5Lq65LqLID4gaGl0b2dvdG9cIDsKK+e3j+mrqiA+IHNvdWhhdHN1XCA7CivmnI3lsZ4gPiBmdWt1em9rdVwgOwor54m556iuID4gdG9rdWRhbmVcIDsKK+S4reW9oiA+IGNodXVnYXRhXCA7CivniYfogLMgPiBrYXRhbWltaVwgOwor5pen57+SID4ga3l1dXNodXVcIDsKK+S6uuS4rSA+IGhpdG9uYWthXCA7CivkurrkuKYgPiBoaXRvbmFtaVwgOwor54m556ewID4gdG9rdXNob3VcIDsKK+S4gOaSgyA+IGljaGlnZWtpXCA7CivkuK3luq0gPiBuYWthbml3YVwgOwor5bCR44CFID4gc2hvdXNob3VcIDsKK+Wni+eZuiA+IHNoaWhhdHN1XCA7CivorJ3ntbYgPiBzaGF6ZXRzdVwgOwor5Lm+5ZKzID4ga2FyYXpla2lcIDsKK+S4reW5lSA+IG5ha2FtYWt1XCA7CivkuK3luYUgPiBjaHV1aGFiYVwgOwor6Ku46IadID4gbW9yb2hpemFcIDsKK+iruOiGmiA+IG1vcm9oYWRhXCA7CivkuK3luK0gPiBuYWthc2VraVwgOwor5pyd5aSVID4gY2hvdXNla2lcIDsKK+eJp+esmyA+IGJva3V0ZWtpXCA7CivkuKHlvpcgPiByeW91dG9rdVwgOwor57im6Lu4ID4gdGF0ZWppa3VcIDsKK+mdkuiJsiA+IHNlaXNob2t1XCA7Civpo5/liY0gPiBzaG9rdXplblwgOwor5aem54mpID4ga2FuYnV0c3VcIDsKK+mjn+WIuyA+IHNob2trb2t1XCA7CivnjonlnqMgPiB0YW1hZ2FraVwgOwor6ZuG6YyyID4gc2h1dXJva3VcIDsKK+mbsui2syA+IGt1bW9hc2hpXCA7Civnt5HpoqggPiByeW9rdWZ1dVwgOwor54mp56iuID4gbW9ub2RhbmVcIDsKK+S4puW5hSA+IG5hbWloYWJhXCA7CivlppnnrZYgPiBteW91c2FrdVwgOwor6Z2Z6ISIID4gam91bXlha3VcIDsKK+eJqeeojiA+IGJ1dHN1emVpXCA7CivkuLvlrqIgPiBzaHVreWFrdVwgOwor6aO85Li7ID4ga2FpbnVzaGlcIDsKK+iruOiCjCA+IG1vcm9oYWRhXCA7CivkuKblt74gPiBuYW1paGFiYVwgOwor5Lqk5LqkID4ga29tb2dvbW9cIDsKK+eIhuiWrCA+IGJha3V5YWt1XCA7CivkuK3ls7YgPiBuYWthamltYVwgOwor5pWF6YO3ID4gZnVydXNhdG9cIDsKK+S6i+WFsSA+IGtvdG9kb21vXCA7CivkuI3mgokgPiBmdXNoaXRzdVwgOwor5pen57SEID4ga3l1dXlha3VcIDsKK+eJp+elniA+IGJva3VzaGluXCA7Civnt5HpnZIgPiByb2t1c2hvdVwgOwor5pa56IifID4gaGFrb2J1bmVcIDsKK+mjr+S6iyA+IG1hbWFnb3RvXCA7CivkuK3lsI8gPiBjaHV1c2hvdVwgOwor5puy5bCEID4ga3lva3VzaGFcIDsKK+mbgemHkSA+IGthcmlnYW5lXCA7Civml6XnsbMgPiBuaWNoaWJlaVwgOwor54S86bOlID4geWFraXRvcmlcIDsKK+isueebtCA+IGtpbmNob2t1XCA7CivkuK3lraYgPiBjaHV1Z2FrdVwgOwor57e06YmEID4gcmVudGV0c3VcIDsKK+iqv+iWrCA+IGNob3V5YWt1XCA7CivlpInoqqwgPiBoZW5zZXRzdVwgOwor5pW16KWyID4gdGVraXNodXVcIDsKK+aUvumAkCA+IGhvdWNoaWt1XCA7CivkuInlvbkgPiBzYW4nJ3lha3VcIDsKK+eFqembkSA+IGhhbnphdHN1XCA7Civoqo3orZggPiBuaW5zaGlraVwgOwor5pen56ugID4ga3l1dXNob3VcIDsKK+e3kemWgCA+IHJ5b2t1bW9uXCA7CivmnZHkurogPiBtdXJhYml0b1wgOwor5LiL5bivID4gc2hpdGFvYmlcIDsKK+S4gOW9uSA+IGhpdG95YWt1XCA7CivosarlgpEgPiBnb3VrZXRzdVwgOwor5LqL5LqLID4ga290b2dvdG9cIDsKK+e2v+mbsiA+IHdhdGFndW1vXCA7CivkubHlhaUgPiByYW4nJ255dXVcIDsKK+e2v+mbqiA+IHdhdGF5dWtpXCA7CivkuojkuoggPiBrYW5lZ2FuZVwgOwor5pen56ewID4ga3l1dXNob3VcIDsKK+S4luWxgCA+IHNlaWt5b2t1XCA7Civnt7TpgZQgPiByZW50YXRzdVwgOwor5pqH5pqHID4gaGltYWhpbWFcIDsKK+S4gOW7iSA+IGhpdG9rYWRvXCA7CivpmobpmoYgPiByeXV1cnl1dVwgOwor5LiA5bqmID4gaGl0b3RhYmlcIDsKK+mahemahSA+IHN1bWl6dW1pXCA7CivkuIDlubQgPiBoaXRvdG9zZVwgOwor6Z2Z57KbID4gc2Vpc2h1a3VcIDsKK+WhqemurSA+IHNoaW96YWtlXCA7Civml4/nsY0gPiB6b2t1c2VraVwgOwor5aSn6JKcID4gbmluJyduaWt1XCA7CivkuIDluZUgPiBoaXRvbWFrdVwgOwor5Li45Z6LID4gbWFydWdhdGFcIDsKK+WlieiBtyA+IGhvdXNob2t1XCA7CivotavjgIUgPiBrYWt1a2FrdVwgOwor5LiA5be7ID4gaGl0b21ha2lcIDsKK+mbo+ipsCA+IG5hbmtpdHN1XCA7Civpm4Douo0gPiBqYWt1eWFrdVwgOwor5Lit5aGXID4gbmFrYW51cmlcIDsKK+mZqumjnyA+IGJhaXNob2t1XCA7CivpoIzmmKUgPiBzaG91c2h1blwgOwor5LiH5bGLID4geW9yb3p1eWFcIDsKK+S4reWeoyA+IG5ha2FnYWtpXCA7CivkuK3lnosgPiBjaHV1Z2F0YVwgOwor6aKo5YqbID4gZnV1cnlva3VcIDsKK+S4iuWuoiA+IGpvdWt5YWt1XCA7CivkubHkvJAgPiByYW5iYXRzdVwgOwor5pm65pelID4gY2hpbmljaGlcIDsKK+eMq+WxniA+IG5la296b2t1XCA7Civlr5LjgIUgPiBzYW11emFtdVwgOwor5LiA5bGxID4gaGl0b3lhbWFcIDsKK+S4reWbvSA+IGNodXVnb2t1XCA7CivlpKnoibIgPiB0ZW5zaG9rdVwgOwor6aCD5pelID4ga2Vpaml0c3VcIDsKK+ips+iouyA+IHNob3VjaHV1XCA7Civpm5Hoq4cgPiB6YXRzdWRhblwgOwor5peP56ewID4gem9rdXNob3VcIDsKK+aXpeebtCA+IG5pdGNob2t1XCA7Civnt5HphZIgPiByeW9rdXNodVwgOwor5LiA5a6kID4gaXNzaGl0c3VcIDsKK+WkquiFvyA+IGZ1dG9tb21vXCA7CivpoJjmib8gPiByeW91c2hvdVwgOwor5pat57W2ID4gZGFuemV0c3VcIDsKK+S4gOWtkCA+IGhpdG9yaWdvXCA7Civlp6vmp5ggPiBoaW1lc2FtYVwgOwor6Zu76JOEID4gZGVuY2hpa3VcIDsKK+acq+S7oyA+IG1hdHN1ZGFpXCA7Civlo5zoqbAgPiBiaW5kenVtZVwgOwor6KiA6ZyKID4ga290b2RhbWFcIDsKK+S4oeWbvSA+IHJ5b3Vnb2t1XCA7CivkuLvlj5YgPiBzaHV1ZG9yaVwgOwor6Zuo6JuZID4gYW1hZ2FlcnVcIDsKK+eGn+iqrSA+IGp1a3Vkb2t1XCA7CivnjonkvZMgPiBneW9rdXRhaVwgOwor54mn54mbID4gYm9rdWd5dXVcIDsKK+WhvumVtyA+IGp1a3VjaG91XCA7CivlpKrogqEgPiBmdXRvbW9tb1wgOwor5pyJ5YqbID4geXV1cnlva3VcIDsKK+eGseihgCA+IG5la2tldHN1XCA7CivmlaPolqwgPiBzYW4nJ3lha3VcIDsKK+eOieS7oyA+IGd5b2t1ZGFpXCA7CivlpKnogbcgPiB0ZW5zaG9rdVwgOwor5paH6ISIID4gYnVubXlha3VcIDsKK+mbhuiouyA+IHNodXVjaHV1XCA7CivpmpTpgLEgPiBrYWt1c2h1dVwgOwor5pel55SoID4gbmljaGl5b3VcIDsKK+abuOWPliA+IGtha2l0b3JpXCA7CivkuLvlipsgPiBzaHVyeW9rdVwgOwor5pyI5YaFID4gZ2V0c3VuYWlcIDsKK+S4g+WknCA+IHNoaWNoaXlhXCA7CivkuZ7kuJAgPiBrb3RzdWdhaVwgOwor5LiD5aSVID4gdGFuYWJhdGFcIDsKK+isoeeJqSA+IHV0YWltb25vXCA7CivpoLvlsL8gPiBoaW4nJ255b3VcIDsKK+Wkqee9sCA+IHRlbmJhdHN1XCA7CivpnaLnmb0gPiBvbW9zaGlyb1wgOwor5puy5ZCNID4ga3lva3VtZWlcIDsKK+e3j+i9hCA+IHNvdWthdHN1XCA7CivkuK3lj6QgPiBjaHV1YnVydVwgOwor5L2V44CFID4gbmFuaW5hbmlcIDsKK+S4gOWksSA+IGlzc2hpdHN1XCA7Civni7zluqcgPiBvb2thbWl6YVwgOwor6Ki86LehID4gc2hvdXNla2lcIDsKK+WlrueZuiA+IGZ1bnBhdHN1XCA7CivmlrDnqYAgPiBzaGlua29rdVwgOwor6KmV6Ki7ID4gaHlvdWNodXVcIDsKK+WkieiJsiA+IGhlbnNob2t1XCA7CivmmI7mu4UgPiBtZWltZXRzdVwgOwor6Zm46YejID4gb2thZHp1cmlcIDsKK+isgOeVpSA+IGJvdXJ5YWt1XCA7CivkuIDloakgPiBoaXRvc2hpb1wgOwor6aKo5LiKID4ga2F6YWthbWlcIDsKK+WkluiCoSA+IHNvdG9tYXRhXCA7Civnv5Lkv5cgPiBzaHV1em9rdVwgOwor6ZmN6ZuqID4ga291c2V0c3VcIDsKK+eLrOW+lyA+IGRva3V0b2t1XCA7Civntbbpo58gPiB6ZXNzaG9rdVwgOwor5pu45YidID4ga2FraXpvbWVcIDsKK+iok+mHiCA+IGt1bnNoYWt1XCA7Civoqqbnv5IgPiBzaG91c2h1dVwgOwor54iG56yRID4gYmFrdXNob3VcIDsKK+e/kuS9nCA+IHNodXVzYWt1XCA7Civmm7jlhoogPiBzaG9zYXRzdVwgOwor54m55rOoID4gdG9rdWNodXVcIDsKK+aciOS+iyA+IGdldHN1cmVpXCA7CivmmqblraYgPiByZWtpZ2FrdVwgOwor5Li45YK3ID4gdGFtYWtpenVcIDsKK+WlieelnSA+IGhvdXNodWt1XCA7CivpoIzlvrMgPiBzaG91dG9rdVwgOwor6Ziy6aOfID4gYm91c2hva3VcIDsKK+eIqueXlSA+IHRzdW1lYXRvXCA7CivkuK3lhbEgPiBjaHV1a3lvdVwgOwor5Lim5YiXID4gaGVpcmV0c3VcIDsKK+S5heS5hSA+IGhpc2FiaXNhXCA7Civnt5HosYYgPiByeW9rdXRvdVwgOwor5aW954mpID4ga291YnV0c3VcIDsKK+mbsuiEmiA+IGt1bW9hc2hpXCA7CivpnZLnlbMgPiBhb2RhdGFtaVwgOwor6Zub6I+KID4gaGluYWdpa3VcIDsKK+WkseetliA+IHNoaXNzYWt1XCA7CivmmYLmmYIgPiB0b2tpZG9raVwgOwor5Lit5YK3ID4gY2h1dXNob3VcIDsKK+WkseeskSA+IHNoaXNzaG91XCA7CivmlZfoibIgPiBoYWlzaG9rdVwgOwor6Zuq6IaaID4geXVraWhhZGFcIDsKK+mbo+iJsiA+IG5hbnNob2t1XCA7CivmmpflrqQgPiBhbnNoaXRzdVwgOwor6Zm16L6xID4gcnlvdWpva3VcIDsKK+S4i+WRsyA+IHNoaXRhYWppXCA7CivntZDpq6ogPiBrZXBwYXRzdVwgOwor54S86YWOID4gc2hvdWNodXVcIDsKK+aYvOaZgiA+IGhpcnVkb2tpXCA7Civlo7DoibIgPiBzZWlzaG9rdVwgOwor5Li45LqLID4gbWFydWdvdG9cIDsKK+aWh+evgCA+IGJ1bnNldHN1XCA7CivmlofnrrEgPiBmdW1pYmFrb1wgOwor5aSn562SID4gb29kenV0c3VcIDsKK+S4uOS4uCA+IG1hcnVtYXJ1XCA7CivpmLLpm6ogPiBib3VzZXRzdVwgOwor6Zuq6IKMID4geXVraWhhZGFcIDsKK+ios+iqrSA+IHlha3Vkb2t1XCA7CivkuIPlkbMgPiBzaGljaGltaVwgOwor5pa555WlID4gaG91cnlha3VcIDsKK+S4uOS4gCA+IG1hcnVpY2hpXCA7Civni63lsI8gPiBreW91c2hvdVwgOwor5Lit5L2OID4gbmFrYWJpa3VcIDsKK+e3j+iqrCA+IHNvdXNldHN1XCA7Civlp4vmnKsgPiBzaGltYXRzdVwgOwor5paH562GID4gYnVucGl0c3VcIDsKK+Wkp+erpSA+IG9vd2FyYXdhXCA7CivpnZLnjokgPiBzZWlneW9rdVwgOwor5Lih5YG0ID4gcnlvdXNva3VcIDsKK+WkseelniA+IHNoaXNzaGluXCA7Civpm4bokL0gPiBzaHV1cmFrdVwgOwor6Z2Z54mpID4gc2VpYnV0c3VcIDsKK+S4h+WNkiA+IGJhbnNvdHN1XCA7CivkuK3kuqwgPiBjaHV1a3lvdVwgOwor5LiA5ZCRID4gaGl0YXN1cmFcIDsKK+eLrOWtpiA+IGRva3VnYWt1XCA7CivmmKjmnJ0gPiBzYWt1Y2hvdVwgOwor5LiA5Y+iID4gaGl0b211cmFcIDsKK+absuS6iyA+IGt1c2Vnb3RvXCA7Civpm5HoibIgPiB6YXNzaG9rdVwgOwor5Lit5LitID4gbmFrYW5ha2FcIDsKK+WuieOAhSA+IHlhc3V5YXN1XCA7CivmlZnnv5IgPiBreW91c2h1dVwgOwor6Zme6YCyID4gc2hvdXNoaW5cIDsKK+mhnuWIpSA+IHJ1aWJldHN1XCA7CivnuK7nt6wgPiBjaGlyaW1lblwgOwor5pio5pqBID4gc2FrdWd5b3VcIDsKK+e1kOmhmCA+IGtlY2hpZ2FuXCA7CivmmKjmmKUgPiBzYWt1c2h1blwgOwor5LiH5YilID4gYmFuYmV0c3VcIDsKK+eEvOi6qyA+IHNob3VzaGluXCA7CivpoIHlsqkgPiBrZXRzdWdhblwgOwor5Lim5LimID4gbmFtaW5hbWlcIDsKK+e4pue4niA+IHRhdGVqaW1hXCA7CivoppfprZQgPiBub3pva2ltYVwgOwor5aKX6KitID4gem91c2V0c3VcIDsKK+S4gOWJsiA+IGljaGl3YXJpXCA7CivlpJXnq4sgPiB5dXVkYWNoaVwgOwor5aGp6L6bID4gc2hpb2thcmFcIDsKK+ino+mHiCA+IGthaXNoYWt1XCA7Civml6fmtYEgPiBreXV1cnl1dVwgOwor5Lih5LihID4gcnlvdXJ5b3VcIDsKK+itpuaKnCA+IGtlaWJhdHN1XCA7CivlpInnr4AgPiBoZW5zZXRzdVwgOwor57W56YedID4ga2ludWJhcmlcIDsKK+eNhOS4rSA+IGdva3VjaHV1XCA7CivkuIDlhaUgPiBoaXRvc2hpb1wgOwor5LiA5YWIID4gaGl0b21henVcIDsKK+aYh+agvCA+IHNob3VrYWt1XCA7Civnua3njokgPiBtYXl1ZGFtYVwgOwor5piO5pyIID4gbWVpZ2V0c3VcIDsKK+mereaSuyA+IGJlbnRhdHN1XCA7Civpm6jnspIgPiBhbWV0c3VidVwgOwor5aKX6KGAID4gem91a2V0c3VcIDsKK+aatOWKmyA+IGJvdXJ5b2t1XCA7CivoprPplrIgPiBrYW4nJ2V0c3VcIDsKK+aYk+aYkyA+IHlhc3V5YXN1XCA7Civnt5Hol7sgPiByeW9rdXNvdVwgOwor5aOu57W2ID4gc291emV0c3VcIDsKK+aVmeexjSA+IGt5b3VzZWtpXCA7CivpoJjlm70gPiByeW91Z29rdVwgOwor5piO5pilID4gbXlvdXNodW5cIDsKK+S4h+S7oyA+IHlvcm96dXlvXCA7CivmlK/ohIggPiBzaGlteWFrdVwgOwor54us5Zu9ID4gZG9rdWtva3VcIDsKK+aSsOi/sCA+IHNlbmp1dHN1XCA7CivkuInkuIsgPiBzYW5zaGl0YVwgOwor5aSn55WlID4gdGFpcnlha3VcIDsKK+Wls+awlyA+IG9uJyduYWtrZVwgOwor5aGp6LGGID4gc2hpb21hbWVcIDsKK+S4h+S4liA+IHlvcm96dXlvXCA7CivkuIfkuIAgPiBtYW4nJ2ljaGlcIDsKK+mbquepuiA+IHl1a2l6b3JhXCA7CivorIDmrrogPiBib3VzYXRzdVwgOwor57WE6ZW3ID4ga3VtaWNob3VcIDsKK+iogOiqrCA+IGdlbnNldHN1XCA7Civml6nmpa0gPiBoYXlhd2F6YVwgOwor6KeS6YCaID4ga2FrdXRzdXVcIDsKK+S4gOS4oSA+IGljaGlyeW91XCA7CivkuIDkuIAgPiBpdHN1aXRzdVwgOwor57Wx6L2EID4gdG91a2F0c3VcIDsKK+isoeabsiA+IHlvdWt5b2t1XCA7CivntIXpsZIgPiBiZW5pbWFzdVwgOwor54us5ZSxID4gZG9rdXNob3VcIDsKK+aWsOa9riA+IHNoaW5jaG91XCA7Civnt5HojLYgPiByeW9rdWNoYVwgOwor5pi85bitID4gaGlydXNla2lcIDsKK+e0hemurSA+IGJlbml6YWtlXCA7CivntI3pqqggPiBub3Vrb3RzdVwgOwor5pen5qCqID4ga3l1dWthYnVcIDsKK+Wnq+WuriA+IGhpbWVtaXlhXCA7CivlopzokL0gPiB0c3VpcmFrdVwgOwor5pWw55m+ID4gc3V1aHlha3VcIDsKK+mbhue0hCA+IHNodXV5YWt1XCA7CivoqpjnmbogPiB5dXVoYXRzdVwgOwor6aCY5Y+OID4gcnlvdXNodXVcIDsKK+eJh+aglyA+IGthdGFrdXJpXCA7Civml6zmnIggPiBqdW5nZXRzdVwgOwor5aSp54i1ID4gdGVuc2hha3VcIDsKK+eFjuiWrCA+IHNlbicneWFrdVwgOwor6Zu755WlID4gZGVucnlha3VcIDsKK+aWh+eJqSA+IGJ1bmJ1dHN1XCA7CivmlLnnr4kgPiBrYWljaGlrdVwgOwor6Kmm562LID4gdGFtZXN1amlcIDsKK+ippuethiA+IHNoaWhpdHN1XCA7Civml6fmmqYgPiBreXV1cmVraVwgOwor5pel5pucID4gbmljaGl5b3VcIDsKK+malOiGnCA+IGtha3VtYWt1XCA7Civml6zml6UgPiBqdW5qaXRzdVwgOwor5pWj55m6ID4gc2FucGF0c3VcIDsKK+mbkeeojiA+IHphdHN1emVpXCA7Civoqq3niakgPiB5b21pbW9ub1wgOwor6Zuq55uyID4gc2V0c3Vtb3VcIDsKK+itpuWvnyA+IGtlaXNhdHN1XCA7Civop6PoqqwgPiBrYWlzZXRzdVwgOwor57ep57epID4geXVydXl1cnVcIDsKK+aXqeaXqSA+IGhheWFiYXlhXCA7Civop5Losp0gPiB0c3Vub2dhaVwgOwor5pGC6aOfID4gc2Vzc2hva3VcIDsKK+ilv+mZoyA+IG5pc2hpamluXCA7Civop6bop5IgPiBzaG9ra2FrdVwgOwor5aOB57SZID4ga2FiZWdhbWlcIDsKK+inpuimmiA+IHNob2trYWt1XCA7Civml6fmlbUgPiBreXV1dGVraVwgOwor54m55b60ID4gdG9rdWNob3VcIDsKK+e0kOmdqSA+IGhpbW9rYXdhXCA7Civml6fmlZkgPiBreXV1a3lvdVwgOwor6ZuG56mNID4gc2h1dXNla2lcIDsKK+Wfi+mqqCA+IG1haWtvdHN1XCA7Civml5fmnKwgPiBoYXRhbW90b1wgOwor5aSW54mpID4gZ2FpYnV0c3VcIDsKK+inneinpiA+IHRlaXNob2t1XCA7CivntJrplbcgPiBreXV1Y2hvdVwgOwor5pas5q66ID4gemFuc2F0c3VcIDsKK+eJqeaDhSA+IGJ1dHN1am91XCA7Civnt6DntZAgPiB0ZWlrZXRzdVwgOwor6Z2p5pawID4ga2FrdXNoaW5cIDsKK+mbhuelqCA+IHNodXVoeW91XCA7CivmmbrlipsgPiBjaGlyeW9rdVwgOwor6Zuo55S3ID4gYW1lb3Rva29cIDsKK+eIhuayiCA+IGJha3VjaGluXCA7CivlpJzng48gPiB5b2dhcmFzdVwgOwor5aer5Z6jID4gaGltZWdha2lcIDsKK+eGiuesuSA+IGt1bWF6YXNhXCA7CivnhrHnmbogPiBuZXBwYXRzdVwgOwor6aCG5YiXID4ganVucmV0c3VcIDsKK+WiqOe5qSA+IHN1bWluYXdhXCA7CivorJnmipEgPiBrZW4nJ3lva3VcIDsKK+aSruimgSA+IHNhdHN1eW91XCA7Civni6zkv64gPiBkb2t1c2h1dVwgOwor5aSJ54mpID4gaGVuYnV0c3VcIDsKK+WiqOe4hCA+IHN1bWluYXdhXCA7CivmmKXlrrUgPiBzaHVuc2hvdVwgOwor54mp5b2xID4gbW9ub2thZ2VcIDsKK+mXh+mbsiA+IHlhbWlrdW1vXCA7CivntprokL0gPiB6b2t1cmFrdVwgOwor6Zuq546JID4geXVraWRhbWFcIDsKK+aRmOmMsiA+IHRla2lyb2t1XCA7Civku4TjgIUgPiBob25vYm9ub1wgOwor5pep5oqAID4gaGF5YXdhemFcIDsKK+e1gui6qyA+IHNodXVzaGluXCA7Civnt4rnuK4gPiBraW5zaHVrdVwgOwor6Kmm552AID4gc2hpY2hha3VcIDsKK+Wklua/oCA+IHNvdG9ib3JpXCA7Civlpr7lroUgPiBzaG91dGFrdVwgOwor5pif5a6/ID4gc2Vpc2h1a3VcIDsKK+inkuiiliA+IGtha3Vzb2RlXCA7Civpl4fpl4cgPiB5YW1peWFtaVwgOwor5aSa5rm/ID4gdGFzaGl0c3VcIDsKK+S6uuOAhSA+IGhpdG9iaXRvXCA7CivpnaLmjqUgPiBtZW5zZXRzdVwgOwor6ZuR55SoID4gemF0c3V5b3VcIDsKK+aWsOagqiA+IHNoaW5rYWJ1XCA7CivmkbrotrMgPiBzdXJpYXNoaVwgOwor5peB5peBID4ga2F0YWdhdGFcIDsKK+aWsOafhCA+IHNoaW5nYXJhXCA7CivmlL/nlaUgPiBzZWlyeWFrdVwgOwor6KaL6YCaID4gbWl0b29zaGlcIDsKK+mbo+eJqSA+IG5hbmJ1dHN1XCA7Civopovov5QgPiBtaWthZXNoaVwgOwor5aKX57WQID4gem91a2V0c3VcIDsKK+aYjuWvnyA+IG1laXNhdHN1XCA7Civlp6vlkJsgPiBoaW1lZ2ltaVwgOwor5pS755WlID4ga291cnlha3VcIDsKK+e1kOirliA+IGtldHN1cm9uXCA7CivlpY/mm7IgPiBzb3VreW9rdVwgOwor6Zy95pyIID4gc2VpZ2V0c3VcIDsKK+mYsuidlSA+IGJvdXNob2t1XCA7CivmlrDmmqYgPiBzaGlucmVraVwgOwor54S86IKJID4geWFraW5pa3VcIDsKK+eGvueDiCA+IHNoaXJldHN1XCA7CivntZDoqIAgPiBrZXRzdWdlblwgOwor6Ki856WoID4gc2hvdWh5b3VcIDsKK+maj+ethiA+IHp1aWhpdHN1XCA7CivlpJbms5UgPiBzb3Rvbm9yaVwgOwor5paw5pilID4gc2hpbnNodW5cIDsKK+aWsOaXpyA+IHNoaW5reXV1XCA7CivpmbjntpogPiByaWt1em9rdVwgOwor54ax54axID4gYXRzdWF0c3VcIDsKK+Wil+eviSA+IHpvdWNoaWt1XCA7CivkuqTjgIUgPiBrb21vZ29tb1wgOwor6ZaT6aOfID4ga2Fuc2hva3VcIDsKK+e4rua4myA+IHNodWt1Z2VuXCA7CivmlrDmlZkgPiBzaGlua3lvdVwgOwor5aOu54OIID4gc291cmV0c3VcIDsKK+e5geauliA+IGhhbnNob2t1XCA7CivlpKnmpbUgPiB0ZW5reW9rdVwgOwor54uC5L+hID4ga3lvdXNoaW5cIDsKK+aXp+W5lSA+IGt5dXViYWt1XCA7CivntbnojqIgPiBraW51c2F5YVwgOwor5aSx5qC8ID4gc2hpa2tha3VcIDsKK+mWqOmWpSA+IGtlaWJhdHN1XCA7Civml6XluLggPiBuaWNoaWpvdVwgOwor6ZuR54S2ID4gemF0c3V6ZW5cIDsKK+aVl+a7hSA+IGhhaW1ldHN1XCA7CivmlL7nhrEgPiBob3VuZXRzdVwgOwor6KqY5q66ID4geXV1c2F0c3VcIDsKK+mXiumBlCA+IGthdHRhdHN1XCA7CivpmY3ogbcgPiBrb3VzaG9rdVwgOwor57Sg6LOqID4gc29zaGl0c3VcIDsKK+WegumrqiA+IHRhcmVnYW1pXCA7Civpm4HniKogPiBnYW5kenVtZVwgOwor57im5rOiID4gdGF0ZW5hbWlcIDsKK+e0sOiqrCA+IHNhaXNldHN1XCA7CivoqLrnmYIgPiBzaGlucnlvdVwgOwor57aa57aaID4gem9rdXpva3VcIDsKK+eIhuaSgyA+IGJha3VnZWtpXCA7CivopovorZggPiBrZW5zaGlraVwgOwor6Kqw5p+QID4gZGFyZXNvcmVcIDsKK+eEvOezniA+IHlha2VrdXNvXCA7Civml4vlvosgPiBzZW5yaXRzdVwgOwor6Ku45byPID4gc2hvc2hpa2lcIDsKK+eGsea6kCA+IG5ldHN1Z2VuXCA7Civop6PogbcgPiBrYWlzaG9rdVwgOwor5LqL44CFID4ga290b2dvdG9cIDsKK+WknOahnCA+IHlvemFrdXJhXCA7CivmlofmnKsgPiBidW5tYXRzdVwgOwor5pen5a6FID4ga3l1dXRha3VcIDsKK+iqv+aVmSA+IGNob3VreW91XCA7CivkuojjgIUgPiBrYW5lZ2FuZVwgOwor5pmC5YG2ID4gdG9raXRhbWFcIDsKK+WmguWunyA+IG55b2ppdHN1XCA7Civmlo7ml6UgPiBzYWlqaXRzdVwgOwor6KeS6IacID4ga2FrdW1ha3VcIDsKK+eGsea2mSA+IG5ldHN1cnVpXCA7Civoq5Lmib8gPiByeW91c2hvdVwgOwor6Zu75qW1ID4gZGVua3lva3VcIDsKK+WhteeusSA+IGdvbWliYWtvXCA7CivmlY/mtLsgPiBiaW5rYXRzdVwgOwor6ZaL6ZeiID4ga2FpYnlha3VcIDsKK+eFpeeZuiA+IGthbnBhdHN1XCA7CivlpKfml6UgPiBkYWluaWNoaVwgOwor6Z+T5Lq6ID4ga2FyYWJpdG9cIDsKK+WkluaeoCA+IHNvdG93YWt1XCA7Civmlbfmnb8gPiBzaGlraWl0YVwgOwor6Kqs5piOID4gc2V0c3VtZWlcIDsKK+e4puaoqiA+IHRhdGV5b2tvXCA7CivopoHoqKMgPiB5b3VrZXRzdVwgOwor5aKX55m6ID4gem91aGF0c3VcIDsKK+aYjuWTsiA+IG1laXRldHN1XCA7CivlpJzmmLwgPiB5b3J1aGlydVwgOwor54K56KizID4gdGVuJyd5YWt1XCA7CivlpJXmnIggPiB5dXVkenVraVwgOwor5pa55byPID4gaG91c2hpa2lcIDsKK+mWgOmWpSA+IG1vbmJhdHN1XCA7Civpo4TjgIUgPiBoeW91aHlvdVwgOwor5pil5YWIID4gaGFydXNha2lcIDsKK+Wni+WApCA+IGhhamltZW5lXCA7CivmlrDlvaIgPiBzaGluZ2F0YVwgOwor57+844CFID4geW9rdXlva3VcIDsKK+mZuOebuCA+IHJpa3VzaG91XCA7Civntbnntr8gPiBraW51d2F0YVwgOwor54mG5aOBID4gc2hvdWhla2lcIDsKK+Wjiua7hSA+IGthaW1ldHN1XCA7CivpmpvniakgPiBraXdhbW9ub1wgOwor5aSt5oqYID4geW91c2V0c3VcIDsKK+WlqOWtpiA+IHNob3VnYWt1XCA7Civpm4bms6ggPiBzaHV1Y2h1dVwgOwor5pW15pa5ID4gdGVraWdhdGFcIDsKK+mVt+mVtyA+IG5hZ2FuYWdhXCA7CivmlrDlubQgPiBzaGluJyduZW5cIDsKK+eIhuW/gyA+IGJha3VzaGluXCA7CivntIToq74gPiB5YWt1ZGFrdVwgOwor5pWw5pelID4gc3V1aml0c3VcIDsKK+acrOOAhSA+IG1vdG9tb3RvXCA7CivpmLLnuK4gPiBib3VzaHVrdVwgOwor5pOB56uLID4geW91cml0c3VcIDsKK+aVsOaVsCA+IGthenVrYXp1XCA7CivlpKfmiYAgPiBvb2Rva29yb1wgOwor5pen5Zu9ID4ga3l1dWtva3VcIDsKK+WcsOm8oCA+IGppbmV6dW1pXCA7CivntJTooYAgPiBqdW5rZXRzdVwgOwor57KJ6aO+ID4gZnVuc2hva3VcIDsKK+e4puabuCA+IHRhdGVnYWtpXCA7Civmk6bnlrUgPiBzdXJpa2l6dVwgOwor57KJ6aOfID4gZnVuc2hva3VcIDsKK+WhmueptCA+IHRzdWthYW5hXCA7CivlpJbmjqUgPiBnYWlzZXRzdVwgOwor6KmV5rOoID4gaHlvdWNodXVcIDsKK+eFp+eEvCA+IHRlcml5YWtpXCA7CivlpLHlv4MgPiBzaGlzc2hpblwgOwor57W2562GID4gemVwcGl0c3VcIDsKK+mbo+absiA+IG5hbmt5b2t1XCA7CivoqIjnlaUgPiBrZWlyeWFrdVwgOwor5aSZ5oiQID4gc2h1a3VzZWlcIDsKK+imi+iQvSA+IG1pb3Rvc2hpXCA7CivngrnolqwgPiB0ZW4nJ3lha3VcIDsKK+eCuOiWrCA+IHNha3V5YWt1XCA7CivmlrDlroUgPiBzaGludGFrdVwgOwor5Z+L6KitID4gbWFpc2V0c3VcIDsKK+aOpemqqCA+IHNla2tvdHN1XCA7Civpmb3niakgPiB5b3VidXRzdVwgOwor6KuW5a6iID4gcm9ua3lha3VcIDsKK+inkuesmyA+IHRzdW5vYnVlXCA7CivnhrHmnJsgPiBuZXRzdWJvdVwgOwor6ZW36YedID4gY2hvdXNoaW5cIDsKK+mWsuiqrSA+IGV0c3Vkb2t1XCA7CivoqrDlvbwgPiB0YXJla2FyZVwgOwor57Gz6aOfID4gYmVpc2hva3VcIDsKK+e0ouiOqyA+IHNha3ViYWt1XCA7CivntZDnuIQgPiBrZXRzdWpvdVwgOwor5LmF44CFID4gaGlzYWJpc2FcIDsKK+mbkeabsiA+IHpha2t5b2t1XCA7CivlpKrlt7sgPiBmdXRvbWFraVwgOwor5paw5aa7ID4gbmlpZHp1bWFcIDsKK+e1kOe0riA+IGtlc3NhdHN1XCA7CivlpJnlv5cgPiBzaHVrdXNoaVwgOwor57+M44CFID4geW9rdXlva3VcIDsKK+aXp+WKhyA+IGt5dXVnZWtpXCA7CivmkZjoiq8gPiB0ZWtpc2hpblwgOwor6Zai6KqsID4ga2Fuc2V0c3VcIDsKK+eJqeS6iyA+IG1vbm9nb3RvXCA7CivoqLPms6ggPiB5YWt1Y2h1dVwgOwor5pS55pytID4ga2Fpc2F0c3VcIDsKK+eFruayuCA+IHNoYWZ1dHN1XCA7CivlpKfltZAgPiBvb2FyYXNoaVwgOwor6KO96YmEID4gc2VpdGV0c3VcIDsKK+ijhemjviA+IHNvdXNob2t1XCA7Civpm5HmlocgPiB6YXRzdWJ1blwgOwor5Li444CFID4gbWFydW1hcnVcIDsKK+e0meiKsSA+IGthbWliYW5hXCA7CivnhLzniakgPiB5YWtpbW9ub1wgOwor5pW15b25ID4gdGVraXlha3VcIDsKK+e1kOevgCA+IGtlc3NldHN1XCA7Civplbfou7ggPiBjaG91amlrdVwgOwor5aSW5bqtID4gc290b25pd2FcIDsKK+e1hOe0kCA+IGt1bWloaW1vXCA7CivnspLpioAgPiB0c3VidWdpblwgOwor6ZyH5bmFID4gc2hpbnB1a3VcIDsKK+aVtOW8jyA+IHNlaXNoaWtpXCA7CivplovosYEgPiBrYWlrYXRzdVwgOwor6ZW36LqrID4gY2hvdXNoaW5cIDsKK+e4geaXpSA+IGVuJyduaWNoaVwgOwor5aSn5bGAID4gdGFpa3lva3VcIDsKK+aWsOWeiyA+IHNoaW5nYXRhXCA7CivlpJzltZAgPiB5b2FyYXNoaVwgOwor5pWw5byPID4gc3V1c2hpa2lcIDsKK+abtOOAhSA+IHNhcmFzYXJhXCA7CivniZvkubMgPiBneXV1bnl1dVwgOwor5Lit44CFID4gbmFrYW5ha2FcIDsKK+absuOAhSA+IGt1bWFndW1hXCA7CivplbfotrMgPiBjaG91c29rdVwgOwor5aGp54mpID4gc2hpb21vbm9cIDsKK+imgeiBtyA+IHlvdXNob2t1XCA7CivniYflgbQgPiBrYXRhZ2F3YVwgOwor6KS26KWeID4gc2h1dWhla2lcIDsKK+mbgOaWkSA+IHNvYmFrYXN1XCA7Civml6fkv5cgPiBreXV1em9rdVwgOwor6Zuy5b2iID4ga3Vtb2dhdGFcIDsKK+e1jOeptCA+IGtlaWtldHN1XCA7CivkuKbjgIUgPiBuYW1pbmFtaVwgOwor5pKe552AID4gZG91Y2hha3VcIDsKK+aXp+S9nCA+IGt5dXVzYWt1XCA7CivntIXoirEgPiBiZW5pYmFuYVwgOwor6Zmw5rm/ID4gaW5zaGl0c3VcIDsKK+e3qOabsiA+IGhlbmt5b2t1XCA7CivntYTnq4sgPiBrdW1pdGF0ZVwgOwor6ZaL6KitID4ga2Fpc2V0c3VcIDsKK+S4oeOAhSA+IHJ5b3VyeW91XCA7CivntLDntLAgPiBob3NvYm9zb1wgOwor6Kmm5o6YID4gc2hpa3V0c3VcIDsKK+WhqeeEvCA+IHNoaW95YWtpXCA7CivlpJblsYAgPiBnYWlreW9rdVwgOwor5aKX5q6WID4gem91c2hva3VcIDsKK+aXp+S6uiA+IGZ1cnViaXRvXCA7CivoqLPmpa0gPiB5YWt1Z3lvdVwgOwor5o6S6ZuqID4gaGFpc2V0c3VcIDsKK+eym+i7jSA+IHNodWt1Z3VuXCA7CivnhrHmhJ8gPiBuZXRzdWthblwgOwor5aSx5aKcID4gc2hpdHRzdWlcIDsKK+WbvemzpSA+IGtva3VjaG91XCA7Civoq7jlhbEgPiBtb3JvdG9tb1wgOwor5aSr5aSrID4gc29yZXpvcmVcIDsKK+e0oee5lCA+IGJvdXNob2t1XCA7CivlpJblrqIgPiBnYWlreWFrdVwgOwor54ax5oOFID4gbmV0c3Vqb3VcIDsKK+WkluWtqyA+IHNvdG9tYWdvXCA7Civns5bonJwgPiB0b3VtaXRzdVwgOwor6Kqg5a6fID4gc2Vpaml0c3VcIDsKK+mbo+W9uSA+IG5hbicneWFrdVwgOwor5pWR5oClID4ga3l1dWt5dXVcIDsKK+Whl+eJqSA+IG51cmltb25vXCA7CivniYjkuIsgPiBoYW5zaGl0YVwgOwor6Zmk5rm/ID4gam9zaGl0c3VcIDsKK+eGlOaOpSA+IHlvdXNldHN1XCA7CivntbHnjocgPiB0b3Vzb3RzdVwgOwor6ZW36Kq/ID4gY2hvdWNob3VcIDsKK+aXheWFiCA+IHRhYmlzYWtpXCA7CivngrnntrQgPiB0ZW50ZXRzdVwgOwor57Sw562GID4gc2FpaGl0c3VcIDsKK+mbquW2uiA+IHNldHN1cmVpXCA7CivntbnniakgPiBraW51bW9ub1wgOwor6Kiz5p+EID4gd2FrZWdhcmFcIDsKK+iln+iFsCA+IGVyaWtvc2hpXCA7CivntZDnnYAgPiBrZXRjaGFrdVwgOwor57eR5p6XID4gcnlva3VyaW5cIDsKK+e1kOebnyA+IGtldHN1bWVpXCA7CivnhrHlvIEgPiBuZXRzdWJlblwgOwor6ZuR5b+1ID4gemF0c3VuZW5cIDsKK+iojuatuyA+IHVjaGlqaW5pXCA7CivmlK/miZUgPiBzaGloYXJhaVwgOwor6Kaq552mID4gc2hpbmJva3VcIDsKK+WggOerryA+IGhvcmliYXRhXCA7CivpmaXmsqEgPiBrYW5ib3RzdVwgOwor5paw5YqHID4gc2hpbmdla2lcIDsKK+inkueJmyA+IGtha3VneXV1XCA7Civpm5HlvbkgPiB6YXRzdWVraVwgOwor6Zuq5bGxID4geXVraXlhbWFcIDsKK+iruOS6uiA+IG1vcm9iaXRvXCA7CivpmaPmsqEgPiBqaW5ib3RzdVwgOwor6Zm95qW1ID4geW91a3lva3VcIDsKK+eItuS4iiA+IGNoaWNoaXVlXCA7Civpm6rlrrMgPiBzZXRzdWdhaVwgOwor6ZW36KKWID4gbmFnYXNvZGVcIDsKK+S4gOOAhSA+IGl0c3VpdHN1XCA7CivpmLLnhrEgPiBib3VuZXRzdVwgOwor6Zuj5bGAID4gbmFua3lva3VcIDsKK+e4hOW8tSA+IG5hd2FiYXJpXCA7CivlpJbloIAgPiBzb3RvYm9yaVwgOwor57WM55WlID4ga2Vpcnlha3VcIDsKK+ijj+mBkyA+IHVyYW1pY2hpXCA7CivpmqPmjqUgPiByaW5zZXRzdVwgOwor57aZ5q+NID4gbWFtYWhhaGFcIDsKK+Wkp+WWnSA+IGRhaWthdHN1XCA7CivntJnnrYYgPiBzaGloaXRzdVwgOwor5pWZ5a2mID4ga3lvdWdha3VcIDsKK+mcsuWHuiA+IHJvc2h1dHN1XCA7CivoqKrml6UgPiBob3VuaWNoaVwgOwor5aGp5rC0ID4gc2hpb21penVcIDsKK+aVt+WcsCA+IHNoaWtpY2hpXCA7CivpmobmmIwgPiByeXV1c2hvdVwgOwor5paw5L+uID4gc2hpbnNodXVcIDsKK+Wkp+WQiSA+IGRhaWtpY2hpXCA7CivmlrDkvZwgPiBzaGluc2FrdVwgOwor6Zai6ISHID4gc2VraXdha2VcIDsKK+eHreWPsCA+IHNob2t1ZGFpXCA7Civngq3nqq8gPiBzdW1pZ2FtYVwgOwor6Zu75ZynID4gZGVuJydhdHN1XCA7Civpm6jlpbMgPiBhbWVvbicnbmFcIDsKK+eIhuWCtyA+IGJha3VzaG91XCA7CivmlrDku7sgPiBzaGluJyduaW5cIDsKK+a/gOmchyA+IGdla2lzaGluXCA7CivplpPoibIgPiBrYW5zaG9rdVwgOwor5aSJ5ZynID4gaGVuJydhdHN1XCA7CivopqrnjosgPiBzaGluJydub3VcIDsKK+Wkp+WNkiA+IGRhaXNvdHN1XCA7Civnt4/mi6wgPiBzb3VrYXRzdVwgOwor6Kej5rG6ID4ga2Fpa2V0c3VcIDsKK+aUv+WxgCA+IHNlaWt5b2t1XCA7Civlo4HlvbkgPiBrYWJleWFrdVwgOwor5o6b6Lu4ID4ga2FrZWppa3VcIDsKK+e4hOWwuyA+IG5hd2FqaXJpXCA7Civoo7LopaAgPiB1Y2hpa2FrZVwgOwor5Z+6552jID4ga2lyaXN1dG9cIDsKK+ikquiJsiA+IHRhaXNob2t1XCA7CivlpKfliKUgPiB0YWliZXRzdVwgOwor5aSn5YiHID4gdGFpc2V0c3VcIDsKK+aWieWIlyA+IHNlaXJldHN1XCA7Civpm6rlm70gPiB5dWtpZ3VuaVwgOwor5aSn5YaKID4gdGFpc2F0c3VcIDsKK+e3u+WvhiA+IGNoaW1pdHN1XCA7CivplpHogbcgPiBrYW5zaG9rdVwgOwor5aSJ5ZOyID4gaGVudGV0c3VcIDsKK+ezuOeruSA+IHNoaWNoaWt1XCA7CivplovohJogPiBrYWlreWFrdVwgOwor5pSv5bGAID4gc2hpa3lva3VcIDsKK+WkseS/nSA+IHNoaXRzdWhvXCA7CivntYLnhoQgPiBzaHV1c29rdVwgOwor5aSW5YqbID4gZ2Fpcnlva3VcIDsKK+iqv+S8jyA+IGNob3VidWt1XCA7Civpm5vlnosgPiBoaW5hZ2F0YVwgOwor6KaB55WlID4geW91cnlha3VcIDsKK+aVkeWbvSA+IGt5dXVrb2t1XCA7CivploDohIggPiBtb25teWFrdVwgOwor6KSQ6ImyID4ga2Fzc2hva3VcIDsKK+aVtOWIlyA+IHNlaXJldHN1XCA7Civpm7vlipsgPiBkZW5yeW9rdVwgOwor5o6l6KemID4gc2Vzc2hva3VcIDsKK+aVsOWIlyA+IHN1dXJldHN1XCA7CivlpKfku48gPiBkYWlidXRzdVwgOwor6Zai56+AID4ga2Fuc2V0c3VcIDsKK+aUvuWfkiA+IGhvdXJhdHN1XCA7CivntZ7mrrogPiBrb3VzYXRzdVwgOwor5aSW5YG0ID4gc290b2dhd2FcIDsKK+ihqOmWgCA+IG9tb3RlbW9uXCA7CivmlbDlhoogPiBzdXVzYXRzdVwgOwor6Zuy5YqpID4ga3Vtb3N1a2VcIDsKK+mbquWOnyA+IHNldHN1Z2VuXCA7Civpm5HlmqIgPiB6YXRzdW5vdVwgOwor5r+B6YWSID4gZG9idXJva3VcIDsKK+Wcn+izqiA+IGRvc2hpdHN1XCA7CivmlbXlgbQgPiB0ZWtpZ2F3YVwgOwor6Kil5byBID4gdG90c3ViZW5cIDsKK+ijj+ihqCA+IHVyYW9tb3RlXCA7Civoqq3kuoYgPiBkb2t1cnlvdVwgOwor54Gw56+pID4gaGFpZnVydWlcIDsKK+eypeiFuSA+IGtheXViYXJhXCA7CivngInooYAgPiBzaGFrZXRzdVwgOwor5aCF54KtID4ga2F0YXp1bWlcIDsKK+e2v+W8kyA+IHdhdGF5dW1pXCA7CivnuK7lhpkgPiBzaHVrdXNoYVwgOwor5pWZ5Y2TID4ga3lvdXRha3VcIDsKK+WeguiAsyA+IHRhcmVtaW1pXCA7CivoqbDllY8gPiBraXRzdW1vblwgOwor5aOy5Y20ID4gYmFpa3lha3VcIDsKK+aOoeihgCA+IHNhaWtldHN1XCA7CivnuKbliJcgPiBqdXVyZXRzdVwgOwor6KGM6Z2pID4gZ3lvdWtha3VcIDsKK+e1tuacmyA+IHpldHN1Ym91XCA7CivmkoPmsoggPiBnZWtpY2hpblwgOwor6KeS5p+xID4ga2FrdWNodXVcIDsKK+Wbvei+sSA+IGtva3Vqb2t1XCA7CivmlZnliYcgPiBreW91c29rdVwgOwor5aKo5a6iID4gYm9ra3lha3VcIDsKK+Wjq+WNkiA+IHNoaXNvdHN1XCA7CivlnLDooosgPiBqaWJ1a3Vyb1wgOwor5pW15LitID4gdGVraWNodXVcIDsKK+WjsuWHuiA+IHVyaWRhc2hpXCA7Civnt4rlr4YgPiBraW5taXRzdVwgOwor5o+656+tID4geXVyaWthZ29cIDsKK+mbquWDjyA+IHNldHN1em91XCA7CivntIXnjokgPiBrb3VneW9rdVwgOwor57Gz6JS1ID4ga29tZWd1cmFcIDsKK+a9rumiqCA+IHNoaW9rYXplXCA7CivlnovntJkgPiBrYXRhZ2FtaVwgOwor6Kiq5a6iID4gaG91a3lha3VcIDsKK+ioseWrgSA+IGlpbmF6dWtlXCA7CivmjY/pgKAgPiBuZXRzdXpvdVwgOwor5pWj5L2aID4gc2FuJydpdHN1XCA7CivoqLHlqZogPiBpaW5henVrZVwgOwor57Si5rygID4gc2FrdWJha3VcIDsKK+mWj+enkiA+IHVydXVieW91XCA7CivmvaTpo74gPiBqdW5zaG9rdVwgOwor5ouz6aqoID4gZ2Vua290c3VcIDsKK+e2v+WvhiA+IG1lbm1pdHN1XCA7Civmv4DotoogPiBnZWtpZXRzdVwgOwor57a/5a6fID4gbWVuaml0c3VcIDsKK+e0sOazoiA+IHNhemFuYW1pXCA7Civpmpzlo4EgPiBzaG91aGVraVwgOwor5Zu96LOKID4ga29rdXpva3VcIDsKK+eCuea7hSA+IHRlbm1ldHN1XCA7Civop6bmiYsgPiBzaG9rdXNodVwgOwor56+A6aOfID4gc2Vzc2hva3VcIDsKK+a/gOizniA+IGdla2lzaG91XCA7Civoo73nuZQgPiBzZWlzaG9rdVwgOwor57Wm5paZID4ga3l1dXJ5b3VcIDsKK+e0lOa9lCA+IGp1bmtldHN1XCA7CivpmpTlo4EgPiBrYWt1aGVraVwgOwor5pS+5YiXID4gaG91cmV0c3VcIDsKK+mZuOWwhiA+IHJpa3VzaG91XCA7CivntYLmpa0gPiBzaHV1Z3lvdVwgOwor6Zuq5LiKID4gc2V0c3Vqb3VcIDsKK+eyn+eykiA+IHpva3VyeXV1XCA7CivoprPmnIggPiBrYW5nZXRzdVwgOwor57Wx5ousID4gdG91a2F0c3VcIDsKK+aLvumbhiA+IHNodXVzaHV1XCA7Civnt5HlnLAgPiByeW9rdWNoaVwgOwor54Sm5b+DID4gc2hvdXNoaW5cIDsKK+evgOmbuyA+IHNldHN1ZGVuXCA7CivnspjnspggPiBuZWJhbmViYVwgOwor54KO54axID4gZW4nJ25ldHN1XCA7Civlm73oqLEgPiBrdW5pbW90b1wgOwor6ZaL55m6ID4ga2FpaGF0c3VcIDsKK+eykueykiA+IHJ5dXVyeXV1XCA7CivmmYLjgIUgPiB0b2tpZG9raVwgOwor6Kej5byPID4ga2Fpc2hpa2lcIDsKK+imquaXjyA+IHNoaW56b2t1XCA7Civplbfnn7MgPiBjaG91c2VraVwgOwor57KJ57KJID4ga29uYWdvbmFcIDsKK+aQjeeOhyA+IHNvbnJpdHN1XCA7CivooajosaEgPiBoeW91c2hvdVwgOwor6ZuH5Lq6ID4geWF0b2luaW5cIDsKK+ioreWVjyA+IHNldHN1bW9uXCA7Civopprmm7ggPiBvYm9lZ2FraVwgOwor5ryG6buSID4gc2hpa2tva3VcIDsKK+e3qOWFpSA+IGhlbicnbnl1dVwgOwor5ouS6aOfID4ga3lvc2hva3VcIDsKK+mbhuS4rSA+IHNodXVjaHV1XCA7CivntK/mnIggPiBydWlnZXRzdVwgOwor5Z6C55u0ID4gc3VpY2hva3VcIDsKK+e0heauuyA+IGJlbmlnYXJhXCA7Civmi5vpm4YgPiBzaG91c2h1dVwgOwor5pKl5bymID4gaGF0c3VnZW5cIDsKK+ihjOi3oSA+IGd5b3VzZWtpXCA7Civop5LlupcgPiBrYWRvbWlzZVwgOwor57e05LmzID4gcmVuJydueXV1XCA7CivnsbPns6AgPiBrb21lbnVrYVwgOwor57eP5YqbID4gc291cnlva3VcIDsKK+e0r+aXpSA+IHJ1aWppdHN1XCA7CivlnKjogbcgPiB6YWlzaG9rdVwgOwor57eP5YilID4gc291YmV0c3VcIDsKK+Wfi+ayoSA+IG1haWJvdHN1XCA7CivopqrmiJogPiBzaGluc2VraVwgOwor57KY552AID4gbmVuY2hha3VcIDsKK+eznua6nCA+IGt1c29kYW1lXCA7Civnt4rliIcgPiBraW5zZXRzdVwgOwor56+J6YCgID4gY2hpa3V6b3VcIDsKK+inpuWqkiA+IHNob2t1YmFpXCA7CivpmorliJcgPiB0YWlyZXRzdVwgOwor57Si5pW1ID4gc2FrdXRla2lcIDsKK+Wil+WItyA+IHpvdXNhdHN1XCA7CivmmJPjgIUgPiB5YXN1eWFzdVwgOwor57eR5L6/ID4gcnlva3ViZW5cIDsKK+a9rui2syA+IHNoaW9hc2hpXCA7CivplrLmrbQgPiBldHN1cmVraVwgOwor57SN5pytID4gbm91c2F0c3VcIDsKK+e1guaBryA+IHNodXVzb2t1XCA7CivmjK/oopYgPiBmdXJpc29kZVwgOwor57Of5rGBID4ga2FzdWppcnVcIDsKK+e0hOadnyA+IHlha3Vzb2t1XCA7CivooYboqZUgPiBzaHV1aHlvdVwgOwor5oqR6ayxID4geW9rdXV0c3VcIDsKK+aMh+iyqyA+IHl1YmludWtpXCA7CivntbblpKcgPiB6ZXRzdWRhaVwgOwor5r+A6IetID4gZ2VraXNodXVcIDsKK+imi+aJgCA+IG1pZG9rb3JvXCA7Civmj5vniakgPiBrYW5idXRzdVwgOwor57KX546HID4gYXJhcml0c3VcIDsKK+e1guW5lSA+IHNodXVtYWt1XCA7CivopbLmkoMgPiBzaHV1Z2VraVwgOwor57WQ5bGAID4ga2Vra3lva3VcIDsKK+eti+mqqCA+IHN1amlib25lXCA7Civmk6blgrcgPiBzdXJpa2l6dVwgOwor6Kaz5a+fID4ga2Fuc2F0c3VcIDsKK+ims+WuoiA+IGthbmt5YWt1XCA7Civmv6vnq4sgPiByYW5yaXRzdVwgOwor5o6l552AID4gc2V0Y2hha3VcIDsKK+mZo+WIlyA+IGppbnJldHN1XCA7CivplpPmrYcgPiBrYW5rZXRzdVwgOwor5Zyf562GID4gdHN1a3VzaGlcIDsKK+ihsOiJsiA+IHN1aXNob2t1XCA7CivnspvnhLYgPiBzaHVrdXplblwgOwor6ZaT5qygID4ga2Fua2V0c3VcIDsKK+e0sOW8lSA+IGhvc29iaWtpXCA7CivopqrlsYAgPiBveWFreW9rdVwgOwor566h6L2EID4ga2Fua2F0c3VcIDsKK+mZpeWFpSA+IGthbicnbnl1dVwgOwor6KGo6Iq4ID4gb21vdGVnZWlcIDsKK+aXqeOAhSA+IGhheWFiYXlhXCA7Civoo4XnnYAgPiBzb3VjaGFrdVwgOwor57WC5a+pID4gc2h1dXNoaW5cIDsKK+a/g+e4riA+IG5vdXNodWt1XCA7CivoqI7kvJAgPiB0b3ViYXRzdVwgOwor6KyO44CFID4gbmF6b25hem9cIDsKK+e1guWutSA+IHNodXVzaG91XCA7Civln7flv4MgPiBzaHV1c2hpblwgOwor5o+Q54GvID4gY2hvdWNoaW5cIDsKK+aRmOW/gyA+IHRla2lzaGluXCA7Civoo4/nlLogPiB1cmFtYWNoaVwgOwor54WJ5LmzID4gcmVuJydueXV1XCA7CivlnJ/npZ4gPiB1Y2hpZ2FtaVwgOwor5aCA5bedID4gaG9yaWthd2FcIDsKK+e1tuWRvSA+IHpldHN1bWVpXCA7CivpmYvliqMgPiByb3VyZXRzdVwgOwor6KaB5byPID4geW91c2hpa2lcIDsKK+ethumghiA+IGhpdHN1anVuXCA7CivoorTnnYAgPiBoYWthbWFnaVwgOwor6KaW5a+fID4gc2hpc2F0c3VcIDsKK+ewoee0hCA+IGthbicneWFrdVwgOwor5Zu957GNID4ga29rdXNla2lcIDsKK+aMveiCiSA+IGhpa2luaWt1XCA7CivntprkvLggPiB6b2t1c2hpblwgOwor57Kb5riFID4gc2h1a3VzZWlcIDsKK+e0sOWvhiA+IHNhaW1pdHN1XCA7CivplpPmn4QgPiBhaWRhZ2FyYVwgOwor5pKD5aKcID4gZ2VraXRzdWlcIDsKK+WgheWunyA+IGtlbmppdHN1XCA7Civoq7jjgIUgPiBtb3JvbW9yb1wgOwor5Zu9562WID4ga29rdXNha3VcIDsKK+a/q+eZuiA+IHJhbnBhdHN1XCA7CivnrYbpmaMgPiBoaXRzdWppblwgOwor57WQ5ZujID4ga2V0c3VkYW5cIDsKK+ieoumbqiA+IGtlaXNldHN1XCA7Civplo/mnIggPiBqdW5nZXRzdVwgOwor6KaG5a+pID4gZnVrdXNoaW5cIDsKK+mWi+acrSA+IGthaXNhdHN1XCA7CivntKLlr54gPiBzYWt1YmFrdVwgOwor6J226a6rID4gY2hvdXphbWVcIDsKK+aQpuaJiyA+IGthcmFtZXRlXCA7Civlm6PntZAgPiBkYW5rZXRzdVwgOwor5peB44CFID4ga2F0YWdhdGFcIDsKK+e0meWxkSA+IGthbWlrdXp1XCA7CivnspXmsYEgPiBrYXN1amlydVwgOwor6KGA6ImyID4ga2Vzc2hva3VcIDsKK+eym+atoyA+IHNodWt1c2VpXCA7CivploDmnK0gPiBtb25zYXRzdVwgOwor6Kuk44CFID4gZ2FrdWdha3VcIDsKK+e1tuWAqyA+IHpldHN1cmluXCA7CivlnovmnqAgPiBrYXRhd2FrdVwgOwor5oq96LGhID4gY2h1dXNob3VcIDsKK+aKhOmMsiA+IHNob3Vyb2t1XCA7CivpkZHorZggPiBrYW5zaGlraVwgOwor6ZeH5biCID4geWFtaWljaGlcIDsKK+iejembqiA+IHl1dXNldHN1XCA7CivnsJLnq4sgPiBzYW5yaXRzdVwgOwor57WQ5ZCIID4ga2V0c3Vnb3VcIDsKK+WcsOeGsSA+IGNoaW5ldHN1XCA7CivplpPmjqUgPiBrYW5zZXRzdVwgOwor562L6YeRID4gc3VqaWdhbmVcIDsKK+imquWRiiA+IHNoaW5rb2t1XCA7CivnrpfooZMgPiBzYW5qdXRzdVwgOwor5r2k6ImyID4ganVuc2hva3VcIDsKK+ihqOeroCA+IGh5b3VzaG91XCA7Civopqrlj4sgPiBzaGluJyd5dXVcIDsKK+a8ouiosyA+IGthbicneWFrdVwgOwor6ZW35peFID4gbmFnYXRhYmlcIDsKK+mYsuS6uiA+IHNha2ltb3JpXCA7CivntLPllYYgPiBzaGluc2hvdVwgOwor6J+76JyCID4gYXJpYmFjaGlcIDsKK+a/gOeXmyA+IGdla2l0c3V1XCA7CivoprPlhaUgPiBrYW4nJ255dXVcIDsKK+ihneeriyA+IHRzdWl0YXRlXCA7CivmirXop6YgPiB0ZWlzaG9rdVwgOwor57Ch55WlID4ga2Fucnlha3VcIDsKK+aOoeaxuiA+IHNhaWtldHN1XCA7CivmjajnjKsgPiBzdXRlbmVrb1wgOwor566x6Ii5ID4gaGFrb2J1bmVcIDsKK+euseiInyA+IGhha29idW5lXCA7Civon4DosLcgPiBrb21la2FtaVwgOwor6J+v6JmrID4gZ3lvdWNodXVcIDsKK+Wkq+OAhSA+IHNvcmV6b3JlXCA7Civoo4HmsbogPiBzYWlrZXRzdVwgOwor6KaW5YqbID4gc2hpcnlva3VcIDsKK+eyieacqyA+IGZ1bm1hdHN1XCA7CivmjoPmu4UgPiBzb3VtZXRzdVwgOwor5Z+S5aSWID4gcmFjaGlnYWlcIDsKK+aOkuazhCA+IGhhaXNldHN1XCA7Civopb/lk7IgPiBzZWl0ZXRzdVwgOwor5Z2q5pWwID4gdHN1Ym9zdXVcIDsKK+eznuWwvyA+IGZ1bicnbnlvdVwgOwor6KGo55m9ID4gaHlvdWhha3VcIDsKK+Wbm+eZviA+IHlvbmh5YWt1XCA7CivntLDliKUgPiBzYWliZXRzdVwgOwor5omL6Y+hID4gdGVrYWdhbWlcIDsKK+imquS7uyA+IHNoaW4nJ25pblwgOwor6KCP6IKhID4gZ2FuaW1hdGFcIDsKK+WggOWJsiA+IGhvcml3YXJpXCA7CivplqLlroggPiBzZWtpbW9yaVwgOwor6KGA56iOID4ga2V0c3V6ZWlcIDsKK+Wft+WLmSA+IHNoaXRzdW11XCA7CivmjZXniakgPiB0b3JpbW9ub1wgOwor5oiQ6aaZID4gbmFyaWt5b3VcIDsKK+e1guS6hiA+IHNodXVyeW91XCA7CivnsbPmnb4gPiBiZWltYXRzdVwgOwor56+A57O4ID4gZnVzaGlpdG9cIDsKK+Wei+W8jyA+IGtlaXNoaWtpXCA7Civnr4DnsbMgPiBzZXRzdW1haVwgOwor5pWw44CFID4ga2F6dWthenVcIDsKK+aJv+irviA+IHNob3VkYWt1XCA7CivnrYboq4cgPiBoaXRzdWRhblwgOwor5oqE6KizID4gc2hvdXlha3VcIDsKK+mWi+WxgCA+IGthaWt5b2t1XCA7Civnqq7ps6UgPiBreXV1Y2hvdVwgOwor6J+56IKhID4gZ2FuaW1hdGFcIDsKK+mOjOmmliA+IGthbWFrdWJpXCA7Civnq4vpo58gPiByaXNzaG9rdVwgOwor6KGG55uuID4gc2h1dW1va3VcIDsKK+ethuinpiA+IGhpc3Nob2t1XCA7CivnsKHmvZQgPiBrYW5rZXRzdVwgOwor5Z6C5bmVID4gdGFyZW1ha3VcIDsKK+eri+mhmCA+IHJpdHN1Z2FuXCA7CivmkYLli5UgPiBzZXRzdWRvdVwgOwor57K+5a+GID4gc2VpbWl0c3VcIDsKK+evgOeptCA+IGZ1c2hpYW5hXCA7CivmjqXmlq0gPiBzZXRzdWRhblwgOwor6KGA55ufID4ga2V0c3VtZWlcIDsKK+evgOeojiA+IHNldHN1emVpXCA7Civns7jlj6MgPiBpdG9ndWNoaVwgOwor5omL6LuKID4gdGVndXJ1bWFcIDsKK+mVt+WwuyA+IG5hZ2FqaXJpXCA7Civmv4HmtYEgPiBkYWt1cnl1dVwgOwor57Sg5Lq6ID4gc2hpcm91dG9cIDsKK+a/gOa1gSA+IGdla2lyeXV1XCA7Civln7fkuosgPiBzaGl0c3VqaVwgOwor5omA6L2EID4gc2hva2F0c3VcIDsKK+aLkue1tiA+IGt5b3pldHN1XCA7CivmjpLml6UgPiBoYWluaWNoaVwgOwor57O75YiXID4ga2VpcmV0c3VcIDsKK+eGseOAhSA+IGF0c3VhdHN1XCA7CivoobDmu4UgPiBzdWltZXRzdVwgOwor5o6h5o6YID4gc2Fpa3V0c3VcIDsKK+WfkuWGhSA+IHJhY2hpbmFpXCA7CivlnKjml6UgPiB6YWluaWNoaVwgOwor5ryB6ImyID4gZ3lvc2hva3VcIDsKK+aLmeethiA+IHNlcHBpdHN1XCA7CivntJTkuIAgPiBqdW4nJ2l0c3VcIDsKK+aQrOWFpSA+IGhhbicnbnl1dVwgOwor6Zai5Y+WID4gc2VraXRvcmlcIDsKK+aQvuS5syA+IHNha3VueXV1XCA7Civom67pqqggPiBiYW5rb3RzdVwgOwor5ryr562GID4gbWFucGl0c3VcIDsKK+evgOeUqCA+IHNldHN1eW91XCA7CivmipznvqQgPiBiYXRzdWd1blwgOwor5omA6KqsID4gc2hvc2V0c3VcIDsKK+WbveafhCA+IGt1bmlnYXJhXCA7CivmurbooYAgPiB5b3VrZXRzdVwgOwor6ZaR5Y20ID4ga2Fua3lha3VcIDsKK+aJi+iiiyA+IHRlYnVrdXJvXCA7CivplqPlg5ogPiBrYWt1cnlvdVwgOwor5omL6KGTID4gc2h1anV0c3VcIDsKK+e3qeOAhSA+IHl1cnV5dXJ1XCA7CivnsaTlvJUgPiBrdWppYmlraVwgOwor57Ch5pytID4ga2Fuc2F0c3VcIDsKK+idtuidtiA+IGNob3VjaG91XCA7CivnrYvogokgPiBraW4nJ25pa3VcIDsKK+eqk+mamyA+IG1hZG9naXdhXCA7CivplpPlhasgPiBrYW5wYWNoaVwgOwor5rib6aOfID4gZ2Vuc2hva3VcIDsKK+esueiInyA+IHNhc2FidW5lXCA7CivmjqXlsrggPiBzZXRzdWdhblwgOwor5oiv6KiAID4gdGF3YWdvdG9cIDsKK+eyvuWKmyA+IHNlaXJ5b2t1XCA7CivooYDmtrIgPiBrZXRzdWVraVwgOwor56m66aKoID4ga2FyYWthemVcIDsKK+igj+eOiSA+IGthbml0YW1hXCA7CivooYDmtpkgPiBrZXRzdXJ1aVwgOwor5r2w5ruFID4ga2FpbWV0c3VcIDsKK+aIuOiiiyA+IHRvYnVrdXJvXCA7Civmjqjlr58gPiBzdWlzYXRzdVwgOwor5o6l5a6iID4gc2Vra3lha3VcIDsKK+WXheimmiA+IGt5dXVrYWt1XCA7Civmipjnr4AgPiBvcmlmdXNoaVwgOwor5r2k5ruRID4ganVua2F0c3VcIDsKK+mWk+S8kCA+IGthbmJhdHN1XCA7CivpjozotrMgPiBrYW1hYXNoaVwgOwor5r2u5rWBID4gY2hvdXJ5dXVcIDsKK+Wbm+aciCA+IHNoaWdhdHN1XCA7CivplbfliIAgPiBuYWdpbmF0YVwgOwor5Ziy56yRID4gY2hvdXNob3VcIDsKK+eqrui/vSA+IGt5dXV0c3VpXCA7Civnqq7ov6sgPiBreXV1aGFrdVwgOwor5oim6KGTID4gc2VuanV0c3VcIDsKK+aPoeWKmyA+IGFrdXJ5b2t1XCA7CivopIfli50gPiBmdWt1c2hvdVwgOwor6J+5546JID4ga2FuaXRhbWFcIDsKK+a9ruaxkCA+IGNob3VzZWtpXCA7CivnsKHmipwgPiBrYW5iYXRzdVwgOwor5r2u5rC0ID4gc2hpb21penVcIDsKK+evgOa4myA+IHNldHN1Z2VuXCA7CivpjZvpiYQgPiB0YW50ZXRzdVwgOwor6ZqG44CFID4gcnl1dXJ5dXVcIDsKK+maheOAhSA+IHN1bWl6dW1pXCA7Civmj5rlipsgPiB5b3VyeW9rdVwgOwor56u56JauID4gdGFrZXlhYnVcIDsKK+aJjeiJsiA+IHNhaXNob2t1XCA7Civom43pm6ogPiBrZWlzZXRzdVwgOwor56uL6KuWID4gcml0c3Vyb25cIDsKK+exs+WdqiA+IGJlaXRzdWJvXCA7CivnrYbnrrEgPiBmdWRlYmFrb1wgOwor5ris6YePID4gc29rdXJ5b3VcIDsKK+etieetiSA+IG5hZG9uYWRvXCA7Civnq4voqIAgPiByaXRzdWdlblwgOwor57Kb5YWaID4gc2h1a3V0b3VcIDsKK+ijuOWHuiA+IHJhc2h1dHN1XCA7CivpjYvph5wgPiBuYWJla2FtYVwgOwor6KGd5pKDID4gc2hvdWdla2lcIDsKK+a8gueZvSA+IGh5b3VoYWt1XCA7Civmt7fpm5EgPiBrb256YXRzdVwgOwor6ZW35LmFID4gY2hvdWt5dXVcIDsKK+WbnuaKmCA+IGthaXNldHN1XCA7CivlnLDlooMgPiBkaml6YWthaVwgOwor5oy/5oqcID4gc291YmF0c3VcIDsKK+idpuiFsCA+IGViaWdvc2hpXCA7CivooaPmiYsgPiBrb3JvbW9kZVwgOwor6KG35b+DID4gY2h1dXNoaW5cIDsKK+ibuOi2syA+IHRha29hc2hpXCA7CivntprjgIUgPiB6b2t1em9rdVwgOwor5rex6ZW3ID4gc2hpbmNob3VcIDsKK+WVhumHjyA+IHNob3VyeW91XCA7CivmjJ/mkoMgPiBreW91Z2VraVwgOwor5o6l5ZCIID4gc2V0c3Vnb3VcIDsKK+ijj+WPoyA+IHVyYWd1Y2hpXCA7CivompXpo58gPiBzYW5zaG9rdVwgOwor5oqR55WZID4geW9rdXJ5dXVcIDsKK+mMrOmJhCA+IHJlbnRldHN1XCA7Civmva7mmYIgPiBzaGlvZG9raVwgOwor5r+D5a+GID4gbm91bWl0c3VcIDsKK+ihqOW+tCA+IGh5b3VjaG91XCA7CivooajlvbAgPiBoeW91c2hvdVwgOwor5Zu95a2mID4ga29rdWdha3VcIDsKK+a8oOa8oCA+IGJha3ViYWt1XCA7CivmjqjlipsgPiBzdWlyeW9rdVwgOwor5o+J5LqLID4gbW9tZWdvdG9cIDsKK+ertue/lCA+IGt5b3VzaG91XCA7CivpvLvpq60gPiBoYW5haGlnZVwgOwor56uL6JG1ID4gdGFjaGlhb2lcIDsKK+eyieS5syA+IGZ1bicnbnl1dVwgOwor6KGd5b+DID4gc2hvdXNoaW5cIDsKK+m8u+mrmCA+IGhhbmF0YWthXCA7CivlloDooYAgPiBrYWtrZXRzdVwgOwor5omN562GID4gc2FpaGl0c3VcIDsKK+aKleeJqSA+IG5hZ2Vtb25vXCA7CivlnLDljbUgPiBqaXRhbWFnb1wgOwor57Gz5YCJID4ga29tZWd1cmFcIDsKK+iiluWeoyA+IHNvZGVnYWtpXCA7Civmt7HphZIgPiBmdWthemFrZVwgOwor5Zyw5YqbID4gY2hpcnlva3VcIDsKK+epuuixhiA+IHNvcmFtYW1lXCA7CivmjK/luYUgPiBzaGlucHVrdVwgOwor6by76aKoID4gaGFuYWthemVcIDsKK+aOkuWIlyA+IGhhaXJldHN1XCA7CivnsbPku48gPiBiZWlmdXRzdVwgOwor5o2V5aSxID4gaG9zaGl0c3VcIDsKK+erque4niA+IHRhdGVqaW1hXCA7CivmioTniakgPiBzaG91bW9ub1wgOwor56u557ChID4gY2hpa3VrYW5cIDsKK+a8gua8giA+IGh5b3VoeW91XCA7CivmirnmrrogPiBtYXNzYXRzdVwgOwor6KOP5LuYID4gdXJhZHp1a2VcIDsKK+WUkOmLpCA+IGthcmFzdWtpXCA7CivmhrboqqwgPiBva3VzZXRzdVwgOwor5Zyn5Ye6ID4gYXNzaHV0c3VcIDsKK+eri+iEmiA+IHJpa2t5YWt1XCA7Civnq7nnroYgPiB0YWtlYmVyYVwgOwor5Zu95Zu9ID4ga3VuaWd1bmlcIDsKK+ewkuWlqiA+IHNhbmRhdHN1XCA7CivlnYfkuIAgPiBraW4nJ2l0c3VcIDsKK+a8j+azhCA+IHJvdXNldHN1XCA7CivpvLvpnakgPiBoYW5hZ2F3YVwgOwor56m66KqsID4ga3V1c2V0c3VcIDsKK+Wcp+WFpSA+IGF0c3VueXV1XCA7CivmjJnlvI8gPiBreW9zaGlraVwgOwor5r+r5YWlID4gcmFuJydueXV1XCA7Civpi7zpiYQgPiBrb3V0ZXRzdVwgOwor56m66KiAID4gc29yYWdvdG9cIDsKK+WUkOmHkSA+IGthcmFrYW5lXCA7CivomY7prJogPiB0b3JhaGlnZVwgOwor5rq255m6ID4geW91aGF0c3VcIDsKK+a7tOa7tCA+IHRla2l0ZWtpXCA7CivmvILmtYEgPiBoeW91cnl1dVwgOwor6JmO6autID4gdG9yYWhpZ2VcIDsKK+mPkeefoiA+IGthYnVyYXlhXCA7CivmvILms4ogPiBoeW91aGFrdVwgOwor6Jma6aO+ID4ga3lvc2hva3VcIDsKK+aLmeaWhyA+IHNldHN1YnVuXCA7Civnro/mm7IgPiBzb3VreW9rdVwgOwor6J6i54GrID4gaG90YXJ1YmlcIDsKK+mRkeacrSA+IGthbnNhdHN1XCA7CivmiY3nlaUgPiBzYWlyeWFrdVwgOwor6YqA6bygID4gZ2luJyduZXp1XCA7Civmv6vkvJAgPiByYW5iYXRzdVwgOwor5ou+5b6XID4gc2h1dXRva3VcIDsKK+WbveWOnyA+IGt1bmliYXJhXCA7Civom57onZMgPiBuYW1la3VqaVwgOwor5o6M5LitID4gc2hvdWNodXVcIDsKK+emv+m3uSA+IGhhZ2V0YWthXCA7CivnqbronYkgPiB1dHN1c2VtaVwgOwor56+J5bqtID4gY2hpa3V0ZWlcIDsKK+evpOWtpiA+IHRva3VnYWt1XCA7Civono3nhrEgPiB5dXVuZXRzdVwgOwor6buZ6buZID4gbW9rdW1va3VcIDsKK+mNi+iTiyA+IG5hYmVidXRhXCA7CivmiJDnq4sgPiBzZWlyaXRzdVwgOwor562G5rSXID4gZnVkZWFyYWlcIDsKK+WbsOWNtCA+IGtvbmt5YWt1XCA7Civmh7jntbYgPiBrZW56ZXRzdVwgOwor6buS6bu0ID4ga3Vyb2thYmlcIDsKK+a1t+mjnyA+IGthaXNob2t1XCA7Civpu5Lpu5IgPiBrdXJvZ3Vyb1wgOwor5oWO6YeNID4gc2hpbmNob3VcIDsKK+m7kum6piA+IGt1cm9tdWdpXCA7CivmiJDnqIsgPiBuYXJ1aG9kb1wgOwor5Zu95YWDID4ga3VuaW1vdG9cIDsKK+aJjeeJqSA+IHNhaWJ1dHN1XCA7Civpu5Lpt7ogPiBrdXJvc2FnaVwgOwor6Ymk6by7ID4ga2FnaWJhbmFcIDsKK+a3t+ihgCA+IGtvbmtldHN1XCA7CivnrrHluq0gPiBoYWtvbml3YVwgOwor5ouZ5oKqID4gc2V0c3Vha3VcIDsKK+a2iOmVtyA+IHNob3VjaG91XCA7CivntLDjgIUgPiBob3NvYm9zb1wgOwor6buS6bSoID4ga3Vyb2dhbW9cIDsKK+aLoeW8tSA+IGtha3VjaG91XCA7CivpioDpq6ogPiBnaW5wYXRzdVwgOwor6JuG6JmrID4gdWppbXVzaGlcIDsKK+idleeUmiA+IHNob2t1amluXCA7CivompXosYYgPiBzb3JhbWFtZVwgOwor6KCN5bqnID4gc2Fzb3JpemFcIDsKK+iiluS4iCA+IHNvZGV0YWtlXCA7CivmiKbnlaUgPiBzZW5yeWFrdVwgOwor5Zue5YuFID4ga2FpY2hva3VcIDsKK+WbveS6uiA+IGt1bmliaXRvXCA7Civmub/nlrkgPiBzaGlzc2hpblwgOwor5Zix5pybID4gc2hva3Vib3VcIDsKK+a1nOmiqCA+IGhhbWFrYXplXCA7Civnq6rnkLQgPiB0YXRlZ290b1wgOwor5riL6Iy2ID4gc2hpYnVjaGFcIDsKK+ihjOWVhiA+IGd5b3VzaG91XCA7Civnqq7nrZYgPiBreXV1c2FrdVwgOwor6Jqw6JySID4gZ2VqaWdlamlcIDsKK+aKl+aXpSA+IGtvdW5pY2hpXCA7CivmuIvoibIgPiBzaGlidWlyb1wgOwor5rS76a2aID4ga2F0c3VneW9cIDsKK+evieWgpCA+IGNoaWt1dGVpXCA7CivnqbrogLMgPiBzb3JhbWltaVwgOwor6Yqt6YeRID4gemVuaWthbmVcIDsKK+aLneWvnyA+IGhhaXNhdHN1XCA7Civmib/mnI0gPiBzaG91ZnVrdVwgOwor5oiq54S2ID4gc2V0c3V6ZW5cIDsKK+m+jeiInyA+IHJ5dXVzaHV1XCA7Civmt7foibIgPiBrb25zaG9rdVwgOwor5rqi5rWBID4gaXRzdXJ5dXVcIDsKK+a7nuaXpSA+IHRhaW5pY2hpXCA7CivmipXmioAgPiBuYWdld2F6YVwgOwor5oib54S2ID4ga2F0c3V6ZW5cIDsKK+aIkeeJqSA+IHdhZ2Ftb25vXCA7CivpvLvoqLEgPiBoYW5hbW90b1wgOwor56eS6YedID4gYnlvdXNoaW5cIDsKK+aMr+S9nCA+IHNoaW5zYWt1XCA7Civmup3ms6UgPiBkb2J1ZG9yb1wgOwor6YqR6YmEID4gc2VudGV0c3VcIDsKK+emhOmrmCA+IHJva3VkYWthXCA7Civmup3msLQgPiBkb2J1bWl6dVwgOwor5oaC6ImyID4geXV1c2hva3VcIDsKK+epuuexpCA+IGthcmFrdWppXCA7CivpiYTpqqggPiB0ZWtrb3RzdVwgOwor5rmv54WZID4geXVrZW11cmlcIDsKK+a0l+mrqiA+IHNlbnBhdHN1XCA7Civmt6HoibIgPiB0YW5zaG9rdVwgOwor56eB6YmEID4gc2hpdGV0c3VcIDsKK+enkumAnyA+IGJ5b3Vzb2t1XCA7Civnr6Tkv6EgPiB0b2t1c2hpblwgOwor56m6566xID4ga2FyYWJha29cIDsKK+eqgeeriyA+IHRvdHRhdHN1XCA7CivllJDojYkgPiBrYXJha3VzYVwgOwor6J+75aGaID4gYXJpZHp1a2FcIDsKK+a9ruWFiCA+IHNoaW9zYWtpXCA7CivomZroqqwgPiBreW9zZXRzdVwgOwor6KGA5L6/ID4ga2V0c3ViZW5cIDsKK+ihjOS4rSA+IGd5b3VjaHV1XCA7CivmtIvpq6ogPiB5b3VoYXRzdVwgOwor5oim5rKhID4gc2VuYm90c3VcIDsKK+aMh+WFiCA+IHl1YmlzYWtpXCA7CivpjKbntbUgPiBuaXNoaWtpZVwgOwor5ZWG562WID4gc2hvdXNha3VcIDsKK+aJi+aelSA+IHRlbWFrdXJhXCA7Civnp4DpgLggPiBzaHV1aXRzdVwgOwor56+A5YiGID4gc2V0c3VidW5cIDsKK+aIpuatvyA+IHNlbmJvdHN1XCA7Civnq7nmp40gPiB0YWtleWFyaVwgOwor6J6N5o6lID4geXV1c2V0c3VcIDsKK+m7kumJhCA+IGt1cm9nYW5lXCA7CivmvZzlhaUgPiBzZW4nJ255dXVcIDsKK+m7kumHkSA+IGt1cm9nYW5lXCA7CivmtIvpo58gPiB5b3VzaG9rdVwgOwor562J5byPID4gdG91c2hpa2lcIDsKK+iXqemWpSA+IGhhbmJhdHN1XCA7CivmtYHph48gPiByeXV1cnlvdVwgOwor5oSf6KemID4ga2Fuc2hva3VcIDsKK+mNvOeBuCA+IHNoaW5reXV1XCA7CivnqoHnmbogPiB0b3BwYXRzdVwgOwor6Ymk6YedID4ga2FnaWJhcmlcIDsKK+aKleWuvyA+IHRvdXNodWt1XCA7Civnq7nmnpcgPiBjaGlrdXJpblwgOwor5rq25o6lID4geW91c2V0c3VcIDsKK+WVk+eZuiA+IGtlaWhhdHN1XCA7Civnq7nmnZAgPiBjaGlrdXphaVwgOwor56m655m6ID4ga3V1aGF0c3VcIDsKK+aJleaLrSA+IGZ1c3Nob2t1XCA7CivnpZ7poqggPiBrYW1pa2F6ZVwgOwor56qD55SoID4gc2V0c3V5b3VcIDsKK+a1gemAnyA+IHJ5dXVzb2t1XCA7CivmtYHpgJogPiByeXV1dHN1dVwgOwor5rud5bedID4gdGFraWdhd2FcIDsKK+epgOeykiA+IGtva3VyeXV1XCA7CivnrZHlrZAgPiBrb2tpcmlrb1wgOwor56uv5pyrID4gdGFubWF0c3VcIDsKK+WUkOe0mSA+IGthcmFrYW1pXCA7CivolqbpqqggPiBzZW5rb3RzdVwgOwor6ZW344CFID4gbmFnYW5hZ2FcIDsKK+ibuOeEvCA+IHRha295YWtpXCA7CivnpZ3pm7sgPiBzaHVrdWRlblwgOwor5oGQ6b6NID4ga3lvdXJ5dXVcIDsKK+engeiqrCA+IHNoaXNldHN1XCA7Civlk4HoloQgPiBzaGluYXVzdVwgOwor5oud5YCfID4gaGFpc2hha3VcIDsKK+aIquaWrSA+IHNldHN1ZGFuXCA7CivmtbfonZUgPiBrYWlzaG9rdVwgOwor566X5YWlID4gc2FuJydueXV1XCA7CivnqK7ntJkgPiB0YW5lZ2FtaVwgOwor5rip54axID4gb24nJ25ldHN1XCA7CivpiYTpiaIgPiB0ZXBwYWNoaVwgOwor56eB6KitID4gc2hpc2V0c3VcIDsKK+a6gOaciCA+IG1hbmdldHN1XCA7CivpjYvniakgPiBuYWJlbW9ub1wgOwor5rm+5puyID4gd2Fua3lva3VcIDsKK+azoumiqCA+IG5hbWlrYXplXCA7CivpkZHliKUgPiBrYW5iZXRzdVwgOwor6buS6LG5ID4ga3Vyb2h5b3VcIDsKK+aIv+aIvyA+IGZ1c2FmdXNhXCA7Civpu5LosYYgPiBrdXJvbWFtZVwgOwor5ZSQ56qBID4gdG91dG90c3VcIDsKK+m7meirviA+IG1va3VkYWt1XCA7Civph47pvKAgPiBub25lenVtaVwgOwor5Zas5pyoID4ga3lvdWJva3VcIDsKK+m7meiqrSA+IG1va3Vkb2t1XCA7CivmgaXpqqggPiBjaGlrb3RzdVwgOwor5omL5b+DID4gdGVnb2tvcm9cIDsKK+eqgeeEtiA+IHRvdHN1emVuXCA7CivmirzliIcgPiBvc2hpa2lyaVwgOwor5oqR5ZynID4geW9rdWF0c3VcIDsKK+aFtuelnSA+IGtlaXNodWt1XCA7CivnrYblpKogPiBmdWRlYnV0b1wgOwor6YmE6YGTID4gdGV0c3Vkb3VcIDsKK+eymOOAhSA+IG5lYmFuZWJhXCA7CivnpZ7pj6EgPiBzaGlua3lvdVwgOwor5riJ54yfID4gc2hvdXJ5b3VcIDsKK+iZmuiEsSA+IGt5b2RhdHN1XCA7CivmsrPpsZIgPiBrYXdhbWFzdVwgOwor6Yqt6IuUID4gemVuaWdva2VcIDsKK+eri+acrSA+IHRhdGVmdWRhXCA7CivlmZvlgrcgPiBrYW1pa2l6dVwgOwor6YeO6bayID4gbm9iaXRha2lcIDsKK+a8lOWHuiA+IGVuc2h1dHN1XCA7CivmuKzmt7EgPiBzb2t1c2hpblwgOwor6by757SZID4gaGFuYWdhbWlcIDsKK+a4qea4qSA+IG51a3VudWt1XCA7CivpvLvns54gPiBoYW5ha3Vzb1wgOwor57KJ44CFID4ga29uYWdvbmFcIDsKK+aCqumAhiA+IGFrdWd5YWt1XCA7CivmgqrovqMgPiBha3VyYXRzdVwgOwor5oim5oWEID4gc2Vucml0c3VcIDsKK+m7kuihqCA+IGtva3VoeW91XCA7Civmtrznp4sgPiByeW91c2h1dVwgOwor6by7562LID4gaGFuYXN1amlcIDsKK+m6qeizqiA+IGZ1c2hpdHN1XCA7Civmsojpu5kgPiBjaGlubW9rdVwgOwor6JuN54GrID4gaG90YXJ1YmlcIDsKK+mHkemrqiA+IGtpbnBhdHN1XCA7CivpiYjosYYgPiBuYXRhbWFtZVwgOwor56Ov6be4ID4gaXNvc2hpZ2lcIDsKK+a6neW3nSA+IGRvYnVnYXdhXCA7CivpjpTmjqUgPiB5b3VzZXRzdVwgOwor6Y215p2fID4ga2FnaXRhYmFcIDsKK+elnumAnyA+IHNoaW5zb2t1XCA7Civpu5Lom4cgPiBrdXJvaGViaVwgOwor5rqA5oKmID4gbWFuJydldHN1XCA7CivmiJHmiJEgPiB3YXJld2FyZVwgOwor5riF5r2UID4gc2Vpa2V0c3VcIDsKK+ethuWQjSA+IGhpdHN1bWVpXCA7CivnqIvnqIsgPiBob2RvaG9kb1wgOwor6J2O5bqnID4gc2Fzb3JpemFcIDsKK+eorueVnCA+IHNodWNoaWt1XCA7CivnrYvlipsgPiBraW5yeW9rdVwgOwor6YqF6ImyID4gZG91c2hva3VcIDsKK+WPjemqqCA+IGhhbmtvdHN1XCA7CivmupblsLogPiBqdW5zaGFrdVwgOwor5Y+s6ZuGID4gc2hvdXNodXVcIDsKK+azqOmAsiA+IGNodXVzaGluXCA7CivllYbms4EgPiBzaG91a3lvdVwgOwor6Yu8546JID4ga291Z3lva3VcIDsKK+a5v+W6piA+IHNoaXRzdWRvXCA7Civon4TkvI8gPiBjaGlwcHVrdVwgOwor5rWF6JGxID4gYXNhdHN1a2lcIDsKK+aIkuW+iyA+IGthaXJpdHN1XCA7Civnq7rlraYgPiBqaWt1Z2FrdVwgOwor5ZC56LKrID4gZnVraW51a2lcIDsKK+esueWOnyA+IHNhc2FoYXJhXCA7CivnqpPmnqAgPiBtYWRvd2FrdVwgOwor5ZSQ54mpID4gdG91bW90c3VcIDsKK+WPoumbsiA+IG11cmFrdW1vXCA7Civlj6Lpm6ggPiBtdXJhc2FtZVwgOwor5rac56WeID4gdG9rdXNoaW5cIDsKK+err+WxgCA+IHRhbmt5b2t1XCA7Civmip7kuIAgPiB0YWt1aXRzdVwgOwor5oim5bGAID4gc2Vua3lva3VcIDsKK+ethuWFiCA+IGZ1ZGVzYWtpXCA7Civpiq3nrrEgPiB6ZW5pYmFrb1wgOwor6Yyo5rOKID4gYnlvdWhha3VcIDsKK+mJhOihgCA+IHRla2tldHN1XCA7Civmt7fmtbQgPiBrb24nJ3lva3VcIDsKK+a3sea3sSA+IGZ1a2FidWthXCA7Civol6rom4cgPiB5YWJ1aGViaVwgOwor56iu54mpID4gdGFuZW1vbm9cIDsKK+eorueJmyA+IHRhbmV1c2hpXCA7Civom4fmr5IgPiBoZWJpZG9rdVwgOwor5oiM5bm0ID4gaW51ZG9zaGlcIDsKK+m8u+eWviA+IGJpc2hpdHN1XCA7Civmu5HliaQgPiBrYXRzdXphaVwgOwor6buS6Ii5ID4ga3Vyb2Z1bmVcIDsKK+WVhuaomSA+IHNob3VoeW91XCA7CivpvI7nq4sgPiB0ZWlyaXRzdVwgOwor6YqA57+8ID4gZ2luJyd5b2t1XCA7Civms6XotrMgPiBkb3JvYXNoaVwgOwor6Y6M5b2iID4ga2FtYWdhdGFcIDsKK+a7heWNtCA+IG1la2t5YWt1XCA7Civph6Ppiq0gPiB0c3VyaXNlblwgOwor5ZWG5qWtID4gc2hvdWd5b3VcIDsKK+mJseiEiCA+IGtvdW15YWt1XCA7Civlj47pm4YgPiBzaHV1c2h1dVwgOwor6JqK54e7ID4ga2FpYnVzaGlcIDsKK+WQhOmAsSA+IGtha3VzaHV1XCA7CivnpZ7oqJcgPiBzaGludGFrdVwgOwor5om/5LyPID4gc2hvdWZ1a3VcIDsKK+WQg+mAhiA+IHNoYWtrdXJpXCA7Civpurnoj4wgPiBrb3VqaWtpblwgOwor6buE6ImyID4ga291c2hva3VcIDsKK+WRveiEiCA+IG1laW15YWt1XCA7Civpu5LogokgPiBrdXJvbmlrdVwgOwor6bqm6JeBID4gbXVnaXdhcmFcIDsKK+erueWeoyA+IHRha2VnYWtpXCA7CivpjZvmjqUgPiB0YW5zZXRzdVwgOwor6Yed6YeRID4gaGFyaWdhbmVcIDsKK+mKgOe4gSA+IGdpbmJ1Y2hpXCA7Civph5HpjIYgPiBrYW5hc2FiaVwgOwor56iO546HID4gemVpcml0c3VcIDsKK+eri+WxsSA+IHRhdGV5YW1hXCA7CivpuqbokpQgPiBtdWdpbWFraVwgOwor6YeR6YmEID4ga2ludGV0c3VcIDsKK+WPpOmHkSA+IGZ1cnVnYW5lXCA7Civlj6Tph4wgPiBmdXJ1c2F0b1wgOwor5ZWE5pyoID4gdGFrdWJva3VcIDsKK+WPo+mHjSA+IGt1Y2hpb21vXCA7CivmuIfmnJsgPiBrYXRzdWJvdVwgOwor5omN5YqbID4gc2Fpcnlva3VcIDsKK+WPpOmFkiA+IGZ1cnV6YWtlXCA7CivmuIXmnJ0gPiBzaGluY2hvdVwgOwor6by754aKID4gaGFuYWd1bWFcIDsKK+eskeWKhyA+IHNob3VnZWtpXCA7CivpjKvmnZYgPiBzaGFrdWpvdVwgOwor56m65pKuID4ga3V1c2F0c3VcIDsKK+m7mee0hCA+IG1va3V5YWt1XCA7CivnpL7oqqwgPiBzaGFzZXRzdVwgOwor5rWF57eRID4gc2Vucnlva3VcIDsKK+WPjumMsiA+IHNodXVyb2t1XCA7CivmiYvliIAgPiB0ZWdhdGFuYVwgOwor56mN5qW1ID4gc2Vra3lva3VcIDsKK+aJk+WCtyA+IHVjaGlraXp1XCA7CivpiYToibIgPiB0ZXRzdWlyb1wgOwor5Zu944CFID4ga3VuaWd1bmlcIDsKK+emj+iAsyA+IGZ1a3VtaW1pXCA7Civmu4XkuqEgPiBtZXRzdWJvdVwgOwor5oWE54S2ID4gcml0c3V6ZW5cIDsKK+WPo+i/sCA+IGtvdWp1dHN1XCA7CivlkIzoqqwgPiBkb3VzZXRzdVwgOwor56qS5oGvID4gY2hpc3Nva3VcIDsKK+WPs+i2syA+IG1pZ2lhc2hpXCA7Civmspbph6MgPiBva2lkenVyaVwgOwor56u55Y+iID4gdGFrYW11cmFcIDsKK+m7kuexsyA+IGt1cm9nb21lXCA7Civlj47ph48gPiBzaHV1cnlvdVwgOwor6YmE6IWVID4gdGV0c3V3YW5cIDsKK+WPm+mAhiA+IGhhbmd5YWt1XCA7Civpu57nqbQgPiB0ZW5rZXRzdVwgOwor5rC06bOlID4gbWl6dWRvcmlcIDsKK+a6gOWWqyA+IG1hbmtpdHN1XCA7CivlkYjoibIgPiB0ZWlzaG9rdVwgOwor5oiR5Zu9ID4gd2FnYWt1bmlcIDsKK+iWruibhyA+IHlhYnVoZWJpXCA7Civlj7HosqwgPiBzaGlzc2VraVwgOwor5oKq6IiMID4gYWt1emV0c3VcIDsKK+iZjueMqyA+IHRvcmFuZWtvXCA7CivmtJLohLEgPiBzaGFkYXRzdVwgOwor6bq757axID4gYXNhZHp1bmFcIDsKK+m7kOervyA+IG1vY2hpemFvXCA7CivlkKvok4QgPiBnYW5jaGlrdVwgOwor5Y+N6YCGID4gaGFuZ3lha3VcIDsKK+WPgumFjCA+IHNhbnNoYWt1XCA7CivmiKblipsgPiBzZW5yeW9rdVwgOwor5Y+O6LyvID4gc2h1dXNodXVcIDsKK+WQhOihjCA+IGtha3VneW91XCA7CivmiKbliJcgPiBzZW5yZXRzdVwgOwor6Y2L5bqVID4gbmFiZXpva29cIDsKK+aApemAsiA+IGt5dXVzaGluXCA7CivmgqrogIUgPiB3YXJ1bW9ub1wgOwor5oCl6YCfID4ga3l1dXNva3VcIDsKK+aApei/vSA+IGt5dXV0c3VpXCA7CivmgKXov6sgPiBreXV1aGFrdVwgOwor6by75rC0ID4gaGFuYW1penVcIDsKK+aCvee1tiA+IHNlaXpldHN1XCA7Civnqq7looMgPiBreXV1a3lvdVwgOwor5oK257W2ID4gbW9uemV0c3VcIDsKK+WRqOeroCA+IHNodXVzaG91XCA7Civlv6vpl4ogPiBrYWlrYXRzdVwgOwor5rC06aOfID4gc3Vpc2hva3VcIDsKK+ertuS9nCA+IGt5b3VzYWt1XCA7Civnq4vlkb0gPiByaXRzdW1laVwgOwor5Y6z6YGUID4gZ2VudGF0c3VcIDsKK+WOs+mAuSA+IGdlbnRhdHN1XCA7Civmub7lhaUgPiB3YW4nJ255dXVcIDsKK+a4qeWupCA+IG9uc2hpdHN1XCA7Civph43oqqwgPiBqdXVzZXRzdVwgOwor6Y2L5bC7ID4gbmFiZWppcmlcIDsKK+a3seaGgiA+IHNoaW4nJ3l1dVwgOwor5rC36ZyHID4gaHlvdXNoaW5cIDsKK+mJhOethiA+IHRlcHBpdHN1XCA7CivmtLvnnLwgPiBrYXRzdWdhblwgOwor5Y+j6KOPID4ga3VjaGl1cmFcIDsKK+a0nueqnyA+IGRvdWt1dHN1XCA7CivmiJHlhJggPiB3YWdhbWFtYVwgOwor5rC06ZqbID4gbWl6dWdpd2FcIDsKK+mHjeikhyA+IGNob3VmdWt1XCA7Civnp4HniakgPiBzaGlidXRzdVwgOwor5rS755m6ID4ga2FwcGF0c3VcIDsKK+m6pueoiCA+IG11Z2l3YXJhXCA7CivnqpLloZ4gPiBjaGlzc29rdVwgOwor5raI5rKIID4gc2hvdWNoaW5cIDsKK+WQjOiJsiA+IGRvdXNob2t1XCA7CivmgqrnrYYgPiBha3VoaXRzdVwgOwor56Gs6aqoID4ga291a290c3VcIDsKK+aIkeS+rSA+IHdhZ2FtYW1hXCA7CivmsqLooI8gPiBzYXdhZ2FuaVwgOwor5rKi6J+5ID4gc2F3YWdhbmlcIDsKK+aGq+WvnyA+IGJpbnNhdHN1XCA7CivpupfnrYYgPiByZWloaXRzdVwgOwor6JeB57SZID4gd2FyYWdhbWlcIDsKK+eri+WDjyA+IHJpdHN1em91XCA7CivmtLvnlKggPiBrYXRzdXlvdVwgOwor5raI5q+SID4gc2hvdWRva3VcIDsKK+WVhuWtpiA+IHNob3VnYWt1XCA7CivmiJHkurogPiB3YXJlaGl0b1wgOwor6Y2L5aKoID4gbmFiZXp1bWlcIDsKK+aIkOS7jyA+IGpvdWJ1dHN1XCA7Civpu5LnjKsgPiBrdXJvbmVrb1wgOwor5oiR5LqLID4gd2FnYWtvdG9cIDsKK+WQjOiDniA+IGhhcmFrYXJhXCA7CivpibHniakgPiBrb3VidXRzdVwgOwor5oCl6KWyID4ga3l1dXNodXVcIDsKK+WQjOiBtyA+IGRvdXNob2t1XCA7CivnqbrlpKIgPiBzb3JheXVtZVwgOwor5rOl57iEID4gZG9yb25hd2FcIDsKK+W+tOmbhiA+IGNob3VzaHV1XCA7CivphYvplbcgPiBzaHV1Y2hvdVwgOwor5Y2K6Z20ID4gaGFuZ3V0c3VcIDsKK+aCtuedgCA+IG1vbmNoYWt1XCA7Civpu4TnjokgPiBrb3VneW9rdVwgOwor6buS54aKID4ga3Vyb2d1bWFcIDsKK+iSsumtmiA+IGthbWF0b3RvXCA7Civmg6jng4ggPiBzYW5yZXRzdVwgOwor5ZaJ5YWDID4gbm9kb21vdG9cIDsKK+epuuWggCA+IGthcmFib3JpXCA7CivoloTohpwgPiBoYWt1bWFrdVwgOwor56qv5YWDID4ga2FtYW1vdG9cIDsKK+a4m+WcpyA+IGdlbicnYXRzdVwgOwor56eB5reRID4gc2hpc2h1a3VcIDsKK+eomuaLmSA+IGNoaXNldHN1XCA7CivnpZDnrYYgPiB5dXVoaXRzdVwgOwor5Y+k6I2JID4gZnVydWt1c2FcIDsKK+WPo+iNkiA+IGt1Y2hpYXJhXCA7CivnpZ7npZ4gPiBrYW1pZ2FtaVwgOwor56Wd56W3ID4gc2h1a3V0b3VcIDsKK+elnuelkCA+IHNoaW4nJ3l1dVwgOwor56Wd56WtID4gc2h1a3VzYWlcIDsKK+WRiueZvSA+IGtva3VoYWt1XCA7Civpu4TnhrEgPiBrb3VuZXRzdVwgOwor5Y2K6ZW3ID4gaGFuJyduYWdhXCA7CivpiYTnk7YgPiB0ZXRzdWJpblwgOwor5rC06YOoID4gbWl6dW5vYnVcIDsKK+aCqueZliA+IHdhcnVndXNlXCA7Civpu5Lmva4gPiBrdXJvc2hpb1wgOwor6JOE6Zu7ID4gY2hpa3VkZW5cIDsKK+avjemzpSA+IGhhaGFkb3JpXCA7Civlj6PoiIwgPiBrb3V6ZXRzdVwgOwor56Wd56CyID4gc2h1a3Vob3VcIDsKK+avm+mrqiA+IG1vdWhhdHN1XCA7CivnpLznr4AgPiByZWlzZXRzdVwgOwor5Y+K6JC9ID4ga3l1dXJha3VcIDsKK+mKg+auuiA+IGp1dXNhdHN1XCA7CivmuIXlm70gPiBzaGlua29rdVwgOwor5oOF54axID4gam91bmV0c3VcIDsKK+epuuWSsyA+IGthcmF6ZWtpXCA7Civom67lipsgPiBiYW5yeW9rdVwgOwor5oWL5oWLID4gd2F6YXdhemFcIDsKK+mHkeiEiCA+IGtpbm15YWt1XCA7Civlj6rogIUgPiB0YWRhbW9ub1wgOwor5oeH5YiHID4ga29uc2V0c3VcIDsKK+emgeeJqSA+IGtpbm1vdHN1XCA7CivomZDmlL8gPiBneWFrdXNlaVwgOwor5ZCN562GID4gbWVpaGl0c3VcIDsKK+eiuuiovCA+IGtha3VzaG91XCA7CivnpL7nqLcgPiBzaGFzaG9rdVwgOwor5ZCM562GID4gZG91aGl0c3VcIDsKK+aApeiQvSA+IGt5dXVyYWt1XCA7CivmtLvmuowgPiBrYXBwYXRzdVwgOwor6YWN6YGUID4gaGFpdGF0c3VcIDsKK+mLuOWxkSA+IG5va29rdXp1XCA7Civph43ogbcgPiBqdXVzaG9rdVwgOwor5rWB5rWBID4gcnl1dXJ5dXVcIDsKK+a3gOW3nSA+IHlvZG9nYXdhXCA7Civmg5HmurogPiB3YWt1ZGVraVwgOwor5rWF5rKTID4gYXNhZ3V0c3VcIDsKK+WQjOeptCA+IGRvdWtldHN1XCA7Civmg6jmrrogPiB6YW5zYXRzdVwgOwor6YW36KmVID4ga29rdWh5b3VcIDsKK+mHo+ezuCA+IHRzdXJpaXRvXCA7CivmtJfnhoogPiBhcmFpZ3VtYVwgOwor5b+D6LqrID4gc2hpbnNoaW5cIDsKK+mHjee9sCA+IGp1dWJhdHN1XCA7CivmtYHmsLcgPiByeXV1aHlvdVwgOwor5rOo55uuID4gY2h1dW1va3VcIDsKK+WPjOiEmiA+IHNvdWt5YWt1XCA7CivmsZfooYAgPiBrYW5rZXRzdVwgOwor5rWq5puyID4gcm91a3lva3VcIDsKK+mHkee4gSA+IGtpbmJ1Y2hpXCA7CivljYrpgZMgPiBoYW5taWNoaVwgOwor5YyX6Zm4ID4gaG9rdXJpa3VcIDsKK+WOn+iWrCA+IGdlbicneWFrdVwgOwor5Y2z6Ku+ID4gc29rdWRha3VcIDsKK+a0u+auuiA+IGthc3NhdHN1XCA7CivllK/llK8gPiB0YWRhdGFkYVwgOwor5ZGo5rWBID4gc2h1dXJ5dXVcIDsKK+eosuWmuyA+IGluYWR6dW1hXCA7Civlj7PnrYYgPiB5dXVoaXRzdVwgOwor5ZSQ5aKoID4ga2FyYXN1bWlcIDsKK+WPsuethiA+IHNoaWhpdHN1XCA7Civph6Pnq78gPiB0c3VyaXphb1wgOwor6Yed566xID4gaGFyaWJha29cIDsKK+engeabsiA+IHNoaWt5b2t1XCA7Civlv4PosaEgPiBzaGluc2hvdVwgOwor5ZSx5ZCNID4gc2hvdW15b3VcIDsKK+WPqueuoSA+IGhpdGFzdXJhXCA7CivlkIznnYAgPiBkb3VjaGFrdVwgOwor5rSl5rSlID4gc2hpbnNoaW5cIDsKK+WNk+i2iiA+IHRha3VldHN1XCA7CivmgZDnq5wgPiBreW91cnl1dVwgOwor6by75bGOID4gaGFuYWt1c29cIDsKK+a4heWGvSA+IHNlaXJldHN1XCA7CivokpDpm4YgPiBzaHV1c2h1dVwgOwor5Y+W57WEID4gdG9yaWt1bWlcIDsKK+iSsumJviA+IGthbWFib2tvXCA7CivmtbfmipwgPiBrYWliYXRzdVwgOwor6YeR566xID4ga2FuZWJha29cIDsKK+iZmuW8jyA+IGt5b3NoaWtpXCA7Civmtojmga8gPiBzaG91c29rdVwgOwor5rCX6LOqID4ga2lzaGl0c3VcIDsKK+auu+mggiA+IGtha3VjaG91XCA7Civlj6PnrJsgPiBrdWNoaWJ1ZVwgOwor5ZCE55yBID4ga2FrdXNob3VcIDsKK+WOn+iMuCA+IGhhcmF0YWtlXCA7CivptJvptKYgPiBvc2hpZG9yaVwgOwor6Jas546JID4ga3VzdWRhbWFcIDsKK+iZkOW+hSA+IGd5YWt1dGFpXCA7Civpu5LmnqAgPiBrdXJvd2FrdVwgOwor6YW36JaEID4ga29rdWhha3VcIDsKK+W/g+iovCA+IHNoaW5zaG91XCA7Civph5HnqbQgPiBraW5rZXRzdVwgOwor5Y6f6ImyID4gZ2Vuc2hva3VcIDsKK+m7kuacjSA+IGt1cm9mdWt1XCA7Civli53ppqwgPiBrYWNoaXVtYVwgOwor5rex5Yi7ID4gc2hpbmtva3VcIDsKK+egtOmQmCA+IHdhcmVnYW5lXCA7Civlv4XopoEgPiBoaXRzdXlvdVwgOwor5re35YWlID4ga29uJydueXV1XCA7Civlv43ooZMgPiBuaW5qdXRzdVwgOwor5Y6z572wID4gZ2VuYmF0c3VcIDsKK+a1geacqCA+IHJ5dXVib2t1XCA7CivpiI3niakgPiBkb25idXRzdVwgOwor5Y+455u0ID4gc2hpY2hva3VcIDsKK+WNlOiqvyA+IGt5b3VjaG91XCA7Civlvozov7AgPiBrb3VqdXRzdVwgOwor56aB5qyyID4ga2luJyd5b2t1XCA7CivmuIfku7AgPiBrYXRzdWdvdVwgOwor56ep5bqPID4gY2hpdHN1am9cIDsKK+WNkuirliA+IHNvdHN1cm9uXCA7CivmsLTonZUgPiBzdWlzaG9rdVwgOwor5rWB5pqiID4gcnl1dWNob3VcIDsKK+awtOicnCA+IHN1aW1pdHN1XCA7Civnn7Ppq5ggPiBrb2t1ZGFrYVwgOwor5ryC44CFID4gaHlvdWh5b3VcIDsKK+W+tOiovCA+IGNob3VzaG91XCA7Civlkb3ml6UgPiBtZWluaWNoaVwgOwor5b6p6K6QID4gZnVrdXNodXVcIDsKK+W+qeiujiA+IGZ1a3VzaHV1XCA7CivlkIznjocgPiBkb3VyaXRzdVwgOwor5oOc5pilID4gc2VraXNodW5cIDsKK+ekvOeJqSA+IHJlaW1vdHN1XCA7Civnn63pq6ogPiB0YW5wYXRzdVwgOwor6Jma5a6fID4ga3lvaml0c3VcIDsKK+ayluepjSA+IGNodXVzZWtpXCA7Civok4TosqEgPiBjaGlrdXphaVwgOwor5Y+O56mrID4gc2h1dWtha3VcIDsKK+aBi+edgCA+IHJlbmNoYWt1XCA7Civlvqnoqr8gPiBmdWt1Y2hvdVwgOwor5oKp5q66ID4gbm91c2F0c3VcIDsKK+W+qeiqpiA+IGZ1a3VzaG91XCA7CivmsrvnlaUgPiBjaGlyeWFrdVwgOwor5ZCN54mpID4gbWVpYnV0c3VcIDsKK+WMl+mAsiA+IGhva3VzaGluXCA7Civpu4TmmI8gPiB0YXNvZ2FyZVwgOwor5Y+y55WlID4gc2hpcnlha3VcIDsKK+azpea/mCA+IG51a2FydW1pXCA7Civol6Tmo5ogPiBmdWppZGFuYVwgOwor5YyX6L6wID4gaG9rdXNoaW5cIDsKK+WOs+eymyA+IGdlbnNodWt1XCA7CivpiYTmo5IgPiB0ZXRzdWJvdVwgOwor6byT5a6kID4ga29zaGl0c3VcIDsKK+mzqem6piA+IGhhdG9tdWdpXCA7CivmsojnqY0gPiBjaGluc2VraVwgOwor6YmE5qKDID4ga2FuYXRla29cIDsKK+W8t+mchyA+IGt5b3VzaGluXCA7CivokL3prYQgPiByYWt1aGFrdVwgOwor6YeP55qEID4gcnlvdXRla2lcIDsKK+W/oOiJryA+IGNodXVyeW91XCA7Civol6nmnK0gPiBoYW5zYXRzdVwgOwor5Y+k55a1ID4gZnVydWtpenVcIDsKK+WLhemhmCA+IGNob2t1Z2FuXCA7CivphZLolLUgPiBzYWthZ3VyYVwgOwor5YuF6aGMID4gY2hva3VkYWlcIDsKK+W/oOiHoyA+IGNodXVzaGluXCA7CivlvLHpnIcgPiBqYWt1c2hpblwgOwor562J44CFID4gbmFkb25hZG9cIDsKK+emgeacrSA+IGtpbnNhdHN1XCA7CivnqK7liKUgPiBzaHViZXRzdVwgOwor6buS5oi/ID4ga3Vyb2J1c2FcIDsKK+aCpualvSA+IGV0c3VyYWt1XCA7CivmsLTojYkgPiBtaXp1a3VzYVwgOwor5oSb5a2QID4gaXRvc2hpZ29cIDsKK+mJhOadkCA+IHRldHN1emFpXCA7CivlvKbpn7MgPiB0c3VydW90b1wgOwor5ZSQ5YKYID4ga2FyYWthc2FcIDsKK+m6puadnyA+IG11Z2l0YWJhXCA7CivmsLTojI4gPiBtaXp1Z3VraVwgOwor5oaC5LqLID4gdXJlaWdvdG9cIDsKK+efremdtCA+IHRhbmd1dHN1XCA7CivmsLToi5QgPiBtaXp1Z29rZVwgOwor5rSL5qKoID4geW91bmFzaGlcIDsKK+aui+mbqiA+IHphbnNldHN1XCA7CivljprntJkgPiBhdHN1Z2FtaVwgOwor5rW05a6iID4geW9ra3lha3VcIDsKK+elnuapiyA+IHNoaW5reW91XCA7CivmsLToiLkgPiBtaXp1YnVuZVwgOwor5rOl5rK8ID4gZG9yb251bWFcIDsKK+WPjeeZuiA+IGhhbnBhdHN1XCA7CivnpZ7mp5ggPiBrYW1pc2FtYVwgOwor5Y+M55m6ID4gc291aGF0c3VcIDsKK+ejqOefsyA+IHRvZ2lpc2hpXCA7CivlvIHpq6ogPiBiZW5wYXRzdVwgOwor5rOl5rC0ID4gZG9yb21penVcIDsKK+azoeayqyA+IGhvdW1hdHN1XCA7CivnpZ7mpa0gPiBrYW1pd2F6YVwgOwor5rC06IW5ID4gbWl6dWJhcmFcIDsKK+WPguedgCA+IHNhbmNoYWt1XCA7Civolqzmr5IgPiB5YWt1ZG9rdVwgOwor56K657SEID4ga2FrdXlha3VcIDsKK+mFkuiJsiA+IHNodXNob2t1XCA7CivmsLTohIggPiBzdWlteWFrdVwgOwor56We5qOaID4ga2FtaWRhbmFcIDsKK+WPpOeJqSA+IGZ1cnVtb25vXCA7Civlv6vntbYgPiBrYWl6ZXRzdVwgOwor6YWN6ImyID4gaGFpc2hva3VcIDsKK+mHkeeJqSA+IGthbmFtb25vXCA7CivnpZ7moLwgPiBzaGlua2FrdVwgOwor56a/5bGxID4gaGFnZXlhbWFcIDsKK+WNgeiWrCA+IGRva3VkYW1pXCA7Civmsojnl5sgPiBjaGludHN1dVwgOwor5oCl55eFID4ga3l1dWJ5b3VcIDsKK+mHneeBuCA+IHNoaW5reXV1XCA7Civnn7Ppj4MgPiBzZWtpem9rdVwgOwor56Wt5pelID4gc2Fpaml0c3VcIDsKK+WNmOiJsiA+IHRhbnNob2t1XCA7Civlv4PohbkgPiBzaGlucHVrdVwgOwor5rG6552AID4ga2V0Y2hha3VcIDsKK+eojuWIpSA+IHplaWJldHN1XCA7Civpu5LluZUgPiBrdXJvbWFrdVwgOwor56Wd5p2vID4gc2h1a3VoYWlcIDsKK+elnuacqCA+IHNoaW5ib2t1XCA7Civmgqrmk6YgPiB3YXJ1enVyZVwgOwor6by75YWIID4gaGFuYXNha2lcIDsKK+m8u+WFgyA+IGhhbmFtb3RvXCA7CivnpZ7mnIggPiBrb3VkenVraVwgOwor5Y+O542yID4gc2h1dWtha3VcIDsKK+awkeiNiSA+IHRhbWlndXNhXCA7CivmtLvlvIEgPiBrYXRzdWJlblwgOwor56Gd6JasID4gc2hvdXlha3VcIDsKK+WSjOWupCA+IHdhc2hpdHN1XCA7Civph4jnhLYgPiBzaGFrdXplblwgOwor56ew5ZCNID4gc2hvdW15b3VcIDsKK+emgeaFviA+IGtpbicneW9rdVwgOwor5ZOy5Lq6ID4gdGV0c3VqaW5cIDsKK+emj+W+syA+IGZ1a3V0b2t1XCA7Civpu5LlsbEgPiBrdXJveWFtYVwgOwor5Yu/6KuWID4gbW9jaGlyb25cIDsKK+W8t+i/qyA+IGt5b3VoYWt1XCA7CivlvJTpkJggPiBjaG91c2hvdVwgOwor5oCq54mpID4ga2FpYnV0c3VcIDsKK+emj+W8lSA+IGZ1a3ViaWtpXCA7CivmsrzmsqIgPiBzaG91dGFrdVwgOwor6J2244CFID4gY2hvdWNob3VcIDsKK+iWhOawtyA+IGhha3VoeW91XCA7CivljZLogIUgPiBzb3RzdXNoYVwgOwor5rK55rGXID4gYWJ1cmFhc2VcIDsKK+WOn+eZuiA+IGdlbnBhdHN1XCA7CivlibLpq5ggPiB3YXJpZGFrYVwgOwor6JGX6L+wID4gY2hvanV0c3VcIDsKK+egsuihkyA+IGhvdWp1dHN1XCA7Civljprnmq4gPiBhdHN1a2F3YVwgOwor5YuF6YG4ID4gY2hva3VzZW5cIDsKK+axguepjSA+IGt5dXVzZWtpXCA7Civmr5vombEgPiBrZWppcmFtaVwgOwor6YWS57OfID4gc2FrZWthc3VcIDsKK+mFkueylSA+IHNha2VrYXN1XCA7CivliofpnIcgPiBnZWtpc2hpblwgOwor5byV6YeRID4gaGlraWdhbmVcIDsKK+WPpOaysyA+IGZ1cnVrYXdhXCA7Civlvqnnv5IgPiBmdWt1c2h1dVwgOwor5q+S6JuHID4gZG9rdWhlYmlcIDsKK+mJhOW6iiA+IGthbmF0b2tvXCA7CivlkI3mnIggPiBtZWlnZXRzdVwgOwor5ZCN5puyID4gbWVpa3lva3VcIDsKK+mJhOW4vSA+IHRldHN1Ym91XCA7CivlkIzmnIggPiBkb3VnZXRzdVwgOwor5oCl5r+AID4ga3l1dWdla2lcIDsKK+WNoOeulyA+IHVyYXlhc2FuXCA7CivljZTntIQgPiBreW91eWFrdVwgOwor5q+S6JasID4gZG9rdXlha3VcIDsKK+axuueEtiA+IGtldHN1emVuXCA7CivmrpbosqEgPiBzaG9rdXphaVwgOwor6YeN5q66ID4ganV1c2F0c3VcIDsKK+aDheWunyA+IGpvdWppdHN1XCA7Civnp4vlj6MgPiBha2lndWNoaVwgOwor6YeR5qygID4ga2lua2V0c3VcIDsKK+WNmOevgCA+IHRhbnNldHN1XCA7CivmtIvlvI8gPiB5b3VzaGlraVwgOwor5Y+W5rG6ID4gdG9yaWtpbWVcIDsKK+WQjOaXpSA+IGRvdWppdHN1XCA7Civnpa3lvI8gPiBzYWlzaGlraVwgOwor6JmQ5L2/ID4gZ3lha3VzaGlcIDsKK+aykOa1tCA+IG1va3V5b2t1XCA7CivlvpLogIUgPiB0YWRhbW9ub1wgOwor6YmE5bGxID4gdGV0c3V6YW5cIDsKK+WOn+eJqSA+IGdlbmJ1dHN1XCA7Civlipvph48gPiByaWtpcnlvdVwgOwor5rSe5a+fID4gZG91c2F0c3VcIDsKK+W8t+iqvyA+IGt5b3VjaG91XCA7CivpgZPpoIYgPiBtaWNoaWp1blwgOwor56We5b6zID4gc2hpbnRva3VcIDsKK+W/g+elniA+IHNoaW5zaGluXCA7CivpgYrpo58gPiB5dXVzaG9rdVwgOwor5b6p57GNID4gZnVrdXNla2lcIDsKK+asoOmjnyA+IGtlc3Nob2t1XCA7CivmgKXmtYEgPiBreXV1cnl1dVwgOwor5q+S6Iy4ID4gZG9rdXRha2VcIDsKK+W7tumHkSA+IG5vYmVnYW5lXCA7CivnooznoowgPiByb2t1cm9rdVwgOwor6Yqt5LqAID4gemVuaWdhbWVcIDsKK+atr+i7iiA+IGhhZ3VydW1hXCA7CivlvLfopbIgPiBreW91c2h1dVwgOwor5byV6LaKID4gaGlra29zaGlcIDsKK+WJg+mrqiA+IHRlaWhhdHN1XCA7Civlv73nhLYgPiBrb3RzdXplblwgOwor6YeR5qKDID4ga2FuYXRla29cIDsKK+WPpOagqiA+IGZ1cnVrYWJ1XCA7Civli4Xoq5ogPiBjaG9rdWpvdVwgOwor6I+c6aOfID4gc2Fpc2hva3VcIDsKK+aChOaChCA+IHN1Z29zdWdvXCA7CivnoaznrYYgPiBrb3VoaXRzdVwgOwor56We5beeID4gc2hpbnNodXVcIDsKK+W9qeiJsiA+IHNhaXNob2t1XCA7Civlv4XnnYAgPiBoaXRjaGFrdVwgOwor55+l6K2YID4gY2hpc2hpa2lcIDsKK+aIkeOAhSA+IHdhcmV3YXJlXCA7CivpgLLpp5AgPiBzaGluY2h1dVwgOwor5oSB5YK3ID4gc2h1dXNob3VcIDsKK+WPpOacjSA+IGZ1cnVmdWt1XCA7CivmsLTnk7YgPiBtaXp1Z2FtZVwgOwor5b+D55qEID4gc2hpbnRla2lcIDsKK+m7meWKhyA+IG1va3VnZWtpXCA7CivlkL7lrZAgPiB3YWdpbW9rb1wgOwor5rCX55+tID4ga2ltaWppa2FcIDsKK+iVg+auliA+IGhhbnNob2t1XCA7CivlvpfnrZYgPiB0b2t1c2FrdVwgOwor5YuF6KOBID4gY2hva3VzYWlcIDsKK+W+k+evgCA+IGp1dXNldHN1XCA7Civpganph48gPiB0ZWtpcnlvdVwgOwor5b+D55ebID4gc2hpbnRzdXVcIDsKK+WKh+mAmiA+IGdla2l0c3V1XCA7Civph5HmmJ8gPiBraW5ib3NoaVwgOwor5rGy5rGyID4ga3l1dWt5dXVcIDsKK+W8vuiWrCA+IGRhbicneWFrdVwgOwor5Y2Y55m6ID4gdGFucGF0c3VcIDsKK+W/heeUqCA+IGhpdHN1eW91XCA7CivljZLnm7QgPiBzb3RjaG9rdVwgOwor5rC0546JID4gbWl6dXRhbWFcIDsKK+elnuWtpiA+IHNoaW5nYWt1XCA7CivnpoHlnKcgPiBraW4nJ2F0c3VcIDsKK+engOS9nCA+IHNodXVzYWt1XCA7CivlvrPnm64gPiB0b2t1bW9rdVwgOwor6YeM5pa5ID4gc2F0b2thdGFcIDsKK+azleW+iyA+IGhvdXJpdHN1XCA7CivnpLzlvI8gPiByZWlzaGlraVwgOwor5Y+O5p2fID4gc2h1dXNva3VcIDsKK+mHiOaYjiA+IHNoYWt1bWVpXCA7CivmtLvli5UgPiBrYXRzdWRvdVwgOwor6buS5YaGID4ga3Vyb21hcnVcIDsKK+azleW8jyA+IGhvdXNoaWtpXCA7CivmsLTniakgPiBtaXp1bW9ub1wgOwor5b6X56WoID4gdG9rdWh5b3VcIDsKK+mBpemBpSA+IGhhcnViYXJ1XCA7CivmtL7lh7ogPiBoYXNodXRzdVwgOwor6YeI5pS+ID4gc2hha3Vob3VcIDsKK+a1geWFpSA+IHJ5dXVueXV1XCA7CivmrovomZAgPiB6YW5neWFrdVwgOwor6Jas5bGLID4ga3VzdXJpeWFcIDsKK+iWrOWxgCA+IHlha2t5b2t1XCA7Civnoaznm7QgPiBrb3VjaG9rdVwgOwor5ZCI5byPID4gZ291c2hpa2lcIDsKK+elnuWmmSA+IHNoaW5teW91XCA7CivpgaDpgZMgPiB0b29taWNoaVwgOwor5b2T6IG3ID4gdG91c2hva3VcIDsKK+W6lemdqSA+IHNva29nYXdhXCA7Civphpzmpa0gPiBzaHV1Z3lvdVwgOwor6Jas5a2mID4geWFrdWdha3VcIDsKK+ehneefsyA+IHNob3VzZWtpXCA7CivpgZnpgZkgPiBoYXJ1YmFydVwgOwor56aP5YqpID4gZnVrdXN1a2VcIDsKK+avm+ethiA+IG1vdWhpdHN1XCA7Civlv6vmtLsgPiBrYWlrYXRzdVwgOwor5Y675pyIID4ga3lvZ2V0c3VcIDsKK+ato+immiA+IHNob3VnYWt1XCA7CivnnYDpp4UgPiBjaGFrdWVraVwgOwor5Y+N5pKlID4gaGFucGF0c3VcIDsKK+W7uuiorSA+IGtlbnNldHN1XCA7CivmgZDmgqYgPiBreW91ZXRzdVwgOwor6JSt5qeYID4ga2FnZXNhbWFcIDsKK+elnuWfnyA+IHNoaW4nJ2lraVwgOwor5Y2D55SfID4gc2VuJyduYXJpXCA7CivoloTlvLEgPiBoYWt1amFrdVwgOwor5oGN5oOaID4ga291a290c3VcIDsKK+W/heeEtiA+IGhpdHN1emVuXCA7CivmgZDmgZAgPiBrb3dhZ293YVwgOwor5ZCM5bGAID4gZG91a3lva3VcIDsKK+m7kuS4uCA+IGt1cm9tYXJ1XCA7CivokrjnnYAgPiBqb3VjaGFrdVwgOwor5Y2K546JID4gaGFuZ3lva3VcIDsKK+mAhumiqCA+IGd5YWt1ZnV1XCA7CivliIbpqqggPiBidW5rb3RzdVwgOwor56We5Zu9ID4gc2hpbmtva3VcIDsKK+W5vOmhlCA+IG9zYW5hZ2FvXCA7CivlvLfohpwgPiBreW91bWFrdVwgOwor5ZCM5a6/ID4gZG91c2h1a3VcIDsKK+WQjeWunyA+IG1laWppdHN1XCA7CivmraLooYAgPiBzaGlrZXRzdVwgOwor6YCQ6Zu7ID4gY2hpa3VkZW5cIDsKK+WPjuaLviA+IHNodXVzaHV1XCA7Civli5XohIggPiBkb3VteWFrdVwgOwor552A6aCGID4gY2hha3VqdW5cIDsKK+iSuOeZuiA+IGpvdWhhdHN1XCA7CivpgIbpoIYgPiBneWFrdWp1blwgOwor5ZCI5a6/ID4gZ2Fzc2h1a3VcIDsKK+WKh+iplSA+IGdla2loeW91XCA7CivphbjmrKAgPiBzYW5rZXRzdVwgOwor6YmE5YmkID4gdGV0c3V6YWlcIDsKK+ehrOeOiSA+IGtvdWd5b2t1XCA7Civmsbrmlq0gPiBrZXRzdWRhblwgOwor5b6M55m6ID4ga291aGF0c3VcIDsKK+WJr+izniA+IGZ1a3VzaG91XCA7CivpiYTliIYgPiB0ZXRzdWJ1blwgOwor5rKz5bqVID4ga2F3YXpva29cIDsKK+WNkueEtiA+IHNvdHN1emVuXCA7CivnnYDpm7sgPiBjaGFrdWRlblwgOwor5bqD6ZeKID4ga291a2F0c3VcIDsKK+WPi+aIkCA+IHRvbW9uYXJpXCA7CivmsLTmtJ8gPiBtaXp1YmFuYVwgOwor5Y2z5rG6ID4gc29ra2V0c3VcIDsKK+W+jOeVpSA+IGtvdXJ5YWt1XCA7CivliY3ov7AgPiB6ZW5qdXRzdVwgOwor5Ymy6K2yID4ga2F0c3Vqb3VcIDsKK+WOn+absiA+IGdlbmt5b2t1XCA7CivliIfpoZggPiBzZXRzdWdhblwgOwor5Ye66aeVID4gc2h1dHN1Z2FcIDsKK+W+jOeUoyA+IG5vY2hpemFuXCA7CivokL3ojqsgPiByYWt1YmFrdVwgOwor6YGp6KmVID4gdGVraWh5b3VcIDsKK+W/meauuiA+IGJvdXNhdHN1XCA7Civok4vniakgPiBmdXRhbW9ub1wgOwor5rip44CFID4gbnVrdW51a3VcIDsKK+WHuummrCA+IHNodXRzdWJhXCA7CivpganoqLMgPiB0ZWtpeWFrdVwgOwor5rC05rKhID4gc3VpYm90c3VcIDsKK+W+oeeJqSA+IGd5b2J1dHN1XCA7CivlvZPnr4AgPiB0b3VzZXRzdVwgOwor5ZC45Y+jID4gc3Vpa3VjaGlcIDsKK+aCi+WXhyA+IHJpbnNob2t1XCA7CivlkLjlj44gPiBreXV1c2h1dVwgOwor5Y+k5bedID4gZnVydWthd2FcIDsKK+WJteiorSA+IHNvdXNldHN1XCA7Civph53lsbEgPiBoYXJpeWFtYVwgOwor5q6J6IG3ID4ganVuc2hva3VcIDsKK+WPluW8lSA+IHRvcmloaWtpXCA7CivmsqHlubQgPiBib3RzdW5lblwgOwor5Y+y5a6fID4gc2hpaml0c3VcIDsKK+iRieiEiCA+IHlvdW15YWt1XCA7Civlj7Dlr4YgPiB0YWltaXRzdVwgOwor6YGU6K2YID4gdGFzc2hpa2lcIDsKK+WPjuW+lyA+IHNodXV0b2t1XCA7CivpuqbkvZwgPiBtdWdpc2FrdVwgOwor5oCn5oKqID4gc2hvdXdhcnVcIDsKK+WNkea5vyA+IGhpc2hpdHN1XCA7CivlkJ3ll4cgPiByaW5zaG9rdVwgOwor5b6T54mpID4ganV1YnV0c3VcIDsKK+W9ueeVnCA+IGVraWNoaWt1XCA7CivpiYTkurogPiB0ZXRzdWppblwgOwor5q276ISIID4gc2hpbXlha3VcIDsKK+WHoemqqCA+IGJvbmtvdHN1XCA7Civph5HlsZEgPiBrYW5ha3V6dVwgOwor5b+F5q66ID4gaGlzc2F0c3VcIDsKK+WPpOWvuiA+IGZ1cnVkZXJhXCA7CivmtJvkuK0gPiByYWt1Y2h1dVwgOwor5Ye46Z2iID4gdG90c3VtZW5cIDsKK+WQuOWFpSA+IGt5dXVueXV1XCA7CivliLDpgZQgPiB0b3V0YXRzdVwgOwor5Y+j5a6fID4ga291aml0c3VcIDsKK+WKh+iWrCA+IGdla2l5YWt1XCA7Civnn63nuK4gPiB0YW5zaHVrdVwgOwor5Ya36bqmID4gaGl5YW11Z2lcIDsKK+elneWFuCA+IHNodWt1dGVuXCA7Civlh7rpmbMgPiBzaHV0Y2hpblwgOwor5q2j6ImyID4gc2Vpc2hva3VcIDsKK+iRm+exoCA+IHRzdWR6dXJhXCA7CivlvrPmsqIgPiB0b2t1dGFrdVwgOwor6YeI5bCKID4gc2hha3Vzb25cIDsKK+W5s+mNiyA+IGhpcmFuYWJlXCA7CivphZLmqL0gPiBzYWthZGFydVwgOwor5byB6IiMID4gYmVuemV0c3VcIDsKK+i/vemMsiA+IHRzdWlyb2t1XCA7CivmgYvlprsgPiBrb2lkenVtYVwgOwor5oCW5oCWID4ga293YWdvd2FcIDsKK+W+qea0uyA+IGZ1a2thdHN1XCA7CivmsLfmn7EgPiBoeW91Y2h1dVwgOwor5oGr5ZadID4gZG91a2F0c3VcIDsKK+mBqeiWrCA+IHRla2l5YWt1XCA7CivliaPooZMgPiBrZW5qdXRzdVwgOwor5Y6z5b6LID4gZ2Vucml0c3VcIDsKK+WKq+e9sCA+IGdvdWJhdHN1XCA7CivlvavnkKIgPiBjaG91dGFrdVwgOwor5YyW54mpID4gYmFrZW1vbm9cIDsKK+iWquWJsiA+IG1ha2l3YXJpXCA7CivlvZPnm7QgPiB0b3VjaG9rdVwgOwor5YmN6KqsID4gemVuc2V0c3VcIDsKK+WJr+iZuSA+IGZ1a3VuaWppXCA7CivljJfniIYgPiBob2t1YmFrdVwgOwor55+i57WjID4geWFnYXN1cmlcIDsKK+iOq+mAhiA+IGJha3VnZWtpXCA7CivluLjpo58gPiBqb3VzaG9rdVwgOwor6bCQ6a6rID4gd2FuaXphbWVcIDsKK+azqOWFpSA+IGNodXVueXV1XCA7CivmgKXls7sgPiBreXV1c2h1blwgOwor6bOp6IO4ID4gaGF0b211bmVcIDsKK+WLheetlCA+IGNob2t1dG91XCA7CivmsLfmmbYgPiBoeW91c2hvdVwgOwor5bqX6LODID4gdGFuYWNoaW5cIDsKK+i+rumrqiA+IGJlbnBhdHN1XCA7CivljZfmpbUgPiBuYW5reW9rdVwgOwor5b+D5qC5ID4ga29rb3JvbmVcIDsKK+WGrOmzpSA+IGZ1eXVkb3JpXCA7CivnoLTniakgPiB3YXJlbW9ub1wgOwor5ZSv44CFID4gdGFkYXRhZGFcIDsKK+WNlOalrSA+IGt5b3VneW91XCA7Civlh53pm4YgPiBneW91c2h1dVwgOwor5ZCE5ZCEID4gc29yZXpvcmVcIDsKK+mAgemBlCA+IHNvdXRhdHN1XCA7CivlvavniakgPiBob3JpbW9ub1wgOwor5bqV6LGGID4gc29rb21hbWVcIDsKK+mzpeiCjCA+IHRvcmloYWRhXCA7Civli77njokgPiBtYWdhdGFtYVwgOwor6bOl6IKJID4gdG9yaW5pa3VcIDsKK+WKh+iHrSA+IGdla2lzaHV1XCA7Civmr43niakgPiBoYWhhbW9ub1wgOwor5oGQ5ZqHID4ga3lvdWtha3VcIDsKK+a3seOAhSA+IGZ1a2FidWthXCA7CivnnJ/pja4gPiBzaGluY2h1dVwgOwor5oCg5bGIID4gdGFpa3V0c3VcIDsKK+ekvuWFsSA+IHNoYWt5b3VcIDsKK+W/g+adkCA+IHNoaW56YWlcIDsKK+i/kemWkyA+IGNoaWthbWFcIDsKK+WOu+WwsSA+IGt5b3NodXVcIDsKK+WJjeihqCA+IHplbnB5b3VcIDsKK+WQm+WBtCA+IGt1bnNva3VcIDsKK+i/vemAgSA+IHRzdWlzb3VcIDsKK+WNoOaciSA+IHNlbicneXV1XCA7Civlv4zml6UgPiBraW5pY2hpXCA7CivljaDmm7ggPiB1cmFidW1pXCA7CivluLPpnaIgPiBjaG91bWVuXCA7Civnm7Tpn7MgPiBjaG9rdW9uXCA7Civlip/nuL4gPiBrb3VzZWtpXCA7CivmsJHmpa0gPiBtaW5neW91XCA7CivoloTlkb0gPiBoYWt1bWVpXCA7CivluK3poIYgPiBzZWtpanVuXCA7Civnm4rps6UgPiBla2ljaG91XCA7CivmspblpKkgPiBjaHV1dGVuXCA7Civlv5zmjqUgPiBvdXNldHN1XCA7CivnnqDoi6UgPiBkb3VqYWt1XCA7CivlvozmtYEgPiBrb3VyeXV1XCA7Civlj6zllpogPiBzaG91a2FuXCA7CivlvJXnrpcgPiBoaWtpemFuXCA7CivljZzmm7ggPiB1cmFidW1pXCA7CivluK/pnakgPiBvYmlrYXdhXCA7Civlh7rph5EgPiBzaHVra2luXCA7Civlj6vllpogPiBreW91a2FuXCA7CivlkInlh7YgPiBraWtreW91XCA7Civph43lnKcgPiBqdXVhdHN1XCA7Civov7Dpg6ggPiBqdXRzdWJ1XCA7Civpt7LluqcgPiB3YXNoaXphXCA7CivlvJPnrq0gPiBreXV1c2VuXCA7CivliIbpgLIgPiBidW5zaGluXCA7Civoj6nolqkgPiBib3NhdHN1XCA7CivliIbpgJ8gPiBmdW5zb2t1XCA7CivmsLTmkoMgPiBzdWlnZWtpXCA7CivmsqLlnLAgPiBzYXdhY2hpXCA7CivliIfov6sgPiBzZXBwYWt1XCA7CivljZfmnJ0gPiBuYW5jaG91XCA7Civlv7Xlv7UgPiBuZW4nJ25lblwgOwor77yu6Z+/ID4gZW51a3lvdVwgOwor5q2j57aaID4gc2Vpem9rdVwgOwor6JC956ysID4gcmFrdWRhaVwgOwor6Yej5ZCIID4gdHN1cmlhaVwgOwor5q2j57W5ID4gc2hvdWtlblwgOwor5Y6z5a65ID4gZ2VuJyd5b3VcIDsKK+mAsuihjCA+IHNoaW5rb3VcIDsKK+WQieWFhiA+IGtpdGNob3VcIDsKK+WLleeahCA+IGRvdXRla2lcIDsKK+WQjOWDmiA+IGRvdXJ5b3VcIDsKK+ato+e1jCA+IHNlaWt5b3VcIDsKK+WMl+a6gCA+IGhva3VtYW5cIDsKK+WNiuagvCA+IGhhbmtha3VcIDsKK+mAmuisgCA+IHRzdXVib3VcIDsKK+WPrOWRvSA+IHNob3VtZWlcIDsKK+mAmuirliA+IHRzdXVyb25cIDsKK+W6j+iqrCA+IGpvc2V0c3VcIDsKK+azpeS4rSA+IGRlaWNodXVcIDsKK+W6leinkiA+IHRlaWtha3VcIDsKK+WJsuiIiCA+IHdhcmlrb3VcIDsKK+W+s+acmyA+IHRva3Vib3VcIDsKK+aApeWkiSA+IGt5dXVoZW5cIDsKK+WPo+WUhyA+IGtvdXNoaW5cIDsKK+mzpee2siA+IHRvcmlhbWlcIDsKK+aBreWAuSA+IGt5b3VrZW5cIDsKK+WPq+WPtyA+IGt5b3Vnb3VcIDsKK+WIhui6qyA+IGJ1bnNoaW5cIDsKK+WIuuihnSA+IHNoaXNob3VcIDsKK+W5veiwtyA+IHl1dWtva3VcIDsKK+mEmeatjCA+IGhpbmF1dGFcIDsKK+auteeJqSA+IGRhbm1vbm9cIDsKK+WQjOS/oSA+IGRvdXNoaW5cIDsKK+efs+ebpCA+IHNla2liYW5cIDsKK+atu+elqCA+IHNoaWh5b3VcIDsKK+WJsuiFuSA+IGthcHB1a3VcIDsKK+W7kOiIjiA+IGt5dXVzaGFcIDsKK+mAmuioiCA+IHRzdXVrZWlcIDsKK+WQjOS+tiA+IGRvdXJ5b3VcIDsKK+WPsOWMlyA+IHRhaWhva3VcIDsKK+WLpOeOiyA+IGtpbicnbm91XCA7Civlu4/oiI4gPiBreXV1c2hhXCA7Civlv6vlvqkgPiBrYWlmdWt1XCA7CivmsJHmnIkgPiBtaW4nJ3l1dVwgOwor5q2056iLID4gcmVraXRlaVwgOwor56C05ruFID4gaGFtZXRzdVwgOwor5oCl5aKXID4ga3l1dXpvdVwgOwor6YCa6KejID4gdHN1dWthaVwgOwor5Yik6KqtID4gaGFuZG9rdVwgOwor6YeN5ZSxID4ganV1c2hvdVwgOwor5ZCN5L2cID4gbWVpc2FrdVwgOwor6YCa6KazID4gdHN1dWthblwgOwor5byU56WtID4gY2hvdXNhaVwgOwor5ZCE5YGcID4ga2FrdXRlaVwgOwor5oGp5YCfID4gb25zaGFrdVwgOwor5Y+y5YqHID4gc2hpZ2VraVwgOwor5YyX5rSLID4gaG9rdXlvdVwgOwor6YCa6KanID4gdHN1dXJhblwgOwor6YGp6ICFID4gdGVraXNoYVwgOwor5Ymv6IWOID4gZnVrdWppblwgOwor56S+5LitID4gc2hhY2h1dVwgOwor6L+96LSIID4gdHN1aXpvdVwgOwor5oCl5aCxID4ga3l1dWhvdVwgOwor5bir6ZW3ID4gc2hpY2hvdVwgOwor5YiA6LqrID4gdG91c2hpblwgOwor5Yqg562GID4ga2FoaXRzdVwgOwor5Y675aOwID4ga3lvc2hvdVwgOwor5ZCN5LujID4gbXlvdWRhaVwgOwor5Yyh5q2jID4ga3lvdXNlaVwgOwor5ZCI5L2cID4gZ2Fzc2FrdVwgOwor5b6T5qWtID4ganV1Z3lvdVwgOwor5Y2K5pmCID4gaGFudG9raVwgOwor6JC956OQID4gcmFrdWJhblwgOwor5Y6f5a+pID4gZ2Vuc2hpblwgOwor5q+S5rayID4gZG9rdWVraVwgOwor5b285rCPID4ga2FyZXNoaVwgOwor5bid6Zm1ID4gdGVpcnlvdVwgOwor5b6z5pS/ID4gdG9rdXNlaVwgOwor5rCR5pePID4gbWluem9rdVwgOwor6YGg6ICzID4gdG9vbWltaVwgOwor5ZCN5Li7ID4gbmFudXNoaVwgOwor5oCl5Z2CID4ga3l1dWhhblwgOwor5Yid6Ki6ID4gc2hvc2hpblwgOwor5bqD6KeSID4ga291a2FrdVwgOwor5ZCJ5LqLID4ga2l0c3VqaVwgOwor5rCP5pePID4gc2hpem9rdVwgOwor5byU56CyID4gY2hvdWhvdVwgOwor5bu6562WID4ga2Vuc2FrdVwgOwor5YmN6JGJID4gemVuJyd5b3VcIDsKK+mAmuihjCA+IHRzdXVrb3VcIDsKK+WQjOS4gCA+IGRvdWl0c3VcIDsKK+W5vuiosSA+IGlrdWJha3VcIDsKK+mHjeWOmiA+IGNob3Vrb3VcIDsKK+iNt+mAgSA+IG5pb2t1cmlcIDsKK+W+qeaXpyA+IGZ1a2t5dXVcIDsKK+ayoeWPjiA+IGJvc3NodXVcIDsKK+W7u+eroCA+IGthaXNob3VcIDsKK+WNmuaNnCA+IGhha3Vzb3VcIDsKK+efpeeahCA+IGNoaXRla2lcIDsKK+WQhOS6uiA+IGtha3VqaW5cIDsKK+aui+eVmSA+IHphbnJ5dXVcIDsKK+W5lei7jSA+IGJha3VndW5cIDsKK+W7uueriyA+IGtvbnJ5dXVcIDsKK+ayg+WcsCA+IHlva3VjaGlcIDsKK+mBiuiIiCA+IHl1dWt5b3VcIDsKK+W+qeaWhyA+IGZ1a3VidW5cIDsKK+WQiOS4gCA+IGdvdWl0c3VcIDsKK+WIpeihqCA+IGJlcHB5b3VcIDsKK+WJr+e9siA+IGZ1a3VzaG9cIDsKK+WPl+WPliA+IHVrZXRvcmlcIDsKK+W/g+aIvyA+IHNoaW5ib3VcIDsKK+WPpOWIuSA+IGtvc2F0c3VcIDsKK+WKtOebuCA+IHJvdXNob3VcIDsKK+mDrea4hSA+IGtha3VzZWlcIDsKK+WHuui1sCA+IHNodXNzb3VcIDsKK+W5u+immiA+IGdlbmtha3VcIDsKK+WJm+iFuSA+IGdvdWZ1a3VcIDsKK+atr+efsyA+IHNoaXNla2lcIDsKK+aBpeS4mCA+IGNoaWt5dXVcIDsKK+iQveebpCA+IHJha3ViYW5cIDsKK+WFqOm6piA+IHplbmJha3VcIDsKK+WNmuaJkyA+IGJha3VjaGlcIDsKK+i/veiqjSA+IHRzdWluaW5cIDsKK+mHj+WIkSA+IHJ5b3VrZWlcIDsKK+eiuuWumiA+IGtha3V0ZWlcIDsKK+mHjeWIuyA+IGp1dWtva3VcIDsKK+eiuuWuiCA+IGtha3VzaHVcIDsKK+i/veippiA+IHRzdWlzaGlcIDsKK+WHuuizhyA+IHNodXNzaGlcIDsKK+ecn+i0iyA+IHNoaW5nYW5cIDsKK+awl+aMgSA+IGtpbW9jaGlcIDsKK+W5s+inkiA+IGhlaWtha3VcIDsKK+ato+eiuiA+IHNlaWtha3VcIDsKK+i/veiojiA+IHRzdWl0b3VcIDsKK+avrOaglyA+IGlnYWd1cmlcIDsKK+atu+eXhSA+IHNoaWJ5b3VcIDsKK+WFsemztCA+IGt5b3VtZWlcIDsKK+WPjeWPjiA+IHRhbnNodXVcIDsKK+W/luW6piA+IHNvbnRha3VcIDsKK+W4r+mHkSA+IG9iaWdhbmVcIDsKK+iNmOmHjSA+IHNvdWNob3VcIDsKK+W/g+aDhSA+IHNoaW5qb3VcIDsKK+WMueaVtSA+IGhpdHRla2lcIDsKK+mDqOa0uyA+IGJ1a2F0c3VcIDsKK+mHjuWFjiA+IG5vdXNhZ2lcIDsKK+awuOW5tCA+IG5hZ2FuZW5cIDsKK+mAhuihjCA+IGd5YWtrb3VcIDsKK+i/hemAnyA+IGppbnNva3VcIDsKK+W+jOabuCA+IGF0b2dha2lcIDsKK+WJjeiGiiA+IHplbnBha3VcIDsKK+mHkeWBtCA+IGtpbmdhd2FcIDsKK+W/g+aApyA+IHNoaW5zZWlcIDsKK+efs+eJiCA+IHNla2liYW5cIDsKK+i/sOiqniA+IGp1dHN1Z29cIDsKK+eip+WxsSA+IGhla2l6YW5cIDsKK+ayiOWQnyA+IGNoaW5naW5cIDsKK+mHjeWCtyA+IGp1dXNob3VcIDsKK+WJjeiEsyA+IHplbicnbm91XCA7CivlubTooaggPiBuZW5weW91XCA7CivliY3ohJogPiBtYWVhc2hpXCA7CivmrY7np7AgPiB0YW5zaG91XCA7Civlh7rorJsgPiBzaHVra291XCA7CivliLrojYkgPiBpcmFrdXNhXCA7CivljYPmjK8gPiBzZW5idXJpXCA7CivpgLLoiKogPiBzaGlua291XCA7Civlv4PlvpcgPiBrb2tvcm9lXCA7CivmgZLkuYUgPiBrb3VreXV1XCA7Civlj6rku4ogPiB0YWRhaW1hXCA7Civlj43liYcgPiBoYW5zb2t1XCA7Civlj6PkvpsgPiBrb3VreW91XCA7CivlvLfngasgPiB0c3V5b2JpXCA7CivmgYvku7IgPiBrb2luYWthXCA7CivliY3ogqIgPiBtYWVhc2hpXCA7CivmrbvnkIMgPiBzaGlreXV1XCA7CivliqnnlaogPiBzdWtlYmFuXCA7Civlvozml6UgPiBnb25pY2hpXCA7CivphY3lvbkgPiBoYWl5YWt1XCA7CivmgYvkurogPiBrb2liaXRvXCA7CivluILplbcgPiBzaGljaG91XCA7CivmgKrlipsgPiBrYWlyaWtpXCA7CivlvoHmnI0gPiBzZWlmdWt1XCA7Civmr43mp5ggPiBrYWFzYW1hXCA7CivnnJ/oq6YgPiBzaGludGVpXCA7CivlvLHngrkgPiBqYWt1dGVuXCA7CivpgKPojZggPiByZW5jaGFuXCA7CivlhobpoZQgPiBtYXJ1Z2FvXCA7Civnm7LpgLIgPiBtb3VzaGluXCA7Civlv6DlrZ0gPiBjaHV1a291XCA7Civps6XnnrAgPiBjaG91a2FuXCA7CivlubzomasgPiB5b3VjaHV1XCA7CivokL3nkIMgPiByYWtreXV1XCA7Civlt6jpoY0gPiBreW9nYWt1XCA7CivlibLnrpcgPiB3YXJpemFuXCA7Civlj43lhbEgPiBoYW5reW91XCA7CivmrovnhacgPiB6YW5zaG91XCA7CivljJfmnbEgPiBob2t1dG91XCA7Civlv4PlupUgPiBzaGludGVpXCA7CivpgLjogZ4gPiBpdHN1YnVuXCA7CivphZLluK0gPiBzaHVzZWtpXCA7Civnn7Pngq0gPiBzZWtpdGFuXCA7CivmsLflsbEgPiBoeW91emFuXCA7CivlvJXnjocgPiBpbnNvdHN1XCA7Civlu7bnnYAgPiBlbmNoYWt1XCA7CivmsLflsYsgPiBrb29yaXlhXCA7CivljbHlsYAgPiBraWt5b2t1XCA7Civlh7jop5IgPiB0b2trYWt1XCA7Civnm67pgIEgPiBtb2t1c291XCA7CivlvrPmgKcgPiB0b2t1c2VpXCA7Civnm7TovLggPiBjaG9rdXl1XCA7CivnoJXmsLcgPiBzYWloeW91XCA7CivnnJ/oqIAgPiBzaGluZ29uXCA7Civlu7rnmb0gPiBrZW5wYWt1XCA7CivmrabnlaUgPiBidXJ5YWt1XCA7CivmgKfliIYgPiBzaG91YnVuXCA7CivlhpfplbcgPiBqb3VjaG91XCA7CivnorrloLEgPiBrYWt1aG91XCA7CivluqfogbcgPiB6YXNob2t1XCA7Civlj6PkuK0gPiBrb3VjaHV1XCA7CivnnJ7oqIAgPiBzaGluZ29uXCA7CivlhrfphbcgPiByZWlrb2t1XCA7CivmrrTmrrogPiBvdXNhdHN1XCA7CivlhaXprYIgPiBueXV1a29uXCA7Civlv5flraYgPiBzaGlnYWt1XCA7CivlvoDml6UgPiBvdWppdHN1XCA7CivmsYLlqZogPiBreXV1a29uXCA7Civlj43lgbQgPiBoYW5zb2t1XCA7Civlu7bnmbogPiBlbnBhdHN1XCA7CivnnJ/opb8gPiBtYW5pc2hpXCA7CivlvJPnirYgPiBreXV1am91XCA7CivphpzlkI0gPiBzaHV1bWVpXCA7CivmsJHlv4MgPiBtaW5zaGluXCA7CivmqKnpq5ggPiBrZW5kYWthXCA7CivmsJHlvrMgPiBtaW50b2t1XCA7Civlj43kv5cgPiBoYW56b2t1XCA7Civmsbrli50gPiBrZXNzaG91XCA7CivlhoXpmbggPiBuYWlyaWt1XCA7Civnm7Tot68gPiBjaG9rdXJvXCA7CivpgannorogPiB0ZWtrYWt1XCA7CivojLbph5wgPiBjaGFnYW1hXCA7CivpgJroiKogPiB0c3V1a291XCA7CivovpvphbggPiBzaGluc2FuXCA7CivluIzph4ggPiBraXNoYWt1XCA7Civlh7booYwgPiBreW91a291XCA7Civmr47mnJ0gPiBtYWljaG91XCA7Civnmb3pr6ggPiBoYWt1Z2VpXCA7CivljYrlvJMgPiBoYW5reXV1XCA7CivliJ3ojbcgPiBoYXRzdW5pXCA7CivljJfmlK8gPiBob2t1c2hpXCA7CivlhoXplrIgPiBuYWlldHN1XCA7CivlhoXplqMgPiBuYWlrYWt1XCA7CivphY3lsZ4gPiBoYWl6b2t1XCA7CivolLXljL8gPiB6b3V0b2t1XCA7CivluKvotbAgPiBzaGl3YXN1XCA7CivmsojlgKsgPiBjaGlucmluXCA7CivlvbDmmI4gPiBzaG91bWVpXCA7CivphZLlrqIgPiBzaHVrYWt1XCA7Civmr5Tml6UgPiBoaW5pY2hpXCA7Civljp/lkYogPiBnZW5rb2t1XCA7Civnmb3prZogPiBzaGlyYXVvXCA7CivljYrlubQgPiBoYW4nJ25lblwgOwor5YmN57SNID4gemVuJydub3VcIDsKK+mBi+ethiA+IHVucGl0c3VcIDsKK+m3ueWMoCA+IHRha2Fqb3VcIDsKK+attOeEtiA+IHJla2l6ZW5cIDsKK+WFrOmgmCA+IGtvdXJ5b3VcIDsKK+i/keimqiA+IGtpbnNoaW5cIDsKK+aApeS9vyA+IGt5dXVzaGlcIDsKK+WJveeblyA+IGh5b3V0b3VcIDsKK+W5vOiLpSA+IHlvdWpha3VcIDsKK+WFqOmhjSA+IHplbmdha3VcIDsKK+aomemrmCA+IGh5b3Vrb3VcIDsKK+WNs+WjsiA+IHNva3ViYWlcIDsKK+WNg+W6piA+IGNoaXRhYmlcIDsKK+W8t+awlyA+IHRzdXlva2lcIDsKK+W6geiIjiA+IGNob3VzaGFcIDsKK+WKh+eVjCA+IGdla2lrYWlcIDsKK+WNg+W5tCA+IGNoaXRvc2VcIDsKK+WKh+eUmiA+IGdla2lqaW5cIDsKK+aoqumhlCA+IHlva29nYW9cIDsKK+WLp+alrSA+IGthbmd5b3VcIDsKK+WHneimliA+IGd5b3VzaGlcIDsKK+WIuue5jSA+IHNoaXNodXVcIDsKK+eeoOebriA+IGRvdW1va3VcIDsKK+WGjemMsiA+IHNhaXJva3VcIDsKK+ecn+iZqyA+IG1hbXVzaGlcIDsKK+mzpeeNoyA+IGNob3VqdXVcIDsKK+W+ueWutSA+IHRlc3Nob3VcIDsKK+WNkeWxiCA+IGhpa3V0c3VcIDsKK+WKoOeGsSA+IGthbmV0c3VcIDsKK+WGjemLsyA+IHNhaWNodXVcIDsKK+awt+WhiiA+IGh5b3VrYWlcIDsKK+WNkuWvvyA+IHNvdHN1anVcIDsKK+W8t+assiA+IGdvdXlva3VcIDsKK+WNlOWumiA+IGt5b3V0ZWlcIDsKK+WFtemVtyA+IGhlaWNob3VcIDsKK+mFjOWppiA+IHNoYWt1ZnVcIDsKK+egsuaSgyA+IGhvdWdla2lcIDsKK+awl+WvhiA+IGtpbWl0c3VcIDsKK+mBuOeQgyA+IHNlbmt5dXVcIDsKK+WOn+WJhyA+IGdlbnNva3VcIDsKK+WFsemXmCA+IGt5b3V0b3VcIDsKK+ebtOirqyA+IGNob2trYW5cIDsKK+eZuummrCA+IGhhdHN1YmFcIDsKK+WIuue1oSA+IHNoaXJha3VcIDsKK+WFqOmbhiA+IHplbnNodXVcIDsKK+WNk+WtkCA+IHRlaWJ1cnVcIDsKK+ebtOirjCA+IGNob2trYW5cIDsKK+ebtOirhyA+IGppa2lkYW5cIDsKK+WFpembuyA+IG55dXVkZW5cIDsKK+WJjeeroCA+IHplbnNob3VcIDsKK+efs+autSA+IGlzaGlkYW5cIDsKK+atpueDiCA+IGJ1cmV0c3VcIDsKK+ebtOipsSA+IGNob2t1d2FcIDsKK+ejgeWKmyA+IGppcnlva3VcIDsKK+awtOWeoiA+IG1penVha2FcIDsKK+W5s+iHvCA+IGhpcmF1c3VcIDsKK+W9ueaJgCA+IHlha3VzaG9cIDsKK+mBqeeUqCA+IHRla2l5b3VcIDsKK+mAo+e2miA+IHJlbnpva3VcIDsKK+W8t+aoqSA+IGt5b3VrZW5cIDsKK+WNteWaoiA+IHJhbicnbm91XCA7CivmsI/lr7ogPiB1amlkZXJhXCA7CivlhaXpmoogPiBueXV1dGFpXCA7Civlv4PlpJYgPiBzaGluZ2FpXCA7CivljYrlrrUgPiBoYW5zaG91XCA7CivpgKPntaEgPiByZW5yYWt1XCA7CivliLbntIQgPiBzZWl5YWt1XCA7CivnnpHnm64gPiBtZWltb2t1XCA7CivlipvngrkgPiByaWtpdGVuXCA7CivmsLTlnKcgPiBzdWlhdHN1XCA7CivlubvogbQgPiBnZW5jaG91XCA7Civnn6/mraMgPiBreW91c2VpXCA7CivmqJnpoYwgPiBoeW91ZGFpXCA7CivmsLflmqIgPiBoeW91bm91XCA7Civlv7XlipsgPiBuZW5yaWtpXCA7Civnm7ToprMgPiBjaG9ra2FuXCA7CivljZrlpZUgPiBiYWt1Y2hpXCA7Civnm7TopqcgPiBqaWtpcmFuXCA7CivljYPlsIsgPiBjaGloaXJvXCA7CivlhajplbcgPiB6ZW5jaG91XCA7CivljZrlpKcgPiBoYWt1ZGFpXCA7CivokL3mtpkgPiByYWt1cnVpXCA7CivlhoXph5EgPiB1Y2hpa2luXCA7CivnmbvpoIIgPiB0b3VjaG91XCA7Civnm5fos4ogPiB0b3V6b2t1XCA7CivljZrlo6sgPiBoYWt1c2hpXCA7CivnmofpmbUgPiBrb3VyeW91XCA7Civnmbrpn7MgPiBoYXRzdW9uXCA7CivlhaXploAgPiBueXV1bW9uXCA7Civmr5LmiYsgPiBkb2t1c2h1XCA7Civnn7PmqYsgPiBzZWtreW91XCA7CivnnJ/oj4wgPiBzaGlua2luXCA7Civnmb3pnaIgPiBoYWt1bWVuXCA7CivlvrnlpJwgPiB0ZXRzdXlhXCA7Civnn7Pmp6ggPiBzZWtrYWt1XCA7Civlv6vli50gPiBrYWlzaG91XCA7CivliIfohbkgPiBzZXBwdWt1XCA7Civlv6DlkJsgPiBjaHV1a3VuXCA7CivolLXkurogPiBrdXJvdWRvXCA7Civlh7bojZIgPiBreW91a291XCA7CivlubTogIEgPiB0b3NoaW9pXCA7Civoi5TpoZ4gPiBrb2tlcnVpXCA7CivnmbrpnLIgPiBoYXRzdXJvXCA7CivlhYfpoZ4gPiBreW91cnVpXCA7CivpgJTntbYgPiB0b3pldHN1XCA7Civnm7TooYwgPiBjaG9ra291XCA7CivlipvmvJUgPiByaWtpc291XCA7CivljaDlnLAgPiBzaGltZWppXCA7Civlv4PlnLAgPiBrb2tvY2hpXCA7CivlhYjpoIMgPiBzZW5rb3JvXCA7Civmrbvmr5IgPiBzaGlkb2t1XCA7Civlupznq4sgPiBmdXJpdHN1XCA7CivluKvooaggPiBzaGloeW91XCA7Civljp/kvZwgPiBnZW5zYWt1XCA7CivljbDlk7IgPiBpbnRldHN1XCA7CivlhrfoqZUgPiByZWloeW91XCA7Civlv4Plm6AgPiBzaGluJydpblwgOwor5Ye66IiqID4gc2h1a2tvdVwgOwor6YCf566XID4gc29rdXNhblwgOwor5Y6E5YmNID4geWFrdW1hZVwgOwor5q6L5qWtID4gemFuZ3lvdVwgOwor6I2S6KGMID4gYXJhZ3lvdVwgOwor5YaF6YCaID4gbmFpdHN1dVwgOwor5Yud5pmvID4gc2hvdWtlaVwgOwor556t54S2ID4gcnlvdXplblwgOwor5b6T5bGeID4ganV1em9rdVwgOwor5bym5qW9ID4gZ2VuZ2FrdVwgOwor5YqD54S2ID4ga2FrdXplblwgOwor5Y2z5ZCfID4gc29rdWdpblwgOwor5Y2D5aerID4gc2VuaGltZVwgOwor5b+g5YukID4gY2h1dWtpblwgOwor5b+g5YuHID4gY2h1dXl1dVwgOwor5Ya36KaaID4gcmVpa2FrdVwgOwor6YCa566XID4gdHN1dXNhblwgOwor6YCG57iBID4gZ3lha3VlblwgOwor5Yid57SaID4gc2hva3l1dVwgOwor5q+S5oCnID4gZG9rdXNlaVwgOwor5beh6YGKID4ganVuJyd5dXVcIDsKK+W+k+WuuSA+IHNob3V5b3VcIDsKK+WNl+WbvSA+IG5hbmdva3VcIDsKK+W8t+aatCA+IGt5b3Vib3VcIDsKK+W5leiIjiA+IGJha3VzaGFcIDsKK+awt+WOnyA+IGh5b3VnZW5cIDsKK+W5s+e5lCA+IGhpcmFvcmlcIDsKK+W/nOWKmyA+IG91cnlva3VcIDsKK+WLneaVlyA+IHNob3VoYWlcIDsKK+axguWIkSA+IGt5dXVrZWlcIDsKK+W3u+iynSA+IG1ha2lnYWlcIDsKK+W8j+asoSA+IHNoaWtpamlcIDsKK+efs+advyA+IHNla2liYW5cIDsKK+WGmeixoSA+IHNoYXNob3VcIDsKK+aui+afsSA+IHphbmNodXVcIDsKK+efs+adkCA+IHNla2l6YWlcIDsKK+W+jOWuriA+IGtvdWt5dXVcIDsKK+mCpualvSA+IGhvdWdha3VcIDsKK+WJo+eOiSA+IGtlbmRhbWFcIDsKK+WMl+W2uiA+IGhva3VyZWlcIDsKK+W5tOe1piA+IG5lbmt5dXVcIDsKK+WFqOmHjyA+IHplbnJ5b3VcIDsKK+W+jOWtpiA+IGtvdWdha3VcIDsKK+mChOa1gSA+IGthbnJ5dXVcIDsKK+WNs+WIuyA+IHNva2tva3VcIDsKK+WHtuiBniA+IGt5b3VidW5cIDsKK+awkeWbvSA+IG1pbmtva3VcIDsKK+WFpemHkSA+IG55dXVraW5cIDsKK+WJm+eQgyA+IGdvdWt5dXVcIDsKK+WNiuWbvSA+IGhhbmdva3VcIDsKK+awuOWIpSA+IGVpYmV0c3VcIDsKK+mFt+S9vyA+IGtva3VzaGlcIDsKK+W/q+S9nCA+IGthaXNha3VcIDsKK+WNsOWItyA+IGluc2F0c3VcIDsKK+i/vee0jSA+IHRzdWlub3VcIDsKK+awt+WIgyA+IGh5b3VqaW5cIDsKK+WFremBkyA+IHJva3Vkb3VcIDsKK+WMl+WyuCA+IGhva3VnYW5cIDsKK+WJjeeUnyA+IHplbnNob3VcIDsKK+mAgeexjSA+IHNvdXNla2lcIDsKK+WIpeensCA+IGJlc3Nob3VcIDsKK+W6reeVqiA+IG5pd2FiYW5cIDsKK+i+suiWrCA+IG5vdXlha3VcIDsKK+i/keiHoyA+IGtpbnNoaW5cIDsKK+mBiueMnyA+IHl1dXJ5b3VcIDsKK+eZu+mMsiA+IHRvdXJva3VcIDsKK+WNoOWNnCA+IHNlbmJva3VcIDsKK+iRieaciCA+IGhhZHp1a2lcIDsKK+W3qOiziiA+IGt5b3pva3VcIDsKK+iPr+eHrSA+IGthc2hva3VcIDsKK+W9k+aDkSA+IHRvdXdha3VcIDsKK+W9q+W3pSA+IGNob3Vrb3VcIDsKK+WIhue0jSA+IGJ1bicnbm91XCA7CivliJ3nqYIgPiBoYXRzdWhvXCA7Civlv4Xli50gPiBoaXNzaG91XCA7Civnmb3pipEgPiBoYWt1c2VuXCA7CivlhajpgJ8gPiB6ZW5zb2t1XCA7CivlhaXpgbggPiBueXV1c2VuXCA7CivlhajpgJogPiB6ZW50c3V1XCA7Civnmb3pioUgPiBoYWt1ZG91XCA7Civnmb3pioAgPiBoYWt1Z2luXCA7CivlhaXpgZMgPiBueXV1ZG91XCA7Civpgqrmm7IgPiBqYWt5b2t1XCA7CivljZzljaAgPiBib2t1c2VuXCA7Civlt6Xos4MgPiBrb3VjaGluXCA7CivmsLflg48gPiBoeW91em91XCA7CivpgYrniacgPiB5dXVib2t1XCA7CivpgLHnlaogPiBzaHV1YmFuXCA7Civlv4PlirQgPiBzaGlucm91XCA7CivliJ3np4sgPiBzaG9zaHV1XCA7Civlub7nqIsgPiBpa3Vob2RvXCA7CivmrovmlbUgPiB6YW50ZWtpXCA7CivpgJrnoJQgPiB0c3V1a2VuXCA7CivljZTlkIwgPiBreW91ZG91XCA7CivlubPnrYkgPiBieW91ZG91XCA7CivpgY7nhrEgPiBrYW5ldHN1XCA7CivljbPlgKQgPiBzb2t1Y2hpXCA7CivpgJrnn6UgPiB0c3V1Y2hpXCA7CivnmYLppIogPiByeW91eW91XCA7CivlubTnq68gPiB0b3NoaWhhXCA7Civluq3nkIMgPiB0ZWlreXV1XCA7CivmronmlZkgPiBqdW5reW91XCA7CivmrYzmsqIgPiB1dGF6YXdhXCA7Civli4HmlbUgPiBrZWl0ZWtpXCA7Civlho3oqr8gPiBzYWljaG91XCA7Civlh53ohIIgPiBneW91c2hpXCA7Civlho3oqq0gPiBzYWlkb2t1XCA7CivmsYLkurogPiBreXV1amluXCA7Civlip/mpa0gPiBrb3VneW91XCA7CivoibLpu5IgPiBpcm9ndXJvXCA7CivljZfljJcgPiBuYW5ib2t1XCA7CivljZrlirQgPiBiYWt1cm91XCA7CivnoLTlsYAgPiBoYWt5b2t1XCA7CivljZjli50gPiB0YW5zaG91XCA7CivmraPmpa0gPiBzZWlneW91XCA7CivluK/oiq8gPiBvYmlzaGluXCA7CivljYrlkaggPiBoYW5zaHV1XCA7CivpgaHmupAgPiBzYWt1Z2VuXCA7CivlhajouqsgPiB6ZW5zaGluXCA7Civmr5LlrrMgPiBkb2t1Z2FpXCA7CivlhoXorIEgPiBuYWlldHN1XCA7CivlhoXoq74gPiBuYWlkYWt1XCA7Civlubjnpo8gPiBrb3VmdWt1XCA7Civli6TmgaogPiBraW5rYWt1XCA7Civlh7rnsr4gPiBzaHVzc2VpXCA7Civlvqnlkb0gPiBmdWt1bWVpXCA7Civoi6XpgKAgPiB3YWthem91XCA7CivluprnlLMgPiBrb3VzaGluXCA7Civnm7ToiKogPiBjaG9ra291XCA7CivlupfnlaogPiBtaXNlYmFuXCA7CivprY3prY4gPiBtb3VyeW91XCA7CivlhYnph48gPiBrb3VyeW91XCA7Civlu5PmuIUgPiBrYWt1c2VpXCA7Civpganms5UgPiB0ZWtpaG91XCA7CivlhKrplbcgPiB5dXVjaG91XCA7Civlv5nkuK0gPiBib3VjaHV1XCA7CivljZHliqMgPiBoaXJldHN1XCA7CivliKnnmbogPiByaWhhdHN1XCA7Civlvqnlj7cgPiBmdWt1Z291XCA7Civlv4Plg48gPiBzaGluem91XCA7CivpgKPnlKggPiByZW4nJ3lvdVwgOwor5rCX5YqbID4ga2lyeW9rdVwgOwor5rC35Lq6ID4gaHlvdWppblwgOwor5q615bmzID4gZGFuYmlyYVwgOwor5YWx6LKpID4ga3lvdWhhblwgOwor5YaF6Ki8ID4gbmFpc2hvdVwgOwor5YaF6Ki6ID4gbmFpc2hpblwgOwor5YmK54mHID4gc2FrdWhlblwgOwor5q2j5qC8ID4gc2Vpa2FrdVwgOwor5by35oW+ID4gZ291eW9rdVwgOwor5b6p5Y6fID4gZnVrdWdlblwgOwor55m66YCyID4gaGFzc2hpblwgOwor5byU5paHID4gY2hvdWJ1blwgOwor5YyX5aSpID4gaG9rdXRlblwgOwor5YyX5aSnID4gaG9rdWRhaVwgOwor5YWD6YeRID4gbW90b2tpblwgOwor5YaF6KeSID4gbmFpa2FrdVwgOwor6Iul6LypID4gamFrdWhhaVwgOwor55uK6JmrID4gZWtpY2h1dVwgOwor5b6z5YipID4gdG9ra3VyaVwgOwor5YuB5o23ID4ga2Vpc2hvdVwgOwor5b+F5L+uID4gaGlzc2h1dVwgOwor55uy6IW4ID4gbW91Y2hvdVwgOwor5b6z5YiGID4gdG9rdWJ1blwgOwor6JK45ZmoID4gbXVzaGlraVwgOwor5b6u5YqbID4gYmlyeW9rdVwgOwor5Yy/5ZCNID4gdG9rdW1laVwgOwor5bq154K5ID4gaW9yaXRlblwgOwor5bu25qOSID4gbm9iZWJvdVwgOwor5bi457+SID4gam91c2h1dVwgOwor5Yi255CDID4gc2Vpa3l1dVwgOwor5YiG56eSID4gZnVuYnlvdVwgOwor5q2T5qW9ID4ga2FucmFrdVwgOwor5rC05LitID4gc3VpY2h1dVwgOwor6YOo5bGAID4gYnVreW9rdVwgOwor5YeN6IKJID4gdG91bmlrdVwgOwor6YCa55SoID4gdHN1dXlvdVwgOwor6I2J6ImyID4ga3VzYWlyb1wgOwor5YyX5aKDID4gaG9ra3lvdVwgOwor6a2C6a2EID4ga29ucGFrdVwgOwor5b605YW1ID4gY2hvdWhlaVwgOwor6YWN5L+hID4gaGFpc2hpblwgOwor6YCX55WZID4gdG91cnl1dVwgOwor6YGp5q2jID4gdGVraXNlaVwgOwor5q2j5pydID4gc2VpY2hvdVwgOwor5q2j5pyUID4gc2Vpc2FrdVwgOwor5YWo6LG5ID4gemVucHlvdVwgOwor5YeE6IWVID4gc3Vnb3VkZVwgOwor5q2j5pyNID4gc2VpZnVrdVwgOwor5Y2U5YONID4ga3lvdWRvdVwgOwor5YWJ6YCfID4ga291c29rdVwgOwor5YuY5b+NID4ga2FuJyduaW5cIDsKK+WFiOmAsiA+IHNlbnNoaW5cIDsKK+WFiOmAsSA+IHNlbnNodXVcIDsKK+WFpeiyoiA+IG55dXVrb3VcIDsKK+mFkuS7oyA+IHNha2FkYWlcIDsKK+eZvei6qyA+IHNoaXJvbWlcIDsKK+W3q+ihkyA+IGZ1anV0c3VcIDsKK+mAn+eQgyA+IHNva2t5dXVcIDsKK+i/lOe0jSA+IGhlbicnbm91XCA7CivlvqnliLsgPiBmdWtrb2t1XCA7CivlhbHorIAgPiBreW91Ym91XCA7Civou73pnIcgPiBrZWlzaGluXCA7CivojZLogp0gPiBhcmFnaW1vXCA7Civlh7rnqYIgPiBzaHVzc3VpXCA7CivlvJXmj5sgPiBoaWtpa2FlXCA7CivovLvovLMgPiBmdWt1c291XCA7CivmrLLmsYIgPiB5b2treXV1XCA7Civlu7bmnb8gPiBub2JlaXRhXCA7CivnnJ/nqbogPiBzaGlua3V1XCA7CivnnLznm64gPiBnYW5tb2t1XCA7CivlvJXmjqUgPiBpbnNldHN1XCA7CivoibLprZQgPiBzaGlraW1hXCA7Civlv4XkuK0gPiBoaXRjaHV1XCA7CivovKrpg60gPiByaW5rYWt1XCA7CivljZjkvZwgPiB0YW5zYWt1XCA7CivnnIHnt5ogPiBzaG91c2VuXCA7CivlvrTlgJkgPiBjaG91a291XCA7CivlvL7luZUgPiBkYW5tYWt1XCA7CivlubTnm4ogPiBuZW4nJ2VraVwgOwor5b6p5YWaID4gZnVrdXRvdVwgOwor5YWJ6Lu4ID4ga291amlrdVwgOwor5bu/5pelID4gaGF0c3VrYVwgOwor5byx5b+XID4gamFrdXNoaVwgOwor5YyX5Zu9ID4gaG9ra29rdVwgOwor5by35byTID4gZ291a3l1dVwgOwor5b6p5YWDID4gZnVrdWdlblwgOwor5by35byBID4ga3lvdWJlblwgOwor6YKE5pqmID4ga2FucmVraVwgOwor5Yqx5oyvID4gcmVpc2hpblwgOwor6L6e6ImyID4gamlzaG9rdVwgOwor5Ye656S+ID4gc2h1c3NoYVwgOwor6I2J6IKlID4ga3VzYWdvZVwgOwor5Yip546HID4gcmlyaXRzdVwgOwor55m66LazID4gaG9zc29rdVwgOwor5YWs6KmVID4ga291aHlvdVwgOwor5q2j5pWZID4gc2Vpa3lvdVwgOwor5YWs6Ki8ID4ga291c2hvdVwgOwor5Y2B5YWtID4ganV1cm9rdVwgOwor5Yil54+NID4gYmV0Y2hpblwgOwor5Y2U5LyaID4ga3lvdWthaVwgOwor5YWI6Lm0ID4gc2Vuc2h1dVwgOwor5Yy65YilID4ga3ViZXRzdVwgOwor5Y2D5YSEID4gc2VuJydva3VcIDsKK+awl+S9jSA+IGtpZ3VyYWlcIDsKK+W8seW8nyA+IGpha3V0ZWlcIDsKK+WFseilnyA+IHRvbW9lcmlcIDsKK+ecvOeXhSA+IGdhbmJ5b3VcIDsKK+WFreinkiA+IHJva2tha3VcIDsKK+WNkuS8jSA+IHNvdHN1Z29cIDsKK+awkeS/lyA+IG1pbnpva3VcIDsKK+aur+WuriA+IGhpbmt5dXVcIDsKK+eglOWtpiA+IGtlbmdha3VcIDsKK+aui+W/tSA+IHphbicnbmVuXCA7CivojbfnqY0gPiBuaWR6dW1pXCA7CivljZfkuK0gPiBuYW5jaHV1XCA7CivlhrfogokgPiByZWluaWt1XCA7CivokL3miYsgPiByYWt1c2h1XCA7Civnm7jntpogPiBzb3V6b2t1XCA7Civmrovlv40gPiB6YW4nJ25pblwgOwor5rCX5LuYID4ga2lkenVrZVwgOwor5YWl6KmmID4gbnl1dXNoaVwgOwor5q6L5b+DID4gemFuc2hpblwgOwor5Ym15qWtID4gc291Z3lvdVwgOwor5Yeh562WID4gYm9uc2FrdVwgOwor5YuJ5by3ID4gYmVua3lvdVwgOwor5YWx6KOPID4gdG9tb3VyYVwgOwor5b6M5Y6EID4gYXRveWFrdVwgOwor6JC95oiQID4gcmFrdXNlaVwgOwor5YWo6KeSID4gemVua2FrdVwgOwor5byx5bm0ID4gamFrdW5lblwgOwor5Yun5a2mID4ga2FuZ2FrdVwgOwor5Y2K5L2cID4gaGFuc2FrdVwgOwor5b6X5YiGID4gdG9rdWJ1blwgOwor6LyJ6YyyID4gc2Fpcm9rdVwgOwor5bq25rWBID4gc2hvcnl1dVwgOwor5q205oimID4gcmVraXNlblwgOwor5bed6J2mID4ga2F3YWViaVwgOwor5q2M5puyID4ga2FreW9rdVwgOwor5b6F5ZCIID4gbWFjaGlhaVwgOwor5biw57WQID4ga2lrZXRzdVwgOwor55+z5bqtID4gc2VraXRlaVwgOwor5Y2S5LitID4gc290Y2h1dVwgOwor5Y2T5LiKID4gdGFrdWpvdVwgOwor5YmK5ribID4gc2FrdWdlblwgOwor5YWF6LazID4ganV1c29rdVwgOwor5Y2K5LyRID4gaGFua3l1dVwgOwor6Iy26IW5ID4gY2hhYmFyYVwgOwor5YWN6LKsID4gbWVuc2VraVwgOwor5Yy55YSUID4gaGl0Y2h1dVwgOwor6YGp5qC8ID4gdGVra2FrdVwgOwor6I2S57iEID4gYXJhbmF3YVwgOwor5YO76ZqFID4gaGVraWd1dVwgOwor5YqH5pqRID4gZ2VraXNob1wgOwor55u057WMID4gY2hva2tlaVwgOwor55uu57iBID4gbWFidWNoaVwgOwor5YO76ZmsID4gaGVraXN1dVwgOwor6YGN5q20ID4gaGVucmVraVwgOwor5biv57SZID4gb2JpZ2FtaVwgOwor5bqD54utID4ga291a3lvdVwgOwor5Yi65r+AID4gc2hpZ2VraVwgOwor5bmy55OiID4ga2FucHlvdVwgOwor6YSZ5YqjID4gaGlyZXRzdVwgOwor6L6e6IG3ID4gamlzaG9rdVwgOwor5YSf6YeRID4gc2hvdWtpblwgOwor5rCP5Lq6ID4gdWppaGl0b1wgOwor55u057O7ID4gY2hva2tlaVwgOwor55uX6IG0ID4gdG91Y2hvdVwgOwor5YWs6KGoID4ga291aHlvdVwgOwor55+l5b6zID4gY2hpdG9rdVwgOwor6YGK5q20ID4geXV1cmVraVwgOwor5YWs6KGGID4ga291c2h1dVwgOwor5YWI6LKgID4gc2VubWFrZVwgOwor55+l5b6XID4gY2hpdG9rdVwgOwor55y855CDID4gZ2Fua3l1dVwgOwor5bi956ugID4gYm91c2hvdVwgOwor6L+R56ewID4ga2luc2hvdVwgOwor5b6p5LuHID4gZnVra3l1dVwgOwor55m66K2wID4gaGF0c3VnaVwgOwor5Ye655ujID4gc2h1a2thblwgOwor6YCB55CDID4gc291a3l1dVwgOwor6Imv6aKoID4gcnlvdWZ1dVwgOwor5YiG55WZID4gYnVucnl1dVwgOwor5YuY5a+pID4ga2Fuc2hpblwgOwor6YGp5p2QID4gdGVraXphaVwgOwor6YKA5pKDID4geW91Z2VraVwgOwor6YCj5r+BID4gcmVuZGFrdVwgOwor5q2/5b6MID4gYm90c3Vnb1wgOwor55yf55u4ID4gc2hpbnNvdVwgOwor55yf55u0ID4gbWFzc3VndVwgOwor5b255ZCNID4geWFrdW1laVwgOwor5b6T5YOVID4ganV1Ym9rdVwgOwor6YGT5qW9ID4gZG91cmFrdVwgOwor556s5patID4gc2h1bmRhblwgOwor55m66KqeID4gaGF0c3Vnb1wgOwor5Yun5aWoID4ga2Fuc2hvdVwgOwor5Yqb5oqVID4gcmlraXRvdVwgOwor5YiR542EID4ga2VpZ29rdVwgOwor55m+6KiIID4gaHlha2tlaVwgOwor5YSf6YKEID4gc2hvdWthblwgOwor5Y2D5LihID4gc2VucnlvdVwgOwor5b6M5YWIID4gYXRvc2FraVwgOwor5Y2B5LmdID4ganV1a3l1dVwgOwor55m66KmxID4gaGF0c3V3YVwgOwor6LyD6YePID4ga291cnlvdVwgOwor5YyX5Y2KID4gaG9rdWhhblwgOwor5buD5qWtID4gaGFpZ3lvdVwgOwor55m66Ki7ID4gaGF0Y2h1dVwgOwor5Y2B5LihID4ganV1cnlvdVwgOwor5Yqb5oimID4gcmlraXNlblwgOwor5Y2B5LiDID4ganV1bmFuYVwgOwor5Y2B5LiAID4ganV1aWNoaVwgOwor5byV5b2TID4gaGlraWF0ZVwgOwor6YC45rCRID4gaXRzdW1pblwgOwor5b6L5YSAID4gcmljaGlnaVwgOwor5YmN5q20ID4gemVucmVraVwgOwor5Ymv5pysID4gZnVrdWhvblwgOwor6Imx6ZujID4ga2FuJyduYW5cIDsKK+W8j+W+riA+IHNoaWtpYmlcIDsKK+mBiualvSA+IHl1dXJha3VcIDsKK+i7vemHjyA+IGtlaXJ5b3VcIDsKK+i7vemHjSA+IGtlaWNob3VcIDsKK+ebrueulyA+IG1va3VzYW5cIDsKK+WJr+abuCA+IGZ1a3VzaG9cIDsKK+WHuueUoyA+IHNodXNzYW5cIDsKK+WHuueUnyA+IHNodXNzZWlcIDsKK+eZuuimmiA+IGhha2tha3VcIDsKK+mAsuawtCA+IHNoaW5zdWlcIDsKK+assuacmyA+IHlva3Vib3VcIDsKK+WLh+WwhiA+IHl1dXNob3VcIDsKK+ebn+e0hCA+IG1laXlha3VcIDsKK+ebuOensCA+IHNvdXNob3VcIDsKK+W9vOWHpiA+IGthc2hpa29cIDsKK+efruWwjyA+IHdhaXNob3VcIDsKK+edq+avmyA+IG1hdHN1Z2VcIDsKK+mCuOWuhSA+IHRlaXRha3VcIDsKK+efreWwjyA+IHRhbnNob3VcIDsKK+ebruerryA+IG1laGFzaGlcIDsKK+WLieWtpiA+IGJlbmdha3VcIDsKK+mvqOiCiSA+IGdlaW5pa3VcIDsKK+iMieiOiSA+IG1hdHN1cmlcIDsKK+WEqui2iiA+IHl1dWV0c3VcIDsKK+eZvuihjCA+IGh5YWtrb3VcIDsKK+i/keecvCA+IGNoaWthbWVcIDsKK+iPjOavkiA+IGtpbmRva3VcIDsKK+attOW5tCA+IHJla2luZW5cIDsKK+W8k+W4qyA+IHl1bWlzaGlcIDsKK+WFieimmiA+IGtvdWtha3VcIDsKK+WFiOimmiA+IHNlbmtha3VcIDsKK+W+jOS9nCA+IGF0b3Nha3VcIDsKK+W3qOiItiA+IGt5b2hha3VcIDsKK+W6lea1gSA+IHRlaXJ5dXVcIDsKK+i/keebriA+IGNoaWthbWVcIDsKK+eZuuihqCA+IGhhcHB5b3VcIDsKK+mBuOaKniA+IHNlbnRha3VcIDsKK+asoOagvCA+IGtla2tha3VcIDsKK+WFseiRlyA+IGt5b3VjaG9cIDsKK+W6g+a8oCA+IGtvdWJha3VcIDsKK+iNieesmyA+IGt1c2FidWVcIDsKK+WLneWgsSA+IHNob3Vob3VcIDsKK+WInea9riA+IHNob2Nob3VcIDsKK+WKqeW5syA+IHN1a2ViZWlcIDsKK+W8t+WkpyA+IGt5b3VkYWlcIDsKK+i8quiqrSA+IHJpbmRva3VcIDsKK+efpeWwhiA+IGNoaXNob3VcIDsKK+WGheiGnCA+IG5haW1ha3VcIDsKK+W8t+WjriA+IGt5b3Vzb3VcIDsKK+W9ueWDpyA+IHlha3Vzb3VcIDsKK+WKh+aIpiA+IGdla2lzZW5cIDsKK+avkuWIgyA+IGRva3VqaW5cIDsKK+eZveidiyA+IGhha3Vyb3VcIDsKK+W4hue2sSA+IGhvZHp1bmFcIDsKK+i7jemVtyA+IGd1bmNob3VcIDsKK+WKm+W9uSA+IHJpa2lla2lcIDsKK+WGt+eskSA+IHJlaXNob3VcIDsKK+iMtueypSA+IGNoYWdheXVcIDsKK+W7u+W/gyA+IGthaXNoaW5cIDsKK+eci+eXhSA+IGthbmJ5b3VcIDsKK+ebruekvCA+IG1va3VyZWlcIDsKK+i8uOihgCA+IHl1a2V0c3VcIDsKK+WLneWcsCA+IHNob3VjaGlcIDsKK+WInea5ryA+IGhhdHN1eXVcIDsKK+WFh+ihjCA+IGt5b3Vrb3VcIDsKK+WHtueMmyA+IGt5b3Vtb3VcIDsKK+iJpumVtyA+IGthbmNob3VcIDsKK+WHjeefsyA+IHRvdXNla2lcIDsKK+WItuassiA+IHNlaXlva3VcIDsKK+W9ouWLnSA+IGtlaXNob3VcIDsKK+WHuueJiCA+IHNodXBwYW5cIDsKK+W8n+WrgSA+IG90b3lvbWVcIDsKK+WHtueKtiA+IGt5b3Vqb3VcIDsKK+aouuiJsiA+IGthYmFpcm9cIDsKK+mAgOa9riA+IHRhaWNob3VcIDsKK+egguWcsCA+IHN1bmFjaGlcIDsKK+mBk+aVmSA+IGRvdWt5b3VcIDsKK+mBjuaXpSA+IGthaml0c3VcIDsKK+mDt+WFmiA+IGt5b3V0b3VcIDsKK+i7oumHnSA+IHRlbnNoaW5cIDsKK+iMtueusSA+IGNoYWJha29cIDsKK+W4sOedgCA+IGtpY2hha3VcIDsKK+mBqeaJgCA+IHRla2lzaG9cIDsKK+WDu+mCkSA+IGhla2l5dXVcIDsKK+atjuaBryA+IHRhbnNva3VcIDsKK+iLm+iZkCA+IGthZ3lha3VcIDsKK+WGmee1jCA+IHNoYWt5b3VcIDsKK+atk+W/gyA+IGthbnNoaW5cIDsKK+W9q+WDjyA+IGNob3V6b3VcIDsKK+efs+WhlCA+IHNla2l0b3VcIDsKK+i/lOeQgyA+IGhlbmt5dXVcIDsKK+efs+WhgCA+IGlzaGliZWlcIDsKK+W8n+WnqyA+IG90b2hpbWVcIDsKK+WIqeauliA+IHJpc2hva3VcIDsKK+W9ueS6uiA+IHlha3VuaW5cIDsKK+W4r+eariA+IG9iaWthd2FcIDsKK+i+seefpSA+IGpva3VjaGlcIDsKK+WLp+WRiiA+IGthbmtva3VcIDsKK+ebsuebriA+IG1vdW1va3VcIDsKK+eXm+miqCA+IHRzdXVmdXVcIDsKK+mAuOadkCA+IGl0c3V6YWlcIDsKK+WHuueCrSA+IHNodXR0YW5cIDsKK+W8seWbvSA+IGpha2tva3VcIDsKK+W5uea1gSA+IGthbnJ5dXVcIDsKK+atr+WtpiA+IHNoaWdha3VcIDsKK+W5sua4iSA+IGthbnNob3VcIDsKK+iNt+eJqSA+IG5pbW90c3VcIDsKK+WMl+S4iiA+IGhva3Vqb3VcIDsKK+WJr+aJiyA+IGZ1a3VzaHVcIDsKK+WJveaCjSA+IGh5b3VrYW5cIDsKK+iJsumHjCA+IGlyb3phdG9cIDsKK+i7oumAsiA+IHRlbnNoaW5cIDsKK+ebpOefsyA+IGJhbmpha3VcIDsKK+i+suebuCA+IG5vdXNob3VcIDsKK+mBiuaSgyA+IHl1dWdla2lcIDsKK+WFpeiIuSA+IG55dXVzZW5cIDsKK+WIhua6nCA+IGJ1bnJ5dXVcIDsKK+WFpeiIjiA+IG55dXVzaGFcIDsKK+mAkOasoSA+IGNoaWt1amlcIDsKK+i+uueWhiA+IGhlbmt5b3VcIDsKK+WJjeaWuSA+IG1hZWthdGFcIDsKK+eZveiPnCA+IGhha3VzYWlcIDsKK+WJsuaEmyA+IGthdHN1YWlcIDsKK+mBqeaApyA+IHRla2lzZWlcIDsKK+ebo+edoyA+IGthbnRva3VcIDsKK+i6gemssSA+IHNvdXV0c3VcIDsKK+eglOWJiiA+IGtlbnNha3VcIDsKK+alvemaiiA+IGdha3V0YWlcIDsKK+ato+WuoiA+IHNlaWtha3VcIDsKK+auieWbvSA+IGp1bmtva3VcIDsKK+WFqOiDvSA+IHplbicnbm91XCA7CivpgIbmr5QgPiBneWFrdWhpXCA7CivlhqXnpo8gPiBtZWlmdWt1XCA7CivnnabmnIggPiBtdXRzdWtpXCA7CivpgLjmlocgPiBpdHN1YnVuXCA7CivliLvmnKwgPiBrb2t1aG9uXCA7CivmraPlrZAgPiBzaG91c2hpXCA7Civlub3mrJ0gPiB5dXV1dHN1XCA7CivmrrrlgrcgPiBzYXNzaG91XCA7CivlhoXntIQgPiBuYWl5YWt1XCA7CivlvLflkbMgPiB0c3V5b21pXCA7CivliaPmiJ8gPiBrZW5nZWtpXCA7Civov5TnhacgPiBoZW5zaG91XCA7CivoiYfplbcgPiB0ZWljaG91XCA7CivpganlvZMgPiB0ZWtpdG91XCA7Civou6LouqsgPiB0ZW5zaGluXCA7CivliIbmtYEgPiBidW5yeXV1XCA7CivmqKnog70gPiBrZW4nJ25vdVwgOwor5Ye25ryiID4ga3lvdWthblwgOwor5q2j5auhID4gc2VpdGVraVwgOwor5qyy5oOFID4geW9rdWpvdVwgOwor5bqn5pW3ID4gemFzaGlraVwgOwor5qW86ZajID4gcm91a2FrdVwgOwor5YiG5rOoID4gYnVuY2h1dVwgOwor5YyF5LiBID4gaG91Y2hvdVwgOwor5Yi25pyNID4gc2VpZnVrdVwgOwor55m66Iq9ID4gaGF0c3VnYVwgOwor6YCy5pWwID4gc2hpbnN1dVwgOwor5Ye65rivID4gc2h1a2tvdVwgOwor55m+6IisID4gaHlhcHBhblwgOwor5Ye65rigID4gc2h1a2t5b1wgOwor6YCy5pS7ID4gc2hpbmtvdVwgOwor6JC95Z+OID4gcmFrdWpvdVwgOwor5Ymy5b2TID4gd2FyaWF0ZVwgOwor5qyy5b+1ID4geW9rdW5lblwgOwor5qif6ISzID4gc2hvdW5vdVwgOwor6L+R54GrID4gY2hpa2FiaVwgOwor5Yil5qC8ID4gYmVra2FrdVwgOwor55a+6aKoID4gc2hpcHB1dVwgOwor6JC95ZywID4gcmFrdWNoaVwgOwor5YWx57eoID4ga3lvdWhlblwgOwor5q2k5aW0ID4ga295YXRzdVwgOwor5by35YuiID4ga3lvdXNlaVwgOwor55uX55mWID4gdG91aGVraVwgOwor6Ii56ZW3ID4gc2VuY2hvdVwgOwor56CU5L+uID4ga2Vuc2h1dVwgOwor5Yi35pawID4gc2Fzc2hpblwgOwor5q6/5LitID4gZGVuY2h1dVwgOwor5by35YqbID4gZ291cmlraVwgOwor5bqP5puyID4gam9reW9rdVwgOwor5bqK5p2/ID4geXVrYWl0YVwgOwor6YCa5pyJID4gdHN1dXl1dVwgOwor5Ymb5oSOID4gZ291ZnVrdVwgOwor5YW157OnID4gaHlvdXJvdVwgOwor6YG35a6iID4gc2Vua2FrdVwgOwor5by35YmbID4ga3lvdWdvdVwgOwor55uG55+zID4gYm9uc2VraVwgOwor5qyj5oKmID4ga2luZXRzdVwgOwor5by35Yi2ID4ga3lvdXNlaVwgOwor5YW157KuID4gaHlvdXJvdVwgOwor6YGT5b+DID4gZG91c2hpblwgOwor5YW457GNID4gdGVuc2VraVwgOwor6YGT5b6zID4gZG91dG9rdVwgOwor55eF6ZujID4gYnlvdW5hblwgOwor5Yqb5aOrID4gcmlraXNoaVwgOwor6LuK6LybID4gc2hhcnlvdVwgOwor6LuK6LyMID4gc2hhcnlvdVwgOwor5YW157GNID4gaGVpc2VraVwgOwor5YqD5a6aID4ga2FrdXRlaVwgOwor6YCf5patID4gc29rdWRhblwgOwor6LuK6Lu4ID4gc2hhamlrdVwgOwor5YaF56mNID4gbmFpc2VraVwgOwor6YCP5p6QID4gdG91c2VraVwgOwor5Yag55yBID4ga2Fuc2hvdVwgOwor5Ymj5b2iID4ga2VuZ2F0YVwgOwor6I2S54mpID4gYXJhbW9ub1wgOwor55uy54iGID4gbW91YmFrdVwgOwor5YO76KuWID4gaGVraXJvblwgOwor5by35YW1ID4ga3lvdWhlaVwgOwor5YWs57SEID4ga291eWFrdVwgOwor5q615LiYID4gZGFua3l1dVwgOwor6L6y54mnID4gbm91Ym9rdVwgOwor5YWl57a/ID4gaXJld2F0YVwgOwor5qiq57eaID4geW9rb3NlblwgOwor55m95769ID4gc2hpcmFoYVwgOwor5bO76Zm6ID4gc2h1bmtlblwgOwor5ber56WdID4gZnVzaHVrdVwgOwor6Lu46KOFID4gamlrdXNvdVwgOwor55uj542EID4ga2FuZ29rdVwgOwor5Yil5pmCID4gYmV0c3VqaVwgOwor5byU5ZWPID4gY2hvdW1vblwgOwor5YuF5YuYID4gY2hva2thblwgOwor5YWo57SaID4gemVua3l1dVwgOwor5YaF56aPID4gbmFpZnVrdVwgOwor5YaZ55yfID4gc2hhc2hpblwgOwor5YWo57SNID4gemVuJydub3VcIDsKK+WHnea7niA+IGd5b3V0YWlcIDsKK+mBk+W6iiA+IGRvdXNob3VcIDsKK+auiuWLnSA+IHNodXNob3VcIDsKK+i7jei2syA+IGd1bnNva3VcIDsKK+mrmOmhjSA+IGtvdWdha3VcIDsKK+WDu+iogCA+IGhla2lnZW5cIDsKK+WJo+W5lSA+IGtlbm1ha3VcIDsKK+WHtuatsyA+IGt5b3VzYWlcIDsKK+WJm+W8tyA+IGdvdWt5b3VcIDsKK+WIhualrSA+IGJ1bmd5b3VcIDsKK+ecn+atoyA+IHNoaW5zZWlcIDsKK+i7ouiqvyA+IHRlbmNob3VcIDsKK+atjOWnqyA+IHV0YWhpbWVcIDsKK+mBoOWxsSA+IHRvb3lhbWFcIDsKK+aoquezuCA+IHlva29pdG9cIDsKK+asoeW8jyA+IGppc2hpa2lcIDsKK+W8t+WBpSA+IGt5b3VrZW5cIDsKK+mBiuW8iyA+IHl1dXlva3VcIDsKK+mBuuWksSA+IGlzaGl0c3VcIDsKK+mBuOWlqCA+IHNlbnNob3VcIDsKK+WDu+imiyA+IGhla2lrZW5cIDsKK+iKseiRtSA+IGhhbmFhb2lcIDsKK+iQveWRvSA+IHJha3VtZWlcIDsKK+mBiuW7kyA+IHl1dWtha3VcIDsKK+i7n+iqvyA+IG5hbmNob3VcIDsKK+aoueeriyA+IGp1cml0c3VcIDsKK+mtlOihkyA+IG1hanV0c3VcIDsKK+WHoea1gSA+IGJvbnJ5dXVcIDsKK+W4gueUuiA+IHNoaWNob3VcIDsKK+iIjOmfsyA+IHpldHN1b25cIDsKK+WIneaXpSA+IGhhdHN1aGlcIDsKK+W8leWPlyA+IGhpa2l1a2VcIDsKK+WKh+WkiSA+IGdla2loZW5cIDsKK+W7uuWbvSA+IGtlbmtva3VcIDsKK+efreWGiiA+IHRhbnpha3VcIDsKK+efs+WDjyA+IHNla2l6b3VcIDsKK+edo+aIpiA+IHRva3VzZW5cIDsKK+WIuuaInyA+IHNoaWdla2lcIDsKK+ecuuacmyA+IGNob3Vib3VcIDsKK+WKh+WjhyA+IGdla2lkYW5cIDsKK+i/keazgSA+IGtpbmt5b3VcIDsKK+asoOW4rSA+IGtlc3Nla2lcIDsKK+W3qOefsyA+IGt5b3Nla2lcIDsKK+WJjeW+tCA+IHplbmNob3VcIDsKK+attOWPsiA+IHJla2lzaGlcIDsKK+eZvee3miA+IGhha3VzZW5cIDsKK+W5s+acjSA+IGhlaWZ1a3VcIDsKK+i7ouimhiA+IHRlbnB1a3VcIDsKK+apn+eVpSA+IGtpcnlha3VcIDsKK+WKh+WgtCA+IGdla2lqb3VcIDsKK+i6q+i/kSA+IG1pZGppa2FcIDsKK+WEquiJryA+IHl1dXJ5b3VcIDsKK+mAhuaXhSA+IGdla2lyeW9cIDsKK+i6q+i+uiA+IHNoaW5wZW5cIDsKK+WIhuaekCA+IGJ1bnNla2lcIDsKK+W8seS9kyA+IGpha3V0YWlcIDsKK+WHuuajuiA+IHNodWtrYW5cIDsKK+eZvee0mSA+IGhha3VzaGlcIDsKK+WFmuexjSA+IHRvdXNla2lcIDsKK+aoquesmyA+IHlva29idWVcIDsKK+eZuue1piA+IGhha2t5dXVcIDsKK+i7veiWhCA+IGtlaWhha3VcIDsKK+W8leWKmyA+IGlucnlva3VcIDsKK+WGheebuCA+IG5haXNob3VcIDsKK+WFrOensCA+IGtvdXNob3VcIDsKK+WGhuebhiA+IG1hcnVib25cIDsKK+iRl+S9nCA+IGNob3Nha3VcIDsKK+eXqei6qyA+IHNvdXNoaW5cIDsKK+iKseiJsiA+IGhhbmFpcm9cIDsKK+mAn+aIkCA+IHNva3VzZWlcIDsKK+mrmOmWoyA+IGtvdWtha3VcIDsKK+W3puebtCA+IHNhY2hva3VcIDsKK+WJjeW5tCA+IHplbicnbmVuXCA7CivpgIHmlpkgPiBzb3VyeW91XCA7CivpsZfmnKggPiByaW5ib2t1XCA7Civnmb3nsokgPiBvc2hpcm9pXCA7CivlhoXnmoQgPiBuYWl0ZWtpXCA7Civoi6bnr4AgPiBrdXNldHN1XCA7Civnmb3nsbMgPiBoYWt1bWFpXCA7Civnn63kv6EgPiB0YW5zaGluXCA7Civoj6/lrp8gPiBrYWppdHN1XCA7CivmqKrnqbQgPiB5b2tvYW5hXCA7CivoiIjpmoYgPiBrb3VyeXV1XCA7CivmpbXpgZMgPiBnb2t1ZG91XCA7Civoia/oqIggPiByeW91a2VpXCA7CivnnLfml48gPiBrZW56b2t1XCA7CivpgZPlraYgPiBkb3VnYWt1XCA7CivlgbTpnaIgPiBzb2t1bWVuXCA7Civlh7rmoKEgPiBzaHVra291XCA7CivluaPmnZ8gPiBoZWlzb2t1XCA7Civliqnli6IgPiBzdWtlemVpXCA7Civlip/lkI0gPiBrb3VteW91XCA7CivoiYfouqsgPiB0ZWlzaGluXCA7CivpgY7lr4YgPiBrYW1pdHN1XCA7Civlioflm6MgPiBnZWtpZGFuXCA7CivliqrlipsgPiBkb3J5b2t1XCA7Civluq3luKsgPiBuaXdhc2hpXCA7Civnn7Pkuq0gPiBzZWtpdGVpXCA7CivpqqjpqrwgPiBrb2trYWt1XCA7CivliqnlipsgPiBqb3J5b2t1XCA7Civlu5/loIIgPiBieW91ZG91XCA7Civov73mlL4gPiB0c3VpaG91XCA7Civls6HplpMgPiBreW91a2FuXCA7CivojZLmtrwgPiBrb3VyeW91XCA7CivmrbvlgrcgPiBzaGlzaG91XCA7CivpgYrlrqIgPiB5dXVrYWt1XCA7CivlhaXnpL4gPiBueXV1c2hhXCA7CivmqYvnlZQgPiBreW91aGFuXCA7CivpgYrlraYgPiB5dXVnYWt1XCA7CivmrbPlhaUgPiBzYWlueXV1XCA7CivlhoXnlLMgPiBuYWlzaGluXCA7Civps6nlkIggPiBreXV1Z291XCA7CivmrKDlrZcgPiBrZXRzdWppXCA7CivmraPljJcgPiBzZWlob2t1XCA7Civlgrfot6EgPiBraXp1YXRvXCA7CivmrablipsgPiBidXJ5b2t1XCA7CivpganlnLAgPiB0ZWtpY2hpXCA7Civlip/lipsgPiBrb3VyaWtpXCA7CivojZLms6IgPiBhcmFuYW1pXCA7Civov5Hmpa0gPiBraW5neW91XCA7CivnnJ/mm7ggPiBzaGluc2hvXCA7CivoiLbovIkgPiBoYWt1c2FpXCA7CivlurXlrqQgPiBhbmppdHN1XCA7Civlh7bmmrQgPiBreW91Ym91XCA7CivlhbHnm4ogPiBreW91ZWtpXCA7CivmraPlia8gPiBzZWlmdWt1XCA7CivpgJrmgKcgPiB0c3V1c2VpXCA7CivmraPliYcgPiBzZWlzb2t1XCA7CivliY3lr6kgPiB6ZW5zaGluXCA7CivprLHooYAgPiB1a2tldHN1XCA7CivlhbznlKggPiBrZW4nJ3lvdVwgOwor5Yq05L2cID4gcm91c2FrdVwgOwor6YCa5b+1ID4gdHN1dW5lblwgOwor5YeL5q6LID4gY2hvdXphblwgOwor5Ya35ra8ID4gcmVpcnlvdVwgOwor6Lu96IifID4ga2Vpc2h1dVwgOwor6JC95L2TID4gcmFrdXRhaVwgOwor55qE56K6ID4gdGVra2FrdVwgOwor6YCj5bm0ID4gcmVuJyduZW5cIDsKK+WIh+aPmyA+IGtpcmlrYWVcIDsKK+eXlei3oSA+IGtvbnNla2lcIDsKK+W5suaLkyA+IGthbnRha3VcIDsKK+atu+S6uiA+IHNoaWJpdG9cIDsKK+WFrOeahCA+IGtvdXRla2lcIDsKK+W7uuWJjSA+IHRhdGVtYWVcIDsKK+WIh+aOmyA+IGtpa2tha2VcIDsKK+mAsuWxlSA+IHNoaW50ZW5cIDsKK+asoOWmgiA+IGtldHN1am9cIDsKK+mqqOmggiA+IGtvdGNob3VcIDsKK+aoquedgCA+IG91Y2hha3VcIDsKK+WIhuaOjCA+IGJ1bnNob3VcIDsKK+W8geWEnyA+IGJlbnNob3VcIDsKK+WIkeaIriA+IGtlaXJpa3VcIDsKK+mAmuW8iiA+IHRzdXVoZWlcIDsKK+eZuuelpSA+IGhhc3Nob3VcIDsKK+mAmuW8gSA+IHRzdXViZW5cIDsKK+attOS8nSA+IHJla2lkZW5cIDsKK+W5veaEgSA+IHl1dXNodXVcIDsKK+iQveS6uiA+IG9jaHV1ZG9cIDsKK+WFpeeboyA+IG55dXVrYW5cIDsKK+atu+S4rSA+IHNoaWNodXVcIDsKK+attOS7uyA+IHJla2luaW5cIDsKK+WIpeW+jCA+IGJldHN1Z29cIDsKK+attOS7oyA+IHJla2lkYWlcIDsKK+attOS7lSA+IHJla2lzaGlcIDsKK+WFseeUqCA+IGt5b3V5b3VcIDsKK+alteiypyA+IGdva3VoaW5cIDsKK+WFseeUoyA+IGt5b3VzYW5cIDsKK+WFseeUnyA+IGt5b3VzZWlcIDsKK+aoqeebiiA+IGtlbicnZWtpXCA7Civlubvmg5EgPiBnZW53YWt1XCA7Civou6LokL0gPiB0ZW5yYWt1XCA7CivluZXmlL8gPiBiYWt1c2VpXCA7CivnnIzmnIkgPiBrZW4nJ3l1dVwgOwor6L+95oeQID4gdHN1aWthaVwgOwor6a2a6IW5ID4gZ3lvZnVrdVwgOwor6YCa5bi4ID4gdHN1dWpvdVwgOwor6L+95oa2ID4gdHN1aW9rdVwgOwor55ub5rOBID4gc2Vpa3lvdVwgOwor5Yid5b+DID4gc2hvc2hpblwgOwor6LqK6LqHID4gY2h1dWNob1wgOwor5bed5426ID4ga2F3YXVzb1wgOwor6ay86JOuID4gb25pYmFzdVwgOwor55yf5pGvID4gc2hpbnNoaVwgOwor55qG55uuID4ga2FpbW9rdVwgOwor55m956CCID4gaGFrdXNoYVwgOwor6YCa5be7ID4gdHN1dWthblwgOwor5q205LiWID4gcmVraXNoaVwgOwor5qaC6KmVID4gZ2FpaHlvdVwgOwor5byL5Lq6ID4geW9rdWppblwgOwor6Iiq6LehID4ga291c2VraVwgOwor5Yed5pybID4gZ3lvdWJvdVwgOwor5YK+6KeSID4ga2Vpa2FrdVwgOwor5YW4542EID4gdGVuZ29rdVwgOwor6a+b54S8ID4gdGFpeWFraVwgOwor6YGp5ZCIID4gdGVraWdvdVwgOwor5YqH5YmkID4gZ2VraXphaVwgOwor5Yil5bitID4gYmVzc2VraVwgOwor5YWD56aEID4gZ2Vucm9rdVwgOwor6L+95oOzID4gdHN1aXNvdVwgOwor5YK+6KaGID4ga2VpZnVrdVwgOwor6a2a6IKJID4gZ3lvbmlrdVwgOwor6L+95oK8ID4gdHN1aXRvdVwgOwor5YWl55SoID4gbnl1dXlvdVwgOwor55m955y8ID4gaGFrdWdhblwgOwor6auY6YCyID4ga291c2hpblwgOwor6I2S5qWtID4gYXJhd2F6YVwgOwor55eb6KuWID4gdHN1dXJvblwgOwor5Yi65a2QID4gc2FzaGlrb1wgOwor5q2j5L2TID4gc2hvdXRhaVwgOwor6YCG5b6SID4gZ3lha3V0b1wgOwor6auY6YCfID4ga291c29rdVwgOwor5bGx6bqTID4gc2Fucm9rdVwgOwor5bm85byxID4geW91amFrdVwgOwor6L+O5pilID4gZ2Vpc2h1blwgOwor55m955uuID4gc2hpcm9tZVwgOwor5YiX5by3ID4gcmVra3lvdVwgOwor6L6y5qWtID4gbm91Z3lvdVwgOwor5YiH5oSbID4gc2V0c3VhaVwgOwor5YCZ6bOlID4ga291Y2hvdVwgOwor6YKE5L+XID4gZ2Vuem9rdVwgOwor6YCf5bCEID4gc29rdXNoYVwgOwor6L+35oORID4gbWVpd2FrdVwgOwor5bqD5beeID4ga291c2h1dVwgOwor6YC85aGeID4gaGlzc29rdVwgOwor5bmz5b6pID4gaGVpZnVrdVwgOwor55m955msID4gaGFrdXNlblwgOwor55eb6KiAID4gdHN1dWdlblwgOwor5Yid5bezID4gaGF0c3VtaVwgOwor55a+6LWwID4gc2hpc3NvdVwgOwor5YiX5bqnID4gcmV0c3V6YVwgOwor552A5bqnID4gY2hha3V6YVwgOwor5YWx54qvID4ga3lvdWhhblwgOwor6Iy25q67ID4gY2hhZ2FyYVwgOwor6L+95b6TID4gdHN1aWp1dVwgOwor5q2j5LitID4gc2VpY2h1dVwgOwor6Lqs6KGMID4ga3l1dWtvdVwgOwor55m955e0ID4gaGFrdWNoaVwgOwor5Ye25omLID4ga3lvdXNodVwgOwor5biC5rOBID4gc2hpa3lvdVwgOwor5YiX5bitID4gcmVzc2VraVwgOwor5bid5qWtID4gdGVpZ3lvdVwgOwor5YmN5Z6CID4gbWFlZGFyZVwgOwor55yp5oORID4gZ2Vud2FrdVwgOwor5b+144CFID4gbmVuJyduZW5cIDsKK+edgOW3pSA+IGNoYWtrb3VcIDsKK+WJsuWLmCA+IHdhcmlrYW5cIDsKK+mAgOW6gSA+IHRhaWNob3VcIDsKK+eZuueWuSA+IGhvc3NoaW5cIDsKK+W5tOW5tCA+IG5lbicnbmVuXCA7Civps6XkurogPiBjaG91amluXCA7Civov47mkoMgPiBnZWlnZWtpXCA7CivpgLLloYEgPiBzaGlucnVpXCA7CivliaPlkZEgPiBrZW4nJ25vblwgOwor5YaS5racID4gYm91dG9rdVwgOwor5qSc6Y+hID4ga2Vua3lvdVwgOwor5YWI55qHID4gc2VuJydub3VcIDsKK+mAgOW4rSA+IHRhaXNla2lcIDsKK+WIpeWutCA+IGJldHN1ZW5cIDsKK+mAseWgsSA+IHNodXVob3VcIDsKK+WJsuWJjSA+IHdhcmltYWVcIDsKK+WGhua7kSA+IGVua290c3VcIDsKK+WIpeWuhSA+IGJldHRha3VcIDsKK+WFjeeWqyA+IG1lbicnZWtpXCA7Civnm5vmpa0gPiBzZWlneW91XCA7CivlsqHpmbUgPiBrb3VyeW91XCA7CivlibLliKQgPiB3YXJpaGFuXCA7Civou7jnt5ogPiBqaWt1c2VuXCA7Civpq5jotrMgPiBrb3Vzb2t1XCA7CivlhKrnp4AgPiB5dXVzaHV1XCA7CivlgbTovrogPiBzb2t1aGVuXCA7CivmrKDlk6EgPiBrZXRzdWluXCA7Civmo5LpsYggPiBib3VkYXJhXCA7CivlhaXniakgPiBpcmVtb25vXCA7CivlhaXniaIgPiBueXV1cm91XCA7CivnnJ/mg4UgPiBzaGluam91XCA7Civpgbjku7sgPiBzZW4nJ25pblwgOwor5Ye25oKqID4ga3lvdWFrdVwgOwor5Yid5a+pID4gc2hvc2hpblwgOwor55Wq6ZW3ID4gYmFuY2hvdVwgOwor5bm85bCRID4geW91c2hvdVwgOwor6I2J5pyoID4gc291bW9rdVwgOwor5YaN5rOoID4gc2FpY2h1dVwgOwor55uu5pifID4gbWVib3NoaVwgOwor55yf5oCnID4gc2hpbnNlaVwgOwor5bm95a+CID4geXV1amFrdVwgOwor5Ym15YK3ID4gc291c2hvdVwgOwor5YG06LuKID4gc29rdXNoYVwgOwor5YWo54S8ID4gemVuc2hvdVwgOwor5Yid5a2QID4gaGF0c3Vnb1wgOwor5YOa6ImmID4gcnlvdWthblwgOwor5Ye65b6BID4gc2h1c3NlaVwgOwor5bm95a6iID4geXV1a2FrdVwgOwor5YiG5be7ID4gYnVubWFraVwgOwor6YCa5aW9ID4gdHN1dWtvdVwgOwor6IiI6LajID4ga3lvdXNodVwgOwor5Ymj5YqHID4ga2VuZ2VraVwgOwor55mp55eFID4gcmFpYnlvdVwgOwor6YCa5aWPID4gdHN1dXNvdVwgOwor55aj6LazID4gaWJvYXNoaVwgOwor6Imv6IO9ID4gcnlvdW5vdVwgOwor6LyJ56mNID4gc2Fpc2VraVwgOwor6Iy25qOaID4gY2hhZGFuYVwgOwor5bm85a2QID4gb3NhbmFnb1wgOwor6YGp5L6LID4gdGVraXJlaVwgOwor5qSc6YedID4ga2Vuc2hpblwgOwor5Ye65bu3ID4gc2h1dHRlaVwgOwor5YmN5ZOoID4gemVuc2hvdVwgOwor5bSp6JC9ID4gaG91cmFrdVwgOwor55yf5b2xID4gc2hpbicnZWlcIDsKK+W5tOWwkSA+IG5lbnNob3VcIDsKK+W5o+W4myA+IGhlaWhha3VcIDsKK+WHtuW8viA+IGt5b3VkYW5cIDsKK+mAn+WgsSA+IHNva3Vob3VcIDsKK+eUsumrmCA+IGtvdWRha2FcIDsKK+eZveeKtiA+IGhha3Vqb3VcIDsKK+mBqeS7uyA+IHRla2luaW5cIDsKK+WItuWcpyA+IHNlaWF0c3VcIDsKK+WJm+WKmyA+IGdvdXJpa2lcIDsKK+eWvuimliA+IHNoaXNzaGlcIDsKK+iLpueGsSA+IGt1bmV0c3VcIDsKK+eZuueLgiA+IGhha2t5b3VcIDsKK+WJteS9nCA+IHNvdXNha3VcIDsKK+aqhOaWhyA+IGdla2lidW5cIDsKK+WGheaxoCA+IHVjaGlpa2VcIDsKK+ebruaSpSA+IG1lYmFjaGlcIDsKK+WBj+mHnSA+IGhlbnNoaW5cIDsKK+mAgOWtpiA+IHRhaWdha3VcIDsKK+WBj+mHjSA+IGhlbmNob3VcIDsKK+W5tOWtkCA+IHRvc2hpZ29cIDsKK+mAmuWgsSA+IHRzdXVob3VcIDsKK+WCjeiovCA+IGJvdXNob3VcIDsKK+WCjeiouyA+IGJvdWNodXVcIDsKK+WHuuW4hiA+IHNodXBwYW5cIDsKK+WJo+WFiCA+IGtlbnNha2lcIDsKK+WFiOeOiyA+IHNlbicnbm91XCA7Civlh7blubQgPiBreW91bmVuXCA7CivnnJ/lubMgPiBtYXBwaXJhXCA7CivnmZLnnYAgPiB5dWNoYWt1XCA7Civlia/kvb8gPiBmdWt1c2hpXCA7Civpq5joqr8gPiBrb3VjaG91XCA7CivojqvlpKcgPiBiYWt1ZGFpXCA7CivliY3ljoQgPiBtYWV5YWt1XCA7CivprZrnq5wgPiBneW9yeXV1XCA7CivlhbHmuIggPiBreW91c2FpXCA7CivlhYfnjJsgPiBreW91bW91XCA7Civov7flrq4gPiBtZWlreXV1XCA7CivpgYXliLsgPiBjaGlrb2t1XCA7Civnm7jmib8gPiBzb3VzaG91XCA7Civpq5joqZUgPiBrb3VoeW91XCA7CivluZTluZUgPiBtYW5tYWt1XCA7Civmo67plpEgPiBzaGlua2FuXCA7CivpgLLlkYggPiBzaGludGVpXCA7Civovp/mmJMgPiBoZWtpZWtpXCA7CivlhYfnirYgPiBreW91am91XCA7CivlhaXmvIEgPiBueXV1Z3lvXCA7Civnm7TmiqsgPiBjaG9rdWhpXCA7CivnmbrnhZkgPiBoYXRzdWVuXCA7CivoiJ/ooYwgPiBzaHV1a291XCA7CivlsrjovrogPiBraXNoaWJlXCA7Civpq5jop5IgPiBrb3VrYWt1XCA7CivpgZPkv5cgPiBkb3V6b2t1XCA7CivpgLLlj5YgPiBzaGluc2h1XCA7CivohqjpmoYgPiBib3VyeXV1XCA7CivlgI3poY0gPiBiYWlnYWt1XCA7Civnm67mjIcgPiBtb2t1c2hpXCA7CivprZTnqp8gPiBtYWt1dHN1XCA7Civlh53lv7UgPiBneW91bmVuXCA7Civlt6HmrbQgPiBqdW5yZWtpXCA7CivlsbHpoIIgPiBzYW5jaG91XCA7Civou6LnsY0gPiB0ZW5zZWtpXCA7CivlhaXmua8gPiBueXV1dG91XCA7Civlub3looMgPiB5dXVreW91XCA7Civlh7rlsZUgPiBzaHV0dGVuXCA7CivojZLmioAgPiBhcmF3YXphXCA7CivlhaXmuK8gPiBueXV1a291XCA7CivlhaXmuKAgPiBueXV1a3lvXCA7Civoi5vng4ggPiBrYXJldHN1XCA7CivlhYnnhacgPiBrb3VzaG91XCA7Civov6vlrrMgPiBoYWt1Z2FpXCA7CivlhavmtLIgPiB5YXNoaW1hXCA7CivovZ/msoggPiBnb3VjaGluXCA7CivnnIzluoEgPiBrZW5jaG91XCA7Civlh6HlurggPiBib24nJ3lvdVwgOwor55mH55mWID4ga2FucGVraVwgOwor6Imy57SgID4gc2hpa2lzb1wgOwor6L+R5bm0ID4ga2luJyduZW5cIDsKK+ebtOaEnyA+IGNob2trYW5cIDsKK+ebhuaariA+IGJvbmt1cmVcIDsKK+i5iei3jCA+IHNhdGV0c3VcIDsKK+W5tOWilyA+IHRvc2hpbWFcIDsKK+mBiuS+oCA+IHl1dWt5b3VcIDsKK+WJjeWFhiA+IHplbmNob3VcIDsKK+eZh+eXhyA+IGthbnNob3VcIDsKK+i9ouatuyA+IHJla2lzaGlcIDsKK+mBk+S4uyA+IGRvdXNodXVcIDsKK+WHi+aCtCA+IGNob3VzdWlcIDsKK+WDp+exjSA+IHNvdXNla2lcIDsKK+mBk+S4rSA+IGRvdWNodXVcIDsKK+WxsemZvSA+IHNhbicneW91XCA7Civlt6Xmpa0gPiBrb3VneW91XCA7CivlsbHpmbUgPiBzYW5yeW91XCA7CivmrKDkvLggPiBrZW5zaGluXCA7CivpgYrkvJEgPiB5dXVreXV1XCA7Civnl5joi5cgPiB0b3VieW91XCA7Civlub3lm5ogPiB5dXVzaHV1XCA7CivpgLHliIogPiBzaHV1a2FuXCA7CivlupbljqggPiBob3VjaHV1XCA7CivlgJLplqMgPiB0b3VrYWt1XCA7CivliJflm70gPiByZWtrb2t1XCA7CivnnaPlirEgPiB0b2t1cmVpXCA7Civlt6Hmpa0gPiBqdW5neW91XCA7CivmqJnmupYgPiBoeW91anVuXCA7Civoj4rliKQgPiBraWt1YmFuXCA7CivnlKPpoY0gPiBzYW5nYWt1XCA7CivpgLHlhoUgPiBzaHV1bmFpXCA7Civlgr7ogbQgPiBrZWljaG91XCA7CivpsLvlsYsgPiB1bmFnaXlhXCA7CivluK/lv4MgPiBvYmlzaGluXCA7CivlhaXmsLQgPiBueXV1c3VpXCA7CivliLbli50gPiBzZWlzaG91XCA7CivliLvliLsgPiBrb2trb2t1XCA7Civlgpnok4QgPiBiaWNoaWt1XCA7CivoiIjooYwgPiBrb3VneW91XCA7CivpgJrlkI0gPiB0b29yaW5hXCA7Civou43nsY0gPiBndW5zZWtpXCA7CivoiLnoiLYgPiBzZW5wYWt1XCA7CivpgKPli50gPiByZW5zaG91XCA7CivpgJrlj7IgPiB0c3V1c2hpXCA7Civnm7TlvowgPiBjaG9rdWdvXCA7Civnm7TlvoQgPiBjaG9ra2VpXCA7Civnm7TlvoAgPiBjaG9rdW91XCA7Civkv67ppIogPiBzaHV1eW91XCA7CivlhYfmvKIgPiBreW91a2FuXCA7Civnl4Xoj4wgPiBieW91a2luXCA7Civlg63np7AgPiBzZW5zaG91XCA7Civlh7rlpZQgPiBzaHVwcG9uXCA7CivovpvmirEgPiBzaGluYm91XCA7Civmpb3ogZYgPiBnYWt1c2VpXCA7CivlgaXoqLogPiBrZW5zaGluXCA7Civou73nl4cgPiBrZWlzaG91XCA7CivoiLnohbkgPiBzZW5wdWt1XCA7Civnmb3mtLIgPiBzaGlyYXN1XCA7Civlh6HlsI8gPiBib25zaG91XCA7CivliY3ku7sgPiB6ZW4nJ25pblwgOwor5beo5pyoID4ga3lvYm9rdVwgOwor6Iis6IulID4gaGFuJydueWFcIDsKK+WCt+iAhSA+IHNob3VzaGFcIDsKK+WGhuabsiA+IGVua3lva3VcIDsKK+WwvumqqCA+IGJpa290c3VcIDsKK+WGheacjSA+IG5haWZ1a3VcIDsKK+W6g+WRiiA+IGtvdWtva3VcIDsKK+iKneeUnyA+IHNoaWJhZnVcIDsKK+mAmuWLpCA+IHRzdXVraW5cIDsKK+iHquiqrCA+IGppc2V0c3VcIDsKK+WFhea6oiA+IGp1dWl0c3VcIDsKK+eci+WuoiA+IGthbmtha3VcIDsKK+iMtuaJmCA+IGNoYXRha3VcIDsKK+ecn+WkjyA+IG1hbmF0c3VcIDsKK+WHtuWkiSA+IGt5b3VoZW5cIDsKK+i+uuW5hSA+IGhlbnB1a3VcIDsKK+W6l+WGhSA+IHRlbicnbmFpXCA7CivliLrlgrcgPiBzaGlzaG91XCA7Civlt53mn7MgPiBzZW5yeXV1XCA7Civnmbrms6ggPiBoYXRjaHV1XCA7Civmpa3ohbkgPiBnb3VoYXJhXCA7Civoia/nqK4gPiByeW91c2h1XCA7CivlhbHmo7IgPiBreW91c2VpXCA7CivlgJ/ph5EgPiBzaGFra2luXCA7CivliYrkupUgPiBzYWt1c2VpXCA7CivnlbDos6ogPiBpc2hpdHN1XCA7Civluo/liJcgPiBqb3JldHN1XCA7CivpgJ/lhpkgPiBzb2t1c2hhXCA7CivlgJLpjK8gPiB0b3VzYWt1XCA7CivluJ3lvrMgPiB0ZWl0b2t1XCA7CivpgJrliIYgPiB0c3V1YnVuXCA7Civov73lloQgPiB0c3VpemVuXCA7CivlhbzmnIkgPiBrZW4nJ3l1dVwgOwor5Ye25aCxID4ga3lvdWhvdVwgOwor5qSc6KqNID4ga2VuJyduaW5cIDsKK+iNkuW3uyA+IGFyYW1ha2lcIDsKK+eXheiIjiA+IGJ5b3VzaGFcIDsKK+iInuiMuCA+IG1haXRha2VcIDsKK+ain+mmliA+IGt5b3VzaHVcIDsKK+mAseS7pCA+IHNodXVyZWlcIDsKK+WHhuW3niA+IGp1bnNodXVcIDsKK+WFseagkyA+IHRvbW9zZW5cIDsKK+aknOiovCA+IGtlbnNob3VcIDsKK+aknOiouiA+IGtlbnNoaW5cIDsKK+W4uOWuvyA+IGpvdXlhZG9cIDsKK+S/oemgvCA+IHNoaW5yYWlcIDsKK+WFieayoiA+IGtvdXRha3VcIDsKK+W4neW7nyA+IHRlaWJ5b3VcIDsKK+WHueWcsCA+IGt1Ym9jaGlcIDsKK+WHuOWdiiA+IGRla29ib3VcIDsKK+iFsememCA+IGtlbnNob3VcIDsKK+i7jeelqCA+IGd1bnB5b3VcIDsKK+ebm+W+syA+IHNlaXRva3VcIDsKK+eUn+mVtyA+IHNlaWNob3VcIDsKK+alreiAhSA+IGd5b3VzaGFcIDsKK+i7jeelniA+IGd1bnNoaW5cIDsKK+WFpeajuiA+IG55dXVrYW5cIDsKK+i5iOilsiA+IHRvdXNodXVcIDsKK+mAsuS4iiA+IHNoaW5qb3VcIDsKK+iIn+iJhyA+IHNodXV0ZWlcIDsKK+W5veWLnSA+IHl1dXNob3VcIDsKK+W3qOaTmCA+IGt5b2hha3VcIDsKK+iIn+iIqiA+IHNodXVrb3VcIDsKK+aoquajkiA+IHlva29ib3VcIDsKK+WItuS9nCA+IHNlaXNha3VcIDsKK+W5tOWPjiA+IG5lbnNodXVcIDsKK+WHi+WwvSA+IGNob3VqaW5cIDsKK+ebl+W/gyA+IHRvdXNoaW5cIDsKK+WFpeaihSA+IG55dXViYWlcIDsKK+iFk+mqqCA+IGhpa290c3VcIDsKK+WFseaciSA+IGt5b3V5dXVcIDsKK+mwpOWtkCA+IGJ1cmlra29cIDsKK+ebuOWuoiA+IGFpa3lha3VcIDsKK+ecn+WboCA+IHNoaW4nJ2luXCA7Civov73lj7cgPiB0c3VpZ291XCA7CivpgKPkvZwgPiByZW5zYWt1XCA7CivlhY7mrKAgPiB0b2tldHN1XCA7CivlhYbmsJEgPiBjaG91bWluXCA7CivliKXlhIAgPiBiZXRzdWdpXCA7CivlhaXmoKEgPiBueXV1a291XCA7Civoia/nn6UgPiByeW91Y2hpXCA7CivpgKPkvJEgPiByZW5reXV1XCA7CivliIflkbMgPiBraXJlYWppXCA7CivpgKDkvZwgPiB6b3VzYWt1XCA7Civlha3mm7ggPiByb2t1c2hvXCA7CivnnYDliaMgPiBjaGFra2VuXCA7CivliIblkaggPiBidW5zaHV1XCA7Civlha3mm5wgPiByb2t1eW91XCA7CivlhavmnJQgPiBoYXNzYWt1XCA7CivliKrkv64gPiBzYW5zaHV1XCA7Civlh4blsIYgPiBqdW5zaG91XCA7CivnnIzlooMgPiBrZW5reW91XCA7CivohZXpppYgPiB1ZGVrdWJpXCA7CivnnLzlipsgPiBnYW5yaWtpXCA7CivojZLlr6UgPiBrb3VyeW91XCA7CivpgJrkvosgPiB0c3V1cmVpXCA7Civlsqzop5IgPiBrb3VrYWt1XCA7CivmqJnmppwgPiBoeW91Ym91XCA7CivlhaXmnaUgPiBueXV1cmFpXCA7CivnlaXorZwgPiByeWFrdWZ1XCA7CivovaLmlq0gPiByZWtpZGFuXCA7Civou6LnlKggPiB0ZW4nJ3lvdVwgOwor55qQ5pyIID4gc2F0c3VraVwgOwor6YCj5LitID4gcmVuY2h1dVwgOwor5YWD5q2MID4gbW90b3V0YVwgOwor6Imy55m9ID4gaXJvamlyb1wgOwor5bKp6KeSID4gaXdha2Fkb1wgOwor6YCT5L+hID4gdGVpc2hpblwgOwor5bqW5LiBID4gaG91Y2hvdVwgOwor6Iy25bqXID4gY2hhbWlzZVwgOwor5Yed5aGKID4gZ3lvdWthaVwgOwor6YCG5YWJID4gZ3lha2tvdVwgOwor5qKf6ZuEID4ga3lvdXl1dVwgOwor5Ye65ZOBID4gc2h1cHBpblwgOwor5qK16ZCYID4gYm9uc2hvdVwgOwor6Ii557SaID4gc2Vua3l1dVwgOwor6L6y5a2mID4gbm91Z2FrdVwgOwor6YCa5Lq6ID4gdHN1dWppblwgOwor55Wl6KqeID4gcnlha3Vnb1wgOwor5YOt55SoID4gc2VuJyd5b3VcIDsKK+mAmuS6pCA+IHRzdXVrb3VcIDsKK+i4iui6jSA+IHlvdXlha3VcIDsKK+iMtuW4rSA+IGNoYXNla2lcIDsKK+i/veWIiiA+IHRzdWlrYW5cIDsKK+eUqOmHjyA+IHlvdXJ5b3VcIDsKK+iHquiZkCA+IGppZ3lha3VcIDsKK+msvOeVnCA+IGtpY2hpa3VcIDsKK+iFkOmjnyA+IGZ1c2hva3VcIDsKK+W5tOWGhSA+IG5lbicnbmFpXCA7CivlhazmlbUgPiBrb3V0ZWtpXCA7Civlgo3ogbQgPiBib3VjaG91XCA7Civlt6bmipggPiBzYXNldHN1XCA7CivlhazmlZkgPiBrb3VreW91XCA7Civnmb3moYMgPiBoYWt1dG91XCA7Civoi6Xmnp0gPiB3YWthZWRhXCA7Civlh7rlkJEgPiBzaHVra291XCA7Civov5Hlm70gPiBraW5nb2t1XCA7CivoiLnnsY0gPiBzZW5zZWtpXCA7CivlhYPmqJkgPiBnZW5weW91XCA7Civlh7rlj6MgPiBkZWd1Y2hpXCA7CivliIfliYogPiBzZXNzYWt1XCA7CivnlaXop6MgPiByeWFra2FpXCA7CivliIDljKAgPiB0b3VzaG91XCA7CivnmbrmoYggPiBoYXRzdWFuXCA7CivnlKPph48gPiBzYW5yeW91XCA7Civou5/nkIMgPiBuYW5reXV1XCA7CivliKXkuosgPiBiZXRzdWppXCA7Civkv67pjKwgPiBzaHV1cmVuXCA7Civnm7TlpY8gPiBqaWtpc291XCA7CivluILluoEgPiBzaGljaG91XCA7CivoiKrntpogPiBrb3V6b2t1XCA7Civoia/nlLAgPiByeW91ZGVuXCA7CivotrPpn7MgPiBhc2hpb3RvXCA7CivlhYjmo5IgPiBzYWtpYm91XCA7CivliIjlhaUgPiBrYXJpaXJlXCA7Civnmb3mnKggPiBzaGlyYWtpXCA7CivmqJnmnKwgPiBoeW91aG9uXCA7Civnmofml48gPiBrb3V6b2t1XCA7Civlh7rli6QgPiBzaHVra2luXCA7Civnmb3mm7ggPiBoYWt1c2hvXCA7CivovrrlooMgPiBoZW5reW91XCA7CivpgIHkv6EgPiBzb3VzaGluXCA7Civou43nlKggPiBndW4nJ3lvdVwgOwor5Yid5LmzID4gc2hvbnl1dVwgOwor5bmz5L+hID4gaGVpc2hpblwgOwor55m+5pmvID4gaHlha2tlaVwgOwor6I2S5aOBID4gYXJha2FiZVwgOwor5YWr5o6bID4gaGFra2FrZVwgOwor6Lyq5qWtID4gcmluZ3lvdVwgOwor6Iy25a+uID4gY2hhcnlvdVwgOwor5bmz5L2cID4gaGVpc2FrdVwgOwor55uy5Z+3ID4gbW91c2h1dVwgOwor55SY6YWSID4gYW1hemFrZVwgOwor5YWJ5p2fID4ga291c29rdVwgOwor5YWD5qCTID4gbW90b3NlblwgOwor5YWr5oy6ID4gaGF0Y2hvdVwgOwor55yf5YmjID4gc2hpbmtlblwgOwor5Ye55Ye4ID4gb3V0b3RzdVwgOwor6L6b5a2QID4ga2FyYXNoaVwgOwor5Ye45Ye5ID4gdG90c3VvdVwgOwor55m+5pa5ID4gaHlhcHBvdVwgOwor5bmz5LyPID4gaGVpZnVrdVwgOwor5YaF5b+DID4gbmFpc2hpblwgOwor5YG06IOMID4gc29rdWhhaVwgOwor55mC5rOVID4gcnlvdWhvdVwgOwor5YWl5o6bID4gaXJla2FrdVwgOwor6L+35L+hID4gbWVpc2hpblwgOwor5Ye25YiDID4ga3lvdWppblwgOwor5Ye65YW4ID4gc2h1dHRlblwgOwor5Ye65YW1ID4gc2h1cHBlaVwgOwor55m95paRID4gaGFrdWhhblwgOwor5YiA5YK3ID4gdG91c2hvdVwgOwor6YCA5LqsID4gdGFpa3lvdVwgOwor55m95paHID4gaGFrdWJ1blwgOwor5Ye45YaGID4gdG90c3VlblwgOwor5bGx6LOKID4gc2Fuem9rdVwgOwor55y85LitID4gZ2FuY2h1dVwgOwor5YG06IGeID4gc29rdWJ1blwgOwor5qWt56iuID4gZ3lvdXNodVwgOwor5YWH5pq0ID4ga3lvdWJvdVwgOwor5YWr5omLID4geWF0c3VkZVwgOwor6Imy54mpID4gaXJvbW9ub1wgOwor5YWD5pydID4gZ2VuY2hvdVwgOwor55ez55eFID4gcmluYnlvdVwgOwor5YWD5pyNID4gZ2VucHVrdVwgOwor5L+u6YGTID4gc2h1dWRvdVwgOwor5Ye25YWaID4ga3lvdXRvdVwgOwor5YWL5piOID4ga29rdW1laVwgOwor5bm05LiKID4gdG9zaGl1ZVwgOwor5L+h6YeRID4gc2hpbmtpblwgOwor5YWJ5piOID4ga291bXlvdVwgOwor5YWx5oSfID4ga3lvdWthblwgOwor5bel5bugID4ga291c2hvdVwgOwor6auY57WmID4ga291a3l1dVwgOwor5L+d6YeIID4gaG9zaGFrdVwgOwor5YWl5omLID4gbnl1dXNodVwgOwor5YWl5omAID4gbnl1dXNob1wgOwor6L+w5L2cID4ganVzc2FrdVwgOwor5YaF5bmVID4gbmFpbWFrdVwgOwor5qmf5a+GID4ga2ltaXRzdVwgOwor6LiP6KWyID4gdG91c2h1dVwgOwor6auY57SaID4ga291a3l1dVwgOwor55u05Za2ID4gY2hva3VlaVwgOwor55u05ZapID4gY2hva3V5dVwgOwor5bCP6Z2iID4gc2hvdW1lblwgOwor5bC/6YW4ID4gbnlvdXNhblwgOwor6L6b5aS3ID4ga29idXNoaVwgOwor5YWt5oOFID4gcm9rdWpvdVwgOwor6auY57KxID4ga291cnlhblwgOwor5bCP6ZujID4gc2hvdW5hblwgOwor5bGA6YOoID4ga3lva3VidVwgOwor5bid5Zu9ID4gdGVpa29rdVwgOwor5Ye65LyaID4gc2h1a2thaVwgOwor5bCP6ZqKID4gc2hvdXRhaVwgOwor6ayx54S2ID4gdXRzdXplblwgOwor5YWx5b25ID4ga3lvdWVraVwgOwor5Ye65LuVID4gc2h1c3NoaVwgOwor5YK355eVID4gc2hvdWtvblwgOwor5YaN5a+pID4gc2Fpc2hpblwgOwor55yM5YaFID4ga2VuJyduYWlcIDsKK+eUs+iriyA+IHNoaW5zZWlcIDsKK+eZuuaMryA+IGhhc3NoaW5cIDsKK+Wwv+mBkyA+IG55b3Vkb3VcIDsKK+WBtOe3miA+IHNva3VzZW5cIDsKK+WFrOW+syA+IGtvdXRva3VcIDsKK+WwkemWoiA+IHNob3VrYW5cIDsKK+W4uOWLnSA+IGpvdXNob3VcIDsKK+WwkemWkSA+IHNob3VrYW5cIDsKK+WGpeWigyA+IG1laWt5b3VcIDsKK+ecn+S6uiA+IHNoaW5qaW5cIDsKK+eZveaJhyA+IGhha3VzZW5cIDsKK+Wwj+mWkSA+IHNob3VrYW5cIDsKK+WGt+WYsiA+IHJlaWNob3VcIDsKK+WFqOW/gyA+IHplbnNoaW5cIDsKK+eXm+eXkiA+IHRzdXV5b3VcIDsKK+mmtOm5vyA+IHRvbmFrYWlcIDsKK+ebtOWPgiA+IGppa2lzYW5cIDsKK+WFpeW/tSA+IG55dXVuZW5cIDsKK+iEiumrhCA+IHNla2l6dWlcIDsKK+ecn+S4iyA+IG1hc2hpdGFcIDsKK+WGhuWuiSA+IGVuJyd5YXN1XCA7CivlsIrplbcgPiBzb25jaG91XCA7CivlhazluoEgPiBrb3VjaG91XCA7Civov5Tkv6EgPiBoZW5zaGluXCA7Civlgb3nrYYgPiBnaWhpdHN1XCA7Civnm7jliYsgPiBzb3Vrb2t1XCA7CivluKvljKAgPiBzaGlzaG91XCA7Civohp3ooYwgPiBzaGlra291XCA7Civou6Lms6ggPiB0ZW5jaHV1XCA7CivlhaXlu7cgPiBueXV1dGVpXCA7Civkv5fovKkgPiB6b2t1aGFpXCA7CivohJrpn7sgPiBreWFrdWluXCA7Civlt6XlraYgPiBrb3VnYWt1XCA7Civlh6Hkv5cgPiBib256b2t1XCA7Civlr5LprpIgPiBrYW5idW5hXCA7Civmpa3nl4UgPiBnb3VieW91XCA7CivovrLljZogPiBub3VoYWt1XCA7CivovrLljZQgPiBub3VreW91XCA7CivlhYfmiYsgPiBreW91c2h1XCA7CivlhajluYUgPiB6ZW5wdWt1XCA7Civlhavlt54gPiB5YXNoaW1hXCA7CivlhajluK0gPiB6ZW5zZWtpXCA7Civpq5jnpoQgPiBrb3Vyb2t1XCA7Civov5HkvZwgPiBraW5zYWt1XCA7CivojbfkuLsgPiBuaW51c2hpXCA7Civoia/muK8gPiByeW91a291XCA7Civlr7jpmpkgPiBzdW5nZWtpXCA7Civlh6HkvZwgPiBib25zYWt1XCA7Civmpa3nlYwgPiBneW91a2FpXCA7Civnm7jlhYsgPiBzb3Vrb2t1XCA7Civnm67liY0gPiBtb2t1emVuXCA7CivlsqnogowgPiBpd2FoYWRhXCA7Civlh6HkurogPiBib24nJ25pblwgOwor5L+h6LKpID4gc2hpbnBhblwgOwor5L+X6LajID4gem9rdXNodVwgOwor5L+u6KuWID4gc2h1dXJvblwgOwor5ben5aaZID4ga291bXlvdVwgOwor5YW15a2mID4gaGVpZ2FrdVwgOwor55Sw6J66ID4gdGFuaXNoaVwgOwor55m65b+DID4gaG9zc2hpblwgOwor5YeN5YK3ID4gdG91c2hvdVwgOwor55Sj6KSlID4gc2Fuam9rdVwgOwor5bCP6YqDID4gc2hvdWp1dVwgOwor6Imv5rOVID4gcnlvdWhvdVwgOwor5YWH5oKqID4ga3lvdWFrdVwgOwor5L6/6YCaID4gYmVudHN1dVwgOwor5bCP6YmiID4ga29iYWNoaVwgOwor6Iul5bm0ID4gamFrdW5lblwgOwor5YWH5oKNID4ga3lvdWthblwgOwor6LWk6aOvID4gc2VraWhhblwgOwor5bid5YqHID4gdGVpZ2VraVwgOwor5YWx5a2YID4ga3lvdXpvblwgOwor55yB5LukID4gc2hvdXJlaVwgOwor6Ieq57KbID4gamlzaHVrdVwgOwor55m+5bqmID4gaHlha3Vkb1wgOwor5YaF5aOBID4gbmFpaGVraVwgOwor5L+u6KiCID4gc2h1dXRlaVwgOwor5YWN5b25ID4gbWVuJydla2lcIDsKK+eWvueXhSA+IHNoaXBwZWlcIDsKK+WFg+aCqiA+IGdlbicnYWt1XCA7Civnlrznl5sgPiB0b3V0c3V1XCA7CivlrrPps6UgPiBnYWljaG91XCA7Civlgo3nmb0gPiBib3VoYWt1XCA7CivmpJzntKIgPiBrZW5zYWt1XCA7Civoia/msJEgPiByeW91bWluXCA7Civlhajlr64gPiB6ZW5yeW91XCA7CivlhaXlsYUgPiBueXV1a3lvXCA7CivnlLLomasgPiBrb3VjaHV1XCA7CivouoHnl4UgPiBzb3VieW91XCA7CivnmbvluoEgPiB0b3VjaG91XCA7CivlhajlrrkgPiB6ZW4nJ3lvdVwgOwor5YWl5bCEID4gbnl1dXNoYVwgOwor55Sw6JmrID4gdGFtdXNoaVwgOwor55uy5L+hID4gbW91c2hpblwgOwor55m95biGID4gc2hpcmFob1wgOwor6auY55u0ID4ga291amlraVwgOwor6Ia/6IO4ID4gbm91a3lvdVwgOwor5bCK6YeNID4gc29uY2hvdVwgOwor55Sf6KGAID4gbmFtYWNoaVwgOwor5YWl5a+HID4gbnl1dWtvdVwgOwor5YWo5a2mID4gemVuZ2FrdVwgOwor5YWH5by+ID4ga3lvdWRhblwgOwor5YWl5a6aID4gbnl1dWpvdVwgOwor6Lui5qWtID4gdGVuZ3lvdVwgOwor5bGI6KiXID4ga3V0dGFrdVwgOwor55u05LydID4gamlraWRlblwgOwor6Iy25YyZID4gY2hhc2FqaVwgOwor6Ieq562GID4gamloaXRzdVwgOwor6IuX5bqKID4gbmFlZG9rb1wgOwor6LWk6Z2iID4gc2VraW1lblwgOwor6L6b5Yq0ID4gc2hpbnJvdVwgOwor5YWE5byfID4ga3lvdWRhaVwgOwor5L+K6LOiID4gc2h1bmtlblwgOwor5YWs5ai8ID4ga291c2hvdVwgOwor5YaF5ZynID4gbmFpYXRzdVwgOwor55eb54K5ID4gdHN1dXRlblwgOwor55u05LqkID4gY2hva2tvdVwgOwor5YWI5bm0ID4gc2VuJyduZW5cIDsKK+eWseeWuSA+IGhvdXNoaW5cIDsKK+S/l+isoSA+IHpva3V5b3VcIDsKK+muruWwkSA+IHNlbnNob3VcIDsKK+Wwj+mBkyA+IGtvbWljaGlcIDsKK+iHqueriyA+IGppcml0c3VcIDsKK+S/ruihjCA+IHNodWd5b3VcIDsKK+WGheWbvSA+IG5haWtva3VcIDsKK+S/l+iruiA+IHpva3VnZW5cIDsKK+iGj+iWrCA+IGtvdXlha3VcIDsKK+iHs+emjyA+IHNoaWZ1a3VcIDsKK+WvuumKrSA+IHRlcmFzZW5cIDsKK+i+suS9nCA+IG5vdXNha3VcIDsKK+S/l+irpiA+IHpva3V0YWlcIDsKK+Wwj+mAlSA+IHNob3VrZWlcIDsKK+S/iuixqiA+IHNodW5nb3VcIDsKK+S/l+irliA+IHpva3Vyb25cIDsKK+eXh+eKtiA+IHNob3Vqb3VcIDsKK+S/l+irhyA+IHpva3VkYW5cIDsKK+WwjumAmiA+IGRvdXRzdXVcIDsKK+mtmuaXjyA+IGd5b3pva3VcIDsKK+WFpeWpvyA+IGlyaW11a29cIDsKK+iHvOegsiA+IGt5dXVob3VcIDsKK+WDu+adkSA+IGhla2lzb25cIDsKK+muqOWxiyA+IHN1c2hpeWFcIDsKK+WBpeelpSA+IGtlbnNob3VcIDsKK+WvhOmjnyA+IGtpc2hva3VcIDsKK+eZveWxsSA+IGhha3VzYW5cIDsKK+eXheeKtiA+IGJ5b3Vqb3VcIDsKK+WFg+W5tCA+IGdhbicnbmVuXCA7CivlsI/ovrIgPiBzaG91bm91XCA7CivluK3kuIogPiBzZWtpam91XCA7CivojZLkuosgPiBhcmFnb3RvXCA7Civnm6Pkv64gPiBrYW5zaHV1XCA7Civlgbjnm5cgPiBjaHV1dG91XCA7Civlg7vmm7ggPiBoZWtpc2hvXCA7CivnlZnnva4gPiByeXV1Y2hpXCA7CivovpvlhZogPiBrYXJhdG91XCA7CivmoLzpl5ggPiBrYWt1dG91XCA7CivnlarntYQgPiBiYW5ndW1pXCA7Civkv5foqIAgPiB6b2t1Z2VuXCA7CivprYLmn7EgPiBrb25jaHV1XCA7CivovKrlu5MgPiByaW5rYWt1XCA7Civnmb7lrpggPiBoeWFra2FuXCA7CivkvZzpoqggPiBzYWt1ZnV1XCA7Civppqzpo58gPiBiYXNob2t1XCA7CivoiabmqYsgPiBrYW5reW91XCA7CivmqJnlrpogPiBoeW91dGVpXCA7CivohqjohLkgPiBib3VjaG91XCA7CivlgJboh6MgPiBrb3VzaGluXCA7CivmqKrlpaogPiBvdWRhdHN1XCA7Civnmb3lrZAgPiBzaGlyb2tvXCA7Civlt6jllYYgPiBreW9zaG91XCA7Civlho3lkYogPiBzYWlrb2t1XCA7Civpp4XplbcgPiBla2ljaG91XCA7Civou43mpb0gPiBndW5nYWt1XCA7CivlsbHoiosgPiB5YW1haW1vXCA7CivluJ3kuqwgPiB0ZWlreW91XCA7CivovLvlsIQgPiBmdWt1c2hhXCA7CivlhaXlo7AgPiBuaXNzaG91XCA7Civou73mjbcgPiBrZWlzaG91XCA7Civlr4bpm7IgPiBtaXRzdXVuXCA7Civlgr7ms6ggPiBrZWljaHV1XCA7CivlhaXloqggPiBpcmV6dW1pXCA7Civlr4bpm4YgPiBtaXNzaHV1XCA7Civog7jplpMgPiBreW91a2FuXCA7CivoibLmn4QgPiBpcm9nYXJhXCA7Civog4zpq5ggPiBzZWl0YWthXCA7CivlsIbou40gPiBzaG91Z3VuXCA7CivmpoLms4EgPiBnYWlreW91XCA7Civlhajln58gPiB6ZW4nJ2lraVwgOwor6Iqz5b+DID4gaG91c2hpblwgOwor5YWl5aC0ID4gbnl1dWpvdVwgOwor55uX5L2cID4gdG91c2FrdVwgOwor5YWJ5a2mID4ga291Z2FrdVwgOwor5bGx6IW5ID4gc2FucHVrdVwgOwor5YWI5a2mID4gc2VuZ2FrdVwgOwor6ISa6YOoID4ga3lha3VidVwgOwor5YWs5Zu9ID4ga291a29rdVwgOwor5YWl5Z+OID4gbnl1dWpvdVwgOwor6IO06ZW3ID4gZG91bmFnYVwgOwor5qmL5Y+wID4ga3lvdWRhaVwgOwor5YOn5pyNID4gc291ZnVrdVwgOwor6aaY6aaWID4ga2FrdXNodVwgOwor5YaN5YudID4gc2Fpc2hvdVwgOwor6IW56JS1ID4gZnVrdXpvdVwgOwor6Imv5p2QID4gcnlvdXphaVwgOwor55mH5oCnID4ga2Fuc2hvdVwgOwor5L2O6aGNID4gdGVpZ2FrdVwgOwor6a2a5ouTID4gZ3lvdGFrdVwgOwor6LyU5by8ID4gaG9oaXRzdVwgOwor5YWo5Zu9ID4gemVuZ29rdVwgOwor5YWl5Z2RID4gbnl1dWtvdVwgOwor6L6b5LqlID4gc2hpbmdhaVwgOwor6Imv5pu4ID4gcnlvdXNob1wgOwor5a6w6aCYID4gc2FpcnlvdVwgOwor55m95aSqID4gc2hpcmF0YVwgOwor55m95aScID4gYnlha3V5YVwgOwor6Lm054iqID4ga2VkenVtZVwgOwor5beo5YygID4ga3lvc2hvdVwgOwor6LWk6YyGID4gYWthc2FiaVwgOwor5YWl5ZujID4gbnl1dWRhblwgOwor5bel5Y2aID4ga291aGFrdVwgOwor5YWE5auBID4gYW5peW9tZVwgOwor5beu5YilID4gc2FiZXRzdVwgOwor5Yaq5LmXID4gYmVraWpvdVwgOwor6LuN5pyNID4gZ3VucHVrdVwgOwor5bel5YygID4ga291c2hvdVwgOwor55Sy6IOEID4ga2F0Y2h1dVwgOwor6Ieq55m6ID4gamloYXRzdVwgOwor55Wi56ufID4gaGlra3lvdVwgOwor5qCh6ZayID4ga291ZXRzdVwgOwor55aO55WlID4gc29yeWFrdVwgOwor5bKp56SBID4gZ2Fuc2hvdVwgOwor5qCh6ZW3ID4ga291Y2hvdVwgOwor5YK35q2OID4gc2hvdXRhblwgOwor6Imy5paHID4gaXJvYnVtaVwgOwor55qH5Zu9ID4ga291a29rdVwgOwor6aaW6aCYID4gc2h1cnlvdVwgOwor6LWk6YeRID4gYWthZ2FuZVwgOwor6amV6IKGID4ga3lvdXNoaVwgOwor5a2m6b2iID4gZ2FrdXJlaVwgOwor5YWx5ZCMID4ga3lvdWRvdVwgOwor5a616ZeHID4geW9peWFtaVwgOwor5bCP6KuWID4gc2hvdXJvblwgOwor5YWH5aSJID4ga3lvdWhlblwgOwor5L2T6ZW3ID4gdGFpY2hvdVwgOwor5YGc55WZID4gdGVpcnl1dVwgOwor5biC5LitID4gc2hpY2h1dVwgOwor5bKp55+zID4gZ2Fuc2VraVwgOwor6IW56Iq4ID4gaGFyYWdlaVwgOwor5YWs5ZGKID4ga291a29rdVwgOwor55m95ZywID4gc2hpcm9qaVwgOwor5qC46YW4ID4ga2FrdXNhblwgOwor5YWt5ZCIID4gcmlrdWdvdVwgOwor6Ii55q2MID4gZnVuYXV0YVwgOwor5a++6LGhID4gdGFpc2hvdVwgOwor6aiw6JC9ID4gdG91cmFrdVwgOwor5qSc55arID4ga2VuJydla2lcIDsKK+iFkOidlSA+IGZ1c2hva3VcIDsKK+WumumhjSA+IHRlaWdha3VcIDsKK+WBj+eZliA+IGhlbnBla2lcIDsKK+Wwj+ioiCA+IHNob3VrZWlcIDsKK+WGheWCtyA+IG5haXNob3VcIDsKK+WFuOWJhyA+IHRlbnNva3VcIDsKK+WFheWhniA+IGp1dXNva3VcIDsKK+ajkue4niA+IGJvdWppbWFcIDsKK+WFreWNgSA+IHJva3VqdXVcIDsKK+i1pOmBkyA+IHNla2lkb3VcIDsKK+S9temAsiA+IGhlaXNoaW5cIDsKK+eUn+iCiSA+IHNlaW5pa3VcIDsKK+akjeeariA+IHNob2t1aGlcIDsKK+Wun+mcgCA+IGppdHN1anVcIDsKK+WFjeWbmiA+IG1lbnNodXVcIDsKK+mnhumAkCA+IGt1Y2hpa3VcIDsKK+mnkOi7iiA+IGNodXVzaGFcIDsKK+agqumHkSA+IGthYnVraW5cIDsKK+iHqueOiSA+IGppZ3lva3VcIDsKK+Wuv+mKrSA+IHlhZG9zZW5cIDsKK+mmlumVtyA+IHNodWNob3VcIDsKK+iFueiDjCA+IGZ1a3VoYWlcIDsKK+WFqOWLnSA+IHplbnNob3VcIDsKK+afsemgrSA+IGNodXV0b3VcIDsKK+eXm+ajkiA+IHRzdXVib3VcIDsKK+eXheatuyA+IGJ5b3VzaGlcIDsKK+WCjea1gSA+IGJvdXJ5dXVcIDsKK+WwhOinkiA+IHNoYWtha3VcIDsKK+WuoumWkyA+IGt5YWt1bWFcIDsKK+W3peS9nCA+IGtvdXNha3VcIDsKK+WEgOW8jyA+IGdpc2hpa2lcIDsKK+i7iuaOjCA+IHNoYXNob3VcIDsKK+eUsOe0syA+IGRlbnNoaW5cIDsKK+WCjeazqCA+IGJvdWNodXVcIDsKK+WvvuiosyA+IHRhaXlha3VcIDsKK+WFvOS/riA+IGtlbnNodXVcIDsKK+i1pOi7jSA+IHNla2lndW5cIDsKK+iEgui6qyA+IGFidXJhbWlcIDsKK+Wzoea5viA+IGt5b3V3YW5cIDsKK+i7jeaLoSA+IGd1bmtha3VcIDsKK+eZvuWRsyA+IGh5YWt1bWlcIDsKK+WvvuinkiA+IHRhaWtha3VcIDsKK+afsemdoiA+IGNodXVtZW5cIDsKK+W3qOS5syA+IGt5b255dXVcIDsKK+WFrOWFsSA+IGtvdWt5b3VcIDsKK+WFseWDjSA+IGt5b3Vkb3VcIDsKK+eUu+ethiA+IGdhaGl0c3VcIDsKK+S+m+impyA+IGt5b3VyYW5cIDsKK+WvuOiplSA+IHN1bnB5b3VcIDsKK+WFseWCrCA+IGt5b3VzYWlcIDsKK+WGheS4rSA+IHVjaGlqdXVcIDsKK+WuuemHjyA+IHlvdXJ5b3VcIDsKK+iFq+iEuSA+IHNodWNob3VcIDsKK+WvhumAmiA+IG1pdHRzdXVcIDsKK+iIn+atjCA+IGZ1bmF1dGFcIDsKK+WAtueZuiA+IGd1aGF0c3VcIDsKK+WFvOS7uyA+IGtlbicnbmluXCA7Civlhazlg5UgPiBrb3Vib2t1XCA7CivlhaXlhqYgPiBueXV1a291XCA7CivkvZPph48gPiB0YWlyeW91XCA7CivlhazlgrcgPiBrb3VzaG91XCA7CivlrpfploAgPiBzaHV1bW9uXCA7Civoh4bnl4UgPiBva3VieW91XCA7CivlhajlhKogPiB6ZW4nJ3l1dVwgOwor6Lu95bCRID4ga2Vpc2hvdVwgOwor5YWl5YWaID4gbnl1dXRvdVwgOwor5L6R6Ke0ID4geXV1c2hvdVwgOwor5YGP54utID4gaGVua3lvdVwgOwor55Wl55S7ID4gcnlha3VnYVwgOwor5L+457WmID4gaG91a3l1dVwgOwor5a6/6YGLID4gc2h1a3V1blwgOwor6Ii55p2/ID4gZnVuYWl0YVwgOwor5L+K6IuxID4gc2h1bicnZWlcIDsKK+iKs+WiqCA+IGhvdWJva3VcIDsKK+WBj+eLgiA+IGhlbmt5b3VcIDsKK+eZvuWMgSA+IGh5YWt1bWVcIDsKK+eUn+e1uSA+IHN1enVzaGlcIDsKK+i7n+W8sSA+IG5hbmpha3VcIDsKK+S8kemkqCA+IGt5dXVrYW5cIDsKK+Wvhui8uCA+IG1pdHN1eXVcIDsKK+WFmuWJhyA+IHRvdXNva3VcIDsKK+S/rue5lSA+IHNodXV6ZW5cIDsKK+WwseiIqiA+IHNodXVrb3VcIDsKK+S8kemkiiA+IGt5dXV5b3VcIDsKK+S+i+iovCA+IHJlaXNob3VcIDsKK+amtOW8viA+IHJ5dXVkYW5cIDsKK+WxseepjSA+IHNhbnNla2lcIDsKK+iItuadpSA+IGhha3VyYWlcIDsKK+WxseeonCA+IHNhbnJ5b3VcIDsKK+i1pOiypyA+IHNla2loaW5cIDsKK+S/rue3tCA+IHNodXVyZW5cIDsKK+iLseWCkSA+IGVpa2V0c3VcIDsKK+alteaakSA+IGdva3VzaG9cIDsKK+eXheajnyA+IGJ5b3V0b3VcIDsKK+iCjOmqqCA+IGtpa290c3VcIDsKK+iJr+aApyA+IHJ5b3VzZWlcIDsKK+i2s+iKuCA+IGFzaGlnZWlcIDsKK+iFuOe3miA+IGNob3VzZW5cIDsKK+WDp+W9oiA+IHNvdWd5b3VcIDsKK+i8quWUsSA+IHJpbnNob3VcIDsKK+WBieeJqSA+IGVyYW1vbm9cIDsKK+eZveWIgyA+IGhha3VqaW5cIDsKK+WFrOS8kSA+IGtvdWt5dXVcIDsKK+S+ruiUkSA+IGJ1YmV0c3VcIDsKK+iLpeWFmiA+IHdha2F0b3VcIDsKK+eXheaguSA+IGJ5b3Vrb25cIDsKK+S8mumbhiA+IGthaXNodXVcIDsKK+WxkeezuCA+IGt1enVpdG9cIDsKK+ain+e9qiA+IGt5b3V6YWlcIDsKK+iLpeWDpyA+IHdha2F6b3VcIDsKK+eZveWFtSA+IGhha3VoZWlcIDsKK+WFiOWLnSA+IHNlbnNob3VcIDsKK+S9jumAnyA+IHRlaXNva3VcIDsKK+WFpeS8miA+IG55dXVrYWlcIDsKK+WxkeexsyA+IGt1enVtYWlcIDsKK+i7veWmmSA+IGtlaW15b3VcIDsKK+iHqua7hSA+IGppbWV0c3VcIDsKK+S8kembuyA+IGt5dXVkZW5cIDsKK+WztuaguSA+IHNoaW1hbmVcIDsKK+WtpumiqCA+IGdha3VmdXVcIDsKK+WDteWxjSA+IGt5b25zaGlcIDsKK+WFq+S4gSA+IGhhdGNob3VcIDsKK+WFiOWIuyA+IHNlbmtva3VcIDsKK+iCiemlhSA+IG5pa3VtYW5cIDsKK+S9teiqrSA+IGhlaWRva3VcIDsKK+mmrOi3syA+IHVtYXRvYmlcIDsKK+i7ouWxniA+IHRlbnpva3VcIDsKK+i1pOiqoCA+IHNla2lzZWlcIDsKK+iJr+W4qyA+IHJ5b3VzaGlcIDsKK+S8mumVtyA+IGthaWNob3VcIDsKK+WFh+WIgyA+IGt5b3VqaW5cIDsKK+WumumHjyA+IHRlaXJ5b3VcIDsKK+iJr+W3pSA+IHJ5b3Vrb3VcIDsKK+agvOiogCA+IGtha3VnZW5cIDsKK+mngeirliA+IGJha3Vyb25cIDsKK+WFg+WHtiA+IGdlbmt5b3VcIDsKK+iCiemhniA+IG5pa3VydWlcIDsKK+iHvOatryA+IGt5dXVzaGlcIDsKK+eWvOacqCA+IGhpaXJhZ2lcIDsKK+i7ouWuhSA+IHRlbnRha3VcIDsKK+aghOmBlCA+IGVpdGF0c3VcIDsKK+i7ouWtpiA+IHRlbmdha3VcIDsKK+eZuuS/oSA+IGhhc3NoaW5cIDsKK+S8kemWkSA+IGt5dXVrYW5cIDsKK+iInuabsiA+IGJ1a3lva3VcIDsKK+iHqua0uyA+IGppa2F0c3VcIDsKK+S/uOemhCA+IGhvdXJva3VcIDsKK+S/uOelvyA+IGhvdXJva3VcIDsKK+iLpeS6uiA+IHdha291ZG9cIDsKK+alveaJjSA+IGdha3VzYWlcIDsKK+WvhuitsCA+IG1pdHN1Z2lcIDsKK+iIiOalrSA+IGtvdWd5b3VcIDsKK+WFg+WFhyA+IGdlbmt5b3VcIDsKK+mmmei7iiA+IGt5b3VzaGFcIDsKK+S/l+e0ryA+IHpva3VydWlcIDsKK+WtpumamyA+IGdha3VzYWlcIDsKK+WBnOaziiA+IHRlaWhha3VcIDsKK+aliuafsyA+IHlvdXJ5dXVcIDsKK+eZveS6uiA+IGhha3VqaW5cIDsKK+S/oeeuoSA+IHNoaW5rYW5cIDsKK+Wwj+iIhSA+IGtvanV1dG9cIDsKK+iHquaxuiA+IGppa2V0c3VcIDsKK+eZvuS6iyA+IGh5YWt1amlcIDsKK+Wyqea8vyA+IGdhbnNob3VcIDsKK+eQhumrqiA+IHJpaGF0c3VcIDsKK+WvhuiqniA+IG1pdHN1Z29cIDsKK+WFhuWAmSA+IGNob3Vrb3VcIDsKK+iDuOilnyA+IGt5b3VraW5cIDsKK+mrmOacqCA+IGtvdWJva3VcIDsKK+Wwv+euoSA+IG55b3VrYW5cIDsKK+msseWxiCA+IHVra3V0c3VcIDsKK+i7jeWxniA+IGd1bnpva3VcIDsKK+eXm+aGpCA+IHRzdXVmdW5cIDsKK+WxseeVqiA+IHlhbWFiYW5cIDsKK+alveaDsyA+IGdha3Vzb3VcIDsKK+iHquauuiA+IGppc2F0c3VcIDsKK+Wwj+iEsyA+IHNob3Vub3VcIDsKK+WEquWLnSA+IHl1dXNob3VcIDsKK+iEseiHvCA+IGRha2t5dXVcIDsKK+mmlui2syA+IHNodXNva3VcIDsKK+iEseiHrSA+IGRhc3NodXVcIDsKK+i7jeWwhiA+IGd1bnNob3VcIDsKK+WCt+aCtCA+IHNob3VzdWlcIDsKK+WBj+a1gSA+IGhlbnJ5dXVcIDsKK+iEs+iGnCA+IG5vdW1ha3VcIDsKK+WvkuihjCA+IGthbmd5b3VcIDsKK+WFiOS7uyA+IHNlbicnbmluXCA7CivlsI/og54gPiBzaG91aG91XCA7Civnl5vmhJ8gPiB0c3V1a2FuXCA7Civnj77pq5ggPiBnZW5kYWthXCA7CivlsI/og4YgPiBzaG91dGFuXCA7Civoh6PmsJEgPiBzaGlubWluXCA7Civou43lrrkgPiBndW4nJ3lvdVwgOwor6ay85amGID4gb25pYmFiYVwgOwor5L2c6KmpID4gc2FrdXNoaVwgOwor5L2c6KmeID4gc2FrdXNoaVwgOwor6ISx6IW4ID4gZGF0Y2hvdVwgOwor5a6F6YWNID4gdGFrdWhhaVwgOwor6LuN5a2mID4gZ3VuZ2FrdVwgOwor5qCh6Ki7ID4ga291Y2h1dVwgOwor5LyR6YyYID4ga3l1dXN1aVwgOwor55Sw55WRID4gZGVucGF0YVwgOwor5YK35b+wID4gc2hvdXN1aVwgOwor5bCR6ICFID4gc2hvdXNoYVwgOwor55eb5oGoID4gdHN1dWtvblwgOwor6Iez5qW1ID4gc2hpZ29rdVwgOwor5qW15oKqID4gZ29rdWFrdVwgOwor5a6J6YC4ID4gYW4nJ2l0c3VcIDsKK+S9k+iqvyA+IHRhaWNob3VcIDsKK+WDu+WcsCA+IGhla2ljaGlcIDsKK+WDu+WcqCA+IGhla2l6YWlcIDsKK+Wumui3oSA+IGpvdXNla2lcIDsKK+mrmOaVmSA+IGtvdWt5b3VcIDsKK+alreaFiyA+IGd5b3V0YWlcIDsKK+i8quS9nCA+IHJpbnNha3VcIDsKK+eXm+W/qyA+IHRzdXVrYWlcIDsKK+WyqeazoiA+IGl3YW5hbWlcIDsKK+Wzu+aLkiA+IHNodW5reW9cIDsKK+S9juiqvyA+IHRlaWNob3VcIDsKK+iJr+WmuyA+IHJ5b3VzYWlcIDsKK+WIu+OAhSA+IGtva2tva3VcIDsKK+iHhua4rCA+IG9rdXNva3VcIDsKK+S9nOijvSA+IHNha3VzZWlcIDsKK+eUo+eXmyA+IHNhbnRzdXVcIDsKK+iBt+majiA+IHNob2trYWlcIDsKK+iJr+WlvSA+IHJ5b3Vrb3VcIDsKK+eVnea6nSA+IHVuZW1pem9cIDsKK+alteW+riA+IGt5b2t1YmlcIDsKK+aenOmjnyA+IGthc2hva3VcIDsKK+ahkeiLlyA+IHNvdWJ5b3VcIDsKK+iGnOeKtiA+IG1ha3Vqb3VcIDsKK+eUmOeariA+IGFtYWthd2FcIDsKK+i1pOiVqiA+IGFrYWthYnVcIDsKK+WxseeKrCA+IHlhbWFpbnVcIDsKK+S/iuerpSA+IHNodW5kb3VcIDsKK+alveW4qyA+IGdha3VzaGlcIDsKK+ahkeiJsiA+IGt1d2Fpcm9cIDsKK+iFleeroCA+IHdhbnNob3VcIDsKK+mmrOihkyA+IGJhanV0c3VcIDsKK+eXheaFiyA+IGJ5b3V0YWlcIDsKK+iFleeriyA+IHVkZXRhdGVcIDsKK+afqei7iiA+IGt5dXVzaGFcIDsKK+iFueeZkiA+IGhhcmFpc2VcIDsKK+iInuaJhyA+IG1haW91Z2lcIDsKK+WDheWwkSA+IGtpbnNob3VcIDsKK+WvruiIjiA+IHJ5b3VzaGFcIDsKK+alteW6piA+IGt5b2t1ZG9cIDsKK+WBlealvSA+IGthaXJha3VcIDsKK+eQg+mdoiA+IGt5dXVtZW5cIDsKK+Wwj+e3qCA+IHNob3VoZW5cIDsKK+iKs+S/oSA+IGhvdXNoaW5cIDsKK+eXheaCoyA+IGJ5b3VrYW5cIDsKK+eUu+eEtiA+IGtha3V6ZW5cIDsKK+eQg+mbuyA+IGt5dXVkZW5cIDsKK+WuouiqniA+IGt5YWt1Z29cIDsKK+aelemgrSA+IGNoaW50b3VcIDsKK+iIueW5hSA+IHNlbnB1a3VcIDsKK+alteW3piA+IGt5b2t1c2FcIDsKK+eToueuqiA+IGh5b3V0YW5cIDsKK+iKuOS6iyA+IGdlaWdvdG9cIDsKK+akjeaouSA+IHNob2t1anVcIDsKK+Wun+ipsSA+IGppdHN1d2FcIDsKK+eWvuaCoyA+IHNoaWtrYW5cIDsKK+mqqOagvCA+IGtva2tha3VcIDsKK+ahg+iJsiA+IG1vbW9pcm9cIDsKK+aknOagoSA+IGtlbmd5b3VcIDsKK+Wun+iovCA+IGppc3Nob3VcIDsKK+S7iumggyA+IGltYWdvcm9cIDsKK+iFsOeXmyA+IHlvdXRzdXVcIDsKK+Wwj+eykiA+IGtvdHN1YnVcIDsKK+alreW4qyA+IHdhemFzaGlcIDsKK+iKseS7oyA+IGhhbmFkYWlcIDsKK+WuouimsyA+IGt5YWtrYW5cIDsKK+S/l+ecvCA+IHpva3VnYW5cIDsKK+S9v+iHoyA+IHNoaXNoaW5cIDsKK+WvkuiPiiA+IGthbmdpa3VcIDsKK+S8kei8iSA+IGt5dXVzYWlcIDsKK+Wwu+ebriA+IHNoaXJpbWVcIDsKK+WumuiplSA+IHRlaWh5b3VcIDsKK+S8kei7oiA+IGt5dXV0ZW5cIDsKK+eXheW8iiA+IGJ5b3VoZWlcIDsKK+WCt+WusyA+IHNob3VnYWlcIDsKK+WumuiosyA+IHRlaXlha3VcIDsKK+i7jeWbvSA+IGd1bmtva3VcIDsKK+mtlOWKmyA+IG1hcnlva3VcIDsKK+aknOadnyA+IGtlbnNva3VcIDsKK+WxheeVmSA+IGt5b3J5dXVcIDsKK+i7veWCtyA+IGtlaXNob3VcIDsKK+mkqOmVtyA+IGthbmNob3VcIDsKK+WyqeajmiA+IGl3YWRhbmFcIDsKK+S7j+mZgCA+IGJ1dHN1ZGFcIDsKK+Wus+iZqyA+IGdhaWNodXVcIDsKK+WwseecoCA+IHNodXVtaW5cIDsKK+iEh+iDvSA+IHdha2lub3VcIDsKK+WEhOWFhiA+IG9rdWNob3VcIDsKK+eXheW3oyA+IGJ5b3Vzb3VcIDsKK+i1pOiGmiA+IGFrYWhhZGFcIDsKK+iznumHkSA+IHNob3VraW5cIDsKK+Wwj+erpSA+IGtvd2FwcGFcIDsKK+S7j+mWoyA+IGJ1a2tha3VcIDsKK+S/kOeZuiA+IHJpaGF0c3VcIDsKK+S7j+mWkyA+IGJ1dHN1bWFcIDsKK+i1pOiFuSA+IGFrYWhhcmFcIDsKK+i7veS/oSA+IGtlaXNoaW5cIDsKK+iFjuefsyA+IGppbnNla2lcIDsKK+WztuW6gSA+IHRvdWNob3VcIDsKK+iJr+WTgSA+IHJ5b3VoaW5cIDsKK+S/l+eUqCA+IHpva3V5b3VcIDsKK+iDg+iiiyA+IGlidWt1cm9cIDsKK+i7veS9uyA+IGtlaWNob3VcIDsKK+Wzu+W2uiA+IHNodW5yZWlcIDsKK+Wzu+W2riA+IHNodW5rZW5cIDsKK+W5tOOAhSA+IG5lbicnbmVuXCA7CivlhJLku48gPiBqdWJ1dHN1XCA7CivprYXlipsgPiBtaXJ5b2t1XCA7Civpq5jlvrMgPiBrb3V0b2t1XCA7CivosrjplpMgPiBrYXNoaW1hXCA7Civog7joh4YgPiBreW91b2t1XCA7CivprZrkv6EgPiBneW9zaGluXCA7CivohZXnmb0gPiB3YW5wYWt1XCA7CivotaTogowgPiBha2FoYWRhXCA7Civog7johbogPiBreW91c2VuXCA7CivkuqzpoqggPiBreW91ZnV1XCA7Civog7johZQgPiBreW91a291XCA7Civmpb3lpKkgPiByYWt1dGVuXCA7Civoia/lj4sgPiByeW91eXV1XCA7CivohLHnqYAgPiBkYWtrb2t1XCA7Civnj63plbcgPiBoYW5jaG91XCA7CivkvJ3oqqYgPiBkZW5zaG91XCA7CivlsIrnp7AgPiBzb25zaG91XCA7CivlgYPmnIggPiBlbmdldHN1XCA7Civkv67nhYkgPiBzaHV1cmVuXCA7Civlr77nrZYgPiB0YWlzYWt1XCA7CivlsI/npL4gPiBzaG91c2hhXCA7Civmpb3lo6sgPiBnYWt1c2hpXCA7CivlgJ/mrL4gPiBzaGFra2FuXCA7Civmpb3lo4cgPiBnYWt1ZGFuXCA7Civkvr/nm4ogPiBiZW4nJ2VraVwgOwor5Lya6KqtID4ga2FpZG9rdVwgOwor5qO65qG2ID4ga2FuJydva2VcIDsKK+i1t+e1kCA+IGtpa2V0c3VcIDsKK+iIquWumSA+IGtvdWNodXVcIDsKK+S9juiQvSA+IHRlaXJha3VcIDsKK+eXheWusyA+IGJ5b3VnYWlcIDsKK+WBieaWuSA+IGVyYWdhdGFcIDsKK+ain+eMmyA+IGt5b3Vtb3VcIDsKK+eVjOaomSA+IGthaWh5b3VcIDsKK+izg+mKrSA+IGNoaW5zZW5cIDsKK+S9nuiHoyA+IG5laXNoaW5cIDsKK+S9meiJsiA+IHlvc2hva3VcIDsKK+mjsumjnyA+IGluc2hva3VcIDsKK+WDmuWPiyA+IHJ5b3V5dXVcIDsKK+S8keismyA+IGt5dXVrb3VcIDsKK+izg+mKgCA+IGNoaW5naW5cIDsKK+WtpuizhyA+IGdha3VzaGlcIDsKK+eUuuawkSA+IGNob3VtaW5cIDsKK+WCvuWbvSA+IGtlaWtva3VcIDsKK+S6pOmfvyA+IGtvdWt5b3VcIDsKK+iJr+WJpCA+IHJ5b3V6YWlcIDsKK+S/gueVmSA+IGtlaXJ5dXVcIDsKK+eUt+awlyA+IG90b2tvZ2lcIDsKK+Wwj+efpSA+IHNob3VjaGlcIDsKK+WvvuensCA+IHRhaXNob3VcIDsKK+izg+mHkSA+IGNoaW5naW5cIDsKK+alk+WxniA+IGZ1dXpva3VcIDsKK+iDg+iWrCA+IGlndXN1cmlcIDsKK+S7memDtyA+IHNlbmt5b3VcIDsKK+agl+iJsiA+IGt1cmlpcm9cIDsKK+izvOiqrSA+IGtvdWRva3VcIDsKK+i7iuWKmyA+IHNoYXJpa2lcIDsKK+alveWboyA+IGdha3VkYW5cIDsKK+iHpeaJgCA+IGZ1c2hpZG9cIDsKK+S9k+iHrSA+IHRhaXNodXVcIDsKK+mmrOiEmiA+IGJha3lha3VcIDsKK+S+jeeriyA+IGppcml0c3VcIDsKK+WvuOenkiA+IHN1bmJ5b3VcIDsKK+eUsuauuyA+IGtvdWtha3VcIDsKK+i1t+ethiA+IGtpaGl0c3VcIDsKK+mnkOexsyA+IGNodXViZWlcIDsKK+S5vumtmiA+IGhvc2hpdW9cIDsKK+iHs+aApSA+IHNoaWt5dXVcIDsKK+iCneimgSA+IGthbicneW91XCA7CivnlJ/mtq8gPiBzaG91Z2FpXCA7CivkvJrooYYgPiBrYWlzaHV1XCA7Civmo67mnpcgPiBzaGlucmluXCA7CivotaTntYQgPiBha2FndW1pXCA7Civou6Lku7sgPiB0ZW4nJ25pblwgOwor5qC857SNID4ga2FrdW5vdVwgOwor6auY5bCaID4ga291c2hvdVwgOwor5bCP55mqID4ga29zaGFrdVwgOwor6LWk57SZID4gYWthZ2FtaVwgOwor6ama5q2OID4ga3lvdXRhblwgOwor6LW356uLID4ga2lyaXRzdVwgOwor5YK35ZiGID4gc2hvdXRhblwgOwor5L2c6ICFID4gc2FrdXNoYVwgOwor6aOf6aSMID4gc2hva3VqaVwgOwor6IW45rqAID4gY2hvdW1hblwgOwor5Luy6LK3ID4gbmFrYWdhaVwgOwor55eF5aSJID4gYnlvdWhlblwgOwor5YOl5YCWID4gZ3lvdWtvdVwgOwor6LOg6LKsID4gYmFpc2VraVwgOwor5YOn5L+XID4gc291em9rdVwgOwor6LOe6LObID4gc2hvdXNhblwgOwor5bCK55qHID4gc29uJydub3VcIDsKK+eOhOm6piA+IGdlbmJha3VcIDsKK+iEiOeuoSA+IG15YWtrYW5cIDsKK+aeoui7uCA+IHN1dWppa3VcIDsKK+iInuWnqyA+IG1haWhpbWVcIDsKK+eXm+WYhiA+IHRzdXV0YW5cIDsKK+WwqOeKrCA+IG11a3VpbnVcIDsKK+ajn+aigSA+IHRvdXJ5b3VcIDsKK+WutuiBtyA+IGthc2hva3VcIDsKK+agueeykiA+IGtvbnJ5dXVcIDsKK+WxoOauuiA+IHRvc2F0c3VcIDsKK+iziui7jSA+IHpva3VndW5cIDsKK+iFuOa2siA+IGNob3Vla2lcIDsKK+iIjuWuhSA+IHNoYXRha3VcIDsKK+WuuOe/sCA+IHNoaW5rYW5cIDsKK+i6q+WRvSA+IHNoaW5tZWlcIDsKK+eWq+WtpiA+IGVraWdha3VcIDsKK+Wwj+eUuiA+IGtvbWFjaGlcIDsKK+Wwj+eUtyA+IGtvb3Rva29cIDsKK+iFsOa5ryA+IGtvc2hpeXVcIDsKK+WwhOeahCA+IHNoYXRla2lcIDsKK+Wwj+eUqCA+IHNob3V5b3VcIDsKK+iEs+eXhyA+IG5vdXNob3VcIDsKK+iEs+eXhSA+IG5vdWJ5b3VcIDsKK+Wwj+eUnyA+IHNob3VzZWlcIDsKK+iHquW+iyA+IGppcml0c3VcIDsKK+WxseakkiA+IHNhbnNob3VcIDsKK+S9s+evgCA+IGthc2V0c3VcIDsKK+S/ruazlSA+IHNodXVob3VcIDsKK+S7iumAsSA+IGtvbnNodXVcIDsKK+iBlumAsSA+IHNlaXNodXVcIDsKK+S9jue/vCA+IHRlaXlva3VcIDsKK+iJsuS6iyA+IGlyb2dvdG9cIDsKK+afv+iJsiA+IGtha2lpcm9cIDsKK+eSsOekgSA+IGthbnNob3VcIDsKK+eUsOalvSA+IGRlbmdha3VcIDsKK+S7iui/hCA+IGltYW1hZGVcIDsKK+S5vumjryA+IGhvc2hpaWlcIDsKK+iJr+S6uiA+IHJ5b3VqaW5cIDsKK+Wuv+e4gSA+IHNodWt1ZW5cIDsKK+iHo+W+kyA+IHNoaW5qdXVcIDsKK+WBtOWwhCA+IHNva3VzaGFcIDsKK+iFueawtCA+IGZ1a3VzdWlcIDsKK+iHqOW6iiA+IHJpbnNob3VcIDsKK+i3i+a4iSA+IGJhc3Nob3VcIDsKK+S+teeKryA+IHNoaW5wYW5cIDsKK+WvvueXhyA+IHRhaXNob3VcIDsKK+S5s+mmmSA+IG55dXVrb3VcIDsKK+S7ruiqrCA+IGthc2V0c3VcIDsKK+WwgueUqCA+IHNlbicneW91XCA7CivnlLrmnZEgPiBjaG91c29uXCA7CivlgJLmnKggPiB0b3Vib2t1XCA7CivlgY/lv4MgPiBoZW5zaGluXCA7Civoh6jluK0gPiByaW5zZWtpXCA7Civos57oqZ4gPiBzaG91c2hpXCA7CivmnrboqK0gPiBrYXNldHN1XCA7Civkv67mraMgPiBzaHV1c2VpXCA7CivmnKjprZogPiBtb2t1Z3lvXCA7CivogbTorJsgPiBjaG91a291XCA7CivlgqzlkYogPiBzYWlrb2t1XCA7Civpq5jlo7AgPiB0YWthZ29lXCA7CivkvbXnp7AgPiBoZWlzaG91XCA7CivkuqTpjK8gPiBrb3VzYWt1XCA7CivmpoLliYcgPiBnYWlzb2t1XCA7Civku67oqK0gPiBrYXNldHN1XCA7CivogJDpnIcgPiB0YWlzaGluXCA7CivmoITogbcgPiBlaXNob2t1XCA7Civku4/ot6EgPiBidXNzZWtpXCA7CivkvpvnlKggPiBreW91eW91XCA7CivosqvpgJogPiBrYW50c3V1XCA7CivogZbouZ8gPiBzZWlzZWtpXCA7Civls7blm70gPiB0b3Vnb2t1XCA7CivlsIrnjosgPiBzb24nJ25vdVwgOwor55Sj5qWtID4gc2FuZ3lvdVwgOwor6IWw5rCXID4ga29zaGlrZVwgOwor6LuK5LitID4gc2hhY2h1dVwgOwor5Luw6KaWID4gZ3lvdXNoaVwgOwor5YK35Ym1ID4gc2hvdXNvdVwgOwor6LuK5LihID4gc2hhcnlvdVwgOwor6aOf6ZaTID4gc2hva2thblwgOwor5Luu6KaqID4ga2FyaW95YVwgOwor6IKy6IuXID4gaWt1YnlvdVwgOwor5a6Y6IO9ID4ga2FuJydub3VcIDsKK+izg+iyuCA+IGNoaW50YWlcIDsKK+WyoeaDmiA+IG9rYWJvcmVcIDsKK+iBlui3oSA+IHNlaXNla2lcIDsKK+aeneixhiA+IGVkYW1hbWVcIDsKK+adkemVtyA+IHNvbmNob3VcIDsKK+iBtOiosSA+IGNob3VreW9cIDsKK+acnemuriA+IGNob3VzZW5cIDsKK+eUn+alrSA+IG5hcml3YWlcIDsKK+S7o+iqrSA+IGRhaWRva3VcIDsKK+ePvuixoSA+IGdlbnNob3VcIDsKK+S5s+mgrSA+IG55dXV0b3VcIDsKK+Wwj+eJhyA+IHNob3VoZW5cIDsKK+Wun+e/kiA+IGppc3NodXVcIDsKK+S7suijgSA+IGNodXVzYWlcIDsKK+Wwj+eIqiA+IGtvZHp1bWVcIDsKK+eWjuWvhiA+IHNvbWl0c3VcIDsKK+iBtOinoyA+IGNob3VrYWlcIDsKK+iyp+i+siA+IGhpbicnbm91XCA7Civku6PoqLogPiBkYWlzaGluXCA7CivogbToppYgPiBjaG91c2hpXCA7Civohbrmp5ggPiBzZW4nJ3lvdVwgOwor5bGe5qC8ID4gem9ra2FrdVwgOwor5YK35YW1ID4gc2hvdWhlaVwgOwor5qW95YW4ID4gZ2FrdXRlblwgOwor55S75pWwID4ga2FrdXN1dVwgOwor5L2O57SaID4gdGVpa3l1dVwgOwor6Ia65oeyID4geW91Y2hvdVwgOwor5YCN5penID4gYmFpa3l1dVwgOwor6auY5ZynID4ga291YXRzdVwgOwor6IKd6JGJID4ga2FuJyd5b3VcIDsKK+eUuuaUvyA+IGNob3VzZWlcIDsKK+S/rualrSA+IHNodWd5b3VcIDsKK+alteWIkSA+IGt5b2trZWlcIDsKK+WyqeW6iiA+IGdhbnNob3VcIDsKK+WvrueUnyA+IHJ5b3VzZWlcIDsKK+eXheWQjSA+IGJ5b3VtZWlcIDsKK+adsemAsiA+IHRvdXNoaW5cIDsKK+agoeeroCA+IGtvdXNob3VcIDsKK+aituajkiA+IGthamlib3VcIDsKK+alteWGoCA+IGt5b2trYW5cIDsKK+alteWGhSA+IGdva3VuYWlcIDsKK+eXheWPiyA+IGJ5b3V5dXVcIDsKK+mqsOWtkCA+IHNhaWtvcm9cIDsKK+WyoeW8lSA+IG9rYWhpa2lcIDsKK+WCtOWDgiA+IHNlbXVzaGlcIDsKK+WBnOWtpiA+IHRlaWdha3VcIDsKK+acsememCA+IHNodXpheWFcIDsKK+Wun+e4viA+IGppc3Nla2lcIDsKK+eXheWOnyA+IGJ5b3VnZW5cIDsKK+alteWFiSA+IGt5b2trb3VcIDsKK+S6qOmAmiA+IGtvdXRzdXVcIDsKK+acrOmgmCA+IGhvbnJ5b3VcIDsKK+S6uui3oSA+IGhpdG9hdG9cIDsKK+S7mOiorSA+IGZ1c2V0c3VcIDsKK+mmlue0miA+IHNodWt5dXVcIDsKK+S+m+eJqSA+IGt1bW90c3VcIDsKK+Wzu+WOsyA+IHNodW5nZW5cIDsKK+ixoemZkCA+IHNob3VnZW5cIDsKK+i6q+S9kyA+IHNoaW50YWlcIDsKK+iHs+WmmSA+IHNoaW15b3VcIDsKK+eUmOaglyA+IGFtYWd1cmlcIDsKK+S7leiosyA+IHNoaXdha2VcIDsKK+iIiOWbvSA+IGtvdWtva3VcIDsKK+S6pOmAmiA+IGtvdXRzdXVcIDsKK+i6jeWLlSA+IHlha3Vkb3VcIDsKK+S7o+ihqCA+IGRhaWh5b3VcIDsKK+S6oumAsiA+IGtvdXNoaW5cIDsKK+eXheWLoiA+IGJ5b3VzZWlcIDsKK+ajsuaBryA+IHNlaXNva3VcIDsKK+iDjOe0hCA+IGhhaXlha3VcIDsKK+WuueepjSA+IHlvdXNla2lcIDsKK+S7j+iqniA+IGJ1dHN1Z29cIDsKK+iFsOakjiA+IHlvdXRzdWlcIDsKK+i6q+S7oyA+IHNoaW5kYWlcIDsKK+eOiemfsyA+IGd5b2t1b25cIDsKK+Wvk+ebriA+IGd1dW1va3VcIDsKK+adpemAsSA+IHJhaXNodXVcIDsKK+iIueWBtCA+IHNlbnNva3VcIDsKK+acrOmchyA+IGhvbnNoaW5cIDsKK+S9k+epjSA+IHRhaXNla2lcIDsKK+acqOmdtCA+IGtpZ3V0c3VcIDsKK+mmmeeusSA+IGtvdWJha29cIDsKK+S8keiIqiA+IGt5dXVrb3VcIDsKK+acnemiqCA+IGFzYWthemVcIDsKK+WvvueFpyA+IHRhaXNob3VcIDsKK+iIt+WBtCA+IGdlbnNva3VcIDsKK+agueeYpCA+IGtvbnJ5dXVcIDsKK+WyqeWxsSA+IGl3YXlhbWFcIDsKK+alveS6uiA+IGdha3VqaW5cIDsKK+ixhumhniA+IG1hbWVydWlcIDsKK+WumOe1piA+IGthbmt5dXVcIDsKK+eOiemcsiA+IGd5b2t1cm9cIDsKK+i6q+S4iiA+IHNoaW5qb3VcIDsKK+iIueS+vyA+IGZ1bmFiaW5cIDsKK+WCrOS/gyA+IHNhaXNva3VcIDsKK+eUn+aWsCA+IHNlaXNoaW5cIDsKK+iEs+a8vyA+IG5vdXNob3VcIDsKK+iEuea6gCA+IGNob3VtYW5cIDsKK+i2heeEtiA+IGNob3V6ZW5cIDsKK+S8nee/kiA+IGRlbnNodXVcIDsKK+eVmeW5tCA+IHJ5dXVuZW5cIDsKK+i0heiCiSA+IHplaW5pa3VcIDsKK+mrmOWPsCA+IHRha2FkYWlcIDsKK+WyqeWupCA+IGl3YW11cm9cIDsKK+S/teaVsCA+IGh5b3VzdXVcIDsKK+aclOmiqCA+IHNha3VmdXVcIDsKK+WtpuiKuCA+IGdha3VnZWlcIDsKK+mmlueroCA+IHNodXNob3VcIDsKK+eUt+aJiyA+IG90b2tvZGVcIDsKK+aiheavkiA+IGJhaWRva3VcIDsKK+akjeWtlyA+IHNob2t1amlcIDsKK+acnemdhCA+IGFzYW1veWFcIDsKK+WxiOacjSA+IGt1cHB1a3VcIDsKK+acnemcpyA+IGFzYWdpcmlcIDsKK+S/oeadoSA+IHNoaW5qb3VcIDsKK+e/sOmVtyA+IGthbmNob3VcIDsKK+iCjOiJsiA+IGhhZGFpcm9cIDsKK+WtpuiIjiA+IGdha3VzaGFcIDsKK+S/oeacmyA+IHNoaW5ib3VcIDsKK+S/ruaVtCA+IHNodXVzZWlcIDsKK+S/oeabuCA+IHNoaW5zaG9cIDsKK+alteS4iiA+IGdva3Vqb3VcIDsKK+eXh+WAmSA+IHNob3Vrb3VcIDsKK+S8keiAlSA+IGt5dXVrb3VcIDsKK+iIueS4rSA+IHNlbmNodXVcIDsKK+S8uOetiyA+IHNoaW5raW5cIDsKK+iCieiJsiA+IG5pa3Vpcm9cIDsKK+S/ruaUuSA+IHNodXVrYWlcIDsKK+WyuOWjgSA+IGdhbnBla2lcIDsKK+WujOe0jSA+IGthbicnbm91XCA7CivkurroqLwgPiBuaW5zaG91XCA7Civkub7phaogPiBrYW5yYWt1XCA7Civnl4fkvosgPiBzaG91cmVpXCA7CivnlaXlrZcgPiByeWFrdWppXCA7CivohqjlvLUgPiBib3VjaG91XCA7CivlsYvmlbcgPiB5YXNoaWtpXCA7Civkv67mkrAgPiBzaHV1c2VuXCA7CivkvI/nvaogPiBmdWt1emFpXCA7Civlr4bnlLsgPiBtaXRzdWdhXCA7Civnl4XkvZMgPiBieW91dGFpXCA7CivogIPph48gPiBrb3VyeW91XCA7CivppKHonJwgPiBhbm1pdHN1XCA7Civlrpjnqq8gPiBrYW4nJ3lvdVwgOwor5LuU6JmrID4gc2hpY2h1dVwgOwor6IC96KqtID4gdGFuZG9rdVwgOwor5bCP5rC0ID4gc2hvdXN1aVwgOwor6IKJ6IWrID4gbmlrdXNodVwgOwor5L+X5pu4ID4gem9rdXNob1wgOwor6ICB6YacID4gcm91c2h1dVwgOwor6amV5oWiID4ga3lvdW1hblwgOwor5YCU5by3ID4ga3Vra3lvdVwgOwor55eF5Lq6ID4gYnlvdW5pblwgOwor5YGP5Z+3ID4gaGVuc2h1dVwgOwor5L+O5p2/ID4gbWFuYWl0YVwgOwor5Lmz6YW4ID4gbnl1dXNhblwgOwor5a2m6ICFID4gZ2FrdXNoYVwgOwor5a6w55u4ID4gc2Fpc2hvdVwgOwor5Li76aCYID4gc2h1cnlvdVwgOwor5bKp5aOBID4gZ2FucGVraVwgOwor5L2v54uCID4geW91a3lvdVwgOwor5Li46aGUID4gbWFydWdhb1wgOwor5puz6aasID4gaGlraXVtYVwgOwor5a++5rWBID4gdGFpcnl1dVwgOwor6aGU6buSID4gZ2FuZ3Vyb1wgOwor5LyP57irID4gZnVzZW51aVwgOwor5puy6aasID4ga3lva3ViYVwgOwor6LWk54eQID4gc2VraXJpblwgOwor5YKR5L2cID4ga2Vzc2FrdVwgOwor55Ge56WlID4genVpc2hvdVwgOwor6amV5oGjID4ga3lvdXNoaVwgOwor5LyP57eaID4gZnVrdXNlblwgOwor5YKA5YShID4ga3VndXRzdVwgOwor54+N6KuHID4gY2hpbmRhblwgOwor5L+X5paHID4gem9rdWJ1blwgOwor5Lqk6KqtID4ga291ZG9rdVwgOwor5YCS5bmVID4gdG91YmFrdVwgOwor5a6255WcID4ga2FjaGlrdVwgOwor5Lit6aOvID4gY2h1dWhhblwgOwor55CD6I+MID4ga3l1dWtpblwgOwor6aaW55u4ID4gc2h1c2hvdVwgOwor5Lit6aKoID4gY2h1dWJ1dVwgOwor6aKo6Y6uID4gZnV1Y2hpblwgOwor5YCf5bGLID4gc2hha3V5YVwgOwor5bO25LitID4gdG91Y2h1dVwgOwor5a6d55+zID4gaG91c2VraVwgOwor6IOG55+zID4gdGFuc2VraVwgOwor5bGx5birID4geWFtYXNoaVwgOwor6aOf6LK7ID4gc2hva3VoaVwgOwor5Lqk6KeSID4ga291a2FrdVwgOwor5pyo6YeRID4gbW9rdWtpblwgOwor5a6a55+zID4gam91c2VraVwgOwor5bGe5oCnID4gem9rdXNlaVwgOwor6ISz5qmLID4gbm91a3lvdVwgOwor5Lit6aCFID4gY2h1dWtvdVwgOwor5p2l6Ki6ID4gcmFpc2hpblwgOwor55CD6IyOID4ga3l1dWtlaVwgOwor5bGx5ba9ID4gc2FuZ2FrdVwgOwor6IKp56ugID4ga2Vuc2hvdVwgOwor55Sf5oGvID4gc2Vpc29rdVwgOwor5L6/5pyNID4gYmVucHVrdVwgOwor5Lqh6KaqID4gYm91c2hpblwgOwor5YGl5YudID4ga2Vuc2hvdVwgOwor5LuV6I2JID4gc2hpZ3VzYVwgOwor5Lmd6YeNID4ga29rb25vZVwgOwor5L+K5pWPID4gc2h1bmJpblwgOwor5p2l6KWyID4gcmFpc2h1dVwgOwor5Li76ZW3ID4gc2h1Y2hvdVwgOwor6LiK5a2XID4gb2RvcmlqaVwgOwor5bGx5bOhID4geWFtYWthaVwgOwor6LWk5r2uID4gYWthc2hpb1wgOwor5pyA6ZW3ID4gc2FpY2hvdVwgOwor5a2m57SaID4gZ2Fra3l1dVwgOwor6IG06IGeID4gY2hvdW1vblwgOwor5bGx5bKzID4gc2FuZ2FrdVwgOwor55Sf5b6XID4gc2VpdG9rdVwgOwor55Wl5ZuzID4gcnlha3V6dVwgOwor5Lih6aCtID4gcnlvdXRvdVwgOwor5bCa5pu0ID4gbmFvc2FyYVwgOwor5bGP5oGvID4gaGVpc29rdVwgOwor5Lit6ZqKID4gY2h1dXRhaVwgOwor5pyo6YCgID4gbW9rdXpvdVwgOwor5Lyd56WoID4gZGVucHlvdVwgOwor5pyd6YWSID4gYXNhemFrZVwgOwor5a6554mpID4gaXJlbW9ub1wgOwor55S75a6aID4ga2FrdXRlaVwgOwor5a+C54S2ID4gc2VraXplblwgOwor55SY5b+DID4ga2Fuc2hpblwgOwor5bCC5qWtID4gc2VuZ3lvdVwgOwor6Leh5b2iID4gYXRva2F0YVwgOwor5YG25L2cID4gZ3V1c2FrdVwgOwor5pu56ZW3ID4gc291Y2hvdVwgOwor5bCP5p+EID4ga29kenVrYVwgOwor5a2d57WMID4ga291a3lvdVwgOwor6IG0572qID4gY2hvdXphaVwgOwor5L2Z54axID4geW9uZXRzdVwgOwor5bGx5a65ID4gc2FuJyd5b3VcIDsKK+S4oemdoiA+IHJ5b3VtZW5cIDsKK+S/oeaEmyA+IHNoaW4nJ2FpXCA7Civkv5fmiY0gPiB6b2t1c2FpXCA7CivlrZjntpogPiBzb256b2t1XCA7CivmnJvpg7cgPiBib3VreW91XCA7CivnjJvps6UgPiBtb3VjaG91XCA7Civlrp3nlJ8gPiBob3VzaG91XCA7Civnvo7pq6ogPiBiaWhhdHN1XCA7CivlsJrml6kgPiBzaG91c291XCA7CivkuK3plpMgPiBjaHV1a2FuXCA7CivkuIDpq6ogPiBpcHBhdHN1XCA7Civku7LntpkgPiBjaHV1a2VpXCA7CivlsIbmoKEgPiBzaG91a291XCA7CivlronnnYAgPiBhbmNoYWt1XCA7CivkuKHpm4QgPiByeW91eXV1XCA7CivlraPnr4AgPiBraXNldHN1XCA7CivkuonoqJ8gPiBzb3VzaG91XCA7CivkuozopqogPiBmdXRhb3lhXCA7CivosZrotrMgPiB0b25zb2t1XCA7CivlrpjnlKggPiBrYW4nJ3lvdVwgOwor5L2Z54OIID4geW9yZXRzdVwgOwor5p2+6JGJID4gbWF0c3ViYVwgOwor5a6J55u0ID4gYW5jaG9rdVwgOwor6aKo6YCfID4gZnV1c29rdVwgOwor6aGO6autID4gYWdvaGlnZVwgOwor57+86LObID4geW9rdXNhblwgOwor5bGe5bO2ID4gem9rdXRvdVwgOwor6IK655eFID4gaGFpYnlvdVwgOwor5bCP5pm6ID4gc2hvdWNoaVwgOwor5a6f55CGID4gaml0c3VyaVwgOwor5bCP5pmvID4gc2hvdWtlaVwgOwor5a2m56ulID4gZ2FrdWRvdVwgOwor5qOL5a6iID4ga2lreWFrdVwgOwor5pyr6LevID4gbWF0c3Vyb1wgOwor5L615pS7ID4gc2hpbmtvdVwgOwor5bCG5p2lID4gc2hvdXJhaVwgOwor5LqG6KejID4gcnlvdWthaVwgOwor55WR5ZywID4gaGF0YWNoaVwgOwor5L+h5b+DID4gc2hpbmppblwgOwor5a++5qC8ID4gdGFpa2FrdVwgOwor5bGI5by3ID4ga3Vra3lvdVwgOwor5a2m56qTID4gZ2FrdXNvdVwgOwor5qKf5oKqID4ga3lvdWFrdVwgOwor55S35ai8ID4gZGFuc2hvdVwgOwor5a2k56uLID4ga29yaXRzdVwgOwor6IW55bivID4gZnVrdXRhaVwgOwor5a2m56m2ID4gZ2Fra3l1dVwgOwor5L+X5oOFID4gem9rdWpvdVwgOwor5LqG6KaLID4gcnlvdWtlblwgOwor5Li46Yu8ID4gbWFydWtvdVwgOwor5L+K5omNID4gc2h1bnNhaVwgOwor5L+X5oKqID4gem9rdWFrdVwgOwor6IG357WEID4gc2hva3Vzb1wgOwor5a+S5rWBID4ga2Fucnl1dVwgOwor576k6ZuGID4gZ3Vuc2h1dVwgOwor576k6ZuEID4gZ3VuJyd5dXVcIDsKK+WxseWnpSA+IHlhbWF1YmFcIDsKK+S4iumhjiA+IGpvdWdha3VcIDsKK+WvneauvyA+IHNoaW5kZW5cIDsKK+WwkeaVsCA+IHNob3VzdXVcIDsKK+eUt+WmviA+IGRhbnNob3VcIDsKK+Wwj+aWjiA+IHNob3VzYWlcIDsKK+iEguawlyA+IGFidXJha2VcIDsKK+WwguaciSA+IHNlbicneXV1XCA7CivlsL3lv6AgPiBqaW5jaHV1XCA7CivlsI/mlbAgPiBzaG91c3V1XCA7CivmnaHomasgPiBqb3VjaHV1XCA7CivnlaXlj5kgPiByeWFrdWpvXCA7Civnvo7po58gPiBiaXNob2t1XCA7CivlsbHlpaUgPiB5YW1hb2t1XCA7Civnj43olLUgPiBjaGluem91XCA7CivlsIrml48gPiBzb256b2t1XCA7Civkv5flv7UgPiB6b2t1bmVuXCA7CivmoLzmrrUgPiBrYWt1ZGFuXCA7CivkuIDpo58gPiBpc3Nob2t1XCA7CivlsIbmmJ8gPiBzaG91c2VpXCA7Civoga/ntaEgPiByZW5yYWt1XCA7Civlrabnpa0gPiBnYWt1c2FpXCA7CivnjYTploAgPiBnb2t1bW9uXCA7Civkv4PmiJAgPiBzb2t1c2VpXCA7CivogIPoqLwgPiBrb3VzaG91XCA7CivlroznkqcgPiBrYW5wZWtpXCA7CivnlJ/lrrMgPiBzaG91Z2FpXCA7CivkubHoqr8gPiByYW5jaG91XCA7Civkurroh6MgPiBqaW5zaGluXCA7CivkuIDpoZ4gPiBpY2hpcnVpXCA7CivkubHoqq0gPiByYW5kb2t1XCA7CivkuoDoo4IgPiBraXJldHN1XCA7Civog7jmsLQgPiBreW91c3VpXCA7CivmnqDnt5ogPiB3YWt1c2VuXCA7CivkvJHnnKAgPiBreXV1bWluXCA7Civoh6jkvJEgPiByaW5reXV1XCA7Civku4TogZ4gPiBzb2t1YnVuXCA7CivkvY7mva4gPiB0ZWljaG91XCA7CivkvI/nm64gPiBmdXNoaW1lXCA7CivkuIfpm6MgPiBiYW4nJ25hblwgOwor6amV5aWiID4ga3lvdXNoYVwgOwor5bGO5bC/ID4gc2hpbnlvdVwgOwor5LiK6Zm4ID4gam91cmlrdVwgOwor5bC65bqmID4gc2hha3Vkb1wgOwor6LOk56ewID4gc2Vuc2hvdVwgOwor5LiH6ZqcID4gYmFuc2hvdVwgOwor5pyA6YGpID4gc2FpdGVraVwgOwor5bCx5b25ID4gc2h1dWVraVwgOwor5LiA6Z2iID4gaWNoaW1lblwgOwor5a++5pW1ID4gdGFpdGVraVwgOwor5pyd6LKiID4gY2hvdWtvdVwgOwor5LuP57iBID4gYnV0c3VlblwgOwor5LuV57WEID4gc2hpa3VtaVwgOwor5qGQ5p2QID4ga2lyaXphaVwgOwor5bCE5pKDID4gc2hhZ2VraVwgOwor5qCh5rOoID4ga291Y2h1dVwgOwor5LiA6ZuoID4gaGl0b2FtZVwgOwor5p+x54q2ID4gY2h1dWpvdVwgOwor5L2c5rOBID4gc2Fra3lvdVwgOwor5LiA6ZujID4gaWNoaW5hblwgOwor5bGx5ZywID4geWFtYWNoaVwgOwor5L+K5b2mID4gc2h1bmdlblwgOwor6IO05qyyID4gZG91eW9rdVwgOwor6aGN6Z2iID4gZ2FrdW1lblwgOwor5LiK6ZW3ID4gam91Y2hvdVwgOwor54+N6Iq4ID4gY2hpbmdlaVwgOwor5qOu5Y6zID4gc2hpbmdlblwgOwor55S35ZuaID4gZGFuc2h1dVwgOwor5qKv5a2QID4gaGFzaGlnb1wgOwor5p6V57W1ID4gbWFrdXJhZVwgOwor55Wq5YKYID4gYmFuZ2FzYVwgOwor5LiA6ZmjID4gaWNoaWppblwgOwor5LuP57WMID4gYnVra3lvdVwgOwor6aCs6autID4gaG9vaGlnZVwgOwor5pyq6KitID4gbWlzZXRzdVwgOwor55Wl5YSAID4gcnlha3VnaVwgOwor6ae/5omNID4gc2h1bnNhaVwgOwor6IO95qW9ID4gbm91Z2FrdVwgOwor5bCP5omNID4gc2hvdXNhaVwgOwor5Li76Lu4ID4gc2h1amlrdVwgOwor6aCs6aqoID4gaG9vYm9uZVwgOwor5Lmx6KGMID4gcmFuZ3lvdVwgOwor5auJ6KaWID4gc2hpc3NoaVwgOwor5bCP5oiQID4gc2hvdXNlaVwgOwor6IKJ55y8ID4gbmlrdWdhblwgOwor5Lit6YGTID4gY2h1dWRvdVwgOwor5bCR5oapID4gc2hvdWtlaVwgOwor5a6i5ryUID4ga3lha3VlblwgOwor5a6M54afID4ga2FuanVrdVwgOwor5LiA6ZaAID4gaWNoaW1vblwgOwor5pqX6ayxID4gYW4nJ3V0c3VcIDsKK+Wwj+aGqSA+IHNob3VrZWlcIDsKK+S4remAgCA+IGNodXV0YWlcIDsKK+akjeS7mCA+IHVldHN1a2VcIDsKK+eQhueqnyA+IHJpa3V0c3VcIDsKK+Wun+a8lCA+IGppdHN1ZW5cIDsKK+S/ruWlvSA+IHNodXVrb3VcIDsKK+WwvOWvuiA+IGFtYWRlcmFcIDsKK+S4rei+siA+IGNodXVub3VcIDsKK+adkeiQvSA+IHNvbnJha3VcIDsKK+acq+ijlCA+IG1hdHN1ZWlcIDsKK+WwuuWvuCA+IHNla2lzdW5cIDsKK+mpmuWYhiA+IGt5b3V0YW5cIDsKK+aiouWtkCA+IHNob3VzaGlcIDsKK+WvuOaPjyA+IHN1bmJ5b3VcIDsKK+acqOijvSA+IG1va3VzZWlcIDsKK+S9l+atjCA+IHdhYml1dGFcIDsKK+S4pumAsiA+IGhlaXNoaW5cIDsKK+S/ruWjqyA+IHNodXVzaGlcIDsKK+miqOiplSA+IGZ1dWh5b3VcIDsKK+eVquS6uiA+IGJhbicnbmluXCA7CivlrrPmr5IgPiBnYWlkb2t1XCA7CivlrabnlJ8gPiBnYWt1c2VpXCA7CivmnJfoqq0gPiByb3Vkb2t1XCA7CivmnJfoqqYgPiByb3VzaG91XCA7Civlrp/muKwgPiBqaXNzb2t1XCA7CivnlJ/lnqMgPiBpa2VnYWtpXCA7CivlsZ7lm70gPiB6b2trb2t1XCA7CivkupToibIgPiBnb3Nob2t1XCA7CivotaTmnK0gPiBha2FmdWRhXCA7Civmnb/nt6AgPiBpdGFqaW1lXCA7Civnj43ogZ4gPiBjaGluYnVuXCA7CivnlLrlkI0gPiBjaG91bWVpXCA7CivmnJ3oposgPiBjaG91a2VuXCA7Civmmq7pm6ogPiBib3NldHN1XCA7Civku5XnqK4gPiBzaGlndXNhXCA7CivkvbPmnIggPiBrYWdldHN1XCA7CivogonnlYwgPiBuaWt1a2FpXCA7Civlrq7mrr8gPiBreXV1ZGVuXCA7CivmnaXogbQgPiByYWljaG91XCA7CivpoK3poJggPiB0b3VyeW91XCA7Civku7vnlKggPiBuaW4nJ3lvdVwgOwor6IO45p2/ID4gbXVuYWl0YVwgOwor5L+h5aWJID4gc2hpbnBvdVwgOwor5qKT5a6uID4gc2hpa3l1dVwgOwor5p2/57SZID4gaXRhZ2FtaVwgOwor6aCt6aCCID4gdG91Y2hvdVwgOwor5LqM6ImyID4gbmlzaG9rdVwgOwor6aeQ5pSvID4gY2h1dXNoaVwgOwor5bCP5b6EID4gc2hvdWtlaVwgOwor5puy6LevID4ga3lva3Vyb1wgOwor5bCR5byfID4gc2hvdXRlaVwgOwor5Lih6LyqID4gcnlvdXJpblwgOwor5pyo6J2LID4gbW9rdXJvdVwgOwor5LiA6YygID4gaWNoaWpvdVwgOwor5a6f5rOBID4gamlra3lvdVwgOwor6LWk5peXID4gYWthaGF0YVwgOwor5bCP5byfID4gc2hvdXRlaVwgOwor5L+X5aeTID4gem9rdXNlaVwgOwor5L+C5bGeID4ga2Vpem9rdVwgOwor5L2z5pelID4ga2FqaXRzdVwgOwor5Lih6LuNID4gcnlvdWd1blwgOwor6IOO5q+SID4gdGFpZG9rdVwgOwor55WZ5Lu7ID4gcnl1dW5pblwgOwor5py96JGJID4ga3VjaGliYVwgOwor5p2+57GfID4gc2hvdXJhaVwgOwor5bCP5bq3ID4gc2hvdWtvdVwgOwor5bGx5YuYID4geWFtYWthblwgOwor5bCR5bm0ID4gc2hvdW5lblwgOwor5LuK56iLID4gaW1haG9kb1wgOwor6aeS5pCNID4ga29tYXNvblwgOwor572q6ZqcID4gemFpc2hvdVwgOwor5bCP5bqXID4gc2hvdXRlblwgOwor5a6/5qC5ID4gc2h1a2tvblwgOwor5pyI6KmVID4gZ2VwcHlvdVwgOwor572y6ZW3ID4gc2hvY2hvdVwgOwor5LuK56eLID4ga29uc2h1dVwgOwor55S65Yi2ID4gY2hvdXNlaVwgOwor5LiL6YOoID4gc2hpbW9iZVwgOwor5bCC5b+1ID4gc2VuJyduZW5cIDsKK+adn+e+pCA+IHNva3VndW5cIDsKK+Wun+avjSA+IGppdHN1Ym9cIDsKK+WwguW/gyA+IHNlbnNoaW5cIDsKK+eMrumFrCA+IGtlbnNodXVcIDsKK+S4gemHjSA+IHRlaWNob3VcIDsKK+S4jemBlCA+IGZ1dGF0c3VcIDsKK+S4u+iqvyA+IHNodWNob3VcIDsKK+S4i+mBlCA+IGthdGF0c3VcIDsKK+mjm+iEmiA+IGhpa3lha3VcIDsKK+eUuuWGhSA+IGNob3VuYWlcIDsKK+aciOimiyA+IHRzdWtpbWlcIDsKK+S/l+WhtSA+IHpva3VqaW5cIDsKK+WAi+WIpSA+IGtvYmV0c3VcIDsKK+WxnuWQjSA+IHpva3VtZWlcIDsKK+WAoeS9ryA+IHNob3V5b3VcIDsKK+S7mOedgCA+IGZ1Y2hha3VcIDsKK+S4iumAsiA+IGpvdXNoaW5cIDsKK+acjeijhSA+IGZ1a3Vzb3VcIDsKK+S9k+agvCA+IHRhaWtha3VcIDsKK+eMn+mKgyA+IHJ5b3VqdXVcIDsKK+S6pOe1oSA+IGtvdXJha3VcIDsKK+ajhOWNtCA+IGtpa3lha3VcIDsKK+S9leafkCA+IG5hbmlib3VcIDsKK+agoeacjSA+IGtvdWZ1a3VcIDsKK+S7leedgCA+IHNoaWtpc2VcIDsKK+acqOiUpiA+IGtpZHp1dGFcIDsKK+iyp+eqriA+IGhpbmt5dXVcIDsKK+iCieeJhyA+IG5pa3VoZW5cIDsKK+WwhuW4pSA+IHNob3VzdWlcIDsKK+eUt+WEqiA+IGRhbicneXV1XCA7CivmnKjok64gPiBtb2t1cmVuXCA7Civmm7LorZwgPiBreW9rdWZ1XCA7CivmopfloZ4gPiBrb3Vzb2t1XCA7CivnlLLlhpEgPiBrYXRjaHV1XCA7CivkvrXlrrMgPiBzaGluZ2FpXCA7CivogqXmupwgPiBrb2VkYW1lXCA7Civos57njqkgPiBzaG91Z2FuXCA7CivlgJ/kurogPiBrYXJpbmluXCA7Civkurrnp7AgPiBuaW5zaG91XCA7Civkv4rlo6sgPiBzaHVuc2hpXCA7CivmnInooYYgPiB5dXVzaHV1XCA7Civmm7joqZUgPiBzaG9oeW91XCA7Civlr4bmlZkgPiBtaWtreW91XCA7CivosarohbkgPiBnb3VmdWt1XCA7CivkuIDpgZMgPiBpY2hpZG91XCA7CivkuIDpgYcgPiBpY2hpZ3V1XCA7Civmm7joqLwgPiBzaG9zaG91XCA7CivosqvnpoQgPiBrYW5yb2t1XCA7CivotorlubQgPiBldHN1bmVuXCA7CivkuIDpgKMgPiBpY2hpcmVuXCA7CivnlJ/ljZQgPiBzZWlreW91XCA7CivkuInou7ggPiBzYW5qaWt1XCA7CivogIHoh6MgPiByb3VzaGluXCA7CivmnaHntIQgPiBqb3V5YWt1XCA7Civkv67lj7IgPiBzaHV1c2hpXCA7CivosYbolLUgPiBtYW1lem91XCA7CivkvZnml6UgPiB5b2ppdHN1XCA7CivnkIPnlYwgPiBreXV1a2FpXCA7CivkvZzmlocgPiBzYWt1YnVuXCA7CivlsI/lr5IgPiBzaG91a2FuXCA7Civos57nirYgPiBzaG91am91XCA7CivmnZzntbYgPiB0b3pldHN1XCA7CivkvY7mnKggPiB0ZWlib2t1XCA7CivlsIrlsZ4gPiBzb256b2t1XCA7CivppqzmlrkgPiB1bWFrYXRhXCA7CivkubHoh6MgPiByYW5zaGluXCA7CivkvZXmmYIgPiBuYW5kb2tpXCA7CivotaTmiYsgPiBzZWtpc2h1XCA7CivlsI/lrpggPiBzaG91a2FuXCA7CivkubPohbogPiBueXV1c2VuXCA7CivlsJHlrZAgPiBzaG91c2hpXCA7CivnjK7ouqsgPiBrZW5zaGluXCA7CivlgJLkvI8gPiB0b3VmdWt1XCA7Civos57niYwgPiBzaG91aGFpXCA7Civmm7Lop6MgPiBreW9ra2FpXCA7Civnj43nrZQgPiBjaGludG91XCA7CivkuIDovKogPiBpY2hpcmluXCA7Civlr7XlubggPiBjaG91a291XCA7CivnlLrkvJogPiBjaG91a2FpXCA7Civlrprmpa0gPiB0ZWlneW91XCA7CivpqZXlgrIgPiBreW91Z291XCA7CivpqZrlgJIgPiBreW91dG91XCA7CivlsIrlrrkgPiBzb24nJ3lvdVwgOwor54++55SoID4gZ2VuJyd5b3VcIDsKK+S4iui2syA+IGpvdXNva3VcIDsKK+WumOalrSA+IGthbmd5b3VcIDsKK+S4oeirliA+IHJ5b3Vyb25cIDsKK+S4gOi7jSA+IGljaGlndW5cIDsKK+eUuuS6uiA+IGNob3VuaW5cIDsKK+S4iui2iiA+IGpvdWV0c3VcIDsKK+WwiuWuhSA+IHNvbnRha3VcIDsKK+mghemgmCA+IGtvdXJ5b3VcIDsKK+mmmeacqCA+IGtvdWJva3VcIDsKK+WxgOWToSA+IGt5b2t1aW5cIDsKK+WwguWxniA+IHNlbnpva3VcIDsKK+S9leaVhSA+IG5hbml5dWVcIDsKK+S6ouernCA+IGtvdXJ5b3VcIDsKK+eMm+mAsiA+IG1vdXNoaW5cIDsKK+S7i+eXhSA+IGthaWJ5b3VcIDsKK+WwhuWumCA+IHNob3VrYW5cIDsKK+S7j+eUuyA+IGJ1dHN1Z2FcIDsKK+iEseWtlyA+IGRhdHN1amlcIDsKK+eMm+i/vSA+IG1vdXRzdWlcIDsKK+i0heayoiA+IHplaXRha3VcIDsKK+S/oeWPtyA+IHNoaW5nb3VcIDsKK+eUsOS9nCA+IGRlbnNha3VcIDsKK+S8r+alvSA+IGJha3Vyb3VcIDsKK+WumuagvCA+IHRlaWtha3VcIDsKK+WxseS4rSA+IHNhbmNodXVcIDsKK+iDuOaHkCA+IGt5b3VrYWlcIDsKK+acrOiFuSA+IGhvbnB1a3VcIDsKK+WvvuWvqSA+IHRhaXNoaW5cIDsKK+S6lOevgCA+IGdvc2V0c3VcIDsKK+S4u+iZuSA+IHNodW5pamlcIDsKK+S4puijvSA+IG5hbWlzZWlcIDsKK+eUmuWFrSA+IGppbnJva3VcIDsKK+eLgumokiA+IGt5b3Vzb3VcIDsKK+i1pOaBpSA+IGFrYWhhamlcIDsKK+acseiCiSA+IHNodW5pa3VcIDsKK+S9meaOpSA+IHlvc2V0c3VcIDsKK+eUsuS5mSA+IGtvdW90c3VcIDsKK+S6leetkiA+IGlkenV0c3VcIDsKK+acrOiDvSA+IGhvbicnbm91XCA7CivkuIfosaEgPiBiYW5zaG91XCA7CivnkaPmnKsgPiBzYW1hdHN1XCA7CivpppnmlpkgPiBrb3VyeW91XCA7Civkv5flkI0gPiB6b2t1bWVpXCA7CivnkIPnirYgPiBreXV1am91XCA7Civog7Tmhb4gPiBkb3V5b2t1XCA7CivkurrnmocgPiBuaW4nJ25vdVwgOwor5Lq655qEID4gamludGVraVwgOwor5LyP5rC0ID4gZnVrdXN1aVwgOwor5bCR5aOuID4gc2hvdXNvdVwgOwor6ISG5byxID4gemVpamFrdVwgOwor6aWR5riHID4ga2lrYXRzdVwgOwor5bCP5aSJID4gc2hvdWhlblwgOwor5Li76JasID4gc2h1eWFrdVwgOwor6LO85rGCID4ga291a3l1dVwgOwor5a6Y5pyJID4ga2FuJyd5dXVcIDsKK+S8keatoiA+IGt5dXVzaGlcIDsKK+S6huewoSA+IHJ5b3VrZW5cIDsKK+S7lueJqSA+IHRhYnV0c3VcIDsKK+e+veiZqyA+IGhhbXVzaGlcIDsKK+eUo+S8kSA+IHNhbmt5dXVcIDsKK+iDjuaVmSA+IHRhaWt5b3VcIDsKK+S9nOaIpiA+IHNha3VzZW5cIDsKK+S8r+aelyA+IGJlcnVyaW5cIDsKK+S9nOaIkCA+IHNha3VzZWlcIDsKK+WvkuW/gyA+IGthbnNoaW5cIDsKK+eLgumiqCA+IGt5b3VmdXVcIDsKK+Wuo+aVmSA+IHNlbmt5b3VcIDsKK+iDjOaVmSA+IGhhaWt5b3VcIDsKK+ixiuiDuCA+IGhvdWt5b3VcIDsKK+afs+adoSA+IHJ5dXVqb3VcIDsKK+WwhuWjqyA+IHNob3VzaGlcIDsKK+eUn+S5syA+IHNlaW55dXVcIDsKK+Wul+aXqCA+IHNodXVzaGlcIDsKK+S+r+WbvSA+IGtvdWtva3VcIDsKK+e+pOihhiA+IGd1bnNodXVcIDsKK+Wul+aXjyA+IHNvdXpva3VcIDsKK+iCieaxoCA+IG5pa3VjaGlcIDsKK+aik+WMoCA+IHNoaXNob3VcIDsKK+S4ieinkiA+IHNhbmtha3VcIDsKK+S4i+imiyA+IHNoaXRhbWlcIDsKK+S8j+aoiyA+IGZ1c2Vkb2lcIDsKK+iCieaxgSA+IG5pa3VqdXVcIDsKK+S5s+ezliA+IG55dXV0b3VcIDsKK+eOhOe/gSA+IGdlbicnbm91XCA7CivkuIDoqqwgPiBpc3NldHN1XCA7Civpp5Dlsa8gPiBjaHV1dG9uXCA7CivlsLHlirQgPiBzaHV1cm91XCA7Civog7jlupUgPiBreW91dGVpXCA7CivlrqPmj5ogPiBzZW4nJ3lvdVwgOwor6LK354mpID4ga2FpbW9ub1wgOwor6aGb6KaGID4gdGVucHVrdVwgOwor5L+u5LqkID4gc2h1dWtvdVwgOwor5bGF5YCZID4gaXNvdXJvdVwgOwor5pyN6Ia6ID4gZnVrdXlvdVwgOwor5a6/5oCoID4gc2h1a3VlblwgOwor6ICM56uLID4gamlyaXRzdVwgOwor5p6v5riHID4ga29rYXRzdVwgOwor6aKo57+SID4gZnV1c2h1dVwgOwor5LmX576DID4gam91YmVraVwgOwor5bGI5Ly4ID4ga3Vzc2hpblwgOwor5L+X5YOnID4gem9rdXNvdVwgOwor6aGV6KaBID4ga2VuJyd5b3VcIDsKK+iCh+atsyA+IGNob3VzYWlcIDsKK+WxiOS8jyA+IGt1cHB1a3VcIDsKK+acrOe1piA+IGhvbmt5dXVcIDsKK+S4reiRiSA+IGNodXV5b3VcIDsKK+e9qui3oSA+IHphaXNla2lcIDsKK+mjm+ekqyA+IHRzdWJ1dGVcIDsKK+adoeebriA+IGpvdW1va3VcIDsKK+S4gOimpyA+IGljaGlyYW5cIDsKK+WvhuW6piA+IG1pdHN1ZG9cIDsKK+S4iuihqCA+IGpvdWh5b3VcIDsKK+S4i+ihgCA+IGdla2V0c3VcIDsKK+acgOiJryA+IHNhaXJ5b3VcIDsKK+i2s+WKtCA+IHNva3Vyb3VcIDsKK+WuiOaXpyA+IHNodWt5dXVcIDsKK+Wwj+WWhCA+IHNob3V6ZW5cIDsKK+S7ruaxuiA+IGtha2V0c3VcIDsKK+Wvm+WuuSA+IGthbicneW91XCA7CivkvJHmoKEgPiBreXV1a291XCA7Civkv6Hku7AgPiBzaGlua291XCA7CivmoJbmga8gPiBzZWlzb2t1XCA7CivkupXnm64gPiBzZWltb2t1XCA7CivlsJrlj4ggPiBuYW9tYXRhXCA7Civmmpfouo0gPiBhbicneWFrdVwgOwor6ICD56m2ID4ga291a3l1dVwgOwor5pmp6ZCYID4gYmFuc2hvdVwgOwor6LKo54mpID4ga2Ftb3RzdVwgOwor5a6f5oqAID4gaml0c3VnaVwgOwor5pys57GkID4gaG9ua3VqaVwgOwor6ISx5Za2ID4gZGF0c3VlaVwgOwor5L2T5b6XID4gdGFpdG9rdVwgOwor5pys57GNID4gaG9uc2VraVwgOwor5pyo57K+ID4gbW9rdXNlaVwgOwor5bCP5ZOBID4gc2hvdWhpblwgOwor5pyJ6IG3ID4geXV1c29rdVwgOwor5L2z5a6iID4ga2FreWFrdVwgOwor576O6KGTID4gYmlqdXRzdVwgOwor572q6LKsID4gemFpc2VraVwgOwor6LWk5a2QID4gc2VraXNoaVwgOwor5a6z5b+DID4gZ2Fpc2hpblwgOwor5L+X5L2TID4gem9rdXRhaVwgOwor5pi86aSQID4gY2h1dXNhblwgOwor5LqM552AID4gbmljaGFrdVwgOwor5L+X5LydID4gem9rdWRlblwgOwor5LqG55+lID4gcnlvdWNoaVwgOwor5qC45a2QID4ga2FrdXNoaVwgOwor5pys566xID4gaG9uYmFrb1wgOwor5pyN572qID4gZnVrdXphaVwgOwor5LqM55u0ID4gbmljaG9rdVwgOwor6aas5biCID4gdW1haWNoaVwgOwor55Kw5aKDID4ga2Fua3lvdVwgOwor5bCP5Y+yID4gc2hvdXNoaVwgOwor5L+X5Lq6ID4gem9rdWppblwgOwor5L2V5bm0ID4gbmFuJyduZW5cIDsKK+eMm+ilsiA+IG1vdXNodXVcIDsKK+Wwj+WPoyA+IGtvZ3VjaGlcIDsKK+advueFpCA+IHNob3ViYWlcIDsKK+acrOetiyA+IGhvbnN1amlcIDsKK+adseeLrCA+IHRvdWRva3VcIDsKK+eNo+iCiSA+IGp1dW5pa3VcIDsKK+S4reiIiCA+IGNodXVrb3VcIDsKK+S6jOeZviA+IG5paHlha3VcIDsKK+absuiIniA+IGt1c2VtYWlcIDsKK+ePjeeNoyA+IGNoaW5qdXVcIDsKK+acrOeroCA+IGhvbnNob3VcIDsKK+S4u+e/vCA+IHNodXlva3VcIDsKK+S/l+S4liA+IHpva3VzZWlcIDsKK+e+pOiQvSA+IGd1bnJha3VcIDsKK+mjtOeOiSA+IGFtZWRhbWFcIDsKK+iAhOeijCA+IG1vdXJva3VcIDsKK+WuruW7tyA+IGt5dXV0ZWlcIDsKK+WwseS7uyA+IHNodXVuaW5cIDsKK+Wmmem9oiA+IG15b3VyZWlcIDsKK+aZgumbqCA+IHNoaWd1cmVcIDsKK+WuruW6rSA+IGt5dXV0ZWlcIDsKK+S4reiEsyA+IGNodXVub3VcIDsKK+acqOeriyA+IGtvZGFjaGlcIDsKK+eOi+eriyA+IG91cml0c3VcIDsKK+Wwj+WLhyA+IHNob3V5dXVcIDsKK+iBt+aoqSA+IHNob2trZW5cIDsKK+S+teWGpiA+IHNoaW5rb3VcIDsKK+ePvuazgSA+IGdlbmt5b3VcIDsKK+WvhOWuvyA+IGtpc2h1a3VcIDsKK+iDjOW+syA+IGhhaXRva3VcIDsKK+e/kue3tCA+IHNodXVyZW5cIDsKK+agvOWkliA+IGtha3VnYWlcIDsKK+S4iuiUnyA+IGpvdXpva3VcIDsKK+S4reiDjCA+IGNodXV6ZWlcIDsKK+i1pOWkliA+IHNla2lnYWlcIDsKK+S4oeiItyA+IHJ5b3VnZW5cIDsKK+Wto+acqyA+IGtpbWF0c3VcIDsKK+afk+aWmSA+IHNlbnJ5b3VcIDsKK+advua/pCA+IHNob3V0b3VcIDsKK+afhOadkyA+IGhpc2hha3VcIDsKK+eLrOi1sCA+IGRva3Vzb3VcIDsKK+S7ruakjSA+IGthc2hva3VcIDsKK+eOieeovyA+IGd5b2trb3VcIDsKK+Wwj+WIgCA+IHNob3V0b3VcIDsKK+S+v+S+qyA+IGJlbicnbmVpXCA7CivpoK3oqLsgPiB0b3VjaHV1XCA7Civku5bmrrogPiB0YXNhdHN1XCA7CivkuIvokYkgPiBzaGl0YWJhXCA7CivotrPku6MgPiBhc2hpZGFpXCA7CivmnInntaYgPiB5dXVreXV1XCA7Civkvr/kvZ4gPiBiZW4nJ25laVwgOwor5Lit6ICBID4gY2h1dXJvdVwgOwor5pyI57WmID4gZ2Vra3l1dVwgOwor6aeQ5ZyoID4gY2h1dXphaVwgOwor6aaW5bitID4gc2h1c2VraVwgOwor5pyJ57WCID4geXV1c2h1dVwgOwor5Lih6IWVID4gcnlvdXVkZVwgOwor542E6IiOID4gZ29rdXNoYVwgOwor6aCt6KeSID4gdG91a2FrdVwgOwor6aGb6JC9ID4gdGVucmFrdVwgOwor5bCP5YWaID4gc2hvdXRvdVwgOwor5L6g5YuHID4ga3lvdXl1dVwgOwor5bCO5YWlID4gZG91bnl1dVwgOwor5Lyd5om/ID4gZGVuc2hvdVwgOwor6IO45aOwID4ga3lvdXNlaVwgOwor5LmZ56iuID4gb3RzdXNodVwgOwor5LmX56mNID4gam91c2VraVwgOwor54md6baPID4gbWVuZG9yaVwgOwor576k6IejID4gZ3Vuc2hpblwgOwor5a2f5pilID4gbW91c2h1blwgOwor5L6b5YuiID4gdG9tb3plaVwgOwor5Lm+55WZID4ga2Fucnl1dVwgOwor5a+p5ZWPID4gc2hpbm1vblwgOwor6LOO5qWtID4gc2VuZ3lvdVwgOwor6LOe5p2vID4gc2hvdWhhaVwgOwor5LuL5q67ID4ga2Fpa2FrdVwgOwor5LiA6JGJID4gaWNoaXlvdVwgOwor5pyA57WCID4gc2Fpc2h1dVwgOwor5Lmz55mMID4gbnl1dWdhblwgOwor5bCG5YW1ID4gc2hvdWhlaVwgOwor54md6bOlID4gbWVuZG9yaVwgOwor5Luw5pybID4gZ3lvdWJvdVwgOwor5a6X5bufID4gc291YnlvdVwgOwor5Lm+55OiID4ga2FucHlvdVwgOwor6IC95rq6ID4gdGFuZGVraVwgOwor5L2P5a6FID4ganV1dGFrdVwgOwor5Lih6ICFID4gcnlvdXNoYVwgOwor6LaF5YukID4gY2hvdWtpblwgOwor6LKr5rWBID4ga2Fucnl1dVwgOwor5a6Y5bqBID4ga2FuY2hvdVwgOwor6ICB55eFID4gcm91YnlvdVwgOwor5a6a5bitID4gam91c2VraVwgOwor6LOT5qC8ID4gaGlua2FrdVwgOwor5pyd56S8ID4gY2hvdXJlaVwgOwor5bCP5L6/ID4gc2hvbmJlblwgOwor5a+45YqHID4gc3VuZ2VraVwgOwor5bCB5YWlID4gZnV1bnl1dVwgOwor6K2m6ZCYID4ga2Vpc2hvdVwgOwor5pil6Zu3ID4gc2h1bnJhaVwgOwor5a+S5Zu9ID4ga2Fua29rdVwgOwor5L6v5LyvID4ga291aGFrdVwgOwor5Lit57eoID4gY2h1dWhlblwgOwor5pyq552AID4gbWljaGFrdVwgOwor5pys55yBID4gaG9uc2hvdVwgOwor5pu457WMID4gc2hva3lvdVwgOwor5a+45Yi7ID4gc3Vua29rdVwgOwor5LqL54mpID4gamlidXRzdVwgOwor5LuV5qWtID4gc2hpd2F6YVwgOwor6aaW5bCGID4gc2h1c2hvdVwgOwor5LyR5oimID4ga3l1dXNlblwgOwor54++5qWtID4gZ2VuZ3lvdVwgOwor5puz57ayID4gaGlraWFtaVwgOwor5bCK5L+hID4gc29uc2hpblwgOwor5Lit57aZID4gY2h1dWtlaVwgOwor6LaF5YehID4gY2hvdWJvblwgOwor5Luy5patID4gY2h1dWRhblwgOwor5bCP5LydID4gc2hvdWRlblwgOwor6Z6m6Z+GID4gYnVyYW5rb1wgOwor6LGq55CDID4gZ291a3l1dVwgOwor5Lmx55SoID4gcmFuJyd5b3VcIDsKK+mgmOinoyA+IHJ5b3VrYWlcIDsKK+S4g+iJsiA+IG5hbmFpcm9cIDsKK+S4iuiGiiA+IGpvdWhha3VcIDsKK+S9leWltCA+IGRveWF0c3VcIDsKK+ael+alrSA+IHJpbmd5b3VcIDsKK+S4gOiKuCA+IGljaGlnZWlcIDsKK+S8keaGqSA+IGt5dXVrZWlcIDsKK+adsea4hSA+IHRvdXNoaW5cIDsKK+eKrOmHmCA+IGludWt1Z2lcIDsKK+eQg+aguSA+IGt5dXVrb25cIDsKK+acqueZuiA+IG1paGF0c3VcIDsKK+Wwj+S6uiA+IHNob3VuaW5cIDsKK+S9l+WjsCA+IHdhYmlnb2VcIDsKK+S4gOiJsiA+IGhpdG9pcm9cIDsKK+S4u+etiyA+IHNodXN1amlcIDsKK+S4i+iEmiA+IGtha3lha3VcIDsKK+S4reezuCA+IGNodXVpdG9cIDsKK+e+pOe+iiA+IGd1bicneW91XCA7Civos4fmoLwgPiBzaGlrYWt1XCA7Civmm7jnsY0gPiBzaG9zZWtpXCA7Civlrr/loLQgPiBzaHVrdWJhXCA7CivmmKXpl5ggPiBzaHVudG91XCA7CivlsILkv64gPiBzZW5zaHV1XCA7CivlsI/kuZcgPiBzaG91am91XCA7CivkvLjlsZUgPiBzaGludGVuXCA7CivkvovliLsgPiByZWlrb2t1XCA7CivmmrTokL0gPiBib3VyYWt1XCA7Civni4LouoEgPiBreW91c291XCA7CivosqjmrpYgPiBrYXNob2t1XCA7CivkuqzmtJsgPiBrZWlyYWt1XCA7CivkvJrlv4MgPiBrYWlzaGluXCA7CivkuK3nsbMgPiBjaHV1YmVpXCA7CivkuqTmuIkgPiBrb3VzaG91XCA7CivpoIzoqZ4gPiBzaG91c2hpXCA7CivkuIfog70gPiBtYW4nJ25vdVwgOwor5LiJ6IKyID4gc2FuJydpa3VcIDsKK+S4ieiCoSA+IHNhbm1hdGFcIDsKK+S4gOiGsyA+IGljaGl6ZW5cIDsKK+WtpuaJjSA+IGdha3VzYWlcIDsKK+eJuembuyA+IHRva3VkZW5cIDsKK+mghuiqvyA+IGp1bmNob3VcIDsKK+e+veeukiA+IGhhYm91a2lcIDsKK+iEmuWFiSA+IGt5YWtrb3VcIDsKK+WumuWuvyA+IGpvdXlhZG9cIDsKK+WvqeWIpCA+IHNoaW5wYW5cIDsKK+eLrOijgSA+IGRva3VzYWlcIDsKK+e+iuiGnCA+IHlvdW1ha3VcIDsKK+acq+eUnyA+IHN1ZW5hcmlcIDsKK+afu+WvnyA+IHNhc2F0c3VcIDsKK+ixqueJqSA+IGVyYW1vbm9cIDsKK+S4reevhyA+IGNodXVoZW5cIDsKK+WwguS7uyA+IHNlbicnbmluXCA7CivnvorohbggPiB5b3VjaG91XCA7CivkuIrnv7wgPiBqb3V5b2t1XCA7CivkvJHmgKAgPiBreXV1dGFpXCA7CivkubHnjbIgPiByYW5rYWt1XCA7CivkuqTmtYEgPiBrb3VyeXV1XCA7Civlp6bpgJogPiBrYW50c3V1XCA7CivnvqnntbYgPiBnaXpldHN1XCA7CivmmIfpoIYgPiBzaG91anVuXCA7Civosp3mr5IgPiBrYWlkb2t1XCA7CivlrpjlraYgPiBrYW5nYWt1XCA7Civnj77mnIkgPiBnZW4nJ3l1dVwgOwor6LKd5q68ID4ga2FpZ2FyYVwgOwor6LKd5q67ID4ga2FpZ2FyYVwgOwor6LOe5o+aID4gc2hvdXlvdVwgOwor5Lit562JID4gY2h1dXRvdVwgOwor54mp6Z+zID4gbW9ub290b1wgOwor5Lmz54q2ID4gbnl1dWpvdVwgOwor5Li756WeID4gc2h1c2hpblwgOwor5p6X5pyoID4gcmluYm9rdVwgOwor546J55K9ID4gZ3lva3VqaVwgOwor5Lya5bitID4ga2Fpc2VraVwgOwor54u86JeJID4gcm91emVraVwgOwor576K6IKJID4geW91bmlrdVwgOwor57+854q2ID4geW9rdWpvdVwgOwor6aCQ6KGAID4geW9rZXRzdVwgOwor6aKo55a5ID4gZnV1c2hpblwgOwor5LyR5bu3ID4ga3l1dXRlaVwgOwor546J55GbID4gZ3lva3VlaVwgOwor5a6u5Z+OID4ga3l1dWpvdVwgOwor6LaF5Lq6ID4gY2hvdWppblwgOwor5a6/5Za2ID4gc2h1a3VlaVwgOwor5p6d5pePID4gc2hpem9rdVwgOwor5LuW5pelID4gdGFqaXRzdVwgOwor6ICB54afID4gcm91anVrdVwgOwor6K6D6LOeID4gc2Fuc2hvdVwgOwor6LOH5paZID4gc2hpcnlvdVwgOwor6aeQ5YW1ID4gY2h1dWhlaVwgOwor5LiA576kID4gaWNoaWd1blwgOwor5L2O5ZynID4gdGVpYXRzdVwgOwor5p2+5qWTID4gc2hvdWZ1dVwgOwor5LuK5pydID4ga29uY2hvdVwgOwor5Li556KnID4gdGFucGVraVwgOwor5pqu6ImyID4gYm9zaG9rdVwgOwor5LuV5pa5ID4gc2hpa2F0YVwgOwor6aOi5riHID4ga2lrYXRzdVwgOwor5LuK5pu0ID4gaW1hc2FyYVwgOwor5a+G5ZGKID4gbWlra29rdVwgOwor5piH6ZmNID4gc2hvdWtvdVwgOwor54qv6LehID4gaGFuc2VraVwgOwor6LK05pytID4ga2lzYXRzdVwgOwor6aOE54S2ID4gaHlvdXplblwgOwor5LuK5pqBID4ga29uZ3lvdVwgOwor5pep6aasID4gaGF5YXVtYVwgOwor5L2c5ZOBID4gc2FrdWhpblwgOwor6LKg5qW1ID4gZnVreW9rdVwgOwor5Lq65qC8ID4gamlua2FrdVwgOwor5pys54mpID4gaG9ubW9ub1wgOwor5LuK5pmCID4gaW1hZG9raVwgOwor5p2l5q20ID4gcmFpcmVraVwgOwor6Z+z6KizID4gb24nJ3lha3VcIDsKK+S7iuaYpSA+IGtvbnNodW5cIDsKK+S7iuaYlCA+IGtvbnNla2lcIDsKK+iBmuaWgiA+IHNodXVyZW5cIDsKK+S7j+aVmSA+IGJ1a2t5b3VcIDsKK+iyr+acqCA+IGNob2Jva3VcIDsKK+acqOeKgCA+IG1va3VzZWlcIDsKK+iyt+aYpSA+IGJhaXNodW5cIDsKK+WvjOWKmyA+IGZ1cnlva3VcIDsKK+S4iue0miA+IGpvdWt5dXVcIDsKK+S4iue0mSA+IHV3YWdhbWlcIDsKK+iBmuaVoyA+IHNodXVzYW5cIDsKK+S4iue0kCA+IHV3YWhpbW9cIDsKK+S4iee0miA+IHNhbmt5dXVcIDsKK+S7iuaWuSA+IGltYWdhdGFcIDsKK+S4oeeoriA+IHJ5b3VzaHVcIDsKK+acqOeJiCA+IG1va3VoYW5cIDsKK+acqOeJhyA+IG1va3VoZW5cIDsKK+WtneW/gyA+IGtvdXNoaW5cIDsKK+eLguipqSA+IGt5b3VzaGlcIDsKK+iDjOWcpyA+IGhhaWF0c3VcIDsKK+S5vua6nCA+IGthbnJ5dXVcIDsKK+iCieW8viA+IG5pa3VkYW5cIDsKK+eNhOeqkyA+IGdva3Vzb3VcIDsKK+WtpuW5tCA+IGdha3VuZW5cIDsKK+iBluaVmSA+IHNlaWt5b3VcIDsKK+WuouWcnyA+IGt5YWt1ZG9cIDsKK+ittOiyrCA+IGtlbnNla2lcIDsKK+acjeeUqCA+IGZ1a3V5b3VcIDsKK+S9juWUsSA+IHRlaXNob3VcIDsKK+aXp+miqCA+IGt5dXVmdXVcIDsKK+eMrue0jSA+IGtlbicnbm91XCA7CivlrZjlv7UgPiB6b24nJ25lblwgOwor546H54i+ID4gc290c3VqaVwgOwor5a2m5bi9ID4gZ2FrdWJvdVwgOwor5piO6Y+hID4gbWVpa3lvdVwgOwor5pys54S2ID4gaG9uJyduZW5cIDsKK+eLguiogCA+IGt5b3VnZW5cIDsKK+S7leaOmyA+IHNoaWtha2VcIDsKK+agquWIuCA+IGthYnVrZW5cIDsKK+mjm+ayqyA+IGhpbWF0c3VcIDsKK+miqOeLgiA+IGZ1dWt5b3VcIDsKK+WtkOaBryA+IHNoaXNva3VcIDsKK+mmrOWMuSA+IGJhaGl0c3VcIDsKK+abuOebriA+IHNob21va3VcIDsKK+S4iueusSA+IHV3YWJha29cIDsKK+iDuOWDjyA+IGt5b3V6b3VcIDsKK+S8j+WwhCA+IGZ1a3VzaGFcIDsKK+iDtOWFgyA+IGRvdW1vdG9cIDsKK+WumuWcpyA+IHRlaWF0c3VcIDsKK+aal+iJsiA+IGFuc2hva3VcIDsKK+WujOWjgSA+IGthbmJla2lcIDsKK+iDhuWaoiA+IHRhbicnbm91XCA7CivosYrnhp8gPiBob3VqdWt1XCA7CivkuIrnrZYgPiBqb3VzYWt1XCA7CivpoY7ntJAgPiBhZ29oaW1vXCA7CivmnKjngq0gPiBtb2t1dGFuXCA7CivkvZnlipsgPiB5b3J5b2t1XCA7CivkvZPljZQgPiB0YWlreW91XCA7CivpppbllLEgPiBzaHVzaG91XCA7CivkuK3nm6QgPiBjaHV1YmFuXCA7CivmoKHliYcgPiBrb3Vzb2t1XCA7CivogLPmoJMgPiBtaW1pc2VuXCA7CivkvZnlibIgPiB5b2thdHN1XCA7CivkuIfnrZYgPiBiYW5zYWt1XCA7Civku6Tmga8gPiByZWlzb2t1XCA7CivniYfpnaIgPiBrYXRhbWVuXCA7Civlr4blhIAgPiBtaXRzdWdpXCA7CivnibnphY0gPiB0b2t1aGFpXCA7CivkubPmuIUgPiBueXV1c2VpXCA7Civml6XpnLIgPiBuaWNoaXJvXCA7CivnjK7nrZYgPiBrZW5zYWt1XCA7CivkvZnliIcgPiB5b3NldHN1XCA7CivkuqvmnIkgPiBreW91eXV1XCA7CivogbTlvpMgPiBjaG91anV1XCA7CivkubPmtrIgPiBueXV1ZWtpXCA7CivmoLjku4EgPiBrYWt1amluXCA7CivlrqLlk6EgPiBreWFrdWluXCA7CivmmJ/ovrAgPiBzZWlzaGluXCA7CivnjK7nq4sgPiBrb25kYXRlXCA7CivkuKHnnLwgPiByeW91Z2FuXCA7CivkvZXlh6YgPiBkb2tvaXJhXCA7CivosYbngq0gPiBtYW1ldGFuXCA7Civlrp/lk6EgPiBqaXRzdWluXCA7CivnibnpgbggPiB0b2t1c2VuXCA7CivlrqPlkYogPiBzZW5rb2t1XCA7CivkvZ3lg4IgPiBzZW11c2hpXCA7Civnj43mnKwgPiBjaGlucG9uXCA7Civku6PlvbkgPiBkYWl5YWt1XCA7CivkubHmtYEgPiByYW5yeXV1XCA7CivkuIDnq68gPiBpcHBhc2hpXCA7CivkuInnp4sgPiBzYW5zaHV1XCA7CivlrrnlhbEgPiB5b3VreW91XCA7CivmoKHlg5UgPiBrb3Vib2t1XCA7Civnj43mm7ggPiBjaGluc2hvXCA7CivkvZXlhbEgPiBuYW50b21vXCA7Civlr5LkuK0gPiBrYW5jaHV1XCA7CivkuJ7nm7ggPiBqb3VzaG91XCA7CivkuK3nk7YgPiBjaHV1YmluXCA7CivkuIfnpo8gPiBtYW5wdWt1XCA7CivmnaXmnJ0gPiByYWljaG91XCA7Civogbflt6UgPiBzaG9ra291XCA7CivlroXlnLAgPiB0YWt1Y2hpXCA7CivkubPmsYEgPiBueXV1anV1XCA7Civlrq7liJEgPiBreXV1a2VpXCA7Civpo7zmlpkgPiBzaGlyeW91XCA7CivkvI/lpY8gPiBmdWt1c291XCA7Civlrp/lj44gPiBqaXNzaHV1XCA7CivmoKHlgIkgPiBhemVrdXJhXCA7Civnv5XnhLYgPiBreXV1emVuXCA7CivmlrDprq4gPiBzaGluc2VuXCA7CivosYrmvIEgPiBob3VyeW91XCA7CivoravoqIAgPiB1d2Fnb3RvXCA7CivmnJ3mva4gPiBhc2FzaGlvXCA7Civpoqjmva4gPiBmdXVjaG91XCA7CivnkIPlvaIgPiBreXV1a2VpXCA7Civog7TkuK0gPiBkb3VuYWthXCA7CivpoJrogokgPiBrZWluaWt1XCA7Civlrp/ljbAgPiBqaXRzdWluXCA7CivkvZzkvosgPiBzYWt1cmVpXCA7CivmnKzmtYEgPiBob25yeXV1XCA7Civlr4bkuosgPiBtaXRzdWppXCA7Civku7DlsbEgPiBneW91c2FuXCA7Civku4/mgakgPiBidXRzdW9uXCA7Civku5blvosgPiB0YXJpdHN1XCA7CivmnaXmmKUgPiByYWloYXJ1XCA7CivkubPmra8gPiBueXV1c2hpXCA7CivkvJHloLQgPiBreXV1am91XCA7Civnj77lvbkgPiBnZW4nJ2VraVwgOwor5LiA56S8ID4gaWNoaXJlaVwgOwor6aCG6ImvID4ganVucnlvdVwgOwor5LuV5b2iID4gc2hpa2F0YVwgOwor5LiK55+zID4gdXdhaXNoaVwgOwor5Lih55SoID4gcnlvdXlvdVwgOwor5Lih55SfID4gcnlvdXNlaVwgOwor5a6f5YuZID4gaml0c3VtdVwgOwor5LqU5pyIID4gc2F0c3VraVwgOwor5a2Q5bGAID4ga29reW9rdVwgOwor5LiN552AID4gZnVjaGFrdVwgOwor5LiL552AID4gc2hpdGFnaVwgOwor5pyq5rG6ID4gbWlrZXRzdVwgOwor5aSn6buSID4gZGFpa29rdVwgOwor5qCh5LqGID4ga291cnlvdVwgOwor5piC6YCyID4ga291c2hpblwgOwor5LuV5bqmID4gc2hpdGFrdVwgOwor5a2m5aSWID4gZ2FrdWdhaVwgOwor5a6f5YipID4gaml0c3VyaVwgOwor5a6X5YygID4gc291c2hvdVwgOwor6aCs57SFID4gaG9vYmVuaVwgOwor5a2Q5a6uID4gc2hpa3l1dVwgOwor6Z2i6ZW3ID4gb21vbmFnYVwgOwor6K2Y6KqeID4gc2hpa2lnb1wgOwor5L2O5L+XID4gdGVpem9rdVwgOwor5a2m5aOrID4gZ2FrdXNoaVwgOwor5LiL55uuID4gc2hpdGFtZVwgOwor5aWH6aqoID4ga2lrb3RzdVwgOwor5p2P5p6XID4ga3lvdXJpblwgOwor5a2R5a2RID4gYm91ZnVyaVwgOwor6IGW5b6zID4gc2VpdG9rdVwgOwor5pqX57eRID4gYW5yeW9rdVwgOwor6aas5Li7ID4gYmFudXNoaVwgOwor54m56LWmID4gdG9rdXNoYVwgOwor5LiN55m6ID4gZnVoYXRzdVwgOwor5Lmd5rOJID4ga3l1dXNlblwgOwor5L2V5Lq6ID4gbmFucGl0b1wgOwor5LyP5ZyoID4gZnVrdXphaVwgOwor6IG35a6JID4gc2hva3VhblwgOwor5a6a5YmHID4gdGVpc29rdVwgOwor5paw6aaZID4gc2hpbmtvdVwgOwor5pmv6ImyID4ga2VzaGlraVwgOwor5a6a5Yi7ID4gdGVpa29rdVwgOwor5p2R5pyJID4gc29uJyd5dXVcIDsKK+adkOacqCA+IHphaW1va3VcIDsKK+acp+awlyA+IG9ib3JvZ2VcIDsKK+S4h+ebriA+IGJhbm1va3VcIDsKK+iyt+W+lyA+IGthaWRva3VcIDsKK+mcsumqqCA+IHJva290c3VcIDsKK+S7j+W6pyA+IGJ1dHN1emFcIDsKK+mjm+acrSA+IGhpc2F0c3VcIDsKK+S8neWUsSA+IGRlbnNob3VcIDsKK+Wkp+m3uiA+IGRhaXNhZ2lcIDsKK+S4iueZvSA+IGpvdWhha3VcIDsKK+irlumngSA+IHJvbmJha3VcIDsKK+miqOa1gSA+IGZ1dXJ5dXVcIDsKK+WtpuWgsSA+IGdha3Vob3VcIDsKK+iCieWjsCA+IG5pa3VzZWlcIDsKK+S7o+WwhiA+IGRhaXNob3VcIDsKK+ixiuaygyA+IGhvdXlva3VcIDsKK+aWsOmkqCA+IHNoaW5rYW5cIDsKK+S8muWVhiA+IGthaXNob3VcIDsKK+iBluW7nyA+IHNlaWJ5b3VcIDsKK+WutuS4uyA+IHlhbnVzaGlcIDsKK+S4gOedgCA+IGl0Y2hha3VcIDsKK+S4gOecvCA+IGljaGlnYW5cIDsKK+S4gOecuCA+IGljaGlib3VcIDsKK+itmOimiyA+IHNoaWtrZW5cIDsKK+afkOWbvSA+IGJvdWtva3VcIDsKK+adieadkCA+IHN1Z2l6YWlcIDsKK+S7geW/gyA+IGppbnNoaW5cIDsKK+S4gOecoCA+IGljaGltaW5cIDsKK+S7geW+syA+IGppbnRva3VcIDsKK+Wum+WFiCA+IGF0ZXNha2lcIDsKK+eQhuWxiCA+IHJpa3V0c3VcIDsKK+aWsOmiqCA+IHNoaW5wdXVcIDsKK+S4gOebtCA+IGl0Y2hva3VcIDsKK+S7iuW5tCA+IGtvbicnbmVuXCA7Civog5rkubMgPiBoYWlueXV1XCA7Civkuozml6UgPiBmdXRzdWthXCA7Civmlq3po58gPiBkYW5qaWtpXCA7Civlrozli50gPiBrYW5zaG91XCA7CivkubPmo5IgPiBueXV1Ym91XCA7CivkuZ3mrbsgPiBreXV1c2hpXCA7CivkuIvnlaUgPiBnZXJ5YWt1XCA7CivnkZ7lhYYgPiB6dWljaG91XCA7CivmlrDpoZQgPiBzaGluZ2FvXCA7CivkuIfnl4UgPiBtYW5ieW91XCA7Civog4zkv6EgPiBoYWlzaGluXCA7CivorpLoh6MgPiB6YW5zaGluXCA7CivkuLvmva4gPiBzaHVjaG91XCA7Civpn7vohJogPiBpbmt5YWt1XCA7CivkuIDnmbogPiBpcHBhdHN1XCA7CivkuIrnlLMgPiBqb3VzaGluXCA7Civnv7zmo58gPiB5b2t1dG91XCA7CivkuInnlLcgPiBzYW4nJ25hblwgOwor5p2Q5paZID4gemFpcnlvdVwgOwor5a6Y5YOaID4ga2FucnlvdVwgOwor5paH6bOlID4gYnVuY2hvdVwgOwor5Lq65b6zID4gbmludG9rdVwgOwor5Luw5aSpID4gZ3lvdXRlblwgOwor6LOK5a6zID4gem9rdWdhaVwgOwor5Lit54K5ID4gY2h1dXRlblwgOwor6aGM55uuID4gZGFpbW9rdVwgOwor5Lq65b2iID4gbmluZ3lvdVwgOwor54mb6LuKID4gZ3l1dXNoYVwgOwor6LOK5a2QID4gem9rdXNoaVwgOwor5pys5qWtID4gaG9uZ3lvdVwgOwor6ICB5p2+ID4gcm91c2hvdVwgOwor5pen6YKmID4ga3l1dWhvdVwgOwor5p6c5a6fID4ga2FqaXRzdVwgOwor5LiA55WzID4gaWNoaWpvdVwgOwor6LKn5byxID4gaGluamFrdVwgOwor54iG6aKoID4gYmFrdWZ1dVwgOwor6ICB5py9ID4gcm91a3l1dVwgOwor5pep6YCfID4gc2Fzc29rdVwgOwor5pen6YGTID4ga3l1dWRvdVwgOwor6ICB5pyoID4gcm91Ym9rdVwgOwor54m56KqNID4gdG9rdW5pblwgOwor5LiA55S3ID4gaWNoaW5hblwgOwor5pys5qOaID4gaG9uZGFuYVwgOwor5aaZ6LajID4gbXlvdXNodVwgOwor6ZyK6bOlID4gcmVpY2hvdVwgOwor54mp6LGhID4gYnVzc2hvdVwgOwor5LuP5a+6ID4gYnV0c3VqaVwgOwor5pyr5qKiID4gbWFzc2hvdVwgOwor6KuW6ZujID4gcm9uJyduYW5cIDsKK+S4iueOiSA+IGpvdWRhbWFcIDsKK+WumuS8kSA+IHRlaWt5dXVcIDsKK+irlumbhiA+IHJvbnNodXVcIDsKK+ael+WtpiA+IHJpbmdha3VcIDsKK+WtpuWVjyA+IGdha3Vtb25cIDsKK+ixquaXjyA+IGdvdXpva3VcIDsKK+iBt+WgtCA+IHNob2t1YmFcIDsKK+acrOagvCA+IGhvbmtha3VcIDsKK+WlvemBqSA+IGtvdXRla2lcIDsKK+S8muWJhyA+IGthaXNva3VcIDsKK+S4u+a1gSA+IHNodXJ5dXVcIDsKK+aXoui/sCA+IGtpanV0c3VcIDsKK+e+qeeDiCA+IGdpcmV0c3VcIDsKK+eJqeitsCA+IGJ1dHN1Z2lcIDsKK+iyuOWutiA+IGthc2hpeWFcIDsKK+acieavkiA+IHl1dWRva3VcIDsKK+aWsOmWiyA+IHNoaW5rYWlcIDsKK+S4i+eJqSA+IGthYnV0c3VcIDsKK+S7meWlsyA+IHNlbicnbnlvXCA7CivniIbpm7cgPiBiYWt1cmFpXCA7CivkvI/li6IgPiBmdXNlemVpXCA7Civnibnoo70gPiB0b2t1c2VpXCA7CivkuIrniakgPiBqb3Vtb25vXCA7Civni4LogIUgPiBreW91c2hhXCA7CivmnqDlpJYgPiB3YWt1Z2FpXCA7CivmnKzmnJ0gPiBob25jaG91XCA7Civnibnoo4UgPiB0b2t1c291XCA7CivpoJjnqbogPiByeW91a3V1XCA7CivlrablkI0gPiBnYWt1bWVpXCA7Civml6fouZ8gPiBmdXJ1YXRvXCA7CivmnKvmnJ8gPiBtYXRzdWdvXCA7CivmnKjmna8gPiBtb2t1aGFpXCA7CivorKzoq5YgPiBieXV1cm9uXCA7CivmnKjmnZAgPiBtb2t1emFpXCA7CivkuqvlubQgPiBreW91bmVuXCA7Civlrablj4sgPiBnYWt1eXV1XCA7CivnjKnnjKkgPiBzaG91am91XCA7CivkvJHliIogPiBreXV1a2FuXCA7CivmnKjmnKwgPiBtb2t1aG9uXCA7CivkuIvnhrEgPiBnZW5ldHN1XCA7CivnianoqLwgPiBidXNzaG91XCA7CivlronkvZogPiBhbicnaXRzdVwgOwor5p2l5b6pID4gcmFpZnVrdVwgOwor5pen6LehID4gZnVydWF0b1wgOwor6Zu36bOlID4gcmFpY2hvdVwgOwor5LuZ5aKDID4gc2Vua3lvdVwgOwor5Li55q+SID4gdGFuZG9rdVwgOwor5pen6La+ID4ga3l1dXNoaVwgOwor5pyo5pucID4gbW9rdXlvdVwgOwor5puy5rWmID4ga3lva3Vob1wgOwor6aGe54S8ID4gcnVpc2hvdVwgOwor6aKo5qC8ID4gZnV1a2FrdVwgOwor55CD5aC0ID4ga3l1dWpvdVwgOwor5p2+5bGLID4gbWF0c3V5YVwgOwor5a6M5LqGID4ga2FucnlvdVwgOwor6aCt55uuID4gdG91bW9rdVwgOwor5Lmd5pyIID4ga3VnYXRzdVwgOwor5LyP5YW1ID4gZnVrdWhlaVwgOwor54m56J6NID4gdG9rdXl1dVwgOwor5Lmx5pKDID4gcmFuZ2VraVwgOwor542j5qyyID4ganV1eW9rdVwgOwor5aSp6aCYID4gdGVucnlvdVwgOwor6LKo5a6iID4ga2FreWFrdVwgOwor6LGG5p2/ID4gbWFtZWl0YVwgOwor5aSp6aCCID4gdGVuY2hvdVwgOwor5pyo5pifID4gbW9rdXNlaVwgOwor5pyf5pyrID4ga2ltYXRzdVwgOwor6LO85YWlID4ga291bnl1dVwgOwor6aSF5bGLID4gbW9jaGl5YVwgOwor5auh5oqrID4gY2hha3VoaVwgOwor5pyd5p2lID4gY2hvdXJhaVwgOwor6Kys6KaLID4gYnl1dWtlblwgOwor6ZyH6aetID4gc2hpbmdhaVwgOwor5LiL54GrID4gc2hpdGFiaVwgOwor6LGG5pysID4gbWFtZWhvblwgOwor6LOe5ZOBID4gc2hvdWhpblwgOwor5a2m5Yi2ID4gZ2FrdXNlaVwgOwor5aaZ6KiIID4gbXlvdWtlaVwgOwor5LuK5aSVID4ga29uJyd5dXVcIDsKK+eMn+eKrCA+IHJ5b3VrZW5cIDsKK+S5neaYnyA+IGt5dXVzZWlcIDsKK+Wnv+e1tSA+IHN1Z2F0YWVcIDsKK+WksemZpSA+IHNoaWtrYW5cIDsKK+iBt+WToSA+IHNob2t1aW5cIDsKK+aWuemHnSA+IGhvdXNoaW5cIDsKK+WknOmjnyA+IHlhc2hva3VcIDsKK+eQg+WboyA+IGt5dXVkYW5cIDsKK+aWsOmLrSA+IHNoaW4nJ2VpXCA7CivkuK3mrrUgPiBjaHV1ZGFuXCA7CivkuKHmtIsgPiByeW91eW91XCA7CivlpJrpo58gPiB0YXNob2t1XCA7Civogpblg48gPiBzaG91em91XCA7CivmnbHlsYsgPiBhenVtYXlhXCA7CivorJvoqq0gPiBrb3Vkb2t1XCA7CivlpKnpm7IgPiBhbWFndW1vXCA7CivkuI3mvZQgPiBmdWtldHN1XCA7CivlrablhoUgPiBnYWt1bmFpXCA7CivkuK3mraMgPiBjaHV1c2VpXCA7CivkuK3mraIgPiBjaHV1c2hpXCA7CivmlofpnakgPiBidW5rYWt1XCA7CivmnZ/luK8gPiBzb2t1dGFpXCA7CivmnJ/ml6UgPiBraWppdHN1XCA7CivorJvoqZUgPiBrb3VoeW91XCA7Civpo5/lvowgPiBzaG9rdWdvXCA7CivkuI3mu4UgPiBmdW1ldHN1XCA7CivnjJvniIYgPiBtb3ViYWt1XCA7Civlrablg6cgPiBnYWt1c291XCA7CivmnJ3mlrkgPiBhc2FnYXRhXCA7CivlpJXpoqggPiB5dXVrYXplXCA7Civpn7Pnr4AgPiBvbnNldHN1XCA7CivlpKfpmbggPiB0YWlyaWt1XCA7CivkubPmiL8gPiBueXV1Ym91XCA7CivkvJHkvJogPiBreXV1a2FpXCA7Civmlofpm4YgPiBidW5zaHV1XCA7CivkuKHmsI8gPiByeW91c2hpXCA7Civku4/lm70gPiBmdWtrb2t1XCA7CivogbTlj5YgPiBjaG91c2h1XCA7CivogbfljbAgPiBzaG9rdWluXCA7Civni6znnLwgPiBkb2t1Z2FuXCA7CivmnJ3mlL8gPiBjaG91c2VpXCA7CivkuIvmua8gPiBzaGltb3l1XCA7CivpoqjmlZkgPiBmdXVreW91XCA7CivmlrDphZIgPiBzaGluc2h1XCA7CivlpJzpnLIgPiB5b3RzdXl1XCA7CivpnaLosqwgPiBtZW5zZWtpXCA7Civkurrlo7AgPiBoaXRvZ29lXCA7Civnj43lrp0gPiBjaGlucG91XCA7CivnupLotrMgPiB0ZW5zb2t1XCA7CivkuLvmoLwgPiBzaHVrYWt1XCA7CivmnZHluoQgPiBzb25zaG91XCA7CivlpoToqZUgPiBtb3VoeW91XCA7Civogbfli5kgPiBzaG9rdW11XCA7Civpo6/lsYsgPiBtZXNoaXlhXCA7CivmmIbomasgPiBrb25jaHV1XCA7Civmnb/lo4EgPiBpdGFrYWJlXCA7CivmlrDpg44gPiBzaGlucm91XCA7CivkurrlooMgPiBqaW5reW91XCA7Civnuo/otrMgPiB0ZW5zb2t1XCA7Civku7LlhqwgPiBjaHV1dG91XCA7Civkub7lvrMgPiBrZW50b2t1XCA7Civmm7jmo5ogPiBzaG9kYW5hXCA7Civlpb3oqr8gPiBrb3VjaG91XCA7CivlpJXpnYQgPiB5dXVtb3lhXCA7CivmlrDpgbggPiBzaGluc2VuXCA7CivmnaXlroUgPiByYWl0YWt1XCA7Civnva7niakgPiBva2ltb25vXCA7CivnjYTmrbsgPiBnb2t1c2hpXCA7CivmnKvmioAgPiBtYXRzdWdpXCA7CivmnK3miYAgPiBmdWRhc2hvXCA7CivlpJXpnKcgPiB5dXVnaXJpXCA7CivpoJLnmb0gPiBoYW5wYWt1XCA7Civml6foprMgPiBreXV1a2FuXCA7CivkuIrmtbcgPiBzaGFuaGFpXCA7CivmlqTph48gPiBraW5yeW91XCA7CivmlrDpgZMgPiBzaGluZG91XCA7Civku7LlhYQgPiBjaHV1a2VpXCA7Civml6LoqK0gPiBraXNldHN1XCA7Civos4rlkI0gPiB6b2t1bWVpXCA7Civmmannp4sgPiBiYW5zaHV1XCA7Civlpb3oqZUgPiBrb3VoeW91XCA7CivkuIrmtYEgPiBqb3VyeXV1XCA7CivlrIzlp78gPiBreW91c2hpXCA7CivmlrDpgKAgPiBzaGluem91XCA7CivkuZfmj5sgPiBub3Jpa2FlXCA7CivkuInmtYEgPiBzYW5yeXV1XCA7CivkuIrmtJsgPiBqb3VyYWt1XCA7Civpm4zpto8gPiBtZW5kb3JpXCA7CivmnKvmiJAgPiB1cmFuYXJpXCA7CivniYfopqogPiBrYXRhb3lhXCA7Civos6DlhJ8gPiBiYWlzaG91XCA7CivkuInmtIsgPiBzYW4nJ3lvdVwgOwor57+M5pmpID4geW9rdWJhblwgOwor5Lmd5oudID4ga3l1dWhhaVwgOwor5Luu5YWNID4ga2FyaW1lblwgOwor5Li45p2QID4gbWFydXphaVwgOwor5Lu75L6gID4gbmlua3lvdVwgOwor5Lqs5aSnID4ga3lvdWRhaVwgOwor5pen6KO9ID4ga3l1dXNlaVwgOwor5Li45pysID4gbWFydWJvblwgOwor6IKJ5L2TID4gbmlrdXRhaVwgOwor5pyI5pelID4gdHN1a2loaVwgOwor5Lih5qeYID4gcnlvdXlvdVwgOwor6ZyK6ZW3ID4gcmVpY2hvdVwgOwor5pyJ5paZID4geXV1cnlvdVwgOwor6ZuM6bOlID4gbWVuZG9yaVwgOwor5pW16ZmjID4gdGVraWppblwgOwor6aCF55uuID4ga291bW9rdVwgOwor5aSJ6Z2pID4gaGVua2FrdVwgOwor5Lmx5b+DID4gcmFuc2hpblwgOwor5LiA5rWqID4gaWNoaXJvdVwgOwor5pS+6bOlID4gaG91Y2hvdVwgOwor5ayM5aOwID4ga3lvdXNlaVwgOwor5paZ6YeRID4gcnlvdWtpblwgOwor6ICB5byxID4gcm91amFrdVwgOwor5aSV6ZeHID4geXV1eWFtaVwgOwor5pWw6Zq7ID4gc3V1c2VraVwgOwor5py95buDID4ga3l1dWhhaVwgOwor6LGh5b2iID4gc2hvdWtlaVwgOwor5paw6LuKID4gc2hpbnNoYVwgOwor5Lit5p6iID4gY2h1dXN1dVwgOwor5LqL5bGAID4gamlreW9rdVwgOwor5paH6Y6uID4gYnVuY2hpblwgOwor5Lih5qOyID4gcnlvdXNlaVwgOwor5Luu5YCfID4ga2FzaGFrdVwgOwor5Lit5p2xID4gY2h1dXRvdVwgOwor5Luj5YWlID4gZGFpbnl1dVwgOwor5LiA5rOhID4gaGl0b2F3YVwgOwor5pWZ6aSKID4ga3lvdXlvdVwgOwor6Zuo6aKoID4gYW1la2F6ZVwgOwor5LiL5q2vID4gc2hpdGFiYVwgOwor6LGq5beeID4gZ291c2h1dVwgOwor5pyA5pawID4gc2Fpc2hpblwgOwor5Luj5YSfID4gZGFpc2hvdVwgOwor6Z2p6KOFID4ga2F3YXNvdVwgOwor5LuP5Y2wID4gZnV0c3VpblwgOwor5Li75pWZID4gc2h1a3lvdVwgOwor5LiA5rG6ID4gaWtrZXRzdVwgOwor5LqL5a6fID4gamlqaXRzdVwgOwor5Lit5pu0ID4gY2h1dWtvdVwgOwor5LqI5a+fID4geW9zYXRzdVwgOwor5LiA5rGXID4gaGl0b2FzZVwgOwor6Ku46KizID4gc2hvd2FrZVwgOwor5pyd5oayID4gY2hvdWtlblwgOwor5aem562WID4ga2Fuc2FrdVwgOwor5Luy5LuVID4gbmFrYXNoaVwgOwor5pys5b+DID4gaG9uc2hpblwgOwor5Luy5LuLID4gY2h1dWthaVwgOwor5Luy5Lq6ID4gbmFrb3Vkb1wgOwor5Lqs5ZywID4ga3lvdWNoaVwgOwor5pys5b6pID4gaG9ucHVrdVwgOwor6LK35Y+OID4gYmFpc2h1dVwgOwor5pWZ6aCtID4ga3lvdXRvdVwgOwor5LiA5q+rID4gaWNoaWdvdVwgOwor5p6g5YaFID4gd2FrdW5haVwgOwor5Lit5pmvID4gY2h1dWtlaVwgOwor5LiA5q+bID4gaWNoaW1vdVwgOwor6ICz5Z6iID4gbWltaWFrYVwgOwor54mn6I2JID4gYm9rdXNvdVwgOwor5pmC56+AID4gamlzZXRzdVwgOwor6aGV5q2jID4ga2Vuc2hvdVwgOwor5p2x5Zu9ID4gdG91Z29rdVwgOwor5aSn6YePID4gdGFpcnlvdVwgOwor5pWZ6Z6tID4ga3lvdWJlblwgOwor6aSo5YaFID4ga2FuJyduYWlcIDsKK+S4reaXrCA+IGNodXVqdW5cIDsKK+eLqeeMnyA+IHNodXJ5b3VcIDsKK+abtOaWsCA+IGtvdXNoaW5cIDsKK+e4pumalCA+IGp1dWtha3VcIDsKK+S4reaWrSA+IGNodXVkYW5cIDsKK+mbkemngSA+IHphcHBha3VcIDsKK+mgk+eLgiA+IHRvbmt5b3VcIDsKK+mbqOmbsiA+IGFtYWd1bW9cIDsKK+WksemAjyA+IHNoaXR0b3VcIDsKK+S4oeabvyA+IHJ5b3VnYWVcIDsKK+mbqumaoCA+IHNldGNoaW5cIDsKK+aXp+iXqSA+IGt5dXVoYW5cIDsKK+S4reaVsCA+IGNodXVzdXVcIDsKK+acq+W6pyA+IG1hdHN1emFcIDsKK+mjtOWdiiA+IGFtZW5ib3VcIDsKK+S7o+S9nCA+IGRhaXNha3VcIDsKK+acrOW6gSA+IGhvbmNob3VcIDsKK+S4uOaQjSA+IG1hcnV6b25cIDsKK+ael+WGhSA+IHJpbicnbmFpXCA7CivmnKzlubQgPiBob24nJ25lblwgOwor6Kun6Kq/ID4ga2FpY2hvdVwgOwor5pyr5bqDID4gc3VlaGlyb1wgOwor5Lit5pSvID4gY2h1dXNoaVwgOwor5peB6Ki7ID4gYm91Y2h1dVwgOwor5Luj5LyRID4gZGFpa3l1dVwgOwor54mn6IiOID4gYm9rdXNoYVwgOwor5LuP5YW3ID4gYnV0c3VndVwgOwor5Lqh5Zu9ID4gYm91a29rdVwgOwor6K2m56ybID4ga2VpdGVraVwgOwor5pyr5bitID4gbWFzc2VraVwgOwor6Ky56IG0ID4ga2luY2hvdVwgOwor6Ku46KGMID4gc2hvZ3lvdVwgOwor546J5bqnID4gZ3lva3V6YVwgOwor6ICB5bCRID4gcm91c2hvdVwgOwor5pys5beeID4gaG9uc2h1dVwgOwor5pen6JS1ID4ga3l1dXpvdVwgOwor5LmF5oeQID4ga3l1dWthaVwgOwor6ICB5bCGID4gcm91c2hvdVwgOwor54yb5q+SID4gbW91ZG9rdVwgOwor57eY6buZID4ga2FubW9rdVwgOwor5LuL5YWlID4ga2Fpbnl1dVwgOwor5pio57SZID4gc2FrdXNoaVwgOwor5LiA5qeYID4gaWNoaXlvdVwgOwor57+S5oWjID4gc2h1dWthblwgOwor5pud5pu4ID4gYmFrdXNob1wgOwor5Lih5pa5ID4gcnlvdWhvdVwgOwor6LG55aSJID4gaHlvdWhlblwgOwor5pWR6ZujID4ga3l1dW5hblwgOwor55CD5L2TID4ga3l1dXRhaVwgOwor5Lih5patID4gcnlvdWRhblwgOwor5aWl6KGMID4gb2t1eXVraVwgOwor5pyd5bu3ID4gY2hvdXRlaVwgOwor5paH6YCaID4gYnVudHN1dVwgOwor6aOf5aGpID4gc2hva3VlblwgOwor54ax6ZuyID4gbmV0c3V1blwgOwor6Zu76YuzID4gZGVuY2h1dVwgOwor5pWZ6ZaAID4ga3lvdW1vblwgOwor6ZuR6Z+zID4gemF0c3VvblwgOwor5pa56KeSID4gaG91Z2FrdVwgOwor54ub54qsID4ga29tYWludVwgOwor54+N5ZWPID4gY2hpbm1vblwgOwor5aSx6LiqID4gc2hpc3NvdVwgOwor54mb6IiOID4gZ3l1dXNoYVwgOwor5LuZ5Lq6ID4gc2VuJyduaW5cIDsKK+mbgemmliA+IGdhbmt1YmlcIDsKK+aapuazlSA+IHJla2lob3VcIDsKK+Wkqei7uCA+IHRlbmppa3VcIDsKK+iqnumHiCA+IGdvc2hha3VcIDsKK+S6uuWJjSA+IGhpdG9tYWVcIDsKK+ePvuS7uyA+IGdlbicnbmluXCA7CivlpJzpgZMgPiB5b21pY2hpXCA7Civoq5boqr8gPiByb25jaG91XCA7CivkuZnlt6EgPiBvdHN1anVuXCA7CivlpI/ph44gPiBuYXRzdW5vXCA7Civnv5LmgKcgPiBzaHV1c2VpXCA7CivlpJbpg60gPiBnYWlrYWt1XCA7Civnj43lk4EgPiBjaGlucGluXCA7CivmnJ3luIIgPiBhc2FpY2hpXCA7CivlpYnoqq0gPiBob3Vkb2t1XCA7CivlrIzlkI0gPiBreW91bWVpXCA7CivmmLznpLwgPiBjaHV1cmVpXCA7CivniafogIUgPiBib2t1c2hhXCA7CivnjaPmhb4gPiBqdXV5b2t1XCA7CivmnKvlsL4gPiBtYXRzdWJpXCA7CivkuIvmnJ8gPiBzaGltb2tpXCA7CivlpKfouqsgPiB0YWlzaGluXCA7CivpoK3ms6ggPiB0b3VjaHV1XCA7CivmlbDph48gPiBzdXVyeW91XCA7Civnh5fphZIgPiBrYW56YWtlXCA7Civku5XkuosgPiBzaGlnb3RvXCA7CivmlrDoqIIgPiBzaGludGVpXCA7Civoq5boqZUgPiByb25weW91XCA7CivkuIrmnI0gPiB1d2FmdWt1XCA7CivmnKjlsaUgPiBwb2trdXJpXCA7CivmnKvlr7ogPiBtYXRzdWppXCA7Civoq5boqLwgPiByb25zaG91XCA7Civniannva4gPiBtb25vb2tpXCA7CivmnI3lvpMgPiBmdWt1anV1XCA7CivkuInmnIggPiBtaXRzdWtpXCA7CivmnI3lvbkgPiBmdWt1ZWtpXCA7CivkuKHmkI0gPiByeW91em9uXCA7CivniZvohIIgPiBneXV1c2hpXCA7CivniafnvoogPiBib2t1eW91XCA7CivmlofouqsgPiBidW5zaGluXCA7Civlo6vplbcgPiBzaGljaG91XCA7CivlpInph48gPiBoZW5yeW91XCA7CivkuIfmnIkgPiBiYW4nJ3l1dVwgOwor5pys5a6FID4gaG9udGFrdVwgOwor5puy5oqAID4ga3lva3VnaVwgOwor6Z2S6JuZID4gYW9nYWVydVwgOwor5pyJ5b6zID4geXV1dG9rdVwgOwor54m557SaID4gdG9ra3l1dVwgOwor54yu5pyoID4ga2VuYm9rdVwgOwor6aOb5ZywID4gdG9iaWNoaVwgOwor54yr5p2/ID4gbmVrb2l0YVwgOwor5pel6IuxID4gbmljaGllaVwgOwor5LuP5LqLID4gYnV0c3VqaVwgOwor6KuL6KyBID4gc2VpZXRzdVwgOwor5piT57WMID4gZWtpa3lvdVwgOwor6Kmp6ZuGID4gc2hpc2h1dVwgOwor6LKd5YmyID4ga2Fpd2FyaVwgOwor5LiN5pelID4gZnVqaXRzdVwgOwor5pqW5rWBID4gZGFucnl1dVwgOwor5LiA5p2hID4gaWNoaWpvdVwgOwor6Z2S6JmrID4gYW9tdXNoaVwgOwor6KuS6KejID4gcnlvdWthaVwgOwor5pS56Z2pID4ga2Fpa2FrdVwgOwor5LiK5piHID4gam91c2hvdVwgOwor5LiJ5pilID4gc2Fuc2h1blwgOwor5py95aOKID4ga3l1dWthaVwgOwor5LiA5pytID4gaXNzYXRzdVwgOwor6ICQ5ZynID4gdGFpYXRzdVwgOwor5LiA5pybID4gaWNoaWJvdVwgOwor5paw6KOFID4gc2hpbnNvdVwgOwor57ir6YedID4gbnVpYmFyaVwgOwor5LuB5L6gID4gamlua3lvdVwgOwor6aCC54K5ID4gY2hvdXRlblwgOwor5LiA5puyID4gaWtreW9rdVwgOwor5Li55b+1ID4gdGFuJyduZW5cIDsKK+mfs+eJqSA+IGlubW90c3VcIDsKK+aXpeiIniA+IG5pY2hpYnVcIDsKK+aXp+iHmCA+IGt5dXVyb3VcIDsKK+eNo+W/gyA+IGp1dXNoaW5cIDsKK+iri+iolyA+IHNlaXRha3VcIDsKK+S4ueW/gyA+IHRhbnNoaW5cIDsKK+iAgeWigyA+IHJvdWt5b3VcIDsKK+S4u+W9uSA+IHNodXlha3VcIDsKK+Wkp+izniA+IHRhaXNob3VcIDsKK+S7iuS4gCA+IGltYWljaGlcIDsKK+S4h+aWmyA+IGJhbmtva3VcIDsKK+S4ieaVmSA+IHNhbmt5b3VcIDsKK+S4gOaZqSA+IGhpdG9iYW5cIDsKK+mgmOa1tyA+IHJ5b3VrYWlcIDsKK+S4u+W8tSA+IHNodWNob3VcIDsKK+WkqeixoSA+IHRlbnNob3VcIDsKK+aZqeeGnyA+IGJhbmp1a3VcIDsKK+Wmpee1kCA+IGRha2V0c3VcIDsKK+aYpeeniyA+IGhhcnVha2lcIDsKK+iyqeS/gyA+IGhhbnNva3VcIDsKK+eJm+e8tiA+IGd5dXVrYW5cIDsKK+acgOW8tyA+IHNhaWt5b3VcIDsKK+WkiemAnyA+IGhlbnNva3VcIDsKK+WkiemAmiA+IGhlbnRzdXVcIDsKK+eLgueKrCA+IGt5b3VrZW5cIDsKK+e/jOW5tCA+IHlva3VuZW5cIDsKK+aZqeeFpyA+IGJhbnNob3VcIDsKK+ism+e/kiA+IGtvdXNodXVcIDsKK+aWh+iyrCA+IGJ1bnNla2lcIDsKK+aal+auuiA+IGFuc2F0c3VcIDsKK+aVtei7jSA+IHRla2lndW5cIDsKK+eJueetiSA+IHRva3V0b3VcIDsKK+eJh+iFlSA+IGthdGF1ZGVcIDsKK+Wlh+ihkyA+IGtpanV0c3VcIDsKK+S4gOaXrCA+IGljaGlqdW5cIDsKK+S5nuWpvyA+IGtvaW11a29cIDsKK+mguOakjiA+IGtlaXRzdWlcIDsKK+iyrOS7uyA+IHNla2luaW5cIDsKK+mhlOaWmSA+IGdhbnJ5b3VcIDsKK+iqlei+sCA+IHRhbnNoaW5cIDsKK+aWnOinkiA+IHNoYWtha3VcIDsKK+acq+WlsyA+IG1hdHN1am9cIDsKK+mhleaVmSA+IGtlbmt5b3VcIDsKK+S4reaApyA+IGNodXVzZWlcIDsKK+acseWiqCA+IHNodWJva3VcIDsKK+S4geaVsCA+IGNob3VzdXVcIDsKK+S4gOaWhyA+IGljaGltb25cIDsKK+aXl+iJsiA+IGhhdGFpcm9cIDsKK+aal+asnSA+IGFuJyd1dHN1XCA7CivlpbPoibIgPiBqb3Nob2t1XCA7Civml6fogZ4gPiBreXV1YnVuXCA7CivniYfogrogPiBrYXRhaGFpXCA7CivkuLvluK0gPiBzaHVzZWtpXCA7CivmlK/pmpwgPiBzaGlzaG91XCA7CivmnLHloZcgPiBzaHVudXJpXCA7Civku4DkuIAgPiBqdXVpY2hpXCA7CivpoJjmsLQgPiByeW91c3VpXCA7CivpnaLoiLUgPiBvbW9rYWppXCA7CivpoJjmsJEgPiByeW91bWluXCA7CivkuLjluK8gPiBtYXJ1b2JpXCA7Civnt4/pq5ggPiBzb3VkYWthXCA7CivorIDoh6MgPiBib3VzaGluXCA7Civlo7Dph48gPiBzZWlyeW91XCA7CivmnKflpJwgPiBvYm9yb3lvXCA7CivlpInouqsgPiBoZW5zaGluXCA7Civlo4HpnaIgPiBoZWtpbWVuXCA7Civnv7DloqggPiBrYW5ib2t1XCA7CivkuZnlp6sgPiBvdG9oaW1lXCA7CivnjoTlppkgPiBnZW5teW91XCA7CivnvrjlvLEgPiBydWlqYWt1XCA7CivlpKnoqoUgPiB0ZW5jaHV1XCA7CivkuZ3lpKkgPiBreXV1dGVuXCA7CivkuZ3lpKcgPiBreXV1ZGFpXCA7CivkuInmjK8gPiBzYW5zaGluXCA7CivkuozljYEgPiBoYXRhY2hpXCA7CivkuI3mipwgPiBmdWJhdHN1XCA7CivkuK3lurggPiBjaHV1eW91XCA7CivpoZXmj5ogPiBrZW4nJ3lvdVwgOwor5aSn6KmwID4gb29kenVtZVwgOwor5Lih5oCnID4gcnlvdXNlaVwgOwor6Kq/6KO9ID4gY2hvdXNlaVwgOwor6LGq5ZWGID4gZ291c2hvdVwgOwor5paH6Kq/ID4gYnVuY2hvdVwgOwor5aSn6KmUID4gdGFpc2hvdVwgOwor5puy5bqmID4ga3lva3Vkb1wgOwor5Lit5bm0ID4gY2h1dW5lblwgOwor57eo6ZuGID4gaGVuc2h1dVwgOwor5LiA5o+hID4gaWNoaWFrdVwgOwor5puy5bqHID4ga3lva3VoaVwgOwor5amJ5puyID4gZW5reW9rdVwgOwor6Kqs6KutID4gc2V0c3V5dVwgOwor54uC54C+ID4ga3lvdXJhblwgOwor5Lqk5L+hID4ga291c2hpblwgOwor5Lit5bi9ID4gY2h1dWJvdVwgOwor5pil55ygID4gc2h1bm1pblwgOwor6aCs5qGBID4gaG9vZ2V0YVwgOwor5Lit5be7ID4gY2h1dWthblwgOwor54mn56ulID4gYm9rdWRvdVwgOwor5p2x5LqsID4gdG91a3lvdVwgOwor5pys5Zu9ID4gaG9uZ29rdVwgOwor6Kqs6KmxID4gc2V0c3V3YVwgOwor6aOf5Yi4ID4gc2hva2tlblwgOwor5Li75bCGID4gc2h1c2hvdVwgOwor5p2l5L+hID4gcmFpc2hpblwgOwor5pyA5bCRID4gc2Fpc2hvdVwgOwor5pyA5bCPID4gc2Fpc2hvdVwgOwor5Li75a+pID4gc2h1c2hpblwgOwor5LqM5YiXID4gbmlyZXRzdVwgOwor5LiA5ousID4gaWtrYXRzdVwgOwor6Z2e6IG3ID4gaGlzaG9rdVwgOwor5pS56YuzID4ga2FpY2h1dVwgOwor54yb5pKDID4gbW91Z2VraVwgOwor5pWP6YCfID4gYmluc29rdVwgOwor6aCs5p2WID4gaG9vZHp1ZVwgOwor5paw6JGXID4gc2hpbmNob1wgOwor54+N5LuAID4gY2hpbmp1dVwgOwor576e5oGlID4gc2h1dWNoaVwgOwor5Lmd5ZywID4ga3l1dWNoaVwgOwor5piO56K6ID4gbWVpa2FrdVwgOwor57eP6aGNID4gc291Z2FrdVwgOwor5LqM5YWrID4gbmloYWNoaVwgOwor6Kur6IejID4ga2Fuc2hpblwgOwor6Z2Z6IG0ID4gc2VpY2hvdVwgOwor5pmv5rOBID4ga2Vpa3lvdVwgOwor57eP6aCYID4gc291cnlvdVwgOwor5pel57WmID4gbmlra3l1dVwgOwor5aSn6KGGID4gdGFpc2h1dVwgOwor5pyx5ZSHID4gc2h1c2hpblwgOwor6ZuG6YeRID4gc2h1dWtpblwgOwor6Zuo6LazID4gYW1lYXNoaVwgOwor5pW06Kq/ID4gc2VpY2hvdVwgOwor5pW36KitID4gZnVzZXRzdVwgOwor5pqm5pWwID4gcmVraXN1dVwgOwor5paw6Iy2ID4gc2hpbmNoYVwgOwor6aKo5ZynID4gZnV1YXRzdVwgOwor57eP6Z2pID4gc291Z2F3YVwgOwor5Lit5bCKID4gY2h1dXpvblwgOwor5aSW6KeSID4gZ2Fpa2FrdVwgOwor5Lit5bCGID4gY2h1dWpvdVwgOwor5piO556tID4gbWVpcnlvdVwgOwor57i36KqsID4gcnVzZXRzdVwgOwor6ZuG6YWNID4gc2h1dWhhaVwgOwor5pyI5aSuID4gZ2V0c3VvdVwgOwor5Lit5a6uID4gY2h1dWd1dVwgOwor57a/6aO0ID4gd2F0YWFtZVwgOwor5pyI5aScID4gdHN1a2l5b1wgOwor54mI57GNID4gaGFuc2VraVwgOwor5aSJ6Kq/ID4gaGVuY2hvdVwgOwor5LiJ5b6zID4gc2FudG9rdVwgOwor6Zmw6ayxID4gaW4nJ3V0c3VcIDsKK+e3kemZsCA+IHJ5b2t1aW5cIDsKK+aVteimliA+IHRla2lzaGlcIDsKK+ism+eptiA+IGtvdWt5dXVcIDsKK+aUvumAuCA+IGhvdWl0c3VcIDsKK+S4iuW9uSA+IHV3YXlha3VcIDsKK+Wil+mhjSA+IHpvdWdha3VcIDsKK+S4gOaBryA+IGhpdG9pa2lcIDsKK+aWsOiIiCA+IHNoaW5rb3VcIDsKK+S5s+WJpCA+IG55dXV6YWlcIDsKK+aYjueZvSA+IG1laWhha3VcIDsKK+aUuemAsiA+IGthaXNoaW5cIDsKK+S4i+W6pyA+IHNoaW1vemFcIDsKK+ismeensCA+IGtlbnNob3VcIDsKK+mgmOaciSA+IHJ5b3V5dXVcIDsKK+S4gOW/tSA+IGljaGluZW5cIDsKK+S4h+W8lSA+IG1hbmJpa2lcIDsKK+iAleS9nCA+IGtvdXNha3VcIDsKK+eJueeUoyA+IHRva3VzYW5cIDsKK+mhleW9sCA+IGtlbnNob3VcIDsKK+acqOWPoyA+IGtpZ3VjaGlcIDsKK+S4gOW+uSA+IGl0dGV0c3VcIDsKK+mhlOW9uSA+IGthb3lha3VcIDsKK+e/u+WIuyA+IGhvbmtva3VcIDsKK+mjn+S6iyA+IHNob2t1amlcIDsKK+e3j+mVtyA+IHNvdWNob3VcIDsKK+S4ieW5tCA+IHNhbicnbmVuXCA7Civml6Xnq4sgPiBoaXRhY2hpXCA7CivmlZHosqcgPiBreXV1aGluXCA7Civmlq3ohbggPiBkYW5jaG91XCA7CivkuIrluK0gPiBqb3VzZWtpXCA7Civoqo3oqLwgPiBuaW5zaG91XCA7CivmnY/ku4EgPiBreW91bmluXCA7CivkuIflubQgPiBtYW4nJ25lblwgOwor54mp55qEID4gYnV0dGVraVwgOwor5pen56i/ID4ga3l1dWtvdVwgOwor6Zm46aKoID4gcmlrdWZ1dVwgOwor5LiA5byPID4gaXNzaGlraVwgOwor5pyX5ZSxID4gcm91c2hvdVwgOwor54uC5q27ID4ga3lvdXNoaVwgOwor6ICB5YOVID4gcm91Ym9rdVwgOwor576k5bCPID4gZ3Vuc2hvdVwgOwor54q25rOBID4gam91a3lvdVwgOwor5paw6IGeID4gc2hpbmJ1blwgOwor5Lit5aStID4gY2h1dXlvdVwgOwor5pys5YmHID4gaG9uc29rdVwgOwor5Lit5aSpID4gY2h1dXRlblwgOwor57ax6aCYID4ga291cnlvdVwgOwor5Lit5aSWID4gY2h1dWdhaVwgOwor5pWZ6KqoID4ga3lvdWthaVwgOwor5aW0562JID4geWF0c3VyYVwgOwor54us5patID4gZG9rdWRhblwgOwor6Kmw6LKsID4ga2lzc2VraVwgOwor6ICQ5LmFID4gdGFpa3l1dVwgOwor6ZqK6ZW3ID4gdGFpY2hvdVwgOwor6Zuj6KqtID4gbmFuZG9rdVwgOwor6aGn5a6iID4ga29reWFrdVwgOwor54us5paHID4gZG9rdWJ1blwgOwor5LiA5biWID4gaWNoaWpvdVwgOwor5peX56u/ID4gaGF0YXphb1wgOwor6ZyK6JasID4gcmVpeWFrdVwgOwor5LiA5behID4gaWNoaWp1blwgOwor54S86aaZID4gc2hvdWtvdVwgOwor5pWZ6KiTID4ga3lvdWt1blwgOwor5LiN5bGIID4gZnVrdXRzdVwgOwor5pyo5YiAID4gYm9rdXRvdVwgOwor57aa6aiwID4gem9rdXRvdVwgOwor5paw576FID4gc2hpcmFnaVwgOwor5aOw6Kq/ID4gc2VpY2hvdVwgOwor5aKX6ZW3ID4gem91Y2hvdVwgOwor5pqB5pifID4gZ3lvdXNlaVwgOwor6Zm66ZujID4ga2VuJyduYW5cIDsKK+S4iuWxpSA+IHV3YWJha2lcIDsKK+acrOWFgyA+IGhvbm1vdG9cIDsKK+S4reWghSA+IGNodXVrZW5cIDsKK+S4reWggiA+IGNodXVkb3VcIDsKK+Wkj+ialSA+IG5hdHN1Z29cIDsKK+S4ieWwuiA+IHNhbmpha3VcIDsKK+WkqeiNiSA+IHRlbmd1c2FcIDsKK+aciOWVhiA+IGdlc3Nob3VcIDsKK+e3mumHjyA+IHNlbnJ5b3VcIDsKK+S4jeWunyA+IGZ1aml0c3VcIDsKK+mdouepjSA+IG1lbnNla2lcIDsKK+S4i+WuvyA+IGdlc2h1a3VcIDsKK+itsOaxuiA+IGdpa2V0c3VcIDsKK+S5seS9nCA+IHJhbnNha3VcIDsKK+S4i+WutiA+IHNoaXRheWFcIDsKK+S4iuWuvyA+IGpvdXlhZG9cIDsKK+ixiuWHtiA+IGhvdWt5b3VcIDsKK+eMn+W4qyA+IHJ5b3VzaGlcIDsKK+aXp+efpSA+IGt5dXVjaGlcIDsKK+eJm+eXmCA+IGd5dXV0b3VcIDsKK+ips+irliA+IHNob3Vyb25cIDsKK+eJqeeQhiA+IGJ1dHN1cmlcIDsKK+abtOWcsCA+IHNhcmFjaGlcIDsKK+eJm+eWqyA+IGd5dXVla2lcIDsKK+acqOWDjyA+IG1va3V6b3VcIDsKK+acneWIiiA+IGNob3VrYW5cIDsKK+acneWHqiA+IGFzYW5hZ2lcIDsKK+S4u+WUsSA+IHNodXNob3VcIDsKK+e3qOi8ryA+IGhlbnNodXVcIDsKK+S4gOWxgCA+IGlra3lva3VcIDsKK+S4gOWwuiA+IGlzc2hha3VcIDsKK+eLrOaOoiA+IGRva3V0YW5cIDsKK+e3kemHjiA+IHJ5b2t1eWFcIDsKK+S4g+WunSA+IHNoaXBwb3VcIDsKK+ips+iogCA+IHNob3VnZW5cIDsKK+e3j+mHjyA+IHNvdXJ5b3VcIDsKK+aXp+ebpCA+IGt5dXViYW5cIDsKK+ips+inoyA+IHNob3VrYWlcIDsKK+Wlkee0hCA+IGtlaXlha3VcIDsKK+mbo+ihjCA+IG5hbmd5b3VcIDsKK+aciOWPjiA+IGdlc3NodXVcIDsKK+mbkeipsSA+IHphdHN1d2FcIDsKK+aXp+ebhiA+IGt5dXVib25cIDsKK+S4gOWuvyA+IGlzc2h1a3VcIDsKK+S5seS4gSA+IHJhbmNob3VcIDsKK+eEoemqqCA+IGJ1a290c3VcIDsKK+WjsuihjCA+IHVyZXl1a2lcIDsKK+mggeaVsCA+IHDEk2ppc3V1XCA7Civmlq3ntpogPiBkYW56b2t1XCA7Civpn7Pmm7IgPiBvbmd5b2t1XCA7CivkuIDlrZggPiBpY2hpem9uXCA7CivlpJXoj4UgPiB5dXVzdWdlXCA7Civmlr3nrZYgPiBzaGlzYWt1XCA7Civml6Xnmb0gPiBuaXBwYWt1XCA7CivlpKfohbggPiBkYWljaG91XCA7CivniaLnjYQgPiByb3Vnb2t1XCA7CivniqzmqYcgPiBpbnV6b3JpXCA7CivkuI7lpaogPiB5b2RhdHN1XCA7CivmnKzkurogPiBob24nJ25pblwgOwor6Zmk6ZuqID4gam9zZXRzdVwgOwor54af6KuHID4ganVrdWRhblwgOwor5aSx6ICDID4gc2hpa2tvdVwgOwor54mh54yrID4gb3N1bmVrb1wgOwor5pmp5pilID4gYmFuc2h1blwgOwor5aSc6ImyID4geWFzaG9rdVwgOwor54us5oi/ID4gZG9rdWJvdVwgOwor5pmv5pWZID4ga2Vpa3lvdVwgOwor5Lit5ZWTID4gY2h1dWtlaVwgOwor5paw57GzID4gc2hpbm1haVwgOwor5pa5562WID4gaG91c2FrdVwgOwor54qs5qeZID4gaW51bWFraVwgOwor5pyo5LuPID4ga2lidXRzdVwgOwor5pep55WqID4gaGF5YWJhblwgOwor5aSa6ImyID4gdGFzaG9rdVwgOwor5pqm5bm0ID4gcmVraW5lblwgOwor5pys5Li4ID4gaG9ubWFydVwgOwor5pmp5pa5ID4gYmFuZ2F0YVwgOwor5aSp6IG0ID4gdGVuY2hvdVwgOwor57mt57SsID4ga2VuY2h1dVwgOwor54yf5a6YID4gcnlvdWthblwgOwor6Z2S56WoID4gc2VpaHlvdVwgOwor6LGK5L2cID4gaG91c2FrdVwgOwor54yb5bCGID4gbW91c2hvdVwgOwor6aKo5L+XID4gZnV1em9rdVwgOwor54uC5pq0ID4ga3lvdWJvdVwgOwor5LiK5aOwID4gam91c2hvdVwgOwor5LiI5aSrID4gbWFzdXJhb1wgOwor5pyI5YipID4gZ2V0c3VyaVwgOwor5pS56KizID4ga2FpeWFrdVwgOwor5aKX6YePID4gem91cnlvdVwgOwor6Zu26JC9ID4gcmVpcmFrdVwgOwor5Li45Y2BID4gbWFydWp1dVwgOwor6ZuG6KiIID4gc2h1dWtlaVwgOwor6Kmx6KGTID4gd2FqdXRzdVwgOwor54md54qsID4gbWVzdWludVwgOwor54af6KanID4ganVrdXJhblwgOwor54af6KaWID4ganVrdXNoaVwgOwor6Z2i55uuID4gbWVubW9rdVwgOwor54WO6Y2LID4gaXJpbmFiZVwgOwor546E5Lq6ID4ga3Vyb3V0b1wgOwor5pat566xID4gZGFuYmFrb1wgOwor5pyd5LyaID4gY2hvdWthaVwgOwor5aGr6ZqZID4gdGVuZ2VraVwgOwor5LiK5aGXID4gdXdhbnVyaVwgOwor5LiA5aaCID4gaWNoaW55b1wgOwor5LiN5Z+SID4gZnVyYWNoaVwgOwor57eK6L+rID4ga2lucGFrdVwgOwor5LiH5aKDID4gYmFua3lvdVwgOwor6KuW562WID4gcm9uc2FrdVwgOwor6Kiz6LyJID4geWFrdXNhaVwgOwor5pyJ5YSfID4geXV1c2hvdVwgOwor5piO5r6EID4gbWVpY2hvdVwgOwor5LiA5aSnID4gaWNoaWRhaVwgOwor6KmV6KuWID4gaHlvdXJvblwgOwor6Kq/57e0ID4gY2hvdXJlblwgOwor5Lit5Y6fID4gY2h1dWdlblwgOwor6Kqk6ISxID4gZ29kYXRzdVwgOwor54uC5paHID4ga3lvdWJ1blwgOwor6Kqt6ICFID4gZG9rdXNoYVwgOwor5aOy6JasID4gYmFpeWFrdVwgOwor6LGG5LmzID4gdG91bnl1dVwgOwor5LiA5aOwID4gaGl0b2tvZVwgOwor6ZyK6IKJID4gcmVpbmlrdVwgOwor5Lit5Y2KID4gY2h1dWhhblwgOwor5paZ57SZID4gcnlvdXNoaVwgOwor5pW06IW4ID4gc2VpY2hvdVwgOwor5LiL5ZywID4gc2hpdGFqaVwgOwor5paw56iuID4gc2hpbnNodVwgOwor5aKX6YCyID4gem91c2hpblwgOwor6Z2i55aUID4gbWVuY2hvdVwgOwor6aCC5oi0ID4gY2hvdWRhaVwgOwor6KuW56m2ID4gcm9ua3l1dVwgOwor5paw56iOID4gc2hpbnplaVwgOwor6ZmN6Zu5ID4ga291aHlvdVwgOwor6Z2Z55qEID4gc2VpdGVraVwgOwor6KmV6KiAID4gaHlvdWdlblwgOwor5LiL5ZuzID4gc2hpdGF6dVwgOwor5LiA5aGBID4gaWNoaXJ1aVwgOwor5pS56KGMID4ga2FpZ3lvdVwgOwor5LiA5aC0ID4gaWNoaWpvdVwgOwor5Li45YWsID4gbWFydWtvdVwgOwor6Kqe6ISIID4gZ29teWFrdVwgOwor5aW955CDID4ga291a3l1dVwgOwor5LiJ5Zu9ID4gc2FuZ29rdVwgOwor5Lih5ZCNID4gcnlvdW1laVwgOwor6ZqP6LqrID4genVpc2hpblwgOwor5LiA5aCCID4gaWNoaWRvdVwgOwor5LiH5Zu9ID4gYmFua29rdVwgOwor54Sh6ZuRID4gbXV6YXRzdVwgOwor5Lit5YmNID4gY2h1dXplblwgOwor6Kaq6bieID4gc2hpbnJhblwgOwor5paZ57ChID4gcnlvdWtlblwgOwor6Zu76ISzID4gZGVuJydub3VcIDsKK+S4reWIpCA+IGNodXViYW5cIDsKK+S4reWIhiA+IGNodXVidW5cIDsKK+e1tumggiA+IHpldGNob3VcIDsKK+mgkeW8tyA+IGdhbmt5b3VcIDsKK+aXp+eJiCA+IGt5dXViYW5cIDsKK+e5i+e4myA+IGtlaWJha3VcIDsKK+aXj+eUnyA+IHpva3VzZWlcIDsKK+irh+eskSA+IGRhbnNob3VcIDsKK+WkquezuCA+IGZ1dG9pdG9cIDsKK+Wni+alrSA+IHNoaWd5b3VcIDsKK+S4gOWboyA+IGljaGlkYW5cIDsKK+iomOi/sCA+IGtpanV0c3VcIDsKK+aXqeeGnyA+IHNvdWp1a3VcIDsKK+iqh+iJsiA+IGtvc2hva3VcIDsKK+iol+mAgSA+IHRha3Vzb3VcIDsKK+ioiOmHjyA+IGtlaXJ5b3VcIDsKK+e1semgmCA+IHRvdXJ5b3VcIDsKK+mbjOiYgiA+IG1lc2hpYmVcIDsKK+S4reWFgyA+IGNodXVnZW5cIDsKK+mghuW/nCA+IGp1bicnbm91XCA7CivpmbjpgIEgPiByaWt1c291XCA7CivmnIjkuosgPiBnZXRzdWppXCA7Civopqrps6UgPiBveWFkb3JpXCA7CivntabppIogPiBreXV1eW91XCA7CivnibnmrrUgPiB0b2t1ZGFuXCA7CivkuKHliY0gPiByeW91bWFlXCA7CivlpKfnspIgPiBvb3RzdWJ1XCA7CivkuInllLEgPiBzYW5zaG91XCA7CivkuIrllIcgPiBqb3VzaGluXCA7CivoqJPov6ogPiBrdW50ZWtpXCA7CivnibnmroogPiB0b2t1c2h1XCA7CivoqqzntYwgPiBzZWtreW91XCA7CivlooPpgYcgPiBreW91Z3V1XCA7Civml6XnhacgPiBuaXNzaG91XCA7CivmlZHojZIgPiBreXV1a291XCA7CivoqabolqwgPiBzaGl5YWt1XCA7CivoqZDooZMgPiBzYWp1dHN1XCA7CivkuKHliIYgPiByeW91YnVuXCA7Civpm4zolYogPiBtZXNoaWJlXCA7CivkuKHliIAgPiByeW91dG91XCA7CivmkqXpn7MgPiBoYXRzdW9uXCA7Civmm7jkv6EgPiBzaG9zaGluXCA7CivmmYLml6UgPiBqaWppdHN1XCA7CivkuIDllp0gPiBpa2thdHN1XCA7CivkuI3lkIkgPiBmdWtpdHN1XCA7Civnt6nooZ0gPiBrYW5zaG91XCA7CivkuIrlkYogPiBqb3Vrb2t1XCA7CivkuKHlhaggPiByeW91emVuXCA7Civpmbjou40gPiByaWt1Z3VuXCA7CivkuKHlhZogPiByeW91dG91XCA7CivkuIDllY8gPiBpY2hpbW9uXCA7CivoqLzoqIAgPiBzaG91Z2VuXCA7CivmmIfmsZ4gPiBzaG91a291XCA7Civpm6johJogPiBhbWVhc2hpXCA7CivmlrDnm6QgPiBzaGluYmFuXCA7CivoqLvop6MgPiBjaHV1a2FpXCA7Civpn7vlvosgPiBpbnJpdHN1XCA7CivmmrTlnKcgPiBib3VhdHN1XCA7CivlpKnnq7ogPiB0ZW5qaWt1XCA7CivoqLHoq74gPiBreW9kYWt1XCA7CivniIbnoJUgPiBiYWt1c2FpXCA7CivkuKHlg48gPiByeW91em91XCA7Civni4LmhYsgPiBreW91dGFpXCA7CivlpKfnrJEgPiB0YWlzaG91XCA7Civlqb/lhaUgPiBtdWtvaXJpXCA7CivoqLPoqakgPiB5YWt1c2hpXCA7CivmmIfmrr8gPiBzaG91ZGVuXCA7Civpm6LohLEgPiByaWRhdHN1XCA7CivoqLPoqZ4gPiB5YWt1c2hpXCA7CivmmIfmrrUgPiBzaG91ZGFuXCA7CivniafmsJEgPiBib2t1bWluXCA7CivlpKnnqpMgPiB0ZW5tYWRvXCA7CivkuIDlkb0gPiBpY2hpbWVpXCA7CivmlZnogrIgPiBreW91aWt1XCA7CivkuIDlkbMgPiBoaXRvYWppXCA7CivlpLHnpoEgPiBzaGlra2luXCA7Civnt4/oqZUgPiBzb3VoeW91XCA7Civlppnms5UgPiBteW91aG91XCA7Civntabpm7sgPiBreXV1ZGVuXCA7CivkuK3ku5UgPiBuYWthc2hpXCA7CivopqrpqqggPiBveWFib25lXCA7Civmlofnq6AgPiBidW5zaG91XCA7Civmm7jkuK0gPiBzaG9jaHV1XCA7CivkuIfljZogPiBiYW5wYWt1XCA7CivkuIDlkI0gPiBpY2hpbWVpXCA7CivkuIDlkIwgPiBpY2hpZG91XCA7Civpn7PlvosgPiBvbnJpdHN1XCA7CivkuIvliqMgPiBnZXJldHN1XCA7Civpm6PogbQgPiBuYW5jaG91XCA7CivkuIDlj7cgPiBpY2hpZ291XCA7CivkuIDlj7AgPiBpY2hpZGFpXCA7Civpm6LogbcgPiByaXNob2t1XCA7CivkuInliqkgPiBzYW5zdWtlXCA7CivkuKHkvr8gPiByeW91YmVuXCA7CivmmKXmnKwgPiBzaHVucG9uXCA7CivkuIPljYEgPiBuYW5hanV1XCA7CivkuK3kuJYgPiBjaHV1c2VpXCA7Civopr/pnaIgPiB0ZWtpbWVuXCA7CivlpKnnpo8gPiB0ZW5wdWt1XCA7CivmlrDnlLAgPiBzaGluZGVuXCA7CivkuIflipsgPiBtYW5yaWtpXCA7CivmlrDnlJ8gPiBzaGluc2VpXCA7CivkuIrliLsgPiBqb3Vrb2t1XCA7CivkuIHljYogPiBjaG91aGFuXCA7CivlpKfnpo8gPiBkYWlmdWt1XCA7CivpoZjlipsgPiBnYW5yaWtpXCA7CivlpKnnpZAgPiB0ZW4nJ3l1dVwgOwor5pio5pmpID4gc2FrdWJhblwgOwor5pmp5bm0ID4gYmFuJyduZW5cIDsKK+eFp+impyA+IHNob3VyYW5cIDsKK+aYpeaaliA+IHNodW5kYW5cIDsKK+e3iuimgSA+IGtpbicneW91XCA7CivkuIDli7ogPiBpc3NoYWt1XCA7CivoqpPntIQgPiBzZWl5YWt1XCA7CivmmbrlsIYgPiBjaGlzaG91XCA7Civlpqjmpa0gPiBib3VneW91XCA7CivoqanoiIggPiBzaGlreW91XCA7CivkuKHkurogPiByeW91bmluXCA7CivoprPpn7MgPiBrYW4nJ25vblwgOwor5pmC5oqYID4gdG9raW9yaVwgOwor54m95p2fID4ga2Vuc29rdVwgOwor5pKw6YyyID4gc2Vucm9rdVwgOwor5pS56ImvID4ga2FpcnlvdVwgOwor5pa954mpID4gc2Vtb3RzdVwgOwor5aWu5r+AID4gZnVuZ2VraVwgOwor5Lih5LiJID4gcnlvdXNhblwgOwor6Zu7566XID4gZGVuc29yb1wgOwor6Kaq6aGeID4gc2hpbnJ1aVwgOwor54us5aWPID4gZG9rdXNvdVwgOwor57WQ6ZyyID4ga2V0c3Vyb1wgOwor5pen5rOVID4ga3l1dWhvdVwgOwor5pWZ57e0ID4ga3lvdXJlblwgOwor54m55pyJID4gdG9rdXl1dVwgOwor5LiK5YG0ID4gdXdhZ2F3YVwgOwor5pm25a2QID4gc2hvdXNoaVwgOwor57im57O4ID4gdGF0ZWl0b1wgOwor5LiA5YaKID4gaXNzYXRzdVwgOwor5aem5oKqID4ga2FuJydha3VcIDsKK+inkumMkCA+IGtha3VzdWlcIDsKK+e1kOmbhiA+IGtlc3NodXVcIDsKK+S4i+WApCA+IHNoaXRhbmVcIDsKK+Wls+a5ryA+IG9uJyduYXl1XCA7CivkuIDlhYMgPiBpY2hpZ2VuXCA7CivnvoXliJcgPiByYXJldHN1XCA7Civmmpblm70gPiBkYW5rb2t1XCA7CivniL3mtrwgPiBzb3VyeW91XCA7CivlpKnnnJ8gPiB0ZW5zaGluXCA7CivpmbPorJ0gPiBjaGluc2hhXCA7CivmlpHnmb0gPiBoYW5wYWt1XCA7CivkuIDlhIQgPiBpY2hpb2t1XCA7CivoqJPoqq0gPiBrdW5kb2t1XCA7CivkuJjkuIogPiBreXV1am91XCA7CivniJvnhp8gPiByYW5qdWt1XCA7Civlpb3ms4EgPiBrb3VreW91XCA7Civml6LmsbogPiBraWtldHN1XCA7CivoqabogbQgPiBzaGljaG91XCA7CivmmI7mnJ0gPiBtaW5jaG91XCA7CivoqJfoqIAgPiB0YWt1Z2VuXCA7CivpoJjln58gPiByeW91aWtpXCA7CivmmoHlpKkgPiBneW91dGVuXCA7CivoqIDosqwgPiBnZW5zZWtpXCA7CivmlrDniYggPiBzaGlucGFuXCA7Civopqrpm7sgPiBzaGluZGVuXCA7CivlpKrnmb0gPiB0YWloYWt1XCA7Civnibnml6ggPiB0b2t1c2hpXCA7CivkuIrkvZwgPiBqb3VzYWt1XCA7CivlpKnnmocgPiB0ZW4nJ25vdVwgOwor5LiK5Ly4ID4gam91c2hpblwgOwor5pWw56eSID4gc3V1YnlvdVwgOwor5pWj562WID4gc2Fuc2FrdVwgOwor5paH55u4ID4gYnVuc2hvdVwgOwor5aOy57SEID4gYmFpeWFrdVwgOwor5LiJ5Ly4ID4gc2Fuc2hpblwgOwor5pen5q2TID4ga3l1dWthblwgOwor5aSn55m9ID4gdGFpaGFrdVwgOwor5LiH5L2cID4gbWFuc2FrdVwgOwor5piO5pmwID4gbWVpc2VraVwgOwor5pmp5a2mID4gYmFuZ2FrdVwgOwor6aCY5ZywID4gcnlvdWNoaVwgOwor54Sm6LqBID4gc2hvdXNvdVwgOwor5piO5pmpID4gbXlvdWJhblwgOwor5LiA5YCNID4gaWNoaWJhaVwgOwor5pWs56ewID4ga2Vpc2hvdVwgOwor57WC6Zu7ID4gc2h1dWRlblwgOwor5LiK5Lq6ID4gc2hvdW5pblwgOwor5pel5qynID4gbmljaGlvdVwgOwor5LiK5LqsID4gam91a3lvdVwgOwor5piO5pifID4gbXlvdWpvdVwgOwor5LiJ5Lq6ID4gc2FuJyduaW5cIDsKK+e4puesmyA+IHRhdGVidWVcIDsKK+mbhue+pCA+IHNodXVndW5cIDsKK+S4h+S6uiA+IG1hbicnbmluXCA7CivmlZnnr4QgPiBreW91aGFuXCA7CivkuIDkvosgPiBpY2hpcmVpXCA7CivlpKfnl4UgPiB0YWlieW91XCA7CivmlaznpZ4gPiBrZWlzaGluXCA7CivnibnmkrAgPiB0b2t1c2VuXCA7Civoqr/nkLQgPiBjaG91a2luXCA7CivpoK3lj5YgPiB0b3Vkb3JpXCA7CivpoIblooMgPiBqdW5reW91XCA7Civpm6jnrKAgPiBhbWFnYXNhXCA7Civntabph5EgPiBreXV1a2luXCA7CivoqbPntLAgPiBzaG91c2FpXCA7CivnuKbnqbQgPiB0YXRlYW5hXCA7CivkuIDku7sgPiBpY2hpbmluXCA7CivlpKfnlLcgPiBvb290b2tvXCA7CivkuIDku6MgPiBpY2hpZGFpXCA7CivnvbDliYcgPiBiYXNzb2t1XCA7CivpnIfnm6ogPiBzaGludG91XCA7CivpnIrnmoQgPiByZWl0ZWtpXCA7CivpnZnms6ggPiBqb3VjaHV1XCA7CivlpJbnm7ggPiBnYWlzaG91XCA7CivlpJrnmbogPiB0YWhhdHN1XCA7Civpm6jnqbogPiBhbWF6b3JhXCA7CivnhLboq74gPiB6ZW5kYWt1XCA7Civoqa7ntKIgPiBzZW5zYWt1XCA7CivnuYvnlZkgPiBrZWlyeXV1XCA7CivmlaPnpaggPiBzYW5weW91XCA7Civnt7Tnv5IgPiByZW5zaHV1XCA7CivoqZXogIUgPiBoeW91c2hhXCA7Civnhp/nt7QgPiBqdWt1cmVuXCA7CivkuIDkuLggPiBpY2hpZ2FuXCA7CivlpJbnmoQgPiBnYWl0ZWtpXCA7Civni6zlloQgPiBkb2t1emVuXCA7CivlpI/nnYAgPiBuYXRzdWdpXCA7CivoqanntYwgPiBzaGlreW91XCA7CivnibnmjZwgPiB0b2t1c291XCA7CivlpKnnkIMgPiB0ZW5reXV1XCA7Civml6fmo7IgPiBreXV1c2VpXCA7CivlprvmiLggPiB0c3VtYWRvXCA7CivmlZnnqIsgPiBreW91dGVpXCA7CivmlpHnjKsgPiBoYW5teW91XCA7CivmmYvlsbEgPiBzaGluemFuXCA7CivnjJ/kurogPiByeW91amluXCA7Civml4vmr5sgPiB0c3VtdWppXCA7CivloLHphawgPiBob3VzaHV1XCA7Civng4jpnIcgPiByZXNzaGluXCA7CivmmKXmg4UgPiBzaHVuam91XCA7Civnt6znvoogPiBtZW4nJ3lvdVwgOwor5pen5qCWID4ga3l1dXNlaVwgOwor57if56S8ID4gam9rdXJlaVwgOwor5aSn542EID4gdGFpZ29rdVwgOwor5aSn54yfID4gdGFpcnlvdVwgOwor54uC5aWUID4ga3lvdWhvblwgOwor5aKo6ImyID4gc3VtaWlyb1wgOwor57eP6IqxID4gc291YmFuYVwgOwor5pWm552mID4gdG9uYm9rdVwgOwor6KaB6aCYID4geW91cnlvdVwgOwor54us5ZCfID4gZG9rdWdpblwgOwor6KaG6Z2iID4gZnVrdW1lblwgOwor57mU54mpID4gb3JpbW9ub1wgOwor5pWs55m9ID4ga2VpaGFrdVwgOwor5aWU5rWBID4gaG9ucnl1dVwgOwor5pen5p2lID4ga3l1dXJhaVwgOwor5pep5pydID4gc291Y2hvdVwgOwor5pen5p2RID4ga3l1dXNvblwgOwor5pmC5bGAID4gamlreW9rdVwgOwor5pSv57WmID4gc2hpa3l1dVwgOwor5pS/562WID4gc2Vpc2FrdVwgOwor54us5Y2gID4gZG9rdXNlblwgOwor5aSJ55eHID4gaGVuc2hvdVwgOwor5pel5pydID4gbml0Y2hvdVwgOwor5pSv57SiID4gc2hpc2FrdVwgOwor5aaC5pyIID4gbmlnYXRzdVwgOwor5pep5pqBID4gc291Z3lvdVwgOwor5aSx54K5ID4gc2hpdHRlblwgOwor6ZuR56mAID4gemFra29rdVwgOwor6KWf6auqID4gZXJpZ2FtaVwgOwor6Kaq6YeMID4gb3lhemF0b1wgOwor54Wn6IeoID4gc2hvdXJpblwgOwor5pep5pilID4gc291c2h1blwgOwor5pio5bm0ID4gc2FrdW5lblwgOwor6Ky55oWOID4ga2luc2hpblwgOwor6Kej6KqtID4ga2FpZG9rdVwgOwor5aSp54S2ID4gdGVuJyduZW5cIDsKK+aWsOazlSA+IHNoaW5wb3VcIDsKK+WlpeanmCA+IG9rdXNhbWFcIDsKK+eLrOWJtSA+IGRva3Vzb3VcIDsKK+aXpeaZgiA+IG5pY2hpamlcIDsKK+e3keiCpSA+IHJ5b2t1aGlcIDsKK+mgmOWIhiA+IHJ5b3VidW5cIDsKK+e3r+ezuCA+IHlva29pdG9cIDsKK+mbqueZvSA+IHNlcHBha3VcIDsKK+eJueaApyA+IHRva3VzZWlcIDsKK+eJueaApSA+IHRva2t5dXVcIDsKK+aUu+eptiA+IGtvdWt5dXVcIDsKK+mgmOWGhSA+IHJ5b3VuYWlcIDsKK+mZhOiorSA+IGZ1c2V0c3VcIDsKK+mbu+eQgyA+IGRlbmt5dXVcIDsKK+eJveW8tyA+IGtlbmt5b3VcIDsKK+eJh+aWuSA+IGthdGFob3VcIDsKK+aVmeeahyA+IGt5b3Vrb3VcIDsKK+ipnueroCA+IHNoaXNob3VcIDsKK+ios+iAhSA+IHlha3VzaGFcIDsKK+eJueW+hSA+IHRva3V0YWlcIDsKK+iln+mmliA+IGVyaWt1YmlcIDsKK+WlquagvCA+IGRha2tha3VcIDsKK+aVteeKtiA+IHRla2lqb3VcIDsKK+aSg+mAgCA+IGdla2l0YWlcIDsKK+mbo+eZliA+IG5hbmt1c2VcIDsKK+aUueensCA+IGthaXNob3VcIDsKK+WmmeaJiyA+IG15b3VzaHVcIDsKK+aYpeW1kCA+IHNodW5yYW5cIDsKK+ilsumbtyA+IHNodXVyYWlcIDsKK+WmmeaJgCA+IG15b3VzaG9cIDsKK+imqui/kSA+IHNoaW5raW5cIDsKK+aYjuW+tCA+IG1laWNob3VcIDsKK+aYjuW+syA+IG1laXRva3VcIDsKK+mbo+eXhyA+IG5hbnNob3VcIDsKK+mbo+eXhSA+IG5hbmJ5b3VcIDsKK+eEoeihgCA+IG11a2V0c3VcIDsKK+immumGkiA+IGtha3VzZWlcIDsKK+e3oOe0hCA+IHRlaXlha3VcIDsKK+itmOWtlyA+IHNoaWtpamlcIDsKK+mYsuirnCA+IGJvdWNob3VcIDsKK+aageWFiSA+IGd5b3Vrb3VcIDsKK+aVmeeUnyA+IGt5b3VzZWlcIDsKK+aYlOW5tCA+IHNla2luZW5cIDsKK+iri+axgiA+IHNlaWt5dXVcIDsKK+Wkp+a8gSA+IHRhaXJ5b3VcIDsKK+eCkumjryA+IGNoYWFoYW5cIDsKK+mgg+WIuyA+IGtlaWtva3VcIDsKK+mZpeiQvSA+IGthbnJha3VcIDsKK+iqmOeIhiA+IHl1dWJha3VcIDsKK+mdkuadviA+IHNlaXNob3VcIDsKK+WklueCuiA+IGdhaXRhbWVcIDsKK+iovOe0mSA+IHNob3VzaGlcIDsKK+mch+eBvSA+IHNoaW5zYWlcIDsKK+aZr+WLnSA+IGtlaXNob3VcIDsKK+aYpeWvkiA+IHNodW5rYW5cIDsKK+e1seimmiA+IHRvdWtha3VcIDsKK+eIhuatuyA+IGJha3VzaGlcIDsKK+e2suiGnCA+IG1vdW1ha3VcIDsKK+eGn+efpSA+IGp1a3VjaGlcIDsKK+aYjuW5tCA+IG15b3VuZW5cIDsKK+Wkqea4rCA+IHRlbnNva3VcIDsKK+Wkqea4myA+IHRlbmJpa2lcIDsKK+Wlj+alvSA+IHNvdWdha3VcIDsKK+mgmOS8miA+IHJ5b3VrYWlcIDsKK+iqv+azlSA+IGNob3Vob3VcIDsKK+aYjOW5syA+IHNob3VoZWlcIDsKK+WnieWpvyA+IGFuZW11a29cIDsKK+e1gui7iiA+IHNodXVzaGFcIDsKK+aakeS4rSA+IHNob2NodXVcIDsKK+e2v+e+iiA+IG1lbicneW91XCA7Civnsr7puqYgPiBzZWliYWt1XCA7Civnhp/nnaEgPiBqdWt1c3VpXCA7CivnuKvniakgPiBudWltb25vXCA7Civmlq/mpa0gPiBzaGlneW91XCA7CivmmbblhYkgPiBzaG91a291XCA7Civnt4rnuJsgPiBraW5iYWt1XCA7CivoprPos54gPiBrYW5zaG91XCA7Civpn5Plm70gPiBrYW5rb2t1XCA7Civpm6PnkIMgPiBuYW5reXV1XCA7Civnhp/nnKAgPiBqdWt1bWluXCA7Civloqjns7ggPiBzdW1paXRvXCA7CivpmbDohrMgPiBrYWdlemVuXCA7CivoqannmoQgPiBzaGl0ZWtpXCA7CivpoJjkuLsgPiByeW91c2h1XCA7CivmmJ/lraYgPiBzZWlnYWt1XCA7CivlpKnmtKUgPiB0ZW5zaGluXCA7CivpnZLmmKUgPiBzZWlzaHVuXCA7CivmmofkurogPiBoaW1hamluXCA7CivoprPosaEgPiBrYW5zaG91XCA7Civpn7PlipsgPiBvbnJ5b2t1XCA7CivngrrpioAgPiB0YW1lZ2luXCA7CivoqJPogrIgPiBrdW4nJ2lrdVwgOwor5aWl5pa5ID4gb2t1Z2F0YVwgOwor54up5Lq6ID4ga2FyeXVkb1wgOwor57Sv6YCyID4gcnVpc2hpblwgOwor5aSp5rOjID4gdGVua3l1dVwgOwor5aWu5pKDID4gZnVuZ2VraVwgOwor54S86IqLID4geWFraWltb1wgOwor5pen5oeQID4ga3l1dWthaVwgOwor6Zmq6IejID4gYmFpc2hpblwgOwor54mn5birID4gYm9rdXNoaVwgOwor5paw5qGIID4gc2hpbicnYW5cIDsKK+mch+a6kCA+IHNoaW5nZW5cIDsKK+aXp+aFoyA+IGt5dXVrYW5cIDsKK+majue0miA+IGthaWt5dXVcIDsKK+aXp+aFiyA+IGt5dXV0YWlcIDsKK+eJueWumiA+IHRva3V0ZWlcIDsKK+aYqOWklSA+IHNha3V5dXVcIDsKK+mau+ecvCA+IHNla2lnYW5cIDsKK+eHg+eEvCA+IG5lbnNob3VcIDsKK+aWsOadpSA+IHNoaW5yYWlcIDsKK+aYk+WtpiA+IGVraWdha3VcIDsKK+Wil+e1piA+IHpvdWt5dXVcIDsKK+aXp+aCqiA+IGt5dXVha3VcIDsKK+aVsOa7tCA+IHN1dXRla2lcIDsKK+e2vue1uSA+IGF5YWdpbnVcIDsKK+e0oumBkyA+IHNha3Vkb3VcIDsKK+Wmu+WmviA+IHNhaXNob3VcIDsKK+aXp+aBqCA+IGt5dXVrb25cIDsKK+aXqeaApSA+IHNvdWt5dXVcIDsKK+e1kOiqniA+IGtldHN1Z29cIDsKK+aWsOabuCA+IHNoaW5zaG9cIDsKK+e0lOmHjyA+IGp1bnJ5b3VcIDsKK+Wls+aJiyA+IG9uJyduYWRlXCA7CivnhrHni4IgPiBuZWtreW91XCA7CivlpbPmiL8gPiBueW91Ym91XCA7CivlpJbmtbcgPiBzb3RvdW1pXCA7CivlpKfmraMgPiB0YWlzaG91XCA7CivlpLHmqKkgPiBzaGlra2VuXCA7CivlpKfmrLIgPiB0YWl5b2t1XCA7CivntZDoqJcgPiBrZXR0YWt1XCA7CivlpJbms6ggPiBnYWljaHV1XCA7CivpmLLomasgPiBib3VjaHV1XCA7CivlpJbms4ogPiBnYWloYWt1XCA7CivmlrDmmJ8gPiBzaGluc2VpXCA7CivopobovKogPiBmdWt1cmluXCA7CivmlbTmtYEgPiBzZWlyeXV1XCA7CivpoILkuIogPiBjaG91am91XCA7CivnhrHnh5cgPiBhdHN1a2FuXCA7Civml6XlvZMgPiBoaWF0YXJpXCA7Civns6Dpm6ggPiBudWthYW1lXCA7Civnt4/np7AgPiBzb3VzaG91XCA7Civml6flvIogPiBreXV1aGVpXCA7Civngavpo58gPiBrYXNob2t1XCA7CivnibnlpKcgPiB0b2t1ZGFpXCA7CivopqroqLEgPiBveWFtb3RvXCA7CivmmKXlnYogPiBoYXJ1Ym91XCA7CivoqavnirYgPiB3YWJpam91XCA7Civpm7vmtYEgPiBkZW5yeXV1XCA7CivorablkYogPiBrZWlrb2t1XCA7Civnibnlo7IgPiB0b2t1YmFpXCA7CivmlrDmlL8gPiBzaGluc2VpXCA7CivmlqzmlrAgPiB6YW5zaGluXCA7Civniq/liYcgPiBoYW5zb2t1XCA7Civpmpznoo0gPiBzaG91Z2FpXCA7CivnhKHoibIgPiBtdXNob2t1XCA7CivlpJbmrrsgPiBnYWlrYWt1XCA7Civpm4zniqwgPiBtZXN1aW51XCA7CivlpKnmpa0gPiB0ZW5neW91XCA7Civoq5bmlbUgPiByb250ZWtpXCA7Civpm4DnkIMgPiBqYW5reXV1XCA7Civmlofmp5ggPiBtb24nJ3lvdVwgOwor5aSn5qWtID4gdGFpZ3lvdVwgOwor5pen5birID4ga3l1dXNoaVwgOwor5peF5omAID4gdGFiaXNob1wgOwor57O46Yu4ID4gaXRvbm9rb1wgOwor5paw5pKwID4gc2hpbnNlblwgOwor6Kaz6KGGID4ga2Fuc2h1dVwgOwor5pS+54mnID4gaG91Ym9rdVwgOwor54m55aCxID4gdG9rdWhvdVwgOwor5paH5qW9ID4gYnVucmFrdVwgOwor54Sh6IWwID4gbXVnb3NoaVwgOwor6Kaq6KOBID4gc2hpbnNhaVwgOwor6Z2i5b2xID4gb21va2FnZVwgOwor54WZ56qBID4gZW50b3RzdVwgOwor5aKT56m0ID4gYm9rZXRzdVwgOwor54uC5Lq6ID4ga3lvdWppblwgOwor6Kq/5pu4ID4gY2hvdXNob1wgOwor5piH5aSpID4gc2hvdXRlblwgOwor6Kaq6KGbID4gc2hpbicnZWlcIDsKK+eLguS5sSA+IGt5b3VyYW5cIDsKK+mdqeW4ryA+IGthd2FvYmlcIDsKK+WkqeafsSA+IHRlbmNodXVcIDsKK+aXheaEgSA+IHJ5b3NodXVcIDsKK+ino+iEsSA+IGdlZGF0c3VcIDsKK+aYvOWJjSA+IGhpcnVtYWVcIDsKK+e2mue3qCA+IHpva3VoZW5cIDsKK+eGsea8lCA+IG5ldHN1ZW5cIDsKK+mbqua0niA+IGJvbmJvcmlcIDsKK+eEoeiBtyA+IG11c2hva3VcIDsKK+e3j+edoyA+IHNvdXRva3VcIDsKK+mWk+mamSA+IGthbmdla2lcIDsKK+imluiouiA+IHNoaXNoaW5cIDsKK+mWk+malCA+IGthbmtha3VcIDsKK+mdtOWxiyA+IGt1dHN1eWFcIDsKK+WgheiqvyA+IGtlbmNob3VcIDsKK+aWjuacjSA+IHNhaWZ1a3VcIDsKK+aXp+WxhSA+IGt5dXVreW9cIDsKK+e3qeeQgyA+IGthbmt5dXVcIDsKK+e2mee2miA+IGtlaXpva3VcIDsKK+WkqeacnSA+IHRlbmNob3VcIDsKK+imluinkiA+IHNoaWtha3VcIDsKK+aXp+WwgSA+IGt5dXVob3VcIDsKK+iqpOakjSA+IGdvc2hva3VcIDsKK+mZi+e/kiA+IHJvdXNodXVcIDsKK+Wkp+acqCA+IHRhaWJva3VcIDsKK+WfjumDrSA+IGpvdWtha3VcIDsKK+aVkea4iCA+IGt5dXVzYWlcIDsKK+imluimmiA+IHNoaWtha3VcIDsKK+e3j+eariA+IHNvdWdhd2FcIDsKK+mZuOeosiA+IHJpa3V0b3VcIDsKK+aVmeazlSA+IGt5b3Vob3VcIDsKK+iqv+aVtCA+IGNob3VzZWlcIDsKK+aXp+WumCA+IGt5dXVrYW5cIDsKK+WkseaVrCA+IHNoaWtrZWlcIDsKK+mWi+mZsyA+IGthaWNoaW5cIDsKK+WkseaVlyA+IHNoaXBwYWlcIDsKK+WlveWwmiA+IGtvdXNob3VcIDsKK+Wlh+aKnCA+IGtpYmF0c3VcIDsKK+WkseaUvyA+IHNoaXNzZWlcIDsKK+iojueptiA+IHRvdWt5dXVcIDsKK+mciuafqSA+IHJlaWt5dXVcIDsKK+iqreacrCA+IGRva3Vob25cIDsKK+mYsuiHrSA+IGJvdXNodXVcIDsKK+iqreabuCA+IGRva3VzaG9cIDsKK+eKr+S6uiA+IGhhbicnbmluXCA7CivlpaXluq0gPiBva3VuaXdhXCA7CivoqqzmnI0gPiBzZXBwdWt1XCA7CivlporlqKAgPiBuaW5zaGluXCA7CivlpaXlupUgPiBva3V6b2tvXCA7CivniaflnLAgPiBib2t1Y2hpXCA7CivmlabmqLggPiB0b25ib2t1XCA7Civlpb3lraYgPiBrb3VnYWt1XCA7Civnt6jniakgPiBhbWltb25vXCA7Civntprnr4cgPiB6b2t1aGVuXCA7CivlpKnmlbUgPiB0ZW50ZWtpXCA7CivntYzolLUgPiBreW91em91XCA7CivpnIrmnKggPiByZWlib2t1XCA7CivlpJzmm7IgPiB5YWt5b2t1XCA7Civnt4/nlLsgPiBzb3VrYWt1XCA7CivlpKfmlbUgPiB0YWl0ZWtpXCA7Civnibnlkb0gPiB0b2t1bWVpXCA7CivpmaPnrKAgPiBqaW5nYXNhXCA7Civpmobnm5sgPiByeXV1c2VpXCA7CivoqZXngrkgPiBoeW91dGVuXCA7CivmlrDmgqMgPiBzaGlua2FuXCA7CivmlZHmsJEgPiBreXV1bWluXCA7CivopoHoqLMgPiB5b3V5YWt1XCA7Civml6flp5MgPiBreXV1c2VpXCA7CivpmY3ntaYgPiBrb3VreXV1XCA7Civml6flprsgPiBreXV1c2FpXCA7CivmlofmlZkgPiBidW5reW91XCA7CivpnaLlrrkgPiBtZW4nJ3lvdVwgOwor5aSJ5qKDID4gaGVudGVrb1wgOwor57Gz6bqmID4gYmVpYmFrdVwgOwor57Sw6J66ID4ga2lzaGFnb1wgOwor54ax5rCXID4gbmV0c3VrZVwgOwor5pio5YasID4gc2FrdXRvdVwgOwor5pil5YiGID4gc2h1bmJ1blwgOwor6Kaz6I+KID4ga2FuZ2lrdVwgOwor5pen5aW9ID4ga3l1dWtvdVwgOwor6Zu75p+xID4gZGVuY2h1dVwgOwor6ZaL6ZG/ID4ga2Fpc2FrdVwgOwor6ZW36ZuoID4gbmFnYWFtZVwgOwor5aSJ5qC8ID4gaGVua2FrdVwgOwor5pen5aWXID4ga3l1dXRvdVwgOwor6Kqe5pyrID4gZ29tYXRzdVwgOwor57On6YGTID4gcnlvdWRvdVwgOwor6KWf6LazID4gZXJpYXNoaVwgOwor6Ky55ZGKID4ga2lua29rdVwgOwor6Kqs5pWZID4gc2Vra3lvdVwgOwor5pGY6KaBID4gdGVraXlvdVwgOwor6K2J5Yi4ID4gc2hvdWtlblwgOwor5pWZ5qipID4ga3lvdWtlblwgOwor5pem5aSVID4gdGFuc2VraVwgOwor5pat5b+1ID4gZGFuJyduZW5cIDsKK+aXpeWknCA+IG5pY2hpeWFcIDsKK+Wfjui3oSA+IGpvdXNla2lcIDsKK+aXpeWklSA+IG5pc3Nla2lcIDsKK+aYpeWFiSA+IHNodW5rb3VcIDsKK+aUvua1gSA+IGhvdXJ5dXVcIDsKK+mch+aXpiA+IHNoaW50YW5cIDsKK+WlpeWxsSA+IG9rdXlhbWFcIDsKK+aXp+WinyA+IGt5dXVreW9cIDsKK+mdmeWvgiA+IHNlaWpha3VcIDsKK+ino+e0hCA+IGthaXlha3VcIDsKK+WkseaKlSA+IHNoaXR0b3VcIDsKK+e2seebriA+IGtvdW1va3VcIDsKK+eBq+mJoiA+IGhpYmFjaGlcIDsKK+e1tue4gSA+IHpldHN1ZW5cIDsKK+WkleaWuSA+IHl1dWdhdGFcIDsKK+Wft+ihjCA+IHNoaWtrb3VcIDsKK+eyl+mjnyA+IHNvc2hva3VcIDsKK+aVrOacjSA+IGtlaWZ1a3VcIDsKK+WkluaVtSA+IGdhaXRla2lcIDsKK+aVheauuiA+IGtvc2F0c3VcIDsKK+imgeihnSA+IHlvdXNob3VcIDsKK+WmhOWftyA+IG1vdXNodXVcIDsKK+Wig+ebriA+IHNha2FpbWVcIDsKK+Wkj+aXpSA+IGthaml0c3VcIDsKK+mch+aSvCA+IHNoaW5rYW5cIDsKK+aVpuactCA+IHRvbmJva3VcIDsKK+WjsOalvSA+IHNlaWdha3VcIDsKK+aXp+WeiyA+IGt5dXVrZWlcIDsKK+aXheWuoiA+IHJ5b2tha3VcIDsKK+mdouWmliA+IG1lbicneW91XCA7CivmmK3ku6MgPiBzaG91ZGFpXCA7CivnhKHnrYYgPiBtdWhpdHN1XCA7CivnibnlhpkgPiB0b2t1c2hhXCA7CivlpLHmhYsgPiBzaGl0dGFpXCA7Civml6flnYAgPiBreXV1c2hpXCA7CivntZDohbggPiBrZXRjaG91XCA7Civml6flnLAgPiBreXV1Y2hpXCA7CivnibnlhbggPiB0b2t1dGVuXCA7CivloKrog70gPiB0YW4nJ25vdVwgOwor6KO96Z2pID4gc2Vpa2FrdVwgOwor5aSx5oSPID4gc2hpdHN1aVwgOwor54iG5by+ID4gYmFrdWRhblwgOwor54m55YWNID4gdG9rdW1lblwgOwor5pSv5rWBID4gc2hpcnl1dVwgOwor5o+a6Zm4ID4geW91cmlrdVwgOwor6Kaq6Ii5ID4gb3lhYnVuZVwgOwor6Zm455SjID4gcmlrdXNhblwgOwor6Zm455SfID4gcmlrdXNlaVwgOwor6Z2i5aOBID4gbWVucGVraVwgOwor5o6i6bOlID4gdGFuY2hvdVwgOwor6Kaq6IeoID4gc2hpbnJpblwgOwor57SE6KiAID4geWFrdWdlblwgOwor5aKD55WMID4ga3lvdWthaVwgOwor5pWZ5p2hID4ga3lvdWpvdVwgOwor57KX6ZuRID4gc296YXRzdVwgOwor5pWZ5p2QID4ga3lvdXphaVwgOwor5pWZ5pysID4ga3lvdWhvblwgOwor6Zu75pKDID4gZGVuZ2VraVwgOwor5pWZ5pu4ID4ga3lvdXNob1wgOwor6ZmN56WeID4ga291c2hpblwgOwor6ZaT6L+RID4gbWFkamlrYVwgOwor5paw5bGFID4gc2hpbmt5b1wgOwor57S66ImyID4ga29uJydpcm9cIDsKK+e2meebriA+IHRzdWdpbWVcIDsKK+mbt+aSgyA+IHJhaWdla2lcIDsKK+WhvueUnyA+IGp1a3VzZWlcIDsKK+iqv+W8piA+IGNob3VnZW5cIDsKK+WkseW9kyA+IHNoaXR0b3VcIDsKK+eHg+aWmSA+IG5lbnJ5b3VcIDsKK+ioiOeUuyA+IGtlaWtha3VcIDsKK+eJueS+iyA+IHRva3VyZWlcIDsKK+maoOa7hSA+IGlubWV0c3VcIDsKK+eJueS9vyA+IHRva3VzaGlcIDsKK+Wkp+aBryA+IHRhaXNva3VcIDsKK+mbhuaoqSA+IHNodXVrZW5cIDsKK+mWi+mAmiA+IGthaXRzdXVcIDsKK+mZo+eXmyA+IGppbnRzdXVcIDsKK+WkluaImiA+IGdhaXNla2lcIDsKK+WkqeW/gyA+IHRlbnNoaW5cIDsKK+e1hOiBtyA+IHNvc2hva3VcIDsKK+e2sueMnyA+IGFtaXJ5b3VcIDsKK+aWr+WtpiA+IHNoaWdha3VcIDsKK+aVteaJiyA+IHRla2lzaHVcIDsKK+WjsuaYpSA+IGJhaXNodW5cIDsKK+Wkp+W+syA+IGRhaXRva3VcIDsKK+mbouaXpSA+IHJpbmljaGlcIDsKK+eyvumAsiA+IHNob3VqaW5cIDsKK+Wkp+W9uSA+IHRhaXlha3VcIDsKK+eyvumAmiA+IHNlaXRzdXVcIDsKK+eFieeNhCA+IHJlbmdva3VcIDsKK+imque9siA+IHNoaW5zaG9cIDsKK+iruOWbvSA+IHNob2tva3VcIDsKK+aXp+WQjSA+IGt5dXVtZWlcIDsKK+eJm+WIgCA+IGd5dXV0b3VcIDsKK+mbo+aVtSA+IG5hbnRla2lcIDsKK+aXp+WPtyA+IGt5dXVnb3VcIDsKK+eAnemdkiA+IHJla2lzZWlcIDsKK+Wkp+W8kyA+IGRhaWt5dXVcIDsKK+aXp+WPiyA+IGt5dXV5dXVcIDsKK+e1kOe4gSA+IGtlY2hpZW5cIDsKK+iinum+jSA+IGtvbnJ5b3VcIDsKK+aWsOWpmiA+IHNoaW5rb25cIDsKK+aWh+W8sSA+IGJ1bmpha3VcIDsKK+aXpeWPjiA+IG5pc3NodXVcIDsKK+mbkeacqCA+IHpvdWJva3VcIDsKK+iqrOW+lyA+IHNldHRva3VcIDsKK+mdluWbvSA+IHNlaWtva3VcIDsKK+aYjuS6riA+IG1laXJ5b3VcIDsKK+WkqeW5lSA+IHRlbm1ha3VcIDsKK+Wjq+aXjyA+IHNoaXpva3VcIDsKK+eGn+afvyA+IGp1a3VzaGlcIDsKK+mWsuimpyA+IGV0c3VyYW5cIDsKK+mdqeWRvSA+IGtha3VtZWlcIDsKK+e5lOW4gyA+IHNob2t1ZnVcIDsKK+aXpeWNsCA+IG5pY2hpaW5cIDsKK+e5iuW8sSA+IHNlbmpha3VcIDsKK+e0sOiFlSA+IGhvc291ZGVcIDsKK+e5lOW3pSA+IHNob2trb3VcIDsKK+eFp+a6liA+IHNob3VqdW5cIDsKK+mbtuaIpiA+IHplcm9zZW5cIDsKK+aVteaDhSA+IHRla2lqb3VcIDsKK+aYh+S7uyA+IHNob3VuaW5cIDsKK+immuiAhSA+IGtha3VzaGFcIDsKK+imluiBtCA+IHNoaWNob3VcIDsKK+e1hOe5lCA+IHNvc2hpa2lcIDsKK+mVt+mAnSA+IGNob3VzZWlcIDsKK+mZhOedgCA+IGZ1Y2hha3VcIDsKK+isrOS8nSA+IGJ5dXVkZW5cIDsKK+WkluW/gyA+IGdhaXNoaW5cIDsKK+aVteaApyA+IHRla2lzZWlcIDsKK+iqoOW/oCA+IHNlaWNodXVcIDsKK+iqmOaDkSA+IHl1dXdha3VcIDsKK+eJp+S6uiA+IGJva3VqaW5cIDsKK+aXp+WItiA+IGt5dXVzZWlcIDsKK+e1jOezuCA+IHRhdGVpdG9cIDsKK+mVt+i+uiA+IGNob3VoZW5cIDsKK+iqoOW/gyA+IHNlaXNoaW5cIDsKK+mciuW7nyA+IHJlaWJ5b3VcIDsKK+ipruaWuSA+IHNlbmthdGFcIDsKK+aXp+WIiiA+IGt5dXVrYW5cIDsKK+aXreWFiSA+IGt5b2trb3VcIDsKK+WkseWvviA+IHNoaXR0YWlcIDsKK+eJh+WJjSA+IGthdGFtYWVcIDsKK+irnOWgsSA+IGNob3Vob3VcIDsKK+WiqOaxoCA+IGJva3VjaGlcIDsKK+Wegui/uSA+IHN1aWpha3VcIDsKK+aVtOW+qSA+IHNlaWZ1a3VcIDsKK+aXp+WGrCA+IGt5dXV0b3VcIDsKK+aUr+afsSA+IHNoaWNodXVcIDsKK+WiqOaxgSA+IGJva3VqdXVcIDsKK+aUueaapiA+IGthaXJla2lcIDsKK+aWsOWgsSA+IHNoaW5wb3VcIDsKK+WkluW7kyA+IGdhaWtha3VcIDsKK+mYquelniA+IGhhbnNoaW5cIDsKK+iqv+WtkCA+IGNob3VzaGlcIDsKK+aXp+WFuCA+IGt5dXV0ZW5cIDsKK+aVteW8viA+IHRla2lkYW5cIDsKK+mWgOi3oSA+IG1vbnpla2lcIDsKK+eyl+mHkSA+IGFyYWdhbmVcIDsKK+aUv+aVtSA+IHNlaXRla2lcIDsKK+imquexsyA+IHNoaW5iZWlcIDsKK+aVj+aNtyA+IGJpbnNob3VcIDsKK+eJiOWFgyA+IGhhbm1vdG9cIDsKK+aUv+aVmSA+IHNlaWt5b3VcIDsKK+ippuaWmSA+IHNoaXJ5b3VcIDsKK+ilgeikkyA+IG11dHN1a2lcIDsKK+e0lOiJryA+IGp1bnJ5b3VcIDsKK+WkieW/gyA+IGhlbnNoaW5cIDsKK+aVmeaIkiA+IGt5b3VrYWlcIDsKK+Wkp+WwjyA+IGRhaXNob3VcIDsKK+Wkp+WwhiA+IGRhaXNob3VcIDsKK+aXp+WCtSA+IGt5dXVzYWlcIDsKK+mWk+irnCA+IGthbmNob3VcIDsKK+imi+e/kiA+IG1pbmFyYWlcIDsKK+aUueaWsCA+IGthaXNoaW5cIDsKK+aWsOWcsCA+IHNoaW5jaGlcIDsKK+e5i+WxniA+IGtlaXpva3VcIDsKK+aUvuaTsiA+IGhvdXRla2lcIDsKK+aVt+W4gyA+IHNoaWtpZnVcIDsKK+mbhuaVoyA+IHNodXVzYW5cIDsKK+aOoembhiA+IHNhaXNodXVcIDsKK+eJm+S4vCA+IGd5dXVkb25cIDsKK+inkuebhiA+IGtha3Vib25cIDsKK+eIveWHiSA+IHNvdXJ5b3VcIDsKK+iplOabuCA+IHNob3VzaG9cIDsKK+Wkp+WtpiA+IGRhaWdha3VcIDsKK+imquetiSA+IHNoaW50b3VcIDsKK+WjgeadvyA+IGthYmVpdGFcIDsKK+WmhOS/oSA+IG1vdXNoaW5cIDsKK+aWh+WtpiA+IGJ1bmdha3VcIDsKK+aUu+aSgyA+IGtvdWdla2lcIDsKK+e3keaouSA+IHJ5b2t1anVcIDsKK+eIquWNsCA+IHRzdW1laW5cIDsKK+aXp+S+iyA+IGt5dXVyZWlcIDsKK+aUr+aXjyA+IHNoaXpva3VcIDsKK+eznuidvyA+IGt1c29iYWVcIDsKK+WinOatuyA+IHRzdWlzaGlcIDsKK+WlqOWKsSA+IHNob3VyZWlcIDsKK+e5lOWnqyA+IG9yaWhpbWVcIDsKK+iqv+WjsCA+IGNob3VzZWlcIDsKK+ikkuizniA+IGhvdXNob3VcIDsKK+e0heiJsiA+IGJlbmlpcm9cIDsKK+mZuOa1tyA+IHJpa3VrYWlcIDsKK+e1guerryA+IHNodXV0YW5cIDsKK+aXpeS8ryA+IG5pcHBha3VcIDsKK+aXi+WJiiA+IHNlbnNha3VcIDsKK+inkueVqiA+IGthZG9iYW5cIDsKK+eyvuiqrSA+IHNlaWRva3VcIDsKK+e5lOWlsyA+IHNob2t1am9cIDsKK+aXp+S6pCA+IGt5dXVrb3VcIDsKK+aXpeS7mCA+IGhpZHp1a2VcIDsKK+eGseaEmyA+IG5ldHN1YWlcIDsKK+Wig+a2ryA+IGt5b3VnYWlcIDsKK+mcnOWknCA+IHNoaW1veW9cIDsKK+eEpueHpSA+IHNob3Vzb3VcIDsKK+Wls+WCkSA+IGpva2V0c3VcIDsKK+WkqeWlsyA+IHRlbicnbnlvXCA7Civop5Lnk7YgPiBrYWt1YmluXCA7CivntKHnuL4gPiBib3VzZWtpXCA7CivoqanmioQgPiBzaGlzaG91XCA7Civml6fkuLsgPiBreXV1c2h1XCA7CivlpKflpbMgPiBvb29uJyduYVwgOwor5pW15a++ID4gdGVraXRhaVwgOwor6KiI5risID4ga2Vpc29rdVwgOwor5paw5ZOBID4gc2hpbnBpblwgOwor5aWJ5ZSxID4gaG91c2hvdVwgOwor6Kaq56WtID4gc2hpbnNhaVwgOwor5paZ5ZywID4gcnlvdWNoaVwgOwor54Sh54axID4gbXVuZXRzdVwgOwor57WQ55+zID4ga2Vzc2VraVwgOwor6ZW36KybID4gY2hvdWtvdVwgOwor57eP5qGQID4gc291Z2lyaVwgOwor54Sm54K5ID4gc2hvdXRlblwgOwor54af5oiQID4ganVrdXNlaVwgOwor6Ki85pu4ID4gc2hvdXNob1wgOwor6KuW5ZGKID4gcm9ua29rdVwgOwor54ax5b+DID4gbmVzc2hpblwgOwor6Kej54axID4gZ2VuZXRzdVwgOwor5aWJ5ZGKID4gaG91a29rdVwgOwor5aSx5ZywID4gc2hpdGNoaVwgOwor5paw5Y+CID4gc2hpbnphblwgOwor6ZuG5oiQID4gc2h1dXNlaVwgOwor5pWw5a2mID4gc3V1Z2FrdVwgOwor5pWZ5birID4ga3lvdXNoaVwgOwor5pKD56CVID4gZ2VraXNhaVwgOwor6Kqt5aOyID4geW9taXVyaVwgOwor5o6Y6ZG/ID4ga3Vzc2FrdVwgOwor6Zu55a6zID4gaHlvdWdhaVwgOwor57eP5p+EID4gc291Z2FyYVwgOwor6ZyK5aaZID4gcmVpbXlvdVwgOwor5aSJ5a65ID4gaGVuJyd5b3VcIDsKK+aXheWDpyA+IHRhYmlzb3VcIDsKK+ijuOi2syA+IGhhZGFzaGlcIDsKK+irluWPiiA+IHJvbmt5dXVcIDsKK+aOoemMsiA+IHNhaXJva3VcIDsKK+eGn+aFriA+IGp1a3VyeW9cIDsKK+imgee0hCA+IHlvdXlha3VcIDsKK+eCjuiJsiA+IGVuc2hva3VcIDsKK+eGseW7tiA+IG5ldHN1ZW5cIDsKK+ios+acrCA+IHlha3Vob25cIDsKK+iovOaYjiA+IHNob3VtZWlcIDsKK+WiqOabuCA+IGJva3VzaG9cIDsKK+e0m+ezviA+IGZ1bmt5dXVcIDsKK+ios+abuCA+IHlha3VzaG9cIDsKK+aOqOmHjyA+IHN1aXJ5b3VcIDsKK+aSnueQgyA+IGRvdWt5dXVcIDsKK+WkmeWknCA+IHNodWt1eWFcIDsKK+eGseW6piA+IG5ldHN1ZG9cIDsKK+mch+WkriA+IHNoaW4nJ291XCA7CivloIbnqY0gPiB0YWlzZWtpXCA7CivntK/nqY0gPiBydWlzZWtpXCA7CivpmrvmiYsgPiBzZWtpc2h1XCA7CivlpKnlm70gPiB0ZW5nb2t1XCA7Civoo4/ph5ggPiB1cmFrdWdpXCA7Civoo4/ph5EgPiB1cmFnYW5lXCA7CivmlKrmi4wgPiBrYWt1aGFuXCA7CivnhJnng5kgPiBob3Vyb2t1XCA7CivpmbjmqYsgPiByaWtreW91XCA7Civoqo3lrrkgPiBuaW4nJ3lvdVwgOwor6Ki85paHID4gc2hvdW1vblwgOwor6Ki65patID4gc2hpbmRhblwgOwor5aSn5Zu9ID4gdGFpa29rdVwgOwor6Zmw5qydID4gaW4nJ3V0c3VcIDsKK+iou+aWhyA+IGNodXVtb25cIDsKK+e0uueipyA+IGtvbnBla2lcIDsKK+aWsOWItiA+IHNoaW5zZWlcIDsKK+aUueaCmyA+IGthaXNodW5cIDsKK+ipqeW/gyA+IHNoaXNoaW5cIDsKK+e1tueEoSA+IHpldHN1bXVcIDsKK+WkluWjgSA+IGdhaWhla2lcIDsKK+eGn+aAnSA+IGp1a3VzaGlcIDsKK+aWsOWIiiA+IHNoaW5rYW5cIDsKK+aWsOWIgCA+IHNoaW50b3VcIDsKK+mchOWjjCA+IHNob3Vqb3VcIDsKK+aUvuW/gyA+IGhvdXNoaW5cIDsKK+eMqeOAhSA+IHNob3Vqb3VcIDsKK+Whnua6kCA+IHNva3VnZW5cIDsKK+Wkp+WYtCA+IG9vaGFzaGlcIDsKK+e1guebpCA+IHNodXViYW5cIDsKK+e0jee1jCA+IG5vdWt5b3VcIDsKK+aVmeWwjiA+IGt5b3Vkb3VcIDsKK+aWsOWFtSA+IHNoaW5wZWlcIDsKK+eEvOatuyA+IHNob3VzaGlcIDsKK+ios+aWhyA+IHlha3VidW5cIDsKK+aWsOWFmiA+IHNoaW50b3VcIDsKK+aUueW/gyA+IGthaXNoaW5cIDsKK+eFp+aYnyA+IHNob3VzZWlcIDsKK+aOm+mHkSA+IGtha2VraW5cIDsKK+aVl+WwhiA+IGhhaXNob3VcIDsKK+aOqOmAsiA+IHN1aXNoaW5cIDsKK+eFp+aYjiA+IHNob3VtZWlcIDsKK+mbhOW/gyA+IHl1dXNoaW5cIDsKK+mZuOajsiA+IHJpa3VzZWlcIDsKK+ikh+imliA+IGZ1a3VzaGlcIDsKK+eyvuiZqyA+IHNlaWNodXVcIDsKK+aVteWhgSA+IHRla2lydWlcIDsKK+e2suajmiA+IGFtaWRhbmFcIDsKK+mZuOajmiA+IHJpa3Vob3VcIDsKK+aVmeWumCA+IGt5b3VrYW5cIDsKK+WbvemiqCA+IGtva3VmdXVcIDsKK+mahuabvyA+IHJ5dXV0YWlcIDsKK+e3muaPjyA+IHNlbmJ5b3VcIDsKK+imi+elniA+IGtlbnNoaW5cIDsKK+ijgemHjyA+IHNhaXJ5b3VcIDsKK+iqv+WQiCA+IGNob3Vnb3VcIDsKK+aUv+W6gSA+IHNlaWNob3VcIDsKK+iqv+WPtyA+IGNob3Vnb3VcIDsKK+mZsOaltSA+IGlua3lva3VcIDsKK+Wkj+WgtCA+IG5hdHN1YmFcIDsKK+e0hee1hCA+IGFrYWd1bWlcIDsKK+inkueBryA+IGtha3V0b3VcIDsKK+ikh+ijvSA+IGZ1a3VzZWlcIDsKK+WkluWcpyA+IGdhaWF0c3VcIDsKK+aWieWUsSA+IHNlaXNob3VcIDsKK+eGn+W5tCA+IGp1a3VuZW5cIDsKK+e1kOeQgyA+IGtla2t5dXVcIDsKK+WghuefsyA+IHRhaXNla2lcIDsKK+WkluWbvSA+IGdhaWtva3VcIDsKK+aOpei+niA+IHNldHN1amlcIDsKK+eyvuiWhCA+IHNlaWhha3VcIDsKK+aVteWcsCA+IHRla2ljaGlcIDsKK+aNlemjnyA+IGhvc2hva3VcIDsKK+aVteWbvSA+IHRla2tva3VcIDsKK+e1gueUnyA+IHNodXVzZWlcIDsKK+ino+a2iCA+IGthaXNob3VcIDsKK+WkieWfnyA+IGhlbicnaWtpXCA7Civpmb3mmqYgPiB5b3VyZWtpXCA7CivlpKflkI0gPiBkYWlteW91XCA7CivlpLHlirkgPiBzaGlra291XCA7CivmlrDkvZMgPiBzaGludGFpXCA7Civlm73pm7sgPiBrb2t1ZGVuXCA7CivlpKflj6MgPiBvb2d1Y2hpXCA7CivmjpjpgLIgPiBrdXNzaGluXCA7Civoqr/liaQgPiBjaG91emFpXCA7Civpmbjmm7kgPiByaWt1c291XCA7Civlm73pm6MgPiBrb2t1bmFuXCA7Civnt6nmgKUgPiBrYW5reXV1XCA7CivmlK/luqYgPiBzaGl0YWt1XCA7Civpmb3mmKUgPiB5b3VzaHVuXCA7Civlm73pmpsgPiBrb2t1c2FpXCA7CivlpKfljoQgPiB0YWl5YWt1XCA7CivntIvnq6AgPiBtb25zaG91XCA7CivmlK/luoEgPiBzaGljaG91XCA7CivlnLDpgZMgPiBqaW1pY2hpXCA7CivopqrnjokgPiBveWFkYW1hXCA7CivmlrDkurogPiBzaGluamluXCA7CivmlYXlrp8gPiBrb2ppdHN1XCA7CivlpJbllYYgPiBnYWlzaG91XCA7Civlm73pmLIgPiBrb2t1Ym91XCA7CivmlL7lsL8gPiBob3VueW91XCA7Civop6PmsLcgPiBrYWloeW91XCA7CivmlofljZogPiBidW5oYWt1XCA7Civmk6/mlqUgPiBoaW5zZWtpXCA7CivlpKfli50gPiB0YWlzaG91XCA7CivmlZnlo4cgPiBreW91ZGFuXCA7CivnuK7lm7MgPiBzaHVrdXp1XCA7CivplpPohpwgPiBrYW5tYWt1XCA7CivlpKflipsgPiBkYWlyaWtpXCA7Civmk43mpa0gPiBzb3VneW91XCA7CivlpKnliYcgPiB0ZW5zb2t1XCA7Civmjqjos54gPiBzdWlzaG91XCA7CivnhKHmrKAgPiBtdWtldHN1XCA7CivoqanlraYgPiBzaGlnYWt1XCA7Civmv4Dpl5ggPiBnZWtpdG91XCA7CivoprPnhacgPiBrYW5zaG91XCA7CivlpJblkaggPiBnYWlzaHV1XCA7CivplpPohLMgPiBrYW4nJ25vdVwgOwor5pWZ5aC0ID4ga3lvdWpvdVwgOwor5Zuw6ZujID4ga29uJyduYW5cIDsKK+e4puWdkSA+IHRhdGVrb3VcIDsKK+e1pua6kCA+IGt5dXVnZW5cIDsKK+mcsuS7jyA+IHJvZnV0c3VcIDsKK+iqoeWRiiA+IGthaWtva3VcIDsKK+e1pua5ryA+IGt5dXV0b3VcIDsKK+WcsOi7uCA+IGNoaWppa3VcIDsKK+eCuuedgCA+IHNoaWtpc2VcIDsKK+Wkp+WHtiA+IGRhaWt5b3VcIDsKK+imgeebriA+IHlvdW1va3VcIDsKK+aUu+WtpiA+IGtvdWdha3VcIDsKK+e1hOeJiCA+IGt1bWloYW5cIDsKK+iqv+WBnCA+IGNob3V0ZWlcIDsKK+aUueWulyA+IGthaXNodXVcIDsKK+e5lOWFgyA+IG9yaW1vdG9cIDsKK+iln+eroCA+IGVyaXNob3VcIDsKK+mWi+iFuSA+IGthaWZ1a3VcIDsKK+mbm+WjhyA+IGhpbmFkYW5cIDsKK+Wkp+WFtSA+IGRhaWh5b3VcIDsKK+eHreWFiSA+IHNob2trb3VcIDsKK+ihqOmhjCA+IGh5b3VkYWlcIDsKK+mch+WLlSA+IHNoaW5kb3VcIDsKK+aVmeWboyA+IGt5b3VkYW5cIDsKK+e0lOecnyA+IGp1bnNoaW5cIDsKK+mat+WxniA+IHJlaXpva3VcIDsKK+aWnOS6pCA+IGhhc3VrYWlcIDsKK+e5geWKhyA+IGhhbmdla2lcIDsKK+eFqeaCqSA+IGJvbicnbm91XCA7Civoo73olqwgPiBzZWl5YWt1XCA7Civlo7Llm70gPiBiYWlrb2t1XCA7CivlpLHkvZMgPiBzaGl0dGFpXCA7CivntJTnm4ogPiBqdW4nJ2VraVwgOwor5paZ5LqtID4gcnlvdXRlaVwgOwor6Kaq54KZID4gc2hpbnNoYVwgOwor6KSH6JGJID4gZnVrdXlvdVwgOwor6Kmz5aCxID4gc2hvdWhvdVwgOwor57ee5bizID4gZG9uY2hvdVwgOwor5pW15YuiID4gdGVraXplaVwgOwor6KGo6Z2iID4gaHlvdW1lblwgOwor6ZW36IqLID4gbmFnYWltb1wgOwor6Zqj5bitID4gcmluc2VraVwgOwor57SU55m9ID4ganVucGFrdVwgOwor6KmV5a6aID4gaHlvdXRlaVwgOwor6Ziy5q+SID4gYm91ZG9rdVwgOwor5pWw5Yy5ID4gc3V1aGlraVwgOwor5aSV5Yi7ID4geXV1a29rdVwgOwor6Zu75Y2TID4gZGVudGFrdVwgOwor57WC54K5ID4gc2h1dXRlblwgOwor57eK5oClID4ga2lua3l1dVwgOwor6ZmN5qC8ID4ga291a2FrdVwgOwor57Wm5rC0ID4ga3l1dXN1aVwgOwor57K+6IKJID4gc2VpbmlrdVwgOwor5pW15YmNID4gdGVraXplblwgOwor5aSV5YeqID4geXV1bmFnaVwgOwor5aGe5qCTID4gc29rdXNlblwgOwor57ma5LmxID4gcnlvdXJhblwgOwor5aSp5L2RID4gdGVuJyd5dXVcIDsKK+ipqeWigyA+IHNoaWt5b3VcIDsKK+e4hOWiqCA+IGpvdWJva3VcIDsKK+Wkp+S9nCA+IHRhaXNha3VcIDsKK+imqua9riA+IG95YXNoaW9cIDsKK+Wbo+mVtyA+IGRhbmNob3VcIDsKK+mXmOeXhSA+IHRvdWJ5b3VcIDsKK+ijnOihgCA+IGhva2V0c3VcIDsKK+ims+a4rCA+IGthbnNva3VcIDsKK+eFruW5siA+IG5pYm9zaGlcIDsKK+Wbm+mYvyA+IGF6dW1heWFcIDsKK+e2seaJiyA+IHRzdW5hZGVcIDsKK+mZuOaIpiA+IHJpa3VzZW5cIDsKK+WkqeS6uiA+IHRlbicnbmluXCA7CivngYzohbggPiBrYW5jaG91XCA7Civnt4rlvLUgPiBraW5jaG91XCA7Civpm4blobUgPiBzaHV1amluXCA7CivpmpTlubQgPiBrYWt1bmVuXCA7CivpmY3mnI0gPiBrb3VmdWt1XCA7CivlpJblgrcgPiBnYWlzaG91XCA7CivlpInliYcgPiBoZW5zb2t1XCA7Civpm4bloYogPiBzaHV1a2FpXCA7CivnhKHmnK0gPiBtdXNhdHN1XCA7CivntIXnmb0gPiBrb3VoYWt1XCA7Civop6PmnpAgPiBrYWlzZWtpXCA7CivnhKHmnIggPiBtdWdldHN1XCA7CivlopflvrQgPiB6b3VjaG91XCA7CivopbLnlKggPiBzaHV1eW91XCA7CivoqqzkvI8gPiBzZXBwdWt1XCA7CivnhrHllLEgPiBuZXNzaG91XCA7CivmlonkuIAgPiBzZWlpdHN1XCA7CivlpJbkv6EgPiBnYWlzaGluXCA7CivmlofkuK0gPiBidW5jaHV1XCA7CivlopflvLcgPiB6b3VreW91XCA7CivpmbrmgqogPiBrZW4nJ2FrdVwgOwor6ZW36ICDID4gY2hvdWtvdVwgOwor6ZW36ICBID4gY2hvdXJvdVwgOwor6KGM6aCtID4gZ3lvdXRvdVwgOwor57ea5a+pID4gc2Vuc2hpblwgOwor6KW/54usID4gc2VpZG9rdVwgOwor5pWR5ZG9ID4ga3l1dW1laVwgOwor6Zqg5a+GID4gb25taXRzdVwgOwor6Zao56eAID4ga2Vpc2h1dVwgOwor6ZyN5LmxID4ga2FrdXJhblwgOwor5Zu96YGTID4ga29rdWRvdVwgOwor57WQ5rC3ID4ga2VwcHlvdVwgOwor6ZuG5ZujID4gc2h1dWRhblwgOwor5Zu96YCjID4ga29rdXJlblwgOwor6Zmz5oOFID4gY2hpbmpvdVwgOwor54Gr5664ID4gaGliYXNoaVwgOwor5aOy5Y2cID4gYmFpYm9rdVwgOwor5pWX5YyXID4gaGFpYm9rdVwgOwor6Zqc5a6zID4gc2hvdWdhaVwgOwor5aKX5bmFID4gem91ZnVrdVwgOwor5pOy5by+ID4gdGVraWRhblwgOwor5r2u6aiSID4gc2hpb3NhaVwgOwor57Si54S2ID4gc2FrdXplblwgOwor54S85oiQID4gc2hvdXNlaVwgOwor6Zu75L+hID4gZGVuc2hpblwgOwor57aa5oqVID4gem9rdXRvdVwgOwor5r+r6KqtID4gcmFuZG9rdVwgOwor57aZ5om/ID4ga2Vpc2hvdVwgOwor57a+5biDID4gYXlhbnVub1wgOwor57KY6IacID4gbmVubWFrdVwgOwor5pGC55CGID4gc2V0c3VyaVwgOwor6Zuq5YakID4gc2V0c3VlblwgOwor5pS/5ZWGID4gc2Vpc2hvdVwgOwor5aKo5a6IID4gYm9rdXNodVwgOwor57KJ6Iy2ID4ga29uYWNoYVwgOwor6KeS5p2QID4ga2FrdXphaVwgOwor57WM5q20ID4ga2VpcmVraVwgOwor6Zui5YilID4gcmliZXRzdVwgOwor6ZeY54mbID4gdG91Z3l1dVwgOwor54Wn5bCEID4gc2hvdXNoYVwgOwor5pGp5ruFID4gbWFtZXRzdVwgOwor5Zu96LuNID4ga29rdWd1blwgOwor5aGX5pOmID4gdG9zYXRzdVwgOwor5r+r6Ke0ID4gcmFuc2hvdVwgOwor6ZW357eoID4gY2hvdWhlblwgOwor5pWZ5YW4ID4ga3lvdXRlblwgOwor5Zyw6KGoID4gY2hpaHlvdVwgOwor6Kmy5Y2aID4gZ2FpaGFrdVwgOwor5o6o6JasID4gc3VpeWFrdVwgOwor6Zmz5byBID4gY2hpbmJlblwgOwor57O455OcID4gaGVjaGltYVwgOwor54Ks54e1ID4ga290YXRzdVwgOwor6KGM6ZaTID4gZ3lvdWthblwgOwor6Zuo5YKYID4gYW1hZ2FzYVwgOwor6ZaL56uLID4ga2Fpcnl1dVwgOwor57WC5q2iID4gc2h1dXNoaVwgOwor5pKe5pyoID4gc2h1bW9rdVwgOwor6ZuR5YuZID4gemF0c3VtdVwgOwor57Sw5rWBID4gc2Fpcnl1dVwgOwor6KiO5bmVID4gdG91YmFrdVwgOwor6ZuG5ZCIID4gc2h1dWdvdVwgOwor5o2o6LGhID4gc2hhc2hvdVwgOwor54Ku54OZID4gaG91cm9rdVwgOwor5Zyw6JyCID4gamliYWNoaVwgOwor6Zm65bO7ID4ga2Vuc2h1blwgOwor6Kaq5qipID4gc2hpbmtlblwgOwor6KGX6YyyID4gZ2Fpcm9rdVwgOwor6KSH57eaID4gZnVrdXNlblwgOwor6ZuR5YmHID4gemFzc29rdVwgOwor6KOF6JasID4gc291eWFrdVwgOwor5Zu96LOTID4ga29rdWhpblwgOwor54K55ru0ID4gdGVudGVraVwgOwor6Zm45bK4ID4gcmlrdWdhblwgOwor5aGX5oq5ID4gdG9tYXRzdVwgOwor6Kmp5YqHID4gc2hpZ2VraVwgOwor6ZaL56WoID4ga2FpaHlvdVwgOwor5pK55ouMID4ga2FrdWhhblwgOwor6Zm95bCEID4gaGl6YXNoaVwgOwor54ax5YK3ID4gbmVzc2hvdVwgOwor6Zai55m9ID4ga2FucGFrdVwgOwor6KOc6ImyID4gaG9zaG9rdVwgOwor54Sm5oWuID4gc2hvdXJ5b1wgOwor6Zmq5bitID4gYmFpc2VraVwgOwor57WQ5qC4ID4ga2Vra2FrdVwgOwor5oyv6Yi0ID4gc2hpbnJlaVwgOwor5pWZ5LyaID4ga3lvdWthaVwgOwor6ZuR5YW1ID4gem91aHlvdVwgOwor6Zqj5Zu9ID4gcmluZ29rdVwgOwor57WD5qW9ID4gZ2VuZ2FrdVwgOwor6ZuA5Y2TID4gamFudGFrdVwgOwor6Zm45bCBID4gcmlrdWZ1dVwgOwor6Zuq5LitID4gc2V0Y2h1dVwgOwor5aKo5aCkID4gYm9rdXRlaVwgOwor6KiX5a6jID4gdGFrdXNlblwgOwor57K+56WeID4gc2Vpc2hpblwgOwor5pCN55uKID4gc29uJydla2lcIDsKK+mZo+W5lSA+IGppbm1ha3VcIDsKK+eBsOeavyA+IGhhaXphcmFcIDsKK+eyl+e4hCA+IGFyYW5hd2FcIDsKK+aMjOmXmCA+IGtha3V0b3VcIDsKK+aMuumAsiA+IHRlaXNoaW5cIDsKK+ezuOeIqiA+IGhlY2hpbWFcIDsKK+ikkueroCA+IGhvdXNob3VcIDsKK+e1kOadnyA+IGtlc3Nva3VcIDsKK+eBsOeZvSA+IGthaWhha3VcIDsKK+aVmeS4uyA+IGt5b3VzaHVcIDsKK+inpuaEnyA+IHNob2trYW5cIDsKK+aLm+mtgiA+IHNob3Vrb25cIDsKK+imquagqiA+IG95YWthYnVcIDsKK+eyvueiuiA+IHNlaWtha3VcIDsKK+WbveirliA+IGtva3Vyb25cIDsKK+e3keWcnyA+IHJ5b2t1ZG9cIDsKK+mbhuWFiSA+IHNodXVrb3VcIDsKK+e1kOaZtiA+IGtlc3Nob3VcIDsKK+ijnOiBtyA+IGhvc2hva3VcIDsKK+a/gOirliA+IGdla2lyb25cIDsKK+ips+S8nSA+IHNob3VkZW5cIDsKK+e0hea9riA+IGtvdWNob3VcIDsKK+aVkeS4liA+IGt5dXVzZWlcIDsKK+imgeaxgiA+IHlvdWt5dXVcIDsKK+mZquWvqSA+IGJhaXNoaW5cIDsKK+aMuui6qyA+IHRlaXNoaW5cIDsKK+eGseS4rSA+IG5ldGNodXVcIDsKK+imquabuCA+IHNoaW5zaG9cIDsKK+ijj+iFuSA+IHVyYWhhcmFcIDsKK+ipleWIpCA+IGh5b3ViYW5cIDsKK+e0jea2vCA+IG5vdXJ5b3VcIDsKK+Wbs+iqrCA+IHp1c2V0c3VcIDsKK+ipqeS9nCA+IHNoaXNha3VcIDsKK+mWk+eUtyA+IG1hb3Rva29cIDsKK+aRuuacrCA+IHNob3Vob25cIDsKK+mbkeS6iyA+IHphdHN1amlcIDsKK+aUueS/riA+IGthaXNodXVcIDsKK+mbjOS8jyA+IHNoaWZ1a3VcIDsKK+e1jOaWhyA+IGt5b3Vtb25cIDsKK+e1tuaBryA+IHplc3Nva3VcIDsKK+mZo+WuuSA+IGppbicneW91XCA7CivoqabkvZwgPiBzaGlzYWt1XCA7CivpmbjlpKcgPiByaWt1ZGFpXCA7CivopKXnmKEgPiBqb2t1c291XCA7CivnspfnrYsgPiBhcmFzdWppXCA7Civnsr7nmb0gPiBzZWloYWt1XCA7CivooYzpgLIgPiBrb3VzaGluXCA7Civplbfnn60gPiBjaG91dGFuXCA7CivmjqPogpggPiBzZWljaHV1XCA7CivopqrmlrkgPiBveWFrYXRhXCA7CivmlLnkvZwgPiBrYWlzYWt1XCA7CivoqK3llrYgPiBzZXRzdWVpXCA7Civpm4bkvJogPiBzaHV1a2FpXCA7Civln7fmqKkgPiBzaGlra2VuXCA7CivntbXlv4MgPiBlZ29rb3JvXCA7Civmi53poJggPiBoYWlyeW91XCA7CivntbblvowgPiB6ZXRzdWdvXCA7CivopqrmlL8gPiBzaGluc2VpXCA7CivnrqHpoJggPiBrYW5yeW91XCA7CivnspjnqKAgPiBuZW5jaHV1XCA7Civmkq7lvbEgPiBzYXRzdWVpXCA7CivloanlrrMgPiBzaGlvZ2FpXCA7Civoo5zntrQgPiBob3RldHN1XCA7Civnr6TovrIgPiB0b2t1bm91XCA7Civmj67nmbogPiBraWhhdHN1XCA7CivoqLPlkI0gPiB5YWt1bWVpXCA7Civng4/mnKggPiBrb2t1dGFuXCA7CivpmorllYYgPiB0YWlzaG91XCA7CivloIbmnLEgPiB0c3Vpc2h1XCA7CivpmbjlnLAgPiByaWt1Y2hpXCA7CivlooPln58gPiBreW91aWtpXCA7CivmjIfph50gPiBzaGlzaGluXCA7Civlm57oqq0gPiBrYWlkb2t1XCA7CivnhaflkIggPiBzaG91Z291XCA7CivoqLzliLggPiBzaG91a2VuXCA7CivoqZXkvJ0gPiBoeW91ZGVuXCA7CivngbjngrkgPiBreXV1dGVuXCA7CivlnovnlaogPiBrYXRhYmFuXCA7CivnhLzlo7IgPiBzaHV1bWFpXCA7Civlm57oqLogPiBrYWlzaGluXCA7CivopIfnnLwgPiBmdWt1Z2FuXCA7CivoqZTku6QgPiBzaG91cmVpXCA7CivlooPlnLAgPiBreW91Y2hpXCA7Civnt6jkv64gPiBoZW5zaHV1XCA7CivntbHluZUgPiB0b3ViYWt1XCA7Civngavnh7UgPiBrb3RhdHN1XCA7Civmkq3lt54gPiBiYW5zaHV1XCA7CivnhKHlrr8gPiBtdXNodWt1XCA7Civop5LluL0gPiBrYWt1Ym91XCA7CivngavnhrEgPiBrYW5ldHN1XCA7CivplbfnlLcgPiBjaG91bmFuXCA7CivopqrmjIcgPiBveWF5dWJpXCA7Civop5LluK8gPiBrYWt1b2JpXCA7CivnhKHlrp8gPiBtdWppdHN1XCA7CivplbfnlJ8gPiBjaG91c2VpXCA7CivntKLmnaEgPiBzYWt1am91XCA7Civooajop6MgPiBoeW91a2FpXCA7Civnt4/liYcgPiBzb3Vzb2t1XCA7Civlm5vop5IgPiBzaGlrYWt1XCA7CivntIvmp5ggPiBtb24nJ3lvdVwgOwor5aKX5Y+OID4gem91c2h1dVwgOwor6KGM6LOeID4ga291c2hvdVwgOwor566h6ZW3ID4ga2FuY2hvdVwgOwor57a+5Y+WID4gYXlhdG9yaVwgOwor57aa5aCxID4gem9rdWhvdVwgOwor5o6i57SiID4gdGFuc2FrdVwgOwor6KGA6LevID4ga2V0c3Vyb1wgOwor5aCx5b6zID4gaG91dG9rdVwgOwor5pGp5pOmID4gbWFzYXRzdVwgOwor5aCx5b6pID4gaG91ZnVrdVwgOwor5o+Q552jID4gdGVpdG9rdVwgOwor6KaL5paZID4ga2VucnlvdVwgOwor6KGo6KOFID4gaHlvdXNvdVwgOwor57WC5oimID4gc2h1dXNlblwgOwor5Zu96JGsID4ga29rdXNvdVwgOwor6KW/5pqmID4gc2VpcmVraVwgOwor57Gg57WhID4gcm91cmFrdVwgOwor57KX55quID4gYXJha2F3YVwgOwor54Kt5p+xID4gdGFuY2h1dVwgOwor5aCq5b+NID4ga2FuJyduaW5cIDsKK+imquaEmyA+IHNoaW4nJ2FpXCA7CivooZPoqp4gPiBqdXRzdWdvXCA7CivoprPlv7UgPiBrYW4nJ25lblwgOwor57SU5py0ID4ganVuYm9rdVwgOwor6KiT5ZGKID4ga3Vua29rdVwgOwor6KW/5pelID4gbmlzaGliaVwgOwor6KWy5p2lID4gc2h1dXJhaVwgOwor57Gz56mAID4gYmVpa29rdVwgOwor56+A6L+rID4gc2VwcGFrdVwgOwor5Z+35pS/ID4gc2hpc3NlaVwgOwor5pOB5aOBID4geW91aGVraVwgOwor6Kit5YKZID4gc2V0c3ViaVwgOwor6KGA6LGGID4gY2hpbWFtZVwgOwor6Ki85Lq6ID4gc2hvdW5pblwgOwor5Zyn57iuID4gYXNzaHVrdVwgOwor5o6M57eoID4gc2hvdWhlblwgOwor57eS5L2cID4gc2hvc2FrdVwgOwor5aGB5a+pID4gcnVpc2hpblwgOwor5aKz5LiYID4gZnVua3l1dVwgOwor57KX55WlID4gc29yeWFrdVwgOwor57Sa5pWwID4ga3l1dXN1dVwgOwor57SL5pyNID4gbW9ucHVrdVwgOwor6KOV56aPID4geXV1ZnVrdVwgOwor5o6b566XID4ga2FrZXphblwgOwor6KGG6KuWID4gc2h1dXJvblwgOwor5Zue6JmrID4ga2FpY2h1dVwgOwor5o6o56ewID4gc3Vpc2hvdVwgOwor57W15ae/ID4gZXN1Z2F0YVwgOwor6KaB5pKDID4geW91Z2VraVwgOwor5Zyw57GNID4gY2hpc2VraVwgOwor5o6i56m2ID4gdGFua3l1dVwgOwor5o6M57SLID4gc2hvdW1vblwgOwor57KS55WMID4gcnl1dWthaVwgOwor5o2n6IW5ID4gaG91ZnVrdVwgOwor5pCN5rWBID4gc29ucnl1dVwgOwor5ryG6aOfID4gc2hpa2t1aVwgOwor54Wn5LyaID4gc2hvdWthaVwgOwor5oyZ6Ki8ID4ga3lvc2hvdVwgOwor54K55o+PID4gdGVuYnlvdVwgOwor5Zyo57GNID4gemFpc2VraVwgOwor5ouT6YqAID4gdGFrdWdpblwgOwor57W25aOBID4gemVwcGVraVwgOwor6ZqU5LiWID4ga2FrdXNlaVwgOwor6Zm45YW1ID4gcmlrdWhlaVwgOwor57ax5YW3ID4gdHN1bmFndVwgOwor57KX546JID4gYXJhdGFtYVwgOwor57ay5YWDID4gYW1pbW90b1wgOwor6KiA5Y+KID4gZ2Vua3l1dVwgOwor57O45p6gID4gaXRvd2FrdVwgOwor6Zmk5Y20ID4gam9reWFrdVwgOwor5ryr6YyyID4gbWFucm9rdVwgOwor6ZqP5LiAID4genVpaWNoaVwgOwor57O45p2JID4gaXRvc3VnaVwgOwor54Gw5q67ID4gaGFpZ2FyYVwgOwor6Kiq5LitID4gaG91Y2h1dVwgOwor5pGC5pS/ID4gc2Vzc2hvdVwgOwor5aGp5ZGzID4gc2hpb2FqaVwgOwor5Zyw56mNID4gY2hpc2VraVwgOwor57WQ5bC+ID4ga2V0c3ViaVwgOwor57SE5pWwID4geWFrdXN1dVwgOwor6Ziy5aOBID4gYm91aGVraVwgOwor57O+5piOID4ga3l1dW1laVwgOwor5aGB5aOBID4gcnVpaGVraVwgOwor57WQ5a+pID4ga2Vzc2hpblwgOwor57Sw5b+DID4gc2Fpc2hpblwgOwor5o6h55+zID4gc2Fpc2VraVwgOwor5aCF5b+NID4ga2VuJyduaW5cIDsKK+eykueKtiA+IHJ5dXVqb3VcIDsKK+aLmemAnyA+IHNlc3Nva3VcIDsKK+a9ruinoyA+IGNob3VrYWlcIDsKK+aSruWcnyA+IHNhdHN1ZG9cIDsKK+a8uOmAsiA+IHplbnNoaW5cIDsKK+imquWxlSA+IHNoaW50ZW5cIDsKK+imj+W+iyA+IGtpcml0c3VcIDsKK+aMgeiqrCA+IGppc2V0c3VcIDsKK+imluW6iiA+IHNoaXNob3VcIDsKK+inkuWcsCA+IGthZG9jaGlcIDsKK+e1jOWtpiA+IGtlaWdha3VcIDsKK+eyi+eLgiA+IHN1aWt5b3VcIDsKK+ijj+eZvSA+IHVyYWppcm9cIDsKK+WhteWFpSA+IGdvbWlpcmVcIDsKK+WgseWlqCA+IGhvdXNob3VcIDsKK+e0sOW4ryA+IGhvc29vYmlcIDsKK+imquWtkCA+IHNoaW5zaGlcIDsKK+eEoeWPoyA+IG11a3VjaGlcIDsKK+Wft+W/tSA+IHNodXVuZW5cIDsKK+mZuOS4iiA+IHJpa3Vqb3VcIDsKK+a8q+mBiiA+IG1hbicneXV1XCA7CivntbbllLEgPiB6ZXNzaG91XCA7Civlm57ohbggPiBrYWljaG91XCA7CivplbfmsZ8gPiBjaG91a291XCA7CivlnLDnm64gPiBjaGltb2t1XCA7Civmi43ou4ogPiBoYWt1c2hhXCA7CivnhKHlipsgPiBtdXJ5b2t1XCA7Civmir3pgbggPiBjaHV1c2VuXCA7CivmjZzntKIgPiBzb3VzYWt1XCA7Civplovmpa0gPiBrYWlneW91XCA7Civntbblj6sgPiB6ZWtreW91XCA7Civlm73nsosgPiBrb2t1c3VpXCA7CivmjpvnlZkgPiBrZWlyeXV1XCA7Civopqrlpb0gPiBzaGlua291XCA7Civplonmpa0gPiBoZWlneW91XCA7CivloLHlm70gPiBob3Vrb2t1XCA7CivnsbPni6wgPiBiZWlkb2t1XCA7CivmjK/oiJ4gPiBmdXJ1bWFpXCA7CivnrrToqIAgPiBzaGluZ2VuXCA7CivntYLlp4sgPiBzaHV1c2hpXCA7CivplbfmrY4gPiBjaG91dGFuXCA7CivplbfmrYwgPiBuYWdhdXRhXCA7CivmjK/oiIggPiBzaGlua291XCA7CivoppblraYgPiBzaGlnYWt1XCA7CivpmZ7ku7sgPiBzaG91bmluXCA7CivntJnluYUgPiBzaGlmdWt1XCA7CivntJnluLMgPiBzaGljaG91XCA7CivntYzloIIgPiBreW91ZG91XCA7CivpmaPkuK0gPiBqaW5jaHV1XCA7CivntI3lvpcgPiBuYXR0b2t1XCA7Civntbbli50gPiB6ZXNzaG91XCA7CivnspjmtrIgPiBuZW4nJ2VraVwgOwor5Zyf552AID4gZG9jaGFrdVwgOwor5Zu9562JID4ga29rdXRvdVwgOwor5aCC5a6IID4gZG91bW9yaVwgOwor5oud6KyBID4gaGFpZXRzdVwgOwor5pKk5Y+OID4gdGVzc2h1dVwgOwor57Gg55CDID4gcm91a3l1dVwgOwor54Gv5piOID4gdG91bXlvdVwgOwor5oud6KqtID4gaGFpZG9rdVwgOwor6J+26LKdID4gbWF0ZWdhaVwgOwor562J6ZaRID4gbmFvemFyaVwgOwor5oub6KuLID4gc2hvdXNlaVwgOwor6Y+k6aqoID4gcnVrb3RzdVwgOwor6KaL5a2mID4ga2VuZ2FrdVwgOwor5oqV6YyoID4gdG91YnlvdVwgOwor57WM5Zu9ID4ga2Vpa29rdVwgOwor5Zyo55WZID4gemFpcnl1dVwgOwor5pCN5paZID4gc29ucnlvdVwgOwor57SQ5bivID4gY2h1dXRhaVwgOwor6Y+h6auYID4ga3lvdWtvdVwgOwor5Zyt55KnID4ga2VpaGVraVwgOwor5o+P5rOVID4gYnlvdWhvdVwgOwor6KO95rC3ID4gc2VpaHlvdVwgOwor5Zyw55CDID4gY2hpa3l1dVwgOwor6ZGR6LOeID4ga2Fuc2hvdVwgOwor5Zu956iOID4ga29rdXplaVwgOwor5r+r55SoID4gcmFuJyd5b3VcIDsKK+e0gOW+iyA+IGtpcml0c3VcIDsKK+mWgOafsSA+IG1vbmNodXVcIDsKK+mZjeS8jyA+IGtvdWZ1a3VcIDsKK+WgseWRiiA+IGhvdWtva3VcIDsKK+e0s+WjqyA+IHNoaW5zaGlcIDsKK+ezvuW8viA+IGt5dXVkYW5cIDsKK+ihkuiAgCA+IGdlbicneW91XCA7Civlm7Dnqq4gPiBrb25reXV1XCA7CivooajntJkgPiBoeW91c2hpXCA7Civng4jlpbMgPiByZXRzdWpvXCA7CivpmLLlhbEgPiBib3VreW91XCA7CivmkrDkv64gPiBzZW5zaHV1XCA7Civpl5jlsIYgPiB0b3VzaG91XCA7CivopqrlloQgPiBzaGluemVuXCA7Civmv6vnjbIgPiByYW5rYWt1XCA7CivmvKvoqq0gPiBtYW5kb2t1XCA7CivplqLmiYAgPiBzZWtpc2hvXCA7CivngJ/mtJIgPiBzaG91c2hhXCA7Civln47lu5MgPiBqb3VrYWt1XCA7Civns7jlupUgPiBpdG96b2tvXCA7CivmvKvoqZUgPiBtYW5weW91XCA7CivngYzmnKggPiBrYW5ib2t1XCA7CivopovlooMgPiBtaXNha2FpXCA7CivntYzlj7IgPiBreW91c2hpXCA7CivmipjovrwgPiBvcmlrb21pXCA7Civlm57nq6AgPiBrYWlzaG91XCA7CivmjojniLUgPiBqdXNoYWt1XCA7CivnrYnph48gPiB0b3VyeW91XCA7Civpj6HpnaIgPiBreW91bWVuXCA7CivntYzljZQgPiBrZWlreW91XCA7Civlm7rnnYAgPiBrb2NoYWt1XCA7CivmjqjmuKwgPiBzdWlzb2t1XCA7Civlm73nm4ogPiBrb2t1ZWtpXCA7Civmu7LpgI8gPiBzaGludG91XCA7CivoprPliocgPiBrYW5nZWtpXCA7CivntITlrpogPiB5YWt1am91XCA7CivloLHlhJ8gPiBob3VzaG91XCA7CivopIfmnKwgPiBmdWt1aG9uXCA7CivplbfmlocgPiBjaG91YnVuXCA7CivmkqnkubEgPiByeW91cmFuXCA7CivmjqLmuKwgPiB0YW5zb2t1XCA7CivmipXouqsgPiB0b3VzaGluXCA7CivntbHkuIAgPiB0b3VpdHN1XCA7Civplovmi5MgPiBrYWl0YWt1XCA7CivplqLlv4MgPiBrYW5zaGluXCA7Civoo5zmrrogPiBob3NhdHN1XCA7Civns7jlsZEgPiBpdG9rdXp1XCA7CivmkoPliaMgPiBnZWtpa2VuXCA7CivmiYHpoY0gPiBoZW5nYWt1XCA7CivmvJToqqwgPiBlbnpldHN1XCA7CivlnoLmlZkgPiBzdWlreW91XCA7CivopIfmmJ8gPiBmdWt1c2VpXCA7CivnrYnpgJ8gPiB0b3Vzb2t1XCA7CivmiYDpoJggPiBzaG9yeW91XCA7Civnq7nppqwgPiBjaGlrdWJhXCA7Civoo5zmrKAgPiBob2tldHN1XCA7Civlm73nlKMgPiBrb2t1c2FuXCA7CivooYDnuIEgPiBrZXRzdWVuXCA7CivopIfmlrkgPiBmdWt1aG91XCA7CivnspfmnKsgPiBzb21hdHN1XCA7CivooZPnrZYgPiBqdXNzYWt1XCA7CivopIfmlocgPiBmdWt1YnVuXCA7Civmv4DnlJogPiBnZWtpamluXCA7Civpjq7prYIgPiBjaGluZ29uXCA7CivopIfmlbAgPiBmdWt1c3V1XCA7Civnga/lv4MgPiB0b3VzaGluXCA7CivmkI3lvpcgPiBzb250b2t1XCA7CivloJXlipsgPiBkYXJ5b2t1XCA7CivntYLliIogPiBzaHV1a2FuXCA7CivmjqLmsYIgPiB0YW5reXV1XCA7CivopqrlhYMgPiBveWFtb3RvXCA7CivmiJDps6UgPiBzZWljaG91XCA7Civpj6HpkZEgPiBreW91a2FuXCA7CivooYDns4ogPiBjaGlub3JpXCA7CivnrYnouqsgPiB0b3VzaGluXCA7CivmvLjokL0gPiB6ZW5yYWt1XCA7CivnspfmlrkgPiBhcmFrYXRhXCA7Civns7jlp6sgPiBpdG9oaW1lXCA7Civnr4DnvqkgPiBzZXRzdWdpXCA7CivnrYbouZ8gPiBoaXNzZWtpXCA7CivplbfmiYAgPiBjaG91c2hvXCA7CivnrYbot6EgPiBoaXNzZWtpXCA7Civmva7ntIUgPiBjaG91a291XCA7CivmiYDplbcgPiBzaG9jaG91XCA7CivntYLlgKQgPiBvd2FyaW5lXCA7CivntLDliYcgPiBzYWlzb2t1XCA7CivooYDnrYsgPiBjaGlzdWppXCA7CivmvYXohbggPiBrYW5jaG91XCA7Civln47lo4EgPiBqb3VoZWtpXCA7CivlnLDmrrsgPiBjaGlrYWt1XCA7CivmkZjlj5YgPiB0ZWtpc2h1XCA7Civmi5voh7QgPiBzaG91Y2hpXCA7CivnrZborIAgPiBzYWt1Ym91XCA7CivopqrkuqQgPiBzaGlua291XCA7Civnsr7lvLcgPiBzZWlreW91XCA7Civmipjop5IgPiBzZWtrYWt1XCA7Civono3pgJogPiB5dXVkenV1XCA7CivplovluZUgPiBrYWltYWt1XCA7CivllqvpqZogPiBiaWtrdXJpXCA7CivplovluLMgPiBrYWljaG91XCA7CivnsIfnlJ8gPiB6b2t1c2VpXCA7CivlnZHmnKggPiBrb3Vib2t1XCA7CivntJrlj4sgPiBreXV1eXV1XCA7CivplonluZUgPiBoZWltYWt1XCA7CivpjpbpqqggPiBzYWtvdHN1XCA7CivmuoDpoY0gPiBtYW5nYWt1XCA7CivooZfnnYAgPiBtYWNoaWdpXCA7CivmjK/nm6ogPiBzaGludG91XCA7Civopb/ljJcgPiBzZWlob2t1XCA7CivopobliLsgPiBmdWtrb2t1XCA7CivlnKfmrrogPiBhc3NhdHN1XCA7Civpjq7pnZkgPiBjaGluc2VpXCA7Civon4von4AgPiBrb29yb2dpXCA7Civmv6DmtLIgPiBnb3VzaHV1XCA7Civmi53ogbQgPiBoYWljaG91XCA7CivmiY3ph48gPiBzYWlyeW91XCA7Civmv4HngrkgPiBkYWt1dGVuXCA7CivntYLkuJYgPiBzaHV1c2VpXCA7CivooI/nvLYgPiBrYW5pa2FuXCA7Civnq5zpoZQgPiByeW91Z2FuXCA7CivplbflvoQgPiBjaG91a2VpXCA7CivplbflvoEgPiBjaG91c2VpXCA7Civln7fliIAgPiBzaGl0dG91XCA7CivmipjoobcgPiBzZXRjaHV1XCA7CivopbLlkI0gPiBzaHV1bWVpXCA7Civmi5vogZggPiBzaG91aGVpXCA7CivmipjooZ0gPiBzZXNzaG91XCA7CivntLnku4sgPiBzaG91a2FpXCA7CivntIXllIcgPiBrb3VzaGluXCA7Civooajnj74gPiBoeW91Z2VuXCA7Civlm5vnkIMgPiBzaGlreXV1XCA7CivlnoLlv4MgPiBzdWlzaGluXCA7CivmjqjmnI0gPiBzdWlmdWt1XCA7CivooYbnn6UgPiBzaHV1Y2hpXCA7CivplpHlr4IgPiBrYW5qYWt1XCA7Civns77llY8gPiBreXV1bW9uXCA7Civoo4/mm7ggPiB1cmFnYWtpXCA7CivnrYboqoUgPiBoaXRjaHV1XCA7Civmib/oqo0gPiBzaG91bmluXCA7CivplbflubwgPiBjaG91eW91XCA7CivplbflubQgPiBuYWdhbmVuXCA7CivplqPlpJYgPiBrYWt1Z2FpXCA7CivopoHlhJ8gPiB5b3VzaG91XCA7CivnrYnop5IgPiB0b3VrYWt1XCA7CivlmIbos54gPiB0YW5zaG91XCA7CivnrYnopqogPiB0b3VzaGluXCA7CivmkL7lj5YgPiBzYWt1c2h1XCA7CivloIXkurogPiBrYXRhamluXCA7Civoo4XmnZ8gPiBzb3V6b2t1XCA7CivlnJ/mqYsgPiBkb2Jhc2hpXCA7CivlnLDmoLggPiBjaGlrYWt1XCA7CivmiYvov5EgPiB0ZWRqaWthXCA7Civoo4/mlrkgPiB1cmFrYXRhXCA7Civns77lkIggPiBreXV1Z291XCA7Civon7nnvLYgPiBrYW5pa2FuXCA7Civmv4DmuJsgPiBnZWtpZ2VuXCA7Civnspflv70gPiBzb2tvdHN1XCA7CivntI3lhaUgPiBub3VueXV1XCA7CivmioDooZMgPiBnaWp1dHN1XCA7CivmipXolqwgPiB0b3V5YWt1XCA7Civmv4DmtaogPiBnZWtpcm91XCA7CivntITliIYgPiB5YWt1YnVuXCA7Civlm73ms5UgPiBrb2t1aG91XCA7CivmiYvouZ8gPiBzaHVzZWtpXCA7CivmiJDplbcgPiBzZWljaG91XCA7CivnspLlvoQgPiByeXV1a2VpXCA7CivplbflrpggPiBjaG91a2FuXCA7CivmiYvot6EgPiBzaHVzZWtpXCA7CivplbflrZAgPiBjaG91c2hpXCA7Civlm73msJEgPiBrb2t1bWluXCA7Civnsr7lppkgPiBzZWlteW91XCA7Civmv4HmsLQgPiBkYWt1c3VpXCA7Civom5/pvo0gPiBrb3VyeW91XCA7CivmjpLmlqUgPiBoYWlzZWtpXCA7CivplonloZ4gPiBoZWlzb2t1XCA7CivooYznirYgPiBneW91am91XCA7Civonbbosp0gPiBjaG91Z2FpXCA7CivopZ/lhYMgPiBlcmltb3RvXCA7CivooYDnkIMgPiBrZWtreXV1XCA7Civmi5nnrZYgPiBzZXNzYWt1XCA7Civmh7jpmpQgPiBrZW5rYWt1XCA7Civoo4/mioAgPiB1cmF3YXphXCA7CivlnKjmlrkgPiB6YWlrYXRhXCA7Civnq7novKogPiBjaGlrdXdhXCA7CivmjpLmkoMgPiBoYWlnZWtpXCA7Civnr4Dnm64gPiBmdXNoaW1lXCA7CivmjqHmip4gPiBzYWl0YWt1XCA7CivmjZXmrrogPiBob3NhdHN1XCA7Civplovlm70gPiBrYWlrb2t1XCA7Civonp/omasgPiBtZWljaHV1XCA7Civngb3ljoQgPiBzYWl5YWt1XCA7CivlnJ/ml6UgPiBkb25pY2hpXCA7CivopJLlpaggPiBob3VzaG91XCA7CivplbflpKcgPiBjaG91ZGFpXCA7CivmiJDpioAgPiBuYXJpZ2luXCA7Civnr4TnlocgPiBoYW5jaHV1XCA7Civlm57mtYEgPiBrYWlyeXV1XCA7Civnspflr4YgPiBzb21pdHN1XCA7Civmjozmj6EgPiBzaG91YWt1XCA7CivmiJDph5EgPiBuYXJpa2luXCA7CivmvZTnmb0gPiBrZXBwYWt1XCA7CivmvZTnmZYgPiBrZXBwZWtpXCA7CivmvKLnsY0gPiBrYW5zZWtpXCA7CivlnKfmjqUgPiBhc3NldHN1XCA7Civmir3nsaQgPiBjaHV1c2VuXCA7Civnq7botbAgPiBreW91c291XCA7CivnspLlrZAgPiByeXV1c2hpXCA7CivmiY3oppogPiBzYWlrYWt1XCA7Civngavlj6MgPiBoaWd1Y2hpXCA7CivmiYDorIIgPiBpd2F5dXJ1XCA7CivnrJHopqcgPiBzaG91cmFuXCA7CivplpPlj6MgPiBtYWd1Y2hpXCA7CivmkI/li5UgPiBoYWt1ZG91XCA7CivmiKbot6EgPiBzZW5zZWtpXCA7CivplqPlhoUgPiBrYWt1bmFpXCA7CivmuoDouqsgPiBtYW5zaGluXCA7Civlm73mnKwgPiBrb2t1aG9uXCA7Civoo4/luq0gPiB1cmFuaXdhXCA7Civoo4/lupcgPiB1cmFkYW5hXCA7Civlm73mnIkgPiBrb2t1eXV1XCA7Civlm73mm7ggPiBrb2t1c2hvXCA7CivngavlipsgPiBrYXJ5b2t1XCA7CivplbflmIYgPiBjaG91dGFuXCA7Civnq5zou4ogPiByeXV1c2hhXCA7CivmiJHovKkgPiB3YWdhaGFpXCA7CivmuoDotrMgPiBtYW56b2t1XCA7CivooYDmva4gPiBjaGlzaGlvXCA7CivmvIbntbUgPiB1cnVzaGllXCA7Civnspflo4EgPiBhcmFrYWJlXCA7CivooYDmvL8gPiBrZXNzaG91XCA7CivpvbfpvaogPiBha3VzZWt1XCA7Civmv4DmmpEgPiBnZWtpc2hvXCA7CivllYbprYIgPiBzaG91a29uXCA7CivlnLDlv4MgPiBjaGlzaGluXCA7CivnqbrppqwgPiBrYXJhdW1hXCA7CivplbfllIQgPiBuYWdhdXRhXCA7CivmkI3lgrcgPiBzb25zaG91XCA7Civnrpfnm6QgPiBzb3JvYmFuXCA7Civlm73mlocgPiBrb2t1YnVuXCA7CivplovliYogPiBrYWlzYWt1XCA7CivmiYDooYwgPiBzaG9neW91XCA7Civlm73mlZkgPiBrb2treW91XCA7Civplbflkb0gPiBjaG91bWVpXCA7Civlm73mlL8gPiBrb2t1c2VpXCA7CivmuqLooYAgPiBpa2tldHN1XCA7CivnsbPlr6kgPiBiZWlzaGluXCA7CivlnanloJ0gPiBydXRzdWJvXCA7Civnr4DnhZkgPiBzZXRzdWVuXCA7Civlm6PmoJcgPiBkb25ndXJpXCA7CivmuJvpoY0gPiBnZW5nYWt1XCA7Civlm7PmmJ8gPiB6dWJvc2hpXCA7Civoo4/lsbEgPiB1cmF5YW1hXCA7CivmipjntJkgPiBvcmlnYW1pXCA7Civmi5jnlZkgPiBrb3VyeXV1XCA7CivooYzmsLQgPiBneW91enVpXCA7Civnsonlo4EgPiBmdW5wZWtpXCA7Civnq4vouqsgPiByaXNzaGluXCA7CivmjqXlsL4gPiBzZXRzdWJpXCA7Civnq7noo70gPiB0YWtlc2VpXCA7CivllYbppKggPiBzaG91a2FuXCA7CivnrpfnlKggPiBzYW4nJ3lvdVwgOwor6KGA5rKIID4ga2V0Y2hpblwgOwor6ZaT5L2cID4ga2Fuc2FrdVwgOwor5omL6JSTID4gdGVkenVydVwgOwor6KSH5ZCIID4gZnVrdWdvdVwgOwor6ZW35YmjID4gY2hvdWtlblwgOwor54Gr5LuYID4gaGl0c3VrZVwgOwor5ZSQ6buNID4gdG91a2liaVwgOwor5Zyw5bOhID4gY2hpa3lvdVwgOwor56+J5rivID4gY2hpa2tvdVwgOwor5o+Q5ZSxID4gdGVpc2hvdVwgOwor56m66ZqZID4ga3V1Z2VraVwgOwor5oqc56m0ID4gbnVrZWFuYVwgOwor6ZaR5Lq6ID4gaGltYWppblwgOwor56m66Zm4ID4ga3V1cmlrdVwgOwor6J2Z6J2gID4gaGVucHVrdVwgOwor5oqE57SZID4gc2hvdXNoaVwgOwor5Zue5pilID4ga2Fpc2h1blwgOwor6ZaT5LitID4gYWlkYWp1dVwgOwor5om/57aZID4gc2hvdWtlaVwgOwor562J57SaID4gdG91a3l1dVwgOwor5o6S5bC/ID4gaGFpbnlvdVwgOwor5o235b6EID4gc2hvdWtlaVwgOwor5Zu95omLID4ga29rdXNodVwgOwor5o6o5aWoID4gc3Vpc2hvdVwgOwor6KGM5qW9ID4ga291cmFrdVwgOwor6ZW35YWEID4gY2hvdWtlaVwgOwor6KGo5piOID4gaHlvdW1laVwgOwor5r+A5oimID4gZ2VraXNlblwgOwor5Zue5pWZID4ga2Fpa3lvdVwgOwor5Zyw5a2mID4gY2hpZ2FrdVwgOwor5ryB56SBID4gZ3lvc2hvdVwgOwor6KGo5pWsID4gaHlvdWtlaVwgOwor5oaC6ayxID4geXV1dXRzdVwgOwor5oe46LOeID4ga2Vuc2hvdVwgOwor5r+A5oakID4gZ2VraWZ1blwgOwor56m/6ZG/ID4gc2Vuc2FrdVwgOwor5r2k5rKiID4ganVudGFrdVwgOwor5oyv5pu/ID4gZnVyaWthZVwgOwor56+m5qOSID4gYmVyYWJvdVwgOwor6KSH5YaZID4gZnVrdXNoYVwgOwor5oqV56WoID4gdG91aHlvdVwgOwor5Zu95oOFID4ga29rdWpvdVwgOwor5Zyo5a6FID4gemFpdGFrdVwgOwor5Zyo5a2mID4gemFpZ2FrdVwgOwor5oeQ6YO3ID4ga2Fpa3lvdVwgOwor5r+A5oOFID4gZ2VraWpvdVwgOwor57K+5LiAID4gc2VpaXRzdVwgOwor5Zmo54mpID4ga2lidXRzdVwgOwor57Gz5Zu9ID4gYmVpa29rdVwgOwor56uL6Ki8ID4gcmlzc2hvdVwgOwor5o6b5aOwID4ga2FrZWdvZVwgOwor6KGM5pyrID4geXVrdXN1ZVwgOwor6KGM5pu4ID4gZ3lvdXNob1wgOwor5ri+6LqrID4ga29uc2hpblwgOwor5omB6IifID4gaGVuc2h1dVwgOwor5oqV55+zID4gdG91c2VraVwgOwor5oyH5qiZID4gc2hpaHlvdVwgOwor5Zuw5oORID4ga29ud2FrdVwgOwor5oyf5pu4ID4ga3lvdXNob1wgOwor5o+P5YaZID4gYnlvdXNoYVwgOwor6KGG5pybID4gc2h1dWJvdVwgOwor6ZW35LiKID4gY2hvdWpvdVwgOwor6KG35oOFID4gY2h1dWpvdVwgOwor5rib6YePID4gZ2VucnlvdVwgOwor5r6E5piOID4gY2hvdW1laVwgOwor6KGG5pm6ID4gc2h1dWNoaVwgOwor5ZiJ56+AID4ga2FzZXRzdVwgOwor6KGM5pWwID4gZ3lvdXN1dVwgOwor5Zuz5byPID4genVzaGlraVwgOwor6KGM5pS/ID4gZ3lvdXNlaVwgOwor5oiQ6JmrID4gc2VpY2h1dVwgOwor5ry/5rayID4gc2hvdWVraVwgOwor5Zyw5Z2qID4gaml0c3Vib1wgOwor56mA6aGeID4ga29rdXJ1aVwgOwor5ryg54S2ID4gYmFrdXplblwgOwor56u26ImHID4ga3lvdXRlaVwgOwor6KO95L2cID4gc2Vpc2FrdVwgOwor56qB6YCyID4gdG9zc2hpblwgOwor5o+Q5L6bID4gdGVpa3lvdVwgOwor5rex6ZaRID4gc2hpbmthblwgOwor57Gz5Y+OID4gYmVpc2h1dVwgOwor56m/6YCaID4gc2VudHN1dVwgOwor5rib6YCfID4gZ2Vuc29rdVwgOwor6KGo5oOFID4gaHlvdWpvdVwgOwor56ym56+AID4gZnVzZXRzdVwgOwor5Zm05rWBID4gZnVucnl1dVwgOwor5om/55+lID4gc2hvdWNoaVwgOwor56iu6aasID4gdGFuZXVtYVwgOwor5reh6ZuqID4gYXdheXVraVwgOwor5ZWT6L+qID4ga2VpdGVraVwgOwor5o6l5Y+XID4gc2V0c3VqdVwgOwor5oyo5ou2ID4gYWlzYXRzdVwgOwor5oyr5oqYID4gemFzZXRzdVwgOwor5o6l5Y+OID4gc2Vzc2h1dVwgOwor5omL57axID4gdGFkenVuYVwgOwor6KGw5byxID4gc3VpamFrdVwgOwor5Zue5b+DID4ga2Fpc2hpblwgOwor5Zu95a++ID4ga29rdXRhaVwgOwor5ryB542yID4gZ3lva2FrdVwgOwor5Zue5b6pID4ga2FpZnVrdVwgOwor562U55SzID4gdG91c2hpblwgOwor5omJ57W1ID4gdG9iaXJhZVwgOwor5Zu95a6dID4ga29rdWhvdVwgOwor5ryB54yfID4gZ3lvcnlvdVwgOwor5Zu95a6aID4ga29rdXRlaVwgOwor5Zu95a6IID4ga29rdXNodVwgOwor56yR57SNID4gc2hvdW5vdVwgOwor5oqV55CDID4gdG91a3l1dVwgOwor5Zua5b25ID4gc2h1dWVraVwgOwor5ZSH6Z+zID4gc2hpbicnb25cIDsKK+aNt+WgsSA+IHNob3Vob3VcIDsKK+aOouWLnSA+IHRhbnNob3VcIDsKK+aKleeNhCA+IHRvdWdva3VcIDsKK+ihjOaIkCA+IGlraW5hcmlcIDsKK+a7keefsyA+IGthc3Nla2lcIDsKK+a4hemBqSA+IHNlaXRla2lcIDsKK+a6gOiFuSA+IG1hbnB1a3VcIDsKK+m8u+mqqCA+IGJpa290c3VcIDsKK+WcsOWPoyA+IGppZ3VjaGlcIDsKK+aJi+eukiA+IHRlYm91a2lcIDsKK+a8gueEtiA+IGh5b3V6ZW5cIDsKK+WUkOmWgCA+IGthcmFtb25cIDsKK+a2vOmiqCA+IHJ5b3VmdXVcIDsKK+a7nueVmSA+IHRhaXJ5dXVcIDsKK+aMh+aRmCA+IHNoaXRla2lcIDsKK+a2temkiiA+IGthbicneW91XCA7CivmirnmtoggPiBtYXNzaG91XCA7Civnq5zohLMgPiByeXV1bm91XCA7Civlm73lpKcgPiBrb2t1ZGFpXCA7CivnsbPkv5cgPiBiZWl6b2t1XCA7Civlm73lpJYgPiBrb2t1Z2FpXCA7CivmjpjliYogPiBrdXNzYWt1XCA7CivooZPlvowgPiBqdXRzdWdvXCA7Civlm73lo6sgPiBrb2t1c2hpXCA7Civoo4/lgbQgPiB1cmFnYXdhXCA7Civmv4Hlo7AgPiBkYW1pZ29lXCA7CivnsbPkvZwgPiBiZWlzYWt1XCA7Civmv4DlpIkgPiBnZWtpaGVuXCA7CivllLHpgZMgPiBzaG91ZG91XCA7CivllY/osqwgPiBtb25zZWtpXCA7CivmjJHmiKYgPiBjaG91c2VuXCA7Civlm73looMgPiBrb2treW91XCA7CivooajlsaQgPiBoeW91c291XCA7CivnqbrosLcgPiBrdXVrb2t1XCA7CivmiKbnuL4gPiBzZW5zZWtpXCA7Civmv4DlopcgPiBnZWtpem91XCA7Civmh4fopqogPiBrb25zaGluXCA7Civnq6/ntrEgPiBoYWR6dW5hXCA7Civmt7HpgaAgPiBzaGluJydlblwgOwor5riT6LC3ID4ga2Vpa29rdVwgOwor56+k5b+XID4gdG9rdXNoaVwgOwor6KOP5L2cID4gdXJhc2FrdVwgOwor5Zac6ImyID4ga2lzaG9rdVwgOwor6KOC5YK3ID4gcmVzc2hvdVwgOwor6Juu6KWfID4gYmFua2FyYVwgOwor57Gz5LitID4gYmVpY2h1dVwgOwor56uL6IW5ID4gcmlwcHVrdVwgOwor56iO6aGNID4gemVpZ2FrdVwgOwor5oub5p2lID4gc2hvdXJhaVwgOwor56u/56u5ID4gc2FvZGFrZVwgOwor5ryr5qW9ID4gbWFuZ2FrdVwgOwor5rer6YC4ID4gaW4nJ2l0c3VcIDsKK+aLmOadnyA+IGtvdXNva3VcIDsKK+epuuiqvyA+IGt1dWNob3VcIDsKK+eqgeinkiA+IHRva2tha3VcIDsKK+iZq+mhniA+IGNodXVydWlcIDsKK+aNuuWNsCA+IG5hdHN1aW5cIDsKK+ihhuW6tiA+IHNodXVzaG9cIDsKK+erueervyA+IHRha2V6YW9cIDsKK+WVj+iouiA+IG1vbnNoaW5cIDsKK+aLk+acrCA+IHRha3Vob25cIDsKK+a8gua1qiA+IGh5b3Vyb3VcIDsKK+aLoeaVoyA+IGtha3VzYW5cIDsKK+ibueiZqyA+IHlvdWNodXVcIDsKK+mLs+mLvCA+IGNodXVrb3VcIDsKK+epjei8iSA+IHNla2lzYWlcIDsKK+a1t+mzpSA+IGthaWNob3VcIDsKK+WbveWWqiA+IGtva3Vzb3VcIDsKK+WVhuirhyA+IHNob3VkYW5cIDsKK+epuuilsiA+IGt1dXNodXVcIDsKK+aIkOe4viA+IHNlaXNla2lcIDsKK+euhuajkiA+IGJlcmFib3VcIDsKK+WcqOS/lyA+IHphaXpva3VcIDsKK+aLseaJiyA+IGt5b3VzaHVcIDsKK+WWhOiJryA+IHplbnJ5b3VcIDsKK+ihkuWtpiA+IGdlbmdha3VcIDsKK+mLs+mHkSA+IGNodXVraW5cIDsKK+epuuihjCA+IGt1dWd5b3VcIDsKK+WcsOS4uyA+IGppbnVzaGlcIDsKK+WcsOS4rSA+IGNoaWNodXVcIDsKK+aIkOe0hCA+IHNlaXlha3VcIDsKK+Wbg+WtkCA+IGhheWFzaGlcIDsKK+engOm6lyA+IHNodXVyZWlcIDsKK+a/q+S9nCA+IHJhbnNha3VcIDsKK+ihl+WovCA+IGdhaXNob3VcIDsKK+WbveWQjSA+IGtva3VtZWlcIDsKK+WbveWPuCA+IGtva3VzaGlcIDsKK+WbveWPtyA+IGtva3Vnb3VcIDsKK+WbveWPsiA+IGtva3VzaGlcIDsKK+mMr+inkiA+IHNha2tha3VcIDsKK+WcqOS6rCA+IHphaWt5b3VcIDsKK+ihneWkqSA+IHNob3V0ZW5cIDsKK+euh+aciCA+IGthZ2V0c3VcIDsKK+Wcj+WGhSA+IGtlbicnbmFpXCA7CivpjK/oppogPiBzYWtrYWt1XCA7Civmi43mlbAgPiBoYWt1c3V1XCA7CivmvKLmnJ0gPiBrYW5jaG91XCA7CivnrqHmjowgPiBrYW5zaG91XCA7CivlnKjkuK0gPiB6YWljaHV1XCA7CivmvZzlv4MgPiBzZW5zaGluXCA7Civlm57lm70gPiBrYWlrb2t1XCA7CivmvZvlv4MgPiBzZW5zaGluXCA7CivooajlnKggPiBoeW91emFpXCA7Civmu7TmsLQgPiB0ZWtpc3VpXCA7CivmiZPnjocgPiBkYXJpdHN1XCA7Civpi7PpgKAgPiBjaHV1em91XCA7Civlm73li6IgPiBrb2t1c2VpXCA7Civlm5vlm70gPiBzaGlrb2t1XCA7Civlm73lirQgPiBrb2t1cm91XCA7Civmt7HorJ0gPiBzaGluc2hhXCA7Civmi53mib8gPiBoYWlzaG91XCA7Civmt7HorIAgPiBzaGluYm91XCA7Civlmq7lsI4gPiBreW91ZG91XCA7Civmv4Dli5UgPiBnZWtpZG91XCA7Civnq4vnsbMgPiByeXV1YmVpXCA7CivnrYvms6ggPiBraW5jaHV1XCA7Civmv4DlirEgPiBnZWtpcmVpXCA7CivmipHmraIgPiB5b2t1c2hpXCA7CivmvKLml48gPiBrYW56b2t1XCA7CivmuoDnpaggPiBtYW5weW91XCA7Civnr4DluqYgPiBzZXRzdWRvXCA7Civnpr3ps6UgPiBraW5jaG91XCA7CivmiLTnmb0gPiB0YWloYWt1XCA7Civmi5nmioAgPiBzZXRzdWdpXCA7CivmvIHmpa0gPiBneW9neW91XCA7CivmvJTmm7IgPiBlbmt5b2t1XCA7CivmtrLph48gPiBla2lyeW91XCA7Civom4fooI0gPiBkYWthdHN1XCA7Civlm73lhoUgPiBrb2t1bmFpXCA7CivpvI7pnakgPiB0ZWlrYWt1XCA7Civom5TomasgPiBrYWljaHV1XCA7Civlm73lhbggPiBrb2t1dGVuXCA7CivonYvnn7MgPiByb3VzZWtpXCA7Civnq5znpZ4gPiByeXV1amluXCA7CivmtojpmLIgPiBzaG91Ym91XCA7CivmtYHpupcgPiByeXV1cmVpXCA7Civnq6/nmoQgPiB0YW50ZWtpXCA7CivmuKnoibIgPiBvbnNob2t1XCA7Civom4fonY4gPiBkYWthdHN1XCA7Civlm73lgrUgPiBrb2t1c2FpXCA7CivmupbnlKggPiBqdW4nJ3lvdVwgOwor56m06JS1ID4gYW5hZ3VyYVwgOwor5ouN5omLID4gaGFrdXNodVwgOwor5raI6ZaRID4gc2hvdWthblwgOwor5omL54etID4gdGVzaG9rdVwgOwor5Zaq56WeID4gc291c2hpblwgOwor5Zub5ZGoID4gc2hpc2h1dVwgOwor5Zue5Y+OID4ga2Fpc2h1dVwgOwor566x5birID4gaGFrb3NoaVwgOwor6KGo5Y+3ID4gaHlvdWdvdVwgOwor6buE6bq7ID4gdHN1bmFzb1wgOwor6Jmr6YW4ID4gbXVzaGl6dVwgOwor5rqA55uuID4gbWFubW9rdVwgOwor5oud5b6pID4gaGFpZnVrdVwgOwor6ZCY5qW8ID4gc2hvdXJvdVwgOwor56uL56eLID4gcmlzc2h1dVwgOwor56eL6aKoID4gc2h1dWZ1dVwgOwor5oq85o26ID4gb3VuYXRzdVwgOwor5Zu95L2/ID4ga29rdXNoaVwgOwor5oub5b6FID4gc2hvdXRhaVwgOwor5rWm6aKoID4gdXJha2F6ZVwgOwor56m66Iy2ID4ga2FyYWNoYVwgOwor5Zu95L2TID4ga29rdXRhaVwgOwor56uc55y8ID4gcnl1dWdhblwgOwor5rW36Zm4ID4ga2FpcmlrdVwgOwor56iA6YeIID4ga2lzaGFrdVwgOwor56iO6L68ID4gemVpa29taVwgOwor6buS6a+bID4ga3Vyb2RhaVwgOwor56m66ImyID4gc29yYWlyb1wgOwor5oyZ5Zu9ID4ga3lva29rdVwgOwor5Zu95Li7ID4ga29rdXNodVwgOwor6KGw5YWGID4gc3VpY2hvdVwgOwor5Zu95LitID4ga3VuaWp1dVwgOwor56eL6ZycID4gc2h1dXNvdVwgOwor5ZaJ56ybID4gbm9kb2J1ZVwgOwor56eL6ZyWID4gc2h1dXJpblwgOwor6Juu57+SID4gYmFuc2h1dVwgOwor6buE6bOlID4ga291Y2hvdVwgOwor6KGM5ZWTID4gZ3lvdWtlaVwgOwor56eL6ZuoID4gYWtpc2FtZVwgOwor56m66IW5ID4ga3V1ZnVrdVwgOwor5ruL5q6WID4gamlzaG9rdVwgOwor6KGd5YuVID4gc2hvdWRvdVwgOwor5oy/5YWlID4gc291bnl1dVwgOwor5ZKM6aOfID4gd2FzaG9rdVwgOwor5oqc5pOiID4gYmF0dGVraVwgOwor5rqv5rqQID4gc2FrdWdlblwgOwor5oqb5pOyID4gaG91dGVraVwgOwor5ZWG6Ii5ID4gc2hvdXNlblwgOwor6Y2156m0ID4ga2FnaWFuYVwgOwor5oyv5YuVID4gc2hpbmRvdVwgOwor6J+75be7ID4gYXJpbWFraVwgOwor5om25qSNID4gZnVzaG9rdVwgOwor5oqE5pysID4gc2hvdWhvblwgOwor5oyH5ZynID4gc2hpYXRzdVwgOwor5oqV5pOyID4gdG91dGVraVwgOwor5oyH5ZuzID4gc2FzaGl6dVwgOwor5rq65rC0ID4gZGVraXN1aVwgOwor56+J5ZywID4gdHN1a2lqaVwgOwor6buS6aKoID4ga29rdWZ1dVwgOwor6J2L54etID4gcm91c29rdVwgOwor5rq65q27ID4gZGVraXNoaVwgOwor5ouZ5a6FID4gc2V0dGFrdVwgOwor5omL5rKiID4gc2h1dGFrdVwgOwor5oOj6aCYID4gc291cnlvdVwgOwor56aB6bOlID4ga2luY2hvdVwgOwor5oqR5o+aID4geW9rdXlvdVwgOwor5Zua5Lq6ID4gc2h1dWppblwgOwor5riF6IG0ID4gc2VpY2hvdVwgOwor56yK5rOVID4gemFydWhvdVwgOwor5oeH56+kID4ga29udG9rdVwgOwor56u25ryVID4ga3lvdXNvdVwgOwor5rez6ImvID4ganVucnlvdVwgOwor5rib57WmID4gZ2Vua3l1dVwgOwor6Y+W5q66ID4gb3VzYXRzdVwgOwor5ZSQ6JavID4ga2FyYWltb1wgOwor56iO6Kq/ID4gemVpY2hvdVwgOwor56yR5q2iID4gc2hvdXNoaVwgOwor6Jit6YuzID4gcmFuY2h1dVwgOwor5ouh5aSnID4ga2FrdWRhaVwgOwor6YqF6ZC4ID4gZG91dGFrdVwgOwor5ouN5a2QID4gaHlvdXNoaVwgOwor6YqF6Y+hID4gZG91a3lvdVwgOwor5rW46YCPID4gc2hpbnRvdVwgOwor562W5oimID4gc2FrdXNlblwgOwor5oiQ54afID4gc2VpanVrdVwgOwor5rqc5rGgID4gdGFtZWlrZVwgOwor5rWm6YeMID4gdXJhemF0b1wgOwor5rmv54aoID4geXVub3NoaVwgOwor5Zar54WZID4ga2l0c3VlblwgOwor5ZiJ5pelID4ga2FqaXRzdVwgOwor5rqA5r2uID4gbWFuY2hvdVwgOwor56ew6LObID4gc2hvdXNhblwgOwor5ZqH5ZqHID4ga2Fra2FrdVwgOwor5ZWG57WMID4gc2hvdWtlaVwgOwor5ouT5aSnID4gdGFrdWRhaVwgOwor5rqQ5rWBID4gZ2Vucnl1dVwgOwor56mO6ISxID4gZWlkYXRzdVwgOwor56qB56uvID4gdG9wcGFuYVwgOwor6KGM5L2TID4gZ3lvdXRhaVwgOwor5ryi5a2mID4ga2FuZ2FrdVwgOwor6buE6ZuAID4ga291amFrdVwgOwor5ZaA55ewID4ga2FrdXRhblwgOwor6by76KGAID4gaGFuYWRqaVwgOwor6Yyv57acID4gc2FrdXNvdVwgOwor5rex6ICVID4gc2hpbmtvdVwgOwor6KGT5LitID4ganV0Y2h1dVwgOwor5rS+6ZalID4gaGFiYXRzdVwgOwor5ZaE55SoID4gemVuJyd5b3VcIDsKK+ibn+ernCA+IGtvdXJ5b3VcIDsKK+a8huW3pSA+IHNoaWtrb3VcIDsKK+aGsueroCA+IGtlbnNob3VcIDsKK+m6u+mbgCA+IG1hemVqYW5cIDsKK+aIpuazgSA+IHNlbmt5b3VcIDsKK+a8geW4qyA+IHJ5b3VzaGlcIDsKK+evhuWIuyA+IHRlbmtva3VcIDsKK+ihhuS6uiA+IHNodXVqaW5cIDsKK+aJgOalrSA+IHNob2d5b3VcIDsKK+eptuernyA+IGt1a2t5b3VcIDsKK+WYsuW8hCA+IGNob3Vyb3VcIDsKK+aIr+atjCA+IHphcmV1dGFcIDsKK+igouWLlSA+IHNodW5kb3VcIDsKK+WUkOiHvCA+IGthcmF1c3VcIDsKK+a6gOa0siA+IG1hbnNodXVcIDsKK+a5vua1gSA+IHdhbnJ5dXVcIDsKK+WWhOeOiSA+IHplbmRhbWFcIDsKK+engemAmiA+IHNoaXRzdXVcIDsKK+eoruiLlyA+IHNodWJ5b3VcIDsKK+a1t+iziiA+IGthaXpva3VcIDsKK+eoruiKiyA+IHRhbmVpbW9cIDsKK+a5rua7hSA+IGlubWV0c3VcIDsKK+aIpuattCA+IHNlbnJla2lcIDsKK+aMh+WApCA+IHNhc2hpbmVcIDsKK+a1t+ixuSA+IGthaWh5b3VcIDsKK+a1t+ixoSA+IHNlaXVjaGlcIDsKK+eqrueKtiA+IGt5dXVqb3VcIDsKK+aKvOWjsiA+IG9zaGl1cmlcIDsKK+WTgeiplSA+IGhpbnB5b3VcIDsKK+aDqOmFtyA+IHphbmtva3VcIDsKK+aCqumjnyA+IGFrdWppa2lcIDsKK+ibrueahCA+IGJhbnRla2lcIDsKK+a3see0hSA+IHNoaW5rb3VcIDsKK+elnumrhCA+IHNoaW56dWlcIDsKK+iYh+mJhCA+IHNvdGV0c3VcIDsKK+etieW8tSA+IHRvdWNob3VcIDsKK+ifhOWxhSA+IGNoaWtreW9cIDsKK+aEmuiqrCA+IGd1c2V0c3VcIDsKK+aHuOa/gSA+IGtlbmRha3VcIDsKK+WVhuekviA+IHNob3VzaGFcIDsKK+mKg+i6qyA+IGp1dXNoaW5cIDsKK+a6neadvyA+IGRvYnVpdGFcIDsKK+a4heeniyA+IHNlaXNodXVcIDsKK+aEn+immiA+IGthbmtha3VcIDsKK+a4heemjyA+IHNlaWZ1a3VcIDsKK+a4m+ebiiA+IGdlbicnZWtpXCA7CivmuIXnpaUgPiBzZWlzaG91XCA7CivlmqLkuK0gPiBub3VjaHV1XCA7CivnpZ7ppYwgPiBzaGluc2VuXCA7Civpvo3npZ4gPiByeXV1amluXCA7Civnp5joqKMgPiBoaWtldHN1XCA7Civnqbrnmb0gPiBrdXVoYWt1XCA7CivmvZzkvI8gPiBzZW5wdWt1XCA7CivlmIbmga8gPiB0YW5zb2t1XCA7CivombnoibIgPiBuaWppaXJvXCA7CivnrZblrpogPiBzYWt1dGVpXCA7CivmtYHpgKMgPiByeXV1cmVuXCA7Civmta7oqqwgPiBmdXNldHN1XCA7CivnqY3nrpcgPiBzZWtpc2FuXCA7CivmgqrpmLsgPiB0c3V3YXJpXCA7Civmhrbnl4UgPiBva3VieW91XCA7CivmhaPnv5IgPiBrYW5zaHV1XCA7Civmt7HnqpMgPiBzaGluc291XCA7CivmiK/mm7IgPiBnaWt5b2t1XCA7CivmiYvmjowgPiBzaHVzaG91XCA7CivmgqPpm6MgPiBrYW4nJ25hblwgOwor5ouh5YWFID4ga2FrdWp1dVwgOwor56We6Z+7ID4gc2hpbicnaW5cIDsKK+epgOeyiSA+IGtva3VmdW5cIDsKK+WTqOiIjiA+IHNob3VzaGFcIDsKK+euoeWGhSA+IGthbicnbmFpXCA7Civpkb/kupUgPiBzYWt1c2VpXCA7CivllJDns7ggPiBrYXJhaXRvXCA7CivpiYTpjpogPiB0ZXR0c3VpXCA7Civnqbrnk7YgPiBrYXJhYmluXCA7CivmuoDmoKogPiBtYW5rYWJ1XCA7Civpi7zntKIgPiBrb3VzYWt1XCA7Civmi43li5UgPiBoYWt1ZG91XCA7CivmiYvmioQgPiBzaHVzaG91XCA7Civnp5jooZMgPiBoaWp1dHN1XCA7Civmu5HluK0gPiBrYXNzZWtpXCA7CivnpZ7pnIogPiBzaGlucmVpXCA7CivmiJDmpa0gPiBzZWlneW91XCA7Civom4vnmb0gPiB0YW5wYWt1XCA7CivlkajpgYogPiBzaHV1eXV1XCA7CivmgqDplbcgPiB5dXVjaG91XCA7CivllYbnlKggPiBzaG91eW91XCA7Civmu4XluqYgPiBtZXRzdWRvXCA7CivmuoDmm7QgPiBtYW56YXJhXCA7CivnrZblo6sgPiBzYWt1c2hpXCA7CivlkajovrogPiBzaHV1aGVuXCA7CivmiJDmoYIgPiBuYXJpa2VpXCA7Civmtbfom4cgPiB1bWloZWJpXCA7CivmtLvot68gPiBrYXRzdXJvXCA7Civpu5LosoIgPiBrdXJvdGVuXCA7CivpkJjlo7AgPiBzaG91c2VpXCA7Civmi5nkvZwgPiBzZXNzYWt1XCA7Civpiq3okbUgPiB6ZW5pYW9pXCA7CivmvIbllrAgPiBzaGlra3VpXCA7Civms6Lpn7MgPiBuYW1pb3RvXCA7CivnqJznt5ogPiByeW91c2VuXCA7Civnqq7msJEgPiBreXV1bWluXCA7CivmiY3lvrMgPiBzYWl0b2t1XCA7Civnq4vmoYggPiByaXRzdWFuXCA7Civpu5noqo0gPiBtb2t1bmluXCA7Civmhbbnpo8gPiBrZWlmdWt1XCA7CivlkbXosqwgPiBrYXNoYWt1XCA7CivnqbrniIYgPiBrdXViYWt1XCA7CivlkIPpqZogPiBiaWtrdXJpXCA7Civonb/luLMgPiBoYWljaG91XCA7Civnqq7mrbsgPiBreXV1c2hpXCA7CivlkITpp4UgPiBrYWt1ZWtpXCA7CivllYbnirYgPiBzaG91am91XCA7Civnp4vompUgPiBzaHV1c2FuXCA7CivmirzlhaUgPiBvc2hpaXJlXCA7Civmt7fnlKggPiBrb24nJ3lvdVwgOwor5rim5r2uID4gdXp1c2hpb1wgOwor6buZ6KaWID4gbW9rdXNoaVwgOwor6Jit6JmrID4gcmFuY2h1dVwgOwor6Yej6a2aID4gY2hvdWd5b1wgOwor5oiR5pa5ID4gd2FnYWhvdVwgOwor5ZCM6aGNID4gZG91Z2FrdVwgOwor56m054aKID4gYW5hZ3VtYVwgOwor5rWB6KqsID4gcnVzZXRzdVwgOwor5omA5b6XID4gc2hvdG9rdVwgOwor5rqc5oGvID4gdGFtZWlraVwgOwor5rex55SaID4gc2hpbmppblwgOwor5oGt6aCGID4ga3lvdWp1blwgOwor5ryP5Yi7ID4gcm91a29rdVwgOwor6Jap6ZW3ID4gc2F0Y2hvdVwgOwor5rWB6KiAID4gcnl1dWdlblwgOwor5ouF5Lu7ID4gdGFuJyduaW5cIDsKK+aEn+iIiCA+IGthbmt5b3VcIDsKK+a3oeeZvSA+IHRhbnBha3VcIDsKK+eri+aYpSA+IHJpc3NodW5cIDsKK+eqr+alrSA+IHlvdWd5b3VcIDsKK+aKnOWOuyA+IGJha2t5b3VcIDsKK+aKl+WRiiA+IGtvdWtva3VcIDsKK+a4qea1tCA+IG9uJyd5b2t1XCA7CivnpoHotrMgPiBraW5zb2t1XCA7CivmupbmgKUgPiBqdW5reXV1XCA7CivlkIPpn7MgPiBraXRzdW9uXCA7CivpiYTot68gPiB0ZXRzdXJvXCA7CivnpL7plbcgPiBzaGFjaG91XCA7CivnqbrmvKAgPiBrdXViYWt1XCA7CivlkITpnaIgPiBrYWt1bWVuXCA7Civpu5LooYAgPiBrdXJvY2hpXCA7CivmtojogJcgPiBzaG91bW91XCA7Civnq6PmiJAgPiBzaHVuc2VpXCA7CivmtJfotrMgPiBzZW5zb2t1XCA7Civpu5Lon7sgPiBrdXJvYXJpXCA7CivmhrbmuKwgPiBva3Vzb2t1XCA7CivmtYHooYwgPiByeXV1a291XCA7CivnqpLmrbsgPiBjaGlzc2hpXCA7Civph5Hpq5ggPiBraW5kYWthXCA7CivnrbrkvZMgPiBreW91dGFpXCA7CivlkITpmo4gPiBrYWt1a2FpXCA7CivlkKvph48gPiBnYW5yeW91XCA7Civnp4vojYkgPiBha2lrdXNhXCA7CivmiY3lraYgPiBzYWlnYWt1XCA7CivnpZ7pgZMgPiBzaGludG91XCA7CivlkL7ovKkgPiB3YWdhaGFpXCA7CivmhqTmv4AgPiBmdW5nZWtpXCA7Civmg4Xoqr8gPiBqb3VjaG91XCA7CivmhInoibIgPiB5dXNob2t1XCA7CivnqK7nm64gPiBzaHVtb2t1XCA7CivmuIXmv4EgPiBzZWlkYWt1XCA7CivnrZbli5UgPiBzYWt1ZG91XCA7CivlkajopqcgPiBzaHV1cmFuXCA7CivmuIXmvoQgPiBzZWljaG91XCA7CivmiYDlsZ4gPiBzaG96b2t1XCA7CivnrZblirEgPiBzYWt1cmVpXCA7CivmiKblvbkgPiBzZW4nJ2VraVwgOwor6JaE6ZuyID4gdXN1Z3Vtb1wgOwor6JaE6ZuqID4gdXN1eXVraVwgOwor56Wd6L6eID4gc2h1a3VqaVwgOwor5oqR5Yi2ID4geW9rdXNlaVwgOwor5oGL6aKoID4ga29pa2F6ZVwgOwor5ZWG5rivID4gc2hvdWtvdVwgOwor56We6Ly/ID4gbWlrb3NoaVwgOwor6JWB6bq7ID4gaXJha3VzYVwgOwor5riT5rWBID4ga2Vpcnl1dVwgOwor5rm/5oCnID4gc2hpc3NlaVwgOwor56ul5b+DID4gZG91c2hpblwgOwor5oiS5oWOID4ga2Fpc2hpblwgOwor5oqV5YWlID4gdG91bnl1dVwgOwor6bm/6L+9ID4gc2hpa2FvaVwgOwor56WW6L+wID4gc29qdXRzdVwgOwor5reL55eFID4gcmluYnlvdVwgOwor5oiK5oiMID4gYm9qdXRzdVwgOwor6Jas6YWSID4geWFrdXNodVwgOwor5ZGq6KGTID4ganVqdXRzdVwgOwor5Y+k6aGUID4gZnVydWdhb1wgOwor5rWF6JaEID4gc2VucGFrdVwgOwor5omL5aa7ID4gdGVkenVtYVwgOwor5re35r+BID4ga29uZGFrdVwgOwor6YeR6aGNID4ga2luZ2FrdVwgOwor6Ymk6JmrID4ga291Y2h1dVwgOwor5rWj6IW4ID4ga2FuY2hvdVwgOwor5riF5ra8ID4gc2VpcnlvdVwgOwor5oOo6JC9ID4gc2FucmFrdVwgOwor5ZWG5rOVID4gc2hvdWhvdVwgOwor5oWj55SoID4ga2FuJyd5b3VcIDsKK+mKheiHrSA+IGRvdXNodXVcIDsKK+eskeWjsCA+IHNob3VzZWlcIDsKK+iYiuiThCA+IHVuY2hpa3VcIDsKK+mKgOiJsiA+IGdpbicnaXJvXCA7Civpuqbop5IgPiBiYWtrYWt1XCA7CivmiJLlv4MgPiBrYWlzaGluXCA7CivmipXkv6EgPiB0b3VzaGluXCA7CivmuIXmtYEgPiBzZWlyeXV1XCA7Civnp4HohbkgPiBzaGlmdWt1XCA7CivmuoDluYUgPiBtYW5wdWt1XCA7Civlj7DplqMgPiBkYWlrYWt1XCA7CivmuoDluK0gPiBtYW5zZWtpXCA7Civmib/liY0gPiBzaG91emVuXCA7Civllqzlv5cgPiBreW91c2hpXCA7Civmt7Hmva0gPiBzaGludGFuXCA7Civlj43pp4EgPiBoYW5wYWt1XCA7Civnq6Plt6UgPiBzaHVua291XCA7CivmuoDlt54gPiBtYW5zaHV1XCA7Civllqrlv4MgPiBzb3VzaGluXCA7CivlkIzph48gPiBkb3VyeW91XCA7CivnpZ3os4AgPiBzaHVrdWdhXCA7CivmgqroqZUgPiBha3VoeW91XCA7Civlk4TnrJEgPiBrb3VzaG91XCA7CivmgqroqLMgPiBha3V5YWt1XCA7CivmgKXpqLAgPiBreXV1dG91XCA7Civolarpm5EgPiBidXphdHN1XCA7Civpu5LojLYgPiBrdXJvY2hhXCA7CivnqI7nm64gPiB6ZWltb2t1XCA7CivmipjkuK0gPiBzZXRjaHV1XCA7Civnp5jntZAgPiBoaWtldHN1XCA7CivlkIzpg7cgPiBkb3VreW91XCA7Civmh7LmiJIgPiBjaG91a2FpXCA7CivnpLrpgZQgPiBqaXRhdHN1XCA7Civph43pmb0gPiBjaG91eW91XCA7Civmt7Hmt7UgPiBzaGluJydlblwgOwor5oeQ5penID4ga2Fpa3l1dVwgOwor562Q5L2TID4ga3lvdXRhaVwgOwor6JmO56m0ID4ga29rZXRzdVwgOwor5ZaY5oGvID4gemVuc29rdVwgOwor5Y+N6Z+/ID4gaGFua3lvdVwgOwor6Y6u5a6aID4gY2hpbnRlaVwgOwor5rex5rW3ID4gc2hpbmthaVwgOwor5ZWG5qipID4gc2hvdWtlblwgOwor562S5LqVID4gdHN1dHN1aVwgOwor5rex5rWFID4gc2hpbnNlblwgOwor5ZOy55CGID4gdGV0c3VyaVwgOwor6YiN6LazID4gZG9uc29rdVwgOwor56m65qG2ID4ga2FyYW9rZVwgOwor6JaE6YiNID4gdXN1bm9yb1wgOwor5oey5oKqID4gY2hvdWFrdVwgOwor56m65qCqID4ga3V1a2FidVwgOwor6Juu5pePID4gYmFuem9rdVwgOwor6JWJ6aKoID4gc2hvdWZ1dVwgOwor56yb5ZC5ID4gZnVlZnVraVwgOwor5rOV6LqrID4gaG9zc2hpblwgOwor56uc5a6uID4gcnl1dWd1dVwgOwor56Wd6KiAID4gc2h1dWdlblwgOwor6Y+h5Y+wID4ga3lvdWRhaVwgOwor5oGl6L6xID4gY2hpam9rdVwgOwor5rKI6Z2ZID4gY2hpbnNlaVwgOwor5oey5b25ID4gY2hvdWVraVwgOwor5ZaE5oKqID4gemVuJydha3VcIDsKK+a7nuS6rCA+IHRhaWt5b3VcIDsKK+mHjemOriA+IGp1dWNoaW5cIDsKK+WQjei3oSA+IG1laXNla2lcIDsKK+aApemboyA+IGt5dXVuYW5cIDsKK+iWhOmBhyA+IGhha3VndXVcIDsKK+WPgumbhiA+IHNhbnNodXVcIDsKK+a3oeaziiA+IHRhbnBha3VcIDsKK+aJi+WPoyA+IHRlZ3VjaGlcIDsKK+ayiOmZjSA+IGNoaW5rb3VcIDsKK+a1uOekvCA+IHNoaW5yZWlcIDsKK+WRqOiIqiA+IHNodXVrb3VcIDsKK+WWhOW/gyA+IHplbnNoaW5cIDsKK+WWhOW+syA+IHplbnRva3VcIDsKK+aJk+WKmyA+IGRhcnlva3VcIDsKK+a3q+assiA+IGluJyd5b2t1XCA7CivpioDntJkgPiBnaW5nYW1pXCA7CivpiLTomK0gPiBzdXp1cmFuXCA7CivmiKbln58gPiBzZW4nJ2lraVwgOwor5ZCf6KqmID4gZ2luc2hvdVwgOwor56m25piOID4ga3l1dW1laVwgOwor5ZOB55uuID4gaGlubW9rdVwgOwor6Yac6aGeID4gc2h1dXJ1aVwgOwor6b2y5q2vID4gbXVzaGliYVwgOwor5Y+s6YKEID4gc2hvdWthblwgOwor5rOo6KejID4gY2h1dWthaVwgOwor5Y+v6YCGID4ga2FneWFrdVwgOwor5oaC5qydID4geXV1dXRzdVwgOwor6YqF566UID4gZG91aGFrdVwgOwor5rOo6KaWID4gY2h1dXNoaVwgOwor6YeN6YePID4ganV1cnlvdVwgOwor5oim5Zu9ID4gc2VuZ29rdVwgOwor5omA5Y+OID4gc2hvc2h1dVwgOwor5oSb552AID4gYWljaGFrdVwgOwor6YiN6KeSID4gZG9ua2FrdVwgOwor6bqm6Iy2ID4gbXVnaWNoYVwgOwor6buS57eaID4ga29rdXNlblwgOwor5oSa55u0ID4gZ3VjaG9rdVwgOwor6YqA566UID4gZ2lucGFrdVwgOwor6Y+h5YOPID4ga3lvdXpvdVwgOwor6Jek6ImyID4gZnVqaWlyb1wgOwor5Y+y6LmfID4gc2hpc2VraVwgOwor5oi45Y+jID4gdG9ndWNoaVwgOwor56m65o+aID4ga2FyYWFnZVwgOwor6YqA56ybID4gZ2ludGVraVwgOwor5rm/5ZywID4gc2hpdGNoaVwgOwor5rW355u4ID4ga2Fpc2hvdVwgOwor56ys5LiAID4gZGFpaWNoaVwgOwor5riF5pawID4gc2Vpc2hpblwgOwor5oGt6KyZID4ga3lvdWtlblwgOwor6YeO6YGTID4gbm9taWNoaVwgOwor5ZSQ5q2MID4ga2FyYXV0YVwgOwor5ZCM6Kq/ID4gZG91Y2hvdVwgOwor5Y+y6LehID4gc2hpc2VraVwgOwor6be56Zq8ID4geW91c2h1blwgOwor56u25ZCIID4ga3lvdWdvdVwgOwor5ZCN6KizID4gbWVpeWFrdVwgOwor5Y+O6YeRID4gc2h1dWtpblwgOwor5ZCI6Kq/ID4gZ291Y2hvdVwgOwor5Y+j6LyqID4ga3VjaGl3YVwgOwor5rez5py0ID4ganVuYm9rdVwgOwor6buE57eRID4gb3VyeW9rdVwgOwor5b+g6a2CID4gY2h1dWtvblwgOwor5ZCE6KuWID4ga2FrdXJvblwgOwor5ra45riHID4ga29rYXRzdVwgOwor5ZCI6KmVID4gZ2FwcHlvdVwgOwor5Y+Z6L+wID4gam9qdXRzdVwgOwor5rex5pu0ID4gc2hpbmtvdVwgOwor5rSX6ISzID4gc2VuJydub3VcIDsKK+aIuOWIpSA+IGtvYmV0c3VcIDsKK+elnuiRrCA+IHNoaW5zb3VcIDsKK+eri+WgtCA+IHRhY2hpYmFcIDsKK+WUkOanmCA+IGthcmF5b3VcIDsKK+m6u+e4hCA+IGFzYW5hd2FcIDsKK+m2uum0kiA+IHNla2lyZWlcIDsKK+aCquiHrSA+IGFrdXNodXVcIDsKK+epjeacqCA+IHRzdW1pa2lcIDsKK+WPpOi3oSA+IGZ1cnVhdG9cIDsKK+a6luWJhyA+IGp1bnNva3VcIDsKK+aIpuWPiyA+IHNlbicneXV1XCA7CivmtbTnlKggPiB5b2t1eW91XCA7CivlkJDooYAgPiB0b2tldHN1XCA7CivpiI7omasgPiBrb3VjaHV1XCA7CivoloTorJ0gPiBoYWt1c2hhXCA7Civpjq7lj7AgPiBjaGluZGFpXCA7CivmsojphZQgPiBjaGluc3VpXCA7CivllYbmiY0gPiBzaG91c2FpXCA7Civpu5nnpbcgPiBtb2t1dG91XCA7Civph5HotaQgPiBraW4nJ2FrYVwgOwor5omA5L+hID4gc2hvc2hpblwgOwor5ZWG5oimID4gc2hvdXNlblwgOwor56uL5Zu9ID4gcmlra29rdVwgOwor6buZ56S8ID4gbW9rdXJlaVwgOwor6buZ56S6ID4gbW9rdXNoaVwgOwor6JqV5qWtID4gc2FuZ3lvdVwgOwor5oim5YudID4gc2Vuc2hvdVwgOwor5Y+b6LehID4gaGFuc2VraVwgOwor5oCd6YePID4gc2hpcnlvdVwgOwor5omL5LitID4gc2h1Y2h1dVwgOwor5raI54eIID4gc2hvdXRvdVwgOwor56We6IuRID4gc2hpbicnZW5cIDsKK+aJi+S4iyA+IHRlc2hpdGFcIDsKK+WPjui8iSA+IHNodXVzYWlcIDsKK+aApemBvSA+IGt5dXVreW9cIDsKK+engeeahCA+IHNoaXRla2lcIDsKK+a6gOWNkyA+IG1hbnRha3VcIDsKK+aApemAoCA+IGt5dXV6b3VcIDsKK+aApemAnSA+IGt5dXVzZWlcIDsKK+a4puW3uyA+IHV6dW1ha2lcIDsKK+a1t+eMqyA+IHVtaW5la29cIDsKK+aEmueJqSA+IGd1YnV0c3VcIDsKK+mHjeiyrCA+IGp1dXNla2lcIDsKK+m8u+axlyA+IGhhbmFhc2VcIDsKK+WPjei6qyA+IGhhbnNoaW5cIDsKK+aApemAgSA+IGt5dXVzb3VcIDsKK+aIkuWRiiA+IGthaWtva3VcIDsKK+WWhOWlsyA+IHplbicnbnlvXCA7CivnpZ7oiIggPiBtaWtvc2hpXCA7Civmgqrnv5IgPiBha3VzaHV1XCA7Civlj6zoq4sgPiBzaG91c2VpXCA7CivpiZvnrYYgPiBlbnBpdHN1XCA7Civlj5vos4ogPiBoYW56b2t1XCA7CivmiJLlkI0gPiBrYWlteW91XCA7CivljrPphbcgPiBnZW5rb2t1XCA7Civnq6Plip8gPiBzaHVua291XCA7CivllJDmnJ0gPiB0b3VjaG91XCA7Civmtojnga8gPiBzaG91dG91XCA7Civlv4PprYIgPiBzaGlua29uXCA7CivljoTpm6MgPiB5YWt1bmFuXCA7CivmiL/kuK0gPiBib3VjaHV1XCA7Civlj43ot7MgPiBoYW5jaG91XCA7CivmtbfniZsgPiBrYWlneXV1XCA7CivpibHnn7MgPiBrb3VzZWtpXCA7CivolqzojqIgPiB5YWtreW91XCA7CivpvLvmrYwgPiBoYW5hdXRhXCA7CivmhpHmi6AgPiBoeW91a3lvXCA7CivpiYTntKIgPiB0ZXNzYWt1XCA7Civlv4Ppq4QgPiBzaGluenVpXCA7CivmgKXou6IgPiBreXV1dGVuXCA7Civlj43otoogPiBoYW5ldHN1XCA7CivlkLnogbQgPiBmdWljaG91XCA7Civmua/lj6MgPiB5dWd1Y2hpXCA7CivmiKblgrcgPiBzZW5zaG91XCA7Civlj6ToqqwgPiBrb3NldHN1XCA7CivmsLTpo7QgPiBtaXp1YW1lXCA7CivlkI3olqwgPiBtZWl5YWt1XCA7CivnqL/mlpkgPiBrb3VyeW91XCA7CivljbPpoYwgPiBzb2t1ZGFpXCA7Civlv6DpnIogPiBjaHV1cmVpXCA7Civlj6PoqqwgPiBrdXpldHN1XCA7Civlj6PoqqYgPiBrb3VzaG91XCA7CivolqzojYkgPiB5YWt1c291XCA7CivnqK7mnb8gPiB0YW5laXRhXCA7CivomavmsJcgPiBtdXNoaWtlXCA7CivnqbrluK0gPiBrdXVzZWtpXCA7CivmuKzlrpogPiBzb2t1dGVpXCA7CivmtYHnoIIgPiByeXV1c2hhXCA7Civmub7lhoUgPiB3YW4nJ25haVwgOwor5oSV54S2ID4gZ2FrdXplblwgOwor56iu5pysID4gdGFuZWhvblwgOwor56We6IGWID4gc2hpbnNlaVwgOwor5Y+O6LOEID4gc2h1dXdhaVwgOwor5Y+N6LOKID4gaGFuem9rdVwgOwor5oSf5r+AID4ga2FuZ2VraVwgOwor6ba06aaWID4ga2FrdXNodVwgOwor6Jmr5q2vID4gbXVzaGliYVwgOwor5ZCE6JepID4ga2FrdWhhblwgOwor5rSq56mNID4ga291c2VraVwgOwor56u25LqJID4ga3lvdXNvdVwgOwor5Y+j6KeSID4ga291a2FrdVwgOwor56qu5ZywID4ga3l1dWNoaVwgOwor5ZWG5bqXID4gc2hvdXRlblwgOwor5rC36Z2iID4gaHlvdW1lblwgOwor6YeN6KizID4ganV1eWFrdVwgOwor6YiN6ImyID4gbmliaWlyb1wgOwor5Y2D6bOlID4gY2hpZG9yaVwgOwor5Y+Z6KqsID4gam9zZXRzdVwgOwor5b+X6ZuGID4gc2hpc2h1dVwgOwor56qq5ZywID4ga3Vib2NoaVwgOwor5oaU5oK0ID4gc2hvdXN1aVwgOwor5rex5oWuID4gc2hpbnJ5b1wgOwor56aP56WJID4gZnVrdXNoaVwgOwor56aO56WlID4gdGVpc2hvdVwgOwor5rCX6aqoID4ga2lrb3RzdVwgOwor56iu5pePID4gc2h1em9rdVwgOwor6YeM6KaqID4gc2F0b295YVwgOwor5ZWG5belID4gc2hvdWtvdVwgOwor5rib5bCRID4gZ2Vuc2hvdVwgOwor6buS55ejID4ga3Vyb2F6YVwgOwor6YaL6YW4ID4gc2FrdXNhblwgOwor6bqm56ybID4gbXVnaWJ1ZVwgOwor5ZCb6IejID4ga3Vuc2hpblwgOwor5rSe56m0ID4gaG9yYWFuYVwgOwor5oe45ZCKID4ga2VuY2hvdVwgOwor6YqD54yfID4ganV1cnlvdVwgOwor5b+D6aGYID4gc2hpbmdhblwgOwor5rer5oW+ID4gaW4nJ3lva3VcIDsKK+a1uOa9pCA+IHNoaW5qdW5cIDsKK+a6gOS9nCA+IG1hbnNha3VcIDsKK+WPpOihgCA+IGZ1cnVjaGlcIDsKK+aGguaImiA+IHl1dXNla2lcIDsKK+WQq+e+niA+IGdhbnNodXVcIDsKK+epuuWwhiA+IGt1dXNob3VcIDsKK+W/g+mgrSA+IHNoaW50b3VcIDsKK+WUkOaPmiA+IGthcmFhZ2VcIDsKK+aIpuS4rSA+IHNlbmNodXVcIDsKK+awtOmZuCA+IHN1aXJpa3VcIDsKK+WNoOmgmCA+IHNlbnJ5b3VcIDsKK+a1uOa8rCA+IHNoaW5zaGlcIDsKK+W/g+mfsyA+IHNoaW4nJ29uXCA7Civlkajnn6UgPiBzaHV1Y2hpXCA7CivllZPlraYgPiBrZWlnYWt1XCA7CivolqvogrIgPiBrdW4nJ2lrdVwgOwor5oSB54S2ID4gc2h1dXplblwgOwor6buE55m9ID4ga291aGFrdVwgOwor5Y+N6Ki8ID4gaGFuc2hvdVwgOwor5rWB55SoID4gcnl1dXlvdVwgOwor5rqA5LqGID4gbWFucnlvdVwgOwor5rWB55SjID4gcnl1dXphblwgOwor56mN5oKqID4gc2VraWFrdVwgOwor6Ymb55u0ID4gZW5jaG9rdVwgOwor5oKq562WID4gYWt1c2FrdVwgOwor6bqm56eLID4gbXVnaWFraVwgOwor6YeR6J6NID4ga2luJyd5dXVcIDsKK+W/hemcgCA+IGhpdHN1anVcIDsKK+aGguaEgSA+IHl1dXNodXVcIDsKK+elnue1jCA+IHNoaW5rZWlcIDsKK+W/g+mciiA+IHNoaW5yZWlcIDsKK+aEn+azoyA+IGthbmt5dXVcIDsKK+WPjuimpyA+IHNodXVyYW5cIDsKK+WQjOiInyA+IGRvdXNodXVcIDsKK+aDh+edpiA+IHRvbmJva3VcIDsKK+a1t+a3sSA+IGthaXNoaW5cIDsKK+ibruWigyA+IGJhbmt5b3VcIDsKK+WPjeimhiA+IGhhbnB1a3VcIDsKK+emj+ebuCA+IGZ1a3Vzb3VcIDsKK+eqgeWmgiA+IHRvdHN1am9cIDsKK+a2suaZtiA+IGVraXNob3VcIDsKK+WQjOiFuSA+IGRvdWZ1a3VcIDsKK+a1t+a1gSA+IGthaXJ5dXVcIDsKK+WQhOiIrCA+IGtha3VoYW5cIDsKK+a4rOWcsCA+IHNva3VjaGlcIDsKK+aGguW/gyA+IHl1dXNoaW5cIDsKK+epjeW8iiA+IHNla2loZWlcIDsKK+iZmualrSA+IGt5b2d5b3VcIDsKK+ayueiPnCA+IGFidXJhbmFcIDsKK+WNiumhjSA+IGhhbmdha3VcIDsKK+axuuitsCA+IGtldHN1Z2lcIDsKK+mJhOefsyA+IHRlc3Nla2lcIDsKK+W/q+mBqSA+IGthaXRla2lcIDsKK+epjeW5tCA+IHNla2luZW5cIDsKK+a1uOawtCA+IHNoaW5zdWlcIDsKK+mFt+mBhyA+IGtva3VndXVcIDsKK+enmOaxuiA+IGhpa2V0c3VcIDsKK+W/q+mAnyA+IGthaXNva3VcIDsKK+m7meeEtiA+IG1va3VuZW5cIDsKK+mFqumFuCA+IHJha3VzYW5cIDsKK+elnuerpSA+IHNoaW5kb3VcIDsKK+mHieiWrCA+IHl1dXlha3VcIDsKK+WUseWwjiA+IHNob3Vkb3VcIDsKK+WRiuefpSA+IGtva3VjaGlcIDsKK+aApeihjCA+IGt5dXVrb3VcIDsKK+WVhuWkpyA+IHNob3VkYWlcIDsKK+a3seWxpCA+IHNoaW5zb3VcIDsKK+WVhuWjsiA+IHNob3ViYWlcIDsKK+aBi+iNiSA+IGtvaWd1c2FcIDsKK+aFtuW8lCA+IGtlaWNob3VcIDsKK+mFoumFuCA+IHNha3VzYW5cIDsKK+axgumBkyA+IGt5dXVkb3VcIDsKK+a1puazoiA+IHVyYW5hbWlcIDsKK+iWrOexoCA+IHlha3Vyb3VcIDsKK+a4ieWkliA+IHNob3VnYWlcIDsKK+m7kueCuSA+IGtva3V0ZW5cIDsKK+m7kueCrSA+IGtva3V0YW5cIDsKK+awtOmHjyA+IHN1aXJ5b3VcIDsKK+epuuWcpyA+IGt1dWF0c3VcIDsKK+eni+awtCA+IHNodXVzdWlcIDsKK+WPs+iFlSA+IG1pZ2l1ZGVcIDsKK+WPo+iMtiA+IGt1Y2hpamFcIDsKK+WTgeagvCA+IGhpbmtha3VcIDsKK+W+kumjnyA+IHRvc2hva3VcIDsKK+mFqui+siA+IHJha3Vub3VcIDsKK+iWhOiCiSA+IHVzdW5pa3VcIDsKK+WPrOiHtCA+IHNob3VjaGlcIDsKK+WMl+muriA+IGhva3VzZW5cIDsKK+m7tOavkiA+IGJhaWRva3VcIDsKK+m7hOeGnyA+IGtvdWp1a3VcIDsKK+WRqueJqSA+IGp1YnV0c3VcIDsKK+W/q+i2syA+IGthaXNva3VcIDsKK+WPjuiUtSA+IHNodXV6b3VcIDsKK+WPpOiJsiA+IGtvc2hva3VcIDsKK+a1tOanvSA+IHlva3Vzb3VcIDsKK+a2vOaEnyA+IHJ5b3VrYW5cIDsKK+mHkeiJsiA+IGtvbmppa2lcIDsKK+mFkumHjyA+IHNodXJ5b3VcIDsKK+aFouW/gyA+IG1hbnNoaW5cIDsKK+WQjOe0miA+IGRvdWt5dXVcIDsKK+WOn+iouyA+IGdlbmNodXVcIDsKK+aEgeatjiA+IHNodXV0YW5cIDsKK+WPo+iHrSA+IGtvdXNodXVcIDsKK+Wah+OAhSA+IGtha2tha3VcIDsKK+aCqueXhyA+IGFrdXNob3VcIDsKK+aCqueXhSA+IGFrdWJ5b3VcIDsKK+WMlumqqCA+IGtha290c3VcIDsKK+mHjOiKiyA+IHNhdG9pbW9cIDsKK+mGnOihjCA+IHNodXVrb3VcIDsKK+WTqOaIkiA+IHNob3VrYWlcIDsKK+WPjeiQvSA+IGhhbnJha3VcIDsKK+WNiumQmCA+IGhhbnNob3VcIDsKK+iWrOeoriA+IHlha3VzaHVcIDsKK+WPo+iFuSA+IGtvdWZ1a3VcIDsKK+W/g+mFlCA+IHNoaW5zdWlcIDsKK+W/g+mFjSA+IHNoaW5wYWlcIDsKK+emgeeNhCA+IGtpbmdva3VcIDsKK+awt+i8qiA+IGh5b3VyaW5cIDsKK+aEn+acjSA+IGthbnB1a3VcIDsKK+avkumtmiA+IGRva3VneW9cIDsKK+emgeeMnyA+IGtpbnJ5b3VcIDsKK+mHjeiHoyA+IGp1dXNoaW5cIDsKK+WWhOS6uiA+IHplbicnbmluXCA7CivlkLjnm6QgPiBreXV1YmFuXCA7Civom67li4cgPiBiYW4nJ3l1dVwgOwor5rex5aWlID4gc2hpbicnb3VcIDsKK+WQhOe0mSA+IGtha3VzaGlcIDsKK+engeassiA+IHNoaXlva3VcIDsKK+m5v+egpiA+IHJva3VzYWlcIDsKK+elieemjyA+IHNoaWZ1a3VcIDsKK+WPm+iHoyA+IGhhbnNoaW5cIDsKK+ekvueroCA+IHNoYXNob3VcIDsKK+eqruS5jyA+IGt5dXVib3VcIDsKK+a1uOafkyA+IHNoaW5zZW5cIDsKK+mLs+W3pSA+IGNodXVrb3VcIDsKK+a3seWknCA+IHNoaW4nJ3lhXCA7Civnorroqo0gPiBrYWt1bmluXCA7CivmuJvlj44gPiBnZW5zaHV1XCA7CivolqznpLwgPiB5YWt1cmVpXCA7CivpjKjlnLAgPiBieW91Y2hpXCA7CivoloTnuIEgPiB1c3ViZXJpXCA7CivmsrvnuL4gPiBjaGlzZWtpXCA7CivmtojmlaMgPiBzaG91c2FuXCA7CivnpajnlLAgPiBoeW91ZGVuXCA7CivnorroqIAgPiBrYWt1Z2VuXCA7CivoloTntbkgPiB1c3VnaW51XCA7Civlv6voq74gPiBrYWlkYWt1XCA7CivljJfpoqggPiBob2t1ZnV1XCA7CivoloTntaYgPiBoYWtreXV1XCA7Civph43ogbQgPiBqdXVjaG91XCA7CivllYblk4EgPiBzaG91aGluXCA7Civlv6voqr8gPiBrYWljaG91XCA7Civpipjmn4QgPiBtZWlnYXJhXCA7CivmgqrnjokgPiBha3VkYW1hXCA7Civnp5jmm7IgPiBoaWt5b2t1XCA7CivoloTntJkgPiB1c3VnYW1pXCA7CivoloTntIUgPiB1c3ViZW5pXCA7Civnp7Dmj5ogPiBzaG91eW91XCA7Civok5rphbggPiBzaHV1c2FuXCA7CivmuIvlkbMgPiBzaGlidW1pXCA7CivljZfpgLIgPiBuYW5zaGluXCA7Civpu5nmraIgPiBtb2t1c2hpXCA7CivpipjmnKggPiBtZWlib2t1XCA7CivpibHmr5IgPiBrb3Vkb2t1XCA7CivlkI3np7AgPiBtZWlzaG91XCA7CivllYblj7cgPiBzaG91Z291XCA7CivmgKjoibIgPiBlbnNob2t1XCA7CivmtYHmsZcgPiByeXV1a2FuXCA7CivljJfpnaIgPiBob2t1bWVuXCA7CivmgonnmoYgPiBzaGlra2FpXCA7CivmtYHmsLQgPiByeXV1c3VpXCA7CivnqoHlhYggPiB0b3NzYWtpXCA7CivmtLvms4EgPiBrYWtreW91XCA7Civph4jnvqkgPiBzaGFrdWdpXCA7CivlvqnphY0gPiBmdWt1aGFpXCA7Civlv6DoqqAgPiBjaHV1c2VpXCA7Civljp/omasgPiBnZW5jaHV1XCA7CivlkITnqK4gPiBrYWt1c2h1XCA7Civlj7LnsY0gPiBzaGlzZWtpXCA7CivlkInnpaUgPiBraXNzaG91XCA7CivnoavphbggPiByeXV1c2FuXCA7Civmh5DkuK0gPiBrYWljaHV1XCA7CivljZjouqsgPiB0YW5zaGluXCA7CivlvLHpvaIgPiBqYWt1cmVpXCA7CivphK3ph40gPiB0ZWljaG91XCA7Civlv6DoqIAgPiBjaHV1Z2VuXCA7Civms6Hnm5sgPiBhd2Ftb3JpXCA7CivljJfpmZAgPiBob2t1Z2VuXCA7CivljYfpgbcgPiBzaG91c2VuXCA7Civnp4vmmbQgPiBha2liYXJlXCA7CivnqbTlh7kgPiBhbmFib2tvXCA7Civph5HntrIgPiBrYW5hYW1pXCA7Civlj7fnrJsgPiBnb3V0ZWtpXCA7Civom4flj6MgPiBqYWd1Y2hpXCA7Civpu5LmqoAgPiBrb2t1dGFuXCA7Civmt5HlpbMgPiBzaHVrdWpvXCA7CivmhoLlm70gPiB5dXVrb2t1XCA7CivmtJfmv68gPiBzZW50YWt1XCA7CivlkITnpL4gPiBrYWt1c2hhXCA7Civlj4znv7wgPiBzb3V5b2t1XCA7CivljYrovrIgPiBoYW4nJ25vdVwgOwor56aB5ryBID4ga2lucnlvdVwgOwor5Y+j57SEID4ga291eWFrdVwgOwor5riF5YudID4gc2Vpc2hvdVwgOwor6YiN55ebID4gZG9udHN1dVwgOwor56eB5pyNID4gc2hpZnVrdVwgOwor5Y+j57OnID4ga291cnlvdVwgOwor6YeR57SNID4ga2luJydub3VcIDsKK+WMl+mWgCA+IGtpdGFtb25cIDsKK+WQuOeJqSA+IHN1aW1vbm9cIDsKK+WOmuiWhCA+IGtvdWhha3VcIDsKK+mJsealrSA+IGtvdWd5b3VcIDsKK+WNgemAsiA+IGppc3NoaW5cIDsKK+iWrOeUqCA+IHlha3V5b3VcIDsKK+awuOiooyA+IGVpa2V0c3VcIDsKK+epjeWWhCA+IHNla2l6ZW5cIDsKK+mKgOadjyA+IGdpbicnbmFuXCA7CivmuKHku48gPiB0b2Z1dHN1XCA7CivnoZ3phbggPiBzaG91c2FuXCA7Civno4rokL0gPiByYWlyYWt1XCA7CivomZrlv4MgPiBreW9zaGluXCA7CivmuJvkvZwgPiBnZW5zYWt1XCA7CivljYrouqsgPiBoYW5zaGluXCA7Civmg4Xms4EgPiBqb3VreW91XCA7CivmtJfmu4wgPiBzZW5kZWtpXCA7CivmsLfop6MgPiBoeW91a2FpXCA7CivlkI3nm64gPiBtZWltb2t1XCA7Civlj6Xnr4AgPiBrdXNldHN1XCA7CivlkIznnIEgPiBkb3VzaG91XCA7CivmtKXms6IgPiB0c3VuYW1pXCA7Civlj47nua0gPiBzaHV1a2VuXCA7Civms5XnmoQgPiBob3V0ZWtpXCA7Civms4nnn7MgPiBzZW5zZWtpXCA7CivmspbnuIQgPiBva2luYXdhXCA7CivmsJHouIogPiBtaW4nJ3lvdVwgOwor6Jma5byxID4ga3lvamFrdVwgOwor5Y2U6LObID4ga3lvdXNhblwgOwor5Y2z6KO9ID4gc29rdXNlaVwgOwor6YeR566UID4ga2lucGFrdVwgOwor5Y+k562GID4ga29oaXRzdVwgOwor5b6M6YecID4gYXRvZ2FtYVwgOwor5rex5Y6aID4gc2hpbmtvdVwgOwor5b6h6Ly/ID4gbWlrb3NoaVwgOwor6YeN56+kID4ganV1dG9rdVwgOwor5re75YmKID4gdGVuc2FrdVwgOwor6YeR562WID4ga2luc2FrdVwgOwor6Ymx5p+xID4ga291Y2h1dVwgOwor6YeR562LID4ga2luc3VqaVwgOwor5b6X6YGTID4gdG9rdWRvdVwgOwor56Sm55+zID4ga291c2VraVwgOwor6YO36ZaiID4ga3lvdWthblwgOwor6YeN566xID4ganV1YmFrb1wgOwor5ZCE55yMID4ga2FrdWtlblwgOwor5Y6p6IiOID4ga3l1dXNoYVwgOwor5Y+v56WdID4ga2FzaGlrdVwgOwor5ZCM55eFID4gZG91YnlvdVwgOwor5oOF5qyyID4gam91eW9rdVwgOwor5Y+O57SNID4gc2h1dW5vdVwgOwor56m65LitID4ga3V1Y2h1dVwgOwor6buS5p2/ID4ga29rdWJhblwgOwor56We54GvID4gc2hpbnRvdVwgOwor6JeB54GwID4gd2FyYWJhaVwgOwor5ZCM55S6ID4gZG91Y2hvdVwgOwor6Jmr5a6zID4gY2h1dWdhaVwgOwor5oSf5b+cID4ga2FuJydub3VcIDsKK+WVhuS8miA+IHNob3VrYWlcIDsKK+aEn+W/gyA+IGthbnNoaW5cIDsKK+WNmOiqvyA+IHRhbmNob3VcIDsKK+mKg+aSgyA+IGp1dWdla2lcIDsKK+m7hOaioiA+IGtvdXNob3VcIDsKK+aEn+W+lyA+IGthbnRva3VcIDsKK+aDh+aouCA+IHRvbmJva3VcIDsKK+efs+mvmyA+IGlzaGlkYWlcIDsKK+mGnOiBniA+IHNodXVidW5cIDsKK+WVhuS6uiA+IHNob3VuaW5cIDsKK+W+jOmAuCA+IGtvdWl0c3VcIDsKK+W+jOmAsiA+IGtvdXNoaW5cIDsKK+mHjeepjSA+IGp1dXNla2lcIDsKK+WPsOefsyA+IGRhaWlzaGlcIDsKK+WNk+irliA+IHRha3Vyb25cIDsKK+auv+mWoyA+IGRlbmtha3VcIDsKK+iWhOeariA+IHVzdWthd2FcIDsKK+WOmuiHvCA+IGF0c3V1c3VcIDsKK+WNmuimpyA+IGhha3VyYW5cIDsKK+WNmOinkiA+IHRhbmtha3VcIDsKK+iZjuW3uyA+IHRvcmFrYW5cIDsKK+W9k+mZkCA+IHRvdWdpcmlcIDsKK+epjeWIhiA+IHNla2lidW5cIDsKK+aChOeEtiA+IHNob3V6ZW5cIDsKK+awkeisoSA+IG1pbicneW91XCA7CivpjK/kubEgPiBzYWt1cmFuXCA7Civpu5LmlpEgPiBrb2t1aGFuXCA7CivmtYHmmJ8gPiByeXV1c2VpXCA7CivmsrvnmYIgPiBjaGlyeW91XCA7Civlj7LnmoQgPiBzaGl0ZWtpXCA7Civmt7fkv6EgPiBrb25zaGluXCA7Civpg6HplbcgPiBndW5jaG91XCA7CivljZjopIcgPiB0YW5wdWt1XCA7Civmrovpq5ggPiB6YW5kYWthXCA7CivmgJ3ntKIgPiBzaGlzYWt1XCA7Civlj4rnrKwgPiBreXV1ZGFpXCA7Civnp4DmiY0gPiBzaHV1c2FpXCA7CivpiYTmqYsgPiB0ZWtreW91XCA7CivlvLfpoqggPiBreW91ZnV1XCA7Civolqrngq0gPiBzaGludGFuXCA7Civmt7fkvZwgPiBrb25zYWt1XCA7Civph5Hnn7MgPiBraW5zZWtpXCA7CivpiYTmp4wgPiB0ZXR0c3VpXCA7Civlj47nqI4gPiBzaHV1emVpXCA7Civmg5zmlZcgPiBzZWtpaGFpXCA7CivnqLLlj6IgPiBpbmFtdXJhXCA7Civnp4Hmhb4gPiBzaGl5b2t1XCA7Civnoazoqr8gPiBrb3VjaG91XCA7CivljYrop5IgPiBoYW5rYWt1XCA7Civlvavph5EgPiBjaG91a2luXCA7Civmr5LphZIgPiBkb2t1c2h1XCA7Civmta7lvasgPiB1a2lib3JpXCA7Civnp4vmgJ0gPiBzaHV1c2hpXCA7CivlvozotrMgPiBhdG9hc2hpXCA7CivljJfovrogPiBob2t1aGVuXCA7CivllK/ku4ogPiB0YWRhaW1hXCA7Civph6Pnk7YgPiB0c3VydWJlXCA7CivmhZ/lk60gPiBkb3Vrb2t1XCA7Civmg5HmmJ8gPiB3YWt1c2VpXCA7CivljYropZ8gPiBoYW4nJ2VyaVwgOwor5oOH5py0ID4gdG9uYm9rdVwgOwor5q276a2EID4gc2hpaGFrdVwgOwor5by36Z2tID4ga3lvdWppblwgOwor5ZC45rC0ID4ga3l1dXN1aVwgOwor56K66IGeID4ga2FrdWJ1blwgOwor5oGL55eFID4ga29peWFtaVwgOwor6YeR55qEID4ga2ludGVraVwgOwor5rex5LqkID4gc2hpbmtvdVwgOwor5ZGo5piTID4gc2h1dWVraVwgOwor55+v6aKoID4ga3lvdWZ1dVwgOwor5oW25YWGID4ga2VpY2hvdVwgOwor5Y2K6KKWID4gaGFuc29kZVwgOwor5ZC45q67ID4gc3VpZ2FyYVwgOwor6YO36YKRID4ga3lvdXl1dVwgOwor6Jmr5Z6CID4gY2h1dXN1aVwgOwor5ZGo5peLID4gc2h1dXNlblwgOwor5q2j6bWgID4gc2Vpa29rdVwgOwor5rCR6KGGID4gbWluc2h1dVwgOwor5rW35bOhID4ga2Fpa3lvdVwgOwor6YmE5p+1ID4gdGVzc2FrdVwgOwor6YmE5p+xID4gdGV0Y2h1dVwgOwor5q+O6YCxID4gbWFpc2h1dVwgOwor56eB5b+DID4gc2hpc2hpblwgOwor56We5q6/ID4gc2hpbmRlblwgOwor5q6L6aGNID4gemFuZ2FrdVwgOwor5oGv54G9ID4gc29rdXNhaVwgOwor5byx6Zu7ID4gamFrdWRlblwgOwor6JS157GzID4ga3VyYW1haVwgOwor5rW35bGxID4gdW1peWFtYVwgOwor5q6L6Z+/ID4gemFua3lvdVwgOwor5rSL5qW9ID4geW91Z2FrdVwgOwor56mA5YCJID4ga29rdXNvdVwgOwor6YeN55eHID4ganV1c2hvdVwgOwor6YeN55eFID4ganV1YnlvdVwgOwor6Jas5rayID4geWFrdWVraVwgOwor5rW35bCGID4ga2Fpc2hvdVwgOwor6JaE54mpID4gdXN1bW9ub1wgOwor5Y6f57SaID4gZ2Vua3l1dVwgOwor6YeN55WzID4gY2hvdWpvdVwgOwor6JaE54mHID4gaGFrdWhlblwgOwor6buZ5oOzID4gbW9rdXNvdVwgOwor6YeP55SjID4gcnlvdXNhblwgOwor5rOl5rW3ID4gZG9yb3VtaVwgOwor6by75ZSEID4gaGFuYXV0YVwgOwor5ZCm5rG6ID4gaGlrZXRzdVwgOwor5b6h6KKLID4gb2Z1a3Vyb1wgOwor5oCq55+zID4ga2Fpc2VraVwgOwor5rC06Iq4ID4gbWl6dWdlaVwgOwor6YeN55SoID4gY2hvdXlvdVwgOwor6JC96aaWID4gcmFrdXNodVwgOwor5Y2z6IiIID4gc29ra3lvdVwgOwor56eY5a+GID4gaGltaXRzdVwgOwor5ZKr5bC6ID4gc2hpc2VraVwgOwor5b2T6YePID4gdG91cnlvdVwgOwor5Y+O55ujID4gc2h1dWthblwgOwor5Y216IacID4gcmFubWFrdVwgOwor5Y+N55uuID4gaGFubW9rdVwgOwor5rC06ImyID4gbWl6dWlyb1wgOwor56Cy6LqrID4gaG91c2hpblwgOwor5Y+O55uKID4gc2h1dWVraVwgOwor56We5qipID4gc2hpbmtlblwgOwor5Y6f57GNID4gZ2Vuc2VraVwgOwor5oKy5puyID4gaGlreW9rdVwgOwor6JWD56WeID4gYmFuc2hpblwgOwor6Yed54q2ID4gaGFyaWpvdVwgOwor5q6J6ZujID4ganVuJyduYW5cIDsKK+W+i+iqniA+IHJpdHN1Z29cIDsKK+mKg+W6iiA+IGp1dXNob3VcIDsKK+m7meaAnSA+IG1va3VzaGlcIDsKK+azqOawtCA+IGNodXVzdWlcIDsKK+WPrOeKtiA+IHNob3Vqb3VcIDsKK+m7meW/tSA+IG1va3VuZW5cIDsKK+aBi+eMqyA+IGtvaW5la29cIDsKK+mBqem9oiA+IHRla2lyZWlcIDsKK+atpumqqCA+IGJ1a290c3VcIDsKK+WSjOW8jyA+IHdhc2hpa2lcIDsKK+iZnOWbmiA+IHJ5b3NodXVcIDsKK+a1geaEnyA+IHJ5dXVrYW5cIDsKK+mKmuWtkCA+IGNob3VzaGlcIDsKK+emgeaVmSA+IGtpbmt5b3VcIDsKK+WNmOiRiSA+IHRhbicneW91XCA7Civpu5nlvpMgPiBtb2t1anV1XCA7Civph5HnjokgPiBraW50YW1hXCA7CivpioDluZUgPiBnaW5tYWt1XCA7CivolqrmsLQgPiBzaGluc3VpXCA7Civnn6LpnaIgPiB5YW9tb3RlXCA7CivnqI7lj44gPiB6ZWlzaHV1XCA7CivnqLLkvZwgPiBpbmFzYWt1XCA7CivmtIvmnI0gPiB5b3VmdWt1XCA7Civnpa3mnI0gPiBzYWlmdWt1XCA7CivmgKfnmoQgPiBzZWl0ZWtpXCA7Civlj47nlKggPiBzaHV1eW91XCA7CivljbDogokgPiBpbicnbmlrdVwgOwor5oCn55mWID4gc2VpaGVraVwgOwor6YWS6IiIID4gc2h1a3lvdVwgOwor5byB6aeBID4gYmVucGFrdVwgOwor6Jit5a2mID4gcmFuZ2FrdVwgOwor5ZCN5rWBID4gbWVpcnl1dVwgOwor5oG15rKiID4ga2VpdGFrdVwgOwor5b2i6LehID4ga2Vpc2VraVwgOwor5ZCM5rWBID4gZG91cnl1dVwgOwor6YeN54qvID4gY2hvdWhhblwgOwor56CC6YmEID4gc2F0ZXRzdVwgOwor5oCn55eFID4gc2VpYnlvdVwgOwor5ZGK5paHID4ga29rdWJ1blwgOwor5b+D6IeTID4gc2hpbnpvdVwgOwor5byU6Zu7ID4gY2hvdWRlblwgOwor6JC96Zu3ID4gcmFrdXJhaVwgOwor5Y+M55KnID4gc291aGVraVwgOwor5oKq5pa5ID4gYWt1Z2F0YVwgOwor6Ymx5bqKID4ga291c2hvdVwgOwor5ZCI5rWBID4gZ291cnl1dVwgOwor6JC96ZuBID4gcmFrdWdhblwgOwor5rWB5by+ID4gcnl1dWRhblwgOwor56S+5q20ID4gc2hhcmVraVwgOwor56eB5a6FID4gc2hpdGFrdVwgOwor6JC96Zm9ID4gcmFrdXlvdVwgOwor6YeN54iGID4ganV1YmFrdVwgOwor56K6562UID4ga2FrdXRvdVwgOwor6bOp6aaWID4ga3l1dXNodVwgOwor56eB5a2mID4gc2hpZ2FrdVwgOwor5Y+C55S7ID4gc2Fua2FrdVwgOwor5Yun6L6yID4ga2FuJydub3VcIDsKK+WOn+elqCA+IGdlbnB5b3VcIDsKK+ato+miqCA+IHNob3VmdXVcIDsKK+aApeeUqCA+IGt5dXV5b3VcIDsKK+m7kuW4ryA+IGt1cm9vYmlcIDsKK+WLlemHjyA+IGRvdXJ5b3VcIDsKK+WTqOWFtSA+IHNob3VoZWlcIDsKK+mKgOWwhiA+IGdpbnNob3VcIDsKK+WPmeeItSA+IGpvc2hha3VcIDsKK+W/g+iDhiA+IHNoaW50YW5cIDsKK+aDheaFviA+IGpvdXlva3VcIDsKK+WMl+ilvyA+IGhva3VzZWlcIDsKK+a1tOWgtCA+IHlva3Vqb3VcIDsKK+W9ouixoSA+IGtlaXNob3VcIDsKK+awl+iJsiA+IGtpc2hva3VcIDsKK+W/g+iCnSA+IHNoaW5rYW5cIDsKK+W/oOe0lCA+IGNodXVqdW5cIDsKK+ejkOefsyA+IGJhbmpha3VcIDsKK+elqOaVsCA+IGh5b3VzdXVcIDsKK+WPo+eBqyA+IGt1Y2hpYmlcIDsKK+WPlOeItiA+IHNodWt1ZnVcIDsKK+WPjeeLrCA+IGhhbmRva3VcIDsKK+engeWovCA+IHNoaXNob3VcIDsKK+azpeajkiA+IGRvcm9ib3VcIDsKK+eni+WjsCA+IHNodXVzZWlcIDsKK+elnuaYjiA+IHNoaW5tZWlcIDsKK+axgeeyiSA+IHNoaXJ1a29cIDsKK+W8semFuCA+IGpha3VzYW5cIDsKK+a1t+WbvSA+IGthaWtva3VcIDsKK+iUteebuCA+IHpvdXNob3VcIDsKK+WNg+iNiSA+IGNoaWd1c2FcIDsKK+WLmOmAsiA+IGthbnNoaW5cIDsKK+WNmuiBniA+IGhha3VidW5cIDsKK+WQq+aciSA+IGdhbicneXV1XCA7Civlj43niakgPiB0YW5tb25vXCA7Civljp/nn7MgPiBnZW5zZWtpXCA7CivljZzogIUgPiBib2t1c2hhXCA7Civps6XpoZ4gPiBjaG91cnVpXCA7Civnp7Dlj7cgPiBzaG91Z291XCA7CivlvIHpm6MgPiBiZW4nJ25hblwgOwor5Y2z57SNID4gc29rdW5vdVwgOwor56S+5qWtID4gc2hhZ3lvdVwgOwor5rCX6ISIID4ga2lteWFrdVwgOwor5Y+35rOjID4gZ291a3l1dVwgOwor56S85qW9ID4gcmVpZ2FrdVwgOwor56We5pS/ID4gc2hpbnNlaVwgOwor55+t6YedID4gdGFuc2hpblwgOwor5q+N6KaqID4gaGFoYW95YVwgOwor6YW356iOID4ga29rdXplaVwgOwor56e75Ye6ID4gaXNodXRzdVwgOwor5b6z6IKyID4gdG9rdWlrdVwgOwor56OB55+zID4gamlzaGFrdVwgOwor5q6L6YW3ID4gemFua29rdVwgOwor5rOV5qW9ID4gaG91cmFrdVwgOwor5Y+N54WnID4gaGFuc2hvdVwgOwor5raI5Y67ID4gc2hvdWt5b1wgOwor6Yac55S3ID4gYnVvdG9rb1wgOwor56C06KOCID4gaGFyZXRzdVwgOwor5rC057K+ID4gc3Vpc2hvdVwgOwor5ZGo5bm0ID4gc2h1dW5lblwgOwor6JSR56ewID4gYmVzc2hvdVwgOwor5raI5Y2wID4ga2VzaGlpblwgOwor5ZCM5qWtID4gZG91Z3lvdVwgOwor56eB5aG+ID4gc2hpanVrdVwgOwor5Yun6LOeID4ga2Fuc2hvdVwgOwor5oKq5oivID4gaXRhenVyYVwgOwor5YuV6Lu4ID4gZG91amlrdVwgOwor5rWF5a2mID4gc2VuZ2FrdVwgOwor56Kn56m6ID4gaGVraWt1dVwgOwor5YqI6aCtID4gaGVraXRvdVwgOwor5Y6a55u4ID4ga291c2hvdVwgOwor5Yqb6ZeYID4gcmlraXRvdVwgOwor55+z6YCgID4gc2VraXpvdVwgOwor5rK55rCXID4gYWJ1cmFrZVwgOwor6Jit5Zu9ID4gcmFua29rdVwgOwor5b+D57eSID4gc2hpbmNob1wgOwor5Y+v5rG6ID4ga2FrZXRzdVwgOwor5YuH6YCyID4geXV1c2hpblwgOwor5Y2z562UID4gc29rdXRvdVwgOwor5byx6LypID4gamFrdWhhaVwgOwor6YmE5b+DID4gdGVzc2hpblwgOwor5q+b6JmrID4ga2VtdXNoaVwgOwor5byU6YqDID4gY2hvdWp1dVwgOwor5Y+C54WnID4gc2Fuc2hvdVwgOwor5oGL5rKzID4ga29pa2F3YVwgOwor6YWN57WmID4gaGFpa3l1dVwgOwor5ZCM5qC8ID4gZG91a2FrdVwgOwor5rOo5paHID4gY2h1dW1vblwgOwor5Y+x5q2jID4gc2hpc3NlaVwgOwor6Jas5pa5ID4geWFrdWhvdVwgOwor5rS75a2XID4ga2F0c3VqaVwgOwor5Y6f55SxID4gZ2VuJyd5dXVcIDsKK+WTgOWIpSA+IGFpYmV0c3VcIDsKK+W+kuiKsSA+IGFkYWJhbmFcIDsKK+mAsem9oSA+IHNodXVyZWlcIDsKK+ekvOacjSA+IHJlaWZ1a3VcIDsKK+mBuOmbhiA+IHNlbnNodXVcIDsKK+aBi+awtCA+IGtvaW1penVcIDsKK+WTgOWIhyA+IGFpc2V0c3VcIDsKK+WQiOagvCA+IGdvdWtha3VcIDsKK+aEgeWYhiA+IHNodXV0YW5cIDsKK+ekpualrSA+IGtvdWd5b3VcIDsKK+a1t+WOnyA+IHVuYWJhcmFcIDsKK+m6u+WxkSA+IGFzYWt1enVcIDsKK+WPpOaxoCA+IGZ1cnVpa2VcIDsKK+m2j+iCiSA+IGtlaW5pa3VcIDsKK+azleacjSA+IGhvdWZ1a3VcIDsKK+WLmOiyrCA+IGthbnNla2lcIDsKK+aEmuWKoyA+IGd1cmV0c3VcIDsKK+a2iOWFiSA+IHNob3Vrb3VcIDsKK+WNmOe0miA+IHRhbmt5dXVcIDsKK+WQjeacqCA+IG1laWJva3VcIDsKK+efrei7uCA+IHRhbmppa3VcIDsKK+WLh+i6jSA+IHl1dXlha3VcIDsKK+mGnOeKtiA+IHNodXVqb3VcIDsKK+WQhOagoSA+IGtha3Vrb3VcIDsKK+WPouawtyA+IHNvdWh5b3VcIDsKK+aBi+atuyA+IGtvaWppbmlcIDsKK+WLp+iqmCA+IGthbicneXV1XCA7CivmgqrlvrMgPiBha3V0b2t1XCA7CivmsJfntbYgPiBraXpldHN1XCA7Civpu5Llo4cgPiBrb2t1dGFuXCA7Civlv4PnrpcgPiBzaGluemFuXCA7CivmsojmvrEgPiBjaGluZGVuXCA7CivlvLfosaogPiBreW91Z291XCA7CivmgqrlvbkgPiBha3V5YWt1XCA7CivliojplosgPiBoZWtpa2FpXCA7CivmgqrlvaIgPiBha3VnYXRhXCA7Civlv4PnrYsgPiBzaGlua2luXCA7Civlj6TmrYwgPiBmdXJ1dXRhXCA7CivokL3pgbggPiByYWt1c2VuXCA7CivmsojmvZwgPiBjaGluc2VuXCA7CivnpZ7mha4gPiBzaGlucnlvXCA7Civlia/poYwgPiBmdWt1ZGFpXCA7CivlvI/pg6ggPiBzaGlraWJ1XCA7CivlvJPpgZMgPiBreXV1ZG91XCA7CivmraPpipggPiBzaG91bWVpXCA7CivljZznra4gPiBib2t1emVpXCA7CivlkYLlvosgPiByb3JldHN1XCA7CivokYnouqsgPiB5b3VzaGluXCA7CivlvpDohIggPiBqb215YWt1XCA7CivmhJ/lgrcgPiBrYW5zaG91XCA7CivnoqfnnLwgPiBoZWtpZ2FuXCA7CivlvozohbkgPiBhdG9iYXJhXCA7CivmtIvlvJMgPiB5b3VreXV1XCA7CivnnqzplpMgPiBzaHVua2FuXCA7Civnn63otrMgPiB0YW5zb2t1XCA7CivnpLrmlZkgPiBzaGlreW91XCA7Civljb/nm7ggPiBrZWlzaG91XCA7CivmrbTpgYogPiByZWtpeXV1XCA7Civmsojmu54gPiBjaGludGFpXCA7CivlkIzml48gPiBkb3V6b2t1XCA7CivlibPpnZIgPiBpcmV6dW1pXCA7CivlvazolJogPiBoaW51dHN1XCA7CivnpoXlr7ogPiB6ZW5kZXJhXCA7CivlvozohJogPiBhdG9hc2hpXCA7CivmgJ3mva4gPiBzaGljaG91XCA7Civmta7lipsgPiBmdXJ5b2t1XCA7Civno6jmu4UgPiBtYW1ldHN1XCA7Civmrbvou7ggPiBzaGlqaWt1XCA7CivmraPph5EgPiBzaG91a2luXCA7CivmtYHln58gPiByeXV1aWtpXCA7CivnpoXlrpcgPiB6ZW5zaHV1XCA7CivptrTnp5EgPiB0c3VydWthXCA7Civol6nlraYgPiBoYW5nYWt1XCA7Civmga3mlawgPiBreW91a2VpXCA7CivmsY7nlKggPiBoYW4nJ3lvdVwgOwor5oCl5ribID4ga3l1dWdlblwgOwor56We5oCnID4gc2hpbnNlaVwgOwor5oKU5oKbID4ga2Fpc2h1blwgOwor56aF5a2mID4gemVuZ2FrdVwgOwor5Y+U5q+NID4gc2h1a3Vib1wgOwor5byP6L6eID4gc2hpa2lqaVwgOwor56eA5ZCfID4gc2h1dWdpblwgOwor6YGO6aOfID4ga2FzaG9rdVwgOwor5Y6f54iGID4gZ2VuYmFrdVwgOwor6bOl6YqDID4gY2hvdWp1dVwgOwor5YmN6auqID4gbWFlZ2FtaVwgOwor5ZKA5Zq8ID4gc29zaGFrdVwgOwor56ef5YCfID4gc29zaGFrdVwgOwor5q666JmrID4gc2F0Y2h1dVwgOwor5Yuk6KGMID4gZ29uZ3lvdVwgOwor5oKW5b6zID4gaGFpdG9rdVwgOwor5q+S6I2JID4gZG9rdXNvdVwgOwor5Y2155m9ID4gcmFucGFrdVwgOwor56eL5YiGID4gc2h1dWJ1blwgOwor5Y+C5rSbID4gc2FucmFrdVwgOwor5ZKs5YK3ID4ga291c2hvdVwgOwor5b6L576pID4gcmljaGlnaVwgOwor56eL5Ya3ID4gc2h1dXJlaVwgOwor5by36KaBID4ga3lvdXlvdVwgOwor6YeR5qOSID4ga2FuYWJvdVwgOwor6JaE5piOID4gaGFrdW1laVwgOwor5bqn6aqoID4gemFrb3RzdVwgOwor5Ymj6ZujID4ga2VuJyduYW5cIDsKK+W+tOeojiA+IGNob3V6ZWlcIDsKK+W+qeetlCA+IGZ1a3V0b3VcIDsKK+WLheirrSA+IGNob2t1eXVcIDsKK+WKtOizgyA+IHJvdWNoaW5cIDsKK+W8seimliA+IGpha3VzaGlcIDsKK+WQiOaOjCA+IGdhc3Nob3VcIDsKK+WLheiqniA+IGNob2t1Z29cIDsKK+efreiqvyA+IHRhbmNob3VcIDsKK+WPuOaVmSA+IHNoaWt5b3VcIDsKK+ayiOauvyA+IGNoaW5kZW5cIDsKK+m1rOe/vCA+IGhvdXlva3VcIDsKK+WLheiosSA+IGNob2treW9cIDsKK+efreiplSA+IHRhbnB5b3VcIDsKK+enmOS7jyA+IGhpYnV0c3VcIDsKK+aApeatuyA+IGt5dXVzaGlcIDsKK+W8t+ihjCA+IGt5b3Vrb3VcIDsKK+aAp+assiA+IHNlaXlva3VcIDsKK+a1t+S6gCA+IHVtaWdhbWVcIDsKK+avkuiFuiA+IGRva3VzZW5cIDsKK+WPsuaWmSA+IHNoaXJ5b3VcIDsKK+awt+eUsCA+IGh5b3VkZW5cIDsKK+W/g+ecvCA+IHNoaW5nYW5cIDsKK+mCgemAsiA+IG1haXNoaW5cIDsKK+WPpOacrCA+IGZ1cnVib25cIDsKK+eiuueEtiA+IGtha3V6ZW5cIDsKK+a0i+WtpiA+IHlvdWdha3VcIDsKK+W9ueiAhSA+IHlha3VzaGFcIDsKK+aDsOWKmyA+IGRhcnlva3VcIDsKK+WPjeanmCA+IGthaXNhbWFcIDsKK+awkeemjyA+IG1pbnB1a3VcIDsKK+WJjemhjSA+IHplbmdha3VcIDsKK+a1t+S4rSA+IGthaWNodXVcIDsKK+W+jOe2miA+IGtvdXpva3VcIDsKK+WPpOabsiA+IGtva3lva3VcIDsKK+mBhemcnCA+IG9zb2ppbW9cIDsKK+WRqOWbniA+IHNodXVrYWlcIDsKK+a0m+WkliA+IHJha3VnYWlcIDsKK+WNiuelniA+IGhhbnNoaW5cIDsKK+W9k+iQvSA+IHRvdXJha3VcIDsKK+mFkueZliA+IHNodWhla2lcIDsKK+mCquiqrCA+IGphc2V0c3VcIDsKK+asoOmZpCA+IGtldHN1am9cIDsKK+awj+elniA+IHVqaWdhbWlcIDsKK+mHkeabnCA+IGtpbicneW91XCA7CivmrrXokL0gPiBkYW5yYWt1XCA7Civluqfpo58gPiB6YXNob2t1XCA7CivlkbvlkJ8gPiBzaGluZ2luXCA7CivpiYTlo4EgPiB0ZXBwZWtpXCA7Civnp4vkvZwgPiBha2lzYWt1XCA7CivljYPnp4sgPiBzZW5zaHV1XCA7CivljLrnq4sgPiBrdXJpdHN1XCA7Civlv6DniqwgPiBjaHV1a2VuXCA7CivlkITmiYAgPiBrYWt1c2hvXCA7CivliofpgZMgPiBnZWtpZG91XCA7Civmg6jliocgPiBzYW5nZWtpXCA7CivmgYvmlocgPiBrb2lidW1pXCA7CivpioPlgrcgPiBqdXVzaG91XCA7Civms5XmgqYgPiBob3VldHN1XCA7Civnn6XoppogPiBjaGlrYWt1XCA7CivpgqboqLMgPiBob3V5YWt1XCA7CivmsLTnkIMgPiBzdWlreXV1XCA7Civnp4Hkv6EgPiBzaGlzaGluXCA7CivlipvotbAgPiByaWtpc291XCA7CivmtabkurogPiB1cmFiaXRvXCA7Civlj43moLggPiBoYW5rYWt1XCA7Civlub3ps6UgPiB5dXVjaG91XCA7CivolqzluKsgPiB5YWt1c2hpXCA7CivnpZ7lrp0gPiBzaGlucG91XCA7CivnpZ7lrpggPiBzaGlua2FuXCA7CivnpZ3lrrQgPiBzaHVrdWVuXCA7CivpioDlgbQgPiBnaW5nYXdhXCA7Civlj5bmm78gPiB0b3Jpa2FlXCA7CivlvJToqZ4gPiBjaG91c2hpXCA7CivljaDnlKggPiBzZW4nJ3lvdVwgOwor5YmN6ZmzID4gemVuY2hpblwgOwor55+z6J2LID4gc2VraXJvdVwgOwor5q276KeSID4gc2hpa2FrdVwgOwor6JOs55SfID4geW9tb2dpdVwgOwor5rWB5YuVID4gcnl1dWRvdVwgOwor5Y6E54G9ID4geWFrdXNhaVwgOwor5Y+r5o+bID4ga3lvdWthblwgOwor5oCg5qWtID4gdGFpZ3lvdVwgOwor5q206KiqID4gcmVraWhvdVwgOwor5ZCM5b+DID4gZG91c2hpblwgOwor5Y6f5rOoID4gZ2VuY2h1dVwgOwor6YCG6bGXID4gZ2VraXJpblwgOwor55+l6KGMID4gY2hpZ3lvdVwgOwor5oCn5qC8ID4gc2Vpa2FrdVwgOwor5ZCM5b25ID4gZG91eWFrdVwgOwor6YW45ry/ID4gaG9venVraVwgOwor5ZCJ5b60ID4ga2l0Y2hvdVwgOwor5q206KanID4gcmVraXJhblwgOwor5rC054miID4gbWl6dXJvdVwgOwor5rC054mbID4gc3VpZ3l1dVwgOwor5ZCI5b6TID4gZ2Fzc2hvdVwgOwor5Y2K55m9ID4gaGFucGFrdVwgOwor6bOl6LKdID4gdG9yaWdhaVwgOwor5rGg5rK8ID4gY2hpc2hvdVwgOwor6YWN55CDID4gaGFpa3l1dVwgOwor5bm96ayxID4geXV1dXRzdVwgOwor5rC054iGID4gc3VpYmFrdVwgOwor5YyX57GzID4gaG9rdWJlaVwgOwor5Y2T55SoID4gdGFrdXlvdVwgOwor6JWD5qSSID4gYmFuc2hvdVwgOwor5Ym96Lu9ID4gaHlvdWtpblwgOwor5rOo5bCEID4gY2h1dXNoYVwgOwor5b6055SoID4gY2hvdXlvdVwgOwor6YWU54uCID4gc3Vpa3lvdVwgOwor5ZKO5Lq6ID4gdG9nYW5pblwgOwor6JGJ6JyCID4gaGFiYWNoaVwgOwor5b+D54y/ID4gc2hpbicnZW5cIDsKK+W+s+eUqCA+IHRva3V5b3VcIDsKK+aBsOW5hSA+IGthcHB1a3VcIDsKK+i/t+mzpSA+IG1laWNob3VcIDsKK+mAmumiqCA+IHRzdXVmdXVcIDsKK+WNgeebriA+IGp1dW1va3VcIDsKK+iWhOaDhSA+IGhha3Vqb3VcIDsKK+ato+iqvyA+IHNlaWNob3VcIDsKK+WQjOW4rSA+IGRvdXNla2lcIDsKK+WPguacnSA+IHNhbmNob3VcIDsKK+ecn+m7kiA+IG1ha2t1cm9cIDsKK+WKo+inkiA+IHJla2tha3VcIDsKK+iWrOWusyA+IHlha3VnYWlcIDsKK+aBouW+qSA+IGthaWZ1a3VcIDsKK+mAsemWkyA+IHNodXVrYW5cIDsKK+emhOWRvSA+IHJva3VtZWlcIDsKK+WPpOaLmSA+IGtvc2V0c3VcIDsKK+WIu+mZkCA+IGtva3VnZW5cIDsKK+WPjuaWgiA+IHNodXVyZW5cIDsKK+elnuWkiSA+IHNoaW5wZW5cIDsKK+awt+eCuSA+IGh5b3V0ZW5cIDsKK+W8geiovCA+IGJlbnNob3VcIDsKK+awt+eCrSA+IGh5b3V0YW5cIDsKK+atjuizniA+IHRhbnNob3VcIDsKK+WQuOWhtSA+IGt5dXVqaW5cIDsKK+WQm+WvtSA+IGt1bmNob3VcIDsKK+W5sumtmiA+IGhvc2hpdW9cIDsKK+WPjuaUryA+IHNodXVzaGlcIDsKK+WPjuaUrCA+IHNodXVyYW5cIDsKK+WQhOW6lyA+IGtha3V0ZW5cIDsKK+WNk+eQgyA+IHRha2t5dXVcIDsKK+aBkOaFjCA+IGt5b3Vrb3VcIDsKK+WPo+aJvyA+IGtvdXNob3VcIDsKK+WOs+agvCA+IGdlbmtha3VcIDsKK+iWhOW/lyA+IGhha3VzaGlcIDsKK+emgOWRiiA+IHJpbmtva3VcIDsKK+WRqOWIsCA+IHNodXV0b3VcIDsKK+axl+awtCA+IGFzZW1penVcIDsKK+WMl+erryA+IGhva3V0YW5cIDsKK+WNmOeLrCA+IHRhbmRva3VcIDsKK+WQhOW4giA+IGtha3VzaGlcIDsKK+WPjeaSgyA+IGhhbmdla2lcIDsKK+a1geS9kyA+IHJ5dXV0YWlcIDsKK+m7kuS6uiA+IGtva3VqaW5cIDsKK+W9vOeoiyA+IGFyZWhvZG9cIDsKK+ekvuWuhSA+IHNoYXRha3VcIDsKK+a1geS8miA+IHJ5dXVrYWlcIDsKK+WNiueQgyA+IGhhbmt5dXVcIDsKK+mBiumDrSA+IHl1dWtha3VcIDsKK+mBk+i+uiA+IG1pY2hpYmVcIDsKK+W6l+mVtyA+IHRlbmNob3VcIDsKK+aBkuW/gyA+IGtvdXNoaW5cIDsKK+atpuihkyA+IGJ1anV0c3VcIDsKK+aui+iPiiA+IHphbmdpa3VcIDsKK+WQjeWwhiA+IG1laXNob3VcIDsKK+ayoeaIkSA+IGJvdHN1Z2FcIDsKK+WQjOWwjyA+IGRvdXNob3VcIDsKK+a1geS6oSA+IHJ5dXVib3VcIDsKK+WInemfsyA+IGhhdHN1bmVcIDsKK+mDveeriyA+IHRvcml0c3VcIDsKK+WQjuWuriA+IGtvdWt5dXVcIDsKK+WIpemboiA+IGJldHN1cmlcIDsKK+W+k+eahCA+IGp1dXRla2lcIDsKK+WRveS4rSA+IG1laWNodXVcIDsKK+egtOeruSA+IGhhY2hpa3VcIDsKK+iSvOeZvSA+IHNvdWhha3VcIDsKK+awtOa7tCA+IHN1aXRla2lcIDsKK+mHj+aEnyA+IHJ5b3VrYW5cIDsKK+azleWtpiA+IGhvdWdha3VcIDsKK+WKh+irliA+IGdla2lyb25cIDsKK+WNkueIviA+IHNvdHN1amlcIDsKK+WKh+irhyA+IGdla2lkYW5cIDsKK+aAneaWmSA+IHNoaXJ5b3VcIDsKK+ehrOeQgyA+IGtvdWt5dXVcIDsKK+WKm+ihjCA+IHJ5b2trb3VcIDsKK+WQjOWulyA+IGRvdXNodXVcIDsKK+iVg+aXjyA+IGJhbnpva3VcIDsKK+emgeWJhyA+IGtpbnNva3VcIDsKK+mBuOiplSA+IHNlbnB5b3VcIDsKK+ekq+WyqSA+IHJla2lnYW5cIDsKK+WQhOWxpCA+IGtha3Vzb3VcIDsKK+WIpemZoiA+IGJldHN1aW5cIDsKK+WQjOWtpiA+IGRvdWdha3VcIDsKK+ejgealtSA+IGppa3lva3VcIDsKK+mAmumWoiA+IHRzdXVrYW5cIDsKK+WLneiAhSA+IHNob3VzaGFcIDsKK+WKh+ipqSA+IGdla2lzaGlcIDsKK+W5sumjryA+IGhvc2hpaWlcIDsKK+mJhOWJhyA+IHRlc3Nva3VcIDsKK+mBhemAnyA+IGNoaXNva3VcIDsKK+eip+awtCA+IGhla2lzdWlcIDsKK+efs+iHvCA+IGlzaGl1c3VcIDsKK+W5tOmhjSA+IG5lbmdha3VcIDsKK+W8t+iCqSA+IGt5b3VrZW5cIDsKK+WPsOW4syA+IGRhaWNob3VcIDsKK+awtOa3sSA+IHN1aXNoaW5cIDsKK+awt+a1tyA+IGh5b3VrYWlcIDsKK+azsOWbvSA+IHRhaWtva3VcIDsKK+WIpemWkyA+IGJldHN1bWFcIDsKK+axgeawlyA+IHNoaXJ1a2VcIDsKK+a0m+WGhSA+IHJha3VuYWlcIDsKK+avjuenkiA+IG1haWJ5b3VcIDsKK+W+rueGsSA+IGJpbmV0c3VcIDsKK+awtOa1tCA+IHN1aXlva3VcIDsKK+aDkeS5sSA+IHdha3VyYW5cIDsKK+iQveiRiSA+IHJha3V5b3VcIDsKK+WKoOiZkCA+IGthZ3lha3VcIDsKK+W8t+iAhSA+IGt5b3VzaGFcIDsKK+WPpOW8jyA+IGtvc2hpa2lcIDsKK+iSuOeVmSA+IGpvdXJ5dXVcIDsKK+mHjeW/gyA+IGp1dXNoaW5cIDsKK+WNiueGnyA+IGhhbmp1a3VcIDsKK+awtOa1gSA+IHN1aXJ5dXVcIDsKK+ecn+mrhCA+IHNoaW56dWlcIDsKK+WJjemAsiA+IHplbnNoaW5cIDsKK+WJjemAsSA+IHplbnNodXVcIDsKK+WOn+acqCA+IGdlbmJva3VcIDsKK+mHjeW9uSA+IGp1dXlha3VcIDsKK+WPm+W/gyA+IGhhbnNoaW5cIDsKK+WLpOe2miA+IGtpbnpva3VcIDsKK+mAvOi/qyA+IGhpcHBha3VcIDsKK+WNiueEvCA+IGhhbnNob3VcIDsKK+elnuWTgSA+IHNoaW5waW5cIDsKK+WOmuadvyA+IGF0c3VpdGFcIDsKK+ayoeW+jCA+IGJvdHN1Z29cIDsKK+azpeWdiiA+IGRvcm9ib3VcIDsKK+W8seiAhSA+IGpha3VzaGFcIDsKK+WNteauuyA+IHJhbmtha3VcIDsKK+mHkeW5syA+IGtpbnBpcmFcIDsKK+WNseawlyA+IGFidW5hZ2VcIDsKK+aApeaJgCA+IGt5dXVzaG9cIDsKK+auu+ervyA+IGthcmFzYW9cIDsKK+mGh+actCA+IGp1bmJva3VcIDsKK+WPluW+lyA+IHNodXRva3VcIDsKK+WNs+atuyA+IHNva3VzaGlcIDsKK+m0h+iJsiA+IHRva2lpcm9cIDsKK+WPsOWwuyA+IGRhaWppcmlcIDsKK+WQm+WbvSA+IGt1bmtva3VcIDsKK+aAp+aFviA+IHNlaXlva3VcIDsKK+i/vemajyA+IHRzdWl6dWlcIDsKK+WLsueroCA+IGt1bnNob3VcIDsKK+mAsumAgCA+IHNoaW50YWlcIDsKK+mAo+mHjyA+IHJlbnJ5b3VcIDsKK+WJjei6qyA+IHplbnNoaW5cIDsKK+WOn+aWmSA+IGdlbnJ5b3VcIDsKK+atu+iHrSA+IHNoaXNodXVcIDsKK+mCkeiQvSA+IHl1dXJha3VcIDsKK+WJr+ipniA+IGZ1a3VzaGlcIDsKK+WQiOWjgSA+IGdhcHBla2lcIDsKK+WJjei5pCA+IHplbnNob3VcIDsKK+WPsuWtpiA+IHNoaWdha3VcIDsKK+WPjeW/nCA+IGhhbicnbm91XCA7Civlh7rpoY0gPiBkZWJpdGFpXCA7CivliLnpgqMgPiBzZXRzdW5hXCA7CivlubTplbcgPiBuZW5jaG91XCA7Civlj43lvqkgPiBoYW5wdWt1XCA7Civlh7rpoK0gPiBzaHV0dG91XCA7CivliIfpmaQgPiBzZXRzdWpvXCA7Civoka3nsIAgPiB5b3NoaXp1XCA7Civlh7bpoZ4gPiBreW91cnVpXCA7Civnoofms4ogPiB0ZWloYWt1XCA7CivmgKXmgqMgPiBreXV1a2FuXCA7CivliY3otrMgPiBtYWVhc2hpXCA7CivlkJ/llLEgPiBnaW5zaG91XCA7CivmtIvlgpggPiB5b3VnYXNhXCA7CivnoJTnqbYgPiBrZW5reXV1XCA7CivpgLLou40gPiBzaGluZ3VuXCA7CivmgKfmgKUgPiBzZWlreXV1XCA7CivnpoHkuK0gPiBraW5jaHV1XCA7CivnpZ7liaMgPiBzaGlua2VuXCA7CivphZLmr5IgPiBzaHVkb2t1XCA7CivnpZ7liY0gPiBzaGluemVuXCA7Civph5HlsZ4gPiBraW56b2t1XCA7CivmgKXmgKcgPiBreXV1c2VpXCA7CivokabnsL4gPiB5b3NoaXp1XCA7Civolqzlk4EgPiB5YWt1aGluXCA7CivmsojmgJ0gPiBjaGluc2hpXCA7CivljZfmtIsgPiBuYW4nJ3lvdVwgOwor5ZCM5Zu9ID4gZG91a29rdVwgOwor5q276IKJID4gc2hpbmlrdVwgOwor5oCn5b60ID4gc2VpY2hvdVwgOwor5bmz6ZG/ID4gaGVpc2FrdVwgOwor6JGm57CAID4geW9zaGl6dVwgOwor5Yud566XID4gc2hvdXNhblwgOwor6YeR5bCGID4ga2luc2hvdVwgOwor5oCd5oORID4gb21vd2FrdVwgOwor6bO26ImyID4gdG9iaWlyb1wgOwor55+z57a/ID4gc2VraW1lblwgOwor6JC96IOGID4gcmFrdXRhblwgOwor6bOl6JGsID4gY2hvdXNvdVwgOwor5Y2x5qW1ID4ga2lreW9rdVwgOwor5rKi5bGxID4gdGFrdXNhblwgOwor5b6X54K5ID4gdG9rdXRlblwgOwor5Y+J5bqrID4gYXpla3VyYVwgOwor6YW35pqRID4ga29rdXNob1wgOwor5Y+M5bmFID4gc291ZnVrdVwgOwor5b2T56K6ID4gdG91a2FrdVwgOwor5Yi66LqrID4gc2FzaGltaVwgOwor5bqD6YePID4ga291cnlvdVwgOwor5ZCE5ZywID4ga2FrdWNoaVwgOwor6JaE5aKoID4gdXN1enVtaVwgOwor5rOK5ZywID4gaGFrdWNoaVwgOwor5Y6o5oi/ID4gY2h1dWJvdVwgOwor5Y+b5bCGID4gaGFuc2hvdVwgOwor5ZCE5Zu9ID4ga2Fra29rdVwgOwor6JGm56ybID4gYXNoaWJ1ZVwgOwor6YeN5a6dID4gY2hvdWhvdVwgOwor6YeP5a2QID4gcnlvdXNoaVwgOwor5bmV6Zu7ID4gbWFrdWRlblwgOwor5Yml6KO9ID4gaGFrdXNlaVwgOwor6Yac5oWLID4gc2h1dXRhaVwgOwor5Yqf6IejID4ga291c2hpblwgOwor55+t57WhID4gdGFucmFrdVwgOwor6Jas5YyFID4geWFrdWhvdVwgOwor5rCR5rOKID4gbWlucGFrdVwgOwor56S+5ZGKID4gc2hha29rdVwgOwor5byB6IacID4gYmVubWFrdVwgOwor6YCy6LKiID4gc2hpbmtvdVwgOwor5bi46aeQID4gam91Y2h1dVwgOwor6Yac5oKqID4gc2h1dWFrdVwgOwor5rG65b+DID4ga2Vzc2hpblwgOwor56CV55+zID4gc2Fpc2VraVwgOwor5q2j6IW5ID4gc2VpZnVrdVwgOwor6bOp6IiOID4ga3l1dXNoYVwgOwor6Jas5YmkID4geWFrdXphaVwgOwor5q+U546HID4gaGlyaXRzdVwgOwor5ZCI5ZSxID4gZ2Fzc2hvdVwgOwor5Yu+55WZID4ga291cnl1dVwgOwor5Yil6L6eID4gYmV0c3VqaVwgOwor5byK57+SID4gaGVpc2h1dVwgOwor5b2554mbID4gZWtpZ3l1dVwgOwor6YCN6YGlID4gc2hvdXlvdVwgOwor5rK85ZywID4gbnVtYWNoaVwgOwor6YCN6YGZID4gc2hvdXlvdVwgOwor6I6r6YCjID4gYmFrdXJlblwgOwor5rOV5ZCNID4gaG91bXlvdVwgOwor5bu36IejID4gdGVpc2hpblwgOwor55+z562NID4gc2VraWp1blwgOwor56We5L2TID4gc2hpbnRhaVwgOwor5Y+O5a65ID4gc2h1dXlvdVwgOwor5oKg5LmFID4geXV1a3l1dVwgOwor5rK75Zu9ID4gY2hpa29rdVwgOwor5Yid6YCfID4gc2hvc29rdVwgOwor5ZCN5Y+3ID4gbXlvdWdvdVwgOwor5b+D5qOSID4gc2hpbmJvdVwgOwor56We5LuZID4gc2hpbnNlblwgOwor6YCy6KybID4gc2hpbmtvdVwgOwor5rOV5Y2aID4gaG91aGFrdVwgOwor56We5Lq6ID4gc2hpbmppblwgOwor6YCG6YGLID4gZ3lha3V1blwgOwor55yJ6ZuqID4gYmlzZXRzdVwgOwor6YG46ImvID4gc2VucnlvdVwgOwor5Ye46Y+hID4gdG9ra3lvdVwgOwor6JK45rqcID4gam91cnl1dVwgOwor5ZCI5Y+jID4gYWlrdWNoaVwgOwor56S+5YmHID4gc2hhc29rdVwgOwor5qyd6KGAID4gdWtrZXRzdVwgOwor5rC05pm2ID4gc3Vpc2hvdVwgOwor6I2S6aeSID4gYXJhZ29tYVwgOwor5ZCN5YygID4gbWVpc2hvdVwgOwor5rC45pelID4gZWlqaXRzdVwgOwor5q6655SfID4gc2Vzc2hvdVwgOwor5Y2z5patID4gc29rdWRhblwgOwor5YiG6YedID4gZnVuc2hpblwgOwor5Y2D5q2zID4gY2hpdG9zZVwgOwor5YiG6YePID4gYnVucnlvdVwgOwor5ZCN5YudID4gbWVpc2hvdVwgOwor5Yil6LevID4gYmV0c3Vyb1wgOwor5rOV5YqbID4gaG91cmlraVwgOwor5q+U54axID4gaGluZXRzdVwgOwor5Yuk55qHID4ga2luJydub3VcIDsKK+W8t+ehrCA+IGt5b3Vrb3VcIDsKK+azleWJhyA+IGhvdXNva3VcIDsKK+mAsuiogCA+IHNoaW5nZW5cIDsKK+W7g+iZmiA+IGhhaWt5b1wgOwor5b+/5oCSID4gZnVuJydudVwgOwor6YCB6L+OID4gc291Z2VpXCA7Civov4Xpm7cgPiBqaW5yYWlcIDsKK+W/l+aTjSA+IHNoaXNvdVwgOwor6YCa6LKoID4gdHN1dWthXCA7CivlkI3liLogPiBtZWlzaGlcIDsKK+WQjOWJjSA+IGRvdXplblwgOwor56S85YW4ID4gcmVpdGVuXCA7CivliY3ooZsgPiB6ZW4nJ2VpXCA7Civnn6LnrYggPiB5YWhhenVcIDsKK+mHkeWdkSA+IGtpbmtvdVwgOwor5Y6f5b2iID4gZ2Vua2VpXCA7CivlvqnmqKkgPiBmdWtrZW5cIDsKK+WJjeihjCA+IHplbmtvdVwgOwor5ZCN5YiGID4gbWVpYnVuXCA7CivlvaLnirYgPiBrZWlqb3VcIDsKK+WIl+i7iiA+IHJlc3NoYVwgOwor5ZCN5YiAID4gbWVpdG91XCA7Civlu4Pol6kgPiBoYWloYW5cIDsKK+mFjeacrCA+IGhhaWhvblwgOwor5Y6a5b+XID4ga291c2hpXCA7CivoloTlkbMgPiBoYWt1bWlcIDsKK+ekvuWDpyA+IHNoYXNvdVwgOwor5ZCI5YmkID4gZ291emFpXCA7CivlkIzlh6YgPiBkb3VzaG9cIDsKK+azleWFuCA+IGhvdXRlblwgOwor56S+5YK1ID4gc2hhc2FpXCA7CivlubTovKogPiBuZW5yaW5cIDsKK+W5tOi8qSA+IG5lbnBhaVwgOwor56OB5b+DID4gamlzaGluXCA7CivliIbpgaMgPiBidW5rZW5cIDsKK+WPi+WlvSA+IHl1dWtvdVwgOwor5Yuk55WqID4ga2luYmFuXCA7Civnn7PnopEgPiBzZWtpaGlcIDsKK+WQiOWIhyA+IGdhc3NhaVwgOwor6YCA6LuiID4gdGFpdGVuXCA7CivmraPnt6ggPiBzZWloZW5cIDsKK+WPjeWkiSA+IGhhbnBlblwgOwor5Y+x5ZKkID4gc2hpdHRhXCA7CivlkIzlhZogPiBkb3V0b3VcIDsKK+W5vei2oyA+IHl1dXNodVwgOwor5Yqg57WmID4ga2FreXV1XCA7CivlkI3lhKogPiBtZWl5dXVcIDsKK+WOs+WwgSA+IGdlbnB1dVwgOwor5biv6Zu7ID4gdGFpZGVuXCA7Civlvovms5UgPiByaXBwb3VcIDsKK+WHjOmbsiA+IHJ5b3V1blwgOwor5b+r5oSfID4ga2Fpa2FuXCA7CivpgbjogIMgPiBzZW5rb3VcIDsKK+efoueoriA+IHlhZGFuZVwgOwor5rGO5oSbID4gaGFuJydhaVwgOwor5by355uXID4gZ291dG91XCA7CivljrPlr5IgPiBnZW5rYW5cIDsKK+mHj+WZqCA+IHJ5b3VraVwgOwor5ZCN5YOnID4gbWVpc291XCA7CivmraPntbEgPiBzZWl0b3VcIDsKK+mBiuiVqSA+IHl1dXRvdVwgOwor5rG65a6aID4ga2V0dGVpXCA7CivokrjmsJEgPiBqb3VtaW5cIDsKK+W8vueXlSA+IGRhbmtvblwgOwor6YeN5Zm4ID4ganV1dG9uXCA7Civov4Lpl4ogPiB1a2F0c3VcIDsKK+mAoOipoyA+IHpvdWtlaVwgOwor5reh44CFID4gdGFudGFuXCA7CivljrPlroggPiBnZW5zaHVcIDsKK+WPsOWQjSA+IHRhaW1laVwgOwor5Y6z5a2YID4gZ2Vuc29uXCA7CivmraPns7sgPiBzZWlrZWlcIDsKK+mCquelniA+IGphc2hpblwgOwor6L666ZmsID4gaGVuc3V1XCA7CivpgKDoqIAgPiB6b3VnZW5cIDsKK+mAg+i1sCA+IHRvdXNvdVwgOwor6YCa6KqeID4gdHN1dWdvXCA7CivliIbovIkgPiBidW5zYWlcIDsKK+mFuOaApyA+IHNhbnNlaVwgOwor55u46ZaiID4gc291a2FuXCA7CivlvozmrrUgPiBrb3VkYW5cIDsKK+ekvuS8miA+IHNoYWthaVwgOwor6YCa6KmxID4gdHN1dXdhXCA7CivlvqnmoKEgPiBmdWtrb3VcIDsKK+WQjOWApCA+IGRvdWNoaVwgOwor5YiH6LqrID4ga2lyaW1pXCA7CivlkJvkuLsgPiBrdW5zaHVcIDsKK+iNiemeiyA+IHdhcmFqaVwgOwor5rOV5L6LID4gaG91cmVpXCA7CivmsrPljp8gPiBrYXdhcmFcIDsKK+WItuijgSA+IHNlaXNhaVwgOwor5Y2X5pa5ID4gbmFucG91XCA7CivljJfmtbcgPiBob2trYWlcIDsKK+W/oOaEmyA+IGNodXVhaVwgOwor6YeR5ZOhID4ga2luJydpblwgOwor5Y2Y5paHID4gdGFuYnVuXCA7CivnorrluqYgPiBrYWt1ZG9cIDsKK+awkeacmyA+IG1pbmJvdVwgOwor6JaE5YipID4gaGFrdXJpXCA7CivnpL7kuqQgPiBzaGFrb3VcIDsKK+W+ruacjSA+IGJpZnVrdVwgOwor5rGC5oSbID4ga3l1dWFpXCA7CivljZjmlbAgPiB0YW5zdXVcIDsKK+W/heaQuiA+IGhpa2tlaVwgOwor6YeR5ZOBID4ga2lucGluXCA7CivliqPnrYkgPiByZXR0b3VcIDsKK+ebpOmdoiA+IGJhbm1lblwgOwor5Yyg5rCXID4gc2hvdWtpXCA7Civli5XnlKMgPiBkb3VzYW5cIDsKK+W7tue0jSA+IGVuJydub3VcIDsKK+egleeJhyA+IHNhaWhlblwgOwor55yf6YCGID4gbWFzYWthXCA7CivlkIzkvZMgPiBkb3V0YWlcIDsKK+ays+WMlyA+IGthaG9rdVwgOwor56S+5Li7ID4gc2hhc2h1XCA7CivljZfmlK8gPiBuYW5zaGlcIDsKK+WPo+WQuyA+IGtvdWZ1blwgOwor5by+55C0ID4gZGFua2luXCA7CivluKvploAgPiBzaGltb25cIDsKK+awl+aXqSA+IGtpYmF5YVwgOwor5rOV5LukID4gaG91cmVpXCA7CivmgKXloLQgPiBreXV1YmFcIDsKK+WQjOS8tCA+IGRvdWhhblwgOwor6YCj6KGhID4gcmVua291XCA7Civlj6PlkJ8gPiBrb3VnaW5cIDsKK+mAo+ihjCA+IHJlbmtvdVwgOwor5rOV5Lq6ID4gaG91amluXCA7CivlhrfpnZkgPiByZWlzZWlcIDsKK+i/lOmHkSA+IGhlbmtpblwgOwor5Y+C5aCCID4gc2FuZG91XCA7Civlv6vlvIEgPiBrYWliZW5cIDsKK+W/oOaBlSA+IGNodXVqb1wgOwor5Y+s5YufID4gc2hvdWJvXCA7CivlkIjkvbUgPiBnb3VoZWlcIDsKK+WQkOS5syA+IHRvbnl1dVwgOwor6L+36LWwID4gbWVpc291XCA7CivmraPnrZQgPiBzZWl0b3VcIDsKK+WQjeS6uiA+IG1laWppblwgOwor5ZCI5L2TID4gZ2F0dGFpXCA7CivoloTlhYkgPiBoYWtrb3VcIDsKK+iUk+W7tiA+IG1hbicnZW5cIDsKK+W9k+eEtiA+IHRvdXplblwgOwor5Y+N5ZmsID4gaGFuemVpXCA7Civljp/lr7ggPiBnZW5zdW5cIDsKK+WQjOS7gSA+IGRvdWppblwgOwor5ZCM5Lq6ID4gZG91bmluXCA7CivlhbjpupcgPiB0ZW5yZWlcIDsKK+WQkeS4iiA+IGtvdWpvdVwgOwor5bej6baPID4gc3Vkb3JpXCA7CivljYHmnKwgPiBqdXBwb25cIDsKK+W7g+iJpiA+IGhhaWthblwgOwor5rGf5bGxID4ga291emFuXCA7CivluqfolqwgPiB6YXlha3VcIDsKK+iQjue4riA+IGlzaHVrdVwgOwor6YeN5ZCIID4ganV1Z291XCA7CivluoPoqIAgPiBrb3VnZW5cIDsKK+W7g+iIuSA+IGhhaXNlblwgOwor5buQ6IKlID4ga3l1dWhpXCA7CivlkIzkuZcgPiBkb3Vqb3VcIDsKK+W/nOaApSA+IG91a3l1dVwgOwor6YeR5Y2wID4ga2luJydpblwgOwor6YGK6Iq4ID4geXV1Z2VpXCA7Civmrovnl5UgPiB6YW5rb25cIDsKK+WJjeiRlyA+IHplbmNob1wgOwor6I+W6JKyID4gc2hvdWJ1XCA7Civph47ljp8gPiBub2hhcmFcIDsKK+axuuWjiiA+IGtla2thaVwgOwor5Y6f5a2QID4gZ2Vuc2hpXCA7Civmr5vmsIggPiBtb3VzZW5cIDsKK+WNoOaLoCA+IHNlbmt5b1wgOwor5ZCM5LiKID4gZG91am91XCA7CivliKXoo70gPiBiZXNzZWlcIDsKK+W8iuekviA+IGhlaXNoYVwgOwor5q+U5rOBID4gaGlreW91XCA7CivpgI/oppYgPiB0b3VzaGlcIDsKK+WNiuaVsCA+IGhhbnN1dVwgOwor6Yac5aWzID4gc2h1dWpvXCA7Civlirnnm64gPiBraWtpbWVcIDsKK+awkeaUvyA+IG1pbnNlaVwgOwor6bO056a9ID4gbWVpa2luXCA7CivmsJHmlL4gPiBtaW5wb3VcIDsKK+i/kemDtyA+IGtpbmdvdVwgOwor6YWS5omLID4gc2FrYXRlXCA7Civov5TpgoQgPiBoZW5rYW5cIDsKK+W8k+efoiA+IHl1bWl5YVwgOwor5YmN6I+cID4gemVuc2FpXCA7Civlj43llY8gPiBoYW5tb25cIDsKK+WHpumBhyA+IHNob2d1dVwgOwor5b+D5oqAID4gc2hpbmdpXCA7Civov5Hpg4ogPiBraW5rb3VcIDsKK+iWhOWAliA+IGhha2tvdVwgOwor5Yid6KaLID4gc2hva2VuXCA7CivmrKDoiKogPiBrZWtrb3VcIDsKK+ebl+mbuyA+IHRvdWRlblwgOwor5beo6a+oID4ga3lvZ2VpXCA7CivmsoPlnJ8gPiB5b2t1ZG9cIDsKK+W3u+mmliA+IGthbnNodVwgOwor5Ye66LazID4gZGVhc2hpXCA7CivmrovnlJ8gPiB6YW5zZWlcIDsKK+WMl+aspyA+IGhva3VvdVwgOwor55uX6ZujID4gdG91bmFuXCA7CivliqDnpoQgPiBrYXJva3VcIDsKK+WPt+S/uCA+IGdvdWhvdVwgOwor5q2755u4ID4gc2hpc291XCA7CivljbHmgKUgPiBraWt5dXVcIDsKK+WJm+iHhiA+IGdvdW9rdVwgOwor5by+54mHID4gZGFucGVuXCA7CivnnIzpgZMgPiBrZW5kb3VcIDsKK+WNs+W/nCA+IHNva3VvdVwgOwor5q2m56WeID4gYnVzaGluXCA7Civov5TpgIEgPiBoZW5zb3VcIDsKK+W+qeaUuSA+IGZ1a2thaVwgOwor6YeR5YmbID4ga29uZ291XCA7CivluaPosqIgPiBoZWlrb3VcIDsKK+mFjeaJgCA+IGhhaXNob1wgOwor5Y215b2iID4gcmFua2VpXCA7Civph5HliLggPiBraW5rZW5cIDsKK+mFlOaFiyA+IHN1aXRhaVwgOwor5bm76KaWID4gZ2Vuc2hpXCA7Civlt6jprYEgPiBreW9rYWlcIDsKK+iVg+WcsCA+IGJhbmNoaVwgOwor5Y2B5pWwID4ganV1c3V1XCA7Civmsb3lnKcgPiBraWF0c3VcIDsKK+WHoemAgCA+IGJvbnRhaVwgOwor6YGU6ICFID4gdGFzc2hhXCA7CivlvpPmnaUgPiBqdXVyYWlcIDsKK+mBuOeuoSA+IHNlbmthblwgOwor5YiG6K2yID4gYnVuam91XCA7Civlj7jkvJogPiBzaGlrYWlcIDsKK+W+oeaWmSA+IGdvcnlvdVwgOwor5YaG6auYID4gZW5kYWthXCA7Civov5HovrogPiBraW5wZW5cIDsKK+WOn+WniyA+IGdlbnNoaVwgOwor5Y+j5YaFID4ga291bmFpXCA7Civlh7rosrsgPiBzaHVwcGlcIDsKK+mHkeWGoCA+IGtpbmthblwgOwor5Y2w5b2iID4gaW5neW91XCA7Civlj7jku6QgPiBzaGlyZWlcIDsKK+mHjeWIkSA+IGp1dWtlaVwgOwor6L+96Ki0ID4gdHN1aXNvXCA7Civlj7fku6QgPiBnb3VyZWlcIDsKK+WKoOehqyA+IGthcnl1dVwgOwor5Ymb6IOGID4gZ291dGFuXCA7Civph5HlhbcgPiBrYW5hZ3VcIDsKK+WPjuWPlyA+IHNodXVqdVwgOwor6YWN5oWuID4gaGFpcnlvXCA7Civov7foq5YgPiBtZWlyb25cIDsKK+avjuavjiA+IG1haW1haVwgOwor6L+96KiYID4gdHN1aWtpXCA7CivnnaHok64gPiBzdWlyZW5cIDsKK+W/g+aEjyA+IHNoaW4nJ2lcIDsKK+WJsue3miA+IGthc3NlblwgOwor5YiH6KuMID4gc2Vra2FuXCA7Civlv5jlubQgPiBib3VuZW5cIDsKK+WNs+W6pyA+IHNva3V6YVwgOwor5be76aCtID4ga2FudG91XCA7CivlirnnlKggPiBrb3V5b3VcIDsKK+WKq+eblyA+IGdvdXRvdVwgOwor6JKy5p+zID4gaG9yeXV1XCA7CivmgZLkvosgPiBrb3VyZWlcIDsKK+WPsuS8nSA+IHNoaWRlblwgOwor5b+N5b6TID4gbmluanV1XCA7Civphbflr5IgPiBrb2trYW5cIDsKK+W4gumbuyA+IHNoaWRlblwgOwor5YuH54ybID4geXV1bW91XCA7Civmr6zmnpwgPiBreXV1a2FcIDsKK+iNt+i2syA+IG5pYXNoaVwgOwor5bi46YGTID4gam91ZG91XCA7CivliIboqZ4gPiBidW5zaGlcIDsKK+ayu+S5sSA+IGNoaXJhblwgOwor5Y215bejID4gcmFuc291XCA7CivmrbvnlKMgPiBzaGl6YW5cIDsKK+atu+eUnyA+IHNoaXNlaVwgOwor5Y2a5oSbID4gaGFrdWFpXCA7CivluLjpgKMgPiBqb3VyZW5cIDsKK+WGkumgrSA+IGJvdXRvdVwgOwor5oCn5ZCRID4gc2Vpa291XCA7CivluLDpg7cgPiBraWt5b3VcIDsKK+awtOW5syA+IHN1aWhlaVwgOwor5rK75LiWID4gY2hpc2VpXCA7CivlvJXnlKggPiBpbicneW91XCA7Civprq7pupcgPiBzZW5yZWlcIDsKK+ebrumHmCA+IG1la3VnaVwgOwor5Y+N5YuVID4gaGFuZG91XCA7CivliY3ohZUgPiBtYWV1ZGVcIDsKK+WPsuS5lyA+IHNoaWpvdVwgOwor5YiG6KejID4gYnVua2FpXCA7Civlj4LlkJEgPiBzYW5rb3VcIDsKK+WPs+S4iiA+IG1pZ2l1ZVwgOwor6YGj57GzID4ga2VuYmVpXCA7Civlj6Tkv5cgPiBrb3pva3VcIDsKK+W+jOaZryA+IGtvdWtlaVwgOwor5Y+y5LiKID4gc2hpam91XCA7CivljpblpKcgPiBib3VkYWlcIDsKK+mAgOihjCA+IHRhaWtvdVwgOwor5Y+v5LmfID4ga2FuYXJpXCA7CivlubPooaEgPiBoZWlrb3VcIDsKK+W6p+iIiCA+IHpha3lvdVwgOwor5q2j55y8ID4gc2VpZ2FuXCA7CivlubPooYwgPiBoZWlrb3VcIDsKK+W+heacmyA+IHRhaWJvdVwgOwor56OB5aOBID4gamloZWtpXCA7Civlt67poY0gPiBzYWdha3VcIDsKK+aui+eJhyA+IHphbnBlblwgOwor5Y+l5L2cID4ga3VzYWt1XCA7CivlvozmmIYgPiBrb3Vrb25cIDsKK+ato+ebriA+IG1hc2FtZVwgOwor55+i546JID4geWFkYW1hXCA7CivljYHmjIcgPiBqdXNzaGlcIDsKK+WNmOaApyA+IHRhbnNlaVwgOwor5Y6f5Z6LID4gZ2Vua2VpXCA7Civmr5vmoLkgPiBtb3Vrb25cIDsKK+W4gumWgCA+IHNoaW1vblwgOwor6JK45pWjID4gam91c2FuXCA7CivlvozmlrkgPiBrb3Vob3VcIDsKK+mFjeW9kyA+IGhhaXRvdVwgOwor5Yqg55mCID4ga2FyeW91XCA7Civlvovml4sgPiByaXNzZW5cIDsKK+WPo+S8nSA+IGtvdWRlblwgOwor6YWS5bqXID4gc2h1dGVuXCA7CivluKvpgZMgPiBzaGlkb3VcIDsKK+W6leiNtyA+IHNva29uaVwgOwor5YiK6KGMID4ga2Fua291XCA7Civlh7roqLQgPiBzaHVzc29cIDsKK+WNmuW+kiA+IGJha3V0b1wgOwor5buD57eaID4gaGFpc2VuXCA7CivnoILmvKAgPiBzYWJha3VcIDsKK+aApeWLnyA+IGt5dXVib1wgOwor5byx54GrID4geW93YWJpXCA7CivliY3ogIUgPiB6ZW5zaGFcIDsKK+aApeWLmSA+IGt5dXVtdVwgOwor5beo6aCtID4ga3lvdG91XCA7CivokYnniakgPiBoYW1vbm9cIDsKK+WIhuiigiA+IGJ1bmJlaVwgOwor5YaG6aCCID4gZW5jaG91XCA7CivmsJfmga8gPiBraXNva3VcIDsKK+W+jOaUuyA+IGtvdWtvdVwgOwor6bOp55uuID4gaGF0b21lXCA7Civph43kvZMgPiBqdXV0YWlcIDsKK+WOs+WRvSA+IGdlbm1laVwgOwor5YaS6Zm6ID4gYm91a2VuXCA7Civljp/lm6AgPiBnZW4nJ2luXCA7CivlhoXpoIUgPiBuYWlrb3VcIDsKK+WJjee/hSA+IHplbnNoaVwgOwor5bqm6IO4ID4gZG9reW91XCA7CivnnIvosqsgPiBrYW5rYW5cIDsKK+WNkeaAryA+IGhpa3lvdVwgOwor5Y2a5byVID4gaGFrdWluXCA7CivmqZ/plbcgPiBraWNob3VcIDsKK+WJsuespiA+IHdhcmlmdVwgOwor5rCX5oCnID4ga2lzaG91XCA7CivljYHmiJIgPiBqaWtrYWlcIDsKK+WPi+WFmiA+IHl1dXRvdVwgOwor5Y+X5L+hID4ganVzaGluXCA7Civnm67pgJQgPiBtb2t1dG9cIDsKK+i+sumBkyA+IG5vdWRvdVwgOwor55+z54GwID4gc2Vra2FpXCA7CivmsJHmg4UgPiBtaW5qb3VcIDsKK+WOmuWcsCA+IGF0c3VqaVwgOwor6YeN5Lu7ID4ganV1bmluXCA7Civov47os5MgPiBnZWloaW5cIDsKK+WOs+WQmyA+IGdlbmt1blwgOwor5YmN572uID4gemVuY2hpXCA7Civph43ku6MgPiBqdXVkYWlcIDsKK+WIl+iXqSA+IHJlcHBhblwgOwor6bOl55uuID4gdG9yaW1lXCA7CivljZjlvIEgPiB0YW5iZW5cIDsKK+auteautSA+IGRhbmRhblwgOwor5rC05bGLID4gbWl6dXlhXCA7CivlvoDmmJQgPiBvdXNla2lcIDsKK+mHkeS4uyA+IGtpbnNodVwgOwor56C05qC8ID4gaGFrYWt1XCA7CivljYPmha4gPiBzZW5yeW9cIDsKK+WOu+WLoiA+IGt5b3NlaVwgOwor5Y+j5LiKID4ga291am91XCA7CivlvZPmrbMgPiB0b3VzYWlcIDsKK+earumdqSA+IGhpa2FrdVwgOwor5YaF6Z2iID4gbmFpbWVuXCA7Civlt7fplpMgPiBrb3VrYW5cIDsKK+WGt+mFkiA+IHJlaXNodVwgOwor5Y215a2QID4gcmFuc2hpXCA7CivmgKrlhYkgPiBrYWlrb3VcIDsKK+WFvOmhjCA+IGtlbmRhaVwgOwor5qqA6YKjID4gZGFuJyduYVwgOwor6YeO5LitID4gbm9uYWthXCA7CivpgKDoiLkgPiB6b3VzZW5cIDsKK+WPguWGhSA+IHNhbmRhaVwgOwor5rC05a6zID4gc3VpZ2FpXCA7CivlvrnlupUgPiB0ZXR0ZWlcIDsKK+awl+W8sSA+IGtpeW93YVwgOwor5Y+b5LmxID4gaGFucmFuXCA7CivlvqHmhbYgPiBneW9rZWlcIDsKK+ecjOitpiA+IGtlbmtlaVwgOwor5bid6YGTID4gdGVpZG91XCA7CivliKXojZggPiBiZXNzb3VcIDsKK+eigeW4rSA+IGdvc2VraVwgOwor5Yid6JGJID4gc2hveW91XCA7CivlvbzmlrkgPiBrYW5hdGFcIDsKK+ebn+mCpiA+IG1laWhvdVwgOwor5b+r5aCxID4ga2FpaG91XCA7Civljq3ljq0gPiBpeWFpeWFcIDsKK+awtOWtkCA+IG1penVnb1wgOwor5YaN6ZaLID4gc2Fpa2FpXCA7CivpgaDnp7AgPiBlbnNob3VcIDsKK+WMl+aWuSA+IGhvcHBvdVwgOwor5YaF6ZmjID4gbmFpamluXCA7CivljYrlvoQgPiBoYW5rZWlcIDsKK+iRm+a5ryA+IGt1enV5dVwgOwor6a6u6a2aID4gc2VuZ3lvXCA7CivlhrfpgYcgPiByZWlndXVcIDsKK+WNiuW9sSA+IGhhbicnZWlcIDsKK+WPjeS+iyA+IGhhbnJlaVwgOwor5bej6ZubID4gc3VoaW5hXCA7Civlvq7lvLEgPiBiaWpha3VcIDsKK+mDt+adkSA+IGdvdXNvblwgOwor56Gs5oCnID4ga291c2VpXCA7CivphZLlsYsgPiBzYWtheWFcIDsKK+WFrOmkqCA+IGtvdWthblwgOwor5YmN57eoID4gemVucGVuXCA7CivpgIDolLUgPiB0YWl6b3VcIDsKK+WHneitsCA+IGd5b3VnaVwgOwor5YmN57eaID4gemVuc2VuXCA7Civmra/nirYgPiBzaGlqb3VcIDsKK+W3nemdoiA+IGthd2Ftb1wgOwor5Y6f5ZOBID4gZ2VucGluXCA7CivlvJXnhacgPiBpbnNob3VcIDsKK+WNoOWxhSA+IHNlbmt5b1wgOwor5YWo6aSoID4gemVua2FuXCA7CivljrPliJEgPiBnZW5rZWlcIDsKK+i/keipoCA+IGtpbicnZWlcIDsKK+iSmeaYpyA+IG1vdW1haVwgOwor5q6L5ruTID4gemFuc2hpXCA7CivmspnkuJggPiBzYWt5dXVcIDsKK+atu+eCuSA+IHNoaXRlblwgOwor55u46LKMID4gc291Ym91XCA7CivpgIHokawgPiBzb3Vzb3VcIDsKK+eZvemtlCA+IGhha3VtYVwgOwor5Y2c5bGFID4gYm9ra3lvXCA7Civnoo3lrZAgPiBnYWlzaGlcIDsKK+avjuaZqSA+IG1haWJhblwgOwor5Y6z5YasID4gZ2VudG91XCA7CivmrbvngbAgPiBzaGlrYWlcIDsKK+WPi+S6uiA+IHl1dWppblwgOwor55uK6YeRID4gZWtpa2luXCA7CivlirTngb0gPiByb3VzYWlcIDsKK+WPjeS5sSA+IGhhbnJhblwgOwor5Y2X5bK4ID4gbmFuZ2FuXCA7CivnnYDojbcgPiBjaGFra2FcIDsKK+WPi+S6pCA+IHl1dWtvdVwgOwor6JGm5q+bID4gYXNoaWdlXCA7CivmrKHnrKwgPiBzaGlkYWlcIDsKK+WOmuWRsyA+IGF0c3VtaVwgOwor5YW16ZujID4gaGVpbmFuXCA7CivljbPlpJwgPiBzb2t1eWFcIDsKK+W9ouacqCA+IGthdGFnaVwgOwor5bir6LOHID4gc2hpc2hpXCA7CivljZflsbEgPiBuYW56YW5cIDsKK+W/l+WjqyA+IHNoaXNoaVwgOwor55yL6KaWID4ga2Fuc2hpXCA7Civov5HoppYgPiBraW5zaGlcIDsKK+W3jOmgrSA+IGdhbnRvdVwgOwor6Iy26YGTID4gY2hhZG91XCA7CivmrKHnq6AgPiBqaXNob3VcIDsKK+WFt+mZsyA+IGd1Y2hpblwgOwor5oCq5Lq6ID4ga2FpamluXCA7Civnmbvpq5ggPiB0b3Vrb3VcIDsKK+ebpOi4niA+IGJhbmt5b1wgOwor5YW16ZqKID4gaGVpdGFpXCA7CivpgKPnvbIgPiByZW5zaG9cIDsKK+ato+eKryA+IHNlaWhhblwgOwor5Y2Y5bCEID4gdGFuc2hhXCA7Civlj4LkvJogPiBzYW5rYWlcIDsKK+WKh+eUuyA+IGdla2lnYVwgOwor5YWo6Z+zID4gemVuJydvblwgOwor5Y215aGUID4gcmFudG91XCA7CivlhZrpppYgPiB0b3VzaHVcIDsKK+mBjuensCA+IGthc2hvdVwgOwor5oCn5LqkID4gc2Vpa291XCA7CivljYHlubIgPiBqaWtrYW5cIDsKK+iLsemgmCA+IGVpcnlvdVwgOwor5Y2R5bGsID4gaGl6b2t1XCA7Civlt6jpkJggPiBvb2dhbmVcIDsKK+aoqumgmCA+IG91cnlvdVwgOwor5Y2R5bGeID4gaGl6b2t1XCA7Civnn7PmsrkgPiBzZWtpeXVcIDsKK+W7u+eKtiA+IGthaWpvdVwgOwor5YmN56+HID4gemVucGVuXCA7CivpgZTno6ggPiBkYXJ1bWFcIDsKK+WOn+WLlSA+IGdlbmRvdVwgOwor5Y2X5a6LID4gbmFuc291XCA7Civlhazpm7sgPiBrb3VkZW5cIDsKK+W8seawlyA+IHlvd2FraVwgOwor5YWo6Z2iID4gemVubWVuXCA7CivlvqHlubggPiBtaXl1a2lcIDsKK+W+mOW+iiA+IGhhaWthaVwgOwor6YO15pS/ID4geXV1c2VpXCA7CivljYrls7YgPiBoYW50b3VcIDsKK+WNkeWwjyA+IGhpc2hvdVwgOwor55m96aasID4gaGFrdWJhXCA7Civnm7joq4cgPiBzb3VkYW5cIDsKK+asneepjSA+IHVzc2VraVwgOwor5b6B5oimID4gc2Vpc2VuXCA7CivlibLnm64gPiB3YXJlbWVcIDsKK+iPjOezuCA+IGtpbnNoaVwgOwor5YWo6ZyKID4gemVucmVpXCA7CivlvozmgqMgPiBrb3VrYW5cIDsKK+W4gumBkyA+IHNoaWRvdVwgOwor6YCj57mLID4gcmVua2VpXCA7CivlvZPmnb8gPiBhdGVpdGFcIDsKK+WPguS4jiA+IHNhbicneW9cIDsKK+W+jOaClCA+IGtvdWthaVwgOwor5Y+C5LiKID4gc2Fuam91XCA7CivmsojkuIsgPiBjaGlua2FcIDsKK+ecn+iWryA+IHNoaW5qb1wgOwor5Ye96JOLID4ga2FuZ2FpXCA7Civljp/liJ0gPiBnZW5zaG9cIDsKK+WJjeerryA+IHplbnRhblwgOwor5b+r5ZOJID4ga2Fpc2FpXCA7CivmsJflraYgPiBraWdha3VcIDsKK+awtOWfnyA+IHN1aWlraVwgOwor5b6u5bCRID4gYmlzaG91XCA7Civlvq7lsI8gPiBiaXNob3VcIDsKK+WFqOmaiiA+IHplbnRhaVwgOwor6YCB6Ie0ID4gc291Y2hpXCA7CivpgKPntr8gPiByZW5tZW5cIDsKK+WJteeXlSA+IHNvdWtvblwgOwor5qyy55uuID4geW9rdW1lXCA7CivlvpfluqYgPiB0b2t1ZG9cIDsKK+W+k+W8nyA+IGp1dXRlaVwgOwor6YOo5pePID4gYnV6b2t1XCA7CivolYPkurogPiBiYW5qaW5cIDsKK+iPnOeoriA+IG5hdGFuZVwgOwor55u06Ki0ID4gamlraXNvXCA7Civljp/lhbggPiBnZW50ZW5cIDsKK+WFrOmWiyA+IGtvdWthaVwgOwor6bGX6IyOID4gcmlua2VpXCA7CivlhaXpmaIgPiBueXV1aW5cIDsKK+efreavmyA+IHRhbm1vdVwgOwor5bm76IKiID4gZ2Vuc2hpXCA7CivojZLoqpUgPiBrb3V0YW5cIDsKK+WIneiAgSA+IHNob3JvdVwgOwor6YW35ZCPID4ga29rdXJpXCA7CivpgKPntK8gPiByZW5ydWlcIDsKK+atu+a1tyA+IHNoaWthaVwgOwor6JWD5Li7ID4gYmFuc2h1XCA7CivluKvoqJMgPiBzaGlrdW5cIDsKK+aoqemZkCA+IGtlbmdlblwgOwor5YuY5qScID4ga2Fua2VuXCA7CivpgbrniakgPiBpYnV0c3VcIDsKK+WHhuiosSA+IGp1bmt5b1wgOwor6YWS5aC0ID4gc2FrYWJhXCA7CivlhajplosgPiB6ZW5rYWlcIDsKK+auieatuyA+IGp1bnNoaVwgOwor5Y6f5YOPID4gZ2Vuem91XCA7Civlu7bnhLwgPiBlbnNob3VcIDsKK+ebruiosSA+IG1lbW90b1wgOwor5rC05ZqiID4gc3Vpbm91XCA7CivlvZPmlrkgPiB0b3Vob3VcIDsKK+WHuuiNtyA+IHNodWtrYVwgOwor55yf6I+wID4gbWFrb21vXCA7CivlhYPpppYgPiBnZW5zaHVcIDsKK+WNl+WkqSA+IG5hbnRlblwgOwor55uu6KeSID4gbWVrYWRvXCA7Civlho3pgbggPiBzYWlzZW5cIDsKK+W7g+ebpCA+IGhhaWJhblwgOwor56Gr5a6JID4gcnl1dWFuXCA7CivmqZ/ou7ggPiBraWppa3VcIDsKK+WLouacmyA+IHNlaWJvdVwgOwor5qip6ZaAID4ga2VubW9uXCA7CivpipjjgIUgPiBtZWltZWlcIDsKK+WLmOahiCA+IGthbicnYW5cIDsKK+W+jOW5tCA+IGtvdW5lblwgOwor5Yy75bGAID4gaWt5b2t1XCA7Civlho3pgYogPiBzYWl5dXVcIDsKK+egsuaJiyA+IGhvdXNodVwgOwor55m96ZyyID4gaGFrdXJvXCA7CivoirHps6UgPiBrYWNob3VcIDsKK+i/veiCpSA+IHRzdWloaVwgOwor5YuY5qChID4ga2Fua291XCA7Civlv7XlhpkgPiBuZW5zaGFcIDsKK+efpeatryA+IGNoaXNoaVwgOwor5biG6LWwID4gaGFuc291XCA7CivlvoDlvqkgPiBvdWZ1a3VcIDsKK+efs+amtCA+IHpha3Vyb1wgOwor55m96ZuyID4gaGFrdXVuXCA7Civlho3pgIEgPiBzYWlzb3VcIDsKK+WFiemgrSA+IGtvdXRvdVwgOwor5b6L5birID4gcmlzc2hpXCA7CivmhIjjgIUgPiBpeW9peW9cIDsKK+WFtemLkiA+IGhlaWhvdVwgOwor5Ye66IqxID4gZGViYW5hXCA7CivmranmuKwgPiBob3Nva3VcIDsKK+WFiOmgrSA+IHNlbnRvdVwgOwor5bqD57iBID4gaGlyb2VuXCA7CivmtarjgIUgPiByb3Vyb3VcIDsKK+WKm+a8lCA+IHJpa2llblwgOwor6YKq5qyyID4gamF5b2t1XCA7Civlv4PlnJ8gPiBzaGluZG9cIDsKK+W+ruWmmSA+IGJpbXlvdVwgOwor5b6E5bqtID4ga2VpdGVpXCA7CivliKXntJkgPiBiZXNzaGlcIDsKK+W/nOWPrCA+IG91c2hvdVwgOwor5Ye66Ii5ID4gZGVmdW5lXCA7CivphbfliJEgPiBrb2trZWlcIDsKK+W/q+WIgCA+IGthaXRvdVwgOwor55+z5qO6ID4gc2Vra2FuXCA7CivlhYjpnq0gPiBzZW5iZW5cIDsKK+W3p+mBhSA+IGtvdWNoaVwgOwor5bqn56SBID4gemFzaG91XCA7Civpgbjngq0gPiBzZW50YW5cIDsKK+W8gea4iCA+IGJlbnNhaVwgOwor5Y2K5aSpID4gaGFudGVuXCA7Civlv5flkJEgPiBzaGlrb3VcIDsKK+ebo+imliA+IGthbnNoaVwgOwor5Ye66IeNID4gZGViZXNvXCA7CivlvbflvqggPiBob3Vrb3VcIDsKK+WNiuWknCA+IGhhbicneWFcIDsKK+WItuepuiA+IHNlaWt1dVwgOwor5Y6f5Lq6ID4gZ2VuamluXCA7Civlho3ou6IgPiBzYWl0ZW5cIDsKK+W9ouaIkCA+IGtlaXNlaVwgOwor5biC6LKpID4gc2hpaGFuXCA7Civlt57pg70gPiBzaHV1dG9cIDsKK+WFiembuyA+IGtvdWRlblwgOwor56Gd5a6JID4gc2hvdWFuXCA7CivliJ3ntYwgPiBzaG9rZWlcIDsKK+WNiuWjiiA+IGhhbmthaVwgOwor5byU5q2MID4gY2hvdWthXCA7Civov5HokZcgPiBraW5jaG9cIDsKK+iQveasviA+IHJha2thblwgOwor5YiH5769ID4ga2lyaWhhXCA7CivnoZ3lrZAgPiBnYXJhc3VcIDsKK+W5uee3miA+IGthbnNlblwgOwor6YO95b+DID4gdG9zaGluXCA7Civnorrkv50gPiBrYWt1aG9cIDsKK+ats+atsyA+IHNhaXNhaVwgOwor5YWF6Zu7ID4ganV1ZGVuXCA7CivmsaDkuq0gPiBjaGl0ZWlcIDsKK+WGhei8qiA+IHVjaGl3YVwgOwor6YGL55SoID4gdW4nJ3lvdVwgOwor55ub6KazID4gc2Vpa2FuXCA7CivljYPlpJwgPiBzZW4nJ3lhXCA7Civluo/nq6AgPiBqb3Nob3VcIDsKK+WItuempiA+IHNlaWd5b1wgOwor5YiG572yID4gYnVuc2hvXCA7CivlvaLmhYsgPiBrZWl0YWlcIDsKK+ehrOWkiSA+IGtvdWhlblwgOwor5YWI6ZmjID4gc2VuamluXCA7CivmsJflnKcgPiBraWF0c3VcIDsKK+WFrOmHkSA+IGtvdWtpblwgOwor6bOl5rihID4gY2hvdHRvXCA7CivpgYXnlaogPiBvc29iYW5cIDsKK+WKm+azsyA+IHJpa2llaVwgOwor5q2j5rK5ID4gc2hvdXl1XCA7CivljbDljKMgPiBpbmJha29cIDsKK+WNs+WKuSA+IHNva2tvdVwgOwor6I236Ii5ID4gbmlidW5lXCA7CivluoPnr4QgPiBrb3VoYW5cIDsKK+efs+acqCA+IGlzaGlraVwgOwor5rGf5LiKID4ga291am91XCA7CivljbPlip8gPiBzb2trb3VcIDsKK+eiqeWEkiA+IHNla2lqdVwgOwor6JGX5pu4ID4gY2hvc2hvXCA7Civlt53ovrogPiBrYXdhYmVcIDsKK+mzqea0viA+IGhhdG9oYVwgOwor5q+N5b6hID4gaGFoYWdvXCA7CivphK3lo7AgPiB0ZWlzZWlcIDsKK+egsuW8viA+IGhvdWRhblwgOwor5b2T5omAID4gdG91c2hvXCA7Civnm5voo4UgPiBzZWlzb3VcIDsKK+iKs+mmmSA+IGhvdWtvdVwgOwor5b+r5L6/ID4ga2FpYmVuXCA7CivmsLTli6IgPiBzdWlzZWlcIDsKK+mDveW6gSA+IHRvY2hvdVwgOwor5YWt6YOoID4gcm9rdWJ1XCA7CivmraLmsLQgPiBzaGlzdWlcIDsKK+murumLrSA+IHNlbicnZWlcIDsKK+mFkuWQjSA+IHNodW1laVwgOwor55ub6KGwID4gc2Vpc3VpXCA7CivmsJHlm6MgPiBtaW5kYW5cIDsKK+iKuOmiqCA+IGdlaWZ1dVwgOwor5bym5p2QID4gZ2VuemFpXCA7CivliJ3nrYkgPiBzaG90b3VcIDsKK+WFrOmCuCA+IGtvdXRlaVwgOwor5Y2w5Yi7ID4gaW5rb2t1XCA7CivlibLng7kgPiBrYXBwb3VcIDsKK+iTruWPsCA+IHJlbmRhaVwgOwor5q2j5q6/ID4gc2VpZGVuXCA7CivlhqDoqZ4gPiBrYW5zaGlcIDsKK+WGjeiyqSA+IHNhaWhhblwgOwor5YiH57eaID4gc2Vzc2VuXCA7CivliaPnirYgPiBrZW5qb3VcIDsKK+WNteWGhiA+IHJhbicnZW5cIDsKK+mFt+S8vCA+IGtva3VqaVwgOwor5Yil56iuID4gYmVzc2h1XCA7CivnnaXnnaggPiBoZWlnZWlcIDsKK+iRieafhCA+IHlvdWhlaVwgOwor6JGX5piOID4gY2hvbWVpXCA7CivlvpPlp4kgPiBqdXVzaGlcIDsKK+auuuaEjyA+IHNhdHN1aVwgOwor6L6e6KGoID4gamloeW91XCA7CivlhazpgbggPiBrb3VzZW5cIDsKK+W+k+WmuSA+IGp1dW1haVwgOwor5Yip56aPID4gcmlmdWt1XCA7CivljaDlj5YgPiBzZW5zaHVcIDsKK+atr+anvSA+IHNoaXNvdVwgOwor55yf576pID4gc2hpbmdpXCA7Civmr47lubQgPiBtYWluZW5cIDsKK+aui+aakSA+IHphbnNob1wgOwor5YWs6YGTID4ga291ZG91XCA7CivmraPmraMgPiBzZWlzZWlcIDsKK+W5s+exsyA+IGhlaWJlaVwgOwor6YWN5ZCIID4gaGFpZ291XCA7CivmsLTliIYgPiBzdWlidW5cIDsKK+ecn+e+jiA+IHNoaW5iaVwgOwor5bmE6IiOID4gYWt1c2hhXCA7CivprZrpsZcgPiBneW9yaW5cIDsKK+efouafhCA+IHlhZ2FyYVwgOwor5YWl6YOoID4gbnl1dWJ1XCA7Civnn7PmlqcgPiBzZWtpZnVcIDsKK+WGl+irhyA+IGpvdWRhblwgOwor5rC05Ya3ID4gc3VpcmVpXCA7CivlhbXou4ogPiBoZWlzaGFcIDsKK+efruaYnyA+IHdhaXNlaVwgOwor6JK85aSpID4gc291dGVuXCA7CivlhajpgZMgPiB6ZW5kb3VcIDsKK+W5vOerpSA+IHlvdWRvdVwgOwor6L2f6L2fID4gZ291Z291XCA7CivnnaHnnKAgPiBzdWltaW5cIDsKK+W3qOizhyA+IGt5b3NoaVwgOwor6JGJ5pu4ID4gaGFnYWtpXCA7CivlhazovrogPiBrb3VoZW5cIDsKK+WMheW4ryA+IGhvdXRhaVwgOwor5Y6E5LuLID4geWFra2FpXCA7CivmsJHllrYgPiBtaW4nJ2VpXCA7Civli4fmlq0gPiB5dXVkYW5cIDsKK+WLleaPuiA+IGRvdXlvdVwgOwor5q6/5b6hID4gdG9ub2dvXCA7CivmsLTlhbUgPiBzdWloZWlcIDsKK+WNgeWbniA+IGp1a2thaVwgOwor5Y2B5ZubID4ganV1eW9uXCA7Civlt6josqEgPiBreW96YWlcIDsKK+WNlOWSjCA+IGt5b3V3YVwgOwor5bm956qTID4geXV1c291XCA7Civlt53ot68gPiBrYXdhamlcIDsKK+W3t+irhyA+IGtvdWRhblwgOwor55uu6JOLID4gbWFidXRhXCA7Civli4fmlaIgPiB5dXVrYW5cIDsKK+W3qOixoSA+IGt5b3pvdVwgOwor5qip6YGTID4ga2VuZG91XCA7CivlhpfoqIAgPiBqb3VnZW5cIDsKK+efreaWhyA+IHRhbmJ1blwgOwor5qyg54mHID4ga2FrZXJhXCA7CivpgKPnm58gPiByZW5tZWlcIDsKK+W5vOeomiA+IHlvdWNoaVwgOwor5b6M5aSpID4ga291dGVuXCA7CivlhbfotrMgPiBndXNva3VcIDsKK+mxl+eyiSA+IHJpbnB1blwgOwor5YyW5a2mID4ga2FnYWt1XCA7CivpgbXms5UgPiBqdW5wb3VcIDsKK+eZvemHkSA+IGhha2tpblwgOwor5YWs6LuiID4ga291dGVuXCA7CivpganmuKkgPiB0ZWtpb25cIDsKK+WNl+WNiiA+IG5hbmhhblwgOwor6YC455CDID4gaWtreXV1XCA7CivphY3liaQgPiBoYWl6YWlcIDsKK+eah+mBkyA+IGtvdWRvdVwgOwor5q2v5qC5ID4gc2hpa29uXCA7CivljZLljrsgPiBzb2treW9cIDsKK+WGjeiqlSA+IHNhaXRhblwgOwor5YWI6YutID4gc2VuJydlaVwgOwor6YG45rCRID4gc2VubWluXCA7CivluILooZcgPiBzaGlnYWlcIDsKK+W1qemrmCA+IHN1dWtvdVwgOwor5YWI6YuSID4gc2VucG91XCA7CivnnJ/ntr8gPiBtYXdhdGFcIDsKK+aso+eEtiA+IGtpbnplblwgOwor5b6M5aG1ID4ga291amluXCA7Civlhajou40gPiB6ZW5ndW5cIDsKK+mAgeeovyA+IHNvdWtvdVwgOwor5Ya36JS1ID4gcmVpem91XCA7CivphY3liIYgPiBoYWlidW5cIDsKK+W+qeWToSA+IGZ1a3VpblwgOwor5Ye657SNID4gc3VpdG91XCA7Civlh6bnva4gPiBzaG9jaGlcIDsKK+W+mOWbniA+IGhhaWthaVwgOwor6L+3562UID4gbWVpdG91XCA7CivnmbrphbUgPiBoYWtrb3VcIDsKK+WGjeioqiA+IHNhaWhvdVwgOwor5b6M5aCxID4ga291aG91XCA7CivojYnokYkgPiBrdXNhYmFcIDsKK+W9qeWxpCA+IHNhaXNvdVwgOwor5bm056iOID4gbmVuemVpXCA7Civlho3oqIIgPiBzYWl0ZWlcIDsKK+iLm+mFtyA+IGtha29rdVwgOwor5by35omTID4ga3lvdWRhXCA7CivpgqrmlZkgPiBqYWt5b3VcIDsKK+efouaWhyA+IHlhYnVtaVwgOwor5YaF6KuHID4gbmFpZGFuXCA7CivmsI/lkI0gPiBzaGltZWlcIDsKK+WFt+ixoSA+IGd1c2hvdVwgOwor55yf57SFID4gc2hpbmt1XCA7CivljZPlirkgPiB0YWtrb3VcIDsKK+iJpum9oiA+IGthbnJlaVwgOwor5Yuk5oCgID4ga2ludGFpXCA7CivljbPku4ogPiBzb2trb25cIDsKK+mAo+eVqiA+IHJlbmJhblwgOwor5b605YufID4gY2hvdWJvXCA7CivpgqbmlocgPiBob3VidW5cIDsKK+W9k+W6lyA+IHRvdXRlblwgOwor5qyg54K5ID4ga2V0dGVuXCA7CivlvIrmnZEgPiBoZWlzb25cIDsKK+W9k+W5tCA+IHRvdW5lblwgOwor5bm056WtID4gbmVuc2FpXCA7CivlvbzlpbMgPiBrYW5vam9cIDsKK+atu+aWkSA+IHNoaWhhblwgOwor6I2357iEID4gbmluYXdhXCA7CivmrbvmlocgPiBzaGlidW5cIDsKK+iNj+iLkiA+IGppbnplblwgOwor5q2z5pmpID4gc2FpYmFuXCA7CivljIXlrrkgPiBob3V5b3VcIDsKK+i+suiKuCA+IG5vdWdlaVwgOwor5bm056S8ID4gbmVucmVpXCA7CivlvJTml5cgPiBjaG91a2lcIDsKK+mAgOekviA+IHRhaXNoYVwgOwor5Y2K5Y2KID4gaGFuaGFuXCA7CivliKXnm4MgPiBiZXBwYWlcIDsKK+mBjua/gCA+IGthZ2VraVwgOwor5YaF6KiTID4gbmFpa3VuXCA7Civnmofou40gPiBrb3VndW5cIDsKK+WGheiojCA+IG5haWtvdVwgOwor5rC05LuZID4gc3Vpc2VuXCA7CivojYnojYkgPiBzb3Vzb3VcIDsKK+WNtOS4iyA+IGt5YWtrYVwgOwor5YuV5oWLID4gZG91dGFpXCA7Civlho3oo70gPiBzYWlzZWlcIDsKK+ats+aYnyA+IHNhaXNlaVwgOwor5by35oWiID4gZ291bWFuXCA7Civlt6foqIAgPiBrb3VnZW5cIDsKK+W4jOiWhCA+IGtpaGFrdVwgOwor5Y2Y5YWDID4gdGFuZ2VuXCA7CivpgaDmtYUgPiB0b29hc2FcIDsKK+i9hui9pCA+IHJva3Vyb1wgOwor5q+S5ammID4gZG9rdWZ1XCA7CivmrbPml6YgPiBzYWl0YW5cIDsKK+WNl+WFiSA+IG5hbmtvdVwgOwor5Y2B5Y+wID4ganV1ZGFpXCA7CivphY3lgbYgPiBoYWlndXVcIDsKK+WGheimsyA+IG5haWthblwgOwor55m66YCBID4gaGFzc291XCA7CivlvqHlkYogPiBvdHN1Z2VcIDsKK+WGheimpyA+IG5haXJhblwgOwor6YGg5rSLID4gZW4nJ3lvdVwgOwor5by+5oCnID4gZGFuc2VpXCA7CivlhoXoposgPiBuYWlrZW5cIDsKK+W9ouWuuSA+IGtlaXlvdVwgOwor6YOo5bGeID4gYnV6b2t1XCA7CivmraPmnbEgPiBzZWl0b3VcIDsKK+W8t+aDhSA+IGdvdWpvdVwgOwor5Y2D5Y2DID4gY2hpZGppXCA7Civov5HnuIEgPiBraW4nJ2VuXCA7CivnnJ/nrocgPiBzaGlua29cIDsKK+mtmumhniA+IGd5b3J1aVwgOwor5YuH5oimID4geXV1c2VuXCA7Civpto/lj6MgPiBrZWlrb3VcIDsKK+W4uOe9riA+IGpvdWNoaVwgOwor5Y2S5YWIID4gc29zc2VuXCA7Civlh7rnq68gPiBkZWJhbmFcIDsKK+mBoOayiCA+IGVuY2hpblwgOwor5q2j5pysID4gc2VpaG9uXCA7CivmraPmnKggPiBtYXNha2lcIDsKK+WFqOiyjCA+IHplbmJvdVwgOwor6YOo5bCGID4gYnVzaG91XCA7CivlhYjpgaMgPiBzZW5rZW5cIDsKK+ehq+WMliA+IHJ5dXVrYVwgOwor6YGh5rGCID4gc29reXV1XCA7CivnnLznnrwgPiBnYW5rZW5cIDsKK+WNiuWIhiA+IGhhbnB1blwgOwor5YiG56S+ID4gYnVuc2hhXCA7CivmraPmm7ggPiBzZWlzaG9cIDsKK+WFpeiyuyA+IG55dXVoaVwgOwor55+t5omAID4gdGFuc2hvXCA7CivljYjliLsgPiBnb2tva3VcIDsKK+eZu+i8iSA+IHRvdXNhaVwgOwor5byK5pa5ID4gaGVpaG91XCA7CivljaDkvY8gPiBzZW5qdXVcIDsKK+W3oeimpyA+IGp1bnJhblwgOwor5rCX5YSYID4ga2ltYW1hXCA7Civlv4zkuK0gPiBraWNodXVcIDsKK+WGheijhSA+IG5haXNvdVwgOwor5Yun5belID4ga2Fua291XCA7CivlvbnloLQgPiB5YWt1YmFcIDsKK+mtlOmiqCA+IG1ha2F6ZVwgOwor5Ye656qTID4gZGVtYWRvXCA7Civlvozll6MgPiBrb3VzaGlcIDsKK+ebruiEgiA+IG1leWFuaVwgOwor5beh6KaWID4ganVuc2hpXCA7CivliqnmlZkgPiBqb2t5b3VcIDsKK+mFkuS7mSA+IHNodXNlblwgOwor6baP5Y21ID4ga2VpcmFuXCA7CivnnJ/nq7kgPiBtYWRha2VcIDsKK+eci+e1jCA+IGthbmtpblwgOwor5bu65p2QID4ga2VuemFpXCA7Civnmbrou4ogPiBoYXNzaGFcIDsKK+awkeWFtSA+IG1pbnBlaVwgOwor5b6p5YiKID4gZnVra2FuXCA7CivljYrlhoYgPiBoYW4nJ2VuXCA7Civli5jlvZMgPiBrYW5kb3VcIDsKK+W8iuaUvyA+IGhlaXNlaVwgOwor5YyI5aW0ID4ga3lvdWRvXCA7CivphZLkubEgPiBzaHVyYW5cIDsKK+ebsuiAhSA+IG1vdXNoYVwgOwor5buD5rayID4gaGFpZWtpXCA7Civnn4fmmKcgPiBtb3VtYWlcIDsKK+W3puihqCA+IHNhaHlvdVwgOwor6YGF5rueID4gY2hpdGFpXCA7CivliIDnpLwgPiB0b3VyZWlcIDsKK+W8geaYjiA+IGJlbm1laVwgOwor5b+D5LqLID4gc2hpbmppXCA7Civli5jlvIEgPiBrYW5iZW5cIDsKK+assuawlyA+IHlva3VrZVwgOwor55+t5oWuID4gdGFucnlvXCA7CivljYPliIYgPiBzZW5idW5cIDsKK+WKo+aVlyA+IHJlcHBhaVwgOwor5q+O5aSVID4gbWFpeXV1XCA7CivnoLLlo7AgPiBob3VzZWlcIDsKK+WFiei8qiA+IGtvdXJpblwgOwor5Y2S5YCSID4gc290dG91XCA7CivljZjkvZMgPiB0YW50YWlcIDsKK+eZvui2syA+IG11a2FkZVwgOwor5qyn5rSyID4gb3VzaHV1XCA7Civli4XmhI8gPiBjaG9rdWlcIDsKK+WFrOirliA+IGtvdXJvblwgOwor5Y2B5YiGID4ganVwcHVuXCA7CivprZrpm7cgPiBneW9yYWlcIDsKK+WFiOi8qSA+IHNlbnBhaVwgOwor5bmz55uuID4gaGlyYW1lXCA7Civpg7flo6sgPiBnb3VzaGlcIDsKK+atpOaWuSA+IGtvbmF0YVwgOwor5Ymj5rOVID4ga2VucG91XCA7Civlvq7lgrcgPiBiaXNob3VcIDsKK+iMtuiMtiA+IGNoYWNoYVwgOwor5q2j5pa5ID4gc2VpaG91XCA7CivmrabmlZkgPiBidWt5b3VcIDsKK+WJquavmyA+IHNlbm1vdVwgOwor6L6b6IumID4gc2hpbmt1XCA7CivphY3kuZcgPiBoYWlqb3VcIDsKK+W4guiRrCA+IHNoaXNvdVwgOwor55+c5oyBID4ga3lvdWppXCA7CivovrLogJUgPiBub3Vrb3VcIDsKK+WNkeS/lyA+IGhpem9rdVwgOwor5Y2D5YaGID4gc2VuJydlblwgOwor5Yid55SfID4gc2hvc2VpXCA7Civlhazoqo0gPiBrb3VuaW5cIDsKK+W3oeihjCA+IGp1bmtvdVwgOwor5Yy65YqDID4ga3VrYWt1XCA7CivmraPmlocgPiBzZWlidW5cIDsKK+WFrOippiA+IGtvdXNoaVwgOwor5rCX5L6tID4ga2ltYW1hXCA7CivmrYzmoLwgPiBrYWtha3VcIDsKK+W5veeVjCA+IHl1dWthaVwgOwor5q2j5pWwID4gc2Vpc3V1XCA7CivlvozlkbMgPiBhdG9hamlcIDsKK+egsuWhlCA+IGhvdXRvdVwgOwor56Gd5YyWID4gc2hvdWthXCA7CivlhbzooYwgPiBrZW5rb3VcIDsKK+W8t+W6piA+IGt5b3Vkb1wgOwor5b2r5aGRID4gY2hvdXNvXCA7CivljYHlhaggPiBqdXV6ZW5cIDsKK+WFrOiosSA+IGtvdWt5b1wgOwor55m66LWwID4gaGFzc291XCA7CivljZfkuqwgPiBuYW5raW5cIDsKK+efpeaFriA+IGNoaXJ5b1wgOwor5q275omAID4gc2hpc2hvXCA7CivlubznlJ8gPiB5b3VzZWlcIDsKK+mBk+awkSA+IGRvdW1pblwgOwor5Y2K5YCkID4gaGFuJyduZVwgOwor5YWs6KiAID4ga291Z2VuXCA7CivmgrbjgIUgPiBtb25tb25cIDsKK+i/lOetlCA+IGhlbnRvdVwgOwor6Iy26ImyID4gY2hhaXJvXCA7CivmqKnorIAgPiBrZW5ib3VcIDsKK+m2j+WGoCA+IHRvc2FrYVwgOwor55m+6LKoID4gaHlha2thXCA7Civlu7vmlocgPiBrYWlidW5cIDsKK+WLgeaCjSA+IGtlaWthblwgOwor5YWD6LuNID4gZ2VuZ3VuXCA7CivljYHlhIQgPiBqdXVva3VcIDsKK+W8leaJiyA+IGhpa2l0ZVwgOwor5b2i5aOwID4ga2Vpc2VpXCA7CivprZTpmpwgPiBtYXNob3VcIDsKK+WIh+ebriA+IGtpcmVtZVwgOwor5byV5oi4ID4gaGlraWRvXCA7Civou5/poqggPiBuYW5wdXVcIDsKK+W5uOeUmiA+IGtvdWppblwgOwor5b6F5ZG9ID4gdGFpbWVpXCA7CivnnLznlYwgPiBnYW5rYWlcIDsKK+iMtuiHvCA+IGNoYXVzdVwgOwor6YG45pu4ID4gc2Vuc2hvXCA7Civoi7HoqLMgPiBlaXlha3VcIDsKK+i7oumfsyA+IHRlbicnb25cIDsKK+aui+W9sSA+IHphbicnZWlcIDsKK+W+jOWNiiA+IGtvdWhhblwgOwor6Iqz6YaHID4gaG91anVuXCA7CivlubTnlKMgPiBuZW5zYW5cIDsKK+W5tOeUnyA+IG5lbnNlaVwgOwor5Y2D5YCNID4gc2VuYmFpXCA7Civlu4PmrosgPiBoYWl6YW5cIDsKK+iJr+mmrCA+IHJ5b3ViYVwgOwor5b6T5YmNID4ganV1emVuXCA7CivlubPnlJ8gPiBoZWl6ZWlcIDsKK+mDt+WcnyA+IGt5b3Vkb1wgOwor6YGK5rCRID4geXV1bWluXCA7CivokZvluIMgPiBrdXp1ZnVcIDsKK+W7g+atoiA+IGhhaXNoaVwgOwor6Lyq6LuiID4gcmludGVuXCA7CivluIboiLkgPiBob2J1bmVcIDsKK+WNgeWAjSA+IGp1dWJhaVwgOwor55+l5oCnID4gY2hpc2VpXCA7CivliZvmr5sgPiBnb3Vtb3VcIDsKK+avjuWbniA+IG1haWthaVwgOwor5q+N5Zu9ID4gYm9rb2t1XCA7CivmsJHkurogPiBtaW5qaW5cIDsKK+ecn+eggiA+IG1hc2Fnb1wgOwor5Yqp5omLID4gc3VrZXRlXCA7CivmraLmj5ogPiBzaGl5b3VcIDsKK+W5veeOhCA+IHl1dWdlblwgOwor6Iq46YGTID4gZ2VpZG91XCA7CivlhYjos6IgPiBzZW5rZW5cIDsKK+WKoOaMryA+IGthc2hpblwgOwor55ub6ICFID4gam91c2hhXCA7Civlvbnlk6EgPiB5YWt1aW5cIDsKK+W+ruS5syA+IGJpbnl1dVwgOwor55yM56iOID4ga2VuemVpXCA7CivluLPnsL8gPiBjaG91Ym9cIDsKK+mCquW/gyA+IGphc2hpblwgOwor5YSq6YGHID4geXV1Z3V1XCA7Civnn7Plt6UgPiBzZWtrb3VcIDsKK+WGheiUtSA+IG5haXpvdVwgOwor6Ii56b2iID4gc2VucmVpXCA7CivmsJHkuLsgPiBtaW5zaHVcIDsKK+WIneeKryA+IHNob2hhblwgOwor5b6M5Yi7ID4gZ29rb2t1XCA7Civmrr/loIIgPiBkZW5kb3VcIDsKK+W+qeS6pCA+IGZ1a2tvdVwgOwor5bq25rCRID4gc2hvbWluXCA7CivnnqzmmYIgPiBzaHVuamlcIDsKK+WEqumAgCA+IHl1dXRhaVwgOwor5Ye555uuID4ga3Vib21lXCA7CivlvpPlhYQgPiBqdXVrZWlcIDsKK+WKo+aJjSA+IHJlc3NhaVwgOwor5Y2D5LutID4gc2VuamluXCA7CivliIbnlYwgPiBidW5rYWlcIDsKK+WNg+S7niA+IHNlbmppblwgOwor6Lyq6LedID4gcmlua3lvXCA7CivoiabpppYgPiBrYW5zaHVcIDsKK+i/lOekvCA+IGhlbnJlaVwgOwor5YiA55eVID4gdG91a29uXCA7CivliJ3niYggPiBzaG9oYW5cIDsKK+mztOaIuCA+IG5hcnV0b1wgOwor5Y2B5LujID4ganV1ZGFpXCA7Civli5jlrpogPiBrYW5qb3VcIDsKK+WGheiSmSA+IG5haW1vdVwgOwor55uu57OeID4gbWVrdXNvXCA7CivluqfmtbQgPiB6YXlva3VcIDsKK+aomeiqniA+IGh5b3Vnb1wgOwor55m96KmxID4gaGFrdXdhXCA7CivliKTnhLYgPiBoYW56ZW5cIDsKK+egguWtkCA+IHN1bmFnb1wgOwor5byB5omNID4gYmVuc2FpXCA7CivmgqDjgIUgPiB5dXV5dXVcIDsKK+aoqeihoSA+IGtlbmtvdVwgOwor5Yq05b25ID4gcm91ZWtpXCA7CivojJfojbcgPiBteW91Z2FcIDsKK+ebruexoCA+IG1la2Fnb1wgOwor552A54mpID4ga2ltb25vXCA7Civou4rpoqggPiBzaGFmdXVcIDsKK+aomeiomCA+IGh5b3VraVwgOwor6aya6auvID4gc2h1emVuXCA7CivliY3mrrUgPiB6ZW5kYW5cIDsKK+mBruaWrSA+IHNoYWRhblwgOwor6IyO6JGJID4ga2VpeW91XCA7CivpganmmYIgPiB0ZWtpamlcIDsKK+W4q+evhCA+IHNoaWhhblwgOwor6I2J57SZID4gc291c2hpXCA7CivokL3lvowgPiByYWt1Z29cIDsKK+ebsueuoSA+IG1vdWthblwgOwor5Y2B5LiJID4ganV1c2FuXCA7CivljYHkuIcgPiBqdXVtYW5cIDsKK+avkuWRsyA+IGRva3VtaVwgOwor6JGJ5be7ID4gaGFtYWtpXCA7CivluILogoYgPiBzaGlzaGlcIDsKK+W8teWtkCA+IGhhcmlrb1wgOwor55+z5bGLID4gaXNoaXlhXCA7CivlvqHkuLsgPiBvbnVzaGlcIDsKK+mDveWQiCA+IHRzdWdvdVwgOwor5bm754eIID4gZ2VudG91XCA7CivlvqHkuK0gPiBvbmNodXVcIDsKK+iKsei8qiA+IGhhbmF3YVwgOwor5byB5oW2ID4gYmVua2VpXCA7CivlhY3oqLEgPiBtZW5reW9cIDsKK+W5sueKryA+IGthbnBhblwgOwor5Ymq5p6dID4gc2Vuc2hpXCA7CivoirHou7ggPiBrYWppa3VcIDsKK+W5veeEtiA+IHl1dXplblwgOwor5Ye555SwID4ga3Vib3RhXCA7Civoi6boobcgPiBrdWNodXVcIDsKK+eZuuimiyA+IGhha2tlblwgOwor5YWO6KeSID4gdG9rYWt1XCA7CivlvZPlnLAgPiB0b3VjaGlcIDsKK+W5sueJqSA+IGhpbW9ub1wgOwor5bmz54mIID4gaGVpaGFuXCA7Civoi6booYwgPiBrdWd5b3VcIDsKK+mvqOiEgiA+IGdlaXNoaVwgOwor5YaN6IiIID4gc2Fpa291XCA7CivokL3luqYgPiBvY2hpZG9cIDsKK+egsuWPsCA+IGhvdWRhaVwgOwor5YaN6IeoID4gc2FpcmluXCA7CivnoLLlj6MgPiBob3Vrb3VcIDsKK+ecn+eUsCA+IHNhbmFkYVwgOwor5Yqp5b25ID4gam95YWt1XCA7Civmr47lj7cgPiBtYWlnb3VcIDsKK+WKo+aApyA+IHJlc3NlaVwgOwor55uu56yKID4gbWV6YXJ1XCA7Civmra/lvaIgPiBoYWdhdGFcIDsKK+W8vuWljyA+IGRhbnNvdVwgOwor5YyF5ZCrID4gaG91Z2FuXCA7Civlu4PmoKEgPiBoYWlrb3VcIDsKK+W+jOS+vyA+IGtvdWJpblwgOwor6YG45oyZID4gc2Vua3lvXCA7CivljI3ljJAgPiBob2Z1a3VcIDsKK+mDiuWkliA+IGtvdWdhaVwgOwor5by35aemID4gZ291a2FuXCA7Civnmb3ooaMgPiBieWFrdWVcIDsKK+WJluaknCA+IGJvdWtlblwgOwor5beo6ImmID4ga3lva2FuXCA7CivpgLLmrakgPiBzaGlucG9cIDsKK+WHoeecvCA+IGJvbmdhblwgOwor5YOn6ZaAID4gc291bW9uXCA7Civov5Tnm4MgPiBoZW5wYWlcIDsKK+W3peiKuCA+IGtvdWdlaVwgOwor6LuN6ZqKID4gZ3VudGFpXCA7Civov5HnnIwgPiBraW5rZW5cIDsKK+iQveW3riA+IHJha3VzYVwgOwor5bm754GvID4gZ2VudG91XCA7Civlt6joiLkgPiBreW9zZW5cIDsKK+mxl+eKtiA+IHJpbmpvdVwgOwor5YaF6IiqID4gbmFpa291XCA7CivlhYjoposgPiBzZW5rZW5cIDsKK+i7jemZoyA+IGd1bmppblwgOwor6Lyq6KybID4gcmlua291XCA7CivmrovlrZggPiB6YW56b25cIDsKK+edgOeBqyA+IGNoYWtrYVwgOwor5bmz54S2ID4gaGVpemVuXCA7CivliIfniYcgPiBzZXBwZW5cIDsKK+eZuuihjCA+IGhha2tvdVwgOwor5YyX5YWJID4gaG9ra291XCA7CivmrablvrMgPiBidXRva3VcIDsKK+ecieebriA+IGJpbW9rdVwgOwor55yI55yIID4gdGFudGFuXCA7CivnnLzngrkgPiBnYW50ZW5cIDsKK+WLleWkqSA+IGRvdXRlblwgOwor5Yqf5b6zID4ga3Vkb2t1XCA7Civlvozku7sgPiBrb3VuaW5cIDsKK+W7g+adkCA+IGhhaXphaVwgOwor5YaF6IeTID4gbmFpem91XCA7Civlvozku7YgPiBrb3VrZW5cIDsKK+iJpumaiiA+IGthbnRhaVwgOwor6IuX6KOUID4gYnlvdWVpXCA7CivliqDlvbkgPiBrYXlha3VcIDsKK+mBuOaJiyA+IHNlbnNodVwgOwor5b6M5LujID4ga291ZGFpXCA7CivpsZfniYcgPiByaW5wZW5cIDsKK+W8iuW6lyA+IGhlaXRlblwgOwor55yf55CGID4gc2hpbnJpXCA7CivliIPniakgPiBoYW1vbm9cIDsKK+WElei8qSA+IHNhaWhhaVwgOwor55qu6IacID4gaGltYWt1XCA7CivlvozkurogPiBrb3VqaW5cIDsKK+W9ueWEgCA+IHlha3VnaVwgOwor55yf54+gID4gc2hpbmp1XCA7CivlkKbjgIUgPiBpeWFpeWFcIDsKK+WJquaWrSA+IHNlbmRhblwgOwor5YWs6JGsID4ga291c291XCA7CivnoILloLQgPiBzdW5hYmFcIDsKK+W8geW9kyA+IGJlbnRvdVwgOwor5YaF6IWUID4gbmFpa291XCA7CivpgJPmuJsgPiB0ZWlnZW5cIDsKK+W3oeiIqiA+IGp1bmtvdVwgOwor5b6A5L+hID4gb3VzaGluXCA7Civou43ploAgPiBndW5tb25cIDsKK+W6p+aomSA+IHphaHlvdVwgOwor5q2j5b2TID4gc2VpdG91XCA7CivojZLnpZ4gPiBrb3VqaW5cIDsKK+mtmumBkyA+IGd5b2RvdVwgOwor5q275bGNID4gc2hpc2hpXCA7CivoiYfpppYgPiB0ZWlzaHVcIDsKK+mCquWulyA+IGphc2h1dVwgOwor5q2j5bymID4gc2VpZ2VuXCA7CivojYnnqL8gPiBzb3Vrb3VcIDsKK+WLh+WnvyA+IHl1dXNoaVwgOwor5YaN6ICDID4gc2Fpa291XCA7CivliIbnhZkgPiBidW4nJ2VuXCA7CivmrKDmnKwgPiBrZXBwb25cIDsKK+W+jOS4liA+IGtvdXNlaVwgOwor5YWI6KGMID4gc2Vua291XCA7Civou5/pi7wgPiBuYW5rb3VcIDsKK+avjuWIhiA+IG1haWZ1blwgOwor5Yi25q2iID4gc2Vpc2hpXCA7Civpg7XliLggPiB5dXVrZW5cIDsKK+iNkuejryA+IGFyYWlzb1wgOwor6Lu96LypID4ga2VpaGFpXCA7Civoj6/ml48gPiBrYXpva3VcIDsKK+W9ouWLoiA+IGtlaXNlaVwgOwor5qeL6YCgID4ga291em91XCA7CivokZflpKcgPiBjaG9kYWlcIDsKK+WHuueJqSA+IGRlbW9ub1wgOwor6IyF6IiOID4gYm91c2hhXCA7Civluqfmpa0gPiB6YWd5b3VcIDsKK+WLneWboCA+IHNob3VpblwgOwor55m96Jm5ID4gaGFra291XCA7Civnmq7ogokgPiBoaW5pa3VcIDsKK+WJjeagvSA+IHNlbnphaVwgOwor6auY6b2iID4ga291cmVpXCA7CivnoLLlhbUgPiBob3VoZWlcIDsKK+WGheiBniA+IG5haWJ1blwgOwor5YiG54K5ID4gYnVudGVuXCA7CivmrbvlroggPiBzaGlzaHVcIDsKK+W6leatoiA+IHRlaXNoaVwgOwor5YW16Ii5ID4gaGVpc2VuXCA7CivliKXms5UgPiBiZXBwb3VcIDsKK+WHuOeJiCA+IHRvcHBhblwgOwor5YWr6I2SID4gaGFra291XCA7CivpgJrmsJcgPiB0c3V1a2lcIDsKK+WKoOW3niA+IGthc2h1dVwgOwor5q2j5bi9ID4gc2VpYm91XCA7CivlhbXoiI4gPiBoZWlzaGFcIDsKK+ato+W4uCA+IHNlaWpvdVwgOwor5bu75buKID4ga2Fpcm91XCA7CivpgJ/mrakgPiBzb2t1aG9cIDsKK+W5sua9nyA+IGhpZ2F0YVwgOwor6Lu96LqBID4ga2Vpc291XCA7CivpgaXmi50gPiB5b3VoYWlcIDsKK+mBiuaYnyA+IHl1dXNlaVwgOwor6Iq46KuHID4gZ2VpZGFuXCA7CivpgY7mlpkgPiBrYXJ5b3VcIDsKK+WLh+WjriA+IHl1dXNvdVwgOwor5YuH5aOrID4geXV1c2hpXCA7Civnm6PnpoEgPiBrYW5raW5cIDsKK+W3p+iAhSA+IGtvdXNoYVwgOwor5YSq6KuaID4geXV1am91XCA7Civps6nluqcgPiBoYXRvemFcIDsKK+efreWkpyA+IHRhbmRhaVwgOwor5bem57+8ID4gc2F5b2t1XCA7CivojLbnrYUgPiBjaGFzZW5cIDsKK+WJjeadvyA+IG1hZWl0YVwgOwor5YO76YGgID4gaGVraWVuXCA7Civpq5jpupcgPiBrb3VyYWlcIDsKK+i6q+mggyA+IG1pZ29yb1wgOwor55+z5aGKID4gc2Vra2FpXCA7CivliY3mnaEgPiB6ZW5qb3VcIDsKK+WFpeiNtyA+IG55dXVrYVwgOwor5bSH6auYID4gc3V1a291XCA7CivlibLmi6AgPiBrYWtreW9cIDsKK+W8t+WbuiA+IGt5b3Vrb1wgOwor5q2T5b6FID4ga2FudGFpXCA7CivlubPmupYgPiBoZWlqdW5cIDsKK+iIuemmliA+IHNlbnNodVwgOwor5byf5aa5ID4gdGVpbWFpXCA7Civnl5vpo7IgPiB0c3V1aW5cIDsKK+WKvuWljyA+IGdhaXNvdVwgOwor5bmy5rqAID4ga2FubWFuXCA7CivliY3mm7ggPiB6ZW5zaG9cIDsKK+W7tuW5tCA+IGVuJyduZW5cIDsKK+eXhemtlCA+IGJ5b3VtYVwgOwor5bqD5rGOID4ga291aGFuXCA7CivliKnmrLIgPiByaXlva3VcIDsKK+mDreWFrCA+IGtha2tvdVwgOwor5YWs6IiOID4ga291c2hhXCA7Civluq3mnKggPiBuaXdha2lcIDsKK+alvemfsyA+IGdha3VvblwgOwor5q6L5aGBID4gemFucnVpXCA7CivlhaXoi5EgPiBueXV1ZW5cIDsKK+iLpeiRiSA+IHdha2FiYVwgOwor5YeG55yLID4ganVua2FuXCA7Civlho3nt6ggPiBzYWloZW5cIDsKK+WHjeeYoSA+IHRvdXNvdVwgOwor5bi455SoID4gam91eW91XCA7Civli7Llip8gPiBrdW5rb3VcIDsKK+W8iuWusyA+IGhlaWdhaVwgOwor5q2k5bK4ID4gc2hpZ2FuXCA7CivlhajoiLkgPiB6ZW5zZW5cIDsKK+W5s+a3oSA+IGhlaXRhblwgOwor5YWo6IisID4gemVucGFuXCA7CivliY3mma8gPiB6ZW5rZWlcIDsKK+mBoOaImiA+IGVuc2VraVwgOwor5q665YiwID4gc2F0dG91XCA7Civlh7rngasgPiBzaHVra2FcIDsKK+ebruebmyA+IG1lbW9yaVwgOwor6Iul6I+cID4gd2FrYW5hXCA7CivluIbnq4sgPiBob3RhdGVcIDsKK+mDoeWItiA+IGd1bnNlaVwgOwor6YO15L6/ID4geXV1YmluXCA7Civou6LpgIEgPiB0ZW5zb3VcIDsKK+mBt+W7tiA+IHNlbicnZW5cIDsKK+atpuWwhiA+IGJ1c2hvdVwgOwor55uu55m9ID4gbWVqaXJvXCA7CivlurbmlL8gPiBzaG9zZWlcIDsKK+ebquebqiA+IHRvdXRvdVwgOwor5Yid5q61ID4gc2hvZGFuXCA7CivlvZPliJ0gPiB0b3VzaG9cIDsKK+iIuemgrSA+IHNlbmRvdVwgOwor5b2T5YiGID4gdG91YnVuXCA7CivpgLHmnJ8gPiBzaHV1a2lcIDsKK+mDjuWQmyA+IHJvdWt1blwgOwor5byY5aSnID4ga291ZGFpXCA7Civov5HnirYgPiBraW5qb3VcIDsKK+W3qOe3qCA+IGt5b2hlblwgOwor5q6L5ZyoID4gemFuem9uXCA7CivoirHoposgPiBoYW5hbWlcIDsKK+avgOWCtyA+IGtpc2hvdVwgOwor5YaF57eaID4gbmFpc2VuXCA7Civlt6fnt7sgPiBrb3VjaGlcIDsKK+asoOaQjSA+IGtlc3NvblwgOwor5YaF57eSID4gbmFpc2hvXCA7CivpgbflubggPiBzZW5rb3VcIDsKK+WIkeazlSA+IGtlaWhvdVwgOwor6bO05a2QID4gbmFydWtvXCA7CivliY3mlocgPiB6ZW5idW5cIDsKK+iIt+mgrSA+IGdlbnRvdVwgOwor5q2m5a2mID4gYnVnYWt1XCA7CivpgaPmgrYgPiBrZW5tb25cIDsKK+WHuua9riA+IGRlc2hpb1wgOwor5bit55S7ID4gc2VraWdhXCA7CivpgIbmr5sgPiBzYWthZ2VcIDsKK+mBqeW/nCA+IHRla2lvdVwgOwor6a2a6LKdID4gZ3lvYmFpXCA7Civoi6Xoir0gPiB3YWthbWVcIDsKK+i7oui8iSA+IHRlbnNhaVwgOwor5Ya355y8ID4gcmVpZ2FuXCA7Civli6Tli4kgPiBraW5iZW5cIDsKK+WKseWjsCA+IHJlaXNlaVwgOwor5qub5q+UID4gc2hpcHBpXCA7CivpgIHmsLQgPiBzb3VzdWlcIDsKK+WLpOWKtCA+IGtpbnJvdVwgOwor5biC56iOID4gc2hpemVpXCA7CivnoLLkuLggPiBob3VnYW5cIDsKK+avjeS5syA+IGJvbnl1dVwgOwor6Lui6LuiID4gdGVudGVuXCA7CivpgZTmiJAgPiB0YXNzZWlcIDsKK+WGhee0myA+IG5haWZ1blwgOwor5Yu/5L2TID4gbW90dGFpXCA7Civli5jlkIggPiBrYW5nb3VcIDsKK+iMtueilyA+IGNoYXdhblwgOwor6LuN6YWNID4gZ3VuYmFpXCA7CivlubPmsLQgPiBoZWlzdWlcIDsKK+W8mOWgsSA+IGtvdWhvdVwgOwor6bOl5bGLID4gdG9yaXlhXCA7CivmrL7lvoUgPiBrYW50YWlcIDsKK+W5s+awkSA+IGhlaW1pblwgOwor5bmz5rCPID4gaGVpc2hpXCA7Civnmb7oirEgPiBoeWFra2FcIDsKK+mAo+aenSA+IHJlbnNoaVwgOwor5q+N5LiKID4gaGFoYXVlXCA7Civli5XlkJEgPiBkb3Vrb3VcIDsKK+eWvumnhiA+IHNoaWtrdVwgOwor5Ye95rigID4ga2Fua3lvXCA7CivovrLnlKMgPiBub3VzYW5cIDsKK+WIkeatuyA+IGtlaXNoaVwgOwor5qW86ZaAID4gcm91bW9uXCA7CivlhaznvbIgPiBrb3VzaG9cIDsKK+eekeaDsyA+IG1laXNvdVwgOwor5bm05q2vID4gbmVuc2hpXCA7CivpgKDmnpcgPiB6b3VyaW5cIDsKK+iIuemaiiA+IHNlbnRhaVwgOwor6YGg5b+DID4gZW5zaGluXCA7Civoi5voi5sgPiBpcmFpcmFcIDsKK+W8seWRsyA+IHlvd2FtaVwgOwor6YGp5bqmID4gdGVraWRvXCA7CivliYrmkakgPiBzYWt1bWFcIDsKK+i8quiUtSA+IHJpbnpvdVwgOwor5by+5Yq+ID4gZGFuZ2FpXCA7CivpgZTmhI8gPiB0YXRzdWlcIDsKK+W6leacrCA+IHRlaWhvblwgOwor5Yiw5p2lID4gdG91cmFpXCA7CivnmbroiaYgPiBoYWtrYW5cIDsKK+WIjuatuyA+IGZ1bnNoaVwgOwor6LuN6YGTID4gZ3VuZG91XCA7CivlibXlu7ogPiBzb3VrZW5cIDsKK+WJjeaPkCA+IHplbnRlaVwgOwor5q275ZywID4gc2hpY2hpXCA7CivlhqznnYAgPiBmdXl1Z2lcIDsKK+mAoOacrCA+IHpvdWhvblwgOwor55yL54K5ID4ga2FudGVuXCA7CivmrKPmh5AgPiBraW5rYWlcIDsKK+iWhOOAhSA+IHVzdXVzdVwgOwor5YmN5o6yID4gemVua2VpXCA7CivlhqznnKAgPiB0b3VtaW5cIDsKK+eZuuiIqiA+IGhha2tvdVwgOwor5Yud5YipID4gc2hvdXJpXCA7Civlt6jnr4cgPiBreW9oZW5cIDsKK+eZu+iHqCA+IHRvdXJpblwgOwor6LuK6YGTID4gc2hhZG91XCA7CivlvLfljJYgPiBreW91a2FcIDsKK+ato+WmuyA+IHNlaXNhaVwgOwor6L6b55uuID4ga2FyYW1lXCA7Civli5Xli6IgPiBkb3VzZWlcIDsKK+eXtOmIjSA+IGNoaWRvblwgOwor6JGX5ZCNID4gY2hvbWVpXCA7Civmrovlk4EgPiB6YW5waW5cIDsKK+W6uOaJjSA+IHlvdXNhaVwgOwor5YuV5Yq0ID4gZG91cm91XCA7Civou5LovIogPiBrZW5jaGlcIDsKK+WFieiKkiA+IGtvdWJvdVwgOwor5biv54q2ID4gb2Jpam91XCA7Civoi6bogokgPiBrdW5pa3VcIDsKK+mzs+WjsCA+IGhvdXNlaVwgOwor6YCj5pifID4gcmVuc2VpXCA7CivnmofogIMgPiBrb3Vrb3VcIDsKK+ebrueOiSA+IG1lZGFtYVwgOwor6auY6aiwID4ga291dG91XCA7CivojLbnm4YgPiBjaGFib25cIDsKK+mDjuWFmiA+IHJvdWRvdVwgOwor5biD55+zID4gZnVzZWtpXCA7Civoh6Xpvo0gPiBnYXJ5b3VcIDsKK+W8geWkqSA+IGJlbnRlblwgOwor5YiH5q2vID4gc2Vzc2hpXCA7Civou73oppYgPiBrZWlzaGlcIDsKK+efreWRvSA+IHRhbm1laVwgOwor5bej566xID4gc3ViYWtvXCA7Civmrr/kuIogPiB0ZW5qb3VcIDsKK+iIt+mWgCA+IGdlbm1vblwgOwor6YG45a6aID4gc2VudGVpXCA7Civli4flkI0gPiB5dXVtZWlcIDsKK+ato+WkpyA+IHNlaWRhaVwgOwor6auR6auPID4gZG9rdXJvXCA7CivliKnmnK0gPiByaWZ1ZGFcIDsKK+mBt+WuriA+IHNlbmd1dVwgOwor6Lui6LK4ID4gdGVudGFpXCA7Civlub3mo7IgPiB5dXVzZWlcIDsKK+atr+WeoiA+IHNoaWtvdVwgOwor5byB5aOrID4gYmVuc2hpXCA7CivpgZPlv7UgPiBkb3VuZW5cIDsKK+ees+WtlCA+IGRvdWtvdVwgOwor556z5a2QID4gZG91c2hpXCA7Civmra/lnosgPiBoYWdhdGFcIDsKK+W9k+S7oyA+IHRvdWRhaVwgOwor5bqK5py6ID4gc2hvdWdpXCA7CivliKXmna8gPiBiZXBwYWlcIDsKK+WFiOiIrCA+IHNlbnBhblwgOwor5b2T5LuKID4gdG91a29uXCA7Civli6TlgLkgPiBraW5rZW5cIDsKK+WJm+aDhSA+IGdvdWpvdVwgOwor5b2T5Lq6ID4gdG91bmluXCA7CivpgbXlroggPiBqdW5zaHVcIDsKK+i7iui8qiA+IHNoYXJpblwgOwor5Yid5qChID4gc2hva291XCA7Civou43ou4ogPiBndW5zaGFcIDsKK+atjOWtpiA+IGthZ2FrdVwgOwor6YCj5pWXID4gcmVucGFpXCA7Civlhajnt6ggPiB6ZW5wZW5cIDsKK+W6leaVsCA+IHRlaXN1dVwgOwor5Ye65rC0ID4gZGVtaXp1XCA7Civlhajnt5ogPiB6ZW5zZW5cIDsKK+i7veijhSA+IGtlaXNvdVwgOwor6Lqr6YqtID4gbWl6ZW5pXCA7CivoiabovIkgPiBrYW5zYWlcIDsKK+WCjemhjCA+IGJvdWRhaVwgOwor6YGV5byPID4gaXNoaWtpXCA7CivluoPmnbEgPiBrYW50b25cIDsKK+W4g+ebriA+IG51bm9tZVwgOwor5YW456+EID4gdGVucGFuXCA7CivlvZPkuLsgPiB0b3VzaHVcIDsKK+eXhemZoiA+IGJ5b3VpblwgOwor6YCB5qScID4gc291a2VuXCA7Civls7DpoK0gPiBob3V0b3VcIDsKK+efpeWRvSA+IGNoaW1laVwgOwor5bm95qCWID4geXV1c2VpXCA7Civnm5fnlKggPiB0b3V5b3VcIDsKK+WJm+aApyA+IGdvdXNlaVwgOwor5qyj5b+rID4ga2lua2FpXCA7CivlvZPkuJYgPiB0b3VzZWlcIDsKK+WFq+e0mCA+IGhha2tvdVwgOwor5YuJ5YqxID4gYmVucmVpXCA7CivpgJ/mlLsgPiBzb2trb3VcIDsKK+WHuuauuyA+IGRlZ2FyYVwgOwor5YWO6IKJID4gdG9uaWt1XCA7CivnnKDmsJcgPiBuZW11a2VcIDsKK+iMtueVqiA+IGNoYWJhblwgOwor55yf5rC0ID4gbWFtaXp1XCA7Civlt6bnqIsgPiBzYWhvZG9cIDsKK+WIhuaoqSA+IGJ1bmtlblwgOwor6auY6aKoID4ga291ZnV1XCA7Civnn6XlkI0gPiBjaGltZWlcIDsKK+W3peeoiyA+IGtvdXRlaVwgOwor5bm95p6XID4geXV1cmluXCA7Civov5TmuIggPiBoZW5zYWlcIDsKK+WFqOe0mSA+IHplbnNoaVwgOwor5Yas55OcID4gdG91Z2FuXCA7Civmrorli7IgPiBzaHVrdW5cIDsKK+WFieiDjCA+IGtvdWhhaVwgOwor6LuM6LehID4ga2lzZWtpXCA7CivlvLHlhqAgPiBqYWtrYW5cIDsKK+W8vuWAiSA+IGRhbnNvdVwgOwor55+l5Y+LID4gY2hpeXV1XCA7CivliqDlnKcgPiBrYWF0c3VcIDsKK+iMtueTtiA+IGNoYWJpblwgOwor6YCj5pC6ID4gcmVua2VpXCA7CivliJ3mm7QgPiBzaG9rb3VcIDsKK+WIqeaVtSA+IHJpdGVraVwgOwor5Yik5piOID4gaGFubWVpXCA7Civmrbvlkb0gPiBzaGltZWlcIDsKK+mBqeWunCA+IHRla2lnaVwgOwor5q6K5YqfID4gc2h1a291XCA7CivlvKXli5IgPiBtaXJva3VcIDsKK+WGpeeVjCA+IG1laWthaVwgOwor6Iqt6JWJID4gYmFzaG91XCA7CivpgYvlvJMgPiB1bmt5dXVcIDsKK+WJo+W4ryA+IGtlbnRhaVwgOwor6YCA5qChID4gdGFpa291XCA7Civpq5jpn7MgPiB0YWthbmVcIDsKK+iJr+iyqCA+IHJ5b3VrYVwgOwor5YW156uvID4gaGVpdGFuXCA7Civnn63liaMgPiB0YW5rZW5cIDsKK+WFiOiBliA+IHNlbnNlaVwgOwor5YWo57GzID4gemVuYmVpXCA7Civnm7LngrkgPiBtb3V0ZW5cIDsKK+WIpOaWrSA+IGhhbmRhblwgOwor5YW156uZID4gaGVpdGFuXCA7CivmrZPlo7AgPiBrYW5zZWlcIDsKK+asveWumiA+IGtpbnRlaVwgOwor6YCP5piOID4gdG91bWVpXCA7Civph43jgIUgPiBqdXVqdXVcIDsKK+i7n+irliA+IG5hbnJvblwgOwor6YK45YaFID4gdGVpbmFpXCA7CivnmofntbEgPiBrb3V0b3VcIDsKK+i/kea1tyA+IGtpbmthaVwgOwor5YWN572qID4gbWVuemFpXCA7Civlu4PluJ0gPiBoYWl0ZWlcIDsKK+WFiOiAgyA+IHNlbmtvdVwgOwor55+t5YiAID4gdGFudG91XCA7Civli5jkvosgPiBrYW5yZWlcIDsKK+WFrOeulyA+IGtvdXNhblwgOwor6IiM6aCtID4gemV0dG91XCA7CivpgbjlpJYgPiBzZW5nYWlcIDsKK+atu+WOuyA+IHNoaWt5b1wgOwor6LuN6LOHID4gZ3Vuc2hpXCA7CivmrKflt54gPiBvdXNodXVcIDsKK+W8leWQiCA+IGhpa2lhaVwgOwor5bm95pmvID4geXV1a2VpXCA7CivpgYrlupUgPiB5dXV0ZWlcIDsKK+efpeWLhyA+IGNoaXl1dVwgOwor55+p5YmHID4ga3Vzb2t1XCA7Civlt6HnpLwgPiBqdW5yZWlcIDsKK+mBteWliSA+IGp1bnBvdVwgOwor5bm05p2lID4gbmVucmFpXCA7CivliJ3ml6wgPiBzaG9qdW5cIDsKK+W5s+advyA+IGhlaWJhblwgOwor5YSA6KGoID4gZ2loeW91XCA7CivmrY7lo7AgPiB0YW5zZWlcIDsKK+WFqOevhyA+IHplbnBlblwgOwor5YW156iuID4gaGVpc2h1XCA7Civlt6jnoLIgPiBreW9ob3VcIDsKK+eahue0jSA+IGthaW5vdVwgOwor6Iez6auYID4gc2hpa291XCA7Civlub3mmI4gPiB5dXVtZWlcIDsKK+aui+WFmiA+IHphbnRvdVwgOwor5qyh5bitID4gamlzZWtpXCA7CivmrYzlo7AgPiB1dGFnb2VcIDsKK+aooee0oiA+IG1vc2FrdVwgOwor5q6L5YWJID4gemFua291XCA7Civli5XkvZMgPiBkb3V0YWlcIDsKK+WFg+iAgSA+IGdlbnJvdVwgOwor6a6u57SFID4gc2Vua291XCA7Civlia/lrpggPiBmdWtrYW5cIDsKK+iKs+iNiSA+IGhvdXNvdVwgOwor55yf5qiqID4gbWF5b2tvXCA7Civlhavnq68gPiBoYXR0YW5cIDsKK+W3p+efpSA+IGtvdWNoaVwgOwor5YiG5qChID4gYnVua291XCA7CivpgKPmipUgPiByZW50b3VcIDsKK+WFuOekvCA+IHRlbnJlaVwgOwor55uX54qvID4gdG91aGFuXCA7CivlvL7kuLggPiBkYW5nYW5cIDsKK+atjOWigyA+IGtha3lvdVwgOwor5YaZ55SfID4gc2hhc2VpXCA7Civmrovlg48gPiB6YW56b3VcIDsKK+WKtOWLlSA+IHJvdWRvdVwgOwor5q2p5ZOoID4gaG9zaG91XCA7CivnnIzmsJEgPiBrZW5taW5cIDsKK+WLh+WBpSA+IHl1dWtlblwgOwor5YaX55SoID4gam91eW91XCA7CivliarlrpogPiBzZW50ZWlcIDsKK+WJo+WxsSA+IGtlbnphblwgOwor5Yq05YqfID4gcm91a291XCA7CivpgKPmiKYgPiByZW5zZW5cIDsKK+WGt+eEtiA+IHJlaXplblwgOwor56CC5LiYID4gc2FreXV1XCA7Civli5XkubEgPiBkb3VyYW5cIDsKK+WItuaGsiA+IHNlaWtlblwgOwor5byT5YuiID4geXVuemVpXCA7CivlhoXnnIEgPiBuYWlzZWlcIDsKK+W7g+WxsSA+IGhhaXphblwgOwor5YmN5bqtID4gemVudGVpXCA7CivlubPmmI4gPiBoZWltZWlcIDsKK+atu+WIkSA+IHNoaWtlaVwgOwor5Ym15aeLID4gc291c2hpXCA7CivnnInmr5sgPiBtYXl1Z2VcIDsKK+mAoOaIkCA+IHpvdXNlaVwgOwor5beo55uXID4ga3lvdG91XCA7Civlu4PlsYsgPiBoYWlva3VcIDsKK+WIh+abvyA+IHNldHRhaVwgOwor5YWs56eBID4ga291c2hpXCA7Civmrbvlh6YgPiBzaGlzaG9cIDsKK+mAg+aVoyA+IHRvdXNhblwgOwor6Lqr6Lu9ID4gbWlnYXJ1XCA7CivlhYnnt5ogPiBrb3VzZW5cIDsKK+W7o+WgsSA+IGtvdWhvdVwgOwor55+i5YWIID4geWFzYWtpXCA7CivlubPmlrkgPiBoZWlob3VcIDsKK+i7jeirhyA+IGd1bmRhblwgOwor6I+v5a6iID4ga2FrYWt1XCA7CivpgY7lsJEgPiBrYXNob3VcIDsKK+mBjuWwjyA+IGthc2hvdVwgOwor5bm05pWwID4gbmVuc3V1XCA7CivmraPlkbMgPiBzaG91bWlcIDsKK+mAgOaVoyA+IHRhaXNhblwgOwor5YWs56S+ID4ga291c2hhXCA7Civoirjog70gPiBnZWlub3VcIDsKK+mAo+aDsyA+IHJlbnNvdVwgOwor5YaN55SfID4gc2Fpc2VpXCA7CivmrovkvZkgPiB6YW4nJ3lvXCA7CivpgY7lrqIgPiBrYWtha3VcIDsKK+mBo+WkliA+IGtlbmdhaVwgOwor5Yag54q2ID4ga2Fuam91XCA7CivmrKHlsIYgPiBqaXNob3VcIDsKK+W8geWPoyA+IGJlbmtvdVwgOwor5bmy5pSvID4ga2Fuc2hpXCA7CivnmpPnpKwgPiBrb3ViYW5cIDsKK+ato+WPtyA+IHNlaWdvdVwgOwor5q2j5Y+yID4gc2Vpc2hpXCA7Civoi6bnrJEgPiBrdXNob3VcIDsKK+WFqOekviA+IHplbnNoYVwgOwor5YiG5piOID4gYnVubWVpXCA7CivlvJPlhbcgPiBreXV1Z3VcIDsKK+mAsuW6piA+IHNoaW5kb1wgOwor55mM6IWrID4gZ2Fuc2h1XCA7CivliqPli6IgPiByZXNzZWlcIDsKK+WKtOWDjSA+IHJvdWRvdVwgOwor55+u5Lq6ID4gd2FpamluXCA7Civlu7vlkJEgPiBrYWlrb3VcIDsKK+iNkua1tyA+IGFyYXVtaVwgOwor6bO05YuVID4gbWVpZG91XCA7CivlhoXnlYwgPiBuYWlrYWlcIDsKK+W6p+W4rSA+IHphc2VraVwgOwor5q2j5Y2XID4gc2VpbmFuXCA7CivoirjogIUgPiBnZWlzaGFcIDsKK+mBiuWtkCA+IHl1dXNoaVwgOwor5q2j5Y2IID4gc2hvdWdvXCA7CivlhoXnlKggPiBuYWl5b3VcIDsKK+WIpeaHhyA+IGJla2tvblwgOwor5Yi25b6hID4gc2VpZ3lvXCA7CivliIbmlbAgPiBidW5zdXVcIDsKK+WIhuaVoyA+IGJ1bnNhblwgOwor5YSq6ICFID4geXV1c2hhXCA7CivnmbvnrKwgPiB0b3VkYWlcIDsKK+atr+WGoCA+IHNoaWthblwgOwor5YaN54++ID4gc2FpZ2VuXCA7Civlurflr6cgPiBrb3VuZWlcIDsKK+WFrOefpSA+IGtvdWNoaVwgOwor5Yqf5Yq0ID4ga291cm91XCA7CivmrITlubIgPiByYW5rYW5cIDsKK+WIl+aMmSA+IHJla2t5b1wgOwor5YmN5bGxID4gemVuemFuXCA7CivlvKXkuYUgPiBiaWt5dXVcIDsKK+eZuuerryA+IGhvdHRhblwgOwor5Yid5oimID4gc2hvc2VuXCA7Civou43oo4UgPiBndW5zb3VcIDsKK+WIpeaEjyA+IGJldHN1aVwgOwor5Ye65pmCID4gZGVkb2tpXCA7CivpgKPlvL4gPiByZW5kYW5cIDsKK+WFqOefpSA+IHplbmNoaVwgOwor55+l5Lq6ID4gY2hpamluXCA7CivojKvnhLYgPiBib3V6ZW5cIDsKK+i8lOe/vCA+IGhveW9rdVwgOwor6L6y5rOVID4gbm91aG91XCA7CivmrYzllLEgPiBrYXNob3VcIDsKK+WIqeaBryA+IHJpc29rdVwgOwor5bqc5bqBID4gZnVjaG91XCA7CivnnJ/mmpcgPiBtYWt1cmFcIDsKK+W6tuWtkCA+IHNob3NoaVwgOwor6I+v5aWiID4ga3lhc2hhXCA7Civoh7Ppm6MgPiBzaGluYW5cIDsKK+WHjeatuyA+IHRvdXNoaVwgOwor5Yq05L2/ID4gcm91c2hpXCA7Civlu4nlo7IgPiByZW5iYWlcIDsKK+mAoOW9oiA+IHpvdWtlaVwgOwor5q275L2TID4gc2hpdGFpXCA7CivpgKLlvJUgPiBhaWJpa2lcIDsKK+WBnOmgkyA+IHRlaXRvblwgOwor55m+56eRID4gaHlha2thXCA7CivpgbrlkYogPiB5dWlnb3VcIDsKK+WHveaVsCA+IGthbnN1dVwgOwor5Ya35rehID4gcmVpdGFuXCA7CivpgIbmiYsgPiBzYWthdGVcIDsKK+ecn+aYvCA+IG1haGlydVwgOwor5Ye65pa5ID4gZGVrYXRhXCA7CivpgZPlo6sgPiBkb3VzaGlcIDsKK+WJjeWumCA+IHplbmthblwgOwor5Ymj5aOrID4ga2Vuc2hpXCA7Civlhaznm4ogPiBrb3Vla2lcIDsKK+iIuei3ryA+IGZ1bmFqaVwgOwor6YKm5Lq6ID4gaG91amluXCA7Civnlo7pmpQgPiBzb2tha3VcIDsKK+WItuW4vSA+IHNlaWJvdVwgOwor5Yqg5YWlID4ga2FueXV1XCA7Civlho3niq8gPiBzYWloYW5cIDsKK+WFiOerryA+IHNlbnRhblwgOwor6L6y5rCRID4gbm91bWluXCA7CivpgaDlm70gPiBvbmdva3VcIDsKK+WFt+eUsyA+IGd1c2hpblwgOwor6I235pytID4gbmlmdWRhXCA7CivluK3mrKEgPiBzZWtpamlcIDsKK+WIqeW+lyA+IHJpdG9rdVwgOwor5YWo55uyID4gemVubW91XCA7CivmrbvkuqEgPiBzaGlib3VcIDsKK+W3qOeNoyA+IGt5b2p1dVwgOwor5bK46aCtID4gZ2FudG91XCA7CivokL3kvI0gPiByYWt1Z29cIDsKK+ato+WFtSA+IHNlaWhlaVwgOwor5YWo55ubID4gemVuc2VpXCA7CivouYjpnrQgPiB0YXRhcmFcIDsKK+mAo+W4ryA+IHJlbnRhaVwgOwor6YCf5bqmID4gc29rdWRvXCA7CivliLDlupUgPiB0b3V0ZWlcIDsKK+WFjeeojiA+IG1lbnplaVwgOwor5YaN54mIID4gc2FpaGFuXCA7Civlia/lm6AgPiBmdWt1aW5cIDsKK+eZuuemgSA+IGhha2tpblwgOwor6IiM6YuSID4gemVwcG91XCA7CivpgKDluaMgPiB6b3VoZWlcIDsKK+mBk+WgtCA+IGRvdWpvdVwgOwor5qiZ56S6ID4gaHlvdWppXCA7Civlu4Plop8gPiBoYWlreW9cIDsKK+W5s+aJiyA+IGhpcmF0ZVwgOwor6L+U5p2vID4gaGVucGFpXCA7CivlgZzpm7sgPiB0ZWlkZW5cIDsKK+WBpemXmCA+IGtlbnRvdVwgOwor6Iif6YGLID4gc2h1dXVuXCA7CivmqKrnm64gPiB5b2tvbWVcIDsKK+W5s+aIkCA+IGhlaXNlaVwgOwor5Yex5peLID4gZ2Fpc2VuXCA7Civljq3jgIUgPiBpeWFpeWFcIDsKK+ebruasoSA+IG1va3VqaVwgOwor5Ya35rOJID4gcmVpc2VuXCA7CivlhajnmZIgPiB6ZW4nJ3l1XCA7Civnmb3no4EgPiBoYWt1amlcIDsKK+i/lOacrCA+IGhlbnBvblwgOwor5Yil5b2iID4gYmVra2VpXCA7Civlubvmg7MgPiBnZW5zb3VcIDsKK+eci+advyA+IGthbmJhblwgOwor5YaN54eDID4gc2FpbmVuXCA7CivnnYDmhI8gPiBjaGFrdWlcIDsKK+WGheeKtiA+IG5haWpvdVwgOwor5Yil5b2TID4gYmV0dG91XCA7Civov5HmnbEgPiBraW50b3VcIDsKK+W7uuWFtyA+IHRhdGVndVwgOwor6L+R5p2lID4ga2lucmFpXCA7Civov5Tmm7ggPiBoZW5zaG9cIDsKK+W6j+W5lSA+IGpvbWFrdVwgOwor5YG06Y6WID4gc29rdXNhXCA7CivmpoLoq5YgPiBnYWlyb25cIDsKK+eXhei6ryA+IGJ5b3VrdVwgOwor5qW96K2cID4gZ2FrdWZ1XCA7CivlhrfmsZcgPiByZWlrYW5cIDsKK+WIhuaLhSA+IGJ1bnRhblwgOwor6L6j5rK5ID4gcmF6ZXl1XCA7Civpq5jphY0gPiBrb3VoYWlcIDsKK+W7t+WGhSA+IHRlaW5haVwgOwor5YqH5YyWID4gZ2VraWthXCA7CivlhrfmsLQgPiByZWlzdWlcIDsKK+WIneW/lyA+IHNob3NoaVwgOwor5YWs55SwID4ga291ZGVuXCA7CivpgoTlhYMgPiBrYW5nZW5cIDsKK+mAleW6rSA+IGtlaXRlaVwgOwor5Yip5bmFID4gcmloYWJhXCA7CivlhaznlKggPiBrb3V5b3VcIDsKK+WHoeabuCA+IGJvbnNob1wgOwor6YCj5bOwID4gcmVucG91XCA7Civliofli5kgPiBnZWtpbXVcIDsKK+W3oeeLqSA+IGp1bnNodVwgOwor5YiH5omLID4ga2lyZXRlXCA7CivlubvmgKogPiBnZW5rYWlcIDsKK+i/veaFlSA+IHRzdWlib1wgOwor5q2m5L6gID4gYnVreW91XCA7CivnmbrnoLIgPiBoYXBwb3VcIDsKK+W7g+WdkSA+IGhhaWtvdVwgOwor6Lqr6KixID4gbWltb3RvXCA7CivpganlkKYgPiB0ZWtpaGlcIDsKK+WHuuaOmyA+IGRlZ2FrZVwgOwor5YaG54afID4gZW5qdWt1XCA7CivlhajnlLIgPiB6ZW5rb3VcIDsKK+i/keaZryA+IGtpbmtlaVwgOwor5q2M5YqHID4ga2FnZWtpXCA7CivpgKPlsbEgPiByZW56YW5cIDsKK+mrmOmCgSA+IGtvdW1haVwgOwor5YmN5aWPID4gemVuc291XCA7CivlupflsYsgPiBtaXNleWFcIDsKK+WHpuaWuSA+IHNob2hvdVwgOwor6Iiq6LWwID4ga291c291XCA7Civlh6bmlq0gPiBzaG9kYW5cIDsKK+mBjeWcqCA+IGhlbnphaVwgOwor5q2j5L2/ID4gc2Vpc2hpXCA7CivliLvlrZcgPiBrb2t1amlcIDsKK+WIpeW3uyA+IGJla2thblwgOwor5YaX5ryrID4gam91bWFuXCA7CivmpoLoprMgPiBnYWlrYW5cIDsKK+WJjeWknCA+IHplbicneWFcIDsKK+W7uuWApCA+IHRhdGVuZVwgOwor5bm75b2xID4gZ2VuJydlaVwgOwor6YCj5bCEID4gcmVuc2hhXCA7CivliY3lo7IgPiBtYWV1cmlcIDsKK+amguimgSA+IGdhaXlvdVwgOwor5YKN6LypID4gaG91YmFpXCA7Civnmb3nnIkgPiBoYWt1YmlcIDsKK+WzoemDqCA+IGt5b3VidVwgOwor5Yi25a6aID4gc2VpdGVpXCA7CivmraPkvJ0gPiBzZWlkZW5cIDsKK+i7vee9qiA+IGtlaXphaVwgOwor55Wq6aCtID4gYmFudG91XCA7CivliJ3lubQgPiBzaG9uZW5cIDsKK+i/sOaHkCA+IGp1a2thaVwgOwor6L6b5rCXID4gc2hpbmtpXCA7Civmpb3oprMgPiByYWtrYW5cIDsKK+WJsuWQiCA+IHdhcmlhaVwgOwor5qW86KazID4gcm91a2FuXCA7Civoi6bnl5sgPiBrdXRzdXVcIDsKK+W4jOaxgiA+IGtpa3l1dVwgOwor5bm+5bm0ID4gaWt1bmVuXCA7Civlhqzmr5sgPiBmdXl1Z2VcIDsKK+WFiOefpSA+IHNlbmNoaVwgOwor5bqX5a2QID4gdGFuYWtvXCA7CivprZrnvqQgPiBneW9ndW5cIDsKK+mBoeWPiiA+IHNva3l1dVwgOwor6YCA5b25ID4gdGFpZWtpXCA7CivlubzlubQgPiB5b3VuZW5cIDsKK+i/guabsiA+IHVreW9rdVwgOwor5YSq562JID4geXV1dG91XCA7Civou43okawgPiBndW5zb3VcIDsKK+WJsuWNsCA+IHdhcmlpblwgOwor6I+v5ZWGID4ga2FzaG91XCA7CivliKnlsL8gPiByaW55b3VcIDsKK+WFteeHuSA+IGhlaXNlblwgOwor5bu25Ly4ID4gZW5zaGluXCA7CivluorlsYsgPiB0b2tveWFcIDsKK+mAgOW7tyA+IHRhaXRlaVwgOwor5qip54++ID4gZ29uZ2VuXCA7CivlgbTpg6ggPiBzb2t1YnVcIDsKK+W4sOacnSA+IGtpY2hvdVwgOwor5biw5pyNID4ga2lmdWt1XCA7CivnnLzlupUgPiBnYW50ZWlcIDsKK+mAgOW7gyA+IHRhaWhhaVwgOwor5Yil5bGFID4gYmVra3lvXCA7CivnlZnpo7IgPiByeXV1aW5cIDsKK+WIquWumiA+IHNhbnRlaVwgOwor6YGu5YWJID4gc2hha291XCA7CivliY3lnYogPiB6ZW5ib3VcIDsKK+i7n+iGjyA+IG5hbmtvdVwgOwor5qyE5aSWID4gcmFuZ2FpXCA7CivlhqDmsLQgPiBrYW5zdWlcIDsKK+WIpeWwgSA+IGJlcHB1dVwgOwor55y85bivID4gZ2FudGFpXCA7CivlubPlubQgPiBoZWluZW5cIDsKK+W5s+W5syA+IGhlaWhlaVwgOwor6IeG6Z2iID4gb2t1bWVuXCA7Civlu4Plk4EgPiBoYWloaW5cIDsKK+i/t+W9qSA+IG1laXNhaVwgOwor5biC5rCRID4gc2hpbWluXCA7CivluoTlsYsgPiBzaG91eWFcIDsKK+iJsuiJsiA+IGlyb2lyb1wgOwor6auY6LiPID4ga291dG91XCA7CivlhqDmr5sgPiBrYW5tb3VcIDsKK+W3qOa8oiA+IGt5b2thblwgOwor5bi45pWwID4gam91c3V1XCA7CivlibXliIogPiBzb3VrYW5cIDsKK+WFiOeZuyA+IHNlbnRvdVwgOwor5YmN5ZueID4gemVua2FpXCA7CivovrLmnpcgPiBub3VyaW5cIDsKK+W5s+W4uCA+IGhlaWpvdVwgOwor6IuU55msID4gdGFpc2VuXCA7CivnmbLnmYcgPiB0ZW5rYW5cIDsKK+iNieaguSA+IHNvdWtvblwgOwor55m755SoID4gdG91eW91XCA7Civpq5jot50gPiBrb3VreW9cIDsKK+WIpOWumiA+IGhhbnRlaVwgOwor5Yik5a6YID4gaGFuZ2FuXCA7Civlt53ngKwgPiBrYXdhc2VcIDsKK+W7t+S4gSA+IHRlaXRlaVwgOwor55m655SfID4gaGFzc2VpXCA7CivovrLmnZEgPiBub3Vzb25cIDsKK+WBtOi/kSA+IHNva2tpblwgOwor55uk5qC5ID4gYmFua29uXCA7CivojprluK0gPiBlbnNla2lcIDsKK+ecn+aEjyA+IHNoaW4nJ2lcIDsKK+mtguiDhiA+IGtvbnRhblwgOwor5YiX5bO2ID4gcmV0dG91XCA7CivovZ/nhLYgPiBnb3V6ZW5cIDsKK+W7g+WQiCA+IGhhaWdvdVwgOwor5Yil5ayqID4gYmVwcGluXCA7CivmrKDlk4EgPiBrZXBwaW5cIDsKK+mtmue2siA+IGd5b21vdVwgOwor6YCj5aWPID4gcmVuc291XCA7CivlhoXmua8gPiB1Y2hpeXVcIDsKK+eUn+m6qSA+IG5hbWFmdVwgOwor5bm95bGFID4geXV1a3lvXCA7CivpgKPlpJwgPiByZW4nJ3lhXCA7Civlt6HmvJQgPiBqdW4nJ2VuXCA7CivliIblupcgPiBidW50ZW5cIDsKK+atjOS8miA+IHV0YWthaVwgOwor5YaF5rivID4gbmFpa291XCA7CivlhaznhLYgPiBrb3V6ZW5cIDsKK+W3u+avmyA+IG1ha2lnZVwgOwor6LuN6ImmID4gZ3Vua2FuXCA7CivpgKPlo7AgPiByZW5qb3VcIDsKK+iHqumHjSA+IGppY2hvdVwgOwor5YaF5riIID4gbmFpc2FpXCA7CivlhYjnlaogPiBzZW5iYW5cIDsKK+mBiuWQnyA+IHl1dWdpblwgOwor6YGK5ZCbID4geXV1a3VuXCA7Civou43oiLkgPiBndW5zZW5cIDsKK+iPr+WMlyA+IGthaG9rdVwgOwor6I2J5pysID4gc291aG9uXCA7Civnm7Lmlq0gPiBtb3VkYW5cIDsKK+edgOWwuiA+IGtpamFrdVwgOwor6Imo6ImfID4gbW91ZG91XCA7Civov5TmiLsgPiBoZW5yZWlcIDsKK+WFiOeUnyA+IHNlbnNlaVwgOwor5Ymq5YiAID4gc2VudG91XCA7Civlgb3otrMgPiBnaXNva3VcIDsKK+iNieabuCA+IHNvdXNob1wgOwor5YWo54S2ID4gemVuemVuXCA7CivliJflr6cgPiByZWVuaW5cIDsKK+mtmueyviA+IGd5b3NlaVwgOwor6Imm6ImHID4ga2FudGVpXCA7CivoiaboiLkgPiBrYW5zZW5cIDsKK+WGhea1tyA+IG5haWthaVwgOwor55uu5pa5ID4gbWVrYXRhXCA7Civlh6HmiY0gPiBib25zYWlcIDsKK+WHoeaJiyA+IGJvbnNodVwgOwor5YWJ55KwID4ga291a2FuXCA7CivlhYXnlKggPiBqdXV5b3VcIDsKK+i8neefsyA+IGtpc2VraVwgOwor6a2a57KJID4gZ3lvZnVuXCA7Civlh6HmiKYgPiBib25zZW5cIDsKK+W6uOWQmyA+IHlvdWt1blwgOwor5YCk6aCDID4gbmVnb3JvXCA7Civlh7blvpIgPiBreW91dG9cIDsKK+eWjumAmiA+IHNvdHN1dVwgOwor6Iez6L+RID4gc2hpa2luXCA7CivluaLluaEgPiBkb3ViYW5cIDsKK+W5s+WxiyA+IGhpcmF5YVwgOwor6YGF5Y+CID4gY2hpc2FuXCA7CivpgIblrZAgPiBzYWthZ29cIDsKK+eZveeLkCA+IGJ5YWtrb1wgOwor5YCk6Z6YID4gbmV6YXlhXCA7Civlh7rluqsgPiBzaHVra29cIDsKK+i/veWwviA+IHRzdWliaVwgOwor5YiA5belID4gdG91a291XCA7Civlh7rlupwgPiBzaHVwcHVcIDsKK+WIneWpmiA+IHNob2tvblwgOwor5Ye65bqXID4gZGVtaXNlXCA7CivlhoXmsrsgPiBuYWljaGlcIDsKK+i+suaUvyA+IG5vdXNlaVwgOwor5Ymb5YuHID4gZ291eXV1XCA7CivmrKDli6QgPiBrZWtraW5cIDsKK+WFsea8lCA+IGt5b3VlblwgOwor6Ieq6YGpID4gaml0ZWtpXCA7Civlh6Hmha4gPiBib25yeW9cIDsKK+W7g+WIiiA+IGhhaWthblwgOwor6YCA5a6YID4gdGFpa2FuXCA7CivnnLzlrZQgPiBnYW5rb3VcIDsKK+eVjOmdoiA+IGthaW1lblwgOwor5bel5rOVID4ga291aG91XCA7Civpga/kuJYgPiB0b25zZWlcIDsKK+W5s+WumiA+IGhlaXRlaVwgOwor6I+v5YaRID4ga2FjaHV1XCA7CivovKrnlaogPiByaW5iYW5cIDsKK+W5suWusyA+IGthbmdhaVwgOwor5Ye65birID4gc3Vpc2hpXCA7CivpgKDlnosgPiB6b3VrZWlcIDsKK+iIquihjCA+IGtvdWtvdVwgOwor5YmN5ZCNID4gemVubWVpXCA7Civlh73ltrogPiBrYW5yZWlcIDsKK+mBk+WFgyA+IGRvdWdlblwgOwor55mM56CUID4gZ2Fua2VuXCA7CivliY3lj7cgPiB6ZW5nb3VcIDsKK+WIpOWjqyA+IGhhbnNoaVwgOwor5YmN5Y+yID4gemVuc2hpXCA7CivovKrnlJ8gPiByaW5zZWlcIDsKK+WGheawlyA+IHVjaGlraVwgOwor5YKN6KiTID4gYm91a3VuXCA7CivnnLjlrZAgPiBib3VzaGlcIDsKK+mBheWKuSA+IGNoaWtvdVwgOwor55ub5pqRID4gc2Vpc2hvXCA7Civov5Hmg4UgPiBraW5qb3VcIDsKK+W7g+WFtSA+IGhhaWhlaVwgOwor5YWN54q2ID4gbWVuam91XCA7CivlhajmvbAgPiB6ZW5rYWlcIDsKK+W6g+WkpyA+IGtvdWRhaVwgOwor6auY6KuWID4ga291cm9uXCA7CivluIbmoYEgPiBob2dldGFcIDsKK+mrmOirhyA+IGtvdWRhblwgOwor5qmf5qWtID4ga2lneW91XCA7CivpgJPlopcgPiB0ZWl6b3VcIDsKK+W5leW6nCA+IGJha3VmdVwgOwor5bit5o2yID4gc2Vra2VuXCA7CivojbflvbkgPiBuaXlha3VcIDsKK+W5u+WnvyA+IGdlbnNoaVwgOwor5YaF5q6/ID4gbmFpZGVuXCA7CivluoPlo64gPiBrb3Vzb3VcIDsKK+WCjeimsyA+IGJvdWthblwgOwor6I+v5YORID4ga2FreW91XCA7CivluJ3mlL8gPiB0ZWlzZWlcIDsKK+eVjOmaiCA+IGthaXdhaVwgOwor5YiG5bCBID4gYnVucG91XCA7CivliKXloLEgPiBiZXBwb3VcIDsKK+WFrOa6liA+IGtvdWp1blwgOwor5YKN6KaWID4gd2FraW1pXCA7CivliY3ljYogPiB6ZW5wYW5cIDsKK+eZveeFmSA+IGhha3VlblwgOwor5bm95aWRID4geXV1a2VpXCA7CivnlJ/prq4gPiBzZWlzZW5cIDsKK+iLlOeKtiA+IHRhaWpvdVwgOwor6a2U56ybID4gbWF0ZWtpXCA7CivlibXkuJYgPiBzb3VzZWlcIDsKK+ebhuagvSA+IGJvbnNhaVwgOwor6auY6KiAID4ga291Z2VuXCA7Civot7PppqwgPiBjaG91YmFcIDsKK+W4uOaFiyA+IGpvdXRhaVwgOwor5bqD5aC0ID4gaGlyb2JhXCA7CivluoPloLEgPiBrb3Vob3VcIDsKK+WxsemhmyA+IHNhbnRlblwgOwor5YiG5a2QID4gYnVuc2hpXCA7Civoh6rouqsgPiBqaXNoaW5cIDsKK+WFteazlSA+IGhlaWhvdVwgOwor5YGc6LuKID4gdGVpc2hhXCA7CivlubTlp4sgPiBuZW5zaGlcIDsKK+mrmOimpyA+IGtvdXJhblwgOwor55SY6a+bID4gYW1hZGFpXCA7Civov5HlvbEgPiBraW4nJ2VpXCA7CivluoPln58gPiBrb3Vpa2lcIDsKK+aoqua6oiA+IG91aXRzdVwgOwor5Yas5pelID4gZnV5dWJpXCA7Civpq5joposgPiB0YWthbWlcIDsKK+WDp+e2sSA+IHNvdWdvdVwgOwor5YmN5YmNID4gbWFlbWFlXCA7CivluqfljZMgPiB6YXRha3VcIDsKK+WFrOa1tyA+IGtvdWthaVwgOwor5Yag5pyoID4ga2FidWtpXCA7Civoia/nuIEgPiByeW91ZW5cIDsKK+WJm+WBpSA+IGdvdWtlblwgOwor5YG96Ki8ID4gZ2lzaG91XCA7CivpgY7kv6EgPiBrYXNoaW5cIDsKK+W4guaciSA+IHNoaXl1dVwgOwor5bqt5YmNID4gdGVpemVuXCA7CivlhKrnlJ8gPiB5dXVzZWlcIDsKK+aknOi7iiA+IGtlbnNoYVwgOwor5bqX5ZOhID4gdGVuJydpblwgOwor6YCy5YyWID4gc2hpbmthXCA7CivmqLnmsLcgPiBqdWh5b3VcIDsKK+W6hOWckiA+IHNob3VlblwgOwor6Ieq6LazID4gamlzb2t1XCA7CivpqqjouqsgPiBob25lbWlcIDsKK+WFreazlSA+IHJvcHBvdVwgOwor5Ye65a62ID4gc2h1a2tlXCA7CivlubLlpKkgPiBrYW50ZW5cIDsKK+WHoeW6tiA+IGJvbnNob1wgOwor6auY6KOBID4ga291c2FpXCA7CivnlLvpm4YgPiBnYXNodXVcIDsKK+WFrOazlSA+IGtvdWhvdVwgOwor5YiG5aipID4gYnVuYmVuXCA7CivovKrnirYgPiByaW5qb3VcIDsKK+iJsuezuCA+IGlyb2l0b1wgOwor55S76ZqcID4gZ2FzaG91XCA7CivlubPlo4wgPiBoZWlqb3VcIDsKK+WxsemciiA+IHNhbnJlaVwgOwor5YaZ5pysID4gc2hhaG9uXCA7CivlhaXmtbcgPiBpcml1bWlcIDsKK+i5gui6qiA+IGp1dXJpblwgOwor6LmC6LqZID4ganV1cmluXCA7CivluZXlsYsgPiBtYWt1eWFcIDsKK+msvOexjSA+IGtpc2VraVwgOwor5Yi75Y2wID4ga29rdWluXCA7CivlhYnngrkgPiBrb3V0ZW5cIDsKK+WHoeW4uCA+IGJvbmpvdVwgOwor6L+35aaEID4gbWVpbW91XCA7Civnl5voi6YgPiB0c3V1a3VcIDsKK+ebhuaZryA+IGJvbmtlaVwgOwor6Ii56I23ID4gZnVuYW5pXCA7CivpgKPlkJ8gPiByZW5naW5cIDsKK+WIneWbniA+IHNob2thaVwgOwor5buD5Lq6ID4gaGFpamluXCA7CivliZvkvZMgPiBnb3V0YWlcIDsKK+i7iue3miA+IHNoYXNlblwgOwor5Yeg5bizID4ga2ljaG91XCA7CivlhajmsrsgPiB6ZW5jaGlcIDsKK+mAo+WQjSA+IHJlbm1laVwgOwor6YCj5ZCIID4gcmVuZ291XCA7CivnmobmuIggPiBrYWlzYWlcIDsKK+ebsuaDsyA+IG1vdXNvdVwgOwor5YiR5aC0ID4ga2Vpam91XCA7CivlubTloLEgPiBuZW5wb3VcIDsKK+mAgOWgtCA+IHRhaWpvdVwgOwor5YaF5qScID4gbmFpa2VuXCA7Civlho3moKEgPiBzYWlrb3VcIDsKK+ebuOaApyA+IGFpc2hvdVwgOwor6Iul5rmvID4gd2FrYXl1XCA7CivpgYvkvJEgPiB1bmt5dXVcIDsKK+ebuOaAnSA+IHNvdXNoaVwgOwor5YWs5rCRID4ga291bWluXCA7CivluILml6UgPiBpY2hpYmlcIDsKK+iKseeSsCA+IGhhbmF3YVwgOwor5qeY55u4ID4geW91c291XCA7Civoj6/kuK0gPiBrYWNodXVcIDsKK+WBuOimliA+IHRvdXNoaVwgOwor5YmN5YK+ID4gemVua2VpXCA7CivpsYjlrZAgPiB0YXJha29cIDsKK+WxjemquCA+IHNoaWdhaVwgOwor6Ieq6LKsID4gamlzZWtpXCA7CivliIblpJYgPiBidW5nYWlcIDsKK+ebo+aIvyA+IGthbmJvdVwgOwor5biD5pWZID4gZnVreW91XCA7CivpgKDlj40gPiB6b3VoYW5cIDsKK+WIhuWjsiA+IGJ1bmJhaVwgOwor5YeE5oOoID4gc2Vpc2FuXCA7Civnm5vmjJkgPiBzZWlreW9cIDsKK+W5suWfjiA+IGthbmpvdVwgOwor6Lu955uuID4ga2FydW1lXCA7CivluLDlv4MgPiBraXNoaW5cIDsKK+iMmOaenSA+IHJlaXNoaVwgOwor55u45b25ID4gYWl5YWt1XCA7CivluILmlL8gPiBzaGlzZWlcIDsKK+W6p+WFgyA+IHphbW90b1wgOwor5YaN5p2lID4gc2FpcmFpXCA7CivlhazmraMgPiBrb3VzZWlcIDsKK+WFvOalrSA+IGtlbmdvdVwgOwor55u+5bqnID4gdGF0ZXphXCA7CivlhrfmiL8gPiByZWlib3VcIDsKK+WItuWLlSA+IHNlaWRvdVwgOwor6Im256yRID4gZW5zaG91XCA7Civnm7jlvZMgPiBzb3V0b3VcIDsKK+W3oeaknCA+IGp1bmtlblwgOwor5bmz5Z2mID4gaGVpdGFuXCA7CivlhbXmqKkgPiBoZWlrZW5cIDsKK+WGt+aIpiA+IHJlaXNlblwgOwor55m+5riIID4ga3VkYXJhXCA7CivlhajmrrUgPiB6ZW5kYW5cIDsKK+iHs+irliA+IHNoaXJvblwgOwor6Ii56ImZID4gc2Vuc291XCA7CivpgJ3ljrsgPiBzZWlreW9cIDsKK+WxsemWkyA+IHlhbWFhaVwgOwor5Yi65Yi6ID4gaXJhaXJhXCA7CivnmpPmra8gPiBrb3VzaGlcIDsKK+WIpeWTgSA+IGJlcHBpblwgOwor5bmz5Z2HID4gaGVpa2luXCA7CivlsbHploAgPiBzYW5tb25cIDsKK+WCreiIuSA+IHlvdXNlblwgOwor5YaG5p+xID4gZW5jaHV1XCA7CivnlJ/poZ4gPiBzZWlydWlcIDsKK+W5s+WcsCA+IGhlaWNoaVwgOwor6YCj5YuVID4gcmVuZG91XCA7CivliY3kvr8gPiB6ZW5iaW5cIDsKK+iHs+iqoCA+IHNoaXNlaVwgOwor5bq45Lq6ID4geW91amluXCA7CivlubTlm54gPiBuZW5rYWlcIDsKK+mAgOWboyA+IHRhaWRhblwgOwor55uy5b6TID4gbW91anV1XCA7CivliY3kvosgPiB6ZW5yZWlcIDsKK+WGl+aWhyA+IGpvdWJ1blwgOwor5qmL5p62ID4ga3lvdWthXCA7CivlhajmrKcgPiB6ZW4nJ291XCA7Civou5/npoEgPiBuYW5raW5cIDsKK+mAn+WKuSA+IHNva2tvdVwgOwor552+5Li4ID4ga291Z2FuXCA7Civoh7PoqIAgPiBzaGlnZW5cIDsKK+W3qOadkCA+IGt5b3phaVwgOwor5YWJ5rqQID4ga291Z2VuXCA7CivpgKPliKQgPiByZW5wYW5cIDsKK+i7kuerryA+IG5va2liYVwgOwor5bir5byfID4gc2hpdGVpXCA7CivliY3ku7YgPiB6ZW5rZW5cIDsKK+WFrOaoqSA+IGtvdWtlblwgOwor5bGP6aKoID4gYnlvdWJ1XCA7Civnm7jluK0gPiBhaXNla2lcIDsKK+WJjeS7oyA+IHplbmRhaVwgOwor55Sf6Z2iID4gc2VpbWVuXCA7Civoi6bmsYEgPiBuaWdhcmlcIDsKK+WJjeS6uiA+IHplbmppblwgOwor5YiH5ZywID4ga2lyZWppXCA7CivljYrjgIUgPiBoYW5oYW5cIDsKK+mBgeS4liA+IHRvbnNlaVwgOwor6Iez6KaBID4gc2hpeW91XCA7Civlh7blpKIgPiBreW91bXVcIDsKK+WIhuWcsCA+IGJ1bmNoaVwgOwor55yL5a6IID4ga2Fuc2h1XCA7Civoibbnpo8gPiBlbnB1a3VcIDsKK+WFhea6gCA+IGp1dW1hblwgOwor6Iul5rCXID4gd2FrYWdlXCA7Civnl4Xoi6YgPiBieW91a3VcIDsKK+WFqOaoqSA+IHplbmtlblwgOwor6I2S5buDID4ga291aGFpXCA7Civnmbrms6EgPiBoYXBwb3VcIDsKK+eUo+mZoiA+IHNhbicnaW5cIDsKK+WIhuWboyA+IGJ1bmRhblwgOwor6Ieq6Ki7ID4gamljaHV1XCA7CivluoPljp8gPiBrb3VnZW5cIDsKK+WIneWPtyA+IHNob2dvdVwgOwor5bit5be7ID4gc2Vra2VuXCA7Civlho3mlZcgPiBzYWloYWlcIDsKK+WJjeS4liA+IHplbnNlaVwgOwor6YCg5YW1ID4gem91aGVpXCA7CivpgLjkuosgPiBpdHN1amlcIDsKK+WDu+ebriA+IGhpZ2FtZVwgOwor5YKt6IGYID4geW91aGVpXCA7CivprLHnqY0gPiB1c3Nla2lcIDsKK+W3qOaYnyA+IGt5b3NlaVwgOwor5YiA5ZytID4gdG91a2VpXCA7CivlhormlbAgPiBzYXNzdXVcIDsKK+W5vOWQmyA+IHlvdWt1blwgOwor55m65rGXID4gaGFra2FuXCA7CivnlLvpi7IgPiBnYWJ5b3VcIDsKK+WHuuWfjiA+IGRlamlyb1wgOwor5bm85ZCNID4geW91bWVpXCA7Civou4rnqpMgPiBzaGFzb3VcIDsKK+Wwj+m8uyA+IGtvYmFuYVwgOwor5YaF5peoID4gbmFpc2hpXCA7Civnl5vnvbUgPiB0c3V1YmFcIDsKK+iHquimmiA+IGppa2FrdVwgOwor55a+6IumID4gc2hpa2t1XCA7CivlhoXmlrkgPiBuYWlob3VcIDsKK+WBveiWrCA+IGdpeWFrdVwgOwor55eF6IelID4gYnlvdWdhXCA7CivluL3lrZAgPiBib3VzaGlcIDsKK+WFseaghCA+IGt5b3VlaVwgOwor6LuK56iuID4gc2hhc2h1XCA7CivlgKTpgYcgPiBjaGlndXVcIDsKK+W5tuWRkSA+IGhlaWRvblwgOwor5bqK5YegID4gc2hvdWdpXCA7Civlub7ljYMgPiBpa3VzZW5cIDsKK+mrmOiRlyA+IGtvdWNob1wgOwor6L6y5belID4gbm91a291XCA7CivlsI/puqYgPiBrb211Z2lcIDsKK+aknOiojiA+IGtlbnRvdVwgOwor5YiG5Za2ID4gYnVuJydlaVwgOwor5qOS6Yu8ID4gYm91a291XCA7CivpgIHlkYggPiBzb3V0ZWlcIDsKK+W6p+S4rSA+IHphY2h1dVwgOwor5YaF5pS/ID4gbmFpc2VpXCA7CivlhoXmlLsgPiBuYWlrb3VcIDsKK+W5tuWQiCA+IGhlaWdvdVwgOwor5YWs5qC9ID4ga291c2FpXCA7Civkv67pmaIgPiBzaHV1aW5cIDsKK+W6leWApCA+IHNva29uZVwgOwor5biw5bGeID4ga2l6b2t1XCA7Civlt6XmlbAgPiBrb3VzdXVcIDsKK+WFteabuSA+IGhlaXNvdVwgOwor5YW15pu4ID4gaGVpc2hvXCA7CivliJHlkI0gPiBrZWltZWlcIDsKK+i7jeekvCA+IGd1bnJlaVwgOwor5qi55pyoID4ganVtb2t1XCA7Civpq5joj5wgPiB0YWthbmFcIDsKK+ebuOWvviA+IHNvdXRhaVwgOwor6YCj5L+CID4gcmVua2VpXCA7CivlubTlj7cgPiBuZW5nb3VcIDsKK+aknOimliA+IGtlbnNoaVwgOwor5Yal5oOzID4gbWVpc291XCA7CivoirHngasgPiBoYW5hYmlcIDsKK+WxlemWiyA+IHRlbmthaVwgOwor55u45a6/ID4gYWl5YWRvXCA7CivoiJ7oiJ4gPiBtYWltYWlcIDsKK+mAgOWOuyA+IHRhaWt5b1wgOwor5YWo5qChID4gemVua291XCA7CivluK/lsIEgPiBvYmlmdXVcIDsKK+WHjeWvkiA+IHRvdWthblwgOwor5bmz5Y6fID4gaGVpZ2VuXCA7CivnnIzlpJYgPiBrZW5nYWlcIDsKK+WHjeWusyA+IHRvdWdhaVwgOwor5bGx6YeOID4gc2FuJyd5YVwgOwor6YCP5YaZID4gdG91c2hhXCA7CivliLbku6QgPiBzZWlyZWlcIDsKK+WFreacrCA+IHJvcHBvblwgOwor6Ium5qW9ID4ga3VyYWt1XCA7CivluLDlroUgPiBraXRha3VcIDsKK+ebsuWwhCA+IG1vdXNoYVwgOwor55a96IWrID4gc29zaG91XCA7CivmqKrmoLkgPiB5b2tvbmVcIDsKK+W5vuWIhiA+IGlrdWJ1blwgOwor55Ww6KqsID4gaXNldHN1XCA7CivprZTnkIMgPiBtYWt5dXVcIDsKK+WHtuWZqCA+IGt5b3VraVwgOwor5Yid5YasID4gc2hvdG91XCA7Civkv53pnakgPiBob2tha3VcIDsKK+WGjeaMmSA+IHNhaWt5b1wgOwor55uu5bGOID4gbWVrdXNvXCA7Civkv4rppqwgPiBzaHVubWVcIDsKK+eUsumIkSA+IGtvdWJhblwgOwor5YWr5pysID4gaGFwcG9uXCA7CivlhazmnIkgPiBrb3V5dXVcIDsKK+WBj+imiyA+IGhlbmtlblwgOwor5bqc5LitID4gZnVjaHV1XCA7Civnm67lsLsgPiBtZWppcmlcIDsKK+WFtuaWuSA+IHNvbmF0YVwgOwor55ub5bm0ID4gc2VpbmVuXCA7CivlsI/ptKggPiBrb2dhbW9cIDsKK+WGjeaLnSA+IHNhaWhhaVwgOwor6YCA5YuiID4gdGFpc2VpXCA7Civov5TloLEgPiBoZW5wb3VcIDsKK+mAo+S6mCA+IHJlbmtvdVwgOwor5bm95YalID4geXV1bWVpXCA7CivovInngq0gPiBzYWl0YW5cIDsKK+WGheaOoiA+IG5haXRhblwgOwor5qip5p+EID4ga2VucGVpXCA7CivlsI/ps6UgPiBrb3RvcmlcIDsKK+W5tOWKnyA+IG5lbmtvdVwgOwor55Sw6YeOID4gZGVuJyd5YVwgOwor5YW15pWwID4gaGVpc3V1XCA7Civnm6rlsL0gPiB0b3VqaW5cIDsKK+ecvOWJjSA+IGdhbnplblwgOwor5YWo5pu4ID4gemVuc2hvXCA7CivoiabnoLIgPiBrYW5wb3VcIDsKK+W6l+S4uyA+IHRlbnNodVwgOwor6Lui55SfID4gdGVuc2VpXCA7CivotrPpp4QgPiBhc2hpZGFcIDsKK+WFq+aZryA+IGhha2tlaVwgOwor55m75qW8ID4gdG91cm91XCA7Civkv53pmpwgPiBob3Nob3VcIDsKK+ebruWuiSA+IG1leWFzdVwgOwor5YaF5oy/ID4gbmFpc291XCA7CivmpoLnrpcgPiBnYWlzYW5cIDsKK+WIhuWOmCA+IGJ1bnJpblwgOwor6L+95YqgID4gdHN1aWthXCA7CivmqKrmnKggPiB5b2tvZ2lcIDsKK+WEqua4pSA+IHl1dWFrdVwgOwor5YaN5oimID4gc2Fpc2VuXCA7CivluIblvbEgPiBob2thZ2VcIDsKK+W5tOWInSA+IG5lbnNob1wgOwor6IWw6ZaTID4geW91a2FuXCA7CivojYnlsYsgPiBzb3Vva3VcIDsKK+WFrOaYjiA+IGtvdW1laVwgOwor5bm05YiKID4gbmVua2FuXCA7CivlubTliIYgPiBuZW5idW5cIDsKK+WFqOaZuiA+IHplbmNoaVwgOwor6YCG5YWQID4gc2FrYWdvXCA7Civlhajmma8gPiB6ZW5rZWlcIDsKK+W5leWWtiA+IGJha3VlaVwgOwor5bCP6bCtID4ga29oYWRhXCA7CivliKXkvb8gPiBiZXNzaGlcIDsKK+W5s+WIhiA+IGhlaWJ1blwgOwor55u45aemID4gc291a2FuXCA7Civlha3mlrkgPiByb3Bwb3VcIDsKK+WIpOS+iyA+IGhhbnJlaVwgOwor5bmz5YehID4gaGVpYm9uXCA7CivnmIvnmbIgPiBmdXV0ZW5cIDsKK+W5u+WDjyA+IGdlbnpvdVwgOwor5YWr5pa5ID4gaGFwcG91XCA7Civov73liIYgPiBvaXdha2VcIDsKK+mwpeWkqyA+IHlhbW9tZVwgOwor55So6YeRID4geW91a2luXCA7CivprZTniakgPiBtYW1vbm9cIDsKK+WFrOaWhyA+IGtvdWJ1blwgOwor55y85YWJID4gZ2Fua291XCA7CivojLblt74gPiBjaGFraW5cIDsKK+ebuOWlvSA+IHNvdWdvdVwgOwor5YiR5YW4ID4ga2VpdGVuXCA7Civov5HlnKggPiBraW56YWlcIDsKK+WIpeS7tiA+IGJla2tlblwgOwor6YCT5LydID4gdGVpZGVuXCA7CivlsbHovrogPiB5YW1hYmVcIDsKK+WGheaJgCA+IG5haXNob1wgOwor55Wl6KiYID4gcnlha2tpXCA7Civlt6fmiYsgPiBrb3VzaHVcIDsKK+WGheaIpiA+IG5haXNlblwgOwor55yf5ZGzID4gc2hpbm1pXCA7CivouqvnqbogPiBtaXNvcmFcIDsKK+i/keWboCA+IGtpbicnaW5cIDsKK+iNieWtkCA+IHNvdXNoaVwgOwor6IqL54mIID4gaW1vYmFuXCA7CivlhajmlocgPiB6ZW5idW5cIDsKK+W3oeaLnSA+IGp1bnBhaVwgOwor55Sj6YeRID4gc2Fua2luXCA7CivnmbvmoKEgPiB0b3Vrb3VcIDsKK+WFqOaVsCA+IHplbnN1dVwgOwor55uj5a6IID4ga2Fuc2h1XCA7Civlt6XmiYsgPiBrb3VzaHVcIDsKK+W3peaIvyA+IGtvdWJvdVwgOwor5YWo5pWXID4gemVucGFpXCA7CivnnJ/lkKYgPiBzaGlucGlcIDsKK+iLpeacqCA+IHdha2FnaVwgOwor5YiX5YCZID4gcmVra291XCA7Civov73lhLogPiB0c3VpbmFcIDsKK+WGt+WusyA+IHJlaWdhaVwgOwor5bqK5LiKID4geXVrYXVlXCA7Civlgb3ohpwgPiBnaW1ha3VcIDsKK+W4huW4gyA+IGhvbnVub1wgOwor5Yed5Zu6ID4gZ3lvdWtvXCA7CivpgJTkuK0gPiB0b2NodXVcIDsKK+WGheaGgiA+IG5haXl1dVwgOwor5L+X6ZaTID4gem9ra2FuXCA7Civkv4Ppn7MgPiBzb2t1b25cIDsKK+Wwj+mqqCA+IGtvYm9uZVwgOwor5bm95L2TID4geXV1dGFpXCA7Civlhbjmi6AgPiB0ZW5reW9cIDsKK+eZu+advyA+IHRvdWJhblwgOwor5Yid5LujID4gc2hvZGFpXCA7CivliIDliaMgPiB0b3VrZW5cIDsKK+W4s+WgtCA+IGNob3ViYVwgOwor5bmV5ZCPID4gYmFrdXJpXCA7CivprZrnga8gPiBneW90b3VcIDsKK+iGmui6qyA+IGhhZGFtaVwgOwor55mW5q+bID4ga3VzZWdlXCA7Civlubjkvr8gPiBrb3ViaW5cIDsKK+WDreeOiyA+IHNlbicnb3VcIDsKK+W5o+WItiA+IGhlaXNlaVwgOwor5YaN5oCdID4gc2Fpc2hpXCA7CivnnIzllrYgPiBrZW4nJ2VpXCA7Civprq7mmI4gPiBzZW5tZWlcIDsKK+iNkuWkqSA+IGtvdXRlblwgOwor55Sf6YWSID4ga2l6YWtlXCA7CivliIblhZogPiBidW50b3VcIDsKK+W5tOS/uCA+IG5lbnBvdVwgOwor5YiG5YWJID4gYnVua291XCA7CivliIDliIMgPiB0b3VqaW5cIDsKK+W5vuS6uiA+IGlrdW5pblwgOwor6ISz6auEID4gbm91enVpXCA7CivpqaXotrMgPiBraXNva3VcIDsKK+WGheaDhSA+IG5haWpvdVwgOwor55yf5YyXID4gbWFraXRhXCA7Civlt6jmgqogPiBreW9ha3VcIDsKK+WGheaCoyA+IG5haWthblwgOwor6I2K5aa7ID4ga2Vpc2FpXCA7CivlhajmkI0gPiB6ZW5zb25cIDsKK+WIg+WFiCA+IGhhc2FraVwgOwor5bGx6LevID4geWFtYWppXCA7Civlho3lvoEgPiBzYWlzZWlcIDsKK+mnv+mmrCA+IHNodW5tZVwgOwor55Sj6YGTID4gc2FuZG91XCA7CivluK/ln58gPiB0YWlpa2lcIDsKK+W4jOWwkSA+IGtpc2hvdVwgOwor6Ii556qTID4gc2Vuc291XCA7Civov5Tlk4EgPiBoZW5waW5cIDsKK+Wwj+mmliA+IGtva3ViaVwgOwor5bm05L2ZID4gbmVuJyd5b1wgOwor55SY6YW4ID4ga2Fuc2FuXCA7CivnlJ/pgoQgPiBzZWlrYW5cIDsKK+iIt+eqkyA+IGdlbnNvdVwgOwor6aiS6ZyKID4gc291cmVpXCA7CivluYXlk6EgPiBmdWt1aW5cIDsKK+WFieadpSA+IGtvdXJhaVwgOwor6Iez6Iq4ID4gc2hpZ2VpXCA7CivlubTkvJogPiBuZW5rYWlcIDsKK+mAgOS8miA+IHRhaWthaVwgOwor5a+h6buZID4ga2Ftb2t1XCA7CivliIPlgrcgPiBuaW5qb3VcIDsKK+WGjeW7uiA+IHNhaWtvblwgOwor5qW156eYID4gZ29rdWhpXCA7CivpgIPkuqEgPiB0b3Vib3VcIDsKK+mAgOS7uyA+IHRhaW5pblwgOwor5YaG5b+DID4gZW5zaGluXCA7CivlubTku6QgPiBuZW5yZWlcIDsKK+W5tOS7oyA+IG5lbmRhaVwgOwor5YKN57eaID4gYm91c2VuXCA7CivmqJnml5cgPiBoeW91a2lcIDsKK+ecgeWWtiA+IHNob3VlaVwgOwor5biw5Zu9ID4ga2lrb2t1XCA7CivnnYDkuIggPiBraXRha2VcIDsKK+i+suWgtCA+IG5vdWpvdVwgOwor6Lu95ribID4ga2VpZ2VuXCA7CivpqqjokaMgPiBrb3R0b3VcIDsKK+iNkuWfjiA+IGtvdWpvdVwgOwor6Le16LiPID4gc2VudG91XCA7CivojZjlnJIgPiBzaG91ZW5cIDsKK+eZguayuyA+IHJ5b3VqaVwgOwor6L665ZywID4gaGVuY2hpXCA7Civpp53ps6UgPiBkYWNob3VcIDsKK+WGheW+hCA+IG5haWtlaVwgOwor6IW56YOoID4gZnVrdWJ1XCA7Civlh7rlhYggPiBkZXNha2lcIDsKK+WFg+adpSA+IGdhbnJhaVwgOwor55yf5YasID4gbWFmdXl1XCA7CivovKrmoL0gPiByaW5zYWlcIDsKK+W3qOW8viA+IGt5b2RhblwgOwor5YWD5pysID4gZ2VucG9uXCA7CivlhYnmma8gPiBrb3VrZWlcIDsKK+WHtuWFtyA+IGt5b3VndVwgOwor6Ieq6IulID4gamlqYWt1XCA7CivlubTkuK0gPiBuZW5qdXVcIDsKK+eci+WPliA+IGthbnNodVwgOwor55m65pWjID4gaGFzc2FuXCA7CivluKvlm6MgPiBzaGlkYW5cIDsKK+mnsemnnSA+IHJha3VkYVwgOwor5YaF5bu3ID4gbmFpdGVpXCA7Civlgo3ns7sgPiBib3VrZWlcIDsKK+WIhuS9kyA+IGJ1bnRhaVwgOwor6L+O5ZCIID4gZ2VpZ291XCA7Civmr47jgIUgPiBtYWltYWlcIDsKK+S/rumAoCA+IHNodXpvdVwgOwor55m75pSAID4gdG91aGFuXCA7CivojYnloIIgPiBzb3Vkb3VcIDsKK+W5suS4jiA+IGthbicneW9cIDsKK+WIhuS8miA+IGJ1bmthaVwgOwor6auA6IKJID4gaGluaWt1XCA7CivmqZ/lsYsgPiBoYXRheWFcIDsKK+WGheW6rSA+IG5haXRlaVwgOwor6L6y5ZywID4gbm91Y2hpXCA7CivlhazmhqQgPiBrb3VmdW5cIDsKK+ebm+WkpyA+IHNlaWRhaVwgOwor6Iiq56m6ID4ga291a3V1XCA7CivluILlrZAgPiBpY2hpa29cIDsKK+WwiumhlCA+IHNvbmdhblwgOwor6LuN54qsID4gZ2Vua2VuXCA7CivlhYjmlrkgPiBzZW5wb3VcIDsKK+S/rui+niA+IHNodXVqaVwgOwor55Sf6LqrID4gbmFtYW1pXCA7CivmqKrmiYsgPiB5b2tvdGVcIDsKK+WBnOiIuSA+IHRlaXNlblwgOwor55yM5YuiID4ga2Vuc2VpXCA7Civlha3mhJ8gPiByb2trYW5cIDsKK+ecn+WBvSA+IHNoaW5naVwgOwor6Iiq56iLID4ga291dGVpXCA7CivliIbkuZcgPiBidW5qb3VcIDsKK+iNieWcsCA+IHNvdWNoaVwgOwor5YWD5pemID4gZ2FudGFuXCA7CivlhYjmlLsgPiBzZW5rb3VcIDsKK+WHpuWIkSA+IHNob2tlaVwgOwor55S76Kq/ID4gZ2FjaG91XCA7CivlhpflrpggPiBqb3VrYW5cIDsKK+WHpuWIhiA+IHNob2J1blwgOwor6Lu95rC0ID4ga2Vpc3VpXCA7Civoh6rohbkgPiBqaWJhcmFcIDsKK+ecn+WAiyA+IHNoaW5rb1wgOwor5L6h6aGNID4ga2FnYWt1XCA7CivliIbkuI4gPiBidW4nJ3lvXCA7CivovIPmraMgPiBrb3VzZWlcIDsKK+WHpuWHpiA+IHNob3Nob1wgOwor6IqS5rSLID4gYm91eW91XCA7CivlsI/pm6ogPiBrb3l1a2lcIDsKK+Wwj+mbqCA+IGtvc2FtZVwgOwor5beh5bm4ID4ganVua291XCA7CivlsI7pm7sgPiBkb3VkZW5cIDsKK+WFteW9uSA+IGhlaWVraVwgOwor5bCP6ZuAID4ga29nYXJhXCA7CivnnJ/kvqEgPiBzaGlua2FcIDsKK+i/keWIiiA+IGtpbmthblwgOwor5Ye95Lq6ID4ga2FuamluXCA7Civnm5floYEgPiB0b3VydWlcIDsKK+WFvOW4ryA+IGtlbnRhaVwgOwor6Ium5omLID4gbmlnYXRlXCA7Civlr77poZQgPiB0YWlnYW5cIDsKK+iLpeaJiyA+IHdha2F0ZVwgOwor5beo5bOwID4ga3lvaG91XCA7CivlhqzloLQgPiBmdXl1YmFcIDsKK+WCrOecoCA+IHNhaW1pblwgOwor5YSq5p+UID4geXV1anV1XCA7CivoirjmnpcgPiBnZWlyaW5cIDsKK+i7kueBryA+IGtlbnRvdVwgOwor55u45Y+NID4gc291aGFuXCA7Civlt6jlsqkgPiBreW9nYW5cIDsKK+W4r+WQjCA+IHRhaWRvdVwgOwor5bi45YukID4gam91a2luXCA7CivojZjlj7ggPiBzaG91amlcIDsKK+WFrOW9uSA+IGtvdWVraVwgOwor5YWo5b+rID4gemVua2FpXCA7CivlhoXlsaQgPiBuYWlzb3VcIDsKK+mrmOetiSA+IGtvdXRvdVwgOwor5YeN5Y6fID4gdG91Z2VuXCA7Civmpb3nlYwgPiBnYWtrYWlcIDsKK+iKseafsyA+IGthcnl1dVwgOwor6Iqx5p+xID4ga2FjaHV1XCA7CivojZjljrMgPiBzb3Vnb25cIDsKK+WHuuS4liA+IHNodXNzZVwgOwor5Ye25LqLID4ga3lvdWppXCA7CivluILlpJYgPiBzaGlnYWlcIDsKK+eXmOeYoSA+IHRvdXNvdVwgOwor5YeE5ZGzID4gc3Vnb21pXCA7Civoh6rnv5IgPiBqaXNodXVcIDsKK+WHoeWDpyA+IGJvbnNvdVwgOwor5a++6Z2iID4gdGFpbWVuXCA7CivnlarojLYgPiBiYW5jaGFcIDsKK+WGiuWtkCA+IHNvdXNoaVwgOwor55Ww6ImyID4gaXNob2t1XCA7CivluKvlj4sgPiBzaGl5dXVcIDsKK+eXmOeXlSA+IHRvdWtvblwgOwor5YaG5a+CID4gZW5qYWt1XCA7CivlhajlvaIgPiB6ZW5rZWlcIDsKK+auteOAhSA+IGRhbmRhblwgOwor5bee5bSOID4gc3VzYWtpXCA7Civov5Hlgo0gPiBraW5ib3VcIDsKK+WFpeW+oSA+IG55dXVnb1wgOwor5YaF5a65ID4gbmFpeW91XCA7CivlhoXlrq4gPiBuYWlndXVcIDsKK+WFrOW6rSA+IGtvdXRlaVwgOwor5YaF5a6aID4gbmFpdGVpXCA7CivluILlobUgPiBzaGlqaW5cIDsKK+i3teiogCA+IHNlbmdlblwgOwor6Iqz5pu4ID4gaG91c2hvXCA7CivnlKjoq4cgPiB5b3VkYW5cIDsKK+iKseacqCA+IGthYm9rdVwgOwor6I2S5Y6fID4ga291Z2VuXCA7CivlhazlubMgPiBrb3VoZWlcIDsKK+WGheWtqyA+IG5haXNvblwgOwor5biC5aC0ID4gc2hpam91XCA7CivnlLfoo4UgPiBkYW5zb3VcIDsKK+S/nei6qyA+IGhvc2hpblwgOwor55m65oakID4gaGFwcHVuXCA7Civlho3lqZogPiBzYWlrb25cIDsKK+iIjOerryA+IHpldHRhblwgOwor5YWo5buDID4gemVucGFpXCA7CivlhYjmipUgPiBzZW50b3VcIDsKK+WBleiAgSA+IGthaXJvdVwgOwor5YWo5bqXID4gemVudGVuXCA7Civnm7Lli5UgPiBtb3Vkb3VcIDsKK+WvvumZoyA+IHRhaWppblwgOwor5L6L6aGMID4gcmVpZGFpXCA7CivluK/liaMgPiB0YWlrZW5cIDsKK+W4neWRvSA+IHRlaW1laVwgOwor6Luf5rOlID4gbmFuZGVpXCA7CivojIXlsYsgPiBib3Vva3VcIDsKK+WFpeW6qyA+IG55dXVrb1wgOwor55So6KiAID4geW91Z2VuXCA7CivnmbrmhI8gPiBoYXRzdWlcIDsKK+WFpeW6nCA+IG55dXVmdVwgOwor6Iq45paHID4gZ2VpYnVuXCA7Civlh6HkvosgPiBoYW5yZWlcIDsKK+WwgumWgCA+IHNlbm1vblwgOwor55m65oOzID4gaGFzc291XCA7CivluK/liIAgPiB0YWl0b3VcIDsKK+i/keS9kyA+IGtpbnRhaVwgOwor6Ium5b+DID4ga3VzaGluXCA7CivmqoDlkJsgPiBkYW5rdW5cIDsKK+WFvOWumCA+IGtlbmthblwgOwor5YWo5biCID4gemVuc2hpXCA7CivlsJbpi60gPiBzZW4nJ2VpXCA7Civlhajlt7sgPiB6ZW5rYW5cIDsKK+Wwv+i3ryA+IG55b3Vyb1wgOwor55yM5LyaID4ga2Vua2FpXCA7Civnm6Tlj7AgPiBiYW5kYWlcIDsKK+W4g+WcsCA+IG51bm9qaVwgOwor6Iez57SUID4gc2hpanVuXCA7CivojYnljp8gPiBzb3VnZW5cIDsKK+iHque4myA+IGppYmFrdVwgOwor5qKF6YWSID4gdW1lc2h1XCA7CivlhYPmiYsgPiBtb3RvZGVcIDsKK+ecjOS7pCA+IGtlbnJlaVwgOwor5a+d6aaWID4gbmVrdWJpXCA7CivnlJ/oqpUgPiBzZWl0YW5cIDsKK+S/s+irpyA+IGhhaWthaVwgOwor6Luf5rC0ID4gbmFuc3VpXCA7Civov5Hku6MgPiBraW5kYWlcIDsKK+ecjOS6uiA+IGtlbmppblwgOwor55uG5ZywID4gYm9uY2hpXCA7Civlho3lpIkgPiBzYWloZW5cIDsKK+WBveensCA+IGdpc2hvdVwgOwor6LuN5rivID4gZ3Vua291XCA7CivlhZrlvIogPiB0b3VoZWlcIDsKK+WHpuS4liA+IHNob3NlaVwgOwor5Ya35Y6zID4gcmVpZ2VuXCA7Civoh63ntKAgPiBzaHV1c29cIDsKK+WGheWmuyA+IG5haXNhaVwgOwor6IyE5a2QID4gbmFzdWJpXCA7Civnm5/lj4sgPiBtZWl5dXVcIDsKK+ebl+WTgSA+IHRvdWhpblwgOwor55Sf6KiIID4gc2Vpa2VpXCA7CivoiJfnn7MgPiBob3Nla2lcIDsKK+iHque1piA+IGppa3l1dVwgOwor6L+U5LiKID4gaGVuam91XCA7CivprZrmoq8gPiBneW90ZWlcIDsKK+ebm+WQjSA+IHNlaW1laVwgOwor5YWo5bO2ID4gemVudG91XCA7Civota3poZQgPiBzaGFnYW5cIDsKK+WFseWvnSA+IHRvbW9uZVwgOwor5bCP6YqtID4ga296ZW5pXCA7CivnmofluJ0gPiBrb3V0ZWlcIDsKK+WGheWljyA+IG5haXNvdVwgOwor6L+R5LiWID4ga2luc2VpXCA7Civoh6jntYIgPiByaW5qdXVcIDsKK+W4uOS+iyA+IGpvdXJlaVwgOwor6I2J5Ym1ID4gc291c291XCA7CivlhajlsrggPiB6ZW5nYW5cIDsKK+W3qOWkpyA+IGt5b2RhaVwgOwor6L6b5ZGzID4ga2FyYW1pXCA7CivlhoXlpJYgPiBuYWlnYWlcIDsKK+iLpeW5siA+IGpha2thblwgOwor5bGN6KuMID4gc2hpa2FuXCA7Civnm67lhYggPiBtZXNha2lcIDsKK+W4q+WDpyA+IHNoaXNvdVwgOwor5bi45L2TID4gam91dGFpXCA7Civnm67lhYMgPiBtZW1vdG9cIDsKK+W4uOS9jyA+IGpvdWp1dVwgOwor5YWo5bGxID4gemVuemFuXCA7CivovrLlhbUgPiBub3VoZWlcIDsKK+WCjeebriA+IGhhdGFtZVwgOwor5bGV6KazID4gdGVua2FuXCA7CivlsZXopqcgPiB0ZW5yYW5cIDsKK+eUmOiogCA+IGthbmdlblwgOwor5bi45LyaID4gam91a2FpXCA7Civlt6XlpKcgPiBrb3VkYWlcIDsKK+WFrOWusyA+IGtvdWdhaVwgOwor5bil5YWIID4gc29zc2VuXCA7CivluLjku7sgPiBqb3VuaW5cIDsKK+S/r+inkiA+IGZ1a2FrdVwgOwor6Iul5biDID4gd2FrYW1lXCA7CivluJ3liLYgPiB0ZWlzZWlcIDsKK+eXtOa8oiA+IGNoaWthblwgOwor5YWs5a6aID4ga291dGVpXCA7Civou43ms5UgPiBndW5wb3VcIDsKK+Wwj+mHkSA+IGtvZ2FuZVwgOwor55m75bq4ID4gdG91eW91XCA7CivlhajlsIQgPiB6ZW5zaGFcIDsKK+iNiuWGoCA+IGtlaWthblwgOwor5Ya35YmbID4gcmVpZ291XCA7CivluLjkurogPiBqb3VqaW5cIDsKK+mtmuadvyA+IGd5b2JhblwgOwor5bSp5r2wID4gaG91a2FpXCA7CivlhazlrZAgPiBrb3VzaGlcIDsKK+WDp+atoyA+IHNvdWpvdVwgOwor5qGR6ZaAID4gc291bW9uXCA7CivlhoXloLEgPiBuYWlob3VcIDsKK+WFgeaBrSA+IGlua3lvdVwgOwor5YWJ5b2pID4ga291c2FpXCA7Civou7jmnKggPiBqaWt1Z2lcIDsKK+WFh+W+kiA+IGt5b3V0b1wgOwor55u45LydID4gc291ZGVuXCA7CivotrPoubQgPiBhc2hpZ2VcIDsKK+W4neWGoCA+IHRlaWthblwgOwor5L216Z+zID4gcGluJydpblwgOwor6auY55uuID4gdGFrYW1lXCA7Civlhobln58gPiBlbicnaWtpXCA7Civlr5LpoqggPiBrYW5wdXVcIDsKK+mnhemgrSA+IGVraXRvdVwgOwor5YK+54CJID4ga2Vpc2hhXCA7Civlhrflh40gPiByZWl0b3VcIDsKK+i7jeawkSA+IGd1bm1pblwgOwor6aqo57KJID4ga29wcHVuXCA7Civnl4XnkIYgPiBieW91cmlcIDsKK+W4sOS8kSA+IGtpa3l1dVwgOwor5biw5LyPID4ga2lmdWt1XCA7CivluLjkuJYgPiB0b2tveW9cIDsKK+WCsueEtiA+IGdvdXplblwgOwor6Ia16IeTID4gc3Vpem91XCA7CivlhbblpbQgPiBzb2l0c3VcIDsKK+WFheW9kyA+IGp1dXRvdVwgOwor5L+u6KOcID4gc2h1dWhvXCA7CivluIPlkYogPiBmdWtva3VcIDsKK+eah+WxhSA+IGtvdWt5b1wgOwor6IiO55ujID4gc2hha2FuXCA7CivnlrHnmKEgPiBob3Vzb3VcIDsKK+aoqeWumCA+IGtlbmthblwgOwor5YSS5pWZID4ganVreW91XCA7CivluLDkuqwgPiBraWt5b3VcIDsKK+S/l+itsCA+IHpva3VnaVwgOwor5Ya35YWJID4gcmVpa291XCA7Civnm7jkuZcgPiBzb3Vqb3VcIDsKK+WvnemamyA+IG5lZ2l3YVwgOwor5bir5LydID4gc2hpZGVuXCA7CivlhoXlnLAgPiBuYWljaGlcIDsKK+WFieW5tCA+IGtvdW5lblwgOwor55qE5bGLID4gdGVraXlhXCA7Civnm4rlj4sgPiBla2l5dXVcIDsKK+WGheWcqCA+IG5haXphaVwgOwor5YW15aSJID4gaGVpaGVuXCA7CivlsbHokbUgPiB3YXNhYmlcIDsKK+Wwj+mBjiA+IHNob3VrYVwgOwor5YW15aOrID4gaGVpc2hpXCA7CivlgbXnn6UgPiB0ZWljaGlcIDsKK+eWq+eZmCA+IGVraXJlaVwgOwor55uy5Lq6ID4gbW91amluXCA7Civnmoflrq4gPiBrb3VndXVcIDsKK+iDvemdoiA+IG5vdW1lblwgOwor55ub5YW4ID4gc2VpdGVuXCA7Civkv53oqLwgPiBob3Nob3VcIDsKK+aknOeulyA+IGtlbnphblwgOwor55qH5a6XID4ga291c291XCA7CivlhYjluKsgPiBzZW5zaGlcIDsKK+WFiOW4nSA+IHNlbnRlaVwgOwor5qC56ZuqID4gbmV5dWtpXCA7CivojIXloLQgPiBrYXlhYmFcIDsKK+W4sOS4gCA+IGtpaXRzdVwgOwor55qH5a2rID4ga291c29uXCA7Civkvq7ovrEgPiBidWpva3VcIDsKK+eVque3miA+IGJhbnNlblwgOwor6L6y5LyaID4gbm91a2FpXCA7Civkv5foqp4gPiB6b2t1Z29cIDsKK+ebruS7iiA+IG1va2tvblwgOwor5Yal5YqgID4gbXlvdWdhXCA7Civoh6Xnq5wgPiBnYXJ5b3VcIDsKK+ebtOS4iyA+IGNob2trYVwgOwor5bC46KuMID4gc2hpa2FuXCA7CivlsbHoj5wgPiBzYW5zYWlcIDsKK+i7ouagoSA+IHRlbmtvdVwgOwor6Lyq5b2iID4gcmlua2VpXCA7Civkv5foqbEgPiB6b2t1d2FcIDsKK+eWpeeZrCA+IGthaXNlblwgOwor6Ii554GvID4gc2VudG91XCA7Civoh6rnp7AgPiBqaXNob3VcIDsKK+iLpuWtpiA+IGt1Z2FrdVwgOwor5YWD5bilID4gZ2Vuc3VpXCA7CivojYnkvZMgPiBzb3V0YWlcIDsKK+eZveWvvyA+IGhha3VqdVwgOwor5Yal5YipID4gbXlvdXJpXCA7CivluILli6IgPiBzaGlzZWlcIDsKK+S9k+mokyA+IHRhaWtlblwgOwor55m65bGVID4gaGF0dGVuXCA7Civlt6Hlm54gPiBqdW5rYWlcIDsKK+ani+aWhyA+IGtvdWJ1blwgOwor6Ii354GvID4gZ2VudG91XCA7CivovKrlu7sgPiByaW4nJ25lXCA7CivlhbjlnosgPiB0ZW5rZWlcIDsKK+WxseiNmCA+IHNhbnNvdVwgOwor5YWs5aOyID4ga291YmFpXCA7CivppqjpppkgPiBrZWlrb3VcIDsKK+iEsemAgCA+IGRhdHRhaVwgOwor5L+X6KejID4gem9ra2FpXCA7Civog4zpsK0gPiBzZWJpcmVcIDsKK+eZuuWwhCA+IGhhc3NoYVwgOwor5YOa5qmfID4gcnlvdWtpXCA7CivlhajlpKkgPiB6ZW50ZW5cIDsKK+agoemiqCA+IGtvdWZ1dVwgOwor6LWk6ZaAID4gYWthbW9uXCA7CivlhqXlhqUgPiBtZWltZWlcIDsKK+WxjeidiyA+IHNoaXJvdVwgOwor55Wd57mUID4gdW5lb3JpXCA7Civkv5foposgPiB6b2trZW5cIDsKK+WAieiNtyA+IGt1cmFuaVwgOwor6Iqz5oOFID4gaG91am91XCA7CivluILliLYgPiBzaGlzZWlcIDsKK+mmlumtgSA+IHNodWthaVwgOwor5YWl5aSrID4gbnl1dWZ1XCA7Civlhajlo4ogPiB6ZW5rYWlcIDsKK+eUn+iWkSA+IHNob3VnYVwgOwor5YWs5aCxID4ga291aG91XCA7CivlhKrmgKcgPiB5dXVzZWlcIDsKK+WFteWboyA+IGhlaWRhblwgOwor5a++6YGHID4gdGFpZ3V1XCA7CivnlJ/olYMgPiBzZWliYW5cIDsKK+S+m+mAsiA+IGd1c2hpblwgOwor5YWN5a6YID4gbWVua2FuXCA7CivmoZ/pgZMgPiBzYW5kb3VcIDsKK+WFiOWwjiA+IHNlbmRvdVwgOwor5biC5YaFID4gc2hpbmFpXCA7CivlsI/ot68gPiBzaG91amlcIDsKK+i7veaMmSA+IGtlaWt5b1wgOwor6Imv5qGIID4gcnlvdWFuXCA7CivlrrnpoZQgPiB5b3VnYW5cIDsKK+WFvOWWtiA+IGtlbicnZWlcIDsKK+WGhuWRsyA+IG1hcnVtaVwgOwor55ub5LyaID4gc2Vpa2FpXCA7CivlhoblkaggPiBlbnNodXVcIDsKK+iKuOW9kyA+IGdlaXRvdVwgOwor5YSq5b6FID4geXV1dGFpXCA7CivnlJjolq8gPiBrYW5zaG9cIDsKK+WGheWRvSA+IG5haW1laVwgOwor6LuK5qScID4gc2hha2VuXCA7CivoirPlv5cgPiBob3VzaGlcIDsKK+Wwj+i2syA+IGtvYXNoaVwgOwor55qH5aSpID4ga291dGVuXCA7Civlr77ovrogPiB0YWloZW5cIDsKK+i2hemBjiA+IGNob3VrYVwgOwor55ub5LujID4gc2VpZGFpXCA7Civoi5flrZcgPiBteW91amlcIDsKK+iDjOmqqCA+IHNlYm9uZVwgOwor5YaF5ZCrID4gbmFpZ2FuXCA7CivppqzpnakgPiBiYWtha3VcIDsKK+ebn+S4uyA+IG1laXNodVwgOwor5YaF5ZCRID4gbmFpa291XCA7CivlhYnlrZAgPiBrb3VzaGlcIDsKK+mmmemmmSA+IGtvdWtvdVwgOwor5YaF5ZCIID4gbmFpZ291XCA7CivoiLnmuKAgPiBzZW5reW9cIDsKK+eUmOiUlyA+IGthbnNob1wgOwor5beo5Y+jID4ga3lva291XCA7Civlhazlm6MgPiBrb3VkYW5cIDsKK+WGjeWLpCA+IHNhaWtpblwgOwor5biC5YK1ID4gc2hpc2FpXCA7CivlsqnnqbQgPiBpd2FhbmFcIDsKK+WFg+WvhyA+IGdlbmtvdVwgOwor5L2Z6ZyHID4geW9zaGluXCA7CivlhajlnLAgPiB6ZW5jaGlcIDsKK+eVj+e4riA+IGlzaHVrdVwgOwor5YaV5YagID4gYmVua2FuXCA7CivojLbkvJogPiBjaGFrYWlcIDsKK+eRtumhlCA+IHlvdWdhblwgOwor5L2O6aCtID4gdGVpdG91XCA7CivlhobljZMgPiBlbnRha3VcIDsKK+WvhumWiSA+IG1pcHBlaVwgOwor5bGx6IOMID4geWFtYXNlXCA7Civmp5jmhYsgPiB5b3V0YWlcIDsKK+iMtuS7oyA+IGNoYWRhaVwgOwor5L2T6Z2iID4gdGFpbWVuXCA7CivlgqzmtpkgPiBzYWlydWlcIDsKK+iDjOmmsyA+IGhhaWNoaVwgOwor5YWx5Za2ID4ga3lvdWVpXCA7CivohLHotbAgPiBkYXNzb3VcIDsKK+eZvuWknCA+IG1vbW95b1wgOwor6Ium5aKDID4ga3VreW91XCA7Civlhpnlg48gPiBzaGF6b3VcIDsKK+Wun+mokyA+IGppa2tlblwgOwor5YWl5ZySID4gbnl1dWVuXCA7CivojLbkurogPiBjaGFqaW5cIDsKK+iLpuWhqSA+IG5pZ2FyaVwgOwor55m65aWuID4gaGFwcHVuXCA7Civoi7Hlm70gPiBlaWtva3VcIDsKK+WGheWMhSA+IG5haWhvdVwgOwor5YaN5YiKID4gc2Fpa2FuXCA7CivnlKjoiLkgPiB5b3VzZW5cIDsKK+mrmOeHpSA+IGtvdXNvdVwgOwor5YaF5YukID4gbmFpa2luXCA7CivoirHluoogPiBrYXNob3VcIDsKK+iCuumtmiA+IGhhaWd5b1wgOwor6Ieq55m9ID4gamloYWt1XCA7Civlrrbpm4YgPiBrYXNodXVcIDsKK+i7jeabuSA+IGd1bnNvdVwgOwor6LuN5pu4ID4gZ3Vuc2hvXCA7Civlgo3ngrkgPiBib3V0ZW5cIDsKK+S+v+impyA+IGJlbnJhblwgOwor55m65aOwID4gaGFzc2VpXCA7Civnmbvlo4cgPiB0b3VkYW5cIDsKK+ani+aIkCA+IGtvdXNlaVwgOwor5qSc55y8ID4ga2VuZ2FuXCA7Civlho3lho0gPiBzYWlzYWlcIDsKK+WAkue9riA+IHRvdWNoaVwgOwor5qCh6ZaAID4ga291bW9uXCA7CivpppbpoYwgPiBzaHVkYWlcIDsKK+WGheWJmyA+IG5haWdvdVwgOwor6LuS5piCID4ga2Vua291XCA7CivlhYjlprsgPiBzZW5zYWlcIDsKK+W3neWOnyA+IGthd2FyYVwgOwor5biC5LyaID4gc2hpa2FpXCA7Civpqqjnm7ggPiBrb3Nzb3VcIDsKK+i7ouaPmyA+IHRlbmthblwgOwor5YWx5ZKMID4ga3lvdXdhXCA7CivnlJjojYkgPiBrYW56b3VcIDsKK+WGheWIhiA+IG5haWJ1blwgOwor55SY6Iy2ID4gYW1hY2hhXCA7CivnmbvloLQgPiB0b3Vqb3VcIDsKK+WvnemFkiA+IG5lemFrZVwgOwor5YWE5aeJID4ga2Vpc2hpXCA7CivmraPjgIUgPiBzZWlzZWlcIDsKK+W4guS6uiA+IHNoaWppblwgOwor5YWE5aa5ID4ga2VpbWFpXCA7CivlhaXllrYgPiBueXV1ZWlcIDsKK+WFvOWLpCA+IGtlbmtpblwgOwor5YWD5aeLID4gZ2Vuc2hpXCA7Civoho/ogpMgPiBrb3Vrb3VcIDsKK+mrmOeCuSA+IGtvdXRlblwgOwor6LuS5pWwID4ga2Vuc3V1XCA7CivlhYjlpKkgPiBzZW50ZW5cIDsKK+WFiOWknCA+IHNlbicneWFcIDsKK+W4guS6lSA+IHNoaXNlaVwgOwor5YaG5YaFID4gZW4nJ25haVwgOwor5YaF5YaFID4gbmFpbmFpXCA7Civou43ml4UgPiBndW5yeW9cIDsKK+WGheWFuCA+IG5haXRlblwgOwor6Lu95b+rID4ga2Vpa2FpXCA7CivoiKrmtbcgPiBrb3VrYWlcIDsKK+ani+aDsyA+IGtvdXNvdVwgOwor5a626ZW3ID4ga2FjaG91XCA7Civlhajlk6EgPiB6ZW4nJ2luXCA7Civoh6jnlYwgPiByaW5rYWlcIDsKK+mrmOeArCA+IHRha2FzZVwgOwor5YWo5ZOBID4gemVucGluXCA7CivmpJznl7AgPiBrZW50YW5cIDsKK+WFpeWUkCA+IG5pdHRvdVwgOwor5biC5LiKID4gc2hpam91XCA7CivlsI/oqbEgPiBzaG91d2FcIDsKK+eah+WXoyA+IGtvdXNoaVwgOwor5bel5YW1ID4ga291aGVpXCA7Civog4zpnakgPiBzZWdhd2FcIDsKK+W3qOWEhCA+IGt5b29rdVwgOwor6IOM6Z2iID4gaGFpbWVuXCA7Civou43mlL8gPiBndW5zZWlcIDsKK+WCteaoqSA+IHNhaWtlblwgOwor5YWI5aGUID4gc2VudG91XCA7Civlhazlj7ggPiBrb3VzaGlcIDsKK+i8quWnpiA+IHJpbmthblwgOwor6Iiq5rOVID4ga291aG91XCA7Civlt6jlg48gPiBreW96b3VcIDsKK+eWkeeNhCA+IGdpZ29rdVwgOwor5bCP6KiAID4ga29nb3RvXCA7CivlhoXlgrUgPiBuYWlzYWlcIDsKK+aknOeVqiA+IGtlbmJhblwgOwor5YWF5aGrID4ganV1dGVuXCA7CivlsaTnvqQgPiBzb3VndW5cIDsKK+iKseWxiyA+IGhhbmF5YVwgOwor6Luf5oqVID4gbmFudG91XCA7CivlhoXlgbUgPiBuYWl0ZWlcIDsKK+WFqOWPsiA+IHplbnNoaVwgOwor6Lui5oimID4gdGVuc2VuXCA7CivlgbbnhLYgPiBndXV6ZW5cIDsKK+eUn+iCsiA+IHNlaWlrdVwgOwor6IaA6IOxID4gYm91a291XCA7Civou6LmiJAgPiB0ZW5zZWlcIDsKK+WFteWItiA+IGhlaXNlaVwgOwor5bKp55ukID4gZ2FuYmFuXCA7CivprZTmgKcgPiBtYXNob3VcIDsKK+WFseWKqSA+IGt5b3Vqb1wgOwor6LyD5beuID4ga2FrdXNhXCA7Civmo5Lnt5ogPiBib3VzZW5cIDsKK+WFq+WNgSA+IHlhc29qaVwgOwor5YW15YiDID4gaGVpamluXCA7Civlho3kvJogPiBzYWlrYWlcIDsKK+iKseWuoiA+IGtha2FrdVwgOwor6Iqx5a6fID4gaGFuYW1pXCA7Civoi5flnIMgPiBieW91aG9cIDsKK+WGjeS7uyA+IHNhaW5pblwgOwor5L2Z6YyyID4geW9yb2t1XCA7Civnl4XmsJcgPiBieW91a2lcIDsKK+iDuOmDqCA+IGt5b3VidVwgOwor6aeF6YCTID4gZWtpdGVpXCA7CivlhYjlnKggPiBzZW56YWlcIDsKK+Wun+mamyA+IGppc3NhaVwgOwor55Sf6ICFID4gc2hvdWphXCA7CivnlLHnt5IgPiB5dWlzaG9cIDsKK+S/s+iBliA+IGhhaXNlaVwgOwor5bGx57O7ID4gc2Fua2VpXCA7CivnlLfns7sgPiBkYW5rZWlcIDsKK+S9s+i+sCA+IGthc2hpblwgOwor5a++6KuWID4gdGFpcm9uXCA7CivmqKnljp8gPiBrZW5nZW5cIDsKK+WvruiyuyA+IHJ5b3VoaVwgOwor5a++6KuHID4gdGFpZGFuXCA7Civouqvmn4QgPiBtaWdhcmFcIDsKK+WAq+ekviA+IHJpbnNoYVwgOwor5beo5L2TID4ga3lvdGFpXCA7CivlhoXkvY8gPiBuYWlqdXVcIDsKK+eah+WQjiA+IGtvdWdvdVwgOwor5bCP6KKWID4ga29zb2RlXCA7Civlr77oqp4gPiB0c3VpZ29cIDsKK+iDvei+ryA+IG5vdWJlblwgOwor6Ium5ZGzID4gbmlnYW1pXCA7Civlg6fmiL8gPiBzb3Vib3VcIDsKK+WFrOWIpCA+IGtvdWhhblwgOwor6a2F5oORID4gbWl3YWt1XCA7CivlhazliIogPiBrb3VrYW5cIDsKK+WGjeS4iSA+IHNhaXNhblwgOwor5YWH5ZmoID4ga3lvdWtpXCA7Civls7bmsJEgPiB0b3VtaW5cIDsKK+aoqeWLoiA+IGtlbnNlaVwgOwor5beo5Lq6ID4ga3lvamluXCA7CivlhoXkuokgPiBuYWlzb3VcIDsKK+WwhuijnCA+IHNob3Vob1wgOwor5YaF5LmxID4gbmFpcmFuXCA7CivlhY7llIcgPiB0b3NoaW5cIDsKK+WFvOS9tSA+IGtlbnBlaVwgOwor5bel5Lq6ID4ga291amluXCA7CivoirjlpKcgPiBnZWlkYWlcIDsKK+WFrOWFmiA+IGtvdXRvdVwgOwor6Ieq54iGID4gamliYWt1XCA7CivoiLfmoq8gPiBnZW50ZWlcIDsKK+iEseihoyA+IGRhdHN1aVwgOwor5YaG5LiYID4gZW5reXV1XCA7CivkvJrppKggPiBrYWlrYW5cIDsKK+iKneWxhSA+IHNoaWJhaVwgOwor6Luf5oCnID4gbmFuc2VpXCA7Civnmobli6QgPiBrYWlraW5cIDsKK+W3qOS4hyA+IGt5b21hblwgOwor6LuN5omHID4gZ3Vuc2VuXCA7Civmn7vplrIgPiBzYWV0c3VcIDsKK+WvuOiogCA+IHN1bmdlblwgOwor5a+G6YCBID4gbWlzc291XCA7CivovKrlm54gPiByaW4nJ25lXCA7CivnlKjntJkgPiB5b3VzaGlcIDsKK+WvhOmAsiA+IGtpc2hpblwgOwor55eU5qC4ID4gamlrYWt1XCA7CivlhajlhY0gPiB6ZW5tZW5cIDsKK+eZuuWQkSA+IGhha2tvdVwgOwor5L2T6YeNID4gdGFpanV1XCA7CivlhazlgrUgPiBrb3VzYWlcIDsKK+WFmuWLoiA+IHRvdXNlaVwgOwor5qOE57SEID4ga2l5YWt1XCA7Civkvo3oqq0gPiBqaWRva3VcIDsKK+mqqOeJjCA+IGthcnV0YVwgOwor5YG05rqdID4gc29ra291XCA7Civlr6norbAgPiBzaGluZ2lcIDsKK+mqqOeJhyA+IGtvcHBlblwgOwor5YK+5pacID4ga2Vpc2hhXCA7CivlhJLlraYgPiBqdWdha3VcIDsKK+iHqueEtiA+IHNoaXplblwgOwor5bCC6KGMID4gc2Vua291XCA7CivotaTotaQgPiBha2Fha2FcIDsKK+iJsuaCqiA+IGlyb2FrdVwgOwor6Ium5YqbID4ga3V1cmlpXCA7CivouqvmlrkgPiBtaWthdGFcIDsKK+alt+abuCA+IGthaXNob1wgOwor5a6d6ZGRID4gaG91a2FuXCA7CivkvJrpoK0gPiBrYWl0b3VcIDsKK+S/oeiAhSA+IHNoaW5qYVwgOwor6LW36KuLID4ga2lzaG91XCA7Civohr/nmI0gPiBub3V5b3VcIDsKK+amguaVsCA+IGdhaXN1dVwgOwor6Iq45Z+fID4gZ2VpaWtpXCA7CivlsI/omY4gPiBrb2RvcmFcIDsKK+iJsuaBiyA+IGlyb2tvaVwgOwor6IK66ZaAID4gaGFpbW9uXCA7CivlhbXku5cgPiBoZWlqb3VcIDsKK+WutumDtyA+IGtha3lvdVwgOwor55Wi55SfID4gaGlzc2VpXCA7Civkv6HnvqkgPiBzaGluZ2lcIDsKK+Wys+eItiA+IGdha3VmdVwgOwor6auY5q61ID4ga291ZGFuXCA7CivnlJ/ntJkgPiBraWdhbWlcIDsKK+iGv+eWsSA+IG5vdWhvdVwgOwor5L6L6KiAID4gcmVpZ2VuXCA7CivnmoflhbggPiBrb3V0ZW5cIDsKK+WFiOWQmyA+IHNlbmt1blwgOwor5L2z6LOeID4ga2FzaG91XCA7Civlhazkvq8gPiBrb3Vrb3VcIDsKK+i1pOiynSA+IGFrYWdhaVwgOwor5L6L6KejID4gcmVpa2FpXCA7CivnmoblhbUgPiBrYWloZWlcIDsKK+i7jeaDhSA+IGd1bmpvdVwgOwor6auY5q2vID4gdGFrYWJhXCA7CivlhbXkubEgPiBoZWlyYW5cIDsKK+S9lemBjSA+IG5hbmJlblwgOwor5YWs5L2/ID4ga291c2hpXCA7CivlhYjlj5YgPiBzZW5zaHVcIDsKK+eZuuWLgSA+IGhha2tlaVwgOwor6aeE6LODID4gZGFjaGluXCA7CivnmbrlirkgPiBoYWtrb3VcIDsKK+Wwvue/vCA+IGJpeW9rdVwgOwor6auE5rayID4genVpZWtpXCA7CivlsIHonYsgPiBmdXVyb3VcIDsKK+WFmuWGhSA+IHRvdW5haVwgOwor55So566LID4geW91c2VuXCA7CivlhazkvY8gPiBrb3VqdXVcIDsKK+WFqOS+vyA+IHplbmJpblwgOwor55Sf57KLID4ga2lzc3VpXCA7CivnlLLnqK4gPiBrb3VzaHVcIDsKK+S/l+iAsyA+IHpva3VqaVwgOwor6auY5qyEID4ga291cmFuXCA7Civmob/oj4wgPiBrYW5raW5cIDsKK+WFrOS8miA+IGtvdWthaVwgOwor6Iie5qW9ID4gYnVnYWt1XCA7CivlrrTpgYogPiBlbicneXV1XCA7CivlhYPlj7cgPiBnZW5nb3VcIDsKK+mqqOeCrSA+IGtvdHRhblwgOwor55m65Yi4ID4gaGFra2VuXCA7CivlgbTms7MgPiBzb2JhZWlcIDsKK+iLseS/iiA+IGVpc2h1blwgOwor55Ww54mpID4gaWJ1dHN1XCA7CivlhajkvZMgPiB6ZW50YWlcIDsKK+eSsOimliA+IGthbnNoaVwgOwor6ISx6JepID4gZGFwcGFuXCA7CivnmbrliIogPiBoYWtrYW5cIDsKK+WFrOS6uiA+IGtvdWppblwgOwor5YSA5a64ID4gZ2lzaGluXCA7Civkv4LoiLkgPiBrZWlzZW5cIDsKK+aflOmghiA+IGp1dWp1blwgOwor5YWo5LyaID4gemVua2FpXCA7CivnlarniqwgPiBiYW5rZW5cIDsKK+mmrOi6qyA+IGJhc2hpblwgOwor55m95YWJID4gaGFra291XCA7Civnl5nmlKMgPiBrZWlyZW5cIDsKK+S9jui/tyA+IHRlaW1laVwgOwor6Iqv5ZywID4gc2hpbmppXCA7Civkvr/oiLkgPiBiaW5zZW5cIDsKK+WFqOS6uiA+IHplbmppblwgOwor6IWO6IeTID4gamluem91XCA7CivpprPotbAgPiBjaGlzb3VcIDsKK+eZuuWFiSA+IGhha2tvdVwgOwor5YWD5YuyID4gZ2Vua3VuXCA7CivohYvoh60gPiB3YWtpZ2FcIDsKK+WBnOa7niA+IHRlaXRhaVwgOwor5YWI5Yi2ID4gc2Vuc2VpXCA7CivpppnpgZMgPiBrb3Vkb3VcIDsKK+iLseS6rCA+IGVpa3lvdVwgOwor55e05oWLID4gY2hpdGFpXCA7CivlsbHnoKYgPiBzYW5zYWlcIDsKK+WvneiogCA+IG5lZ290b1wgOwor5L2z6Kq/ID4ga2FjaG91XCA7Civpq5jmpbwgPiBrb3Vyb3VcIDsKK+i7ouWxhSA+IHRlbmt5b1wgOwor5YGJ54OIID4gaXJldHN1XCA7CivlhYnlhqAgPiBrb3VrYW5cIDsKK+mtr+WbvSA+IHJva29rdVwgOwor6ISH6KaLID4gd2FraW1pXCA7CivlhYXliIYgPiBqdXVidW5cIDsKK+aooeS9nCA+IG1vc2FrdVwgOwor55qG5LydID4ga2FpZGVuXCA7Civnl7Tmg4UgPiBjaGlqb3VcIDsKK+WtnemkiiA+IGtvdXlvdVwgOwor6Ieo5rivID4gcmlua291XCA7CivltIfmlawgPiBzdXVrZWlcIDsKK+i7ouWvnSA+IGdvcm9uZVwgOwor6IWQ6IKJID4gZnVuaWt1XCA7Civlrpjph5EgPiBrYW5raW5cIDsKK+i8uOWFpSA+IHl1bnl1dVwgOwor5YWI5YW1ID4gc2VucGVpXCA7Civou43luL0gPiBndW5ib3VcIDsKK+WFh+WFtyA+IGt5b3VndVwgOwor5L+X57iBID4gem9rdWVuXCA7Civou43luKsgPiBndW5zaGlcIDsKK+iFueetiyA+IGZ1a2tpblwgOwor6Ieq5racID4gaml0b2t1XCA7CivohprnnYAgPiBoYWRhZ2lcIDsKK+i1sOihjCA+IHNvdWtvdVwgOwor5a656LWmID4geW91c2hhXCA7CivlsL/ntKAgPiBueW91c29cIDsKK+aghOmAsiA+IGVpc2hpblwgOwor5qeL5aSWID4ga291Z2FpXCA7CivmpZPmnpcgPiBmdXVyaW5cIDsKK+WFmuS6uiA+IHRvdWppblwgOwor6Ieo5rW3ID4gcmlua2FpXCA7CivkvZnos4ogPiB5b3pva3VcIDsKK+aknOa4qSA+IGtlbicnb25cIDsKK+Wvk+iogCA+IGd1dWdlblwgOwor5YWa5LqJID4gdG91c291XCA7CivpgYXjgIUgPiBjaGljaGlcIDsKK+mmlui8qiA+IGt1Yml3YVwgOwor6Iq45ZCNID4gZ2VpbWVpXCA7CivlgaXmsJcgPiBrZW5hZ2VcIDsKK+mrmOagoSA+IGtvdWtvdVwgOwor5a2d6aCGID4ga291anVuXCA7CivogpvploAgPiBrb3Vtb25cIDsKK+iHquazqCA+IGppY2h1dVwgOwor5qCE6L6xID4gZWlqb2t1XCA7CivlrpjpgrggPiBrYW50ZWlcIDsKK+i1pOijuCA+IHNla2lyYVwgOwor6Ie05q27ID4gY2hpc2hpXCA7CivlsI/oiLkgPiBrb2J1bmVcIDsKK+S8jemVtyA+IGdvY2hvdVwgOwor6Im25a65ID4gZW4nJ3lvdVwgOwor5bGI562LID4ga3Vra2luXCA7CivlrrnosowgPiB5b3Vib3VcIDsKK+Wwj+iInyA+IGtvYnVuZVwgOwor55m65LyaID4gaGFra2FpXCA7Civoh6rmsoggPiBqaWNoaW5cIDsKK+WumOmBuCA+IGthbnNlblwgOwor55eb5omTID4gdHN1dWRhXCA7Civoh63msJcgPiBzaHV1a2lcIDsKK+WutuizgyA+IHlhY2hpblwgOwor55m75LuZID4gdG91c2VuXCA7CivoirPlkI0gPiBob3VtZWlcIDsKK+WtpumZoiA+IGdha3VpblwgOwor6a2U5aKDID4gbWFreW91XCA7CivoiIzmoLkgPiB6ZWtrb25cIDsKK+WAieeahyA+IHNvdWtvdVwgOwor5bSp5b6hID4gaG91Z3lvXCA7CivkvZPosowgPiB0YWlib3VcIDsKK+mlhemgrSA+IG1hbmp1dVwgOwor5L2c6K2cID4gc2FrdWZ1XCA7CivkvbXooYwgPiBoZWlrb3VcIDsKK+WFiOS+vyA+IHNlbmJpblwgOwor5bCP6IadID4ga29oaXphXCA7CivliY3jgIUgPiBtYWVtYWVcIDsKK+WyrOa5viA+IGtvdXdhblwgOwor5YCS55SjID4gdG91c2FuXCA7CivlsI/ohbkgPiBrb2JhcmFcIDsKK+WFiOS+iyA+IHNlbnJlaVwgOwor5YWD5YCkID4gbW90b25lXCA7CivkvY7os4cgPiB0ZWlzaGlcIDsKK+mqqOazlSA+IGtvcHBvdVwgOwor55Sf56GsID4gc2Vpa291XCA7Civoia/lrrYgPiByeW91a2VcIDsKK+WFieS9kyA+IGtvdXRhaVwgOwor5a6Y6L66ID4ga2FucGVuXCA7Civoi5/kuJQgPiBrb3VzaG9cIDsKK+WxpOebuCA+IHNvdXNvdVwgOwor5a6f6LuKID4gamlzc2hhXCA7CivlhYjkvY8gPiBzZW5qdXVcIDsKK+WvhuioiCA+IG1pa2tlaVwgOwor5YSq5YuiID4geXV1c2VpXCA7CivlgrLmhaIgPiBnb3VtYW5cIDsKK+S7i+mxlyA+IGthaXJpblwgOwor6IO46KOPID4ga3lvdXJpXCA7CivlsI/ohIcgPiBrb3dha2lcIDsKK+WvhOiolyA+IGtpdGFrdVwgOwor5bSH5oudID4gc3V1aGFpXCA7CivmpoLlv7UgPiBnYWluZW5cIDsKK+eUqOebiiA+IHlvdWVraVwgOwor5bGv55SwID4gdG9uZGVuXCA7Civohr7ngpkgPiBrYWlzaGFcIDsKK+eZuOS4kSA+IGtpY2h1dVwgOwor5YWI5LujID4gc2VuZGFpXCA7Civpp5jolakgPiB0YWl0b3VcIDsKK+WBnOatoiA+IHRlaXNoaVwgOwor5bCP6IKhID4ga29tYXRhXCA7CivlhYjkurogPiBzZW5qaW5cIDsKK+i7ouWkiSA+IHRlbnBlblwgOwor6Lui5aOyID4gdGVuYmFpXCA7CivlgbTmoLkgPiBzb2trb25cIDsKK+WujOmBgiA+IGthbnN1aVwgOwor5a6f6Le1ID4gamlzc2VuXCA7Civlrpjou40gPiBrYW5ndW5cIDsKK+iDjOi1sCA+IGhhaXNvdVwgOwor6Lqr5b2iID4gbWluYXJpXCA7CivmoKHoqJMgPiBrb3VrdW5cIDsKK+Wwj+iAsyA+IGtvbWltaVwgOwor6IG06Z+zID4gY2hvdW9uXCA7CivmoKHoqIIgPiBrb3V0ZWlcIDsKK+iIiOabvyA+IGtvdXRhaVwgOwor5a656KqNID4geW91bmluXCA7CivohLHohIIgPiBkYXNzaGlcIDsKK+WFiOS4uyA+IHNlbnNodVwgOwor5Lya6YeIID4gZXNoYWt1XCA7CivlrZTpm4AgPiBrdWpha3VcIDsKK+aknOatuyA+IGtlbnNoaVwgOwor5bCP6ICFID4ga29tb25vXCA7Civku6PpoZggPiBkYWlnYW5cIDsKK+mkium2jyA+IHlvdWtlaVwgOwor5L+C57SvID4ga2VpcnVpXCA7Civogp3pipggPiBrYW5tZWlcIDsKK+S9k+iqjSA+IHRhaW5pblwgOwor5L2Z6KeSID4geW9rYWt1XCA7CivohLHogpsgPiBkYWtrb3VcIDsKK+WvneiXgSA+IG5ld2FyYVwgOwor5YSq5YWIID4geXV1c2VuXCA7Civos73piq0gPiBzYWlzZW5cIDsKK+WBtuaciSA+IGd1dXl1dVwgOwor5a+G6KGMID4gbWlra291XCA7CivlhYPkuIkgPiBnYW56YW5cIDsKK+iGoOeKtiA+IGtvdWpvdVwgOwor5L2T6KiAID4gdGFpZ2VuXCA7CivlgaXmo5IgPiBrZW5ib3VcIDsKK+WIuuOAhSA+IGlyYWlyYVwgOwor6Lqr5bmFID4gbWloYWJhXCA7Civku7LplpMgPiBuYWthbWFcIDsKK+S8nemBkyA+IGRlbmRvdVwgOwor5Ly06LWwID4gYmFuc291XCA7Civouqvlt74gPiBtaWhhYmFcIDsKK+WtlOmWgCA+IGtvdW1vblwgOwor6Lui5ZywID4gdGVuY2hpXCA7Civoia/lpJwgPiByeW91eWFcIDsKK+S9k+imgSA+IHRhaXlvdVwgOwor5Lyd6YCBID4gZGVuc291XCA7CivotIvpgKAgPiBnYW56b3VcIDsKK+mujuS4piA+IGFpbmFtZVwgOwor6Ii55b2xID4gc2VuJydlaVwgOwor6IiI5pWXID4ga291aGFpXCA7Civou6Llm54gPiB0ZW5rYWlcIDsKK+iHqOaknCA+IHJpbmtlblwgOwor5a++6IGvID4gdGFpcmVuXCA7CivnmYjlhbUgPiBoYWloZWlcIDsKK+mmluisgCA+IHNodWJvdVwgOwor5YOV5amiID4gYm9rdWhpXCA7Civmo5LnirYgPiBib3Vqb3VcIDsKK+mrmOaPmiA+IGtvdXlvdVwgOwor5LuW6aCYID4gdGFyeW91XCA7Civoga/pmoogPiByZW50YWlcIDsKK+WvuOiDtCA+IHp1bmRvdVwgOwor5YOn5aCCID4gc291ZG91XCA7Civkvo3oh6MgPiBqaXNoaW5cIDsKK+mok+eulyA+IGtlbnphblwgOwor55Sf55SjID4gc2Vpc2FuXCA7CivnlJ/nlJ8gPiBzZWlzZWlcIDsKK+S6uumtmiA+IG5pbmd5b1wgOwor5L2T6KOBID4gdGVpc2FpXCA7Civou43lo6sgPiBndW5zaGlcIDsKK+S+v+euoSA+IGJlbmthblwgOwor5YG25pWwID4gZ3V1c3V1XCA7Civkvr/nrosgPiBiaW5zZW5cIDsKK+mkiumtmiA+IHlvdWd5b1wgOwor5bCO57eaID4gZG91c2VuXCA7CivogZbppJAgPiBzZWlzYW5cIDsKK+WujOi1sCA+IGthbnNvdVwgOwor5LyJ6YWNID4ga291aGFpXCA7Civppqzonb8gPiB1bWFiYWVcIDsKK+iKseS/oSA+IGthc2hpblwgOwor5a6j6KqTID4gc2Vuc2VpXCA7Civku6TplqggPiByZWlrZWlcIDsKK+WDp+WdiiA+IHNvdWJvdVwgOwor5a++572uID4gdGFpY2hpXCA7Civpp5Doi7EgPiBjaHV1ZWlcIDsKK+iCqei6qyA+IGthdGFtaVwgOwor5LuK6aKoID4gaW1hZnV1XCA7CivpgJnjgIUgPiBob3Vob3VcIDsKK+iKuOS6uiA+IGdlaW5pblwgOwor5p+U6YGTID4ganV1ZG91XCA7CivlsaTnirYgPiBzb3Vqb3VcIDsKK+iEsee3miA+IGRhc3NlblwgOwor5qC56I+cID4ga29uc2FpXCA7CivlrqPoqIAgPiBzZW5nZW5cIDsKK+iDoeidtiA+IGtvY2hvdVwgOwor5bCP57OgID4ga29udWthXCA7CivmpJzmoYggPiBrZW4nJ2FuXCA7Civmnp3pmoogPiBzaGl0YWlcIDsKK+WumuirliA+IHRlaXJvblwgOwor5qW95bGLID4gZ2FrdXlhXCA7Civpq5jmiYAgPiBrb3VzaG9cIDsKK+eXheW+jCA+IGJ5b3Vnb1wgOwor6Ia/5rGBID4gbm91anV1XCA7CivlgrLlsrggPiBnb3VnYW5cIDsKK+Wwj+exsyA+IGtvZ29tZVwgOwor5a2m6YOoID4gZ2FrdWJ1XCA7Civoh6jmm7ggPiByaW5zaG9cIDsKK+afu+iqrSA+IHNhZG9rdVwgOwor6IWr55iNID4gc2h1eW91XCA7Civmpb3lr50gPiByYWt1bmVcIDsKK+Wwgee3mCA+IGZ1dWthblwgOwor5qC56IyOID4ga29ua2VpXCA7CivohqjmuoAgPiBib3VtYW5cIDsKK+S/rueQhiA+IHNodXVyaVwgOwor6ISx57OeID4gZGFwcHVuXCA7Civkv6HnlpEgPiBzaGluZ2lcIDsKK+Wun+imiyA+IGppa2tlblwgOwor6LuN5ZujID4gZ3VuZGFuXCA7Civoh5jmooUgPiByb3ViYWlcIDsKK+WumuiogCA+IHRlaWdlblwgOwor5p+76Ki8ID4gc2FzaG91XCA7CivlgJLmvbAgPiB0b3VrYWlcIDsKK+iIjOaIpiA+IHplc3NlblwgOwor5bCW56uvID4gc2VudGFuXCA7CivlrpjoqLEgPiBrYW5reW9cIDsKK+mrmOaFoiA+IGtvdW1hblwgOwor5p+U6LufID4ganV1bmFuXCA7CivlsI/nrrEgPiBrb2Jha29cIDsKK+iBlumciiA+IHNlaXJlaVwgOwor55mI5Lq6ID4gaGFpamluXCA7Civou6LlkJEgPiB0ZW5rb3VcIDsKK+WvhuiRrCA+IG1pc3NvdVwgOwor5bC955iBID4gamluc3VpXCA7CivkvbPoia8gPiBrYXJ5b3VcIDsKK+WwiuewoSA+IHNvbmthblwgOwor5bCO566hID4gZG91a2VuXCA7CivlsITnsr4gPiBzaGFzZWlcIDsKK+WumuimiyA+IHRlaWtlblwgOwor5L+d55WZID4gaG9yeXV1XCA7Civmp4vlhoUgPiBrb3VuYWlcIDsKK+eTpuekqyA+IGdhcmVraVwgOwor5a6f6KOFID4gamlzc291XCA7CivmpbXlr5IgPiBnb2trYW5cIDsKK+mnheiIjiA+IGVraXNoYVwgOwor5p2l6a6uID4gcmFpc2VuXCA7CivkurrpoZ4gPiBqaW5ydWlcIDsKK+ael+mWkyA+IHJpbmthblwgOwor5a6X6KaPID4gc2h1dWtpXCA7Civlr6nnvo4gPiBzaGluYmlcIDsKK+W0qeWjiiA+IGhvdWthaVwgOwor5Lqh6a2CID4gYm91a29uXCA7CivotIjos4QgPiB6b3V3YWlcIDsKK+S9v+iBmCA+IHNoaWhlaVwgOwor5Lq66aCtID4gamludG91XCA7CivotbDogIUgPiBzb3VzaGFcIDsKK+WtnemBkyA+IGtvdWRvdVwgOwor5a6f6KGMID4gamlra291XCA7Civou43llrYgPiBndW4nJ2VpXCA7Civlg63lj5YgPiBzZW5zaHVcIDsKK+anmOS9kyA+IHlvdXRhaVwgOwor6LOc6YeRID4gc2hpa2luXCA7CivmoKHokawgPiBrb3Vzb3VcIDsKK+i7veS+vyA+IGtlaWJlblwgOwor5L2/6ICFID4gc2hpc2hhXCA7Civlrpjoo70gPiBrYW5zZWlcIDsKK+WBtuaIkCA+IGd1dXNlaVwgOwor5L+X55WMID4gem9ra2FpXCA7Civou6Lli6QgPiB0ZW5raW5cIDsKK+S6pOmpqSA+IGtvdWthblwgOwor5L+X55S7ID4gem9rdWdhXCA7Civmnb7pn7sgPiBzaG91aW5cIDsKK+WvvuexsyA+IHRhaWJlaVwgOwor5a6L6KmeID4gc291c2hpXCA7CivlubPjgIUgPiBoZWloZWlcIDsKK+i3neeIqiA+IGt5b3NvdVwgOwor5YOn5Y+3ID4gc291Z291XCA7CivohILogqogPiBzaGlib3VcIDsKK+S6uumdoiA+IGppbm1lblwgOwor5bCC566hID4gc2Vua2FuXCA7CivogozouqsgPiBoYWRhbWlcIDsKK+iJr+WQpiA+IHJ5b3VoaVwgOwor6aO86aSKID4gc2hpeW91XCA7Civls7bltrwgPiB0b3VzaG9cIDsKK+iAgem9oiA+IHJvdXJlaVwgOwor6Imv5ZCPID4gcnlvdXJpXCA7Civmnb7pnLIgPiBzaG91cm9cIDsKK+WwgeetkiA+IGZ1dXRvdVwgOwor6aOb6bOlID4gaGljaG91XCA7CivohJrntYYgPiBreWFoYW5cIDsKK+WBtuaEnyA+IGd1dWthblwgOwor6LKd6aGeID4ga2FpcnVpXCA7Civku5jpjLIgPiBmdXJva3VcIDsKK+WBj+aXgSA+IGhlbmJvdVwgOwor5Luj6YeRID4gZGFpa2luXCA7Civpq5jlvJ8gPiBrb3V0ZWlcIDsKK+izvOiytyA+IGtvdWJhaVwgOwor6ISx56i/ID4gZGFra291XCA7CivlgY/mlpwgPiBoZW5zaGFcIDsKK+Wxsea1tyA+IHNhbmthaVwgOwor5a+G6IiqID4gbWlra291XCA7Civlr5LogqUgPiBrYW5nb2VcIDsKK+WvvuetiSA+IHRhaXRvdVwgOwor6Lui5YaZID4gdGVuc2hhXCA7CivkvJroq4cgPiBrYWlkYW5cIDsKK+iIjuW8nyA+IHNoYXRlaVwgOwor5YK+5Z+OID4ga2Vpc2VpXCA7CivlgaXmipUgPiBrZW50b3VcIDsKK+mmtOiHtCA+IGp1bmNoaVwgOwor6a2a5LuLID4gZ3lva2FpXCA7CivlgpjlsYsgPiBrYXNheWFcIDsKK+mrmOW5tCA+IGtvdW5lblwgOwor5L21572uID4gaGVpY2hpXCA7CivlsITnqIsgPiBzaGF0ZWlcIDsKK+S8neiogCA+IGRlbmdvblwgOwor6LuK5Y+wID4gc2hhZGFpXCA7CivnlbPmlbAgPiBqb3VzdXVcIDsKK+WvvuepuiA+IHRhaWt1dVwgOwor5Lya6KiIID4ga2Fpa2VpXCA7CivkvZzoiIggPiBzYWtrb3VcIDsKK+iBr+mCpiA+IHJlbnBvdVwgOwor6IW454KOID4gY2hvdWVuXCA7CivkurrplpMgPiBuaW5nZW5cIDsKK+WtpuiyuyA+IGdha3VoaVwgOwor5p2x6Z2iID4gdG91bWVuXCA7Civpq5jlt6UgPiBrb3Vrb3VcIDsKK+agoeiIjiA+IGtvdXNoYVwgOwor5bCP56C0ID4gc2hvdWhhXCA7Civos4fph5EgPiBzaGlraW5cIDsKK+mrmOW2uiA+IHRha2FuZVwgOwor6aOb6a2aID4gdG9iaXVvXCA7CivlsbHmsLQgPiBzYW5zdWlcIDsKK+S9meiIiCA+IHlva3lvdVwgOwor5bGx5rCXID4geWFtYWtlXCA7CivlsI/nn7MgPiBrb2lzaGlcIDsKK+iIiOW7gyA+IGtvdWhhaVwgOwor6LuN5YuiID4gZ3VuemVpXCA7CivkvZnoh60gPiB5b3NodXVcIDsKK+S8muimiyA+IGthaWtlblwgOwor5YCS5q27ID4gdG91c2hpXCA7CivlsIHnpoUgPiBob3V6ZW5cIDsKK+i0heiogCA+IHplaWdlblwgOwor54++6YeRID4gZ2Vua2luXCA7CivlsYXnhLYgPiBreW96ZW5cIDsKK+WEhOS4hyA+IG9rdW1hblwgOwor5qSc5oyZID4ga2Vua3lvXCA7Civou43lip8gPiBndW5rb3VcIDsKK+i7ouWAkiA+IHRlbnRvdVwgOwor55S65q2pID4gY2hvdWJ1XCA7Civlg6flhbUgPiBzb3VoZWlcIDsKK+eWkeaDkSA+IGdpd2FrdVwgOwor5bO25a6IID4gdG91c2h1XCA7Civku6Pov5QgPiBkYWloZW5cIDsKK+WBnOaIpiA+IHRlaXNlblwgOwor5qW95ZyfID4gcmFrdWRvXCA7Civoh6jmiKYgPiByaW5zZW5cIDsKK+WuneiUtSA+IGhvdXpvdVwgOwor5qW95ZySID4gcmFrdWVuXCA7Civoh7Pmg4UgPiBzaGlqb3VcIDsKK+mrmOWzsCA+IGtvdWhvdVwgOwor5p6X6YeOID4gcmluJyd5YVwgOwor6LuN5Yi2ID4gZ3Vuc2VpXCA7CivkuqzpmKogPiBrZWloYW5cIDsKK+i1pOe3miA+IGFrYXNlblwgOwor5a626IejID4ga2FzaGluXCA7CivkuqTpnIogPiBrb3VyZWlcIDsKK+S7lumDtyA+IHRha3lvdVwgOwor6LuN5YiAID4gZ3VudG91XCA7CivpppnojYkgPiBrb3Vzb3VcIDsKK+eXtOWRhiA+IGNoaWhvdVwgOwor5p2h6aCFID4gam91a291XCA7Civou5/kvr8gPiBuYW5iZW5cIDsKK+Wwj+ebriA+IGtvbW9rdVwgOwor5p+Q6KqMID4gYm91c2hpXCA7CivmoITokL0gPiBlaXJha3VcIDsKK+i7iuWIuCA+IHNoYWtlblwgOwor6Lui5L2PID4gdGVuanV1XCA7CivnlKjms5UgPiB5b3Vob3VcIDsKK+iJmeWPoyA+IHNvdWtvdVwgOwor6IeG5patID4gb2t1ZGFuXCA7Civpq5jlsbEgPiBrb3V6YW5cIDsKK+i6jeWmgiA+IHlha3Vqb1wgOwor6auY5bGkID4ga291c291XCA7CivlsI/nmr8gPiBrb3phcmFcIDsKK+Wwj+eauiA+IGtvaml3YVwgOwor5Lqh6ZyKID4gYm91cmVpXCA7CivkuqTpmpsgPiBrb3VzYWlcIDsKK+iIueWeiyA+IHNlbmtlaVwgOwor6LWk57WMID4gc2Vra2VpXCA7CivkvZ7ogIUgPiBuZWlzaGFcIDsKK+alreWgsSA+IGdvdWhvdVwgOwor6aas6IKJID4gYmFuaWt1XCA7CivkvZPohZQgPiB0YWlrb3VcIDsKK+WBleaIkCA+IGthaXNlaVwgOwor55aR5b+DID4gZ2lzaGluXCA7Civou43lhbUgPiBndW5wZWlcIDsKK+adpembuyA+IHJhaWRlblwgOwor5p2x6ZaAID4gdG91bW9uXCA7Civpq5jlsIIgPiBrb3VzZW5cIDsKK+WBpeW/mCA+IGtlbmJvdVwgOwor55So5rC0ID4geW91c3VpXCA7Civou4rlhoUgPiBzaGFuYWlcIDsKK+mmreiAhSA+IGd5b3NoYVwgOwor6a2F5LqGID4gbWlyeW91XCA7Civkuozpo58gPiBuaWppa2lcIDsKK+iIueWboyA+IHNlbmRhblwgOwor6ISC57KJID4gc2hpZnVuXCA7Civnj77pgIEgPiBnZW5zb3VcIDsKK+mrmOWumCA+IGtvdWthblwgOwor6Iez5b2TID4gc2hpdG91XCA7CivnjoTpu4QgPiBnZW5rb3VcIDsKK+S9k+iCsiA+IHRhaWlrdVwgOwor6LuN5YOnID4gZ3Vuc291XCA7CivlsaXmrbQgPiByaXJla2lcIDsKK+WDp+S+tiA+IHNvdXJ5b1wgOwor5p6X6YGTID4gcmluZG91XCA7CivosrTph40gPiBraWNob3VcIDsKK+S9mee/kiA+IHlvc2h1dVwgOwor6LGK6bqXID4gaG91cmVpXCA7CivlgKTmnK0gPiBuZWZ1ZGFcIDsKK+S9juiDvSA+IHRlaW5vdVwgOwor5p2l6ZiqID4gcmFpaGFuXCA7Civlg6fkvZMgPiBzb3V0YWlcIDsKK+S+i+elrSA+IHJlaXNhaVwgOwor6LK06YWsID4ga2lzaHV1XCA7Civog5rog44gPiBoYWl0YWlcIDsKK+WDp+S8vSA+IHNvdWd5YVwgOwor5qGn55quID4gaGl3YWRhXCA7Civlgr7lkJEgPiBrZWlrb3VcIDsKK+WtkOixmiA+IGtvYnV0YVwgOwor6LKv6YeRID4gY2hva2luXCA7Civmpb3lk6EgPiBnYWt1aW5cIDsKK+WBpeW6tyA+IGtlbmtvdVwgOwor6Ieq5b6XID4gaml0b2t1XCA7Civlg63kuLsgPiBzZW5zaHVcIDsKK+S7o+i1sCA+IGRhaXNvdVwgOwor5Luj6LWtID4gdGFpc2hhXCA7CivogrrokYkgPiBoYWl5b3VcIDsKK+WDreS4iiA+IHNlbmpvdVwgOwor6Ieo5b6hID4gcmluZ3lvXCA7CivosqfpibEgPiBoaW5rb3VcIDsKK+WBj+aEmyA+IGhlbicnYWlcIDsKK+WBveWtpiA+IGdpZ2FrdVwgOwor5YKR5aOrID4ga2Vzc2hpXCA7CivpppbohLMgPiBzaHVub3VcIDsKK+i7jeS9vyA+IGd1bnNoaVwgOwor55Sf5q6LID4gc2VpemFuXCA7CivnlJ/mrbsgPiBzZWlzaGlcIDsKK+adv+mHkSA+IGJhbmtpblwgOwor5qOf5pyoID4gbXVuYWdpXCA7CivnlarmiYAgPiBiYW5zaG9cIDsKK+i3r+aomSA+IHJvaHlvdVwgOwor55yI44CFID4gdGFudGFuXCA7CivnlLfmoLkgPiBkYW5rb25cIDsKK+S9jue9riA+IHRlaWNoaVwgOwor6aaW6IKvID4gc2h1a291XCA7Civou4rkvZMgPiBzaGF0YWlcIDsKK+iIueWToSA+IHNlbicnaW5cIDsKK+eXheWboCA+IGJ5b3VpblwgOwor5a2X6KizID4gaml5YWt1XCA7Civou43ku6QgPiBndW5yZWlcIDsKK+WBj+aApyA+IGhlbnNlaVwgOwor5qON5qOSID4ga29uYm91XCA7CivlsaTmpbwgPiBzb3Vyb3VcIDsKK+WBnOW5tCA+IHRlaW5lblwgOwor5YKY5ZywID4ga2FzYWppXCA7Civoh6jlubggPiByaW5rb3VcIDsKK+i7jeS6uiA+IGd1bmppblwgOwor6Ieq5bitID4gamlzZWtpXCA7CivkuojpnIcgPiB5b3NoaW5cIDsKK+WumOiIjiA+IGthbnNoYVwgOwor6aiS54S2ID4gc291emVuXCA7Civpq5jlpKcgPiBrb3VkYWlcIDsKK+iHpeW6iiA+IGdhc2hvdVwgOwor5bGx5p6XID4gc2FucmluXCA7CivmpbXlj7MgPiBreW9rdXVcIDsKK+acqOmtgiA+IGtvZGFtYVwgOwor6auY5aOrID4ga291c2hpXCA7CivohY7ngo4gPiBqaW4nJ2VuXCA7CivlsbHmnZEgPiBzYW5zb25cIDsKK+S6uumBuCA+IGppbnNlblwgOwor5bCP54yrID4ga29uZWtvXCA7Civku67oqJcgPiBrYXRha3VcIDsKK+WvvueUnyA+IHRhaXNlaVwgOwor5qOS5p2tID4gYm91Z3VpXCA7CivoiLnlj7AgPiBzZW5kYWlcIDsKK+S6uumBkyA+IGppbmRvdVwgOwor6aqo5bm5ID4ga29ra2FuXCA7Civmo5LmnZkgPiBib3VndWlcIDsKK+mmrOezpyA+IGJhcnlvdVwgOwor6LOH6LKhID4gc2hpemFpXCA7Civppqzns54gPiBtYWd1c29cIDsKK+S6uumAoCA+IGppbnpvdVwgOwor5YOF5YOFID4ga2lua2luXCA7CivmpbXljbAgPiBnb2t1aW5cIDsKK+S7o+isnSA+IHRhaXNoYVwgOwor5Luj6KybID4gZGFpa291XCA7CivkvJrokawgPiBrYWlzb3VcIDsKK+WtneihjCA+IGtvdWtvdVwgOwor55Sy5p2/ID4ga291aGFuXCA7Civou4rkuIogPiBzaGFqb3VcIDsKK+iHs+WwiiA+IHNoaXNvblwgOwor6IiF5aeRID4ga3l1dWtvXCA7Civkuonpl5ggPiBzb3V0b3VcIDsKK+iIiOWlriA+IGtvdWZ1blwgOwor6Imm5LiKID4ga2Fuam91XCA7Civogrroh5MgPiBoYWl6b3VcIDsKK+i6q+WGhSA+IG1pdWNoaVwgOwor5bCP54mpID4ga29tb25vXCA7Civpq5jloIIgPiBrb3Vkb3VcIDsKK+Wwj+eJmyA+IGtvdXNoaVwgOwor6Lqr5YWxID4gbWlkb21vXCA7Civnkbbnt5ggPiB5b3VrYW5cIDsKK+WCteWIuCA+IHNhaWtlblwgOwor6Iez5a6dID4gc2hpaG91XCA7CivkvZPns7sgPiB0YWlrZWlcIDsKK+WBj+W5syA+IGhlbnBlaVwgOwor6Lqr5YWDID4gbWltb3RvXCA7Civlr5/nn6UgPiBzYXRjaGlcIDsKK+eUn+aknCA+IHNlaWtlblwgOwor5Lqs6YO9ID4ga3lvdXRvXCA7CivmnKvpppkgPiBtYWtrb3VcIDsKK+iHs+WtnSA+IHNoaWtvdVwgOwor5pyo6aasID4gbW9rdWJhXCA7CivlgbTlpbMgPiBzb2JhbWVcIDsKK+acrOmkqCA+IGhvbmthblwgOwor5Luj6KiAID4gZGFpZ2VuXCA7CivmnbHpg4ogPiB0b3Vrb3VcIDsKK+iCuuiDniA+IGhhaWhvdVwgOwor6auY5ZywID4ga291Y2hpXCA7CivmnbHpgqYgPiB0b3Vob3VcIDsKK+iBluizoiA+IHNlaWtlblwgOwor5Lq66LuKID4gamluc2hhXCA7Civnl7TkurogPiBjaGlqaW5cIDsKK+acsemhlCA+IHNodWdhblwgOwor5Lq66LqrID4gaGl0b21pXCA7CivnlKjmnZAgPiB5b3V6YWlcIDsKK+S6pOmFjSA+IGtvdWhhaVwgOwor5p2x6YG3ID4gdG91c2VuXCA7Civogrrogp0gPiBoYWlrYW5cIDsKK+i2s+a5ryA+IGFzaGl5dVwgOwor5a6a572uID4gdGVpY2hpXCA7Civlgr7lgJIgPiBrZWl0b3VcIDsKK+alreWLmSA+IGd5b3VtdVwgOwor5YCN5pWwID4gYmFpc3V1XCA7CivmoZHnlLAgPiBzb3VkZW5cIDsKK+iAgembhCA+IHJvdXl1dVwgOwor6Ii55Ye6ID4gZnVuYWRlXCA7Civoh6rlroUgPiBqaXRha3VcIDsKK+iEh+ebriA+IHdha2ltZVwgOwor5qSc5bGNID4ga2Vuc2hpXCA7CivmnKzpoZggPiBob25nYW5cIDsKK+acrOmhjCA+IGhvbmRhaVwgOwor5Lmx6ZuyID4gcmFuJyd1blwgOwor55a+5ZG8ID4gc2hpa2tvXCA7Civlgq3lhbUgPiB5b3VoZWlcIDsKK+iIueWFtyA+IGZ1bmFndVwgOwor5a62562LID4gaWVzdWppXCA7CivosYrppZIgPiBob3Vqb3VcIDsKK+acrOmfsyA+IGhvbicnbmVcIDsKK+S7mOiolyA+IGZ1dGFrdVwgOwor5Lya6IiYID4ga2Fpa2FuXCA7CivmnKvpoIUgPiBtYWtrb3VcIDsKK+eUn+adpSA+IHNlaXJhaVwgOwor5Lqk6YGKID4ga291eXV1XCA7CivlgKbmhoogPiBrZW5wYWlcIDsKK+aeouimgSA+IHN1dXlvdVwgOwor6aKx6aKoID4gdGFpZnV1XCA7Civlrp/nt5ogPiBqaXNzZW5cIDsKK+WvneeZliA+IG5lZ3VzZVwgOwor6IeN5bivID4gc2VpdGFpXCA7CivmpJzlrpogPiBrZW50ZWlcIDsKK+adpemCuCA+IHJhaXRlaVwgOwor6IW55qGIID4gZnVrdWFuXCA7CivnlJ/mnKggPiBuYW1ha2lcIDsKK+iNieOAhSA+IHNvdXNvdVwgOwor5L2Z56iLID4geW9ob2RvXCA7Civku6PooYwgPiBkYWlrb3VcIDsKK+WztuWPuCA+IHRvdXNoaVwgOwor5YKy5YCoID4gZ291a3lvXCA7CivpqqjlrZAgPiBrb3NzaGlcIDsKK+iHs+WkpyA+IHNoaWRhaVwgOwor5L2/55SoID4gc2hpeW91XCA7CivkubHpl5ggPiByYW50b3VcIDsKK+adpemBiiA+IHJhaXl1dVwgOwor5p2x6LuNID4gdG91Z3VuXCA7CivlsZXmnJsgPiB0ZW5ib3VcIDsKK+iAs+i8qiA+IG1pbWl3YVwgOwor5L2Z56aEID4geW9yb2t1XCA7CivlsI/mva4gPiBrb3NoaW9cIDsKK+WvqeeQhiA+IHNoaW5yaVwgOwor5qK25pyoID4ga2FqaWtpXCA7Civosqfos6QgPiBoaW5zZW5cIDsKK+iyp+izjiA+IGhpbnNlblwgOwor5p2l6L+OID4gcmFpZ291XCA7CivmnInpq6ogPiB1aGF0c3VcIDsKK+i1pOeXoiA+IHNla2lyaVwgOwor5L6/5rOVID4gYmVucG91XCA7CivoiLnlgIkgPiBzZW5zb3VcIDsKK+S9juepuiA+IHRlaWt1dVwgOwor5pyo6ZyKID4ga29kYW1hXCA7CivkvJ3ogZ4gPiBkZW5idW5cIDsKK+acrOmaiiA+IGhvbnRhaVwgOwor5bKp5bGkID4gZ2Fuc291XCA7Civogp3oh5MgPiBrYW56b3VcIDsKK+acnemhlCA+IGFzYWdhb1wgOwor6Lqr5LiIID4gbWl0YWtlXCA7CivlgKbmgKAgPiBrZW50YWlcIDsKK+acrOmZoyA+IGhvbmppblwgOwor5pys6ZmiID4gaG9uJydpblwgOwor5bCo5q+bID4gbXVrdWdlXCA7CivlrprntIsgPiBqb3Vtb25cIDsKK+mkiuixmiA+IHlvdXRvblwgOwor5LuY6KGoID4gZnVoeW91XCA7CivlrrbnpoQgPiBrYXJva3VcIDsKK+acsemWgCA+IHNodW1vblwgOwor6IKd6IWOID4ga2FuamluXCA7CivkvbXnlKggPiBoZWl5b3VcIDsKK+mrmOWQnyA+IGtvdWdpblwgOwor5pyo6ZmwID4ga29rYWdlXCA7CivoiLnkvZMgPiBzZW50YWlcIDsKK+mrmOWQjSA+IGtvdW1laVwgOwor5YCS5oe4ID4gdG91a2VuXCA7CivlgrXkuLsgPiBzYWlzaHVcIDsKK+ePvuihjCA+IGdlbmtvdVwgOwor55Kw54q2ID4ga2Fuam91XCA7CivmnaXou4ogPiByYWlzaGFcIDsKK+iDjOetiyA+IGhhaWtpblwgOwor5bGx5omLID4geWFtYXRlXCA7CivohYvmr5sgPiB3YWtpZ2VcIDsKK+S/s+aWhyA+IGhhaWJ1blwgOwor5L6/5q6/ID4gYmVuZGVuXCA7CivmnIDpq5ggPiBzYWlrb3VcIDsKK+ail+amgiA+IGtvdWdhaVwgOwor6IKd6IOGID4ga2FudGFuXCA7Civpq5jljp8gPiBrb3VnZW5cIDsKK+acnemcsiA+IGNob3Vyb1wgOwor5bGv5omAID4gdG9uc2hvXCA7Civlgq3kurogPiB5b3VuaW5cIDsKK+izgOihqCA+IGdhaHlvdVwgOwor5pyd6ZyeID4gY2hvdWthXCA7Civlrp3nrpcgPiBob3VzYW5cIDsKK+iMtuOAhSA+IGNoYWNoYVwgOwor6aKo6ZycID4gZnV1c291XCA7CivotbfniIYgPiBraWJha3VcIDsKK+iIiOWRsyA+IGt5b3VtaVwgOwor6ICQ6YW4ID4gdGFpc2FuXCA7CivlgaXlnKggPiBrZW56YWlcIDsKK+iCieiKvSA+IG5pa3VnYVwgOwor6Ieo5aC0ID4gcmluam91XCA7Civls7blhoUgPiB0b3VuYWlcIDsKK+eUqOaNqCA+IHlvdXNoYVwgOwor5a2k6IifID4ga29zaHV1XCA7CivkuozpgLIgPiBuaXNoaW5cIDsKK+adkemBkyA+IHNvbmRvdVwgOwor5YGP5aW9ID4gaGVua291XCA7CivkuozpgJogPiBuaXRzdXVcIDsKK+WGpeOAhSA+IG1laW1laVwgOwor5a2Q6JGJID4gc2hpeW91XCA7Civogq/ntq4gPiBrb3VrZWlcIDsKK+S9qeeUqCA+IGhhaXlvdVwgOwor5LmX6ZmNID4gam91a291XCA7Civkuovov7kgPiBqaXNla2lcIDsKK+WumOetiSA+IGthbnRvdVwgOwor5YCk5bmFID4gbmVoYWJhXCA7CivnjoTplqIgPiBnZW5rYW5cIDsKK+miqOmYsiA+IGZ1dWJvdVwgOwor5bCa5q2mID4gc2hvdWJ1XCA7Civmnq/okYkgPiBrYXJlaGFcIDsKK+WutuedoyA+IGthdG9rdVwgOwor5YG25ZCfID4gZ3V1a2luXCA7CivkvJ3nt5ogPiBkZW5zZW5cIDsKK+WApOW3viA+IG5laGFiYVwgOwor6Ieq5Zu9ID4gamlrb2t1XCA7Civoh6jlnKggPiByaW56YWlcIDsKK+S9meeZvSA+IHlvaGFrdVwgOwor5a6/55e+ID4gc2h1a3VhXCA7Civlr4bnlJ8gPiBtaXNzZWlcIDsKK+WvhOeVmSA+IGtpcnl1dVwgOwor5p2l6LOTID4gcmFpaGluXCA7Civoh7PlloQgPiBzaGl6ZW5cIDsKK+S8nee1sSA+IGRlbnRvdVwgOwor55S75b+DID4gZ2FzaGluXCA7CivlsI7msLQgPiBkb3VzdWlcIDsKK+adpeiyoiA+IHJhaWtvdVwgOwor55S35oCnID4gZGFuc2VpXCA7CivlsYXmlbcgPiBpc2hpa2lcIDsKK+iEseazlSA+IGRhcHBvdVwgOwor5YCk5bWpID4gbmVnYXNhXCA7CivmpJzlnLAgPiBrZW5jaGlcIDsKK+ixqumCuCA+IGdvdXRlaVwgOwor5YGl5ZWWID4ga2VudGFuXCA7CivkvZnnl4UgPiB5b2J5b3VcIDsKK+iHquWYsiA+IGppY2hvdVwgOwor6LKg6KiXID4gZnV0YWt1XCA7CivogIHphZIgPiByb3VzaHVcIDsKK+S4u+mhjCA+IHNodWRhaVwgOwor5L2O55uuID4gaGlrdW1lXCA7CivkvZznlLsgPiBzYWt1Z2FcIDsKK+eNo+mhniA+IGp1dXJ1aVwgOwor6LGq6YKBID4gZ291bWFpXCA7CivlsITms5UgPiBzaGFob3VcIDsKK+S6pOitsiA+IGtvdWpvdVwgOwor5LqL6LmfID4gamlzZWtpXCA7CivlsbHlvoQgPiBzYW5rZWlcIDsKK+eSsOa/oCA+IGthbmdvdVwgOwor6aeE54mpID4gZGFtb25vXCA7CivohLHmsLQgPiBkYXNzdWlcIDsKK+ixqumBiiA+IGdvdXl1dVwgOwor6aOb6LqNID4gaGl5YWt1XCA7Civpq5jlg6cgPiBrb3Vzb3VcIDsKK+iHtOWRvSA+IGNoaW1laVwgOwor5Lmx6YWUID4gcmFuc3VpXCA7CivkubHphZIgPiByYW5zaHVcIDsKK+iIjuWFhCA+IHNoYWtlaVwgOwor5Luw6IelID4gZ3lvdWdhXCA7CivnlarlpJYgPiBiYW5nYWlcIDsKK+WyqeWhqSA+IGdhbicnZW5cIDsKK+eUn+aIkCA+IHNlaXNlaVwgOwor5YGP5ZyoID4gaGVuemFpXCA7Civkuovot6EgPiBqaXNla2lcIDsKK+S9leeVqiA+IG5hbmJhblwgOwor5pu46aKoID4gc2hvZnV1XCA7CivohLPmrbsgPiBub3VzaGlcIDsKK+S6jOi2syA+IG5pc29rdVwgOwor5a6X56WWID4gc2h1dXNvXCA7Civnvr3poqggPiBoYWthemVcIDsKK+ixqui+siA+IGdvdW5vdVwgOwor5bO25Lq6ID4gdG91amluXCA7CivkvqDmsJcgPiBreW91a2lcIDsKK+eUu+W5hSA+IGdhZnVrdVwgOwor5pyJ6ZmQID4geXV1Z2VuXCA7Civmm7jpoZ4gPiBzaG9ydWlcIDsKK+mmmeebkiA+IGtvdWdvdVwgOwor55S75bizID4gZ2FjaG91XCA7CivnlJ/mho4gPiBhaW5pa3VcIDsKK+mrmOWApCA+IHRha2FuZVwgOwor5Lit6aObID4gY2h1dWhpXCA7Civmnp3okYkgPiBzaGl5b3VcIDsKK+iwt+mWkyA+IHRhbmltYVwgOwor5Lqk6KmiID4ga291anVuXCA7CivkuLnpnZIgPiB0YW5zZWlcIDsKK+adseilvyA+IHRvdXphaVwgOwor6Iet5ZGzID4gc2h1dW1pXCA7CivnkLTnt5ogPiBraW5zZW5cIDsKK+iDoeeTnCA+IGt5dXVyaVwgOwor5YaN44CFID4gc2Fpc2FpXCA7Civpo5votoogPiBoaWV0c3VcIDsKK+eUn+aFiyA+IHNlaXRhaVwgOwor5bO25Li7ID4gdG91c2h1XCA7CivmnaXoq4cgPiByYWlkYW5cIDsKK+WAieW7qSA+IHNvdXJpblwgOwor6IWQ5py9ID4gZnVreXV1XCA7CivlronnqY8gPiBhbicnbm9uXCA7CivlgKTlrokgPiBuZXlhc3VcIDsKK+S7o+iJpiA+IGRhaWthblwgOwor5a+45rOVID4gc3VucG91XCA7Civog47nm6QgPiB0YWliYW5cIDsKK+iAgei+siA+IHJvdW5vdVwgOwor5Lmx6YCgID4gcmFuem91XCA7Civlgo3kurogPiBib3VqaW5cIDsKK+WxiOaMhyA+IGt1c3NoaVwgOwor6IKy56iuID4gaWt1c2h1XCA7CivmpJzllY8gPiBrZW5tb25cIDsKK+aiheaelyA+IGJhaXJpblwgOwor5pyo6YeYID4ga2lrdWdpXCA7CivmnInplpEgPiB5dXVrYW5cIDsKK+eUqOW/gyA+IHlvdWppblwgOwor55S35belID4gZGFua291XCA7CivosbzosoUgPiBoaWt5dXVcIDsKK+aciOmWkyA+IGdla2thblwgOwor5bGx5beTID4gc2FudGVuXCA7Civku4/okawgPiBidXNzb3VcIDsKK+WAn+WutiA+IHNoYWtrYVwgOwor5pu46Z2iID4gc2hvbWVuXCA7CivlsbHltrogPiBzYW5yZWlcIDsKK+adpeioqiA+IHJhaWhvdVwgOwor5Lit6Z+zID4gY2h1dW9uXCA7CivnlKjlvbkgPiB5b3Vla2lcIDsKK+ePquiXuyA+IGtlaXNvdVwgOwor6LSI562UID4gem91dG91XCA7CivogIHovKkgPiByb3VoYWlcIDsKK+iBvuiAhSA+IHJvdXNoYVwgOwor5qGR5rW3ID4gc291a2FpXCA7CivlsI/mpa8gPiBrb2RhdGVcIDsKK+afseekjiA+IGNodXVzb1wgOwor6aSK6JyCID4geW91aG91XCA7Civlrp/nm7ggPiBqaXNzb3VcIDsKK+S6i+ixoSA+IGppc2hvdVwgOwor5a+S54K5ID4ga2FudGVuXCA7CivogZrokL0gPiBqdXJha3VcIDsKK+aknOWTgSA+IGtlbnBpblwgOwor5YaF44CFID4gbmFpbmFpXCA7Civlgbblg48gPiBndXV6b3VcIDsKK+WtmOe9riA+IHNvbmNoaVwgOwor5pys6YK4ID4gaG9udGVpXCA7CivkvZPnj74gPiB0YWlnZW5cIDsKK+eVquWcsCA+IGJhbmNoaVwgOwor5p2x6KGMID4gdG91a291XCA7CivmnKzpgqYgPiBob25wb3VcIDsKK+eUsuW3oSA+IGtvdWp1blwgOwor5p2l6KazID4gcmFpa2FuXCA7CivppIrompUgPiB5b3VzYW5cIDsKK+acrOmBuCA+IGhvbnNlblwgOwor6aC96b2iID4gdGFpcmVpXCA7CivnkrDmtbcgPiBrYW5rYWlcIDsKK+acqOmDqCA+IG1va3VidVwgOwor5qGD5rqQID4gdG91Z2VuXCA7CivmnKzpgZMgPiBob25kb3VcIDsKK+WxheaJgCA+IGt5b3Nob1wgOwor6aKo6Yi0ID4gZnV1cmluXCA7Civot6/luoogPiByb3Nob3VcIDsKK+WBveS9nCA+IGdpc2FrdVwgOwor5Lmx6LuNID4gcmFuZ3VuXCA7Civos57nvo4gPiBzaG91YmlcIDsKK+WxleaApyA+IHRlbnNlaVwgOwor6LKv6JS1ID4gY2hvem91XCA7CivlsILmqKogPiBzZW4nJ291XCA7CivlsILmqKkgPiBzZW5rZW5cIDsKK+WAoeWppiA+IHNob3VmdVwgOwor5pyd6YeOID4gY2hvdXlhXCA7Civog5rnj6AgPiBoYWlzaHVcIDsKK+acqumAsiA+IG1pc2hpblwgOwor5LyR56ymID4ga3l1dWZ1XCA7CivnlJ/lvakgPiBzZWlzYWlcIDsKK+miqOmHhyA+IGZ1dXNhaVwgOwor6IOO55SfID4gdGFpc2VpXCA7CivnlKPlu4MgPiBzYW5wYWlcIDsKK+S7pOiBniA+IHJlaWJ1blwgOwor5L+z5b6KID4gaGFpa2FpXCA7Civoh6rlipsgPiBqaXJpa2lcIDsKK+S/guaVsCA+IGtlaXN1dVwgOwor5Lit6ZmwID4gY2h1dWluXCA7CivmpJzljbAgPiBrZW4nJ2luXCA7CivnlLrlrrYgPiBjaG91a2FcIDsKK+WwkeaelyA+IHNob3JpblwgOwor5YGl5YWoID4ga2VuemVuXCA7CivlgY/lkJEgPiBoZW5rb3VcIDsKK+WvruavjSA+IHJ5b3Vib1wgOwor6IiI5LqhID4ga291Ym91XCA7CivnlLvlraYgPiBnYWdha3VcIDsKK+WwhuajiyA+IHNob3VnaVwgOwor5LqS6KeSID4gZ29rYWt1XCA7Civos6rntKAgPiBzaGlzc29cIDsKK+aguea6kCA+IGtvbmdlblwgOwor5p+z55yJID4gcnl1dWJpXCA7Civkuonoq5YgPiBzb3Vyb25cIDsKK+i1sOazlSA+IHNvdWhvdVwgOwor5LiK6aiwID4gam91dG91XCA7CivlsbHlrrYgPiB5YW1hZ2FcIDsKK+S8muekviA+IGthaXNoYVwgOwor5a6f55SfID4gbWlzaG91XCA7CivmnKvovKkgPiBtYXBwYWlcIDsKK+WxnuW3riA+IHpva3VzYVwgOwor5LiN6aa0ID4gZnVuYXJlXCA7CivnlJ/lubQgPiBzZWluZW5cIDsKK+mokuaTviA+IHNvdWpvdVwgOwor5qS/5LqLID4gY2hpbmppXCA7Civlr67mrYwgPiByeW91a2FcIDsKK+mmluePrSA+IHNodWhhblwgOwor5a6a55WqID4gdGVpYmFuXCA7CivlgbbkurogPiBndXVqaW5cIDsKK+eUt+WtkCA+IGRhbnNoaVwgOwor5Luj572yID4gZGFpc2hvXCA7Civku6Pnva4gPiBkYWljaGlcIDsKK+iCuueZjCA+IGhhaWdhblwgOwor5L6h5qC8ID4ga2FrYWt1XCA7Civoh6jlhpkgPiByaW5zaGFcIDsKK+WumOeVjCA+IGthbmthaVwgOwor6aWM57GzID4gc2VubWFpXCA7CivotqPml6ggPiBzaHVzaGlcIDsKK+S7iuiIrCA+IGtvbnBhblwgOwor5bCK5p2lID4gc29ucmFpXCA7Civmoq/lvaIgPiB0ZWlrZWlcIDsKK+i9n+OAhSA+IGdvdWdvdVwgOwor6Iao5aSnID4gYm91ZGFpXCA7CivkuozoposgPiBmdXRhbWlcIDsKK+iHquWEmCA+IGppbWFtYVwgOwor5p6c6IKJID4ga2FuaWt1XCA7CivmpJzliIYgPiBrZW5idW5cIDsKK+S4oemZoiA+IHJ5b3VpblwgOwor55Sy5a2QID4ga2Fzc2hpXCA7CivkuIDpqZogPiBpa2t5b3VcIDsKK+WwkeaZgiA+IHNob3VqaVwgOwor5LqU6KGMID4gZ29neW91XCA7CivnvqTpnZIgPiBndW5qb3VcIDsKK+iHs+S+vyA+IHNoaWJlblwgOwor5bCK5pu4ID4gc29uc2hvXCA7CivkuojoppogPiB5b2tha3VcIDsKK+Wwj+aYvCA+IGtvaGlydVwgOwor5L2V54K5ID4gbmFudGVuXCA7Civmm53pnLIgPiBiYWt1cm9cIDsKK+Wwj+aYpSA+IGtvaGFydVwgOwor5L2Z54CdID4geW9yZWtpXCA7Civlrp3nj6AgPiBob3VzaHVcIDsKK+WvvuagoSA+IHRhaWtvdVwgOwor5a2Q57SwID4gc2hpc2FpXCA7CivnjK7ppYwgPiBrZW5zZW5cIDsKK+S/oeW+kiA+IHNoaW50b1wgOwor55Wq5Y+3ID4gYmFuZ291XCA7Civnlarlj7AgPiBiYW5kYWlcIDsKK+S4gOmnhCA+IGljaGlkYVwgOwor6ISH5q+bID4gd2FraWdlXCA7CivpoZ7poYwgPiBydWlkYWlcIDsKK+abnOmciiA+IHlvdXJlaVwgOwor5qC55rK7ID4ga29uY2hpXCA7Civlr7rmoLwgPiBqaWtha3VcIDsKK+WBieWKmyA+IGlyeW9rdVwgOwor5a+h5qyyID4ga2F5b2t1XCA7CivmnInphY0gPiB5dXVoYWlcIDsKK+iHtOS7lSA+IGNoaXNoaVwgOwor5LmX6LuKID4gam91c2hhXCA7Civoh6rkv64gPiBqaXNodXVcIDsKK+iHquS/oSA+IGppc2hpblwgOwor5LuV572uID4gc2hpb2tpXCA7Civpoqjou4ogPiBmdXVzaGFcIDsKK+aal+m7mSA+IGFubW9rdVwgOwor5bGx5aWzID4geWFtYW1lXCA7CivkuqzokYkgPiBrZWl5b3VcIDsKK+aal+m7kiA+IGFua29rdVwgOwor5bCB5pu4ID4gZnV1c2hvXCA7Civku4/ogIUgPiBidXNzaGFcIDsKK+ajhOWtkCA+IHN1dGVnb1wgOwor5YC55ZCdID4ga2VucmluXCA7Civog7jms7MgPiBreW91ZWlcIDsKK+WxnuWumCA+IHpva2thblwgOwor5YCS5aOKID4gdG91a2FpXCA7Civoh6rkvpsgPiBqaWt5b3VcIDsKK+S4iemfkyA+IHNhbmthblwgOwor5LqI6KGoID4geW9oeW91XCA7CivkuIfpoIMgPiBiYW5rZWlcIDsKK+S4gOmjmyA+IGljaGloaVwgOwor6LW35qWtID4ga2lneW91XCA7CivlgY/lhYkgPiBoZW5rb3VcIDsKK+ahlOailyA+IGtpa3lvdVwgOwor5qC55q+bID4ga29ubW91XCA7CivkvZnmu7QgPiB5b3Rla2lcIDsKK+WAjeWkpyA+IGJhaWRhaVwgOwor6Ieq5L2cID4gamlzYWt1XCA7CivogrLnlJ8gPiBpa3VzZWlcIDsKK+eUu+WigyA+IGdha3lvdVwgOwor5pyo6LOKID4gdG9rdXNhXCA7CivlsIrmlawgPiBzb25rZWlcIDsKK+eUt+WjsCA+IGRhbnNlaVwgOwor5LiK6Z2iID4gam91bWVuXCA7CivlsYXluLggPiBreW9qb3VcIDsKK+S7o+e0jSA+IGRhaW5vdVwgOwor5a+S5rCXID4gc2FtdWtlXCA7Civoh7PkuIogPiBzaGlqb3VcIDsKK+S4iemdoiA+IHNhbm1lblwgOwor5bCK5pSYID4gc29uam91XCA7CivlgZzkvJogPiB0ZWlrYWlcIDsKK+WAjeWilyA+IGJhaXpvdVwgOwor5qSc5L6/ID4ga2VuYmVuXCA7CivnlJ/lrZggPiBzZWl6b25cIDsKK+WxkeWxiyA+IGt1enV5YVwgOwor6aGY6Z2iID4gZ2FubWVuXCA7CivlsbHloZ4gPiBzYW5zYWlcIDsKK+miqOi2oyA+IGZ1dXNodVwgOwor55Sy5aOwID4ga2FuZ29lXCA7CivmmrTpqLAgPiBib3V0b3VcIDsKK+WxseWhiiA+IHNhbmthaVwgOwor5bCC5patID4gc2VuZGFuXCA7Civog7jmr5sgPiBtdW5hZ2VcIDsKK+WxseWgtCA+IHlhbWFiYVwgOwor5bGP5bGFID4gaGVpa3lvXCA7CivkuIfpm7cgPiBiYW5yYWlcIDsKK+aknOS9kyA+IGtlbnRhaVwgOwor5a6Y54mIID4ga2FucGFuXCA7CivkuInpmo4gPiBzYW5nYWlcIDsKK+WvneanmCA+IG5lemFtYVwgOwor6aGU6Z2iID4gZ2FubWVuXCA7CivkuIrpmZAgPiBqb3VnZW5cIDsKK+aci+i8qSA+IGhvdWJhaVwgOwor5bCC5pS7ID4gc2Vua291XCA7Civku4HogIUgPiBqaW5zaGFcIDsKK+eVquWFtSA+IGJhbnBlaVwgOwor5Lmx6KaWID4gcmFuc2hpXCA7CivmnJ3os4AgPiBjaG91Z2FcIDsKK+WvvuaVsCA+IHRhaXN1dVwgOwor5a+p5p+7ID4gc2hpbnNhXCA7Civlr53mpa0gPiBuZXdhemFcIDsKK+acrOirliA+IGhvbnJvblwgOwor5YCf5ZWPID4gc2hhbW9uXCA7Civmm77pgYogPiBzb3V5dXVcIDsKK+iHo+S6iyA+IHNoaW5qaVwgOwor55Ci56OoID4gdGFrdW1hXCA7CivohbnlrZAgPiBoYXJha29cIDsKK+ahn+aVtyA+IHNhamlraVwgOwor5a++5pSvID4gdGFpc2hpXCA7CivppIrogrIgPiB5b3Vpa3VcIDsKK+miqOiyjCA+IGZ1dWJvdVwgOwor5Lyv54i2ID4gaGFrdWZ1XCA7CivmnKzoqowgPiBob25zaGlcIDsKK+WtkOeoriA+IGtvZGFuZVwgOwor5LuU57SwID4gc2hpc2FpXCA7CivmnbHoiKogPiB0b3Vrb3VcIDsKK+Wwj+aMhyA+IGtveXViaVwgOwor5pyA6L+RID4gc2Fpa2luXCA7CivmnKroqq0gPiBtaWRva3VcIDsKK+S7ruensCA+IGthc2hvdVwgOwor5L2T5rayID4gdGFpZWtpXCA7CivkuIDpmrsgPiBpc3Nla2lcIDsKK+WvuOaWrSA+IHN1bmRhblwgOwor55Sf5aecID4gc2hvdWdhXCA7CivkuInploAgPiBzYW5tb25cIDsKK+iAgeihsCA+IHJvdXN1aVwgOwor6Iub44CFID4gaXJhaXJhXCA7CivkvY7muJsgPiB0ZWlnZW5cIDsKK+iHo+S4iyA+IHNoaW5rYVwgOwor5YCh5ZKMID4gc2hvdXdhXCA7CivmnKroqbMgPiBtaXNob3VcIDsKK+iFkOW/gyA+IGZ1c2hpblwgOwor5pq06aKoID4gYm91ZnV1XCA7CivkvZnmsqIgPiB5b3Rha3VcIDsKK+WumueCuSA+IHRlaXRlblwgOwor5pu46YGTID4gc2hvZG91XCA7CivkuK3pg6ggPiBjaHV1YnVcIDsKK+WBj+S6uiA+IGhlbmppblwgOwor5YCm5Y6tID4ga2VuJydlblwgOwor5a2m55ujID4gZ2Fra2FuXCA7CivppIrogIEgPiB5b3Vyb3VcIDsKK+iCjOedgCA+IGhhZGFnaVwgOwor55Sj5aOwID4gdWJ1Z29lXCA7Civpo7ToibIgPiBhbWVpcm9cIDsKK+eUsOWcsCA+IGRlbmNoaVwgOwor5pyd6K2wID4gY2hvdWdpXCA7CivnlLDlnJIgPiBkZW4nJ2VuXCA7CivlsI/miJEgPiBzaG91Z2FcIDsKK+WppumVtyA+IGZ1Y2hvdVwgOwor6aaZ5rivID4gaG9ua29uXCA7CivmorXlprsgPiBib25zYWlcIDsKK+ahguaelyA+IGtlaXJpblwgOwor5LiA6ZaTID4gaGl0b21hXCA7CivlrZjnn6UgPiB6b25jaGlcIDsKK+S4remAlCA+IGNodXV0b1wgOwor55C655GvID4gaG91cm91XCA7CivnlLvllYYgPiBnYXNob3VcIDsKK+adpeiIqiA+IHJhaWtvdVwgOwor6aC76aC7ID4gaGlucGluXCA7CivlsLvlsL4gPiBzaGlwcG9cIDsKK+agoeatoyA+IGtvdXNlaVwgOwor5L6L5paHID4gcmVpYnVuXCA7CivnlJrlpKcgPiBqaW5kYWlcIDsKK+S+i+aVsCA+IHJlaXN1dVwgOwor5LqM6JGJID4gZnV0YWJhXCA7Civpo7zogrIgPiBzaGlpa3VcIDsKK+S/s+WjhyA+IGhhaWRhblwgOwor5bGv5Za2ID4gdG9uJydlaVwgOwor5p2l6IeoID4gcmFpcmluXCA7CivmorXlpKkgPiBib250ZW5cIDsKK+eUqOWcsCA+IHlvdWNoaVwgOwor6LK057SzID4ga2lzaGluXCA7CivmmrTpnLIgPiBiYWt1cm9cIDsKK+WvkuaihSA+IGthbmJhaVwgOwor5qC55p+iID4ga29udGVpXCA7CivlsITmiYsgPiBzaGFzaHVcIDsKK+S9leatsyA+IG5hbnNhaVwgOwor55G25rGgID4geW91Y2hpXCA7CivlrabnlYwgPiBnYWtrYWlcIDsKK+agl+avmyA+IGt1cmlnZVwgOwor5bCK5oWuID4gc29ucnlvXCA7CivkvY/msJEgPiBqdXVtaW5cIDsKK+mpmuWWnCA+IGt5b3VraVwgOwor5bCR5oGpID4gc2hvdW9uXCA7CivnlKPlnLAgPiBzYW5jaGlcIDsKK+S/l+WtlyA+IHpva3VqaVwgOwor5a++5oqXID4gdGFpa291XCA7CivkvIHnlLsgPiBraWtha3VcIDsKK+eUmOWhqSA+IGFtYWppb1wgOwor6LWk5pysID4gYWthaG9uXCA7Civpoqjop6MgPiBmdXVrYWlcIDsKK+S9teaciSA+IGhlaXl1dVwgOwor5bGL5aSWID4gb2t1Z2FpXCA7CivppqzmqYcgPiBiYXNvcmlcIDsKK+S4rei6qyA+IG5ha2FtaVwgOwor55CG56WeID4gcmlzaGluXCA7CivkvbPmnKggPiBrYWJva3VcIDsKK+agueacrCA+IG5lbW90b1wgOwor6IGW566XID4gc2Vpc2FuXCA7CivkurrntbkgPiBqaW5rZW5cIDsKK+S4u+izkyA+IHNodWhpblwgOwor55Sf5ZywID4gc2VpY2hpXCA7CivpoqjoposgPiBrYXphbWlcIDsKK+WvvuaIpiA+IHRhaXNlblwgOwor5LuW56ewID4gdGFzaG91XCA7CivmnJvoposgPiBib3VrZW5cIDsKK+mmmeawtCA+IGtvdXN1aVwgOwor5a+S5p2RID4ga2Fuc29uXCA7CivmnYnoj5wgPiBzdWdpbmFcIDsKK+eVmeS/nSA+IHJ5dXVob1wgOwor6IO95pu4ID4gbm91c2hvXCA7CivkvZzmpa0gPiBzYWd5b3VcIDsKK+S7mOelqCA+IGZ1aHlvdVwgOwor5YCo5YKyID4ga3lvZ291XCA7CivmoLnmmpcgPiBuZWt1cmFcIDsKK+i3oeWcsCA+IGF0b2NoaVwgOwor5Lq657OeID4gamlucHVuXCA7CivlrabnkIYgPiBnYWt1cmlcIDsKK+iEs+aApyA+IG5vdXNlaVwgOwor55S75YygID4gZ2FzaG91XCA7CivkvZnmpa0gPiB5b2d5b3VcIDsKK+Wwj+W9oiA+IGtvZ2F0YVwgOwor5L+h5aOrID4gc2hpbmppXCA7CivohavlpKcgPiBzaHVkYWlcIDsKK+S5vuiPnCA+IGthbnNhaVwgOwor5pyI6KydID4gZ2Vzc2hhXCA7Civlr4bmoJMgPiBtaXNzZW5cIDsKK+WvkuaaliA+IGthbmRhblwgOwor5a+S5pqRID4ga2Fuc2hvXCA7CivlrZDnmYcgPiBzaGlrYW5cIDsKK+miqOiiiyA+IGZ1dXRhaVwgOwor5YCl5YGsID4ga291c291XCA7CivlsI/lvJUgPiBzaG91aW5cIDsKK+S9k+anmCA+IHRhaXlvdVwgOwor5Lq657GfID4gamlucmFpXCA7CivkuInph40gPiBzYW5qdXVcIDsKK+iyoee1jCA+IHphaWtlaVwgOwor5a2Y55SfID4gem9uam91XCA7CivlrZfnlLsgPiBqaWtha3VcIDsKK+S4h+mHkSA+IG1hbmtpblwgOwor5bCK5b2xID4gc29uJydlaVwgOwor5qC55pa5ID4gbmVrYXRhXCA7CivnlKjlk4EgPiB5b3VoaW5cIDsKK+S7rueXhSA+IGtlYnlvdVwgOwor5LiK6YWSID4gam91c2h1XCA7CivlrpfmtL4gPiBzaHV1aGFcIDsKK+WumuazlSA+IGpvdWhvdVwgOwor5a625qWtID4ga2FneW91XCA7CivnjK7ph5EgPiBrZW5raW5cIDsKK+eSsOaMhyA+IGthbnNoaVwgOwor55So5ZG9ID4geW91bWVpXCA7Civog6HmpJIgPiBrb3Nob3VcIDsKK+iBr+ebnyA+IHJlbm1laVwgOwor6IOG5rGBID4gdGFuanV1XCA7CivnkKXnj4AgPiBrb2hha3VcIDsKK+iDveaWhyA+IG5vdWJ1blwgOwor5bGF5Z+OID4ga3lvam91XCA7CivkuLvorIAgPiBzaHVib3VcIDsKK+Wul+azlSA+IHNvdWhvdVwgOwor5bCP5bmFID4ga29oYWJhXCA7CivlraTni6wgPiBrb2Rva3VcIDsKK+eUo+WTgSA+IHNhbnBpblwgOwor6aGY6YWSID4gZ2Fuc2h1XCA7CivmnbHntYwgPiB0b3VrZWlcIDsKK+S5vuiKuyA+IGthbnN1dVwgOwor5a6M5riIID4ga2Fuc2FpXCA7CivkuI3pgakgPiBmdXRla2lcIDsKK+WvhuabuCA+IG1pc3Nob1wgOwor6IKh54GrID4gbWF0YWJpXCA7CivpoIjpq68gPiBzaHV6ZW5cIDsKK+WwjuW4qyA+IGRvdXNoaVwgOwor576O6YacID4gYmlzaHV1XCA7CivlsILlvpMgPiBzZW5qdXVcIDsKK+S4gOmHjCA+IGljaGlyaVwgOwor5a+15oSbID4gY2hvdWFpXCA7Civlrp3mrr8gPiBob3VkZW5cIDsKK+S5s+iPkyA+IG55dXVrYVwgOwor5bCP5beuID4gc2hvdXNhXCA7Civnj6DnrpcgPiBzaHV6YW5cIDsKK+S4jemAmiA+IGZ1dHN1dVwgOwor6ISz5bm5ID4gbm91a2FuXCA7Civkvpvlv5wgPiBreW91b3VcIDsKK+eOieiXuyA+IHRhbWFtb1wgOwor6IKd54KOID4ga2FuJydlblwgOwor5LiJ6YG4ID4gc2Fuc2VuXCA7CivlsIvluLggPiBqaW5qb3VcIDsKK+S/ruWWtiA+IHNodXVlaVwgOwor5Li56KqgID4gdGFuc2VpXCA7Civog6HmoYMgPiBrdXJ1bWlcIDsKK+S4h+mCpiA+IGJhbnBvdVwgOwor6ICB6I2YID4gcm91c291XCA7CivlrpjmsJEgPiBrYW5taW5cIDsKK+S5vuiItyA+IGthbmdlblwgOwor5bGe5ZCPID4gem9rdXJpXCA7CivmnqHnm64gPiBtYXN1bWVcIDsKK+S4gemFiSA+IHRlaXl1dVwgOwor6IGe55+lID4gYnVuY2hpXCA7CivlrrbmoLwgPiBrYWtha3VcIDsKK+i2iuW+jCA+IGVjaGlnb1wgOwor55Sf5ZG9ID4gc2VpbWVpXCA7CivlsJrlsJogPiBuYW9uYW9cIDsKK+S4iemAoyA+IHNhbnJlblwgOwor576p6LazID4gZ2lzb2t1XCA7CivkuLvoqIggPiBzaHVrZWlcIDsKK+agoeacrCA+IGtvdWhvblwgOwor5pqu6ZCYID4gYm9zaG91XCA7CivlsIHlu7ogPiBob3VrZW5cIDsKK+WvvuW9kyA+IHRhaXRvdVwgOwor5pyo6JStID4ga29rYWdlXCA7CivlgJLlg48gPiB0b3V6b3VcIDsKK+e+hemHnSA+IHJhc2hpblwgOwor5bCE5bm4ID4gc2hha291XCA7CivmorXllIQgPiBib25iYWlcIDsKK+S4iui+uiA+IGpvdWhlblwgOwor5LiA6YOtID4gaWtrYWt1XCA7CivkuIDpg6ggPiBpY2hpYnVcIDsKK+WumuasviA+IHRlaWthblwgOwor5L2V5p6aID4gbmFubWFpXCA7Civlr7jlv5cgPiBzdW5zaGlcIDsKK+S9nuaZuiA+IG5laWNoaVwgOwor5Li76KazID4gc2h1a2FuXCA7Civlrrbmn4QgPiBpZWdhcmFcIDsKK+Wwj+WztiA+IGtvamltYVwgOwor5pys6JGsID4gaG9uc291XCA7CivnlKPljbUgPiBzYW5yYW5cIDsKK+S6uueoriA+IGppbnNodVwgOwor5a6M5rK7ID4ga2FuY2hpXCA7CivkvZXmnaEgPiBuYW5qb3VcIDsKK+S4u+imgSA+IHNodXlvdVwgOwor5Luj55SoID4gZGFpeW91XCA7Civmm7joqowgPiBzaG9zaGlcIDsKK+eUsuWFtSA+IGtvdWhlaVwgOwor5Lyv5q+NID4gaGFrdWJvXCA7Civkv7PlkI0gPiBoYWltZWlcIDsKK+Wun+aoqSA+IGppa2tlblwgOwor5L+z5Y+3ID4gaGFpZ291XCA7CivotorluqYgPiBvY2hpZG9cIDsKK+mjm+e/lCA+IGhpc2hvdVwgOwor5LqI57+SID4geW9zaHV1XCA7Civnvqnos4ogPiBnaXpva3VcIDsKK+WvneaKgCA+IG5ld2F6YVwgOwor5bCP5bGxID4ga295YW1hXCA7CivkuInovKogPiBzYW5yaW5cIDsKK+WwiuW0hyA+IHNvbnN1dVwgOwor5L+z5Y+LID4gaGFpeXV1XCA7CivkuIDpgLEgPiBpc3NodXVcIDsKK+S8kea8lCA+IGt5dXVlblwgOwor5LiA6YCaID4gaXR0c3V1XCA7CivohIfmiLggPiB3YWtpZG9cIDsKK+S4iei7vSA+IHNhbmtlaVwgOwor5bC/5ZmoID4gbnlvdWtpXCA7Civlr53miYAgPiBzaGluam9cIDsKK+WwqOWkpyA+IGJvdWRhaVwgOwor5LiJ6LuNID4gc2FuZ3VuXCA7Civni63pnKcgPiBzYWdpcmlcIDsKK+WtkOeMqyA+IGtvbmVrb1wgOwor5qC55ougID4ga29ua3lvXCA7Civlr6Hmhb4gPiBrYXlva3VcIDsKK+S6lee2sSA+IGlkenVuYVwgOwor5LiH6LuNID4gYmFuZ3VuXCA7CivpqZXlhZAgPiBreW91amlcIDsKK+ixquiDhiA+IGdvdXRhblwgOwor5p2x56uvID4gdG91dGFuXCA7CivmnKzojYkgPiBob256b3VcIDsKK+eUn+WLlSA+IHNlaWRvdVwgOwor6LK755uuID4gaGltb2t1XCA7Civmm7joposgPiBzaG9rZW5cIDsKK+S7meeVjCA+IHNlbmthaVwgOwor5a6Y5qipID4ga2Fua2VuXCA7Civmm7ToqIIgPiBrb3V0ZWlcIDsKK+eUo+WJjSA+IHNhbnplblwgOwor5bCP5a60ID4gc2hvdWVuXCA7Civnjonoj5wgPiB0YW1hbmFcIDsKK+eUo+WItiA+IHNhbnNlaVwgOwor5a2U54mIID4ga291aGFuXCA7CivmnKvojLYgPiBtYXRjaGFcIDsKK+mjr+exsyA+IGhhbm1haVwgOwor6aCG6aKoID4ganVucHV1XCA7CivmnLHoibIgPiBzaHVpcm9cIDsKK+Wun+aknCA+IGppa2tlblwgOwor5Lyd5rOVID4gZGVucG91XCA7CivnlLvkvK8gPiBnYWhha3VcIDsKK+eUqOWFtSA+IHlvdWhlaVwgOwor54ut6ZqYID4ga3lvdWFpXCA7CivnjaPooYwgPiBqdXVrb3VcIDsKK+S4jei2syA+IGZ1c29rdVwgOwor6LOH55SjID4gc2hpc2FuXCA7Civlq4Hoj5wgPiB5b21lbmFcIDsKK+S6lOe1jCA+IGdva3lvdVwgOwor6aeF5omLID4gZWtpc2h1XCA7CivlrInnrJEgPiBraXNob3VcIDsKK+S6i+e4viA+IGppc2VraVwgOwor55Sf5YmNID4gc2VpemVuXCA7Civmo4TlhZAgPiBzdXRlZ29cIDsKK+WtkOeJmyA+IGtvdXNoaVwgOwor5LuW55SfID4gdGFzaG91XCA7CivkuIvotrMgPiBnZXNva3VcIDsKK+S9leaWuSA+IGRvbmF0YVwgOwor6LGa6IiOID4gdG9uc2hhXCA7CivotrPloLQgPiBhc2hpYmFcIDsKK+WutuaXjyA+IGthem9rdVwgOwor6aCG6aCGID4ganVuanVuXCA7CivkuIDouqsgPiBpc3NoaW5cIDsKK+acrOiIuSA+IGhvbnNlblwgOwor6IKl5rKDID4gaGl5b2t1XCA7Civlr77lsrggPiB0YWlnYW5cIDsKK+aiseWMhSA+IGtvbnBvdVwgOwor5LiA6Lm0ID4gaXNzaHV1XCA7CivmnpfnlKMgPiByaW5zYW5cIDsKK+S6uuefpSA+IGppbmNoaVwgOwor572w6YeRID4gYmFra2luXCA7CivlrrbmlZkgPiBrYWt5b3VcIDsKK+S7pOeKtiA+IHJlaWpvdVwgOwor5L6L5bm0ID4gcmVpbmVuXCA7Civni63plpMgPiBoYXphbWFcIDsKK+iEm+W3viA+IGhhYmFraVwgOwor6Laj5aW9ID4gc2h1a291XCA7CivlsaXkv64gPiByaXNodXVcIDsKK+S/oeWPlyA+IHNoaW5qdVwgOwor6Iad5LiLID4gc2hpa2thXCA7CivkuozntJogPiBuaWt5dXVcIDsKK+i1q+aAkiA+IGtha3Vkb1wgOwor5pys6IazID4gaG9uemVuXCA7CivotbfluoogPiBraXNob3VcIDsKK+S4gOi3ryA+IGljaGlyb1wgOwor6ISG5oCnID4gemVpc2VpXCA7CivkvZPmk40gPiB0YWlzb3VcIDsKK+S9v+W9uSA+IHNoaWVraVwgOwor5Lit6KGbID4gY2h1dWVpXCA7CivmmanppJAgPiBiYW5zYW5cIDsKK+S7i+eUsiA+IGthaWtvdVwgOwor6IKd5rK5ID4ga2FuJyd5dVwgOwor5bGx5LiKID4gc2Fuam91XCA7CivnvqToq5YgPiBndW5yb25cIDsKK+Wwj+WnkyA+IGtvc2hvdVwgOwor55So5L6/ID4geW91YmVuXCA7Civkv7PlhKogPiBoYWl5dXVcIDsKK+S7iueUnyA+IGtvbmpvdVwgOwor5bCR5aWzID4gc2hvdWpvXCA7Civkurrnm7ggPiBuaW5zb3VcIDsKK+S6iOe0hCA+IHlveWFrdVwgOwor5L6b5a60ID4ga3lvdWVuXCA7Civkurrnm64gPiBoaXRvbWVcIDsKK+eUqOS+iyA+IHlvdXJlaVwgOwor55SY5YWaID4gYW1hdG91XCA7Civosqfnm7ggPiBoaW5zb3VcIDsKK+iDjOaZryA+IGhhaWtlaVwgOwor6aeS5bqnID4ga29tYXphXCA7Civkv5flkI8gPiB6b2t1cmlcIDsKK+WuiealvSA+IGFucmFrdVwgOwor5qC55oCnID4ga29uam91XCA7CivlsJbloZQgPiBzZW50b3VcIDsKK+S4luiplSA+IHNlaHlvdVwgOwor5LmX6ImmID4gam91a2FuXCA7CivkuKbooYwgPiBoZWlrb3VcIDsKK+ePreeUsCA+IGhhbmRlblwgOwor5pyJ6JOLID4geXV1Z2FpXCA7Civku5TnjKsgPiBrb25la29cIDsKK+WumuacrCA+IHRlaWhvblwgOwor55So5Lu2ID4geW91a2VuXCA7CivkuZfoiLkgPiBqb3VzZW5cIDsKK+mosOWLoiA+IHRvdXNlaVwgOwor5a6f5pmvID4gamlra2VpXCA7CivlsYvlhoUgPiBva3VuYWlcIDsKK+Wtpua0viA+IGdha3VoYVwgOwor6aKo6Ii5ID4gZnV1c2VuXCA7CivnlKjkurogPiB5b3VuaW5cIDsKK+aflOavmyA+IGp1dW1vdVwgOwor5p2l56S+ID4gcmFpc2hhXCA7Civnj77nirYgPiBnZW5qb3VcIDsKK+mfs+mfvyA+IG9ua3lvdVwgOwor5pyo6IKMID4ga2loYWRhXCA7CivlsIrlpKcgPiBzb25kYWlcIDsKK+iEs+WkqSA+IG5vdXRlblwgOwor5aqa6JasID4gYml5YWt1XCA7Civpoqjoh7QgPiBmdXVjaGlcIDsKK+S4jeiqvyA+IGZ1Y2hvdVwgOwor5a+d5bqKID4gbmVkb2tvXCA7Civmn5DmsI8gPiBib3VzaGlcIDsKK+S6lOepgCA+IGdva29rdVwgOwor5LiW6KWyID4gc2VzaHV1XCA7CivogIHnt7QgPiByb3VyZW5cIDsKK+eUn+S9kyA+IHNlaXRhaVwgOwor5LuU54mbID4ga291c2hpXCA7CivkuI3oqbMgPiBmdXNob3VcIDsKK+Wun+aWvSA+IGppc3NoaVwgOwor6aC46LyqID4ga3ViaXdhXCA7CivkuIforJ0gPiBiYW5zaGFcIDsKK+S4ieirliA+IHNhbnJvblwgOwor5LiN6KmVID4gZnVoeW91XCA7Civkv5fli5kgPiB6b2t1bXVcIDsKK+mnheW8gSA+IGVraWJlblwgOwor5pmp6ZycID4gYmFuc291XCA7CivkvqDlpbMgPiBreW91am9cIDsKK+acrOe9siA+IGhvbnNob1wgOwor5a+d5be7ID4gbmVtYWtpXCA7CivmnZHnq6UgPiBzb25kb3VcIDsKK+Wun+aVsCA+IGppc3N1dVwgOwor6IO95byBID4gbm91YmVuXCA7CivkurrnlJ8gPiBqaW5zZWlcIDsKK+WuiOagqiA+IHNodXNodVwgOwor5L2V5omNID4gbmFuc2FpXCA7Civkuonnq68gPiBzb3V0YW5cIDsKK+agueW6lSA+IGtvbnRlaVwgOwor5Lit6JiHID4gY2h1dXNvXCA7CivkuIDorbAgPiBpY2hpZ2lcIDsKK+S8tOaYnyA+IGJhbnNlaVwgOwor6aOb56ucID4gaGlyeXV1XCA7CivmoLnlubkgPiBrb25rYW5cIDsKK+i1pOW4vSA+IGFrYWJvdVwgOwor5bCP5Z6LID4ga29nYXRhXCA7CivppIrnlJ8gPiB5b3Vqb3VcIDsKK+adr+ebpCA+IGhhaWJhblwgOwor5pq06LWwID4gYm91c291XCA7CivkuIroqIggPiBqb3VrZWlcIDsKK+WwiuWggiA+IHNvbmRvdVwgOwor5qC85beuID4ga2FrdXNhXCA7CivlsILlo7IgPiBzZW5iYWlcIDsKK+Wuv+aEjyA+IHNodWt1aVwgOwor5LiN6KaaID4gZnVrYWt1XCA7Civkv7PkurogPiBoYWlqaW5cIDsKK+WujOacrCA+IGthbnBvblwgOwor6ICz55uuID4gamltb2t1XCA7CivlrprmlbAgPiB0ZWlzdXVcIDsKK+S9nuaCqiA+IG5laWFrdVwgOwor5L+v5LyPID4gZnVmdWt1XCA7CivnjK7oqaAgPiBrZW4nJ2VpXCA7Civlr4zlvLcgPiBmdWt5b3VcIDsKK+momeWPliA+IGhlbnNodVwgOwor5L+v5LuwID4gZnVneW91XCA7CivkuIropqcgPiBqb3VyYW5cIDsKK+S4h+iogCA+IG1hbmdlblwgOwor5a++5aSWID4gdGFpZ2FpXCA7CivkvY/miYAgPiBqdXVzaG9cIDsKK+iyoeeVjCA+IHphaWthaVwgOwor6ICV56iuID4ga291c2h1XCA7CivpoqjogZ4gPiBmdXVidW5cIDsKK+S4iuimhiA+IHV3YW9vaVwgOwor5a655oWLID4geW91ZGFpXCA7CivlsITloLQgPiBzaGFqb3VcIDsKK+WxjeS9kyA+IHNoaXRhaVwgOwor6LKh55SjID4gemFpc2FuXCA7CivkuIDoqp4gPiBpY2hpZ29cIDsKK+WvkuW4ryA+IGthbnRhaVwgOwor5a+15aerID4gY2hvdWtpXCA7CivnjK7oqIAgPiBrZW5nZW5cIDsKK+S8neafkyA+IGRlbnNlblwgOwor5a+h5bCRID4ga2FzaG91XCA7CivkuKHomY4gPiByeW91a29cIDsKK+eMpeirhyA+IHdhaWRhblwgOwor6LaK5aKDID4gZWtreW91XCA7CivlsI/lmaggPiBzaG91a2lcIDsKK+S4iuijvSA+IGpvdXNlaVwgOwor5pys57eaID4gaG9uc2VuXCA7CivkvI7mpb0gPiBnaWdha3VcIDsKK+S9k+aEnyA+IHRhaWthblwgOwor5L+X5YSSID4gem9rdWp1XCA7CivkuYPoh7MgPiBuYWlzaGlcIDsKK+S4iuijgSA+IGpvdXNhaVwgOwor5Lyd5p2lID4gZGVucmFpXCA7CivoibLjgIUgPiBpcm9pcm9cIDsKK+WvneWwjyA+IG5lc2hvdVwgOwor5pys57W5ID4gaG9ua2VuXCA7Civpo6/nm5IgPiBoYW5nb3VcIDsKK+S4i+ihqCA+IGthaHlvdVwgOwor6LOk5rCRID4gc2VubWluXCA7CivlsYXkvY8gPiBreW9qdXVcIDsKK+iFleWJjSA+IHVkZW1hZVwgOwor5Luu5rOKID4ga2FoYWt1XCA7CivkvZnlvrMgPiB5b3Rva3VcIDsKK+acrOe0mSA+IGhvbnNoaVwgOwor6Lao5ZCRID4gc3V1a291XCA7CivkvZ7lvIEgPiBuZWliZW5cIDsKK+S4reiPryA+IGNodXVrYVwgOwor5L2Z5b6XID4geW90b2t1XCA7CivlrrPmgqogPiBnYWlha3VcIDsKK+WwgeWcsCA+IGhvdWNoaVwgOwor5a6M5pWXID4ga2FucGFpXCA7CivkuqTnlaogPiBrb3ViYW5cIDsKK+S/muS/lyA+IHJpem9rdVwgOwor6aGM6KiAID4gZGFpZ2VuXCA7CivlsYvkuIogPiBva3Vqb3VcIDsKK+acqOe1hCA+IGtpZ3VtaVwgOwor5pyJ6IO9ID4geXV1bm91XCA7CivlsJrlj6QgPiBzaG91a29cIDsKK+mokuWLlSA+IHNvdWRvdVwgOwor6IOM5oi7ID4gaGFpcmVpXCA7CivkvovlpJYgPiByZWlnYWlcIDsKK+Wuo+aIpiA+IHNlbnNlblwgOwor6ICz55KwID4gbWltaXdhXCA7CivkupTnm64gPiBnb21va3VcIDsKK+Wvk+WxhSA+IGd1dWt5b1wgOwor6Laj5ZCRID4gc2h1a291XCA7CivosqLnjK4gPiBrb3VrZW5cIDsKK+eLrOmAuCA+IGRvaXRzdVwgOwor5qCh5bqtID4ga291dGVpXCA7Civos4fmupAgPiBzaGlnZW5cIDsKK+WvoeWppiA+IHlhbW9tZVwgOwor5bCL5ZWPID4gamlubW9uXCA7CivmmrToq5YgPiBib3Vyb25cIDsKK+adoeeXlSA+IGpvdWtvblwgOwor5qC85a2QID4ga291c2hpXCA7CivkvIHmpa0gPiBraWd5b3VcIDsKK+S9teWtmCA+IGhlaXpvblwgOwor6aOy55SoID4gaW4nJ3lvdVwgOwor5L2T5b2iID4gdGFpa2VpXCA7Civlr4zlsrMgPiBmdWdha3VcIDsKK+Wun+aIpiA+IGppc3NlblwgOwor5Li76ISzID4gc2h1bm91XCA7Civog6HlvJMgPiBrb2t5dXVcIDsKK+aYvOmkiSA+IGhpcnVnZVwgOwor55C05p+xID4ga290b2ppXCA7Civotqjli6IgPiBzdXVzZWlcIDsKK+S+neWYsSA+IGlzaG9rdVwgOwor5pi86aOfID4gaGlydWdlXCA7Civlr5LlrrMgPiBrYW5nYWlcIDsKK+mgkei/tyA+IGdhbm1laVwgOwor5a6b5omAID4gYXRlc2hvXCA7Civmn5Dmn5AgPiBib3Vib3VcIDsKK+eNo+iEgiA+IGp1dXNoaVwgOwor5L2O5b6KID4gdGVpa2FpXCA7CivmnKznrqEgPiBob25rYW5cIDsKK+iyr+eCrSA+IGNob3RhblwgOwor5LqM55uuID4gZnV0YW1lXCA7CivlsI/lkI8gPiBzaG91cmlcIDsKK+S6uueFmSA+IGppbicnZW5cIDsKK+aatOiogCA+IGJvdWdlblwgOwor5L+K5YGJID4gc2h1bicnaVwgOwor5bCK5ZG9ID4gc29ubWVpXCA7CivlrpjmiL8gPiBrYW5ib3VcIDsKK+advueFmSA+IHNob3VlblwgOwor6IKl5paZID4gaGlyeW91XCA7CivkvJHmmocgPiBreXV1a2FcIDsKK+S/l+S6iyA+IHpva3VqaVwgOwor5a6f5oWLID4gaml0dGFpXCA7CivmnKjnrrEgPiBraWJha29cIDsKK+aciee9qiA+IHl1dXphaVwgOwor54ut6LuMID4ga3lvdWtpXCA7Civos7zmm7ggPiBrb3VzaG9cIDsKK+WtpuagoSA+IGdha2tvdVwgOwor5pyo566hID4gbW9ra2FuXCA7CivnjoTnsbMgPiBnZW5tYWlcIDsKK+ePiOeQsiA+IGtvdWhpaVwgOwor6aKo57SLID4gZnV1bW9uXCA7CivmoKrlsYsgPiBrYWJ1eWFcIDsKK+Wun+aEnyA+IGppa2thblwgOwor5bCK5ZCbID4gc29ua3VuXCA7Civlrp/mhI8gPiBqaXRzdWlcIDsKK+WwiuWQjSA+IHNvbm1laVwgOwor5L2O5buJID4gdGVpcmVuXCA7Civpo7zniqwgPiBrYWlpbnVcIDsKK+WwiuWPtyA+IHNvbmdvdVwgOwor5LuW5rWBID4gdGFyeXV1XCA7CivlsIrlj7AgPiBzb25kYWlcIDsKK+acq+erryA+IG1hdHRhblwgOwor5a6Y5oayID4ga2Fua2VuXCA7Civku5jms6ggPiBmdWNodXVcIDsKK+mjm+eZvSA+IGthc3VyaVwgOwor6LOO5rCRID4gc2VubWluXCA7CivkvZDluZUgPiBzYWJha3VcIDsKK+S6uueBvSA+IGppbnNhaVwgOwor5LiL6JasID4gZ2V5YWt1XCA7Civlr4blsIEgPiBtaXBwdXVcIDsKK+WutOW4rSA+IGVuc2VraVwgOwor5bCP5YyZID4ga29zYWppXCA7CivlsIrljrMgPiBzb25nZW5cIDsKK+iCieahgiA+IG5pa2tlaVwgOwor6LWw5aGBID4gc291cnVpXCA7CivmoLzlpb0gPiBrYWtrb3VcIDsKK+S8neaQrCA+IGRlbnBhblwgOwor5a+b5aSnID4ga2FuZGFpXCA7CivmnKznqL8gPiBob25rb3VcIDsKK+abuOiChiA+IHNob3NoaVwgOwor5a6M5oqVID4ga2FudG91XCA7CivlrZDmp5ggPiBrb3NhbWFcIDsKK+Wuv+WxiyA+IHlhZG95YVwgOwor5pu46IGWID4gc2hvc2VpXCA7Civlr7/lkb0gPiBqdW15b3VcIDsKK+S4ieiUtSA+IHNhbnpvdVwgOwor6Z+z6YePID4gb25yeW91XCA7CivkuqHnirYgPiBib3Vqb3VcIDsKK+iyu+a2iCA+IGhpc2hvdVwgOwor5bCW5YW1ID4gc2VucGVpXCA7CivkuZfnrpcgPiBqb3V6YW5cIDsKK+aatOihjCA+IGJvdWtvdVwgOwor5qC55aSqID4gbmVidXRvXCA7CivorbDplbcgPiBnaWNob3VcIDsKK+S5vuebgyA+IGthbnBhaVwgOwor5a6M5oiQID4ga2Fuc2VpXCA7CivlsI/liKkgPiBzaG91cmlcIDsKK+abuOe/sCA+IHNob2thblwgOwor5p2l54q2ID4gcmFpam91XCA7CivmnInnt5ogPiB5dXVzZW5cIDsKK+S7j+azlSA+IGJ1cHBvdVwgOwor5a6J5omLID4geWFzdWRlXCA7Civlg4XjgIUgPiBraW5raW5cIDsKK+WvvuWQkSA+IHRhaWtvdVwgOwor5a6a5oCnID4gdGVpc2VpXCA7Civosarnm5sgPiBnb3VzZWlcIDsKK+S5vueZrCA+IGthbnNlblwgOwor5a++5Y+lID4gdHN1aWt1XCA7CivkuK3ogLMgPiBjaHV1amlcIDsKK+iCsuaIkCA+IGlrdXNlaVwgOwor5a6I5oimID4gc2h1c2VuXCA7CivmoKHlrpogPiBrb3V0ZWlcIDsKK+WvkuWkqSA+IGthbnRlblwgOwor5pys56S+ID4gaG9uc2hhXCA7CivkuIvokL0gPiBnZXJha3VcIDsKK+itpumYsiA+IGtlaWJvdVwgOwor5a+S5aScID4ga2FuJyd5YVwgOwor5a6I5oiQID4gc2h1c2VpXCA7Civnibnpq5ggPiB0b2trb3VcIDsKK+acq+ekviA+IG1hc3NoYVwgOwor6IO45aWlID4ga3lvdW91XCA7CivkvbPlooMgPiBrYWt5b3VcIDsKK+aZrumAmiA+IGZ1dHN1dVwgOwor5L2X5a+dID4gd2FiaW5lXCA7Civlrp/lvJ8gPiBqaXR0ZWlcIDsKK+eOsueTjyA+IHJlaXJvdVwgOwor6ICB55y8ID4gcm91Z2FuXCA7CivosYrnqaMgPiBob3Vqb3VcIDsKK+agveWfuSA+IHNhaWJhaVwgOwor576p6IejID4gZ2lzaGluXCA7CivniaHpto8gPiBvbmRvcmlcIDsKK+Wwj+WFtSA+IGtvaHlvdVwgOwor5pyI57WMID4gZ2Vra2VpXCA7Civog4zluoMgPiBzZWJpcm9cIDsKK+Wto+aYpSA+IGtpc2h1blwgOwor5bCP5YWQID4gc2hvdW5pXCA7CivosYrnqJQgPiBob3VuZW5cIDsKK+eJnem3hCA+IGhpbmtlaVwgOwor5a6a5b2iID4gdGVpa2VpXCA7CivmnaHniYcgPiBqb3VoZW5cIDsKK+S/guS6iSA+IGtlaXNvdVwgOwor6LGh55y8ID4gem91Z2FuXCA7CivnjrPnkYEgPiB0YWltYWlcIDsKK+aal+iqpiA+IGFuc2hvdVwgOwor6aiS5Lq6ID4gc291amluXCA7CivlrpflvpIgPiBzaHV1dG9cIDsKK+WtkOagqiA+IGtva2FidVwgOwor5pi86ZaTID4gaGlydW1hXCA7CivkvY7lsaQgPiB0ZWlzb3VcIDsKK+agueWfjiA+IG5lamlyb1wgOwor5LqA55SyID4ga2lra291XCA7Civos4DmraMgPiBnYXNob3VcIDsKK+mhleiRlyA+IGtlbmNob1wgOwor54mh6bOlID4gb25kb3JpXCA7CivpqJLkubEgPiBzb3VyYW5cIDsKK+WwiuWFrCA+IHNvbmtvdVwgOwor5a615a6uID4geW9taXlhXCA7CivkuqTngrkgPiBrb3V0ZW5cIDsKK+S9j+WwgiA+IGp1dXNlblwgOwor6Z+z6YCfID4gb25zb2t1XCA7CivkvJDmjqEgPiBiYXNzYWlcIDsKK+WutuWuhSA+IGthdGFrdVwgOwor6aOb55CDID4gaGlreXV1XCA7CivmmpfoqLwgPiBhbnNob3VcIDsKK+WwiuWFhCA+IHNvbmtlaVwgOwor5L6/5LmXID4gYmluam91XCA7CivlsILliLYgPiBzZW5zZWlcIDsKK+S5vueUsCA+IGthbmRlblwgOwor5a625a2mID4ga2FnYWt1XCA7CivkvLjluqYgPiBzaGluZG9cIDsKK+S8muaJgCA+IGthaXNob1wgOwor5L2/5Ze+ID4gc2hpc291XCA7CivosYbnp5EgPiBtYW1la2FcIDsKK+iEseWFmiA+IGRhdHRvdVwgOwor5Lya5oimID4ga2Fpc2VuXCA7CivkvZ7lp6YgPiBuZWlrYW5cIDsKK+S9j+WutiA+IHN1bWlrYVwgOwor546y546yID4gcmVpcmVpXCA7CivkvrbkvLQgPiByeW9oYW5cIDsKK+iDnuWtkCA+IGhvdXNoaVwgOwor5a6a5bm0ID4gdGVpbmVuXCA7CivmmYLpkJggPiBqaXNob3VcIDsKK+iznOadryA+IHNoaWhhaVwgOwor6LKh5rqQID4gemFpZ2VuXCA7CivkuKbnva4gPiBoZWljaGlcIDsKK+WuieaBryA+IGFuc29rdVwgOwor5bCK5YOPID4gc29uem91XCA7CivkuI3oia8gPiBmdXJ5b3VcIDsKK+S7leaooyA+IHNoaXlvdVwgOwor5p2x5ry4ID4gdG91emVuXCA7CivlrprluLggPiB0ZWlqb3VcIDsKK+S9nuWluCA+IG5laWthblwgOwor54yu6Iy2ID4ga2VuY2hhXCA7CivkuIDoj4ogPiBpa2tpa3VcIDsKK+WuruWutiA+IG1peWFrZVwgOwor6aKo56WeID4gZnV1amluXCA7Civog5rlrZAgPiBoYWlzaGlcIDsKK+WtneaVrCA+IGtvdWtlaVwgOwor5a++5YemID4gdGFpc2hvXCA7CivkuKHnvqkgPiByeW91Z2lcIDsKK+S4ueeyviA+IHRhbnNlaVwgOwor5LuV5qeYID4gc2hpeW91XCA7Civlr5LlnLAgPiBrYW5jaGlcIDsKK+S4jeiIiCA+IGZ1a3lvdVwgOwor5LiH6Iq4ID4gYmFuZ2VpXCA7CivkuI3oh6MgPiBmdXNoaW5cIDsKK+iEmuWNiiA+IGt5YWhhblwgOwor6LOi5piOID4ga2VubWVpXCA7CivkuIroiLkgPiBqb3VzZW5cIDsKK+iyr+awtCA+IGNob3N1aVwgOwor5a655ae/ID4geW91c2hpXCA7CivkuIroiKogPiBqb3Vrb3VcIDsKK+WwkeS9kCA+IHNob3VzYVwgOwor5p6v5pyoID4ga2FyZWtpXCA7CivkuIDojZggPiBpaWNoYW5cIDsKK+WvuOWJjSA+IHN1bnplblwgOwor5a6P5byBID4ga291YmVuXCA7Civlr77lhoUgPiB0YWluYWlcIDsKK+iAgeeUnyA+IHJvdXNlaVwgOwor5Lu25pWwID4ga2Vuc3V1XCA7CivkuIvoh6MgPiBrYXNoaW5cIDsKK+eNuuelrSA+IGRhc3NhaVwgOwor54us6KqeID4gZG9rdWdvXCA7CivkuIroh7wgPiB1d2F1c3VcIDsKK+Wwj+S9nCA+IGtvc2FrdVwgOwor5pys55uXID4gaG9udG91XCA7Civpo73muoAgPiBob3VtYW5cIDsKK+agoeWkliA+IGtvdWdhaVwgOwor5a+45YiGID4gc3VuYnVuXCA7Civni6zoqbEgPiBkb2t1d2FcIDsKK+WwjuS9kyA+IGRvdXRhaVwgOwor5LiH6IisID4gYmFucGFuXCA7CivkuIroh4ggPiBqb3Vyb3VcIDsKK+aYn+mcnCA+IHNlaXNvdVwgOwor5L2/5ZG9ID4gc2hpbWVpXCA7CivnianpqJIgPiBidXNzb3VcIDsKK+acqOebriA+IG1va3VtZVwgOwor5Li7566hID4gc2h1a2FuXCA7Civku6TmnJsgPiByZWlib3VcIDsKK+S4iuiFvyA+IGpvdXRhaVwgOwor5a6m5a6YID4ga2FuZ2FuXCA7Civlr4zlm70gPiBmdWtva3VcIDsKK+abtOe0lyA+IHNhcmFzYVwgOwor5Lq65rCXID4gaGl0b2tlXCA7CivmnKjnmr8gPiBraXphcmFcIDsKK+S6uuawkSA+IGppbm1pblwgOwor5bCE5YCWID4gc2hha291XCA7CivkuIrohZUgPiBqb3V3YW5cIDsKK+WwiuS9kyA+IHNvbnRhaVwgOwor5pyo55quID4gbW9rdWhpXCA7Civku6Pmm78gPiBkYWl0YWlcIDsKK+S7o+abuCA+IGRhaXNob1wgOwor5p+Q5omAID4gYm91c2hvXCA7CivmmILpqLAgPiBrb3V0b3VcIDsKK+WtkOaWuSA+IGtva2F0YVwgOwor5bCP5LqLID4gc2hvdWppXCA7CivkvZzloLQgPiBzYWt1YmFcIDsKK+iyp+awkSA+IGhpbm1pblwgOwor5LuK5qeYID4gaW1heW91XCA7Civlrp/lsIQgPiBqaXNzaGFcIDsKK+WvvuWBtiA+IHRhaWd1dVwgOwor5Lqs5rWcID4ga2VpaGluXCA7Civmm7jnsKEgPiBzaG9rYW5cIDsKK+S4jeiCliA+IGZ1c2hvdVwgOwor5p2x5rW3ID4gdG91a2FpXCA7CivmnInnqI4gPiB5dXV6ZWlcIDsKK+S9k+WkliA+IHRhaWdhaVwgOwor5p6c5qC4ID4ga2FrYWt1XCA7CivpoJDoqJcgPiB5b3Rha3VcIDsKK+iEseS8miA+IGRha2thaVwgOwor5LiA6IiIID4gaWtreW91XCA7CivkuIrog4wgPiB1d2F6ZWlcIDsKK+WvteWFkCA+IGNob3VqaVwgOwor5a6M5belID4ga2Fua291XCA7CivkuIrogqIgPiBqb3VzaGlcIDsKK+aZuuisgCA+IGNoaWJvdVwgOwor6aGe6IGaID4gcnVpanV1XCA7CivmnKznlaogPiBob25iYW5cIDsKK+adsea0iyA+IHRvdXlvdVwgOwor54m56ZyAID4gdG9rdWp1XCA7CivosrTmp5ggPiBraXNhbWFcIDsKK+iBsOaYjiA+IHNvdW1laVwgOwor6aKo55y8ID4gZnV1Z2FuXCA7CivkuIrogZ4gPiBqb3VidW5cIDsKK+Wun+WtkCA+IGppc3NoaVwgOwor6ICB542qID4gcm91a2FpXCA7Civmna/mtJcgPiBoYWlzZW5cIDsKK+WutuWhviA+IGthanVrdVwgOwor5Luk5peoID4gcmVpc2hpXCA7CivkvbXlkZEgPiBoZWlkb25cIDsKK+izh+adkCA+IHNoaXphaVwgOwor5L2O5aOwID4gdGVpc2VpXCA7CivkuonngrkgPiBzb3V0ZW5cIDsKK+izh+acrCA+IHNoaWhvblwgOwor5L2c5ZyfID4gc2FrdWRvXCA7CivlsIrkuIogPiBzb25qb3VcIDsKK+Wvm+WOsyA+IGthbmdlblwgOwor5Lya5byPID4gZXNoaWtpXCA7CivnvprnvoogPiByZWl5b3VcIDsKK+S9teWQiCA+IGhlaWdvdVwgOwor5Lm+54elID4ga2Fuc291XCA7CivkvLblrpggPiByZWlrYW5cIDsKK+Wvm+WOmiA+IGthbmtvdVwgOwor5LiJ6ICFID4gc2Fuc2hhXCA7CivosarniL0gPiBnb3Vzb3VcIDsKK+S9nOWbsyA+IHNha3V6dVwgOwor54yr6IOMID4gbmVrb3plXCA7Civpo5vngasgPiB0b2JpaGlcIDsKK+eJh+mxlyA+IGhlbnJpblwgOwor6K2m6YaSID4ga2Vpc2VpXCA7Civpp4XlkI0gPiBla2ltZWlcIDsKK+S7o+aVsCA+IGRhaXN1dVwgOwor6aaZ5aWgID4ga291ZGVuXCA7CivosZDnlLAgPiB0b3lvdGFcIDsKK+e/lOegtCA+IHNob3VoYVwgOwor54us6KGMID4gZG9ra291XCA7CivmoLnlj7cgPiBrb25nb3VcIDsKK+iCneW/gyA+IGthbmppblwgOwor54mb6aasID4gZ3l1dWJhXCA7CivkurrmqKkgPiBqaW5rZW5cIDsKK+iCuuWwliA+IGhhaXNlblwgOwor5Li456eYID4gbWFydWhpXCA7Civpo5vngJEgPiBoaWJha3VcIDsKK+S9k+WeiyA+IHRhaWtlaVwgOwor6aCS6KGMID4gaGFua291XCA7CivmnbHmr44gPiB0b3VtYWlcIDsKK+mgiOimgSA+IHNodXlvdVwgOwor5a++5Lq6ID4gdGFpamluXCA7Civog6Hlm70gPiBrb2tva3VcIDsKK+ahiOWGhSA+IGFuJyduYWlcIDsKK+S9leWbniA+IG5hbmthaVwgOwor5pmu6KuLID4gZnVzaGluXCA7CivmmYLpgJ8gPiBqaXNva3VcIDsKK+WtpOaEgSA+IGtvc2h1dVwgOwor6K236LqrID4gZ29zaGluXCA7CivmnKjnkLQgPiBtb2traW5cIDsKK+Wun+WniSA+IGppc3NoaVwgOwor5LuP5pu4ID4gYnVzc2hvXCA7CivlrozlsIEgPiBrYW5wdXVcIDsKK+iAs+auuyA+IGppa2FrdVwgOwor6aGe57qCID4gcnVpc2FuXCA7CivpnZLpu7QgPiBhb2thYmlcIDsKK+acqOeQhiA+IG1va3VyaVwgOwor5L6b5LiOID4ga3lvdXlvXCA7CivogaHmmI4gPiBzb3VtZWlcIDsKK+iukuislyA+IHphbmJvdVwgOwor5a+d5YiDID4gbmV0YWJhXCA7CivkuIDnvr0gPiBpY2hpd2FcIDsKK+iCieaEnyA+IG5pa2thblwgOwor6LOi5omNID4ga2Vuc2FpXCA7CivkuIDnvqkgPiBpY2hpZ2lcIDsKK+S9juWcsCA+IHRlaWNoaVwgOwor5qGC5YagID4ga2Vpa2FuXCA7Civlronlr6cgPiBhbicnbmVpXCA7Civog73li5UgPiBub3Vkb3VcIDsKK+e+iue+uSA+IHlvdWthblwgOwor6aWX5b+cID4ga3lvdW91XCA7Civnvornvq4gPiB5b3VrYW5cIDsKK+iBluabuCA+IHNlaXNob1wgOwor5Li756CyID4gc2h1aG91XCA7CivkvY7lm54gPiB0ZWlrYWlcIDsKK+WvneWFtyA+IHNoaW5ndVwgOwor6LK/5piTID4gYm91ZWtpXCA7Civnj77mlbAgPiBnZW5zdXVcIDsKK+mfs+iqvyA+IG9uY2hvdVwgOwor5Lqk5q2TID4ga291a2FuXCA7Civpp4XliY0gPiBla2ltYWVcIDsKK+WuiOWuriA+IHlhbW9yaVwgOwor5pmv6KazID4ga2Vpa2FuXCA7Civpn7Poqq0gPiBvbmRva3VcIDsKK+S6pOasviA+IGtvdWthblwgOwor5p6a5pWwID4gbWFpc3V1XCA7CivogaHmlY8gPiBzb3ViaW5cIDsKK+iyp+ajkiA+IGJpbmJvdVwgOwor5LiK57eaID4gam91c2VuXCA7CivpoIbooYwgPiBqdW5rb3VcIDsKK+aciOebuCA+IGdlc3NvdVwgOwor5a2Q5oi/ID4gc2hpYm91XCA7CivkvovkvJogPiByZWlrYWlcIDsKK+acgOefrSA+IHNhaXRhblwgOwor6Z2S6be6ID4gYW9zYWdpXCA7CivlrablvpIgPiBnYWt1dG9cIDsKK+S4ueeggiA+IHRhbnNoYVwgOwor5pyJ55uKID4geXV1ZWtpXCA7Civku4rmmakgPiBrb25iYW5cIDsKK+S6leaziSA+IHNlaXNlblwgOwor5a+S5YmkID4ga2FuemFpXCA7Civos6Lmha4gPiBrZW5yeW9cIDsKK+WtneaCjCA+IGtvdXRlaVwgOwor6IKv5a6aID4ga291dGVpXCA7CivkuIvntbUgPiBzaGl0YWVcIDsKK+iukuiogCA+IHphbmdlblwgOwor6LWm5YWNID4gc2hhbWVuXCA7CivkuojmuKwgPiB5b3Nva3VcIDsKK+e/u+eEtiA+IGhvbnplblwgOwor5Ly05aWPID4gYmFuc291XCA7Civos5vmiJAgPiBzYW5zZWlcIDsKK+miqOeQtCA+IGZ1dWtpblwgOwor5Lyd5bCOID4gZGVuZG91XCA7CivmnpfmlL8gPiByaW5zZWlcIDsKK+agueWGoCA+IGtvbmthblwgOwor6LW35LyPID4ga2lmdWt1XCA7CivkuIvntJogPiBrYWt5dXVcIDsKK+S4u+ecvCA+IHNodWdhblwgOwor5LiJ57WEID4gbWlrdW1pXCA7CivkuInntYMgPiBzYW5nZW5cIDsKK+WuneWhlCA+IGhvdXRvdVwgOwor6IGW5peoID4gc2Vpc2hpXCA7CivkuI3nsr4gPiBidXNob3VcIDsKK+S4iue0jSA+IGpvdW5vdVwgOwor546L54mpID4gb3Vtb25vXCA7CivkuIDnuLcgPiBpY2hpcnVcIDsKK+S6jOa1gSA+IG5pcnl1dVwgOwor6ISa5LiLID4ga3lha2thXCA7CivmoLnlhYMgPiBuZW1vdG9cIDsKK+WvkuWGtyA+IGthbnJlaVwgOwor6IGW5patID4gc2VpZGFuXCA7CivkvanliaMgPiBoYWlrZW5cIDsKK+WrjOeFmSA+IGtlbicnZW5cIDsKK+agoeWQiCA+IGtvdWdvdVwgOwor5p2h5qy+ID4gam91a2FuXCA7CivlrablupwgPiBnYWt1ZnVcIDsKK+S7geaZuiA+IGppbmNoaVwgOwor5Lq65p2QID4gamluemFpXCA7CivmoKHlj4sgPiBrb3V5dXVcIDsKK+S9qeWIgCA+IGhhaXRvdVwgOwor5pyq54afID4gbWlqdWt1XCA7CivmnLHngrkgPiBzaHV0ZW5cIDsKK+S4iuexsyA+IGpvdW1haVwgOwor5Lit56C0ID4gY2h1dWhhXCA7CivkurrmnJsgPiBqaW5ib3VcIDsKK+iytOaXjyA+IGtpem9rdVwgOwor5a+h5L2cID4ga2FzYWt1XCA7CivlrpjloLEgPiBrYW5wb3VcIDsKK+S4reegpSA+IG5ha2F0b1wgOwor5a6P5aSnID4ga291ZGFpXCA7Civpoq/niL0gPiBzYXNzb3VcIDsKK+Wun+WcsCA+IGppdGNoaVwgOwor5a2d5byfID4ga291dGVpXCA7Civmnb/mm7ggPiBiYW5zaG9cIDsKK+iDjOWaoiA+IGhhaW5vdVwgOwor6LOm5b25ID4gYnV5YWt1XCA7CivmnInnlKggPiB5dXV5b3VcIDsKK+Wuj+WjriA+IGtvdXNvdVwgOwor5pyJ55SjID4geXV1c2FuXCA7CivkuJnnqK4gPiBoZWlzaHVcIDsKK+WumuWeiyA+IHRlaWtlaVwgOwor5pyI55SjID4gZ2Vzc2FuXCA7CivkvI/lsYsgPiBmdXNleWFcIDsKK+S4gOe0miA+IGlra3l1dVwgOwor5Lq65pm6ID4gamluY2hpXCA7Civlrozlo7IgPiBrYW5iYWlcIDsKK+adkeawkSA+IHNvbm1pblwgOwor55CD5oqAID4ga3l1dWdpXCA7CivmnprmjJkgPiBtYWlreW9cIDsKK+aXpemggyA+IGhpZ29yb1wgOwor5LiL562WID4gZ2VzYWt1XCA7CivpnZLprqsgPiBhb3phbWVcIDsKK+Wtl+W8lSA+IGppYmlraVwgOwor5LuB5pS/ID4gamluc2VpXCA7CivkvY7lkJ8gPiB0ZWlnaW5cIDsKK+aXpemfkyA+IG5pa2thblwgOwor55CD5oivID4ga3l1dWdpXCA7CivkvZXljYMgPiBuYW56ZW5cIDsKK+S9leWNgSA+IG5hbmp1dVwgOwor6LOi5byfID4ga2VudGVpXCA7CivkuIrnrYkgPiBqb3V0b3VcIDsKK+mmrOWKmyA+IGJhcmlraVwgOwor5a2Y5buDID4gem9ucGFpXCA7Civoga/mg7MgPiByZW5zb3VcIDsKK+S9v+S4gSA+IHNoaXRlaVwgOwor5LiJ562JID4gc2FudG91XCA7CivkuLvnlKggPiBzaHV5b3VcIDsKK+S4gOexjCA+IGl0Y2h1dVwgOwor5L2z5L2cID4ga2FzYWt1XCA7Civlr5vku4EgPiBrYW5qaW5cIDsKK+eRtuWPsCA+IHlvdWRhaVwgOwor5a2Q5b25ID4ga295YWt1XCA7CivkvI/lrZcgPiBmdXNlamlcIDsKK+iAkOawtCA+IHRhaXN1aVwgOwor5LiK56uvID4gam91dGFuXCA7Civpp4TkvZwgPiBkYXNha3VcIDsKK+S4ueeUsCA+IHRhbmRlblwgOwor5LiJ56u/ID4gc2Fua2FuXCA7CivkurrmlocgPiBqaW5tb25cIDsKK+mnheS8nSA+IGVraWRlblwgOwor5L2T5YuiID4gdGFpc2VpXCA7CivlrZfluZUgPiBqaW1ha3VcIDsKK+S8neWljyA+IGRlbnNvdVwgOwor5a2Q5byfID4gc2hpdGVpXCA7CivkuIfnq68gPiBiYW50YW5cIDsKK+S4iuepuiA+IGpvdWt1dVwgOwor542w54ybID4gbmVpbW91XCA7CivpppnlkIggPiBrb3Vnb3VcIDsKK+eJh+mbsiA+IGhlbicndW5cIDsKK+eLrOiLsSA+IGRva3VlaVwgOwor5qCh5YaFID4ga291bmFpXCA7Civml6Xpm4AgPiBoaWdhcmFcIDsKK+mhjOewvSA+IGRhaXNlblwgOwor5a+G5YG1ID4gbWl0dGVpXCA7CivpoLvnuYEgPiBoaW5wYW5cIDsKK+S4gOetliA+IGlzc2FrdVwgOwor5L2V5YiGID4gbmFucHVuXCA7Civnib3pgKMgPiBrZW5yZW5cIDsKK+Wtq+WtkCA+IG1hZ29rb1wgOwor5LuL5oqxID4ga2FpaG91XCA7CivkuInnqK4gPiBzYW5zaHVcIDsKK+S9k+WItiA+IHRhaXNlaVwgOwor6aWX5a60ID4ga3lvdWVuXCA7CivkuIrnqIsgPiBqb3V0ZWlcIDsKK+aXpemZsCA+IGhpa2FnZVwgOwor5pu455SfID4gc2hvc2VpXCA7Civml6zplpMgPiBqdW5rYW5cIDsKK+mmrOWFiyA+IG1hcnVrdVwgOwor5a6Y5Za2ID4ga2FuJydlaVwgOwor5L2T5YiRID4gdGFpa2VpXCA7Civnvr3nlLAgPiBoYW5lZGFcIDsKK+mhhueykiA+IGthcnl1dVwgOwor5Li754+tID4gc2h1aGFuXCA7CivkuIDnrJEgPiBpc3Nob3VcIDsKK+mdoumgrCA+IG1lbnBvb1wgOwor5pel6ZmQID4gaGlnaXJpXCA7CivkuI3npaUgPiBmdXNob3VcIDsKK+S4oeebriA+IHJ5b3VtZVwgOwor5pys5rqQID4gaG9uZ2VuXCA7CivogonlsYsgPiBuaWt1eWFcIDsKK+iDtOS9kyA+IGRvdXRhaVwgOwor5aem6KiIID4ga2Fua2VpXCA7CivkuqTmm78gPiBrb3V0YWlcIDsKK+mdmemkiiA+IHNlaXlvdVwgOwor6LKh5pS/ID4gemFpc2VpXCA7CivlraTlrqIgPiBrb2tha3VcIDsKK+S7pOW8nyA+IHJlaXRlaVwgOwor5qCq5L6hID4ga2FidWthXCA7Civnvo7nqbogPiBtaXNvcmFcIDsKK+abtOeUnyA+IGtvdXNlaVwgOwor5a+E5L+hID4ga2lzaGluXCA7CivogZbmiKYgPiBzZWlzZW5cIDsKK+S4reeUnyA+IG5ha2F0ZVwgOwor5L2T5YaFID4gdGFpbmFpXCA7Civog4zlj40gPiBoYWloYW5cIDsKK+eLrOiHqiA+IGRva3VqaVwgOwor5Luj5byBID4gZGFpYmVuXCA7Civlr4bkvb8gPiBtaXNzaGlcIDsKK+adseaWuSA+IHRvdWhvdVwgOwor6Ky56YG4ID4ga2luc2VuXCA7CivosYrmvaQgPiBob3VqdW5cIDsKK+S8muWgtCA+IGthaWpvdVwgOwor5Lya5aCxID4ga2FpaG91XCA7CivmmYLoqZUgPiBqaWh5b3VcIDsKK+WutuWFgyA+IGllbW90b1wgOwor54mn6YeOID4gYm9rdXlhXCA7CivpnaLpnaIgPiBtZW5tZW5cIDsKK+izh+aApyA+IHNoaXNlaVwgOwor5LqL5qWtID4gamlneW91XCA7CivkuIHnqJogPiBkZXRjaGlcIDsKK+adpeabuCA+IHJhaXNob1wgOwor5pel6ZW3ID4gaGluYWdhXCA7CivkupTmoYEgPiBnb2tldGFcIDsKK+S8muWggiA+IGthaWRvdVwgOwor576O56ewID4gYmlzaG91XCA7Civlr4bkvJogPiBtaWtrYWlcIDsKK+iziuW+kiA+IHpva3V0b1wgOwor54yr56eRID4gbmVrb2thXCA7Civml4XppKggPiByeW9rYW5cIDsKK+iDtOS5sSA+IGRvdXJhblwgOwor5Lu75a6YID4gbmlua2FuXCA7Civosp7mk40gPiB0ZWlzb3VcIDsKK+S6pOaYkyA+IGtvdWVraVwgOwor5a6Y5ZG9ID4ga2FubWVpXCA7Civlrrblg5UgPiBrYWJva3VcIDsKK+S4u+eKryA+IHNodWhhblwgOwor572r57eaID4ga2Vpc2VuXCA7CivlrZ/lrZAgPiBtb3VzaGlcIDsKK+e+pOebsiA+IGd1bm1vdVwgOwor6IOO5YuVID4gdGFpZG91XCA7CivmmI/ov7cgPiBrb25tZWlcIDsKK+S4pueUqCA+IGhlaXlvdVwgOwor5Lmz5q+NID4gbnl1dWJvXCA7CivnvqTnm5cgPiBndW50b3VcIDsKK+S7luW/gyA+IHRhc2hpblwgOwor6ICB5q27ID4gcm91c2hpXCA7CivlrZ3lrZAgPiBrb3VzaGlcIDsKK+e6j+mgrSA+IHRlbnRvdVwgOwor54qv6KGMID4gaGFua291XCA7CivosYrmuoAgPiBob3VtYW5cIDsKK+S9j+WDpyA+IGp1dXNvdVwgOwor5a6Y5ZCNID4ga2FubWVpXCA7CivkuIDnpaggPiBpcHB5b3VcIDsKK+WllOmosCA+IGhvbnRvdVwgOwor5p+75Y+OID4gc2FzaHV1XCA7CivkuozmoLggPiBuaWtha3VcIDsKK+Wun+WLoiA+IGppc3NlaVwgOwor5Luu5bGLID4ga2FyaXlhXCA7CivkvZ7kurogPiBuZWlqaW5cIDsKK+acq+azlSA+IG1hcHBvdVwgOwor6aaZ5YW4ID4ga291ZGVuXCA7Civlrp/lirkgPiBqaWtrb3VcIDsKK+adpeaWuSA+IGtpa2F0YVwgOwor6K2m6KaWID4ga2Vpc2hpXCA7Civpo7LmlpkgPiBpbnJ5b3VcIDsKK+WutuS/oSA+IGthc2hpblwgOwor5a6Y5Y2wID4ga2FuJydpblwgOwor5Lq65omNID4gamluc2FpXCA7CivkurrmiYsgPiBoaXRvZGVcIDsKK+abuOeKtiA+IHNob2pvdVwgOwor5a655L2TID4geW91ZGFpXCA7Civku67lr50gPiBrYXJpbmVcIDsKK+WtlOWtnyA+IGtvdW1vdVwgOwor5Luu5a62ID4ga2FyaWllXCA7CivlrZTlrZAgPiBrb3VzaGlcIDsKK+iDjuWGhSA+IHRhaW5haVwgOwor5LuB5oSbID4gamluJydhaVwgOwor5p2l5pS7ID4gcmFpa291XCA7Civlrp3liaMgPiBob3VrZW5cIDsKK+WutuS9nCA+IGthc2FrdVwgOwor5aSn6bqmID4gb29tdWdpXCA7Civni63nvqkgPiBreW91Z2lcIDsKK+isnemHkSA+IHNoYWtpblwgOwor5a6f5YiRID4gamlra2VpXCA7CivppIrmiJAgPiB5b3VzZWlcIDsKK+adoeaWhyA+IGpvdWJ1blwgOwor5qCh5Li7ID4ga291c2h1XCA7CivlrZDlroggPiBrb21vcmlcIDsKK+Wuv+S4liA+IHN1a3VzZVwgOwor5aWu6ZeYID4gZnVudG91XCA7Civlrpfli5kgPiBzaHV1bXVcIDsKK+WpmuekvCA+IGtvbnJlaVwgOwor5a2Q5a2rID4gc2hpc29uXCA7CivkuInnnIEgPiBzYW5zZWlcIDsKK+acrOauvyA+IGhvbmRlblwgOwor5LiJ55u4ID4gc2Fuc291XCA7CivnjJvnpr0gPiBtb3VraW5cIDsKK+WuneWIgCA+IGhvdXRvdVwgOwor576k55SfID4gZ3Vuc2VpXCA7CivkuIDnn7MgPiBpc3Nla2lcIDsKK+Wun+WGmSA+IGppc3NoYVwgOwor5LuB5oG1ID4gamlua2VpXCA7CivkupTml6UgPiBpdHN1a2FcIDsKK+miqOa1qiA+IGZ1dXJvdVwgOwor5pm66IO9ID4gY2hpbm91XCA7CivkuIrnmocgPiBqb3Vrb3VcIDsKK+S6pOaPmyA+IGtvdWthblwgOwor5Lqr5oyBID4ga3lvdWppXCA7CivkuIDnnqwgPiBpc3NodW5cIDsKK+WuneWGoCA+IGhvdWthblwgOwor5a6Y5Yi2ID4ga2Fuc2VpXCA7Civlrp/lhYQgPiBqaWtrZWlcIDsKK+WuneWFuCA+IGhvdXRlblwgOwor6aKo5rSeID4gZnV1ZG91XCA7CivmlqzpppYgPiB6YW5zaHVcIDsKK+aXpemKrSA+IGhpemVuaVwgOwor5LmX5rOVID4gam91aG91XCA7CivmnKzmrIQgPiBob25yYW5cIDsKK+eMruebgyA+IGtlbnBhaVwgOwor5Lq65oOFID4gbmluam91XCA7CivkvY/kurogPiBqdXVuaW5cIDsKK+S7j+W4qyA+IGJ1c3NoaVwgOwor5a625LitID4ga2FjaHV1XCA7CivlrrbkuKYgPiB5YW5hbWlcIDsKK+ixiuawtCA+IGhvdXN1aVwgOwor6LOi5aa7ID4ga2Vuc2FpXCA7Civku6PlrpggPiBkYWlrYW5cIDsKK+S4geebriA+IGNob3VtZVwgOwor5Luk5a2rID4gcmVpc29uXCA7Civku4/lt6UgPiBidWtrb3VcIDsKK+S4gOebriA+IGhpdG9tZVwgOwor6IKJ5aGKID4gbmlra2FpXCA7CivkuqzmiJAgPiBrZWlzZWlcIDsKK+aarueniyA+IGJvc2h1dVwgOwor5pm66ICFID4gY2hpc2hhXCA7CivmlrnpnaIgPiBob3VtZW5cIDsKK+S5vuadvyA+IGthbnBhblwgOwor5a2Y5aSWID4gem9uZ2FpXCA7Civku6TlrKIgPiByZWlqb3VcIDsKK+e+jueahCA+IGJpdGVraVwgOwor5Ly25YSqID4gcmVpeXV1XCA7Civkub7mna8gPiBrYW5wYWlcIDsKK+S6uuaApyA+IGppbnNlaVwgOwor5LmX5rCXID4gbm9yaWtpXCA7CivkuIrnlaogPiBqb3ViYW5cIDsKK+eLl+iCiSA+IGt1bmlrdVwgOwor6aKo5rC0ID4gZnV1c3VpXCA7Civkub7mnZAgPiBrYW56YWlcIDsKK+itnOihqCA+IGZ1aHlvdVwgOwor5LuY5bGeID4gZnV6b2t1XCA7CivkuIrnlYwgPiBqb3VrYWlcIDsKK+S4ieeVqiA+IHNhbmJhblwgOwor5a2m5ZySID4gZ2FrdWVuXCA7Civml6jphZIgPiBzaGlzaHVcIDsKK+ismemBnCA+IGtlbnNvblwgOwor5LiK55SwID4gam91ZGVuXCA7CivkuInnlYwgPiBzYW5nYWlcIDsKK+WknOm3uSA+IHlvdGFrYVwgOwor5Luy5aSPID4gY2h1dWthXCA7Civlrojli6IgPiBzaHVzZWlcIDsKK+i0iOWRiCA+IHpvdXRlaVwgOwor6KuW6aGMID4gcm9uZGFpXCA7CivkvLTlg6cgPiBiYW5zb3VcIDsKK+S8muWQjCA+IGthaWRvdVwgOwor5Lya5ZCIID4ga2FpZ291XCA7CivnkIblraYgPiByaWdha3VcIDsKK+S8uuWAmSA+IHNoaWtvdVwgOwor5Luk5am/ID4gcmVpc2VpXCA7CivnkIPlrrQgPiBreXV1ZW5cIDsKK+S6pOaIpiA+IGtvdXNlblwgOwor5pen6YO9ID4ga3l1dXRvXCA7CivkvK/lhYQgPiBoYWtrZWlcIDsKK+i0iOWPtyA+IHpvdWdvdVwgOwor5Lit54GrID4gY2h1dWJpXCA7CivkvJ3ljZggPiBkZW50YW5cIDsKK+Wuo+S8nSA+IHNlbmRlblwgOwor5pyo5qe/ID4gbXVrdWdlXCA7CivmlrnpmaMgPiBob3VqaW5cIDsKK+i0i+WNsCA+IG5pc2VpblwgOwor5Luk5aiYID4gcmVpam91XCA7Civog4zku7sgPiBoYWluaW5cIDsKK+e/u+ahiCA+IGhvbicnYW5cIDsKK+eOi+anmCA+IG91c2FtYVwgOwor5Lu75ZywID4gbmluY2hpXCA7Civlrp/kvZMgPiBqaXR0YWlcIDsKK+S4gOeWiyA+IGlwcGlraVwgOwor6ICB5p2lID4gcm91cmFpXCA7Civnianos4cgPiBidXNzaGlcIDsKK+S7luWulyA+IHRhc2h1dVwgOwor5pem6YKjID4gZGFuJyduYVwgOwor5aW96YWNID4ga291aGFpXCA7CivogIHmnYkgPiByb3VzYW5cIDsKK+S7pOWniSA+IHJlaXNoaVwgOwor5LuV5a6YID4gc2hpa2FuXCA7CivlrozlhaggPiBrYW56ZW5cIDsKK+S8neWLlSA+IGRlbmRvdVwgOwor5pat6Z2iID4gZGFubWVuXCA7Civku6TlprkgPiByZWltYWlcIDsKK+WknOmzpSA+IHlhY2hvdVwgOwor54yb55yBID4gbW91c2VpXCA7CivkuIDnlLsgPiBpa2tha3VcIDsKK+aflOWSjCA+IG55dXV3YVwgOwor5pep6YCAID4gc291dGFpXCA7CivlrprkvosgPiB0ZWlyZWlcIDsKK+ePvuWtmCA+IGdlbnpvblwgOwor5Lmx5p2tID4gcmFuZ3VpXCA7CivkvLTkvrYgPiBoYW5yeW9cIDsKK+S6pOaEnyA+IGtvdWthblwgOwor5a6a5L2PID4gdGVpanV1XCA7Civoq4vpoZggPiBzZWlnYW5cIDsKK+WuiOWFtSA+IHNodWhlaVwgOwor6LKh5b2iID4gemFpa2VpXCA7Civog4zkuK0gPiBzZW5ha2FcIDsKK+eJueiosSA+IHRva2t5b1wgOwor6Kq/6aasID4gY2hvdWJhXCA7CivlrZjlnKggPiBzb256YWlcIDsKK+iDjOS4iCA+IHNldGFrZVwgOwor54m56KiTID4gdG9ra3VuXCA7CivkuI3njJ8gPiBmdXJ5b3VcIDsKK+eIhumfsyA+IGJha3VvblwgOwor5Lqk5oOFID4ga291am91XCA7CivmnKzmoYggPiBob24nJ2FuXCA7CivkuIvnjYQgPiBnZWdva3VcIDsKK+S7iuWwmiA+IGltYW5hb1wgOwor5pys5qChID4gaG9ua291XCA7Civkurrlt6UgPiBqaW5rb3VcIDsKK+S5seaatCA+IHJhbmJvdVwgOwor5pyb5qiTID4gYm91cm91XCA7CivkuInnjL8gPiBtaXphcnVcIDsKK+irlumZoyA+IHJvbmppblwgOwor6aGV54++ID4ga2VuZ2VuXCA7CivkvLbkurogPiByZWlqaW5cIDsKK+adseW+gSA+IHRvdXNlaVwgOwor5pac6aC4ID4gc2hha2VpXCA7CivosarmlL4gPiBnb3Vob3VcIDsKK+S4gOeQhiA+IGljaGlyaVwgOwor5Li75rOVID4gc2h1aG91XCA7CivorLnoqIAgPiBraW5nZW5cIDsKK+acseabuCA+IHNodXNob1wgOwor6aSo5aiDID4ga2FuJydhaVwgOwor54mH6LyqID4ga2F0YXdhXCA7CivmnJvmpbwgPiBib3Vyb3VcIDsKK+WuieWApCA+IHlhc3VuZVwgOwor5pys5p2lID4gaG9ucmFpXCA7CivmmI7oqIAgPiBtZWlnZW5cIDsKK+e/sOaelyA+IGthbnJpblwgOwor5Luk5aCCID4gcmVpZG91XCA7CivmmI7op6MgPiBtZWlrYWlcIDsKK+S4h+eKtiA+IGJhbmpvdVwgOwor5a6X5Li7ID4gc291c2h1XCA7CivpnIrprYIgPiByZWlrb25cIDsKK+acrOacqCA+IG1vdG9raVwgOwor6Z2S6YqFID4gc2VpZG91XCA7CivkuIDnjbIgPiBpa2tha3VcIDsKK+acrOacmyA+IGhvbm1vdVwgOwor572555eFID4gcmlieW91XCA7CivpoZjnirYgPiBnYW5qb3VcIDsKK+acq+acqyA+IHN1ZXp1ZVwgOwor5a2Q5ZqiID4gc2hpbm91XCA7CivmnKzmm7ggPiBob25zaG9cIDsKK+aal+ekgSA+IGFuc2hvdVwgOwor5piO6KaWID4gbWVpc2hpXCA7CivmlpzpnaIgPiBzaGFtZW5cIDsKK+eJh+i6qyA+IGthdGFtaVwgOwor5LqM5omLID4gZnV0YXRlXCA7Civoq5Lpl4cgPiByeW91YW5cIDsKK+S5seaVsCA+IHJhbnN1dVwgOwor6Kq/6Z+zID4gY2hvdW9uXCA7CivmmKXompUgPiBoYXJ1Z29cIDsKK+Wlvei7oiA+IGtvdXRlblwgOwor5pyo5pyrID4ga29udXJlXCA7CivogozlkIggPiBoYWRhYWlcIDsKK+S6rOW4qyA+IGtlaXNoaVwgOwor546L5pydID4gb3VjaG91XCA7CivppKjlpJYgPiBrYW5nYWlcIDsKK+S8geWPiiA+IGtpa3l1dVwgOwor6Ky56KO9ID4ga2luc2VpXCA7CivniqzoiI4gPiBrZW5zaGFcIDsKK+mbt+mztCA+IHJhaW1laVwgOwor5Lu75ZG9ID4gbmlubWVpXCA7Civmm7jms5UgPiBzaG9ob3VcIDsKK+S7gOWunSA+IGp1dWhvdVwgOwor5Lq65bGLID4gaGl0b3lhXCA7CivmnKbmnKcgPiBtb3Vyb3VcIDsKK+acpuacpiA+IG1vdW1vdVwgOwor5Luj5ZywID4gZGFpY2hpXCA7CivkuK3mtLIgPiBuYWthc3VcIDsKK+izm+WYhiA+IHNhbnRhblwgOwor5pel6LazID4gaGlhc2hpXCA7CivpnZLphbggPiBzZWlzYW5cIDsKK+aWnOmZvSA+IHNoYXlvdVwgOwor5aSn6aKoID4gb29rYXplXCA7Civoq7jpgZMgPiBzaG9kb3VcIDsKK+WlqumChCA+IGRha2thblwgOwor5Lit5rOiID4gY2h1dWhhXCA7Civpn7Pnt6AgPiBuZWppbWVcIDsKK+mciumokyA+IHJlaWdlblwgOwor5LiN54K6ID4gZnV0YW1lXCA7CivlpKnpoZQgPiB0ZW5nYW5cIDsKK+eJqeimiyA+IG1vbm9taVwgOwor5pys5peoID4gaG9uc2hpXCA7Civlo67pvaIgPiBzb3VyZWlcIDsKK+WtpuWLmSA+IGdha3VtdVwgOwor5pu/5q2MID4ga2FldXRhXCA7CivlrZjlkb0gPiB6b25tZWlcIDsKK+Wlrui/hSA+IGZ1bmppblwgOwor6LOt5Y2aID4gdG9iYWt1XCA7CivlpKfpoZggPiB0YWlnYW5cIDsKK+adieaIuCA+IHN1Z2lkb1wgOwor6LKn5a+SID4gaGlua2FuXCA7Civlqr7mm7MgPiBhaWJpa2lcIDsKK+acieanmCA+IGFyaXlvdVwgOwor5pys5paHID4gaG9ubW9uXCA7Civku7blkI0gPiBrZW5tZWlcIDsKK+adpeW6lyA+IHJhaXRlblwgOwor5pys5pWwID4gaG9uc3V1XCA7Civmlqfpkb8gPiBmdXNha3VcIDsKK+adpeW5tCA+IHJhaW5lblwgOwor54yb542jID4gbW91anV1XCA7CivmlofpoYwgPiBidW5kYWlcIDsKK+eOi+aXjyA+IG91em9rdVwgOwor5LyB5YqDID4ga2lrYWt1XCA7CivkupTlvrMgPiBnb3Rva3VcIDsKK+S4ieeBvSA+IHNhbnNhaVwgOwor5aW96LWwID4ga291c291XCA7CivkuIfngrkgPiBtYW50ZW5cIDsKK+S7iuWknCA+IGtvbicneWFcIDsKK+mjr+W6lyA+IGhhbnRlblwgOwor6aSK5a2QID4geW91c2hpXCA7CivkuK3msJcgPiBjaHV1a2lcIDsKK+mhleeEtiA+IGtlbnplblwgOwor5Luk5ZejID4gcmVpc2hpXCA7CivorJnorbIgPiBrZW5qb3VcIDsKK+Wjrum6lyA+IHNvdXJlaVwgOwor5p2x5bK4ID4gdG91Z2FuXCA7CivkvJ3ku6QgPiBkZW5yZWlcIDsKK+S7j+WhlCA+IGJ1dHRvdVwgOwor6Zyc6ZuwID4gc291ZnVuXCA7Civos57lkbMgPiBzaG91bWlcIDsKK+mgreeXmyA+IHp1dHN1dVwgOwor5Li75qipID4gc2h1a2VuXCA7Civpm7fprZogPiByYWlneW9cIDsKK+S4h+eBryA+IG1hbmRvdVwgOwor6IGW5aOHID4gc2VpZGFuXCA7CivosqHlrp0gPiB6YWlob3VcIDsKK+ism+irhyA+IGtvdWRhblwgOwor5aSc6aKoID4geW9rYXplXCA7CivosqrlqaogPiBkb25yYW5cIDsKK+eMrueBryA+IGtlbnRvdVwgOwor5LyQ5YCSID4gYmF0dG91XCA7Civnj77lnLAgPiBnZW5jaGlcIDsKK+iCouS9kyA+IHNoaXRhaVwgOwor54yb54qsID4gbW91a2VuXCA7Civmm7TmraMgPiBrb3VzZWlcIDsKK+WkqembtyA+IHRlbnJhaVwgOwor5pyd5pmpID4gYXNhYmFuXCA7Civnj77lnKggPiBnZW56YWlcIDsKK+S7luWbvSA+IHRha29rdVwgOwor5pyX5pyXID4gcm91cm91XCA7Civku67lkI0gPiBrZW15b3VcIDsKK+miqOaZryA+IGZ1dWtlaVwgOwor6KuW6YuSID4gcm9ucG91XCA7CivmlofpnaIgPiBidW5tZW5cIDsKK+S8juWAhiA+IGdpcnlvdVwgOwor6aSD5a2QID4gZ3lvdXphXCA7CivkupXlupUgPiBzZWl0ZWlcIDsKK+WtpuWFhCA+IGdha2tlaVwgOwor54qv572qID4gaGFuemFpXCA7CivlpKfpm6MgPiB0YWluYW5cIDsKK+S4reaspyA+IGNodXVvdVwgOwor5Lyd5LiWID4gZGVuc2VpXCA7Civos5vlkIwgPiBzYW5kb3VcIDsKK+S4jea8gSA+IGZ1cnlvdVwgOwor5aSq6Zm9ID4gdGFpeW91XCA7CivlpKnpmpsgPiB0ZW5zYWlcIDsKK+aatOeKtiA+IGJvdWpvdVwgOwor5peL6LuiID4gc2VudGVuXCA7CivlpJrpoY0gPiB0YWdha3VcIDsKK+WkqemZuiA+IHRlbmtlblwgOwor6IGW5aCCID4gc2VpZG91XCA7CivogIHmiYsgPiByb3VzaHVcIDsKK+S8muS4uyA+IGthaXNodVwgOwor5p2x5a6uID4gdG91Z3V1XCA7CivmnbHlrp0gPiB0b3Vob3VcIDsKK+iBluWfnyA+IHNlaWlraVwgOwor5aSn6ZqKID4gZGFpdGFpXCA7Civku6Plk4EgPiBkYWloaW5cIDsKK+aciOahgiA+IGdla2tlaVwgOwor6aCT55+lID4gdG9uY2hpXCA7CivogIHmiJAgPiByb3VzZWlcIDsKK+iAkOaApyA+IHRhaXNlaVwgOwor5pW16aObID4gdGVraWhpXCA7CivpoIbnpLwgPiBqdW5yZWlcIDsKK+S5l+aVsCA+IGpvdXN1dVwgOwor5aSV6aGUID4geXV1Z2FvXCA7CivkubHmiKYgPiByYW5zZW5cIDsKK+aZgue/kiA+IGppc2h1dVwgOwor6ICD5oWuID4ga291cnlvXCA7Civmlq3ph5EgPiBkYW5raW5cIDsKK+S4jea4rCA+IGZ1c29rdVwgOwor5LuL5ZyoID4ga2FpemFpXCA7CivlpKrplqQgPiB0YWlrb3VcIDsKK+aXp+iqvCA+IGt5dXVnaVwgOwor5pW06aKoID4gc2VpZnV1XCA7Civku7vlhY0gPiBuaW5tZW5cIDsKK+WtmOWIhiA+IHpvbmJ1blwgOwor5Luk5ZCNID4gcmVpbWVpXCA7Civpo7LlsYsgPiBub21peWFcIDsKK+iBluWcsCA+IHNlaWNoaVwgOwor5Lq65aSWID4gbmluZ2FpXCA7CivmlqfpiZ4gPiBmdWV0c3VcIDsKK+WknOmcpyA+IHlvZ2lyaVwgOwor54yb54S2ID4gbW91emVuXCA7Civoga/lkIggPiByZW5nb3VcIDsKK+S6uuWjqyA+IGppbnNoaVwgOwor6Z2i6LKMID4gbWVuYm91XCA7Civosqnlo7IgPiBoYW5iYWlcIDsKK+S5vuaApyA+IGthbnNlaVwgOwor5Li75qC5ID4gc2h1a29uXCA7CivlpKfplqIgPiBvb3pla2lcIDsKK+aXp+ipoCA+IGt5dXVlaVwgOwor5LuK5ZueID4ga29ua2FpXCA7Civml6XoqowgPiBuaXNzaGlcIDsKK+aXqeioiCA+IHNvdWtlaVwgOwor5Luj5Y+CID4gZGFpc2FuXCA7CivlpKfploAgPiBkYWltb25cIDsKK+acrOaLoCA+IGhvbmt5b1wgOwor5pyJ5pybID4geXV1Ym91XCA7Civni6Hnn6UgPiBrb3VjaGlcIDsKK+mjruWxiyA+IG5vbWl5YVwgOwor5pW06aCTID4gc2VpdG9uXCA7Civml6foqJggPiBreXV1a2lcIDsKK+iqsumVtyA+IGthY2hvdVwgOwor5aaE6KiAID4gbW91Z2VuXCA7Civoq7jos6IgPiBzaG9rZW5cIDsKK+aZqeeosiA+IGJhbnRvdVwgOwor5Lqb5bCRID4gc2FzaG91XCA7CivkuqHlrZAgPiBib3VzaGlcIDsKK+iytOWbvSA+IGtpa29rdVwgOwor5peF6LevID4gdGFiaWppXCA7Civosarlv6sgPiBnb3VrYWlcIDsKK+aXpeioiCA+IG5pa2tlaVwgOwor5pep6KaLID4gaGF5YW1pXCA7Civpm7vpoZUgPiBkZW5rZW5cIDsKK+mkqOWToSA+IGthbicnaW5cIDsKK+izouWFhCA+IGtlbmtlaVwgOwor5aSW6Zu7ID4gZ2FpZGVuXCA7Civnj77lk6EgPiBnZW4nJ2luXCA7Civmnb/loYAgPiBpdGFiZWlcIDsKK+eJh+iogCA+IGhlbmdlblwgOwor5Lqk5aq+ID4ga291a291XCA7CivkuIvmtYEgPiBrYXJ5dXVcIDsKK+e9queKtiA+IHphaWpvdVwgOwor5pen6KaPID4ga3l1dWtpXCA7Civmlq/pgZMgPiBzaGlkb3VcIDsKK+ePvuWTgSA+IGdlbnBpblwgOwor546p5byEID4gZ2Fucm91XCA7CivmlL7pt7kgPiBob3V5b3VcIDsKK+WtpuS8miA+IGdha2thaVwgOwor5aWJ6YKEID4gaG91a2FuXCA7CivkuI3ms4EgPiBmdWt5b3VcIDsKK+WliemBtyA+IGhvdXNlblwgOwor6KqT6aGYID4gc2VpZ2FuXCA7CivmnKzmh5AgPiBob25rYWlcIDsKK+S4ueacsSA+IHRhbnNodVwgOwor5aSn6ZGRID4gdGFpa2FuXCA7CivkuLjmnKggPiBtYXJ1a2lcIDsKK+WtpuS6iyA+IGdha3VqaVwgOwor5pyI5pemID4gZ2V0dGFuXCA7CivlpJzplbcgPiB5b25hZ2FcIDsKK+adseWkqSA+IHRvdXRlblwgOwor5aWJ6YCBID4gaG91c291XCA7CivmnbHlpKcgPiB0b3VkYWlcIDsKK+mdouirhyA+IG1lbmRhblwgOwor5aWJ6L+OID4gaG91Z2VpXCA7Civmm7jmnpcgPiBzaG9yaW5cIDsKK+WluOioiCA+IGthbmtlaVwgOwor54eV6ZuAID4gZW5qYWt1XCA7CivmnInmlbAgPiB5dXVzdXVcIDsKK+eLvOeLvSA+IHJvdWJhaVwgOwor5aqS5p+TID4gYmFpc2VuXCA7CivnuYHplpEgPiBoYW5rYW5cIDsKK+S7suWApCA+IG5ha2FuZVwgOwor5LiK5rC0ID4gam91c3VpXCA7Civoqpjpm7sgPiB5dXVkZW5cIDsKK+aZgue1piA+IGppa3l1dVwgOwor6ZuE6baPID4gb25kb3JpXCA7CivmmbTnnYAgPiBoYXJlZ2lcIDsKK+e9sOeCuSA+IGJhdHRlblwgOwor5Lqh5aeJID4gYm91c2hpXCA7CivlpKfpjowgPiBvb2dhbWFcIDsKK+S6oeWmuyA+IGJvdXNhaVwgOwor6Z2S6LGGID4gYW9tYW1lXCA7Civosqflm7AgPiBoaW5rb25cIDsKK+S7suS/nSA+IGNodXVob1wgOwor54+N5aWHID4gY2hpbmtpXCA7CivorIDoqIggPiBib3VrZWlcIDsKK+S4u+aXqCA+IHNodXNoaVwgOwor5Lqi5aWuID4ga291ZnVuXCA7CivniYjooYwgPiBoYW5rb3VcIDsKK+Wkp+mNiyA+IG9vbmFiZVwgOwor5pq05ryiID4gYm91a2FuXCA7CivkuIrmrrUgPiBqb3VkYW5cIDsKK+acgOaXqSA+IG1vaGF5YVwgOwor6Zu36Zu7ID4gcmFpZGVuXCA7CivkuIfmsJEgPiBiYW5taW5cIDsKK+iAgeW7gyA+IHJvdWhhaVwgOwor5Luk5YWEID4gcmVpa2VpXCA7Civlp5TnuK4gPiBpc2h1a3VcIDsKK+S5l+aJiyA+IG5vcml0ZVwgOwor5LuP5Y+CID4gYnVzc2FuXCA7CivmmIfoj68gPiBzaG91a2FcIDsKK+S4gOaziiA+IGlwcGFrdVwgOwor6Ku36KuMID4gZnV1a2FuXCA7CivkuLvmlocgPiBzaHVidW5cIDsKK+mbhOmzpSA+IG9uZG9yaVwgOwor54++5YuiID4gZ2Vuc2VpXCA7CivogIHlubwgPiByb3V5b3VcIDsKK+iqnumVtyA+IGdvY2hvdVwgOwor5aWU6LWwID4gaG9uc291XCA7CivogIHlubQgPiByb3VuZW5cIDsKK+S4reacnyA+IGNodXVraVwgOwor5LiJ5q27ID4gc2Fuc2hpXCA7Civku5blipsgPiB0YXJpa2lcIDsKK+acrOaApyA+IGhvbnNlaVwgOwor5LuY5YmHID4gZnVzb2t1XCA7Civnv7vlvIQgPiBob25yb3VcIDsKK+iyoeWboyA+IHphaWRhblwgOwor6KyZ6JmaID4ga2Vua3lvXCA7Civku6Plg6cgPiBkYWlzb3VcIDsKK+S6iOWvqSA+IHlvc2hpblwgOwor5Li75pS7ID4gc2h1a291XCA7CivoqozpnaIgPiBzaGltZW5cIDsKK+S4h+atuyA+IGJhbnNoaVwgOwor6ICB5birID4gcm91c2hpXCA7CivkuIfmrbMgPiBtYW56YWlcIDsKK+WtkOS+myA+IGtvZG9tb1wgOwor5a2Y5LqhID4gc29uYm91XCA7CivkuozlrZAgPiBmdXRhZ29cIDsKK+S4iuashCA+IGpvdXJhblwgOwor5Luu5L2cID4ga2FzYWt1XCA7CivpoIbnlaogPiBqdW5iYW5cIDsKK+izouS6uiA+IGtlbmppblwgOwor6Zuy6ZuGID4gdW5zaHV1XCA7Civoq7PoqqYgPiBhbnNob3VcIDsKK+mbsumbgCA+IGhpYmFyaVwgOwor54++5YmNID4gZ2VuemVuXCA7CivogIHlt6cgPiByb3Vrb3VcIDsKK+S7i+WNtSA+IGthaXJhblwgOwor5aSn6YmIID4gb29uYXRhXCA7CivoqanprYIgPiBzaGlrb25cIDsKK+Wlh+i5nyA+IGtpc2VraVwgOwor576K5rC0ID4geW91c3VpXCA7CivnvqTmo7IgPiBndW5zZWlcIDsKK+mbo+mhjCA+IG5hbmRhaVwgOwor5aSp6YeRID4gdGVua2luXCA7CivmnKzlvbEgPiBob24nJ2VpXCA7CivogJDlr5IgPiB0YWlrYW5cIDsKK+WkqemHjSA+IHRlbmp1dVwgOwor5Lim5pyoID4gbmFtaWtpXCA7CivmnKzlvZMgPiBob250b3VcIDsKK+aWnOi+uiA+IHNoYWhlblwgOwor6LOi5Li7ID4ga2Vuc2h1XCA7Civmm7jmlo4gPiBzaG9zYWlcIDsKK+e+iuavmyA+IHlvdW1vdVwgOwor5aSn6YeRID4gdGFpa2luXCA7CivpnZnoprMgPiBzZWlrYW5cIDsKK+Wlh+i3oSA+IGtpc2VraVwgOwor5LuB5ZCbID4gamlua3VuXCA7CivkuI3mp5ggPiBidXphbWFcIDsKK+S6uuWToSA+IGppbicnaW5cIDsKK+S4reaXpSA+IG5ha2FiaVwgOwor5pyr5byfID4gbWF0dGVpXCA7Civkurrlk4EgPiBqaW5waW5cIDsKK+S4ieaoqSA+IHNhbmtlblwgOwor6Kuu6KmiID4gc2hpanVuXCA7CivnuKbpmoogPiBqdXV0YWlcIDsKK+S4gOasoSA+IGljaGlqaVwgOwor54ax6aKoID4gbmVwcHV1XCA7CivosaHltYwgPiB6b3VnYW5cIDsKK+Wkp+mFlCA+IHRhaXN1aVwgOwor5LiK5qeYID4gdWV6YW1hXCA7CivlpKfphZIgPiBvb3pha2VcIDsKK+S6uuWRvSA+IGppbm1laVwgOwor57im6ZmjID4ganV1amluXCA7Civlq4HlvqEgPiB5b21lZ29cIDsKK+iznuS4jiA+IHNob3V5b1wgOwor5pyd5oGpID4gY2hvdW9uXCA7CivmnKzlupcgPiBob250ZW5cIDsKK+mbsumWkyA+IGt1bW9tYVwgOwor5aeL57WCID4gc2hpanV1XCA7Civoq5bos5sgPiByb25zYW5cIDsKK+abtOaUuSA+IGtvdWthaVwgOwor5pWi6ZeYID4ga2FudG91XCA7CivkurrlkJsgPiBqaW5rdW5cIDsKK+ePvuWDjyA+IGdlbnpvdVwgOwor5Lq65ZCNID4gamlubWVpXCA7CivlpK3pgJ0gPiB5b3VzZWlcIDsKK+aVo+mWiyA+IHNhbmthaVwgOwor5LuP5YW4ID4gYnV0dGVuXCA7CivkuInmpa0gPiBzYW5nb3VcIDsKK+irq+iogCA+IGthbmdlblwgOwor5Luj5Lu7ID4gZGFpbmluXCA7CivnvqjmnJsgPiBzZW5ib3VcIDsKK+ippumokyA+IHNoaWtlblwgOwor5LiW5p+EID4geW9nYXJhXCA7Civkurrlj6MgPiBqaW5rb3VcIDsKK+iqnumMsiA+IGdvcm9rdVwgOwor5piT6ICFID4gZWtpc2hhXCA7CivlpKnpgZMgPiB0ZW5kb3VcIDsKK+S6uuWPgiA+IG5pbmppblwgOwor5aSp6YGNID4gdGVucGVuXCA7CivlpKnpgYsgPiB0ZW4nJ3VuXCA7CivkuIDmqLkgPiBpY2hpanVcIDsKK+S7o+S6uiA+IGRhaW5pblwgOwor5LuK5YasID4ga29udG91XCA7CivkuIrmo58gPiBqb3V0b3VcIDsKK+Wkp+mBkyA+IGRhaWRvdVwgOwor6Zui6ZqUID4gcmlrYWt1XCA7Civku4/lg6cgPiBidXNzb3VcIDsKK+WkmumHjyA+IHRhcnlvdVwgOwor5pel6JStID4gaGlrYWdlXCA7CivogZblhbggPiBzZWl0ZW5cIDsKK+aatOawkSA+IGJvdW1pblwgOwor6Zui6Zm4ID4gcmlyaWt1XCA7CivogIHlrrMgPiByb3VnYWlcIDsKK+aWh+mBuCA+IGJ1bnNlblwgOwor5LiK5qKTID4gam91c2hpXCA7CivmnKjlt6UgPiBtb2trb3VcIDsKK+S5seWwhCA+IHJhbnNoYVwgOwor5aSp6L66ID4gdGVwcGVuXCA7Civosqzli5kgPiBzZWtpbXVcIDsKK+aWh+mBiyA+IGJ1bicndW5cIDsKK+aXheijhSA+IHJ5b3NvdVwgOwor6Kum6KazID4gdGVpa2FuXCA7CivogIHlrZAgPiByb3VzaGlcIDsKK+ixiuW5tCA+IGhvdW5lblwgOwor5aSn6L6yID4gZGFpbm91XCA7CivmlrnoqIAgPiBob3VnZW5cIDsKK+Wlj+iriyA+IHNvdXNlaVwgOwor5LiJ5qGBID4gbWlrZXRhXCA7CivmnKzls7YgPiBob250b3VcIDsKK+S4u+aIpiA+IHNodXNlblwgOwor6ICB5ayiID4gcm91am91XCA7CivogZblg48gPiBzZWl6b3VcIDsKK+S4ieagoSA+IHNhbmtvdVwgOwor5peF6KGMID4gcnlva291XCA7Civpm6PplqIgPiBuYW5rYW5cIDsKK+aWsOiqniA+IHNoaW5nb1wgOwor5aSn6LyqID4gdGFpcmluXCA7CivkuI3mnL0gPiBmdWt5dXVcIDsKK+aUvumhjCA+IGhvdWRhaVwgOwor5pys5bGxID4gaG9uemFuXCA7CivlpKnou40gPiB0ZW5ndW5cIDsKK+S4ieaemiA+IHNhbm1haVwgOwor5p2/5YmNID4gaXRhbWFlXCA7Civnj77ku6MgPiBnZW5kYWlcIDsKK+mgu+atuyA+IGhpbnNoaVwgOwor54eQ6YmxID4gcmlua291XCA7Civku4HlhYQgPiBqaW5rZWlcIDsKK+acrOWxiyA+IGhvbicneWFcIDsKK+S4jeacjSA+IGZ1ZnVrdVwgOwor6Zu76Yi0ID4gZGVucmVpXCA7CivkuInmnb8gPiBzYW5wYW5cIDsKK+mhnuacrCA+IHJ1aWhvblwgOwor5aOw6ZaAID4gc2VpbW9uXCA7Civmm5rmmKcgPiBtb3VtYWlcIDsKK+ePvuS7iiA+IGdlbmtvblwgOwor6aKo5bivID4gZnV1dGFpXCA7Civkuqvlj5cgPiBreW91anVcIDsKK+miqOW4qyA+IGZ1dXNoaVwgOwor5LuZ5Li5ID4gc2VudGFuXCA7Civkurrlh7ogPiBoaXRvZGVcIDsKK+mhnuabuCA+IHJ1aXNob1wgOwor5pys5bCKID4gaG9uem9uXCA7CivkuIrmnJ8gPiBrYW1pa2lcIDsKK+eGsemXmCA+IG5ldHRvdVwgOwor54+N5ZGzID4gY2hpbm1pXCA7Civmm7jmiL8gPiBzaG9ib3VcIDsKK+S4gOahiCA+IGljaGlhblwgOwor5LiJ5pysID4gc2FuYm9uXCA7CivppIrliIYgPiB5b3VidW5cIDsKK+acieaApyA+IHl1dXNlaVwgOwor5LiH5p2lID4gYmFucmFpXCA7CivosarlpaIgPiBnb3VzaGFcIDsKK+aUuemhjCA+IGthaWRhaVwgOwor5LiK5pu4ID4gam91c2hvXCA7CivmnKjlsZEgPiBraWt1enVcIDsKK+S7j+S8miA+IGJ1dHN1ZVwgOwor6aSo5Li7ID4ga2Fuc2h1XCA7CivkuInmm7kgPiBzYW5zb3VcIDsKK+S4ieabtCA+IHNhbmtvdVwgOwor54yu5p2vID4ga2VucGFpXCA7CivkuqHlkb0gPiBib3VtZWlcIDsKK+adseWNiiA+IHRvdWhhblwgOwor5pWF6ZqcID4ga29zaG91XCA7Civmlq3oqIAgPiBkYW5nZW5cIDsKK+WklumBiiA+IGdhaXl1dVwgOwor5pyJ5b+XID4geXV1c2hpXCA7CivmnKzlrpggPiBob25rYW5cIDsKK+eOieWxiyA+IHRhbWF5YVwgOwor5Lqk5ZCIID4ga291Z291XCA7CivmlrDopo8gPiBzaGlua2lcIDsKK+iAgeWmuyA+IHJvdXNhaVwgOwor546L5bCGID4gb3VzaG91XCA7Civku5XkuIogPiBzaGlhZ2VcIDsKK+ixquWjriA+IGdvdXNvdVwgOwor6aGY5pybID4gZ2FubW91XCA7CivniKzomasgPiBoYWNodXVcIDsKK+iBluS9kyA+IHNlaXRhaVwgOwor54yu5pysID4ga2VucG9uXCA7CivogJXlnLAgPiBrb3VjaGlcIDsKK+S4reaJiyA+IG5ha2F0ZVwgOwor5LiK5pm6ID4gam91Y2hpXCA7CivmnIDmgqogPiBzYWlha3VcIDsKK+eHkOmFuCA+IHJpbnNhblwgOwor54us5ryUID4gZG9rdWVuXCA7CivlpLHosrsgPiBzaGlwcGlcIDsKK+S6pOWPiyA+IGtvdXl1dVwgOwor6aGY5pu4ID4gZ2Fuc2hvXCA7CivmnKvlrasgPiBtYXNzb25cIDsKK+S6oeWQmyA+IGJvdWt1blwgOwor6K2m56CyID4ga2VpaG91XCA7CivmmpfmtYEgPiBhbnJ5dXVcIDsKK+iBluS8nSA+IHNlaWRlblwgOwor5pyr5a2QID4gbWFzc2hpXCA7CivkuInmma8gPiBzYW5rZWlcIDsKK+eOi+WuriA+IG91a3l1dVwgOwor5auM5auMID4gaXlhaXlhXCA7CivmlL7pm7sgPiBob3VkZW5cIDsKK+mbjOmbhCA+IHNoaXl1dVwgOwor5pyJ5b2iID4geXV1a2VpXCA7Civnv6DltZAgPiBzdWlyYW5cIDsKK+mjn+WZqCA+IHNob2traVwgOwor5aSn6LazID4gb29hc2hpXCA7CivogZbku6MgPiBzZWlkYWlcIDsKK+S6oeWPiyA+IGJvdXl1dVwgOwor576O5pyNID4gYmlmdWt1XCA7Civku4rku4ogPiBpbWFpbWFcIDsKK+S4ieaYpyA+IHNhbm1haVwgOwor5LiA5py2ID4gaWNoaWRhXCA7Civku4rkurogPiBrb25qaW5cIDsKK+iBluS6uiA+IHNlaWppblwgOwor542j5oCnID4ganV1c2VpXCA7Civpm7Lph48gPiB1bnJ5b3VcIDsKK+S4iuaXrCA+IGpvdWp1blwgOwor5aSn6LWmID4gdGFpc2hhXCA7CivkuIrml6ggPiBqb3VzaGlcIDsKK+S4gOacnSA+IGl0Y2hvdVwgOwor5aSi6LevID4geXVtZWppXCA7CivkuIDmnI0gPiBpcHB1a3VcIDsKK+Wlh+ilsiA+IGtpc2h1dVwgOwor5LiN5pW1ID4gZnV0ZWtpXCA7Civoq4foq5YgPiBkYW5yb25cIDsKK+S4oeaLsyA+IGphbmtlblwgOwor5LiK5pa5ID4gam91aG91XCA7CivnjonlrZAgPiB0YW1hZ29cIDsKK+mjr+WPsCA+IGhhbmRhaVwgOwor5pel6IiqID4gbmlra291XCA7CivmmI7ntLAgPiBtZWlzYWlcIDsKK+e+iOadnyA+IGtpc29rdVwgOwor57235qWtID4gaGlneW91XCA7CivkurrlgY8gPiBuaW5iZW5cIDsKK+Wklui8qiA+IGdhaXJpblwgOwor5aSp6LOcID4gdGVuc2hpXCA7CivkuInmlrkgPiBzYW5wb3VcIDsKK+mdkuiXjSA+IHNlaXJhblwgOwor5aSp6LOHID4gdGVuc2hpXCA7Civpn7LniakgPiBhZW1vbm9cIDsKK+S4iuaWhyA+IGpvdWJ1blwgOwor5Li75b6TID4gc2h1anV1XCA7Civmlq3oo4EgPiBkYW5zYWlcIDsKK+S6uuWAqyA+IGppbnJpblwgOwor6KuL6KiTID4gc2Vpa3VuXCA7CivnjKXmnKwgPiB3YWlob25cIDsKK+S5vuWdpCA+IGtlbmtvblwgOwor5Lmx5aOyID4gcmFuYmFpXCA7CivkuInmlocgPiBzYW5tb25cIDsKK+Wkp+izoiA+IHRhaWtlblwgOwor5LiH5pa5ID4gYmFucG91XCA7CivlpInpgbcgPiBoZW5zZW5cIDsKK+mhjOadkCA+IGRhaXphaVwgOwor5LuK5LiKID4ga2luam91XCA7CivogZbkuIogPiBzZWlqb3VcIDsKK+Wklui7iiA+IGdhaXNoYVwgOwor6Zu76YCBID4gZGVuc291XCA7CivnjoTlrasgPiBnZW5zb25cIDsKK+aUu+mYsiA+IGtvdWJvdVwgOwor5Lih5omLID4gcnlvdXRlXCA7CivkuIPml6UgPiBuYW5va2FcIDsKK+aWreihjCA+IGRhbmtvdVwgOwor5pyd5a62ID4gY2hvdWthXCA7CivlpInpgKAgPiBoZW56b3VcIDsKK+mhmOaWhyA+IGdhbm1vblwgOwor5pys5aeTID4gaG9uc2VpXCA7CivkuIDmmKggPiBpc3Nha3VcIDsKK+WlieihjCA+IGJ1Z3lvdVwgOwor6LKg5YK3ID4gZnVzaG91XCA7Civku4HkurogPiBqaW5qaW5cIDsKK+acrOWmuyA+IGhvbnNhaVwgOwor6aKo5a6zID4gZnV1Z2FpXCA7Civlq4nlpqwgPiBzaGl0dG9cIDsKK+isnee9qiA+IHNoYXphaVwgOwor54yf5pyfID4gcnlvdWtpXCA7CivkurrkvZMgPiBuaW50ZWlcIDsKK+aXpeiEmiA+IGhpYXNoaVwgOwor5paH6LGqID4gYnVuZ291XCA7CivkuIDmlrAgPiBpc3NoaW5cIDsKK+S4u+W5uSA+IHNodWthblwgOwor5pa96JasID4gc2V5YWt1XCA7Civni6zms7MgPiBkb2t1ZWlcIDsKK+aWnOimliA+IHNoYXNoaVwgOwor5aSp6K20ID4gdGVua2VuXCA7CivmlbDou5IgPiBzdXVrZW5cIDsKK+WkqeitpiA+IHRlbmtlaVwgOwor6Kq56KunID4gaGFpa2FpXCA7Civnvarmpa0gPiB6YWlnb3VcIDsKK+aUr+maiiA+IHNoaXRhaVwgOwor5pep6ICBID4gc291cm91XCA7Civpm7vou4ogPiBkZW5zaGFcIDsKK+eNo+W4ryA+IGp1dXRhaVwgOwor5LiA5pSrID4gaWtrYWt1XCA7CivkuLvluIYgPiBzaHVoYW5cIDsKK+mhnuaOqCA+IHJ1aXN1aVwgOwor5piO562UID4gbWVpdG91XCA7CivkuIrmj5AgPiBqb3V0ZWlcIDsKK+e3mummmSA+IHNlbmtvdVwgOwor5aSJ6LuiID4gaGVudGVuXCA7CivkuIDmk7IgPiBpdHRla2lcIDsKK+S4iuaOsiA+IGpvdWtlaVwgOwor5p2l5YamID4gcmFpa291XCA7CivnjJvmmpEgPiBtb3VzaG9cIDsKK+iruOiKuCA+IHNob2dlaVwgOwor5Lqh5YWEID4gYm91a2VpXCA7CivkuojlkYogPiB5b2tva3VcIDsKK+S4jeaMryA+IGZ1c2hpblwgOwor5pu45bqXID4gc2hvdGVuXCA7CivkurrkuJYgPiBqaW5zZWlcIDsKK+acrOWhgSA+IGhvbnJ1aVwgOwor6LKn5LmPID4gYmluYm91XCA7CivmnaXlhYkgPiByYWlrb3VcIDsKK+WkluizhyA+IGdhaXNoaVwgOwor54e76KO9ID4ga3Vuc2VpXCA7Civpoqjlp78gPiBmdXVzaGlcIDsKK+mboumDtyA+IHJpa3lvdVwgOwor5pys5aCCID4gaG9uZG91XCA7CivkuZ3lpI8gPiBreXV1a2FcIDsKK+mdkuiNiSA+IGFva3VzYVwgOwor6Ku46IisID4gc2hvaGFuXCA7CivlpJbosowgPiBnYWlib3VcIDsKK+aXoue/kiA+IGtpc2h1dVwgOwor5Lit5bqnID4gY2h1dXphXCA7CivniqznjL8gPiBrZW4nJ2VuXCA7CivkuLvls7AgPiBzaHVob3VcIDsKK+S4jeaJvyA+IGZ1c2hvdVwgOwor572w5p2vID4gYmFwcGFpXCA7CivpoLjmnKggPiBrdWJpa2lcIDsKK+S4ieaLnSA+IHNhbnBhaVwgOwor5aaW57K+ID4geW91c2VpXCA7CivkuZnlpJwgPiBvdHN1eWFcIDsKK+mgk+atuyA+IHRvbnNoaVwgOwor5pyJ5a6zID4geXV1Z2FpXCA7Civnv5LlrZcgPiBzaHV1amlcIDsKK+Wkp+ioiCA+IHRhaWtlaVwgOwor5pil552AID4gaGFydWdpXCA7CivkuIDmjqwgPiBpa2tpa3VcIDsKK+e3qOmaiiA+IGhlbnRhaVwgOwor5Lqt5LqtID4gdGVpdGVpXCA7CivlpKnopqcgPiB0ZW5yYW5cIDsKK+iqreiqpiA+IGRva3VqdVwgOwor6aCG5rOVID4ganVucG91XCA7CivkuqzkurogPiBrZWlqaW5cIDsKK+aVl+mAgCA+IGhhaXRhaVwgOwor54yb5pS7ID4gbW91a291XCA7CivlpKfoprMgPiB0YWlrYW5cIDsKK+S6jOWJsiA+IG5pd2FyaVwgOwor5pyo5Z6LID4ga2lnYXRhXCA7CivkuInmiY0gPiBzYW5zYWlcIDsKK+acm+WkliA+IGJvdWdhaVwgOwor5Lit5beeID4gbmFrYXN1XCA7Civnvqnlv4MgPiBnaXNoaW5cIDsKK+Wkp+imgSA+IHRhaXlvdVwgOwor5LiA5oy6ID4gaXRjaG91XCA7Civmmq7mmKUgPiBib3NodW5cIDsKK+S4u+WwjiA+IHNodWRvdVwgOwor5aiv5qW9ID4gZ29yYWt1XCA7Civkuq3kuLsgPiB0ZWlzaHVcIDsKK+S4h+aJjSA+IG1hbnphaVwgOwor5pq05pS/ID4gYm91c2VpXCA7CivoqqTorKwgPiBnb2J5dXVcIDsKK+aXp+e4gSA+IGt5dXVlblwgOwor5LqA5Y2cID4ga2lib2t1XCA7Civoqq3op6MgPiBkb2trYWlcIDsKK+S4u+WusCA+IHNodXNhaVwgOwor546L5Zu9ID4gb3Vrb2t1XCA7CivlpJroqq0gPiB0YWRva3VcIDsKK+miqOWhtSA+IGZ1dWppblwgOwor5aOr6YGTID4gc2hpZG91XCA7CivpoIzmrYwgPiBzaG91a2FcIDsKK+S6pOS7oyA+IGtvdXRhaVwgOwor5LmX5aC0ID4gbm9yaWJhXCA7CivmnbHkuIogPiB0b3Vqb3VcIDsKK+WkouimiyA+IHl1bWVtaVwgOwor5Lih5bqmID4gcnlvdWRvXCA7CivlpInosowgPiBoZW5ib3VcIDsKK+mgu+aVsCA+IGhpbnN1dVwgOwor6Kqk6KqtID4gZ29kb2t1XCA7CivkuIDmioogPiBpY2hpd2FcIDsKK+mgreabuCA+IHRvdXNob1wgOwor5pmm5riLID4ga2FpanV1XCA7CivkuI3mg5EgPiBmdXdha3VcIDsKK+ePjeS6iyA+IGNoaW5qaVwgOwor5pWX6LuNID4gaGFpZ3VuXCA7CivmnaXkvJogPiByYWlrYWlcIDsKK+S4gOaJkyA+IGljaGlkYVwgOwor5p2h5L6LID4gam91cmVpXCA7CivkuIDmiYsgPiBoaXRvdGVcIDsKK+adpeS7uyA+IHJhaW5pblwgOwor5pm65q2vID4gY2hpc2hpXCA7Civmm77lrasgPiBoaW1hZ29cIDsKK+iqpOiouiA+IGdvc2hpblwgOwor6Kqk6KizID4gZ295YWt1XCA7Civmm73lrasgPiBoaW1hZ29cIDsKK+e4pui1sCA+IGp1dXNvdVwgOwor5pys5Za2ID4gaG9uJydlaVwgOwor5pel57WMID4gbmlra2VpXCA7CivmnJfloLEgPiByb3Vob3VcIDsKK+WkmuinkiA+IHRha2FrdVwgOwor5LiH5oSfID4gYmFua2FuXCA7CivlpYjokL0gPiBuYXJha3VcIDsKK+WmqOeijSA+IGJvdWdhaVwgOwor6Kqe6Kq/ID4gZ29jaG91XCA7CivlpJzopbIgPiB5YXNodXVcIDsKK+eKoOeJmyA+IGdpZ3l1dVwgOwor6LGq5YuiID4gZ291c2VpXCA7CivkuI3mgKUgPiBmdWt5dXVcIDsKK+aXpeezuyA+IG5pa2tlaVwgOwor5pil55S7ID4gc2h1bmdhXCA7CivmnaHku7YgPiBqb3VrZW5cIDsKK+mbhemHjyA+IGdhcnlvdVwgOwor5p2h5LukID4gam91cmVpXCA7Civosarli4cgPiBnb3V5dXVcIDsKK+aVo+iyoSA+IHNhbnphaVwgOwor54aU6YqRID4geW91c2VuXCA7CivkuI3lv6AgPiBmdWNodXVcIDsKK+aXoue0hCA+IGtpeWFrdVwgOwor5aSW6KazID4gZ2Fpa2FuXCA7Civpmo/poIYgPiB6dWlqdW5cIDsKK+adpeS4liA+IHJhaXNlaVwgOwor57im6LKrID4ganV1a2FuXCA7CivkuI3lvrMgPiBmdXRva3VcIDsKK+e3kembqCA+IHJ5b2t1dVwgOwor5pys5ZOhID4gaG9uJydpblwgOwor6Zu76KuLID4gZGVuc2VpXCA7CivlpJboposgPiBzb3RvbWlcIDsKK+S4ieaAnSA+IHNhbnNoaVwgOwor5piP552hID4ga29uc3VpXCA7CivoqanpgbggPiBzaGlzZW5cIDsKK+mdoue5iyA+IG9tb2dhaVwgOwor6Zqb6ZmQID4gc2FpZ2VuXCA7CivmlrDoir0gPiBzaGlubWVcIDsKK+acieWjsCA+IHl1dXNlaVwgOwor5Lmz5YyWID4gbnl1dWthXCA7CivmlZfotbAgPiBoYWlzb3VcIDsKK+aUv+mBkyA+IHNlaWRvdVwgOwor5pWw6KmeID4gc3V1c2hpXCA7CivoqKrpn5MgPiBob3VrYW5cIDsKK+aYjuecuCA+IG1laWJvdVwgOwor6aCt5pWwID4gdG91c3V1XCA7CivmmrTmjJkgPiBib3VreW9cIDsKK+eNo+WnpiA+IGp1dWthblwgOwor6ZqU6ZuiID4ga2FrdXJpXCA7CivmnKzlkb0gPiBob25tZWlcIDsKK+mhnuW9oiA+IHJ1aWtlaVwgOwor5Lit5a2QID4gbmFrYWdvXCA7CivogIHlip8gPiByb3Vrb3VcIDsKK+abs+WtkCA+IGhpa2lrb1wgOwor5aSp6JqVID4gdGVuc2FuXCA7CivmlL7pgIEgPiBob3Vzb3VcIDsKK+WkquiZmiA+IHRhaWt5b1wgOwor5aSW6KOFID4gZ2Fpc291XCA7CivmnKzlkI0gPiBob25tZWlcIDsKK+aUuemBuCA+IGthaXNlblwgOwor5LiK5bymID4gam91Z2VuXCA7CivlpbPntaYgPiBqb2t5dXVcIDsKK+mbu+inoyA+IGRlbmthaVwgOwor5LiJ5bymID4gc2FuZ2VuXCA7Civnva7mj5sgPiBjaGlrYW5cIDsKK+iqk+ipniA+IHNlaXNoaVwgOwor5LqM5Ly4ID4gbmlzaGluXCA7CivmnIjloLEgPiBnZXBwb3VcIDsKK+acgOWkpyA+IHNhaWRhaVwgOwor54e76JK4ID4ga3Vuam91XCA7CivkupHkupEgPiB1bicnbnVuXCA7CivpmpnplpMgPiBzdWtpbWFcIDsKK+acgOWkliA+IHNhaWdhaVwgOwor5amm5b6zID4gZnV0b2t1XCA7CivmmrTmiLsgPiBib3VyZWlcIDsKK+aUuemAoCA+IGthaXpvdVwgOwor5aSn6JmOID4gb29kb3JhXCA7CivpmbXpp5UgPiByeW91Z2FcIDsKK+WjsuiytyA+IGJhaWJhaVwgOwor5pSv6YWNID4gc2hpaGFpXCA7CivkuKblrZggPiBoZWl6b25cIDsKK+S4uOWkqiA+IG1hcnV0YVwgOwor5p2R5LyaID4gc29ua2FpXCA7Civnvo7lvrMgPiBiaXRva3VcIDsKK+acquWPjiA+IG1pc2h1dVwgOwor5LiA5b+cID4gaWNoaW91XCA7CivoqaDpgLIgPiBlaXNoaW5cIDsKK+e+pOWztiA+IGd1bnRvdVwgOwor6KqT6KiAID4gc2VpZ2VuXCA7CivnvqTls7AgPiBndW5wb3VcIDsKK+acjeWcsCA+IGZ1a3VqaVwgOwor6Kyd56S8ID4gc2hhcmVpXCA7CivkuIDlv4MgPiBpc3NoaW5cIDsKK+acqOWPoiA+IGtvbXVyYVwgOwor5Lih5a62ID4gcnlvdWtlXCA7CivkuIDlvrMgPiBpdHRva3VcIDsKK+S6jOS6uiA+IGZ1dGFyaVwgOwor6ICB5YW1ID4gcm91aGVpXCA7Civni4LmsJcgPiBreW91a2lcIDsKK+S4gOW+lyA+IGl0dG9rdVwgOwor57eP6ZaAID4gc291bW9uXCA7CivogIHlhawgPiByb3Vrb3VcIDsKK+eJh+erryA+IGthdGF3YVwgOwor542E5bGLID4gZ29rdXlhXCA7CivorJvnpL4gPiBrb3VzaGFcIDsKK+S4gOW+gCA+IGljaGlvdVwgOwor6aCM5qCEID4gc2hvdWVpXCA7CivnhY7ppIUgPiBzZW5iZWlcIDsKK+S4iuW4ryA+IHV3YW9iaVwgOwor6ZuR6LiPID4gemF0dG91XCA7Civmm7Tlp4sgPiBrb3VzaGlcIDsKK+aWh+iXuyA+IGJ1bnNvdVwgOwor5LiK5bidID4gam91dGVpXCA7CivogIHlhKogPiByb3V5dXVcIDsKK+eGseizmyA+IG5lc3NhblwgOwor5pWZ6K23ID4ga3lvdWdvXCA7CivkubPlhZAgPiBueXV1amlcIDsKK+S4gOW8tSA+IGl0Y2hvdVwgOwor5LiK5be7ID4gam91a2FuXCA7CivmmrTmhaIgPiBib3VtYW5cIDsKK+S4iuW3syA+IGpvdXNoaVwgOwor576k5bGFID4gZ3Vua3lvXCA7Civnuo/ntr8gPiB0ZW5tZW5cIDsKK+WqvuWQiCA+IGtvdWdvdVwgOwor6ICB5YOnID4gcm91c291XCA7CivkuonkubEgPiBzb3VyYW5cIDsKK+eMm+aCqiA+IG1vdWFrdVwgOwor5aWP6IGeID4gc291bW9uXCA7CivlpKfolLUgPiBvb2t1cmFcIDsKK+WkieijhSA+IGhlbnNvdVwgOwor5LiH5be7ID4gbWFuZ2FuXCA7CivpoJPmmbogPiB0b25jaGlcIDsKK+eLguatjCA+IGt5b3VrYVwgOwor5pel56iLID4gbml0dGVpXCA7Civlp6bmt6sgPiBrYW4nJ2luXCA7CivkuIHluqYgPiBjaG91ZG9cIDsKK+WkqeiTiyA+IHRlbmdhaVwgOwor5pWZ6KutID4ga3lvdXl1XCA7CivnjYXlrZAgPiBzaGlzaGlcIDsKK+S4gOW6pyA+IGljaGl6YVwgOwor5Lit5aSuID4gY2h1dW91XCA7CivlpY/ogIUgPiBzb3VzaGFcIDsKK+S4geW5tCA+IHRlaW5lblwgOwor5LmX5ZCIID4gbm9yaWFpXCA7Civpn7PmqJkgPiBvbnB5b3VcIDsKK+aVo+imiyA+IHNhbmtlblwgOwor5LmX5Y+3ID4gam91Z291XCA7CivmmrTmgqogPiBib3Vha3VcIDsKK+acrOWInSA+IGhvbnNob1wgOwor6aKo5ZCRID4gZnV1a291XCA7CivoqanotqMgPiBzaGlzaHVcIDsKK+acrOWIhiA+IGhvbmJ1blwgOwor5pWR6K23ID4ga3l1dWdvXCA7CivnuKbopqcgPiBqdXVyYW5cIDsKK+S4gOW5hSA+IGlwcHVrdVwgOwor6ICQ5LmPID4gdGFpYm91XCA7CivmnI3llqogPiBmdWt1bW9cIDsKK+acqOWJoyA+IGJva2tlblwgOwor57ir6KO9ID4gaG91c2VpXCA7CivkuIDluK0gPiBpc3Nla2lcIDsKK+Wkp+iRrCA+IHRhaXNvdVwgOwor5aSn6JGXID4gdGFpY2hvXCA7Civmk6zpnakgPiBnaWtha3VcIDsKK+S4luWtkCA+IHNlaXNoaVwgOwor6KuW6ICFID4gcm9uc2hhXCA7Civoq5bogIMgPiByb25rb3VcIDsKK+mfs+alvSA+IG9uZ2FrdVwgOwor5pyX5ZCfID4gcm91Z2luXCA7Civpm6roposgPiB5dWtpbWlcIDsKK+eJqeeUoyA+IGJ1c3NhblwgOwor5Lmx5YCrID4gcmFucmluXCA7Civpm7LooaggPiB1bnB5b3VcIDsKK+eJm+eariA+IGd5dXVoaVwgOwor5LiK5bGkID4gam91c291XCA7Civpm6PoqJMgPiBuYW5rdW5cIDsKK+S5s+S+oSA+IG55dXVrYVwgOwor5LiN5a+pID4gZnVzaGluXCA7Civnv7vlgJIgPiBob250b3VcIDsKK+iAgeS9kyA+IHJvdXRhaVwgOwor6Zm46ZuiID4gcmlrdXJpXCA7Civmk6HpoK0gPiB0YWl0b3VcIDsKK+Wlh+e/kiA+IGtpc2h1dVwgOwor6Zuj6KejID4gbmFua2FpXCA7Civmlq3nvaogPiBkYW56YWlcIDsKK+iok+mbuyA+IGt1bmRlblwgOwor54mi55WqID4gcm91YmFuXCA7CivmmYLmtYEgPiBqaXJ5dXVcIDsKK+aWrOe9qiA+IHphbnphaVwgOwor5peF57GgID4gaGF0YWdvXCA7CivmlaLooYwgPiBrYW5rb3VcIDsKK+i1pOOAhSA+IGFrYWFrYVwgOwor5pm05pyXID4gc2Vpcm91XCA7CivkuInlsIEgPiBzYW5wdXVcIDsKK+eGseiqoCA+IG5lc3NlaVwgOwor5LiJ5a+4ID4gc2FuenVuXCA7CivkuI3lraYgPiBmdWdha3VcIDsKK+S4h+WwiyA+IGJhbmppblwgOwor6ICB5Lq6ID4gcm91amluXCA7CivnjLblrZAgPiB5dXVzaGlcIDsKK+aZtOabhyA+IHNlaWRvblwgOwor5LiK5a6YID4gam91a2FuXCA7CivkuInlrp0gPiBzYW5wb3VcIDsKK+miqOWJjSA+IGZ1dXplblwgOwor6Zmj6aKoID4gamlucHV1XCA7CivnjoTlhqwgPiBnZW50b3VcIDsKK+mbhuiyqCA+IHNodXVrYVwgOwor546H5YWIID4gc29zc2VuXCA7CivpoqjliLogPiBmdXVzaGlcIDsKK+map+mBkyA+IHN1aWRvdVwgOwor5aOu6KazID4gc291a2FuXCA7CivmnIDlloQgPiBzYWl6ZW5cIDsKK+e9quaCqiA+IHphaWFrdVwgOwor5LiH5a6dID4gYmFucG91XCA7CivmmpbmiL8gPiBkYW5ib3VcIDsKK+aVrOiZlCA+IGtlaWtlblwgOwor6Zqj6YKmID4gcmlucG91XCA7CivkubHkuqQgPiByYW5rb3VcIDsKK+iAgeS4rSA+IHJvdWp1dVwgOwor5pys5L+4ID4gaG9ucG91XCA7CivlpbPnpZ4gPiBtZWdhbWlcIDsKK+eKrOatryA+IGtlbnNoaVwgOwor6Z2S562LID4gYW9zdWppXCA7Civoq7jnqK4gPiBzaG9zaHVcIDsKK+mZo+mgrSA+IGppbnRvdVwgOwor6aC95buDID4gdGFpaGFpXCA7CivmnInlkI0gPiB5dXVtZWlcIDsKK+aci+WPiyA+IGhvdXl1dVwgOwor5paH6Iq4ID4gYnVuZ2VpXCA7CivpmbDpmb0gPiBvbicneW91XCA7CivmnInlj7ggPiB5dXVzaGlcIDsKK+acieWPsiA+IHl1dXNoaVwgOwor6Kmz6KiYID4gc2hvdWtpXCA7CivkuIHlr6cgPiB0ZWluZWlcIDsKK+S4gOWwhiA+IGlzc2hvdVwgOwor5LiA5a++ID4gaXR0c3VpXCA7Civnvqnlob4gPiBnaWp1a3VcIDsKK+S4gOWvuCA+IGNob3R0b1wgOwor5aSn6Ii5ID4gb29idW5lXCA7CivpnZLnq7kgPiBhb2Rha2VcIDsKK+S4gOWvqSA+IGlzc2hpblwgOwor6Z2p56ClID4ga2F3YXRvXCA7Civpm5HoqowgPiB6YXNzaGlcIDsKK+eJh+ecvCA+IGthdGFtZVwgOwor5pat57eaID4gZGFuc2VuXCA7CivkubHkuJYgPiByYW5zZWlcIDsKK+eGn+itsCA+IGp1a3VnaVwgOwor5LiW5aSJID4gc2VpaGVuXCA7CivmnKzkvZMgPiBob250YWlcIDsKK+miqOWFiSA+IGZ1dWtvdVwgOwor5Li75ZG9ID4gc2h1bWVpXCA7CivpmqDpgLggPiBpbml0c3VcIDsKK+Wkp+iHoyA+IGRhaWppblwgOwor576O5a2mID4gYmlnYWt1XCA7CivkuIDlrpcgPiBpc3NodXVcIDsKK+ipqeirliA+IHNoaXJvblwgOwor54mH55uuID4ga2F0YW1lXCA7CivmlL/oq5YgPiBzZWlyb25cIDsKK+S4geWtkCA+IGNob3VqaVwgOwor546H5YCSID4gc290dG91XCA7CivmnI3li5kgPiBmdWt1bXVcIDsKK+mdkuepuiA+IGFvem9yYVwgOwor5pS/6KuHID4gc2VpZGFuXCA7CivmnInljYogPiB5dXVoYW5cIDsKK+S4gOWtlyA+IGljaGlqaVwgOwor6ZuR6KiAID4gem91Z29uXCA7CivnuYvoiLkgPiBrZWlzZW5cIDsKK+acrOS7tiA+IGhvbmtlblwgOwor5pS+6KuHID4gaG91ZGFuXCA7CivkuLvlkJsgPiBzaHVrdW5cIDsKK+S4uOWRsyA+IG1hcnVtaVwgOwor5pys5LujID4gaG9uZGFpXCA7CivlpKfohb8gPiBkYWl0YWlcIDsKK+ippuirliA+IHNoaXJvblwgOwor5pmp5pmvID4gYmFua2VpXCA7CivkuIvlp5MgPiBnZXNob3VcIDsKK+WjruihjCA+IHNvdWtvdVwgOwor5aaZ546LID4gbXlvdW91XCA7CivlpKfohLMgPiBkYWlub3VcIDsKK+aXheeoiyA+IHJ5b3RlaVwgOwor5aWJ57SNID4gaG91bm91XCA7Civnhp/oqp4gPiBqdWt1Z29cIDsKK+mciuiKnSA+IHJlaXNoaVwgOwor5pyJ5Yq5ID4geXV1a291XCA7Civni5nmkoMgPiBzb2dla2lcIDsKK+acieWKnyA+IHl1dWtvdVwgOwor54y25aSqID4geXVkYXlhXCA7CivlpJzoiLkgPiB5b2Z1bmVcIDsKK+acquS6hiA+IG1pcnlvdVwgOwor5aeT5rCPID4gc2Vpc2hpXCA7CivkuIrlpY8gPiBqb3Vzb3VcIDsKK+aUvuiogCA+IGhvdWdlblwgOwor5aSn6IOGID4gZGFpdGFuXCA7CivkuIrlpKkgPiBqb3V0ZW5cIDsKK+aXqeeUoyA+IHNvdXphblwgOwor5aSn6IKhID4gb29tYXRhXCA7CivmnIDljZcgPiBzYWluYW5cIDsKK+WkqeiBniA+IHRlbmJ1blwgOwor6Ki06L+9ID4gc290c3VpXCA7CivnjJvlsIQgPiBtb3VzaGFcIDsKK+ipoOiqpiA+IGVpc2hvdVwgOwor5pmm5pelID4gbWlzb2thXCA7Civnua3ns7ggPiBrZW5zaGlcIDsKK+aUv+imiyA+IHNlaWtlblwgOwor54yf5a2jID4gcnlvdWtpXCA7CivlpoTnlKggPiBib3V5b3VcIDsKK+abueWPuCA+IHNvdXNoaVwgOwor6KiY6YyyID4ga2lyb2t1XCA7Civmm7jlkI0gPiBzaG9tZWlcIDsKK+Wkp+iBliA+IHRhaXNlaVwgOwor5pyI5YiKID4gZ2Vra2FuXCA7CivkuIflpKkgPiBiYW50ZW5cIDsKK+S4ieWjqyA+IHNhbnNoaVwgOwor5Lit5ZKMID4gY2h1dXdhXCA7CivkuLvli5UgPiBzaHVkb3VcIDsKK+aUueiogiA+IGthaXRlaVwgOwor5Lit5ZGzID4gbmFrYW1pXCA7Civml6XnlKMgPiBuaXNzYW5cIDsKK+mdouebuCA+IG1lbnNvdVwgOwor576O5aaZID4gYmlteW91XCA7CivoqZXorbAgPiBoeW91Z2lcIDsKK+aWnOe3miA+IHNoYXNlblwgOwor5aSn6ICBID4gdGFpcm91XCA7CivmnIvlhZogPiBob3V0b3VcIDsKK+miqOS9kyA+IGZ1dXRlaVwgOwor54md54mbID4gbWV1c2hpXCA7CivlopfphY0gPiB6b3VoYWlcIDsKK+mdoueasCA+IG1lbmJvdVwgOwor5LmD5YWsID4gbmFpa291XCA7CivpmaPploAgPiBqaW5tb25cIDsKK+aYgueEtiA+IGtvdXplblwgOwor5LiA5aWzID4gaWNoaWpvXCA7CivkuIrloLQgPiBqb3Vqb3VcIDsKK+mZjemghiA+IGtvdWp1blwgOwor5aSn576kID4gdGFpZ3VuXCA7CivpmaLplbcgPiBpbmNob3VcIDsKK+S4reWPpSA+IGNodXVrdVwgOwor5LiJ5aGBID4gc2FucnVpXCA7CivmnIDliY0gPiBzYWl6ZW5cIDsKK+mau+iqniA+IHNla2lnb1wgOwor5puH5aSpID4gZG9udGVuXCA7CivmnIjlhYkgPiBnZWtrb3VcIDsKK+isneeKtiA+IHNoYWpvdVwgOwor6ZyK6IO9ID4gcmVpbm91XCA7CivkuLvliJEgPiBzaHVrZWlcIDsKK+e2mumWiyA+IHpva2thaVwgOwor5ae75pePID4gaW56b2t1XCA7CivkuLnliY0gPiB0YW56ZW5cIDsKK+WlieetlCA+IGhvdXRvdVwgOwor5Li45YmkID4gZ2FuemFpXCA7CivlpKfnvaogPiBkYWl6YWlcIDsKK+S4gOWkoiA+IGljaGltdVwgOwor5pyA5YidID4gc2Fpc2hvXCA7CivkuIDlpJwgPiBoaXRveW9cIDsKK+S4gOWklSA+IGlzc2VraVwgOwor5LiH5aC0ID4gbWFuam91XCA7Civoq7jnm7ggPiBzaG9zb3VcIDsKK+mhnuWeiyA+IHJ1aWtlaVwgOwor5aWH562WID4ga2lzYWt1XCA7CivoqZXoqp4gPiBoeW91Z29cIDsKK+WpmuWnuyA+IGtvbicnaW5cIDsKK+S4juWcpyA+IHlvYXRzdVwgOwor54aU6KejID4geW91a2FpXCA7Civop6PpoYwgPiBrYWlkYWlcIDsKK+WkmuiCiSA+IHRhbmlrdVwgOwor5LiO5Zu9ID4geW9rb2t1XCA7CivmlLnoo4UgPiBrYWlzb3VcIDsKK+ippuihjCA+IHNoaWtvdVwgOwor5pqX5bmVID4gYW5tYWt1XCA7CivpmobpgYsgPiByeXV1dW5cIDsKK+aXi+ebpCA+IHNlbmJhblwgOwor6ZmN6ZycID4ga291c291XCA7Civoqpjoh7QgPiB5dXVjaGlcIDsKK+aaluW4ryA+IGRhbnRhaVwgOwor5LiL5Zu9ID4gZ2Vrb2t1XCA7CivmmqvlrpogPiB6YW50ZWlcIDsKK+aZuuaFriA+IGNoaXJ5b1wgOwor6K2m5qOSID4ga2VpYm91XCA7Civmlq3nqK4gPiBkYW5zaHVcIDsKK+eLrOW+gCA+IGRva3VvdVwgOwor6Z+c5pmmID4gdG91a2FpXCA7CivmmYvmm7ggPiBzaGluam9cIDsKK+eMn+WlhyA+IHJ5b3VraVwgOwor5LiJ5ZuyID4gbWl0c3VpXCA7CivlpJbogZ4gPiBnYWlidW5cIDsKK+S4ieWbniA+IHNhbmthaVwgOwor5pyI5L+4ID4gZ2VwcG91XCA7CivnibnmtL4gPiB0b2t1aGFcIDsKK+S4u+WCrCA+IHNodXNhaVwgOwor5Li75YKYID4gc2h1c2FuXCA7Civpm4HooYwgPiBnYW5rb3VcIDsKK+Wkqee2siA+IHRlbm1vdVwgOwor6Zm26YWUID4gdG91c3VpXCA7Civmm7jlhpkgPiBzaG9zaGFcIDsKK+aWkee0iyA+IGhhbm1vblwgOwor6aGV5ZyoID4ga2VuemFpXCA7CivmnInkvZMgPiB5dXV0YWlcIDsKK+Wkp+e2sSA+IHRhaWtvdVwgOwor5aem5pm6ID4ga2FuY2hpXCA7Civnho/oo70gPiBrdW5zZWlcIDsKK+eNhOWQjyA+IGdva3VyaVwgOwor54us5bqnID4gZG9rdXphXCA7Civnt6nop6MgPiBrYW5rYWlcIDsKK+S4ieWYhiA+IHNhbnRhblwgOwor5aWJ56WAID4gaG91c2hpXCA7CivkuIDlm70gPiBpa2tva3VcIDsKK+WovOWutiA+IHNob3VrYVwgOwor5pmD5pucID4ga291eW91XCA7CivnjJ/loLQgPiByeW91YmFcIDsKK+mgmOW4gyA+IHJ5b3VmdVwgOwor54mH54mHID4gaGVucGVuXCA7CivkuIDlm6AgPiBpY2hpaW5cIDsKK+mcp+esmyA+IG11dGVraVwgOwor6Zm46YGLID4gcmlrdXVuXCA7CivmnInkurogPiB5dXVqaW5cIDsKK+eEoemXhyA+IG11eWFtaVwgOwor5pmp5oiQID4gYmFuc2VpXCA7Civpm4TonIIgPiBvYmFjaGlcIDsKK+mYsumiqCA+IGJvdWZ1dVwgOwor6Kmp6Je7ID4gc2hpc291XCA7CivlpKfns7sgPiB0YWlrZWlcIDsKK+e1uembsiA+IGtlbicndW5cIDsKK+eFruixhiA+IG5pbWFtZVwgOwor54aU6J6NID4geW91eXV1XCA7CivkuLvkvZMgPiBzaHV0YWlcIDsKK+iok+mAoyA+IGt1bnJlblwgOwor5LiH5ZaEID4gbWFuemVuXCA7CivlpKnnsZ8gPiB0ZW5yYWlcIDsKK+aWh+ezuyA+IGJ1bmtlaVwgOwor5pyA5L2OID4gc2FpdGVpXCA7CivnuYvntK8gPiBrZWlydWlcIDsKK+iqree1jCA+IGRva3lvdVwgOwor57mK57SwID4gc2Vuc2FpXCA7Civmlr3nmYIgPiBzZXJ5b3VcIDsKK+S4u+S7uyA+IHNodW5pblwgOwor5pWs6ICBID4ga2Vpcm91XCA7CivpoIblvZMgPiBqdW50b3VcIDsKK+mZvei7oiA+IHlvdXRlblwgOwor5Lih5YiDID4gcnlvdWJhXCA7CivntZ7pppYgPiBrb3VzaHVcIDsKK+aXpeeEvCA+IGhpeWFrZVwgOwor5LiK5ZOBID4gam91Ym9uXCA7CivmlL7olakgPiBob3V0b3VcIDsKK+S4u+S6uiA+IHNodWppblwgOwor6aGr5YuVID4gc2VuZG91XCA7Civpm4TomIIgPiB5dXV6dWlcIDsKK+mYu+malCA+IHNva2FrdVwgOwor6Zuj6Ii5ID4gbmFuc2VuXCA7CivpmobotbcgPiByeXV1a2lcIDsKK+mghuW7tiA+IGp1bicnZW5cIDsKK+mbo+iIqiA+IG5hbmtvdVwgOwor5ai85ammID4gc2hvdWZ1XCA7Civlp5Tmm7IgPiBpa3lva3VcIDsKK+S4reWApCA+IG5ha2FuZVwgOwor5aWH55+vID4ga2lreW91XCA7Civnt6nooYwgPiBrYW5rb3VcIDsKK+Wklue3miA+IGdhaXNlblwgOwor5ae75oiaID4gaW5zZWtpXCA7CivmmK3moIQgPiBzaG91ZWlcIDsKK+mhnuWQjCA+IHJ1aWRvdVwgOwor6Kqm57WMID4genVreW91XCA7Civml6nngKwgPiBoYXlhc2VcIDsKK+ipnuiXuyA+IHNoaXNvdVwgOwor5pu45L2TID4gc2hvdGFpXCA7CivkuK3kv50gPiBjaHV1aG9cIDsKK+e3kuirliA+IGNob3JvblwgOwor5LiK5ZCRID4gam91a291XCA7CivoqLvoqJggPiBjaHV1a2lcIDsKK+S4u+S4iiA+IHNodWpvdVwgOwor5pyA5LitID4gbW9uYWthXCA7CivkuIrlj7ggPiBqb3VzaGlcIDsKK+Wnv+aFiyA+IHNoaXRhaVwgOwor6ZuR6I+MID4gemFra2luXCA7Civmlofnr4QgPiBidW5wYW5cIDsKK+aWsOebhiA+IG5paWJvblwgOwor5aKX6LOHID4gem91c2hpXCA7Civpm4TolYogPiB5dXV6dWlcIDsKK+acgOS4iiA+IG1vZ2FtaVwgOwor5aSn562LID4gb29zdWppXCA7CivlqpLkvZMgPiBiYWl0YWlcIDsKK+eIhuegtCA+IGJha3VoYVwgOwor57eP6KuWID4gc291cm9uXCA7CivkuIDlk6EgPiBpY2hpaW5cIDsKK+WkqeerpSA+IHRlbmRvdVwgOwor54yu5ZGIID4ga2VudGVpXCA7Civni6zlsYUgPiBkb2treW9cIDsKK+WovOWmkyA+IHNob3VnaVwgOwor54m55qipID4gdG9ra2VuXCA7CivoqLPoqp4gPiB5YWt1Z29cIDsKK+Wklue0mSA+IGdhaXNoaVwgOwor5Lit5L2QID4gY2h1dXNhXCA7CivkuIflj6MgPiBiYW5rb3VcIDsKK+mbkeiNiSA+IHphc3NvdVwgOwor5LiK5Y2KID4gam91aGFuXCA7Civpmbjot68gPiByaWt1cm9cIDsKK+WqkuS7iyA+IGJhaWthaVwgOwor5aSp56m6ID4gdGVua3V1XCA7Civnt5LoqIAgPiBjaG9nZW5cIDsKK+abtOS7oyA+IGtvdXRhaVwgOwor6Ki06KifID4gc29zaG91XCA7CivpnIDntaYgPiBqdWt5dXVcIDsKK+mgreWjsCA+IHRvdXNlaVwgOwor5LiJ5Y2DID4gc2FuemVuXCA7CivkuInljYEgPiBzYW5qdXVcIDsKK+aUueiRrCA+IGthaXNvdVwgOwor5LiO5YqbID4geW9yaWtpXCA7CivntYzpqJMgPiBrZWlrZW5cIDsKK+aXqea8jyA+IHNvdXJvdVwgOwor6Zu757eaID4gZGVuc2VuXCA7CivlpKfnqbogPiBvb3pvcmFcIDsKK+WkluexsyA+IGdhaW1haVwgOwor57eP6KiIID4gc291a2VpXCA7CivkuIfljYMgPiBiYW5zZW5cIDsKK+WkqeeonyA+IHRlbnBpblwgOwor6Kiz6KejID4geWFra2FpXCA7CivnuYHnsKEgPiBoYW5rYW5cIDsKK+S4reS6jCA+IGNodXVuaVwgOwor5aWH55mWID4ga2loZWtpXCA7CivmlY/ohZUgPiBiaW53YW5cIDsKK+WkqeenpCA+IHRlbmJpblwgOwor57Si6bq6ID4gc291bWVuXCA7Civnt4/opqcgPiBzb3VyYW5cIDsKK+e+pOWDjyA+IGd1bnpvdVwgOwor57eP6KaLID4gc291a2VuXCA7CivntKDpurogPiBzb3VtZW5cIDsKK+abmeWFiSA+IHNob2tvdVwgOwor5pWX6ICFID4gaGFpc2hhXCA7Civlpa7nhLYgPiBmdW56ZW5cIDsKK+S4h+WKqyA+IG1hbmdvdVwgOwor5LiK5YmNID4gdXdhbWFlXCA7CivoqK3oqIggPiBzZWtrZWlcIDsKK+aWr+eVjCA+IHNoaWthaVwgOwor5paw55SrID4gc2hpbnBvXCA7Civpm4bojbcgPiBzaHV1a2FcIDsKK+mZhOmMsiA+IGZ1cm9rdVwgOwor5pWZ576pID4ga3lvdWdpXCA7Civpm4zoirEgPiBtZWJhbmFcIDsKK+Wlh+eXhSA+IGtpYnlvdVwgOwor5pm05bWQID4gc2VpcmFuXCA7CivpnZLniakgPiBhb21vbm9cIDsKK+eJouatuyA+IHJvdXNoaVwgOwor54q25oWLID4gam91dGFpXCA7CivlpKnnpZ4gPiB0ZW5qaW5cIDsKK+eEtui/hCA+IHNhbWFkZVwgOwor6aGM5ZCNID4gZGFpbWVpXCA7CivkuIDljYcgPiBpc3Nob3VcIDsKK+Wlvea8oiA+IGtvdWthblwgOwor5LiA5Yy5ID4gaXBwaWtpXCA7CivpoYzlj7cgPiBkYWlnb3VcIDsKK+Wkp+elrSA+IHRhaXNhaVwgOwor5LiJ5YiGID4gc2FucHVuXCA7CivnvqnkvqAgPiBnaWt5b3VcIDsKK+eGj+iSuCA+IGt1bmpvdVwgOwor6Zu257SwID4gcmVpc2FpXCA7CivlpKfnpL4gPiB0YWlzaGFcIDsKK+Wkp+ekvCA+IHRhaXJlaVwgOwor6KqT57SZID4gc2Vpc2hpXCA7Civnt4/oo48gPiBzb3V1cmFcIDsKK+eJqeaoqSA+IGJ1a2tlblwgOwor5aSc56m6ID4geW96b3JhXCA7CivkuIDli50gPiBpc3Nob3VcIDsKK+WjruiAhSA+IHNvdXNoYVwgOwor57eP6KOBID4gc291c2FpXCA7CivnhKHph48gPiBtdXJ5b3VcIDsKK+S4ieWGrCA+IHNhbnRvdVwgOwor5LiA5YqpID4gaWNoaWpvXCA7Civpm4DojZggPiBqYW5zb3VcIDsKK+e3iuikjCA+IGtpbmtvblwgOwor5LiW5L+XID4gc2V6b2t1XCA7CivpoL3llJAgPiB0YWl0b3VcIDsKK+e4pue3miA+IGp1dXNlblwgOwor54mb5q2pID4gZ3l1dWhvXCA7CivkuIflhoYgPiBtYW4nJ2VuXCA7CivlopfoqIIgPiB6b3V0ZWlcIDsKK+mghuWuiCA+IGp1bnNodVwgOwor5LiH5YWoID4gbWFuemVuXCA7CivkuIDliLsgPiBpa2tva3VcIDsKK+aXp+a0viA+IGt5dXVoYVwgOwor576F5YyXID4gcmFob2t1XCA7Civpm6rnt5ogPiBzZXNzZW5cIDsKK+e+pOS9kyA+IGd1bnRhaVwgOwor5LiL5YOaID4ga2FyeW91XCA7CivntLDprZogPiBzYXlvcmlcIDsKK+S4i+WDlSA+IGdlYm9rdVwgOwor5LiA5YipID4gaWNoaXJpXCA7CivlpKfnoLIgPiB0YWlob3VcIDsKK+aatOWQmyA+IGJvdWt1blwgOwor5pen5rOiID4ga3l1dWhhXCA7CivmlbDnrYkgPiBzdXV0b3VcIDsKK+Wls+a7nSA+IG1lZGFraVwgOwor5LiW5LydID4gc2VpZGVuXCA7CivorabmiYsgPiBrZWlzaHVcIDsKK+maj+ihjCA+IHp1aWtvdVwgOwor5pON6LuKID4gc291c2hhXCA7CivlpoLms5UgPiBueW9ob3VcIDsKK+S4juS/oSA+IHlvc2hpblwgOwor6KiY6KqmID4ga2lzaG91XCA7Civpm7fnrqEgPiByYWlrYW5cIDsKK+WkmuelpSA+IHRhc2hvdVwgOwor5LiA5YaGID4gaWNoaWVuXCA7CivkuIDlhbcgPiBpY2hpZ3VcIDsKK+S4jeS/oSA+IGZ1c2hpblwgOwor57eo6JGXID4gaGVuY2hvXCA7CivorabmiJIgPiBrZWlrYWlcIDsKK+WhiumJsSA+IGthaWtvdVwgOwor54ib54ibID4gcmFucmFuXCA7CivmmpblnLAgPiBkYW5jaGlcIDsKK+e2uOiogCA+IHJpbmdlblwgOwor5pS+6IOGID4gaG91dGFuXCA7CivoqJPoq60gPiBrdW4nJ3l1XCA7Civmm6DkuJYgPiBrb3VzZWlcIDsKK+WkqeecvCA+IHRlbmdhblwgOwor6Kqt56C0ID4gZG9rdWhhXCA7CivkuInlgI0gPiBzYW5iYWlcIDsKK+mhm+WAkiA+IHRlbnRvdVwgOwor5peB54K5ID4gYm91dGVuXCA7CivoqanogZYgPiBzaGlzZWlcIDsKK+eMm+WLhyA+IG1vdXl1dVwgOwor5pS+6IKGID4gaG91c2hpXCA7CivlpYnnjK4gPiBob3VrZW5cIDsKK+S4gOWEgCA+IGljaGlnaVwgOwor57aZ6LWwID4ga2Vpc291XCA7Civml6XmsLggPiBoaW5hZ2FcIDsKK+mhnuS+iyA+IHJ1aXJlaVwgOwor6KiT6KqhID4ga3Vua2FpXCA7CivkuI3kvZwgPiBmdXNha3VcIDsKK+iogOizqiA+IGdlbmNoaVwgOwor6Ky55pu4ID4ga2luc2hvXCA7CivnvbLlkI0gPiBzaG9tZWlcIDsKK+aYjuaclyA+IG1laXJvdVwgOwor5LiK5L6LID4gam91cmVpXCA7Civpl5jpto8gPiB0b3VrZWlcIDsKK+WkqeebgyA+IHRlbnBhaVwgOwor5LiK5L2/ID4gam91c2hpXCA7CivmmJTmmYIgPiBzZWtpamlcIDsKK+aatOWLlSA+IGJvdWRvdVwgOwor5aCk6ZiyID4gdGVpYm91XCA7CivoqI7oq5YgPiB0b3Vyb25cIDsKK+aXpeavjiA+IGhpZ290b1wgOwor5LiK5L2TID4gam91dGFpXCA7CivkuI3ku7IgPiBmdW5ha2FcIDsKK+iqsuebriA+IGthbW9rdVwgOwor5aSn55uDID4gdGFpaGFpXCA7CivlpKfnmr8gPiBvb3phcmFcIDsKK+S4ieS9kyA+IHNhbnRhaVwgOwor5paH55uyID4gbW9ubW91XCA7CivnhrHnt5ogPiBuZXNzZW5cIDsKK+mgveWLoiA+IHRhaXNlaVwgOwor54af6ICDID4ganVra291XCA7CivlpInnqK4gPiBoZW5zaHVcIDsKK+aWreeJhyA+IGRhbnBlblwgOwor54yf5YW3ID4gcnlvdWd1XCA7Civmn5DjgIUgPiBib3Vib3VcIDsKK+Wik+ihqCA+IGJvaHlvdVwgOwor6KiT6KejID4ga3Vua2FpXCA7CivmmLXmh4cgPiBqaWtrb25cIDsKK+Wls+a1gSA+IGpvcnl1dVwgOwor6Z+z5a65ID4gb24nJ3lvdVwgOwor6ZmN6LuKID4ga291c2hhXCA7CivpnIrnn6UgPiByZWljaGlcIDsKK+WjsOe0iyA+IHNlaW1vblwgOwor5LiK5LujID4gam91ZGFpXCA7CivlpYfnibkgPiBraWRva3VcIDsKK+mgmOWcnyA+IHJ5b3Vkb1wgOwor576O5L+XID4gYml6b2t1XCA7CivpoIblpYkgPiBqdW5wb3VcIDsKK+aYk+aWrSA+IGVraWRhblwgOwor5LiJ5LujID4gc2FuZGFpXCA7CivkuIDkv7UgPiBpcHB5b3VcIDsKK+e2seimgSA+IGtvdXlvdVwgOwor5pS+572uID4gaG91Y2hpXCA7Civpl4fpu5IgPiBhbmtva3VcIDsKK+S4jeS5mSA+IGZ1aXRzdVwgOwor54yu5L2TID4ga2VudGFpXCA7CivnvarlkI0gPiB6YWltZWlcIDsKK+aYj+aYjyA+IGtvbmtvblwgOwor6ZuR57qCID4gemFzc2FuXCA7CivlppnmoYggPiBteW91YW5cIDsKK+Wls+azoiA+IG1lbmFtaVwgOwor5piO5piOID4gYWthYWthXCA7CivkuIfku54gPiBiYW5qaW5cIDsKK+mbouexjSA+IHJpc2VraVwgOwor5LiN5LiAID4gZnVpdHN1XCA7CivmlpnnkIYgPiByeW91cmlcIDsKK+S4iuS5lyA+IGpvdWpvdVwgOwor5pqX5ZSxID4gYW5zaG91XCA7CivkuInkuZcgPiBzYW5qb3VcIDsKK+aYjuaWrSA+IG1laWRhblwgOwor57S66Z2SID4ga29uam91XCA7CivmlaznpLwgPiBrZWlyZWlcIDsKK+mbt+elniA+IHJhaWppblwgOwor6Zm26KO9ID4gdG91c2VpXCA7CivkuIrkuJYgPiBqb3VzZWlcIDsKK+S4iuS4iiA+IGpvdWpvdVwgOwor5piO5paHID4gbWVpYnVuXCA7CivmmbTlpKkgPiBzZWl0ZW5cIDsKK+S4h+S5lyA+IGJhbmpvdVwgOwor6Kq/55CGID4gY2hvdXJpXCA7Civmlq3nhLYgPiBkYW56ZW5cIDsKK+WkqeeUoyA+IHRlbnNhblwgOwor5aSp55SfID4gdGVuc2VpXCA7CivmmanlqZogPiBiYW5rb25cIDsKK+aYjuaVjyA+IG1laWJpblwgOwor6aGY5Li7ID4gZ2Fuc2h1XCA7CivniYjmqKkgPiBoYW5rZW5cIDsKK+eDiOmiqCA+IHJlcHB1dVwgOwor57WE6ZajID4gc29rYWt1XCA7CivkuIfkuIggPiBiYW5qb3VcIDsKK+S4h+S4hyA+IG1hbm1hblwgOwor6KiA6KuWID4gZ2Vucm9uXCA7CivpmbjooYwgPiByaWtrb3VcIDsKK+Wkp+eUnyA+IGRhaXNlaVwgOwor6ZuA576FID4gamFrdXJhXCA7CivkuIHkuqUgPiB0ZWlnYWlcIDsKK+itsOW4rSA+IGdpc2VraVwgOwor576O5LqLID4gbWlnb3RvXCA7Civlp5Hmga8gPiBrb3Nva3VcIDsKK+e5geebmyA+IGhhbmpvdVwgOwor5LiA5Lq6ID4gaGl0b3JpXCA7CivmlL7nuKYgPiBob3VqdXVcIDsKK+irlueCuSA+IHJvbnRlblwgOwor6Kmp57eoID4gc2hpaGVuXCA7CivnjK7kuIogPiBrZW5qb3VcIDsKK+aXpeanmCA+IGhpc2FtYVwgOwor6Zmq6KazID4gYmFpa2FuXCA7CivkuIDkuowgPiBpY2hpbmlcIDsKK+S4gOS6iyA+IGljaGlqaVwgOwor57Sg6aaWID4gc29rdWJpXCA7CivniJvmvKsgPiByYW5tYW5cIDsKK+mXmOmtgiA+IHRvdWtvblwgOwor54m55o6qID4gdG9rdXNvXCA7CivmlL/ntrEgPiBzZWlrb3VcIDsKK+ippue3tCA+IHNoaXJlblwgOwor6KqH56ewID4ga29zaG91XCA7CivlpYnnga8gPiBob3V0b3VcIDsKK+iogOiosyA+IGlpd2FrZVwgOwor5Z+56aSKID4gYmFpeW91XCA7CivmlK/nvbIgPiBzaGlzaG9cIDsKK+S4geS4gSA+IHRvdXRvdVwgOwor6Ku45rCPID4gc2hvc2hpXCA7CivoqIDoqIAgPiBnZW5nZW5cIDsKK+S4gOS4gSA+IGl0Y2hvdVwgOwor57eP6I+cID4gc291emFpXCA7CivmlL/ntYwgPiBzZWlrZWlcIDsKK+WkmueXhSA+IHRhYnlvdVwgOwor6Zu256CVID4gcmVpc2FpXCA7CivmkqTpgIAgPiB0ZXR0YWlcIDsKK+imi+mggyA+IG1pZ29yb1wgOwor5pS557eoID4ga2FpaGVuXCA7CivnhKHos4MgPiBtdWNoaW5cIDsKK+ioiOijhSA+IGtlaXNvdVwgOwor6ZuE57eoID4geXV1aGVuXCA7CivmlZnnp5EgPiBreW91a2FcIDsKK+e2nOimpyA+IHNvdXJhblwgOwor6ZyK55WMID4gcmVpa2FpXCA7CivmmbrlmqIgPiBjaGlub3VcIDsKK+e4gee1hCA+IGVuZ3VtaVwgOwor5aSa55SfID4gdGFzaG91XCA7CivorJvmm7ggPiBrb3VzaG9cIDsKK+e0q+mbuyA+IHNoaWRlblwgOwor6Z2Z5q2iID4gc2Vpc2hpXCA7CivnibnmioAgPiB0b2t1Z2lcIDsKK+eLrOWSjCA+IGRva3V3YVwgOwor5pWZ56WWID4ga3lvdXNvXCA7CivmlZnnpLogPiBreW91amlcIDsKK+WghemZoyA+IGtlbmppblwgOwor6KqN55+lID4gbmluY2hpXCA7Civni4LlpbMgPiBreW91am9cIDsKK+WklueUqCA+IGdhaXlvdVwgOwor54mp5pCNID4gYnVzc29uXCA7CivopoHpoIUgPiB5b3Vrb3VcIDsKK+imgemggiA+IHlvdWtvdVwgOwor54K56aCtID4gdGVudG91XCA7CivmlK/nt5ogPiBzaGlzZW5cIDsKK+e9sOS/uCA+IGJhcHBvdVwgOwor5paH54yuID4gYnVua2VuXCA7Civoqannr4cgPiBzaGloZW5cIDsKK+aXpeafhCA+IGhpZ2FyYVwgOwor5aeJ5byfID4gc2hpbWFpXCA7CivnuIHnsY0gPiBlbnNla2lcIDsKK+mbouekgSA+IHJpc2hvdVwgOwor6Z+z5Z+fID4gb24nJ2lraVwgOwor6KiA6KGMID4gZ2Vua291XCA7Civop5Lot50gPiBrYWtreW9cIDsKK+WgsemBkyA+IGhvdWRvdVwgOwor5pa55rOVID4gaG91aG91XCA7Civml63mmokgPiBreW9ra2lcIDsKK+e1tuizmyA+IHplc3NhblwgOwor5aaC5p2lID4gbnlvcmFpXCA7CivlpKfniakgPiBvb21vbm9cIDsKK+aYguaPmiA+IGtvdXlvdVwgOwor6Zyy5ru0ID4gcm90ZWtpXCA7CivntprooYwgPiB6b2trb3VcIDsKK+ippueulyA+IHNoaXNhblwgOwor6Kur5q27ID4ga2Fuc2hpXCA7CivpmY3oqpUgPiBrb3V0YW5cIDsKK+eJiOacrCA+IGhhbnBvblwgOwor6Kur5q2iID4ga2Fuc2hpXCA7CivmmpblhqwgPiBkYW50b3VcIDsKK+mbu+eVqiA+IGRlbmJhblwgOwor6Zu755WMID4gZGVua2FpXCA7CivorprlmIYgPiBzYW50YW5cIDsKK+aXqeaZqSA+IHNvdWJhblwgOwor6ZyK542jID4gcmVpanV1XCA7Civnt6jnuoIgPiBoZW5zYW5cIDsKK+aZguWulyA+IGppc2h1dVwgOwor5paw5rS+ID4gc2hpbnBhXCA7Civml63ml5cgPiBreW9ra2lcIDsKK+mbhOevhyA+IHl1dWhlblwgOwor6ZuR56iuID4gemFzc2h1XCA7CivntJnpnaIgPiBzaGltZW5cIDsKK+Wlj+azlSA+IHNvdWhvdVwgOwor5aSx54GrID4gc2hpa2thXCA7CivmlpHngrkgPiBoYW50ZW5cIDsKK+mbquebriA+IHl1a2ltZVwgOwor5aW95pybID4ga291Ym91XCA7Civml6fmmYIgPiBreXV1amlcIDsKK+iqleeUnyA+IHRhbmpvdVwgOwor5pi85a+dID4gaGlydW5lXCA7Civmk43ooYwgPiBzb3Vrb3VcIDsKK+eJueaBtSA+IHRva2tlaVwgOwor5pi85a+QID4gaGlydW5lXCA7CivnhZnojYkgPiB0YWJha29cIDsKK+ipqeeovyA+IHNoaWtvdVwgOwor6K2m5a6YID4ga2Vpa2FuXCA7CivntbboroMgPiB6ZXNzYW5cIDsKK+aWueatoyA+IGhvdXNlaVwgOwor6KuW5rOVID4gcm9ucG91XCA7CivniJvmrbsgPiByYW5zaGlcIDsKK+aVteeOiyA+IHRla2lvdVwgOwor6Z6F5o6MID4gb3VzaG91XCA7CivorITmnKwgPiB0b3Vob25cIDsKK+aUueerhCA+IGthaXphblwgOwor5aaE5patID4gbW91ZGFuXCA7Civnibnlv6sgPiB0b2trYWlcIDsKK+WkqeeBvSA+IHRlbnNhaVwgOwor6Z2S5qW8ID4gc2Vpcm91XCA7CivpmYToqJcgPiBmdXRha3VcIDsKK+aXp+aVhSA+IGt5dXVrb1wgOwor54m95byVID4ga2VuJydpblwgOwor5pmv5ZOBID4ga2VpaGluXCA7Civml6XmlbAgPiBoaWthenVcIDsKK+eJiOaVsCA+IGhhbnN1dVwgOwor5pat5rC0ID4gZGFuc3VpXCA7CivntabosrsgPiBreXV1aGlcIDsKK+eHpueEtiA+IHNhbnplblwgOwor5aaZ5oqAID4gbXlvdWdpXCA7CivntIXpoZQgPiBrb3VnYW5cIDsKK+Wmu+W4ryA+IHNhaXRhaVwgOwor6ZuF56ewID4gZ2FzaG91XCA7CivlqIHllp0gPiBpa2F0c3VcIDsKK+mgkeWGpSA+IGdhbm1laVwgOwor6Kqt54K5ID4gdG91dGVuXCA7CivnhY7ojLYgPiBzZW5jaGFcIDsKK+aYjuW/qyA+IG1laWthaVwgOwor5aas5b+DID4gdG9zaGluXCA7Civmmbrli4cgPiBjaGl5dXVcIDsKK+itq+WmhCA+IHNlbm1vdVwgOwor5pm25YyWID4gc2hvdWthXCA7CivmlbTniYggPiBzZWloYW5cIDsKK+mbt+eNoyA+IHJhaWp1dVwgOwor6Z2S5qGQID4gYW9naXJpXCA7CivlpKfmva4gPiBvb3NoaW9cIDsKK+aZruWPiiA+IGZ1a3l1dVwgOwor54uC5ZacID4ga3lvdWtpXCA7CivlpKnmvKIgPiB0ZW5rYW5cIDsKK+mZtuiKuCA+IHRvdWdlaVwgOwor5peX5pelID4gaGF0YWJpXCA7CivpnZLmn7MgPiBhb3lhZ2lcIDsKK+ioree9riA+IHNldGNoaVwgOwor54mp5oCnID4gYnVzc2VpXCA7CivpmYTooaggPiBmdWh5b3VcIDsKK+mbo+eUoyA+IG5hbnphblwgOwor6K6S5Y+jID4gemFua291XCA7Civku4rjgIUgPiBpbWFpbWFcIDsKK+mgkeWBpSA+IGdhbmtlblwgOwor5pqX5LitID4gYW5jaHV1XCA7Civorbflm70gPiBnb2tva3VcIDsKK+aYvOWknCA+IGNodXV5YVwgOwor6KiA6JGJID4ga290b2JhXCA7CivopqrouqsgPiBzaGlubWlcIDsKK+aVtOeEtiA+IHNlaXplblwgOwor57Sh6YyYID4gYm91c3VpXCA7Civoq4zmraIgPiBrYW5zaGlcIDsKK+WklueBryA+IGdhaXRvdVwgOwor5aaE5oyZID4gYm91a3lvXCA7CivnuIHnn7MgPiBlbnNla2lcIDsKK+WfvOmKgCA+IHNhaWdpblwgOwor6ZaT6bSoID4gYWlnYW1vXCA7CivpnKfmsLcgPiBtdWh5b3VcIDsKK+aUr+ekviA+IHNoaXNoYVwgOwor6Z2S5pu4ID4gc2Vpc2hvXCA7CivmmKXlraMgPiBzaHVua2lcIDsKK+aVmeeQhiA+IGt5b3VyaVwgOwor6Ku45pa5ID4gc2hvaG91XCA7Civlopfnva4gPiB6b3VjaGlcIDsKK+Wkqea2ryA+IHRlbmdhaVwgOwor6KmQ56ewID4gc2FzaG91XCA7CivmkYLplqIgPiBzZWtrYW5cIDsKK+itpuWgsSA+IGtlaWhvdVwgOwor57a+576FID4gcnlvdXJhXCA7Civnt4/ntbEgPiBzb3V0b3VcIDsKK+mgmOS6iyA+IHJ5b3VqaVwgOwor54uC5Y+lID4ga3lvdWt1XCA7CivlppbmgKogPiB5b3VrYWlcIDsKK+aVmeeOiyA+IGt5b3VvdVwgOwor6Ku45pS/ID4gc2hvc2VpXCA7Civmlr3mnaEgPiBzaGlqb3VcIDsKK+mZs+iFkCA+IGNoaW5wdVwgOwor5aSn5rW3ID4gdGFpa2FpXCA7Civlp4nlprkgPiBzaGltYWlcIDsKK+WgseisnSA+IGhvdXNoYVwgOwor5aa75a2QID4gc2Fpc2hpXCA7Civni6zkuZkgPiBkb2l0c3VcIDsKK+eFqee0ryA+IGhhbnJ1aVwgOwor54mH5omLID4ga2F0YXRlXCA7Civpm7vnga8gPiBkZW50b3VcIDsKK+eJh+aIuCA+IGthdGFkb1wgOwor5aSn5rSLID4gdGFpeW91XCA7Civlp7/li6IgPiBzaGlzZWlcIDsKK+inkuihjCA+IGtha2tvdVwgOwor5aiB5YqbID4gaXJ5b2t1XCA7Civlpb3mipUgPiBrb3V0b3VcIDsKK+aWkeawlyA+IG11cmFraVwgOwor5pWm54WMID4gdG9ua291XCA7Civpm6rniYcgPiBzZXBwZW5cIDsKK+Wkp+azoiA+IG9vbmFtaVwgOwor5aSJ54G9ID4gaGVuc2FpXCA7CivlpKfms5UgPiB0YWlob3VcIDsKK+mbtueCuSA+IHJlaXRlblwgOwor5aW95omLID4ga291c2h1XCA7CivmmanlhqwgPiBiYW50b3VcIDsKK+WlveaIpiA+IGtvdXNlblwgOwor5pat5qGIID4gZGFuJydhblwgOwor5paH5rOVID4gYnVucG91XCA7CivlpKnmsLQgPiB0ZW5zdWlcIDsKK+mgkeS4iCA+IGdhbmpvdVwgOwor5aSW5rmvID4gc290b3l1XCA7CivmlofmsrsgPiBidW5jaGlcIDsKK+aVoueEtiA+IGthbnplblwgOwor5pmm5YalID4ga2FpbWVpXCA7CivmlZnniLYgPiBreW91ZnVcIDsKK+WmhOaDsyA+IG1vdXNvdVwgOwor57SU6YqAID4ganVuZ2luXCA7CivlpK3mrbsgPiB5b3VzaGlcIDsKK+aUv+eVjCA+IHNlaWthaVwgOwor5aSn5rC0ID4gb29taXp1XCA7Civntr/ntr8gPiBtZW5tZW5cIDsKK+Wklua4ryA+IGdhaWtvdVwgOwor6Kqs5rOVID4gc2VwcG91XCA7CivopovovrwgPiBtaWtvbWlcIDsKK+ioquexsyA+IGhvdWJlaVwgOwor6Kmm55SoID4gc2hpeW91XCA7CivntLDouqsgPiBob3NvbWlcIDsKK+WfjumWgCA+IGpvdW1vblwgOwor5paH5rCRID4gYnVubWluXCA7Civngq3pibEgPiB0YW5rb3VcIDsKK+aXp+aBqSA+IGt5dXVvblwgOwor57a/57ShID4gbWVuYm91XCA7Civlpb3mhJ8gPiBrb3VrYW5cIDsKK+e0lOmHkSA+IGp1bmtpblwgOwor6KW/6YOKID4gc2Vpa291XCA7CivlpJzms4ogPiB5YWhha3VcIDsKK+aWveaUvyA+IHNoaXNlaVwgOwor5pen5oCoID4ga3l1dWVuXCA7CivmlrnmlrkgPiBob3Vib3VcIDsKK+e2v+ezuCA+IG1lbnNoaVwgOwor5peo5b+1ID4gc2hpbmVuXCA7Civmk43oiLkgPiBzb3VzZW5cIDsKK+WmqOWusyA+IGJvdWdhaVwgOwor6ZyK5rOJID4gcmVpc2VuXCA7Civntr7ns7ggPiBheWFpdG9cIDsKK+mbu+a6kCA+IGRlbmdlblwgOwor5aaE5b+1ID4gbW91bmVuXCA7Civnirbli6IgPiBqb3VzZWlcIDsKK+WnlOWYsSA+IGlzaG9rdVwgOwor57mK5q+bID4gc2VubW91XCA7CivplqLpoK0gPiBrYW50b3VcIDsKK+WlieabuCA+IGhvdXNob1wgOwor5aSW5rSLID4gZ2FpeW91XCA7Civopb/pgYogPiBzZWl5dXVcIDsKK+e5lOapnyA+IHNob2traVwgOwor5aWu5oimID4gZnVuc2VuXCA7CivorJvluKsgPiBrb3VzaGlcIDsKK+mciuawtCA+IHJlaXN1aVwgOwor54Kt6YW4ID4gdGFuc2FuXCA7CivlpZTmlL4gPiBob25wb3VcIDsKK+e0jemHkSA+IG5vdWtpblwgOwor5pmv5LuwID4ga2Vpa291XCA7CivntI3ph4cgPiBub3VzYWlcIDsKK+aWg+atuyA+IGhlaXNoaVwgOwor6Kaz6KanID4ga2FucmFuXCA7Civoq7jmiYsgPiBtb3JvdGVcIDsKK+mfs+S/oSA+IG9uc2hpblwgOwor57OW6aGeID4gdG91cnVpXCA7Civnsr7prYIgPiBzZWlrb25cIDsKK+iok+e3tCA+IGt1bnJlblwgOwor5Z+66Lu4ID4ga2lqaWt1XCA7Civpm6PngrkgPiBuYW50ZW5cIDsKK+WknOavjiA+IHlvZ290b1wgOwor5pel5b2xID4gaGlrYWdlXCA7CivmlaPmvKsgPiBzYW5tYW5cIDsKK+e3qeebriA+IHl1cnVtZVwgOwor54mH5b2xID4gaGVuJydlaVwgOwor54G96ZujID4gc2FpbmFuXCA7CivlpoTlvIEgPiBib3ViZW5cIDsKK+mciuauvyA+IHJlaWRlblwgOwor5pei5b6XID4ga2l0b2t1XCA7CivlpKfmqKkgPiB0YWlrZW5cIDsKK+irluaXqCA+IHJvbnNoaVwgOwor57K+6auEID4gc2VpenVpXCA7Civmlq/mlocgPiBzaGlidW5cIDsKK+WftOi8qiA+IGhhbml3YVwgOwor6KuW5patID4gcm9uZGFuXCA7Civoq5bmlocgPiByb25idW5cIDsKK+eFmeeuoSA+IGtpc2VydVwgOwor54i95b+rID4gc291a2FpXCA7CivpmY3oh6ggPiBrb3VyaW5cIDsKK+Wkp+amgiA+IHRhaWdhaVwgOwor6Kq/5p+7ID4gY2hvdXNhXCA7CivpnZnmhYsgPiBzZWl0YWlcIDsKK+mbjOeJmyA+IG1ldXNoaVwgOwor57eg55ufID4gdGVpbWVpXCA7CivplovppKggPiBrYWlrYW5cIDsKK+iqsualrSA+IGthZ3lvdVwgOwor54Sh6IetID4gbXVzaHV1XCA7CivlpInms5UgPiBoZW5wb3VcIDsKK+mdseW4ryA+IGppbnRhaVwgOwor5piO5aSnID4gbWVpZGFpXCA7CivniZ/lrZAgPiBib3VzaGlcIDsKK+mbu+axoCA+IGRlbmNoaVwgOwor6ZaJ6aSoID4gaGVpa2FuXCA7Civoq7jmgqogPiBzaG9ha3VcIDsKK+aYn+WboyA+IHNlaWRhblwgOwor5aOB55S7ID4gaGVraWdhXCA7Civlp5PlkI0gPiBzZWltZWlcIDsKK+e0oOi2syA+IHN1YXNoaVwgOwor5pW15q2pID4gdGVraWZ1XCA7Civpm6rmuJMgPiBzZWtrZWlcIDsKK+mbhOeKrCA+IG9zdWludVwgOwor6Z2t5bivID4gamludGFpXCA7CivlopfnqI4gPiB6b3V6ZWlcIDsKK+aZguWIuyA+IGppa29rdVwgOwor5aK+55SwID4ga29uZGVuXCA7CivmlLnniYggPiBrYWloYW5cIDsKK+eItuW+oSA+IHRldGVnb1wgOwor6Zai6ZaAID4ga2FubW9uXCA7CivntLDorLkgPiBzYWlraW5cIDsKK+WhiuiMjiA+IGthaWtlaVwgOwor6ZqV55+zID4gaW5zZWtpXCA7CivmmK3lkowgPiBzaG91d2FcIDsKK+Wkp+aguSA+IGRhaWtvblwgOwor5paR5p2hID4gaGFuam91XCA7CivplpHpnZkgPiBrYW5zZWlcIDsKK+mWkemdliA+IGthbnNlaVwgOwor6Z2Z5oCdID4gc2Vpc2hpXCA7Civml7HlrrMgPiBrYW5nYWlcIDsKK+mbkeeCiiA+IHpvdXN1aVwgOwor5aSc5qWtID4geWFneW91XCA7CivoqJjnq6AgPiBraXNob3VcIDsKK+aYguWlriA+IGtvdWZ1blwgOwor57Sw6KuWID4gc2Fpcm9uXCA7CivoqabnhYkgPiBzaGlyZW5cIDsKK+eJp+WkqyA+IGJva3VmdVwgOwor5paH5qGIID4gYnVuJydhblwgOwor5peF5oOFID4gcnlvam91XCA7CivkupHjgIUgPiB1bicnbnVuXCA7CivlpInmrbsgPiBoZW5zaGlcIDsKK+mbo+a4iyA+IG5hbmp1dVwgOwor5aSW5qeYID4gdG96YW1hXCA7CivlpKfmn4QgPiBvb2dhcmFcIDsKK+iruOW9piA+IHNob2dlblwgOwor6ZaT6ZqbID4gbWFnaXdhXCA7CivlpKnmna8gPiB0ZW5wYWlcIDsKK+WkqeadpSA+IHRlbnJhaVwgOwor5aSn5p6aID4gdGFpbWFpXCA7CivnhKHogYogPiBidXJ5b3VcIDsKK+mVt+mnhiA+IGNob3VrdVwgOwor5aeL5Y6fID4gc2hpZ2VuXCA7CivmlaPmsLQgPiBzYW5zdWlcIDsKK+Wkp+adryA+IHRhaWhhaVwgOwor6Zuy5q+NID4ga2lyYXJhXCA7Civml6nlr50gPiBoYXlhbmVcIDsKK+ilv+iyoiA+IHNhaWdvblwgOwor5pWZ5rS+ID4ga3lvdWhhXCA7Civmk43nuKYgPiBzb3VqdXVcIDsKK+e3j+eboyA+IHNvdWthblwgOwor5aSn5pysID4gdGFpaG9uXCA7CivnhrHmua8gPiBuZXR0b3VcIDsKK+Wkp+acmyA+IHRhaW1vdVwgOwor6KuW5ougID4gcm9ua3lvXCA7Civml6XlsIQgPiBuaXNzaGFcIDsKK+e0r+ioiCA+IHJ1aWtlaVwgOwor6Ki755aPID4gY2h1dXNvXCA7CivlpYnmi50gPiBob3VoYWlcIDsKK+Wkp+abuCA+IHRhaXNob1wgOwor5pen5a62ID4ga3l1dWthXCA7CivniafloLQgPiBtYWtpYmFcIDsKK+ioiOeulyA+IGtlaXNhblwgOwor5peL5bu7ID4gc2Vua2FpXCA7CivpmaTnsY0gPiBqb3Nla2lcIDsKK+Wni+WLlSA+IHNoaWRvdVwgOwor57Sw6KaLID4gc2Fpa2VuXCA7CivnuYrmnaEgPiBzZW5qb3VcIDsKK+ezuOmBiiA+IGl0b3l1dVwgOwor5pen5a2XID4ga3l1dWppXCA7CivlpKfmmpEgPiB0YWlzaG9cIDsKK+mbo+ayuyA+IG5hbmNoaVwgOwor5aKo55eVID4gYm9ra29uXCA7CivnhZnnoZ0gPiBlbnNob3VcIDsKK+mWoumNtSA+IGthbmtlblwgOwor6KuW5oimID4gcm9uc2VuXCA7Civnsr7pnIogPiBzZWlyZWlcIDsKK+aXpeWtkCA+IG5pc3NoaVwgOwor5aWJ5oi0ID4gaG91dGFpXCA7CivlpKnmmI4gPiB0ZW5tZWlcIDsKK+WfuuiqvyA+IGtpY2hvdVwgOwor57mB5qCEID4gaGFuJydlaVwgOwor5aKT55+zID4gYm9zZWtpXCA7Civopovop6MgPiBrZW5rYWlcIDsKK+aUvua8qyA+IGhvdW1hblwgOwor5aW95a6IID4ga291c2h1XCA7Civpm4zmu50gPiBtZWRha2lcIDsKK+WnpuS6uiA+IGthbmppblwgOwor5aKo55S7ID4gYm9rdWdhXCA7Civpm6PmsJEgPiBuYW5taW5cIDsKK+aXqeWpmiA+IHNvdWtvblwgOwor57Sg6KqtID4gc29kb2t1XCA7CivopoHoq6YgPiB5b3V0ZWlcIDsKK+WkqeaWhyA+IHRlbm1vblwgOwor5aSn5pa5ID4gb29rYXRhXCA7CivopoHoq4sgPiB5b3VzZWlcIDsKK+aUr+eCuSA+IHNoaXRlblwgOwor6KaB6KuHID4geW91ZGFuXCA7CivmlofmmI4gPiBidW5tZWlcIDsKK+mdkuW5tCA+IHNlaW5lblwgOwor6ZaL6ZaJID4ga2FpaGVpXCA7Civoqp7moLwgPiBnb2tha3VcIDsKK+mVt+mfsyA+IGNob3VvblwgOwor5pen5ammID4ga3l1dWZ1XCA7CivplovploAgPiBrYWltb25cIDsKK+aXseWkqSA+IGthbnRlblwgOwor5pCs6YCBID4gaGFuc291XCA7Civpno/lm7ogPiBreW91a29cIDsKK+aWh+aXpiA+IGJ1bnRhblwgOwor6Ky55ZWTID4ga2lua2VpXCA7Civnt7Tngq0gPiByZW50YW5cIDsKK+Wkp+aVsCA+IHRhaXN1dVwgOwor6Kej57qcID4ga2FpcmFuXCA7CivplonploAgPiBoZWltb25cIDsKK+itsOS6hiA+IGdpcnlvdVwgOwor5aWl5beeID4gb3VzaHV1XCA7CivmlZfmrosgPiBoYWl6YW5cIDsKK+Wil+ebiiA+IHpvdWVraVwgOwor5aSn5pWXID4gdGFpaGFpXCA7CivorJvlo4cgPiBrb3VkYW5cIDsKK+WkluadpSA+IGdhaXJhaVwgOwor6ZeH6LevID4geWFtaWppXCA7Civoq7jls7YgPiBzaG90b3VcIDsKK+WkluadkCA+IGdhaXphaVwgOwor5aSn5pS/ID4gdGFpc2VpXCA7CivlpbPlsIYgPiBqb3Nob3VcIDsKK+mWgOmZoiA+IG1vbicnaW5cIDsKK+e0jeixhiA+IG5hdHRvdVwgOwor6ZaA6ZmQID4gbW9uZ2VuXCA7CivmlrnlvaIgPiBob3VrZWlcIDsKK+mZpeepvSA+IGthbnNlaVwgOwor6ZyK5pm6ID4gcmVpY2hpXCA7CivmlofmlL8gPiBidW5zZWlcIDsKK+Wls+WumCA+IG55b2thblwgOwor5pCt6LyJID4gdG91c2FpXCA7CivnhKHntaYgPiBtdWt5dXVcIDsKK+aXqeWkqSA+IHNvdXRlblwgOwor5pep5aSnID4gc291ZGFpXCA7CivorJvloIIgPiBrb3Vkb3VcIDsKK+imgeimpyA+IHlvdXJhblwgOwor6Z2S5bWQID4gc2VpcmFuXCA7Civpm5vmrrUgPiBzdXVkYW5cIDsKK+mdouWtkCA+IG1lbnRzdVwgOwor6Ky55ZGIID4ga2ludGVpXCA7CivmlbDmnpogPiBzdXVtYWlcIDsKK+mbqOaoiyA+IGFtYWRvaVwgOwor5pen5aSrID4ga3l1dWZ1XCA7Civml6flpKIgPiBreXV1bXVcIDsKK+mbhOa4viA+IHl1dWtvblwgOwor57mB5piMID4gaGFuam91XCA7CivmlL7mtaogPiBob3Vyb3VcIDsKK+e2mueovyA+IHpva2tvdVwgOwor6ZuR5rKTID4gemF0dG91XCA7CivopIfpn7MgPiBmdWt1b25cIDsKK+aYjuWQmyA+IG1laWt1blwgOwor5pes5aCxID4ganVucG91XCA7Civpmbrnm7ggPiBrZW5zb3VcIDsKK+eEoeeyviA+IGJ1c2hvdVwgOwor6K2m5LmXID4ga2Vpam91XCA7CivorLnljrMgPiBraW5nZW5cIDsKK+eEtueoiyA+IHNhaG9kb1wgOwor54m55YuZID4gdG9rdW11XCA7Civnianlk4EgPiBidXBwaW5cIDsKK+itpuS4liA+IGtlaXNlaVwgOwor5aKX55SjID4gem91c2FuXCA7CivmkI3ph5EgPiBzb25raW5cIDsKK+mdkuWxsSA+IHNlaXphblwgOwor54m55Yq5ID4gdG9ra291XCA7Civoq7jlrZAgPiBzaG9zaGlcIDsKK+eJveWItiA+IGtlbnNlaVwgOwor5aW95aSpID4ga291dGVuXCA7Civnibnlip8gPiB0b2trb3VcIDsKK+WkieabtCA+IGhlbmtvdVwgOwor6ZW36ZaRID4gbm9kb2thXCA7Civoqp7ml48gPiBnb3pva3VcIDsKK+irluW8gSA+IHJvbmJlblwgOwor5pel5aCxID4gbmlwcG91XCA7CivploDpkZEgPiBtb25rYW5cIDsKK+Wkp+aMmSA+IHRhaWt5b1wgOwor5aCV6JC9ID4gZGFyYWt1XCA7CivplqLpgKMgPiBrYW5yZW5cIDsKK+eFrueJqSA+IG5pbW9ub1wgOwor5peF5a+dID4gdGFiaW5lXCA7Civlq4zjgIUgPiBpeWFpeWFcIDsKK+aUvuawtCA+IGhvdXN1aVwgOwor5piH5Y+ZID4gc2hvdWpvXCA7Civntbnns7ggPiBrZW5zaGlcIDsKK+mZjeetiSA+IGtvdXRvdVwgOwor6Zmz55quID4gY2hpbnBpXCA7CivmlbTmlokgPiBzZWlzZWlcIDsKK+aVtOaVsCA+IHNlaXN1dVwgOwor5aSn5oq1ID4gdGFpdGVpXCA7CivntKvomK0gPiBzaGlyYW5cIDsKK+mWi+mKgCA+IGthaWdpblwgOwor54Sh562WID4gbXVzYWt1XCA7CivorKblkrMgPiBrZWlnYWlcIDsKK+WmpeWNlCA+IGRha3lvdVwgOwor5paO5oiSID4gc2Fpa2FpXCA7CivlpKnmiY0gPiB0ZW5zYWlcIDsKK+acq+OAhSA+IHN1ZXp1ZVwgOwor5aWJ5bmjID4gaG91aGVpXCA7CivlpKfmioAgPiBvb3dhemFcIDsKK+eyvumMrCA+IHNlaXJlblwgOwor5pen5ZyfID4ga3l1dWRvXCA7Civpm7vmlq0gPiBkZW5kYW5cIDsKK+mcsOW8viA+IHNhbmRhblwgOwor5pWZ5qGIID4ga3lvdWFuXCA7CivlpKnmiJAgPiB0ZW5zZWlcIDsKK+e5iuaMhyA+IHNlbnNoaVwgOwor5aaZ5ZGzID4gbXlvdW1pXCA7Civpm7vmlocgPiBkZW5idW5cIDsKK+Wkp+aIpiA+IHRhaXNlblwgOwor6Ku45aeJID4gc2hvc2hpXCA7Civop6PnrZQgPiBrYWl0b3VcIDsKK+aYjuWInSA+IG1laXNob1wgOwor57We572qID4ga291emFpXCA7CivlpKfmiJAgPiB0YWlzZWlcIDsKK+eEoeeqriA+IG11a3l1dVwgOwor5paH5omNID4gYnVuc2FpXCA7CivmmKjku4ogPiBzYWtrb25cIDsKK+eyvumKhSA+IHNlaWRvdVwgOwor5aSJ5pWwID4gaGVuc3V1XCA7Civntajnt54gPiBqdXV0YW5cIDsKK+aWueWvuCA+IGhvdXN1blwgOwor6KqT5paHID4gc2VpbW9uXCA7CivlpInmlLkgPiBoZW5rYWlcIDsKK+aUueatoyA+IGthaXNlaVwgOwor57mK5omLID4gc2Vuc2h1XCA7CivlpKfmhbYgPiB0YWlrZWlcIDsKK+mbtuaVlyA+IHJlaWhhaVwgOwor6ZaT6YGTID4ga2FuZG91XCA7Civoo73pmbYgPiBzZWl0b3VcIDsKK+aWreW0liA+IGRhbmdhaVwgOwor6KWv6KGjID4gc2hpbicnaVwgOwor5aWl5aaZID4gb3VteW91XCA7Civnt4/ngrkgPiBzb3V0ZW5cIDsKK+aUv+aoqSA+IHNlaWtlblwgOwor6Zuq5pmvID4gc2Vra2VpXCA7Civmk43nn60gPiBzb3V0YW5cIDsKK+e0sOiPjCA+IHNhaWtpblwgOwor5pWj5paHID4gc2FuYnVuXCA7CivlpKnmgbUgPiB0ZW5rZWlcIDsKK+aVo+aVoyA+IHNhbnphblwgOwor5aSp5oGpID4gdGVuJydvblwgOwor5aSn5oKjID4gdGFpa2FuXCA7Civmlq3lsaQgPiBkYW5zb3VcIDsKK+Wcn+m+jSA+IG1vZ3VyYVwgOwor57im5patID4ganV1ZGFuXCA7Civlo7DmnJsgPiBzZWlib3VcIDsKK+ismuWPtyA+IHNoaWdvdVwgOwor5aSp5oCnID4gdGVuc2VpXCA7CivpnZLlpKkgPiBzZWl0ZW5cIDsKK+mbu+aOoiA+IGRlbnRhblwgOwor6Kej56aBID4ga2Fpa2luXCA7CivlpInmj5sgPiBoZW5rYW5cIDsKK+aYj+WAkiA+IGtvbnRvdVwgOwor5pyX44CFID4gcm91cm91XCA7Civoqr/luqYgPiBjaG91ZG9cIDsKK+Wls+WbmiA+IGpvc2h1dVwgOwor5aSr5b25ID4gYnV5YWt1XCA7CivpmYTnpaggPiBmdWh5b3VcIDsKK+aWsOWtlyA+IHNoaW5qaVwgOwor5pKa57O4ID4gbmVuc2hpXCA7CivlpKflv5cgPiB0YWlzaGlcIDsKK+aWreWumiA+IGRhbnRlaVwgOwor6KuW5a6aID4gcm9udGVpXCA7Civnsonpm6ogPiBrb3l1a2lcIDsKK+eyvumBuCA+IHNlaXNlblwgOwor5aG155WMID4gamlua2FpXCA7Civpm4Xmpb0gPiBnYWdha3VcIDsKK+mciuaEnyA+IHJlaWthblwgOwor5pC66KGMID4ga2Vpa291XCA7Civoq5blrZ8gPiByb25tb3VcIDsKK+aXpeWSjCA+IGhpeW9yaVwgOwor57ay54q2ID4gbW91am91XCA7Civoqpjmi5AgPiB5dXVrYWlcIDsKK+WjsOaYjiA+IHNlaW1laVwgOwor5aSn5b2iID4gb29neW91XCA7Civpm6PmlocgPiBuYW5idW5cIDsKK+irp+WjsCA+IGthaXNlaVwgOwor57Gz6aOvID4gYmVpaGFuXCA7CivntrLniYggPiBhbWloYW5cIDsKK+WjsuaWhyA+IGJhaWJ1blwgOwor5pel5ZCRID4gaGluYXRhXCA7Civnsr7ovrIgPiBzZWlub3VcIDsKK+aWsOWppiA+IHNoaW5wdVwgOwor5aWq5ZueID4gZGFra2FpXCA7CivngavotrMgPiBoaWFzaGlcIDsKK+eEpueciSA+IHNob3ViaVwgOwor5pS+5qChID4gaG91a291XCA7CivpmLLnqbogPiBib3VrdXVcIDsKK+WkqeW6lSA+IHRlbnRlaVwgOwor5aSq5bmzID4gdGFpaGVpXCA7Civoqq3lvowgPiBkb2t1Z29cIDsKK+aXpeWPgiA+IG5pc3NhblwgOwor6Zqb5ravID4gc2FpZ2FpXCA7Civml4vlm54gPiBzZW5rYWlcIDsKK+WlpeWcsCA+IG9rdWNoaVwgOwor5aSp5bmzID4gdGVuYmluXCA7CivpnIrmgKcgPiByZWlzZWlcIDsKK+Wkp+W6lyA+IG9vZGFuYVwgOwor5aSW5oKjID4gZ2Fpa2FuXCA7Civpm5Hmm7ggPiB6YXNzaG9cIDsKK+mWo+itsCA+IGtha3VnaVwgOwor54Gw6LKdID4gaGFpZ2FpXCA7CivlpInmiJAgPiBoZW5zZWlcIDsKK+WkqeW4nSA+IHRlbnRlaVwgOwor57WM57eaID4ga2Vpc2VuXCA7CivniankvZMgPiBtb3R0YWlcIDsKK+Wkp+W5hSA+IG9vaGFiYVwgOwor57WM57a4ID4ga2VpcmluXCA7CivmmI7kuLsgPiBtZWlzaHVcIDsKK+Wkp+W4qyA+IGRhaXNoaVwgOwor5aSp5belID4gdGVua291XCA7CivlpKfluJ0gPiB0YWl0ZWlcIDsKK+ijvemMrCA+IHNlaXJlblwgOwor5aaE5YuVID4gbW91ZG91XCA7CivnhJTnoZ0gPiBlbnNob3VcIDsKK+e1kOe0jSA+IHl1aW5vdVwgOwor5peF5ZujID4gcnlvZGFuXCA7CivnuYHlv5kgPiBoYW5ib3VcIDsKK+WcsOmrqiA+IGppZ2FtaVwgOwor6Ziy56amID4gYm91Z3lvXCA7CivntLDog54gPiBzYWlib3VcIDsKK+eJqeS7tiA+IGJ1a2tlblwgOwor5aSp5bauID4gdGVua2VuXCA7Civoo73pi7wgPiBzZWlrb3VcIDsKK+aXpeWLpCA+IG5pa2tpblwgOwor5aSn5benID4gdGFpa291XCA7CivngrnojLYgPiB0ZW5jaGFcIDsKK+aXrOWIiiA+IGp1bmthblwgOwor57SF6Je7ID4ga291c291XCA7CivmlrDlpYcgPiBzaGlua2lcIDsKK+mZtueEtiA+IHRvdXplblwgOwor6ZW36YCUID4gY2hvdXRvXCA7CivmkZjoir0gPiB0ZWtpZ2FcIDsKK+WkieaFiyA+IGhlbnRhaVwgOwor5o+b6YeRID4ga2Fua2luXCA7CivmlZnmjoggPiBreW91anVcIDsKK+aVheaXpyA+IGtva3l1dVwgOwor6ZuE5p2+ID4gb21hdHN1XCA7Civml6nlh7ogPiBoYXlhZGVcIDsKK+Wlh+WmmSA+IGtpbXlvdVwgOwor5aSW5b6EID4gZ2Fpa2VpXCA7CivlpJblvoEgPiBnYWlzZWlcIDsKK+aOpemgrSA+IHNldHRvdVwgOwor5aSW5b2iID4gZ2Fpa2VpXCA7CivoqJPngrkgPiBrdW50ZW5cIDsKK+irluWkliA+IHJvbmdhaVwgOwor6ZmQ55WMID4gZ2Vua2FpXCA7CivlpJzlupcgPiB5b21pc2VcIDsKK+e1g+e3miA+IGdlbnNlblwgOwor6Ku+5ZCmID4gZGFrdWhpXCA7CivmjqLpoYwgPiB0YW5kYWlcIDsKK+e5iuW3pyA+IHNlbmtvdVwgOwor54Sh55ebID4gbXV0c3V1XCA7CivnhKHnl4UgPiBtdWJ5b3VcIDsKK+aXpeWIiiA+IG5pa2thblwgOwor5pWR5o+0ID4ga3l1dWVuXCA7Civoq5blo4cgPiByb25kYW5cIDsKK+Wjn+aWrSA+IHJvdWRhblwgOwor54mH5YiDID4ga2F0YWhhXCA7CivmlbXlvbEgPiB0ZWtpZWlcIDsKK+e1ueebriA+IGtpbnVtZVwgOwor54Wu5rGBID4gbmlqaXJ1XCA7Civoo77ph44gPiBzdXNvbm9cIDsKK+iotOaxgiA+IHNva3l1dVwgOwor54WJ54KtID4gcmVudGFuXCA7CivpnIfluqYgPiBzaGluZG9cIDsKK+aVtOW9oiA+IHNlaWtlaVwgOwor5aSc5biCID4geW9pY2hpXCA7CivlopfmuJsgPiB6b3VnZW5cIDsKK+mbgeabuCA+IGdhbnNob1wgOwor57mD5bivID4gaG91dGFpXCA7CivoqanmlocgPiBzaGlidW5cIDsKK+WkieaApyA+IGhlbnNlaVwgOwor6KaL6IGeID4ga2VubW9uXCA7CivlpKflsbEgPiB0YWl6YW5cIDsKK+iruOWQmyA+IHNob2t1blwgOwor6Kuu5ZWPID4gc2hpbW9uXCA7CivplqLopb8gPiBrYW5zYWlcIDsKK+mVt+i6ryA+IGNob3VrdVwgOwor5aSn5bGkID4gdGFpc291XCA7CivpnJzlrrMgPiBzb3VnYWlcIDsKK+e4hOaWhyA+IGpvdW1vblwgOwor5pel5YWJID4gbmlra291XCA7CivmlLnmmJMgPiBrYWlla2lcIDsKK+aXp+WEgCA+IGt5dXVnaVwgOwor5aSn5bC9ID4gZGFpamluXCA7Civlo67mjJkgPiBzb3VreW9cIDsKK+e0heiRiSA+IG1vbWlqaVwgOwor5pS+5pWjID4gaG91c2FuXCA7Civmlo7lrq4gPiBzYWlndXVcIDsKK+imi+iAhSA+IGtlbnNoYVwgOwor6Zuj5omAID4gbmFuc2hvXCA7CivmlZfmiKYgPiBoYWlzZW5cIDsKK+WlquWPliA+IGRhc3NodVwgOwor5pG457SiID4gbW9zYWt1XCA7CivniYDlh6AgPiBzaG91Z2lcIDsKK+WkquWuiCA+IHRhaXNodVwgOwor5paJ5bCEID4gc2Vpc2hhXCA7CivntbHnm6MgPiB0b3VrYW5cIDsKK+Wkp+WvkiA+IGRhaWthblwgOwor5Z2K6ZaTID4gYm91a2FuXCA7CivlpKvlrZAgPiBmdXVzaGlcIDsKK+WkqeWuiCA+IHRlbnNodVwgOwor5aSJ5b2iID4gaGVua2VpXCA7CivntKDogowgPiBzdWhhZGFcIDsKK+mbhOaWrSA+IHl1dWRhblwgOwor5aSq5a2XID4gZnV0b2ppXCA7CivlpKrlrZAgPiB0YWlzaGlcIDsKK+WkqeWtqyA+IHRlbnNvblwgOwor6ZuR5pCNID4gemFzc29uXCA7CivplpHoq4cgPiBrYW5kYW5cIDsKK+aXpeWCmCA+IGhpZ2FzYVwgOwor5aSn5a6XID4gdGFpc291XCA7CivlpKnlrZAgPiB0ZW5zaGlcIDsKK+mdqeWFtyA+IGthd2FndVwgOwor6Z2i5YmNID4gbWVuemVuXCA7CivpnIrls7AgPiByZWlob3VcIDsKK+mat+abuCA+IHJlaXNob1wgOwor6KeS55quID4ga2FrdWhpXCA7CivorITlhpkgPiB0b3VzaGFcIDsKK+aOoumZuiA+IHRhbmtlblwgOwor6KaW57eaID4gc2hpc2VuXCA7CivmlbDlubQgPiBzdXVuZW5cIDsKK+WlruWKsSA+IGZ1bnJlaVwgOwor6Z2e5YqbID4gaGlyaWtpXCA7Civoq63lkYogPiB5dWtva3VcIDsKK+mWi+ismyA+IGthaWtvdVwgOwor5paH5a6YID4gYnVua2FuXCA7Civml6zkvZkgPiBqdW4nJ3lvXCA7Civpmo7mrrUgPiBrYWlkYW5cIDsKK+mdkuWPsiA+IHNlaXNoaVwgOwor57SZ6IOMID4gc2hpaGFpXCA7CivntIXojLYgPiBrb3VjaGFcIDsKK+e0sOe3uyA+IHNhaWNoaVwgOwor5Z+L6JS1ID4gbWFpem91XCA7Civoo73pgKAgPiBzZWl6b3VcIDsKK+mciuWxsSA+IHJlaXphblwgOwor54ax5oimID4gbmVzc2VuXCA7Civoo4/ploAgPiB1cmFtb25cIDsKK+WkieW5uyA+IGhlbmdlblwgOwor6ZyK5bGLID4gdGFtYXlhXCA7CivlopfmsLQgPiB6b3VzdWlcIDsKK+ism+S4rSA+IGtvdWp1dVwgOwor6Zui5oSBID4gcmlzaHV1XCA7Civpm7vlt6UgPiBkZW5rb3VcIDsKK+aVo+W8viA+IHNhbmRhblwgOwor5pac5aGUID4gc2hhdG91XCA7CivlpJrlsJEgPiB0YXNob3VcIDsKK+WknOWvkiA+IHlvemFtdVwgOwor6Ku35Yi6ID4gZnV1c2hpXCA7Civloannha4gPiBzaGlvbmlcIDsKK+WknOWuriA+IHlvbWl5YVwgOwor6Zyy5Zu9ID4gcm9rb2t1XCA7Civoq7jliIMgPiBtb3JvaGFcIDsKK+WkluWxpCA+IGdhaXNvdVwgOwor5Z+L6JGsID4gbWFpc291XCA7Civntr/mr5sgPiB3YXRhZ2VcIDsKK+e1kOekviA+IGtlc3NoYVwgOwor6KSS6LK2ID4gaG91aGVuXCA7CivntK/ntK8gPiBydWlydWlcIDsKK+WcsOmciiA+IGNoaXJlaVwgOwor6ZyK5a6dID4gcmVpaG91XCA7CivlnLDpnIcgPiBqaXNoaW5cIDsKK+WgseefpSA+IGhvdWNoaVwgOwor57Sw57O4ID4gc2Fpc2hpXCA7CivlpJzlraYgPiB5YWdha3VcIDsKK+iqpOWvqSA+IGdvc2hpblwgOwor5pel5LyKID4gbmljaGlpXCA7CivpmLLnlqsgPiBib3Vla2lcIDsKK+inkueVjCA+IGtha2thaVwgOwor5pWP5oSfID4gYmlua2FuXCA7CivmlbflsYUgPiBzaGlraWlcIDsKK+eCreiCuiA+IHRhbmhhaVwgOwor5aW95L6LID4ga291cmVpXCA7CivlpZTlkb0gPiBob25tZWlcIDsKK+eFmeavkiA+IGVuZG9rdVwgOwor6KqH5by1ID4ga29jaG91XCA7CivnhrHmhI8gPiBuZXRzdWlcIDsKK+aWueWQkSA+IGhvdWtvdVwgOwor57Sr57S6ID4gc2hpa29uXCA7CivlnLDpmo4gPiBjaGlrYWlcIDsKK+aVmeW+kiA+IGt5b3V0b1wgOwor6KaP57SEID4ga2l5YWt1XCA7Civoq7jlhYQgPiBzaG9rZWlcIDsKK+iruOWFgyA+IHNob2dlblwgOwor5pep5LiWID4gc291c2VpXCA7CivplovopZ8gPiBrYWlraW5cIDsKK+aWnOWdkSA+IHNoYWtvdVwgOwor57ir5belID4gaG91a291XCA7Civml4XliLggPiByeW9rZW5cIDsKK+mao+adkSA+IHJpbnNvblwgOwor5aSp5aSWID4gdGVuZ2FpXCA7CivoqanmiY0gPiBzaGlzYWlcIDsKK+WgoeekgSA+IGhvc2hvdVwgOwor5aSp5aSJID4gdGVucGVuXCA7CivpnaLlgJIgPiBtZW5kb3VcIDsKK+aXpeS4rSA+IGhpbmFrYVwgOwor5aSp5aOwID4gdGVuc2VpXCA7Civml4vlhYkgPiBzZW5rb3VcIDsKK+WlkeWQiCA+IGtlaWdvdVwgOwor6ZyK5aqSID4gcmVpYmFpXCA7Civnt5rmnaEgPiBzZW5qb3VcIDsKK+ino+eJiCA+IGthaWhhblwgOwor5pW05a65ID4gc2VpeW91XCA7CivmlrDlkbMgPiBzaGlubWlcIDsKK+WkqeWjjCA+IHRlbmpvdVwgOwor5aSn5aSJID4gdGFpaGVuXCA7CivntprmvJQgPiB6b2t1ZW5cIDsKK+WjruW/qyA+IHNvdWthaVwgOwor6KO46LqrID4gcmFzaGluXCA7CivnsbPpiq0gPiBiZWlzZW5cIDsKK+eGseaApyA+IG5lc3NlaVwgOwor6Kqe5a2mID4gZ29nYWt1XCA7CivoqpjlsI4gPiB5dXVkb3VcIDsKK+mbkeaEnyA+IHpha2thblwgOwor5paO5aC0ID4gc2Fpam91XCA7CivopoHntrEgPiB5b3Vrb3VcIDsKK+e0r+eulyA+IHJ1aXNhblwgOwor5paH5aOrID4gYnVuc2hpXCA7Civngrnnt5ogPiB0ZW5zZW5cIDsKK+Wls+S9kyA+IG55b3RhaVwgOwor57iB5oiaID4gZW5zZWtpXCA7CivpnaLkvZMgPiBtZW50ZWlcIDsKK+aWh+WjhyA+IGJ1bmRhblwgOwor5aWJ5ZGIID4gaG91dGVpXCA7CivmkoPnoLQgPiBnZWtpaGFcIDsKK+eyvuijvSA+IHNlaXNlaVwgOwor6Z2i5LyaID4gbWVua2FpXCA7CivntKHns7ggPiBib3VzaGlcIDsKK+WkqeWggiA+IHRlbmRvdVwgOwor6Zui5bqKID4gcmlzaG91XCA7CivlopPmqJkgPiBib2h5b3VcIDsKK+majuairyA+IGthaXRlaVwgOwor5aOy5bqXID4gYmFpdGVuXCA7Civoq5blj6IgPiByb25zb3VcIDsKK+iruOS+ryA+IHNob2tvdVwgOwor6Zu75a2QID4gZGVuc2hpXCA7CivniLXkvY0gPiBzaGFrdWlcIDsKK+ilv+e1jCA+IHNlaWtlaVwgOwor6Kmp5oOzID4gc2hpc291XCA7CivloYrnirYgPiBrYWlqb3VcIDsKK+ims+ebuCA+IGthbnNvdVwgOwor5aWz5Lq6ID4gbnlvbmluXCA7CivmlLnmhrIgPiBrYWlrZW5cIDsKK+Wkp+WfnyA+IHRhaWlraVwgOwor57W254mIID4gemVwcGFuXCA7Civpm6rltKkgPiBuYWRhcmVcIDsKK+ipqeaDhSA+IHNoaWpvdVwgOwor5aSW5aeTID4gZ2Fpc2VpXCA7CivoqIDmtbcgPiBnZW5rYWlcIDsKK+eFp+afuyA+IHNob3VzYVwgOwor5pS/5oOFID4gc2Vpam91XCA7CivntJvntJsgPiBmdW5wdW5cIDsKK+Wlj+WKuSA+IHNvdWtvdVwgOwor5aOu5bm0ID4gc291bmVuXCA7CivlpKflnosgPiBvb2dhdGFcIDsKK+WjsOW4ryA+IHNlaXRhaVwgOwor5LiK44CFID4gam91am91XCA7CivlpY/lip8gPiBzb3Vrb3VcIDsKK+e0lOe2vyA+IGp1bm1lblwgOwor5aSp5ZywID4gdGVuY2hpXCA7Civloanmua8gPiBzaGlveXVcIDsKK+ipsuW9kyA+IGdhaXRvdVwgOwor5Z2R6YGTID4ga291ZG91XCA7CivlpbPkuK0gPiBqb2NodXVcIDsKK+a/gOmrmCA+IGdla2tvdVwgOwor5o6i6YmxID4gdGFua291XCA7Civnt4/mm7ggPiBzb3VzaG9cIDsKK+WkluWllyA+IGdhaXRvdVwgOwor57a/5qOSID4gbWVuYm91XCA7CivmlK/miYAgPiBzaGlzaG9cIDsKK+aOoemJsSA+IHNhaWtvdVwgOwor5aSn5ZywID4gZGFpY2hpXCA7CivntJTntbkgPiBqdW5rZW5cIDsKK+aUvuaBoyA+IGhvdXNoaVwgOwor5paH5Z6LID4gYnVua2VpXCA7CivploDooZsgPiBtb24nJ2VpXCA7Civpm4zmgKcgPiBzaGlzZWlcIDsKK+S4h+OAhSA+IG1hbm1hblwgOwor5Z6C6KiTID4gc3Vpa3VuXCA7CivlpKflnI8gPiB0YWlrZW5cIDsKK+mYsueKryA+IGJvdWhhblwgOwor6KqN5a6aID4gbmludGVpXCA7CivngavolqwgPiBrYXlha3VcIDsKK+eGseW4ryA+IG5ldHRhaVwgOwor57e05oiQID4gcmVuc2VpXCA7CivnhJrngasgPiB0YWtpYmlcIDsKK+aUueaCqiA+IGthaWFrdVwgOwor5pS+5b+1ID4gaG91bmVuXCA7CivlpYfli50gPiBraXNob3VcIDsKK+mciuWgtCA+IHJlaWpvdVwgOwor57SU57O7ID4ganVua2VpXCA7CivlpaLkvoggPiBzaGFzaGlcIDsKK+WlpeS8nSA+IG9rdWRlblwgOwor5aGp5rW0ID4gZW55b2t1XCA7Civoq4flkIggPiBkYW5nb3VcIDsKK+S4geOAhSA+IHRvdXRvdVwgOwor6Kmp5b2iID4gc2hpa2VpXCA7CivpnIrln58gPiByZWlpa2lcIDsKK+irluWIpCA+IHJvbnBhblwgOwor54Wu5pa5ID4gbmlrYXRhXCA7CivnhormiYsgPiBrdW1hZGVcIDsKK+e0lOeyiyA+IGp1bnN1aVwgOwor6Kqt5ZuzID4gZG9rdXp1XCA7Civpm4TmgKcgPiB5dXVzZWlcIDsKK+eBq+iTiyA+IGhpYnV0YVwgOwor6KOF6YeYID4gc291dGVpXCA7Civoqr/lkowgPiBjaG91d2FcIDsKK+ioguatoyA+IHRlaXNlaVwgOwor54Wn5pigID4gc2hvdWVpXCA7Civpm4Tlv5cgPiB5dXVzaGlcIDsKK+iqv+WRsyA+IGNob3VtaVwgOwor5o6y6LyJID4ga2Vpc2FpXCA7Civml4XkurogPiByeW9qaW5cIDsKK+aXheS6rSA+IHJ5b3RlaVwgOwor5o+b6KiAID4ga2FuZ2VuXCA7Civnt4/mlbAgPiBzb3VzdXVcIDsKK+mciuWcsCA+IHJlaWNoaVwgOwor5o+a6KiAID4geW91Z2VuXCA7CivlpKfllqogPiB0YWlzb3VcIDsKK+mbkeW3viA+IHpvdWtpblwgOwor5aSp5ZWTID4gdGVua2VpXCA7CivpmoXmnKggPiBzdW1pa2lcIDsKK+WlieWFrCA+IGhvdWtvdVwgOwor57eP5pSsID4gc291cmFuXCA7Civnt6jmiJAgPiBoZW5zZWlcIDsKK+imqueWjiA+IHNoaW5zb1wgOwor5pa55L6/ID4gaG91YmVuXCA7Civpm6Llrq4gPiByaWt5dXVcIDsKK+e1oueImyA+IGtlbnJhblwgOwor5aSW5ZywID4gZ2FpY2hpXCA7CivlpJblnKggPiBnYWl6YWlcIDsKK+WhqeawlyA+IHNoaW9rZVwgOwor5o6l6L+RID4gc2Vra2luXCA7Civpm4TlvIEgPiB5dXViZW5cIDsKK+exs+i7jSA+IGJlaWd1blwgOwor6Kmp5be7ID4gc2hpa2FuXCA7CivmlLnlu4MgPiBrYWloYWlcIDsKK+majuaVsCA+IGthaXN1dVwgOwor5ZyS6ZW3ID4gZW5jaG91XCA7CivlnLDph5EgPiBqaWdhbmVcIDsKK+e3qeaFoiA+IGthbm1hblwgOwor6Zu75aCxID4gZGVucG91XCA7Civoqr/ljbAgPiBjaG91aW5cIDsKK+mYsueBvSA+IGJvdXNhaVwgOwor5aSp5ZG9ID4gdGVubWVpXCA7CivnsaTpgYsgPiBrdWppdW5cIDsKK+ijnOi2syA+IGhvc29rdVwgOwor5r+B6Z+zID4gZGFrdW9uXCA7CivlpKflkowgPiB5YW1hdG9cIDsKK+irh+WIpCA+IGRhbnBhblwgOwor5pW05ZywID4gc2VpY2hpXCA7CivlpKflkb0gPiB0YWltZWlcIDsKK+mVt+ibhyA+IGNob3VkYVwgOwor5pa55LuKID4gaG91a29uXCA7Civmj5DoqIAgPiB0ZWlnZW5cIDsKK+iovOaLoCA+IHNob3Vrb1wgOwor57SF57KJID4gYmVuaWtvXCA7CivlpKrlkI4gPiB0YWlrb3VcIDsKK+WcsOmFkiA+IGppemFrZVwgOwor6Zq75b2xID4gc2VraWVpXCA7Civlo6vlrpggPiBzaGlrYW5cIDsKK+Wcn+mNiyA+IGRvbmFiZVwgOwor5aSp5ZCOID4gdGVua291XCA7CivngbDoibIgPiBoYWlpcm9cIDsKK+WkqeWPsCA+IHRlbmRhaVwgOwor57O757WxID4ga2VpdG91XCA7CivlpKflkJsgPiB0YWlrdW5cIDsKK+mZsOaguCA+IGlua2FrdVwgOwor5aSn5ZCMID4gZGFpZG91XCA7CivpmrflvpMgPiByZWlqdXVcIDsKK+e0sOebriA+IGhvc29tZVwgOwor5pSv5byBID4gc2hpYmVuXCA7Civmj5DopoEgPiB0ZWl5b3VcIDsKK+eBq+iKsSA+IGhpYmFuYVwgOwor5aSJ5Z6LID4gaGVua2VpXCA7CivntJTnqK4gPiBqdW5zaHVcIDsKK+mbkeWxhSA+IHpha2t5b1wgOwor6ZmN5rC0ID4ga291c3VpXCA7CivmlrnkuIggPiBob3Vqb3VcIDsKK+Wfi+e3miA+IG1haXNlblwgOwor5pWw5ZueID4gc3V1a2FpXCA7CivmloflkI0gPiBidW5tZWlcIDsKK+WlleS4liA+IGVraXNlaVwgOwor57ep5oCgID4ga2FudGFpXCA7Civop6Pms5UgPiBrYWlob3VcIDsKK+aUr+W6lyA+IHNoaXRlblwgOwor5Z+655+zID4ga2lzZWtpXCA7Civoo73ooosgPiBzZWl0YWlcIDsKK+mgu+OAhSA+IGhpbnBpblwgOwor5pac5YWJID4gc2hha291XCA7CivlpYnkvZMgPiBob3V0YWlcIDsKK+mZhOazqCA+IGZ1Y2h1dVwgOwor5pal5YCZID4gc2Vra291XCA7CivplqLoga8gPiBrYW5yZW5cIDsKK+WlieS8uiA+IGhvdXNoaVwgOwor5aSn5Y2KID4gdGFpaGFuXCA7CivopJDol7sgPiBrYXNzb3VcIDsKK+eFveaDhSA+IHNlbmpvdVwgOwor5pW15Za2ID4gdGVraWVpXCA7CivnhKHmr5IgPiBtdWRva3VcIDsKK+Wkp+WMmSA+IG9vc2FqaVwgOwor5Zyo6YO3ID4gemFpZ291XCA7CivntbbmtbcgPiB6ZWtrYWlcIDsKK+mbhOWzsCA+IHl1dWhvdVwgOwor5aWJ5LuVID4gaG91c2hpXCA7CivntI3nqI4gPiBub3V6ZWlcIDsKK+Wcn+mHnCA+IGRvZ2FtYVwgOwor5aSn5YuiID4gdGFpemVpXCA7CivlpY/kuIogPiBzb3Vqb3VcIDsKK+aWreS6pCA+IGRhbmtvdVwgOwor57eS5oimID4gY2hvc2VuXCA7CivmlL7lsIQgPiBob3VzaGFcIDsKK+Wkp+WLhyA+IHRhaXl1dVwgOwor6KaW55WMID4gc2hpa2FpXCA7Civoq5bkuokgPiByb25zb3VcIDsKK+ijs+ijviA+IG1vc3Vzb1wgOwor6Kmm5bCEID4gc2hpc2hhXCA7CivpmaTmoLggPiBqb2tha3VcIDsKK+Wkp+WKnyA+IHRhaWtvdVwgOwor6Kej5q+SID4gZ2Vkb2t1XCA7CivoqanlrpcgPiBzaGlzb3VcIDsKK+aWh+WLoiA+IGJ1bnNlaVwgOwor6Zmw5pqmID4gaW5yZWtpXCA7CivnhKHmrLIgPiBtdXlva3VcIDsKK+WkquWInSA+IHRhaXNob1wgOwor5pWj5ZyoID4gc2FuemFpXCA7Civngq3npKYgPiB0YW5rb3VcIDsKK+eBq+iEmiA+IGhpYXNoaVwgOwor6Kqj5ZGKID4gYnVrb2t1XCA7CivlpKnliJEgPiB0ZW5rZWlcIDsKK+WkqeWIhiA+IHRlbmJ1blwgOwor5aOu5aSnID4gc291ZGFpXCA7CivoobDpoL0gPiBzdWl0YWlcIDsKK+eCueedmyA+IHRlbnNlaVwgOwor5aSn5YiGID4gZGFpYnVuXCA7Civlo67lo6sgPiBzb3VzaGlcIDsKK+aVl+WgsSA+IGhhaWhvdVwgOwor5aSW5ZCRID4gZ2Fpa291XCA7CivlpKfliIAgPiBkYWl0b3VcIDsKK+aUu+WuiCA+IGtvdXNodVwgOwor6ZuR5amaID4gemFra29uXCA7CivmkI3ogJcgPiBzb25tb3VcIDsKK+eCueecvCA+IHRlbmdhblwgOwor5Zyn6L+rID4gYXBwYWt1XCA7CivlpJblj7IgPiBnYWlzaGlcIDsKK+Wkp+WHoSA+IG9veW9zb1wgOwor5r+r6YCgID4gcmFuem91XCA7CivnhpTlsqkgPiB5b3VnYW5cIDsKK+maj+aJgCA+IHp1aXNob1wgOwor5pS55a6aID4ga2FpdGVpXCA7Civpm4XlrqIgPiBnYWtha3VcIDsKK+e1seayuyA+IHRvdWNoaVwgOwor5aSp5YW1ID4gdGVucGVpXCA7CivoprPngrkgPiBrYW50ZW5cIDsKK+maoOW/jSA+IGluJyduaW5cIDsKK+Wkp+WFuCA+IHRhaXRlblwgOwor6Zmk5pyNID4gam9mdWt1XCA7CivlpKflhawgPiB0YWlrb3VcIDsKK+Wkp+WFqCA+IHRhaXplblwgOwor5pW05ZCIID4gc2VpZ291XCA7Civnsr7oiI4gPiBzaG91amFcIDsKK+Wkp+WFhCA+IHRhaWtlaVwgOwor6Kme5a6XID4gc2hpc291XCA7Civlo7Dln58gPiBzZWlpa2lcIDsKK+mbu+WRvSA+IGRlbm1laVwgOwor6KOc6Ki7ID4gaG9jaHV1XCA7CivooaPpo58gPiBpc2hva3VcIDsKK+eEoeanmCA+IGJ1emFtYVwgOwor5pG454mMID4gbW91cGFpXCA7CivmloflhbggPiBidW50ZW5cIDsKK+e3muW9oiA+IHNlbmtlaVwgOwor6ZyK5YmjID4gcmVpa2VuXCA7CivmlbDlkI0gPiBzdXVtZWlcIDsKK+ihqOmfsyA+IGh5b3VvblwgOwor5aSW5YukID4gZ2Fpa2luXCA7CivpnIrliY0gPiByZWl6ZW5cIDsKK+ijnOinkiA+IGhva2FrdVwgOwor6ZqP5oSfID4genVpa2FuXCA7Civngq/nnLwgPiBrZWlnYW5cIDsKK+eFqeaCtiA+IGhhbm1vblwgOwor6KiI5pWwID4ga2Vpc3V1XCA7CivlpJzlh6ogPiB5b25hZ2lcIDsKK+maj+aDsyA+IHp1aXNvdVwgOwor6Ziy5rC0ID4gYm91c3VpXCA7Civmjqjoq5YgPiBzdWlyb25cIDsKK+WkieWQjSA+IGhlbm1laVwgOwor57Wm5rK5ID4ga3l1dXl1XCA7CivoqIDmmI4gPiBnZW5tZWlcIDsKK+WkqeWAmSA+IHRlbmtvdVwgOwor57WC54SJID4gc2h1dWVuXCA7CivnhrHlnosgPiBuZWtrZWlcIDsKK+mbt+WQjSA+IHJhaW1laVwgOwor6Zu35ZCMID4gcmFpZG91XCA7CivpnKfkuK0gPiBtdWNodXVcIDsKK+Wbm+mdoiA+IHNoaW1lblwgOwor57Of57OgID4gc291a291XCA7CivmlbDljYMgPiBzdXVzZW5cIDsKK+aVsOWNgSA+IHN1dWp1dVwgOwor6KaB55SoID4geW91eW91XCA7CivntprmmKAgPiB6b2t1ZWlcIDsKK+mZpOaWpSA+IGpvc2VraVwgOwor6ZuE5ae/ID4geXV1c2hpXCA7CivmlLnlp5MgPiBrYWlzZWlcIDsKK+WkluWIhiA+IGdhaWJ1blwgOwor54WW5oi/ID4gZGFuYm91XCA7CivmlL/lpIkgPiBzZWloZW5cIDsKK+WftOeUnyA+IGhhbnl1dVwgOwor5aSW5Ye6ID4gc290b2RlXCA7Civpm7LlkZEgPiB3YW50YW5cIDsKK+WkleWIiiA+IHl1dWthblwgOwor54Wp5b+ZID4gaGFuYm91XCA7CivntZDmu54gPiBrZXR0YWlcIDsKK+e1qOavryA+IGp1dXRhblwgOwor54KJ56uvID4gcm9iYXRhXCA7Civpm5HloLEgPiB6YXBwb3VcIDsKK+ipqeWjhyA+IHNoaWRhblwgOwor5aSn5L6/ID4gZGFpYmVuXCA7Civntajmr5sgPiBqdXVtb3VcIDsKK+WkqeS9vyA+IHRlbnNoaVwgOwor6Ziy5q2iID4gYm91c2hpXCA7CivntK/niq8gPiBydWloYW5cIDsKK+aOqOioiCA+IHN1aWtlaVwgOwor54Wn5b+cID4gc2hvdW91XCA7CivlpKnkvZMgPiB0ZW50YWlcIDsKK+e4q+WQiCA+IGhvdWdvdVwgOwor6Zu75YuVID4gZGVuZG91XCA7CivnhLbmlq8gPiBzb3Vrb3VcIDsKK+Wkp+S9vyA+IHRhaXNoaVwgOwor6Ki85bemID4gc2hvdXNhXCA7Civlm5vpmqMgPiBzaGlyaW5cIDsKK+mbu+WKuSA+IGRlbmtvdVwgOwor5aSW5YW4ID4gZ2FpdGVuXCA7CivntLDniYcgPiBzYWloZW5cIDsKK+imi+eMvyA+IG1pemFydVwgOwor5aSn5L2TID4gZGFpdGFpXCA7Civlm5vpmoUgPiB5b3N1bWlcIDsKK+WgheeJoiA+IGtlbnJvdVwgOwor54Gr57iEID4gaGluYXdhXCA7CivmlabljpogPiB0b25rb3VcIDsKK+aUueWkiSA+IGthaWhlblwgOwor5aSJ5YuVID4gaGVuZG91XCA7CivnhaflvbEgPiBzaG91ZWlcIDsKK+maj+W+kyA+IHp1aWp1dVwgOwor6ZuE5aSnID4geXV1ZGFpXCA7CivmlofkvosgPiBidW5yZWlcIDsKK+mZjeadvyA+IGtvdWJhblwgOwor5aSn5LyaID4gdGFpa2FpXCA7Civpm6PllY8gPiBuYW5tb25cIDsKK+aVmeWUhiA+IGt5b3VzYVwgOwor5o6i6KiqID4gdGFuYm91XCA7Civmjbvou6IgPiBuZW50ZW5cIDsKK+ihl+mgrSA+IGdhaXRvdVwgOwor5aSn5Lu7ID4gdGFpbmluXCA7Civpm4Tlo64gPiB5dXVzb3VcIDsKK+aWh+S9kyA+IGJ1bnRhaVwgOwor5aSn5LuwID4gb29neW91XCA7CivmlZnlk6EgPiBreW91aW5cIDsKK+Wbs+mMsiA+IHp1cm9rdVwgOwor5aSn5LujID4gZGFpZGFpXCA7CivlpKnkupUgPiB0ZW5qb3VcIDsKK+aOpeimiyA+IHNla2tlblwgOwor6KOP6KWfID4gdXJhZXJpXCA7CivlnJ/otrMgPiBkb3Nva3VcIDsKK+Wkp+S6uiA+IGRhaW5pblwgOwor5paO5Li7ID4gc2Fpc2h1XCA7CivoqJPmiJIgPiBrdW5rYWlcIDsKK+WkluWCtSA+IGdhaXNhaVwgOwor5pWF5Zu9ID4ga29rb2t1XCA7Civmjojos54gPiBqdXNob3VcIDsKK+ipqeWeiyA+IHNoaWtlaVwgOwor6KaL54mpID4gbWltb25vXCA7CivntYzmuIggPiBrZWl6YWlcIDsKK+e3j+W4pSA+IHNvdXN1aVwgOwor5aSp5Li8ID4gdGVuZG9uXCA7CivlpKnkuLsgPiB0ZW5zaHVcIDsKK+Wkp+S5sSA+IHRhaXJhblwgOwor54Kt55SwID4gdGFuZGVuXCA7CivnhafluqYgPiBzaG91ZG9cIDsKK+maiuW9oiA+IHRhaWtlaVwgOwor5Z+O56CmID4gam91c2FpXCA7CivntYLmvJQgPiBzaHV1ZW5cIDsKK+aWh+S6uiA+IGJ1bmppblwgOwor6Kqt5LyaID4gZG9ra2FpXCA7CivlpKfkuZcgPiBkYWlqb3VcIDsKK+WjsuWTgSA+IGJhaWhpblwgOwor5aSp5LiOID4gdGVuJyd5b1wgOwor5aSp5LiKID4gdGVuam91XCA7CivlnYfooaEgPiBraW5rb3VcIDsKK+aUu+WfjiA+IGtvdWpvdVwgOwor5Zyw6KyhID4gaml1dGFpXCA7CivoppbngrkgPiBzaGl0ZW5cIDsKK+aSkuawtCA+IHNhbnN1aVwgOwor6KO96Iy2ID4gc2VpY2hhXCA7Civnga/nsaAgPiB0b3Vyb3VcIDsKK+iqpOS/oSA+IGdvc2hpblwgOwor6Zu75YWJID4gZGVua291XCA7CivlpJzkvL0gPiB5b3RvZ2lcIDsKK+e5i+S6iSA+IGtlaXNvdVwgOwor54Sh5pqXID4gbXV5YW1pXCA7Civoo4HoqLEgPiBzYWlreW9cIDsKK+aTheaWrSA+IHNlbmRhblwgOwor5aSa5L2cID4gdGFzYWt1XCA7Civnh5DlhYkgPiByaW5rb3VcIDsKK+mVt+iAhSA+IGNob3VqYVwgOwor5pWj5YmkID4gc2FuemFpXCA7CivlnLDoqowgPiBjaGlzaGlcIDsKK+WjsuWQjSA+IGJhaW1laVwgOwor6Zm95oCnID4geW91c2VpXCA7CivlpKLkuK0gPiBtdWNodXVcIDsKK+mbt+WFiSA+IHJhaWtvdVwgOwor5aGK5qC5ID4ga2Fpa29uXCA7CivnhJrmm7ggPiBmdW5zaG9cIDsKK+ikque0hSA+IHRhaWtvdVwgOwor5pGC55SfID4gc2Vzc2VpXCA7CivplqLnqbogPiBrYW5rdXVcIDsKK+eEoeaYjiA+IG11bXlvdVwgOwor5pWZ5Yy6ID4ga3lvdWt1XCA7Civnsr7nt7sgPiBzZWljaGlcIDsKK+eyvue3tCA+IHNlaXJlblwgOwor5Zu96YGLID4ga29rdXVuXCA7CivplonntYwgPiBoZWlrZWlcIDsKK+aVmeWMliA+IGt5b3VrYVwgOwor57W55pysID4ga2VucG9uXCA7CivooYDppIUgPiBrZXBwZWlcIDsKK+WkluS8nSA+IGdhaWRlblwgOwor6Zu75YGcID4gZGVudGVpXCA7CivpoIbjgIUgPiBqdW5qdW5cIDsKK+aVsOWApCA+IHN1dWNoaVwgOwor6Zai56iOID4ga2FuemVpXCA7CivmlZnli5kgPiBreW91bXVcIDsKK+aVsOWAjSA+IHN1dWJhaVwgOwor54Sh5paZID4gbXVyeW91XCA7CivlpJzkuK0gPiB5b25ha2FcIDsKK+ino+aYjiA+IGthaW1laVwgOwor54Sh5pW1ID4gbXV0ZWtpXCA7CivmlaPlhbUgPiBzYW5wZWlcIDsKK+e1jOawtCA+IGtlaXN1aVwgOwor5aSW5Lq6ID4gZ2FpamluXCA7CivntJnniYcgPiBzaGloZW5cIDsKK+WkluS6pCA+IGdhaWtvdVwgOwor5aOH5aC0ID4gZGFuam91XCA7CivmlaPlhYkgPiBzYW5rb3VcIDsKK+aNqOi6qyA+IHN1dGVtaVwgOwor6Zqc5a2QID4gc2hvdWppXCA7Civnsr7ntLAgPiBzZWlzYWlcIDsKK+Whl+aWmSA+IHRvcnlvdVwgOwor57Sg54S8ID4gc3V5YWtpXCA7CivntpnmipUgPiBrZWl0b3VcIDsKK+eFmeW5lSA+IGVubWFrdVwgOwor5aSW5LmxID4gZ2FpcmFuXCA7Civpm5Hlk4EgPiB6YXBwaW5cIDsKK+ino+aVoyA+IGthaXNhblwgOwor57K+57OWID4gc2VpdG91XCA7Civpl5jniqwgPiB0b3VrZW5cIDsKK+aTseW6pyA+IGtha3V6YVwgOwor57K+57K+ID4gc2VpemVpXCA7Civop6PmlL4gPiBrYWlob3VcIDsKK+e1tuaZryA+IHpla2tlaVwgOwor6Kmm5ZWPID4gc2hpbW9uXCA7CivoqLHlrrkgPiBreW95b3VcIDsKK+majuWxpCA+IGthaXNvdVwgOwor5Zyw6KOBID4gY2hpc2FpXCA7Civnsr7nsosgPiBzZWlzdWlcIDsKK+eyvueyiSA+IHNlaWZ1blwgOwor5o+657GDID4geW91cmFuXCA7CivmjZXpgLggPiBob2l0c3VcIDsKK+e0m+eEtiA+IGZ1bnplblwgOwor5pWR5YqpID4ga3l1dWpvXCA7Civnsr7nsbMgPiBzZWltYWlcIDsKK+aUueWWhCA+IGthaXplblwgOwor5aSJ5L2TID4gaGVudGFpXCA7CivmlazkvZMgPiBrZWl0YWlcIDsKK+imgeeCuSA+IHlvdXRlblwgOwor5Zyn6KaaID4gYWtrYWt1XCA7CivmlbDkurogPiBzdXVuaW5cIDsKK+mZsOW+syA+IGludG9rdVwgOwor5pWZ5YW3ID4ga3lvdWd1XCA7CivngavnqK4gPiBoaWRhbmVcIDsKK+eCueeCuSA+IHRlbnRlblwgOwor6KiY5bizID4ga2ljaG91XCA7CivoqK3lrpogPiBzZXR0ZWlcIDsKK+aOqOiWpiA+IHN1aXNlblwgOwor54KO55eHID4gZW5zaG91XCA7CivmjoPoqI4gPiBzb3V0b3VcIDsKK+ihhumZoiA+IHNodXVpblwgOwor6Kmp5ZCfID4gc2hpZ2luXCA7Civngrnnga8gPiB0ZW50b3VcIDsKK+eDneawkSA+IGpvdW1pblwgOwor6Kmg5ZSxID4gZWlzaG91XCA7CivlpInkurogPiBoZW5qaW5cIDsKK+e0r+a4myA+IHJ1aWdlblwgOwor57GQ6KO9ID4gdG91c2VpXCA7CivntrHluLggPiBrb3Vqb3VcIDsKK+eyvueuoSA+IHNlaWthblwgOwor57SU54S2ID4ganVuemVuXCA7CivpmLLmmpEgPiBib3VzaG9cIDsKK+eyvueulyA+IHNlaXNhblwgOwor5pWw5LiHID4gc3V1bWFuXCA7CivlnoLnt5ogPiBzdWlzZW5cIDsKK+mWieerryA+IGhlaXRhblwgOwor5aSJ5LmxID4gaGVucmFuXCA7CivplqLnn6UgPiBrYW5jaGlcIDsKK+ipqeWPiyA+IHNoaXl1dVwgOwor57WQ5qeLID4ga2Vra291XCA7Civlo6vliIYgPiBzaGlidW5cIDsKK+mZquW+kyA+IGJhaWp1dVwgOwor6KGj6YmiID4gaWhhdHN1XCA7Civlm5vph40gPiBzaGlqdXVcIDsKK+a9rumfsyA+IGNob3VvblwgOwor6KKr6KaGID4gaGlmdWt1XCA7Civlo7DlhKogPiBzZWl5dXVcIDsKK+mZtuW3pSA+IHRvdWtvdVwgOwor5pWj5LyaID4gc2Fua2FpXCA7CivmjIfpoK0gPiBzaGl0b3VcIDsKK+aUueWQjSA+IGthaW1laVwgOwor54Kv54KvID4ga2Vpa2VpXCA7CivmlLnlj7cgPiBrYWlnb3VcIDsKK+ijvee8tiA+IHNlaWthblwgOwor6KqM5LujID4gc2hpZGFpXCA7Civopb/mvLggPiBzZWl6ZW5cIDsKK+ihsOmAgCA+IHN1aXRhaVwgOwor5pWj5LmxID4gc2FucmFuXCA7CivpmaPlvaIgPiBqaW5rZWlcIDsKK+eCreeBqyA+IHN1bWliaVwgOwor5Zu96LK7ID4ga29rdWhpXCA7CivmlL/lirQgPiBzZWlyb3VcIDsKK+WcsOiZqyA+IG1pbWl6dVwgOwor5aOu5YGlID4gc291a2VuXCA7CivoprPmooUgPiBrYW5iYWlcIDsKK+WbnumBiiA+IGthaXl1dVwgOwor6Kaz5qGcID4ga2FuJydvdVwgOwor5pS75YuiID4ga291c2VpXCA7CivoqozkuIogPiBzaGlqb3VcIDsKK+e0sOawkSA+IHNhaW1pblwgOwor5Zue6YCBID4ga2Fpc291XCA7CivopoHmuK8gPiB5b3Vrb3VcIDsKK+WgheawlyA+IGthdGFnaVwgOwor6ZuE5YuBID4geXV1a2VpXCA7CivlnoLnr4QgPiBzdWloYW5cIDsKK+eEoeaFviA+IG11eW9rdVwgOwor6Zm95a2QID4geW91c2hpXCA7Civpm6Pku7YgPiBuYW5rZW5cIDsKK+mZpOW5lSA+IGpvbWFrdVwgOwor57Wi5paHID4ga2VuYnVuXCA7CivoqJPlsI4gPiBrdW5kb3VcIDsKK+Wbm+i+uiA+IHNoaWhlblwgOwor5pWX5LqhID4gaGFpYm91XCA7Civpm6LkuqwgPiByaWt5b3VcIDsKK+e0heeBryA+IGtvdXRvdVwgOwor5aOy5Lq6ID4gYmFpbmluXCA7CivmlL/lhZogPiBzZWl0b3VcIDsKK+ippuWGmSA+IHNoaXNoYVwgOwor5r2u6ZaTID4gc2hpb21hXCA7Civpm6LkubMgPiByaW55dXVcIDsKK+aUvuWFjSA+IGhvdW1lblwgOwor6KOP6Iq4ID4gdXJhZ2VpXCA7CivmlL7lhYkgPiBob3Vrb3VcIDsKK+ims+acmyA+IGthbmJvdVwgOwor5Zue6LuiID4ga2FpdGVuXCA7CivoqI7lsIsgPiB0b3VqaW5cIDsKK+ijvee0mSA+IHNlaXNoaVwgOwor5aC05pWwID4gYmFrYXp1XCA7Civngavnmr8gPiBoaXphcmFcIDsKK+evhumatyA+IHRlbnJlaVwgOwor6KO957O4ID4gc2Vpc2hpXCA7Civoo73ns5YgPiBzZWl0b3VcIDsKK+Wil+WkpyA+IHpvdWRhaVwgOwor6KW/5rSLID4gc2VpeW91XCA7CivnuIHlhYggPiBlbnNha2lcIDsKK+e1jOacqCA+IGt5b3VnaVwgOwor5aOy5LiKID4gdXJpYWdlXCA7Civpm5Hkv7MgPiB6YXBwYWlcIDsKK+WbveiqniA+IGtva3Vnb1wgOwor6KO957KJID4gc2VpZnVuXCA7CivntYzmm7ggPiBrZWlzaG9cIDsKK+e3tOWKnyA+IHJlbmtvdVwgOwor5pS55YWDID4ga2FpZ2VuXCA7Civmj5vnrpcgPiBrYW56YW5cIDsKK+mWi+ecvCA+IGthaWdlblwgOwor6KGM6YeRID4ga291a2luXCA7CivnspfnspcgPiBhcmFhcmFcIDsKK+eCiueIqCA+IHN1aXNhblwgOwor5r+A6KqeID4gZ2VraWdvXCA7CivooZfpgZMgPiBrYWlkb3VcIDsKK+e0oeavmyA+IGJvdW1vdVwgOwor5aOu5LiBID4gc291dGVpXCA7CivnhKHlv4MgPiBtdXNoaW5cIDsKK+e0q+aqgCA+IHNoaXRhblwgOwor54K55rC0ID4gdGVuc3VpXCA7CivnuIHlgbQgPiBlbmdhd2FcIDsKK+ijnOe/kiA+IGhvc2h1dVwgOwor6Zmj5bGLID4gamluJyd5YVwgOwor6ZuR5Lu2ID4gemFra2VuXCA7CivmjoPolakgPiBzb3V0b3VcIDsKK+mYsuaIpiA+IGJvdXNlblwgOwor57WC5pyfID4gc2h1dWtpXCA7Civpm5HkurogPiB6b3VuaW5cIDsKK+e3tOWFtSA+IHJlbnBlaVwgOwor5aKT5aC0ID4gaGFrYWJhXCA7CivlnoLnpLogPiBzdWlzaGlcIDsKK+aUv+S9kyA+IHNlaXRhaVwgOwor6ZuF5L+XID4gZ2F6b2t1XCA7CivntJTmsLQgPiBqdW5zdWlcIDsKK+ipqeS7mSA+IHNoaXNlblwgOwor5pS/5LukID4gc2VpcmVpXCA7CivmlL7ku7sgPiBob3VuaW5cIDsKK+eyieezoCA+IGtvbnVrYVwgOwor6Kmp5Lq6ID4gc2hpamluXCA7CivmjqjogIMgPiBzdWlrb3VcIDsKK+mZveWgsSA+IHlvdWhvdVwgOwor57eo5Yi2ID4gaGVuc2VpXCA7CivntJTmr5sgPiBqdW5tb3VcIDsKK+aLs+mXmCA+IGtlbnRvdVwgOwor57SF5raZID4ga291cnVpXCA7CivmlL/kuokgPiBzZWlzb3VcIDsKK+e1guaYoCA+IHNodXVlaVwgOwor57Sg5qi4ID4gc29ib2t1XCA7Civmi53poZQgPiBoYWlnYW5cIDsKK+e0hea1tyA+IGtvdWthaVwgOwor6ZmL5be3ID4gcm91a291XCA7Civnt5jlj6MgPiBrYW5rb3VcIDsKK+eyieexsyA+IGtvZ29tZVwgOwor5o6i6IGeID4gdGFuYnVuXCA7CivlmbTpo68gPiBmdW5wYW5cIDsKK+eFveWLlSA+IHNlbmRvdVwgOwor57aZ5a2QID4gbWFtYWtvXCA7CivntJTmraMgPiBqdW5zZWlcIDsKK+imh+alrSA+IGhhZ3lvdVwgOwor6Zm15aKTID4gcnlvdWJvXCA7CivnsKHoo4EgPiBrYW5zYWlcIDsKK+iovOWNsCA+IHNob3VpblwgOwor6Kmm5LmXID4gc2hpam91XCA7CivpmqDljL8gPiBpbnRva3VcIDsKK+imj+agvCA+IGtpa2FrdVwgOwor54Gr546JID4gaGlkYW1hXCA7CivoqKrllY8gPiBob3Vtb25cIDsKK+mVt+ebriA+IG5hZ2FtZVwgOwor5pON5a6IID4gc291c2h1XCA7CivntbHlvqEgPiB0b3VneW9cIDsKK+ifu+mjnyA+IGFyaWt1aVwgOwor5pC+5rK5ID4gc2FrdXl1XCA7Civoob/oo48gPiBlcml1cmFcIDsKK+aMr+i1tyA+IHNoaW5raVwgOwor57eP5ZCIID4gc291Z291XCA7Civoo5zntaYgPiBob2t5dXVcIDsKK+aRguawjyA+IHNlc3NoaVwgOwor6KGM6LuNID4ga291Z3VuXCA7CivoqZXkvqEgPiBoeW91a2FcIDsKK+mWgOeVqiA+IG1vbmJhblwgOwor5aCF5p2QID4ga2VuemFpXCA7Civlm7PooaggPiB6dWh5b3VcIDsKK+WgheacqCA+IGthdGFnaVwgOwor5o+055SoID4gZW4nJ3lvdVwgOwor6Ziy5b6hID4gYm91Z3lvXCA7CivnsbPntr8gPiBiZWltZW5cIDsKK+eBsOeHvCA+IGthaWppblwgOwor54K55qScID4gdGVua2VuXCA7Civlobnlo5UgPiB6YW5nb3VcIDsKK+e0heavmyA+IGtvdW1vdVwgOwor57ea5YiGID4gc2VuYnVuXCA7Civnt5HljJYgPiByeW9ra2FcIDsKK+mZi+WxiyA+IHJvdW9rdVwgOwor5Zyw6IKMID4gamloYWRhXCA7CivpmLLlvL4gPiBib3VkYW5cIDsKK+mZkOWumiA+IGdlbnRlaVwgOwor6KOF572uID4gc291Y2hpXCA7Civpmo7lkI0gPiBrYWltZWlcIDsKK+iogOWkliA+IGdlbmdhaVwgOwor6KeS5bqmID4ga2FrdWRvXCA7CivlnqPniYYgPiBlbnNob3VcIDsKK+e3j+WLoiA+IHNvdXplaVwgOwor5Zue6KiTID4ga2Fpa3VuXCA7Civlo4rkubEgPiBrYWlyYW5cIDsKK+e1seW4pSA+IHRvdXN1aVwgOwor6Kaz5oimID4ga2Fuc2VuXCA7CivmjqXnt5ogPiBzZXNzZW5cIDsKK+e1kOaIkCA+IGtlc3NlaVwgOwor57SE5qy+ID4geWFra2FuXCA7CivooajoqJggPiBoeW91a2lcIDsKK+aSpOW7gyA+IHRlcHBhaVwgOwor6ZmE5bGeID4gZnV6b2t1XCA7Civlm6DopbIgPiBpbnNodXVcIDsKK+WbnuimpyA+IGthaXJhblwgOwor57Gz57KJID4gYmVpZnVuXCA7CivnhanlirQgPiBoYW5yb3VcIDsKK+WiqOWIkSA+IGJva2tlaVwgOwor54Sh5a2mID4gbXVnYWt1XCA7CivooqvohpwgPiBoaW1ha3VcIDsKK+WfjuaxoCA+IGpvdWNoaVwgOwor5o+P56C0ID4gYnlvdWhhXCA7CivmkZjmnpwgPiB0ZWtpa2FcIDsKK+e1tuWztiA+IHpldHRvdVwgOwor6Zmw5ZqiID4gZnVndXJpXCA7Civlo4fkuIogPiBkYW5qb3VcIDsKK+ijj+e0iyA+IHVyYW1vblwgOwor57Sg5py0ID4gc29ib2t1XCA7CivplpPnhLYgPiBrYW56ZW5cIDsKK+aKuemmmSA+IG1ha2tvdVwgOwor5ouz6YqDID4ga2VuanV1XCA7CivntKvmlpEgPiBzaGloYW5cIDsKK+imgeacmyA+IHlvdWJvdVwgOwor6Kaz5oOzID4ga2Fuc291XCA7Civnr4DphZIgPiBzZXNzaHVcIDsKK+imi+aWuSA+IG1pa2F0YVwgOwor57SN5qO6ID4gbm91a2FuXCA7Civoo4HnuKsgPiBzYWlob3VcIDsKK+WZtOmWgCA+IGZ1bm1vblwgOwor54K65pu/ID4ga2F3YXNlXCA7Civooajoo48gPiBoeW91cmlcIDsKK+maj+WIhiA+IHp1aWJ1blwgOwor57W25a++ID4gemV0dGFpXCA7Civpmo/lh6YgPiB6dWlzaG9cIDsKK+eyl+ebriA+IHphcmFtZVwgOwor6Zmj5ZywID4gamluY2hpXCA7CivmvKLpn7MgPiBrYW4nJ29uXCA7CivmjIfovKogPiB5dWJpd2FcIDsKK+aOqOeulyA+IHN1aXNhblwgOwor5Z2H562JID4ga2ludG91XCA7Civngrnmma8gPiB0ZW5rZWlcIDsKK+mZkOWkliA+IGdlbmdhaVwgOwor57KJ56CVID4gZnVuc2FpXCA7Civln7rmlZkgPiBraWt5b3VcIDsKK+mZsOWUhyA+IGluc2hpblwgOwor6KaB5peoID4geW91c2hpXCA7CivoqIrllY8gPiBqaW5tb25cIDsKK+mao+S6uiA+IHJpbmppblwgOwor57Gz56qBID4gbcSTdG9ydVwgOwor57Sg5pW1ID4gc3V0ZWtpXCA7CivlopfliIogPiB6b3VrYW5cIDsKK+Wil+WIhiA+IHpvdWJ1blwgOwor57K+54WJID4gc2VpcmVuXCA7Civmva7ot68gPiBzaGlvamlcIDsKK+e0heaihSA+IGtvdWJhaVwgOwor6ZmN5aOHID4ga291ZGFuXCA7Civopb/mlrkgPiBzZWlob3VcIDsKK+ihk+ioiCA+IGp1a2tlaVwgOwor5o6h566XID4gc2Fpc2FuXCA7CivntI3mna8gPiBub3VoYWlcIDsKK+a9sOi1sCA+IGthaXNvdVwgOwor6KGG6K2wID4gc2h1dWdpXCA7CivopJLnirYgPiBob3Vqb3VcIDsKK+mYsuWvkiA+IGJvdWthblwgOwor6Zqb5LyaID4gc2Fpa2FpXCA7CivngrnmlbAgPiB0ZW5zdXVcIDsKK+e0jeacrCA+IG5vdWhvblwgOwor5ouz6YGTID4ga29uZG91XCA7CivlopflhbUgPiB6b3VoZWlcIDsKK+aYjuOAhSA+IGFrYWFrYVwgOwor6Zmj5Za2ID4gamluJydlaVwgOwor5Z2Q56SBID4gemFzaG91XCA7CivntJnmlbAgPiBzaGlzdXVcIDsKK+e2meWXoyA+IGtlaXNoaVwgOwor57eP5L2TID4gc291dGFpXCA7Civmj4/nlLsgPiBieW91Z2FcIDsKK+e0m+aTviA+IGZ1bmpvdVwgOwor54G45rK7ID4ga3l1dWppXCA7Civnt4/kvJogPiBzb3VrYWlcIDsKK+aOpeeoriA+IHNlc3NodVwgOwor57eP5LujID4gc291ZGFpXCA7CivploDnga8gPiBtb250b3VcIDsKK+aLoOmHkSA+IGt5b2tpblwgOwor6ZaA54GrID4ga2Fkb2JpXCA7CivnhY7liaQgPiBzZW56YWlcIDsKK+e1tuWlvSA+IHpla2tvdVwgOwor54Sm5ZyfID4gc2hvdWRvXCA7CivntKDmj48gPiBzb2J5b3VcIDsKK+e0huabsiA+IHVreW9rdVwgOwor5oud6YeRID4gaGFpa2luXCA7CivoorHntJcgPiBmdWt1c2FcIDsKK+maj+S8tCA+IHp1aWhhblwgOwor6Zm95YWJID4geW91a291XCA7CivntYzluLggPiBrZWlqb3VcIDsKK+aPkOeQtCA+IHRlaWtpblwgOwor57WM5birID4ga3lvdWppXCA7CivoqJjlhaUgPiBraW55dXVcIDsKK+WcqOexsyA+IHphaWJlaVwgOwor6Kaa5oKfID4ga2FrdWdvXCA7Civlopfkv7ggPiB6b3Vob3VcIDsKK+iioue6jyA+IGhhbnRlblwgOwor6ZaL5rivID4ga2Fpa291XCA7Civlopfkvr8gPiB6b3ViaW5cIDsKK+e2nOWQiCA+IHNvdWdvdVwgOwor6Zmw5Yi7ID4gaW5rb2t1XCA7CivmvI/pm7sgPiByb3VkZW5cIDsKK+ikkOeCrSA+IGthdHRhblwgOwor6ZqO5LmXID4ga2Fpam91XCA7Civmjrvnl5IgPiBzb3V5b3VcIDsKK+eCieajmiA+IHJvZGFuYVwgOwor6Kej5ZujID4ga2FpZGFuXCA7CivlooPlhoUgPiBrZWlkYWlcIDsKK+majuS4iiA+IGthaWpvdVwgOwor6Zme5Y+ZID4gc2hvdWpvXCA7Civmjqjnn6UgPiBzdWljaGlcIDsKK+aTvuS5sSA+IGpvdXJhblwgOwor54Gr5rC0ID4gaGltaXp1XCA7Civoo73niYggPiBzZWloYW5cIDsKK+evpOihjCA+IHRva2tvdVwgOwor6KaB5omAID4geW91c2hvXCA7CivlnLDnqI4gPiBjaGl6ZWlcIDsKK+e1ueWcsCA+IGtpbnVqaVwgOwor6KiA5YuVID4gZ2VuZG91XCA7Civnsr7mtrIgPiBzZWlla2lcIDsKK+mYsuWhtSA+IGJvdWppblwgOwor5o6i55+lID4gdGFuY2hpXCA7CivloIXlv5cgPiBrZW5zaGlcIDsKK+mYsuWhniA+IGJvdXNhaVwgOwor5Zmo6YePID4ga2lyeW91XCA7CivmjJnooYwgPiBreW9rb3VcIDsKK+eBjOa8kSA+IGthbmdhaVwgOwor6Ziq5aSnID4gaGFuZGFpXCA7CivooYDooYwgPiBrZWtrb3VcIDsKK+mVt+a5ryA+IG5hZ2F5dVwgOwor57aa5YiKID4gem9ra2FuXCA7CivlnJ/nq5wgPiBtb2d1cmFcIDsKK+a8uOi/kSA+IHplbmtpblwgOwor5Zyf56qvID4gZG9nYW1hXCA7CivpmaLlhoUgPiBpbicnbmFpXCA7CivloLTlpJYgPiBqb3VnYWlcIDsKK+ijveeCrSA+IHNlaXRhblwgOwor5Z6C5rqWID4gc3VpanVuXCA7CivnsonnirYgPiBmdW5qb3VcIDsKK+eEoeWRiiA+IG11a29rdVwgOwor6KiT5LukID4ga3VucmVpXCA7CivopovlvZMgPiBrZW50b3VcIDsKK+e0r+W5tCA+IHJ1aW5lblwgOwor5Zue6Ii5ID4ga2Fpc2VuXCA7CivpmY3lj4IgPiBrb3VzYW5cIDsKK+Wcp+elniA+IGFzc2hpblwgOwor57Gz55SjID4gYmVpc2FuXCA7CivntZDlqZogPiBrZWtrb25cIDsKK+WbnuiIqiA+IGthaWtvdVwgOwor6ZaJ5q2iID4gaGVpc2hpXCA7CivntI3miYAgPiBuYXNzaG9cIDsKK+aSpOWbniA+IHRla2thaVwgOwor57Gg55uuID4ga2Fnb21lXCA7CivntJTmhJsgPiBqdW4nJ2FpXCA7CivmipXpmY0gPiB0b3Vrb3VcIDsKK+e0uuWxiyA+IGtvbicneWFcIDsKK+aJi+m8uyA+IHRlYmFuYVwgOwor6ZW35rOiID4gY2hvdWhhXCA7Civmk43lhbggPiBzb3V0ZW5cIDsKK+Wegua2jiA+IHp1aXplblwgOwor57Si5byVID4gc2FrdWluXCA7CivntJTmg4UgPiBqdW5qb3VcIDsKK+eCueW/gyA+IHRlbmppblwgOwor6Zai5p2xID4ga2FudG91XCA7CivnhYnkuLkgPiByZW50YW5cIDsKK+e1tuWTgSA+IHplcHBpblwgOwor5o6i55WqID4gdGFuYmFuXCA7CivoqIzkuokgPiBrb3Vzb3VcIDsKK+mWgOatryA+IG1vbnNoaVwgOwor5r+D57S6ID4gbm91a29uXCA7CivntITmiYsgPiB5YWt1dGVcIDsKK+WcsOebuCA+IGNoaXNvdVwgOwor6KGw6ICXID4gc3VpbW91XCA7CivnrYbpoK0gPiBoaXR0b3VcIDsKK+aOoeeUqCA+IHNhaXlvdVwgOwor54GM5rC0ID4ga2Fuc3VpXCA7CivmjZXnuJsgPiBob2Jha3VcIDsKK+ijgueXlCA+IGtpcmVqaVwgOwor57KJ54KtID4gZnVudGFuXCA7CivpmarkuZcgPiBiYWlqb3VcIDsKK+Wbm+iCoiA+IHNoaXNoaVwgOwor566h6LKhID4ga2FuemFpXCA7Civoo4XnlLIgPiBzb3Vrb3VcIDsKK+ijheeUqCA+IHNvdXlvdVwgOwor6KiI5LiKID4ga2Vpam91XCA7Civpl5jlv5cgPiB0b3VzaGlcIDsKK+Wcp+edgCA+IGF0c3VnaVwgOwor5Z6j5qC5ID4ga2FraW5lXCA7Civlm6Dnv5IgPiBpbnNodXVcIDsKK+mdouOAhSA+IG1lbm1lblwgOwor5Zub6IGWID4gc2hpc2VpXCA7Civop6PliZYgPiBrYWlib3VcIDsKK+e1seWQiCA+IHRvdWdvdVwgOwor5Zyf55+zID4gZG9zZWtpXCA7CivplovmorEgPiBrYWlrb25cIDsKK+mZhOWJhyA+IGZ1c29rdVwgOwor5r2c6KGMID4gc2Vua291XCA7CivntJnluaMgPiBzaGloZWlcIDsKK+iln+aHkCA+IGtpbmthaVwgOwor6Kej5YeNID4ga2FpdG91XCA7CivlnLDnlaogPiBjaGliYW5cIDsKK+eEmuWIkSA+IGZ1bmtlaVwgOwor5Z6C5q27ID4gc3Vpc2hpXCA7CivntLDlrZcgPiBob3NvamlcIDsKK+e0sOWtlCA+IHNhaWtvdVwgOwor5aCF5a6IID4ga2Vuc2h1XCA7CivnhKHlhJ8gPiBtdXNob3VcIDsKK+eBq+acqCA+IGthbW9rdVwgOwor57WC5aScID4gc2h1dXlhXCA7CivlnLDnlYwgPiBjaGlrYWlcIDsKK+mWouaVsCA+IGthbnN1dVwgOwor57WD5aOwID4gZ2Vuc2VpXCA7CivoqIDkuIogPiBnb25qb3VcIDsKK+mWi+agoSA+IGthaWtvdVwgOwor5oud6KydID4gaGFpc2hhXCA7CivplpPmnI0gPiBhaWZ1a3VcIDsKK+ino+WFmiA+IGthaXRvdVwgOwor6ZaJ5qChID4gaGVpa291XCA7CivnhKHlgrcgPiBtdWtpenVcIDsKK+aPmuawtCA+IHlvdXN1aVwgOwor5pKk5Y67ID4gdGVra3lvXCA7Civoo73ms5UgPiBzZWlob3VcIDsKK+a7numZoyA+IHRhaWppblwgOwor57K+5qC5ID4gc2Vpa29uXCA7Civlm6DnuIEgPiBpbicnbmVuXCA7Civopb/lsrggPiBzZWlnYW5cIDsKK+WYhumhmCA+IHRhbmdhblwgOwor5r6x57KJID4gZGVucHVuXCA7CivntbHliLYgPiB0b3VzZWlcIDsKK+aMgeiWrCA+IGppeWFrdVwgOwor5Zue57eaID4ga2Fpc2VuXCA7CivplpPmlq0gPiBrYW5kYW5cIDsKK+aLneimsyA+IGhhaWthblwgOwor6KaB5a6zID4geW91Z2FpXCA7CivntJnlsYsgPiBrYW1peWFcIDsKK+mZjeS7uyA+IGtvdW5pblwgOwor5oud6KaLID4gaGFpa2VuXCA7Civon6DouJ4gPiBiYW5reW9cIDsKK+mWk+aVsCA+IG1ha2F6dVwgOwor5Zu956aBID4ga29ra2luXCA7CivmjL/ntbUgPiBzYXNoaWVcIDsKK+WcsOeNhCA+IGppZ29rdVwgOwor54Sh5LyRID4gbXVreXV1XCA7CivlnoLmpYogPiBzdWl5b3VcIDsKK+aOjOeQhiA+IHNob3VyaVwgOwor57Sw5aSnID4gc2FpZGFpXCA7CivplpHmlaMgPiBrYW5zYW5cIDsKK+mWi+aYjiA+IGthaW1laVwgOwor5Zyf55SjID4gbWl5YWdlXCA7Civop6PkvZMgPiBrYWl0YWlcIDsKK+aOpeeCuSA+IHNldHRlblwgOwor5Zu956SOID4ga29rdXNvXCA7Civmu5HpmY0gPiBrYWtrb3VcIDsKK+mWqOaIvyA+IGtlaWJvdVwgOwor6ZaL5pa5ID4ga2FpaG91XCA7Civnq6/pupcgPiB0YW5yZWlcIDsKK+ihgOiGvyA+IGNoaXVtaVwgOwor6Kej5Lu7ID4ga2FpbmluXCA7CivmlrnjgIUgPiBob3Vib3VcIDsKK+e1tuWAkiA+IHpldHRvdVwgOwor57SZ5a2QID4ga2FtaWtvXCA7Civngq3lsaQgPiB0YW5zb3VcIDsKK+aSpOWFtSA+IHRlcHBlaVwgOwor57Sr5aSWID4gc2hpZ2FpXCA7CivntK/lopcgPiBydWl6b3VcIDsKK+ihjOiAhSA+IGd5b3VqYVwgOwor5o6h54K5ID4gc2FpdGVuXCA7CivmkLrluK8gPiBrZWl0YWlcIDsKK+aOoeeCrSA+IHNhaXRhblwgOwor54OI5aOrID4gcmVzc2hpXCA7CivplovmlL4gPiBrYWlob3VcIDsKK+a8q+irhyA+IG1hbmRhblwgOwor5omL6aeSID4gdGVnb21hXCA7CivloIXloYEgPiBrZW5ydWlcIDsKK+aJi+mmliA+IHRla3ViaVwgOwor5aCC5aGUID4gZG91dG91XCA7CivplbfmnJ8gPiBjaG91a2lcIDsKK+WgheWfjiA+IGtlbmpvdVwgOwor54KJ5b+DID4gcm9zaGluXCA7CivnrYbpi5IgPiBoaXBwb3VcIDsKK+WgguWggiA+IGRvdWRvdVwgOwor5ryr6KiAID4gbWFuZ2VuXCA7Civlm57nrZQgPiBrYWl0b3VcIDsKK+imquWSjCA+IHNoaW53YVwgOwor57WM5Y+jID4ga2Vpa291XCA7Civln47luIIgPiBqb3VzaGlcIDsKK+e1tuS6pCA+IHpla2tvdVwgOwor5Z6C5pyoID4gdGFydWtpXCA7CivloLTlhoUgPiBqb3VuYWlcIDsKK+aMieiFuSA+IGFucHVrdVwgOwor6KOc5rOoID4gaG9jaHV1XCA7CivlnLDngrkgPiBjaGl0ZW5cIDsKK+a8ouipqSA+IGthbnNoaVwgOwor6ZeH5bGLID4geWFtaXlhXCA7CivntbbkuJYgPiB6ZXNzZWlcIDsKK+aKgOmHjyA+IGdpcnlvdVwgOwor5omL6aC4ID4gdGVrdWJpXCA7CivntYTlkIggPiBrdW1pYWlcIDsKK+eCieW6iiA+IHJvc2hvdVwgOwor5omL6aCDID4gdGVnb3JvXCA7CivopovlnLAgPiBrZW5jaGlcIDsKK+imgeWhniA+IHlvdXNhaVwgOwor6KKr54iGID4gaGliYWt1XCA7Civon7fonoIgPiB0b3Vyb3VcIDsKK+imhuWcnyA+IGZ1a3Vkb1wgOwor5Z+55ZywID4gYmFpY2hpXCA7CivmvZzoiKogPiBzZW5rb3VcIDsKK+ilv+WfnyA+IHNlaWlraVwgOwor57Wm5LuYID4ga3l1dWZ1XCA7Civntabku5UgPiBreXV1amlcIDsKK+WbnuekvCA+IGthaXJlaVwgOwor5omA6aGYID4gc2hvZ2FuXCA7Civpl5jlo6sgPiB0b3VzaGlcIDsKK+e1kOWFmiA+IGtldHRvdVwgOwor54CV5q27ID4gaGluc2hpXCA7CivntJTlopcgPiBqdW56b3VcIDsKK+mWi+aIpiA+IGthaXNlblwgOwor6Kaz5YWJID4ga2Fua291XCA7Civoo73mnZAgPiBzZWl6YWlcIDsKK+a6nOmjsiA+IHJ5dXVpblwgOwor6KGo56S6ID4gaHlvdWppXCA7CivopoHlnLAgPiB5b3VjaGlcIDsKK+ijveacrCA+IHNlaWhvblwgOwor54OZ5Y2wID4gcmFrdWluXCA7CivmiYvpmpsgPiB0ZWdpd2FcIDsKK+aJi+mamSA+IHRlc3VraVwgOwor57WM5YW4ID4ga2VpdGVuXCA7CivopqrliIYgPiBveWFidW5cIDsKK+e0meWeiyA+IHNoaWtlaVwgOwor562J6L66ID4gdG91aGVuXCA7CivngrnlnKggPiB0ZW56YWlcIDsKK+WcsOa6nSA+IGNoaWtvdVwgOwor57Wm5LiOID4ga3l1dXlvXCA7Civngq3lobUgPiB0YW5qaW5cIDsKK+WbveeSvSA+IGtva3VqaVwgOwor57KX5pyNID4gc29mdWt1XCA7CivooYDntbEgPiBrZXR0b3VcIDsKK+eBq+aApSA+IGtha3l1dVwgOwor5Z+f5aSWID4gaWtpZ2FpXCA7Civnq7/poK0gPiBrYW50b3VcIDsKK+e0sOWQmyA+IHNhaWt1blwgOwor54Gv5b2xID4gaG9rYWdlXCA7CivmipXos4cgPiB0b3VzaGlcIDsKK+aLmeiRlyA+IHNldGNob1wgOwor6KGA57OWID4ga2V0dG91XCA7CivmiYvplbcgPiB0ZW5hZ2FcIDsKK+eBq+W9sSA+IGhva2FnZVwgOwor5o6S5rayID4gaGFpZWtpXCA7Civngq3lnZEgPiB0YW5rb3VcIDsKK+mXh+WknCA+IHlhbWl5b1wgOwor5Zu9546LID4ga29rdW91XCA7CivntIXlobUgPiBrb3VqaW5cIDsKK+imi+WPsCA+IGtlbmRhaVwgOwor57KJ5pysID4gZnVucG9uXCA7CivplbfmiZMgPiBjaG91ZGFcIDsKK+imi+WPgiA+IGtlbnphblwgOwor57K+5oKNID4gc2Vpa2FuXCA7CivlnI/ngrkgPiBrZW50ZW5cIDsKK+eBq+W6iiA+IGhpZG9rb1wgOwor6KGA566hID4ga2Vra2FuXCA7CivntYzkvJ0gPiBrZWlkZW5cIDsKK+aNleeQgyA+IGhva3l1dVwgOwor5oiQ6a2aID4gc2VpZ3lvXCA7Civooajnmq4gPiBoeW91aGlcIDsKK+ihjOeoiyA+IGtvdXRlaVwgOwor5o+a5o+aID4geW91eW91XCA7Civln47lpJYgPiBqb3VnYWlcIDsKK+aMh+e0iyA+IHNoaW1vblwgOwor5o6S5rC0ID4gaGFpc3VpXCA7Civlm73niLYgPiBrb2t1ZnVcIDsKK+e0sOWIhiA+IHNhaWJ1blwgOwor54G95a6zID4gc2FpZ2FpXCA7Civplovlu7cgPiBrYWl0ZWlcIDsKK+WYiei+sCA+IGthc2hpblwgOwor5o2V542yID4gaG9rYWt1XCA7CivmjIHntpogPiBqaXpva3VcIDsKK+a6tumKkSA+IHlvdXNlblwgOwor6KaP5YmHID4ga2lzb2t1XCA7Civplonlu7cgPiBoZWl0ZWlcIDsKK+aPoeaJiyA+IGFrdXNodVwgOwor6ZaL5bqXID4ga2FpdGVuXCA7Civnsr7lvakgPiBzZWlzYWlcIDsKK+aPkOaQuiA+IHRlaWtlaVwgOwor5omL6Y2LID4gdGVuYWJlXCA7CivmjoPmtbcgPiBzb3VrYWlcIDsKK+ernOmmrCA+IHJ5dXVtZVwgOwor5Z+O5aGeID4gam91c2FpXCA7CivntYzkuJYgPiBrZWlzZWlcIDsKK+mWi+W5syA+IGthaWhlaVwgOwor5oqX6KiAID4ga291Z2VuXCA7Civnqq7pvKAgPiBreXV1c29cIDsKK+mWieW6lyA+IGhlaXRlblwgOwor5Z+O5aGBID4gam91cnVpXCA7Civmu5Hou4ogPiBrYXNzaGFcIDsKK+erpemhlCA+IGRvdWdhblwgOwor5Zue55SfID4ga2Fpc2VpXCA7CivmuoDpoZggPiBtYW5nYW5cIDsKK+mWi+W3uyA+IGthaWthblwgOwor6KW/5Y2XID4gc2VpbmFuXCA7CivmjqLmpJwgPiB0YW5rZW5cIDsKK+mWgOW8nyA+IG1vbnRlaVwgOwor5oim6ZuyID4gc2VuJyd1blwgOwor5omL6YmkID4gdGVrYWdpXCA7Civmub7poK0gPiB3YW50b3VcIDsKK+e0jeWTgSA+IG5vdWhpblwgOwor5Zan6aiSID4ga2Vuc291XCA7CivmkI3lrrMgPiBzb25nYWlcIDsKK+exs+adkCA+IGJlaXphaVwgOwor5Z+O5Z2AID4gam91c2hpXCA7CivmiKbpmoogPiBzZW50YWlcIDsKK+aLneiBniA+IGhhaWJ1blwgOwor6Jya6bOlID4gaGljaG91XCA7CivmiKbpmaMgPiBzZW5qaW5cIDsKK+eyvuW3pyA+IHNlaWtvdVwgOwor57K+5bejID4gc2Vpc291XCA7CivmuoDpnaIgPiBtYW5tZW5cIDsKK+mWkeWxhSA+IGthbmt5b1wgOwor56uc6aCtID4gcnl1dXp1XCA7Civmu5HotbAgPiBrYXNzb3VcIDsKK+WWq+mjryA+IGtpcHBhblwgOwor57Si5YW3ID4gc2FrdWd1XCA7Civoo4/mnb8gPiB1cmFpdGFcIDsKK+idpumMoCA+IGViaWpvdVwgOwor54Gr5a6FID4ga2F0YWt1XCA7CivmiKbpl5ggPiBzZW50b3VcIDsKK+aJi+mFjCA+IHRlamFrdVwgOwor5ouZ6ICFID4gc2Vzc2hhXCA7CivplovlsbEgPiBrYWlzYW5cIDsKK+mVt+W6pyA+IGNob3V6YVwgOwor5ryi6IuxID4ga2FuJydlaVwgOwor6ZaJ5bGxID4gaGVpemFuXCA7CivlmInos54gPiBrYXNob3VcIDsKK+WcsOaknCA+IGNoaWtlblwgOwor6ZaJ5bGFID4gaGVpa3lvXCA7CivplovlsIEgPiBrYWlmdXVcIDsKK+aRguWPliA+IHNlc3NodVwgOwor6Zai5aSnID4ga2FuZGFpXCA7Civlm73mvKIgPiBrb2trYW5cIDsKK+eCueWFiSA+IHRlbmtvdVwgOwor54Kt5Yq0ID4gdGFucm91XCA7CivmirnojLYgPiBtYXRjaGFcIDsKK+WbnueKtiA+IGthaWpvdVwgOwor57Sv5LujID4gcnVpZGFpXCA7Civmi5jnva4gPiBrb3VjaGlcIDsKK+e0lOWIhiA+IGp1bmJ1blwgOwor5Z2m5oeQID4gdGFua2FpXCA7CivlnYfmlokgPiBraW5zZWlcIDsKK+a6gOmWiyA+IG1hbmthaVwgOwor5Z2H5pW0ID4ga2luc2VpXCA7CivntK/kuZcgPiBydWlqb3VcIDsKK+aOqOaWrSA+IHN1aWRhblwgOwor5pWj44CFID4gc2FuemFuXCA7CivmibnoqZUgPiBoaWh5b3VcIDsKK+aOiOalrSA+IGp1Z3lvdVwgOwor6J6N6LOHID4geXV1c2hpXCA7CivmjqjmlbIgPiBzdWlrb3VcIDsKK+e0r+S4liA+IHJ1aXNlaVwgOwor6KGA55u4ID4ga2Vzc291XCA7CivnspjmgKcgPiBuZW5zZWlcIDsKK+ikh+W6pyA+IGZ1a3V6YVwgOwor5r+D5rehID4gbm91dGFuXCA7CivmjrLmj5ogPiBrZWl5b3VcIDsKK+imi+S6iyA+IG1pZ290b1wgOwor57K+5a2QID4gc2Vpc2hpXCA7CivloILkuIogPiBkb3Vqb3VcIDsKK+ies+iegiA+IHRvdXJvdVwgOwor5omL6Lu9ID4gdGVnYXJ1XCA7CivngbDlobUgPiBoYWlqaW5cIDsKK+WcqOagoSA+IHphaWtvdVwgOwor6KSl5ammID4gam9rdWZ1XCA7CivmvJXoiYcgPiBzb3V0ZWlcIDsKK+mVt+WxiyA+IG5hZ2F5YVwgOwor6KGA55ewID4ga2V0dGFuXCA7Civplovlp4sgPiBrYWlzaGlcIDsKK+ihhueUnyA+IHNodWpvdVwgOwor6KaB5Lu2ID4geW91a2VuXCA7CivooYDnl5UgPiBrZWtrb25cIDsKK+Wfn+WGhSA+IGlraW5haVwgOwor6ZW35a+/ID4gY2hvdWp1XCA7CivopoHkurogPiB5b3VqaW5cIDsKK+WcqOadpSA+IHphaXJhaVwgOwor5oyZ55SoID4ga3lveW91XCA7CivplbflrrYgPiBuYWdheWFcIDsKK+ijgeaWrSA+IHNhaWRhblwgOwor5oqc6JCDID4gYmFzc3VpXCA7CivntJvkuokgPiBmdW5zb3VcIDsKK+aJgOi8iSA+IHNob3NhaVwgOwor5omL6LazID4gdGVhc2hpXCA7CivlnKfmnI0gPiBhcHB1a3VcIDsKK+e0m+S5sSA+IGZ1bnJhblwgOwor5r2w55iNID4ga2FpeW91XCA7Civplovlor4gPiBrYWlrb25cIDsKK+WcsOaWuSA+IGNoaWhvdVwgOwor5o6o5oyZID4gc3Vpa3lvXCA7Civlm73mr40gPiBrb2t1Ym9cIDsKK+eykuW6piA+IHJ5dXVkb1wgOwor5Zyw5paHID4gY2hpbW9uXCA7CivooZfnh4ggPiBnYWl0b3VcIDsKK+a4uOmtmiA+IHl1dWd5b1wgOwor5oqX6I+MID4ga291a2luXCA7CivntJnkuIogPiBzaGlqb3VcIDsKK+mWi+WgtCA+IGthaWpvdVwgOwor6J6N6KejID4geXV1a2FpXCA7Civlm57mvJUgPiBrYWlzb3VcIDsKK+Wcn+acqCA+IGRvYm9rdVwgOwor6ZaJ5aC0ID4gaGVpam91XCA7CivooqvmnI0gPiBoaWZ1a3VcIDsKK+WWiemgrSA+IGtvdXRvdVwgOwor6ZaR5ZywID4ga2FuY2hpXCA7CivnsbPmh4cgPiBiZWlrb25cIDsKK+mXmOS6iSA+IHRvdXNvdVwgOwor57SN5LyaID4gbm91a2FpXCA7Civplovln44gPiBrYWlqb3VcIDsKK+mWo+WToSA+IGtha3VpblwgOwor6ZaA5aSWID4gbW9uZ2FpXCA7Civmjbrmn5MgPiBuYXNzZW5cIDsKK+iiq+abnSA+IGhpYmFrdVwgOwor5o6o5oi0ID4gc3VpdGFpXCA7Civln47lhoUgPiBqb3VuYWlcIDsKK+euoeerryA+IGthbnRhblwgOwor5Z+O5YW1ID4gam91aGVpXCA7CivmvIHoiLkgPiBneW9zZW5cIDsKK+mXh+WApCA+IHlhbWluZVwgOwor5ryU57+SID4gZW5zaHV1XCA7CivmjqXmiKYgPiBzZXNzZW5cIDsKK+Wbnua4uCA+IGthaXl1dVwgOwor6KGX54GvID4gZ2FpdG91XCA7Civnq7bovKogPiBrZWlyaW5cIDsKK+aMgeeXhSA+IGppYnlvdVwgOwor6ZW35aWzID4gY2hvdWpvXCA7Civlm73mqKkgPiBrb2trZW5cIDsKK+e0iuS5sSA+IGJ1bnJhblwgOwor6ZW35aScID4gY2hvdXlhXCA7CivmjIfnkrAgPiB5dWJpd2FcIDsKK+aLmeeovyA+IHNla2tvdVwgOwor5Zyf5pa5ID4gZG9rYXRhXCA7CivmiZPoqLogPiBkYXNoaW5cIDsKK+WWhOmciiA+IHplbnJlaVwgOwor5oud56S8ID4gaGFpcmVpXCA7Civlm5vmtbcgPiBzaGlrYWlcIDsKK+Wcp+aQviA+IGFzc2FrdVwgOwor5rq26KejID4geW91a2FpXCA7CivmvJTnubkgPiBlbicnZWtpXCA7Civoo5zlvLcgPiBob2t5b3VcIDsKK+mWgOWcsCA+IG1vbmNoaVwgOwor5ouY56aBID4ga291a2luXCA7Civnq4vpjJAgPiByaXNzdWlcIDsKK+eyvuWaoiA+IHNlaW5vdVwgOwor5ZaE6ZqjID4gemVucmluXCA7CivnrJHoqbEgPiBzaG91d2FcIDsKK+mOlOmKkSA+IHlvdXNlblwgOwor5oim6LuKID4gc2Vuc2hhXCA7CivlnZHlupUgPiBrb3V0ZWlcIDsKK+eBr+WPsCA+IHRvdWRhaVwgOwor566X56iLID4gc2FudGVpXCA7CivmiYvoqLEgPiB0ZW1vdG9cIDsKK+a4oOmtgSA+IGt5b2thaVwgOwor6KGw5q6LID4gc3VpemFuXCA7CivoobDmrbsgPiBzdWlzaGlcIDsKK+eyieWxiyA+IGtvbmF5YVwgOwor5Z+O5LujID4gam91ZGFpXCA7CivmiYDoq5YgPiBzaG9yb25cIDsKK+Wbm+awkSA+IHNoaW1pblwgOwor5Zuj5qySID4gZGFucmFuXCA7CivmuoDovIkgPiBtYW5zYWlcIDsKK+aOpeW+hSA+IHNldHRhaVwgOwor5rqA6LuKID4gbWFuc2hhXCA7CivmiYDoqa4gPiBzaG9zZW5cIDsKK+WfjuS4uyA+IGpvdXNodVwgOwor5Zyo5omAID4gemFpc2hvXCA7CivngJHluIMgPiBiYWt1ZnVcIDsKK+exs+W4nSA+IGJlaXRlaVwgOwor57OW5YiGID4gdG91YnVuXCA7CivmkK3kuZcgPiB0b3Vqb3VcIDsKK+WWnemHhyA+IGthc3NhaVwgOwor6ZaL5Y+jID4ga2Fpa291XCA7Civmurbono0gPiB5b3V5dXVcIDsKK+eBsOWIhiA+IGthaWJ1blwgOwor5Ziy5721ID4gY2hvdWJhXCA7CivnrYvohasgPiBraW5zaHVcIDsKK+mWieWPoyA+IGhlaWtvdVwgOwor6Juu6aKoID4gYmFucHV1XCA7Civmh4fpoZggPiBrb25nYW5cIDsKK+ethuiHtCA+IGhpdGNoaVwgOwor5omA6KaLID4gc2hva2VuXCA7CivmiYDopoEgPiBzaG95b3VcIDsKK+Wbs+afhCA+IHp1Z2FyYVwgOwor6KOF5by+ID4gc291ZGFuXCA7CivmiIrovrAgPiBib3NoaW5cIDsKK+a8gee2siA+IGd5b21vdVwgOwor5Zu95pivID4ga29rdXplXCA7Civnga/lhYkgPiB0b3Vrb3VcIDsKK+eznuS+vyA+IGZ1bmJlblwgOwor6J206J22ID4ga29jaG91XCA7Civmva7ngKwgPiBzaGlvc2VcIDsKK+mWouS/giA+IGthbmtlaVwgOwor56ul6LKeID4gZG91dGVpXCA7CivnqoHpoqggPiB0b3BwdXVcIDsKK+a/gOaYgiA+IGdla2tvdVwgOwor5oqY57eaID4gc2Vzc2VuXCA7CivngavlhYggPiBob3Nha2lcIDsKK+exs+WxiyA+IGtvbWV5YVwgOwor54Gr5YWDID4gaGltb3RvXCA7CivlnLDlvaIgPiBjaGlrZWlcIDsKK+a6gOiyqyA+IG1hbmdhblwgOwor6KOF5bmAID4gc291dGVpXCA7Civmj7rli5UgPiB5b3Vkb3VcIDsKK+ewoeaYjiA+IGthbm1laVwgOwor5oiv6KmVID4gZ2loeW91XCA7Civnsr7li6QgPiBzZWlraW5cIDsKK+aKnOezuCA+IGJhc3NoaVwgOwor6KGA5riFID4ga2Vzc2VpXCA7CivnqbTppqwgPiBhbmF1bWFcIDsKK+eyvuWKsSA+IHNlaXJlaVwgOwor54Gr5YK3ID4geWFrZWRvXCA7Civmu4Xoj4wgPiBtZWtraW5cIDsKK+ethuiAlSA+IGhpa2tvdVwgOwor6Y6u6K23ID4gY2hpbmdvXCA7Civom67pmrcgPiBiYW5yZWlcIDsKK+ethuiAhSA+IGhpc3NoYVwgOwor5oqc57KLID4gYmFzc3VpXCA7CivlnLDlupUgPiBjaGl0ZWlcIDsKK+WcqOW9uSA+IHphaWVraVwgOwor5omN6Je7ID4gc2Fpc291XCA7CivlnLDlubMgPiBjaGloZWlcIDsKK+eyvuWIsCA+IHNlaXRvdVwgOwor5o+b5ZapID4ga2FuJyd5dVwgOwor57KJ5aG1ID4gZnVuamluXCA7CivlnLDluK8gPiBjaGl0YWlcIDsKK+evgOeCuSA+IHNldHRlblwgOwor5o6o5a6aID4gc3VpdGVpXCA7Civnq6XorKEgPiBkb3V5b3VcIDsKK+WVj+mhjCA+IG1vbmRhaVwgOwor6ZaA5YmNID4gbW9uemVuXCA7Civlm5vmoYEgPiB5b2tldGFcIDsKK+ihjOauiiA+IGd5b3Vqb1wgOwor5Z2m5Z2mID4gdGFudGFuXCA7Civnqbrpn7MgPiBzb3JhbmVcIDsKK+mWouS4jiA+IGthbicneW9cIDsKK+Wcp+W7tiA+IGF0c3VlblwgOwor6KGw5pu/ID4gc3VpdGFpXCA7CivplovlgqwgPiBrYWlzYWlcIDsKK+mWgOWHuiA+IGthZG9kZVwgOwor57K+5YW1ID4gc2VpaGVpXCA7CivmjqHlr7ggPiBzYWlzdW5cIDsKK+mWi+WCmCA+IGthaXNhblwgOwor5om257+8ID4gZnV5b2t1XCA7CivmkI3kuqEgPiBzb25ib3VcIDsKK+mWg+WFiSA+IHNlbmtvdVwgOwor57Gg5bGFID4gcm91a3lvXCA7CivlnZHlpJYgPiBrb3VnYWlcIDsKK+aHuOi7jSA+IGtlbmd1blwgOwor6b6N6aasID4gcnl1dW1lXCA7Civnqbrpm7sgPiBrdXVkZW5cIDsKK+Wbm+abuCA+IHNoaXNob1wgOwor5oyZ5q2iID4ga3lvc2hpXCA7Civoo73lk4EgPiBzZWloaW5cIDsKK+epuumamyA+IGt1dXNhaVwgOwor5ZaE6YGTID4gemVuZG91XCA7CivmuIXpoqggPiBzZWlmdXVcIDsKK+euoeeKtiA+IGthbmpvdVwgOwor6Y2b6YysID4gdGFucmVuXCA7CivlnLDlsaQgPiBjaGlzb3VcIDsKK+eBq+S4rSA+IGthY2h1dVwgOwor5Zu95oqAID4ga29rdWdpXCA7CivpjLLpn7MgPiByb2t1b25cIDsKK+mNm+mLvCA+IHRhbmtvdVwgOwor6KOB5a6aID4gc2VpdGVpXCA7CivmiYDolLUgPiBzaG96b3VcIDsKK+mVt+WGhiA+IGNob3VlblwgOwor6ZaL5LyaID4ga2Fpa2FpXCA7CivmuKzpjpYgPiBzb2t1c2FcIDsKK+a9n+a5liA+IHNla2lrb1wgOwor5ZaJ6LyqID4gbm9kb3dhXCA7CivmuIvpnaIgPiBqdXVtZW5cIDsKK+mWieS8miA+IGhlaWthaVwgOwor5Zue5peLID4ga2Fpc2VuXCA7CivnrYbntJkgPiBoaXNzaGlcIDsKK+aNleaNiSA+IGhvc29rdVwgOwor56m66ZaoID4ga3V1a2VpXCA7Civmva7msJcgPiBzaGlva2VcIDsKK+WbnuaWhyA+IGthaWJ1blwgOwor5ryU55uuID4gZW5tb2t1XCA7CivnqbrplpMgPiBrdXVrYW5cIDsKK+WbveaGsiA+IGtva2tlblwgOwor5Zue5pWwID4ga2Fpc3V1XCA7CivmipXnqL8gPiB0b3Vrb3VcIDsKK+WbveaFtiA+IGtva2tlaVwgOwor5omN6Iq4ID4gc2FpZ2VpXCA7CivopIfliKkgPiBmdWt1cmlcIDsKK+ijj+WjsCA+IHVyYWdvZVwgOwor5rue57SNID4gdGFpbm91XCA7Civlm5vmlaMgPiBzaGlzYW5cIDsKK+a4k+mWkyA+IGtlaWthblwgOwor5oug54K5ID4ga3lvdGVuXCA7CivmiYvoirggPiBzaHVnZWlcIDsKK+a4rOmJmyA+IHNva3VlblwgOwor5Zyo5a6YID4gemFpa2FuXCA7CivlmbTnhZkgPiBmdW4nJ2VuXCA7Civmu57nsbMgPiB0YWliZWlcIDsKK+a8gueggiA+IGh5b3VzYVwgOwor6ZaA5Lq6ID4gbW9uamluXCA7CivnrYbnrpcgPiBoaXNzYW5cIDsKK+WbveaBqSA+IGtva3VvblwgOwor5o6D5bCEID4gc291c2hhXCA7CivpjpTop6MgPiB5b3VrYWlcIDsKK+ethuetlCA+IGhpdHRvdVwgOwor5omN6IWVID4gc2Fpd2FuXCA7Civlm7DmhoogPiBrb25wYWlcIDsKK+evgOawtCA+IHNlc3N1aVwgOwor5r2F5ryRID4ga2FuZ2FpXCA7CivnrYbnq68gPiBoaXR0YW5cIDsKK+etlOekvCA+IHRvdXJlaVwgOwor5omL6IWVID4gc2h1d2FuXCA7CivmvZzmsLQgPiBzZW5zdWlcIDsKK+a/gOaAkiA+IGdla2lkb1wgOwor5omN6IO9ID4gc2Fpbm91XCA7Civoo4XloasgPiBzb3V0ZW5cIDsKK+aLs+azlSA+IGtlbnBvdVwgOwor5riF6ZaRID4gc2Vpa2FuXCA7CivmjqXlnLAgPiBzZXRjaGlcIDsKK+mNm+mAoCA+IHRhbnpvdVwgOwor56uc6J2mID4gaXNlZWJpXCA7CivlnLDlpIkgPiBjaGloZW5cIDsKK+ihgOagkyA+IGtlc3NlblwgOwor5o6S5aSWID4gaGFpZ2FpXCA7Civlm6PmiYcgPiB1Y2hpd2FcIDsKK+aJi+iBtyA+IHRlam9rdVwgOwor56qT6L66ID4gbWFkb2JlXCA7CivooZPmlbAgPiBqdXNzdXVcIDsKK+exoOWfjiA+IHJvdWpvdVwgOwor5ryr54S2ID4gbWFuemVuXCA7Civmu57nqbogPiB0YWlrdXVcIDsKK+a3sembqiA+IG1peXVraVwgOwor5Zyw5aGKID4gY2hpa2FpXCA7Civlm57miKYgPiBrYWlzZW5cIDsKK+a/geW6piA+IGRha3Vkb1wgOwor5omL57+wID4gc2h1a2FuXCA7CivlnKjlpKkgPiB6YWl0ZW5cIDsKK+ihjOaXhSA+IGtvdXJ5b1wgOwor56i96aaWID4ga2Vpc2h1XCA7Civnq5zomY4gPiByeW91a29cIDsKK+WcqOWkliA+IHphaWdhaVwgOwor6KGw5oWLID4gc3VpdGFpXCA7CivooYzmlocgPiBrb3VidW5cIDsKK+ihgOabuCA+IGtlc3Nob1wgOwor6KOC5ZywID4ga2lyZWppXCA7CivlnZHlj6MgPiBrb3Vrb3VcIDsKK+WcsOWfnyA+IGNoaWlraVwgOwor5rib6YWNID4gZ2VucGFpXCA7CivnqY3pm7IgPiBzZWtpdW5cIDsKK+a6gOiSmSA+IG1hbm1vdVwgOwor5ry45ribID4gemVuZ2VuXCA7Civlm57mg7MgPiBrYWlzb3VcIDsKK+a7keepuiA+IGtha2t1dVwgOwor5rex6ZaTID4gZnVrYW1hXCA7Civmu5HnqL0gPiBrb2trZWlcIDsKK+a8q+a8qyA+IG1hbm1hblwgOwor6Yys6Yu8ID4gcmVua291XCA7CivooYDmlpEgPiBrZXBwYW5cIDsKK+eomumwpCA+IHdhcmFzYVwgOwor5rib6YCAID4gZ2VudGFpXCA7Civnq6/oiYcgPiB0YW50ZWlcIDsKK+aOpeWQuyA+IHNlcHB1blwgOwor5o6o5Y+CID4gc3Vpc2FuXCA7Civmi5jms6UgPiBrb3VkZWlcIDsKK+eti+ebriA+IHN1amltZVwgOwor5oim6ImmID4gc2Vua2FuXCA7Civoo5zliYcgPiBob3Nva3VcIDsKK+aNqOWtkCA+IHN1dGVnb1wgOwor5Zm05rOJID4gZnVuc2VuXCA7CivnqJrpro4gPiBjaGlheXVcIDsKK+icpeictCA+IHRva2FnZVwgOwor5oud5q6/ID4gaGFpZGVuXCA7CivnqJrprZogPiBjaGlneW9cIDsKK+Wdh+WLoiA+IGtpbnNlaVwgOwor5Zu95a+MID4ga29rdWZ1XCA7CivmjqHlj5YgPiBzYWlzaHVcIDsKK+WdkeWGhSA+IGtvdW5haVwgOwor5Zm05rC0ID4gZnVuc3VpXCA7CivmiYvntJkgPiB0ZWdhbWlcIDsKK+eul+azlSA+IHNhbnBvdVwgOwor5Zu95a2XID4ga29rdWppXCA7Civlm5rlvpIgPiBzaHV1dG9cIDsKK+ihsOW5oyA+IHN1aWhlaVwgOwor56+G5pu4ID4gdGVuc2hvXCA7CivnqK7poZ4gPiBzaHVydWlcIDsKK+a4hemFkiA+IHNlaXNodVwgOwor57KJ5L2TID4gZnVudGFpXCA7CivlnI/lpJYgPiBrZW5nYWlcIDsKK+ijnOWEnyA+IGhvc2hvdVwgOwor5ZWG6YGLID4gc2hvdXVuXCA7Civlm57lu4ogPiBrYWlyb3VcIDsKK+epuui7oiA+IGt1dXRlblwgOwor5Z2H5YiGID4ga2luYnVuXCA7Civmu4Xnp4EgPiBtZXNzaGlcIDsKK+epuui7jSA+IGt1dWd1blwgOwor56m66LuKID4ga3V1c2hhXCA7CivnsovkurogPiBzdWlqaW5cIDsKK+aJi+exoCA+IHRla2Fnb1wgOwor56m66LqrID4ga2FyYW1pXCA7CivmjIfmlbAgPiBzaGlzdXVcIDsKK+WWhOihjCA+IHplbmtvdVwgOwor6Yya6YyaID4gc291c291XCA7CivmiYvnsKEgPiBzaHVrYW5cIDsKK+eul+autSA+IHNhbmRhblwgOwor5riF6YGKID4gc2VpeXV1XCA7CivlnLDlkI0gPiBjaGltZWlcIDsKK+a6gOiFlCA+IG1hbmtvdVwgOwor5oqr54CdID4gaGlyZWtpXCA7Civmi5LmraIgPiBreW9zaGlcIDsKK+aJi+eusSA+IHRlYmFrb1wgOwor5omL566hID4gdGVrdWRhXCA7CivnrYbnlJ8gPiBoaXNzZWlcIDsKK+ijnOS/riA+IGhvc2h1dVwgOwor5o6l5YaZID4gc2Vzc2hhXCA7Civlm5vlt50gPiBzaGlzZW5cIDsKK+aJi+etiyA+IHRlc3VqaVwgOwor5omL562IID4gdGVoYXp1XCA7CivmjJnmiYsgPiBreW9zaHVcIDsKK+eqgeiyqyA+IHRva2thblwgOwor6KGh5bmzID4ga291aGVpXCA7CivmupbnuIQgPiBqdW5qb3VcIDsKK+eruee4gSA+IHRha2VlblwgOwor5o6S5Y21ID4gaGFpcmFuXCA7Civmua/oirEgPiB5dWJhbmFcIDsKK+a4m+izhyA+IGdlbnNoaVwgOwor6KGA5oimID4ga2Vzc2VuXCA7Civmh4foq4sgPiBrb25zZWlcIDsKK+aHh+irhyA+IGtvbmRhblwgOwor5o2o5aC0ID4gc3V0ZWJhXCA7CivmjqHlhYkgPiBzYWlrb3VcIDsKK+WcsOWLoiA+IGNoaXNlaVwgOwor5rmv6Ii5ID4geXVidW5lXCA7CivnrZLnirYgPiB0b3Vqb3VcIDsKK+ihhuaEmiA+IHNodXVndVwgOwor56iy6ZaAID4gdG91bW9uXCA7Civoo4HliKQgPiBzYWliYW5cIDsKK+ernOiDhiA+IHJpbmRvdVwgOwor5omA566hID4gc2hva2FuXCA7Civmt7Hpg6ggPiBzaGluYnVcIDsKK+aIuOexjSA+IGtvc2VraVwgOwor5o6i5YG1ID4gdGFudGVpXCA7Civnr4Dmk40gPiBzZXNzb3VcIDsKK+iiq+WRiiA+IGhpa29rdVwgOwor5re36L+3ID4ga29ubWVpXCA7Civmu4Xnm7ggPiBtZXNzb3VcIDsKK+err+e3miA+IHRhbnNlblwgOwor56uv57eSID4gdGFuY2hvXCA7CivlnKjli6QgPiB6YWlraW5cIDsKK+a9lOaWjiA+IGtlc3NhaVwgOwor5oiQ6IKyID4gc2VpaWt1XCA7CivonIjomqMgPiBtdWthZGVcIDsKK+Wcp+WLnSA+IGFzc2hvdVwgOwor5rW36bygID4gbmFtYWtvXCA7CivmiKbnt5ogPiBzZW5zZW5cIDsKK+a8v+aenCA+IHNob3VrYVwgOwor5Zu65Z+3ID4ga29zaHV1XCA7CivmjqXkvLQgPiBzZXBwYW5cIDsKK+erueewgCA+IHRha2VzdVwgOwor5Zmo5qW9ID4ga2lnYWt1XCA7CivlnLDlhYMgPiBqaW1vdG9cIDsKK+a3t+i8iSA+IGtvbnNhaVwgOwor5ray6Z2iID4gZWtpbWVuXCA7Civom4fotrMgPiBkYXNva3VcIDsKK+a7vua7viA+IGtvbmtvblwgOwor5Zu95ZyfID4ga29rdWRvXCA7CivombnpnJMgPiBrb3VnZWlcIDsKK+ihjOW5uCA+IG1peXVraVwgOwor6KGM5bm0ID4ga291bmVuXCA7Civnqbroq5YgPiBrdXVyb25cIDsKK+epuuirhyA+IGt1dWRhblwgOwor5ryB5rivID4gZ3lva291XCA7CivmuIXosqcgPiBzZWloaW5cIDsKK+aJjeefpSA+IHNhaWNoaVwgOwor6J2L57SZID4gcm91c2hpXCA7CivmhJvps6UgPiBhaWNob3VcIDsKK+ibruihjCA+IGJhbmtvdVwgOwor5ryP5rC0ID4gcm91c3VpXCA7CivllYborbAgPiBzaG91Z2lcIDsKK+igseaDkSA+IGtvd2FrdVwgOwor5oiv56yRID4gZ2lzaG91XCA7CivnrYvngo4gPiBraW4nJ2VuXCA7CivmjpLkvr8gPiBoYWliZW5cIDsKK+WbveWWtiA+IGtva3VlaVwgOwor5Zub5aeTID4gc2hpc2VpXCA7Civmi67mja4gPiBraWtreW9cIDsKK+aKq+attCA+IGhpcmVraVwgOwor5o2V5ZuaID4gaG9zaHV1XCA7Civlm57lpKkgPiBrYWl0ZW5cIDsKK+aMr+WtkCA+IGZ1cmlrb1wgOwor5Zm45pWwID4gdG9uc3V1XCA7CivmvIHms5UgPiBneW9ob3VcIDsKK+ijheS4gSA+IHNvdXRlaVwgOwor5Zuj5aGKID4gZGFua2FpXCA7CivmjaflkYggPiBob3V0ZWlcIDsKK+a4m+ihsCA+IGdlbnN1aVwgOwor5Zyw5LujID4gY2hpZGFpXCA7CivmiKbnq68gPiBzZW50YW5cIDsKK+WWq+e3iiA+IGtpa2tpblwgOwor5Zub5aOwID4gc2hpc2VpXCA7CivmiYvnmZYgPiB0ZWt1c2VcIDsKK+aLruaKlyA+IGtpa2tvdVwgOwor6Yyv6KqkID4gc2FrdWdvXCA7CivnqI7plqIgPiB6ZWlrYW5cIDsKK+a8geawkSA+IGd5b21pblwgOwor5Zyo5L2PID4gemFpanV1XCA7CivomorpiaQgPiBrYWJhcmlcIDsKK+aMh+W8viA+IHNoaWRhblwgOwor5Zue5aCxID4ga2FpaG91XCA7CivlnLDkuIogPiBjaGlqb3VcIDsKK+WcqOS7uyA+IHphaW5pblwgOwor5Zyn5LyPID4gYXBwdWt1XCA7Civmva7lubIgPiBzaGlvaGlcIDsKK+a1t+mtmiA+IGthaWd5b1wgOwor5Zec55ygID4gc2hpbWluXCA7CivnrpfmlbAgPiBzYW5zdXVcIDsKK+Wcn+S/tSA+IGRvaHlvdVwgOwor5ZyS5YaFID4gZW4nJ25haVwgOwor5Zuj5ZywID4gZGFuY2hpXCA7CivlnJ/kv5cgPiBkb3pva3VcIDsKK+iaiumHnSA+IGthYmFyaVwgOwor6KGG5a+hID4gc2h1dWthXCA7Civmipzmra8gPiBiYXNzaGlcIDsKK+a9ruW3riA+IGNob3VzYVwgOwor5r+D5Y6aID4gbm91a291XCA7CivmvKLmm7ggPiBrYW5zaG9cIDsKK+aJk+eQgyA+IGRha3l1dVwgOwor6by76Y+hID4gYmlreW91XCA7CivnrKbniZIgPiBmdWNob3VcIDsKK+WcqOS4liA+IHphaXNlaVwgOwor5o6I5LmzID4ganVueXV1XCA7CivmtbfpqaIgPiBhc2hpa2FcIDsKK+a8q+aWhyA+IG1hbmJ1blwgOwor6KGo5ZyfID4gaHlvdWRvXCA7CivmiJDnrpcgPiBzZWlzYW5cIDsKK+WbveWLmSA+IGtva3VtdVwgOwor5raI6Z+zID4gc2hvdW9uXCA7CivnsKHljZggPiBrYW50YW5cIDsKK+aIkeetiSA+IHdhcmVyYVwgOwor5oy95ZueID4gYmFua2FpXCA7CivmipjmqrsgPiBzZWtrYW5cIDsKK+epuuiZmiA+IGt1dWt5b1wgOwor5r+A5YuZID4gZ2VraW11XCA7CivlnJ/kuK0gPiBkb2NodXVcIDsKK+aJgOeUqCA+IHNob3lvdVwgOwor5omA55SjID4gc2hvc2FuXCA7CivmvKLmlrkgPiBrYW5wb3VcIDsKK+a3uuimiyA+IHNlbmtlblwgOwor6J6N54K5ID4geXV1dGVuXCA7Civlm73liKkgPiBrb2t1cmlcIDsKK+a8ouaWhyA+IGthbmJ1blwgOwor5omL546JID4gdGVkYW1hXCA7Civmu5Tmu5QgPiB0b3V0b3VcIDsKK+WWqueroCA+IG1vc2hvdVwgOwor5oiQ56m6ID4gc2Vpa3V1XCA7CivlmofmgJIgPiBrYWt1ZG9cIDsKK+Wbo+WToSA+IGRhbicnaW5cIDsKK+ethuazlSA+IGhpcHBvdVwgOwor5rW36aKoID4ga2FpZnV1XCA7CivmiYvni60gPiB0ZXplbWFcIDsKK+WbveWFiSA+IGtva2tvdVwgOwor5oyH5bCOID4gc2hpZG91XCA7CivpvL7phZQgPiBrYW5zdWlcIDsKK+mKgOmxlyA+IGdpbnJpblwgOwor5oSf6Zu7ID4ga2FuZGVuXCA7CivllZPokpkgPiBrZWltb3VcIDsKK+ihhuWkmiA+IHNodXV0YVwgOwor56iO6YeRID4gemVpa2luXCA7CivmjIflrpogPiBzaGl0ZWlcIDsKK+a4qeiJryA+IG9ucnlvdVwgOwor5Zaq56WtID4gc291c2FpXCA7Civmh5Dog44gPiBrYWl0YWlcIDsKK+a1t+mdoiA+IGthaW1lblwgOwor6buS6bWQID4ga3Vyb2ppXCA7CivntK/jgIUgPiBydWlydWlcIDsKK+a8q+aJjSA+IG1hbnphaVwgOwor6KCP5bqnID4ga2FuaXphXCA7CivoobDli6IgPiBzdWlzZWlcIDsKK+a8geadkSA+IGd5b3NvblwgOwor5rW36ZujID4ga2FpbmFuXCA7CivloILjgIUgPiBkb3Vkb3VcIDsKK+WbguWbgiA+IGdvdWdvdVwgOwor5ryB5pyfID4gcnlvdWtpXCA7CivnqbrojbcgPiBrYXJhbmlcIDsKK+aKseaTgSA+IGhvdXlvdVwgOwor6Yuz6LKoID4gY2h1dWthXCA7CivooYDloYogPiBrZWtrYWlcIDsKK+Wbm+WNgyA+IHlvbnNlblwgOwor5Zub5Y2BID4geW9uanV1XCA7CivnsKHkvr8gPiBrYW5iZW5cIDsKK+WbveS8miA+IGtva2thaVwgOwor566h5bymID4ga2FuZ2VuXCA7CivmtbfpmLIgPiBrYWlib3VcIDsKK+WUkOipqSA+IHRvdXNoaVwgOwor6by76LyqID4gaGFuYXdhXCA7Civlm73kuqQgPiBrb2trb3VcIDsKK+WbveS6iyA+IGtva3VqaVwgOwor5rW36ZaiID4ga2Fpa2FuXCA7CivmipXmm7ggPiB0b3VzaG9cIDsKK+a1t+mWgCA+IGthaW1vblwgOwor5Zuz5L2TID4genV1dGFpXCA7CivnrrHlsYsgPiBoYWtveWFcIDsKK+a7heazlSA+IG1lcHBvdVwgOwor5Zub5YiGID4gc2hpYnVuXCA7CivmirXmipcgPiB0ZWlrb3VcIDsKK+mRveWtlCA+IHNhbmtvdVwgOwor5r+B5LiWID4gZGFrdXNlXCA7CivngrnjgIUgPiB0ZW50ZW5cIDsKK+m9suidlSA+IHVzaG9rdVwgOwor5omL5ryJID4gdGVzdWtpXCA7CivooajlhbcgPiBoeW91Z3VcIDsKK+mNm+e3tCA+IHRhbnJlblwgOwor6J+55bqnID4ga2FuaXphXCA7Civomq/ompMgPiBtaW1penVcIDsKK+a6tua2siA+IHlvdWVraVwgOwor5ryB5pKIID4gZ3lvcm91XCA7Civnr4DlpY8gPiBzZXNzb3VcIDsKK+WVhuiIlyA+IHNob3Vob1wgOwor6Yu86KO9ID4ga291c2VpXCA7Civmi5DluK8gPiBrYWl0YWlcIDsKK+a4m+iAlyA+IGdlbm1vdVwgOwor56uv54mpID4gaGFtb25vXCA7CivmhJ/pipggPiBrYW5tZWlcIDsKK+aIpueKryA+IHNlbnBhblwgOwor5oqx5oeQID4gaG91a2FpXCA7CivooYzlj7ggPiBneW91amlcIDsKK+aLheW9kyA+IHRhbnRvdVwgOwor56+J5Z+OID4gdHN1aWtpXCA7CivnqpLntKAgPiBjaGlzc29cIDsKK+Wbo+S9kyA+IGRhbnRhaVwgOwor5oug5a6IID4ga3lvc2h1XCA7Civpi63op5IgPiBlaWtha3VcIDsKK+enmOmMsiA+IGhpcm9rdVwgOwor5oub5a60ID4gc2hvdWVuXCA7Civnp4Hpl5ggPiBzaGl0b3VcIDsKK+ihsOS6oSA+IHN1aWJvdVwgOwor56uc546LID4gcnl1dW91XCA7Civnq6/nhLYgPiB0YW56ZW5cIDsKK+Wbo+S6pCA+IGRhbmtvdVwgOwor5Zm05bCEID4gZnVuc2hhXCA7CivooYzli5UgPiBrb3Vkb3VcIDsKK+WVj+e9qiA+IG1vbnphaVwgOwor5omL5rOVID4gc2h1aG91XCA7Civpu5vpnZIgPiB0YWlzZWlcIDsKK+aLmeWuiCA+IHNlc3NodVwgOwor6KGw5LiWID4gc3Vpc2VpXCA7Civom4fohbkgPiBqYWJhcmFcIDsKK+etieaWuSA+IHRvdWhvdVwgOwor5ZG96aGMID4gbWVpZGFpXCA7CivmvZzlnKggPiBzZW56YWlcIDsKK+aFo+ihjCA+IGthbmtvdVwgOwor5omL5rC0ID4gdGVtaXp1XCA7CivmirXlvZMgPiB0ZWl0b3VcIDsKK+aEm+mDtyA+IGFpa3lvdVwgOwor56yR5rCXID4gc2hvdWtpXCA7Civmup3muKAgPiBrb3VreW9cIDsKK+aKl+aLkiA+IGtvdWt5b1wgOwor5oim54G9ID4gc2Vuc2FpXCA7CivpipjpipggPiBtZWltZWlcIDsKK+aJi+avrCA+IHRlbWFyaVwgOwor5oqY5oqYID4gb3Jpb3JpXCA7Civmua/njokgPiB5dWRhbWFcIDsKK+aMq+WCtyA+IHphc2hvdVwgOwor566X5a6aID4gc2FudGVpXCA7Civnq7bmvJQgPiBreW91ZW5cIDsKK+aMmeWLlSA+IGt5b2RvdVwgOwor5rWB6Z+zID4gcnl1dW9uXCA7CivmiYvmrrUgPiBzaHVkYW5cIDsKK+aIkOeKrCA+IHNlaWtlblwgOwor6Y6u54GrID4gY2hpbmthXCA7CivmipfmiKYgPiBrb3VzZW5cIDsKK+m7kumbsiA+IGtva3V1blwgOwor5oqV5omLID4gdG91c2h1XCA7CivmuoDngrkgPiBtYW50ZW5cIDsKK+ihjOWEgCA+IGd5b3VnaVwgOwor6Y2155ukID4ga2VuYmFuXCA7CivmtYHpnLIgPiByeXV1cm9cIDsKK+aKiuaNiSA+IGhhc29rdVwgOwor5oyH5ZCRID4gc2hpa291XCA7CivooYDliKQgPiBrZXBwYW5cIDsKK+aMh+WQjSA+IHNoaW1laVwgOwor6Je76aGeID4gc291cnVpXCA7CivmtYHpm6IgPiByeXV1cmlcIDsKK+mKmOmFkiA+IG1laXNodVwgOwor5rW36YGTID4ga2FpZG91XCA7CivpvKDos4ogPiBzb3pva3VcIDsKK+aMmeWFtSA+IGt5b2hlaVwgOwor5rip56qBID4gb25kb3J1XCA7CivmiYvmqZ8gPiB0ZWJhdGFcIDsKK+mRkeWumiA+IGthbnRlaVwgOwor5oyZ5YWaID4ga3lvdG91XCA7Civmi7fllY8gPiBnb3Vtb25cIDsKK+aMh+WNlyA+IHNoaW5hblwgOwor6J6N5pyXID4geXV1cm91XCA7CivpurrpoZ4gPiBtZW5ydWlcIDsKK+a4m+eulyA+IGdlbnphblwgOwor6YqF6YqtID4gZG91c2VuXCA7Civnq7bms7MgPiBreW91ZWlcIDsKK+ihjOS9vyA+IGtvdXNoaVwgOwor5oi45q+OID4ga29nb3RvXCA7CivpioXpibEgPiBkb3Vrb3VcIDsKK+a4m+etiSA+IGdlbnRvdVwgOwor5omL5qWtID4gdGV3YXphXCA7CivmvLjlopcgPiB6ZW56b3VcIDsKK+emj+mfsyA+IGZ1a3VpblwgOwor5rqQ5rOJID4gZ2Vuc2VuXCA7Civmtbfou40gPiBrYWlndW5cIDsKK+a2iOiyuyA+IHNob3VoaVwgOwor5rqA5rqAID4gbWFubWFuXCA7CivmtarpgJ8gPiBuYW5pd2FcIDsKK+mKgOmJsSA+IGdpbmtvdVwgOwor6KGM5Lq6ID4ga291amluXCA7CivllY/nrZQgPiBtb25kb3VcIDsKK+WQuemztCA+IHN1aW1laVwgOwor562G5omNID4gaGlzc2FpXCA7CivooYzkuosgPiBneW91amlcIDsKK+mKgOmItCA+IGdpbnJlaVwgOwor5riF57SUID4gc2VpanVuXCA7CivnrYbmiKYgPiBoaXNzZW5cIDsKK+enu+iorSA+IGlzZXRzdVwgOwor6Jma6KqVID4ga3lvdGFuXCA7CivmiKbms5UgPiBzZW5wb3VcIDsKK+a3i+iPjCA+IHJpbmtpblwgOwor5rq25p2QID4geW91emFpXCA7CivmuJvnqI4gPiBnZW56ZWlcIDsKK+aKl+W8gSA+IGtvdWJlblwgOwor562W5b+cID4gc2FrdW91XCA7CivnqbrnqbogPiBrdXVrdXVcIDsKK+ertuatqSA+IGt5b3Vob1wgOwor5riF57KLID4gc2Vpc3VpXCA7Civnp4HpgrggPiBzaGl0ZWlcIDsKK+m6qumhniA+IG1lbnJ1aVwgOwor5rip55+zID4gb25qYWt1XCA7CivomZroqIAgPiBreW9nZW5cIDsKK+m7kumNtSA+IGtva2tlblwgOwor5omL5p+EID4gdGVnYXJhXCA7Civnp4HpgbggPiBzaGlzZW5cIDsKK+aJi+aetyA+IHRla2FzZVwgOwor5re357eaID4ga29uc2VuXCA7Civnp4HpgZMgPiBzaGlkb3VcIDsKK+ethuaEjyA+IGhpdHN1aVwgOwor56+A5Yi2ID4gc2Vzc2VpXCA7Civnq6/mraMgPiB0YW5zZWlcIDsKK+aJi+acrSA+IHRlZnVkYVwgOwor5riF566XID4gc2Vpc2FuXCA7CivnrZTlvIEgPiB0b3ViZW5cIDsKK+aJgeahgyA+IGhlbnRvdVwgOwor5r2c5Ye9ID4gc2Vua2FuXCA7CivmtJfpoZQgPiBzZW5nYW5cIDsKK+aLneWVkyA+IGhhaWtlaVwgOwor5oim5q27ID4gc2Vuc2hpXCA7CivmiYvmm7ggPiBzaHVzaG9cIDsKK+a3t+e0oSA+IGtvbmJvdVwgOwor5ZOA6Kq/ID4gYWljaG91XCA7CivmtZzovrogPiBoYW1hYmVcIDsKK+aEn+isnSA+IGthbnNoYVwgOwor6buS6YmbID4ga29rdWVuXCA7CivmiY3mmbogPiBzYWljaGlcIDsKK+WTgeipniA+IGhpbnNoaVwgOwor5rqA5rC0ID4gbWFuc3VpXCA7CivmiLjmo5ogPiB0b2RhbmFcIDsKK+a0i+mkqCA+IHlvdWthblwgOwor6byO6KuHID4gdGVpZGFuXCA7Civmub/msJcgPiBzaGlra2VcIDsKK+igleWLlSA+IHplbmRvdVwgOwor5oiR5rWBID4gZ2FyeXV1XCA7CivllYbnp5EgPiBzaG91a2FcIDsKK+aLneWRvSA+IGhhaW1laVwgOwor5oKq6aKoID4gYWt1ZnV1XCA7CivmtJfpnaIgPiBzZW5tZW5cIDsKK+aLneWRiCA+IGhhaXRlaVwgOwor5r2w5LmxID4ga2FpcmFuXCA7CivmtIvpoqggPiB5b3VmdXVcIDsKK+epuuegsiA+IGt1dWhvdVwgOwor5r2c5YOPID4gc2Vuem91XCA7CivmhJvoqq0gPiBhaWRva3VcIDsKK+aJi+aXlyA+IHRlYmF0YVwgOwor5oSb6KqmID4gYWlzaG91XCA7CivmiYDmnJsgPiBzaG9tb3VcIDsKK+aJgOaciSA+IHNob3l1dVwgOwor6buS6YWSID4ga3Vyb2tpXCA7CivmiZPmkrIgPiBkYWJva3VcIDsKK+aMh+S7pCA+IHNoaXJlaVwgOwor56qD55uXID4gc2V0dG91XCA7CivpioDovKogPiBnaW5yaW5cIDsKK+emhemWgCA+IHplbm1vblwgOwor5omT5pKDID4gZGFnZWtpXCA7Civnr4DlgLkgPiBzZWtrZW5cIDsKK+aJv+W8lSA+IHNob3VpblwgOwor56+E5L6LID4gaGFucmVpXCA7Civpu4TpioUgPiBrb3Vkb3VcIDsKK+aEj+itmCA+IGlzaGlraVwgOwor5rSe6ZaAID4gZG91bW9uXCA7CivnpZ7ppqwgPiBzaGlubWVcIDsKK+aKleWwhCA+IHRvdXNoYVwgOwor566d5Y+jID4ga2Fua291XCA7CivllqvmsLQgPiBraXNzdWlcIDsKK+WQuOmjsiA+IGt5dXVpblwgOwor56m655uuID4gc29yYW1lXCA7Civlk4HooYwgPiBoaW5rb3VcIDsKK+a5r+awtCA+IHl1bWl6dVwgOwor5omB5peBID4gaGVuYm91XCA7CivmgqrpnIogPiBha3VyZWlcIDsKK+m7hOmHkSA+IGtvZ2FuZVwgOwor5omL5pG6ID4gdGVzdXJpXCA7CivnqIDoloQgPiBraWhha3VcIDsKK+eri+azlSA+IHJpcHBvdVwgOwor5oyB5LmFID4gamlreXV1XCA7Civnr4DkvJogPiBzZWNoaWVcIDsKK+aIkeassiA+IGdheW9rdVwgOwor5rmv5q6/ID4geXVkb25vXCA7Civnq6/moKogPiBoYWthYnVcIDsKK+evgOS7iyA+IHNla2thaVwgOwor57K+44CFID4gc2VpemVpXCA7Civmi5Dlj5YgPiBrYWlzaHVcIDsKK+engeiyoSA+IHNoaXphaVwgOwor5ZC46Z+zID4ga3l1dW9uXCA7CivnrqHliLYgPiBrYW5zZWlcIDsKK+a5p+awtCA+IHl1dXN1aVwgOwor6J2L5qKFID4gcm91YmFpXCA7CivmuJrnlZQgPiBzaG9oYW5cIDsKK+WWtualrSA+IGVpZ3lvdVwgOwor5rib55SjID4gZ2Vuc2FuXCA7Civpi7znt5ogPiBrb3VzZW5cIDsKK+a6luaYnyA+IGp1bnNlaVwgOwor5ZCI6bSoID4gYWlnYW1vXCA7CivmiYvmjIcgPiBzaHVzaGlcIDsKK+m7hOmBkyA+IGtvdWRvdVwgOwor5omL5outID4gdGVmdWtpXCA7Civnq7bmmKAgPiBreW91ZWlcIDsKK+WQuembqiA+IGZ1YnVraVwgOwor5rq65oSbID4gZGVraWFpXCA7Civmua/mp70gPiB5dWJ1bmVcIDsKK+eti+WtkCA+IHN1amlrb1wgOwor5oSB6Ki0ID4gc2h1dXNvXCA7CivolqvpppkgPiBrdW5rb3VcIDsKK+mJhOmLvCA+IHRla2tvdVwgOwor56eB6KuWID4gc2hpcm9uXCA7CivmvKLlkI0gPiBrYW5tZWlcIDsKK+a5luayvCA+IGtvc2hvdVwgOwor6JqV57SZID4gc2Fuc2hpXCA7CivompXns7ggPiBzYW5zaGlcIDsKK+aCjOmghiA+IHRlaWp1blwgOwor5rSX6YysID4gc2VucmVuXCA7CivmuoDmna8gPiBtYW5wYWlcIDsKK+iWrOmkjCA+IHlha3VqaVwgOwor6Y285rK7ID4gc2hpbmppXCA7CivpiYTpibEgPiB0ZWtrb3VcIDsKK+emj+mBiyA+IGZ1a3V1blwgOwor5oq85Y+OID4gb3VzaHV1XCA7Civnq6/mlbQgPiB0YW5zZWlcIDsKK+iWq+miqCA+IGt1bnB1dVwgOwor56m255CGID4ga3l1dXJpXCA7CivpjLLnlLsgPiByb2t1Z2FcIDsKK+mKk+ihoSA+IHNlbmtvdVwgOwor5rKz6bm/ID4ga2FqaWthXCA7Civpi7znrqEgPiBrb3VrYW5cIDsKK+m8u+e/vCA+IGJpeW9rdVwgOwor5ryG5ZmoID4gc2hpa2tpXCA7CivnpoHphZIgPiBraW5zaHVcIDsKK+iXqemCuCA+IGhhbnRlaVwgOwor5oim5pWXID4gc2VucGFpXCA7Civnp4HoposgPiBzaGlrZW5cIDsKK+a1hOiyoSA+IGpvdXphaVwgOwor6JmO6JC9ID4gbW9nYXJpXCA7CivmtbfomL8gPiBmdW5vcmlcIDsKK+aJgOaHkCA+IHNob2thaVwgOwor5rip54G4ID4gb25reXV1XCA7Civmtbfol7sgPiBrYWlzb3VcIDsKK+aJh+aDhSA+IHNlbmpvdVwgOwor56eB6KO9ID4gc2hpc2VpXCA7Civmgqrpiq0gPiBha3VzZW5cIDsKK+ekvumiqCA+IHNoYWZ1dVwgOwor5ZCN6aaZID4gbWVpa291XCA7CivlkozoqLMgPiB3YXlha3VcIDsKK+mKheijvSA+IGRvdXNlaVwgOwor5rqW5ougID4ganVua3lvXCA7CivmtpnohbogPiBydWlzZW5cIDsKK+etieWkliA+IHRvdWdhaVwgOwor5oqx5Y21ID4gaG91cmFuXCA7CivmiZXlupUgPiBmdXR0ZWlcIDsKK+aJgOaEnyA+IHNob2thblwgOwor5rSL6YqAID4geW91Z2luXCA7Civnp5jolqwgPiBoaXlha3VcIDsKK+mOruaSqyA+IGNoaW5idVwgOwor56S+6aCtID4gc2hhdG91XCA7Civnp4HooYwgPiBzaGlrb3VcIDsKK+WWquacjSA+IG1vZnVrdVwgOwor566X5L2TID4gc2FudGFpXCA7CivlkozopqogPiB3YXNoaW5cIDsKK+aJi+W9uSA+IHRleWFrdVwgOwor6YqA6KO9ID4gZ2luc2VpXCA7Civpu5noqLEgPiBtb2treW9cIDsKK+aJi+W9oiA+IHRlZ2F0YVwgOwor56u25oqAID4ga3lvdWdpXCA7CivompXnqK4gPiBzYW5zaHVcIDsKK+aJk+W4rSA+IGRhc2VraVwgOwor5riv5rm+ID4ga291d2FuXCA7CivolqvpmbYgPiBrdW50b3VcIDsKK+aJi+W8lSA+IHRlYmlraVwgOwor5ri+5rKMID4ga29udG9uXCA7CivmuJvngrkgPiBnZW50ZW5cIDsKK+aJh+W9oiA+IHNlbmtlaVwgOwor5ryU5YqHID4gZW5nZWtpXCA7CivmgqrphZIgPiBha3VzaHVcIDsKK+aJgOaAnSA+IHNob3NoaVwgOwor56aB6Ly4ID4ga2luJyd5dVwgOwor5rWu6JaEID4gZnVoYWt1XCA7CivlkIzpoZ4gPiBkb3VydWlcIDsKK+mKgOihjCA+IGdpbmtvdVwgOwor5omN5bm5ID4gc2Fpa2FuXCA7CivmtIvphZIgPiB5b3VzaHVcIDsKK+m+jeeOiyA+IHJ5dXVvdVwgOwor5oOF6LajID4gam91c2h1XCA7CivmiJDmlocgPiBzZWlidW5cIDsKK+aHuOahiCA+IGtlbicnYW5cIDsKK+aJi+W4syA+IHRlY2hvdVwgOwor5oiQ5pWXID4gc2VpYmFpXCA7CivomZrogZ4gPiBreW9idW5cIDsKK+aLheS9kyA+IHRhbnRhaVwgOwor5omL5biWID4gdGVjaG91XCA7CivpiI3plpMgPiBub3JvbWFcIDsKK+mHnemtmiA+IGhhcml5b1wgOwor5omL5belID4gc2h1a291XCA7Civms6LplpMgPiBuYW1pbWFcIDsKK+m8k+iGnCA+IGtvbWFrdVwgOwor5oar54S2ID4gYmluemVuXCA7CivmgqrpgZMgPiBha3Vkb3VcIDsKK+a1heimiyA+IHNlbmtlblwgOwor6YeO6bOlID4geWFjaG91XCA7Civms6LplbcgPiBoYWNob3VcIDsKK+m8k+iFuSA+IGtvZnVrdVwgOwor6byT6IW4ID4ga29jaG91XCA7CivmsrvpqJMgPiBjaGlrZW5cIDsKK+a6tuWyqSA+IHlvdWdhblwgOwor5rW36I2JID4ga2Fpc291XCA7Civms5Xpm6MgPiBob3VuYW5cIDsKK+WRs+iqrSA+IG1pZG9rdVwgOwor5rSX6LuKID4gc2Vuc2hhXCA7CivlkYrovp4gPiBrb2t1amlcIDsKK+WQhOmghSA+IGtha2tvdVwgOwor5rK46aiwID4gZnV0dG91XCA7CivmuKnmtbcgPiBhdHN1bWlcIDsKK+WWhOalrSA+IHplbmdvdVwgOwor5omB5bmzID4gaGVucGVpXCA7Civnq4vmlrkgPiByaXBwb3VcIDsKK+esoOWtkCA+IGthc2Fnb1wgOwor5rS76KiIID4ga2Fra2VpXCA7CivmipXlkIggPiB0b3Vnb3VcIDsKK+aGpOeEtiA+IGZ1bnplblwgOwor5Y+36aSoID4gZ291a2FuXCA7Civmu57lnKggPiB0YWl6YWlcIDsKK+a4oea4iSA+IHRvc2hvdVwgOwor5omA5bivID4gc2hvdGFpXCA7Civmipfljp8gPiBrb3VnZW5cIDsKK+a4pua1gSA+IGthcnl1dVwgOwor5ryi5Lq6ID4ga2FuamluXCA7CivmvIHlirQgPiBneW9yb3VcIDsKK+a1quiPryA+IG5hbml3YVwgOwor5oqY5Y2KID4gc2VwcGFuXCA7Civph5HprZogPiBraW5neW9cIDsKK+WYhuWjsCA+IHRhbnNlaVwgOwor6YqY6Iy2ID4gbWVpY2hhXCA7Civnp7Dnvo4gPiBzaG91YmlcIDsKK+engeiUtSA+IHNoaXpvdVwgOwor5ZGz6KaaID4gbWlrYWt1XCA7CivpvpXnga8gPiBnYW5kb3VcIDsKK+m7tOiPjCA+IGJhaWtpblwgOwor5oqc5YmjID4gYmFra2VuXCA7CivlloTmoLkgPiB6ZW5rb25cIDsKK+WQjemWgCA+IG1laW1vblwgOwor56m65rivID4ga3V1a291XCA7CivlkIzploAgPiBkb3Vtb25cIDsKK+ibruawkSA+IGJhbm1pblwgOwor5oqc5YiAID4gYmF0dG91XCA7Civlj7DpoqggPiB0YWlmdXVcIDsKK+aFp+ecvCA+IGtlaWdhblwgOwor5omN5a2QID4gc2Fpc2hpXCA7CivpjJjnirYgPiBzdWlqb3VcIDsKK+a6tuWqkiA+IHlvdWJhaVwgOwor56aF6K2yID4gemVuam91XCA7Civmsr/pnakgPiBlbmtha3VcIDsKK+a1quiKsSA+IG5hbml3YVwgOwor56uv5b25ID4gaGF5YWt1XCA7Civlj7DpoZQgPiBkYWlnYW5cIDsKK+WRiei2iiA+IGdvZXRzdVwgOwor5Y+w6aCtID4gdGFpdG91XCA7CivmuIvmu54gPiBqdXV0YWlcIDsKK+a3t+eEtiA+IGtvbnplblwgOwor562L5ZCIID4gc3VqaWFpXCA7CivmuJvms5UgPiBnZW5wb3VcIDsKK+aKleWHvSA+IHRvdWthblwgOwor5ZaE5pu4ID4gemVuc2hvXCA7CivnqbrmtJ4gPiBrdXVkb3VcIDsKK+mIkemHkSA+IGJhbmtpblwgOwor5rqQ5bmzID4gZ2VucGVpXCA7CivlkI3pkZEgPiBtZWlrYW5cIDsKK+etieWPtyA+IHRvdWdvdVwgOwor5Zej5a2QID4gc2hpc2hpXCA7Civph47pp5IgPiBub2dvbWFcIDsKK+a1ruiFqyA+IG11a3VtaVwgOwor5rib5rC0ID4gZ2Vuc3VpXCA7Civpurvoo48gPiBhc2F1cmFcIDsKK+eorueXmCA+IHNodXRvdVwgOwor6YiN6YeNID4gZG9uanV1XCA7Civlj6npoK0gPiBrb3V0b3VcIDsKK+aGsuazlSA+IGtlbnBvdVwgOwor5omA5a6aID4gc2hvdGVpXCA7Civph5jpoK0gPiB0ZWl0b3VcIDsKK+emgOiriyA+IHJpbnNlaVwgOwor5raZ566hID4gcnVpa2FuXCA7CivmiYDlrZggPiBzaG96b25cIDsKK+azpemFlCA+IGRlaXN1aVwgOwor5rib5q66ID4gZ2Vuc2FpXCA7CivmuJvmrrUgPiBnZW50YW5cIDsKK+mOruW6pyA+IGNoaW56YVwgOwor56mC54q2ID4gc3Vpam91XCA7Civlj6PpoK0gPiBrb3V0b3VcIDsKK+a4hea4hSA+IHNlaXNlaVwgOwor5ZCI6Y21ID4gYWlrYWdpXCA7CivnrYbli6IgPiBoaXNzZWlcIDsKK+eri+aGsiA+IHJpa2tlblwgOwor5ZaE5pS/ID4gemVuc2VpXCA7CivmtJ7oposgPiBkb3VrZW5cIDsKK+ekvOmHkSA+IHJlaWtpblwgOwor5oeQ5p+UID4ga2FpanV1XCA7Civlj43pqLAgPiBoYW50b3VcIDsKK+iYmuiLlCA+IHNlbnRhaVwgOwor5rqA5bmyID4gbWFua2FuXCA7Civnpr3oiI4gPiBraW5zaGFcIDsKK+WRiuirrSA+IGtva3V5dVwgOwor5riF5rWEID4gc2Vpam91XCA7CivnrYnliIYgPiB0b3VidW5cIDsKK+epuuashCA+IGt1dXJhblwgOwor5rKh6aCtID4gYm90dG91XCA7CivmipfkvZMgPiBrb3V0YWlcIDsKK+WPpembhiA+IGt1c2h1dVwgOwor5omL5aGpID4gdGVzaGlvXCA7Civmub/luIMgPiBzaGlwcHVcIDsKK+err+WxsSA+IGhheWFtYVwgOwor5oOj6I+cID4gc291emFpXCA7CivmiJDlvaIgPiBzZWlrZWlcIDsKK+ernOW6pyA+IHJ5dXV6YVwgOwor6YmE6KO9ID4gdGVzc2VpXCA7CivlkYroqLQgPiBrb2t1c29cIDsKK+a1t+e2vyA+IGthaW1lblwgOwor5Zec5aW9ID4gc2hpa291XCA7Civlj5fpoJggPiBqdXJ5b3VcIDsKK+ethuWGmSA+IGhpc3NoYVwgOwor5riH5rC0ID4ga2Fzc3VpXCA7CivmuIjmsJEgPiBzYWltaW5cIDsKK+emgeihmyA+IGtpbicnZWlcIDsKK+aKl+S6iSA+IGtvdXNvdVwgOwor5riF5rC0ID4gc2Vpc3VpXCA7CivlkIjph5EgPiBnb3VraW5cIDsKK+a3t+a3hiA+IGtvbmtvdVwgOwor5ZOB562JID4gaGludG91XCA7Civmib/lhYEgPiBzaG91aW5cIDsKK+aCquiogCA+IGFrdWdlblwgOwor56S86YGHID4gcmVpZ3V1XCA7CivllpzmgqYgPiBraWV0c3VcIDsKK+eri+W/lyA+IHJpc3NoaVwgOwor6byT56ybID4ga290ZWtpXCA7CivmiJDlubQgPiBzZWluZW5cIDsKK+engeiAgyA+IHNoaWtvdVwgOwor5oak5q27ID4gZnVuc2hpXCA7CivpurvolqwgPiBtYXlha3VcIDsKK+a4h+atuyA+IGthc3NoaVwgOwor56uv5a2QID4gdGFuc2hpXCA7Civmh4fmnJsgPiBrb25tb3VcIDsKK+iZmuekvCA+IGt5b3JlaVwgOwor6J6N5ZCIID4geXV1Z291XCA7CivlkIzpgqYgPiBkb3Vob3VcIDsKK+ayiOmmmSA+IGppbmtvdVwgOwor5oeH5pu4ID4ga29uc2hvXCA7Civpu4TokYkgPiBrb3V5b3VcIDsKK+etieWApCA+IHRvdWNoaVwgOwor5rm+5bK4ID4gd2FuZ2FuXCA7CivmuoDlsbEgPiBtYW56YW5cIDsKK+ieouWFiSA+IGtlaWtvdVwgOwor5Y+M6aCtID4gc291dG91XCA7CivllYbmqZ8gPiBzaG91a2lcIDsKK+aJjeWZuCA+IHNhaXRvblwgOwor5ZCM6YGTID4gZG91ZG91XCA7CivnqLLnhrEgPiBpbW9jaGlcIDsKK+mOruWuiCA+IGNoaW5qdVwgOwor5ru05LiLID4gdGVraWthXCA7Civlk4HnqK4gPiBoaW5zaHVcIDsKK+m7hOiPiiA+IGtpZ2lrdVwgOwor5oqA5YCGID4gZ2lyeW91XCA7CivmhJrnrZYgPiBndXNha3VcIDsKK+a3t+ayjCA+IGtvbnRvblwgOwor5ZCE6YOoID4ga2FrdWJ1XCA7Civms6Lot68gPiBuYW1pamlcIDsKK+WPjemdoiA+IGhhbm1lblwgOwor5ZaE5oimID4gemVuc2VuXCA7CivmtIvoo4UgPiB5b3Vzb3VcIDsKK+a0i+ijgSA+IHlvdXNhaVwgOwor5omA5ZyoID4gc2hvemFpXCA7CivmgqrooYAgPiBva2V0c3VcIDsKK+elnuipsSA+IHNoaW53YVwgOwor5oWo54S2ID4gZ2FpemVuXCA7Civnq7blo7IgPiBrZWliYWlcIDsKK+iXu+iNiSA+IG1vZ3VzYVwgOwor56e7552AID4gaWNoYWt1XCA7CivnpZ3oqZ4gPiBub3JpdG9cIDsKK+a0i+ihjCA+IHlvdWtvdVwgOwor5ZCM6LypID4gZG91aGFpXCA7CivmgKXpoIggPiBreXV1c3VcIDsKK+enmOetliA+IGhpc2FrdVwgOwor5raI56OoID4gc2hvdW1hXCA7Civpu5nogIMgPiBtb2trb3VcIDsKK+aGjuawlyA+IG5pa3VnZVwgOwor5ZCM6LuKID4gZG91c2hhXCA7Civmtojno4EgPiBzaG91amlcIDsKK+WUseatjCA+IHNob3VrYVwgOwor5oSb56ewID4gYWlzaG91XCA7CivmuZblv4MgPiBrb3NoaW5cIDsKK+a3oea3oSA+IHRhbnRhblwgOwor5ZaE5oSfID4gemVua2FuXCA7CivmspnploAgPiBzaGFtb25cIDsKK+eorueBqyA+IHRhbmViaVwgOwor6YqF57eaID4gZG91c2VuXCA7CivmgKjpnIogPiBvbnJ5b3VcIDsKK+aJi+WTgSA+IHRlamluYVwgOwor5oiR5a62ID4gd2FnYXlhXCA7Civnqbrmm7kgPiBrdXVzb3VcIDsKK+aIpuWjqyA+IHNlbnNoaVwgOwor5Y+N6ZaTID4gaGFua2FuXCA7CivmiY3lkI0gPiBzYWltZWlcIDsKK+ekvuizkyA+IHNoYWhpblwgOwor5ray54q2ID4gZWtpam91XCA7CivmgbXotIggPiBrZWl6b3VcIDsKK+WPo+mKrSA+IGtvdXNlblwgOwor5ZaE5oCnID4gemVuc2VpXCA7CivnpLzos5sgPiByYWlzYW5cIDsKK+aIpuWhtSA+IHNlbmppblwgOwor6YeR6YqtID4ga2luc2VuXCA7Civmh7jlt6MgPiBrYWtlc3VcIDsKK+epguazoiA+IGhvbmFtaVwgOwor5oeQ5oqxID4ga2FpaG91XCA7Civlj4LpmaIgPiBzYW4nJ2luXCA7Civpj6TliLsgPiBydWtva3VcIDsKK+mHkemKgCA+IGtpbmdpblwgOwor6YqA57WMID4gZ2lua2VpXCA7CivmiKbloLQgPiBzZW5qb3VcIDsKK+mHkemJsSA+IGtpbmtvdVwgOwor5oa25patID4gb2t1ZGFuXCA7CivmuJvmlbAgPiBnZW5zdXVcIDsKK+a6gOWkqSA+IG1hbnRlblwgOwor5ZKM57a0ID4gd2F0b2ppXCA7CivmtYTnvaogPiBqb3V6YWlcIDsKK+aEn+efpSA+IGthbmNoaVwgOwor5rOw6KW/ID4gdGFpc2VpXCA7CivmtIvomK0gPiB5b3VyYW5cIDsKK+mKgOezuCA+IGdpbnNoaVwgOwor5reh5rC0ID4gdGFuc3VpXCA7CivmurbliaQgPiB5b3V6YWlcIDsKK+epuuaWhyA+IGt1dWJ1blwgOwor6buE6IKMID4ga2loYWRhXCA7CivmiJDlqZogPiBzZWlrb25cIDsKK+azqOiomCA+IGNodXVraVwgOwor5ZCf6KmgID4gZ2luJydlaVwgOwor5oe45bSWID4ga2VuZ2FpXCA7CivpjZvmiJAgPiB0YW5zZWlcIDsKK+mKgOeyiSA+IGdpbnB1blwgOwor5oem5byxID4gZGFqYWt1XCA7Civmga3os4AgPiBreW91Z2FcIDsKK+WNtem7hCA+IHJhbicnb3VcIDsKK+aJi+WLlSA+IHNodWRvdVwgOwor6JeN6Je7ID4gcmFuc291XCA7CivmhrLmlL8gPiBrZW5zZWlcIDsKK+aIpuWcsCA+IHNlbmNoaVwgOwor56S86K6DID4gcmFpc2FuXCA7CivmuoDloYEgPiBtYW5ydWlcIDsKK+WQiOizhyA+IGdvdXNoaVwgOwor5rqA5aC0ID4gbWFuam91XCA7Civlj7fou4ogPiBnb3VzaGFcIDsKK+azo+iotCA+IGt5dXVzb1wgOwor6YeN6YeNID4ganV1anV1XCA7Civmganos54gPiBvbnNob3VcIDsKK+a4heabuCA+IHNlaXNob1wgOwor5rqA5aCCID4gbWFuZG91XCA7CivmiYfli5UgPiBzZW5kb3VcIDsKK+aJjeWIhiA+IHNhaWJ1blwgOwor5rib5pCNID4gZ2Vuc29uXCA7CivmsLTpu70gPiBhbWVuYm9cIDsKK+elnuibhyA+IHNoaW5qYVwgOwor5ZOA55ebID4gYWl0c3V1XCA7CivmiJLlo4cgPiBrYWlkYW5cIDsKK+m6puiKvSA+IGJha3VnYVwgOwor5Y+w6LuKID4gZGFpc2hhXCA7Civlk4HnlaogPiBoaW5iYW5cIDsKK+iWq+ijvSA+IGt1bnNlaVwgOwor5omL5YaZID4gc2h1c2hhXCA7CivmuIXmmI4gPiBzZWltZWlcIDsKK+azleirliA+IGhvdXJvblwgOwor5rG66ZeYID4ga2V0dG91XCA7Civms5Xoq4cgPiBob3VkYW5cIDsKK+WOn+mhjCA+IGdlbmRhaVwgOwor5omL5YW1ID4gc2h1aGVpXCA7CivmiYDlirQgPiBzaG9yb3VcIDsKK+WOn+mgrSA+IGdlbnRvdVwgOwor6YeH6YWNID4gc2FpaGFpXCA7CivlkI3oq5YgPiBtZWlyb25cIDsKK+a1hee0hSA+IHNlbmtvdVwgOwor56ys5LiJID4gZGFpc2FuXCA7Civmt7vmm7ggPiB0ZW5zaG9cIDsKK+aJi+WFiCA+IHRlc2FraVwgOwor5omL5YWDID4gdGVtb3RvXCA7CivmganorpAgPiBvbnNodXVcIDsKK+aBqeiujiA+IG9uc2h1dVwgOwor5Y+j6L66ID4ga291aGVuXCA7Civljp/pn7MgPiBnZW4nJ29uXCA7CivmiJHln7cgPiBnYXNodXVcIDsKK+epuuaMuiA+IGt1dXRlaVwgOwor5rS757eaID4ga2Fzc2VuXCA7CivlkIzoqowgPiBkb3VzaGlcIDsKK+WOmumhlCA+IGtvdWdhblwgOwor5ZCN6KmeID4gbWVpc2hpXCA7CivpiI3ooYwgPiBkb25rb3VcIDsKK+aHh+aDhSA+IGtvbmpvdVwgOwor5re75pmvID4gdGVua2VpXCA7CivmiYvlgrcgPiB0ZWtpenVcIDsKK+epuuaLsyA+IGt1dWtlblwgOwor6Yed6LevID4gc2hpbnJvXCA7CivnrKbkuIEgPiBmdWNob3VcIDsKK+WQjeiogCA+IG1laWdlblwgOwor5ZCM6KiTID4gZG91a3VuXCA7Civph5HovKogPiBrYW5hd2FcIDsKK+aIkOWeiyA+IHNlaWtlaVwgOwor5rKi6L66ID4gc2F3YWJlXCA7Civms5XopoEgPiBob3V5b3VcIDsKK+enkeebriA+IGthbW9rdVwgOwor6byI55SyID4gYmVra291XCA7CivonILlt6MgPiBob3Vzb3VcIDsKK+epuuaJiyA+IGthcmF0ZVwgOwor56S86KOFID4gcmVpc291XCA7CivlkIzoppYgPiBkb3VzaGlcIDsKK+WWhOWwjiA+IHplbmRvdVwgOwor56m65omAID4ga3V1c2hvXCA7Civlv7XpoZggPiBuZW5nYW5cIDsKK+WQiOioiCA+IGdvdWtlaVwgOwor6bq757mUID4gYXNhb3JpXCA7Civlj6TouZ8gPiBrb3Nla2lcIDsKK+WRque4myA+IGp1YmFrdVwgOwor56m65oimID4ga3V1c2VuXCA7CivmhajmrY4gPiBnYWl0YW5cIDsKK+axl+mhlCA+IGthbmdhblwgOwor5b+16aCtID4gbmVudG91XCA7Civnp5Hnmb0gPiBzZXJpZnVcIDsKK+WOn+maiiA+IGdlbnRhaVwgOwor6Ya16YeRID4ga3lva2luXCA7CivnqLzmpa0gPiBrYWd5b3VcIDsKK+err+WOsyA+IHRhbmdlblwgOwor6Jau6JqKID4geWFidWthXCA7CivlkajnuIEgPiBzaHV1ZW5cIDsKK+WWmuWjsCA+IGthbnNlaVwgOwor5rW355SjID4ga2Fpc2FuXCA7CivmiKblj7IgPiBzZW5zaGlcIDsKK+a6gOWToSA+IG1hbicnaW5cIDsKK+WPm+i7jSA+IGhhbmd1blwgOwor6buE57KJID4ga2luYWtvXCA7CivnqI7mupAgPiB6ZWlnZW5cIDsKK+WPi+mCpiA+IHl1dWhvdVwgOwor6Y6W5Zu9ID4gc2Frb2t1XCA7Civnq7nliIAgPiBzaGluYWlcIDsKK+aEgeeciSA+IHNodXViaVwgOwor6buZ56eYID4gbW9rdWhpXCA7CivmuIXmjoMgPiBzZWlzb3VcIDsKK+m6u+e1siA+IGFzYWl0b1wgOwor6YqD56CyID4ganV1aG91XCA7CivmiY3kurogPiBzYWlqaW5cIDsKK+a4rOW6piA+IHNva3Vkb1wgOwor5ZCM6KG+ID4gZG91a2luXCA7CivpjZvlt6UgPiB0YW5rb3VcIDsKK+mFuOmhniA+IHNhbnJ1aVwgOwor5ra85rCXID4gcnlvdWtpXCA7Civnq4vlnLAgPiByaXRjaGlcIDsKK+WQjOihjCA+IGRvdWtvdVwgOwor56m65oOzID4ga3V1c291XCA7CivmiYvkuqQgPiBzaHVrb3VcIDsKK+m7kuepgiA+IGt1cm9ib1wgOwor5oOF57eSID4gam91Y2hvXCA7CivmsoPph44gPiB5b2t1eWFcIDsKK+m6u+ezuCA+IGFzYWl0b1wgOwor5Zan5ZmqID4ga2Vuc291XCA7CivmuKnluoogPiBvbnNob3VcIDsKK+aEn+eKtiA+IGthbmpvdVwgOwor5ZCI6KG+ID4gZ291a2luXCA7CivmhJvnjKsgPiBhaWJ5b3VcIDsKK+mGuOmAoCA+IGpvdXpvdVwgOwor5oim5YqfID4gc2Vua291XCA7Civnp4Hnm4ogPiBzaGlla2lcIDsKK+a5vuWPoyA+IHdhbmtvdVwgOwor5Y+y6KuWID4gc2hpcm9uXCA7CivpioPnnLwgPiBqdXVnYW5cIDsKK+WPsuirhyA+IHNoaWRhblwgOwor56ug5Y+lID4gc2hvdWt1XCA7CivpioXnm6QgPiBkb3ViYW5cIDsKK+aGtuW/tSA+IG9rdW5lblwgOwor5ZG856ewID4ga29zaG91XCA7CivmiKbliY0gPiBzZW56ZW5cIDsKK+m4nui8vyA+IHJhbicneW9cIDsKK+aGp+aGrCA+IGRvdWtlaVwgOwor5Y+M6LyqID4gc291cmluXCA7Civlj4LpgZMgPiBzYW5kb3VcIDsKK+a2suaxgSA+IGVraWp1dVwgOwor56i/5pysID4ga291aG9uXCA7CivmtbfnjaMgPiBrYWlqdXVcIDsKK+aGpOaHoyA+IGZ1bm1hblwgOwor5Y+y6KmpID4gc2hpc2hpXCA7Civlj43ou6IgPiBoYW50ZW5cIDsKK+WPjei7jSA+IGhhbmd1blwgOwor5Y+v6KqtID4ga2Fkb2t1XCA7Civmh7jlnoIgPiBrZW5zdWlcIDsKK+eojuazlSA+IHplaWhvdVwgOwor5Y6z6YeNID4gZ2VuanV1XCA7CivolqvokrggPiBrdW5qb3VcIDsKK+WPsOipniA+IHNlcmlmdVwgOwor6Yys5oiQID4gcmVuc2VpXCA7CivpioDnm6QgPiBnaW5iYW5cIDsKK+WPi+i7jSA+IHl1dWd1blwgOwor5ZKM552mID4gd2Fib2t1XCA7CivpioDnm4MgPiBnaW5wYWlcIDsKK+aGpOaFqCA+IGZ1bmdhaVwgOwor5ZSQ5pysID4gdG91aG9uXCA7CivpiYTnt5ogPiB0ZXNzZW5cIDsKK+mLvOadvyA+IGtvdWJhblwgOwor6by75q+bID4gaGFuYWdlXCA7Civlj7LoprMgPiBzaGlrYW5cIDsKK+WPjOi5hCA+IHNvdXRlaVwgOwor5Y+X6LOeID4ganVzaG91XCA7CivmtojngasgPiBzaG91a2FcIDsKK+aIkuWOsyA+IGthaWdlblwgOwor6Yu85p2QID4ga291emFpXCA7CivmtJfnt7QgPiBzZW5yZW5cIDsKK+WPsOimpyA+IHRhaXJhblwgOwor56eB55SoID4gc2hpeW91XCA7Civlv5fpoZggPiBzaGlnYW5cIDsKK+WQjOiXqSA+IGRvdWhhblwgOwor5Y+j6KuWID4ga291cm9uXCA7Civlj6Poqr8gPiBrdWNob3VcIDsKK+WPouirhyA+IHNvdWRhblwgOwor5Y6z6YG4ID4gZ2Vuc2VuXCA7Civnq6/lgKogPiB0YW5nZWlcIDsKK+mHkeirhyA+IGtpbmRhblwgOwor5re35oimID4ga29uc2VuXCA7CivmiK/kvZwgPiBnZXNha3VcIDsKK+a3t+aIkCA+IGtvbnNlaVwgOwor5Zaa5ZWPID4ga2FubW9uXCA7CivnpL7okawgPiBzaGFzb3VcIDsKK+aGpOaAkiA+IGZ1bicnbnVcIDsKK+WPpOiouyA+IGtvY2h1dVwgOwor5rWB55+zID4gc2FzdWdhXCA7CivpiYTnsokgPiB0ZXBwdW5cIDsKK+mGl+mFtSA+IGhha2tvdVwgOwor5Y6f6YmxID4gZ2Vua291XCA7CivmuKnlrrkgPiBvbicneW91XCA7CivpuqbnsokgPiBtdWdpa29cIDsKK+aIkOWKnyA+IHNlaWtvdVwgOwor5rex5omLID4gZnVrYWRlXCA7Civpu5Lnm64gPiBrdXJvbWVcIDsKK+mHkeiogCA+IGtpbmdlblwgOwor5rSX57GzID4gc2VubWFpXCA7CivmhpDmhqsgPiByZW5iaW5cIDsKK+WOn+mHjiA+IGdlbicneWFcIDsKK+awl+mthCA+IGtpaGFrdVwgOwor5Y+X6Ku+ID4ganVkYWt1XCA7CivmsJfprLEgPiBraXV0c3VcIDsKK+aIkOWIhiA+IHNlaWJ1blwgOwor6Jas6IiXID4geWFrdWhvXCA7CivlkI3okZcgPiBtZWljaG9cIDsKK+mJhOeuoSA+IHRla2thblwgOwor6YeN6KiAID4ganV1Z29uXCA7CivmsLfpnKcgPiBoeW91bXVcIDsKK+aEjeeEtiA+IGJpbnplblwgOwor6YeR6KW0ID4ga2lucmFuXCA7Civmh5DlpoogPiBrYWluaW5cIDsKK+awtOmdoiA+IG1pbm9tb1wgOwor56aN56aPID4ga2FmdWt1XCA7CivmsLfpm6ggPiBoaXNhbWVcIDsKK+mJhOetiyA+IHRla2tpblwgOwor5oe45ZG9ID4ga2VubWVpXCA7CivphZTpoZQgPiBzdWlnYW5cIDsKK+aGkOaEjSA+IHJlbmJpblwgOwor5rSL57SZID4geW91c2hpXCA7Civph43oppYgPiBqdXVzaGlcIDsKK+aIkOWFuCA+IHNlaXRlblwgOwor6Yqt5rmvID4gc2VudG91XCA7CivmuIXlu4kgPiBzZWlyZW5cIDsKK+a0i+e0hSA+IHlvdWtvdVwgOwor6YeN6KaBID4ganV1eW91XCA7Civph5Hoo70gPiBraW5zZWlcIDsKK+mFkumhniA+IHNodXJ1aVwgOwor5ZCI6JGXID4gZ291Y2hvXCA7Civpto/ps7QgPiBrZWltZWlcIDsKK+emveeNoyA+IGtpbmp1dVwgOwor5rC06Zu3ID4gc3VpcmFpXCA7Civlj5foqLsgPiBqdWNodXVcIDsKK+WPl+iouiA+IGp1c2hpblwgOwor5Y+j6KOFID4ga291c291XCA7Civmt7HmhI8gPiBzaGluJydpXCA7Civno4Hph50gPiBqaXNoaW5cIDsKK+aGkOaDhSA+IHJlbmpvdVwgOwor5rC06ZujID4gc3VpbmFuXCA7CivlkJvoh6ggPiBrdW5yaW5cIDsKK+aIpuS6iSA+IHNlbnNvdVwgOwor5Y+X6KiXID4ganV0YWt1XCA7CivmiKbkubEgPiBzZW5yYW5cIDsKK+a1qeeEtiA+IGtvdXplblwgOwor56qT5aSWID4gc291Z2FpXCA7CivllY/lsYsgPiB0b24nJ3lhXCA7CivpiYTnqpMgPiB0ZXNzb3VcIDsKK+WQjeiMtiA+IG1laWNoYVwgOwor5oWn5pWPID4ga2VpYmluXCA7CivmuK/lpJYgPiBrb3VnYWlcIDsKK+ibh+W6pyA+IGhlYml6YVwgOwor56m/5a2UID4gc2Vua291XCA7Civmua/lhYMgPiB5dW1vdG9cIDsKK+m8u+aigSA+IGJpcnlvdVwgOwor56eB54mIID4gc2hpaGFuXCA7Civlj43oq5YgPiBoYW5yb25cIDsKK+epuuWvnSA+IHNvcmFuZVwgOwor5rWE55WMID4gam91a2FpXCA7CivoloToloQgPiB1c3V1c3VcIDsKK+awtOmYsiA+IHN1aWJvdVwgOwor6YqF54mMID4gZG91aGFpXCA7CivllpzliocgPiBraWdla2lcIDsKK+aGguaGpCA+IHl1dWZ1blwgOwor5oSf5raZID4ga2FucnVpXCA7CivnqbTlsYUgPiBrZWtreW9cIDsKK+eri+WGrCA+IHJpdHRvdVwgOwor5oaC5oWuID4geXV1cnlvXCA7Civmtbfmup0gPiBrYWlrb3VcIDsKK+eri+WFmiA+IHJpdHRvdVwgOwor5Y6a6YGHID4ga291Z3V1XCA7Civlkozni6wgPiB3YWRva3VcIDsKK+aAquirhyA+IGthaWRhblwgOwor5rWp54CaID4ga291a2FuXCA7Civph5Honb8gPiBraW5iYWVcIDsKK+mKgOeJjCA+IGdpbnBhaVwgOwor5rC06ZaAID4gc3VpbW9uXCA7Civom67lo7AgPiBiYW5zZWlcIDsKK+WWhOWTiSA+IHplbnphaVwgOwor5ZCP6IetID4gcmlzaHV1XCA7CivlkIzoiLkgPiBkb3VzZW5cIDsKK+WNmOmghSA+IHRhbmtvdVwgOwor5Y2Y6Z+zID4gdGFuJydvblwgOwor5rW35rivID4ga2Fpa291XCA7CivpiZvnmb0gPiBlbnBha3VcIDsKK+WPguisgCA+IHNhbmJvdVwgOwor5oKq56ulID4gYWt1ZG91XCA7CivmhoLmgrYgPiB5dXVtb25cIDsKK+aGguaCoyA+IHl1dWthblwgOwor5rWu5ryCID4gZnVoeW91XCA7CivpvLvmnKggPiBoYW5hZ2lcIDsKK+mFjembuyA+IGhhaWRlblwgOwor5ZKM54mbID4gd2FneXV1XCA7CivoloTokYkgPiB1c3V5b3VcIDsKK+aIkOS9kyA+IHNlaXRhaVwgOwor5ZSQ5omLID4ga2FyYXRlXCA7Civmt6vlv4MgPiBpbnNoaW5cIDsKK+WVhuWutiA+IHNob3VrYVwgOwor5ZSQ5oi4ID4ga2FyYWRvXCA7CivmtJfnpLwgPiBzZW5yZWlcIDsKK+WQiOiHtCA+IGdhdGNoaVwgOwor5Y2X6Z2iID4gbmFubWVuXCA7Civlj4LoqaMgPiBzYW5rZWlcIDsKK+aGguaAnSA+IHl1dXNoaVwgOwor5ZCR6IOMID4ga291aGFpXCA7Civmt7HluqYgPiBzaGluZG9cIDsKK+aFt+aFqCA+IGtvdWdhaVwgOwor5oOo54q2ID4gc2Fuam91XCA7CivlkL7nrYkgPiB3YXJlcmFcIDsKK+a1t+a1nCA+IGthaWhpblwgOwor5rCR6aKoID4gbWlucHV1XCA7CivomZrmp4sgPiBreW9rb3VcIDsKK+WNmumbhSA+IGJha3VnYVwgOwor5oiQ5Lq6ID4gc2VpamluXCA7CivmgqrnqI4gPiBha3V6ZWlcIDsKK+m7hOeTnCA+IGt5dXVyaVwgOwor5ZC5566hID4gc3Vpa2FuXCA7CivmtIvnqK4gPiB5b3VzaHVcIDsKK+a1t+a0iyA+IGthaXlvdVwgOwor56e75qSNID4gaXNob2t1XCA7CivpiYTnoLIgPiB0ZXBwb3VcIDsKK+WQhOiHqiA+IGtha3VqaVwgOwor6bq755a5ID4gbWFzaGluXCA7CivllqfkvJ0gPiBrZW5kZW5cIDsKK+iWhOiMtiA+IHVzdWNoYVwgOwor5Y+C6KazID4gc2Fua2FuXCA7CivlkYrnpLogPiBrb2t1amlcIDsKK+aEn+atjiA+IGthbnRhblwgOwor5Y2X6ZqFID4gbmFuZ3V1XCA7CivlkKvns5YgPiBnYW50b3VcIDsKK+ibruWcsCA+IGJhbmNoaVwgOwor5oKq56WeID4gYWt1amluXCA7CivlkI3ogZ4gPiBtZWlidW5cIDsKK+eri+S9kyA+IHJpdHRhaVwgOwor5Y2K6Z+zID4gaGFuJydvblwgOwor5Y2X6ZmQID4gbmFuZ2VuXCA7Civmg4Xnl7QgPiBqb3VjaGlcIDsKK+eqgeWgpCA+IHRvdHRlaVwgOwor5Zaq5LitID4gbW9jaHV1XCA7CivmuJvloakgPiBnZW4nJ2VuXCA7CivmuKXlnLAgPiBha3VjaGlcIDsKK+a3oeW9qSA+IHRhbnNhaVwgOwor5rW35rC0ID4ga2Fpc3VpXCA7Civmta7mtYEgPiBmdXJ5dXVcIDsKK+elreelniA+IHNhaWppblwgOwor56We56ymID4gc2hpbnB1XCA7Civph5HolLUgPiBraW56b3VcIDsKK+aEm+assiA+IGFpeW9rdVwgOwor56Wt56WAID4gc2Fpc2hpXCA7CivljrPoq4cgPiBnZW5kYW5cIDsKK+iWhOiJsiA+IHVzdWlyb1wgOwor56Wt56S8ID4gc2FpcmVpXCA7CivmsJHpnZIgPiBtaW5zZWlcIDsKK+WNiumdoiA+IGhhbm1lblwgOwor5Y+j6JOLID4ga291Z2FpXCA7CivmtarmtaogPiByb3Vyb3VcIDsKK+a4k+WjsCA+IGtlaXNlaVwgOwor6Jma5qC5ID4ga3lva29uXCA7Civlvq7pnIcgPiBiaXNoaW5cIDsKK+W/nOmFrCA+IG91c2h1dVwgOwor5Y2X6ZaAID4gbmFubW9uXCA7Civljp/os4cgPiBnZW5zaGlcIDsKK+a0l+ecvCA+IHNlbmdhblwgOwor6YWp6YWKID4gbWVpdGVpXCA7CivmgKfooYwgPiBzZWlrb3VcIDsKK+WWhOWHpiA+IHplbnNob1wgOwor5ZCM572qID4gZG91emFpXCA7Civmta7msoggPiBmdWNoaW5cIDsKK+awtOmKgCA+IHN1aWdpblwgOwor6buS54WZID4ga29rdWVuXCA7CivlvqHpoYwgPiBneW9kYWlcIDsKK+WOs+iokyA+IGdlbmt1blwgOwor5Y2z6YeRID4gc29ra2luXCA7Civlk4Dmpb0gPiBhaXJha3VcIDsKK+epuuWfnyA+IGt1dWlraVwgOwor6YqA5ryiID4gZ2lua2FuXCA7Civmt7HlsbEgPiBtaXlhbWFcIDsKK+mHjuiSnCA+IG5vYmlydVwgOwor5rWu5rC3ID4gZnVoeW91XCA7Civpto/poK0gPiBrZWl0b3VcIDsKK+eni+azoiA+IHNodXVoYVwgOwor5rS754mIID4ga2FwcGFuXCA7CivnpL7nt5ogPiBzaGFzZW5cIDsKK+awl+mVtyA+IGtpbmFnYVwgOwor56We56eYID4gc2hpbnBpXCA7CivnqbrlnLAgPiBha2ljaGlcIDsKK+WPsOiHqCA+IHRhaXJpblwgOwor5oOo5r65ID4gc2FudGFuXCA7CivmhJvmpb0gPiBhaWd5b3VcIDsKK+mHjuiPiiA+IG5vZ2lrdVwgOwor56eL5rCXID4gc2h1dWtpXCA7Civms5Xnt5ogPiBob3VzZW5cIDsKK+awkemWkyA+IG1pbmthblwgOwor5oeH5ZG9ID4ga29ubWVpXCA7CivmuK/lj6MgPiBrb3Vrb3VcIDsKK+aCquebuCA+IGFrdXNvdVwgOwor5b6h6ZyKID4gbWl0YW1hXCA7Civmsbroo4EgPiBrZXNzYWlcIDsKK+WNiumWiyA+IGhhbmthaVwgOwor5rOV57ayID4gaG91bW91XCA7CivmgrLnl5sgPiBoaXRzdXVcIDsKK+m6pueUsCA+IG11Z2l0YVwgOwor6bWe6bOlID4gZ2FjaG91XCA7CivmsLTpg7cgPiBzdWlnb3VcIDsKK+WQiOe5iiA+IGdvdXNlblwgOwor56eB5rOVID4gc2hpaG91XCA7CivptZ3ps6UgPiBnYWNob3VcIDsKK+aFo+aApyA+IGthbnNlaVwgOwor5Y6f6KuWID4gZ2Vucm9uXCA7CivmsbrooYwgPiBrZWtrb3VcIDsKK+aFouaApyA+IG1hbnNlaVwgOwor5b6h6Zm1ID4gZ29yeW91XCA7Civlv6votbAgPiBrYWlzb3VcIDsKK+W+k+mghiA+IGp1dWp1blwgOwor6byg5pePID4gc296b2t1XCA7CivmsrvogIUgPiBjaGlzaGFcIDsKK+WOn+ipqSA+IGdlbnNoaVwgOwor5rC06YGTID4gc3VpZG91XCA7CivmhJ/mn5MgPiBrYW5zZW5cIDsKK+aHkOWJoyA+IGthaWtlblwgOwor5oOF54q2ID4gam91am91XCA7CivlkIzntJkgPiBkb3VzaGlcIDsKK+mJsea7kyA+IGtvdXNoaVwgOwor5ZCR57GzID4ga291YmVpXCA7CivpiYTnkLQgPiB0ZWtraW5cIDsKK+WQjOezuyA+IGRvdWtlaVwgOwor56qu5L2ZID4ga3l1dXlvXCA7Civmta7mqJkgPiBmdWh5b3VcIDsKK+mKgOazpSA+IGdpbmRlaVwgOwor5Y+v6IG0ID4ga2FjaG91XCA7CivomZrmlbAgPiBreW9zdXVcIDsKK+a1t+ajoCA+IGthaWRvdVwgOwor5oKq55arID4gYWt1ZWtpXCA7CivmuJvlk6EgPiBnZW4nJ2luXCA7CivlkIPnt4ogPiBraWtraW5cIDsKK+aBqee1piA+IG9ua3l1dVwgOwor5rC06L66ID4gbWl6dWJlXCA7CivlvqHploAgPiBtaWthZG9cIDsKK+WPjOiRiSA+IGZ1dGFiYVwgOwor5b6M6aCFID4ga291a291XCA7CivnqJ/mgKcgPiBoaW5zZWlcIDsKK+a3t+WjsCA+IGtvbnNlaVwgOwor5Y+j6IWUID4ga291a291XCA7CivpjZvlhrYgPiB0YW4nJ3lhXCA7CivmgqrnlKggPiBha3V5b3VcIDsKK+eqg+WPliA+IHNlc3NodVwgOwor5oSJ5qW9ID4geXVyYWt1XCA7Civnp4DmrYwgPiBzaHV1a2FcIDsKK+WMuumVtyA+IGt1Y2hvdVwgOwor5rib5Y+3ID4gZ2VuZ291XCA7CivmuK/lhoUgPiBrb3VuYWlcIDsKK+awtOi7iiA+IHN1aXNoYVwgOwor5rib5Y+NID4gZ2VudGFuXCA7CivphZLpgKAgPiBzaHV6b3VcIDsKK+iZjuaWkSA+IHRvcmFmdVwgOwor6buS5rW3ID4ga29ra2FpXCA7CivlkI3nrZQgPiBtZWl0b3VcIDsKK+W+jOmboyA+IGtvdW5hblwgOwor56m65ZCNID4ga3V1bWVpXCA7CivmtYXmtbcgPiBzZW5rYWlcIDsKK+mMpuWcsCA+IGtpbmNoaVwgOwor5Y+N6IuxID4gaGFuJydlaVwgOwor5ZCM562JID4gZG91dG91XCA7CivmtrLmgKcgPiBla2lzZWlcIDsKK+m8u+aBryA+IGJpc29rdVwgOwor5oKq55CDID4gYWtreXV1XCA7CivlkIjnrpcgPiBnYXNzYW5cIDsKK+WPjeiKuyA+IGhhbnN1dVwgOwor5rSL55C0ID4geW91a2luXCA7Civnp4HmqKkgPiBzaGlrZW5cIDsKK+mJhOeJhyA+IHRlcHBlblwgOwor56G86YW4ID4gaG91c2FuXCA7CivpibHms4kgPiBrb3VzZW5cIDsKK+a1t+aciCA+IGt1cmFnZVwgOwor5rW35pu5ID4ga2Fpc291XCA7CivphY3pgIEgPiBoYWlzb3VcIDsKK+W+jOmZoyA+IGtvdWppblwgOwor5Y2X6YOKID4gbmFua291XCA7CivmsY7oq5YgPiBoYW5yb25cIDsKK+WUkOWtkCA+IGthcmFrb1wgOwor5rWB5rS+ID4gcnl1dWhhXCA7CivoloTntJcgPiBoYWt1c2FcIDsKK+iZueW9qSA+IGtvdXNhaVwgOwor5re35ZyoID4ga29uemFpXCA7CivlkIznqpMgPiBkb3Vzb3VcIDsKK+emgeeFmSA+IGtpbicnZW5cIDsKK+mKmOadvyA+IG1laWJhblwgOwor6Ymx5rC0ID4ga291c3VpXCA7Civlvq7ph48gPiBiaXJ5b3VcIDsKK+ayuee1tSA+IGFidXJhZVwgOwor5rW35pmvID4ga2Fpa2VpXCA7CivnqbrljIUgPiBrdXVob3VcIDsKK+WNiumHkSA+IGhhbmtpblwgOwor5q+b6aCtID4gbW91dG91XCA7CivmhJvmlawgPiBhaWt5b3VcIDsKK+WQjOeoriA+IGRvdXNodVwgOwor56m/5Yi6ID4gc2Vuc2hpXCA7CivlvaLpqrggPiBrZWlnYWlcIDsKK+aDqOatuyA+IHphbnNoaVwgOwor5rW35pifID4gaGl0b2RlXCA7CivmhYjlv4MgPiBqaXNoaW5cIDsKK+W+jOmWgCA+IGtvdW1vblwgOwor5rWE5rC0ID4gam91c3VpXCA7CivmuJvliJEgPiBnZW5rZWlcIDsKK+mHjee9qiA+IGp1dXphaVwgOwor6YWi6LGaID4gc3VidXRhXCA7CivljYPpiJ4gPiBzZW5raW5cIDsKK+m7hOa1tyA+IGtvdWthaVwgOwor5Y+w57SZID4gZGFpc2hpXCA7CivphY3ou4ogPiBoYWlzaGFcIDsKK+elnueSvSA+IHNoaW5qaVwgOwor56m65YmNID4ga3V1emVuXCA7CivmtJfnhYkgPiBzZW5yZW5cIDsKK+a0i+eKrCA+IHlvdWtlblwgOwor5rS45rS4ID4ga291a291XCA7CivljbDosaEgPiBpbnNob3VcIDsKK+WNg+mHkSA+IHNlbmtpblwgOwor56iu5a2QID4gc2h1c2hpXCA7CivmtLjmtIsgPiBrb3V5b3VcIDsKK+eni+acnyA+IHNodXVraVwgOwor5rCX6L+rID4ga2loYWt1XCA7CivlkIznpL4gPiBkb3VzaGFcIDsKK+W9semfvyA+IGVpa3lvdVwgOwor6JSR6KaWID4gYmVzc2hpXCA7Civlv5zoq74gPiBvdWRha3VcIDsKK+a4m+WFjSA+IGdlbm1lblwgOwor5rCR6YG4ID4gbWluc2VuXCA7CivnqbrlhrcgPiBrdXVyZWlcIDsKK+aDmuawlyA+IG5vcm9rZVwgOwor56S856CyID4gcmVpaG91XCA7CivljZjou4ogPiB0YW5zaGFcIDsKK+aFtuWkpyA+IGtlaWRhaVwgOwor5ZKM5qW9ID4gd2FyYWt1XCA7CivmgKrohZUgPiBrYWl3YW5cIDsKK+WQiOelrSA+IGdvdXNhaVwgOwor5Y+M6IKpID4gc291a2VuXCA7CivllYbli5kgPiBzaG91bXVcIDsKK+aCqueGsSA+IGFuZXRzdVwgOwor5ZCI56WAID4gZ291c2hpXCA7CivmgKfohbogPiBzZWlzZW5cIDsKK+aGsuWFtSA+IGtlbnBlaVwgOwor5rib5YK1ID4gZ2Vuc2FpXCA7Civpu4TmsLQgPiBraW1penVcIDsKK+mKmOaWhyA+IG1laWJ1blwgOwor5Y+j57W1ID4ga3VjaGllXCA7Civnp5HmlpkgPiBrYXJ5b3VcIDsKK+W+oemFjCA+IG9zaGFrdVwgOwor5rCX6Lu9ID4ga2lnYXJ1XCA7CivmgKfog70gPiBzZWlub3VcIDsKK+WRhueEtiA+IGJvdXplblwgOwor5rOo55aPID4gY2h1dXNvXCA7Civms6jnlo4gPiBjaHV1c29cIDsKK+WVhuWIqSA+IHNob3VyaVwgOwor6YqF5p2/ID4gZG91YmFuXCA7CivphZLosqkgPiBzaHVoYW5cIDsKK+ibruS6uiA+IGJhbmppblwgOwor5ZSx5ZKMID4gc2hvdXdhXCA7Civlkajms6IgPiBzaHV1aGFcIDsKK+a1t+aQjSA+IGthaXNvblwgOwor5oCq6IGeID4ga2FpYnVuXCA7Civnp4HmnIkgPiBzaGl5dXVcIDsKK+aFruWkliA+IHJ5b2dhaVwgOwor6YWS6LGqID4gc2h1Z291XCA7Civnp4Hmm7ggPiBzaGlzaG9cIDsKK+mHkeezuCA+IGtpbnNoaVwgOwor5rib5L+4ID4gZ2VucG91XCA7CivljYrovKogPiBoYW5yaW5cIDsKK+azleecvCA+IGhvdWdlblwgOwor5re35ZCMID4ga29uZG91XCA7CivpioDmna8gPiBnaW5wYWlcIDsKK+a3t+WQiCA+IGtvbmdvdVwgOwor55+z6bm4ID4gc2Vra2VuXCA7Civph5HnsokgPiBraW5wdW5cIDsKK+mJm+avkiA+IGVuZG9rdVwgOwor5b2T6aeFID4gdG91ZWtpXCA7CivlvqHpgYogPiBneW95dXVcIDsKK+a4puS4rSA+IGthY2h1dVwgOwor5rOV55u4ID4gaG9zc291XCA7Civmt7HlkbMgPiBmdWthbWlcIDsKK+elnueItiA+IHNoaW5wdVwgOwor5Y6f6JGXID4gZ2VuY2hvXCA7CivmgqDnhLYgPiB5dXV6ZW5cIDsKK+aEn+aHkCA+IGthbmthaVwgOwor6bqm5rmvID4gbXVnaXl1XCA7Civmg7PmnJsgPiBzb3Vib3VcIDsKK+WPguiAgyA+IHNhbmtvdVwgOwor5ZCM55yMID4gZG91a2VuXCA7CivlkI3nm6QgPiBtZWliYW5cIDsKK+WPuOelrSA+IHNoaXNhaVwgOwor5Y+X57WmID4ganVreXV1XCA7CivlkIznm7ggPiBkb3Vzb3VcIDsKK+WQjOebnyA+IGRvdW1laVwgOwor5rSq5rC0ID4ga291enVpXCA7Civlk4DmhIEgPiBhaXNodXVcIDsKK+aEn+aFqCA+IGthbmdhaVwgOwor5Y2D6LyJID4gc2VuemFpXCA7Civom43lhYkgPiBrZWlrb3VcIDsKK+WTgOaDnCA+IGFpc2VraVwgOwor5ZCJ55u4ID4ga2lzc291XCA7CivnqbrkvLwgPiBzb3JhbmlcIDsKK+WSjOacjSA+IHdhZnVrdVwgOwor56Gs6LufID4ga291bmFuXCA7Civph5HnrqEgPiBraW5rYW5cIDsKK+iWrOeQhiA+IHlha3VyaVwgOwor5oSb5oaOID4gYWluaWt1XCA7Civlj6PnrZQgPiBrb3V0b3VcIDsKK+W+jOmHkSA+IGF0b2tpblwgOwor5oSb5oW+ID4gYWl5b2t1XCA7CivmhJ/mg7MgPiBrYW5zb3VcIDsKK+ekvueUqCA+IHNoYXlvdVwgOwor6YqA5pigID4gZ2luJydlaVwgOwor6bm1542yID4gcm9rYWt1XCA7CivnoLLploAgPiBob3Vtb25cIDsKK+a1t+aIpiA+IGthaXNlblwgOwor5oSf5oOFID4ga2Fuam91XCA7CivmgJ3ogIMgPiBzaGlrb3VcIDsKK+WTgeaApyA+IGhpbnNlaVwgOwor5b6p6LevID4gZnVrdXJvXCA7Civlkb3moLkgPiBtZWlrb25cIDsKK+aDheatuyA+IGpvdXNoaVwgOwor6Yyg5YmkID4gam91emFpXCA7Civmt7HljJYgPiBzaGlua2FcIDsKK+WNs+ihjCA+IHNva2tvdVwgOwor6Yyg5YmNID4gam91bWFlXCA7CivmsJfosaEgPiBraXNob3VcIDsKK+aEm+aDnCA+IGFpc2VraVwgOwor5Y+356CyID4gZ291aG91XCA7Civms5XnlYwgPiBob2trYWlcIDsKK+WVk+S4iiA+IGtlaWpvdVwgOwor5rSX5rWEID4gc2Vuam91XCA7CivmhJ/mgKcgPiBrYW5zZWlcIDsKK+elnueBqyA+IHNoaW5rYVwgOwor5Y+M57SZID4gc291c2hpXCA7CivlkI3nlKMgPiBtZWlzYW5cIDsKK+aEm+aBryA+IGFpc29rdVwgOwor6Jek5rCPID4gdG91c2hpXCA7CivljZTorbAgPiBreW91Z2lcIDsKK+m7kuacqCA+IGt1cm9raVwgOwor5oSa5oGvID4gZ3Vzb2t1XCA7Civlj6Tnp7AgPiBrb3Nob3VcIDsKK+m0lemzpSA+IGRhY2hvdVwgOwor5rOl54q2ID4gZGVpam91XCA7CivlvZPpnaIgPiB0b3VtZW5cIDsKK+W/heimiyA+IGhpa2tlblwgOwor6byT5byTID4ga29reXV1XCA7Civlk4DlvJQgPiBhaWNob3VcIDsKK+aCsuazgSA+IGhpa3lvdVwgOwor5rOw54S2ID4gdGFpemVuXCA7Civlj43nsbMgPiBoYW5iZWlcIDsKK+a0u+agkyA+IGthc3NlblwgOwor5rWE5pu4ID4gam91c2hvXCA7CivnoLTpj6EgPiBoYWt5b3VcIDsKK+eogOWwkSA+IGtpc2hvdVwgOwor5ZWG5LqLID4gc2hvdWppXCA7CivnpoHmraIgPiBraW5zaGlcIDsKK+W+jOmAgSA+IGtvdXNvdVwgOwor5b6M6YCAID4ga291dGFpXCA7Civlj5fnq6AgPiBqdXNob3VcIDsKK+mHjeeojiA+IGp1dXplaVwgOwor6YWi6Ju4ID4gc3VkYWtvXCA7Civmra/pvaYgPiBzaGlnaW5cIDsKK+WQhOeVjCA+IGtha2thaVwgOwor5Y+i56WgID4gaG9rb3JhXCA7CivmhajlmIYgPiBnYWl0YW5cIDsKK+W+k+i7jSA+IGp1dWd1blwgOwor5q+b6YiOID4ga2ViYXJpXCA7Civpg6jplbcgPiBidWNob3VcIDsKK+WPsuecvCA+IHNoaWdhblwgOwor5oK25q27ID4gbW9uc2hpXCA7CivmrrXpmo4gPiBkYW5rYWlcIDsKK+m8vuWjsCA+IGthbnNlaVwgOwor5oOo5pWXID4gemFucGFpXCA7Civmgqrms5UgPiBha3Vob3VcIDsKK+W+hemBhyA+IHRhaWd1dVwgOwor5rSL5rSLID4geW91eW91XCA7Civpurrmo5IgPiBtZW5ib3VcIDsKK+WPs+ebriA+IG1pZ2ltZVwgOwor5b+F6KGwID4gaGlzc3VpXCA7Civmra/pu5IgPiBoYWd1cm9cIDsKK+mHjeelmiA+IGNob3Vzb1wgOwor5b6M6LyqID4ga291cmluXCA7CivlvozovKkgPiBrb3VoYWlcIDsKK+m7juaYjiA+IHJlaW1laVwgOwor5oSI5oSIID4gaXlvaXlvXCA7CivnpLznirYgPiByZWlqb3VcIDsKK+awkeirliA+IG1pbnJvblwgOwor5Y+C57GgID4gc2Fucm91XCA7CivmgqrmsLQgPiBha3VzdWlcIDsKK+a7vuOAhSA+IGtvbmtvblwgOwor5Yyq6LqsID4gaGlreXV1XCA7Civlvozou40gPiBrb3VndW5cIDsKK+W+jOi7iiA+IGtvdXNoYVwgOwor5oSJ5oKmID4geXVldHN1XCA7Civph53nm64gPiBoYXJpbWVcIDsKK+WMl+mDqCA+IGhva3VidVwgOwor5by+6aCtID4gZGFudG91XCA7CivmgqrmsJcgPiB3YXJ1Z2lcIDsKK+efoumxiCA+IHlhdGFyYVwgOwor56SO55+zID4gc29zZWtpXCA7CivmtbTlvowgPiB5b2t1Z29cIDsKK+WNk+imiyA+IHRha2tlblwgOwor5ZG95pWwID4gbWVpc3V1XCA7CivljJfpg4ogPiBob2trb3VcIDsKK+aui+mquCA+IHphbmdhaVwgOwor5oqY44CFID4gb3Jpb3JpXCA7Civms6Xngq0gPiBkZWl0YW5cIDsKK+mHkeeggiA+IGtpbnNoYVwgOwor5ZCN54q2ID4gbWVpam91XCA7Civli6fpmY0gPiBrYW5rb3VcIDsKK+iRm+mkoSA+IGt1enVhblwgOwor5rWu5b+DID4gZnVzaGluXCA7Civph43noLIgPiBqdXVob3VcIDsKK+engeaGpCA+IHNoaWZ1blwgOwor5rGX6IW6ID4ga2Fuc2VuXCA7CivmtbflupUgPiBrYWl0ZWlcIDsKK+aAquerpSA+IGthaWRvdVwgOwor5rK855SwID4gbnVtYWRhXCA7Civnpa3mrr8gPiBzYWlkZW5cIDsKK+WNmOihjCA+IHRhbmtvdVwgOwor56Cy6YeRID4gaG91a2luXCA7Civlj6TnnYAgPiBmdXJ1Z2lcIDsKK+WNiuinoyA+IGhhbmthaVwgOwor5Y2X6KGMID4gbmFua291XCA7CivpioDmiYcgPiBnaW5zZW5cIDsKK+mHjeefsyA+IG9tb3NoaVwgOwor5rK755SjID4gY2hpc2FuXCA7Civli5/pm4YgPiBib3NodXVcIDsKK+a3u+S5lyA+IHRlbmpvdVwgOwor6YO36YeMID4ga3lvdXJpXCA7CivlkajmnJ8gPiBzaHV1a2lcIDsKK+WOn+e9qiA+IGdlbnphaVwgOwor6Yym5LiKID4ga2luam91XCA7CivlkbPmlrkgPiBtaWthdGFcIDsKK+eoruWQjSA+IHNodW1laVwgOwor5by36Z+zID4ga3lvdW9uXCA7Civmt7fkuqQgPiBrb25rb3VcIDsKK+ialeWNtSA+IHNhbnJhblwgOwor56eB5oSfID4gc2hpa2FuXCA7CivljYHoqqEgPiBqaWtrYWlcIDsKK+aui+mmmSA+IHphbmtvdVwgOwor6bqq5qOSID4gbWVuYm91XCA7CivmsZrogbcgPiBvc2hva3VcIDsKK+iXqeagoSA+IGhhbmtvdVwgOwor5re35LmxID4ga29ucmFuXCA7CivnqYLlhYggPiBob3Nha2lcIDsKK+mHkeebriA+IGthbmVtZVwgOwor56eB5oOFID4gc2hpam91XCA7CivmtbfltrogPiBrYWlyZWlcIDsKK+WLlemdmSA+IGRvdXNlaVwgOwor5oGS55SjID4ga291c2FuXCA7Civph4/nm64gPiByeW91bWVcIDsKK+W+s+ihjCA+IHRva2tvdVwgOwor56CU6ZG9ID4ga2Vuc2FuXCA7CivlvLHpn7MgPiB5b3dhbmVcIDsKK+WMquiziiA+IGhpem9rdVwgOwor5ZC45rCXID4ga3l1dWtpXCA7Civli6LploAgPiBzZWltb25cIDsKK+W/q+iFlSA+IGthaXdhblwgOwor56eB5oGoID4gc2hpa29uXCA7Civmrovpo68gPiB6YW5wYW5cIDsKK+awtOiRrCA+IHN1aXNvdVwgOwor5Y2K6KOBID4gaGFuc2FpXCA7CivnpoXmnpcgPiB6ZW5yaW5cIDsKK+WUr+S4gCA+IHl1aXRzdVwgOwor6YeN55uXID4ganV1dG91XCA7CivlkIznhLYgPiBkb3V6ZW5cIDsKK+atu+mquCA+IHNoaWdhaVwgOwor5b6h6KiXID4gZ290YWt1XCA7Civlvq7oobcgPiBiaWNodXVcIDsKK+W+oeiogCA+IG1pa290b1wgOwor5rC36I+TID4gaHlvdWthXCA7CivnpZ7msJcgPiBzaGlua2lcIDsKK+WKuemokyA+IGtvdWtlblwgOwor5Y2X6JuuID4gbmFuYmFuXCA7CivljYroob8gPiBoYW5lcmlcIDsKK+iZmuWmhCA+IGt5b21vdVwgOwor5rG6566XID4ga2Vzc2FuXCA7CivmhJ/lrpggPiBrYW5rYW5cIDsKK+WMlui6qyA+IGtlc2hpblwgOwor5oGs54S2ID4gdGVuemVuXCA7Civmg4Xmma8gPiBqb3VrZWlcIDsKK+iWrOa5ryA+IHlha3V5dVwgOwor5rG956ybID4ga2l0ZWtpXCA7Civms5Xnga8gPiBob3V0b3VcIDsKK+a2vOWRsyA+IHJ5b3VtaVwgOwor5ZCM54K5ID4gZG91dGVuXCA7CivmsLToj5wgPiBtaXp1bmFcIDsKK+a1t+WyuCA+IGthaWdhblwgOwor5Yu+6YWNID4ga291YmFpXCA7Civmgqrmpa0gPiBha3Vnb3VcIDsKK+WPguemhSA+IHNhbnplblwgOwor5Y6f57a/ID4gZ2VubWVuXCA7Civmg6jmhrogPiBzYW50YW5cIDsKK+iXpOacrCA+IHRvdWhvblwgOwor6YmE5p2/ID4gdGVwcGFuXCA7Civpg7XpgIEgPiB5dXVzb3VcIDsKK+avlOi8gyA+IGhpa2FrdVwgOwor5rWF5omNID4gc2Vuc2FpXCA7Civnn63pn7MgPiB0YW4nJ29uXCA7CivnpoHmm7ggPiBraW5zaG9cIDsKK+iRiemiqCA+IGhha2F6ZVwgOwor5Y+i55SfID4gc291c2VpXCA7CivlvqHoo70gPiBneW9zZWlcIDsKK+iTtOiPnCA+IGp1bnNhaVwgOwor5ZCr5rC0ID4gZ2Fuc3VpXCA7Civmg7Plv7UgPiBzb3VuZW5cIDsKK+W9sei6qyA+IGthZ2VtaVwgOwor5Y6f57SZID4gZ2Vuc2hpXCA7CivmhJvlrIwgPiBhaWt5b3VcIDsKK+mKt+WkjyA+IHNob3VrYVwgOwor5q+b6LazID4ga2Vhc2hpXCA7Civljp/ns7ggPiBnZW5zaGlcIDsKK+atr+mrhCA+IHNoaXp1aVwgOwor5rW35a65ID4ga2FpeW91XCA7CivpioPlvL4gPiBqdXVkYW5cIDsKK+iZmuWgsSA+IGt5b2hvdVwgOwor5Y6f57OWID4gZ2VudG91XCA7CivokL3ppqwgPiByYWt1YmFcIDsKK+mHkeeSsCA+IGtpbmthblwgOwor56CV6YmxID4gc2Fpa291XCA7CivlvJPppqwgPiBreXV1YmFcIDsKK+WPjOecvCA+IHNvdWdhblwgOwor5Y+M55y4ID4gc291Ym91XCA7CivpubnmsLQgPiBrYW5zdWlcIDsKK+egsui7iiA+IGhvdXNoYVwgOwor5oaC5LiWID4geXV1c2VpXCA7Civlj43nnIEgPiBoYW5zZWlcIDsKK+azqOayuSA+IGNodXV5dVwgOwor5rWF5oWuID4gc2VucnlvXCA7Civpg7fou40gPiBnb3VndW5cIDsKK+aDheaTjSA+IGpvdXNvdVwgOwor56We5qi5ID4gc2hpbmp1XCA7CivmtojlpI8gPiBzaG91a2FcIDsKK+ayiOeggiA+IGNoaW5zYVwgOwor5Yun6YqAID4ga2FuZ2luXCA7CivljLvooZMgPiBpanV0c3VcIDsKK+mCpumhjCA+IGhvdWRhaVwgOwor6JWD56S+ID4gYmFuc2hhXCA7CivnqL/kurogPiBrb3VqaW5cIDsKK+emgeaWrSA+IGtpbmRhblwgOwor6JCM6buOID4gaG91cmVpXCA7Civmg7DlvLEgPiBkYWpha3VcIDsKK+W+i+ipqSA+IHJpc3NoaVwgOwor5oSf5aWuID4ga2FucHVuXCA7CivljrPnpoEgPiBnZW5raW5cIDsKK+a2meWaoiA+IHJ1aW5vdVwgOwor56mC5LimID4gaG9uYW1pXCA7CivljbXog54gPiByYW5ob3VcIDsKK+WQjOa6kCA+IGRvdWdlblwgOwor5oSb5aa+ID4gYWlzaG91XCA7CivlkI3mua8gPiBtZWl0b3VcIDsKK+mHjueQgyA+IHlha3l1dVwgOwor5oCq55uXID4ga2FpdG91XCA7CivlkYnmnI0gPiBnb2Z1a3VcIDsKK+elnualvSA+IGthZ3VyYVwgOwor5b+g576pID4gY2h1dWdpXCA7CivokbfphZIgPiBrdW5zaHVcIDsKK+awtOiFqyA+IHN1aXNodVwgOwor56eR5a2mID4ga2FnYWt1XCA7Civol43mn5MgPiBhaXpvbWVcIDsKK+WUkOS6uiA+IHRvdWppblwgOwor5rK554S2ID4geXV1emVuXCA7Civmgqrmm7ggPiBha3VzaG9cIDsKK+W9k+mBuCA+IHRvdXNlblwgOwor5rSL5pysID4geW91aG9uXCA7CivlvozoposgPiBrb3VrZW5cIDsKK+WQm+awkSA+IGt1bm1pblwgOwor5rSL5pu4ID4geW91c2hvXCA7CivokYnpmbAgPiBoYWthZ2VcIDsKK+mKgOW2uiA+IGdpbnJlaVwgOwor56S85rOVID4gcmVpaG91XCA7CivmsrjngrkgPiBmdXR0ZW5cIDsKK+eni+WtoyA+IHNodXVraVwgOwor5oWL5YuiID4gdGFpc2VpXCA7CivlkozluIMgPiB3YWthbWVcIDsKK+aBrOa3oSA+IHRlbnRhblwgOwor6buZ5bqnID4gbW9rdXphXCA7CivmtrLliaQgPiBla2l6YWlcIDsKK+atu+mciiA+IHNoaXJlaVwgOwor5q6/6LuNID4gZGVuZ3VuXCA7Civpu5LlvbEgPiBrb2t1ZWlcIDsKK+W8iumiqCA+IGhlaWZ1dVwgOwor5Y+M55SfID4gc291c2VpXCA7Civlv4Xoh7MgPiBoaXNzaGlcIDsKK+W+gOiouiA+IG91c2hpblwgOwor5b6B6KiOID4gc2VpdG91XCA7CivolJfns5YgPiBzaG90b3VcIDsKK+mHkeeJjCA+IGtpbnBhaVwgOwor6YWN6Ii5ID4gaGFpc2VuXCA7CivpioXlsbEgPiBkb3V6YW5cIDsKK+aFo+S+iyA+IGthbnJlaVwgOwor5rOV5rK7ID4gaG91Y2hpXCA7CivmtbflpJYgPiBrYWlnYWlcIDsKK+WOn+eovyA+IGdlbmtvdVwgOwor5Y6f56iuID4gZ2Vuc2h1XCA7CivmsLTogJUgPiBzdWlrb3VcIDsKK+mDteiyryA+IHl1dWNob1wgOwor6YeO54mbID4geWFneXV1XCA7CivmtLvmgKcgPiBrYXNzZWlcIDsKK+ekvuauvyA+IHNoYWRlblwgOwor5oSb5Z+3ID4gYWlzaHV1XCA7Civli6fpgLIgPiBrYW5qaW5cIDsKK+mHjeeJiCA+IGp1dWhhblwgOwor5oKq5paHID4gYWt1YnVuXCA7CivnoILph5EgPiBzaGFraW5cIDsKK+ato+mkkCA+IHNlaXNhblwgOwor6YWN6IazID4gaGFpemVuXCA7CivmsYLnuIEgPiBreXV1ZW5cIDsKK+mKgOWxsSA+IGdpbnphblwgOwor56iO5Yi2ID4gemVpc2VpXCA7Civlv43ogJAgPiBuaW50YWlcIDsKK+aCquaUvyA+IGFrdXNlaVwgOwor5q2v6Z2iID4gc2hpbWVuXCA7CivlkIjms5UgPiBnb3Vob3VcIDsKK+atu+mXmCA+IHNoaXRvdVwgOwor56Wt5paHID4gc2FpbW9uXCA7CivlkITmtL4gPiBrYWt1aGFcIDsKK+mBuumrqiA+IGloYXRzdVwgOwor5Y2X6IiqID4gbmFua291XCA7CivmhajkuJYgPiBnYWlzZWlcIDsKK+enmOWigyA+IGhpa3lvdVwgOwor6YWS6IK0ID4gc2h1a291XCA7CivmsYDnt5ogPiB0ZWlzZW5cIDsKK+WOu+eXsCA+IGt5b3RhblwgOwor5rW35aChID4ga2FpaG91XCA7CivlkIzmsI8gPiBkb3VzaGlcIDsKK+elreaUvyA+IHNhaXNlaVwgOwor6YG66aqoID4gaWtvdHN1XCA7Civpu5Llt74gPiBrdXJvZ29cIDsKK+aBqeayoiA+IG9udGFrdVwgOwor5rW35Z+fID4ga2FpaWtpXCA7CivlvoTooYwgPiBrZWlrb3VcIDsKK+aEm+WbvSA+IGFpa29rdVwgOwor6YmE5ouzID4gdGVra2VuXCA7CivlkI3mrosgPiBuYWdvcmlcIDsKK+ayvOa5liA+IHNob3Vrb1wgOwor6JGs6YCBID4gc291c291XCA7CivnoLToqr8gPiBoYWNob3VcIDsKK+aDs+WumiA+IHNvdXRlaVwgOwor5oOF5oSfID4gam91a2FuXCA7CivomZrlkI0gPiBreW9tZWlcIDsKK+WOmuekvCA+IGtvdXJlaVwgOwor56aB5omAID4ga2luc2hvXCA7CivlvL7pgZMgPiBkYW5kb3VcIDsKK+awkeiKuCA+IG1pbmdlaVwgOwor5oSf5ZiGID4ga2FudGFuXCA7Civlk7rkubMgPiBob255dXVcIDsKK+mHjeeCuSA+IGp1dXRlblwgOwor5ZCD5rC0ID4ga2lzc3VpXCA7Civnp7DlkbwgPiBzaG91a29cIDsKK+WPsOa5viA+IHRhaXdhblwgOwor5rOJ5rC0ID4gc2Vuc3VpXCA7CivpiYTmiYcgPiB0ZXNzZW5cIDsKK+aAqueNoyA+IGthaWp1dVwgOwor5ZGo5b+MID4gc2h1dWtpXCA7CivmsLjntpogPiBlaXpva3VcIDsKK+ato+mdoiA+IG1hdG9tb1wgOwor6YeN54GwID4ganV1a2FpXCA7CivmsLTnt7QgPiBzdWlyZW5cIDsKK+efremKgyA+IHRhbmp1dVwgOwor5ZOA5ZOtID4gYWlrb2t1XCA7CivmsLTnt5ogPiBzdWlzZW5cIDsKK+mJseWxsSA+IGtvdXphblwgOwor5Y2x57W1ID4gYWJ1bmFlXCA7CivpibHlsaQgPiBrb3Vzb3VcIDsKK+aBpeavmyA+IGNoaW1vdVwgOwor5YyX6KGMID4gaG9ra291XCA7CivmspvnhLYgPiBoYWl6ZW5cIDsKK+aut+izkSA+IGluc2hpblwgOwor5q+S6KaLID4gZG9rdW1pXCA7CivliqnplbcgPiBqb2Nob3VcIDsKK+a2suS9kyA+IGVraXRhaVwgOwor5Y+45rOVID4gc2hpaG91XCA7CivpiI3moLkgPiBkb25rb25cIDsKK+aDheW/tSA+IGpvdW5lblwgOwor5oK95oOoID4gc2Vpc2FuXCA7Civmg6jlrrMgPiBzYW5nYWlcIDsKK+iZmuWLoiA+IGt5b3NlaVwgOwor56KH572uID4gdGVpY2hpXCA7CivphY3nva4gPiBoYWljaGlcIDsKK+awl+iDuCA+IGtpa3lvdVwgOwor5ZKz5Ze9ID4gZ2Fpc291XCA7Civmrovph5EgPiB6YW5raW5cIDsKK+W+qeiIqiA+IGZ1a2tvdVwgOwor5ZCM5qipID4gZG91a2VuXCA7Civmr6zol7sgPiBtYXJpbW9cIDsKK+iWq+afkyA+IGt1bnNlblwgOwor56eB5aSnID4gc2hpZGFpXCA7Civmr5von7kgPiBrZWdhbmlcIDsKK+W+qeiIiCA+IGZ1a2tvdVwgOwor5oSb5ZSxID4gYWlzaG91XCA7CivmgKfnirYgPiBzZWlqb3VcIDsKK+WTgeWQjSA+IGhpbm1laVwgOwor6Ymx5a6zID4ga291Z2FpXCA7CivlkIzmp5ggPiBkb3V5b3VcIDsKK+WNg+iIrCA+IHNlbnBhblwgOwor5rC057O7ID4gc3Vpa2VpXCA7CivmgqDmj5ogPiB5dXV5b3VcIDsKK+aCquaKlSA+IGFrdXRvdVwgOwor5Y6f55ukID4gZ2VuYmFuXCA7Civps7TploAgPiBuYXJ1dG9cIDsKK+WLlei8qiA+IGRvdXJpblwgOwor5rKz5rWBID4ga2FyeXV1XCA7CivljprnnYAgPiBhdHN1Z2lcIDsKK+aCquaJjSA+IGFrdXNhaVwgOwor5oKq5omLID4gYWt1c2h1XCA7CivmhJ/lkJ8gPiBrYW5naW5cIDsKK+ayvOawlyA+IHNob3VraVwgOwor5rK75rC0ID4gY2hpc3VpXCA7CivmgqrmiYAgPiBha3VzaG9cIDsKK+mKg+WjsCA+IGp1dXNlaVwgOwor5Y21566hID4gcmFua2FuXCA7CivmrY7poZggPiB0YW5nYW5cIDsKK+m7kuWtlyA+IGt1cm9qaVwgOwor6buS5a2QID4gaG9rdXJvXCA7CivmgrbmgrYgPiBtb25tb25cIDsKK+aCquaIpiA+IGFrdXNlblwgOwor5YuV6LuiID4gZG91dGVuXCA7CivnpoDmgKcgPiByaW5zZWlcIDsKK+WLh+mCgSA+IHl1dW1haVwgOwor5Y2x56+kID4ga2l0b2t1XCA7Civnp4HloLEgPiBzaGlob3VcIDsKK+aCsuaEgSA+IGhpc2h1dVwgOwor5raI5YyWID4gc2hvdWthXCA7CivmraPplo8gPiBzZWlqdW5cIDsKK+ato+mWgCA+IHNlaW1vblwgOwor5b2i6KaLID4ga2F0YW1pXCA7CivlkIzmo7IgPiBkb3VzZWlcIDsKK+m2j+iIjiA+IGtlaXNoYVwgOwor5YyF6KOFID4gaG91c291XCA7CivlvrPnvqkgPiB0b2t1Z2lcIDsKK+iRiemFuCA+IHlvdXNhblwgOwor5Yq06YqAID4gcm91Z2luXCA7CivljbDnrrEgPiBpbmJha29cIDsKK+W+jOiRiSA+IGtvdXlvdVwgOwor6YO16KKLID4geXV1dGFpXCA7CivphY3nt5ogPiBoYWlzZW5cIDsKK+WLh+mAgCA+IHl1dXRhaVwgOwor5ZC55oyZID4gc3Vpa3lvXCA7CivmrorpgYcgPiBzaHVndXVcIDsKK+iSvOiMqyA+IHNvdWJvdVwgOwor5rC0566hID4gc3Vpa2FuXCA7CivnpZ7mjoggPiBzaGluanVcIDsKK+aCquaFiyA+IGFrdXRhaVwgOwor5Y+k5rWBID4ga29yeXV1XCA7CivljYHog70gPiBqdXVub3VcIDsKK+mKgOWhiiA+IGdpbmthaVwgOwor6Je75bGRID4gbW9rdXp1XCA7CivomZrlg48gPiBreW96b3VcIDsKK+mFkueyviA+IHNodXNlaVwgOwor5ZCM5qC5ID4gZG91a29uXCA7CivmspnmvKAgPiBzYWJha3VcIDsKK+awtOetkiA+IHN1aXRvdVwgOwor6buZ5aWRID4gbW9ra2VpXCA7CivmhJ/li5UgPiBrYW5kb3VcIDsKK+WQjOagoSA+IGRvdWtvdVwgOwor6YeN5rayID4ganV1ZWtpXCA7Civlj6Tms6ggPiBrb2NodXVcIDsKK+WNmOe3miA+IHRhbnNlblwgOwor5b2T6KmyID4gdG91Z2FpXCA7CivljbDnq6AgPiBpbnNob3VcIDsKK+avkuibviA+IGRva3VnYVwgOwor5Y6f55SjID4gZ2Vuc2FuXCA7Civli53osqAgPiBzaG91YnVcIDsKK+WOn+eUnyA+IGdlbnNlaVwgOwor5bu26ZW3ID4gZW5jaG91XCA7Civph5Hms6UgPiBrb25kZWlcIDsKK+efpemBhyA+IGNoaWd1dVwgOwor5q2M6ZuGID4ga2FzaHV1XCA7CivmsaDnlZQgPiBjaGloYW5cIDsKK+WNpueulyA+IGtlaXNhblwgOwor6buS5aW0ID4ga29rdWRvXCA7CivmgKXngasgPiBreXV1a2FcIDsKK+elnuaKgCA+IHNoaW5naVwgOwor6YqA5Z2RID4gZ2lua291XCA7Civms5Xmm7kgPiBob3Vzb3VcIDsKK+WQjOadkSA+IGRvdXNvblwgOwor5Y6a55SfID4ga291c2VpXCA7CivlkI3mnK0gPiBuYWZ1ZGFcIDsKK+aCquaApyA+IGFrdXNlaVwgOwor5Y2Y57SUID4gdGFuanVuXCA7CivlkI3mnJsgPiBtZWlib3VcIDsKK+WLp+iqrCA+IGthbnplaVwgOwor5ZCR5pqRID4ga291c2hvXCA7CivomIrlpaUgPiB1bicnbm91XCA7Civlv6vnnKAgPiBrYWltaW5cIDsKK+aCquW/tSA+IGFrdW5lblwgOwor5Y2K57qPID4gaGFudGVuXCA7CivlvqHogIUgPiBneW9zaGFcIDsKK+awtOeosiA+IHN1aXRvdVwgOwor5ZCM5pyLID4gZG91Ym91XCA7CivlkIjmnb8gPiBnb3ViYW5cIDsKK+WQjOabuCA+IGRvdXNob1wgOwor6YeR5rCXID4ga2FuYWtlXCA7Civnp5jljL8gPiBoaXRva3VcIDsKK+aEn+WGkiA+IGthbmJvdVwgOwor56aP5a+/ID4gZnVrdWp1XCA7CivmgKrmvKIgPiBrYWlrYW5cIDsKK+mJhOW3pSA+IHRla2tvdVwgOwor5ZCI5pysID4gZ2FwcG9uXCA7Civpga3pm6MgPiBzb3VuYW5cIDsKK+mHjeawtCA+IGp1dXN1aVwgOwor5rC056a9ID4gc3Vpa2luXCA7CivmhJ/lhYkgPiBrYW5rb3VcIDsKK+iZmuS8nSA+IGt5b2RlblwgOwor5ZCI5pyNID4gYWlmdWt1XCA7CivmgqDmgqAgPiB5dXV5dXVcIDsKK+WNl+exsyA+IG5hbmJlaVwgOwor6baP576kID4ga2VpZ3VuXCA7CivphY3nrqEgPiBoYWlrYW5cIDsKK+WTgOWCtyA+IGFpc2hvdVwgOwor5Y+X5rOoID4ganVjaHV1XCA7CivlirTpgKMgPiByb3VyZW5cIDsKK+WLpuiojiA+IHNvdXRvdVwgOwor5Y6z54S2ID4gZ2VuemVuXCA7CivpiZflrZAgPiBrYW5zaGlcIDsKK+WNmOewoSA+IHRhbmthblwgOwor6JS154mIID4gem91aGFuXCA7CivmsLTnpZ4gPiBzdWlqaW5cIDsKK+aCquW8iiA+IGFrdWhlaVwgOwor5Ym16Z2iID4gc291bWVuXCA7CivlirTovrIgPiByb3Vub3VcIDsKK+W+qee4gSA+IGZ1a3VlblwgOwor56We5oSPID4gc2hpbicnaVwgOwor6bu95YuJID4gYmluYmVuXCA7CivmhI/lipsgPiBpcnlva3VcIDsKK+W9k+ihjCA+IHRvdWtvdVwgOwor56aF5bC8ID4gemVuJyduaVwgOwor56Wd5oSPID4gc2h1a3VpXCA7Civms5XmlocgPiBob3VidW5cIDsKK+WKoOmHjSA+IGthY2hvdVwgOwor5ZCM5patID4gZG91ZGFuXCA7Civlj5bmsLQgPiBzaHVzdWlcIDsKK+a1hOWfnyA+IGpvdWlraVwgOwor5ZCN5paHID4gbWVpYnVuXCA7CivljYrntJkgPiBoYW5zaGlcIDsKK+W8lOi+niA+IGNob3VqaVwgOwor6Ymx5Z2RID4ga291a291XCA7CivlkI3mlbAgPiBtZWlzdXVcIDsKK+mFkueojiA+IHNodXplaVwgOwor5ZCM5paHID4gZG91YnVuXCA7Civli53oqLQgPiBzaG91c29cIDsKK+WOn+eKtiA+IGdlbmpvdVwgOwor5rW35YaFID4ga2FpZGFpXCA7CivlkIzmlbAgPiBkb3VzdXVcIDsKK+a1t+WFtSA+IGthaWhlaVwgOwor5b6T6ICFID4ganV1c2hhXCA7CivljIXolLUgPiBob3V6b3VcIDsKK+W+veeroCA+IGtpc2hvdVwgOwor5q+b6Iy4ID4gbW91am91XCA7CivnpoXlrpogPiB6ZW5qb3VcIDsKK+WQiOaWuSA+IGFpa2F0YVwgOwor6buS5ZywID4ga3Vyb2ppXCA7CivmsojmuKMgPiBjaGluc2FcIDsKK+W+jOiCoiA+IGtvdXNoaVwgOwor6buS5ZyfID4ga29rdWRvXCA7Civljp/niYggPiBnZW5wYW5cIDsKK+iWhOadvyA+IHVzdWl0YVwgOwor55+t6LOHID4gdGFuc2hpXCA7Civph5HmqKkgPiBraW5rZW5cIDsKK+WNl+erryA+IG5hbnRhblwgOwor5by36KuLID4gZ291c2VpXCA7CivlvLfoq4cgPiBnb3VkYW5cIDsKK+mKmOWIgCA+IG1laXRvdVwgOwor5oKU5oGoID4ga2Fpa29uXCA7CivpgaDpmpQgPiBlbmtha3VcIDsKK+axuua9sCA+IGtla2thaVwgOwor6Jam5oyZID4gc2Vua3lvXCA7Civpu4TlobUgPiBrb3VqaW5cIDsKK+WLleipniA+IGRvdXNoaVwgOwor56eA5Y+lID4gc2h1dWt1XCA7Civph6PmnpwgPiBjaG91a2FcIDsKK+WPpOalvSA+IGtvZ2FrdVwgOwor5Y+45pu4ID4gc2hpc2hvXCA7CivlvozogIUgPiBrb3VzaGFcIDsKK+WMl+iIqiA+IGhva2tvdVwgOwor6YiN5omNID4gZG9uc2FpXCA7CivlkLjlvJUgPiBreXV1aW5cIDsKK+W7g+mgvSA+IGhhaXRhaVwgOwor6Je75aGpID4gbW9zaGlvXCA7CivpioPlj6MgPiBqdXVrb3VcIDsKK+W8t+iomCA+IGt5b3VraVwgOwor5oCl5rS+ID4ga3l1dWhhXCA7CivlibXplosgPiBzb3VrYWlcIDsKK+WPjeavmyA+IGhhbm1vdVwgOwor6JaE5pquID4gaGFrdWJvXCA7Civnn6nosaEgPiBrdXNob3VcIDsKK+awtOedgCA+IG1penVnaVwgOwor5rqA44CFID4gbWFubWFuXCA7CivnopHnn7MgPiBoaXNla2lcIDsKK+aEmuS9nCA+IGd1c2FrdVwgOwor5Yqg6YCfID4ga2Fzb2t1XCA7Civlvoznva4gPiBrb3VjaGlcIDsKK+axmueJqSA+IG9idXRzdVwgOwor5Y+y5pu4ID4gc2hpc2hvXCA7CivmtKrlpKcgPiBrb3VkYWlcIDsKK+WPsOacrCA+IGRhaWhvblwgOwor6baP57OeID4ga2VpZnVuXCA7CivmsLTnm6QgPiBzdWliYW5cIDsKK+WMheiOliA+IGhvdWtlaVwgOwor5ZKG5ZOuID4gaG91a291XCA7CivnpLzmi50gPiByZWloYWlcIDsKK+W+rueskSA+IGJpc2hvdVwgOwor5Yml6ZuiID4gaGFrdXJpXCA7CivpgbjpibEgPiBzZW5rb3VcIDsKK+WOn+eCuSA+IGdlbnRlblwgOwor6JKQ6I23ID4gc2h1dWthXCA7CivljYPnr4cgPiBzZW5wZW5cIDsKK+WPpOagvCA+IGtva2FrdVwgOwor5rG65riIID4ga2Vzc2FpXCA7CivljZHnp7AgPiBoaXNob3VcIDsKK+mIjeaEnyA+IGRvbmthblwgOwor5YyF6IyOID4gaG91a2VpXCA7Civmr5vohJsgPiBrZXp1bmVcIDsKK+avm+iEmiA+IGtlYXNoaVwgOwor6bOz6LymID4gaG91cmVuXCA7CivlirTos4cgPiByb3VzaGlcIDsKK+aAquatuyA+IGthaXNoaVwgOwor56Cy6ImmID4gaG91a2FuXCA7Civnp4HliJEgPiBzaGlrZWlcIDsKK+mFlOecvCA+IHN1aWdhblwgOwor5bm86b2iID4geW91cmVpXCA7Civlu7vpgIEgPiBrYWlzb3VcIDsKK+W7uumAoCA+IGtlbnpvdVwgOwor5Yi66a2aID4gdG9nZXVvXCA7Civpg6jokL0gPiBidXJha3VcIDsKK+WPt+aVsCA+IGdvdXN1dVwgOwor6YqD5Ym1ID4ganV1c291XCA7CivnpZblu58gPiBzb2J5b3VcIDsKK+WNteeUnyA+IHJhbnNlaVwgOwor6YqD5YmjID4ganV1a2VuXCA7Civlj4Lmrr8gPiBzYW5kZW5cIDsKK+W8leiyrCA+IGluc2VraVwgOwor6Jep5aOrID4gaGFuc2hpXCA7CivmsLTnl5ggPiBzdWl0b3VcIDsKK+mHkeafkSA+IGtpbmthblwgOwor55+t6KmpID4gdGFuc2hpXCA7CivmgZLmmJ8gPiBrb3VzZWlcIDsKK+aDheWgsSA+IGpvdWhvdVwgOwor6bqX5a65ID4gcmVpeW91XCA7CivphK3nrosgPiB0ZWlzZW5cIDsKK+awtOeWsSA+IHN1aWhvdVwgOwor5Y+i5p6XID4gc291cmluXCA7Civlj7PmlocgPiB5dXVidW5cIDsKK+mKg+WIkSA+IGp1dWtlaVwgOwor6YO16Ii5ID4geXV1c2VuXCA7CivlkI3miYsgPiBtZWlzaHVcIDsKK+W+jOe3qCA+IGtvdWhlblwgOwor56eB5YW1ID4gc2hpaGVpXCA7CivlkI3miYAgPiBtZWlzaG9cIDsKK+mCgumAhSA+IGthaWtvdVwgOwor5Y+k5pyoID4ga29ib2t1XCA7Civph5Hmna8gPiBraW5wYWlcIDsKK+efpeisgCA+IGNoaWJvdVwgOwor56eB5YWaID4gc2hpdG91XCA7CivlkIzmiYAgPiBkb3VzaG9cIDsKK+WQjOaIvyA+IGRvdWJvdVwgOwor5ZCb5oGpID4ga3VuJydvblwgOwor5ZCI5oqxID4gZ291aG91XCA7Civmg7PliLAgPiBzb3V0b3VcIDsKK+WOn+a9nCA+IGdlbnNlblwgOwor6Yak5rK5ID4gc2hvdXl1XCA7Civlvq7npoQgPiBiaXJva3VcIDsKK+eigeefsyA+IGdvaXNoaVwgOwor5b6M57aZID4ga291a2VpXCA7Civms7DlubMgPiB0YWloZWlcIDsKK+WPsOaVsCA+IGRhaXN1dVwgOwor5rC055SwID4gc3VpZGVuXCA7CivmtbfkuIogPiBrYWlqb3VcIDsKK+awtOeUoyA+IHN1aXNhblwgOwor5bm06b2iID4gbmVucmVpXCA7CivmsLTnlJ8gPiBzdWlzZWlcIDsKK+mBvOmBoCA+IHJ5b3VlblwgOwor5bqV6a2aID4gc29rb3VvXCA7CivmgZLmlbAgPiBrb3VzdXVcIDsKK+enmOS4rSA+IGhpY2h1dVwgOwor5YmN6aCFID4gemVua291XCA7Civlj6Lmm7ggPiBzb3VzaG9cIDsKK+auuuiPjCA+IHNha2tpblwgOwor5bu76LuiID4ga2FpdGVuXCA7CivmrKDpmaUgPiBrZWtrYW5cIDsKK+mKmOS7mSA+IG1laXNlblwgOwor55+t6KaLID4gdGFua2VuXCA7CivlkbzlkLggPiBrb2t5dXVcIDsKK+W8seihjCA+IGpha2tvdVwgOwor5ZG95ZCNID4gbWVpbWVpXCA7CivnpoXloIIgPiB6ZW5kb3VcIDsKK+WQiOaIpiA+IGthc3NlblwgOwor5ZG85ZCNID4geW9iaW5hXCA7CivmrZPpgIEgPiBrYW5zb3VcIDsKK+WQiOaIkCA+IGdvdXNlaVwgOwor5rG65rC0ID4ga2Vzc3VpXCA7CivlkIzmhoIgPiBkb3V5dXVcIDsKK+mKheWDjyA+IGRvdXpvdVwgOwor5ZCM5oW2ID4gZG91a2VpXCA7CivljZjnnLwgPiB0YW5nYW5cIDsKK+atk+i/jiA+IGthbmdlaVwgOwor6YeN5pu5ID4ganV1c291XCA7CivliY3pnaIgPiB6ZW5tZW5cIDsKK+WPpOaYlCA+IGtvc2VraVwgOwor6JK457GgID4gc2Vpcm91XCA7Civmr5Tnv7wgPiBoaXlva3VcIDsKK+WQiOaGsiA+IGdvdWtlblwgOwor5Y2Y55u4ID4gdGFuc291XCA7CivpiYTloZQgPiB0ZXR0b3VcIDsKK+WQjOaEnyA+IGRvdWthblwgOwor5rWq5Lq6ID4gcm91bmluXCA7CivliZTpmaQgPiB0ZWtpam9cIDsKK+WQiOaGjiA+IGFpbmlrdVwgOwor5rKh5pu4ID4gYm9zc2hvXCA7CivmrKHplbcgPiBqaWNob3VcIDsKK+m3uea0viA+IHRha2FoYVwgOwor5oKq5aa7ID4gYWt1c2FpXCA7Civpupflp78gPiByZWlzaGlcIDsKK+WJjembuyA+IHplbmRlblwgOwor55+l6KaLID4gY2hpa2VuXCA7CivmsbrmrbsgPiBrZXNzaGlcIDsKK+aDs+WDjyA+IHNvdXpvdVwgOwor5Y+W5p2QID4gc2h1emFpXCA7CivlkIzmg4UgPiBkb3Vqb3VcIDsKK+WItummrSA+IHNlaWd5b1wgOwor5ZCR5oCnID4ga291c2VpXCA7CivomK3kurogPiByYW5qaW5cIDsKK+auv+iIjiA+IGRlbnNoYVwgOwor6I+M6aGeID4ga2lucnVpXCA7CivnpZ7lrq4gPiBqaW5ndXVcIDsKK+aCsuWigyA+IGhpa3lvdVwgOwor5Y6z5q2jID4gZ2Vuc2VpXCA7CivokL3oqp4gPiByYWt1Z29cIDsKK+m7hOWQuyA+IGtvdWZ1blwgOwor6YeN5pifID4ganV1c2VpXCA7Civlj6PmlbAgPiBrb3VzdXVcIDsKK+WNteeKtiA+IHJhbmpvdVwgOwor5q2j6LOTID4gc2VpaGluXCA7CivlvJXoqLwgPiBpbnNob3VcIDsKK+aCquWkqSA+IGFrdXRlblwgOwor5b6M56+HID4ga291aGVuXCA7Civpu4Tlj6MgPiBrb3Vrb3VcIDsKK+WQjOaApyA+IGRvdXNlaVwgOwor5oKq5aOwID4gYWt1c2VpXCA7Civms7DlsbEgPiB0YWl6YW5cIDsKK+mBremBhyA+IHNvdWd1dVwgOwor6YeN5paHID4ganV1YnVuXCA7CivliYrpmaQgPiBzYWt1am9cIDsKK+WNiuedoSA+IGhhbnN1aVwgOwor5ZCM5b+XID4gZG91c2hpXCA7CivlkL7lprkgPiB3YWdpbW9cIDsKK+WNiuecvCA+IGhhbmdhblwgOwor5ZCI5oCnID4gYWlzaG91XCA7Civnp4HkurogPiBzaGlqaW5cIDsKK+WPs+aKmCA+IHVzZXRzdVwgOwor56Wt5aOHID4gc2FpZGFuXCA7Civljp/msrkgPiBnZW4nJ3l1XCA7CivmrbPoqIggPiBzYWlrZWlcIDsKK+aAp+aguSA+IHNob3VuZVwgOwor6JGb6JekID4ga2F0dG91XCA7CivljYrnm7IgPiBoYW5tb3VcIDsKK+W+jOerryA+IGtvdXRhblwgOwor5rWE5YaZID4gam91c2hhXCA7CivlkIzlvaIgPiBkb3VrZWlcIDsKK+WJjemWgCA+IHplbm1vblwgOwor5oKq5aC0ID4gd2FydWJhXCA7CivmgqrloLEgPiBha3Vob3VcIDsKK+azleW7tyA+IGhvdXRlaVwgOwor5Y+z5omLID4gbWlnaXRlXCA7Civlj4zmm7ggPiBzb3VzaG9cIDsKK+W/g+eQhiA+IHNoaW5yaVwgOwor5Y+L5pyLID4geXV1aG91XCA7Civlv6vmvKIgPiBrYWlrYW5cIDsKK+WNh+ebriA+IG1hc3VtZVwgOwor56S85bi9ID4gcmVpYm91XCA7Civlh7rpvLsgPiBkZWJhbmFcIDsKK+WPieacqCA+IG1hdGFnaVwgOwor5q2p6Kq/ID4gaG9jaG91XCA7CivlupfpoK0gPiB0ZW50b3VcIDsKK+elreWgtCA+IHNhaWpvdVwgOwor5bm96a2CID4geXV1a29uXCA7CivnpZ7lqIEgPiBzaGluJydpXCA7Civlj4jmnKggPiBtYXRhZ2lcIDsKK+W5vOmtmiA+IHlvdWd5b1wgOwor5Yi66Z2SID4gc2hpc2VpXCA7Civljp/msJEgPiBnZW5taW5cIDsKK+WJtemAoCA+IHNvdXpvdVwgOwor5oGw5bqmID4gY2hvdWRvXCA7CivlkLnlpY8gPiBzdWlzb3VcIDsKK+WQjeW6lyA+IG1laXRlblwgOwor5Yi46Z2iID4ga2VubWVuXCA7Civljp/mr5sgPiBnZW5tb3VcIDsKK+mKg+S4uCA+IGp1dWdhblwgOwor5bmy6bGIID4gaGlkYXJhXCA7CivlkIzlupcgPiBkb3V0ZW5cIDsKK+WPr+aIkCA+IGthbmFyaVwgOwor5Yiw6aCtID4gdG91dG91XCA7CivlkIjlvIEgPiBnb3ViZW5cIDsKK+azleW4qyA+IGhvdXNoaVwgOwor5byB6KuWID4gYmVucm9uXCA7Civlj43mmKAgPiBoYW4nJ2VpXCA7CivlkIzlubQgPiBkb3VuZW5cIDsKK+azleW4liA+IGhvdWpvdVwgOwor5rWB5YSAID4gcnl1dWdpXCA7CivmraPoq5YgPiBzZWlyb25cIDsKK+aDheWPsiA+IGpvdXNoaVwgOwor5rS75YaZID4ga2Fzc2hhXCA7CivmsLTnha4gPiBtaXp1bmlcIDsKK+WKseihjCA+IHJlaWtvdVwgOwor5oOH5Y6aID4gdG9ua291XCA7CivluqfplbcgPiB6YWNob3VcIDsKK+aBkOaHvCA+IGt5b3VrdVwgOwor5Yil6aSoID4gYmVra2FuXCA7Civmr5LntKAgPiBkb2t1c29cIDsKK+WQjeW3pSA+IG1laWtvdVwgOwor5ZCM5biCID4gZG91c2hpXCA7CivmsL7mv6sgPiBoYW5yYW5cIDsKK+W6lemdoiA+IHRlaW1lblwgOwor5Y+M5pa5ID4gc291aG91XCA7CivljYrnlbMgPiBoYW5qb3VcIDsKK+egtOe0hCA+IGhheWFrdVwgOwor5b28562JID4ga2FyZXJhXCA7CivpgY7ph48gPiBrYXJ5b3VcIDsKK+WOmOavmyA+IHJpbm1vdVwgOwor5Y+N5pWwID4gaGFuc3V1XCA7CivmsJHnlJ8gPiBtaW5zZWlcIDsKK+avm+euoSA+IG1vdWthblwgOwor5Y2K55SfID4gaGFuc2VpXCA7CivmraPoqJMgPiBzZWlrdW5cIDsKK+WPjeaUuyA+IGhhbmtvdVwgOwor5Y675p2lID4ga3lvcmFpXCA7CivlvIHop6MgPiBiZW5rYWlcIDsKK+mBi+mHnSA+IHVuc2hpblwgOwor6YGO6YW3ID4ga2Frb2t1XCA7Civlj6TmiYsgPiBmdXJ1dGVcIDsKK+ato+inoyA+IHNlaWthaVwgOwor5Yi26ZmQID4gc2VpZ2VuXCA7Civmr5vnrYsgPiBrZXN1amlcIDsKK+ekvuWxiyA+IHNoYW9rdVwgOwor5rCX55CDID4ga2lreXV1XCA7Civlj6/mg5wgPiBhdHRhcmFcIDsKK+mAo+maiiA+IHJlbnRhaVwgOwor6YGK6YeRID4geXV1a2luXCA7Civlj6PmiY0gPiBrb3VzYWlcIDsKK+mGh+atoyA+IGp1bnNlaVwgOwor5oOF5YuiID4gam91c2VpXCA7Civlub3pppkgPiB5dXVrb3VcIDsKK+mHkeaJhyA+IGtpbnNlblwgOwor5q2j6KaWID4gc2Vpc2hpXCA7CivlkJvlrZAgPiBrdW5zaGlcIDsKK+atouimsyA+IHNoaWthblwgOwor5Yip6Z6YID4gcml6YXlhXCA7CivliKXpoIUgPiBiZWtrb3VcIDsKK+ato+ilvyA+IHNlaXNlaVwgOwor56aP5YipID4gZnVrdXJpXCA7CivpgYXpiI0gPiBjaGlkb25cIDsKK+WPluaNqCA+IHNodXNoYVwgOwor5Ymj6YGTID4ga2VuZG91XCA7CivmgKjmlbUgPiBvbnRla2lcIDsKK+W+queSsCA+IGp1bmthblwgOwor5bu66KiAID4ga2VuZ2VuXCA7CivmgYvmhJsgPiByZW4nJ2FpXCA7CivmrKDphY0gPiBrZXBwYWlcIDsKK+m1rOeoiyA+IGhvdXRlaVwgOwor6JWD5pu4ID4gYmFuc2hvXCA7CivmgZLmgKcgPiBrb3VzZWlcIDsKK+W7u+impyA+IGthaXJhblwgOwor5ZG95LukID4gbWVpcmVpXCA7CivlkI3lsbEgPiBtZWl6YW5cIDsKK+ecn+m0qCA+IG1hZ2Ftb1wgOwor6YCj6ZaiID4gcmVua2FuXCA7CivlkJHlr5IgPiBrb3VrYW5cIDsKK+axgOa4miA+IHRlaXNob1wgOwor5oGL5oOFID4gcmVuam91XCA7CivmrZPoq4cgPiBrYW5kYW5cIDsKK+aBkOaAliA+IGt5b3VmdVwgOwor5q2j6KOFID4gc2Vpc291XCA7Civlj4LmlL8gPiBzYW5zZWlcIDsKK+WQjOWxhSA+IGRvdWt5b1wgOwor5Yid6aCtID4gc2hvdG91XCA7CivpgYXphY0gPiBjaGloYWlcIDsKK+W7g+mAgCA+IGhhaXRhaVwgOwor5rGB5rayID4ganV1ZWtpXCA7CivpgJrpmaIgPiB0c3V1aW5cIDsKK+aBteWtmCA+IGtlaXpvblwgOwor6JaE5bm4ID4gaGFra291XCA7CivlkIzlsIEgPiBkb3VmdXVcIDsKK+WPsOW9oiA+IGRhaWtlaVwgOwor5rOV5a6aID4gaG91dGVpXCA7Civms5XlrpggPiBob3VrYW5cIDsKK+aBi+aBiyA+IHJlbnJlblwgOwor55+z6IuxID4gc2VraWVpXCA7CivlvannrqEgPiBzYWlrYW5cIDsKK+mBoOi2syA+IGVuc29rdVwgOwor5Yy655S7ID4ga3VrYWt1XCA7CivljrPmmpEgPiBnZW5zaG9cIDsKK+asoemAsSA+IGppc2h1dVwgOwor5YmN6YeRID4gbWFla2luXCA7Civph43mhYsgPiBqdXV0YWlcIDsKK+atu+iUtSA+IHNoaXpvdVwgOwor5rK75bmzID4gY2hpaGVpXCA7CivmtIvlk4EgPiB5b3VoaW5cIDsKK+WQjOWumiA+IGRvdXRlaVwgOwor5ZCN5a2XID4gbXlvdWppXCA7CivliaXouqsgPiBtdWtpbWlcIDsKK+awtOa6liA+IHN1aWp1blwgOwor5rC05rqQID4gc3VpZ2VuXCA7CivnpoHliLYgPiBraW5zZWlcIDsKK+mAgemiqCA+IHNvdWZ1dVwgOwor6YG66KiAID4geXVpZ29uXCA7Civmga/lrZAgPiBtdXN1a29cIDsKK+aBqeWvtSA+IG9uY2hvdVwgOwor6YGF6YGFID4gY2hpY2hpXCA7CivmgqrlkI0gPiBha3VtZWlcIDsKK+iUteacrCA+IHpvdWhvblwgOwor5Y6z5peoID4gZ2Vuc2hpXCA7Civljp/moYggPiBnZW4nJ2FuXCA7Civph43mgqMgPiBqdXVrYW5cIDsKK+WPjeaKlyA+IGhhbmtvdVwgOwor56WW5Zu9ID4gc29rb2t1XCA7Civlu4Pou4ogPiBoYWlzaGFcIDsKK+iUteabuCA+IHpvdXNob1wgOwor5oKq5Y+LID4gYWt1eXV1XCA7CivphZTmvKIgPiBzdWlrYW5cIDsKK+mHjeaBqSA+IGNob3VvblwgOwor5bm06aCtID4gbmVudG91XCA7CivmsrPluoogPiBrYXNob3VcIDsKK+a0l+WJpCA+IHNlbnphaVwgOwor5bm96ZyKID4geXV1cmVpXCA7Civnpa3lj7ggPiBzYWlzaGlcIDsKK+WLmOiAgyA+IGthbmtvdVwgOwor5oGS5bi4ID4ga291am91XCA7CivmgrLliocgPiBoaWdla2lcIDsKK+W6p+mHkSA+IHphZ2FuZVwgOwor56aF5YOnID4gemVuc291XCA7Civlj6PlvoQgPiBrb3VrZWlcIDsKK+WPjOaJiyA+IG1vcm90ZVwgOwor55+z6IaPID4gc2Vra291XCA7Civnn63oiYcgPiB0YW50ZWlcIDsKK+awtOa2ryA+IHN1aWdhaVwgOwor5Y+N5oimID4gaGFuc2VuXCA7CivliI7poLggPiBmdW5rZWlcIDsKK+W6pumHjyA+IGRvcnlvdVwgOwor6JK855SfID4gc291c2VpXCA7CivliIbppKggPiBidW5rYW5cIDsKK+WIhumkkCA+IGJ1bnNhblwgOwor6YGK6LuNID4geXV1Z3VuXCA7Civljp/mnb8gPiBnZW5wYW5cIDsKK+mDteeojiA+IHl1dXplaVwgOwor6YeO5b+DID4geWFzaGluXCA7Civli4PoiIggPiBib2trb3VcIDsKK+WMluefsyA+IGthc2VraVwgOwor56S+5aSWID4gc2hhZ2FpXCA7CivmgK/mh6YgPiBreW91ZGFcIDsKK+WPo+W8gSA+IGtvdWJlblwgOwor5Y+k5bufID4ga29ieW91XCA7CivlvZPnsaQgPiB0b3VzZW5cIDsKK+W6g+mWkyA+IGhpcm9tYVwgOwor5Y6f5pysID4gZ2VucG9uXCA7CivmsLTmtJcgPiBzdWlzZW5cIDsKK+awt+aysyA+IGh5b3VnYVwgOwor6Ya45oiQID4gam91c2VpXCA7Civlj4Lmi50gPiBzYW5wYWlcIDsKK+W5s+mdoiA+IGhlaW1lblwgOwor5bmz6Z2ZID4gaGVpc2VpXCA7CivlkIzlp5MgPiBkb3VzZWlcIDsKK+iXieWPoyA+IHNoYWtvdVwgOwor5Y6f5pu4ID4gZ2Vuc2hvXCA7CivlkKvll70gPiBnYW5zb3VcIDsKK+awtOazoSA+IHN1aWhvdVwgOwor5ZC75ZCIID4gZnVuZ291XCA7Civpg7fnpL4gPiBnb3VzaGFcIDsKK+mAgembuyA+IHNvdWRlblwgOwor5YiG6aGeID4gYnVucnVpXCA7CivmsrvlsbEgPiBjaGlzYW5cIDsKK+W+jOeUnyA+IGdvc2hvdVwgOwor5oGw5aW9ID4ga2Fra291XCA7CivliqDolqwgPiBrYXlha3VcIDsKK+W/q+alvSA+IGtlcmFrdVwgOwor5Y+N5oSfID4gaGFua2FuXCA7CivlkIzlpb0gPiBkb3Vrb3VcIDsKK+iWrOWckiA+IHlha3VlblwgOwor6Jep5L6vID4gaGFua291XCA7Civmga/lpbMgPiBzb2t1am9cIDsKK+azleWkliA+IGhvdWdhaVwgOwor6YmE5YKYID4gdGVzc2FuXCA7CivmsZ/mnZEgPiBrb3Vzb25cIDsKK+W/teagoSA+IG5lbmtvdVwgOwor5Y2Y5ryiID4gdGFua2FuXCA7Civno4HmnZ8gPiBqaXNva3VcIDsKK+WQjeWkpyA+IG1laWRhaVwgOwor5bm96ZaRID4geXV1a2FuXCA7Civlub3plokgPiB5dXVoZWlcIDsKK+W/jeazlSA+IG5pbnBvdVwgOwor5bm96ZaAID4geXV1bW9uXCA7Civlj4LmiKYgPiBzYW5zZW5cIDsKK+WQjOWkpyA+IGRvdWRhaVwgOwor5Yuy562JID4ga3VudG91XCA7Civlvbnnm64gPiB5YWt1bWVcIDsKK+aDheS6uiA+IGpvdW5pblwgOwor6JGX6ICFID4gY2hvc2hhXCA7CivnnqXoposgPiBiZWtrZW5cIDsKK+WQjeWjsCA+IG1laXNlaVwgOwor5oOF5LqkID4gam91a291XCA7Civlj6Tlt6MgPiBmdXJ1c3VcIDsKK+WQjeWjqyA+IG1laXNoaVwgOwor6YG16KGMID4ganVua291XCA7CivpgIDpmaMgPiB0YWlqaW5cIDsKK+WJo+ixqiA+IGtlbmdvdVwgOwor5rC05rCXID4gbWl6dWtlXCA7CivlkIzlo6sgPiBkb3VzaGlcIDsKK+W5tOmZkCA+IG5lbmdlblwgOwor5Y+L5oOFID4geXV1am91XCA7CivmsqLlurUgPiB0YWt1YW5cIDsKK+mBjuizniA+IGthc2hvdVwgOwor5q+S55+iID4gZG9rdXlhXCA7CivljrPmjqIgPiBnZW50YW5cIDsKK+WQiOWljyA+IGdhc3NvdVwgOwor5oKy5YK3ID4gaGlzaG91XCA7Civph5Hlt6UgPiBraW5rb3VcIDsKK+avm+eariA+IGtlZ2F3YVwgOwor5Y2X5rqfID4gbmFubWVpXCA7CivokYnohYsgPiB5b3Vla2lcIDsKK+WJjei7jSA+IHplbmd1blwgOwor5YuH6ICFID4geXV1c2hhXCA7CivliY3ou4ogPiB6ZW5zaGFcIDsKK+awtOavjSA+IGt1cmFnZVwgOwor55uu6by7ID4gbWVoYW5hXCA7Civpg73nnaMgPiB0b3Rva3VcIDsKK+WNl+a6gCA+IG5hbm1hblwgOwor5oKq5YWaID4gYWt1dG91XCA7Civlj7LlrpggPiBzaGlrYW5cIDsKK+mBi+izgyA+IHVuY2hpblwgOwor5oCn5oSfID4gc2Vpa2FuXCA7CivmsLTmrbsgPiBzdWlzaGlcIDsKK+WOn+aWhyA+IGdlbmJ1blwgOwor6YGK6LOHID4geXV1c2hpXCA7CivpuqbkvqEgPiBiYWt1a2FcIDsKK+mHjeW3pSA+IGp1dWtvdVwgOwor55+l6IO9ID4gY2hpbm91XCA7CivlibXoposgPiBzb3VrZW5cIDsKK+elreWFuCA+IHNhaXRlblwgOwor5YuV57eaID4gZG91c2VuXCA7Civlv7Xmm7ggPiBuZW5zaG9cIDsKK+W5tOmWkyA+IG5lbmthblwgOwor5b+F5rK7ID4gaGl0Y2hpXCA7CivnpoHku6QgPiBraW5yZWlcIDsKK+atr+iMjiA+IGhhZ3VraVwgOwor5oCn5oOFID4gc2Vpam91XCA7Civmgqrlg6cgPiBha3Vzb3VcIDsKK+W+k+eKryA+IGp1dWhhblwgOwor56We5YyWID4gc2hpbmthXCA7Civol6nkuLsgPiBoYW5zaHVcIDsKK+WNoOazlSA+IHNlbnBvdVwgOwor55+l6IKyID4gY2hpaWt1XCA7CivnpL7lm6MgPiBzaGFkYW5cIDsKK+WKueiDvSA+IGtvdW5vdVwgOwor5YiG6ZqbID4gYnVuemFpXCA7CivpgYHotbAgPiB0b25zb3VcIDsKK+iQteiLoyA+IGNoaXNoYVwgOwor5ZCJ5aCxID4ga2lwcG91XCA7CivliIbpmoogPiBidW50YWlcIDsKK+WPjeW9sSA+IGhhbicnZWlcIDsKK+aAoOaFoiA+IHRhaW1hblwgOwor56C055uuID4gd2FyZW1lXCA7CivpgKDphZIgPiB6b3VzaHVcIDsKK+WJteijvSA+IHNvdXNlaVwgOwor5YiG6ZmiID4gYnVuJydpblwgOwor56We5YqpID4gc2hpbmpvXCA7CivliIbpmZAgPiBidW5nZW5cIDsKK+WNl+a1tyA+IG5hbmthaVwgOwor5ZCM5Z6LID4gZG91a2VpXCA7CivmgJ3mha4gPiBzaGlyeW9cIDsKK+axuuaIpiA+IGtlc3NlblwgOwor6YCj6YKmID4gcmVucG91XCA7Civlh7HpoqggPiBnYWlmdXVcIDsKK+aAqOW/tSA+IG9uJyduZW5cIDsKK+WMlueUnyA+IGtlc2hvdVwgOwor6YeR5bGxID4ga2luemFuXCA7Civnn6XogIUgPiBjaGlzaGFcIDsKK+WQpuWQpiA+IGl5YWl5YVwgOwor5Y6z5oiSID4gZ2Vua2FpXCA7Civlh7bpn7MgPiBreW91aW5cIDsKK+W/g+awlyA+IHNoaW5raVwgOwor5oKf5YWlID4gZ29ueXV1XCA7CivlkIzlnLAgPiBkb3VjaGlcIDsKK+ehneeFmSA+IHNob3VlblwgOwor6YWN5rC0ID4gaGFpc3VpXCA7CivpgLjotrMgPiBpc3Nva3VcIDsKK+aAneaDsyA+IHNoaXNvdVwgOwor56Cl55+zID4gdG9pc2hpXCA7CivliIfplosgPiBzZWtrYWlcIDsKK+W5tOmRkSA+IG5lbmthblwgOwor5b+F5q27ID4gaGlzc2hpXCA7Civlj6TlrrYgPiBmdXJ1aWVcIDsKK+W9k+ekviA+IHRvdXNoYVwgOwor6JC96IOkID4gcmFrdWluXCA7CivolqzlkbMgPiB5YWt1bWlcIDsKK+awtOanvSA+IHN1aXNvdVwgOwor6YOO562JID4gcm91ZG91XCA7Civph43lsaQgPiBqdXVzb3VcIDsKK+WJjeizoiA+IHplbmtlblwgOwor55y86Y+hID4gbWVnYW5lXCA7CivnnJ/pnaIgPiBtYXRvbW9cIDsKK+aCquS+iyA+IGFrdXJlaVwgOwor5Y+j5a6jID4ga291c2VuXCA7Civnn6Lnvr0gPiB5YWJhbmVcIDsKK+ecn+mdkiA+IG1hc3Nhb1wgOwor5Y2K5ribID4gaGFuZ2VuXCA7CivmsJfmtYEgPiBraXJ5dXVcIDsKK+mAsui3ryA+IHNoaW5yb1wgOwor5Y+k5a2mID4ga29nYWt1XCA7Civlj7flpJYgPiBnb3VnYWlcIDsKK+iSvOeEtiA+IHNvdXplblwgOwor5qyg6KybID4ga2Vra291XCA7CivolanlsL0gPiB0b3VqaW5cIDsKK+WPjeW4nSA+IGhhbnRlaVwgOwor5q276ICFID4gc2hpc2hhXCA7Civlv6vmmbQgPiBrYWlzZWlcIDsKK+mBlOimsyA+IHRha2thblwgOwor5Ye66ZqbID4gZGVnaXdhXCA7Civlj47lt64gPiBzaHV1c2FcIDsKK+W9ouebuCA+IGtlaXNvdVwgOwor5rG65oSPID4ga2V0c3VpXCA7CivlupXovrogPiB0ZWloZW5cIDsKK+mBk+imsyA+IGRvdWthblwgOwor5ZCb5ZG9ID4ga3VubWVpXCA7CivpgZToposgPiB0YWtrZW5cIDsKK+mHjuWuvyA+IG5vanVrdVwgOwor6YGK6KqsID4geXV1emVpXCA7Civnn63nt6ggPiB0YW5wZW5cIDsKK+WJquijgSA+IHNlbnNhaVwgOwor6JGb57KJID4ga3V6dWtvXCA7Civmgqrku6QgPiBha3VyZWlcIDsKK+mAmumBjiA+IHRzdXVrYVwgOwor5oCd5b+1ID4gc2hpbmVuXCA7CivpgJrpgYsgPiB0c3V1dW5cIDsKK+iWhOWhqSA+IHVzdWppb1wgOwor55yf6ZqbID4gbWFnaXdhXCA7CivlkITlm54gPiBrYWtrYWlcIDsKK+aCquS6uiA+IGFrdW5pblwgOwor5q27572qID4gc2hpemFpXCA7CivpgKPovIkgPiByZW5zYWlcIDsKK+elneWEgCA+IHNodXVnaVwgOwor5rC05qOyID4gc3Vpc2VpXCA7Civmraboh6MgPiBidXNoaW5cIDsKK+WIpemCuCA+IGJldHRlaVwgOwor5b+r5pa5ID4ga2FpaG91XCA7Civms6Llj4ogPiBoYWt5dXVcIDsKK+mAmemAmSA+IGhvdWhvdVwgOwor5Y6f5ougID4gZ2Vua3lvXCA7CivolqjljrsgPiBrb3VreW9cIDsKK+W8qee0miA+IGRva3l1dVwgOwor5q+b546JID4ga2VkYW1hXCA7CivpupfkurogPiByZWlqaW5cIDsKK+mHjOWtkCA+IHNhdG9nb1wgOwor56S+5ZG9ID4gc2hhbWVpXCA7Civlv4PmqZ8gPiBzaGlua2lcIDsKK+atr+iCiSA+IGhhbmlrdVwgOwor6I236Z6NID4gbmlndXJhXCA7Civnn7PnsokgPiBpc2hpa29cIDsKK+aCqeS5sSA+IG5vdXJhblwgOwor5rCR5rOVID4gbWlucG91XCA7CivphbjmlZcgPiBzYW5wYWlcIDsKK+WOhOaXpSA+IHlha3ViaVwgOwor5ZGI5LiKID4gdGVpam91XCA7CivljZfmrKcgPiBuYW4nJ291XCA7Civph5HlqZogPiBraW5rb25cIDsKK+mBiuimpyA+IHl1dXJhblwgOwor5riF44CFID4gc2Vpc2VpXCA7Civlu7voiLkgPiBrYWlzZW5cIDsKK+WMjeeQgyA+IGhva3l1dVwgOwor6YGu6JS9ID4gc2hhaGVpXCA7CivnpL7lkI0gPiBzaGFtZWlcIDsKK+iWrOWKuSA+IHlha2tvdVwgOwor6JGs56WtID4gc291c2FpXCA7CivmgJ3lvIEgPiBzaGliZW5cIDsKK+WIpemAgSA+IGJlc3NvdVwgOwor56S+5Y+yID4gc2hhc2hpXCA7Civnpa3kuLsgPiBzYWlzaHVcIDsKK+a0i+S4iiA+IHlvdWpvdVwgOwor5rC05qCTID4gc3Vpc2VuXCA7Civoj6/ooaggPiBrYWh5b3VcIDsKK+WQjeWTgSA+IG1laWhpblwgOwor6JGs56S8ID4gc291cmVpXCA7CivpgJPpgIEgPiB0ZWlzb3VcIDsKK+ekvuWPiyA+IHNoYXl1dVwgOwor6YOh55yMID4gZ3Vua2VuXCA7Civph43lqZogPiBqdXVrb25cIDsKK+W8m+e3qSA+IGNoaWthblwgOwor5b+X5pybID4gc2hpYm91XCA7CivpgIHph5EgPiBzb3VraW5cIDsKK+WOmuaJiyA+IGF0c3VkZVwgOwor5bmV6ZaTID4gbWFrdWFpXCA7CivlubTph5EgPiBuZW5raW5cIDsKK+WPjeWwhCA+IGhhbnNoYVwgOwor5Y+N5a++ID4gaGFudGFpXCA7CivmsLfmnJ8gPiBoeW91a2lcIDsKK+aCn+S6hiA+IGdvcnlvdVwgOwor5b+/5oejID4gZnVubWFuXCA7Civms5Xlj7cgPiBob3Vnb3VcIDsKK+WKo+iAhSA+IHJlc3NoYVwgOwor5q2757eaID4gc2hpc2VuXCA7Civlj4zlsIQgPiBzb3VzaGFcIDsKK+WQjeWQnyA+IG1laWdpblwgOwor5Y+M5a++ID4gc291dGFpXCA7CivlkI3lkJsgPiBtZWlrdW5cIDsKK+ebrumrmCA+IG1lZGFrYVwgOwor6L+U6Zu7ID4gaGVuZGVuXCA7Civlub3pgoMgPiB5dXVzdWlcIDsKK+mIjeWIgCA+IGRvbnRvdVwgOwor56C0542EID4gaGFnb2t1XCA7Civlj6PlpJYgPiBrb3VnYWlcIDsKK+ayueWcpyA+IHl1YXRzdVwgOwor5YeM6aeVID4gcnlvdWdhXCA7CivlkIzlkI0gPiBkb3VtZWlcIDsKK+efreevhyA+IHRhbnBlblwgOwor5Y2v5pyIID4gdWR6dWtpXCA7CivmsLTmnKggPiBtaXp1a2lcIDsKK+WNiuatuyA+IGhhbnNoaVwgOwor56CC56SrID4gc2FyZWtpXCA7CivmrKHooaggPiBqaWh5b3VcIDsKK+aAkuW8tSA+IGRvY2hvdVwgOwor5ZCE5ZOhID4ga2FrdWluXCA7CivlubTphY0gPiBuZW5wYWlcIDsKK+WJjeiogCA+IHplbmdlblwgOwor56Gs5rC0ID4ga291c3VpXCA7CivnpZ7ku6MgPiBqaW5kYWlcIDsKK+mBiuihjCA+IHl1dWtvdVwgOwor5Y+k5aKoID4ga29ib2t1XCA7Civlj7DlnLAgPiBkYWljaGlcIDsKK+WIhumKhSA+IGZ1bmRvdVwgOwor6YC46KmxID4gaXRzdXdhXCA7CivojYnprZogPiBzb3VneW9cIDsKK+WNs+aZgiA+IHNva3VqaVwgOwor5rC05pucID4gc3VpeW91XCA7Civph43lpY8gPiBqdXVzb3VcIDsKK+W8geiAhSA+IGJlbnNoYVwgOwor6YCa6LevID4gdHN1dXJvXCA7Civok67moLkgPiByZW5rb25cIDsKK+W6reiokyA+IHRlaWtpblwgOwor5Y+M5a2QID4gZnV0YWdvXCA7CivlkIjlkIwgPiBnb3Vkb3VcIDsKK+mHjeWkpyA+IGp1dWRhaVwgOwor6L+R6ZqjID4ga2lucmluXCA7CivnpZ7kuosgPiBzaGluamlcIDsKK+WHjemkkiA+IHRvdWRhaVwgOwor6YeN5aSJID4ganV1aGVuXCA7Civmr5LniZkgPiBkb2t1Z2FcIDsKK+W/jOacjSA+IGtpZnVrdVwgOwor5b6S5riJID4gdG9zaG91XCA7Civlip/nvaogPiBrb3V6YWlcIDsKK+mAgemChCA+IHNvdWthblwgOwor6I2S6aasID4gYXJhdW1hXCA7Civph5HloYogPiBraW5rYWlcIDsKK+W/q+aMmSA+IGthaWt5b1wgOwor5YiG6YeOID4gYnVuJyd5YVwgOwor5b2T55WqID4gdG91YmFuXCA7CivmsLTmmJ8gPiBzdWlzZWlcIDsKK+WOmuaDhSA+IGtvdWpvdVwgOwor6YWS5p2vID4gc2h1aGFpXCA7CivmsLTmmI4gPiBzdWltZWlcIDsKK+WQjOWLoiA+IGRvdXplaVwgOwor6YeR5aCCID4ga29uZG91XCA7Civlj67lmoAgPiB0ZWluZWlcIDsKK+mBguihjCA+IHN1aWtvdVwgOwor5rCX5qW9ID4ga2lyYWt1XCA7CivokrzmtbcgPiBzb3VrYWlcIDsKK+awkeaoqSA+IG1pbmtlblwgOwor5YiD6YedID4gaGFiYXJpXCA7CivlvZPnlKggPiB0b3V5b3VcIDsKK+W5h+mWkyA+IGhvdWthblwgOwor5Yqx57K+ID4gcmVpc2VpXCA7Civlj4Llrq4gPiBzYW5ndXVcIDsKK+WQjOWKtCA+IGRvdXJvdVwgOwor6YeR5Z+OID4ga2luam91XCA7CivliKXotqMgPiBiZXNzaHVcIDsKK+WJjeijhSA+IHplbnNvdVwgOwor56S+5YaFID4gc2hhbmFpXCA7CivliIbphY0gPiBidW5wYWlcIDsKK+azleWItiA+IGhvdXNlaVwgOwor6YG66ISxID4gaWRhdHN1XCA7Civnnr3ogIUgPiBrb3NoYVwgOwor5ZCN5YmNID4gbmFtYWVcIDsKK+WPpOWdgCA+IGtvc2hpXCA7CivluLDpoIYgPiBraWp1blwgOwor5bqn6KaWID4gemFzaGlcIDsKK+W/q+aJkyA+IGthaWRhXCA7CivpgIHovp4gPiBzb3VqaVwgOwor5ZCN5YipID4gbWVpcmlcIDsKK+eciemWkyA+IG1pa2VuXCA7Civno4HmgKcgPiBqaXNlaVwgOwor6Jas5L6hID4geWFra2FcIDsKK+egsueFmSA+IGhvdWVuXCA7CivnpLzlhIAgPiByZWlnaVwgOwor5rOV5YW3ID4gaG91Z3VcIDsKK+WQj+WFmiA+IHJpdG91XCA7Civnm67poZQgPiBtZWdhb1wgOwor56KR5paHID4gaGlidW5cIDsKK+mAo+iqniA+IHJlbmdvXCA7Civph43lm7IgPiBjaG91aVwgOwor5rKu5ZaqID4gc29zb3VcIDsKK+mBuue/kiA+IGlzaHV1XCA7CivpgbjogIUgPiBzZW5qYVwgOwor5q2M6IGWID4ga2FzZWlcIDsKK+mAoOiqniA+IHpvdWdvXCA7CivnoLLngasgPiBob3VrYVwgOwor6JK45rCXID4gam91a2lcIDsKK+aAquWlhyA+IGthaWtpXCA7CivpgKPoqJggPiByZW5raVwgOwor6YeN5ZmoID4ganV1a2lcIDsKK+WKoOezliA+IGthdG91XCA7CivmganlhbggPiBvbnRlblwgOwor5b6S5q27ID4gdG9zaGlcIDsKK+W6j+irliA+IGpvcm9uXCA7Civmr4XnhLYgPiBraXplblwgOwor5Yi26KaHID4gc2VpaGFcIDsKK+atjue+jiA+IHRhbmJpXCA7CivpgIDot68gPiB0YWlyb1wgOwor5b+c5omLID4gb3VzaHVcIDsKK+mAn+iomCA+IHNva2tpXCA7Civms6LkubEgPiBoYXJhblwgOwor5b+c5oimID4gb3VzZW5cIDsKK+mAo+imhyA+IHJlbnBhXCA7CivmgKjlo7AgPiBlbnNlaVwgOwor5rK55Y2YID4geXV0YW5cIDsKK+W6j+ipniA+IGpvc2hpXCA7CivljLvmpa0gPiBpZ3lvdVwgOwor5bqP6KiAID4gam9nZW5cIDsKK+W/mOaIkSA+IGJvdWdhXCA7Civojbfph40gPiBrYWp1dVwgOwor5Yy65qScID4ga3VrZW5cIDsKK+WNl+aWlyA+IG5hbnRvXCA7Civmsr3liLggPiBrb2tlblwgOwor5Y2K5pyfID4gaGFua2lcIDsKK+WQjOS+oSA+IGRvdWthXCA7Civli5XnlLsgPiBkb3VnYVwgOwor5rKz5Y2XID4ga2FuYW5cIDsKK+iWhOWIgyA+IHVzdWJhXCA7CivliqDnrpcgPiBrYXNhblwgOwor5bm06LOmID4gbmVucHVcIDsKK+WPo+WRsyA+IGtvdW1pXCA7Civov7fot68gPiBtZWlyb1wgOwor5rK55YmkID4geXV6YWlcIDsKK+W5tOizgCA+IG5lbmdhXCA7Civlj6/li5UgPiBrYWRvdVwgOwor5bm06LKiID4gbmVuZ3VcIDsKK+W+oeagqiA+IG9rYWJ1XCA7CivljqjlrZAgPiB6dXNoaVwgOwor5Yil6KiYID4gYmVra2lcIDsKK+WPpOWPsiA+IGtvc2hpXCA7CivlkI/kurogPiByaWppblwgOwor5ZCE5YCLID4ga2Fra29cIDsKK+mCquefpSA+IGphY2hpXCA7Civlj6Tlj4IgPiBrb3NhblwgOwor5rOV5LqLID4gaG91amlcIDsKK+iVg+WktyA+IGJhbicnaVwgOwor6YeN5ZGzID4gb21vbWlcIDsKK+aouem9oiA+IGp1cmVpXCA7CivljYPmnKggPiBjaGlnaVwgOwor5q2v56eRID4gc2hpa2FcIDsKK+aBteS4jiA+IGtlaXlvXCA7CivphbjluqYgPiBzYW5kb1wgOwor5Yqx56OBID4gcmVpamlcIDsKK+WJo+iIniA+IGtlbmJ1XCA7Civms5XkuLsgPiBob3NzdVwgOwor5q+N5rivID4gYm9rb3VcIDsKK+mHjuWQiCA+IHlhZ291XCA7CivlkIzkuosgPiBkb3VqaVwgOwor5Y+v5YiGID4ga2FidW5cIDsKK+mHjuWPsiA+IHlhc2hpXCA7Civliqnnpa0gPiBqb3NhaVwgOwor5Y2K5peXID4gaGFua2lcIDsKK+WQhOS9jSA+IGtha3VpXCA7CivlvqHmnK0gPiBvZnVkYVwgOwor6YGO6IisID4ga2FoYW5cIDsKK+WIhuizpiA+IGJ1bnB1XCA7CivnqK7jgIUgPiBzaHVqdVwgOwor5b+Y5oGpID4gYm91b25cIDsKK+W+heapnyA+IHRhaWtpXCA7CivmgankurogPiBvbmppblwgOwor5bm06K2cID4gbmVucHVcIDsKK+W/jOaGmiA+IGtpdGFuXCA7CivpgYvoiKogPiB1bmtvdVwgOwor5rKz5YaFID4gaGFub2lcIDsKK+aBqOS6iyA+IGtvbmppXCA7CivmgKflmaggPiBzZWlraVwgOwor5oCS5aOwID4gZG9zZWlcIDsKK+apn+mmliA+IGtpc2h1XCA7CivliJfoqJggPiByZWtraVwgOwor5Y+k5Yi2ID4ga29zZWlcIDsKK+WPjeWTuiA+IGhhbnBvXCA7CivljYHml6UgPiB0b29rYVwgOwor5b6h5pi8ID4gb2hpcnVcIDsKK+mDveawkSA+IHRvbWluXCA7CivnnIvpgY4gPiBrYW5rYVwgOwor5Y+k5YiAID4ga290b3VcIDsKK+W8peeUnyA+IHlheW9pXCA7CivpgIHoqbEgPiBzb3V3YVwgOwor5bmz6KqeID4gaGVpZ29cIDsKK+avkuawlyA+IGRva2tlXCA7Civnn5vnm74gPiBtdWp1blwgOwor56C05rC0ID4gaGFzdWlcIDsKK+mHkeWIqSA+IGtpbnJpXCA7Civms4nkuIsgPiBzZW5rYVwgOwor6L+U6L6eID4gaGVuamlcIDsKK+m1nuavmyA+IGdhbW91XCA7Civlj5nli7IgPiBqb2t1blwgOwor5rKW5ZCIID4gb2tpYWlcIDsKK+m1neavmyA+IGdhbW91XCA7Civlj6TlhbggPiBrb3RlblwgOwor6a+o6aOyID4gZ2VpaW5cIDsKK+mHjeWIqSA+IGp1dXJpXCA7CivljbDlvbEgPiBpbicnZWlcIDsKK+WNmOaJkyA+IHRhbmRhXCA7CivlvqHmlbAgPiBva2F6dVwgOwor5Y+X5YuVID4ganVkb3VcIDsKK+mBk+e+qSA+IGRvdWdpXCA7CivlvozmnrYgPiBrb3VrYVwgOwor6YGg57iBID4gdG9vZW5cIDsKK+WIhuiqsiA+IGJ1bmthXCA7CivpgqbnlLsgPiBob3VnYVwgOwor6YeO5YWaID4geWF0b3VcIDsKK+edgOihoyA+IHlha3VpXCA7Civlj5fliJEgPiBqdWtlaVwgOwor5q+O5qyhID4gbWFpamlcIDsKK+W+jOacnyA+IGtvdWtpXCA7CivolanlhZAgPiB0b3VqaVwgOwor5rK55LqVID4geXVzZWlcIDsKK+W7uueikSA+IGtlbnBpXCA7CivlhqXpl4cgPiBtZWlhblwgOwor5biD6ZmjID4gZnVqaW5cIDsKK+iNkumHjiA+IGtvdXlhXCA7CivmsrvkuIsgPiBjaGlrYVwgOwor6L666YSZID4gaGVucGlcIDsKK+mFkuW+kiA+IHNodXRvXCA7CivmqZ/pm7cgPiBraXJhaVwgOwor5q2M56i/ID4ga2Frb3VcIDsKK+W8p+eKtiA+IGtvam91XCA7Civpgbfnp7sgPiBzZW4nJ2lcIDsKK+mBuOenkSA+IHNlbmthXCA7CivluLDpgoQgPiBraWthblwgOwor5q2v55ebID4gaGFpdGFcIDsKK+awkeaIuCA+IG1pbmtvXCA7CivliqDnm58gPiBrYW1laVwgOwor6I+K6IqxID4ga2lra2FcIDsKK+WPpOS+iyA+IGtvcmVpXCA7Civlj7DkuIsgPiBkYWlrYVwgOwor5Yi76IumID4ga29ra3VcIDsKK+avjeaoqSA+IGJva2VuXCA7Civlj6TkvZMgPiBrb3RhaVwgOwor5b6A5p2lID4gb3VyYWlcIDsKK+WPl+WDjyA+IGp1em91XCA7Civlj6XkvJogPiBrdWthaVwgOwor5Y+k5LydID4ga29kZW5cIDsKK+W/nOWvviA+IG91dGFpXCA7CivljbHls7AgPiBraWhvdVwgOwor5q665rCXID4gc2Fra2lcIDsKK+WKqeeUoyA+IGpvc2FuXCA7CivluLjou4wgPiBqb3VraVwgOwor5biw6L6yID4ga2lub3VcIDsKK+WPpOS7oyA+IGtvZGFpXCA7Civlj6Tku4ogPiBrb2tvblwgOwor5Y+k5Lq6ID4ga29qaW5cIDsKK+mBlee0hCA+IGl5YWt1XCA7Civljp/lm7MgPiBnZW56dVwgOwor5Y2B5omLID4gaml0dGVcIDsKK+apn+mWoiA+IGtpa2FuXCA7CivmsJHmhI8gPiBtaW4nJ2lcIDsKK+WPguWKoCA+IHNhbmthXCA7Civlhrbph5EgPiB5YWtpblwgOwor55+z54GrID4gc2Vra2FcIDsKK+WFtemmrCA+IGhlaWJhXCA7CivlvqHmiYAgPiBnb3Nob1wgOwor6YeO5Lq6ID4geWFqaW5cIDsKK+W8geeWjyA+IGJlbnNvXCA7Civljp/lmaggPiBnZW5raVwgOwor6YCg6IqxID4gem91a2FcIDsKK+W4nemDvSA+IHRlaXRvXCA7Civoi7HprYIgPiBlaWtvblwgOwor6YeM5Lq6ID4gcmlqaW5cIDsKK+WOreWRsyA+IGl5YW1pXCA7CivljbHlrrMgPiBraWdhaVwgOwor5bqX6IiXID4gdGVucG9cIDsKK+mFjeW4gyA+IGhhaWZ1XCA7CivmrrXmrakgPiB0YW5idVwgOwor5Y2Y5bqnID4gdGFuemFcIDsKK+WPmeS7uyA+IGpvbmluXCA7CivmrKfnsbMgPiBvdWJlaVwgOwor5byn54GvID4ga290b3VcIDsKK+aAkuWPtyA+IGRvZ291XCA7CivmsLjlrZggPiBlaXpvblwgOwor5bel6Z2iID4ga3VtZW5cIDsKK+WGhemcgCA+IG5haWp1XCA7Civlj5fku7sgPiBqdW5pblwgOwor5q+N5qChID4gYm9rb3VcIDsKK+W+jOaPtCA+IGtvdWVuXCA7CivnnIzorbAgPiBrZW5naVwgOwor5Yuk5rGCID4gZ29uZ3VcIDsKK+eci+ittyA+IGthbmdvXCA7CivlhobpmaMgPiBlbmppblwgOwor6YW45Z+6ID4gc2Fua2lcIDsKK+eiuuWbuiA+IGtha2tvXCA7CivluLDotqggPiBraXN1dVwgOwor5biw6LajID4ga2lzaHVcIDsKK+W9k+apnyA+IHRvdWtpXCA7CivlvIHnkIYgPiBiZW5yaVwgOwor5q+N5p2QID4gYm96YWlcIDsKK+W+kuaJiyA+IHRvc2h1XCA7Civnm5vpgYsgPiBzZWl1blwgOwor5q2v54mZID4gc2hpZ2FcIDsKK+awkeW6piA+IG1pbmRvXCA7CivpgYvnrpcgPiB1bnphblwgOwor5b+c5aSJID4gb3VoZW5cIDsKK+mFkuWutiA+IHNodWthXCA7CivlvKXmvKsgPiBiaW1hblwgOwor6YWS5a60ID4gc2h1ZW5cIDsKK+mun+mxhyA+IGFua291XCA7CivovZ/pn7MgPiBnb3VvblwgOwor5b6h5b+1ID4gZ29uZW5cIDsKK+W+l+aEjyA+IHRva3VpXCA7CivmqZ/pi5IgPiBraWhvdVwgOwor5YW46ZuFID4gdGVuZ2FcIDsKK+WPjOS6kiA+IHNvdWdvXCA7Civli5jmsJcgPiBrYW5raVwgOwor5q+O5pmCID4gbWFpamlcIDsKK+i+numAgCA+IGppdGFpXCA7Civljp/lj6UgPiBnZW5rdVwgOwor6YG655WZID4gaXJ5dXVcIDsKK+apn+mKgyA+IGtpanV1XCA7Civpg73mlL8gPiB0b3NlaVwgOwor5YuV5rCXID4gZG91a2lcIDsKK+W/nOWgsSA+IG91aG91XCA7Civlubzoir0gPiB5b3VnYVwgOwor56Gs5bqmID4ga291ZG9cIDsKK+W+qeW4sCA+IGZ1a2tpXCA7CivmrLrnnp4gPiBnaW1hblwgOwor6YGg55+iID4gdG9veWFcIDsKK+mBjueoiyA+IGthdGVpXCA7CivmsLTlpKsgPiBzdWlmdVwgOwor5q+N5paRID4gYm9oYW5cIDsKK+aAnOS/kCA+IHJlaXJpXCA7CivluILpg6ggPiBzaGlidVwgOwor5Yqr54GrID4gZ291a2FcIDsKK+WGpemAlCA+IG1laWRvXCA7Civlj4LkuosgPiBzYW5qaVwgOwor5b6h5bmjID4gZ29oZWlcIDsKK+W8vuapnyA+IGRhbmtpXCA7CivpgaDnnLwgPiBlbmdhblwgOwor56C05pGnID4gaGFzYWlcIDsKK+i/keihmyA+IGtvbm9lXCA7Civnn63ms6IgPiB0YW5wYVwgOwor6YGg55uuID4gdG9vbWVcIDsKK+mGh+WMliA+IGp1bmthXCA7CivliKTogIUgPiBoYW5qYVwgOwor56C05pCNID4gaGFzb25cIDsKK+mBk+egtCA+IGRvdWhhXCA7Civoi7HpnIogPiBlaXJlaVwgOwor5YuH5rCXID4geXV1a2lcIDsKK+W9k+acnyA+IHRvdWtpXCA7Civli5XmqZ8gPiBkb3VraVwgOwor5rCX5a2UID4ga2lrb3VcIDsKK+WKoOeCuSA+IGthdGVuXCA7CivphbjlkbMgPiBzYW5taVwgOwor5Yag6L6eID4ga2FuamlcIDsKK+iLsembhCA+IGVpeXV1XCA7Civlv6vlkbMgPiBrYWltaVwgOwor5Y2x5ZywID4ga2ljaGlcIDsKK+W5s+iHpSA+IGhlaWdhXCA7CivljprliKkgPiBrb3VyaVwgOwor5b6S5byfID4gdG90ZWlcIDsKK+efreawlyA+IHRhbmtpXCA7CivmsJHlrrYgPiBtaW5rYVwgOwor5YyW5oiQID4ga2FzZWlcIDsKK+W3rumHkSA+IHNha2luXCA7CivmqKrpmoogPiBvdXRhaVwgOwor6YOo5pWwID4gYnVzdXVcIDsKK+W6g+e+qSA+IGtvdWdpXCA7Civli4fmraYgPiB5dXVidVwgOwor5YWI6aeGID4gc2Vua3VcIDsKK+mCquazlSA+IGphaG91XCA7CivljYrlraMgPiBoYW5raVwgOwor5b+M5Z6jID4gaWdha2lcIDsKK+W9k+aZgiA+IHRvdWppXCA7CivliY3np5EgPiB6ZW5rYVwgOwor5rCP5a2QID4gdWppa29cIDsKK+W3rumFjSA+IHNhaGFpXCA7Civnn63mrYwgPiB0YW5rYVwgOwor55uj6K23ID4ga2FuZ29cIDsKK+WGhemHjiA+IG5haXlhXCA7Civnm7joo5wgPiBzb3Vob1wgOwor5bym5q2MID4gZ2Vua2FcIDsKK+WNg+WutiA+IHNlbmtlXCA7Civoi6bpm6MgPiBrdW5hblwgOwor5byY5rOVID4gZ3Vob3VcIDsKK+WOreS6uiA+IGVuamluXCA7CivphbjljJYgPiBzYW5rYVwgOwor5qmf6LuiID4ga2l0ZW5cIDsKK+egtOaIkiA+IGhha2FpXCA7Civmr4DmkI0gPiBraXNvblwgOwor5Y2B5a2XID4ganV1amlcIDsKK+W3rumBoyA+IHNha2VuXCA7CivlvqHlrrQgPiBneW9lblwgOwor5YuY5p+7ID4ga2Fuc2FcIDsKK+efruaouSA+IHdhaWp1XCA7Civnmb3pm6ggPiBoYWt1dVwgOwor5Y6t5LiWID4gZW5zZWlcIDsKK+W+oeWuhSA+IG90YWt1XCA7CivlhoXpg6ggPiBuYWlidVwgOwor5Y6f5L6hID4gZ2Vua2FcIDsKK+WGt+iqniA+IHJlaWdvXCA7CivluqfnpoUgPiB6YXplblwgOwor6I236JGJID4ga2F5b3VcIDsKK+iLpumXmCA+IGt1dG91XCA7Civovp7orbIgPiBqaWpvdVwgOwor5Yy75a2mID4gaWdha3VcIDsKK+WKoOa4myA+IGthZ2VuXCA7CivluqfnpLwgPiB6YXJlaVwgOwor6YWS5ZmoID4gc2h1a2lcIDsKK+W3pumBtyA+IHNhc2VuXCA7CivnmbvpmaIgPiB0b3VpblwgOwor6I+v55SyID4ga2Frb3VcIDsKK+WFiOmdniA+IHNlbnBpXCA7CivpgYvnl7QgPiB1bmNoaVwgOwor5biC6LK7ID4gc2hpaGlcIDsKK+W+gOW5tCA+IG91bmVuXCA7CivlupznqI4gPiBmdXplaVwgOwor56CU5pGpID4ga2VubWFcIDsKK+W3oemCjyA+IGp1bnJhXCA7CivliaPnkr0gPiBrZW5qaVwgOwor5YWN6ZmkID4gbWVuam9cIDsKK+iKsemtgSA+IG9pcmFuXCA7Civlu7bmu54gPiBlbnRhaVwgOwor5bem6L66ID4gc2FoZW5cIDsKK+W+ruWhtSA+IG1pamluXCA7Civpg6jmiYAgPiBidXNob1wgOwor5Yy55ammID4gaGlwcHVcIDsKK+WFiemZsCA+IGtvdWluXCA7CivmrKHnlLcgPiBqaW5hblwgOwor5Yqg5rOVID4ga2Fob3VcIDsKK+W+jOWwviA+IGtvdWJpXCA7Civlhobou6IgPiBlbnRlblwgOwor6YGT55CGID4gZG91cmlcIDsKK+ats+asoSA+IHNhaWppXCA7CivlhpfosrsgPiBqb3VoaVwgOwor5Yil566HID4gYmVra29cIDsKK+iMtuipsSA+IGNoYXdhXCA7Civmr43mgKcgPiBib3NlaVwgOwor6YGF55aRID4gY2hpZ2lcIDsKK+awl+WcjyA+IGtpa2VuXCA7Civlt6jouq8gPiBreW9rdVwgOwor5biC6K2wID4gc2hpZ2lcIDsKK+awl+WboyA+IGtpZGFuXCA7Civlv5zliIYgPiBvdWJ1blwgOwor5b6h5aSnID4gb250YWlcIDsKK+WKoOawtCA+IGthc3VpXCA7CivljJblt6UgPiBrYWtvdVwgOwor5q+b5biDID4gbW91ZnVcIDsKK+WGjei1tyA+IHNhaWtpXCA7CivmsLjliqsgPiBlaWdvdVwgOwor5rCX5ZqiID4ga2lub3VcIDsKK+awtOWMliA+IHN1aWthXCA7CivpgJTnq68gPiB0b3RhblwgOwor6YO95bqmID4gdHN1ZG9cIDsKK+avjeW9oiA+IGJva2VpXCA7CivmraPmsJcgPiBzZWlraVwgOwor5Yy55aSrID4gaGlwcHVcIDsKK+W5s+e0oCA+IGhlaXNvXCA7CivoirHpppkgPiBrYWtvdVwgOwor5Yu/5oCqID4gbW9ra2VcIDsKK+WGmeitnCA+IHNoYWZ1XCA7CivnorrkuY4gPiBrYWtrb1wgOwor55+t5pyfID4gdGFua2lcIDsKK+ato+avlCA+IHNlaWhpXCA7CivlvbzlsrggPiBoaWdhblwgOwor5Y2w5YikID4gaW5wYW5cIDsKK+mDveW4giA+IHRvc2hpXCA7Civmr47luqYgPiBtYWlkb1wgOwor5YWo6YO9ID4gemVudG9cIDsKK+WNsOWIgCA+IGludG91XCA7Civlhajpg6ggPiB6ZW5idVwgOwor5rC05YipID4gc3VpcmlcIDsKK+mAo+egtCA+IHJlbnBhXCA7CivlvanluqYgPiBzYWlkb1wgOwor5b2i5b2xID4ga2VpZWlcIDsKK+WIpeenkSA+IGJla2thXCA7CivpgaDngasgPiB0b29iaVwgOwor6JGJ5pyrID4gaGF6dWVcIDsKK+WKueaenCA+IGtvdWthXCA7Civlv6vkuosgPiBrYWlqaVwgOwor5bqc55yMID4gZnVrZW5cIDsKK+WGl+iqniA+IGpvdWdvXCA7CivljLrln58gPiBrdWlraVwgOwor5Yu+5byVID4ga291aW5cIDsKK+W3qOiyuyA+IGt5b2hpXCA7CivlvqHlnYogPiBnb2JvdVwgOwor55+i5p2lID4geWFyYWlcIDsKK+WMluWwjiA+IGtlZG91XCA7Civoi7HpgoEgPiBlaW1haVwgOwor5b6M5aa7ID4gZ29zYWlcIDsKK+avlOWztiA+IGhpdG91XCA7CivljZjlj6UgPiB0YW5rdVwgOwor5rCX5ZOBID4ga2loaW5cIDsKK+WGjeitsCA+IHNhaWdpXCA7Civlt6XosrsgPiBrb3VoaVwgOwor5Yud5omLID4ga2F0dGVcIDsKK+atu+acnyA+IHNoaWtpXCA7CivnnLznqqkgPiBnYW5rYVwgOwor5biD6KKLID4gaG90ZWlcIDsKK+iJtum6lyA+IGVucmVpXCA7CivlhKrpm4UgPiB5dXVnYVwgOwor5q+b5a2UID4ga2VhbmFcIDsKK+egtOWxiyA+IGhhb2t1XCA7Civli6Tmg7AgPiBraW5kYVwgOwor5YaF6K2wID4gbmFpZ2lcIDsKK+i9l+i7uyA+IGthbmthXCA7CivmrZTmrLcgPiBreW9raVwgOwor6Ly46YqAID4geXVnaW5cIDsKK+WFqOi6ryA+IHplbmt1XCA7CivlubPnqY8gPiBoZWlvblwgOwor5Y2z5L2NID4gc29rdWlcIDsKK+W4sOiJpiA+IGtpa2FuXCA7Civluo/nm6QgPiBqb2JhblwgOwor6L+R57+SID4ga2luanVcIDsKK+aooemAoCA+IG1vem91XCA7Civmr43lsYsgPiBvbW95YVwgOwor6a2R6a2FID4gY2hpbWlcIDsKK+awuOS9jyA+IGVpanV1XCA7CivnnLznp5EgPiBnYW5rYVwgOwor55uu6Iy2ID4gbWVjaGFcIDsKK+WFrOi3ryA+IGtvdXJvXCA7CivliIfnrKYgPiBraXBwdVwgOwor5biw6IiqID4ga2lrb3VcIDsKK+aoqui7oiA+IG91dGVuXCA7CivlubTnp58gPiBuZW5zb1wgOwor6LuN6byTID4gZ3Vua29cIDsKK+WNiuWPryA+IGhhbmthXCA7CivljYrlj6UgPiBoYW5rdVwgOwor6YG45q2MID4gc2Vua2FcIDsKK+WNmOWIqSA+IHRhbnJpXCA7CivlvrPljJYgPiB0b2trYVwgOwor5Yip55uKID4gcmlla2lcIDsKK+asoeeCuSA+IGppdGVuXCA7CivlvZPluqcgPiB0b3V6YVwgOwor5b6T5ZugID4ganV1aW5cIDsKK+awuOS7oyA+IGVpdGFpXCA7CivmsJfli6IgPiBraXNlaVwgOwor5q2v5py2ID4gc2hpZGFcIDsKK+ats+aariA+IHNlaWJvXCA7Civmr43lrrYgPiBvbW95YVwgOwor5b285aW0ID4gYWl0c3VcIDsKK+awl+WKnyA+IGtpa291XCA7Civlvqnlj6QgPiBmdWtrb1wgOwor55uu6ImyID4gbWVpcm9cIDsKK+WHhOiJtiA+IHNlaWVuXCA7Civmr43lrZAgPiBib3NoaVwgOwor6YGg5rW3ID4gZW5rYWlcIDsKK+awl+WJjSA+IGtpbWFlXCA7CivljYPlj6QgPiBzZW5rb1wgOwor5Ya36I+TID4gcmVpa2FcIDsKK+W8leaVsCA+IGluc3V1XCA7CivljKrlm6MgPiBoaWRhblwgOwor6YWN5YKZID4gaGFpYmlcIDsKK+W+ruWLlSA+IGJpZG91XCA7CivmsLjkuJYgPiBlaXNlaVwgOwor5q615beuID4gZGFuc2FcIDsKK+W9ueWkqyA+IGVraWZ1XCA7CivmsJfliIYgPiBraWJ1blwgOwor6YWS5L+dID4gc2h1aG9cIDsKK+WFrOiyuyA+IGtvdWhpXCA7CivlvLfmhI8gPiBreW91aVwgOwor5YaF6KaPID4gbmFpa2lcIDsKK+mBoOazsyA+IGVuJydlaVwgOwor6I2J6IqxID4gc291a2FcIDsKK+WIhuenkSA+IGJ1bmthXCA7CivphZTkvZkgPiBzdWl5b1wgOwor5YuV5oK4ID4gZG91a2lcIDsKK+iSsuWboyA+IGZ1dG9uXCA7CivlvqHlj7AgPiBtaWRhaVwgOwor6LuN6baPID4gc2hhbW9cIDsKK+mAo+eQhiA+IHJlbnJpXCA7CivpgqrmjqggPiBqYXN1aVwgOwor5rCR5YipID4gbWlucmlcIDsKK+mBuualrSA+IGlneW91XCA7CivpgYvmvJUgPiB1bnNvdVwgOwor56Gs5YyWID4ga291a2FcIDsKK+mAo+ePoCA+IHJlbmp1XCA7CivliKnnlKggPiByaXlvdVwgOwor5b6u5YiGID4gYmlidW5cIDsKK+efreaJkyA+IHRhbmRhXCA7CivljYjliY0gPiBnb3plblwgOwor6Iux6LOHID4gZWlzaGlcIDsKK+WGheijjyA+IGRhaXJpXCA7CivovLjpgIEgPiB5dXNvdVwgOwor5YWI6YCUID4gc2VuZG9cIDsKK+WFteiqniA+IGhlaWdvXCA7CivliqnmlLsgPiBqb2tvdVwgOwor5q6/5a6HID4gZGVuJyd1XCA7Civoip/pmaQgPiBzYW5qb1wgOwor5YiH56OLID4gc2Vzc2FcIDsKK+awkeWFtyA+IG1pbmd1XCA7CivlhazorbAgPiBrb3VnaVwgOwor6bWE5bC+ID4gc2hpYmlcIDsKK+WMu+WNmiA+IGloYWt1XCA7CivojLboj5MgPiBjaGFrYVwgOwor5b6u5YWJID4gYmlrb3VcIDsKK+WNmOS+oSA+IHRhbmthXCA7CivphY3ku5ggPiBoYWlmdVwgOwor5q2p5pWwID4gaG9zdXVcIDsKK+egtOWjiiA+IGhha2FpXCA7Civmr47lpJwgPiBtYWl5b1wgOwor5q2m5patID4gYnVkYW5cIDsKK+WNmOS9jSA+IHRhbicnaVwgOwor5YWJ6LydID4ga291a2lcIDsKK+awl+WAmSA+IGtpa291XCA7Civlhbzoo5wgPiBrZW5wb1wgOwor5Yqg5pWwID4ga2FzdXVcIDsKK+W+oeWJjSA+IGdvemVuXCA7CivlhazoqrIgPiBrb3VrYVwgOwor5b2T5a62ID4gdG91a2VcIDsKK+W8t+W8lSA+IGdvdWluXCA7CivlvpLlkI0gPiBhZGFuYVwgOwor5b6h5Ye4ID4gb2Rla29cIDsKK+W9k+WtlyA+IGF0ZWppXCA7CivphY3kuIsgPiBoYWlrYVwgOwor5YWs6Ki0ID4ga291c29cIDsKK+W5s+eZkiA+IGhlaXl1XCA7CivnmbrotbcgPiBob2traVwgOwor6YG45p6cID4gc2Vua2FcIDsKK+awl+S9kyA+IGtpdGFpXCA7CivpgqrmhbMgPiBqYWtlblwgOwor5Yy65YiGID4ga3VidW5cIDsKK+iPr+awjyA+IGthc2hpXCA7Civpgb/mmpEgPiBoaXNob1wgOwor6YGK5rOzID4geXV1ZWlcIDsKK+WMuuWHpiA+IGt1c2hvXCA7Civmr43loIIgPiBib2RvdVwgOwor5b6h5YWNID4gZ29tZW5cIDsKK+W+oeWFiCA+IG9zYWtpXCA7Civlhqzoh7MgPiB0b3VqaVwgOwor6Iy26IiXID4gY2hhaG9cIDsKK+iLseipqSA+IGVpc2hpXCA7Civli4flvoAgPiB5dXVvdVwgOwor5byT5omLID4geXVuZGVcIDsKK+WNiuS+oSA+IGhhbmthXCA7CivljZfkuIsgPiBuYW5rYVwgOwor5Yy65YaFID4ga3VuYWlcIDsKK+iJsummmSA+IGlyb2thXCA7CivlvpLlirQgPiB0b3JvdVwgOwor5q+N5Z6LID4gYm9rZWlcIDsKK+mBk+atjCA+IGRvdWthXCA7CivlhZrorbAgPiB0b3VnaVwgOwor6YKq5oKqID4gamFha3VcIDsKK+W5tOeUqyA+IG5lbnBvXCA7Civpg6jlpJYgPiBidWdhaVwgOwor5q2M5pu4ID4ga2FzaG9cIDsKK+WJm+awlyA+IGdvdWtpXCA7CivlvKflvaIgPiBrb2tlaVwgOwor5Yui5a62ID4gc2Vpa2FcIDsKK+WKg+acnyA+IGtha2tpXCA7CivnoILlsqkgPiBzYWdhblwgOwor6YKq5oGLID4gamFyZW5cIDsKK+W4sOe0jSA+IGtpbm91XCA7CivlvJTmhbAgPiBjaG91aVwgOwor5rCX5LiIID4ga2lqb3VcIDsKK+WJm+avhSA+IGdvdWtpXCA7CivlvqnkvY0gPiBmdWt1aVwgOwor5b6S5YiRID4gdG9rZWlcIDsKK+ebrue3miA+IG1lc2VuXCA7CivokIzmnKggPiBtb2VnaVwgOwor5Ya35721ID4gcmVpYmFcIDsKK+awkeS6iyA+IG1pbmppXCA7Civnn6nlvaIgPiBrdWtlaVwgOwor6YG65pePID4gaXpva3VcIDsKK+avm+WUkCA+IGtldG91XCA7Civlhajoo7ggPiB6ZW5yYVwgOwor6YKq5b+1ID4gamFuZW5cIDsKK+WKqeaIkCA+IGpvc2VpXCA7Civou43ppqwgPiBndW5iYVwgOwor5byU5oSPID4gY2hvdWlcIDsKK+WJteahiCA+IHNvdWFuXCA7CivmqKHoqaYgPiBtb3NoaVwgOwor6YGK5q2pID4geXV1aG9cIDsKK+WHueecvCA+IG91Z2FuXCA7CivlvZPlpJwgPiB0b3V5YVwgOwor6LuK6aasID4gc2hhYmFcIDsKK+WKoOaLhSA+IGthdGFuXCA7CivptKjlsYUgPiBrYW1vaVwgOwor5b6h5L6bID4gb3RvbW9cIDsKK+W+kuWFmiA+IHRvdG91XCA7Civlhobok4sgPiBlbmdhaVwgOwor5Y2D5LujID4gY2hpeW9cIDsKK+WFhOiytCA+IGFuaWtpXCA7Civoi6boqIAgPiBrdWdlblwgOwor5b6h5Ly9ID4gb3RvZ2lcIDsKK+WMluWQiCA+IGthZ291XCA7CivliKnngrkgPiByaXRlblwgOwor6ay86Z2iID4ga2ltZW5cIDsKK+i8v+irliA+IHlvcm9uXCA7CivlhZropo8gPiB0b3VraVwgOwor5Y2B5LqUID4ganV1Z29cIDsKK+atu+W+jCA+IHNoaWdvXCA7CivljYHkuowgPiBqdXVuaVwgOwor5qiq6KGMID4gb3Vrb3VcIDsKK+WMu+S8ryA+IGloYWt1XCA7CivlvqHku4EgPiBnb2ppblwgOwor5b6M5YWJID4gZ29rb3VcIDsKK+WNg+S4liA+IGNoaXlvXCA7CivlhYjorbAgPiBzZW5naVwgOwor5Yy65LyaID4ga3VrYWlcIDsKK+mBoOadpSA+IGVucmFpXCA7CivptJ/lsL4gPiBzaGliaVwgOwor55m76KiYID4gdG91a2lcIDsKK+WJjeatryA+IG1hZWJhXCA7CivpgaDmnJsgPiBlbmJvdVwgOwor5Ye655WqID4gZGViYW5cIDsKK+efpeW3sSA+IGNoaWtpXCA7CivlirHlvKcgPiByZWlrb1wgOwor5b6M5YKZID4ga291YmlcIDsKK+eci+egtCA+IGthbnBhXCA7CivlvqHkuIogPiBva2FtaVwgOwor5YWN6Ki0ID4gbWVuc29cIDsKK+W9ueWLmSA+IGVraW11XCA7CivmqZ/og70gPiBraW5vdVwgOwor6JKZ5Y+kID4gbW91a29cIDsKK+WGoOiAhSA+IGthbmphXCA7Civlu4Pmo4QgPiBoYWlraVwgOwor5Yip5r2kID4gcmlqdW5cIDsKK+WDp+mZoiA+IHNvdWluXCA7Civou43pnbQgPiBndW5rYVwgOwor5Yak572qID4gZW56YWlcIDsKK+mBoOaZryA+IGVua2VpXCA7CivlhoXoi5EgPiBuYWllblwgOwor5buD5qGIID4gaGFpYW5cIDsKK+avjeWQjiA+IGJva291XCA7Civou43pnIAgPiBndW5qdVwgOwor5biD572uID4gZnVjaGlcIDsKK+msvOmWgCA+IGtpbW9uXCA7CivlhJLpgZMgPiBqdWRvdVwgOwor6YGg5pa5ID4gZW5wb3VcIDsKK+W+k+S6iyA+IGp1dWppXCA7CivlgrXprLwgPiBzYWlraVwgOwor5bem6Ii3ID4gc2FnZW5cIDsKK+WFgeiosSA+IGlua3lvXCA7CivluLDnpL4gPiBraXNoYVwgOwor5Yqj5bynID4gcmVra29cIDsKK+mDqOWTgSA+IGJ1aGluXCA7CivnoILlobUgPiBzYWppblwgOwor5Ymb5p6cID4gZ291a2FcIDsKK+WInea8lCA+IHNob2VuXCA7Civmranlu4ogPiBob3JvdVwgOwor5q2M5omLID4ga2FzaHVcIDsKK+W+jOS6iyA+IGtvdWppXCA7Civli4flqaYgPiB5dXVmdVwgOwor5q2q5bqmID4gd2FpZG9cIDsKK+W5s+eCiSA+IGhlaXJvXCA7CivovrLnp5EgPiBub3VrYVwgOwor5qyh5p2hID4gamlqb3VcIDsKK+atpuW8gSA+IGJ1YmVuXCA7Civou4zplpMgPiBraWthblwgOwor6YO95YaFID4gdG9uYWlcIDsKK+W8n+WtkCA+IGRlc2hpXCA7Civlt6bohLMgPiBzYW5vdVwgOwor5bu25oCnID4gZW5zZWlcIDsKK+mCpuWutiA+IGhvdWthXCA7CivliqDlubQgPiBrYW5lblwgOwor6L+R55W/ID4ga2lua2lcIDsKK+W8geW6pyA+IGJlbnphXCA7CivliKXmtL4gPiBiZXBwYVwgOwor5q2j5bqnID4gc2VpemFcIDsKK+W8leWwjiA+IGluZG91XCA7CivpgKPmrYwgPiByZW5nYVwgOwor6a2U6YGTID4gbWFkb3VcIDsKK+W9seWDjyA+IGVpem91XCA7Civlt6vogIUgPiBmdXNoYVwgOwor6YKm5a2XID4gaG91amlcIDsKK+WHueeJiCA+IG91YmFuXCA7CivlhoXogLMgPiBuYWlqaVwgOwor5Yqg5belID4ga2Frb3VcIDsKK+WLh+WkqyA+IHl1dWZ1XCA7CivmrKfmlocgPiBvdWJ1blwgOwor5b2T5ZCmID4gdG91aGlcIDsKK+WIqeawtCA+IHJpc3VpXCA7CivpgKDmrKEgPiB6b3VqaVwgOwor5YWt6IqxID4gcmlra2FcIDsKK+WHpueQhiA+IHNob3JpXCA7Civlu7blvJUgPiBlbicnaW5cIDsKK+edv+aZuiA+IGVpY2hpXCA7Civlhavoi6YgPiBoYWtrdVwgOwor5q+U5YCrID4gaGlyaW5cIDsKK+W4sOecgSA+IGtpc2VpXCA7CivpgY7mlY8gPiBrYWJpblwgOwor5bqP5q2vID4gam9zaGlcIDsKK+W7tuW7tiA+IGVuJydlblwgOwor5YuV5ZugID4gZG91aW5cIDsKK+W8iuWxpSA+IGhlaXJpXCA7CivpgbrlvrMgPiBpdG9rdVwgOwor56C05YCrID4gaGFyaW5cIDsKK+WMl+S6rCA+IHBla2luXCA7CivnoILlmLQgPiBzYXNoaVwgOwor5YmN5pyfID4gemVua2lcIDsKK+asoeaVsCA+IGppc3V1XCA7CivpgKDmqZ8gPiB6b3VraVwgOwor5q+U5L6LID4gaGlyZWlcIDsKK+mDqOWIhiA+IGJ1YnVuXCA7CivlubPmuKkgPiBoZWlvblwgOwor5YaN57iBID4gc2FpZW5cIDsKK+ebruecqSA+IG1lbWFpXCA7CivmqLnohIIgPiBqdXNoaVwgOwor5q6L5Z+6ID4gemFua2lcIDsKK+mAuOabuCA+IGlzc2hvXCA7Civpg73kvJogPiB0b2thaVwgOwor5qy95oWVID4ga2luYm9cIDsKK+mDqOWGhSA+IGJ1bmFpXCA7Civlha3ohZEgPiByb3BwdVwgOwor6YCT5qyhID4gdGVpamlcIDsKK+mDveS6uiA+IHRvamluXCA7CivpgYvmkKwgPiB1bnBhblwgOwor5YmN5pelID4gbWFlYmlcIDsKK+avjeS9kyA+IGJvdGFpXCA7CivliKnmqKkgPiByaWtlblwgOwor5YaF57iBID4gbmFpZW5cIDsKK+mBt+W6pyA+IHNlbnphXCA7CivliqDlrrMgPiBrYWdhaVwgOwor6YGg5oWuID4gZW5yeW9cIDsKK+WLp+WMliA+IGthbmdlXCA7Civli4flm7MgPiB5dXV0b1wgOwor6I+p5o+QID4gYm9kYWlcIDsKK+WDp+mDvSA+IHNvdXp1XCA7CivmrablrpggPiBidWthblwgOwor5Yid5q2pID4gc2hvaG9cIDsKK+efs+WZqCA+IHNla2tpXCA7CivpgIDmsrsgPiB0YWlqaVwgOwor5YuV5ZOhID4gZG91aW5cIDsKK+iPsuaJjSA+IGhpc2FpXCA7Civli6Tli5kgPiBraW5tdVwgOwor5byl5ZubID4geWFzaGlcIDsKK+ato+WtlyA+IHNlaWppXCA7Civlt6jntLAgPiBrb3NhaVwgOwor6YGL5oyHID4gdW5zaGlcIDsKK+mzpeWxhSA+IHRvcmlpXCA7CivlubPmsJcgPiBoZWlraVwgOwor6YCj5p62ID4gcmVua2FcIDsKK+WIhua0viA+IGJ1bnBhXCA7Civou43pg6ggPiBndW5idVwgOwor5YWs576pID4ga291Z2lcIDsKK+WHuua5ryA+IGlkZXl1XCA7CivmqZ/nqK4gPiBraXNodVwgOwor5bqm5pWwID4gZG9zdXVcIDsKK+mBiuaKgCA+IHl1dWdpXCA7CivpgIDmrakgPiB0YWlob1wgOwor55qH6IOkID4ga291aW5cIDsKK+mCpuWcnyA+IGhvdWRvXCA7Civpgb/lr5IgPiBoaWthblwgOwor6YOo5LyaID4gYnVrYWlcIDsKK+WIqeaguSA+IHJpa29uXCA7CivltI7pmb0gPiBraXlvdVwgOwor5bm05qyhID4gbmVuamlcIDsKK+mBiuaIryA+IHl1dWdpXCA7CivpgaDlvoEgPiBlbnNlaVwgOwor5beu562JID4gc2F0b3VcIDsKK+i7jOmBkyA+IGtpZG91XCA7CivpgbrlsL8gPiBpbnlvdVwgOwor5q275ZugID4gc2hpaW5cIDsKK+WLsuS9jSA+IGt1bicnaVwgOwor6JGs5YW3ID4gc291Z3VcIDsKK+WGhuetkiA+IGVudG91XCA7CivliIbmr40gPiBidW5ib1wgOwor6Iy255uuID4gY2hhbWVcIDsKK+W6l+aYryA+IHRlbnplXCA7Civli5/lhbUgPiBib2hlaVwgOwor5q6/5LiLID4gZGVua2FcIDsKK+asneaGpCA+IHVwcHVuXCA7CivokazlhIAgPiBzb3VnaVwgOwor6YGV5b+DID4gaXNoaW5cIDsKK+W8seWMliA+IGpha2thXCA7CivliqDlopcgPiBrYXpvdVwgOwor6YGK5oOwID4geXV1ZGFcIDsKK+WLn+WCtSA+IGJvc2FpXCA7Civnn63lj6UgPiB0YW5rdVwgOwor5b2T5LqLID4gdG91amlcIDsKK+mBjuaAoCA+IGthdGFpXCA7Civlh7rmsYEgPiBkYXNoaVwgOwor55+z5YyWID4gc2Vra2FcIDsKK+ebo+eQhiA+IGthbnJpXCA7CivliY3miK8gPiB6ZW5naVwgOwor5bir54i2ID4gc2hpZnVcIDsKK+ato+WhqSA+IHNlaWVuXCA7CivmqZ/nn6UgPiBraWNoaVwgOwor5bq45oSaID4geW91Z3VcIDsKK+W8leWWqSA+IGluJyd5dVwgOwor5bid546LID4gdGVpb3VcIDsKK+mBv+WmiiA+IGhpbmluXCA7CivlhoXnp5EgPiBuYWlrYVwgOwor6YCu5o2VID4gdGFpaG9cIDsKK+W6j+aWhyA+IGpvYnVuXCA7CivpgY7lvZMgPiBrYXRvdVwgOwor6LuN6LevID4gZ3Vucm9cIDsKK+W6j+aVsCA+IGpvc3V1XCA7Civmrovli5kgPiB6YW5tdVwgOwor5Yid5pyfID4gc2hva2lcIDsKK+mBoOWztiA+IGVudG91XCA7Civlt6Xnp5EgPiBrb3VrYVwgOwor6Lqr6YeNID4gbWlvbW9cIDsKK+W6p+aJgCA+IHphc2hvXCA7CivlhoXnpLogPiBuYWlqaVwgOwor5q2j5Z2QID4gc2VpemFcIDsKK+i8quiIniA+IHJpbmJ1XCA7CivpgJTmlrkgPiB0b2hvdVwgOwor5YSA6KOFID4gZ2lzb3VcIDsKK+W5veaalyA+IHl1dWFuXCA7Civoi7HnsbMgPiBlaWJlaVwgOwor6LuN6LK7ID4gZ3VucGlcIDsKK+mtlOihlyA+IG1hZ2FpXCA7Civou6LoqJsgPiB0ZW5rYVwgOwor6Lui6KiYID4gdGVua2lcIDsKK+WHseatjCA+IGdhaWthXCA7CivmrKHlubQgPiBqaW5lblwgOwor6YG65aKoID4gaWJva3VcIDsKK+eah+e0gCA+IGtvdWtpXCA7CivpgYXlu7YgPiBjaGllblwgOwor5bm85pmCID4geW91amlcIDsKK+ebhueUuyA+IGJvbmdhXCA7CivliJHmnJ8gPiBrZWlraVwgOwor5bm05pyfID4gbmVua2lcIDsKK+WLleS9nCA+IGRvdXNhXCA7Civlh7rmp5ggPiBkZXlvdVwgOwor6Iq46IuRID4gZ2VpZW5cIDsKK+W8p+WFiSA+IGtva291XCA7CivmrYzlo4cgPiBrYWRhblwgOwor5YW156eRID4gaGVpa2FcIDsKK+WKqeWRvSA+IGpvbWVpXCA7Civpq5jpm4UgPiBrb3VnYVwgOwor5bi45ripID4gam91b25cIDsKK+WFmue0gCA+IHRvdWtpXCA7CivliY3lvowgPiB6ZW5nb1wgOwor5YW156aNID4gaGVpa2FcIDsKK+apn+eUsiA+IGtpa291XCA7CivmrabllY8gPiBidW1vblwgOwor5Yq05YuZID4gcm91bXVcIDsKK+W3ruebiiA+IHNhZWtpXCA7CivpgKPmiZMgPiByZW5kYVwgOwor5YSq6Im2ID4geXV1ZW5cIDsKK+W6tuW5viA+IHNob2tpXCA7CivoirHojI4gPiBrYWtlaVwgOwor56CC5LiKID4gc2Fqb3VcIDsKK+i7jeitsCA+IGd1bmdpXCA7Civou6Loo5wgPiB0ZW5wb1wgOwor5bmz5pmCID4gaGVpamlcIDsKK+WGhuebpCA+IGVuYmFuXCA7Civlgb3pm7sgPiBnaWRlblwgOwor55qu55u4ID4gaGlzb3VcIDsKK+W4sOa4ryA+IGtpa291XCA7Civov5TmrYwgPiBoZW5rYVwgOwor5YmN5bqnID4gemVuemFcIDsKK+WFrOennyA+IGtvdXNvXCA7Civnl6nouq8gPiBzb3VrdVwgOwor5YiG5pyoID4gYnVuZ2lcIDsKK+ato+WToSA+IHNlaWluXCA7CivlhoXnmq4gPiBuYWloaVwgOwor6YGT5a62ID4gZG91a2FcIDsKK+aooeevhCA+IG1vaGFuXCA7Civoir3og54gPiBnYWhvdVwgOwor5YiA5p62ID4gdG91a2FcIDsKK+i8ieiNtyA+IHNhaWthXCA7Civnmq7nmawgPiBoaXplblwgOwor6YGK5bGxID4geXVzYW5cIDsKK+atpuWQjSA+IGJ1bWVpXCA7Civlhajnp5EgPiB6ZW5rYVwgOwor5Yqg5Y+3ID4ga2Fnb3VcIDsKK+iKmeiTiSA+IGZ1eW91XCA7Civlu4PlrrYgPiBoYWlrYVwgOwor5YWs56S6ID4ga291amlcIDsKK+atu+WFkCA+IHNoaWppXCA7CivmraPlkKYgPiBzZWloaVwgOwor5bqV5oSPID4gc29rb2lcIDsKK+iHqummliA+IGppc2h1XCA7Civou43oqJggPiBndW5raVwgOwor6I2S5rerID4ga291aW5cIDsKK+WKo+WMliA+IHJla2thXCA7CivpgaDlpKcgPiBlbmRhaVwgOwor5Yil5oi4ID4gYmVra29cIDsKK+atk+WWnCA+IGthbmtpXCA7CivlhbfnnLwgPiBndWdhblwgOwor5qyh5a6YID4gamlrYW5cIDsKK+ecqeaaiCA+IG1lbWFpXCA7Civou43opo8gPiBndW5raVwgOwor5qyh5a2QID4gamlzaGlcIDsKK+atpuWLsiA+IGJ1a3VuXCA7Civlu7blkb0gPiBlbm1laVwgOwor5Yqg5YuiID4ga2FzZWlcIDsKK+WFg+e0oCA+IGdlbnNvXCA7Civmrabli4cgPiBidXl1dVwgOwor5q2m5YqfID4gYnVrb3VcIDsKK+W7t+WQjyA+IHRlaXJpXCA7CivlhobnkrAgPiBlbmthblwgOwor5bKp6a2aID4gaXdhbmFcIDsKK+WIneaJiyA+IHNob3RlXCA7CivnmofnpZYgPiBrb3Vzb1wgOwor5YSq576OID4geXV1YmlcIDsKK+WEkuiJryA+IGp1Z29uXCA7CivlhJLoia4gPiBqdWdvblwgOwor5YWQ56ulID4gamlkb3VcIDsKK+atk+WRvCA+IGthbmtvXCA7CivliqDliKQgPiBrYWhhblwgOwor5Yqf5YipID4ga291cmlcIDsKK+mzs+WHsCA+IGhvdW91XCA7Civnn6XkuosgPiBjaGlqaVwgOwor6YGT5aSuID4gZG91b3VcIDsKK+i7jeihoyA+IGd1bicnaVwgOwor5Yi25bqmID4gc2VpZG9cIDsKK+atqeWFtSA+IGhvaGVpXCA7Civoi7Hnn6UgPiBlaWNoaVwgOwor5YGc6Z+zID4gdGVpb25cIDsKK+W8leS+iyA+IGlucmVpXCA7Civnl7ToqbEgPiBjaGl3YVwgOwor5Yqg5YagID4ga2FrYW5cIDsKK+mAo+W6pyA+IHJlbnphXCA7CivoiaToo4UgPiBnaXNvdVwgOwor6YGg5ZywID4gZW5jaGlcIDsKK+iPr+WjhyA+IGthZGFuXCA7Civnmbvnp5EgPiB0b3VrYVwgOwor55m956aNID4gaGFra2FcIDsKK+mBjuWkpyA+IGthZGFpXCA7Civoi5vnqI4gPiBrYXplaVwgOwor6YGg5ZugID4gZW4nJ2luXCA7CivpgYrlpbMgPiB5dXVqb1wgOwor6Lyd57eaID4ga2lzZW5cIDsKK+WFpeebuCA+IGlyaWFpXCA7CivlhY3np58gPiBtZW5zb1wgOwor6IqL6IyOID4genVpa2lcIDsKK+iPk+WtkCA+IGthc2hpXCA7CivlubLmiIggPiBrYW5rYVwgOwor55aO6ZaLID4gc29rYWlcIDsKK+WJjeWppiA+IHplbnB1XCA7CivlgY/poJcgPiBoZW5wYVwgOwor6YG35YyWID4gc2VuZ2VcIDsKK+iQveS4iyA+IHJha2thXCA7Civlhbfnj74gPiBndWdlblwgOwor5Yqg5L+4ID4ga2Fob3VcIDsKK+WGt+awlyA+IHJlaWtpXCA7CivlhJLogIUgPiBqdXNoYVwgOwor6IiX6YGTID4gaG9kb3VcIDsKK+WFiOelliA+IHNlbnpvXCA7CivoiKrot68gPiBrb3Vyb1wgOwor55m656C0ID4gaGFwcGFcIDsKK+eVs+mfuyA+IGpvdWluXCA7Civnm7jmo5IgPiBhaWJvdVwgOwor5bm95b6uID4geXV1YmlcIDsKK+iKs+e0gCA+IGhvdWtpXCA7Civlu4PlnJIgPiBoYWllblwgOwor5q2j5L6hID4gc2Vpa2FcIDsKK+i/keaZgiA+IGtpbmppXCA7CivprZrogqUgPiBneW9oaVwgOwor6LqN6LW3ID4geWFra2lcIDsKK+mrmOmBoCA+IGtvdWVuXCA7CivliY3lpKsgPiB6ZW5wdVwgOwor6Iqx57SLID4ga2Ftb25cIDsKK+WFg+elliA+IGdhbnNvXCA7CivlibDlk6EgPiBqb3VpblwgOwor6Iqx57O4ID4ga2FzaGlcIDsKK+ebl+axlyA+IG5lYXNlXCA7CivlhaznkIYgPiBrb3VyaVwgOwor5q2m5Lq6ID4gYnVqaW5cIDsKK+iKseeyiSA+IGthZnVuXCA7CivluLDmoKEgPiBraWtvdVwgOwor6Iie6LmIID4gYnV0b3VcIDsKK+W5vuW6piA+IGlrdWRvXCA7CivmrKHlm54gPiBqaWthaVwgOwor5bm05b+MID4gbmVua2lcIDsKK+iInui4jyA+IGJ1dG91XCA7CivprLHokrwgPiB1c3NvdVwgOwor6Iie6LiKID4gYnV5b3VcIDsKK+WGheeCjiA+IG5haWVuXCA7CivovKrnpo0gPiByaW5rYVwgOwor5YiR5b6SID4ga2VpdG9cIDsKK+W5tOW+jCA+IG5lbmdvXCA7CivpgKPlrZAgPiByZW5qaVwgOwor55u45p2/ID4gYWliYW5cIDsKK+WJjeWgtCA+IHplbmJhXCA7CivnlLDpuqkgPiBkZW5idVwgOwor5Ye55omAID4gb3VzaG9cIDsKK+WBvemAoCA+IGdpem91XCA7CivluLDmnaUgPiBraXJhaVwgOwor6Ium55WMID4ga3VnYWlcIDsKK+WGjea8lCA+IHNhaWVuXCA7CivluLDmnZEgPiBraXNvblwgOwor5bi45pmCID4gam91amlcIDsKK+W7tuS8miA+IGVua2FpXCA7CivmrKPllpwgPiBraW5raVwgOwor6YKE5LuYID4ga2FucHVcIDsKK+mBi+WWtiA+IHVuJydlaVwgOwor6I+c5ZySID4gc2FpZW5cIDsKK+W5tOW6piA+IG5lbmRvXCA7CivpgK7lpJwgPiB0YWl5YVwgOwor6YCA5bqnID4gdGFpemFcIDsKK+WIqeWusyA+IHJpZ2FpXCA7CivoibHoi6YgPiBrYW5rdVwgOwor5qyh5ZaEID4gaml6ZW5cIDsKK+WIqeWtkCA+IHJpc2hpXCA7Civojbfmi4UgPiBrYXRhblwgOwor5Yil5a62ID4gYmVra2VcIDsKK+mBuuS9nCA+IGlzYWt1XCA7CivojYnmoYggPiBzb3VhblwgOwor6I2S5pyoID4gYXJha2lcIDsKK+WyqemWkyA+IGl3YW1hXCA7Civluq3lnJIgPiB0ZWllblwgOwor6a+o5rOiID4gZ2VpaGFcIDsKK+W5tOW3riA+IG5lbnNhXCA7Civpr6jmsrkgPiBnZWl5dVwgOwor6Lm26LW3ID4ga2Vra2lcIDsKK+WGhua6gCA+IGVubWFuXCA7CivoirHnqYIgPiBrYXN1aVwgOwor6L6y5pyfID4gbm91a2lcIDsKK+WIpOWtkCA+IGhhbmtvXCA7Civoj6/ljrMgPiBrZWdvblwgOwor6YGg5Ye6ID4gdG9vZGVcIDsKK+mBi+WRvSA+IHVubWVpXCA7CivlhbXngasgPiBoZWlrYVwgOwor55uj5p+7ID4ga2Fuc2FcIDsKK+iPr+WNlyA+IGthbmFuXCA7CivpgZPljJYgPiBkb3VrZVwgOwor5q2M5LuZID4ga2FzZW5cIDsKK+i7oue+qSA+IHRlbmdpXCA7CivmrKHlj7cgPiBqaWdvdVwgOwor5q2M5Lq6ID4ga2FqaW5cIDsKK+mrmOiytCA+IGtvdWtpXCA7CivpgY7ljYogPiBrYWhhblwgOwor5YiG5biDID4gYnVucHVcIDsKK+ebuOaSsiA+IHN1bW91XCA7CivoibbogZ4gPiBlbmJ1blwgOwor5bqP5aWPID4gam9zb3VcIDsKK+i/keaJgCA+IGtpbmpvXCA7Civlh6HmiZMgPiBib25kYVwgOwor5Ye55b2iID4gb3VrZWlcIDsKK+iIiOi1tyA+IGtvdWtpXCA7CivoiI7osrsgPiBzaGFoaVwgOwor6YGO5YukID4ga2FraW5cIDsKK+mAmuWknCA+IHRzdXlhXCA7CivpgY7lirQgPiBrYXJvdVwgOwor6Ieq6YK4ID4gaml0ZWlcIDsKK+mBi+WLoiA+IHVuc2VpXCA7Civlt6jms6IgPiBreW9oYVwgOwor6YGL5YuVID4gdW5kb3VcIDsKK+i+nuafhCA+IGppaGVpXCA7CivpgY7libAgPiBrYWpvdVwgOwor55Wd6ZaTID4gdW5lbWFcIDsKK+iHqumBuCA+IGppc2VuXCA7Civovp7mnpcgPiBqaXJpblwgOwor55ub5pyfID4gc2Vpa2lcIDsKK+W5s+WutiA+IGhlaWtlXCA7CivpgKPlnZAgPiByZW56YVwgOwor6YC45ZOBID4gaXBwaW5cIDsKK+mBk+WFtyA+IGRvdWd1XCA7CivpgY7liIYgPiBrYWJ1blwgOwor5bmz5a6JID4gaGVpYW5cIDsKK+W5tOWtoyA+IG5lbmtpXCA7CivnmobnhKEgPiBrYWltdVwgOwor5Yeh5oSaID4gYm9uZ3VcIDsKK+apn+aniyA+IGtpa291XCA7CivliIblspAgPiBidW5raVwgOwor5YmN5Y+kID4gemVua29cIDsKK+eUu+mkhSA+IGdhYmVpXCA7CivlhazmvJQgPiBrb3VlblwgOwor6L6e5pu4ID4gamlzaG9cIDsKK+mAoOWckiA+IHpvdWVuXCA7CivlhqzmnJ8gPiB0b3VraVwgOwor6auY6Kq8ID4ga291Z2lcIDsKK+WJsOS9mSA+IGpvdXlvXCA7Civlurbli5kgPiBzaG9tdVwgOwor55S76aKoID4gZ2FmdXVcIDsKK+ebm+aZgiA+IHNlaWppXCA7CivlhIDnr4QgPiBnaWhhblwgOwor6Iqz55yJID4gaG91YmlcIDsKK+WIneWknCA+IHNob3lhXCA7Civlgo3oposgPiBva2FtaVwgOwor5qi55rayID4ganVla2lcIDsKK+WIneWkjyA+IHNob2thXCA7CivluIzmnJsgPiBraWJvdVwgOwor5beo5q2pID4ga3lvaG9cIDsKK+W5vOWlsyA+IHlvdWpvXCA7CivnlLvpoYwgPiBnYWRhaVwgOwor5YiG5a62ID4gYnVua2VcIDsKK+W4jOabuCA+IGtpc2hvXCA7CivluLDmipUgPiBraXRvdVwgOwor5Yak5p6JID4gZW4nJ291XCA7CivmqLnmtbcgPiBqdWthaVwgOwor5bm+5aScID4gaWt1eW9cIDsKK+W5vuWkmiA+IGlrdXRhXCA7CivmrKHlhYQgPiBqaWtlaVwgOwor5qyh5YWDID4gamlnZW5cIDsKK+i/t+WtkCA+IG1haWdvXCA7Civoh6rou6IgPiBqaXRlblwgOwor5qmf5qKwID4ga2lrYWlcIDsKK+W6p+WPsyA+IHpheXV1XCA7CivlubvlpKIgPiBnZW5tdVwgOwor5buJ5L6hID4gcmVua2FcIDsKK+WFiOeItiA+IHNlbnB1XCA7CivpgaHkuIogPiBzb2pvdVwgOwor5qmf5qC5ID4ga2lrb25cIDsKK+WBveiqkyA+IGdpc2VpXCA7CivoiIfoq5YgPiB5b3JvblwgOwor6YCg5Za2ID4gem91ZWlcIDsKK+WGpeaalyA+IG1laWFuXCA7CivoiJfoo4UgPiBob3NvdVwgOwor55Ww6YO3ID4gaWt5b3VcIDsKK+eUu+mdoiA+IGdhbWVuXCA7CivlgI3pn7MgPiBiYWlvblwgOwor5qOL6aKoID4ga2lmdXVcIDsKK+eZuueBqyA+IGhha2thXCA7Civlgb3oqIggPiBnaWtlaVwgOwor55u45oSbID4gc291YWlcIDsKK+WBveiogCA+IGdpZ2VuXCA7CivlhYnnhJQgPiBrb3VlblwgOwor5YG26KqeID4gZ3V1Z29cIDsKK+apn+adkCA+IGtpemFpXCA7CivmrKHkvr8gPiBqaWJpblwgOwor6YCj5ZG8ID4gcmVua29cIDsKK+W3puanmCA+IHNheW91XCA7CivlgbboqaAgPiBndXVlaVwgOwor6a2U56WeID4gbWFqaW5cIDsKK+W7iuS4iyA+IHJvdWthXCA7CivpqZ/pm6ggPiBzaHV1dVwgOwor55uy5oSbID4gbW91YWlcIDsKK+iKseeTtiA+IGthYmluXCA7CivlhYnngo4gPiBrb3VlblwgOwor5YaN5qGIID4gc2FpYW5cIDsKK+WEgOekvCA+IGdpcmVpXCA7Civoh6ros5sgPiBqaXNhblwgOwor6YCj5Y+lID4gcmVua3VcIDsKK+i3r+mgrSA+IHJvdG91XCA7CivmrKHkvJogPiBqaWthaVwgOwor6L+35aSiID4gbWVpbXVcIDsKK+iLseazlSA+IGVpaG91XCA7Civoh6rosqkgPiBqaWhhblwgOwor5qmf5pm6ID4ga2ljaGlcIDsKK+iLpua4iyA+IGt1anV1XCA7Civlgb3oo4UgPiBnaXNvdVwgOwor55u45b+cID4gc291b3VcIDsKK+asoeS7oyA+IGppZGFpXCA7Civou43ntIAgPiBndW5raVwgOwor5bC+6bCtID4gb2JpcmVcIDsKK+W4q+aBqSA+IHNoaW9uXCA7CivlhazmraYgPiBrb3VidVwgOwor6Lui56e7ID4gdGVuJydpXCA7Civot6/pnaIgPiByb21lblwgOwor5bKh6L66ID4gb2thYmVcIDsKK+WBiei5nyA+IGlzZWtpXCA7Civou6Lnp5EgPiB0ZW5rYVwgOwor6IeA6YOoID4gZGVuYnVcIDsKK+WFmua0viA+IHRvdWhhXCA7CivpgYvkuIogPiB1bmpvdVwgOwor5qWt6IumID4gZ291a3VcIDsKK+WxpOmbsiA+IHNvdXVuXCA7Civluqflg48gPiB6YXpvdVwgOwor5bi35bmVID4gaWJha3VcIDsKK+mAoOWMliA+IHpvdWthXCA7CivluLfluLMgPiBpY2hvdVwgOwor6Ieq6K6DID4gamlzYW5cIDsKK+WIqeWPoyA+IHJpa291XCA7CivmqZ/mlY8gPiBraWJpblwgOwor6Ieq6K2mID4gamlrZWlcIDsKK+WBiei3oSA+IGlzZWtpXCA7CivlhaXmra8gPiBpcmViYVwgOwor5bq25LqLID4gc2hvamlcIDsKK+mtlOedoSA+IG1hc3VpXCA7CivmqKrmrbsgPiBvdXNoaVwgOwor6LuM56+EID4ga2loYW5cIDsKK+WGhuacrCA+IGVucG9uXCA7CivlhJLnlJ8gPiBqdXNlaVwgOwor5beh5p+7ID4ganVuc2FcIDsKK+WGjeaYoCA+IHNhaWVpXCA7CivlurXkuLsgPiBhbnNodVwgOwor6Ieq6KqNID4gamluaW5cIDsKK+WCmeiNkiA+IGJpa291XCA7CivluLDluIYgPiBraWhhblwgOwor6Iqx54mHID4ga2FoZW5cIDsKK+msvOelniA+IGtpamluXCA7CivohrPpg6ggPiB6ZW5idVwgOwor6Ly45rayID4geXVla2lcIDsKK+eUmOmcsiA+IGthbnJvXCA7CivmqoDlvpIgPiBkYW50b1wgOwor5Yip5YiDID4gcmlqaW5cIDsKK+WIqeWIgCA+IHJpdG91XCA7CivnlbDosaEgPiBpc2hvdVwgOwor6IyC5p6XID4gbW9yaW5cIDsKK+S/nemkiiA+IGhveW91XCA7CivlhYnms6IgPiBrb3VoYVwgOwor6Led6ZuiID4ga3lvcmlcIDsKK+W3puaWuSA+IHNhaG91XCA7CivluqfkuZcgPiB6YWpvdVwgOwor6I2J5bq1ID4gc291YW5cIDsKK+aoueaelyA+IGp1cmluXCA7CivprZTnlYwgPiBtYWthaVwgOwor5bmz5ZKMID4gaGVpd2FcIDsKK+ecgeWtlyA+IHNlaWppXCA7CivlhbfmnIkgPiBndXl1dVwgOwor6bCl5a+hID4ga2Fua2FcIDsKK+WFrOahiCA+IGtvdWFuXCA7Civoh6roo70gPiBqaXNlaVwgOwor5Yem5aWzID4gc2hvam9cIDsKK+W4neW6pyA+IHRlaXphXCA7CivliJHlkI8gPiBrZWlyaVwgOwor6YCB5Y+XID4gc291anVcIDsKK+W3ruaQjSA+IHNhc29uXCA7CivmqKHmp5ggPiBtb3lvdVwgOwor5qmf5omNID4ga2lzYWlcIDsKK+eVs+iqniA+IGpvdWdvXCA7Civlh6HlpKsgPiBib25wdVwgOwor5a+/6b2iID4ganVyZWlcIDsKK+WFg+awlyA+IGdlbmtpXCA7CivliLvkuIsgPiBrb2trYVwgOwor6YCA5YyWID4gdGFpa2FcIDsKK+WHhuWwiSA+IGp1bicnaVwgOwor5Ya25belID4geWFrb3VcIDsKK+W4q+WutiA+IHNoaWthXCA7CivmqKrmn4QgPiBvdWhlaVwgOwor5YW45pWFID4gdGVua29cIDsKK+iJsuebriA+IGlyb21lXCA7CivliKnkvr8gPiByaWJlblwgOwor5YWs5pqHID4ga291a2FcIDsKK+WCmeiAgyA+IGJpa291XCA7CivliKXlgIsgPiBiZWtrb1wgOwor55S76YGTID4gZ2Fkb3VcIDsKK+i3r+mKgCA+IHJvZ2luXCA7CivlubzlhZAgPiB5b3VqaVwgOwor6L6y5a62ID4gbm91a2FcIDsKK+iNieWxpSA+IHpvdXJpXCA7Civkv53pmbogPiBob2tlblwgOwor5bm05YipID4gbmVucmlcIDsKK+iLseabuCA+IGVpc2hvXCA7Civlha3ml6UgPiBtdWlrYVwgOwor5YiG5Yy6ID4gYnVua3VcIDsKK+WFq+aXpSA+IHlvdWthXCA7CivliIbljJYgPiBidW5rYVwgOwor5YWs5pa5ID4ga3Vib3VcIDsKK+aoquaatCA+IG91Ym91XCA7CivlhqXlupwgPiBtZWlmdVwgOwor5YiR5YW3ID4ga2VpZ3VcIDsKK+W3p+aKgCA+IGtvdWdpXCA7Civoi6bmna8gPiBrdWhhaVwgOwor6Iux5piOID4gZWltZWlcIDsKK+aqgOWutiA+IGRhbmthXCA7CivmqKHmnKwgPiBtb2hvblwgOwor5YWl5pelID4gaXJpaGlcIDsKK+iHquiWpiA+IGppc2VuXCA7CivlsL7plbcgPiBvbmFnYVwgOwor6L6y5ammID4gbm91ZnVcIDsKK+Wwj+msoiA+IGtvYmluXCA7Civmo4vpgZMgPiBraWRvdVwgOwor5Yik5LqLID4gaGFuamlcIDsKK+WIhuWIqSA+IGJ1bnJpXCA7Civoi7Hmlq0gPiBlaWRhblwgOwor5YKF6IKyID4gZnVpa3VcIDsKK+aoquaWrSA+IG91ZGFuXCA7Civoi7HmlocgPiBlaWJ1blwgOwor5Yeh5ZmoID4gYm9ua2lcIDsKK+iLseaVsCA+IGVpc3V1XCA7CivmqKrmlocgPiBvdWJ1blwgOwor5Ya05a+SID4gZ29rYW5cIDsKK+mAlOS4iiA+IHRvam91XCA7CivlsbHou4ogPiBkYXNoaVwgOwor5biD5be+ID4gZnVraW5cIDsKK+ebuOWgtCA+IHNvdWJhXCA7Civnm5vlrrQgPiBzZWllblwgOwor6aiS6Z+zID4gc291b25cIDsKK+eahuaXoiA+IGthaWtpXCA7CivlhZrmmK8gPiB0b3V6ZVwgOwor6L6y5aW0ID4gbm91ZG9cIDsKK+eUqOmAlCA+IHlvdXRvXCA7CivlhYnmoIQgPiBrb3VlaVwgOwor6Iy25bGLID4gY2hheWFcIDsKK+iKs+awlyA+IGhvdWtpXCA7CivovL/mnJsgPiB5b2JvdVwgOwor6L6y5aSrID4gbm91ZnVcIDsKK+iHquiRlyA+IGppY2hvXCA7CivlhZDmm7kgPiBqaXNvdVwgOwor5Ye65YmNID4gZGVtYWVcIDsKK+W5s+S+oSA+IGhlaWthXCA7CivlsI/ppqwgPiBrb3VtYVwgOwor5qmf5benID4ga2lrb3VcIDsKK+WIkeS9mSA+IGtlaXlvXCA7Civojbflj7AgPiBuaWRhaVwgOwor55SY6YWiID4gYW1henVcIDsKK+WGrOWtoyA+IHRvdWtpXCA7Civoi5fmnKggPiBuYWVnaVwgOwor5YW15oiIID4gaGVpa2FcIDsKK+W5ueS6iyA+IGthbmppXCA7Civpp7vppqwgPiBrYW5iYVwgOwor55S76LObID4gZ2FzYW5cIDsKK+eZveaXlyA+IGhha2tpXCA7CivpgIHku5ggPiBzb3VmdVwgOwor5YaF5b+cID4gbmFpb3VcIDsKK+WHjeWcnyA+IHRvdWRvXCA7CivluK/lnLAgPiBvYmlqaVwgOwor5YaN5bqmID4gc2FpZG9cIDsKK+i+uuWcnyA+IGhlbmRvXCA7CivlsL7pjKAgPiBiaWpvdVwgOwor5YiR5LqLID4ga2VpamlcIDsKK+WGhuW8viA+IGVuZGFuXCA7Civnm67lnqIgPiBtZWFrYVwgOwor55y85LiLID4gZ2Fua2FcIDsKK+WGjeW4sCA+IHNhaWtpXCA7CivlhrflpI8gPiByZWlrYVwgOwor6L+R5Y+kID4ga2lua29cIDsKK+W3seW3syA+IGtpc2hpXCA7Civou73mta4gPiBrZWlmdVwgOwor6I2S5ZyfID4ga291ZG9cIDsKK+iLm+aWgiA+IGthcmVuXCA7Civou6LngokgPiB0ZW5yb1wgOwor5YWo5oi4ID4gemVua29cIDsKK+iLm+aUvyA+IGthc2VpXCA7CivnlLvorpogPiBnYXNhblwgOwor55S76K6DID4gZ2FzYW5cIDsKK+i+suWckiA+IG5vdWVuXCA7Civlt7vlsL4gPiBrYW5iaVwgOwor55ub5aSPID4gc2Vpa2FcIDsKK+S9s+m6lyA+IGthcmVpXCA7CivoibbnhLYgPiBlbnplblwgOwor6Iux5omNID4gZWlzYWlcIDsKK+iFsOmDqCA+IHlvdWJ1XCA7Civou73msrkgPiBrZWl5dVwgOwor5bmH5YqpID4gaG91am9cIDsKK+WGheW4kSA+IG5haWRvXCA7CivnlLvoq4cgPiBnYWRhblwgOwor5YaZ5a2XID4gc2hhamlcIDsKK+S+m+mkiiA+IGt1eW91XCA7CivlgJLoqp4gPiB0b3Vnb1wgOwor55m65o+uID4gaGFra2lcIDsKK+msvOeBqyA+IG9uaWJpXCA7CivprZrmsrkgPiBneW95dVwgOwor5bid5ZyfID4gdGVpZG9cIDsKK+apn+WrjCA+IGtpZ2VuXCA7CivnlJ/otbcgPiBzZWlraVwgOwor6Iqx5qKoID4ga2FyaW5cIDsKK+WFjOaPmyA+IGRha2FuXCA7CivliIDkuIsgPiB0b3VrYVwgOwor6a2U5rOVID4gbWFob3VcIDsKK+iLpuaIpiA+IGt1c2VuXCA7Civlgrfnl40gPiBzaG91aVwgOwor5YCZ6KOcID4ga291aG9cIDsKK+W4uOWLmSA+IGpvdW11XCA7CivluLDlj4IgPiBraXNhblwgOwor5bem5bK4ID4gc2FnYW5cIDsKK+WGhuWxhSA+IG1hZG9pXCA7Civnmq7lsaQgPiBoaXNvdVwgOwor5qi55bm5ID4ganVrYW5cIDsKK+iLpuaFriA+IGt1cnlvXCA7CivppqzpvaIgPiBiYXJlaVwgOwor5L2Z6b2iID4geW9yZWlcIDsKK+i7veapnyA+IGtlaWtpXCA7Civnl5TnmLsgPiBqaXJvdVwgOwor5beo5a+MID4ga3lvZnVcIDsKK+WGjeWrgSA+IHNhaWthXCA7CivlhoXlrrQgPiBuYWllblwgOwor6Ieq572yID4gamlzaG9cIDsKK+WFrOW6qyA+IGtvdWtvXCA7CivlgpnnoLIgPiBiaWhvdVwgOwor5YWs5bqPID4ga291am9cIDsKK+iLpuaDhSA+IGt1am91XCA7CivojLblnJIgPiBjaGFlblwgOwor6Ium5oK2ID4ga3Vtb25cIDsKK+iLpuaCqSA+IGt1bm91XCA7CivnlbDoh60gPiBpc2h1dVwgOwor55So6KqeID4geW91Z29cIDsKK+W3puWumCA+IHNha2FuXCA7Civmp5DmqLkgPiBrYWlqdVwgOwor5YaX5aSaID4gam91dGFcIDsKK+i7n+a0viA+IG5hbnBhXCA7CivlhqXlnJ8gPiBtZWlkb1wgOwor5YWs5biDID4ga291ZnVcIDsKK+eVsOiFuSA+IGlmdWt1XCA7CivlhYjmiYsgPiBzZW50ZVwgOwor5YWs5beuID4ga291c2FcIDsKK+iMtuWZqCA+IGNoYWtpXCA7Civoh5PohZEgPiB6b3VmdVwgOwor6L+R5L6NID4ga2luamlcIDsKK+mssea7niA+IHV0dGFpXCA7CivmoYLppqwgPiBrZWltYVwgOwor6L+R5Ly8ID4ga2luamlcIDsKK+i/lOS7mCA+IGhlbnB1XCA7Civpq5jnpZYgPiBrb3Vzb1wgOwor5qKF6YWiID4gdW1lenVcIDsKK+i+suWLmSA+IG5vdW11XCA7CivluLjlgpkgPiBqb3ViaVwgOwor6Ium5b25ID4ga3Vla2lcIDsKK+W4g+WboyA+IGZ1dG9uXCA7Civov5TkuosgPiBoZW5qaVwgOwor6IiM56aNID4gemVra2FcIDsKK+WFteWutiA+IGhlaWthXCA7Civov5HkuosgPiBraW5qaVwgOwor5bWQ5rCXID4gcmFua2lcIDsKK+muruW6piA+IHNlbmRvXCA7Civoi5vmgKcgPiBrYXNlaVwgOwor5qK16KqeID4gYm9uZ29cIDsKK+mosOiytCA+IHRvdWtpXCA7CivlsaXooYwgPiByaWtvdVwgOwor55yM5LiLID4ga2Vua2FcIDsKK+WGheWlpSA+IG5haW91XCA7CivohZXovKogPiB1ZGV3YVwgOwor6LW36Zu7ID4ga2lkZW5cIDsKK+W4q+WEkiA+IHNoaWp1XCA7CivlrrbptKggPiBhaGlydVwgOwor5a+d6aGUID4gbmVnYW9cIDsKK+i+suWFtyA+IG5vdWd1XCA7CivluILllrYgPiBzaGllaVwgOwor5YaG5aKzID4gZW5wdW5cIDsKK+iJsuawlyA+IGlyb2tlXCA7Civlt6XlpKsgPiBrb3VmdVwgOwor6L6e5Y67ID4gamlreW9cIDsKK+i7ouapnyA+IHRlbmtpXCA7CivprLzmra8gPiBvbmliYVwgOwor5bCB6Y6WID4gZnV1c2FcIDsKK+iLseWxryA+IGVpdG9uXCA7CivlhazlrokgPiBrb3VhblwgOwor5bCW6YOoID4gc2VuYnVcIDsKK+i+reWFuCA+IGppdGVuXCA7CivluLjkuosgPiBqb3VqaVwgOwor5YWo5a62ID4gemVua2FcIDsKK+ebuOS8vCA+IHNvdWppXCA7CivlgYnnuL4gPiBpc2VraVwgOwor5bel5aC0ID4ga291YmFcIDsKK+eZuuW4gyA+IGhhcHB1XCA7CivluLDku7sgPiBraW5pblwgOwor5YWE5b6MID4gYW5pZ29cIDsKK+ebuOS6kiA+IHNvdWdvXCA7CivlgLbogIUgPiBrdXNoYVwgOwor5L+a6KyhID4gcml5b3VcIDsKK+WFieW6piA+IGtvdWRvXCA7CivpprPpp4YgPiBjaGlrdVwgOwor5L+a6Ku6ID4gcmlnZW5cIDsKK+WFiOW6piA+IHNlbmRvXCA7Civkv47osYYgPiBzb3RvdVwgOwor5YaX5ZOhID4gam91aW5cIDsKK+i7jeatjCA+IGd1bmthXCA7CivnlJ/onYsgPiBraXJvdVwgOwor5YWL5bexID4ga29ra2lcIDsKK+WGheWboCA+IG5haWluXCA7Civot5vooYwgPiBoYWtvdVwgOwor55uy5LqAID4gbW91a2lcIDsKK+W4q+S6iyA+IHNoaWppXCA7Civoi6blr5IgPiBrdWthblwgOwor6L6e5YW4ID4gaml0ZW5cIDsKK+eWq+eXoiA+IGVraXJpXCA7Civnm5vlhIAgPiBzZWlnaVwgOwor5biC5Yy6ID4gc2hpa3VcIDsKK+mmrOmmliA+IGJhc2h1XCA7Civkv5roqIAgPiByaWdlblwgOwor5L2Z6aaZID4geW9rb3VcIDsKK+eZu+WxsSA+IHRvemFuXCA7CivnlrXnkZUgPiBzaGlrYVwgOwor6LuN5qmfID4gZ3Vua2lcIDsKK+iLseWnvyA+IGVpc2hpXCA7Civlhpflj6UgPiBqb3VrdVwgOwor6L6y5LqLID4gbm91amlcIDsKK+aoqeWogSA+IGtlbicnaVwgOwor55uu5LiLID4gbW9ra2FcIDsKK+W2ruWyqCA+IGtlbnNvXCA7Civmpa3ngasgPiBnb3VrYVwgOwor6Ieq56S+ID4gamlzaGFcIDsKK+eWo+eXlCA+IGlib2ppXCA7CivkvZnpoqggPiB5b2Z1dVwgOwor5qmf5YuVID4ga2lkb3VcIDsKK+S9memhniA+IHlvcnVpXCA7CivlhZDlrasgPiBqaXNvblwgOwor55uj5LqLID4ga2FuamlcIDsKK+mmrOmgrSA+IGJhdG91XCA7CivlgLnntKAgPiBrZW5zb1wgOwor55SY6Je7ID4gYW1hbW9cIDsKK+eah+WmgyA+IGtvdWhpXCA7CivlsL7ooYwgPiBiaWtvdVwgOwor55qH5aWzID4ga291am9cIDsKK+WutumiqCA+IGthZnV1XCA7Civlt6Xlk6EgPiBrb3VpblwgOwor5YW15ZmoID4gaGVpa2lcIDsKK+iJtuabuCA+IGVuc2hvXCA7CivlhKrlvKcgPiB5dXVrb1wgOwor5YWs5ZySID4ga291ZW5cIDsKK+i+nuS7uyA+IGppbmluXCA7Civnm5vkuosgPiBzZWlqaVwgOwor6L6e5LukID4gamlyZWlcIDsKK+ajieiKsSA+IG1lbmthXCA7CivmqZ/lhoUgPiBraW5haVwgOwor5YWs5ZuzID4ga291enVcIDsKK+WFteWWtiA+IGhlaWVpXCA7CivnlLDoiI4gPiBpbmFrYVwgOwor5bem5Y+zID4gc2F5dXVcIDsKK+apn+WFiCA+IGtpc2VuXCA7CivlhajlnJ8gPiB6ZW5kb1wgOwor5YWo5ZuzID4gemVuenVcIDsKK+iDr+mWkyA+IGtva2FuXCA7CivnlbDnp7AgPiBpc2hvdVwgOwor55S76IGWID4gZ2FzZWlcIDsKK+WFrOWZqCA+IGtvdWtpXCA7CivkvY7pn7MgPiB0ZWlvblwgOwor6Ieq55yBID4gamlzZWlcIDsKK+W4jOS7oyA+IGtpZGFpXCA7Civovp7kuJYgPiBqaXNlaVwgOwor5YWI5ammID4gc2VucHVcIDsKK+i7jOadoSA+IGtpam91XCA7CivlsI/osYYgPiBhenVraVwgOwor5YW15ZOhID4gaGVpaW5cIDsKK+ahiOmFjSA+IGFuYmFpXCA7Civlrrbpm7sgPiBrYWRlblwgOwor5YaF5YuZID4gbmFpbXVcIDsKK+WwiuiytCA+IHNvbmtpXCA7CivluILkvqEgPiBzaGlrYVwgOwor5beu5YiGID4gc2FidW5cIDsKK+WFrOWWtiA+IGtvdWVpXCA7CivlhoXliqkgPiBuYWlqb1wgOwor55Om6KejID4gZ2FrYWlcIDsKK+WGoOS9jSA+IGthbicnaVwgOwor6Iux5Zm4ID4gZWl0b25cIDsKK+aiheimiyA+IHVtZW1pXCA7Civlt6Xli5kgPiBrb3VtdVwgOwor5qih5Z6LID4gbW9rZWlcIDsKK+W4jOS4liA+IGtpc2VpXCA7CivmoITppIogPiBlaXlvdVwgOwor5L+Y6JmcID4gZnVyeW9cIDsKK+mtlOaJiyA+IG1hc2h1XCA7CivnlJ/oirEgPiBzZWlrYVwgOwor5YG954mIID4gZ2loYW5cIDsKK+S9jumbsiA+IHRlaXVuXCA7CivlhYjlpqMgPiBzZW5waVwgOwor5biD5LukID4gZnVyZWlcIDsKK+W3qOWIqSA+IGt5b3JpXCA7Civnmb3loIogPiBoYWt1YVwgOwor5qOL6IGWID4ga2lzZWlcIDsKK+WFiOWkqyA+IHplbnB1XCA7Civlhbzli5kgPiBrZW5tdVwgOwor5qmf5L2TID4ga2l0YWlcIDsKK+eUmOiLpiA+IGthbmt1XCA7CivpppnpnLIgPiBrb3Vyb1wgOwor6auY54KJID4ga291cm9cIDsKK+eZu+WfjiA+IHRvam91XCA7Civou43ml5cgPiBndW5raVwgOwor5L2z6Ya4ID4ga2Fqb3VcIDsKK+i3r+iCqSA+IHJva2VuXCA7CivmqZ/kvJogPiBraWthaVwgOwor5Ly86aGUID4gbmlnYW9cIDsKK+eUsue+hSA+IGtvdXJhXCA7CivlrrbploAgPiBrYW1vblwgOwor6Ieq55SxID4gaml5dXVcIDsKK+ajhOiDjCA+IGtpaGFpXCA7Civkvr/ooaMgPiBiZW4nJ2lcIDsKK+WGhuWFiSA+IGVua291XCA7Civoh6rnlKggPiBqaXlvdVwgOwor6Ieq55SfID4gamlzZWlcIDsKK+S9v+mAlCA+IHNoaXRvXCA7Civou73lvq4gPiBrZWliaVwgOwor5YW15YyqID4gaGVpaGlcIDsKK+S9s+mFkiA+IGthc2h1XCA7Civlt6XlhbcgPiBrb3VndVwgOwor55m75Z2CID4gdG9oYW5cIDsKK+WvjOmJsSA+IGZ1a291XCA7CivlhazlkI8gPiBrb3VyaVwgOwor5YaF5YSAID4gbmFpZ2lcIDsKK+S+ruiogCA+IGJ1Z2VuXCA7CivpqI7ooYwgPiBraWtvdVwgOwor6Ly/5ZywID4geW9jaGlcIDsKK+W7tuOAhSA+IGVuJydlblwgOwor5qOE6ICBID4ga2lyb3VcIDsKK+iKuOWtkCA+IGdlaWtvXCA7Civog4zpm6IgPiBoYWlyaVwgOwor5bem5YK+ID4gc2FrZWlcIDsKK+S/neiPjCA+IGhva2luXCA7CivmqZ/kuIogPiBraWpvdVwgOwor5YWs5Y2wID4ga291aW5cIDsKK+i8lOWwjiA+IGhvZG91XCA7CivlhavljaYgPiBoYWtrZVwgOwor6Lu95bqmID4ga2VpZG9cIDsKK+W3tOS6uiA+IGhhamluXCA7CivnlLvntJkgPiBnYXNoaVwgOwor6Iux5ZCNID4gZWltZWlcIDsKK+iFueiFlCA+IGZ1a2tvXCA7Civlhazli58gPiBrb3Vib1wgOwor5YWs5YuZID4ga291bXVcIDsKK+eVquebriA+IGJhbm1lXCA7CivlhZrlk6EgPiB0b3VpblwgOwor5YaF5L6NID4gbmFpamlcIDsKK+WFvOWCmSA+IGtlbmJpXCA7CivprLzmiY0gPiBraXNhaVwgOwor5a+E6YeRID4ga2lraW5cIDsKK+i1sOi3ryA+IHNvdXJvXCA7CivprZTlvL4gPiBtYWRhblwgOwor5bKh55uuID4gb2thbWVcIDsKK+WumOmcgCA+IGthbmp1XCA7CivlhIDlvaIgPiBnaWtlaVwgOwor5YSq5amJID4geXV1ZW5cIDsKK+eRnumbsiA+IHp1aXVuXCA7Civpq5jmuKkgPiBrb3VvblwgOwor5bC+6IqxID4gb2JhbmFcIDsKK+WvvuipsSA+IHRhaXdhXCA7CivkvJ3ppqwgPiB0ZW5tYVwgOwor6L2N5Y+JID4gdGVzc2FcIDsKK+S+neiolyA+IGl0YWt1XCA7CivohLPoo6EgPiBub3VyaVwgOwor5qip5YyWID4gZ29uZ2VcIDsKK+iEs+ijjyA+IG5vdXJpXCA7Civoi6blkJ8gPiBrdWdpblwgOwor6Iq45aaTID4gZ2VpZ2lcIDsKK+i3r+e3miA+IHJvc2VuXCA7CivotaTouqsgPiBha2FtaVwgOwor5YW15YKZID4gaGVpYmlcIDsKK+WGheS6iyA+IG5haWppXCA7CivnlJjnvo4gPiBrYW5iaVwgOwor5a+M6L6yID4gZnVub3VcIDsKK+S/rue+hSA+IHNodXJhXCA7CivoiqXlrZAgPiBrZXNoaVwgOwor55aR54K5ID4gZ2l0ZW5cIDsKK+W3peS6iyA+IGtvdWppXCA7CivmqL3kv44gPiBzb25zb1wgOwor5L6N6KybID4gamlrb3VcIDsKK+i7jeaJiyA+IGd1bnRlXCA7CivmqKnliKkgPiBrZW5yaVwgOwor5Lya6aOyID4ga2FpaW5cIDsKK+WFuOS+jSA+IHRlbmppXCA7CivlhazlhIAgPiBrb3VnaVwgOwor5a6J6Z2ZID4gYW5zZWlcIDsKK+mnhei3ryA+IGVraXJvXCA7CivlhJLlrpggPiBqdWthblwgOwor5YWl5YaFID4ganVkYWlcIDsKK+WFmuWLmSA+IHRvdW11XCA7CivlhbfkvZMgPiBndXRhaVwgOwor55m65Y+lID4gaG9ra3VcIDsKK+S9tei1tyA+IGhlaWtpXCA7CivprLHmhqQgPiB1cHB1blwgOwor6Ium5Yq0ID4ga3Vyb3VcIDsKK+S9s+i2oyA+IGthc2h1XCA7Civmp5jlrZAgPiB5b3VzdVwgOwor5L+d6IKyID4gaG9pa3VcIDsKK+eUu+eovyA+IGdha291XCA7CivlsbHnqqkgPiBzYW5rYVwgOwor5L6L6KmxID4gcmVpd2FcIDsKK+WFheWToSA+IGp1dWluXCA7CivoirHlo4cgPiBrYWRhblwgOwor5YWo5YKZID4gemVuYmlcIDsKK+WFmuWIqSA+IHRvdXJpXCA7CivouI/noLQgPiB0b3VoYVwgOwor5a2k6auYID4ga29rb3VcIDsKK+iHqueCiiA+IGppc3VpXCA7Civmpa3mnpwgPiBnb3VrYVwgOwor5L2z6LOTID4ga2FoaW5cIDsKK+eUn+ezuCA+IGtpaXRvXCA7CivlhbXkuosgPiBoZWlqaVwgOwor5YWI5Y+kID4gc2Vua29cIDsKK+aooeWGmSA+IG1vc2hhXCA7Civlg6flvpIgPiBzb3V0b1wgOwor6IOD6Y+hID4gaWt5b3VcIDsKK+mrmOatjCA+IGtvdWthXCA7Civkvovopo8gPiByZWlraVwgOwor6auY5qyhID4ga291amlcIDsKK+eWjua8jyA+IHNvcm91XCA7CivlronplpEgPiBhbmthblwgOwor5qi55LiKID4ganVqb3VcIDsKK+S9mei8qSA+IHlvaGFpXCA7CivmooXoirEgPiBiYWlrYVwgOwor5YSA5a65ID4gZ2l5b3VcIDsKK+eUsOennyA+IGRlbnNvXCA7Civlg6flurUgPiBzb3VhblwgOwor6aas6LuKID4gYmFzaGFcIDsKK+WFrOS6iyA+IGtvdWppXCA7CivlhYjli5kgPiBzZW5tdVwgOwor5L+6562JID4gb3JlcmFcIDsKK+WvjOiytCA+IGZ1a2tpXCA7Civlr6HoqIAgPiBrYWdlblwgOwor6aaW6YO9ID4gc2h1dG9cIDsKK+aooeWAoyA+IG1vaG91XCA7Civlr4zosaogPiBmdWdvdVwgOwor6aWR6aWJID4ga2lraW5cIDsKK+mmrOi5hCA+IGJhdGVpXCA7Civot7XnpZogPiBzZW5zb1wgOwor6Lev56iLID4gcm90ZWlcIDsKK+WvhOi0iCA+IGtpem91XCA7CivkvZPouq8gPiB0YWlrdVwgOwor55e05oSaID4gY2hpZ3VcIDsKK+iDjOmDqCA+IGhhaWJ1XCA7Civkv53nt5ogPiBob3NlblwgOwor6Iux5Li7ID4gZWlzaHVcIDsKK+Wto+mhjCA+IGtpZGFpXCA7CivlhYPliKkgPiBnZW5yaVwgOwor5L216KiYID4gaGVpa2lcIDsKK+WAq+eQhiA+IHJpbnJpXCA7Civou4rluqsgPiBzaGFrb1wgOwor6IKh6ZaTID4ga29rYW5cIDsKK+eUo+enkSA+IHNhbmthXCA7Civlr5PoqbEgPiBndXV3YVwgOwor5L2z6KiAID4ga2FnZW5cIDsKK+iHqua1hCA+IGppam91XCA7Civnlo/msLQgPiBzb3N1aVwgOwor55aO5rC0ID4gc29zdWlcIDsKK+S9meiyoSA+IHlvemFpXCA7CivohL7oh58gPiBoaXpvdVwgOwor5a2Q6aasID4ga291bWFcIDsKK+iEvuiHkyA+IGhpem91XCA7Civlg6flsLwgPiBzb3VuaVwgOwor55m65L2cID4gaG9zc2FcIDsKK+i7ouWrgSA+IHRlbmthXCA7Civoh6rmsrsgPiBqaWNoaVwgOwor55mS5ZCIID4geXVnb3VcIDsKK+WFheWCmSA+IGp1dWJpXCA7Civlg6flr7ogPiBzb3VqaVwgOwor6IS+6IWrID4gaGlzaHVcIDsKK+mrmOaetiA+IGtvdWthXCA7CivlsL7nsaAgPiBiaXJvdVwgOwor55eb5omLID4gaXRhZGVcIDsKK+eZveS6nCA+IGhha3VhXCA7Civlg6flrrYgPiBzb3VrYVwgOwor5a626LKhID4ga2F6YWlcIDsKK+i7ouWphiA+IHRlbmJhXCA7CivlgaXmrakgPiBrZW5wb1wgOwor6ay85a2QID4gb25pZ29cIDsKK+aliuaenSA+IHlvdWppXCA7CivlsZXnpLogPiB0ZW5qaVwgOwor5a6Y6YCUID4ga2FudG9cIDsKK+iHquawkSA+IGppbWluXCA7Civkv53nrqEgPiBob2thblwgOwor5qCE6LuiID4gZWl0ZW5cIDsKK+aknOazoiA+IGtlbnBhXCA7Civku67poYwgPiBrYWRhaVwgOwor5a2X6Z2iID4gamltZW5cIDsKK+i3r+ebpCA+IHJvYmFuXCA7CivlhYPkvqEgPiBnZW5rYVwgOwor6Ii15omLID4gZGFzaHVcIDsKK+Wuj+mBoCA+IGtvdWVuXCA7CivlrZDpn7MgPiBzaGlpblwgOwor6Imm5bC+ID4ga2FuYmlcIDsKK+S9meirhyA+IHlvZGFuXCA7CivlhIDlnosgPiBnaWtlaVwgOwor5a+M6KOVID4gZnV5dXVcIDsKK+ani+WbsyA+IGtvdXp1XCA7CivnlKPnnYAgPiB1YnVnaVwgOwor5YGP5rOiID4gaGVuaGFcIDsKK+mpmueVsCA+IGt5b3VpXCA7Civlgb3mnKwgPiBnaWhvblwgOwor6Im25ae/ID4gZW5zaGlcIDsKK+WEquWIqSA+IHl1dXJpXCA7CivmpbXmhI8gPiBnb2t1aVwgOwor5Luu6Z2iID4ga2FtZW5cIDsKK+WBveabuCA+IGdpc2hvXCA7CivlsqHmua8gPiBva2F5dVwgOwor5qOL55WMID4ga2lrYWlcIDsKK+S/neeojiA+IGhvemVpXCA7CivkvZnoqIggPiB5b2tlaVwgOwor5YOF5beuID4ga2luc2FcIDsKK+WFhOS6iyA+IGtlaWppXCA7Civouq/lubkgPiBrdWthblwgOwor5YK+5bqmID4ga2VpZG9cIDsKK+S/r+eesCA+IGZ1a2FuXCA7CivmoKHopo8gPiBrb3VraVwgOwor6Ieo5qmfID4gcmlua2lcIDsKK+iCqemDqCA+IGtlbmJ1XCA7CivoiYfluqsgPiB0ZWlrb1wgOwor5bCK6ICFID4gc29uamFcIDsKK+i3oeebriA+IGF0b21lXCA7Civot6/nlKggPiByb3lvdVwgOwor5a626KiTID4ga2FrdW5cIDsKK+Wtl+mWkyA+IGppa2FuXCA7CivlrrboqIggPiBrYWtlaVwgOwor6Iqx5YagID4ga2FrYW5cIDsKK+S9juiqniA+IHRlaWdvXCA7Civlrp/osrsgPiBqaXBwaVwgOwor5YK+5beuID4ga2Vpc2FcIDsKK+eUt+eMqyA+IG9uZWtvXCA7CivnlKbnlJ8gPiBzb3NlaVwgOwor6LW36I2JID4ga2lzb3VcIDsKK+aetumWkyA+IGtha2FuXCA7CivkvZnoo5UgPiB5b3l1dVwgOwor5bWp5ZG8ID4gc3V1a29cIDsKK+WumOiyuyA+IGthbnBpXCA7CivppIrpr4kgPiB5b3VyaVwgOwor6LuN5aSrID4gZ3VucHVcIDsKK+eWjuaelyA+IHNvcmluXCA7Civlrrboo4EgPiBrYXNhaVwgOwor5L+z55S7ID4gaGFpZ2FcIDsKK+i7iuWkqyA+IHNoYWZ1XCA7Civku5bpnaIgPiB0YW1lblwgOwor5bCP57SLID4ga29tb25cIDsKK+ahg+iKsSA+IHRvdWthXCA7CivnlJ/nkIYgPiBzZWlyaVwgOwor6IWL56qpID4gZWtpa2FcIDsKK+S7mOmajyA+IGZ1enVpXCA7Civpq5jmibkgPiBrb3VoaVwgOwor5a626J2/ID4gaWViYWVcIDsKK+aknOafuyA+IGtlbnNhXCA7Civlgpnlv5ggPiBiaWJvdVwgOwor5bCP57KLID4ga29pa2lcIDsKK+Wun+iomCA+IGppa2tpXCA7Civoh6rmm7ggPiBqaXNob1wgOwor6LKr6aaWID4ga2FuanVcIDsKK+WBiealrSA+IGlneW91XCA7CivkurrppqwgPiBqaW5iYVwgOwor5YSE5YqrID4gb2trdXVcIDsKK+iytOmhlSA+IGtpa2VuXCA7Civkvo3ogIUgPiBqaXNoYVwgOwor6Ieq5pq0ID4gamlib3VcIDsKK+S+v+enmCA+IGJlbnBpXCA7CivlrpjoqbEgPiBrYW53YVwgOwor5bSO5bSWID4ga2lnYWlcIDsKK+eWjuaUviA+IHNvaG91XCA7CivkvZnolqsgPiB5b2t1blwgOwor6Ieq5piOID4gamltZWlcIDsKK+iHqOaZgiA+IHJpbmppXCA7CivppIzpo58gPiBlamlraVwgOwor6LuN5ZmoID4gZ3Vua2lcIDsKK+WumuimjyA+IGpvdWdpXCA7CivoiLnlsL4gPiBzZW5iaVwgOwor5YSA5YiRID4gZ2lrZWlcIDsKK+S7iumamyA+IGltYXdhXCA7CivlhITlhoYgPiBva3VlblwgOwor5YSA5YiAID4gZ2l0b3VcIDsKK+WuiOittyA+IHNodWdvXCA7CivkvJrosrsgPiBrYWloaVwgOwor5bKp5qC5ID4gaXdhbmVcIDsKK+mli+mChCA+IGtpa2FuXCA7Civlr6HogZ4gPiBrYWJ1blwgOwor6auY5oGpID4ga291b25cIDsKK+eUt+a7nSA+IG9kYWtpXCA7Civou6LljJYgPiB0ZW5rYVwgOwor5YSA5YW4ID4gZ2l0ZW5cIDsKK+eTnOenkSA+IHVyaWthXCA7Civou73kvq4gPiBrZWlidVwgOwor5a626JS1ID4ga2F6b3VcIDsKK+S+m+exsyA+IGt1bWFpXCA7CivmoITonrogPiBzYXphZVwgOwor6Luf5YyWID4gbmFua2FcIDsKK+WApOautSA+IG5lZGFuXCA7CivlraTou40gPiBrb2d1blwgOwor5YG95oKqID4gZ2lha3VcIDsKK+eVsOacnSA+IGljaG91XCA7CivkvbPogrQgPiBrYWtvdVwgOwor55ay5byKID4gaGloZWlcIDsKK+S8muitsCA+IGthaWdpXCA7CivnlJjnha4gPiBhbWFuaVwgOwor5YG95oCnID4gZ2lzZWlcIDsKK+adpemnlSA+IHJhaWdhXCA7CivnlLvms5UgPiBnYWhvdVwgOwor5a+E6IiqID4ga2lrb3VcIDsKK+mrmOW6pyA+IGtvdXphXCA7Civpq5jluqYgPiBrb3Vkb1wgOwor6Imv5Yy7ID4gcnlvdWlcIDsKK+S8neiomCA+IGRlbmtpXCA7CivkvJroqbEgPiBrYWl3YVwgOwor5L2Z6IqzID4geW9ob3VcIDsKK+S5sem6uyA+IHJhbm1hXCA7Civlgpjlr78gPiBzYW5qdVwgOwor5bGx5rKzID4gc2FuZ2FcIDsKK+WwvueKtiA+IGJpam91XCA7CivogLPpoIYgPiBqaWp1blwgOwor5Ly96JeNID4gZ2FyYW5cIDsKK+izm+i+niA+IHNhbmppXCA7Civou43ljLsgPiBndW4nJ2lcIDsKK+WwguenkSA+IHNlbmthXCA7CivnlbDmlZkgPiBpa3lvdVwgOwor5YSA5LuXID4gZ2lqb3VcIDsKK+WuiOihmyA+IHNodWVpXCA7Civlr4zogIUgPiBmdXNoYVwgOwor5Lya6KaPID4ga2Fpa2lcIDsKK+i7jeWLmSA+IGd1bm11XCA7CivnlKPmua8gPiB1YnV5dVwgOwor6aaZ6I+vID4ga291Z2VcIDsKK+iHquaIkiA+IGppa2FpXCA7CivlsL7nh4ggPiBiaXRvdVwgOwor5L6b56WtID4gZ3VzYWlcIDsKK+izk+i+niA+IGhpbmppXCA7Civog5roir0gPiBoYWlnYVwgOwor6LW3566XID4ga2lzYW5cIDsKK+iInuWtkCA+IG1haWtvXCA7CivkvbPnt6ggPiBrYWhlblwgOwor6Ieq5oWiID4gamltYW5cIDsKK+i7ouS9jSA+IHRlbicnaVwgOwor6aOi6aWJID4ga2lraW5cIDsKK+alveWZqCA+IGdha2tpXCA7CivnlpHlv7UgPiBnaW5lblwgOwor5a+656S+ID4gamlzaGFcIDsKK+S9meiBniA+IHlvYnVuXCA7CivkuqTpmYQgPiBrb3VmdVwgOwor5a2m6KqyID4gZ2Fra2FcIDsKK+WDreS9jSA+IHNlbicnaVwgOwor5LuY6L+RID4gZnVraW5cIDsKK+WwvueBryA+IGJpdG91XCA7CivppqzogJUgPiBiYWtvdVwgOwor55Oc55SwID4ga2FkZW5cIDsKK+i4j+afuyA+IHRvdXNhXCA7Civpq5jlrpwgPiBrb3VnaVwgOwor6LW356i/ID4ga2lrb3VcIDsKK+eUu+alvCA+IGdhcm91XCA7CivohLHnmq4gPiBkYXBwaVwgOwor55WP5pyNID4gaWZ1a3VcIDsKK+adpemZoiA+IHJhaWluXCA7Civkvo3npa0gPiBqaXNhaVwgOwor6LuN5YKZID4gZ3VuYmlcIDsKK+eUo+awlyA+IHNhbmtlXCA7CivmpYrlrZAgPiB5b3VqaVwgOwor5bCP55WwID4gc2hvdWlcIDsKK+iInuWmkyA+IG1haWtvXCA7Civmo4TmrbsgPiBraXNoaVwgOwor5L2Z572qID4geW96YWlcIDsKK+eUo+avmyA+IHVidWdlXCA7Civmpa3lm6AgPiBnb3VpblwgOwor5L6L56S6ID4gcmVpamlcIDsKK+WutuiAgSA+IGthcm91XCA7CivnlJ/msJcgPiBzZWlraVwgOwor5LqL6aCFID4gamlrb3VcIDsKK+iFkOeImyA+IGZ1cmFuXCA7CivlsI/nk7YgPiBrb2JpblwgOwor5L2z56+HID4ga2FoZW5cIDsKK+iEseeWvSA+IGRhc3NvXCA7CivlsqnmiLggPiBpd2F0b1wgOwor5a+/55uDID4ganVoYWlcIDsKK+eUn+avjSA+IHNlaWJvXCA7Civoh6rlvIEgPiBqaWJlblwgOwor55Wq5omLID4gYmFudGVcIDsKK+WBuOWuiSA+IHRvdWFuXCA7CivlsI/nkLQgPiBvZ290b1wgOwor5L+E54S2ID4gZ2F6ZW5cIDsKK+ajhOaoqSA+IGtpa2VuXCA7Civosarpo7IgPiBnb3VpblwgOwor5LqA6aCtID4ga2l0b3VcIDsKK+eUu+advyA+IGdhYmFuXCA7CivlrZfoqJMgPiBqaWt1blwgOwor5qKz5q+bID4gc29tb3VcIDsKK+mjm+mbuyA+IGhpZGVuXCA7Civkuozpmo4gPiBuaWthaVwgOwor55S75p2QID4gZ2F6YWlcIDsKK+Wtl+inoyA+IGppa2FpXCA7Civou43kuosgPiBndW5qaVwgOwor55CG6LKhID4gcml6YWlcIDsKK+eUu+acrCA+IGdhaG9uXCA7CivnlLvmnJ8gPiBrYWtraVwgOwor6Ieq5belID4gamlrb3VcIDsKK+iDg+iFuCA+IGljaG91XCA7CivmoKHntIAgPiBrb3VraVwgOwor55W45b2iID4ga2lrZWlcIDsKK+S7o+itsCA+IGRhaWdpXCA7Civku67oqIAgPiBrYWdlblwgOwor6LWw56C0ID4gc291aGFcIDsKK+WCteWLmSA+IHNhaW11XCA7CivouqvliIYgPiBtaWJ1blwgOwor5YCL5p2hID4ga2Fqb3VcIDsKK+i1pOemjSA+IHNla2thXCA7CivkuojpmLIgPiB5b2JvdVwgOwor5YGJ5b6zID4gaXRva3VcIDsKK+izhOizgiA+IHdhaXJvXCA7CivogrLoi7EgPiBpa3VlaVwgOwor5bCP54qsID4ga29pbnVcIDsKK+aghOiAgCA+IGVpeW91XCA7CivnlLHmnaUgPiB5dXJhaVwgOwor55Ww5b+DID4gaXNoaW5cIDsKK+iIueWMuyA+IHNlbicnaVwgOwor5qSw5a2QID4geWFzaGlcIDsKK+Wutue0iyA+IGthbW9uXCA7Civlrrbns7sgPiBrYWtlaVwgOwor55Ww5b2iID4gaWd5b3VcIDsKK+S8vee+hSA+IGt5YXJhXCA7CivogrrohZEgPiBoYWlmdVwgOwor5LuP6LKoID4gZnVra2FcIDsKK+adsemDvSA+IHRvdXRvXCA7CivmnbHpg6ggPiB0b3VidVwgOwor5Luu6KOFID4ga2Fzb3VcIDsKK+iHquWwvSA+IGppamluXCA7CivnkIboq5YgPiByaXJvblwgOwor5YGP5beuID4gaGVuc2FcIDsKK+WwiueItiA+IHNvbnB1XCA7Civoh6rlsIogPiBqaXNvblwgOwor5YG95aCxID4gZ2lob3VcIDsKK+Wumue+qSA+IHRlaWdpXCA7Civlgpnlk4EgPiBiaWhpblwgOwor6LKo6LuKID4ga2FzaGFcIDsKK+S/l+awlyA+IHpva2tlXCA7Civoh6rlrrMgPiBqaWdhaVwgOwor6LK46LK7ID4gdGFpaGlcIDsKK+WvhOeovyA+IGtpa291XCA7CivnlZnmhI8gPiByeXV1aVwgOwor5L2V566HID4gbmFua29cIDsKK+WAi+aVsCA+IGtvc3V1XCA7Civlr53nm7ggPiBuZXpvdVwgOwor6aK26aKoID4gZ3VmdXVcIDsKK+iytOizpCA+IGtpc2VuXCA7Civoh6rlrZggPiBqaXNvblwgOwor5qGC55quID4ga2VpaGlcIDsKK+mjsumFkiA+IGluc2h1XCA7CivosrTos5MgPiBraWhpblwgOwor5Lqo6YGLID4ga291dW5cIDsKK+eQhuinoyA+IHJpa2FpXCA7CivosrTos44gPiBraXNlblwgOwor6LW355SoID4ga2l5b3VcIDsKK+S9leetiSA+IG5hbnJhXCA7Civosqnot68gPiBoYW5yb1wgOwor5pyf6aaWID4ga2lzaHVcIDsKK+S/l+atjCA+IHpva2thXCA7CivkuZfppqwgPiBqb3ViYVwgOwor5LuY6KiAID4gZnVnZW5cIDsKK+i1pOebriA+IGFrYW1lXCA7Civku4vorbcgPiBrYWlnb1wgOwor5LuW6KiAID4gdGFnb25cIDsKK+S6gOmRkSA+IGtpa2FuXCA7CivohLPngo4gPiBub3VlblwgOwor5qSc5a2XID4ga2VuamlcIDsKK+S6lOmHjSA+IGdvanV1XCA7Civos4DoqZ4gPiBnYXNoaVwgOwor6Iie5Y+wID4gYnV0YWlcIDsKK+acnemkiSA+IGFzYWdlXCA7Civlr6HnlLcgPiB5YW1vb1wgOwor5LuW6KaLID4gdGFrZW5cIDsKK+iIjuWWtiA+IHNoYWVpXCA7CivkvI7oirggPiBnaWdlaVwgOwor55aO5aSWID4gc29nYWlcIDsKK+WBtuWboCA+IGd1dWluXCA7Civlronnva4gPiBhbmNoaVwgOwor6LKo6LKhID4ga2F6YWlcIDsKK+WCjeWPlyA+IGJvdWp1XCA7Civog7TnnYAgPiBkb3VnaVwgOwor5a6256a9ID4ga2FraW5cIDsKK+WyqeWxiyA+IGl3YXlhXCA7Civkuozph40gPiBmdXRhZVwgOwor6IKl6IKyID4gaGlpa3VcIDsKK+Wwj+a7nSA+IG90YWtpXCA7CivkuojpiLQgPiB5b3JlaVwgOwor5YG95ZaEID4gZ2l6ZW5cIDsKK+aip+ahkCA+IGdvdG91XCA7CivosqLos6YgPiBrb3VmdVwgOwor55S75omNID4gZ2FzYWlcIDsKK+eUu+aJiyA+IGdhc2h1XCA7CivlrpjntIAgPiBrYW5raVwgOwor6LK06KqMID4ga2lzaGlcIDsKK+miqOmfuyA+IGZ1dWluXCA7CivnlbPlrZcgPiBqb3VqaVwgOwor5LuW6KGMID4gdGFrb3VcIDsKK+iCoeiCsSA+IGtva291XCA7CivosqHosqggPiB6YWlrYVwgOwor55Ww5a6XID4gaXNodXVcIDsKK+S6kumBuCA+IGdvc2VuXCA7Civoh6rlo4ogPiBqaWthaVwgOwor5qOE5pCNID4ga2lzb25cIDsKK+miqOmdoSA+IGZ1dWJpXCA7CivppIrorbcgPiB5b3Vnb1wgOwor6LKd6LKoID4gYmFpa2FcIDsKK+S8juiDvSA+IGdpbm91XCA7CivmnKrplosgPiBtaWthaVwgOwor5YCL5omAID4ga2FzaG9cIDsKK+iytOimpyA+IGtpcmFuXCA7CivotbDni5cgPiBzb3VrdVwgOwor6aKo6ZuyID4gZnV1dW5cIDsKK+S5lumboiA+IGthaXJpXCA7CivnlrLlirQgPiBoaXJvdVwgOwor5Luu6JGsID4ga2Fzb3VcIDsKK+WBveWQjSA+IGdpbWVpXCA7Civkurroqp4gPiBqaW5nb1wgOwor6aKo6ZuFID4gZnV1Z2FcIDsKK+S6lOi8qiA+IGdvcmluXCA7Civlgb3lj7IgPiBnaXNoaVwgOwor5pyf6ZmQID4ga2lnZW5cIDsKK+S6iOmBuCA+IHlvc2VuXCA7CivkuZfpmaQgPiBqb3Vqb1wgOwor5YGP5aWHID4gaGVua2lcIDsKK+S4u+mmrCA+IHNodW1lXCA7Civkv53mnIkgPiBob3l1dVwgOwor6Ieq5ZyoID4gaml6YWlcIDsKK+mrmOWIqSA+IGtvdXJpXCA7CivmnJ/plpMgPiBraWthblwgOwor6LW354K5ID4ga2l0ZW5cIDsKK+S6jOi8qiA+IG5pcmluXCA7CivmnJ3plpMgPiBhc2FtYVwgOwor6ISz5rOiID4gbm91aGFcIDsKK+Wun+enkSA+IGppa2thXCA7Civlrrbnm7ggPiBrYXNvdVwgOwor5p2l6LOAID4gcmFpZ2FcIDsKK+WxoOaJgCA+IHRvc2hvXCA7CivnlpHllY8gPiBnaW1vblwgOwor6IiO5YipID4gc2hhcmlcIDsKK+WvhOeUnyA+IGtpc2VpXCA7Civkuozou40gPiBuaWd1blwgOwor5YCS5b2xID4gdG91ZWlcIDsKK+S7luiWpiA+IHRhemVuXCA7CivlgIvmgKcgPiBrb3NlaVwgOwor6aeE54qsID4gZGFrZW5cIDsKK+mjm+i7iiA+IGhpc2hhXCA7CivlsbnluqYgPiBraXR0b1wgOwor5L2c55SoID4gc2F5b3VcIDsKK+WAreWvhyA+IHdha291XCA7CivlsI/mrYwgPiBrb3V0YVwgOwor5Li76Z+zID4gc2h1b25cIDsKK+eVsOWigyA+IGlreW91XCA7CivlrrnnlpEgPiB5b3VnaVwgOwor55S75buKID4gZ2Fyb3VcIDsKK+S9meeUnyA+IHlvc2VpXCA7Civnvo7pupcgPiBiaXJlaVwgOwor5a6a56SOID4gdGVpc29cIDsKK+WBj+WcnyA+IGhlbmRvXCA7CivlsqnloLQgPiBpd2FiYVwgOwor6Ieq5ZWPID4gamltb25cIDsKK+WBveWFtSA+IGdpaGVpXCA7CivkuqToqrwgPiBrb3VnaVwgOwor6IWV5pyoID4gdWRlZ2lcIDsKK+WCmOS4iyA+IHNhbmthXCA7CivlgaXlkKYgPiBrZW5waVwgOwor55S75birID4gZ2FzaGlcIDsKK+eUu+W4liA+IGdham91XCA7CivlrrbnlKMgPiBrYXNhblwgOwor55S75belID4gZ2Frb3VcIDsKK+i1t+a6kCA+IGtpZ2VuXCA7Civnvr3pn7MgPiBoYW90b1wgOwor6auY5L6hID4ga291a2FcIDsKK+WAieW6qyA+IHNvdWtvXCA7Civmnpzoj5wgPiBrYXNhaVwgOwor5py66L66ID4ga2loZW5cIDsKK+WvvuavlCA+IHRhaWhpXCA7CivnlbDlm70gPiBpa29rdVwgOwor5p2R6LK7ID4gc29ucGlcIDsKK+izouiAhSA+IGtlbmphXCA7CivmnKzpg6ggPiBob25idVwgOwor5LqS6K2yID4gZ29qb3VcIDsKK+iHk+WZqCA+IHpvdWtpXCA7Civlr77mrKcgPiB0YWlvdVwgOwor6ICB6LqvID4gcm91a3VcIDsKK+eUo+W+jCA+IHNhbmdvXCA7CivnlKjluqYgPiB5b3Vkb1wgOwor5pu46ZmiID4gc2hvaW5cIDsKK+ahkOayuSA+IHRvdXl1XCA7CivmnKrpgYIgPiBtaXN1aVwgOwor55Sf5b6SID4gc2VpdG9cIDsKK+eUn+W+jCA+IHNlaWdvXCA7CivmnaHopo8gPiBqb3VraVwgOwor6ISa5rCXID4ga2Fra2VcIDsKK+mrmOS4iyA+IGtvdWdlXCA7Civoh6rli5UgPiBqaWRvdVwgOwor546L6YGTID4gb3Vkb3VcIDsKK+izm+e+jiA+IHNhbmJpXCA7CivohZDmlZcgPiBmdWhhaVwgOwor6LmE5Y+JID4gdGVpc2FcIDsKK+S6ieitsCA+IHNvdWdpXCA7CivmnKjpgJogPiBha2ViaVwgOwor5LuV6IieID4gamltYWlcIDsKK+i2iuaoqSA+IGVra2VuXCA7Civot4vmiYggPiBiYWtrb1wgOwor5L2Z54e8ID4geW9qaW5cIDsKK+WAi+WxlSA+IGtvdGVuXCA7Civoh6rliY0gPiBqaW1hZVwgOwor6Ieq5Yi2ID4gamlzZWlcIDsKK+WBpeWFkCA+IGtlbmppXCA7Civog4Pnl5sgPiBpdHN1dVwgOwor5LqI6KyAID4geW9ib3VcIDsKK+mqqOWMliA+IGtva2thXCA7CivlsI/mnp0gPiBrb2VkYVwgOwor6IOD55eFID4gaWJ5b3VcIDsKK+iHquWIhiA+IGppYnVuXCA7Civoh6rliIMgPiBqaWppblwgOwor6LW35q+bID4ga2ltb3VcIDsKK+eRqueRmSA+IG1lbm91XCA7CivpoqjpgqogPiBmdXVqYVwgOwor6LW35q27ID4ga2lzaGlcIDsKK+aetue3miA+IGthc2VuXCA7CivkuIrppqwgPiBqb3ViYVwgOwor5L2c54K6ID4gc2FrdWlcIDsKK+iDjOeQhiA+IGhhaXJpXCA7CivlronnnKAgPiBhbm1pblwgOwor6Ieq5YWaID4gaml0b3VcIDsKK+Wwv+aEjyA+IG55b3VpXCA7CivmnJvpgaAgPiBib3VlblwgOwor55Sw5a62ID4gZGVua2FcIDsKK+S6iOiogCA+IHlvZ2VuXCA7CivkuZ3ovKogPiBrdXJpblwgOwor5Lmx6LK7ID4gcmFucGlcIDsKK+S7luiBniA+IHRhYnVuXCA7CivmnKrouI8gPiBtaXRvdVwgOwor5LqJ6KaHID4gc291aGFcIDsKK+WvneaxlyA+IG5lYXNlXCA7CivlgaXkv50gPiBrZW5wb1wgOwor5a++5qGIID4gdGFpYW5cIDsKK+eRleeWtSA+IGthc2hpXCA7CivkuojoposgPiB5b2tlblwgOwor5LiL6aKoID4ga2FmdXVcIDsKK+S7luiAhSA+IHRhc2hhXCA7Civnlb/lhoUgPiBraW5haVwgOwor5Luu57SNID4ga2Fub3VcIDsKK+eMqummliA+IGlrdWJpXCA7CivlrprnkIYgPiB0ZWlyaVwgOwor5LiN6aCGID4gZnVqdW5cIDsKK+S4gOmmliA+IGlzc2h1XCA7CivnlKPlsYsgPiB1YnV5YVwgOwor5Luu57KnID4ga2V3YWlcIDsKK+ixquiqniA+IGdvdWdvXCA7CivpoZ7pn7sgPiBydWlpblwgOwor6aGe6Z+zID4gcnVpb25cIDsKK+WvkuazoiA+IGthbnBhXCA7CivnlKjlrZcgPiB5b3VqaVwgOwor5a2m56eRID4gZ2Fra2FcIDsKK+iyp+iLpiA+IGhpbmt1XCA7CivnlLflpbMgPiBkYW5qb1wgOwor6ICD6KqyID4ga291a2FcIDsKK+agueawlyA+IGtvbmtpXCA7CivotaTmr5sgPiBha2FnZVwgOwor5LiA6aOvID4gaXBwYW5cIDsKK+eUu+WjhyA+IGdhZGFuXCA7Civlr4TmuK8gPiBraWtvdVwgOwor6aaZ54WZID4ga291ZW5cIDsKK+e+jumiqCA+IGJpZnV1XCA7Civpo5vooYwgPiBoaWtvdVwgOwor5LqI6KGMID4geW9rb3VcIDsKK+S6rOiPryA+IGtlaWthXCA7CivlronnlKMgPiBhbnphblwgOwor6Ieq5L2TID4gaml0YWlcIDsKK+S4gOmiqCA+IGlwcHV1XCA7Civnvo7poZQgPiBiaWdhblwgOwor55Sf5a62ID4gc2Vpa2FcIDsKK+Wun+eItiA+IGppcHB1XCA7Civoh6rkvJ0gPiBqaWRlblwgOwor6IGW6ICFID4gc2VpamFcIDsKK+S+v+aJgCA+IGJlbmpvXCA7CivnlLvloLEgPiBnYWhvdVwgOwor6Ieq5Lu7ID4gamluaW5cIDsKK+S4lumWkyA+IHNla2VuXCA7CivkuIDpoK0gPiBpdHRvdVwgOwor55Sy5aScID4ga291eWFcIDsKK+iHquS7iiA+IGppa29uXCA7CivkuI3pmo8gPiBmdXp1aVwgOwor6aaZ54KJID4ga291cm9cIDsKK+S4u+mDqCA+IHNodWJ1XCA7CivkuIDpoIUgPiBpa2tvdVwgOwor6aiO5omLID4ga2lzaHVcIDsKK+eUsOWkqyA+IGRlbnB1XCA7Civos6bnqI4gPiBmdXplaVwgOwor6aOb6J2XID4gYmF0dGFcIDsKK+eSveabuCA+IGppc2hvXCA7CivlsLvluqcgPiBrb3V6YVwgOwor6LK057+wID4ga2lrYW5cIDsKK+eQhuezuyA+IHJpa2VpXCA7Civoh6rkuZcgPiBqaWpvdVwgOwor55Sj5ammID4gc2FucHVcIDsKK+S4i+mZkCA+IGthZ2VuXCA7CivkuIvpmY0gPiBrYWtvdVwgOwor5LiK6ZmiID4gam91aW5cIDsKK+iHquS4uyA+IGppc2h1XCA7Civlr7jmmocgPiBzdW5rYVwgOwor5p6256m6ID4ga2FrdXVcIDsKK+eUo+WphiA+IHNhbmJhXCA7Civmo4vlo6sgPiBraXNoaVwgOwor6LGM6LGGID4gZW5kb3VcIDsKK+S4i+mYqiA+IGdlaGFuXCA7Civlr7jmmYIgPiBzdW5qaVwgOwor5qK15a2XID4gYm9uamlcIDsKK+eUmOWtkCA+IGFtYWdvXCA7CivkvZPmuKkgPiB0YWlvblwgOwor5L6/5oSPID4gYmVuJydpXCA7Civku4HnvqkgPiBqaW5naVwgOwor5a6b54S2ID4gZW56ZW5cIDsKK+S9nOazlSA+IHNhaG91XCA7CivmpJzkuosgPiBrZW5qaVwgOwor5Li76L6eID4gc2h1amlcIDsKK+aatOmjsiA+IGJvdWluXCA7Civlr53mo7ogPiBuZWthblwgOwor5p6c57OWID4ga2F0b3VcIDsKK+S9jua4qSA+IHRlaW9uXCA7CivotbDmn7sgPiBzb3VzYVwgOwor5LiA6ZqOID4gaWtrYWlcIDsKK+acrOiotCA+IGhvbnNvXCA7CivkuIDpmoogPiBpdHRhaVwgOwor5pu56YGUID4gc291ZGFcIDsKK+eVuOS6uiA+IGtpamluXCA7CivosqfogIUgPiBoaW5qYVwgOwor5L+Q5benID4gcmlrb3VcIDsKK+S+i+aZgiA+IHJlaWppXCA7Civlrrbms5UgPiBrYWhvdVwgOwor55Sw5ZyDID4gZGVucG9cIDsKK+WxoOWgtCA+IHRvam91XCA7Civku5jnrosgPiBmdXNlblwgOwor5pyq6KaLID4gbWlrZW5cIDsKK+iAs+iFlCA+IGppa291XCA7CivkuIDploMgPiBpc3NlblwgOwor5bCR5oWwID4gc2hvdWlcIDsKK+S+ruaFoiA+IGJ1bWFuXCA7CivkvZzmrYwgPiBzYWtrYVwgOwor5qGD5p2OID4gdG91cmlcIDsKK+agoeatjCA+IGtvdWthXCA7Civnvqnph5EgPiBnaWtpblwgOwor5L+d5a6IID4gaG9zaHVcIDsKK+miqOirrSA+IGZ1dXl1XCA7CivkuJbpioAgPiBzZWdpblwgOwor5L+d5a2YID4gaG96b25cIDsKK+iCuueCjiA+IGhhaWVuXCA7CivnlJjlpKIgPiBrYW5tdVwgOwor5bCk5bqmID4geXV1ZG9cIDsKK+iAvee+jiA+IHRhbmJpXCA7Civmm6Dph44gPiBrb3V5YVwgOwor6LK057SZID4ga2lzaGlcIDsKK+aciOizpiA+IGdlcHB1XCA7CivlsZXlopMgPiB0ZW5ib1wgOwor5L6/5bqnID4gYmVuemFcIDsKK+S6lOiKkiA+IGdvYm91XCA7Civnj6rntKAgPiBrZWlzb1wgOwor5qC45p6cID4ga2Fra2FcIDsKK+WwiuaEjyA+IHNvbicnaVwgOwor6aaZ5rK5ID4ga291eXVcIDsKK+eUqOWZqCA+IHlvdWtpXCA7CivmoYjmlocgPiBhbm1vblwgOwor5Luu552hID4ga2FzdWlcIDsKK+acl+ipoCA+IHJvdWVpXCA7CivlgJLlj6UgPiB0b3VrdVwgOwor5YCS5Y+ZID4gdG91am9cIDsKK+S7ruecoCA+IGthbWluXCA7CivosrTnsKEgPiBraWthblwgOwor6IeN5LiLID4gc2Vpa2FcIDsKK+Wumua4qSA+IHRlaW9uXCA7Civku67nm7ggPiBrYXNvdVwgOwor5LqU6IeTID4gZ296b3VcIDsKK+iDjOazsyA+IGhhaWVpXCA7CivpppnmsJcgPiBrb3VraVwgOwor5Lqh6ICFID4gbW91amFcIDsKK+iGoOWMliA+IGtvdWthXCA7CivpoK3pn7sgPiB0b3VpblwgOwor5L2z5pmvID4ga2FrZWlcIDsKK+WwluW6piA+IHNlbmRvXCA7Civku5bnpL4gPiB0YXNoYVwgOwor6LGq6I+vID4gZ291a2FcIDsKK+WvjOaciSA+IGZ1eXV1XCA7CivkuJbpgJQgPiBzZWl0b1wgOwor5Luu55eYID4ga2F0b3VcIDsKK+S4h+mHjCA+IGJhbnJpXCA7CivnkIbnn6UgPiByaWNoaVwgOwor5LiY6L66ID4gb2thYmVcIDsKK+iFueWbsiA+IGZ1a3VpXCA7CivkvZDmp5ggPiBzYXlvdVwgOwor5LuP56WWID4gYnVzc29cIDsKK+mnhOaWhyA+IGRhYnVuXCA7Civnvqnou40gPiBnaWd1blwgOwor5YCN5YqgID4gYmFpa2FcIDsKK+WAreS6uiA+IHdhamluXCA7CivkuIPph40gPiBuYW5hZVwgOwor5LiL6YOOID4gZ2Vyb3VcIDsKK+S4iumDqCA+IGpvdWJ1XCA7CivpoJPppqwgPiB0b25tYVwgOwor5LiJ6YOoID4gc2FuYnVcIDsKK+iytOeoriA+IGtpc2h1XCA7CivkuI3pgZwgPiBmdXNvblwgOwor5bCE5b2xID4gc2hhZWlcIDsKK+S4jemBhyA+IGZ1Z3V1XCA7CivkuIDph40gPiBoaXRvZVwgOwor5Li76KqeID4gc2h1Z29cIDsKK+S+v+WunCA+IGJlbmdpXCA7CivpqI7lsIQgPiBraXNoYVwgOwor5a+E5pu4ID4ga2lzaG9cIDsKK+S4jemAniA+IGZ1dGVpXCA7CivlsI/lt50gPiBvZ2F3YVwgOwor5a++5b+cID4gdGFpb3VcIDsKK+S4jemAgCA+IGZ1dGFpXCA7Civnvo7phZIgPiBiaXNodVwgOwor55Ge5rCXID4genVpa2lcIDsKK+S4u+iotCA+IHNodXNvXCA7Civmmpfpm7IgPiBhbicndW5cIDsKK+iytOekviA+IGtpc2hhXCA7CivnlLflhZAgPiBkYW5qaVwgOwor5LqM6ICFID4gbmlzaGFcIDsKK+eUu+WDjyA+IGdhem91XCA7Civku5bnnIwgPiB0YWtlblwgOwor5L+z5ZGzID4gaGFpbWlcIDsKK+S9muabuCA+IGlzc2hvXCA7CivlqabpgbggPiBmdXNlblwgOwor55So5YuZID4geW91bXVcIDsKK+WppumBkyA+IGZ1ZG91XCA7CivmnZHnv4EgPiBzb25vdVwgOwor5a6J5rOwID4gYW50YWlcIDsKK+iCpea6gCA+IGhpbWFuXCA7CivkuIvovKkgPiBnZWhhaVwgOwor5a625p2lID4ga2VyYWlcIDsKK+WvvuW6pyA+IHRhaXphXCA7CivlgKTkuIogPiBuZWFnZVwgOwor55SY5ZGzID4ga2FubWlcIDsKK+S/s+WPpSA+IGhhaWt1XCA7CivkuIDpgY0gPiBpcHBlblwgOwor6ICB6IiXID4gcm91aG9cIDsKK+aal+mXmCA+IGFudG91XCA7Civmm7joqJggPiBzaG9raVwgOwor5LiL6LuKID4gZ2VzaGFcIDsKK+WwkeWwiSA+IHNob3VpXCA7CivnlJrlj6UgPiBqaW5rdVwgOwor5a625pu4ID4ga2FzaG9cIDsKK+S6m+e0sCA+IHNhc2FpXCA7CivnkIbnlLEgPiByaXl1dVwgOwor5Lq656WWID4gamluc29cIDsKK+Wwj+WwiSA+IHNob3VpXCA7CivmoKHml5cgPiBrb3VraVwgOwor5Lmx6IieID4gcmFuYnVcIDsKK+S6lOe3miA+IGdvc2VuXCA7CivnlJjlj5cgPiBrYW5qdVwgOwor5LiA6L66ID4gaXBwZW5cIDsKK+S+jeW+kyA+IGppanV1XCA7CivlraTnga8gPiBrb3RvdVwgOwor5Luj55CGID4gZGFpcmlcIDsKK+iyouennyA+IGtvdXNvXCA7CivlqIPprJ8gPiBhaWthblwgOwor5Lya5rS+ID4ga2FpaGFcIDsKK+WtkOeKrCA+IGtvaW51XCA7Civoga/nj6AgPiByZW5qdVwgOwor55So5YW3ID4geW91Z3VcIDsKK+eUu+S8miA+IGdha2FpXCA7Civku5bnlYwgPiB0YWthaVwgOwor5LqU57WDID4gZ29nZW5cIDsKK+Wwj+WtlyA+IGtvYXphXCA7CivlsYvlj7cgPiB5YWdvdVwgOwor5bGL5Y+wID4geWF0YWlcIDsKK+WwiuWutiA+IHNvbmthXCA7CivkuIDou6IgPiBpdHRlblwgOwor55S75Lq6ID4gZ2FqaW5cIDsKK+mhjOi+niA+IGRhaWppXCA7CivkuIDou5IgPiBpa2tlblwgOwor5a6f5qKFID4gbWl1bWVcIDsKK+WAi+S9kyA+IGtvdGFpXCA7CivpqI7lo6sgPiBraXNoaVwgOwor5a++5bOZID4gdGFpamlcIDsKK+eUo+WFkCA+IHNhbmppXCA7Civot6/lgo0gPiByb2JvdVwgOwor5pys6IiXID4gaG9ucG9cIDsKK+e+pOitsCA+IGd1bmdpXCA7CivkuI3osrcgPiBmdWJhaVwgOwor5a625pS/ID4ga2FzZWlcIDsKK+S4i+izpCA+IGdlc2VuXCA7Civlr53mga8gPiBuZWlraVwgOwor5LiN6LKeID4gZnV0ZWlcIDsKK+S4i+iznCA+IGthc2hpXCA7CivkuIvos44gPiBnZXNlblwgOwor5p6v54elID4ga29zb3VcIDsKK+WAi+S6uiA+IGtvamluXCA7CivmnKjoiJ4gPiBrb21haVwgOwor5L2/5b6SID4gc2hpdG9cIDsKK+iAgee/gSA+IHJvdW91XCA7Civnvr3on7sgPiBoYWFyaVwgOwor5a+b5oGVID4ga2Fuam9cIDsKK+iyu+eUqCA+IGhpeW91XCA7CivpoLjpg6ggPiBrZWlidVwgOwor5Luj54i2ID4gZGFpZnVcIDsKK+iyq+ebriA+IGthbm1lXCA7CivlsI/lp5QgPiBzaG91aVwgOwor576p6KiTID4gZ2lrdW5cIDsKK+S6iOe0jSA+IHlvbm91XCA7CivkuIfosqggPiBiYW5rYVwgOwor5LiW6KuWID4geW9yb25cIDsKK+ixiuiJtiA+IGhvdWVuXCA7Civotbflt6UgPiBraWtvdVwgOwor5p2/55uuID4gaXRhbWVcIDsKK+mgremHjSA+IHp1b21vXCA7CivmooXlnJIgPiBiYWllblwgOwor6LK055S3ID4gdGFrYW9cIDsKK+WumuacqCA+IGpvdWdpXCA7CivlrprmnJ8gPiB0ZWlraVwgOwor5bCP5aOyID4ga291cmlcIDsKK+e+juiyjCA+IGJpYm91XCA7CivlsI/lo7AgPiBrb2dvZVwgOwor5qGC5bq1ID4ga2VpYW5cIDsKK+S4gOiyqyA+IGlra2FuXCA7CivkuIrorbAgPiBqb3VnaVwgOwor55Sf5L+dID4gc2VpaG9cIDsKK+S+v+WZqCA+IGJlbmtpXCA7CivkuI7oq5YgPiB5b3JvblwgOwor5pyq6IGeID4gbWltb25cIDsKK+mfs+mfuyA+IG9uJydpblwgOwor55So5LqLID4geW91amlcIDsKK+aZr+mbsiA+IGtlaXVuXCA7CivpoK3pg6ggPiB0b3VidVwgOwor5LuU54qsID4ga29pbnVcIDsKK+S6jOetiSA+IG5pdG91XCA7CivnvarpgY4gPiB6YWlrYVwgOwor5LiK6KutID4gam91eXVcIDsKK+S/l+WMliA+IHpva2thXCA7CivlrZfmupAgPiBqaWdlblwgOwor5LqI566XID4geW9zYW5cIDsKK+mhnuiqniA+IHJ1aWdvXCA7Civot6/kuIogPiByb2pvdVwgOwor5pys576pID4gaG9uZ2lcIDsKK+izgOeKtiA+IGdham91XCA7CivlrprmmYIgPiB0ZWlqaVwgOwor5qOE5LiWID4ga2lzZWlcIDsKK+ixhuiFkCA+IHRvdWZ1XCA7Civpp4TlvIEgPiBkYWJlblwgOwor5amm6K2mID4gZnVrZWlcIDsKK+i1t+WxhSA+IGtpa3lvXCA7CivnjYTooaMgPiBnb2t1aVwgOwor5p2/55S7ID4gaGFuZ2FcIDsKK+S4jeiogCA+IGZ1Z2VuXCA7CivkvY/mjIEgPiBqdXVqaVwgOwor5L2T5oqAID4gdGFpZ2lcIDsKK+S/neWGtyA+IGhvcmVpXCA7CivkvZnmhqQgPiB5b2Z1blwgOwor5LiK6Ki0ID4gam91c29cIDsKK+S4iuiomCA+IGpvdWtpXCA7CivkvZnmhbYgPiB5b2tlaVwgOwor5L2c5oSPID4gc2FrdWlcIDsKK+S/neWFqCA+IGhvemVuXCA7CivkuoznqK4gPiBuaXNodVwgOwor5p6c54S2ID4ga2F6ZW5cIDsKK+S4jeimgSA+IGZ1eW91XCA7Civpn7Ppmo4gPiBvbmthaVwgOwor576O6KuHID4gYmlkYW5cIDsKK+WutuaGsiA+IGtha2VuXCA7CivkuojnqL8gPiB5b2tvdVwgOwor5bCO5ZugID4gZG91aW5cIDsKK+S7o+a8lCA+IGRhaWVuXCA7CivkvZnmg4UgPiB5b2pvdVwgOwor5a+h5bGFID4ga2FreW9cIDsKK+eKrOmmrCA+IGtlbmJhXCA7CivppJPni7wgPiBnYXJvdVwgOwor5bC85YOnID4gbmlzb3VcIDsKK+S/neWBpSA+IGhva2VuXCA7Civnv6Hnv6AgPiBoaXN1aVwgOwor5p6v5rehID4ga290YW5cIDsKK+mgmumDqCA+IGtlaWJ1XCA7CivmnKrnt7QgPiBtaXJlblwgOwor5LiA6KiIID4gaWtrZWlcIDsKK+e+juimsyA+IGJpa2FuXCA7CivpoJDph5EgPiB5b2tpblwgOwor5L2Z5b+1ID4geW9uZW5cIDsKK+S4i+ihjCA+IGtha291XCA7CivpoYzoqaAgPiBkYWllaVwgOwor5pyo57a/ID4gbW9tZW5cIDsKK+S4ueiKsSA+IHRhbmthXCA7CivkuIDoposgPiBpa2tlblwgOwor5Li56ImyID4gbmlpcm9cIDsKK+eOi+e1sSA+IG91dG91XCA7CivkvJrmnJ8gPiBrYWlraVwgOwor5bCB5ZyfID4gaG91ZG9cIDsKK+i2o+WRsyA+IHNodW1pXCA7Civos6Lmr40gPiBrZW5ib1wgOwor5pqX6LuiID4gYW50ZW5cIDsKK+acque0jSA+IG1pbm91XCA7Civlr77lnZAgPiB0YWl6YVwgOwor5L2Z5bymID4geW9nZW5cIDsKK+itsOmhjCA+IGdpZGFpXCA7CivogZbngasgPiBzZWlrYVwgOwor5bCP5ZSEID4ga291dGFcIDsKK+S9meW8iiA+IHlvaGVpXCA7CivohZDliJEgPiBmdWtlaVwgOwor5L2z5a65ID4ga2F5b3VcIDsKK+WutuW+kyA+IGthanV1XCA7CivotaTlrZcgPiBha2FqaVwgOwor6aSK54i2ID4geW91ZnVcIDsKK+adpeeUsSA+IHJhaXl1XCA7Civkuojnn6UgPiB5b2NoaVwgOwor5Luu5q27ID4ga2FzaGlcIDsKK+S4gOihjCA+IGlra291XCA7Civkvr/liKkgPiBiZW5yaVwgOwor5Luu5q2vID4ga2FzaGlcIDsKK+agueWtkCA+IG5la2tvXCA7Civlr7jlnJ8gPiBzdW5kb1wgOwor5L2V5bqmID4gbmFuZG9cIDsKK+S6jOebuCA+IG5pc291XCA7Civog6HluqcgPiBhZ3VyYVwgOwor6LOb5q2MID4gc2Fua2FcIDsKK+ePiueRmiA+IHNhbmdvXCA7CivmoYjlpJYgPiBhbmdhaVwgOwor5LqL55u4ID4gamlzb3VcIDsKK+WutuW6rSA+IGthdGVpXCA7Civmnq/mrbsgPiBrb3NoaVwgOwor6ISF5aiBID4ga3lvdWlcIDsKK+abs+iIqiA+IGVpa291XCA7CivnkIbms5UgPiByaWhvdVwgOwor6aKo57SAID4gZnV1a2lcIDsKK+S7o+avjSA+IGRhaWJvXCA7Civnk6blhaggPiBnYXplblwgOwor5a625bi4ID4ga2Fqb3VcIDsKK+S6uueCuiA+IGppbicnaVwgOwor5Lyd5pKtID4gZGVucGFcIDsKK+e9teiogCA+IGJhZ2VuXCA7CivpqI7lhbUgPiBraWhlaVwgOwor5L2O5bqmID4gdGVpZG9cIDsKK+ahkeWckiA+IHNvdWVuXCA7CivkupLnlKggPiBnb3lvdVwgOwor5Li7576pID4gc2h1Z2lcIDsKK+adoeeQhiA+IGpvdXJpXCA7CivlsI/li6IgPiBrb3plaVwgOwor5a+E5a+TID4ga2lndXVcIDsKK+WwiuWNkSA+IHNvbnBpXCA7CivlrabmnJ8gPiBnYWtraVwgOwor5LqM55WqID4gbmliYW5cIDsKK+aZgumZkCA+IGppZ2VuXCA7Civog4zlvowgPiBoYWlnb1wgOwor54mh6bm/ID4gb2ppa2FcIDsKK+S8geacmyA+IGtpYm91XCA7CivmnKznp5EgPiBob25rYVwgOwor5p6c5rGBID4ga2FqdXVcIDsKK+mmrOWxiyA+IHVtYXlhXCA7Civpp4XlpKsgPiBla2lmdVwgOwor5Lyd5o6IID4gZGVuanVcIDsKK+S6i+eUsSA+IGppeXV1XCA7Civkv47kuIogPiBzb2pvdVwgOwor5bCP5YikID4ga29iYW5cIDsKK+S5vueariA+IGthbnBpXCA7Civnvr3nv7wgPiB1eW9rdVwgOwor5p6d5q+bID4gZWRhZ2VcIDsKK+Wvv+WPuCA+IHN1c2hpXCA7CivkvZzlrrYgPiBzYWtrYVwgOwor6aaW5bqnID4gc2h1emFcIDsKK+aZrumBuCA+IGZ1c2VuXCA7CivpppblupwgPiBzaHVmdVwgOwor5Lqh54i2ID4gYm91ZnVcIDsKK+aZrumBjSA+IGZ1aGVuXCA7CivkvZnlr5IgPiB5b2thblwgOwor5pmC6ZaTID4gamlrYW5cIDsKK+WwgeWNsCA+IGZ1dWluXCA7CivorZzpnaIgPiBmdW1lblwgOwor5Lu75pyfID4gbmlua2lcIDsKK+i1reWcnyA+IHNoYWRvXCA7CivlrrblsYsgPiBrYW9rdVwgOwor5a625bGFID4ga2FreW9cIDsKK+iumui+niA+IHNhbmppXCA7CivogZbmsrkgPiBzZWl5dVwgOwor6IWQ5LmxID4gZnVyYW5cIDsKK+WwguWLmSA+IHNlbm11XCA7CivnjJ/omY4gPiByYWtrb1wgOwor5pmu6L66ID4gZnVoZW5cIDsKK+WvneWdiiA+IG5lYm91XCA7Civpo7Tnha4gPiBhbWVuaVwgOwor5p6i5qmfID4gc3V1a2lcIDsKK+e+pOiIniA+IGd1bmJ1XCA7CivmoLnln7ogPiBrb25raVwgOwor5L2P5bGFID4gc3VtYWlcIDsKK+iDg+W8sSA+IGlqYWt1XCA7CivkvJ3miYsgPiB0c3V0ZVwgOwor5a615a+dID4geW9pbmVcIDsKK+Wuo+W4gyA+IHNlbnB1XCA7CivotrPkuIsgPiBzb2trYVwgOwor5bCP5YOnID4ga296b3VcIDsKK+WuneW6qyA+IGhvdWtvXCA7CivpoIbot68gPiBqdW5yb1wgOwor5LiK6I23ID4gdXdhbmlcIDsKK+WutuWunSA+IGthaG91XCA7CivlsITliKkgPiBzaGFyaVwgOwor54yb6JmOID4gbW91a29cIDsKK+Wtl+abuCA+IGppc2hvXCA7CivkuIDokaYgPiBpY2hpaVwgOwor5a6u5bGFID4gbWl5YWlcIDsKK+i1pOWcsCA+IGFrYWppXCA7CivkvZDlrpggPiBzYWthblwgOwor6ISx5YWOID4gZGF0dG9cIDsKK+iBluavjSA+IHNlaWJvXCA7Civnvr3nuZQgPiBoYW9yaVwgOwor6IWL5LiLID4gZWtpa2FcIDsKK+e+qeiCoiA+IGdpc2hpXCA7CivpqI7kuZcgPiBraWpvdVwgOwor5L6N5Y+yID4gamlzaGlcIDsKK+WumOW6nCA+IGthbnB1XCA7CivmnKrnn6UgPiBtaWNoaVwgOwor5pqX6KaWID4gYW5zaGlcIDsKK+ael+aqjiA+IHJpbmdvXCA7Civku6PmoYggPiBkYWlhblwgOwor6IGW5q2MID4gc2Vpa2FcIDsKK+S7iuasoSA+IGtvbmppXCA7CivosrTmrr8gPiBraWRlblwgOwor5LiL6Ii5ID4gZ2VzZW5cIDsKK+S6i+eKryA+IGppaGFuXCA7CivpppblsL4gPiBzaHViaVwgOwor6LaK5YasID4gZXR0b3VcIDsKK+WuieW/gyA+IGFuamluXCA7CivnjK7oirEgPiBrZW5rYVwgOwor6ICz5ryPID4gamlyb3VcIDsKK+iznOaahyA+IHNoaWthXCA7CivkuIDojI4gPiBpa2tlaVwgOwor6LW35Y6fID4ga2lnZW5cIDsKK+iDuOWbsiA+IGt5b3VpXCA7CivlrZfmlbAgPiBqaXN1dVwgOwor6LKq5rGaID4gdGFuJydvXCA7Civnj63mrKEgPiBoYW5qaVwgOwor5LiL6IW/ID4ga2F0YWlcIDsKK+mkk+atuyA+IGdhc2hpXCA7CivmmJ/pm7IgPiBzZWl1blwgOwor5a+/5YOPID4ganV6b3VcIDsKK+S+oeWApCA+IGthY2hpXCA7CivkuI3og70gPiBmdW5vdVwgOwor5aaW6a2UID4geW91bWFcIDsKK+eSsOWMliA+IGthbmthXCA7CivkuIDoiZggPiBpc3NvdVwgOwor5p2l5ryUID4gcmFpZW5cIDsKK+WrjOeWkSA+IGtlbmdpXCA7Civotbfli5UgPiBraWRvdVwgOwor5Luu5pWwID4ga2FzdXVcIDsKK+S9meWhtSA+IHlvamluXCA7Civmma7os6IgPiBmdWdlblwgOwor5LiA6IisID4gaXBwYW5cIDsKK+S8keaEjyA+IGt5dXVpXCA7CivppIrmr40gPiB5b3Vib1wgOwor5a625aOwID4ga2FzZWlcIDsKK+Wun+WutiA+IGppa2thXCA7CivkuIvogqIgPiBrYXNoaVwgOwor6aCQ6KiAID4geW9nZW5cIDsKK+S4gOiHtCA+IGl0Y2hpXCA7Civpp4Xlk6EgPiBla2lpblwgOwor5Lya5b6XID4gZXRva3VcIDsKK+WvneWPsCA+IG5lZGFpXCA7CivkuIvogZ4gPiBrYWJ1blwgOwor5L2z5ZOBID4ga2FoaW5cIDsKK+WvoeWNoCA+IGthc2VuXCA7CivkuI3ogIEgPiBmdXJvdVwgOwor6LWk5ZGzID4gYWthbWlcIDsKK+itt+mAgSA+IGdvc291XCA7Civlr77kvqEgPiB0YWlrYVwgOwor5L6P5YSSID4gc2h1anVcIDsKK+WwiuS4iyA+IHNvbmthXCA7Civku5bmnZEgPiB0YXNvblwgOwor5p2c5ryPID4genVyb3VcIDsKK+WvoeWLoiA+IGthemVpXCA7CivlrpvlrZcgPiBhdGVqaVwgOwor5p+75a6aID4gc2F0ZWlcIDsKK+Wul+WutiA+IHNvdWtlXCA7Civkvo3lg6cgPiBqaXNvdVwgOwor5L2Z5ZywID4geW9jaGlcIDsKK+eJnemmrCA+IGhpbmJhXCA7Civnvo7ogrIgPiBiaWlrdVwgOwor5qGI5YiGID4gYW5idW5cIDsKK+iDveWQjyA+IG5vdXJpXCA7Civku4/mnpwgPiBidWtrYVwgOwor6ICQ54GrID4gdGFpa2FcIDsKK+iAgeeIuiA+IHJvdXlhXCA7CivogIHniLYgPiByb3VmdVwgOwor6K2m6YOoID4ga2VpYnVcIDsKK+mgreiTiyA+IHp1Z2FpXCA7CivotaTljJYgPiBzZWtrYVwgOwor55CG5pWwID4gcmlzdXVcIDsKK+S6nOa1gSA+IGFyeXV1XCA7CivotbflgrUgPiBraXNhaVwgOwor6LGh54mZID4gem91Z2VcIDsKK+S4gOiAgyA+IGlra291XCA7CivmnbHmrYwgPiB0b3VrYVwgOwor6K2m6YKPID4ga2VpcmFcIDsKK+WuieWxhSA+IGFua3lvXCA7CivmnbHmrKcgPiB0b3VvdVwgOwor6aeG5YuVID4ga3Vkb3VcIDsKK+WuueWZqCA+IHlvdWtpXCA7CivotJTlsZMgPiBoaWlraVwgOwor5a+h5YW1ID4ga2FoZWlcIDsKK+S4lue0gCA+IHNlaWtpXCA7Civku5bmlrkgPiB0YWhvdVwgOwor5LuK5pyfID4ga29ua2lcIDsKK+aenOaWrSA+IGthZGFuXCA7Civku7vmhI8gPiBuaW4nJ2lcIDsKK+mhnue4gSA+IHJ1aWVuXCA7CivkvZnllpggPiB5b3plblwgOwor6K6S6KqjID4gemFuYnVcIDsKK+S6oeavjSA+IGJvdWJvXCA7CivmnpzmlaIgPiBrYWthblwgOwor5a6J5a6aID4gYW50ZWlcIDsKK+S4i+e3miA+IGthc2VuXCA7CivkuIvnt5IgPiBzYWdlb1wgOwor5a6H5a6ZID4gdWNodXVcIDsKK+iukuiotCA+IHphbnNvXCA7CivlrpjlpbMgPiBrYW5qb1wgOwor6Z+z6KmpID4gb25zaGlcIDsKK+S4jee0lCA+IGZ1anVuXCA7CivkuI3ntI0gPiBmdW5vdVwgOwor5LyO5belID4gZ2lrb3VcIDsKK+mfs+iokyA+IG9ua3VuXCA7Civos6LmhJogPiBrZW5ndVwgOwor6IOD5aOBID4gaWhla2lcIDsKK+S9meWRvSA+IHlvbWVpXCA7CivkvJ3lrrYgPiBkZW5rYVwgOwor5p2c5rCPID4gdG91amlcIDsKK+S4jeeyiyA+IGJ1c3VpXCA7Civlppbpm7IgPiB5b3V1blwgOwor6LW05Lu7ID4gZnVuaW5cIDsKK+izpuaApyA+IGZ1c2VpXCA7CivpprTljJYgPiBqdW5rYVwgOwor5LiA57eaID4gaXNzZW5cIDsKK+S4gOe3kiA+IGlzc2hvXCA7Civku6PmiZMgPiBkYWlkYVwgOwor5Luu5oOzID4ga2Fzb3VcIDsKK+ahiOS7tiA+IGFua2VuXCA7CivnjaPnmq4gPiBqdXVoaVwgOwor5LqU5q61ID4gZ29kYW5cIDsKK+izm+aEjyA+IHNhbicnaVwgOwor5p2/5pyoID4gaGFuZ2lcIDsKK+iytOaWuSA+IGtpaG91XCA7Civpo6LmsJEgPiBraW1pblwgOwor5LiA57WxID4gaXR0b3VcIDsKK+mjm+aziSA+IGhpc2VuXCA7CivmnKrnhLYgPiBtaXplblwgOwor6aeQ5LyKID4gY2h1dWlcIDsKK+WlvemkjCA+IGtvdWppXCA7CivmmKDphY0gPiBlaWhhaVwgOwor5a625ZCbID4ga2FrdW5cIDsKK+WtpOW4hiA+IGtvaGFuXCA7CivlrrblkI0gPiBrYW1laVwgOwor5LiA57O7ID4gaWtrZWlcIDsKK+WvoeS6uiA+IGthamluXCA7Civku67mgKcgPiBrYXNlaVwgOwor5L2c5YuVID4gc2Fkb3VcIDsKK+S4gOezuCA+IGlzc2hpXCA7CivlrZflvaIgPiBqaWtlaVwgOwor5LiN562JID4gZnV0b3VcIDsKK+agoeWLmSA+IGtvdW11XCA7CivkurrmmYIgPiBuaW5qaVwgOwor576I57WGID4ga2loYW5cIDsKK+mgreiEsyA+IHp1bm91XCA7CivkvZnli6IgPiB5b3NlaVwgOwor5LiL562JID4ga2F0b3VcIDsKK+mnhuS9vyA+IGt1c2hpXCA7CivkvbPkvosgPiBrYXJlaVwgOwor5LqM5q27ID4gbmlzaGlcIDsKK+WuneWZqCA+IGhvdWtpXCA7CivmnKjngbAgPiBraWJhaVwgOwor5LiL56uvID4ga2F0YW5cIDsKK+S9meWJsCA+IHlvam91XCA7CivnvoXntJcgPiByYXNoYVwgOwor5aWH6bqXID4ga2lyZWlcIDsKK+S7leaJiyA+IHNoaXRlXCA7CivlraTls7YgPiBrb3RvdVwgOwor6aas5Yi4ID4gYmFrZW5cIDsKK+WuruWPuCA+IGd1dWppXCA7CivpppnlkbMgPiBrb3VtaVwgOwor5L2Z5YiGID4geW9idW5cIDsKK+S8neWlhyA+IGRlbmtpXCA7CivnkIbmg7MgPiByaXNvdVwgOwor5L2z5LuAID4ga2FqdXVcIDsKK+S9s+S6uiA+IGthamluXCA7CivkuIDnrqEgPiBpa2thblwgOwor5a6l5ZKMID4geXV1d2FcIDsKK+S9keWKqSA+IHl1dWpvXCA7CivmoKHlhbcgPiBrb3VndVwgOwor6K2w6KuWID4gZ2lyb25cIDsKK+S4gOetiSA+IGl0dG91XCA7Civmm7jnlLsgPiBzaG9nYVwgOwor542y54mpID4gZW1vbm9cIDsKK+iDveS6iyA+IG5vdWppXCA7Civlpa7po5sgPiBmdW5waVwgOwor6IKl5aSnID4gaGlkYWlcIDsKK+S9meWFmiA+IHlvdG91XCA7CivkvZnlhYkgPiB5b2tvdVwgOwor6LGq5rCXID4gZ291a2lcIDsKK+eQhuaApyA+IHJpc2VpXCA7CivmmYLoq5YgPiBqaXJvblwgOwor6K2m6K23ID4ga2VpZ29cIDsKK+iyoOaVsCA+IGZ1c3V1XCA7Civkuozmp5ggPiBuaXlvdVwgOwor576p55y8ID4gZ2lnYW5cIDsKK+afu+WVjyA+IHNhbW9uXCA7CivnkIblv7UgPiByaW5lblwgOwor6Z2S6aasID4gYW91bWFcIDsKK+S9juWIqSA+IHRlaXJpXCA7Civoravoqp4gPiBzZW5nb1wgOwor5pyq5rqAID4gbWltYW5cIDsKK+WutuWGhSA+IGthbmFpXCA7CivkuJbnn6UgPiBzZWNoaVwgOwor5a6a5ZOhID4gdGVpaW5cIDsKK+iyt+aJiyA+IGthaXRlXCA7CivlrrnlhIAgPiB5b3VnaVwgOwor5a6f5ZCmID4gamlwcGlcIDsKK+adpeacnyA+IHJhaWtpXCA7CivkuYPniLYgPiBkYWlmdVwgOwor5a625YWEID4ga2FrZWlcIDsKK+Wto+WtkCA+IGtpc2hpXCA7CivkupXmoYEgPiBpZ2V0YVwgOwor5pqX57+zID4gYW4nJ2VpXCA7CivmnKrmuIggPiBtaXNhaVwgOwor6LK05omAID4ga2lzaG9cIDsKK+WnieiytCA+IGFuZWtpXCA7CivmmYLoqIggPiB0b2tlaVwgOwor6ICB5q+NID4gcm91Ym9cIDsKK+S7luW/tSA+IHRhbmVuXCA7CivlrpvlkI0gPiBhdGVuYVwgOwor5aWz6ZujID4gam9uYW5cIDsKK+WltOmatyA+IGRvcmVpXCA7CivkuJbnm7ggPiBzZXNvdVwgOwor5Luy5bGFID4gbmFrYWlcIDsKK+mhleekuiA+IGtlbmppXCA7CivkuI3nn6UgPiBmdWNoaVwgOwor5a6Y5ZCPID4ga2FucmlcIDsKK+acq+a0viA+IG1hcHBhXCA7CivkvZXlgIsgPiBuYW5rb1wgOwor6Z2e6ZujID4gaGluYW5cIDsKK+S4i+efpSA+IGdlZGppXCA7CivlpKrpvJMgPiB0YWlrb1wgOwor5LiL556wID4ga2FrYW5cIDsKK+mmmeWFtyA+IGtvdWd1XCA7CivpoIjoh74gPiBzaHV5dVwgOwor5pyd5rmvID4gYXNheXVcIDsKK+S6lOabuCA+IGdvc2hvXCA7CivkupTmm7QgPiBnb2tvdVwgOwor5aWU6aasID4gaG9uYmFcIDsKK+iBluaBqSA+IHNlaW9uXCA7Civlq4zmsJcgPiBrZW5raVwgOwor5aeU6KiXID4gaXRha3VcIDsKK+S4jeecoCA+IGZ1bWluXCA7Civkupzml48gPiBhem9rdVwgOwor546L5rOVID4gb3Vob3VcIDsKK+S7geaFiCA+IGppbmppXCA7Civku67lr5MgPiBrYWd1dVwgOwor5LuP5b6SID4gYnV0dG9cIDsKK+eQhuW3pSA+IHJpa291XCA7Civmnb/miLggPiBpdGFkb1wgOwor5Lq65oiRID4gamluZ2FcIDsKK+WutuS+iyA+IGthcmVpXCA7CivosqfmiZMgPiBoaW5kYVwgOwor5L2Z5Lq6ID4geW9uaW5cIDsKK+S7luW6lyA+IHRhdGVuXCA7CivlpKfpu4QgPiBkYWlvdVwgOwor5LiK552AID4gdXdhZ2lcIDsKK+Wkp+m6uyA+IHRhaW1hXCA7CivmnKzmsJcgPiBob25raVwgOwor5Luu5a6aID4ga2F0ZWlcIDsKK+S7luW5tCA+IHRhbmVuXCA7CivogIHmqLkgPiByb3VqdVwgOwor5LuY5bivID4gZnV0YWlcIDsKK+iDjuWFkCA+IHRhaWppXCA7CivmmK/oqo0gPiB6ZW5pblwgOwor6LKg5ouFID4gZnV0YW5cIDsKK+WutuS8nSA+IGthZGVuXCA7Civmmpfnt5ogPiBhbnNlblwgOwor5LiK55uuID4gdXdhbWVcIDsKK+aghOWGoCA+IGVpa2FuXCA7CivkvY7kvqEgPiB0ZWlrYVwgOwor546L5rC0ID4gb3VzdWlcIDsKK+S7iuW+jCA+IGtvbmdvXCA7CivogZblvpIgPiBzZWl0b1wgOwor5LiW55WMID4gc2VrYWlcIDsKK+aghOWFuCA+IGVpdGVuXCA7CivlrZ/lpbMgPiBtb3Vqb1wgOwor6aOb5p2lID4gaGlyYWlcIDsKK+WutuS7pCA+IGthcmVpXCA7Civkuozmm7kgPiBuaXNvdVwgOwor5LqM5pu0ID4gbmlrb3VcIDsKK+WutOS8miA+IGVua2FpXCA7CivpnZLpm7IgPiBzZWl1blwgOwor6aas5LiKID4gYmFqb3VcIDsKK+S4iueariA+IGpvdWhpXCA7CivkuIDnn6IgPiBpc3NoaVwgOwor5L2Z5LiWID4geW9zZWlcIDsKK+mmrOS4gSA+IGJhdGVpXCA7Civlrrbku4AgPiBrYWp1dVwgOwor5qCE5YWJID4gZWlrb3VcIDsKK+WutuS6uiA+IGtlbmluXCA7CivorabooZsgPiBrZWllaVwgOwor5a2d5aWzID4ga291am9cIDsKK+S7geaBlSA+IGppbmpvXCA7CivlrZ/lpI8gPiBtb3VrYVwgOwor5paR6bOpID4gaWthcnVcIDsKK+miqOazoiA+IGZ1dWhhXCA7CivmnaXmj7QgPiByYWllblwgOwor5LuK5bqmID4ga29uZG9cIDsKK+S4i+eWsyA+IGdla2FuXCA7CivkvJrlk6EgPiBrYWlpblwgOwor5Lm+5p6vID4ga2Fua29cIDsKK+WtpOWfjiA+IGtvam91XCA7Civpn7PoibIgPiBuZWlyb1wgOwor5Lm+5p6cID4ga2Fua2FcIDsKK+iAjOadpSA+IGppcmFpXCA7CivmnZzmkrAgPiB6dXNhblwgOwor6K2O6KmQID4ga2lzc2FcIDsKK+S4iueWjyA+IGpvdXNvXCA7CivkuIvnlaogPiBrYWJhblwgOwor5LiN55SoID4gZnV5b3VcIDsKK+iAg+ahiCA+IGtvdWFuXCA7CivkuIvnlYwgPiBnZWthaVwgOwor5LiL55S3ID4gZ2VuYW5cIDsKK+S4i+eUsCA+IGdlZGVuXCA7CivkvY7kuIsgPiB0ZWlrYVwgOwor55CG5a65ID4gcml5b3VcIDsKK+aaluewviA+IG5vcmVuXCA7CivosrTlupcgPiBraXRlblwgOwor5Lm+5pyfID4ga2Fua2lcIDsKK+iAg+afuyA+IGtvdXNhXCA7Civku5blsbEgPiB0YXphblwgOwor5Lyd5Y+XID4gZGVuanVcIDsKK+S4u+a8lCA+IHNodWVuXCA7CivorJ3ovp4gPiBzaGFqaVwgOwor5LqI5patID4geW9kYW5cIDsKK+WtkOWlsyA+IHNoaWpvXCA7CivkurrlvowgPiBqaW5nb1wgOwor546L5qipID4gb3VrZW5cIDsKK+mjm+aVoyA+IGhpc2FuXCA7CivmmpfnrpcgPiBhbnphblwgOwor6IOO5LuUID4gdGFpamlcIDsKK+S7ruWjsCA+IGthc2VpXCA7CivlrIzmhYsgPiBzaGluYVwgOwor572q56eRID4gemFpa2FcIDsKK+iCpeWOmiA+IGhpa291XCA7CivosqDmgKcgPiBmdXNlaVwgOwor5LqS5o+bID4gZ29rYW5cIDsKK+e+jueUtyA+IGJpbmFuXCA7CivpnLLpoZUgPiByb2tlblwgOwor576O55SwID4gYmlkZW5cIDsKK+S8tuS/kCA+IHJlaXJpXCA7CivlpKnprZQgPiB0ZW5tYVwgOwor5a6a5L6hID4gdGVpa2FcIDsKK+mcsumgrSA+IHJvdG91XCA7Civorprnvo4gPiBzYW5iaVwgOwor5LiA55SfID4gaXNzZWlcIDsKK+WuieWFqCA+IGFuemVuXCA7CivkupTmjIcgPiBnb3NoaVwgOwor6IKy5YWQID4gaWt1amlcIDsKK+e9jOeynyA+IGtlc2hpXCA7CivlrqPkuIsgPiBzZW5nZVwgOwor5LuP5a62ID4gYnVra2VcIDsKK+eJueiomCA+IHRva2tpXCA7CivosqjluaMgPiBrYWhlaVwgOwor5a6Y5L2NID4ga2FuJydpXCA7CivkuIDnkrAgPiBpa2thblwgOwor5pei6YGCID4ga2lzdWlcIDsKK+WtteWNtSA+IGZ1cmFuXCA7CivlrozlgpkgPiBrYW5iaVwgOwor6aGM55S7ID4gZGFpZ2FcIDsKK+WlvemBiyA+IGtvdXVuXCA7CivogZblr78gPiBzZWlqdVwgOwor6aOb5o+aID4gaGl5b3VcIDsKK+eQg+WogSA+IGt5dXVpXCA7CivorLnoqbEgPiBraW53YVwgOwor5LiN54qvID4gZnVib25cIDsKK+S7iuWutSA+IGtveW9pXCA7CivlrojlgpkgPiBzaHViaVwgOwor5LqU5oiSID4gZ29rYWlcIDsKK+eMnOeWkSA+IHNhaWdpXCA7CivlrpjkuosgPiBrYW5qaVwgOwor5p2e5oaCID4ga2l5dXVcIDsKK+S7iuWtoyA+IGtvbmtpXCA7CivnkIblpJYgPiByaWdhaVwgOwor6Z2i6YOoID4gbWVuYnVcIDsKK+aYjuiomCA+IG1laWtpXCA7Civku5blp5MgPiB0YXNlaVwgOwor5aWz6YOOID4gam9yb3VcIDsKK+WkqemmrCA+IHRlbmJhXCA7CivosqHluIMgPiBzYWlmdVwgOwor5pyq5p2lID4gbWlyYWlcIDsKK+S4jeeHgyA+IGZ1bmVuXCA7CivkuIDnjK4gPiBpa2tvblwgOwor5LqU5oSfID4gZ29rYW5cIDsKK+aWvemMoCA+IHNlam91XCA7CivlronkvY8gPiBhbmp1dVwgOwor6ICz5bqVID4gaml0ZWlcIDsKK+mdnumBkyA+IGhpZG91XCA7CivkupTmg4UgPiBnb2pvdVwgOwor6Zyn6ZuwID4gbXVmdW5cIDsKK+adv+WxiyA+IGl0YXlhXCA7CivkuIDniqwgPiBpa2tlblwgOwor5LqU5oKqID4gZ29ha3VcIDsKK+WtpuWMuiA+IGdha2t1XCA7Civkurrlr78gPiBqaW5qdVwgOwor5pyJ5qmfID4geXV1a2lcIDsKK+iug+e+jiA+IHNhbmJpXCA7CivkuI7ngrkgPiB5b3RlblwgOwor5LiA54mIID4gaXBwYW5cIDsKK+S6uuWutiA+IGppbmthXCA7CivpoK3nmq4gPiB0b3VoaVwgOwor5pyq5piOID4gbWltZWlcIDsKK+S6kuaBtSA+IGdva2VpXCA7CivkuovmhYsgPiBqaXRhaVwgOwor5p6c5aCxID4ga2Fob3VcIDsKK+mdoui8qiA+IG9tb3dhXCA7Civosqflr4wgPiBoaW5wdVwgOwor54++5aC0ID4gZ2VuYmFcIDsKK+iyp+WutiA+IGhpbmthXCA7CivppIrlrrYgPiB5b3VrYVwgOwor6Kqy6aGMID4ga2FkYWlcIDsKK+mhnueBqyA+IHJ1aWthXCA7CivlrZjlkKYgPiB6b25waVwgOwor5Lqk5beuID4ga291c2FcIDsKK+adv+WtkCA+IGl0YWdvXCA7CivlpaDpg70gPiB0ZW50b1wgOwor5LqL5oOFID4gamlqb3VcIDsKK+iytOWniSA+IGtpc2hpXCA7CivkuojmhJ8gPiB5b2thblwgOwor6IGW5aScID4gc2VpeWFcIDsKK+S7iuWkjyA+IGtvbmthXCA7CivlrZflj7cgPiBqaWdvdVwgOwor5LqI5oOzID4geW9zb3VcIDsKK+S6lOW9qSA+IGdvc2FpXCA7Civku7vli5kgPiBuaW5tdVwgOwor5pa56YeMID4gaG91cmlcIDsKK+eOi+aUvyA+IG91c2VpXCA7CivlraPliIogPiBraWthblwgOwor5p625Y+wID4ga2FkYWlcIDsKK+e+jueCuSA+IGJpdGVuXCA7Civkuozlv7UgPiBuaW5lblwgOwor6Kyb6KmxID4ga291d2FcIDsKK+S4gOeCuSA+IGl0dGVuXCA7Civos5vlkKYgPiBzYW5waVwgOwor5aSn6ZuoID4gb29hbWVcIDsKK+WklemkiSA+IHl1dWdlXCA7CivlpKrpmbAgPiB0YWlpblwgOwor5pyd5pelID4gYXNhaGlcIDsKK+S7o+WToSA+IGRhaWluXCA7CivkuIrmvJQgPiBqb3VlblwgOwor6Zuy6auYID4gdW5rb3VcIDsKK+S6lOW4uCA+IGdvam91XCA7Civmlofpm4UgPiBidW5nYVwgOwor5Lqk5bC+ID4ga291YmlcIDsKK+S4jea6gCA+IGZ1bWFuXCA7CivotIjkuI4gPiB6b3V5b1wgOwor5Lmx5omTID4gcmFuZGFcIDsKK+WklumhjCA+IGdlZGFpXCA7CivniaHooKMgPiBib3JlaVwgOwor5aWu6LW3ID4gZnVua2lcIDsKK+S6uuWkqyA+IG5pbnB1XCA7CivogLblrKIgPiB5YWpvdVwgOwor5LqS5biCID4gZ29zaGlcIDsKK+mkiuWlsyA+IHlvdWpvXCA7CivlpoToqp4gPiBtb3Vnb1wgOwor6LKe5ammID4gdGVpZnVcIDsKK+e+qeawkSA+IGdpbWluXCA7CivlpJrpnaIgPiB0YW1lblwgOwor6ICz5a2UID4gamlrb3VcIDsKK+iqnumhniA+IGdvcnVpXCA7CivmlrnpgJQgPiBob3V0b1wgOwor5LuP5ZmoID4gYnVra2lcIDsKK+S6pOWunCA+IGtvdWdpXCA7Civml6XoqrIgPiBuaWtrYVwgOwor6IGv5Y+lID4gcmVua3VcIDsKK+iqnumgrSA+IGdvdG91XCA7CivkupzlsZ4gPiBhem9rdVwgOwor5pyJ5pyfID4geXV1a2lcIDsKK+izm+WKqSA+IHNhbmpvXCA7Civoqp7poIYgPiBnb2p1blwgOwor5Li75p+7ID4gc2h1c2FcIDsKK+Wto+WAmSA+IGtpa291XCA7CivlpJrpm6MgPiB0YW5hblwgOwor5a2X5YW4ID4gaml0ZW5cIDsKK+iytOWcsCA+IGtpY2hpXCA7Civku6PljbAgPiBkYWlpblwgOwor576p5q2vID4gZ2lzaGlcIDsKK+WlveiqvCA+IGtvdWdpXCA7CivkuI3mtYQgPiBmdWpvdVwgOwor5pel6KiYID4gbmlra2lcIDsKK+S7peWMlyA+IGlob2t1XCA7CivlrZDliIYgPiBrb2J1blwgOwor54yb54GrID4gbW91a2FcIDsKK+WklumcgCA+IGdhaWp1XCA7CivlrabkvY0gPiBnYWt1aVwgOwor5pys5omLID4gaG9udGVcIDsKK+adpeWtoyA+IHJhaWtpXCA7Civosp7lpbMgPiB0ZWlqb1wgOwor6Z+z56iLID4gb250ZWlcIDsKK+e/u+aEjyA+IGhvbicnaVwgOwor6KyA6K2wID4gYm91Z2lcIDsKK+S4jeazlSA+IGZ1aG91XCA7Civnvo7muK8gPiBiaWtvdVwgOwor5Luj5YuZID4gZGFpbXVcIDsKK+S4jeayuyA+IGZ1Y2hpXCA7CivnvoXmvKIgPiByYWthblwgOwor6aSs5Y+jID4ga29rb3VcIDsKK+e9ueeBvSA+IHJpc2FpXCA7CivmnKrmiJAgPiBtaXNlaVwgOwor5pyA5pyfID4gc2FpZ29cIDsKK+mbqumnhCA+IHNldHRhXCA7CivlpJXpmb0gPiB5dXVoaVwgOwor5aSc6ZaTID4geWFrYW5cIDsKK+S6oeWppiA+IGJvdWZ1XCA7CivlpYfpgYcgPiBraWd1dVwgOwor5pu45p62ID4gc2hva2FcIDsKK+iAgeW+jCA+IHJvdWdvXCA7Civku4DlmaggPiBqdXVraVwgOwor5peF6LK7ID4gcnlvaGlcIDsKK+S6leWuiCA+IGltb3JpXCA7CivpnZLosp0gPiBhb2dhaVwgOwor5LiL5rC0ID4gZ2VzdWlcIDsKK+S6lOWumCA+IGdva2FuXCA7CivlpYjovrogPiBuYWhlblwgOwor5pW06ZmkID4gc2Vpam9cIDsKK+S4jeavmyA+IGZ1bW91XCA7CivkuIvmsJEgPiBnZW1pblwgOwor5pys5oSPID4gaG9uJydpXCA7Civlq4zmgqogPiBrZW4nJ29cIDsKK+aXp+ihoyA+IGt5dXVpXCA7CivosqflnJ8gPiBoaW5kb1wgOwor5pei6KO9ID4ga2lzZWlcIDsKK+mbu+mboiA+IGRlbnJpXCA7CivkuIrmsJcgPiBqb3VraVwgOwor6aGe5q+UID4gcnVpaGlcIDsKK+mjouWvkiA+IGtpa2FuXCA7CivkuIDmtJcgPiBpc3NlblwgOwor5LiL5q6/ID4gZ2VkZW5cIDsKK+S4jeatuyA+IGZ1c2hpXCA7CivkuIvmrrUgPiBnZWRhblwgOwor6Zu26ZyyID4gcmVpcm9cIDsKK+S4jeatoyA+IGZ1c2VpXCA7CivkuozlsIEgPiBuaWZ1dVwgOwor6Zu36ZuyID4gcmFpdW5cIDsKK+Wtl+S9kyA+IGppdGFpXCA7CivmnJ/miJAgPiBraXNlaVwgOwor5LuW5YuVID4gdGFkb3VcIDsKK+mhnuatjCA+IHJ1aWthXCA7CivorIHoposgPiBla2tlblwgOwor5Lqh5aSrID4gYm91ZnVcIDsKK+S4iuatryA+IHV3YWJhXCA7Civkuozlrq4gPiBuaWd1dVwgOwor5paX6YWSID4gdG9zaHVcIDsKK+S7luWKsSA+IHRhcmVpXCA7CivkuI3mrIQgPiBmdXJhblwgOwor54+t5ZOhID4gaGFuaW5cIDsKK+irt+iqpiA+IGZ1dWp1XCA7Civlq4zlv4wgPiBrZW5naVwgOwor5LuK5Y+kID4ga2lua29cIDsKK+irruitsCA+IHNoaWdpXCA7CivkuInmrKEgPiBzYW5qaVwgOwor5LiA5rC0ID4gaXNzdWlcIDsKK+S7h+WQjSA+IGFkYW5hXCA7CivkuojlrpogPiB5b3RlaVwgOwor6LK05ZCbID4ga2lrdW5cIDsKK+aWrei3ryA+IGRhbnJvXCA7Civni7znhZkgPiByb3VlblwgOwor6LK05ZCNID4ga2ltZWlcIDsKK+iytOWPsCA+IGtpZGFpXCA7Civku67ku6QgPiB0YXRvZVwgOwor5LiA5q61ID4gaXR0YW5cIDsKK+Wls+ijhSA+IGpvc291XCA7CivniZvokqEgPiBnb2JvdVwgOwor5pqX54S2ID4gYW56ZW5cIDsKK+S4gOatuyA+IGlzc2hpXCA7CivkuIDmrbMgPiBpc3NhaVwgOwor5p2l5aC0ID4gcmFpYmFcIDsKK+iqsumHkSA+IGtha2luXCA7Civpn7Pnm6QgPiBvbmJhblwgOwor5LuL5YqpID4ga2Fpam9cIDsKK+S4h+apnyA+IGJhbmtpXCA7Civpo6/loLQgPiBoYW5iYVwgOwor576K5q2vID4gc2hpZGFcIDsKK+miqOaDhSA+IGZ1emVpXCA7Civku6PkvqEgPiBkYWlrYVwgOwor5p625LiKID4ga2Fqb3VcIDsKK+WjsOmfsyA+IHNlaW9uXCA7CivmmpfngrkgPiBhbnRlblwgOwor54u854GrID4gcm91a2FcIDsKK+S7leWEgCA+IHNoaWdpXCA7CivmmpbngokgPiBkYW5yb1wgOwor6Z2e6KGMID4gaGlrb3VcIDsKK+S5vuWtoyA+IGthbmtpXCA7CivlpKfpg6ggPiBkYWlidVwgOwor5aWJ6LOAID4gaG91Z2FcIDsKK+ixquWutiA+IGdvdWthXCA7CivmmYLnqbogPiBqaWt1dVwgOwor6Z+z55e0ID4gb25jaGlcIDsKK+acn+W+hSA+IGtpdGFpXCA7Civmlofpg6ggPiBtb25idVwgOwor5LqV5aCwID4gaXNla2lcIDsKK+Wkp+mBjiA+IHRhaWthXCA7CivmmpfmvrkgPiBhbnRhblwgOwor546L5birID4gb3VzaGlcIDsKK+ipsemhjCA+IHdhZGFpXCA7CivkuovlpKcgPiBqaWRhaVwgOwor5aSa6YeNID4gdGFqdXVcIDsKK+ipsemgrSA+IHdhdG91XCA7Civkuozlo6sgPiBuaXNoaVwgOwor5LqL5aSJID4gamloZW5cIDsKK+aZqeeUnyA+IG9rdXRlXCA7Civpm6jplpMgPiBhbWFhaVwgOwor5aaW6Im2ID4geW91ZW5cIDsKK+WklumHjiA+IGdhaXlhXCA7CivkuIvmoKEgPiBnZWtvdVwgOwor54++5L6hID4gZ2Vua2FcIDsKK+irluitsCA+IHJvbmdpXCA7CivosqDlj7cgPiBmdWdvdVwgOwor6Kmm6aOyID4gc2hpaW5cIDsKK+iqremBjiA+IGRva2thXCA7CivmmI7nvo4gPiBtZWliaVwgOwor5LuY5LyaID4gZnVrYWlcIDsKK+iytOWFrCA+IGtpa291XCA7Civoq4vosqAgPiB1a2VvaVwgOwor5Li75oiRID4gc2h1Z2FcIDsKK+mjveWSjCA+IGhvdXdhXCA7CivkuozloYEgPiBuaXJ1aVwgOwor6Kqk6YWNID4gZ29oYWlcIDsKK+iytOWFhCA+IGtpa2VpXCA7CivlpYforaYgPiBraWtlaVwgOwor6Zui6ZaTID4gcmlrYW5cIDsKK+e/u+WtlyA+IGhvbmppXCA7Civpo5vloLEgPiBoaWhvdVwgOwor6LK05YOnID4ga2lzb3VcIDsKK+e5i+i+niA+IGtlaWppXCA7Civml6Xoj68gPiBuaWtrYVwgOwor5LqI5aCxID4geW9ob3VcIDsKK+S7luS6uiA+IHRhbmluXCA7Civpm4Tpo5sgPiB5dXVoaVwgOwor5aSW6YOoID4gZ2FpYnVcIDsKK+irluiqniA+IHJvbmdvXCA7Civmm5zml6UgPiB5b3ViaVwgOwor6ICB5ammID4gcm91ZnVcIDsKK+WklumDjiA+IHVpcm91XCA7CivpnZLonb8gPiBhb2JhZVwgOwor572o5rOVID4gYW5wb3VcIDsKK+aal+a4oCA+IGFua3lvXCA7CivogIHlqYYgPiByb3ViYVwgOwor5aWH6KuHID4ga2lkYW5cIDsKK+iyoeWLmSA+IHphaW11XCA7CivkuIvmm7ggPiBnZXNob1wgOwor5Lqt5Y2IID4gdGVpZ29cIDsKK+aWveihjCA+IHNla291XCA7CivkuIDmoKEgPiBpa2tvdVwgOwor5pyA5oSbID4gc2FpYWlcIDsKK+abluaYpyA+IGFpbWFpXCA7Civml6noi5cgPiBzYW5hZVwgOwor5LiH5py2ID4gYmFuZGFcIDsKK+acrOWutiA+IGhvbmtlXCA7CivlpJbpgZMgPiBnZWRvdVwgOwor5aqa5oWLID4gYml0YWlcIDsKK+aZguefrSA+IGppdGFuXCA7CivmmpfmtpkgPiBhbnJ1aVwgOwor5pyJ5b+DID4gdXNoaW5cIDsKK+ePvuS4liA+IGdlbnplXCA7Civkuozlm54gPiBuaWthaVwgOwor54++5LiLID4gZ2Vua2FcIDsKK+aaouawlyA+IG5vbmtpXCA7CivogIHlppMgPiByb3VnaVwgOwor5pyq5a6aID4gbWl0ZWlcIDsKK+iAleWcnyA+IGtvdWRvXCA7CivmnKzlrZcgPiBob25qaVwgOwor5LiN5piTID4gZnVla2lcIDsKK+S6pOWPiSA+IGtvdXNhXCA7CivmnKrlrowgPiBtaWthblwgOwor5aWH6KiIID4ga2lrZWlcIDsKK+S4jeaYjiA+IGZ1bWVpXCA7Civosrzku5ggPiB0ZW5wdVwgOwor5pyr5a2jID4gbWFra2lcIDsKK+iAgeWlsyA+IHJvdWpvXCA7CivkuLvmgakgPiBzaHVvblwgOwor5LiA5p2vID4gaXBwYWlcIDsKK+e+juacrCA+IGJpaG9uXCA7CivkuInmmYIgPiBzYW5qaVwgOwor5LiK5pigID4gam91ZWlcIDsKK+Wlh+imsyA+IGtpa2FuXCA7CivnjovlrasgPiBvdXNvblwgOwor5LiL5pesID4gZ2VqdW5cIDsKK+S4jeaWrSA+IGZ1ZGFuXCA7CivkuIDmnKwgPiBpcHBvblwgOwor5LiN5paJID4gZnVzZWlcIDsKK+S4jeaWhyA+IGZ1YnVuXCA7CivmnZDlmaggPiB6YWlraVwgOwor5LiL5pa5ID4ga2Fob3VcIDsKK+S4jeaVtCA+IGZ1c2VpXCA7CivkuI3mlawgPiBmdWtlaVwgOwor5LiJ5pelID4gbWlra2FcIDsKK+S4gOabuSA+IGlzc291XCA7CivkuIDmm7ggPiBpc3Nob1wgOwor5pmC55u4ID4gamlzb3VcIDsKK+S4gOabtCA+IGlra291XCA7Civlp4vnpZYgPiBzaGlzb1wgOwor5LiN5pWXID4gZnVoYWlcIDsKK+S4jeaVjyA+IGZ1YmluXCA7CivlpKnos6YgPiB0ZW5wdVwgOwor6LGO5a2QID4ganVzaGlcIDsKK+ixiuWvjCA+IGhvdWZ1XCA7Civnvo7mma8gPiBiaWtlaVwgOwor6Zyy6KaLID4gcm9rZW5cIDsKK+e+qeaMmSA+IGdpa3lvXCA7CivkuIvmlL4gPiBrYWhvdVwgOwor6KuH6KmxID4gZGFud2FcIDsKK+acgOW+jCA+IHNhaWdvXCA7CivosrTkurogPiBraWppblwgOwor5pWs6YGgID4ga2VpZW5cIDsKK+acquWpmiA+IG1pa29uXCA7CivmnJ3lr50gPiBhc2FuZVwgOwor6LK45LiOID4gdGFpeW9cIDsKK+S6mOWPpCA+IGtvdWtvXCA7CivmmpbmsJcgPiBub25raVwgOwor5Lm+5Zu6ID4ga2Fua29cIDsKK+S4jeaSkyA+IGZ1dG91XCA7CivntrrpupcgPiBraXJlaVwgOwor6LKg5YK1ID4gZnVzYWlcIDsKK+S5meWtkCA+IG90b2dvXCA7CivlqZrmnJ8gPiBrb25raVwgOwor5aSn6LGGID4gZGFpenVcIDsKK+ism+e+qSA+IGtvdWdpXCA7Civpm6jph48gPiB1cnlvdVwgOwor5LiA5pemID4gaXR0YW5cIDsKK+Wlh+ihjCA+IGtpa291XCA7CivkurrkvY0gPiBqaW4nJ2lcIDsKK+e+qeaJiyA+IGdpc2h1XCA7Civnvo7mlocgPiBiaWJ1blwgOwor5LiA5pa5ID4gaXBwb3VcIDsKK+aakeawlyA+IHNob2tpXCA7CivkuIDmlqQgPiBpa2tpblwgOwor576p5oimID4gZ2lzZW5cIDsKK+S4gOaWkSA+IGlwcGFuXCA7CivkuIDmlokgPiBpc3NlaVwgOwor6Kq56KyXID4gaGlib3VcIDsKK+aXl+iJpiA+IGtpa2FuXCA7Civnt4vpr4kgPiBoaWdvaVwgOwor5LiA5pWXID4gaXBwYWlcIDsKK+e+iOaXhSA+IGtpcnlvXCA7CivkupTljYEgPiBnb2p1dVwgOwor576p5oakID4gZ2lmdW5cIDsKK+S6jOWQmyA+IG5pa3VuXCA7CivkuJbmiY0gPiBzZXNhaVwgOwor6LKr5Li7ID4ga2FuanVcIDsKK+S6jOWPtyA+IG5pZ291XCA7CivmnIDlt6YgPiBzYWlzYVwgOwor5pyq5aK+ID4gbWlrb25cIDsKK+S6oeWFkCA+IGJvdWppXCA7Civmm7jluqsgPiBzaG9rb1wgOwor5pys5aC0ID4gaG9uYmFcIDsKK+mbu+i3ryA+IGRlbnJvXCA7CivlpJbosqggPiBnYWlrYVwgOwor5LmZ5aWzID4gb3RvbWVcIDsKK+aWh+iqniA+IGJ1bmdvXCA7CivkuJbmhYsgPiBzZXRhaVwgOwor546p5ZGzID4gZ2FubWlcIDsKK+mhp+aFriA+IGtvcnlvXCA7CivoqpjotbcgPiB5dXVraVwgOwor5LiN5omNID4gZnVzYWlcIDsKK+WknOitpiA+IHlha2VpXCA7CivpmqDpoZUgPiBpbmtlblwgOwor5LiN5oimID4gZnVzZW5cIDsKK+eOi+WfjiA+IG91am91XCA7CivkuIDmjoMgPiBpc3NvdVwgOwor5LiK5omLID4gam91enVcIDsKK+acrOWcnyA+IGhvbmRvXCA7CivkuJbmg4UgPiBzZWpvdVwgOwor5LiK5oi4ID4gam91Z29cIDsKK+e+juaMmSA+IGJpa3lvXCA7CivlpJrorJ0gPiB0YXNoYVwgOwor5LiN5oarID4gZnViaW5cIDsKK+S6i+WJjSA+IGppemVuXCA7CivkuIDmjJkgPiBpa2t5b1wgOwor6Zui6L6yID4gcmlub3VcIDsKK+S4h+aIuCA+IGJhbmtvXCA7CivkuIDmjIcgPiBpc3NoaVwgOwor6Z+z5rqQID4gb25nZW5cIDsKK+S4jeaFriA+IGZ1cnlvXCA7CivogLPku4sgPiBqaWthaVwgOwor5LqM5YiGID4gbmlidW5cIDsKK+aaq+aZgiA+IHphbmppXCA7CivmmI7npLogPiBtZWlqaVwgOwor5aOu6YCUID4gc291dG9cIDsKK+S4u+WutiA+IHNodWthXCA7CivpmqDpnaIgPiBpbm1lblwgOwor5Lqk5LuYID4ga291ZnVcIDsKK+iotOmhmCA+IHNvZ2FuXCA7CivkuI3mhI0gPiBmdWJpblwgOwor576p5byfID4gZ2l0ZWlcIDsKK+eItuiAgSA+IGZ1cm91XCA7CivnjoflnJ8gPiBzb3R0b1wgOwor5Lqk5LqSID4ga291Z29cIDsKK+iqpOiqjSA+IGdvbmluXCA7Civpm6rouI8gPiBzZXR0YVwgOwor5aSp6KGjID4gdGVuJydpXCA7CivpnaLnvbUgPiBtZW5iYVwgOwor5LiA5omNID4gaXNzYWlcIDsKK+S6i+WFuCA+IGppdGVuXCA7CivlpJboqp4gPiBnYWlnb1wgOwor5aSa6KiAID4gdGFnZW5cIDsKK+S4gOaIpiA+IGlzc2VuXCA7CivkuIvmg4UgPiBrYWpvdVwgOwor5LqU5YCrID4gZ29yaW5cIDsKK+iAleWFtyA+IGtvdWd1XCA7CivkupTlgI0gPiBnb2JhaVwgOwor6aCG5qyhID4ganVuamlcIDsKK+eKoOeJsiA+IGdpc2VpXCA7CivoqqTop6MgPiBnb2thaVwgOwor6Kqj6KiAID4gZnVnZW5cIDsKK+abuOWutiA+IHNob2thXCA7CivpoZjmhI8gPiBnYW4nJ2lcIDsKK+iqnuiqjCA+IGdvc2hpXCA7Civoqa3pgZMgPiBraWRvdVwgOwor5Li75ammID4gc2h1ZnVcIDsKK+aZr+awlyA+IGtlaWtpXCA7CivkuI3lv6sgPiBmdWthaVwgOwor6aKo5ZyfID4gZnV1ZG9cIDsKK+S4reWwiSA+IGNodXVpXCA7Civpm6Pot68gPiBuYW5yb1wgOwor54eD6LK7ID4gbmVucGlcIDsKK+e+juaEnyA+IGJpa2FuXCA7CivmnInlpKsgPiB5dXVmdVwgOwor5LqU5L2TID4gZ290YWlcIDsKK+iAgeWMliA+IHJvdWthXCA7CivmnInlpI8gPiB5dXVrYVwgOwor5auM5ZGzID4gaXlhbWlcIDsKK+S4gOaEjyA+IGljaGlpXCA7Civmma7mrrUgPiBmdWRhblwgOwor5LqM5YCNID4gbmliYWlcIDsKK+iumuatjCA+IHNhbmthXCA7CivkuIvlvqEgPiBnZWd5b1wgOwor546p5YW3ID4gZ2FuZ3VcIDsKK+iprei+ryA+IGtpYmVuXCA7CivkuI3lvZMgPiBmdXRvdVwgOwor5aWl576pID4gb2t1Z2lcIDsKK+mbu+ipsSA+IGRlbndhXCA7CivkuJbluK8gPiBzZXRhaVwgOwor5pmC54K5ID4gaml0ZW5cIDsKK+aVrOiqniA+IGtlaWdvXCA7CivlpJzooYwgPiB5YWtvdVwgOwor54yb5omTID4gbW91ZGFcIDsKK+mcgOimgSA+IGp1eW91XCA7CivlpKfom4cgPiBkYWlqYVwgOwor5LiL5bymID4ga2FnZW5cIDsKK+acseWNsCA+IHNodWluXCA7CivkuovkvosgPiBqaXJlaVwgOwor5aSW6KKrID4gZ2FpaGlcIDsKK+S6i+S9kyA+IGppdGFpXCA7CivmnIDlpJogPiBzYWl0YVwgOwor54m555WwID4gdG9rdWlcIDsKK+S4jeW5uCA+IGZ1a291XCA7CivpoqjllqkgPiBmdXV5dVwgOwor5LiN5bmzID4gZnVoZWlcIDsKK+mhleW+riA+IGtlbmJpXCA7CivlpbPns7sgPiBqb2tlaVwgOwor6LC35ZywID4geWFjaGlcIDsKK+S4iuW6pyA+IGpvdXphXCA7CivnuIHovrogPiBlbnBlblwgOwor6ZuE6YCUID4geXV1dG9cIDsKK+S6i+S7tiA+IGppa2VuXCA7CivkuInluqYgPiBzYW5kb1wgOwor5LiJ5bqcID4gc2FucHVcIDsKK+aUr+mDqCA+IHNoaWJ1XCA7Civnvo7lvaIgPiBiaWtlaVwgOwor5aq+5ZKMID4ga291d2FcIDsKK+eItuezuyA+IGZ1a2VpXCA7CivkuZflk6EgPiBqb3VpblwgOwor5LqI5LukID4geW9yZWlcIDsKK+aUr+mCoyA+IHNoaW5hXCA7CivkuIvlt7sgPiBnZWthblwgOwor5LqM5LmXID4gbmlqb3VcIDsKK+S4iuW4gyA+IGpvdWZ1XCA7CivogIHlhJIgPiByb3VqdVwgOwor5pys5YuZID4gaG9ubXVcIDsKK+S6jOS4liA+IG5pc2VpXCA7CivkuozkuIkgPiBuaXNhblwgOwor6K2y5rihID4gam91dG9cIDsKK+miqOWRsyA+IGZ1dW1pXCA7CivnvqnlrZAgPiBnaXNoaVwgOwor5Lmd5Y2BID4ga3VqdXVcIDsKK+e9ueaCoyA+IHJpa2FuXCA7CivmnKrliLAgPiBtaXRvdVwgOwor6K235rOVID4gZ29ob3VcIDsKK+iAjOS7iiA+IGppa29uXCA7CivosZrlhZAgPiB0b25qaVwgOwor5LiA5bivID4gaXR0YWlcIDsKK+iug+atjCA+IHNhbmthXCA7Civml7rnm5sgPiBvdXNlaVwgOwor5pyq5YiKID4gbWlrYW5cIDsKK+mbo+iqniA+IG5hbmdvXCA7CivmlYXosrcgPiBrb2JhaVwgOwor6ZuR6LK7ID4gemFwcGlcIDsKK+eOi+WItiA+IG91c2VpXCA7CivkuLvlm6AgPiBzaHVpblwgOwor5pyx5YSSID4gc2h1anVcIDsKK+mbkeiyqCA+IHpha2thXCA7CivlpYfogZ4gPiBraWJ1blwgOwor5LiN5bC9ID4gZnVqaW5cIDsKK+S4i+WxsSA+IGdlemFuXCA7CivmlZfoqLQgPiBoYWlzb1wgOwor5LiL5bGkID4ga2Fzb3VcIDsKK+WjsOiqiSA+IHNlaXlvXCA7Civpm4XotqMgPiBnYXNodVwgOwor5LiK5bGLID4gdXdheWFcIDsKK+eOi+WGoCA+IG91a2FuXCA7CivpoqjljJYgPiBmdXVrYVwgOwor5aOu6KqeID4gc291Z29cIDsKK+S5l+WLmSA+IGpvdW11XCA7CivmmrTlvpIgPiBib3V0b1wgOwor546L5YWsID4gb3Vrb3VcIDsKK+e+qeWniSA+IGdpc2hpXCA7CivkuI3lrqMgPiBmdXNlblwgOwor576p5aa5ID4gZ2ltYWlcIDsKK+eOi+WFmiA+IG91dG91XCA7CivkuI3lrpogPiBmdXRlaVwgOwor5LiJ5bCJID4gc2FuJydpXCA7CivpmbrpmLsgPiBrZW5zb1wgOwor5LiN5a2dID4gZnVrb3VcIDsKK+S4h+WvvyA+IGJhbmp1XCA7Civoqa7orbAgPiBzZW5naVwgOwor6aGe5a2XID4gcnVpamlcIDsKK+mZjemtlCA+IGdvdW1hXCA7CivlpKnoirEgPiB0ZW5rYVwgOwor6Z+z5qCTID4gb25zZW5cIDsKK+e+qeWjqyA+IGdpc2hpXCA7CivkuIDlsaQgPiBpc3NvdVwgOwor6Z+75pu4ID4gaW5zaG9cIDsKK+aWveexsyA+IHNlbWFpXCA7CivoqZ7os6YgPiBzaGlmdVwgOwor5pyf5YaFID4ga2luYWlcIDsKK+aXouefpSA+IGtpY2hpXCA7CivorbLmrakgPiBqb3Vob1wgOwor6Kmt6KyAID4ga2lib3VcIDsKK+aWh+iLkSA+IGJ1bmVuXCA7CivpnZnnqY8gPiBzZWlvblwgOwor5py65LiKID4ga2lqb3VcIDsKK+mZsOmZuiA+IGlua2VuXCA7CivkuIDlsIkgPiBpY2hpaVwgOwor5LiA5bCBID4gaXBwdXVcIDsKK+e+juWuuSA+IGJpeW91XCA7CivmmanmnJ8gPiBiYW5raVwgOwor57mB6I+vID4gaGFua2FcIDsKK+mgu+W6piA+IGhpbmRvXCA7Civoq4fnvqkgPiBkYW5naVwgOwor6Zqg6YGBID4gaW50b25cIDsKK+mdnuekvCA+IGhpcmVpXCA7CivmnKzkvY0gPiBob24nJ2lcIDsKK+S4gOWumiA+IGl0dGVpXCA7Civnjovkvq8gPiBvdWtvdVwgOwor6aCT5oyrID4gdG9uemFcIDsKK+S4geWtlyA+IHRlaWppXCA7Civpm5HoqJggPiB6YWtraVwgOwor5LiN5aeZID4gZnVuaW5cIDsKK+maoOmAgCA+IGludGFpXCA7CivpnbHnmq4gPiBqaW5waVwgOwor6aKo5YSAID4gZnV1Z2lcIDsKK+ipqeiqniA+IHNoaWdvXCA7Civoqa3oqIggPiBraWtlaVwgOwor6Zmk6ZycID4gam9zb3VcIDsKK+WogeacjSA+IGlmdWt1XCA7CivpmaTpnIogPiBqb3JlaVwgOwor5LiN5aaKID4gZnVuaW5cIDsKK+WhqemhniA+IGVucnVpXCA7CivpmbDploAgPiBpbm1vblwgOwor5pen55e+ID4ga3l1dWFcIDsKK+mfu+aWhyA+IGluYnVuXCA7CivnuIHoq4cgPiBlbmRhblwgOwor6Z2t55quID4gamlucGlcIDsKK+acgOWPpCA+IHNhaWtvXCA7CivnuYHojIIgPiBoYW5tb1wgOwor5aSa6Iq4ID4gdGFnZWlcIDsKK+mZpOmaiiA+IGpvdGFpXCA7CivlqZrlrrYgPiBrb25rYVwgOwor5LiN5aSJID4gZnVoZW5cIDsKK+mhjOWtlyA+IGRhaWppXCA7CivkuInlpbMgPiBzYW5qb1wgOwor5aSW6IuRID4gZ2FpZW5cIDsKK+acq+S4liA+IG1hc3NlXCA7CivmnInliKkgPiB5dXVyaVwgOwor5LiL5aOrID4ga2FzaGlcIDsKK+S4ieWkjyA+IHNhbmthXCA7CivniaHniZsgPiBvdXNoaVwgOwor5LiH5aSrID4gYmFucHVcIDsKK+S4u+WLmSA+IHNodW11XCA7CivniYjnlLsgPiBoYW5nYVwgOwor6Kut56S6ID4geXVzaGlcIDsKK+mbu+iNtyA+IGRlbmthXCA7Civpm4XoqIAgPiBnYWdlblwgOwor5LiN5aCqID4gZnVrYW5cIDsKK+aal+W9sSA+IGFuJydlaVwgOwor6Z2S56OBID4gc2VpamlcIDsKK+eEoemiqCA+IG11ZnV1XCA7CivpnaLnmq4gPiBtZW5waVwgOwor6aCt5be+ID4genVraW5cIDsKK+Wkp+e+qSA+IHRhaWdpXCA7CivnhKHpoZ4gPiBtdXJ1aVwgOwor576O5aSnID4gYmlkYWlcIDsKK+e3mui3ryA+IHNlbnJvXCA7CivnhKHpoYwgPiBtdWRhaVwgOwor54Sh6aC8ID4gYnVyYWlcIDsKK+ippuijnCA+IHNoaWhvXCA7CivpoJHmhJogPiBnYW5ndVwgOwor5LiA5aSpID4gaXR0ZW5cIDsKK+e+juWjsCA+IGJpc2VpXCA7CivlpJrog70gPiB0YW5vdVwgOwor5LiL5Z+OID4gZ2Vqb3VcIDsKK+aYr+atoyA+IHplc2VpXCA7CivkuIDlpIkgPiBpcHBlblwgOwor57235a6YID4gaGlrYW5cIDsKK+aVo+iPryA+IHNhbmdlXCA7CivkuIDlo6sgPiBpc3NoaVwgOwor5LiL5Z6CID4ga2FzdWlcIDsKK+Wkj+iHsyA+IGdlc2hpXCA7Civnt4/ouqsgPiBzb3VtaVwgOwor5LiN5ZyoID4gZnV6YWlcIDsKK+S4reWMuyA+IGNodXVpXCA7CivoqqTogZ4gPiBnb2J1blwgOwor5LiA5aCxID4gaXBwb3VcIDsKK+S4iuWbsyA+IGpvdXp1XCA7CivpnaLnlLsgPiBtZW5nYVwgOwor54WZ6YGTID4gZW5kb3VcIDsKK+Wls+eUnyA+IGpvc2VpXCA7CivnhKHpm7sgPiBtdWRlblwgOwor54Sh6ZujID4gYnVuYW5cIDsKK+WkluiAsyA+IGdhaWppXCA7CivpnZ7nlaogPiBoaWJhblwgOwor6aGn5ZWPID4ga29tb25cIDsKK+acieS+oSA+IHl1dWthXCA7CivmnInkvZkgPiB5dXV5b1wgOwor6Kej6ZuiID4ga2FpcmlcIDsKK+eEoemZkCA+IG11Z2VuXCA7Civop6Ppm4cgPiBrYWlrb1wgOwor5LiN5ZaEID4gZnV6ZW5cIDsKK+mbquiKsSA+IHNla2thXCA7Civmm6Dlj6QgPiBrb3Vrb1wgOwor6Kej6ZmkID4ga2Fpam9cIDsKK+S4jeWVjyA+IGZ1bW9uXCA7CivkuIDlm54gPiBpa2thaVwgOwor6ZmE6ZqPID4gZnV6dWlcIDsKK+e5iue2rSA+IHNlbicnaVwgOwor5pyJ5LqLID4geXV1amlcIDsKK+S4i+WVjyA+IGthbW9uXCA7CivmmI7msrsgPiBtZWlqaVwgOwor5LiZ5Y2IID4gaGVpZ29cIDsKK+e+qeWLhyA+IGdpeXV1XCA7CivpoJLluIMgPiBoYW5wdVwgOwor6KuW56C0ID4gcm9ucGFcIDsKK+e9teWjsCA+IGJhc2VpXCA7CivkuIvlk4EgPiBnZWhpblwgOwor6Ziy6Z+zID4gYm91b25cIDsKK+aciOS4iyA+IGdla2thXCA7CivoqJjovIkgPiBraXNhaVwgOwor6KiT6L6eID4ga3VuamlcIDsKK+WkoueyviA+IG11c2VpXCA7CivkuIvlkb0gPiBrYW1laVwgOwor5Li75LqLID4gc2h1amlcIDsKK+Wklue4gSA+IGdhaWVuXCA7CivkuI3lkIwgPiBmdWRvdVwgOwor6Z+z5oSfID4gb25rYW5cIDsKK+aZguaWhyA+IGppYnVuXCA7CivlpYfnn6UgPiBraWNoaVwgOwor57eP6K2cID4gc291ZnVcIDsKK+S4i+WQkSA+IGdla291XCA7CivkuIvlkI0gPiBrYW1laVwgOwor6Kyb5ryUID4ga291ZW5cIDsKK+S4jeWPgiA+IGZ1c2FuXCA7CivpoIbluo8gPiBqdW5qb1wgOwor6aGe5Y+lID4gcnVpa3VcIDsKK+S4iuWPpSA+IGpvdWt1XCA7CivkuIrlj6QgPiBqb3Vrb1wgOwor5pyA5LiLID4gc2Fpa2FcIDsKK+maoOimiyA+IGlua2VuXCA7CivnvqnlhbUgPiBnaWhlaVwgOwor5LiJ5Y+JID4gc2Fuc2FcIDsKK+S4gOWTgSA+IGlwcGluXCA7CivnvqnlhYQgPiBnaWtlaVwgOwor5LiH5Y+kID4gYmFua29cIDsKK+mZuui3ryA+IGtlbnJvXCA7Civlp4vmnJ8gPiBzaGlraVwgOwor5LiL5Y2KID4ga2FoYW5cIDsKK+mYsumZpCA+IGJvdWpvXCA7CivkuI3li6IgPiBidXplaVwgOwor6Kmx6Iq4ID4gd2FnZWlcIDsKK+S4jeWLlSA+IGZ1ZG91XCA7CivkuI3lirQgPiBmdXJvdVwgOwor576O5ZCNID4gYmltZWlcIDsKK+WhqemFuCA+IGVuc2FuXCA7CivlpKfnqbQgPiBvb2FuYVwgOwor54yq5Y+jID4gY2hva29cIDsKK+mcsuebpCA+IHJvYmFuXCA7CivkuIfljJYgPiBiYW5rYVwgOwor5aiB5b6zID4gaXRva3VcIDsKK+S4gOWPjSA+IGl0dGFuXCA7CivkuIDlj4wgPiBpc3NvdVwgOwor5pak55uuID4ga2lubWVcIDsKK+eJp+atjCA+IGJva2thXCA7CivkuIvliaQgPiBnZXphaVwgOwor54Sh6YqtID4gbXVzZW5cIDsKK+WgtOmdoiA+IGJhbWVuXCA7CivoqIDovp4gPiBnZW5qaVwgOwor6Kqy56iOID4ga2F6ZWlcIDsKK+iqsueoiyA+IGthdGVpXCA7CivnhKHpipggPiBtdW1laVwgOwor6Kqk566XID4gZ29zYW5cIDsKK+S4jeWHoSA+IGZ1Ym9uXCA7CivniKrniZkgPiBzb3VnYVwgOwor5aSq56WWID4gdGFpc29cIDsKK+aal+WknCA+IGFuJyd5YVwgOwor5LiN5YeNID4gZnV0b3VcIDsKK+WkqeelliA+IHRlbnNvXCA7CivkuIDljYogPiBpcHBhblwgOwor5LiA5Y2DID4gaXNzZW5cIDsKK+WmluawlyA+IHlvdWtpXCA7Civlpb3mvJQgPiBrb3VlblwgOwor6Kqk562UID4gZ290b3VcIDsKK+aWh+enkSA+IGJ1bmthXCA7CivorbfmhrIgPiBnb2tlblwgOwor5aSa56uvID4gdGF0YW5cIDsKK+S4juWFmiA+IHlvdG91XCA7CivkuI3lhaggPiBmdXplblwgOwor6Kmg6I2JID4gZWlzb3VcIDsKK+S4jeWFmiA+IGZ1dG91XCA7Civpm4ToirEgPiBvYmFuYVwgOwor5pei5riIID4ga2lzYWlcIDsKK+Wjrue+jiA+IHNvdWJpXCA7CivlopPoqowgPiBib3NoaVwgOwor5aSa56iuID4gdGFzaHVcIDsKK+e2uuirhyA+IGtpZGFuXCA7CivnhKHphY0gPiBtdWhhaVwgOwor54qv5oSPID4gaGFuJydpXCA7CivkuIvlg6cgPiBnZXNvdVwgOwor576p5Lq6ID4gZ2lqaW5cIDsKK+S4gOWIhyA+IGlzc2FpXCA7CivkuIDliIYgPiBpcHB1blwgOwor5LiA5YiAID4gaXR0b3VcIDsKK+Wlh+eRniA+IGtpenVpXCA7Civoq5bnkIYgPiByb25yaVwgOwor5aSn56C0ID4gdGFpaGFcIDsKK+S4jeWBjyA+IGZ1aGVuXCA7Civpm4Xoh7QgPiBnYWNoaVwgOwor5LiN5YCrID4gZnVyaW5cIDsKK+ipseiAhSA+IHdhc2hhXCA7CivnvbLlk6EgPiBzaG9pblwgOwor6Kyb5q2mID4ga291YnVcIDsKK+aXpeazoiA+IG5pcHBvXCA7CivkuJbku6MgPiBzZWRhaVwgOwor5LiA5YaNID4gaXNzYWlcIDsKK+S4luS6uiA+IHNlamluXCA7CivmlYXogIEgPiBrb3JvdVwgOwor54y/5Lq6ID4gZW5qaW5cIDsKK+aYn+aWlyA+IHNlaXRvXCA7CivkuIrlgKQgPiB1d2FuZVwgOwor5LiA5YWaID4gaXR0b3VcIDsKK+eEoemBkyA+IG11ZG91XCA7CivkuI3kvr8gPiBmdWJlblwgOwor6KiO6K2wID4gdG91Z2lcIDsKK+Wil+ijnCA+IHpvdWhvXCA7CivkuI3kvosgPiBmdXJlaVwgOwor57mU55uuID4gb3JpbWVcIDsKK+e2mei1tyA+IGtlaWtpXCA7CivoqJPoqbEgPiBrdW53YVwgOwor54Sh6L66ID4gbXVoZW5cIDsKK+S4luS4iiA+IHNlam91XCA7CivkuI7ku7YgPiB5b2tlblwgOwor5LiL5L2TID4ga2F0YWlcIDsKK+mhnuS8vCA+IHJ1aWppXCA7CivpmqDolL0gPiBpbnBlaVwgOwor576F5YW4ID4gcmF0ZW5cIDsKK+mZsOisgCA+IGluYm91XCA7CivoqJPoqYEgPiBrdW5rb1wgOwor5LiJ5L2QID4gc2Fuc2FcIDsKK+S4ieS9jSA+IHNhbm1pXCA7CivlqJHlqYYgPiBzaGFiYVwgOwor5LiN5LuBID4gZnVqaW5cIDsKK+S4iOS9mSA+IGpvdXlvXCA7CivmmI7mmpcgPiBtZWlhblwgOwor5aaT5qW8ID4gZ2lyb3VcIDsKK+aWh+ebriA+IGF5YW1lXCA7Civlpb3msJcgPiBrb3VraVwgOwor54y25LqIID4geXV1eW9cIDsKK+WkieenuyA+IGhlbicnaVwgOwor6ZmE6L+RID4gZnVraW5cIDsKK+S4i+S6uiA+IGdlbmluXCA7CivmmrTliKkgPiBib3VyaVwgOwor5pqX5ZapID4gYW4nJ3l1XCA7CivloZHpgKAgPiBzb3pvdVwgOwor5ama5YSAID4ga29uZ2lcIDsKK+S4i+S5lyA+IGdlam91XCA7Civmk6zoo70gPiBnaXNlaVwgOwor57SZ6a2aID4gc2hpbWlcIDsKK+S4h+S6iyA+IGJhbmppXCA7Civmk6zoo4UgPiBnaXNvdVwgOwor5LiA5L2TID4gaXR0YWlcIDsKK+S4gOS9jSA+IGljaGlpXCA7Civoq7jmtL4gPiBzaG9oYVwgOwor5LiK5LiLID4gam91Z2VcIDsKK+WknOeblyA+IHlhdG91XCA7CivkuInkuJYgPiBzYW56ZVwgOwor6Zu756OBID4gZGVuamlcIDsKK+aZtOWknCA+IHNlaXlhXCA7CivlqabkurogPiBmdWppblwgOwor6aCR5Zu6ID4gZ2Fua29cIDsKK+aZguW8iiA+IGppaGVpXCA7CivkuIDku7YgPiBpa2tlblwgOwor576O5Lq6ID4gYmlqaW5cIDsKK+S4gOS7iyA+IGlra2FpXCA7CivnvbflhY0gPiBoaW1lblwgOwor5aSn55O2ID4gb29iaW5cIDsKK+iogOiqniA+IGdlbmdvXCA7Civlpb3mqZ8gPiBrb3VraVwgOwor5pWF57SZID4ga29zaGlcIDsKK+Wkt+eLhCA+IGl0ZWtpXCA7CivmmpflkJsgPiBhbmt1blwgOwor5aSW55quID4gZ2FpaGlcIDsKK+aal+WQiCA+IGFuZ291XCA7Civmmpflj7cgPiBhbmdvdVwgOwor6K235bK4ID4gZ29nYW5cIDsKK+S4gOS4liA+IGlzc2VpXCA7CivnianmlYUgPiBidWtrb1wgOwor5aSp55CGID4gdGVucmlcIDsKK+Wkj+ecoCA+IGthbWluXCA7CivntKDppIogPiBzb3lvdVwgOwor5aeQ5b6hID4gYW5lZ29cIDsKK+WknOeVqiA+IHlvYmFuXCA7CivpnLLngrkgPiByb3RlblwgOwor5pmp5aSPID4gYmFua2FcIDsKK+mfs+WkpyA+IG9uZGFpXCA7Civpn7Plo7AgPiBvbnNlaVwgOwor5paH55CGID4gYnVucmlcIDsKK+WkmueUqCA+IHRheW91XCA7CivlpJrnlKMgPiB0YXNhblwgOwor5aSn546LID4gZGFpb3VcIDsKK+e9teWAkiA+IGJhdG91XCA7CivntKDpoZQgPiBzdWdhb1wgOwor5pS557WEID4ga2Fpc29cIDsKK+e0q+mbsiA+IHNoaXVuXCA7Civnt6jogIUgPiBoZW5qYVwgOwor5aWz5qipID4gam9rZW5cIDsKK+iqpOeUqCA+IGdveW91XCA7Civlp4nlvqEgPiBhbmVnb1wgOwor5aSW55WMID4gZ2VrYWlcIDsKK+aTgeittyA+IHlvdWdvXCA7CivlpKnni5cgPiB0ZW5ndVwgOwor54i25qipID4gZnVrZW5cIDsKK+WlpeatryA+IG9rdWJhXCA7Civml6nmnJ8gPiBzb3VraVwgOwor57Sg6Z2iID4gc3VtZW5cIDsKK+itsOWumiA+IGdpdGVpXCA7CivlpKnniLYgPiB0ZW5wdVwgOwor6ZyA55SoID4ganV5b3VcIDsKK+e4q+ebriA+IG51aW1lXCA7CivnhKHorIAgPiBtdWJvdVwgOwor5peF5qyhID4gcnlvamlcIDsKK+aXpeacrCA+IG5paG9uXCA7CivniYjmnKggPiBoYW5naVwgOwor6Z2I5rCjID4gcmVpa2lcIDsKK+eEoeirliA+IG11cm9uXCA7CivpnZ7mpa0gPiBoaWdvdVwgOwor5aGr6KOcID4gdGVucG9cIDsKK+mbo+egtCA+IG5hbnBhXCA7Civml6bmmq4gPiB0YW5ib1wgOwor5aSJ55WwID4gaGVuJydpXCA7Civml6LmnJsgPiBraWJvdVwgOwor6Zmb6KGbID4gaGVpZWlcIDsKK+ezuOmtmiA+IGl0b3lvXCA7Civpm6jnnYAgPiBhbWFnaVwgOwor5aiB5ZynID4gaWF0c3VcIDsKK+WlveacnyA+IGtvdWtpXCA7Civlp6blqaYgPiBrYW5wdVwgOwor6Kej6KqeID4ga2FpZ29cIDsKK+aVtOeQhiA+IHNlaXJpXCA7CivnhKHoqIAgPiBtdWdvblwgOwor5aaC5pivID4gbnlvemVcIDsKK+eIvuadpSA+IGppcmFpXCA7CivniYfmmYIgPiBoZW5qaVwgOwor57a/6IqxID4gbWVua2FcIDsKK+mZsOiUvSA+IGlucGVpXCA7CivlpKnngrogPiB0ZW4nJ2lcIDsKK+WogeWahyA+IGlrYWt1XCA7CivnhKHoppYgPiBtdXNoaVwgOwor5pWw55CGID4gc3V1cmlcIDsKK+e1jOmBjiA+IGtlaWthXCA7CivnhrHnoIIgPiBuZXNzYVwgOwor5pif5bqnID4gc2VpemFcIDsKK+WkqeeBqyA+IHRlbnBpXCA7Civln6DpoK0gPiBmdXRvdVwgOwor54yK5LiLID4gZ2Vpa2FcIDsKK+mZhOiogCA+IGZ1Z2VuXCA7CivlpKfngasgPiB0YWlrYVwgOwor5aem5aSrID4ga2FucHVcIDsKK+mghuWMliA+IGp1bmthXCA7CivpmLLorbcgPiBib3Vnb1wgOwor6Z2e5pybID4gaGlib3VcIDsKK+mgreS4iiA+IHp1am91XCA7CivorbDlo6sgPiBnaXNoaVwgOwor5pmC5aW9ID4gamlrb3VcIDsKK+mdkuaihSA+IGFvdW1lXCA7CivloZfoo4UgPiB0b3NvdVwgOwor6Kmp56KRID4gc2hpaGlcIDsKK+aVheefpSA+IGtvY2hpXCA7CivpmqDnt5ogPiBpbnNlblwgOwor5aWR5qmfID4ga2Vpa2lcIDsKK+imlumHjiA+IHNoaXlhXCA7CivorbDloLQgPiBnaWpvdVwgOwor5pG46YCgID4gbW96b3VcIDsKK+mZsOiMjiA+IGlua2VpXCA7CivmlqfmraMgPiBmdXNlaVwgOwor6Z2S5p6cID4gc2Vpa2FcIDsKK+eHoOeBqyA+IG9raWJpXCA7Civpn7PlkI0gPiBvbm1laVwgOwor5piO5bqmID4gbWVpZG9cIDsKK+WmpeW9kyA+IGRhdG91XCA7CivmmYLloLEgPiBqaWhvdVwgOwor57WM6LevID4ga2Vpcm9cIDsKK+aWr+anmCA+IGtheW91XCA7CivloanolLUgPiBlbnpvdVwgOwor5pig5bCEID4gZWlzaGFcIDsKK+mgkuS+oSA+IGhhbmthXCA7Civoq7rmlocgPiBvbm1vblwgOwor5aKo57W1ID4gc3VtaWVcIDsKK+e0sOmDqCA+IHNhaWJ1XCA7Civnt7Tno6ggPiByZW5tYVwgOwor6Zmk6I2JID4gam9zb3VcIDsKK+itj+WrjCA+IGtpZ2VuXCA7CivlpaXml6ggPiBvdXNoaVwgOwor5Z+66YeRID4ga2lraW5cIDsKK+e1jOiyuyA+IGtlaWhpXCA7CivoqJjogIUgPiBraXNoYVwgOwor6Kyd5oGpID4gc2hhb25cIDsKK+aYhuW4gyA+IGtvbmJ1XCA7Civpm7LnhZkgPiB1bicnZW5cIDsKK+WkqeaysyA+IHRlbmdhXCA7Civoq63ml6ggPiB5dXNoaVwgOwor54eQ54GrID4gcmlua2FcIDsKK+WlveaJkyA+IGtvdWRhXCA7Civml6LmiJAgPiBraXNlaVwgOwor6Ziy6KGbID4gYm91ZWlcIDsKK+Wkp+aysyA+IHRhaWdhXCA7Civpm7fngasgPiByYWlrYVwgOwor57eH57SgID4gc2hpc29cIDsKK+e2sue+hSA+IG1vdXJhXCA7CivlpKnmsJcgPiB0ZW5raVwgOwor6aCG5L2NID4ganVuJydpXCA7CivoqJPnvqkgPiBrdW5naVwgOwor5pio5aScID4geXV1YmVcIDsKK+Wkp+awlyA+IHRhaWtpXCA7CivnhKHok4sgPiBtdWdhaVwgOwor6Kqe5rqQID4gZ29nZW5cIDsKK+imh+mBkyA+IGhhZG91XCA7Civmma7lgY8gPiBmdWhlblwgOwor5pWi54K6ID4ga2FuJydpXCA7CivpmbDnv7MgPiBpbicnZWlcIDsKK+aXl+aJiyA+IGtpc2h1XCA7Civopb/pg6ggPiBzZWlidVwgOwor6ZuH55SoID4ga295b3VcIDsKK+mfs+WDjyA+IG9uem91XCA7CivlprvlpbMgPiBzYWlqb1wgOwor5pON6Ii1ID4gc291ZGFcIDsKK+Wkp+atjCA+IG9vdXRhXCA7CivorJvluqcgPiBrb3V6YVwgOwor5paH5q6KID4gbW9uanVcIDsKK+aYn+WknCA+IHNlaXlhXCA7CivnhKHoj4wgPiBtdWtpblwgOwor5paH5q2mID4gYnVuYnVcIDsKK+mdnuaJjSA+IGhpc2FpXCA7CivlpYfmm7ggPiBraXNob1wgOwor5aSr5qipID4gZnVrZW5cIDsKK+WkqeapnyA+IHRlbmtpXCA7CivpnIrmsJcgPiByZWlraVwgOwor5piO5aqaID4gbWVpYmlcIDsKK+eEoeiMtiA+IG11Y2hhXCA7Civpn7Pkvr8gPiBvbmJpblwgOwor54mi5bGLID4gcm91eWFcIDsKK+Wlh+aZuiA+IGtpY2hpXCA7CivlpJrmr5sgPiB0YW1vdVwgOwor5aiB5L+hID4gaXNoaW5cIDsKK+iqnuazlSA+IGdvaG91XCA7CivlpKfmqLkgPiB0YWlqdVwgOwor5aSW5rCXID4gZ2Fpa2lcIDsKK+eEoeiKuCA+IG11Z2VpXCA7CivlpKfmp5ggPiBvb3lvdVwgOwor5aWl5omLID4gb2t1dGVcIDsKK+e2see0gCA+IGtvdWtpXCA7Civoo73pursgPiBzZWltYVwgOwor57eP56S+ID4gc291amFcIDsKK+mbu+azoiA+IGRlbnBhXCA7CivmmYLljYogPiBqaWhhblwgOwor6K2m5Y+lID4ga2Vpa3VcIDsKK+mdnuaDhSA+IGhpam91XCA7Civoq4vmmocgPiBzZWlrYVwgOwor5pmC5YyWID4gc2hpa2VcIDsKK+Wls+aApyA+IGpvc2VpXCA7Civpm6jmu7QgPiB1dGVraVwgOwor5aWH5pWwID4ga2lzdXVcIDsKK+mbhOeMqyA+IG9uZWtvXCA7CivmmYLli6IgPiBqaXNlaVwgOwor5pan5pakID4gZnVraW5cIDsKK+mbsua1tyA+IHVua2FpXCA7Civpm5Hnha4gPiB6b3VuaVwgOwor5pmC5Yq5ID4gamlrb3VcIDsKK+aYn+WbsyA+IHNlaXp1XCA7CivniLbmgKcgPiBmdXNlaVwgOwor6KaB6LevID4geW91cm9cIDsKK+Wls+W+oSA+IG55b2dvXCA7Civpm7vmsJcgPiBkZW5raVwgOwor5pah5peLID4gYXNzZW5cIDsKK+mbsuazpSA+IHVuZGVpXCA7Civorabli5kgPiBrZWltdVwgOwor5pmC5Yi2ID4gamlzZWlcIDsKK+mbhOeJmyA+IG91c2hpXCA7CivmmYLliIYgPiBqaWJ1blwgOwor54Sh6IO9ID4gbXVub3VcIDsKK+WkmuanmCA+IHRheW91XCA7CivniqzlhJIgPiBrZW5qdVwgOwor54Gr6ZujID4ga2FuYW5cIDsKK+aVsOasoSA+IHN1dWppXCA7CivlppblqaYgPiB5b3VmdVwgOwor5pW15qmfID4gdGVra2lcIDsKK+mbsuawtCA+IHVuc3VpXCA7CivlppblqYYgPiB5b3ViYVwgOwor5peX5bmfID4ga2lzaGlcIDsKK+mdkuaBryA+IGFvaWtpXCA7CivplpHpm4UgPiBrYW5nYVwgOwor5aSn5p6dID4gb29lZGFcIDsKK+Wjsua3qyA+IGJhaWluXCA7CivpnKfmlaMgPiBtdXNhblwgOwor5aWz5bidID4gam90ZWlcIDsKK+mbqOazqCA+IHVjaHV1XCA7CivmlL7ngasgPiBob3VrYVwgOwor5aWJ5oyBID4gaG91amlcIDsKK+Wls+W3pSA+IGpva291XCA7Civpm7vmqZ8gPiBkZW5raVwgOwor57ea55S7ID4gc2VuZ2FcIDsKK+mdnuW4uCA+IGhpam91XCA7CivlppblpbMgPiB5b3Vqb1wgOwor5paw5omLID4gYXJhdGVcIDsKK+mdmeW6pyA+IHNlaXphXCA7CivnhKHnvaogPiBtdXphaVwgOwor5pWj5q2pID4gc2FucG9cIDsKK+mbqOawtyA+IHVoeW91XCA7Civmlofmm7ggPiBtb25qb1wgOwor6ZaL6ZmiID4ga2FpaW5cIDsKK+WmiuWppiA+IG5pbnB1XCA7CivmmYLlgJkgPiBqaWtvdVwgOwor6ZaJ6ZmiID4gaGVpaW5cIDsKK+aXouWumiA+IGtpdGVpXCA7CivorablgpkgPiBrZWliaVwgOwor5aWH5omNID4ga2lzYWlcIDsKK+Wlh+aJiyA+IGtpc2h1XCA7CivlpKnml6UgPiB0ZW5waVwgOwor5aSn5pigID4gZGFpZWlcIDsKK+WknOadpSA+IHlhcmFpXCA7Civlpb3lrpwgPiBrb3VnaVwgOwor57Sb6K2wID4gZnVuZ2lcIDsKK+mZpOeulyA+IGpvemFuXCA7Civml6LlrZggPiBraXNvblwgOwor6K2w5LyaID4gZ2lrYWlcIDsKK+mbouawtCA+IHJpc3VpXCA7CivoqJPnpLogPiBrdW5qaVwgOwor6Kmm5ryUID4gc2hpZW5cIDsKK+aSq+iCsiA+IGJ1aWt1XCA7CivpmLLohZAgPiBib3VmdVwgOwor6Kqe5qC5ID4gZ29rb25cIDsKK+aSsOiAhSA+IHNlbmphXCA7CivnhrHms6IgPiBuZXBwYVwgOwor5aSa5pybID4gdGFib3VcIDsKK+mZtuejgSA+IHRvdWppXCA7CivlpbPlsIogPiBqb3NvblwgOwor5aWH5oWLID4ga2l0YWlcIDsKK+aZguS7oyA+IGppZGFpXCA7CivorbLkuI4gPiBqb3V5b1wgOwor54Sh57eaID4gbXVzZW5cIDsKK+eJouWbuiA+IHJvdWtvXCA7CivlpJzmma8gPiB5YWtlaVwgOwor5pGY6KiYID4gdGVra2lcIDsKK+aXouWpmiA+IGtpa29uXCA7CivmmYLkurogPiBqaWppblwgOwor6ZuE5rudID4gb2Rha2lcIDsKK+eJmeWfjiA+IGdham91XCA7CivlpYfmg7MgPiBraXNvdVwgOwor5aOr5rCXID4gc2hpa2lcIDsKK+ipseazlSA+IHdhaG91XCA7CivngonovrogPiByb2hlblwgOwor5aWz5a2QID4gam9zaGlcIDsKK+eFqeeRoyA+IGhhbnNhXCA7Civnt4/nkIYgPiBzb3VyaVwgOwor5pmC5LiWID4gamlzZWlcIDsKK+eItuWtkCA+IGZ1c2hpXCA7CivnhKHns5YgPiBtdXRvdVwgOwor6Zm955quID4geW91aGlcIDsKK+aWveW3pSA+IHNla291XCA7CivlpKfmkI0gPiBvb3pvblwgOwor6Kej57WEID4ga2Fpc29cIDsKK+Wlh+aAqiA+IGtpa2FpXCA7Civoq7jlrrYgPiBzaG9rYVwgOwor54m55YyWID4gdG9ra2FcIDsKK+mcsuaCqiA+IHJvYWt1XCA7CivnioDliKkgPiBzYWlyaVwgOwor5aSa5pWwID4gdGFzdXVcIDsKK+Wkp+aPmiA+IG9veW91XCA7CivnhKHnsosgPiBidXN1aVwgOwor57ay55uuID4gYW1pbWVcIDsKK+WkqeaOiCA+IHRlbmp1XCA7CivmmKDlhpkgPiBlaXNoYVwgOwor5aSV5pelID4geXV1aGlcIDsKK+Wls+WpvyA+IGpvc2VpXCA7Civlpb3lpYcgPiBrb3VraVwgOwor5aSW5pa5ID4gc29wcG9cIDsKK+aUv+ayuyA+IHNlaWppXCA7CivnspfppJAgPiBzb3NhblwgOwor57KX6aOvID4gc29oYW5cIDsKK+mWiemOliA+IGhlaXNhXCA7CivntKDooYwgPiBzb2tvdVwgOwor57W557W1ID4ga2ludWVcIDsKK+itnOS7oyA+IGZ1ZGFpXCA7CivoqLTnirYgPiBzb2pvdVwgOwor5aWH5b2iID4ga2lrZWlcIDsKK+WhqeeojiA+IGVuemVpXCA7CivmmKDlg48gPiBlaXpvdVwgOwor57W157W5ID4gZWdpbnVcIDsKK+mbkeatjCA+IHpvdWthXCA7CivpmqDnhLYgPiBpbnplblwgOwor5aWH5byBID4ga2liZW5cIDsKK+iqnuaVsCA+IGdvc3V1XCA7Civml6LloLEgPiBraWhvdVwgOwor6Zm955S7ID4geW91Z2FcIDsKK+eBq+mFkiA+IGthc2h1XCA7CivntKvomIcgPiBzaGlzb1wgOwor6KO96Z20ID4gc2Vpa2FcIDsKK+mbtuaZgiA+IHJlaWppXCA7CivmmKDlgKsgPiBlaXJpblwgOwor6Kmp5q2MID4gc2hpa2FcIDsKK+eyvumLrSA+IHNlaWVpXCA7CivlpbPlo7AgPiBqb3NlaVwgOwor5pS+5q2MID4gaG91a2FcIDsKK+mZhOeuiyA+IGZ1c2VuXCA7Civns7vorZwgPiBrZWlmdVwgOwor6Zuy5pmvID4gdW5rZWlcIDsKK+iqieacmyA+IHlvYm91XCA7CivniYjlm7MgPiBoYW50b1wgOwor6Zyy5bqXID4gcm90ZW5cIDsKK+Wlh+W3jCA+IGtpZ2FuXCA7Civlp4nkuIogPiBhbmV1ZVwgOwor5pac5b2xID4gc2hhZWlcIDsKK+eEoeeovSA+IG11a2VpXCA7CivopbLooaMgPiBzaHV1aVwgOwor6ZaT6YGgID4gbWFkb29cIDsKK+mcsuW4nSA+IHJvdGVpXCA7Civpm4TmraYgPiB5dXVidVwgOwor54Sh56iOID4gbXV6ZWlcIDsKK+WkqeaEjyA+IHRlbicnaVwgOwor6Kmg5q2OID4gZWl0YW5cIDsKK+mdmeWknCA+IHNlaXlhXCA7CivorJvlkowgPiBrb3V3YVwgOwor5aSn5oSaID4gdGFpZ3VcIDsKK+eEoeengSA+IG11c2hpXCA7CivnhYnnk6YgPiByZW5nYVwgOwor6Zuy5pWjID4gdW5zYW5cIDsKK+mbouadkSA+IHJpc29uXCA7CivlpJzmiKYgPiB5YXNlblwgOwor57SA6KaBID4ga2l5b3VcIDsKK+eFpOeFmSA+IGJhaWVuXCA7CivntbXnrYYgPiBlZnVkZVwgOwor5aSa5omNID4gdGFzYWlcIDsKK+aWh+aEjyA+IGJ1bicnaVwgOwor6KWk6KS4ID4gcmFucnVcIDsKK+Wkp+aCnyA+IGRhaWdvXCA7CivnibnkvqEgPiB0b2trYVwgOwor5aWH5bKpID4ga2lnYW5cIDsKK+eEoeekvCA+IGJ1cmVpXCA7CivnubvlrZAgPiBzaHVzdVwgOwor6ZaL6YGLID4ga2FpdW5cIDsKK+Wkp+aBqSA+IGRhaW9uXCA7CivoqbLmoYggPiBnYWlhblwgOwor5aSi5oOzID4gbXVzb3VcIDsKK+ilpuiioiA+IGp1YmFuXCA7Civpm6PmmJMgPiBuYW4nJ2lcIDsKK+aXqOWRsyA+IHVtYW1pXCA7CivoqbHmn4QgPiB3YWhlaVwgOwor5aWJ5a6JID4gaG91YW5cIDsKK+WgleiDjiA+IGRhdGFpXCA7CivntIDooYwgPiBraWtvdVwgOwor5pS+5qOEID4gaG91a2lcIDsKK+WkmuaEnyA+IHRha2FuXCA7Civmkq3nqK4gPiBoYXNodVwgOwor6Kqy5b25ID4ga2Fla2lcIDsKK+mZoueUnyA+IGluc2VpXCA7Civoo5zpoYwgPiBob2RhaVwgOwor5aSa5oOFID4gdGFqb3VcIDsKK+eEoeefpSA+IG11Y2hpXCA7Civpm6LmlaMgPiByaXNhblwgOwor6Kmm5qGIID4gc2hpYW5cIDsKK+WkqeW6nCA+IHRlbnB1XCA7CivlpJrmgaggPiB0YWtvblwgOwor5aSn5bqmID4gdGFpZG9cIDsKK+eJqeS+oSA+IGJ1a2thXCA7Civoqp7mhJ8gPiBnb2thblwgOwor5pW15oSPID4gdGVraWlcIDsKK+WlveWPpCA+IGtvdWtvXCA7CivmlofluqsgPiBidW5rb1wgOwor5aSa5b+ZID4gdGFib3VcIDsKK+imi+iIniA+IG1pbWFpXCA7CivnhZbngokgPiBkYW5yb1wgOwor5aCV572qID4gZGF6YWlcIDsKK+WhqeeUsCA+IGVuZGVuXCA7CivmlYXmmbogPiBrb2NoaVwgOwor54Sh55uKID4gbXVla2lcIDsKK+mZveeCjiA+IHlvdWVuXCA7CivlpKflt64gPiB0YWlzYVwgOwor57mK5bqmID4gc2VuZG9cIDsKK+Wkp+W3pSA+IGRhaWt1XCA7Civoq7fllqkgPiBmdXV5dVwgOwor5aSa5b2pID4gdGFzYWlcIDsKK+mWiei3ryA+IGhlaXJvXCA7CivlpJrlvaIgPiB0YWtlaVwgOwor5pWs5oWVID4ga2VpYm9cIDsKK+WghuiCpSA+IHRhaWhpXCA7Civml6XliqAgPiBuaWtrYVwgOwor5o+06LuNID4gZW5ndW5cIDsKK+eyl+mLvCA+IHNva291XCA7CivmlazmhJsgPiBrZWlhaVwgOwor5aSa5byBID4gdGFiZW5cIDsKK+WjsOaPtCA+IHNlaWVuXCA7CivnhqjmlpcgPiBub3NoaVwgOwor6Z2e5ZG9ID4gaGltZWlcIDsKK+isgOWPmyA+IG11aG9uXCA7CivlpbPlj7IgPiBqb3NoaVwgOwor6KyA5Y+NID4gbXVob25cIDsKK+eyl+mKhSA+IHNvZG91XCA7CivopJLovp4gPiBob3VqaVwgOwor5pGp6ICXID4gbWFtb3VcIDsKK+eyl+mJsSA+IHNva291XCA7CivniLblkJsgPiBmdWt1blwgOwor5pS+5pigID4gaG91ZWlcIDsKK+WkluW7tiA+IGdhaWVuXCA7CivlpJrlubggPiB0YWtvdVwgOwor5aSa5bm0ID4gdGFuZW5cIDsKK+e0heiTriA+IGd1cmVuXCA7Civpm4HmnKggPiBnYW5naVwgOwor5aWH5aOwID4ga2lzZWlcIDsKK+iqnuW9oiA+IGdva2VpXCA7CivlpYTlpYQgPiBlbicnZW5cIDsKK+ijj+mdoiA+IHJpbWVuXCA7Civml6LliIogPiBraWthblwgOwor5pa55ZuzID4gaG91enVcIDsKK+mbqOaIuCA+IGFtYWRvXCA7CivpnLLlpKkgPiByb3RlblwgOwor6KOc6ZaTID4gaG9rYW5cIDsKK+iqnuW8iiA+IGdvaGVpXCA7CivniaLkuY4gPiByb3Vrb1wgOwor54Sh55SoID4gbXV5b3VcIDsKK+eEoeeUoyA+IG11c2FuXCA7CivniaHkuLkgPiBib3RhblwgOwor5aSn5bC+ID4gdGFpYmlcIDsKK+WkqeWvvyA+IHRlbmp1XCA7Civoqp7lubkgPiBnb2thblwgOwor57KX6YWSID4gc29zaHVcIDsKK+aOp+mZpCA+IGtvdWpvXCA7Civlo7LmiYsgPiB1cml0ZVwgOwor5aKX5rS+ID4gem91aGFcIDsKK+iqmOW8lSA+IHl1dWluXCA7CivlpKflrrYgPiB0YWlrZVwgOwor6ZuF5paHID4gZ2FidW5cIDsKK+imh+iAhSA+IGhhc2hhXCA7CivmlonlrrYgPiBzZWlrYVwgOwor6Zyy5aC0ID4gcm9qb3VcIDsKK+Wkp+WuiSA+IGRhaWFuXCA7CivmlbDluqYgPiBzdXVkb1wgOwor5aSn5a2XID4gb29hemFcIDsKK+mWkeipsSA+IGthbndhXCA7CivlnLDpoK0gPiBqaXRvdVwgOwor6Zm45rmvID4gb2theXVcIDsKK+aWreWbuiA+IGRhbmtvXCA7Civpm7LlvbEgPiB1bicnZWlcIDsKK+aWh+WtlyA+IG1vbmppXCA7Civnh5Xlt6MgPiBlbnNvdVwgOwor5aWl5Y2wID4gb2t1aW5cIDsKK+Wkq+WppiA+IG1lb3RvXCA7CivlpJrlsaQgPiB0YXNvdVwgOwor6Ki05qipID4gc29rZW5cIDsKK+mbtuW6piA+IHJlaWRvXCA7CivngrnogIUgPiB0ZW5qYVwgOwor57W155S7ID4ga2FpZ2FcIDsKK+maoOajsiA+IGluc2VpXCA7CivopoHnvqkgPiB5b3VnaVwgOwor6Z2e5YehID4gaGlib25cIDsKK+ioquaspyA+IGhvdW91XCA7CivlnLDpnaIgPiBqaW1lblwgOwor5aW95YCLID4ga291a29cIDsKK+Wls+WEqiA+IGpveXV1XCA7CivlpKnlqIEgPiB0ZW4nJ2lcIDsKK+Wkq+WmuyA+IGZ1c2FpXCA7CivoqqTlsIQgPiBnb3NoYVwgOwor54i25YWEID4gZnVrZWlcIDsKK+WcsOmbtyA+IGppcmFpXCA7CivoqJjms5UgPiBraWhvdVwgOwor54WW5rCXID4gZGFua2lcIDsKK+maoOagliA+IGluc2VpXCA7CivlpJrlrZQgPiB0YWtvdVwgOwor5aSW5a6uID4gZ2VrdXVcIDsKK+eFmeatuyA+IGVuc2hpXCA7CivlpKrlpKsgPiB0YXl1dVwgOwor6Zm95rCXID4geW91a2lcIDsKK+Wfuue3miA+IGtpc2VuXCA7CivlpKflpaUgPiBvb29rdVwgOwor5o6S6ZmkID4gaGFpam9cIDsKK+WkluWtlyA+IGdhaWppXCA7CivmlaPluIMgPiBzYW5wdVwgOwor5aWH5ZWPID4ga2ltb25cIDsKK+WmguS4iiA+IGpvam91XCA7Civlpb3kuosgPiBrb3V6dVwgOwor5aSn5aOwID4gb29nb2VcIDsKK+iqsuWkliA+IGthZ2FpXCA7CivlpLflm70gPiBpa29rdVwgOwor5pSv5o+0ID4gc2hpZW5cIDsKK+aTrOavmyA+IGdpbW91XCA7CivntKDntbkgPiBzb2tlblwgOwor5aWR5Y2wID4ga2VpaW5cIDsKK+mbo+W6piA+IG5hbmRvXCA7Civopo/nr4QgPiBraWhhblwgOwor5pOs5q27ID4gZ2lzaGlcIDsKK+aVsOWtlyA+IHN1dWppXCA7CivlpJrlprsgPiB0YXNhaVwgOwor5paO5Z6jID4gaWdha2lcIDsKK+imgee0oCA+IHlvdXNvXCA7Civml5fkuq0gPiBraXRlaVwgOwor5pSv5oyBID4gc2hpamlcIDsKK+mbheaHkCA+IGdha2FpXCA7Civmj5DotbcgPiB0ZWlraVwgOwor6Zuy5bGFID4ga3Vtb2lcIDsKK+mcsuWRvSA+IHJvbWVpXCA7CivnhKHnga8gPiBtdXRvdVwgOwor6Zmw5q+bID4gaW5tb3VcIDsKK+WkieWtlyA+IGhlbmppXCA7Civopb/ntIAgPiBzZWlraVwgOwor57mU5ZywID4gb3JpamlcIDsKK+mciuWkoiA+IHJlaW11XCA7CivpnLLlkYggPiByb3RlaVwgOwor5aSa5aSnID4gdGFkYWlcIDsKK+aOg+mZpCA+IHNvdWppXCA7CivloZfngq0gPiB0b3RhblwgOwor5o2V6a+oID4gaG9nZWlcIDsKK+mdnuS6uiA+IGhpbmluXCA7CivlpJrlo7IgPiB0YWJhaVwgOwor6Zyy5Y+wID4gcm9kYWlcIDsKK+e5geWkmiA+IGhhbnRhXCA7CivpmaTms5UgPiBqb2hvdVwgOwor54Sc54KJID4ga29ucm9cIDsKK+aWueWGhiA+IGhvdWVuXCA7Civoq7jkuosgPiBzaG9qaVwgOwor5pS55oKfID4ga2FpZ29cIDsKK+e2meazsyA+IGtlaWVpXCA7CivlpYnliqAgPiBob3VnYVwgOwor6KaP56iLID4ga2l0ZWlcIDsKK+mbouWztiA+IHJpdG91XCA7CivlpYflirkgPiBraWtvdVwgOwor6Kmt5byBID4ga2liZW5cIDsKK+maleaYnyA+IGluc2VpXCA7CivlpKflmaggPiB0YWlraVwgOwor6Zui5bK4ID4gcmlnYW5cIDsKK+eCree0oCA+IHRhbnNvXCA7CivoqqTloLEgPiBnb2hvdVwgOwor5aSW5aC0ID4gZ2FpYmFcIDsKK+aVsOWlhyA+IHN1dWtpXCA7Civpm6LlsbEgPiByaXphblwgOwor5aSn5ZiYID4gb291c29cIDsKK+ezluiPkyA+IHRvdWthXCA7CivmlbDlpJogPiBzdXV0YVwgOwor5o+Q6K2wID4gdGVpZ2lcIDsKK+maj+aZgiA+IHp1aWppXCA7CivntYznlLEgPiBrZWl5dVwgOwor54Gr6JGsID4ga2Fzb3VcIDsKK+mciuWckiA+IHJlaWVuXCA7CivmlL/lupwgPiBzZWlmdVwgOwor5aWH5YW1ID4ga2loZWlcIDsKK+mYv+a8lSA+IGFrb2dpXCA7CivpmLLngo4gPiBib3VlblwgOwor5paX5Y2XID4gdG9uYW5cIDsKK+WjsuWtkCA+IHVyaWtvXCA7Civpm7vloLQgPiBkZW5iYVwgOwor5aSW5ZugID4gZ2FpaW5cIDsKK+mYsueBqyA+IGJvdWthXCA7Civmj5DoqLQgPiB0ZWlzb1wgOwor6Zyy5YWJID4gcm9rb3VcIDsKK+Wkq+WQmyA+IGZ1a3VuXCA7CivopIfooaMgPiBmdWt1aVwgOwor57WM55CGID4ga2VpcmlcIDsKK+Wkp+WRvCA+IHRhaWtvXCA7CivlpKflkbMgPiBvb2FqaVwgOwor5pa95Li7ID4gc2VzaHVcIDsKK+mbsuWjjCA+IHVuam91XCA7CivlpYflgbYgPiBraWd1dVwgOwor5aSq5Y+kID4gdGFpa29cIDsKK+eEoeazlSA+IG11aG91XCA7CivmlYXlsbEgPiBrb3phblwgOwor5r+D6ZynID4gbm91bXVcIDsKK+mbouWpmiA+IHJpa29uXCA7CivlpKflj7AgPiBvb2RhaVwgOwor5Zyo6YeOID4gemFpeWFcIDsKK+eCueekuiA+IHRlbmppXCA7CivmlZnlp5QgPiBreW91aVwgOwor6KqH5aSnID4ga29kYWlcIDsKK+eBq+iJsiA+IGhpaXJvXCA7CivnhLbmp5ggPiBzYXlvdVwgOwor6KGj6a2aID4gc2hpbWlcIDsKK+iqmOWboCA+IHl1dWluXCA7Civnspfoo70gPiBzb3NlaVwgOwor5paH5Y+lID4gbW9ua3VcIDsKK+eEoeawtCA+IG11c3VpXCA7Civng73ngasgPiBob3VrYVwgOwor57K+6I+vID4gc2Vpa2FcIDsKK+Wlh+S9kyA+IGtpdGFpXCA7CivnhKHmr5sgPiBtdW1vdVwgOwor57mt5L6hID4ga2Vua2FcIDsKK+mbu+WZqCA+IGRlbmtpXCA7Civlm7PpnaIgPiB6dW1lblwgOwor57ep5b6QID4ga2Fuam9cIDsKK+aUvuWxgSA+IGhvdWhpXCA7Civlo7LlpbMgPiBiYWl0YVwgOwor5aSp5YqpID4gdGVuam9cIDsKK+exs+iyqCA+IGJlaWthXCA7Civlm7rpmYsgPiBrb3JvdVwgOwor54Sh5q6LID4gbXV6YW5cIDsKK+mWi+iKsSA+IGthaWthXCA7CivnhKHmrbsgPiBtdXNoaVwgOwor5paH5YyWID4gYnVua2FcIDsKK+Wlh+S6uiA+IGtpamluXCA7Civmlq3kuY4gPiBkYW5rb1wgOwor5aKX5o+0ID4gem91ZW5cIDsKK+WknOWPiSA+IHlhc2hhXCA7Civln7rnm6QgPiBraWJhblwgOwor5aSq5YiAID4gdGFjaGlcIDsKK+mZsOaZtCA+IGluc2VpXCA7Civlo6vlpbMgPiBzaGlqb1wgOwor5aSn5YikID4gb29iYW5cIDsKK+e0oOebtCA+IHN1bmFvXCA7CivopqrniLogPiBveWFqaVwgOwor6Kaq54i2ID4gb3lhamlcIDsKK+iqsuWItiA+IGthc2VpXCA7CivpnIDlk4EgPiBqdWhpblwgOwor6KOc6KybID4gaG9rb3VcIDsKK+mbo+WgtCA+IG5hbmJhXCA7Civntq3mlrAgPiBpc2hpblwgOwor5aOy5aC0ID4gdXJpYmFcIDsKK+Wkt+S/lyA+IGl6b2t1XCA7Civlm57poacgPiBrYWlrb1wgOwor5aSc5YukID4geWFraW5cIDsKK+Wkp+WGhiA+IGRhaWVuXCA7CivoqIjmmYIgPiBrZWlqaVwgOwor5aGp5qKFID4gYW5iYWlcIDsKK+mZsOaWhyA+IGluYnVuXCA7CivpmaLmnKwgPiBpbnBvblwgOwor5aSa5YuiID4gdGF6ZWlcIDsKK+malOaEjyA+IGtha3VpXCA7Civlm5vpoacgPiBzaGlrb1wgOwor6ZaT6ICFID4ga2FuamFcIDsKK+Wkp+WEkiA+IGRhaWp1XCA7Civoqp7ljp8gPiBnb2dlblwgOwor5aSn5YSAID4gdGFpZ2lcIDsKK+WknOWJjSA+IHlhemVuXCA7Civoo5zoqIIgPiBob3RlaVwgOwor57Gz6KqeID4gYmVpZ29cIDsKK+mYu+atoiA+IHNvc2hpXCA7CivlpJbli5kgPiBnYWltdVwgOwor6ZuR5aSaID4gemF0dGFcIDsKK+WknOWIhiA+IHlhYnVuXCA7CivmlZflm6AgPiBoYWlpblwgOwor57Gz6KmxID4gYmVpd2FcIDsKK+WdkOimliA+IHphc2hpXCA7CivmlonlgpkgPiBzZWliaVwgOwor5aSa5YiGID4gdGFidW5cIDsKK+Wik+aJgCA+IGJvc2hvXCA7Civoqp7li6IgPiBnb3NlaVwgOwor6Kqk5YikID4gZ29oYW5cIDsKK+aOoeitnCA+IHNhaWZ1XCA7Civlo4flrrYgPiBkYW5rYVwgOwor5aOu5ZuzID4gc291dG9cIDsKK+Wbs+mRkSA+IHp1a2FuXCA7CivlpJzlhYkgPiB5YWtvdVwgOwor54K555S7ID4gdGVuZ2FcIDsKK+mZpOaVsCA+IGpvc3V1XCA7Civpm7vljJYgPiBkZW5rYVwgOwor6Kqk5YaZID4gZ29zaGFcIDsKK+aOp+iotCA+IGtvdXNvXCA7CivlpJrlhYMgPiB0YWdlblwgOwor5aSp5L2NID4gdGVuJydpXCA7Civpm7Llj7AgPiB1bmRhaVwgOwor6KW/55OcID4gc3Vpa2FcIDsKK+iqjeWQpiA+IG5pbnBpXCA7CivnhKHmoLkgPiBtdWtvblwgOwor5aSJ5YyWID4gaGVuZ2VcIDsKK+mZouaUvyA+IGluc2VpXCA7CivlpKfkvZAgPiB0YWlzYVwgOwor6KqN5Y+vID4gbmlua2FcIDsKK+Wkq+S6uiA+IGZ1amluXCA7Civngavnt5ogPiBrYXNlblwgOwor57ay5oi4ID4gYW1pZG9cIDsKK+eyvue+qSA+IHNlaWdpXCA7CivoqrDkvZUgPiBzdWlrYVwgOwor6KiY5oa2ID4ga2lva3VcIDsKK+ijveiPkyA+IHNlaWthXCA7CivlpKfkuosgPiBkYWlqaVwgOwor5r+r6LK7ID4gcmFucGlcIDsKK+WkqeS4iyA+IHRlbmthXCA7CivmlofkuosgPiBidW5qaVwgOwor5pOs5oWLID4gZ2l0YWlcIDsKK+maoOWxhSA+IGlua3lvXCA7CivmlbTlgpkgPiBzZWliaVwgOwor57Sr54WZID4gc2hpZW5cIDsKK+aVrOWFtyA+IGtlaWd1XCA7CivnspfojLYgPiBzb2NoYVwgOwor5aSc5LyaID4geWFrYWlcIDsKK+eEoeaZuiA+IG11Y2hpXCA7CivpmqPlrrYgPiByaW5rYVwgOwor57SU55CGID4ganVucmlcIDsKK+mbouWQiCA+IHJpZ291XCA7Civpm6Plj6UgPiBuYW5rdVwgOwor57OK57K+ID4ga29zZWlcIDsKK+e3nuWtkCA+IGRvbnN1XCA7Civpm6Llj40gPiByaWhhblwgOwor57Sg54mHID4gc29oZW5cIDsKK+eFmeW8viA+IGVuZGFuXCA7CivoqqTkvJ0gPiBnb2RlblwgOwor6Zuq5YqgID4gc2Vra2FcIDsKK+ezuOebriA+IGl0b21lXCA7CivntbXmn4QgPiBlZ2FyYVwgOwor6KiY5b+1ID4ga2luZW5cIDsKK+ikkue+jiA+IGhvdWJpXCA7Civpm4Tlm7MgPiB5dXV0b1wgOwor54G956aNID4gc2Fpa2FcIDsKK+eEoeaWrSA+IG11ZGFuXCA7Civng4jngasgPiByZWtrYVwgOwor5pWw5YCLID4gc3V1a29cIDsKK+mZsOaDqCA+IGluc2FuXCA7CivnhKHmlbAgPiBtdXN1dVwgOwor57W15pytID4gZWZ1ZGFcIDsKK+WkluS6iyA+IGdhaWppXCA7CivmlbDkvqEgPiBzdXVrYVwgOwor57a/5biDID4gbWVucHVcIDsKK+igp+mtmiA+IHNoaW1pXCA7Civln7rngrkgPiBraXRlblwgOwor6Zmw5oCnID4gaW5zZWlcIDsKK+mbu+S9jSA+IGRlbicnaVwgOwor6Kmg5ZiGID4gZWl0YW5cIDsKK+eyvueylyA+IHNlaXNvXCA7Civpm6jlhbcgPiBhbWFndVwgOwor5aSJ5L2NID4gaGVuJydpXCA7CivpmbDlvbEgPiBpbicnZWlcIDsKK+imj+a6liA+IGtpanVuXCA7Civnt4/lq4EgPiBzb3VrYVwgOwor54K554GrID4gdGVua2FcIDsKK+mbouWFmiA+IHJpdG91XCA7CivmjqnolL0gPiBlbnBlaVwgOwor5aSJ5LqLID4gaGVuamlcIDsKK+ipqeWPpSA+IHNoaWt1XCA7Civpm6PlhIAgPiBuYW5naVwgOwor57WD5q2MID4gZ2Vua2FcIDsKK+ippuWQiCA+IHNoaWFpXCA7CivpmqDlo6sgPiBpbnNoaVwgOwor5o6p6JOLID4gZW5nYWlcIDsKK+Wis+WikyA+IGZ1bmJvXCA7CivnuIHlj7AgPiBlbmRhaVwgOwor6Zuy5LqVID4ga3Vtb2lcIDsKK+ihsOmBiyA+IHN1aXVuXCA7Civln7rmupYgPiBraWp1blwgOwor6Zu25LiLID4gcmVpa2FcIDsKK+mbheWPtyA+IGdhZ291XCA7Civln7rmupAgPiBraWdlblwgOwor6Kmg5ZCfID4gZWlnaW5cIDsKK+Wcn+ijvSA+IGRvc2VpXCA7CivoqaDlj7IgPiBlaXNoaVwgOwor54WZ5a6zID4gZW5nYWlcIDsKK+aUv+WLmSA+IHNlaW11XCA7CivloLTmnKsgPiBiYXN1ZVwgOwor5Zue6YG/ID4ga2FpaGlcIDsKK+mbsuS4iiA+IHVuam91XCA7CivmlLnljbAgPiBrYWlpblwgOwor57a+5a2QID4gcmluenVcIDsKK+eEoeaJjSA+IG11c2FpXCA7CivngqzngasgPiBreW9rYVwgOwor6ZaL56WWID4ga2Fpc29cIDsKK+eBq+egsiA+IGthaG91XCA7CivplovnpLogPiBrYWlqaVwgOwor5aOy5L6hID4gYmFpa2FcIDsKK+exs+iLsSA+IGJlaWVpXCA7CivnhanlpJogPiBoYW50YVwgOwor5aOw5L6hID4gc2Vpa2FcIDsKK+maoOWdiiA+IG9uYm91XCA7CivntrjlrZAgPiByaW56dVwgOwor6Zq75Y+lID4gc2Vra3VcIDsKK+eEoeaFriA+IG11cnlvXCA7Civpm6rkuIsgPiBzZWtrYVwgOwor5aCA5rGfID4gaG9yaWVcIDsKK+mbouS7uyA+IHJpbmluXCA7CivntZDmnpwgPiBrZWtrYVwgOwor6Zuo5LitID4gdWNodXVcIDsKK+ihsOi6ryA+IHN1aWt1XCA7CivntIXngo4gPiBrb3VlblwgOwor57a05a2XID4gdGVpamlcIDsKK+mbo+S6iyA+IG5hbmppXCA7CivlnLDolLUgPiBqaXpvdVwgOwor54Sh5oOzID4gbXVzb3VcIDsKK+eEoeaDqCA+IG11emFuXCA7CivntK/mrKEgPiBydWlqaVwgOwor54Sh5oOFID4gbXVqb3VcIDsKK+e3qeWSjCA+IGthbndhXCA7Civopo/mraMgPiBraXNlaVwgOwor6KmQ5Y+WID4gc2FzaHVcIDsKK+eEoeaBpSA+IG11Y2hpXCA7Civoo4XojbcgPiBzb3VrYVwgOwor54Sh5oCnID4gbXVzZWlcIDsKK+mbheWFhCA+IGdha2VpXCA7Civnspfns5YgPiBzb3RvdVwgOwor6Zqg5ZapID4gaW4nJ3l1XCA7CivnhKHlv7UgPiBtdW5lblwgOwor5Zue6LevID4ga2Fpcm9cIDsKK+mbh+WCrSA+IGtveW91XCA7CivopqrmnKggPiBveWFnaVwgOwor6ZuR5L2cID4gem91c2FcIDsKK+eEoeW9oiA+IG11a2VpXCA7CivpmZDluqYgPiBnZW5kb1wgOwor54WZ5aG1ID4gZW5qaW5cIDsKK+WhgeaJkyA+IHJ1aWRhXCA7CivmlYXkurogPiBrb2ppblwgOwor5Zyf6JS1ID4gZG96b3VcIDsKK+ilv+atpiA+IHNlaWJ1XCA7Civngo7ngo4gPiBlbicnZW5cIDsKK+imi+anmCA+IG1peW91XCA7CivmlYXkuLsgPiBrb3NodVwgOwor6KW/5qynID4gc2Vpb3VcIDsKK+imh+aoqSA+IGhha2VuXCA7CivpmaLlrqMgPiBpbnplblwgOwor57KX56yoID4gc29ob25cIDsKK+e0oeapnyA+IGJvdWtpXCA7Civlm7Pop6MgPiB6dWthaVwgOwor5Zyo6I23ID4gemFpa2FcIDsKK+mXmOawlyA+IHRvdWtpXCA7CivlnLDoibIgPiBqaWlyb1wgOwor54Sh5bi9ID4gbXVib3VcIDsKK+eEoeW4uCA+IG11am91XCA7CivlnJ/okawgPiBkb3NvdVwgOwor5pS/5LqLID4gc2VpamlcIDsKK+aOque9riA+IHNvY2hpXCA7CivlopPlnLAgPiBib2NoaVwgOwor57eP5ZOhID4gc291aW5cIDsKK+maj+WWnCA+IHp1aWtpXCA7CivlnKjoi7EgPiB6YWllaVwgOwor57Oc54ibID4gYmlyYW5cIDsKK+e3j+WSjCA+IHNvdXdhXCA7Civpm4XkurogPiBnYWppblwgOwor5aC05omAID4gYmFzaG9cIDsKK+ihl+i3ryA+IGdhaXJvXCA7CivpmYTluK8gPiBmdXRhaVwgOwor5aGX5belID4gdG9rb3VcIDsKK+WbnuitsCA+IGthaWdpXCA7Civpmo/lk6EgPiB6dWlpblwgOwor5aCF5p6cID4ga2Vua2FcIDsKK+ioseWQpiA+IGt5b2hpXCA7Civmi5fpn7MgPiB5b3VvblwgOwor6Kix5Y+vID4ga3lva2FcIDsKK+imi+aghCA+IG1pYmFlXCA7CivntbnluIMgPiBrZW5wdVwgOwor6ZqK5ZOhID4gdGFpaW5cIDsKK+mZtuWcnyA+IHRvdWRvXCA7Civmj5DnpLogPiB0ZWlqaVwgOwor5oyJ6YWNID4gYW5iYWlcIDsKK+eEoeWwvSA+IG11amluXCA7CivpmaTlpJYgPiBqb2dhaVwgOwor5aKX5ZOhID4gem91aW5cIDsKK+e1teW3uyA+IGVtYWtpXCA7CivooYzot68gPiBrb3Vyb1wgOwor5oy/6KmxID4gc291d2FcIDsKK+imi+acrCA+IG1paG9uXCA7CivpmaLlpJYgPiBpbmdhaVwgOwor57eP5YuZID4gc291bXVcIDsKK+mXiuatqSA+IGthcHBvXCA7Civlmarpn7MgPiBzb3VvblwgOwor5Z+65p2/ID4ga2liYW5cIDsKK+mZtuWZqCA+IHRvdWtpXCA7CivntpnlpKsgPiBrZWlmdVwgOwor54Sh5a6zID4gbXVnYWlcIDsKK+maoOWFgyA+IGluZ2VuXCA7CivnhKHlrpggPiBtdWthblwgOwor6KiD5aCxID4gZnVob3VcIDsKK+WfuuacrCA+IGtpaG9uXCA7CivnspfnoKUgPiBhcmF0b1wgOwor5aCx5oGpID4gaG91b25cIDsKK+mat+S4iyA+IHJlaWthXCA7CivntKDmnZAgPiBzb3phaVwgOwor6ZmN5auBID4ga291a2FcIDsKK+e3j+WHuiA+IHNvdWRlXCA7CivopovmmKAgPiBtaWJhZVwgOwor57a95ZCNID4gYWRhbmFcIDsKK+WckuiKuCA+IGVuZ2VpXCA7Civnga/ngasgPiB0b3VrYVwgOwor6Kej5a2XID4ga2FpamlcIDsKK+aNleiZnCA+IGhvcnlvXCA7CivpmqPkv50gPiByaW5wb1wgOwor5aKT5Y+CID4gYm9zYW5cIDsKK+eBq+eBvSA+IGthc2FpXCA7CivoqIjlmaggPiBrZWlraVwgOwor57WE5oiQID4gc29zZWlcIDsKK+ijuOecvCA+IHJhZ2FuXCA7Civnspfnm7ggPiBzb3NvdVwgOwor5ou+6YG6ID4gc2h1dWlcIDsKK+e1tuWutiA+IHpla2tlXCA7CivoqJjlkI0gPiBraW1laVwgOwor6KGj6KOzID4gaXNob3VcIDsKK+Wil+WKoCA+IHpvdWthXCA7CivoqJjlj7cgPiBraWdvdVwgOwor5r++57SZID4gcm9zaGlcIDsKK+mYu+WusyA+IHNvZ2FpXCA7CivlnLDnuIEgPiBjaGllblwgOwor54Sh5aeLID4gbXVzaGlcIDsKK+WbmuihoyA+IHNodXVpXCA7CivooaPoo4UgPiBpc2hvdVwgOwor5pGp5pCNID4gbWFzb25cIDsKK+WfuuaVsCA+IGtpc3V1XCA7CivooZvoppYgPiBlaXNoaVwgOwor5Zu96I+vID4ga29ra2FcIDsKK+WhlOWphiA+IHRvdWJhXCA7CivntKDmlbAgPiBzb3N1dVwgOwor5Z2Q56aFID4gemF6ZW5cIDsKK+Wik+WJjSA+IGJvemVuXCA7CivpmqDkuqEgPiBvbmJvdVwgOwor54Sh5aOwID4gbXVzZWlcIDsKK+WcsOe0iyA+IGppbW9uXCA7CivmjrLnpLogPiBrZWlqaVwgOwor5ryU6aGMID4gZW5kYWlcIDsKK+e0jeacnyA+IG5vdWtpXCA7CivmkpLluIMgPiBzYW5wdVwgOwor5aCF5oyBID4ga2VuamlcIDsKK+aTrOWLoiA+IGdpc2VpXCA7Civlm73oirEgPiBrb2trYVwgOwor5Zyw57GzID4gamltYWlcIDsKK+imquW+oSA+IG95YWdvXCA7Civngrnmkq0gPiB0ZW5wYVwgOwor5r+D6Im2ID4gbm91ZW5cIDsKK+iotOS6uiA+IHNvbmluXCA7CivooZfooaIgPiBnYWlrdVwgOwor6ZaL5ryUID4ga2FpZW5cIDsKK+iojuWMqiA+IHRvdWhpXCA7CivntYzluqYgPiBrZWlkb1wgOwor5pOs5Yi2ID4gZ2lzZWlcIDsKK+e0i+aXpSA+IG1vbmJpXCA7Civmjojnsr4gPiBqdXNlaVwgOwor6Zmk5ZCNID4gam9tZWlcIDsKK+eBr+ayuSA+IHRvdXl1XCA7CivpmaTlj7cgPiBqb2dvdVwgOwor6Zm25Ya2ID4gdG91eWFcIDsKK+WbsOiLpiA+IGtvbmt1XCA7CivmiqvpnLIgPiBoaXJvdVwgOwor6Zmk5Y67ID4gam9reW9cIDsKK+mZouWPtyA+IGluZ291XCA7CivpmorkvI0gPiB0YWlnb1wgOwor57SF5peXID4ga291a2lcIDsKK+majuS4iyA+IGthaWthXCA7CivmipXpo5sgPiB0b3VoaVwgOwor6J+76YW4ID4gZ2lzYW5cIDsKK+e0oOaHkCA+IHNva2FpXCA7CivlnLDnp58gPiBjaGlzb1wgOwor57Sw5b6uID4gc2FpYmlcIDsKK+iom+S8nSA+IGthZGVuXCA7Civmi53ovp4gPiBoYWlqaVwgOwor5Zyf566hID4gZG9rYW5cIDsKK+WcsOelhyA+IGNoaWdpXCA7CivloYrlnJ8gPiBrYWlkb1wgOwor6KOP55uuID4gdXJhbWVcIDsKK+aMgeirliA+IGppcm9uXCA7CivoppbluqYgPiBzaGlkb1wgOwor54KO5pqRID4gZW5zaG9cIDsKK+eyvuayuSA+IHNlaXl1XCA7Civnspfnha4gPiBhcmFuaVwgOwor6ZeY5oqAID4gdG91Z2lcIDsKK+aMv+iKsSA+IHNvdWthXCA7Civmk6zkurogPiBnaWppblwgOwor57K+5rCXID4gc2Vpa2lcIDsKK+imluW3riA+IHNoaXNhXCA7CivnhKHlkI0gPiBtdW1laVwgOwor57Sg5oCnID4gc3Vqb3VcIDsKK+imquWtlyA+IG95YWppXCA7CivpmLvllqogPiBzb3NvdVwgOwor57SN5oi4ID4gbmFuZG9cIDsKK+eEoeWPjCA+IG11c291XCA7CivloanliIYgPiBlbmJ1blwgOwor57Sg5b+XID4gc29zaGlcIDsKK+e0sOW3pSA+IHNhaWt1XCA7Civpmarkvo0gPiBiYWlqaVwgOwor5aCw5aCkID4gZW50ZWlcIDsKK+eEoeWLoiA+IGJ1emVpXCA7Civln7rlupUgPiBraXRlaVwgOwor5o6754isID4gc291aGFcIDsKK+Wcp+eglSA+IGFzc2FpXCA7Civln7rlubkgPiBraWthblwgOwor5o+u5q+rID4ga2lnb3VcIDsKK+eEoeWKuSA+IG11a291XCA7CivlnLDnm6QgPiBqaWJhblwgOwor5Zuy57meID4gaW55b3VcIDsKK+aLneizgCA+IGhhaWdhXCA7CivngavmobYgPiBoaW9rZVwgOwor5o6o55CGID4gc3VpcmlcIDsKK+eyl+a8jyA+IHNvcm91XCA7CivmibbppIogPiBmdXlvdVwgOwor5o2V57iEID4gaG9qb3VcIDsKK+e1tuWPpSA+IHpla2t1XCA7Civlm5vogqEgPiBzaGlrb1wgOwor57Ch57SgID4ga2Fuc29cIDsKK+aKvOmAgSA+IG91c291XCA7CivlnJ/noIIgPiBkb3NoYVwgOwor54Sh5YagID4gbXVrYW5cIDsKK+eCueW3riA+IHRlbnNhXCA7CivloKHloYEgPiBob3J1aVwgOwor5pON5L2cID4gc291c2FcIDsKK+e0lOW6piA+IGp1bmRvXCA7CivoqIDkuIsgPiBnZW5rYVwgOwor6KaP5a6aID4ga2l0ZWlcIDsKK+eBq+abnCA+IGtheW91XCA7Civmu4vppIogPiBqaXlvdVwgOwor5o+b5rCXID4ga2Fua2lcIDsKK+mWi+aetiA+IGthaWthXCA7CivlnKfnl5UgPiBha2tvblwgOwor5om56ZujID4gaGluYW5cIDsKK+ijveayuSA+IHNlaXl1XCA7CivlmajosqEgPiBraXphaVwgOwor6ZaR5pqHID4ga2Fua2FcIDsKK+eBq+aYnyA+IGthc2VpXCA7CivpmZvkuIsgPiBoZWlrYVwgOwor6KeS5YqbID4gc3Vtb3VcIDsKK+eyvuafuyA+IHNlaXNhXCA7CivlnLDnkIYgPiBjaGlyaVwgOwor5aC05ZGzID4gYmFhamlcIDsKK+eul+itnCA+IHNhbnB1XCA7Civng4jlqaYgPiByZXBwdVwgOwor5aGR5YOPID4gc296b3VcIDsKK+aOiOeUoyA+IGp1c2FuXCA7CivnhKHkvZMgPiBtdXRhaVwgOwor6KGM6ISaID4gYW5neWFcIDsKK+eEoeS9jyA+IG11anV1XCA7Civmj7rmm7MgPiB5b3VlaVwgOwor57Sg5a2QID4gc29zaGlcIDsKK+e1jOWWtiA+IGtlaWVpXCA7CivlnJ/nlKggPiBkb3lvdVwgOwor54Sh5LujID4gbXVkYWlcIDsKK+igkeieuiA+IHNhemFlXCA7CivonrrpiL8gPiByYWRlblwgOwor54K55a2XID4gdGVuamlcIDsKK+eEoeS6uiA+IG11bmluXCA7CivlnJ/nk7YgPiBkb2JpblwgOwor5aCC5aWlID4gZG91b3VcIDsKK+mYsuWFtyA+IGJvdWd1XCA7CivpmY3kuIsgPiBrb3VrYVwgOwor57S65ZywID4ga29uamlcIDsKK+mVt+afhCA+IG5hZ2FlXCA7CivopZ/luqYgPiBraW5kb1wgOwor54Sh5LiKID4gbXVqb3VcIDsKK+iho+ezpyA+IGlyeW91XCA7CivntbbkvbMgPiB6ZWtrYVwgOwor57Sg5aeTID4gc3Vqb3VcIDsKK+mYsuWCmSA+IGJvdWJpXCA7Civlm7PnpLogPiB6dXNoaVwgOwor57WQ5Y+lID4ga2Vra3VcIDsKK+WfjuW6nCA+IGpvdWZ1XCA7Civono3pmaQgPiB5dXVqb1wgOwor5omj6ZmkID4ga291am9cIDsKK+mYv+S6gCA+IG9rYW1lXCA7CivmiZPpoIYgPiBkYWp1blwgOwor5oqx6LKgID4gaG91ZnVcIDsKK+aOkueFmSA+IGhhaWVuXCA7CivmvKLoqp4gPiBrYW5nb1wgOwor5pGC5a62ID4gc2Vra2VcIDsKK+WgheWbuiA+IGtlbmdvXCA7CivngavmiYsgPiBrYXNodVwgOwor5omL6aCGID4gdGVqdW5cIDsKK+aJk+mbuyA+IGRhZGVuXCA7CivnrZTovp4gPiB0b3VqaVwgOwor5o+Q5qGIID4gdGVpYW5cIDsKK+WfuuWcsCA+IGtpY2hpXCA7CivlnKfngrkgPiBhdHRlblwgOwor6ZaL5omJID4ga2FpaGlcIDsKK+ijnOatoyA+IGhvc2VpXCA7Civmj6HmlqcgPiBha3VmdVwgOwor5oqr6KybID4gaGlrb3VcIDsKK+aJk+mWiyA+IGRha2FpXCA7CivopoHlm7MgPiB5b3V6dVwgOwor6KW/5ZyfID4gc2VpZG9cIDsKK+imgeWboCA+IHlvdWluXCA7Civnq7bppqwgPiBrZWliYVwgOwor57KX5pyoID4gYXJha2lcIDsKK+a8j+ipsSA+IHJvdXdhXCA7CivmjqHmsrkgPiBzYWl5dVwgOwor6KKr54G9ID4gaGlzYWlcIDsKK+WgtOS7oyA+IGJhZGFpXCA7CivnspfmmrQgPiBzb2JvdVwgOwor5Zyw5ripID4gY2hpb25cIDsKK+aOquatoiA+IHNvc2hpXCA7Civoo4/mr5sgPiB1cmFrZVwgOwor6ZaA5omJID4gbW9ucGlcIDsKK+mWgOaIuCA+IG1vbmtvXCA7Civns5bluqYgPiB0b3Vkb1wgOwor6ZaL5oKfID4ga2FpZ29cIDsKK+e0meWZqCA+IHNoaWtpXCA7CivmiqvoposgPiBoaWtlblwgOwor5pG45YaZID4gbW9zaGFcIDsKK+ihqOedgCA+IHV3YWdpXCA7Civngq3lm6MgPiB0YWRvblwgOwor5Zue55uuID4ga2FpbWVcIDsKK+aKl+itsCA+IGtvdWdpXCA7Civmu4Xph5EgPiBtZWtraVwgOwor57KX5pS+ID4gc29ob3VcIDsKK+imgeWToSA+IHlvdWluXCA7CivmiZPpjbUgPiBkYWtlblwgOwor57Sv5YqgID4gcnVpa2FcIDsKK+idn+mbhiA+IGlzaHV1XCA7CivngorlqaYgPiBzdWlmdVwgOwor54K55ZG8ID4gdGVua29cIDsKK+aOkuawlyA+IGhhaWtpXCA7CivmkbjlgKMgPiBtb2hvdVwgOwor6KaP5Yi2ID4ga2lzZWlcIDsKK+eCjuWkqSA+IGVudGVuXCA7Civlm6DnlLEgPiBpbicneXVcIDsKK+WcsOatqSA+IGNoaWhvXCA7CivmiYvpjKAgPiB0ZWpvdVwgOwor5r+25q2pID4ga2FwcG9cIDsKK+WcsOatjCA+IGppdXRhXCA7CivploDlvpIgPiBtb250b1wgOwor5Za26aSKID4gZWl5b3VcIDsKK+eCiuWkqyA+IHN1aWZ1XCA7CivmjL/nlLsgPiBzb3VnYVwgOwor5Zuz54mIID4genVoYW5cIDsKK+eyvuW6piA+IHNlaWRvXCA7Civmj7TlvJUgPiBlbicnaW5cIDsKK+a7nuiyqCA+IHRhaWthXCA7CivopoHli5kgPiB5b3VtdVwgOwor54Gr5bGxID4ga2F6YW5cIDsKK+ezu+WbsyA+IGtlaXp1XCA7CivlnKfmrbsgPiBhc3NoaVwgOwor5omL6YeRID4gdGVraW5cIDsKK+Wcn+awkSA+IGRvbWluXCA7CivngrnliY0gPiB0ZW1hZVwgOwor5o6i5p+7ID4gdGFuc2FcIDsKK+e0lOWMliA+IGp1bmthXCA7CivntI3lj5cgPiBub3VqdVwgOwor5omL6YWNID4gdGVoYWlcIDsKK+aLieiHtCA+IHJhY2hpXCA7CivooZvnlJ8gPiBlaXNlaVwgOwor6KOc5pW0ID4gaG9zZWlcIDsKK+imgeWFtyA+IHlvdWd1XCA7Civoo5zmlbAgPiBob3N1dVwgOwor54Kt5YyWID4gdGFua2FcIDsKK+aOiOaoqSA+IGp1a2VuXCA7CivntJTliKkgPiBqdW5yaVwgOwor562G6KiYID4gaGlra2lcIDsKK+e0sOS6iyA+IHNhaWppXCA7CivmjIfnpLogPiBzaGlqaVwgOwor57KX5oKqID4gc29ha3VcIDsKK+e0oOS9kyA+IHNvdGFpXCA7CivmvJToirggPiBlbmdlaVwgOwor57Oe5ZyfID4gZnVuZG9cIDsKK+mVt+WxhSA+IG5hZ2FpXCA7CivmvKvnvbUgPiBtYW5iYVwgOwor57SZ5L6hID4gc2hpa2FcIDsKK+err+mKrSA+IGhhc2VuXCA7CivlmInoqIAgPiBrYWdlblwgOwor57KY5bqmID4gbmVuZG9cIDsKK+euquespSA+IHRhbnN1XCA7CivntIDlhYMgPiBraWdlblwgOwor5Zuz5rOVID4genVob3VcIDsKK+a9pOebriA+IHVydW1lXCA7Civlm73mrYwgPiBrb2trYVwgOwor6ZaL5Z+6ID4ga2Fpa2lcIDsKK+a5lumdoiA+IGtvbWVuXCA7Civmj5rlsYsgPiBhZ2V5YVwgOwor5Zyf5pucID4gZG95b3VcIDsKK+e0jeS7mCA+IG5vdWZ1XCA7Civoo4/miYsgPiB1cmF0ZVwgOwor6J6f6Ju+ID4gbWVpZ2FcIDsKK+Wcp+aUvyA+IGFzc2VpXCA7CivplovlnJIgPiBrYWllblwgOwor5Zyf5pifID4gZG9zZWlcIDsKK+eCjuWFiSA+IGVua291XCA7CivmirzntbUgPiBvc2hpZVwgOwor5rmv6YqtID4geXVzZW5cIDsKK+mWsuWFtSA+IGVwcGVpXCA7Civoo5zlvKYgPiBob2dlblwgOwor57O45L6hID4gc2hpa2FcIDsKK+ihjOeBryA+IGFuZG9uXCA7CivmiYvoqbEgPiBzaHV3YVwgOwor5Zyn5o6SID4gYXBwYWlcIDsKK+aJi+iomCA+IHNodWtpXCA7CivllrbpgKAgPiBlaXpvdVwgOwor5Zyw5omAID4gamlzaG9cIDsKK+ezluWMliA+IHRvdWthXCA7CivllrbovrIgPiBlaW5vdVwgOwor6KOc5be7ID4gaG9rYW5cIDsKK+ijleW6piA+IHl1dWRvXCA7Civns4rlj6MgPiBrb2tvdVwgOwor5oqA6Iq4ID4gZ2lnZWlcIDsKK+mWueS6uiA+IGVuamluXCA7CivmjZzmn7sgPiBzb3VzYVwgOwor5omL6KO9ID4gdGVzZWlcIDsKK+WfjuS4iyA+IGpvdWthXCA7Civngavli6IgPiBrYXNlaVwgOwor5oud55yJID4gaGFpYmlcIDsKK+aMveatjCA+IGJhbmthXCA7CivmjojmiJIgPiBqdWthaVwgOwor57KX5aSnID4gc29kYWlcIDsKK+aIpuiyuyA+IHNlbnBpXCA7Civlm7rmnIkgPiBrb3l1dVwgOwor5rip6aGUID4gb25nYW5cIDsKK+eCiuS6iyA+IHN1aWppXCA7Civngo7kuIogPiBlbmpvdVwgOwor5o275oyrID4gbmVuemFcIDsKK+ijveWhqSA+IHNlaWVuXCA7CivngavliJEgPiBrYWtlaVwgOwor5ryU566XID4gZW56YW5cIDsKK+a4qemghiA+IG9uanVuXCA7CivplovljJYgPiBrYWlrYVwgOwor6KOc5bCOID4gaG9kb3VcIDsKK+WboOalrSA+IGluZ291XCA7CivmioDog70gPiBnaW5vdVwgOwor56qB6aObID4gdG9wcGlcIDsKK+WbveaXlyA+IGtva2tpXCA7Civlm7Pmm7ggPiB0b3Nob1wgOwor54Gr5YWJID4ga2Frb3VcIDsKK+ijnOWujCA+IGhva2FuXCA7CivnsKHmmJMgPiBrYW4nJ2lcIDsKK+ihkuawlyA+IGdlbmtpXCA7CivnsbPlr78gPiBiZWlqdVwgOwor5oqV57ayID4gdG9hbWlcIDsKK+ijveWbsyA+IHNlaXp1XCA7CivnspjlnJ8gPiBuZW5kb1wgOwor5pCN5L+dID4gc29ucG9cIDsKK+ijj+WxiyA+IHVyYXlhXCA7CivmjqrlrpogPiBzb3RlaVwgOwor5om26IKyID4gZnVpa3VcIDsKK+mWo+S4iyA+IGtha2thXCA7CivmiKboqJggPiBzZW5raVwgOwor5omL6JaEID4gdGV1c3VcIDsKK+euoeeQhiA+IGthbnJpXCA7CivlnKjluqsgPiB6YWlrb1wgOwor5o2n5oyBID4gaG91amlcIDsKK+erpeipsSA+IGRvdXdhXCA7Civonabom4QgPiBzaGFrb1wgOwor5o+05YW1ID4gZW5wZWlcIDsKK+WdkeWkqyA+IGtvdWZ1XCA7CivooqvlvL4gPiBoaWRhblwgOwor6KGA5rCXID4ga2Vra2lcIDsKK+WYieiCtCA+IGtha291XCA7CivlmajnlKggPiBraXlvdVwgOwor6ZaT5LujID4gbWFkYWlcIDsKK+Wcp+W3uyA+IGFra2FuXCA7CivmiJLorbcgPiBrYWlnb1wgOwor54Gv5LiLID4gdG91a2FcIDsKK+a8q+eUuyA+IG1hbmdhXCA7Civmj5rlj6UgPiBhZ2VrdVwgOwor5Zaa6LW3ID4ga2Fua2lcIDsKK+ijnOWhqyA+IGhvdGVuXCA7CivooaPmnI0gPiBpZnVrdVwgOwor57KX5ZOBID4gc29oaW5cIDsKK+Wcn+W3pSA+IGRva291XCA7CivmuIXpn7MgPiBzZWlvblwgOwor5Zug5pWwID4gaW5zdXVcIDsKK+aIkOiqniA+IHNlaWdvXCA7Civlm5vml6UgPiB5b2trYVwgOwor5omL6I2SID4gdGVhcmFcIDsKK+exs+WhqSA+IGJlaWVuXCA7Civmjqnlo5UgPiBlbmdvdVwgOwor5ZiG576OID4gdGFuYmlcIDsKK+idl+iZqyA+IGJhdHRhXCA7CivooaPmlpkgPiBpcnlvdVwgOwor5o2V5omLID4gaG9zaHVcIDsKK+WcqOWutiA+IHphaWtlXCA7Civoo5zlm54gPiBob2thaVwgOwor6KGb5pifID4gZWlzZWlcIDsKK+mWgOS4iyA+IG1vbmthXCA7CivooYzmnY4gPiBrb3VyaVwgOwor5Zm054GrID4gZnVua2FcIDsKK+eyl+WIqSA+IGFyYXJpXCA7CivooqvlrrMgPiBoaWdhaVwgOwor56+A5rCXID4gc2Vra2lcIDsKK+ijj+WcsCA+IHVyYWppXCA7CivpjY3ph5EgPiBtZWtraVwgOwor5ZiJ57SNID4ga2Fub3VcIDsKK+a3q+miqCA+IGlucHV1XCA7CivmiZPogIUgPiBkYXNoYVwgOwor5Zyw5aOwID4gamlnb2VcIDsKK+icv+ickiA+IGVuJydlblwgOwor5re76ZmEID4gdGVucHVcIDsKK+WbuuW9oiA+IGtva2VpXCA7Civmipjnm64gPiBvcmltZVwgOwor5Zu95bqrID4ga29ra29cIDsKK+a/g+W6piA+IG5vdWRvXCA7CivnrYbnpo0gPiBoaWtrYVwgOwor6Jy76JuJID4gdG9uYm9cIDsKK+ihjOaWuSA+IHl1a3VlXCA7CivooY3mlocgPiBlbmJ1blwgOwor6KO45YOPID4gcmF6b3VcIDsKK+Wbm+aJiyA+IHNoaWRlXCA7Civlm7PlvaIgPiB6dWtlaVwgOwor5Z6C5LiLID4gc3Vpa2FcIDsKK+icgui1tyA+IGhvdWtpXCA7CivvvLDvvKMgPiBwxKtzaMSrXCA7CivmiZPnt5ogPiBkYXNlblwgOwor5Zyw5ZuzID4gY2hpenVcIDsKK+ihqOaEjyA+IGh5b3VpXCA7CivmioDnoJQgPiBnaWtlblwgOwor5Zyf5aOMID4gZG9qb3VcIDsKK+aJi+e5lCA+IHRlb3JpXCA7Civoo7jkvZMgPiByYXRhaVwgOwor5Zuz5belID4genVrb3VcIDsKK+ihm+aJgCA+IGVpc2hvXCA7CivoobDlvq4gPiBzdWliaVwgOwor6KOP5ZCNID4gdXJhbmFcIDsKK+Wcn+WhiiA+IGRva2FpXCA7CivmiYvnt7QgPiB0ZXJlblwgOwor5Zyf5aGBID4gZG9ydWlcIDsKK+Wcn+WhgCA+IGRvYmVpXCA7CivllJDpn7MgPiB0b3VvblwgOwor5Zug5b6qID4gaW5qdW5cIDsKK+ewv+WkliA+IGJvZ2FpXCA7Civlm57lv4wgPiBrYWlraVwgOwor5o6h5ZCmID4gc2FpaGlcIDsKK+aKgOeboyA+IGdpa2FuXCA7Civlm73lrrYgPiBrb2trYVwgOwor5oiO6JG1ID4ganV1a2lcIDsKK+WZtOawlyA+IGZ1bmtpXCA7CivnqbrovLggPiBrdXV5dVwgOwor5Zyf5ZywID4gdG9jaGlcIDsKK+ijnOWFhSA+IGhvanV1XCA7CivlnZHlhJIgPiBrb3VqdVwgOwor5Zu65a6aID4ga290ZWlcIDsKK+WcsOWUhCA+IGppdXRhXCA7Civlm7rlroggPiBrb3NodVwgOwor5oyZ5o6qID4ga3lvc29cIDsKK+aJk+eulyA+IGRhc2FuXCA7CivlnZDlg48gPiB6YXpvdVwgOwor5Zyf5ZqiID4gZG9ub3VcIDsKK+ijgeWPryA+IHNhaWthXCA7CivlnLDlkbMgPiBjaGltaVwgOwor56qB6LW3ID4gdG9ra2lcIDsKK+WWtuiIjiA+IGVpc2hhXCA7Civlm57luLAgPiBrYWlraVwgOwor5ry45qyhID4gemVuamlcIDsKK+WWq+iMtiA+IGtpc3NhXCA7Civnqbrot68gPiBrdXVyb1wgOwor5Zu95aiBID4ga29rdWlcIDsKK+a9nOaZgiA+IHNlbmppXCA7CivlnLDljLogPiBjaGlrdVwgOwor5oyH5o+uID4gc2hpa2lcIDsKK+aMieaOkiA+IGFuYmFpXCA7Civoo5zku7sgPiBob25pblwgOwor5ryr5q2pID4gbWFucG9cIDsKK+exs+S+oSA+IGJlaWthXCA7CivooYbmhI8gPiBzaHV1aVwgOwor5ryB54GrID4gZ3lva2FcIDsKK+aHh+ipsSA+IGtvbndhXCA7CivnqbrosrsgPiBrdXVoaVwgOwor6JyJ6J2jID4gZnV5dXVcIDsKK+ibruiqniA+IGJhbmdvXCA7Civoo4XlhbcgPiBzb3VndVwgOwor5oiv57W1ID4gemFyZWVcIDsKK+WdkOS5lyA+IHpham91XCA7Civlm6PlrZAgPiBkYW5nb1wgOwor5Zyf5Y+wID4gZG9kYWlcIDsKK+a2vOmbqCA+IHJ5b3V1XCA7Civoo4XlgpkgPiBzb3ViaVwgOwor5Zug5a2QID4gaW5zaGlcIDsKK+aMieaJiyA+IGFuc2h1XCA7CivlnYrkuLsgPiBib3V6dVwgOwor6KGG5b6SID4gc2h1dG9cIDsKK+a8j+a0qSA+IHJvdWVpXCA7CivlnKfliLYgPiBhc3NlaVwgOwor5Zub5a2jID4gc2hpa2lcIDsKK+WWtue5lSA+IGVpemVuXCA7CivlmajmorAgPiBraWthaVwgOwor56e76aeQID4gaWNodXVcIDsKK+aMgeaIkiA+IGppa2FpXCA7CivomY7prZogPiBva296ZVwgOwor566X5pyoID4gc2FuZ2lcIDsKK+WcsOS+oSA+IGNoaWthXCA7CivmiYvnm7ggPiB0ZXNvdVwgOwor5Zmo5p2QID4ga2l6YWlcIDsKK+mRkeafuyA+IGthbnNhXCA7CivlnKflgJIgPiBhdHRvdVwgOwor5rW36bC7ID4gYW5hZ29cIDsKK+aLheaetiA+IHRhbmthXCA7Civpi63pi5IgPiBlaWhvdVwgOwor5o6S5LuWID4gaGFpdGFcIDsKK+aGgui6qyA+IHVraW1pXCA7CivmibnngrkgPiBoaXRlblwgOwor5Zyf5YG2ID4gZG9ndXVcIDsKK+ihjOWuriA+IGFuZ3V1XCA7CivlnLDkuIsgPiBjaGlrYVwgOwor566H5p2hID4ga2Fqb3VcIDsKK+Wcn+S+ryA+IGRva291XCA7CivmiKbnpo0gPiBzZW5rYVwgOwor562J5ripID4gdG91b25cIDsKK+a/g+WMliA+IG5vdWthXCA7Civlk4DpoZggPiBhaWdhblwgOwor5oy/5ZuzID4gc291enVcIDsKK+Wcn+S6uiA+IGRvamluXCA7Civmv4DljJYgPiBnZWtrYVwgOwor5oSb6aSQID4gYWlzYW5cIDsKK+WSvemgrSA+IGludG91XCA7CivnrofmlbAgPiBrb3N1dVwgOwor5ZaE576OID4gemVuYmlcIDsKK+aKleapnyA+IHRvdWtpXCA7Civom4fooYwgPiBkYWtvdVwgOwor5oqA5rOVID4gZ2lob3VcIDsKK+ihoeWZqCA+IGtvdWtpXCA7CivmtYXpu4QgPiBhc2FnaVwgOwor5oW26LOAID4ga2VpZ2FcIDsKK+aLrOW8pyA+IGtha2tvXCA7CivnrYnmr5QgPiB0b3VoaVwgOwor5oqb5qOEID4gaG91a2lcIDsKK+ihl+WbsyA+IGdhaXp1XCA7CivlnJLkuIEgPiBlbnRlaVwgOwor5ouH5oyHID4gYm9zaGlcIDsKK+aKleajhCA+IHRvdWtpXCA7CivmiZPngrkgPiBkYXRlblwgOwor5rW36ZynID4ga2FpbXVcIDsKK+a8j+aWlyA+IHJvdXRvXCA7Civnr4blrZcgPiB0ZW5qaVwgOwor5rih6Ii5ID4gdG9zZW5cIDsKK+a4oeiIqiA+IHRva291XCA7Civmu57mrKcgPiB0YWlvdVwgOwor5rer6KGMID4gaW5rb3VcIDsKK+evgOWtoyA+IHNla2tpXCA7CivnrofmiYAgPiBrYXNob1wgOwor5Zu65L2TID4ga290YWlcIDsKK+etlOahiCA+IHRvdWFuXCA7Civmi5jlvJUgPiBrb3VpblwgOwor56ul55S7ID4gZG91Z2FcIDsKK+a4qee/kiA+IHNhcmFpXCA7Civnr4DlqaYgPiBzZXBwdVwgOwor5ouQ5byVID4ga2FpaW5cIDsKK+WWneegtCA+IGthcHBhXCA7CivooYzlk6EgPiBrb3VpblwgOwor6KGX5Yy6ID4gZ2Fpa3VcIDsKK+m7hOmvmyA+IGtpZGFpXCA7CivlkozpoqggPiB3YWZ1dVwgOwor6J665peLID4gcmFzZW5cIDsKK+eon+itsCA+IHJpbmdpXCA7CivmhoLomZ4gPiB5dXVndVwgOwor5omL5rerID4gc2h1aW5cIDsKK+mLkui1tyA+IGhvdWtpXCA7CivmiZPms5UgPiBkYWhvdVwgOwor5rer6JWpID4gaW50b3VcIDsKK+enmOmNtSA+IGhpa2VuXCA7CivmibbmoZEgPiBmdXNvdVwgOwor6Jma6L6eID4ga3lvamlcIDsKK+ihm+WFtSA+IGVpaGVpXCA7CivmuKbnt5ogPiBrYXNlblwgOwor56q655+lID4ga2ljaGlcIDsKK+aEmumIjSA+IGd1ZG9uXCA7CivooYzli5kgPiBrb3VtdVwgOwor6byg6LypID4gc29oYWlcIDsKK+aMmeWPpSA+IGFnZWt1XCA7Civlm57ku5ggPiBrYWlmdVwgOwor56+E5ZuyID4gaGFuJydpXCA7CivmuKbntIsgPiBrYW1vblwgOwor5omN5rCXID4gc2Fpa2lcIDsKK+a1t+mHjCA+IGthaXJpXCA7CivpvKDouYogPiBzb2tlaVwgOwor5oim54GrID4gc2Vua2FcIDsKK+aKiuaPoSA+IGhhYWt1XCA7CivmgrLps7QgPiBoaW1laVwgOwor5rih57GzID4gdG9iZWlcIDsKK+aLs+WbuiA+IGdlbmtvXCA7CivmipXmiZMgPiB0b3VkYVwgOwor5oyH5ZG8ID4gc2hpa29cIDsKK+m6kum6nyA+IGtpcmluXCA7Civmi7flmaggPiBnb3VraVwgOwor5Zmo5a6YID4ga2lrYW5cIDsKK+mOlueKtiA+IHNham91XCA7CivmuqLmsLQgPiBpc3N1aVwgOwor5oWI6KiTID4gamlrdW5cIDsKK+a5lueVlCA+IGtvaGFuXCA7CivmtbfpgYsgPiBrYWl1blwgOwor5oaC6IumID4geXV1a3VcIDsKK+WXn+atjiA+IHNhdGFuXCA7CivmtbfovrogPiB1bWliZVwgOwor5oSb6LuKID4gYWlzaGFcIDsKK+aKiuaJiyA+IGhhc2h1XCA7CivmjIHlj4IgPiBqaXNhblwgOwor5omT5qOSID4gZGFib3VcIDsKK+a5r+eFjiA+IHl1c2VuXCA7Civmta7pgYogPiBmdXl1dVwgOwor5ryi5a2XID4ga2FuamlcIDsKK+aKkuaDhSA+IGpvam91XCA7Civnr4Dlj6UgPiBzZWtrdVwgOwor56e76Kq/ID4gaWNob3VcIDsKK+aMieWIhiA+IGFuYnVuXCA7CivmgqrprZQgPiBha3VtYVwgOwor5oqA5omLID4gZ2lzaHVcIDsKK+a5r+eBjCA+IHl1a2FuXCA7CivmiYvmobYgPiB0ZW9rZVwgOwor56iy6I23ID4gaW5hcmlcIDsKK+a6kOawjyA+IGdlbmppXCA7CivmipXlvbEgPiB0b3VlaVwgOwor5rW36LevID4ga2Fpcm9cIDsKK+aJtuaMgSA+IGZ1Y2hpXCA7CivmtabovrogPiB1cmFiZVwgOwor5ZKM6YeRID4gd2FraW5cIDsKK+m6nemmmSA+IGpha291XCA7CivpiI3pursgPiBkb25tYVwgOwor5ZWT56S6ID4ga2VpamlcIDsKK+aCqummrCA+IGFrdW1lXCA7CivmiYvmnKwgPiB0ZWhvblwgOwor5rib56OoID4gZ2VubWFcIDsKK+aCsumhmCA+IGhpZ2FuXCA7CivnqoHnoLQgPiB0b3BwYVwgOwor5rW36LGaID4gaXJ1a2FcIDsKK+aHkOeWkSA+IGthaWdpXCA7Civom4fnrqEgPiBqYWthblwgOwor5ZOA6KmpID4gYWlzaGlcIDsKK+a9ruS9jSA+IGNob3VpXCA7Civlk4DoqZ4gPiBhaXNoaVwgOwor5omT5pWwID4gZGFzdXVcIDsKK+aEmuirliA+IGd1cm9uXCA7CivmiKbmqZ8gPiBzZW5raVwgOwor5omA5pyfID4gc2hva2lcIDsKK+a8geWutiA+IGd5b2thXCA7CivmiYvmlqcgPiB0ZW9ub1wgOwor5ryU5aWPID4gZW5zb3VcIDsKK+m7memBjiA+IG1va2thXCA7Civmi53lj5cgPiBoYWlqdVwgOwor5rWq6LK7ID4gcm91aGlcIDsKK+aJi+aVsCA+IHRlc3V1XCA7CivmiLjmnb8gPiB0b2l0YVwgOwor5ryi5ZyfID4ga2FuZG9cIDsKK+a8lOWjhyA+IGVuZGFuXCA7CivmhJroqIggPiBndWtlaVwgOwor5rmv5rK7ID4gdG91amlcIDsKK+mJm+mMmCA+IGVuc3VpXCA7Civnr4DkvpsgPiBzZWtrdVwgOwor56uL5rS+ID4gcmlwcGFcIDsKK+azpemwjCA+IGRvam91XCA7CivnrYnlt64gPiB0b3VzYVwgOwor566h5Yy6ID4ga2Fua3VcIDsKK+aEmuimiyA+IGd1a2VuXCA7CivmioDluKsgPiBnaXNoaVwgOwor5oO56LW3ID4gamFra2lcIDsKK+aLkuWQpiA+IGt5b2hpXCA7CivpiZvpibEgPiBlbmtvdVwgOwor5ZGz6YaCID4gbWlyaW5cIDsKK+WRvemBiyA+IG1laXVuXCA7CivmioDlt6cgPiBnaWtvdVwgOwor5oqA5belID4gZ2lrb3VcIDsKK+m8u+iMuCA+IGJpam91XCA7CivpjKzno6ggPiByZW5tYVwgOwor56eY6KiIID4gaGlrZWlcIDsKK+engeiyuyA+IHNoaWhpXCA7CivmhI/oqLMgPiBpeWFrdVwgOwor6JiH6YCjID4gc29yZW5cIDsKK+WTuuiCsiA+IGhvaWt1XCA7CivmtL7pgaMgPiBoYWtlblwgOwor5oOz6LW3ID4gc291a2lcIDsKK+mKheiyqCA+IGRvdWthXCA7Civmgo3ppqwgPiBrYW5iYVwgOwor5oiv5pu4ID4gZ2lzaG9cIDsKK+mKmOiomCA+IG1laWtpXCA7CivmhJrooYwgPiBndWtvdVwgOwor56m655aOID4ga3V1c29cIDsKK+a1ruiogCA+IGZ1Z2VuXCA7CivmvIHlpKsgPiBneW9mdVwgOwor5oud5YW3ID4gaGFpZ3VcIDsKK+aIuOaVsCA+IGtvc3V1XCA7Civms6Lpq5ggPiBoYWtvdVwgOwor5oim5p6cID4gc2Vua2FcIDsKK+mKgOiyqCA+IGdpbmthXCA7Civnq6/mnKwgPiBoYWhvblwgOwor6bq76YWUID4gbWFzdWlcIDsKK+a0i+mWkyA+IHlvdW1hXCA7CivpiYTpjpYgPiB0ZXNzYVwgOwor56eB6K2wID4gc2hpZ2lcIDsKK+emgemMriA+IGtpbmtvXCA7CivmtYHou6IgPiBydXRlblwgOwor5ryi5ZKMID4ga2Fud2FcIDsKK+aJi+aKgCA+IHNodWdpXCA7CivpvLvohZQgPiBiaWtvdVwgOwor5rW06KGjID4geW9rdWlcIDsKK+a8geWgtCA+IGd5b2JhXCA7CivmuKbnirYgPiBrYWpvdVwgOwor5oSP6KGoID4gaWh5b3VcIDsKK+aIr+aWhyA+IGdpYnVuXCA7CivmtrLogqUgPiBla2loaVwgOwor5oqA5a6YID4gZ2lrYW5cIDsKK+engeiqniA+IHNoaWdvXCA7CivmiKbmmYIgPiBzZW5qaVwgOwor5rer56WgID4gaW5zaGlcIDsKK+epuueQhiA+IGt1dXJpXCA7CivmiYDmjIEgPiBzaG9qaVwgOwor5oeQ54KJID4ga2Fpcm9cIDsKK+a6gOacnyA+IG1hbmtpXCA7CivllrbmnpcgPiBlaXJpblwgOwor5rmW5rC0ID4ga29zdWlcIDsKK+WSjOiumiA+IHdhc2FuXCA7Civnp4HoqJggPiBzaGlraVwgOwor5oim5peXID4gc2Vua2lcIDsKK+err+aVsCA+IGhhc3V1XCA7CivlmJjlrZcgPiB1c29qaVwgOwor5oiQ5qGIID4gc2VpYW5cIDsKK+eliOmhmCA+IGtpZ2FuXCA7CivmuKnngrkgPiBvbnRlblwgOwor5rOi6aCtID4gaGF0b3VcIDsKK+aIkOaenCA+IHNlaWthXCA7CivmhJvolLUgPiBhaXpvdVwgOwor6bqm6YWSID4gYmlpcnVcIDsKK+WQjemmrCA+IG1laWJhXCA7CivlkozoqJMgPiB3YWt1blwgOwor5oi45oi4ID4ga29rb3VcIDsKK+WSjOinoyA+IHdha2FpXCA7Civms6LpnaIgPiBoYW1lblwgOwor566h5LiLID4ga2Fua2FcIDsKK+aJi+W9kyA+IHRlYXRlXCA7Civmgrzovp4gPiB0b3VqaVwgOwor56eY6JS1ID4gaGl6b3VcIDsKK+eosuepgiA+IGluYWhvXCA7CivpvLvnt5IgPiBoYW5hb1wgOwor5ZKM6KO9ID4gd2FzZWlcIDsKK+mLpOewviA+IGpvcmVuXCA7CivnqK7nqK4gPiBzaHVqdVwgOwor5ri45rOzID4geXV1ZWlcIDsKK+WSjOijhSA+IHdhc291XCA7Civmi4Xkv50gPiB0YW5wb1wgOwor5ZKM6KOBID4gd2FzYWlcIDsKK+aGguebriA+IHVraW1lXCA7Civph47pto8gPiB5YWtlaVwgOwor5rip5rmvID4gb250b3VcIDsKK+WQjOmfsyA+IGRvdW9uXCA7Civmhq7nhLYgPiBidXplblwgOwor5oKq6YGLID4gYWt1dW5cIDsKK+aHuOaetiA+IGtlbmdhXCA7CivmgqPpg6ggPiBrYW5idVwgOwor5ryB5Yy6ID4gZ3lva3VcIDsKK+aLieS4gSA+IHJhdGVuXCA7CivolqzpkbUgPiB5YWthblwgOwor6YqY6I+TID4gbWVpa2FcIDsKK+icnOafkSA+IG1pa2FuXCA7Civpu5LooaMgPiBrb2t1ZVwgOwor5rip5rOJID4gb25zZW5cIDsKK+aCoOmBoCA+IHl1dWVuXCA7CivmiKbmhI8gPiBzZW4nJ2lcIDsKK+aCn+mBkyA+IGdvZG91XCA7CivlkbPoposgPiBhamltaVwgOwor5rih5rW3ID4gdG9rYWlcIDsKK+WWtuaJgCA+IGVpc2hvXCA7CivmuKnmsLQgPiBvbnN1aVwgOwor6by756uvID4gYml0YW5cIDsKK+a4oea0iyA+IHRveW91XCA7CivmhJvogrIgPiBhaWlrdVwgOwor5ruF5aSaID4gbWV0dGFcIDsKK+WPt+mfsyA+IGdvdW9uXCA7Civmt6vnjKUgPiBpbndhaVwgOwor5ZaE5p6cID4gemVua2FcIDsKK+aDheiqvCA+IGpvdWdpXCA7CivmvIHlhbcgPiBneW9ndVwgOwor5oKq6LevID4gYWt1cm9cIDsKK+a1heiciiA+IGFzYXJpXCA7Civmg4XoqbEgPiBqb3V3YVwgOwor56iu55quID4gc2h1aGlcIDsKK+aEmuiAhSA+IGd1c2hhXCA7CivmhJrogIMgPiBndWtvdVwgOwor5oim5b6MID4gc2VuZ29cIDsKK+mJm+ijvSA+IGVuc2VpXCA7CivnpoDorbAgPiByaW5naVwgOwor5omN5aqbID4gc2FpZW5cIDsKK+aJh+WtkCA+IHNlbnN1XCA7CivmhbDnlZkgPiBpcnl1dVwgOwor56e757GNID4gaXNla2lcIDsKK+mHjummrCA+IG5vdW1hXCA7Civnq6/luqcgPiB0YW56YVwgOwor56aF6KmxID4gemVud2FcIDsKK+aIkeaFoiA+IGdhbWFuXCA7CivllpzmjaggPiBraXNoYVwgOwor5Y+k6aKoID4ga29mdXVcIDsKK+eosueUsCA+IGluYWRhXCA7Civlj5fpqJMgPiBqdWtlblwgOwor56m65rCXID4ga3V1a2lcIDsKK+aIkeaDhSA+IGdham91XCA7CivmiY3lpbMgPiBzYWlqb1wgOwor56m65q+NID4ga3V1Ym9cIDsKK+WUvua2siA+IGRhZWtpXCA7CivmuoDluqcgPiBtYW56YVwgOwor5Za25bqtID4gZWl0ZWlcIDsKK+emgeijoSA+IGtpbnJpXCA7CivnpoHoo48gPiBraW5yaVwgOwor5ZGz6JW+ID4gbWlyYWlcIDsKK+iZmuepuiA+IGtva3V1XCA7CivmgrLoprMgPiBoaWthblwgOwor5re15rqQID4gZW5nZW5cIDsKK+WSjOiIuSA+IHdhc2VuXCA7CivmtIvoqp4gPiB5b3Vnb1wgOwor5oWI55y8ID4gamlnZW5cIDsKK+WWtuW3oyA+IGVpc291XCA7CivnpL7pgYsgPiBzaGF1blwgOwor5om55YikID4gaGloYW5cIDsKK+aJi+WeoiA+IHRlYWthXCA7Civono3lkowgPiB5dXV3YVwgOwor5oKq6KiIID4gYWtrZWlcIDsKK+aJueWHhiA+IGhpanVuXCA7CivpvJPnq6UgPiBrb2RvdVwgOwor5ZCP6YGTID4gcm9kb3VcIDsKK+aKleS4jiA+IHRvdXlvXCA7CivmipXkuIsgPiB0b3VrYVwgOwor5oe45oOzID4ga2Vzb3VcIDsKK+WPl+mboyA+IGp1bmFuXCA7CivmiLjlpJYgPiBrb2dhaVwgOwor5oe65oKUID4gemFuZ2VcIDsKK+mLs+eJqSA+IGltb25vXCA7CivmiY3lmaggPiBzYWlraVwgOwor56uq5a2QID4ganVzaGlcIDsKK+espuWQiCA+IGZ1Z291XCA7Civmt7vmsLQgPiBzb3V6dVwgOwor56ym5Y+3ID4gZnVnb3VcIDsKK+aKgOWAkiA+IGdpdG91XCA7CivmuKnmmpYgPiBvbmRhblwgOwor562J5L6hID4gdG91a2FcIDsKK+a4oeadpSA+IHRvcmFpXCA7CivlkI3ovp4gPiBtZWlqaVwgOwor5oGl6YOoID4gY2hpYnVcIDsKK+erpeWtkCA+IGRvdWppXCA7Civmh7jlv7UgPiBrZW5lblwgOwor5oKq6KGMID4gYWtrb3VcIDsKK+mFuOm8uyA+IHNhbmJpXCA7Civmt6HmuZYgPiB0YW5rb1wgOwor6buE6IqxID4ga291a2FcIDsKK+aIkOWwsSA+IGpvdWp1XCA7Civnp5/nqI4gPiBzb3plaVwgOwor5ZaE5oSPID4gemVuJydpXCA7Civll5/lmIYgPiBzYXRhblwgOwor5riF5qWaID4gc2Vpc29cIDsKK+m8oOeblyA+IHNvdG91XCA7Civms7Doqp4gPiB0YWlnb1wgOwor5oSb56S+ID4gYWlzaGFcIDsKK+ayv+mBkyA+IGVuZG91XCA7CivllqrlrrYgPiBzb3VrYVwgOwor5Y+k6YqtID4ga29zZW5cIDsKK+ekvuiyuyA+IHNoYWhpXCA7Civnq6XlpbMgPiBkb3Vqb1wgOwor5ZCm6KqNID4gaGluaW5cIDsKK+a6tuWMliA+IHlvdWthXCA7CivmuZblupUgPiBrb3RlaVwgOwor5reL5ryTID4gcmlucmlcIDsKK+aJgOWToSA+IHNob2luXCA7CivlmInkvosgPiBrYXJlaVwgOwor5riF5qCEID4gc2VpZWlcIDsKK+m8oOeWqyA+IHNvZWtpXCA7CivlloTlvowgPiB6ZW5nb1wgOwor56WI6KuLID4ga2lzZWlcIDsKK+azleiyqCA+IGhvdWthXCA7CivnpYjoqpMgPiBraXNlaVwgOwor5rWB572qID4gcnV6YWlcIDsKK+err+WdkCA+IHRhbnphXCA7Civll5rlkr0gPiBvZXRzdVwgOwor5oGp6LWmID4gb25zaGFcIDsKK+WSjOe0mSA+IHdhc2hpXCA7CivmiYvli6IgPiB0ZXplaVwgOwor5rib5pGpID4gZ2VubWFcIDsKK+WPsOi+niA+IGRhaWppXCA7Civmt5jmsbAgPiB0b3V0YVwgOwor5oGp6LOcID4gb25zaGlcIDsKK+a0kuiQvSA+IHNoYXJlXCA7CivmtbfnoIIgPiBrYWlzYVwgOwor5omL5YmNID4gdGVtYWVcIDsKK+WPsOi8qiA+IGRhaXdhXCA7CivmuZblsrggPiBrb2dhblwgOwor5rS1576OID4ganVuYmlcIDsKK+WPpOmBkyA+IGtvZG91XCA7CivnrKzkupQgPiBkYWlnb1wgOwor56ys5LqMID4gZGFpbmlcIDsKK+ekuuirhyA+IGppZGFuXCA7Civph47pg44gPiB5YXJvdVwgOwor6YeO6YG4ID4geWFzZW5cIDsKK+azleiqniA+IGhvdWdvXCA7CivlkIjorbAgPiBnb3VnaVwgOwor5rOV6KmxID4gaG91d2FcIDsKK+axl+mmrCA+IGthbmJhXCA7Civmh4fmhI8gPiBrb24nJ2lcIDsKK+aHiuaCqSA+IG91bm91XCA7CivmiZPlgJIgPiBkYXRvdVwgOwor5ZCN6KqJID4gbWVpeW9cIDsKK+aEmueXtCA+IGd1Y2hpXCA7Civllrblm6MgPiBlaWRhblwgOwor5rC06baPID4ga3VpbmFcIDsKK+WPiemKgyA+IHNhanV1XCA7CivmuKnmg4UgPiBvbmpvdVwgOwor56e754mSID4gaWNob3VcIDsKK+eri+WkjyA+IHJpa2thXCA7CivllJDmqpwgPiB0b3VoaVwgOwor5oOF576pID4gam91Z2lcIDsKK+mMpuaXlyA+IGtpbmtpXCA7CivmhJvnlKggPiBhaXlvdVwgOwor5rOV6KaPID4gaG91a2lcIDsKK+aHiOaAoCA+IGdldGFpXCA7Civnp5/nlYwgPiBzb2thaVwgOwor5oSa55SfID4gZ3VzZWlcIDsKK+mHiOi/piA+IHNoYWthXCA7Civmua/lnqIgPiB5dWFrYVwgOwor5oGL6LevID4ga29pamlcIDsKK+a0vuexsyA+IGhhYmVpXCA7CivmiJDlm6AgPiBzZWlpblwgOwor5Y6m6ZaAID4ga2Ftb25cIDsKK+azleiiqyA+IGhhcHBpXCA7CivmtIvoiJ4gPiB5b3VidVwgOwor6JmO54u8ID4ga29yb3VcIDsKK+WPpOi2viA+IGtvc2hpXCA7Civol43oibIgPiBhaWlyb1wgOwor56uv5Y2IID4gdGFuZ29cIDsKK+iZmueEoSA+IGt5b211XCA7CivmiYvku6MgPiB0ZWRhaVwgOwor5oSb546pID4gYWlnYW5cIDsKK+WPl+i6qyA+IHVrZW1pXCA7Civmg6jnpo0gPiBzYW5rYVwgOwor5rih5b6hID4gdG9neW9cIDsKK+awtOmtlCA+IHN1aW1hXCA7Civph47otqMgPiB5YXNodVwgOwor5Y+k6LOiID4ga29rZW5cIDsKK+aIpuWLmSA+IHNlbm11XCA7Civmta7nlJ8gPiBmdXNlaVwgOwor5b+r6Z+zID4ga2Fpb25cIDsKK+WWp+WYqSA+IGtlbmthXCA7CivnqJrmsJcgPiBjaGlraVwgOwor5rip5bivID4gb250YWlcIDsKK+aJgOS9nCA+IHNob3NhXCA7Civlj6TosaogPiBrb2dvdVwgOwor6YeR6LKoID4ga2lua2FcIDsKK+aEm+eKrCA+IGFpa2VuXCA7CivmtbfnjbogPiByYWtrb1wgOwor5oiQ5ZOhID4gc2VpaW5cIDsKK+a6luWCmSA+IGp1bmJpXCA7Civmg6PnpL4gPiBzb3VqYVwgOwor56Ov6L66ID4gaXNvYmVcIDsKK+mJm+euoSA+IGVua2FuXCA7CivpvLvmsYEgPiBiaWp1dVwgOwor5rW354u4ID4ga2FpcmlcIDsKK+aDsOecoCA+IGRhbWluXCA7CivmiL/kuosgPiBib3VqaVwgOwor5Y+Z6LOcID4gam9zaGlcIDsKK+aIkOWQpiA+IHNlaWhpXCA7Civlj5fotIggPiBqdXpvdVwgOwor5oKq5721ID4gYWt1YmFcIDsKK+aIkOWPpSA+IHNlaWt1XCA7CivmiYDkuI4gPiBzaG95b1wgOwor5oKj6ICFID4ga2FuamFcIDsKK+WPpOiruiA+IGtvZ2VuXCA7Civlj6/oppYgPiBrYXNoaVwgOwor5Y+l6KqtID4ga3V0b3VcIDsKK+m7hOemjSA+IGtvdWthXCA7CivnqLLmnKggPiBpbmFnaVwgOwor5oim5YKZID4gc2VuYmlcIDsKK+WPo+iqniA+IGtvdWdvXCA7Civlj6ToqakgPiBrb3NoaVwgOwor5oi45Li7ID4ga29zaHVcIDsKK+mHjOisoSA+IHJpeW91XCA7Civlj6ToqJMgPiBrb2t1blwgOwor56m65bejID4gYWtpc3VcIDsKK+WPpOiogCA+IGtvZ2VuXCA7CivmgqrnuIEgPiBha3VlblwgOwor5rip5a2YID4gb256b25cIDsKK+WPl+ismyA+IGp1a291XCA7CivljbDpnaIgPiBpbm1lblwgOwor5rG96LuKID4ga2lzaGFcIDsKK+WPoeimpyA+IGVpcmFuXCA7Civpu4TnoIIgPiBrb3VzYVwgOwor56mO5omNID4gZWlzYWlcIDsKK+mHjOiogCA+IHJpZ2VuXCA7CivljZjpqI4gPiB0YW5raVwgOwor6YaN6YaQID4gZGFpZ29cIDsKK+a4iOW6piA+IHNhaWRvXCA7CivljbHpm6MgPiBraW5hblwgOwor5rOz6ICFID4gZWlzaGFcIDsKK+WQjeiPkyA+IG1laWthXCA7Civlj4Los4AgPiBzYW5nYVwgOwor5Y2x6Zm6ID4ga2lrZW5cIDsKK+WWtuWAiSA+IGVpc291XCA7CivllqrlhbcgPiBzb3VndVwgOwor5b+F6aCIID4gaGlzc3VcIDsKK+aGguaHvCA+IHl1dWt1XCA7Civlj43oqp4gPiBoYW5nb1wgOwor6by75qC5ID4gYmlrb25cIDsKK+WPi+iqvCA+IHl1dWdpXCA7CivlkI3oirEgPiBtZWlrYVwgOwor5rG66LW3ID4ga2Vra2lcIDsKK+m6u+edoSA+IG1hc3VpXCA7Civlj43oqLQgPiBoYW5zb1wgOwor6Yut5pWPID4gZWliaW5cIDsKK+iYh+eUnyA+IHNvc2VpXCA7CivmhJvmtrIgPiBhaWVraVwgOwor5Y+C6K2wID4gc2FuZ2lcIDsKK+WQjeiIlyA+IG1laWhvXCA7CivmtL7nlJ8gPiBoYXNlaVwgOwor56eY5rmvID4gaGl0b3VcIDsKK+m7hOeWuCA+IG91ZGFuXCA7CivmsJfpoqggPiBraWZ1dVwgOwor5rW35re1ID4ga2FpZW5cIDsKK+eptOWtkCA+IGFuYWdvXCA7Civlloflj60gPiByYXBwYVwgOwor6Y285Yy7ID4gaGFyaWlcIDsKK+aAquionSA+IGtlZ2VuXCA7CivolqznvZAgPiB5YWthblwgOwor6Jas57y2ID4geWFrYW5cIDsKK+aAneitsCA+IHNoaWdpXCA7CivnqY/lvZMgPiBvbnRvdVwgOwor6YeO6JuuID4geWFiYW5cIDsKK+WNsOmRkSA+IGlua2FuXCA7CivmgKjoqIAgPiBlbmdlblwgOwor5Y2I6aSQID4gZ29zYW5cIDsKK+W+rumiqCA+IGJpZnV1XCA7CivmuK/lm7MgPiBrb3V6dVwgOwor5rGa6L6xID4gb2pva3VcIDsKK+WTgOatkyA+IGFpa2FuXCA7Civmta7muLggPiBmdXl1dVwgOwor6JaE6I23ID4gaGFra2FcIDsKK+mKg+eBqyA+IGp1dWthXCA7CivmhJrmsJEgPiBndW1pblwgOwor56eY5rOVID4gaGlob3VcIDsKK+WRiOekuiA+IHRlaWppXCA7CivllqrkuLsgPiBtb3NodVwgOwor5Y2X6Zi/ID4gbmFuJydhXCA7Civmta7mtaogPiBmdXJvdVwgOwor6buE54+tID4gb3VoYW5cIDsKK+a4vuWQjSA+IGFkYW5hXCA7CivmtbfmsJcgPiBrYWlraVwgOwor5b6h6aOvID4gZ29oYW5cIDsKK+awl+majyA+IGtpenVpXCA7CivlkI3nvqkgPiBtZWlnaVwgOwor5rOi57eaID4gaGFzZW5cIDsKK+aymeialSA+IGdva2FpXCA7CivlkIznvqkgPiBkb3VnaVwgOwor5Y2R6ZmLID4gaGlyb3VcIDsKK+awkemcgCA+IG1pbmp1XCA7CivnqIDmm7ggPiBraXNob1wgOwor6Jma5qCEID4ga3lvZWlcIDsKK+a2heangyA+IG5laGFuXCA7Civmt7vlrZcgPiBzb2VqaVwgOwor5ZCI5769ID4ga2FwcGFcIDsKK+WToeaVsCA+IGluenV1XCA7Civmta7msJcgPiB1d2FraVwgOwor5rOi57SLID4gaGFtb25cIDsKK+emheeUuyA+IHplbmdhXCA7CivnqbTloLQgPiBhbmFiYVwgOwor56KR6YqYID4gaGltZWlcIDsKK+WSjOa8oiA+IHdha2FuXCA7Civmh5Dlj6QgPiBrYWlrb1wgOwor5oSP5qyyID4gaXlva3VcIDsKK+aDheeQhiA+IGpvdXJpXCA7Civpi63mhJ8gPiBlaWthblwgOwor6YeO6I+cID4geWFzYWlcIDsKK+WPpOiMtiA+IGtvY2hhXCA7CivnpZ7npYcgPiBqaW5naVwgOwor5rWE54GrID4gam91a2FcIDsKK+elnuekviA+IGppbmphXCA7Civpu4Tnh5AgPiBvdXJpblwgOwor5rWF54CsID4gYXNhc2VcIDsKK+ayueiEgiA+IHl1c2hpXCA7CivlvqHpm6MgPiBnb25hblwgOwor6Ymb54mIID4gZW5iYW5cIDsKK+mHjeiNtyA+IGp1dWthXCA7Civom7nljJYgPiB5b3VrYVwgOwor6YeO6I2JID4geWFzb3VcIDsKK+W+oemZsCA+IG9rYWdlXCA7Civlj6/og70gPiBrYW5vdVwgOwor5Y6f6KqeID4gZ2VuZ29cIDsKK+ialeW6pyA+IHNhbnphXCA7CivmsLTpgYsgPiBzdWl1blwgOwor5rip5Y6aID4gb25rb3VcIDsKK+a5luS4iiA+IGtvam91XCA7Civlj7Pnv7wgPiB1eW9rdVwgOwor6YqA5rOiID4gZ2lucGFcIDsKK+WOmuiqvCA+IGtvdWdpXCA7CivlvozpoacgPiBrb3Vrb1wgOwor6YqA5rKzID4gZ2luZ2FcIDsKK+aFleaDhSA+IGJvam91XCA7CivlkozmtIsgPiB3YXlvdVwgOwor5ZWW5ZG1ID4gdGFua2FcIDsKK+WQjeewvyA+IG1laWJvXCA7CivljLvplbcgPiBpY2hvdVwgOwor5Yy66ZaTID4ga3VrYW5cIDsKK+a0i+eUuyA+IHlvdWdhXCA7Civmt4vlt7QgPiByaW5wYVwgOwor5ZaE5LqLID4gemVuamlcIDsKK+a4puWLlSA+IGthZG91XCA7Civolqznpo0gPiB5YWtrYVwgOwor5oWH5oeDID4gaW5naW5cIDsKK+W/teiqpiA+IG5lbmp1XCA7CivmhJvmm7ggPiBhaXNob1wgOwor56WI56W3ID4ga2l0b3VcIDsKK+WMlemmliA+IGhpc2h1XCA7Civmsr/nt5ogPiBlbnNlblwgOwor6YeR6IKlID4ga2lucGlcIDsKK+WPpOiBliA+IGtvc2VpXCA7Civmg4XnhJQgPiBqb3VlblwgOwor5Y6f6KKrID4gZ2VucGlcIDsKK+iVl+iNiSA+IHJvc291XCA7Civmt6vlpZQgPiBpbnBvblwgOwor5Y+j6ICzID4ga291amlcIDsKK+WPpOiAgSA+IGtvcm91XCA7CivmsJfph40gPiBraW9tb1wgOwor5Y2X6YO9ID4gbmFudG9cIDsKK+WNl+mDqCA+IG5hbmJ1XCA7CivpibHmsrkgPiBrb3V5dVwgOwor5oOF54KOID4gam91ZW5cIDsKK+a3q+WjsiA+IGluYmFpXCA7Civnp5jmnKwgPiBoaWhvblwgOwor5oSa5pinID4gZ3VtYWlcIDsKK+a1gea1qiA+IHJ1cm91XCA7Civmg4XngasgPiBqb3VrYVwgOwor5rC06LevID4gc3Vpcm9cIDsKK+aFiOaBtSA+IGppa2VpXCA7Civnp5jmm7ggPiBoaXNob1wgOwor5rCX6YWNID4ga2VoYWlcIDsKK+iWrOeglCA+IHlhZ2VuXCA7Civlj5fog44gPiBqdXRhaVwgOwor5b6u6Ya6ID4gYmlrdW5cIDsKK+WNiumHjCA+IGhhbnJpXCA7Civms5Xnp5EgPiBob3VrYVwgOwor5rK557SZID4geXVzaGlcIDsKK+eosuWtkCA+IGluYWdvXCA7CivmsJfpgZMgPiBraWRvdVwgOwor5q+U6aGeID4gaGlydWlcIDsKK+a1geawkSA+IHJ1bWluXCA7CivljYPph4wgPiBzZW5yaVwgOwor56eY5pa5ID4gaGlob3VcIDsKK+WQjOelliA+IGRvdXNvXCA7CivmhYvluqYgPiB0YWlkb1wgOwor6YmE54GrID4gdGVra2FcIDsKK+ays+ezuyA+IGtha2VpXCA7Civnp4HmoYggPiBzaGlhblwgOwor56aN5rqQID4ga2FnZW5cIDsKK+egtOmhlCA+IGhhZ2FuXCA7CivljZHov5EgPiBoaWtpblwgOwor6buE5rKzID4ga291Z2FcIDsKK+W+oemHnCA+IG9rYW1hXCA7CivlvqHph5EgPiBva2FuZVwgOwor5rWm5puyID4gdXJhd2FcIDsKK+a0u+awlyA+IGtha2tpXCA7CivljYrpgJQgPiBoYW50b1wgOwor56iL5bqmID4gdGVpZG9cIDsKK+mHjee4gSA+IGp1dWVuXCA7Civlj6TntJkgPiBrb3NoaVwgOwor6YOo6aaWID4gYnVzaHVcIDsKK+mDvembuyA+IHRvZGVuXCA7CivpvJPmiYsgPiBrb3NodVwgOwor6YqD5p62ID4ganV1a2FcIDsKK+a3t+WSjCA+IGtvbndhXCA7Civmsb3oiYcgPiBraXRlaVwgOwor5rG96Ii5ID4ga2lzZW5cIDsKK+avlOmaoyA+IGhpcmluXCA7CivmhJrmjJkgPiBndWt5b1wgOwor5Y+L576pID4geXV1Z2lcIDsKK+WPpOexsyA+IGtvbWFpXCA7Civlk4DmhqsgPiBhaWJpblwgOwor5rib5L6hID4gZ2Vua2FcIDsKK+WTgOaGkCA+IGFpcmVuXCA7Civlvanpm7IgPiBzYWl1blwgOwor5rKz56ulID4ga2FwcGFcIDsKK+a3teWPoiA+IGVuc291XCA7Civpg6jpoZ4gPiBidXJ1aVwgOwor5ZOA5oSfID4gYWlrYW5cIDsKK+azleeahyA+IGhvdW91XCA7Civlk4DmhI0gPiBhaWJpblwgOwor6JSs6I+cID4gc29zYWlcIDsKK+ejqOiAlyA+IG1hbW91XCA7Civmta7mj5ogPiBmdXlvdVwgOwor5ZKM5pysID4gd2Fob25cIDsKK+a2suWuiSA+IGVraWFuXCA7CivnqbrkvZAgPiBrdXVzYVwgOwor5rih5LiWID4gdG9zZWlcIDsKK+WPl+e0jSA+IGp1bm91XCA7CivllJDlnJ8gPiB0b3Vkb1wgOwor5re75YqgID4gdGVua2FcIDsKK+WTgOaDhSA+IGFpam91XCA7Civlk4DmgrwgPiBhaXRvdVwgOwor5ZKM5pu4ID4gd2FzaG9cIDsKK+aEm+aGkCA+IGFpcmVuXCA7CivnoLTploAgPiBoYW1vblwgOwor5Y+X57K+ID4ganVzZWlcIDsKK+aCqua8oiA+IGFra2FuXCA7CivljZHos6QgPiBoaXNlblwgOwor5oaC5ZOtID4gdWtpbmVcIDsKK+WNkeizjiA+IGhpc2VuXCA7Civlj5fnsokgPiBqdWZ1blwgOwor6YOo6Z2iID4gYnVtZW5cIDsKK+m8u+WtlCA+IGJpa291XCA7Civnp5HmjJkgPiBrYWt5b1wgOwor55+u6baPID4gY2hhYm9cIDsKK+avq+mHkCA+IGdvdXJpXCA7CivmhJvmg7MgPiBhaXNvdVwgOwor5oOF5q2MID4gam91a2FcIDsKK+m7hOaliiA+IHRzdWdlXCA7CivmhJvmg4UgPiBhaWpvdVwgOwor6Yuz5Z6LID4gaWdhdGFcIDsKK+W+ruizpCA+IGJpc2VuXCA7Civlvq7os44gPiBiaXNlblwgOwor5b6M6YOoID4ga291YnVcIDsKK+WNsOihjCA+IGlua291XCA7CivlkI3nlLsgPiBtZWlnYVwgOwor6byg5bejID4gc29zb3VcIDsKK+mDqOmaiiA+IGJ1dGFpXCA7CivlkozmlocgPiB3YWJ1blwgOwor5rG9572QID4ga2lrYW5cIDsKK+axvee8tiA+IGtpa2FuXCA7CivmhI/mhb4gPiBpeW9rdVwgOwor5Y2Y6KqeID4gdGFuZ29cIDsKK+iWhOedgCA+IHVzdWdpXCA7Civmg4XmqZ8gPiBqb3VraVwgOwor5rOi54q2ID4gaGFqb3VcIDsKK+ekuuePviA+IGppZ2VuXCA7Civpu4TmoYMgPiBvdXRvdVwgOwor5Y+k56WgID4ga29zaGlcIDsKK+iWhOebriA+IHVzdW1lXCA7CivlkZHmsJcgPiBub25raVwgOwor5b6S6LypID4gdG9oYWlcIDsKK+azleeQhiA+IGhvdXJpXCA7Civph4znqIsgPiByaXRlaVwgOwor5Y2Y6KiYID4gdGFua2lcIDsKK+ehrOiyqCA+IGtvdWthXCA7Civph47npr0gPiB5YWtpblwgOwor6YeN56eRID4ganV1a2FcIDsKK+mDqOmWgCA+IGJ1bW9uXCA7CivlvoXpgb8gPiB0YWloaVwgOwor5oWI5aeRID4ga3V3YWlcIDsKK+ibh+S9kyA+IGphdGFpXCA7CivmhJ/luqYgPiBrYW5kb1wgOwor6byO5bqnID4gdGVpemFcIDsKK+azleeOiyA+IGhvdW91XCA7CivnqL3lj6QgPiBrZWlrb1wgOwor5oSa5byfID4gZ3V0ZWlcIDsKK+aEmuW8hCA+IGd1cm91XCA7CivpvLvlo7AgPiBiaXNlaVwgOwor6Jar54WZID4ga3VuZW5cIDsKK+WPo+eikSA+IGtvdWhpXCA7CivlvoDpgoQgPiBvdWthblwgOwor5rKD57SgID4geW91c29cIDsKK+WQiOeQhiA+IGdvdXJpXCA7CivmsrvnmZIgPiBjaGl5dVwgOwor5oKy5q2OID4gaGl0YW5cIDsKK+axmuiHrSA+IG9zaHV1XCA7CivljZHoqIAgPiBoaWdlblwgOwor5Yqg6b2iID4ga2FyZWlcIDsKK+W+gemAlCA+IHNlaXRvXCA7CivpvKDlrrMgPiBzb2dhaVwgOwor5byn6auYID4ga29rb3VcIDsKK+mJm+advyA+IGVuYmFuXCA7CivmsJHoqbEgPiBtaW53YVwgOwor5q+U6YeNID4gaGlqdXVcIDsKK+WNkeimiyA+IGhpa2VuXCA7Civlk6HlpJYgPiBpbmdhaVwgOwor5b6A6L+UID4gb3VoZW5cIDsKK+emjeaguSA+IGtha29uXCA7CivomZrlrZcgPiBreW9qaVwgOwor5re75LuYID4gdGVucHVcIDsKK+aGkeS+nSA+IGh5b3VpXCA7Civph47noLIgPiB5YWhvdVwgOwor5Y+h55+lID4gZWljaGlcIDsKK+eovOWLlSA+IGthZG91XCA7CivljZjooaMgPiBoaXRvZVwgOwor5oSJ5b+rID4geXVrYWlcIDsKK+epj+WBpSA+IG9ua2VuXCA7Civljp/nvqkgPiBnZW5naVwgOwor5rOi54C+ID4gaGFyYW5cIDsKK+ayueeUsCA+IHl1ZGVuXCA7CivlvL7pm6ggPiBkYW4nJ3VcIDsKK+epj+S+vyA+IG9uYmluXCA7Civms6Lmv6QgPiBoYXRvdVwgOwor5Y+w55SrID4gdGFpaG9cIDsKK+mDvemCkSA+IHRveXV1XCA7CivlkozmiKYgPiB3YXNlblwgOwor5Y+v55SoID4ga2F5b3VcIDsKK+m5uea5liA+IGthbmtvXCA7CivmsrPnlZQgPiBrYWhhblwgOwor5YuH6aObID4geXV1aGlcIDsKK+WNiuijuCA+IGhhbnJhXCA7CivlvoTot68gPiBrZWlyb1wgOwor5b6h6KmgID4gZ3lvZWlcIDsKK+mHjeebriA+IG9tb21lXCA7CivljYrooqsgPiBoYXBwaVwgOwor56eB5oCoID4gc2hpZW5cIDsKK+eggumYsiA+IHNhYm91XCA7Civlvq7ooYwgPiBiaWtvdVwgOwor5ZGq5paHID4ganVtb25cIDsKK+azs+azlSA+IGVpaG91XCA7CivlvqHopqcgPiBnb3JhblwgOwor56i85YONID4ga2Fkb3VcIDsKK+WQkOeAiSA+IHRvc2hhXCA7Civmt6vkubEgPiBpbnJhblwgOwor5Y+X55uKID4ganVla2lcIDsKK+elnuatpiA+IGppbm11XCA7CivlkIjngrkgPiBnYXRlblwgOwor5oSb5a2rID4gYWlzb25cIDsKK+a1heaJiyA+IGFzYWRlXCA7CivmhJvlrYMgPiBhaWpvdVwgOwor6JqV5YW3ID4gc2FuZ3VcIDsKK+mKg+W+jCA+IGp1dWdvXCA7CivmhJvlrKIgPiBhaWpvdVwgOwor5Y6f57SgID4gZ2Vuc29cIDsKK+ialeWFkCA+IHNhbmppXCA7CivmhYjlloQgPiBqaXplblwgOwor5oOw5oCnID4gZGFzZWlcIDsKK+ayueeKtiA+IHl1am91XCA7Civph47nlJ8gPiB5YXNlaVwgOwor5rOi5rWqID4gaGFyb3VcIDsKK+enmOWunSA+IGhpaG91XCA7Civok67oj68gPiByZW5nZVwgOwor5oSb5am/ID4gYWlzZWlcIDsKK+W/jeiLpiA+IG5pbmt1XCA7CivpioPluqcgPiBqdXV6YVwgOwor5Y6z56eYID4gZ2VucGlcIDsKK+WOn+ewvyA+IGdlbmJvXCA7CivljrPnp5EgPiBnZW5rYVwgOwor6Yut5YW1ID4gZWloZWlcIDsKK+mKgOW6pyA+IGdpbnphXCA7Civpg6Hpg6ggPiBndW5idVwgOwor6by75Y+jID4gYmlrb3VcIDsKK+W+jOiomCA+IGtvdWtpXCA7CivmhJvlprsgPiBhaXNhaVwgOwor5oSa5aa7ID4gZ3VzYWlcIDsKK+aFtuS6iyA+IGtlaWppXCA7CivnqI7lkI8gPiB6ZWlyaVwgOwor5oSb5aW9ID4gYWlrb3VcIDsKK+WKtOmfsyA+IHJvdW9uXCA7Civlj6/nh4MgPiBrYW5lblwgOwor5ray5YyWID4gZWtpa2FcIDsKK+WQneawlyA+IHJpbmtpXCA7CivphJnoposgPiBoaWtlblwgOwor5ZKM5bmzID4gd2FoZWlcIDsKK+mHjueNoyA+IHlhanV1XCA7Civps7Ppp5UgPiBob3VnYVwgOwor6YeO54yqID4geWFjaG9cIDsKK+mCqumZuiA+IGpha2VuXCA7CivlvpLooYwgPiB0b2tvdVwgOwor5rC06IKlID4gc3VpaGlcIDsKK+WPpOeJiCA+IGtvaGFuXCA7Civli5/ph5EgPiBib2tpblwgOwor5b6M6KOUID4ga291ZWlcIDsKK+W+kOihjCA+IGpva291XCA7CivlkIzmtL4gPiBkb3VoYVwgOwor6YW457SgID4gc2Fuc29cIDsKK+W+gOioqiA+IG91aG91XCA7Civph47niqwgPiB5YWtlblwgOwor5bu26auEID4gZW56dWlcIDsKK+eojuWLmSA+IHplaW11XCA7Civmgqrml6UgPiBha3ViaVwgOwor56ia5YWQID4gY2hpZ29cIDsKK+WKoOmkkCA+IGthc2FuXCA7CivliqDppIogPiBrYXlvdVwgOwor5q2v6Z+zID4gc2hpb25cIDsKK+W+jOihmyA+IGtvdWVpXCA7CivphbXntKAgPiBrb3Vzb1wgOwor6YOK6YeOID4ga291eWFcIDsKK+engeWutiA+IHNoaWthXCA7CivpvI7lnZAgPiB0ZWl6YVwgOwor5b+N6ICFID4gbmluamFcIDsKK+WMu+iWrCA+IGl5YWt1XCA7CivnpL7mrYwgPiBzaGFrYVwgOwor6by75YaFID4gYmluYWlcIDsKK+W+oeiUrSA+IG9rYWdlXCA7Civli6LpgYsgPiBzZWl1blwgOwor5ZCM5rCXID4gZG91a2lcIDsKK+WPpeeCuSA+IGt1dGVuXCA7CivnoLToq4cgPiBoYWRhblwgOwor5ZKM5bCaID4gb3Nob3VcIDsKK+WPo+eCjiA+IGtvdWVuXCA7CivlvZPot68gPiB0b3Vyb1wgOwor5oWI5YWEID4gamlrZWlcIDsKK+aDheaEmyA+IGpvdWFpXCA7CivmraPpn7MgPiBzZWlvblwgOwor5ZCN5q2MID4gbWVpa2FcIDsKK+mDqOiyoSA+IGJ1emFpXCA7Civlj6/murYgPiBrYXlvdVwgOwor5rK/5rW3ID4gZW5rYWlcIDsKK+iPr+m6lyA+IGthcmVpXCA7CivpiYTmiYkgPiB0ZXBwaVwgOwor5ZK95ZaJID4gaW5rb3VcIDsKK+a1t+WbsyA+IGthaXp1XCA7CivlvqHoj5wgPiBva2F6dVwgOwor5Y2w57a/ID4gaW5tZW5cIDsKK+a1ruWfjiA+IGZ1am91XCA7CivmgZLmuKkgPiBrb3VvblwgOwor5Y+k5r2tID4ga290YW5cIDsKK+ays+a4ryA+IGtha291XCA7CivmsrPmuIUgPiBrYXNlaVwgOwor5Y2w57SZID4gaW5zaGlcIDsKK+awl+iDniA+IGtpaG91XCA7Civlj6PmvJQgPiBrb3VlblwgOwor6byT5ZC5ID4ga29zdWlcIDsKK+aEmuWVjyA+IGd1bW9uXCA7CivmsLTntKAgPiBzdWlzb1wgOwor6JmO5Y+jID4ga29rb3VcIDsKK+W+oeiLkSA+IGd5b2VuXCA7CivokrLolqYgPiBob3NlblwgOwor5ZOA5Y+3ID4gYWlnb3VcIDsKK+aCsuaGpCA+IGhpZnVuXCA7Civlk4Dlj7IgPiBhaXNoaVwgOwor6bq75bm5ID4gb2dhcmFcIDsKK+W/nOetlCA+IG91dG91XCA7CivljbDnsaAgPiBpbnJvdVwgOwor5q2M6aKoID4ga2FmdXVcIDsKK+atpumWgCA+IGJ1bW9uXCA7Civlkozlp6YgPiB3YWthblwgOwor56e75YWlID4gaW55dXVcIDsKK+aCsuaEtCA+IGhpc291XCA7Civmrovpg6ggPiB6YW5idVwgOwor5rOw5paXID4gdGFpdG9cIDsKK+aEn+WPlyA+IGthbmp1XCA7CivmrYzpoYwgPiBrYWRhaVwgOwor5oKy5oOoID4gaGlzYW5cIDsKK+emgeW/jCA+IGtpbmtpXCA7CivmhJvlkJ8gPiBhaWdpblwgOwor5rW35ZOhID4ga2FpaW5cIDsKK+mBv+mboyA+IGhpbmFuXCA7Civph43mua8gPiBvbW95dVwgOwor5oOj5auBID4gc291a2FcIDsKK+m8k+WLlSA+IGtvZG91XCA7CivmrLrpqJkgPiBnaWhlblwgOwor5rOV5qGIID4gaG91YW5cIDsKK+W+oeiFuSA+IG9uYWthXCA7Civlkozlo7AgPiB3YXNlaVwgOwor5rKz5rC0ID4ga2FzdWlcIDsKK+WQjeahiCA+IG1laWFuXCA7CivmgrLmgYsgPiBoaXJlblwgOwor5oSf5YyWID4ga2Fua2FcIDsKK+atpumRkSA+IGJ1a2FuXCA7Civpgbrpm4YgPiBpc2h1dVwgOwor5Y+l5rOVID4ga3Vob3VcIDsKK+aAqueBqyA+IGthaWthXCA7Civlvq7nvaogPiBiaXphaVwgOwor5Y6f55S7ID4gZ2VuZ2FcIDsKK+WNl+e3ryA+IG5hbicnaVwgOwor5Y+k5rOVID4ga29ob3VcIDsKK+iZmuWBvSA+IGt5b2dpXCA7Civli7LoqJggPiBrdW5raVwgOwor5Ymj6ay8ID4ga2Vua2lcIDsKK+mHkeazoiA+IGtpbnBhXCA7Civmtbflj4IgPiBpcmlrb1wgOwor56eY5Y+yID4gaGlzaGlcIDsKK+mCqumBkyA+IGphZG91XCA7CivnqIDku6MgPiBraWRhaVwgOwor5Y6z54i2ID4gZ2VucHVcIDsKK+mJseWkqyA+IGtvdWZ1XCA7CivmiLjjgIUgPiBrb2tvdVwgOwor6YqA5ZywID4gZ2luamlcIDsKK+ekvuaYryA+IHNoYXplXCA7Civno4HnlYwgPiBqaWthaVwgOwor5rW35Yy6ID4ga2Fpa3VcIDsKK+WNsOeojiA+IGluemVpXCA7Civlj6PmsJcgPiBrb3VraVwgOwor5ZCM5pyfID4gZG91a2lcIDsKK+mHjeayuSA+IGp1dXl1XCA7CivpioXlmaggPiBkb3VraVwgOwor55+u6LqvID4gd2Fpa3VcIDsKK+ayruatoiA+IHNvc2hpXCA7Civmsrnmp70gPiB5dXNvdVwgOwor55+t6LqvID4gdGFua3VcIDsKK+aBi+atjCA+IHJlbmthXCA7Civnp5HlkI0gPiBrYW1laVwgOwor5oKq5b+DID4gb3NoaW5cIDsKK+mKg+WZqCA+IGp1dWtpXCA7CivlvJjpgaAgPiBrb3VlblwgOwor5Y6f55CGID4gZ2VucmlcIDsKK+axl+eWuSA+IGFzZW1vXCA7CivmsZfnlqMgPiBhc2Vtb1wgOwor5oKq5b6SID4gYWt1dG9cIDsKK+ehvOe0oCA+IGhvdXNvXCA7Civlj5fmtJcgPiBqdXNlblwgOwor56iA5LiWID4ga2lzZWlcIDsKK+engeWWtiA+IHNoaWVpXCA7CivmhI/ljKAgPiBpc2hvdVwgOwor6YqA5ZmoID4gZ2lua2lcIDsKK+awtOemjSA+IHN1aWthXCA7Civnpo3lrrMgPiBrYWdhaVwgOwor5b+r55mSID4ga2FpeXVcIDsKK+mHkeatryA+IGtpbmJhXCA7CivlkIzmmYIgPiBkb3VqaVwgOwor55+t6LevID4gdGFucm9cIDsKK+mBoOmfsyA+IHRvb25lXCA7CivlvJXpgIAgPiBpbnRhaVwgOwor6YKj6L66ID4gbmFoZW5cIDsKK+aDheWunCA+IGpvdWdpXCA7CivmhJrlhYQgPiBndWtlaVwgOwor5oKf5oCnID4gZ29zZWlcIDsKK+W+rue0sCA+IGJpc2FpXCA7Civli5XorbAgPiBkb3VnaVwgOwor5rWu5YuVID4gZnVkb3VcIDsKK+WLg+i1tyA+IGJva2tpXCA7CivmhJrlg6cgPiBndXNvdVwgOwor5b6M6IOkID4ga291aW5cIDsKK+emheWutiA+IHplbmtlXCA7Civpu4TlpIkgPiBvdWhlblwgOwor5Yqg6YWNID4ga2FoYWlcIDsKK+WTgeS9jSA+IGhpbicnaVwgOwor5b6A6IiqID4gb3Vrb3VcIDsKK+mBoOmbtyA+IGVucmFpXCA7Civlv7Xnj6AgPiBuZW5qdVwgOwor5oKU5oKfID4ga2FpZ29cIDsKK+awl+euoSA+IGtpa2FuXCA7CivmrKfpoqggPiBvdWZ1dVwgOwor5rWE5ZyfID4gam91ZG9cIDsKK+WQq+aEjyA+IGdhbicnaVwgOwor5oOF5ammID4gam91ZnVcIDsKK+mHjeapnyA+IGp1dWtpXCA7Civmgqflt6cgPiByaWtvdVwgOwor5rCX562SID4ga2l0b3VcIDsKK+aAkua/pCA+IGRvdG91XCA7Civmg7nlj6UgPiBqYWtrdVwgOwor5q2p6YGTID4gaG9kb3VcIDsKK+ejqOa3rCA+IG1hc2FpXCA7Civmr5voibIgPiBrZWlyb1wgOwor5rC455ygID4gZWltaW5cIDsKK+W8t+iotCA+IGdvdXNvXCA7CivlkoTll58gPiB0b3NzYVwgOwor56eB5Y2wID4gc2hpaW5cIDsKK+atpumBkyA+IGJ1ZG91XCA7CivmraPpgqogPiBzZWlqYVwgOwor5Y+N5q+UID4gaGFucGlcIDsKK+WKn+mBjiA+IGtvdWthXCA7CivljbDnm7ggPiBpbnpvdVwgOwor5YyW6Ia/ID4ga2Fub3VcIDsKK+asoemhniA+IGppcnVpXCA7Civlj43mra8gPiBzb3BwYVwgOwor5Y+N5q2pID4gdGFuYnVcIDsKK+WJqumZpCA+IHNlbmpvXCA7Civlj7DmnKggPiBkYWlnaVwgOwor5rOo5oSPID4gY2h1dWlcIDsKK+WPjeatjCA+IGhhbmthXCA7Civphrjmr40gPiBqb3Vib1wgOwor5YmN6aeGID4gemVua3VcIDsKK+atpui+uiA+IGJ1aGVuXCA7Civluqfpq5ggPiB6YWtvdVwgOwor5oOF5aSrID4gam91ZnVcIDsKK+WSjOWQjSA+IHdhbWVpXCA7CivmhJvkurogPiBhaWppblwgOwor5ZKM5ZCIID4gd2Fnb3VcIDsKK+WKsei1tyA+IHJlaWtpXCA7CivljYrnq68gPiBoYW5wYVwgOwor6JaE5pelID4gdXN1YmlcIDsKK+aEmuS6uiA+IGd1amluXCA7Civpu4TlnJ8gPiBrb3Vkb1wgOwor5b+c55SoID4gb3V5b3VcIDsKK+mCpuiyqCA+IGhvdWthXCA7Civnp4HliKkgPiBzaGlyaVwgOwor56C06Ii5ID4gaGFzZW5cIDsKK+WQpuW/nCA+IGl5YW91XCA7CivljLvnsY0gPiBpc2VraVwgOwor5YyW6IKyID4ga2Fpa3VcIDsKK+enmOS8nSA+IGhpZGVuXCA7Civmr43oiaYgPiBib2thblwgOwor5Y+X5qScID4ganVrZW5cIDsKK+ayueaWrSA+IHl1ZGFuXCA7CivnnaHprZQgPiBzdWltYVwgOwor5q+N6Ii5ID4gYm9zZW5cIDsKK+ekjuadkCA+IHNvemFpXCA7Civlu4PpmaQgPiBoYWlqb1wgOwor5Y+k5p2lID4ga29yYWlcIDsKK+a1t+S6iyA+IGthaWppXCA7CivmsLjnlJ8gPiBlaXNlaVwgOwor5Yqp6LWwID4gam9zb3VcIDsKK+mBiumboiA+IHl1dXJpXCA7CivmgJLmtpsgPiBkb3RvdVwgOwor56WI5b+1ID4ga2luZW5cIDsKK+ats+iyuyA+IHNhaWhpXCA7CivnpZbluKsgPiBzb3NoaVwgOwor5Y+k5pu4ID4ga29zaG9cIDsKK+WRqOWbsiA+IHNodXVpXCA7CivmsbrmsrMgPiBrZWtrYVwgOwor6YG36YO9ID4gc2VudG9cIDsKK+axveawtCA+IGtpc3VpXCA7Civmr5TogqkgPiBoaWtlblwgOwor5Y2w55KwID4gaW5rYW5cIDsKK+mHjuacqyA+IG5venVlXCA7Civph47mnJsgPiB5YWJvdVwgOwor5oSP5LitID4gaWNodXVcIDsKK+aCquWppiA+IGFrdWZ1XCA7Civlkbzlj7cgPiBrb2dvdVwgOwor5q2j6LevID4gc2Vpcm9cIDsKK+mJseWMuiA+IGtvdWt1XCA7CivmgqrlqYYgPiBha3ViYVwgOwor6Ymx5YyWID4ga291a2FcIDsKK+azouW9oiA+IGhha2VpXCA7Civpgqboqp4gPiBob3Vnb1wgOwor5Y+h5pm6ID4gZWljaGlcIDsKK+WQhOaIuCA+IGtha2tvXCA7CivliY3pnZ4gPiB6ZW5waVwgOwor5rGa5r+BID4gb2Rha3VcIDsKK+avjeiDjiA+IGJvdGFpXCA7CivmrYzpgZMgPiBrYWRvdVwgOwor56KB55ukID4gZ29iYW5cIDsKK+atu+iqniA+IHNoaWdvXCA7Civlj6/mkpMgPiBrYXRvdVwgOwor5oKy5aOuID4gaGlzb3VcIDsKK+W8mOiqkyA+IGd1emVpXCA7Civmta7kuJYgPiB1a2l5b1wgOwor5bqn6aCtID4gemF0b3VcIDsKK+WQkOaBryA+IHRvaWtpXCA7Civmta7kuIogPiBmdWpvdVwgOwor5Y+k5pa5ID4ga29ob3VcIDsKK+a1hOWMliA+IGpvdWthXCA7Civlj6Hml6ggPiBlaXNoaVwgOwor6YKq6KaLID4gamFrZW5cIDsKK+WPpOaWhyA+IGtvbW9uXCA7CivmgqrlpbMgPiBha3Vqb1wgOwor5YyW57mKID4ga2FzZW5cIDsKK+WNiOegsiA+IGdvaG91XCA7Civmr5vnuZQgPiBrZW9yaVwgOwor5rGf5rmWID4gZ291a29cIDsKK+aBqeaEmyA+IG9uJydhaVwgOwor5rCX55u4ID4ga2lzb3VcIDsKK+aCsuWgsSA+IGhpaG91XCA7CivlvqHnpL4gPiBvbnNoYVwgOwor5oKq5aSiID4gYWt1bXVcIDsKK+WMl+e3ryA+IGhva3VpXCA7Civlj5nmma8gPiBqb2tlaVwgOwor5q2j6LKoID4gc2Vpa2FcIDsKK+ato+iyoCA+IHNlaWZ1XCA7CivnpoHlm7ogPiBraW5rb1wgOwor5ZCR5b6MID4ga291Z29cIDsKK+ehhee0oCA+IGtlaXNvXCA7Civmganmg4UgPiBvbmpvdVwgOwor5Y+b5peXID4gaGFua2lcIDsKK+iWhOaJiyA+IHVzdWRlXCA7CivmganmgbUgPiBvbmtlaVwgOwor5rC454miID4gZWlyb3VcIDsKK+mBuui5nyA+IGlzZWtpXCA7Civph4zmlbAgPiByaXN1dVwgOwor5Y2I552hID4gZ29zdWlcIDsKK+W8leimiyA+IGlua2VuXCA7CivnpZblrpcgPiBzb3NvdVwgOwor5rWB5YiRID4gcnVrZWlcIDsKK+WKqeipniA+IGpvc2hpXCA7CivpioDkvY0gPiBnaW4nJ2lcIDsKK+WPmeaWhyA+IGpvYnVuXCA7CivljZfnlLsgPiBuYW5nYVwgOwor56S65bqmID4gc2hpZG9cIDsKK+mBuui3oSA+IGlzZWtpXCA7CivpiYTlmaggPiB0ZWtraVwgOwor6YGl6YGgID4geW91ZW5cIDsKK+W8geittyA+IGJlbmdvXCA7Civli6Toi6YgPiBraW5rdVwgOwor5q+b57O4ID4ga2VpdG9cIDsKK+WKqeiogCA+IGpvZ29uXCA7Civms5XluqYgPiBoYXR0b1wgOwor5Y2X55OcID4gbmFua2FcIDsKK+W5vemsvCA+IHl1dWtpXCA7CivljJbnsqcgPiBrZXdhaVwgOwor5oOF5ZGzID4gam91bWlcIDsKK+axn+aysyA+IGtvdWdhXCA7CivlkKblrpogPiBoaXRlaVwgOwor56C057eaID4gaGFzZW5cIDsKK+W9see1tSA+IGthZ2VlXCA7CivlkIzluqcgPiBkb3V6YVwgOwor56C057a7ID4gaGF0YW5cIDsKK+WPo+aOiCA+IGtvdWp1XCA7CivmtL7lhbUgPiBoYWhlaVwgOwor5oCd5qGIID4gc2hpYW5cIDsKK+iRoeiQhCA+IGJ1ZG91XCA7Civlu7rorbAgPiBrZW5naVwgOwor5q2j6KqyID4gc2Vpa2FcIDsKK+avjee3miA+IGJvc2VuXCA7Civlj43ml5cgPiBoYW5raVwgOwor5q2j6KqkID4gc2VpZ29cIDsKK+aCsuWYhiA+IGhpdGFuXCA7CivnpoXlkbMgPiB6ZW5taVwgOwor6YOo572yID4gYnVzaG9cIDsKK+WPr+aGkCA+IGthcmVuXCA7Civmgqrlm6AgPiBha3VpblwgOwor6JKU57W1ID4gbWFraWVcIDsKK+mBjumHjSA+IGthanV1XCA7CivljJXnrrggPiBoaWNob1wgOwor5Y2K55SwID4gaGFuZGFcIDsKK+ashOmWkyA+IHJhbm1hXCA7CivokYnomK0gPiBoYXJhblwgOwor5oGp5birID4gb25zaGlcIDsKK+avjeezuyA+IGJva2VpXCA7CivpgYrph4wgPiB5dXVyaVwgOwor5rC054GrID4gc3Vpa2FcIDsKK+aDqOS6iyA+IHNhbmppXCA7Civnpa3lmaggPiBzYWlraVwgOwor5oGo5biDID4ga29uYnVcIDsKK+ayueaApyA+IHl1c2VpXCA7CivmraPopo8gPiBzZWlraVwgOwor56aB5Y+lID4ga2lua3VcIDsKK+ekvuWvuiA+IHNoYWppXCA7CivmgYvmhZUgPiByZW5ib1wgOwor5Yy755mCID4gaXJ5b3VcIDsKK+iPr+mBkyA+IGthZG91XCA7Civph47miYsgPiB5YXNodVwgOwor56S+5a62ID4gc2hha2VcIDsKK+mHjeaJiyA+IG9tb2RlXCA7Civmraboo4UgPiBidXNvdVwgOwor6YeO5oimID4geWFzZW5cIDsKK+atqeihjCA+IGhva291XCA7Civmr5vnqbQgPiBrZWFuYVwgOwor5Y2R54ylID4gaGl3YWlcIDsKK+egtOeulyA+IGhhc2FuXCA7CivlkZHlkJAgPiBkb250b1wgOwor5rK55b2pID4geXVzYWlcIDsKK+WPoeaFriA+IGVpcnlvXCA7CivlvqHnlKggPiBnb3lvdVwgOwor5rWB5Lq6ID4gcnVuaW5cIDsKK+WPoeaEnyA+IGVpa2FuXCA7CivmrYzorKEgPiBrYXlvdVwgOwor5ZCN5a62ID4gbWVpa2FcIDsKK+W+oeeSvSA+IGd5b2ppXCA7Civlj5bmiYsgPiB0b3R0ZVwgOwor5ZCN5a6bID4gbmFhdGVcIDsKK+WQjOWutiA+IGRvdWtlXCA7CivnnYDpoZ4gPiBraXJ1aVwgOwor5Y+X5oiSID4ganVrYWlcIDsKK+mBi+mAgSA+IHVuc291XCA7Civpu4TkvZMgPiBvdXRhaVwgOwor5q2M6KuWID4ga2Fyb25cIDsKK+mFteavjSA+IGtvdWJvXCA7CivnpZblnosgPiBzb2tlaVwgOwor6YeN5oSbID4ganV1YWlcIDsKK+elnuWZqCA+IGppbmdpXCA7CivlkIzlrZcgPiBkb3VqaVwgOwor5Y+w5bqnID4gZGFpemFcIDsKK+WJsuizpiA+IHdhcHB1XCA7CivnnJ/pr5sgPiBtYWRhaVwgOwor5Y+b5oSPID4gaGFuJydpXCA7CivmrYzoqZ4gPiBrYXNoaVwgOwor55yf6a+JID4gbWFnb2lcIDsKK+aui+iKsSA+IHphbmthXCA7Civpu4TkurogPiBvdWppblwgOwor5rC05ripID4gc3Vpb25cIDsKK+mBi+i8uCA+IHVuJyd5dVwgOwor6Jep5YSSID4gaGFuanVcIDsKK+WJsOiyuyA+IGpvdWhpXCA7CivliY3pg6ggPiB6ZW5idVwgOwor6bqX5Y+lID4gcmVpa3VcIDsKK+ejqOaQjSA+IG1hc29uXCA7Civph47mgKcgPiB5YXNlaVwgOwor6JGJ6Iy2ID4gaGFkamFcIDsKK+WPmeaDhSA+IGpvam91XCA7CivlvqHnjokgPiBvdGFtYVwgOwor6YGT6LevID4gZG91cm9cIDsKK+mBi+i7oiA+IHVudGVuXCA7Civlub3pm4UgPiB5dXVnYVwgOwor5Yid6ZmjID4gdWlqaW5cIDsKK+ayv+WyuCA+IGVuZ2FuXCA7CivpgKPpjpYgPiByZW5zYVwgOwor6JGJ6Iq9ID4geW91Z2FcIDsKK+ays+W3nSA+IGthc2VuXCA7CivpgYHovp4gPiB0b25qaVwgOwor5YmN6YCUID4gemVudG9cIDsKK+mBjei3ryA+IGhlbnJvXCA7CivpiZvkuLkgPiBlbnRhblwgOwor5rC05rOzID4gc3VpZWlcIDsKK+WQjuWmgyA+IGtvdWhpXCA7CivlkI3lppMgPiBtZWlnaVwgOwor5Y+j5bqnID4ga291emFcIDsKK+W/l+awlyA+IHNoaWtpXCA7Civlj5vlvpIgPiBoYW50b1wgOwor6YeR5bqrID4ga2lua29cIDsKK+WNsOaxoCA+IGluY2hpXCA7Civms6XlnJ8gPiBkZWlkb1wgOwor5rK55bGkID4geXVzb3VcIDsKK+WKtOiLpiA+IHJvdWt1XCA7Civlj4vmhJsgPiB5dXVhaVwgOwor6YGg6KyAID4gZW5ib3VcIDsKK+WQjOWknCA+IGRvdXlhXCA7Civph43luqYgPiBqdXVkb1wgOwor5YmN6LyqID4gbWFld2FcIDsKK+mAgOmZoiA+IHRhaWluXCA7Civmg4XkuosgPiBqb3VqaVwgOwor56C056CVID4gaGFzYWlcIDsKK+WNseauhiA+IGtpdGFpXCA7CivmsrvlrokgPiBjaGlhblwgOwor5Ymw6KqeID4gam91Z29cIDsKK+mHjuW4qyA+IHlhc2hpXCA7CivokL3oirEgPiByYWtrYVwgOwor5Y+y5a62ID4gc2hpa2FcIDsKK+mIjeWZqCA+IGRvbmtpXCA7CivmgKfmhJsgPiBzZWlhaVwgOwor5byV6IiqID4gaW5rb3VcIDsKK+eggue1tSA+IHN1bmFlXCA7CivlvpfniakgPiBlbW9ub1wgOwor5rKZ5bylID4gc2hhbWlcIDsKK+elreWFtyA+IHNhaWd1XCA7CivlkKvlkbMgPiBnYW5taVwgOwor5b6A55SfID4gb3Vqb3VcIDsKK+WIhumboiA+IGJ1bnJpXCA7CivphY3mtYEgPiBoYWlydVwgOwor5byV6Ie0ID4gaW5jaGlcIDsKK+WPjeW+kiA+IGhhbnRvXCA7CivliIjpmaQgPiBnYWlqb1wgOwor5oCo5oGoID4gZW5rb25cIDsKK+mBoOimliA+IGVuc2hpXCA7Civnpa3lhIAgPiBzYWlnaVwgOwor6YSZ54ylID4gaGl3YWlcIDsKK+atr+iKvSA+IHNoaWdhXCA7CivpgaDoposgPiB0b29taVwgOwor6bm55ZGzID4ga2FubWlcIDsKK+iNt+mmrCA+IG5pdW1hXCA7CivnnJ/poZQgPiBtYWdhb1wgOwor56CC57OWID4gc2F0b3VcIDsKK+mFkuawlyA+IHNodWtpXCA7Civpt7nmj5ogPiBvdXlvdVwgOwor5Yip6YiNID4gcmlkb25cIDsKK+aAneaFlSA+IHNoaWJvXCA7CivmgKDmg7AgPiB0YWlkYVwgOwor5Yip6YeRID4gcmlraW5cIDsKK+ayruWusyA+IHNvZ2FpXCA7CivlkIzlnZAgPiBkb3V6YVwgOwor5Yy654K5ID4ga3V0ZW5cIDsKK+WPi+W8lSA+IHl1dWluXCA7CivphZTmrakgPiBzdWlob1wgOwor5Ye56Z2iID4gb3VtZW5cIDsKK+mBk+ipsSA+IGRvdXdhXCA7CivljIXnmq4gPiBob3VoaVwgOwor6YC46LWwID4gaXNzb3VcIDsKK+W7g+iqniA+IGhhaWdvXCA7CivlkJ/lkbMgPiBnaW5taVwgOwor5Y6t5oimID4gZW5zZW5cIDsKK+atpuiKuCA+IGJ1Z2VpXCA7CivpgaHooYwgPiBzb2tvdVwgOwor5ZCN5ZmoID4gbWVpa2lcIDsKK+iPr+iogCA+IGthZ2VuXCA7CivlvbHnlLsgPiBrYWdlZVwgOwor5b6S54S2ID4gdG96ZW5cIDsKK+mAo+i+niA+IHJlbmppXCA7CivluoPph44gPiBrb3V5YVwgOwor5rCX5rOhID4ga2lob3VcIDsKK+mHkeWtlyA+IGtpbmppXCA7CivlvKXnuKsgPiBiaWhvdVwgOwor6YeR5a2QID4ga2luc3VcIDsKK+W8p+e3miA+IGtvc2VuXCA7CivmrKDoqrIgPiBrZWtrYVwgOwor5Y2Y5q+UID4gdGFucGlcIDsKK+mBjuiogCA+IGthZ29uXCA7CivnoLTnlKMgPiBoYXNhblwgOwor56S+5ZOhID4gc2hhaW5cIDsKK+WNsOajiSA+IGlubWVuXCA7CivnoJTno6ggPiBrZW5tYVwgOwor5oKq5LqLID4gYWt1amlcIDsKK+ekuuWUhiA+IHNoaXNhXCA7Civlj6/lpIkgPiBrYWhlblwgOwor5b2p55S7ID4gc2FpZ2FcIDsKK+iWq+WMliA+IGt1bmthXCA7Civlj5flrrkgPiBqdXlvdVwgOwor56Wt5LqLID4gc2FpamlcIDsKK+elluWFiCA+IHNvc2VuXCA7CivpiI3ljJYgPiBkb25rYVwgOwor5oCn5beuID4gc2Vpc2FcIDsKK+iQoOiKvSA+IGhvdWdhXCA7CivliKXpgJQgPiBiZXR0b1wgOwor6YGO6KSSID4ga2Fob3VcIDsKK+iNt+mbuyA+IGthZGVuXCA7CivnoazmtL4gPiBrb3VoYVwgOwor5Y+w5aC0ID4gZGFpYmFcIDsKK+WQvuS6uiA+IGdvamluXCA7Civms6Lli5UgPiBoYWRvdVwgOwor6JaE5ZywID4gdXN1amlcIDsKK+mAj+mBjiA+IHRvdWthXCA7CivljZjmqZ8gPiB0YW5raVwgOwor5q6355ubID4gaW5zZWlcIDsKK+ekvuWNsCA+IHNoYWluXCA7CivljbDmnZAgPiBpbnphaVwgOwor5bmz6YeOID4gaGVpeWFcIDsKK+WNsOacrCA+IGlucG9uXCA7Civmga/lkLkgPiBpYnVraVwgOwor5bm56YOoID4ga2FuYnVcIDsKK+WNsOabuCA+IGluc2hvXCA7Civlub3pgaAgPiB5dXVlblwgOwor5ZCN5Y+lID4gbWVpa3VcIDsKK+WJjeiomCA+IHplbmtpXCA7CivpgYvooYwgPiB1bmtvdVwgOwor5q2m6ICFID4gbXVzaGFcIDsKK+ekvuWLmSA+IHNoYW11XCA7Civljp/mhI8gPiBnZW4nJ2lcIDsKK+WPpOWisyA+IGtvZnVuXCA7Civmganlkb0gPiBvbm1laVwgOwor5Y+L5a6cID4geXV1Z2lcIDsKK+mHjuWkqSA+IG5vdGVuXCA7CivlkIjlkKYgPiBnb3VoaVwgOwor5Yq057WEID4gcm91c29cIDsKK+mHjuWkliA+IHlhZ2FpXCA7Civluqfoq4cgPiB6YWRhblwgOwor5byX57SgID4gZnVzc29cIDsKK+mAg+mBvyA+IHRvdWhpXCA7CivlubjpgYsgPiBrb3V1blwgOwor56C054miID4gaGFyb3VcIDsKK+mBuuiHoyA+IGlzaGluXCA7CivluoPou4wgPiBrb3VraVwgOwor5q2j576pID4gc2VpZ2lcIDsKK+azleWLmSA+IGhvdW11XCA7CivnoLTniYcgPiBoYWhlblwgOwor5ZCM5YyWID4gZG91a2FcIDsKK+mAgOmBvyA+IHRhaWhpXCA7Civlj6Tln44gPiBrb2pvdVwgOwor5ZCQ5YmkID4gdG96YWlcIDsKK+awl+amgiA+IGtpZ2FpXCA7CivlupzoraYgPiBmdWtlaVwgOwor5b6h5q6/ID4gZ290ZW5cIDsKK+iQjOiKvSA+IGhvdWdhXCA7CivljLrmsJEgPiBrdW1pblwgOwor5Y6a5oGpID4ga291b25cIDsKK+W/nOaPtCA+IG91ZW5cIDsKK+W6q+ijjyA+IGt1cmlcIDsKK+WPpOWZqCA+IGtva2lcIDsKK+WHjembqCA+IHRvdXVcIDsKK+W+kuatqSA+IHRvaG9cIDsKK+WPr+WQpiA+IGthaGlcIDsKK+W+kOatqSA+IGpvaG9cIDsKK+W6h+ittyA+IGhpZ29cIDsKK+mHjuWWtiA+IHlhZWlcIDsKK+azleS8miA+IGhvdWVcIDsKK+WQjOS9jSA+IGRvdWlcIDsKK+WNseaHvCA+IGtpZ3VcIDsKK+WPpeWPpSA+IGt1a3VcIDsKK+WPpOWPpSA+IGtva3VcIDsKK+WPo+WPlyA+IGt1anVcIDsKK+ayu+WFtyA+IGppZ3VcIDsKK+WGt+mbqCA+IHJlaXVcIDsKK+W9k+eCuiA+IHRvdWlcIDsKK+WPs+WFmiA+IHV0b3VcIDsKK+WNseaDpyA+IGtpZ3VcIDsKK+mBuueyviA+IGlzZWlcIDsKK+mHjuWNkSA+IHlhaGlcIDsKK+WPs+WCviA+IHVrZWlcIDsKK+WMu+abuCA+IGlzaG9cIDsKK+mBleiDjCA+IGloYWlcIDsKK+aAqOWXnyA+IGVuc2FcIDsKK+m4muWTpSA+IGlua29cIDsKK+egtOavgCA+IGhha2lcIDsKK+WPjeWQkCA+IGhlZG9cIDsKK+WPjeWPpCA+IGhvZ29cIDsKK+WPpOWEgCA+IGtvZ2lcIDsKK+iPr+e+jiA+IGthYmlcIDsKK+WNsOW6piA+IGluZG9cIDsKK+mBuueovyA+IGlrb3VcIDsKK+ebuOmBlSA+IHNvdWlcIDsKK+W6p+iHpSA+IHphZ2FcIDsKK+W4sOmAlCA+IGtpdG9cIDsKK+W/oOWunyA+IG1hbWVcIDsKK+WGhumhsSA+IGVucm9cIDsKK+ejgeWgtCA+IGppYmFcIDsKK+WPpOS6iyA+IGtvamlcIDsKK+egtOajhCA+IGhha2lcIDsKK+awuOWvvyA+IGVpanVcIDsKK+atjOeikSA+IGthaGlcIDsKK+W+gOaZgiA+IG91amlcIDsKK+ejgeWcnyA+IGppZG9cIDsKK+m0ieeJhyA+IGFoZW5cIDsKK+WNsOWtlyA+IGluamlcIDsKK+mBleeulyA+IGlzYW5cIDsKK+WPmeS6iyA+IGpvamlcIDsKK+ejgeWZqCA+IGppa2lcIDsKK+W+ruW+riA+IGJpYmlcIDsKK+W4sOi3ryA+IGtpcm9cIDsKK+W+oeaEjyA+IGd5b2lcIDsKK+eggua0siA+IHNhc3VcIDsKK+WNiOW+jCA+IGdvZ29cIDsKK+avgOajhCA+IGtpa2lcIDsKK+mBoOelliA+IGVuc29cIDsKK+W+jOaJiyA+IGdvdGVcIDsKK+W5suiRiSA+IGhpYmFcIDsKK+W8leeBqyA+IGlua2FcIDsKK+W+oeW9sSA+IGdvZWlcIDsKK+mBuueUoyA+IGlzYW5cIDsKK+aouemZsCA+IGp1aW5cIDsKK+iLsemfsyA+IGVpb25cIDsKK+axmuWQjSA+IG9tZWlcIDsKK+ejgeWMuiA+IGppa3VcIDsKK+mCqua3qyA+IGphaW5cIDsKK+i/guiogCA+IHVnZW5cIDsKK+ejgeWMliA+IGppa2FcIDsKK+WMu+W4qyA+IGlzaGlcIDsKK+W9vOaIkSA+IGhpZ2FcIDsKK+WNseWdkCA+IGtpemFcIDsKK+WJteeXjSA+IHNvdWlcIDsKK+apn+mBiyA+IGtpdW5cIDsKK+WMquW+kiA+IGhpdG9cIDsKK+WKqea8lCA+IGpvZW5cIDsKK+mCquawlyA+IGpha2lcIDsKK+W8peasoSA+IHlhamlcIDsKK+W+oeWuhyA+IGd5b3VcIDsKK+W+gOW+gCA+IG91b3VcIDsKK+WIgOiHqiA+IHRvamlcIDsKK+W+oeWtkCA+IG1pa29cIDsKK+WMu+WumCA+IGlrYW5cIDsKK+WKoOa4qSA+IGthb25cIDsKK+mBjueWjiA+IGthc29cIDsKK+WIgOiDjCA+IG1pbmVcIDsKK+W/nOWLnyA+IG91Ym9cIDsKK+mBuua8jyA+IGlyb3VcIDsKK+W+jOWutiA+IGdva2VcIDsKK+WMu+WkpyA+IGlkYWlcIDsKK+autOaJkyA+IG91ZGFcIDsKK+atqeatpiA+IGhvYnVcIDsKK+mBleeKryA+IGloYW5cIDsKK+WGhuiyqCA+IGVua2FcIDsKK+awl+WRsyA+IGdpbWlcIDsKK+awl+WQiCA+IGtpYWlcIDsKK+W4g+ihjSA+IGZ1ZW5cIDsKK+mtlOmthSA+IG1hbWlcIDsKK+W+jOWgtCA+IGdvYmFcIDsKK+egtOWutiA+IGJha2FcIDsKK+awl+WMliA+IGtpa2FcIDsKK+W+geWktyA+IHNlaWlcIDsKK+WNiOWQjiA+IGdvZ29cIDsKK+awtOS9jSA+IHN1aWlcIDsKK+awuOS5hSA+IHRvd2FcIDsKK+W3puiomCA+IHNha2lcIDsKK+WGhuimjyA+IGVua2lcIDsKK+ebiOiZpyA+IGVpa2lcIDsKK+mBuuaniyA+IGlrb3VcIDsKK+W+oeWQjSA+IG1pbmFcIDsKK+mDqOWxiyA+IGhleWFcIDsKK+iLseiyqCA+IGVpa2FcIDsKK+mBjua4oSA+IGthdG9cIDsKK+mBleazlSA+IGlob3VcIDsKK+aut+WvjCA+IGlucHVcIDsKK+W7tuacnyA+IGVua2lcIDsKK+aoquitsCA+IG91Z2lcIDsKK+egguW3niA+IHNhc3VcIDsKK+iMo+iTmSA+IGdvemFcIDsKK+iLseiqniA+IGVpZ29cIDsKK+mBi+aysyA+IHVuZ2FcIDsKK+mBuuabuCA+IGlzaG9cIDsKK+efpeaBtSA+IGNoaWVcIDsKK+mBi+awlyA+IHVua2lcIDsKK+i8uOi0jyA+IHl1ZWlcIDsKK+WNkeS4iyA+IGhpZ2VcIDsKK+WLouWtkCA+IHNla29cIDsKK+WMheWbsiA+IGhvdWlcIDsKK+W+gOWPpCA+IG91a29cIDsKK+WKoOaMgSA+IGthamlcIDsKK+W8p+W6piA+IGtvZG9cIDsKK+mDveWWtiA+IHRvZWlcIDsKK+avlOWWqSA+IGhpeXVcIDsKK+mBuuaWhyA+IGlidW5cIDsKK+mAoueArCA+IG91c2VcIDsKK+WHuuebriA+IGRlbWVcIDsKK+W9meWgsSA+IGlob3VcIDsKK+atpuaKgCA+IGJ1Z2lcIDsKK+i8nei8nSA+IGtpa2lcIDsKK+W6p+a0siA+IHphc3VcIDsKK+W+oeS7oyA+IG1peW9cIDsKK+WLouWogSA+IHNlaWlcIDsKK+WMu+S8miA+IGlrYWlcIDsKK+W+l+S9kyA+IGV0YWlcIDsKK+W+oeS4liA+IG1peW9cIDsKK+W9seWNsCA+IGVpaW5cIDsKK+ato+aEjyA+IHNlaWlcIDsKK+WGhuiIniA+IGVuYnVcIDsKK+m1nOWMoCA+IHVqb3VcIDsKK+avjeWNsCA+IGJvaW5cIDsKK+mAuOapnyA+IGlra2lcIDsKK+mDqOWToSA+IGJ1aW5cIDsKK+mBuuaIkiA+IGlrYWlcIDsKK+earuiGmiA+IGhpZnVcIDsKK+mBuuaGviA+IGlrYW5cIDsKK+WIt+avmyA+IGhha2VcIDsKK+atqeW6piA+IGhvZG9cIDsKK+asoeacnyA+IGppa2lcIDsKK+atpuW6qyA+IGJ1a29cIDsKK+apn+e4gSA+IGtpZW5cIDsKK+egguWcnyA+IHNhZG9cIDsKK+mBuuaBqCA+IGlrb25cIDsKK+W+gOS6iyA+IG91amlcIDsKK+iKseitnCA+IGthZnVcIDsKK+mBuuW/lyA+IGlzaGlcIDsKK+W6j+asoSA+IGpvamlcIDsKK+avlOS+oSA+IGhpa2FcIDsKK+mAlOasoSA+IHRvamlcIDsKK+WJteaEjyA+IHNvdWlcIDsKK+atpuWutiA+IGJ1a2VcIDsKK+aoquiHpSA+IG91Z2FcIDsKK+mssemHkSA+IHVrb25cIDsKK+avlOS4mCA+IGJpa3VcIDsKK+mDveS4iyA+IHRva2FcIDsKK+efouWgtCA+IHlhYmFcIDsKK+iKseiiqyA+IGthaGlcIDsKK+mBleaGsiA+IGlrZW5cIDsKK+W7tuWvvyA+IGVuanVcIDsKK+eZvuiIjCA+IG1venVcIDsKK+atpuWkqyA+IGJ1ZnVcIDsKK+egguWIqSA+IGphcmlcIDsKK+mDqOS4iyA+IGJ1a2FcIDsKK+mBuuWtkCA+IGlzaGlcIDsKK+eeveWlsyA+IGdvemVcIDsKK+WPpeOAhSA+IGt1a3VcIDsKK+WHuuatryA+IGRlYmFcIDsKK+mBjuW6piA+IGthZG9cIDsKK+atpuWZqCA+IGJ1a2lcIDsKK+mBi+W6pyA+IHVuemFcIDsKK+asoeW6jyA+IGppam9cIDsKK+aooeeziiA+IG1va29cIDsKK+iKseiKvSA+IGthZ2FcIDsKK+mBuuWdgCA+IGlzaGlcIDsKK+W5s+aYkyA+IGhlaWlcIDsKK+WKoOWRsyA+IGthbWlcIDsKK+atqeWQiCA+IGJ1YWlcIDsKK+asp+WtlyA+IG91amlcIDsKK+WHuuadpSA+IGRla2lcIDsKK+WDp+ihoyA+IHNvdWlcIDsKK+eWjumfsyA+IHNvaW5cIDsKK+W6p+W3niA+IHphc3VcIDsKK+aoueeariA+IGp1aGlcIDsKK+W6nOW6qyA+IGZ1a29cIDsKK+mBuuWTgSA+IGloaW5cIDsKK+eWkembsiA+IGdpdW5cIDsKK+mBuuWRvSA+IGltZWlcIDsKK+atpOWHpiA+IGtva29cIDsKK+atpuWFtyA+IGJ1Z3VcIDsKK+mBjuWkmiA+IGthdGFcIDsKK+asoeWlsyA+IGppam9cIDsKK+WHoOahiCA+IGtpYW5cIDsKK+atpuWCmSA+IGJ1YmlcIDsKK+i/veaJiyA+IG90dGVcIDsKK+mBuuWKnyA+IGlrb3VcIDsKK+eVsOmiqCA+IGlmdXVcIDsKK+mBuuWItiA+IGlzZWlcIDsKK+eVsOmhniA+IGlydWlcIDsKK+WIqeW3sSA+IHJpa29cIDsKK+ato+S9jSA+IHNlaWlcIDsKK+WIt+WtkCA+IGhha2VcIDsKK+atpuS6iyA+IGJ1amlcIDsKK+iNiuajmCA+IGJhcmFcIDsKK+mtlOe+hSA+IG1hcmFcIDsKK+mBuuS9kyA+IGl0YWlcIDsKK+mBleWPjSA+IGloYW5cIDsKK+mBuuS8nSA+IGlkZW5cIDsKK+mBjuWOuyA+IGtha29cIDsKK+asp+WMliA+IG91a2FcIDsKK+eWjumBoCA+IHNvZW5cIDsKK+eWkei+niA+IGdpamlcIDsKK+W3pua0viA+IHNhaGFcIDsKK+iJtue+jiA+IGVuYmlcIDsKK+mpoummrCA+IHJvYmFcIDsKK+WykOmYnCA+IGdpZnVcIDsKK+W6p+WToSA+IHphaW5cIDsKK+awuOOAhSA+IGVpZWlcIDsKK+ecn+W4hiA+IG1haG9cIDsKK+ebuOaJiyA+IGFpdGVcIDsKK+W6puWQiCA+IGRvYWlcIDsKK+mBleS+iyA+IGlyZWlcIDsKK+WIqeWZqCA+IHJpa2lcIDsKK+iJsue1tSA+IGlyb2VcIDsKK+eVsOmCpiA+IGlob3VcIDsKK+mBleS7pCA+IGlyZWlcIDsKK+W7g+S9jSA+IGhhaWlcIDsKK+W4g+aWvSA+IGZ1c2VcIDsKK+iHquiyuyA+IGppaGlcIDsKK+iHquiyoCA+IGppZnVcIDsKK+WFpeaxnyA+IGlyaWVcIDsKK+iLseawlyA+IGVpa2lcIDsKK+movummrCA+IHJhYmFcIDsKK+iKseeOiyA+IGthb3VcIDsKK+aji+mZoiA+IGtpaW5cIDsKK+W4t+W5hCA+IGlha3VcIDsKK+iLseatpiA+IGVpYnVcIDsKK+eVsOi2oyA+IGlzaHVcIDsKK+WFt+ahiCA+IGd1YW5cIDsKK+WHuuWgtCA+IGRlYmFcIDsKK+iHquiomCA+IGppa2lcIDsKK+W6p+S4uyA+IHphc3VcIDsKK+iHquihmyA+IGppZWlcIDsKK+eVsOirliA+IGlyb25cIDsKK+WykOi3ryA+IGtpcm9cIDsKK+ebuOWtkCA+IGFpa29cIDsKK+W6nOS4iyA+IGZ1a2FcIDsKK+mtlOeOiyA+IG1hb3VcIDsKK+WBieimsyA+IGlrYW5cIDsKK+eVsOimiyA+IGlrZW5cIDsKK+WIqeS7liA+IHJpdGFcIDsKK+mojummrCA+IGtpYmFcIDsKK+apn+W+riA+IGtpYmlcIDsKK+apn+W9sSA+IGtpZWlcIDsKK+W5vuS9lSA+IGtpa2FcIDsKK+W+gOOAhSA+IG91b3VcIDsKK+eZuuadoSA+IGJhbmVcIDsKK+WGheaEjyA+IG5haWlcIDsKK+apn+W6jyA+IGtpam9cIDsKK+eZuOacqiA+IGtpYmlcIDsKK+W4neWogSA+IHRlaWlcIDsKK+i/guWbniA+IHVrYWlcIDsKK+mAgOS9jSA+IHRhaWlcIDsKK+WHuuWIgyA+IGRlYmFcIDsKK+aihembqCA+IGJhaXVcIDsKK+aooeaTrCA+IG1vZ2lcIDsKK+WGhuW8pyA+IGVua29cIDsKK+eXsueXuiA+IG1haGlcIDsKK+ebruWcsCA+IG1lamlcIDsKK+WGhuW6pyA+IGVuemFcIDsKK+apn+WwviA+IGtpYmlcIDsKK+iKseaouSA+IGthanVcIDsKK+W4sOWWtiA+IGtpZWlcIDsKK+eUu+itnCA+IGdhZnVcIDsKK+apn+WunCA+IGtpZ2lcIDsKK+WwvumDqCA+IGJpYnVcIDsKK+ebsuWUliA+IG1vdWFcIDsKK+S+nemhmCA+IGlnYW5cIDsKK+S+nemgvCA+IGlyYWlcIDsKK+eWkee+qSA+IGdpZ2lcIDsKK+ecn+S8vCA+IG1hbmVcIDsKK+aji+itnCA+IGtpZnVcIDsKK+W4sOWMliA+IGtpa2FcIDsKK+WFkOaIryA+IGppZ2lcIDsKK+ecn+S4iiA+IG1hdWVcIDsKK+W3q+WtkCA+IG1pa29cIDsKK+W4jOWcnyA+IGtpZG9cIDsKK+iKseacnyA+IGtha2lcIDsKK+W4jOWbsyA+IGtpdG9cIDsKK+mmrOm5vyA+IGJha2FcIDsKK+iHmeiEgiA+IGVuamlcIDsKK+WBg+iHpSA+IGVuZ2FcIDsKK+iDoem6uyA+IGdvbWFcIDsKK+agl+m8oCA+IHJpc3VcIDsKK+WvuumZoiA+IGppaW5cIDsKK+eVsOiBniA+IGlidW5cIDsKK+W3q+WlsyA+IG1pa29cIDsKK+ebruWHpiA+IG1lZG9cIDsKK+mnhOmmrCA+IGRhYmFcIDsKK+msvOawlyA+IGtpa2lcIDsKK+WHoOS4iyA+IGtpa2FcIDsKK+apn+WZqCA+IGtpa2lcIDsKK+WFrOWutiA+IGt1Z2VcIDsKK+iJtuatjCA+IGVua2FcIDsKK+S/neittyA+IGhvZ29cIDsKK+WFteWogSA+IGhlaWlcIDsKK+msseawlyA+IHVra2lcIDsKK+i7veaYkyA+IGtlaWlcIDsKK+iLseWtlyA+IGVpamlcIDsKK+iKseaKvCA+IGthb3VcIDsKK+S/muiqniA+IHJpZ29cIDsKK+eah+WtkCA+IG91amlcIDsKK+WxoOiYhyA+IHRvc29cIDsKK+WGgOWbsyA+IGtpdG9cIDsKK+mnhumZpCA+IGt1am9cIDsKK+WvnemWkyA+IG5lbWFcIDsKK+i+nuWEgCA+IGppZ2lcIDsKK+ebruS4iiA+IG1ldWVcIDsKK+W4neS9jSA+IHRlaWlcIDsKK+apn+WMliA+IGtpa2FcIDsKK+i8quW3riA+IHdhc2FcIDsKK+S9memfuyA+IHlvaW5cIDsKK+eVsOerryA+IGl0YW5cIDsKK+i8neW6piA+IGtpZG9cIDsKK+WvhOmZhCA+IGtpZnVcIDsKK+apn+WFtyA+IGtpZ3VcIDsKK+W3peWQiCA+IGd1YWlcIDsKK+eVsOeoriA+IGlzaHVcIDsKK+WFkOWlsyA+IGppam9cIDsKK+iKseW6jyA+IGtham9cIDsKK+WFt+WQiCA+IGd1YWlcIDsKK+i2s+iiiyA+IHRhYmlcIDsKK+Wxsee+iiA+IHlhZ2lcIDsKK+iLpuWcnyA+IGt1ZG9cIDsKK+S9jemajiA+IGlrYWlcIDsKK+Wvv+izgCA+IGp1Z2FcIDsKK+iHqueUuyA+IGppZ2FcIDsKK+iLseWSjCA+IGVpd2FcIDsKK+WFrOWNvyA+IGt1Z2VcIDsKK+eUu+e0oCA+IGdhc29cIDsKK+WFtuWHpiA+IHNva29cIDsKK+aiqOiKsSA+IHJpa2FcIDsKK+eUsee4gSA+IHl1ZW5cIDsKK+WGhuS+oSA+IGVua2FcIDsKK+iKseWtoyA+IGtha2lcIDsKK+mtmuW6pyA+IHVvemFcIDsKK+WFt+WCmSA+IGd1YmlcIDsKK+i2iuiotCA+IGVzc29cIDsKK+iCpemmrCA+IGhpYmFcIDsKK+eZvuWQiCA+IHl1cmlcIDsKK+earuS4iyA+IGhpa2FcIDsKK+WEkuWutiA+IGp1a2FcIDsKK+iHqueBqyA+IGppa2FcIDsKK+i1t+iotCA+IGtpc29cIDsKK+S/muiAsyA+IHJpamlcIDsKK+WutumBiyA+IGthdW5cIDsKK+eVsOeKtiA+IGlqb3VcIDsKK+almualmiA+IHNvc29cIDsKK+WFgeWPryA+IGlua2FcIDsKK+S+jeihmyA+IGppZWlcIDsKK+mlkemkkyA+IGtpZ2FcIDsKK+iKseWZqCA+IGtha2lcIDsKK+eah+S9jSA+IGtvdWlcIDsKK+S9s+ipsSA+IGthd2FcIDsKK+iDg+mFuCA+IGlzYW5cIDsKK+WFiOWFiCA+IG1hbWFcIDsKK+Wutui3ryA+IGllamlcIDsKK+ahp+iRiSA+IGhpYmFcIDsKK+mtlOWlsyA+IG1ham9cIDsKK+mlgumjqSA+IHVkb25cIDsKK+Wtl+mfsyA+IGppb25cIDsKK+WvhOiqniA+IGtpZ29cIDsKK+iKseWNiSA+IGtha2lcIDsKK+WutuitnCA+IGthZnVcIDsKK+iDtOihoyA+IGRvdWlcIDsKK+msvOWlsyA+IGtpam9cIDsKK+iAs+m8uyA+IGppYmlcIDsKK+mkk+msvCA+IGdha2lcIDsKK+iDpOijlCA+IGluZWlcIDsKK+WEsuS9jSA+IGNob2lcIDsKK+iHquajhCA+IHlha2VcIDsKK+eQhumdniA+IHJpaGlcIDsKK+S7pemZjSA+IGlrb3VcIDsKK+WEquS9jSA+IHl1dWlcIDsKK+i1t+iHpSA+IGtpZ2FcIDsKK+iDnuihoyA+IGhvdWlcIDsKK+aghOiqiSA+IGVpeW9cIDsKK+WssOmfsyA+IGVpb25cIDsKK+i8lOS9kCA+IGhvc2FcIDsKK+S8iumBlCA+IGRhdGVcIDsKK+eVsOanmCA+IGl5b3VcIDsKK+S9meiYiiA+IHlvdW5cIDsKK+WutuiaiiA+IGlla2FcIDsKK+WwvOeUqyA+IGppaG9cIDsKK+WBieadkCA+IGl6YWlcIDsKK+eVsOacrCA+IGlob25cIDsKK+akjeacqCA+IHVla2lcIDsKK+iDvOiDnSA+IHRha29cIDsKK+iIquWuhyA+IGtvdXVcIDsKK+eWkeaHvCA+IGdpa3VcIDsKK+eVsOaWhyA+IGlidW5cIDsKK+eVsOaVsCA+IGlzdXVcIDsKK+eWkeaDpyA+IGdpZ3VcIDsKK+iHquaIkSA+IGppZ2FcIDsKK+mnleexoCA+IGthZ29cIDsKK+mtgeWBiSA+IGthaWlcIDsKK+S/neeEoSA+IGhvbXVcIDsKK+mnleevrSA+IGthZ29cIDsKK+mjoumkkyA+IGtpZ2FcIDsKK+iHquaEmyA+IGppYWlcIDsKK+aghOiPryA+IGVpZ2FcIDsKK+WBieaMmSA+IGlreW9cIDsKK+Wto+iqniA+IGtpZ29cIDsKK+iCmuijjyA+IHRvcmlcIDsKK+WDp+S9jSA+IHNvdWlcIDsKK+WBieaJjSA+IGlzYWlcIDsKK+eVsOaJjSA+IGlzYWlcIDsKK+iyu+mAlCA+IGhpdG9cIDsKK+eQhui3ryA+IHJpcm9cIDsKK+izpuiqsiA+IGZ1a2FcIDsKK+izpuipoCA+IGZ1ZWlcIDsKK+eVj+aVrCA+IGlrZWlcIDsKK+S/nea4qSA+IGhvb25cIDsKK+iHquW6jyA+IGppam9cIDsKK+eUu+aetiA+IGdha2FcIDsKK+S9jee9riA+IGljaGlcIDsKK+S6jOmZoiA+IG5paW5cIDsKK+iHquW3sSA+IGppa29cIDsKK+eVsOaApyA+IGlzZWlcIDsKK+eVsOW9qSA+IGlzYWlcIDsKK+eWkeWtlyA+IGdpamlcIDsKK+ixqumbqCA+IGdvdXVcIDsKK+S7mOitsCA+IGZ1Z2lcIDsKK+S/neavjSA+IGhvYm9cIDsKK+WuieiHpSA+IGFuZ2FcIDsKK+S7peilvyA+IGlzZWlcIDsKK+S6nOmItCA+IGFyZWlcIDsKK+iHquWutiA+IGppa2FcIDsKK+eVsOW4uCA+IGlqb3VcIDsKK+S+m+eKoCA+IGt1Z2lcIDsKK+S7mOiomCA+IGZ1a2lcIDsKK+Wwj+eBqyA+IGJveWFcIDsKK+mnhOebriA+IGRhbWVcIDsKK+Wxi+aguSA+IHlhbmVcIDsKK+S+neeEtiA+IGl6ZW5cIDsKK+S8iuiJpiA+IGlrYW5cIDsKK+WBieWuuSA+IGl5b3VcIDsKK+aiqOaenCA+IHJpa2FcIDsKK+eVsOWtmCA+IGl6b25cIDsKK+S6jOmDqCA+IG5pYnVcIDsKK+miqOmbqCA+IGZ1dXVcIDsKK+ajhOaNkCA+IGtpZW5cIDsKK+alleWGhiA+IGRhZW5cIDsKK+WBveWNsCA+IGdpaW5cIDsKK+iCjOiGmiA+IGtpZnVcIDsKK+eVsOWnkyA+IGlzZWlcIDsKK+WBieWkpyA+IGlkYWlcIDsKK+eVsOWkiSA+IGloZW5cIDsKK+eVmeWuiCA+IHJ1c3VcIDsKK+S9jeebuCA+IGlzb3VcIDsKK+S4gOm8kyA+IGlra29cIDsKK+iHquWWtiA+IGppZWlcIDsKK+eUqOaEjyA+IHlvdWlcIDsKK+iAs+iqniA+IGppZ29cIDsKK+eVsOWfnyA+IGlpa2lcIDsKK+eUu+W4gyA+IGdhZnVcIDsKK+mrmOS9jSA+IGtvdWlcIDsKK+Wtl+e+qSA+IGppZ2lcIDsKK+iHquWPmSA+IGppam9cIDsKK+S/neaMgSA+IGhvamlcIDsKK+mppeWwviA+IGtpYmlcIDsKK+WAmuWtkCA+IGlzaGlcIDsKK+iHquWKqSA+IGppam9cIDsKK+iDg+eZjCA+IGlnYW5cIDsKK+eUu+WutiA+IGdha2FcIDsKK+iIiOS6nCA+IGtvdWFcIDsKK+eTpuaWryA+IGdhc3VcIDsKK+iHquWIqSA+IGppcmlcIDsKK+WutueItiA+IGthZnVcIDsKK+mjm+iqniA+IGhpZ29cIDsKK+S9meeFmSA+IHlvZW5cIDsKK+S4i+mnhCA+IGdldGFcIDsKK+S4i+mmrCA+IGdlYmFcIDsKK+WBh+WQjSA+IGthbmFcIDsKK+eVsOWQjSA+IGltZWlcIDsKK+S9jeeJjCA+IGloYWlcIDsKK+eVsOWQjCA+IGlkb3VcIDsKK+iAtuiYhyA+IHlhc29cIDsKK+S9meeCjiA+IHlvZW5cIDsKK+eRoOeSgyA+IHJ1cmlcIDsKK+S4gOmojiA+IGlra2lcIDsKK+eWkeS8vCA+IGdpamlcIDsKK+WBieWLsiA+IGlrdW5cIDsKK+WBieWKuSA+IGlrb3VcIDsKK+WBieWKnyA+IGlrb3VcIDsKK+eVsOWLlSA+IGlkb3VcIDsKK+iyoOiNtyA+IGZ1a2FcIDsKK+S5hemBoCA+IGt1b25cIDsKK+iHquS9mSA+IGppeW9cIDsKK+S4jemboiA+IGZ1cmlcIDsKK+S4gOmhpyA+IGlra29cIDsKK+iHquS7liA+IGppdGFcIDsKK+e+jumfsyA+IGJpb25cIDsKK+WtkOetiSA+IGtvcmFcIDsKK+S4i+mZoiA+IGthaW5cIDsKK+i1t+ahiCA+IGtpYW5cIDsKK+S4jemWkyA+IGJ1bWFcIDsKK+eUu+WboCA+IGdhaW5cIDsKK+S9meazoiA+IHlvaGFcIDsKK+eVj+WPiyA+IGl5dXVcIDsKK+eVsOS+iyA+IGlyZWlcIDsKK+Wwj+aJiyA+IGtvdGVcIDsKK+eVsOS9kyA+IGl0YWlcIDsKK+i2o+aEjyA+IHNodWlcIDsKK+WFiOOAhSA+IG1hbWFcIDsKK+WBieS6uiA+IGlqaW5cIDsKK+eVsOS6uiA+IGlqaW5cIDsKK+S/neWuiSA+IGhvYW5cIDsKK+S9meaugyA+IHlvb3VcIDsKK+i3r+WcsCA+IHJvamlcIDsKK+S+neaLoCA+IGlreW9cIDsKK+eQteeQtiA+IGJpd2FcIDsKK+eQhuenkSA+IHJpa2FcIDsKK+aarumbsiA+IGJvdW5cIDsKK+S/neWnhiA+IGhvYm9cIDsKK+iDg+a2siA+IGlla2lcIDsKK+WxheWjqyA+IGtvamlcIDsKK+S6nOiBliA+IGFzZWlcIDsKK+adjuiKsSA+IHJpa2FcIDsKK+S4i+mHjiA+IGdleWFcIDsKK+S4iumHjiA+IHVlbm9cIDsKK+iCjOeQhiA+IGtpbWVcIDsKK+mmtOafkyA+IG5hamlcIDsKK+S6nOe+pCA+IGFndW5cIDsKK+S4lui+niA+IHNlamlcIDsKK+S4jemBiyA+IGZ1dW5cIDsKK+S9meaghCA+IHlvZWlcIDsKK+iFsOWbsiA+IHlvdWlcIDsKK+aiqOWckiA+IHJpZW5cIDsKK+S+m+W+oSA+IGd1Z29cIDsKK+aig+WtkCA+IHRla29cIDsKK+i3r+WKoCA+IHJ1a2FcIDsKK+S6nOe2sSA+IGFrb3VcIDsKK+aenOeariA+IGthaGlcIDsKK+S4jei7jCA+IGZ1a2lcIDsKK+S9meaahyA+IHlva2FcIDsKK+S4gOmBjiA+IGlra2FcIDsKK+Wwj+WxiyA+IGtveWFcIDsKK+S4gOmAlCA+IGl0dG9cIDsKK+e+jui+niA+IGJpamlcIDsKK+WuieawlyA+IGFua2lcIDsKK+eQieeSgyA+IHJ1cmlcIDsKK+WuueaYkyA+IHlvdWlcIDsKK+WAi+WAiyA+IGtva29cIDsKK+S4jei1tyA+IGZ1a2lcIDsKK+WwieWumCA+IGlrYW5cIDsKK+aghOaeryA+IGVpa29cIDsKK+i1t+W6pyA+IGtpemFcIDsKK+Wvk+aEjyA+IGd1dWlcIDsKK+S+neWtmCA+IGl6b25cIDsKK+S4luipsSA+IHNld2FcIDsKK+S6nOeoriA+IGFzaHVcIDsKK+aZtOmbqCA+IHNlaXVcIDsKK+Wwj+WknCA+IHNheW9cIDsKK+WogemiqCA+IGlmdXVcIDsKK+mjm+ewtyA+IGhpZW5cIDsKK+mfs+mgrSA+IG9uZG9cIDsKK+S9meaKgCA+IHlvZ2lcIDsKK+S4jeiqniA+IGZ1Z29cIDsKK+S9meaJgCA+IHlvc29cIDsKK+eOi+iAhSA+IG91amFcIDsKK+WutuaJtiA+IGthZnVcIDsKK+S4i+iomCA+IGtha2lcIDsKK+aal+mDqCA+IGFuYnVcIDsKK+S+m+WliSA+IGd1YnVcIDsKK+iDg+aVoyA+IGlzYW5cIDsKK+S7geeOiyA+IG5pb3VcIDsKK+S+jeWpoiA+IGppaGlcIDsKK+S6iOenkSA+IHlva2FcIDsKK+Wus+aEjyA+IGdhaWlcIDsKK+S6iOekuiA+IHlvamlcIDsKK+WuieaYkyA+IGFuJydpXCA7CivkuIvooYYgPiBnZXN1XCA7CivkuIrooaMgPiBqb3VpXCA7Civkvo3lpbMgPiBqaWpvXCA7CivlrZfmr40gPiBqaWJvXCA7Civog4zmiLggPiBzZWRvXCA7Civlr4TluK0gPiB5b3NlXCA7CivkvbPlrrQgPiBrYWVuXCA7CivniqDpo5sgPiBnaWhpXCA7CivkuI3omZ4gPiBmdWd1XCA7CivohZDlhJIgPiBmdWp1XCA7CivnvbXoqYggPiBiYXJpXCA7Civlr4zlrrYgPiBmdWthXCA7Civku5bmtL4gPiB0YWhhXCA7CivorbDpmaIgPiBnaWluXCA7Civotbflm6AgPiBraWluXCA7CivnjrvnkoMgPiBoYXJpXCA7CivlronmiZMgPiBhbmRhXCA7CivmmpforZwgPiBhbnB1XCA7CivppqzlrZAgPiBtYWdvXCA7CivmmK/pnZ4gPiB6ZWhpXCA7CivkuovnkIYgPiBqaXJpXCA7CivlrrblrrYgPiBpZWllXCA7CivmnrjmnZ4gPiBrdWtvXCA7CivkuoznjosgPiBuaW91XCA7CivnjL/oh4IgPiBlbnBpXCA7CivmmpfoqJggPiBhbmtpXCA7CivmnpzmqLkgPiBrYWp1XCA7CivkvY3lrpggPiBpa2FuXCA7CivkupHniL4gPiB1bmppXCA7Civkupzngq0gPiBhdGFuXCA7CivkuIDojbcgPiBpa2thXCA7Civotbflj6UgPiBraWt1XCA7CivkvJrmhI8gPiBrYWlpXCA7Civku6XmnbEgPiBpdG91XCA7Civku6XmnaUgPiBpcmFpXCA7Civpo5vnh5UgPiBoaWVuXCA7CivlronluqcgPiBhbnphXCA7Civml5fpvJMgPiBraWtvXCA7CivppqzloLQgPiBiYWJhXCA7Civpno3ppqwgPiBhbmJhXCA7CivkuIDoh4IgPiBpcHBpXCA7CivkvbPlkbMgPiBrYW1pXCA7CivkuI3nvqkgPiBmdWdpXCA7CivkuI3nvoggPiBmdWtpXCA7CivkuI3nvocgPiBmdWtpXCA7CivkvbPlj6UgPiBrYWt1XCA7CivmnKjnk5wgPiBib2tlXCA7Civpp4Tlj6UgPiBkYWt1XCA7Civogqnlt74gPiBoaXJlXCA7CivmmYLpgYsgPiBqaXVuXCA7Civpn7voqp4gPiBpbmdvXCA7CivmpZrjgIUgPiBzb3NvXCA7Civpn7PorZwgPiBvbnB1XCA7CivkuI3nuIEgPiBmdWVuXCA7CivkvY3lnLAgPiBpY2hpXCA7CivmnofmnbcgPiBiaXdhXCA7CivkuIrntbUgPiB1d2FlXCA7CivlraTlvbEgPiBrb2VpXCA7CivmoYjkvqEgPiBhbmthXCA7CivnjJvogIUgPiBtb3NhXCA7CivmoKHljLsgPiBrb3VpXCA7Civnvr3nm64gPiBoYW1lXCA7CivmoYjkuIsgPiBhbmthXCA7Civmn5rlrZAgPiB5dXp1XCA7CivorbforKggPiBnb211XCA7Civku5bmiYAgPiB5b3NvXCA7CivkuozmrKEgPiBuaWppXCA7CivlpoLpnLIgPiBqb3JvXCA7CivkuI3nqY8gPiBmdW9uXCA7CivlronloLUgPiBhbmRvXCA7CivkuIDnrocgPiBpa2tvXCA7CivkuIvnqK4gPiBnZXN1XCA7CivppqzlhbcgPiBiYWd1XCA7CivkvY3li7IgPiBpa3VuXCA7Civku5bmhJsgPiB0YWFpXCA7Civlrrblh7ogPiBpZWRlXCA7CivkvZnlhIAgPiB5b2dpXCA7Civlronlm7ogPiBhbmtvXCA7CivlrrblhbcgPiBrYWd1XCA7CivkuI3no6ggPiBmdW1hXCA7CivlrrblhY4gPiBrYXRvXCA7Civml6XplpMgPiBoaWFpXCA7CivkvI7lpbMgPiBnaWpvXCA7Civlp5TorbIgPiBpam91XCA7CivkvY3lhqAgPiBpa2FuXCA7CivorbfooZsgPiBnb2VpXCA7Civku4vmhI8gPiBrYWlpXCA7Civlr4Tku5ggPiBraWZ1XCA7Civpno3pg6ggPiBhbmJ1XCA7CivmnInngrogPiB5dXVpXCA7Civlr4TkuI4gPiBraXlvXCA7CivkvZPkvY0gPiB0YWlpXCA7CivkvZnkuosgPiB5b2ppXCA7CivpnZLpnZIgPiBhb2FvXCA7Civku67lrZcgPiBrYW5hXCA7CivkuozmnJ8gPiBuaWtpXCA7CivkvY7kvY0gPiB0ZWlpXCA7CivlronlkKYgPiBhbnBpXCA7Civog6HkubEgPiB1cm9uXCA7CivkuojmnJ8gPiB5b2tpXCA7CivlrrbkuosgPiBrYWppXCA7CivnvqnnkIYgPiBnaXJpXCA7CivorY/oqrkgPiBraWhpXCA7CivkuIvnl6IgPiBnZXJpXCA7CivlronljbEgPiBhbmtpXCA7Civos63loLQgPiB0b2JhXCA7CivpppbkvY0gPiBzaHVpXCA7CivlrInmiK8gPiBraWdpXCA7CivkuovmlYUgPiBqaWtvXCA7CivkvIHlm7MgPiBraXRvXCA7CivnvqnniLYgPiBnaWZ1XCA7Civku5blrrYgPiB0YWtlXCA7CivkuI3nkIYgPiBmdXJpXCA7Civos4DlrrQgPiBnYWVuXCA7CivlrprkvY0gPiB0ZWlpXCA7CivlroflhoUgPiB1ZGFpXCA7Civku6XlpJYgPiBpZ2FpXCA7CivnkaPkuosgPiBzYWppXCA7CivlpKLprZQgPiBtdW1hXCA7CivmnaXmhI8gPiByYWlpXCA7CivlrbXljJYgPiBmdWthXCA7CivosrTlrrYgPiBraWthXCA7CivmmpfnpLogPiBhbmppXCA7Civlronkv50gPiBhbnBvXCA7CivlronkvqEgPiBhbmthXCA7CivmnKjmnKggPiBraWdpXCA7CivpnZ7pgYsgPiBoaXVuXCA7Civogb7llJYgPiByb3VhXCA7CivotI/kvZkgPiBlaXlvXCA7Civnvr3mr5sgPiB1bW91XCA7Civpn7PntKAgPiBvbnNvXCA7CivlrZflj6UgPiBqaWt1XCA7CivotIjkvY0gPiB6b3VpXCA7CivosrTlpbMgPiBraWpvXCA7Civku5jlm7MgPiBmdXp1XCA7CivogonliLogPiBtYW1lXCA7CivkuovlvowgPiBqaWdvXCA7CivkuojlvowgPiB5b2dvXCA7CivkuozluqYgPiBuaWRvXCA7Civpn7PnrKYgPiBvbnB1XCA7CivnvqnmsJcgPiBnaWtpXCA7CivlgIvjgIUgPiBrb2tvXCA7Civnvqnmr40gPiBnaWJvXCA7Civoqp7pn7MgPiBnb29uXCA7Civku6XljZcgPiBpbmFuXCA7CivogIzlvowgPiBqaWdvXCA7CivlpJzpmbAgPiB5YWluXCA7Civku5jlkowgPiBmdXdhXCA7CivniaHom44gPiBrYWtpXCA7CivnjovmiYsgPiBvdXRlXCA7Civnvr3moLkgPiBoYW5lXCA7CivmnKjmiLggPiBraWRvXCA7Civku6XliY0gPiBpemVuXCA7CivmnbHlpLcgPiB0b3VpXCA7CivpnZ7orbAgPiBoaWdpXCA7Civpn4vnt6ggPiBpaGVuXCA7Civku6XlhoUgPiBpbmFpXCA7CivkuIDmtL4gPiBpcHBhXCA7CivkuInmr5sgPiBtaWtlXCA7Civpm7fpm6ggPiByYWl1XCA7Civoq7PorZwgPiBhbnB1XCA7Civku5jliqAgPiBmdWthXCA7CivkuI3mrKEgPiBmdWppXCA7Civpm5HprZogPiBqYWtvXCA7CivorbfnrKYgPiBnb2Z1XCA7Civpm7LpnKcgPiB1bm11XCA7CivkuovlrpwgPiBqaWdpXCA7Civmm7Pmm7MgPiBlaWVpXCA7CivkuozlrZcgPiBuaWppXCA7CivkuIDmsJcgPiBpa2tpXCA7Civos6bkuI4gPiBmdXlvXCA7CivmnY/lrZAgPiBhbnp1XCA7Civlp5TntLAgPiBpc2FpXCA7Civoq7PoqJggPiBhbmtpXCA7CivlpKfph44gPiBvb25vXCA7CivkuIDmrakgPiBpcHBvXCA7Civmlo7pg6ggPiBpbmJlXCA7Civku6PkvY0gPiBkYWlpXCA7Civni5DnlpEgPiBrb2dpXCA7CivnjovluqcgPiBvdXphXCA7Civku6Pku6MgPiB5b3lvXCA7CivlpYfosqggPiBraWthXCA7Civku6XkuIogPiBpam91XCA7Civnvqnml5cgPiBnaWtpXCA7CivnkIbkuosgPiByaWppXCA7CivmnInmhI8gPiB5dXVpXCA7CivmnInmg4UgPiB1am91XCA7CivkuI3mnJ8gPiBmdWtpXCA7Civku5bkuosgPiB0YWppXCA7Civni5Lni5IgPiBoaWhpXCA7Civku5jkuI4gPiBmdXlvXCA7CivkuLvmhI8gPiBzaHVpXCA7Civni5Dni7ggPiBrb3JpXCA7CivkuJbmlYUgPiBzZWtvXCA7CivkuI3mmYIgPiBmdWppXCA7CivpnLLoqp4gPiByb2dvXCA7CivlpKfot68gPiBvb2ppXCA7CivnjovlrrYgPiBvdWtlXCA7Civnvqnmj7QgPiBnaWVuXCA7CivnjovlrZAgPiBvdWppXCA7CivkuIDmnJ8gPiBpa2tpXCA7CivnvqnmjZAgPiBnaWVuXCA7CivoqrnorbAgPiBoaWdpXCA7CivosrTkuIsgPiBraWthXCA7CivkuIDmlpcgPiBpdHRvXCA7CivnjovlpoMgPiBvdWhpXCA7CivnjovlpbMgPiBvdWpvXCA7CivpnZLokYkgPiBhb2JhXCA7Civoqp7ot68gPiBnb3JvXCA7CivpnZLoj5wgPiBhb25hXCA7CivkupLliqkgPiBnb2pvXCA7CivmnKjloLQgPiBraWJhXCA7CivkupTliIYgPiBnb2J1XCA7CivkuIDmj4YgPiBpa2tpXCA7Civkuovli5kgPiBqaW11XCA7CivkuIvmiYsgPiBoZXRhXCA7CivkuIvmiLggPiBnZWtvXCA7CivmnbHkup4gPiB0b3VhXCA7CivmnbHkupwgPiB0b3VhXCA7CivmnKjlnLAgPiBraWppXCA7CivnjovlnJ8gPiBvdWRvXCA7Civnvo7mioAgPiBiaWdpXCA7CivkuIrmhI8gPiBqb3VpXCA7CivkuIDmiLggPiBpa2tvXCA7Civni6zmpb0gPiBrb21hXCA7CivoqqToqJggPiBnb2tpXCA7Civpn7Pms6IgPiBvbnBhXCA7CivkupvkuosgPiBzYWppXCA7Civpn7vmr40gPiBpbmJvXCA7CivmmKDnlLsgPiBlaWdhXCA7CivkuojlgpkgPiB5b2JpXCA7CivkuozkvqEgPiBuaWthXCA7Civmlr3ogqUgPiBzZWhpXCA7CivpoYzmhI8gPiBkYWlpXCA7CivkuozkvZAgPiBuaXNhXCA7CivkuojkvqEgPiB5b2thXCA7CivlpJbooaMgPiBnYWlpXCA7CivkuI3luLAgPiBmdWtpXCA7CivmlbfooY0gPiBmdWVuXCA7Civml6nnqLIgPiB3YXNlXCA7CivoqJvpn7MgPiBrYW9uXCA7Civnvr3lpKogPiBoYXRhXCA7CivnhZnpnKcgPiBlbm11XCA7CivnjovljJYgPiBvdWthXCA7CivnhZnpnJ4gPiBlbmthXCA7CivnhZnpm6ggPiBlbicndVwgOwor6aKo5ZGCID4gZnVyb1wgOwor5Lm+5L2NID4ga2VuaVwgOwor5pOs6Z+zID4gZ2lvblwgOwor5aiB5qipID4gaWtlblwgOwor5LiA5bexID4gaWtrb1wgOwor57iB6LW3ID4gZW5naVwgOwor5Lmd5YiGID4ga3VidVwgOwor5LiN5a6JID4gZnVhblwgOwor5aaW55WwID4geW91aVwgOwor6KiD6Z+zID4gZnVvblwgOwor5py65LiLID4ga2lrYVwgOwor54i256WWID4gZnVzb1wgOwor5LiL5amiID4ga2FoaVwgOwor5LiA5a62ID4gaWtrZVwgOwor6Zmw6ZicID4gaW5mdVwgOwor5aWH57iBID4ga2llblwgOwor5pqX5oSaID4gYW5ndVwgOwor5LiO5aSqID4geW90YVwgOwor5LiL5aWzID4gZ2Vqb1wgOwor54Sh6aeEID4gbXVkYVwgOwor57iB6KqeID4gZW5nb1wgOwor6ZuF6KqeID4gZ2Fnb1wgOwor546L5LqLID4gb3VqaVwgOwor5pmC5qmfID4gamlraVwgOwor5pep55SfID4gd2FzZVwgOwor542j5Yy7ID4ganV1aVwgOwor576O5aerID4gYmlraVwgOwor5amm5aWzID4gZnVqb1wgOwor576O5aaTID4gYmlnaVwgOwor6aKo5L2NID4gZnV1aVwgOwor576O5aWzID4gYmlqb1wgOwor5Lmd5LmdID4ga3VrdVwgOwor6Z2S56ClID4gYW90b1wgOwor5a6244CFID4gaWVpZVwgOwor54Sh6Z+zID4gbXVvblwgOwor6K2w5qGIID4gZ2lhblwgOwor5LiN5ZuzID4gZnV0b1wgOwor6ZqY6LevID4gYWlyb1wgOwor54yb5aiBID4gbW91aVwgOwor6ZmN6ZuoID4ga291dVwgOwor5pm65oWnID4gY2hpZVwgOwor5LiN5ZmoID4gZnVraVwgOwor5aSa576pID4gdGFnaVwgOwor5pq05aiBID4gYm91aVwgOwor5aSa576FID4gdGFyYVwgOwor5pmC5pyfID4gamlraVwgOwor6Kqe576pID4gZ29naVwgOwor6Zmw6YOoID4gaW5idVwgOwor5aWz546LID4gam9vdVwgOwor5Li75L2NID4gc2h1aVwgOwor6Z2e55CGID4gaGlyaVwgOwor6Zuy6ISCID4gZnVrZVwgOwor576p5YuZID4gZ2ltdVwgOwor6Zui6IumID4gcmlrdVwgOwor5pqu5aScID4gYm95YVwgOwor6Z2S55SwID4gYW90YVwgOwor5LiN5ZKMID4gZnV3YVwgOwor5LiN5ZGzID4gZnVtaVwgOwor6Zqg6KqeID4gaW5nb1wgOwor6K235pGpID4gZ29tYVwgOwor5LiJ5ZGzID4gc2FtaVwgOwor5LiN5Y+vID4gZnVrYVwgOwor5LiL5ZCPID4ga2FyaVwgOwor5LiL5Y+4ID4gZ2VzdVwgOwor5LiL5Y+lID4gZ2VrdVwgOwor57i357i3ID4gcnVydVwgOwor5pu05L2NID4ga291aVwgOwor5aOB6J2oID4gZGFuaVwgOwor576O5ZGzID4gYmltaVwgOwor5LiL5Y2RID4gZ2ViaVwgOwor6Kyz5q2MID4gb3VrYVwgOwor6K235oyBID4gZ29qaVwgOwor5LiA5Y+lID4gaWtrdVwgOwor5LiN5YipID4gZnVyaVwgOwor54Sh6YmbID4gbXVlblwgOwor576O5YyWID4gYmlrYVwgOwor5LiA5Yy6ID4gaWtrdVwgOwor6aCt5Z6iID4gZnVrZVwgOwor5LiN5YW3ID4gZnVndVwgOwor6aCt5ZuyID4gdG91aVwgOwor6KiY6K2cID4ga2lmdVwgOwor5LiN5YKZID4gZnViaVwgOwor6Kib6KqeID4ga2Fnb1wgOwor54qg5omTID4gZ2lkYVwgOwor5aSW56eRID4gZ2VrYVwgOwor6Zui57iBID4gcmllblwgOwor5LiW5LqLID4gc2VqaVwgOwor6Z+75a2XID4gaW5qaVwgOwor5LiW5LiWID4geW95b1wgOwor5aSn55uuID4gb29tZVwgOwor54Sh6L6cID4gbXVrb1wgOwor5LiK5L2NID4gam91aVwgOwor5LiL5LuYID4ga2FmdVwgOwor57iB6ICFID4gZW5qYVwgOwor5pel5q2pID4gaGlidVwgOwor5LiN5LqMID4gZnVqaVwgOwor5LiN5LqIID4gZnV5b1wgOwor5LiA5YCLID4gaWtrb1wgOwor54i+5rGdID4gamlqb1wgOwor5aiB5a65ID4gaXlvdVwgOwor6Z+z5a2XID4gb25qaVwgOwor5aSc552AID4geW9naVwgOwor6Zmi6K2wID4gaW5naVwgOwor5aSc55uuID4geW9tZVwgOwor5LiA5L2QID4gaXNzYVwgOwor54i25q+NID4gZnVib1wgOwor6Z2e5q+AID4gaGlraVwgOwor5pmC5beuID4gamlzYVwgOwor57Sw6ZuoID4gc2FpdVwgOwor6ZyK55WwID4gcmVpaVwgOwor6KqH56S6ID4ga29qaVwgOwor5Z+66Z+zID4ga2lvblwgOwor57ev57eaID4gaXNlblwgOwor6ZmE6K2wID4gZnVnaVwgOwor5pmC5a6cID4gamlnaVwgOwor5Luj44CFID4geW95b1wgOwor6Zqg6ICFID4gaW5qYVwgOwor5pmC5a2jID4gamlraVwgOwor6Za76a2UID4gZW5tYVwgOwor5pel5pelID4gaGliaVwgOwor5pWw54+gID4ganV6dVwgOwor6ZmE6KiYID4gZnVraVwgOwor6aCk5L2/ID4gaXNoaVwgOwor6Zmw6JCOID4gaW4nJ2lcIDsKK+mfs+WQkCA+IG9udG9cIDsKK+mfs+WPiSA+IG9uc2FcIDsKK+WogeWQjSA+IGltZWlcIDsKK+mdkuacqCA+IGFva2lcIDsKK+WogeWOsyA+IGlnZW5cIDsKK+isneaEjyA+IHNoYWlcIDsKK+e2uue+hSA+IGtpcmFcIDsKK+WogeWLoiA+IGlzZWlcIDsKK+WfuumDqCA+IGtpYnVcIDsKK+WmguaEjyA+IG55b2lcIDsKK+itrOWWqSA+IGhpeXVcIDsKK+itsOWToSA+IGdpaW5cIDsKK+WogeWFiSA+IGlrb3VcIDsKK+WlveaEjyA+IGtvdWlcIDsKK+WlveaCqiA+IGtvdW9cIDsKK+WknOawlyA+IHlha2lcIDsKK+mfs+S+oSA+IG9ua2FcIDsKK+mfu+S6iyA+IGluamlcIDsKK+iomOe0gCA+IGtpa2lcIDsKK+aXouW+gCA+IGtpb3VcIDsKK+iqnuawlyA+IGdva2lcIDsKK+eIvuW+jCA+IGppZ29cIDsKK+WogeS7pCA+IGlyZWlcIDsKK+aZguWLmSA+IGppbXVcIDsKK+WlpeaEjyA+IG9rdWlcIDsKK+WeoumboiA+IGtvcmlcIDsKK+mbsuawlyA+IHVua2lcIDsKK+mWk+mWkyA+IG1hbWFcIDsKK+Wik+eikSA+IGJvaGlcIDsKK+mbqOawtCA+IHVzdWlcIDsKK+itsuS9jSA+IGpvdWlcIDsKK+Whqee0oCA+IGVuc29cIDsKK+aZguS+oSA+IGppa2FcIDsKK+itsOS6iyA+IGdpamlcIDsKK+eEoee4gSA+IG11ZW5cIDsKK+WknOaalyA+IHlhYW5cIDsKK+aZguS6iyA+IGppamlcIDsKK+aZguS4iyA+IGppa2FcIDsKK+Wkj+acnyA+IGtha2lcIDsKK+WnlOS7uyA+IGluaW5cIDsKK+WltOWpoiA+IG51aGlcIDsKK+e4iuatuyA+IGlzaGlcIDsKK+Wkp+aJiyA+IG9vZGVcIDsKK+acqOOAhSA+IGtpZ2lcIDsKK+mcsuW6pyA+IHJvemFcIDsKK+mbheatjCA+IGdha2FcIDsKK+ipoOatjCA+IGVpa2FcIDsKK+mZsOeUuyA+IGluZ2FcIDsKK+Wkp+aEjyA+IHRhaWlcIDsKK+WjiuatuyA+IGVzaGlcIDsKK+eEoeeijSA+IG11Z2VcIDsKK+ipkOasuiA+IHNhZ2lcIDsKK+iqoOaEjyA+IHNlaWlcIDsKK+eFmeeBqyA+IGVua2FcIDsKK+e1jOe3ryA+IGtlaWlcIDsKK+mdkuWcsCA+IGFvamlcIDsKK+mdkuWbsyA+IGFvenVcIDsKK+aVrOaEjyA+IGtlaWlcIDsKK+aRqee+hSA+IG1hcmFcIDsKK+eyl+mHjiA+IHNveWFcIDsKK+Wkp+WxiyA+IG9veWFcIDsKK+iqpOW3riA+IGdvc2FcIDsKK+Wkp+WwiSA+IHRhaWlcIDsKK+abs+OAhSA+IGVpZWlcIDsKK+e4geaVhSA+IGVua29cIDsKK+eEoeeQhiA+IG11cmlcIDsKK+WkouWvkCA+IG11YmlcIDsKK+e3r+abuCA+IGlzaG9cIDsKK+WkmuWykCA+IHRha2lcIDsKK+eFmeazoiA+IGVucGFcIDsKK+ezluihoyA+IHRvdWlcIDsKK+mcsuWcsCA+IHJvamlcIDsKK+Wls+WFkCA+IGpvamlcIDsKK+WkmuWvoSA+IHRha2FcIDsKK+aPtOittyA+IGVuZ29cIDsKK+aXp+S6iyA+IGt1amlcIDsKK+iqnuWwviA+IGdvYmlcIDsKK+iqpOWtlyA+IGdvamlcIDsKK+eIvuS9mSA+IGppeW9cIDsKK+mcsuWWtiA+IHJvZWlcIDsKK+S4luOAhSA+IHlveW9cIDsKK+WkpeWkmiA+IGthdGFcIDsKK+eEoeeFmSA+IG11ZW5cIDsKK+aVsOWvhCA+IHN1a2lcIDsKK+Wkj+WtoyA+IGtha2lcIDsKK+mYv+eJhyA+IGFoZW5cIDsKK+mZsOawlyA+IGlua2lcIDsKK+WknOWknCA+IHlveW9cIDsKK+WkmuWkmiA+IHRhdGFcIDsKK+aXl+S4iyA+IGtpa2FcIDsKK+Wcn+mWkyA+IGRvbWFcIDsKK+aOqui+niA+IHNvamlcIDsKK+e4geW6pyA+IGVuemFcIDsKK+aWueS9jSA+IGhvdWlcIDsKK+WkluWbsiA+IGdhaWlcIDsKK+iqsuWToSA+IGthaW5cIDsKK+WfuuekjiA+IGtpc29cIDsKK+eEoea0viA+IG11aGFcIDsKK+imj+efqSA+IGtpa3VcIDsKK+WknOWWtiA+IHlhZWlcIDsKK+a/vumBjiA+IHJva2FcIDsKK+mbqOWkqSA+IHV0ZW5cIDsKK+WliOS9lSA+IGlrYW5cIDsKK+mbqOWjsCA+IHVzZWlcIDsKK+eEoeavlCA+IG11aGlcIDsKK+imi+ebriA+IG1pbWVcIDsKK+mbqOWfnyA+IHVpa2lcIDsKK+e4geWutiA+IGVua2FcIDsKK+WknOWNiiA+IHlvd2FcIDsKK+mbieWtkCA+IGtpamlcIDsKK+iho+mmmSA+IGlrb3VcIDsKK+iqnuWRgiA+IGdvcm9cIDsKK+eEoeapnyA+IG11a2lcIDsKK+ijnOiqniA+IGhvZ29cIDsKK+e3j+aEjyA+IHNvdWlcIDsKK+maoOW+riA+IGluYmlcIDsKK+iqnuWPpSA+IGdva3VcIDsKK+aOqeittyA+IGVuZ29cIDsKK+ijnOiomCA+IGhva2lcIDsKK+maj+aEjyA+IHp1aWlcIDsKK+Wkt+S6uiA+IGlqaW5cIDsKK+iho+mhniA+IGlydWlcIDsKK+WknOWFtyA+IHlhZ3VcIDsKK+eEoeacnyA+IG11a2lcIDsKK+eyl+iPkyA+IHNva2FcIDsKK+WkmuS+oSA+IHRha2FcIDsKK+mciuS9jSA+IHJlaWlcIDsKK+aUu+WbsiA+IGtvdWlcIDsKK+WkmuS6iyA+IHRhamlcIDsKK+eBq+eurSA+IGhpeWFcIDsKK+e1teacrCA+IGVob25cIDsKK+Wbuui+niA+IGtvamlcIDsKK+eLkuOAhSA+IGhpaGlcIDsKK+Wcn+iqniA+IGRvZ29cIDsKK+WcsOihoyA+IGNoaWlcIDsKK+aUmOWktyA+IGpvdWlcIDsKK+mbh+WToSA+IGtvaW5cIDsKK+eEoeaPtCA+IG11ZW5cIDsKK+mbheWRsyA+IGdhbWlcIDsKK+ewv+iomCA+IGJva2lcIDsKK+eEoeaJiyA+IG11dGVcIDsKK+eEoeaIkSA+IG11Z2FcIDsKK+eBq+efoiA+IGhpeWFcIDsKK+mYv+aIvyA+IGFob3VcIDsKK+imh+awlyA+IGhha2lcIDsKK+ijnOiCpSA+IGhvaGlcIDsKK+iotOWboCA+IHNvaW5cIDsKK+imj+aooSA+IGtpYm9cIDsKK+mbhOWBiSA+IHl1dWlcIDsKK+aVheS6iyA+IGtvamlcIDsKK+iiiOijnyA+IGtlc2FcIDsKK+Whl+W4gyA+IHRvZnVcIDsKK+e1teW4qyA+IGVzaGlcIDsKK+mZpOWknCA+IGpveWFcIDsKK+eEoeWtoyA+IG11a2lcIDsKK+eBq+eElCA+IGthZW5cIDsKK+eBq+eCjiA+IGthZW5cIDsKK+eBq+eCiSA+IGthcm9cIDsKK+aKvOmfuyA+IG91aW5cIDsKK+WhqeWfuiA+IGVua2lcIDsKK+aTrOWPpCA+IGdpa29cIDsKK+eCuuaUvyA+IGlzZWlcIDsKK+eEoeWhqSA+IG11ZW5cIDsKK+aOqOenuyA+IHN1aWlcIDsKK+eEoeWeoiA+IG11a3VcIDsKK+eEoeWcsCA+IG11amlcIDsKK+mZhOWbsyA+IGZ1enVcIDsKK+e0oOaJiyA+IHN1ZGVcIDsKK+eBq+awlyA+IGtha2lcIDsKK+aTrOS8vCA+IGdpamlcIDsKK+WhqeWMliA+IGVua2FcIDsKK+iomOS6iyA+IGtpamlcIDsKK+eEoeWRsyA+IG11bWlcIDsKK+aXpeOAhSA+IGhpYmlcIDsKK+mYv+WRhiA+IGFob3VcIDsKK+WcsOeVsCA+IGNoaWlcIDsKK+mXh+aEmiA+IGFuZ3VcIDsKK+mZouS4uyA+IGluanVcIDsKK+WgguWuhyA+IGRvdXVcIDsKK+mdkuOAhSA+IGFvYW9cIDsKK+mYv+WFhCA+IGFrZWlcIDsKK+eEoeS+oSA+IG11a2FcIDsKK+WgtOWQiCA+IGJhYWlcIDsKK+e1teWDjyA+IGV6b3VcIDsKK+eEoeS6jCA+IG11bmlcIDsKK+eEoeS6iyA+IGJ1amlcIDsKK+iho+e0iyA+IGVtb25cIDsKK+e0jeWxiyA+IG5heWFcIDsKK+imi+WgtCA+IG1pYmFcIDsKK+mYv+S4liA+IGFzZWlcIDsKK+eskemhlCA+IGVnYW9cIDsKK+aPtuaPhCA+IHlheXVcIDsKK+WfuuWboCA+IGtpaW5cIDsKK+e0oOWcsCA+IHNvamlcIDsKK+e0oOWboCA+IHNvaW5cIDsKK+eyl+actiA+IHNvZGFcIDsKK+aJi+mWkyA+IHRlbWFcIDsKK+Wbs+eUuyA+IHp1Z2FcIDsKK+eroOmtmiA+IHRha29cIDsKK+WknOOAhSA+IHlveW9cIDsKK+WkmuOAhSA+IHRhdGFcIDsKK+eBq+WxiyA+IGhveWFcIDsKK+aJueitsCA+IGhpZ2lcIDsKK+eArOaIuCA+IHNldG9cIDsKK+ieu+ibhCA+IGtlcmFcIDsKK+eBq+WkqyA+IGthZnVcIDsKK+mWk+WkqyA+IG1hYnVcIDsKK+aMgeeigSA+IGppZ29cIDsKK+a8lOiIniA+IGVuYnVcIDsKK+eziuWhlyA+IGtvdG9cIDsKK+eyl+W4gyA+IHNvZnVcIDsKK+a8lOiAhSA+IGVuamFcIDsKK+eBq+WZqCA+IGtha2lcIDsKK+ibmem7vSA+IGFib3VcIDsKK+a8lOe+qSA+IGVuZ2lcIDsKK+aOj+aRuCA+IHN1cmlcIDsKK+ihjOeCuiA+IGtvdWlcIDsKK+exoOaJiyA+IGtvdGVcIDsKK+ihjOeBqyA+IGFua2FcIDsKK+euh+euhyA+IGtva29cIDsKK+ijuOWppiA+IHJhZnVcIDsKK+Wbs+ahiCA+IHp1YW5cIDsKK+Wcn+aJiyA+IGRvdGVcIDsKK+a4qembhSA+IG9uZ2FcIDsKK+aPtOWKqSA+IGVuam9cIDsKK+idpuifhyA+IGdhbWFcIDsKK+WboOaenCA+IGluZ2FcIDsKK+iho+ahgSA+IGlrb3VcIDsKK+m9n+m9rCA+IHNvZ29cIDsKK+eBq+S6iyA+IGthamlcIDsKK+WbuuaMgSA+IGtvamlcIDsKK+Wbm+aZgiA+IHlvamlcIDsKK+Wbm+aWuSA+IHlvbW9cIDsKK+idjOiaqiA+IGthdG9cIDsKK+WbveW6nCA+IGtvZnVcIDsKK+aNu+WtkCA+IG5lamlcIDsKK+WcsOWgtCA+IGppYmFcIDsKK+a3q+mdoSA+IGluYmlcIDsKK+aJi+e+vSA+IHRlYmFcIDsKK+icmuiqniA+IGhpZ29cIDsKK+a3q+mbqCA+IGluJyd1XCA7Civoo5zliqkgPiBob2pvXCA7CivmjanlrZAgPiBuZWppXCA7Civmua/okYkgPiB5dWJhXCA7CivmhbDpnIogPiBpcmVpXCA7CivlnJ/lmaggPiBkb2tpXCA7CivonJjom5sgPiBrdW1vXCA7CivmjInmkakgPiBhbm1hXCA7CivooaPluK8gPiBpdGFpXCA7Civoo5zkvZAgPiBob3NhXCA7Civmjojlj5cgPiBqdWp1XCA7CivmiZPnoLQgPiBkYWhhXCA7Civmi7/mjZUgPiBkYWhvXCA7CivpvLvpn7MgPiBiaW9uXCA7CivlnJ/ljKogPiBkb2hpXCA7CivllJbpiLQgPiBhcmVpXCA7CivmvJTmraYgPiBlbmJ1XCA7CivmvJTmrYwgPiBlbmthXCA7CivlnLDkvY0gPiBjaGlpXCA7Civnp7vpoIUgPiBpa291XCA7CivlnKjkvY0gPiB6YWlpXCA7CivooY3lrZcgPiBlbmppXCA7CivlnJLlhZAgPiBlbmppXCA7CivmhJvppqwgPiBhaWJhXCA7CivmjojkuI4gPiBqdXlvXCA7Civlm5vlm7IgPiBzaGlpXCA7Civlm7rljJYgPiBrb2thXCA7CivmjZXlkI8gPiBob3JpXCA7CivmhJvpo7IgPiBhaWluXCA7Civlk4Dpn7MgPiBhaW9uXCA7CivmtbfppqwgPiB0b2RvXCA7CivmhJvpoacgPiBhaWtvXCA7CivmtbfpnpggPiBob3lhXCA7Civlm57lkJEgPiBla291XCA7CivmuKHoi7EgPiB0b2VpXCA7CivmiK/nlLsgPiBnaWdhXCA7CivmhbDorJ0gPiBpc2hhXCA7Civpu7Tpm6ggPiBiYWl1XCA7CivmvJTmioAgPiBlbmdpXCA7CivooaPlhqAgPiBpa2FuXCA7CivmvJTmiK8gPiBlbmdpXCA7Civnp7vpgIEgPiBpc291XCA7Civlkozpn7MgPiB3YW9uXCA7Civmirzlv40gPiBvc3N1XCA7Civnp7vou6IgPiBpdGVuXCA7CivpioXpkbwgPiBkb3JhXCA7CivmhbDol4kgPiBpc2hhXCA7CivmiormjIEgPiBoYWppXCA7CivmhJvovJ0gPiBhaWtpXCA7Civmua/nha4gPiB5dW5pXCA7Civnp7vorbIgPiBpam91XCA7CivmgqrprLwgPiBha2tpXCA7CivmhI/otqMgPiBpc2h1XCA7CivmhJvorbcgPiBhaWdvXCA7Civnp7vooYwgPiBpa291XCA7Civlk4DoqbEgPiBhaXdhXCA7Civlk4DoqLQgPiBhaXNvXCA7CivlkYnpoIggPiBnb3N1XCA7CivplpPjgIUgPiBtYW1hXCA7CivlkYnpn7MgPiBnb29uXCA7Civpu4TpiZsgPiBvdWVuXCA7Civnp5joqbEgPiBoaXdhXCA7Civmua/msJcgPiB5dWdlXCA7CivonrrlrZAgPiBuZWppXCA7CivmhI/oposgPiBpa2VuXCA7Civmi4fljbAgPiBib2luXCA7Civpu4TouqsgPiBraW1pXCA7CivlkozorbAgPiB3YWdpXCA7CivmirzljbAgPiBvdWluXCA7CivlmajlhbcgPiBraWd1XCA7Civlkozoqp4gPiB3YWdvXCA7CivmgrLpgYsgPiBoaXVuXCA7CivpvJPoiJ4gPiBrb2J1XCA7CivlkJDpnLIgPiB0b3JvXCA7CivmganpoacgPiBvbmtvXCA7CivmgbXpm6ggPiBrZWl1XCA7Civmta7oj68gPiBmdWthXCA7Civmtbfoi5QgPiBub3JpXCA7CivmtbfoiosgPiBrYWl1XCA7CivnpZ7phZIgPiBtaWtpXCA7CivmtYTooaMgPiBqb3VlXCA7CivmsrPppqwgPiBrYWJhXCA7CivolY7puqYgPiBzb2JhXCA7CivmirzkuIsgPiBvdWthXCA7CivmuKHmsrMgPiB0b2thXCA7CivpuJrptaEgPiBvdW11XCA7CivlkIjplpMgPiBhaW1hXCA7Civlj7PpnaIgPiB1bWVuXCA7CivpvLvnpZYgPiBiaXNvXCA7CivmgqrosqggPiBha2thXCA7CivmuKHmrKcgPiB0b291XCA7Civnp7vnrqEgPiBpa2FuXCA7CivlkKbpgYsgPiBoaXVuXCA7Civlj6Tpn7MgPiBrb29uXCA7CivlmJTlkJAgPiBvdXRvXCA7CivmgrLoqbEgPiBoaXdhXCA7Civlkozoi7EgPiB3YWVpXCA7Civlj6Tpm4UgPiBrb2dhXCA7Civmu4vlkbMgPiBqaW1pXCA7CivmibbliqkgPiBmdWpvXCA7CivllJbnhLYgPiBhemVuXCA7CivomIfoirMgPiBzdW91XCA7CivnrYnkvY0gPiB0b3VpXCA7Civol43opLggPiBib3JvXCA7CivmgqrooaMgPiBha3VpXCA7CivnpZboqp4gPiBzb2dvXCA7CivmgKrpm6ggPiBrYWl1XCA7Civmua/lsYsgPiB5dXlhXCA7CivllL7mo4QgPiBkYWtpXCA7Civlj7PovrogPiB1aGVuXCA7CivmhYjniLYgPiBqaWZ1XCA7Civllpzlr78gPiBraWp1XCA7Civlj6Tpg70gPiBrb3RvXCA7Civmsr/ot68gPiBlbnJvXCA7Civph47phJkgPiB5YWhpXCA7Civmua/lpbMgPiB5dW5hXCA7Civljq3pm6IgPiBvbnJpXCA7CivpvLvngo4gPiBiaWVuXCA7Civph47ovrogPiBub2JlXCA7Civpu4Tnt68gPiBrb3VpXCA7Civolarovp4gPiBidWppXCA7CivmganoqrwgPiBvbmdpXCA7CivnqY7mnpwgPiBlaWthXCA7Civpi63msJcgPiBlaWtpXCA7CivllrbllrYgPiBlaWVpXCA7Civms5XooaMgPiBob3VlXCA7CivmsrPosZogPiBmdWd1XCA7Civph47ot68gPiBub2ppXCA7CivmuKnluqYgPiBvbmRvXCA7Civms5XonrogPiBob3JhXCA7Civok5bpursgPiBoaW1hXCA7CivmiYDku6UgPiB5dWVuXCA7CivlkarnrKYgPiBqdWZ1XCA7CivmhYjmr40gPiBqaWJvXCA7Civlj6Toqp4gPiBrb2dvXCA7CivllrbliKkgPiBlaXJpXCA7Civlj6ToqJggPiBrb2tpXCA7Civlv5zpnIAgPiBvdWp1XCA7CivolpTolocgPiBiYXJhXCA7CivmiJHliKkgPiBnYXJpXCA7Civnp7vmsJEgPiBpbWluXCA7CivlloflmJsgPiByYW1hXCA7Civmho7mgqogPiB6b3VvXCA7CivnqbrlsIkgPiBrdXVpXCA7CivnqY7mgp8gPiBlaWdvXCA7CivmsJfpn7sgPiBraWluXCA7Civlj7PokYkgPiB1eW91XCA7Civpurvnl7ogPiBtYWhpXCA7Civlk4DmrYwgPiBhaWthXCA7CivmsJfpmpwgPiBraXphXCA7Civlj5fomIogPiBqdXVuXCA7CivlvqHpoZQgPiBva2FvXCA7CivmhJvmqZ8gPiBhaWtpXCA7Civlj7PoiLcgPiB1Z2VuXCA7CivpubXnsL8gPiByb2JvXCA7CivmgannvqkgPiBvbmdpXCA7CivljYHpm6ggPiBqdXV1XCA7Civlj7PohLMgPiB1bm91XCA7CivmuKnlkowgPiBvbndhXCA7CivmsLjpgaAgPiBlaWVuXCA7CivmhJrmoYggPiBndWFuXCA7Civph47oia8gPiBub3JhXCA7Civlv4zpgb8gPiBraWhpXCA7Civokr/pm4AgPiBhb2ppXCA7Civmt6vlqaYgPiBpbnB1XCA7CivmsJfpi60gPiBraWVpXCA7Civmg7DmsJcgPiBkYWtpXCA7CivlkozmsJcgPiB3YWtpXCA7CivomorluLMgPiBrYXlhXCA7Civmtbfmnb4gPiBtaXJ1XCA7CivmhYjmhJsgPiBqaWFpXCA7CivmhYjmgrIgPiBqaWhpXCA7Civlj6XnvqkgPiBrdWdpXCA7Civlj6TnvqkgPiBrb2dpXCA7CivlkozmrYwgPiB3YWthXCA7CivmsZrooYwgPiBva291XCA7CivlkbzmsJcgPiBrb2tpXCA7CivmsJfpgYsgPiBraXVuXCA7CivomorlsYsgPiBrYXlhXCA7CivnoLTpoqggPiBoYWZ1XCA7CivmhJvmkqsgPiBhaWJ1XCA7Civpu4Tms4kgPiB5b21pXCA7CivljbDorZwgPiBpbnB1XCA7Civlv5zoqLQgPiBvdXNvXCA7CivlvqHphZIgPiBtaWtpXCA7Civmr43pn7MgPiBib2luXCA7Civpg73pm4UgPiB0b2dhXCA7Civpu4Tmq6ggPiBoYXplXCA7Civlv4zoq7EgPiBraWtpXCA7Civlk4DmhZUgPiBhaWJvXCA7CivljLvpgZMgPiBpZG91XCA7CivlkIjnnYAgPiBhaWdpXCA7CivnqY/lkowgPiBvbndhXCA7CivnqbrkvY0gPiBrdXVpXCA7Civnp5jmioAgPiBoaWdpXCA7CivnpZbniLYgPiBzb2Z1XCA7CivmhJvmhZUgPiBhaWJvXCA7CivlvqHouqsgPiBvbm1pXCA7CivlkIznlbAgPiBkb3VpXCA7Civlj6TnqIAgPiBrb2tpXCA7CivmrrrpmaMgPiB0YXRlXCA7CivmhbDllY8gPiBpbW9uXCA7CivljZHoqp4gPiBoaWdvXCA7CivljbHomZ4gPiBraWd1XCA7CivmhI/mgJ0gPiBpc2hpXCA7CivmgrLmrYwgPiBoaWthXCA7CivljLrosrsgPiBrdWhpXCA7CivmhI/lv5cgPiBpc2hpXCA7CivlkYbmsJcgPiBha2tlXCA7CivpgqrprZQgPiBqYW1hXCA7CivpgqrprLwgPiBqYWtpXCA7Civpg73phJkgPiB0b2hpXCA7CivljLrorbAgPiBrdWdpXCA7Civnp4HmhI8gPiBzaGlpXCA7CivlvpLosrsgPiB0b2hpXCA7CivmhbDlirQgPiBpcm91XCA7CivnoLTpgqogPiBoYWphXCA7CivlvoDot68gPiBvdXJvXCA7Civmt6vkuosgPiBpbmppXCA7Civlj6TnlLsgPiBrb2dhXCA7Civpgqrpo5sgPiBqYWhpXCA7CivnpZbmr40gPiBzb2JvXCA7CivlvqHooaMgPiBneW9pXCA7Civpi63liKkgPiBlaXJpXCA7CivmtL7miYsgPiBoYWRlXCA7CivmgqrmnpwgPiBha2thXCA7CivmsrnnhZkgPiB5dWVuXCA7CivlvKXpmYAgPiBtaWRhXCA7Civph47njL8gPiB5YWVuXCA7Civlj5fnkIYgPiBqdXJpXCA7Civlkbzlv5wgPiBrb291XCA7Civnp5jlpaUgPiBoaW91XCA7CivmgKrnlbAgPiBrYWlpXCA7Civpg73orbAgPiB0b2dpXCA7CivmhI/lpJYgPiBpZ2FpXCA7Civmr5Toq60gPiBoaXl1XCA7CivpgbrpqrggPiBpZ2FpXCA7CivmsZrnqaIgPiBvd2FpXCA7CivmhJrlm7MgPiBndXp1XCA7CivlvoHooaMgPiBzZWlpXCA7Civmg4XmhI8gPiBqb3VpXCA7CivmtYHluIMgPiBydWZ1XCA7Civmr43oqp4gPiBib2dvXCA7CivpgbrpppkgPiBpa291XCA7Civph47ngasgPiBub2JpXCA7CivlkozlrZcgPiB3YWppXCA7CivlkIjmrZMgPiBuZW11XCA7Civnp7vli5UgPiBpZG91XCA7CivljbDntqwgPiBpbmp1XCA7CivliqDpmaQgPiBrYWpvXCA7CivlvqHojLYgPiBvY2hhXCA7CivmhI/lmq4gPiBpa291XCA7CivpgbrpoqggPiBpZnV1XCA7Civmr4DoqokgPiBraXlvXCA7CivpurvluIMgPiBtYWZ1XCA7CivpvLvkuIsgPiBiaWthXCA7CivmgqrmhJ8gPiBva2FuXCA7CivmgqrmhI8gPiBha3VpXCA7CivmhI/lkJEgPiBpa291XCA7Civnp7vkvY8gPiBpanV1XCA7CivomZrkvY0gPiBreW9pXCA7CivljLvogIUgPiBpc2hhXCA7CivmgbXmlrkgPiBlaG91XCA7CivomZrku64gPiBrb2tlXCA7Civnp7vkuZcgPiBpam91XCA7CivmhJvlhZAgPiBhaWppXCA7CivliqDph4wgPiBrYXJpXCA7Civph47mrKEgPiB5YWppXCA7CivmspnmsbAgPiBzYXRhXCA7Civnp5jlhIAgPiBoaWdpXCA7Civliqnovp4gPiBqb2ppXCA7CivmrabpgYsgPiBidXVuXCA7CivmrKfpnLIgPiBvdXJvXCA7CivlvqHnsL4gPiBtaXN1XCA7Civmgqrlr5IgPiBva2FuXCA7CivljbHnlpEgPiBraWdpXCA7CivlkbPlmYwgPiBtaXNvXCA7Civlj7PmlrkgPiB1aG91XCA7CivljbDnlLsgPiBpbmdhXCA7Civlu4jploAgPiBhbW9pXCA7Civnp5jkuosgPiBoaWppXCA7CivmsZrngrkgPiBvdGVuXCA7CivljbDnkr0gPiBpbmppXCA7Civmr5vnvr0gPiBrZWJhXCA7Civnpo3lm6AgPiBrYWluXCA7Civph47mmq4gPiB5YWJvXCA7CivlkbXlkbUgPiBrYWthXCA7CivlkIzmhI8gPiBkb3VpXCA7CivmgJLmsJcgPiBkb2tpXCA7CivlkIjmhI8gPiBnb3VpXCA7CivlvqHnpLwgPiBvcmVpXCA7Civms6LluIMgPiBoYWJ1XCA7CivlvqHnopcgPiBvd2FuXCA7CivmgaPmhI8gPiBzaGlpXCA7CivokbXoirEgPiBraWthXCA7CivliqDorbcgPiBrYWdvXCA7CivpgbrotIggPiBpem91XCA7CivmsZrms6UgPiBvZGVpXCA7Civpgbros6IgPiBpa2VuXCA7Civno4HmsJcgPiBqaWtpXCA7CivpgbrosqEgPiBpemFpXCA7Civnn7Pok7QgPiBhb3NhXCA7CivlvqHnm4YgPiBvYm9uXCA7CivmgrLllpwgPiBoaWtpXCA7CivmsZrmsLQgPiBvc3VpXCA7Civlj43mlYUgPiBob2dvXCA7CivlvIrooaMgPiBoZWlpXCA7CivmgrLlk4AgPiBoaWFpXCA7CivpgaDot68gPiBlbnJvXCA7CivljLvnlYwgPiBpa2FpXCA7CivpgbroqqEgPiBpa2FpXCA7CivljLvnlKggPiBpeW91XCA7CivpgbroqJMgPiBpa3VuXCA7CivljZfnhKEgPiBuYW11XCA7CivlvoHnn6IgPiBzb3lhXCA7Civov73poqggPiBvaXRlXCA7CivmgqrljJYgPiBha2thXCA7CivmsJfngo4gPiBraWVuXCA7CivnoJLntKAgPiBoaXNvXCA7CivmgKrmiJEgPiBrZWdhXCA7Civlj7PlsrggPiB1Z2FuXCA7Civpur7kuIsgPiBraWthXCA7CivmsLjmsLggPiBlaWVpXCA7CivmsZrmn5MgPiBvc2VuXCA7CivmganlqIEgPiBvbicnaVwgOwor56WH5ZySID4gZ2lvblwgOwor5Y+k5biMID4ga29raVwgOwor6I236aeEID4gbmlkYVwgOwor5Y2x5qmfID4ga2lraVwgOwor5rCX5ripID4ga2lvblwgOwor5b6S54i+ID4gdG9qaVwgOwor5oCd5oOfID4gc2hpaVwgOwor5b6u5ripID4gYmlvblwgOwor6YGO6KqkID4ga2Fnb1wgOwor5Y+k5a2XID4ga29qaVwgOwor5ZCI5ZuzID4gYWl6dVwgOwor56C055OcID4gaGFrYVwgOwor6YG66JGXID4gaWNob1wgOwor5bm+6YeNID4gaWt1ZVwgOwor5rGa5pCNID4gb3NvblwgOwor5ZCP5ZOhID4gcmlpblwgOwor5Y6t5oKqID4gZW4nJ29cIDsKK+WPr+WhkSA+IGthc29cIDsKK+WOu+W5tCA+IGtvem9cIDsKK+mBuuiNiSA+IGlzb3VcIDsKK+iOq+i/piA+IGJha2FcIDsKK+mBuuiKsyA+IGlob3VcIDsKK+WQjeWMuyA+IG1laWlcIDsKK+WOmuaEjyA+IGtvdWlcIDsKK+WQj+WLmSA+IHJpbXVcIDsKK+atjOiIniA+IGthYnVcIDsKK+i/gumBoCA+IHVlblwgOwor5b6u5oSPID4gYmlpXCA7Civlj5nkvY0gPiBqb2lcIDsKK+i/gui3ryA+IHVyb1wgOwor5b6X5omLID4gZXRlXCA7CivmsJflrocgPiBraXVcIDsKK+W3rumBlSA+IHNhaVwgOwor5Yy75a62ID4gaWthXCA7Civlhavph40gPiB5YWVcIDsKK+WMu+WToSA+IGlpblwgOwor6YG65qOEID4gaWtpXCA7CivljLvli5kgPiBpbXVcIDsKK+WMu+S6iyA+IGlqaVwgOwor6YG65oSbID4gaWFpXCA7CivpgbrlvbEgPiBpZWlcIDsKK+mDqOS9jSA+IGJ1aVwgOwor5q2m5aiBID4gYnVpXCA7CivpgbrlraQgPiBpa29cIDsKK+W3rueVsCA+IHNhaVwgOwor55Ww6Z+zID4gaW9uXCA7CivpgbrlhZAgPiBpamlcIDsKK+mBleWSjCA+IGl3YVwgOwor6YG65LqLID4gaWppXCA7CivluIzmnIkgPiBrZXVcIDsKK+i/guaEmiA+IHVndVwgOwor5qyn5LqcID4gb3VhXCA7CivmrKHkvY0gPiBqaWlcIDsKK+asoeS6nCA+IGppYVwgOwor55yJ5a6HID4gYml1XCA7Civovp7mhI8gPiBqaWlcIDsKK+eVsOitsCA+IGlnaVwgOwor6L6e5b2ZID4gamlpXCA7CivlsYXplpMgPiBpbWFcIDsKK+eVsOe+qSA+IGlnaVwgOwor5biw5L6dID4ga2llXCA7CivpppnprZogPiBheXVcIDsKK+apn+S9jSA+IGtpaVwgOwor5Ly86Z2eID4gZXNlXCA7CivlsL7nvr0gPiBvaGFcIDsKK+eVsOeItiA+IGlmdVwgOwor5Lya6ZmwID4gZWluXCA7CivkvY3oqJggPiBpa2lcIDsKK+eVsOavjSA+IGlib1wgOwor5Lqc6bq7ID4gYW1hXCA7Civku6XpgaAgPiBpZW5cIDsKK+S8iuiqniA+IGlnb1wgOwor6Ieq5oWwID4gamlpXCA7CivlronoirggPiBha2lcIDsKK+S6nOmJmyA+IGFlblwgOwor55Sy5paQID4ga2FpXCA7CivnlY/mh7wgPiBpa3VcIDsKK+eVj+aAliA+IGlmdVwgOwor5bC+5qC5ID4gb25lXCA7CivnlLvmhI8gPiBnYWlcIDsKK+akheWtkCA+IGlzdVwgOwor55Ww5ZuzID4gaXRvXCA7CivnlbDljJYgPiBpa2FcIDsKK+iDg+eCjiA+IGllblwgOwor5L2N5qyhID4gaWppXCA7Civkvp3mgJkgPiBla29cIDsKK+S6nOenkSA+IGFrYVwgOwor5L2Z5oSPID4geW9pXCA7Civku67mnIkgPiBrZXVcIDsKK+S+jeWMuyA+IGppaVwgOwor5LqR54K6ID4gdW5pXCA7Civkvp3kvLAgPiBla29cIDsKK+S6nOaspyA+IGFvdVwgOwor5Lul5b6MID4gaWdvXCA7Civku6XlvoAgPiBpb3VcIDsKK+S7luaEjyA+IHRhaVwgOwor6LOA5oSPID4gZ2FpXCA7CivmnInnhKEgPiB1bXVcIDsKK+iytOaEjyA+IGtpaVwgOwor5Lya5Y6tID4gZWVuXCA7CivmoITkvY0gPiBlaWlcIDsKK+S6leaIuCA+IGlkb1wgOwor6Z2e6YGVID4gaGlpXCA7CivlpJzpm6ggPiB5YXVcIDsKK+WkmumbqCA+IHRhdVwgOwor5LqM5bCJID4gbmlpXCA7Civpm6jpnLIgPiB1cm9cIDsKK+S7peS4iyA+IGlrYVwgOwor5aKo6a2aID4gaWthXCA7CivkuI3mhI8gPiBmdWlcIDsKK+S4i+aEjyA+IGthaVwgOwor5LqM5L2NID4gbmlpXCA7CivlqIHmraYgPiBpYnVcIDsKK+acieWNpiA+IHVrZVwgOwor546L5L2NID4gb3VpXCA7CivnvoXlrocgPiByYW9cIDsKK+e+veWMliA+IHVrYVwgOwor57W16aasID4gZW1hXCA7Civlp5Tmo4QgPiBpa2lcIDsKK+Wlh+eVsCA+IGtpaVwgOwor5LiL5L2NID4ga2FpXCA7CivpmL/oq5sgPiBheXVcIDsKK+WogeWEgCA+IGlnaVwgOwor5aOK55a9ID4gZXNvXCA7Civng4/os4ogPiBpa2FcIDsKK+WnlOWToSA+IGlpblwgOwor6Zuo5rCXID4gdWtpXCA7Civlp5Tku5ggPiBpZnVcIDsKK+mbqOacnyA+IHVraVwgOwor6Kqe5oSPID4gZ29pXCA7Civoqp7lvZkgPiBnb2lcIDsKK+Wls+WMuyA+IGpvaVwgOwor5aaC5L2VID4gZG91XCA7Civpm6jlvowgPiB1Z29cIDsKK+aVheaEjyA+IGtvaVwgOwor54Sh54K6ID4gbXVpXCA7Civoo5zpgbogPiBob2lcIDsKK+mbqOWtoyA+IHVraVwgOwor57ev5bqmID4gaWRvXCA7CivpmL/mr5QgPiBhYmlcIDsKK+e2reaMgSA+IGlqaVwgOwor6Zuy5Li5ID4gdW5pXCA7CivnhKHmhI8gPiBtdWlcIDsKK+mYv+WtlyA+IGFqaVwgOwor6Zi/5aq9ID4gYW1hXCA7CivngbDmsYEgPiBha3VcIDsKK+e1teWbsyA+IGV6dVwgOwor6KaL5b6XID4gbWllXCA7CivpmL/lkL0gPiBhdW5cIDsKK+eEoeS9jSA+IG11aVwgOwor5ruL6ZuoID4gaml1XCA7Civlm7LnooEgPiBpZ29cIDsKK+e0huS9mSA+IHV5b1wgOwor6KGj5p62ID4gaWthXCA7CivmhYjpm6ggPiBqaXVcIDsKK+a1t+mrqiA+IG9nb1wgOwor5oSP6aasID4gaWJhXCA7Civlm7PkvJogPiB6dWVcIDsKK+aJgOeCuiA+IHNlaVwgOwor5oKq6ZyyID4gb3JvXCA7Civmtbfog4YgPiB1bmlcIDsKK+a1t+iAgSA+IGViaVwgOwor5oiR5oSPID4gZ2FpXCA7CivpurvooaMgPiBtYWlcIDsKK+aEj+e+qSA+IGlnaVwgOwor6J2m5aS3ID4gZXpvXCA7Civnoavpu4QgPiBpb3VcIDsKK+aFsOaSqyA+IGlidVwgOwor5b6u6ZuoID4gYml1XCA7CivmhI/msJcgPiBpa2lcIDsKK+mLreaEjyA+IGVpaVwgOwor56mi5aSaID4gZXRhXCA7CivljLvpmaIgPiBpaW5cIDsKK+epouWcnyA+IGVkb1wgOwor5Y+z57iBID4gdWVuXCA7CivmhbDlrokgPiBpYW5cIDsKK+WNgemHjSA+IHRvZVwgOwor5oSa5oSPID4gZ3VpXCA7CivmtbflpbMgPiBhbWFcIDsKK+aEj+WcsCA+IGlqaVwgOwor5oSP5ZuzID4gaXRvXCA7Civlj7PmtL4gPiB1aGFcIDsKK+aEj+WRsyA+IGltaVwgOwor6JCO6Z2hID4gaWJpXCA7CivmtbfkurogPiBhbWFcIDsKK+WMu+enkSA+IGlrYVwgOwor5bm06a2aID4gYXl1XCA7Civlj6XmhI8gPiBrdWlcIDsKK+WPpOaEjyA+IGtvaVwgOwor6YG66KmgID4gaWVpXCA7CivnpLrlqIEgPiBqaWlcIDsKK+axn+aIuCA+IGVkb1wgOwor5LyK5LqVID4gaWlcIDsKK+WXmuWRvCA+IGFhXCA7Civou5YgPiB0c3VtdWdpa3VydW1hXCA7Civns44gPiBzZW5jaGltZWl0b3J1XCA7CivnsqggPiBoZWt1dG9tZWV0b3J1XCA7CivniKsgPiB0c3VtZWthbm11cmlcIDsKK+W/hCA+IHJpdHN1c2hpbmJlblwgOwor5b+XID4ga29rb3JvemFzaGlcIDsKK+aUvyA+IG1hdHN1cmlnb3RvXCA7Civpto4gPiBraWt1aXRhZGFraVwgOwor57KNID4gbWlyaW1laXRvcnVcIDsKK+eygSA+IGtpcm9tZWl0b3J1XCA7CivnsbUgPiBkZWthbWVldG9ydVwgOwor56uwID4gc2VuY2hpcml0dG9cIDsKK+eroSA+IGhla3V0b3JpdHRvXCA7Civnq5MgPiBtaXJpcml0dG9ydVwgOwor56uPID4ga2lyb3JpdHRvcnVcIDsKK+eTsCA+IGRlc2hpZ3VyYW11XCA7Civlt7EgPiB0c3VjaGlub3RvXCA7CivlsaEgPiBzaGliYXNoaWJhXCA7CivorIAgPiBoYWthcmlnb3RvXCA7Civnhp8gPiB0c3VrdWR6dWt1XCA7CivlmLQgPiBrdWNoaWJhc2hpXCA7CivjgIUgPiBrdXJpa2Flc2hpXCA7CivphZsgPiBzYWtlbm9tb3RvXCA7CivoqZQgPiBtaWtvdG9ub3JpXCA7CivonZ8gPiBoYXJpbmV6dW1pXCA7CivokJkgPiBrdXRhYmlyZXJ1XCA7Civnq5UgPiBkZXNoaXJpdHRvXCA7CivnlIUgPiBzZW5jaGlndXJhXCA7Civnk7ggPiBoZWt1dG9ndXJhXCA7Civnk7EgPiBtaXJpZ3VyYW11XCA7Civnk6kgPiBraXJvZ3VyYW11XCA7Civnk6cgPiBkZWthZ3VyYW11XCA7Civmk4UgPiBob3NoaWltYW1hXCA7Civli4UgPiBtaWtvdG9ub3JpXCA7CivlgKkgPiB0c3VyYXRzdXJhXCA7CivlubsgPiBtYWJvcm9zaGlcIDsKK+WxjSA+IHNoaWthYmFuZVwgOwor5a2kID4gbWluYXNoaWdvXCA7CivnjKogPiBpbm9zaGlzaGlcIDsKK+WUhyA+IGt1Y2hpYmlydVwgOwor5qqjID4gaG9iYXNoaXJhXCA7CivmqZggPiB0YWNoaWJhbmFcIDsKK+WFtSA+IHRzdXdhbW9ub1wgOwor6YqAID4gc2hpcm9nYW5lXCA7CivpgqogPiB5b2tvc2hpbWFcIDsKK+mvkCA+IHN1YmFzaGlyaVwgOwor6a6XID4ga29ub3NoaXJvXCA7CivpmJ0gPiBrb3phdG9oZW5cIDsKK+i4nSA+IGt1cnVidXNoaVwgOwor6KODID4ga2FtaXNoaW1vXCA7CivooaQgPiBrb3JvbW9oZW5cIDsKK+erjSA+IGRla2FyaXR0b1wgOwor54qtID4ga2Vtb25vaGVuXCA7CivmpLQgPiB0b2RvbWF0c3VcIDsKK+W1mSA+IHlhbWFzaGluYVwgOwor5bC4ID4gc2hpa2FiYW5lXCA7Civlh6kgPiBrb2dhcmFzaGlcIDsKK+S6pSA+IGlub3NoaXNoaVwgOwor5byxID4gbmF5b25heW9cIDsKK+i5siA+IHRzdWt1YmFpXCA7Civlp5EgPiBzaHV1dG9tZVwgOwor5aGKID4ga2F0YW1hcmlcIDsKK+WgpCA+IHRzdXRzdW1pXCA7CivpvJMgPiB0c3VkenVtaVwgOwor5rqQID4gbWluYW1vdG9cIDsKK+m2jyA+IG5pd2F0b3JpXCA7Civlj6IgPiBrdXNhbXVyYVwgOwor5Y2wID4gc2hpcnVzaGlcIDsKK+mtgiA+IHRhbWFzaGlpXCA7CivohbggPiBoYXJhd2F0YVwgOwor5p2vID4gc2FrYXp1a2lcIDsKK+mbtyA+IGthbWluYXJpXCA7Civpm4EgPiBrYXJpZ2FuZVwgOwor5pqBID4gYWthdHN1a2lcIDsKK+e0qyA+IG11cmFzYWtpXCA7CivmjowgPiB0ZW5vaGlyYVwgOwor5oqRID4gc29tb3NvbW9cIDsKK+aHkCA+IGZ1dG9rb3JvXCA7Civpu5sgPiBtYXl1enVtaVwgOwor6bGpID4gaGF0YWhhdGFcIDsKK+mwsCA+IGhhdGFoYXRhXCA7Civpr5EgPiBrYXp1bm9rb1wgOwor6a2BID4gc2FraWdha2VcIDsKK+msoyA+IHRhdGVnYW1pXCA7CivppJ4gPiBoYW5hbXVrZVwgOwor6aCRID4ga2F0YWt1bmFcIDsKK+mavCA+IGhheWFidXNhXCA7CivpmbUgPiBtaXNhc2FnaVwgOwor6ZaKID4gdHN1a2FlcnVcIDsKK+mLuCA+IG5va29naXJpXCA7Civour4gPiBzaGl0c3VrZVwgOwor6Ku6ID4ga290b3dhemFcIDsKK+ikjCA+IGZ1bmRvc2hpXCA7Civom6QgPiBoYW1hZ3VyaVwgOwor6JKcID4gbmluJyduaWt1XCA7Civogb4gPiBtaW1pc2hpaVwgOwor57a0ID4gdHN1ZHp1cmlcIDsKK+evgSA+IHRha2FtdXJhXCA7CivnrY0gPiB0YWtlbm9rb1wgOwor56KRID4gaXNoaWJ1bWlcIDsKK+eZuCA+IG1penVub3RvXCA7CivmvKMgPiBzYXphbmFtaVwgOwor5qWgID4ga3VzdW5va2lcIDsKK+W3qyA+IGthbicnbmFnaVwgOwor5a+/ID4ga290b2J1a2lcIDsKK+WclSA+IHRvc2hva2FuXCA7CivlvaIgPiBrYXRhY2hpXCA7CivovY0gPiB3YWRhY2hpXCA7Civlt7cgPiBjaGltYXRhXCA7Civot6MgPiBoYWRhc2hpXCA7CivotqMgPiBvbW9tdWtpXCA7CivlsYAgPiB0c3Vib25lXCA7Civlr6cgPiBtdXNoaXJvXCA7CivnjbogPiBrYXdhdXNvXCA7Civni5AgPiBraXRzdW5lXCA7Civlq4IgPiBhbml5b21lXCA7CivoqbEgPiBoYW5hc2hpXCA7Civnh5UgPiB0c3ViYW1lXCA7Civmu7QgPiBzaGl6dWt1XCA7CivmuZYgPiBtaXp1dW1pXCA7CivliaMgPiB0c3VydWdpXCA7Civlh50gPiBzaGlrb3JpXCA7CivlhqAgPiBrYW5tdXJpXCA7CivmpL8gPiB0c3ViYWtpXCA7Civmop8gPiBmdWt1cm91XCA7CivpoIIgPiBpdGFkYWtpXCA7Civmn7EgPiBoYXNoaXJhXCA7Civkv44gPiBtYW5haXRhXCA7CivmnpcgPiBoYXlhc2hpXCA7Civkvo0gPiBzYW11cmFpXCA7CivnvoogPiBoaXRzdWppXCA7CivmnbEgPiBoaWdhc2hpXCA7CivmmJQgPiBtdWthc2hpXCA7CivntYwgPiB0YXRlaXRvXCA7CivnrbUgPiBtdXNoaXJvXCA7CivpjKYgPiBuaXNoaWtpXCA7Civnp4EgPiB3YXRhc2hpXCA7Civnpa0gPiBtYXRzdXJpXCA7CivnpL4gPiB5YXNoaXJvXCA7CivnorogPiB0YXNoaWthXCA7CivpgrggPiB5YXNoaWtpXCA7CivpvbIgPiBtdXNoaWJhXCA7Civpu6UgPiBpcmV6dW1pXCA7CivptqsgPiB0c3VndW1pXCA7CivptaQgPiBpa2FydWdhXCA7CivptYYgPiBjaGlkb3JpXCA7CivpsJggPiBtdXJvYWppXCA7Civpr7MgPiBzdWtlc291XCA7CivprJggPiBrYXRzdXJhXCA7Civpm6sgPiBzaGl6dWt1XCA7CivpjrkgPiBrYXN1Z2FpXCA7Civpi6kgPiBraXNzYWtpXCA7Civpi5IgPiBraXNzYWtpXCA7Civpiq8gPiBrYXN1Z2FpXCA7CivouYQgPiBoaWR6dW1lXCA7CivorKwgPiBheWFtYXJpXCA7CivoqrwgPiB5b3NoaW1pXCA7Civoqq4gPiB5YXNhc2hpXCA7CivopYUgPiBjaGloYXlhXCA7CivooI4gPiB1d2FiYW1pXCA7Civona4gPiBtYW11c2hpXCA7CivonIYgPiBzaGlqaW1pXCA7CivombEgPiBzaGlyYW1pXCA7CivomLAgPiBrYXRzdXJhXCA7Civolb4gPiB0c3Vib21pXCA7Civok4YgPiBtdXNoaXJvXCA7CivoiYAgPiBoYXNoaWtlXCA7CivogaIgPiBzaGlrYXRvXCA7Civnv7wgPiB0c3ViYXNhXCA7CivnsaEgPiBzaGluc2hpXCA7CivnpKsgPiB0c3VidXRlXCA7CivnpI4gPiBpc2hpenVlXCA7CivnnasgPiBtYXRzdWdlXCA7CivnlKYgPiB5b21pZ2FlXCA7CivniZwgPiB1c2hpaGVuXCA7Civmr64gPiBtdXNoaXJ1XCA7Civmr58gPiBtdXNoaXJ1XCA7Civmpb8gPiBrYXRzdXJhXCA7Civmo5cgPiBuYXRzdW1lXCA7CivmorsgPiBzaGlraW1pXCA7Civmn4ogPiBoaWlyYWdpXCA7Civmm5kgPiBha2Vib25vXCA7CivmmZIgPiBzYXJhc2hpXCA7Civml4EgPiB0c3VrdXJpXCA7CivmjJggPiBtdXNoaXJ1XCA7Civmi7MgPiBrb2J1c2hpXCA7CivmgLogPiBrb3JhZXJ1XCA7CivlvqQgPiB0YWtlc2hpXCA7Civlt70gPiB0YXRzdW1pXCA7Civlo6wgPiBtaXp1bm9lXCA7Civlmo8gPiBrdXNoYW1pXCA7CivlmbogPiBoYW5hc2hpXCA7Civkv6QgPiBvbW9rYWdlXCA7CivkuLwgPiBkb25idXJpXCA7CivjgIMgPiBvbmFqaWt1XCA7CivnnrwgPiBtYWJ1dGFcIDsKK+i+tyA+IHN1YmVydVwgOwor556zID4gaGl0b21pXCA7CivovKkgPiB5YWthcmFcIDsKK+ebsiA+IG1lc2hpaVwgOwor6LuKID4ga3VydW1hXCA7Civluo8gPiB0c3VpZGVcIDsKK+eahiA+IG1pbicnbmFcIDsKK+W5lSA+IHRvYmFyaVwgOwor5bizID4gdG9iYXJpXCA7CivluJ0gPiBtaWthZG9cIDsKK+W3piA+IGhpZGFyaVwgOwor55a+ID4gc2hpdHN1XCA7CivnlbMgPiB0YXRhbWlcIDsKK+eVoCA+IGhhdGFrZVwgOwor55WRID4gaGF0YWtlXCA7Civnk6YgPiBrYXdhcmFcIDsKK+WyrCA+IG1pc2FraVwgOwor5bGKID4gdG9kb2tlXCA7CivlsIogPiBtaWtvdG9cIDsKK+WunSA+IHRha2FyYVwgOwor542jID4ga2Vtb25vXCA7Civni7wgPiBvb2thbWlcIDsKK+eLrCA+IGRvaXRzdVwgOwor5auJID4gc2hpdHN1XCA7CivoqqAgPiBtYWtvdG9cIDsKK+iovCA+IGFrYXNoaVwgOwor54i2ID4gY2hpY2hpXCA7CivoqJsgPiBuYW1hcmlcIDsKK+WomCA+IG11c3VtZVwgOwor5ae/ID4gc3VnYXRhXCA7Civlpr4gPiB3YXJhd2FcIDsKK+WmuSA+IGltb3V0b1wgOwor6KaBID4ga2FuYW1lXCA7CivopbcgPiB0YXN1a2lcIDsKK+eFmSA+IGtlbXVyaVwgOwor6KWWID4gZnVzdW1hXCA7CivlpLEgPiBzaGl0c3VcIDsKK+ijuCA+IGhhZGFrYVwgOwor6KK0ID4gaGFrYW1hXCA7CivooosgPiBmdWt1cm9cIDsKK+ihoyA+IGtvcm9tb1wgOwor5Z+3ID4gc2hpdHN1XCA7Civmv5UgPiBzaGl0c3VcIDsKK+ifiyA+IHNoaXRzdVwgOwor5Z+DID4gaG9rb3JpXCA7Civon4AgPiBzaHV0c3VcIDsKK+m8rCA+IGl0YWNoaVwgOwor6bygID4gbmV6dW1pXCA7CivlnJ8gPiB0c3VjaGlcIDsKK+a8hiA+IHVydXNoaVwgOwor6Ju5ID4gc2FuYWdpXCA7Civom5kgPiBrYXdhenVcIDsKK+a5vyA+IHNoaXRzdVwgOwor5ZmoID4gdXRzdXdhXCA7CivmuK8gPiBtaW5hdG9cIDsKK+iWrCA+IGt1c3VyaVwgOwor6JaqID4gdGFraWdpXCA7CivmtpkgPiBuYW1pZGFcIDsKK+iWhyA+IHplbm1haVwgOwor6JaEID4gc3VzdWtpXCA7CivptIkgPiBrYXJhc3VcIDsKK+WPsSA+IHNoaXRzdVwgOwor5Y6oID4ga3VyaXlhXCA7CivljbggPiBvcm9zaGlcIDsKK+WNtSA+IHRhbWFnb1wgOwor5q2qID4gaWJpdHN1XCA7CivprZogPiBzYWthbmFcIDsKK+WNlyA+IG1pbmFtaVwgOwor5YygID4gdGFrdW1pXCA7Civmq7sgPiBzYWt1cmFcIDsKK+iLuiA+IGljaGlnb1wgOwor5YuiID4gaGF6dW1pXCA7CivmqpwgPiBoaW5va2lcIDsKK+iIhSA+IHNodXV0b1wgOwor5qaKID4gc2FrYWtpXCA7CivlhYkgPiBoaWthcmlcIDsKK+mkqCA+IHlha2F0YVwgOwor6IK0ID4gc2FrYW5hXCA7CivmoZwgPiBzYWt1cmFcIDsKK+WAmSA+IHNvdXJvdVwgOwor6Z+/ID4gaGliaWtpXCA7Civmn7MgPiB5YW5hZ2lcIDsKK+S/pSA+IGt1cnVtYVwgOwor5L+hID4gbWFrb3RvXCA7Civkv4QgPiBuaXdha2FcIDsKK+S/giA+IGtha2FyaVwgOwor5L6/ID4geW9zdWdhXCA7CivmnpUgPiBtYWt1cmFcIDsKK+acuiA+IHRzdWt1ZVwgOwor5LuPID4gaG90b2tlXCA7Civmm4cgPiBrdW1vcmlcIDsKK+mbgCA+IHN1enVtZVwgOwor5LqsID4gbWl5YWtvXCA7CivpmqMgPiB0b25hcmlcIDsKK+S5syA+IGNoaWNoaVwgOwor5LmZID4ga2lub3RvXCA7CivkuY0gPiBuYWdhcmFcIDsKK+S4hyA+IHlvcm96dVwgOwor5LiDID4gc2hpY2hpXCA7CivnuIEgPiB5b3N1Z2FcIDsKK+S4gSA+IGhpbm90b1wgOwor57eRID4gbWlkb3JpXCA7CivntaMgPiBrYXN1cmlcIDsKK+e1hiA+IGtpenVuYVwgOwor57C+ID4gc3VkYXJlXCA7Civpj6EgPiBrYWdhbWlcIDsKK+mOliA+IGt1c2FyaVwgOwor562SID4gdHN1dHN1XCA7CivmjYwgPiBzYWJha2lcIDsKK+mLvCA+IGhhZ2FuZVwgOwor56ulID4gd2FyYWJlXCA7Civpi48gPiBoYXNhbWlcIDsKK+mKgyA+IHRzdXRzdVwgOwor6YmbID4gbmFtYXJpXCA7CivmiYkgPiB0b2JpcmFcIDsKK+aJgCA+IHRva29yb1wgOwor6YO9ID4gbWl5YWtvXCA7CivmgokgPiBzaGl0c3VcIDsKK+m9piA+IGhhZ3VraVwgOwor6byIID4gc3VwcG9uXCA7Civpu5wgPiBjaHV0c3VcIDsKK+m6qSA+IGZ1c3VtYVwgOwor6bqTID4gZnVtb3RvXCA7CivptaUgPiBrYWtlc3VcIDsKK+m0rCA+IHVndWlzdVwgOwor6bSOID4ga2Ftb21lXCA7CivpsbggPiBzdXp1a2lcIDsKK+mxsCA+IHNoaWlyYVwgOwor6bGqID4gc2hpaXJhXCA7CivpsLkgPiBrYXRzdW9cIDsKK+mwryA+IGl3YXNoaVwgOwor6bCuID4gaXdhc2hpXCA7CivpsJogPiBoYXJha2FcIDsKK+mwiiA+IG5pc2hpblwgOwor6bCGID4gc2F3YXJhXCA7Civpr7EgPiBzaGFjaGlcIDsKK+mvsCA+IG5hbWF6dVwgOwor6a+oID4ga3VqaXJhXCA7Civpr6MgPiBzdXJ1bWVcIDsKK+muqiA+IG1hZ3Vyb1wgOwor6a6WID4ga2FqaWthXCA7CivproMgPiBoaXJhbWVcIDsKK+mtuCA+IG5hbWF6dVwgOwor6aitID4gc2hpdHN1XCA7CivpoqogPiBvcm9zaGlcIDsKK+mekCA+IGtvaGF6ZVwgOwor6ZyeID4ga2FzdW1pXCA7CivpnJkgPiBtaXpvcmVcIDsKK+mbmyA+IGhpeW9rb1wgOwor6ZqyID4gc2hpdHN1XCA7CivpmrAgPiBzaGl0c3VcIDsKK+mRoiA+IHlhc3VyaVwgOwor6ZGVID4gc2hpdHN1XCA7CivpjrogPiBoYWJha2lcIDsKK+mMuiA+IGthemFyaVwgOwor6YqNID4gY2hpdHN1XCA7CivpioogPiBzaHV0c3VcIDsKK+mJpSA+IHNodXRzdVwgOwor6YmLID4ga2FuJyduYVwgOwor6YioID4gaGFiYWtpXCA7CivphqogPiBtb3JvbWlcIDsKK+mDhSA+IHNoaXRzdVwgOwor6YGWID4gYXBwYXJlXCA7Civov5ogPiB0b3RlbW9cIDsKK+i7iCA+IHlhZ2F0ZVwgOwor6LuFID4geWFnYXRlXCA7CivoursgPiB1dHN1a2VcIDsKK+i6riA+IHNlZ2FyZVwgOwor6Li1ID4ga2FrYXRvXCA7Civos4kgPiBzaHV0c3VcIDsKK+iyrSA+IHNoaXRzdVwgOwor6LGRID4gY2hpdHN1XCA7CivoqIEgPiBnb25iZW5cIDsKK+iioCA+IGNoaXRzdVwgOwor6KKfID4gY2hpdHN1XCA7Civoob4gPiBmdXN1bWFcIDsKK+igjSA+IHNhc29yaVwgOwor6J+EID4gY2hpdHN1XCA7CivonaggPiBzaGl0c3VcIDsKK+ibjSA+IGhvdGFydVwgOwor6Ja6ID4gbmF6dW5hXCA7CivolaggPiB3YXJhYmlcIDsKK+iUtiA+IHNvbm9rb1wgOwor6JOsID4geW9tb2dpXCA7CivokrogPiBzaGl0c3VcIDsKK+iShSA+IHN1a3Vtb1wgOwor6JKBID4gc2h1dHN1XCA7CivojqggPiB0YWJha29cIDsKK+iMuCA+IGtpbm9rb1wgOwor6IajID4gY2hpdHN1XCA7CivohqAgPiBuaWthd2FcIDsKK+iFnyA+IGNoaXRzdVwgOwor57qDID4ga2FzdXJpXCA7CivnuIUgPiBvZG9zaGlcIDsKK+e3lSA+IGthc3VyaVwgOwor57WAID4gY2h1dHN1XCA7Civns5ggPiBzdWt1bW9cIDsKK+ezkiA+IGhvc2hpaVwgOwor57KtID4gc3VrdW1vXCA7CivnrIIgPiB1dHN1Ym9cIDsKK+eriCA+IGthbWFkb1wgOwor56qSID4gY2hpdHN1XCA7CivnqosgPiBjaHV0c3VcIDsKK+enqSA+IGNoaXRzdVwgOwor56ekID4gaGFrYXJpXCA7CivnpoogPiBtaXNvZ2lcIDsKK+elkSA+IGNoaXRzdVwgOwor56SpID4gc2hpdHN1XCA7CivnobIgPiBoYXphbWFcIDsKK+egpiA+IHRvcmlkZVwgOwor55SpID4gc2h1dHN1XCA7Civnk7wgPiBzYXJha2VcIDsKK+eSsSA+IHNoaXRzdVwgOwor55GfID4gc2hpdHN1XCA7Civni7ggPiB0YW51a2lcIDsKK+eJgyA+IG91Y2hvdVwgOwor54OPID4ga2FyYXN1XCA7CivmuJogPiBuYWdpc2FcIDsKK+a2jiA+IHlvZGFyZVwgOwor5rOPID4gY2h1dHN1XCA7CivmsaIgPiB0c3VjaGlcIDsKK+axgCA+IG1pZ2l3YVwgOwor5rC1ID4gc2FuenVpXCA7CivmqZkgPiBkYWlkYWlcIDsKK+aotSA+IGtpa29yaVwgOwor5qiuID4gaG9rdXNvXCA7CivmpZQgPiBrdXNhYmlcIDsKK+aliiA+IHlhbmFnaVwgOwor5qS5ID4gc2F3YXJhXCA7CivmpKogPiBrdW51Z2lcIDsKK+akoSA+IGt1bnVnaVwgOwor5qSbID4gbW9taWppXCA7CivmpJogPiBrdW51Z2lcIDsKK+aiuiA+IGZ1bW90b1wgOwor5qG8ID4gc2hpdHN1XCA7CivmoY4gPiBzaGl0c3VcIDsKK+agniA+IHNoaW9yaVwgOwor5p+SID4gc2hpdHN1XCA7CivmnY4gPiBzdW1vbW9cIDsKK+aapiA+IGtveW9taVwgOwor5pmKID4gc2hpdHN1XCA7CivmmLQgPiBzdWJhcnVcIDsKK+aRlCA+IHNodXRzdVwgOwor5oyDID4gY2hpdHN1XCA7CivmirYgPiBjaGl0c3VcIDsKK+aJliA+IGhhbWVydVwgOwor5oaWID4gbmFtYWppXCA7CivmhLEgPiBzaGl0c3VcIDsKK+W9oCA+IGt1d2FrdVwgOwor5b2PID4ga3V3YWt1XCA7CivlvY0gPiBrdXdha3VcIDsKK+W9iSA+IGt1d2FrdVwgOwor5buTID4ga3VydXdhXCA7CivluqIgPiBjaGl0c3VcIDsKK+W5nyA+IG5vYm9yaVwgOwor5bmJID4gdGF6dW5hXCA7CivluJkgPiBjaGl0c3VcIDsKK+W1kCA+IGFyYXNoaVwgOwor5bSSID4gc2h1dHN1XCA7CivlsoAgPiBzaHV0c3VcIDsKK+WvoSA+IHlhbW9tZVwgOwor5aufID4gaml5dWt1XCA7CivlprcgPiBjaGl0c3VcIDsKK+WijiA+IGt1d2FrdVwgOwor5aCyID4gc2hpdHN1XCA7CivloJsgPiBoaXlva3VcIDsKK+WctyA+IGFrdXRzdVwgOwor5ZKwID4gc2h1dHN1XCA7CivlkI4gPiBraXNha2lcIDsKK+WPuiA+IGthbWFzdVwgOwor5Y6gID4ga2F3YXlhXCA7CivljpQgPiBzaGl0c3VcIDsKK+WOgCA+IHNoaXRzdVwgOwor5Y2bID4gc2h1dHN1XCA7CivlipUgPiBzaGl0c3VcIDsKK+WFnCA+IGthYnV0b1wgOwor5YSoID4gc2hpdHN1XCA7CivlgaogPiBoaXlva3VcIDsKK+WArSA+IHlhbWF0b1wgOwor5L6EID4gc2hpdHN1XCA7CivkvKEgPiBrdXJ1bWFcIDsKK+S7nSA+IGRvdWpvdVwgOwor5LuHID4ga2F0YWtpXCA7CivjgJIgPiB5dXViaW5cIDsKK+i/sCA+IGp1dHN1XCA7Civlv4UgPiBoaXRzdVwgOwor6L67ID4gdHN1amlcIDsKK+W+uSA+IHRldHN1XCA7CivnnqUgPiBiZXRzdVwgOwor5b6MID4gbm9jaGlcIDsKK+W+iyA+IHJpdHN1XCA7CivnnYAgPiBjaGFrdVwgOwor5byPID4gc2hpa2lcIDsKK+eauiA+IHNoaXdhXCA7CivouoUgPiBjaG9rdVwgOwor55m+ID4gaHlha3VcIDsKK+eZvSA+IHNoaXJvXCA7CivnmbwgPiBob3RzdVwgOwor55m6ID4gaGF0c3VcIDsKK+W5uCA+IHNhY2hpXCA7CivlubQgPiB0b3NoaVwgOwor55mqID4gc2hha3VcIDsKK+W3tCA+IHRvbW9lXCA7Civnl4UgPiB5YW1haVwgOwor55WlID4gcnlha3VcIDsKK+eVoiA+IGhpdHN1XCA7CivnlZwgPiBjaGlrdVwgOwor55S6ID4gbWFjaGlcIDsKK+eUtyA+IG90b2tvXCA7CivnlLEgPiB5b3NoaVwgOwor5bO2ID4gc2hpbWFcIDsKK+izqiA+IHRhY2hpXCA7CivlsrggPiBraXNoaVwgOwor5bGIID4ga3V0c3VcIDsKK+WwuyA+IHNoaXJpXCA7CivlsLogPiBzaGFrdVwgOwor5a+mID4gaml0c3VcIDsKK+WvnyA+IHNhdHN1XCA7Civlr4YgPiBtaXRzdVwgOwor5a60ID4gdXRhZ2VcIDsKK+WuoiA+IGt5YWt1XCA7CivnjocgPiByaXRzdVwgOwor6K2YID4gc2hpa2lcIDsKK+eMviA+IGthdHN1XCA7CivoqqwgPiBzZXRzdVwgOwor6KmwID4ga2l0c3VcIDsKK+eIuiA+IGppamlpXCA7CivniLUgPiBzaGFrdVwgOwor6KitID4gc2V0c3VcIDsKK+eIqiA+IHRzdW1lXCA7CivoqKMgPiBrZXRzdVwgOwor6Ke4ID4gc2hva3VcIDsKK+eHrSA+IHNob2t1XCA7Civop6YgPiBzaG9rdVwgOwor6KeSID4gdHN1bm9cIDsKK+WmuyA+IHRzdW1hXCA7CivnhrEgPiBuZXRzdVwgOwor6KW/ID4gbmlzaGlcIDsKK+WltCA+IHlhdHN1XCA7CivlpaogPiBkYXRzdVwgOwor5aSPID4gbmF0c3VcIDsKK+eDiCA+IHJldHN1XCA7Civoo4IgPiByZXRzdVwgOwor6KK3ID4gYXdhc2VcIDsKK+eCjiA+IGhvbm9vXCA7CivlooMgPiBzYWthaVwgOwor54G8ID4gc2hha3VcIDsKK+WhtSA+IGNoaXJpXCA7CivloZogPiB0c3VrYVwgOwor6KGXID4gbWFjaGlcIDsKK+WfuiA+IG1vdG9pXCA7Civmv7YgPiBrYXRzdVwgOwor5Z+SID4gcmFjaGlcIDsKK+WfjiA+IHNoaXJvXCA7CivpvaIgPiB5b3dhaVwgOwor6J2VID4gc2hva3VcIDsKK+a9lCA+IGtldHN1XCA7CivpvL4gPiBpYmlraVwgOwor6JyCID4gaGFjaGlcIDsKK+icgCA+IHNob2t1XCA7Civpu5AgPiBtb2NoaVwgOwor5ruRID4ga2F0c3VcIDsKK+a7hSA+IG1ldHN1XCA7CivompUgPiBrYWlrb1wgOwor5rqMID4gaGF0c3VcIDsKK+m5vyA+IHNoaWthXCA7CivomasgPiBtdXNoaVwgOwor6JmeID4gb3NvcmVcIDsKK+WZgiA+IHV3YXNhXCA7CivmuIcgPiBrYXRzdVwgOwor5re1ID4gZnVjaGlcIDsKK+m3siA+IHdhc2hpXCA7Civmt5EgPiBzaHVrdVwgOwor5ZeHID4gc2hva3VcIDsKK+m2tCA+IHRzdXJ1XCA7CivolpQgPiBzaG9rdVwgOwor5ZaHID4gcmF0c3VcIDsKK+WVnCA+IHNldHN1XCA7CivllL4gPiB0c3ViYVwgOwor5rS7ID4ga2F0c3VcIDsKK+iUkSA+IGJldHN1XCA7Civlk7IgPiB0ZXRzdVwgOwor5rOJID4gaXp1bWlcIDsKK+iThCA+IGNoaWt1XCA7CivmsrkgPiBhYnVyYVwgOwor5rKhID4gYm90c3VcIDsKK+WShCA+IHRvdHN1XCA7CivmsbogPiBrZXRzdVwgOwor6JGmID4geW9zaGlcIDsKK+iRlyA+IGNoYWt1XCA7CivmsYEgPiB0c3V5dVwgOwor6bCMID4gZG9qb3VcIDsKK+WQiSA+IGtpY2hpXCA7Civlj60gPiBoYXRzdVwgOwor5Y+jID4ga3VjaGlcIDsKK+WPlCA+IHNodWt1XCA7CivmrrogPiBzYXRzdVwgOwor5q6WID4gc2hva3VcIDsKK+WNtCA+IGt5YWt1XCA7CivljZggPiBoaXRvZVwgOwor5Y2SID4gc290c3VcIDsKK+WMuSA+IGhpdHN1XCA7CivmrKEgPiB0c3VnaVwgOwor5Yu/ID4gbW9jaGlcIDsKK+mrriA+IGhhdHN1XCA7Civmq5sgPiBrdXNoaVwgOwor5YqjID4gcmV0c3VcIDsKK+iKnSA+IHNoaWJhXCA7CivlipsgPiByeW9rdVwgOwor6Im2ID4gdHN1eWFcIDsKK+apiyA+IGhhc2hpXCA7CivliLkgPiBzZXRzdVwgOwor5Yi3ID4gc2F0c3VcIDsKK+aoqyA+IGthc2hpXCA7CivliKUgPiBiZXRzdVwgOwor5YidID4gaGF0c3VcIDsKK+WIlyA+IHJldHN1XCA7CivmqJIgPiBtaXRzdVwgOwor6IiMID4gc2hpdGFcIDsKK+WIhyA+IHNldHN1XCA7CivliIMgPiB5YWliYVwgOwor5YaMID4gc2F0c3VcIDsKK+WGiiA+IHNhdHN1XCA7CivohbAgPiBrb3NoaVwgOwor5YWrID4geWF0c3VcIDsKK+WFjiA+IHVzYWdpXCA7CivlhYAgPiBrb3RzdVwgOwor6ISxID4gZGF0c3VcIDsKK+akjSA+IHNob2t1XCA7CivohIggPiBteWFrdVwgOwor6aSFID4gbW9jaGlcIDsKK+mjviA+IHNob2t1XCA7Civpo68gPiBtZXNoaVwgOwor6aOfID4gc2hva3VcIDsKK+aiqCA+IG5hc2hpXCA7CivmoqIgPiBrb3p1ZVwgOwor5qKTID4gYXp1c2FcIDsKK+WCkSA+IGtldHN1XCA7CivogoUgPiBzaHVrdVwgOwor6IG3ID4gc2hva3VcIDsKK+mhjSA+IGhpdGFpXCA7CivlgJ8gPiBzaGFrdVwgOwor6aCBID4gcGVpamlcIDsKK+afhCA+IHRzdWthXCA7Civnv4EgPiBva2luYVwgOwor6Z6tID4gbXVjaGlcIDsKK+mehCA+IGthYmFuXCA7Civmnb4gPiBtYXRzdVwgOwor6Z20ID4ga3V0c3VcIDsKK+e9sCA+IGJhdHN1XCA7CivnvaogPiB0c3VtaVwgOwor5p2fID4gdHN1a2FcIDsKK+S9myA+IGJ1dHN1XCA7CivmnZMgPiBzaGFrdVwgOwor5L2NID4ga3VyYWlcIDsKK+e8uiA+IGtldHN1XCA7CivkvLggPiBub3NoaVwgOwor6ZyyID4gdHN1eXVcIDsKK+mcsCA+IGFyYXJlXCA7CivmnKsgPiBtYXRzdVwgOwor6ZycID4gc2hpbW9cIDsKK+aciCA+IHRzdWtpXCA7Civmm7IgPiBreW9rdVwgOwor6ZucID4gemF0c3VcIDsKK+S7mSA+IHNlbnRvXCA7Civpm5EgPiB6YXRzdVwgOwor6ZuHID4geWF0b2lcIDsKK+S5viA+IGhvc2hpXCA7CivkuZ4gPiBrb3RzdVwgOwor5Li7ID4gbnVzaGlcIDsKK+e4riA+IHNodWt1XCA7CivmmJ8gPiBob3NoaVwgOwor57ieID4gc2hpbWFcIDsKK+S4iyA+IHNoaXRhXCA7CivntrEgPiB0c3VuYVwgOwor57W2ID4gemV0c3VcIDsKK+e1kCA+IGtldHN1XCA7CivntYIgPiBvd2FyaVwgOwor5pONID4gbWlzYW9cIDsKK+aSriA+IHNhdHN1XCA7CivpkLUgPiB0ZXRzdVwgOwor6ZChID4gdGV0c3VcIDsKK+eviSA+IGNoaWt1XCA7Civnr4AgPiBidXNoaVwgOwor5664ID4gaGFzaGlcIDsKK+aOpSA+IHNldHN1XCA7CivmjqAgPiByeWFrdVwgOwor5o6YID4ga3V0c3VcIDsKK+eukiA+IGhvdWtpXCA7CivmjakgPiByZXRzdVwgOwor562UID4ga290YWVcIDsKK+aLtiA+IHNhdHN1XCA7Civmi60gPiBzaGlraVwgOwor5ousID4ga2F0c3VcIDsKK+aLmSA+IHNldHN1XCA7Civmi5QgPiBiYXRzdVwgOwor56uLID4gcml0c3VcIDsKK+eriiA+IHNldHN1XCA7Civmi4IgPiBmdXRzdVwgOwor5oqcID4gYmF0c3VcIDsKK+aKiSA+IGtldHN1XCA7CivnqoEgPiB0b3RzdVwgOwor56m0ID4ga2V0c3VcIDsKK+mJoiA+IGhhY2hpXCA7CivmiZUgPiBmdXRzdVwgOwor6YmEID4gdGV0c3VcIDsKK+aIqiA+IHNldHN1XCA7CivmiKYgPiBpa3VzYVwgOwor6YeLID4gc2hha3VcIDsKK+mHiCA+IHNoYWt1XCA7CivnpZ0gPiBzaHVrdVwgOwor6YWMID4gc2hha3VcIDsKK+aFhCA+IHJpdHN1XCA7Civmg5ogPiBrb3RzdVwgOwor6YGUID4gdGFjaGlcIDsKK+mBkyA+IG1pY2hpXCA7CivpgLkgPiB0YXRzdVwgOwor6YCQID4gY2hpa3VcIDsKK+mAhiA+IGd5YWt1XCA7Civlv70gPiBrb3RzdVwgOwor6b6eID4gYmV0c3VcIDsKK+m9pyA+IGtldHN1XCA7CivpvZUgPiBrb3RzdVwgOwor6b2DID4ga2F0c3VcIDsKK+m8vyA+IGdvdHN1XCA7CivpvI4gPiBrYW5hZVwgOwor6bu7ID4gZnV0c3VcIDsKK+m7oCA+IGthdHN1XCA7CivpurkgPiBrb3VqaVwgOwor6berID4gc2h1a3VcIDsKK+m3qSA+IGhldHN1XCA7CivptrsgPiBrb3RzdVwgOwor6bahID4ga2F0c3VcIDsKK+m2jSA+IGlzdWthXCA7CivptokgPiB1enVyYVwgOwor6bWTID4gaG90c3VcIDsKK+m0sCA+IGthdHN1XCA7CivptKsgPiBzaGlnaVwgOwor6bSDID4ga2V0c3VcIDsKK+m0giA+IGtldHN1XCA7Civpsr4gPiBoeWFrdVwgOwor6bKsID4ga29jaGlcIDsKK+mxlyA+IHVyb2tvXCA7CivpsZAgPiBzaHVrdVwgOwor6bGJID4gYmV0c3VcIDsKK+mxgSA+IGNoaWt1XCA7CivpsLsgPiB1bmFnaVwgOwor6bCSID4gYXdhYmlcIDsKK+mwjyA+IGh5b2t1XCA7CivpsI0gPiBpbmFkYVwgOwor6bCJID4gaGlnYWlcIDsKK+mwiCA+IGthcmVpXCA7Civpr7IgPiBkb2pvdVwgOwor6a+SID4ga29jaGlcIDsKK+mvjyA+IGFzYXJpXCA7Civprq0gPiBzaGFrZVwgOwor6a6oID4gc3VzaGlcIDsKK+mumiA+IGtpdHN1XCA7CivprpMgPiBzdXNoaVwgOwor6a6RID4gYXdhYmlcIDsKK+muhSA+IGhpdHN1XCA7CivproQgPiBmdXRzdVwgOwor6a2pID4gaGFjaGlcIDsKK+mtgyA+IGJhdHN1XCA7CivprLsgPiBzaHVrdVwgOwor6aygID4ga2F0c3VcIDsKK+msjiA+IHJhdHN1XCA7Civpq7ogPiBnYXRzdVwgOwor6au0ID4gZnV0c3VcIDsKK+mpliA+IHRldHN1XCA7CivpqYwgPiBzaHVrdVwgOwor6amLID4gaGF0c3VcIDsKK+mohCA+IHJ5b2t1XCA7Civpp5wgPiBoaXRzdVwgOwor6aeDID4ga2V0c3VcIDsKK+mmuSA+IGppdHN1XCA7Civppp0gPiBoaXRzdVwgOwor6aabID4gaGF0c3VcIDsKK+mlhiA+IGhpdHN1XCA7CivppK4gPiB0ZXRzdVwgOwor6aSfID4gdGV0c3VcIDsKK+mknSA+IHNob2t1XCA7CivppJEgPiBob3RzdVwgOwor6aO2ID4gaGl0c3VcIDsKK+mjrSA+IGNob2t1XCA7CivporMgPiBrYXRzdVwgOwor6aKwID4gaGF0c3VcIDsKK+miryA+IHNhdHN1XCA7CivpoaMgPiBzaHVrdVwgOwor6aChID4ga2l0c3VcIDsKK+mgiiA+IGt5b2t1XCA7Civpn6QgPiBiYXRzdVwgOwor6Z+hID4gc2FrYW5cIDsKK+mfoCA+IGhpdHN1XCA7Civpn40gPiBmdXRzdVwgOwor6Z+IID4gYmV0c3VcIDsKK+mfgyA+IGRhdHN1XCA7CivpnrggPiBoaXRzdVwgOwor6Z6oID4ga2F0c3VcIDsKK+mduiA+IG1hdHN1XCA7CivpnbkgPiBrZXRzdVwgOwor6Z2oID4gZWt1Ym9cIDsKK+maiSA+IGdldHN1XCA7CivpmZ8gPiBjaG9rdVwgOwor6ZiiID4gZ290c3VcIDsKK+mXpSA+IHRhdHN1XCA7Civpl5UgPiBrZXRzdVwgOwor6ZeRID4gZ2V0c3VcIDsKK+mXiyA+IGtldHN1XCA7Civpl4ogPiBrYXRzdVwgOwor6ZamID4gc2h1a3VcIDsKK+mWpSA+IGJhdHN1XCA7CivpkoMgPiBzaG9rdVwgOwor6ZGgID4gc2hha3VcIDsKK+mQvSA+IHRhdHN1XCA7CivpkK8gPiBzaGFrdVwgOwor6ZCNID4gdGV0c3VcIDsKK+mPuiA+IGhhdHN1XCA7Civpj4kgPiBzaHl1dVwgOwor6Y+FID4gc2h5dXVcIDsKK+mOpyA+IHlvcm9pXCA7CivpjosgPiBrYXRzdVwgOwor6Y2lID4ga2V0c3VcIDsKK+mNmCA+IHNhdHN1XCA7CivpjZQgPiB0c3ViYVwgOwor6YyoID4gaWthcmlcIDsKK+mMmCA+IHRzdW11XCA7Civpi6ggPiB0ZXRzdVwgOwor6YudID4gcmV0c3VcIDsKK+mLjSA+IGhvdHN1XCA7Civpir0gPiBrYXRzdVwgOwor6YqrID4gc2hva3VcIDsKK+mKlSA+IHRldHN1XCA7Civpib0gPiBzaHVrdVwgOwor6YmYID4gZnV0c3VcIDsKK+mIuiA+IGd5b2t1XCA7CivpiLggPiBoYXRzdVwgOwor6YivID4gdG90c3VcIDsKK+mIpCA+IGppdHN1XCA7CivpiIUgPiBnZXRzdVwgOwor6YewID4gaml0c3VcIDsKK+mHnyA+IGhhdHN1XCA7CivphrEgPiBoYXRzdVwgOwor6YaXID4gaGF0c3VcIDsKK+mGlCA+IHNoeXV1XCA7CivphoogPiB0ZXRzdVwgOwor6YaBID4gcnlva3VcIDsKK+mFqyA+IHNldHN1XCA7CivphaYgPiBoYXRzdVwgOwor6YSQID4gY2hpa3VcIDsKK+mCsiA+IGhpdHN1XCA7CivpgLwgPiBoaXRzdVwgOwor6YCvID4gcnlva3VcIDsKK+mAgiA+IGthdHN1XCA7Civov74gPiByZXRzdVwgOwor6L+tID4gdGV0c3VcIDsKK+i+viA+IHRhdHN1XCA7CivovrYgPiBjaGFrdVwgOwor6L61ID4gY2hha3VcIDsKK+i+sCA+IHRhdHN1XCA7CivovqUgPiBzZXRzdVwgOwor6L6jID4gcmF0c3VcIDsKK+i+nCA+IHRzdW1pXCA7CivovZUgPiBrYXRzdVwgOwor6L2EID4ga2F0c3VcIDsKK+i8vyA+IGtvc2hpXCA7CivovLUgPiBrYXRzdVwgOwor6LyfID4gdGV0c3VcIDsKK+i8giA+IGt5b2t1XCA7Civou74gPiBzaG9rdVwgOwor6Lu3ID4gaGF0c3VcIDsKK+i7jyA+IGdldHN1XCA7Civou4QgPiBzaG9rdVwgOwor6Lq1ID4gbmVyYXVcIDsKK+i6qSA+IGt5YWt1XCA7CivouoIgPiB0YXRzdVwgOwor6Lm2ID4ga2V0c3VcIDsKK+i5qSA+IGhldHN1XCA7CivouZwgPiBzaHVrdVwgOwor6LmZID4gc2h1a3VcIDsKK+i5lSA+IGhpdHN1XCA7CivouKcgPiBzaHVrdVwgOwor6LiLID4ga3lha3VcIDsKK+i3vCA+IGt5b2t1XCA7Civot5sgPiBiaWtrb1wgOwor6LeMID4gdGV0c3VcIDsKK+i3iyA+IGJhdHN1XCA7Civot4AgPiBnZXRzdVwgOwor6La5ID4ga2V0c3VcIDsKK+i2tyA+IGtvdHN1XCA7Civotp4gPiBzaGFrdVwgOwor6LaQID4ga2V0c3VcIDsKK+i1qSA+IGt5b2t1XCA7CivotJYgPiBzaG9rdVwgOwor6LOhID4gc2hva3VcIDsKK+iynCA+IGt5YWt1XCA7CivosYEgPiBrYXRzdVwgOwor6K6eID4gZ2V0c3VcIDsKK+itjiA+IGtpdHN1XCA7CivorJYgPiBzaG9rdVwgOwor6KyUID4gZ3lha3VcIDsKK+iskCA+IGhpdHN1XCA7Civoq5QgPiBzaHVrdVwgOwor6KqzID4ga3V0c3VcIDsKK+iqqiA+IHNldHN1XCA7CivoqpYgPiBob3RzdVwgOwor6KmnID4gc2F0c3VcIDsKK+ipmCA+IGt1dHN1XCA7CivoqKUgPiB0b3RzdVwgOwor6KiWID4ga2l0c3VcIDsKK+iokCA+IGtldHN1XCA7Civop7EgPiBoaXRzdVwgOwor6KeWID4ga2V0c3VcIDsKK+imlSA+IGJldHN1XCA7Civopa0gPiBrZXRzdVwgOwor6KWqID4gYmV0c3VcIDsKK+iloSA+IHNob2t1XCA7CivopZIgPiBoZXRzdVwgOwor6KWPID4gaGF0c3VcIDsKK+iljSA+IHphdHN1XCA7CivopLsgPiBzZXRzdVwgOwor6KSQID4ga2F0c3VcIDsKK+ikhCA+IHRzdW1hXCA7Civoo7AgPiB0YXRzdVwgOwor6KK6ID4ga2V0c3VcIDsKK+iinCA+IGJhdHN1XCA7CivoopogPiBoYXRzdVwgOwor6KG1ID4gaml0c3VcIDsKK+ihiyA+IGt5b2t1XCA7CivooYogPiBiZXRzdVwgOwor6KC8ID4ga3lha3VcIDsKK+igniA+IHNldHN1XCA7CivooJsgPiBiZXRzdVwgOwor6KCYID4gc2V0c3VcIDsKK+igiyA+IHNob2t1XCA7Civon5kgPiBzaG9rdVwgOwor6J2yID4gcmF0c3VcIDsKK+idjiA+IGthdHN1XCA7CivonJwgPiBtaXRzdVwgOwor6JyHID4gdGV0c3VcIDsKK+ibpSA+IHNldHN1XCA7Civom6MgPiBraXRzdVwgOwor6JueID4ga2F0c3VcIDsKK+ibmiA+IHJldHN1XCA7CivomZAgPiBneWFrdVwgOwor6JiWID4gZ2V0c3VcIDsKK+iXnCA+IGFrYXphXCA7Civol5ogPiBzaG9rdVwgOwor6JapID4gc2F0c3VcIDsKK+iWpSA+IHNob2t1XCA7CivolpsgPiBzZXRzdVwgOwor6JaYID4gdGF0c3VcIDsKK+iWiiA+IGF6YW1pXCA7CivolZ8gPiBoaXRzdVwgOwor6JWdID4gc2V0c3VcIDsKK+iVgCA+IGt5b2t1XCA7CivolKYgPiB0c3V0YVwgOwor6JSkID4gYml0c3VcIDsKK+iUjiA+IHNldHN1XCA7Civok78gPiBzaHVrdVwgOwor6JO9ID4gaGl0c3VcIDsKK+iThyA+IGtvdHN1XCA7CivokacgPiBob3RzdVwgOwor6JGcID4ga2F0c3VcIDsKK+iRliA+IHRvdHN1XCA7CivokY4gPiByaXRzdVwgOwor6I+9ID4gc2h1a3VcIDsKK+iPnSA+IGhhdHN1XCA7Civoj4kgPiByeW9rdVwgOwor6I6tID4gc2V0c3VcIDsKK+iOgiA+IGhldHN1XCA7CivojbggPiBob3RzdVwgOwor6I2XID4gc2hva3VcIDsKK+iMqCA+IGliYXJhXCA7CivojKIgPiByZXRzdVwgOwor6IycID4gYWthbmVcIDsKK+iMjSA+IGt5b2t1XCA7CivojIkgPiBtYXRzdVwgOwor6IyHID4gaGF0c3VcIDsKK+iMgSA+IHNhdHN1XCA7CivojIAgPiBodXRzdVwgOwor6Iu+ID4gaGl0c3VcIDsKK+iLtiA+IGRldHN1XCA7CivoirQgPiBidXRzdVwgOwor6IqNID4gc2hha3VcIDsKK+iJtCA+IGhvdHN1XCA7CivoiLMgPiBjaGlrdVwgOwor6IidID4ga2F0c3VcIDsKK+iIhCA+IHNoYWt1XCA7CivoiIMgPiBzaGFrdVwgOwor6Ie4ID4gaml0c3VcIDsKK+iHsiA+IGdldHN1XCA7Civoh4UgPiBzaG9rdVwgOwor6IW3ID4gaHlva3VcIDsKK+iFryA+IHRvdHN1XCA7CivohKsgPiBkYXRzdVwgOwor6ISWID4gaG90c3VcIDsKK+iEiSA+IG15YWt1XCA7Civog4ggPiBoYXRzdVwgOwor6IK4ID4ga2l0c3VcIDsKK+iCrSA+IGRvdHN1XCA7CivogosgPiBhYmFyYVwgOwor6IGSID4ga2F0c3VcIDsKK+iBgCA+IHNob2t1XCA7CivogIsgPiB0ZXRzdVwgOwor6ICKID4gdGV0c3VcIDsKK+e+ryA+IGthdHN1XCA7Civnvo0gPiB0YXRzdVwgOwor5724ID4gYmF0c3VcIDsKK+e8vSA+IGhhY2hpXCA7CivnvLwgPiBrZXRzdVwgOwor57qIID4ga2V0c3VcIDsKK+e5syA+IHNoYWt1XCA7CivnuZggPiBraXRzdVwgOwor57isID4gc2h1a3VcIDsKK+e3pCA+IHNldHN1XCA7Civntr0gPiBzaGFrdVwgOwor57agID4gcnlva3VcIDsKK+e2jSA+IGh1dHN1XCA7CivntbAgPiB0ZXRzdVwgOwor57WcID4ga2V0c3VcIDsKK+e1lyA+IGtvdHN1XCA7CivntZUgPiB6ZXRzdVwgOwor57WPID4gc2V0c3VcIDsKK+e0vCA+IGh1dHN1XCA7CivntLIgPiBzZXRzdVwgOwor57SxID4gaHV0c3VcIDsKK+e0riA+IHNhdHN1XCA7CivntIcgPiBrb3RzdVwgOwor57O1ID4gZ2V0c3VcIDsKK+ezjyA+IHNldHN1XCA7Civns4AgPiBrb3VqaVwgOwor57KbID4gc2h1a3VcIDsKK+eykiA+IHRzdWJ1XCA7CivnsZkgPiByeW9rdVwgOwor56++ID4gYmV0c3VcIDsKK+evsyA+IGhpdHN1XCA7Civnr6kgPiBmdXJ1aVwgOwor56+lID4gcml0c3VcIDsKK+euuyA+IHJpdHN1XCA7CivnrpogPiBzYXRzdVwgOwor562RID4gY2hpa3VcIDsKK+etjyA+IGlrYWRhXCA7CivnrYEgPiBreW9rdVwgOwor56y9ID4gc291a2VcIDsKK+essCA+IGh1dHN1XCA7CivnrJQgPiBoaXRzdVwgOwor56yPID4ga290c3VcIDsKK+errSA+IGtldHN1XCA7CivnqqMgPiBzb3RzdVwgOwor56qfID4ga3V0c3VcIDsKK+eqgyA+IHNldHN1XCA7CivnqaEgPiBzaG9rdVwgOwor56i3ID4gc2hva3VcIDsKK+eorSA+IGthdHN1XCA7CivnqKsgPiBoeW9rdVwgOwor56ihID4gc290c3VcIDsKK+eomSA+IGNob2t1XCA7Civnp7ggPiBrYXRzdVwgOwor56erID4gam90c3VcIDsKK+enoyA+IG1hdHN1XCA7Civnp6EgPiBoYXRzdVwgOwor56adID4gc2hva3VcIDsKK+elkyA+IGZ1dHN1XCA7Civno4YgPiBrYXRzdVwgOwor56K/ID4gc290c3VcIDsKK+eioyA+IGtldHN1XCA7Civnop8gPiBrYXRzdVwgOwor56KPID4gc2hha3VcIDsKK+ehiCA+IGthdHN1XCA7Civnn7sgPiBrb3RzdVwgOwor55+aID4gc2hva3VcIDsKK+eflyA+IGNoaWt1XCA7Civnnq4gPiB0ZXRzdVwgOwor556OID4ga2F0c3VcIDsKK+edsCA+IGJhdHN1XCA7CivnnJwgPiBiYXRzdVwgOwor55uLID4gaGF0c3VcIDsKK+earSA+IHNoYWt1XCA7CivnmpUgPiBoeW9rdVwgOwor55qMID4gYmF0c3VcIDsKK+eZtiA+IGhhdHN1XCA7CivnmaQgPiBzZXRzdVwgOwor55mfID4gaGV0c3VcIDsKK+eYpyA+IGd5YWt1XCA7CivnmJwgPiBzaG9rdVwgOwor55iMID4gcmF0c3VcIDsKK+eYhCA+IHNoYWt1XCA7CivnmIMgPiBzaG9rdVwgOwor55eGID4gZGF0c3VcIDsKK+eWmSA+IGdpdHN1XCA7CivnlbcgPiB0ZXRzdVwgOwor55WnID4gcnlha3VcIDsKK+eVnyA+IHNob2t1XCA7CivnlLYgPiBmdXRzdVwgOwor55OeID4gdGV0c3VcIDsKK+eRriA+IHJpdHN1XCA7Civnj78gPiBzaHVrdVwgOwor54+MID4gaGl0c3VcIDsKK+eOpiA+IGtldHN1XCA7CivnjqUgPiBnZXRzdVwgOwor546QID4gaGF0c3VcIDsKK+eOgyA+IGt5YWt1XCA7CivnjaYgPiBrYXRzdVwgOwor542dID4ga2l0c3VcIDsKK+eNlyA+IGtldHN1XCA7CivnjLIgPiBrYXRzdVwgOwor54ydID4gc290c3VcIDsKK+eLmCA+IGtldHN1XCA7Civniq4gPiBoYXRzdVwgOwor54idID4gc2hha3VcIDsKK+eIjSA+IHNoYWt1XCA7CivniIcgPiB6ZXRzdVwgOwor54e1ID4gdGF0c3VcIDsKK+eGmiA+IGhpdHN1XCA7CivnhZ4gPiBzYXRzdVwgOwor54SvID4gc2hha3VcIDsKK+eEqyA+IHpldHN1XCA7CivnhJQgPiBob25vb1wgOwor54SPID4ga3lva3VcIDsKK+eDlSA+IGtldHN1XCA7CivngJIgPiBzaG9rdVwgOwor5r+HID4gc2hva3VcIDsKK+a+iCA+IHRldHN1XCA7CivmvZogPiBzaHVrdVwgOwor5r2RID4gaGF0c3VcIDsKK+a9jyA+IGtldHN1XCA7Civmu60gPiBoaXRzdVwgOwor5ruAID4gY2hpa3VcIDsKK+a6rSA+IHNob2t1XCA7CivmuqcgPiByaXRzdVwgOwor5rqCID4gcmF0c3VcIDsKK+a5oiA+IGh5b2t1XCA7CivmuZwgPiBzaG9rdVwgOwor5ri0ID4ga2F0c3VcIDsKK+a4qyA+IHNldHN1XCA7CivmuKQgPiBib3RzdVwgOwor5riLID4gc2hpYnVcIDsKK+a3iCA+IGtvdHN1XCA7CivmtoUgPiBuZXRzdVwgOwor5rWsID4ga2FpcmlcIDsKK+a1oSA+IGhvdHN1XCA7CivmtZkgPiBzZXRzdVwgOwor5rSvID4ga2V0c3VcIDsKK+a0qyA+IGt5b2t1XCA7CivmtIwgPiByZXRzdVwgOwor5rOsID4ga2V0c3VcIDsKK+azkCA+IHJ5b2t1XCA7Civms4wgPiBoaXRzdVwgOwor5rK4ID4gZnV0c3VcIDsKK+ayqyA+IG1hdHN1XCA7CivmspUgPiBidXRzdVwgOwor5rKSID4gYm90c3VcIDsKK+axlCA+IGtpdHN1XCA7CivmsJ8gPiBodXRzdVwgOwor5rCSID4ga2V0c3VcIDsKK+aumyA+IGt5b2t1XCA7CivmroEgPiBib3RzdVwgOwor5q2/ID4gYm90c3VcIDsKK+atviA+IGJvdHN1XCA7Civmrb0gPiBzZXRzdVwgOwor5q25ID4gZ2F0c3VcIDsKK+atoCA+IHNldHN1XCA7CivmrZggPiBrdXRzdVwgOwor5q2HID4ga2V0c3VcIDsKK+asuyA+IGt1dHN1XCA7CivmrK8gPiBraXRzdVwgOwor5qygID4ga2V0c3VcIDsKK+asnyA+IHRzdWtpXCA7Civmq7EgPiBnZXRzdVwgOwor5quBID4gbWl0c3VcIDsKK+aqqyA+IHNhdHN1XCA7CivmqosgPiBreW9rdVwgOwor5qmbID4ga2V0c3VcIDsKK+aotCA+IHNob2t1XCA7Civmp60gPiBzaHVrdVwgOwor5qa+ID4ga290c3VcIDsKK+amjSA+IHNldHN1XCA7CivmpoAgPiBrb21haVwgOwor5qW+ID4gaGF6b3VcIDsKK+alrCA+IGtldHN1XCA7CivmpKMgPiBzaGlkZVwgOwor5qSKID4gc290c3VcIDsKK+akhCA+IHNldHN1XCA7Civmo4EgPiBzZXRzdVwgOwor5qKyID4gc2V0c3VcIDsKK+ahsiA+IGhvdHN1XCA7CivmobAgPiBrYXRzdVwgOwor5qGbID4ga2FzZWlcIDsKK+ahlCA+IGtpdHN1XCA7CivmoYAgPiBrZXRzdVwgOwor5qC7ID4gY2hva3VcIDsKK+agsCA+IGhhdHN1XCA7CivmoKggPiBzZXRzdVwgOwor5qCDID4gdG9jaGlcIDsKK+aftyA+IHNodWt1XCA7Civmn64gPiB0b3RzdVwgOwor5p2wID4ga2V0c3VcIDsKK+adpCA+IHRvY2hpXCA7CivmnYwgPiBnb3RzdVwgOwor5p2BID4gZWJ1cmlcIDsKK+acuCA+IHJ5b2t1XCA7CivmnLMgPiBoYXRzdVwgOwor5pyvID4ganV0c3VcIDsKK+acriA+IGp1dHN1XCA7CivmnIUgPiBrZXRzdVwgOwor5pu3ID4ga2F0c3VcIDsKK+aavCA+IGhldHN1XCA7CivmmrEgPiBqaXRzdVwgOwor5pmiID4gc2V0c3VcIDsKK+aYtSA+IGppdHN1XCA7CivmmLMgPiB0ZXRzdVwgOwor5pipID4gYmF0c3VcIDsKK+aYoiA+IGhvdHN1XCA7CivmmJIgPiBrb3RzdVwgOwor5petID4gYXNhaGlcIDsKK+aWqyA+IHNoYWt1XCA7CivmlqMgPiBzaHVrdVwgOwor5pWqID4gdGF0c3VcIDsKK+aVoCA+IHRhdHN1XCA7CivmlZUgPiBjaG9rdVwgOwor5pSdID4gc2V0c3VcIDsKK+aTvSA+IHJ5YWt1XCA7Civmk7cgPiBrZXRzdVwgOwor5pOmID4gc2F0c3VcIDsKK+aSuyA+IHRhY2hpXCA7CivmkqUgPiBiYWNoaVwgOwor5pKkID4gdGV0c3VcIDsKK+aShyA+IGhldHN1XCA7CivmkoUgPiBrZXRzdVwgOwor5pGLID4gc2F0c3VcIDsKK+aRgiA+IHNldHN1XCA7CivmkLAgPiBrb3RzdVwgOwor5pCpID4ga2V0c3VcIDsKK+aQkCA+IGNoaWt1XCA7Civmj7MgPiBzZXRzdVwgOwor5o+yID4gc2V0c3VcIDsKK+aPrCA+IHRvdHN1XCA7Civmj6AgPiBzYXRzdVwgOwor5o+RID4gZ2V0c3VcIDsKK+aOnyA+IG9raXRlXCA7CivmjocgPiB0YXRzdVwgOwor5o29ID4gc290c3VcIDsKK+aNuiA+IG5hdHN1XCA7CivmjbggPiB0b3RzdVwgOwor5o2dID4gdGF0c3VcIDsKK+aNjyA+IGRldHN1XCA7CivmjYsgPiByYXRzdVwgOwor5oy2ID4ga3lva3VcIDsKK+aMqSA+IHRhdHN1XCA7CivmjIggPiBrZXRzdVwgOwor5ouuID4ga2l0c3VcIDsKK+aLiSA+IHJhdHN1XCA7CivmirkgPiBtYXRzdVwgOwor5oqQID4gZG90c3VcIDsKK+aKiCA+IGdldHN1XCA7CivmiaQgPiBnb3RzdVwgOwor5omOID4gc2F0c3VcIDsKK+aIoCA+IHNob2t1XCA7CivmiJ4gPiBrYXRzdVwgOwor5oicID4gdGV0c3VcIDsKK+aImyA+IGthdHN1XCA7CivmiIQgPiBreWFrdVwgOwor5oekID4gY2h5dXVcIDsKK+aHjiA+IHNob2t1XCA7CivmhqAgPiBrZXRzdVwgOwor5oafID4gc2hva3VcIDsKK+aGiyA+IGhldHN1XCA7CivmhI4gPiBoeW9rdVwgOwor5oSKID4gaHlva3VcIDsKK+aEgiA+IGJvdHN1XCA7Civmg5kgPiB0ZXRzdVwgOwor5oKKID4gdGV0c3VcIDsKK+aBpCA+IGp1dHN1XCA7CivmgLUgPiBqdXRzdVwgOwor5oCtID4gaGl0c3VcIDsKK+aAqyA+IGZ1dHN1XCA7CivmgJsgPiBkYXRzdVwgOwor5b+UID4ga2l0c3VcIDsKK+W+jyA+IGNob2t1XCA7Civlvb8gPiBmdXRzdVwgOwor5b20ID4gc2hha3VcIDsKK+W9gyA+IGhpdHN1XCA7CivlvYIgPiBob3RzdVwgOwor5by8ID4gaGl0c3VcIDsKK+W8uyA+IGhpdHN1XCA7CivlvKYgPiB0c3VydVwgOwor5byhID4ga3V0c3VcIDsKK+W7kCA+IHVtYXlhXCA7CivluoIgPiBzaG9rdVwgOwor5bmvID4gc2V0c3VcIDsKK+W5rSA+IGJldHN1XCA7CivluLQgPiBzYXRzdVwgOwor5bilID4gc290c3VcIDsKK+W4miA+IGhvdWtpXCA7CivluJUgPiBiYXRzdVwgOwor5be/ID4gaHV0c3VcIDsKK+W3gCA+IHNhdHN1XCA7CivltrEgPiBrYXRzdVwgOwor5batID4gZ2F0c3VcIDsKK+W2jSA+IHNoaWh1XCA7Civltb0gPiB0ZXRzdVwgOwor5bWyID4gZ2V0c3VcIDsKK+W1pSA+IGtldHN1XCA7CivltZEgPiBrZXRzdVwgOwor5bWCID4gcml0c3VcIDsKK+W0sSA+IHNob2t1XCA7CivltKsgPiBrdXRzdVwgOwor5bSbID4ga3V0c3VcIDsKK+WzoCA+IHRvdWdlXCA7Civls5ogPiBiaXRzdVwgOwor5bOMID4gdGV0c3VcIDsKK+WyqiA+IGh1dHN1XCA7CivlsqQgPiBrZXRzdVwgOwor5bKPID4gZ3V3YW5cIDsKK+WyiiA+IHNldHN1XCA7CivlsokgPiBidXRzdVwgOwor5bG8ID4gZ290c3VcIDsKK+WxuSA+IGtpdHN1XCA7CivlsbUgPiBnYXRzdVwgOwor5bG0ID4gcnlva3VcIDsKK+WxqyA+IGt5YWt1XCA7CivlsakgPiBreWFrdVwgOwor5bCzID4ga290c3VcIDsKK+WwlyA+IHNodWt1XCA7CivlsJAgPiBzZXRzdVwgOwor5a+jID4ga290c3VcIDsKK+WvlCA+IHNob2t1XCA7CivlrrsgPiBtaXRzdVwgOwor5a6TID4gYml0c3VcIDsKK+WuiiA+IHRvdHN1XCA7Civlrb0gPiBnZXRzdVwgOwor5a28ID4gZ2V0c3VcIDsKK+WtsCA+IGl6dXJlXCA7CivlrZsgPiBib3RzdVwgOwor5a2SID4ga2V0c3VcIDsKK+WtkSA+IGtldHN1XCA7CivlrY4gPiBzaG9rdVwgOwor5ayHID4ga3V3YWlcIDsKK+WsgiA+IHNob2t1XCA7Civlq7MgPiBoZXRzdVwgOwor5auhID4gY2hha3VcIDsKK+WqnyA+IHNldHN1XCA7CivlqbwgPiBzaGFrdVwgOwor5amMID4gc2h1a3VcIDsKK+WojiA+IGtldHN1XCA7Civlp7QgPiByZXRzdVwgOwor5aehID4ga2F0c3VcIDsKK+WnniA+IGtpdHN1XCA7CivlprogPiBiYXRzdVwgOwor5aayID4gZGF0c3VcIDsKK+WmsCA+IGNoYWt1XCA7Civlpq0gPiBoYXRzdVwgOwor5aaBID4gc2hha3VcIDsKK+WlryA+IGthdHN1XCA7CivlpZEgPiBzZXRzdVwgOwor5aS3ID4gZWJpc3VcIDsKK+WkrCA+IGtldHN1XCA7CivlpKggPiBzaG9rdVwgOwor5aSZID4gc2h1a3VcIDsKK+WjtyA+IHRzdWJvXCA7CivloqIgPiBoYXRzdVwgOwor5aKMID4gc2hha3VcIDsKK+WihiA+IHRldHN1XCA7CivloZsgPiByaXRzdVwgOwor5aCoID4gZ2V0c3VcIDsKK+WftCA+IHNob2t1XCA7Civln7EgPiBzaHl1dVwgOwor5Z+TID4gcmFjaGlcIDsKK+WepCA+IHRldHN1XCA7CivlnqEgPiBoYXRzdVwgOwor5Z6UID4gc2h5b3VcIDsKK+WejyA+IHJvdHN1XCA7CivlnoMgPiByYXRzdVwgOwor5Z26ID4gaGF0c3VcIDsKK+WduSA+IGtldHN1XCA7CivlnbIgPiBodXRzdVwgOwor5Z2qID4gdHN1Ym9cIDsKK+WcvyA+IGthdHN1XCA7CivlnL0gPiBib3RzdVwgOwor5Zy0ID4gc2hha3VcIDsKK+WcqiA+IGdpdHN1XCA7CivlnKMgPiBrdXRzdVwgOwor5ZuuID4gb3RvcmlcIDsKK+WbqyA+IGtvdHN1XCA7Civlm5MgPiBrZXRzdVwgOwor5ZuRID4gc2hva3VcIDsKK+WbkCA+IHNhdHN1XCA7Civlm4sgPiBzYXRzdVwgOwor5Zq9ID4gc2V0c3VcIDsKK+WavCA+IHNoYWt1XCA7Civlmp4gPiB0ZXRzdVwgOwor5Zm2ID4ga2F0c3VcIDsKK+WZsiA+IGt1d2FpXCA7CivlmbEgPiBreWFrdVwgOwor5ZmgID4gdGF0c3VcIDsKK+WZmCA+IGtldHN1XCA7CivlmYggPiBzaHVrdVwgOwor5ZmEID4ga2l0c3VcIDsKK+WYsSA+IHNob2t1XCA7CivlmKAgPiBrYXRzdVwgOwor5ZiOID4ga2F0c3VcIDsKK+WXtiA+IGhpdHN1XCA7Civll6cgPiBnYXJvblwgOwor5ZeiID4gcmF0c3VcIDsKK+WXliA+IHNodWh1XCA7Civll5UgPiBzaG9rdVwgOwor5ZeQID4ga2F0c3VcIDsKK+WWqyA+IGtpdHN1XCA7Civllp0gPiBrYXRzdVwgOwor5ZaMID4gc2h1a3VcIDsKK+WWhiA+IHRldHN1XCA7CivllaAgPiB0ZXRzdVwgOwor5ZWSID4ga290c3VcIDsKK+WUvyA+IGtvdHN1XCA7CivllLAgPiBzZXRzdVwgOwor5ZO+ID4geWF0c3VcIDsKK+WTtyA+IHJldHN1XCA7Civlk7MgPiB0YXRzdVwgOwor5ZOxID4gaG90c3VcIDsKK+WTqyA+IHNob2t1XCA7Civlk5ggPiBzYXNvdVwgOwor5ZOLID4gdGV0c3VcIDsKK+WSsSA+IHNhdHN1XCA7Civlkq0gPiBraXRzdVwgOwor5ZKnID4gcmV0c3VcIDsKK+WSiCA+IGh1dHN1XCA7CivlkocgPiBoZXRzdVwgOwor5ZG+ID4gdGF0c3VcIDsKK+WRkCA+IHRvdHN1XCA7CivlkLcgPiBrZXRzdVwgOwor5ZC2ID4gdG90c3VcIDsKK+WQoSA+IGhpdHN1XCA7CivlkIsgPiBpbmNoaVwgOwor5ZCDID4ga2l0c3VcIDsKK+WPlSA+IHRldHN1XCA7Civlj5AgPiBoYXRzdVwgOwor5Y6pID4gdW1heWFcIDsKK+WOpSA+IGtldHN1XCA7CivljbwgPiBnb3RzdVwgOwor5Y27ID4ga3lha3VcIDsKK+WNuSA+IGp1dHN1XCA7CivljakgPiBzZXRzdVwgOwor5Y2oID4gc2V0c3VcIDsKK+WNjSA+IG1hbmppXCA7CivljYYgPiBzb3RzdVwgOwor5YyxID4gaGl0c3VcIDsKK+WMqyA+IGtvdHN1XCA7CivljKQgPiBreWFrdVwgOwor5YyiID4ga290c3VcIDsKK+WMgyA+IGthdHN1XCA7CivljIEgPiBtb25tZVwgOwor5Yu6ID4gc2hha3VcIDsKK+WLtiA+IGtldHN1XCA7Civli6ogPiBreWFrdVwgOwor5YuWID4ga3lha3VcIDsKK+WLgyA+IGJvdHN1XCA7Civlir0gPiByZXRzdVwgOwor5Yq8ID4ga2F0c3VcIDsKK+WKmiA+IGNoYWt1XCA7CivlioQgPiBzYXRzdVwgOwor5YqCID4ga2V0c3VcIDsKK+WKgCA+IGthdHN1XCA7CivliZ8gPiB0ZXRzdVwgOwor5YmOID4gc2F0c3VcIDsKK+WJjCA+IHJhdHN1XCA7CivliK4gPiBrYXRzdVwgOwor5YirID4gYmV0c3VcIDsKK+WInCA+IGh1dHN1XCA7CivliJYgPiBnZXRzdVwgOwor5YiUID4ga2V0c3VcIDsKK+WHkyA+IHJpdHN1XCA7Civlhr0gPiByZXRzdVwgOwor5Ya5ID4gaHV0c3VcIDsKK+WGsyA+IGtldHN1XCA7CivlhLIgPiBtb3VrZVwgOwor5YOqID4ga2l0c3VcIDsKK+WDpiA+IHNoeXV1XCA7Civlg4EgPiBzZXRzdVwgOwor5YKgID4gaGF0c3VcIDsKK+WCiCA+IHJpdHN1XCA7CivlgoQgPiBrYXRzdVwgOwor5YGwID4gc2V0c3VcIDsKK+WBnyA+IGt1d2F1XCA7CivlgYggPiBrZXRzdVwgOwor5YCUID4ga3V0c3VcIDsKK+WAkCA+IHNodWt1XCA7CivlgI8gPiBzaHVrdVwgOwor5YCMID4ga3V3YW5cIDsKK+S/tiA+IHNodWt1XCA7CivkvrwgPiBob3RzdVwgOwor5L67ID4gdGF0c3VcIDsKK+S+tyA+IGt5b2t1XCA7CivkvpkgPiBjaG9rdVwgOwor5L6TID4gcm90c3VcIDsKK+S+kCA+IGt5b2t1XCA7CivkvbggPiBrYXRzdVwgOwor5L22ID4ga2l0c3VcIDsKK+S9qiA+IGt1d2FpXCA7CivkvZogPiB0ZXRzdVwgOwor5L2WID4gaGl0c3VcIDsKK+S8tSA+IGt5b2t1XCA7CivkvLMgPiBzZXRzdVwgOwor5LycID4gc290c3VcIDsKK+S8kCA+IGJhdHN1XCA7Civku7QgPiBnYXRzdVwgOwor5LuhID4ga2l0c3VcIDsKK+S7iCA+IGhhdHN1XCA7Civkup8gPiBreW9rdVwgOwor5LqNID4gY2hva3VcIDsKK+S6hSA+IGtldHN1XCA7CivkubQgPiBzZXRzdVwgOwor5LmEID4gc2hpbWVcIDsKK+S5gCA+IGZ1dHN1XCA7CivkuL8gPiBoZXRzdVwgOwor5LiyID4ga3VzaGlcIDsKK+OAhiA+IHNoaW1lXCA7Civnn7MgPiBrb2t1XCA7Civov6sgPiBoYWt1XCA7Civov4QgPiBtYWRlXCA7Civlv4MgPiBzaGluXCA7CivovrwgPiBrb211XCA7CivlvrQgPiBjaG91XCA7CivlvrMgPiB0b2t1XCA7CivovrEgPiBqb2t1XCA7Civnnq0gPiByeW91XCA7CivnnqwgPiBzaHVuXCA7CivlvqkgPiBmdWt1XCA7CivovpsgPiBzaGluXCA7CivlvpcgPiB0b2t1XCA7CivlvbwgPiBrYXJlXCA7CivlvbkgPiB5YWt1XCA7CivlvbEgPiBrYWdlXCA7CivlvasgPiBjaG91XCA7CivnnaYgPiBib2t1XCA7CivnnaMgPiB0b2t1XCA7CivlvL4gPiB0YW1hXCA7CivnnLogPiBjaG91XCA7CivlvLcgPiBreW91XCA7CivlvLUgPiBjaG91XCA7CivovK8gPiBzaHV1XCA7CivnnJ4gPiBzaGluXCA7CivlvJQgPiBjaG91XCA7CivnnIkgPiBtYXl1XCA7CivovIMgPiBrYWt1XCA7Civnm7QgPiBoaXRhXCA7Civou5IgPiBub2tpXCA7Civnm4ogPiB5YWt1XCA7Civlu4IgPiBzaG91XCA7Civnmr8gPiBzYXJhXCA7CivlurUgPiBpb3JpXCA7Civnmq4gPiBrYXdhXCA7Civluq0gPiBuaXdhXCA7CivlupcgPiBtaXNlXCA7CivlupUgPiBzb2tvXCA7CivoupEgPiB0ZWtpXCA7Civouo0gPiB5YWt1XCA7CivouoogPiBjaHV1XCA7CivluoogPiB5dWthXCA7CivnmoQgPiBtYXRvXCA7CivluoEgPiBjaG91XCA7CivlubkgPiBtaWtpXCA7CivoubQgPiBzaHV1XCA7CivlubMgPiBoaXJhXCA7CivouaAgPiBzZWtpXCA7CivouZ8gPiBzZWtpXCA7CivnmZYgPiBrdXNlXCA7CivluYUgPiBoYWJhXCA7CivnmYIgPiByeW91XCA7CivluLggPiB0b3dhXCA7CivluK0gPiBzZWtpXCA7CivluIwgPiBtYXJlXCA7CivluIMgPiBudW5vXCA7Civlt7sgPiBtYWtpXCA7Civot7MgPiBjaG91XCA7Civlt50gPiBrYXdhXCA7Civnl4cgPiBzaG91XCA7CivotrMgPiBhc2hpXCA7CivotoogPiBldHN1XCA7CivotoUgPiBjaG91XCA7CivotasgPiBrYWt1XCA7CivnlasgPiBrYWt1XCA7CivotaQgPiBzZWtpXCA7CivnlZkgPiByeXV1XCA7CivnlLsgPiBrYWt1XCA7CivnlLMgPiBzYXJ1XCA7CivnlJ8gPiBuYW1hXCA7CivnlJogPiBzaGluXCA7CivltJYgPiBnYWtlXCA7CivltI4gPiBzYWtpXCA7Civls7AgPiBtaW5lXCA7Civos5EgPiBzaGluXCA7Civos4ogPiB6b2t1XCA7Civos4MgPiBjaGluXCA7CivosqwgPiBzZWtpXCA7CivlsbEgPiB5YW1hXCA7CivlsawgPiB6b2t1XCA7CivlsZ4gPiB6b2t1XCA7CivlsZEgPiBrdXp1XCA7CivosYYgPiBtYW1lXCA7CivnkLQgPiBrb3RvXCA7CivlsLEgPiBzaHV1XCA7CivlsJEgPiBzaG91XCA7CivlsI8gPiBzaG91XCA7CivlsIYgPiBzaG91XCA7CivnkIMgPiB0YW1hXCA7Civlr74gPiB0c3VpXCA7Civlr7ogPiB0ZXJhXCA7Civlr7UgPiBjaG91XCA7Civlr6kgPiBzaGluXCA7Civlr6UgPiByeW91XCA7Civlr6IgPiBzaGluXCA7Civnj40gPiBjaGluXCA7Civlr4wgPiB0b21pXCA7Civlr4IgPiBzYWJpXCA7Civlrr8gPiB5YWRvXCA7Civlrq4gPiBtaXlhXCA7CivlrqQgPiBtdXJvXCA7CivlrpcgPiBzaHV1XCA7CivnjpYgPiBreXV1XCA7CivnjokgPiBkYW1hXCA7CivlrokgPiB5YXN1XCA7CivlroggPiBtb3JpXCA7CivlroUgPiB0YWt1XCA7CivoroAgPiB0b2t1XCA7CivlrbggPiBnYWt1XCA7CivnjbIgPiBrYWt1XCA7Civora8gPiB5YWt1XCA7CivlrasgPiBtYWdvXCA7CivnjaggPiBkb2t1XCA7CivlraYgPiBnYWt1XCA7CivorYkgPiBzaG91XCA7CivnjYQgPiBnb2t1XCA7CivnjL8gPiBzYXJ1XCA7CivnjKsgPiBuZWtvXCA7CivorKEgPiB1dGFpXCA7CivorI4gPiBuYXpvXCA7CivlrIwgPiBreW91XCA7CivorIEgPiBldHN1XCA7Civni7kgPiBreW91XCA7Civni60gPiBreW91XCA7Civni4IgPiBreW91XCA7Civlq4EgPiB5b21lXCA7Civoqr8gPiBjaG91XCA7CivoqrAgPiBkYXJlXCA7Civoqq0gPiB0b2t1XCA7CivoqoIgPiBjaG91XCA7Civlqb8gPiBtdWtvXCA7CivnibkgPiB0b2t1XCA7CivoqbMgPiBzaG91XCA7CivniakgPiBtb25vXCA7CivniacgPiBib2t1XCA7CivniZsgPiB1c2hpXCA7CivoqZUgPiBoeW91XCA7CivniZIgPiBjaG91XCA7CivlqYYgPiBiYWJhXCA7CivoqLogPiBzaGluXCA7CivoqLMgPiB3YWtlXCA7CivoqJ8gPiBzaG91XCA7CivlqKAgPiBzaGluXCA7CivoqJcgPiB0YWt1XCA7CivniIYgPiBiYWt1XCA7Civlp6sgPiBoaW1lXCA7Civnh5IgPiBzaG91XCA7CivoprogPiBrYWt1XCA7CivoppogPiBrYWt1XCA7CivlppkgPiBteW91XCA7CivnhoogPiBrdW1hXCA7CivopoYgPiBmdWt1XCA7CivopbIgPiBzaHV1XCA7CivnhacgPiBzaG91XCA7CivnhaQgPiBzdXN1XCA7CivopYEgPiBreW91XCA7CivnhLwgPiB5YWtpXCA7CivlpKsgPiBvdHRvXCA7CivnhKYgPiBzaG91XCA7CivlpKIgPiB5dW1lXCA7CivlpJwgPiB5b3J1XCA7CivlpJYgPiBob2thXCA7CivopIcgPiBmdWt1XCA7Civoo74gPiBzdXNvXCA7Civlo7EgPiBpY2hpXCA7Civlo5MgPiBhdHN1XCA7Civlo4EgPiBrYWJlXCA7CivngrogPiB0YW1lXCA7Civngq0gPiBzdW1pXCA7CivloqggPiBzdW1pXCA7CivoopYgPiBzb2RlXCA7CivlopMgPiBoYWthXCA7CivoobcgPiBjaHV1XCA7CivooaggPiBoeW91XCA7CivloakgPiBzaGlvXCA7CivooZ0gPiBzaG91XCA7CivloZ4gPiBzb2t1XCA7CivooZMgPiBzdWJlXCA7CivooYwgPiBneW91XCA7CivooYYgPiBzaHV1XCA7CivooKIgPiBzaHVuXCA7CivngJ0gPiByZWtpXCA7CivloIAgPiBob3JpXCA7Civmv68gPiB0YWt1XCA7Civmv4EgPiBkYWt1XCA7Civmv4AgPiBnZWtpXCA7CivmvqQgPiB0YWt1XCA7CivlnqMgPiBrYWtpXCA7CivlnosgPiBrYXRhXCA7CivmvoQgPiBjaG91XCA7Civmva4gPiBzaGlvXCA7CivonaAgPiBmdWt1XCA7CivonYkgPiBzZW1pXCA7CivlnYIgPiBzYWthXCA7CivmvL8gPiBzaG91XCA7CivpvLsgPiBoYW5hXCA7CivmvLIgPiBjaG91XCA7CivlnKcgPiBhdHN1XCA7CivmvKAgPiBiYWt1XCA7CivlnJIgPiBzb25vXCA7CivlnIsgPiBrb2t1XCA7CivonIMgPiBzaGluXCA7CivmvIIgPiBoeW91XCA7CivmvIEgPiByeW91XCA7Civlm70gPiBrdW5pXCA7Civpu7QgPiBrYWJpXCA7Civpu5kgPiBtb2t1XCA7Civpu5ggPiBtb2t1XCA7Civpu5IgPiBrdXJvXCA7Civpu40gPiBraWJpXCA7Civom4cgPiBoZWJpXCA7Civlm4EgPiBzaG91XCA7CivmurogPiBkZWtpXCA7CivpuqYgPiBtdWdpXCA7CivpuqUgPiBiYWt1XCA7CivomqQgPiBub21pXCA7CivmuqIgPiBpdHN1XCA7Civmup0gPiBtaXpvXCA7CivmupwgPiByeXV1XCA7CivomY4gPiB0b3JhXCA7CivmuKwgPiBzb2t1XCA7CivlmJcgPiBzaG91XCA7CivmuIkgPiBzaG91XCA7Civpt7kgPiB0YWthXCA7Civmt7EgPiBzaGluXCA7Civol6UgPiB5YWt1XCA7Civol6QgPiBmdWppXCA7Civll4UgPiBreXV1XCA7Civol4EgPiB3YXJhXCA7CivmtrwgPiByeW91XCA7CivmtpwgPiB0b2t1XCA7CivllosgPiBjaG91XCA7CivllokgPiBub2RvXCA7CivmtoggPiBzaG91XCA7CivmtbggPiBzaGluXCA7CivmtbQgPiB5b2t1XCA7CivmtZwgPiBoYW1hXCA7CivmtZogPiBzaHVuXCA7CivolY4gPiBreW91XCA7CivllYYgPiBzaG91XCA7CivmtYEgPiByeXV1XCA7CivmtLIgPiBzaHV1XCA7CivllLEgPiBzaG91XCA7CivllK8gPiB0YWRhXCA7CivolK0gPiBrYWdlXCA7CivmtKUgPiBzaGluXCA7CivmtJ4gPiBob3JhXCA7CivmtJsgPiByYWt1XCA7CivllJYgPiBvc2hpXCA7Civok64gPiBoYXN1XCA7Civlk60gPiBrb2t1XCA7Civps6kgPiBoYXRvXCA7Civms6ggPiBjaHV1XCA7Civps6UgPiB0b3JpXCA7Civms6UgPiBkb3JvXCA7Civms6MgPiBreXV1XCA7Civms6IgPiBuYW1pXCA7Civok4sgPiBmdXRhXCA7Civms4ogPiBoYWt1XCA7Civms4EgPiBreW91XCA7Civlkr0gPiBub2RvXCA7CivmsrwgPiBudW1hXCA7CivokrsgPiBqYWt1XCA7CivmsrMgPiBrYXdhXCA7CivokrIgPiBnYW1hXCA7CivlkrMgPiBzZWtpXCA7CivlkrIgPiBzaG91XCA7CivmsqIgPiBzYXdhXCA7Civlko4gPiBreXV1XCA7CivmsoggPiBjaGluXCA7CivmsbIgPiBreXV1XCA7CivlkaggPiBzaHV1XCA7CivpsYggPiB0YXJhXCA7CivlkYogPiBrb2t1XCA7CivmsYIgPiBreXV1XCA7CivokL0gPiBvY2hpXCA7CivlkLggPiBreXV1XCA7CivmsLQgPiBtaXp1XCA7CivmsJEgPiB0YW1pXCA7CivlkIogPiBjaG91XCA7CivlkIQgPiBrYWt1XCA7Civlj7MgPiBtaWdpXCA7Civoj68gPiBoYW5hXCA7Civmr6wgPiBreXV1XCA7Civlj6wgPiBzaG91XCA7Civlj6sgPiBreW91XCA7Civlj6ogPiB0YWRhXCA7Civlj6QgPiBmdXJ1XCA7Civlj5YgPiB0b3JpXCA7Civmr5IgPiBkb2t1XCA7Civlj44gPiBzaHV1XCA7Civmr40gPiBoYWhhXCA7Civlj4wgPiBmdXRhXCA7Civoj4ogPiBraWt1XCA7Civlj4sgPiB0b21vXCA7Civlj4ogPiBreXV1XCA7Civlj4ggPiBtYXRhXCA7Civmrr8gPiBkb25vXCA7CivmrrsgPiBrYXJhXCA7CivojqIgPiBzYXlhXCA7Civljp8gPiBoYXJhXCA7CivljoQgPiB5YWt1XCA7CivmrbQgPiByZWtpXCA7CivljbMgPiBzb2t1XCA7CivljZogPiBiYWt1XCA7CivljZQgPiBreW91XCA7CivljZMgPiB0YWt1XCA7CivojYkgPiBrdXNhXCA7CivljYcgPiBtYXN1XCA7CivprLEgPiB1dHN1XCA7CivmrLIgPiB5b2t1XCA7CivmrJ0gPiB1dHN1XCA7CivprJogPiBoaWdlXCA7CivljJkgPiBzYWppXCA7CivljJcgPiBob2t1XCA7CivojI4gPiBrdWtpXCA7CivojIUgPiBrYXlhXCA7CivljIIgPiBuaW91XCA7Civpq7cgPiBtYWdlXCA7Civpq60gPiBoaWdlXCA7Civpq6ogPiBrYW1pXCA7Civoi6UgPiBqYWt1XCA7Civli50gPiBzaG91XCA7Civpq5ggPiB0YWthXCA7Civoi5QgPiBrb2tlXCA7CivoirEgPiBoYW5hXCA7CivpqqggPiBob25lXCA7CivliqkgPiBzdWtlXCA7CivliocgPiBnZWtpXCA7CivlioMgPiBrYWt1XCA7Civlib0gPiBoeW91XCA7CivlibIgPiB3YXJpXCA7Civoia8gPiByeW91XCA7CivliaUgPiBoYWt1XCA7CivmqZ8gPiBoYXRhXCA7CivpqZogPiBreW91XCA7CivliYogPiBzYWt1XCA7CivliYcgPiBzb2t1XCA7CivliLsgPiBrb2t1XCA7CivoiLkgPiBmdW5lXCA7CivliLogPiB0b2dlXCA7CivoiLYgPiBoYWt1XCA7CivmqKogPiB5b2tvXCA7CivoiJ8gPiBmdW5lXCA7CivmqJkgPiBoeW91XCA7CivoiI4gPiBzZWtpXCA7CivoiIogPiBreXV1XCA7CivliIggPiBrYXJpXCA7CivmqIUgPiBtb21pXCA7CivmqIIgPiBnYWt1XCA7Civoh60gPiBzaHV1XCA7Civoh6MgPiBzaGluXCA7Civpp5IgPiBrb21hXCA7Civpp5AgPiBjaHV1XCA7Civoh40gPiBoZXNvXCA7Civmp4wgPiB0c3VpXCA7Civlh4wgPiByeW91XCA7Civmp4cgPiBtYWtpXCA7CivpprQgPiBzaHVuXCA7CivlhqwgPiBmdXl1XCA7Civohp0gPiBoaXphXCA7CivohpwgPiBtYWt1XCA7CivmppsgPiBzaGluXCA7CivpppkgPiBreW91XCA7CivpppYgPiBrdWJpXCA7CivlhoYgPiBtYXJ1XCA7CivlhoUgPiB1Y2hpXCA7Civmpb0gPiByYWt1XCA7CivohbkgPiBoYXJhXCA7CivmpbUgPiBnb2t1XCA7CivlhbEgPiBkb21vXCA7Civmpa0gPiB3YXphXCA7Civlha0gPiByb2t1XCA7CivlhakgPiByeW91XCA7CivlhaUgPiBueXV1XCA7CivlhYMgPiBtb3RvXCA7CivohKMgPiBzaGluXCA7CivlhJ8gPiBzaG91XCA7CivohJogPiBhc2hpXCA7CivlhJggPiBtYW1hXCA7CivmpI4gPiB0c3VpXCA7CivohIogPiBzZWtpXCA7CivohIcgPiB3YWtpXCA7CivohIUgPiBreW91XCA7CivohIIgPiB5YW5pXCA7Civog70gPiB5b2t1XCA7Civog7ggPiBtdW5lXCA7Civmo64gPiBtb3JpXCA7Civmo5ogPiB0YW5hXCA7Civlg5ogPiByeW91XCA7Civlg5UgPiBib2t1XCA7Civlg5EgPiBreW91XCA7CivlgrcgPiBzaG91XCA7CivogqkgPiBrYXRhXCA7Civogp0gPiBraW1vXCA7CivogpggPiBoaWppXCA7CivlgpggPiBrYXNhXCA7CivogpYgPiBzaG91XCA7CivogowgPiBoYWRhXCA7Civlgo0gPiB3YWtpXCA7CivogokgPiBuaWt1XCA7CivmooMgPiB0ZWtvXCA7Civogb0gPiBjaG91XCA7Civlgb0gPiBuaXNlXCA7CivogbQgPiBjaG91XCA7CivogbMgPiBzaG91XCA7CivlgbQgPiBoYXRhXCA7CivogZogPiBzaHV1XCA7CivmoZAgPiBraXJpXCA7CivogYogPiByeW91XCA7CivmoYMgPiBtb21vXCA7CivmoYEgPiBrZXRhXCA7CivmoLwgPiBrYWt1XCA7CivpoLggPiBrdWJpXCA7CivogLMgPiBtaW1pXCA7CivpoKwgPiBob2hvXCA7CivpoJggPiByeW91XCA7CivmoJcgPiBrdXJpXCA7CivogIUgPiBtb25vXCA7CivpoIMgPiBnb3JvXCA7Civmn78gPiBrYWtpXCA7Civmn7UgPiBzYWt1XCA7Civkv64gPiBzaHV1XCA7Civmn5ogPiB5dXp1XCA7Civkv5cgPiB6b2t1XCA7Civmn5QgPiBueXV1XCA7Civnv5IgPiBzaHV1XCA7Civnv4wgPiB5b2t1XCA7Civkv4MgPiBzb2t1XCA7CivkvrUgPiBzaGluXCA7CivkvqEgPiBhdGFpXCA7Civnvp4gPiBzaHV1XCA7CivkvpsgPiB0b21vXCA7CivpnpggPiBzYXlhXCA7CivpnakgPiBrYXdhXCA7CivkvZwgPiBzYWt1XCA7CivmnZYgPiB0c3VlXCA7CivmnZEgPiBtdXJhXCA7CivmnY8gPiBhbnp1XCA7CivmnYkgPiBzdWdpXCA7CivkvL0gPiB0b2dpXCA7CivmnLQgPiBib2t1XCA7CivkvLQgPiB0b21vXCA7CivkvK8gPiBoYWt1XCA7CivmnK0gPiBmdWRhXCA7CivmnKwgPiBtb3RvXCA7CivpnKcgPiBraXJpXCA7CivkvJEgPiBreXV1XCA7CivkvI8gPiBmdWt1XCA7CivmnI0gPiBmdWt1XCA7CivpnIcgPiBzaGluXCA7Civpm7IgPiBrdW1vXCA7Civku7IgPiBuYWthXCA7Civku7AgPiBneW91XCA7Civku64gPiBrYXJpXCA7Civpm6ogPiB5dWtpXCA7Civmm50gPiBiYWt1XCA7Civku5YgPiBob2thXCA7Civpm4wgPiBtZXN1XCA7Civpm4YgPiBzaHV1XCA7Civku4QgPiBzb2t1XCA7CivkurogPiBoaXRvXCA7CivkuqsgPiBreW91XCA7CivkuqYgPiBtYXRhXCA7CivmmqIgPiBjaG91XCA7CivpmpwgPiBzaG91XCA7CivpmpkgPiBzdWtpXCA7CivpmpQgPiBrYWt1XCA7CivnuowgPiB6b2t1XCA7CivkuosgPiBrb3RvXCA7CivpmoYgPiByeXV1XCA7CivmmocgPiBoaW1hXCA7CivpmoUgPiBzdW1pXCA7CivkuoYgPiByeW91XCA7CivpmbggPiByb2t1XCA7CivmmbYgPiBzaG91XCA7CivpmbAgPiBrYWdlXCA7CivmmZ0gPiBjaHV1XCA7CivkuYsgPiBrb3JlXCA7CivkuYUgPiBreXV1XCA7CivmmYIgPiB0b2tpXCA7CivmmLwgPiBoaXJ1XCA7CivkuLggPiBtYXJ1XCA7CivmmK0gPiBzaG91XCA7CivkuK0gPiBuYWthXCA7CivmmKggPiBzYWt1XCA7CivnuKYgPiB0YXRlXCA7CivmmKUgPiBoYXJ1XCA7CivkuKEgPiByeW91XCA7CivnuJsgPiBiYWt1XCA7CivnuIsgPiB0c3VpXCA7CivkuIggPiBkYWtlXCA7CivmmIcgPiBzaG91XCA7CivnuIQgPiBuYXdhXCA7CivkuIAgPiBpY2hpXCA7Civml6ggPiBtdW5lXCA7Civml5cgPiBoYXRhXCA7Civml48gPiB6b2t1XCA7Civpl4cgPiB5YW1pXCA7Civml4UgPiB0YWJpXCA7Civntr8gPiB3YXRhXCA7Civplr4gPiB5b2t1XCA7Civntr4gPiByeW91XCA7CivplrIgPiBldHN1XCA7CivmlrAgPiBzaGluXCA7CivplqMgPiBrYWt1XCA7CivmlqUgPiBzZWtpXCA7CivplqIgPiBzZWtpXCA7CivntpogPiB6b2t1XCA7CivmlpkgPiByeW91XCA7CivplpEgPiBoaW1hXCA7CivmlpEgPiBtdXJhXCA7Civmlo4gPiB0b2tpXCA7CivntbkgPiBraW51XCA7CivmlbUgPiB0ZWtpXCA7CivntaYgPiBreXV1XCA7CivntaEgPiByYWt1XCA7CivmlZkgPiBreW91XCA7CivmlZEgPiBreXV1XCA7CivntYQgPiBrdW1pXCA7CivntLkgPiBzaG91XCA7CivmlLYgPiBzaHV1XCA7CivntLMgPiBzaGluXCA7CivmlKsgPiBrYWt1XCA7CivntKIgPiBzYWt1XCA7CivntJogPiBreXV1XCA7CivntJkgPiBrYW1pXCA7CivntJAgPiBoaW1vXCA7CivntIUgPiBiZW5pXCA7CivntIQgPiB5YWt1XCA7Civmk7EgPiBrYWt1XCA7Civns6cgPiByeW91XCA7CivmkrIgPiBib2t1XCA7CivnsqcgPiBzaG91XCA7CivnsqUgPiBrYXl1XCA7CivnsokgPiBrb25hXCA7CivmkoMgPiBnZWtpXCA7CivmkbogPiBzaG91XCA7CivnsbMgPiBrb21lXCA7CivnsaAgPiBrYWdvXCA7CivnsY0gPiBzZWtpXCA7CivpkJggPiBrYW5lXCA7CivpkJAgPiByeW91XCA7Civmj7ogPiB5dXJpXCA7Civnr60gPiBrYWdvXCA7Civnr6QgPiB0b2t1XCA7Civmj48gPiBieW91XCA7CivmjrQgPiBrYWt1XCA7CivnrrEgPiBoYWtvXCA7CivnrqEgPiBrdWRhXCA7CivpjbUgPiBrYWdpXCA7Civpja4gPiBjaHV1XCA7CivnrZYgPiBzYWt1XCA7CivpjYsgPiBuYWJlXCA7CivnrYsgPiBzdWppXCA7CivnrYkgPiBuYWRvXCA7CivnrYggPiBoYXp1XCA7CivnrYYgPiBmdWRlXCA7CivmjL4gPiBreW91XCA7CivnrLkgPiBzYXNhXCA7CivpjLIgPiByb2t1XCA7CivpjK8gPiBzYWt1XCA7CivmjK8gPiBzaGluXCA7CivnrKAgPiBrYXNhXCA7CivnrJEgPiBzaG91XCA7CivpjJAgPiBraXJpXCA7CivmjIcgPiB5dWJpXCA7Civnq7kgPiB0YWtlXCA7Civnq7YgPiBreW91XCA7Civnq68gPiBoYW5hXCA7Civnq6AgPiBzaG91XCA7Civmi5sgPiBzaG91XCA7Civmi40gPiBoYWt1XCA7Civmir0gPiBjaHV1XCA7Civnqq4gPiBreXV1XCA7CivnqpMgPiBtYWRvXCA7CivpipEgPiB6dWt1XCA7CivmioAgPiB3YXphXCA7Civmib8gPiBzaG91XCA7CivnqbogPiBzb3JhXCA7CivnqbYgPiBreXV1XCA7CivnqY0gPiBzZWtpXCA7CivmiYcgPiBvdWdpXCA7CivmiL8gPiBmdXNhXCA7CivpiLQgPiBzdXp1XCA7CivnqLEgPiBzaG91XCA7CivnqK4gPiB0YW5lXCA7CivmiJ8gPiBnZWtpXCA7CivmiJogPiBzZWtpXCA7CivmiJEgPiB3YXJlXCA7CivnqI0gPiB5YXlhXCA7CivnqIsgPiBob2RvXCA7CivnqIAgPiBtYXJlXCA7Civnp7AgPiBzaG91XCA7Civph6MgPiBjaG91XCA7Civph50gPiBoYXJpXCA7Civph5wgPiBrYW1hXCA7Civph5ggPiBrdWdpXCA7Civnp5IgPiBieW91XCA7Civnp4AgPiBzaHV1XCA7Civnpr8gPiBoYWdlXCA7CivmhqkgPiBpa29pXCA7CivphqQgPiBzaG91XCA7CivphpwgPiBzaHV1XCA7CivmhpQgPiBzaG91XCA7CivmhpEgPiBoeW91XCA7Civnpo8gPiBmdWt1XCA7CivnpoQgPiByb2t1XCA7Civmhb4gPiB5b2t1XCA7CivphbcgPiBrb2t1XCA7CivphawgPiBzaHV1XCA7CivnpZ4gPiBrYW1pXCA7CivphZIgPiBzYWtlXCA7CivmhYsgPiB6YW1hXCA7CivmhJUgPiBnYWt1XCA7Civpg7cgPiBreW91XCA7Civpg60gPiBrYWt1XCA7Civmg5wgPiBzZWtpXCA7Civmg5EgPiB3YWt1XCA7CivmgqogPiB3YXJ1XCA7CivnoqcgPiBoZWtpXCA7CivnoowgPiByb2t1XCA7CivmgoQgPiBzaG91XCA7Civmga0gPiBreW91XCA7CivpgakgPiB0ZWtpXCA7CivmgaUgPiBoYWppXCA7CivnoZ0gPiBzaG91XCA7CivmgZAgPiBreW91XCA7CivpgLggPiBpdHN1XCA7CivpgLIgPiBzaGluXCA7CivpgLEgPiBzaHV1XCA7CivmgK8gPiBreW91XCA7CivmgKUgPiBreXV1XCA7CivpgJ8gPiBzb2t1XCA7CivpgJogPiB0c3V1XCA7CivmgI4gPiBzaGluXCA7CivnoIIgPiBzdW5hXCA7Civov70gPiB0c3VpXCA7CivpvqUgPiB5YWt1XCA7CivpvqMgPiBrYWt1XCA7CivpvqAgPiB5YWt1XCA7Civpvp0gPiBzaHV1XCA7CivpvpQgPiBreW91XCA7Civpvo8gPiBreW91XCA7Civpvo0gPiByeXV1XCA7CivpvbogPiBzaHV1XCA7CivpvbEgPiBzZWt1XCA7CivpvbAgPiBzYWt1XCA7CivpvaogPiBzb2t1XCA7CivpvaggPiBreXV1XCA7CivpvaMgPiBrb21hXCA7CivpvaAgPiBjaG91XCA7CivpvZogPiBzYWt1XCA7CivpvZQgPiBzaGluXCA7CivpvZMgPiBzaGluXCA7CivpvYUgPiBreXV1XCA7CivpvLwgPiBneW91XCA7CivpvKsgPiBzZWtpXCA7CivpvKYgPiBjaG91XCA7CivpvJogPiBjaG91XCA7CivpvI8gPiBiZWtpXCA7CivpvIIgPiBjaG91XCA7Civpu7cgPiB0b2t1XCA7Civpu7AgPiBzaGluXCA7Civpu5EgPiBrb2t1XCA7Civpur8gPiBtYXJvXCA7CivpurQgPiBraWt1XCA7Civpuq8gPiBraWt1XCA7CivpuqggPiBzaG91XCA7Civpup4gPiBzaG91XCA7CivpupggPiBreW91XCA7Civpuo4gPiBzaGluXCA7CivpubYgPiBreW91XCA7CivpuaIgPiBnZWtpXCA7CivpuaEgPiBzZWtpXCA7CivpuLQgPiBrYWt1XCA7CivpuJkgPiB5YWt1XCA7CivpuJYgPiBrYWt1XCA7CivpuJEgPiBnYWt1XCA7CivpuJAgPiB0ZWtpXCA7CivpuIogPiBoZWtpXCA7Civpt70gPiBrYWt1XCA7Civpt7ggPiBpdHN1XCA7Civpt68gPiByeW91XCA7Civpt64gPiBreW91XCA7Civpt6YgPiBzaG91XCA7Civpt58gPiBzYWt1XCA7Civpt5ogPiByeXV1XCA7Civpt4ogPiBnZWtpXCA7Civpt4EgPiBnZWtpXCA7CivptrogPiBzZWtpXCA7CivptrkgPiByeXV1XCA7CivptrggPiBqYWt1XCA7Civptq4gPiBrb2t1XCA7CivptqogPiBrZWtpXCA7CivptqkgPiBib2t1XCA7CivptpogPiBnYWt1XCA7CivptpYgPiBzaHV1XCA7CivptpMgPiBieW91XCA7CivptpIgPiBzZWtpXCA7CivptoMgPiBnZWtpXCA7CivptbIgPiBqYWt1XCA7CivptbAgPiBjaG91XCA7CivptakgPiBmdWt1XCA7CivptaIgPiBzaGluXCA7CivptaAgPiBrb2t1XCA7CivptZ8gPiBreW91XCA7CivptZkgPiBtb3p1XCA7CivptZQgPiBzaHVuXCA7CivptYcgPiB0b2tpXCA7CivptYUgPiByYWt1XCA7CivptYMgPiBjaHV1XCA7CivptYIgPiBreXV1XCA7CivptKogPiBpdHN1XCA7CivptKggPiBrYW1vXCA7CivptJcgPiByeXV1XCA7CivptIcgPiB0b2tpXCA7CivptIYgPiBjaGluXCA7Civps6YgPiBpdHN1XCA7CivpsowgPiBoYWt1XCA7CivpsbcgPiBnYWt1XCA7CivpsbYgPiBmdWthXCA7CivpsbUgPiBzaGluXCA7CivpsbIgPiByeW91XCA7CivpsaggPiBzaG91XCA7CivpsacgPiBoYW1vXCA7CivpsZwgPiBreW91XCA7CivpsZogPiBraXN1XCA7CivpsZggPiBzaGluXCA7CivpsZIgPiBtYXN1XCA7CivpsY8gPiBzaGluXCA7CivpsY4gPiBreW91XCA7CivpsYogPiBpdHN1XCA7CivpsYYgPiBzaG91XCA7CivpsYUgPiBzaG91XCA7CivpsYMgPiBzaHV1XCA7CivpsYIgPiBzaG91XCA7CivpsL4gPiBoeW91XCA7CivpsL0gPiBzaHV1XCA7CivpsLcgPiBjaG91XCA7CivpsK0gPiBoaXJlXCA7CivpsKggPiBjaG91XCA7CivpsKQgPiBidXJpXCA7CivpsKEgPiByeXV1XCA7CivpsJkgPiBoYXlhXCA7CivpsJAgPiB3YW5pXCA7CivpsIIgPiBzb2t1XCA7Civpr70gPiBzZWtpXCA7Civpr6ogPiByeW91XCA7Civpr6cgPiBzaG91XCA7Civpr6UgPiByaWt1XCA7Civpr5cgPiBzaG91XCA7Civpr5YgPiBzYWJhXCA7Civpr5QgPiBib3JhXCA7Civpr44gPiB1Z3VpXCA7Civpr4ogPiBoYXplXCA7Civprr8gPiBjaG91XCA7CivprrwgPiBzaGluXCA7CivprrkgPiB0YWtvXCA7CivprrQgPiBnb3JpXCA7CivprrIgPiBtYXRlXCA7CivprrEgPiBib3JhXCA7CivprqsgPiBzYW1lXCA7CivprqAgPiBoYXlhXCA7Civprp0gPiBzaG91XCA7CivprpIgPiBmdW5hXCA7CivproogPiBoYWt1XCA7CivprokgPiBjaG91XCA7CivprbkgPiB0b2RvXCA7CivprasgPiBzaGluXCA7CivpraEgPiB0ZWtpXCA7CivprZcgPiBzaHV1XCA7CivprY4gPiByeW91XCA7CivprYggPiBzaG91XCA7CivprYQgPiBoYWt1XCA7CivprLogPiBzaG91XCA7CivprLIgPiByZWtpXCA7CivprLAgPiB1dHN1XCA7CivprK8gPiBjaG91XCA7CivprK4gPiBreXV1XCA7CivprKkgPiBnZWtpXCA7CivprJsgPiByeW91XCA7CivprJIgPiBzaGluXCA7CivprIYgPiBzaG91XCA7Civpq7kgPiBreXV1XCA7Civpq6sgPiBjaG91XCA7Civpq6QgPiBreXV1XCA7Civpq58gPiBoeW91XCA7Civpq5wgPiBreW91XCA7Civpq5EgPiB0b2t1XCA7Civpq44gPiByeW91XCA7Civpq4YgPiBoYWt1XCA7CivpqrwgPiBrYWt1XCA7CivpqrIgPiBoYWt1XCA7Civpqq4gPiB5b2t1XCA7Civpqq0gPiBoYWdpXCA7Civpqo4gPiBzaGluXCA7CivpqokgPiBoeXV1XCA7CivpqasgPiBoeXV1XCA7CivpqZ8gPiBzaHV1XCA7CivpqZ0gPiB0YWt1XCA7CivpqZUgPiBreW91XCA7CivpqZEgPiByeXV1XCA7CivpqY0gPiBneW91XCA7CivpqYMgPiBoeW91XCA7CivpqYAgPiBiYWt1XCA7CivpqLYgPiBzaHV1XCA7CivpqLMgPiB0b2t1XCA7CivpqK4gPiByeXV1XCA7CivpqJ4gPiBrYWt1XCA7Civpp78gPiBzaHVuXCA7Civpp7ggPiBzaGluXCA7Civpp7UgPiByeXV1XCA7Civpp7IgPiBzaHV1XCA7Civpp7EgPiByYWt1XCA7Civpp64gPiBoYWt1XCA7Civpp6ogPiBzaGluXCA7Civpp4EgPiBiYWt1XCA7Civppr0gPiBjaHV1XCA7CivpprIgPiB0YWt1XCA7CivpprAgPiB0ZWtpXCA7Civppq4gPiBoeW91XCA7CivppqUgPiBmdWt1XCA7CivpppggPiBrYWt1XCA7CivppZ8gPiBzaG91XCA7CivppZcgPiBreW91XCA7CivppYggPiBzaHV1XCA7CivppL4gPiByeXV1XCA7CivppLogPiBoYWt1XCA7CivppKYgPiBjaG91XCA7CivppJcgPiBzb2t1XCA7CivppJUgPiBzaHVuXCA7CivppIkgPiBzaG91XCA7Civpo6UgPiB0YWt1XCA7Civpo4ggPiBoeW91XCA7Civpo4cgPiBoeW91XCA7Civpo4YgPiBoeW91XCA7Civpo4UgPiByeXV1XCA7Civpo4QgPiBoeW91XCA7Civpo4MgPiBoeW91XCA7Civpo4IgPiByeXV1XCA7CivporcgPiBoeW91XCA7Civpoq4gPiBoeW91XCA7CivpobMgPiBzaG91XCA7CivpoaYgPiBzaG91XCA7CivpoZYgPiBzaGluXCA7CivpoZIgPiBneW91XCA7CivpoLAgPiBreW91XCA7CivpoKMgPiBzaGluXCA7CivpoJ4gPiBhdHN1XCA7CivpoJkgPiBzYWt1XCA7CivpoJQgPiB0ZWtpXCA7CivpoIwgPiBzaG91XCA7Civpn7cgPiByYWt1XCA7Civpn7YgPiBzaG91XCA7Civpn64gPiBuaXJhXCA7Civpn60gPiBreXV1XCA7Civpn5ggPiBzaG91XCA7Civpn5QgPiBjaG91XCA7Civpn4cgPiB0b2t1XCA7Civpn4EgPiBreW91XCA7CivpnrkgPiBrYWt1XCA7CivpnrQgPiBmdWt1XCA7CivpnqsgPiBraWt1XCA7CivpnqYgPiBzaHV1XCA7CivpnqIgPiBzaG91XCA7CivpnqAgPiBtYXJpXCA7Civpnp8gPiBrYWt1XCA7Civpno8gPiBreW91XCA7CivpnoYgPiB0b21vXCA7Civpna4gPiB0ZWtpXCA7CivpnZUgPiBzaGluXCA7CivpnY8gPiBrYWt1XCA7CivpnY4gPiBrYWt1XCA7CivpnYQgPiBtb3lhXCA7CivpnYMgPiBrYWt1XCA7CivpnYIgPiByZWtpXCA7CivpnLkgPiBoZWtpXCA7CivpnLggPiBoYWt1XCA7CivpnLMgPiByeXV1XCA7CivpnLEgPiBpdHN1XCA7CivpnKQgPiByeXV1XCA7CivpnKIgPiBiYWt1XCA7CivpnKEgPiBiYWt1XCA7CivpnI0gPiBrYWt1XCA7CivpnIUgPiBzaG91XCA7CivpnIQgPiBzaG91XCA7CivpnIMgPiBjaGluXCA7CivpnIIgPiBib2t1XCA7Civpm7kgPiBoeW91XCA7Civpm5ggPiB3YWt1XCA7Civpm5UgPiBjaG91XCA7Civpm5IgPiByYWt1XCA7Civpm4kgPiBraWppXCA7CivpmrsgPiBzZWtpXCA7CivpmrogPiBrb2t1XCA7Civpmp8gPiBnZWtpXCA7Civpmb8gPiBreW91XCA7CivpmbMgPiBjaGluXCA7CivpmZ4gPiBzaG91XCA7CivpmZcgPiBzaG91XCA7CivpmYwgPiBoYWt1XCA7CivpmJ4gPiByb2t1XCA7Civpl6IgPiBoZWtpXCA7Civpl58gPiBreXV1XCA7Civpl50gPiBoeW91XCA7Civpl5YgPiBjaGluXCA7Civpl4MgPiBnZWtpXCA7CivplrYgPiBzaG91XCA7CivplrQgPiBrZWtpXCA7CivplrEgPiBldHN1XCA7CivplqAgPiB0YW1hXCA7CivplpYgPiB5dXJ1XCA7CivploQgPiBrb2t1XCA7CivplbkgPiBreXV1XCA7CivplbggPiBjaG91XCA7CivplaAgPiByeXV1XCA7CivplLogPiBzaG91XCA7CivpkoEgPiBrYWt1XCA7Civpkb8gPiBub21pXCA7CivpkbAgPiB5YWt1XCA7Civpka4gPiBoYWt1XCA7CivpkaMgPiBoeW91XCA7CivpkaEgPiBzYWt1XCA7CivpkZ8gPiB0b2t1XCA7CivpkZwgPiBzaG91XCA7CivpkZMgPiB5YXJpXCA7CivpkYogPiBrYWt1XCA7CivpkYQgPiBjaHV1XCA7CivpkYMgPiB0eW91XCA7CivpkLggPiB0YWt1XCA7CivpkLQgPiBoZWtpXCA7CivpkLIgPiB0YWt1XCA7CivpkJQgPiBzaGluXCA7CivpkI4gPiBzaG91XCA7CivpkIggPiBreW91XCA7CivpkIIgPiByeXV1XCA7Civpj70gPiBzaHV1XCA7Civpj7kgPiBreW91XCA7Civpj7cgPiBob2t1XCA7Civpj6YgPiBzaG91XCA7Civpj6UgPiBzaHV1XCA7Civpj6IgPiBoeW91XCA7Civpj5sgPiBzaG91XCA7Civpj5ggPiBzaG91XCA7Civpj5EgPiB0ZWtpXCA7Civpj5AgPiByeXV1XCA7Civpj4wgPiBiYWt1XCA7Civpj4ogPiBneW91XCA7Civpj4MgPiB6b2t1XCA7CivpjrQgPiBzb2t1XCA7CivpjrAgPiBpdHN1XCA7Civpjq4gPiBjaGluXCA7Civpjq0gPiBjaGluXCA7CivpjqggPiBzaHVuXCA7CivpjqYgPiByeXV1XCA7CivpjpsgPiBoYWt1XCA7CivpjpogPiB0c3VpXCA7CivpjpggPiByZWtpXCA7CivpjpAgPiBzb2t1XCA7Civpjo8gPiByeXV1XCA7Civpjo0gPiBzYWt1XCA7CivpjowgPiBrYW1hXCA7CivpjoAgPiBzaHV1XCA7Civpjb4gPiBzaG91XCA7CivpjbwgPiBoYXJpXCA7CivpjbYgPiBzaG91XCA7CivpjawgPiBrdXdhXCA7CivpjZYgPiBjaGluXCA7CivpjLcgPiBhdHN1XCA7CivpjLYgPiBoeW91XCA7CivpjLQgPiByb2t1XCA7CivpjKsgPiBzdXp1XCA7CivpjKkgPiBzaG91XCA7CivpjJ4gPiBzaHVuXCA7CivpjIYgPiBzYWJpXCA7CivpjIQgPiByb2t1XCA7CivpjIIgPiByeW91XCA7Civpi78gPiBzaG91XCA7Civpi7kgPiBjaG91XCA7Civpi7MgPiBjaHV1XCA7Civpi7IgPiBieW91XCA7Civpi6QgPiBzdWtpXCA7Civpi6AgPiBzaGluXCA7Civpi5wgPiBzYWt1XCA7Civpi4ggPiB5b2t1XCA7Civpir8gPiBzaG91XCA7CivpirkgPiBzaHV1XCA7CivpirggPiBzaG91XCA7CivpircgPiBzaG91XCA7CivpirYgPiBreXV1XCA7CivpipsgPiBtb3JpXCA7Civpio4gPiBreW91XCA7CivpiokgPiBpdHN1XCA7Civpib4gPiBob2tvXCA7CivpibsgPiByYWt1XCA7Civpia4gPiBzaGluXCA7CivpiaYgPiBrYW5lXCA7CivpiZ4gPiBldHN1XCA7CivpiZ0gPiByeXV1XCA7CivpiZogPiByeXV1XCA7CivpiZEgPiBoYWt1XCA7CivpiZAgPiBzZWtpXCA7CivpiYogPiBzaG91XCA7CivpiL4gPiBjaHV1XCA7CivpiLwgPiBzYWt1XCA7CivpiKwgPiB0YWt1XCA7CivpiJUgPiBjaHV1XCA7CivpiJQgPiBzaG91XCA7CivpiI4gPiBrYWdpXCA7CivpiIwgPiBldHN1XCA7CivpiIogPiBzaGluXCA7Civph70gPiBoZWtpXCA7Civph7sgPiBreXV1XCA7Civph6UgPiBzaG91XCA7Civph54gPiBzaHV1XCA7Civph5sgPiBrb2t1XCA7Civph5ogPiBreXV1XCA7Civph5kgPiBoYWt1XCA7Civph5cgPiBzaG91XCA7Civph5QgPiBpdHN1XCA7Civph5MgPiBoeXV1XCA7Civph48gPiByeW91XCA7Civph4IgPiBzaG91XCA7CivphrsgPiBzaHV1XCA7Civphq4gPiBzaG91XCA7Civphq0gPiBob2t1XCA7CivphqwgPiBzaG91XCA7CivphpUgPiBzaHVuXCA7CivphosgPiBzYWt1XCA7CivphocgPiBzaHVuXCA7CivphbEgPiBzaG91XCA7CivphaogPiByYWt1XCA7CivphacgPiBzaHV1XCA7CivphZkgPiBzaGluXCA7CivphY4gPiBjaHV1XCA7CivphYsgPiBzaHV1XCA7CivphYkgPiB0b3JpXCA7CivphLkgPiBzaHV1XCA7CivphLQgPiBneW91XCA7CivphKkgPiBzaGluXCA7CivphKUgPiBreW91XCA7CivphKMgPiBzaG91XCA7CivphJogPiBiYWt1XCA7CivphJkgPiBoaW5hXCA7CivphJUgPiBreW91XCA7CivphIkgPiBreW91XCA7CivphIIgPiBnYWt1XCA7CivphIAgPiBqYWt1XCA7Civpg7QgPiBjaGluXCA7Civpg7AgPiBzaHV1XCA7Civpg6QgPiBnZWtpXCA7Civpg50gPiBrYWt1XCA7Civpg4cgPiBzaHVuXCA7Civpg4QgPiBrZWtpXCA7CivpgrUgPiBzaG91XCA7CivpgrEgPiBreXV1XCA7CivpgqYgPiBrdW5pXCA7CivpgqUgPiBzaGluXCA7CivpgpsgPiBreW91XCA7CivpgosgPiByeW91XCA7CivpgoggPiBiYWt1XCA7CivpgbwgPiByeW91XCA7CivpgbkgPiBpdHN1XCA7CivpgawgPiBzb2t1XCA7CivpgacgPiBzaG91XCA7CivpgZsgPiByeXV1XCA7CivpgZIgPiBzaHV1XCA7CivpgY8gPiBhdHN1XCA7CivpgYwgPiBnYWt1XCA7CivpgLcgPiBrZWtpXCA7CivpgLQgPiB0YWt1XCA7CivpgKogPiBzYWt1XCA7CivpgKkgPiBrYW11XCA7CivpgKcgPiBzYWtvXCA7CivpgKEgPiBzaHVuXCA7CivpgJsgPiBreW91XCA7CivpgJYgPiB0ZWtpXCA7CivpgJEgPiBreXV1XCA7CivpgI4gPiBzaHV1XCA7CivpgI0gPiBzaG91XCA7Civov7kgPiBzZWtpXCA7Civov64gPiBzYWt1XCA7Civov6ogPiB0ZWtpXCA7Civov6IgPiBjaG91XCA7Civov6AgPiBzaG91XCA7Civov40gPiBjaHVuXCA7CivovrggPiBzaG91XCA7Civovp8gPiBoZWtpXCA7CivovaMgPiByZWtpXCA7CivovaIgPiByZWtpXCA7CivovY4gPiBreW91XCA7CivovYwgPiBzb3JpXCA7CivovYYgPiByb2t1XCA7CivovYMgPiBzaGluXCA7CivovYIgPiBrb2t1XCA7CivovLsgPiBmdWt1XCA7CivovLkgPiBmdWt1XCA7CivovLQgPiBjaHVuXCA7CivovKwgPiByeW91XCA7CivovKcgPiBieW91XCA7CivovJsgPiByeW91XCA7CivovJkgPiBjaG91XCA7CivovJggPiByeW91XCA7CivovJYgPiBzaHV1XCA7CivovJIgPiBjaG91XCA7CivovIwgPiByeW91XCA7CivovIggPiBjaHV1XCA7Civou78gPiBieW91XCA7Civou7wgPiBpdHN1XCA7Civou7ggPiBqaWt1XCA7Civou60gPiBreW91XCA7Civou6sgPiBzaGluXCA7Civou4sgPiBhdHN1XCA7CivourMgPiBreXV1XCA7CivouqwgPiBreXV1XCA7Civoup4gPiBzaG91XCA7CivoupIgPiByZWtpXCA7CivoupAgPiByeW91XCA7CivouoQgPiBoZWtpXCA7CivouoMgPiBoZWtpXCA7CivoubwgPiBib2t1XCA7CivoubsgPiBreW91XCA7CivoubogPiBreW91XCA7CivoubEgPiBzaG91XCA7CivoubAgPiBzaHV1XCA7CivouaQgPiBzaG91XCA7CivouaIgPiB0ZWtpXCA7CivouZAgPiBzZWtpXCA7CivouYwgPiBzaG91XCA7CivouYAgPiBjaG91XCA7CivouLggPiBjaGluXCA7CivouLMgPiBzaHVuXCA7CivouLEgPiB0YWt1XCA7CivouKogPiBzaG91XCA7CivouKIgPiB0ZWtpXCA7CivouJYgPiBzZWtpXCA7CivouIkgPiByeW91XCA7CivouIYgPiBzaHVuXCA7CivouIQgPiBoYWt1XCA7Civot6sgPiBreW91XCA7Civot5YgPiBzZWtpXCA7Civot5UgPiBjaG91XCA7Civot4UgPiB0YWt1XCA7CivotrsgPiBjaGluXCA7CivotrUgPiBoYWt1XCA7CivotqwgPiBreW91XCA7CivotqsgPiBreW91XCA7CivotqAgPiB0YWt1XCA7CivotpkgPiBjaG91XCA7CivotoIgPiBjaGluXCA7CivotoEgPiBjaGluXCA7CivotbMgPiBreXV1XCA7CivotaUgPiBrZWtpXCA7CivotJAgPiBzaGluXCA7CivotIsgPiBuaXNlXCA7Civos74gPiBzYWt1XCA7Civos7AgPiBzaHVuXCA7Civos60gPiBrYWtlXCA7Civos6wgPiBjaG91XCA7Civos54gPiBzaG91XCA7Civos50gPiBjaGluXCA7Civos5kgPiBzaHV1XCA7Civos5UgPiBreXV1XCA7CivosrogPiBreW91XCA7CivospggPiBiYWt1XCA7CivospMgPiBieW91XCA7CivosoogPiBoYWt1XCA7CivosokgPiBrYWt1XCA7CivosoUgPiBreXV1XCA7CivosoIgPiBjaG91XCA7CivosbkgPiBoeW91XCA7CivosZogPiBidXRhXCA7CivorqwgPiB0YWt1XCA7Civorp8gPiB0b2t1XCA7CivorpYgPiBzaGluXCA7CivorpAgPiBzaHV1XCA7Civoro4gPiBzaHV1XCA7Civoro0gPiBnYWt1XCA7CivorosgPiBzaG91XCA7CivoroUgPiBzaGluXCA7CivoroEgPiB0YWt1XCA7CivorbggPiBjaHV1XCA7CivorZsgPiBzaGluXCA7CivorZkgPiBzaG91XCA7CivorZYgPiBzaGluXCA7CivorYUgPiBzaHV1XCA7CivorLcgPiBneW91XCA7CivorKsgPiB0YWt1XCA7CivorJ4gPiBrYWt1XCA7CivorIsgPiBrYWt1XCA7Civoq78gPiBzaHV1XCA7Civoq74gPiBkYWt1XCA7Civoq7YgPiBzaGluXCA7Civoq6QgPiBnYWt1XCA7Civoq5wgPiBjaG91XCA7Civoq5cgPiBzaGluXCA7Civoq5IgPiByeW91XCA7Civoq5EgPiB0YWt1XCA7Civoq4ogPiBraWt1XCA7Civoq4MgPiBjaGluXCA7Civoqq8gPiBzaG91XCA7CivoqqYgPiBzaG91XCA7CivoqpogPiBzaG91XCA7CivoqpEgPiBreW91XCA7CivoqoYgPiBreW91XCA7CivoqoUgPiBjaHV1XCA7Civoqb4gPiBreW91XCA7CivoqbsgPiBnYWt1XCA7CivoqbYgPiBzaHV1XCA7CivoqbUgPiBzaGluXCA7CivoqZcgPiBreW91XCA7CivoqLsgPiBjaHV1XCA7CivoqLcgPiBzaGluXCA7CivoqKsgPiBzaGluXCA7CivoqKYgPiBzaGluXCA7CivoqKAgPiBzaGluXCA7CivoqIUgPiBreXV1XCA7CivoqIQgPiBreXV1XCA7Civop7QgPiBzaG91XCA7Civop7MgPiBrb2t1XCA7Civop6sgPiBzb2t1XCA7Civop6kgPiBreXV1XCA7Civopr8gPiB0ZWtpXCA7CivopqEgPiBnZWtpXCA7CivoppwgPiBjaG91XCA7CivoppsgPiBiaWtpXCA7CivoppMgPiBiZWtpXCA7CivoppAgPiBrYWt1XCA7CivopoggPiBrYWt1XCA7CivopbUgPiBzaG91XCA7Civopa8gPiBzaGluXCA7Civopa4gPiBoYWt1XCA7CivopasgPiBzZWtpXCA7CivopZ4gPiBoaWRhXCA7CivopZcgPiB0YWt1XCA7CivopYYgPiBob2t1XCA7CivopYIgPiBzaGluXCA7CivopYAgPiBzZWtpXCA7CivopL4gPiBoeW91XCA7CivopLogPiBjaG91XCA7CivopLYgPiBjaG91XCA7CivopLEgPiBrYWllXCA7CivopKUgPiBqb2t1XCA7CivopI4gPiBzaHV1XCA7CivopIEgPiBzZWtpXCA7Civoo7wgPiBzZWtpXCA7Civoo7IgPiByeW91XCA7Civoo7EgPiBoeW91XCA7Civoo68gPiBjaHV1XCA7Civoo5sgPiB5b3V1XCA7Civoo5ggPiBreXV1XCA7Civoo5MgPiBrb2t1XCA7Civoo5EgPiBzaGluXCA7Civoo4QgPiB5dWtpXCA7CivoorEgPiBmdWt1XCA7CivoorAgPiBob3JvXCA7CivoopcgPiBzaGluXCA7CivoobEgPiBreW91XCA7CivooaAgPiBzaHVuXCA7CivooYkgPiBrYWt1XCA7CivooYQgPiBqaWt1XCA7CivooYIgPiBqaWt1XCA7CivooLAgPiBzaG91XCA7CivooK4gPiBldHN1XCA7CivooKggPiBzaG91XCA7CivooJogPiBrYWt1XCA7CivooJYgPiBrYWt1XCA7CivooIEgPiBreW91XCA7Civon7kgPiBrYW5pXCA7Civon68gPiBneW91XCA7Civon60gPiBzaG91XCA7Civon58gPiByeW91XCA7Civon5wgPiBreW91XCA7Civon44gPiBkYW5pXCA7Civon4kgPiByeXV1XCA7Civon4ggPiBrYWt1XCA7Civon4cgPiBoaWtpXCA7Civon4YgPiBoaWtpXCA7Civonr8gPiBzaG91XCA7Civonr0gPiBzaHV1XCA7CivonrUgPiBoeW91XCA7CivonqsgPiBzZWtpXCA7CivonpMgPiBzaGluXCA7CivonosgPiBzaHV1XCA7CivonbYgPiBjaG91XCA7CivonaQgPiBzaHV1XCA7CivonY0gPiBzb2t1XCA7CivonL0gPiByeW91XCA7CivonK4gPiB5b2t1XCA7CivonKkgPiBjaG91XCA7CivonKggPiBzaG91XCA7CivonKUgPiBzZWtpXCA7CivonKMgPiBreW91XCA7CivonJkgPiBzaG91XCA7CivonJAgPiBreW91XCA7CivonIQgPiBzaGluXCA7Civom7ogPiBreW91XCA7Civom7ggPiB0YWtvXCA7Civom60gPiBoaXJ1XCA7Civom6wgPiBreW91XCA7Civom6kgPiBreW91XCA7Civom5IgPiBrYWt1XCA7Civom4EgPiBjaG91XCA7CivomrggPiByZWtpXCA7CivomrEgPiBzYWt1XCA7Civomq8gPiBreXV1XCA7CivomosgPiBidXlvXCA7CivombkgPiBuaWppXCA7Civoma8gPiBreXV1XCA7CivomawgPiBreXV1XCA7CivomakgPiBrZWtpXCA7CivomZkgPiBodWt1XCA7CivomYggPiBreW91XCA7CivomL0gPiByeXV1XCA7CivomJcgPiBoYWt1XCA7CivomJIgPiBoYWdpXCA7CivomIYgPiBhc2hpXCA7CivomIAgPiB0YWt1XCA7Civol78gPiBrYWt1XCA7Civol7YgPiByZWtpXCA7Civol60gPiBreXV1XCA7Civol6ogPiB5YWJ1XCA7Civol6ggPiBoeW91XCA7Civol6AgPiBreW91XCA7Civol5AgPiBiYWt1XCA7Civol44gPiBzaGluXCA7Civol4sgPiBjaG91XCA7Civolr0gPiBzaGluXCA7CivolrwgPiBjaGluXCA7CivolrggPiBoeW91XCA7CivolpwgPiBoZWtpXCA7CivolpMgPiBzaGluXCA7CivolpEgPiBreW91XCA7Civolo8gPiB5b2t1XCA7CivolowgPiBreW91XCA7CivolbogPiBzaHV1XCA7Civola0gPiBzaG91XCA7CivolaogPiBrYWJ1XCA7CivolaMgPiBzaHVuXCA7CivolZogPiBnYWt1XCA7CivolZcgPiBmdWtpXCA7CivolZAgPiBrdXdhXCA7CivolYkgPiBzaG91XCA7CivolYggPiBzaGluXCA7CivolK8gPiBjaGluXCA7CivolKMgPiBzaG91XCA7CivolJ8gPiB6b2t1XCA7CivolJogPiB1dHN1XCA7CivolJggPiBzaGluXCA7CivolJUgPiBoZXRhXCA7CivolJQgPiBmdWt1XCA7CivolJAgPiB0ZWtpXCA7CivolI8gPiBzaG91XCA7CivolIwgPiBzb2t1XCA7CivolIcgPiBraWtlXCA7CivolIYgPiByeW91XCA7CivolIMgPiBreW91XCA7Civok7wgPiB0YWRlXCA7Civok7sgPiBzaHV1XCA7Civok7QgPiBzaHVuXCA7Civok7IgPiBreXV1XCA7Civok6cgPiBzaG91XCA7Civok5ogPiBjaG91XCA7Civok5EgPiBtaW5vXCA7Civok5AgPiBqb2t1XCA7Civok4EgPiBzaGluXCA7CivokrQgPiBzYWt1XCA7CivokqogPiBoYWt1XCA7CivokqYgPiB3YWt1XCA7CivokpYgPiBzaGluXCA7CivokpAgPiBzaHV1XCA7CivokosgPiBzaG91XCA7CivokbogPiBzaHV1XCA7CivokbQgPiBzaGluXCA7CivokbEgPiBuZWdpXCA7Civoka8gPiB5YWt1XCA7CivokaQgPiBjaHV1XCA7CivokaAgPiBzaGluXCA7CivokZsgPiBrdXp1XCA7CivokZogPiBjaGluXCA7CivokZkgPiBzaG91XCA7CivokY0gPiBodWt1XCA7CivokLwgPiBnYWt1XCA7CivokKogPiBrdXdhXCA7CivokKkgPiBoYWdpXCA7CivokKIgPiB5YWppXCA7CivokJsgPiBreXV1XCA7CivokIcgPiBjaG91XCA7CivokIUgPiBzaHVuXCA7Civoj7EgPiByeW91XCA7Civoj6ggPiBzaG91XCA7Civoj5YgPiBzaG91XCA7Civoj5QgPiBob2t1XCA7Civoj5AgPiBob2t1XCA7CivojpwgPiB0ZWtpXCA7CivojpggPiBzaGluXCA7Civojo0gPiBreXV1XCA7CivojoAgPiBzaGluXCA7CivojY0gPiBreW91XCA7CivojL0gPiBjaHV1XCA7CivojLogPiBzaHV1XCA7CivojK8gPiBmdWt1XCA7CivojK4gPiBzaG91XCA7CivojK0gPiBrZWtpXCA7CivojJ8gPiBpdHN1XCA7CivojJ4gPiBzaGluXCA7CivojJYgPiBrYWt1XCA7Civoi5wgPiBib2t1XCA7Civoi5kgPiByeXV1XCA7Civoi5UgPiBjaG91XCA7Civoi4YgPiBzdXNhXCA7CivoirkgPiBzZXJpXCA7CivoirIgPiBrdXdhXCA7Civoiq8gPiBzaGluXCA7CivoiqggPiBreXV1XCA7CivoipIgPiBub2dpXCA7Civoio4gPiBreXV1XCA7CivoioAgPiBzaG91XCA7Civoib0gPiBreXV1XCA7CivoibsgPiByb2t1XCA7CivoiasgPiB0b21vXCA7CivoiacgPiB3YWt1XCA7CivoiaIgPiBzaG91XCA7CivoiZ0gPiBzb3JpXCA7CivoiY8gPiBzaHV1XCA7CivoiLUgPiBrYWppXCA7CivoiLQgPiB0YWt1XCA7CivoiJwgPiBzaHVuXCA7CivoiI8gPiBreXV1XCA7CivoiIIgPiBzaG91XCA7Civoh7sgPiBzaGluXCA7Civoh7kgPiBzaHV1XCA7Civoh7UgPiBrYWt1XCA7Civoh7AgPiBzaHV1XCA7Civoh6sgPiBreW91XCA7Civoh5sgPiBrb2t1XCA7Civoh5UgPiBoeW91XCA7CivohrIgPiBzaG91XCA7Civohq4gPiBreW91XCA7CivohqQgPiB0YXJhXCA7CivohpggPiBoeW91XCA7CivohpUgPiBrYWt1XCA7CivohpMgPiBjaG91XCA7CivohosgPiByeW91XCA7CivohoogPiBoYWt1XCA7CivohoggPiBrYWt1XCA7CivohoQgPiBzaHV1XCA7CivohoMgPiBvdHN1XCA7Civohb8gPiBtb21vXCA7Civohb0gPiBvdHN1XCA7Civoha0gPiBnYWt1XCA7CivohZggPiBrYWt1XCA7CivohYogPiBzZWtpXCA7CivohLwgPiByeW91XCA7CivohLkgPiBjaG91XCA7CivohKkgPiBzaHV1XCA7CivohKQgPiBzaGluXCA7CivohJsgPiBzdW5lXCA7CivohIsgPiBreW91XCA7Civog7ogPiBhdHN1XCA7Civog7MgPiBrYWt1XCA7Civog6QgPiB0YW5lXCA7Civog5cgPiBzaGluXCA7Civog4QgPiBjaHV1XCA7CivogrEgPiBoaWppXCA7CivogqsgPiBzaHVuXCA7CivogqEgPiBtb21vXCA7CivogoggPiBjaG91XCA7CivogocgPiBjaG91XCA7CivogoEgPiBjaG91XCA7Civogb8gPiBpdHN1XCA7CivogbwgPiBjaG91XCA7CivogYQgPiBzaGluXCA7CivogLQgPiBjaG91XCA7CivogKQgPiBzZWtpXCA7Civnv7kgPiBneW91XCA7Civnv7IgPiBoeW91XCA7Civnv68gPiBrb2t1XCA7Civnv64gPiBrYWt1XCA7Civnv58gPiBrZWtpXCA7Civnv5UgPiBreXV1XCA7Civnv5QgPiBzaG91XCA7Civnv48gPiByeXV1XCA7Civnv4ogPiB5b2t1XCA7Civnv4AgPiBjaHV1XCA7CivnvpcgPiBreW91XCA7CivnvowgPiBreW91XCA7CivnvoMgPiBiZWtpXCA7CivnvoAgPiByeXV1XCA7Civnvb8gPiBzaG91XCA7CivnvbYgPiByeXV1XCA7Civnva0gPiB5b2t1XCA7CivnvacgPiBzaGluXCA7CivnvaAgPiB3YW5hXCA7CivnvYUgPiBoaWJpXCA7CivnupUgPiBzaG91XCA7CivnuoYgPiBib2t1XCA7Civnua4gPiBreW91XCA7Civnua0gPiBtYXl1XCA7CivnuaYgPiBreW91XCA7CivnuaEgPiBzaHV1XCA7CivnuZogPiByeW91XCA7CivnuZIgPiBzaG91XCA7CivnuY0gPiBzaHV1XCA7CivnuYggPiBreW91XCA7CivnuYYgPiBreXV1XCA7CivnuL4gPiBzZWtpXCA7CivnuLkgPiBoeW91XCA7CivnuLYgPiBjaHV1XCA7CivnuKAgPiBrb2t1XCA7CivnuJ8gPiBqb2t1XCA7CivnuJ0gPiBzaGluXCA7CivnuJAgPiBzaHV1XCA7CivnuIkgPiBzaGluXCA7Civnt7IgPiBieW91XCA7Civnt50gPiBzaHV1XCA7Civnt5kgPiBrYWt1XCA7Civnt5cgPiBzaG91XCA7Civnt44gPiB5b2t1XCA7Civnt4YgPiBzZWtpXCA7Civnt4UgPiBzaHV1XCA7Civnt4MgPiBzaG91XCA7CivntrkgPiByeXV1XCA7CivntrYgPiBrdXdhXCA7CivntqcgPiBzaHVuXCA7CivntqIgPiBjaHV1XCA7Civntp0gPiBjaGluXCA7CivntpsgPiBrYXNlXCA7CivntowgPiBrZWtpXCA7CivntoUgPiBzaGluXCA7CivntoMgPiBzaG91XCA7Civntb8gPiBreXV1XCA7CivntYggPiBiYWt1XCA7CivntL4gPiBzaGluXCA7CivntKwgPiBjaHV1XCA7CivntJYgPiBjaGluXCA7CivntIMgPiBzaHVuXCA7CivntIIgPiBjaHV1XCA7Civns74gPiBreXV1XCA7Civns7ogPiBreXV1XCA7Civns7YgPiBjaG91XCA7Civns7QgPiB0ZWtpXCA7Civns6AgPiBudWthXCA7Civns5cgPiBreXV1XCA7Civns5QgPiBzaHV1XCA7Civns5MgPiBrb2t1XCA7Civns4ogPiBub3JpXCA7CivnsrsgPiBjaG91XCA7CivnsrcgPiBraWt1XCA7CivnsrYgPiByb2t1XCA7CivnsrUgPiBldHN1XCA7CivnsrEgPiByeW91XCA7Civnsq4gPiByeW91XCA7CivnsqQgPiBldHN1XCA7CivnspUgPiBoYWt1XCA7CivnsoIgPiBrdW1lXCA7Civnsb4gPiBtb21pXCA7CivnsbAgPiB3YWt1XCA7CivnsaUgPiB5YWt1XCA7CivnsaQgPiBrdWppXCA7CivnsZwgPiB0YWt1XCA7CivnsZUgPiByeXV1XCA7CivnsZIgPiBzaHV1XCA7CivnsY8gPiBoYXRhXCA7CivnsYwgPiBjaHV1XCA7CivnsYogPiB0ZWtpXCA7CivnsYYgPiB3YWt1XCA7CivnsYAgPiBjaHV1XCA7CivnsLYgPiByb2t1XCA7CivnsLEgPiBoYXRhXCA7CivnsKsgPiBzaG91XCA7CivnsKogPiBzaGluXCA7CivnsKggPiBzaHVuXCA7CivnsKUgPiBreW91XCA7CivnsJkgPiBoYWt1XCA7CivnsJggPiBzaG91XCA7CivnsJcgPiB5YW5hXCA7CivnsI8gPiByb2t1XCA7CivnsI4gPiBzYWt1XCA7CivnsIwgPiBzb2t1XCA7CivnsIkgPiBzaHV1XCA7CivnsIAgPiBzYWt1XCA7Civnr7ggPiBzaGluXCA7Civnr7QgPiB0ZWtpXCA7Civnr6AgPiBzaG91XCA7Civnr5sgPiBqYWt1XCA7Civnr5cgPiB3YWt1XCA7Civnr4sgPiBreW91XCA7CivnrrogPiBzaHVuXCA7CivnrrQgPiBzaGluXCA7CivnrrAgPiBzaHVuXCA7CivnrqwgPiBqb2t1XCA7CivnrpkgPiBmdWt1XCA7CivnrpQgPiBoYWt1XCA7Civnro0gPiB0YWdhXCA7CivnroYgPiBoZXJhXCA7Civnrb8gPiBzaG91XCA7CivnrbogPiBreW91XCA7CivnrbQgPiBreW91XCA7CivnrbEgPiBzaG91XCA7CivnrbAgPiBzYWt1XCA7CivnrZAgPiBreW91XCA7CivnrYcgPiBreW91XCA7CivnrL8gPiByYWt1XCA7CivnrK4gPiBzYWt1XCA7CivnrKcgPiBzYWt1XCA7CivnrIogPiB6YXJ1XCA7CivnrIggPiBreXV1XCA7Civnq7sgPiByb2t1XCA7Civnq7ogPiB0b2t1XCA7Civnq7QgPiBzaHVuXCA7Civnq6ggPiBjaG91XCA7Civnq6YgPiBzaG91XCA7Civnq6MgPiBzaHVuXCA7Civnq5wgPiByeXV1XCA7Civnq4YgPiBreXV1XCA7Civnq4UgPiBreW91XCA7Civnqr8gPiByeXV1XCA7CivnqrUgPiBjaG91XCA7Civnqq8gPiBrYW1hXCA7CivnqpUgPiBjaG91XCA7CivnqoQgPiBzYWt1XCA7CivnqoAgPiBjaHVuXCA7CivnqbkgPiBreXV1XCA7CivnqbggPiBzZWtpXCA7CivnqbUgPiBhdHN1XCA7CivnqasgPiBrYWt1XCA7CivnqaogPiBzaG91XCA7CivnqZkgPiBob2t1XCA7CivnqZUgPiBzaG91XCA7CivnqZAgPiBzaHV1XCA7CivnqYYgPiBib2t1XCA7CivnqYAgPiBrb2t1XCA7CivnqLkgPiBzaGluXCA7CivnqLggPiBraWt1XCA7CivnqKAgPiBjaHV1XCA7CivnqJwgPiByeW91XCA7CivnqJUgPiBzaHVuXCA7CivnqJEgPiByaWt1XCA7Civnp6YgPiBzaGluXCA7Civnp50gPiByZWtpXCA7Civnp40gPiBjaHV1XCA7Civnp4MgPiB0b2t1XCA7CivnprQgPiB5YWt1XCA7CivnppsgPiBzaGluXCA7Civnpb8gPiByb2t1XCA7Civnpb4gPiByeW91XCA7CivnpbIgPiBzaGluXCA7CivnpaggPiBoeW91XCA7CivnpacgPiBjaG91XCA7CivnpaUgPiBzaG91XCA7CivnpY8gPiBzZWtpXCA7CivnpL8gPiB5YWt1XCA7CivnpLQgPiBoYWt1XCA7CivnpK0gPiBrYWt1XCA7CivnpJAgPiBrYWt1XCA7CivnpIEgPiBzaG91XCA7Civno78gPiByZWtpXCA7Civno7YgPiBzZWtpXCA7Civno6cgPiBzZWtpXCA7Civno6YgPiBoeW91XCA7Civno58gPiByaWt1XCA7Civno5QgPiB0YWt1XCA7CivnorsgPiBrYWt1XCA7CivnorUgPiBzZWtpXCA7CivnoqogPiBjaGluXCA7CivnoqkgPiBzZWtpXCA7CivnoqEgPiB0b2t1XCA7Civnob4gPiB0c3VpXCA7CivnobogPiB0YWt1XCA7CivnobQgPiBrYWtpXCA7Civnoa4gPiBrYWt1XCA7CivnoasgPiByeXV1XCA7CivnoZ4gPiBrYWt1XCA7CivnoYwgPiByYWt1XCA7CivnoLcgPiBzaGluXCA7CivnoKcgPiBjaGluXCA7CivnoKEgPiBnaWt1XCA7CivnoJ0gPiBreW91XCA7CivnoIkgPiBrZWtpXCA7Civnn7EgPiB3YWt1XCA7Civnn68gPiBreW91XCA7Civnn6ogPiBjaHV1XCA7Civnn6cgPiBzaGluXCA7Civnn6QgPiBzaGluXCA7Civnn6AgPiBzYWt1XCA7Civnn58gPiBzYWt1XCA7Civnn54gPiBpdHN1XCA7Civnn5sgPiBob2tvXCA7Civnn40gPiBrYWt1XCA7Civnnr4gPiBzaG91XCA7CivnnqcgPiBzaG91XCA7Civnnp8gPiBoeW91XCA7CivnnpogPiBzaHVuXCA7CivnnpUgPiBzaG91XCA7CivnnpQgPiBzYWt1XCA7CivnnosgPiBzaGluXCA7CivnnoQgPiBieW91XCA7CivnnZcgPiBzZWtpXCA7CivnnZYgPiBjaG91XCA7CivnnL4gPiBzaHV1XCA7CivnnL0gPiBiYWt1XCA7CivnnLkgPiBjaGluXCA7CivnnLYgPiBreW91XCA7CivnnJUgPiBzaGluXCA7CivnnJIgPiBzaGluXCA7CivnnIcgPiBieW91XCA7Civnm74gPiB0YXRlXCA7Civnm7kgPiBzaHVuXCA7Civnm4UgPiBjaHV1XCA7CivnmrkgPiBoaWJpXCA7CivnmrggPiBoaWJpXCA7CivnmrQgPiBzaHVuXCA7CivnmqogPiByZWtpXCA7CivnmqYgPiBreW91XCA7CivnmqIgPiBreW91XCA7Civnmp8gPiBzYWt1XCA7CivnmpsgPiBreW91XCA7CivnmpkgPiBzZWtpXCA7Civnmo0gPiBzb2t1XCA7CivnmoAgPiBoeXV1XCA7CivnmaggPiBrYWt1XCA7CivnmacgPiByZWtpXCA7CivnmaUgPiBjaG91XCA7CivnmYsgPiBrYWt1XCA7CivnmYUgPiByeXV1XCA7CivnmYQgPiBzaG91XCA7CivnmYMgPiByeXV1XCA7CivnmYEgPiBmdWt1XCA7CivnmLwgPiBiYWt1XCA7CivnmLkgPiBjaG91XCA7CivnmLQgPiBzaG91XCA7CivnmLMgPiBjaHV1XCA7CivnmLIgPiBzaG91XCA7CivnmK4gPiBzaGluXCA7CivnmK0gPiBoeW91XCA7CivnmKQgPiBrb2J1XCA7CivnmKAgPiBzZWtpXCA7CivnmIcgPiBzaG91XCA7Civnl64gPiBjaG91XCA7Civnl58gPiBzaG91XCA7Civnl5wgPiB0b2t1XCA7CivnlrkgPiBzaGluXCA7CivnlqIgPiBjaGluXCA7CivnlpogPiBreXV1XCA7CivnlpQgPiBjaG91XCA7CivnlpIgPiBkYWt1XCA7CivnlocgPiBjaHV1XCA7CivnloYgPiBreW91XCA7CivnloUgPiBreW91XCA7CivnlbwgPiBjaG91XCA7CivnlbsgPiBzaG91XCA7CivnlbogPiBreW91XCA7CivnlbUgPiBrYWt1XCA7CivnlbQgPiBjaHV1XCA7CivnlbEgPiByeXV1XCA7Civnla8gPiBzaHVuXCA7CivnlakgPiBrZXNhXCA7CivnlZsgPiBzaGluXCA7CivnlZAgPiBmdWt1XCA7CivnlYQgPiByeXV1XCA7CivnlYMgPiBzaHVuXCA7CivnlLwgPiBjaG91XCA7CivnlKogPiByb2t1XCA7CivnlKcgPiBzaGluXCA7CivnlKEgPiBzaGluXCA7CivnlJ4gPiBzaG91XCA7CivnlJUgPiBtaWthXCA7CivnlJMgPiBoZWtpXCA7CivnlIMgPiBzaHV1XCA7Civnk7ogPiBjaG91XCA7Civnk6QgPiBzaG91XCA7Civnk6IgPiBoeW91XCA7Civnk58gPiBoYWt1XCA7CivnkrkgPiBzaHV1XCA7CivnkqcgPiBoZWtpXCA7CivnkqIgPiByeXV1XCA7CivnkqEgPiBzaGluXCA7Civnkp4gPiBoYWt1XCA7CivnkpkgPiByeW91XCA7CivnkosgPiBzaG91XCA7CivnkoYgPiBreXV1XCA7CivnkbIgPiBzaG91XCA7CivnkaggPiBzaGluXCA7CivnkacgPiBzaGluXCA7CivnkaAgPiByeXV1XCA7CivnkZUgPiBraXp1XCA7CivnkZIgPiBjaG91XCA7CivnkYMgPiBjaHVuXCA7CivnkLEgPiBjaG91XCA7CivnkK0gPiBrb2t1XCA7CivnkKkgPiBzaG91XCA7CivnkKIgPiB0YWt1XCA7CivnkJsgPiBjaGluXCA7CivnkIkgPiByeXV1XCA7CivnkIcgPiBzaHV1XCA7Civnj6YgPiBreW91XCA7Civnj6MgPiBzaHVuXCA7Civnj54gPiByYWt1XCA7Civnj5kgPiBreW91XCA7Civnj5IgPiBzaGluXCA7Civnj48gPiBrYWt1XCA7Civnj44gPiBjaGluXCA7Civnj4sgPiByeXV1XCA7Civnj4UgPiBzaGluXCA7Civnj4AgPiBoYWt1XCA7Civnjr8gPiBzaG91XCA7CivnjpMgPiB0ZWtpXCA7CivnjoUgPiBteW91XCA7CivnjbYgPiBueW91XCA7CivnjbUgPiByeW91XCA7CivnjaAgPiByeW91XCA7CivnjZ8gPiBneW91XCA7CivnjZAgPiBzaG91XCA7CivnjY8gPiBiYWt1XCA7CivnjY4gPiBzaG91XCA7CivnjY0gPiBreW91XCA7CivnjJ8gPiByeW91XCA7CivnjJYgPiBzaG91XCA7CivnjIsgPiBoeW91XCA7Civni6UgPiBzaHVuXCA7Civni6IgPiBrYWt1XCA7Civni5sgPiBoYWt1XCA7Civni4cgPiBib2t1XCA7Civni4YgPiBjaGluXCA7Civni4QgPiB0ZWtpXCA7CivnirEgPiBrZWtpXCA7CivniqggPiBzaHV1XCA7CivniqIgPiB0b2t1XCA7CivnipYgPiByYWt1XCA7Civnib8gPiBrb2t1XCA7CivniZ4gPiBreXV1XCA7CivniZkgPiBraWJhXCA7CivniZggPiB0b2t1XCA7CivniZQgPiBoYWt1XCA7CivniYYgPiBzaG91XCA7CivniL8gPiBzaG91XCA7CivniLQgPiBrYWt1XCA7CivniK8gPiBzaG91XCA7CivniJogPiB5YWt1XCA7CivniIAgPiBrYWt1XCA7Civnh7ggPiBqaXl1XCA7Civnh64gPiBzaG91XCA7Civnh5ogPiBpdHN1XCA7Civnh5YgPiBzaGluXCA7Civnh44gPiByeW91XCA7Civnh4sgPiBzaG91XCA7CivnhpsgPiBoeW91XCA7CivnhocgPiBrb2t1XCA7CivnhoQgPiBzb2t1XCA7CivnhYEgPiBzaGluXCA7CivnhLsgPiBzaG91XCA7CivnhIwgPiBzaHVuXCA7CivnhIcgPiBzaG91XCA7CivnhIYgPiBldHN1XCA7CivnhIUgPiBrb2t1XCA7CivnhIMgPiBrYWt1XCA7Civng5kgPiByYWt1XCA7CivngrggPiBzYWt1XCA7CivngqQgPiBzaG91XCA7CivngbggPiBreXV1XCA7CivngawgPiBoeW91XCA7CivngaUgPiBzaHVuXCA7CivngYQgPiBzaG91XCA7CivngLkgPiBzZWt1XCA7CivngLcgPiB5b2t1XCA7CivngKcgPiB0YWtpXCA7CivngJ8gPiBzaG91XCA7CivngJMgPiBjaG91XCA7CivngJEgPiBiYWt1XCA7CivngI8gPiByeXV1XCA7CivngIsgPiBzaGluXCA7CivngIYgPiB0b2t1XCA7Civmv7wgPiByb2t1XCA7Civmv7kgPiBib2t1XCA7Civmv64gPiBob2t1XCA7Civmv6wgPiBzaHVuXCA7Civmv6kgPiBrYWt1XCA7Civmv4ggPiBzaHV1XCA7Civmv4UgPiBzaGluXCA7CivmvrwgPiBoZWtpXCA7CivmvrUgPiBzaGluXCA7CivmvqAgPiBzaG91XCA7CivmvpkgPiBzZWtpXCA7CivmvpMgPiBodWt1XCA7CivmvpEgPiByeXV1XCA7CivmvoYgPiBneW91XCA7CivmvoIgPiBjaG91XCA7CivmvZ8gPiBrYXRhXCA7CivmvZ0gPiBreXV1XCA7CivmvZcgPiBzaHV1XCA7CivmvLsgPiByeW91XCA7CivmvLMgPiBzaG91XCA7CivmvJggPiBzaGluXCA7CivmvI0gPiBrYWt1XCA7CivmvIkgPiByb2t1XCA7Civmu7IgPiBzaGluXCA7Civmu64gPiBoeXV1XCA7Civmu6sgPiBzaHV1XCA7Civmu50gPiB0YWtpXCA7Civmu5MgPiBrYXN1XCA7Civmu4wgPiBkZWtpXCA7Civmur0gPiBqb2t1XCA7CivmurEgPiBzaGluXCA7Civmuo0gPiBzaGluXCA7CivmuasgPiBzaG91XCA7CivmuaggPiBrZWtpXCA7CivmuZggPiBzaG91XCA7CivmuZIgPiBzaHV1XCA7CivmuLogPiBieW91XCA7CivmuJ4gPiBzaHV1XCA7CivmuJcgPiBzaGluXCA7CivmuIwgPiByb2t1XCA7Civmt7wgPiBieW91XCA7Civmt7QgPiBvdHN1XCA7Civmt7MgPiBzaHVuXCA7Civmt6kgPiByeW91XCA7Civmt6UgPiByb2t1XCA7Civmt6IgPiB5b2t1XCA7Civmt54gPiBzaG91XCA7Civmt5UgPiByaWt1XCA7Civmt4wgPiBzaG91XCA7Civmt4UgPiBzZWtpXCA7Civmtr8gPiB0b2t1XCA7CivmtokgPiBzaG91XCA7CivmtbkgPiBzaG91XCA7CivmtZ4gPiBzYWt1XCA7CivmtZcgPiBreXV1XCA7CivmtLYgPiBreW91XCA7CivmtLUgPiBzaHVuXCA7CivmtKYgPiBiYWt1XCA7CivmtJ8gPiBoYW5hXCA7CivmtJMgPiBzYWt1XCA7CivmtJEgPiBodWt1XCA7Civms7UgPiByeXV1XCA7Civms6cgPiBldHN1XCA7Civms4YgPiBpdHN1XCA7Civms4UgPiBzaHV1XCA7CivmsrAgPiB0YWt1XCA7CivmspAgPiBib2t1XCA7CivmsokgPiBjaGluXCA7CivmsoMgPiB5b2t1XCA7CivmsoEgPiBzaGluXCA7CivmsbkgPiBreW91XCA7CivmsakgPiBpdHN1XCA7CivmsaggPiBiZWtpXCA7CivmsZsgPiBzaGluXCA7CivmsZAgPiBzZWtpXCA7CivmsYsgPiBzYWt1XCA7CivmsLsgPiByb2t1XCA7CivmsLYgPiBzaG91XCA7CivmsI4gPiBjaG91XCA7CivmsIUgPiBzaG91XCA7Civmr7EgPiBraWt1XCA7Civmr6MgPiBib2t1XCA7Civmr4QgPiBrZWtpXCA7Civmr4MgPiBrYWt1XCA7Civmrr4gPiBzaHVuXCA7CivmrrwgPiBrYWt1XCA7CivmrrAgPiB0b2t1XCA7Civmrq0gPiBreW91XCA7CivmrqQgPiBzaG91XCA7CivmrqAgPiBzaHV1XCA7Civmrp8gPiBvdHN1XCA7CivmrpEgPiBreW91XCA7Civmro0gPiBoeW91XCA7CivmrbUgPiBzYWt1XCA7CivmrbAgPiBzaHV1XCA7CivmrZkgPiBreXV1XCA7CivmrZIgPiB0ZWtpXCA7CivmrYogPiBreW91XCA7CivmrLYgPiBzYWt1XCA7CivmrKsgPiBrZWtpXCA7CivmrIcgPiBzaG91XCA7CivmrIIgPiBoYWt1XCA7Civmq6wgPiBzaGluXCA7Civmq6ogPiByZWtpXCA7Civmq58gPiByZWtpXCA7Civmq50gPiB0b2t1XCA7CivmqrQgPiBrYWt1XCA7CivmqqogPiByZWtpXCA7Civmqp0gPiBzaHV1XCA7CivmqpcgPiBoYWt1XCA7Civmqo0gPiB5b2t1XCA7CivmqoQgPiBnZWtpXCA7Civmqb8gPiBreW91XCA7CivmqbggPiBzaG91XCA7CivmqbMgPiBudWRlXCA7CivmqbIgPiB6dXNhXCA7CivmqaEgPiBzaG91XCA7CivmqZAgPiB0YWt1XCA7CivmqYogPiByeW91XCA7CivmqL4gPiBldHN1XCA7CivmqL0gPiB0YXJ1XCA7CivmqLogPiBrYWJhXCA7CivmqLggPiBib2t1XCA7CivmqLAgPiB0YXJhXCA7CivmqKIgPiBib2t1XCA7CivmqJ8gPiBzaG91XCA7CivmqJsgPiBreXV1XCA7CivmqJogPiByb2t1XCA7CivmqJUgPiBzb2t1XCA7CivmqJEgPiByeW91XCA7CivmqIAgPiB0ZWtpXCA7Civmp7MgPiBzaG91XCA7Civmp7IgPiBrb2t1XCA7Civmp64gPiBzaGluXCA7Civmp6ggPiBrYWt1XCA7Civmp6IgPiBzaHV1XCA7Civmp5cgPiBreW91XCA7Civmp5YgPiB0YWt1XCA7Civmp40gPiB5YXJpXCA7Civmp4ogPiBzYWt1XCA7Civmp4UgPiBrYWt1XCA7CivmprogPiBzaG91XCA7CivmprcgPiBrYWt1XCA7CivmprQgPiByeXV1XCA7CivmprIgPiBvdHN1XCA7CivmpqsgPiBzaHVuXCA7CivmpqcgPiBrYXlhXCA7CivmppYgPiBrb2t1XCA7CivmppIgPiBkb2t1XCA7CivmpoUgPiBvdHN1XCA7CivmpoEgPiBtdXJvXCA7CivmpbggPiBzaHV1XCA7CivmpasgPiBzaHV1XCA7CivmpaIgPiBzaHV1XCA7CivmpYkgPiBqYWt1XCA7CivmpYUgPiBoeWt1XCA7CivmpKggPiB0YWZ1XCA7CivmpKUgPiBuYWdpXCA7CivmpJkgPiBzdWdpXCA7CivmpJMgPiB0YWt1XCA7CivmpJIgPiBzaG91XCA7CivmpIsgPiByeW91XCA7CivmpIggPiBraWt1XCA7CivmpIYgPiBjaHV1XCA7CivmpIEgPiBrYWt1XCA7Civmo70gPiBjaGluXCA7Civmo6sgPiB5b2t1XCA7Civmo58gPiBtdW5lXCA7Civmo5ggPiB0b2dlXCA7Civmo48gPiB0b2t1XCA7Civmoq4gPiBraWt1XCA7CivmoqUgPiBzaG91XCA7CivmoqMgPiBzaGluXCA7CivmopwgPiBreW91XCA7Civmoo8gPiBrb2t1XCA7CivmooIgPiBreXV1XCA7CivmooEgPiBoYXJpXCA7CivmobogPiByeXV1XCA7CivmobcgPiBrYWt1XCA7CivmoZ0gPiBtYXN1XCA7CivmoZggPiB0c3VpXCA7CivmoZUgPiBreXV1XCA7CivmoZEgPiBrdXdhXCA7CivmoYwgPiB0YWt1XCA7CivmoYYgPiBreW91XCA7CivmoL8gPiBmdWt1XCA7CivmoLggPiBrYWt1XCA7CivmoLEgPiBreW91XCA7CivmoKogPiBrYWJ1XCA7CivmoKIgPiBoYWt1XCA7CivmoIUgPiBzYWt1XCA7CivmoIIgPiB0b2dhXCA7Civmn74gPiBreXV1XCA7Civmn6kgPiBreXV1XCA7Civmn54gPiBzYWt1XCA7Civmn50gPiB0YWt1XCA7Civmn5cgPiBzaG91XCA7Civmn48gPiBoYWt1XCA7CivmnrcgPiBrYXNlXCA7CivmnrUgPiBreW91XCA7CivmnqkgPiBzaG91XCA7CivmnqEgPiBtYXN1XCA7CivmnqAgPiB3YWt1XCA7CivmnpAgPiBzZWtpXCA7CivmnoEgPiBreW91XCA7CivmnbsgPiBjaHV1XCA7CivmnbYgPiBjaHVuXCA7CivmnaogPiBieW91XCA7CivmnaYgPiBzdWdpXCA7CivmnaMgPiBzb21hXCA7CivmnaIgPiBtb2t1XCA7CivmnZkgPiB5b2t1XCA7CivmnZQgPiB0YWt1XCA7CivmnL0gPiBreXV1XCA7CivmnJUgPiBjaGluXCA7CivmnJQgPiBzYWt1XCA7CivmnJMgPiBjaG91XCA7CivmnJIgPiBuaWt1XCA7CivmnJAgPiBreW91XCA7Civmm7sgPiBzaG91XCA7Civmm7AgPiBldHN1XCA7Civmm58gPiBzaGluXCA7Civmm48gPiBreW91XCA7Civmm4wgPiBzaG91XCA7Civmm4kgPiBneW91XCA7Civmm4YgPiByZWtpXCA7CivmmrggPiByeW91XCA7CivmmrIgPiBzaG91XCA7CivmmpkgPiBzaHVuXCA7Civmmo0gPiBldHN1XCA7Civmmb8gPiBzaG91XCA7Civmmb4gPiByeW91XCA7CivmmbMgPiBzZWtpXCA7CivmmbAgPiBzZWtpXCA7CivmmasgPiB0YWt1XCA7CivmmaggPiBzaGluXCA7CivmmZkgPiBzaHVuXCA7CivmmZEgPiBreW91XCA7CivmmYwgPiBzaG91XCA7CivmmYsgPiBzaGluXCA7CivmmYkgPiBzaGluXCA7CivmmYEgPiBjaG91XCA7CivmmYAgPiBjaG91XCA7CivmmLYgPiBjaG91XCA7CivmmK4gPiBzaG91XCA7CivmmKMgPiBzaGluXCA7CivmmIwgPiBzaG91XCA7CivmmIMgPiBzb2t1XCA7Civml74gPiBzaHVuXCA7Civml6cgPiBreXV1XCA7Civml5IgPiByeXV1XCA7Civml5AgPiBjaG91XCA7Civml4ggPiByeXV1XCA7CivmlrIgPiB0YWt1XCA7Civmlq4gPiBzYWt1XCA7CivmlqEgPiBhdHN1XCA7CivmlqAgPiBrYWt1XCA7Civmlp8gPiBzaGluXCA7CivmlpsgPiBrb2t1XCA7CivmlpggPiBzaG91XCA7CivmloggPiBnYWt1XCA7Civmlb8gPiBreW91XCA7Civmlb0gPiBreW91XCA7CivmlasgPiBzZWt1XCA7CivmlZ4gPiBzaG91XCA7CivmlZIgPiBjaGluXCA7CivmlZAgPiBzaGluXCA7CivmlY4gPiBreW91XCA7CivmlYsgPiBrYWt1XCA7CivmlYcgPiBzYWt1XCA7CivmlLUgPiBib2t1XCA7CivmlLQgPiBob2t1XCA7CivmlKogPiBrYWt1XCA7CivmlIogPiBmdWtpXCA7CivmlIkgPiBrYWt1XCA7Civmk78gPiB0ZWtpXCA7Civmk7QgPiBrYWt1XCA7Civmk7IgPiB0ZWtpXCA7Civmk6IgPiB0ZWtpXCA7Civmk5ggPiBoYWt1XCA7Civmk5cgPiBoZWtpXCA7Civmk5EgPiBzaG91XCA7Civmk4wgPiBzYWt1XCA7Civmk4ogPiBnZWtpXCA7Civmk4kgPiBzYWt1XCA7Civmk4cgPiB0YWt1XCA7CivmkrkgPiBrYWt1XCA7CivmkqwgPiBreW91XCA7CivmkqkgPiByeW91XCA7CivmkqggPiBzaG91XCA7Civmkp8gPiBreW91XCA7CivmkpEgPiBjaG91XCA7CivmkpAgPiBjaG91XCA7Civmkb0gPiBoeW91XCA7Civmka0gPiBzZWtpXCA7CivmkZ0gPiByb2t1XCA7CivmkZggPiB0ZWtpXCA7CivmkZEgPiBrYWt1XCA7CivmkY8gPiBzaG91XCA7CivmkY4gPiBreXV1XCA7CivmkL8gPiBrYWt1XCA7CivmkL4gPiBzYWt1XCA7CivmkLYgPiBzaG91XCA7CivmkKYgPiBqYWt1XCA7CivmkKIgPiBzaGluXCA7CivmkKAgPiBzYWt1XCA7CivmkI8gPiBoYWt1XCA7CivmkIogPiBzaHV1XCA7CivmkIkgPiBrYWt1XCA7Civmj6ogPiBzaHV1XCA7Civmj5UgPiBjaGluXCA7CivmjrUgPiBoYWJhXCA7CivmjqwgPiBraWt1XCA7CivmjqYgPiB0ZWtpXCA7CivmjqQgPiBoeW91XCA7CivmjpogPiByeW91XCA7CivmjpUgPiByeW91XCA7CivmjbcgPiBzaG91XCA7CivmjZQgPiBrYWt1XCA7CivmjZIgPiBzaG91XCA7CivmjYkgPiBzb2t1XCA7CivmjYQgPiBreXV1XCA7CivmjYEgPiBrYWt1XCA7CivmjJ8gPiBreW91XCA7CivmjJYgPiBhdHN1XCA7CivmjJEgPiBjaG91XCA7CivmjIwgPiBrYWt1XCA7CivmjIsgPiBzaGluXCA7Civmi7IgPiBreW91XCA7Civmi7EgPiBreW91XCA7Civmi6sgPiBzaHV1XCA7Civmi6EgPiBrYWt1XCA7Civmi5MgPiB0YWt1XCA7Civmi4YgPiB0YWt1XCA7CivmirsgPiBzaGluXCA7Civmip4gPiB0YWt1XCA7Civmio0gPiBzaG91XCA7CivmioQgPiBzaG91XCA7CivmioIgPiBreW91XCA7CivmiaggPiBzYXRlXCA7CivmiZogPiBjaG91XCA7CivmiZggPiB0YWt1XCA7CivmiZEgPiBob2t1XCA7CivmiZAgPiByb2t1XCA7CivmiYQgPiBzaG91XCA7CivmiLMgPiB0YWt1XCA7CivmiK4gPiByaWt1XCA7CivmiKsgPiB5b2t1XCA7CivmiKIgPiBzaHV1XCA7CivmiJ0gPiB6b2t1XCA7CivmiJUgPiBzaG91XCA7CivmiIkgPiBldHN1XCA7CivmiIggPiBob2tvXCA7Civmh74gPiBzaG91XCA7Civmh7IgPiBjaG91XCA7Civmh58gPiB0c3VpXCA7Civmh48gPiBzaHVuXCA7Civmhq0gPiByeW91XCA7Civmho0gPiBreW91XCA7CivmhoAgPiByeW91XCA7Civmhb8gPiBoeW91XCA7CivmhbwgPiBzZWtpXCA7CivmhbQgPiBzaG91XCA7Civmha8gPiBzaG91XCA7CivmhasgPiBzaG91XCA7CivmhZ4gPiBzaG91XCA7CivmhZ0gPiB0b2t1XCA7CivmhZMgPiBoeW91XCA7CivmhY4gPiBzaGluXCA7CivmhL0gPiBoYWt1XCA7CivmhLwgPiBzaGluXCA7CivmhLYgPiBreW91XCA7CivmhLUgPiBkZWtpXCA7CivmhKggPiBrYWt1XCA7CivmhJwgPiBreW91XCA7CivmhJkgPiBrYWt1XCA7CivmhJYgPiBzaGluXCA7CivmhIEgPiBzaHV1XCA7CivmhIAgPiBzaG91XCA7Civmg7sgPiBzb2t1XCA7Civmg7cgPiBzaHVuXCA7Civmg7UgPiBjaG91XCA7Civmg6ogPiB0b2t1XCA7Civmg50gPiBzaG91XCA7Civmg5YgPiB0ZWtpXCA7Civmg5UgPiB0ZWtpXCA7Civmg4ogPiByeW91XCA7Civmg4YgPiBjaHV1XCA7Civmg4QgPiBkZWtpXCA7CivmgrUgPiBjaG91XCA7CivmgrMgPiB0b2t1XCA7CivmgqYgPiBldHN1XCA7CivmgqUgPiB5b2t1XCA7CivmgqIgPiByeW91XCA7CivmgpogPiBzaG91XCA7CivmgoUgPiBldHN1XCA7CivmgbcgPiBreXV1XCA7CivmgbEgPiBldHN1XCA7CivmgaogPiBrYWt1XCA7CivmgacgPiBqaWt1XCA7CivmgZ8gPiBreW91XCA7CivmgZQgPiBreW91XCA7CivmgYwgPiBjaG91XCA7CivmgYogPiBreW91XCA7CivmgYcgPiBreW91XCA7CivmgLMgPiBreW91XCA7CivmgJcgPiBjaG91XCA7CivmgI0gPiBzYWt1XCA7CivmgIogPiBjaG91XCA7Civlv7ggPiBqaWt1XCA7Civlv7cgPiBreW91XCA7Civlv7EgPiBzaGluXCA7Civlv6ogPiBzaG91XCA7Civlv6EgPiBjaHV1XCA7Civlv6AgPiBjaHV1XCA7Civlv5IgPiB0b2t1XCA7Civlv5EgPiB0b2t1XCA7Civlv4cgPiByb2t1XCA7CivlvrwgPiBreW91XCA7CivlvrggPiBzaG91XCA7CivlvrcgPiB0b2t1XCA7CivlvrUgPiBjaG91XCA7CivlvrEgPiBoeW91XCA7CivlvqIgPiBzaG91XCA7CivlvpwgPiBzaG91XCA7CivlvocgPiBzaHVuXCA7CivlvbggPiBzaG91XCA7CivlvbYgPiBraWh1XCA7CivlvbMgPiB0ZWtpXCA7CivlvbAgPiBzaG91XCA7CivlvaogPiBoeW91XCA7CivlvZ8gPiBrYWt1XCA7CivlvZQgPiByb2t1XCA7CivlvYogPiBreW91XCA7CivlvYUgPiBuYWdpXCA7CivlvLogPiBreW91XCA7CivlvLYgPiBneWF1XCA7CivlvKsgPiBzaGluXCA7CivlvJwgPiBreW91XCA7CivlvJcgPiBkb3J1XCA7CivlvJMgPiB5dW1pXCA7CivlvIwgPiBpdHN1XCA7CivlvIsgPiB5b2t1XCA7Civlu74gPiBreW91XCA7Civlu7ggPiB0ZWtpXCA7Civlu7MgPiBjaG91XCA7Civlu7AgPiBjaG91XCA7Civlu6sgPiByeW91XCA7Civlu6cgPiBzaGF1XCA7Civlu6YgPiBoZWtpXCA7Civlu6AgPiBzaG91XCA7Civlu58gPiBieW91XCA7Civlu5kgPiB5b2t1XCA7Civlu5ggPiByb2t1XCA7Civlu5YgPiByeW91XCA7Civlu4sgPiBzaHV1XCA7Civlur8gPiBieW91XCA7CivlurQgPiBzZWtpXCA7CivlurEgPiBjaG91XCA7CivluqUgPiBreXV1XCA7CivluqAgPiBzaG91XCA7CivluawgPiBjaHV1XCA7CivluaYgPiBiZWtpXCA7CivluZ4gPiBob2t1XCA7CivluZsgPiBzaG91XCA7CivluZkgPiBiYWt1XCA7CivluZggPiBzYWt1XCA7CivluZcgPiBrYWt1XCA7CivluZYgPiBoeW91XCA7CivluZMgPiBzaGluXCA7CivluY4gPiBiZWtpXCA7CivluYIgPiBiZWtpXCA7CivluKQgPiBnZXlvXCA7CivluKIgPiBrYWh1XCA7CivluJsgPiBoYWt1XCA7Civlt6kgPiBreW91XCA7Civlt6QgPiByZWh1XCA7Civlt5AgPiBjaG91XCA7Civltr0gPiBnYWt1XCA7Civltq8gPiBzaGl1XCA7CivltqsgPiBneW91XCA7CivltqogPiBneW91XCA7CivltqggPiBrYWt1XCA7CivltqIgPiBneW91XCA7CivltqAgPiBreW91XCA7CivltpwgPiBzaGluXCA7CivltpsgPiByeW91XCA7CivltpogPiByeW91XCA7CivltpIgPiBzaG91XCA7CivltpAgPiByeXV1XCA7CivltoggPiBzaGF1XCA7CivltoIgPiBzaG91XCA7Civltb4gPiBzaGluXCA7CivltbkgPiBreW91XCA7CivltbcgPiBzaG91XCA7CivltYogPiBzaG91XCA7CivltYAgPiBjaGl1XCA7CivltL8gPiBnYWt1XCA7CivltLcgPiBzaGl1XCA7CivltKggPiBzZWh1XCA7CivltKcgPiBzaHV1XCA7CivltJogPiByeW91XCA7CivltIggPiBzaHV1XCA7Civls70gPiBreW91XCA7Civls7sgPiBzaHVuXCA7Civls7cgPiBzaGluXCA7Civls60gPiBzaG91XCA7Civls6ogPiB5b2t1XCA7Civls6MgPiBneW91XCA7Civls6EgPiBreW91XCA7Civls4sgPiBzaHVuXCA7Civls4kgPiBnYWt1XCA7Civls4ggPiByYWt1XCA7Civls4YgPiBrYWh1XCA7Civls4UgPiBrdXJhXCA7Civls4AgPiBzaHV1XCA7CivlsrwgPiB5dXJpXCA7CivlsrYgPiBoYWt1XCA7CivlsrMgPiB0YWtlXCA7CivlsqsgPiBzaHV1XCA7CivlsqYgPiByeXV1XCA7Civlsp0gPiBzYWt1XCA7CivlspEgPiBzaGluXCA7CivlsowgPiBreXV1XCA7Civlsb4gPiBzaGluXCA7CivlsbYgPiBuYXRhXCA7CivlsbAgPiBnZWtpXCA7CivlsaogPiByeW91XCA7CivlsZAgPiBnZWtpXCA7CivlsYwgPiBjaG91XCA7CivlsL8gPiBueW91XCA7CivlsLAgPiBzaG91XCA7CivlsK0gPiBneW91XCA7CivlsKYgPiByeW91XCA7CivlsKUgPiByeW91XCA7CivlsJ4gPiByeW91XCA7CivlsJkgPiBzaG91XCA7CivlsIcgPiBzaG91XCA7CivlsIUgPiBrb2t1XCA7Civlr7QgPiBzaGluXCA7Civlr68gPiBzaHVuXCA7Civlr64gPiByeW91XCA7Civlr54gPiBiYWt1XCA7Civlr5YgPiBzaGluXCA7Civlr5EgPiBzaGluXCA7Civlr4kgPiBrYWt1XCA7Civlr4UgPiB0b3JhXCA7CivlrrggPiBzaGluXCA7CivlrrcgPiBzaGluXCA7CivlrqsgPiBreXV1XCA7CivlrqggPiB0ZXdhXCA7CivlrpkgPiBjaHV1XCA7CivlrpIgPiBjaHVuXCA7Civlro0gPiBuaWt1XCA7CivlroYgPiBreW91XCA7CivlrZ4gPiBzaGluXCA7CivlrYcgPiBzYXdhXCA7CivlrLwgPiByaXdhXCA7CivlrLggPiBzaGluXCA7CivlrLYgPiBrYWthXCA7CivlrKcgPiBzaGluXCA7CivlrKYgPiBjaGl1XCA7CivlrKUgPiBjaG91XCA7CivlrJkgPiBzaG91XCA7CivlrIUgPiBrdXdhXCA7Civlq78gPiBrYWt1XCA7Civlq54gPiBzaG91XCA7Civlq5wgPiBzaGF1XCA7Civlq5YgPiBoeW91XCA7Civlq4AgPiBzaGluXCA7CivlqrcgPiBqb2t1XCA7CivlqrMgPiBzZWtpXCA7CivlqrAgPiBzaGl1XCA7Civlqp0gPiBzaHV1XCA7CivlqpsgPiBoaW1lXCA7CivlqosgPiBzaHVuXCA7CivlqoMgPiBqeXV1XCA7CivlqbMgPiBrYWt1XCA7CivlqaQgPiBzaHV1XCA7CivlqZUgPiBzaG91XCA7CivlqYogPiBoeW91XCA7CivlqYggPiByeW91XCA7CivlqYUgPiBraWt1XCA7CivlqLwgPiBzaG91XCA7CivlqLcgPiB0c3VpXCA7CivlqJYgPiBzYWt1XCA7CivlqJUgPiBzYWt1XCA7CivlqIAgPiBzaHV1XCA7Civlp7ogPiBzaGluXCA7Civlp6AgPiBzaG91XCA7Civlp5wgPiBreW91XCA7Civlpr0gPiBzaGluXCA7CivlprEgPiBzaG91XCA7Civlpq8gPiBjaHV1XCA7CivlppUgPiBjaHV1XCA7CivlppAgPiBzaG91XCA7Civlpa0gPiBzZWtpXCA7CivlpawgPiBzaG91XCA7CivlpaggPiBzaG91XCA7CivlpZ4gPiBzaHVuXCA7CivlpZ0gPiBjaG91XCA7CivlpIwgPiByeW91XCA7CivlpIsgPiBzaHVuXCA7Civlo78gPiBzaHVuXCA7Civlo7kgPiBpY2hpXCA7Civlo7MgPiBrYWt1XCA7Civlo6IgPiByZWtpXCA7Civlo5cgPiBtYW1hXCA7Civlo5EgPiBnYWt1XCA7Civlo4YgPiBrYWt1XCA7CivlorwgPiBrZWtpXCA7CivlorsgPiBzaG91XCA7CivlorkgPiBtYW1hXCA7CivloqsgPiBzaHVuXCA7CivloqMgPiBoYWt1XCA7CivlopwgPiB0c3VpXCA7CivlopIgPiBzaG91XCA7CivlopEgPiB0ZWtpXCA7Civloo8gPiBzaG91XCA7CivloosgPiBzaGluXCA7CivloocgPiBzaG91XCA7CivlooQgPiBzb2t1XCA7CivlooIgPiBoeW91XCA7Civlob4gPiBqdWt1XCA7CivlobsgPiBiYWt1XCA7CivlobYgPiBrb2t1XCA7CivloaggPiBreW91XCA7CivloaUgPiBrYWt1XCA7CivloZkgPiBrYWt1XCA7CivloZYgPiBzaG91XCA7CivloZMgPiBiZWtpXCA7CivloY0gPiBzaG91XCA7CivloYkgPiBzZWtpXCA7CivloLsgPiBzaGluXCA7CivloLkgPiBzaG91XCA7CivloK8gPiBneW91XCA7CivloK4gPiBnYWt1XCA7CivloJggPiBzaG91XCA7Civln7sgPiBzaHVuXCA7Civln6sgPiBzaG91XCA7Civln5YgPiBnb21pXCA7Civln5AgPiBzaGluXCA7Civln4ggPiBzaHVuXCA7Civln4YgPiBrYWt1XCA7Civln4EgPiBzaGluXCA7CivlnrMgPiBnYWtlXCA7CivlnqwgPiBreW91XCA7CivlnpggPiBodWt1XCA7CivlnbwgPiB0YWt1XCA7CivlnbYgPiBib2t1XCA7CivlnbUgPiBreW91XCA7CivlnbQgPiByaWt1XCA7CivlnacgPiBzZWtpXCA7CivlnL4gPiBneXV1XCA7CivlnLggPiB5YW1hXCA7CivlnLMgPiBzaGl1XCA7CivlnKUgPiByb2t1XCA7CivlnKQgPiBoYWt1XCA7CivlnKAgPiBhdHN1XCA7CivlnIAgPiBrb2t1XCA7Civlm7sgPiBrb2t1XCA7Civlm7YgPiBrb2t1XCA7Civlm68gPiBrb2t1XCA7Civlm6IgPiBzaHV1XCA7Civlm58gPiBzaGluXCA7Civlm5ogPiBzaHV1XCA7CivlmrMgPiBrb2t1XCA7CivlmqsgPiBzaGluXCA7CivlmqkgPiBoYWt1XCA7CivlmqYgPiByZWtpXCA7CivlmqAgPiByeXV1XCA7Civlmp0gPiBrYWt1XCA7CivlmpcgPiBoYWt1XCA7CivlmpAgPiBzaG91XCA7Civlmo0gPiBzaGluXCA7CivlmosgPiBjaHV1XCA7CivlmocgPiBrYWt1XCA7CivlmoQgPiBrYWt1XCA7CivlmoEgPiB0ZWtpXCA7Civlma0gPiBreW91XCA7CivlmakgPiBrYWt1XCA7CivlmaYgPiBldHN1XCA7CivlmZcgPiBib2t1XCA7CivlmY8gPiBreXV1XCA7CivlmY4gPiBpdHN1XCA7CivlmYogPiBpdHN1XCA7CivlmL8gPiBib2t1XCA7CivlmLwgPiBreXV1XCA7CivlmLogPiBreW91XCA7CivlmLggPiBzYXpvXCA7CivlmK8gPiBzaG91XCA7CivlmKggPiBzaG91XCA7CivlmJ4gPiByb2t1XCA7CivlmJogPiB0b2t1XCA7CivlmJYgPiBzYWt1XCA7CivlmJMgPiBrYWt1XCA7CivlmIIgPiBreW91XCA7CivlmIEgPiBzYWh1XCA7CivlmIAgPiBzYWt1XCA7Civll70gPiB1Z2FpXCA7Civll7wgPiBiYWt1XCA7Civll50gPiBrYWt1XCA7Civll5cgPiBhdHN1XCA7Civll5QgPiBzaGluXCA7Civll5EgPiBrYWh1XCA7Civll40gPiBzYWt1XCA7Civll4sgPiBreW91XCA7Civll4YgPiBzaG91XCA7Civll4AgPiBrYWt1XCA7CivllrIgPiB5YWt1XCA7CivllqwgPiBreW91XCA7CivllqggPiByeW91XCA7CivllqIgPiB0ZWh1XCA7Civllp4gPiBzb2t1XCA7CivlloEgPiBneW91XCA7CivlloAgPiBrYWt1XCA7Civllb4gPiBzaHV1XCA7Civlla8gPiBrYWt1XCA7CivllaYgPiByYWh1XCA7CivllaIgPiByeW91XCA7CivllYsgPiBreW91XCA7CivllYcgPiB0ZWtpXCA7CivllYUgPiB0YWt1XCA7CivllYQgPiB0YWt1XCA7CivllYMgPiBzaHV1XCA7CivllL0gPiBzZWtpXCA7CivllLwgPiBzYWh1XCA7CivllLQgPiBreW91XCA7CivllK4gPiBzaHV1XCA7CivllKcgPiBzb2t1XCA7CivllKEgPiByeW91XCA7CivllJogPiBzaGluXCA7CivllJkgPiB0ZWtpXCA7CivllJIgPiBzaHV1XCA7CivllIogPiBreW91XCA7CivllIMgPiBrb2t1XCA7Civlk6ggPiBzaG91XCA7Civlk40gPiBreW91XCA7Civlk4IgPiBzaGluXCA7CivlkrkgPiBhdHN1XCA7CivlkrYgPiBrdXVpXCA7Civlkq8gPiBrYWt1XCA7CivlkqIgPiBnYWt1XCA7CivlkqAgPiBzaHV1XCA7Civlkp8gPiBrYWt1XCA7CivlkosgPiBzYWt1XCA7CivlkbsgPiBzaGluXCA7CivlkbogPiBreW91XCA7CivlkbkgPiBpdHN1XCA7CivlkasgPiB0ZWh1XCA7CivlkY8gPiBzaG91XCA7CivlkY4gPiBzZWtpXCA7CivlkYwgPiBreW91XCA7CivlkYQgPiBrb2t1XCA7CivlkL8gPiBrb2t1XCA7CivlkLUgPiBieW91XCA7CivlkLIgPiBzaGluXCA7CivlkKMgPiBzaGluXCA7CivlkKIgPiBzaGluXCA7CivlkJwgPiBjaHV1XCA7Civlj7wgPiBjaG91XCA7Civlj7sgPiByb2t1XCA7Civlj7YgPiBreW91XCA7Civlj6AgPiBjaG91XCA7Civlj5IgPiBqYWt1XCA7Civlj4kgPiBtYXRhXCA7CivljrAgPiBzaG91XCA7Civljq8gPiByZWtpXCA7CivljqQgPiByZWtpXCA7Civljp0gPiBzYWt1XCA7CivljpIgPiBrYWh1XCA7CivljosgPiBhdHN1XCA7CivljocgPiB0YWt1XCA7Civljb4gPiBnYWt1XCA7Civljb0gPiBzb2t1XCA7CivljbIgPiBzaG91XCA7Civlja0gPiBreW91XCA7CivljaEgPiBzYWh1XCA7CivljZwgPiBib2t1XCA7CivljZkgPiBzaG91XCA7CivljYwgPiBzaHV1XCA7CivljYIgPiBzaGluXCA7CivljL8gPiB0b2t1XCA7CivljLUgPiB0b2t1XCA7CivljKkgPiBreW91XCA7CivljKcgPiBreW91XCA7CivljKMgPiBoYWtvXCA7CivljKEgPiBreW91XCA7CivljJ4gPiBzaG91XCA7CivljJsgPiBreXV1XCA7CivljJMgPiBreW91XCA7CivljJEgPiBreXV1XCA7CivljJAgPiBob2t1XCA7CivljIogPiBraWt1XCA7CivljIkgPiBoeW91XCA7CivljIggPiBreW91XCA7Civli7wgPiBreXV1XCA7Civli7AgPiBreW91XCA7Civli6UgPiBreW91XCA7Civli6MgPiBzZWtpXCA7Civli6AgPiByaWt1XCA7Civli5IgPiByb2t1XCA7Civli4AgPiBrb2t1XCA7CivlirsgPiBreW91XCA7CivlirAgPiBiYWt1XCA7Civliq4gPiBpdHN1XCA7Civliq0gPiBzaG91XCA7CivliqYgPiBreW91XCA7CivlipwgPiBhdHN1XCA7CivlipAgPiBrYWt1XCA7CivliosgPiBzeW91XCA7CivliokgPiByeXV1XCA7CivlioggPiBoZWtpXCA7CivlioUgPiB0YWt1XCA7CivlioEgPiBzeW91XCA7CivlibkgPiByaWt1XCA7Civlia8gPiBmdWt1XCA7CivliasgPiB0YWt1XCA7CivliaggPiBrYWt1XCA7CivliaIgPiB0b2t1XCA7CivliZ0gPiBoYWt1XCA7CivliZQgPiB0ZWtpXCA7CivliZIgPiBzYWt1XCA7CivliYsgPiBrb2t1XCA7CivliLwgPiBreW91XCA7CivliKYgPiBreW91XCA7CivliJ8gPiBjaG91XCA7CivliJggPiByeXV1XCA7Civlh7ggPiBkZWtvXCA7Civlh7YgPiBreW91XCA7Civlh7QgPiBoeW91XCA7Civlh6ogPiBuYWdpXCA7Civlh6cgPiB0YWtvXCA7Civlh5kgPiB0YWt1XCA7Civlh4sgPiBjaG91XCA7Civlh4kgPiByeW91XCA7Civlh4cgPiBzaG91XCA7Civlhr4gPiBreW91XCA7CivlhrwgPiBzaG91XCA7CivlhrUgPiBreW91XCA7CivlhrIgPiBjaHV1XCA7CivlhrAgPiBoeW91XCA7CivlhqsgPiBoeW91XCA7CivlhqogPiBiZWtpXCA7CivlhqIgPiBjaG91XCA7CivlhpYgPiBiZWtpXCA7CivlhpEgPiBjaHV1XCA7CivlhbggPiBub3JpXCA7CivlhaIgPiBreW91XCA7CivlhZ8gPiBzaGluXCA7CivlhZMgPiBzaGluXCA7CivlhY8gPiBjaG91XCA7CivlhYsgPiBrb2t1XCA7CivlhYcgPiBreW91XCA7CivlhYYgPiBjaG91XCA7CivlhYIgPiBzaGluXCA7CivlhLUgPiBzaHV1XCA7CivlhLQgPiBzaG91XCA7CivlhK4gPiByZWtpXCA7CivlhK0gPiBzaGluXCA7CivlhKwgPiBzaGluXCA7CivlhKYgPiBoeW91XCA7CivlhKAgPiByeW91XCA7CivlhJQgPiBjaHV1XCA7CivlhIEgPiBzaHVuXCA7Civlg70gPiBzaHV1XCA7Civlg7sgPiBoZWtpXCA7Civlg7ogPiBzaG91XCA7Civlg7UgPiBreW91XCA7Civlg7AgPiBob2t1XCA7Civlg6UgPiBneW91XCA7Civlg5ggPiBzaG91XCA7Civlg4cgPiByaWt1XCA7Civlgr0gPiBzaG91XCA7CivlgrkgPiBreW91XCA7CivlgrYgPiBzb2t1XCA7CivlgrEgPiBzaG91XCA7CivlgpUgPiBrYWt1XCA7CivlgbcgPiBjaHV1XCA7CivlgbEgPiBzaHVuXCA7Civlga4gPiBzaHV1XCA7CivlgYYgPiBzaHVuXCA7CivlgYUgPiBzaG91XCA7CivlgYEgPiBzaG91XCA7CivlgLAgPiByeW91XCA7CivlgK8gPiBzaG91XCA7CivlgKwgPiB0YWt1XCA7CivlgKIgPiBzaG91XCA7CivlgKEgPiBzaG91XCA7CivlgJwgPiB0ZWtpXCA7CivlgJggPiBzaG91XCA7CivlgIYgPiByeW91XCA7CivlgIMgPiBreXV1XCA7CivlgIAgPiBjaG91XCA7Civkv7UgPiBoeW91XCA7Civkv6MgPiBtYXRhXCA7Civkv6IgPiBzaHV1XCA7Civkv6AgPiBreW91XCA7Civkv40gPiByeW91XCA7Civkv4sgPiBjaHV1XCA7Civkv4ggPiBrb2t1XCA7Civkv4cgPiBreWF1XCA7Civkv4UgPiBreXV1XCA7CivkvrogPiBzaGluXCA7CivkvrYgPiB0b21vXCA7CivkvrQgPiBjaHV1XCA7CivkvrIgPiBzaGluXCA7CivkvqAgPiBreWFuXCA7CivkvpwgPiBjaHV1XCA7CivkvpogPiBzaHVuXCA7CivkvoIgPiB0YWt1XCA7CivkvoEgPiBzaGluXCA7Civkvb4gPiBpdHN1XCA7CivkvbsgPiBjaG91XCA7CivkvbAgPiBoYWt1XCA7CivkvawgPiByeW91XCA7CivkvasgPiBrYWt1XCA7CivkvZcgPiB3YWJpXCA7CivkvZQgPiBjaGluXCA7CivkvYsgPiBzaG91XCA7CivkvLcgPiBjaHV1XCA7CivkvKkgPiBzaGluXCA7CivkvJQgPiBzaGluXCA7CivkvIsgPiBreXV1XCA7CivkvIggPiBzaGluXCA7CivkvIQgPiBjaG91XCA7CivkvIAgPiBzaG91XCA7Civku7wgPiBreW91XCA7Civku6IgPiBoYWt1XCA7Civku5cgPiB0c3VlXCA7Civku4kgPiBzaG91XCA7Civku4IgPiByb2t1XCA7CivkurwgPiBzaHV1XCA7CivkurMgPiBoYWt1XCA7Civkuq8gPiBreW91XCA7Civkuq4gPiByeW91XCA7CivkuqggPiBreW91XCA7CivkuoAgPiBrYW1lXCA7CivkuaMgPiBreXV1XCA7CivkuZ8gPiBuYXJpXCA7CivkuYcgPiB0YWt1XCA7CivkuYYgPiBreXV1XCA7CivkuLUgPiBzYWt1XCA7CivkuK4gPiBrZWtpXCA7CivkuKkgPiBreXV1XCA7CivkuKQgPiByeW91XCA7CivkuKIgPiBjaHV1XCA7CivkuKAgPiBreXV1XCA7CivkuJ8gPiBjaHV1XCA7CivkuJ4gPiBzaG91XCA7CivkuJIgPiBjaHV1XCA7CivkuJEgPiB1c2hpXCA7CivkuIQgPiBzaG91XCA7CivjgIcgPiBtYXJ1XCA7Civov7cgPiBtZWlcIDsKK+W/tSA+IG5lblwgOwor55+tID4gdGFuXCA7Civlv6sgPiBrYWlcIDsKK+i/pSA+IGtlaVwgOwor55+lID4gY2hpXCA7Civnn5wgPiBraW5cIDsKK+W/mSA+IGJvdVwgOwor5b+YID4gYm91XCA7Civov5QgPiBoZW5cIDsKK+i/kSA+IGtpblwgOwor6L+OID4gZ2VpXCA7Civlv40gPiBuaW5cIDsKK+i/hSA+IGppblwgOwor6L6/ID4gdGVuXCA7CivnnrsgPiBzZW5cIDsKK+i+uiA+IGhlblwgOwor6L6yID4gbm91XCA7Civovq8gPiBiZW5cIDsKK+W+qiA+IGp1blwgOwor556gID4gZG91XCA7Civlvp4gPiBqdXVcIDsKK+W+kyA+IGp1dVwgOwor5b6KID4ga2FpXCA7CivlvoUgPiB0YWlcIDsKK+W+hCA+IGtlaVwgOwor5b2pID4gc2FpXCA7CivnnaggPiBnZWlcIDsKK+edoSA+IHN1aVwgOwor6L2fID4gZ291XCA7CivlvZMgPiB0b3VcIDsKK+i9iSA+IHRlblwgOwor5b2IID4gZGFuXCA7CivnnKkgPiBnZW5cIDsKK+ecoCA+IG1pblwgOwor5byfID4gdGVpXCA7CivlvJsgPiBzaGlcIDsKK+W8mCA+IGtvdVwgOwor6LyVID4ga2VpXCA7CivnnIwgPiBrZW5cIDsKK+eciyA+IGthblwgOwor6LyJID4gc2FpXCA7CivlvIQgPiByb3VcIDsKK+ecgSA+IHNlaVwgOwor5byBID4gYmVuXCA7Civou70gPiBrZWlcIDsKK+W7uyA+IGthaVwgOwor5bu6ID4ga2VuXCA7Civnm7ggPiBzb3VcIDsKK+ebpSA+IGthblwgOwor55ujID4ga2FuXCA7Civou6IgPiB0ZW5cIDsKK+W7oyA+IGtvdVwgOwor5buiID4gaGFpXCA7Civnm6EgPiBqaW5cIDsKK+ebnCA+IHRvdVwgOwor55ubID4gc2VpXCA7Civnm5cgPiB0b3VcIDsKK+i7jSA+IGd1blwgOwor5buKID4gcm91XCA7Civlu4kgPiByZW5cIDsKK+ebhiA+IGJvblwgOwor55uDID4gaGFpXCA7Civlu4MgPiBoYWlcIDsKK+W6uCA+IHlvdVwgOwor5bq3ID4ga291XCA7CivnmrAgPiBob3VcIDsKK+W6miA+IGtvdVwgOwor5bqWID4gaG91XCA7CivoupMgPiBjaGlcIDsKK+i6hyA+IGNob1wgOwor55qHID4ga291XCA7CivluoQgPiBzb3VcIDsKK+W6gyA+IGtvdVwgOwor5bm+ID4gaWt1XCA7Civlub0gPiB5dXVcIDsKK+W5vCA+IHlvdVwgOwor55m7ID4gdG91XCA7CivlubIgPiBrYW5cIDsKK+eZjCA+IGdhblwgOwor55mHID4ga2FuXCA7CivluL0gPiBib3VcIDsKK+W4tiA+IHRhaVwgOwor5bivID4gdGFpXCA7CivluKsgPiBzaGlcIDsKK+i4nyA+IGNoaVwgOwor6LiPID4gdG91XCA7CivouIogPiB5b3VcIDsKK+W4giA+IHNoaVwgOwor5be+ID4ga2luXCA7Civnl7QgPiBjaGlcIDsKK+eXqSA+IHNvdVwgOwor5benID4ga291XCA7Civlt6UgPiBrb3VcIDsKK+i3oSA+IGF0b1wgOwor6LefID4ga29uXCA7Civlt6EgPiBqdW5cIDsKK+i3nSA+IGt5b1wgOwor55eVID4ga29uXCA7Civnl5IgPiB5b3VcIDsKK+W2riA+IGtlblwgOwor55aKID4gam91XCA7CivnlbYgPiB0b3VcIDsKK+i1sCA+IHNvdVwgOwor55WqID4gYmFuXCA7CivotacgPiB0YW5cIDsKK+eVpiA+IGF6ZVwgOwor55WUID4gaGFuXCA7CivnlYwgPiBrYWlcIDsKK+W1jCA+IGthblwgOwor55SyID4ga291XCA7CivltKkgPiBob3VcIDsKK+eUqCA+IHlvdVwgOwor55SjID4gc2FuXCA7CivnlJggPiBrYW5cIDsKK+W0lyA+IGtvdVwgOwor6LSFID4gemVpXCA7Civos70gPiBzYWlcIDsKK+izvCA+IGtvdVwgOwor6LO6ID4gdGFuXCA7Civnk7YgPiBiaW5cIDsKK+izoyA+IGJhaVwgOwor6LOiID4ga2VuXCA7Civnk5wgPiB1cmlcIDsKK+izhyA+IHNoaVwgOwor6LK8ID4gdGVuXCA7CivosrggPiB0YWlcIDsKK+iytyA+IGJhaVwgOwor6LKwID4gc2VpXCA7Civosq8gPiBjaG9cIDsKK+WyqSA+IGl3YVwgOwor6LKnID4gYmluXCA7CivosqEgPiB6YWlcIDsKK+WyoSA+IGtvdVwgOwor6LKeID4gdGVpXCA7Civosp0gPiBrYWlcIDsKK+ixqiA+IGdvdVwgOwor5bGkID4gc291XCA7CivosaEgPiB6b3VcIDsKK+WxlSA+IHRlblwgOwor6LGQID4gaG91XCA7CivlsY8gPiBoZWlcIDsKK+ixiiA+IGhvdVwgOwor5bGGID4ga2FpXCA7CivlsYUgPiBreW9cIDsKK+WwvSA+IGppblwgOwor55CyID4gaGFpXCA7CivlsKQgPiB5dXVcIDsKK+WwoCA+IHNlblwgOwor5bCaID4gbmFvXCA7CivlsJYgPiBzZW5cIDsKK+WwjiA+IGRvdVwgOwor5bCNID4gdGFpXCA7CivlsIsgPiBqaW5cIDsKK+WwiSA+IGpvdVwgOwor5bCIID4gc2VuXCA7CivlsIQgPiBzaGFcIDsKK+WwgSA+IGZ1dVwgOwor54++ID4gZ2VuXCA7Civlr7ggPiBzdW5cIDsKK+WvqyA+IHNoYVwgOwor54+qID4ga2VpXCA7Civlr5IgPiBrYW5cIDsKK+WuuSA+IHlvdVwgOwor5a61ID4geW9pXCA7CivlrrMgPiBnYWlcIDsKK+WusCA+IHNhaVwgOwor546pID4gZ2FuXCA7CivlrqMgPiBzZW5cIDsKK+WumyA+IGF0ZVwgOwor5a6aID4gdGVpXCA7CivlrpggPiBrYW5cIDsKK+WujCA+IGthblwgOwor6K6KID4gaGVuXCA7CivoroMgPiBzYW5cIDsKK+eOhCA+IGdlblwgOwor5427ID4ga2VuXCA7CivnjbggPiBqdXVcIDsKK+itsiA+IGpvdVwgOwor6K2rID4gc2VuXCA7CivoraYgPiBrZWlcIDsKK+WtmCA+IHNvblwgOwor5a2UID4ga291XCA7CivorLkgPiBraW5cIDsKK+eMtiA+IHl1dVwgOwor5ayqID4gaGluXCA7CivlrKIgPiBqb3VcIDsKK+isnSA+IHNoYVwgOwor54ycID4gc2FpXCA7CivorJsgPiBrb3VcIDsKK+ismSA+IGtlblwgOwor54u9ID4gaGFpXCA7Civoq7ggPiBzaG9cIDsKK+irpiA+IHRlaVwgOwor54uhID4ga291XCA7Civni5kgPiBzaG9cIDsKK+eLlyA+IGtvdVwgOwor6KuWID4gcm9uXCA7Civoq4sgPiBzZWlcIDsKK+WrjCA+IGl5YVwgOwor6KuHID4gZGFuXCA7Civni4MgPiBqdXVcIDsKK+eKtiA+IGpvdVwgOwor54qvID4gaGFuXCA7CivniqwgPiBpbnVcIDsKK+iqmCA+IHl1dVwgOwor6KqTID4gc2VpXCA7CivlqpIgPiBiYWlcIDsKK+iqjSA+IG5pblwgOwor6KqMID4gc2hpXCA7CivoqoQgPiBydWlcIDsKK+ipsiA+IGdhaVwgOwor54myID4gc2VpXCA7Civoqa4gPiBzZW5cIDsKK+ipqSA+IHNoaVwgOwor6KmmID4gc2hpXCA7CivniaIgPiByb3VcIDsKK+eJoSA+IG9zdVwgOwor6KmeID4gc2hpXCA7CivlqZogPiBrb25cIDsKK+eJjCA+IHBhaVwgOwor54mIID4gaGFuXCA7CivniYcgPiBoZW5cIDsKK+eJgCA+IHNvdVwgOwor54i9ID4gc291XCA7CivoqLEgPiBreW9cIDsKK+eIrSA+IHNvdVwgOwor6KiqID4gaG91XCA7CivniJsgPiByYW5cIDsKK+WokSA+IHNoYVwgOwor6KiKID4gamluXCA7CivoqIggPiBrZWlcIDsKK+iogCA+IGdlblwgOwor54e7ID4ga3VuXCA7Civop6MgPiBrYWlcIDsKK+WnkyA+IHNlaVwgOwor5aeLID4gc2hpXCA7Civlp4kgPiBhbmVcIDsKK+eHiCA+IHRvdVwgOwor54eDID4gbmVuXCA7Civop4AgPiBrYW5cIDsKK+imvSA+IHJhblwgOwor6KazID4ga2FuXCA7CivopqogPiBveWFcIDsKK+impyA+IHJhblwgOwor6KaXID4gc2hpXCA7CivoppYgPiBzaGlcIDsKK+WmliA+IHlvdVwgOwor5aaKID4gbmluXCA7CivlpoQgPiBib3VcIDsKK+eFvSA+IHNlblwgOwor5aW9ID4ga291XCA7Civnha4gPiBzaGFcIDsKK+WlriA+IGZ1blwgOwor54WpID4gaGFuXCA7CivopaQgPiByYW5cIDsKK+WlpSA+IG9rdVwgOwor5aWiID4gc2hhXCA7CivopZ8gPiBlcmlcIDsKK+WllyA+IHRvdVwgOwor5aWPID4gc291XCA7CivnhY4gPiBzZW5cIDsKK+WliSA+IGhvdVwgOwor5aS+ID4ga291XCA7CivopLggPiByb3VcIDsKK+eEtiA+IHplblwgOwor6KSqID4gdGFpXCA7CivlpKkgPiB0ZW5cIDsKK+WkpyA+IHRhaVwgOwor54SaID4gZnVuXCA7CivlpJUgPiB5dXVcIDsKK+ikkiA+IGhvdVwgOwor5aSJID4gaGVuXCA7Civoo70gPiBzZWlcIDsKK+WjuyA+IHNlaVwgOwor5aOyID4gYmFpXCA7Civlo7AgPiBrb2VcIDsKK+WjryA+IHNvdVwgOwor5aOrID4gc2hpXCA7Civoo50gPiBzb3VcIDsKK+WjniA+IGthaVwgOwor6KOVID4geXV1XCA7Civoo48gPiB1cmFcIDsKK+WjiiA+IGthaVwgOwor5aOHID4gZGFuXCA7Civoo4UgPiBzb3VcIDsKK+ijgSA+IHNhaVwgOwor54K5ID4gdGVuXCA7CivooqIgPiBoYW5cIDsKK+WilyA+IHpvdVwgOwor54KKID4gc3VpXCA7CivoooIgPiBiZWlcIDsKK+eBvSA+IHNhaVwgOwor54GwID4gaGFpXCA7CivooaEgPiBrb3VcIDsKK+WhlCA+IHRvdVwgOwor54GMID4ga2FuXCA7CivooYAgPiBjaGlcIDsKK+WhgCA+IGhlaVwgOwor6KC2ID4gc2FuXCA7CivloLEgPiBob3VcIDsKK+WgqiA+IGthblwgOwor54CVID4gaGluXCA7CivloIYgPiB0YWlcIDsKK+WghSA+IGtlblwgOwor5aCCID4gZG91XCA7Civon7sgPiBhcmlcIDsKK+a/uiA+IHNlblwgOwor5r+xID4gaGluXCA7Civmv58gPiBzYWlcIDsKK+a/mCA+IG5laVwgOwor5Z+LID4gbWFpXCA7Civmv4MgPiBub3VcIDsKK+a+uSA+IHRhblwgOwor6J6iID4ga2VpXCA7CivlnqIgPiBha2FcIDsKK+m+lSA+IGdhblwgOwor6J6NID4geXV1XCA7CivlnoIgPiBzdWlcIDsKK+idvyA+IGhhZVwgOwor5r2wID4ga2FpXCA7CivlnaYgPiB0YW5cIDsKK+m9oSA+IHJlaVwgOwor5r2cID4gc2VuXCA7CivonZkgPiBoZW5cIDsKK+m9jiA+IHNlaVwgOwor6b2KID4gc2VpXCA7CivonYsgPiByb3VcIDsKK+WdiiA+IGJvdVwgOwor5Z2HID4ga2luXCA7CivonLsgPiBzZWlcIDsKK+a8uCA+IHplblwgOwor5ZywID4gY2hpXCA7CivmvKwgPiBzaGlcIDsKK+WcqCA+IHphaVwgOwor5ryiID4ga2FuXCA7CivonJggPiBjaGlcIDsKK+WcmCA+IGRhblwgOwor5ryVID4gc291XCA7CivmvI8gPiByb3VcIDsKK+WcjyA+IGtlblwgOwor5ru/ID4gbWFuXCA7Civlm7AgPiBrb25cIDsKK+a7ryA+IHRhaVwgOwor6buoID4gdG91XCA7Civlm6MgPiBkYW5cIDsKK+m7niA+IHRlblwgOwor5ZueID4ga2FpXCA7Civom5sgPiBzaHVcIDsKK+WbmyA+IHlvblwgOwor6JuJID4gcmVpXCA7Civom4YgPiBzaG9cIDsKK+m6uyA+IGFzYVwgOwor5rq2ID4geW91XCA7CivlmrQgPiBnZW5cIDsKK+a6qiA+IGtlaVwgOwor6bqXID4gcmVpXCA7CivmupYgPiBqdW5cIDsKK+a6gCA+IG1hblwgOwor5rm+ID4gd2FuXCA7CivpubggPiBrZW5cIDsKK+WZqiA+IHNvdVwgOwor5rmnID4geXV1XCA7CivomZ8gPiBnb3VcIDsKK+iZnCA+IHJ5b1wgOwor6JmaID4ga3lvXCA7CivlmZsgPiBnb3VcIDsKK+iZlSA+IHNob1wgOwor5ZmMID4gc291XCA7CivlmLIgPiB0b3VcIDsKK+iYrSA+IHJhblwgOwor5rimID4gdXp1XCA7CivmuKAgPiBreW9cIDsKK+a4myA+IGdlblwgOwor5ZiYID4gdXNvXCA7CivmuIggPiBzYWlcIDsKK+WYhiA+IHRhblwgOwor5riFID4gc2VpXCA7CivomIIgPiB6dWlcIDsKK+a3uyA+IHRlblwgOwor5re6ID4gc2VuXCA7Civmt7cgPiBrb25cIDsKK+iXqSA+IGhhblwgOwor5ZejID4gc2hpXCA7Civmt6EgPiB0YW5cIDsKK+iXnSA+IGdlaVwgOwor5ZecID4gc2hpXCA7Civmt4sgPiByaW5cIDsKK+iXiSA+IHNoYVwgOwor6beEID4ga2VpXCA7CivmtrIgPiBla2lcIDsKK+iWryA+IHNob1wgOwor5ZawID4ga3V1XCA7Civmtq8gPiBnYWlcIDsKK+iWriA+IHNvdVwgOwor5ZauID4gdGFuXCA7CivolqYgPiBzZW5cIDsKK+WWpyA+IGtlblwgOwor5ZaaID4ga2FuXCA7CivllpggPiB6ZW5cIDsKK+a2jCA+IHl1dVwgOwor5ZaEID4gemVuXCA7CivllbwgPiB0ZWlcIDsKK+a1tyA+IHVtaVwgOwor5rWqID4gcm91XCA7CivolakgPiB0b3VcIDsKK+WVoyA+IGthblwgOwor5ZWPID4gbW9uXCA7CivmtYUgPiBzZW5cIDsKK+a1hCA+IGpvdVwgOwor6JS9ID4gaGVpXCA7CivllLggPiB0ZW5cIDsKK+iUtSA+IHNvdVwgOwor5rSXID4gc2VuXCA7CivmtJIgPiBzZWlcIDsKK+WUkCA+IHRvdVwgOwor5rSLID4geW91XCA7Civps7QgPiBtZWlcIDsKK+azoSA+IGF3YVwgOwor5rOVID4gaG91XCA7Civlk4EgPiBoaW5cIDsKK+iSvCA+IHNvdVwgOwor6JK4ID4gam91XCA7CivlkqwgPiBrb3VcIDsKK+iSnyA+IGtvblwgOwor6JKZID4gbW91XCA7CivmspYgPiBva2lcIDsKK+iSlCA+IHNoaVwgOwor5rKMID4gdG9uXCA7Civlkb0gPiBtZWlcIDsKK+WRsyA+IGFqaVwgOwor6JGsID4gc291XCA7CivokaMgPiB0b3VcIDsKK+axoCA+IGlrZVwgOwor5ZGfID4gZ2VuXCA7CivmsZcgPiBhc2VcIDsKK+WRkSA+IGRvblwgOwor5ZGGID4gYm91XCA7CivlkYIgPiByeW9cIDsKK+mwuiA+IGFqaVwgOwor5ZC7ID4gZnVuXCA7CivlkLkgPiBzdWlcIDsKK+iQrCA+IG1hblwgOwor5ZCrID4gZ2FuXCA7CivlkJ0gPiByaW5cIDsKK+WQmyA+IGt1blwgOwor5ZCRID4ga291XCA7CivmsI8gPiB1amlcIDsKK+iQjCA+IGhvdVwgOwor5ZCMID4gZG91XCA7CivmsIggPiBzZW5cIDsKK+WQiCA+IGdvdVwgOwor6JCEID4gdG91XCA7Civlj7ggPiBzaGlcIDsKK+WPsiA+IHNoaVwgOwor5Y+wID4gZGFpXCA7Civoj6sgPiBraW5cIDsKK+avqyA+IGtvdVwgOwor6I+pID4gaGFpXCA7Civlj6kgPiBrb3VcIDsKK+WPpSA+IGtvdVwgOwor5q+OID4gbWFpXCA7Civlj40gPiBoYW5cIDsKK+WPgyA+IHNhblwgOwor5Y+CID4gc2FuXCA7CivljrsgPiBreW9cIDsKK+autSA+IGRhblwgOwor5Y6zID4gZ2VuXCA7Civprq4gPiBzZW5cIDsKK+WOrSA+IGl5YVwgOwor5Y6aID4ga291XCA7CivmrpggPiB6YW5cIDsKK+WOmCA+IHJpblwgOwor5q6LID4gemFuXCA7CivmroogPiBzaHVcIDsKK+auhiA+IHRhaVwgOwor5Y2/ID4ga2VpXCA7CivmrbsgPiBzaGlcIDsKK+WNtyA+IGthblwgOwor5q2zID4gc2FpXCA7CivmraQgPiBzaGlcIDsKK+atoyA+IHNlaVwgOwor5q2iID4gc2hpXCA7CivmraEgPiBrYW5cIDsKK+WNoCA+IHNlblwgOwor5q2UID4ga3lvXCA7CivojZIgPiBrb3VcIDsKK+atjiA+IHRhblwgOwor5q2MID4gdXRhXCA7CivljYogPiBoYW5cIDsKK+WNiCA+IHVtYVwgOwor5Y2DID4gY2hpXCA7CivljYEgPiB0b29cIDsKK+msvCA+IG9uaVwgOwor6Iy2ID4gY2hhXCA7CivojKsgPiBib3VcIDsKK+msoiA+IGhpblwgOwor5YyaID4gaG91XCA7CivmrIogPiBrZW5cIDsKK+WMhiA+IHNvdVwgOwor5qyFID4ga3lvXCA7CivljIUgPiBob3VcIDsKK+WLviA+IGtvdVwgOwor5Yu4ID4ga2FuXCA7Civli6cgPiBrYW5cIDsKK+WLpCA+IGdvblwgOwor5YueID4gcm91XCA7Civoi5cgPiBuYWVcIDsKK+WLmCA+IGthblwgOwor6auUID4gdGVpXCA7Civli5UgPiBkb3VcIDsKK+WLiSA+IGJlblwgOwor5YuHID4geXV1XCA7Civpq4QgPiB6dWlcIDsKK+mquCA+IGthaVwgOwor6Iq4ID4gZ2VpXCA7CivlirkgPiBrb3VcIDsKK+iKsyA+IGhvdVwgOwor5Yq0ID4gcm91XCA7CivlirEgPiByZWlcIDsKK+WKqyA+IGdvdVwgOwor5qqiID4ga2VuXCA7Civlip8gPiBrb3VcIDsKK+WKjSA+IGtlblwgOwor5qqAID4gdGFuXCA7CivoibggPiBzb3VcIDsKK+WJtSA+IHNvdVwgOwor6ImyID4gaXJvXCA7CivpqaIgPiByeW9cIDsKK+WJmyA+IGdvdVwgOwor6amXID4ga2VuXCA7CivliZYgPiBib3VcIDsKK+WJjSA+IG1hZVwgOwor5YmDID4gdGVpXCA7CivpqLcgPiBzb3VcIDsKK+WItiA+IHNlaVwgOwor5YiwID4gdG91XCA7CivoiKwgPiBoYW5cIDsKK+iIqiA+IGtvdVwgOwor5qipID4ga2VuXCA7CivliKQgPiBiYW5cIDsKK+aooyA+IHlvdVwgOwor6aiZID4gaGVuXCA7CivpqJMgPiBrZW5cIDsKK+mokiA+IHNvdVwgOwor5qiTID4gcm91XCA7CivliJEgPiBrZWlcIDsKK+WIiiA+IGthblwgOwor6IiIID4ga291XCA7CivliIYgPiBidW5cIDsKK+WIgCA+IHRvdVwgOwor5qe9ID4gc291XCA7Civoh7wgPiB1c3VcIDsKK+WHvSA+IGthblwgOwor6Ie6ID4gdGFpXCA7Civoh7QgPiBjaGlcIDsKK+iHsyA+IHNoaVwgOwor6IeqID4gc2hpXCA7Civoh6ggPiByaW5cIDsKK+WHpiA+IHNob1wgOwor5YehID4gYm9uXCA7Civoh58gPiB6b3VcIDsKK+mnmyA+IHNoaVwgOwor5qeYID4geW91XCA7Civlh40gPiB0b3VcIDsKK+aniyA+IGtvdVwgOwor6aeFID4gZWtpXCA7Civlh4QgPiBzZWlcIDsKK+iGvyA+IHVtaVwgOwor6Ia9ID4gdGFuXCA7CivmprsgPiB0b3VcIDsKK+WGtyA+IHJlaVwgOwor6aazID4gY2hpXCA7CivohrMgPiB6ZW5cIDsKK+mmrSA+IGd5b1wgOwor6aasID4gdW1hXCA7CivlhpkgPiBzaGFcIDsKK+WGlyA+IGpvdVwgOwor5YaSID4gYm91XCA7Civlho0gPiBzYWlcIDsKK+amgiA+IGdhaVwgOwor5qW8ID4gcm91XCA7CivlhbwgPiBrZW5cIDsKK+iFriA+IHNhaVwgOwor5YWsID4ga291XCA7CivlhaggPiB6ZW5cIDsKK+iFpiA+IG5vdVwgOwor5YWaID4gdG91XCA7CivohZUgPiB1ZGVcIDsKK+mlkiA+IGpvdVwgOwor5qWTID4gZnV1XCA7CivlhY0gPiBtZW5cIDsKK+iFiyA+IGVraVwgOwor6aWFID4gbWFuXCA7CivlhYggPiBzZW5cIDsKK+WFhSA+IGp1dVwgOwor5YWEID4gYW5pXCA7CivohLMgPiBub3VcIDsKK+WEqiA+IHl1dVwgOwor5qScID4ga2VuXCA7CivppJAgPiBzYW5cIDsKK+mkiiA+IHlvdVwgOwor5YSEID4gb2t1XCA7CivmpIAgPiB3YW5cIDsKK+mjvSA+IGhvdVwgOwor6aO8ID4gc2hpXCA7Civmo7ogPiBrYW5cIDsKK+mjtCA+IGFtZVwgOwor6IO0ID4gZG91XCA7Civmo7IgPiBzZWlcIDsKK+WDpyA+IHNvdVwgOwor6IOeID4gaG91XCA7Civpo5wgPiBob25cIDsKK+ajkiA+IGJvdVwgOwor6IOOID4gdGFpXCA7Civlg48gPiB6b3VcIDsKK+iDjCA+IHNlaVwgOwor5YONID4gZG91XCA7Civog4YgPiB0YW5cIDsKK+WDhSA+IGtpblwgOwor5YK+ID4ga2VpXCA7CivogrIgPiBpa3VcIDsKK+WCsyA+IGRlblwgOwor5qKwID4ga2FpXCA7Civogq8gPiBrb3VcIDsKK+airyA+IHRlaVwgOwor5YKsID4gc2FpXCA7CivpoqggPiBmdXVcIDsKK+iCpSA+IGtvZVwgOwor5qKdID4gam91XCA7CivogoYgPiBzaGlcIDsKK+aihSA+IHVtZVwgOwor5qG2ID4gb2tlXCA7CivlgbYgPiBndXVcIDsKK+WBtSA+IHRlaVwgOwor6IGyID4gc2VpXCA7Civpoa8gPiBrZW5cIDsKK+mhqyA+IHNlblwgOwor5qGnID4ga2FpXCA7CivlgaUgPiBrZW5cIDsKK+mhniA+IHJ1aVwgOwor5qGfID4gc2FuXCA7CivogZ4gPiBidW5cIDsKK+mhmyA+IHRlblwgOwor5YGcID4gdGVpXCA7CivpoZggPiBnYW5cIDsKK+iBliA+IHNlaVwgOwor6aGVID4ga2VuXCA7CivpoZQgPiBrYW9cIDsKK+mhjyA+IGdhblwgOwor6aGOID4gYWdvXCA7CivpoYwgPiBkYWlcIDsKK+ahgiA+IGtlaVwgOwor6IC9ID4gdGFuXCA7CivpoLwgPiByYWlcIDsKK+mguyA+IGhpblwgOwor6IC7ID4gY2hpXCA7CivlgLkgPiBrZW5cIDsKK+mgrSA+IHRvdVwgOwor5YCmID4ga2VuXCA7CivmoKEgPiBrb3VcIDsKK+mgmiA+IGtlaVwgOwor6ICVID4ga291XCA7CivpoJMgPiB0b25cIDsKK+agkyA+IHNlblwgOwor5YCSID4gdG91XCA7CivogJAgPiB0YWlcIDsKK+WAiSA+IHNvdVwgOwor6aCGID4ganVuXCA7CivpoIUgPiBrb3VcIDsKK+iAgyA+IGtvdVwgOwor6ICBID4gcm91XCA7Civnv7sgPiBob25cIDsKK+S/uiA+IG9yZVwgOwor5p+0ID4gc2FpXCA7Civmn5MgPiBzZW5cIDsKK+afkCA+IGJvdVwgOwor5765ID4ga291XCA7Civnvq4gPiBrb3VcIDsKK+S+ryA+IGtvdVwgOwor5L6tID4gamluXCA7CivnvqggPiBzZW5cIDsKK+e+pCA+IGd1blwgOwor5p6dID4gZWRhXCA7CivmnpogPiBtYWlcIDsKK+S+iyA+IHJlaVwgOwor5L6GID4gcmFpXCA7Civmnb8gPiBpdGFcIDsKK+S9vyA+IHNoaVwgOwor5p21ID4gc2hvXCA7CivkvbUgPiBoZWlcIDsKK+e9riA+IGNoaVwgOwor5p2lID4gcmFpXCA7CivpnaIgPiBtZW5cIDsKK+adoSA+IGpvdVwgOwor6Z2cID4gc2VpXCA7CivpnZkgPiBzZWlcIDsKK+mdliA+IHNlaVwgOwor5L2VID4gbmFuXCA7CivkvZMgPiB0ZWlcIDsKK+e9kCA+IGthblwgOwor5p2QID4gemFpXCA7CivnvY4gPiB0YW5cIDsKK+S9jyA+IGp1dVwgOwor5L2OID4gdGVpXCA7CivpnYggPiByZWlcIDsKK+S9hyA+IGNob1wgOwor5L2DID4gdGVuXCA7CivkvLogPiBzaGlcIDsKK+acsSA+IGFrYVwgOwor5pynID4gcm91XCA7CivmnKYgPiBib3VcIDsKK+acnSA+IGFzYVwgOwor5LydID4gdGVuXCA7CivmnJsgPiBib3VcIDsKK+S8miA+IGthaVwgOwor5pyXID4gcm91XCA7CivpnIogPiByZWlcIDsKK+aciyA+IGhvdVwgOwor5pyJID4geXV1XCA7CivmnIMgPiBrYWlcIDsKK+acgCA+IHNhaVwgOwor5pu/ID4gdGFpXCA7Civmm74gPiBzb3VcIDsKK+mbuyA+IGRlblwgOwor5pu8ID4gYmFuXCA7Civku7sgPiBuaW5cIDsKK+mbtiA+IHJlaVwgOwor5pu4ID4gc2hvXCA7Civku7YgPiBrZW5cIDsKK+abtCA+IGtvdVwgOwor6ZuoID4gYW1lXCA7Civpm6MgPiBuYW5cIDsKK+S7pCA+IHJlaVwgOwor5pucID4geW91XCA7Civpm5YgPiBzdWlcIDsKK+S7lSA+IHNoaVwgOwor5LuUID4gc2hpXCA7Civku4sgPiBrYWlcIDsKK+S7iiA+IGtvblwgOwor6ZuEID4gb3N1XCA7Civku4EgPiBuaW5cIDsKK+aatCA+IGJvdVwgOwor5LqtID4gdGVpXCA7CivpmqogPiBrZW5cIDsKK+aaqyA+IHphblwgOwor6ZqoID4genVpXCA7CivkuqQgPiBrb3VcIDsKK+S6oSA+IGJvdVwgOwor6ZqbID4gc2FpXCA7CivkupkgPiBrb3VcIDsKK+S6mCA+IHNlblwgOwor5pqWID4gZGFuXCA7CivkupUgPiBzZWlcIDsKK+e6kiA+IHRlblwgOwor5pqRID4gc2hvXCA7Civpmo8gPiB6dWlcIDsKK+e6jyA+IHRlblwgOwor6ZqOID4ga2FpXCA7CivpmoogPiB0YWlcIDsKK+maiCA+IHdhaVwgOwor5LqJID4gc291XCA7CivnuoIgPiBzYW5cIDsKK+S6giA+IHJhblwgOwor6Zm9ID4geW91XCA7CivnubwgPiBrZWlcIDsKK+mZuiA+IGtlblwgOwor5pm6ID4gY2hpXCA7CivpmbYgPiB0b3VcIDsKK+aZtCA+IHNlaVwgOwor57mwID4gc291XCA7CivkubEgPiByYW5cIDsKK+aZryA+IGtlaVwgOwor57mqID4ga2FpXCA7CivnuakgPiBqb3VcIDsKK+aZqSA+IGJhblwgOwor6ZmlID4ga2FuXCA7CivpmaMgPiBqaW5cIDsKK+e5niA+IGpvdVwgOwor5LmYID4gam91XCA7CivnuZUgPiB6ZW5cIDsKK+S5lyA+IGpvdVwgOwor57mUID4gb3JpXCA7CivpmZAgPiBnZW5cIDsKK+mZjSA+IGtvdVwgOwor5LmPID4gYm91XCA7CivnuYEgPiBoYW5cIDsKK+e4vSA+IHNvdVwgOwor6ZiyID4gYm91XCA7CivnuLEgPiBqdXVcIDsKK+e4qyA+IGhvdVwgOwor6ZiqID4gaGFuXCA7CivkuKYgPiBoZWlcIDsKK+S4mCA+IG9rYVwgOwor5LiUID4gc2hhXCA7CivmmJMgPiBla2lcIDsKK+aYjiA+IG1laVwgOwor5LiKID4gam91XCA7CivmmIYgPiBrb25cIDsKK+aYgiA+IGtvdVwgOwor57e0ID4gcmVuXCA7Civnt6wgPiBtZW5cIDsKK+aXrCA+IGp1blwgOwor57epID4ga2FuXCA7Civml6kgPiBzb3VcIDsKK+e3qCA+IGhlblwgOwor5pemID4gdGFuXCA7Civnt6AgPiB0ZWlcIDsKK+mXnCA+IGthblwgOwor57eaID4gc2VuXCA7Civpl5ggPiB0b3VcIDsKK+e3jyA+IHNvdVwgOwor5peLID4gc2VuXCA7Civnt4ogPiBraW5cIDsKK+aWuSA+IGhvdVwgOwor5pa3ID4gZGFuXCA7CivntrIgPiBhbWlcIDsKK+aWryA+IHNoaVwgOwor5patID4gZGFuXCA7CivmlqwgPiB6YW5cIDsKK+mWpCA+IGtvdVwgOwor5pacID4gc2hhXCA7CivntpkgPiBrZWlcIDsKK+e2kyA+IGtlaVwgOwor6ZaLID4ga2FpXCA7CivplokgPiBoZWlcIDsKK+aWiSA+IHNlaVwgOwor5paHID4gYnVuXCA7CivploMgPiBzZW5cIDsKK+aWgyA+IGhlaVwgOwor6ZaAID4gbW9uXCA7CivplbcgPiBvc2FcIDsKK+aVuCA+IHN1dVwgOwor5pW0ID4gc2VpXCA7CivntbIgPiBzaGlcIDsKK+e1sSA+IHRvdVwgOwor5pWwID4gc3V1XCA7CivmlawgPiBrZWlcIDsKK+e1qCA+IGp1dVwgOwor5pWjID4gc2FuXCA7CivmlaIgPiBrYW5cIDsKK+e1niA+IGtvdVwgOwor5pWXID4gaGFpXCA7CivmlY8gPiBiaW5cIDsKK+aViCA+IGtvdVwgOwor5pWFID4geXVlXCA7CivmlL4gPiBob3VcIDsKK+e0uiA+IGtvblwgOwor5pS5ID4ga2FpXCA7CivntLAgPiBzZWlcIDsKK+e0ryA+IHJ1aVwgOwor5pSvID4gc2hpXCA7CivntJsgPiBmdW5cIDsKK+e0lCA+IGp1blwgOwor57SNID4gdG91XCA7CivntIsgPiBtb25cIDsKK+ezuCA+IGl0b1wgOwor5pOnID4ga3lvXCA7Civmk6EgPiB0YWlcIDsKK+ezniA+IGZ1blwgOwor57OWID4gdG91XCA7Civmk5QgPiB0YW5cIDsKK+eyviA+IHNlaVwgOwor57KfID4gYXdhXCA7CivnspcgPiBhcmFcIDsKK+mRtSA+IGthblwgOwor57GWID4gc2VuXCA7CivpkZIgPiBrYW5cIDsKK+exkCA+IHRvdVwgOwor5pC6ID4ga2VpXCA7CivnsKEgPiBrYW5cIDsKK+aQnCA+IHNvdVwgOwor5pCWID4geW91XCA7CivmkI0gPiBzb25cIDsKK+aPoSA+IGFrdVwgOwor5o+bID4ga2FuXCA7Civmj5ogPiB5b3VcIDsKK+aPkCA+IHRlaVwgOwor5o+JID4ganV1XCA7Civnr4QgPiBoYW5cIDsKK+aPgyA+IHNlblwgOwor5o67ID4gc291XCA7CivmjrIgPiBrZWlcIDsKK+euqiA+IHRhblwgOwor5o6oID4gc3VpXCA7CivmjqcgPiBrb3VcIDsKK+aOoyA+IHNlaVwgOwor5o6iID4gdGFuXCA7CivmjqEgPiBzYWlcIDsKK+eulyA+IHNhblwgOwor5o6SID4gaGFpXCA7CivnrosgPiBzZW5cIDsKK+aOgyA+IHNvdVwgOwor5o27ID4gbmVuXCA7CivmjbIgPiBrZW5cIDsKK+aNriA+IGt5b1wgOwor5o2oID4gc2hhXCA7CivnracgPiBrZW5cIDsKK+mNmyA+IHRhblwgOwor5o2cID4gc291XCA7CivmjL8gPiBzb3VcIDsKK+aMvSA+IGJhblwgOwor56ysID4gZGFpXCA7CivnrKUgPiBzaGlcIDsKK+mMoiA+IHNlblwgOwor56ybID4gZnVlXCA7CivmjJkgPiBreW9cIDsKK+eshCA+IGtlaVwgOwor56u/ID4gc2FvXCA7Civmi74gPiBqdXVcIDsKK+aLtSA+IHNvblwgOwor5ougID4ga3lvXCA7Civnq58gPiBrZWlcIDsKK+ernSA+IGhlaVwgOwor5oudID4gaGFpXCA7Civmi5wgPiBoYWlcIDsKK+aLmCA+IGtvdVwgOwor5ouFID4gdGFuXCA7Civnq4MgPiBzb3VcIDsKK+aKtSA+IHRlaVwgOwor5oqxID4gaG91XCA7Civpiq0gPiBzZW5cIDsKK+mKnCA+IGthblwgOwor5oqbID4gaG91XCA7CivpipggPiBtZWlcIDsKK+aKmCA+IG9yaVwgOwor5oqXID4ga291XCA7CivmipUgPiB0b3VcIDsKK+aKkyA+IHNvdVwgOwor6YqFID4gZG91XCA7Civnqb8gPiBzZW5cIDsKK+aJsSA+IHNvdVwgOwor5omuID4gZnVuXCA7CivnqZcgPiBzdWlcIDsKK+aJjSA+IHNhaVwgOwor56mJID4gY2hpXCA7CivnqL8gPiBrb3VcIDsKK+eovSA+IGtlaVwgOwor56i7ID4gdG91XCA7CivmiLsgPiByZWlcIDsKK+aItCA+IHRhaVwgOwor56iyID4gaW5lXCA7CivmiLAgPiBzZW5cIDsKK+eomiA+IGNoaVwgOwor5oiWID4gYXJ1XCA7CivmiJIgPiBrYWlcIDsKK+aIkCA+IHNlaVwgOwor6YiNID4gZG9uXCA7CivnqI4gPiB6ZWlcIDsKK+aIjCA+IGludVwgOwor5oiAID4gcmVuXCA7Civmh7ggPiBrZW5cIDsKK+aHtyA+IGthaVwgOwor6YeRID4ga2luXCA7Civph40gPiBvbW9cIDsKK+eniyA+IGFraVwgOwor5oeJID4geW91XCA7Civph4cgPiBzYWlcIDsKK+aHgyA+IGtpblwgOwor56a9ID4ga2luXCA7CivmhrogPiB0YW5cIDsKK+aGtiA+IG9rdVwgOwor56awID4gZGVpXCA7Civnpq4gPiByZWlcIDsKK+aGrCA+IGtlaVwgOwor5oanID4gZG91XCA7CivmhqQgPiBmdW5cIDsKK+mGkiA+IHNlaVwgOwor5oaQID4gcmVuXCA7Civmho4gPiB6b3VcIDsKK+mGiSA+IHN1aVwgOwor56aFID4gemVuXCA7CivmhoIgPiB5dXVcIDsKK+emgSA+IGtpblwgOwor6YW4ID4gc2FuXCA7CivnpbcgPiB0b3VcIDsKK+aFriA+IHJ5b1wgOwor5oWoID4gZ2FpXCA7CivmhaUgPiB6b3VcIDsKK+aFoyA+IGthblwgOwor5oWiID4gbWFuXCA7CivmhZggPiBzYW5cIDsKK+mFlCA+IHN1aVwgOwor6YWNID4gaGFpXCA7CivmhYwgPiBrb3VcIDsKK+aFiiA+IGtlblwgOwor56S8ID4gcmVpXCA7CivnpLogPiBzaGlcIDsKK+aEnyA+IGthblwgOwor56SZID4gZ2FpXCA7Civpg7UgPiB5dXVcIDsKK+aDsyA+IHNvdVwgOwor5oOxID4gbm91XCA7Civmg6ggPiBzYW5cIDsKK+aDoCA+IGtlaVwgOwor56OQID4gaXdhXCA7Civpg44gPiByb3VcIDsKK+mDiiA+IGtvdVwgOwor5oOFID4gam91XCA7CivmgrwgPiB0b3VcIDsKK+aCtiA+IG1vblwgOwor5oK0ID4gc3VpXCA7CivmgqMgPiBrYW5cIDsKK+aCoCA+IHl1dVwgOwor56KXID4gd2FuXCA7CivmgpYgPiBoYWlcIDsKK+aClCA+IGthaVwgOwor6YKKID4gaGVuXCA7CivpgoQgPiBrYW5cIDsKK+mCgiA+IGthaVwgOwor6YG4ID4gc2VuXCA7CivpgbIgPiBjaGlcIDsKK+aBsCA+IGtvdVwgOwor6YGuID4gc2hhXCA7Civpga0gPiBzb3VcIDsKK+aBryA+IGlraVwgOwor56GsID4ga291XCA7CivmgaggPiBrb25cIDsKK+mBpSA+IHlvdVwgOwor6YGjID4ga2VuXCA7CivpgaAgPiB0b29cIDsKK+mBnCA+IHNvblwgOwor6YGZID4geW91XCA7CivpgZEgPiBrb3VcIDsKK+mBjSA+IGhlblwgOwor5oGNID4ga291XCA7CivpgYogPiB5dXVcIDsKK+aBiyA+IGtvaVwgOwor6YGHID4gZ3V1XCA7CivpgYUgPiBjaGlcIDsKK+mBgiA+IHN1aVwgOwor6YGBID4gdG9uXCA7CivmgKogPiBrYWlcIDsKK+aApyA+IHNlaVwgOwor56ClID4gc2hpXCA7CivpgKMgPiByZW5cIDsKK+mAoiA+IGhvdVwgOwor6YCgID4gem91XCA7CivmgKAgPiB0YWlcIDsKK+mAniA+IHRlaVwgOwor6YCdID4gc2VpXCA7CivmgJ0gPiBzaGlcIDsKK+mAmSA+IGdlblwgOwor56CVID4gc2FpXCA7CivnoJQgPiBrZW5cIDsKK+mAjyA+IHRvdVwgOwor6YCFID4ga291XCA7CivpgIMgPiB0b3VcIDsKK+mAgSA+IHNvdVwgOwor6YCAID4gdGFpXCA7Civlv78gPiBmdW5cIDsKK+m+pCA+IGthaVwgOwor6b6hID4gc3VpXCA7CivpvpggPiB0b3VcIDsKK+m+lyA+IHJlaVwgOwor6b6WID4gdG91XCA7CivpvpIgPiByeXVcIDsKK+m+kCA+IGhvdVwgOwor6b29ID4ga2luXCA7CivpvbcgPiBha3VcIDsKK+m9tiA+IGFnb1wgOwor6b21ID4gZ291XCA7CivpvbMgPiBndW5cIDsKK+m9ryA+IGdlaVwgOwor6b2tID4gc2hvXCA7CivpvawgPiBneW9cIDsKK+m9qSA+IGdvdVwgOwor6b2eID4gZ2VuXCA7CivpvZ0gPiBjaGlcIDsKK+m9mCA+IGthaVwgOwor6b2XID4ga2luXCA7CivpvZIgPiBzaGlcIDsKK+m9jyA+IHNlaVwgOwor6b2LID4gc2FpXCA7CivpvYQgPiBzaGFcIDsKK+m9gSA+IGtvdVwgOwor6by6ID4gcnVpXCA7CivpvLcgPiBrZWlcIDsKK+m8siA+IGtvblwgOwor6byxID4gc2VpXCA7CivpvKogPiBzZWlcIDsKK+m8oiA+IGZ1blwgOwor6byhID4gc2hvXCA7CivpvJ8gPiB0b3VcIDsKK+m8myA+IGtvdVwgOwor6byZID4gaGVpXCA7CivpvJcgPiB0b3VcIDsKK+m8liA+IGZ1blwgOwor6byVID4gdG91XCA7CivpvJIgPiBzaGlcIDsKK+m8kSA+IHRlaVwgOwor6byQID4gZGFpXCA7CivpvIcgPiBnb3VcIDsKK+m8hSA+IGNoaVwgOwor6byDID4gd2FpXCA7Civpu78gPiBnZW5cIDsKK+m7vSA+IGJvdVwgOwor6bu5ID4gY2hpXCA7Civpu7YgPiBhemFcIDsKK+m7tSA+IHRhblwgOwor6buyID4gc2FuXCA7Civpu7EgPiB0YWlcIDsKK+m7riA+IHRhblwgOwor6busID4ga2FuXCA7Civpu6cgPiByZWlcIDsKK+m7nSA+IHl1dVwgOwor6buVID4gdGFuXCA7Civpu5QgPiBrZW5cIDsKK+m7jyA+IG5lblwgOwor6buOID4gcmVpXCA7Civpu4wgPiBrb3VcIDsKK+m7iyA+IGtvdVwgOwor6buIID4gdG91XCA7Civpu4YgPiBrb3VcIDsKK+m7gyA+IGtvdVwgOwor6bq6ID4gbWVuXCA7CivpurUgPiBiZW5cIDsKK+m6syA+IHJhaVwgOwor6bqwID4gYm91XCA7Civpuq4gPiBreW9cIDsKK+m6rSA+IGhvdVwgOwor6bqqID4gbWVuXCA7Civpup8gPiByaW5cIDsKK+m6nSA+IHNoYVwgOwor6bqbID4gYmVpXCA7CivpupYgPiBrZWlcIDsKK+m6lSA+IGtpblwgOwor6bqRID4gZ2VpXCA7Civpuo8gPiBraW5cIDsKK+m6iCA+IHNodVwgOwor6bqHID4ga2luXCA7CivpuoUgPiBob3VcIDsKK+m6gyA+IGhvdVwgOwor6bqAID4geXV1XCA7CivpubwgPiBrZW5cIDsKK+m5uyA+IGthblwgOwor6bm5ID4ga2FuXCA7CivpuLAgPiByZWlcIDsKK+m4niA+IHJhblwgOwor6bibID4ga2FuXCA7CivpuI4gPiB5b3VcIDsKK+m4hyA+IHNlblwgOwor6biCID4ga2VpXCA7Civpt7QgPiBrYW5cIDsKK+m3syA+IGthblwgOwor6betID4gYmFuXCA7Civpt6UgPiBzaGlcIDsKK+m3oCA+IGd5b1wgOwor6beeID4gc291XCA7Civpt5kgPiBzaGlcIDsKK+m3lSA+IHlvdVwgOwor6beUID4gZ291XCA7Civpt5MgPiBzaGFcIDsKK+m3jyA+IHRlblwgOwor6beJID4gdGVpXCA7Civpt4cgPiBrb3VcIDsKK+m3hiA+IHRlblwgOwor6beCID4geW91XCA7Civptr8gPiBzaGlcIDsKK+m2vCA+IGtlblwgOwor6ba1ID4gc3V1XCA7CivptrEgPiBrZW5cIDsKK+m2rCA+IHNvdVwgOwor6bakID4ga29uXCA7CivptpcgPiB0ZWlcIDsKK+m2iiA+IGtvdVwgOwor6baHID4gdG91XCA7CivptoYgPiByYWlcIDsKK+m2hCA+IHNlaVwgOwor6bW+ID4ga29uXCA7CivptbwgPiBrb3VcIDsKK+m1uyA+IHN1aVwgOwor6bWsID4gaG91XCA7CivptasgPiB0b3VcIDsKK+m1pyA+IGhlaVwgOwor6bWjID4gcmFpXCA7CivptZEgPiBrZW5cIDsKK+m1iiA+IGtvdVwgOwor6bWIID4gdGVuXCA7CivptYQgPiBzaGlcIDsKK+m1gSA+IGtvdVwgOwor6bS/ID4ga291XCA7CivptL4gPiBib3VcIDsKK+m0uyA+IGtvdVwgOwor6bS6ID4gdGVpXCA7CivptLQgPiBrb3VcIDsKK+m0siA+IHNoaVwgOwor6bSmID4geW91XCA7CivptJ8gPiBzaGlcIDsKK+m0niA+IHlvdVwgOwor6bScID4gc2hpXCA7CivptJggPiBoZW5cIDsKK+m0kiA+IHJlaVwgOwor6bSLID4gaG91XCA7CivptIggPiBnYW5cIDsKK+mzuSA+IGtlblwgOwor6bO3ID4gc2hpXCA7Civps7MgPiBob3VcIDsKK+mzsiA+IHNoaVwgOwor6bOwID4gbmlvXCA7Civps68gPiBob3VcIDsKK+mzriA+IGtlaVwgOwor6bOrID4gZ2FuXCA7CivpsrkgPiBzb3VcIDsKK+mymSA+IGthaVwgOwor6bKJID4geXV1XCA7CivpsbsgPiBzZW5cIDsKK+mxriA+IHNob1wgOwor6bGkID4ga2FuXCA7CivpsaMgPiB0YW5cIDsKK+mxoCA+IGthaVwgOwor6bGfID4ga291XCA7CivpsZ4gPiBrYW5cIDsKK+mxnSA+IGZ1blwgOwor6bGbID4gZXNvXCA7CivpsZYgPiBrZWlcIDsKK+mxlCA+IHNlblwgOwor6bGTID4gc2VuXCA7CivpsYcgPiBrb3VcIDsKK+mxhCA+IHNlblwgOwor6bC2ID4gc2VpXCA7CivpsLUgPiBiaW5cIDsKK+mwsiA+IGdvdVwgOwor6bCxID4gcmVuXCA7CivpsKogPiBrb3VcIDsKK+mwqSA+IHlvdVwgOwor6bCnID4gdG91XCA7CivpsKYgPiBzaGlcIDsKK+mwpSA+IGthblwgOwor6bCjID4gc2hpXCA7CivpsJwgPiBrZW5cIDsKK+mwlSA+IGViaVwgOwor6bCUID4ga2FuXCA7CivpsJMgPiBlcmFcIDsKK+mwkSA+IHlvdVwgOwor6bCDID4gd2FpXCA7CivpsIEgPiBzZW5cIDsKK+mwgCA+IGthblwgOwor6a+/ID4gaGVuXCA7Civpr7ogPiBzaG9cIDsKK+mvuSA+IHNlaVwgOwor6a+4ID4ga291XCA7Civpr7cgPiB0ZWlcIDsKK+mvtSA+IGFqaVwgOwor6a+vID4gc2VpXCA7Civpr6sgPiBzb3VcIDsKK+mvpCA+IGtvblwgOwor6a+iID4gZ2VpXCA7Civpr58gPiB0b3VcIDsKK+mvmyA+IHRhaVwgOwor6a+YID4gZGFpXCA7Civpr4kgPiBrb2lcIDsKK+mviCA+IHl1dVwgOwor6a+HID4ga2FuXCA7Civpr4EgPiBrb3VcIDsKK+mvgCA+IGtvblwgOwor6a6+ID4gZGFpXCA7CivprrggPiBiZW5cIDsKK+mutyA+IHRlaVwgOwor6a6wID4ga2FpXCA7CivprqkgPiBob3VcIDsKK+mupiA+IHRvdVwgOwor6a6UID4ga3lvXCA7CivprpAgPiB0YWlcIDsKK+mujyA+IHNlaVwgOwor6a6OID4gYXl1XCA7CivprosgPiB5dXVcIDsKK+muhiA+IHNlaVwgOwor6a2/ID4gcmVpXCA7CivprbcgPiB5dXVcIDsKK+mttSA+IGZ1blwgOwor6a20ID4gaG91XCA7CivprbMgPiBzaGlcIDsKK+mtrSA+IGdlblwgOwor6a2sID4gaGFuXCA7CivpraogPiBrYWlcIDsKK+mtqCA+IHRvblwgOwor6a2lID4gZ291XCA7CivpraMgPiBzaG9cIDsKK+mtniA+IGVyaVwgOwor6a2cID4gamluXCA7CivprZsgPiB0b3VcIDsKK+mtliA+IGt5b1wgOwor6a2RID4gY2hpXCA7CivprY0gPiBib3VcIDsKK+mtiyA+IHRhaVwgOwor6ay3ID4gc291XCA7CivprLUgPiBzZW5cIDsKK+mssyA+IGtlblwgOwor6aytID4gdG91XCA7CivprKwgPiB0b3VcIDsKK+msqyA+IGthblwgOwor6ayqID4gdG91XCA7CivprKggPiBrb3VcIDsKK+mspyA+IHRvdVwgOwor6aymID4gdG91XCA7CivprKUgPiB0b3VcIDsKK+msnyA+IGthblwgOwor6aycID4ga2FuXCA7CivprJkgPiBzb3VcIDsKK+msliA+IHNhblwgOwor6ayLID4gc2VuXCA7CivprIkgPiBzb3VcIDsKK+msiCA+IGtlblwgOwor6ayFID4gaG91XCA7CivprIQgPiB0ZWlcIDsKK+msgyA+IHNvdVwgOwor6ayCID4gYmluXCA7CivprIAgPiB0ZWlcIDsKK+mruyA+IGtlaVwgOwor6auzID4gYm91XCA7Civpq7EgPiBob3VcIDsKK+mrryA+IHplblwgOwor6aupID4gYmluXCA7Civpq6cgPiB0YW5cIDsKK+mrpiA+IGJvdVwgOwor6aulID4gemVuXCA7Civpq6MgPiBob3VcIDsKK+mroiA+IHRlaVwgOwor6augID4ga29uXCA7Civpq54gPiBzb3VcIDsKK+mrmyA+IGtvdVwgOwor6auZID4ga291XCA7Civpq5YgPiBrYW5cIDsKK+mrlSA+IGhpblwgOwor6auTID4genVpXCA7Civpq5IgPiBzb3VcIDsKK+mrkCA+IGtvdVwgOwor6auPID4gcm91XCA7Civpq4ggPiBob3VcIDsKK+mrgSA+IGthaVwgOwor6aq/ID4gaGVuXCA7Civpqr4gPiBrb3VcIDsKK+mquSA+IGtvdVwgOwor6aq2ID4gdGVpXCA7CivpqrUgPiB0YWlcIDsKK+mqtCA+IHNoaVwgOwor6aqwID4gdG91XCA7Civpqq8gPiBrb3VcIDsKK+mqlCA+IHNvdVwgOwor6ampID4ga2FuXCA7CivpqaQgPiBqb3VcIDsKK+mpmyA+IGVraVwgOwor6amUID4gdGVuXCA7CivpqZIgPiB0YW5cIDsKK+mpjiA+IHJpblwgOwor6amHID4gY2hpXCA7CivpqYQgPiBzb3VcIDsKK+mpgiA+IHNhblwgOwor6amBID4gZ291XCA7CivpqLogPiBjaGlcIDsKK+mouCA+IHNlblwgOwor6ai1ID4gZ2VuXCA7CivpqLAgPiB0b3VcIDsKK+moqyA+IGtlblwgOwor6aioID4gdGFuXCA7CivpqKMgPiBzb3VcIDsKK+mooCA+IHRlaVwgOwor6aiXID4gaGVuXCA7CivpqJAgPiBrZW5cIDsKK+mojCA+IHNvdVwgOwor6aiLID4gcmFpXCA7CivpqIggPiBoZW5cIDsKK+mohSA+IHN1aVwgOwor6aiDID4gZ2FpXCA7CivpqIIgPiBzZWlcIDsKK+mogSA+IHRlaVwgOwor6ae+ID4gdGFpXCA7Civpp70gPiBrZW5cIDsKK+mnuyA+IGthblwgOwor6ae5ID4gYm91XCA7Civpp7QgPiBrYWlcIDsKK+mnrSA+IGthaVwgOwor6aerID4ga2VpXCA7Civpp6cgPiB0b3VcIDsKK+mnoiA+IGhlblwgOwor6aefID4gc2hpXCA7Civpp5ogPiB5b3VcIDsKK+mnmCA+IHRhaVwgOwor6aeUID4gc291XCA7Civpp4kgPiBrZWlcIDsKK+mmvCA+IGJ1blwgOwor6aa6ID4gc291XCA7CivpprUgPiBzaHVcIDsKK+mmqCA+IGtlaVwgOwor6aamID4ga2VuXCA7CivpppMgPiBzYW5cIDsKK+mlniA+IHNhblwgOwor6aWbID4gYm91XCA7CivppZkgPiBmdW5cIDsKK+mlmCA+IHNlblwgOwor6aWVID4gdG91XCA7CivppZQgPiB5b3VcIDsKK+mljiA+IHNoaVwgOwor6aWNID4gemVuXCA7CivppYwgPiBzZW5cIDsKK+mliiA+IHNhblwgOwor6aWJID4ga2luXCA7CivppYEgPiB5b3VcIDsKK+mlgCA+IHRvdVwgOwor6aS7ID4ga291XCA7CivppLkgPiB0b3VcIDsKK+mktSA+IGRhaVwgOwor6aS0ID4gZnVuXCA7CivppLMgPiB0b3VcIDsKK+mksSA+IGtvdVwgOwor6aSnID4gZGFpXCA7CivppKQgPiB0YW5cIDsKK+mkoiA+IGhvdVwgOwor6aSgID4gaGVpXCA7CivppJsgPiBrb25cIDsKK+mkmiA+IGtvdVwgOwor6aSWID4gdG91XCA7CivppJIgPiBkYWlcIDsKK+mkjCA+IGVzYVwgOwor6aSIID4gc2hpXCA7CivppIMgPiBrb3VcIDsKK+mkgiA+IHRlblwgOwor6aSBID4gamluXCA7Civpo7MgPiBzaHVcIDsKK+mjsCA+IGhhblwgOwor6aOqID4gamluXCA7Civpo6kgPiB0b25cIDsKK+mjpyA+IHNvblwgOwor6aOmID4ga2VuXCA7Civpo6MgPiB0ZWlcIDsKK+mjoSA+IHNhblwgOwor6aOMID4gZnV1XCA7Civpor8gPiBoYW5cIDsKK+miuyA+IHlvdVwgOwor6aK6ID4geW91XCA7CivporggPiBzaGlcIDsKK+mitCA+IHNlblwgOwor6aKxID4gdGFpXCA7Civpoq0gPiBzZW5cIDsKK+mhtCA+IGthblwgOwor6aGwID4gaGluXCA7CivpoaogPiBrYWlcIDsKK+mhpSA+IGtvdVwgOwor6aGiID4gYmFuXCA7CivpoZogPiB0ZW5cIDsKK+mhmSA+IHNvdVwgOwor6aGTID4gc2VuXCA7CivpoZEgPiBrYW5cIDsKK+mhiyA+IHNhaVwgOwor6aGHID4gc3VpXCA7CivpoYQgPiBrYW5cIDsKK+mgviA+IHNoaVwgOwor6aC9ID4gdGFpXCA7CivpoLkgPiB0YWlcIDsKK+mgtyA+IGthblwgOwor6aCzID4gdGVpXCA7CivpoLIgPiB0ZWlcIDsKK+mgryA+IGthaVwgOwor6aCuID4ga2FpXCA7CivpoKYgPiBrYWlcIDsKK+mgoCA+IGdhaVwgOwor6aCcID4ga2FuXCA7CivpoJYgPiBoYW5cIDsKK+mgkiA+IGhhblwgOwor6aCPID4ga291XCA7CivpoIggPiBzaHVcIDsKK+mghyA+IGthblwgOwor6Z+4ID4gaG91XCA7Civpn7QgPiBzb3VcIDsKK+mfsiA+IHNlaVwgOwor6Z+xID4gc2VuXCA7Civpn68gPiBzZW5cIDsKK+mfnSA+IGtvdVwgOwor6Z+cID4gdG91XCA7Civpn5sgPiBoYWlcIDsKK+mfkyA+IGthblwgOwor6Z+QID4ga291XCA7Civpn44gPiBiYWlcIDsKK+mfjCA+IGppblwgOwor6Z+KID4gcmFuXCA7Civpn4kgPiBzZW5cIDsKK+mfhiA+IHNlblwgOwor6Z+FID4ga2VuXCA7Civpn4QgPiBha3VcIDsKK+meuiA+IHRvdVwgOwor6Z62ID4gaGFuXCA7CivpnrMgPiB0b3VcIDsKK+mesiA+IGtvdVwgOwor6Z6xID4gdG91XCA7Civpnq4gPiB0ZWlcIDsKK+merCA+IGtlblwgOwor6Z6jID4ganV1XCA7Civpnp4gPiBoZWlcIDsKK+menCA+IHRvdVwgOwor6Z6aID4ga291XCA7CivpnpkgPiBrZW5cIDsKK+melyA+IHRvdVwgOwor6Z6WID4gc2FpXCA7CivpnpUgPiBnb3VcIDsKK+meiSA+IHRvdVwgOwor6Z6AID4gdG91XCA7Civpnb0gPiBiYW5cIDsKK+mdvCA+IHRhblwgOwor6Z24ID4gc291XCA7CivpnbMgPiBraW5cIDsKK+mdsSA+IGppblwgOwor6Z2tID4gamluXCA7CivpnasgPiBzYWlcIDsKK+mdqiA+IHRlaVwgOwor6Z2nID4ga2FpXCA7CivpnaYgPiB0ZW5cIDsKK+mdpCA+IGhvdVwgOwor6Z2jID4gbWVuXCA7CivpnaAgPiBrb3VcIDsKK+mdmyA+IHRlblwgOwor6Z2aID4gc2VpXCA7CivpnZcgPiB0ZWlcIDsKK+mdkSA+IHNlaVwgOwor6Z2KID4gZnV1XCA7CivpnYYgPiB0YWlcIDsKK+mdgSA+IHJhaVwgOwor6Zy+ID4gYmFpXCA7CivpnL0gPiBzZWlcIDsKK+mcnSA+IHJlaVwgOwor6ZybID4gcmVpXCA7CivpnJogPiBib3VcIDsKK+mcliA+IHJpblwgOwor6ZyTID4gZ2VpXCA7CivpnJEgPiB0ZW5cIDsKK+mcjiA+IHNvdVwgOwor6ZyJID4gYmFpXCA7CivpnIggPiBoYWlcIDsKK+mchiA+IHRlaVwgOwor6ZuxID4gaG91XCA7Civpm7AgPiBmdW5cIDsKK+mbryA+IGJ1blwgOwor6ZufID4ga2VpXCA7Civpm54gPiBrZWlcIDsKK+mbnSA+IHlvdVwgOwor6ZuaID4ga2FuXCA7Civpm5kgPiBzb3VcIDsKK+mbjiA+IHNob1wgOwor6ZuNID4geW91XCA7Civpm4sgPiBzZW5cIDsKK+mbiiA+IGtvdVwgOwor6ZuIID4ga2FuXCA7CivpmrkgPiBzdWlcIDsKK+mauCA+IHJlaVwgOwor6Zq3ID4gcmVpXCA7CivpmrYgPiB0YWlcIDsKK+matCA+IHJvdVwgOwor6ZqvID4gdG91XCA7Civpmq4gPiBzZWlcIDsKK+mapyA+IHN1aVwgOwor6ZqmID4gaGVpXCA7CivpmqUgPiB0b3VcIDsKK+mapCA+IHRhaVwgOwor6ZqdID4gdG91XCA7CivpmpogPiB0b3VcIDsKK+malyA+IGthaVwgOwor6ZqRID4ga2FpXCA7Civpmo0gPiBrb3VcIDsKK+mahCA+IHRlaVwgOwor6ZqDID4gc2h1XCA7Civpmb4gPiBqb3VcIDsKK+mZvCA+IHNob1wgOwor6Zm3ID4ga2FuXCA7CivpmbIgPiBzdWlcIDsKK+mZriA+IHRhaVwgOwor6ZmsID4gc3V1XCA7CivpmaogPiBiYWlcIDsKK+mZpiA+IHRvdVwgOwor6ZmhID4gdG91XCA7CivpmZ0gPiBzZW5cIDsKK+mZnCA+IGtvdVwgOwor6ZmbID4gaGVpXCA7CivpmZggPiBrZWlcIDsKK+mZliA+IGthaVwgOwor6ZmUID4gZ2FpXCA7CivpmYsgPiByb3VcIDsKK+mYuiA+IGt5b1wgOwor6Zi4ID4gYWt1XCA7CivpmLcgPiB0ZWlcIDsKK+mYsyA+IHlvdVwgOwor6ZixID4gc2VpXCA7CivpmK8gPiBzaGlcIDsKK+mYriA+IGdlblwgOwor6ZisID4ga291XCA7CivpmKggPiBha3VcIDsKK+mYpiA+IHlvdVwgOwor6ZikID4gY2hpXCA7CivpmKEgPiBzZW5cIDsKK+mXpiA+IGdvblwgOwor6ZekID4ga2FuXCA7Civpl6EgPiBzZW5cIDsKK+mXoCA+IGthaVwgOwor6ZeZID4ga2VpXCA7Civpl5cgPiBrYW5cIDsKK+mXlCA+IGtvdVwgOwor6ZeTID4ga2FpXCA7Civpl5IgPiB0b3VcIDsKK+mXkCA+IHRlblwgOwor6ZeMID4gcmFuXCA7Civpl4YgPiBoYW5cIDsKK+mWvyA+IGJ1blwgOwor6Za9ID4ga29uXCA7CivplrogPiBiZW5cIDsKK+mWrCA+IHJvdVwgOwor6ZarID4ga29uXCA7CivplqkgPiBiZW5cIDsKK+mWqCA+IGtlaVwgOwor6ZanID4ga291XCA7CivplqEgPiBnYWlcIDsKK+mWniA+IGhlblwgOwor6ZadID4gcmVpXCA7CivplpkgPiB0b3VcIDsKK+mWmCA+IGtvdVwgOwor6ZaUID4gYmluXCA7Civplo8gPiBqdW5cIDsKK+mWjiA+IGtvdVwgOwor6ZaNID4gaG91XCA7CivplowgPiBrb3VcIDsKK+mWiCA+IGthblwgOwor6ZaHID4gaGVpXCA7CivploIgPiBzYW5cIDsKK+mVtCA+IHJvdVwgOwor6ZWuID4ga2FuXCA7CivplL0gPiBrb3VcIDsKK+mTpiA+IHNlblwgOwor6ZOTID4gYm91XCA7Civpk4cgPiBob3VcIDsKK+mShCA+IHJhblwgOwor6ZG+ID4gcmFuXCA7Civpkb0gPiBzYW5cIDsKK+mRtyA+IGpvdVwgOwor6ZGyID4gam91XCA7CivpkbEgPiBzYW5cIDsKK+mRryA+IHNlblwgOwor6ZGtID4gcmFuXCA7CivpkasgPiBraW5cIDsKK+mRqCA+IHJvdVwgOwor6ZGeID4gcm91XCA7CivpkZsgPiBrb3VcIDsKK+mRmiA+IHNhblwgOwor6ZGZID4ga2VpXCA7CivpkZEgPiBrYW5cIDsKK+mRjCA+IGhpblwgOwor6ZGIID4gZ2VpXCA7CivpkYUgPiBrb3VcIDsKK+mRgSA+IGJhblwgOwor6ZC7ID4ga3lvXCA7CivpkLogPiB0b3VcIDsKK+mQtiA+IGthblwgOwor6ZCzID4gcmFpXCA7CivpkLEgPiBzZW5cIDsKK+mQriA+IHJlblwgOwor6ZCrID4gc2VuXCA7CivpkJ8gPiB0ZWlcIDsKK+mQmSA+IHRvdVwgOwor6ZCXID4ga2FuXCA7CivpkJUgPiBzYW5cIDsKK+mQkyA+IHRhaVwgOwor6ZCPID4gc29uXCA7CivpkIkgPiBzZW5cIDsKK+mQhyA+IGhhblwgOwor6ZCEID4ga291XCA7CivpkIMgPiBkb3VcIDsKK+mQgSA+IHNoaVwgOwor6Y+7ID4gcmluXCA7Civpj7ggPiB0ZWlcIDsKK+mPqCA+IHNhblwgOwor6Y+nID4gcm91XCA7Civpj6QgPiByb3VcIDsKK+mPnyA+IHNhblwgOwor6Y+eID4geW91XCA7Civpj50gPiBtYW5cIDsKK+mPnCA+IHRvdVwgOwor6Y+ZID4gc2FpXCA7Civpj5cgPiBrb3VcIDsKK+mPkyA+IHNvdVwgOwor6Y+LID4gYmFuXCA7Civpj4ggPiByZW5cIDsKK+mPhyA+IHNlblwgOwor6Y+GID4ga2FuXCA7Civpj4QgPiB0YW5cIDsKK+mOrCA+IGtvdVwgOwor6Y6rID4gYmFuXCA7CivpjqkgPiBzYWlcIDsKK+mOpCA+IGtvdVwgOwor6Y6hID4gc2hpXCA7Civpjp4gPiBoZWlcIDsKK+mOlyA+IHNvdVwgOwor6Y6VID4gdG91XCA7CivpjpQgPiB5b3VcIDsKK+mOkiA+IGRvdVwgOwor6Y6KID4gaGF1XCA7Civpjb8gPiBzaGlcIDsKK+mNvSA+IGhlblwgOwor6Y20ID4gdGFuXCA7CivpjbMgPiBrYW5cIDsKK+mNsSA+IHlvdVwgOwor6Y2wID4ga2FuXCA7Civpja8gPiBzb3VcIDsKK+mNrSA+IGtvdVwgOwor6Y2qID4gYm91XCA7CivpjakgPiB0ZW5cIDsKK+mNpyA+IGtvdVwgOwor6Y2kID4gc291XCA7CivpjaAgPiBrb3VcIDsKK+mNniA+IGtvdVwgOwor6Y2aID4geW91XCA7CivpjZcgPiB0ZWlcIDsKK+mNlSA+IGt1blwgOwor6Y2SID4ganV1XCA7CivpjZEgPiBodXVcIDsKK+mNkCA+IHNvdVwgOwor6Y2KID4gcmVuXCA7CivpjYkgPiB0ZWlcIDsKK+mNhyA+IGthaVwgOwor6Y2EID4ga2VpXCA7CivpjLUgPiBuaWVcIDsKK+mMsyA+IG1vdVwgOwor6YysID4gcmVuXCA7CivpjKogPiB0ZW5cIDsKK+mMpyA+IGthblwgOwor6YylID4gaWt1XCA7CivpjKMgPiB0ZWlcIDsKK+mMoCA+IGpvdVwgOwor6YyfID4gdGFuXCA7CivpjJ0gPiBzb3VcIDsKK+mMnCA+IGpvdVwgOwor6YyaID4gc291XCA7CivpjJkgPiBzaGlcIDsKK+mMlSA+IGtvblwgOwor6YyUID4gdG91XCA7CivpjJEgPiByYWlcIDsKK+mMiCA+IGtlblwgOwor6YyAID4gcmluXCA7Civpi7sgPiBrZW5cIDsKK+mLriA+IHNlaVwgOwor6YusID4gaGFuXCA7Civpi6cgPiBrZW5cIDsKK+mLpSA+IHRvdVwgOwor6YuhID4ga2FuXCA7Civpi58gPiBzZW5cIDsKK+mLmSA+IGd5b1wgOwor6YuXID4ga2VuXCA7Civpi5UgPiBzaGlcIDsKK+mLkyA+IHRlblwgOwor6YuQID4ga291XCA7Civpi44gPiBrYW5cIDsKK+mLjCA+IHRlaVwgOwor6YuLID4gc2VuXCA7Civpi4cgPiBoYWlcIDsKK+mLhSA+IHNoaVwgOwor6YuDID4gcm91XCA7Civpi4IgPiBiYWlcIDsKK+mLgSA+IHJ5b1wgOwor6YuAID4gdG91XCA7CivpirsgPiB0ZWlcIDsKK+mKuiA+IHNvdVwgOwor6YqyID4ga2FuXCA7CivpiqcgPiBrb3VcIDsKK+mKpCA+IGJlaVwgOwor6YqgID4gcm91XCA7CivpipogPiB5b3VcIDsKK+mKmSA+IGthaVwgOwor6YqXID4ga291XCA7CivpipYgPiBzaHVcIDsKK+mKkyA+IHNlblwgOwor6YqSID4ga2VpXCA7CivpioggPiB0ZWlcIDsKK+mJvyA+IGtvdVwgOwor6Ym8ID4gaGVpXCA7CivpibkgPiBzaGlcIDsKK+mJuCA+IGtvdVwgOwor6Ym3ID4ga291XCA7CivpibYgPiBrZWlcIDsKK+mJtSA+IHRvdVwgOwor6YmxID4ga291XCA7CivpibAgPiBzaGlcIDsKK+mJqSA+IGpvdVwgOwor6YmoID4gZGVpXCA7CivpiacgPiBib3VcIDsKK+mJpCA+IGtvdVwgOwor6YmhID4gaGFuXCA7CivpiZwgPiBmdXVcIDsKK+mJmSA+IHRhaVwgOwor6YmXID4ga2FuXCA7CivpiY8gPiBzaG9cIDsKK+mJjiA+IHNvdVwgOwor6YmJID4ga2VuXCA7CivpiYggPiBzaGFcIDsKK+mJhyA+IHNoaVwgOwor6YmGID4gdGVuXCA7CivpiYUgPiBreW9cIDsKK+mJgyA+IHNoaVwgOwor6YmCID4gc2hpXCA7CivpiYAgPiBrb3VcIDsKK+mIvyA+IHRlblwgOwor6Yi2ID4gc2hpXCA7CivpiLUgPiBoZWlcIDsKK+mIsCA+IHNoaVwgOwor6YiuID4gZGVpXCA7CivpiKMgPiBrYWlcIDsKK+mIniA+IGtpblwgOwor6YicID4ga291XCA7CivpiJYgPiBodW5cIDsKK+mIkyA+IGppblwgOwor6YiSID4gc291XCA7CivpiJEgPiBoYW5cIDsKK+mIkCA+IGtlblwgOwor6YiJID4gZG91XCA7CivpiIQgPiB0b3VcIDsKK+mIgSA+IGhvdVwgOwor6Ye/ID4ga2luXCA7Civph7wgPiBrZW5cIDsKK+mHtiA+IHNoaVwgOwor6YexID4gdGVpXCA7Civph68gPiBib3VcIDsKK+mHriA+IHNlblwgOwor6YetID4ga291XCA7Civph6wgPiBrYW5cIDsKK+mHqSA+IGhhblwgOwor6YenID4gc2VuXCA7Civph6YgPiBrb3VcIDsKK+mHpCA+IHNhblwgOwor6YeWID4gdG91XCA7Civph4kgPiB5dXVcIDsKK+mHhiA+IGhhblwgOwor6YeFID4gZ2VuXCA7Civph4MgPiBzaGlcIDsKK+mHgSA+IGtpblwgOwor6YeAID4gam91XCA7Civphr0gPiByZWlcIDsKK+mGuiA+IGt1blwgOwor6Ya4ID4gam91XCA7CivphrYgPiBnZW5cIDsKK+mGtSA+IGt5b1wgOwor6Ya0ID4gcmVpXCA7CivphrMgPiBla2lcIDsKK+mGsiA+IGpvdVwgOwor6YawID4gdGFuXCA7Civphq8gPiBrZWlcIDsKK+mGpiA+IHNhblwgOwor6YaiID4ga2FpXCA7CivphpggPiBrb3VcIDsKK+mGkyA+IHRhblwgOwor6YaRID4gc2hvXCA7Civpho4gPiBkYWlcIDsKK+mGjSA+IHRlaVwgOwor6YaGID4gc2FuXCA7CivphoUgPiBoYWlcIDsKK+mGgiA+IHJpblwgOwor6YW7ID4gc3VpXCA7CivphbkgPiByYWlcIDsKK+mFtiA+IGJhaVwgOwor6YW1ID4ga291XCA7CivphbIgPiB0ZWlcIDsKK+mFrSA+IHl1dVwgOwor6YWpID4gbWVpXCA7CivphaMgPiBrYW5cIDsKK+mFmiA+IGh1blwgOwor6YWYID4gdG91XCA7CivphZYgPiB0YW5cIDsKK+mFiiA+IHRlaVwgOwor6YWHID4gc2FuXCA7CivphYYgPiBmdXVcIDsKK+mFgyA+IHJlaVwgOwor6YS9ID4gdGVuXCA7CivphLwgPiBzYWJcIDsKK+mEuiA+IGtvdVwgOwor6YS3ID4gaG91XCA7CivphLYgPiBrYWlcIDsKK+mEsiA+IHRhblwgOwor6YSwID4gcmluXCA7CivphK8gPiBzZW5cIDsKK+mEriA+IGJvdVwgOwor6YStID4gdGVpXCA7CivphKcgPiB0b3VcIDsKK+mEniA+IGdpblwgOwor6YSYID4geW91XCA7CivphJcgPiBrb3VcIDsKK+mEkiA+IHN1dVwgOwor6YSNID4gbWVpXCA7CivphIQgPiBrZW5cIDsKK+mDryA+IHRhblwgOwor6YOlID4gaGFpXCA7Civpg6EgPiBndW5cIDsKK+mDnyA+IGtvdVwgOwor6YOeID4gcm91XCA7Civpg5wgPiBrb3VcIDsKK+mDmCA+IHJ5b1wgOwor6YOXID4gY2hpXCA7Civpg5UgPiBzZWlcIDsKK+mDkiA+IHJvdVwgOwor6YOMID4ga2VpXCA7Civpg4ggPiBrb3VcIDsKK+mDgyA+IGtvdVwgOwor6YOBID4gaWt1XCA7Civpgr4gPiBjaHVcIDsKK+mCvSA+IGtlaVwgOwor6YK2ID4gaGFpXCA7CivpgrQgPiBoZWlcIDsKK+mCsCA+IHRhaVwgOwor6YKvID4ga2FuXCA7CivpgqggPiBzb25cIDsKK+mCoiA+IGtlaVwgOwor6YKhID4gaG91XCA7CivpgqAgPiBoaW5cIDsKK+mCmSA+IGJvdVwgOwor6YKXID4ga2FuXCA7CivpgpUgPiB5b3VcIDsKK+mCkSA+IHl1dVwgOwor6YKOID4geXV1XCA7CivpgowgPiByZWlcIDsKK+mCiSA+IGhlblwgOwor6YKFID4ga2VuXCA7CivpgoMgPiBzdWlcIDsKK+mCgSA+IGJhaVwgOwor6YKAID4geW91XCA7Civpgb0gPiBreW9cIDsKK+mBtyA+IHNlblwgOwor6YG2ID4gam91XCA7CivpgbUgPiBqdW5cIDsKK+mBtCA+IHJpblwgOwor6YGwID4gdGVpXCA7Civpga8gPiB0b25cIDsKK+mBqCA+IGdvdVwgOwor6YGmID4ga2FuXCA7CivpgaIgPiB0b3VcIDsKK+mBnyA+IGNoaVwgOwor6YGeID4gdGVpXCA7CivpgZ0gPiB0b3VcIDsKK+mBmCA+IGtvdVwgOwor6YGJID4gdGVpXCA7CivpgYQgPiBzZW5cIDsKK+mBgyA+IGdlblwgOwor6YC/ID4gdG91XCA7CivpgLMgPiBpa3VcIDsKK+mAsCA+IHl1dVwgOwor6YCuID4gdGFpXCA7CivpgK0gPiBrYW5cIDsKK+mArCA+IGhvdVwgOwor6YCoID4gcmFpXCA7CivpgKUgPiBrYWlcIDsKK+mAlyA+IHRvdVwgOwor6YCVID4ga2VpXCA7CivpgJMgPiB0ZWlcIDsKK+mAjCA+IHl1dVwgOwor6YCIID4ga2VpXCA7CivpgIQgPiBob3VcIDsKK+i/uiA+IGRhaVwgOwor6L+4ID4gaG91XCA7Civov7YgPiB5dXVcIDsKK+i/tSA+IHRvdVwgOwor6L+0ID4ga2FpXCA7Civov68gPiB0b3VcIDsKK+i/qCA+IHRhaVwgOwor6L+jID4gc2VpXCA7Civov5IgPiBrb3VcIDsKK+i/iiA+IHNvdVwgOwor6L+BID4gc2VuXCA7Civov4AgPiBrYW5cIDsKK+i+uSA+IGhlblwgOwor6L6uID4gaGVuXCA7CivovqggPiBiZW5cIDsKK+i+pyA+IGJlblwgOwor6L6mID4gaGFuXCA7CivovqEgPiBoZW5cIDsKK+i+oCA+IHNhaVwgOwor6L2lID4gcmluXCA7CivovZ4gPiBrYW5cIDsKK+i9mCA+IGthblwgOwor6L2XID4ga2FuXCA7CivovZQgPiByaW5cIDsKK+i9kyA+IGhhblwgOwor6L2SID4gaHVuXCA7CivovZEgPiByYXVcIDsKK+i9jyA+IHNhblwgOwor6L2HID4ga291XCA7CivovYEgPiB0b3VcIDsKK+i8viA+IHRlblwgOwor6Ly6ID4gc2hpXCA7CivovLcgPiBrb3VcIDsKK+i8tiA+IHl1dVwgOwor6LyzID4gc291XCA7CivovK4gPiBqdXVcIDsKK+i8rSA+IHplblwgOwor6LyoID4ga2FuXCA7CivovKYgPiByZW5cIDsKK+i8pSA+IGtvblwgOwor6LyjID4gaG91XCA7CivovKEgPiBrYW5cIDsKK+i8niA+IGJvdVwgOwor6LycID4gc2hpXCA7CivovJcgPiBnZWlcIDsKK+i8kyA+IGJhblwgOwor6LyQID4ga2FuXCA7CivovI8gPiB5dXVcIDsKK+i8iiA+IGNoaVwgOwor6LyHID4gc2VuXCA7Civou7ogPiB5b3VcIDsKK+i7uSA+IHNoaVwgOwor6LuwID4gaGFpXCA7Civou6ggPiByZWlcIDsKK+i7oyA+IGdvdVwgOwor6LugID4gamluXCA7Civou58gPiBuYW5cIDsKK+i7nCA+IGRvdVwgOwor6LubID4gYWt1XCA7Civou5QgPiBqaW5cIDsKK+i7kSA+IHRlaVwgOwor6LuQID4gc2VuXCA7Civou4cgPiB0b3VcIDsKK+i7hiA+IHRlaVwgOwor6LuBID4gcm91XCA7CivourogPiB0b3VcIDsKK+i6sCA+IHRlaVwgOwor6LqtID4gdGFuXCA7CivouqogPiByaW5cIDsKK+i6pyA+IHNoaVwgOwor6LqiID4gdG91XCA7CivouqEgPiBqb3VcIDsKK+i6nSA+IHJhblwgOwor6LqaID4gc2VuXCA7CivoupkgPiByaW5cIDsKK+i6lSA+IGNodVwgOwor6LqUID4gdGVuXCA7CivouosgPiBzZWlcIDsKK+i6iSA+IHRvblwgOwor6LqBID4gc291XCA7CivoubkgPiB0b3VcIDsKK+i5ryA+IGhhblwgOwor6LmtID4gc291XCA7CivouawgPiB0b3VcIDsKK+i5oyA+IG1hblwgOwor6LmhID4geW91XCA7CivouZ0gPiBzaGlcIDsKK+i5myA+IHRhaVwgOwor6LmUID4gc2FuXCA7CivouY8gPiB0ZWlcIDsKK+i5jiA+IHRlblwgOwor6LmNID4gdGVuXCA7CivouYsgPiB0b3VcIDsKK+i5iiA+IGtlaVwgOwor6LmIID4gdG91XCA7CivouYcgPiBrZW5cIDsKK+i5giA+IGp1dVwgOwor6LmBID4gaGVuXCA7CivouLkgPiBzZW5cIDsKK+i4tiA+IHRlaVwgOwor6Li0ID4geW91XCA7CivouKMgPiBob3VcIDsKK+i4oSA+IGtlblwgOwor6LieID4ga3lvXCA7CivouJQgPiB0b3VcIDsKK+i4kCA+IHNlblwgOwor6LiIID4gc2hvXCA7CivouIUgPiB0ZWlcIDsKK+i4gSA+IGtlaVwgOwor6Le1ID4gc2VuXCA7Civot7QgPiBzYWlcIDsKK+i3siA+IGtvdVwgOwor6LexID4gY2hpXCA7Civot7AgPiBob3VcIDsKK+i3pyA+IHNlblwgOwor6LekID4ga291XCA7Civot5ogPiBzYW5cIDsKK+i3mSA+IHNob1wgOwor6LeRID4gaG91XCA7Civot4ogPiBiYWlcIDsKK+i3iCA+IGRlblwgOwor6LeGID4gdGFpXCA7Civotr4gPiBzaGlcIDsKK+i2vCA+IGdlblwgOwor6LayID4gc2FuXCA7Civotq8gPiBrYW5cIDsKK+i2qCA+IHN1dVwgOwor6LamID4gc2hpXCA7Civotp8gPiB0b3VcIDsKK+i2lSA+IGthblwgOwor6LaRID4gc2hpXCA7Civoto0gPiBjaGlcIDsKK+i2iCA+IHRhblwgOwor6LaEID4gc2hvXCA7Civotb8gPiBjaGlcIDsKK+i1sSA+IHNvdVwgOwor6LWtID4gc2hhXCA7CivotawgPiB0ZWlcIDsKK+i1piA+IHNoYVwgOwor6LScID4gem91XCA7CivotJsgPiBrb3VcIDsKK+i0lyA+IGtlblwgOwor6LSTID4gem91XCA7CivotJIgPiBrZW5cIDsKK+i0jSA+IHNlblwgOwor6LSKID4gc2FuXCA7CivotIkgPiB0YW5cIDsKK+i0iCA+IHpvdVwgOwor6LSEID4gc2hpXCA7CivotIMgPiB3YW5cIDsKK+i0gSA+IGhhaVwgOwor6LO/ID4gcm91XCA7Civos7ggPiB5b3VcIDsKK+iztyA+IHNlaVwgOwor6LO1ID4gaHV1XCA7Civos7QgPiByYWlcIDsKK+izsiA+IGhvdVwgOwor6LOvID4ga2VpXCA7Civos6ggPiBzb3VcIDsKK+izpCA+IHNlblwgOwor6LOgID4gYmFpXCA7Civos5wgPiBzaGlcIDsKK+izmyA+IHNhblwgOwor6LOaID4gcmFpXCA7Civos5YgPiBzaGFcIDsKK+izlCA+IGhpblwgOwor6LOTID4gaGluXCA7Civos5IgPiBzaGFcIDsKK+izjiA+IHNlblwgOwor6LONID4gc291XCA7Civos4sgPiBrb3VcIDsKK+izhiA+IGhlblwgOwor6LOFID4ga2FpXCA7Civos4QgPiB3YWlcIDsKK+iyvyA+IGJvdVwgOwor6LK5ID4gc2VpXCA7CivosrYgPiBoZW5cIDsKK+iysiA+IHNoaVwgOwor6LKrID4ga2FuXCA7CivosqogPiBkb25cIDsKK+iyqSA+IGhhblwgOwor6LKiID4ga291XCA7CivospsgPiBrYW5cIDsKK+iymSA+IGNodVwgOwor6LKSID4gdGFuXCA7Civoso4gPiBnZWlcIDsKK+iyjCA+IGJvdVwgOwor6LKLID4ga2FuXCA7CivosocgPiBrb25cIDsKK+iyhiA+IGthblwgOwor6LG7ID4ga2FuXCA7CivosbogPiBzYWlcIDsKK+ixuCA+IGNoaVwgOwor6LG2ID4gaHVuXCA7CivosbUgPiBzb3VcIDsKK+ixsyA+IGhpblwgOwor6LGsID4gY2hvXCA7CivosakgPiBoaW5cIDsKK+ixpiA+IGt5b1wgOwor6LGkID4ga29uXCA7CivosaMgPiBrZW5cIDsKK+ixoiA+IGtlblwgOwor6LGcID4ga2VuXCA7CivosZsgPiBla2lcIDsKK+ixmCA+IHRvblwgOwor6LGVID4gc2hpXCA7CivosY8gPiBrYW5cIDsKK+ixiyA+IHRvdVwgOwor6LGJID4gc2hpXCA7CivosYcgPiBrb3VcIDsKK+ixhSA+IHJvdVwgOwor6LC/ID4ga2VpXCA7CivosL4gPiBrb3VcIDsKK+iwvSA+IGthblwgOwor6LC5ID4ga291XCA7CivosLggPiBzZW5cIDsKK+iunCA+IHRvdVwgOwor6K6aID4gc2FuXCA7CivorpkgPiBrYW5cIDsKK+iulSA+IHJhblwgOwor6K6TID4gam91XCA7CivorpIgPiBzYW5cIDsKK+itviA+IHNlblwgOwor6K28ID4ga2FuXCA7CivorbkgPiBrb3VcIDsKK+ittiA+IHRvdVwgOwor6K20ID4ga2VuXCA7CivorbEgPiB6ZW5cIDsKK+itoyA+IHNlblwgOwor6K2fID4gc291XCA7CivorZ4gPiBrZW5cIDsKK+itmiA+IHRhblwgOwor6K2UID4gc2VuXCA7CivorZMgPiBrZWlcIDsKK+itjSA+IHlvdVwgOwor6K2IID4gdGFpXCA7CivorYQgPiBzb3VcIDsKK+itgiA+IHNlblwgOwor6Ky+ID4gYmFuXCA7CivorLAgPiByZW5cIDsKK+isrSA+IHNlaVwgOwor6KymID4ga2VpXCA7CivorKAgPiB5b3VcIDsKK+isnyA+IHRvdVwgOwor6KycID4gZ2VuXCA7CivorJogPiBzaGlcIDsKK+islyA+IGJvdVwgOwor6KyRID4ga2VpXCA7CivorIogPiBrb3VcIDsKK+ishyA+IGtlblwgOwor6KyGID4gc2VuXCA7CivorIUgPiBzb3VcIDsKK+ishCA+IHRvdVwgOwor6Ku8ID4ga2VuXCA7Civoq7cgPiBmdXVcIDsKK+irtSA+IG5hblwgOwor6Ku0ID4ga2FuXCA7Civoq7AgPiBzaGlcIDsKK+irriA+IHNoaVwgOwor6KusID4ga2VpXCA7Civoq6sgPiBrYW5cIDsKK+irpyA+IGthaVwgOwor6KuiID4ga29uXCA7Civoq6EgPiBzaGlcIDsKK+iroCA+IGtlblwgOwor6KufID4gc2hpXCA7Civoq54gPiBoZW5cIDsKK+irnSA+IHNob1wgOwor6KuaID4gam91XCA7Civoq5UgPiBrb3VcIDsKK+irkyA+IHNlblwgOwor6KuPID4gc2h1XCA7Civoq40gPiBzb3VcIDsKK+irjCA+IGthblwgOwor6KuJID4genVpXCA7Civoq4ggPiBzdWlcIDsKK+irhCA+IGp1blwgOwor6KuCID4gdGVuXCA7Civoqr4gPiBnaW5cIDsKK+iquyA+IHRvdVwgOwor6Kq3ID4gYm91XCA7CivoqrYgPiBzdWlcIDsKK+iqqSA+IGtlaVwgOwor6KqoID4ga2FpXCA7CivoqqUgPiBrb3VcIDsKK+iqoSA+IGthaVwgOwor6KqfID4ga291XCA7CivoqpkgPiBrb3VcIDsKK+iqlyA+IHRlblwgOwor6KqVID4gdGFuXCA7Civoqo8gPiByb3VcIDsKK+iqgyA+IHNoaVwgOwor6Km/ID4ga2FpXCA7CivoqbwgPiBrYWlcIDsKK+ipuiA+IGJpaVwgOwor6Km5ID4gc2VuXCA7CivoqbcgPiB0b3VcIDsKK+iprCA+IGtvdVwgOwor6KmlID4ga291XCA7CivoqaMgPiBrZWlcIDsKK+ipoiA+IGp1blwgOwor6KmdID4gY2hvXCA7CivoqZwgPiB0b3VcIDsKK+ipkyA+IGt5b1wgOwor6KmSID4gdGFpXCA7CivoqY4gPiBreW9cIDsKK+ipiSA+IGRvdVwgOwor6KmHID4geW91XCA7CivoqYYgPiB0ZWlcIDsKK+iphSA+IHJlaVwgOwor6KmDID4ga2VuXCA7CivoqYAgPiB0YW5cIDsKK+ioviA+IHNoaVwgOwor6Ki9ID4ga291XCA7CivoqLUgPiBjaGlcIDsKK+iorCA+IHNvdVwgOwor6KikID4ga29uXCA7CivoqKIgPiBraW5cIDsKK+ioniA+IHlvdVwgOwor6KiVID4gc2FuXCA7CivoqJQgPiBnaW5cIDsKK+iokyA+IGt1blwgOwor6KiSID4gamluXCA7CivoqJEgPiBzaGlcIDsKK+iojiA+IHRvdVwgOwor6KiMID4ga291XCA7CivoqIcgPiBrb3VcIDsKK+iogiA+IHRlaVwgOwor6Ke/ID4ga2VpXCA7Civop70gPiBrZWlcIDsKK+inuSA+IGtlaVwgOwor6Ke2ID4gc2hpXCA7Civop6cgPiBrYWlcIDsKK+inpSA+IGtvdVwgOwor6KedID4gdGVpXCA7Civop5wgPiBzaGlcIDsKK+inmCA+IHNvdVwgOwor6KeXID4gc2hpXCA7Civop5QgPiBraW5cIDsKK+imuCA+IGthblwgOwor6Ka3ID4gc2h1XCA7CivoprUgPiBrYW5cIDsKK+imtCA+IHRvdVwgOwor6KayID4ga2luXCA7Civopq8gPiBrb3VcIDsKK+impSA+IHRlblwgOwor6KagID4ga2luXCA7Civopp8gPiBzaGlcIDsKK+immCA+IHRlblwgOwor6KaUID4gZWtpXCA7Civopo0gPiBoZW5cIDsKK+imjCA+IGthblwgOwor6KaDID4gdGFuXCA7Civopb4gPiBha2FcIDsKK+ilvSA+IHJhblwgOwor6KW8ID4gZ2VpXCA7CivopbsgPiBoYW5cIDsKK+iluiA+IGtlblwgOwor6KW0ID4gcmFuXCA7CivopbMgPiBzZW5cIDsKK+ilsCA+IHJhaVwgOwor6KWiID4gdGFuXCA7CivopaAgPiB0b3VcIDsKK+ilnCA+IHNlblwgOwor6KWbID4gam91XCA7CivopZogPiBzdWlcIDsKK+illSA+IHJhblwgOwor6KWMID4gdGFuXCA7CivopYkgPiBrYW5cIDsKK+ilhCA+IGpvdVwgOwor6KWDID4gaG91XCA7CivopLkgPiBnZWlcIDsKK+iksCA+IGtlblwgOwor6KSrID4gY2hpXCA7CivopKcgPiBrZWlcIDsKK+ikpiA+IGRhaVwgOwor6KSgID4ga291XCA7CivopJ0gPiB0YW5cIDsKK+iknCA+IGVuYVwgOwor6KSaID4gY2hvXCA7CivopJkgPiBoYWlcIDsKK+ikliA+IHRhblwgOwor6KSPID4geXV1XCA7CivopI0gPiB0YW5cIDsKK+ikiiA+IGhlblwgOwor6KSGID4gc2hpXCA7CivopIIgPiBrYWlcIDsKK+ijtSA+IGhhaVwgOwor6KO0ID4gaGFpXCA7Civoo6ogPiB0YXVcIDsKK+ijpyA+IHNlblwgOwor6KOeID4gc2VpXCA7Civoo5kgPiBrdW5cIDsKK+ijkiA+IGhvdVwgOwor6KOOID4gdGVpXCA7Civoo40gPiBrb25cIDsKK+ijjCA+IGtvdVwgOwor6KOLID4gc2h1XCA7Civoo4ogPiBqb3VcIDsKK+ijiCA+IGtvblwgOwor6KK/ID4ga2VpXCA7Civoor4gPiBjaHVcIDsKK+iitSA+IGppblwgOwor6KKzID4gc2hpXCA7CivooqogPiBreW9cIDsKK+iiqCA+IGtlblwgOwor6KKkID4gYm91XCA7Civoop4gPiBrb25cIDsKK+iimyA+IHRlaVwgOwor6KKSID4gdGFuXCA7Civooo0gPiBob3VcIDsKK+iigCA+IGtpblwgOwor6KG/ID4gZXJpXCA7Civoob0gPiBqaW5cIDsKK+ihuyA+IHplblwgOwor6KGyID4gZG91XCA7Civooa4gPiBrb25cIDsKK+ihqyA+IHNhblwgOwor6KGpID4gc2FpXCA7CivooaYgPiBrYW5cIDsKK+ihnyA+IGRvdVwgOwor6KGcID4gZG91XCA7CivooZkgPiBneW9cIDsKK+ihmCA+IGthblwgOwor6KGWID4ga291XCA7CivooZUgPiB0b3VcIDsKK+ihkiA+IGtlblwgOwor6KGRID4gcmVpXCA7CivooY4gPiBrYW5cIDsKK+ihhSA+IGtpblwgOwor6KGDID4gaGFpXCA7CivooYEgPiBrb3VcIDsKK+iguyA+IGJhblwgOwor6KC6ID4gc2FuXCA7CivooLUgPiBrZWlcIDsKK+igsiA+IGtlblwgOwor6KCtID4gaG91XCA7CivooKMgPiByZWlcIDsKK+igoSA+IHJlaVwgOwor6KCfID4gcm91XCA7CivooJwgPiBoYW5cIDsKK+igmSA+IGhlblwgOwor6KCUID4ga291XCA7CivooJMgPiBib3VcIDsKK+igkiA+IGtlblwgOwor6KCQID4gc2VpXCA7CivooI8gPiBrYWlcIDsKK+igiiA+IHJlblwgOwor6KCJID4ga2VuXCA7CivooIYgPiB0YWlcIDsKK+ighSA+IHlvdVwgOwor6J+/ID4ga2VpXCA7Civon74gPiBzZW5cIDsKK+ifuiA+IHNlblwgOwor6J+4ID4gcmVpXCA7Civon7cgPiB0b3VcIDsKK+iftiA+IHRlaVwgOwor6J+zID4gamluXCA7Civon7EgPiBib3VcIDsKK+ifrCA+IHNlblwgOwor6J+qID4ga2VpXCA7Civon6QgPiBzZW5cIDsKK+ifoCA+IGhhblwgOwor6J+aID4gaG91XCA7Civon5YgPiBzaGlcIDsKK+iflSA+IHN1aVwgOwor6J+SID4gYm91XCA7Civon5AgPiB0b3VcIDsKK+ifiiA+IGJvdVwgOwor6J+BID4gYnVuXCA7CivonrsgPiByb3VcIDsKK+iesyA+IHRvdVwgOwor6J6vID4gZ291XCA7Civonq4gPiB0ZWlcIDsKK+ierSA+IGNoaVwgOwor6J6sID4gc291XCA7CivonqcgPiBlYmlcIDsKK+ieoyA+IHRvdVwgOwor6J6fID4gbWVpXCA7CivonpcgPiB0b3VcIDsKK+ielSA+IGhlaVwgOwor6J6MID4gaGFuXCA7CivonoggPiBnZW5cIDsKK+iehyA+IGtlaVwgOwor6J6GID4gc2hpXCA7CivonoUgPiBzaGlcIDsKK+iehCA+IHNoaVwgOwor6J6DID4gaG91XCA7CivonoIgPiByb3VcIDsKK+iduyA+IG5hblwgOwor6J2xID4gbW91XCA7CivonaogPiB0b3VcIDsKK+idpiA+IGViaVwgOwor6J2lID4gYm91XCA7CivonaMgPiB5dXVcIDsKK+idoSA+IHplblwgOwor6J2XID4ga291XCA7CivonYUgPiBzYW5cIDsKK+idgyA+IHRlaVwgOwor6J2AID4gdG91XCA7CivonLogPiBnZWlcIDsKK+icuSA+IHplaVwgOwor6Jy3ID4ga2VuXCA7CivonLQgPiBla2lcIDsKK+icryA+IGhvdVwgOwor6JyhID4gc2hvXCA7CivonJ8gPiBpa3VcIDsKK+icliA+IGthaVwgOwor6JyVID4gemVpXCA7CivonJQgPiB0ZW5cIDsKK+ickyA+IHRlblwgOwor6JyRID4gdGFuXCA7CivonI8gPiB5dXVcIDsKK+icjSA+IHNob1wgOwor6JyLID4gcm91XCA7Civom70gPiBiYWlcIDsKK+ibvCA+IHNoYVwgOwor6Ju7ID4gemVpXCA7Civom68gPiBlYmlcIDsKK+ibriA+IGJhblwgOwor6JunID4gYm91XCA7Civom6AgPiByZWlcIDsKK+ibnyA+IGtvdVwgOwor6JuXID4gaHV1XCA7Civom5UgPiBrYWlcIDsKK+iblCA+IGthaVwgOwor6JuRID4gYm91XCA7Civom44gPiByZWlcIDsKK+ibiyA+IHRhblwgOwor6JuFID4gemVuXCA7Civom4MgPiBoZWlcIDsKK+ibgCA+IHNodVwgOwor6Jq/ID4ga2VuXCA7CivomrcgPiBreW9cIDsKK+iatiA+IGthblwgOwor6Jq0ID4geXV1XCA7CivomrMgPiBjaGlcIDsKK+iasCA+IHl1dVwgOwor6JqrID4gaG91XCA7CivomqogPiB0b3VcIDsKK+iaqSA+IHNoaVwgOwor6JqnID4ga2FpXCA7CivomqYgPiB6ZW5cIDsKK+iaoyA+IGtvdVwgOwor6JqhID4gaHVuXCA7CivompggPiBrYWlcIDsKK+ialiA+IGdlblwgOwor6JqMID4gaG91XCA7CivomoggPiBrZW5cIDsKK+iZuyA+IGFidVwgOwor6Jm3ID4ga2FuXCA7CivombUgPiBzaGFcIDsKK+iZpCA+IGdhblwgOwor6JmjID4gaG91XCA7CivomaIgPiBob3VcIDsKK+iZoSA+IGt5b1wgOwor6JmgID4ga291XCA7CivomZsgPiBreW9cIDsKK+iZlyA+IGt5b1wgOwor6JmUID4ga2VuXCA7CivomZMgPiBrb3VcIDsKK+iZkiA+IHNoaVwgOwor6JmGID4gcnVpXCA7CivomYAgPiBzZWlcIDsKK+iYuCA+IHNhblwgOwor6JivID4gdG91XCA7CivomKkgPiBoYW5cIDsKK+iYoiA+IHJvdVwgOwor6JieID4gcmVuXCA7CivomJsgPiBpa3VcIDsKK+iYmiA+IHNlblwgOwor6JiYID4gam91XCA7CivomJAgPiBrZW5cIDsKK+iYjyA+IGtlaVwgOwor6JiNID4ga3VuXCA7CivomIsgPiBoaW5cIDsKK+iYhSA+IGtvdVwgOwor6Je+ID4gcmFpXCA7Civol7wgPiBrZW5cIDsKK+iXuiA+IHJpblwgOwor6Je3ID4gc2hvXCA7Civol7MgPiBrb3VcIDsKK+iXnyA+IHJ1aVwgOwor6JeYID4gcnlvXCA7Civol5UgPiBndXVcIDsKK+iXjyA+IHpvdVwgOwor6JeKID4gaGVuXCA7Civol4cgPiBzaG9cIDsKK+iXgiA+IHNvdVwgOwor6Ja+ID4gc2hpXCA7CivolrkgPiB0YWlcIDsKK+iWtiA+IGJhaVwgOwor6Ja0ID4gbm91XCA7CivolrAgPiBrdW5cIDsKK+iWrSA+IGhhaVwgOwor6JarID4ga3VuXCA7CivolqggPiBrb3VcIDsKK+iWpyA+IGtvdVwgOwor6JakID4ga2FpXCA7CivolqIgPiBrYWlcIDsKK+iWoCA+IGhhblwgOwor6JafID4gcmVuXCA7Civolp0gPiBzZW5cIDsKK+iWmSA+IHRlaVwgOwor6JaQID4gcm91XCA7CivolosgPiBzaGlcIDsKK+iWiSA+IHdhaVwgOwor6JaIID4ga2FpXCA7CivoloUgPiBrb3VcIDsKK+iWgSA+IGlrdVwgOwor6JW/ID4ga2VuXCA7Civolb0gPiBkb3VcIDsKK+iVuyA+IGtvdVwgOwor6JW5ID4geW91XCA7Civola8gPiByb3VcIDsKK+iVqyA+IHRvdVwgOwor6JWkID4genVpXCA7CivolaIgPiBrYWlcIDsKK+iVoSA+IGh1blwgOwor6JWeID4gc2FpXCA7CivolZkgPiBrZWlcIDsKK+iVmCA+IGpvdVwgOwor6JWWID4ga3lvXCA7CivolZUgPiB5dXVcIDsKK+iVkiA+IGJhaVwgOwor6JWRID4ga2FuXCA7CivolY8gPiBjaG9cIDsKK+iViyA+IHp1aVwgOwor6JWKID4genVpXCA7CivolYYgPiB0ZW5cIDsKK+iVgyA+IGJhblwgOwor6JWBID4gamluXCA7CivolLMgPiBzZW5cIDsKK+iUsiA+IGtvdVwgOwor6JSqID4gc2VuXCA7CivolKcgPiBzZWlcIDsKK+iUpSA+IHNvdVwgOwor6JShID4gc2FpXCA7CivolJ4gPiByb3VcIDsKK+iUnCA+IGdvdVwgOwor6JSXID4gc2hvXCA7CivolJMgPiBiYW5cIDsKK+iUgiA+IHJ1aVwgOwor6JSAID4gaG91XCA7Civok7ogPiBnZWlcIDsKK+iTtyA+IHRhaVwgOwor6JOxID4gaGVpXCA7Civok7AgPiBzaGlcIDsKK+iTryA+IHNvdVwgOwor6JOqID4gdG91XCA7Civok5wgPiBoYWlcIDsKK+iTkyA+IGhhaVwgOwor6JONID4gc2hpXCA7Civok4kgPiB5b3VcIDsKK+iTiCA+IGtvdVwgOwor6JOCID4gbWVpXCA7Civok4AgPiBzb25cIDsKK+iSvyA+IGtvdVwgOwor6JK+ID4gYmVpXCA7CivokrkgPiBrZW5cIDsKK+iSryA+IGthaVwgOwor6JKtID4gc3V1XCA7CivokqggPiBzZW5cIDsKK+iSoSA+IGhvdVwgOwor6JKTID4ganVuXCA7CivokpIgPiBzaGlcIDsKK+iShCA+IGthblwgOwor6JKCID4gdGVpXCA7Civokb0gPiB5b3VcIDsKK+iRvCA+IHNvdVwgOwor6JG5ID4gc2hpXCA7CivokbggPiBzYWlcIDsKK+iRtyA+IGd1blwgOwor6JG2ID4gdGVpXCA7CivokbUgPiBhb2lcIDsKK+iRsCA+IHN1aVwgOwor6JGuID4gdGFuXCA7CivokaogPiBrZWlcIDsKK+iRpSA+IHNlblwgOwor6JGiID4gZ2FpXCA7CivokZggPiBzaGlcIDsKK+iRkiA+IGtvdVwgOwor6JGRID4gaG91XCA7CivokY8gPiBzZW5cIDsKK+iRiCA+IHNoaVwgOwor6JGHID4ganV1XCA7CivokYUgPiBzaG9cIDsKK+iQuSA+IGhlblwgOwor6JCxID4ga2VuXCA7CivokK8gPiBodXVcIDsKK+iQoCA+IGhvdVwgOwor6JCVID4gc2VpXCA7CivokJEgPiBrYW5cIDsKK+iQjyA+IHRhblwgOwor6JCNID4gaGVpXCA7CivokIsgPiBzZWlcIDsKK+iQiiA+IHJhaVwgOwor6JCDID4gc3VpXCA7Civoj7wgPiB0YW5cIDsKK+iPuyA+IHJpblwgOwor6I+5ID4gc2hvXCA7Civoj7cgPiBzb3VcIDsKK+iPtiA+IGhvdVwgOwor6I+qID4gdG91XCA7Civoj5ggPiBzdXVcIDsKK+iPkSA+IHNoaVwgOwor6I+OID4ga29uXCA7Civoj4wgPiBraW5cIDsKK+iPhSA+IGthblwgOwor6I+BID4gc2VpXCA7Civojr8gPiBzaGlcIDsKK+iOviA+IG1vdVwgOwor6I69ID4gYm91XCA7CivojrEgPiByYWlcIDsKK+iOrCA+IGJ1blwgOwor6I6nID4ga2FuXCA7CivojqYgPiBzb3VcIDsKK+iOoCA+IHl1dVwgOwor6I6fID4ga2FuXCA7Civojp4gPiBrYW5cIDsKK+iOmyA+IHRlaVwgOwor6I6ZID4ga2luXCA7CivojpYgPiBrZWlcIDsKK+iOlSA+IGtvdVwgOwor6I6UID4gbW91XCA7CivojpMgPiBtYWlcIDsKK+iOkiA+IGt5b1wgOwor6I6KID4gc291XCA7CivojokgPiBjaGlcIDsKK+iOhyA+IGNob1wgOwor6I6EID4ga291XCA7Civojb8gPiBzZWlcIDsKK+iNuyA+IG9naVwgOwor6I21ID4gamluXCA7CivojbMgPiB0b3VcIDsKK+iNmCA+IHNvdVwgOwor6I2WID4gaG91XCA7CivojZUgPiBraW5cIDsKK+iNkyA+IGhlaVwgOwor6I2RID4gdGVpXCA7CivojZAgPiBzZW5cIDsKK+iNjiA+IGNoaVwgOwor6I2KID4ga2VpXCA7CivojYcgPiBrb3VcIDsKK+iNhiA+IGtlaVwgOwor6I2FID4gdG91XCA7CivojYQgPiBrYWlcIDsKK+iNgyA+IHNlblwgOwor6I2AID4ganVuXCA7CivojLwgPiB0b3VcIDsKK+iMtyA+IGhhaVwgOwor6Iy0ID4ga2FpXCA7CivojLMgPiBrb3VcIDsKK+iMsSA+IHNodVwgOwor6IysID4gc2hpXCA7CivojJ0gPiBzYWlcIDsKK+iMmyA+IGtvblwgOwor6IyXID4gbWVpXCA7CivojIsgPiBzaGlcIDsKK+iMiiA+IHNoaVwgOwor6IyIID4gc2hpXCA7CivojIYgPiBib3VcIDsKK+iMgyA+IGhhblwgOwor6Iu5ID4gaGVpXCA7Civoi7cgPiBrYW5cIDsKK+iLsyA+IHRvdVwgOwor6IuvID4gaG9uXCA7Civoi60gPiB5b3VcIDsKK+iLqyA+IHNlblwgOwor6IuqID4gaGVpXCA7Civoi6ggPiBkZWlcIDsKK+iLpyA+IGNob1wgOwor6IujID4ga3lvXCA7Civoi6AgPiBiaW5cIDsKK+iLnyA+IGtvdVwgOwor6IueID4gaG91XCA7Civoi5ogPiB5b3VcIDsKK+iLkyA+IHJlaVwgOwor6IuSID4gemVuXCA7Civoi5AgPiB0ZWlcIDsKK+iLhSA+IGdhaVwgOwor6Iq/ID4gam91XCA7CivoirwgPiBib3VcIDsKK+iKuyA+IHN1dVwgOwor6Iq3ID4gc2hpXCA7Civoiq4gPiB6ZWlcIDsKK+iKrCA+IGZ1blwgOwor6IqrID4gZ2VuXCA7CivoiqkgPiBraW5cIDsKK+iKpyA+IGNob1wgOwor6IqlID4ga2FpXCA7CivoiqQgPiBrb3VcIDsKK+iKoyA+IGh1dVwgOwor6IqhID4ga2VuXCA7CivoiqAgPiBidW5cIDsKK+iKnyA+IHNhblwgOwor6IqaID4gdG9uXCA7CivoipYgPiBjaGlcIDsKK+iKiyA+IGltb1wgOwor6IqKID4gc2VuXCA7CivoiokgPiBrYWlcIDsKK+iKhyA+IGJlblwgOwor6IqEID4ga2FuXCA7CivoioMgPiBob3VcIDsKK+iKgSA+IGtvdVwgOwor6Im/ID4gam91XCA7Civoib4gPiBnYWlcIDsKK+iJsSA+IGthblwgOwor6ImuID4ga29uXCA7Civoia0gPiBzb3VcIDsKK+iJqCA+IG1vdVwgOwor6ImmID4ga2FuXCA7CivoiaAgPiB0b3VcIDsKK+iJnyA+IGRvdVwgOwor6ImcID4gdGFpXCA7CivoiZogPiBzb3VcIDsKK+iJmSA+IHNvdVwgOwor6ImYID4gc291XCA7CivoiZEgPiBoZW5cIDsKK+iJjiA+IGtvdVwgOwor6ImLID4gbW91XCA7CivoiYcgPiB0ZWlcIDsKK+iJhiA+IHJvdVwgOwor6ImEID4gc291XCA7CivoiLogPiBrb3VcIDsKK+iItyA+IGtlblwgOwor6IiyID4gcmVpXCA7CivoiKsgPiBob3VcIDsKK+iIqSA+IHNlblwgOwor6IioID4gaGFuXCA7CivoiKIgPiBzYW5cIDsKK+iIoSA+IGtvdVwgOwor6IibID4gc2VuXCA7CivoiJogPiB0ZW5cIDsKK+iImSA+IGt1dVwgOwor6IiYID4ga2FuXCA7CivoiJQgPiB0ZW5cIDsKK+iIkyA+IHNoaVwgOwor6IiQID4gc2hpXCA7CivoiI0gPiBzaGFcIDsKK+iIiSA+IGt5b1wgOwor6IiAID4geW91XCA7Civoh78gPiBzb3VcIDsKK+iHvSA+IGthblwgOwor6Ie2ID4gc2VuXCA7Civoh7EgPiBiZW5cIDsKK+iHpyA+IHpvdVwgOwor6IekID4ga2FuXCA7Civoh6EgPiBkZWlcIDsKK+iHoCA+IHJlblwgOwor6IeaID4gcnlvXCA7Civoh5ggPiByb3VcIDsKK+iHlyA+IGtvblwgOwor6IeTID4gem91XCA7Civoh5EgPiBkYXVcIDsKK+iHjyA+IGhpblwgOwor6IeOID4gc3VpXCA7Civoh4sgPiBkZW5cIDsKK+iHiiA+IHNvdVwgOwor6IeJID4gcmVuXCA7Civoh4ggPiByb3VcIDsKK+iHhiA+IG9rdVwgOwor6IeDID4geW91XCA7Civoh4AgPiBkZW5cIDsKK+iGviA+IGthaVwgOwor6Ia7ID4gdGFuXCA7CivohrogPiB5b3VcIDsKK+iGuCA+IHp1aVwgOwor6Ia1ID4gc3VpXCA7CivohrAgPiBoYW5cIDsKK+iGqCA+IGJvdVwgOwor6IaiID4gcm91XCA7Civohp4gPiBzZW5cIDsKK+iGmyA+IHRvdVwgOwor6IaWID4gaG91XCA7CivohpAgPiByeW9cIDsKK+iGjyA+IGtvdVwgOwor6IaOID4ga2FpXCA7CivohoUgPiB0b3VcIDsKK+iGgiA+IHJ5b1wgOwor6IaBID4ga2VuXCA7CivohoAgPiBob3VcIDsKK+iFuiA+IHNlblwgOwor6IWxID4ga2VuXCA7CivohasgPiBzaHVcIDsKK+iFqSA+IGRhblwgOwor6IWoID4gc2VuXCA7CivohacgPiBzaHVcIDsKK+iFpSA+IHNlaVwgOwor6IWgID4gc291XCA7CivohZQgPiBrb3VcIDsKK+iFkiA+IGt5b1wgOwor6IWOID4gamluXCA7CivohYwgPiB5b3VcIDsKK+iFhyA+IGRhaVwgOwor6IWGID4gdGVuXCA7CivohYUgPiB0YW5cIDsKK+iFgSA+IGhlblwgOwor6IS6ID4gemVpXCA7CivohLAgPiB0b3VcIDsKK+iErCA+IGhvdVwgOwor6ISnID4gc2FpXCA7CivohKAgPiBzZW5cIDsKK+iEmCA+IGthblwgOwor6ISXID4gYnVuXCA7CivohIYgPiB6ZWlcIDsKK+iEgyA+IHplaVwgOwor6IO+ID4gc2hpXCA7Civog7wgPiBoZW5cIDsKK+iDtiA+IGtvdVwgOwor6IOyID4ga2FpXCA7Civog7EgPiBrb3VcIDsKK+iDriA+IGhvdVwgOwor6IOlID4gc2hvXCA7Civog6AgPiBreW9cIDsKK+iDnSA+IGNoaVwgOwor6IObID4ga291XCA7Civog5ogPiBoYWlcIDsKK+iDmCA+IGtlblwgOwor6IOWID4gaGFuXCA7Civog5QgPiBzaGlcIDsKK+iDkiA+IGRlaVwgOwor6IOPID4gc2hpXCA7CivogrogPiBoYWlcIDsKK+iCrCA+IHl1dVwgOwor6IKqID4gYm91XCA7CivogqcgPiBoYWlcIDsKK+iCpiA+IGZ1blwgOwor6IKiID4gc2hpXCA7CivogpwgPiB5dXVcIDsKK+iCmyA+IGtvdVwgOwor6IKTID4ga291XCA7Civogo4gPiBrb3VcIDsKK+iBuSA+IGRlaVwgOwor6IG2ID4gam91XCA7CivogbUgPiBnYWlcIDsKK+iBsSA+IGdvdVwgOwor6IGwID4gc291XCA7Civoga8gPiByZW5cIDsKK+iBriA+IHJlblwgOwor6IGrID4gcmVuXCA7CivogaggPiByZW5cIDsKK+iBpiA+IHNvdVwgOwor6IGkID4gdGVpXCA7CivogaEgPiBzb3VcIDsKK+iBoCA+IGhlaVwgOwor6IGfID4gc2VpXCA7CivogZggPiBoZWlcIDsKK+iBhiA+IHJlaVwgOwor6IC/ID4ga291XCA7CivogL4gPiBrb3VcIDsKK+iAvCA+IHRhblwgOwor6IC5ID4ga2luXCA7CivogLcgPiB0b3VcIDsKK+iAtSA+IHRlaVwgOwor6ICwID4geXV1XCA7CivogK4gPiByb3VcIDsKK+iArCA+IHJvdVwgOwor6ICoID4gZG91XCA7CivogKYgPiBnb3VcIDsKK+iAoCA+IGtvdVwgOwor6ICfID4ga3lvXCA7CivogJ0gPiBzaG9cIDsKK+iAnCA+IHNoaVwgOwor6ICXID4gbW91XCA7CivogJYgPiBzb3VcIDsKK+iAlCA+IHNoaVwgOwor6ICTID4gdGVpXCA7CivogJIgPiByYWlcIDsKK+iAkSA+IHRhblwgOwor6ICOID4gemVuXCA7CivogIkgPiBrb3VcIDsKK+iAiCA+IGtvdVwgOwor6ICHID4ga291XCA7CivogIQgPiBtb3VcIDsKK+iAgCA+IHlvdVwgOwor57+/ID4gdG91XCA7Civnv74gPiBrZW5cIDsKK+e/vSA+IGthaVwgOwor57+6ID4gZ291XCA7Civnv7AgPiBrYW5cIDsKK+e/qyA+IGdhblwgOwor57+pID4gaGVuXCA7Civnv6ggPiBzaGlcIDsKK+e/piA+IHNlblwgOwor57+lID4gc2hvXCA7Civnv6MgPiBzb3VcIDsKK+e/oCA+IHN1aVwgOwor57+bID4geXV1XCA7Civnv44gPiByZWlcIDsKK+e/iCA+IGtvdVwgOwor57+GID4gc3VpXCA7Civnv4UgPiBzaGlcIDsKK+e/gyA+IGtvdVwgOwor576/ID4gZ2VpXCA7CivnvrwgPiBzYW5cIDsKK+e+uCA+IHJ1aVwgOwor5762ID4gc2VuXCA7CivnvrQgPiBzZW5cIDsKK+e+qiA+IHlvdVwgOwor576mID4ga2FuXCA7CivnvqMgPiBndW5cIDsKK+e+oiA+IGpvdVwgOwor576hID4gc2VuXCA7Civnvp0gPiB0ZWlcIDsKK+e+nCA+IGNob1wgOwor576aID4gcmVpXCA7CivnvpggPiBzb3VcIDsKK+e+lCA+IGtvdVwgOwor576RID4geXV1XCA7CivnvpAgPiB5dXVcIDsKK+e+jyA+IHlvdVwgOwor576CID4ga2VuXCA7Civnvb4gPiBzb3VcIDsKK+e9vSA+IGtlaVwgOwor572yID4gc2hvXCA7CivnvbEgPiBndW5cIDsKK+e9qyA+IGtlaVwgOwor572pID4gdG91XCA7CivnvaUgPiBrZW5cIDsKK+e9pCA+IHRlaVwgOwor572jID4ga2FpXCA7CivnvaEgPiBrb3VcIDsKK+e9nSA+IHNoYVwgOwor572cID4gc2h1XCA7CivnvZUgPiBrYW5cIDsKK+e9lCA+IG1vdVwgOwor572TID4gbW91XCA7CivnvZIgPiBtb3VcIDsKK+e9kSA+IGJvdVwgOwor572NID4gcmFpXCA7CivnvYcgPiBzb25cIDsKK+e9hCA+IGtlaVwgOwor57y/ID4gdG91XCA7CivnvL4gPiBoZWlcIDsKK+e8uCA+IGtvdVwgOwor57y3ID4gc2hhXCA7CivnvLYgPiBrYW5cIDsKK+e8kCA+IHNlblwgOwor57u5ID4gdG91XCA7CivnursgPiBjaG9cIDsKK+e6riA+IGtvdVwgOwor57qeID4gcmVuXCA7Civnup0gPiBydWlcIDsKK+e6nCA+IHJhblwgOwor57qbID4gdG91XCA7CivnupogPiBzaGlcIDsKK+e6mCA+IHNhYlwgOwor57qWID4gc2VuXCA7CivnupQgPiBzYW5cIDsKK+e6kCA+IGtvdVwgOwor57qOID4gc2VuXCA7Civnuo0gPiBydWlcIDsKK+e6iiA+IGtvdVwgOwor57qJID4gc2FuXCA7CivnuocgPiByYWlcIDsKK+e6gSA+IGt1blwgOwor57m/ID4gcmFuXCA7Civnub4gPiB0ZW5cIDsKK+e5vSA+IGhpblwgOwor57m5ID4gZWtpXCA7CivnubggPiBzdWlcIDsKK+e5ryA+IGtlblwgOwor57mrID4ga2VpXCA7CivnuaQgPiBzYW5cIDsKK+e5oiA+IGthaVwgOwor57mfID4gc2VuXCA7CivnuZ0gPiBrYW5cIDsKK+e5mSA+IGhhblwgOwor57mWID4gc2FuXCA7CivnuZAgPiBrZWlcIDsKK+e5jiA+IGJpblwgOwor57mLID4ga2VpXCA7CivnuYogPiBzZW5cIDsKK+e5hyA+IHlvdVwgOwor57mFID4gc291XCA7CivnuYMgPiBob3VcIDsKK+e4vyA+IHNhblwgOwor57i6ID4gcmVuXCA7CivnuLUgPiBiYW5cIDsKK+e4tCA+IGtlblwgOwor57izID4gdGVuXCA7CivnuLIgPiBydWlcIDsKK+e4qCA+IGtvdVwgOwor57inID4gdG91XCA7CivnuKMgPiBrZW5cIDsKK+e4oiA+IHRvdVwgOwor57ihID4gc2FpXCA7CivnuJcgPiBzYWlcIDsKK+e4kiA+IHNoaVwgOwor57iRID4ga2VuXCA7CivnuIYgPiBrb3VcIDsKK+e4giA+IHNvdVwgOwor57e7ID4gY2hpXCA7Civnt7ogPiBrYWlcIDsKK+e3uSA+IHRlaVwgOwor57e2ID4gaGVuXCA7Civnt7UgPiBzb3VcIDsKK+e3sSA+IGtvdVwgOwor57erID4gc291XCA7Civnt6ogPiBrb3VcIDsKK+e3piA+IHNoaVwgOwor57elID4gaG91XCA7Civnt6IgPiBib3VcIDsKK+e3oSA+IGJpblwgOwor57eeID4gdGFuXCA7Civnt5wgPiBiZW5cIDsKK+e3mCA+IGthblwgOwor57eWID4gc2hvXCA7Civnt40gPiBiaW5cIDsKK+e3jCA+IHp1aVwgOwor57eHID4gc2hpXCA7Civnt4QgPiBrb25cIDsKK+e3giA+IHRhblwgOwor57a7ID4gdGFuXCA7CivntrggPiByaW5cIDsKK+e2tyA+IHNhaVwgOwor57a1ID4gc2FpXCA7CivntrMgPiBob3VcIDsKK+e2sCA+IHdhblwgOwor57avID4gdG91XCA7Civntq4gPiBrZWlcIDsKK+e2qyA+IHNlblwgOwor57aqID4gc2VuXCA7CivntqMgPiBrZW5cIDsKK+e2nyA+IHJlaVwgOwor57acID4gc291XCA7CivntpcgPiBnZWlcIDsKK+e2kSA+IGtvblwgOwor57aPID4gc3VpXCA7CivntosgPiBrb3VcIDsKK+e2iSA+IHRvdVwgOwor57aIID4gdGVpXCA7CivntoYgPiBrb3VcIDsKK+e2giA+IHRvdVwgOwor57aBID4gaG91XCA7Civntb0gPiByeW9cIDsKK+e1uyA+IGJ1blwgOwor57W6ID4gY2hpXCA7CivntbggPiBrZW5cIDsKK+e1syA+IGtvdVwgOwor57WnID4gdG91XCA7CivntaIgPiBrZW5cIDsKK+e1myA+IGpvdVwgOwor57WaID4ga291XCA7CivntZkgPiBrYW5cIDsKK+e1liA+IGtvdVwgOwor57WTID4ga2FpXCA7CivntZEgPiBzaHVcIDsKK+e1jiA+IGtvdVwgOwor57WNID4gamluXCA7CivntYsgPiBrb3VcIDsKK+e1hSA+IGtlaVwgOwor57WDID4gZ2VuXCA7CivntYEgPiBzaGlcIDsKK+e0vyA+IHRhaVwgOwor57S1ID4gY2hvXCA7CivntK0gPiBrb3VcIDsKK+e0qiA+IHNlaVwgOwor57SjID4gc2FpXCA7CivntKEgPiBib3VcIDsKK+e0niA+IHRhblwgOwor57SdID4gamluXCA7CivntJggPiBrb3VcIDsKK+e0kyA+IHNob1wgOwor57SSID4ga2VpXCA7CivntJEgPiBodXVcIDsKK+e0jyA+IHRvdVwgOwor57SKID4gYmluXCA7CivntIkgPiBqaW5cIDsKK+e0iCA+IGthblwgOwor57O7ID4ga2VpXCA7Civns7IgPiByZWlcIDsKK+ezsCA+IGRhblwgOwor57OrID4ga2FpXCA7Civns6kgPiBrYWlcIDsKK+ezpiA+IHNoaVwgOwor57OkID4gc2FuXCA7Civns58gPiBzb3VcIDsKK+eznSA+IHNhblwgOwor57OaID4gc291XCA7Civns5kgPiBzb3VcIDsKK+ezlSA+IGtvdVwgOwor57ONID4gc2hpXCA7Civns4kgPiBzb3VcIDsKK+eziCA+IHNob1wgOwor57OHID4ga291XCA7Civns4UgPiBqdXVcIDsKK+ezhCA+IGhlblwgOwor57OCID4gc2FuXCA7Civnsr0gPiBzb3VcIDsKK+eyvCA+IHJpblwgOwor57K6ID4gaGFpXCA7CivnsrkgPiBzdWlcIDsKK+eysyA+IGtvdVwgOwor57KyID4gc2FuXCA7CivnsrAgPiBmdXVcIDsKK+eypiA+IHJpblwgOwor57KiID4gc2hpXCA7CivnsqEgPiB0b3VcIDsKK+eyoCA+IGtvdVwgOwor57KeID4gc2VpXCA7CivnspggPiBuZW5cIDsKK+eylCA+IGt5b1wgOwor57KLID4gaWtpXCA7CivnsocgPiBrb3VcIDsKK+exvSA+IHNoaVwgOwor57G8ID4gc2VuXCA7Civnsa0gPiBzaGlcIDsKK+exqSA+IGhlblwgOwor57GnID4ga3lvXCA7CivnsaMgPiByYW5cIDsKK+exnyA+IHJhaVwgOwor57GeID4gZ3lvXCA7CivnsZsgPiBzZW5cIDsKK+exmCA+IHRvdVwgOwor57GTID4gaGFuXCA7CivnsZEgPiBzZW5cIDsKK+exgyA+IHJhblwgOwor57C9ID4gc2VuXCA7CivnsLogPiBzYWlcIDsKK+ewuSA+IHRvdVwgOwor57C0ID4ga3lvXCA7CivnsLMgPiBrYW5cIDsKK+ewpyA+IGtvdVwgOwor57CmID4gdG91XCA7CivnsJ8gPiB0ZW5cIDsKK+ewniA+IHRhblwgOwor57CbID4gc2hpXCA7CivnsJMgPiBzZW5cIDsKK+ewkiA+IHNhblwgOwor57CNID4gcm91XCA7CivnsIcgPiBzb3VcIDsKK+ewhiA+IGtvdVwgOwor57CBID4gc2hpXCA7Civnr7wgPiB0b3VcIDsKK+evuiA+IGhhaVwgOwor56+5ID4gc2FuXCA7Civnr7cgPiBob3VcIDsKK+evtSA+IHNvdVwgOwor56+yID4gc3VpXCA7Civnr6ogPiBjaGlcIDsKK+evqCA+IGNob1wgOwor56+mID4gaGVpXCA7Civnr6EgPiBzYW5cIDsKK+evnSA+IGtvdVwgOwor56+ZID4ga291XCA7Civnr5YgPiB0b3VcIDsKK+evjyA+IGthblwgOwor56+MID4ga291XCA7Civnr4ogPiBrb3VcIDsKK+eviCA+IGhvdVwgOwor56+HID4gaGVuXCA7Civnr4YgPiB0ZW5cIDsKK+evhSA+IHN1aVwgOwor56+CID4gc2VpXCA7Civnrr0gPiB0b3VcIDsKK+euvCA+IG9rdVwgOwor5661ID4gc2VpXCA7CivnrrIgPiBzZW5cIDsKK+euryA+IGhlblwgOwor566tID4gc2VuXCA7CivnrqAgPiBzdWlcIDsKK+eunyA+IGtpblwgOwor566eID4ga2VuXCA7Civnrp0gPiBrYW5cIDsKK+eunCA+IGtvdVwgOwor566YID4ga2luXCA7CivnrpYgPiByaW5cIDsKK+eukSA+IHNvdVwgOwor566QID4gc2VpXCA7Civnro8gPiBzb3VcIDsKK+euiSA+IGthaVwgOwor566EID4gaGFpXCA7CivnrbcgPiBrYWlcIDsKK+etsyA+IHRlaVwgOwor562yID4gc291XCA7Civnra8gPiBjaG9cIDsKK+etriA+IHNlaVwgOwor562tID4gc2FuXCA7CivnrawgPiBzZWlcIDsKK+etqiA+IGtvdVwgOwor562pID4gdG91XCA7CivnraYgPiBrYW5cIDsKK+etpSA+IGt5b1wgOwor562kID4gcm91XCA7CivnrZ0gPiBzb3VcIDsKK+etlSA+IGtvdVwgOwor562MID4gc2VuXCA7CivnrYUgPiBzZW5cIDsKK+etgCA+IGtlaVwgOwor56y2ID4gc2hpXCA7CivnrLUgPiBoYW5cIDsKK+essSA+IGtvdVwgOwor56ytID4gcmVpXCA7CivnrKsgPiBzaGlcIDsKK+esqiA+IHRhblwgOwor56ypID4gaGFpXCA7CivnrKggPiBob25cIDsKK+esoyA+IGhvdVwgOwor56yeID4gY2hpXCA7CivnrJkgPiBzb3VcIDsKK+esmCA+IHNlblwgOwor56yLID4ganVuXCA7CivnrIcgPiBzYW5cIDsKK+erviA+IHNoaVwgOwor56u8ID4gaG91XCA7Civnq7ggPiBrZWlcIDsKK+ersSA+IHNlblwgOwor56urID4gc2VpXCA7Civnq6IgPiBzaGlcIDsKK+ermyA+IHJlaVwgOwor56uaID4gY2hvXCA7Civnq5kgPiB0YW5cIDsKK+erkSA+IGtvdVwgOwor56uOID4gZnV1XCA7Civnq4wgPiBzaG9cIDsKK+eriSA+IHJvdVwgOwor56uHID4gdG91XCA7Civnq4QgPiB6YW5cIDsKK+eqvCA+IHNvdVwgOwor56q7ID4gc291XCA7CivnqrAgPiB5b3VcIDsKK+eqniA+IHRhblwgOwor56qYID4ga2luXCA7CivnqpcgPiBzb3VcIDsKK+eqliA+IGtvdVwgOwor56qUID4geW91XCA7CivnqpEgPiB5b3VcIDsKK+eqkCA+IGtlaVwgOwor56qIID4geW91XCA7CivnqoYgPiBiaW5cIDsKK+eqhSA+IHlvdVwgOwor56qCID4gcm91XCA7Civnqb4gPiB5b3VcIDsKK+epvSA+IHNlaVwgOwor56mwID4gam91XCA7Civnqa0gPiByeW9cIDsKK+eppyA+IHNlaVwgOwor56mjID4gam91XCA7CivnqaAgPiBqb3VcIDsKK+epnyA+IHN1aVwgOwor56mdID4gc2FpXCA7CivnqZwgPiB0b3VcIDsKK+epiCA+IGJvblwgOwor56mHID4gc2FuXCA7CivnqYUgPiBrb3VcIDsKK+ephCA+IHNlaVwgOwor56mDID4geW91XCA7CivnqL4gPiBrb3VcIDsKK+eouiA+IGNoaVwgOwor56i1ID4gc2hpXCA7CivnqLQgPiByZW5cIDsKK+eosCA+IHNob1wgOwor56ivID4gc291XCA7CivnqKcgPiBrZWlcIDsKK+eonyA+IHJpblwgOwor56ibID4ga29uXCA7CivnqJcgPiBoaWVcIDsKK+eolCA+IGppblwgOwor56iKID4gdGVpXCA7CivnqIkgPiBrb3VcIDsKK+eoiCA+IGthblwgOwor56iHID4ga29uXCA7CivnqIUgPiB6ZWlcIDsKK+eogiA+IHJvdVwgOwor56e8ID4gc2h1XCA7Civnp7EgPiB0b3VcIDsKK+enrSA+IHNoaVwgOwor56esID4ga3lvXCA7Civnp6ogPiBjaGlcIDsKK+enpSA+IGRlblwgOwor56eiID4gcmVpXCA7Civnp54gPiB5dXVcIDsKK+enmiA+IGhhblwgOwor56eWID4gc2hpXCA7Civnp5QgPiBrb3VcIDsKK+enjyA+IGtvdVwgOwor56eKID4gbmVuXCA7Civnp4kgPiBoZWlcIDsKK+eniCA+IHNlblwgOwor56eHID4gZ2VpXCA7Civnp4QgPiBzaGlcIDsKK+engiA+IGppblwgOwor56a7ID4gY2hpXCA7CivnprogPiBndXVcIDsKK+emuCA+IGp1dVwgOwor56azID4gam91XCA7CivnprEgPiB0b3VcIDsKK+emryA+IGpvdVwgOwor56arID4gdGFuXCA7CivnpqogPiB6ZW5cIDsKK+emqSA+IHNoaVwgOwor56amID4gZ3lvXCA7CivnppggPiB0ZWlcIDsKK+emliA+IGJhaVwgOwor56aUID4gc2hpXCA7CivnppMgPiB5b3VcIDsKK+emjiA+IHRlaVwgOwor56aMID4gc2hpXCA7CivnpoAgPiByaW5cIDsKK+elvCA+IGthblwgOwor56W5ID4gdG91XCA7CivnpasgPiBrb3VcIDsKK+elqSA+IHNodVwgOwor56WiID4gZGVpXCA7CivnpaAgPiBzaGlcIDsKK+elnyA+IHN1aVwgOwor56WbID4ga3lvXCA7CivnpZggPiBzYW5cIDsKK+ellyA+IHNoaVwgOwor56WQID4geXV1XCA7CivnpYsgPiB0YWlcIDsKK+eliiA+IGhvdVwgOwor56WJID4gc2hpXCA7CivnpYYgPiBrZW5cIDsKK+elhSA+IHlvdVwgOwor56WEID4ga2FpXCA7CivnpYAgPiBzaGlcIDsKK+ekvSA+IGpvdVwgOwor56S7ID4gc2hpXCA7CivnpLUgPiBzb3VcIDsKK+eksSA+IHJvdVwgOwor56SsID4gYmFuXCA7CivnpKogPiByZWlcIDsKK+ekpyA+IHJhaVwgOwor56SmID4ga291XCA7CivnpKUgPiBraW5cIDsKK+eknyA+IGhvdVwgOwor56SeID4gYm91XCA7CivnpJogPiBrYWlcIDsKK+ekkSA+IHRvdVwgOwor56SMID4gcmFpXCA7CivnpIcgPiBpa3VcIDsKK+ekhiA+IGtlblwgOwor56SAID4ga2FuXCA7Civno70gPiBrb3VcIDsKK+ejuyA+IGhhblwgOwor56O6ID4ga291XCA7Civno7cgPiByaW5cIDsKK+ejtCA+IHRvdVwgOwor56OzID4gc291XCA7Civno7IgPiBreW9cIDsKK+ejrCA+IGtlaVwgOwor56OqID4gc2FpXCA7Civno6EgPiBrYW5cIDsKK+ejmyA+IHNhblwgOwor56OaID4gc2VuXCA7Civno5YgPiByb3VcIDsKK+ejlSA+IGthaVwgOwor56OTID4gdGFpXCA7Civno5EgPiBnYWlcIDsKK+ejjiA+IGtlaVwgOwor56OMID4gdGVuXCA7Civno4ogPiByYWlcIDsKK+ejiSA+IHNvdVwgOwor56OHID4gaGVpXCA7Civno4UgPiBob3VcIDsKK+eiviA+IHRlblwgOwor56K9ID4ga291XCA7CivnorMgPiB0YW5cIDsKK+eisiA+IHRlaVwgOwor56KxID4ga2VuXCA7CivnorAgPiBob3VcIDsKK+eiryA+IGRvdVwgOwor56KtID4gdG91XCA7CivnoqggPiB3YWlcIDsKK+einiA+IGdhblwgOwor56KdID4gemVuXCA7CivnopogPiBoYWlcIDsKK+eimCA+IHRlblwgOwor56KTID4gdGFpXCA7Civnoo4gPiBzYWlcIDsKK+eijSA+IGdhaVwgOwor56KKID4gc2VuXCA7CivnoocgPiB0ZWlcIDsKK+ehvCA+IGhvdVwgOwor56GvID4ga2VuXCA7CivnoaggPiBzaGFcIDsKK+ehpCA+IGtvdVwgOwor56GjID4ga291XCA7CivnoaEgPiBrb3VcIDsKK+ehoCA+IHJvdVwgOwor56GcID4ga291XCA7CivnoZkgPiBnYWlcIDsKK+ehkiA+IHNlaVwgOwor56GPID4ga2VuXCA7CivnoY4gPiBrZWlcIDsKK+ehhyA+IGRvdVwgOwor56GFID4ga2VpXCA7CivnoYQgPiBrb3VcIDsKK+ehgyA+IHNodVwgOwor56C/ID4ga291XCA7CivnoLogPiByZWlcIDsKK+egsiA+IGhvdVwgOwor56CwID4gaG91XCA7CivnoK0gPiBoZW5cIDsKK+egoCA+IHNob1wgOwor56COID4ga2FpXCA7CivnoI0gPiBrYW5cIDsKK+egjCA+IHNlaVwgOwor56CFID4gcmVpXCA7Civnn7wgPiBrb3VcIDsKK+efuCA+IGthblwgOwor55+0ID4gdGVpXCA7Civnn7AgPiBzb3VcIDsKK+efriA+IHdhaVwgOwor55+mID4ga291XCA7Civnn5kgPiBrYW5cIDsKK+eflSA+IGJhblwgOwor55+SID4gYm91XCA7Civnn4kgPiBoaW5cIDsKK+efiCA+IGJlblwgOwor55+HID4gbW91XCA7Civnn4MgPiBnZWlcIDsKK+eetSA+IHJpblwgOwor556xID4geW91XCA7CivnnrAgPiBrYW5cIDsKK+eeryA+IGthblwgOwor556qID4gZG91XCA7CivnnqIgPiBib3VcIDsKK+eeniA+IGJhblwgOwor556RID4gbWVpXCA7Civnno0gPiBzb3VcIDsKK+eejCA+IGtvdVwgOwor556AID4gYm91XCA7Civnnb4gPiBrb3VcIDsKK+edvSA+IGtlaVwgOwor5526ID4ga291XCA7CivnnbQgPiBrb25cIDsKK+edsyA+IGtlaVwgOwor552yID4gc2VpXCA7CivnnawgPiBzYWlcIDsKK+edqiA+IGVraVwgOwor552nID4ga29uXCA7CivnnaUgPiBoZWlcIDsKK+edpCA+IGhlaVwgOwor552gID4ga2VuXCA7CivnnZ8gPiBzdWlcIDsKK+edniA+IHJhaVwgOwor552cID4gc2VpXCA7CivnnZsgPiBzZWlcIDsKK+edmiA+IGdhaVwgOwor552SID4gc2VuXCA7CivnnY8gPiBrb25cIDsKK+edjSA+IGtlblwgOwor552HID4gdGVpXCA7CivnnYYgPiBrYW5cIDsKK+edhSA+IGthblwgOwor55y4ID4gYm91XCA7CivnnLcgPiBrZW5cIDsKK+ectSA+IHNoaVwgOwor55y0ID4ga2VuXCA7CivnnK8gPiBiZWlcIDsKK+ecriA+IHRvdVwgOwor55yoID4gc291XCA7CivnnKYgPiBzZWlcIDsKK+ecpSA+IHNlaVwgOwor55ykID4gdGVpXCA7CivnnKIgPiB3YW5cIDsKK+ecmyA+IG1haVwgOwor55yaID4gc2VpXCA7CivnnJkgPiBjaGlcIDsKK+eclCA+IHRvdVwgOwor55yOID4gc2hpXCA7CivnnIogPiBib3VcIDsKK+eciCA+IHRhblwgOwor55yGID4gaG91XCA7CivnnIQgPiBiZW5cIDsKK+ecgCA+IGJlaVwgOwor55u8ID4gaGFuXCA7Civnm7sgPiBrZWlcIDsKK+ebtiA+IGdpblwgOwor55uwID4ga2FuXCA7Civnm6ogPiB0b3VcIDsKK+ebqCA+IHNodVwgOwor55ukID4gYmFuXCA7Civnm6AgPiByZWlcIDsKK+ebnyA+IG1laVwgOwor55ueID4gc2FuXCA7Civnm5YgPiBnYWlcIDsKK+eblCA+IGthaVwgOwor55uSID4ga291XCA7Civnm40gPiBrb3VcIDsKK+ebjCA+IHdhblwgOwor55q9ID4gdGVuXCA7CivnmqggPiBzZWlcIDsKK+eapSA+IGtvdVwgOwor55qjID4geW91XCA7CivnmqAgPiBzYWlcIDsKK+eanSA+IGtvdVwgOwor55qcID4ga291XCA7CivnmpogPiBnYWlcIDsKK+ealiA+IGthblwgOwor55qTID4ga291XCA7CivnmpAgPiBrb3VcIDsKK+eajiA+IGtvdVwgOwor55qLID4ga291XCA7CivnmoUgPiBoYWVcIDsKK+eagyA+IGJvdVwgOwor55qBID4gc291XCA7CivnmbQgPiByZW5cIDsKK+eZsiA+IHRlblwgOwor55mxID4gdGFuXCA7CivnmbAgPiB5b3VcIDsKK+eZrCA+IHNlblwgOwor55mpID4gcmFpXCA7CivnmaIgPiB5b3VcIDsKK+eZoSA+IGNoaVwgOwor55mcID4gZGVuXCA7CivnmZkgPiBzaG9cIDsKK+eZmCA+IHJlaVwgOwor55mVID4geW91XCA7CivnmYkgPiB0YW5cIDsKK+eZiCA+IGhhaVwgOwor55mGID4gcm91XCA7CivnmYAgPiBrb3VcIDsKK+eYuyA+IHJvdVwgOwor55i6ID4gcm91XCA7CivnmLUgPiBzYWlcIDsKK+eYsCA+IHJ1aVwgOwor55ipID4gdG91XCA7CivnmKYgPiBzb3VcIDsKK+eYoyA+IGthaVwgOwor55iiID4gaGFuXCA7CivnmKEgPiBzb3VcIDsKK+eYnSA+IGthblwgOwor55ibID4gc2VpXCA7CivnmJkgPiBzb3VcIDsKK+eYkyA+IHRhblwgOwor55iSID4gZ29uXCA7CivnmI0gPiB5b3VcIDsKK+eYiyA+IGZ1dVwgOwor55iKID4ga291XCA7CivnmIggPiBrZWlcIDsKK+eYgSA+IHN1aVwgOwor55ezID4gcmluXCA7Civnl7AgPiB0YW5cIDsKK+eXryA+IGthblwgOwor55esID4gZWtpXCA7Civnl6MgPiBhemFcIDsKK+eXoCA+IHNhblwgOwor55eZID4ga2VpXCA7Civnl5ggPiB0b3VcIDsKK+eXlyA+IGJhaVwgOwor55eOID4ga2FpXCA7Civnl4wgPiB0b3VcIDsKK+eXiiA+IHNlblwgOwor55eDID4ga2VuXCA7Civnl4EgPiBzZW5cIDsKK+eWvSA+IHNob1wgOwor55a8ID4gdG91XCA7CivnlrogPiBob3VcIDsKK+eWuCA+IHRhblwgOwor55a1ID4gc2hpXCA7CivnlrMgPiBrYW5cIDsKK+eWsSA+IGhvdVwgOwor55arID4gZWtpXCA7CivnlqUgPiBrYWlcIDsKK+eWoyA+IGlib1wgOwor55adID4gc2FuXCA7CivnlpMgPiB6YWlcIDsKK+eWkCA+IGNoaVwgOwor55aJID4gam91XCA7CivnloIgPiBqb3VcIDsKK+eWgSA+IHJ5dVwgOwor55W+ID4gc3VpXCA7Civnlb0gPiB0b25cIDsKK+eVpCA+IHNoaVwgOwor55WhID4ga2FpXCA7CivnlZ4gPiBib3VcIDsKK+eVmiA+IGhvblwgOwor55WXID4gdG91XCA7CivnlY4gPiBrZW5cIDsKK+eVjSA+IGthaVwgOwor55WLID4gdGVuXCA7CivnlYogPiBrb3VcIDsKK+eViCA+IGhhblwgOwor55S/ID4gbW91XCA7CivnlL4gPiBzaGlcIDsKK+eUvSA+IGtlblwgOwor55S5ID4gaGVpXCA7CivnlLggPiB0ZW5cIDsKK+eUtCA+IHNvdVwgOwor55SvID4gbmVpXCA7CivnlKwgPiB5b3VcIDsKK+eUpCA+IHp1aVwgOwor55SiID4gc2FuXCA7CivnlKAgPiBzZWlcIDsKK+eUnCA+IHRlblwgOwor55SbID4gdGVuXCA7CivnlJcgPiBnZW5cIDsKK+eUkSA+IHNvdVwgOwor55SOID4gc2VuXCA7CivnlI0gPiBib3VcIDsKK+eUhiA+IHNoaVwgOwor55SEID4ga2VuXCA7CivnlIEgPiBoZWlcIDsKK+eTvyA+IGhvdVwgOwor55O7ID4gY2hpXCA7Civnk7cgPiBzaGlcIDsKK+eTtCA+IHJpaVwgOwor55OyID4gdG9uXCA7Civnk6sgPiBob25cIDsKK+eTqiA+IGhhblwgOwor55OoID4ga291XCA7Civnk6MgPiBiZW5cIDsKK+eTmyA+IGthblwgOwor55OaID4gc2FuXCA7Civnk5ggPiBrYW5cIDsKK+eTkyA+IHJhblwgOwor55OPID4gcm91XCA7Civnk4wgPiBrYWlcIDsKK+eTiiA+IGtlaVwgOwor55OJID4gc2FuXCA7Civnk4ggPiByZWlcIDsKK+eSvyA+IHNlblwgOwor55K7ID4gc3VpXCA7CivnkrIgPiBzdWlcIDsKK+eSryA+IGthaVwgOwor55KuID4gdGFuXCA7CivnkqsgPiB0b3VcIDsKK+eSqiA+IHNvdVwgOwor55KpID4ga3lvXCA7CivnkqggPiBzYW5cIDsKK+eSoCA+IGhhblwgOwor55KcID4ga291XCA7CivnkpogPiBrZWlcIDsKK+eSmCA+IHJpblwgOwor55KSID4gdG91XCA7Civnko8gPiB0ZWlcIDsKK+eSiSA+IHJpblwgOwor55KHID4gc2VuXCA7CivnkoUgPiBzb3VcIDsKK+eSgSA+IHNvdVwgOwor55KAID4gc2FpXCA7Civnkb4gPiBraW5cIDsKK+eRtiA+IHlvdVwgOwor55GxID4gdGVuXCA7CivnkbAgPiBrYWlcIDsKK+eRryA+IHJvdVwgOwor55GtID4gdG91XCA7CivnkasgPiB0b3VcIDsKK+eRpCA+IHlvdVwgOwor55GiID4geW91XCA7CivnkZ4gPiB6dWlcIDsKK+eRnSA+IGtvdVwgOwor55GZID4gZG91XCA7CivnkZEgPiB0ZW5cIDsKK+eRjSA+IGthblwgOwor55GHID4gdGFpXCA7CivnkYYgPiBzZWlcIDsKK+eRhSA+IHRlaVwgOwor55GEID4gc2VuXCA7CivnkYEgPiBib3VcIDsKK+eQvyA+IGtvblwgOwor55C6ID4gaG91XCA7CivnkLkgPiBraW5cIDsKK+eQsyA+IHJpblwgOwor55CvID4ga2FuXCA7CivnkK4gPiBzb3VcIDsKK+eQqyA+IGhvdVwgOwor55CoID4ga29uXCA7CivnkKQgPiBzb3VcIDsKK+eQmiA+IGt5b1wgOwor55CFID4gcm91XCA7CivnkIQgPiBrZW5cIDsKK+eQgSA+IHplblwgOwor55CAID4ga2FuXCA7Civnj70gPiB0ZWlcIDsKK+ePuyA+IGJhaVwgOwor54+6ID4ga3VuXCA7Civnj7kgPiBzZWlcIDsKK+ePtSA+IHRlaVwgOwor54+uID4gaGFpXCA7Civnj60gPiBoYW5cIDsKK+ePqSA+IGtvdVwgOwor54+nID4geW91XCA7Civnj6IgPiBnaW5cIDsKK+ePoSA+IGtpblwgOwor54+gID4gc2h1XCA7Civnj5YgPiBrb3VcIDsKK+ePkyA+IGtvdVwgOwor54+KID4gc2FuXCA7Civnj4kgPiBiaW5cIDsKK+eOvSA+IGtvdVwgOwor5468ID4gc2VpXCA7CivnjrkgPiBrZW5cIDsKK+eOtyA+IHRlblwgOwor5461ID4gZ2FuXCA7CivnjrMgPiB0YWlcIDsKK+eOsiA+IHJlaVwgOwor546tID4gaGluXCA7CivnjqsgPiBiYWlcIDsKK+eOqiA+IGthblwgOwor546iID4gaGluXCA7CivnjqAgPiBrYWlcIDsKK+eOnyA+IGJpblwgOwor546cID4ga291XCA7CivnjpUgPiBrYW5cIDsKK+eOjiA+IHRlaVwgOwor546BID4ga2VuXCA7CivnjbcgPiBrb3VcIDsKK+eNsSA+IGhpblwgOwor542wID4gZG91XCA7Civnja8gPiBrdW5cIDsKK+eNriA+IHNlblwgOwor542sID4ga2FpXCA7CivnjasgPiBrZW5cIDsKK+eNqiA+IGthaVwgOwor542pID4gd2FpXCA7CivnjacgPiBrZW5cIDsKK+eNniA+IHRvdVwgOwor542YID4gaGVpXCA7CivnjZYgPiBmdW5cIDsKK+eNkiA+IGdvdVwgOwor542KID4gc291XCA7CivnjYUgPiBzaGlcIDsKK+eNgyA+IGdhaVwgOwor54y9ID4gYmVpXCA7CivnjLsgPiBzb25cIDsKK+eMuiA+IHlvdVwgOwor54y3ID4geXV1XCA7CivnjLUgPiBoZW5cIDsKK+eMtCA+IGtvdVwgOwor54yxID4gZG91XCA7CivnjK8gPiB0YW5cIDsKK+eMriA+IGtlblwgOwor54ypID4gc2VpXCA7CivnjKUgPiB3YWlcIDsKK+eMniA+IHNoYVwgOwor54ybID4gbW91XCA7CivnjJkgPiBzb3VcIDsKK+eMmCA+IHNlaVwgOwor54yNID4gcmFpXCA7CivnjIogPiBnZWlcIDsKK+eMhSA+IGhhaVwgOwor54yEID4ga2VpXCA7CivnjIIgPiBrYW5cIDsKK+eLviA+IHNlaVwgOwor54u7ID4gc2FuXCA7Civni7ogPiBnZW5cIDsKK+eLtyA+IGtlblwgOwor54u0ID4gaGVpXCA7Civni6kgPiBzaHVcIDsKK+eLoCA+IGdhblwgOwor54ufID4ga2FuXCA7Civni50gPiBzZW5cIDsKK+eLliA+IHl1dVwgOwor54uOID4ga291XCA7Civni4wgPiBzZWlcIDsKK+eLgCA+IGpvdVwgOwor54q+ID4gZ2luXCA7CivnirkgPiB5dXVcIDsKK+eKtCA+IGthblwgOwor54qyID4gc2FpXCA7CivnipsgPiBib3VcIDsKK+eKkiA+IGtvdVwgOwor54qOID4gaG91XCA7Civnio0gPiBrZW5cIDsKK+eKiSA+IGp1blwgOwor54qHID4gaG9uXCA7CivnioAgPiBzYWlcIDsKK+eJvSA+IGtlblwgOwor54m8ID4ga291XCA7CivnibsgPiBib3VcIDsKK+eJuCA+IHNoaVwgOwor54m3ID4gc2VuXCA7CivnibQgPiB0ZWlcIDsKK+eJriA+IHNlblwgOwor54msID4gaGFpXCA7CivniaggPiBrb3VcIDsKK+eJoyA+IGppblwgOwor54mfID4gYm91XCA7CivniZ0gPiBoaW5cIDsKK+eJmiA+IHRvdVwgOwor54mWID4geXV1XCA7CivniZUgPiBzb3VcIDsKK+eJkyA+IGJvdVwgOwor54mQID4gc291XCA7CivniY8gPiBjaHVcIDsKK+eJjiA+IHNvdVwgOwor54mLID4gc2VuXCA7CivniYUgPiB5b3VcIDsKK+eJgiA+IHNvdVwgOwor54i8ID4gc2hvXCA7CivniLsgPiBrb3VcIDsKK+eIqCA+IHNhblwgOwor54ikID4gcmFuXCA7CivniJ8gPiBrYW5cIDsKK+eIlyA+IHlvdVwgOwor54iJID4gcm91XCA7CivniIggPiByeW9cIDsKK+eHvyA+IHlvdVwgOwor54e+ID4gdG91XCA7Civnh7wgPiBqaW5cIDsKK+eHuSA+IHNlblwgOwor54enID4gc3VpXCA7Civnh6YgPiBzYW5cIDsKK+eHpSA+IHNvdVwgOwor54egID4gb2tpXCA7Civnh5wgPiBtb25cIDsKK+eHmSA+IHRvdVwgOwor54eXID4gcmFuXCA7Civnh5QgPiBoYW5cIDsKK+eHkyA+IGZ1blwgOwor54eQID4gcmluXCA7Civnh4wgPiBmdW5cIDsKK+eHiSA+IHRvblwgOwor54eBID4geW91XCA7Civnh4AgPiBzZW5cIDsKK+eGvyA+IGtvdVwgOwor54a+ID4gc2hpXCA7CivnhrMgPiBtYW5cIDsKK+eGsiA+IGtlaVwgOwor54avID4gemVuXCA7CivnhqwgPiBnb3VcIDsKK+eGoiA+IGhvdVwgOwor54agID4geXV1XCA7CivnhpUgPiBrb3VcIDsKK+eGlCA+IHlvdVwgOwor54aSID4ga2VpXCA7Civnho8gPiBrdW5cIDsKK+eGjCA+IHNlblwgOwor54aAID4geW91XCA7CivnhbkgPiBrb3VcIDsKK+eFrCA+IHlvdVwgOwor54WoID4gd2FpXCA7CivnhaUgPiBrYW5cIDsKK+eFoiA+IGtlaVwgOwor54WgID4geW91XCA7CivnhZwgPiBpa3VcIDsKK+eFmiA+IGtlaVwgOwor54WXID4gZGFuXCA7CivnhZYgPiBkYW5cIDsKK+eFkSA+IHNoYVwgOwor54WMID4ga291XCA7CivnhYsgPiBzZWlcIDsKK+eFiiA+IGtlblwgOwor54WJID4gcmVuXCA7CivnhYUgPiB0YW5cIDsKK+eErSA+IGtlaVwgOwor54SgID4gc2FpXCA7CivnhJ4gPiB0b25cIDsKK+eEnCA+IGtvblwgOwor54SZID4gaG91XCA7CivnhJUgPiBrYW5cIDsKK+eEiyA+IHNvdVwgOwor54SEID4ga3VuXCA7Civng70gPiBob3VcIDsKK+eDuiA+IGtvdVwgOwor54O5ID4gaG91XCA7Civng7EgPiBrZWlcIDsKK+eDpCA+IGtvdVwgOwor54OdID4gam91XCA7Civng5wgPiB0ZW5cIDsKK+eDmCA+IGtvdVwgOwor54OWID4gc2FpXCA7Civng5QgPiB0b3VcIDsKK+eDkSA+IHlvdVwgOwor54OLID4ga291XCA7Civng4ogPiB5b3VcIDsKK+eDiSA+IGthblwgOwor54K3ID4gc2h1XCA7CivngrQgPiB5b3VcIDsKK+eCsyA+IGhlaVwgOwor54KxID4gdGFpXCA7CivngrAgPiBob3VcIDsKK+eCryA+IGtlaVwgOwor54KuID4gaG91XCA7CivngqsgPiBrZW5cIDsKK+eCmyA+IHlvdVwgOwor54KZID4gc2hhXCA7CivngpggPiBraW5cIDsKK+eClyA+IGtvdVwgOwor54KWID4gdG9uXCA7CivngpUgPiBrb3VcIDsKK+eClCA+IGtlaVwgOwor54KSID4gc291XCA7CivngoYgPiBidW5cIDsKK+eChSA+IGtlaVwgOwor54G+ID4gc2FpXCA7CivngbYgPiBzb3VcIDsKK+eBtSA+IHJlaVwgOwor54GuID4ga291XCA7CivngaQgPiByYW5cIDsKK+eBoyA+IHdhblwgOwor54GdID4ga291XCA7CivngZggPiBkYW5cIDsKK+eBkSA+IHNhaVwgOwor54GLID4gaG91XCA7CivngYogPiBzZW5cIDsKK+eBiSA+IHlvdVwgOwor54GDID4gaHV1XCA7CivngL4gPiByYW5cIDsKK+eAvCA+IGpvdVwgOwor54CyID4gcmVuXCA7CivngKggPiByYWlcIDsKK+eApiA+IGNob1wgOwor54CjID4ga2FpXCA7CivngJ4gPiBqb3VcIDsKK+eAmiA+IGthblwgOwor54CXID4ga2VuXCA7CivngI0gPiB0ZW5cIDsKK+eAiSA+IHNoYVwgOwor54CBID4geW91XCA7CivngIAgPiB5dXVcIDsKK+a/viA+IHJ5b1wgOwor5r+9ID4gc2FuXCA7Civmv7UgPiBoaW5cIDsKK+a/syA+IHNlblwgOwor5r+rID4gcmFuXCA7Civmv6ggPiBzaGlcIDsKK+a/pCA+IHRvdVwgOwor5r+gID4gZ291XCA7Civmv5QgPiBkZWlcIDsKK+a/iiA+IGthaVwgOwor5r+GID4gZnVuXCA7Civmv4IgPiByZW5cIDsKK+a+tiA+IHNlblwgOwor5r6zID4gaWt1XCA7CivmvrEgPiB0ZW5cIDsKK+a+sCA+IHJlblwgOwor5r6vID4gc2FuXCA7Civmvq4gPiBrYWlcIDsKK+a+qiA+IHJlaVwgOwor5r6oID4gc2VpXCA7CivmvqcgPiByZWlcIDsKK+a+pSA+IGthaVwgOwor5r6jID4ga2FuXCA7CivmvqEgPiBzb3VcIDsKK+a+nyA+IHJpblwgOwor5r6aID4gaWt1XCA7CivmvpcgPiBrYW5cIDsKK+a+liA+IGthblwgOwor5r6UID4ga291XCA7CivmvpIgPiBrb3VcIDsKK+a+jiA+IGhvdVwgOwor5r6NID4gc2h1XCA7CivmvowgPiBzaGlcIDsKK+a+iyA+IGtvdVwgOwor5r6HID4gcm91XCA7CivmvoMgPiBnZWlcIDsKK+a+gSA+IGp1dVwgOwor5r6AID4ganV1XCA7Civmvb4gPiByaW5cIDsKK+a9vCA+IGRvdVwgOwor5r26ID4gc2FuXCA7CivmvbggPiBzYW5cIDsKK+a9tCA+IGNob1wgOwor5r2vID4gamluXCA7Civmva0gPiB0YW5cIDsKK+a9rCA+IHRhblwgOwor5r2oID4gc291XCA7CivmvaYgPiByb3VcIDsKK+a9pCA+IGp1blwgOwor5r2iID4ga291XCA7CivmvaEgPiB0b25cIDsKK+a9myA+IHNlblwgOwor5r2YID4gaGFuXCA7CivmvZMgPiBrZWlcIDsKK+a9kiA+IHRvdVwgOwor5r2FID4ga2FuXCA7CivmvYAgPiBzb3VcIDsKK+a8viA+IHlvdVwgOwor5ry8ID4gc2FpXCA7CivmvLYgPiBrYW5cIDsKK+a8sSA+IHNvdVwgOwor5rywID4gaG91XCA7CivmvK8gPiB0b3VcIDsKK+a8rSA+IGJvdVwgOwor5ryrID4gbWFuXCA7CivmvKkgPiBzZW5cIDsKK+a8myA+IHRvdVwgOwor5ryWID4ga291XCA7CivmvJEgPiBnYWlcIDsKK+a8jCA+IGtpblwgOwor5ryIID4gc2VpXCA7CivmvIQgPiBnYWlcIDsKK+a7viA+IGtvblwgOwor5ru9ID4geW91XCA7Civmu7sgPiBzYW5cIDsKK+a7oSA+IG1hblwgOwor5rueID4gdGFpXCA7Civmu5ogPiBrb25cIDsKK+a7lSA+IHRvdVwgOwor5ruUID4gdG91XCA7Civmu44gPiBrZWlcIDsKK+a7jSA+IGNoaVwgOwor5ruJID4ga291XCA7Civmu4ggPiBrb3VcIDsKK+a7hyA+IHRlblwgOwor5ruEID4gc291XCA7Civmu4IgPiBib3VcIDsKK+a7gSA+IGNob1wgOwor5rq/ID4gaGFuXCA7CivmursgPiB0b3VcIDsKK+a6tyA+IGtvblwgOwor5rqyID4gc291XCA7Civmuq4gPiBzaGlcIDsKK+a6nyA+IG1laVwgOwor5rqZID4gdGFpXCA7CivmupggPiBrb3VcIDsKK+a6kyA+IHJlblwgOwor5rqPID4gdG91XCA7CivmuokgPiBnYWlcIDsKK+a5vSA+IHNoaVwgOwor5rm7ID4ganVuXCA7CivmubYgPiBzZW5cIDsKK+a5syA+IGRhblwgOwor5rmyID4ga2FuXCA7CivmuaMgPiBiaW5cIDsKK+a5nyA+IGtvdVwgOwor5rmeID4gdG91XCA7CivmuZ0gPiBrYWlcIDsKK+a5myA+IHRhblwgOwor5rmXID4gaG91XCA7CivmuZQgPiBzZW5cIDsKK+a5kyA+IGhvblwgOwor5rmRID4gc2hvXCA7CivmuY8gPiBrYWlcIDsKK+a5jiA+IGJlblwgOwor5rmNID4gdGFuXCA7CivmuYogPiBzb3VcIDsKK+a5iSA+IHRlblwgOwor5rmIID4gYmFpXCA7CivmuYUgPiByZW5cIDsKK+a5gyA+IGhhaVwgOwor5ri+ID4ga29uXCA7CivmuLsgPiBzZWlcIDsKK+a4uSA+IGtvdVwgOwor5ri4ID4geXV1XCA7CivmuLIgPiBzZW5cIDsKK+a4pyA+IHRlaVwgOwor5rilID4gYWt1XCA7CivmuKIgPiBodXVcIDsKK+a4nyA+IHRlaVwgOwor5riZID4ga2FuXCA7CivmuJMgPiBrZWlcIDsKK+a4gCA+IGhvblwgOwor5re4ID4gc2VpXCA7Civmt7YgPiByYWlcIDsKK+a3sCA+IGRlblwgOwor5revID4gaWt1XCA7Civmt64gPiB3YWlcIDsKK+a3rCA+IHNhaVwgOwor5reqID4gcmluXCA7Civmt6ggPiBqb3VcIDsKK+a3piA+IGthblwgOwor5refID4gdGVuXCA7Civmt5sgPiBzZWlcIDsKK+a3miA+IHJ1aVwgOwor5reZID4gc291XCA7Civmt5ggPiB0b3VcIDsKK+a3liA+IGRvdVwgOwor5reSID4gc2VpXCA7Civmt48gPiBrb3VcIDsKK+a3jiA+IGhvdVwgOwor5reKID4ga2FuXCA7Civmt4YgPiBrb3VcIDsKK+a3hCA+IHNoaVwgOwor5reAID4gdGVuXCA7Civmtr0gPiBrb25cIDsKK+a2tyA+IHRvdVwgOwor5ra1ID4ga2FuXCA7CivmtqwgPiBrZWlcIDsKK+a2qiA+IGh1dVwgOwor5rajID4ga2FuXCA7CivmtpsgPiB0b3VcIDsKK+a2miA+IHNlaVwgOwor5raYID4gc2hpXCA7CivmtpcgPiBzZWlcIDsKK+a2liA+IHJlaVwgOwor5raVID4gdGVpXCA7CivmtpQgPiBzYW5cIDsKK+a2kyA+IGtlblwgOwor5raSID4gdG9uXCA7CivmtpEgPiBzb3VcIDsKK+a2hyA+IHRlaVwgOwor5rW8ID4gYmFpXCA7CivmtbAgPiByZW5cIDsKK+a1qSA+IGtvdVwgOwor5rWnID4gdGVpXCA7CivmtaYgPiB1cmFcIDsKK+a1pSA+IHl1dVwgOwor5rWkID4ga291XCA7CivmtaMgPiBrYW5cIDsKK+a1nyA+IHl1dVwgOwor5rS9ID4ga291XCA7CivmtLggPiBrb3VcIDsKK+a0riA+IHRvdVwgOwor5rSqID4ga291XCA7CivmtKggPiBrb3VcIDsKK+a0miA+IGtvdVwgOwor5rSZID4gc2h1XCA7CivmtIogPiBzZW5cIDsKK+a0hCA+IGthaVwgOwor5rO0ID4ga2FuXCA7Civms7IgPiBzZWlcIDsKK+azsCA+IHRhaVwgOwor5rOvID4gYmluXCA7Civms64gPiBoYW5cIDsKK+azqyA+IGtlblwgOwor5rOqID4gcnVpXCA7Civms6kgPiBzb3VcIDsKK+azoCA+IHJlaVwgOwor5rOcID4gdGVpXCA7Civms5sgPiBoYW5cIDsKK+azmiA+IHNlaVwgOwor5rOZID4gaG91XCA7Civms5cgPiBzaGlcIDsKK+azliA+IGJvdVwgOwor5rOUID4ga2FuXCA7Civms5EgPiB5dXVcIDsKK+azjSA+IGhvblwgOwor5rOCID4ga2VpXCA7Civmsr4gPiB0ZW5cIDsKK+ayuiA+IHRlblwgOwor5rK1ID4gZGVpXCA7CivmsrQgPiByZWlcIDsKK+ayriA+IHNob1wgOwor5rKfID4ga291XCA7CivmspwgPiBoYW5cIDsKK+aymyA+IGhhaVwgOwor5rKaID4gc2hpXCA7CivmspcgPiB0ZW5cIDsKK+aylCA+IGJlblwgOwor5rKTID4gdG91XCA7CivmsoYgPiBrb3VcIDsKK+ayhSA+IGdlblwgOwor5rG+ID4gZnVuXCA7CivmsbggPiBob3VcIDsKK+axtiA+IGJ1blwgOwor5rG0ID4gaGVuXCA7CivmsbMgPiBoZW5cIDsKK+axryA+IGtvdVwgOwor5rGtID4gemVpXCA7CivmsasgPiBrZWlcIDsKK+axpyA+IGtlblwgOwor5rGeID4ga291XCA7CivmsZwgPiBzaGlcIDsKK+axlSA+IHNhblwgOwor5rGSID4gYm91XCA7CivmsY8gPiB0YWlcIDsKK+axjiA+IGhhblwgOwor5rGNID4ga2FuXCA7CivmsL4gPiBoYW5cIDsKK+awvSA+IHRvblwgOwor5rC6ID4gc3VpXCA7CivmsLkgPiBrYW5cIDsKK+awriA+IHRhblwgOwor5rCnID4geW91XCA7CivmsKYgPiBnYWlcIDsKK+awmyA+IGZ1blwgOwor5rCZID4gc2VuXCA7CivmsJMgPiBib3VcIDsKK+awkCA+IHRlaVwgOwor5rCJID4gc291XCA7CivmsIQgPiBqdXVcIDsKK+avvyA+IHNhblwgOwor5q+3ID4gYm91XCA7Civmr7MgPiB6ZWlcIDsKK+avryA+IHRhblwgOwor5q+nID4ganV1XCA7Civmr6EgPiBzZW5cIDsKK+avmiA+IHNhblwgOwor5q+TID4gaWt1XCA7Civmr48gPiBtYWlcIDsKK+avjCA+IGthblwgOwor5q69ID4ga291XCA7CivmrrggPiBrZWlcIDsKK+ausyA+IHNodVwgOwor5q6yID4gc2VuXCA7CivmrrEgPiBzZW5cIDsKK+auryA+IGhpblwgOwor5q6uID4gcmVuXCA7CivmrqsgPiB0YW5cIDsKK+auqSA+IHNhblwgOwor5q6oID4ga2FpXCA7CivmrqMgPiBraW5cIDsKK+auoiA+IHRlaVwgOwor5q6XID4geW91XCA7CivmrpUgPiBmdXVcIDsKK+auiSA+IGp1blwgOwor5q6FID4gc291XCA7CivmroQgPiB0ZW5cIDsKK+augyA+IHlvdVwgOwor5q6AID4geW91XCA7CivmrbIgPiBzZWlcIDsKK+atriA+IGp1dVwgOwor5q2rID4ga3lvXCA7CivmrZ0gPiBla2lcIDsKK+atmyA+IGthblwgOwor5q2TID4ga2FuXCA7CivmrYkgPiBrZW5cIDsKK+athiA+IGtpblwgOwor5q2DID4gc291XCA7CivmrL8gPiB0YW5cIDsKK+asviA+IGthblwgOwor5qy9ID4ga2luXCA7CivmrLUgPiBrYW5cIDsKK+asrCA+IGthaVwgOwor5qyjID4gZ29uXCA7CivmrJ4gPiByZWlcIDsKK+aslyA+IHJhblwgOwor5qyWID4gcmFuXCA7CivmrJIgPiByYW5cIDsKK+askSA+IHNhblwgOwor5qyQID4gcmVpXCA7CivmrIkgPiBzb3VcIDsKK+ashiA+IHNvdVwgOwor5qyEID4gcmFuXCA7CivmrIMgPiBzYW5cIDsKK+arvCA+IHNlblwgOwor5qu6ID4gcmVpXCA7Civmq7AgPiBrYWlcIDsKK+arpyA+IHNob1wgOwor5qulID4gY2h1XCA7Civmq6QgPiBzZW5cIDsKK+arnCA+IGtvdVwgOwor5quaID4gcnlvXCA7Civmq5YgPiByeW9cIDsKK+arlSA+IHNhblwgOwor5quUID4gcmVpXCA7Civmq5EgPiByYWlcIDsKK+arkCA+IHJ1aVwgOwor5quMID4geXV1XCA7Civmq4kgPiBjaHVcIDsKK+ariCA+IHRvdVwgOwor5quGID4ga2FpXCA7Civmq4IgPiBrYWlcIDsKK+aqviA+IGtlaVwgOwor5qq7ID4gb3JpXCA7CivmqrggPiBuZWlcIDsKK+aqsyA+IGJpblwgOwor5qqwID4gaGVuXCA7Civmqq8gPiB0YWlcIDsKK+aqriA+IHRvdVwgOwor5qqsID4gYm91XCA7CivmqqkgPiByaW5cIDsKK+aqoCA+IGtlaVwgOwor5qqeID4ga2FpXCA7CivmqpEgPiByYWlcIDsKK+aqiSA+IHRlaVwgOwor5qqHID4gc3VpXCA7CivmqoYgPiBzYW5cIDsKK+aqgSA+IHJpblwgOwor5qm+ID4gc2h1XCA7CivmqaogPiB6ZW5cIDsKK+appyA+IHNvdVwgOwor5qmmID4gdG91XCA7CivmqaQgPiB6dWlcIDsKK+apliA+IHRvdVwgOwor5qmVID4gdG91XCA7CivmqZEgPiByb3VcIDsKK+apjiA+IGhhblwgOwor5qmJID4gcmluXCA7CivmqYggPiBrYWlcIDsKK+aphyA+IHplaVwgOwor5qmEID4ga2FuXCA7CivmqL8gPiBzZW5cIDsKK+aotyA+IHNvdVwgOwor5qi2ID4gc2FpXCA7CivmqKggPiBzZWlcIDsKK+aopCA+IGpvdVwgOwor5qigID4gYm9uXCA7CivmqJ4gPiBzdXVcIDsKK+aolyA+IGNob1wgOwor5qiUID4gc291XCA7CivmqI8gPiBydWlcIDsKK+aojCA+IGthblwgOwor5qiLID4gdG9pXCA7CivmqIogPiBoYW5cIDsKK+aogyA+IHJvdVwgOwor5qiBID4gdG91XCA7Civmp78gPiBraW5cIDsKK+anviA+IGJhblwgOwor5qe5ID4ga291XCA7Civmp7UgPiBrYW5cIDsKK+ansSA+IHl1dVwgOwor5qevID4gc2FpXCA7Civmp6sgPiB0YW5cIDsKK+anqiA+IGdhaVwgOwor5qenID4gc2FuXCA7Civmp54gPiByb3VcIDsKK+annSA+IHRvdVwgOwor5qeZID4gdGVuXCA7Civmp5MgPiBrb3VcIDsKK+ankSA+IGJhaVwgOwor5qeQID4ga2FpXCA7Civmp4ggPiBkb3VcIDsKK+angyA+IGhhblwgOwor5qeBID4ga291XCA7CivmprwgPiBrb3VcIDsKK+amuCA+IHRhaVwgOwor5qaxID4gc3VpXCA7Civmpq8gPiBzaGlcIDsKK+amrSA+IHNoYVwgOwor5qamID4ga2FuXCA7CivmpqUgPiBrb3VcIDsKK+amoCA+IGJlaVwgOwor5qacID4gYm91XCA7CivmppUgPiB5b3VcIDsKK+amlCA+IHJvdVwgOwor5qW7ID4ga291XCA7CivmpbogPiBqdXVcIDsKK+altyA+IGthaVwgOwor5qW0ID4gdGVpXCA7CivmpbMgPiBiYWlcIDsKK+alsSA+IHNvdVwgOwor5qWvID4ganVuXCA7Civmpa4gPiBjaG9cIDsKK+alqiA+IHlvdVwgOwor5qWpID4gaGVuXCA7CivmpaggPiB0ZWlcIDsKK+alpiA+IGtlblwgOwor5qWlID4ga2VuXCA7CivmpaQgPiBzb3VcIDsKK+alniA+IHJvdVwgOwor5qWdID4gcmVuXCA7CivmpZkgPiBib3VcIDsKK+allyA+IGtlblwgOwor5qWOID4ga29uXCA7CivmpL0gPiB0ZW5cIDsKK+aktiA+IHNodVwgOwor5qSzID4gd2FpXCA7CivmpLEgPiBmdXVcIDsKK+akpiA+IGtlblwgOwor5qSiID4ga2FpXCA7CivmpJcgPiB0ZWlcIDsKK+akliA+IGhvdVwgOwor5qSRID4gaGVpXCA7CivmpJAgPiBreW9cIDsKK+akjCA+IGtvdVwgOwor5qSJID4gam91XCA7Civmo7wgPiBodW5cIDsKK+ajuSA+IHNhb1wgOwor5qO2ID4gcmFpXCA7Civmo7UgPiBrYW5cIDsKK+ajsSA+IHJvdVwgOwor5qOwID4gc29pXCA7Civmo68gPiBqaW5cIDsKK+ajrSA+IGVraVwgOwor5qOsID4ga2VuXCA7Civmo6ggPiBrZWlcIDsKK+ajpyA+IHNhblwgOwor5qOlID4gaGFuXCA7Civmo6MgPiB0ZWlcIDsKK+ajoSA+IGtvdVwgOwor5qOgID4gdG91XCA7Civmo5kgPiByZWlcIDsKK+ajliA+IHRvdVwgOwor5qOVID4gc2h1XCA7Civmo5QgPiBrb25cIDsKK+ajkyA+IGhvdVwgOwor5qORID4gaGFpXCA7Civmo40gPiBrb25cIDsKK+ajjCA+IHNhaVwgOwor5qOJID4gbWVuXCA7Civmo4ggPiBzZW5cIDsKK+ajhiA+IHJpblwgOwor5qOFID4gaGVpXCA7CivmorwgPiB0b3VcIDsKK+aiuSA+IGJpblwgOwor5qK1ID4gZnV1XCA7CivmorEgPiBrb25cIDsKK+aiqiA+IHRvdVwgOwor5qKhID4ga2FuXCA7CivmoqAgPiByeW9cIDsKK+aimiA+IGJhblwgOwor5qKYID4ga2VuXCA7CivmopcgPiBrb3VcIDsKK+ailiA+IGhhaVwgOwor5qKUID4gc2hpXCA7Civmoo0gPiBzb3VcIDsKK+aiiCA+IGhvdVwgOwor5qKGID4gaG91XCA7CivmooQgPiB5b3VcIDsKK+ahvyA+IGthblwgOwor5qG+ID4ga3VuXCA7CivmobsgPiBob3VcIDsKK+ahuSA+IHJvdVwgOwor5qG1ID4genVpXCA7CivmobEgPiBrZWlcIDsKK+ahryA+IHRlaVwgOwor5qGuID4gaGFpXCA7CivmoaMgPiB0b3VcIDsKK+ahkyA+IGthblwgOwor5qGSID4gc291XCA7CivmoYogPiBrZW5cIDsKK+ahhSA+IGdhaVwgOwor5qGEID4ga291XCA7CivmoL0gPiBzYWlcIDsKK+agtCA+IHNlblwgOwor5qCzID4gcm91XCA7CivmoLIgPiBnb3VcIDsKK+agryA+IGlrdVwgOwor5qCsID4gc2VpXCA7CivmoKsgPiBzb25cIDsKK+agnyA+IGhlaVwgOwor5qCdID4gdGVuXCA7CivmoJkgPiBrb3VcIDsKK+agliA+IHNlaVwgOwor5qCUID4ga2VpXCA7CivmoIggPiBzYW5cIDsKK+afuSA+IHNoaVwgOwor5p+2ID4gc2hpXCA7Civmn6wgPiBrYW5cIDsKK+afpiA+IHRhblwgOwor5p+iID4gdGVpXCA7Civmn5wgPiBreW9cIDsKK+afmSA+IGtvdVwgOwor5p+YID4gc2hhXCA7Civmn5EgPiBrYW5cIDsKK+afiSA+IGhhblwgOwor5p+IID4gaGFuXCA7Civmn4YgPiByb3VcIDsKK+afgyA+IHJlaVwgOwor5p6+ID4gc2hpXCA7Civmnr0gPiBzb3VcIDsKK+aevCA+IHlvdVwgOwor5p65ID4gaG91XCA7CivmnrQgPiBrYWlcIDsKK+aesiA+IHNoaVwgOwor5p6wID4gaGVpXCA7CivmnqIgPiBzdXVcIDsKK+aemyA+IHNvdVwgOwor5p6YID4gemVpXCA7CivmnpYgPiB5b3VcIDsKK+aekyA+IHNodVwgOwor5p6PID4gZGFuXCA7CivmnowgPiBmdW5cIDsKK+aeiyA+IGhvdVwgOwor5p6FID4ga2VpXCA7CivmnoQgPiBrb3VcIDsKK+advCA+IGNob1wgOwor5p20ID4ga2VuXCA7CivmnbMgPiB5b3VcIDsKK+adsiA+IGtvdVwgOwor5p2uID4gaGFpXCA7Civmna0gPiBrdWlcIDsKK+adrCA+IGdlblwgOwor5p2nID4gbWFuXCA7CivmnaAgPiBrb3VcIDsKK+adnSA+IGNoaVwgOwor5p2VID4gdGVpXCA7CivmnYYgPiBrYW5cIDsKK+acvyA+IHNoaVwgOwor5py+ID4gdG91XCA7CivmnLcgPiB0b3VcIDsKK+acqSA+IHRvdVwgOwor5pyiID4gYm91XCA7CivmnJwgPiB0b25cIDsKK+acmSA+IG1laVwgOwor5pyYID4gc2VuXCA7CivmnJYgPiByb3VcIDsKK+acjiA+IHJlaVwgOwor5pyMID4gaGFuXCA7Civmm7ogPiBzb3VcIDsKK+abuSA+IHNvdVwgOwor5puuID4gZ2FuXCA7Civmm6wgPiBzYWlcIDsKK+abqyA+IHJhblwgOwor5pupID4gZG91XCA7Civmm6ggPiByb3VcIDsKK+aboSA+IGpvdVwgOwor5pugID4ga291XCA7Civmm5sgPiBrdW5cIDsKK+abmiA+IGJvdVwgOwor5puUID4ga2VpXCA7Civmm44gPiBla2lcIDsKK+abiCA+IHRvdVwgOwor5puFID4geW91XCA7Civmm4QgPiB5b3VcIDsKK+abgyA+IHRhaVwgOwor5puCID4ga291XCA7Civmmr4gPiB0b25cIDsKK+aauyA+IGtlaVwgOwor5pq5ID4gc2VuXCA7CivmmrUgPiBrYW5cIDsKK+aarSA+IGtvdVwgOwor5pqkID4ga291XCA7CivmmqAgPiBrb3VcIDsKK+aanyA+IGthaVwgOwor5pqdID4gbWVpXCA7CivmmpogPiB5b3VcIDsKK+aamCA+IHlvdVwgOwor5pqSID4gc2VpXCA7CivmmowgPiBrZWlcIDsKK+aaiyA+IGJpblwgOwor5pqEID4ga2VuXCA7CivmmbkgPiBla2lcIDsKK+aZuCA+IHRlaVwgOwor5pm1ID4ga2VpXCA7CivmmawgPiBzYWlcIDsKK+aZqiA+IHRlblwgOwor5pmnID4ga291XCA7CivmmaYgPiBrYWlcIDsKK+aZoCA+IHNlaVwgOwor5pmfID4gc2VpXCA7CivmmZwgPiBrb25cIDsKK+aZmyA+IGtlblwgOwor5pmaID4gYmFuXCA7CivmmZggPiBrYW5cIDsKK+aZlyA+IGthblwgOwor5pmOID4ga291XCA7CivmmYYgPiBrYWlcIDsKK+aZhSA+IGtlblwgOwor5pmEID4ga291XCA7CivmmYMgPiBrb3VcIDsKK+aYvyA+IGtvdVwgOwor5pi7ID4ga291XCA7CivmmLEgPiBpa3VcIDsKK+aYsCA+IHNoaVwgOwor5pisID4ga29uXCA7CivmmKogPiBoZW5cIDsKK+aYpyA+IG1haVwgOwor5pimID4ga291XCA7CivmmKQgPiByZWlcIDsKK+aYoSA+IGtlblwgOwor5pieID4gaGVpXCA7CivmmJ0gPiBzYW5cIDsKK+aYnCA+IHlvdVwgOwor5piVID4ga2luXCA7CivmmJEgPiBraW5cIDsKK+aYjyA+IGtvblwgOwor5piNID4ga2VuXCA7CivmmIogPiBrb3VcIDsKK+aYiSA+IGhvdVwgOwor5piEID4gaGFuXCA7Civml7sgPiBiaW5cIDsKK+aXtSA+IHRhblwgOwor5peyID4gdGFpXCA7Civml7EgPiBrYW5cIDsKK+aXsCA+IGthblwgOwor5pebID4gaGFuXCA7Civml5kgPiBoYW5cIDsKK+aXmCA+IHNoaVwgOwor5peUID4ga2VuXCA7Civml4wgPiBzZWlcIDsKK+aXhiA+IGhhaVwgOwor5peEID4gYm91XCA7Civml4MgPiBzZW5cIDsKK+aWvyA+IHlvdVwgOwor5pa9ID4gc2hpXCA7CivmlrQgPiByaW5cIDsKK+aWsyA+IGtpblwgOwor5panID4gb25vXCA7CivmlqYgPiBnaW5cIDsKK+aWpCA+IGtpblwgOwor5paVID4gcmFuXCA7CivmlpIgPiBoYW5cIDsKK+aWjCA+IGhpblwgOwor5paKID4gc2VpXCA7CivmloYgPiBrb3VcIDsKK+aWhSA+IGtvdVwgOwor5paCID4gcmVuXCA7CivmloEgPiBla2lcIDsKK+aVuyA+IGtlaVwgOwor5pWyID4ga291XCA7Civmla8gPiBiaW5cIDsKK+aVrSA+IHlvdVwgOwor5pWpID4ga291XCA7CivmlaYgPiB0b25cIDsKK+aVnyA+IHRlblwgOwor5pWdID4gaGVpXCA7CivmlZYgPiBnb3VcIDsKK+aVlCA+IGd5b1wgOwor5pWDID4gYmluXCA7CivmlL0gPiBoYW5cIDsKK+aUvCA+IGthblwgOwor5pS7ID4ga291XCA7CivmlLggPiB5dXVcIDsKK+aUtyA+IGtvdVwgOwor5pSuID4gZG91XCA7CivmlKwgPiByYW5cIDsKK+aUqSA+IHRvdVwgOwor5pSmID4gcmVpXCA7CivmlKQgPiB0YW5cIDsKK+aUoyA+IHJlblwgOwor5pSiID4gc2FuXCA7CivmlJ8gPiBrdW5cIDsKK+aUnCA+IGtlaVwgOwor5pSbID4gc2FuXCA7CivmlJkgPiBzZW5cIDsKK+aUmCA+IGpvdVwgOwor5pSUID4gcmFuXCA7CivmlJMgPiBrZW5cIDsKK+aUjyA+IHJvdVwgOwor5pSIID4ga3VuXCA7CivmlIUgPiBzYW5cIDsKK+aUhCA+IGNob1wgOwor5pSBID4geW91XCA7CivmlIAgPiBoYW5cIDsKK+aTviA+IGpvdVwgOwor5pO7ID4gc291XCA7Civmk7ogPiBoYWlcIDsKK+aTtiA+IHNlblwgOwor5pOwID4gZG91XCA7Civmk68gPiBoaW5cIDsKK+aTrSA+IGt5b1wgOwor5pOqID4geW91XCA7Civmk6UgPiByYW5cIDsKK+aTpCA+IGtvdVwgOwor5pOjID4gdG91XCA7Civmk6AgPiBzZWlcIDsKK+aTmiA+IGt5b1wgOwor5pOVID4ga2VpXCA7Civmk5IgPiBraW5cIDsKK+aTkCA+IGthblwgOwor5pOOID4ga2VpXCA7Civmk4sgPiB0b3VcIDsKK+aThCA+IHJ5b1wgOwor5pOCID4gcmFpXCA7Civmk4EgPiB5b3VcIDsKK+aSvyA+IHJlblwgOwor5pK9ID4ga291XCA7CivmkrwgPiBrYW5cIDsKK+aSsyA+IGtpblwgOwor5pKwID4gc2FuXCA7CivmkqYgPiBzaGFcIDsKK+aSoyA+IHRhblwgOwor5pKhID4gc291XCA7Civmkp4gPiBzaHVcIDsKK+aSmyA+IHJpblwgOwor5pKaID4gbmVuXCA7CivmkpkgPiBzb25cIDsKK+aSmCA+IHRvdVwgOwor5pKVID4gc2VpXCA7CivmkpMgPiBkb3VcIDsKK+aSkiA+IHNhblwgOwor5pKPID4gc2FuXCA7CivmkoggPiByb3VcIDsKK+aRuyA+IHNhblwgOwor5pG2ID4gdGFuXCA7CivmkbQgPiBjaG9cIDsKK+aRsyA+IGtvdVwgOwor5pGvID4gc2hpXCA7CivmkacgPiBzYWlcIDsKK+aRoSA+IGthaVwgOwor5pGgID4gc291XCA7CivmkZ8gPiByb3VcIDsKK+aRnCA+IGthblwgOwor5pGbID4gY2hpXCA7CivmkZogPiB0b3VcIDsKK+aRkyA+IGhvdVwgOwor5pGSID4gaGVpXCA7CivmkYcgPiB5b3VcIDsKK+aQtCA+IGtlblwgOwor5pCvID4gdG91XCA7CivmkK0gPiB0b3VcIDsKK+aQrCA+IGhhblwgOwor5pCqID4gdG91XCA7CivmkKggPiB0b3VcIDsKK+aQpSA+IHRhaVwgOwor5pCkID4gYWt1XCA7CivmkJ4gPiBrb3VcIDsKK+aQmCA+IHNoaVwgOwor5pCXID4gdG91XCA7CivmkJQgPiBzb3VcIDsKK+aQkiA+IGhvdVwgOwor5pCGID4ga291XCA7Civmj7kgPiBoYWlcIDsKK+aPtyA+IHNvdVwgOwor5o+1ID4ga2VuXCA7Civmj60gPiBrZWlcIDsKK+aPqSA+IGthaVwgOwor5o+lID4gdGVpXCA7Civmj6MgPiBzaGlcIDsKK+aPliA+IHl1dVwgOwor5o+UID4gc291XCA7Civmj5MgPiBzaGlcIDsKK+aPkiA+IHNvdVwgOwor5o+OID4gc2VuXCA7Civmj4ggPiBrb3VcIDsKK+aPhSA+IGtlblwgOwor5o+BID4gdGVpXCA7Civmj4AgPiBrYW5cIDsKK+aOvSA+IGhvdVwgOwor5o6vID4ga291XCA7Civmjq4gPiBrZW5cIDsKK+aOrSA+IHRlblwgOwor5o6rID4gc291XCA7CivmjpkgPiBzb3VcIDsKK+aOliA+IGVraVwgOwor5o6UID4ga2FuXCA7CivmjpAgPiBrb3VcIDsKK+aOjyA+IHRvdVwgOwor5o6KID4gaG91XCA7CivmjokgPiB0b3VcIDsKK+aOhCA+IHJvblwgOwor5o6CID4gdGVuXCA7CivmjoAgPiBraW5cIDsKK+aNvyA+IHNlaVwgOwor5o22ID4gc3VpXCA7CivmjbUgPiB0ZW5cIDsKK+aNtCA+IGZ1blwgOwor5o2xID4gZ2FpXCA7Civmja0gPiBoYWlcIDsKK+aNqyA+IG1vblwgOwor5o2nID4gaG91XCA7CivmjaYgPiBraW5cIDsKK+aNpSA+IHdhblwgOwor5o2iID4ga2FuXCA7CivmjZsgPiByeW9cIDsKK+aNmCA+IHNvblwgOwor5o2OID4gc291XCA7CivmjY0gPiBrYW5cIDsKK+aNiiA+IGhvdVwgOwor5o2GID4ga29uXCA7CivmjYMgPiBrdW5cIDsKK+aMuiA+IHRlaVwgOwor5oy5ID4geXV1XCA7CivmjLUgPiByb3VcIDsKK+aMrSA+IGtvdVwgOwor5oyNID4ga291XCA7CivmjIogPiByb3VcIDsKK+aMhCA+IGtvdVwgOwor5oyCID4ga2VpXCA7Civmi7wgPiBob3VcIDsKK+aLtyA+IGdvdVwgOwor5ou0ID4gc2VuXCA7Civmi68gPiBqb3VcIDsKK+aLqiA+IHNlblwgOwor5ouaID4gaGVuXCA7Civmi5IgPiBreW9cIDsKK+aLkSA+IGthblwgOwor5ouQID4ga2FpXCA7Civmi44gPiByZWlcIDsKK+aLjCA+IGhhblwgOwor5ouLID4gaG91XCA7Civmi4ggPiBkZW5cIDsKK+aLhCA+IGNodVwgOwor5oq/ID4gYmluXCA7Civmir4gPiBreW9cIDsKK+aKuiA+IGJhaVwgOwor5oqsID4gdGFpXCA7CivmiqggPiBob3VcIDsKK+aKpiA+IGhlaVwgOwor5oqWID4gdG91XCA7CivmipQgPiBob3VcIDsKK+aKjyA+IGdhblwgOwor5oqDID4gYmVuXCA7Civmib0gPiB0b25cIDsKK+aJvCA+IGFrdVwgOwor5om6ID4gdGVpXCA7CivmibMgPiBoYW5cIDsKK+aJrSA+IGp1dVwgOwor5omjID4ga291XCA7CivmiZ4gPiBrYW5cIDsKK+aJmyA+IGtvdVwgOwor5omUID4gam91XCA7CivmiZIgPiBoYWlcIDsKK+aJjCA+IHNodVwgOwor5omDID4ga2VpXCA7CivmiYIgPiB0ZW5cIDsKK+aJgSA+IGhlblwgOwor5oi+ID4gcmVpXCA7CivmiLwgPiBib3VcIDsKK+aIuSA+IGFrdVwgOwor5oipID4gc2VuXCA7CivmiKcgPiBzb3VcIDsKK+aIoSA+IGthblwgOwor5oiUID4gc2FuXCA7CivmiI4gPiBqdXVcIDsKK+aIhyA+IHRvdVwgOwor5oiDID4gdG91XCA7CivmiIEgPiBkYW5cIDsKK+aHvSA+IGthblwgOwor5oe6ID4gemFuXCA7Civmh7YgPiByYW5cIDsKK+aHtCA+IHphblwgOwor5oetID4ga291XCA7Civmh6wgPiBrb3VcIDsKK+aHqSA+IHlvdVwgOwor5oejID4gbW9uXCA7Civmh6IgPiByYW5cIDsKK+aHniA+IGJvdVwgOwor5oedID4gZ2FpXCA7Civmh5wgPiBib3VcIDsKK+aHlCA+IHJpblwgOwor5oeNID4gcmluXCA7Civmh4wgPiBla2lcIDsKK+aHiyA+IGJvdVwgOwor5oeIID4ga2FpXCA7Civmh4cgPiBrb25cIDsKK+aHhiA+IHNvdVwgOwor5oeCID4gdG91XCA7Civmh4EgPiBrZW5cIDsKK+aHgCA+IHdhaVwgOwor5oa+ID4ga2FuXCA7CivmhrwgPiBrZWlcIDsKK+aGuSA+IGRvdVwgOwor5oa4ID4gc2VuXCA7CivmhrIgPiBrZW5cIDsKK+aGqyA+IGJpblwgOwor5oaqID4ga2FuXCA7CivmhqggPiBrYW5cIDsKK+aGpSA+IHJvdVwgOwor5oadID4gdGFpXCA7CivmhpogPiB0YW5cIDsKK+aGlyA+IGdpblwgOwor5oaTID4ga2VpXCA7CivmhpIgPiBrYWlcIDsKK+aGiiA+IGhhaVwgOwor5oaHID4ga2VpXCA7CivmhoQgPiBjaGlcIDsKK+aGgyA+IHRvdVwgOwor5oaBID4gc291XCA7CivmhbsgPiBrZW5cIDsKK+aFuCA+IHRlaVwgOwor5oW3ID4ga291XCA7CivmhbYgPiBrZWlcIDsKK+aFtSA+IHlvdVwgOwor5oWzID4ga2FuXCA7CivmhbIgPiBiYW5cIDsKK+aFsSA+IHRhblwgOwor5oWtID4gZ2luXCA7CivmhawgPiBraW5cIDsKK+aFpyA+IGtlaVwgOwor5oWgID4gZ291XCA7CivmhZ8gPiBkb3VcIDsKK+aFmiA+IHphblwgOwor5oWZID4gemFuXCA7CivmhYkgPiBraW5cIDsKK+aFhiA+IHRvdVwgOwor5oWFID4gc291XCA7CivmhYIgPiB5b3VcIDsKK+aFgSA+IGtvblwgOwor5oS/ID4gZ2VuXCA7CivmhLkgPiB5b3VcIDsKK+aEtyA+IGthaVwgOwor5oS0ID4gc291XCA7CivmhLAgPiBrYXVcIDsKK+aEoiA+IHNhaVwgOwor5oShID4gc291XCA7CivmhJ4gPiB6ZW5cIDsKK+aElyA+IGJvdVwgOwor5oSTID4gdG91XCA7CivmhJIgPiBrZWlcIDsKK+aEkSA+IHlvdVwgOwor5oSQID4gYmVuXCA7CivmhI0gPiBiaW5cIDsKK+aEjCA+IGthblwgOwor5oSGID4ga2VuXCA7CivmhIMgPiBrZW5cIDsKK+aDvSA+IGtvblwgOwor5oO8ID4gaGVuXCA7Civmg7ogPiBzZWlcIDsKK+aDuCA+IGtlaVwgOwor5oO2ID4ga291XCA7Civmg7QgPiB6dWlcIDsKK+aDpSA+IHlvdVwgOwor5oOjID4gc291XCA7Civmg54gPiBraW5cIDsKK+aDmyA+IGtvblwgOwor5oOYID4gYm91XCA7Civmg5QgPiB0YW5cIDsKK+aDkyA+IGtlblwgOwor5oOPID4gcmFuXCA7Civmg4sgPiB3YW5cIDsKK+aDiSA+IHNlblwgOwor5oOHID4gdG9uXCA7Civmg4IgPiBrYW5cIDsKK+aCviA+IGtvdVwgOwor5oK9ID4gc2VpXCA7CivmgrsgPiBrZWlcIDsKK+aCtyA+IHJlaVwgOwor5oKwID4gc291XCA7CivmgqkgPiBub3VcIDsKK+aCpCA+IHNvdVwgOwor5oKdID4ga2FpXCA7CivmgpsgPiBzZW5cIDsKK+aClyA+IGJhblwgOwor5oKTID4ga2VuXCA7CivmgpIgPiB5dXVcIDsKK+aCjiA+IGtvdVwgOwor5oKNID4ga2FuXCA7CivmgowgPiB0ZWlcIDsKK+aCiyA+IHJpblwgOwor5oKIID4ga2FpXCA7CivmgoMgPiBrb25cIDsKK+aBvyA+IHlvdVwgOwor5oG+ID4gYm91XCA7CivmgbUgPiBrZWlcIDsKK+aBrCA+IHRlblwgOwor5oGrID4gZG91XCA7CivmgaMgPiBzaGlcIDsKK+aBoiA+IGthaVwgOwor5oGhID4gcmluXCA7CivmgaAgPiBrYWlcIDsKK+aBnSA+IGthaVwgOwor5oGZID4geW91XCA7CivmgZYgPiBzaGlcIDsKK+aBkiA+IGtvdVwgOwor5oGJID4gc2hpXCA7CivmgYggPiBib3VcIDsKK+aBhiA+IGtvdVwgOwor5oGCID4ganVuXCA7CivmgYAgPiBzaGlcIDsKK+aAsSA+IHNvdVwgOwor5oCmID4gaG91XCA7CivmgJ8gPiB0ZWlcIDsKK+aAnCA+IHJlaVwgOwor5oCaID4gc2hvXCA7CivmgJQgPiBzZWlcIDsKK+aAkyA+IGRvdVwgOwor5oCQID4ga291XCA7CivmgI8gPiB5b3VcIDsKK+aAhyA+IGt5b1wgOwor5b+8ID4ga291XCA7Civlv7sgPiBraW5cIDsKK+W/uiA+IGtlblwgOwor5b+2ID4ga29uXCA7Civlv7MgPiB0b25cIDsKK+W/siA+IHRhaVwgOwor5b+wID4gc3VpXCA7Civlv64gPiBzaGlcIDsKK+W/rSA+IGhlblwgOwor5b+pID4gc291XCA7Civlv6ggPiBnYW5cIDsKK+W/niA+IGJpblwgOwor5b+dID4gdGVuXCA7Civlv5YgPiBzb25cIDsKK+W/kyA+IGthblwgOwor5b+QID4ga3VuXCA7Civlv4sgPiBrYWlcIDsKK+W/iSA+IHRvdVwgOwor5b+IID4gamluXCA7CivlvrAgPiBzZWlcIDsKK+W+ryA+IGtlaVwgOwor5b6tID4geW91XCA7CivlvqwgPiBob3VcIDsKK+W+qCA+IGtvdVwgOwor5b6nID4gaGVuXCA7CivlvqAgPiByYWlcIDsKK+W+nSA+IGNoaVwgOwor5b6ZID4gc2hpXCA7CivlvpggPiBoYWlcIDsKK+W+liA+IHNvdVwgOwor5b6RID4ga2VpXCA7CivlvokgPiB5b3VcIDsKK+W+iCA+IGtvblwgOwor5b6GID4gc2VpXCA7CivlvoEgPiBzZWlcIDsKK+W9viA+IHJlaVwgOwor5b29ID4gY2hpXCA7CivlvbcgPiBob3VcIDsKK+W9siA+IGNoaVwgOwor5b2vID4gaGV1XCA7Civlva0gPiBob3VcIDsKK+W9rCA+IGhpblwgOwor5b2nID4gaWt1XCA7CivlvaYgPiBnZW5cIDsKK+W9pSA+IGdlblwgOwor5b2kID4gdG91XCA7CivlvaMgPiBidW5cIDsKK+W9oSA+IHNhblwgOwor5b2YID4gdGVpXCA7CivlvZcgPiBzdWlcIDsKK+W9liA+IHRhblwgOwor5b2RID4ga2VpXCA7CivlvZAgPiBrZWlcIDsKK+W9jiA+IHdhblwgOwor5b2LID4ga2F1XCA7CivlvYcgPiB5b3VcIDsKK+W9hCA+IGtvdVwgOwor5b2BID4gc2VpXCA7CivlvYAgPiBrb3VcIDsKK+W8vyA+IGtlblwgOwor5by9ID4geW91XCA7CivlvLkgPiBkYW5cIDsKK+W8uCA+IGhvdVwgOwor5by0ID4gdG9uXCA7CivlvLAgPiBzb3VcIDsKK+W8ryA+IHdhblwgOwor5byuID4ga2VuXCA7CivlvKggPiBzZXVcIDsKK+W8pCA+IHRlaVwgOwor5byiID4gdG91XCA7CivlvJogPiB0YWlcIDsKK+W8kiA+IHNoaVwgOwor5byRID4gc2hpXCA7CivlvI4gPiBzYW5cIDsKK+W8iiA+IGhlaVwgOwor5byJID4gam91XCA7CivlvIggPiBla2lcIDsKK+W8hiA+IGt5b1wgOwor5byFID4gaHVuXCA7Civlu78gPiBqdXVcIDsKK+W7vSA+IGthaVwgOwor5bu8ID4gZGFpXCA7Civlu7cgPiB0ZWlcIDsKK+W7tSA+IGp1blwgOwor5buyID4gcmVpXCA7Civlu7EgPiB5b3VcIDsKK+W7ryA+IHNlblwgOwor5busID4gcnlvXCA7Civlu6ogPiByaW5cIDsKK+W7qSA+IHJpblwgOwor5buoID4ga2FpXCA7Civlu6UgPiBrYWlcIDsKK+W7niA+IGtpblwgOwor5budID4gc2hpXCA7Civlu5sgPiB0ZW5cIDsKK+W7lyA+IHRhaVwgOwor5buUID4gcm91XCA7Civlu5IgPiBnb3VcIDsKK+W7kSA+IGtpblwgOwor5buOID4ga2VpXCA7Civlu4wgPiBjaGlcIDsKK+W7hyA+IHJpdVwgOwor5buGID4ga2FpXCA7Civlu4UgPiBhaHVcIDsKK+W7gSA+IHNoaVwgOwor5buAID4gc291XCA7Civlur0gPiBkb3VcIDsKK+W6uyA+IHNob1wgOwor5bq2ID4gc2hvXCA7CivlurIgPiByYWlcIDsKK+W6sCA+IGhlaVwgOwor5bqsID4gYm91XCA7CivluqggPiBrb3VcIDsKK+W6pCA+IGNoaVwgOwor5bqjID4gdGV1XCA7CivlupsgPiBzaGlcIDsKK+W6jiA+IGthaVwgOwor5bqNID4gaGFpXCA7CivluokgPiB0b25cIDsKK+W6iCA+IGtpblwgOwor5bm/ID4gZ2VuXCA7CivlubogPiB5b3VcIDsKK+W5tyA+IGhlaVwgOwor5bm2ID4gaGVpXCA7CivlubUgPiBrZW5cIDsKK+W5sSA+IHJhblwgOwor5bmwID4ga2VuXCA7Civlua4gPiBjaHVcIDsKK+W5qyA+IGhvdVwgOwor5bmqID4gYm91XCA7CivluakgPiBodW5cIDsKK+W5qCA+IHNlblwgOwor5bmnID4gc2V1XCA7CivluaQgPiBoZWlcIDsKK+W5oyA+IGhlaVwgOwor5bmiID4gdG91XCA7CivluaEgPiBoYW5cIDsKK+W5nSA+IHNlblwgOwor5bmcID4ga2VpXCA7CivluZogPiBob3VcIDsKK+W5lCA+IGJhblwgOwor5bmQID4gdG91XCA7CivluY0gPiB0b3VcIDsKK+W5jCA+IGtvdVwgOwor5bmLID4gaGFuXCA7CivluYogPiBrb3VcIDsKK+W5iCA+IGhlaVwgOwor5bmHID4gaG91XCA7CivluYQgPiBha3VcIDsKK+W5gCA+IHRlaVwgOwor5bi1ID4gd2FuXCA7CivluLIgPiBoZWlcIDsKK+W4riA+IGhvdVwgOwor5bisID4ga3VuXCA7CivluKkgPiBzZXVcIDsKK+W4qCA+IHNlaVwgOwor5bimID4gdGFpXCA7CivluKMgPiBrZW5cIDsKK+W4oSA+IGhlaVwgOwor5bigID4gZ2VpXCA7CivluJ8gPiBla2lcIDsKK+W4mCA+IHJlblwgOwor5biWID4gam91XCA7CivluJIgPiB0YWlcIDsKK+W4jiA+IHRhblwgOwor5biLID4gc2hpXCA7CivluIcgPiBkZW5cIDsKK+W4hCA+IHRlaVwgOwor5biAID4gc291XCA7Civlt7ogPiBzb25cIDsKK+W3uSA+IGtpblwgOwor5be1ID4gc2hpXCA7Civlt6AgPiBrZWlcIDsKK+W3nyA+IGtvdVwgOwor5becID4ga2FpXCA7Civlt5sgPiBzZW5cIDsKK+W3mCA+IGdlblwgOwor5beWID4gZ2FuXCA7Civlt5QgPiB0ZW5cIDsKK+W3kyA+IHRlblwgOwor5beSID4gcmFuXCA7Civlt5EgPiBzYW5cIDsKK+W3jyA+IGtlblwgOwor5beOID4gZG91XCA7Civlt4wgPiBnYW5cIDsKK+W3iSA+IHNhblwgOwor5beGID4ga291XCA7Civlt4MgPiByb3VcIDsKK+W3giA+IHN1aVwgOwor5ba8ID4gc2hvXCA7CivltrogPiByZWlcIDsKK+W2uSA+IHRvdVwgOwor5ba4ID4ga291XCA7CivltrUgPiBzYWlcIDsKK+W2siA+IGtlaVwgOwor5bawID4ga2FpXCA7CivltqkgPiBkYXVcIDsKK+W2pyA+IGVraVwgOwor5bahID4ga2VpXCA7Civltp8gPiBzb25cIDsKK+W2nSA+IHRvdVwgOwor5baZID4gcmluXCA7CivltpUgPiBzZXVcIDsKK+W2lCA+IGtpblwgOwor5baMID4gdG91XCA7CivltosgPiB0b3VcIDsKK+W2iiA+IHN1aVwgOwor5baJID4gc3VpXCA7CivltoYgPiBzYXVcIDsKK+W2hCA+IHNhblwgOwor5baDID4gc2FuXCA7Civltb8gPiB0ZWlcIDsKK+W1vCA+IHNhblwgOwor5bW6ID4gcmV1XCA7CivltbYgPiB0YW9cIDsKK+W1sSA+IHlvdVwgOwor5bWwID4ga2VuXCA7Civlta0gPiBob3VcIDsKK+W1rCA+IGthaVwgOwor5bWqID4ga291XCA7CivltakgPiBzdXVcIDsKK+W1pyA+IHJpdVwgOwor5bWkID4ga2VpXCA7CivltaMgPiB0YXVcIDsKK+W1oiA+IHNvdVwgOwor5bWgID4gZ2VpXCA7CivltZcgPiBzZWlcIDsKK+W1lSA+IHNvdVwgOwor5bWTID4gZ2FuXCA7CivltZIgPiBnYW5cIDsKK+W1jiA+IGd1dVwgOwor5bWJID4gdGVpXCA7CivltYggPiBrYW5cIDsKK+W1hyA+IGtlaVwgOwor5bWGID4ga2VpXCA7CivltYUgPiBrYW5cIDsKK+W1gyA+IGdlblwgOwor5bWBID4ga2FuXCA7CivltL0gPiBzYWlcIDsKK+W0vCA+IHNoaVwgOwor5bS5ID4gdGVpXCA7CivltLggPiB0b25cIDsKK+W0tiA+IGhvdVwgOwor5bS1ID4gc2V1XCA7CivltLQgPiB3YWlcIDsKK+W0siA+IGtvdVwgOwor5bSlID4gaGVpXCA7CivltKQgPiBrb3VcIDsKK+W0oiA+IHNvdVwgOwor5bShID4ga2FuXCA7CivltKAgPiB0b3VcIDsKK+W0nyA+IGdpblwgOwor5bSdID4gc2F1XCA7CivltJkgPiByb25cIDsKK+W0mCA+IHJvblwgOwor5bSVID4gZ2FpXCA7CivltJQgPiBzYWlcIDsKK+W0kSA+IGtvblwgOwor5bSQID4ga29uXCA7CivltI8gPiBiaW5cIDsKK+W0jSA+IHJhaVwgOwor5bSHID4gc3V1XCA7CivltIYgPiBrb3VcIDsKK+W0hCA+IGtlblwgOwor5bSBID4ga2FuXCA7Civls7ogPiBrb3VcIDsKK+WzuCA+IHNlaVwgOwor5bO1ID4ga291XCA7Civls7QgPiBrZW5cIDsKK+WzsSA+IGRvdVwgOwor5bOvID4gaG91XCA7Civls64gPiBraW5cIDsKK+WznyA+IHlvdVwgOwor5bOdID4gdG91XCA7Civls5wgPiBrZWlcIDsKK+WzmCA+IGthblwgOwor5bOVID4gc2hpXCA7Civls5IgPiB0b3VcIDsKK+WzkCA+IGthaVwgOwor5bOOID4gZ29uXCA7Civls4cgPiBrb3VcIDsKK+WyviA+IHNlblwgOwor5bK6ID4gcmVpXCA7CivlsrcgPiBiaW5cIDsKK+WysiA+IGtvdVwgOwor5bKxID4gdGFpXCA7CivlsrAgPiB5b3VcIDsKK+WyrSA+IHJlaVwgOwor5bKnID4gdGV1XCA7CivlsqMgPiBrb3VcIDsKK+WyoCA+IGt5b1wgOwor5bKfID4geW91XCA7CivlspUgPiBrYWlcIDsKK+WykiA+IGtlblwgOwor5bKLID4gZ291XCA7CivlsocgPiBnb3VcIDsKK+WyhSA+IGhhblwgOwor5bG9ID4ga2FuXCA7CivlsbsgPiBqaW5cIDsKK+WxsyA+IHNlblwgOwor5bGvID4gdG9uXCA7CivlsacgPiB0ZWlcIDsKK+WxoyA+IHNoaVwgOwor5bGfID4gdGVpXCA7CivlsZwgPiB0ZWlcIDsKK+WxmyA+IGhlaVwgOwor5bGaID4gcm91XCA7CivlsZYgPiBzZWlcIDsKK+WxlCA+IGRlaVwgOwor5bGOID4gc2hpXCA7CivlsYcgPiB0ZW5cIDsKK+WwvCA+IGFtYVwgOwor5bC3ID4ga2FuXCA7CivlsLYgPiBrYW5cIDsKK+WwtSA+IHRhaVwgOwor5bCyID4ga2FuXCA7CivlsKwgPiBrYWlcIDsKK+WwqCA+IGJvdVwgOwor5bCfID4gc2VuXCA7CivlsIwgPiBzaHVcIDsKK+WwgiA+IHNlblwgOwor5a+9ID4gcmluXCA7Civlr7kgPiB0YWlcIDsKK+WvtiA+IGhvdVwgOwor5a+zID4gaG91XCA7Civlr7EgPiBnZWlcIDsKK+WvsCA+IGthblwgOwor5a+sID4ga2FuXCA7Civlr6ggPiBzYWlcIDsKK+WvnCA+IG5laVwgOwor5a+bID4ga2FuXCA7Civlr5ogPiBob3VcIDsKK+WvmCA+IHNoaVwgOwor5a+XID4gbmVpXCA7Civlr5UgPiBuZWlcIDsKK+WvkyA+IGd1dVwgOwor5a+PID4ga2FuXCA7Civlr44gPiBoZWlcIDsKK+WvjSA+IG5laVwgOwor5a+LID4ga2VuXCA7Civlr4ogPiB0ZWlcIDsKK+WvhyA+IGtvdVwgOwor5a+BID4gc2FuXCA7Civlr4AgPiBzYWlcIDsKK+WuvCA+IGtvdVwgOwor5a66ID4ga291XCA7CivlrrIgPiBob3VcIDsKK+WuryA+IGtvdVwgOwor5a6tID4ga3VuXCA7CivlrqwgPiBzZWlcIDsKK+WuqSA+IHNoaVwgOwor5a6mID4ga2FuXCA7CivlrqUgPiB5dXVcIDsKK+WuliA+IGtvdVwgOwor5a6VID4gdG91XCA7CivlrpQgPiBzaHVcIDsKK+WukSA+IHNlaVwgOwor5a6PID4ga291XCA7CivlrosgPiBzb3VcIDsKK+WugSA+IGNob1wgOwor5a6AID4gYmVuXCA7Civlrb8gPiBzYW5cIDsKK+WtuyA+IGRhaVwgOwor5a2zID4gc2hpXCA7CivlrbEgPiBzZW5cIDsKK+WtryA+IGthblwgOwor5a2uID4gc291XCA7CivlrakgPiBrYWlcIDsKK+WtqCA+IHNlblwgOwor5a2fID4gbW91XCA7CivlrZ0gPiBrb3VcIDsKK+WtnCA+IHNoaVwgOwor5a2WID4gc2hpXCA7CivlrZUgPiB5b3VcIDsKK+WtjSA+IGdlblwgOwor5a2MID4gcmVuXCA7CivlrYggPiBzdWlcIDsKK+WthSA+IHNlblwgOwor5a2DID4gam91XCA7CivlrYEgPiByZWlcIDsKK+WtgCA+IHNvdVwgOwor5ay+ID4gcmFuXCA7CivlrLIgPiBqb3VcIDsKK+WsryA+IHRhaVwgOwor5aytID4gZGFpXCA7CivlrKwgPiBzaHVcIDsKK+WsqCA+IHNoaVwgOwor5ayjID4gdGF1XCA7CivlrKAgPiBzYW5cIDsKK+WsniA+IHRvdVwgOwor5aydID4gam91XCA7CivlrJsgPiBrZW5cIDsKK+WsmiA+IHJlblwgOwor5ayXID4gc2VuXCA7CivlrJYgPiBoZWlcIDsKK+WskyA+IGtldVwgOwor5ayQID4gc2VuXCA7CivlrI8gPiBoYW5cIDsKK+WsjiA+IGhhblwgOwor5ayLID4gc2VuXCA7CivlrIggPiBkZXVcIDsKK+WsgyA+IHNodVwgOwor5ayBID4gdG91XCA7Civlq70gPiByZXVcIDsKK+WruyA+IGthblwgOwor5au6ID4ga2FuXCA7Civlq7kgPiBiYXVcIDsKK+WruCA+IHNlblwgOwor5au2ID4gc2V1XCA7Civlq6wgPiBzaGFcIDsKK+WrqiA+IHJhdVwgOwor5aupID4gZG9uXCA7Civlq6ggPiBrYW5cIDsKK+WrpiA+IGtvdVwgOwor5aulID4gc2VuXCA7Civlq50gPiBrYXVcIDsKK+WrmiA+IGJhblwgOwor5auZID4gc2ViXCA7Civlq5ggPiBydWlcIDsKK+WrkCA+IGpvdVwgOwor5auPID4gcm91XCA7Civlq40gPiB0YXVcIDsKK+WriyA+IGpvdVwgOwor5auIID4gc2V1XCA7Civlq4cgPiBiZWlcIDsKK+WrhiA+IHlvdVwgOwor5auEID4gZ2VuXCA7Civlqr4gPiBrb3VcIDsKK+WquyA+IGhhblwgOwor5aq5ID4gcml1XCA7CivlqrggPiBzaGlcIDsKK+WqtiA+IGpvdVwgOwor5aq1ID4geW91XCA7CivlqrIgPiBoZWlcIDsKK+WqriA+IHRvdVwgOwor5aqtID4gc2h1XCA7CivlqqcgPiBrYWlcIDsKK+WqpSA+IGhlblwgOwor5aqkID4gc2hpXCA7CivlqqIgPiBib3VcIDsKK+WqniA+IHNoaVwgOwor5aqcID4gdGVpXCA7CivlqpcgPiBrZW5cIDsKK+WqlCA+IGJlblwgOwor5aqTID4ga291XCA7Civlqo8gPiB0YW5cIDsKK+WqjCA+IGJvdVwgOwor5aqKID4gc2VuXCA7Civlqb4gPiB0b3VcIDsKK+WpuyA+IGRhblwgOwor5am4ID4gdG91XCA7CivlqbcgPiB0ZWlcIDsKK+WpsCA+IHRlblwgOwor5amqID4gcmFuXCA7CivlqakgPiBnZW5cIDsKK+WppyA+IHNlaVwgOwor5amlID4gZG91XCA7CivlqaAgPiB3YW5cIDsKK+WpniA+IGtlaVwgOwor5amdID4gdGVuXCA7CivlqZwgPiBrYW5cIDsKK+WpmyA+IGtlaVwgOwor5amYID4ga2VuXCA7CivlqZcgPiBnZWlcIDsKK+WpliA+IHRlblwgOwor5amSID4gdGFuXCA7CivlqZEgPiB6dWlcIDsKK+WphyA+IHNhaVwgOwor5amEID4gaG91XCA7CivlqYMgPiBzb3VcIDsKK+WpgiA+IGJlblwgOwor5amBID4gcm91XCA7CivlqL4gPiBnYWlcIDsKK+WouSA+IGtlblwgOwor5ai2ID4gc2h1XCA7CivlqLUgPiBzaHVcIDsKK+WoriA+IGRlblwgOwor5aipID4gYmVuXCA7CivlqKggPiBiYW5cIDsKK+WopyA+IHRhaVwgOwor5aikID4gc291XCA7CivlqKMgPiB0ZWlcIDsKK+WonyA+IGtlblwgOwor5aieID4gZGFpXCA7CivlqJogPiBuYW5cIDsKK+WomSA+IGdvdVwgOwor5aiXID4gdGVpXCA7CivlqI8gPiBib3VcIDsKK+WojSA+IHNlaVwgOwor5aiKID4ga2VuXCA7CivlqIkgPiBoZWlcIDsKK+WnviA+IHNlblwgOwor5ae8ID4gc2hpXCA7Civlp7ggPiBrZW5cIDsKK+WntyA+IHl1dVwgOwor5ae1ID4gaGFpXCA7Civlp7MgPiBiZWlcIDsKK+WnryA+IGtvdVwgOwor5aeuID4ga291XCA7Civlp60gPiBrZW5cIDsKK+WnqiA+IG1laVwgOwor5aepID4gZGVuXCA7Civlp6cgPiBrYW5cIDsKK+WnpiA+IGthblwgOwor5aekID4ga291XCA7Civlp6MgPiBrb3VcIDsKK+WnoiA+IGtlblwgOwor5aefID4ga2FpXCA7Civlp5sgPiB0b3VcIDsKK+WnmiA+IHlvdVwgOwor5aeZID4gbmluXCA7Civlp5ggPiBoaW5cIDsKK+WnlyA+IHNhblwgOwor5aeWID4ga3lvXCA7Civlp5IgPiBzaGlcIDsKK+WnkCA+IGFuZVwgOwor5aePID4gYmFuXCA7Civlp40gPiBzYW5cIDsKK+WnjCA+IHplblwgOwor5aeKID4gc2hpXCA7Civlp4ggPiByZWlcIDsKK+WnhSA+IGhhblwgOwor5aeEID4gYmluXCA7Civlp4MgPiBzZWlcIDsKK+WmtiA+IGtlblwgOwor5aa1ID4gdG91XCA7CivlprMgPiBkYWlcIDsKK+WmqCA+IGJvdVwgOwor5aanID4gZ2VuXCA7CivlpqYgPiBob3VcIDsKK+WmoiA+IGh1blwgOwor5aahID4ga2luXCA7CivlpqAgPiBkb3VcIDsKK+WmniA+IGp1dVwgOwor5aadID4gc291XCA7CivlppsgPiBzaGlcIDsKK+WmmiA+IGh1dVwgOwor5aaXID4gc2VuXCA7Civlpo8gPiBidW5cIDsKK+WmjiA+IGthaVwgOwor5aaNID4ga2VuXCA7CivlpowgPiBzZWlcIDsKK+WmhSA+IGtvdVwgOwor5aW/ID4gZ2FuXCA7Civlpb4gPiBzZW5cIDsKK+WluyA+IGRhblwgOwor5aW5ID4gY2hpXCA7CivlpbggPiBrYW5cIDsKK+WltyA+IHNlblwgOwor5aW2ID4gZGFpXCA7CivlpbUgPiB0ZWlcIDsKK+WlsiA+IHNoYVwgOwor5aWxID4gcmVuXCA7CivlpakgPiByZW5cIDsKK+WloyA+IHdhblwgOwor5aWhID4gZ2F1XCA7CivlpaAgPiB0ZW5cIDsKK+WlnyA+IGtvdVwgOwor5aWbID4ga291XCA7CivlpZogPiBrZWlcIDsKK+WlmSA+IGhvblwgOwor5aWYID4gam91XCA7CivlpZUgPiBla2lcIDsKK+WllCA+IGhvblwgOwor5aWSID4ga2FpXCA7CivlpZAgPiBrYW5cIDsKK+WljiA+IGtlaVwgOwor5aWMID4gdGVuXCA7CivlpYYgPiBrZW5cIDsKK+WlhSA+IGhvdVwgOwor5aWDID4gdGVpXCA7CivlpYAgPiBib3VcIDsKK+WksyA+IHRhaVwgOwor5aSyID4gdG91XCA7CivlpLAgPiBrb3VcIDsKK+WkryA+IGtvdVwgOwor5aStID4geW91XCA7CivlpKMgPiBib3VcIDsKK+WkoCA+IGtvdVwgOwor5aSdID4gc2VpXCA7CivlpJggPiBib3VcIDsKK+WkkiA+IGRvdVwgOwor5aSQID4ga2VpXCA7CivlpIogPiBzdWlcIDsKK+WkhiA+IGhvdVwgOwor5aSFID4ga291XCA7CivlpIIgPiBjaGlcIDsKK+WjviA+IGJvdVwgOwor5aO8ID4ga29uXCA7Civlo7ggPiBrb25cIDsKK+WjtCA+IHNodVwgOwor5aOuID4gc291XCA7Civlo6ggPiByYWlcIDsKK+WjpyA+IGdhblwgOwor5aOlID4gdGVuXCA7Civlo6QgPiBqb3VcIDsKK+WjoyA+IHJpblwgOwor5aOgID4gcm91XCA7Civlo58gPiBva2FcIDsKK+WjnCA+IHRhblwgOwor5aOZID4ga291XCA7Civlo5ggPiBydWlcIDsKK+WjliA+IHplblwgOwor5aOVID4gZ291XCA7Civlo5QgPiB0YXVcIDsKK+WjkCA+IHNoaVwgOwor5aOPID4ga2FuXCA7Civlo44gPiBrZW5cIDsKK+WjjSA+IHphblwgOwor5aOMID4gam91XCA7Civlo4kgPiBreW9cIDsKK+WjhSA+IHlvdVwgOwor5aOCID4gdGVuXCA7Civlor8gPiBla2lcIDsKK+WiviA+IGtvblwgOwor5aK9ID4ga2F1XCA7CivlorggPiBzaG9cIDsKK+WisyA+IGZ1blwgOwor5aKxID4gdG91XCA7Civloq0gPiBzZWlcIDsKK+WirCA+IGNoaVwgOwor5aKpID4gdG9uXCA7CivloqYgPiBoYW5cIDsKK+WipSA+IHRvdVwgOwor5aKhID4gc2VuXCA7CivloqAgPiBzZW5cIDsKK+WinyA+IGt5b1wgOwor5aKeID4gem91XCA7Civlop0gPiBrb3VcIDsKK+WiliA+IHRvdVwgOwor5aKUID4gc2FpXCA7CivlopAgPiBraW5cIDsKK+WiiiA+IHRlblwgOwor5aKJID4geW91XCA7CivlooggPiBrYW5cIDsKK+WihSA+IHNob1wgOwor5aKBID4gYmFuXCA7CivlooAgPiBjaGlcIDsKK+WhvyA+IHJvdVwgOwor5aG9ID4gc2F1XCA7CivlobwgPiBzZW5cIDsKK+WhuiA+IGJhaVwgOwor5aG5ID4gemFuXCA7CivlobQgPiBob3VcIDsKK+WhsiA+IGpvdVwgOwor5aGwID4gYW1hXCA7CivloasgPiB0ZW5cIDsKK+WhpCA+IGtlblwgOwor5aGjID4gdGVpXCA7CivloaEgPiB0ZW5cIDsKK+WhnyA+IHNvdVwgOwor5aGdID4gaGF1XCA7CivloZwgPiBob3VcIDsKK+WhmCA+IHRvdVwgOwor5aGSID4gc2hpXCA7CivloY8gPiBrYWlcIDsKK+WhjiA+IHlvdVwgOwor5aGMID4gdG91XCA7CivloYEgPiBydWlcIDsKK+WgvyA+IGthblwgOwor5aC9ID4ga291XCA7CivloLwgPiBrb3VcIDsKK+WguiA+IGthaVwgOwor5aCtID4ga2F1XCA7CivloKkgPiBrb3VcIDsKK+WgpyA+IHplblwgOwor5aCmID4ga2FpXCA7CivloKUgPiBib3VcIDsKK+WgoSA+IGhvdVwgOwor5aCgID4ga291XCA7CivloJ8gPiB0ZW5cIDsKK+WgniA+IHRldVwgOwor5aCcID4gcmVuXCA7CivloIsgPiBob3VcIDsKK+WgiSA+IGlrdVwgOwor5aCIID4ga291XCA7CivloIcgPiBraW5cIDsKK+WghCA+IGdlblwgOwor5aCDID4ga29uXCA7Civln78gPiBkZWlcIDsKK+WfviA+IHNodVwgOwor5Z+9ID4gc291XCA7Civln7kgPiBiYWlcIDsKK+WfuCA+IGVraVwgOwor5Z+2ID4gZ2VpXCA7Civln7MgPiBrYW5cIDsKK+WfsiA+IGhvdVwgOwor5Z+wID4gc2FpXCA7Civln64gPiB0YW5cIDsKK+WfrSA+IHRhaVwgOwor5Z+sID4gdG91XCA7Civln6kgPiBzYXVcIDsKK+WfpiA+IHdhblwgOwor5Z+lID4gc2VpXCA7Civln6MgPiBzYWlcIDsKK+WfoiA+IGtlblwgOwor5Z+fID4gaWtpXCA7Civln54gPiB0ZWlcIDsKK+WfnSA+IHRlblwgOwor5Z+cID4gc2hvXCA7Civln5UgPiB0ZWlcIDsKK+WfjyA+IHNlblwgOwor5Z+MID4gcm91XCA7Civln4cgPiB5b3VcIDsKK+WfhCA+IGhvdVwgOwor5Z+CID4ga2F1XCA7Civln4AgPiBzdWlcIDsKK+WevyA+IHNob1wgOwor5Z6+ID4ga2FuXCA7Civlnr0gPiBnaW5cIDsKK+WevCA+IGVraVwgOwor5Z67ID4gaGFpXCA7CivlnrkgPiBob3VcIDsKK+WeuCA+IGthblwgOwor5Z62ID4gc2VpXCA7CivlnrAgPiB0YW9cIDsKK+WeqSA+IHNlaVwgOwor5Z6oID4gc2h1XCA7CivlnqcgPiBrZWlcIDsKK+WepSA+IGtldVwgOwor5Z6gID4gZ2luXCA7Civlnp8gPiB5b3VcIDsKK+WemiA+IGdldVwgOwor5Z6ZID4ga3V1XCA7CivlnpcgPiB0ZXVcIDsKK+WelSA+IGtvdVwgOwor5Z6TID4gZ2FpXCA7CivlnpAgPiBzaGlcIDsKK+WejCA+IHRvdVwgOwor5Z6JID4gaG91XCA7CivlnoggPiB0YWlcIDsKK+WegSA+IGNoaVwgOwor5Z2+ID4gY2hvXCA7Civlnb0gPiByZWlcIDsKK+WduyA+IGNoaVwgOwor5Z2wID4ga2VpXCA7Civlna4gPiBkYWlcIDsKK+WdrSA+IGRlaVwgOwor5Z2rID4gdGVuXCA7CivlnakgPiBrYW5cIDsKK+WdpSA+IHNob1wgOwor5Z2kID4ga29uXCA7CivlnaIgPiBoYW5cIDsKK+WdmiA+IGtlblwgOwor5Z2ZID4ga2VpXCA7CivlnZcgPiBrYWlcIDsKK+WdkSA+IGtvdVwgOwor5Z2PID4gaGFpXCA7CivlnY4gPiBrYW5cIDsKK+WdjSA+IHRhblwgOwor5Z2MID4gaG9uXCA7CivlnYsgPiBodW5cIDsKK+WdiSA+IHRvblwgOwor5Z2GID4gYmFpXCA7CivlnYUgPiBraW5cIDsKK+WdgSA+IHNoaVwgOwor5Z2AID4gc2hpXCA7CivlnK0gPiBrZWlcIDsKK+WcpiA+IGlyaVwgOwor5ZyiID4gdGVpXCA7CivlnJ4gPiByYW5cIDsKK+WcnSA+IHJhblwgOwor5ZycID4ga2FuXCA7CivlnJsgPiBla2lcIDsKK+WcmiA+IGthaVwgOwor5ZyMID4gc2VuXCA7CivlnIogPiBzZWlcIDsKK+WciSA+IGd5b1wgOwor5ZyIID4ga2VuXCA7CivlnIcgPiByaW5cIDsKK+WchSA+IGthblwgOwor5ZyEID4gZ3lvXCA7CivlnIIgPiBrb25cIDsKK+WcgSA+IGdpblwgOwor5Zu/ID4geXV1XCA7Civlm7kgPiByZWlcIDsKK+WbtyA+IGtpblwgOwor5ZuxID4gc291XCA7Civlm60gPiBnYW5cIDsKK+WbrCA+IGthaVwgOwor5ZuqID4gc291XCA7Civlm6ggPiBoZW5cIDsKK+WbpyA+IGtlaVwgOwor5ZulID4ga291XCA7Civlm6QgPiB0b25cIDsKK+WboSA+IGp1dVwgOwor5ZudID4ga2VuXCA7Civlm5wgPiBqaW5cIDsKK+WbmCA+IGthaVwgOwor5ZuUID4gZG91XCA7Civlm48gPiBrYW5cIDsKK+WbiiA+IG5vdVwgOwor5ZuIID4gZ2VpXCA7Civlm4YgPiB0YWlcIDsKK+WbhSA+IHRlblwgOwor5ZuDID4gc291XCA7Civlm4IgPiBnb3VcIDsKK+WbgCA+IHRlblwgOwor5Zq+ID4ga2FuXCA7CivlmrsgPiBnb3VcIDsKK+WatyA+IGphdVwgOwor5Zq1ID4gc2FuXCA7Civlmq4gPiBrb3VcIDsKK+WarCA+IGhpblwgOwor5ZqqID4gdGFuXCA7CivlmqggPiByb3VcIDsKK+WaoiA+IG5vdVwgOwor5ZqaID4gZ2luXCA7CivlmpkgPiBnb3VcIDsKK+WalCA+IHRlaVwgOwor5ZqOID4ga2F1XCA7CivlmowgPiBzZWlcIDsKK+WaiCA+IHlvdVwgOwor5ZqGID4ga291XCA7CivlmoMgPiB0b3VcIDsKK+WagiA+IHJhblwgOwor5ZqAID4gZGVpXCA7Civlmb8gPiBzdWlcIDsKK+WZuSA+IHRvdVwgOwor5Zm4ID4gdG9uXCA7CivlmbcgPiBraW5cIDsKK+WZtSA+IGRvdVwgOwor5Zm0ID4gZnVuXCA7CivlmbAgPiB5b3VcIDsKK+WZrCA+IHplaVwgOwor5ZmlID4gZG91XCA7CivlmaQgPiBraW5cIDsKK+WZoyA+IGNodVwgOwor5ZmiID4gaWt1XCA7CivlmaEgPiBzZW5cIDsKK+WZnyA+IHlvdVwgOwor5ZmeID4gZ2VuXCA7CivlmZkgPiBraW5cIDsKK+WZlCA+IHRvdVwgOwor5ZmTID4ga3lvXCA7CivlmY0gPiBzZXVcIDsKK+WZiyA+IHRvblwgOwor5ZmJID4gdGFuXCA7CivlmYcgPiB0b3VcIDsKK+WZhiA+IHNvdVwgOwor5ZmDID4gaGFuXCA7CivlmYAgPiBzb25cIDsKK+WYviA+IHRhblwgOwor5Zi9ID4gdGFuXCA7CivlmLkgPiByZXVcIDsKK+WYtyA+IGtvdVwgOwor5Zi2ID4gc2VpXCA7CivlmLUgPiBrZXVcIDsKK+WYriA+IHRvdVwgOwor5ZitID4gaG91XCA7CivlmKwgPiBzYWlcIDsKK+WYqyA+IGRhbVwgOwor5ZiqID4gYmFpXCA7CivlmJUgPiBrZW5cIDsKK+WYkiA+IGtlaVwgOwor5ZiQID4gaGF1XCA7CivlmI0gPiByb3VcIDsKK+WYjCA+IGhldVwgOwor5ZiKID4gZ2FpXCA7CivlmIggPiBzYXVcIDsKK+WYhSA+IGthaVwgOwor5ZiEID4ga2V1XCA7Civll78gPiB0YW5cIDsKK+WXviA+IHNvdVwgOwor5Ze7ID4gc2hhXCA7Civll7ogPiBzdWlcIDsKK+WXuSA+IHJlblwgOwor5Ze4ID4gZ291XCA7Civll7cgPiBnb3VcIDsKK+WXqCA+IGthaVwgOwor5ZelID4ga291XCA7Civll6QgPiBzaGlcIDsKK+WXoSA+IHJvdVwgOwor5ZeeID4gc2hpXCA7Civll5sgPiBrZW5cIDsKK+WXmSA+IGhvdVwgOwor5ZeYID4ga2VpXCA7Civll5MgPiBzb3VcIDsKK+WXkiA+IHRvdVwgOwor5ZeMID4gZWtpXCA7Civll4ogPiBrb3VcIDsKK+WXiCA+IHlvdVwgOwor5ZeDID4ga291XCA7Civll4EgPiB0ZWlcIDsKK+WWvyA+IHNvdVwgOwor5ZatID4gZ2VuXCA7CivllqYgPiBqb3VcIDsKK+WWpCA+IGtvdVwgOwor5ZabID4ga2FuXCA7CivllpkgPiBrYWlcIDsKK+WWlyA+IGdpblwgOwor5ZaVID4gYmVuXCA7CivllpQgPiBha3VcIDsKK+WWkiA+IHNhblwgOwor5ZaPID4gc2hhXCA7Civllo0gPiBzYWlcIDsKK+WWiiA+IGthblwgOwor5ZaIID4ga2FpXCA7CivlloMgPiBuYW5cIDsKK+WVvyA+IHRhblwgOwor5ZW9ID4gZ2FuXCA7CivllbsgPiBzaGlcIDsKK+WVtCA+IHRhblwgOwor5ZWuID4gZ291XCA7CivllaUgPiBzaGFcIDsKK+WVoSA+IGhhaVwgOwor5ZWfID4ga2VpXCA7CivllZsgPiBzYWlcIDsKK+WVmSA+IHNoaVwgOwor5ZWXID4gdGFuXCA7CivllZYgPiB0YW5cIDsKK+WVlSA+IHRvdVwgOwor5ZWUID4ga2VpXCA7CivllZMgPiBrZWlcIDsKK+WVkSA+IHNvdVwgOwor5ZWQID4gc2FpXCA7CivllY0gPiB0b25cIDsKK+WVjCA+IGtvdVwgOwor5ZWJID4gcmFuXCA7CivllYggPiBrb3VcIDsKK+WVgSA+IHRvdVwgOwor5ZWAID4gZ2FpXCA7CivllLsgPiByYWlcIDsKK+WUtiA+IHNoYVwgOwor5ZSzID4gcmVpXCA7CivllKsgPiBnaW5cIDsKK+WUqiA+IGhvdVwgOwor5ZSkID4ga2FuXCA7CivllJ0gPiBrb3VcIDsKK+WUmCA+IGtlaVwgOwor5ZSXID4gdG91XCA7CivllJUgPiBzb3VcIDsKK+WUkSA+IHplaVwgOwor5ZSNID4ga2FuXCA7CivllIwgPiBzZW5cIDsKK+WUiSA+IGthaVwgOwor5ZSFID4ga2FuXCA7CivllIQgPiB1dGFcIDsKK+WUgSA+IGdlblwgOwor5ZO9ID4ga291XCA7Civlk7wgPiBrb3VcIDsKK+WTuyA+IGthblwgOwor5ZO4ID4gc2FpXCA7Civlk7AgPiByb3VcIDsKK+WTryA+IGtlblwgOwor5ZOuID4ga291XCA7Civlk6QgPiBib3VcIDsKK+WToiA+IHJvdVwgOwor5ZOgID4ga291XCA7Civlk48gPiBrb25cIDsKK+WTjiA+IGdhaVwgOwor5ZOKID4gaWt1XCA7Civlk4ggPiBnb3VcIDsKK+WThiA+IHNoaVwgOwor5ZOFID4ga291XCA7Civlk4QgPiBrb3VcIDsKK+WTgyA+IHRvdVwgOwor5ZK+ID4gcm91XCA7CivlkrogPiBrZW5cIDsKK+WSuCA+IGthblwgOwor5ZK3ID4gdGF1XCA7CivlkrUgPiBrdXVcIDsKK+WStCA+IGthaVwgOwor5ZKuID4gdG91XCA7CivlkqsgPiBzaGlcIDsKK+WSqCA+IHNoaVwgOwor5ZKjID4ga291XCA7CivlkpQgPiByb3VcIDsKK+WSkiA+IHNodVwgOwor5ZKNID4ga2FpXCA7CivlkoYgPiBob3VcIDsKK+WShSA+IHRvdVwgOwor5ZKCID4gc291XCA7CivlkoEgPiBrYW5cIDsKK+WRtyA+IGtvdVwgOwor5ZGyID4gc2hpXCA7CivlkbAgPiBzaGlcIDsKK+WRryA+IGhlaVwgOwor5ZGpID4gc2hpXCA7CivlkacgPiB0ZWlcIDsKK+WRpSA+IHplblwgOwor5ZGkID4gcmVpXCA7CivlkaMgPiBib3VcIDsKK+WRoSA+IGJ1blwgOwor5ZGgID4gaG9uXCA7CivlkZ4gPiBzaGlcIDsKK+WRiCA+IHRlaVwgOwor5ZGHID4ga2VpXCA7CivlkYUgPiBiYWlcIDsKK+WRgyA+IGFrdVwgOwor5ZGBID4ga2luXCA7CivlkLwgPiBrb3VcIDsKK+WQuiA+IHRvdVwgOwor5ZCxID4gc2hpXCA7CivlkLAgPiBrb3VcIDsKK+WQryA+IGtlaVwgOwor5ZCuID4gc2VuXCA7CivlkK0gPiBrb3VcIDsKK+WQrCA+IGtpblwgOwor5ZCqID4gZ3V1XCA7CivlkKkgPiBmdW5cIDsKK+WQqCA+IHRvblwgOwor5ZClID4gaG91XCA7CivlkKQgPiBrYWlcIDsKK+WQoCA+IGhhaVwgOwor5ZCfID4gZ2luXCA7CivlkJ4gPiBkb25cIDsKK+WQmSA+IGt1dVwgOwor5ZCYID4gZ291XCA7CivlkJUgPiByeW9cIDsKK+WQhiA+IHlvdVwgOwor5ZCFID4gdGVuXCA7CivlkIIgPiBib3VcIDsKK+WPtyA+IGdvdVwgOwor5Y+uID4gdGVpXCA7Civlj6ggPiB0b3VcIDsKK+WPpiA+IHJlaVwgOwor5Y+fID4gc291XCA7Civlj50gPiBrb3VcIDsKK+WPmyA+IGhhblwgOwor5Y+YID4gaGVuXCA7Civlj5MgPiBzaGlcIDsKK+WPjyA+IGthaVwgOwor5Y+HID4gdGFpXCA7Civlj4UgPiBzYW5cIDsKK+WPhCA+IHNhblwgOwor5Y+BID4gc2FuXCA7Civlj4AgPiBzZW5cIDsKK+WOvSA+IHJ1aVwgOwor5Y66ID4ga3lvXCA7CivljrkgPiBqaXVcIDsKK+WOuCA+IHJpblwgOwor5Y63ID4ga291XCA7CivljrYgPiBzaGlcIDsKK+WOtSA+IGdlblwgOwor5Y6yID4gcmVpXCA7Civljq4gPiBzaGlcIDsKK+WOqyA+IGdvdVwgOwor5Y6qID4ga2luXCA7CivljqcgPiB0ZW5cIDsKK+WOoSA+IGdlblwgOwor5Y6cID4gc2hpXCA7CivljpkgPiBzaGFcIDsKK+WOlyA+IHRlaVwgOwor5Y6WID4gYm91XCA7CivljpMgPiBnYWlcIDsKK+WOjiA+IHNoaVwgOwor5Y6JID4gcmVpXCA7CivljoggPiBrYW5cIDsKK+WOgyA+IHNlblwgOwor5Y6CID4ga2FuXCA7CivljbogPiBraW5cIDsKK+WNryA+IGJvdVwgOwor5Y2uID4gc2hpXCA7CivljawgPiBnYXVcIDsKK+WNpSA+IHNlaVwgOwor5Y2kID4gc2VpXCA7CivljaMgPiB5dXVcIDsKK+WNniA+IGhlblwgOwor5Y2dID4ga2FuXCA7CivljZUgPiB0YW5cIDsKK+WNkCA+IGJhblwgOwor5Y2LID4gc2VpXCA7CivljYUgPiBzb3VcIDsKK+WNhCA+IGp1dVwgOwor5Yy+ID4gaGVuXCA7CivljLggPiBrZWlcIDsKK+WMtyA+IGt5b1wgOwor5Yy0ID4gc2FuXCA7CivljLMgPiByZW5cIDsKK+WMsiA+IHJlblwgOwor5YywID4gdGFuXCA7CivljK8gPiB3YWlcIDsKK+WMqCA+IHpvdVwgOwor5YylID4gaGVuXCA7CivljJ8gPiBrb3VcIDsKK+WMnSA+IHNvdVwgOwor5YyYID4gZG91XCA7CivljJIgPiB0b3VcIDsKK+WMjyA+IGhvdVwgOwor5YyMID4ga291XCA7CivljIsgPiB0b3VcIDsKK+WMhCA+IGthaVwgOwor5Yu9ID4gYnVuXCA7Civli7kgPiBob3VcIDsKK+WLtyA+IGpvdVwgOwor5Yu1ID4gcmVpXCA7Civli7QgPiByeW9cIDsKK+WLsyA+IGt1blwgOwor5YuyID4ga3VuXCA7Civli7EgPiBiYWlcIDsKK+WLryA+IHRhblwgOwor5YusID4ga2VuXCA7Civli6sgPiBoYW5cIDsKK+WLqCA+IHlvdVwgOwor5YumID4gc291XCA7Civli6EgPiBoZXVcIDsKK+WLmyA+IGt1blwgOwor5YuXID4gYm91XCA7Civli5QgPiBiZW5cIDsKK+WLkyA+IGthaVwgOwor5YuRID4gcmFpXCA7Civli5AgPiBiYXVcIDsKK+WLjyA+IGhvdVwgOwor5YuNID4ga2VpXCA7Civli4wgPiBrZW5cIDsKK+WLiCA+IHlvdVwgOwor5YuGID4gcm91XCA7Civli4QgPiBiaW5cIDsKK+WLgiA+IGtvdVwgOwor5YuBID4ga2VpXCA7Civlir8gPiBzZWlcIDsKK+WKviA+IGdhaVwgOwor5Yq6ID4gYm91XCA7CivlircgPiB5b3VcIDsKK+WKtiA+IGtvdVwgOwor5Yq1ID4ga2VuXCA7CivlirMgPiByb3VcIDsKK+WKsiA+IGtlaVwgOwor5YqvID4gc2hvXCA7CivliqcgPiBzaGlcIDsKK+WKpSA+IGtvdVwgOwor5YqkID4ga2luXCA7Civlip4gPiBoZW5cIDsKK+WKnSA+IGthblwgOwor5YqXID4gc2FuXCA7CivlipYgPiBzYW5cIDsKK+WKlCA+IGtlblwgOwor5YqSID4ga2VuXCA7CivlipEgPiB6YWlcIDsKK+WKjiA+IGtlblwgOwor5YqMID4ga2VpXCA7CivlioogPiBrYWlcIDsKK+WKhiA+IHJlblwgOwor5Ym/ID4gc291XCA7CivlibwgPiBzYW5cIDsKK+WJuyA+IGh1dVwgOwor5Ym4ID4gdGFuXCA7CivlibcgPiBzYW5cIDsKK+WJtCA+IGdhaVwgOwor5YmzID4gdG91XCA7CivlibEgPiBrZW5cIDsKK+WJsCA+IGpvdVwgOwor5YmtID4gb2t1XCA7CivliawgPiB0YW5cIDsKK+WJqiA+IHNlblwgOwor5YmpID4gam91XCA7CivliaQgPiB6YWlcIDsKK+WJoCA+IGtlaVwgOwor5YmcID4gd2FuXCA7CivliZogPiBzaGlcIDsKK+WJmSA+IHNvdVwgOwor5YmXID4gc2FuXCA7CivliY8gPiBzb3VcIDsKK+WJhSA+IHJvdVwgOwor5YmEID4ga2VpXCA7CivliLggPiBrZW5cIDsKK+WIsiA+IGtlaVwgOwor5YixID4gc291XCA7CivliKwgPiBzYW5cIDsKK+WIqiA+IHNhblwgOwor5YioID4gaG91XCA7CivliKcgPiBnb3VcIDsKK+WIoiA+IHJlaVwgOwor5YihID4gYmluXCA7CivliKAgPiBzYW5cIDsKK+WIniA+IHNob1wgOwor5YiTID4gZ3VuXCA7CivliJAgPiB0YW5cIDsKK+WIjiA+IGZ1blwgOwor5YiMID4gc29uXCA7CivliIsgPiBzZW5cIDsKK+WIhSA+IHNvdVwgOwor5YiEID4gamluXCA7CivliIIgPiB0YXVcIDsKK+WIgSA+IHRldVwgOwor5Ye+ID4ga2FuXCA7Civlh7cgPiBrYWlcIDsKK+WHtSA+IGthblwgOwor5YezID4gdG91XCA7Civlh7IgPiBrYW5cIDsKK+WHsSA+IGdhaVwgOwor5YewID4ga291XCA7Civlh64gPiBmdXVcIDsKK+WHrSA+IGhlaVwgOwor5YeoID4gZnV1XCA7Civlh6UgPiBreW9cIDsKK+WHpCA+IGhvdVwgOwor5YejID4gaGFuXCA7Civlh6IgPiBib25cIDsKK+WHnCA+IHJpblwgOwor5YebID4gcmluXCA7Civlh5ggPiBzaGlcIDsKK+WHlyA+IHNhaVwgOwor5YeWID4ganVuXCA7Civlh5UgPiBiZWlcIDsKK+WHlCA+IHNhdVwgOwor5YeRID4gc291XCA7Civlh48gPiBnZW5cIDsKK+WHiiA+IHNlaVwgOwor5YeIID4gc291XCA7Civlh4YgPiBqdW5cIDsKK+WHgiA+IGJhaVwgOwor5Ya/ID4gc2VuXCA7CivlhrogPiBiaW5cIDsKK+WGuCA+IGhhblwgOwor5YatID4gdGFpXCA7CivlhqkgPiBzaGFcIDsKK+WGpiA+IGtvdVwgOwor5YalID4gbWVpXCA7CivlhqMgPiBzaHVcIDsKK+WGoSA+IGJvdVwgOwor5YaVID4gYmVuXCA7CivlhpMgPiBrb3VcIDsKK+WGkCA+IGJvdVwgOwor5YaPID4ga2VpXCA7CivlhosgPiBrZWlcIDsKK+WGiSA+IG5lblwgOwor5YaEID4gemVuXCA7CivlhoMgPiBib3VcIDsKK+WGgiA+IGtlaVwgOwor5YWuID4ga2VpXCA7CivlhacgPiBkYWlcIDsKK+WFpiA+IGJvdVwgOwor5YWkID4ga291XCA7CivlhZggPiBzaGlcIDsKK+WFlSA+IHNoaVwgOwor5YWKID4gdGFpXCA7CivlhL8gPiBqaW5cIDsKK+WEvSA+IHJhaVwgOwor5YS8ID4gZ2VuXCA7CivlhLsgPiB0b3VcIDsKK+WEuSA+IHNhblwgOwor5YS3ID4gcmVpXCA7CivlhLMgPiBzYW5cIDsKK+WEsSA+IHJvdVwgOwor5YSvID4gdG91XCA7CivlhKkgPiBzaGlcIDsKK+WEpyA+IHNhblwgOwor5YSlID4gaWt1XCA7CivlhKQgPiBob3VcIDsKK+WEoyA+IGtvdVwgOwor5YSiID4gcnlvXCA7CivlhKEgPiByYWlcIDsKK+WEnSA+IGtlaVwgOwor5YScID4gZGF1XCA7CivlhJogPiBib3VcIDsKK+WEmSA+IGtlblwgOwor5YSWID4gcmFuXCA7CivlhJUgPiBzZWlcIDsKK+WEkyA+IHRhaVwgOwor5YSRID4gZ2FuXCA7CivlhJAgPiBoaW5cIDsKK+WEjiA+IHNhaVwgOwor5YSMID4ga2V1XCA7CivlhIsgPiB0YW5cIDsKK+WEiiA+IHNob1wgOwor5YSJID4ga2VuXCA7CivlhIggPiBrYWlcIDsKK+WEhyA+IGtlblwgOwor5YSGID4ga2VpXCA7CivlhIUgPiB0b3VcIDsKK+WEgyA+IHNlblwgOwor5YSCID4gZG91XCA7Civlg78gPiBzaGlcIDsKK+WDvCA+IGhvdVwgOwor5YO4ID4ga2luXCA7Civlg7YgPiBiaW5cIDsKK+WDryA+IHJpblwgOwor5YOuID4gZG91XCA7Civlg60gPiBzZW5cIDsKK+WDrCA+IHNldVwgOwor5YOpID4ga2FuXCA7Civlg6ggPiBodW5cIDsKK+WDpCA+IHRhblwgOwor5YOjID4gc2VuXCA7Civlg6IgPiBzZW5cIDsKK+WDoCA+IGZhblwgOwor5YOdID4gc2FuXCA7Civlg5wgPiB0b3VcIDsKK+WDmSA+IGtvdVwgOwor5YOXID4gcmF1XCA7Civlg5QgPiBzb25cIDsKK+WDkyA+IHRhaVwgOwor5YOQID4gc2VuXCA7Civlg44gPiBzZW5cIDsKK+WDjCA+IHlvdVwgOwor5YOLID4gdGFuXCA7Civlg4ogPiBzZW5cIDsKK+WDiSA+IHNlblwgOwor5YOIID4gYmFuXCA7Civlg4YgPiByZW5cIDsKK+WDhCA+IGhldVwgOwor5YOCID4gcm91XCA7Civlg4AgPiB0ZWlcIDsKK+WCuiA+IHRlaVwgOwor5YK4ID4gc2F1XCA7CivlgrUgPiBzYWlcIDsKK+WCsiA+IGdvdVwgOwor5YKwID4gaG91XCA7Civlgq8gPiBzb3VcIDsKK+WCriA+IHNvdVwgOwor5YKtID4geW91XCA7CivlgqogPiBzYW5cIDsKK+WCpCA+IHNhaVwgOwor5YKhID4gaGVpXCA7Civlgp0gPiB0YW5cIDsKK+WCmyA+IHlvdVwgOwor5YKaID4ga291XCA7CivlgpYgPiBzYXVcIDsKK+WClCA+IGtlblwgOwor5YKTID4gc2VuXCA7CivlgpIgPiBrZWlcIDsKK+WCkCA+IGtvdVwgOwor5YKPID4gdG91XCA7Civlgo4gPiB0ZW5cIDsKK+WCiyA+IGthdVwgOwor5YKHID4gam91XCA7CivlgoYgPiBnZW5cIDsKK+WCgiA+IGNoaVwgOwor5YKBID4gc291XCA7CivlgoAgPiBrYWlcIDsKK+WBuyA+IHJvdVwgOwor5YG6ID4gc2FuXCA7CivlgbggPiB0b3VcIDsKK+WBsyA+IHRhblwgOwor5YGyID4gc2hpXCA7Civlga0gPiBiZW5cIDsKK+WBrCA+IHNvdVwgOwor5YGrID4gY2hpXCA7CivlgakgPiBodXVcIDsKK+WBqCA+IHNoaVwgOwor5YGmID4gc2hvXCA7CivlgaIgPiBzZXVcIDsKK+WBoSA+IHRhblwgOwor5YGeID4geW91XCA7CivlgZ0gPiBoYWlcIDsKK+WBmyA+IHNvdVwgOwor5YGZID4gdGVpXCA7CivlgZggPiBrYW5cIDsKK+WBlyA+IHNlaVwgOwor5YGWID4gc2hhXCA7CivlgZUgPiBrYWlcIDsKK+WBkyA+IGFrdVwgOwor5YGSID4gdG91XCA7CivlgZEgPiBodXVcIDsKK+WBkCA+IGdhblwgOwor5YGPID4gaGVuXCA7CivlgY4gPiB3YWlcIDsKK+WBjSA+IHRlaVwgOwor5YGLID4gaGVpXCA7CivlgYQgPiBkYW5cIDsKK+WBgiA+IHNlblwgOwor5YC8ID4gY2hpXCA7CivlgLcgPiBkYWlcIDsKK+WAtCA+IGhvblwgOwor5YCzID4gc2hpXCA7CivlgLIgPiB0b3VcIDsKK+WAsSA+IGtvblwgOwor5YCrID4gcmluXCA7CivlgKogPiBnZWlcIDsKK+WAqCA+IGt5b1wgOwor5YCnID4gc291XCA7CivlgKUgPiBrb3VcIDsKK+WAoyA+IGhvdVwgOwor5YCeID4ga2VpXCA7CivlgJ0gPiBrYW5cIDsKK+WAlyA+IGhvdVwgOwor5YCWID4ga291XCA7CivlgJUgPiBzdWlcIDsKK+WAkyA+IHRhblwgOwor5YCRID4gbW9uXCA7CivlgI4gPiB0ZW5cIDsKK+WAjSA+IGJhaVwgOwor5YCKID4gc291XCA7CivlgIggPiByYWlcIDsKK+WAhSA+IHNhaVwgOwor5YCEID4ga291XCA7CivlgIIgPiBoZWlcIDsKK+WAgSA+IGNoaVwgOwor5L+/ID4gY2hpXCA7Civkv70gPiBraW5cIDsKK+S/vCA+IGlrdVwgOwor5L+4ID4gaG91XCA7Civkv7QgPiBzZW5cIDsKK+S/syA+IGhhaVwgOwor5L+yID4ga291XCA7Civkv6sgPiByYWlcIDsKK+S/nyA+IHNoaVwgOwor5L+cID4gaGVpXCA7Civkv5sgPiBiZW5cIDsKK+S/liA+IGhhaVwgOwor5L+UID4ga2VuXCA7Civkv5MgPiBnYXVcIDsKK+S/kiA+IGtvblwgOwor5L+RID4geW91XCA7Civkv48gPiBzZXVcIDsKK+S/iiA+IGp1blwgOwor5L+GID4gc2hvXCA7Civkv4AgPiB0YWlcIDsKK+S+viA+IGtvdVwgOwor5L69ID4gZGFuXCA7CivkvrkgPiB0ZWlcIDsKK+S+qyA+IG5laVwgOwor5L6jID4gcnlvXCA7Civkvp8gPiBzZW5cIDsKK+S+lyA+IHRvdVwgOwor5L6WID4gcm9uXCA7CivkvpQgPiBib3VcIDsKK+S+kSA+IHl1dVwgOwor5L6PID4gc2h1XCA7CivkvoogPiBrb3VcIDsKK+S+iCA+IHNoaVwgOwor5L6FID4ga2FpXCA7CivkvoMgPiBrYW5cIDsKK+S+gCA+IGtlaVwgOwor5L29ID4gc2hpXCA7CivkvbwgPiBrb3VcIDsKK+S9uiA+IHNlblwgOwor5L23ID4ga291XCA7CivkvbEgPiBob3VcIDsKK+S9ryA+IHlvdVwgOwor5L2uID4ga291XCA7CivkvakgPiBoYWlcIDsKK+S9oyA+IHlvdVwgOwor5L2iID4ga3lvXCA7CivkvaEgPiBrZW5cIDsKK+S9nyA+IHRvdVwgOwor5L2eID4gbmVpXCA7CivkvZ0gPiBrb3VcIDsKK+S9mCA+IHNoYVwgOwor5L2RID4geXV1XCA7CivkvYwgPiBzaGlcIDsKK+S9iSA+IGt5b1wgOwor5L2GID4gdGFuXCA7CivkvYIgPiB5YWlcIDsKK+S9gCA+IHNoaVwgOwor5Ly7ID4gaG91XCA7CivkvLkgPiBzaG9cIDsKK+S8tiA+IHJlaVwgOwor5LytID4ga2VuXCA7CivkvKMgPiBrZW5cIDsKK+S8mCA+IHl1dVwgOwor5LyXID4gZ2luXCA7CivkvJMgPiBoYWlcIDsKK+S8kiA+IGtpblwgOwor5LyJID4ga291XCA7CivkvIcgPiBla2lcIDsKK+S8hSA+IHRvblwgOwor5LyCID4gaGFpXCA7Civku78gPiBob3VcIDsKK+S7viA+IHRlaVwgOwor5Lu9ID4gaGluXCA7Civku7cgPiBrYWlcIDsKK+S7sSA+IGtlblwgOwor5LuvID4gc291XCA7Civku60gPiBqaW5cIDsKK+S7oCA+IGthblwgOwor5LufID4gc2VuXCA7Civku54gPiBqaW5cIDsKK+S7nCA+IGtvdVwgOwor5LuaID4ga2VuXCA7Civku5AgPiBzYW5cIDsKK+S7jiA+IGp1dVwgOwor5LuNID4gam91XCA7Civku4MgPiB0ZWlcIDsKK+S7gCA+IGp1dVwgOwor5Lq+ID4gYm91XCA7CivkurcgPiByZW5cIDsKK+S6tiA+IHRhblwgOwor5LqwID4ga2VpXCA7CivkuqIgPiBrb3VcIDsKK+S6oCA+IHRvdVwgOwor5LqdID4gc2VpXCA7CivkupcgPiBzYWlcIDsKK+S6liA+IHNoaVwgOwor5LqDID4gcmluXCA7CivkuoEgPiBrZW5cIDsKK+S5vyA+IGNoaVwgOwor5Lm5ID4ga2FuXCA7CivkuaogPiBkb3VcIDsKK+S5qSA+IGtlaVwgOwor5LmoID4gc2hpXCA7CivkuaIgPiBnYWlcIDsKK+S5liA+IGthaVwgOwor5LmTID4gaGF1XCA7CivkuZIgPiBoZWlcIDsKK+S5kSA+IGdpblwgOwor5LmCID4gZ2FpXCA7CivkuL4gPiBreW9cIDsKK+S4vSA+IHJlaVwgOwor5Li2ID4gY2h1XCA7CivkuLMgPiBzYW5cIDsKK+S4sSA+IGthblwgOwor5LiwID4gaG91XCA7CivkuK8gPiBrYWlcIDsKK+S4qCA+IGtvblwgOwor5LijID4geXV1XCA7CivkuJkgPiBoZWlcIDsKK+S4lyA+IHNlaVwgOwor5LiTID4gc2VuXCA7CivkuJAgPiBrYWlcIDsKK+S4jyA+IGJlblwgOwor5LiCID4ga291XCA7Civov6YgPiBrYVwgOwor55+iID4geWFcIDsKK+W/nCA+IG91XCA7Civlv4wgPiBraVwgOwor6L6tID4gamlcIDsKK+W+riA+IGJpXCA7CivlvqEgPiBnb1wgOwor6L6eID4gamlcIDsKK+W+kiA+IHRvXCA7CivlvpAgPiBqb1wgOwor5b6DID4gb3VcIDsKK+W+gCA+IG91XCA7CivnnLwgPiBtZVwgOwor6LyqID4gd2FcIDsKK+W8pSA+IG1pXCA7CivnnJ8gPiBtYVwgOwor6LydID4ga2lcIDsKK+W8lSA+IGluXCA7CivlvJAgPiBuaVwgOwor5bu2ID4gZW5cIDsKK+ebriA+IG1lXCA7CivouqsgPiBtaVwgOwor5bqrID4ga29cIDsKK+W6pyA+IHphXCA7CivluqYgPiBkb1wgOwor5bqcID4gZnVcIDsKK+W6hyA+IGhpXCA7CivouLAgPiB5dVwgOwor5biwID4ga2lcIDsKK+eXuiA+IGhpXCA7Civot68gPiByb1wgOwor5beuID4gc2FcIDsKK+i3qiA+IGtpXCA7Civlt6ggPiBrb1wgOwor5bejID4gc3VcIDsKK+W3niA+IHN1XCA7Civnl5sgPiB0c1wgOwor55ayID4gaGlcIDsKK+eWkSA+IGdpXCA7Civnlo4gPiBzb1wgOwor55aLID4gc29cIDsKK+i1tyA+IGtpXCA7CivotbQgPiBmdVwgOwor55SwID4gdGFcIDsKK+eUpSA+IG9pXCA7CivotJQgPiBoaVwgOwor6LK7ID4gaGlcIDsKK+iytCA+IGtpXCA7CivnkrAgPiB3YVwgOwor6LKoID4ga2FcIDsKK+iyoCA+IGZ1XCA7CivosasgPiB5b1wgOwor5bGlID4gcmlcIDsKK+WxkyA+IGtpXCA7CivlsYsgPiB5YVwgOwor6LC3ID4geWFcIDsKK+eQhiA+IHJpXCA7Civlr50gPiBuZVwgOwor5a+QID4gYmlcIDsKK+ePiCA+IGthXCA7Civlr4QgPiBraVwgOwor5a62ID4ga2VcIDsKK+WunyA+IG1pXCA7CivlrpwgPiBnaVwgOwor546LID4gb3VcIDsKK+itvSA+IHlvXCA7CivorbcgPiBnb1wgOwor6K2wID4gZ2lcIDsKK+itrCA+IGhpXCA7CivlraMgPiBraVwgOwor5a2XID4gamlcIDsKK+WtkCA+IG5lXCA7CivlrIkgPiBraVwgOwor5aq8ID4gb3VcIDsKK+iqsiA+IGthXCA7CivoqqQgPiBnb1wgOwor54qgID4gZ2lcIDsKK+iqniA+IGdvXCA7CivlqpogPiBiaVwgOwor6KqJID4geW9cIDsKK+iqhyA+IGtvXCA7CivlqaYgPiBmdVwgOwor5amiID4gaGlcIDsKK+WpiSA+IGVuXCA7CivoqLQgPiBzb1wgOwor6KidID4gZ2FcIDsKK+iomCA+IGtpXCA7CivniJAgPiByb1wgOwor54efID4gZWlcIDsKK+WmrCA+IHRvXCA7CivlppMgPiBraVwgOwor6KaLID4gbWlcIDsKK+WmgiA+IGpvXCA7CivlpbMgPiBqb1wgOwor6KWmID4ganVcIDsKK+WlpyA+IG91XCA7CivlpYggPiBuYVwgOwor5aWHID4ga2lcIDsKK+WkriA+IG91XCA7CivlpKogPiB0YVwgOwor54ShID4gbXVcIDsKK+ikniA+IG9uXCA7CivlpJogPiB0YVwgOwor6KSTID4gaG9cIDsKK+ijsyA+IG1vXCA7Civoo6EgPiByaVwgOwor54OfID4gZW5cIDsKK+ijnCA+IGhvXCA7Civloq4gPiBkYVwgOwor6KKrID4gaGlcIDsKK+ihsCA+IHNhXCA7Civnga8gPiBoaVwgOwor54GrID4gaGlcIDsKK+ihniA+IGVpXCA7CivooZsgPiBlaVwgOwor5aGXID4gdG9cIDsKK+WgtSA+IHRvXCA7CivloLQgPiBiYVwgOwor54CsID4gc2VcIDsKK+WglSA+IGRhXCA7Civon7IgPiBraVwgOwor5r+hID4ganVcIDsKK+ieuiA+IHJhXCA7CivlnZAgPiB6YVwgOwor5ZyWID4gdG9cIDsKK+a8lCA+IGVuXCA7CivlnJMgPiBlblwgOwor5ZyDID4gaG9cIDsKK+WbuiA+IGtvXCA7Civlm7MgPiB6dVwgOwor5ZugID4gaW5cIDsKK+m7hCA+IGtpXCA7Civmuq8gPiBzb1wgOwor6JqKID4ga2FcIDsKK+m5vSA+IGVuXCA7Civmua8gPiB5dVwgOwor5ripID4gb25cIDsKK+WYqSA+IGthXCA7CivmuKEgPiB0b1wgOwor6biaID4gb3VcIDsKK+WYlCA+IG91XCA7CivomIcgPiBzb1wgOwor6be6ID4gcm9cIDsKK+a3uSA+IGVuXCA7Civmt6sgPiBpblwgOwor5ZefID4gYWFcIDsKK+iXjSA+IGFpXCA7CivmtrggPiBrb1wgOwor5ZaqID4gbW9cIDsKK+WWnCA+IGtpXCA7Civmta4gPiBmdVwgOwor6bWhID4gYnVcIDsKK+a0viA+IGhhXCA7CivmtKkgPiBlaVwgOwor5rOzID4gZWlcIDsKK+WTqSA+IHJpXCA7Civlk6EgPiBpblwgOwor5rOEID4gZWlcIDsKK+WTgCA+IGFpXCA7Civmsr8gPiBlblwgOwor5rK7ID4gamlcIDsKK+aymSA+IHNhXCA7CivlkowgPiB3YVwgOwor5rG9ID4ga2lcIDsKK+WRvCA+IGtvXCA7CivmsbAgPiB0YVwgOwor5ZGqID4ganVcIDsKK+iRoSA+IGhvXCA7CivmsZ0gPiBqb1wgOwor6JGJID4gaGFcIDsKK+WRiSA+IGdvXCA7CivlkL4gPiBnb1wgOwor5rC4ID4gZWlcIDsKK+awtyA+IGhpXCA7CivlkKYgPiBoaVwgOwor5rCjID4ga2lcIDsKK+awlyA+IGtpXCA7CivlkJAgPiB0b1wgOwor5ZCPID4gcmlcIDsKK+WQjSA+IG5hXCA7Civlj68gPiBrYVwgOwor6I+cID4gbmFcIDsKK+avmyA+IGtlXCA7Civlj5kgPiBqb1wgOwor5q+YID4gaGlcIDsKK+WPlyA+IGp1XCA7Civmr5QgPiBoaVwgOwor6I+TID4ga2FcIDsKK+avhiA+IG91XCA7CivojqsgPiBib1wgOwor5q24ID4ga2lcIDsKK+iNtyA+IG5pXCA7Civpra8gPiByb1wgOwor5Y2xID4ga2lcIDsKK+atryA+IGhhXCA7CivmrakgPiBob1wgOwor5q2mID4gYnVcIDsKK+atnyA+IHlvXCA7CivprZggPiBlblwgOwor6a2UID4gbWFcIDsKK+WNkSA+IGhpXCA7CivmrZAgPiBvdVwgOwor6a2FID4gbWlcIDsKK+iMuSA+IGpvXCA7CivmrLogPiBnaVwgOwor5qy3ID4ga2lcIDsKK+WMliA+IGthXCA7CivljI0gPiBob1wgOwor6IyEID4ga2FcIDsKK+iMgiA+IG1vXCA7Civoi7EgPiBlaVwgOwor6IumID4ga3VcIDsKK+iLmyA+IGthXCA7Civli5kgPiBtdVwgOwor6IuRID4gZW5cIDsKK+iKvSA+IG1lXCA7CivliqogPiBkb1wgOwor5YqgID4ga2FcIDsKK+aqkCA+IGVuXCA7Civmqo4gPiBnb1wgOwor6amFID4ga3VcIDsKK+aouSA+IGp1XCA7CivliKkgPiByaVwgOwor5qihID4gbW9cIDsKK+iIniA+IGJ1XCA7CivoiIcgPiB5b1wgOwor5Ye6ID4gZGVcIDsKK+iHpSA+IGdhXCA7Civpp4ggPiBrdVwgOwor6aeGID4ga3VcIDsKK+mnhCA+IHRhXCA7CivlhrYgPiB5YVwgOwor6IaaID4gZnVcIDsKK+amjiA+IGthXCA7CivlhbcgPiBndVwgOwor5YW2ID4ga2lcIDsKK+mlkSA+IGtpXCA7CivohZEgPiBmdVwgOwor5YWSID4gamlcIDsKK+iFkCA+IGZ1XCA7CivlhZAgPiBqaVwgOwor6aSYID4geW9cIDsKK+mkkyA+IGdhXCA7CivlhIAgPiBnaVwgOwor5YO5ID4ga2FcIDsKK+mjsiA+IGluXCA7Civpo64gPiBpblwgOwor6aOiID4ga2lcIDsKK+iDoSA+IGtvXCA7Civlg54gPiBnaVwgOwor6aObID4gaGlcIDsKK+ajhCA+IGtpXCA7CivlgpkgPiBiaVwgOwor6aGnID4ga29cIDsKK+WBmiA+IHNhXCA7CivpoYYgPiBrYVwgOwor5qGIID4gYW5cIDsKK+WBhyA+IGthXCA7CivmoLkgPiBuZVwgOwor5YC2ID4ga3VcIDsKK+WApCA+IG5lXCA7CivlgJogPiBraVwgOwor6aCXID4gaGFcIDsKK+mgkCA+IHlvXCA7CivlgIsgPiBrb1wgOwor5qCEID4gZWlcIDsKK+mfuyA+IGluXCA7Civmn7sgPiBzYVwgOwor6Z+zID4gbmVcIDsKK+e/syA+IGVpXCA7Civkv68gPiBmdVwgOwor5L+dID4gaG9cIDsKK+e+vSA+IHdhXCA7CivmnrYgPiBrYVwgOwor5p6vID4ga29cIDsKK+S+riA+IGJ1XCA7CivnvqkgPiBnaVwgOwor5p6cID4ga2FcIDsKK+S+mCA+IHRhXCA7Civnvo4gPiBiaVwgOwor576FID4gcmFcIDsKK+e9uSA+IHJpXCA7CivnvbUgPiBiYVwgOwor6Z2hID4gaGlcIDsKK+mdniA+IGhpXCA7CivkvZkgPiB5b1wgOwor6Z2SID4gYW9cIDsKK+S9kCA+IHNhXCA7CivkvLwgPiBuaVwgOwor5pyqID4gbWlcIDsKK+acqCA+IGtpXCA7CivmnJ8gPiBraVwgOwor5LyOID4gZ2lcIDsKK+S8jSA+IGdvXCA7CivkvIEgPiBraVwgOwor5puzID4gZWlcIDsKK+mboiA+IHJpXCA7Civku6MgPiB5b1wgOwor5LuYID4gZnVcIDsKK+masSA+IGluXCA7Civmmq4gPiBib1wgOwor6ZqgID4gaW5cIDsKK+S6myA+IHNhXCA7CivmmpcgPiBhblwgOwor5LqUID4gZ29cIDsKK+S6kiA+IGdvXCA7CivkupEgPiB1blwgOwor5LqMID4gbmlcIDsKK+S6iCA+IHlvXCA7CivnubsgPiBqdVwgOwor5pmuID4gZnVcIDsKK+mZpCA+IGpvXCA7CivpmaIgPiBpblwgOwor5LmdID4ga3VcIDsKK+mZhCA+IGZ1XCA7CivkuYMgPiBub1wgOwor6ZmAID4gZGFcIDsKK+S4uSA+IG5pXCA7CivmmK8gPiB6ZVwgOwor5pigID4gZWlcIDsKK+S4liA+IHlvXCA7CivkuI4gPiB5b1wgOwor5LiNID4gZnVcIDsKK+S4iSA+IG1pXCA7Civml7ogPiBvdVwgOwor5pelID4gaGlcIDsKK+aXoiA+IGtpXCA7CivntrogPiBraVwgOwor5paXID4gdG9cIDsKK+mWkyA+IG1hXCA7CivmlpAgPiBoaVwgOwor5pW3ID4gZnVcIDsKK+e0oCA+IHNvXCA7CivntIAgPiBraVwgOwor5pOsID4gZ2lcIDsKK+aSqyA+IGJ1XCA7CivmkakgPiBtYVwgOwor57GUID4gc3VcIDsKK+ewvyA+IGJvXCA7CivnsLcgPiBlblwgOwor5o6qID4gc29cIDsKK+aOqSA+IGVuXCA7CivmjpsgPiBrYVwgOwor5o6IID4ganVcIDsKK+euhyA+IGthXCA7CivmjZcgPiBob1wgOwor5o2VID4gaG9cIDsKK+aMqCA+IGFpXCA7CivnrKYgPiBmdVwgOwor5oyBID4gamlcIDsKK+mLrSA+IGVpXCA7Civpi6ogPiBob1wgOwor5oq8ID4gb3VcIDsKK+equiA+IGtpXCA7CivnqrYgPiBrdVwgOwor5oqrID4gaGlcIDsKK+aKkiA+IGpvXCA7CivmibkgPiBoaVwgOwor5om2ID4gZnVcIDsKK+aJkyA+IGRhXCA7CivnqY8gPiBvblwgOwor5omLID4gdGVcIDsKK+epgiA+IGhvXCA7CivnqLwgPiBrYVwgOwor5oi4ID4gdG9cIDsKK+aIsiA+IGdpXCA7CivmiK8gPiBnaVwgOwor5oe8ID4ga3VcIDsKK+enmCA+IGhpXCA7Civnp5EgPiBrYVwgOwor6YeOID4gbm9cIDsKK+mHjCA+IHJpXCA7CivnpZYgPiBzb1wgOwor56WVID4gaGlcIDsKK+aFlSA+IGJvXCA7CivnpYggPiBraVwgOwor5oWHID4gaW5cIDsKK+aEmyA+IGFpXCA7CivmhJogPiBndVwgOwor5oSJID4geXVcIDsKK+aEiCA+IHl1XCA7Civmg7kgPiBqYVwgOwor6YOoID4gYnVcIDsKK+ejqCA+IG1hXCA7CivmgrggPiBraVwgOwor5oKyID4gaGlcIDsKK+mCoyA+IGRhXCA7Civmgp8gPiBnb1wgOwor6YG/ID4gaGlcIDsKK+aBqSA+IG9uXCA7CivpgY4gPiBrYVwgOwor6YGLID4gdW5cIDsKK+egtCA+IGhhXCA7CivmgKggPiBlblwgOwor5oCWID4gZnVcIDsKK+mAlCA+IHRvXCA7CivmgJIgPiBkb1wgOwor6b6iID4ga2FcIDsKK+m+nCA+IGtpXCA7CivpvpEgPiBlblwgOwor6b2uID4gZ2lcIDsKK+m9nyA+IHNvXCA7CivpvZYgPiBnYVwgOwor6b2HID4gc2FcIDsKK+m9hiA+IG91XCA7CivpvL0gPiBndVwgOwor6by5ID4gZW5cIDsKK+m8tCA+IGVuXCA7CivpvK8gPiBnb1wgOwor6byUID4ga29cIDsKK+m8iSA+IHRhXCA7Civpu7wgPiBob1wgOwor6bu4ID4gcm9cIDsKK+m7ryA+IGFuXCA7Civpu60gPiBlblwgOwor6bukID4gZW5cIDsKK+m7oSA+IGVuXCA7Civpu58gPiBlaVwgOwor6bq+ID4ga2lcIDsKK+m6vCA+IG1hXCA7CivpurggPiBmdVwgOwor6bqsID4gZnVcIDsKK+m6pCA+IHNvXCA7CivpupIgPiBraVwgOwor6bqMID4gZ3VcIDsKK+m6iyA+IGJpXCA7CivpuoQgPiBzb1wgOwor6bqCID4ga2lcIDsKK+m6gSA+IHNvXCA7CivpubogPiBzYVwgOwor6bm1ID4gcm9cIDsKK+m5nyA+IG91XCA7CivpuYAgPiBidVwgOwor6bidID4gcmlcIDsKK+m4nCA+IGt1XCA7CivpuJUgPiByb1wgOwor6biSID4geW9cIDsKK+m3sCA+IGVuXCA7Civpt5cgPiBvdVwgOwor6beWID4gZWlcIDsKK+m3gyA+IGFuXCA7CivptrIgPiBvdVwgOwor6bavID4gb3VcIDsKK+m2mCA+IGtvXCA7CivptpUgPiBhblwgOwor6bW6ID4geWFcIDsKK+m1tyA+IGVuXCA7Civpta8gPiBoaVwgOwor6bWqID4gYW5cIDsKK+m1niA+IGdhXCA7CivptZ0gPiBnYVwgOwor6bWQID4gYnVcIDsKK+m0vSA+IGpvXCA7CivptLwgPiByb1wgOwor6bSzID4gYW5cIDsKK+m0ryA+IGppXCA7CivptKMgPiBrb1wgOwor6bSdID4ga3VcIDsKK+m0myA+IGVuXCA7CivptJUgPiB0YVwgOwor6bSRID4gZG9cIDsKK+mztiA+IGVuXCA7Civps6wgPiBmdVwgOwor6bOnID4gZnVcIDsKK+mzgSA+IG9uXCA7Civpso8gPiBoaVwgOwor6bKKID4gc2FcIDsKK+mxqyA+IGFpXCA7CivpsKIgPiBiYVwgOwor6bCbID4gb25cIDsKK+mwliA+IHRhXCA7CivpsIsgPiBlblwgOwor6a+hID4gaGlcIDsKK+mvnSA+IGtvXCA7Civpr4sgPiBzYVwgOwor6a+GID4gaG9cIDsKK+muuyA+IHNhXCA7CivprqwgPiBob1wgOwor6a6fID4gYW5cIDsKK+muniA+IGppXCA7Civpro0gPiBoaVwgOwor6a6HID4gYmlcIDsKK+mugCA+IHRhXCA7CivprbIgPiByb1wgOwor6a2uID4gaGlcIDsKK+mtpiA+IHNhXCA7CivprZUgPiBraVwgOwor6a2PID4gZ2lcIDsKK+mtjCA+IGtpXCA7CivprL0gPiBiaVwgOwor6ay5ID4ga2lcIDsKK+mstiA+IGtpXCA7CivprLQgPiBmdVwgOwor6ayQID4ga2lcIDsKK+msjSA+IGtvXCA7CivprIwgPiB0YVwgOwor6ayBID4gcmlcIDsKK+mrvyA+IHNhXCA7Civpq70gPiBzYVwgOwor6au1ID4gamlcIDsKK+mrsiA+IGhpXCA7Civpq6wgPiBoaVwgOwor6auXID4gcm9cIDsKK+mrgyA+IGd1XCA7Civpq4AgPiBoaVwgOwor6aq7ID4ga2FcIDsKK+mpqiA+IHJpXCA7CivpqaUgPiBraVwgOwor6amKID4ga2FcIDsKK+moviA+IHJhXCA7CivpqKcgPiBrYVwgOwor6aikID4ga2lcIDsKK+mooiA+IGthXCA7CivpqJYgPiBidVwgOwor6aiRID4gaGlcIDsKK+mojyA+IGtpXCA7CivpqI4gPiBraVwgOwor6aewID4gaW5cIDsKK+mnrCA+IGppXCA7Civpp6EgPiBiYVwgOwor6aeeID4gZGFcIDsKK+mnnSA+IHRhXCA7Civpp5kgPiBmdVwgOwor6aeVID4gZ2FcIDsKK+mnkyA+IGhpXCA7Civpp5EgPiBkb1wgOwor6aa/ID4gcm9cIDsKK+mmsSA+IHRhXCA7Civppp8gPiB0b1wgOwor6aaXID4ga2lcIDsKK+mloCA+IHJhXCA7CivppZwgPiBlblwgOwor6aWLID4ga2lcIDsKK+mlhyA+IHlvXCA7CivppYIgPiB1blwgOwor6aS9ID4ga2lcIDsKK+mkvCA+IGtpXCA7CivppLIgPiBlaVwgOwor6aSsID4ga29cIDsKK+mkqyA+IHVuXCA7CivppKEgPiBhblwgOwor6aScID4ga2FcIDsKK+mklCA+IGhvXCA7CivppIcgPiB0b1wgOwor6aOrID4geW9cIDsKK+mitiA+IGt1XCA7CivpoqsgPiBmdVwgOwor6aKVID4gZWlcIDsKK+mhsSA+IHJvXCA7CivpoawgPiBqdVwgOwor6aGXID4gZ2lcIDsKK+mgtSA+IGluXCA7CivpoLQgPiBlaVwgOwor6aCrID4gZnVcIDsKK+mgjiA+IGtpXCA7CivpoI0gPiBnaVwgOwor6Z+6ID4gZWlcIDsKK+mftSA+IGluXCA7Civpn54gPiBvblwgOwor6Z+XID4gdW5cIDsKK+mevyA+IGtpXCA7Civpnr4gPiBrYVwgOwor6Z68ID4ga2lcIDsKK+metSA+IGFpXCA7Civpno0gPiBhblwgOwor6Z6LID4gYWlcIDsKK+mehSA+IG91XCA7CivpnoEgPiBoaVwgOwor6Z2/ID4gb3VcIDsKK+mduyA+IHNvXCA7CivpnbcgPiBpblwgOwor6Z22ID4gaGFcIDsKK+mdiSA+IGFpXCA7CivpnKogPiBpblwgOwor6ZyjID4gaW5cIDsKK+mcjyA+IGhpXCA7CivpnIAgPiBqdVwgOwor6Zu6ID4gbXVcIDsKK+mbhSA+IGdhXCA7CivpmrMgPiBraVwgOwor6ZqpID4gb3VcIDsKK+mamCA+IGFpXCA7CivpmpUgPiBpblwgOwor6ZqQID4gaW5cIDsKK+maiyA+IHRhXCA7CivpmoIgPiBpblwgOwor6ZqBID4gZW5cIDsKK+mZuyA+IGluXCA7CivpmbQgPiBoaVwgOwor6ZmSID4ga2lcIDsKK+mZjyA+IHRhXCA7CivpmYIgPiBoYVwgOwor6ZmBID4gdGFcIDsKK+mYvSA+IGVuXCA7CivpmLwgPiBzb1wgOwor6Zi7ID4gc29cIDsKK+mYpSA+IGluXCA7CivpmJwgPiBmdVwgOwor6ZiHID4gdG9cIDsKK+mXniA+IGtuXCA7Civpl5ogPiBraVwgOwor6ZeNID4gdG9cIDsKK+mXiSA+IGluXCA7CivplrsgPiBlblwgOwor6Za5ID4gZW5cIDsKK+mWrSA+IHJvXCA7Civplp8gPiBoaVwgOwor6ZW+ID4gYmlcIDsKK+mRvCA+IHJhXCA7CivpkaogPiByb1wgOwor6ZCWID4ga2lcIDsKK+mPliA+IG91XCA7Civpj40gPiByYVwgOwor6Y+BID4gc2FcIDsKK+mOtiA+IGthXCA7CivpjrUgPiBrYVwgOwor6Y6jID4gZWlcIDsKK+mOiCA+IHNhXCA7CivpjoIgPiBiaVwgOwor6Y6BID4geWFcIDsKK+mNuiA+IHRhXCA7CivpjZwgPiBrYVwgOwor6Y2NID4gdG9cIDsKK+mNiCA+IGVpXCA7CivpjLsgPiBidVwgOwor6YyuID4ga29cIDsKK+mMpCA+IGtpXCA7CivpjKEgPiBraVwgOwor6YyNID4gaGlcIDsKK+mLuiA+IGVuXCA7Civpi7AgPiByaVwgOwor6YujID4geWFcIDsKK+mLmCA+IGthXCA7Civpi4YgPiBpblwgOwor6Yq8ID4gc2FcIDsKK+mKsyA+IGVpXCA7CivpiqggPiBhblwgOwor6YqfID4gc2FcIDsKK+mJoCA+IGVpXCA7CivpiY0gPiBoaVwgOwor6Yi5ID4gaGlcIDsKK+mItyA+IGtvXCA7CivpiKkgPiByb1wgOwor6YimID4gdGFcIDsKK+mIpSA+IGthXCA7CivpiJ0gPiBpblwgOwor6YiYID4gZ2lcIDsKK+mIhyA+IGh1XCA7CivpiIYgPiBlblwgOwor6YiAID4gaGFcIDsKK+mHuSA+IGpvXCA7Civph7cgPiB0b1wgOwor6Ye1ID4gc2FcIDsKK+mHoSA+IGZ1XCA7Civph5AgPiByaVwgOwor6Ya/ID4gYmlcIDsKK+mGvCA+IGVuXCA7CivphqggPiByaVwgOwor6YahID4gc2FcIDsKK+mGniA+IHVuXCA7CivphpYgPiB1blwgOwor6YaQID4ga29cIDsKK+mGgyA+IGVuXCA7CivphbogPiBob1wgOwor6YW0ID4gdG9cIDsKK+mFsyA+IGluXCA7CivphaUgPiBzb1wgOwor6YWkID4ga29cIDsKK+mFoiA+IHN1XCA7CivphaEgPiB0YVwgOwor6YWXID4ga3VcIDsKK+mFkyA+IGVuXCA7CivphYggPiByaVwgOwor6YSxID4gaGFcIDsKK+mEoiA+IGVuXCA7CivphKAgPiBrb1wgOwor6YScID4gaHVcIDsKK+mEliA+IHVuXCA7CivphIggPiBraVwgOwor6YSGID4gdW5cIDsKK+mEhSA+IGd1XCA7Civpg78gPiBiaVwgOwor6YO+ID4gZW5cIDsKK+mDtiA+IGJ1XCA7Civpg6sgPiBoaVwgOwor6YOiID4gZWlcIDsKK+mDmyA+IGZ1XCA7Civpg5kgPiBodVwgOwor6YKzID4gaGlcIDsKK+mCkCA+IHJpXCA7Civpgo8gPiByYVwgOwor6YKHID4gamlcIDsKK+mBoSA+IHNvXCA7CivpgZAgPiBrYVwgOwor6YC+ID4geXVcIDsKK+mAuiA+IGVuXCA7CivpgLUgPiBraVwgOwor6YCYID4gZ2lcIDsKK+mAiyA+IGhvXCA7Civov7EgPiB0YVwgOwor6L+sID4gb3VcIDsKK+i/qSA+IGppXCA7Civov5UgPiBnb1wgOwor6L+TID4gZ2FcIDsKK+i/kCA+IHVuXCA7Civov4sgPiBvdVwgOwor6L6kID4gamlcIDsKK+i+nSA+IGppXCA7CivovaQgPiByb1wgOwor6L2hID4gaGlcIDsKK+i9nSA+IHlvXCA7CivovZwgPiBqaVwgOwor6L2FID4gZW5cIDsKK+i9gCA+IG9uXCA7CivovLggPiB5dVwgOwor6LygID4ga2FcIDsKK+i8lCA+IGZ1XCA7CivovIUgPiByb1wgOwor6LyAID4gamlcIDsKK+i7uyA+IGthXCA7Civou7EgPiBrb1wgOwor6LuuID4gb3VcIDsKK+i7jCA+IGtpXCA7Civou4MgPiB0YVwgOwor6LuAID4ga3VcIDsKK+i6siA+IHRhXCA7CivourEgPiB0YVwgOwor6LqvID4ga3VcIDsKK+i6myA+IGVpXCA7CivoupcgPiBlaVwgOwor6LmeID4ga2lcIDsKK+i5iSA+IHNhXCA7CivouL0gPiBrdVwgOwor6Li3ID4gdGFcIDsKK+i4piA+IGtpXCA7CivouKAgPiBlblwgOwor6LiRID4ga2lcIDsKK+i3vyA+IHRvXCA7Civot70gPiBraVwgOwor6Le6ID4gdGFcIDsKK+i3rCA+IGtpXCA7Civot6ggPiBrb1wgOwor6LelID4gdGFcIDsKK+i3lyA+IGZ1XCA7Civot5QgPiBrdVwgOwor6LePID4ga2FcIDsKK+i3jiA+IHRhXCA7Civot4cgPiBlaVwgOwor6LeCID4ga2lcIDsKK+i2uiA+IGZ1XCA7Civota4gPiBrYVwgOwor6LWfID4gaW5cIDsKK+i1kSA+IGhpXCA7CivotI8gPiBlaVwgOwor6LSHID4gaW5cIDsKK+izuyA+IGZ1XCA7Civos6YgPiBmdVwgOwor6LOPID4gZWlcIDsKK+iziCA+IGtvXCA7Civos4IgPiByb1wgOwor6LOBID4gaGlcIDsKK+izgCA+IGdhXCA7CivosrMgPiBuaVwgOwor6LKuID4gbmlcIDsKK+iylCA+IGhpXCA7CivospAgPiB5dVwgOwor6LKNID4gcmlcIDsKK+ixviA+IGhpXCA7CivosbwgPiBoaVwgOwor6LGtID4ga2FcIDsKK+ixqCA+IGtpXCA7CivosZ0gPiBoYVwgOwor6LGZID4gZ2lcIDsKK+ixlyA+IGthXCA7CivosZQgPiBlblwgOwor6LGTID4gZW5cIDsKK+ixjiA+IGp1XCA7CivosYwgPiBlblwgOwor6LGIID4ga2lcIDsKK+iwuiA+IGthXCA7CivorpQgPiBpblwgOwor6K6PID4gZWlcIDsKK+iujCA+IGVuXCA7CivoroYgPiBlaVwgOwor6K6EID4gcnVcIDsKK+itrSA+IGtpXCA7CivorZwgPiBmdVwgOwor6K2SID4gaGFcIDsKK+itjyA+IGtpXCA7CivorYwgPiBrYVwgOwor6K2GID4ga2lcIDsKK+itgyA+IGt1XCA7CivorYEgPiBrYVwgOwor6Ky8ID4ga29cIDsKK+issyA+IG91XCA7CivorKggPiBib1wgOwor6KyMID4ga2FcIDsKK+irsyA+IGFuXCA7Civoq7EgPiBraVwgOwor6KutID4geXVcIDsKK+irmyA+IHl1XCA7Civoq4YgPiBraVwgOwor6Kq5ID4gaGlcIDsKK+iqpyA+IGhvXCA7CivoqqMgPiBmdVwgOwor6KqSID4ga2lcIDsKK+iqkCA+IGdhXCA7CivoqosgPiBraVwgOwor6KqAID4gamlcIDsKK+iprSA+IGtpXCA7CivoqasgPiB0YVwgOwor6KmhID4ga3VcIDsKK+ipoCA+IGVpXCA7CivoqZsgPiBzb1wgOwor6KmWID4gaGlcIDsKK+ipkSA+IHRhXCA7CivoqZAgPiBzYVwgOwor6KmNID4gZWlcIDsKK+ipiCA+IHJpXCA7CivoqYEgPiBrb1wgOwor6Ki2ID4ga2FcIDsKK+ioryA+IHNhXCA7CivoqI8gPiBrdVwgOwor6KiDID4gZnVcIDsKK+inrSA+IGtpXCA7Civop5ogPiBrb1wgOwor6KeVID4gc29cIDsKK+imvCA+IHJhXCA7CivoprYgPiByYVwgOwor6KawID4gc29cIDsKK+imrCA+IGtpXCA7CivopqkgPiB0b1wgOwor6KamID4geXVcIDsKK+immSA+IHJhXCA7Civopo8gPiBraVwgOwor6KaKID4ga2lcIDsKK+imiSA+IGtpXCA7CivopocgPiBoYVwgOwor6KWjID4gaGlcIDsKK+iktSA+IHJpXCA7CivopLIgPiBrb1wgOwor6KSoID4gc2FcIDsKK+iklSA+IHl1XCA7Civoo7kgPiBrYVwgOwor6KO3ID4gZW5cIDsKK+ijqCA+IGhpXCA7Civoo58gPiBzYVwgOwor6KOUID4gZWlcIDsKK+ijgCA+IGluXCA7Civoor0gPiBqb1wgOwor6KKuID4gbmVcIDsKK+iimSA+IGhhXCA7CivoooggPiBrYVwgOwor6KKBID4gZW5cIDsKK+ihuSA+IGtpXCA7CivooaIgPiBrdVwgOwor6KGaID4ga29cIDsKK+ihjSA+IGVuXCA7CivooYggPiBqaVwgOwor6KC5ID4gdG9cIDsKK+igsSA+IGtvXCA7CivooKcgPiB0b1wgOwor6KCVID4gZGFcIDsKK+igkSA+IGVpXCA7CivooIMgPiByYVwgOwor6J+rID4gaW5cIDsKK+ifoyA+IGtpXCA7Civon6IgPiBraVwgOwor6J6+ID4gaW5cIDsKK+ieniA+IGJhXCA7CivonpggPiBnaVwgOwor6J24ID4ga2FcIDsKK+idtCA+IGtvXCA7Civona8gPiBlblwgOwor6J2dID4gZW5cIDsKK+idmCA+IGVuXCA7CivonZMgPiB5dVwgOwor6J2MID4ga2FcIDsKK+icvyA+IGVuXCA7CivonL4gPiBrYVwgOwor6JyxID4gaGlcIDsKK+icniA+IGtpXCA7CivonJogPiBoaVwgOwor6JySID4gZW5cIDsKK+icjiA+IGVuXCA7CivonIogPiByaVwgOwor6JyJID4gZnVcIDsKK+iciCA+IGdvXCA7CivonIUgPiBodVwgOwor6Ju+ID4gZ2FcIDsKK+ibhCA+IGtvXCA7CivomrkgPiBodVwgOwor6Jq1ID4ga2FcIDsKK+iarSA+IGppXCA7CivomqggPiBodVwgOwor6JqcID4ga2FcIDsKK+iamiA+IGtpXCA7CivompMgPiBpblwgOwor6JqRID4ga2lcIDsKK+iajSA+IGhpXCA7CivombogPiBraVwgOwor6JmnID4ga2lcIDsKK+iZnSA+IGtvXCA7CivomZggPiBzYVwgOwor6JmWID4ga29cIDsKK+iZjSA+IGtvXCA7CivomYIgPiByb1wgOwor6JmBID4ga2lcIDsKK+iYvyA+IHJhXCA7CivomLwgPiBiaVwgOwor6Ji6ID4gcmlcIDsKK+iYtiA+IGdpXCA7CivomKcgPiBrdVwgOwor6JihID4gb3VcIDsKK+iYmSA+IGVpXCA7CivomJMgPiBzb1wgOwor6JiRID4gbWFcIDsKK+iYjiA+IGtpXCA7CivomIogPiB1blwgOwor6JiEID4ga2lcIDsKK+iXuyA+IG1vXCA7Civol7kgPiBhaVwgOwor6Je0ID4gdW5cIDsKK+iXpiA+IGJhXCA7Civolr8gPiBnaVwgOwor6Ja3ID4ganVcIDsKK+iWlyA+IGVuXCA7CivoloYgPiBhaVwgOwor6JaAID4gdW5cIDsKK+iVtyA+IHlvXCA7CivolbAgPiB1blwgOwor6JWgID4gam9cIDsKK+iVnCA+IGhpXCA7CivolZMgPiB1blwgOwor6JS0ID4gbWFcIDsKK+iUrCA+IHNvXCA7CivolKsgPiBlblwgOwor6JSiID4gaGFcIDsKK+iTmSA+IHphXCA7Civok5YgPiBoaVwgOwor6JOPID4gcmFcIDsKK+iTjCA+IHNhXCA7Civok4ogPiBvdVwgOwor6JK9ID4gb25cIDsKK+iSsSA+IGhvXCA7CivokqkgPiBzb1wgOwor6JKeID4gcmlcIDsKK+iSlSA+IHVuXCA7Civoka0gPiBrYVwgOwor6JGrID4ga29cIDsKK+iRqSA+IGhhXCA7CivokYogPiBhblwgOwor6JGGID4gaG9cIDsKK+iQuCA+IHl1XCA7CivokLUgPiB3YVwgOwor6JCTID4gZ2lcIDsKK+iQhiA+IGhpXCA7CivokIEgPiBraVwgOwor6I+4ID4gZW5cIDsKK+iPtCA+IGFuXCA7Civoj7IgPiBoaVwgOwor6I+wID4ga29cIDsKK+iPoCA+IGhhXCA7Civoj58gPiB0b1wgOwor6I+PID4ga2FcIDsKK+iPhyA+IGtvXCA7Civoj4AgPiBlblwgOwor6I61ID4gdG9cIDsKK+iOqiA+IGdhXCA7CivojqkgPiBodVwgOwor6I6dID4gc2FcIDsKK+iOmiA+IGVuXCA7Civojo4gPiBzYVwgOwor6I6GID4gaHVcIDsKK+iOhSA+IHJpXCA7CivojbwgPiB0b1wgOwor6I2wID4gdG9cIDsKK+iNlCA+IHJpXCA7CivojYIgPiBrYVwgOwor6Iy1ID4gaW5cIDsKK+iMsiA+IGppXCA7CivojLAgPiB5dVwgOwor6IyjID4gZ29cIDsKK+iMmCA+IHJpXCA7Civoi70gPiBrb1wgOwor6Iu7ID4gZnVcIDsKK+iLtCA+IHNvXCA7Civoi6QgPiBoaVwgOwor6Iq+ID4gaGlcIDsKK+iKuiA+IG91XCA7CivoirAgPiBraVwgOwor6IqtID4gYmFcIDsKK+iKqiA+IGtpXCA7CivoiqYgPiByb1wgOwor6IqZID4gZnVcIDsKK+iKmCA+IGhpXCA7CivoipQgPiBraVwgOwor6IqRID4ga2lcIDsKK+iKiCA+IGJhXCA7CivoibcgPiBlblwgOwor6ImqID4gcm9cIDsKK+iJpCA+IGdpXCA7CivoiaMgPiByb1wgOwor6ImWID4gc2FcIDsKK+iJhSA+IHlvXCA7CivoiYMgPiByaVwgOwor6Ii4ID4ga2FcIDsKK+iIriA+IHJvXCA7CivoiJcgPiBob1wgOwor6IiWID4gaG9cIDsKK+iIkiA+IGpvXCA7CivoiIEgPiB5b1wgOwor6Ie+ID4geXVcIDsKK+iHniA+IGt1XCA7Civoh50gPiByYVwgOwor6IeZID4gZW5cIDsKK+iHgiA+IGhpXCA7CivohrQgPiBrb1wgOwor6IapID4gamlcIDsKK+iGhiA+IHNvXCA7CivohbQgPiB5dVwgOwor6IWhID4gcmFcIDsKK+iFlyA+IGhpXCA7CivohZMgPiBoaVwgOwor6IS+ID4gaGlcIDsKK+iEtSA+IGtvXCA7CivohK8gPiBob1wgOwor6ISeID4gc2FcIDsKK+iEnCA+IGp1XCA7Civog7kgPiBqaVwgOwor6IOvID4ga29cIDsKK+iDrSA+IGluXCA7Civog5kgPiBzb1wgOwor6IOVID4gaHVcIDsKK+iDjSA+IGtvXCA7Civog4ogPiBrdVwgOwor6IK5ID4gaGlcIDsKK+iCniA+IHNhXCA7CivogpogPiB0b1wgOwor6IGtID4ga2lcIDsKK+iAuiA+IHVuXCA7CivogLYgPiB5YVwgOwor6IChID4gam9cIDsKK+iAniA+IGthXCA7CivogJkgPiBoYVwgOwor6ICYID4gdW5cIDsKK+iAjyA+IGppXCA7CivogI0gPiBzYVwgOwor6ICMID4gamlcIDsKK+iAhiA+IGtpXCA7Civnv6wgPiBraVwgOwor57+hID4gaGlcIDsKK+e+siA+IGdpXCA7Civnvq0gPiB5dVwgOwor576WID4ga29cIDsKK+e+iyA+IGJhXCA7CivnvoggPiBraVwgOwor576HID4ga2lcIDsKK+e+hiA+IGhpXCA7CivnvbcgPiBoaVwgOwor572oID4gYW5cIDsKK+e9piA+IGh1XCA7CivnvZ8gPiBrb1wgOwor572bID4gcm9cIDsKK+e9mCA+IGZ1XCA7CivnvY8gPiByb1wgOwor572MID4gb3VcIDsKK+e9gyA+IG91XCA7CivnvLsgPiBmdVwgOwor57qTID4gZWlcIDsKK+e6kSA+IHJvXCA7CivnuacgPiB1blwgOwor57mlID4ga2lcIDsKK+e5hCA+IGVpXCA7CivnuLsgPiBiaVwgOwor57i3ID4gcnVcIDsKK+e4ryA+IGVuXCA7CivnuK0gPiByaVwgOwor57icID4gaW5cIDsKK+e4lSA+IHVuXCA7CivnuIogPiBlaVwgOwor57iIID4gZWlcIDsKK+e4gCA+IGthXCA7Civnt6MgPiBlblwgOwor57eLID4gaGlcIDsKK+e2rCA+IGp1XCA7CivntqYgPiBraVwgOwor57aeID4gdGFcIDsKK+e2liA+IGVuXCA7Civnta4gPiBqb1wgOwor57WqID4gaW5cIDsKK+e1pSA+IGhpXCA7CivntZ0gPiBrdVwgOwor57WHID4ga3VcIDsKK+e0vSA+IHRhXCA7CivntKYgPiBoYVwgOwor57ScID4gdW5cIDsKK+e0lyA+IHNhXCA7CivntJUgPiBoaVwgOwor57OvID4gZGFcIDsKK+ezoiA+IGJvXCA7Civns5wgPiBiaVwgOwor57K/ID4ga2FcIDsKK+eyqyA+IGppXCA7CivnspAgPiByb1wgOwor57KPID4gdGFcIDsKK+eyhiA+IHNhXCA7CivnsoMgPiBoaVwgOwor57G5ID4gam9cIDsKK+exsiA+IHl1XCA7Civnsa4gPiByYVwgOwor57GsID4gcmlcIDsKK+exnSA+IGVpXCA7CivnsZogPiByb1wgOwor57C4ID4gaGFcIDsKK+ewrCA+IHJvXCA7CivnsKMgPiBraVwgOwor57CgID4gaHVcIDsKK+ewlCA+IHNhXCA7CivnsJEgPiBzYVwgOwor57CLID4ga2lcIDsKK+ewhCA+IGtvXCA7CivnsIIgPiBrZVwgOwor56+2ID4gZW5cIDsKK+evmiA+IGhpXCA7Civnr5QgPiB1blwgOwor5662ID4ga29cIDsKK+eupSA+IGhhXCA7CivnrpsgPiBrb1wgOwor566VID4ga2lcIDsKK+eujiA+IGtvXCA7CivnraAgPiBpblwgOwor562OID4gam9cIDsKK+estCA+IGthXCA7CivnrLMgPiBrYVwgOwor56yvID4gZG9cIDsKK+esnyA+IGtvXCA7CivnrIYgPiBoYVwgOwor56usID4ga3VcIDsKK+erqiA+IGp1XCA7Civnq6kgPiBnaVwgOwor56uSID4ga2lcIDsKK+equSA+IGdvXCA7CivnqrMgPiB3YVwgOwor56qsID4geXVcIDsKK+eqqiA+IHdhXCA7CivnqqkgPiBrYVwgOwor56qgID4ga2FcIDsKK+eqiiA+IHdhXCA7CivnqakgPiBvblwgOwor56mlID4geW9cIDsKK+epoiA+IGFpXCA7CivnqZYgPiBraVwgOwor56mOID4gZWlcIDsKK+epjCA+IHNvXCA7CivnqLMgPiBvblwgOwor56ieID4ga2FcIDsKK+eomCA+IGtpXCA7CivnqIwgPiB0b1wgOwor56iDID4gaHVcIDsKK+enpyA+IG91XCA7Civnp6AgPiBoaVwgOwor56efID4gc29cIDsKK+enlSA+IGhpXCA7Civnpr4gPiBrYVwgOwor56aoID4ga2lcIDsKK+empyA+IGtpXCA7CivnpqEgPiBiYVwgOwor56acID4gZWlcIDsKK+emkSA+IGd1XCA7Civnpo0gPiBrYVwgOwor56aLID4gaW5cIDsKK+eluyA+IGtvXCA7CivnpbogPiBraVwgOwor56WcID4ga29cIDsKK+elmiA+IHNvXCA7CivnpZkgPiBtaVwgOwor56WUID4gaHVcIDsKK+elhyA+IGtpXCA7CivnpYEgPiBraVwgOwor56SgID4gamlcIDsKK+eknCA+IHlvXCA7CivnpJIgPiBnaVwgOwor56OvID4ga2lcIDsKK+ejpCA+IGluXCA7Civno6AgPiByb1wgOwor56OSID4gaW5cIDsKK+ejiyA+IHNhXCA7Civno4EgPiBqaVwgOwor56K8ID4gYmFcIDsKK+eirCA+IGthXCA7CivnoqQgPiBlaVwgOwor56KVID4ga2lcIDsKK+eilCA+IGJ1XCA7CivnooYgPiBoYVwgOwor56KBID4gZ29cIDsKK+ehqiA+IGdpXCA7CivnoLUgPiBvdVwgOwor56CuID4gZG9cIDsKK+egoyA+IHRhXCA7CivnoKIgPiByYVwgOwor56CSID4gaGlcIDsKK+egkSA+IGdhXCA7CivnoIYgPiBodVwgOwor55+sID4gc2FcIDsKK+efqSA+IGt1XCA7Civnn5EgPiByb1wgOwor556/ID4ga3VcIDsKK+eevSA+IGtvXCA7CivnnrkgPiBhaVwgOwor5562ID4ga2lcIDsKK+eeliA+IGVpXCA7CivnnoYgPiBraVwgOwor552/ID4gZWlcIDsKK+eduSA+IHRvXCA7CivnnbEgPiBrYVwgOwor552iID4ga2lcIDsKK+edjiA+IGtpXCA7CivnnYogPiBlblwgOwor552CID4gYmlcIDsKK+ecrSA+IGtpXCA7CivnnJcgPiBrdVwgOwor55uxID4ga3VcIDsKK+ebrCA+IGtvXCA7Civnm6cgPiByb1wgOwor55umID4gb3VcIDsKK+ebmSA+IGZ1XCA7Civnm44gPiBvdVwgOwor55uJID4ga2FcIDsKK+ebiCA+IGVpXCA7Civnm4EgPiBlaVwgOwor55q3ID4ga29cIDsKK+eapyA+IGFpXCA7CivnmqQgPiBoYVwgOwor55qIID4ga2lcIDsKK+eZryA+IGt1XCA7Civnma4gPiBpblwgOwor55mtID4gZWlcIDsKK+eZkiA+IHl1XCA7CivnmYogPiBpblwgOwor55i4ID4ga2FcIDsKK+eYpSA+IHNhXCA7CivnmJ8gPiBvblwgOwor55ieID4gZWlcIDsKK+eYliA+IGluXCA7CivnmJUgPiBrYVwgOwor55iPID4gdG9cIDsKK+eYiSA+IHl1XCA7CivnmIAgPiB5b1wgOwor55e8ID4ga29cIDsKK+eXuSA+IGhpXCA7Civnl7IgPiBtYVwgOwor55exID4gaGlcIDsKK+eXpyA+IHNhXCA7Civnl6QgPiBzYVwgOwor55eiID4gcmlcIDsKK+eXoSA+IGhvXCA7Civnl54gPiBoaVwgOwor55eUID4gamlcIDsKK+eXhCA+IHNhXCA7Civnl4IgPiBrYVwgOwor55eAID4ga3VcIDsKK+eWvyA+IGhpXCA7CivnlqQgPiBoYVwgOwor55acID4ga2FcIDsKK+eWlSA+IGhpXCA7Civnlo8gPiBzb1wgOwor55W/ID4ga2lcIDsKK+eVuCA+IGtpXCA7CivnlbIgPiB5b1wgOwor55WtID4geW9cIDsKK+eVrCA+IHlvXCA7CivnlZ0gPiBzZVwgOwor55WSID4gaG9cIDsKK+eViSA+IGZ1XCA7CivnlYcgPiBpblwgOwor55WGID4gaG9cIDsKK+eVgCA+IGhpXCA7CivnlKsgPiBob1wgOwor55SWID4gb3VcIDsKK+eUkiA+IGJ1XCA7CivnlIwgPiBvdVwgOwor55OvID4gb3VcIDsKK+eTriA+IG91XCA7Civnk6AgPiBrb1wgOwor55OUID4gZWlcIDsKK+eTkCA+IHJvXCA7Civnkr0gPiBqaVwgOwor55K1ID4geW9cIDsKK+eSpiA+IGFpXCA7CivnkqMgPiBraVwgOwor55KfID4gZWlcIDsKK+eSkSA+IGJ1XCA7CivnkpAgPiByb1wgOwor55KDID4gcmlcIDsKK+eRsyA+IHNhXCA7CivnkaogPiBiYVwgOwor55GpID4gZWlcIDsKK+eRoyA+IHNhXCA7CivnkZwgPiB5dVwgOwor55GbID4gZWlcIDsKK+eRmiA+IGtvXCA7CivnkZcgPiBlblwgOwor55C2ID4gaGFcIDsKK+eQtSA+IGJpXCA7CivnkLAgPiBlblwgOwor55CsID4gZW5cIDsKK+eQqiA+IGtpXCA7CivnkKYgPiBraVwgOwor55ClID4ga29cIDsKK+eQkSA+IHNhXCA7CivnkIogPiB5YVwgOwor54+4ID4gZ29cIDsKK+ePtyA+IGJ1XCA7Civnj7QgPiBnYVwgOwor54+xID4gZWlcIDsKK+ePpSA+IGppXCA7Civnj50gPiBrdVwgOwor54+CID4ga2FcIDsKK+eOuyA+IGhhXCA7Civnjp4gPiBodVwgOwor546YID4ga2lcIDsKK+eOhiA+IGppXCA7CivnjoAgPiByYVwgOwor5428ID4gYmlcIDsKK+eNuSA+IHJvXCA7CivnjKggPiBlblwgOwor54ynID4ga2FcIDsKK+eMpCA+IGtpXCA7CivnjKIgPiBrb1wgOwor54yTID4ga2FcIDsKK+eMkiA+IGVuXCA7CivnjIcgPiBvdVwgOwor54uzID4geW9cIDsKK+eLlSA+IG91XCA7Civni5IgPiBoaVwgOwor54uJID4gaGlcIDsKK+eLgSA+IGluXCA7CivniqcgPiBnaVwgOwor54qTID4gc3VcIDsKK+eKgiA+IHJpXCA7CivnioEgPiByaVwgOwor54m+ID4gZ29cIDsKK+eJsSA+IGthXCA7Civnia8gPiBrb1wgOwor54mrID4ga2FcIDsKK+eJoCA+IHRhXCA7CivniYEgPiBrYVwgOwor54i+ID4gamlcIDsKK+eIuSA+IHRhXCA7CivniLggPiBoYVwgOwor54iwID4gZW5cIDsKK+eIrCA+IGhhXCA7CivniJMgPiBlblwgOwor54esID4ga2lcIDsKK+eHhCA+IGVuXCA7CivnhrogPiBraVwgOwor54a5ID4ga2lcIDsKK+eGsCA+IG91XCA7CivnhpkgPiBraVwgOwor54aIID4ga2lcIDsKK+eGhSA+IHVuXCA7CivnhaYgPiBrdVwgOwor54WVID4ga2lcIDsKK+eFkCA+IGVpXCA7CivnhYcgPiBraVwgOwor54WGID4ga2FcIDsKK+eEuCA+IGtvXCA7CivnhLEgPiBlblwgOwor54SwID4gZW5cIDsKK+eEiSA+IGVuXCA7Civng5MgPiBlaVwgOwor54KsID4ga29cIDsKK+eCiSA+IHJvXCA7CivngoEgPiBraVwgOwor54GpID4gZW5cIDsKK+eBpyA+IGVuXCA7CivngZ4gPiBoYVwgOwor54GVID4gcmlcIDsKK+eBlCA+IGVuXCA7CivngY4gPiBlblwgOwor54GIID4ga3VcIDsKK+eAtCA+IGVpXCA7CivngLAgPiBiaVwgOwor54CvID4gZWlcIDsKK+eAoCA+IGVpXCA7CivngJsgPiBlaVwgOwor54CYID4gcm9cIDsKK+eAhyA+IG91XCA7CivngIUgPiBlaVwgOwor5r+eID4gaGlcIDsKK+a/miA+IGVpXCA7CivmvqYgPiB5b1wgOwor5r6QID4gdW5cIDsKK+a9vSA+IGhvXCA7CivmvZ4gPiByb1wgOwor5r2ZID4ga2lcIDsKK+a9gSA+IGVpXCA7CivmvKYgPiBnaVwgOwor5ryaID4gb3VcIDsKK+a8kyA+IHJpXCA7CivmvIogPiBydVwgOwor5ru5ID4ga29cIDsKK+a7uCA+IGtvXCA7Civmu7cgPiByb1wgOwor5rusID4ga29cIDsKK+a7jyA+IGh1XCA7Civmu4sgPiBqaVwgOwor5ruKID4ga2lcIDsKK+a7gyA+IG91XCA7CivmurMgPiB1blwgOwor5rqrID4gb25cIDsKK+a6piA+IG1pXCA7CivmuqUgPiBob1wgOwor5rqgID4gc2FcIDsKK+a6iCA+IGtpXCA7Civmua4gPiBpblwgOwor5rmEID4gYmlcIDsKK+a4vCA+IGJpXCA7CivmuLYgPiBlaVwgOwor5riuID4ga2FcIDsKK+a4oyA+IHNhXCA7CivmuJ0gPiB5dVwgOwor5riVID4gZW5cIDsKK+a4iiA+IGVuXCA7CivmuIQgPiBoaVwgOwor5rekID4geW9cIDsKK+a3oCA+IGhpXCA7Civmt50gPiBoaVwgOwor5reHID4ga2lcIDsKK+a2uSA+IHdhXCA7CivmtrQgPiBlblwgOwor5raCID4gdG9cIDsKK+a1ryA+IGdvXCA7CivmtLwgPiBhaVwgOwor5rS5ID4gZW5cIDsKK+a0syA+IGpvXCA7CivmtLEgPiBqaVwgOwor5rSPID4gamlcIDsKK+a0jiA+IGtpXCA7CivmtIcgPiBpblwgOwor5rOxID4gb3VcIDsKK+aznSA+IHNvXCA7Civms5MgPiBvdVwgOwor5rOSID4ga29cIDsKK+ayvSA+IGtvXCA7CivmsrIgPiB0YVwgOwor5rKxID4gdGFcIDsKK+aymCA+IGhpXCA7Civmso0gPiBnb1wgOwor5rKHID4gZW5cIDsKK+aygiA+IGtpXCA7CivmsbsgPiBrb1wgOwor5rGqID4gb3VcIDsKK+axiiA+IHNhXCA7CivmsL8gPiBraVwgOwor5rCzID4gdW5cIDsKK+awsiA+IHVuXCA7CivmsKggPiBhblwgOwor5rCkID4gaW5cIDsKK+awlCA+IGtpXCA7CivmsI0gPiBrdVwgOwor5rCCID4gcmlcIDsKK+avuSA+IHl1XCA7Civmr6YgPiBqaVwgOwor5q+WID4gaGlcIDsKK+aviyA+IGJ1XCA7Civmr4UgPiBraVwgOwor5q+BID4ga2lcIDsKK+avgCA+IGtpXCA7CivmrrkgPiBlaVwgOwor5q63ID4gaW5cIDsKK+autCA+IG91XCA7CivmrqwgPiB0b1wgOwor5q6qID4gZWlcIDsKK+auniA+IGluXCA7CivmroIgPiBzb1wgOwor5q2nID4ga2lcIDsKK+atpSA+IGhvXCA7CivmrZYgPiBraVwgOwor5qy4ID4gYWlcIDsKK+asqCA+IGt1XCA7CivmrKcgPiBvdVwgOwor5qykID4geW9cIDsKK+asmyA+IGhhXCA7CivmrI8gPiByYVwgOwor5qu9ID4gaW5cIDsKK+arsiA+IHlvXCA7Civmq6ggPiByb1wgOwor5queID4gZW5cIDsKK+arkyA+IHJvXCA7Civmq4MgPiBraVwgOwor5qq/ID4gZW5cIDsKK+aqvSA+IGppXCA7CivmqrwgPiBpblwgOwor5qqxID4ga2lcIDsKK+aqpSA+IGdpXCA7Civmqp8gPiBrYVwgOwor5qqbID4gdGFcIDsKK+aqgyA+IGluXCA7CivmqbEgPiB6dVwgOwor5qmrID4gb3VcIDsKK+apoiA+IGRhXCA7CivmqZIgPiB1blwgOwor5qmGID4gYnVcIDsKK+aphSA+IGJvXCA7CivmqLsgPiBraVwgOwor5qiyID4gamlcIDsKK+aonSA+IHNhXCA7Civmp7sgPiBraVwgOwor5qelID4gZWlcIDsKK+anjiA+IHNhXCA7Civmpr8gPiBraVwgOwor5qauID4gZWlcIDsKK+amqCA+IHNhXCA7CivmpqEgPiBzb1wgOwor5qaYID4ga3VcIDsKK+amkSA+IGZ1XCA7CivmpoYgPiB5dVwgOwor5qW5ID4gZWlcIDsKK+alsCA+IHl1XCA7CivmpaMgPiBiaVwgOwor5qWhID4geXVcIDsKK+alnCA+IGtvXCA7CivmpZsgPiBrb1wgOwor5qWaID4gc29cIDsKK+allSA+IGRhXCA7CivmpYIgPiBzYVwgOwor5qS7ID4gZW5cIDsKK+aktSA+IGthXCA7CivmpLAgPiB5YVwgOwor5qOqID4gZW5cIDsKK+ajnSA+IGtvXCA7Civmo5wgPiB5b1wgOwor5qOQID4gaGlcIDsKK+ajiyA+IGtpXCA7Civmo4ogPiBraVwgOwor5qK2ID4gYmlcIDsKK+aisyA+IHNvXCA7Civmoq0gPiBzYVwgOwor5qKpID4gcmlcIDsKK+aipyA+IGdvXCA7CivmoqYgPiBtdVwgOwor5qKbID4gZGFcIDsKK+aijiA+IG91XCA7CivmobQgPiBmdVwgOwor5qGrID4gc2FcIDsKK+ahlyA+IHRhXCA7CivmoY0gPiBrb1wgOwor5qCtID4gamlcIDsKK+agqSA+IGt1XCA7CivmoKcgPiBlaVwgOwor5p+yID4gaGlcIDsKK+afsCA+IG5hXCA7Civmn68gPiBrYVwgOwor5p+nID4ga29cIDsKK+afpSA+IHNhXCA7Civmn6QgPiBzYVwgOwor5p+hID4gZWlcIDsKK+afjiA+IGZ1XCA7Civmn4UgPiBqaVwgOwor5p+BID4gdGFcIDsKK+afgCA+IGhpXCA7CivmnrsgPiBlaVwgOwor5p64ID4ga3VcIDsKK+aesyA+IGtpXCA7CivmnqYgPiByb1wgOwor5p6ZID4gZ2FcIDsKK+aekSA+IGtvXCA7Civmno4gPiBodVwgOwor5p6JID4gb3VcIDsKK+aehyA+IGhpXCA7CivmnbcgPiBoYVwgOwor5p2eID4ga29cIDsKK+adnCA+IGRvXCA7CivmnYggPiBzYVwgOwor5py2ID4gZGFcIDsKK+actSA+IGRhXCA7CivmnKAgPiBlaVwgOwor5pyeID4ga2lcIDsKK+acjyA+IGhpXCA7CivmnIcgPiBoaVwgOwor5pu9ID4gem9cIDsKK+abtSA+IGVpXCA7Civmm7EgPiBvdVwgOwor5pumID4gZ2lcIDsKK+abliA+IGFpXCA7Civmm4EgPiBraVwgOwor5puAID4gZWlcIDsKK+aavyA+IGtpXCA7CivmmqggPiBraVwgOwor5pqcID4gZnVcIDsKK+aamyA+IHNhXCA7Civmmo4gPiBlaVwgOwor5pqJID4ga2lcIDsKK+aaiCA+IHVuXCA7CivmmoMgPiBoaVwgOwor5pqAID4gb3VcIDsKK+aZvCA+IGVuXCA7CivmmbsgPiBhblwgOwor5pm3ID4ga2lcIDsKK+aZpCA+IGdvXCA7CivmmaEgPiBob1wgOwor5pmeID4ga2lcIDsKK+aZjyA+IGFuXCA7CivmmLkgPiBhaVwgOwor5pi3ID4gb25cIDsKK+aYqyA+IGt1XCA7CivmmJYgPiBlblwgOwor5piIID4ga29cIDsKK+aYgCA+IGluXCA7Civml78gPiBnb1wgOwor5pe5ID4gamlcIDsKK+aXtCA+IGt1XCA7Civml6MgPiBraVwgOwor5pehID4ga2lcIDsKK+aXoCA+IGJ1XCA7Civml58gPiB5b1wgOwor5peOID4gamlcIDsKK+aXiSA+IGZ1XCA7Civml4IgPiBraVwgOwor5padID4ga2FcIDsKK+aVuiA+IGt1XCA7CivmlacgPiBraVwgOwor5pWYID4gam9cIDsKK+aVjSA+IGpvXCA7CivmlYkgPiBiaVwgOwor5pSxID4ga2lcIDsKK+aUsCA+IGtpXCA7CivmlJ4gPiByYVwgOwor5pSWID4gZWlcIDsKK+aTtSA+IG1hXCA7Civmk6kgPiBqdVwgOwor5pK+ID4gdGFcIDsKK+aSrSA+IGhhXCA7Civmkp0gPiBraVwgOwor5pG4ID4gbW9cIDsKK+aRoyA+IHNhXCA7CivmkL0gPiB0YVwgOwor5pC1ID4gb25cIDsKK+aQmSA+IG51XCA7CivmkJMgPiBzYVwgOwor5o+4ID4gc2FcIDsKK+aPtiA+IHlhXCA7Civmj7QgPiBlblwgOwor5o+uID4ga2lcIDsKK+aPnCA+IGVuXCA7Civmj4YgPiBraVwgOwor5o+EID4geXVcIDsKK+aOviA+IGVuXCA7Civmjp4gPiBlblwgOwor5o6OID4ga2lcIDsKK+aNvCA+IGRhXCA7CivmjawgPiBodVwgOwor5o2TID4gc2VcIDsKK+aNkCA+IGVuXCA7CivmjYIgPiBnb1wgOwor5oy8ID4gZGFcIDsKK+aMqyA+IHphXCA7CivmjKogPiBkYVwgOwor5oynID4ga3VcIDsKK+aMkyA+IHRhXCA7CivmjJAgPiBkYVwgOwor5oyJID4gYW5cIDsKK+aLvyA+IGRhXCA7Civmi70gPiBlaVwgOwor5ouXID4gb3VcIDsKK+aLliA+IHRhXCA7Civmi5UgPiB0YVwgOwor5ouPID4gZGFcIDsKK+aLiiA+IGZ1XCA7Civmi4cgPiBib1wgOwor5oq3ID4gaGlcIDsKK+aKsyA+IGppXCA7Civmio4gPiB1blwgOwor5oqKID4gd2FcIDsKK+aJviA+IGthXCA7Civmia8gPiB0YVwgOwor5omgID4gc2FcIDsKK+aJiCA+IGtvXCA7CivmiL0gPiBrb1wgOwor5oi3ID4ga29cIDsKK+aItiA+IGtvXCA7CivmiLEgPiBnaVwgOwor5oijID4ga2lcIDsKK+aIkyA+IGthXCA7CivmiI0gPiBqdVwgOwor5oiKID4gYm9cIDsKK+aHryA+IGZ1XCA7Civmh6cgPiBkYVwgOwor5oemID4gZGFcIDsKK+aHoSA+IGJhXCA7Civmh5UgPiBlblwgOwor5oeKID4gb3VcIDsKK+aGriA+IGJ1XCA7CivmhpwgPiB0YVwgOwor5oaZID4ga2lcIDsKK+aGmCA+IGtpXCA7CivmhY0gPiB1blwgOwor5oWIID4gamlcIDsKK+aEviA+IGtpXCA7CivmhKwgPiBzb1wgOwor5oSrID4gc29cIDsKK+aEqiA+IHVuXCA7CivmhKcgPiBraVwgOwor5oSgID4gdW5cIDsKK+aElCA+IGluXCA7Civmg7IgPiB1blwgOwor5oOwID4gZGFcIDsKK+aDpyA+IGt1XCA7Civmg6IgPiBzYVwgOwor5oOOID4ga2lcIDsKK+aDiCA+IGthXCA7CivmgrEgPiBoaVwgOwor5oKoID4gamlcIDsKK+aCpyA+IHJpXCA7Civmgp4gPiBnb1wgOwor5oKVID4ga2lcIDsKK+aCkSA+IGhvXCA7CivmgoYgPiB5b1wgOwor5oKCID4gaGlcIDsKK+aCgSA+IGVuXCA7CivmgZcgPiBrb1wgOwor5oGVID4gam9cIDsKK+aBkSA+IGtpXCA7CivmgYMgPiBqaVwgOwor5oGBID4gaW5cIDsKK+aAqSA+IGppXCA7CivmgKQgPiBodVwgOwor5oCZID4ga29cIDsKK+aAmCA+IGtvXCA7CivmgJUgPiBoYVwgOwor5b+vID4ga2lcIDsKK+W/rCA+IHlvXCA7Civlv6QgPiBnb1wgOwor5b+iID4gZ29cIDsKK+W+vSA+IGtpXCA7Civlvo0gPiBhaVwgOwor5b6CID4gc29cIDsKK+W9uiA+IG91XCA7CivlvbUgPiB0YVwgOwor5b2MID4gYmlcIDsKK+W8rSA+IGJpXCA7CivlvKkgPiBkb1wgOwor5bynID4ga29cIDsKK+W8oyA+IGh1XCA7CivlvJ0gPiBoYVwgOwor5byWID4gdGVcIDsKK+W8jSA+IG5pXCA7CivlvIcgPiBlblwgOwor5byDID4ga2lcIDsKK+W7tCA+IGluXCA7Civlu64gPiBlaVwgOwor5buhID4gYnVcIDsKK+W7nCA+IHRvXCA7Civlu5ogPiB6dVwgOwor5buVID4gaW5cIDsKK+W7iCA+IGthXCA7Civlur4gPiB5dVwgOwor5bqzID4gaGlcIDsKK+W6ryA+IGhvXCA7Civluq4gPiBpdVwgOwor5bqqID4ga2lcIDsKK+W6jCA+IGdhXCA7CivluosgPiBraVwgOwor5bqAID4gaGlcIDsKK+W5oCA+IGtvXCA7CivluZEgPiBraVwgOwor5bmPID4ga2FcIDsKK+W5gSA+IHN1XCA7CivluL4gPiB0b1wgOwor5biUID4gaGlcIDsKK+W4kSA+IGRvXCA7CivluI0gPiBrb1wgOwor5biKID4gaGFcIDsKK+W4hiA+IGhvXCA7Civlt7MgPiBtaVwgOwor5beZID4ga2lcIDsKK+W3jSA+IGdpXCA7Civlt4sgPiBraVwgOwor5beHID4ga2lcIDsKK+W2tyA+IGdpXCA7CivltrQgPiBhdVwgOwor5basID4gZ2lcIDsKK+W2niA+IHRhXCA7CivltpMgPiBoYVwgOwor5baHID4ga3VcIDsKK+W2gSA+IHJ1XCA7CivltoAgPiB0b1wgOwor5bWzID4gc2FcIDsKK+W1ryA+IHNhXCA7CivltaEgPiBvdVwgOwor5bWfID4ga2lcIDsKK+W1niA+IHRvXCA7CivltZwgPiBraVwgOwor5bWWID4gc2FcIDsKK+W1iyA+IGJpXCA7CivltLMgPiB5dVwgOwor5bSmID4gZW5cIDsKK+W0iyA+IGthXCA7Civls7kgPiB0b1wgOwor5bOyID4gcmlcIDsKK+WzrCA+IGhvXCA7Civls6sgPiB5YVwgOwor5bOpID4gZ2FcIDsKK+WzqCA+IGdhXCA7Civls54gPiBraVwgOwor5bObID4gcmlcIDsKK+WzmSA+IGppXCA7Civls5cgPiBnaVwgOwor5bOWID4gYW5cIDsKK+WzlCA+IGJvXCA7Civls48gPiBqaVwgOwor5bOKID4gaHVcIDsKK+WyuyA+IGppXCA7CivlsrUgPiBrb1wgOwor5bK0ID4ga3VcIDsKK+WyryA+IGhpXCA7Civlsq4gPiB0YVwgOwor5bKoID4gc29cIDsKK+WypSA+IGhhXCA7CivlspQgPiBzYVwgOwor5bKTID4ga2lcIDsKK+WykCA+IGtpXCA7CivlsoggPiBrYVwgOwor5bKGID4gZXVcIDsKK+WxuiA+IGtpXCA7Civlsa4gPiBzYVwgOwor5bGtID4ga2lcIDsKK+WxqCA+IGt1XCA7CivlsaIgPiBydVwgOwor5bGgID4gdG9cIDsKK+WxhCA+IGhpXCA7CivlsYMgPiBraVwgOwor5bGBID4gaGVcIDsKK+WwuSA+IGluXCA7CivlsK8gPiBraVwgOwor5bCuID4gdGFcIDsKK+WwqyA+IG91XCA7CivlsKogPiBvdVwgOwor5bCpID4gb3VcIDsKK+WwoyA+IG91XCA7CivlsKIgPiBvdVwgOwor5bCUID4gamlcIDsKK+WwkyA+IGppXCA7CivlsJIgPiBqaVwgOwor5bCDID4gaHVcIDsKK+WwgCA+IGhhXCA7Civlr7IgPiBnaVwgOwor5a+kID4gZ29cIDsKK+WvoCA+IGt1XCA7Civlr5kgPiB5dVwgOwor5a+DID4gZW5cIDsKK+WusSA+IHNhXCA7CivlrpAgPiBnaVwgOwor5a6OID4gZXVcIDsKK+WuhCA+IGtpXCA7CivlroMgPiB0YVwgOwor5a2+ID4gZWlcIDsKK+WtuiA+IGp1XCA7CivlrbcgPiByaVwgOwor5a21ID4gZnVcIDsKK+WtpSA+IGRvXCA7CivlrZogPiBmdVwgOwor5a2LID4gcmlcIDsKK+WsvyA+IGVuXCA7CivlrL0gPiBlblwgOwor5ay3ID4gYmFcIDsKK+WstCA+IGVpXCA7CivlrLAgPiBlaVwgOwor5ayuID4gZW5cIDsKK+WspCA+IGJhXCA7CivlrKEgPiBhaVwgOwor5ayUID4gaHVcIDsKK+WsjSA+IGJpXCA7CivlrIAgPiBraVwgOwor5au3ID4gdGFcIDsKK+WrtSA+IGJ1XCA7Civlq7QgPiBrb1wgOwor5auuID4ga29cIDsKK+WrrSA+IGtvXCA7Civlq6sgPiBib1wgOwor5aujID4gZW5cIDsKK+WroiA+IGtpXCA7Civlq6AgPiByaVwgOwor5aubID4gZWlcIDsKK+WrlyA+IG91XCA7Civlq5UgPiBlaVwgOwor5auKID4gc29cIDsKK+WqvyA+IGtpXCA7Civlqr0gPiBib1wgOwor5aq6ID4gYmlcIDsKK+WqtCA+IGVuXCA7CivlqrEgPiBldVwgOwor5aqsID4gaG9cIDsKK+WqqiA+IG91XCA7CivlqqkgPiBrb1wgOwor5aqgID4gdGFcIDsKK+WqliA+IGVpXCA7CivlqpUgPiBlblwgOwor5aqQID4ga2lcIDsKK+WqjiA+IHNvXCA7CivlqoQgPiBiaVwgOwor5am9ID4ga2FcIDsKK+WpuiA+IGJ1XCA7CivlqawgPiBpblwgOwor5amjID4gaW5cIDsKK+WpnyA+IGtvXCA7CivlqZMgPiBoaVwgOwor5amQID4gd2FcIDsKK+WpjSA+IGtpXCA7CivlqLggPiBraVwgOwor5aiwID4gamlcIDsKK+WoryA+IGdvXCA7CivlqK0gPiBraVwgOwor5aisID4gYnVcIDsKK+WoqiA+IGdvXCA7CivlqKUgPiBnYVwgOwor5aicID4gZGFcIDsKK+WomyA+IGdvXCA7CivlqJMgPiBiaVwgOwor5aiSID4gYm9cIDsKK+WojCA+IHJpXCA7CivlqIQgPiBydVwgOwor5ae9ID4ga2lcIDsKK+WnuyA+IGluXCA7Civlp7kgPiB0YVwgOwor5ae2ID4gb3VcIDsKK+WnsiA+IGFuXCA7Civlp7EgPiBrYVwgOwor5aesID4ga2lcIDsKK+WnpSA+IGJvXCA7Civlp50gPiBzdVwgOwor5aeOID4gYXVcIDsKK+WnhyA+IGh1XCA7Civlp4YgPiBib1wgOwor5aeBID4ga3VcIDsKK+WngCA+IGthXCA7CivlprwgPiBoaVwgOwor5aa0ID4gZW5cIDsKK+WmriA+IGppXCA7CivlpqUgPiBkYVwgOwor5aakID4geW9cIDsKK+WmoyA+IGhpXCA7Civlpp8gPiBhblwgOwor5aaYID4gdW5cIDsKK+WmkiA+IHRvXCA7CivlposgPiBmdVwgOwor5aaDID4gaGlcIDsKK+WlvCA+IHRhXCA7CivlpbAgPiBoaVwgOwor5aWrID4gaW5cIDsKK+WlnCA+IGhpXCA7CivlpZMgPiB0YVwgOwor5aWEID4gZW5cIDsKK+WkvyA+IGhhXCA7CivlpLggPiBrb1wgOwor5aS2ID4gaGlcIDsKK+WktSA+IGVuXCA7CivlpKUgPiBrYVwgOwor5aSkID4gaW5cIDsKK+WkoSA+IGtpXCA7CivlpJsgPiB0YVwgOwor5aSXID4gZW5cIDsKK+WklCA+IGtpXCA7CivlpJMgPiBrYVwgOwor5aSOID4gc2FcIDsKK+WkgyA+IGtvXCA7Civlo70gPiBqdVwgOwor5aO6ID4ga29cIDsKK+WjqSA+IGhhXCA7Civlo6EgPiBlaVwgOwor5aObID4gZW5cIDsKK+WjmiA+IHJvXCA7Civlo5IgPiBhaVwgOwor5aOIID4gb25cIDsKK+WjhCA+IHlhXCA7CivlorogPiBvdVwgOwor5aKyID4gYm9cIDsKK+WiryA+IGRhXCA7Civloo0gPiBraVwgOwor5aG4ID4gb3VcIDsKK+WhpyA+IGFpXCA7CivloZUgPiBvdVwgOwor5aGRID4gc29cIDsKK+WhkCA+IHNvXCA7CivloYsgPiBlaVwgOwor5aGIID4ga2lcIDsKK+WguCA+IGh1XCA7CivloLcgPiBhblwgOwor5aC2ID4ga3VcIDsKK+WgsyA+IGJpXCA7CivloLAgPiBlblwgOwor5aCsID4geXVcIDsKK+WgoyA+IGd1XCA7CivloJ0gPiBrYVwgOwor5aCZID4gaW5cIDsKK+WgjSA+IHRvXCA7CivloIwgPiBrb1wgOwor5aCBID4ga2FcIDsKK+WfvCA+IGtpXCA7Civln7UgPiB0YVwgOwor5Z+vID4gZW5cIDsKK+WfpyA+IGt1XCA7Civln6QgPiBoaVwgOwor5Z+gID4gZnVcIDsKK+WflCA+IGhvXCA7CivlnrogPiBodVwgOwor5Z6qID4gaGFcIDsKK+WeniA+IHRhXCA7Civlnp0gPiBraVwgOwor5Z6cID4gZGFcIDsKK+WemyA+IGRhXCA7CivlnoAgPiBrb1wgOwor5Z2/ID4gZnVcIDsKK+WdtyA+IGthXCA7CivlnbMgPiBhdVwgOwor5Z2xID4gYXVcIDsKK+WdryA+IGhpXCA7CivlnawgPiBrYVwgOwor5Z2hID4gaGFcIDsKK+WdkiA+IGhpXCA7CivlnLsgPiBraVwgOwor5ZyuID4gaGlcIDsKK+WcqyA+IGF1XCA7CivlnJcgPiB0b1wgOwor5ZyUID4gb3VcIDsKK+WckSA+IGhvXCA7CivlnI4gPiBlblwgOwor5ZumID4gZW5cIDsKK+WbmSA+IGluXCA7Civlm44gPiBzb1wgOwor5ZuMID4gc29cIDsKK+WbiSA+IHJhXCA7CivlmrYgPiBvdVwgOwor5ZqyID4gdGFcIDsKK+WasSA+IGtpXCA7Civlmq0gPiBoaVwgOwor5ZqnID4gcm9cIDsKK+WapSA+IGVuXCA7Civlmp8gPiByaVwgOwor5ZqcID4gYmlcIDsKK+WamCA+IGl1XCA7CivlmpUgPiByb1wgOwor5ZqKID4gaGlcIDsKK+WahSA+IGp1XCA7Civlmb4gPiBpblwgOwor5ZmzID4gZ3VcIDsKK+WZryA+IGFpXCA7Civlma4gPiBlblwgOwor5ZmrID4gYWFcIDsKK+WZlSA+IGtpXCA7CivlmZAgPiBraVwgOwor5ZmFID4ga2lcIDsKK+WYuyA+IGtpXCA7CivlmLMgPiBraVwgOwor5ZiwID4ga2lcIDsKK+WYnyA+IHRvXCA7CivlmJwgPiBiYVwgOwor5ZibID4gbWFcIDsKK+WYmSA+IGhhXCA7CivlmJEgPiBrb1wgOwor5ZiPID4ga2FcIDsKK+WYiSA+IGthXCA7Civll6kgPiBzYVwgOwor5ZemID4gc2FcIDsKK+WXjyA+IHNhXCA7Civll44gPiBiYVwgOwor5ZeJID4gc29cIDsKK+WXhCA+IHNhXCA7Civll4IgPiBldVwgOwor5Za7ID4geXVcIDsKK+WWtiA+IGVpXCA7CivllrMgPiBzYVwgOwor5ZaxID4gcmlcIDsKK+WWqSA+IHl1XCA7CivllqUgPiB0b1wgOwor5ZajID4ga3VcIDsKK+WWnyA+IGtpXCA7CivllpMgPiBldVwgOwor5ZaRID4gaW5cIDsKK+WWjiA+IGthXCA7CivlloIgPiBraVwgOwor5ZWkID4gaGlcIDsKK+WVnSA+IGthXCA7CivllZogPiBoaVwgOwor5ZWYID4gZW5cIDsKK+WVjiA+IGdvXCA7CivllLkgPiB5b1wgOwor5ZS3ID4geW9cIDsKK+WUtSA+IGFuXCA7CivllLIgPiBqaVwgOwor5ZStID4ga2lcIDsKK+WUrCA+IGthXCA7CivllJQgPiBnb1wgOwor5ZSPID4ga2lcIDsKK+WUjiA+IHJpXCA7CivllIsgPiB0b1wgOwor5ZSIID4gb3VcIDsKK+WUhiA+IHNhXCA7CivllIAgPiBpdVwgOwor5ZO/ID4ga2FcIDsKK+WTuiA+IGhvXCA7Civlk7YgPiBiYVwgOwor5ZOsID4ga2FcIDsKK+WTqiA+IGRhXCA7Civlk6cgPiBrYVwgOwor5ZOmID4gZ2FcIDsKK+WTpSA+IGthXCA7Civlk4kgPiB5YVwgOwor5ZOHID4gYWlcIDsKK+WSvCA+IGthXCA7CivlkrsgPiBrdVwgOwor5ZKqID4gYmlcIDsKK+WSqSA+IGJpXCA7CivlkqUgPiBraVwgOwor5ZKkID4gdGFcIDsKK+WSoSA+IGppXCA7CivlkpwgPiB0YVwgOwor5ZKWID4ga2FcIDsKK+WSlSA+IGtvXCA7CivlkpEgPiBkYVwgOwor5ZKQID4gaG9cIDsKK+WSjyA+IGVpXCA7CivlkoogPiB3YVwgOwor5ZKJID4gYXVcIDsKK+WSgyA+IHRhXCA7CivlkoAgPiBzb1wgOwor5ZG/ID4ga2FcIDsKK+WRuCA+IGhpXCA7CivlkbYgPiBkb1wgOwor5ZG1ID4ga2FcIDsKK+WRtCA+IGt1XCA7CivlkbEgPiBrb1wgOwor5ZGuID4ga2lcIDsKK+WRrSA+IGVpXCA7CivlkawgPiBraVwgOwor5ZGmID4gaXVcIDsKK+WRoiA+IGppXCA7CivlkY0gPiB1blwgOwor5ZGLID4gaHVcIDsKK+WRgCA+IGdhXCA7CivlkL0gPiBpblwgOwor5ZC0ID4gZ29cIDsKK+WQsyA+IGdvXCA7CivlkKcgPiBoYVwgOwor5ZCUID4gc2VcIDsKK+WQkyA+IGthXCA7CivlkJIgPiB0YVwgOwor5ZCBID4ga3VcIDsKK+WPuSA+IGl1XCA7Civlj7UgPiBoYVwgOwor5Y+nID4ga2FcIDsKK+WPoSA+IGVpXCA7Civlj5ogPiBrYVwgOwor5Y+GID4gYWlcIDsKK+WOtCA+IGVuXCA7CivljqwgPiBraVwgOwor5Y6mID4ga2FcIDsKK+WOniA+IGhpXCA7Civljo8gPiBzYVwgOwor5Y6KID4ga2FcIDsKK+WNpiA+IGthXCA7CivljYkgPiBraVwgOwor5Y2AID4ga3VcIDsKK+WMvSA+IGVuXCA7CivljLwgPiBhblwgOwor5Yy6ID4ga3VcIDsKK+WMrSA+IGtpXCA7CivljKwgPiB5dVwgOwor5YyqID4gaGlcIDsKK+WMlSA+IGhpXCA7CivljI4gPiBvdVwgOwor5YyAID4gaW5cIDsKK+WLuyA+IGluXCA7Civli6kgPiBlaVwgOwor5YufID4gYm9cIDsKK+WLnCA+IG91XCA7Civli5ogPiBlaVwgOwor5Yq4ID4gYWlcIDsKK+WKrCA+IGt1XCA7CivlipkgPiByaVwgOwor5YqYID4gYmFcIDsKK+WKkyA+IGdpXCA7CivlibogPiByaVwgOwor5YmuID4ga2FcIDsKK+WJpiA+IGVuXCA7CivliaEgPiBlblwgOwor5YmeID4ga2lcIDsKK+WJmCA+IGtpXCA7CivliZUgPiBoaVwgOwor5YmJID4gc2FcIDsKK+WJhiA+IHJhXCA7CivliYEgPiB0YVwgOwor5Yi1ID4gamlcIDsKK+WItCA+IHRhXCA7CivliLMgPiBrb1wgOwor5YiVID4gcmlcIDsKK+WIkiA+IGthXCA7CivliI8gPiBraVwgOwor5YiJID4ga2lcIDsKK+WHuSA+IG91XCA7Civlh6AgPiBraVwgOwor5YeeID4ga2lcIDsKK+WHkiA+IGdpXCA7Civlh5AgPiBpblwgOwor5YeFID4ga29cIDsKK+WGtCA+IGdvXCA7CivlhrEgPiBnb1wgOwor5YaoID4gZnVcIDsKK+WGpCA+IGVuXCA7Civlhp4gPiBiaVwgOwor5YadID4gZ2lcIDsKK+WGmCA+IGluXCA7CivlhpQgPiBrdVwgOwor5YaOID4ga2FcIDsKK+WGgCA+IGtpXCA7Civlhb4gPiBraVwgOwor5YW5ID4gamlcIDsKK+WFqiA+IHl1XCA7CivlhZcgPiBlblwgOwor5YWUID4gdG9cIDsKK+WFkSA+IGRhXCA7CivlhYwgPiBkYVwgOwor5YWBID4gaW5cIDsKK+WEuiA+IG5hXCA7CivlhLggPiByYVwgOwor5YSeID4gamlcIDsKK+WEmyA+IGJ1XCA7CivlhJcgPiBnaVwgOwor5YSSID4ganVcIDsKK+WEjSA+IHNhXCA7Civlg74gPiBhaVwgOwor5YOxID4ga29cIDsKK+WDnyA+IGtpXCA7Civlg5sgPiBraVwgOwor5YOWID4ga2lcIDsKK+WDgyA+IGJpXCA7Civlgr8gPiBlblwgOwor5YK7ID4gc2FcIDsKK+WCtCA+IGt1XCA7CivlgqIgPiBrYVwgOwor5YKfID4gYXVcIDsKK+WCniA+IHNhXCA7CivlgpwgPiBldVwgOwor5YKMID4gYmFcIDsKK+WCiiA+IGluXCA7CivlgoUgPiBmdVwgOwor5YKDID4gc29cIDsKK+WBuSA+IGJpXCA7CivlgacgPiB0YVwgOwor5YGkID4geXVcIDsKK+WBoyA+IGVuXCA7CivlgaAgPiBldVwgOwor5YGMID4gamFcIDsKK+WBgyA+IGVuXCA7CivlgYAgPiBlaVwgOwor5YC7ID4geWFcIDsKK+WAtSA+IGJ1XCA7CivlgK4gPiByYVwgOwor5YCgID4ga2lcIDsKK+WAmyA+IGtpXCA7CivlgIcgPiBlblwgOwor5L++ID4gaGlcIDsKK+S/uyA+IGJpXCA7Civkv7cgPiBoaVwgOwor5L+xID4ga3VcIDsKK+S/sCA+IGthXCA7Civkv54gPiB5dVwgOwor5L+aID4gcmlcIDsKK+S/mSA+IGtpXCA7Civkv5ggPiBmdVwgOwor5L+QID4gcmlcIDsKK+S/jCA+IGZ1XCA7Civkv4kgPiBnb1wgOwor5L+BID4gZ3VcIDsKK+S+syA+IHNhXCA7CivkvqIgPiBidVwgOwor5L6eID4gam9cIDsKK+S+lSA+IGppXCA7CivkvpIgPiBhblwgOwor5L6OID4gYmlcIDsKK+S+jCA+IGluXCA7CivkvokgPiBrYVwgOwor5L25ID4ga2lcIDsKK+S9tCA+IGppXCA7CivkvbMgPiBrYVwgOwor5L2gID4gamlcIDsKK+S9kiA+IGF1XCA7CivkvYggPiBob1wgOwor5L2BID4gYWlcIDsKK+S8viA+IGhpXCA7CivkvLIgPiBqaVwgOwor5LyxID4gamlcIDsKK+S8sCA+IGtvXCA7CivkvK4gPiBkb1wgOwor5LyZID4ga2FcIDsKK+S8liA+IGRvXCA7CivkvJUgPiBodVwgOwor5LyMID4gYWlcIDsKK+S8gyA+IHlvXCA7Civku7UgPiBrb1wgOwor5LuzID4gaGlcIDsKK+S7qCA+IHNhXCA7Civku5sgPiB0YVwgOwor5LuGID4gZnVcIDsKK+S7hSA+IGh1XCA7CivkurkgPiBiaVwgOwor5Lq4ID4gdGFcIDsKK+S6sSA+IHlhXCA7CivkupMgPiBraVwgOwor5LqKID4gamlcIDsKK+S5tSA+IGVuXCA7CivkuZwgPiBiYVwgOwor5LmaID4gaW5cIDsKK+S5lSA+IGtvXCA7CivkuY4gPiBrYVwgOwor5LmIID4gZXVcIDsKK+S4qiA+IGthXCA7CivkuJUgPiBoaVwgOwor5LiMID4ga2lcIDsKK+S4hSA+IGthXCA7CivluLcgPiBpXCA7CivnlbAgPiBpXCA7CivnlY8gPiBpXCA7CivlsL4gPiBvXCA7CivlrocgPiB1XCA7CivorIIgPiBpXCA7CivniLIgPiBpXCA7CivlqIEgPiBpXCA7Civlp5QgPiBpXCA7CivlnI0gPiBpXCA7Civlm7IgPiBpXCA7Civll5ogPiBvXCA7CivmsZ8gPiBlXCA7CivmsZogPiBvXCA7CivokI4gPiBpXCA7CivljLsgPiBpXCA7CivmpIUgPiBpXCA7Civog4MgPiBpXCA7CivlgYkgPiBpXCA7CivpoKQgPiBpXCA7Civkvp0gPiBlXCA7CivkvIogPiBpXCA7Civku6UgPiBpXCA7Civkup4gPiBhXCA7CivpmL8gPiBhXCA7Civnt5IgPiBvXCA7CivmlrwgPiBvXCA7Civntq0gPiBpXCA7CivntbUgPiBlXCA7Civnp7sgPiBpXCA7CivphqsgPiBpXCA7CivmhbAgPiBpXCA7CivmhI8gPiBpXCA7Civmg6EgPiBvXCA7CivpgbogPiBpXCA7CivpgZUgPiBpXCA7Civpt74gPiBpXCA7Civpt6cgPiBpXCA7CivptbYgPiBhXCA7CivptZwgPiB1XCA7CivpsJ4gPiBvXCA7CivpsIQgPiBpXCA7CivprqcgPiBpXCA7CivpqqwgPiB1XCA7CivpqqsgPiBpXCA7CivpqqogPiBpXCA7CivppZAgPiBpXCA7CivpoYogPiBpXCA7CivpoKUgPiBpXCA7CivpoIkgPiBpXCA7Civpn5kgPiBpXCA7Civpn5EgPiBpXCA7Civpn4sgPiBpXCA7CivpnKggPiBpXCA7Civpm6kgPiB1XCA7CivpmpYgPiBvXCA7Civpl4ggPiBpXCA7CivplrwgPiBhXCA7Civpk5QgPiBhXCA7CivpkL8gPiBpXCA7CivpkJogPiBhXCA7CivpjI8gPiBhXCA7CivpiqUgPiBpXCA7Civpia8gPiBpXCA7CivpiLMgPiBhXCA7Civph6ogPiB1XCA7CivphY8gPiBpXCA7CivphJQgPiBvXCA7CivpgpggPiB1XCA7CivpgLYgPiBpXCA7Civov7sgPiBpXCA7Civov6QgPiBpXCA7Civov4YgPiBpXCA7Civov4IgPiB1XCA7Civosr0gPiBpXCA7CivosqQgPiBpXCA7CivopJggPiBpXCA7CivoopggPiBpXCA7CivonrEgPiBpXCA7CivonqAgPiBpXCA7CivonpAgPiBvXCA7CivonokgPiBvXCA7CivonLwgPiBpXCA7CivonLIgPiBpXCA7Civom5wgPiBpXCA7CivombYgPiB1XCA7CivolL8gPiBpXCA7CivokbMgPiBpXCA7Civojb0gPiBpXCA7CivojY8gPiBlXCA7CivojKEgPiB1XCA7Civoi6IgPiBpXCA7Civoi6EgPiBpXCA7CivoipsgPiBpXCA7Civog7AgPiBpXCA7CivogoQgPiBpXCA7Civnt68gPiBpXCA7Civnt60gPiBpXCA7CivntIYgPiB1XCA7CivnsIMgPiBpXCA7Civnq70gPiB1XCA7CivnprkgPiB1XCA7CivnppUgPiBpXCA7Civno4ggPiBpXCA7Civnn6MgPiBpXCA7Civnm4IgPiB1XCA7CivnmIIgPiBhXCA7Civnl78gPiBpXCA7Civnl74gPiBhXCA7Civnl48gPiBpXCA7Civnl40gPiBpXCA7CivnlrQgPiBhXCA7CivnkaYgPiBvXCA7CivnkYsgPiBpXCA7CivnkYAgPiB1XCA7Civnj4YgPiBpXCA7CivnjpcgPiB1XCA7CivnjKwgPiBpXCA7CivnjJcgPiBpXCA7CivnioQgPiBpXCA7CivnhqggPiBpXCA7CivnhZIgPiBpXCA7Civmv7AgPiBpXCA7CivmvKogPiBpXCA7CivmuYsgPiBpXCA7CivmuK0gPiBpXCA7CivmtL8gPiBvXCA7CivmtKcgPiBpXCA7CivmsaEgPiBvXCA7CivmsZkgPiBvXCA7CivmsKwgPiBhXCA7Civmr4kgPiBpXCA7CivmrY0gPiBvXCA7CivmrLkgPiBpXCA7CivmpbIgPiBpXCA7CivmpLggPiBpXCA7CivmpI8gPiBhXCA7CivmoZkgPiB1XCA7Civmn4IgPiBpXCA7CivmnrEgPiBpXCA7CivmnYcgPiBvXCA7CivmnYUgPiB1XCA7CivmmpAgPiBpXCA7Civml5YgPiBpXCA7CivmlaEgPiBpXCA7CivmlLogPiBpXCA7CivmiZwgPiB1XCA7CivmiYYgPiBpXCA7CivmiYUgPiBpXCA7Civmh78gPiBpXCA7CivmhIcgPiBpXCA7Civmg58gPiBpXCA7CivmgpggPiBpXCA7CivmgZogPiBpXCA7CivmgKEgPiBpXCA7CivlvqsgPiBpXCA7CivlvZ4gPiBpXCA7CivlvZ0gPiBpXCA7CivlvZwgPiBpXCA7CivlvZsgPiBpXCA7CivlvZogPiBpXCA7CivlvZkgPiBpXCA7CivlvKwgPiBpXCA7CivlvJkgPiBvXCA7CivlvIIgPiBpXCA7CivluYMgPiBpXCA7Civlt7ggPiBpXCA7Civlt7IgPiBpXCA7CivltaggPiBvXCA7CivltLogPiBpXCA7CivltKMgPiBpXCA7CivlsZkgPiBhXCA7Civlr6ogPiBpXCA7CivlrbIgPiBhXCA7CivlqqYgPiBpXCA7CivlqpkgPiBpXCA7Civlqa0gPiBhXCA7CivlqYAgPiBhXCA7CivlqL8gPiBhXCA7CivlqIMgPiBhXCA7Civlp6ggPiBpXCA7CivlprggPiBhXCA7Civlo50gPiBpXCA7CivloaIgPiBvXCA7CivloIogPiBhXCA7Civln6EgPiBvXCA7CivlnaggPiBpXCA7CivlnK8gPiBpXCA7CivlnKwgPiBvXCA7CivlnKkgPiB1XCA7Civlm5cgPiBpXCA7CivlmYEgPiBvXCA7CivllrQgPiBpXCA7CivllqEgPiBpXCA7CivllZ4gPiBhXCA7CivllYogPiBhXCA7Civlkr8gPiBpXCA7CivlkqYgPiBpXCA7CivlkJogPiBpXCA7Civlj54gPiBpXCA7CivljJwgPiBpXCA7CivlhLAgPiBpXCA7Civlga8gPiBpXCA7CivlgYogPiB1XCA7CivkvocgPiBpXCA7CivkvL8gPiBpXCA7CivkupwgPiBhXCA7Civkuo8gPiB1XCA7Civkuo4gPiB1XCA7CivkuoQgPiBpXCA7CivkuYEgPiBpXCA7CivkuKsgPiBhXCA7CivjgIIgPD4gJy4nOworIyBFbmQgUkFXIGRhdGEgZm9yIGNvbnZlcnRpbmcgQ0pLIGNoYXJhY3RlcnMKKworCis6OiBrYXRha2FuYS1sYXRpbiAoKTsKKzo6IGhpcmFnYW5hLWxhdGluICgpOworOjogZnVsbHdpZHRoLWhhbGZ3aWR0aCAoKTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZjMzYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyCkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmU4MTg3ZDMxYzY3ZWM3NzA3ZTk5OGYyMjlmMWMyMjFhOGQ1NjMyYWY5NzhjZjE3MjJiM2E2MDZjNzQwYWFmOWYKK3NpemUgNTA4MzA5NgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZjliY2QzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0KKyAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUmVzb3VyY2UgZGF0YSB1c2VkIGJ5IGNsYXNzZXMgaW4gY29tLmlibS50ZXh0LgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGguYnJrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS90aC5icmsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDcwNDhlZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGguYnJrCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZjMwMWY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlci5qYXZhCkBAIC0wLDAgKzEsNjE5NyBAQAorLy8jI2hlYWRlcgorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDYXNlUHJvcHM7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlck5hbWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyTmFtZUNob2ljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVQcm9wZXJ0eUFsaWFzZXM7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRW51bXMuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorICogPHA+CisgKiBUaGUgVUNoYXJhY3RlciBjbGFzcyBwcm92aWRlcyBleHRlbnNpb25zIHRvIHRoZSAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjUvZG9jcy9hcGkvamF2YS9sYW5nL0NoYXJhY3Rlci5odG1sIj4KKyAqIGphdmEubGFuZy5DaGFyYWN0ZXI8L2E+IGNsYXNzLiBUaGVzZSBleHRlbnNpb25zIHByb3ZpZGUgc3VwcG9ydCBmb3IgCisgKiBtb3JlIFVuaWNvZGUgcHJvcGVydGllcyBhbmQgdG9nZXRoZXIgd2l0aCB0aGUgPGEgaHJlZj0uLi90ZXh0L1VURjE2Lmh0bWw+VVRGMTY8L2E+IAorICogY2xhc3MsIHByb3ZpZGUgc3VwcG9ydCBmb3Igc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzICh0aG9zZSB3aXRoIGNvZGUgCisgKiBwb2ludHMgYWJvdmUgVStGRkZGKS4KKyAqIEVhY2ggSUNVIHJlbGVhc2Ugc3VwcG9ydHMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFVuaWNvZGUgYXZhaWxhYmxlIGF0IHRoYXQgdGltZS4KKyAqIDwvcD4KKyAqIDxwPgorICogQ29kZSBwb2ludHMgYXJlIHJlcHJlc2VudGVkIGluIHRoZXNlIEFQSSB1c2luZyBpbnRzLiBXaGlsZSBpdCB3b3VsZCBiZSAKKyAqIG1vcmUgY29udmVuaWVudCBpbiBKYXZhIHRvIGhhdmUgYSBzZXBhcmF0ZSBwcmltaXRpdmUgZGF0YXR5cGUgZm9yIHRoZW0sIAorICogaW50cyBzdWZmaWNlIGluIHRoZSBtZWFudGltZS4KKyAqIDwvcD4KKyAqIDxwPgorICogVG8gdXNlIHRoaXMgY2xhc3MgcGxlYXNlIGFkZCB0aGUgamFyIGZpbGUgbmFtZSBpY3U0ai5qYXIgdG8gdGhlIAorICogY2xhc3MgcGF0aCwgc2luY2UgaXQgY29udGFpbnMgZGF0YSBmaWxlcyB3aGljaCBzdXBwbHkgdGhlIGluZm9ybWF0aW9uIHVzZWQgCisgKiBieSB0aGlzIGZpbGUuPGJyPgorICogRS5nLiBJbiBXaW5kb3dzIDxicj4KKyAqIDxjb2RlPnNldCBDTEFTU1BBVEg9JUNMQVNTUEFUSCU7JEpBUl9GSUxFX1BBVEgvdWNoYXJhY3Rlci5qYXI8L2NvZGU+Ljxicj4KKyAqIE90aGVyd2lzZSwgYW5vdGhlciBtZXRob2Qgd291bGQgYmUgdG8gY29weSB0aGUgZmlsZXMgdXByb3BzLmRhdCBhbmQgCisgKiB1bmFtZXMuaWN1IGZyb20gdGhlIGljdTRqIHNvdXJjZSBzdWJkaXJlY3RvcnkKKyAqIDxpPiRJQ1U0Sl9TUkMvc3JjL2NvbS5pYm0uaWN1LmltcGwuZGF0YTwvaT4gdG8geW91ciBjbGFzcyBkaXJlY3RvcnkgCisgKiA8aT4kSUNVNEpfQ0xBU1MvY29tLmlibS5pY3UuaW1wbC5kYXRhPC9pPi4KKyAqIDwvcD4KKyAqIDxwPgorICogQXNpZGUgZnJvbSB0aGUgYWRkaXRpb25zIGZvciBVVEYtMTYgc3VwcG9ydCwgYW5kIHRoZSB1cGRhdGVkIFVuaWNvZGUKKyAqIHByb3BlcnRpZXMsIHRoZSBtYWluIGRpZmZlcmVuY2VzIGJldHdlZW4gVUNoYXJhY3RlciBhbmQgQ2hhcmFjdGVyIGFyZToKKyAqIDx1bD4KKyAqIDxsaT4gVUNoYXJhY3RlciBpcyBub3QgZGVzaWduZWQgdG8gYmUgYSBjaGFyIHdyYXBwZXIgYW5kIGRvZXMgbm90IGhhdmUgCisgKiAgICAgIEFQSXMgdG8gd2hpY2ggaW52b2x2ZXMgbWFuYWdlbWVudCBvZiB0aGF0IHNpbmdsZSBjaGFyLjxicj4KKyAqICAgICAgVGhlc2UgaW5jbHVkZTogCisgKiAgICAgIDx1bD4KKyAqICAgICAgICA8bGk+IGNoYXIgY2hhclZhbHVlKCksIAorICogICAgICAgIDxsaT4gaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuQ2hhcmFjdGVyLCBqYXZhLmxhbmcuQ2hhcmFjdGVyKSwgZXRjLgorICogICAgICA8L3VsPgorICogPGxpPiBVQ2hhcmFjdGVyIGRvZXMgbm90IGluY2x1ZGUgQ2hhcmFjdGVyIEFQSXMgdGhhdCBhcmUgZGVwcmVjYXRlZCwgbm9yCisgKiAgICAgIGRvZXMgaXQgaW5jbHVkZSB0aGUgSmF2YS1zcGVjaWZpYyBjaGFyYWN0ZXIgaW5mb3JtYXRpb24sIHN1Y2ggYXMgCisgKiAgICAgIGJvb2xlYW4gaXNKYXZhSWRlbnRpZmllclBhcnQoY2hhciBjaCkuCisgKiA8bGk+IENoYXJhY3RlciBtYXBzIGNoYXJhY3RlcnMgJ0EnIC0gJ1onIGFuZCAnYScgLSAneicgdG8gdGhlIG51bWVyaWMgCisgKiAgICAgIHZhbHVlcyAnMTAnIC0gJzM1Jy4gVUNoYXJhY3RlciBhbHNvIGRvZXMgdGhpcyBpbiBkaWdpdCBhbmQKKyAqICAgICAgZ2V0TnVtZXJpY1ZhbHVlLCB0byBhZGhlcmUgdG8gdGhlIGphdmEgc2VtYW50aWNzIG9mIHRoZXNlCisgKiAgICAgIG1ldGhvZHMuICBOZXcgbWV0aG9kcyB1bmljb2RlRGlnaXQsIGFuZAorICogICAgICBnZXRVbmljb2RlTnVtZXJpY1ZhbHVlIGRvIG5vdCB0cmVhdCB0aGUgYWJvdmUgY29kZSBwb2ludHMgCisgKiAgICAgIGFzIGhhdmluZyBudW1lcmljIHZhbHVlcy4gIFRoaXMgaXMgYSBzZW1hbnRpYyBjaGFuZ2UgZnJvbSBJQ1U0SiAxLjMuMS4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIEZ1cnRoZXIgZGV0YWlsIGRpZmZlcmVuY2VzIGNhbiBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIHByb2dyYW0gCisgKiAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9+Y2hlY2tvdXR+L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEiPgorICogICAgICAgIGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlckNvbXBhcmU8L2E+CisgKiA8L3A+CisgKiA8cD4KKyAqIEluIGFkZGl0aW9uIHRvIEphdmEgY29tcGF0aWJpbGl0eSBmdW5jdGlvbnMsIHdoaWNoIGNhbGN1bGF0ZSBkZXJpdmVkIHByb3BlcnRpZXMsCisgKiB0aGlzIEFQSSBwcm92aWRlcyBsb3ctbGV2ZWwgYWNjZXNzIHRvIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS4KKyAqIDwvcD4KKyAqIDxwPgorICogVW5pY29kZSBhc3NpZ25zIGVhY2ggY29kZSBwb2ludCAobm90IGp1c3QgYXNzaWduZWQgY2hhcmFjdGVyKSB2YWx1ZXMgZm9yCisgKiBtYW55IHByb3BlcnRpZXMuCisgKiBNb3N0IG9mIHRoZW0gYXJlIHNpbXBsZSBib29sZWFuIGZsYWdzLCBvciBjb25zdGFudHMgZnJvbSBhIHNtYWxsIGVudW1lcmF0ZWQgbGlzdC4KKyAqIEZvciBzb21lIHByb3BlcnRpZXMsIHZhbHVlcyBhcmUgc3RyaW5ncyBvciBvdGhlciByZWxhdGl2ZWx5IG1vcmUgY29tcGxleCB0eXBlcy4KKyAqIDwvcD4KKyAqIDxwPgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlCisgKiAiQWJvdXQgdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlIiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy91Y2QvKQorICogYW5kIHRoZSBJQ1UgVXNlciBHdWlkZSBjaGFwdGVyIG9uIFByb3BlcnRpZXMgKGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wcm9wZXJ0aWVzLmh0bWwpLgorICogPC9wPgorICogPHA+CisgKiBUaGVyZSBhcmUgYWxzbyBmdW5jdGlvbnMgdGhhdCBwcm92aWRlIGVhc3kgbWlncmF0aW9uIGZyb20gQy9QT1NJWCBmdW5jdGlvbnMKKyAqIGxpa2UgaXNibGFuaygpLiBUaGVpciB1c2UgaXMgZ2VuZXJhbGx5IGRpc2NvdXJhZ2VkIGJlY2F1c2UgdGhlIEMvUE9TSVgKKyAqIHN0YW5kYXJkcyBkbyBub3QgZGVmaW5lIHRoZWlyIHNlbWFudGljcyBiZXlvbmQgdGhlIEFTQ0lJIHJhbmdlLCB3aGljaCBtZWFucworICogdGhhdCBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIGV4aGliaXQgdmVyeSBkaWZmZXJlbnQgYmVoYXZpb3IuCisgKiBJbnN0ZWFkLCBVbmljb2RlIHByb3BlcnRpZXMgc2hvdWxkIGJlIHVzZWQgZGlyZWN0bHkuCisgKiA8L3A+CisgKiA8cD4KKyAqIFRoZXJlIGFyZSBhbHNvIG9ubHkgYSBmZXcsIGJyb2FkIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzZXMsIGFuZCB0aGV5IHRlbmQKKyAqIHRvIGJlIHVzZWQgZm9yIGNvbmZsaWN0aW5nIHB1cnBvc2VzLiBGb3IgZXhhbXBsZSwgdGhlICJpc2FscGhhKCkiIGNsYXNzCisgKiBpcyBzb21ldGltZXMgdXNlZCB0byBkZXRlcm1pbmUgd29yZCBib3VuZGFyaWVzLCB3aGlsZSBhIG1vcmUgc29waGlzdGljYXRlZAorICogYXBwcm9hY2ggd291bGQgYXQgbGVhc3QgZGlzdGluZ3Vpc2ggaW5pdGlhbCBsZXR0ZXJzIGZyb20gY29udGludWF0aW9uCisgKiBjaGFyYWN0ZXJzICh0aGUgbGF0dGVyIGluY2x1ZGluZyBjb21iaW5pbmcgbWFya3MpLgorICogKEluIElDVSwgQnJlYWtJdGVyYXRvciBpcyB0aGUgbW9zdCBzb3BoaXN0aWNhdGVkIEFQSSBmb3Igd29yZCBib3VuZGFyaWVzLikKKyAqIEFub3RoZXIgZXhhbXBsZTogVGhlcmUgaXMgbm8gImlzdGl0bGUoKSIgY2xhc3MgZm9yIHRpdGxlY2FzZSBjaGFyYWN0ZXJzLgorICogPC9wPgorICogPHA+CisgKiBJQ1UgMy40IGFuZCBsYXRlciBwcm92aWRlcyBBUEkgYWNjZXNzIGZvciBhbGwgdHdlbHZlIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzZXMuCisgKiBJQ1UgaW1wbGVtZW50cyB0aGVtIGFjY29yZGluZyB0byB0aGUgU3RhbmRhcmQgUmVjb21tZW5kYXRpb25zIGluCisgKiBBbm5leCBDOiBDb21wYXRpYmlsaXR5IFByb3BlcnRpZXMgb2YgVVRTICMxOCBVbmljb2RlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKKyAqIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxOC8jQ29tcGF0aWJpbGl0eV9Qcm9wZXJ0aWVzKS4KKyAqIDwvcD4KKyAqIDxwPgorICogQVBJIGFjY2VzcyBmb3IgQy9QT1NJWCBjaGFyYWN0ZXIgY2xhc3NlcyBpcyBhcyBmb2xsb3dzOgorICogLSBhbHBoYTogICAgIGlzVUFscGhhYmV0aWMoYykgb3IgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LkFMUEhBQkVUSUMpCisgKiAtIGxvd2VyOiAgICAgaXNVTG93ZXJjYXNlKGMpIG9yIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5MT1dFUkNBU0UpCisgKiAtIHVwcGVyOiAgICAgaXNVVXBwZXJjYXNlKGMpIG9yIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5VUFBFUkNBU0UpCisgKiAtIHB1bmN0OiAgICAgKCgxPDxnZXRUeXBlKGMpKSAmICgoMTw8REFTSF9QVU5DVFVBVElPTil8KDE8PFNUQVJUX1BVTkNUVUFUSU9OKXwoMTw8RU5EX1BVTkNUVUFUSU9OKXwoMTw8Q09OTkVDVE9SX1BVTkNUVUFUSU9OKXwoMTw8T1RIRVJfUFVOQ1RVQVRJT04pfCgxPDxJTklUSUFMX1BVTkNUVUFUSU9OKXwoMTw8RklOQUxfUFVOQ1RVQVRJT04pKSkhPTAKKyAqIC0gZGlnaXQ6ICAgICBpc0RpZ2l0KGMpIG9yIGdldFR5cGUoYyk9PURFQ0lNQUxfRElHSVRfTlVNQkVSCisgKiAtIHhkaWdpdDogICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX1hESUdJVCkKKyAqIC0gYWxudW06ICAgICBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuUE9TSVhfQUxOVU0pCisgKiAtIHNwYWNlOiAgICAgaXNVV2hpdGVTcGFjZShjKSBvciBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuV0hJVEVfU1BBQ0UpCisgKiAtIGJsYW5rOiAgICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX0JMQU5LKQorICogLSBjbnRybDogICAgIGdldFR5cGUoYyk9PUNPTlRST0wKKyAqIC0gZ3JhcGg6ICAgICBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuUE9TSVhfR1JBUEgpCisgKiAtIHByaW50OiAgICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX1BSSU5UKQorICogPC9wPgorICogPHA+CisgKiBUaGUgQy9QT1NJWCBjaGFyYWN0ZXIgY2xhc3NlcyBhcmUgYWxzbyBhdmFpbGFibGUgaW4gVW5pY29kZVNldCBwYXR0ZXJucywKKyAqIHVzaW5nIHBhdHRlcm5zIGxpa2UgWzpncmFwaDpdIG9yIFxwe2dyYXBofS4KKyAqIDwvcD4KKyAqIDxwPgorICogTm90ZTogVGhlcmUgYXJlIHNldmVyYWwgSUNVIChhbmQgSmF2YSkgd2hpdGVzcGFjZSBmdW5jdGlvbnMuCisgKiBDb21wYXJpc29uOgorICogLSBpc1VXaGl0ZVNwYWNlPVVDSEFSX1dISVRFX1NQQUNFOiBVbmljb2RlIFdoaXRlX1NwYWNlIHByb3BlcnR5OworICogICAgICAgbW9zdCBvZiBnZW5lcmFsIGNhdGVnb3JpZXMgIloiIChzZXBhcmF0b3JzKSArIG1vc3Qgd2hpdGVzcGFjZSBJU08gY29udHJvbHMKKyAqICAgICAgIChpbmNsdWRpbmcgbm8tYnJlYWsgc3BhY2VzLCBidXQgZXhjbHVkaW5nIElTMS4uSVM0IGFuZCBaV1NQKQorICogLSBpc1doaXRlc3BhY2U6IEphdmEgaXNXaGl0ZXNwYWNlOyBaICsgd2hpdGVzcGFjZSBJU08gY29udHJvbHMgYnV0IGV4Y2x1ZGluZyBuby1icmVhayBzcGFjZXMKKyAqIC0gaXNTcGFjZUNoYXI6IGp1c3QgWiAoaW5jbHVkaW5nIG5vLWJyZWFrIHNwYWNlcykKKyAqIDwvcD4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBpcyBub3Qgc3ViY2xhc3NhYmxlCisgKiA8L3A+CisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHN0YWJsZSBJQ1UgMi4xCisgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckVudW1zCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXIgaW1wbGVtZW50cyBFQ2hhcmFjdGVyQ2F0ZWdvcnksIEVDaGFyYWN0ZXJEaXJlY3Rpb24KK3sgCisgICAgLy8gcHVibGljIGlubmVyIGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgICogQSBmYW1pbHkgb2YgY2hhcmFjdGVyIHN1YnNldHMgcmVwcmVzZW50aW5nIHRoZSBjaGFyYWN0ZXIgYmxvY2tzIGluIHRoZSAKKyAgICAgKiBVbmljb2RlIHNwZWNpZmljYXRpb24sIGdlbmVyYXRlZCBmcm9tIFVuaWNvZGUgRGF0YSBmaWxlIEJsb2Nrcy50eHQuIAorICAgICAqIENoYXJhY3RlciBibG9ja3MgZ2VuZXJhbGx5IGRlZmluZSBjaGFyYWN0ZXJzIHVzZWQgZm9yIGEgc3BlY2lmaWMgc2NyaXB0IAorICAgICAqIG9yIHB1cnBvc2UuIEEgY2hhcmFjdGVyIGlzIGNvbnRhaW5lZCBieSBhdCBtb3N0IG9uZSBVbmljb2RlIGJsb2NrLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFVuaWNvZGVCbG9jayBleHRlbmRzIENoYXJhY3Rlci5TdWJzZXQgCisgICAgeworICAgICAgICAvLyBibG9ja3Mgb2JqZWN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBOT19CTE9DSyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTk9fQkxPQ0siLCAwKTsKKworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQkFTSUNfTEFUSU4gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkJBU0lDX0xBVElOIiwgMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFUSU5fMV9TVVBQTEVNRU5UIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMQVRJTl8xX1NVUFBMRU1FTlQiLCAyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMQVRJTl9FWFRFTkRFRF9BCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxBVElOX0VYVEVOREVEX0EiLCAzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMQVRJTl9FWFRFTkRFRF9CIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMQVRJTl9FWFRFTkRFRF9CIiwgNCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSVBBX0VYVEVOU0lPTlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIklQQV9FWFRFTlNJT05TIiwgNSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTUEFDSU5HX01PRElGSUVSX0xFVFRFUlMiLCA2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUyIsIDcpOworICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGlzIGJsb2NrIHRvICJHcmVlayBhbmQgQ29wdGljIi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHUkVFSworICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJHUkVFSyIsIDgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENZUklMTElDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDWVJJTExJQyIsIDkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFSTUVOSUFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJBUk1FTklBTiIsIDEwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBIRUJSRVcgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhFQlJFVyIsIDExKTsgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFSQUJJQworICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJBUkFCSUMiLCAxMik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1lSSUFDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTWVJJQUMiLCAxMyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEhBQU5BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUSEFBTkEiLCAxNCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgREVWQU5BR0FSSSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiREVWQU5BR0FSSSIsIDE1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCRU5HQUxJIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCRU5HQUxJIiwgMTYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdVUk1VS0hJIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJHVVJNVUtISSIsIDE3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHVUpBUkFUSSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR1VKQVJBVEkiLCAxOCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgT1JJWUEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk9SSVlBIiwgMTkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRBTUlMIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUQU1JTCIsIDIwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBURUxVR1UgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlRFTFVHVSIsIDIxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLQU5OQURBIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJLQU5OQURBIiwgMjIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1BTEFZQUxBTSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUFMQVlBTEFNIiwgMjMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNJTkhBTEEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNJTkhBTEEiLCAyNCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEhBSSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEhBSSIsIDI1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMQU8gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxBTyIsIDI2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUSUJFVEFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUSUJFVEFOIiwgMjcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1ZQU5NQVIgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1ZQU5NQVIiLCAyOCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR0VPUkdJQU4gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkdFT1JHSUFOIiwgMjkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhBTkdVTF9KQU1PIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIQU5HVUxfSkFNTyIsIDMwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFVEhJT1BJQyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiRVRISU9QSUMiLCAzMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0hFUk9LRUUgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNIRVJPS0VFIiwgMzIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MiLCAzMyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgT0dIQU0gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk9HSEFNIiwgMzQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFJVTklDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJSVU5JQyIsIDM1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLSE1FUiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiS0hNRVIiLCAzNik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTU9OR09MSUFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNT05HT0xJQU4iLCAzNyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFUSU5fRVhURU5ERURfQURESVRJT05BTCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTEFUSU5fRVhURU5ERURfQURESVRJT05BTCIsIDM4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHUkVFS19FWFRFTkRFRCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR1JFRUtfRVhURU5ERUQiLCAzOSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR0VORVJBTF9QVU5DVFVBVElPTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR0VORVJBTF9QVU5DVFVBVElPTiIsIDQwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNVUEVSU0NSSVBUU19BTkRfU1VCU0NSSVBUUyIsIDQxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDVVJSRU5DWV9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDVVJSRU5DWV9TWU1CT0xTIiwgNDIpOworICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGlzIGJsb2NrIHRvICJDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MgZm9yIAorICAgICAgICAgKiBTeW1ib2xzIi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MUyIsIDQzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMRVRURVJMSUtFX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxFVFRFUkxJS0VfU1lNQk9MUyIsIDQ0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBOVU1CRVJfRk9STVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk5VTUJFUl9GT1JNUyIsIDQ1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUlJPV1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFSUk9XUyIsIDQ2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNQVRIRU1BVElDQUxfT1BFUkFUT1JTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNQVRIRU1BVElDQUxfT1BFUkFUT1JTIiwgNDcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1JU0NFTExBTkVPVVNfVEVDSE5JQ0FMIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTCIsIDQ4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT05UUk9MX1BJQ1RVUkVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDT05UUk9MX1BJQ1RVUkVTIiwgNDkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTiIsIDUwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJFTkNMT1NFRF9BTFBIQU5VTUVSSUNTIiwgNTEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJPWF9EUkFXSU5HIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCT1hfRFJBV0lORyIsIDUyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCTE9DS19FTEVNRU5UUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQkxPQ0tfRUxFTUVOVFMiLCA1Myk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR0VPTUVUUklDX1NIQVBFUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR0VPTUVUUklDX1NIQVBFUyIsIDU0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNSVNDRUxMQU5FT1VTX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1JU0NFTExBTkVPVVNfU1lNQk9MUyIsIDU1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBESU5HQkFUUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiRElOR0JBVFMiLCA1Nik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQlJBSUxMRV9QQVRURVJOUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQlJBSUxMRV9QQVRURVJOUyIsIDU3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfUkFESUNBTFNfU1VQUExFTUVOVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlQiLCA1OCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgS0FOR1hJX1JBRElDQUxTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJLQU5HWElfUkFESUNBTFMiLCA1OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUyIsIDYwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT04gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTiIsIDYxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBISVJBR0FOQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSElSQUdBTkEiLCA2Mik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgS0FUQUtBTkEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktBVEFLQU5BIiwgNjMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJPUE9NT0ZPIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCT1BPTU9GTyIsIDY0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBIQU5HVUxfQ09NUEFUSUJJTElUWV9KQU1PIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIQU5HVUxfQ09NUEFUSUJJTElUWV9KQU1PIiwgNjUpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtBTkJVTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiS0FOQlVOIiwgNjYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJPUE9NT0ZPX0VYVEVOREVEIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCT1BPTU9GT19FWFRFTkRFRCIsIDY3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFTkNMT1NFRF9DSktfTEVUVEVSU19BTkRfTU9OVEhTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJFTkNMT1NFRF9DSktfTEVUVEVSU19BTkRfTU9OVEhTIiwgNjgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19DT01QQVRJQklMSVRZIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfQ09NUEFUSUJJTElUWSIsIDY5KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BIiwgNzApOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19VTklGSUVEX0lERU9HUkFQSFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19VTklGSUVEX0lERU9HUkFQSFMiLCA3MSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgWUlfU1lMTEFCTEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJZSV9TWUxMQUJMRVMiLCA3Mik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgWUlfUkFESUNBTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIllJX1JBRElDQUxTIiwgNzMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhBTkdVTF9TWUxMQUJMRVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhBTkdVTF9TWUxMQUJMRVMiLCA3NCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSElHSF9TVVJST0dBVEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJISUdIX1NVUlJPR0FURVMiLCA3NSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSElHSF9QUklWQVRFX1VTRV9TVVJST0dBVEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJISUdIX1BSSVZBVEVfVVNFX1NVUlJPR0FURVMiLCA3Nik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTE9XX1NVUlJPR0FURVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxPV19TVVJST0dBVEVTIiwgNzcpOworICAgICAgICAvKioKKyAgICAgICAgICogU2FtZSBhcyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRS4KKyAgICAgICAgICogVW50aWwgVW5pY29kZSAzLjEuMTsgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgbmFtZSB3YXMgIlByaXZhdGUgVXNlIjsKKyAgICAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJsb2NrLgorICAgICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEgdG8gIlByaXZhdGUgVXNlIEFyZWEiIAorICAgICAgICAgKiBhbmQgYWRkcyBzZXBhcmF0ZSBibG9ja3MgZm9yIHRoZSBzdXBwbGVtZW50YXJ5IFBVQXMuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgUFJJVkFURV9VU0VfQVJFQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiUFJJVkFURV9VU0VfQVJFQSIsICA3OCk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBTYW1lIGFzIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSVZBVEVfVVNFX0FSRUEuCisgICAgICAgICAqIFVudGlsIFVuaWNvZGUgMy4xLjE7IHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRlIFVzZSI7CisgICAgICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9jay4KKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRoZSBCTVAgUFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiAKKyAgICAgICAgICogYW5kIGFkZHMgc2VwYXJhdGUgYmxvY2tzIGZvciB0aGUgc3VwcGxlbWVudGFyeSBQVUFzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFBSSVZBVEVfVVNFIAorICAgICAgICAgICAgPSBQUklWQVRFX1VTRV9BUkVBOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFMiLCA3OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQUxQSEFCRVRJQ19QUkVTRU5UQVRJT05fRk9STVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TIiwgODApOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19BIiwgODEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENPTUJJTklOR19IQUxGX01BUktTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDT01CSU5JTkdfSEFMRl9NQVJLUyIsIDgyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfQ09NUEFUSUJJTElUWV9GT1JNUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMiLCA4Myk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU01BTExfRk9STV9WQVJJQU5UUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU01BTExfRk9STV9WQVJJQU5UUyIsIDg0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0IgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQiIsIDg1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTUEVDSUFMUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1BFQ0lBTFMiLCA4Nik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSEFMRldJRFRIX0FORF9GVUxMV0lEVEhfRk9STVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhBTEZXSURUSF9BTkRfRlVMTFdJRFRIX0ZPUk1TIiwgODcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE9MRF9JVEFMSUMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk9MRF9JVEFMSUMiLCA4OCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR09USElDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJHT1RISUMiLCA4OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgREVTRVJFVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiREVTRVJFVCIsIDkwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTIiwgOTEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1VU0lDQUxfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTVVTSUNBTF9TWU1CT0xTIiwgOTIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1BVEhFTUFUSUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUFUSEVNQVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTIiwgOTMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0IgIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9CIiwgOTQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIAorICAgICAgICAgICAgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIU19TVVBQTEVNRU5UIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQiLCA5NSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEFHUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFHUyIsIDk2KTsKKyAgICAKKyAgICAgICAgLy8gTmV3IGJsb2NrcyBpbiBVbmljb2RlIDMuMgorICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIFVuaWNvZGUgNC4wLjEgcmVuYW1lcyB0aGUgIkN5cmlsbGljIFN1cHBsZW1lbnRhcnkiIGJsb2NrIHRvICJDeXJpbGxpYyBTdXBwbGVtZW50Ii4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1lSSUxMSUNfU1VQUExFTUVOVEFSWSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1lSSUxMSUNfU1VQUExFTUVOVEFSWSIsIDk3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50YXJ5IiBibG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1lSSUxMSUNfU1VQUExFTUVOVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1lSSUxMSUNfU1VQUExFTUVOVCIsIDk3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUQUdBTE9HIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUQUdBTE9HIiwgOTgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhBTlVOT08gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhBTlVOT08iLCA5OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQlVISUQgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkJVSElEIiwgMTAwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUQUdCQU5XQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFHQkFOV0EiLCAxMDEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUlTQ0VMTEFORU9VU19NQVRIRU1BVElDQUxfU1lNQk9MU19BIiwgMTAyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTVVBQTEVNRU5UQUxfQVJST1dTX0EgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNVUFBMRU1FTlRBTF9BUlJPV1NfQSIsIDEwMyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFMX0FSUk9XU19CIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTVVBQTEVNRU5UQUxfQVJST1dTX0IiLCAxMDQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUlTQ0VMTEFORU9VU19NQVRIRU1BVElDQUxfU1lNQk9MU19CIiwgMTA1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTVVBQTEVNRU5UQUxfTUFUSEVNQVRJQ0FMX09QRVJBVE9SUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1VQUExFTUVOVEFMX01BVEhFTUFUSUNBTF9PUEVSQVRPUlMiLCAxMDYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtBVEFLQU5BX1BIT05FVElDX0VYVEVOU0lPTlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktBVEFLQU5BX1BIT05FVElDX0VYVEVOU0lPTlMiLCAxMDcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFZBUklBVElPTl9TRUxFQ1RPUlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlZBUklBVElPTl9TRUxFQ1RPUlMiLCAxMDgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQSIsIDEwOSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0IgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9CIiwgMTEwKTsKKyAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExJTUJVIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMSU1CVSIsIDExMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEFJX0xFIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUQUkgTEUiLCAxMTIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtITUVSX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktITUVSIFNZTUJPTFMiLCAxMTMpOworCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgUEhPTkVUSUNfRVhURU5TSU9OUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiUEhPTkVUSUMgRVhURU5TSU9OUyIsIDExNCk7CisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNSVNDRUxMQU5FT1VTX1NZTUJPTFNfQU5EX0FSUk9XUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUlTQ0VMTEFORU9VU19TWU1CT0xTX0FORF9BUlJPV1MiLCAxMTUpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFlJSklOR19IRVhBR1JBTV9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJZSUpJTkdfSEVYQUdSQU1fU1lNQk9MUyIsIDExNik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTElORUFSX0JfU1lMTEFCQVJZIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMSU5FQVJfQl9TWUxMQUJBUlkiLCAxMTcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExJTkVBUl9CX0lERU9HUkFNUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTElORUFSX0JfSURFT0dSQU1TIiwgMTE4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBRUdFQU5fTlVNQkVSUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQUVHRUFOX05VTUJFUlMiLCAxMTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVUdBUklUSUMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlVHQVJJVElDIiwgMTIwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTSEFWSUFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTSEFWSUFOIiwgMTIxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBPU01BTllBIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJPU01BTllBIiwgMTIyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDWVBSSU9UX1NZTExBQkFSWSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1lQUklPVF9TWUxMQUJBUlkiLCAxMjMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRBSV9YVUFOX0pJTkdfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFJX1hVQU5fSklOR19TWU1CT0xTIiwgMTI0KTsKKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVkFSSUFUSU9OX1NFTEVDVE9SU19TVVBQTEVNRU5UIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJWQVJJQVRJT05fU0VMRUNUT1JTX1NVUFBMRU1FTlQiLCAxMjUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgLyogTmV3IGJsb2NrcyBpbiBVbmljb2RlIDQuMSAqLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFOQ0lFTlRfR1JFRUtfTVVTSUNBTF9OT1RBVElPTiA9IG5ldyBVbmljb2RlQmxvY2soIkFOQ0lFTlRfR1JFRUtfTVVTSUNBTF9OT1RBVElPTiIsIDEyNik7IC8qWzFEMjAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQU5DSUVOVF9HUkVFS19OVU1CRVJTID0gbmV3IFVuaWNvZGVCbG9jaygiQU5DSUVOVF9HUkVFS19OVU1CRVJTIiwgMTI3KTsgLypbMTAxNDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUkFCSUNfU1VQUExFTUVOVCA9IG5ldyBVbmljb2RlQmxvY2soIkFSQUJJQ19TVVBQTEVNRU5UIiwgMTI4KTsgLypbMDc1MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJVR0lORVNFID0gbmV3IFVuaWNvZGVCbG9jaygiQlVHSU5FU0UiLCAxMjkpOyAvKlsxQTAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0pLX1NUUk9LRVMgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfU1RST0tFUyIsIDEzMCk7IC8qWzMxQzBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1NfU1VQUExFTUVOVCA9IG5ldyBVbmljb2RlQmxvY2soIkNPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLU19TVVBQTEVNRU5UIiwgMTMxKTsgLypbMURDMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENPUFRJQyA9IG5ldyBVbmljb2RlQmxvY2soIkNPUFRJQyIsIDEzMik7IC8qWzJDODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFVEhJT1BJQ19FWFRFTkRFRCA9IG5ldyBVbmljb2RlQmxvY2soIkVUSElPUElDX0VYVEVOREVEIiwgMTMzKTsgLypbMkQ4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEVUSElPUElDX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJFVEhJT1BJQ19TVVBQTEVNRU5UIiwgMTM0KTsgLypbMTM4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdFT1JHSUFOX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJHRU9SR0lBTl9TVVBQTEVNRU5UIiwgMTM1KTsgLypbMkQwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdMQUdPTElUSUMgPSBuZXcgVW5pY29kZUJsb2NrKCJHTEFHT0xJVElDIiwgMTM2KTsgLypbMkMwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtIQVJPU0hUSEkgPSBuZXcgVW5pY29kZUJsb2NrKCJLSEFST1NIVEhJIiwgMTM3KTsgLypbMTBBMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNT0RJRklFUl9UT05FX0xFVFRFUlMgPSBuZXcgVW5pY29kZUJsb2NrKCJNT0RJRklFUl9UT05FX0xFVFRFUlMiLCAxMzgpOyAvKltBNzAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTkVXX1RBSV9MVUUgPSBuZXcgVW5pY29kZUJsb2NrKCJORVdfVEFJX0xVRSIsIDEzOSk7IC8qWzE5ODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBPTERfUEVSU0lBTiA9IG5ldyBVbmljb2RlQmxvY2soIk9MRF9QRVJTSUFOIiwgMTQwKTsgLypbMTAzQTBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBQSE9ORVRJQ19FWFRFTlNJT05TX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJQSE9ORVRJQ19FWFRFTlNJT05TX1NVUFBMRU1FTlQiLCAxNDEpOyAvKlsxRDgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFMX1BVTkNUVUFUSU9OID0gbmV3IFVuaWNvZGVCbG9jaygiU1VQUExFTUVOVEFMX1BVTkNUVUFUSU9OIiwgMTQyKTsgLypbMkUwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNZTE9USV9OQUdSSSA9IG5ldyBVbmljb2RlQmxvY2soIlNZTE9USV9OQUdSSSIsIDE0Myk7IC8qW0E4MDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUSUZJTkFHSCA9IG5ldyBVbmljb2RlQmxvY2soIlRJRklOQUdIIiwgMTQ0KTsgLypbMkQzMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFZFUlRJQ0FMX0ZPUk1TID0gbmV3IFVuaWNvZGVCbG9jaygiVkVSVElDQUxfRk9STVMiLCAxNDUpOyAvKltGRTEwXSovCisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBOS08gPSBuZXcgVW5pY29kZUJsb2NrKCAiTktPIiwgMTQ2KTsgLypbMDdDMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJBTElORVNFID0gbmV3IFVuaWNvZGVCbG9jayggIkJBTElORVNFIiwgMTQ3KTsgLypbMUIwMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExBVElOX0VYVEVOREVEX0MgPSBuZXcgVW5pY29kZUJsb2NrKCAiTEFUSU5fRVhURU5ERURfQyIsIDE0OCk7IC8qWzJDNjBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFUSU5fRVhURU5ERURfRCA9IG5ldyBVbmljb2RlQmxvY2soICJMQVRJTl9FWFRFTkRFRF9EIiwgMTQ5KTsgLypbQTcyMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFBIQUdTX1BBID0gbmV3IFVuaWNvZGVCbG9jayggIlBIQUdTX1BBIiwgMTUwKTsgLypbQTg0MF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFBIT0VOSUNJQU4gPSBuZXcgVW5pY29kZUJsb2NrKCAiUEhPRU5JQ0lBTiIsIDE1MSk7IC8qWzEwOTAwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1VORUlGT1JNID0gbmV3IFVuaWNvZGVCbG9jayggIkNVTkVJRk9STSIsIDE1Mik7IC8qWzEyMDAwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1VORUlGT1JNX05VTUJFUlNfQU5EX1BVTkNUVUFUSU9OID0gbmV3IFVuaWNvZGVCbG9jayggIkNVTkVJRk9STV9OVU1CRVJTX0FORF9QVU5DVFVBVElPTiIsIDE1Myk7IC8qWzEyNDAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT1VOVElOR19ST0RfTlVNRVJBTFMgPSBuZXcgVW5pY29kZUJsb2NrKCAiQ09VTlRJTkdfUk9EX05VTUVSQUxTIiwgMTU0KTsgLypbMUQzNjBdKi8KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSU5WQUxJRF9DT0RFIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJJTlZBTElEX0NPREUiLCAtMSk7CisgICAgICAgICAgIAorICAgICAgICAvLyBibG9jayBpZCBjb3JyZXNwb25kaW5nIHRvIGljdTRjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVkFMSURfQ09ERV9JRCA9IC0xOyAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVNJQ19MQVRJTl9JRCA9IDE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fMV9TVVBQTEVNRU5UX0lEID0gMjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9FWFRFTkRFRF9BX0lEID0gMzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9FWFRFTkRFRF9CX0lEID0gNDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJUEFfRVhURU5TSU9OU19JRCA9IDU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTX0lEID0gNjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1NfSUQgPSA3OworICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGlzIGJsb2NrIHRvICJHcmVlayBhbmQgQ29wdGljIi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHUkVFS19JRCA9IDg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lSSUxMSUNfSUQgPSA5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSTUVOSUFOX0lEID0gMTA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVCUkVXX0lEID0gMTE7ICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUkFCSUNfSUQgPSAxMjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTWVJJQUNfSUQgPSAxMzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSEFBTkFfSUQgPSAxNDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERVZBTkFHQVJJX0lEID0gMTU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkVOR0FMSV9JRCA9IDE2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdVUk1VS0hJX0lEID0gMTc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1VKQVJBVElfSUQgPSAxODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPUklZQV9JRCA9IDE5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBTUlMX0lEID0gMjA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVMVUdVX0lEID0gMjE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FOTkFEQV9JRCA9IDIyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BTEFZQUxBTV9JRCA9IDIzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJTkhBTEFfSUQgPSAyNDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSEFJX0lEID0gMjU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFPX0lEID0gMjY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElCRVRBTl9JRCA9IDI3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1ZQU5NQVJfSUQgPSAyODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU9SR0lBTl9JRCA9IDI5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9KQU1PX0lEID0gMzA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVRISU9QSUNfSUQgPSAzMTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSEVST0tFRV9JRCA9IDMyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1NfSUQgPSAzMzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPR0hBTV9JRCA9IDM0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJVTklDX0lEID0gMzU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hNRVJfSUQgPSAzNjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNT05HT0xJQU5fSUQgPSAzNzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9FWFRFTkRFRF9BRERJVElPTkFMX0lEID0gMzg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JFRUtfRVhURU5ERURfSUQgPSAzOTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU5FUkFMX1BVTkNUVUFUSU9OX0lEID0gNDA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQRVJTQ1JJUFRTX0FORF9TVUJTQ1JJUFRTX0lEID0gNDE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOQ1lfU1lNQk9MU19JRCA9IDQyOworICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGlzIGJsb2NrIHRvICJDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MgZm9yIAorICAgICAgICAgKiBTeW1ib2xzIi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFNfSUQgPSA0MzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJMSUtFX1NZTUJPTFNfSUQgPSA0NDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU1CRVJfRk9STVNfSUQgPSA0NTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUlJPV1NfSUQgPSA0NjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVRIRU1BVElDQUxfT1BFUkFUT1JTX0lEID0gNDc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlTQ0VMTEFORU9VU19URUNITklDQUxfSUQgPSA0ODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX1BJQ1RVUkVTX0lEID0gNDk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1BUSUNBTF9DSEFSQUNURVJfUkVDT0dOSVRJT05fSUQgPSA1MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTX0lEID0gNTE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQk9YX0RSQVdJTkdfSUQgPSA1MjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCTE9DS19FTEVNRU5UU19JRCA9IDUzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFT01FVFJJQ19TSEFQRVNfSUQgPSA1NDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSVNDRUxMQU5FT1VTX1NZTUJPTFNfSUQgPSA1NTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESU5HQkFUU19JRCA9IDU2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJSQUlMTEVfUEFUVEVSTlNfSUQgPSA1NzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfUkFESUNBTFNfU1VQUExFTUVOVF9JRCA9IDU4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBTkdYSV9SQURJQ0FMU19JRCA9IDU5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlNfSUQgPSA2MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT05fSUQgPSA2MTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBISVJBR0FOQV9JRCA9IDYyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBVEFLQU5BX0lEID0gNjM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQk9QT01PRk9fSUQgPSA2NDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfQ09NUEFUSUJJTElUWV9KQU1PX0lEID0gNjU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FOQlVOX0lEID0gNjY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQk9QT01PRk9fRVhURU5ERURfSUQgPSA2NzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFTkNMT1NFRF9DSktfTEVUVEVSU19BTkRfTU9OVEhTX0lEID0gNjg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0NPTVBBVElCSUxJVFlfSUQgPSA2OTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BX0lEID0gNzA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX1VOSUZJRURfSURFT0dSQVBIU19JRCA9IDcxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlJX1NZTExBQkxFU19JRCA9IDcyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlJX1JBRElDQUxTX0lEID0gNzM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1NZTExBQkxFU19JRCA9IDc0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhJR0hfU1VSUk9HQVRFU19JRCA9IDc1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFU19JRCA9IDc2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPV19TVVJST0dBVEVTX0lEID0gNzc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBTYW1lIGFzIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSVZBVEVfVVNFLgorICAgICAgICAgKiBVbnRpbCBVbmljb2RlIDMuMS4xOyB0aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJpdmF0ZSBVc2UiOworICAgICAgICAgKiBhbmQgbXVsdGlwbGUgY29kZSBwb2ludCByYW5nZXMgaGFkIHRoaXMgYmxvY2suCisgICAgICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBVQSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgCisgICAgICAgICAqIGFuZCBhZGRzIHNlcGFyYXRlIGJsb2NrcyBmb3IgdGhlIHN1cHBsZW1lbnRhcnkgUFVBcy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRV9BUkVBX0lEID0gNzg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBTYW1lIGFzIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSVZBVEVfVVNFX0FSRUEuCisgICAgICAgICAqIFVudGlsIFVuaWNvZGUgMy4xLjE7IHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRlIFVzZSI7CisgICAgICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9jay4KKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRoZSBCTVAgUFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiAKKyAgICAgICAgICogYW5kIGFkZHMgc2VwYXJhdGUgYmxvY2tzIGZvciB0aGUgc3VwcGxlbWVudGFyeSBQVUFzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSVZBVEVfVVNFX0lEID0gUFJJVkFURV9VU0VfQVJFQV9JRDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX0lEID0gNzk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxQSEFCRVRJQ19QUkVTRU5UQVRJT05fRk9STVNfSUQgPSA4MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0FfSUQgPSA4MTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfSEFMRl9NQVJLU19JRCA9IDgyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19DT01QQVRJQklMSVRZX0ZPUk1TX0lEID0gODM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU01BTExfRk9STV9WQVJJQU5UU19JRCA9IDg0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQl9JRCA9IDg1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNQRUNJQUxTX0lEID0gODY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFMRldJRFRIX0FORF9GVUxMV0lEVEhfRk9STVNfSUQgPSA4NzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfSVRBTElDX0lEID0gODg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR09USElDX0lEID0gODk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVTRVJFVF9JRCA9IDkwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJZWkFOVElORV9NVVNJQ0FMX1NZTUJPTFNfSUQgPSA5MTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNVVNJQ0FMX1NZTUJPTFNfSUQgPSA5MjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVRIRU1BVElDQUxfQUxQSEFOVU1FUklDX1NZTUJPTFNfSUQgPSA5MzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9CX0lEID0gOTQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlRfSUQgPSA5NTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUdTX0lEID0gOTY7CisgICAgCisgICAgICAgIC8vIE5ldyBibG9ja3MgaW4gVW5pY29kZSAzLjIKKyAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50YXJ5IiBibG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENZUklMTElDX1NVUFBMRU1FTlRBUllfSUQgPSA5NzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50YXJ5IiBibG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDWVJJTExJQ19TVVBQTEVNRU5UX0lEID0gOTc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHQUxPR19JRCA9IDk4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTlVOT09fSUQgPSA5OTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCVUhJRF9JRCA9IDEwMDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUdCQU5XQV9JRCA9IDEwMTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSVNDRUxMQU5FT1VTX01BVEhFTUFUSUNBTF9TWU1CT0xTX0FfSUQgPSAxMDI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFMX0FSUk9XU19BX0lEID0gMTAzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBTF9BUlJPV1NfQl9JRCA9IDEwNDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSVNDRUxMQU5FT1VTX01BVEhFTUFUSUNBTF9TWU1CT0xTX0JfSUQgPSAxMDU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFMX01BVEhFTUFUSUNBTF9PUEVSQVRPUlNfSUQgPSAxMDY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FUQUtBTkFfUEhPTkVUSUNfRVhURU5TSU9OU19JRCA9IDEwNzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQVJJQVRJT05fU0VMRUNUT1JTX0lEID0gMTA4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9BX0lEID0gMTA5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9CX0lEID0gMTEwOworICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU1CVV9JRCA9IDExMTsgLypbMTkwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFJX0xFX0lEID0gMTEyOyAvKlsxOTUwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hNRVJfU1lNQk9MU19JRCA9IDExMzsgLypbMTlFMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhPTkVUSUNfRVhURU5TSU9OU19JRCA9IDExNDsgLypbMUQwMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JU0NFTExBTkVPVVNfU1lNQk9MU19BTkRfQVJST1dTX0lEID0gMTE1OyAvKlsyQjAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZSUpJTkdfSEVYQUdSQU1fU1lNQk9MU19JRCA9IDExNjsgLypbNERDMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVBUl9CX1NZTExBQkFSWV9JRCA9IDExNzsgLypbMTAwMDBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVBUl9CX0lERU9HUkFNU19JRCA9IDExODsgLypbMTAwODBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFFR0VBTl9OVU1CRVJTX0lEID0gMTE5OyAvKlsxMDEwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVR0FSSVRJQ19JRCA9IDEyMDsgLypbMTAzODBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBVklBTl9JRCA9IDEyMTsgLypbMTA0NTBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1NNQU5ZQV9JRCA9IDEyMjsgLypbMTA0ODBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lQUklPVF9TWUxMQUJBUllfSUQgPSAxMjM7IC8qWzEwODAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBSV9YVUFOX0pJTkdfU1lNQk9MU19JRCA9IDEyNDsgLypbMUQzMDBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFSSUFUSU9OX1NFTEVDVE9SU19TVVBQTEVNRU5UX0lEID0gMTI1OyAvKltFMDEwMF0qLworCisgICAgICAgIC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSA0LjEgKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTkNJRU5UX0dSRUVLX01VU0lDQUxfTk9UQVRJT05fSUQgPSAxMjY7IC8qWzFEMjAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQU5DSUVOVF9HUkVFS19OVU1CRVJTX0lEID0gMTI3OyAvKlsxMDE0MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSQUJJQ19TVVBQTEVNRU5UX0lEID0gMTI4OyAvKlswNzUwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlVHSU5FU0VfSUQgPSAxMjk7IC8qWzFBMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfU1RST0tFU19JRCA9IDEzMDsgLypbMzFDMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLU19TVVBQTEVNRU5UX0lEID0gMTMxOyAvKlsxREMwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09QVElDX0lEID0gMTMyOyAvKlsyQzgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVRISU9QSUNfRVhURU5ERURfSUQgPSAxMzM7IC8qWzJEODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVEhJT1BJQ19TVVBQTEVNRU5UX0lEID0gMTM0OyAvKlsxMzgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VPUkdJQU5fU1VQUExFTUVOVF9JRCA9IDEzNTsgLypbMkQwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdMQUdPTElUSUNfSUQgPSAxMzY7IC8qWzJDMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSEFST1NIVEhJX0lEID0gMTM3OyAvKlsxMEEwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1PRElGSUVSX1RPTkVfTEVUVEVSU19JRCA9IDEzODsgLypbQTcwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FV19UQUlfTFVFX0lEID0gMTM5OyAvKlsxOTgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX1BFUlNJQU5fSUQgPSAxNDA7IC8qWzEwM0EwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhPTkVUSUNfRVhURU5TSU9OU19TVVBQTEVNRU5UX0lEID0gMTQxOyAvKlsxRDgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFMX1BVTkNUVUFUSU9OX0lEID0gMTQyOyAvKlsyRTAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lMT1RJX05BR1JJX0lEID0gMTQzOyAvKltBODAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElGSU5BR0hfSUQgPSAxNDQ7IC8qWzJEMzBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWRVJUSUNBTF9GT1JNU19JRCA9IDE0NTsgLypbRkUxMF0qLworCisgICAgICAgIC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSA1LjAgKi8KKworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5LT19JRCA9IDE0NjsgLypbMDdDMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBTElORVNFX0lEID0gMTQ3OyAvKlsxQjAwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRVhURU5ERURfQ19JRCA9IDE0ODsgLypbMkM2MF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9FWFRFTkRFRF9EX0lEID0gMTQ5OyAvKltBNzIwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhBR1NfUEFfSUQgPSAxNTA7IC8qW0E4NDBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSE9FTklDSUFOX0lEID0gMTUxOyAvKlsxMDkwMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENVTkVJRk9STV9JRCA9IDE1MjsgLypbMTIwMDBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVU5FSUZPUk1fTlVNQkVSU19BTkRfUFVOQ1RVQVRJT05fSUQgPSAxNTM7IC8qWzEyNDAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVElOR19ST0RfTlVNRVJBTFNfSUQgPSAxNTQ7IC8qWzFEMzYwXSovCisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMTU1OworICAgICAgICAKKyAgICAgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogR2V0cyB0aGUgb25seSBpbnN0YW5jZSBvZiB0aGUgVW5pY29kZUJsb2NrIHdpdGggdGhlIGFyZ3VtZW50IElELgorICAgICAgICAgKiBJZiBubyBzdWNoIElEIGV4aXN0cywgYSBJTlZBTElEX0NPREUgVW5pY29kZUJsb2NrIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICAgICAqIEBwYXJhbSBpZCBVbmljb2RlQmxvY2sgSUQKKyAgICAgICAgICogQHJldHVybiB0aGUgb25seSBpbnN0YW5jZSBvZiB0aGUgVW5pY29kZUJsb2NrIHdpdGggdGhlIGFyZ3VtZW50IElECisgICAgICAgICAqICAgICAgICAgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgYSBJTlZBTElEX0NPREUgVW5pY29kZUJsb2NrIHdpbGwgYmUgCisgICAgICAgICAqICAgICAgICAgcmV0dXJuZWQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBVbmljb2RlQmxvY2sgZ2V0SW5zdGFuY2UoaW50IGlkKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaWQgPj0gMCAmJiBpZCA8IEJMT0NLU18ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEJMT0NLU19baWRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfQ09ERTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIFVuaWNvZGUgYWxsb2NhdGlvbiBibG9jayB0aGF0IGNvbnRhaW5zIHRoZSBjb2RlIHBvaW50LAorICAgICAgICAgKiBvciBudWxsIGlmIHRoZSBjb2RlIHBvaW50IGlzIG5vdCBhIG1lbWJlciBvZiBhIGRlZmluZWQgYmxvY2suCisgICAgICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIHRlc3RlZAorICAgICAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlIGFsbG9jYXRpb24gYmxvY2sgdGhhdCBjb250YWlucyB0aGUgY29kZSBwb2ludAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZUJsb2NrIG9mKGludCBjaCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGNoID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfQ09ERTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVCbG9jay5nZXRJbnN0YW5jZSgoUFJPUEVSVFlfLmdldEFkZGl0aW9uYWwoY2gsIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgJiBCTE9DS19NQVNLXykgPj4gQkxPQ0tfU0hJRlRfKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnRlcm5hbCBmdW5jdGlvbiByZXR1cm5pbmcgb2YoY2gpLmdldElEKCkuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSBjaAorICAgICAgICAgKiBAcmV0dXJuIG51bWVyaWMgYmxvY2sgdmFsdWUKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgaW50IGlkT2YoaW50IGNoKSB7CisgICAgICAgICAgICBpZiAoY2ggPCAwIHx8IGNoID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAwKSAmIEJMT0NLX01BU0tfKSA+PiBCTE9DS19TSElGVF87CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLiAgUmV0dXJuIHRoZSBVbmljb2RlIGJsb2NrIHdpdGggdGhlCisgICAgICAgICAqIGdpdmVuIG5hbWUuICA8YnIvPjxiPk5vdGU8L2I+OiBVbmxpa2UgSkRLIDEuNSwgdGhpcyBvbmx5IG1hdGNoZXMKKyAgICAgICAgICogYWdhaW5zdCB0aGUgb2ZmaWNpYWwgVUNEIG5hbWUgYW5kIHRoZSBKYXZhIGJsb2NrIG5hbWUKKyAgICAgICAgICogKGlnbm9yaW5nIGNhc2UpLgorICAgICAgICAgKiBAcGFyYW0gYmxvY2tOYW1lIHRoZSBuYW1lIG9mIHRoZSBibG9jayB0byBtYXRjaAorICAgICAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlQmxvY2sgd2l0aCB0aGF0IG5hbWUKKyAgICAgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGJsb2NrTmFtZSBjb3VsZCBub3QgYmUgbWF0Y2hlZAorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIGZvck5hbWUoU3RyaW5nIGJsb2NrTmFtZSkgeworICAgICAgICAgICAgTWFwIG0gPSBudWxsOworICAgICAgICAgICAgaWYgKG1yZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG0gPSAoTWFwKW1yZWYuZ2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKEJMT0NLU18ubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEJMT0NLU18ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZUJsb2NrIGIgPSBCTE9DS1NfW2ldOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGdldFByb3BlcnR5VmFsdWVOYW1lKFVQcm9wZXJ0eS5CTE9DSywgYi5nZXRJRCgpLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgbS5wdXQobmFtZS50b1VwcGVyQ2FzZSgpLCBiKTsKKyAgICAgICAgICAgIG0ucHV0KG5hbWUucmVwbGFjZSgnXycsJyAnKS50b1VwcGVyQ2FzZSgpLCBiKTsKKyAgICAgICAgICAgICAgICAgICAgbS5wdXQoYi50b1N0cmluZygpLnRvVXBwZXJDYXNlKCksIGIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtcmVmID0gbmV3IFNvZnRSZWZlcmVuY2UobSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVbmljb2RlQmxvY2sgYiA9IChVbmljb2RlQmxvY2spbS5nZXQoYmxvY2tOYW1lLnRvVXBwZXJDYXNlKCkpOworICAgICAgICAgICAgaWYgKGIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBiOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgc3RhdGljIFNvZnRSZWZlcmVuY2UgbXJlZjsKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgdHlwZSBJRCBvZiB0aGlzIFVuaWNvZGUgYmxvY2sKKyAgICAgICAgICogQHJldHVybiBpbnRlZ2VyIHR5cGUgSUQgb2YgdGhpcyBVbmljb2RlIGJsb2NrCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRJRCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2lkXzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQXJyYXkgb2YgVW5pY29kZUJsb2NrcywgZm9yIGVhc3kgYWNjZXNzIGluIGdldEluc3RhbmNlKGludCkKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFVuaWNvZGVCbG9jayBCTE9DS1NfW10gPSB7CisgICAgICAgICAgICBOT19CTE9DSywgQkFTSUNfTEFUSU4sIAorICAgICAgICAgICAgTEFUSU5fMV9TVVBQTEVNRU5ULCBMQVRJTl9FWFRFTkRFRF9BLCAKKyAgICAgICAgICAgIExBVElOX0VYVEVOREVEX0IsIElQQV9FWFRFTlNJT05TLCAKKyAgICAgICAgICAgIFNQQUNJTkdfTU9ESUZJRVJfTEVUVEVSUywgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTLAorICAgICAgICAgICAgR1JFRUssIENZUklMTElDLAorICAgICAgICAgICAgQVJNRU5JQU4sIEhFQlJFVywKKyAgICAgICAgICAgIEFSQUJJQywgU1lSSUFDLCAKKyAgICAgICAgICAgIFRIQUFOQSwgREVWQU5BR0FSSSwgCisgICAgICAgICAgICBCRU5HQUxJLCBHVVJNVUtISSwgCisgICAgICAgICAgICBHVUpBUkFUSSwgT1JJWUEsIAorICAgICAgICAgICAgVEFNSUwsIFRFTFVHVSwgCisgICAgICAgICAgICBLQU5OQURBLCBNQUxBWUFMQU0sIAorICAgICAgICAgICAgU0lOSEFMQSwgVEhBSSwgCisgICAgICAgICAgICBMQU8sIFRJQkVUQU4sIAorICAgICAgICAgICAgTVlBTk1BUiwgR0VPUkdJQU4sIAorICAgICAgICAgICAgSEFOR1VMX0pBTU8sIEVUSElPUElDLCAKKyAgICAgICAgICAgIENIRVJPS0VFLCBVTklGSUVEX0NBTkFESUFOX0FCT1JJR0lOQUxfU1lMTEFCSUNTLAorICAgICAgICAgICAgT0dIQU0sIFJVTklDLCAKKyAgICAgICAgICAgIEtITUVSLCBNT05HT0xJQU4sIAorICAgICAgICAgICAgTEFUSU5fRVhURU5ERURfQURESVRJT05BTCwgR1JFRUtfRVhURU5ERUQsIAorICAgICAgICAgICAgR0VORVJBTF9QVU5DVFVBVElPTiwgU1VQRVJTQ1JJUFRTX0FORF9TVUJTQ1JJUFRTLAorICAgICAgICAgICAgQ1VSUkVOQ1lfU1lNQk9MUywgQ09NQklOSU5HX01BUktTX0ZPUl9TWU1CT0xTLCAKKyAgICAgICAgICAgIExFVFRFUkxJS0VfU1lNQk9MUywgTlVNQkVSX0ZPUk1TLCAKKyAgICAgICAgICAgIEFSUk9XUywgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUywgCisgICAgICAgICAgICBNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTCwgQ09OVFJPTF9QSUNUVVJFUywKKyAgICAgICAgICAgIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OLCBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTLAorICAgICAgICAgICAgQk9YX0RSQVdJTkcsIEJMT0NLX0VMRU1FTlRTLAorICAgICAgICAgICAgR0VPTUVUUklDX1NIQVBFUywgTUlTQ0VMTEFORU9VU19TWU1CT0xTLAorICAgICAgICAgICAgRElOR0JBVFMsIEJSQUlMTEVfUEFUVEVSTlMsCisgICAgICAgICAgICBDSktfUkFESUNBTFNfU1VQUExFTUVOVCwgS0FOR1hJX1JBRElDQUxTLAorICAgICAgICAgICAgSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUywgQ0pLX1NZTUJPTFNfQU5EX1BVTkNUVUFUSU9OLAorICAgICAgICAgICAgSElSQUdBTkEsIEtBVEFLQU5BLCAKKyAgICAgICAgICAgIEJPUE9NT0ZPLCBIQU5HVUxfQ09NUEFUSUJJTElUWV9KQU1PLAorICAgICAgICAgICAgS0FOQlVOLCBCT1BPTU9GT19FWFRFTkRFRCwgCisgICAgICAgICAgICBFTkNMT1NFRF9DSktfTEVUVEVSU19BTkRfTU9OVEhTLCBDSktfQ09NUEFUSUJJTElUWSwKKyAgICAgICAgICAgIENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0EsIENKS19VTklGSUVEX0lERU9HUkFQSFMsCisgICAgICAgICAgICBZSV9TWUxMQUJMRVMsIFlJX1JBRElDQUxTLCAKKyAgICAgICAgICAgIEhBTkdVTF9TWUxMQUJMRVMsIEhJR0hfU1VSUk9HQVRFUywKKyAgICAgICAgICAgIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUywgTE9XX1NVUlJPR0FURVMsCisgICAgICAgICAgICBQUklWQVRFX1VTRV9BUkVBLCBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTLAorICAgICAgICAgICAgQUxQSEFCRVRJQ19QUkVTRU5UQVRJT05fRk9STVMsIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQSwKKyAgICAgICAgICAgIENPTUJJTklOR19IQUxGX01BUktTLCBDSktfQ09NUEFUSUJJTElUWV9GT1JNUywKKyAgICAgICAgICAgIFNNQUxMX0ZPUk1fVkFSSUFOVFMsIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQiwKKyAgICAgICAgICAgIFNQRUNJQUxTLCBIQUxGV0lEVEhfQU5EX0ZVTExXSURUSF9GT1JNUywKKyAgICAgICAgICAgIE9MRF9JVEFMSUMsIEdPVEhJQywgCisgICAgICAgICAgICBERVNFUkVULCBCWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTLAorICAgICAgICAgICAgTVVTSUNBTF9TWU1CT0xTLCBNQVRIRU1BVElDQUxfQUxQSEFOVU1FUklDX1NZTUJPTFMsCisgICAgICAgICAgICBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9CLCAKKyAgICAgICAgICAgIENKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQUExFTUVOVCwgCisgICAgICAgICAgICBUQUdTLCBDWVJJTExJQ19TVVBQTEVNRU5ULAorICAgICAgICAgICAgVEFHQUxPRywgSEFOVU5PTywgCisgICAgICAgICAgICBCVUhJRCwgVEFHQkFOV0EsIAorICAgICAgICAgICAgTUlTQ0VMTEFORU9VU19NQVRIRU1BVElDQUxfU1lNQk9MU19BLCBTVVBQTEVNRU5UQUxfQVJST1dTX0EsCisgICAgICAgICAgICBTVVBQTEVNRU5UQUxfQVJST1dTX0IsIE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQiwKKyAgICAgICAgICAgIFNVUFBMRU1FTlRBTF9NQVRIRU1BVElDQUxfT1BFUkFUT1JTLCAKKyAgICAgICAgICAgIEtBVEFLQU5BX1BIT05FVElDX0VYVEVOU0lPTlMsCisgICAgICAgICAgICBWQVJJQVRJT05fU0VMRUNUT1JTLCBTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQSwKKyAgICAgICAgICAgIFNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9CLAorICAgICAgICAgICAgTElNQlUsIFRBSV9MRSwgS0hNRVJfU1lNQk9MUywgUEhPTkVUSUNfRVhURU5TSU9OUywKKyAgICAgICAgICAgIE1JU0NFTExBTkVPVVNfU1lNQk9MU19BTkRfQVJST1dTLCBZSUpJTkdfSEVYQUdSQU1fU1lNQk9MUywKKyAgICAgICAgICAgIExJTkVBUl9CX1NZTExBQkFSWSwgTElORUFSX0JfSURFT0dSQU1TLCBBRUdFQU5fTlVNQkVSUywKKyAgICAgICAgICAgIFVHQVJJVElDLCBTSEFWSUFOLCBPU01BTllBLCBDWVBSSU9UX1NZTExBQkFSWSwKKyAgICAgICAgICAgIFRBSV9YVUFOX0pJTkdfU1lNQk9MUywgVkFSSUFUSU9OX1NFTEVDVE9SU19TVVBQTEVNRU5ULAorCisgICAgICAgICAgICAvKiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgNC4xICovCisgICAgICAgICAgICBBTkNJRU5UX0dSRUVLX01VU0lDQUxfTk9UQVRJT04sCisgICAgICAgICAgICBBTkNJRU5UX0dSRUVLX05VTUJFUlMsCisgICAgICAgICAgICBBUkFCSUNfU1VQUExFTUVOVCwKKyAgICAgICAgICAgIEJVR0lORVNFLAorICAgICAgICAgICAgQ0pLX1NUUk9LRVMsCisgICAgICAgICAgICBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1NfU1VQUExFTUVOVCwKKyAgICAgICAgICAgIENPUFRJQywKKyAgICAgICAgICAgIEVUSElPUElDX0VYVEVOREVELAorICAgICAgICAgICAgRVRISU9QSUNfU1VQUExFTUVOVCwKKyAgICAgICAgICAgIEdFT1JHSUFOX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBHTEFHT0xJVElDLAorICAgICAgICAgICAgS0hBUk9TSFRISSwKKyAgICAgICAgICAgIE1PRElGSUVSX1RPTkVfTEVUVEVSUywKKyAgICAgICAgICAgIE5FV19UQUlfTFVFLAorICAgICAgICAgICAgT0xEX1BFUlNJQU4sCisgICAgICAgICAgICBQSE9ORVRJQ19FWFRFTlNJT05TX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBTVVBQTEVNRU5UQUxfUFVOQ1RVQVRJT04sCisgICAgICAgICAgICBTWUxPVElfTkFHUkksCisgICAgICAgICAgICBUSUZJTkFHSCwKKyAgICAgICAgICAgIFZFUlRJQ0FMX0ZPUk1TLAorICAgICAgICAgICAgTktPLAorICAgICAgICAgICAgQkFMSU5FU0UsCisgICAgICAgICAgICBMQVRJTl9FWFRFTkRFRF9DLAorICAgICAgICAgICAgTEFUSU5fRVhURU5ERURfRCwKKyAgICAgICAgICAgIFBIQUdTX1BBLAorICAgICAgICAgICAgUEhPRU5JQ0lBTiwKKyAgICAgICAgICAgIENVTkVJRk9STSwKKyAgICAgICAgICAgIENVTkVJRk9STV9OVU1CRVJTX0FORF9QVU5DVFVBVElPTiwKKyAgICAgICAgICAgIENPVU5USU5HX1JPRF9OVU1FUkFMUworICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyB7CisgICAgICAgICAgICBpZiAoQ09VTlQhPUJMT0NLU18ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlVuaWNvZGVCbG9jayBmaWVsZHMgYXJlIGluY29uc2lzdGVudCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogSWRlbnRpZmljYXRpb24gY29kZSBmb3IgdGhpcyBVbmljb2RlQmxvY2sKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1faWRfOworICAgICAgICAKKyAgICAgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZUJsb2NrIGNvbnN0cnVjdG9yCisgICAgICAgICAqIEBwYXJhbSBuYW1lIG5hbWUgb2YgdGhpcyBVbmljb2RlQmxvY2sKKyAgICAgICAgICogQHBhcmFtIGlkIHVuaXF1ZSBpZCBvZiB0aGlzIFVuaWNvZGVCbG9jaworICAgICAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIG5hbWUgaXMgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgVW5pY29kZUJsb2NrKFN0cmluZyBuYW1lLCBpbnQgaWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICAgICAgbV9pZF8gPSBpZDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBFYXN0IEFzaWFuIFdpZHRoIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNFQVNUX0FTSUFOX1dJRFRICisgICAgICogQHNlZSBVQ2hhcmFjdGVyI2dldEludFByb3BlcnR5VmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBFYXN0QXNpYW5XaWR0aCAKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FVVRSQUwgPSAwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTUJJR1VPVVMgPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQUxGV0lEVEggPSAyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGVUxMV0lEVEggPSAzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVJST1cgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSURFID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA2OworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY29tcG9zaXRpb24gVHlwZSBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjREVDT01QT1NJVElPTl9UWVBFCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRGVjb21wb3NpdGlvblR5cGUgCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05JQ0FMID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFUID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0lSQ0xFID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRklOQUwgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT05UID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT04gPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTklUSUFMID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVNPTEFURUQgPSA4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRURJQUwgPSA5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVJST1cgPSAxMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9CUkVBSyA9IDExOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTTUFMTCA9IDEyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUVVBUkUgPSAxMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VCID0gMTQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUEVSID0gMTU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZFUlRJQ0FMID0gMTY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdJREUgPSAxNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSAxODsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSm9pbmluZyBUeXBlIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNKT0lOSU5HX1RZUEUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBKb2luaW5nVHlwZSAKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTl9KT0lOSU5HID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSk9JTl9DQVVTSU5HID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRFVBTF9KT0lOSU5HID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVGVF9KT0lOSU5HID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUklHSFRfSk9JTklORyA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQU5TUEFSRU5UID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA2OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBKb2luaW5nIEdyb3VwIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNKT0lOSU5HX0dST1VQCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSm9pbmluZ0dyb3VwIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9fSk9JTklOR19HUk9VUCA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFJTiA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMQVBIID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxFRiA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFSCA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFVEggPSA1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQUwgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQUxBVEhfUklTSCA9IDc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEUgPSA4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGRUggPSA5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGSU5BTF9TRU1LQVRIID0gMTA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdBRiA9IDExOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHQU1BTCA9IDEyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFIID0gMTM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTVpBX09OX0hFSF9HT0FMID0gMTQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFID0gMTU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFSCA9IDE2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRUhfR09BTCA9IDE3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRVRIID0gMTg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBRiA9IDE5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQVBIID0gMjA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtOT1RURURfSEVIID0gMjE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBTSA9IDIyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQU1BREggPSAyMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVFTSA9IDI0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU0gPSAyNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9PTiA9IDI2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU4gPSAyNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEUgPSAyODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUFGID0gMjk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFBUEggPSAzMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVIID0gMzE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFVkVSU0VEX1BFID0gMzI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNBRCA9IDMzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQURIRSA9IDM0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUVOID0gMzU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTUtBVEggPSAzNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hJTiA9IDM3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTV0FTSF9LQUYgPSAzODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lSSUFDX1dBVyA9IDM5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUggPSA0MDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFXID0gNDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFSF9NQVJCVVRBID0gNDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVEggPSA0MzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0FXID0gNDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFSCA9IDQ1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUhfQkFSUkVFID0gNDY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFSF9XSVRIX1RBSUwgPSA0NzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWVVESCA9IDQ4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZVURIX0hFID0gNDk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFpBSU4gPSA1MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGRSA9IDUxOyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hBUEggPSA1MjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFpIQUlOID01MzsgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA1NDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmFwaGVtZSBDbHVzdGVyIEJyZWFrIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNHUkFQSEVNRV9DTFVTVEVSX0JSRUFLCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBHcmFwaGVtZUNsdXN0ZXJCcmVhayB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTCA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENSID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5EID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTCA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExGID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFYgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMVlQgPSA3OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUID0gODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgViA9IDk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMTA7CisgICAgfQorCisgICAgLyoqCisgICAgICogV29yZCBCcmVhayBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjV09SRF9CUkVBSworICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgV29yZEJyZWFrIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1RIRVIgPSAwOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTEVUVEVSID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FUQUtBTkEgPSAzOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSURMRVRURVIgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSUROVU0gPSA1OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU1FUklDID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ETlVNTEVUID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbnRlbmNlIEJyZWFrIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNTRU5URU5DRV9CUkVBSworICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgU2VudGVuY2VCcmVhayB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVRFUk0gPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDTE9TRSA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVCA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPV0VSID0gNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQyA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRVRURVIgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRVAgPSA3OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUCA9IDg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNURVJNID0gOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVIgPSAxMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSAxMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMaW5lIEJyZWFrIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNMSU5FX0JSRUFLCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgTGluZUJyZWFrIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFNQklHVU9VUyA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMUEhBQkVUSUMgPSAyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkVBS19CT1RIID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJFQUtfQUZURVIgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkVBS19CRUZPUkUgPSA1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQU5EQVRPUllfQlJFQUsgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05USU5HRU5UX0JSRUFLID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0xPU0VfUFVOQ1RVQVRJT04gPSA4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfTUFSSyA9IDk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBUlJJQUdFX1JFVFVSTiA9IDEwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWENMQU1BVElPTiA9IDExOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHTFVFID0gMTI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhZUEhFTiA9IDEzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJREVPR1JBUEhJQyA9IDE0OworICAgICAgICAvKioKKyAgICAgICAgICogQHNlZSAjSU5TRVBBUkFCTEUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlNFUEVSQUJMRSA9IDE1OworICAgICAgICAvKioKKyAgICAgICAgICogUmVuYW1lZCBmcm9tIHRoZSBtaXNzcGVsbGVkICJpbnNlcGVyYWJsZSIgaW4gVW5pY29kZSA0LjAuMS4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlNFUEFSQUJMRSA9IDE1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkZJWF9OVU1FUklDID0gMTY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVfRkVFRCA9IDE3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05TVEFSVEVSID0gMTg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUMgPSAxOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1BFTl9QVU5DVFVBVElPTiA9IDIwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1NURklYX05VTUVSSUMgPSAyMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJFRklYX05VTUVSSUMgPSAyMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OID0gMjM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTVBMRVhfQ09OVEVYVCA9IDI0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEUgPSAyNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1BBQ0UgPSAyNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJFQUtfU1lNQk9MUyA9IDI3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBaV1NQQUNFID0gMjg7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORVhUX0xJTkUgPSAyOTsgICAgICAgLypbTkxdKi8gLyogZnJvbSBoZXJlIG9uOiBuZXcgaW4gVW5pY29kZSA0L0lDVSAyLjYgKi8KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBXT1JEX0pPSU5FUiA9IDMwOyAgICAgIC8qW1dKXSovCisgICAgICAgIAorICAgICAgICAvKiBmcm9tIGhlcmUgb246IG5ldyBpbiBVbmljb2RlIDQuMS9JQ1UgMy40ICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIEgyID0gMzE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBIMyA9IDMyOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgSkwgPSAzMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIEpUID0gMzQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBKViA9IDM1OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMzY7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE51bWVyaWMgVHlwZSBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjTlVNRVJJQ19UWVBFCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgTnVtZXJpY1R5cGUgCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVDSU1BTCA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQyA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gNDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSGFuZ3VsIFN5bGxhYmxlIFR5cGUgY29uc3RhbnRzLgorICAgICAqCisgICAgICogQHNlZSBVUHJvcGVydHkjSEFOR1VMX1NZTExBQkxFX1RZUEUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBIYW5ndWxTeWxsYWJsZVR5cGUgCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT1RfQVBQTElDQUJMRSAgICAgID0gMDsgICAvKltOQV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVBRElOR19KQU1PICAgICAgICA9IDE7ICAgLypbTF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWT1dFTF9KQU1PICAgICAgICAgID0gMjsgICAvKltWXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMSU5HX0pBTU8gICAgICAgPSAzOyAgIC8qW1RdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFZfU1lMTEFCTEUgICAgICAgICA9IDQ7ICAgLypbTFZdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFZUX1NZTExBQkxFICAgICAgICA9IDU7ICAgLypbTFZUXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UICAgICAgICAgICAgICAgPSA2OworICAgIH0KKworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqIAorICAgICAqIFRoZSBsb3dlc3QgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTl9WQUxVRSA9IFVURjE2LkNPREVQT0lOVF9NSU5fVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgaGlnaGVzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUgKHNjYWxhciB2YWx1ZSkgYWNjb3JkaW5nIHRvIHRoZSAKKyAgICAgKiBVbmljb2RlIFN0YW5kYXJkLiAKKyAgICAgKiBUaGlzIGlzIGEgMjEtYml0IHZhbHVlICgyMSBiaXRzLCByb3VuZGVkIHVwKS48YnI+CisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuTUlOX1ZBTFVFCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1ZBTFVFID0gVVRGMTYuQ09ERVBPSU5UX01BWF9WQUxVRTsgCisgICAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFID0gCisgICAgICAgIFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFOworICAgICAgCisgICAgLyoqCisgICAgICogVW5pY29kZSB2YWx1ZSB1c2VkIHdoZW4gdHJhbnNsYXRpbmcgaW50byBVbmljb2RlIGVuY29kaW5nIGZvcm0gYW5kIHRoZXJlIAorICAgICAqIGlzIG5vIGV4aXN0aW5nIGNoYXJhY3Rlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSRVBMQUNFTUVOVF9DSEFSID0gJ1x1RkZGRCc7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNwZWNpYWwgdmFsdWUgdGhhdCBpcyByZXR1cm5lZCBieSBnZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGludCkgd2hlbiBubyAKKyAgICAgKiBudW1lcmljIHZhbHVlIGlzIGRlZmluZWQgZm9yIGEgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKiBAc2VlICNnZXRVbmljb2RlTnVtZXJpY1ZhbHVlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgTk9fTlVNRVJJQ19WQUxVRSA9IC0xMjM0NTY3ODk7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IGNvbnN0YW50IGZvciBKYXZhIENoYXJhY3RlcidzIE1JTl9SQURJWC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTl9SQURJWCA9IGphdmEubGFuZy5DaGFyYWN0ZXIuTUlOX1JBRElYOworCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBjb25zdGFudCBmb3IgSmF2YSBDaGFyYWN0ZXIncyBNQVhfUkFESVguCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfUkFESVggPSBqYXZhLmxhbmcuQ2hhcmFjdGVyLk1BWF9SQURJWDsKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGRlY2ltYWwgZGlnaXQgY29kZSBwb2ludC4KKyAgICAgKiA8YnI+VGhpcyBtZXRob2Qgb2JzZXJ2ZXMgdGhlIHNlbWFudGljcyBvZgorICAgICAqIDxjb2RlPmphdmEubGFuZy5DaGFyYWN0ZXIuZGlnaXQoKTwvY29kZT4uICBOb3RlIHRoYXQgdGhpcworICAgICAqIHdpbGwgcmV0dXJuIHBvc2l0aXZlIHZhbHVlcyBmb3IgY29kZSBwb2ludHMgZm9yIHdoaWNoIGlzRGlnaXQKKyAgICAgKiByZXR1cm5zIGZhbHNlLCBqdXN0IGxpa2UgamF2YS5sYW5nLkNoYXJhY3Rlci4KKyAgICAgKiA8YnI+PGVtPlNlbWFudGljIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDEuMy4xIGFuZAorICAgICAqIHByaW9yLCB0aGlzIGRpZCBub3QgdHJlYXQgdGhlIEV1cm9wZWFuIGxldHRlcnMgYXMgaGF2aW5nIGEKKyAgICAgKiBkaWdpdCB2YWx1ZSwgYW5kIGFsc28gdHJlYXRlZCBudW1lcmljIGxldHRlcnMgYW5kIG90aGVyIG51bWJlcnMgYXMgCisgICAgICogZGlnaXRzLiAgCisgICAgICogVGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHRvIGNvbmZvcm0gdG8gdGhlIGphdmEgc2VtYW50aWNzLgorICAgICAqIDxicj5BIGNvZGUgcG9pbnQgaXMgYSB2YWxpZCBkaWdpdCBpZiBhbmQgb25seSBpZjoKKyAgICAgKiA8dWw+CisgICAgICogICA8bGk+Y2ggaXMgYSBkZWNpbWFsIGRpZ2l0IG9yIG9uZSBvZiB0aGUgZXVyb3BlYW4gbGV0dGVycywgYW5kCisgICAgICogICA8bGk+dGhlIHZhbHVlIG9mIGNoIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHJhZGl4LgorICAgICAqIDwvdWw+CisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgICogQHBhcmFtIHJhZGl4IHRoZSByYWRpeAorICAgICAqIEByZXR1cm4gdGhlIG51bWVyaWMgdmFsdWUgcmVwcmVzZW50ZWQgYnkgdGhlIGNvZGUgcG9pbnQgaW4gdGhlCisgICAgICogc3BlY2lmaWVkIHJhZGl4LCBvciAtMSBpZiB0aGUgY29kZSBwb2ludCBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0CisgICAgICogb3IgaWYgaXRzIHZhbHVlIGlzIHRvbyBsYXJnZSBmb3IgdGhlIHJhZGl4CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZGlnaXQoaW50IGNoLCBpbnQgcmFkaXgpCisgICAgeworICAgICAgICAvLyB3aGVuIGNoIGlzIG91dCBvZiBib3VuZHMgZ2V0UHJvcGVydHkgPT0gMAorICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wZXJ0eShjaCk7CisgICAgICAgIGludCB2YWx1ZTsgICAgICAgIAorICAgICAgICBpZiAoZ2V0TnVtZXJpY1R5cGUocHJvcHMpID09IE51bWVyaWNUeXBlLkRFQ0lNQUwpIHsKKyAgICAgICAgICAgIHZhbHVlID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFVuc2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFsdWUgPSBnZXRFdXJvcGVhbkRpZ2l0KGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKDAgPD0gdmFsdWUgJiYgdmFsdWUgPCByYWRpeCkgPyB2YWx1ZSA6IC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIG51bWVyaWMgdmFsdWUgb2YgYSBkZWNpbWFsIGRpZ2l0IGNvZGUgcG9pbnQuCisgICAgICogPGJyPlRoaXMgaXMgYSBjb252ZW5pZW5jZSBvdmVybG9hZCBvZiA8Y29kZT5kaWdpdChpbnQsIGludCk8L2NvZGU+IAorICAgICAqIHRoYXQgcHJvdmlkZXMgYSBkZWNpbWFsIHJhZGl4LgorICAgICAqIDxicj48ZW0+U2VtYW50aWMgQ2hhbmdlOjwvZW0+IEluIHJlbGVhc2UgMS4zLjEgYW5kIHByaW9yLCB0aGlzCisgICAgICogdHJlYXRlZCBudW1lcmljIGxldHRlcnMgYW5kIG90aGVyIG51bWJlcnMgYXMgZGlnaXRzLiAgVGhpcyBoYXMKKyAgICAgKiBiZWVuIGNoYW5nZWQgdG8gY29uZm9ybSB0byB0aGUgamF2YSBzZW1hbnRpY3MuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRlZCBieSB0aGUgY29kZSBwb2ludCwKKyAgICAgKiBvciAtMSBpZiB0aGUgY29kZSBwb2ludCBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0IG9yIGlmIGl0cworICAgICAqIHZhbHVlIGlzIHRvbyBsYXJnZSBmb3IgYSBkZWNpbWFsIHJhZGl4IAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRpZ2l0KGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBwcm9wcyA9IGdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaWYgKGdldE51bWVyaWNUeXBlKHByb3BzKSA9PSBOdW1lcmljVHlwZS5ERUNJTUFMKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFVuc2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIAorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIGNvZGUgcG9pbnQgYXMgYSBub25uZWdhdGl2ZSAKKyAgICAgKiBpbnRlZ2VyLgorICAgICAqIDxicj5JZiB0aGUgY29kZSBwb2ludCBkb2VzIG5vdCBoYXZlIGEgbnVtZXJpYyB2YWx1ZSwgdGhlbiAtMSBpcyByZXR1cm5lZC4gCisgICAgICogPGJyPgorICAgICAqIElmIHRoZSBjb2RlIHBvaW50IGhhcyBhIG51bWVyaWMgdmFsdWUgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMgYSAKKyAgICAgKiBub25uZWdhdGl2ZSBpbnRlZ2VyIChmb3IgZXhhbXBsZSwgYSBmcmFjdGlvbmFsIHZhbHVlKSwgdGhlbiAtMiBpcyAKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNvZGUgcG9pbnQgdG8gcXVlcnkKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBjb2RlIHBvaW50LCBvciAtMSBpZiBpdCBoYXMgbm8gbnVtZXJpYyAKKyAgICAgKiB2YWx1ZSwgb3IgLTIgaWYgaXQgaGFzIGEgbnVtZXJpYyB2YWx1ZSB0aGF0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcyBhIAorICAgICAqIG5vbm5lZ2F0aXZlIGludGVnZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXROdW1lcmljVmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gc2xpZ2h0bHkgcHJ1bmVkIHZlcnNpb24gb2YgZ2V0VW5pY29kZU51bWVyaWNWYWx1ZSgpLCBwbHVzIGdldEV1cm9wZWFuRGlnaXQoKQorICAgICAgICBpbnQgcHJvcHMgPSBQUk9QRVJUWV8uZ2V0UHJvcGVydHkoY2gpOworICAgICAgICBpbnQgbnVtZXJpY1R5cGUgPSBnZXROdW1lcmljVHlwZShwcm9wcyk7CisKKyAgICAgICAgaWYobnVtZXJpY1R5cGU9PTApIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRFdXJvcGVhbkRpZ2l0KGNoKTsKKyAgICAgICAgfQorICAgICAgICBpZihudW1lcmljVHlwZT09VUNoYXJhY3RlclByb3BlcnR5Lk5UX0ZSQUNUSU9OIHx8IG51bWVyaWNUeXBlPj1VQ2hhcmFjdGVyUHJvcGVydHkuTlRfQ09VTlQpIHsKKyAgICAgICAgICAgIHJldHVybiAtMjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBudW1lcmljVmFsdWUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0VW5zaWduZWRWYWx1ZShwcm9wcyk7CisKKyAgICAgICAgaWYobnVtZXJpY1R5cGU8TnVtZXJpY1R5cGUuQ09VTlQpIHsKKyAgICAgICAgICAgIC8qIG5vcm1hbCB0eXBlLCB0aGUgdmFsdWUgaXMgc3RvcmVkIGRpcmVjdGx5ICovCisgICAgICAgICAgICByZXR1cm4gbnVtZXJpY1ZhbHVlOworICAgICAgICB9IGVsc2UgLyogbnVtZXJpY1R5cGU9PU5UX0xBUkdFICovIHsKKyAgICAgICAgICAgIC8qIGxhcmdlIHZhbHVlIHdpdGggZXhwb25lbnQgKi8KKyAgICAgICAgICAgIGxvbmcgbnVtVmFsdWU7CisgICAgICAgICAgICBpbnQgbWFudCwgZXhwOworCisgICAgICAgICAgICBtYW50PW51bWVyaWNWYWx1ZT4+TEFSR0VfTUFOVF9TSElGVDsKKyAgICAgICAgICAgIGV4cD1udW1lcmljVmFsdWUmTEFSR0VfRVhQX01BU0s7CisgICAgICAgICAgICBpZihtYW50PT0wKSB7CisgICAgICAgICAgICAgICAgbWFudD0xOworICAgICAgICAgICAgICAgIGV4cCs9TEFSR0VfRVhQX09GRlNFVF9FWFRSQTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtYW50PjkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTI7IC8qIHJlc2VydmVkIG1hbnRpc3NhIHZhbHVlICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4cCs9TEFSR0VfRVhQX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cD45KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBudW1WYWx1ZT1tYW50OworCisgICAgICAgICAgICAvKiBtdWx0aXBseSBieSAxMF5leHAgd2l0aG91dCBtYXRoLmggKi8KKyAgICAgICAgICAgIHdoaWxlKGV4cD49NCkgeworICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAwMC47CisgICAgICAgICAgICAgICAgZXhwLT00OworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoKGV4cCkgeworICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAwLjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAwLjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG51bVZhbHVlPD1JbnRlZ2VyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoaW50KW51bVZhbHVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0IHRoZSBudW1lcmljIHZhbHVlIGZvciBhIFVuaWNvZGUgY29kZSBwb2ludCBhcyBkZWZpbmVkIGluIHRoZSAKKyAgICAgKiBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS48L3A+CisgICAgICogPHA+QSAiZG91YmxlIiByZXR1cm4gdHlwZSBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzb21lIG51bWVyaWMgdmFsdWVzIGFyZSAKKyAgICAgKiBmcmFjdGlvbnMsIG5lZ2F0aXZlLCBvciB0b28gbGFyZ2UgZm9yIGludC48L3A+CisgICAgICogPHA+Rm9yIGNoYXJhY3RlcnMgd2l0aG91dCBhbnkgbnVtZXJpYyB2YWx1ZXMgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIAorICAgICAqIERhdGFiYXNlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIE5PX05VTUVSSUNfVkFMVUUuPC9wPgorICAgICAqIDxwPjxlbT5BUEkgQ2hhbmdlOjwvZW0+IEluIHJlbGVhc2UgMi4yIGFuZCBwcmlvciwgdGhpcyBBUEkgaGFzIGEKKyAgICAgKiByZXR1cm4gdHlwZSBpbnQgYW5kIHJldHVybnMgLTEgd2hlbiB0aGUgYXJndW1lbnQgY2ggZG9lcyBub3QgaGF2ZSBhIAorICAgICAqIGNvcnJlc3BvbmRpbmcgbnVtZXJpYyB2YWx1ZS4gVGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHRvIHN5bmNoIHdpdGggSUNVNEMKKyAgICAgKiA8L3A+CisgICAgICogVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgSUNVNEMgZnVuY3Rpb24gdV9nZXROdW1lcmljVmFsdWUuCisgICAgICogQHBhcmFtIGNoIENvZGUgcG9pbnQgdG8gZ2V0IHRoZSBudW1lcmljIHZhbHVlIGZvci4KKyAgICAgKiBAcmV0dXJuIG51bWVyaWMgdmFsdWUgb2YgY2gsIG9yIE5PX05VTUVSSUNfVkFMVUUgaWYgbm9uZSBpcyBkZWZpbmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIGdldFVuaWNvZGVOdW1lcmljVmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gZXF1aXZhbGVudCB0byBjIHZlcnNpb24gZG91YmxlIHVfZ2V0TnVtZXJpY1ZhbHVlKFVDaGFyMzIgYykKKyAgICAgICAgaW50IHByb3BzID0gUFJPUEVSVFlfLmdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaW50IG51bWVyaWNUeXBlID0gZ2V0TnVtZXJpY1R5cGUocHJvcHMpOworCisgICAgICAgIGlmKG51bWVyaWNUeXBlPT0wIHx8IG51bWVyaWNUeXBlPj1VQ2hhcmFjdGVyUHJvcGVydHkuTlRfQ09VTlQpIHsKKyAgICAgICAgICAgIHJldHVybiBOT19OVU1FUklDX1ZBTFVFOworICAgICAgICB9CisKKyAgICAgICAgaW50IG51bWVyaWNWYWx1ZSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRVbnNpZ25lZFZhbHVlKHByb3BzKTsKKworICAgICAgICBpZihudW1lcmljVHlwZTxOdW1lcmljVHlwZS5DT1VOVCkgeworICAgICAgICAgICAgLyogbm9ybWFsIHR5cGUsIHRoZSB2YWx1ZSBpcyBzdG9yZWQgZGlyZWN0bHkgKi8KKyAgICAgICAgICAgIHJldHVybiBudW1lcmljVmFsdWU7CisgICAgICAgIH0gZWxzZSBpZihudW1lcmljVHlwZT09VUNoYXJhY3RlclByb3BlcnR5Lk5UX0ZSQUNUSU9OKSB7CisgICAgICAgICAgICAvKiBmcmFjdGlvbiB2YWx1ZSAqLworICAgICAgICAgICAgaW50IG51bWVyYXRvciwgZGVub21pbmF0b3I7CisKKyAgICAgICAgICAgIG51bWVyYXRvcj1udW1lcmljVmFsdWU+PkZSQUNUSU9OX05VTV9TSElGVDsKKyAgICAgICAgICAgIGRlbm9taW5hdG9yPShudW1lcmljVmFsdWUmRlJBQ1RJT05fREVOX01BU0spK0ZSQUNUSU9OX0RFTl9PRkZTRVQ7CisKKyAgICAgICAgICAgIGlmKG51bWVyYXRvcj09MCkgeworICAgICAgICAgICAgICAgIG51bWVyYXRvcj0tMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAoZG91YmxlKW51bWVyYXRvci8oZG91YmxlKWRlbm9taW5hdG9yOworICAgICAgICB9IGVsc2UgLyogbnVtZXJpY1R5cGU9PU5UX0xBUkdFICovIHsKKyAgICAgICAgICAgIC8qIGxhcmdlIHZhbHVlIHdpdGggZXhwb25lbnQgKi8KKyAgICAgICAgICAgIGRvdWJsZSBudW1WYWx1ZTsKKyAgICAgICAgICAgIGludCBtYW50LCBleHA7CisKKyAgICAgICAgICAgIG1hbnQ9bnVtZXJpY1ZhbHVlPj5MQVJHRV9NQU5UX1NISUZUOworICAgICAgICAgICAgZXhwPW51bWVyaWNWYWx1ZSZMQVJHRV9FWFBfTUFTSzsKKyAgICAgICAgICAgIGlmKG1hbnQ9PTApIHsKKyAgICAgICAgICAgICAgICBtYW50PTE7CisgICAgICAgICAgICAgICAgZXhwKz1MQVJHRV9FWFBfT0ZGU0VUX0VYVFJBOworICAgICAgICAgICAgfSBlbHNlIGlmKG1hbnQ+OSkgeworICAgICAgICAgICAgICAgIHJldHVybiBOT19OVU1FUklDX1ZBTFVFOyAvKiByZXNlcnZlZCBtYW50aXNzYSB2YWx1ZSAqLworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBleHArPUxBUkdFX0VYUF9PRkZTRVQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG51bVZhbHVlPW1hbnQ7CisKKyAgICAgICAgICAgIC8qIG11bHRpcGx5IGJ5IDEwXmV4cCB3aXRob3V0IG1hdGguaCAqLworICAgICAgICAgICAgd2hpbGUoZXhwPj00KSB7CisgICAgICAgICAgICAgICAgbnVtVmFsdWUqPTEwMDAwLjsKKyAgICAgICAgICAgICAgICBleHAtPTQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzd2l0Y2goZXhwKSB7CisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgbnVtVmFsdWUqPTEwMDAuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMC47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbnVtVmFsdWU7CisgICAgICAgIH0KKyAgICB9CisgIAorICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBkZXByZWNhdGVkIG1ldGhvZC4gIFRoaXMKKyAgICAgKiBtZXRob2Qgd2lsbCBhbHdheXMgcmVtYWluIGRlcHJlY2F0ZWQuICBEZWxlZ2F0ZXMgdG8KKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzU3BhY2UuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGEgc3BhY2UgY2hhcmFjdGVyIGFzCisgICAgICogZGVmaW5lZCBieSBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzU3BhY2UuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDMuNCAoSmF2YSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTcGFjZShpbnQgY2gpIHsKKyAgICAJcmV0dXJuIGNoIDw9IDB4MjAgJiYKKyAgICAJCShjaCA9PSAweDIwIHx8IGNoID09IDB4MDkgfHwgY2ggPT0gMHgwYSB8fCBjaCA9PSAweDBjIHx8IGNoID09IDB4MGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB2YWx1ZSBpbmRpY2F0aW5nIGEgY29kZSBwb2ludCdzIFVuaWNvZGUgY2F0ZWdvcnkuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuZ2V0VHlwZSgpIAorICAgICAqIGV4Y2VwdCBmb3IgdGhlIGFib3ZlIG1lbnRpb25lZCBjb2RlIHBvaW50cyB0aGF0IGhhZCB0aGVpciBjYXRlZ29yeSAKKyAgICAgKiBjaGFuZ2VkLjxicj4KKyAgICAgKiBSZXR1cm4gcmVzdWx0cyBhcmUgY29uc3RhbnRzIGZyb20gdGhlIGludGVyZmFjZSAKKyAgICAgKiA8YSBocmVmPVVDaGFyYWN0ZXJDYXRlZ29yeS5odG1sPlVDaGFyYWN0ZXJDYXRlZ29yeTwvYT48YnI+CisgICAgICogPGVtPk5PVEU6PC9lbT4gdGhlIFVDaGFyYWN0ZXJDYXRlZ29yeSB2YWx1ZXMgYXJlIDxlbT5ub3Q8L2VtPiBjb21wYXRpYmxlIHdpdGgKKyAgICAgKiB0aG9zZSByZXR1cm5lZCBieSBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5cGUuICBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzCisgICAgICogbWF0Y2ggdGhlIG9uZXMgdXNlZCBpbiBJQ1U0Qywgd2hpbGUgamF2YS5sYW5nLkNoYXJhY3RlciB0eXBlCisgICAgICogdmFsdWVzLCB0aG91Z2ggc2ltaWxhciwgc2tpcCB0aGUgdmFsdWUgMTcuPC9wPgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIHR5cGUgaXMgdG8gYmUgZGV0ZXJtaW5lZAorICAgICAqIEByZXR1cm4gY2F0ZWdvcnkgd2hpY2ggaXMgYSB2YWx1ZSBvZiBVQ2hhcmFjdGVyQ2F0ZWdvcnkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRUeXBlKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eShjaCkgJiBVQ2hhcmFjdGVyUHJvcGVydHkuVFlQRV9NQVNLOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIGEgY29kZSBwb2ludCBoYXMgYSBkZWZpbmVkIG1lYW5pbmcgaW4gdGhlIHVwLXRvLWRhdGUgCisgICAgICogVW5pY29kZSBzdGFuZGFyZC4KKyAgICAgKiBFLmcuIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgdGhvdWdoIGFsbG9jYXRlZCBzcGFjZSBhcmUgbm90IGRlZmluZWQgaW4gCisgICAgICogVW5pY29kZSB5ZXQuPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzRGVmaW5lZCgpCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBkZWZpbmVkIGluIHRoZSBtb3N0IAorICAgICAqICAgICAgICBjdXJyZW50IHZlcnNpb24gb2YgVW5pY29kZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGNvZGUgcG9pbnQgaXMgZGVmaW5lZCBpbiB1bmljb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRGVmaW5lZChpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCkgIT0gMDsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIGEgY29kZSBwb2ludCBpcyBhIEphdmEgZGlnaXQuCisgICAgICogPGJyPlRoaXMgbWV0aG9kIG9ic2VydmVzIHRoZSBzZW1hbnRpY3Mgb2YKKyAgICAgKiA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyLmlzRGlnaXQoKTwvY29kZT4uIEl0IHJldHVybnMgdHJ1ZSBmb3IgZGVjaW1hbCAKKyAgICAgKiBkaWdpdHMgb25seS4KKyAgICAgKiA8YnI+PGVtPlNlbWFudGljIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDEuMy4xIGFuZCBwcmlvciwgdGhpcyB0cmVhdGVkIAorICAgICAqIG51bWVyaWMgbGV0dGVycyBhbmQgb3RoZXIgbnVtYmVycyBhcyBkaWdpdHMuIAorICAgICAqIFRoaXMgaGFzIGJlZW4gY2hhbmdlZCB0byBjb25mb3JtIHRvIHRoZSBqYXZhIHNlbWFudGljcy4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBxdWVyeQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGNvZGUgcG9pbnQgaXMgYSBkaWdpdCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNEaWdpdChpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkRFQ0lNQUxfRElHSVRfTlVNQkVSOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGFuIElTTyBjb250cm9sIGNoYXJhY3Rlci4KKyAgICAgKiBBIGNvZGUgcG9pbnQgaXMgY29uc2lkZXJlZCB0byBiZSBhbiBJU08gY29udHJvbCBjaGFyYWN0ZXIgaWYgaXQgaXMgaW4gCisgICAgICogdGhlIHJhbmdlICYjOTJ1MDAwMCB0aHJvdWdoICYjOTJ1MDAxRiBvciBpbiB0aGUgcmFuZ2UgJiM5MnUwMDdGIHRocm91Z2ggCisgICAgICogJiM5MnUwMDlGLjxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0lTT0NvbnRyb2woKQorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBhbiBJU08gY29udHJvbCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIElTTyBjb250cm9sIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0lTT0NvbnRyb2woaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoID49IDAgJiYgY2ggPD0gQVBQTElDQVRJT05fUFJPR1JBTV9DT01NQU5EXyAmJiAKKyAgICAgICAgICAgICgoY2ggPD0gVU5JVF9TRVBBUkFUT1JfKSB8fCAoY2ggPj0gREVMRVRFXykpOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgbGV0dGVyLgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzTGV0dGVyKCkKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBsZXR0ZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIGxldHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xldHRlcihpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuICgoMSA8PCBnZXRUeXBlKGNoKSkgCisgICAgICAgICYgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKSAKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpKSkgIT0gMDsKKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSBsZXR0ZXIgb3IgZGlnaXQuCisgICAgICogTm90ZSB0aGlzIG1ldGhvZCwgdW5saWtlIGphdmEubGFuZy5DaGFyYWN0ZXIgZG9lcyBub3QgcmVnYXJkIHRoZSBhc2NpaSAKKyAgICAgKiBjaGFyYWN0ZXJzICdBJyAtICdaJyBhbmQgJ2EnIC0gJ3onIGFzIGRpZ2l0cy4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBsZXR0ZXIgb3IgYSBkaWdpdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGEgbGV0dGVyIG9yIGEgZGlnaXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZXR0ZXJPckRpZ2l0KGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpIAorICAgICAgICAmICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5ERUNJTUFMX0RJR0lUX05VTUJFUikpKSAhPSAwOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBvdmVycmlkZSBvZiBKYXZhIGRlcHJlY2F0ZWQgbWV0aG9kLiAgVGhpcworICAgICAqIG1ldGhvZCB3aWxsIGFsd2F5cyByZW1haW4gZGVwcmVjYXRlZC4gIERlbGVnYXRlcyB0bworICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNKYXZhSWRlbnRpZmllclN0YXJ0LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBjYW4gc3RhcnQgYSBqYXZhIGlkZW50aWZpZXIuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDMuNCAoSmF2YSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNKYXZhTGV0dGVyKGludCBjcCkgeworCXJldHVybiBpc0phdmFJZGVudGlmaWVyU3RhcnQoY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBkZXByZWNhdGVkIG1ldGhvZC4gIFRoaXMKKyAgICAgKiBtZXRob2Qgd2lsbCBhbHdheXMgcmVtYWluIGRlcHJlY2F0ZWQuICBEZWxlZ2F0ZXMgdG8KKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJQYXJ0LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBjYW4gY29udGludWUgYSBqYXZhIGlkZW50aWZpZXIuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDMuNCAoSmF2YSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNKYXZhTGV0dGVyT3JEaWdpdChpbnQgY3ApIHsKKwlyZXR1cm4gaXNKYXZhSWRlbnRpZmllclBhcnQoY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBtZXRob2QsIGRlbGVnYXRlcyB0bworICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNKYXZhSWRlbnRpZmllclN0YXJ0LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBjYW4gc3RhcnQgYSBqYXZhIGlkZW50aWZpZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNKYXZhSWRlbnRpZmllclN0YXJ0KGludCBjcCkgeworCS8vIG5vdGUsIGRvd25jYXN0IHRvIGNoYXIgZm9yIGpkayAxLjQgY29tcGF0aWJpbGl0eQorCXJldHVybiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJTdGFydCgoY2hhciljcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBvdmVycmlkZSBvZiBKYXZhIG1ldGhvZCwgZGVsZWdhdGVzIHRvCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyUGFydC4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgY2FuIGNvbnRpbnVlIGEgamF2YSBpZGVudGlmaWVyLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSmF2YUlkZW50aWZpZXJQYXJ0KGludCBjcCkgeworCS8vIG5vdGUsIGRvd25jYXN0IHRvIGNoYXIgZm9yIGpkayAxLjQgY29tcGF0aWJpbGl0eQorCXJldHVybiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJQYXJ0KChjaGFyKWNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIGxvd2VyY2FzZSBjaGFyYWN0ZXIuCisgICAgICogVW5pY29kZURhdGEgb25seSBjb250YWlucyBjYXNlIG1hcHBpbmdzIGZvciBjb2RlIHBvaW50cyB3aGVyZSB0aGV5IGFyZSAKKyAgICAgKiBvbmUtdG8tb25lIG1hcHBpbmdzOyBpdCBhbHNvIG9taXRzIGluZm9ybWF0aW9uIGFib3V0IGNvbnRleHQtc2Vuc2l0aXZlIAorICAgICAqIGNhc2UgbWFwcGluZ3MuPGJyPiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBVbmljb2RlIGNhc2UgbWFwcGluZyAKKyAgICAgKiBwbGVhc2UgcmVmZXIgdG8gdGhlIAorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+VGVjaG5pY2FsIHJlcG9ydCAKKyAgICAgKiAjMjE8L2E+Ljxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0xvd2VyQ2FzZSgpCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGluIGxvd2VyY2FzZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGEgbG93ZXJjYXNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xvd2VyQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHdoaXRlIHNwYWNlIGNoYXJhY3Rlci4KKyAgICAgKiBBIGNvZGUgcG9pbnQgaXMgY29uc2lkZXJlZCB0byBiZSBhbiB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpZiBhbmQgb25seQorICAgICAqIGlmIGl0IHNhdGlzZmllcyBvbmUgb2YgdGhlIGZvbGxvd2luZyBjcml0ZXJpYToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBJdCBpcyBhIFVuaWNvZGUgc3BhY2Ugc2VwYXJhdG9yIChjYXRlZ29yeSAiWnMiKSwgYnV0IGlzIG5vdAorICAgICAqICAgICAgYSBuby1icmVhayBzcGFjZSAoJiM5MnUwMEEwIG9yICYjOTJ1MjAyRiBvciAmIzkydUZFRkYpLgorICAgICAqIDxsaT4gSXQgaXMgYSBVbmljb2RlIGxpbmUgc2VwYXJhdG9yIChjYXRlZ29yeSAiWmwiKS4KKyAgICAgKiA8bGk+IEl0IGlzIGEgVW5pY29kZSBwYXJhZ3JhcGggc2VwYXJhdG9yIChjYXRlZ29yeSAiWnAiKS4KKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwOSwgSE9SSVpPTlRBTCBUQUJVTEFUSU9OLiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwQSwgTElORSBGRUVELiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwQiwgVkVSVElDQUwgVEFCVUxBVElPTi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMEMsIEZPUk0gRkVFRC4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMEQsIENBUlJJQUdFIFJFVFVSTi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUMsIEZJTEUgU0VQQVJBVE9SLiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAxRCwgR1JPVVAgU0VQQVJBVE9SLiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAxRSwgUkVDT1JEIFNFUEFSQVRPUi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUYsIFVOSVQgU0VQQVJBVE9SLiAgCisgICAgICogPC91bD4KKyAgICAgKgorICAgICAqIFRoaXMgQVBJIHRyaWVzIHRvIHN5bmNoIHRvIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIEphdmEgQVBJLAorICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKCkuIAorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBhIHdoaXRlIHNwYWNlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHdoaXRlIHNwYWNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1doaXRlc3BhY2UoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gZXhjbHVkZSBuby1icmVhayBzcGFjZXMKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpICYgCisgICAgICAgICAgICAgICAgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5TUEFDRV9TRVBBUkFUT1IpCisgICAgICAgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxJTkVfU0VQQVJBVE9SKQorICAgICAgICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5QQVJBR1JBUEhfU0VQQVJBVE9SKSkpICE9IDAgCisgICAgICAgICYmIChjaCAhPSBOT19CUkVBS19TUEFDRV8pICYmIChjaCAhPSBOQVJST1dfTk9fQlJFQUtfU1BBQ0VfKSAKKyAgICAgICAgJiYgKGNoICE9IFpFUk9fV0lEVEhfTk9fQlJFQUtfU1BBQ0VfKQorICAgICAgICAvLyBUQUIgVlQgTEYgRkYgQ1IgRlMgR1MgUlMgVVMgTkwgYXJlIGFsbCBjb250cm9sIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gdGhhdCBhcmUgd2hpdGUgc3BhY2VzLgorICAgICAgICB8fCAoY2ggPj0gMHg5ICYmIGNoIDw9IDB4ZCkgfHwgKGNoID49IDB4MWMgJiYgY2ggPD0gMHgxZik7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgVW5pY29kZSBzcGVjaWZpZWQgc3BhY2UgCisgICAgICogY2hhcmFjdGVyLCBpLmUuIGlmIGNvZGUgcG9pbnQgaXMgaW4gdGhlIGNhdGVnb3J5IFpzLCBabCBhbmQgWnAuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNTcGFjZUNoYXIoKS4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBzcGFjZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSBzcGFjZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTcGFjZUNoYXIoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpICYgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5TUEFDRV9TRVBBUkFUT1IpIAorICAgICAgICAgICAgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxJTkVfU0VQQVJBVE9SKQorICAgICAgICAgICAgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IpKSkKKyAgICAgICAgIT0gMDsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHRpdGxlY2FzZSBjaGFyYWN0ZXIuCisgICAgICogVW5pY29kZURhdGEgb25seSBjb250YWlucyBjYXNlIG1hcHBpbmdzIGZvciBjb2RlIHBvaW50cyB3aGVyZSB0aGV5IGFyZSAKKyAgICAgKiBvbmUtdG8tb25lIG1hcHBpbmdzOyBpdCBhbHNvIG9taXRzIGluZm9ybWF0aW9uIGFib3V0IGNvbnRleHQtc2Vuc2l0aXZlIAorICAgICAqIGNhc2UgbWFwcGluZ3MuPGJyPgorICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGUgY2FzZSBtYXBwaW5nIHBsZWFzZSByZWZlciB0byB0aGUgCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjIxLz4KKyAgICAgKiBUZWNobmljYWwgcmVwb3J0ICMyMTwvYT4uPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzVGl0bGVDYXNlKCkuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGluIHRpdGxlIGNhc2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgdGl0bGVjYXNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1RpdGxlQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBtYXkgYmUgYW55IHBhcnQgb2YgYSBVbmljb2RlIAorICAgICAqIGlkZW50aWZpZXIgb3RoZXIgdGhhbiB0aGUgc3RhcnRpbmcgY2hhcmFjdGVyLgorICAgICAqIEEgY29kZSBwb2ludCBtYXkgYmUgcGFydCBvZiBhIFVuaWNvZGUgaWRlbnRpZmllciBpZiBhbmQgb25seSBpZiBpdCBpcyAKKyAgICAgKiBvbmUgb2YgdGhlIGZvbGxvd2luZzogCisgICAgICogPHVsPgorICAgICAqIDxsaT4gTHUgVXBwZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTGwgTG93ZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTHQgVGl0bGVjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTG0gTW9kaWZpZXIgbGV0dGVyCisgICAgICogPGxpPiBMbyBPdGhlciBsZXR0ZXIKKyAgICAgKiA8bGk+IE5sIExldHRlciBudW1iZXIKKyAgICAgKiA8bGk+IFBjIENvbm5lY3RpbmcgcHVuY3R1YXRpb24gY2hhcmFjdGVyIAorICAgICAqIDxsaT4gTmQgZGVjaW1hbCBudW1iZXIKKyAgICAgKiA8bGk+IE1jIFNwYWNpbmcgY29tYmluaW5nIG1hcmsgCisgICAgICogPGxpPiBNbiBOb24tc3BhY2luZyBtYXJrIAorICAgICAqIDxsaT4gQ2YgZm9ybWF0dGluZyBjb2RlCisgICAgICogPC91bD4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydCgpLjxicj4KKyAgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGlzIGNhbiBiZSBwYXJ0IG9mIGEgVW5pY29kZSAKKyAgICAgKiAgICAgICAgaWRlbnRpZmllcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGFueSBjaGFyYWN0ZXIgYmVsb25naW5nIGEgdW5pY29kZSAKKyAgICAgKiAgICAgICAgIGlkZW50aWZpZXIgc3VmZml4IGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIC8vIGNhdCA9PSBmb3JtYXQKKyAgICAgICAgcmV0dXJuICgoMSA8PCBnZXRUeXBlKGNoKSkgCisgICAgICAgICYgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKSAKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxFVFRFUl9OVU1CRVIpIAorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05ORUNUT1JfUFVOQ1RVQVRJT04pCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkRFQ0lNQUxfRElHSVRfTlVNQkVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT01CSU5JTkdfU1BBQ0lOR19NQVJLKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLKSkpICE9IDAKKyAgICAgICAgfHwgaXNJZGVudGlmaWVySWdub3JhYmxlKGNoKTsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIHBlcm1pc3NpYmxlIGFzIHRoZSBmaXJzdCAKKyAgICAgKiBjaGFyYWN0ZXIgaW4gYSBVbmljb2RlIGlkZW50aWZpZXIuCisgICAgICogQSBjb2RlIHBvaW50IG1heSBzdGFydCBhIFVuaWNvZGUgaWRlbnRpZmllciBpZiBpdCBpcyBvZiB0eXBlIGVpdGhlciAKKyAgICAgKiA8dWw+IAorICAgICAqIDxsaT4gTHUgVXBwZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTGwgTG93ZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTHQgVGl0bGVjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTG0gTW9kaWZpZXIgbGV0dGVyCisgICAgICogPGxpPiBMbyBPdGhlciBsZXR0ZXIKKyAgICAgKiA8bGk+IE5sIExldHRlciBudW1iZXIKKyAgICAgKiA8L3VsPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiAKKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydCgpLjxicj4KKyAgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGNhbiBzdGFydCBhIFVuaWNvZGUgaWRlbnRpZmllcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYmVsb25naW5nIGEgdW5pY29kZSAKKyAgICAgKiAgICAgICAgICAgICAgaWRlbnRpZmllcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgLyppbnQgY2F0ID0gZ2V0VHlwZShjaCk7Ki8KKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpIAorICAgICAgICAmICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MRVRURVJfTlVNQkVSKSkpICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgc2hvdWxkIGJlIHJlZ2FyZGVkIGFzIGFuIAorICAgICAqIGlnbm9yYWJsZSBjaGFyYWN0ZXIgaW4gYSBVbmljb2RlIGlkZW50aWZpZXIuCisgICAgICogQSBjaGFyYWN0ZXIgaXMgaWdub3JhYmxlIGluIHRoZSBVbmljb2RlIHN0YW5kYXJkIGlmIGl0IGlzIG9mIHRoZSB0eXBlIAorICAgICAqIENmLCBGb3JtYXR0aW5nIGNvZGUuPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiAKKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZSgpLjxicj4KKyAgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBjYW4gYmUgaWdub3JlZCBpbiBhIFVuaWNvZGUgCisgICAgICogICAgICAgIGlkZW50aWZpZXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGlnbm9yYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0lkZW50aWZpZXJJZ25vcmFibGUoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gc2VlIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKCkgb24gcmFuZ2Ugb2YgCisgICAgICAgIC8vIGlnbm9yYWJsZSBjaGFyYWN0ZXJzLgorICAgICAgICBpZiAoY2ggPD0gMHg5ZikgeworICAgICAgICByZXR1cm4gaXNJU09Db250cm9sKGNoKSAKKyAgICAgICAgJiYgISgoY2ggPj0gMHg5ICYmIGNoIDw9IDB4ZCkgCisgICAgICAgICAgICAgfHwgKGNoID49IDB4MWMgJiYgY2ggPD0gMHgxZikpOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVDsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYW4gdXBwZXJjYXNlIGNoYXJhY3Rlci4KKyAgICAgKiBVbmljb2RlRGF0YSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yIGNvZGUgcG9pbnQgd2hlcmUgdGhleSBhcmUgCisgICAgICogb25lLXRvLW9uZSBtYXBwaW5nczsgaXQgYWxzbyBvbWl0cyBpbmZvcm1hdGlvbiBhYm91dCBjb250ZXh0LXNlbnNpdGl2ZSAKKyAgICAgKiBjYXNlIG1hcHBpbmdzLjxicj4gCisgICAgICogRm9yIGxhbmd1YWdlIHNwZWNpZmljIGNhc2UgY29udmVyc2lvbiBiZWhhdmlvciwgdXNlIAorICAgICAqIHRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKS4gPGJyPgorICAgICAqIEZvciBleGFtcGxlLCB0aGUgY2FzZSBjb252ZXJzaW9uIGZvciBkb3QtbGVzcyBpIGFuZCBkb3R0ZWQgSSBpbiBUdXJraXNoLAorICAgICAqIG9yIGZvciBmaW5hbCBzaWdtYSBpbiBHcmVlay4KKyAgICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBVbmljb2RlIGNhc2UgbWFwcGluZyBwbGVhc2UgcmVmZXIgdG8gdGhlIAorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+CisgICAgICogVGVjaG5pY2FsIHJlcG9ydCAjMjE8L2E+Ljxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc1VwcGVyQ2FzZSgpLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBpbiB1cHBlcmNhc2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaXMgYW4gdXBwZXJjYXNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VwcGVyQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogVGhlIGdpdmVuIGNvZGUgcG9pbnQgaXMgbWFwcGVkIHRvIGl0cyBsb3dlcmNhc2UgZXF1aXZhbGVudDsgaWYgdGhlIGNvZGUgCisgICAgICogcG9pbnQgaGFzIG5vIGxvd2VyY2FzZSBlcXVpdmFsZW50LCB0aGUgY29kZSBwb2ludCBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIudG9Mb3dlckNhc2UoKQorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIHNpbXBsZSwgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBtYXBwaW5nLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZSBiZWNhdXNlIHRoZXkgcHJvZHVjZQorICAgICAqIGJldHRlciByZXN1bHRzIGJ5IHdvcmtpbmcgb24gd2hvbGUgc3RyaW5ncy4KKyAgICAgKiBUaGV5IHRha2UgaW50byBhY2NvdW50IHRoZSBzdHJpbmcgY29udGV4dCBhbmQgdGhlIGxhbmd1YWdlIGFuZCBjYW4gbWFwCisgICAgICogdG8gYSByZXN1bHQgc3RyaW5nIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBhcmUgYXBwbGllZCBieSB0aGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucworICAgICAqIHRoYXQgdGFrZSBTdHJpbmcgcGFyYW1ldGVycyByYXRoZXIgdGhhbiBjb2RlIHBvaW50cyAoaW50KS4KKyAgICAgKiBTZWUgYWxzbyB0aGUgVXNlciBHdWlkZSBjaGFwdGVyIG9uIEMvUE9TSVggbWlncmF0aW9uOgorICAgICAqIGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wb3NpeC5odG1sI2Nhc2VfbWFwcGluZ3MKKyAgICAgKgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIGxvd2VyY2FzZSBlcXVpdmFsZW50IGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gdGhlIGxvd2VyY2FzZSBlcXVpdmFsZW50IGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b0xvd2VyQ2FzZShpbnQgY2gpIHsKKyAgICAgICAgcmV0dXJuIGdDc3AudG9sb3dlcihjaCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgYXJndW1lbnQgY29kZSBwb2ludCBhbmQgcmV0dXJucyBhIFN0cmluZyBvYmplY3QgcmVwcmVzZW50aW5nIAorICAgICAqIHRoZSBjb2RlIHBvaW50J3MgdmFsdWUgaW4gVVRGMTYgZm9ybWF0LgorICAgICAqIFRoZSByZXN1bHQgaXMgYSBzdHJpbmcgd2hvc2UgbGVuZ3RoIGlzIDEgZm9yIG5vbi1zdXBwbGVtZW50YXJ5IGNvZGUgCisgICAgICogcG9pbnRzLCAyIG90aGVyd2lzZS48YnI+CisgICAgICogY29tLmlibS5pYm0uaWN1LlVURjE2IGNhbiBiZSB1c2VkIHRvIHBhcnNlIFN0cmluZ3MgZ2VuZXJhdGVkIGJ5IHRoaXMgCisgICAgICogZnVuY3Rpb24uPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLnRvU3RyaW5nKCkKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlIHBvaW50LCBudWxsIGlmIGNvZGUgcG9pbnQgaXMgbm90CisgICAgICogICAgICAgICBkZWZpbmVkIGluIHVuaWNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPCBNSU5fVkFMVUUgfHwgY2ggPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoY2ggPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIFN0cmluZy52YWx1ZU9mKChjaGFyKWNoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjb2RlIHBvaW50IGFyZ3VtZW50IHRvIHRpdGxlY2FzZS4KKyAgICAgKiBJZiBubyB0aXRsZWNhc2UgaXMgYXZhaWxhYmxlLCB0aGUgdXBwZXJjYXNlIGlzIHJldHVybmVkLiBJZiBubyB1cHBlcmNhc2UgCisgICAgICogaXMgYXZhaWxhYmxlLCB0aGUgY29kZSBwb2ludCBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIudG9UaXRsZUNhc2UoKQorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIHNpbXBsZSwgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBtYXBwaW5nLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZSBiZWNhdXNlIHRoZXkgcHJvZHVjZQorICAgICAqIGJldHRlciByZXN1bHRzIGJ5IHdvcmtpbmcgb24gd2hvbGUgc3RyaW5ncy4KKyAgICAgKiBUaGV5IHRha2UgaW50byBhY2NvdW50IHRoZSBzdHJpbmcgY29udGV4dCBhbmQgdGhlIGxhbmd1YWdlIGFuZCBjYW4gbWFwCisgICAgICogdG8gYSByZXN1bHQgc3RyaW5nIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBhcmUgYXBwbGllZCBieSB0aGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucworICAgICAqIHRoYXQgdGFrZSBTdHJpbmcgcGFyYW1ldGVycyByYXRoZXIgdGhhbiBjb2RlIHBvaW50cyAoaW50KS4KKyAgICAgKiBTZWUgYWxzbyB0aGUgVXNlciBHdWlkZSBjaGFwdGVyIG9uIEMvUE9TSVggbWlncmF0aW9uOgorICAgICAqIGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wb3NpeC5odG1sI2Nhc2VfbWFwcGluZ3MKKyAgICAgKgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50ICB3aG9zZSB0aXRsZSBjYXNlIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gdGl0bGVjYXNlIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b1RpdGxlQ2FzZShpbnQgY2gpIHsKKyAgICAgICAgcmV0dXJuIGdDc3AudG90aXRsZShjaCk7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXIgYXJndW1lbnQgdG8gdXBwZXJjYXNlLgorICAgICAqIElmIG5vIHVwcGVyY2FzZSBpcyBhdmFpbGFibGUsIHRoZSBjaGFyYWN0ZXIgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKCkKKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIHRoZSBzaW1wbGUsIHNpbmdsZS1jb2RlIHBvaW50IGNhc2UgbWFwcGluZy4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3Mgc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUgYmVjYXVzZSB0aGV5IHByb2R1Y2UKKyAgICAgKiBiZXR0ZXIgcmVzdWx0cyBieSB3b3JraW5nIG9uIHdob2xlIHN0cmluZ3MuCisgICAgICogVGhleSB0YWtlIGludG8gYWNjb3VudCB0aGUgc3RyaW5nIGNvbnRleHQgYW5kIHRoZSBsYW5ndWFnZSBhbmQgY2FuIG1hcAorICAgICAqIHRvIGEgcmVzdWx0IHN0cmluZyB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3MgYXJlIGFwcGxpZWQgYnkgdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMKKyAgICAgKiB0aGF0IHRha2UgU3RyaW5nIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gY29kZSBwb2ludHMgKGludCkuCisgICAgICogU2VlIGFsc28gdGhlIFVzZXIgR3VpZGUgY2hhcHRlciBvbiBDL1BPU0lYIG1pZ3JhdGlvbjoKKyAgICAgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvcG9zaXguaHRtbCNjYXNlX21hcHBpbmdzCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSB1cHBlcmNhc2UgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB1cHBlcmNhc2UgY29kZSBwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHRvVXBwZXJDYXNlKGludCBjaCkgeworICAgICAgICByZXR1cm4gZ0NzcC50b3VwcGVyKGNoKTsKKyAgICB9CisgICAgICAgCisgICAgLy8gZXh0cmEgbWV0aG9kcyBub3QgaW4gamF2YS5sYW5nLkNoYXJhY3RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGNvZGUgcG9pbnQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3Rlci4KKyAgICAgKiBBIGNvZGUgcG9pbnQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpZiBhbmQgb25seSBpZiBpdCBpcyBncmVhdGVyIAorICAgICAqIHRoYW4gPGEgaHJlZj0jU1VQUExFTUVOVEFSWV9NSU5fVkFMVUU+U1VQUExFTUVOVEFSWV9NSU5fVkFMVUU8L2E+CisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBpbiB0aGUgc3VwcGxlbWVudGFyeSAKKyAgICAgKiAgICAgICAgcGxhbmUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3VwcGxlbWVudGFyeShpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gY2ggPj0gVUNoYXJhY3Rlci5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJiAKKyAgICAgICAgICAgIGNoIDw9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGNvZGUgcG9pbnQgaXMgaW4gdGhlIEJNUCBwbGFuZS4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSBkZXRlcm1pbmVkIGlmIGl0IGlzIG5vdCBhIHN1cHBsZW1lbnRhcnkgCisgICAgICogICAgICAgIGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIG5vdCBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQk1QKGludCBjaCkgCisgICAgeworICAgICAgICByZXR1cm4gKGNoID49IDAgJiYgY2ggPD0gTEFTVF9DSEFSX01BU0tfKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgcHJpbnRhYmxlIGNoYXJhY3RlciAKKyAgICAgKiBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBwcmludGFibGUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaXMgYSBwcmludGFibGUgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUHJpbnRhYmxlKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBjYXQgPSBnZXRUeXBlKGNoKTsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEICYmIAorICAgICAgICBjYXQgIT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wgJiYgCisgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUICYmCisgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UgJiYKKyAgICAgICAgY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUgJiYKKyAgICAgICAgY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5HRU5FUkFMX09USEVSX1RZUEVTKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIG9mIGJhc2UgZm9ybS4KKyAgICAgKiBBIGNvZGUgcG9pbnQgb2YgYmFzZSBmb3JtIGRvZXMgbm90IGdyYXBoaWNhbGx5IGNvbWJpbmUgd2l0aCBwcmVjZWRpbmcgCisgICAgICogY2hhcmFjdGVycywgYW5kIGlzIG5laXRoZXIgYSBjb250cm9sIG5vciBhIGZvcm1hdCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBvZiBiYXNlIGZvcm0KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaXMgb2YgYmFzZSBmb3JtCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQmFzZUZvcm0oaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX05VTUJFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiB8fAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSSyB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRU5DTE9TSU5HX01BUksgfHwKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBCaWRpcmVjdGlvbiBwcm9wZXJ0eSBvZiBhIGNvZGUgcG9pbnQuCisgICAgICogRm9yIGV4YW1wbGUsIDB4MDA0MSAobGV0dGVyIEEpIGhhcyB0aGUgTEVGVF9UT19SSUdIVCBkaXJlY3Rpb25hbCAKKyAgICAgKiBwcm9wZXJ0eS48YnI+CisgICAgICogUmVzdWx0IHJldHVybmVkIGJlbG9uZ3MgdG8gdGhlIGludGVyZmFjZSAKKyAgICAgKiA8YSBocmVmPVVDaGFyYWN0ZXJEaXJlY3Rpb24uaHRtbD5VQ2hhcmFjdGVyRGlyZWN0aW9uPC9hPgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBiZSBkZXRlcm1pbmVkIGl0cyBkaXJlY3Rpb24KKyAgICAgKiBAcmV0dXJuIGRpcmVjdGlvbiBjb25zdGFudCBmcm9tIFVDaGFyYWN0ZXJEaXJlY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RGlyZWN0aW9uKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnQmRwLmdldENsYXNzKGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvZGUgcG9pbnQgaGFzIHRoZSAibWlycm9yZWQiIHByb3BlcnR5LgorICAgICAqIFRoaXMgcHJvcGVydHkgaXMgc2V0IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNvbW1vbmx5IHVzZWQgaW4KKyAgICAgKiBSaWdodC1Uby1MZWZ0IGNvbnRleHRzIGFuZCBuZWVkIHRvIGJlIGRpc3BsYXllZCB3aXRoIGEgIm1pcnJvcmVkIgorICAgICAqIGdseXBoLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIG1pcnJvciBpcyB0byBiZSBkZXRlcm1pbmVkCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGhhcyB0aGUgIm1pcnJvcmVkIiBwcm9wZXJ0eQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc01pcnJvcmVkKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnQmRwLmlzTWlycm9yZWQoY2gpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1hcHMgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IHRvIGEgIm1pcnJvci1pbWFnZSIgY29kZSBwb2ludC4KKyAgICAgKiBGb3IgY29kZSBwb2ludHMgd2l0aCB0aGUgIm1pcnJvcmVkIiBwcm9wZXJ0eSwgaW1wbGVtZW50YXRpb25zIHNvbWV0aW1lcyAKKyAgICAgKiBuZWVkIGEgInBvb3IgbWFuJ3MiIG1hcHBpbmcgdG8gYW5vdGhlciBjb2RlIHBvaW50IHN1Y2ggdGhhdCB0aGUgZGVmYXVsdCAKKyAgICAgKiBnbHlwaCBtYXkgc2VydmUgYXMgdGhlIG1pcnJvci1pbWFnZSBvZiB0aGUgZGVmYXVsdCBnbHlwaCBvZiB0aGUgCisgICAgICogc3BlY2lmaWVkIGNvZGUgcG9pbnQuPGJyPiAKKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGV4dCBjb252ZXJzaW9uIHRvIGFuZCBmcm9tIGNvZGVwYWdlcyB3aXRoIHZpc3VhbCAKKyAgICAgKiBvcmRlciwgYW5kIGZvciBkaXNwbGF5cyB3aXRob3V0IGdseXBoIHNlbGVjdGlvbiBjYXBhYmlsaXRpZXMuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgd2hvc2UgbWlycm9yIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gYW5vdGhlciBjb2RlIHBvaW50IHRoYXQgbWF5IHNlcnZlIGFzIGEgbWlycm9yLWltYWdlIHN1YnN0aXR1dGUsIAorICAgICAqICAgICAgICAgb3IgY2ggaXRzZWxmIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbWFwcGluZyBvciBjaCBkb2VzIG5vdCBoYXZlIHRoZSAKKyAgICAgKiAgICAgICAgICJtaXJyb3JlZCIgcHJvcGVydHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRNaXJyb3IoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdCZHAuZ2V0TWlycm9yKGNoKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIGNvbWJpbmluZyBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGNvZGVwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvbWJpbmluZ0NsYXNzKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IE1JTl9WQUxVRSB8fCBjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXRDb21iaW5pbmdDbGFzcyhjaCk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogQSBjb2RlIHBvaW50IGlzIGlsbGVnYWwgaWYgYW5kIG9ubHkgaWYKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBPdXQgb2YgYm91bmRzLCBsZXNzIHRoYW4gMCBvciBncmVhdGVyIHRoYW4gVUNoYXJhY3Rlci5NQVhfVkFMVUUKKyAgICAgKiA8bGk+IEEgc3Vycm9nYXRlIHZhbHVlLCAweEQ4MDAgdG8gMHhERkZGCisgICAgICogPGxpPiBOb3QtYS1jaGFyYWN0ZXIsIGhhdmluZyB0aGUgZm9ybSAweCB4eEZGRkYgb3IgMHggeHhGRkZFCisgICAgICogPC91bD4KKyAgICAgKiBOb3RlOiBsZWdhbCBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYXNzaWduZWQgaW4gdGhpcyB2ZXJzaW9uIG9mIFVuaWNvZGUuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgbGVnYWwgY29kZSBwb2ludCBieSBpdHNlbGYKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYW5kIG9ubHkgaWYgbGVnYWwuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xlZ2FsKGludCBjaCkgCisgICAgeworICAgICAgICBpZiAoY2ggPCBNSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPCBVVEYxNi5TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChVQ2hhcmFjdGVyVXRpbGl0eS5pc05vbkNoYXJhY3RlcihjaCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGNoIDw9IE1BWF9WQUxVRSk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogQSBzdHJpbmcgaXMgbGVnYWwgaWZmIGFsbCBpdHMgY29kZSBwb2ludHMgYXJlIGxlZ2FsLgorICAgICAqIEEgY29kZSBwb2ludCBpcyBpbGxlZ2FsIGlmIGFuZCBvbmx5IGlmCisgICAgICogPHVsPgorICAgICAqIDxsaT4gT3V0IG9mIGJvdW5kcywgbGVzcyB0aGFuIDAgb3IgZ3JlYXRlciB0aGFuIFVDaGFyYWN0ZXIuTUFYX1ZBTFVFCisgICAgICogPGxpPiBBIHN1cnJvZ2F0ZSB2YWx1ZSwgMHhEODAwIHRvIDB4REZGRgorICAgICAqIDxsaT4gTm90LWEtY2hhcmFjdGVyLCBoYXZpbmcgdGhlIGZvcm0gMHggeHhGRkZGIG9yIDB4IHh4RkZGRQorICAgICAqIDwvdWw+CisgICAgICogTm90ZTogbGVnYWwgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGFzc2lnbmVkIGluIHRoaXMgdmVyc2lvbiBvZiBVbmljb2RlLgorICAgICAqIEBwYXJhbSBzdHIgY29udGFpbmluZyBjb2RlIHBvaW50cyB0byBleGFtaW4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYW5kIG9ubHkgaWYgbGVnYWwuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xlZ2FsKFN0cmluZyBzdHIpIAorICAgIHsKKyAgICAgICAgaW50IHNpemUgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIGludCBjb2RlcG9pbnQ7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgeworICAgICAgICBjb2RlcG9pbnQgPSBVVEYxNi5jaGFyQXQoc3RyLCBpKTsKKyAgICAgICAgaWYgKCFpc0xlZ2FsKGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNTdXBwbGVtZW50YXJ5KGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgIGkgKys7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2ZXJzaW9uIG9mIFVuaWNvZGUgZGF0YSB1c2VkLiAKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIHZlcnNpb24gbnVtYmVyIHVzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldFVuaWNvZGVWZXJzaW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBQUk9QRVJUWV8ubV91bmljb2RlVmVyc2lvbl87CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIG1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGNvZGUgcG9pbnQsIG9yIAorICAgICAqIG51bGwgaWYgdGhlIGNoYXJhY3RlciBpcyB1bmFzc2lnbmVkIG9yIG91dHNpZGUgdGhlIHJhbmdlIAorICAgICAqIFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIGFuZCBVQ2hhcmFjdGVyLk1BWF9WQUxVRSBvciBkb2VzIG5vdCBoYXZlIGEgbmFtZS4KKyAgICAgKiA8YnI+CisgICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIG5hbWUKKyAgICAgKiBAcmV0dXJuIG1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTkFNRV8uZ2V0TmFtZShjaCwgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV9DSEFSX05BTUUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuYW1lcyBmb3IgZWFjaCBvZiB0aGUgY2hhcmFjdGVycyBpbiBhIHN0cmluZworICAgICAqIEBwYXJhbSBzIHN0cmluZyB0byBmb3JtYXQKKyAgICAgKiBAcGFyYW0gc2VwYXJhdG9yIHN0cmluZyB0byBnbyBiZXR3ZWVuIG5hbWVzCisgICAgICogQHJldHVybiBzdHJpbmcgb2YgbmFtZXMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzLCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDEpIHsgLy8gaGFuZGxlIGNvbW1vbiBjYXNlCisgICAgICAgICAgICByZXR1cm4gZ2V0TmFtZShzLmNoYXJBdCgwKSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGNwOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLGkpOworICAgICAgICAgICAgaWYgKGkgIT0gMCkgc2IuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBzYi5hcHBlbmQoVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGVhcmxpZXIgdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjb2RlIAorICAgICAqIHBvaW50LCBvciBudWxsIGlmIHRoZSBjaGFyYWN0ZXIgaXMgdW5hc3NpZ25lZCBvciBvdXRzaWRlIHRoZSByYW5nZSAKKyAgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBhbmQgVUNoYXJhY3Rlci5NQVhfVkFMVUUgb3IgZG9lcyBub3QgaGF2ZSBhIG5hbWUuCisgICAgICogPGJyPgorICAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCisgICAgICogQHJldHVybiB2ZXJzaW9uIDEuMCBVbmljb2RlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lMV8wKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTkFNRV8uZ2V0TmFtZShjaCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+UmV0cmlldmVzIGEgbmFtZSBmb3IgYSB2YWxpZCBjb2RlcG9pbnQuIFVubGlrZSwgZ2V0TmFtZShpbnQpIGFuZAorICAgICAqIGdldE5hbWUxXzAoaW50KSwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYSBuYW1lIGV2ZW4gZm9yIGNvZGVwb2ludHMgdGhhdAorICAgICAqIGFyZSBub3QgYXNzaWduZWQgYSBuYW1lIGluIFVuaWNvZGVEYXRhLnR4dC4KKyAgICAgKiA8L3A+CisgICAgICogVGhlIG5hbWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyLgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IE1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUgaWYgdGhlcmUgaXMgYW55CisgICAgICogPGxpPiBVbmljb2RlIDEuMCBuYW1lIGlmIHRoZXJlIGlzIGFueQorICAgICAqIDxsaT4gRXh0ZW5kZWQgbmFtZSBpbiB0aGUgZm9ybSBvZiAKKyAgICAgKiAgICAgICI8Y29kZXBvaW50X3R5cGUtY29kZXBvaW50X2hleF9kaWdpdHM+Ii4gRS5nLiA8bm9uY2hhcmFjdGVyLWZmZmU+CisgICAgICogPC91bD4KKyAgICAgKiBOb3RlIGNhbGxpbmcgYW55IG1ldGhvZHMgcmVsYXRlZCB0byBjb2RlIHBvaW50IG5hbWVzLCBlLmcuIGdldCpOYW1lKigpIAorICAgICAqIGluY3VycyBhIG9uZS10aW1lIGluaXRpYWxpc2F0aW9uIGNvc3QgdG8gY29uc3RydWN0IHRoZSBuYW1lIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNvZGUgcG9pbnQgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZQorICAgICAqIEByZXR1cm4gYSBuYW1lIGZvciB0aGUgYXJndW1lbnQgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RXh0ZW5kZWROYW1lKGludCBjaCkgCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldE5hbWUoY2gsIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgSVNPIDEwNjQ2IGNvbW1lbnQgZm9yIGEgY2hhcmFjdGVyLgorICAgICAqIFRoZSBJU08gMTA2NDYgY29tbWVudCBpcyBhbiBpbmZvcm1hdGl2ZSBmaWVsZCBpbiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIKKyAgICAgKiBEYXRhYmFzZSAoVW5pY29kZURhdGEudHh0IGZpZWxkIDExKSBhbmQgaXMgZnJvbSB0aGUgSVNPIDEwNjQ2IG5hbWVzIGxpc3QuCisgICAgICogQHBhcmFtIGNoIFRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIElTTyBjb21tZW50LgorICAgICAqICAgICAgICAgICBJdCBtdXN0IGJlIDxjb2RlPjA8PWM8PTB4MTBmZmZmPC9jb2RlPi4KKyAgICAgKiBAcmV0dXJuIFRoZSBJU08gY29tbWVudCwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBjb21tZW50IGZvciB0aGlzIAorICAgICAqICAgICAgICAgY2hhcmFjdGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTT0NvbW1lbnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUgfHwgY2ggPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICB9ICAgIAorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gTkFNRV8uZ2V0R3JvdXBOYW1lKGNoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5JU09fQ09NTUVOVF8pOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNvZGUgcG9pbnQgYnkgaXRzIG1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUgYW5kIAorICAgICAqIHJldHVybiBpdHMgY29kZSBwb2ludCB2YWx1ZS4gQWxsIFVuaWNvZGUgbmFtZXMgYXJlIGluIHVwcGVyY2FzZS48L3A+CisgICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgICogQHBhcmFtIG5hbWUgbW9zdCBjdXJyZW50IFVuaWNvZGUgY2hhcmFjdGVyIG5hbWUgd2hvc2UgY29kZSBwb2ludCBpcyB0byAKKyAgICAgKiAgICAgICAgYmUgcmV0dXJuZWQKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgb3IgLTEgaWYgbmFtZSBpcyBub3QgZm91bmQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDaGFyRnJvbU5hbWUoU3RyaW5nIG5hbWUpCisgICAgeyAgICAgCisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTkFNRV8uZ2V0Q2hhckZyb21OYW1lKAorICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV9DSEFSX05BTUUsIG5hbWUpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBpdHMgdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lIGFuZCByZXR1cm4gCisgICAgICogaXRzIGNvZGUgcG9pbnQgdmFsdWUuIEFsbCBVbmljb2RlIG5hbWVzIGFyZSBpbiB1cHBlcmNhc2UuPC9wPgorICAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICAqIEBwYXJhbSBuYW1lIFVuaWNvZGUgMS4wIGNvZGUgcG9pbnQgbmFtZSB3aG9zZSBjb2RlIHBvaW50IGlzIHRvIAorICAgICAqICAgICAgICAgICAgIHJldHVybmVkCisgICAgICogQHJldHVybiBjb2RlIHBvaW50IG9yIC0xIGlmIG5hbWUgaXMgbm90IGZvdW5kCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckZyb21OYW1lMV8wKFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOQU1FXy5nZXRDaGFyRnJvbU5hbWUoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSwgbmFtZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBlaXRoZXIgaXRzIG5hbWUgYW5kIHJldHVybiBpdHMgY29kZSAKKyAgICAgKiBwb2ludCB2YWx1ZS4gQWxsIFVuaWNvZGUgbmFtZXMgYXJlIGluIHVwcGVyY2FzZS4gCisgICAgICogRXh0ZW5kZWQgbmFtZXMgYXJlIGFsbCBsb3dlcmNhc2UgZXhjZXB0IGZvciBudW1iZXJzIGFuZCBhcmUgY29udGFpbmVkCisgICAgICogd2l0aGluIGFuZ2xlIGJyYWNrZXRzLjwvcD4KKyAgICAgKiBUaGUgbmFtZXMgYXJlIHNlYXJjaGVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXIKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBNb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lIGlmIHRoZXJlIGlzIGFueQorICAgICAqIDxsaT4gVW5pY29kZSAxLjAgbmFtZSBpZiB0aGVyZSBpcyBhbnkKKyAgICAgKiA8bGk+IEV4dGVuZGVkIG5hbWUgaW4gdGhlIGZvcm0gb2YgCisgICAgICogICAgICAiPGNvZGVwb2ludF90eXBlLWNvZGVwb2ludF9oZXhfZGlnaXRzPiIuIEUuZy4gPG5vbmNoYXJhY3Rlci1GRkZFPgorICAgICAqIDwvdWw+CisgICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgICogQHBhcmFtIG5hbWUgY29kZXBvaW50IG5hbWUKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBuYW1lIG9yIC0xIGlmIHRoZSBuYW1lIGlzIG5vdAorICAgICAqICAgICAgICAgZm91bmQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckZyb21FeHRlbmRlZE5hbWUoU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldENoYXJGcm9tTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSwgbmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBVbmljb2RlIG5hbWUgZm9yIGEgZ2l2ZW4gcHJvcGVydHksIGFzIGdpdmVuIGluIHRoZQorICAgICAqIFVuaWNvZGUgZGF0YWJhc2UgZmlsZSBQcm9wZXJ0eUFsaWFzZXMudHh0LiAgTW9zdCBwcm9wZXJ0aWVzCisgICAgICogaGF2ZSBtb3JlIHRoYW4gb25lIG5hbWUuICBUaGUgbmFtZUNob2ljZSBkZXRlcm1pbmVzIHdoaWNoIG9uZQorICAgICAqIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogSW4gYWRkaXRpb24sIHRoaXMgZnVuY3Rpb24gbWFwcyB0aGUgcHJvcGVydHkKKyAgICAgKiBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLIHRvIHRoZSBzeW50aGV0aWMgbmFtZXMgImdjbSIgLworICAgICAqICJHZW5lcmFsX0NhdGVnb3J5X01hc2siLiAgVGhlc2UgbmFtZXMgYXJlIG5vdCBpbgorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICogCisgICAgICogQHBhcmFtIHByb3BlcnR5IFVQcm9wZXJ0eSBzZWxlY3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lQ2hvaWNlIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlIHNlbGVjdG9yIGZvciB3aGljaCBuYW1lCisgICAgICogdG8gZ2V0LiAgQWxsIHByb3BlcnRpZXMgaGF2ZSBhIGxvbmcgbmFtZS4gIE1vc3QgaGF2ZSBhIHNob3J0CisgICAgICogbmFtZSwgYnV0IHNvbWUgZG8gbm90LiAgVW5pY29kZSBhbGxvd3MgZm9yIGFkZGl0aW9uYWwgbmFtZXM7IGlmCisgICAgICogcHJlc2VudCB0aGVzZSB3aWxsIGJlIHJldHVybmVkIGJ5IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcgKyBpLAorICAgICAqIHdoZXJlIGk9MSwgMiwuLi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBuYW1lLCBvciBudWxsIGlmIFVuaWNvZGUgZXhwbGljaXRseSBkZWZpbmVzIG5vIG5hbWUKKyAgICAgKiAoIm4vYSIpIGZvciBhIGdpdmVuIHByb3BlcnR5L25hbWVDaG9pY2UuICBJZiBhIGdpdmVuIG5hbWVDaG9pY2UKKyAgICAgKiB0aHJvd3MgYW4gZXhjZXB0aW9uLCB0aGVuIGFsbCBsYXJnZXIgdmFsdWVzIG9mIG5hbWVDaG9pY2Ugd2lsbAorICAgICAqIHRocm93IGFuIGV4Y2VwdGlvbi4gIElmIG51bGwgaXMgcmV0dXJuZWQgZm9yIGEgZ2l2ZW4KKyAgICAgKiBuYW1lQ2hvaWNlLCB0aGVuIG90aGVyIG5hbWVDaG9pY2UgdmFsdWVzIG1heSByZXR1cm4gbm9uLW51bGwKKyAgICAgKiByZXN1bHRzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIHByb3BlcnR5IG9yCisgICAgICogbmFtZUNob2ljZSBhcmUgaW52YWxpZC4KKyAgICAgKgorICAgICAqIEBzZWUgVVByb3BlcnR5CisgICAgICogQHNlZSBVUHJvcGVydHkuTmFtZUNob2ljZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFByb3BlcnR5TmFtZShpbnQgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIHJldHVybiBQTkFNRVNfLmdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSwgbmFtZUNob2ljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBVUHJvcGVydHkgc2VsZWN0b3IgZm9yIGEgZ2l2ZW4gcHJvcGVydHkgbmFtZSwgYXMKKyAgICAgKiBzcGVjaWZpZWQgaW4gdGhlIFVuaWNvZGUgZGF0YWJhc2UgZmlsZSBQcm9wZXJ0eUFsaWFzZXMudHh0LgorICAgICAqIFNob3J0LCBsb25nLCBhbmQgYW55IG90aGVyIHZhcmlhbnRzIGFyZSByZWNvZ25pemVkLgorICAgICAqCisgICAgICogSW4gYWRkaXRpb24sIHRoaXMgZnVuY3Rpb24gbWFwcyB0aGUgc3ludGhldGljIG5hbWVzICJnY20iIC8KKyAgICAgKiAiR2VuZXJhbF9DYXRlZ29yeV9NYXNrIiB0byB0aGUgcHJvcGVydHkKKyAgICAgKiBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLLiAgVGhlc2UgbmFtZXMgYXJlIG5vdCBpbgorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlBbGlhcyB0aGUgcHJvcGVydHkgbmFtZSB0byBiZSBtYXRjaGVkLiAgVGhlIG5hbWUKKyAgICAgKiBpcyBjb21wYXJlZCB1c2luZyAibG9vc2UgbWF0Y2hpbmciIGFzIGRlc2NyaWJlZCBpbgorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgVVByb3BlcnR5IGVudW0uCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgcHJvcGVydHlBbGlhcworICAgICAqIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRQcm9wZXJ0eUVudW0oU3RyaW5nIHByb3BlcnR5QWxpYXMpIHsKKyAgICAgICAgcmV0dXJuIFBOQU1FU18uZ2V0UHJvcGVydHlFbnVtKHByb3BlcnR5QWxpYXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgVW5pY29kZSBuYW1lIGZvciBhIGdpdmVuIHByb3BlcnR5IHZhbHVlLCBhcyBnaXZlbiBpbgorICAgICAqIHRoZSBVbmljb2RlIGRhdGFiYXNlIGZpbGUgUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0LiAgTW9zdAorICAgICAqIHZhbHVlcyBoYXZlIG1vcmUgdGhhbiBvbmUgbmFtZS4gIFRoZSBuYW1lQ2hvaWNlIGRldGVybWluZXMKKyAgICAgKiB3aGljaCBvbmUgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBOb3RlOiBTb21lIG9mIHRoZSBuYW1lcyBpbiBQcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQgY2FuIG9ubHkgYmUKKyAgICAgKiByZXRyaWV2ZWQgdXNpbmcgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSywgbm90CisgICAgICogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkuICBUaGVzZSBpbmNsdWRlOiAiQyIgLyAiT3RoZXIiLCAiTCIgLworICAgICAqICJMZXR0ZXIiLCAiTEMiIC8gIkNhc2VkX0xldHRlciIsICJNIiAvICJNYXJrIiwgIk4iIC8gIk51bWJlciIsICJQIgorICAgICAqIC8gIlB1bmN0dWF0aW9uIiwgIlMiIC8gIlN5bWJvbCIsIGFuZCAiWiIgLyAiU2VwYXJhdG9yIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBVUHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQuCisgICAgICogVVByb3BlcnR5LklOVF9TVEFSVCAmbHQ7PSBwcm9wZXJ0eSAmbHQ7IFVQcm9wZXJ0eS5JTlRfTElNSVQgb3IKKyAgICAgKiBVUHJvcGVydHkuQklOQVJZX1NUQVJUICZsdDs9IHByb3BlcnR5ICZsdDsgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCBvcgorICAgICAqIFVQcm9wZXJ0eS5NQVNLX1NUQVJUICZsdDsgPSBwcm9wZXJ0eSAmbHQ7IFVQcm9wZXJ0eS5NQVNLX0xJTUlULgorICAgICAqIElmIG91dCBvZiByYW5nZSwgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBzZWxlY3RvciBmb3IgYSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHByb3BlcnR5LiAgSW4KKyAgICAgKiBnZW5lcmFsLCB2YWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSAwIHVwIHRvIHNvbWUgbWF4aW11bS4gIFRoZXJlCisgICAgICogYXJlIGEgZmV3IGV4Y2VwdGlvbnM6ICgxLikgVVByb3BlcnR5LkJMT0NLIHZhbHVlcyBiZWdpbiBhdCB0aGUKKyAgICAgKiBub24temVybyB2YWx1ZSBCQVNJQ19MQVRJTi5nZXRJRCgpLiAgKDIuKQorICAgICAqIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTIHZhbHVlcyBhcmUgbm90IGNvbnRpZ3VvdXMKKyAgICAgKiBhbmQgcmFuZ2UgZnJvbSAwLi4yNDAuICAoMy4pICBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLIHZhbHVlcworICAgICAqIGFyZSBtYXNrIHZhbHVlcyBwcm9kdWNlZCBieSBsZWZ0LXNoaWZ0aW5nIDEgYnkKKyAgICAgKiBVQ2hhcmFjdGVyLmdldFR5cGUoKS4gIFRoaXMgYWxsb3dzIGdyb3VwZWQgY2F0ZWdvcmllcyBzdWNoIGFzCisgICAgICogWzpMOl0gdG8gYmUgcmVwcmVzZW50ZWQuICBNYXNrIHZhbHVlcyBhcmUgbm9uLWNvbnRpZ3VvdXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZUNob2ljZSBVUHJvcGVydHkuTmFtZUNob2ljZSBzZWxlY3RvciBmb3Igd2hpY2ggbmFtZQorICAgICAqIHRvIGdldC4gIEFsbCB2YWx1ZXMgaGF2ZSBhIGxvbmcgbmFtZS4gIE1vc3QgaGF2ZSBhIHNob3J0IG5hbWUsCisgICAgICogYnV0IHNvbWUgZG8gbm90LiAgVW5pY29kZSBhbGxvd3MgZm9yIGFkZGl0aW9uYWwgbmFtZXM7IGlmCisgICAgICogcHJlc2VudCB0aGVzZSB3aWxsIGJlIHJldHVybmVkIGJ5IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcgKyBpLAorICAgICAqIHdoZXJlIGk9MSwgMiwuLi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBuYW1lLCBvciBudWxsIGlmIFVuaWNvZGUgZXhwbGljaXRseSBkZWZpbmVzIG5vIG5hbWUKKyAgICAgKiAoIm4vYSIpIGZvciBhIGdpdmVuIHByb3BlcnR5L3ZhbHVlL25hbWVDaG9pY2UuICBJZiBhIGdpdmVuCisgICAgICogbmFtZUNob2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB0aGVuIGFsbCBsYXJnZXIgdmFsdWVzIG9mCisgICAgICogbmFtZUNob2ljZSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4gIElmIG51bGwgaXMgcmV0dXJuZWQgZm9yIGEKKyAgICAgKiBnaXZlbiBuYW1lQ2hvaWNlLCB0aGVuIG90aGVyIG5hbWVDaG9pY2UgdmFsdWVzIG1heSByZXR1cm4KKyAgICAgKiBub24tbnVsbCByZXN1bHRzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIHByb3BlcnR5LCB2YWx1ZSwKKyAgICAgKiBvciBuYW1lQ2hvaWNlIGFyZSBpbnZhbGlkLgorICAgICAqCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAc2VlIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZU5hbWUoaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmFtZUNob2ljZSkgCisgICAgeworICAgICAgICBpZiAocHJvcGVydHkgPT0gVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MgCisgICAgICAgICAgICAmJiB2YWx1ZSA+PSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykKKyAgICAgICAgICAgICYmIHZhbHVlIDw9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKQorICAgICAgICAgICAgJiYgbmFtZUNob2ljZSA+PSAwICYmIG5hbWVDaG9pY2UgPCBVUHJvcGVydHkuTmFtZUNob2ljZS5DT1VOVCkgeworICAgICAgICAgICAgLy8gdGhpcyBpcyBoYXJkIGNvZGVkIGZvciB0aGUgdmFsaWQgY2MKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0IGRvZXMgbm90IGNvbnRhaW4gYWxsIG9mIHRoZW0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBOQU1FU18uZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcGVydHksIHZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBQTkFNRVNfLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BlcnR5LCB2YWx1ZSwgbmFtZUNob2ljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpbnRlZ2VyIGZvciBhIGdpdmVuIHZhbHVlIG5hbWUsIGFzCisgICAgICogc3BlY2lmaWVkIGluIHRoZSBVbmljb2RlIGRhdGFiYXNlIGZpbGUgUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0LgorICAgICAqIFNob3J0LCBsb25nLCBhbmQgYW55IG90aGVyIHZhcmlhbnRzIGFyZSByZWNvZ25pemVkLgorICAgICAqCisgICAgICogTm90ZTogU29tZSBvZiB0aGUgbmFtZXMgaW4gUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0IHdpbGwgb25seSBiZQorICAgICAqIHJlY29nbml6ZWQgd2l0aCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLLCBub3QKKyAgICAgKiBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWS4gIFRoZXNlIGluY2x1ZGU6ICJDIiAvICJPdGhlciIsICJMIiAvCisgICAgICogIkxldHRlciIsICJMQyIgLyAiQ2FzZWRfTGV0dGVyIiwgIk0iIC8gIk1hcmsiLCAiTiIgLyAiTnVtYmVyIiwgIlAiCisgICAgICogLyAiUHVuY3R1YXRpb24iLCAiUyIgLyAiU3ltYm9sIiwgYW5kICJaIiAvICJTZXBhcmF0b3IiLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5IFVQcm9wZXJ0eSBzZWxlY3RvciBjb25zdGFudC4KKyAgICAgKiBVUHJvcGVydHkuSU5UX1NUQVJUICZsdDs9IHByb3BlcnR5ICZsdDsgVVByb3BlcnR5LklOVF9MSU1JVCBvcgorICAgICAqIFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJmx0Oz0gcHJvcGVydHkgJmx0OyBVUHJvcGVydHkuQklOQVJZX0xJTUlUIG9yCisgICAgICogVVByb3BlcnR5Lk1BU0tfU1RBUlQgJmx0OyA9IHByb3BlcnR5ICZsdDsgVVByb3BlcnR5Lk1BU0tfTElNSVQuCisgICAgICogT25seSB0aGVzZSBwcm9wZXJ0aWVzIGNhbiBiZSBlbnVtZXJhdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlQWxpYXMgdGhlIHZhbHVlIG5hbWUgdG8gYmUgbWF0Y2hlZC4gIFRoZSBuYW1lIGlzCisgICAgICogY29tcGFyZWQgdXNpbmcgImxvb3NlIG1hdGNoaW5nIiBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiBQcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgdmFsdWUgaW50ZWdlci4gIE5vdGU6IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZCisgICAgICogdmFsdWVzIGFyZSBtYXNrIHZhbHVlcyBwcm9kdWNlZCBieSBsZWZ0LXNoaWZ0aW5nIDEgYnkKKyAgICAgKiBVQ2hhcmFjdGVyLmdldFR5cGUoKS4gIFRoaXMgYWxsb3dzIGdyb3VwZWQgY2F0ZWdvcmllcyBzdWNoIGFzCisgICAgICogWzpMOl0gdG8gYmUgcmVwcmVzZW50ZWQuCisgICAgICoKKyAgICAgKiBAc2VlIFVQcm9wZXJ0eQorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHByb3BlcnR5IGlzIG5vdCBhIHZhbGlkIFVQcm9wZXJ0eQorICAgICAqICAgICAgICAgc2VsZWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRQcm9wZXJ0eVZhbHVlRW51bShpbnQgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQWxpYXMpIHsKKyAgICAgICAgcmV0dXJuIFBOQU1FU18uZ2V0UHJvcGVydHlWYWx1ZUVudW0ocHJvcGVydHksIHZhbHVlQWxpYXMpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjb2RlIHBvaW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR3byBVVEYxNiBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBsZWFkIHRoZSBsZWFkIGNoYXIKKyAgICAgKiBAcGFyYW0gdHJhaWwgdGhlIHRyYWlsIGNoYXIKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgaWYgc3Vycm9nYXRlIGNoYXJhY3RlcnMgYXJlIHZhbGlkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IGNoYXJhY3RlcnMgZG8KKyAgICAgKiAgICAgICAgICAgIG5vdCBmb3JtIGEgdmFsaWQgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29kZVBvaW50KGNoYXIgbGVhZCwgY2hhciB0cmFpbCkgCisgICAgeworICAgICAgICBpZiAobGVhZCA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgJiYgCisgICAgICAgIGxlYWQgPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmCisgICAgICAgICAgICB0cmFpbCA+PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFICYmIAorICAgICAgICB0cmFpbCA8PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwgdHJhaWwpOworICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3Vycm9nYXRlIGNoYXJhY3RlcnMiKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIFVURjE2IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY2hhcjE2IHRoZSBVVEYxNiBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgaWYgYXJndW1lbnQgaXMgYSB2YWxpZCBjaGFyYWN0ZXIuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gY2hhcjE2IGlzIG5vdCBhIHZhbGlkCisgICAgICogICAgICAgICAgICBjb2RlcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb2RlUG9pbnQoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZWdhbChjaGFyMTYpKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcjE2OworICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY29kZXBvaW50Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVUNhc2VQcm9wcy5Db250ZXh0SXRlcmF0b3IsIGl0ZXJhdGVzIG92ZXIgYSBTdHJpbmcuCisgICAgICogU2VlIHVzdHJjYXNlLmMvdXRmMTZfY2FzZUNvbnRleHRJdGVyYXRvcigpLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFN0cmluZ0NvbnRleHRJdGVyYXRvciBpbXBsZW1lbnRzIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgICAgKiBAcGFyYW0gcyBTdHJpbmcgdG8gaXRlcmF0ZSBvdmVyLiAKKyAgICAgICAgICovCisgICAgICAgIFN0cmluZ0NvbnRleHRJdGVyYXRvcihTdHJpbmcgcykgeworICAgICAgICAgICAgdGhpcy5zPXM7CisgICAgICAgICAgICBsaW1pdD1zLmxlbmd0aCgpOworICAgICAgICAgICAgY3BTdGFydD1jcExpbWl0PWluZGV4PTA7CisgICAgICAgICAgICBkaXI9MDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGl0ZXJhdGlvbiBsaW1pdCBmb3IgbmV4dENhc2VNYXBDUCgpIHRvIGFuIGluZGV4IHdpdGhpbiB0aGUgc3RyaW5nLgorICAgICAgICAgKiBJZiB0aGUgbGltaXQgcGFyYW1ldGVyIGlzIG5lZ2F0aXZlIG9yIHBhc3QgdGhlIHN0cmluZywgdGhlbiB0aGUKKyAgICAgICAgICogc3RyaW5nIGxlbmd0aCBpcyByZXN0b3JlZCBhcyB0aGUgaXRlcmF0aW9uIGxpbWl0LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGxpbWl0IGRvZXMgbm90IGFmZmVjdCB0aGUgbmV4dCgpIGZ1bmN0aW9uIHdoaWNoIGFsd2F5cworICAgICAgICAgKiBpdGVyYXRlcyB0byB0aGUgdmVyeSBlbmQgb2YgdGhlIHN0cmluZy4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIGxpbSBUaGUgaXRlcmF0aW9uIGxpbWl0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0TGltaXQoaW50IGxpbSkgeworICAgICAgICAgICAgaWYoMDw9bGltICYmIGxpbTw9cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGxpbWl0PWxpbTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGltaXQ9cy5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJdGVyYXRlIGZvcndhcmQgdGhyb3VnaCB0aGUgc3RyaW5nIHRvIGZldGNoIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgICAgICogdG8gYmUgY2FzZS1tYXBwZWQsIGFuZCBzZXQgdGhlIGNvbnRleHQgaW5kZXhlcyBmb3IgaXQuCisgICAgICAgICAqIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiwgdG8gc2F2ZSBvbiBmdW5jdGlvbiBjYWxscyBhbmQgcmVkdW5kYW50CisgICAgICAgICAqIHRlc3RzLiBDb21iaW5lcyBVVEYxNi5jaGFyQXQoKSwgVVRGMTYuZ2V0Q2hhckNvdW50KCksIGFuZCBzZXRJbmRleCgpLgorICAgICAgICAgKgorICAgICAgICAgKiBXaGVuIHRoZSBpdGVyYXRpb24gbGltaXQgaXMgcmVhY2hlZCAoYW5kIC0xIGlzIHJldHVybmVkKSwKKyAgICAgICAgICogZ2V0Q1BTdGFydCgpIHdpbGwgYmUgYXQgdGhlIGl0ZXJhdGlvbiBsaW1pdC4KKyAgICAgICAgICoKKyAgICAgICAgICogSXRlcmF0aW9uIHdpdGggbmV4dCgpIGRvZXMgbm90IGFmZmVjdCB0aGUgcG9zaXRpb24gZm9yIG5leHRDYXNlTWFwQ1AoKS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHJldHVybiBUaGUgbmV4dCBjb2RlIHBvaW50IHRvIGJlIGNhc2UtbWFwcGVkLCBvciA8MCB3aGVuIHRoZSBpdGVyYXRpb24gaXMgZG9uZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbmV4dENhc2VNYXBDUCgpIHsKKyAgICAgICAgICAgIGNwU3RhcnQ9Y3BMaW1pdDsKKyAgICAgICAgICAgIGlmKGNwTGltaXQ8bGltaXQpIHsKKyAgICAgICAgICAgICAgICBpbnQgYz1zLmNoYXJBdChjcExpbWl0KyspOworICAgICAgICAgICAgICAgIGlmKFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRTw9YyB8fCBjPD1VVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYzI7CisgICAgICAgICAgICAgICAgICAgIGlmKCBjPD1VVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYgY3BMaW1pdDxsaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTw9KGMyPXMuY2hhckF0KGNwTGltaXQpKSAmJiBjMjw9VVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgKytjcExpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgYz1VQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgoY2hhciljLCBjMik7CisgICAgICAgICAgICAgICAgICAgIC8vIGVsc2UgdW5wYWlyZWQgc3Vycm9nYXRlIGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGVsc2UgQk1QIGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXQgdGhlIHN0YXJ0IG9mIHRoZSBjb2RlIHBvaW50IHRoYXQgd2FzIGxhc3QgcmV0dXJuZWQKKyAgICAgICAgICogYnkgbmV4dENhc2VNYXBDUCgpLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRDUFN0YXJ0KCkgeworICAgICAgICAgICAgcmV0dXJuIGNwU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBpbXBsZW1lbnQgVUNhc2VQcm9wcy5Db250ZXh0SXRlcmF0b3IKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IGRpcikgeworICAgICAgICAgICAgaWYoZGlyPjApIHsKKyAgICAgICAgICAgICAgICAvKiByZXNldCBmb3IgZm9yd2FyZCBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgICAgICB0aGlzLmRpcj0xOworICAgICAgICAgICAgICAgIGluZGV4PWNwTGltaXQ7CisgICAgICAgICAgICB9IGVsc2UgaWYoZGlyPDApIHsKKyAgICAgICAgICAgICAgICAvKiByZXNldCBmb3IgYmFja3dhcmQgaXRlcmF0aW9uICovCisgICAgICAgICAgICAgICAgdGhpcy5kaXI9LTE7CisgICAgICAgICAgICAgICAgaW5kZXg9Y3BTdGFydDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gbm90IGEgdmFsaWQgZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgdGhpcy5kaXI9MDsKKyAgICAgICAgICAgICAgICBpbmRleD0wOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICAgICAgaW50IGM7CisKKyAgICAgICAgICAgIGlmKGRpcj4wICYmIGluZGV4PHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjPVVURjE2LmNoYXJBdChzLCBpbmRleCk7CisgICAgICAgICAgICAgICAgaW5kZXgrPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0gZWxzZSBpZihkaXI8MCAmJiBpbmRleD4wKSB7CisgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQocywgaW5kZXgtMSk7CisgICAgICAgICAgICAgICAgaW5kZXgtPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHZhcmlhYmxlcworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIHM7CisgICAgICAgIHByb3RlY3RlZCBpbnQgaW5kZXgsIGxpbWl0LCBjcFN0YXJ0LCBjcExpbWl0OworICAgICAgICBwcm90ZWN0ZWQgaW50IGRpcjsgLy8gMD1pbml0aWFsIHN0YXRlICA+MD1mb3J3YXJkICA8MD1iYWNrd2FyZAorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdXBwZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4gCisgICAgICogQ2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIHVwcGVyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1VwcGVyQ2FzZShTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvVXBwZXJDYXNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBzdHIpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4gCisgICAgICogQ2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlCisgICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvTG93ZXJDYXNlKFN0cmluZyBzdHIpCisgICAgeworICAgICAgICByZXR1cm4gdG9Mb3dlckNhc2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIHN0cik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkdldHMgdGhlIHRpdGxlY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuPC9wPgorICAgICAqIDxwPlBvc2l0aW9uIGZvciB0aXRsZWNhc2luZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBhcmd1bWVudCBicmVhayAKKyAgICAgKiBpdGVyYXRvciwgaGVuY2UgdGhlIHVzZXIgY2FuIGN1c3RvbWl6ZWQgaGlzIGJyZWFrIGl0ZXJhdG9yIGZvciAKKyAgICAgKiBhIHNwZWNpYWxpemVkIHRpdGxlY2FzaW5nLiBJbiB0aGlzIGNhc2Ugb25seSB0aGUgZm9yd2FyZCBpdGVyYXRpb24gCisgICAgICogbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgICogSWYgdGhlIGJyZWFrIGl0ZXJhdG9yIHBhc3NlZCBpbiBpcyBudWxsLCB0aGUgZGVmYXVsdCBVbmljb2RlIGFsZ29yaXRobQorICAgICAqIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRpdGxlY2FzZSBwb3NpdGlvbnMuCisgICAgICogPC9wPgorICAgICAqIDxwPk9ubHkgcG9zaXRpb25zIHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIHRpdGxlIGNhc2VkLAorICAgICAqIGNoYXJhY3RlciBpbiBiZXR3ZWVuIHRoZSBwb3NpdGlvbnMgd2lsbCBhbGwgYmUgaW4gbG93ZXIgY2FzZS48L3A+CisgICAgICogPHA+Q2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlPC9wPgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcGFyYW0gYnJlYWtpdGVyIGJyZWFrIGl0ZXJhdG9yIHRvIGRldGVybWluZSB0aGUgcG9zaXRpb25zIGluIHdoaWNoCisgICAgICogICAgICAgIHRoZSBjaGFyYWN0ZXIgc2hvdWxkIGJlIHRpdGxlIGNhc2VkLgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvVGl0bGVDYXNlKFN0cmluZyBzdHIsIEJyZWFrSXRlcmF0b3IgYnJlYWtpdGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvVGl0bGVDYXNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBzdHIsIGJyZWFraXRlcik7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAgKiBDYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIHVwcGVyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1VwcGVyQ2FzZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvVXBwZXJDYXNlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIHN0cik7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAgKiBDYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIHVwcGVyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvVXBwZXJDYXNlKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIFN0cmluZ0NvbnRleHRJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ0NvbnRleHRJdGVyYXRvcihzdHIpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIubGVuZ3RoKCkpOworICAgICAgICBpbnRbXSBsb2NDYWNoZSA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBjOworCisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKworICAgICAgICB3aGlsZSgoYz1pdGVyLm5leHRDYXNlTWFwQ1AoKSk+PTApIHsKKyAgICAgICAgICAgIGM9Z0NzcC50b0Z1bGxVcHBlcihjLCBpdGVyLCByZXN1bHQsIGxvY2FsZSwgbG9jQ2FjaGUpOworCisgICAgICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCAqLworICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgLyogKG5vdCkgb3JpZ2luYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIGM9fmM7CisgICAgICAgICAgICB9IGVsc2UgaWYoYzw9VUNhc2VQcm9wcy5NQVhfU1RSSU5HX0xFTkdUSCkgeworICAgICAgICAgICAgICAgIC8qIG1hcHBpbmcgYWxyZWFkeSBhcHBlbmRlZCB0byByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIC8qIH0gZWxzZSB7IGFwcGVuZCBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAgKiBDYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlCisgICAgICogQHBhcmFtIGxvY2FsZSB3aGljaCBzdHJpbmcgaXMgdG8gYmUgY29udmVydGVkIGluCisgICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvTG93ZXJDYXNlKExvY2FsZSBsb2NhbGUsIFN0cmluZyBzdHIpCisgICAgeworICAgICAgICByZXR1cm4gdG9Mb3dlckNhc2UoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSwgc3RyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuIAorICAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGFyZ3VtZW50IGxvY2FsZSBhbmQgY29udGV4dC1zZW5zaXRpdmUKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHJldHVybiBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0xvd2VyQ2FzZShVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0cikgeworICAgICAgICBTdHJpbmdDb250ZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBTdHJpbmdDb250ZXh0SXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgaW50W10gbG9jQ2FjaGUgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgYzsKKworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIGxvY0NhY2hlWzBdPTA7CisKKyAgICAgICAgd2hpbGUoKGM9aXRlci5uZXh0Q2FzZU1hcENQKCkpPj0wKSB7CisgICAgICAgICAgICBjPWdDc3AudG9GdWxsTG93ZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgIGlmKGM8MCkgeworICAgICAgICAgICAgICAgIC8qIChub3QpIG9yaWdpbmFsIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICBjPX5jOworICAgICAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAvKiBtYXBwaW5nIGFscmVhZHkgYXBwZW5kZWQgdG8gcmVzdWx0ICovCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAvKiB9IGVsc2UgeyBhcHBlbmQgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldHMgdGhlIHRpdGxlY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuPC9wPgorICAgICAqIDxwPlBvc2l0aW9uIGZvciB0aXRsZWNhc2luZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBhcmd1bWVudCBicmVhayAKKyAgICAgKiBpdGVyYXRvciwgaGVuY2UgdGhlIHVzZXIgY2FuIGN1c3RvbWl6ZWQgaGlzIGJyZWFrIGl0ZXJhdG9yIGZvciAKKyAgICAgKiBhIHNwZWNpYWxpemVkIHRpdGxlY2FzaW5nLiBJbiB0aGlzIGNhc2Ugb25seSB0aGUgZm9yd2FyZCBpdGVyYXRpb24gCisgICAgICogbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgICogSWYgdGhlIGJyZWFrIGl0ZXJhdG9yIHBhc3NlZCBpbiBpcyBudWxsLCB0aGUgZGVmYXVsdCBVbmljb2RlIGFsZ29yaXRobQorICAgICAqIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRpdGxlY2FzZSBwb3NpdGlvbnMuCisgICAgICogPC9wPgorICAgICAqIDxwPk9ubHkgcG9zaXRpb25zIHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIHRpdGxlIGNhc2VkLAorICAgICAqIGNoYXJhY3RlciBpbiBiZXR3ZWVuIHRoZSBwb3NpdGlvbnMgd2lsbCBhbGwgYmUgaW4gbG93ZXIgY2FzZS48L3A+CisgICAgICogPHA+Q2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgYXJndW1lbnQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZTwvcD4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIGJyZWFraXRlciBicmVhayBpdGVyYXRvciB0byBkZXRlcm1pbmUgdGhlIHBvc2l0aW9ucyBpbiB3aGljaAorICAgICAqICAgICAgICB0aGUgY2hhcmFjdGVyIHNob3VsZCBiZSB0aXRsZSBjYXNlZC4KKyAgICAgKiBAcmV0dXJuIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1RpdGxlQ2FzZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikKKyAgICB7CisgICAgICAgIHJldHVybiB0b1RpdGxlQ2FzZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLCBzdHIsIGJyZWFraXRlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+R2V0cyB0aGUgdGl0bGVjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy48L3A+CisgICAgICogPHA+UG9zaXRpb24gZm9yIHRpdGxlY2FzaW5nIGlzIGRldGVybWluZWQgYnkgdGhlIGFyZ3VtZW50IGJyZWFrIAorICAgICAqIGl0ZXJhdG9yLCBoZW5jZSB0aGUgdXNlciBjYW4gY3VzdG9taXplZCBoaXMgYnJlYWsgaXRlcmF0b3IgZm9yIAorICAgICAqIGEgc3BlY2lhbGl6ZWQgdGl0bGVjYXNpbmcuIEluIHRoaXMgY2FzZSBvbmx5IHRoZSBmb3J3YXJkIGl0ZXJhdGlvbiAKKyAgICAgKiBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZC4KKyAgICAgKiBJZiB0aGUgYnJlYWsgaXRlcmF0b3IgcGFzc2VkIGluIGlzIG51bGwsIHRoZSBkZWZhdWx0IFVuaWNvZGUgYWxnb3JpdGhtCisgICAgICogd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdGl0bGVjYXNlIHBvc2l0aW9ucy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+T25seSBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUgdGl0bGUgY2FzZWQsCisgICAgICogY2hhcmFjdGVyIGluIGJldHdlZW4gdGhlIHBvc2l0aW9ucyB3aWxsIGFsbCBiZSBpbiBsb3dlciBjYXNlLjwvcD4KKyAgICAgKiA8cD5DYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlPC9wPgorICAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcGFyYW0gdGl0bGVJdGVyIGJyZWFrIGl0ZXJhdG9yIHRvIGRldGVybWluZSB0aGUgcG9zaXRpb25zIGluIHdoaWNoCisgICAgICogICAgICAgIHRoZSBjaGFyYWN0ZXIgc2hvdWxkIGJlIHRpdGxlIGNhc2VkLgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9UaXRsZUNhc2UoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBzdHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgdGl0bGVJdGVyKSB7CisgICAgICAgIFN0cmluZ0NvbnRleHRJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ0NvbnRleHRJdGVyYXRvcihzdHIpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIubGVuZ3RoKCkpOworICAgICAgICBpbnRbXSBsb2NDYWNoZSA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBjLCBzcmNMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICBsb2NDYWNoZVswXT0wOworCisgICAgICAgIGlmKHRpdGxlSXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aXRsZUl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHRpdGxlSXRlci5zZXRUZXh0KHN0cik7CisKKyAgICAgICAgaW50IHByZXYsIHRpdGxlU3RhcnQsIGluZGV4OworICAgICAgICBib29sZWFuIGlzRmlyc3RJbmRleDsKKworICAgICAgICAvKiBzZXQgdXAgbG9jYWwgdmFyaWFibGVzICovCisgICAgICAgIHByZXY9MDsKKyAgICAgICAgaXNGaXJzdEluZGV4PXRydWU7CisKKyAgICAgICAgLyogdGl0bGVjYXNpbmcgbG9vcCAqLworICAgICAgICB3aGlsZShwcmV2PHNyY0xlbmd0aCkgeworICAgICAgICAgICAgLyogZmluZCBuZXh0IGluZGV4IHdoZXJlIHRvIHRpdGxlY2FzZSAqLworICAgICAgICAgICAgaWYoaXNGaXJzdEluZGV4KSB7CisgICAgICAgICAgICAgICAgaXNGaXJzdEluZGV4PWZhbHNlOworICAgICAgICAgICAgICAgIGluZGV4PXRpdGxlSXRlci5maXJzdCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbmRleD10aXRsZUl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoaW5kZXg9PUJyZWFrSXRlcmF0b3IuRE9ORSB8fCBpbmRleD5zcmNMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBpbmRleD1zcmNMZW5ndGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBVbmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9uczoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmllcyBiYXNlZCBvbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4CisgICAgICAgICAgICAgKiAjMjksICJUZXh0IEJvdW5kYXJpZXMuIiBCZXR3ZWVuIGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0CisgICAgICAgICAgICAgKiBjYXNlZCBjaGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0bGUoRik7IHRoZW4gbWFwIGVhY2gKKyAgICAgICAgICAgICAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVsdF9sb3dlcihDKS4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCBzZWdtZW50IFtwcmV2Li5pbmRleFsgaW50byAzIHBhcnRzOgorICAgICAgICAgICAgICogYSkgdW5jYXNlZCBjaGFyYWN0ZXJzIChjb3B5IGFzLWlzKSBbcHJldi4udGl0bGVTdGFydFsKKyAgICAgICAgICAgICAqIGIpIGZpcnN0IGNhc2UgbGV0dGVyICh0aXRsZWNhc2UpICAgICAgICAgW3RpdGxlU3RhcnQuLnRpdGxlTGltaXRbCisgICAgICAgICAgICAgKiBjKSBzdWJzZXF1ZW50IGNoYXJhY3RlcnMgKGxvd2VyY2FzZSkgICAgICAgICAgICAgICAgIFt0aXRsZUxpbWl0Li5pbmRleFsKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYocHJldjxpbmRleCkgeworICAgICAgICAgICAgICAgIC8qIGZpbmQgYW5kIGNvcHkgdW5jYXNlZCBjaGFyYWN0ZXJzIFtwcmV2Li50aXRsZVN0YXJ0WyAqLworICAgICAgICAgICAgICAgIGl0ZXIuc2V0TGltaXQoaW5kZXgpOworICAgICAgICAgICAgICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCAmJiBVQ2FzZVByb3BzLk5PTkU9PWdDc3AuZ2V0VHlwZShjKSkge30KKyAgICAgICAgICAgICAgICB0aXRsZVN0YXJ0PWl0ZXIuZ2V0Q1BTdGFydCgpOworICAgICAgICAgICAgICAgIGlmKHByZXY8dGl0bGVTdGFydCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBXaXRoIEphdmEgNSwgdGhpcyB3b3VsZCB3YW50IHRvIGJlIHJlc3VsdC5hcHBlbmQoc3RyLCBwcmV2LCB0aXRsZVN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzdHIuc3Vic3RyaW5nKHByZXYsIHRpdGxlU3RhcnQpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZih0aXRsZVN0YXJ0PGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRpdGxlY2FzZSBjIHdoaWNoIGlzIGZyb20gdGl0bGVTdGFydCAqLworICAgICAgICAgICAgICAgICAgICBjPWdDc3AudG9GdWxsVGl0bGUoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCBhbmQgbG93ZXJjYXNlIHVwIHRvIGluZGV4ICovCisgICAgICAgICAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKG5vdCkgb3JpZ2luYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9fmM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtYXBwaW5nIGFscmVhZHkgYXBwZW5kZWQgdG8gcmVzdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFwcGVuZCBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZigoYz1pdGVyLm5leHRDYXNlTWFwQ1AoKSk+PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPWdDc3AudG9GdWxsTG93ZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByZXY9aW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgbWFwcGVkIHRvIGl0cyBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBhY2NvcmRpbmcgCisgICAgICogdG8gVW5pY29kZURhdGEudHh0IGFuZCBDYXNlRm9sZGluZy50eHQ7IGlmIHRoZSBjaGFyYWN0ZXIgaGFzIG5vIGNhc2UgCisgICAgICogZm9sZGluZyBlcXVpdmFsZW50LCB0aGUgY2hhcmFjdGVyIGl0c2VsZiBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIHRoZSBzaW1wbGUsIHNpbmdsZS1jb2RlIHBvaW50IGNhc2UgbWFwcGluZy4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3Mgc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUgYmVjYXVzZSB0aGV5IHByb2R1Y2UKKyAgICAgKiBiZXR0ZXIgcmVzdWx0cyBieSB3b3JraW5nIG9uIHdob2xlIHN0cmluZ3MuCisgICAgICogVGhleSBjYW4gbWFwIHRvIGEgcmVzdWx0IHN0cmluZyB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3MgYXJlIGFwcGxpZWQgYnkgdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMKKyAgICAgKiB0aGF0IHRha2UgU3RyaW5nIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gY29kZSBwb2ludHMgKGludCkuCisgICAgICogU2VlIGFsc28gdGhlIFVzZXIgR3VpZGUgY2hhcHRlciBvbiBDL1BPU0lYIG1pZ3JhdGlvbjoKKyAgICAgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvcG9zaXguaHRtbCNjYXNlX21hcHBpbmdzCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2ggICAgICAgICAgICAgdGhlIGNoYXJhY3RlciB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAcGFyYW0gZGVmYXVsdG1hcHBpbmcgSW5kaWNhdGVzIGlmIGFsbCBtYXBwaW5ncyBkZWZpbmVkIGluIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBDYXNlRm9sZGluZy50eHQgaXMgdG8gYmUgdXNlZCwgb3RoZXJ3aXNlIHRoZSAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZ3MgZm9yIGRvdHRlZCBJICBhbmQgZG90bGVzcyBpIG1hcmtlZCB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAnSScgaW4gQ2FzZUZvbGRpbmcudHh0IHdpbGwgYmUgc2tpcHBlZC4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICAgdGhlIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IG9mIHRoZSBjaGFyYWN0ZXIsIGlmIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBhbnk7IG90aGVyd2lzZSB0aGUgY2hhcmFjdGVyIGl0c2VsZi4KKyAgICAgKiBAc2VlICAgICAgICAgICAgICAgICAgI2ZvbGRDYXNlKFN0cmluZywgYm9vbGVhbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBmb2xkQ2FzZShpbnQgY2gsIGJvb2xlYW4gZGVmYXVsdG1hcHBpbmcpIHsKKyAgICAgICAgcmV0dXJuIGZvbGRDYXNlKGNoLCBkZWZhdWx0bWFwcGluZyA/IEZPTERfQ0FTRV9ERUZBVUxUIDogRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZ2l2ZW4gc3RyaW5nIGlzIG1hcHBlZCB0byBpdHMgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgYWNjb3JkaW5nIHRvCisgICAgICogVW5pY29kZURhdGEudHh0IGFuZCBDYXNlRm9sZGluZy50eHQ7IGlmIGFueSBjaGFyYWN0ZXIgaGFzIG5vIGNhc2UgCisgICAgICogZm9sZGluZyBlcXVpdmFsZW50LCB0aGUgY2hhcmFjdGVyIGl0c2VsZiBpcyByZXR1cm5lZC4KKyAgICAgKiAiRnVsbCIsIG11bHRpcGxlLWNvZGUgcG9pbnQgY2FzZSBmb2xkaW5nIG1hcHBpbmdzIGFyZSByZXR1cm5lZCBoZXJlLgorICAgICAqIEZvciAic2ltcGxlIiBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5ncyB1c2UgdGhlIEFQSSAKKyAgICAgKiBmb2xkQ2FzZShpbnQgY2gsIGJvb2xlYW4gZGVmYXVsdG1hcHBpbmcpLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgICAgICB0aGUgU3RyaW5nIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBkZWZhdWx0bWFwcGluZyBJbmRpY2F0ZXMgaWYgYWxsIG1hcHBpbmdzIGRlZmluZWQgaW4gCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIENhc2VGb2xkaW5nLnR4dCBpcyB0byBiZSB1c2VkLCBvdGhlcndpc2UgdGhlIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5ncyBmb3IgZG90dGVkIEkgYW5kIGRvdGxlc3MgaSBtYXJrZWQgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgJ0knIGluIENhc2VGb2xkaW5nLnR4dCB3aWxsIGJlIHNraXBwZWQuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgIHRoZSBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBvZiB0aGUgY2hhcmFjdGVyLCBpZiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW55OyBvdGhlcndpc2UgdGhlIGNoYXJhY3RlciBpdHNlbGYuCisgICAgICogQHNlZSAgICAgICAgICAgICAgICAgICNmb2xkQ2FzZShpbnQsIGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZm9sZENhc2UoU3RyaW5nIHN0ciwgYm9vbGVhbiBkZWZhdWx0bWFwcGluZykgeworICAgICAgICByZXR1cm4gZm9sZENhc2Uoc3RyLCBkZWZhdWx0bWFwcGluZyA/IEZPTERfQ0FTRV9ERUZBVUxUIDogRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIHZhbHVlIGZvciBjYXNlIGZvbGRpbmc6IHVzZSBkZWZhdWx0IG1hcHBpbmdzIGRlZmluZWQgaW4gQ2FzZUZvbGRpbmcudHh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPTERfQ0FTRV9ERUZBVUxUICAgID0gICAgICAweDAwMDA7CisgICAgLyoqIAorICAgICAqIE9wdGlvbiB2YWx1ZSBmb3IgY2FzZSBmb2xkaW5nOiBleGNsdWRlIHRoZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkgCisgICAgICogYW5kIGRvdGxlc3MgaSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSAweDAwMDE7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGdpdmVuIGNoYXJhY3RlciBpcyBtYXBwZWQgdG8gaXRzIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IGFjY29yZGluZyAKKyAgICAgKiB0byBVbmljb2RlRGF0YS50eHQgYW5kIENhc2VGb2xkaW5nLnR4dDsgaWYgdGhlIGNoYXJhY3RlciBoYXMgbm8gY2FzZSAKKyAgICAgKiBmb2xkaW5nIGVxdWl2YWxlbnQsIHRoZSBjaGFyYWN0ZXIgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIHNpbXBsZSwgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBtYXBwaW5nLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZSBiZWNhdXNlIHRoZXkgcHJvZHVjZQorICAgICAqIGJldHRlciByZXN1bHRzIGJ5IHdvcmtpbmcgb24gd2hvbGUgc3RyaW5ncy4KKyAgICAgKiBUaGV5IGNhbiBtYXAgdG8gYSByZXN1bHQgc3RyaW5nIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBhcmUgYXBwbGllZCBieSB0aGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucworICAgICAqIHRoYXQgdGFrZSBTdHJpbmcgcGFyYW1ldGVycyByYXRoZXIgdGhhbiBjb2RlIHBvaW50cyAoaW50KS4KKyAgICAgKiBTZWUgYWxzbyB0aGUgVXNlciBHdWlkZSBjaGFwdGVyIG9uIEMvUE9TSVggbWlncmF0aW9uOgorICAgICAqIGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wb3NpeC5odG1sI2Nhc2VfbWFwcGluZ3MKKyAgICAgKgorICAgICAqIEBwYXJhbSBjaCAgICAgICAgICAgICB0aGUgY2hhcmFjdGVyIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgICAgICBBIGJpdCBzZXQgZm9yIHNwZWNpYWwgcHJvY2Vzc2luZy4gQ3VycmVudGx5IHRoZSByZWNvZ25pc2VkIG9wdGlvbnMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgYW5kIEZPTERfQ0FTRV9ERUZBVUxUIAorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICB0aGUgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgb2YgdGhlIGNoYXJhY3RlciwgaWYgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFueTsgb3RoZXJ3aXNlIHRoZSBjaGFyYWN0ZXIgaXRzZWxmLgorICAgICAqIEBzZWUgI2ZvbGRDYXNlKFN0cmluZywgYm9vbGVhbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBmb2xkQ2FzZShpbnQgY2gsIGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiBnQ3NwLmZvbGQoY2gsIG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgZ2l2ZW4gc3RyaW5nIGlzIG1hcHBlZCB0byBpdHMgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgYWNjb3JkaW5nIHRvCisgICAgICogVW5pY29kZURhdGEudHh0IGFuZCBDYXNlRm9sZGluZy50eHQ7IGlmIGFueSBjaGFyYWN0ZXIgaGFzIG5vIGNhc2UgCisgICAgICogZm9sZGluZyBlcXVpdmFsZW50LCB0aGUgY2hhcmFjdGVyIGl0c2VsZiBpcyByZXR1cm5lZC4KKyAgICAgKiAiRnVsbCIsIG11bHRpcGxlLWNvZGUgcG9pbnQgY2FzZSBmb2xkaW5nIG1hcHBpbmdzIGFyZSByZXR1cm5lZCBoZXJlLgorICAgICAqIEZvciAic2ltcGxlIiBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5ncyB1c2UgdGhlIEFQSSAKKyAgICAgKiBmb2xkQ2FzZShpbnQgY2gsIGJvb2xlYW4gZGVmYXVsdG1hcHBpbmcpLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgICAgICB0aGUgU3RyaW5nIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgICAgICBBIGJpdCBzZXQgZm9yIHNwZWNpYWwgcHJvY2Vzc2luZy4gQ3VycmVudGx5IHRoZSByZWNvZ25pc2VkIG9wdGlvbnMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgYW5kIEZPTERfQ0FTRV9ERUZBVUxUIAorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICB0aGUgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgb2YgdGhlIGNoYXJhY3RlciwgaWYgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFueTsgb3RoZXJ3aXNlIHRoZSBjaGFyYWN0ZXIgaXRzZWxmLgorICAgICAqIEBzZWUgI2ZvbGRDYXNlKGludCwgYm9vbGVhbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBmb2xkQ2FzZShTdHJpbmcgc3RyLCBpbnQgb3B0aW9ucykgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIubGVuZ3RoKCkpOworICAgICAgICBpbnQgYywgaSwgbGVuZ3RoOworCisgICAgICAgIGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgZm9yKGk9MDsgaTxsZW5ndGg7KSB7CisgICAgICAgICAgICBjPVVURjE2LmNoYXJBdChzdHIsIGkpOworICAgICAgICAgICAgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgYz1nQ3NwLnRvRnVsbEZvbGRpbmcoYywgcmVzdWx0LCBvcHRpb25zKTsKKworICAgICAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgIGlmKGM8MCkgeworICAgICAgICAgICAgICAgIC8qIChub3QpIG9yaWdpbmFsIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICBjPX5jOworICAgICAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAvKiBtYXBwaW5nIGFscmVhZHkgYXBwZW5kZWQgdG8gcmVzdWx0ICovCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAvKiB9IGVsc2UgeyBhcHBlbmQgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBudW1lcmljIHZhbHVlIG9mIEhhbiBjb2RlIHBvaW50cy4KKyAgICAgKiA8YnI+IFRoaXMgcmV0dXJucyB0aGUgdmFsdWUgb2YgSGFuICdudW1lcmljJyBjb2RlIHBvaW50cywKKyAgICAgKiBpbmNsdWRpbmcgdGhvc2UgZm9yIHplcm8sIHRlbiwgaHVuZHJlZCwgdGhvdXNhbmQsIHRlbiB0aG91c2FuZCwKKyAgICAgKiBhbmQgaHVuZHJlZCBtaWxsaW9uLgorICAgICAqIFRoaXMgaW5jbHVkZXMgYm90aCB0aGUgc3RhbmRhcmQgYW5kICdjaGVja3dyaXRpbmcnCisgICAgICogY2hhcmFjdGVycywgdGhlICdiaWcgY2lyY2xlJyB6ZXJvIGNoYXJhY3RlciwgYW5kIHRoZSBzdGFuZGFyZAorICAgICAqIHplcm8gY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgICogQHJldHVybiB2YWx1ZSBpZiBpdCBpcyBhIEhhbiAnbnVtZXJpYyBjaGFyYWN0ZXIsJyBvdGhlcndpc2UgcmV0dXJuIC0xLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0SGFuTnVtZXJpY1ZhbHVlKGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIFRPRE86IEFyZSB0aGVzZSBhbGwgY292ZXJlZCBieSBVbmljb2RlIG51bWVyaWMgdmFsdWUgZGF0YT8KKyAgICAgICAgc3dpdGNoKGNoKQorICAgICAgICB7CisgICAgICAgIGNhc2UgSURFT0dSQVBISUNfTlVNQkVSX1pFUk9fIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfWkVST18gOgorICAgICAgICByZXR1cm4gMDsgLy8gSGFuIFplcm8KKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0ZJUlNUXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX09ORV8gOgorICAgICAgICByZXR1cm4gMTsgLy8gSGFuIE9uZQorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfU0VDT05EXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RXT18gOgorICAgICAgICByZXR1cm4gMjsgLy8gSGFuIFR3bworICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfVEhJUkRfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEhSRUVfIDoKKyAgICAgICAgcmV0dXJuIDM7IC8vIEhhbiBUaHJlZQorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfRk9VUlRIXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0ZPVVJfIDoKKyAgICAgICAgcmV0dXJuIDQ7IC8vIEhhbiBGb3VyCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9GSUZUSF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9GSVZFXyA6CisgICAgICAgIHJldHVybiA1OyAvLyBIYW4gRml2ZQorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfU0lYVEhfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfU0lYXyA6CisgICAgICAgIHJldHVybiA2OyAvLyBIYW4gU2l4CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9TRVZFTlRIXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1NFVkVOXyA6CisgICAgICAgIHJldHVybiA3OyAvLyBIYW4gU2V2ZW4KKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0VJR0hUSF8gOiAKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfRUlHSFRfIDoKKyAgICAgICAgcmV0dXJuIDg7IC8vIEhhbiBFaWdodAorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfTklORVRIXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX05JTkVfIDoKKyAgICAgICAgcmV0dXJuIDk7IC8vIEhhbiBOaW5lCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9URU5fIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEVOXyA6CisgICAgICAgIHJldHVybiAxMDsKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0hVTkRSRURfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfSFVORFJFRF8gOgorICAgICAgICByZXR1cm4gMTAwOworICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfVEhPVVNBTkRfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEhPVVNBTkRfIDoKKyAgICAgICAgcmV0dXJuIDEwMDA7CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9URU5fVEhPVVNBTkRfIDoKKyAgICAgICAgcmV0dXJuIDEwMDAwOworICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfSFVORFJFRF9NSUxMSU9OXyA6CisgICAgICAgIHJldHVybiAxMDAwMDAwMDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOyAvLyBubyB2YWx1ZQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIGFuIGl0ZXJhdG9yIGZvciBjaGFyYWN0ZXIgdHlwZXMsIGl0ZXJhdGluZyBvdmVyIGNvZGVwb2ludHMuPC9wPgorICAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAgKiA8cHJlPgorICAgICAqIFJhbmdlVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0VHlwZUl0ZXJhdG9yKCk7CisgICAgICogUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAqIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5zdGFydCkgKyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICIgdG8gY29kZXBvaW50IFxcdSIgKworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmxpbWl0IC0gMSkgKyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBjaGFyYWN0ZXIgdHlwZSAiICsgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlKTsKKyAgICAgKiB9CisgICAgICogPC9wcmU+CisgICAgICogQHJldHVybiBhbiBpdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJhbmdlVmFsdWVJdGVyYXRvciBnZXRUeXBlSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yKFBST1BFUlRZXyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+R2V0cyBhbiBpdGVyYXRvciBmb3IgY2hhcmFjdGVyIG5hbWVzLCBpdGVyYXRpbmcgb3ZlciBjb2RlcG9pbnRzLjwvcD4KKyAgICAgKiA8cD5UaGlzIEFQSSBvbmx5IGdldHMgdGhlIGl0ZXJhdG9yIGZvciB0aGUgbW9kZXJuLCBtb3N0IHVwLXRvLWRhdGUgCisgICAgICogVW5pY29kZSBuYW1lcy4gRm9yIG9sZGVyIDEuMCBVbmljb2RlIG5hbWVzIHVzZSBnZXQxXzBOYW1lSXRlcmF0b3IoKSBvcgorICAgICAqIGZvciBleHRlbmRlZCBuYW1lcyB1c2UgZ2V0RXh0ZW5kZWROYW1lSXRlcmF0b3IoKS48L3A+CisgICAgICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICAgICAqIDxwcmU+CisgICAgICogVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yKCk7CisgICAgICogVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmNvZGVwb2ludCkgKworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICogfQorICAgICAqIDwvcHJlPgorICAgICAqIDxwPlRoZSBtYXhpbWFsIHJhbmdlIHdoaWNoIHRoZSBuYW1lIGl0ZXJhdG9yIGl0ZXJhdGVzIGlzIGZyb20gCisgICAgICogVUNoYXJhY3Rlci5NSU5fVkFMVUUgdG8gVUNoYXJhY3Rlci5NQVhfVkFMVUUuPC9wPgorICAgICAqIEByZXR1cm4gYW4gaXRlcmF0b3IgCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWYWx1ZUl0ZXJhdG9yIGdldE5hbWVJdGVyYXRvcigpCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJhY3Rlck5hbWVJdGVyYXRvcihOQU1FXywKKyAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFX0NIQVJfTkFNRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkdldHMgYW4gaXRlcmF0b3IgZm9yIGNoYXJhY3RlciBuYW1lcywgaXRlcmF0aW5nIG92ZXIgY29kZXBvaW50cy48L3A+CisgICAgICogPHA+VGhpcyBBUEkgb25seSBnZXRzIHRoZSBpdGVyYXRvciBmb3IgdGhlIG9sZGVyIDEuMCBVbmljb2RlIG5hbWVzLiAKKyAgICAgKiBGb3IgbW9kZXJuLCBtb3N0IHVwLXRvLWRhdGUgVW5pY29kZSBuYW1lcyB1c2UgZ2V0TmFtZUl0ZXJhdG9yKCkgb3IKKyAgICAgKiBmb3IgZXh0ZW5kZWQgbmFtZXMgdXNlIGdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCkuPC9wPgorICAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAgKiA8cHJlPgorICAgICAqIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldDFfME5hbWVJdGVyYXRvcigpOworICAgICAqIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAqIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5jb2RlcG9pbnQpICsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBuYW1lICIgKyAoU3RyaW5nKWVsZW1lbnQudmFsdWUpOworICAgICAqIH0KKyAgICAgKiA8L3ByZT4KKyAgICAgKiA8cD5UaGUgbWF4aW1hbCByYW5nZSB3aGljaCB0aGUgbmFtZSBpdGVyYXRvciBpdGVyYXRlcyBpcyBmcm9tIAorICAgICAqIEByZXR1cm4gYW4gaXRlcmF0b3IgCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWYWx1ZUl0ZXJhdG9yIGdldE5hbWUxXzBJdGVyYXRvcigpCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJhY3Rlck5hbWVJdGVyYXRvcihOQU1FXywKKyAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkdldHMgYW4gaXRlcmF0b3IgZm9yIGNoYXJhY3RlciBuYW1lcywgaXRlcmF0aW5nIG92ZXIgY29kZXBvaW50cy48L3A+CisgICAgICogPHA+VGhpcyBBUEkgb25seSBnZXRzIHRoZSBpdGVyYXRvciBmb3IgdGhlIGV4dGVuZGVkIG5hbWVzLiAKKyAgICAgKiBGb3IgbW9kZXJuLCBtb3N0IHVwLXRvLWRhdGUgVW5pY29kZSBuYW1lcyB1c2UgZ2V0TmFtZUl0ZXJhdG9yKCkgb3IKKyAgICAgKiBmb3Igb2xkZXIgMS4wIFVuaWNvZGUgbmFtZXMgdXNlIGdldDFfME5hbWVJdGVyYXRvcigpLjwvcD4KKyAgICAgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgICAgICogPHByZT4KKyAgICAgKiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpOworICAgICAqIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAqIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5jb2RlcG9pbnQpICsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBuYW1lICIgKyAoU3RyaW5nKWVsZW1lbnQudmFsdWUpOworICAgICAqIH0KKyAgICAgKiA8L3ByZT4KKyAgICAgKiA8cD5UaGUgbWF4aW1hbCByYW5nZSB3aGljaCB0aGUgbmFtZSBpdGVyYXRvciBpdGVyYXRlcyBpcyBmcm9tIAorICAgICAqIEByZXR1cm4gYW4gaXRlcmF0b3IgCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWYWx1ZUl0ZXJhdG9yIGdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IoTkFNRV8sCisgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuRVhURU5ERURfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0IHRoZSAiYWdlIiBvZiB0aGUgY29kZSBwb2ludC48L3A+CisgICAgICogPHA+VGhlICJhZ2UiIGlzIHRoZSBVbmljb2RlIHZlcnNpb24gd2hlbiB0aGUgY29kZSBwb2ludCB3YXMgZmlyc3QKKyAgICAgKiBkZXNpZ25hdGVkIChhcyBhIG5vbi1jaGFyYWN0ZXIgb3IgZm9yIFByaXZhdGUgVXNlKSBvciBhc3NpZ25lZCBhIAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiA8cD5UaGlzIGNhbiBiZSB1c2VmdWwgdG8gYXZvaWQgZW1pdHRpbmcgY29kZSBwb2ludHMgdG8gcmVjZWl2aW5nIAorICAgICAqIHByb2Nlc3NlcyB0aGF0IGRvIG5vdCBhY2NlcHQgbmV3ZXIgY2hhcmFjdGVycy48L3A+CisgICAgICogPHA+VGhlIGRhdGEgaXMgZnJvbSB0aGUgVUNEIGZpbGUgRGVyaXZlZEFnZS50eHQuPC9wPgorICAgICAqIEBwYXJhbSBjaCBUaGUgY29kZSBwb2ludC4KKyAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlIHZlcnNpb24gbnVtYmVyCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRBZ2UoaW50IGNoKSAKKyAgICB7CisgICAgICAgIGlmIChjaCA8IE1JTl9WQUxVRSB8fCBjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBQUk9QRVJUWV8uZ2V0QWdlKGNoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+Q2hlY2sgYSBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0eSBmb3IgYSBjb2RlIHBvaW50LjwvcD4gCisgICAgICogPHA+VW5pY29kZSwgZXNwZWNpYWxseSBpbiB2ZXJzaW9uIDMuMiwgZGVmaW5lcyBtYW55IG1vcmUgcHJvcGVydGllcyAKKyAgICAgKiB0aGFuIHRoZSBvcmlnaW5hbCBzZXQgaW4gVW5pY29kZURhdGEudHh0LjwvcD4KKyAgICAgKiA8cD5UaGlzIEFQSSBpcyBpbnRlbmRlZCB0byByZWZsZWN0IFVuaWNvZGUgcHJvcGVydGllcyBhcyBkZWZpbmVkIGluIAorICAgICAqIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgUmVwb3J0cyAKKyAgICAgKiAoVVRSKS48L3A+CisgICAgICogPHA+Rm9yIGRldGFpbHMgYWJvdXQgdGhlIHByb3BlcnRpZXMgc2VlIAorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy8+aHR0cDovL3d3dy51bmljb2RlLm9yZy88L2E+LjwvcD4KKyAgICAgKiA8cD5Gb3IgbmFtZXMgb2YgVW5pY29kZSBwcm9wZXJ0aWVzIHNlZSB0aGUgVUNEIGZpbGUgCisgICAgICogUHJvcGVydHlBbGlhc2VzLnR4dC48L3A+CisgICAgICogPHA+VGhpcyBBUEkgZG9lcyBub3QgY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb2RlcG9pbnQuPC9wPgorICAgICAqIDxwPkltcG9ydGFudDogSWYgSUNVIGlzIGJ1aWx0IHdpdGggVUNEIGZpbGVzIGZyb20gVW5pY29kZSB2ZXJzaW9ucyAKKyAgICAgKiBiZWxvdyAzLjIsIHRoZW4gcHJvcGVydGllcyBtYXJrZWQgd2l0aCAibmV3IiBhcmUgbm90IG9yIAorICAgICAqIG5vdCBmdWxseSBhdmFpbGFibGUuPC9wPgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIHRlc3QuCisgICAgICogQHBhcmFtIHByb3BlcnR5IHNlbGVjdG9yIGNvbnN0YW50IGZyb20gY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHksIAorICAgICAqICAgICAgICBpZGVudGlmaWVzIHdoaWNoIGJpbmFyeSBwcm9wZXJ0eSB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIHRydWUgb3IgZmFsc2UgYWNjb3JkaW5nIHRvIHRoZSBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0eSB2YWx1ZSAKKyAgICAgKiAgICAgICAgIGZvciBjaC4gQWxzbyBmYWxzZSBpZiBwcm9wZXJ0eSBpcyBvdXQgb2YgYm91bmRzIG9yIGlmIHRoZSAKKyAgICAgKiAgICAgICAgIFVuaWNvZGUgdmVyc2lvbiBkb2VzIG5vdCBoYXZlIGRhdGEgZm9yIHRoZSBwcm9wZXJ0eSBhdCBhbGwsIG9yIAorICAgICAqICAgICAgICAgbm90IGZvciB0aGlzIGNvZGUgcG9pbnQuCisgICAgICogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNCaW5hcnlQcm9wZXJ0eShpbnQgY2gsIGludCBwcm9wZXJ0eSkgCisgICAgeworICAgIGlmIChjaCA8IE1JTl9WQUxVRSB8fCBjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBQUk9QRVJUWV8uaGFzQmluYXJ5UHJvcGVydHkoY2gsIHByb3BlcnR5KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxwPkNoZWNrIGlmIGEgY29kZSBwb2ludCBoYXMgdGhlIEFscGhhYmV0aWMgVW5pY29kZSBwcm9wZXJ0eS48L3A+IAorICAgICAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LkFMUEhBQkVUSUMpLjwvcD4KKyAgICAgKiA8cD5EaWZmZXJlbnQgZnJvbSBVQ2hhcmFjdGVyLmlzTGV0dGVyKGNoKSE8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gYmUgdGVzdGVkCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVUFscGhhYmV0aWMoaW50IGNoKQorICAgIHsKKyAgICByZXR1cm4gaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5BTFBIQUJFVElDKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5DaGVjayBpZiBhIGNvZGUgcG9pbnQgaGFzIHRoZSBMb3dlcmNhc2UgVW5pY29kZSBwcm9wZXJ0eS48L3A+CisgICAgICogPHA+U2FtZSBhcyBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuTE9XRVJDQVNFKS48L3A+CisgICAgICogPHA+VGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGNoKSE8L3A+CisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVTG93ZXJjYXNlKGludCBjaCkgCisgICAgeworICAgIHJldHVybiBoYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LkxPV0VSQ0FTRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q2hlY2sgaWYgYSBjb2RlIHBvaW50IGhhcyB0aGUgVXBwZXJjYXNlIFVuaWNvZGUgcHJvcGVydHkuPC9wPgorICAgICAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LlVQUEVSQ0FTRSkuPC9wPgorICAgICAqIDxwPlRoaXMgaXMgZGlmZmVyZW50IGZyb20gVUNoYXJhY3Rlci5pc1VwcGVyQ2FzZShjaCkhPC9wPgorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gYmUgdGVzdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVVVwcGVyY2FzZShpbnQgY2gpIAorICAgIHsKKyAgICByZXR1cm4gaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5VUFBFUkNBU0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNoZWNrIGlmIGEgY29kZSBwb2ludCBoYXMgdGhlIFdoaXRlX1NwYWNlIFVuaWNvZGUgcHJvcGVydHkuPC9wPgorICAgICAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LldISVRFX1NQQUNFKS48L3A+CisgICAgICogPHA+VGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBib3RoIFVDaGFyYWN0ZXIuaXNTcGFjZShjaCkgYW5kIAorICAgICAqIFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGNoKSE8L3A+CisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVV2hpdGVTcGFjZShpbnQgY2gpIAorICAgIHsKKyAgICByZXR1cm4gaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIHRoZSBwcm9wZXJ0eSB2YWx1ZSBmb3IgYW4gVW5pY29kZSBwcm9wZXJ0eSB0eXBlIG9mIGEgY29kZSBwb2ludC4gCisgICAgICogQWxzbyByZXR1cm5zIGJpbmFyeSBhbmQgbWFzayBwcm9wZXJ0eSB2YWx1ZXMuPC9wPgorICAgICAqIDxwPlVuaWNvZGUsIGVzcGVjaWFsbHkgaW4gdmVyc2lvbiAzLjIsIGRlZmluZXMgbWFueSBtb3JlIHByb3BlcnRpZXMgdGhhbiAKKyAgICAgKiB0aGUgb3JpZ2luYWwgc2V0IGluIFVuaWNvZGVEYXRhLnR4dC48L3A+CisgICAgICogPHA+VGhlIHByb3BlcnRpZXMgQVBJcyBhcmUgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgCisgICAgICogZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UgKFVDRCkgYW5kIFVuaWNvZGUgVGVjaG5pY2FsIAorICAgICAqIFJlcG9ydHMgKFVUUikuIEZvciBkZXRhaWxzIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHNlZSAKKyAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnLy48L3A+CisgICAgICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICogPC9wPgorICAgICAqIDxwcmU+CisgICAgICogU2FtcGxlIHVzYWdlOgorICAgICAqIGludCBlYSA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCk7CisgICAgICogaW50IGlkZW8gPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LklERU9HUkFQSElDKTsKKyAgICAgKiBib29sZWFuIGIgPSAoaWRlbyA9PSAxKSA/IHRydWUgOiBmYWxzZTsgCisgICAgICogPC9wcmU+CisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gdGVzdC4KKyAgICAgKiBAcGFyYW0gdHlwZSBVUHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQsIGlkZW50aWZpZXMgd2hpY2ggYmluYXJ5IAorICAgICAqICAgICAgICBwcm9wZXJ0eSB0byBjaGVjay4gTXVzdCBiZSAKKyAgICAgKiAgICAgICAgVVByb3BlcnR5LkJJTkFSWV9TVEFSVCAmbHQ7PSB0eXBlICZsdDsgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCBvciAKKyAgICAgKiAgICAgICAgVVByb3BlcnR5LklOVF9TVEFSVCAmbHQ7PSB0eXBlICZsdDsgVVByb3BlcnR5LklOVF9MSU1JVCBvciAKKyAgICAgKiAgICAgICAgVVByb3BlcnR5Lk1BU0tfU1RBUlQgJmx0Oz0gdHlwZSAmbHQ7IFVQcm9wZXJ0eS5NQVNLX0xJTUlULgorICAgICAqIEByZXR1cm4gbnVtZXJpYyB2YWx1ZSB0aGF0IGlzIGRpcmVjdGx5IHRoZSBwcm9wZXJ0eSB2YWx1ZSBvciwKKyAgICAgKiAgICAgICAgIGZvciBlbnVtZXJhdGVkIHByb3BlcnRpZXMsIGNvcnJlc3BvbmRzIHRvIHRoZSBudW1lcmljIHZhbHVlIG9mIAorICAgICAqICAgICAgICAgdGhlIGVudW1lcmF0ZWQgY29uc3RhbnQgb2YgdGhlIHJlc3BlY3RpdmUgcHJvcGVydHkgdmFsdWUgCisgICAgICogICAgICAgICBlbnVtZXJhdGlvbiB0eXBlIChjYXN0IHRvIGVudW0gdHlwZSBpZiBuZWNlc3NhcnkpLgorICAgICAqICAgICAgICAgUmV0dXJucyAwIG9yIDEgKGZvciBmYWxzZSAvIHRydWUpIGZvciBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0aWVzLgorICAgICAqICAgICAgICAgUmV0dXJucyBhIGJpdC1tYXNrIGZvciBtYXNrIHByb3BlcnRpZXMuCisgICAgICogICAgICAgICBSZXR1cm5zIDAgaWYgJ3R5cGUnIGlzIG91dCBvZiBib3VuZHMgb3IgaWYgdGhlIFVuaWNvZGUgdmVyc2lvbgorICAgICAqICAgICAgICAgZG9lcyBub3QgaGF2ZSBkYXRhIGZvciB0aGUgcHJvcGVydHkgYXQgYWxsLCBvciBub3QgZm9yIHRoaXMgY29kZSAKKyAgICAgKiAgICAgICAgIHBvaW50LgorICAgICAqIEBzZWUgVVByb3BlcnR5CisgICAgICogQHNlZSAjaGFzQmluYXJ5UHJvcGVydHkKKyAgICAgKiBAc2VlICNnZXRJbnRQcm9wZXJ0eU1pblZhbHVlCisgICAgICogQHNlZSAjZ2V0SW50UHJvcGVydHlNYXhWYWx1ZQorICAgICAqIEBzZWUgI2dldFVuaWNvZGVWZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0SW50UHJvcGVydHlWYWx1ZShpbnQgY2gsIGludCB0eXBlKQorICAgIHsKKyAgICAgICAgaWYgKHR5cGUgPCBVUHJvcGVydHkuQklOQVJZX1NUQVJUKSB7CisgICAgICAgICAgICByZXR1cm4gMDsgLy8gdW5kZWZpbmVkCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPCBVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB7CisgICAgICAgICAgICByZXR1cm4gaGFzQmluYXJ5UHJvcGVydHkoY2gsIHR5cGUpID8gMSA6IDA7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPCBVUHJvcGVydHkuSU5UX1NUQVJUKSB7CisgICAgICAgICAgICByZXR1cm4gMDsgLy8gdW5kZWZpbmVkCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPCBVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICAvL2ludCByZXN1bHQgPSAwOworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX0NMQVNTOgorICAgICAgICAgICAgICAgIHJldHVybiBnZXREaXJlY3Rpb24oY2gpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQkxPQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVCbG9jay5pZE9mKGNoKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldENvbWJpbmluZ0NsYXNzKGNoKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfLmdldEFkZGl0aW9uYWwoY2gsIDIpIAorICAgICAgICAgICAgJiBERUNPTVBPU0lUSU9OX1RZUEVfTUFTS187CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRIOgorICAgICAgICAgICAgICAgIHJldHVybiAoUFJPUEVSVFlfLmdldEFkZGl0aW9uYWwoY2gsIDApCisgICAgICAgICAgICAmIEVBU1RfQVNJQU5fTUFTS18pID4+IEVBU1RfQVNJQU5fU0hJRlRfOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWToKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQOgorICAgICAgICAgICAgICAgIHJldHVybiBnQmRwLmdldEpvaW5pbmdHcm91cChjaCk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdCZHAuZ2V0Sm9pbmluZ1R5cGUoY2gpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTElORV9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKGludCkoUFJPUEVSVFlfLmdldEFkZGl0aW9uYWwoY2gsIDApJiBMSU5FX0JSRUFLX01BU0tfKT4+TElORV9CUkVBS19TSElGVF87CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OVU1FUklDX1RZUEU6CisgICAgICAgICAgICAgICAgdHlwZT1nZXROdW1lcmljVHlwZShQUk9QRVJUWV8uZ2V0UHJvcGVydHkoY2gpKTsKKyAgICAgICAgICAgICAgICBpZih0eXBlPk51bWVyaWNUeXBlLk5VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoga2VlcCBpbnRlcm5hbCB2YXJpYW50cyBvZiBOdW1lcmljVHlwZS5OVU1FUklDIGZyb20gYmVjb21pbmcgdmlzaWJsZSAqLworICAgICAgICAgICAgICAgICAgICB0eXBlPU51bWVyaWNUeXBlLk5VTUVSSUM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0NSSVBUOgorICAgICAgICAgICAgICAgIHJldHVybiBVU2NyaXB0LmdldFNjcmlwdChjaCk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRToKKyAgICAgICAgLyogcHVyZWx5IGFsZ29yaXRobWljOyBoYXJkY29kZSBrbm93biBjaGFyYWN0ZXJzLCBjaGVjayBmb3IgYXNzaWduZWQgbmV3IG9uZXMgKi8gCisgICAgICAgIGlmKGNoPE5vcm1hbGl6ZXJJbXBsLkpBTU9fTF9CQVNFKSB7IAorICAgICAgICAgICAgLyogTkEgKi8gCisgICAgICAgIH0gZWxzZSBpZihjaDw9MHgxMWZmKSB7IAorICAgICAgICAgICAgLyogSmFtbyByYW5nZSAqLyAKKyAgICAgICAgICAgIGlmKGNoPD0weDExNWYpIHsgCisgICAgICAgICAgICAvKiBKYW1vIEwgcmFuZ2UsIEhBTkdVTCBDSE9TRU9ORyAuLi4gKi8gCisgICAgICAgICAgICBpZihjaD09MHgxMTVmIHx8IGNoPD0weDExNTkgfHwgZ2V0VHlwZShjaCk9PVVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpIHsgCisgICAgICAgICAgICAgICAgcmV0dXJuIEhhbmd1bFN5bGxhYmxlVHlwZS5MRUFESU5HX0pBTU87IAorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0gZWxzZSBpZihjaDw9MHgxMWE3KSB7IAorICAgICAgICAgICAgLyogSmFtbyBWIHJhbmdlLCBIQU5HVUwgSlVOR1NFT05HIC4uLiAqLyAKKyAgICAgICAgICAgIGlmKGNoPD0weDExYTIgfHwgZ2V0VHlwZShjaCk9PVVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpIHsgCisgICAgICAgICAgICAgICAgcmV0dXJuIEhhbmd1bFN5bGxhYmxlVHlwZS5WT1dFTF9KQU1POyAKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IGVsc2UgeyAKKyAgICAgICAgICAgIC8qIEphbW8gVCByYW5nZSAqLyAKKyAgICAgICAgICAgIGlmKGNoPD0weDExZjkgfHwgZ2V0VHlwZShjaCk9PVVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpIHsgCisgICAgICAgICAgICAgICAgcmV0dXJuIEhhbmd1bFN5bGxhYmxlVHlwZS5UUkFJTElOR19KQU1POyAKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IAorICAgICAgICB9IGVsc2UgaWYoKGNoLT1Ob3JtYWxpemVySW1wbC5IQU5HVUxfQkFTRSk8MCkgeyAKKyAgICAgICAgICAgIC8qIE5BICovIAorICAgICAgICB9IGVsc2UgaWYoY2g8Tm9ybWFsaXplckltcGwuSEFOR1VMX0NPVU5UKSB7IAorICAgICAgICAgICAgLyogSGFuZ3VsIHN5bGxhYmxlICovIAorICAgICAgICAgICAgcmV0dXJuIGNoJU5vcm1hbGl6ZXJJbXBsLkpBTU9fVF9DT1VOVD09MCA/IEhhbmd1bFN5bGxhYmxlVHlwZS5MVl9TWUxMQUJMRSA6IEhhbmd1bFN5bGxhYmxlVHlwZS5MVlRfU1lMTEFCTEU7IAorICAgICAgICB9IAorICAgICAgICByZXR1cm4gMDsgLyogTkEgKi8gCisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GRF9RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0RfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORkNfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORktDX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5xdWlja0NoZWNrKGNoLCAodHlwZS1VUHJvcGVydHkuTkZEX1FVSUNLX0NIRUNLKSsyKTsgLy8gMj1VTk9STV9ORkQKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpPj44OworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpJjB4ZmY7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5HUkFQSEVNRV9DTFVTVEVSX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoaW50KShQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMikmIEdDQl9NQVNLKT4+R0NCX1NISUZUOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0VOVEVOQ0VfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAyKSYgU0JfTUFTSyk+PlNCX1NISUZUOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuV09SRF9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKGludCkoUFJPUEVSVFlfLmdldEFkZGl0aW9uYWwoY2gsIDIpJiBXQl9NQVNLKT4+V0JfU0hJRlQ7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgCisgICAgICAgIHJldHVybiAwOyAvKiB1bmRlZmluZWQgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spIHsKKyAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0TWFzayhnZXRUeXBlKGNoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7IC8vIHVuZGVmaW5lZAorICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHZlcnNpb24gb2YgdGhlIHByb3BlcnR5IHZhbHVlLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eUVudW0KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHBhcmFtIG5hbWVDaG9pY2UKKyAgICAgKiBAcmV0dXJuIHZhbHVlIGFzIHN0cmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFN0cmluZ1Byb3BlcnR5VmFsdWUoaW50IHByb3BlcnR5RW51bSwgaW50IGNvZGVwb2ludCwgaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgLy8gVE9ETyBzb21lIG9mIHRoZXNlIGFyZSBsZXNzIGVmZmljaWVudCwgc2luY2UgYSBzdHJpbmcgaXMgZm9yY2VkIQorICAgICAgICBpZiAoKHByb3BlcnR5RW51bSA+PSBVUHJvcGVydHkuQklOQVJZX1NUQVJUICYmIHByb3BlcnR5RW51bSA8IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQpIHx8CisgICAgICAgICAgICAgICAgKHByb3BlcnR5RW51bSA+PSBVUHJvcGVydHkuSU5UX1NUQVJUICYmIHByb3BlcnR5RW51bSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcGVydHlFbnVtLCBnZXRJbnRQcm9wZXJ0eVZhbHVlKGNvZGVwb2ludCwgcHJvcGVydHlFbnVtKSwgbmFtZUNob2ljZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb3BlcnR5RW51bSA9PSBVUHJvcGVydHkuTlVNRVJJQ19WQUxVRSkgeworICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcudmFsdWVPZihnZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGNvZGVwb2ludCkpOworICAgICAgICB9CisgICAgICAgIC8vIG90aGVyd2lzZSBtdXN0IGJlIHN0cmluZyBwcm9wZXJ0eQorICAgICAgICBzd2l0Y2ggKHByb3BlcnR5RW51bSkgeworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5BR0U6IHJldHVybiBnZXRBZ2UoY29kZXBvaW50KS50b1N0cmluZygpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDogcmV0dXJuIGdldElTT0NvbW1lbnQoY29kZXBvaW50KTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9NSVJST1JJTkdfR0xZUEg6IHJldHVybiBVVEYxNi52YWx1ZU9mKGdldE1pcnJvcihjb2RlcG9pbnQpKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9GT0xESU5HOiByZXR1cm4gZm9sZENhc2UoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpLCB0cnVlKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFX01BUFBJTkc6IHJldHVybiB0b0xvd2VyQ2FzZShVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCkpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OQU1FOiByZXR1cm4gZ2V0TmFtZShjb2RlcG9pbnQpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfQ0FTRV9GT0xESU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihmb2xkQ2FzZShjb2RlcG9pbnQsdHJ1ZSkpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfTE9XRVJDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKHRvTG93ZXJDYXNlKGNvZGVwb2ludCkpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfVElUTEVDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKHRvVGl0bGVDYXNlKGNvZGVwb2ludCkpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfVVBQRVJDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKHRvVXBwZXJDYXNlKGNvZGVwb2ludCkpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5USVRMRUNBU0VfTUFQUElORzogcmV0dXJuIHRvVGl0bGVDYXNlKFVURjE2LnZhbHVlT2YoY29kZXBvaW50KSxudWxsKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuVU5JQ09ERV8xX05BTUU6IHJldHVybiBnZXROYW1lMV8wKGNvZGVwb2ludCk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiByZXR1cm4gdG9VcHBlckNhc2UoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpKTsgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgUHJvcGVydHkgRW51bSIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG1pbmltdW0gdmFsdWUgZm9yIGFuIGludGVnZXIvYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgdHlwZS4KKyAgICAgKiBDYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShpbnQpCisgICAgICogdG8gYWxsb2NhdGUgYXJyYXlzIG9mIGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldCBvciBzaW1pbGFyLgorICAgICAqIEBwYXJhbSB0eXBlIFVQcm9wZXJ0eSBzZWxlY3RvciBjb25zdGFudCwgaWRlbnRpZmllcyB3aGljaCBiaW5hcnkgCisgICAgICogICAgICAgIHByb3BlcnR5IHRvIGNoZWNrLiBNdXN0IGJlIAorICAgICAqICAgICAgICBVUHJvcGVydHkuQklOQVJZX1NUQVJUICZsdDs9IHR5cGUgJmx0OyBVUHJvcGVydHkuQklOQVJZX0xJTUlUIG9yIAorICAgICAqICAgICAgICBVUHJvcGVydHkuSU5UX1NUQVJUICZsdDs9IHR5cGUgJmx0OyBVUHJvcGVydHkuSU5UX0xJTUlULgorICAgICAqIEByZXR1cm4gTWluaW11bSB2YWx1ZSByZXR1cm5lZCBieSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoaW50KSAKKyAgICAgKiAgICAgICAgIGZvciBhIFVuaWNvZGUgcHJvcGVydHkuIDAgaWYgdGhlIHByb3BlcnR5IAorICAgICAqICAgICAgICAgc2VsZWN0b3IgJ3R5cGUnIGlzIG91dCBvZiByYW5nZS4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eQorICAgICAqIEBzZWUgI2hhc0JpbmFyeVByb3BlcnR5CisgICAgICogQHNlZSAjZ2V0VW5pY29kZVZlcnNpb24KKyAgICAgKiBAc2VlICNnZXRJbnRQcm9wZXJ0eU1heFZhbHVlCisgICAgICogQHNlZSAjZ2V0SW50UHJvcGVydHlWYWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEludFByb3BlcnR5TWluVmFsdWUoaW50IHR5cGUpCisgICAgeworCisgICAgICAgIHJldHVybiAwOyAvLyB1bmRlZmluZWQ7IGFuZDogYWxsIG90aGVyIHByb3BlcnRpZXMgaGF2ZSBhIG1pbmltdW0gdmFsdWUgCisgICAgLy8gb2YgMAorICAgIH0KKworICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgYW4gaW50ZWdlci9iaW5hcnkgVW5pY29kZSBwcm9wZXJ0eS4KKyAgICAgKiBDYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShpbnQpCisgICAgICogdG8gYWxsb2NhdGUgYXJyYXlzIG9mIGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldCBvciBzaW1pbGFyLgorICAgICAqIEV4YW1wbGVzIGZvciBtaW4vbWF4IHZhbHVlcyAoZm9yIFVuaWNvZGUgMy4yKToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBVUHJvcGVydHkuQklESV9DTEFTUzogICAgMC8xOCAoVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUL1VDaGFyYWN0ZXJEaXJlY3Rpb24uQk9VTkRBUllfTkVVVFJBTCkKKyAgICAgKiA8bGk+IFVQcm9wZXJ0eS5TQ1JJUFQ6ICAgICAgICAwLzQ1IChVU2NyaXB0LkNPTU1PTi9VU2NyaXB0LlRBR0JBTldBKQorICAgICAqIDxsaT4gVVByb3BlcnR5LklERU9HUkFQSElDOiAgIDAvMSAgKGZhbHNlL3RydWUpCisgICAgICogPC91bD4KKyAgICAgKiBGb3IgdW5kZWZpbmVkIFVQcm9wZXJ0eSBjb25zdGFudCB2YWx1ZXMsIG1pbi9tYXggdmFsdWVzIHdpbGwgYmUgMC8tMS4KKyAgICAgKiBAcGFyYW0gdHlwZSBVUHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQsIGlkZW50aWZpZXMgd2hpY2ggYmluYXJ5IAorICAgICAqICAgICAgICBwcm9wZXJ0eSB0byBjaGVjay4gTXVzdCBiZSAKKyAgICAgKiAgICAgICAgVVByb3BlcnR5LkJJTkFSWV9TVEFSVCAmbHQ7PSB0eXBlICZsdDsgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCBvciAKKyAgICAgKiAgICAgICAgVVByb3BlcnR5LklOVF9TVEFSVCAmbHQ7PSB0eXBlICZsdDsgVVByb3BlcnR5LklOVF9MSU1JVC4KKyAgICAgKiBAcmV0dXJuIE1heGltdW0gdmFsdWUgcmV0dXJuZWQgYnkgdV9nZXRJbnRQcm9wZXJ0eVZhbHVlIGZvciBhIFVuaWNvZGUgCisgICAgICogICAgICAgICBwcm9wZXJ0eS4gJmx0Oz0gMCBpZiB0aGUgcHJvcGVydHkgc2VsZWN0b3IgJ3R5cGUnIGlzIG91dCBvZiByYW5nZS4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eQorICAgICAqIEBzZWUgI2hhc0JpbmFyeVByb3BlcnR5CisgICAgICogQHNlZSAjZ2V0VW5pY29kZVZlcnNpb24KKyAgICAgKiBAc2VlICNnZXRJbnRQcm9wZXJ0eU1heFZhbHVlCisgICAgICogQHNlZSAjZ2V0SW50UHJvcGVydHlWYWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEludFByb3BlcnR5TWF4VmFsdWUoaW50IHR5cGUpCisgICAgeyAKKyAgICAgICAgaWYgKHR5cGUgPCBVUHJvcGVydHkuQklOQVJZX1NUQVJUKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7IC8vIHVuZGVmaW5lZAorICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICh0eXBlIDwgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgeworICAgICAgICAgICAgcmV0dXJuIDE7IC8vIG1heGltdW0gVFJVRSBmb3IgYWxsIGJpbmFyeSBwcm9wZXJ0aWVzCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPCBVUHJvcGVydHkuSU5UX1NUQVJUKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7IC8vIHVuZGVmaW5lZAorICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICh0eXBlIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgeworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX0NMQVNTOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSk9JTklOR19HUk9VUDoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gZ0JkcC5nZXRNYXhWYWx1ZSh0eXBlKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJMT0NLOgorICAgICAgICAgICAgICAgIHJldHVybiAoUFJPUEVSVFlfLmdldE1heFZhbHVlcygwKSAmIEJMT0NLX01BU0tfKSA+PiBCTE9DS19TSElGVF87CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gMHhmZjsgLy8gVE9ETyBkbyB3ZSBuZWVkIHRvIGJlIG1vcmUgcHJlY2lzZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldHRpbmcgdGhlIGFjdHVhbCBtYXhpbXVtPworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDIpICYgREVDT01QT1NJVElPTl9UWVBFX01BU0tfOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSDoKKyAgICAgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMCkgJiBFQVNUX0FTSUFOX01BU0tfKSA+PiBFQVNUX0FTSUFOX1NISUZUXzsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJDYXRlZ29yeS5DSEFSX0NBVEVHT1JZX0NPVU5UIC0gMTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxJTkVfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDApICYgTElORV9CUkVBS19NQVNLXykgPj4gTElORV9CUkVBS19TSElGVF87CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OVU1FUklDX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIE51bWVyaWNUeXBlLkNPVU5UIC0gMTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNDUklQVDoKKyAgICAgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfLmdldE1heFZhbHVlcygwKSAmIFNDUklQVF9NQVNLXzsgICAKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBIYW5ndWxTeWxsYWJsZVR5cGUuQ09VTlQtMTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GRF9RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0RfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7IC8vIFlFUyAtLSB0aGVzZSBhcmUgbmV2ZXIgIm1heWJlIiwgb25seSAibm8iIG9yICJ5ZXMiCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORkNfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORktDX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgICAgIHJldHVybiAyOyAvLyBNQVlCRQorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuR1JBUEhFTUVfQ0xVU1RFUl9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMikgJiBHQ0JfTUFTSykgPj4gR0NCX1NISUZUOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0VOVEVOQ0VfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDIpICYgU0JfTUFTSykgPj4gU0JfU0hJRlQ7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5XT1JEX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoUFJPUEVSVFlfLmdldE1heFZhbHVlcygyKSAmIFdCX01BU0spID4+IFdCX1NISUZUOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7IC8vIHVuZGVmaW5lZAorICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOyAvLyB1bmRlZmluZWQKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlIHRoZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIGZvckRpZ2l0IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBmb3JEaWdpdChpbnQgZGlnaXQsIGludCByYWRpeCkgeworICAgICAgICByZXR1cm4gamF2YS5sYW5nLkNoYXJhY3Rlci5mb3JEaWdpdChkaWdpdCwgcmFkaXgpOworICAgIH0KKworICAgIC8vIEpESyAxLjUgQVBJIGNvdmVyYWdlCisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I0xFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNSU5fSElHSF9TVVJST0dBVEUgPSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I0xFQURfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNQVhfSElHSF9TVVJST0dBVEUgPSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I1RSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUlOX0xPV19TVVJST0dBVEUgPSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1BWF9MT1dfU1VSUk9HQVRFID0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNSU5fU1VSUk9HQVRFID0gVVRGMTYuU1VSUk9HQVRFX01JTl9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNQVhfU1VSUk9HQVRFID0gVVRGMTYuU1VSUk9HQVRFX01BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVCA9IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNDT0RFUE9JTlRfTUFYX1ZBTFVFCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIE1BWF9DT0RFX1BPSU5UID0gVVRGMTYuQ09ERVBPSU5UX01BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjQ09ERVBPSU5UX01JTl9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBNSU5fQ09ERV9QT0lOVCA9IFVURjE2LkNPREVQT0lOVF9NSU5fVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY3AgaXMgYSB2YWxpZCBjb2RlIHBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzVmFsaWRDb2RlUG9pbnQoaW50IGNwKSB7CisgICAgICAgIHJldHVybiBjcCA+PSAwICYmIGNwIDw9IE1BWF9DT0RFX1BPSU5UOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjcCBpcyBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoaW50IGNwKSB7CisgICAgICAgIHJldHVybiBjcCA+PSBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRQorICAgICAgICAgICAgJiYgY3AgPD0gVVRGMTYuQ09ERVBPSU5UX01BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNoYXIgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2ggaXMgYSBoaWdoIChsZWFkKSBzdXJyb2dhdGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNIaWdoU3Vycm9nYXRlKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49IE1JTl9ISUdIX1NVUlJPR0FURSAmJiBjaCA8PSBNQVhfSElHSF9TVVJST0dBVEU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHBhcmFtIGNoIHRoZSBjaGFyIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGNoIGlzIGEgbG93ICh0cmFpbCkgc3Vycm9nYXRlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTG93U3Vycm9nYXRlKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49IE1JTl9MT1dfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9MT1dfU1VSUk9HQVRFOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRydWUgaWYgdGhlIGNoYXJzCisgICAgICogZm9ybSBhIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAqIEBwYXJhbSBoaWdoIHRoZSBoaWdoIChsZWFkKSBjaGFyCisgICAgICogQHBhcmFtIGxvdyB0aGUgbG93ICh0cmFpbCkgY2hhcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBoaWdoLCBsb3cgZm9ybSBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzU3Vycm9nYXRlUGFpcihjaGFyIGhpZ2gsIGNoYXIgbG93KSB7CisgICAgICAgIHJldHVybiBpc0hpZ2hTdXJyb2dhdGUoaGlnaCkgJiYgaXNMb3dTdXJyb2dhdGUobG93KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJzIG5lZWRlZAorICAgICAqIHRvIHJlcHJlc2VudCB0aGUgY29kZSBwb2ludC4gIFRoaXMgZG9lcyBub3QgY2hlY2sgdGhlCisgICAgICogY29kZSBwb2ludCBmb3IgdmFsaWRpdHkuCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50IHRvIGNoZWNrCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJzIG5lZWRlZCB0byByZXByZXNlbnQgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAc2VlIFVURjE2I2dldENoYXJDb3VudAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNoYXJDb3VudChpbnQgY3ApIHsKKyAgICAgICAgcmV0dXJuIFVURjE2LmdldENoYXJDb3VudChjcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIGNvZGUgcG9pbnQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgY2hhcmFjdGVycy4gIFRoaXMgZG9lcyBub3QgY2hlY2sgdGhlIHN1cnJvZ2F0ZSBwYWlyIGZvciB2YWxpZGl0eS4KKyAgICAgKiBAcGFyYW0gaGlnaCB0aGUgaGlnaCAobGVhZCkgc3Vycm9nYXRlCisgICAgICogQHBhcmFtIGxvdyB0aGUgbG93ICh0cmFpbCkgc3Vycm9nYXRlCisgICAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCBmb3JtZWQgYnkgdGhlIHN1cnJvZ2F0ZSBwYWlyCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgdG9Db2RlUG9pbnQoY2hhciBoaWdoLCBjaGFyIGxvdykgeworICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoaGlnaCwgbG93KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0aGUgY29kZSBwb2ludCBhdCBpbmRleC4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiB0aGUgc2VtYW50aWNzIG9mIHRoaXMgQVBJIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZWxhdGVkIFVURjE2CisgICAgICogQVBJLiAgVGhpcyBleGFtaW5lcyBvbmx5IHRoZSBjaGFyYWN0ZXJzIGF0IGluZGV4IGFuZCBpbmRleCsxLgorICAgICAqIEBwYXJhbSBzZXEgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvciBvbmx5IGNoYXIgZm9ybWluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgYXQgdGhlIGluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEF0KENoYXJTZXF1ZW5jZSBzZXEsIGludCBpbmRleCkgeworLy8jZWxzZQorLy8jIyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRBdChTdHJpbmcgc2VxLCBpbnQgaW5kZXgpIHsKKy8vI2VuZGlmCisgICAgICAgIGNoYXIgYzEgPSBzZXEuY2hhckF0KGluZGV4KyspOworICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlKGMxKSkgeworICAgICAgICAgICAgaWYgKGluZGV4IDwgc2VxLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY2hhciBjMiA9IHNlcS5jaGFyQXQoaW5kZXgpOworICAgICAgICAgICAgICAgIGlmIChpc0xvd1N1cnJvZ2F0ZShjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvQ29kZVBvaW50KGMxLCBjMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjMTsKKyAgICB9CisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEF0KFN0cmluZ0J1ZmZlciBzZXEsIGludCBpbmRleCkgeworLy8jIyAgICAgICAgcmV0dXJuIGNvZGVQb2ludEF0KHNlcS50b1N0cmluZygpLCBpbmRleCk7CisvLyMjICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0aGUgY29kZSBwb2ludCBhdCBpbmRleC4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiB0aGUgc2VtYW50aWNzIG9mIHRoaXMgQVBJIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZWxhdGVkIFVURjE2CisgICAgICogQVBJLiAgVGhpcyBleGFtaW5lcyBvbmx5IHRoZSBjaGFyYWN0ZXJzIGF0IGluZGV4IGFuZCBpbmRleCsxLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBjaGFyYWN0ZXJzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb3Igb25seSBjaGFyIGZvcm1pbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGF0IHRoZSBpbmRleAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEF0KGNoYXJbXSB0ZXh0LCBpbnQgaW5kZXgpIHsKKyAgICAgICAgY2hhciBjMSA9IHRleHRbaW5kZXgrK107CisgICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUoYzEpKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPCB0ZXh0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGNoYXIgYzIgPSB0ZXh0W2luZGV4XTsKKyAgICAgICAgICAgICAgICBpZiAoaXNMb3dTdXJyb2dhdGUoYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b0NvZGVQb2ludChjMSwgYzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzE7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIGNvZGUgcG9pbnQgYXQgaW5kZXguCisgICAgICogPGJyLz48Yj5Ob3RlPC9iPjogdGhlIHNlbWFudGljcyBvZiB0aGlzIEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVsYXRlZCBVVEYxNgorICAgICAqIEFQSS4gIFRoaXMgZXhhbWluZXMgb25seSB0aGUgY2hhcmFjdGVycyBhdCBpbmRleCBhbmQgaW5kZXgrMS4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9yIG9ubHkgY2hhciBmb3JtaW5nIHRoZSBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgdmFsaWQgdGV4dAorICAgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgYXQgdGhlIGluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QXQoY2hhcltdIHRleHQsIGludCBpbmRleCwgaW50IGxpbWl0KSB7CisgICAgaWYgKGluZGV4ID49IGxpbWl0IHx8IGxpbWl0ID4gdGV4dC5sZW5ndGgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICB9CisgICAgICAgIGNoYXIgYzEgPSB0ZXh0W2luZGV4KytdOworICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlKGMxKSkgeworICAgICAgICAgICAgaWYgKGluZGV4IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMyID0gdGV4dFtpbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9Db2RlUG9pbnQoYzEsIGMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGMxOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSBpbmRleC4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiB0aGUgc2VtYW50aWNzIG9mIHRoaXMgQVBJIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZWxhdGVkIFVURjE2CisgICAgICogQVBJLiAgVGhpcyBleGFtaW5lcyBvbmx5IHRoZSBjaGFyYWN0ZXJzIGF0IGluZGV4LTEgYW5kIGluZGV4LTIuCisgICAgICogQHBhcmFtIHNlcSB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3Qgb3Igb25seSBjaGFyIGZvcm1pbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSB0aGUgaW5kZXgKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QmVmb3JlKENoYXJTZXF1ZW5jZSBzZXEsIGludCBpbmRleCkgeworLy8jZWxzZQorLy8jIyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRCZWZvcmUoU3RyaW5nIHNlcSwgaW50IGluZGV4KSB7CisvLyNlbmRpZgorICAgICAgICBjaGFyIGMyID0gc2VxLmNoYXJBdCgtLWluZGV4KTsKKyAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgYzEgPSBzZXEuY2hhckF0KC0taW5kZXgpOworICAgICAgICAgICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUoYzEpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b0NvZGVQb2ludChjMSwgYzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzI7CisgICAgfQorLy8jaWZkZWYgRk9VTkRBVElPTgorLy8jIyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRCZWZvcmUoU3RyaW5nQnVmZmVyIHNlcSwgaW50IGluZGV4KSB7CisvLyMjICAgICAgICByZXR1cm4gY29kZVBvaW50QmVmb3JlKHNlcS50b1N0cmluZygpLCBpbmRleCk7CisvLyMjICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0aGUgY29kZSBwb2ludCBiZWZvcmUgaW5kZXguCisgICAgICogPGJyLz48Yj5Ob3RlPC9iPjogdGhlIHNlbWFudGljcyBvZiB0aGlzIEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVsYXRlZCBVVEYxNgorICAgICAqIEFQSS4gIFRoaXMgZXhhbWluZXMgb25seSB0aGUgY2hhcmFjdGVycyBhdCBpbmRleC0xIGFuZCBpbmRleC0yLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBjaGFyYWN0ZXJzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBvciBvbmx5IGNoYXIgZm9ybWluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgYmVmb3JlIHRoZSBpbmRleAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEJlZm9yZShjaGFyW10gdGV4dCwgaW50IGluZGV4KSB7CisgICAgICAgIGNoYXIgYzIgPSB0ZXh0Wy0taW5kZXhdOworICAgICAgICBpZiAoaXNMb3dTdXJyb2dhdGUoYzIpKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjMSA9IHRleHRbLS1pbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZShjMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvQ29kZVBvaW50KGMxLCBjMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0aGUgY29kZSBwb2ludCBiZWZvcmUgaW5kZXguCisgICAgICogPGJyLz48Yj5Ob3RlPC9iPjogdGhlIHNlbWFudGljcyBvZiB0aGlzIEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVsYXRlZCBVVEYxNgorICAgICAqIEFQSS4gIFRoaXMgZXhhbWluZXMgb25seSB0aGUgY2hhcmFjdGVycyBhdCBpbmRleC0xIGFuZCBpbmRleC0yLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBjaGFyYWN0ZXJzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBvciBvbmx5IGNoYXIgZm9ybWluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgc3RhcnQgb2YgdGhlIHZhbGlkIHRleHQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSB0aGUgaW5kZXgKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRCZWZvcmUoY2hhcltdIHRleHQsIGludCBpbmRleCwgaW50IGxpbWl0KSB7CisgICAgaWYgKGluZGV4IDw9IGxpbWl0IHx8IGxpbWl0IDwgMCkgeworICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgIH0KKyAgICAgICAgY2hhciBjMiA9IHRleHRbLS1pbmRleF07CisgICAgICAgIGlmIChpc0xvd1N1cnJvZ2F0ZShjMikpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgY2hhciBjMSA9IHRleHRbLS1pbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZShjMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvQ29kZVBvaW50KGMxLCBjMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFdyaXRlcyB0aGUgY2hhcnMgcmVwcmVzZW50aW5nIHRoZQorICAgICAqIGNvZGUgcG9pbnQgaW50byB0aGUgZGVzdGluYXRpb24gYXQgdGhlIGdpdmVuIGluZGV4LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIGRzdCB0aGUgZGVzdGluYXRpb24gYXJyYXkgaW50byB3aGljaCB0byBwdXQgdGhlIGNoYXIocykgcmVwcmVzZW50aW5nIHRoZSBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGRzdEluZGV4IHRoZSBpbmRleCBhdCB3aGljaCB0byBwdXQgdGhlIGZpcnN0IChvciBvbmx5KSBjaGFyCisgICAgICogQHJldHVybiB0aGUgY291bnQgb2YgdGhlIG51bWJlciBvZiBjaGFycyB3cml0dGVuICgxIG9yIDIpCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgY3AgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHRvQ2hhcnMoaW50IGNwLCBjaGFyW10gZHN0LCBpbnQgZHN0SW5kZXgpIHsKKyAgICAgICAgaWYgKGNwID49IDApIHsKKyAgICAgICAgICAgIGlmIChjcCA8IE1JTl9TVVBQTEVNRU5UQVJZX0NPREVfUE9JTlQpIHsKKyAgICAgICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gKGNoYXIpY3A7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3AgPD0gTUFYX0NPREVfUE9JTlQpIHsKKyAgICAgICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjcCk7CisgICAgICAgICAgICAgICAgZHN0W2RzdEluZGV4KzFdID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY3ApOworICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybnMgYSBjaGFyIGFycmF5CisgICAgICogcmVwcmVzZW50aW5nIHRoZSBjb2RlIHBvaW50LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBjb252ZXJ0CisgICAgICogQHJldHVybiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBjaGFyKHMpIHJlcHJlc2VudGluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGNwIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXJbXSB0b0NoYXJzKGludCBjcCkgeworICAgICAgICBpZiAoY3AgPj0gMCkgeworICAgICAgICAgICAgaWYgKGNwIDwgTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgY2hhcltdIHsgKGNoYXIpY3AgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjcCA8PSBNQVhfQ09ERV9QT0lOVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjcCksCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNwKQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gYSBieXRlIHJlcHJlc2VudGluZyB0aGUgZGlyZWN0aW9uYWxpdHkgb2YKKyAgICAgKiB0aGUgY2hhcmFjdGVyLgorICAgICAqIDxici8+PGI+Tm90ZTwvYj46IFVubGlrZSB0aGUgSkRLLCB0aGlzIHJldHVybnMgRElSRUNUSU9OQUxJVFlfTEVGVF9UT19SSUdIVCBmb3IgdW5kZWZpbmVkIG9yCisgICAgICogb3V0LW9mLWJvdW5kcyBjaGFyYWN0ZXJzLiAgPGJyLz48Yj5Ob3RlPC9iPjogVGhlIHJldHVybiB2YWx1ZSBtdXN0IGJlCisgICAgICogdGVzdGVkIHVzaW5nIHRoZSBjb25zdGFudHMgZGVmaW5lZCBpbiB7QGxpbmsgVUNoYXJhY3RlckVudW1zLkVDaGFyYWN0ZXJEaXJlY3Rpb259CisgICAgICogc2luY2UgdGhlIHZhbHVlcyBhcmUgZGlmZmVyZW50IGZyb20gdGhlIG9uZXMgZGVmaW5lZCBieSA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRoZSBkaXJlY3Rpb25hbGl0eSBvZiB0aGUgY29kZSBwb2ludAorICAgICAqIEBzZWUgI2dldERpcmVjdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBnZXREaXJlY3Rpb25hbGl0eShpbnQgY3ApCisgICAgeworICAgICAgICByZXR1cm4gKGJ5dGUpZ2V0RGlyZWN0aW9uKGNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgQ291bnQgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgcmFuZ2Ugb2YgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvZGVQb2ludENvdW50KENoYXJTZXF1ZW5jZSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworLy8jZWxzZQorLy8jIyAgICBwdWJsaWMgc3RhdGljIGludCBjb2RlUG9pbnRDb3VudChTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKy8vI2VuZGlmCisgICAgICAgIGlmIChzdGFydCA8IDAgfHwgbGltaXQgPCBzdGFydCB8fCBsaW1pdCA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJzdGFydCAoIiArIHN0YXJ0ICsKKyAgICAgICAgICAgICAgICAiKSBvciBsaW1pdCAoIiArIGxpbWl0ICsKKyAgICAgICAgICAgICAgICAiKSBpbnZhbGlkIG9yIG91dCBvZiByYW5nZSAwLCAiICsgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgd2hpbGUgKGxpbWl0ID4gc3RhcnQpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmNoYXJBdCgtLWxpbWl0KTsKKyAgICAgICAgICAgIHdoaWxlIChjaCA+PSBNSU5fTE9XX1NVUlJPR0FURSAmJiBjaCA8PSBNQVhfTE9XX1NVUlJPR0FURSAmJiBsaW1pdCA+IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXJBdCgtLWxpbWl0KTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPj0gTUlOX0hJR0hfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9ISUdIX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAtLWxlbjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBsZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyBBUEksIGZvciBjb252ZW5pZW5jZS4gIENvdW50IHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHJhbmdlIG9mIHRleHQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvZGVQb2ludENvdW50KGNoYXJbXSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGxpbWl0IDwgc3RhcnQgfHwgbGltaXQgPiB0ZXh0Lmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oInN0YXJ0ICgiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgb3IgbGltaXQgKCIgKyBsaW1pdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBpbnZhbGlkIG9yIG91dCBvZiByYW5nZSAwLCAiICsgdGV4dC5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbiA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIHdoaWxlIChsaW1pdCA+IHN0YXJ0KSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dFstLWxpbWl0XTsKKyAgICAgICAgICAgIHdoaWxlIChjaCA+PSBNSU5fTE9XX1NVUlJPR0FURSAmJiBjaCA8PSBNQVhfTE9XX1NVUlJPR0FURSAmJiBsaW1pdCA+IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgY2ggPSB0ZXh0Wy0tbGltaXRdOworICAgICAgICAgICAgICAgIGlmIChjaCA+PSBNSU5fSElHSF9TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0hJR0hfU1VSUk9HQVRFKSB7CisgICAgICAgICAgICAgICAgICAgIC0tbGVuOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgQWRqdXN0IHRoZSBjaGFyIGluZGV4IGJ5IGEgY29kZSBwb2ludCBvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IHRvIGFkanVzdAorICAgICAqIEBwYXJhbSBjb2RlUG9pbnRPZmZzZXQgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBieSB3aGljaCB0byBvZmZzZXQgdGhlIGluZGV4CisgICAgICogQHJldHVybiB0aGUgYWRqdXN0ZWQgaW5kZXgKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIHN0YXRpYyBpbnQgb2Zmc2V0QnlDb2RlUG9pbnRzKENoYXJTZXF1ZW5jZSB0ZXh0LCBpbnQgaW5kZXgsIGludCBjb2RlUG9pbnRPZmZzZXQpIHsKKy8vI2Vsc2UKKy8vIyMgICAgcHVibGljIHN0YXRpYyBpbnQgb2Zmc2V0QnlDb2RlUG9pbnRzKFN0cmluZyB0ZXh0LCBpbnQgaW5kZXgsIGludCBjb2RlUG9pbnRPZmZzZXQpIHsKKy8vI2VuZGlmCisgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiaW5kZXggKCAiICsgaW5kZXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgb3V0IG9mIHJhbmdlIDAsICIgKyB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb2RlUG9pbnRPZmZzZXQgPCAwKSB7CisgICAgICAgICAgICB3aGlsZSAoKytjb2RlUG9pbnRPZmZzZXQgPD0gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmNoYXJBdCgtLWluZGV4KTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0xPV19TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0xPV19TVVJST0dBVEUgJiYgaW5kZXggPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNoID0gdGV4dC5jaGFyQXQoLS1pbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IE1JTl9ISUdIX1NVUlJPR0FURSB8fCBjaCA+IE1BWF9ISUdIX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrY29kZVBvaW50T2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCsxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGxpbWl0ID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlICgtLWNvZGVQb2ludE9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuY2hhckF0KGluZGV4KyspOworICAgICAgICAgICAgICAgIHdoaWxlIChjaCA+PSBNSU5fSElHSF9TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0hJR0hfU1VSUk9HQVRFICYmIGluZGV4IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXJBdChpbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDwgTUlOX0xPV19TVVJST0dBVEUgfHwgY2ggPiBNQVhfTE9XX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0tY29kZVBvaW50T2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgQVBJLCBmb3IgY29udmVuaWVuY2UuICBBZGp1c3QgdGhlIGNoYXIgaW5kZXggYnkgYSBjb2RlIHBvaW50IG9mZnNldC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBsZW5ndGggb2YgdGhlIHJhbmdlIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB0byBhZGp1c3QKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50T2Zmc2V0IHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgYnkgd2hpY2ggdG8gb2Zmc2V0IHRoZSBpbmRleAorICAgICAqIEByZXR1cm4gdGhlIGFkanVzdGVkIGluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgb2Zmc2V0QnlDb2RlUG9pbnRzKGNoYXJbXSB0ZXh0LCBpbnQgc3RhcnQsIGludCBjb3VudCwgaW50IGluZGV4LCBpbnQgY29kZVBvaW50T2Zmc2V0KSB7CisgICAgICAgIGludCBsaW1pdCA9IHN0YXJ0ICsgY291bnQ7CisgICAgICAgIGlmIChzdGFydCA8IDAgfHwgbGltaXQgPCBzdGFydCB8fCBsaW1pdCA+IHRleHQubGVuZ3RoIHx8IGluZGV4IDwgc3RhcnQgfHwgaW5kZXggPiBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oImluZGV4ICggIiArIGluZGV4ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG91dCBvZiByYW5nZSAiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIGxpbWl0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW4gYXJyYXkgMCwgIiArIHRleHQubGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb2RlUG9pbnRPZmZzZXQgPCAwKSB7CisgICAgICAgICAgICB3aGlsZSAoKytjb2RlUG9pbnRPZmZzZXQgPD0gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0Wy0taW5kZXhdOworICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJpbmRleCAoICIgKyBpbmRleCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIDwgc3RhcnQgKCIgKyBzdGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlIChjaCA+PSBNSU5fTE9XX1NVUlJPR0FURSAmJiBjaCA8PSBNQVhfTE9XX1NVUlJPR0FURSAmJiBpbmRleCA+IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGNoID0gdGV4dFstLWluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDwgTUlOX0hJR0hfU1VSUk9HQVRFIHx8IGNoID4gTUFYX0hJR0hfU1VSUk9HQVRFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytjb2RlUG9pbnRPZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4KzE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoLS1jb2RlUG9pbnRPZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0W2luZGV4KytdOworICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJpbmRleCAoICIgKyBpbmRleCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpID4gbGltaXQgKCIgKyBsaW1pdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlIChjaCA+PSBNSU5fSElHSF9TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0hJR0hfU1VSUk9HQVRFICYmIGluZGV4IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSB0ZXh0W2luZGV4KytdOworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPCBNSU5fTE9XX1NVUlJPR0FURSB8fCBjaCA+IE1BWF9MT1dfU1VSUk9HQVRFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLS1jb2RlUG9pbnRPZmZzZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4LTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorCisgICAgLy8gcHJvdGVjdGVkIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIERhdGFiYXNlIHN0b3JpbmcgdGhlIHNldHMgb2YgY2hhcmFjdGVyIG5hbWUKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNoYXJhY3Rlck5hbWUgTkFNRV8gPSBudWxsOworCisgICAgLyoqCisgICAgICogU2luZ2xldG9uIG9iamVjdCBlbmNhcHN1bGF0aW5nIHRoZSBpbXBvcnRlZCBwbmFtZXMuaWN1IHByb3BlcnR5IGFsaWFzZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgVVByb3BlcnR5QWxpYXNlcyBQTkFNRVNfID0gbnVsbDsKKyAgICAgIAorICAgIC8vIGJsb2NrIHRvIGluaXRpYWxpc2UgbmFtZSBkYXRhYmFzZSBhbmQgdW5pY29kZSAxLjAgZGF0YSAKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUE5BTUVTXyA9IG5ldyBVUHJvcGVydHlBbGlhc2VzKCk7CisgICAgICAgICAgICBOQU1FXyA9IFVDaGFyYWN0ZXJOYW1lLmdldEluc3RhbmNlKCk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgICAgIC8vdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgLy8gRE9OT1QgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgICAgICAvLyB3ZSBtaWdodCBiZSBidWlsZGluZyBJQ1UgbW9kdWxhcmx5IHdvdGhvdXQgbmFtZXMuaWN1IGFuZAorICAgICAgICAgICAgLy8gcG5hbWVzLmljdQorICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogRGF0YWJhc2Ugc3RvcmluZyB0aGUgc2V0cyBvZiBjaGFyYWN0ZXIgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyUHJvcGVydHkgUFJPUEVSVFlfOworICAgIC8qKgorICAgICAqIEZvciBvcHRpbWl6YXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gUFJPUEVSVFlfVFJJRV9JTkRFWF87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIFBST1BFUlRZX1RSSUVfREFUQV87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBST1BFUlRZX0lOSVRJQUxfVkFMVUVfOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUNhc2VQcm9wcyBnQ3NwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVCaURpUHJvcHMgZ0JkcDsKKworICAgIC8vIGJsb2NrIHRvIGluaXRpYWxpc2UgY2hhcmFjdGVyIHByb3BlcnR5IGRhdGFiYXNlCisgICAgc3RhdGljCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgUFJPUEVSVFlfID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBQUk9QRVJUWV9UUklFX0lOREVYXyA9IFBST1BFUlRZXy5tX3RyaWVJbmRleF87CisgICAgICAgICAgICBQUk9QRVJUWV9UUklFX0RBVEFfID0gUFJPUEVSVFlfLm1fdHJpZURhdGFfOworICAgICAgICAgICAgUFJPUEVSVFlfSU5JVElBTF9WQUxVRV8gPSBQUk9QRVJUWV8ubV90cmllSW5pdGlhbFZhbHVlXzsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIiIsIiIpOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW4gSUNVNEogMy4yLCBtb3N0IFVuaWNvZGUgcHJvcGVydGllcyB3ZXJlIGxvYWRlZCBmcm9tIHVwcm9wcy5pY3UuCisgICAgICAgICAqIElDVTRKIDMuNCBhZGRzIHVjYXNlLmljdSBmb3IgY2FzZSBtYXBwaW5nIHByb3BlcnRpZXMgYW5kCisgICAgICAgICAqIHViaWRpLmljdSBmb3IgYmlkaS9zaGFwaW5nIHByb3BlcnRpZXMgYW5kCisgICAgICAgICAqIHJlbW92ZXMgY2FzZS9iaWRpL3NoYXBpbmcgcHJvcGVydGllcyBmcm9tIHVwcm9wcy5pY3UuCisgICAgICAgICAqCisgICAgICAgICAqIExvYWRpbmcgb2YgdXByb3BzLmljdSB3YXMgYWx3YXlzIGRvbmUgZHVyaW5nIGNsYXNzIGxvYWRpbmcgb2YgVUNoYXJhY3Rlci5jbGFzcy4KKyAgICAgICAgICogSW4gb3JkZXIgdG8gbWFpbnRhaW4gcGVyZm9ybWFuY2UgZm9yIGFsbCBzdWNoIHByb3BlcnRpZXMsCisgICAgICAgICAqIHVjYXNlLmljdSBhbmQgdWJpZGkuaWN1IGFyZSBhbHNvIGxvYWRlZCBkdXJpbmcgY2xhc3MgbG9hZGluZyBvZiBVQ2hhcmFjdGVyLmNsYXNzLgorICAgICAgICAgKiBJdCB3aWxsIG5vdCBmYWlsIGlmIHRoZXkgYXJlIG1pc3NpbmcuCisgICAgICAgICAqIFRoZXNlIGRhdGEgaXRlbXMgYXJlIGxvYWRlZCBlYXJseSB0byBhdm9pZCBoYXZpbmcgdG8gc3luY2hyb25pemUgYWNjZXNzIHRvIHRoZW0sCisgICAgICAgICAqIGZvciB0aHJlYWQgc2FmZXR5IGFuZCBwZXJmb3JtYW5jZS4KKyAgICAgICAgICoKKyAgICAgICAgICogV2UgdHJ5IHRvIGxvYWQgdGhlc2UgZGF0YSBpdGVtcyBhdCBtb3N0IG9uY2UuCisgICAgICAgICAqIElmIGl0IHdvcmtzLCB3ZSB1c2UgdGhlIHJlc3VsdGluZyBzaW5nbGV0b24gb2JqZWN0LgorICAgICAgICAgKiBJZiBpdCBmYWlscywgdGhlbiB3ZSBnZXQgYSBkdW1teSBvYmplY3QsIHdoaWNoIGFsd2F5cyB3b3JrcyB1bmxlc3MKKyAgICAgICAgICogd2UgYXJlIHNlcmlvdXNseSBvdXQgb2YgbWVtb3J5LgorICAgICAgICAgKiBBZnRlciBVQ2hhcmFjdGVyLmNsYXNzIGxvYWRpbmcsIHdlIGhhdmUgYSBuZXZlci1jaGFuZ2luZyBwb2ludGVyIHRvIGVpdGhlciB0aGUKKyAgICAgICAgICogcmVhbCBzaW5nbGV0b24gb3IgdGhlIGR1bW15LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIFVuaWNvZGUgcHJvcGVydGllcyBBUElzIHRoYXQKKyAgICAgICAgICogZG8gbm90IGhhdmUgYSBzZXJ2aWNlIG9iamVjdCBhbmQgYWxzbyBkbyBub3QgaGF2ZSBhbiBlcnJvciBjb2RlIHBhcmFtZXRlci4KKyAgICAgICAgICogT3RoZXIgQVBJIGltcGxlbWVudGF0aW9ucyBnZXQgdGhlIHNpbmdsZXRvbiB0aGVtc2VsdmVzCisgICAgICAgICAqIChzeW5jaHJvbml6ZWQpLCBzdG9yZSBpdCBpbiB0aGUgc2VydmljZSBvYmplY3QsIGFuZCByZXBvcnQgZXJyb3JzLgorICAgICAgICAgKi8KKyAgICAgICAgVUNhc2VQcm9wcyBjc3A7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjc3A9VUNhc2VQcm9wcy5nZXRTaW5nbGV0b24oKTsKKyAgICAgICAgfSBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjc3A9VUNhc2VQcm9wcy5nZXREdW1teSgpOworICAgICAgICB9CisgICAgICAgIGdDc3A9Y3NwOworCisgICAgICAgIFVCaURpUHJvcHMgYmRwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYmRwPVVCaURpUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYmRwPVVCaURpUHJvcHMuZ2V0RHVtbXkoKTsKKyAgICAgICAgfQorICAgICAgICBnQmRwPWJkcDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVG8gZ2V0IHRoZSBsYXN0IGNoYXJhY3RlciBvdXQgZnJvbSBhIGRhdGEgdHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0NIQVJfTUFTS18gPSAweEZGRkY7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBUbyBnZXQgdGhlIGxhc3QgYnl0ZSBvdXQgZnJvbSBhIGRhdGEgdHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweEZGOworICAgICAgCisgICAgLyoqCisgICAgICogU2hpZnQgMTYgYml0cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSElGVF8xNl8gPSAxNjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIFNoaWZ0IDI0IGJpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlRfMjRfID0gMjQ7ICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsIHJhZGl4CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ0lNQUxfUkFESVhfID0gMTA7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBObyBicmVhayBzcGFjZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PX0JSRUFLX1NQQUNFXyA9IDB4QTA7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBOYXJyb3cgbm8gYnJlYWsgc3BhY2UgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQVJST1dfTk9fQlJFQUtfU1BBQ0VfID0gMHgyMDJGOworICAgICAgCisgICAgLyoqCisgICAgICogWmVybyB3aWR0aCBubyBicmVhayBzcGFjZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpFUk9fV0lEVEhfTk9fQlJFQUtfU1BBQ0VfID0gMHhGRUZGOworICAgICAgCisgICAgLyoqCisgICAgICogSWRlb2dyYXBoaWMgbnVtYmVyIHplcm8gY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJREVPR1JBUEhJQ19OVU1CRVJfWkVST18gPSAweDMwMDc7CisgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBGaXJzdCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfRklSU1RfID0gMHg0ZTAwOworICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgU2Vjb25kIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9TRUNPTkRfID0gMHg0ZThjOworICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgVGhpcmQgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1RISVJEXyA9IDB4NGUwOTsKKyAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIEZvdXJ0aCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfRk9VUlRIXyA9IDB4NTZkODsKKyAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIEZJRlRIIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9GSUZUSF8gPSAweDRlOTQ7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBTaXh0aCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfU0lYVEhfID0gMHg1MTZkOworICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgU2V2ZW50aCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfU0VWRU5USF8gPSAweDRlMDM7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBFaWdodGggY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0VJR0hUSF8gPSAweDUxNmI7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBOaW5ldGggY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX05JTkVUSF8gPSAweDRlNWQ7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBBcHBsaWNhdGlvbiBQcm9ncmFtIGNvbW1hbmQgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBUFBMSUNBVElPTl9QUk9HUkFNX0NPTU1BTkRfID0gMHgwMDlGOworICAgICAgCisgICAgLyoqCisgICAgICogVW5pdCBzZXBhcmF0b3IgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTklUX1NFUEFSQVRPUl8gPSAweDAwMUY7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBEZWxldGUgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUxFVEVfID0gMHgwMDdGOworICAgIC8qKgorICAgICAqIElTTyBjb250cm9sIGNoYXJhY3RlciBmaXJzdCByYW5nZSB1cHBlciBsaW1pdCAweDAgLSAweDFGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElTT19DT05UUk9MX0ZJUlNUX1JBTkdFX01BWF8gPSAweDFGOworICAgIC8qKgorICAgICAqIFNoaWZ0IHRvIGdldCBudW1lcmljIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQ19UWVBFX1NISUZUXyA9IDU7CisgICAgLyoqCisgICAgICogTWFzayB0byBnZXQgbnVtZXJpYyB0eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUNfVFlQRV9NQVNLXyA9IDB4NyA8PCBOVU1FUklDX1RZUEVfU0hJRlRfOworICAgICAgCisgICAgLyogZW5jb2Rpbmcgb2YgZnJhY3Rpb25hbCBhbmQgbGFyZ2UgbnVtYmVycyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfU01BTExfTlVNQkVSPTB4ZmY7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05fTlVNX1NISUZUPTM7ICAgICAgICAvKiBudW1lcmF0b3I6IGJpdHMgNy4uMyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9ERU5fTUFTSz03OyAgICAgICAgIC8qIGRlbm9taW5hdG9yOiBiaXRzIDIuLjAgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9NQVhfTlVNPTMxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9ERU5fT0ZGU0VUPTI7ICAgICAgIC8qIGRlbm9taW5hdG9yIHZhbHVlcyBhcmUgMi4uOSAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX01JTl9ERU49RlJBQ1RJT05fREVOX09GRlNFVDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05fTUFYX0RFTj1GUkFDVElPTl9NSU5fREVOK0ZSQUNUSU9OX0RFTl9NQVNLOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBUkdFX01BTlRfU0hJRlQ9NDsgICAgICAgICAgLyogbWFudGlzc2E6IGJpdHMgNy4uNCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVJHRV9FWFBfTUFTSz0weGY7ICAgICAgICAgIC8qIGV4cG9uZW50OiBiaXRzIDMuLjAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFSR0VfRVhQX09GRlNFVD0yOyAgICAgICAgICAvKiByZWd1bGFyIGV4cG9uZW50cyAyLi4xNyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVJHRV9FWFBfT0ZGU0VUX0VYVFJBPTE4OyAgIC8qIGV4dHJhIGxhcmdlIGV4cG9uZW50cyAxOC4uMzMgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVJHRV9NSU5fRVhQPUxBUkdFX0VYUF9PRkZTRVQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBUkdFX01BWF9FWFA9TEFSR0VfTUlOX0VYUCtMQVJHRV9FWFBfTUFTSzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFSR0VfTUFYX0VYUF9FWFRSQT1MQVJHRV9FWFBfT0ZGU0VUX0VYVFJBK0xBUkdFX0VYUF9NQVNLOworCisgICAgLyoqCisgICAgICogSGFuIGRpZ2l0IGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1pFUk9fICAgICA9IDB4OTZmNjsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9PTkVfICAgICAgPSAweDU4Zjk7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfVFdPXyAgICAgID0gMHg4Y2IzOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RIUkVFXyAgICA9IDB4NTNjMzsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9GT1VSXyAgICAgPSAweDgwODY7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfRklWRV8gICAgID0gMHg0ZjBkOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1NJWF8gICAgICA9IDB4OTY3ODsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9TRVZFTl8gICAgPSAweDY3ZDI7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfRUlHSFRfICAgID0gMHg2MzRjOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX05JTkVfICAgICA9IDB4NzM5NjsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfVEVOXyAgICAgICAgICAgICAgPSAweDUzNDE7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEVOXyAgICAgID0gMHg2MmZlOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9IVU5EUkVEXyAgICAgICAgICA9IDB4NzY3ZTsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9IVU5EUkVEXyAgPSAweDRmNzA7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1RIT1VTQU5EXyAgICAgICAgID0gMHg1MzQzOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RIT1VTQU5EXyA9IDB4NGVkZjsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfVEVOX1RIT1VTQU5EXyAgICAgPSAweDgyNGM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0hVTkRSRURfTUlMTElPTl8gID0gMHg1MTA0OworCisgICAgLyoqCisgICAgICogWmVybyBXaWR0aCBOb24gSm9pbmVyLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgWldOSi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWkVST19XSURUSF9OT05fSk9JTkVSXyA9IDB4MjAwYzsKKyAgICAvKioKKyAgICAgKiBaZXJvIFdpZHRoIEpvaW5lcgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgWldKLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWkVST19XSURUSF9KT0lORVJfID0gMHgyMDBkOworCisgICAgLyoKKyAgICAgKiBQcm9wZXJ0aWVzIGluIHZlY3RvciB3b3JkIDIKKyAgICAgKiBCaXRzCisgICAgICogMzEuLjI0ICAgTW9yZSBiaW5hcnkgcHJvcGVydGllcyAoc2VlIFVDaGFyYWN0ZXJQcm9wZXJ0eSkKKyAgICAgKiAyMy4uMTkgICByZXNlcnZlZAorICAgICAqIDE4Li4xNCAgIFNlbnRlbmNlIEJyZWFrCisgICAgICogMTMuLjEwICAgV29yZCBCcmVhaworICAgICAqICA5Li4gNSAgIEdyYXBoZW1lIENsdXN0ZXIgQnJlYWsKKyAgICAgKiAgNC4uIDAgICBEZWNvbXBvc2l0aW9uIFR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0JfTUFTSyAgICAgICAgICA9IDB4MDAwN2MwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNCX1NISUZUICAgICAgICAgPSAxNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBXQl9NQVNLICAgICAgICAgID0gMHgwMDAwM2MwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgV0JfU0hJRlQgICAgICAgICA9IDEwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDQl9NQVNLICAgICAgICAgPSAweDAwMDAwM2UwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ0JfU0hJRlQgICAgICAgID0gNTsKKworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGZvciBkZWNvbXBvc2l0aW9uIHR5cGUuCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfRFRfTUFTSy4gCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUNPTVBPU0lUSU9OX1RZUEVfTUFTS18gPSAweDAwMDAwMDFmOworCisgICAgLyoKKyAgICAgKiBQcm9wZXJ0aWVzIGluIHZlY3RvciB3b3JkIDAKKyAgICAgKiBCaXRzCisgICAgICogMzEuLjI0ICAgRGVyaXZlZEFnZSB2ZXJzaW9uIG1ham9yL21pbm9yIG9uZSBuaWJibGUgZWFjaCAoc2VlIFVDaGFyYWN0ZXJQcm9wZXJ0eSkKKyAgICAgKiAyMy4uMTggICBMaW5lIEJyZWFrCisgICAgICogMTcuLjE1ICAgRWFzdCBBc2lhbiBXaWR0aAorICAgICAqIDE0Li4gNyAgIFVCbG9ja0NvZGUKKyAgICAgKiAgNi4uIDAgICBVU2NyaXB0Q29kZQorICAgICAqLworCisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgYW5kIHNoaWZ0IHZhbHVlcyBmb3IgRWFzdCBBc2lhbiBjZWxsIHdpZHRoLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX0VBX01BU0sgCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFQVNUX0FTSUFOX01BU0tfID0gMHgwMDAzODAwMDsKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBhbmQgc2hpZnQgdmFsdWVzIGZvciBFYXN0IEFzaWFuIGNlbGwgd2lkdGguCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfRUFfU0hJRlQgCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFQVNUX0FTSUFOX1NISUZUXyA9IDE1OworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGFuZCBzaGlmdCB2YWx1ZXMgZm9yIGxpbmUgYnJlYWtzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX0xCX01BU0sgCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU5FX0JSRUFLX01BU0tfID0gMHgwMEZDMDAwMDsKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBhbmQgc2hpZnQgdmFsdWVzIGZvciBsaW5lIGJyZWFrcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19MQl9TSElGVCAKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTkVfQlJFQUtfU0hJRlRfID0gMTg7CisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgYW5kIHNoaWZ0IHZhbHVlcyBmb3IgYmxvY2tzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX0JMT0NLX01BU0sgCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCTE9DS19NQVNLXyA9IDB4MDAwMDdmODA7CisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgYW5kIHNoaWZ0IHZhbHVlcyBmb3IgYmxvY2tzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX0JMT0NLX1NISUZUIAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQkxPQ0tfU0hJRlRfID0gNzsKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBhbmQgc2hpZnQgdmFsdWVzIGZvciBzY3JpcHRzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX1NISUZUX01BU0sKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNDUklQVF9NQVNLXyA9IDB4MDAwMDAwN2Y7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8vQ0xPVkVSOk9GRiAgCisgICAgLyoqCisgICAgICogUHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGluc3RhbnRpYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXIoKQorICAgIHsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIHRoZSBkaWdpdCB2YWx1ZXMgb2YgY2hhcmFjdGVycyBsaWtlICdBJyAtICdaJywgbm9ybWFsLCAKKyAgICAgKiBoYWxmLXdpZHRoIGFuZCBmdWxsLXdpZHRoLiBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgdGhlIG90aGVyIGRpZ2l0IAorICAgICAqIGNoYXJhY3RlcnMgYXJlIGNoZWNrZWQgYnkgdGhlIGNhbGxpbmcgbWV0aG9kLgorICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gdGVzdAorICAgICAqIEByZXR1cm4gLTEgaWYgY2ggaXMgbm90IGEgY2hhcmFjdGVyIG9mIHRoZSBmb3JtICdBJyAtICdaJywgb3RoZXJ3aXNlCisgICAgICogICAgICAgICBpdHMgY29ycmVzcG9uZGluZyBkaWdpdCB3aWxsIGJlIHJldHVybmVkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRFdXJvcGVhbkRpZ2l0KGludCBjaCkgeworICAgICAgICBpZiAoKGNoID4gMHg3YSAmJiBjaCA8IDB4ZmYyMSkgIAorICAgICAgICAgICAgfHwgY2ggPCAweDQxIHx8IChjaCA+IDB4NWEgJiYgY2ggPCAweDYxKQorICAgICAgICAgICAgfHwgY2ggPiAweGZmNWEgfHwgKGNoID4gMHhmZjMxICYmIGNoIDwgMHhmZjQxKSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9IAorICAgICAgICBpZiAoY2ggPD0gMHg3YSkgeworICAgICAgICAgICAgLy8gY2ggPj0gMHg0MSBvciBjaCA8IDB4NjEgCisgICAgICAgICAgICByZXR1cm4gY2ggKyAxMCAtICgoY2ggPD0gMHg1YSkgPyAweDQxIDogMHg2MSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2ggPj0gMHhmZjIxCisgICAgICAgIGlmIChjaCA8PSAweGZmM2EpIHsKKyAgICAgICAgICAgIHJldHVybiBjaCArIDEwIC0gMHhmZjIxOworICAgICAgICB9IAorICAgICAgICAvLyBjaCA+PSAweGZmNDEgJiYgY2ggPD0gMHhmZjVhCisgICAgICAgIHJldHVybiBjaCArIDEwIC0gMHhmZjQxOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBudW1lcmljIHR5cGUgb2YgdGhlIHByb3BlcnR5IGFyZ3VtZW50CisgICAgICogQHBhcmFtIHByb3BzIDMyIGJpdCBwcm9wZXJ0eQorICAgICAqIEByZXR1cm4gdGhlIG51bWVyaWMgdHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXROdW1lcmljVHlwZShpbnQgcHJvcHMpCisgICAgeworICAgICAgICByZXR1cm4gKHByb3BzICYgTlVNRVJJQ19UWVBFX01BU0tfKSA+PiBOVU1FUklDX1RZUEVfU0hJRlRfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBwcm9wZXJ0eSB2YWx1ZSBhdCB0aGUgaW5kZXguCisgICAgICogVGhpcyBpcyBvcHRpbWl6ZWQuCisgICAgICogTm90ZSB0aGlzIGlzIGFsaXR0bGUgZGlmZmVyZW50IGZyb20gQ2hhclRyaWUgdGhlIGluZGV4IG1fdHJpZURhdGFfCisgICAgICogaXMgbmV2ZXIgbmVnYXRpdmUuCisgICAgICogVGhpcyBpcyBhIGR1cGxpY2F0ZSBvZiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UHJvcGVydHkuIEZvciBvcHRpbWl6YXRpb24KKyAgICAgKiBwdXJwb3NlcywgdGhpcyBtZXRob2QgY2FsbHMgdGhlIHRyaWUgZGF0YSBkaXJlY3RseSBpbnN0ZWFkIG9mIHRocm91Z2ggCisgICAgICogVUNoYXJhY3RlclByb3BlcnR5LmdldFByb3BlcnR5LgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIHByb3BlcnR5IHZhbHVlIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gcHJvcGVydHkgdmFsdWUgb2YgY29kZSBwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRQcm9wZXJ0eShpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgCisgICAgICAgICAgICB8fCAoY2ggPiBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUgCisgICAgICAgICAgICAgICAgJiYgY2ggPCBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIC8vIEJNUCBjb2RlcG9pbnQgMDAwMC4uRDdGRiBvciBEQzAwLi5GRkZGCisgICAgICAgICAgICB0cnkgeyAvLyB1c2luZyB0cnkgZm9yIGNoIDwgMCBpcyBmYXN0ZXIgdGhhbiB1c2luZyBhbiBpZiBzdGF0ZW1lbnQKKyAgICAgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfVFJJRV9EQVRBX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQUk9QRVJUWV9UUklFX0lOREVYX1tjaCA+PiA1XSA8PCAyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGNoICYgMHgxZildOworICAgICAgICAgICAgfSBjYXRjaCAoQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfSU5JVElBTF9WQUxVRV87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoIDw9IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgLy8gbGVhZCBzdXJyb2dhdGUgRDgwMC4uREJGRgorICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZX1RSSUVfREFUQV9bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUFJPUEVSVFlfVFJJRV9JTkRFWF9bKDB4MjgwMCA+PiA1KSArIChjaCA+PiA1KV0gPDwgMikgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChjaCAmIDB4MWYpXTsKKyAgICAgICAgfQorICAgICAgICAvLyBmb3Igb3B0aW1pemF0aW9uCisgICAgICAgIGlmIChjaCA8PSBVVEYxNi5DT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgMTAwMDAuLjEwRkZGRgorICAgICAgICAgICAgLy8gbG9vayBhdCB0aGUgY29uc3RydWN0aW9uIG9mIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gdHJhaWwgZm9ybXMgdGhlIGVuZHMgb2YgaXQuCisgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfLm1fdHJpZV8uZ2V0U3Vycm9nYXRlVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoY2gpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKGNoICYgMHgzZmYpKTsKKyAgICAgICAgfQorICAgICAgICAvLyByZXR1cm4gbV9kYXRhT2Zmc2V0XyBpZiB0aGVyZSBpcyBhbiBlcnJvciwgaW4gdGhpcyBjYXNlIHdlIHJldHVybiAKKyAgICAgICAgLy8gdGhlIGRlZmF1bHQgdmFsdWU6IG1faW5pdGlhbFZhbHVlXworICAgICAgICAvLyB3ZSBjYW5ub3QgYXNzdW1lIHRoYXQgbV9pbml0aWFsVmFsdWVfIGlzIGF0IG9mZnNldCAwCisgICAgICAgIC8vIHRoaXMgaXMgZm9yIG9wdGltaXphdGlvbi4KKyAgICAgICAgcmV0dXJuIFBST1BFUlRZX0lOSVRJQUxfVkFMVUVfOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJDYXRlZ29yeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjBjMGE2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJDYXRlZ29yeS5qYXZhCkBAIC0wLDAgKzEsMTEyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRW51bXMuRUNoYXJhY3RlckNhdGVnb3J5OworCisvKioKKyAqIEVudW1lcmF0ZWQgVW5pY29kZSBjYXRlZ29yeSB0eXBlcyBmcm9tIHRoZSBVbmljb2RlRGF0YS50eHQgZmlsZS4KKyAqIFVzZWQgYXMgcmV0dXJuIHJlc3VsdHMgZnJvbSA8YSBocmVmPVVDaGFyYWN0ZXIuaHRtbD5VQ2hhcmFjdGVyPC9hPgorICogRXF1aXZhbGVudCB0byBpY3UncyBVQ2hhckNhdGVnb3J5LgorICogUmVmZXIgdG8gPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvVU5JREFUQS9VQ0QuaHRtbCI+CisgKiBVbmljb2RlIENvbnNvcnRpdW08L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGVEYXRhLnR4dC4KKyAqIDxwPgorICogPGVtPk5PVEU6PC9lbT4gdGhlIFVDaGFyYWN0ZXJDYXRlZ29yeSB2YWx1ZXMgYXJlIDxlbT5ub3Q8L2VtPiBjb21wYXRpYmxlIHdpdGgKKyAqIHRob3NlIHJldHVybmVkIGJ5IGphdmEubGFuZy5DaGFyYWN0ZXIuZ2V0VHlwZS4gIFVDaGFyYWN0ZXJDYXRlZ29yeSB2YWx1ZXMKKyAqIG1hdGNoIHRoZSBvbmVzIHVzZWQgaW4gSUNVNEMsIHdoaWxlIGphdmEubGFuZy5DaGFyYWN0ZXIgdHlwZQorICogdmFsdWVzLCB0aG91Z2ggc2ltaWxhciwgc2tpcCB0aGUgdmFsdWUgMTcuPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjEKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlckNhdGVnb3J5IGltcGxlbWVudHMgRUNoYXJhY3RlckNhdGVnb3J5Cit7CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgYXJndW1lbnQgY2F0ZWdvcnkKKyAgICAgKiBAcGFyYW0gY2F0ZWdvcnkgdG8gcmV0cmlldmUgbmFtZQorICAgICAqIEByZXR1cm4gY2F0ZWdvcnkgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCBjYXRlZ29yeSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoY2F0ZWdvcnkpIHsKKyAgICAgICAgY2FzZSBVUFBFUkNBU0VfTEVUVEVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTGV0dGVyLCBVcHBlcmNhc2UiOworICAgICAgICBjYXNlIExPV0VSQ0FTRV9MRVRURVIgOgorICAgICAgICAgICAgcmV0dXJuICJMZXR0ZXIsIExvd2VyY2FzZSI7CisgICAgICAgIGNhc2UgVElUTEVDQVNFX0xFVFRFUiA6CisgICAgICAgICAgICByZXR1cm4gIkxldHRlciwgVGl0bGVjYXNlIjsKKyAgICAgICAgY2FzZSBNT0RJRklFUl9MRVRURVIgOgorICAgICAgICAgICAgcmV0dXJuICJMZXR0ZXIsIE1vZGlmaWVyIjsKKyAgICAgICAgY2FzZSBPVEhFUl9MRVRURVIgOgorICAgICAgICAgICAgcmV0dXJuICJMZXR0ZXIsIE90aGVyIjsKKyAgICAgICAgY2FzZSBOT05fU1BBQ0lOR19NQVJLIDoKKyAgICAgICAgICAgIHJldHVybiAiTWFyaywgTm9uLVNwYWNpbmciOworICAgICAgICBjYXNlIEVOQ0xPU0lOR19NQVJLIDogCisgICAgICAgICAgICByZXR1cm4gIk1hcmssIEVuY2xvc2luZyI7CisgICAgICAgIGNhc2UgQ09NQklOSU5HX1NQQUNJTkdfTUFSSyA6CisgICAgICAgICAgICByZXR1cm4gIk1hcmssIFNwYWNpbmcgQ29tYmluaW5nIjsKKyAgICAgICAgY2FzZSBERUNJTUFMX0RJR0lUX05VTUJFUiA6CisgICAgICAgICAgICByZXR1cm4gIk51bWJlciwgRGVjaW1hbCBEaWdpdCI7CisgICAgICAgIGNhc2UgTEVUVEVSX05VTUJFUiA6CisgICAgICAgICAgICByZXR1cm4gIk51bWJlciwgTGV0dGVyIjsKKyAgICAgICAgY2FzZSBPVEhFUl9OVU1CRVIgOgorICAgICAgICAgICAgcmV0dXJuICJOdW1iZXIsIE90aGVyIjsKKyAgICAgICAgY2FzZSBTUEFDRV9TRVBBUkFUT1IgOgorICAgICAgICAgICAgcmV0dXJuICJTZXBhcmF0b3IsIFNwYWNlIjsKKyAgICAgICAgY2FzZSBMSU5FX1NFUEFSQVRPUiA6CisgICAgICAgICAgICByZXR1cm4gIlNlcGFyYXRvciwgTGluZSI7CisgICAgICAgIGNhc2UgUEFSQUdSQVBIX1NFUEFSQVRPUiA6CisgICAgICAgICAgICByZXR1cm4gIlNlcGFyYXRvciwgUGFyYWdyYXBoIjsKKyAgICAgICAgY2FzZSBDT05UUk9MIDoKKyAgICAgICAgICAgIHJldHVybiAiT3RoZXIsIENvbnRyb2wiOworICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICByZXR1cm4gIk90aGVyLCBGb3JtYXQiOworICAgICAgICBjYXNlIFBSSVZBVEVfVVNFIDoKKyAgICAgICAgICAgIHJldHVybiAiT3RoZXIsIFByaXZhdGUgVXNlIjsKKyAgICAgICAgY2FzZSBTVVJST0dBVEUgOgorICAgICAgICAgICAgcmV0dXJuICJPdGhlciwgU3Vycm9nYXRlIjsKKyAgICAgICAgY2FzZSBEQVNIX1BVTkNUVUFUSU9OIDoKKyAgICAgICAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIERhc2giOworICAgICAgICBjYXNlIFNUQVJUX1BVTkNUVUFUSU9OIDoKKyAgICAgICAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIE9wZW4iOworICAgICAgICBjYXNlIEVORF9QVU5DVFVBVElPTiA6CisgICAgICAgICAgICByZXR1cm4gIlB1bmN0dWF0aW9uLCBDbG9zZSI7CisgICAgICAgIGNhc2UgQ09OTkVDVE9SX1BVTkNUVUFUSU9OIDoKKyAgICAgICAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIENvbm5lY3RvciI7CisgICAgICAgIGNhc2UgT1RIRVJfUFVOQ1RVQVRJT04gOgorICAgICAgICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgT3RoZXIiOworICAgICAgICBjYXNlIE1BVEhfU1lNQk9MIDoKKyAgICAgICAgICAgIHJldHVybiAiU3ltYm9sLCBNYXRoIjsKKyAgICAgICAgY2FzZSBDVVJSRU5DWV9TWU1CT0wgOgorICAgICAgICAgICAgcmV0dXJuICJTeW1ib2wsIEN1cnJlbmN5IjsKKyAgICAgICAgY2FzZSBNT0RJRklFUl9TWU1CT0wgOgorICAgICAgICAgICAgcmV0dXJuICJTeW1ib2wsIE1vZGlmaWVyIjsKKyAgICAgICAgY2FzZSBPVEhFUl9TWU1CT0wgOgorICAgICAgICAgICAgcmV0dXJuICJTeW1ib2wsIE90aGVyIjsKKyAgICAgICAgY2FzZSBJTklUSUFMX1BVTkNUVUFUSU9OIDoKKyAgICAgICAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIEluaXRpYWwgcXVvdGUiOworICAgICAgICBjYXNlIEZJTkFMX1BVTkNUVUFUSU9OIDoKKyAgICAgICAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIEZpbmFsIHF1b3RlIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIlVuYXNzaWduZWQiOworICAgIH0KKyAgICAgICAgCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vL0NMT1ZFUjpPRkYgCisgICAgLyoqCisgICAgICogUHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGluaXRpYWxpc2F0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyQ2F0ZWdvcnkoKQorICAgIHsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODg0YzZiZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJEaXJlY3Rpb24uamF2YQpAQCAtMCwwICsxLDg0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckVudW1zLkVDaGFyYWN0ZXJEaXJlY3Rpb247CisKKy8qKgorICogRW51bWVyYXRlZCBVbmljb2RlIGNoYXJhY3RlciBsaW5ndWlzdGljIGRpcmVjdGlvbiBjb25zdGFudHMuCisgKiBVc2VkIGFzIHJldHVybiByZXN1bHRzIGZyb20gPGEgaHJlZj1VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBpcyBub3Qgc3ViY2xhc3NhYmxlCisgKiA8L3A+CisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHN0YWJsZSBJQ1UgMi4xCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJEaXJlY3Rpb24gaW1wbGVtZW50cyBFQ2hhcmFjdGVyRGlyZWN0aW9uIHsKKworICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLy9DTE9WRVI6T0ZGICAKKyAgICAvKioKKyAgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5pdGlhbGlzYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJEaXJlY3Rpb24oKQorICAgIHsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBkaXJlY3Rpb24KKyAgICAgKiBAcGFyYW0gZGlyIGRpcmVjdGlvbiB0eXBlIHRvIHJldHJpZXZlIG5hbWUKKyAgICAgKiBAcmV0dXJuIGRpcmVjdGlvbmFsIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgZGlyKSB7CisgICAgICAgIHN3aXRjaChkaXIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlIExFRlRfVE9fUklHSFQgOgorICAgICAgICAgICAgICAgIHJldHVybiAiTGVmdC10by1SaWdodCI7CisgICAgICAgICAgICBjYXNlIFJJR0hUX1RPX0xFRlQgOgorICAgICAgICAgICAgICAgIHJldHVybiAiUmlnaHQtdG8tTGVmdCI7CisgICAgICAgICAgICBjYXNlIEVVUk9QRUFOX05VTUJFUiA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJFdXJvcGVhbiBOdW1iZXIiOworICAgICAgICAgICAgY2FzZSBFVVJPUEVBTl9OVU1CRVJfU0VQQVJBVE9SIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkV1cm9wZWFuIE51bWJlciBTZXBhcmF0b3IiOworICAgICAgICAgICAgY2FzZSBFVVJPUEVBTl9OVU1CRVJfVEVSTUlOQVRPUiA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJFdXJvcGVhbiBOdW1iZXIgVGVybWluYXRvciI7CisgICAgICAgICAgICBjYXNlIEFSQUJJQ19OVU1CRVIgOgorICAgICAgICAgICAgICAgIHJldHVybiAiQXJhYmljIE51bWJlciI7CisgICAgICAgICAgICBjYXNlIENPTU1PTl9OVU1CRVJfU0VQQVJBVE9SIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkNvbW1vbiBOdW1iZXIgU2VwYXJhdG9yIjsKKyAgICAgICAgICAgIGNhc2UgQkxPQ0tfU0VQQVJBVE9SIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlBhcmFncmFwaCBTZXBhcmF0b3IiOworICAgICAgICAgICAgY2FzZSBTRUdNRU5UX1NFUEFSQVRPUiA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJTZWdtZW50IFNlcGFyYXRvciI7CisgICAgICAgICAgICBjYXNlIFdISVRFX1NQQUNFX05FVVRSQUwgOgorICAgICAgICAgICAgICAgIHJldHVybiAiV2hpdGVzcGFjZSI7CisgICAgICAgICAgICBjYXNlIE9USEVSX05FVVRSQUwgOgorICAgICAgICAgICAgICAgIHJldHVybiAiT3RoZXIgTmV1dHJhbHMiOworICAgICAgICAgICAgY2FzZSBMRUZUX1RPX1JJR0hUX0VNQkVERElORyA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJMZWZ0LXRvLVJpZ2h0IEVtYmVkZGluZyI7CisgICAgICAgICAgICBjYXNlIExFRlRfVE9fUklHSFRfT1ZFUlJJREUgOgorICAgICAgICAgICAgICAgIHJldHVybiAiTGVmdC10by1SaWdodCBPdmVycmlkZSI7CisgICAgICAgICAgICBjYXNlIFJJR0hUX1RPX0xFRlRfQVJBQklDIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlJpZ2h0LXRvLUxlZnQgQXJhYmljIjsKKyAgICAgICAgICAgIGNhc2UgUklHSFRfVE9fTEVGVF9FTUJFRERJTkcgOgorICAgICAgICAgICAgICAgIHJldHVybiAiUmlnaHQtdG8tTGVmdCBFbWJlZGRpbmciOworICAgICAgICAgICAgY2FzZSBSSUdIVF9UT19MRUZUX09WRVJSSURFIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlJpZ2h0LXRvLUxlZnQgT3ZlcnJpZGUiOworICAgICAgICAgICAgY2FzZSBQT1BfRElSRUNUSU9OQUxfRk9STUFUIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlBvcCBEaXJlY3Rpb25hbCBGb3JtYXQiOworICAgICAgICAgICAgY2FzZSBESVJfTk9OX1NQQUNJTkdfTUFSSyA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJOb24tU3BhY2luZyBNYXJrIjsKKyAgICAgICAgICAgIGNhc2UgQk9VTkRBUllfTkVVVFJBTCA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJCb3VuZGFyeSBOZXV0cmFsIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJVbmFzc2lnbmVkIjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRW51bXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJFbnVtcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNWEyM2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRW51bXMuamF2YQpAQCAtMCwwICsxLDQ5MSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworLyoqCisgKiBBIGNvbnRhaW5lciBmb3IgdGhlIGRpZmZlcmVudCAnZW51bWVyYXRlZCB0eXBlcycgdXNlZCBieSBVQ2hhcmFjdGVyLgorICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBVQ2hhcmFjdGVyRW51bXMgeworCisgICAgLyoqIFRoaXMgaXMganVzdCBhIG5hbWVzcGFjZSwgaXQgaXMgbm90IGluc3RhbnRpYXRhYmxlLiAqLworCS8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJFbnVtcygpIHt9CisKKyAgICAvKioKKyAgICAgKiAnRW51bScgZm9yIHRoZSBDaGFyYWN0ZXJDYXRlZ29yeSBjb25zdGFudHMuICBUaGVzZSBjb25zdGFudHMgYXJlIAorICAgICAqIGNvbXBhdGlibGUgaW4gbmFtZSA8Yj5idXQgbm90IGluIHZhbHVlPC9iPiB3aXRoIHRob3NlIGRlZmluZWQgaW4KKyAgICAgKiA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyPC9jb2RlPi4KKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJDYXRlZ29yeQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIEVDaGFyYWN0ZXJDYXRlZ29yeSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBVbmFzc2lnbmVkIGNoYXJhY3RlciB0eXBlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFVOQVNTSUdORUQgICAgICAgICAgICAgID0gMDsgCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIENuCisgICAgICAgICAqIE5vdCBBc3NpZ25lZCAobm8gY2hhcmFjdGVycyBpbiBbVW5pY29kZURhdGEudHh0XSBoYXZlIHRoaXMgcHJvcGVydHkpIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBHRU5FUkFMX09USEVSX1RZUEVTICAgICA9IDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIEx1CisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFVQUEVSQ0FTRV9MRVRURVIgICAgICAgID0gMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTGwKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTE9XRVJDQVNFX0xFVFRFUiAgICAgICAgPSAyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBMdAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFRJVExFQ0FTRV9MRVRURVIgICAgICAgID0gMzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTG0KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTU9ESUZJRVJfTEVUVEVSICAgICAgICAgPSA0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBMbworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBPVEhFUl9MRVRURVIgICAgICAgICAgICA9IDU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIE1uCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE5PTl9TUEFDSU5HX01BUksgICAgICAgID0gNjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTWUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRU5DTE9TSU5HX01BUksgICAgICAgICAgPSA3OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBNYworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBDT01CSU5JTkdfU1BBQ0lOR19NQVJLICA9IDg7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIE5kCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMSAgICAgIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERFQ0lNQUxfRElHSVRfTlVNQkVSICAgID0gOTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTmwKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTEVUVEVSX05VTUJFUiAgICAgICAgICAgPSAxMDsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBObworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBPVEhFUl9OVU1CRVIgICAgICAgICAgICA9IDExOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBacworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBTUEFDRV9TRVBBUkFUT1IgICAgICAgICA9IDEyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBabAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMSU5FX1NFUEFSQVRPUiAgICAgICAgICA9IDEzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBacAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBQQVJBR1JBUEhfU0VQQVJBVE9SICAgICA9IDE0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBDYworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBDT05UUk9MICAgICAgICAgICAgICAgICA9IDE1OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBDZgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBGT1JNQVQgICAgICAgICAgICAgICAgICA9IDE2OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBDbworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBQUklWQVRFX1VTRSAgICAgICAgICAgICA9IDE3OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBDcworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBTVVJST0dBVEUgICAgICAgICAgICAgICA9IDE4OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQZAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBEQVNIX1BVTkNUVUFUSU9OICAgICAgICA9IDE5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQcworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBTVEFSVF9QVU5DVFVBVElPTiAgICAgICA9IDIwOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEVORF9QVU5DVFVBVElPTiAgICAgICAgID0gMjE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBjCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIENPTk5FQ1RPUl9QVU5DVFVBVElPTiAgID0gMjI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBvCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE9USEVSX1BVTkNUVUFUSU9OICAgICAgID0gMjM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFNtCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE1BVEhfU1lNQk9MICAgICAgICAgICAgID0gMjQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFNjCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIENVUlJFTkNZX1NZTUJPTCAgICAgICAgID0gMjU7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgU2sKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTU9ESUZJRVJfU1lNQk9MICAgICAgICAgPSAyNjsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBTbworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBPVEhFUl9TWU1CT0wgICAgICAgICAgICA9IDI3OworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBpCisgICAgICAgICAqIEBzZWUgI0lOSVRJQUxfUVVPVEVfUFVOQ1RVQVRJT04KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgSU5JVElBTF9QVU5DVFVBVElPTiAgICAgPSAyODsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUGkKKyAgICAgICAgICogVGhpcyBuYW1lIGlzIGNvbXBhdGlibGUgd2l0aCBqYXZhLmxhbmcuQ2hhcmFjdGVyJ3MgbmFtZSBmb3IgdGhpcyB0eXBlLgorICAgICAgICAgKiBAc2VlICNJTklUSUFMX1BVTkNUVUFUSU9OCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIElOSVRJQUxfUVVPVEVfUFVOQ1RVQVRJT04gPSAyODsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUGYKKyAgICAgICAgICogQHNlZSAjRklOQUxfUVVPVEVfUFVOQ1RVQVRJT04KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRklOQUxfUFVOQ1RVQVRJT04gICAgICAgPSAyOTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUGYKKyAgICAgICAgICogVGhpcyBuYW1lIGlzIGNvbXBhdGlibGUgd2l0aCBqYXZhLmxhbmcuQ2hhcmFjdGVyJ3MgbmFtZSBmb3IgdGhpcyB0eXBlLgorICAgICAgICAgKiBAc2VlICNGSU5BTF9QVU5DVFVBVElPTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBGSU5BTF9RVU9URV9QVU5DVFVBVElPTiAgID0gMjk7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgY291bnQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgQ0hBUl9DQVRFR09SWV9DT1VOVCAgICAgPSAzMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAnRW51bScgZm9yIHRoZSBDaGFyYWN0ZXJEaXJlY3Rpb24gY29uc3RhbnRzLiAgVGhlcmUgYXJlIHR3byBzZXRzCisgICAgICogb2YgbmFtZXMsIHRob3NlIHVzZWQgaW4gSUNVLCBhbmQgdGhvc2UgdXNlZCBpbiB0aGUgSkRLLiAgVGhlCisgICAgICogSkRLIGNvbnN0YW50cyBhcmUgY29tcGF0aWJsZSBpbiBuYW1lIDxiPmJ1dCBub3QgaW4gdmFsdWU8L2I+IAorICAgICAqIHdpdGggdGhvc2UgZGVmaW5lZCBpbiA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyPC9jb2RlPi4KKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJEaXJlY3Rpb24KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBFQ2hhcmFjdGVyRGlyZWN0aW9uIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgTAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFRlRfVE9fUklHSFQgICAgICAgICAgICAgID0gMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgTEVGVF9UT19SSUdIVC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfTEVGVF9UT19SSUdIVCA9IChieXRlKUxFRlRfVE9fUklHSFQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgUgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlQgICAgICAgICAgICAgID0gMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUklHSFRfVE9fTEVGVC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfUklHSFRfVE9fTEVGVCA9IChieXRlKVJJR0hUX1RPX0xFRlQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgRU4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVVJPUEVBTl9OVU1CRVIgICAgICAgICAgICA9IDI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIEVVUk9QRUFOX05VTUJFUi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfRVVST1BFQU5fTlVNQkVSID0gKGJ5dGUpRVVST1BFQU5fTlVNQkVSOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEVTCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVVST1BFQU5fTlVNQkVSX1NFUEFSQVRPUiAgPSAzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBFVVJPUEVBTl9OVU1CRVJfU0VQQVJBVE9SLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9FVVJPUEVBTl9OVU1CRVJfU0VQQVJBVE9SID0gKGJ5dGUpRVVST1BFQU5fTlVNQkVSX1NFUEFSQVRPUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBFVAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVVUk9QRUFOX05VTUJFUl9URVJNSU5BVE9SID0gNDsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgRVVST1BFQU5fTlVNQkVSX1RFUk1JTkFUT1IuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0VVUk9QRUFOX05VTUJFUl9URVJNSU5BVE9SID0gKGJ5dGUpRVVST1BFQU5fTlVNQkVSX1RFUk1JTkFUT1I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgQU4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDX05VTUJFUiAgICAgICAgICAgICAgPSA1OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBBUkFCSUNfTlVNQkVSLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9BUkFCSUNfTlVNQkVSID0gKGJ5dGUpQVJBQklDX05VTUJFUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBDUworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9OVU1CRVJfU0VQQVJBVE9SICAgID0gNjsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgQ09NTU9OX05VTUJFUl9TRVBBUkFUT1IuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0NPTU1PTl9OVU1CRVJfU0VQQVJBVE9SID0gKGJ5dGUpQ09NTU9OX05VTUJFUl9TRVBBUkFUT1I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgQgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJMT0NLX1NFUEFSQVRPUiAgICAgICAgICAgID0gNzsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgQkxPQ0tfU0VQQVJBVE9SLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9QQVJBR1JBUEhfU0VQQVJBVE9SID0gKGJ5dGUpQkxPQ0tfU0VQQVJBVE9SOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIFMKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLyAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUdNRU5UX1NFUEFSQVRPUiAgICAgICAgICA9IDg7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIFNFR01FTlRfU0VQQVJBVE9SLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9TRUdNRU5UX1NFUEFSQVRPUiA9IChieXRlKVNFR01FTlRfU0VQQVJBVE9SOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIFdTCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0hJVEVfU1BBQ0VfTkVVVFJBTCAgICAgICAgPSA5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBXSElURV9TUEFDRV9ORVVUUkFMLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9XSElURVNQQUNFID0gKGJ5dGUpV0hJVEVfU1BBQ0VfTkVVVFJBTDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBPTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSX05FVVRSQUwgICAgICAgICAgICAgID0gMTA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIE9USEVSX05FVVRSQUwuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX09USEVSX05FVVRSQUxTID0gKGJ5dGUpT1RIRVJfTkVVVFJBTDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBMUkUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUZUX1RPX1JJR0hUX0VNQkVERElORyAgICA9IDExOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBMRUZUX1RPX1JJR0hUX0VNQkVERElORy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfTEVGVF9UT19SSUdIVF9FTUJFRERJTkcgPSAoYnl0ZSlMRUZUX1RPX1JJR0hUX0VNQkVERElORzsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBMUk8KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUZUX1RPX1JJR0hUX09WRVJSSURFICAgICA9IDEyOyAgCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIExFRlRfVE9fUklHSFRfT1ZFUlJJREUuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0xFRlRfVE9fUklHSFRfT1ZFUlJJREUgPSAoYnl0ZSlMRUZUX1RPX1JJR0hUX09WRVJSSURFOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEFMCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUklHSFRfVE9fTEVGVF9BUkFCSUMgICAgICAgPSAxMzsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUklHSFRfVE9fTEVGVF9BUkFCSUMuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX1JJR0hUX1RPX0xFRlRfQVJBQklDID0gKGJ5dGUpUklHSFRfVE9fTEVGVF9BUkFCSUM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgUkxFCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUklHSFRfVE9fTEVGVF9FTUJFRERJTkcgICAgPSAxNDsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUklHSFRfVE9fTEVGVF9FTUJFRERJTkcuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX1JJR0hUX1RPX0xFRlRfRU1CRURESU5HID0gKGJ5dGUpUklHSFRfVE9fTEVGVF9FTUJFRERJTkc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgUkxPCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUklHSFRfVE9fTEVGVF9PVkVSUklERSAgICAgPSAxNTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUklHSFRfVE9fTEVGVF9PVkVSUklERS4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfUklHSFRfVE9fTEVGVF9PVkVSUklERSA9IChieXRlKVJJR0hUX1RPX0xFRlRfT1ZFUlJJREU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgUERGCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUE9QX0RJUkVDVElPTkFMX0ZPUk1BVCAgICAgPSAxNjsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUE9QX0RJUkVDVElPTkFMX0ZPUk1BVC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfUE9QX0RJUkVDVElPTkFMX0ZPUk1BVCA9IChieXRlKVBPUF9ESVJFQ1RJT05BTF9GT1JNQVQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgTlNNCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElSX05PTl9TUEFDSU5HX01BUksgICAgICAgPSAxNzsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgRElSX05PTl9TUEFDSU5HX01BUksuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX05PTlNQQUNJTkdfTUFSSyA9IChieXRlKURJUl9OT05fU1BBQ0lOR19NQVJLOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEJOCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQk9VTkRBUllfTkVVVFJBTCAgICAgICAgICAgPSAxODsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgQk9VTkRBUllfTkVVVFJBTC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfQk9VTkRBUllfTkVVVFJBTCA9IChieXRlKUJPVU5EQVJZX05FVVRSQUw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBkaXJlY3Rpb25hbCB0eXBlcworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIQVJfRElSRUNUSU9OX0NPVU5UICAgICAgID0gMTk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuZGVmaW5lZCBiaWRpcmVjdGlvbmFsIGNoYXJhY3RlciB0eXBlLiBVbmRlZmluZWQgPGNvZGU+Y2hhcjwvY29kZT4KKyAgICAgICAgICogdmFsdWVzIGhhdmUgdW5kZWZpbmVkIGRpcmVjdGlvbmFsaXR5IGluIHRoZSBVbmljb2RlIHNwZWNpZmljYXRpb24uCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX1VOREVGSU5FRCA9IC0xOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTI4MjhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlck5hbWVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzMzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyTmFtZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lQ2hvaWNlOworCisvKioKKyAqIDxwPkNsYXNzIGVuYWJsaW5nIGl0ZXJhdGlvbiBvZiB0aGUgY29kZXBvaW50cyBhbmQgdGhlaXIgbmFtZXMuPC9wPgorICogPHA+UmVzdWx0IG9mIGVhY2ggaXRlcmF0aW9uIGNvbnRhaW5zIGEgdmFsaWQgY29kZXBvaW50IHRoYXQgaGFzIHZhbGlkCisgKiBuYW1lLjwvcD4KKyAqIDxwPlNlZSBVQ2hhcmFjdGVyLmdldE5hbWVJdGVyYXRvcigpIGZvciBhbiBleGFtcGxlIG9mIHVzZS48L3A+CisgKiBAYXV0aG9yIHN5bndlZQorICogQHNpbmNlIHJlbGVhc2UgMi4xLCBNYXJjaCA1IDIwMDIKKyAqLworY2xhc3MgVUNoYXJhY3Rlck5hbWVJdGVyYXRvciBpbXBsZW1lbnRzIFZhbHVlSXRlcmF0b3IKK3sKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIDxwPkdldHMgdGhlIG5leHQgcmVzdWx0IGZvciB0aGlzIGl0ZXJhdGlvbiBhbmQgcmV0dXJucworICAgICogdHJ1ZSBpZiB3ZSBhcmUgbm90IGF0IHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlLjwvcD4KKyAgICAqIDxwPklmIHRoZSByZXR1cm4gYm9vbGVhbiBpcyBhIGZhbHNlLCB0aGUgY29udGVudHMgb2YgZWxlbWVudHMgd2lsbCBub3QKKyAgICAqIGJlIHVwZGF0ZWQuPC9wPgorICAgICogQHBhcmFtIGVsZW1lbnQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCBjb2RlcG9pbnQgYW5kIG5hbWUKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB3ZSBhcmUgbm90IGF0IHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICogQHNlZSBFbGVtZW50CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBuZXh0KFZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG1fY3VycmVudF8gPj0gbV9saW1pdF8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2Nob2ljZV8gIT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUpIHsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBtX25hbWVfLmdldEFsZ29yaXRobUxlbmd0aCgpOworICAgICAgICAgICAgaWYgKG1fYWxnb3JpdGhtSW5kZXhfIDwgbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fYWxnb3JpdGhtSW5kZXhfIDwgbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIGFsZ29yaXRobSByYW5nZSB0aGF0IGNvdWxkIGNvbnRhaW4gbV9jdXJyZW50XworICAgICAgICAgICAgICAgICAgICBpZiAobV9hbGdvcml0aG1JbmRleF8gPCAwIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBtX25hbWVfLmdldEFsZ29yaXRobUVuZChtX2FsZ29yaXRobUluZGV4XykgPAorICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9hbGdvcml0aG1JbmRleF8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtX2FsZ29yaXRobUluZGV4XyA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBpbnRlcmxlYXZlIHRoZSBkYXRhLWRyaXZlbiBvbmVzIHdpdGggdGhlIGFsZ29yaXRobWljIG9uZXMKKyAgICAgICAgICAgICAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIGFsbCBhbGdvcml0aG1pYyByYW5nZXM7IGFzc3VtZSB0aGF0IHRoZXkgYXJlCisgICAgICAgICAgICAgICAgICAgIC8vIGluIGFzY2VuZGluZyBvcmRlcgorICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBtX25hbWVfLmdldEFsZ29yaXRobVN0YXJ0KG1fYWxnb3JpdGhtSW5kZXhfKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudF8gPCBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgZ2V0IHJpZCBvZiB0aG9zZSBjb2RlcG9pbnRzIHRoYXQgYXJlIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGFsZ29yaXRobWljIHJhbmdlCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9saW1pdF8gPD0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBtX2xpbWl0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXRlcmF0ZUdyb3VwKGVsZW1lbnQsIGVuZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudF8gPj0gbV9saW1pdF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIGl0ZXJhdGVHcm91cCBmYWlscywgY3VycmVudCBjb2RlcG9pbnQgbWF5IGJlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBncmVhdGVyIHRoYW4gbGltaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW50ZWdlciA9IG1fY3VycmVudF87CisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgICA9IG1fbmFtZV8uZ2V0QWxnb3JpdGhtTmFtZShtX2FsZ29yaXRobUluZGV4XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXQgdGhlIGdyb3VwIGluZGV4IGlmIHdlIGFyZSBpbiB0aGUgYWxnb3JpdGhtaWMgbmFtZXMKKyAgICAgICAgICAgICAgICAgICAgbV9ncm91cEluZGV4XyA9IC0xOworICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gZW51bWVyYXRlIHRoZSBjaGFyYWN0ZXIgbmFtZXMgYWZ0ZXIgdGhlIGxhc3QgYWxnb3JpdGhtaWMgcmFuZ2UKKyAgICAgICAgaWYgKCFpdGVyYXRlR3JvdXAoZWxlbWVudCwgbV9saW1pdF8pKSB7CisgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobV9jaG9pY2VfID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgaWYgKCFpdGVyYXRlRXh0ZW5kZWQoZWxlbWVudCwgbV9saW1pdF8pKSB7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIDxwPlJlc2V0cyB0aGUgaXRlcmF0b3IgdG8gc3RhcnQgaXRlcmF0aW5nIGZyb20gdGhlIGludGVnZXIgaW5kZXgKKyAgICAqIFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIG9yIFggaWYgYSBzZXRSYW5nZShYLCBZKSBoYXMgYmVlbiBjYWxsZWQgcHJldmlvdXNseS4KKyAgICAqIDwvcD4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1fY3VycmVudF8gICAgICAgID0gbV9zdGFydF87CisgICAgICAgIG1fZ3JvdXBJbmRleF8gICAgID0gLTE7CisgICAgICAgIG1fYWxnb3JpdGhtSW5kZXhfID0gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmVzdHJpY3RzIHRoZSByYW5nZSBvZiBpbnRlZ2VycyB0byBpdGVyYXRlIGFuZCByZXNldHMgdGhlIGl0ZXJhdGlvbgorICAgICAqIHRvIGJlZ2luIGF0IHRoZSBpbmRleCBhcmd1bWVudCBzdGFydC48L3A+CisgICAgICogPHA+SWYgc2V0UmFuZ2Uoc3RhcnQsIGVuZCkgaXMgbm90IHBlcmZvcm1lZCBiZWZvcmUgbmV4dChlbGVtZW50KSBpcworICAgICAqIGNhbGxlZCwgdGhlIGl0ZXJhdGlvbiB3aWxsIHN0YXJ0IGZyb20gdGhlIGludGVnZXIgaW5kZXgKKyAgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBhbmQgZW5kIGF0IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFLjwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiB0aGlzIHJhbmdlIGlzIHNldCBvdXRzaWRlIHRoZSByYW5nZSBvZiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBhbmQKKyAgICAgKiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSwgbmV4dChlbGVtZW50KSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBpbnRlZ2VyIGluIHJhbmdlIHRvIGl0ZXJhdGUKKyAgICAgKiBAcGFyYW0gbGltaXQgMSBpbnRlZ2VyIGFmdGVyIHRoZSBsYXN0IGludGVnZXIgaW4gcmFuZ2UKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhdHRlbXB0aW5nIHRvIHNldCBhbgorICAgICAqICAgICAgICAgICAgaWxsZWdhbCByYW5nZS4gRS5nIGxpbWl0IDw9IHN0YXJ0CisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJhbmdlKGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgaWYgKHN0YXJ0ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJzdGFydCBvciBsaW1pdCBoYXMgdG8gYmUgdmFsaWQgVW5pY29kZSBjb2RlcG9pbnRzIGFuZCBzdGFydCA8IGxpbWl0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIG1fc3RhcnRfID0gVUNoYXJhY3Rlci5NSU5fVkFMVUU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3N0YXJ0XyA9IHN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbWl0ID4gVUNoYXJhY3Rlci5NQVhfVkFMVUUgKyAxKSB7CisgICAgICAgICAgICBtX2xpbWl0XyA9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fbGltaXRfID0gbGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgbV9jdXJyZW50XyA9IG1fc3RhcnRfOworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0b3IKKyAgICAqIEBwYXJhbSBuYW1lIG5hbWUgZGF0YQorICAgICogQHBhcmFtIGNob2ljZSBuYW1lIGNob2ljZSBmcm9tIHRoZSBjbGFzcworICAgICogICAgICAgICAgICAgICBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJOYW1lQ2hvaWNlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVUNoYXJhY3Rlck5hbWVJdGVyYXRvcihVQ2hhcmFjdGVyTmFtZSBuYW1lLCBpbnQgY2hvaWNlKQorICAgIHsKKyAgICAgICAgaWYobmFtZT09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVQ2hhcmFjdGVyTmFtZSBuYW1lIGFyZ3VtZW50IGNhbm5vdCBiZSBudWxsLiBNaXNzaW5nIHVuYW1lcy5pY3U/Iik7CisgICAgICAgIH0KKyAgICAgICAgbV9uYW1lXyAgICA9IG5hbWU7CisgICAgICAgIC8vIG5vIGV4cGxpY2l0IGNob2ljZSBpbiBVQ2hhcmFjdGVyIHNvIG5vIGNoZWNrcyBvbiBjaG9pY2UKKyAgICAgICAgbV9jaG9pY2VfICA9IGNob2ljZTsKKyAgICAgICAgbV9zdGFydF8gICA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOworICAgICAgICBtX2xpbWl0XyAgID0gVUNoYXJhY3Rlci5NQVhfVkFMVUUgKyAxOworICAgICAgICBtX2N1cnJlbnRfID0gbV9zdGFydF87CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBOYW1lIGRhdGEKKyAgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJOYW1lIG1fbmFtZV87CisgICAgLyoqCisgICAgICogTmFtZSBjaG9pY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2Nob2ljZV87CisgICAgIC8qKgorICAgICAqIFN0YXJ0IGl0ZXJhdGlvbiByYW5nZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fc3RhcnRfOworICAgIC8qKgorICAgICAqIEVuZCArIDEgaXRlcmF0aW9uIHJhbmdlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9saW1pdF87CisgICAgLyoqCisgICAgICogQ3VycmVudCBjb2RlcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2N1cnJlbnRfOworICAgIC8qKgorICAgICAqIEdyb3VwIGluZGV4CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9ncm91cEluZGV4XyA9IC0xOworICAgIC8qKgorICAgICAqIEFsZ29yaXRobSBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fYWxnb3JpdGhtSW5kZXhfID0gLTE7CisgICAgLyoqCisgICAgKiBHcm91cCB1c2UKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgR1JPVVBfT0ZGU0VUU19bXSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBjaGFyW1VDaGFyYWN0ZXJOYW1lLkxJTkVTX1BFUl9HUk9VUF8gKyAxXTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIEdST1VQX0xFTkdUSFNfW10gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgY2hhcltVQ2hhcmFjdGVyTmFtZS5MSU5FU19QRVJfR1JPVVBfICsgMV07CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEdyb3VwIG5hbWUgaXRlcmF0aW9uLCBpdGVyYXRlIGFsbCB0aGUgbmFtZXMgaW4gdGhlIGN1cnJlbnQgMzItZ3JvdXAgYW5kCisgICAgICogcmV0dXJucyB0aGUgZmlyc3QgY29kZXBvaW50IHRoYXQgaGFzIGEgdmFsaWQgbmFtZS4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IHN0b3JlcyB0aGUgcmVzdWx0IGNvZGVwb2ludCBhbmQgbmFtZQorICAgICAqIEBwYXJhbSBsaW1pdCBsYXN0IGNvZGVwb2ludCArIDEgaW4gcmFuZ2UgdG8gc2VhcmNoCisgICAgICogQHJldHVybiBmYWxzZSBpZiBhIGNvZGVwb2ludCB3aXRoIGEgbmFtZSBpcyBmb3VuZCBpbiBncm91cCBhbmQgd2UgY2FuCisgICAgICogICAgICAgICBiYWlsIGZyb20gZnVydGhlciBpdGVyYXRpb24sIHRydWUgdG8gY29udGludWUgb24gd2l0aCB0aGUKKyAgICAgKiAgICAgICAgIGl0ZXJhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpdGVyYXRlU2luZ2xlR3JvdXAoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgc3luY2hyb25pemVkKEdST1VQX09GRlNFVFNfKSB7CisgICAgICAgIHN5bmNocm9uaXplZChHUk9VUF9MRU5HVEhTXykgeworICAgICAgICAgICAgaW50IGluZGV4ID0gbV9uYW1lXy5nZXRHcm91cExlbmd0aHMobV9ncm91cEluZGV4XywgR1JPVVBfT0ZGU0VUU18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUk9VUF9MRU5HVEhTXyk7CisgICAgICAgICAgICB3aGlsZSAobV9jdXJyZW50XyA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaW50ICAgIG9mZnNldCA9IFVDaGFyYWN0ZXJOYW1lLmdldEdyb3VwT2Zmc2V0KG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lICAgPSBtX25hbWVfLmdldEdyb3VwTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ICsgR1JPVVBfT0ZGU0VUU19bb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdST1VQX0xFTkdUSFNfW29mZnNldF0sIG1fY2hvaWNlXyk7CisgICAgICAgICAgICAgICAgaWYgKChuYW1lID09IG51bGwgfHwgbmFtZS5sZW5ndGgoKSA9PSAwKSAmJgorICAgICAgICAgICAgICAgICAgICBtX2Nob2ljZV8gPT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuRVhURU5ERURfQ0hBUl9OQU1FKSB7CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBtX25hbWVfLmdldEV4dGVuZGVkTmFtZShtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCAmJiBuYW1lLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW50ZWdlciA9IG1fY3VycmVudF87CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC52YWx1ZSAgID0gbmFtZTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArKyBtX2N1cnJlbnRfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR3JvdXAgbmFtZSBpdGVyYXRpb24sIGl0ZXJhdGUgYWxsIHRoZSBuYW1lcyBpbiB0aGUgY3VycmVudCAzMi1ncm91cCBhbmQKKyAgICAgKiByZXR1cm5zIHRoZSBmaXJzdCBjb2RlcG9pbnQgdGhhdCBoYXMgYSB2YWxpZCBuYW1lLgorICAgICAqIEBwYXJhbSByZXN1bHQgc3RvcmVzIHRoZSByZXN1bHQgY29kZXBvaW50IGFuZCBuYW1lCisgICAgICogQHBhcmFtIGxpbWl0IGxhc3QgY29kZXBvaW50ICsgMSBpbiByYW5nZSB0byBzZWFyY2gKKyAgICAgKiBAcmV0dXJuIGZhbHNlIGlmIGEgY29kZXBvaW50IHdpdGggYSBuYW1lIGlzIGZvdW5kIGluIGdyb3VwIGFuZCB3ZSBjYW4KKyAgICAgKiAgICAgICAgIGJhaWwgZnJvbSBmdXJ0aGVyIGl0ZXJhdGlvbiwgdHJ1ZSB0byBjb250aW51ZSBvbiB3aXRoIHRoZQorICAgICAqICAgICAgICAgaXRlcmF0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGl0ZXJhdGVHcm91cChWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgcmVzdWx0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICBpZiAobV9ncm91cEluZGV4XyA8IDApIHsKKyAgICAgICAgICAgIG1fZ3JvdXBJbmRleF8gPSBtX25hbWVfLmdldEdyb3VwKG1fY3VycmVudF8pOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKG1fZ3JvdXBJbmRleF8gPCBtX25hbWVfLm1fZ3JvdXBjb3VudF8gJiYKKyAgICAgICAgICAgICAgIG1fY3VycmVudF8gPCBsaW1pdCkgeworICAgICAgICAgICAgLy8gaXRlcmF0ZSB0aWxsIHRoZSBsYXN0IGdyb3VwIG9yIHRoZSBsYXN0IGNvZGVwb2ludAorICAgICAgICAgICAgaW50IHN0YXJ0TVNCID0gVUNoYXJhY3Rlck5hbWUuZ2V0Q29kZXBvaW50TVNCKG1fY3VycmVudF8pOworICAgICAgICAgICAgaW50IGdNU0IgICAgID0gbV9uYW1lXy5nZXRHcm91cE1TQihtX2dyb3VwSW5kZXhfKTsgLy8gY2FuIGJlIC0xCisgICAgICAgICAgICBpZiAoc3RhcnRNU0IgPT0gZ01TQikgeworICAgICAgICAgICAgICAgIGlmIChzdGFydE1TQiA9PSBVQ2hhcmFjdGVyTmFtZS5nZXRDb2RlcG9pbnRNU0IobGltaXQgLSAxKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBpZiBzdGFydCBhbmQgbGltaXQgLSAxIGFyZSBpbiB0aGUgc2FtZSBncm91cCwgdGhlbiBlbnVtZXJhdGUKKyAgICAgICAgICAgICAgICAgICAgLy8gb25seSBpbiB0aGF0IG9uZQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0ZVNpbmdsZUdyb3VwKHJlc3VsdCwgbGltaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBlbnVtZXJhdGUgY2hhcmFjdGVycyBpbiB0aGUgcGFydGlhbCBzdGFydCBncm91cAorICAgICAgICAgICAgICAgIC8vIGlmIChtX25hbWVfLmdldEdyb3VwT2Zmc2V0KG1fY3VycmVudF8pICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdGVTaW5nbGVHcm91cChyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWUuZ2V0R3JvdXBMaW1pdChnTVNCKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArKyBtX2dyb3VwSW5kZXhfOyAvLyBjb250aW51ZSB3aXRoIHRoZSBuZXh0IGdyb3VwCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzdGFydE1TQiA+IGdNU0IpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgd2Ugc3RhcnQgZW51bWVyYXRpbmcgd2l0aCB0aGUgZmlyc3QgZ3JvdXAKKyAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgbV9ncm91cEluZGV4XyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBnTUlOID0gVUNoYXJhY3Rlck5hbWUuZ2V0R3JvdXBNaW4oZ01TQik7CisgICAgICAgICAgICAgICAgaWYgKGdNSU4gPiBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBnTUlOID0gbGltaXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX2Nob2ljZV8gPT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuRVhURU5ERURfQ0hBUl9OQU1FKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaXRlcmF0ZUV4dGVuZGVkKHJlc3VsdCwgZ01JTikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2N1cnJlbnRfID0gZ01JTjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEl0ZXJhdGUgZXh0ZW5kZWQgbmFtZXMuCisgICAgICogQHBhcmFtIHJlc3VsdCBzdG9yZXMgdGhlIHJlc3VsdCBjb2RlcG9pbnQgYW5kIG5hbWUKKyAgICAgKiBAcGFyYW0gbGltaXQgbGFzdCBjb2RlcG9pbnQgKyAxIGluIHJhbmdlIHRvIHNlYXJjaAorICAgICAqIEByZXR1cm4gZmFsc2UgaWYgYSBjb2RlcG9pbnQgd2l0aCBhIG5hbWUgaXMgZm91bmQgYW5kIHdlIGNhbgorICAgICAqICAgICAgICAgYmFpbCBmcm9tIGZ1cnRoZXIgaXRlcmF0aW9uLCB0cnVlIHRvIGNvbnRpbnVlIG9uIHdpdGggdGhlCisgICAgICogICAgICAgICBpdGVyYXRpb24gKHRoaXMgd2lsbCBhbHdheXMgYmUgZmFsc2UgZm9yIHZhbGlkIGNvZGVwb2ludHMpCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGl0ZXJhdGVFeHRlbmRlZChWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgd2hpbGUgKG1fY3VycmVudF8gPCBsaW1pdCkgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBtX25hbWVfLmdldEV4dGVuZGVkT3IxME5hbWUobV9jdXJyZW50Xyk7CisgICAgICAgICAgICBpZiAobmFtZSAhPSBudWxsICYmIG5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmludGVnZXIgPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgIHJlc3VsdC52YWx1ZSAgID0gbmFtZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArKyBtX2N1cnJlbnRfOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJUeXBlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJUeXBlSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNDA0MzM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlclR5cGVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCisvKioKKyAqIENsYXNzIGVuYWJsaW5nIGl0ZXJhdGlvbiBvZiB0aGUgY29kZXBvaW50cyBhY2NvcmRpbmcgdG8gdGhlaXIgdHlwZXMuCisgKiBSZXN1bHQgb2YgZWFjaCBpdGVyYXRpb24gY29udGFpbnMgdGhlIGludGVydmFsIG9mIGNvZGVwb2ludHMgdGhhdCBoYXZlCisgKiB0aGUgc2FtZSB0eXBlLgorICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICogPHByZT4KKyAqIFJhbmdlVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0VHlwZUl0ZXJhdG9yKCk7CisgKiBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgKiB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LnN0YXJ0KSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGNvZGVwb2ludCBcXHUiICsKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmxpbWl0IC0gMSkgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIGNoYXJhY3RlciB0eXBlICIgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVHJpZUl0ZXJhdG9yCisgKiBAc2luY2UgcmVsZWFzZSAyLjEsIEphbiAyNCAyMDAyCisgKi8KK2NsYXNzIFVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IgZXh0ZW5kcyBUcmllSXRlcmF0b3IKK3sKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBUcmllRW51bWVyYXRpb24gY29uc3RydWN0b3IKKyAgICAqIEBwYXJhbSBwcm9wZXJ0eSB0aGUgdW5pY29kZSBjaGFyYWN0ZXIgcHJvcGVydGllcyB0byBiZSB1c2VkCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVUNoYXJhY3RlclR5cGVJdGVyYXRvcihVQ2hhcmFjdGVyUHJvcGVydHkgcHJvcGVydHkpCisgICAgeworICAgICAgIHN1cGVyKHByb3BlcnR5Lm1fdHJpZV8pOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBDYWxsZWQgYnkgbmV4dEVsZW1lbnQoKSB0byBleHRyYWN0cyBhIDMyIGJpdCB2YWx1ZSBmcm9tIGEgdHJpZSB2YWx1ZQorICAgICogdXNlZCBmb3IgY29tcGFyaXNvbi4KKyAgICAqIFRoaXMgbWV0aG9kIGlzIHRvIGJlIG92ZXJ3cml0dGVuIGlmIHNwZWNpYWwgbWFuaXB1bGF0aW9uIGlzIHRvIGJlIGRvbmUKKyAgICAqIHRvIHJldHJpZXZlIGEgcmVsZXZhbnQgY29tcGFyaXNvbi4KKyAgICAqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIGlzIHRvIHJldHVybiB0aGUgdmFsdWUgYXMgaXQgaXMuCisgICAgKiBAcGFyYW0gdmFsdWUgYSB2YWx1ZSBmcm9tIHRoZSB0cmllCisgICAgKiBAcmV0dXJuIGV4dHJhY3RlZCB2YWx1ZQorICAgICovCisgICAgcHJvdGVjdGVkIGludCBleHRyYWN0KGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZSAmIFVDaGFyYWN0ZXJQcm9wZXJ0eS5UWVBFX01BU0s7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENoYXJhY3RlciBwcm9wZXJ0eQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fcHJvcGVydHlfW107Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVByb3BlcnR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VUHJvcGVydHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZWUzOTNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVByb3BlcnR5LmphdmEKQEAgLTAsMCArMSw4MzggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgaW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCisvKioKKyAqIDxwPlNlbGVjdGlvbiBjb25zdGFudHMgZm9yIFVuaWNvZGUgcHJvcGVydGllcy4gPC9wPgorICogPHA+VGhlc2UgY29uc3RhbnRzIGFyZSB1c2VkIGluIGZ1bmN0aW9ucyBsaWtlIAorICogVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShpbnQpIHRvIHNlbGVjdCBvbmUgb2YgdGhlIFVuaWNvZGUgcHJvcGVydGllcy4gCisgKiA8L3A+CisgKiA8cD5UaGUgcHJvcGVydGllcyBBUElzIGFyZSBpbnRlbmRlZCB0byByZWZsZWN0IFVuaWNvZGUgcHJvcGVydGllcyBhcyAKKyAqIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlIChVQ0QpIGFuZCBVbmljb2RlIFRlY2huaWNhbCAKKyAqIFJlcG9ydHMgKFVUUikuPC9wPgorICogPHA+Rm9yIGRldGFpbHMgYWJvdXQgdGhlIHByb3BlcnRpZXMgc2VlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZz4KKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmc8L2E+LjwvcD4gCisgKiA8cD5Gb3IgbmFtZXMgb2YgVW5pY29kZSBwcm9wZXJ0aWVzIHNlZSB0aGUgVUNEIGZpbGUgUHJvcGVydHlBbGlhc2VzLnR4dC4KKyAqIDwvcD4gCisgKiA8cD5JbXBvcnRhbnQ6IElmIElDVSBpcyBidWlsdCB3aXRoIFVDRCBmaWxlcyBmcm9tIFVuaWNvZGUgdmVyc2lvbnMgYmVsb3cgCisgKiAzLjIsIHRoZW4gcHJvcGVydGllcyBtYXJrZWQgd2l0aCAibmV3IiBhcmUgbm90IG9yIG5vdCBmdWxseSAKKyAqIGF2YWlsYWJsZS4gQ2hlY2sgVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpIHRvIGJlIHN1cmUuPC9wPgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzdGFibGUgSUNVIDIuNgorICogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXIKKyAqLworcHVibGljIGludGVyZmFjZSBVUHJvcGVydHkKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBBbHBoYWJldGljLiA8L3A+CisgICAgICogPHA+UHJvcGVydHkgZm9yIFVDaGFyYWN0ZXIuaXNVQWxwaGFiZXRpYygpLCBkaWZmZXJlbnQgZnJvbSB0aGUgcHJvcGVydHkgCisgICAgICogaW4gVUNoYXJhY3Rlci5pc2FscGhhKCkuPC9wPgorICAgICAqIDxwPkx1ICsgTGwgKyBMdCArIExtICsgTG8gKyBObCArIE90aGVyX0FscGhhYmV0aWMuPC9wPgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTFBIQUJFVElDID0gMDsgCisKKyAgICAvKiogCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIGJpbmFyeSBVbmljb2RlIHByb3BlcnRpZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSU5BUllfU1RBUlQgPSBBTFBIQUJFVElDOworCisgICAgLyoqIAorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBBU0NJSV9IZXhfRGlnaXQgKDAtOSBBLUYgYS1mKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVNDSUlfSEVYX0RJR0lUID0gMTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEJpZGlfQ29udHJvbC48L3A+CisgICAgICogPHA+Rm9ybWF0IGNvbnRyb2xzIHdoaWNoIGhhdmUgc3BlY2lmaWMgZnVuY3Rpb25zIGluIHRoZSBCaWRpIEFsZ29yaXRobS4KKyAgICAgKiA8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJX0NPTlRST0wgPSAyOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgQmlkaV9NaXJyb3JlZC48L3A+IAorICAgICAqIDxwPkNoYXJhY3RlcnMgdGhhdCBtYXkgY2hhbmdlIGRpc3BsYXkgaW4gUlRMIHRleHQuPC9wPiAKKyAgICAgKiA8cD5Qcm9wZXJ0eSBmb3IgVUNoYXJhY3Rlci5pc01pcnJvcmVkKCkuPC9wPiAKKyAgICAgKiA8cD5TZWUgQmlkaSBBbGdvcml0aG07IFVUUiA5LjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJRElfTUlSUk9SRUQgPSAzOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRGFzaC48L3A+IAorICAgICAqIDxwPlZhcmlhdGlvbnMgb2YgZGFzaGVzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBU0ggPSA0OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludCAobmV3KS4KKyAgICAgKiA8L3A+IAorICAgICAqIDxwPlByb3BlcnR5IHRoYXQgaW5kaWNhdGVzIGNvZGVwb2ludCBpcyBpZ25vcmFibGUgaW4gbW9zdCBwcm9jZXNzaW5nLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5Db2RlcG9pbnRzICgyMDYwLi4yMDZGLCBGRkYwLi5GRkZCLCBFMDAwMC4uRTBGRkYpICsgCisgICAgICogT3RoZXJfRGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludCArIChDZiArIENjICsgQ3MgLSBXaGl0ZV9TcGFjZSk8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UID0gNTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERlcHJlY2F0ZWQgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5UaGUgdXNhZ2Ugb2YgZGVwcmVjYXRlZCBjaGFyYWN0ZXJzIGlzIHN0cm9uZ2x5IGRpc2NvdXJhZ2VkLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFUFJFQ0FURUQgPSA2OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRGlhY3JpdGljLjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IGxpbmd1aXN0aWNhbGx5IG1vZGlmeSB0aGUgbWVhbmluZyBvZiBhbm90aGVyIAorICAgICAqIGNoYXJhY3RlciB0byB3aGljaCB0aGV5IGFwcGx5LjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJQUNSSVRJQyA9IDc7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBFeHRlbmRlci48L3A+IAorICAgICAqIDxwPkV4dGVuZCB0aGUgdmFsdWUgb3Igc2hhcGUgb2YgYSBwcmVjZWRpbmcgYWxwaGFiZXRpYyBjaGFyYWN0ZXIsIGUuZy4KKyAgICAgKiBsZW5ndGggYW5kIGl0ZXJhdGlvbiBtYXJrcy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFUiA9IDg7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBGdWxsX0NvbXBvc2l0aW9uX0V4Y2x1c2lvbi48L3A+IAorICAgICAqIDxwPkNvbXBvc2l0aW9uRXhjbHVzaW9ucy50eHQgKyBTaW5nbGV0b24gRGVjb21wb3NpdGlvbnMgKyAKKyAgICAgKiBOb24tU3RhcnRlciBEZWNvbXBvc2l0aW9ucy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiA9IDk7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBHcmFwaGVtZV9CYXNlIChuZXcpLjwvcD4KKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgZ3JhcGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLiAKKyAgICAgKiBbMC4uMTBGRkZGXS1DYy1DZi1Dcy1Dby1Dbi1abC1acC1HcmFwaGVtZV9MaW5rLUdyYXBoZW1lX0V4dGVuZC1DR0o8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHUkFQSEVNRV9CQVNFID0gMTA7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBHcmFwaGVtZV9FeHRlbmQgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgZ3JhcGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLjwvcD4gCisgICAgICogPHA+TWUrTW4rTWMrT3RoZXJfR3JhcGhlbWVfRXh0ZW5kLUdyYXBoZW1lX0xpbmstQ0dKPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfRVhURU5EID0gMTE7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBHcmFwaGVtZV9MaW5rIChuZXcpLjwvcD4gCisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHUkFQSEVNRV9MSU5LID0gMTI7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBIZXhfRGlnaXQuPC9wPiAKKyAgICAgKiA8cD5DaGFyYWN0ZXJzIGNvbW1vbmx5IHVzZWQgZm9yIGhleGFkZWNpbWFsIG51bWJlcnMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVYX0RJR0lUID0gMTM7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBIeXBoZW4uPC9wPiAKKyAgICAgKiA8cD5EYXNoZXMgdXNlZCB0byBtYXJrIGNvbm5lY3Rpb25zIGJldHdlZW4gcGllY2VzIG9mIHdvcmRzLCBwbHVzIHRoZSAKKyAgICAgKiBLYXRha2FuYSBtaWRkbGUgZG90LjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhZUEhFTiA9IDE0OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSURfQ29udGludWUuPC9wPgorICAgICAqIDxwPkNoYXJhY3RlcnMgdGhhdCBjYW4gY29udGludWUgYW4gaWRlbnRpZmllci48L3A+IAorICAgICAqIDxwPklEX1N0YXJ0K01uK01jK05kK1BjPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURfQ09OVElOVUUgPSAxNTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElEX1N0YXJ0LjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IGNhbiBzdGFydCBhbiBpZGVudGlmaWVyLjwvcD4gCisgICAgICogPHA+THUrTGwrTHQrTG0rTG8rTmw8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJRF9TVEFSVCA9IDE2OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSWRlb2dyYXBoaWMuPC9wPiAKKyAgICAgKiA8cD5DSktWIGlkZW9ncmFwaHMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURFT0dSQVBISUMgPSAxNzsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElEU19CaW5hcnlfT3BlcmF0b3IgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gU2VxdWVuY2VzLgorICAgICAqIDwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElEU19CSU5BUllfT1BFUkFUT1IgPSAxODsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElEU19UcmluYXJ5X09wZXJhdG9yIChuZXcpLjwvcD4gCisgICAgICogPHA/Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIElkZW9ncmFwaGljIERlc2NyaXB0aW9uIAorICAgICAqIFNlcXVlbmNlcy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJRFNfVFJJTkFSWV9PUEVSQVRPUiA9IDE5OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSm9pbl9Db250cm9sLjwvcD4gCisgICAgICogPHA+Rm9ybWF0IGNvbnRyb2xzIGZvciBjdXJzaXZlIGpvaW5pbmcgYW5kIGxpZ2F0aW9uLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpPSU5fQ09OVFJPTCA9IDIwOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgTG9naWNhbF9PcmRlcl9FeGNlcHRpb24gKG5ldykuPC9wPiAKKyAgICAgKiA8cD5DaGFyYWN0ZXJzIHRoYXQgZG8gbm90IHVzZSBsb2dpY2FsIG9yZGVyIGFuZCByZXF1aXJlIHNwZWNpYWwgCisgICAgICogaGFuZGxpbmcgaW4gbW9zdCBwcm9jZXNzaW5nLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPR0lDQUxfT1JERVJfRVhDRVBUSU9OID0gMjE7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBMb3dlcmNhc2UuPC9wPiAKKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaXNVTG93ZXJjYXNlKCksIGRpZmZlcmVudCBmcm9tIAorICAgICAqIFVDaGFyYWN0ZXIuaXNsb3dlcigpLjwvcD4gCisgICAgICogPHA+TGwrT3RoZXJfTG93ZXJjYXNlPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVJDQVNFID0gMjI7IAorCisgICAgLyoqIDxwPkJpbmFyeSBwcm9wZXJ0eSBNYXRoLjwvcD4gCisgICAgICogPHA+U20rT3RoZXJfTWF0aDwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BVEggPSAyMzsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IE5vbmNoYXJhY3Rlcl9Db2RlX1BvaW50LjwvcD4gCisgICAgICogPHA+Q29kZSBwb2ludHMgdGhhdCBhcmUgZXhwbGljaXRseSBkZWZpbmVkIGFzIGlsbGVnYWwgZm9yIHRoZSBlbmNvZGluZyAKKyAgICAgKiBvZiBjaGFyYWN0ZXJzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5UID0gMjQ7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBRdW90YXRpb25fTWFyay48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVU9UQVRJT05fTUFSSyA9IDI1OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgUmFkaWNhbCAobmV3KS48L3A+IAorICAgICAqIDxwPkZvciBwcm9ncmFtbWF0aWMgZGV0ZXJtaW5hdGlvbiBvZiBJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiAKKyAgICAgKiBTZXF1ZW5jZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFESUNBTCA9IDI2OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgU29mdF9Eb3R0ZWQgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5DaGFyYWN0ZXJzIHdpdGggYSAic29mdCBkb3QiLCBsaWtlIGkgb3Igai48L3A+CisgICAgICogPHA+QW4gYWNjZW50IHBsYWNlZCBvbiB0aGVzZSBjaGFyYWN0ZXJzIGNhdXNlcyB0aGUgZG90IHRvIGRpc2FwcGVhci48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTT0ZUX0RPVFRFRCA9IDI3OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgVGVybWluYWxfUHVuY3R1YXRpb24uPC9wPiAKKyAgICAgKiA8cD5QdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIHRoYXQgZ2VuZXJhbGx5IG1hcmsgdGhlIGVuZCBvZiB0ZXh0dWFsIAorICAgICAqIHVuaXRzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUk1JTkFMX1BVTkNUVUFUSU9OID0gMjg7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBVbmlmaWVkX0lkZW9ncmFwaCAobmV3KS48L3A+IAorICAgICAqIDxwPkZvciBwcm9ncmFtbWF0aWMgZGV0ZXJtaW5hdGlvbiBvZiBJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiAKKyAgICAgKiBTZXF1ZW5jZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JRklFRF9JREVPR1JBUEggPSAyOTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFVwcGVyY2FzZS48L3A+IAorICAgICAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5pc1VVcHBlcmNhc2UoKSwgZGlmZmVyZW50IGZyb20gCisgICAgICogVUNoYXJhY3Rlci5pc1VwcGVyQ2FzZSgpLjwvcD4gCisgICAgICogPHA+THUrT3RoZXJfVXBwZXJjYXNlPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJDQVNFID0gMzA7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBXaGl0ZV9TcGFjZS48L3A+IAorICAgICAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKCksIGRpZmZlcmVudCBmcm9tIAorICAgICAqIFVDaGFyYWN0ZXIuaXNTcGFjZSgpIGFuZCBVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZSgpLjwvcD4gCisgICAgICogU3BhY2UgY2hhcmFjdGVycytUQUIrQ1IrTEYtWldTUC1aV05CU1A8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSElURV9TUEFDRSA9IDMxOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgWElEX0NvbnRpbnVlLjwvcD4gCisgICAgICogPHA+SURfQ29udGludWUgbW9kaWZpZWQgdG8gYWxsb3cgY2xvc3VyZSB1bmRlciBub3JtYWxpemF0aW9uIGZvcm1zIAorICAgICAqIE5GS0MgYW5kIE5GS0QuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWElEX0NPTlRJTlVFID0gMzI7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBYSURfU3RhcnQuPC9wPiAKKyAgICAgKiA8cD5JRF9TdGFydCBtb2RpZmllZCB0byBhbGxvdyBjbG9zdXJlIHVuZGVyIG5vcm1hbGl6YXRpb24gZm9ybXMgTkZLQyAKKyAgICAgKiBhbmQgTkZLRC48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBYSURfU1RBUlQgPSAzMzsgCisKKyAgICAvKioKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgQ2FzZV9TZW5zaXRpdmUuPC9wPgorICAgICAqIDxwPkVpdGhlciB0aGUgc291cmNlIG9mIGEgY2FzZQorICAgICAqIG1hcHBpbmcgb3IgX2luXyB0aGUgdGFyZ2V0IG9mIGEgY2FzZSBtYXBwaW5nLiBOb3QgdGhlIHNhbWUgYXMKKyAgICAgKiB0aGUgZ2VuZXJhbCBjYXRlZ29yeSBDYXNlZF9MZXR0ZXIuPC9wPgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBU0VfU0VOU0lUSVZFID0gMzQ7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgU1Rlcm0gKG5ldyBpbiBVbmljb2RlIDQuMC4xKS4KKyAgICAgKiBTZW50ZW5jZSBUZXJtaW5hbC4gVXNlZCBpbiBVQVggIzI5OiBUZXh0IEJvdW5kYXJpZXMKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNfVEVSTSA9IDM1OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IFZhcmlhdGlvbl9TZWxlY3RvciAobmV3IGluIFVuaWNvZGUgNC4wLjEpLgorICAgICAqIEluZGljYXRlcyBhbGwgdGhvc2UgY2hhcmFjdGVycyB0aGF0IHF1YWxpZnkgYXMgVmFyaWF0aW9uIFNlbGVjdG9ycy4KKyAgICAgKiBGb3IgZGV0YWlscyBvbiB0aGUgYmVoYXZpb3Igb2YgdGhlc2UgY2hhcmFjdGVycywKKyAgICAgKiBzZWUgU3RhbmRhcmRpemVkVmFyaWFudHMuaHRtbCBhbmQgMTUuNiBWYXJpYXRpb24gU2VsZWN0b3JzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBUklBVElPTl9TRUxFQ1RPUiA9IDM2OworCisgICAgLyoqIAorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBORkRfSW5lcnQuCisgICAgICogSUNVLXNwZWNpZmljIHByb3BlcnR5IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluZXJ0IHVuZGVyIE5GRCwKKyAgICAgKiBpLmUuLCB0aGV5IGRvIG5vdCBpbnRlcmFjdCB3aXRoIGFkamFjZW50IGNoYXJhY3RlcnMuCisgICAgICogVXNlZCBmb3IgZXhhbXBsZSBpbiBub3JtYWxpemluZyB0cmFuc2Zvcm1zIGluIGluY3JlbWVudGFsIG1vZGUKKyAgICAgKiB0byBmaW5kIHRoZSBib3VuZGFyeSBvZiBzYWZlbHkgbm9ybWFsaXphYmxlIHRleHQgZGVzcGl0ZSBwb3NzaWJsZQorICAgICAqIHRleHQgYWRkaXRpb25zLgorICAgICAqCisgICAgICogVGhlcmUgaXMgb25lIHN1Y2ggcHJvcGVydHkgcGVyIG5vcm1hbGl6YXRpb24gZm9ybS4KKyAgICAgKiBUaGVzZSBwcm9wZXJ0aWVzIGFyZSBjb21wdXRlZCBhcyBmb2xsb3dzIC0gYW4gaW5lcnQgY2hhcmFjdGVyIGlzOgorICAgICAqIGEpIHVuYXNzaWduZWQsIG9yIEFMTCBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqIGIpIG9mIGNvbWJpbmluZyBjbGFzcyAwLgorICAgICAqIGMpIG5vdCBkZWNvbXBvc2VkIGJ5IHRoaXMgbm9ybWFsaXphdGlvbiBmb3JtLgorICAgICAqIEFORCBpZiBORkMgb3IgTkZLQywKKyAgICAgKiBkKSBjYW4gbmV2ZXIgY29tcG9zZSB3aXRoIGEgcHJldmlvdXMgY2hhcmFjdGVyLgorICAgICAqIGUpIGNhbiBuZXZlciBjb21wb3NlIHdpdGggYSBmb2xsb3dpbmcgY2hhcmFjdGVyLgorICAgICAqIGYpIGNhbiBuZXZlciBjaGFuZ2UgaWYgYW5vdGhlciBjaGFyYWN0ZXIgaXMgYWRkZWQuCisgICAgICogRXhhbXBsZTogYS1icmV2ZSBtaWdodCBzYXRpc2Z5IGFsbCBidXQgZiwgYnV0IGlmIHlvdQorICAgICAqIGFkZCBhbiBvZ29uZWsgaXQgY2hhbmdlcyB0byBhLW9nb25layArIGJyZXZlCisgICAgICoKKyAgICAgKiBTZWUgYWxzbyBjb20uaWJtLnRleHQuVUNELk5GU2tpcHBhYmxlIGluIHRoZSBJQ1U0SiByZXBvc2l0b3J5LAorICAgICAqIGFuZCBpY3Uvc291cmNlL2NvbW1vbi91bm9ybWltcC5oIC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORkRfSU5FUlQgPSAzNzsKKworICAgIC8qKiAKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgTkZLRF9JbmVydC4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5lcnQgdW5kZXIgTkZLRCwKKyAgICAgKiBpLmUuLCB0aGV5IGRvIG5vdCBpbnRlcmFjdCB3aXRoIGFkamFjZW50IGNoYXJhY3RlcnMuCisgICAgICogVXNlZCBmb3IgZXhhbXBsZSBpbiBub3JtYWxpemluZyB0cmFuc2Zvcm1zIGluIGluY3JlbWVudGFsIG1vZGUKKyAgICAgKiB0byBmaW5kIHRoZSBib3VuZGFyeSBvZiBzYWZlbHkgbm9ybWFsaXphYmxlIHRleHQgZGVzcGl0ZSBwb3NzaWJsZQorICAgICAqIHRleHQgYWRkaXRpb25zLgorICAgICAqIEBzZWUgI05GRF9JTkVSVAorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktEX0lORVJUID0gMzg7CisKKyAgICAvKiogCisgICAgICogQmluYXJ5IHByb3BlcnR5IE5GQ19JbmVydC4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5lcnQgdW5kZXIgTkZDLAorICAgICAqIGkuZS4sIHRoZXkgZG8gbm90IGludGVyYWN0IHdpdGggYWRqYWNlbnQgY2hhcmFjdGVycy4KKyAgICAgKiBVc2VkIGZvciBleGFtcGxlIGluIG5vcm1hbGl6aW5nIHRyYW5zZm9ybXMgaW4gaW5jcmVtZW50YWwgbW9kZQorICAgICAqIHRvIGZpbmQgdGhlIGJvdW5kYXJ5IG9mIHNhZmVseSBub3JtYWxpemFibGUgdGV4dCBkZXNwaXRlIHBvc3NpYmxlCisgICAgICogdGV4dCBhZGRpdGlvbnMuCisgICAgICogQHNlZSAjTkZEX0lORVJUCisgICAgICogQHN0YWJsZSBJQ1UgMy4wIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GQ19JTkVSVCA9IDM5OworCisgICAgLyoqIAorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBORktDX0luZXJ0LgorICAgICAqIElDVS1zcGVjaWZpYyBwcm9wZXJ0eSBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBpbmVydCB1bmRlciBORktDLAorICAgICAqIGkuZS4sIHRoZXkgZG8gbm90IGludGVyYWN0IHdpdGggYWRqYWNlbnQgY2hhcmFjdGVycy4KKyAgICAgKiBVc2VkIGZvciBleGFtcGxlIGluIG5vcm1hbGl6aW5nIHRyYW5zZm9ybXMgaW4gaW5jcmVtZW50YWwgbW9kZQorICAgICAqIHRvIGZpbmQgdGhlIGJvdW5kYXJ5IG9mIHNhZmVseSBub3JtYWxpemFibGUgdGV4dCBkZXNwaXRlIHBvc3NpYmxlCisgICAgICogdGV4dCBhZGRpdGlvbnMuCisgICAgICogQHNlZSAjTkZEX0lORVJUCisgICAgICogQHN0YWJsZSBJQ1UgMy4wIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GS0NfSU5FUlQgPSA0MDsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBQcm9wZXJ0eSBTZWdtZW50X1N0YXJ0ZXIuCisgICAgICogSUNVLXNwZWNpZmljIHByb3BlcnR5IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0YXJ0ZXJzIGluIHRlcm1zIG9mCisgICAgICogVW5pY29kZSBub3JtYWxpemF0aW9uIGFuZCBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlcy4KKyAgICAgKiBUaGV5IGhhdmUgY2NjPTAgYW5kIGRvIG5vdCBvY2N1ciBpbiBub24taW5pdGlhbCBwb3NpdGlvbiBvZiB0aGUKKyAgICAgKiBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBvZiBhbnkgY2hhcmFjdGVyCisgICAgICogKGxpa2UgIiBpbiBORkQoYS11bWxhdXQpIGFuZCBhIEphbW8gVCBpbiBhbiBORkQoSGFuZ3VsIExWVCkpLgorICAgICAqIElDVSB1c2VzIHRoaXMgcHJvcGVydHkgZm9yIHNlZ21lbnRpbmcgYSBzdHJpbmcgZm9yIGdlbmVyYXRpbmcgYSBzZXQgb2YKKyAgICAgKiBjYW5vbmljYWxseSBlcXVpdmFsZW50IHN0cmluZ3MsIGUuZy4gZm9yIGNhbm9uaWNhbCBjbG9zdXJlIHdoaWxlCisgICAgICogcHJvY2Vzc2luZyBjb2xsYXRpb24gdGFpbG9yaW5nIHJ1bGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUdNRU5UX1NUQVJURVIgPSA0MTsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBQYXR0ZXJuX1N5bnRheCAobmV3IGluIFVuaWNvZGUgNC4xKS4KKyAgICAgKiBTZWUgVUFYICMzMSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheAorICAgICAqIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzMS8pCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQVRURVJOX1NZTlRBWCA9IDQyOworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IFBhdHRlcm5fV2hpdGVfU3BhY2UgKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogU2VlIFVBWCAjMzEgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXgKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzEvKQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFUVEVSTl9XSElURV9TUEFDRSA9IDQzOworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IGFsbnVtIChhIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzKS4KKyAgICAgKiBJbXBsZW1lbnRlZCBhY2NvcmRpbmcgdG8gdGhlIFVUUyAjMTggQW5uZXggQyBTdGFuZGFyZCBSZWNvbW1lbmRhdGlvbi4KKyAgICAgKiBTZWUgdGhlIFVDaGFyYWN0ZXIgY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPU0lYX0FMTlVNID0gNDQ7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgYmxhbmsgKGEgQy9QT1NJWCBjaGFyYWN0ZXIgY2xhc3MpLgorICAgICAqIEltcGxlbWVudGVkIGFjY29yZGluZyB0byB0aGUgVVRTICMxOCBBbm5leCBDIFN0YW5kYXJkIFJlY29tbWVuZGF0aW9uLgorICAgICAqIFNlZSB0aGUgVUNoYXJhY3RlciBjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUE9TSVhfQkxBTksgPSA0NTsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBncmFwaCAoYSBDL1BPU0lYIGNoYXJhY3RlciBjbGFzcykuCisgICAgICogSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBVVFMgIzE4IEFubmV4IEMgU3RhbmRhcmQgUmVjb21tZW5kYXRpb24uCisgICAgICogU2VlIHRoZSBVQ2hhcmFjdGVyIGNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1NJWF9HUkFQSCA9IDQ2OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IHByaW50IChhIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzKS4KKyAgICAgKiBJbXBsZW1lbnRlZCBhY2NvcmRpbmcgdG8gdGhlIFVUUyAjMTggQW5uZXggQyBTdGFuZGFyZCBSZWNvbW1lbmRhdGlvbi4KKyAgICAgKiBTZWUgdGhlIFVDaGFyYWN0ZXIgY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPU0lYX1BSSU5UID0gNDc7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgeGRpZ2l0IChhIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzKS4KKyAgICAgKiBJbXBsZW1lbnRlZCBhY2NvcmRpbmcgdG8gdGhlIFVUUyAjMTggQW5uZXggQyBTdGFuZGFyZCBSZWNvbW1lbmRhdGlvbi4KKyAgICAgKiBTZWUgdGhlIFVDaGFyYWN0ZXIgY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPU0lYX1hESUdJVCA9IDQ4OworCisgICAgLyoqIAorICAgICAqIDxwPk9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIGJpbmFyeSBVbmljb2RlIHByb3BlcnRpZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSU5BUllfTElNSVQgPSA0OTsKKyAgICAKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBCaWRpX0NsYXNzLgorICAgICAqIFNhbWUgYXMgVUNoYXJhY3Rlci5nZXREaXJlY3Rpb24oaW50KSwgcmV0dXJucyBVQ2hhcmFjdGVyRGlyZWN0aW9uIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJRElfQ0xBU1MgPSAweDEwMDA7CisKKyAgICAvKiogCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIGVudW1lcmF0ZWQvaW50ZWdlciBVbmljb2RlIHByb3BlcnRpZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVF9TVEFSVCA9IEJJRElfQ0xBU1M7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBCbG9jay4KKyAgICAgKiBTYW1lIGFzIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLm9mKGludCksIHJldHVybnMgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgCisgICAgICogdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkxPQ0sgPSAweDEwMDE7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzLgorICAgICAqIFNhbWUgYXMgVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhpbnQpLCByZXR1cm5zIDgtYml0IG51bWVyaWMgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyA9IDB4MTAwMjsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IERlY29tcG9zaXRpb25fVHlwZS4KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUNPTVBPU0lUSU9OX1RZUEUgPSAweDEwMDM7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBFYXN0X0FzaWFuX1dpZHRoLgorICAgICAqIFNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxMS8KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGggdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUFTVF9BU0lBTl9XSURUSCA9IDB4MTAwNDsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IEdlbmVyYWxfQ2F0ZWdvcnkuCisgICAgICogU2FtZSBhcyBVQ2hhcmFjdGVyLmdldFR5cGUoaW50KSwgcmV0dXJucyBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VORVJBTF9DQVRFR09SWSA9IDB4MTAwNTsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IEpvaW5pbmdfR3JvdXAuCisgICAgICogUmV0dXJucyBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cCB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOSU5HX0dST1VQID0gMHgxMDA2OworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgSm9pbmluZ19UeXBlLgorICAgICAqIFJldHVybnMgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZSB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOSU5HX1RZUEUgPSAweDEwMDc7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBMaW5lX0JyZWFrLgorICAgICAqIFJldHVybnMgVUNoYXJhY3Rlci5MaW5lQnJlYWsgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORV9CUkVBSyA9IDB4MTAwODsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IE51bWVyaWNfVHlwZS4KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQ19UWVBFID0gMHgxMDA5OworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgU2NyaXB0LgorICAgICAqIFNhbWUgYXMgVVNjcmlwdC5nZXRTY3JpcHQoaW50KSwgcmV0dXJucyBVU2NyaXB0IHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNDUklQVCA9IDB4MTAwQTsKKyAgICAKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBIYW5ndWxfU3lsbGFibGVfVHlwZSwgbmV3IGluIFVuaWNvZGUgNC4KKyAgICAgKiBSZXR1cm5zIEhhbmd1bFN5bGxhYmxlVHlwZSB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfU1lMTEFCTEVfVFlQRSA9IDB4MTAwQjsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgTkZEX1F1aWNrX0NoZWNrLgorICAgICAqIFJldHVybnMgbnVtZXJpYyB2YWx1ZXMgY29tcGF0aWJsZSB3aXRoIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORkRfUVVJQ0tfQ0hFQ0sgPSAweDEwMEM7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IE5GS0RfUXVpY2tfQ2hlY2suCisgICAgICogUmV0dXJucyBudW1lcmljIHZhbHVlcyBjb21wYXRpYmxlIHdpdGggTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GS0RfUVVJQ0tfQ0hFQ0sgPSAweDEwMEQ7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IE5GQ19RdWlja19DaGVjay4KKyAgICAgKiBSZXR1cm5zIG51bWVyaWMgdmFsdWVzIGNvbXBhdGlibGUgd2l0aCBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZDX1FVSUNLX0NIRUNLID0gMHgxMDBFOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBORktDX1F1aWNrX0NoZWNrLgorICAgICAqIFJldHVybnMgbnVtZXJpYyB2YWx1ZXMgY29tcGF0aWJsZSB3aXRoIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktDX1FVSUNLX0NIRUNLID0gMHgxMDBGOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBMZWFkX0Nhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3MuCisgICAgICogSUNVLXNwZWNpZmljIHByb3BlcnR5IGZvciB0aGUgY2NjIG9mIHRoZSBmaXJzdCBjb2RlIHBvaW50CisgICAgICogb2YgdGhlIGRlY29tcG9zaXRpb24sIG9yIGxjY2MoYyk9Y2NjKE5GRChjKVswXSkuCisgICAgICogVXNlZnVsIGZvciBjaGVja2luZyBmb3IgY2Fub25pY2FsbHkgb3JkZXJlZCB0ZXh0OworICAgICAqIHNlZSBOb3JtYWxpemVyLkZDRCBhbmQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9ub3Rlcy90bjUvI0ZDRCAuCisgICAgICogUmV0dXJucyA4LWJpdCBudW1lcmljIHZhbHVlcyBsaWtlIENBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTID0gMHgxMDEwOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBUcmFpbF9DYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzLgorICAgICAqIElDVS1zcGVjaWZpYyBwcm9wZXJ0eSBmb3IgdGhlIGNjYyBvZiB0aGUgbGFzdCBjb2RlIHBvaW50CisgICAgICogb2YgdGhlIGRlY29tcG9zaXRpb24sIG9yIGxjY2MoYyk9Y2NjKE5GRChjKVtsYXN0XSkuCisgICAgICogVXNlZnVsIGZvciBjaGVja2luZyBmb3IgY2Fub25pY2FsbHkgb3JkZXJlZCB0ZXh0OworICAgICAqIHNlZSBOb3JtYWxpemVyLkZDRCBhbmQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9ub3Rlcy90bjUvI0ZDRCAuCisgICAgICogUmV0dXJucyA4LWJpdCBudW1lcmljIHZhbHVlcyBsaWtlIENBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyA9IDB4MTAxMTsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgR3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayAobmV3IGluIFVuaWNvZGUgNC4xKS4KKyAgICAgKiBVc2VkIGluIFVBWCAjMjk6IFRleHQgQm91bmRhcmllcworICAgICAqIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8pCisgICAgICogUmV0dXJucyBVR3JhcGhlbWVDbHVzdGVyQnJlYWsgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfQ0xVU1RFUl9CUkVBSyA9IDB4MTAxMjsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgU2VudGVuY2VfQnJlYWsgKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogVXNlZCBpbiBVQVggIzI5OiBUZXh0IEJvdW5kYXJpZXMKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQorICAgICAqIFJldHVybnMgVVNlbnRlbmNlQnJlYWsgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VOVEVOQ0VfQlJFQUsgPSAweDEwMTM7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IFdvcmRfQnJlYWsgKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogVXNlZCBpbiBVQVggIzI5OiBUZXh0IEJvdW5kYXJpZXMKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQorICAgICAqIFJldHVybnMgVVdvcmRCcmVha1ZhbHVlcyB2YWx1ZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0JSRUFLID0gMHgxMDE0OworCisgICAgLyoqIAorICAgICAqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIGVudW1lcmF0ZWQvaW50ZWdlciBVbmljb2RlIAorICAgICAqIHByb3BlcnRpZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRfTElNSVQgPSAweDEwMTU7CisKKyAgICAvKiogCisgICAgICogQml0bWFzayBwcm9wZXJ0eSBHZW5lcmFsX0NhdGVnb3J5X01hc2suCisgICAgICogVGhpcyBpcyB0aGUgR2VuZXJhbF9DYXRlZ29yeSBwcm9wZXJ0eSByZXR1cm5lZCBhcyBhIGJpdCBtYXNrLgorICAgICAqIFdoZW4gdXNlZCBpbiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYyksCisgICAgICogcmV0dXJucyBiaXQgbWFza3MgZm9yIFVDaGFyYWN0ZXJDYXRlZ29yeSB2YWx1ZXMgd2hlcmUgZXhhY3RseSBvbmUgYml0IGlzIHNldC4gCisgICAgICogV2hlbiB1c2VkIHdpdGggVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZSgpIGFuZCBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKCksIAorICAgICAqIGEgbXVsdGktYml0IG1hc2sgaXMgdXNlZCBmb3Igc2V0cyBvZiBjYXRlZ29yaWVzIGxpa2UgIkxldHRlcnMiLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VORVJBTF9DQVRFR09SWV9NQVNLID0gMHgyMDAwOyAKKworICAgIC8qKiAKKyAgICAgKiBGaXJzdCBjb25zdGFudCBmb3IgYml0LW1hc2sgVW5pY29kZSBwcm9wZXJ0aWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVNLX1NUQVJUID0gR0VORVJBTF9DQVRFR09SWV9NQVNLOworCisgICAgLyoqIAorICAgICAqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIGJpdC1tYXNrIFVuaWNvZGUgcHJvcGVydGllcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BU0tfTElNSVQgPSAweDIwMDE7IAorICAgIAorICAgIC8qKgorICAgICAqIERvdWJsZSBwcm9wZXJ0eSBOdW1lcmljX1ZhbHVlLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUNfVkFMVUUgPSAweDMwMDA7CisKKyAgICAvKioKKyAgICAgKiBGaXJzdCBjb25zdGFudCBmb3IgZG91YmxlIFVuaWNvZGUgcHJvcGVydGllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1VCTEVfU1RBUlQgPSBOVU1FUklDX1ZBTFVFOworCisgICAgLyoqCisgICAgICogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3IgZG91YmxlIFVuaWNvZGUgcHJvcGVydGllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1VCTEVfTElNSVQgPSAweDMwMDE7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgQWdlLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0QWdlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUdFID0gMHg0MDAwOworCisgICAgLyoqCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIHN0cmluZyBVbmljb2RlIHByb3BlcnRpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RSSU5HX1NUQVJUID0gQUdFOworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IEJpZGlfTWlycm9yaW5nX0dseXBoLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESV9NSVJST1JJTkdfR0xZUEggPSAweDQwMDE7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgQ2FzZV9Gb2xkaW5nLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZm9sZENhc2UoU3RyaW5nLCBib29sZWFuKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVNFX0ZPTERJTkcgPSAweDQwMDI7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgSVNPX0NvbW1lbnQuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci5nZXRJU09Db21tZW50KGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVNPX0NPTU1FTlQgPSAweDQwMDM7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgTG93ZXJjYXNlX01hcHBpbmcuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShTdHJpbmcpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPV0VSQ0FTRV9NQVBQSU5HID0gMHg0MDA0OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IE5hbWUuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci5nZXROYW1lKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFNRSA9IDB4NDAwNTsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBTaW1wbGVfQ2FzZV9Gb2xkaW5nLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZm9sZENhc2UoaW50LCBib29sZWFuKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSU1QTEVfQ0FTRV9GT0xESU5HID0gMHg0MDA2OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFNpbXBsZV9Mb3dlcmNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX0xPV0VSQ0FTRV9NQVBQSU5HID0gMHg0MDA3OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFNpbXBsZV9UaXRsZWNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HID0gMHg0MDA4OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFNpbXBsZV9VcHBlcmNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HID0gMHg0MDA5OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFRpdGxlY2FzZV9NYXBwaW5nLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoU3RyaW5nKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSVRMRUNBU0VfTUFQUElORyA9IDB4NDAwQTsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBVbmljb2RlXzFfTmFtZS4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLmdldE5hbWUxXzAoaW50KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTklDT0RFXzFfTkFNRSA9IDB4NDAwQjsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBVcHBlcmNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFN0cmluZykuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJDQVNFX01BUFBJTkcgPSAweDQwMEM7CisKKyAgICAvKioKKyAgICAgKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBzdHJpbmcgVW5pY29kZSBwcm9wZXJ0aWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUUklOR19MSU1JVCA9IDB4NDAwRDsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGNvbnN0YW50cyBmb3IgVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eU5hbWUoKSBhbmQKKyAgICAgKiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKCkuICBUaGVzZSBzZWxlY3RvcnMgYXJlIHVzZWQgdG8KKyAgICAgKiBjaG9vc2Ugd2hpY2ggbmFtZSBpcyByZXR1cm5lZCBmb3IgYSBnaXZlbiBwcm9wZXJ0eSBvciB2YWx1ZS4KKyAgICAgKiBBbGwgcHJvcGVydGllcyBhbmQgdmFsdWVzIGhhdmUgYSBsb25nIG5hbWUuICBNb3N0IGhhdmUgYSBzaG9ydAorICAgICAqIG5hbWUsIGJ1dCBzb21lIGRvIG5vdC4gIFVuaWNvZGUgYWxsb3dzIGZvciBhZGRpdGlvbmFsIG5hbWVzLAorICAgICAqIGJleW9uZCB0aGUgbG9uZyBhbmQgc2hvcnQgbmFtZSwgd2hpY2ggd291bGQgYmUgaW5kaWNhdGVkIGJ5CisgICAgICogTE9ORyArIGksIHdoZXJlIGk9MSwgMiwuLi4KKyAgICAgKgorICAgICAqIEBzZWUgVUNoYXJhY3RlciNnZXRQcm9wZXJ0eU5hbWUKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXIjZ2V0UHJvcGVydHlWYWx1ZU5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50ZXJmYWNlIE5hbWVDaG9pY2UgeworICAgICAgICAvKioKKyAgICAgICAgICogU2VsZWN0b3IgZm9yIHRoZSBhYmJyZXZpYXRlZCBuYW1lIG9mIGEgcHJvcGVydHkgb3IgdmFsdWUuCisgICAgICAgICAqIE1vc3QgcHJvcGVydGllcyBhbmQgdmFsdWVzIGhhdmUgYSBzaG9ydCBuYW1lOyB0aG9zZSB0aGF0IGRvCisgICAgICAgICAqIG5vdCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFNIT1JUID0gMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2VsZWN0b3IgZm9yIHRoZSBsb25nIG5hbWUgb2YgYSBwcm9wZXJ0eSBvciB2YWx1ZS4gIEFsbAorICAgICAgICAgKiBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMgaGF2ZSBhIGxvbmcgbmFtZS4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IExPTkcgPSAxOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIHByZWRlZmluZWQgcHJvcGVydHkgbmFtZSBjaG9pY2VzLiAgSW5kaXZpZHVhbAorICAgICAgICAgKiBwcm9wZXJ0aWVzIG9yIHZhbHVlcyBtYXkgaGF2ZSBtb3JlIHRoYW4gQ09VTlQgYWxpYXNlcy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0LmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2ExY2Q3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VTY3JpcHQuamF2YQpAQCAtMCwwICsxLDc5NyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvKioKKyAqIEEgY2xhc3MgdG8gcmVmbGVjdCBVVFIgIzI0OiBTY3JpcHQgTmFtZXMKKyAqIChiYXNlZCBvbiBJU08gMTU5MjQ6MjAwMCwgIkNvZGUgZm9yIHRoZSByZXByZXNlbnRhdGlvbiBvZiBuYW1lcyBvZgorICogc2NyaXB0cyIpLiAgVVRSICMyNCBkZXNjcmliZXMgdGhlIGJhc2lzIGZvciBhIG5ldyBVbmljb2RlIGRhdGEgZmlsZSwKKyAqIFNjcmlwdHMudHh0LgorICogQHN0YWJsZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVU2NyaXB0IHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTIwMDEgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBJbnZhbGlkIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlZBTElEX0NPREUgPSAtMTsKKyAgICAvKioKKyAgICAgKiBDb21tb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01NT04gICAgICAgPSAgMDsgIC8qIFp5eXkgKi8KKyAgICAvKioKKyAgICAgKiBJbmhlcml0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkhFUklURUQgICAgPSAgMTsgIC8qIFFhYWkgKi8KKyAgICAvKioKKyAgICAgKiBBcmFiaWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUkFCSUMgICAgICAgPSAgMjsgIC8qIEFyYWIgKi8KKyAgICAvKioKKyAgICAgKiBBcm1lbmlhbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSTUVOSUFOICAgICA9ICAzOyAgLyogQXJtbiAqLworICAgIC8qKgorICAgICAqIEJlbmdhbGkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCRU5HQUxJICAgICAgPSAgNDsgIC8qIEJlbmcgKi8KKyAgICAvKioKKyAgICAgKiBCb3BvbW9mbworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJPUE9NT0ZPICAgICA9ICA1OyAgLyogQm9wbyAqLworICAgIC8qKgorICAgICAqIENoZXJva2VlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0hFUk9LRUUgICAgID0gIDY7ICAvKiBDaGVyICovCisgICAgLyoqCisgICAgICogQ29wdGljCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09QVElDICAgICAgID0gIDc7ICAvKiBRYWFjICovCisgICAgLyoqCisgICAgICogQ3lyaWxsaWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDWVJJTExJQyAgICAgPSAgODsgIC8qIEN5cmwgKEN5cnMpICovCisgICAgLyoqCisgICAgICogRGVzZXJldAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFU0VSRVQgICAgICA9ICA5OyAgLyogRHNydCAqLworICAgIC8qKgorICAgICAqIERldmFuYWdhcmkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERVZBTkFHQVJJICAgPSAxMDsgIC8qIERldmEgKi8KKyAgICAvKioKKyAgICAgKiBFdGhpb3BpYworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVUSElPUElDICAgICA9IDExOyAgLyogRXRoaSAqLworICAgIC8qKgorICAgICAqIEdlb3JnaWFuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VPUkdJQU4gICAgID0gMTI7ICAvKiBHZW9yIChHZW9uOyBHZW9hKSAqLworICAgIC8qKgorICAgICAqIEdvdGhpYworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdPVEhJQyAgICAgICA9IDEzOyAgLyogR290aCAqLworICAgIC8qKgorICAgICAqIEdyZWVrCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JFRUsgICAgICAgID0gMTQ7ICAvKiBHcmVrICovCisgICAgLyoqCisgICAgICogR3VqYXJhdGkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHVUpBUkFUSSAgICAgPSAxNTsgIC8qIEd1anIgKi8KKyAgICAvKioKKyAgICAgKiBHdXJtdWtoaQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdVUk1VS0hJICAgICA9IDE2OyAgLyogR3VydSAqLworICAgIC8qKgorICAgICAqIEhhbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTiAgICAgICAgICA9IDE3OyAgLyogSGFuaSAqLworICAgIC8qKgorICAgICAqIEhhbmd1bAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTkdVTCAgICAgICA9IDE4OyAgLyogSGFuZyAqLworICAgIC8qKgorICAgICAqIEhlYnJldworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFQlJFVyAgICAgICA9IDE5OyAgLyogSGViciAqLworICAgIC8qKgorICAgICAqIEhpcmFnYW5hCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElSQUdBTkEgICAgID0gMjA7ICAvKiBIaXJhICovCisgICAgLyoqCisgICAgICogS2FubmFkYQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBTk5BREEgICAgICA9IDIxOyAgLyogS25kYSAqLworICAgIC8qKgorICAgICAqIEthdGFrYW5hCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FUQUtBTkEgICAgID0gMjI7ICAvKiBLYW5hICovCisgICAgLyoqCisgICAgICogS2htZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSE1FUiAgICAgICAgPSAyMzsgIC8qIEtobXIgKi8KKyAgICAvKioKKyAgICAgKiBMYW8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQU8gICAgICAgICAgPSAyNDsgIC8qIExhb28gKi8KKyAgICAvKioKKyAgICAgKiBMYXRpbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOICAgICAgICA9IDI1OyAgLyogTGF0biAoTGF0ZjsgTGF0ZykgKi8KKyAgICAvKioKKyAgICAgKiBNYWxheWFsYW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQUxBWUFMQU0gICAgPSAyNjsgIC8qIE1seW0gKi8KKyAgICAvKioKKyAgICAgKiBNYW5nb2xpYW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNT05HT0xJQU4gICAgPSAyNzsgIC8qIE1vbmcgKi8KKyAgICAvKioKKyAgICAgKiBNeWFtbWFyCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTVlBTk1BUiAgICAgID0gMjg7ICAvKiBNeW1yICovCisgICAgLyoqCisgICAgICogT2doYW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPR0hBTSAgICAgICAgPSAyOTsgIC8qIE9nYW0gKi8KKyAgICAvKioKKyAgICAgKiBPbGQgSXRhbGxpYworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRF9JVEFMSUMgICA9IDMwOyAgLyogSXRhbCAqLworICAgIC8qKgorICAgICAqIE9yaXlhCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1JJWUEgICAgICAgID0gMzE7ICAvKiBPcnlhICovCisgICAgLyoqCisgICAgICogUnVuaWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSVU5JQyAgICAgICAgPSAzMjsgIC8qIFJ1bnIgKi8KKyAgICAvKioKKyAgICAgKiBTaW5oYWxhCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lOSEFMQSAgICAgID0gMzM7ICAvKiBTaW5oICovCisgICAgLyoqCisgICAgICogU3lyaWFjCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lSSUFDICAgICAgID0gMzQ7ICAvKiBTeXJjIChTeXJqOyBTeXJuOyBTeXJlKSAqLworICAgIC8qKgorICAgICAqIFRhbWlsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFNSUwgICAgICAgID0gMzU7ICAvKiBUYW1sICovCisgICAgLyoqCisgICAgICogVGVsdWd1CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVMVUdVICAgICAgID0gMzY7ICAvKiBUZWx1ICovCisgICAgLyoqCisgICAgICogVGhhbmEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSEFBTkEgICAgICAgPSAzNzsgIC8qIFRoYWEgKi8KKyAgICAvKioKKyAgICAgKiBUaGFpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEhBSSAgICAgICAgID0gMzg7ICAvKiBUaGFpICovCisgICAgLyoqCisgICAgICogVGliZXRhbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRJQkVUQU4gICAgICA9IDM5OyAgLyogVGlidCAqLworICAgIC8qKgorICAgICAqIFVuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FOQURJQU5fQUJPUklHSU5BTCA9IDQwOyAgLyogQ2FucyAqLworICAgIC8qKgorICAgICAqIFVuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeW1ib2xzIChhbGlhcykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVQ0FTICAgICAgICAgPSBDQU5BRElBTl9BQk9SSUdJTkFMOyAgLyogQ2FucyAqLworICAgIC8qKgorICAgICAqIFlpIHN5bGxhYmxlcworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlJICAgICAgICAgICA9IDQxOyAgLyogWWlpaSAqLworICAgIC8qKgorICAgICAqIFRhZ2Fsb2cKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUdBTE9HICAgICAgPSA0MjsgIC8qIFRnbGcgKi8KKyAgICAvKioKKyAgICAgKiBIYW51bm9vbworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTlVOT08gICAgICA9IDQzOyAgLyogSGFubyAqLworICAgIC8qKgorICAgICAqIEJ1aGlkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlVISUQgICAgICAgID0gNDQ7ICAvKiBCdWhkICovCisgICAgLyoqCisgICAgICogVGFnYmFud2EKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUdCQU5XQSAgICAgPSA0NTsgIC8qIFRhZ2IgKi8KKyAgICAvKioKKyAgICAgKiBCcmFpbGxlCisgICAgICogTmV3IHNjcmlwdCBpbiBVbmljb2RlIDQgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkFJTExFICAgICAgPSA0NjsgIC8qIEJyYWkgKi8KKyAgICAvKioKKyAgICAgKiBDeXByaW90CisgICAgICogTmV3IHNjcmlwdCBpbiBVbmljb2RlIDQgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqIAorICAgICAqLyAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lQUklPVCAgICAgICAgICAgICAgPSA0NzsgIC8qIENwcnQgKi8gCisgICAgLyoqCisgICAgICogTGltYnUKKyAgICAgKiBOZXcgc2NyaXB0IGluIFVuaWNvZGUgNCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICogCisgICAgICovICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTUJVICAgICAgICAgICAgICAgID0gNDg7ICAvKiBMaW1iICovIAorICAgIC8qKgorICAgICAqIExpbmVhciBCCisgICAgICogTmV3IHNjcmlwdCBpbiBVbmljb2RlIDQgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FQVJfQiAgICAgPSA0OTsgIC8qIExpbmIgKi8gCisgICAgLyoqCisgICAgICogT3NtYW55YQorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1NNQU5ZQSAgICAgICAgICAgICAgPSA1MDsgIC8qIE9zbWEgKi8gCisgICAgLyoqCisgICAgICogU2hhdmlhbgorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBVklBTiAgICAgICAgICAgICAgPSA1MTsgIC8qIFNoYXcgKi8gCisgICAgLyoqCisgICAgICogVGFpIExlCisgICAgICogTmV3IHNjcmlwdCBpbiBVbmljb2RlIDQgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUlfTEUgICAgICAgICAgICAgICA9IDUyOyAgLyogVGFsZSAqLyAKKyAgICAvKioKKyAgICAgKiBVZ2FyaXRpYworICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUdBUklUSUMgICAgID0gNTM7ICAvKiBVZ2FyICovIAorICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMC4xCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FUQUtBTkFfT1JfSElSQUdBTkEgPSA1NDsgIC8qSHJrdCAqLworCisgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0LjEgQGRyYWZ0IElDVSAzLjQgKi8KKworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlVHSU5FU0UgPSA1NTsgICAgICAgICAgIC8qIEJ1Z2kgKi8KKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjEKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdMQUdPTElUSUMgPSA1NjsgICAgICAgICAvKiBHbGFnICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4xCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSEFST1NIVEhJID0gNTc7ICAgICAgICAgLyogS2hhciAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lMT1RJX05BR1JJID0gNTg7ICAgICAgIC8qIFN5bG8gKi8KKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjEKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FV19UQUlfTFVFID0gNTk7ICAgICAgICAvKiBUYWx1ICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4xCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSUZJTkFHSCA9IDYwOyAgICAgICAgICAgLyogVGZuZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX1BFUlNJQU4gPSA2MTsgICAgICAgIC8qIFhwZW8gKi8KKworCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQUxJTkVTRSAgICAgICAgICAgICAgICAgICAgICA9IDYyOyAvKiBCYWxpICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVRBSyAgICAgICAgICAgICAgICAgICAgICAgICA9IDYzOyAvKiBCYXRrICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCTElTU1lNQk9MUyAgICAgICAgICAgICAgICAgICA9IDY0OyAvKiBCbGlzICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkFITUkgICAgICAgICAgICAgICAgICAgICAgICA9IDY1OyAvKiBCcmFoICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSEFNICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY2OyAvKiBDaGFtICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSVJUSCAgICAgICAgICAgICAgICAgICAgICAgICA9IDY3OyAvKiBDaXJ0ICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfQ0hVUkNIX1NMQVZPTklDX0NZUklMTElDICA9IDY4OyAvKiBDeXJzICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERU1PVElDX0VHWVBUSUFOICAgICAgICAgICAgICA9IDY5OyAvKiBFZ3lkICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBISUVSQVRJQ19FR1lQVElBTiAgICAgICAgICAgICA9IDcwOyAvKiBFZ3loICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFR1lQVElBTl9ISUVST0dMWVBIUyAgICAgICAgICA9IDcxOyAvKiBFZ3lwICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSFVUU1VSSSAgICAgICAgICAgICAgICAgICAgICA9IDcyOyAvKiBHZW9rICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSU1QTElGSUVEX0hBTiAgICAgICAgICAgICAgICA9IDczOyAvKiBIYW5zICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUUkFESVRJT05BTF9IQU4gICAgICAgICAgICAgICA9IDc0OyAvKiBIYW50ICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQUhBV0hfSE1PTkcgICAgICAgICAgICAgICAgICA9IDc1OyAvKiBIbW5nICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfSFVOR0FSSUFOICAgICAgICAgICAgICAgICA9IDc2OyAvKiBIdW5nICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQVJBUFBBTl9JTkRVUyAgICAgICAgICAgICAgICA9IDc3OyAvKiBJbmRzICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQVZBTkVTRSAgICAgICAgICAgICAgICAgICAgICA9IDc4OyAvKiBKYXZhICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQVlBSF9MSSAgICAgICAgICAgICAgICAgICAgICA9IDc5OyAvKiBLYWxpICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9GUkFLVFVSICAgICAgICAgICAgICAgICA9IDgwOyAvKiBMYXRmICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9HQUVMSUMgICAgICAgICAgICAgICAgICA9IDgxOyAvKiBMYXRnICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVBDSEEgICAgICAgICAgICAgICAgICAgICAgICA9IDgyOyAvKiBMZXBjICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FQVJfQSAgICAgICAgICAgICAgICAgICAgICA9IDgzOyAvKiBMaW5hICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQU5EQUVBTiAgICAgICAgICAgICAgICAgICAgICA9IDg0OyAvKiBNYW5kICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVlBTl9ISUVST0dMWVBIUyAgICAgICAgICAgICA9IDg1OyAvKiBNYXlhICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVJPSVRJQyAgICAgICAgICAgICAgICAgICAgICA9IDg2OyAvKiBNZXJvICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOS08gICAgICAgICAgICAgICAgICAgICAgICAgICA9IDg3OyAvKiBOa29vICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPUktIT04gICAgICAgICAgICAgICAgICAgICAgICA9IDg4OyAvKiBPcmtoICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfUEVSTUlDICAgICAgICAgICAgICAgICAgICA9IDg5OyAvKiBQZXJtICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSEFHU19QQSAgICAgICAgICAgICAgICAgICAgICA9IDkwOyAvKiBQaGFnICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSE9FTklDSUFOICAgICAgICAgICAgICAgICAgICA9IDkxOyAvKiBQaG54ICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSE9ORVRJQ19QT0xMQVJEICAgICAgICAgICAgICA9IDkyOyAvKiBQbHJkICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST05HT1JPTkdPICAgICAgICAgICAgICAgICAgICA9IDkzOyAvKiBSb3JvICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQVJBVEkgICAgICAgICAgICAgICAgICAgICAgICA9IDk0OyAvKiBTYXJhICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFU1RSQU5HRUxPX1NZUklBQyAgICAgICAgICAgICA9IDk1OyAvKiBTeXJlICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRVNURVJOX1NZUklBQyAgICAgICAgICAgICAgICA9IDk2OyAvKiBTeXJqICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFQVNURVJOX1NZUklBQyAgICAgICAgICAgICAgICA9IDk3OyAvKiBTeXJuICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURU5HV0FSICAgICAgICAgICAgICAgICAgICAgICA9IDk4OyAvKiBUZW5nICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDk5OyAvKiBWYWlpICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWSVNJQkxFX1NQRUVDSCAgICAgICAgICAgICAgICA9IDEwMDsvKiBWaXNwICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVU5FSUZPUk0gICAgICAgICAgICAgICAgICAgICA9IDEwMTsvKiBYc3V4ICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTldSSVRURU5fTEFOR1VBR0VTICAgICAgICAgICA9IDEwMjsvKiBaeHh4ICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTktOT1dOICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzsvKiBaenp6ICovIC8qIFVua25vd249IkNvZGUgZm9yIHVuY29kZWQgc2NyaXB0IiwgZm9yIHVuYXNzaWduZWQgY29kZSBwb2ludHMgKi8KKyAgICAKKyAgICAvKiBQcml2YXRlIHVzZSBjb2RlcyBmcm9tIFFhYWEgLSBRYWJ4IGFyZSBub3Qgc3VwcG9ydGVkKi8KKworICAgIC8qKgorICAgICAqIExpbWl0CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09ERV9MSU1JVCAgID0gMTA0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNDUklQVF9NQVNLICAgPSAweDAwMDAwMDdmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJQcm9wZXJ0eSBwcm9wPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0xvY2FsZVNjcmlwdCA9ICJMb2NhbGVTY3JpcHQiOworICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOVkFMSURfTkFNRSA9ICJJbnZhbGlkIjsKKyAgICAvKioKKyAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29kZSBmcm9tIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gZmluZENvZGVGcm9tTG9jYWxlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGxvY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gaWYgcmIgaXMgbm90IGEgc3RyaWN0IGZhbGxiYWNrIG9mIHRoZSByZXF1ZXN0ZWQgbG9jYWxlLCByZXR1cm4gbnVsbAorICAgICAgICAvL2lmKCFMb2NhbGVVdGlsaXR5LmlzRmFsbGJhY2tPZihyYi5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKSwgbG9jYWxlLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgLy8gICAgcmV0dXJuIG51bGw7CisgICAgICAgIC8vfQorICAgICAgICAvL25vbiBleGlzdGVudCBsb2NhbGUgY2hlY2sKKyAgICAgICAgaWYocmIuZ2V0TG9hZGluZ1N0YXR1cygpPT1JQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0RFRkFVTFQgJiYgISBsb2NhbGUuZXF1YWxzKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKSl7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoa0xvY2FsZVNjcmlwdCk7CisgICAgICAgIAorICAgICAgICBpbnRbXSByZXN1bHQgPSBuZXcgaW50W3N1Yi5nZXRTaXplKCldOworICAgICAgICBpbnQgdyA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgY29kZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0oVVByb3BlcnR5LlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIuZ2V0U3RyaW5nKGkpKTsKKyAgICAgICAgICAgIHJlc3VsdFt3KytdID0gY29kZTsKKworICAgICAgICB9CisKKyAgICAgICAgaWYgKHcgPCByZXN1bHQubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJiYWQgbG9jYWxlIGRhdGEsIGxpc3RlZCAiICsgCisgICAgICAgICAgICAgICAgIHJlc3VsdC5sZW5ndGggKyAiIHNjcmlwdHMgYnV0IGZvdW5kIG9ubHkgIiArIHcpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IGNvZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlIG9yIElTTyAxNTkyNCBhYmJyZXZpYXRpb24gb3IgbmFtZS4KKyAgICAgKiBSZXR1cm5zIE1BTEFZQU0gZ2l2ZW4gIk1hbGF5YW0iIE9SICJNbHltIi4KKyAgICAgKiBSZXR1cm5zIExBVElOIGdpdmVuICJlbiIgT1IgImVuX1VTIgorICAgICAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlCisgICAgICogQHJldHVybiBUaGUgc2NyaXB0IGNvZGVzIGFycmF5LiBudWxsIGlmIHRoZSB0aGUgY29kZSBjYW5ub3QgYmUgZm91bmQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnRbXSBnZXRDb2RlKExvY2FsZSBsb2NhbGUpeworICAgICAgICByZXR1cm4gZmluZENvZGVGcm9tTG9jYWxlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IGNvZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlIG9yIElTTyAxNTkyNCBhYmJyZXZpYXRpb24gb3IgbmFtZS4KKyAgICAgKiBSZXR1cm5zIE1BTEFZQU0gZ2l2ZW4gIk1hbGF5YW0iIE9SICJNbHltIi4KKyAgICAgKiBSZXR1cm5zIExBVElOIGdpdmVuICJlbiIgT1IgImVuX1VTIgorICAgICAqIEBwYXJhbSBsb2NhbGUgVUxvY2FsZQorICAgICAqIEByZXR1cm4gVGhlIHNjcmlwdCBjb2RlcyBhcnJheS4gbnVsbCBpZiB0aGUgdGhlIGNvZGUgY2Fubm90IGJlIGZvdW5kLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50W10gZ2V0Q29kZShVTG9jYWxlIGxvY2FsZSl7CisgICAgICAgIHJldHVybiBmaW5kQ29kZUZyb21Mb2NhbGUobG9jYWxlKTsKKyAgICB9CisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBjb2RlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGxvY2FsZSBvciBJU08gMTU5MjQgYWJicmV2aWF0aW9uIG9yIG5hbWUuCisgICAgICogUmV0dXJucyBNQUxBWUFNIGdpdmVuICJNYWxheWFtIiBPUiAiTWx5bSIuCisgICAgICogUmV0dXJucyBMQVRJTiBnaXZlbiAiZW4iIE9SICJlbl9VUyIKKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRvIHNlYXJjaCBieSBzaG9ydCBvciBsb25nIHNjcmlwdCBhbGlhcyBvbmx5LCB1c2UKKyAgICAgKiBVQ2hhcmFjYXRlci5nZXRQcm9wZXJ0eVZhbHVlRW51bShVUHJvcGVydHkuU0NSSVBULCBhbGlhcykKKyAgICAgKiBpbnN0ZWFkLiAgVGhpcyBkb2VzIGEgZmFzdCBsb29rdXAgd2l0aCBubyBhY2Nlc3Mgb2YgdGhlIGxvY2FsZQorICAgICAqIGRhdGEuCisgICAgICogQHBhcmFtIG5hbWVPckFiYnJPckxvY2FsZSBuYW1lIG9mIHRoZSBzY3JpcHQgb3IgSVNPIDE1OTI0IGNvZGUgb3IgbG9jYWxlCisgICAgICogQHJldHVybiBUaGUgc2NyaXB0IGNvZGVzIGFycmF5LiBudWxsIGlmIHRoZSB0aGUgY29kZSBjYW5ub3QgYmUgZm91bmQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnRbXSBnZXRDb2RlKFN0cmluZyBuYW1lT3JBYmJyT3JMb2NhbGUpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlRW51bShVUHJvcGVydHkuU0NSSVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU9yQWJick9yTG9jYWxlKQorICAgICAgICAgICAgfTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmaW5kQ29kZUZyb21Mb2NhbGUobmV3IFVMb2NhbGUobmFtZU9yQWJick9yTG9jYWxlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IGNvZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gSVNPIDE1OTI0IGFiYnJldmlhdGlvbiBvciBuYW1lLgorICAgICAqIFJldHVybnMgTUFMQVlBTSBnaXZlbiAiTWFsYXlhbSIgT1IgIk1seW0iLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWVPckFiYnIgbmFtZSBvZiB0aGUgc2NyaXB0IG9yIElTTyAxNTkyNCBjb2RlCisgICAgICogQHJldHVybiBUaGUgc2NyaXB0IGNvZGUgdmFsdWUgb3IgSU5WQUxJRF9DT0RFIGlmIHRoZSBjb2RlIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBnZXRDb2RlRnJvbU5hbWUoU3RyaW5nIG5hbWVPckFiYnIpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKFVQcm9wZXJ0eS5TQ1JJUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lT3JBYmJyKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX0NPREU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzY3JpcHQgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGNvZGVwb2ludC4KKyAgICAgKiBSZXR1cm5zIFVTY3JpcHQuTUFMQVlBTSBnaXZlbiAweDBEMDIKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IFVDaGFyMzIgY29kZXBvaW50CisgICAgICogQHJldHVybiBUaGUgc2NyaXB0IGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBnZXRTY3JpcHQoaW50IGNvZGVwb2ludCl7CisgICAgICAgIGlmIChjb2RlcG9pbnQgPj0gVUNoYXJhY3Rlci5NSU5fVkFMVUUgJiBjb2RlcG9pbnQgPD0gVUNoYXJhY3Rlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAocHJvcC5nZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwwKSAmIFNDUklQVF9NQVNLKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcoY29kZXBvaW50KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBzY3JpcHQgY29kZS4KKyAgICAgKiBSZXR1cm5zICAiTWFsYXlhbSIgZ2l2ZW4gTUFMQVlBTQorICAgICAqIEBwYXJhbSBzY3JpcHRDb2RlIGludCBzY3JpcHQgY29kZQorICAgICAqIEByZXR1cm4gc2NyaXB0IG5hbWUgYXMgYSBzdHJpbmcgaW4gZnVsbCBhcyBnaXZlbiBpbiBUUiMyNAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGdldE5hbWUoaW50IHNjcmlwdENvZGUpeworICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShVUHJvcGVydHkuU0NSSVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBzY3JpcHQgY29kZS4KKyAgICAgKiBSZXR1cm5zICAiTWx5bSIgZ2l2ZW4gTUFMQVlBTQorICAgICAqIEBwYXJhbSBzY3JpcHRDb2RlIGludCBzY3JpcHQgY29kZQorICAgICAqIEByZXR1cm4gc2NyaXB0IGFiYnJldmlhdGVkIG5hbWUgYXMgYSBzdHJpbmcgIGFzIGdpdmVuIGluIFRSIzI0CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ2V0U2hvcnROYW1lKGludCBzY3JpcHRDb2RlKXsKKyAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoVVByb3BlcnR5LlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Q29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgICogIFByaXZhdGUgQ29uc3RydWN0b3IuIE5ldmVyIGRlZmF1bHQgY29uc3RydWN0CisgICAgICovCisgICAgcHJpdmF0ZSBVU2NyaXB0KCl7fQorICAgIC8vL0NMT1ZFUjpPTgorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIzNDY4MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YQpAQCAtMCwwICsxLDYzNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gaXMgdXNlZCB0byBmaW5kIHJ1bnMgb2YgY2hhcmFjdGVycyBpbgorICogdGhlIHNhbWUgc2NyaXB0LCBhcyBkZWZpbmVkIGluIHRoZSA8Y29kZT5VU2NyaXB0PC9jb2RlPiBjbGFzcy4KKyAqIEl0IGltcGxlbWVudHMgYSBzaW1wbGUgaXRlcmF0b3Igb3ZlciBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzLgorICogVGhlIGl0ZXJhdG9yIHdpbGwgYXNzaWduIDxjb2RlPkNPTU1PTjwvY29kZT4gYW5kIDxjb2RlPklOSEVSSVRFRDwvY29kZT4KKyAqIGNoYXJhY3RlcnMgdG8gdGhlIHNhbWUgc2NyaXB0IGFzIHRoZSBwcmVjZWVkaW5nIGNoYXJhY3RlcnMuIElmIHRoZQorICogQ09NTU9OIGFuZCBJTkhFUklURUQgY2hhcmFjdGVycyBhcmUgZmlyc3QsIHRoZXkgd2lsbCBiZSBhc3NpZ25lZCB0bworICogdGhlIHNhbWUgc2NyaXB0IGFzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycy4KKyAqCisgKiBUaGUgaXRlcmF0b3Igd2lsbCB0cnkgdG8gbWF0Y2ggcGFpcmVkIHB1bmN0dWF0aW9uLiBJZiBpdCBzZWVzIGFuCisgKiBvcGVuaW5nIHB1bmN0dWF0aW9uIGNoYXJhY3RlciwgaXQgd2lsbCByZW1lbWJlciB0aGUgc2NyaXB0IHRoYXQKKyAqIHdhcyBhc3NpZ25lZCB0byB0aGF0IGNoYXJhY3RlciwgYW5kIGFzc2lnbiB0aGUgc2FtZSBzY3JpcHQgdG8gdGhlCisgKiBtYXRjaGluZyBjbG9zaW5nIHB1bmN0dWF0aW9uLgorICoKKyAqIE5vIGF0dGVtcHQgaXMgbWFkZSB0byBjb21iaW5lIHJlbGF0ZWQgc2NyaXB0cyBpbnRvIGEgc2luZ2xlIHJ1bi4gSW4KKyAqIHBhcnRpY3VsYXIsIEhpcmFnYW5hLCBLYXRha2FuYSwgYW5kIEhhbiBjaGFyYWN0ZXJzIHdpbGwgYXBwZWFyIGluIHNlcGVyYXRlCisgKiBydW5zLgorCisgKiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGl0ZXJhdGUgb3ZlciBzY3JpcHQgcnVuczoKKyAqIDxwcmU+CisgKiB2b2lkIHByaW50U2NyaXB0UnVucyhjaGFyW10gdGV4dCkKKyAqIHsKKyAqICAgICBVU2NyaXB0UnVuIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKHRleHQpOworICoKKyAqICAgICB3aGlsZSAoc2NyaXB0UnVuLm5leHQoKSkgeworICogICAgICAgICBpbnQgc3RhcnQgID0gc2NyaXB0UnVuLmdldFNjcmlwdFN0YXJ0KCk7CisgKiAgICAgICAgIGludCBsaW1pdCAgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0TGltaXQoKTsKKyAqICAgICAgICAgaW50IHNjcmlwdCA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRDb2RlKCk7CisgKgorICogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNjcmlwdCBcIiIgKyBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KSArICJcIiBmcm9tICIgKworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyAiIHRvICIgKyBsaW1pdCArICIuIik7CisgKiAgICAgfQorICogIH0KKyAqIDwvcHJlPgorICoKKyAqIEBpbnRlcm5hbAorICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVU2NyaXB0UnVuCit7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk5LTIwMDIgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gZW1wdHkgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0LiBUaGUgPGNvZGU+bmV4dCgpPC9jb2RlPgorICAgICAqIG1ldGhvZCB3aWxsIHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT4gdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFVTY3JpcHRSdW4oKQorICAgIHsKKyAgICAgICAgY2hhcltdIG51bGxDaGFycyA9IG51bGw7CisgICAgICAgIAorICAgICAgICByZXNldChudWxsQ2hhcnMsIDAsIDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSA8Y29kZT5VU2NyaXB0UnVuPC9jb2RlPiBvYmplY3Qgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFVTY3JpcHRSdW4oU3RyaW5nIHRleHQpCisgICAgeworICAgICAgICByZXNldCAodGV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIDxjb2RlPlVTY3JpcHRSdW48L2NvZGU+IG9iamVjdCB3aGljaCBpdGVyYXRlcyBvdmVyIGEgc3VicmFuZ2UKKyAgICAgKiBvZiB0aGUgY2hhcmFjZXRycyBpbiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIHJlc2V0KHRleHQsIHN0YXJ0LCBjb3VudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0IHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIGdpdmVuCisgICAgICogY2hhcmFjZXRycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFycyB0aGUgYXJyYXkgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVVNjcmlwdFJ1bihjaGFyW10gY2hhcnMpCisgICAgeworICAgICAgICByZXNldChjaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0IHdoaWNoIGl0ZXJhdGVzIG92ZXIgYSBzdWJyYW5nZQorICAgICAqIG9mIHRoZSBnaXZlbiBjaGFyYWNldHJzLgorICAgICAqCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSBhcnJheSBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKGNoYXJbXSBjaGFycywgaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICByZXNldChjaGFycywgc3RhcnQsIGNvdW50KTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICAvLyBlbXB0eSBhbnkgb2xkIHBhcmVuU3RhY2sgY29udGVudHMuCisgICAgICAgIC8vIE5PVEU6IHRoaXMgaXMgbm90IHRoZSBtb3N0IGVmZmljaWVudCB3YXkKKyAgICAgICAgLy8gdG8gZG8gdGhpcywgYnV0IGl0J3MgdGhlIGVhc2llc3QgdG8gd3JpdGUuLi4KKyAgICAgICAgd2hpbGUgKHN0YWNrSXNOb3RFbXB0eSgpKSB7CisgICAgICAgICAgICBwb3AoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2NyaXB0U3RhcnQgPSB0ZXh0U3RhcnQ7CisgICAgICAgIHNjcmlwdExpbWl0ID0gdGV4dFN0YXJ0OworICAgICAgICBzY3JpcHRDb2RlICA9IFVTY3JpcHQuSU5WQUxJRF9DT0RFOworICAgICAgICBwYXJlblNQICAgICA9IC0xOworICAgICAgICBwdXNoQ291bnQgICA9ICAwOworICAgICAgICBmaXh1cENvdW50ICA9ICAwOworICAgICAgICAKKyAgICAgICAgdGV4dEluZGV4ID0gdGV4dFN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIGdpdmVuIHJhbmdlIG9mIHRoZSB0ZXh0LiBUaHJvd3MKKyAgICAgKiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHJhbmdlIGlzIG91dHNpZGUgb2YgdGhlIGJvdW5kcyBvZiB0aGUKKyAgICAgKiBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBuZXcgZmlyc3QgY2hhcmFjdGVyIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZQorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbmV3IG51bWJlciBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50IGxlbiA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBsZW4gPSB0ZXh0Lmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBjb3VudCA8IDAgfHwgc3RhcnQgPiBsZW4gLSBjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZXh0U3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGV4dExpbWl0ID0gc3RhcnQgKyBjb3VudDsKKworICAgICAgICByZXNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgPGNvZGU+Y291bnQ8L2NvZGU+IGNoYXJhY3RlcnMKKyAgICAgKiBpbiA8Y29kZT5jaGFyczwvY29kZT4gc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQ8L2NvZGU+LiBUaGlzIGFsbG93cworICAgICAqIGNsaWVudHMgdG8gcmV1c2UgYW4gaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2hhcnMgdGhlIG5ldyBhcnJheSBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoY2hhcltdIGNoYXJzLCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGlmIChjaGFycyA9PSBudWxsKSB7CisgICAgICAgICAgICBjaGFycyA9IGVtcHR5Q2hhckFycmF5OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZXh0ID0gY2hhcnM7CisKKyAgICAgICAgcmVzZXQoc3RhcnQsIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgY2hhcmFjdGVycworICAgICAqIGluIDxjb2RlPmNoYXJzPC9jb2RlPi4gVGhpcyBhbGxvd3MgY2xpZW50cyB0byByZXVzZSBhbiBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFycyB0aGUgbmV3IGFycmF5IG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoY2hhcltdIGNoYXJzKQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoY2hhcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgbGVuZ3RoID0gY2hhcnMubGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXNldChjaGFycywgMCwgbGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciA8Y29kZT5jb3VudDwvY29kZT4gY2hhcmFjdGVycworICAgICAqIGluIDxjb2RlPnRleHQ8L2NvZGU+IHN0YXJ0aW5nIGF0IDxjb2RlPnN0YXJ0PC9jb2RlPi4gVGhpcyBhbGxvd3MKKyAgICAgKiBjbGllbnRzIHRvIHJldXNlIGFuIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIG5ldyBzdHJpbmcgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG51YmVyIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgY2hhcltdIGNoYXJzID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNoYXJzID0gdGV4dC50b0NoYXJBcnJheSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXNldChjaGFycywgc3RhcnQsIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgY2hhcmFjdGVycworICAgICAqIGluIDxjb2RlPnRleHQ8L2NvZGU+LiBUaGlzIGFsbG93cyBjbGllbnRzIHRvIHJldXNlIGFuIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIG5ldyBzdHJpbmcgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldChTdHJpbmcgdGV4dCkKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggICA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXNldCh0ZXh0LCAwLCBsZW5ndGgpOworICAgIH0KKyAgICAgICAgCisKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0U2NyaXB0U3RhcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcmlwdFN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRTY3JpcHRMaW1pdCgpCisgICAgeworICAgICAgICByZXR1cm4gc2NyaXB0TGltaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzY3JpcHQgY29kZSBmb3IgdGhlIHNjcmlwdCBvZiB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSBzY3JpcHQgb2YgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdAorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRTY3JpcHRDb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBzY3JpcHRDb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgc2NyaXB0IHJ1bi4gUmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4gaWYgdGhlcmUKKyAgICAgKiBpc24ndCBhbm90aGVyIHJ1biwgcmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHRoZXJlIGlzbid0IGFub3RoZXIgcnVuLCA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcy4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIG5leHQoKQorICAgIHsKKyAgICAgICAgLy8gaWYgd2UndmUgZmFsbGVuIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0LCB3ZSdyZSBkb25lCisgICAgICAgIGlmIChzY3JpcHRMaW1pdCA+PSB0ZXh0TGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzY3JpcHRDb2RlICA9IFVTY3JpcHQuQ09NTU9OOworICAgICAgICBzY3JpcHRTdGFydCA9IHNjcmlwdExpbWl0OworICAgICAgICAKKyAgICAgICAgc3luY0ZpeHVwKCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodGV4dEluZGV4IDwgdGV4dExpbWl0KSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQodGV4dCwgdGV4dFN0YXJ0LCB0ZXh0TGltaXQsIHRleHRJbmRleCAtIHRleHRTdGFydCk7CisgICAgICAgICAgICBpbnQgY29kZVBvaW50Q291bnQgPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgaW50IHNjID0gVVNjcmlwdC5nZXRTY3JpcHQoY2gpOworICAgICAgICAgICAgaW50IHBhaXJJbmRleCA9IGdldFBhaXJJbmRleChjaCk7CisKKyAgICAgICAgICAgIHRleHRJbmRleCArPSBjb2RlUG9pbnRDb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gUGFpcmVkIGNoYXJhY3RlciBoYW5kbGluZzoKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBpZiBpdCdzIGFuIG9wZW4gY2hhcmFjdGVyLCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrLgorICAgICAgICAgICAgLy8gaWYgaXQncyBhIGNsb3NlIGNoYXJhY3RlciwgZmluZCB0aGUgbWF0Y2hpbmcgb3BlbiBvbiB0aGUKKyAgICAgICAgICAgIC8vIHN0YWNrLCBhbmQgdXNlIHRoYXQgc2NyaXB0IGNvZGUuIEFueSBub24tbWF0Y2hpbmcgb3BlbgorICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhYm92ZSBpdCBvbiB0aGUgc3RhY2sgd2lsbCBiZSBwb3BlZC4KKyAgICAgICAgICAgIGlmIChwYWlySW5kZXggPj0gMCkgeworICAgICAgICAgICAgICAgIGlmICgocGFpckluZGV4ICYgMSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKHBhaXJJbmRleCwgc2NyaXB0Q29kZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBpID0gcGFpckluZGV4ICYgfjE7CisKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHN0YWNrSXNOb3RFbXB0eSgpICYmIHRvcCgpLnBhaXJJbmRleCAhPSBwaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9wKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2tJc05vdEVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjID0gdG9wKCkuc2NyaXB0Q29kZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHNhbWVTY3JpcHQoc2NyaXB0Q29kZSwgc2MpKSB7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdENvZGUgPD0gVVNjcmlwdC5JTkhFUklURUQgJiYgc2MgPiBVU2NyaXB0LklOSEVSSVRFRCkgeworICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb2RlID0gc2M7CisKKyAgICAgICAgICAgICAgICAgICAgZml4dXAoc2NyaXB0Q29kZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBjaGFyYWN0ZXIgaXMgYSBjbG9zZSBwYWlyZWQgY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgIC8vIHBvcCB0aGUgbWF0Y2hpbmcgb3BlbiBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RhY2sKKyAgICAgICAgICAgICAgICBpZiAocGFpckluZGV4ID49IDAgJiYgKHBhaXJJbmRleCAmIDEpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcG9wKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBqdXN0IHNlZW4gdGhlIGZpcnN0IGNoYXJhY3RlciBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHJ1bi4gQmFjayBvdmVyIGl0IHNvIHdlJ2xsIHNlZQorICAgICAgICAgICAgICAgIC8vIGl0IGFnYWluIHRoZSBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgdGV4dEluZGV4IC09IGNvZGVQb2ludENvdW50OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2NyaXB0TGltaXQgPSB0ZXh0SW5kZXg7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIHNjcmlwdCBjb2RlcyB0byBzZWUgaWYgdGhleSBhcmUgaW4gdGhlIHNhbWUgc2NyaXB0LiBJZiBvbmUgc2NyaXB0IGlzCisgICAgICogYSBzdHJvbmcgc2NyaXB0LCBhbmQgdGhlIG90aGVyIGlzIElOSEVSSVRFRCBvciBDT01NT04sIGl0IHdpbGwgY29tcGFyZSBlcXVhbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzY3JpcHRPbmUgb25lIG9mIHRoZSBzY3JpcHQgY29kZXMuCisgICAgICogQHBhcmFtIHNjcmlwdFR3byB0aGUgb3RoZXIgc2NyaXB0IGNvZGUuCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgdHdvIHNjcmlwdHMgYXJlIHRoZSBzYW1lLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBzYW1lU2NyaXB0KGludCBzY3JpcHRPbmUsIGludCBzY3JpcHRUd28pCisgICAgeworICAgICAgICByZXR1cm4gc2NyaXB0T25lIDw9IFVTY3JpcHQuSU5IRVJJVEVEIHx8IHNjcmlwdFR3byA8PSBVU2NyaXB0LklOSEVSSVRFRCB8fCBzY3JpcHRPbmUgPT0gc2NyaXB0VHdvOworICAgIH0KKworICAgIC8qCisgICAgICogQW4gaW50ZXJuYWwgY2xhc3Mgd2hpY2ggaG9sZHMgZW50cmllcyBvbiB0aGUgcGFyZW4gc3RhY2suCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgUGFyZW5TdGFja0VudHJ5CisgICAgeworICAgICAgICBpbnQgcGFpckluZGV4OworICAgICAgICBpbnQgc2NyaXB0Q29kZTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBQYXJlblN0YWNrRW50cnkoaW50IHRoZVBhaXJJbmRleCwgaW50IHRoZVNjcmlwdENvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhaXJJbmRleCAgPSB0aGVQYWlySW5kZXg7CisgICAgICAgICAgICBzY3JpcHRDb2RlID0gdGhlU2NyaXB0Q29kZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbW9kKGludCBzcCkKKyAgICB7CisgICAgICAgIHJldHVybiBzcCAlIFBBUkVOX1NUQUNLX0RFUFRIOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5jKGludCBzcCwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1vZChzcCArIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluYyhpbnQgc3ApCisgICAgeworICAgICAgICByZXR1cm4gaW5jKHNwLCAxKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRlYyhpbnQgc3AsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBtb2Qoc3AgKyBQQVJFTl9TVEFDS19ERVBUSCAtIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRlYyhpbnQgc3ApCisgICAgeworICAgICAgICByZXR1cm4gZGVjKHNwLCAxKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxpbWl0SW5jKGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGlmIChjb3VudCA8IFBBUkVOX1NUQUNLX0RFUFRIKSB7CisgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBzdGFja0lzRW1wdHkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHB1c2hDb3VudCA8PSAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gc3RhY2tJc05vdEVtcHR5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAhIHN0YWNrSXNFbXB0eSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgcHVzaChpbnQgcGFpckluZGV4LCBpbnQgc2NyaXB0Q29kZSkKKyAgICB7CisgICAgICAgIHB1c2hDb3VudCAgPSBsaW1pdEluYyhwdXNoQ291bnQpOworICAgICAgICBmaXh1cENvdW50ID0gbGltaXRJbmMoZml4dXBDb3VudCk7CisgICAgICAgIAorICAgICAgICBwYXJlblNQID0gaW5jKHBhcmVuU1ApOworICAgICAgICBwYXJlblN0YWNrW3BhcmVuU1BdID0gbmV3IFBhcmVuU3RhY2tFbnRyeShwYWlySW5kZXgsIHNjcmlwdENvZGUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgcG9wKCkKKyAgICB7CisgICAgICAgIAorICAgICAgICBpZiAoc3RhY2tJc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyZW5TdGFja1twYXJlblNQXSA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoZml4dXBDb3VudCA+IDApIHsKKyAgICAgICAgICAgIGZpeHVwQ291bnQgLT0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVzaENvdW50IC09IDE7CisgICAgICAgIHBhcmVuU1AgPSBkZWMocGFyZW5TUCk7CisgICAgICAgIAorICAgICAgICAvLyBJZiB0aGUgc3RhY2sgaXMgbm93IGVtcHR5LCByZXNldCB0aGUgc3RhY2sKKyAgICAgICAgLy8gcG9pbnRlcnMgdG8gdGhlaXIgaW5pdGlhbCB2YWx1ZXMuCisgICAgICAgIGlmIChzdGFja0lzRW1wdHkoKSkgeworICAgICAgICAgICAgcGFyZW5TUCA9IC0xOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgUGFyZW5TdGFja0VudHJ5IHRvcCgpCisgICAgeworICAgICAgICByZXR1cm4gcGFyZW5TdGFja1twYXJlblNQXTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHN5bmNGaXh1cCgpCisgICAgeworICAgICAgICBmaXh1cENvdW50ID0gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGZpeHVwKGludCBzY3JpcHRDb2RlKQorICAgIHsKKyAgICAgICAgaW50IGZpeHVwU1AgPSBkZWMocGFyZW5TUCwgZml4dXBDb3VudCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoZml4dXBDb3VudC0tID4gMCkgeworICAgICAgICAgICAgZml4dXBTUCA9IGluYyhmaXh1cFNQKTsKKyAgICAgICAgICAgIHBhcmVuU3RhY2tbZml4dXBTUF0uc2NyaXB0Q29kZSA9IHNjcmlwdENvZGU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBjaGFyW10gZW1wdHlDaGFyQXJyYXkgPSB7fTsKKworICAgIHByaXZhdGUgY2hhcltdIHRleHQ7CisKKyAgICBwcml2YXRlIGludCB0ZXh0SW5kZXg7CisgICAgcHJpdmF0ZSBpbnQgIHRleHRTdGFydDsKKyAgICBwcml2YXRlIGludCAgdGV4dExpbWl0OworICAgIAorICAgIHByaXZhdGUgaW50ICBzY3JpcHRTdGFydDsKKyAgICBwcml2YXRlIGludCAgc2NyaXB0TGltaXQ7CisgICAgcHJpdmF0ZSBpbnQgIHNjcmlwdENvZGU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgUEFSRU5fU1RBQ0tfREVQVEggPSAzMjsKKyAgICBwcml2YXRlIHN0YXRpYyBQYXJlblN0YWNrRW50cnkgcGFyZW5TdGFja1tdID0gbmV3IFBhcmVuU3RhY2tFbnRyeVtQQVJFTl9TVEFDS19ERVBUSF07CisgICAgcHJpdmF0ZSBpbnQgcGFyZW5TUCA9IC0xOworICAgIHByaXZhdGUgaW50IHB1c2hDb3VudCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgZml4dXBDb3VudCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBoaWdoZXN0IGJpdCB0aGF0J3Mgc2V0IGluIGEgd29yZC4gVXNlcyBhIGJpbmFyeSBzZWFyY2ggdGhyb3VnaAorICAgICAqIHRoZSBiaXRzLgorICAgICAqCisgICAgICogQHBhcmFtIG4gdGhlIHdvcmQgaW4gd2hpY2ggdG8gZmluZCB0aGUgaGlnaGVzdCBiaXQgdGhhdCdzIHNldC4KKyAgICAgKiBAcmV0dXJuIHRoZSBiaXQgbnVtYmVyIChjb3VudGluZyBmcm9tIHRoZSBsb3cgb3JkZXIgYml0KSBvZiB0aGUgaGlnaGVzdCBiaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBoaWdoQml0KGludCBuKQorICAgIHsKKyAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIC0zMjsKKyAgICAgICAgfQorCisgICAgICAgIGJ5dGUgYml0ID0gMDsKKworICAgICAgICBpZiAobiA+PSAxIDw8IDE2KSB7CisgICAgICAgICAgICBuID4+PSAxNjsKKyAgICAgICAgICAgIGJpdCArPSAxNjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgOCkgeworICAgICAgICAgICAgbiA+Pj0gODsKKyAgICAgICAgICAgIGJpdCArPSA4OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA0KSB7CisgICAgICAgICAgICBuID4+PSA0OworICAgICAgICAgICAgYml0ICs9IDQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDIpIHsKKyAgICAgICAgICAgIG4gPj49IDI7CisgICAgICAgICAgICBiaXQgKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMSkgeworICAgICAgICAgICAgbiA+Pj0gMTsKKyAgICAgICAgICAgIGJpdCArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2ggdGhlIHBhaXJlZENoYXJzIGFycmF5IGZvciB0aGUgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGNoIHRoZSBjaGFyYWN0ZXIgZm9yIHdoaWNoIHRvIHNlYXJjaC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgY2hhcmFjdGVyIGluIHRoZSB0YWJsZSwgb3IgLTEgaWYgaXQncyBub3QgdGhlcmUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFBhaXJJbmRleChpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvYmUgPSBwYWlyZWRDaGFyUG93ZXI7CisgICAgICAgIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgaWYgKGNoID49IHBhaXJlZENoYXJzW3BhaXJlZENoYXJFeHRyYV0pIHsKKyAgICAgICAgICAgIGluZGV4ID0gcGFpcmVkQ2hhckV4dHJhOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKHByb2JlID4gKDEgPDwgMCkpIHsKKyAgICAgICAgICAgIHByb2JlID4+PSAxOworCisgICAgICAgICAgICBpZiAoY2ggPj0gcGFpcmVkQ2hhcnNbaW5kZXggKyBwcm9iZV0pIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBwcm9iZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChwYWlyZWRDaGFyc1tpbmRleF0gIT0gY2gpIHsKKyAgICAgICAgICAgIGluZGV4ID0gLTE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBhaXJlZENoYXJzW10gPSB7CisgICAgICAgIDB4MDAyOCwgMHgwMDI5LCAvLyBhc2NpaSBwYWlyZWQgcHVuY3R1YXRpb24KKyAgICAgICAgMHgwMDNjLCAweDAwM2UsCisgICAgICAgIDB4MDA1YiwgMHgwMDVkLAorICAgICAgICAweDAwN2IsIDB4MDA3ZCwKKyAgICAgICAgMHgwMGFiLCAweDAwYmIsIC8vIGd1aWxsZW1ldHMKKyAgICAgICAgMHgyMDE4LCAweDIwMTksIC8vIGdlbmVyYWwgcHVuY3R1YXRpb24KKyAgICAgICAgMHgyMDFjLCAweDIwMWQsCisgICAgICAgIDB4MjAzOSwgMHgyMDNhLAorICAgICAgICAweDMwMDgsIDB4MzAwOSwgLy8gY2hpbmVzZSBwYWlyZWQgcHVuY3R1YXRpb24KKyAgICAgICAgMHgzMDBhLCAweDMwMGIsCisgICAgICAgIDB4MzAwYywgMHgzMDBkLAorICAgICAgICAweDMwMGUsIDB4MzAwZiwKKyAgICAgICAgMHgzMDEwLCAweDMwMTEsCisgICAgICAgIDB4MzAxNCwgMHgzMDE1LAorICAgICAgICAweDMwMTYsIDB4MzAxNywKKyAgICAgICAgMHgzMDE4LCAweDMwMTksCisgICAgICAgIDB4MzAxYSwgMHgzMDFiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludCBwYWlyZWRDaGFyUG93ZXIgPSAxIDw8IGhpZ2hCaXQocGFpcmVkQ2hhcnMubGVuZ3RoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcGFpcmVkQ2hhckV4dHJhID0gcGFpcmVkQ2hhcnMubGVuZ3RoIC0gcGFpcmVkQ2hhclBvd2VyOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvbGFuZy9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEzMjgyZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisKKzx0aXRsZT5DOklDVTRKIC5sYW5nIFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPkVuaGFuY2VkIGNoYXJhY3RlciBwcm9wZXJ0eSBhbmQgc3Vycm9nYXRlIHN1cHBvcnQuPC9wPgorCitVQ2hhcmFjdGVyIHN1cHBvcnRzIGFsbCBjaGFyYWN0ZXJzIGFuZCBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFVuaWNvZGUsIGluY2x1ZGluZyBwcm9wZXJ0aWVzIG9mIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzLiAgSXQgcHJvdmlkZXMgbmV3IEFQSSBmb3IgcXVlcnlpbmcgc3Vycm9nYXRlIGNoYXJhY3RlcnMgKHJlcHJlc2VudGVkIGFzIGludCkgYW5kIGFsc28gc3VwcG9ydHMgdGhlIGphdmEubGFuZy5DaGFyYWN0ZXIgQVBJLiAgVVNjcmlwdCBhbmQgVVNjcmlwdFJ1biBwcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IHNjcmlwdHMsIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgdGhyb3VnaCB0aGUgSmF2YSBBUElzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5tb2R1bGUuc3R1YiBiL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5tb2R1bGUuc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2E2M2EzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L21hbmlmZXN0Lm1vZHVsZS5zdHViCkBAIC0wLDAgKzEsMTQgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorCitOYW1lOiBjb20vaWJtL2ljdQorU3BlY2lmaWNhdGlvbi1UaXRsZTogTW9kdWxhcml6ZWQgSUNVIGZvciBKYXZhCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDMuNgorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IE1vZHVsYXJpemVkIElDVSBmb3IgSmF2YQorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMy42CitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCitDb3B5cmlnaHQtSW5mbzogQ29weXJpZ2h0IChjKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitTZWFsZWQ6IGZhbHNlCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L21hbmlmZXN0LnN0dWIgYi9zcmMvY29tL2libS9pY3UvbWFuaWZlc3Quc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDJiMmNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L21hbmlmZXN0LnN0dWIKQEAgLTAsMCArMSwxMiBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCisKK05hbWU6IGNvbS9pYm0vaWN1LworU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIGZvciBKYXZhCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDMuNgorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YQorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMy42CitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCitDb3B5cmlnaHQtSW5mbzogQ29weXJpZ2h0IChjKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitTZWFsZWQ6IGZhbHNlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbWF0aC9CaWdEZWNpbWFsLmphdmEgYi9zcmMvY29tL2libS9pY3UvbWF0aC9CaWdEZWNpbWFsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWZlMmYyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYXRoL0JpZ0RlY2ltYWwuamF2YQpAQCAtMCwwICsxLDQ0MDMgQEAKKy8vIyNoZWFkZXIKKy8qIEdlbmVyYXRlZCBmcm9tICdCaWdEZWNpbWFsLm5yeCcgOCBTZXAgMjAwMCAxMToxMDo1MCBbdjIuMDBdICovCisvKiBPcHRpb25zOiBCaW5hcnkgQ29tbWVudHMgQ3Jvc3NyZWYgRm9ybWF0IEphdmEgTG9nbyBTdHJpY3RhcmdzIFN0cmljdGNhc2UgVHJhY2UyIFZlcmJvc2UzICovCitwYWNrYWdlIGNvbS5pYm0uaWN1Lm1hdGg7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIEJpZ0RlY2ltYWwgLS0gRGVjaW1hbCBhcml0aG1ldGljIGZvciBKYXZhICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uLCAxOTk2LTIwMDYuICBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBUaGUgQmlnRGVjaW1hbCBjbGFzcyBwcm92aWRlcyBpbW11dGFibGUgYXJiaXRyYXJ5LXByZWNpc2lvbiAgICAgICAgKi8KKy8qIGZsb2F0aW5nIHBvaW50IChpbmNsdWRpbmcgaW50ZWdlcikgZGVjaW1hbCBudW1iZXJzLiAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBBcyB0aGUgbnVtYmVycyBhcmUgZGVjaW1hbCwgdGhlcmUgaXMgYW4gZXhhY3QgY29ycmVzcG9uZGVuY2UgICAgICAgKi8KKy8qIGJldHdlZW4gYW4gaW5zdGFuY2Ugb2YgYSBCaWdEZWNpbWFsIG9iamVjdCBhbmQgaXRzIFN0cmluZyAgICAgICAgICAqLworLyogcmVwcmVzZW50YXRpb247IHRoZSBCaWdEZWNpbWFsIGNsYXNzIHByb3ZpZGVzIGRpcmVjdCBjb252ZXJzaW9ucyAgICovCisvKiB0byBhbmQgZnJvbSBTdHJpbmcgYW5kIGNoYXJhY3RlciBhcnJheSBvYmplY3RzLCBhbmQgd2VsbCBhcyAgICAgICAgKi8KKy8qIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHRoZSBKYXZhIHByaW1pdGl2ZSB0eXBlcyAod2hpY2ggbWF5IG5vdCAgICAqLworLyogYmUgZXhhY3QpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIE5vdGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxLiBBIEJpZ0RlY2ltYWwgb2JqZWN0IGlzIG5ldmVyIGNoYW5nZWQgaW4gdmFsdWUgb25jZSBjb25zdHJ1Y3RlZDsgKi8KKy8qICAgIHRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciBsb2NraW5nLiAgTm90ZSBpbiBwYXJ0aWN1bGFyIHRoYXQgdGhlICAqLworLyogICAgbWFudGlzc2EgYXJyYXkgbWF5IGJlIHNoYXJlZCBiZXR3ZWVuIG1hbnkgQmlnRGVjaW1hbCBvYmplY3RzLCAgICovCisvKiAgICBzbyB0aGF0IG9uY2UgZXhwb3NlZCBpdCBtdXN0IG5vdCBiZSBhbHRlcmVkLiAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMi4gVGhpcyBjbGFzcyBsb29rcyBhdCBNYXRoQ29udGV4dCBjbGFzcyBmaWVsZHMgZGlyZWN0bHkgKGZvciAgICAgICovCisvKiAgICBwZXJmb3JtYW5jZSkuICBJdCBtdXN0IG5vdCBhbmQgZG9lcyBub3QgY2hhbmdlIHRoZW0uICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMy4gRXhwb25lbnQgY2hlY2tpbmcgaXMgZGVsYXllZCB1bnRpbCBmaW5pc2goKSwgYXMgd2Uga25vdyAgICAgICAgICovCisvKiAgICBpbnRlcm1lZGlhdGUgY2FsY3VsYXRpb25zIGNhbm5vdCBjYXVzZSAzMS1iaXQgb3ZlcmZsb3cuICAgICAgICAgKi8KKy8qICAgIFtUaGlzIGFzc2VydGlvbiBkZXBlbmRzIG9uIE1BWF9ESUdJVFMgaW4gTWF0aENvbnRleHQuXSAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA0LiBDb21tZW50cyBmb3IgdGhlIHB1YmxpYyBBUEkgbm93IGZvbGxvdyB0aGUgamF2YWRvYyBjb252ZW50aW9ucy4gKi8KKy8qICAgIFRoZSBOZXRSZXh4IC1jb21tZW50cyBvcHRpb24gaXMgdXNlZCB0byBwYXNzIHRoZXNlIGNvbW1lbnRzICAgICAqLworLyogICAgdGhyb3VnaCB0byB0aGUgZ2VuZXJhdGVkIEphdmEgY29kZSAod2l0aCAtZm9ybWF0LCBpZiBkZXNpcmVkKS4gICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDUuIFN5c3RlbS5hcnJheWNvcHkgaXMgZmFzdGVyIHRoYW4gZXhwbGljaXQgbG9vcCBhcyBmb2xsb3dzICAgICAgICAqLworLyogICAgICBNZWFuIGxlbmd0aCA0OiAgZXF1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIE1lYW4gbGVuZ3RoIDg6ICB4MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgTWVhbiBsZW5ndGggMTY6IHgzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICBNZWFuIGxlbmd0aCAyNDogeDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICBGcm9tIHByaW9yIGV4cGVyaWVuY2UsIHdlIGV4cGVjdCBtZWFuIGxlbmd0aCBhIGxpdHRsZSBiZWxvdyA4LCAgKi8KKy8qICAgIGJ1dCBhcnJheWNvcHkgaXMgc3RpbGwgdGhlIG9uZSB0byB1c2UsIGluIGdlbmVyYWwsIHVudGlsIGxhdGVyICAqLworLyogICAgbWVhc3VyZW1lbnRzIHN1Z2dlc3Qgb3RoZXJ3aXNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDYuICdETVNSQ04nIHJlZmVycmVkIHRvIGJlbG93IGlzIHRoZSBvcmlnaW5hbCAoMTk4MSkgSUJNIFMvMzcwICAgICAqLworLyogICAgYXNzZW1ibGVyIGNvZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGFsZ29yaXRobXMgYmVsb3c7IGl0IGlzICAgICovCisvKiAgICBub3cgY2FsbGVkIElYWFJDTiBhbmQgaXMgYXZhaWxhYmxlIHdpdGggdGhlIE9TLzM5MCBhbmQgVk0vRVNBICAgKi8KKy8qICAgIG9wZXJhdGluZyBzeXN0ZW1zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBDaGFuZ2UgSGlzdG9yeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTcuMDkuMDIgSW5pdGlhbCB2ZXJzaW9uIChkZXJpdmVkIGZyb20gbmV0cmV4eC5sYW5nIGNsYXNzZXMpICAgICAqLworLyogMTk5Ny4wOS4xMiBBZGQgbG9zdERpZ2l0cyBjaGVja2luZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjEwLjA2IENoYW5nZSBtYW50aXNzYSB0byBhIGJ5dGUgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTcuMTEuMjIgUmV3b3JrIHBvd2VyIFtkaWQgbm90IHByZXBhcmUgYXJndW1lbnRzLCBldGMuXSAgICAgICAgICAqLworLyogMTk5Ny4xMi4xMyBtdWx0aXBseSBkaWQgbm90IHByZXBhcmUgYXJndW1lbnRzICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjEyLjE0IGFkZCBkaWQgbm90IHByZXBhcmUgYW5kIGFsaWduIGFyZ3VtZW50cyBjb3JyZWN0bHkgICAgICAgKi8KKy8qIDE5OTguMDUuMDIgMC4wNyBwYWNrYWdpbmcgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgU3VuIGFuZCBPcmFjbGUgICAgICAqLworLyogMTk5OC4wNS4yMSBhZGp1c3QgcmVtYWluZGVyIG9wZXJhdG9yIGZpbmFsaXphdGlvbiAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA2LjA0IHJld29yayB0byBwYXNzIE1hdGhDb250ZXh0IHRvIGZpbmlzaCgpIGFuZCByb3VuZCgpICAgICAgKi8KKy8qIDE5OTguMDYuMDYgY2hhbmdlIGZvcm1hdCB0byB1c2Ugcm91bmQoKTsgc3VwcG9ydCByb3VuZGluZyBtb2RlcyAgICAqLworLyogMTk5OC4wNi4yNSByZW5hbWUgdG8gQmlnRGVjaW1hbCBhbmQgYmVnaW4gbWVyZ2UgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgIHplcm8gY2FuIG5vdyBoYXZlIHRyYWlsaW5nIHplcm9zIChpLmUuLCBleHBcPTApICAgICAgICAgKi8KKy8qIDE5OTguMDYuMjggbmV3IG1ldGhvZHM6IG1vdmVQb2ludFh4eHgsIHNjYWxlLCB0b0JpZ0ludGVnZXIgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgdW5zY2FsZWRWYWx1ZSwgdmFsdWVvZiAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA3LjAxIGltcHJvdmUgYnl0ZWFkZHN1YiB0byBhbGxvdyBhcnJheSByZXVzZSwgZXRjLiAgICAgICAgICAgKi8KKy8qIDE5OTguMDcuMDEgbWFrZSBudWxsIHRlc3RpbmcgZXhwbGljaXQgdG8gYXZvaWQgSklUIGJ1ZyBbV2luMzJdICAgICAqLworLyogMTk5OC4wNy4wNyBzY2FsZWQgZGl2aXNpb24gIFtkaXZpZGUoQmlnRGVjaW1hbCwgaW50LCBpbnQpXSAgICAgICAgICovCisvKiAxOTk4LjA3LjA4IHNldFNjYWxlLCBmYXN0ZXIgZXF1YWxzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDcuMTEgYWxsb3cgMUU2IChubyBzaWduKSA8c2lnaD47IG5ldyBkb3VibGUvZmxvYXQgY29udmVyc2lvbiAqLworLyogMTk5OC4xMC4xMiBjaGFuZ2UgcGFja2FnZSB0byBjb20uaWJtLmljdS5tYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4xMi4xNCBwb3dlciBvcGVyYXRvciBubyBsb25nZXIgcm91bmRzIFJIUyBbdG8gbWF0Y2ggQU5TSV0gICAgICovCisvKiAgICAgICAgICAgIGFkZCB0b0JpZ0RlY2ltYWwoKSBhbmQgQmlnRGVjaW1hbChqYXZhLm1hdGguQmlnRGVjaW1hbCkgKi8KKy8qIDE5OTguMTIuMjkgaW1wcm92ZSBieXRlYWRkc3ViIGJ5IHVzaW5nIHRhYmxlIGxvb2t1cCAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMi4wNCBsb3N0ZGlnaXRzPTAgYmVoYXZpb3VyIHJvdW5kcyBpbnN0ZWFkIG9mIGRpZ2l0cysxIGd1YXJkICovCisvKiAxOTk5LjAyLjA1IGNsZWFuZXIgY29kZSBmb3IgQmlnRGVjaW1hbChjaGFyW10pICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMDYgYWRkIGphdmFkb2MgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMi4xMSBmb3JtYXQoKSBjaGFuZ2VkIGZyb20gNyB0byAyIG1ldGhvZCBmb3JtICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IG51bGwgcG9pbnRlciBjaGVja2luZyBpcyBubyBsb25nZXIgZXhwbGljaXQgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMDUgc2ltcGxpZnk7IGNoYW5nZXMgZnJvbSBkaXNjdXNzaW9uIHdpdGggSi4gQmxvY2g6ICAgICAgICAqLworLyogICAgICAgICAgICBudWxsIG5vIGxvbmdlciBwZXJtaXR0ZWQgZm9yIE1hdGhDb250ZXh0OyBkcm9wIGJvb2xlYW4sICovCisvKiAgICAgICAgICAgIGJ5dGUsIGNoYXIsIGZsb2F0LCBzaG9ydCBjb25zdHJ1Y3RvciwgZGVwcmVjYXRlIGRvdWJsZSAgKi8KKy8qICAgICAgICAgICAgY29uc3RydWN0b3IsIG5vIGJsYW5rcyBpbiBzdHJpbmcgY29uc3RydWN0b3IsIGFkZCAgICAgICAqLworLyogICAgICAgICAgICBvZmZzZXQgYW5kIGxlbmd0aCB2ZXJzaW9uIG9mIGNoYXJbXSBjb25zdHJ1Y3RvcjsgICAgICAgICovCisvKiAgICAgICAgICAgIGFkZCB2YWx1ZU9mKGRvdWJsZSk7IGRyb3AgYm9vbGVhblZhbHVlLCBjaGFyVmFsdWU7ICAgICAgKi8KKy8qICAgICAgICAgICAgYWRkIC4uLkV4YWN0IHZlcnNpb25zIG9mIHJlbWFpbmluZyBjb252ZXJ0b3JzICAgICAgICAgICAqLworLyogMTk5OS4wMy4xMyBhZGQgdG9CaWdJbnRlZ2VyRXhhY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjEzIDEuMDAgcmVsZWFzZSB0byBJQk0gQ2VudHJlIGZvciBKYXZhIFRlY2hub2xvZ3kgICAgICAgICAgKi8KKy8qIDE5OTkuMDUuMjcgMS4wMSBjb3JyZWN0IDAtMC4yIGJ1ZyB1bmRlciBzY2FsZWQgYXJpdGhtZXRpYyAgICAgICAgICAqLworLyogMTk5OS4wNi4yOSAxLjAyIGNvbnN0cnVjdG9ycyBzaG91bGQgbm90IGFsbG93IGV4cG9uZW50ID4gOSBkaWdpdHMgICovCisvKiAxOTk5LjA3LjAzIDEuMDMgbG9zdCBkaWdpdHMgc2hvdWxkIG5vdCBiZSBjaGVja2VkIGlmIGRpZ2l0cz0wICAgICAgKi8KKy8qIDE5OTkuMDcuMDYgICAgICBsb3N0IGRpZ2l0cyBFeGNlcHRpb24gbWVzc2FnZSBjaGFuZ2VkICAgICAgICAgICAgICAqLworLyogMTk5OS4wNy4xMCAxLjA0IG1vcmUgd29yayBvbiAwLTAuMiAoc2NhbGVkIGFyaXRobWV0aWMpICAgICAgICAgICAgICovCisvKiAxOTk5LjA3LjE3ICAgICAgaW1wcm92ZSBtZXNzYWdlcyBmcm9tIHBvdyBtZXRob2QgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDguMDggICAgICBwZXJmb3JtYW5jZSB0d2Vha3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wOC4xNSAgICAgIGZhc3RwYXRoIGluIG11bHRpcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjExLjA1IDEuMDUgZml4IHByb2JsZW0gaW4gaW50VmFsdWVFeGFjdCBbZS5nLiwgNTU1NTU1NTU1NV0gICAgKi8KKy8qIDE5OTkuMTIuMjIgMS4wNiByZW1vdmUgbXVsdGlwbHkgZmFzdHBhdGgsIGFuZCBpbXByb3ZlIHBlcmZvcm1hbmNlICAqLworLyogMjAwMC4wMS4wMSAgICAgIGNvcHlyaWdodCB1cGRhdGUgW1kySyBoYXMgYXJyaXZlZF0gICAgICAgICAgICAgICAgICovCisvKiAyMDAwLjA2LjE4IDEuMDggbm8gbG9uZ2VyIGRlcHJlY2F0ZSBCaWdEZWNpbWFsKGRvdWJsZSkgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisKKworCisKKy8qKgorICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzIGltcGxlbWVudHMgaW1tdXRhYmxlCisgKiBhcmJpdHJhcnktcHJlY2lzaW9uIGRlY2ltYWwgbnVtYmVycy4gIFRoZSBtZXRob2RzIG9mIHRoZQorICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY2xhc3MgcHJvdmlkZSBvcGVyYXRpb25zIGZvciBmaXhlZCBhbmQKKyAqIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMsIGNvbXBhcmlzb24sIGZvcm1hdCBjb252ZXJzaW9ucywgYW5kCisgKiBoYXNoaW5nLgorICogPHA+CisgKiBBcyB0aGUgbnVtYmVycyBhcmUgZGVjaW1hbCwgdGhlcmUgaXMgYW4gZXhhY3QgY29ycmVzcG9uZGVuY2UgYmV0d2VlbgorICogYW4gaW5zdGFuY2Ugb2YgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgYW5kIGl0cworICogPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRhdGlvbjsgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzCisgKiBwcm92aWRlcyBkaXJlY3QgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gPGNvZGU+U3RyaW5nPC9jb2RlPiBhbmQKKyAqIGNoYXJhY3RlciBhcnJheSAoPGNvZGU+Y2hhcltdPC9jb2RlPikgb2JqZWN0cywgYXMgd2VsbCBhcyBjb252ZXJzaW9ucworICogdG8gYW5kIGZyb20gdGhlIEphdmEgcHJpbWl0aXZlIHR5cGVzICh3aGljaCBtYXkgbm90IGJlIGV4YWN0KSBhbmQKKyAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LgorICogPHA+CisgKiBJbiB0aGUgZGVzY3JpcHRpb25zIG9mIGNvbnN0cnVjdG9ycyBhbmQgbWV0aG9kcyBpbiB0aGlzIGRvY3VtZW50YXRpb24sCisgKiB0aGUgdmFsdWUgb2YgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBudW1iZXIgb2JqZWN0IGlzIHNob3duIGFzIHRoZQorICogcmVzdWx0IG9mIGludm9raW5nIHRoZSA8Y29kZT50b1N0cmluZygpPC9jb2RlPiBtZXRob2Qgb24gdGhlIG9iamVjdC4KKyAqIFRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBhIGRlY2ltYWwgbnVtYmVyIGlzIG5laXRoZXIgZGVmaW5lZAorICogbm9yIGV4cG9zZWQsIGFuZCBpcyBub3QgcGVybWl0dGVkIHRvIGFmZmVjdCB0aGUgcmVzdWx0IG9mIGFueQorICogb3BlcmF0aW9uLgorICogPHA+CisgKiBUaGUgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBwcm92aWRlZCBieSB0aGlzIGNsYXNzIGlzIGRlZmluZWQgYnkKKyAqIHRoZSBBTlNJIFgzLjI3NC0xOTk2IHN0YW5kYXJkLCBhbmQgaXMgYWxzbyBkb2N1bWVudGVkIGF0CisgKiA8Y29kZT5odHRwOi8vd3d3Mi5odXJzbGV5LmlibS5jb20vZGVjaW1hbDwvY29kZT4KKyAqIDxicj48aT5bVGhpcyBVUkwgd2lsbCBjaGFuZ2UuXTwvaT4KKyAqCisgKiA8aDM+T3BlcmF0b3IgbWV0aG9kczwvaDM+CisgKiA8cD4KKyAqIE9wZXJhdGlvbnMgb24gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbnVtYmVycyBhcmUgY29udHJvbGxlZCBieSBhCisgKiB7QGxpbmsgTWF0aENvbnRleHR9IG9iamVjdCwgd2hpY2ggcHJvdmlkZXMgdGhlIGNvbnRleHQgKHByZWNpc2lvbiBhbmQKKyAqIG90aGVyIGluZm9ybWF0aW9uKSBmb3IgdGhlIG9wZXJhdGlvbi4gTWV0aG9kcyB0aGF0IGNhbiB0YWtlIGEKKyAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIgaW1wbGVtZW50IHRoZSBzdGFuZGFyZCBhcml0aG1ldGljCisgKiBvcGVyYXRvcnMgZm9yIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdHMgYW5kIGFyZSBrbm93biBhcworICogPGk+b3BlcmF0b3IgbWV0aG9kczwvaT4uICBUaGUgZGVmYXVsdCBzZXR0aW5ncyBwcm92aWRlZCBieSB0aGUKKyAqIGNvbnN0YW50IHtAbGluayBNYXRoQ29udGV4dCNERUZBVUxUfSAoPGNvZGU+ZGlnaXRzPTksCisgKiBmb3JtPVNDSUVOVElGSUMsIGxvc3REaWdpdHM9ZmFsc2UsIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX1VQPC9jb2RlPikKKyAqIHBlcmZvcm0gZ2VuZXJhbC1wdXJwb3NlIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgdG8gbmluZSBkaWdpdHMgb2YKKyAqIHByZWNpc2lvbi4gIFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyIG11c3Qgbm90IGJlCisgKiA8Y29kZT5udWxsPC9jb2RlPi4KKyAqIDxwPgorICogRWFjaCBvcGVyYXRvciBtZXRob2QgYWxzbyBoYXMgYSB2ZXJzaW9uIHByb3ZpZGVkIHdoaWNoIGRvZXMKKyAqIG5vdCB0YWtlIGEgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlci4gIEZvciB0aGlzIHZlcnNpb24gb2YKKyAqIGVhY2ggbWV0aG9kLCB0aGUgY29udGV4dCBzZXR0aW5ncyB1c2VkIGFyZSA8Y29kZT5kaWdpdHM9MCwKKyAqIGZvcm09UExBSU4sIGxvc3REaWdpdHM9ZmFsc2UsIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX1VQPC9jb2RlPjsKKyAqIHRoZXNlIHNldHRpbmdzIHBlcmZvcm0gZml4ZWQgcG9pbnQgYXJpdGhtZXRpYyB3aXRoIHVubGltaXRlZAorICogcHJlY2lzaW9uLCBhcyBkZWZpbmVkIGZvciB0aGUgb3JpZ2luYWwgQmlnRGVjaW1hbCBjbGFzcyBpbiBKYXZhIDEuMQorICogYW5kIEphdmEgMS4yLgorICogPHA+CisgKiBGb3IgbW9uYWRpYyBvcGVyYXRvcnMsIG9ubHkgdGhlIG9wdGlvbmFsIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPgorICogcGFyYW1ldGVyIGlzIHByZXNlbnQ7IHRoZSBvcGVyYXRpb24gYWN0cyB1cG9uIHRoZSBjdXJyZW50IG9iamVjdC4KKyAqIDxwPgorICogRm9yIGR5YWRpYyBvcGVyYXRvcnMsIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gcGFyYW1ldGVyIGlzIGFsd2F5cworICogcHJlc2VudDsgaXQgbXVzdCBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgKiBUaGUgb3BlcmF0aW9uIGFjdHMgd2l0aCB0aGUgY3VycmVudCBvYmplY3QgYmVpbmcgdGhlIGxlZnQtaGFuZCBvcGVyYW5kCisgKiBhbmQgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHBhcmFtZXRlciBiZWluZyB0aGUgcmlnaHQtaGFuZCBvcGVyYW5kLgorICogPHA+CisgKiBGb3IgZXhhbXBsZSwgYWRkaW5nIHR3byA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzIHJlZmVycmVkIHRvCisgKiBieSB0aGUgbmFtZXMgPGNvZGU+YXdhcmQ8L2NvZGU+IGFuZCA8Y29kZT5leHRyYTwvY29kZT4gY291bGQgYmUKKyAqIHdyaXR0ZW4gYXMgYW55IG9mOgorICogPHA+PGNvZGU+CisgKiAgICAgYXdhcmQuYWRkKGV4dHJhKQorICogPGJyPmF3YXJkLmFkZChleHRyYSwgTWF0aENvbnRleHQuREVGQVVMVCkKKyAqIDxicj5hd2FyZC5hZGQoZXh0cmEsIGFjb250ZXh0KQorICogPC9jb2RlPgorICogPHA+CisgKiAod2hlcmUgPGNvZGU+YWNvbnRleHQ8L2NvZGU+IGlzIGEgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IG9iamVjdCksCisgKiB3aGljaCB3b3VsZCByZXR1cm4gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3Qgd2hvc2UgdmFsdWUgaXMKKyAqIHRoZSByZXN1bHQgb2YgYWRkaW5nIDxjb2RlPmF3YXJkPC9jb2RlPiBhbmQgPGNvZGU+ZXh0cmE8L2NvZGU+IHVuZGVyCisgKiB0aGUgYXBwcm9wcmlhdGUgY29udGV4dCBzZXR0aW5ncy4KKyAqIDxwPgorICogV2hlbiBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdG9yIG1ldGhvZCBpcyB1c2VkLCBhIHNldCBvZgorICogcnVsZXMgZGVmaW5lIHdoYXQgdGhlIHJlc3VsdCB3aWxsIGJlIChhbmQsIGJ5IGltcGxpY2F0aW9uLCBob3cgdGhlCisgKiByZXN1bHQgd291bGQgYmUgcmVwcmVzZW50ZWQgYXMgYSBjaGFyYWN0ZXIgc3RyaW5nKS4KKyAqIFRoZXNlIHJ1bGVzIGFyZSBkZWZpbmVkIGluIHRoZSBCaWdEZWNpbWFsIGFyaXRobWV0aWMgZG9jdW1lbnRhdGlvbgorICogKHNlZSB0aGUgVVJMIGFib3ZlKSwgYnV0IGluIHN1bW1hcnk6CisgKiA8dWw+CisgKiA8bGk+UmVzdWx0cyBhcmUgbm9ybWFsbHkgY2FsY3VsYXRlZCB3aXRoIHVwIHRvIHNvbWUgbWF4aW11bSBudW1iZXIgb2YKKyAqIHNpZ25pZmljYW50IGRpZ2l0cy4KKyAqIEZvciBleGFtcGxlLCBpZiB0aGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlciBmb3IgYW4gb3BlcmF0aW9uCisgKiB3ZXJlIDxjb2RlPk1hdGhDb250ZXh0LkRFRkFVTFQ8L2NvZGU+IHRoZW4gdGhlIHJlc3VsdCB3b3VsZCBiZQorICogcm91bmRlZCB0byA5IGRpZ2l0czsgdGhlIGRpdmlzaW9uIG9mIDIgYnkgMyB3b3VsZCB0aGVuIHJlc3VsdCBpbgorICogMC42NjY2NjY2NjcuCisgKiA8YnI+CisgKiBZb3UgY2FuIGNoYW5nZSB0aGUgZGVmYXVsdCBvZiA5IHNpZ25pZmljYW50IGRpZ2l0cyBieSBwcm92aWRpbmcgdGhlCisgKiBtZXRob2Qgd2l0aCBhIHN1aXRhYmxlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3QuIFRoaXMgbGV0cyB5b3UKKyAqIGNhbGN1bGF0ZSB1c2luZyBhcyBtYW55IGRpZ2l0cyBhcyB5b3UgbmVlZCAtLSB0aG91c2FuZHMsIGlmIG5lY2Vzc2FyeS4KKyAqIEZpeGVkIHBvaW50IChzY2FsZWQpIGFyaXRobWV0aWMgaXMgaW5kaWNhdGVkIGJ5IHVzaW5nIGEKKyAqIDxjb2RlPmRpZ2l0czwvY29kZT4gc2V0dGluZyBvZiAwIChvciBvbWl0dGluZyB0aGUKKyAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIpLgorICogPGJyPgorICogU2ltaWxhcmx5LCB5b3UgY2FuIGNoYW5nZSB0aGUgYWxnb3JpdGhtIHVzZWQgZm9yIHJvdW5kaW5nIGZyb20gdGhlCisgKiBkZWZhdWx0ICJjbGFzc2ljIiBhbGdvcml0aG0uCisgKiA8bGk+CisgKiBJbiBzdGFuZGFyZCBhcml0aG1ldGljICh0aGF0IGlzLCB3aGVuIHRoZSA8Y29kZT5mb3JtPC9jb2RlPiBzZXR0aW5nCisgKiBpcyBub3QgPGNvZGU+UExBSU48L2NvZGU+KSwgYSB6ZXJvIHJlc3VsdCBpcyBhbHdheXMgZXhwcmVzc2VkIGFzIHRoZQorICogc2luZ2xlIGRpZ2l0IDxjb2RlPicwJzwvY29kZT4gKHRoYXQgaXMsIHdpdGggbm8gc2lnbiwgZGVjaW1hbCBwb2ludCwKKyAqIG9yIGV4cG9uZW50IHBhcnQpLgorICogPGxpPgorICogRXhjZXB0IGZvciB0aGUgZGl2aXNpb24gYW5kIHBvd2VyIG9wZXJhdG9ycyBpbiBzdGFuZGFyZCBhcml0aG1ldGljLAorICogdHJhaWxpbmcgemVyb3MgYXJlIHByZXNlcnZlZCAodGhpcyBpcyBpbiBjb250cmFzdCB0byBiaW5hcnkgZmxvYXRpbmcKKyAqIHBvaW50IG9wZXJhdGlvbnMgYW5kIG1vc3QgZWxlY3Ryb25pYyBjYWxjdWxhdG9ycywgd2hpY2ggbG9zZSB0aGUKKyAqIGluZm9ybWF0aW9uIGFib3V0IHRyYWlsaW5nIHplcm9zIGluIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgcmVzdWx0cykuCisgKiA8YnI+CisgKiBTbywgZm9yIGV4YW1wbGU6CisgKiA8cD48Y29kZT4KKyAqICAgICBuZXcgQmlnRGVjaW1hbCgiMi40MCIpLmFkZCggICAgIG5ldyBCaWdEZWNpbWFsKCIyIikpICAgICAgPSZndDsgIjQuNDAiCisgKiA8YnI+bmV3IEJpZ0RlY2ltYWwoIjIuNDAiKS5zdWJ0cmFjdChuZXcgQmlnRGVjaW1hbCgiMiIpKSAgICAgID0mZ3Q7ICIwLjQwIgorICogPGJyPm5ldyBCaWdEZWNpbWFsKCIyLjQwIikubXVsdGlwbHkobmV3IEJpZ0RlY2ltYWwoIjIiKSkgICAgICA9Jmd0OyAiNC44MCIKKyAqIDxicj5uZXcgQmlnRGVjaW1hbCgiMi40MCIpLmRpdmlkZSggIG5ldyBCaWdEZWNpbWFsKCIyIiksIGRlZikgPSZndDsgIjEuMiIKKyAqIDwvY29kZT4KKyAqIDxwPndoZXJlIHRoZSB2YWx1ZSBvbiB0aGUgcmlnaHQgb2YgdGhlIDxjb2RlPj0mZ3Q7PC9jb2RlPiB3b3VsZCBiZSB0aGUKKyAqIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uLCBleHByZXNzZWQgYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+LCBhbmQKKyAqIDxjb2RlPmRlZjwvY29kZT4gKGluIHRoaXMgYW5kIGZvbGxvd2luZyBleGFtcGxlcykgcmVmZXJzIHRvCisgKiA8Y29kZT5NYXRoQ29udGV4dC5ERUZBVUxUPC9jb2RlPikuCisgKiBUaGlzIHByZXNlcnZhdGlvbiBvZiB0cmFpbGluZyB6ZXJvcyBpcyBkZXNpcmFibGUgZm9yIG1vc3QKKyAqIGNhbGN1bGF0aW9ucyAoaW5jbHVkaW5nIGZpbmFuY2lhbCBjYWxjdWxhdGlvbnMpLgorICogSWYgbmVjZXNzYXJ5LCB0cmFpbGluZyB6ZXJvcyBtYXkgYmUgZWFzaWx5IHJlbW92ZWQgdXNpbmcgZGl2aXNpb24gYnkgMS4KKyAqIDxsaT4KKyAqIEluIHN0YW5kYXJkIGFyaXRobWV0aWMsIGV4cG9uZW50aWFsIGZvcm0gaXMgdXNlZCBmb3IgYSByZXN1bHQKKyAqIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUgYW5kIHRoZSBjdXJyZW50IHNldHRpbmcgb2YgPGNvZGU+ZGlnaXRzPC9jb2RlPgorICogKHRoZSBkZWZhdWx0IGlzIDkgZGlnaXRzKS4KKyAqIElmIHRoZSBudW1iZXIgb2YgcGxhY2VzIG5lZWRlZCBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQgZXhjZWVkcyB0aGUKKyAqIDxjb2RlPmRpZ2l0czwvY29kZT4gc2V0dGluZywgb3IgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBudW1iZXIgaXMKKyAqIGxlc3MgdGhhbiA8Y29kZT4wLjAwMDAwMTwvY29kZT4sIHRoZW4gdGhlIG51bWJlciB3aWxsIGJlIGV4cHJlc3NlZCBpbgorICogZXhwb25lbnRpYWwgbm90YXRpb247IHRodXMKKyAqIDxwPjxjb2RlPgorICogICBuZXcgQmlnRGVjaW1hbCgiMWUrNiIpLm11bHRpcGx5KG5ldyBCaWdEZWNpbWFsKCIxZSs2IiksIGRlZikKKyAqIDwvY29kZT4KKyAqIDxwPnJlc3VsdHMgaW4gPGNvZGU+MUUrMTI8L2NvZGU+IGluc3RlYWQgb2YKKyAqIDxjb2RlPjEwMDAwMDAwMDAwMDA8L2NvZGU+LCBhbmQKKyAqIDxwPjxjb2RlPgorICogICBuZXcgQmlnRGVjaW1hbCgiMSIpLmRpdmlkZShuZXcgQmlnRGVjaW1hbCgiM0UrMTAiKSwgZGVmKQorICogPC9jb2RlPgorICogPHA+cmVzdWx0cyBpbiA8Y29kZT4zLjMzMzMzMzMzRS0xMTwvY29kZT4gaW5zdGVhZCBvZgorICogPGNvZGU+MC4wMDAwMDAwMDAwMzMzMzMzMzMzPC9jb2RlPi4KKyAqIDxwPgorICogVGhlIGZvcm0gb2YgdGhlIGV4cG9uZW50aWFsIG5vdGF0aW9uIChzY2llbnRpZmljIG9yIGVuZ2luZWVyaW5nKSBpcworICogZGV0ZXJtaW5lZCBieSB0aGUgPGNvZGU+Zm9ybTwvY29kZT4gc2V0dGluZy4KKyAqIDxldWw+CisgKiA8cD4KKyAqIFRoZSBuYW1lcyBvZiBtZXRob2RzIGluIHRoaXMgY2xhc3MgZm9sbG93IHRoZSBjb252ZW50aW9ucyBlc3RhYmxpc2hlZAorICogYnkgPGNvZGU+amF2YS5sYW5nLk51bWJlcjwvY29kZT4sIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPiwKKyAqIGFuZCA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbDwvY29kZT4gaW4gSmF2YSAxLjEgYW5kIEphdmEgMS4yLgorICoKKyAqIEBzZWUgICAgIE1hdGhDb250ZXh0CisgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKworcHVibGljIGNsYXNzIEJpZ0RlY2ltYWwgZXh0ZW5kcyBqYXZhLmxhbmcuTnVtYmVyIGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUsamF2YS5sYW5nLkNvbXBhcmFibGV7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyAkMD0iQmlnRGVjaW1hbC5ucngiOworIAorIAorIAorIC8qIC0tLS0tIENvbnN0YW50cyAtLS0tLSAqLworIC8qIHByb3BlcnRpZXMgY29uc3RhbnQgcHVibGljICovIC8vIHVzZWZ1bCB0byBvdGhlcnMKKyAvKioKKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY29uc3RhbnQgIjAiLgorICAqCisgICogQHNlZSAjT05FCisgICogQHNlZSAjVEVOCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgWkVSTz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChsb25nKTApOyAvLyB1c2UgbG9uZyBhcyB3ZSB3YW50IHRoZSBpbnQgY29uc3RydWN0b3IKKyAvLyAuLiB0byBiZSBhYmxlIHRvIHVzZSB0aGlzLCBmb3Igc3BlZWQKKyAKKyAvKioKKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY29uc3RhbnQgIjEiLgorICAqCisgICogQHNlZSAjVEVOCisgICogQHNlZSAjWkVSTworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIE9ORT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChsb25nKTEpOyAvLyB1c2UgbG9uZyBhcyB3ZSB3YW50IHRoZSBpbnQgY29uc3RydWN0b3IKKyAvLyAuLiB0byBiZSBhYmxlIHRvIHVzZSB0aGlzLCBmb3Igc3BlZWQKKyAKKyAvKioKKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY29uc3RhbnQgIjEwIi4KKyAgKgorICAqIEBzZWUgI09ORQorICAqIEBzZWUgI1pFUk8KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBURU49bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMCk7CisgCisgLy8gdGhlIHJvdW5kaW5nIG1vZGVzIChjb3BpZWQgaGVyZSBmb3IgdXB3YXJkcyBjb21wYXRpYmlsaXR5KQorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gYSBtb3JlIHBvc2l0aXZlIG51bWJlci4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0NFSUxJTkcKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9DRUlMSU5HPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORzsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvd2FyZHMgemVyby4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0RPV04KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9ET1dOPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTjsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIGEgbW9yZSBuZWdhdGl2ZSBudW1iZXIuCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9GTE9PUgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0ZMT09SPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1I7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgZG93bi4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfRE9XTgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfRE9XTj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTjsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBldmVuIG5laWdoYm9yLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfSEFMRl9FVkVOCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfSEFMRl9FVkVOPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIHVwLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfSEFMRl9VUAorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfVVA9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gYXNzZXJ0IHRoYXQgbm8gcm91bmRpbmcgaXMgbmVjZXNzYXJ5LgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfVU5ORUNFU1NBUlkKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9VTk5FQ0VTU0FSWT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgYXdheSBmcm9tIHplcm8uCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9VUAorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX1VQPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVA7CisgCisgLyogcHJvcGVydGllcyBjb25zdGFudCBwcml2YXRlICovIC8vIGxvY2FscworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgaXNwb3M9MTsgLy8gaW5kOiBpbmRpY2F0ZXMgcG9zaXRpdmUgKG11c3QgYmUgMSkKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGlzemVybz0wOyAvLyBpbmQ6IGluZGljYXRlcyB6ZXJvICAgICAobXVzdCBiZSAwKQorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgaXNuZWc9LTE7IC8vIGluZDogaW5kaWNhdGVzIG5lZ2F0aXZlIChtdXN0IGJlIC0xKQorIC8vIFtsYXRlciBjb3VsZCBhZGQgTmFOLCArLy0gaW5maW5pdHksIGhlcmVdCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1pbkV4cD0tOTk5OTk5OTk5OyAvLyBtaW5pbXVtIGV4cG9uZW50IGFsbG93ZWQKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTWF4RXhwPTk5OTk5OTk5OTsgLy8gbWF4aW11bSBleHBvbmVudCBhbGxvd2VkCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1pbkFyZz0tOTk5OTk5OTk5OyAvLyBtaW5pbXVtIGFyZ3VtZW50IGludGVnZXIKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTWF4QXJnPTk5OTk5OTk5OTsgLy8gbWF4aW11bSBhcmd1bWVudCBpbnRlZ2VyCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBwbGFpbk1DPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTik7IC8vIGNvbnRleHQgZm9yIHBsYWluIHVubGltaXRlZCBtYXRoCisgCisgLyogcHJvcGVydGllcyBjb25zdGFudCBwcml2YXRlIHVudXNlZCAqLyAvLyBwcmVzZW50IGJ1dCBub3QgcmVmZXJlbmNlZAorIAorIC8vIFNlcmlhbGl6YXRpb24gdmVyc2lvbgorIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRD04MjQ1MzU1ODA0OTc0MTk4ODMyTDsKKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIGNvcHlyaWdodD0iIENvcHlyaWdodCAoYykgSUJNIENvcnBvcmF0aW9uIDE5OTYsIDIwMDAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAiOworIAorIC8qIHByb3BlcnRpZXMgc3RhdGljIHByaXZhdGUgKi8KKyAvLyBQcmVjYWxjdWxhdGVkIGNvbnN0YW50IGFycmF5cyAodXNlZCBieSBieXRlYWRkc3ViKQorIHByaXZhdGUgc3RhdGljIGJ5dGUgYnl0ZWNhcltdPW5ldyBieXRlWyg5MCs5OSkrMV07IC8vIGNhcnJ5L2JvcnJvdyBhcnJheQorIHByaXZhdGUgc3RhdGljIGJ5dGUgYnl0ZWRpZ1tdPWRpZ2luaXQoKTsgLy8gbmV4dCBkaWdpdCBhcnJheQorIAorIC8qIC0tLS0tIEluc3RhbmNlIHByb3BlcnRpZXMgW2FsbCBwcml2YXRlIGFuZCBpbW11dGFibGVdIC0tLS0tICovCisgLyogcHJvcGVydGllcyBwcml2YXRlICovCisgCisgLyoqCisgICogVGhlIGluZGljYXRvci4gVGhpcyBtYXkgdGFrZSB0aGUgdmFsdWVzOgorICAqIDx1bD4KKyAgKiA8bGk+aXNwb3MgIC0tIHRoZSBudW1iZXIgaXMgcG9zaXRpdmUKKyAgKiA8bGk+aXN6ZXJvIC0tIHRoZSBudW1iZXIgaXMgemVybworICAqIDxsaT5pc25lZyAgLS0gdGhlIG51bWJlciBpcyBuZWdhdGl2ZQorICAqIDwvdWw+CisgICoKKyAgKiBAc2VyaWFsCisgICovCisgcHJpdmF0ZSBieXRlIGluZDsgLy8gYXNzdW1lZCB1bmRlZmluZWQKKyAvLyBOb3RlOiBzb21lIGNvZGUgYmVsb3cgYXNzdW1lcyBJTkQgPSBTaWduIFstMSwgMCwgMV0sIGF0IHByZXNlbnQuCisgLy8gV2Ugb25seSBuZWVkIHR3byBiaXRzIGZvciB0aGlzLCBidXQgdXNlIGEgYnl0ZSBbYWxzbyBwZXJtaXRzCisgLy8gc21vb3RoIGZ1dHVyZSBleHRlbnNpb25dLgorIAorIC8qKgorICAqIFRoZSBmb3JtYXR0aW5nIHN0eWxlLiBUaGlzIG1heSB0YWtlIHRoZSB2YWx1ZXM6CisgICogPHVsPgorICAqIDxsaT5NYXRoQ29udGV4dC5QTEFJTiAgICAgICAgLS0gbm8gZXhwb25lbnQgbmVlZGVkCisgICogPGxpPk1hdGhDb250ZXh0LlNDSUVOVElGSUMgICAtLSBzY2llbnRpZmljIG5vdGF0aW9uIHJlcXVpcmVkCisgICogPGxpPk1hdGhDb250ZXh0LkVOR0lORUVSSU5HICAtLSBlbmdpbmVlcmluZyBub3RhdGlvbiByZXF1aXJlZAorICAqIDwvdWw+CisgICogPHA+CisgICogVGhpcyBwcm9wZXJ0eSBpcyBhbiBvcHRpbWl6YXRpb247IGl0IGFsbG93cyB1cyB0byBkZWZlciBudW1iZXIKKyAgKiBsYXlvdXQgdW50aWwgaXQgaXMgYWN0dWFsbHkgbmVlZGVkIGFzIGEgc3RyaW5nLCBoZW5jZSBhdm9pZGluZworICAqIHVubmVjZXNzYXJ5IGZvcm1hdHRpbmcuCisgICoKKyAgKiBAc2VyaWFsCisgICovCisgcHJpdmF0ZSBieXRlIGZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsgLy8gYXNzdW1lZCBQTEFJTgorIC8vIFdlIG9ubHkgbmVlZCB0d28gYml0cyBmb3IgdGhpcywgYXQgcHJlc2VudCwgYnV0IHVzZSBhIGJ5dGUKKyAvLyBbYWdhaW4sIHRvIGFsbG93IGZvciBzbW9vdGggZnV0dXJlIGV4dGVuc2lvbl0KKyAKKyAvKioKKyAgKiBUaGUgdmFsdWUgb2YgdGhlIG1hbnRpc3NhLgorICAqIDxwPgorICAqIE9uY2UgY29uc3RydWN0ZWQsIHRoaXMgbWF5IGJlY29tZSBzaGFyZWQgYmV0d2VlbiBzZXZlcmFsIEJpZ0RlY2ltYWwKKyAgKiBvYmplY3RzLCBzbyBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAqIDxwPgorICAqIEZvciBlZmZpY2llbmN5IChzcGVlZCksIHRoaXMgaXMgYSBieXRlIGFycmF5LCB3aXRoIGVhY2ggYnl0ZQorICAqIHRha2luZyBhIHZhbHVlIG9mIDAgLT4gOS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZmlyc3QgYnl0ZSBpcyAwIHRoZW4gdGhlIHZhbHVlIG9mIHRoZSBudW1iZXIgaXMgemVybyAoYW5kCisgICogbWFudC5sZW5ndGg9MSwgZXhjZXB0IHdoZW4gY29uc3RydWN0ZWQgZnJvbSBhIHBsYWluIG51bWJlciwgZm9yCisgICogZXhhbXBsZSwgMC4wMDApLgorICAqCisgICogQHNlcmlhbAorICAqLworIHByaXZhdGUgYnl0ZSBtYW50W107IC8vIGFzc3VtZWQgbnVsbAorIAorIC8qKgorICAqIFRoZSBleHBvbmVudC4KKyAgKiA8cD4KKyAgKiBGb3IgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYywgc2NhbGUgaXMgPGNvZGU+LWV4cDwvY29kZT4sIGFuZCBjYW4KKyAgKiBhcHBseSB0byB6ZXJvLgorICAqCisgICogTm90ZSB0aGF0IHRoaXMgcHJvcGVydHkgY2FuIGhhdmUgYSB2YWx1ZSBsZXNzIHRoYW4gTWluRXhwIHdoZW4KKyAgKiB0aGUgbWFudGlzc2EgaGFzIG1vcmUgdGhhbiBvbmUgZGlnaXQuCisgICoKKyAgKiBAc2VyaWFsCisgICovCisgcHJpdmF0ZSBpbnQgZXhwOworIC8vIGFzc3VtZWQgMAorIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBDb25zdHJ1Y3RvcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgdGhvdWdoIHRoZSBwYXJhbWV0ZXIgaGFkCisgICogYmVlbiByZXByZXNlbnRlZCBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4gKHVzaW5nIGl0cworICAqIDxjb2RlPnRvU3RyaW5nPC9jb2RlPiBtZXRob2QpIGFuZCB0aGUKKyAgKiB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9IGNvbnN0cnVjdG9yIGhhZCB0aGVuIGJlZW4KKyAgKiB1c2VkLgorICAqIFRoZSBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgICogPHA+CisgICogPGk+KE5vdGU6IHRoaXMgY29uc3RydWN0b3IgaXMgcHJvdmlkZWQgb25seSBpbiB0aGUKKyAgKiA8Y29kZT5jb20uaWJtLmljdS5tYXRoPC9jb2RlPiB2ZXJzaW9uIG9mIHRoZSBCaWdEZWNpbWFsIGNsYXNzLgorICAqIEl0IHdvdWxkIG5vdCBiZSBwcmVzZW50IGluIGEgPGNvZGU+amF2YS5tYXRoPC9jb2RlPiB2ZXJzaW9uLik8L2k+CisgICoKKyAgKiBAcGFyYW0gYmQgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGJlIHRyYW5zbGF0ZWQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoamF2YS5tYXRoLkJpZ0RlY2ltYWwgYmQpeworICB0aGlzKGJkLnRvU3RyaW5nKCkpOworICByZXR1cm47fQorLy8jZW5kaWYKKworIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZnJvbSBhCisgICogPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4sIHdpdGggc2NhbGUgMC4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hpY2ggaXMgdGhlIGV4YWN0IGRlY2ltYWwKKyAgKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4sIHdpdGggYSBzY2FsZSBvZgorICAqIHplcm8uCisgICogVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBpZGVudGljYWwgdG8gdGhlIHZhbHVlCisgICogb2YgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LgorICAqIFRoZSBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgICogPHA+CisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpbGwgY29udGFpbiBvbmx5IGRlY2ltYWwgZGlnaXRzLAorICAqIHByZWZpeGVkIHdpdGggYSBsZWFkaW5nIG1pbnVzIHNpZ24gKGh5cGhlbikgaWYgdGhlCisgICogPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gaXMgbmVnYXRpdmUuICBBIGxlYWRpbmcgemVybyB3aWxsIGJlCisgICogcHJlc2VudCBvbmx5IGlmIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBpcyB6ZXJvLgorICAqCisgICogQHBhcmFtIGJpIFRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoamF2YS5tYXRoLkJpZ0ludGVnZXIgYmkpeworICB0aGlzKGJpLnRvU3RyaW5nKDEwKSk7CisgIHJldHVybjt9CisgLy8gZXhwIHJlbWFpbnMgMAorIAorIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZnJvbSBhCisgICogPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gYW5kIGEgc2NhbGUuCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdoaWNoIGlzIHRoZSBleGFjdCBkZWNpbWFsCisgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LCBzY2FsZWQgYnkgdGhlCisgICogc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggbWF5IG5vdCBiZSBuZWdhdGl2ZS4KKyAgKiBUaGUgdmFsdWUgb2YgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIHRoZQorICAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGRpdmlkZWQgYnkgdGVuIHRvIHRoZSBwb3dlciBvZiB0aGUgc2NhbGUuCisgICogVGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IHBhcmFtZXRlciBtdXN0IG5vdCBiZQorICAqIDxjb2RlPm51bGw8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aWxsIGNvbnRhaW4gb25seSBkZWNpbWFsIGRpZ2l0cywgKHdpdGgKKyAgKiBhbiBlbWJlZGRlZCBkZWNpbWFsIHBvaW50IGZvbGxvd2VkIGJ5IDxjb2RlPnNjYWxlPC9jb2RlPiBkZWNpbWFsCisgICogZGlnaXRzIGlmIHRoZSBzY2FsZSBpcyBwb3NpdGl2ZSksIHByZWZpeGVkIHdpdGggYSBsZWFkaW5nIG1pbnVzCisgICogc2lnbiAoaHlwaGVuKSBpZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gaXMgbmVnYXRpdmUuICBBCisgICogbGVhZGluZyB6ZXJvIHdpbGwgYmUgcHJlc2VudCBvbmx5IGlmIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBpcworICAqIHplcm8uCisgICoKKyAgKiBAcGFyYW0gIGJpICAgIFRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHBhcmFtICBzY2FsZSBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBzY2FsZS4KKyAgKiBAdGhyb3dzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiB0aGUgc2NhbGUgaXMgbmVnYXRpdmUuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoamF2YS5tYXRoLkJpZ0ludGVnZXIgYmksaW50IHNjYWxlKXsKKyAgdGhpcyhiaS50b1N0cmluZygxMCkpOworICBpZiAoc2NhbGU8MCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbigiTmVnYXRpdmUgc2NhbGU6IisiICIrc2NhbGUpOworICBleHA9KGludCktc2NhbGU7IC8vIGV4cG9uZW50IGlzIC1zY2FsZQorICByZXR1cm47fQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMuCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIHRob3VnaCBhCisgICogPGNvZGU+U3RyaW5nPC9jb2RlPiBoYWQgYmVlbiBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBjaGFyYWN0ZXIgYXJyYXkKKyAgKiBhbmQgdGhlIHtAbGluayAjQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nKX0gY29uc3RydWN0b3IgaGFkIHRoZW4KKyAgKiBiZWVuIHVzZWQuIFRoZSBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgICogPHA+CisgICogVXNpbmcgdGhpcyBjb25zdHJ1Y3RvciBpcyBmYXN0ZXIgdGhhbiB1c2luZyB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsKFN0cmluZyk8L2NvZGU+IGNvbnN0cnVjdG9yIGlmIHRoZSBzdHJpbmcgaXMKKyAgKiBhbHJlYWR5IGF2YWlsYWJsZSBpbiBjaGFyYWN0ZXIgYXJyYXkgZm9ybS4KKyAgKgorICAqIEBwYXJhbSBpbmNoYXJzIFRoZSA8Y29kZT5jaGFyW108L2NvZGU+IGFycmF5IGNvbnRhaW5pbmcgdGhlIG51bWJlcgorICAqICAgICAgICAgICAgICAgIHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAdGhyb3dzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkCisgICogICAgICAgICAgICAgICAgbnVtYmVyLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGNoYXIgaW5jaGFyc1tdKXsKKyAgdGhpcyhpbmNoYXJzLDAsaW5jaGFycy5sZW5ndGgpOworICByZXR1cm47fQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMuCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIHRob3VnaCBhCisgICogPGNvZGU+U3RyaW5nPC9jb2RlPiBoYWQgYmVlbiBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBjaGFyYWN0ZXIgYXJyYXkKKyAgKiAob3IgYSBzdWJhcnJheSBvZiB0aGF0IGFycmF5KSBhbmQgdGhlCisgICoge0BsaW5rICNCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpfSBjb25zdHJ1Y3RvciBoYWQgdGhlbiBiZWVuCisgICogdXNlZC4gVGhlIGZpcnN0IHBhcmFtZXRlciBtdXN0IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPiwgYW5kIHRoZQorICAqIHN1YmFycmF5IG11c3QgYmUgd2hvbGx5IGNvbnRhaW5lZCB3aXRoaW4gaXQuCisgICogPHA+CisgICogVXNpbmcgdGhpcyBjb25zdHJ1Y3RvciBpcyBmYXN0ZXIgdGhhbiB1c2luZyB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsKFN0cmluZyk8L2NvZGU+IGNvbnN0cnVjdG9yIGlmIHRoZSBzdHJpbmcgaXMKKyAgKiBhbHJlYWR5IGF2YWlsYWJsZSB3aXRoaW4gYSBjaGFyYWN0ZXIgYXJyYXkuCisgICoKKyAgKiBAcGFyYW0gaW5jaGFycyBUaGUgPGNvZGU+Y2hhcltdPC9jb2RlPiBhcnJheSBjb250YWluaW5nIHRoZSBudW1iZXIKKyAgKiAgICAgICAgICAgICAgICB0byBiZSBjb252ZXJ0ZWQuCisgICogQHBhcmFtIG9mZnNldCAgVGhlIDxjb2RlPmludDwvY29kZT4gb2Zmc2V0IGludG8gdGhlIGFycmF5IG9mIHRoZQorICAqICAgICAgICAgICAgICAgIHN0YXJ0IG9mIHRoZSBudW1iZXIgdG8gYmUgY29udmVydGVkLgorICAqIEBwYXJhbSBsZW5ndGggIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGxlbmd0aCBvZiB0aGUgbnVtYmVyLgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQKKyAgKiAgICAgICAgICAgICAgICBudW1iZXIgZm9yIGFueSByZWFzb24uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoY2hhciBpbmNoYXJzW10saW50IG9mZnNldCxpbnQgbGVuZ3RoKXtzdXBlcigpOworICBib29sZWFuIGV4b3RpYzsKKyAgYm9vbGVhbiBoYWRleHA7CisgIGludCBkOworICBpbnQgZG90b2ZmOworICBpbnQgbGFzdDsKKyAgaW50IGk9MDsKKyAgY2hhciBzaT0wOworICBib29sZWFuIGVuZWc9ZmFsc2U7CisgIGludCBrPTA7CisgIGludCBlbGVuPTA7CisgIGludCBqPTA7CisgIGNoYXIgc2o9MDsKKyAgaW50IGR2YWx1ZT0wOworICBpbnQgbWFnPTA7CisgIC8vIFRoaXMgaXMgdGhlIHByaW1hcnkgY29uc3RydWN0b3I7IGFsbCBpbmNvbWluZyBzdHJpbmdzIGVuZCB1cAorICAvLyBoZXJlOyBpdCB1c2VzIGV4cGxpY2l0IChpbmxpbmUpIHBhcnNpbmcgZm9yIHNwZWVkIGFuZCB0byBhdm9pZAorICAvLyBnZW5lcmF0aW5nIGludGVybWVkaWF0ZSAodGVtcG9yYXJ5KSBvYmplY3RzIG9mIGFueSBraW5kLgorICAvLyAxOTk4LjA2LjI1OiBleHBvbmVudCBmb3JtIGJ1aWx0IG9ubHkgaWYgRS9lIGluIHN0cmluZworICAvLyAxOTk4LjA2LjI1OiB0cmFpbGluZyB6ZXJvcyBub3QgcmVtb3ZlZCBmb3IgemVybworICAvLyAxOTk5LjAzLjA2OiBubyBlbWJlZGRlZCBibGFua3M7IGFsbG93IG9mZnNldCBhbmQgbGVuZ3RoCisgIGlmIChsZW5ndGg8PTApIAorICAgYmFkKGluY2hhcnMpOyAvLyBiYWQgY29udmVyc2lvbiAoZW1wdHkgc3RyaW5nKQorICAvLyBbYmFkIG9mZnNldCB3aWxsIHJhaXNlIGFycmF5IGJvdW5kcyBleGNlcHRpb25dCisgIAorICAvKiBIYW5kbGUgYW5kIHN0ZXAgcGFzdCBzaWduICovCisgIGluZD1pc3BvczsgLy8gYXNzdW1lIHBvc2l0aXZlCisgIGlmIChpbmNoYXJzW29mZnNldF09PSgnLScpKSAKKyAgIHsKKyAgICBsZW5ndGgtLTsKKyAgICBpZiAobGVuZ3RoPT0wKSAKKyAgICAgYmFkKGluY2hhcnMpOyAvLyBub3RoaW5nIGFmdGVyIHNpZ24KKyAgICBpbmQ9aXNuZWc7CisgICAgb2Zmc2V0Kys7CisgICB9CisgIGVsc2UgCisgICBpZiAoaW5jaGFyc1tvZmZzZXRdPT0oJysnKSkgCisgICAgeworICAgICBsZW5ndGgtLTsKKyAgICAgaWYgKGxlbmd0aD09MCkgCisgICAgICBiYWQoaW5jaGFycyk7IC8vIG5vdGhpbmcgYWZ0ZXIgc2lnbgorICAgICBvZmZzZXQrKzsKKyAgICB9CisgIAorICAvKiBXZSdyZSBhdCB0aGUgc3RhcnQgb2YgdGhlIG51bWJlciAqLworICBleG90aWM9ZmFsc2U7IC8vIGhhdmUgZXh0cmEgZGlnaXRzCisgIGhhZGV4cD1mYWxzZTsgLy8gaGFkIGV4cGxpY2l0IGV4cG9uZW50CisgIGQ9MDsgLy8gY291bnQgb2YgZGlnaXRzIGZvdW5kCisgIGRvdG9mZj0tMTsgLy8gb2Zmc2V0IHdoZXJlIGRvdCB3YXMgZm91bmQKKyAgbGFzdD0tMTsgLy8gbGFzdCBjaGFyYWN0ZXIgb2YgbWFudGlzc2EKKyAge2ludCAkMT1sZW5ndGg7aT1vZmZzZXQ7aTpmb3IoOyQxPjA7JDEtLSxpKyspeworICAgc2k9aW5jaGFyc1tpXTsKKyAgIGlmIChzaT49JzAnKSAgLy8gdGVzdCBmb3IgQXJhYmljIGRpZ2l0CisgICAgaWYgKHNpPD0nOScpIAorICAgICB7CisgICAgICBsYXN0PWk7CisgICAgICBkKys7IC8vIHN0aWxsIGluIG1hbnRpc3NhCisgICAgICBjb250aW51ZSBpOworICAgICB9CisgICBpZiAoc2k9PScuJykgCisgICAgeyAvLyByZWNvcmQgYW5kIGlnbm9yZQorICAgICBpZiAoZG90b2ZmPj0wKSAKKyAgICAgIGJhZChpbmNoYXJzKTsgLy8gdHdvIGRvdHMKKyAgICAgZG90b2ZmPWktb2Zmc2V0OyAvLyBvZmZzZXQgaW50byBtYW50aXNzYQorICAgICBjb250aW51ZSBpOworICAgIH0KKyAgIGlmIChzaSE9J2UnKSAKKyAgICBpZiAoc2khPSdFJykgCisgICAgIHsgLy8gZXhwZWN0IGFuIGV4dHJhIGRpZ2l0CisgICAgICBpZiAoKCEoamF2YS5sYW5nLkNoYXJhY3Rlci5pc0RpZ2l0KHNpKSkpKSAKKyAgICAgICBiYWQoaW5jaGFycyk7IC8vIG5vdCBhIG51bWJlcgorICAgICAgLy8gZGVmZXIgdGhlIGJhc2UgMTAgY2hlY2sgdW50aWwgbGF0ZXIgdG8gYXZvaWQgZXh0cmEgbWV0aG9kIGNhbGwKKyAgICAgIGV4b3RpYz10cnVlOyAvLyB3aWxsIG5lZWQgY29udmVyc2lvbiBsYXRlcgorICAgICAgbGFzdD1pOworICAgICAgZCsrOyAvLyBzdGlsbCBpbiBtYW50aXNzYQorICAgICAgY29udGludWUgaTsKKyAgICAgfQorICAgLyogRm91bmQgJ2UnIG9yICdFJyAtLSBub3cgcHJvY2VzcyBleHBsaWNpdCBleHBvbmVudCAqLworICAgLy8gMTk5OC4wNy4xMTogc2lnbiBubyBsb25nZXIgcmVxdWlyZWQKKyAgIGlmICgoaS1vZmZzZXQpPihsZW5ndGgtMikpIAorICAgIGJhZChpbmNoYXJzKTsgLy8gbm8gcm9vbSBmb3IgZXZlbiBvbmUgZGlnaXQKKyAgIGVuZWc9ZmFsc2U7CisgICBpZiAoKGluY2hhcnNbaSsxXSk9PSgnLScpKSAKKyAgICB7CisgICAgIGVuZWc9dHJ1ZTsKKyAgICAgaz1pKzI7CisgICAgfQorICAgZWxzZSAKKyAgICBpZiAoKGluY2hhcnNbaSsxXSk9PSgnKycpKSAKKyAgICAgaz1pKzI7CisgICAgZWxzZSAKKyAgICAgaz1pKzE7CisgICAvLyBrIGlzIG9mZnNldCBvZiBmaXJzdCBleHBlY3RlZCBkaWdpdAorICAgZWxlbj1sZW5ndGgtKChrLW9mZnNldCkpOyAvLyBwb3NzaWJsZSBudW1iZXIgb2YgZGlnaXRzCisgICBpZiAoKGVsZW49PTApfChlbGVuPjkpKSAKKyAgICBiYWQoaW5jaGFycyk7IC8vIDAgb3IgbW9yZSB0aGFuIDkgZGlnaXRzCisgICB7aW50ICQyPWVsZW47aj1rO2o6Zm9yKDskMj4wOyQyLS0saisrKXsKKyAgICBzaj1pbmNoYXJzW2pdOworICAgIGlmIChzajwnMCcpIAorICAgICBiYWQoaW5jaGFycyk7IC8vIGFsd2F5cyBiYWQKKyAgICBpZiAoc2o+JzknKSAKKyAgICAgeyAvLyBtYXliZSBhbiBleG90aWMgZGlnaXQKKyAgICAgIGlmICgoIShqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzRGlnaXQoc2opKSkpIAorICAgICAgIGJhZChpbmNoYXJzKTsgLy8gbm90IGEgbnVtYmVyCisgICAgICBkdmFsdWU9amF2YS5sYW5nLkNoYXJhY3Rlci5kaWdpdChzaiwxMCk7IC8vIGNoZWNrIGJhc2UKKyAgICAgIGlmIChkdmFsdWU8MCkgCisgICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3QgYmFzZSAxMAorICAgICB9CisgICAgZWxzZSAKKyAgICAgZHZhbHVlPSgoaW50KShzaikpLSgoaW50KSgnMCcpKTsKKyAgICBleHA9KGV4cCoxMCkrZHZhbHVlOworICAgIH0KKyAgIH0vKmoqLworICAgaWYgKGVuZWcpIAorICAgIGV4cD0oaW50KS1leHA7IC8vIHdhcyBuZWdhdGl2ZQorICAgaGFkZXhwPXRydWU7IC8vIHJlbWVtYmVyIHdlIGhhZCBvbmUKKyAgIGJyZWFrIGk7IC8vIHdlIGFyZSBkb25lCisgICB9CisgIH0vKmkqLworICAKKyAgLyogSGVyZSB3aGVuIGFsbCBpbnNwZWN0ZWQgKi8KKyAgaWYgKGQ9PTApIAorICAgYmFkKGluY2hhcnMpOyAvLyBubyBtYW50aXNzYSBkaWdpdHMKKyAgaWYgKGRvdG9mZj49MCkgCisgICBleHA9KGV4cCtkb3RvZmYpLWQ7IC8vIGFkanVzdCBleHBvbmVudCBpZiBoYWQgZG90CisgIAorICAvKiBzdHJpcCBsZWFkaW5nIHplcm9zL2RvdCAobGVhdmUgZmluYWwgaWYgYWxsIDAncykgKi8KKyAge2ludCAkMz1sYXN0LTE7aT1vZmZzZXQ7aTpmb3IoO2k8PSQzO2krKyl7CisgICBzaT1pbmNoYXJzW2ldOworICAgaWYgKHNpPT0nMCcpIAorICAgIHsKKyAgICAgb2Zmc2V0Kys7CisgICAgIGRvdG9mZi0tOworICAgICBkLS07CisgICAgfQorICAgZWxzZSAKKyAgICBpZiAoc2k9PScuJykgCisgICAgIHsKKyAgICAgIG9mZnNldCsrOyAvLyBzdGVwIHBhc3QgZG90CisgICAgICBkb3RvZmYtLTsKKyAgICAgfQorICAgIGVsc2UgCisgICAgIGlmIChzaTw9JzknKSAKKyAgICAgIGJyZWFrIGk7Lyogbm9uLTAgKi8KKyAgICAgZWxzZSAKKyAgICAgIHsvKiBleG90aWMgKi8KKyAgICAgICBpZiAoKGphdmEubGFuZy5DaGFyYWN0ZXIuZGlnaXQoc2ksMTApKSE9MCkgCisgICAgICAgIGJyZWFrIGk7IC8vIG5vbi0wIG9yIGJhZAorICAgICAgIC8vIGlzIDAgLi4gc3RyaXAgbGlrZSAnMCcKKyAgICAgICBvZmZzZXQrKzsKKyAgICAgICBkb3RvZmYtLTsKKyAgICAgICBkLS07CisgICAgICB9CisgICB9CisgIH0vKmkqLworICAKKyAgLyogQ3JlYXRlIHRoZSBtYW50aXNzYSBhcnJheSAqLworICBtYW50PW5ldyBieXRlW2RdOyAvLyB3ZSBrbm93IHRoZSBsZW5ndGgKKyAgaj1vZmZzZXQ7IC8vIGlucHV0IG9mZnNldAorICBpZiAoZXhvdGljKSAKKyAgIHtleG90aWNhOmRveyAvLyBzbG93OiBjaGVjayBmb3IgZXhvdGljYQorICAgIHtpbnQgJDQ9ZDtpPTA7aTpmb3IoOyQ0PjA7JDQtLSxpKyspeworICAgICBpZiAoaT09ZG90b2ZmKSAKKyAgICAgIGorKzsgLy8gYXQgZG90CisgICAgIHNqPWluY2hhcnNbal07CisgICAgIGlmIChzajw9JzknKSAKKyAgICAgIG1hbnRbaV09KGJ5dGUpKCgoaW50KShzaikpLSgoaW50KSgnMCcpKSk7LyogZWFzeSAqLworICAgICBlbHNlIAorICAgICAgeworICAgICAgIGR2YWx1ZT1qYXZhLmxhbmcuQ2hhcmFjdGVyLmRpZ2l0KHNqLDEwKTsKKyAgICAgICBpZiAoZHZhbHVlPDApIAorICAgICAgICBiYWQoaW5jaGFycyk7IC8vIG5vdCBhIG51bWJlciBhZnRlciBhbGwKKyAgICAgICBtYW50W2ldPShieXRlKWR2YWx1ZTsKKyAgICAgIH0KKyAgICAgaisrOworICAgICB9CisgICAgfS8qaSovCisgICB9d2hpbGUoZmFsc2UpO30vKmV4b3RpY2EqLworICBlbHNlIAorICAge3NpbXBsZTpkb3sKKyAgICB7aW50ICQ1PWQ7aT0wO2k6Zm9yKDskNT4wOyQ1LS0saSsrKXsKKyAgICAgaWYgKGk9PWRvdG9mZikgCisgICAgICBqKys7CisgICAgIG1hbnRbaV09KGJ5dGUpKCgoaW50KShpbmNoYXJzW2pdKSktKChpbnQpKCcwJykpKTsKKyAgICAgaisrOworICAgICB9CisgICAgfS8qaSovCisgICB9d2hpbGUoZmFsc2UpO30vKnNpbXBsZSovCisgIAorICAvKiBMb29rcyBnb29kLiAgU2V0IHRoZSBzaWduIGluZGljYXRvciBhbmQgZm9ybSwgYXMgbmVlZGVkLiAqLworICAvLyBUcmFpbGluZyB6ZXJvcyBhcmUgcHJlc2VydmVkCisgIC8vIFRoZSBydWxlIGhlcmUgZm9yIGZvcm0gaXM6CisgIC8vICAgSWYgbm8gRS1ub3RhdGlvbiwgdGhlbiByZXF1ZXN0IHBsYWluIG5vdGF0aW9uCisgIC8vICAgT3RoZXJ3aXNlIGFjdCBhcyB0aG91Z2ggYWRkKDAsREVGQVVMVCkgYW5kIHJlcXVlc3Qgc2NpZW50aWZpYyBub3RhdGlvbgorICAvLyBbZm9ybSBpcyBhbHJlYWR5IFBMQUlOXQorICBpZiAobWFudFswXT09MCkgCisgICB7CisgICAgaW5kPWlzemVybzsgLy8gZm9yY2UgdG8gc2hvdyB6ZXJvCisgICAgLy8gbmVnYXRpdmUgZXhwb25lbnQgaXMgc2lnbmlmaWNhbnQgKGUuZy4sIC0zIGZvciAwLjAwMCkgaWYgcGxhaW4KKyAgICBpZiAoZXhwPjApIAorICAgICBleHA9MDsgLy8gcG9zaXRpdmUgZXhwb25lbnQgY2FuIGJlIGlnbm9yZWQKKyAgICBpZiAoaGFkZXhwKSAKKyAgICAgeyAvLyB6ZXJvIGJlY29tZXMgc2luZ2xlIGRpZ2l0IGZyb20gYWRkCisgICAgICBtYW50PVpFUk8ubWFudDsKKyAgICAgIGV4cD0wOworICAgICB9CisgICB9CisgIGVsc2UgCisgICB7IC8vIG5vbi16ZXJvCisgICAgLy8gW2luZCB3YXMgc2V0IGVhcmxpZXJdCisgICAgLy8gbm93IGRldGVybWluZSBmb3JtCisgICAgaWYgKGhhZGV4cCkgCisgICAgIHsKKyAgICAgIGZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAgICAgLy8gMTk5OS4wNi4yOSBjaGVjayBmb3Igb3ZlcmZsb3cKKyAgICAgIG1hZz0oZXhwK21hbnQubGVuZ3RoKS0xOyAvLyB0cnVlIGV4cG9uZW50IGluIHNjaWVudGlmaWMgbm90YXRpb24KKyAgICAgIGlmICgobWFnPE1pbkV4cCl8KG1hZz5NYXhFeHApKSAKKyAgICAgICBiYWQoaW5jaGFycyk7CisgICAgIH0KKyAgIH0KKyAgLy8gc2F5ICdCRChjW10pOiBtYW50WzBdIG1hbnRsZW4gZXhwIGluZCBmb3JtOicgbWFudFswXSBtYW50Lmxlbmd0aCBleHAgaW5kIGZvcm0KKyAgcmV0dXJuOworICB9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGRpcmVjdGx5IGZyb20gYQorICAqIDxjb2RlPmRvdWJsZTwvY29kZT4uCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdoaWNoIGlzIHRoZSBleGFjdCBkZWNpbWFsCisgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIDY0LWJpdCBzaWduZWQgYmluYXJ5IGZsb2F0aW5nIHBvaW50CisgICogcGFyYW1ldGVyLgorICAqIDxwPgorICAqIE5vdGUgdGhhdCB0aGlzIGNvbnN0cnVjdG9yIGl0IGFuIGV4YWN0IGNvbnZlcnNpb247IGl0IGRvZXMgbm90IGdpdmUKKyAgKiB0aGUgc2FtZSByZXN1bHQgYXMgY29udmVydGluZyA8Y29kZT5udW08L2NvZGU+IHRvIGEKKyAgKiA8Y29kZT5TdHJpbmc8L2NvZGU+IHVzaW5nIHRoZSA8Y29kZT5Eb3VibGUudG9TdHJpbmcoKTwvY29kZT4gbWV0aG9kCisgICogYW5kIHRoZW4gdXNpbmcgdGhlIHtAbGluayAjQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nKX0KKyAgKiBjb25zdHJ1Y3Rvci4KKyAgKiBUbyBnZXQgdGhhdCByZXN1bHQsIHVzZSB0aGUgc3RhdGljIHtAbGluayAjdmFsdWVPZihkb3VibGUpfQorICAqIG1ldGhvZCB0byBjb25zdHJ1Y3QgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmcm9tIGEKKyAgKiA8Y29kZT5kb3VibGU8L2NvZGU+LgorICAqCisgICogQHBhcmFtIG51bSBUaGUgPGNvZGU+ZG91YmxlPC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBpbmZpbml0ZSBvcgorICAqICAgICAgICAgICAgbm90IGEgbnVtYmVyLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGRvdWJsZSBudW0peworICAvLyAxOTk5LjAzLjA2OiB1c2UgZXhhY3RseSB0aGUgb2xkIGFsZ29yaXRobQorICAvLyAyMDAwLjAxLjAxOiBub3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBkb2VzIGdpdmUgYW4gZXhhY3QgcmVzdWx0LAorICAvLyAgICAgICAgICAgICBzbyBwZXJoYXBzIGl0IHNob3VsZCBub3QgYmUgZGVwcmVjYXRlZAorICAvLyAyMDAwLjA2LjE4OiBubyBsb25nZXIgZGVwcmVjYXRlZAorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgdGhpcygobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKG51bSkpLnRvU3RyaW5nKCkpOworLy8jZWxzZQorLy8jIyAgICB0aGlzKFN0cmluZy52YWx1ZU9mKG51bSkpOworLy8jZW5kaWYKKyAgcmV0dXJuO30KKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGRpcmVjdGx5IGZyb20gYQorICAqIDxjb2RlPmludDwvY29kZT4uCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdoaWNoIGlzIHRoZSBleGFjdCBkZWNpbWFsCisgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIDMyLWJpdCBzaWduZWQgYmluYXJ5IGludGVnZXIgcGFyYW1ldGVyLgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aWxsIGNvbnRhaW4gb25seSBkZWNpbWFsIGRpZ2l0cywKKyAgKiBwcmVmaXhlZCB3aXRoIGEgbGVhZGluZyBtaW51cyBzaWduIChoeXBoZW4pIGlmIHRoZSBwYXJhbWV0ZXIgaXMKKyAgKiBuZWdhdGl2ZS4KKyAgKiBBIGxlYWRpbmcgemVybyB3aWxsIGJlIHByZXNlbnQgb25seSBpZiB0aGUgcGFyYW1ldGVyIGlzIHplcm8uCisgICoKKyAgKiBAcGFyYW0gbnVtIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChpbnQgbnVtKXtzdXBlcigpOworICBpbnQgbXVuOworICBpbnQgaT0wOworICAvLyBXZSBmYXN0cGF0aCBjb21tb25lcnMKKyAgaWYgKG51bTw9OSkgCisgICBpZiAobnVtPj0oLTkpKSAKKyAgICB7c2luZ2xlZGlnaXQ6ZG97CisgICAgIC8vIHZlcnkgY29tbW9uIHNpbmdsZSBkaWdpdCBjYXNlCisgICAgIHsvKnNlbGVjdCovCisgICAgIGlmIChudW09PTApCisgICAgICB7CisgICAgICAgbWFudD1aRVJPLm1hbnQ7CisgICAgICAgaW5kPWlzemVybzsKKyAgICAgIH0KKyAgICAgZWxzZSBpZiAobnVtPT0xKQorICAgICAgeworICAgICAgIG1hbnQ9T05FLm1hbnQ7CisgICAgICAgaW5kPWlzcG9zOworICAgICAgfQorICAgICBlbHNlIGlmIChudW09PSgtMSkpCisgICAgICB7CisgICAgICAgbWFudD1PTkUubWFudDsKKyAgICAgICBpbmQ9aXNuZWc7CisgICAgICB9CisgICAgIGVsc2V7CisgICAgICB7CisgICAgICAgbWFudD1uZXcgYnl0ZVsxXTsKKyAgICAgICBpZiAobnVtPjApIAorICAgICAgICB7CisgICAgICAgICBtYW50WzBdPShieXRlKW51bTsKKyAgICAgICAgIGluZD1pc3BvczsKKyAgICAgICAgfQorICAgICAgIGVsc2UgCisgICAgICAgIHsgLy8gbnVtPC0xCisgICAgICAgICBtYW50WzBdPShieXRlKSgoaW50KS1udW0pOworICAgICAgICAgaW5kPWlzbmVnOworICAgICAgICB9CisgICAgICB9CisgICAgIH0KKyAgICAgfQorICAgICByZXR1cm47CisgICAgfXdoaWxlKGZhbHNlKTt9LypzaW5nbGVkaWdpdCovCisgIAorICAvKiBXZSB3b3JrIG9uIG5lZ2F0aXZlIG51bWJlcnMgc28gd2UgaGFuZGxlIHRoZSBtb3N0IG5lZ2F0aXZlIG51bWJlciAqLworICBpZiAobnVtPjApIAorICAgeworICAgIGluZD1pc3BvczsKKyAgICBudW09KGludCktbnVtOworICAgfQorICBlbHNlIAorICAgaW5kPWlzbmVnOy8qIG5lZ2F0aXZlICovIC8vIFswIGNhc2UgYWxyZWFkeSBoYW5kbGVkXQorICAvLyBbaXQgaXMgcXVpY2tlciwgaGVyZSwgdG8gcHJlLWNhbGN1bGF0ZSB0aGUgbGVuZ3RoIHdpdGgKKyAgLy8gb25lIGxvb3AsIHRoZW4gYWxsb2NhdGUgZXhhY3RseSB0aGUgcmlnaHQgbGVuZ3RoIG9mIGJ5dGUgYXJyYXksCisgIC8vIHRoZW4gcmUtZmlsbCBpdCB3aXRoIGFub3RoZXIgbG9vcF0KKyAgbXVuPW51bTsgLy8gd29ya2luZyBjb3B5CisgIHtpPTk7aTpmb3IoOztpLS0peworICAgbXVuPW11bi8xMDsKKyAgIGlmIChtdW49PTApIAorICAgIGJyZWFrIGk7CisgICB9CisgIH0vKmkqLworICAvLyBpIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgbGVmdG1vc3QgZGlnaXQgcGxhY2VkCisgIG1hbnQ9bmV3IGJ5dGVbMTAtaV07CisgIHtpPSgxMC1pKS0xO2k6Zm9yKDs7aS0tKXsKKyAgIG1hbnRbaV09KGJ5dGUpLSgoKGJ5dGUpKG51bSUxMCkpKTsKKyAgIG51bT1udW0vMTA7CisgICBpZiAobnVtPT0wKSAKKyAgICBicmVhayBpOworICAgfQorICB9LyppKi8KKyAgcmV0dXJuOworICB9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGRpcmVjdGx5IGZyb20gYQorICAqIDxjb2RlPmxvbmc8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA2NC1iaXQgc2lnbmVkIGJpbmFyeSBpbnRlZ2VyIHBhcmFtZXRlci4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2lsbCBjb250YWluIG9ubHkgZGVjaW1hbCBkaWdpdHMsCisgICogcHJlZml4ZWQgd2l0aCBhIGxlYWRpbmcgbWludXMgc2lnbiAoaHlwaGVuKSBpZiB0aGUgcGFyYW1ldGVyIGlzCisgICogbmVnYXRpdmUuCisgICogQSBsZWFkaW5nIHplcm8gd2lsbCBiZSBwcmVzZW50IG9ubHkgaWYgdGhlIHBhcmFtZXRlciBpcyB6ZXJvLgorICAqCisgICogQHBhcmFtIG51bSBUaGUgPGNvZGU+bG9uZzwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGxvbmcgbnVtKXtzdXBlcigpOworICBsb25nIG11bjsKKyAgaW50IGk9MDsKKyAgLy8gTm90IHJlYWxseSB3b3J0aCBmYXN0cGF0aGluZyBjb21tb25lcnMgaW4gdGhpcyBjb25zdHJ1Y3RvciBbYWxzbywKKyAgLy8gd2UgdXNlIHRoaXMgdG8gY29uc3RydWN0IHRoZSBzdGF0aWMgY29uc3RhbnRzXS4KKyAgLy8gVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuOiB0aGlzKFN0cmluZy52YWx1ZU9mKG51bSkudG9DaGFyQXJyYXkoKSkKKyAgLyogV2Ugd29yayBvbiBuZWdhdGl2ZSBudW0gc28gd2UgaGFuZGxlIHRoZSBtb3N0IG5lZ2F0aXZlIG51bWJlciAqLworICBpZiAobnVtPjApIAorICAgeworICAgIGluZD1pc3BvczsKKyAgICBudW09KGxvbmcpLW51bTsKKyAgIH0KKyAgZWxzZSAKKyAgIGlmIChudW09PTApIAorICAgIGluZD1pc3plcm87CisgICBlbHNlIAorICAgIGluZD1pc25lZzsvKiBuZWdhdGl2ZSAqLworICBtdW49bnVtOworICB7aT0xODtpOmZvcig7O2ktLSl7CisgICBtdW49bXVuLzEwOworICAgaWYgKG11bj09MCkgCisgICAgYnJlYWsgaTsKKyAgIH0KKyAgfS8qaSovCisgIC8vIGkgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBsZWZ0bW9zdCBkaWdpdCBwbGFjZWQKKyAgbWFudD1uZXcgYnl0ZVsxOS1pXTsKKyAge2k9KDE5LWkpLTE7aTpmb3IoOztpLS0peworICAgbWFudFtpXT0oYnl0ZSktKCgoYnl0ZSkobnVtJTEwKSkpOworICAgbnVtPW51bS8xMDsKKyAgIGlmIChudW09PTApIAorICAgIGJyZWFrIGk7CisgICB9CisgIH0vKmkqLworICByZXR1cm47CisgIH0KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZnJvbSBhIDxjb2RlPlN0cmluZzwvY29kZT4uCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZyb20gdGhlIHBhcmFtZXRlciwgd2hpY2ggbXVzdAorICAqIG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPiBhbmQgbXVzdCByZXByZXNlbnQgYSB2YWxpZCA8aT5udW1iZXI8L2k+LAorICAqIGFzIGRlc2NyaWJlZCBmb3JtYWxseSBpbiB0aGUgZG9jdW1lbnRhdGlvbiByZWZlcnJlZCB0bworICAqIHtAbGluayBCaWdEZWNpbWFsIGFib3ZlfS4KKyAgKiA8cD4KKyAgKiBJbiBzdW1tYXJ5LCBudW1iZXJzIGluIDxjb2RlPlN0cmluZzwvY29kZT4gZm9ybSBtdXN0IGhhdmUgYXQgbGVhc3QKKyAgKiBvbmUgZGlnaXQsIG1heSBoYXZlIGEgbGVhZGluZyBzaWduLCBtYXkgaGF2ZSBhIGRlY2ltYWwgcG9pbnQsIGFuZAorICAqIGV4cG9uZW50aWFsIG5vdGF0aW9uIG1heSBiZSB1c2VkLiAgVGhleSBmb2xsb3cgY29udmVudGlvbmFsIHN5bnRheCwKKyAgKiBhbmQgbWF5IG5vdCBjb250YWluIGJsYW5rcy4KKyAgKiA8cD4KKyAgKiBTb21lIHZhbGlkIHN0cmluZ3MgZnJvbSB3aGljaCBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG1pZ2h0CisgICogYmUgY29uc3RydWN0ZWQgYXJlOgorICAqIDxwcmU+CisgICogICAgICAgIjAiICAgICAgICAgLS0gWmVybworICAqICAgICAgIjEyIiAgICAgICAgIC0tIEEgd2hvbGUgbnVtYmVyCisgICogICAgICItNzYiICAgICAgICAgLS0gQSBzaWduZWQgd2hvbGUgbnVtYmVyCisgICogICAgICAiMTIuNzAiICAgICAgLS0gU29tZSBkZWNpbWFsIHBsYWNlcworICAqICAgICAiKzAuMDAzIiAgICAgIC0tIFBsdXMgc2lnbiBpcyBhbGxvd2VkCisgICogICAgICAiMTcuIiAgICAgICAgLS0gVGhlIHNhbWUgYXMgMTcKKyAgKiAgICAgICAgIi41IiAgICAgICAtLSBUaGUgc2FtZSBhcyAwLjUKKyAgKiAgICAgICI0RSs5IiAgICAgICAtLSBFeHBvbmVudGlhbCBub3RhdGlvbgorICAqICAgICAgICIwLjczZS03IiAgIC0tIEV4cG9uZW50aWFsIG5vdGF0aW9uCisgICogPC9wcmU+CisgICogPHA+CisgICogKEV4cG9uZW50aWFsIG5vdGF0aW9uIG1lYW5zIHRoYXQgdGhlIG51bWJlciBpbmNsdWRlcyBhbiBvcHRpb25hbAorICAqIHNpZ24gYW5kIGEgcG93ZXIgb2YgdGVuIGZvbGxvd2luZyBhbiAnPC9jb2RlPkU8L2NvZGU+JyB0aGF0CisgICogaW5kaWNhdGVzIGhvdyB0aGUgZGVjaW1hbCBwb2ludCB3aWxsIGJlIHNoaWZ0ZWQuICBUaHVzIHRoZQorICAqIDxjb2RlPiI0RSs5IjwvY29kZT4gYWJvdmUgaXMganVzdCBhIHNob3J0IHdheSBvZiB3cml0aW5nCisgICogPGNvZGU+NDAwMDAwMDAwMDwvY29kZT4sIGFuZCB0aGUgPGNvZGU+IjAuNzNlLTciPC9jb2RlPiBpcyBzaG9ydAorICAqIGZvciA8Y29kZT4wLjAwMDAwMDA3MzwvY29kZT4uKQorICAqIDxwPgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBTdHJpbmcgaXMgaW4gYQorICAqIHN0YW5kYXJkIGZvcm0sIHdpdGggbm8gYmxhbmtzLCBhcyB0aG91Z2ggdGhlCisgICoge0BsaW5rICNhZGQoQmlnRGVjaW1hbCl9IG1ldGhvZCBoYWQgYmVlbiB1c2VkIHRvIGFkZCB6ZXJvIHRvIHRoZQorICAqIG51bWJlciB3aXRoIHVubGltaXRlZCBwcmVjaXNpb24uCisgICogSWYgdGhlIHN0cmluZyB1c2VzIGV4cG9uZW50aWFsIG5vdGF0aW9uICh0aGF0IGlzLCBpbmNsdWRlcyBhbgorICAqIDxjb2RlPmU8L2NvZGU+IG9yIGFuIDxjb2RlPkU8L2NvZGU+KSwgdGhlbiB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBudW1iZXIgd2lsbCBiZSBleHByZXNzZWQgaW4gc2NpZW50aWZpYworICAqIG5vdGF0aW9uICh3aGVyZSB0aGUgcG93ZXIgb2YgdGVuIGlzIGFkanVzdGVkIHNvIHRoZXJlIGlzIGEgc2luZ2xlCisgICogbm9uLXplcm8gZGlnaXQgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwgcG9pbnQpOyBpbiB0aGlzIGNhc2UgaWYKKyAgKiB0aGUgbnVtYmVyIGlzIHplcm8gdGhlbiBpdCB3aWxsIGJlIGV4cHJlc3NlZCBhcyB0aGUgc2luZ2xlIGRpZ2l0IDAsCisgICogYW5kIGlmIG5vbi16ZXJvIGl0IHdpbGwgaGF2ZSBhbiBleHBvbmVudCB1bmxlc3MgdGhhdCBleHBvbmVudCB3b3VsZAorICAqIGJlIDAuICBUaGUgZXhwb25lbnQgbXVzdCBmaXQgaW4gbmluZSBkaWdpdHMgYm90aCBiZWZvcmUgYW5kIGFmdGVyIGl0CisgICogaXMgZXhwcmVzc2VkIGluIHNjaWVudGlmaWMgbm90YXRpb24uCisgICogPHA+CisgICogQW55IGRpZ2l0cyBpbiB0aGUgcGFyYW1ldGVyIG11c3QgYmUgZGVjaW1hbDsgdGhhdCBpcywKKyAgKiA8Y29kZT5DaGFyYWN0ZXIuZGlnaXQoYywgMTApPC9jb2RlPiAod2hlcmUgPC9jb2RlPmM8L2NvZGU+IGlzIHRoZQorICAqIGNoYXJhY3RlciBpbiBxdWVzdGlvbikgd291bGQgbm90IHJldHVybiAtMS4KKyAgKgorICAqIEBwYXJhbSBzdHJpbmcgVGhlIDxjb2RlPlN0cmluZzwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQKKyAgKiBudW1iZXIuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyBzdHJpbmcpeworICB0aGlzKHN0cmluZy50b0NoYXJBcnJheSgpLDAsc3RyaW5nLmxlbmd0aCgpKTsKKyAgcmV0dXJuO30KKworIC8qIDxzZ21sPiBNYWtlIGEgZGVmYXVsdCBCaWdEZWNpbWFsIG9iamVjdCBmb3IgbG9jYWwgdXNlLiA8L3NnbWw+ICovCisgCisgcHJpdmF0ZSBCaWdEZWNpbWFsKCl7c3VwZXIoKTsKKyAgcmV0dXJuOworICB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogT3BlcmF0b3IgbWV0aG9kcyBbbWV0aG9kcyB3aGljaCB0YWtlIGEgY29udGV4dCBwYXJhbWV0ZXJdICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGFic29sdXRlCisgICogdmFsdWUgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2FicyhNYXRoQ29udGV4dCl9LCB3aGVyZSB0aGUgY29udGV4dCBpcworICAqIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwKKyAgKiBiZSA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+CisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGFic29sdXRlCisgICogICAgICAgICB2YWx1ZSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYWJzKCl7CisgIHJldHVybiB0aGlzLmFicyhwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBhYnNvbHV0ZSB2YWx1ZQorICAqIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogPHA+CisgICogSWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIHplcm8gb3IgcG9zaXRpdmUsIHRoZW4gdGhlIHNhbWUgcmVzdWx0IGFzCisgICogaW52b2tpbmcgdGhlIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9IG1ldGhvZCB3aXRoIHRoZSBzYW1lCisgICogcGFyYW1ldGVyIGlzIHJldHVybmVkLgorICAqIE90aGVyd2lzZSwgdGhlIHNhbWUgcmVzdWx0IGFzIGludm9raW5nIHRoZQorICAqIHtAbGluayAjbmVnYXRlKE1hdGhDb250ZXh0KX0gbWV0aG9kIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVyIGlzCisgICogcmV0dXJuZWQuCisgICoKKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUKKyAgKiAgICAgICAgICAgICB2YWx1ZSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYWJzKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaWYgKHRoaXMuaW5kPT1pc25lZykgCisgICByZXR1cm4gdGhpcy5uZWdhdGUoc2V0KTsKKyAgcmV0dXJuIHRoaXMucGx1cyhzZXQpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT50aGlzK3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNhZGQoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIHRoZSBtYXhpbXVtIG9mIHRoZSBzY2FsZXMgb2YgdGhlIHR3byBvcGVyYW5kcy4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBhZGRpdGlvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcytyaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYWRkKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5hZGQocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgPGNvZGU+dGhpcytyaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIGFkZGl0aW9uICg8Yj48Y29kZT4rPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBhZGRpdGlvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMrcmhzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFkZChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxoczsKKyAgaW50IHJlcWRpZzsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgYnl0ZSB1c2VsW107CisgIGludCB1c2VsbGVuOworICBieXRlIHVzZXJbXTsKKyAgaW50IHVzZXJsZW47CisgIGludCBuZXdsZW49MDsKKyAgaW50IHRsZW49MDsKKyAgaW50IG11bHQ9MDsKKyAgYnl0ZSB0W109bnVsbDsKKyAgaW50IGlhPTA7CisgIGludCBpYj0wOworICBpbnQgZWE9MDsKKyAgaW50IGViPTA7CisgIGJ5dGUgY2E9MDsKKyAgYnl0ZSBjYj0wOworICAvKiBkZXRlcm1pbmUgcmVxdWVzdGVkIGRpZ2l0cyBhbmQgZm9ybSAqLworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICBsaHM9dGhpczsgLy8gbmFtZSBmb3IgY2xhcml0eSBhbmQgcHJveHkKKyAgCisgIC8qIFF1aWNrIGV4aXQgZm9yIGFkZCBmbG9hdGluZyAwICovCisgIC8vIHBsdXMoKSB3aWxsIG9wdGltaXplIHRvIHJldHVybiBzYW1lIG9iamVjdCBpZiBwb3NzaWJsZQorICBpZiAobGhzLmluZD09MCkgCisgICBpZiAoc2V0LmZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgIHJldHVybiByaHMucGx1cyhzZXQpOworICBpZiAocmhzLmluZD09MCkgCisgICBpZiAoc2V0LmZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgIHJldHVybiBsaHMucGx1cyhzZXQpOworICAKKyAgLyogUHJlcGFyZSBudW1iZXJzIChyb3VuZCwgdW5sZXNzIHVubGltaXRlZCBwcmVjaXNpb24pICovCisgIHJlcWRpZz1zZXQuZGlnaXRzOyAvLyBsb2NhbCBjb3B5IChoZWF2aWx5IHVzZWQpCisgIGlmIChyZXFkaWc+MCkgCisgICB7CisgICAgaWYgKGxocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICBsaHM9Y2xvbmUobGhzKS5yb3VuZChzZXQpOworICAgIGlmIChyaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgcmhzPWNsb25lKHJocykucm91bmQoc2V0KTsKKyAgIC8vIFt3ZSBjb3VsZCByZXVzZSB0aGUgbmV3IExIUyBmb3IgcmVzdWx0IGluIHRoaXMgY2FzZV0KKyAgIH0KKyAgCisgIHJlcz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCk7IC8vIGJ1aWxkIHJlc3VsdCBoZXJlCisgIAorICAvKiBOb3cgc2VlIGhvdyBtdWNoIHdlIGhhdmUgdG8gcGFkIG9yIHRydW5jYXRlIGxocyBvciByaHMgaW4gb3JkZXIKKyAgICAgdG8gYWxpZ24gdGhlIG51bWJlcnMuICBJZiBvbmUgbnVtYmVyIGlzIG11Y2ggbGFyZ2VyIHRoYW4gdGhlCisgICAgIG90aGVyLCB0aGVuIHRoZSBzbWFsbGVyIGNhbm5vdCBhZmZlY3QgdGhlIGFuc3dlciBbYnV0IHdlIG1heQorICAgICBzdGlsbCBuZWVkIHRvIHBhZCB3aXRoIHVwIHRvIERJR0lUUyB0cmFpbGluZyB6ZXJvc10uICovCisgIC8vIE5vdGUgc2lnbiBtYXkgYmUgMCBpZiBkaWdpdHMgKHJlcWRpZykgaXMgMAorICAvLyB1c2VsIGFuZCB1c2VyIHdpbGwgYmUgdGhlIGJ5dGUgYXJyYXlzIHBhc3NlZCB0byB0aGUgYWRkZXI7IHdlJ2xsCisgIC8vIHVzZSB0aGVtIG9uIGFsbCBwYXRocyBleGNlcHQgcXVpY2sgZXhpdHMKKyAgdXNlbD1saHMubWFudDsKKyAgdXNlbGxlbj1saHMubWFudC5sZW5ndGg7CisgIHVzZXI9cmhzLm1hbnQ7CisgIHVzZXJsZW49cmhzLm1hbnQubGVuZ3RoOworICB7cGFkZGVyOmRvey8qc2VsZWN0Ki8KKyAgaWYgKGxocy5leHA9PXJocy5leHApCisgICB7Lyogbm8gcGFkZGluZyBuZWVkZWQgKi8KKyAgICAvLyBUaGlzIGlzIHRoZSBtb3N0IGNvbW1vbiwgYW5kIGZhc3Rlc3QsIHBhdGgKKyAgICByZXMuZXhwPWxocy5leHA7CisgICB9CisgIGVsc2UgaWYgKGxocy5leHA+cmhzLmV4cCkKKyAgIHsgLy8gbmVlZCB0byBwYWQgbGhzIGFuZC9vciB0cnVuY2F0ZSByaHMKKyAgICBuZXdsZW49KHVzZWxsZW4rbGhzLmV4cCktcmhzLmV4cDsKKyAgICAvKiBJZiwgYWZ0ZXIgcGFkLCBsaHMgd291bGQgYmUgbG9uZ2VyIHRoYW4gcmhzIGJ5IGRpZ2l0cysxIG9yCisgICAgICAgbW9yZSAoYW5kIGRpZ2l0cz4wKSB0aGVuIHJocyBjYW5ub3QgYWZmZWN0IGFuc3dlciwgc28gd2Ugb25seQorICAgICAgIG5lZWQgdG8gcGFkIHVwIHRvIGEgbGVuZ3RoIG9mIERJR0lUUysxLiAqLworICAgIGlmIChuZXdsZW4+PSgodXNlcmxlbityZXFkaWcpKzEpKSAKKyAgICAgaWYgKHJlcWRpZz4wKSAKKyAgICAgIHsKKyAgICAgICAvLyBMSFMgaXMgc3VmZmljaWVudAorICAgICAgIHJlcy5tYW50PXVzZWw7CisgICAgICAgcmVzLmV4cD1saHMuZXhwOworICAgICAgIHJlcy5pbmQ9bGhzLmluZDsKKyAgICAgICBpZiAodXNlbGxlbjxyZXFkaWcpIAorICAgICAgICB7IC8vIG5lZWQgMCBwYWRkaW5nCisgICAgICAgICByZXMubWFudD1leHRlbmQobGhzLm1hbnQscmVxZGlnKTsKKyAgICAgICAgIHJlcy5leHA9cmVzLmV4cC0oKHJlcWRpZy11c2VsbGVuKSk7CisgICAgICAgIH0KKyAgICAgICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICAgICAgfQorICAgIC8vIFJIUyBtYXkgYWZmZWN0IHJlc3VsdAorICAgIHJlcy5leHA9cmhzLmV4cDsgLy8gZXhwZWN0ZWQgZmluYWwgZXhwb25lbnQKKyAgICBpZiAobmV3bGVuPihyZXFkaWcrMSkpIAorICAgICBpZiAocmVxZGlnPjApIAorICAgICAgeworICAgICAgIC8vIExIUyB3aWxsIGJlIG1heDsgUkhTIHRydW5jYXRlZAorICAgICAgIHRsZW49KG5ld2xlbi1yZXFkaWcpLTE7IC8vIHRydW5jYXRpb24gbGVuZ3RoCisgICAgICAgdXNlcmxlbj11c2VybGVuLXRsZW47CisgICAgICAgcmVzLmV4cD1yZXMuZXhwK3RsZW47CisgICAgICAgbmV3bGVuPXJlcWRpZysxOworICAgICAgfQorICAgIGlmIChuZXdsZW4+dXNlbGxlbikgCisgICAgIHVzZWxsZW49bmV3bGVuOyAvLyBuZWVkIHRvIHBhZCBMSFMKKyAgIH0KKyAgZWxzZXsgLy8gbmVlZCB0byBwYWQgcmhzIGFuZC9vciB0cnVuY2F0ZSBsaHMKKyAgIG5ld2xlbj0odXNlcmxlbityaHMuZXhwKS1saHMuZXhwOworICAgaWYgKG5ld2xlbj49KCh1c2VsbGVuK3JlcWRpZykrMSkpIAorICAgIGlmIChyZXFkaWc+MCkgCisgICAgIHsKKyAgICAgIC8vIFJIUyBpcyBzdWZmaWNpZW50CisgICAgICByZXMubWFudD11c2VyOworICAgICAgcmVzLmV4cD1yaHMuZXhwOworICAgICAgcmVzLmluZD1yaHMuaW5kOworICAgICAgaWYgKHVzZXJsZW48cmVxZGlnKSAKKyAgICAgICB7IC8vIG5lZWQgMCBwYWRkaW5nCisgICAgICAgIHJlcy5tYW50PWV4dGVuZChyaHMubWFudCxyZXFkaWcpOworICAgICAgICByZXMuZXhwPXJlcy5leHAtKChyZXFkaWctdXNlcmxlbikpOworICAgICAgIH0KKyAgICAgIHJldHVybiByZXMuZmluaXNoKHNldCxmYWxzZSk7CisgICAgIH0KKyAgIC8vIExIUyBtYXkgYWZmZWN0IHJlc3VsdAorICAgcmVzLmV4cD1saHMuZXhwOyAvLyBleHBlY3RlZCBmaW5hbCBleHBvbmVudAorICAgaWYgKG5ld2xlbj4ocmVxZGlnKzEpKSAKKyAgICBpZiAocmVxZGlnPjApIAorICAgICB7CisgICAgICAvLyBSSFMgd2lsbCBiZSBtYXg7IExIUyB0cnVuY2F0ZWQKKyAgICAgIHRsZW49KG5ld2xlbi1yZXFkaWcpLTE7IC8vIHRydW5jYXRpb24gbGVuZ3RoCisgICAgICB1c2VsbGVuPXVzZWxsZW4tdGxlbjsKKyAgICAgIHJlcy5leHA9cmVzLmV4cCt0bGVuOworICAgICAgbmV3bGVuPXJlcWRpZysxOworICAgICB9CisgICBpZiAobmV3bGVuPnVzZXJsZW4pIAorICAgIHVzZXJsZW49bmV3bGVuOyAvLyBuZWVkIHRvIHBhZCBSSFMKKyAgfQorICB9d2hpbGUoZmFsc2UpO30vKnBhZGRlciovCisgIAorICAvKiBPSywgd2UgaGF2ZSBhbGlnbmVkIG1hbnRpc3Nhcy4gIE5vdyBhZGQgb3Igc3VidHJhY3QuICovCisgIC8vIDE5OTguMDYuMjcgU2lnbiBtYXkgbm93IGJlIDAgW2UuZy4sIDAuMDAwXSAuLiB0cmVhdCBhcyBwb3NpdGl2ZQorICAvLyAxOTk5LjA1LjI3IEFsbG93IGZvciAwMCBvbiBsaHMgW2lzIG5vdCBsYXJnZXIgdGhhbiAyIG9uIHJoc10KKyAgLy8gMTk5OS4wNy4xMCBBbGxvdyBmb3IgMDAgb24gcmhzIFtpcyBub3QgbGFyZ2VyIHRoYW4gMiBvbiByaHNdCisgIGlmIChsaHMuaW5kPT1pc3plcm8pIAorICAgcmVzLmluZD1pc3BvczsKKyAgZWxzZSAKKyAgIHJlcy5pbmQ9bGhzLmluZDsgLy8gbGlrZWx5IHNpZ24sIGFsbCBwYXRocworICBpZiAoKChsaHMuaW5kPT1pc25lZyk/MTowKT09KChyaHMuaW5kPT1pc25lZyk/MTowKSkgIC8vIHNhbWUgc2lnbiwgMCBub24tbmVnYXRpdmUKKyAgIG11bHQ9MTsKKyAgZWxzZSAKKyAgIHtzaWduZGlmZjpkb3sgLy8gZGlmZmVyZW50IHNpZ25zLCBzbyBzdWJ0cmFjdGlvbiBpcyBuZWVkZWQKKyAgICBtdWx0PS0xOyAvLyB3aWxsIGNhdXNlIHN1YnRyYWN0CisgICAgLyogQmVmb3JlIHdlIGNhbiBzdWJ0cmFjdCB3ZSBtdXN0IGRldGVybWluZSB3aGljaCBpcyB0aGUgbGFyZ2VyLAorICAgICAgIGFzIG91ciBhZGQvc3VidHJhY3Qgcm91dGluZSBvbmx5IGhhbmRsZXMgbm9uLW5lZ2F0aXZlIHJlc3VsdHMKKyAgICAgICBzbyB3ZSBtYXkgbmVlZCB0byBzd2FwIHRoZSBvcGVyYW5kcy4gKi8KKyAgICB7c3dhcHRlc3Q6ZG97LypzZWxlY3QqLworICAgIGlmIChyaHMuaW5kPT1pc3plcm8peworICAgICAvLyBvcmlnaW5hbCBBIGJpZ2dlcgorICAgIH1lbHNlIGlmICgodXNlbGxlbjx1c2VybGVuKXwobGhzLmluZD09aXN6ZXJvKSkKKyAgICAgeyAvLyBvcmlnaW5hbCBCIGJpZ2dlcgorICAgICAgdD11c2VsOworICAgICAgdXNlbD11c2VyOworICAgICAgdXNlcj10OyAvLyBzd2FwCisgICAgICB0bGVuPXVzZWxsZW47CisgICAgICB1c2VsbGVuPXVzZXJsZW47CisgICAgICB1c2VybGVuPXRsZW47IC8vIC4uCisgICAgICByZXMuaW5kPShieXRlKS1yZXMuaW5kOyAvLyBhbmQgc2V0IHNpZ24KKyAgICAgfQorICAgIGVsc2UgaWYgKHVzZWxsZW4+dXNlcmxlbil7CisgICAgIC8vIG9yaWdpbmFsIEEgYmlnZ2VyCisgICAgfWVsc2V7CisgICAgIHsvKiBsb2dpY2FsIGxlbmd0aHMgdGhlIHNhbWUgKi8gLy8gbmVlZCBjb21wYXJlCisgICAgICAvKiBtYXkgc3RpbGwgbmVlZCB0byBzd2FwOiBjb21wYXJlIHRoZSBzdHJpbmdzICovCisgICAgICBpYT0wOworICAgICAgaWI9MDsKKyAgICAgIGVhPXVzZWwubGVuZ3RoLTE7CisgICAgICBlYj11c2VyLmxlbmd0aC0xOworICAgICAge2NvbXBhcmU6Zm9yKDs7KXsKKyAgICAgICBpZiAoaWE8PWVhKSAKKyAgICAgICAgY2E9dXNlbFtpYV07CisgICAgICAgZWxzZSAKKyAgICAgICAgeworICAgICAgICAgaWYgKGliPmViKSAKKyAgICAgICAgICB7LyogaWRlbnRpY2FsICovCisgICAgICAgICAgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgICAgICAgICByZXR1cm4gWkVSTzsKKyAgICAgICAgICAgLy8gW2lmIFBMQUlOIHdlIG11c3QgZG8gdGhlIHN1YnRyYWN0LCBpbiBjYXNlIG9mIDAuMDAwIHJlc3VsdHNdCisgICAgICAgICAgIGJyZWFrIGNvbXBhcmU7CisgICAgICAgICAgfQorICAgICAgICAgY2E9KGJ5dGUpMDsKKyAgICAgICAgfQorICAgICAgIGlmIChpYjw9ZWIpIAorICAgICAgICBjYj11c2VyW2liXTsKKyAgICAgICBlbHNlIAorICAgICAgICBjYj0oYnl0ZSkwOworICAgICAgIGlmIChjYSE9Y2IpIAorICAgICAgICB7CisgICAgICAgICBpZiAoY2E8Y2IpIAorICAgICAgICAgIHsvKiBzd2FwIG5lZWRlZCAqLworICAgICAgICAgICB0PXVzZWw7CisgICAgICAgICAgIHVzZWw9dXNlcjsKKyAgICAgICAgICAgdXNlcj10OyAvLyBzd2FwCisgICAgICAgICAgIHRsZW49dXNlbGxlbjsKKyAgICAgICAgICAgdXNlbGxlbj11c2VybGVuOworICAgICAgICAgICB1c2VybGVuPXRsZW47IC8vIC4uCisgICAgICAgICAgIHJlcy5pbmQ9KGJ5dGUpLXJlcy5pbmQ7CisgICAgICAgICAgfQorICAgICAgICAgYnJlYWsgY29tcGFyZTsKKyAgICAgICAgfQorICAgICAgIC8qIG1hbnRpc3NhcyB0aGUgc2FtZSwgc28gZmFyICovCisgICAgICAgaWErKzsKKyAgICAgICBpYisrOworICAgICAgIH0KKyAgICAgIH0vKmNvbXBhcmUqLworICAgICB9IC8vIGxlbmd0aHMgdGhlIHNhbWUKKyAgICB9CisgICAgfXdoaWxlKGZhbHNlKTt9Lypzd2FwdGVzdCovCisgICB9d2hpbGUoZmFsc2UpO30vKnNpZ25kaWZmKi8KKyAgCisgIC8qIGhlcmUsIEEgaXMgPiBCIGlmIHN1YnRyYWN0aW5nICovCisgIC8vIGFkZCBbQStCKjFdIG9yIHN1YnRyYWN0IFtBKyhCKi0xKV0KKyAgcmVzLm1hbnQ9Ynl0ZWFkZHN1Yih1c2VsLHVzZWxsZW4sdXNlcix1c2VybGVuLG11bHQsZmFsc2UpOworICAvLyBbcmV1c2UgcG9zc2libGUgb25seSBhZnRlciBjaG9wOyBhY2NvdW50aW5nIG1ha2VzIG5vdCB3b3J0aHdoaWxlXQorICAKKyAgLy8gRmluaXNoKCkgcm91bmRzIGJlZm9yZSBzdHJpcHBpbmcgbGVhZGluZyAwJ3MsIHRoZW4gc2V0cyBmb3JtLCBldGMuCisgIHJldHVybiByZXMuZmluaXNoKHNldCxmYWxzZSk7CisgIH0KKworIC8qKgorICAqIENvbXBhcmVzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYW5vdGhlciwgdXNpbmcgdW5saW1pdGVkCisgICogcHJlY2lzaW9uLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjY29tcGFyZVRvKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHJldHVybiAgICAgQW4gPGNvZGU+aW50PC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyAtMSwgMCwgb3IgMSBhcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXM8L2NvZGU+IGlzIG51bWVyaWNhbGx5IGxlc3MgdGhhbiwgZXF1YWwgdG8sCisgICogICAgICAgICAgICAgb3IgZ3JlYXRlciB0aGFuIDxjb2RlPnJoczwvY29kZT4uCisgICogQHNlZSAgICAjY29tcGFyZVRvKE9iamVjdCkKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGNvbXBhcmVUbyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMuY29tcGFyZVRvKHJocyxwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogQ29tcGFyZXMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhbm90aGVyLgorICAqIDxwPgorICAqIEltcGxlbWVudHMgbnVtZXJpYyBjb21wYXJpc29uLAorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIGEgcmVzdWx0IG9mIHR5cGUgPGNvZGU+aW50PC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgcmVzdWx0IHdpbGwgYmU6CisgICogPHRhYmxlIGNlbGxwYWRkaW5nPTI+PHRyPgorICAqIDx0ZCBhbGlnbj1yaWdodD48Yj4tMTwvYj48L3RkPgorICAqIDx0ZD5pZiB0aGUgY3VycmVudCBvYmplY3QgaXMgbGVzcyB0aGFuIHRoZSBmaXJzdCBwYXJhbWV0ZXI8L3RkPgorICAqIDwvdHI+PHRyPgorICAqIDx0ZCBhbGlnbj1yaWdodD48Yj4wPC9iPjwvdGQ+CisgICogPHRkPmlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBlcXVhbCB0byB0aGUgZmlyc3QgcGFyYW1ldGVyPC90ZD4KKyAgKiA8L3RyPjx0cj4KKyAgKiA8dGQgYWxpZ249cmlnaHQ+PGI+MTwvYj48L3RkPgorICAqIDx0ZD5pZiB0aGUgY3VycmVudCBvYmplY3QgaXMgZ3JlYXRlciB0aGFuIHRoZSBmaXJzdCBwYXJhbWV0ZXIuPC90ZD4KKyAgKiA8L3RyPjwvdGFibGU+CisgICogPHA+CisgICogQSB7QGxpbmsgI2NvbXBhcmVUbyhPYmplY3QpfSBtZXRob2QgaXMgYWxzbyBwcm92aWRlZC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBbiA8Y29kZT5pbnQ8L2NvZGU+IHdob3NlIHZhbHVlIGlzIC0xLCAwLCBvciAxIGFzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4gaXMgbnVtZXJpY2FsbHkgbGVzcyB0aGFuLCBlcXVhbCB0bywKKyAgKiAgICAgICAgICAgICBvciBncmVhdGVyIHRoYW4gPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc2VlICAgICNjb21wYXJlVG8oT2JqZWN0KQorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgY29tcGFyZVRvKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBpbnQgdGhpc2xlbmd0aD0wOworICBpbnQgaT0wOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbmV3cmhzOworICAvLyByaHM9bnVsbCB3aWxsIHJhaXNlIE51bGxQb2ludGVyRXhjZXB0aW9uLCBhcyBwZXIgQ29tcGFyYWJsZSBpbnRlcmZhY2UKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgLy8gW2FkZCB3aWxsIHJlY2hlY2sgaW4gc2xvd3BhdGggY2FzZXMgLi4gYnV0IHdvdWxkIHJlcG9ydCAtcmhzXQorICBpZiAoKHRoaXMuaW5kPT1yaHMuaW5kKSYodGhpcy5leHA9PXJocy5leHApKSAKKyAgIHsKKyAgICAvKiBzaWduICYgZXhwb25lbnQgdGhlIHNhbWUgW3ZlcnkgY29tbW9uXSAqLworICAgIHRoaXNsZW5ndGg9dGhpcy5tYW50Lmxlbmd0aDsKKyAgICBpZiAodGhpc2xlbmd0aDxyaHMubWFudC5sZW5ndGgpIAorICAgICByZXR1cm4gKGJ5dGUpLXRoaXMuaW5kOworICAgIGlmICh0aGlzbGVuZ3RoPnJocy5tYW50Lmxlbmd0aCkgCisgICAgIHJldHVybiB0aGlzLmluZDsKKyAgICAvKiBsZW5ndGhzIGFyZSB0aGUgc2FtZTsgd2UgY2FuIGRvIGEgc3RyYWlnaHQgbWFudGlzc2EgY29tcGFyZQorICAgICAgIHVubGVzcyBtYXliZSByb3VuZGluZyBbcm91bmRpbmcgaXMgdmVyeSB1bnVzdWFsXSAqLworICAgIGlmICgodGhpc2xlbmd0aDw9c2V0LmRpZ2l0cyl8KHNldC5kaWdpdHM9PTApKSAKKyAgICAgeworICAgICAge2ludCAkNj10aGlzbGVuZ3RoO2k9MDtpOmZvcig7JDY+MDskNi0tLGkrKyl7CisgICAgICAgaWYgKHRoaXMubWFudFtpXTxyaHMubWFudFtpXSkgCisgICAgICAgIHJldHVybiAoYnl0ZSktdGhpcy5pbmQ7CisgICAgICAgaWYgKHRoaXMubWFudFtpXT5yaHMubWFudFtpXSkgCisgICAgICAgIHJldHVybiB0aGlzLmluZDsKKyAgICAgICB9CisgICAgICB9LyppKi8KKyAgICAgIHJldHVybiAwOyAvLyBpZGVudGljYWwKKyAgICAgfQorICAgLyogZHJvcCB0aHJvdWdoIGZvciBmdWxsIGNvbXBhcmlzb24gKi8KKyAgIH0KKyAgZWxzZSAKKyAgIHsKKyAgICAvKiBNb3JlIGZhc3RwYXRocyBwb3NzaWJsZSAqLworICAgIGlmICh0aGlzLmluZDxyaHMuaW5kKSAKKyAgICAgcmV0dXJuIC0xOworICAgIGlmICh0aGlzLmluZD5yaHMuaW5kKSAKKyAgICAgcmV0dXJuIDE7CisgICB9CisgIC8qIGNhcnJ5IG91dCBhIHN1YnRyYWN0IHRvIG1ha2UgdGhlIGNvbXBhcmlzb24gKi8KKyAgbmV3cmhzPWNsb25lKHJocyk7IC8vIHNhZmUgY29weQorICBuZXdyaHMuaW5kPShieXRlKS1uZXdyaHMuaW5kOyAvLyBwcmVwYXJlIHRvIHN1YnRyYWN0CisgIHJldHVybiB0aGlzLmFkZChuZXdyaHMsc2V0KS5pbmQ7IC8vIGFkZCwgYW5kIHJldHVybiBzaWduIG9mIHJlc3VsdAorICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNkaXZpZGUoQmlnRGVjaW1hbCwgaW50KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSByb3VuZGluZyBtb2RlIGlzIHtAbGluayBNYXRoQ29udGV4dCNST1VORF9IQUxGX1VQfS4KKyAgKgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiB0aGUgc2FtZSBhcyB0aGUgc2NhbGUgb2YgdGhlIGN1cnJlbnQgb2JqZWN0LCBpZiB0aGUgbGF0dGVyIHdlcmUKKyAgKiBmb3JtYXR0ZWQgd2l0aG91dCBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBkaXZpc2lvbi4KKyAgKiBAcmV0dXJuICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdEJyxyaHMscGxhaW5NQywtMSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYyBhbmQgYQorICAqIHJvdW5kaW5nIG1vZGUuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNkaXZpZGUoQmlnRGVjaW1hbCwgaW50LCBpbnQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPiwgYW5kCisgICogdGhlIHRoaXJkIGlzIDxjb2RlPnJvdW5kPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsCisgICogdGhlcmVmb3JlIGJlIHRoZSBzYW1lIGFzIHRoZSBzY2FsZSBvZiB0aGUgY3VycmVudCBvYmplY3QsIGlmIHRoZQorICAqIGxhdHRlciB3ZXJlIGZvcm1hdHRlZCB3aXRob3V0IGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAqIDxwPgorICAqIEBwYXJhbSAgcmhzICAgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgICB0aGUgZGl2aXNpb24uCisgICogQHBhcmFtICByb3VuZCBUaGUgPGNvZGU+aW50PC9jb2RlPiByb3VuZGluZyBtb2RlIHRvIGJlIHVzZWQgZm9yCisgICogICAgICAgICAgICAgICB0aGUgZGl2aXNpb24gKHNlZSB0aGUge0BsaW5rIE1hdGhDb250ZXh0fSBjbGFzcykuCisgICogQHJldHVybiAgICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgICA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMKKyAgKiAgICAgICAgICAgICAgIGFuZCB0aGUgc3BlY2lmaWVkIHJvdW5kaW5nIG1vZGUuCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIG5vdCBhCisgICogICAgICAgICAgICAgICB2YWxpZCByb3VuZGluZyBtb2RlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyB7QGxpbmsKKyAgKiAgICAgICAgICAgICAgIE1hdGhDb250ZXh0I1JPVU5EX1VOTkVDRVNTQVJZfSBhbmQKKyAgKiAgICAgICAgICAgICAgIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4gaXMgaW5zdWZmaWNpZW50IHRvCisgICogICAgICAgICAgICAgICByZXByZXNlbnQgdGhlIHJlc3VsdCBleGFjdGx5LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsaW50IHJvdW5kKXsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQ7CisgIHNldD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2Uscm91bmQpOyAvLyBbY2hlY2tzIHJvdW5kLCB0b29dCisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdEJyxyaHMsc2V0LC0xKTsgLy8gdGFrZSBzY2FsZSBmcm9tIExIUworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgYW5kIGEKKyAgKiBnaXZlbiBzY2FsZSBhbmQgcm91bmRpbmcgbW9kZS4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2RpdmlkZShCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTiwgZmFsc2UsIHJvdW5kKTwvY29kZT4sCisgICogZXhjZXB0IHRoYXQgdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIHRvIGJlIHVzZWQKKyAgKiBmb3IgdGhlIHJlc3VsdCBpcyBleHBsaWNpdCByYXRoZXIgdGhhbiBiZWluZyB0YWtlbiBmcm9tCisgICogPGNvZGU+dGhpczwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIHRoZSBzYW1lIGFzIHRoZSBzY2FsZSBvZiB0aGUgY3VycmVudCBvYmplY3QsIGlmIHRoZSBsYXR0ZXIgd2VyZQorICAqIGZvcm1hdHRlZCB3aXRob3V0IGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAqIDxwPgorICAqIEBwYXJhbSAgcmhzICAgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgICB0aGUgZGl2aXNpb24uCisgICogQHBhcmFtICBzY2FsZSBUaGUgPGNvZGU+aW50PC9jb2RlPiBzY2FsZSB0byBiZSB1c2VkIGZvciB0aGUgcmVzdWx0LgorICAqIEBwYXJhbSAgcm91bmQgVGhlIDxjb2RlPmludDwvY29kZT4gcm91bmRpbmcgbW9kZSB0byBiZSB1c2VkIGZvcgorICAqICAgICAgICAgICAgICAgdGhlIGRpdmlzaW9uIChzZWUgdGhlIHtAbGluayBNYXRoQ29udGV4dH0gY2xhc3MpLgorICAqIEByZXR1cm4gICAgICAgQSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgICAgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljCisgICogICAgICAgICAgICAgICBhbmQgdGhlIHNwZWNpZmllZCByb3VuZGluZyBtb2RlLgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyBub3QgYQorICAqICAgICAgICAgICAgICAgdmFsaWQgcm91bmRpbmcgbW9kZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5zY2FsZTwvY29kZT4gaXMgbmVnYXRpdmUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyB7QGxpbmsKKyAgKiAgICAgICAgICAgICAgIE1hdGhDb250ZXh0I1JPVU5EX1VOTkVDRVNTQVJZfSBhbmQgPGNvZGU+c2NhbGU8L2NvZGU+CisgICogICAgICAgICAgICAgICBpcyBpbnN1ZmZpY2llbnQgdG8gcmVwcmVzZW50IHRoZSByZXN1bHQgZXhhY3RseS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGludCBzY2FsZSxpbnQgcm91bmQpeworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldDsKKyAgaWYgKHNjYWxlPDApIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJOZWdhdGl2ZSBzY2FsZToiKyIgIitzY2FsZSk7CisgIHNldD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2Uscm91bmQpOyAvLyBbY2hlY2tzIHJvdW5kXQorICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnRCcscmhzLHNldCxzY2FsZSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgZGl2aXNpb24gKDxiPjxjb2RlPi88L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGRpdmlzaW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdEJyxyaHMsc2V0LC0xKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRlZ2VyCisgICogcGFydCBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNkaXZpZGVJbnRlZ2VyKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGludGVnZXIgZGl2aXNpb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50ZWdlcgorICAqICAgICAgICAgICAgIHBhcnQgb2YgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaXZpZGVJbnRlZ2VyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICAvLyBzY2FsZSAwIHRvIGRyb3AgLjAwMCB3aGVuIHBsYWluCisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdJJyxyaHMscGxhaW5NQywwKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRlZ2VyCisgICogcGFydCBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgaW50ZWdlciBkaXZpc2lvbiBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgaW50ZWdlciBkaXZpc2lvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50ZWdlcgorICAqICAgICAgICAgICAgIHBhcnQgb2YgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIHRoZSByZXN1bHQgd2lsbCBub3QgZml0IGluIHRoZQorICAqICAgICAgICAgICAgIG51bWJlciBvZiBkaWdpdHMgc3BlY2lmaWVkIGZvciB0aGUgY29udGV4dC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZUludGVnZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIC8vIHNjYWxlIDAgdG8gZHJvcCAuMDAwIHdoZW4gcGxhaW4KKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0knLHJocyxzZXQsMCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIHRoZSBtYXhpbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjbWF4KEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIHRoZSBtYXhpbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbWF4KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5tYXgocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiB0aGUgbWF4aW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBSZXR1cm5zIHRoZSBsYXJnZXIgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IGFuZCB0aGUgZmlyc3QgcGFyYW1ldGVyLgorICAqIDxwPgorICAqIElmIGNhbGxpbmcgdGhlIHtAbGluayAjY29tcGFyZVRvKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0gbWV0aG9kCisgICogd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzIHdvdWxkIHJldHVybiA8Y29kZT4xPC9jb2RlPiBvcgorICAqIDxjb2RlPjA8L2NvZGU+LCB0aGVuIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUKKyAgKiB7QGxpbmsgI3BsdXMoTWF0aENvbnRleHQpfSBtZXRob2Qgb24gdGhlIGN1cnJlbnQgb2JqZWN0ICh1c2luZyB0aGUKKyAgKiBzYW1lIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIpIGlzIHJldHVybmVkLgorICAqIE90aGVyd2lzZSwgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSB7QGxpbmsgI3BsdXMoTWF0aENvbnRleHQpfQorICAqIG1ldGhvZCBvbiB0aGUgZmlyc3QgcGFyYW1ldGVyIG9iamVjdCAodXNpbmcgdGhlIHNhbWUKKyAgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyKSBpcyByZXR1cm5lZC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgdGhlIG1heGltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtYXgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGlmICgodGhpcy5jb21wYXJlVG8ocmhzLHNldCkpPj0wKSAKKyAgIHJldHVybiB0aGlzLnBsdXMoc2V0KTsKKyAgZWxzZSAKKyAgIHJldHVybiByaHMucGx1cyhzZXQpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiB0aGUgbWluaW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI21pbihCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICB0aGUgbWluaW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1pbihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMubWluKHJocyxwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogdGhlIG1pbmltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogPHA+CisgICogUmV0dXJucyB0aGUgc21hbGxlciBvZiB0aGUgY3VycmVudCBvYmplY3QgYW5kIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCisgICogPHA+CisgICogSWYgY2FsbGluZyB0aGUge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSBtZXRob2QKKyAgKiB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMgd291bGQgcmV0dXJuIDxjb2RlPi0xPC9jb2RlPiBvcgorICAqIDxjb2RlPjA8L2NvZGU+LCB0aGVuIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUKKyAgKiB7QGxpbmsgI3BsdXMoTWF0aENvbnRleHQpfSBtZXRob2Qgb24gdGhlIGN1cnJlbnQgb2JqZWN0ICh1c2luZyB0aGUKKyAgKiBzYW1lIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIpIGlzIHJldHVybmVkLgorICAqIE90aGVyd2lzZSwgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSB7QGxpbmsgI3BsdXMoTWF0aENvbnRleHQpfQorICAqIG1ldGhvZCBvbiB0aGUgZmlyc3QgcGFyYW1ldGVyIG9iamVjdCAodXNpbmcgdGhlIHNhbWUKKyAgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyKSBpcyByZXR1cm5lZC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgdGhlIG1pbmltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtaW4oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGlmICgodGhpcy5jb21wYXJlVG8ocmhzLHNldCkpPD0wKSAKKyAgIHJldHVybiB0aGlzLnBsdXMoc2V0KTsKKyAgZWxzZSAKKyAgIHJldHVybiByaHMucGx1cyhzZXQpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT50aGlzKnJoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNhZGQoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIHRoZSBzdW0gb2YgdGhlIHNjYWxlcyBvZiB0aGUgb3BlcmFuZHMsIGlmIHRoZXkgd2VyZSBmb3JtYXR0ZWQKKyAgKiB3aXRob3V0IGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIG11bHRpcGxpY2F0aW9uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzKnJoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtdWx0aXBseShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMubXVsdGlwbHkocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgPGNvZGU+dGhpcypyaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIG11bHRpcGxpY2F0aW9uICg8Yj48Y29kZT4qPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBtdWx0aXBsaWNhdGlvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMqcmhzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG11bHRpcGx5KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBpbnQgcGFkZGluZzsKKyAgaW50IHJlcWRpZzsKKyAgYnl0ZSBtdWx0ZXJbXT1udWxsOworICBieXRlIG11bHRhbmRbXT1udWxsOworICBpbnQgbXVsdGFuZGxlbjsKKyAgaW50IGFjY2xlbj0wOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICBieXRlIGFjY1tdOworICBpbnQgbj0wOworICBieXRlIG11bHQ9MDsKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgbGhzPXRoaXM7IC8vIG5hbWUgZm9yIGNsYXJpdHkgYW5kIHByb3h5CisgIAorICAvKiBQcmVwYXJlIG51bWJlcnMgKHRydW5jYXRlLCB1bmxlc3MgdW5saW1pdGVkIHByZWNpc2lvbikgKi8KKyAgcGFkZGluZz0wOyAvLyB0cmFpbGluZyAwJ3MgdG8gYWRkCisgIHJlcWRpZz1zZXQuZGlnaXRzOyAvLyBsb2NhbCBjb3B5CisgIGlmIChyZXFkaWc+MCkgCisgICB7CisgICAgaWYgKGxocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICBsaHM9Y2xvbmUobGhzKS5yb3VuZChzZXQpOworICAgIGlmIChyaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgcmhzPWNsb25lKHJocykucm91bmQoc2V0KTsKKyAgIC8vIFt3ZSBjb3VsZCByZXVzZSB0aGUgbmV3IExIUyBmb3IgcmVzdWx0IGluIHRoaXMgY2FzZV0KKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiB1bmxpbWl0ZWQgKi8KKyAgICAvLyBmaXhlZCBwb2ludCBhcml0aG1ldGljIHdpbGwgd2FudCBldmVyeSB0cmFpbGluZyAwOyB3ZSBhZGQgdGhlc2UKKyAgICAvLyBhZnRlciB0aGUgY2FsY3VsYXRpb24gcmF0aGVyIHRoYW4gYmVmb3JlLCBmb3Igc3BlZWQuCisgICAgaWYgKGxocy5leHA+MCkgCisgICAgIHBhZGRpbmc9cGFkZGluZytsaHMuZXhwOworICAgIGlmIChyaHMuZXhwPjApIAorICAgICBwYWRkaW5nPXBhZGRpbmcrcmhzLmV4cDsKKyAgIH0KKyAgCisgIC8vIEZvciBiZXN0IHNwZWVkLCBhcyBpbiBETVNSQ04sIHdlIHVzZSB0aGUgc2hvcnRlciBudW1iZXIgYXMgdGhlCisgIC8vIG11bHRpcGxpZXIgYW5kIHRoZSBsb25nZXIgYXMgdGhlIG11bHRpcGxpY2FuZC4KKyAgLy8gMTk5OS4xMi4yMjogV2UgdXNlZCB0byBzcGVjaWFsIGNhc2Ugd2hlbiB0aGUgcmVzdWx0IHdvdWxkIGZpdCBpbgorICAvLyAgICAgICAgICAgICBhIGxvbmcsIGJ1dCB3aXRoIEphdmEgMS4zIHRoaXMgZ2F2ZSBubyBhZHZhbnRhZ2UuCisgIGlmIChsaHMubWFudC5sZW5ndGg8cmhzLm1hbnQubGVuZ3RoKSAKKyAgIHsKKyAgICBtdWx0ZXI9bGhzLm1hbnQ7CisgICAgbXVsdGFuZD1yaHMubWFudDsKKyAgIH0KKyAgZWxzZSAKKyAgIHsKKyAgICBtdWx0ZXI9cmhzLm1hbnQ7CisgICAgbXVsdGFuZD1saHMubWFudDsKKyAgIH0KKyAgCisgIC8qIENhbGN1bGF0ZSBob3cgbG9uZyByZXN1bHQgYnl0ZSBhcnJheSB3aWxsIGJlICovCisgIG11bHRhbmRsZW49KG11bHRlci5sZW5ndGgrbXVsdGFuZC5sZW5ndGgpLTE7IC8vIGVmZmVjdGl2ZSBsZW5ndGgKKyAgLy8gb3B0aW1pemUgZm9yIDc1JSBvZiB0aGUgY2FzZXMgd2hlcmUgYSBjYXJyeSBpcyBleHBlY3RlZC4uLgorICBpZiAoKG11bHRlclswXSptdWx0YW5kWzBdKT45KSAKKyAgIGFjY2xlbj1tdWx0YW5kbGVuKzE7CisgIGVsc2UgCisgICBhY2NsZW49bXVsdGFuZGxlbjsKKyAgCisgIC8qIE5vdyB0aGUgbWFpbiBsb25nIG11bHRpcGxpY2F0aW9uIGxvb3AgKi8KKyAgcmVzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKTsgLy8gd2hlcmUgd2UnbGwgYnVpbGQgcmVzdWx0CisgIGFjYz1uZXcgYnl0ZVthY2NsZW5dOyAvLyBhY2N1bXVsYXRvciwgYWxsIHplcm9zCisgIC8vIDE5OTguMDcuMDE6IGNhbGN1bGF0ZSBmcm9tIGxlZnQgdG8gcmlnaHQgc28gdGhhdCBhY2N1bXVsYXRvciBnb2VzCisgIC8vIHRvIGxpa2VseSBmaW5hbCBsZW5ndGggb24gZmlyc3QgYWRkaXRpb247IHRoaXMgYXZvaWRzIGEgb25lLWRpZ2l0CisgIC8vIGV4dGVuc2lvbiAoYW5kIG9iamVjdCBhbGxvY2F0aW9uKSBlYWNoIHRpbWUgYXJvdW5kIHRoZSBsb29wLgorICAvLyBJbml0aWFsIG51bWJlciB0aGVyZWZvcmUgaGFzIHZpcnR1YWwgemVyb3MgYWRkZWQgdG8gcmlnaHQuCisgIHtpbnQgJDc9bXVsdGVyLmxlbmd0aDtuPTA7bjpmb3IoOyQ3PjA7JDctLSxuKyspeworICAgbXVsdD1tdWx0ZXJbbl07CisgICBpZiAobXVsdCE9MCkgCisgICAgeyAvLyBbb3B0aW1pemF0aW9uXQorICAgICAvLyBhY2N1bXVsYXRlIFthY2N1bXVsYXRvciBpcyByZXVzYWJsZSBhcnJheV0KKyAgICAgYWNjPWJ5dGVhZGRzdWIoYWNjLGFjYy5sZW5ndGgsbXVsdGFuZCxtdWx0YW5kbGVuLG11bHQsdHJ1ZSk7CisgICAgfQorICAgLy8gZGl2aWRlIG11bHRpcGxpY2FuZCBieSAxMCBmb3IgbmV4dCBkaWdpdCB0byByaWdodAorICAgbXVsdGFuZGxlbi0tOyAvLyAndmlydHVhbCBsZW5ndGgnCisgICB9CisgIH0vKm4qLworICAKKyAgcmVzLmluZD0oYnl0ZSkobGhzLmluZCpyaHMuaW5kKTsgLy8gZmluYWwgc2lnbgorICByZXMuZXhwPShsaHMuZXhwK3Jocy5leHApLXBhZGRpbmc7IC8vIGZpbmFsIGV4cG9uZW50CisgIC8vIFtvdmVyZmxvdyBpcyBjaGVja2VkIGJ5IGZpbmlzaF0KKyAgCisgIC8qIGFkZCB0cmFpbGluZyB6ZXJvcyB0byB0aGUgcmVzdWx0LCBpZiBuZWNlc3NhcnkgKi8KKyAgaWYgKHBhZGRpbmc9PTApIAorICAgcmVzLm1hbnQ9YWNjOworICBlbHNlIAorICAgcmVzLm1hbnQ9ZXh0ZW5kKGFjYyxhY2MubGVuZ3RoK3BhZGRpbmcpOyAvLyBhZGQgdHJhaWxpbmcgMHMKKyAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+LXRoaXM8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjbmVnYXRlKE1hdGhDb250ZXh0KX0sIHdoZXJlIHRoZSBjb250ZXh0IGlzCisgICogPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIGJlIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4KKyAgKgorICAqCisgICogQHJldHVybiBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICA8Y29kZT4tdGhpczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBuZWdhdGUoKXsKKyAgcmV0dXJuIHRoaXMubmVnYXRlKHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgPGNvZGU+LXRoaXM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIG5lZ2F0aW9uIChQcmVmaXggPGI+PGNvZGU+LTwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICA8Y29kZT4tdGhpczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBuZWdhdGUoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICAvLyBPcmlnaW5hbGx5IGNhbGxlZCBtaW51cygpLCBjaGFuZ2VkIHRvIG1hdGNoZWQgSmF2YSBwcmVjZWRlbnRzCisgIC8vIFRoaXMgc2ltcGx5IGNsb25lcywgZmxpcHMgdGhlIHNpZ24sIGFuZCBwb3NzaWJseSByb3VuZHMKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCxzZXQuZGlnaXRzKTsKKyAgcmVzPWNsb25lKHRoaXMpOyAvLyBzYWZlIGNvcHkKKyAgcmVzLmluZD0oYnl0ZSktcmVzLmluZDsKKyAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+K3RoaXM8L2NvZGU+LgorICAqIE5vdGUgdGhhdCA8Y29kZT50aGlzPC9jb2RlPiBpcyBub3QgbmVjZXNzYXJpbHkgYQorICAqIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBidXQgdGhlIHJlc3VsdCB3aWxsIGFsd2F5cyBiZS4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI3BsdXMoTWF0aENvbnRleHQpfSwgd2hlcmUgdGhlIGNvbnRleHQgaXMKKyAgKiA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogYmUgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPgorICAqCisgICogQHJldHVybiBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICA8Y29kZT4rdGhpczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBwbHVzKCl7CisgIHJldHVybiB0aGlzLnBsdXMocGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPit0aGlzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBwbHVzIChQcmVmaXggPGI+PGNvZGU+KzwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICogPHA+CisgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciByb3VuZGluZyBvciBvdGhlcndpc2UgYXBwbHlpbmcgYSBjb250ZXh0CisgICogdG8gYSBkZWNpbWFsIHZhbHVlLgorICAqCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgPGNvZGU+K3RoaXM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcGx1cyhjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIC8vIFRoaXMgY2xvbmVzIGFuZCBmb3JjZXMgdGhlIHJlc3VsdCB0byB0aGUgbmV3IHNldHRpbmdzCisgIC8vIE1heSByZXR1cm4gc2FtZSBvYmplY3QKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCxzZXQuZGlnaXRzKTsKKyAgLy8gT3B0aW1pemF0aW9uOiByZXR1cm5zIHNhbWUgb2JqZWN0IGZvciBzb21lIGNvbW1vbiBjYXNlcworICBpZiAoc2V0LmZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgaWYgKHRoaXMuZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgeworICAgICBpZiAodGhpcy5tYW50Lmxlbmd0aDw9c2V0LmRpZ2l0cykgCisgICAgICByZXR1cm4gdGhpczsKKyAgICAgaWYgKHNldC5kaWdpdHM9PTApIAorICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICByZXR1cm4gY2xvbmUodGhpcykuZmluaXNoKHNldCxmYWxzZSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMqKnJoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNwb3coQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIHBhcmFtZXRlciBpcyB0aGUgcG93ZXIgdG8gd2hpY2ggdGhlIDxjb2RlPnRoaXM8L2NvZGU+IHdpbGwgYmUKKyAgKiByYWlzZWQ7IGl0IG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgdGhyb3VnaCA5OTk5OTk5OTksIGFuZCBtdXN0CisgICogaGF2ZSBhIGRlY2ltYWwgcGFydCBvZiB6ZXJvLiAgTm90ZSB0aGF0IHRoZXNlIHJlc3RyaWN0aW9ucyBtYXkgYmUKKyAgKiByZW1vdmVkIGluIHRoZSBmdXR1cmUsIHNvIHRoZXkgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgdGVzdCBmb3IgYQorICAqIHdob2xlIG51bWJlci4KKyAgKiA8cD4KKyAgKiBJbiBhZGRpdGlvbiwgdGhlIHBvd2VyIG11c3Qgbm90IGJlIG5lZ2F0aXZlLCBhcyBubworICAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBpcyB1c2VkIGFuZCBzbyB0aGUgcmVzdWx0IHdvdWxkIHRoZW4KKyAgKiBhbHdheXMgYmUgMC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gKHRoZSBwb3dlcikuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMqKnJoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgb3V0IG9mIHJhbmdlIG9yCisgICogICAgICAgICAgICAgaXMgbm90IGEgd2hvbGUgbnVtYmVyLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcG93KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5wb3cocmhzLHBsYWluTUMpOworICB9CisgLy8gVGhlIG5hbWUgZm9yIHRoaXMgbWV0aG9kIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBwcmVjZWRlbnQgc2V0IGJ5IHRoZQorIC8vIEJpZ0ludGVnZXIgYW5kIE1hdGggY2xhc3Nlcy4KKyAKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgPGNvZGU+dGhpcyoqcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBwb3dlciAoPGI+PGNvZGU+Kio8L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqIDxwPgorICAqIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIHBvd2VyIHRvIHdoaWNoIHRoZSA8Y29kZT50aGlzPC9jb2RlPgorICAqIHdpbGwgYmUgcmFpc2VkOyBpdCBtdXN0IGJlIGluIHRoZSByYW5nZSAtOTk5OTk5OTk5IHRocm91Z2gKKyAgKiA5OTk5OTk5OTksIGFuZCBtdXN0IGhhdmUgYSBkZWNpbWFsIHBhcnQgb2YgemVyby4gIE5vdGUgdGhhdCB0aGVzZQorICAqIHJlc3RyaWN0aW9ucyBtYXkgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLCBzbyB0aGV5IHNob3VsZCBub3QgYmUKKyAgKiB1c2VkIGFzIGEgdGVzdCBmb3IgYSB3aG9sZSBudW1iZXIuCisgICogPHA+CisgICogSWYgdGhlIDxjb2RlPmRpZ2l0czwvY29kZT4gc2V0dGluZyBvZiB0aGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+CisgICogcGFyYW1ldGVyIGlzIDAsIHRoZSBwb3dlciBtdXN0IGJlIHplcm8gb3IgcG9zaXRpdmUuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uICh0aGUgcG93ZXIpLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcyoqcmhzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyBvdXQgb2YgcmFuZ2Ugb3IKKyAgKiAgICAgICAgICAgICBpcyBub3QgYSB3aG9sZSBudW1iZXIuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBwb3coY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGludCBuOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBpbnQgcmVxZGlnOworICBpbnQgd29ya2RpZ2l0cz0wOworICBpbnQgTD0wOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHdvcmtzZXQ7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIGJvb2xlYW4gc2VlbmJpdDsKKyAgaW50IGk9MDsKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgbj1yaHMuaW50Y2hlY2soTWluQXJnLE1heEFyZyk7IC8vIGNoZWNrIFJIUyBieSB0aGUgcnVsZXMKKyAgbGhzPXRoaXM7IC8vIGNsYXJpZmllZCBuYW1lCisgIAorICByZXFkaWc9c2V0LmRpZ2l0czsgLy8gbG9jYWwgY29weSAoaGVhdmlseSB1c2VkKQorICBpZiAocmVxZGlnPT0wKSAKKyAgIHsKKyAgICBpZiAocmhzLmluZD09aXNuZWcpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIk5lZ2F0aXZlIHBvd2VyOiIrIiAiK3Jocy50b1N0cmluZygpKTsKKyAgICB3b3JrZGlnaXRzPTA7CisgICB9CisgIGVsc2UgCisgICB7Lyogbm9uLTAgZGlnaXRzICovCisgICAgaWYgKChyaHMubWFudC5sZW5ndGgrcmhzLmV4cCk+cmVxZGlnKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJUb28gbWFueSBkaWdpdHM6IisiICIrcmhzLnRvU3RyaW5nKCkpOworICAgIAorICAgIC8qIFJvdW5kIHRoZSBsaHMgdG8gRElHSVRTIGlmIG5lZWQgYmUgKi8KKyAgICBpZiAobGhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIGxocz1jbG9uZShsaHMpLnJvdW5kKHNldCk7CisgICAgCisgICAgLyogTCBmb3IgcHJlY2lzaW9uIGNhbGN1bGF0aW9uIFtzZWUgQU5TSSBYMy4yNzQtMTk5Nl0gKi8KKyAgICBMPXJocy5tYW50Lmxlbmd0aCtyaHMuZXhwOyAvLyBsZW5ndGggd2l0aG91dCBkZWNpbWFsIHplcm9zL2V4cAorICAgIHdvcmtkaWdpdHM9KHJlcWRpZytMKSsxOyAvLyBjYWxjdWxhdGUgdGhlIHdvcmtpbmcgRElHSVRTCisgICB9CisgIAorICAvKiBDcmVhdGUgYSBjb3B5IG9mIHNldCBmb3Igd29ya2luZyBzZXR0aW5ncyAqLworICAvLyBOb3RlOiBubyBuZWVkIHRvIGNoZWNrIGZvciBsb3N0RGlnaXRzIGFnYWluLgorICAvLyAxOTk5LjA3LjE3IE5vdGU6IHRoaXMgY29uc3RydWN0aW9uIG11c3QgZm9sbG93IFJIUyBjaGVjaworICB3b3Jrc2V0PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KHdvcmtkaWdpdHMsc2V0LmZvcm0sZmFsc2Usc2V0LnJvdW5kaW5nTW9kZSk7CisgIAorICByZXM9T05FOyAvLyBhY2N1bXVsYXRvcgorICBpZiAobj09MCkgCisgICByZXR1cm4gcmVzOyAvLyB4KiowID09IDEKKyAgaWYgKG48MCkgCisgICBuPShpbnQpLW47IC8vIFtyaHMuaW5kIHJlY29yZHMgdGhlIHNpZ25dCisgIHNlZW5iaXQ9ZmFsc2U7IC8vIHNldCBvbmNlIHdlJ3ZlIHNlZW4gYSAxLWJpdAorICB7aT0xO2k6Zm9yKDs7aSsrKXsgLy8gZm9yIGVhY2ggYml0IFt0b3AgYml0IGlnbm9yZWRdCisgICBuPW4rbjsgLy8gc2hpZnQgbGVmdCAxIGJpdAorICAgaWYgKG48MCkgCisgICAgeyAvLyB0b3AgYml0IGlzIHNldAorICAgICBzZWVuYml0PXRydWU7IC8vIE9LLCB3ZSdyZSBvZmYKKyAgICAgcmVzPXJlcy5tdWx0aXBseShsaHMsd29ya3NldCk7IC8vIGFjYz1hY2MqeAorICAgIH0KKyAgIGlmIChpPT0zMSkgCisgICAgYnJlYWsgaTsgLy8gdGhhdCB3YXMgdGhlIGxhc3QgYml0CisgICBpZiAoKCFzZWVuYml0KSkgCisgICAgY29udGludWUgaTsgLy8gd2UgZG9uJ3QgaGF2ZSB0byBzcXVhcmUgMQorICAgcmVzPXJlcy5tdWx0aXBseShyZXMsd29ya3NldCk7IC8vIGFjYz1hY2MqYWNjIFtzcXVhcmVdCisgICB9CisgIH0vKmkqLyAvLyAzMiBiaXRzCisgIGlmIChyaHMuaW5kPDApICAvLyB3YXMgYSAqKi1uIFtoZW5jZSBkaWdpdHM+MF0KKyAgIHJlcz1PTkUuZGl2aWRlKHJlcyx3b3Jrc2V0KTsgLy8gLi4gc28gYWNjPTEvYWNjCisgIHJldHVybiByZXMuZmluaXNoKHNldCx0cnVlKTsgLy8gcm91bmQgYW5kIHN0cmlwIFtvcmlnaW5hbCBkaWdpdHNdCisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIHRoZSByZW1haW5kZXIgb2YgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjcmVtYWluZGVyKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoaXMgaXMgbm90IHRoZSBtb2R1bG8gb3BlcmF0b3IgLS0gdGhlIHJlc3VsdCBtYXkgYmUgbmVnYXRpdmUuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgcmVtYWluZGVyIG9wZXJhdGlvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSByZW1haW5kZXIKKyAgKiAgICAgICAgICAgICBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ1InLHJocyxwbGFpbk1DLC0xKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSByZW1haW5kZXIgb2YKKyAgKiA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgcmVtYWluZGVyIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKiA8cD4KKyAgKiBUaGlzIGlzIG5vdCB0aGUgbW9kdWxvIG9wZXJhdG9yIC0tIHRoZSByZXN1bHQgbWF5IGJlIG5lZ2F0aXZlLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIHJlbWFpbmRlciBvcGVyYXRpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIHJlbWFpbmRlcgorICAqICAgICAgICAgICAgIG9mIDxjb2RlPnRoaXMrcmhzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoZSByZXN1bHQgd2lsbAorICAqICAgICAgICAgICAgIG5vdCBmaXQgaW4gdGhlIG51bWJlciBvZiBkaWdpdHMgc3BlY2lmaWVkIGZvciB0aGUKKyAgKiAgICAgICAgICAgICBjb250ZXh0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnUicscmhzLHNldCwtMSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMtcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI3N1YnRyYWN0KEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiB0aGUgbWF4aW11bSBvZiB0aGUgc2NhbGVzIG9mIHRoZSB0d28gb3BlcmFuZHMuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgc3VidHJhY3Rpb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMtcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHN1YnRyYWN0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5zdWJ0cmFjdChyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzLXJoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgc3VidHJhY3Rpb24gKDxiPjxjb2RlPi08L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIHN1YnRyYWN0aW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcy1yaHM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgc3VidHJhY3QoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBuZXdyaHM7CisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cyhyaHMsc2V0LmRpZ2l0cyk7CisgIC8vIFthZGQgd2lsbCByZWNoZWNrIC4uIGJ1dCB3b3VsZCByZXBvcnQgLXJoc10KKyAgLyogY2Fycnkgb3V0IHRoZSBzdWJ0cmFjdGlvbiAqLworICAvLyB3ZSBjb3VsZCBmYXN0cGF0aCAtMCwgYnV0IGl0IGlzIHRvbyByYXJlLgorICBuZXdyaHM9Y2xvbmUocmhzKTsgLy8gc2FmZSBjb3B5CisgIG5ld3Jocy5pbmQ9KGJ5dGUpLW5ld3Jocy5pbmQ7IC8vIHByZXBhcmUgdG8gc3VidHJhY3QKKyAgcmV0dXJuIHRoaXMuYWRkKG5ld3JocyxzZXQpOyAvLyBhcml0aG1ldGljCisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBPdGhlciBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5ieXRlPC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaGFzIGEgbm9uLXplcm8gZGVjaW1hbCBwYXJ0IG9yIGlzCisgICogb3V0IG9mIHRoZSBwb3NzaWJsZSByYW5nZSBmb3IgYSA8Y29kZT5ieXRlPC9jb2RlPiAoOC1iaXQgc2lnbmVkCisgICogaW50ZWdlcikgcmVzdWx0IHRoZW4gYW4gPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqCisgICogQHJldHVybiBBIDxjb2RlPmJ5dGU8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT50aGlzPC9jb2RlPiBoYXMgYSBub24temVybworICAqICAgICAgICAgICAgICAgICBkZWNpbWFsIHBhcnQsIG9yIHdpbGwgbm90IGZpdCBpbiBhIDxjb2RlPmJ5dGU8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBieXRlIGJ5dGVWYWx1ZUV4YWN0KCl7CisgIGludCBudW07CisgIG51bT10aGlzLmludFZhbHVlRXhhY3QoKTsgLy8gd2lsbCBjaGVjayBkZWNpbWFsIHBhcnQgdG9vCisgIGlmICgobnVtPjEyNyl8KG51bTwoLTEyOCkpKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICByZXR1cm4gKGJ5dGUpbnVtOworICB9CisKKyAvKioKKyAgKiBDb21wYXJlcyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuCisgICogPHA+CisgICogSWYgdGhlIHBhcmFtZXRlciBpcyA8Y29kZT5udWxsPC9jb2RlPiwgb3IgaXMgbm90IGFuIGluc3RhbmNlIG9mIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHR5cGUsIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICogT3RoZXJ3aXNlLCB0aGUgcGFyYW1ldGVyIGlzIGNhc3QgdG8gdHlwZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPgorICAqIGFuZCB0aGUgcmVzdWx0IG9mIHRoZSB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsKX0gbWV0aG9kLAorICAqIHVzaW5nIHRoZSBjYXN0IHBhcmFtZXRlciwgaXMgcmV0dXJuZWQuCisgICogPHA+CisgICogVGhlIHtAbGluayAjY29tcGFyZVRvKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0gbWV0aG9kIHNob3VsZCBiZQorICAqIHVzZWQgd2hlbiBhIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBpcyBuZWVkZWQgZm9yIHRoZSBjb21wYXJpc29uLgorICAqCisgICogQHBhcmFtICByaHNvYmogVGhlIDxjb2RlPk9iamVjdDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBbiA8Y29kZT5pbnQ8L2NvZGU+IHdob3NlIHZhbHVlIGlzIC0xLCAwLCBvciAxIGFzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4gaXMgbnVtZXJpY2FsbHkgbGVzcyB0aGFuLCBlcXVhbCB0bywKKyAgKiAgICAgICAgICAgICBvciBncmVhdGVyIHRoYW4gPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIENsYXNzQ2FzdEV4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGNhbm5vdCBiZSBjYXN0IHRvCisgICogICAgICAgICAgICAgICAgIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhCaWdEZWNpbWFsKQorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5PYmplY3Qgcmhzb2JqKXsKKyAgLy8gdGhlIGNhc3QgaW4gdGhlIG5leHQgbGluZSB3aWxsIHJhaXNlIENsYXNzQ2FzdEV4Y2VwdGlvbiBpZiBuZWNlc3NhcnkKKyAgcmV0dXJuIGNvbXBhcmVUbygoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKXJoc29iaixwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPmRvdWJsZTwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGEKKyAgKiA8Y29kZT5kb3VibGU8L2NvZGU+ICg2NC1iaXQgc2lnbmVkIGZsb2F0aW5nIHBvaW50KSByZXN1bHQgdGhlbiBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKiA8cD4KKyAgKiBUaGUgZG91YmxlIHByb2R1Y2VkIGlzIGlkZW50aWNhbCB0byByZXN1bHQgb2YgZXhwcmVzc2luZyB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kIHRoZW4KKyAgKiBjb252ZXJ0aW5nIGl0IHVzaW5nIHRoZSA8Y29kZT5Eb3VibGUoU3RyaW5nKTwvY29kZT4gY29uc3RydWN0b3I7CisgICogdGhpcyBjYW4gcmVzdWx0IGluIHZhbHVlcyBvZiA8Y29kZT5Eb3VibGUuTkVHQVRJVkVfSU5GSU5JVFk8L2NvZGU+CisgICogb3IgPGNvZGU+RG91YmxlLlBPU0lUSVZFX0lORklOSVRZPC9jb2RlPi4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5kb3VibGU8L2NvZGU+IGNvcnJlc3BvbmRpbmcgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGRvdWJsZSBkb3VibGVWYWx1ZSgpeworICAvLyBXZSBnbyB2aWEgYSBTdHJpbmcgW2FzIGRvZXMgQmlnRGVjaW1hbCBpbiBKREsgMS4yXQorICAvLyBOZXh0IGxpbmUgY291bGQgcG9zc2libHkgcmFpc2UgTnVtYmVyRm9ybWF0RXhjZXB0aW9uCisgIHJldHVybiBqYXZhLmxhbmcuRG91YmxlLnZhbHVlT2YodGhpcy50b1N0cmluZygpKS5kb3VibGVWYWx1ZSgpOworICB9CisKKyAvKioKKyAgKiBDb21wYXJlcyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggPGNvZGU+cmhzPC9jb2RlPiBmb3IKKyAgKiBlcXVhbGl0eS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgcGFyYW1ldGVyIGlzIDxjb2RlPm51bGw8L2NvZGU+LCBvciBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgdGhlCisgICogQmlnRGVjaW1hbCB0eXBlLCBvciBpcyBub3QgZXhhY3RseSBlcXVhbCB0byB0aGUgY3VycmVudAorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCwgdGhlbiA8aT5mYWxzZTwvaT4gaXMgcmV0dXJuZWQuCisgICogT3RoZXJ3aXNlLCA8aT50cnVlPC9pPiBpcyByZXR1cm5lZC4KKyAgKiA8cD4KKyAgKiAiRXhhY3RseSBlcXVhbCIsIGhlcmUsIG1lYW5zIHRoYXQgdGhlIDxjb2RlPlN0cmluZzwvY29kZT4KKyAgKiByZXByZXNlbnRhdGlvbnMgb2YgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG51bWJlcnMgYXJlCisgICogaWRlbnRpY2FsICh0aGV5IGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVycyBpbiB0aGUgc2FtZSBzZXF1ZW5jZSkuCisgICogPHA+CisgICogVGhlIHtAbGluayAjY29tcGFyZVRvKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0gbWV0aG9kIHNob3VsZCBiZQorICAqIHVzZWQgZm9yIG1vcmUgZ2VuZXJhbCBjb21wYXJpc29ucy4KKyAgKiBAcGFyYW0gIG9iaiBUaGUgPGNvZGU+T2JqZWN0PC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+Ym9vbGVhbjwvY29kZT4gd2hvc2UgdmFsdWUgPGk+dHJ1ZTwvaT4gaWYgYW5kCisgICogICAgICAgICAgICAgb25seSBpZiB0aGUgb3BlcmFuZHMgaGF2ZSBpZGVudGljYWwgc3RyaW5nIHJlcHJlc2VudGF0aW9ucy4KKyAgKiBAdGhyb3dzIENsYXNzQ2FzdEV4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGNhbm5vdCBiZSBjYXN0IHRvCisgICogICAgICAgICAgICAgICAgIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhPYmplY3QpCisgICogQHNlZSAgICAjY29tcGFyZVRvKEJpZ0RlY2ltYWwpCisgICogQHNlZSAgICAjY29tcGFyZVRvKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KQorICAqLworIAorIHB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IG9iail7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHM7CisgIGludCBpPTA7CisgIGNoYXIgbGNhW109bnVsbDsKKyAgY2hhciByY2FbXT1udWxsOworICAvLyBXZSBhcmUgZXF1YWwgaWZmIHRvU3RyaW5nIG9mIGJvdGggYXJlIGV4YWN0bHkgdGhlIHNhbWUKKyAgaWYgKG9iaj09bnVsbCkgCisgICByZXR1cm4gZmFsc2U7IC8vIG5vdCBlcXVhbAorICBpZiAoKCEoKChvYmogaW5zdGFuY2VvZiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpKSkpKSAKKyAgIHJldHVybiBmYWxzZTsgLy8gbm90IGEgZGVjaW1hbAorICByaHM9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbClvYmo7IC8vIGNhc3Q7IHdlIGtub3cgaXQgd2lsbCB3b3JrCisgIGlmICh0aGlzLmluZCE9cmhzLmluZCkgCisgICByZXR1cm4gZmFsc2U7IC8vIGRpZmZlcmVudCBzaWducyBuZXZlciBtYXRjaAorICBpZiAoKCh0aGlzLm1hbnQubGVuZ3RoPT1yaHMubWFudC5sZW5ndGgpJih0aGlzLmV4cD09cmhzLmV4cCkpJih0aGlzLmZvcm09PXJocy5mb3JtKSkgCisgICAKKyAgIHsgLy8gbWFudGlzc2FzIHNheSBhbGwKKyAgICAvLyBoZXJlIHdpdGggZXF1YWwtbGVuZ3RoIGJ5dGUgYXJyYXlzIHRvIGNvbXBhcmUKKyAgICB7aW50ICQ4PXRoaXMubWFudC5sZW5ndGg7aT0wO2k6Zm9yKDskOD4wOyQ4LS0saSsrKXsKKyAgICAgaWYgKHRoaXMubWFudFtpXSE9cmhzLm1hbnRbaV0pIAorICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAgfS8qaSovCisgICB9CisgIGVsc2UgCisgICB7IC8vIG5lZWQgcHJvcGVyIGxheW91dAorICAgIGxjYT10aGlzLmxheW91dCgpOyAvLyBsYXlvdXQgdG8gY2hhcmFjdGVyIGFycmF5CisgICAgcmNhPXJocy5sYXlvdXQoKTsKKyAgICBpZiAobGNhLmxlbmd0aCE9cmNhLmxlbmd0aCkgCisgICAgIHJldHVybiBmYWxzZTsgLy8gbWlzbWF0Y2gKKyAgICAvLyBoZXJlIHdpdGggZXF1YWwtbGVuZ3RoIGNoYXJhY3RlciBhcnJheXMgdG8gY29tcGFyZQorICAgIHtpbnQgJDk9bGNhLmxlbmd0aDtpPTA7aTpmb3IoOyQ5PjA7JDktLSxpKyspeworICAgICBpZiAobGNhW2ldIT1yY2FbaV0pIAorICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAgfS8qaSovCisgICB9CisgIHJldHVybiB0cnVlOyAvLyBhcnJheXMgaGF2ZSBpZGVudGljYWwgY29udGVudAorICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEgPGNvZGU+ZmxvYXQ8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhCisgICogPGNvZGU+ZmxvYXQ8L2NvZGU+ICgzMi1iaXQgc2lnbmVkIGZsb2F0aW5nIHBvaW50KSByZXN1bHQgdGhlbiBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKiA8cD4KKyAgKiBUaGUgZmxvYXQgcHJvZHVjZWQgaXMgaWRlbnRpY2FsIHRvIHJlc3VsdCBvZiBleHByZXNzaW5nIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiBhbmQgdGhlbgorICAqIGNvbnZlcnRpbmcgaXQgdXNpbmcgdGhlIDxjb2RlPkZsb2F0KFN0cmluZyk8L2NvZGU+IGNvbnN0cnVjdG9yOworICAqIHRoaXMgY2FuIHJlc3VsdCBpbiB2YWx1ZXMgb2YgPGNvZGU+RmxvYXQuTkVHQVRJVkVfSU5GSU5JVFk8L2NvZGU+CisgICogb3IgPGNvZGU+RmxvYXQuUE9TSVRJVkVfSU5GSU5JVFk8L2NvZGU+LgorICAqCisgICogQHJldHVybiBBIDxjb2RlPmZsb2F0PC9jb2RlPiBjb3JyZXNwb25kaW5nIHRvIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBmbG9hdCBmbG9hdFZhbHVlKCl7CisgIHJldHVybiBqYXZhLmxhbmcuRmxvYXQudmFsdWVPZih0aGlzLnRvU3RyaW5nKCkpLmZsb2F0VmFsdWUoKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRhdGlvbiBvZiB0aGlzCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIG1vZGlmaWVkIGJ5IGxheW91dCBwYXJhbWV0ZXJzLgorICAqIDxwPgorICAqIDxpPlRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIGEgcHJpbWl0aXZlIGZvciB1c2UgYnkgbW9yZQorICAqIHNvcGhpc3RpY2F0ZWQgY2xhc3Nlcywgc3VjaCBhcyA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiwgdGhhdAorICAqIGNhbiBhcHBseSBsb2NhbGUtc2Vuc2l0aXZlIGVkaXRpbmcgb2YgdGhlIHJlc3VsdC4gIFRoZSBsZXZlbCBvZgorICAqIGZvcm1hdHRpbmcgdGhhdCBpdCBwcm92aWRlcyBpcyBhIG5lY2Vzc2FyeSBwYXJ0IG9mIHRoZSBCaWdEZWNpbWFsCisgICogY2xhc3MgYXMgaXQgaXMgc2Vuc2l0aXZlIHRvIGFuZCBtdXN0IGZvbGxvdyB0aGUgY2FsY3VsYXRpb24gYW5kCisgICogcm91bmRpbmcgcnVsZXMgZm9yIEJpZ0RlY2ltYWwgYXJpdGhtZXRpYy4KKyAgKiBIb3dldmVyLCBpZiB0aGUgZnVuY3Rpb24gaXMgcHJvdmlkZWQgZWxzZXdoZXJlLCBpdCBtYXkgYmUgcmVtb3ZlZAorICAqIGZyb20gdGhpcyBjbGFzcy4gPC9pPgorICAqIDxwPgorICAqIFRoZSBwYXJhbWV0ZXJzLCBmb3IgYm90aCBmb3JtcyBvZiB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2QKKyAgKiBhcmUgYWxsIG9mIHR5cGUgPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBBIHZhbHVlIG9mIC0xIGZvciBhbnkgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGFjdGlvbgorICAqIG9yIHZhbHVlIGZvciB0aGF0IHBhcmFtZXRlciBzaG91bGQgYmUgdXNlZC4KKyAgKiA8cD4KKyAgKiBUaGUgcGFyYW1ldGVycywgPGNvZGU+YmVmb3JlPC9jb2RlPiBhbmQgPGNvZGU+YWZ0ZXI8L2NvZGU+LAorICAqIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGJlIHVzZWQgZm9yIHRoZSBpbnRlZ2VyIHBhcnQKKyAgKiBhbmQgZGVjaW1hbCBwYXJ0IG9mIHRoZSByZXN1bHQgcmVzcGVjdGl2ZWx5LiAgRXhwb25lbnRpYWwgbm90YXRpb24KKyAgKiBpcyBub3QgdXNlZC4gSWYgZWl0aGVyIHBhcmFtZXRlciBpcyAtMSAod2hpY2ggaW5kaWNhdGVzIHRoZSBkZWZhdWx0CisgICogYWN0aW9uKSwgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHVzZWQgd2lsbCBiZSBleGFjdGx5IGFzIG1hbnkgYXMKKyAgKiBhcmUgbmVlZGVkIGZvciB0aGF0IHBhcnQuCisgICogPHA+CisgICogPGNvZGU+YmVmb3JlPC9jb2RlPiBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyOyBpZiBpdCBpcyBsYXJnZXIgdGhhbgorICAqIGlzIG5lZWRlZCB0byBjb250YWluIHRoZSBpbnRlZ2VyIHBhcnQsIHRoYXQgcGFydCBpcyBwYWRkZWQgb24gdGhlCisgICogbGVmdCB3aXRoIGJsYW5rcyB0byB0aGUgcmVxdWVzdGVkIGxlbmd0aC4gSWYgPGNvZGU+YmVmb3JlPC9jb2RlPiBpcworICAqIG5vdCBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoZSBudW1iZXIKKyAgKiAoaW5jbHVkaW5nIHRoZSBzaWduLCBmb3IgbmVnYXRpdmUgbnVtYmVycykgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgKiA8cD4KKyAgKiA8Y29kZT5hZnRlcjwvY29kZT4gbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXI7IGlmIGl0IGlzIG5vdCB0aGUKKyAgKiBzYW1lIHNpemUgYXMgdGhlIGRlY2ltYWwgcGFydCBvZiB0aGUgbnVtYmVyLCB0aGUgbnVtYmVyIHdpbGwgYmUKKyAgKiByb3VuZGVkIChvciBleHRlbmRlZCB3aXRoIHplcm9zKSB0byBmaXQuICBTcGVjaWZ5aW5nIDAgZm9yCisgICogPGNvZGU+YWZ0ZXI8L2NvZGU+IHdpbGwgY2F1c2UgdGhlIG51bWJlciB0byBiZSByb3VuZGVkIHRvIGFuCisgICogaW50ZWdlciAodGhhdCBpcywgaXQgd2lsbCBoYXZlIG5vIGRlY2ltYWwgcGFydCBvciBkZWNpbWFsIHBvaW50KS4KKyAgKiBUaGUgcm91bmRpbmcgbWV0aG9kIHdpbGwgYmUgdGhlIGRlZmF1bHQsCisgICogPGNvZGU+TWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDwvY29kZT4uCisgICogPHA+CisgICogT3RoZXIgcm91bmRpbmcgbWV0aG9kcywgYW5kIHRoZSB1c2Ugb2YgZXhwb25lbnRpYWwgbm90YXRpb24sIGNhbgorICAqIGJlIHNlbGVjdGVkIGJ5IHVzaW5nIHtAbGluayAjZm9ybWF0KGludCxpbnQsaW50LGludCxpbnQsaW50KX0uCisgICogVXNpbmcgdGhlIHR3by1wYXJhbWV0ZXIgZm9ybSBvZiB0aGUgbWV0aG9kIGhhcyBleGFjdGx5IHRoZSBzYW1lCisgICogZWZmZWN0IGFzIHVzaW5nIHRoZSBzaXgtcGFyYW1ldGVyIGZvcm0gd2l0aCB0aGUgZmluYWwgZm91cgorICAqIHBhcmFtZXRlcnMgYWxsIGJlaW5nIC0xLgorICAqCisgICogQHBhcmFtICBiZWZvcmUgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludC4gIFVzZSAtMSBmb3IgJ2FzIG1hbnkgYXMKKyAgKiAgICAgICAgICAgICAgICBhcmUgbmVlZGVkJy4KKyAgKiBAcGFyYW0gIGFmdGVyICBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzCisgICogICAgICAgICAgICAgICAgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQuICBVc2UgLTEgZm9yICdhcyBtYW55IGFzIGFyZQorICAqICAgICAgICAgICAgICAgIG5lZWRlZCcuCisgICogQHJldHVybiAgICAgICAgQSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGluZyB0aGlzCisgICogICAgICAgICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIGxhaWQgb3V0IGFjY29yZGluZyB0byB0aGUKKyAgKiAgICAgICAgICAgICAgICBzcGVjaWZpZWQgcGFyYW1ldGVycworICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiB0aGUgbnVtYmVyIGNhbm5vdCBiZSBsYWlkIG91dCBhcworICAqICAgICAgICAgICAgICAgIHJlcXVlc3RlZC4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhIHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICogQHNlZSAgICAjdG9TdHJpbmcKKyAgKiBAc2VlICAgICN0b0NoYXJBcnJheQorICAqLworIAorIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGZvcm1hdChpbnQgYmVmb3JlLGludCBhZnRlcil7CisgIHJldHVybiBmb3JtYXQoYmVmb3JlLGFmdGVyLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxST1VORF9IQUxGX1VQKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRhdGlvbiBvZiB0aGlzCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIG1vZGlmaWVkIGJ5IGxheW91dCBwYXJhbWV0ZXJzIGFuZCBhbGxvd2luZworICAqIGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAqIDxwPgorICAqIDxpPlRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIGEgcHJpbWl0aXZlIGZvciB1c2UgYnkgbW9yZQorICAqIHNvcGhpc3RpY2F0ZWQgY2xhc3Nlcywgc3VjaCBhcyA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiwgdGhhdAorICAqIGNhbiBhcHBseSBsb2NhbGUtc2Vuc2l0aXZlIGVkaXRpbmcgb2YgdGhlIHJlc3VsdC4gIFRoZSBsZXZlbCBvZgorICAqIGZvcm1hdHRpbmcgdGhhdCBpdCBwcm92aWRlcyBpcyBhIG5lY2Vzc2FyeSBwYXJ0IG9mIHRoZSBCaWdEZWNpbWFsCisgICogY2xhc3MgYXMgaXQgaXMgc2Vuc2l0aXZlIHRvIGFuZCBtdXN0IGZvbGxvdyB0aGUgY2FsY3VsYXRpb24gYW5kCisgICogcm91bmRpbmcgcnVsZXMgZm9yIEJpZ0RlY2ltYWwgYXJpdGhtZXRpYy4KKyAgKiBIb3dldmVyLCBpZiB0aGUgZnVuY3Rpb24gaXMgcHJvdmlkZWQgZWxzZXdoZXJlLCBpdCBtYXkgYmUgcmVtb3ZlZAorICAqIGZyb20gdGhpcyBjbGFzcy4gPC9pPgorICAqIDxwPgorICAqIFRoZSBwYXJhbWV0ZXJzIGFyZSBhbGwgb2YgdHlwZSA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIEEgdmFsdWUgb2YgLTEgZm9yIGFueSBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgYWN0aW9uCisgICogb3IgdmFsdWUgZm9yIHRoYXQgcGFyYW1ldGVyIHNob3VsZCBiZSB1c2VkLgorICAqIDxwPgorICAqIFRoZSBmaXJzdCB0d28gcGFyYW1ldGVycyAoPGNvZGU+YmVmb3JlPC9jb2RlPiBhbmQKKyAgKiA8Y29kZT5hZnRlcjwvY29kZT4pIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGJlIHVzZWQgZm9yCisgICogdGhlIGludGVnZXIgcGFydCBhbmQgZGVjaW1hbCBwYXJ0IG9mIHRoZSByZXN1bHQgcmVzcGVjdGl2ZWx5LCBhcworICAqIGRlZmluZWQgZm9yIHtAbGluayAjZm9ybWF0KGludCxpbnQpfS4KKyAgKiBJZiBlaXRoZXIgb2YgdGhlc2UgaXMgLTEgKHdoaWNoIGluZGljYXRlcyB0aGUgZGVmYXVsdCBhY3Rpb24pLCB0aGUKKyAgKiBudW1iZXIgb2YgY2hhcmFjdGVycyB1c2VkIHdpbGwgYmUgZXhhY3RseSBhcyBtYW55IGFzIGFyZSBuZWVkZWQgZm9yCisgICogdGhhdCBwYXJ0LgorICAqIDxwPgorICAqIFRoZSByZW1haW5pbmcgcGFyYW1ldGVycyBjb250cm9sIHRoZSB1c2Ugb2YgZXhwb25lbnRpYWwgbm90YXRpb24KKyAgKiBhbmQgcm91bmRpbmcuICBUaHJlZSAoPGNvZGU+ZXhwbGFjZXM8L2NvZGU+LCA8Y29kZT5leGRpZ2l0czwvY29kZT4sCisgICogYW5kIDxjb2RlPmV4Zm9ybTwvY29kZT4pIGNvbnRyb2wgdGhlIGV4cG9uZW50IHBhcnQgb2YgdGhlIHJlc3VsdC4KKyAgKiBBcyBiZWZvcmUsIHRoZSBkZWZhdWx0IGFjdGlvbiBmb3IgYW55IG9mIHRoZXNlIHBhcmFtZXRlcnMgbWF5IGJlCisgICogc2VsZWN0ZWQgYnkgdXNpbmcgdGhlIHZhbHVlIC0xLgorICAqIDxwPgorICAqIDxjb2RlPmV4cGxhY2VzPC9jb2RlPiBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyOyBpdCBzZXRzIHRoZSBudW1iZXIKKyAgKiBvZiBwbGFjZXMgKGRpZ2l0cyBhZnRlciB0aGUgc2lnbiBvZiB0aGUgZXhwb25lbnQpIHRvIGJlIHVzZWQgZm9yCisgICogYW55IGV4cG9uZW50IHBhcnQsIHRoZSBkZWZhdWx0ICh3aGVuIDxjb2RlPmV4cGxhY2VzPC9jb2RlPiBpcyAtMSkKKyAgKiBiZWluZyB0byB1c2UgYXMgbWFueSBhcyBhcmUgbmVlZGVkLgorICAqIElmIDxjb2RlPmV4cGxhY2VzPC9jb2RlPiBpcyBub3QgLTEsIHNwYWNlIGlzIGFsd2F5cyByZXNlcnZlZCBmb3IKKyAgKiBhbiBleHBvbmVudDsgaWYgb25lIGlzIG5vdCBuZWVkZWQgKGZvciBleGFtcGxlLCBpZiB0aGUgZXhwb25lbnQKKyAgKiB3aWxsIGJlIDApIHRoZW4gPGNvZGU+ZXhwbGFjZXM8L2NvZGU+KzIgYmxhbmtzIGFyZSBhcHBlbmRlZCB0byB0aGUKKyAgKiByZXN1bHQuCisgICogPCEtLSAoVGhpcyBwcmVzZXJ2ZXMgdmVydGljYWwgYWxpZ25tZW50IG9mIHNpbWlsYXJseSBmb3JtYXR0ZWQKKyAgKiAgICAgICBudW1iZXJzIGluIGEgbW9ub3NwYWNlIGZvbnQuKSAtLT4KKyAgKiBJZiA8Y29kZT5leHBsYWNlczwvY29kZT4gaXMgbm90IC0xIGFuZCBpcyBub3QgbGFyZ2UgZW5vdWdoIHRvCisgICogY29udGFpbiB0aGUgZXhwb25lbnQsIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICogPHA+CisgICogPGNvZGU+ZXhkaWdpdHM8L2NvZGU+IHNldHMgdGhlIHRyaWdnZXIgcG9pbnQgZm9yIHVzZSBvZiBleHBvbmVudGlhbAorICAqIG5vdGF0aW9uLiBJZiwgYmVmb3JlIGFueSByb3VuZGluZywgdGhlIG51bWJlciBvZiBwbGFjZXMgbmVlZGVkCisgICogYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGV4Y2VlZHMgPGNvZGU+ZXhkaWdpdHM8L2NvZGU+LCBvciBpZiB0aGUKKyAgKiBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgcmVzdWx0IGlzIGxlc3MgdGhhbiA8Y29kZT4wLjAwMDAwMTwvY29kZT4sCisgICogdGhlbiBleHBvbmVudGlhbCBmb3JtIHdpbGwgYmUgdXNlZCwgcHJvdmlkZWQgdGhhdAorICAqIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiB3YXMgc3BlY2lmaWVkLgorICAqIFdoZW4gPGNvZGU+ZXhkaWdpdHM8L2NvZGU+IGlzIC0xLCBleHBvbmVudGlhbCBub3RhdGlvbiB3aWxsIG5ldmVyCisgICogYmUgdXNlZC4gSWYgMCBpcyBzcGVjaWZpZWQgZm9yIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiwgZXhwb25lbnRpYWwKKyAgKiBub3RhdGlvbiBpcyBhbHdheXMgdXNlZCB1bmxlc3MgdGhlIGV4cG9uZW50IHdvdWxkIGJlIDAuCisgICogPHA+CisgICogPGNvZGU+ZXhmb3JtPC9jb2RlPiBzZXRzIHRoZSBmb3JtIGZvciBleHBvbmVudGlhbCBub3RhdGlvbiAoaWYKKyAgKiBuZWVkZWQpLgorICAqIEl0ICBtYXkgYmUgZWl0aGVyIHtAbGluayBNYXRoQ29udGV4dCNTQ0lFTlRJRklDfSBvcgorICAqIHtAbGluayBNYXRoQ29udGV4dCNFTkdJTkVFUklOR30uCisgICogSWYgdGhlIGxhdHRlciwgZW5naW5lZXJpbmcsIGZvcm0gaXMgcmVxdWVzdGVkLCB1cCB0byB0aHJlZSBkaWdpdHMKKyAgKiAocGx1cyBzaWduLCBpZiBuZWdhdGl2ZSkgbWF5IGJlIG5lZWRlZCBmb3IgdGhlIGludGVnZXIgcGFydCBvZiB0aGUKKyAgKiByZXN1bHQgKDxjb2RlPmJlZm9yZTwvY29kZT4pLiAgT3RoZXJ3aXNlLCBvbmx5IG9uZSBkaWdpdCAocGx1cworICAqIHNpZ24sIGlmIG5lZ2F0aXZlKSBpcyBuZWVkZWQuCisgICogPHA+CisgICogRmluYWxseSwgdGhlIHNpeHRoIGFyZ3VtZW50LCA8Y29kZT5leHJvdW5kPC9jb2RlPiwgc2VsZWN0cyB0aGUKKyAgKiByb3VuZGluZyBhbGdvcml0aG0gdG8gYmUgdXNlZCwgYW5kIG11c3QgYmUgb25lIG9mIHRoZSB2YWx1ZXMKKyAgKiBpbmRpY2F0ZWQgYnkgYSBwdWJsaWMgY29uc3RhbnQgaW4gdGhlIHtAbGluayBNYXRoQ29udGV4dH0gY2xhc3MKKyAgKiB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIDxjb2RlPlJPVU5EXzwvY29kZT4uCisgICogVGhlIGRlZmF1bHQgKDxjb2RlPlJPVU5EX0hBTEZfVVA8L2NvZGU+KSBtYXkgYWxzbyBiZSBzZWxlY3RlZCBieQorICAqIHVzaW5nIHRoZSB2YWx1ZSAtMSwgYXMgYmVmb3JlLgorICAqIDxwPgorICAqIFRoZSBzcGVjaWFsIHZhbHVlIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPiBtYXkgYmUKKyAgKiB1c2VkIHRvIGRldGVjdCB3aGV0aGVyIG5vbi16ZXJvIGRpZ2l0cyBhcmUgZGlzY2FyZGVkIC0tIGlmCisgICogPGNvZGU+ZXhyb3VuZDwvY29kZT4gaGFzIHRoaXMgdmFsdWUgdGhhbiBpZiBub24temVybyBkaWdpdHMgd291bGQKKyAgKiBiZSBkaXNjYXJkZWQgKHJvdW5kZWQpIGR1cmluZyBmb3JtYXR0aW5nIHRoZW4gYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcGFyYW0gIGJlZm9yZSAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMKKyAgKiAgICAgICAgICAgICAgICAgIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludC4KKyAgKiAgICAgICAgICAgICAgICAgIFVzZSAtMSBmb3IgJ2FzIG1hbnkgYXMgYXJlIG5lZWRlZCcuCisgICogQHBhcmFtICBhZnRlciAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzCisgICogICAgICAgICAgICAgICAgICBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4KKyAgKiAgICAgICAgICAgICAgICAgIFVzZSAtMSBmb3IgJ2FzIG1hbnkgYXMgYXJlIG5lZWRlZCcuCisgICogQHBhcmFtICBleHBsYWNlcyBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzCisgICogICAgICAgICAgICAgICAgICB0byBiZSB1c2VkIGZvciBhbnkgZXhwb25lbnQuCisgICogICAgICAgICAgICAgICAgICBVc2UgLTEgZm9yICdhcyBtYW55IGFzIGFyZSBuZWVkZWQnLgorICAqIEBwYXJhbSAgZXhkaWdpdHMgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgdHJpZ2dlcgorICAqICAgICAgICAgICAgICAgICAgKGRpZ2l0cyBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQpIHdoaWNoIGlmCisgICogICAgICAgICAgICAgICAgICBleGNlZWRlZCBjYXVzZXMgZXhwb25lbnRpYWwgbm90YXRpb24gdG8gYmUgdXNlZC4KKyAgKiAgICAgICAgICAgICAgICAgIFVzZSAwIHRvIGZvcmNlIGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAqICAgICAgICAgICAgICAgICAgVXNlIC0xIHRvIGZvcmNlIHBsYWluIG5vdGF0aW9uIChubyBleHBvbmVudGlhbAorICAqICAgICAgICAgICAgICAgICAgbm90YXRpb24pLgorICAqIEBwYXJhbSAgZXhmb3JtaW50ICAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgZm9ybSBvZgorICAqICAgICAgICAgICAgICAgICAgZXhwb25lbnRpYWwgbm90YXRpb24gdG8gYmUgdXNlZAorICAqICAgICAgICAgICAgICAgICAgKHtAbGluayBNYXRoQ29udGV4dCNTQ0lFTlRJRklDfSBvcgorICAqICAgICAgICAgICAgICAgICAge0BsaW5rIE1hdGhDb250ZXh0I0VOR0lORUVSSU5HfSkuCisgICogQHBhcmFtICBleHJvdW5kICBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSByb3VuZGluZyBtb2RlCisgICogICAgICAgICAgICAgICAgICB0byB1c2UuCisgICogICAgICAgICAgICAgICAgICBVc2UgLTEgZm9yIHRoZSBkZWZhdWx0LCB7QGxpbmsgTWF0aENvbnRleHQjUk9VTkRfSEFMRl9VUH0uCisgICogQHJldHVybiAgICAgICAgICBBIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50aW5nIHRoaXMKKyAgKiAgICAgICAgICAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBsYWlkIG91dCBhY2NvcmRpbmcgdG8gdGhlCisgICogICAgICAgICAgICAgICAgICBzcGVjaWZpZWQgcGFyYW1ldGVycworICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiB0aGUgbnVtYmVyIGNhbm5vdCBiZSBsYWlkIG91dCBhcworICAqICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkLgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGEgcGFyYW1ldGVyIGlzIG91dCBvZiByYW5nZS4KKyAgKiBAc2VlICAgICN0b1N0cmluZworICAqIEBzZWUgICAgI3RvQ2hhckFycmF5CisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGphdmEubGFuZy5TdHJpbmcgZm9ybWF0KGludCBiZWZvcmUsaW50IGFmdGVyLGludCBleHBsYWNlcyxpbnQgZXhkaWdpdHMsaW50IGV4Zm9ybWludCxpbnQgZXhyb3VuZCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW07CisgIGludCBtYWc9MDsKKyAgaW50IHRoaXNhZnRlcj0wOworICBpbnQgbGVhZD0wOworICBieXRlIG5ld21hbnRbXT1udWxsOworICBpbnQgY2hvcD0wOworICBpbnQgbmVlZD0wOworICBpbnQgb2xkZXhwPTA7CisgIGNoYXIgYVtdOworICBpbnQgcD0wOworICBjaGFyIG5ld2FbXT1udWxsOworICBpbnQgaT0wOworICBpbnQgcGxhY2VzPTA7CisgIAorICAKKyAgLyogQ2hlY2sgYXJndW1lbnRzICovCisgIGlmICgoYmVmb3JlPCgtMSkpfChiZWZvcmU9PTApKSAKKyAgIGJhZGFyZygiZm9ybWF0IiwxLGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihiZWZvcmUpKTsKKyAgaWYgKGFmdGVyPCgtMSkpIAorICAgYmFkYXJnKCJmb3JtYXQiLDIsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGFmdGVyKSk7CisgIGlmICgoZXhwbGFjZXM8KC0xKSl8KGV4cGxhY2VzPT0wKSkgCisgICBiYWRhcmcoImZvcm1hdCIsMyxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoZXhwbGFjZXMpKTsKKyAgaWYgKGV4ZGlnaXRzPCgtMSkpIAorICAgYmFkYXJnKCJmb3JtYXQiLDQsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGV4cGxhY2VzKSk7CisgIHsvKnNlbGVjdCovCisgIGlmIChleGZvcm1pbnQ9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyl7CisgIH1lbHNlIGlmIChleGZvcm1pbnQ9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuRU5HSU5FRVJJTkcpeworICB9ZWxzZSBpZiAoZXhmb3JtaW50PT0oLTEpKQorICAgZXhmb3JtaW50PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgIC8vIG5vdGUgUExBSU4gaXNuJ3QgYWxsb3dlZAorICBlbHNleworICAgYmFkYXJnKCJmb3JtYXQiLDUsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGV4Zm9ybWludCkpOworICB9CisgIH0KKyAgLy8gY2hlY2tpbmcgdGhlIHJvdW5kaW5nIG1vZGUgaXMgZG9uZSBieSB0cnlpbmcgdG8gY29uc3RydWN0IGEKKyAgLy8gTWF0aENvbnRleHQgb2JqZWN0IHdpdGggdGhhdCBtb2RlOyBpdCB3aWxsIGZhaWwgaWYgYmFkCisgIGlmIChleHJvdW5kIT1ST1VORF9IQUxGX1VQKSAKKyAgIHt0cnl7IC8vIGlmIG5vbi1kZWZhdWx0Li4uCisgICAgaWYgKGV4cm91bmQ9PSgtMSkpIAorICAgICBleHJvdW5kPVJPVU5EX0hBTEZfVVA7CisgICAgZWxzZSAKKyAgICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoOSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsZXhyb3VuZCk7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTApeworICAgIGJhZGFyZygiZm9ybWF0Iiw2LGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleHJvdW5kKSk7CisgICB9fQorICAKKyAgbnVtPWNsb25lKHRoaXMpOyAvLyBtYWtlIHByaXZhdGUgY29weQorICAKKyAgLyogSGVyZToKKyAgICAgbnVtICAgICAgIGlzIEJpZ0RlY2ltYWwgdG8gZm9ybWF0CisgICAgIGJlZm9yZSAgICBpcyBwbGFjZXMgYmVmb3JlIHBvaW50IFs+MF0KKyAgICAgYWZ0ZXIgICAgIGlzIHBsYWNlcyBhZnRlciBwb2ludCAgWz49MF0KKyAgICAgZXhwbGFjZXMgIGlzIGV4cG9uZW50IHBsYWNlcyAgICAgWz4wXQorICAgICBleGRpZ2l0cyAgaXMgZXhwb25lbnQgZGlnaXRzICAgICBbPj0wXQorICAgICBleGZvcm1pbnQgaXMgZXhwb25lbnQgZm9ybSAgICAgICBbb25lIG9mIHR3b10KKyAgICAgZXhyb3VuZCAgIGlzIHJvdW5kaW5nIG1vZGUgICAgICAgW29uZSBvZiBlaWdodF0KKyAgICAgJ2JlZm9yZScgdGhyb3VnaCAnZXhkaWdpdHMnIGFyZSAtMSBpZiBub3Qgc3BlY2lmaWVkCisgICovCisgIAorICAvKiBkZXRlcm1pbmUgZm9ybSAqLworICB7c2V0Zm9ybTpkb3svKnNlbGVjdCovCisgIGlmIChleGRpZ2l0cz09KC0xKSkKKyAgIG51bS5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIGVsc2UgaWYgKG51bS5pbmQ9PWlzemVybykKKyAgIG51bS5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIGVsc2V7CisgICAvLyBkZXRlcm1pbmUgd2hldGhlciB0cmlnZ2VycworICAgbWFnPW51bS5leHArbnVtLm1hbnQubGVuZ3RoOworICAgaWYgKG1hZz5leGRpZ2l0cykgCisgICAgbnVtLmZvcm09KGJ5dGUpZXhmb3JtaW50OworICAgZWxzZSAKKyAgICBpZiAobWFnPCgtNSkpIAorICAgICBudW0uZm9ybT0oYnl0ZSlleGZvcm1pbnQ7CisgICAgZWxzZSAKKyAgICAgbnVtLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgfQorICB9d2hpbGUoZmFsc2UpO30vKnNldGZvcm0qLworICAKKyAgLyogSWYgJ2FmdGVyJyB3YXMgc3BlY2lmaWVkIHRoZW4gd2UgbWF5IG5lZWQgdG8gYWRqdXN0IHRoZQorICAgICBtYW50aXNzYS4gIFRoaXMgaXMgYSBsaXR0bGUgdHJpY2t5LCBhcyB3ZSBtdXN0IGNvbmZvcm0gdG8gdGhlCisgICAgIHJ1bGVzIG9mIGV4cG9uZW50aWFsIGxheW91dCBpZiBuZWNlc3NhcnkgKGUuZy4sIHdlIGNhbm5vdCBlbmQgdXAKKyAgICAgd2l0aCAxMC4wIGlmIHNjaWVudGlmaWMpLiAqLworICBpZiAoYWZ0ZXI+PTApIAorICAge3NldGFmdGVyOmZvcig7Oyl7CisgICAgLy8gY2FsY3VsYXRlIHRoZSBjdXJyZW50IGFmdGVyLWxlbmd0aAorICAgIHsvKnNlbGVjdCovCisgICAgaWYgKG51bS5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKQorICAgICB0aGlzYWZ0ZXI9KGludCktbnVtLmV4cDsgLy8gaGFzIGRlY2ltYWwgcGFydAorICAgIGVsc2UgaWYgKG51bS5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMpCisgICAgIHRoaXNhZnRlcj1udW0ubWFudC5sZW5ndGgtMTsKKyAgICBlbHNleyAvLyBlbmdpbmVlcmluZworICAgICBsZWFkPSgoKG51bS5leHArbnVtLm1hbnQubGVuZ3RoKS0xKSklMzsgLy8gZXhwb25lbnQgdG8gdXNlCisgICAgIGlmIChsZWFkPDApIAorICAgICAgbGVhZD0zK2xlYWQ7IC8vIG5lZ2F0aXZlIGV4cG9uZW50IGNhc2UKKyAgICAgbGVhZCsrOyAvLyBudW1iZXIgb2YgbGVhZGluZyBkaWdpdHMKKyAgICAgaWYgKGxlYWQ+PW51bS5tYW50Lmxlbmd0aCkgCisgICAgICB0aGlzYWZ0ZXI9MDsKKyAgICAgZWxzZSAKKyAgICAgIHRoaXNhZnRlcj1udW0ubWFudC5sZW5ndGgtbGVhZDsKKyAgICB9CisgICAgfQorICAgIGlmICh0aGlzYWZ0ZXI9PWFmdGVyKSAKKyAgICAgYnJlYWsgc2V0YWZ0ZXI7IC8vIHdlJ3JlIGluIGx1Y2sKKyAgICBpZiAodGhpc2FmdGVyPGFmdGVyKSAKKyAgICAgeyAvLyBuZWVkIGFkZGVkIHRyYWlsaW5nIHplcm9zCisgICAgICAvLyBbdGhpc2FmdGVyIGNhbiBiZSBuZWdhdGl2ZV0KKyAgICAgIG5ld21hbnQ9ZXh0ZW5kKG51bS5tYW50LChudW0ubWFudC5sZW5ndGgrYWZ0ZXIpLXRoaXNhZnRlcik7CisgICAgICBudW0ubWFudD1uZXdtYW50OworICAgICAgbnVtLmV4cD1udW0uZXhwLSgoYWZ0ZXItdGhpc2FmdGVyKSk7IC8vIGFkanVzdCBleHBvbmVudAorICAgICAgaWYgKG51bS5leHA8TWluRXhwKSAKKyAgICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkV4cG9uZW50IE92ZXJmbG93OiIrIiAiK251bS5leHApOworICAgICAgYnJlYWsgc2V0YWZ0ZXI7CisgICAgIH0KKyAgICAvLyBXZSBoYXZlIHRvbyBtYW55IGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludDsgdGhpcyBjb3VsZAorICAgIC8vIGNhdXNlIGEgY2FycnksIHdoaWNoIGNvdWxkIGNoYW5nZSB0aGUgbWFudGlzc2EuLi4KKyAgICAvLyBXYXRjaCBvdXQgZm9yIGltcGxpZWQgbGVhZGluZyB6ZXJvcyBpbiBQTEFJTiBjYXNlCisgICAgY2hvcD10aGlzYWZ0ZXItYWZ0ZXI7IC8vIGRpZ2l0cyB0byBsb3AgW2lzID4wXQorICAgIGlmIChjaG9wPm51bS5tYW50Lmxlbmd0aCkgCisgICAgIHsgLy8gYWxsIGRpZ2l0cyBnbywgbm8gY2hhbmNlIG9mIGNhcnJ5CisgICAgICAvLyBjYXJyeSBvbiB3aXRoIHplcm8KKyAgICAgIG51bS5tYW50PVpFUk8ubWFudDsKKyAgICAgIG51bS5pbmQ9aXN6ZXJvOworICAgICAgbnVtLmV4cD0wOworICAgICAgY29udGludWUgc2V0YWZ0ZXI7IC8vIHJlY2hlY2s6IHdlIG1heSBuZWVkIHRyYWlsaW5nIHplcm9zCisgICAgIH0KKyAgICAvLyB3ZSBoYXZlIGEgZGlnaXQgdG8gaW5zcGVjdCBmcm9tIGV4aXN0aW5nIG1hbnRpc3NhCisgICAgLy8gcm91bmQgdGhlIG51bWJlciBhcyByZXF1aXJlZAorICAgIG5lZWQ9bnVtLm1hbnQubGVuZ3RoLWNob3A7IC8vIGRpZ2l0cyB0byBlbmQgdXAgd2l0aCBbbWF5IGJlIDBdCisgICAgb2xkZXhwPW51bS5leHA7IC8vIHNhdmUgb2xkIGV4cG9uZW50CisgICAgbnVtLnJvdW5kKG5lZWQsZXhyb3VuZCk7CisgICAgLy8gaWYgdGhlIGV4cG9uZW50IGdyZXcgYnkgbW9yZSB0aGFuIHRoZSBkaWdpdHMgd2UgY2hvcHBlZCwgdGhlbgorICAgIC8vIHdlIG11c3QgaGF2ZSBoYWQgYSBjYXJyeSwgc28gd2lsbCBuZWVkIHRvIHJlY2hlY2sgdGhlIGxheW91dAorICAgIGlmICgobnVtLmV4cC1vbGRleHApPT1jaG9wKSAKKyAgICAgYnJlYWsgc2V0YWZ0ZXI7IC8vIG51bWJlciBkaWQgbm90IGhhdmUgY2FycnkKKyAgICAvLyBtYW50aXNzYSBnb3QgZXh0ZW5kZWQgLi4gc28gZ28gYXJvdW5kIGFuZCBjaGVjayBhZ2FpbgorICAgIH0KKyAgIH0vKnNldGFmdGVyKi8KKyAgCisgIGE9bnVtLmxheW91dCgpOyAvLyBsYXkgb3V0LCB3aXRoIGV4cG9uZW50IGlmIHJlcXVpcmVkLCBldGMuCisgIAorICAvKiBIZXJlIHdlIGhhdmUgbGFpZC1vdXQgbnVtYmVyIGluICdhJyAqLworICAvLyBub3cgYXBwbHkgJ2JlZm9yZScgYW5kICdleHBsYWNlcycgYXMgbmVlZGVkCisgIGlmIChiZWZvcmU+MCkgCisgICB7CisgICAgLy8gbG9vayBmb3IgJy4nIG9yICdFJworICAgIHtpbnQgJDExPWEubGVuZ3RoO3A9MDtwOmZvcig7JDExPjA7JDExLS0scCsrKXsKKyAgICAgaWYgKGFbcF09PScuJykgCisgICAgICBicmVhayBwOworICAgICBpZiAoYVtwXT09J0UnKSAKKyAgICAgIGJyZWFrIHA7CisgICAgIH0KKyAgICB9LypwKi8KKyAgICAvLyBwIGlzIG5vdyBvZmZzZXQgb2YgJy4nLCAnRScsIG9yIGNoYXJhY3RlciBhZnRlciBlbmQgb2YgYXJyYXkKKyAgICAvLyB0aGF0IGlzLCB0aGUgY3VycmVudCBsZW5ndGggb2YgYmVmb3JlIHBhcnQKKyAgICBpZiAocD5iZWZvcmUpIAorICAgICBiYWRhcmcoImZvcm1hdCIsMSxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoYmVmb3JlKSk7IC8vIHdvbid0IGZpdAorICAgIGlmIChwPGJlZm9yZSkgCisgICAgIHsgLy8gbmVlZCBsZWFkaW5nIGJsYW5rcworICAgICAgbmV3YT1uZXcgY2hhclsoYS5sZW5ndGgrYmVmb3JlKS1wXTsKKyAgICAgIHtpbnQgJDEyPWJlZm9yZS1wO2k9MDtpOmZvcig7JDEyPjA7JDEyLS0saSsrKXsKKyAgICAgICBuZXdhW2ldPScgJzsKKyAgICAgICB9CisgICAgICB9LyppKi8KKyAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWEsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhLGksYS5sZW5ndGgpOworICAgICAgYT1uZXdhOworICAgICB9CisgICAvLyBbaWYgcD1iZWZvcmUgdGhlbiBpdCdzIGp1c3QgdGhlIHJpZ2h0IGxlbmd0aF0KKyAgIH0KKyAgCisgIGlmIChleHBsYWNlcz4wKSAKKyAgIHsKKyAgICAvLyBsb29rIGZvciAnRScgW2Nhbm5vdCBiZSBhdCBvZmZzZXQgMF0KKyAgICB7aW50ICQxMz1hLmxlbmd0aC0xO3A9YS5sZW5ndGgtMTtwOmZvcig7JDEzPjA7JDEzLS0scC0tKXsKKyAgICAgaWYgKGFbcF09PSdFJykgCisgICAgICBicmVhayBwOworICAgICB9CisgICAgfS8qcCovCisgICAgLy8gcCBpcyBub3cgb2Zmc2V0IG9mICdFJywgb3IgMAorICAgIGlmIChwPT0wKSAKKyAgICAgeyAvLyBubyBFIHBhcnQ7IGFkZCB0cmFpbGluZyBibGFua3MKKyAgICAgIG5ld2E9bmV3IGNoYXJbKGEubGVuZ3RoK2V4cGxhY2VzKSsyXTsKKyAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWEsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhLDAsYS5sZW5ndGgpOworICAgICAge2ludCAkMTQ9ZXhwbGFjZXMrMjtpPWEubGVuZ3RoO2k6Zm9yKDskMTQ+MDskMTQtLSxpKyspeworICAgICAgIG5ld2FbaV09JyAnOworICAgICAgIH0KKyAgICAgIH0vKmkqLworICAgICAgYT1uZXdhOworICAgICB9CisgICAgZWxzZSAKKyAgICAgey8qIGZvdW5kIEUgKi8gLy8gbWF5IG5lZWQgdG8gaW5zZXJ0IHplcm9zCisgICAgICBwbGFjZXM9KGEubGVuZ3RoLXApLTI7IC8vIG51bWJlciBzbyBmYXIKKyAgICAgIGlmIChwbGFjZXM+ZXhwbGFjZXMpIAorICAgICAgIGJhZGFyZygiZm9ybWF0IiwzLGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleHBsYWNlcykpOworICAgICAgaWYgKHBsYWNlczxleHBsYWNlcykgCisgICAgICAgeyAvLyBuZWVkIHRvIGluc2VydCB6ZXJvcworICAgICAgICBuZXdhPW5ldyBjaGFyWyhhLmxlbmd0aCtleHBsYWNlcyktcGxhY2VzXTsKKyAgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpYSwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld2EsMCxwKzIpOyAvLyB0aHJvdWdoIEUgYW5kIHNpZ24KKyAgICAgICAge2ludCAkMTU9ZXhwbGFjZXMtcGxhY2VzO2k9cCsyO2k6Zm9yKDskMTU+MDskMTUtLSxpKyspeworICAgICAgICAgbmV3YVtpXT0nMCc7CisgICAgICAgICB9CisgICAgICAgIH0vKmkqLworICAgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClhLHArMiwoamF2YS5sYW5nLk9iamVjdCluZXdhLGkscGxhY2VzKTsgLy8gcmVtYWluZGVyIG9mIGV4cG9uZW50CisgICAgICAgIGE9bmV3YTsKKyAgICAgICB9CisgICAgIC8vIFtpZiBwbGFjZXM9ZXhwbGFjZXMgdGhlbiBpdCdzIGp1c3QgdGhlIHJpZ2h0IGxlbmd0aF0KKyAgICAgfQorICAgfQorICByZXR1cm4gbmV3IGphdmEubGFuZy5TdHJpbmcoYSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIGhhc2hjb2RlIGZvciB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIFRoaXMgaGFzaGNvZGUgaXMgc3VpdGFibGUgZm9yIHVzZSBieSB0aGUKKyAgKiA8Y29kZT5qYXZhLnV0aWwuSGFzaHRhYmxlPC9jb2RlPiBjbGFzcy4KKyAgKiA8cD4KKyAgKiBOb3RlIHRoYXQgdHdvIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdHMgYXJlIG9ubHkgZ3VhcmFudGVlZAorICAqIHRvIHByb2R1Y2UgdGhlIHNhbWUgaGFzaGNvZGUgaWYgdGhleSBhcmUgZXhhY3RseSBlcXVhbCAodGhhdCBpcywKKyAgKiB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRhdGlvbnMgb2YgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbnVtYmVycyBhcmUgaWRlbnRpY2FsIC0tIHRoZXkgaGF2ZSB0aGUgc2FtZQorICAqIGNoYXJhY3RlcnMgaW4gdGhlIHNhbWUgc2VxdWVuY2UpLgorICAqCisgICogQHJldHVybiBBbiA8Y29kZT5pbnQ8L2NvZGU+IHRoYXQgaXMgdGhlIGhhc2hjb2RlIGZvciA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGhhc2hDb2RlKCl7CisgIC8vIE1heWJlIGNhbGN1bGF0ZSBvdXJzZWx2ZXMsIGxhdGVyLiAgSWYgc28sIG5vdGUgdGhhdCB0aGVyZSBjYW4gYmUKKyAgLy8gbW9yZSB0aGFuIG9uZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBmb3IgYSBnaXZlbiB0b1N0cmluZygpIHJlc3VsdC4KKyAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKS5oYXNoQ29kZSgpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGFuIDxjb2RlPmludDwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBpdCBpcworICAqIGRpc2NhcmRlZC4gSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIG91dCBvZiB0aGUgcG9zc2libGUKKyAgKiByYW5nZSBmb3IgYW4gPGNvZGU+aW50PC9jb2RlPiAoMzItYml0IHNpZ25lZCBpbnRlZ2VyKSByZXN1bHQgdGhlbgorICAqIG9ubHkgdGhlIGxvdy1vcmRlciAzMiBiaXRzIGFyZSB1c2VkLiAoVGhhdCBpcywgdGhlIG51bWJlciBtYXkgYmUKKyAgKiA8aT5kZWNhcGl0YXRlZDwvaT4uKSAgVG8gYXZvaWQgdW5leHBlY3RlZCBlcnJvcnMgd2hlbiB0aGVzZQorICAqIGNvbmRpdGlvbnMgb2NjdXIsIHVzZSB0aGUge0BsaW5rICNpbnRWYWx1ZUV4YWN0fSBtZXRob2QuCisgICoKKyAgKiBAcmV0dXJuIEFuIDxjb2RlPmludDwvY29kZT4gY29udmVydGVkIGZyb20gPGNvZGU+dGhpczwvY29kZT4sCisgICogICAgICAgICB0cnVuY2F0ZWQgYW5kIGRlY2FwaXRhdGVkIGlmIG5lY2Vzc2FyeS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGludFZhbHVlKCl7CisgIHJldHVybiB0b0JpZ0ludGVnZXIoKS5pbnRWYWx1ZSgpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGFuIDxjb2RlPmludDwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBvciBpcworICAqIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGFuIDxjb2RlPmludDwvY29kZT4gKDMyLWJpdCBzaWduZWQKKyAgKiBpbnRlZ2VyKSByZXN1bHQgdGhlbiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcmV0dXJuIEFuIDxjb2RlPmludDwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICAgICAgICAgIGRlY2ltYWwgcGFydCwgb3Igd2lsbCBub3QgZml0IGluIGFuCisgICogICAgICAgICAgICAgICAgIDxjb2RlPmludDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBpbnRWYWx1ZUV4YWN0KCl7CisgIGludCBsb2RpZ2l0OworICBpbnQgdXNlZXhwPTA7CisgIGludCByZXN1bHQ7CisgIGludCBpPTA7CisgIGludCB0b3BkaWc9MDsKKyAgLy8gVGhpcyBkb2VzIG5vdCB1c2UgbG9uZ1ZhbHVlRXhhY3QoKSBhcyB0aGUgbGF0dGVyIGNhbiBiZSBtdWNoCisgIC8vIHNsb3dlci4KKyAgLy8gaW50Y2hlY2sgKGZyb20gcG93KSByZWxpZXMgb24gdGhpcyB0byBjaGVjayBkZWNpbWFsIHBhcnQKKyAgaWYgKGluZD09aXN6ZXJvKSAKKyAgIHJldHVybiAwOyAvLyBlYXN5LCBhbmQgcXVpdGUgY29tbW9uCisgIC8qIHRlc3QgYW5kIGRyb3AgYW55IHRyYWlsaW5nIGRlY2ltYWwgcGFydCAqLworICBsb2RpZ2l0PW1hbnQubGVuZ3RoLTE7CisgIGlmIChleHA8MCkgCisgICB7CisgICAgbG9kaWdpdD1sb2RpZ2l0K2V4cDsgLy8gcmVkdWNlcyBieSAtKC1leHApCisgICAgLyogYWxsIGRlY2ltYWwgcGxhY2VzIG11c3QgYmUgMCAqLworICAgIGlmICgoIShhbGx6ZXJvKG1hbnQsbG9kaWdpdCsxKSkpKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICBpZiAobG9kaWdpdDwwKSAKKyAgICAgcmV0dXJuIDA7IC8vIC0xPHRoaXM8MQorICAgIHVzZWV4cD0wOworICAgfQorICBlbHNlIAorICAgey8qID49MCAqLworICAgIGlmICgoZXhwK2xvZGlnaXQpPjkpICAvLyBlYXJseSBleGl0CisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgIHVzZWV4cD1leHA7CisgICB9CisgIC8qIGNvbnZlcnQgdGhlIG1hbnRpc3NhIHRvIGJpbmFyeSwgaW5saW5lIGZvciBzcGVlZCAqLworICByZXN1bHQ9MDsKKyAge2ludCAkMTY9bG9kaWdpdCt1c2VleHA7aT0wO2k6Zm9yKDtpPD0kMTY7aSsrKXsKKyAgIHJlc3VsdD1yZXN1bHQqMTA7CisgICBpZiAoaTw9bG9kaWdpdCkgCisgICAgcmVzdWx0PXJlc3VsdCttYW50W2ldOworICAgfQorICB9LyppKi8KKyAgCisgIC8qIE5vdywgaWYgdGhlIHJpc2t5IGxlbmd0aCwgY2hlY2sgZm9yIG92ZXJmbG93ICovCisgIGlmICgobG9kaWdpdCt1c2VleHApPT05KSAKKyAgIHsKKyAgICAvLyBub3RlIHdlIGNhbm5vdCBqdXN0IHRlc3QgZm9yIC12ZSByZXN1bHQsIGFzIG92ZXJmbG93IGNhbiBtb3ZlIGEKKyAgICAvLyB6ZXJvIGludG8gdGhlIHRvcCBiaXQgW2NvbnNpZGVyIDU1NTU1NTU1NTVdCisgICAgdG9wZGlnPXJlc3VsdC8xMDAwMDAwMDAwOyAvLyBnZXQgdG9wIGRpZ2l0LCBwcmVzZXJ2aW5nIHNpZ24KKyAgICBpZiAodG9wZGlnIT1tYW50WzBdKSAKKyAgICAgeyAvLyBkaWdpdCBtdXN0IG1hdGNoIGFuZCBiZSBwb3NpdGl2ZQorICAgICAgLy8gZXhjZXB0IGluIHRoZSBzcGVjaWFsIGNhc2UgLi4uCisgICAgICBpZiAocmVzdWx0PT1qYXZhLmxhbmcuSW50ZWdlci5NSU5fVkFMVUUpICAvLyBsb29rcyBsaWtlIHRoZSBzcGVjaWFsCisgICAgICAgaWYgKGluZD09aXNuZWcpICAvLyByZWFsbHkgd2FzIG5lZ2F0aXZlCisgICAgICAgIGlmIChtYW50WzBdPT0yKSAKKyAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIHJlYWxseSBoYWQgdG9wIGRpZ2l0IDIKKyAgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgICB9CisgICB9CisgIAorICAvKiBMb29rcyBnb29kICovCisgIGlmIChpbmQ9PWlzcG9zKSAKKyAgIHJldHVybiByZXN1bHQ7CisgIHJldHVybiAoaW50KS1yZXN1bHQ7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5sb25nPC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaGFzIGEgbm9uLXplcm8gZGVjaW1hbCBwYXJ0IGl0IGlzCisgICogZGlzY2FyZGVkLiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgb3V0IG9mIHRoZSBwb3NzaWJsZQorICAqIHJhbmdlIGZvciBhIDxjb2RlPmxvbmc8L2NvZGU+ICg2NC1iaXQgc2lnbmVkIGludGVnZXIpIHJlc3VsdCB0aGVuCisgICogb25seSB0aGUgbG93LW9yZGVyIDY0IGJpdHMgYXJlIHVzZWQuIChUaGF0IGlzLCB0aGUgbnVtYmVyIG1heSBiZQorICAqIDxpPmRlY2FwaXRhdGVkPC9pPi4pICBUbyBhdm9pZCB1bmV4cGVjdGVkIGVycm9ycyB3aGVuIHRoZXNlCisgICogY29uZGl0aW9ucyBvY2N1ciwgdXNlIHRoZSB7QGxpbmsgI2xvbmdWYWx1ZUV4YWN0fSBtZXRob2QuCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+bG9uZzwvY29kZT4gY29udmVydGVkIGZyb20gPGNvZGU+dGhpczwvY29kZT4sCisgICogICAgICAgICB0cnVuY2F0ZWQgYW5kIGRlY2FwaXRhdGVkIGlmIG5lY2Vzc2FyeS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgbG9uZyBsb25nVmFsdWUoKXsKKyAgcmV0dXJuIHRvQmlnSW50ZWdlcigpLmxvbmdWYWx1ZSgpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEgPGNvZGU+bG9uZzwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBvciBpcworICAqIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGEgPGNvZGU+bG9uZzwvY29kZT4gKDY0LWJpdCBzaWduZWQKKyAgKiBpbnRlZ2VyKSByZXN1bHQgdGhlbiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+bG9uZzwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICAgICAgICAgIGRlY2ltYWwgcGFydCwgb3Igd2lsbCBub3QgZml0IGluIGEKKyAgKiAgICAgICAgICAgICAgICAgPGNvZGU+bG9uZzwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGxvbmcgbG9uZ1ZhbHVlRXhhY3QoKXsKKyAgaW50IGxvZGlnaXQ7CisgIGludCBjc3RhcnQ9MDsKKyAgaW50IHVzZWV4cD0wOworICBsb25nIHJlc3VsdDsKKyAgaW50IGk9MDsKKyAgbG9uZyB0b3BkaWc9MDsKKyAgLy8gSWRlbnRpY2FsIHRvIGludFZhbHVlRXhhY3QgZXhjZXB0IGZvciByZXN1bHQ9bG9uZywgYW5kIGV4cD49MjAgdGVzdAorICBpZiAoaW5kPT0wKSAKKyAgIHJldHVybiAwOyAvLyBlYXN5LCBhbmQgcXVpdGUgY29tbW9uCisgIGxvZGlnaXQ9bWFudC5sZW5ndGgtMTsgLy8gbGFzdCBpbmNsdWRlZCBkaWdpdAorICBpZiAoZXhwPDApIAorICAgeworICAgIGxvZGlnaXQ9bG9kaWdpdCtleHA7IC8vIC0oLWV4cCkKKyAgICAvKiBhbGwgZGVjaW1hbCBwbGFjZXMgbXVzdCBiZSAwICovCisgICAgaWYgKGxvZGlnaXQ8MCkgCisgICAgIGNzdGFydD0wOworICAgIGVsc2UgCisgICAgIGNzdGFydD1sb2RpZ2l0KzE7CisgICAgaWYgKCghKGFsbHplcm8obWFudCxjc3RhcnQpKSkpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkRlY2ltYWwgcGFydCBub24temVybzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgIGlmIChsb2RpZ2l0PDApIAorICAgICByZXR1cm4gMDsgLy8gLTE8dGhpczwxCisgICAgdXNlZXhwPTA7CisgICB9CisgIGVsc2UgCisgICB7LyogPj0wICovCisgICAgaWYgKChleHArbWFudC5sZW5ndGgpPjE4KSAgLy8gZWFybHkgZXhpdAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICB1c2VleHA9ZXhwOworICAgfQorICAKKyAgLyogY29udmVydCB0aGUgbWFudGlzc2EgdG8gYmluYXJ5LCBpbmxpbmUgZm9yIHNwZWVkICovCisgIC8vIG5vdGUgdGhhdCB3ZSBjb3VsZCBzYWZlbHkgdXNlIHRoZSAndGVzdCBmb3Igd3JhcCB0byBuZWdhdGl2ZScKKyAgLy8gYWxnb3JpdGhtIGhlcmUsIGJ1dCBpbnN0ZWFkIHdlIHBhcmFsbGVsIHRoZSBpbnRWYWx1ZUV4YWN0CisgIC8vIGFsZ29yaXRobSBmb3IgZWFzZSBvZiBjaGVja2luZyBhbmQgbWFpbnRlbmFuY2UuCisgIHJlc3VsdD0obG9uZykwOworICB7aW50ICQxNz1sb2RpZ2l0K3VzZWV4cDtpPTA7aTpmb3IoO2k8PSQxNztpKyspeworICAgcmVzdWx0PXJlc3VsdCoxMDsKKyAgIGlmIChpPD1sb2RpZ2l0KSAKKyAgICByZXN1bHQ9cmVzdWx0K21hbnRbaV07CisgICB9CisgIH0vKmkqLworICAKKyAgLyogTm93LCBpZiB0aGUgcmlza3kgbGVuZ3RoLCBjaGVjayBmb3Igb3ZlcmZsb3cgKi8KKyAgaWYgKChsb2RpZ2l0K3VzZWV4cCk9PTE4KSAKKyAgIHsKKyAgICB0b3BkaWc9cmVzdWx0LzEwMDAwMDAwMDAwMDAwMDAwMDBMOyAvLyBnZXQgdG9wIGRpZ2l0LCBwcmVzZXJ2aW5nIHNpZ24KKyAgICBpZiAodG9wZGlnIT1tYW50WzBdKSAKKyAgICAgeyAvLyBkaWdpdCBtdXN0IG1hdGNoIGFuZCBiZSBwb3NpdGl2ZQorICAgICAgLy8gZXhjZXB0IGluIHRoZSBzcGVjaWFsIGNhc2UgLi4uCisgICAgICBpZiAocmVzdWx0PT1qYXZhLmxhbmcuTG9uZy5NSU5fVkFMVUUpICAvLyBsb29rcyBsaWtlIHRoZSBzcGVjaWFsCisgICAgICAgaWYgKGluZD09aXNuZWcpICAvLyByZWFsbHkgd2FzIG5lZ2F0aXZlCisgICAgICAgIGlmIChtYW50WzBdPT05KSAKKyAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIHJlYWxseSBoYWQgdG9wIGRpZ2l0IDkKKyAgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgICB9CisgICB9CisgIAorICAvKiBMb29rcyBnb29kICovCisgIGlmIChpbmQ9PWlzcG9zKSAKKyAgIHJldHVybiByZXN1bHQ7CisgIHJldHVybiAobG9uZyktcmVzdWx0OworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgZGVjaW1hbCBwb2ludCBoYXMKKyAgKiBiZWVuIG1vdmVkIHRvIHRoZSBsZWZ0IGJ5IGEgc3BlY2lmaWVkIG51bWJlciBvZiBwb3NpdGlvbnMuCisgICogVGhlIHBhcmFtZXRlciwgPGNvZGU+bjwvY29kZT4sIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyB0bworICAqIG1vdmUgdGhlIGRlY2ltYWwgcG9pbnQuCisgICogVGhhdCBpcywgaWYgPGNvZGU+bjwvY29kZT4gaXMgMCBvciBwb3NpdGl2ZSwgdGhlIG51bWJlciByZXR1cm5lZCBpcworICAqIGdpdmVuIGJ5OgorICAqIDxwPjxjb2RlPgorICAqIHRoaXMubXVsdGlwbHkoVEVOLnBvdyhuZXcgQmlnRGVjaW1hbCgtbikpKQorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiA8Y29kZT5uPC9jb2RlPiBtYXkgYmUgbmVnYXRpdmUsIGluIHdoaWNoIGNhc2UgdGhlIG1ldGhvZCByZXR1cm5zCisgICogdGhlIHNhbWUgcmVzdWx0IGFzIDxjb2RlPm1vdmVQb2ludFJpZ2h0KC1uKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIG4gVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcyB0bworICAqICAgICAgICAgICBtb3ZlIHRoZSBkZWNpbWFsIHBvaW50IGxlZnR3YXJkcy4KKyAgKiBAcmV0dXJuICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBkZXJpdmVkIGZyb20KKyAgKiAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4sIHdpdGggdGhlIGRlY2ltYWwgcG9pbnQgbW92ZWQKKyAgKiAgICAgICAgICAgPGNvZGU+bjwvY29kZT4gcGxhY2VzIHRvIHRoZSBsZWZ0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbW92ZVBvaW50TGVmdChpbnQgbil7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIC8vIHZlcnkgbGl0dGxlIHBvaW50IGluIG9wdGltaXppbmcgZm9yIHNoaWZ0IG9mIDAKKyAgcmVzPWNsb25lKHRoaXMpOworICByZXMuZXhwPXJlcy5leHAtbjsKKyAgcmV0dXJuIHJlcy5maW5pc2gocGxhaW5NQyxmYWxzZSk7IC8vIGZpbmlzaCBzZXRzIGZvcm0gYW5kIGNoZWNrcyBleHBvbmVudAorICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgZGVjaW1hbCBwb2ludCBoYXMKKyAgKiBiZWVuIG1vdmVkIHRvIHRoZSByaWdodCBieSBhIHNwZWNpZmllZCBudW1iZXIgb2YgcG9zaXRpb25zLgorICAqIFRoZSBwYXJhbWV0ZXIsIDxjb2RlPm48L2NvZGU+LCBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwb3NpdGlvbnMgdG8KKyAgKiBtb3ZlIHRoZSBkZWNpbWFsIHBvaW50LgorICAqIFRoYXQgaXMsIGlmIDxjb2RlPm48L2NvZGU+IGlzIDAgb3IgcG9zaXRpdmUsIHRoZSBudW1iZXIgcmV0dXJuZWQgaXMKKyAgKiBnaXZlbiBieToKKyAgKiA8cD48Y29kZT4KKyAgKiB0aGlzLm11bHRpcGx5KFRFTi5wb3cobmV3IEJpZ0RlY2ltYWwobikpKQorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiA8Y29kZT5uPC9jb2RlPiBtYXkgYmUgbmVnYXRpdmUsIGluIHdoaWNoIGNhc2UgdGhlIG1ldGhvZCByZXR1cm5zCisgICogdGhlIHNhbWUgcmVzdWx0IGFzIDxjb2RlPm1vdmVQb2ludExlZnQoLW4pPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgbiBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzIHRvCisgICogICAgICAgICAgIG1vdmUgdGhlIGRlY2ltYWwgcG9pbnQgcmlnaHR3YXJkcy4KKyAgKiBAcmV0dXJuICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBkZXJpdmVkIGZyb20KKyAgKiAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4sIHdpdGggdGhlIGRlY2ltYWwgcG9pbnQgbW92ZWQKKyAgKiAgICAgICAgICAgPGNvZGU+bjwvY29kZT4gcGxhY2VzIHRvIHRoZSByaWdodC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1vdmVQb2ludFJpZ2h0KGludCBuKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgcmVzPWNsb25lKHRoaXMpOworICByZXMuZXhwPXJlcy5leHArbjsKKyAgcmV0dXJuIHJlcy5maW5pc2gocGxhaW5NQyxmYWxzZSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIHNjYWxlIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogUmV0dXJucyBhIG5vbi1uZWdhdGl2ZSA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIHRoZSBzY2FsZSBvZiB0aGUKKyAgKiBudW1iZXIuIFRoZSBzY2FsZSBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZGVjaW1hbCBwYXJ0IG9mCisgICogdGhlIG51bWJlciBpZiB0aGUgbnVtYmVyIHdlcmUgZm9ybWF0dGVkIHdpdGhvdXQgZXhwb25lbnRpYWwKKyAgKiBub3RhdGlvbi4KKyAgKgorICAqIEByZXR1cm4gQW4gPGNvZGU+aW50PC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgc2NhbGUgb2YgdGhpcworICAqICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBzY2FsZSgpeworICBpZiAoZXhwPj0wKSAKKyAgIHJldHVybiAwOyAvLyBzY2FsZSBjYW4gbmV2ZXIgYmUgbmVnYXRpdmUKKyAgcmV0dXJuIChpbnQpLWV4cDsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggYSBnaXZlbiBzY2FsZS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZ2l2ZW4gc2NhbGUgKHdoaWNoIG11c3QgYmUgemVybyBvciBwb3NpdGl2ZSkgaXMgdGhlIHNhbWUgYXMKKyAgKiBvciBncmVhdGVyIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoaXMKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0aGVuIHRyYWlsaW5nIHplcm9zIHdpbGwgYmUgYWRkZWQgdG8gdGhlCisgICogZGVjaW1hbCBwYXJ0IGFzIG5lY2Vzc2FyeS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZ2l2ZW4gc2NhbGUgaXMgbGVzcyB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlCisgICogc2NhbGUpIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdGhlbiB0cmFpbGluZyBkaWdpdHMKKyAgKiB3aWxsIGJlIHJlbW92ZWQsIGFuZCBpbiB0aGlzIGNhc2UgYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgYW55IGRpc2NhcmRlZCBkaWdpdHMKKyAgKiBhcmUgbm9uLXplcm8uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNzZXRTY2FsZShpbnQsIGludCl9LCB3aGVyZSB0aGUgZmlyc3QgcGFyYW1ldGVyCisgICogaXMgdGhlIHNjYWxlLCBhbmQgdGhlIHNlY29uZCBpcworICAqIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgc2NhbGUgb2YgdGhlCisgICogICAgICAgICAgICAgICByZXN1bHRpbmcgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHJldHVybiAgICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggdGhlIGdpdmVuIHNjYWxlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5zY2FsZTwvY29kZT4gaXMgbmVnYXRpdmUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIHJlZHVjaW5nIHNjYWxlIHdvdWxkIGRpc2NhcmQKKyAgKiAgICAgICAgICAgICAgIG5vbi16ZXJvIGRpZ2l0cy4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHNldFNjYWxlKGludCBzY2FsZSl7CisgIHJldHVybiBzZXRTY2FsZShzY2FsZSxST1VORF9VTk5FQ0VTU0FSWSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIGEgZ2l2ZW4gc2NhbGUuCisgICogPHA+CisgICogSWYgdGhlIGdpdmVuIHNjYWxlICh3aGljaCBtdXN0IGJlIHplcm8gb3IgcG9zaXRpdmUpIGlzIHRoZSBzYW1lIGFzCisgICogb3IgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGlzCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdGhlbiB0cmFpbGluZyB6ZXJvcyB3aWxsIGJlIGFkZGVkIHRvIHRoZQorICAqIGRlY2ltYWwgcGFydCBhcyBuZWNlc3NhcnkuCisgICogPHA+CisgICogSWYgdGhlIGdpdmVuIHNjYWxlIGlzIGxlc3MgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZQorICAqIHNjYWxlKSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRoZW4gdHJhaWxpbmcgZGlnaXRzCisgICogd2lsbCBiZSByZW1vdmVkLCBhbmQgdGhlIHJvdW5kaW5nIG1vZGUgZ2l2ZW4gYnkgdGhlIHNlY29uZAorICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgcmVtYWluaW5nIGRpZ2l0cyBhcmUKKyAgKiBhZmZlY3RlZCBieSBhIGNhcnJ5LgorICAqIEluIHRoaXMgY2FzZSwgYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYKKyAgKiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgbm90IGEgdmFsaWQgcm91bmRpbmcgbW9kZS4KKyAgKiA8cD4KKyAgKiBJZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgPGNvZGU+TWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+LAorICAqIGFuIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiBhbnkgZGlzY2FyZGVkCisgICogZGlnaXRzIGFyZSBub24temVyby4KKyAgKgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgc2NhbGUgb2YgdGhlCisgICogICAgICAgICAgICAgICByZXN1bHRpbmcgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHBhcmFtICByb3VuZCBUaGUgPGNvZGU+aW50PC9jb2RlPiByb3VuZGluZyBtb2RlIHRvIGJlIHVzZWQgZm9yCisgICogICAgICAgICAgICAgICB0aGUgZGl2aXNpb24gKHNlZSB0aGUge0BsaW5rIE1hdGhDb250ZXh0fSBjbGFzcykuCisgICogQHJldHVybiAgICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggdGhlIGdpdmVuIHNjYWxlLgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyBub3QgYQorICAqICAgICAgICAgICAgICAgdmFsaWQgcm91bmRpbmcgbW9kZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+c2NhbGU8L2NvZGU+IGlzIG5lZ2F0aXZlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMKKyAgKiAgICAgICAgICAgICAgIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPiwgYW5kCisgICogICAgICAgICAgICAgICByZWR1Y2luZyBzY2FsZSB3b3VsZCBkaXNjYXJkIG5vbi16ZXJvIGRpZ2l0cy4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHNldFNjYWxlKGludCBzY2FsZSxpbnQgcm91bmQpeworICBpbnQgb3Vyc2NhbGU7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIGludCBwYWRkaW5nPTA7CisgIGludCBuZXdsZW49MDsKKyAgLy8gYXQgcHJlc2VudCB0aGlzIG5hdWdodGlseSBvbmx5IGNoZWNrcyB0aGUgcm91bmQgdmFsdWUgaWYgaXQgaXMKKyAgLy8gbmVlZGVkICh1c2VkKSwgZm9yIHNwZWVkCisgIG91cnNjYWxlPXRoaXMuc2NhbGUoKTsKKyAgaWYgKG91cnNjYWxlPT1zY2FsZSkgIC8vIGFscmVhZHkgY29ycmVjdCBzY2FsZQorICAgaWYgKHRoaXMuZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgIC8vIC4uIGFuZCBmb3JtCisgICAgcmV0dXJuIHRoaXM7CisgIHJlcz1jbG9uZSh0aGlzKTsgLy8gbmVlZCBjb3B5CisgIGlmIChvdXJzY2FsZTw9c2NhbGUpIAorICAgeyAvLyBzaW1wbHkgemVyby1wYWRkaW5nL2NoYW5naW5nIGZvcm0KKyAgICAvLyBpZiBvdXJzY2FsZSBpcyAwIHdlIG1heSBoYXZlIGxvdHMgb2YgMHMgdG8gYWRkCisgICAgaWYgKG91cnNjYWxlPT0wKSAKKyAgICAgcGFkZGluZz1yZXMuZXhwK3NjYWxlOworICAgIGVsc2UgCisgICAgIHBhZGRpbmc9c2NhbGUtb3Vyc2NhbGU7CisgICAgcmVzLm1hbnQ9ZXh0ZW5kKHJlcy5tYW50LHJlcy5tYW50Lmxlbmd0aCtwYWRkaW5nKTsKKyAgICByZXMuZXhwPShpbnQpLXNjYWxlOyAvLyBhcyByZXF1ZXN0ZWQKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBvdXJzY2FsZT5zY2FsZTogc2hvcnRlbmluZywgcHJvYmFibHkgKi8KKyAgICBpZiAoc2NhbGU8MCkgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiTmVnYXRpdmUgc2NhbGU6IisiICIrc2NhbGUpOworICAgIC8vIFtyb3VuZCgpIHdpbGwgcmFpc2UgZXhjZXB0aW9uIGlmIGludmFsaWQgcm91bmRdCisgICAgbmV3bGVuPXJlcy5tYW50Lmxlbmd0aC0oKG91cnNjYWxlLXNjYWxlKSk7IC8vIFs8PTAgaXMgT0tdCisgICAgcmVzPXJlcy5yb3VuZChuZXdsZW4scm91bmQpOyAvLyByb3VuZCB0byByZXF1aXJlZCBsZW5ndGgKKyAgICAvLyBUaGlzIGNvdWxkIGhhdmUgc2hpZnRlZCBsZWZ0IGlmIHJvdW5kIChzYXkpIDAuOS0+MVsuMF0KKyAgICAvLyBSZXBhaXIgaWYgc28gYnkgYWRkaW5nIGEgemVybyBhbmQgcmVkdWNpbmcgZXhwb25lbnQKKyAgICBpZiAocmVzLmV4cCE9KChpbnQpLXNjYWxlKSkgCisgICAgIHsKKyAgICAgIHJlcy5tYW50PWV4dGVuZChyZXMubWFudCxyZXMubWFudC5sZW5ndGgrMSk7CisgICAgICByZXMuZXhwPXJlcy5leHAtMTsKKyAgICAgfQorICAgfQorICByZXMuZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOyAvLyBieSBkZWZpbml0aW9uCisgIHJldHVybiByZXM7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5zaG9ydDwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBvciBpcworICAqIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGEgPGNvZGU+c2hvcnQ8L2NvZGU+ICgxNi1iaXQgc2lnbmVkCisgICogaW50ZWdlcikgcmVzdWx0IHRoZW4gYW4gPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqCisgICogQHJldHVybiBBIDxjb2RlPnNob3J0PC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+dGhpczwvY29kZT4gaGFzIGEgbm9uLXplcm8KKyAgKiAgICAgICAgICAgICAgICAgZGVjaW1hbCBwYXJ0LCBvciB3aWxsIG5vdCBmaXQgaW4gYQorICAqICAgICAgICAgICAgICAgICA8Y29kZT5zaG9ydDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIHNob3J0IHNob3J0VmFsdWVFeGFjdCgpeworICBpbnQgbnVtOworICBudW09dGhpcy5pbnRWYWx1ZUV4YWN0KCk7IC8vIHdpbGwgY2hlY2sgZGVjaW1hbCBwYXJ0IHRvbworICBpZiAoKG51bT4zMjc2Nyl8KG51bTwoLTMyNzY4KSkpIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgIHJldHVybiAoc2hvcnQpbnVtOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBzaWduIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIGFzIGFuCisgICogPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBUaGlzIHJldHVybnMgdGhlIDxpPnNpZ251bTwvaT4gZnVuY3Rpb24gdmFsdWUgdGhhdCByZXByZXNlbnRzIHRoZQorICAqIHNpZ24gb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBUaGF0IGlzLCAtMSBpZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgbmVnYXRpdmUsIDAgaWYgaXQgaXMKKyAgKiBudW1lcmljYWxseSBlcXVhbCB0byB6ZXJvLCBvciAxIGlmIGl0IGlzIHBvc2l0aXZlLgorICAqCisgICogQHJldHVybiBBbiA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIC0xIGlmIHRoZQorICAqICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgbmVnYXRpdmUsIDAgaWYgaXQgaXMKKyAgKiAgICAgICAgIG51bWVyaWNhbGx5IGVxdWFsIHRvIHplcm8sIG9yIDEgaWYgaXQgaXMgcG9zaXRpdmUuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBzaWdudW0oKXsKKyAgcmV0dXJuIChpbnQpdGhpcy5pbmQ7IC8vIFtub3RlIHRoaXMgYXNzdW1lcyB2YWx1ZXMgZm9yIGluZC5dCisgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEKKyAgKiA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbDwvY29kZT4uCisgICogPHA+CisgICogVGhpcyBpcyBhbiBleGFjdCBjb252ZXJzaW9uOyB0aGUgcmVzdWx0IGlzIHRoZSBzYW1lIGFzIGlmIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdlcmUgZm9ybWF0dGVkIGFzIGEgcGxhaW4gbnVtYmVyIHdpdGhvdXQKKyAgKiBhbnkgcm91bmRpbmcgb3IgZXhwb25lbnQgYW5kIHRoZW4gdGhlCisgICogPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyk8L2NvZGU+IGNvbnN0cnVjdG9yCisgICogd2VyZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgcmVzdWx0LgorICAqIDxwPgorICAqIDxpPihOb3RlOiB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBvbmx5IGluIHRoZQorICAqIDxjb2RlPmNvbS5pYm0uaWN1Lm1hdGg8L2NvZGU+IHZlcnNpb24gb2YgdGhlIEJpZ0RlY2ltYWwgY2xhc3MuCisgICogSXQgd291bGQgbm90IGJlIHByZXNlbnQgaW4gYSA8Y29kZT5qYXZhLm1hdGg8L2NvZGU+IHZlcnNpb24uKTwvaT4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZQorICAqICAgICAgICAgdG8gdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5tYXRoLkJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsKCl7CisgIHJldHVybiBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwodGhpcy51bnNjYWxlZFZhbHVlKCksdGhpcy5zY2FsZSgpKTsKKyAgfQorLy8jZW5kaWYKKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBBbnkgZGVjaW1hbCBwYXJ0IGlzIHRydW5jYXRlZCAoZGlzY2FyZGVkKS4KKyAgKiBJZiBhbiBleGNlcHRpb24gaXMgZGVzaXJlZCBzaG91bGQgdGhlIGRlY2ltYWwgcGFydCBiZSBub24temVybywKKyAgKiB1c2Uge0BsaW5rICN0b0JpZ0ludGVnZXJFeGFjdCgpfS4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZQorICAqICAgICAgICAgdG8gdGhlIGludGVnZXIgcGFydCBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBqYXZhLm1hdGguQmlnSW50ZWdlciB0b0JpZ0ludGVnZXIoKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlcz1udWxsOworICBpbnQgbmV3bGVuPTA7CisgIGJ5dGUgbmV3bWFudFtdPW51bGw7CisgIHsvKnNlbGVjdCovCisgIGlmICgoZXhwPj0wKSYoZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikpCisgICByZXM9dGhpczsgLy8gY2FuIGxheW91dCBzaW1wbHkKKyAgZWxzZSBpZiAoZXhwPj0wKQorICAgeworICAgIHJlcz1jbG9uZSh0aGlzKTsgLy8gc2FmZSBjb3B5CisgICAgcmVzLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsgLy8gLi4gYW5kIHJlcXVlc3QgUExBSU4KKyAgIH0KKyAgZWxzZXsKKyAgIHsgLy8gZXhwPDA7IHNjYWxlIHRvIGJlIHRydW5jYXRlZAorICAgIC8vIHdlIGNvdWxkIHVzZSBkaXZpZGVJbnRlZ2VyLCBidXQgd2UgbWF5IGFzIHdlbGwgYmUgcXVpY2tlcgorICAgIGlmICgoKGludCktdGhpcy5leHApPj10aGlzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmVzPVpFUk87IC8vIGFsbCBibG93cyBhd2F5CisgICAgZWxzZSAKKyAgICAgeworICAgICAgcmVzPWNsb25lKHRoaXMpOyAvLyBzYWZlIGNvcHkKKyAgICAgIG5ld2xlbj1yZXMubWFudC5sZW5ndGgrcmVzLmV4cDsKKyAgICAgIG5ld21hbnQ9bmV3IGJ5dGVbbmV3bGVuXTsgLy8gW3Nob3J0ZXJdCisgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClyZXMubWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCxuZXdsZW4pOworICAgICAgcmVzLm1hbnQ9bmV3bWFudDsKKyAgICAgIHJlcy5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgICAgICByZXMuZXhwPTA7CisgICAgIH0KKyAgIH0KKyAgfQorICB9CisgIHJldHVybiBuZXcgQmlnSW50ZWdlcihuZXcgamF2YS5sYW5nLlN0cmluZyhyZXMubGF5b3V0KCkpKTsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhCisgICogPGNvZGU+amF2YS5tYXRoLkJpZ0ludGVnZXI8L2NvZGU+LgorICAqIDxwPgorICAqIEFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgdGhlIGRlY2ltYWwgcGFydCAoaWYgYW55KSBpcyBub24temVyby4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZQorICAqICAgICAgICAgdG8gdGhlIGludGVnZXIgcGFydCBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT50aGlzPC9jb2RlPiBoYXMgYSBub24temVybworICAqICAgICAgICAgZGVjaW1hbCBwYXJ0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBqYXZhLm1hdGguQmlnSW50ZWdlciB0b0JpZ0ludGVnZXJFeGFjdCgpeworICAvKiB0ZXN0IGFueSB0cmFpbGluZyBkZWNpbWFsIHBhcnQgKi8KKyAgaWYgKGV4cDwwKSAKKyAgIHsgLy8gcG9zc2libGUgZGVjaW1hbCBwYXJ0CisgICAgLyogYWxsIGRlY2ltYWwgcGxhY2VzIG11c3QgYmUgMDsgbm90ZSBleHA8MCAqLworICAgIGlmICgoIShhbGx6ZXJvKG1hbnQsbWFudC5sZW5ndGgrZXhwKSkpKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgIH0KKyAgcmV0dXJuIHRvQmlnSW50ZWdlcigpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyBhIGNoYXJhY3RlciBhcnJheS4KKyAgKiBUaGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIGlzIHRoZSBzYW1lIGFzIHVzaW5nIHRoZQorICAqIHNlcXVlbmNlIDxjb2RlPnRvU3RyaW5nKCkudG9DaGFyQXJyYXkoKTwvY29kZT4sIGJ1dCBhdm9pZHMgY3JlYXRpbmcKKyAgKiB0aGUgaW50ZXJtZWRpYXRlIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kIDxjb2RlPmNoYXJbXTwvY29kZT4KKyAgKiBvYmplY3RzLgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+Y2hhcltdPC9jb2RlPiBhcnJheSBjb3JyZXNwb25kaW5nIHRvIHRoaXMKKyAgKiAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjaGFyW10gdG9DaGFyQXJyYXkoKXsKKyAgcmV0dXJuIGxheW91dCgpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4uCisgICogVGhpcyByZXR1cm5zIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiB0aGF0IGV4YWN0bHkgcmVwcmVzZW50cyB0aGlzCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbgorICAqIChzZWUge0BsaW5rIEJpZ0RlY2ltYWwgY2xhc3MgaGVhZGVyfSkuCisgICogPHA+CisgICogQnkgZGVmaW5pdGlvbiwgdXNpbmcgdGhlIHtAbGluayAjQmlnRGVjaW1hbChTdHJpbmcpfSBjb25zdHJ1Y3RvcgorICAqIG9uIHRoZSByZXN1bHQgPGNvZGU+U3RyaW5nPC9jb2RlPiB3aWxsIGNyZWF0ZSBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdGhhdCBpcyBleGFjdGx5IGVxdWFsIHRvIHRoZSBvcmlnaW5hbAorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+U3RyaW5nPC9jb2RlPiBleGFjdGx5IGNvcnJlc3BvbmRpbmcgdG8gdGhpcworICAqICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHNlZSAgICAjZm9ybWF0KGludCwgaW50KQorICAqIEBzZWUgICAgI2Zvcm1hdChpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50KQorICAqIEBzZWUgICAgI3RvQ2hhckFycmF5KCkKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpeworICByZXR1cm4gbmV3IGphdmEubGFuZy5TdHJpbmcobGF5b3V0KCkpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBudW1iZXIgYXMgYSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBhZnRlciByZW1vdmluZyB0aGUKKyAgKiBzY2FsZS4KKyAgKiBUaGF0IGlzLCB0aGUgbnVtYmVyIGlzIGV4cHJlc3NlZCBhcyBhIHBsYWluIG51bWJlciwgYW55IGRlY2ltYWwKKyAgKiBwb2ludCBpcyB0aGVuIHJlbW92ZWQgKHJldGFpbmluZyB0aGUgZGlnaXRzIG9mIGFueSBkZWNpbWFsIHBhcnQpLAorICAqIGFuZCB0aGUgcmVzdWx0IGlzIHRoZW4gY29udmVydGVkIHRvIGEgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4uCisgICoKKyAgKiBAcmV0dXJuIFRoZSA8Y29kZT5qYXZhLm1hdGguQmlnSW50ZWdlcjwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8KKyAgKiAgICAgICAgIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbXVsdGlwbGllZCBieSB0ZW4gdG8gdGhlCisgICogICAgICAgICBwb3dlciBvZiA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBqYXZhLm1hdGguQmlnSW50ZWdlciB1bnNjYWxlZFZhbHVlKCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM9bnVsbDsKKyAgaWYgKGV4cD49MCkgCisgICByZXM9dGhpczsKKyAgZWxzZSAKKyAgIHsKKyAgICByZXM9Y2xvbmUodGhpcyk7IC8vIHNhZmUgY29weQorICAgIHJlcy5leHA9MDsgLy8gZHJvcCBzY2FsZQorICAgfQorICByZXR1cm4gcmVzLnRvQmlnSW50ZWdlcigpOworICB9CisKKyAvKioKKyAgKiBUcmFuc2xhdGVzIGEgPGNvZGU+ZG91YmxlPC9jb2RlPiB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIDxwPgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA2NC1iaXQgc2lnbmVkIGJpbmFyeSBmbG9hdGluZyBwb2ludAorICAqIHBhcmFtZXRlci4gSWYgdGhlIHBhcmFtZXRlciBpcyBpbmZpbml0ZSwgb3IgaXMgbm90IGEgbnVtYmVyIChOYU4pLAorICAqIGEgPGNvZGU+TnVtYmVyRm9ybWF0RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICogPHA+CisgICogVGhlIG51bWJlciBpcyBjb25zdHJ1Y3RlZCBhcyB0aG91Z2ggPGNvZGU+bnVtPC9jb2RlPiBoYWQgYmVlbgorICAqIGNvbnZlcnRlZCB0byBhIDxjb2RlPlN0cmluZzwvY29kZT4gdXNpbmcgdGhlCisgICogPGNvZGU+RG91YmxlLnRvU3RyaW5nKCk8L2NvZGU+IG1ldGhvZCBhbmQgdGhlCisgICoge0BsaW5rICNCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpfSBjb25zdHJ1Y3RvciBoYWQgdGhlbiBiZWVuIHVzZWQuCisgICogVGhpcyBpcyB0eXBpY2FsbHkgbm90IGFuIGV4YWN0IGNvbnZlcnNpb24uCisgICoKKyAgKiBAcGFyYW0gIGR1YiBUaGUgPGNvZGU+ZG91YmxlPC9jb2RlPiB0byBiZSB0cmFuc2xhdGVkLgorICAqIEByZXR1cm4gICAgIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0bworICAqICAgICAgICAgICAgIDxjb2RlPmR1YjwvY29kZT4uCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBpbmZpbml0ZSBvcgorICAqICAgICAgICAgICAgIG5vdCBhIG51bWJlci4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgc3RhdGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2YWx1ZU9mKGRvdWJsZSBkdWIpeworICAvLyBSZW1pbmRlcjogYSB6ZXJvIGRvdWJsZSByZXR1cm5zICcwLjAnLCBzbyB3ZSBjYW5ub3QgZmFzdHBhdGggdG8KKyAgLy8gdXNlIHRoZSBjb25zdGFudCBaRVJPLiAgVGhpcyBtaWdodCBiZSBpbXBvcnRhbnQgZW5vdWdoIHRvIGp1c3RpZnkKKyAgLy8gYSBmYWN0b3J5IGFwcHJvYWNoLCBhIGNhY2hlLCBvciBhIGZldyBwcml2YXRlIGNvbnN0YW50cywgbGF0ZXIuCisgIHJldHVybiBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChuZXcgamF2YS5sYW5nLkRvdWJsZShkdWIpKS50b1N0cmluZygpKTsKKyAgfQorCisgLyoqCisgICogVHJhbnNsYXRlcyBhIDxjb2RlPmxvbmc8L2NvZGU+IHRvIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogVGhhdCBpcywgcmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogZXF1YWwgdG8gdGhlIGdpdmVuIDxjb2RlPmxvbmc8L2NvZGU+LgorICAqCisgICogQHBhcmFtICBsaW50IFRoZSA8Y29kZT5sb25nPC9jb2RlPiB0byBiZSB0cmFuc2xhdGVkLgorICAqIEByZXR1cm4gICAgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8KKyAgKiAgICAgICAgICAgICAgPGNvZGU+bGludDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIHN0YXRpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdmFsdWVPZihsb25nIGxpbnQpeworICByZXR1cm4gdmFsdWVPZihsaW50LDApOworICB9CisKKyAvKioKKyAgKiBUcmFuc2xhdGVzIGEgPGNvZGU+bG9uZzwvY29kZT4gdG8gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIGEKKyAgKiBnaXZlbiBzY2FsZS4KKyAgKiBUaGF0IGlzLCByZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdW5zY2FsZWQKKyAgKiB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgZ2l2ZW4gPGNvZGU+bG9uZzwvY29kZT4sIGFkanVzdGVkIGJ5IHRoZQorICAqIHNlY29uZCBwYXJhbWV0ZXIsIDxjb2RlPnNjYWxlPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgcmVzdWx0IGlzIGdpdmVuIGJ5OgorICAqIDxwPjxjb2RlPgorICAqIChuZXcgQmlnRGVjaW1hbChsaW50KSkuZGl2aWRlKFRFTi5wb3cobmV3IEJpZ0RlY2ltYWwoc2NhbGUpKSkKKyAgKiA8L2NvZGU+CisgICogPHA+CisgICogQSA8Y29kZT5OdW1iZXJGb3JtYXRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiA8Y29kZT5zY2FsZTwvY29kZT4KKyAgKiBpcyBuZWdhdGl2ZS4KKyAgKgorICAqIEBwYXJhbSAgbGludCAgVGhlIDxjb2RlPmxvbmc8L2NvZGU+IHRvIGJlIHRyYW5zbGF0ZWQuCisgICogQHBhcmFtICBzY2FsZSBUaGUgPGNvZGU+aW50PC9jb2RlPiBzY2FsZSB0byBiZSBhcHBsaWVkLgorICAqIEByZXR1cm4gICAgICAgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvCisgICogICAgICAgICAgICAgICA8Y29kZT5saW50PC9jb2RlPi4KKyAgKiBAdGhyb3dzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiB0aGUgc2NhbGUgaXMgbmVnYXRpdmUuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIHN0YXRpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdmFsdWVPZihsb25nIGxpbnQsaW50IHNjYWxlKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlcz1udWxsOworICB7LypzZWxlY3QqLworICBpZiAobGludD09MCkKKyAgIHJlcz1aRVJPOworICBlbHNlIGlmIChsaW50PT0xKQorICAgcmVzPU9ORTsKKyAgZWxzZSBpZiAobGludD09MTApCisgICByZXM9VEVOOworICBlbHNleworICAgcmVzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobGludCk7CisgIH0KKyAgfQorICBpZiAoc2NhbGU9PTApIAorICAgcmV0dXJuIHJlczsKKyAgaWYgKHNjYWxlPDApIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24oIk5lZ2F0aXZlIHNjYWxlOiIrIiAiK3NjYWxlKTsKKyAgcmVzPWNsb25lKHJlcyk7IC8vIHNhZmUgY29weSBbZG8gbm90IG11dGF0ZV0KKyAgcmVzLmV4cD0oaW50KS1zY2FsZTsgLy8gZXhwb25lbnQgaXMgLXNjYWxlCisgIHJldHVybiByZXM7CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qIDxzZ21sPiBSZXR1cm4gY2hhciBhcnJheSB2YWx1ZSBvZiBhIEJpZ0RlY2ltYWwgKGNvbnZlcnNpb24gZnJvbQorICAgICAgIEJpZ0RlY2ltYWwgdG8gbGFpZC1vdXQgY2Fub25pY2FsIGNoYXIgYXJyYXkpLgorICAgIDxwPlRoZSBtYW50aXNzYSB3aWxsIGVpdGhlciBhbHJlYWR5IGhhdmUgYmVlbiByb3VuZGVkIChmb2xsb3dpbmcgYW4KKyAgICAgICBvcGVyYXRpb24pIG9yIHdpbGwgYmUgb2YgbGVuZ3RoIGFwcHJvcHJpYXRlIChpbiB0aGUgY2FzZSBvZgorICAgICAgIGNvbnN0cnVjdGlvbiBmcm9tIGFuIGludCwgZm9yIGV4YW1wbGUpLgorICAgIDxwPldlIG11c3Qgbm90IGFsdGVyIHRoZSBtYW50aXNzYSwgaGVyZS4KKyAgICA8cD4nZm9ybScgZGVzY3JpYmVzIHdoZXRoZXIgd2UgYXJlIHRvIHVzZSBleHBvbmVudGlhbCBub3RhdGlvbiAoYW5kCisgICAgICAgaWYgc28sIHdoaWNoKSwgb3IgaWYgd2UgYXJlIHRvIGxheSBvdXQgYXMgYSBwbGFpbi9wdXJlIG51bWVyaWMuCisgICAgPC9zZ21sPiAqLworIAorIHByaXZhdGUgY2hhcltdIGxheW91dCgpeworICBjaGFyIGNtYW50W107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgc2I9bnVsbDsKKyAgaW50IGV1c2U9MDsKKyAgaW50IHNpZz0wOworICBjaGFyIGNzaWduPTA7CisgIGNoYXIgcmVjW109bnVsbDsKKyAgaW50IG5lZWRzaWduOworICBpbnQgbWFnOworICBpbnQgbGVuPTA7CisgIGNtYW50PW5ldyBjaGFyW21hbnQubGVuZ3RoXTsgLy8gY29weSBieXRlW10gdG8gYSBjaGFyW10KKyAge2ludCAkMTg9bWFudC5sZW5ndGg7aT0wO2k6Zm9yKDskMTg+MDskMTgtLSxpKyspeworICAgY21hbnRbaV09KGNoYXIpKG1hbnRbaV0rKChpbnQpKCcwJykpKTsKKyAgIH0KKyAgfS8qaSovCisgIAorICBpZiAoZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICB7LyogZXhwb25lbnRpYWwgbm90YXRpb24gbmVlZGVkICovCisgICAgc2I9bmV3IGphdmEubGFuZy5TdHJpbmdCdWZmZXIoY21hbnQubGVuZ3RoKzE1KTsgLy8gLXgueHh4RSs5OTk5OTk5OTkKKyAgICBpZiAoaW5kPT1pc25lZykgCisgICAgIHNiLmFwcGVuZCgnLScpOworICAgIGV1c2U9KGV4cCtjbWFudC5sZW5ndGgpLTE7IC8vIGV4cG9uZW50IHRvIHVzZQorICAgIC8qIHNldHVwIHNpZz1zaWduaWZpY2FudCBkaWdpdHMgYW5kIGNvcHkgdG8gcmVzdWx0ICovCisgICAgaWYgKGZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQykgCisgICAgIHsgLy8gW2RlZmF1bHRdCisgICAgICBzYi5hcHBlbmQoY21hbnRbMF0pOyAvLyBzaWduaWZpY2FudCBjaGFyYWN0ZXIKKyAgICAgIGlmIChjbWFudC5sZW5ndGg+MSkgIC8vIGhhdmUgZGVjaW1hbCBwYXJ0CisgICAgICAgc2IuYXBwZW5kKCcuJykuYXBwZW5kKGNtYW50LDEsY21hbnQubGVuZ3RoLTEpOworICAgICB9CisgICAgZWxzZSAKKyAgICAge2VuZ2luZWVyaW5nOmRveworICAgICAgc2lnPWV1c2UlMzsgLy8gY29tbW9uCisgICAgICBpZiAoc2lnPDApIAorICAgICAgIHNpZz0zK3NpZzsgLy8gbmVnYXRpdmUgZXhwb25lbnQKKyAgICAgIGV1c2U9ZXVzZS1zaWc7CisgICAgICBzaWcrKzsKKyAgICAgIGlmIChzaWc+PWNtYW50Lmxlbmd0aCkgCisgICAgICAgeyAvLyB6ZXJvIHBhZGRpbmcgbWF5IGJlIG5lZWRlZAorICAgICAgICBzYi5hcHBlbmQoY21hbnQsMCxjbWFudC5sZW5ndGgpOworICAgICAgICB7aW50ICQxOT1zaWctY21hbnQubGVuZ3RoO2Zvcig7JDE5PjA7JDE5LS0peworICAgICAgICAgc2IuYXBwZW5kKCcwJyk7CisgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICB9CisgICAgICBlbHNlIAorICAgICAgIHsgLy8gZGVjaW1hbCBwb2ludCBuZWVkZWQKKyAgICAgICAgc2IuYXBwZW5kKGNtYW50LDAsc2lnKS5hcHBlbmQoJy4nKS5hcHBlbmQoY21hbnQsc2lnLGNtYW50Lmxlbmd0aC1zaWcpOworICAgICAgIH0KKyAgICAgfXdoaWxlKGZhbHNlKTt9LyplbmdpbmVlcmluZyovCisgICAgaWYgKGV1c2UhPTApIAorICAgICB7CisgICAgICBpZiAoZXVzZTwwKSAKKyAgICAgICB7CisgICAgICAgIGNzaWduPSctJzsKKyAgICAgICAgZXVzZT0oaW50KS1ldXNlOworICAgICAgIH0KKyAgICAgIGVsc2UgCisgICAgICAgY3NpZ249JysnOworICAgICAgc2IuYXBwZW5kKCdFJykuYXBwZW5kKGNzaWduKS5hcHBlbmQoZXVzZSk7CisgICAgIH0KKyAgICByZWM9bmV3IGNoYXJbc2IubGVuZ3RoKCldOworICAgIFV0aWxpdHkuZ2V0Q2hhcnMoc2IsIDAsc2IubGVuZ3RoKCkscmVjLDApOworICAgIHJldHVybiByZWM7CisgICB9CisgIAorICAvKiBIZXJlIGZvciBub24tZXhwb25lbnRpYWwgKHBsYWluKSBub3RhdGlvbiAqLworICBpZiAoZXhwPT0wKSAKKyAgIHsvKiBlYXN5ICovCisgICAgaWYgKGluZD49MCkgCisgICAgIHJldHVybiBjbWFudDsgLy8gbm9uLW5lZ2F0aXZlIGludGVnZXIKKyAgICByZWM9bmV3IGNoYXJbY21hbnQubGVuZ3RoKzFdOworICAgIHJlY1swXT0nLSc7CisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpY21hbnQsMCwoamF2YS5sYW5nLk9iamVjdClyZWMsMSxjbWFudC5sZW5ndGgpOworICAgIHJldHVybiByZWM7CisgICB9CisgIAorICAvKiBOZWVkIGEgJy4nIGFuZC9vciBzb21lIHplcm9zICovCisgIG5lZWRzaWduPShpbnQpKChpbmQ9PWlzbmVnKT8xOjApOyAvLyBzcGFjZSBmb3Igc2lnbj8gIDAgb3IgMQorICAKKyAgLyogTUFHIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9pbnQgaW4gdGhlIG1hbnRpc3NhIChpbmRleCBvZiB0aGUKKyAgICAgY2hhcmFjdGVyIGl0IGZvbGxvd3MpICovCisgIG1hZz1leHArY21hbnQubGVuZ3RoOworICAKKyAgaWYgKG1hZzwxKSAKKyAgIHsvKiAwLjAweHh4eCBmb3JtICovCisgICAgbGVuPShuZWVkc2lnbisyKS1leHA7IC8vIG5lZWRzaWduKzIrKC1tYWcpK2NtYW50Lmxlbmd0aAorICAgIHJlYz1uZXcgY2hhcltsZW5dOworICAgIGlmIChuZWVkc2lnbiE9MCkgCisgICAgIHJlY1swXT0nLSc7CisgICAgcmVjW25lZWRzaWduXT0nMCc7CisgICAgcmVjW25lZWRzaWduKzFdPScuJzsKKyAgICB7aW50ICQyMD0oaW50KS1tYWc7aT1uZWVkc2lnbisyO2k6Zm9yKDskMjA+MDskMjAtLSxpKyspeyAvLyBtYXliZSBub25lCisgICAgIHJlY1tpXT0nMCc7CisgICAgIH0KKyAgICB9LyppKi8KKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCljbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KXJlYywobmVlZHNpZ24rMiktbWFnLGNtYW50Lmxlbmd0aCk7CisgICAgcmV0dXJuIHJlYzsKKyAgIH0KKyAgCisgIGlmIChtYWc+Y21hbnQubGVuZ3RoKSAKKyAgIHsvKiB4eHh4MDAwMCBmb3JtICovCisgICAgbGVuPW5lZWRzaWduK21hZzsKKyAgICByZWM9bmV3IGNoYXJbbGVuXTsKKyAgICBpZiAobmVlZHNpZ24hPTApIAorICAgICByZWNbMF09Jy0nOworICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWNtYW50LDAsKGphdmEubGFuZy5PYmplY3QpcmVjLG5lZWRzaWduLGNtYW50Lmxlbmd0aCk7CisgICAge2ludCAkMjE9bWFnLWNtYW50Lmxlbmd0aDtpPW5lZWRzaWduK2NtYW50Lmxlbmd0aDtpOmZvcig7JDIxPjA7JDIxLS0saSsrKXsgLy8gbmV2ZXIgMAorICAgICByZWNbaV09JzAnOworICAgICB9CisgICAgfS8qaSovCisgICAgcmV0dXJuIHJlYzsKKyAgIH0KKyAgCisgIC8qIGRlY2ltYWwgcG9pbnQgaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgbWFudGlzc2EgKi8KKyAgbGVuPShuZWVkc2lnbisxKStjbWFudC5sZW5ndGg7CisgIHJlYz1uZXcgY2hhcltsZW5dOworICBpZiAobmVlZHNpZ24hPTApIAorICAgcmVjWzBdPSctJzsKKyAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpY21hbnQsMCwoamF2YS5sYW5nLk9iamVjdClyZWMsbmVlZHNpZ24sbWFnKTsKKyAgcmVjW25lZWRzaWduK21hZ109Jy4nOworICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCljbWFudCxtYWcsKGphdmEubGFuZy5PYmplY3QpcmVjLChuZWVkc2lnbittYWcpKzEsY21hbnQubGVuZ3RoLW1hZyk7CisgIHJldHVybiByZWM7CisgIH0KKworIC8qIDxzZ21sPiBDaGVja3MgYSBCaWdEZWNpbWFsIGFyZ3VtZW50IHRvIGVuc3VyZSBpdCdzIGEgdHJ1ZSBpbnRlZ2VyCisgICAgICAgaW4gYSBnaXZlbiByYW5nZS4KKyAgICA8cD5JZiBPSywgcmV0dXJucyBpdCBhcyBhbiBpbnQuIDwvc2dtbD4gKi8KKyAvLyBbY3VycmVudGx5IG9ubHkgdXNlZCBieSBwb3ddCisgCisgcHJpdmF0ZSBpbnQgaW50Y2hlY2soaW50IG1pbixpbnQgbWF4KXsKKyAgaW50IGk7CisgIGk9dGhpcy5pbnRWYWx1ZUV4YWN0KCk7IC8vIFtjaGVja3MgZm9yIG5vbi0wIGRlY2ltYWwgcGFydF0KKyAgLy8gVXNlIHNhbWUgbWVzc2FnZSBhcyB0aG91Z2ggaW50VmFsdWVFeGFjdCBmYWlsZWQgZHVlIHRvIHNpemUKKyAgaWYgKChpPG1pbil8KGk+bWF4KSkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIraSk7CisgIHJldHVybiBpOworICB9CisKKyAvKiA8c2dtbD4gQ2Fycnkgb3V0IGRpdmlzaW9uIG9wZXJhdGlvbnMuIDwvc2dtbD4gKi8KKyAvKgorICAgIEFyZzEgaXMgb3BlcmF0aW9uIGNvZGU6IEQ9ZGl2aWRlLCBJPWludGVnZXIgZGl2aWRlLCBSPXJlbWFpbmRlcgorICAgIEFyZzIgaXMgdGhlIHJocy4KKyAgICBBcmczIGlzIHRoZSBjb250ZXh0LgorICAgIEFyZzQgaXMgZXhwbGljaXQgc2NhbGUgaWZmIGNvZGU9J0QnIG9yICdJJyAoLTEgaWYgbm9uZSkuCisgCisgICAgVW5kZXJseWluZyBhbGdvcml0aG0gKGNvbXBsaWNhdGlvbnMgZm9yIFJlbWFpbmRlciBmdW5jdGlvbiBhbmQKKyAgICBzY2FsZWQgZGl2aXNpb24gYXJlIG9taXR0ZWQgZm9yIGNsYXJpdHkpOgorIAorICAgICAgVGVzdCBmb3IgeC8wIGFuZCB0aGVuIDAveAorICAgICAgRXhwID1FeHAxIC0gRXhwMgorICAgICAgRXhwID1FeHAgK2xlbih2YXIxKSAtbGVuKHZhcjIpCisgICAgICBTaWduPVNpZ24xICogU2lnbjIKKyAgICAgIFBhZCBhY2N1bXVsYXRvciAoVmFyMSkgdG8gZG91YmxlLWxlbmd0aCB3aXRoIDAncyAocGFkMSkKKyAgICAgIFBhZCBWYXIyIHRvIHNhbWUgbGVuZ3RoIGFzIFZhcjEKKyAgICAgIEIyQj0xc3QgdHdvIGRpZ2l0cyBvZiB2YXIyLCArMSB0byBhbGxvdyBmb3Igcm91bmR1cAorICAgICAgaGF2ZT0wCisgICAgICBEbyB1bnRpbCAoaGF2ZT1kaWdpdHMrMSBPUiByZXNpZHVlPTApCisgICAgICAgIGlmIGV4cDwwIHRoZW4gaWYgaW50ZWdlciBkaXZpZGUvcmVzaWR1ZSB0aGVuIGxlYXZlCisgICAgICAgIHRoaXNfZGlnaXQ9MAorICAgICAgICBEbyBmb3JldmVyCisgICAgICAgICAgIGNvbXBhcmUgbnVtYmVycworICAgICAgICAgICBpZiA8MCB0aGVuIGxlYXZlIGlubmVyX2xvb3AKKyAgICAgICAgICAgaWYgPTAgdGhlbiAoLSBxdWljayBleGl0IHdpdGhvdXQgc3VidHJhY3QgLSkgZG8KKyAgICAgICAgICAgICAgdGhpc19kaWdpdD10aGlzX2RpZ2l0KzE7IG91dHB1dCB0aGlzX2RpZ2l0CisgICAgICAgICAgICAgIGxlYXZlIG91dGVyX2xvb3A7IGVuZAorICAgICAgICAgICBDb21wYXJlIGxlbmd0aHMgb2YgbnVtYmVycyAobWFudGlzc2FlKToKKyAgICAgICAgICAgSWYgc2FtZSB0aGVuIENBPWZpcnN0X2RpZ2l0X29mX1ZhcjEKKyAgICAgICAgICAgICAgICAgICBlbHNlIENBPWZpcnN0X3R3b19kaWdpdHNfb2ZfVmFyMQorICAgICAgICAgICBtdWx0PWNhKjEwL2IyYiAgIC0tIEdvb2QgYW5kIHNhZmUgZ3Vlc3MgYXQgZGl2aXNvcgorICAgICAgICAgICBpZiBtdWx0PTAgdGhlbiBtdWx0PTEKKyAgICAgICAgICAgdGhpc19kaWdpdD10aGlzX2RpZ2l0K211bHQKKyAgICAgICAgICAgc3VidHJhY3QKKyAgICAgICAgICAgZW5kIGlubmVyX2xvb3AKKyAgICAgICAgIGlmIGhhdmVcPTAgfCB0aGlzX2RpZ2l0XD0wIHRoZW4gZG8KKyAgICAgICAgICAgb3V0cHV0IHRoaXNfZGlnaXQKKyAgICAgICAgICAgaGF2ZT1oYXZlKzE7IGVuZAorICAgICAgICAgdmFyMj12YXIyLzEwCisgICAgICAgICBleHA9ZXhwLTEKKyAgICAgICAgIGVuZCBvdXRlcl9sb29wCisgICAgICBleHA9ZXhwKzEgICAtLSBzZXQgdGhlIHByb3BlciBleHBvbmVudAorICAgICAgaWYgaGF2ZT0wIHRoZW4gZ2VuZXJhdGUgYW5zd2VyPTAKKyAgICAgIFJldHVybiB0byBGSU5JU0hFRAorICAgICAgUmVzdWx0IGRlZmluZWQgYnkgTUFUSFYxCisgCisgICAgRm9yIGV4dGVuZGVkIGNvbW1lbnRhcnksIHNlZSBETVNSQ04uCisgICovCisgCisgcHJpdmF0ZSBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZG9kaXZpZGUoY2hhciBjb2RlLGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQsaW50IHNjYWxlKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxoczsKKyAgaW50IHJlcWRpZzsKKyAgaW50IG5ld2V4cDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgaW50IG5ld2xlbjsKKyAgYnl0ZSB2YXIxW107CisgIGludCB2YXIxbGVuOworICBieXRlIHZhcjJbXTsKKyAgaW50IHZhcjJsZW47CisgIGludCBiMmI7CisgIGludCBoYXZlOworICBpbnQgdGhpc2RpZ2l0PTA7CisgIGludCBpPTA7CisgIGJ5dGUgdjI9MDsKKyAgaW50IGJhPTA7CisgIGludCBtdWx0PTA7CisgIGludCBzdGFydD0wOworICBpbnQgcGFkZGluZz0wOworICBpbnQgZD0wOworICBieXRlIG5ld3ZhcjFbXT1udWxsOworICBieXRlIGxhc3RoYXZlPTA7CisgIGludCBhY3RkaWc9MDsKKyAgYnl0ZSBuZXdtYW50W109bnVsbDsKKyAgCisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cyhyaHMsc2V0LmRpZ2l0cyk7CisgIGxocz10aGlzOyAvLyBuYW1lIGZvciBjbGFyaXR5CisgIAorICAvLyBbbm90ZSB3ZSBtdXN0IGhhdmUgY2hlY2tlZCBsb3N0RGlnaXRzIGJlZm9yZSB0aGUgZm9sbG93aW5nIGNoZWNrc10KKyAgaWYgKHJocy5pbmQ9PTApIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJEaXZpZGUgYnkgMCIpOyAvLyBpbmNsdWRlcyAwLzAKKyAgaWYgKGxocy5pbmQ9PTApIAorICAgeyAvLyAwL3ggPT4gMCBbcG9zc2libHkgd2l0aCAuMHNdCisgICAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICAgcmV0dXJuIFpFUk87CisgICAgaWYgKHNjYWxlPT0oLTEpKSAKKyAgICAgcmV0dXJuIGxoczsKKyAgICByZXR1cm4gbGhzLnNldFNjYWxlKHNjYWxlKTsKKyAgIH0KKyAgCisgIC8qIFByZXBhcmUgbnVtYmVycyBhY2NvcmRpbmcgdG8gQmlnRGVjaW1hbCBydWxlcyAqLworICByZXFkaWc9c2V0LmRpZ2l0czsgLy8gbG9jYWwgY29weSAoaGVhdmlseSB1c2VkKQorICBpZiAocmVxZGlnPjApIAorICAgeworICAgIGlmIChsaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgbGhzPWNsb25lKGxocykucm91bmQoc2V0KTsKKyAgICBpZiAocmhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIHJocz1jbG9uZShyaHMpLnJvdW5kKHNldCk7CisgICB9CisgIGVsc2UgCisgICB7Lyogc2NhbGVkIGRpdmlkZSAqLworICAgIGlmIChzY2FsZT09KC0xKSkgCisgICAgIHNjYWxlPWxocy5zY2FsZSgpOworICAgIC8vIHNldCByZXFkaWcgdG8gYmUgYXQgbGVhc3QgbGFyZ2UgZW5vdWdoIGZvciB0aGUgY29tcHV0YXRpb24KKyAgICByZXFkaWc9bGhzLm1hbnQubGVuZ3RoOyAvLyBiYXNlIGxlbmd0aAorICAgIC8vIG5leHQgbGluZSBoYW5kbGVzIGJvdGggcG9zaXRpdmUgbGhzLmV4cCBhbmQgYWxzbyBzY2FsZSBtaXNtYXRjaAorICAgIGlmIChzY2FsZSE9KChpbnQpLWxocy5leHApKSAKKyAgICAgcmVxZGlnPShyZXFkaWcrc2NhbGUpK2xocy5leHA7CisgICAgcmVxZGlnPShyZXFkaWctKChyaHMubWFudC5sZW5ndGgtMSkpKS1yaHMuZXhwOyAvLyByZWR1Y2UgYnkgUkhTIGVmZmVjdAorICAgIGlmIChyZXFkaWc8bGhzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmVxZGlnPWxocy5tYW50Lmxlbmd0aDsgLy8gY2xhbXAKKyAgICBpZiAocmVxZGlnPHJocy5tYW50Lmxlbmd0aCkgCisgICAgIHJlcWRpZz1yaHMubWFudC5sZW5ndGg7IC8vIC4uCisgICB9CisgIAorICAvKiBwcmVjYWxjdWxhdGUgZXhwb25lbnQgKi8KKyAgbmV3ZXhwPSgobGhzLmV4cC1yaHMuZXhwKStsaHMubWFudC5sZW5ndGgpLXJocy5tYW50Lmxlbmd0aDsKKyAgLyogSWYgbmV3IGV4cG9uZW50IC12ZSwgdGhlbiBzb21lIHF1aWNrIGV4aXRzIGFyZSBwb3NzaWJsZSAqLworICBpZiAobmV3ZXhwPDApIAorICAgaWYgKGNvZGUhPSdEJykgCisgICAgeworICAgICBpZiAoY29kZT09J0knKSAKKyAgICAgIHJldHVybiBaRVJPOyAvLyBlYXN5IC0gbm8gaW50ZWdlciBwYXJ0CisgICAgIC8qIE11c3QgYmUgJ1InOyByZW1haW5kZXIgaXMgW2ZpbmlzaGVkIGNsb25lIG9mXSBpbnB1dCB2YWx1ZSAqLworICAgICByZXR1cm4gY2xvbmUobGhzKS5maW5pc2goc2V0LGZhbHNlKTsKKyAgICB9CisgIAorICAvKiBXZSBuZWVkIHNsb3cgZGl2aXNpb24gKi8KKyAgcmVzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKTsgLy8gd2hlcmUgd2UnbGwgYnVpbGQgcmVzdWx0CisgIHJlcy5pbmQ9KGJ5dGUpKGxocy5pbmQqcmhzLmluZCk7IC8vIGZpbmFsIHNpZ24gKGZvciBEL0kpCisgIHJlcy5leHA9bmV3ZXhwOyAvLyBpbml0aWFsIGV4cG9uZW50IChmb3IgRC9JKQorICByZXMubWFudD1uZXcgYnl0ZVtyZXFkaWcrMV07IC8vIHdoZXJlIGJ1aWxkIHRoZSByZXN1bHQKKyAgCisgIC8qIE5vdyBbdmlydHVhbGx5IHBhZCB0aGUgbWFudGlzc2FlIHdpdGggdHJhaWxpbmcgemVyb3MgKi8KKyAgLy8gQWxzbyBjb3B5IHRoZSBMSFMsIHdoaWNoIHdpbGwgYmUgb3VyIHdvcmtpbmcgYXJyYXkKKyAgbmV3bGVuPShyZXFkaWcrcmVxZGlnKSsxOworICB2YXIxPWV4dGVuZChsaHMubWFudCxuZXdsZW4pOyAvLyBhbHdheXMgbWFrZXMgbG9uZ2VyLCBzbyBuZXcgc2FmZSBhcnJheQorICB2YXIxbGVuPW5ld2xlbjsgLy8gW3JlbWFpbmluZyBkaWdpdHMgYXJlIDBdCisgIAorICB2YXIyPXJocy5tYW50OworICB2YXIybGVuPW5ld2xlbjsKKyAgCisgIC8qIENhbGN1bGF0ZSBmaXJzdCB0d28gZGlnaXRzIG9mIHJocyAodmFyMiksICsxIGZvciBsYXRlciBlc3RpbWF0aW9ucyAqLworICBiMmI9KHZhcjJbMF0qMTApKzE7CisgIGlmICh2YXIyLmxlbmd0aD4xKSAKKyAgIGIyYj1iMmIrdmFyMlsxXTsKKyAgCisgIC8qIHN0YXJ0IHRoZSBsb25nLWRpdmlzaW9uIGxvb3BzICovCisgIGhhdmU9MDsKKyAge291dGVyOmZvcig7Oyl7CisgICB0aGlzZGlnaXQ9MDsKKyAgIC8qIGZpbmQgdGhlIG5leHQgZGlnaXQgKi8KKyAgIHtpbm5lcjpmb3IoOzspeworICAgIGlmICh2YXIxbGVuPHZhcjJsZW4pIAorICAgICBicmVhayBpbm5lcjsgLy8gVjEgdG9vIGxvdworICAgIGlmICh2YXIxbGVuPT12YXIybGVuKSAKKyAgICAgeyAvLyBjb21wYXJlIG5lZWRlZAorICAgICAge2NvbXBhcmU6ZG97IC8vIGNvbXBhcmlzb24KKyAgICAgICB7aW50ICQyMj12YXIxbGVuO2k9MDtpOmZvcig7JDIyPjA7JDIyLS0saSsrKXsKKyAgICAgICAgLy8gdmFyMWxlbiBpcyBhbHdheXMgPD0gdmFyMS5sZW5ndGgKKyAgICAgICAgaWYgKGk8dmFyMi5sZW5ndGgpIAorICAgICAgICAgdjI9dmFyMltpXTsKKyAgICAgICAgZWxzZSAKKyAgICAgICAgIHYyPShieXRlKTA7CisgICAgICAgIGlmICh2YXIxW2ldPHYyKSAKKyAgICAgICAgIGJyZWFrIGlubmVyOyAvLyBWMSB0b28gbG93CisgICAgICAgIGlmICh2YXIxW2ldPnYyKSAKKyAgICAgICAgIGJyZWFrIGNvbXBhcmU7IC8vIE9LIHRvIHN1YnRyYWN0CisgICAgICAgIH0KKyAgICAgICB9LyppKi8KKyAgICAgICAvKiByZWFjaCBoZXJlIGlmIGxocyBhbmQgcmhzIGFyZSBpZGVudGljYWw7IHN1YnRyYWN0aW9uIHdpbGwKKyAgICAgICAgICBpbmNyZWFzZSBkaWdpdCBieSBvbmUsIGFuZCB0aGUgcmVzaWR1ZSB3aWxsIGJlIDAgc28gd2UKKyAgICAgICAgICBhcmUgZG9uZTsgbGVhdmUgdGhlIGxvb3Agd2l0aCByZXNpZHVlIHNldCB0byAwIChpbiBjYXNlCisgICAgICAgICAgY29kZSBpcyAnUicgb3IgUk9VTkRfVU5ORUNFU1NBUlkgb3IgYSBST1VORF9IQUxGX3h4eHggaXMKKyAgICAgICAgICBiZWluZyBjaGVja2VkKSAqLworICAgICAgIHRoaXNkaWdpdCsrOworICAgICAgIHJlcy5tYW50W2hhdmVdPShieXRlKXRoaXNkaWdpdDsKKyAgICAgICBoYXZlKys7CisgICAgICAgdmFyMVswXT0oYnl0ZSkwOyAvLyByZXNpZHVlIHRvIDAgW3RoaXMgaXMgYWxsIHdlJ2xsIHRlc3RdCisgICAgICAgLy8gdmFyMWxlbj0xICAgICAgLS0gW29wdGltaXplZCBvdXRdCisgICAgICAgYnJlYWsgb3V0ZXI7CisgICAgICB9d2hpbGUoZmFsc2UpO30vKmNvbXBhcmUqLworICAgICAgLyogcHJlcGFyZSBmb3Igc3VidHJhY3Rpb24uICBFc3RpbWF0ZSBCQSAobGVuZ3RocyB0aGUgc2FtZSkgKi8KKyAgICAgIGJhPShpbnQpdmFyMVswXTsgLy8gdXNlIG9ubHkgZmlyc3QgZGlnaXQKKyAgICAgfSAvLyBsZW5ndGhzIHRoZSBzYW1lCisgICAgZWxzZSAKKyAgICAgey8qIGxocyBsb25nZXIgdGhhbiByaHMgKi8KKyAgICAgIC8qIHVzZSBmaXJzdCB0d28gZGlnaXRzIGZvciBlc3RpbWF0ZSAqLworICAgICAgYmE9dmFyMVswXSoxMDsKKyAgICAgIGlmICh2YXIxbGVuPjEpIAorICAgICAgIGJhPWJhK3ZhcjFbMV07CisgICAgIH0KKyAgICAvKiBzdWJ0cmFjdGlvbiBuZWVkZWQ7IFYxPj1WMiAqLworICAgIG11bHQ9KGJhKjEwKS9iMmI7CisgICAgaWYgKG11bHQ9PTApIAorICAgICBtdWx0PTE7CisgICAgdGhpc2RpZ2l0PXRoaXNkaWdpdCttdWx0OworICAgIC8vIHN1YnRyYWN0OyB2YXIxIHJldXNhYmxlCisgICAgdmFyMT1ieXRlYWRkc3ViKHZhcjEsdmFyMWxlbix2YXIyLHZhcjJsZW4sKGludCktbXVsdCx0cnVlKTsKKyAgICBpZiAodmFyMVswXSE9MCkgCisgICAgIGNvbnRpbnVlIGlubmVyOyAvLyBtYXliZSBhbm90aGVyIHN1YnRyYWN0IG5lZWRlZAorICAgIC8qIFYxIG5vdyBwcm9iYWJseSBoYXMgbGVhZGluZyB6ZXJvcywgcmVtb3ZlIGxlYWRpbmcgMCdzIGFuZCB0cnkKKyAgICAgICBhZ2Fpbi4gKEl0IGNvdWxkIGJlIGxvbmdlciB0aGFuIFYyKSAqLworICAgIHtpbnQgJDIzPXZhcjFsZW4tMjtzdGFydD0wO3N0YXJ0OmZvcig7c3RhcnQ8PSQyMztzdGFydCsrKXsKKyAgICAgaWYgKHZhcjFbc3RhcnRdIT0wKSAKKyAgICAgIGJyZWFrIHN0YXJ0OworICAgICB2YXIxbGVuLS07CisgICAgIH0KKyAgICB9LypzdGFydCovCisgICAgaWYgKHN0YXJ0PT0wKSAKKyAgICAgY29udGludWUgaW5uZXI7CisgICAgLy8gc2hpZnQgbGVmdAorICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXZhcjEsc3RhcnQsKGphdmEubGFuZy5PYmplY3QpdmFyMSwwLHZhcjFsZW4pOworICAgIH0KKyAgIH0vKmlubmVyKi8KKyAgIAorICAgLyogV2UgaGF2ZSB0aGUgbmV4dCBkaWdpdCAqLworICAgaWYgKChoYXZlIT0wKXwodGhpc2RpZ2l0IT0wKSkgCisgICAgeyAvLyBwdXQgdGhlIGRpZ2l0IHdlIGdvdAorICAgICByZXMubWFudFtoYXZlXT0oYnl0ZSl0aGlzZGlnaXQ7CisgICAgIGhhdmUrKzsKKyAgICAgaWYgKGhhdmU9PShyZXFkaWcrMSkpIAorICAgICAgYnJlYWsgb3V0ZXI7IC8vIHdlIGhhdmUgYWxsIHdlIG5lZWQKKyAgICAgaWYgKHZhcjFbMF09PTApIAorICAgICAgYnJlYWsgb3V0ZXI7IC8vIHJlc2lkdWUgbm93IDAKKyAgICB9CisgICAvKiBjYW4gbGVhdmUgbm93IGlmIGEgc2NhbGVkIGRpdmlkZSBhbmQgZXhwb25lbnQgaXMgc21hbGwgZW5vdWdoICovCisgICBpZiAoc2NhbGU+PTApIAorICAgIGlmICgoKGludCktcmVzLmV4cCk+c2NhbGUpIAorICAgICBicmVhayBvdXRlcjsKKyAgIC8qIGNhbiBsZWF2ZSBub3cgaWYgbm90IERpdmlkZSBhbmQgbm8gaW50ZWdlciBwYXJ0IGxlZnQgICovCisgICBpZiAoY29kZSE9J0QnKSAKKyAgICBpZiAocmVzLmV4cDw9MCkgCisgICAgIGJyZWFrIG91dGVyOworICAgcmVzLmV4cD1yZXMuZXhwLTE7IC8vIHJlZHVjZSB0aGUgZXhwb25lbnQKKyAgIC8qIHRvIGdldCBoZXJlLCBWMSBpcyBsZXNzIHRoYW4gVjIsIHNvIGRpdmlkZSBWMiBieSAxMCBhbmQgZ28gZm9yCisgICAgICB0aGUgbmV4dCBkaWdpdCAqLworICAgdmFyMmxlbi0tOworICAgfQorICB9LypvdXRlciovCisgIAorICAvKiBoZXJlIHdoZW4gd2UgaGF2ZSBmaW5pc2hlZCBkaXZpZGluZywgZm9yIHNvbWUgcmVhc29uICovCisgIC8vIGhhdmUgaXMgdGhlIG51bWJlciBvZiBkaWdpdHMgd2UgY29sbGVjdGVkIGluIHJlcy5tYW50CisgIGlmIChoYXZlPT0wKSAKKyAgIGhhdmU9MTsgLy8gcmVzLm1hbnRbMF0gaXMgMDsgd2UgYWx3YXlzIHdhbnQgYSBkaWdpdAorICAKKyAgaWYgKChjb2RlPT0nSScpfChjb2RlPT0nUicpKSAKKyAgIHsvKiBjaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyBuZWVkZWQgKi8KKyAgICBpZiAoKGhhdmUrcmVzLmV4cCk+cmVxZGlnKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJJbnRlZ2VyIG92ZXJmbG93Iik7CisgICAgCisgICAgaWYgKGNvZGU9PSdSJykgCisgICAgIHtyZW1haW5kZXI6ZG97CisgICAgICAvKiBXZSB3ZXJlIGRvaW5nIFJlbWFpbmRlciAtLSByZXR1cm4gdGhlIHJlc2lkdWUgKi8KKyAgICAgIGlmIChyZXMubWFudFswXT09MCkgIC8vIG5vIGludGVnZXIgcGFydCB3YXMgZm91bmQKKyAgICAgICByZXR1cm4gY2xvbmUobGhzKS5maW5pc2goc2V0LGZhbHNlKTsgLy8gLi4gc28gcmV0dXJuIGxocywgY2Fub25pY2FsCisgICAgICBpZiAodmFyMVswXT09MCkgCisgICAgICAgcmV0dXJuIFpFUk87IC8vIHNpbXBsZSAwIHJlc2lkdWUKKyAgICAgIHJlcy5pbmQ9bGhzLmluZDsgLy8gc2lnbiBpcyBhbHdheXMgYXMgTEhTCisgICAgICAvKiBDYWxjdWxhdGUgdGhlIGV4cG9uZW50IGJ5IHN1YnRyYWN0aW5nIHRoZSBudW1iZXIgb2YgcGFkZGluZyB6ZXJvcworICAgICAgICAgd2UgYWRkZWQgYW5kIGFkZGluZyB0aGUgb3JpZ2luYWwgZXhwb25lbnQgKi8KKyAgICAgIHBhZGRpbmc9KChyZXFkaWcrcmVxZGlnKSsxKS1saHMubWFudC5sZW5ndGg7CisgICAgICByZXMuZXhwPShyZXMuZXhwLXBhZGRpbmcpK2xocy5leHA7CisgICAgICAKKyAgICAgIC8qIHN0cmlwIGluc2lnbmlmaWNhbnQgcGFkZGluZyB6ZXJvcyBmcm9tIHJlc2lkdWUsIGFuZCBjcmVhdGUvY29weQorICAgICAgICAgdGhlIHJlc3VsdGluZyBtYW50aXNzYSBpZiBuZWVkIGJlICovCisgICAgICBkPXZhcjFsZW47CisgICAgICB7aT1kLTE7aTpmb3IoO2k+PTE7aS0tKXtpZighKChyZXMuZXhwPGxocy5leHApJihyZXMuZXhwPHJocy5leHApKSlicmVhazsKKyAgICAgICBpZiAodmFyMVtpXSE9MCkgCisgICAgICAgIGJyZWFrIGk7CisgICAgICAgZC0tOworICAgICAgIHJlcy5leHA9cmVzLmV4cCsxOworICAgICAgIH0KKyAgICAgIH0vKmkqLworICAgICAgaWYgKGQ8dmFyMS5sZW5ndGgpIAorICAgICAgIHsvKiBuZWVkIHRvIHJlZHVjZSAqLworICAgICAgICBuZXd2YXIxPW5ldyBieXRlW2RdOworICAgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCl2YXIxLDAsKGphdmEubGFuZy5PYmplY3QpbmV3dmFyMSwwLGQpOyAvLyBzaG9ydGVuCisgICAgICAgIHZhcjE9bmV3dmFyMTsKKyAgICAgICB9CisgICAgICByZXMubWFudD12YXIxOworICAgICAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgICAgfXdoaWxlKGZhbHNlKTt9LypyZW1haW5kZXIqLworICAgfQorICAgCisgIGVsc2UgCisgICB7LyogJ0QnIC0tIG5vIG92ZXJmbG93IGNoZWNrIG5lZWRlZCAqLworICAgIC8vIElmIHRoZXJlIHdhcyBhIHJlc2lkdWUgdGhlbiBidW1wIHRoZSBmaW5hbCBkaWdpdCAoaWZmIDAgb3IgNSkKKyAgICAvLyBzbyB0aGF0IHRoZSByZXNpZHVlIGlzIHZpc2libGUgZm9yIFJPVU5EX1VQLCBST1VORF9IQUxGX3h4eCBhbmQKKyAgICAvLyBST1VORF9VTk5FQ0VTU0FSWSBjaGVja3MgKGV0Yy4pIGxhdGVyLgorICAgIC8vIFtpZiB3ZSBmaW5pc2hlZCBlYXJseSwgdGhlIHJlc2lkdWUgd2lsbCBiZSAwXQorICAgIGlmICh2YXIxWzBdIT0wKSAKKyAgICAgeyAvLyByZXNpZHVlIG5vdCAwCisgICAgICBsYXN0aGF2ZT1yZXMubWFudFtoYXZlLTFdOworICAgICAgaWYgKCgobGFzdGhhdmUlNSkpPT0wKSAKKyAgICAgICByZXMubWFudFtoYXZlLTFdPShieXRlKShsYXN0aGF2ZSsxKTsKKyAgICAgfQorICAgfQorICAKKyAgLyogSGVyZSBmb3IgRGl2aWRlIG9yIEludGVnZXIgRGl2aWRlICovCisgIC8vIGhhbmRsZSBzY2FsZWQgcmVzdWx0cyBmaXJzdCBbJ0knIGFsd2F5cyBzY2FsZSAwLCBvcHRpb25hbCBmb3IgJ0QnXQorICBpZiAoc2NhbGU+PTApIAorICAge3NjYWxlZDpkb3sKKyAgICAvLyBzYXkgJ3NjYWxlIGhhdmUgcmVzLmV4cCBsZW4nIHNjYWxlIGhhdmUgcmVzLmV4cCByZXMubWFudC5sZW5ndGgKKyAgICBpZiAoaGF2ZSE9cmVzLm1hbnQubGVuZ3RoKSAKKyAgICAgLy8gYWxyZWFkeSBwYWRkZWQgd2l0aCAwJ3MsIHNvIGp1c3QgYWRqdXN0IGV4cG9uZW50CisgICAgIHJlcy5leHA9cmVzLmV4cC0oKHJlcy5tYW50Lmxlbmd0aC1oYXZlKSk7CisgICAgLy8gY2FsY3VsYXRlIG51bWJlciBvZiBkaWdpdHMgd2UgcmVhbGx5IHdhbnQgW21heSBiZSAwXQorICAgIGFjdGRpZz1yZXMubWFudC5sZW5ndGgtKCgoKGludCktcmVzLmV4cCktc2NhbGUpKTsKKyAgICByZXMucm91bmQoYWN0ZGlnLHNldC5yb3VuZGluZ01vZGUpOyAvLyByb3VuZCB0byBkZXNpcmVkIGxlbmd0aAorICAgIC8vIFRoaXMgY291bGQgaGF2ZSBzaGlmdGVkIGxlZnQgaWYgcm91bmQgKHNheSkgMC45LT4xWy4wXQorICAgIC8vIFJlcGFpciBpZiBzbyBieSBhZGRpbmcgYSB6ZXJvIGFuZCByZWR1Y2luZyBleHBvbmVudAorICAgIGlmIChyZXMuZXhwIT0oKGludCktc2NhbGUpKSAKKyAgICAgeworICAgICAgcmVzLm1hbnQ9ZXh0ZW5kKHJlcy5tYW50LHJlcy5tYW50Lmxlbmd0aCsxKTsKKyAgICAgIHJlcy5leHA9cmVzLmV4cC0xOworICAgICB9CisgICAgcmV0dXJuIHJlcy5maW5pc2goc2V0LHRydWUpOyAvLyBbc3RyaXAgaWYgbm90IFBMQUlOXQorICAgfXdoaWxlKGZhbHNlKTt9LypzY2FsZWQqLworICAKKyAgLy8gcmVhY2ggaGVyZSBvbmx5IGlmIGEgbm9uLXNjYWxlZAorICBpZiAoaGF2ZT09cmVzLm1hbnQubGVuZ3RoKSAKKyAgIHsgLy8gZ290IGRpZ2l0cysxIGRpZ2l0cworICAgIHJlcy5yb3VuZChzZXQpOworICAgIGhhdmU9cmVxZGlnOworICAgfQorICBlbHNlIAorICAgey8qIGhhdmU8PXJlcWRpZyAqLworICAgIGlmIChyZXMubWFudFswXT09MCkgCisgICAgIHJldHVybiBaRVJPOyAvLyBmYXN0cGF0aAorICAgIC8vIG1ha2UgdGhlIG1hbnRpc3NhIHRydWx5IGp1c3QgJ2hhdmUnIGxvbmcKKyAgICAvLyBbd2UgY291bGQgbGV0IGZpbmlzaCBkbyB0aGlzLCBkdXJpbmcgc3RyaXAsIGlmIHdlIGFkanVzdGVkCisgICAgLy8gdGhlIGV4cG9uZW50OyBob3dldmVyLCB0cnVuY2F0aW9uIGF2b2lkcyB0aGUgc3RyaXAgbG9vcF0KKyAgICBuZXdtYW50PW5ldyBieXRlW2hhdmVdOyAvLyBzaG9ydGVuCisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpcmVzLm1hbnQsMCwoamF2YS5sYW5nLk9iamVjdCluZXdtYW50LDAsaGF2ZSk7CisgICAgcmVzLm1hbnQ9bmV3bWFudDsKKyAgIH0KKyAgcmV0dXJuIHJlcy5maW5pc2goc2V0LHRydWUpOworICB9CisKKyAKKyAvKiA8c2dtbD4gUmVwb3J0IGEgY29udmVyc2lvbiBleGNlcHRpb24uIDwvc2dtbD4gKi8KKyAKKyBwcml2YXRlIHZvaWQgYmFkKGNoYXIgc1tdKXsKKyAgdGhyb3cgbmV3IGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24oIk5vdCBhIG51bWJlcjoiKyIgIitqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YocykpOworICB9CisKKyAvKiA8c2dtbD4gUmVwb3J0IGEgYmFkIGFyZ3VtZW50IHRvIGEgbWV0aG9kLiA8L3NnbWw+CisgICAgQXJnMSBpcyBtZXRob2QgbmFtZQorICAgIEFyZzIgaXMgYXJndW1lbnQgcG9zaXRpb24KKyAgICBBcmczIGlzIHdoYXQgd2FzIGZvdW5kICovCisgCisgcHJpdmF0ZSB2b2lkIGJhZGFyZyhqYXZhLmxhbmcuU3RyaW5nIG5hbWUsaW50IHBvcyxqYXZhLmxhbmcuU3RyaW5nIHZhbHVlKXsKKyAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkJhZCBhcmd1bWVudCIrIiAiK3BvcysiICIrInRvIisiICIrbmFtZSsiOiIrIiAiK3ZhbHVlKTsKKyAgfQorCisgLyogPHNnbWw+IEV4dGVuZCBieXRlIGFycmF5IHRvIGdpdmVuIGxlbmd0aCwgcGFkZGluZyB3aXRoIDBzLiAgSWYgbm8KKyAgICBleHRlbnNpb24gaXMgcmVxdWlyZWQgdGhlbiByZXR1cm4gdGhlIHNhbWUgYXJyYXkuIDwvc2dtbD4KKyAKKyAgICBBcmcxIGlzIHRoZSBzb3VyY2UgYnl0ZSBhcnJheQorICAgIEFyZzIgaXMgdGhlIG5ldyBsZW5ndGggKGxvbmdlcikKKyAgICAqLworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBleHRlbmQoYnl0ZSBpbmFycltdLGludCBuZXdsZW4peworICBieXRlIG5ld2FycltdOworICBpZiAoaW5hcnIubGVuZ3RoPT1uZXdsZW4pIAorICAgcmV0dXJuIGluYXJyOworICBuZXdhcnI9bmV3IGJ5dGVbbmV3bGVuXTsKKyAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpaW5hcnIsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhcnIsMCxpbmFyci5sZW5ndGgpOworICAvLyAwIHBhZGRpbmcgaXMgY2FycmllZCBvdXQgYnkgdGhlIEpWTSBvbiBhbGxvY2F0aW9uIGluaXRpYWxpemF0aW9uCisgIHJldHVybiBuZXdhcnI7CisgIH0KKworIC8qIDxzZ21sPiBBZGQgb3Igc3VidHJhY3QgdHdvID49MCBpbnRlZ2VycyBpbiBieXRlIGFycmF5cworICAgIDxwPlRoaXMgcm91dGluZSBwZXJmb3JtcyB0aGUgY2FsY3VsYXRpb246CisgICAgPHByZT4KKyAgICBDPUErKEIqTSkKKyAgICA8L3ByZT4KKyAgICBXaGVyZSBNIGlzIGluIHRoZSByYW5nZSAtOSB0aHJvdWdoICs5CisgICAgPHA+CisgICAgSWYgTTwwIHRoZW4gQT49QiBtdXN0IGJlIHRydWUsIHNvIHRoZSByZXN1bHQgaXMgYWx3YXlzCisgICAgbm9uLW5lZ2F0aXZlLgorIAorICAgIExlYWRpbmcgemVyb3MgYXJlIG5vdCByZW1vdmVkIGFmdGVyIGEgc3VidHJhY3Rpb24uICBUaGUgcmVzdWx0IGlzCisgICAgZWl0aGVyIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgbG9uZ2VyIG9mIEEgYW5kIEIsIG9yIDEgbG9uZ2VyIHRoYW4KKyAgICB0aGF0IChpZiBhIGNhcnJ5IG9jY3VycmVkKS4KKyAKKyAgICBBIGlzIG5vdCBhbHRlcmVkIHVubGVzcyBBcmc2IGlzIDEuCisgICAgQiBpcyBuZXZlciBhbHRlcmVkLgorIAorICAgIEFyZzEgaXMgQQorICAgIEFyZzIgaXMgQSBsZW5ndGggdG8gdXNlIChpZiBsb25nZXIgdGhhbiBBLCBwYWQgd2l0aCAwJ3MpCisgICAgQXJnMyBpcyBCCisgICAgQXJnNCBpcyBCIGxlbmd0aCB0byB1c2UgKGlmIGxvbmdlciB0aGFuIEIsIHBhZCB3aXRoIDAncykKKyAgICBBcmc1IGlzIE0sIHRoZSBtdWx0aXBsaWVyCisgICAgQXJnNiBpcyAxIGlmIEEgY2FuIGJlIHVzZWQgdG8gYnVpbGQgdGhlIHJlc3VsdCAoaWYgaXQgZml0cykKKyAKKyAgICBUaGlzIHJvdXRpbmUgaXMgc2V2ZXJlbHkgcGVyZm9ybWFuY2UtY3JpdGljYWw7ICphbnkqIGNoYW5nZSBoZXJlCisgICAgbXVzdCBiZSBtZWFzdXJlZCAodGltZWQpIHRvIGFzc3VyZSBubyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbi4KKyAgICAqLworIC8vIDE5OTYuMDIuMjAgLS0gZW5oYW5jZWQgdmVyc2lvbiBvZiBETVNSQ04gYWxnb3JpdGhtICgxOTgxKQorIC8vIDE5OTcuMTAuMDUgLS0gY2hhbmdlZCB0byBieXRlIGFycmF5cyAoZnJvbSBjaGFyIGFycmF5cykKKyAvLyAxOTk4LjA3LjAxIC0tIGNoYW5nZWQgdG8gYWxsb3cgZGVzdHJ1Y3RpdmUgcmV1c2Ugb2YgTEhTCisgLy8gMTk5OC4wNy4wMSAtLSBjaGFuZ2VkIHRvIGFsbG93IHZpcnR1YWwgbGVuZ3RocyBmb3IgdGhlIGFycmF5cworIC8vIDE5OTguMTIuMjkgLS0gdXNlIGxvb2thc2lkZSBmb3IgZGlnaXQvY2FycnkgY2FsY3VsYXRpb24KKyAvLyAxOTk5LjA4LjA3IC0tIGF2b2lkIG11bHRpcGx5IHdoZW4gbXVsdD0xLCBhbmQgbWFrZSBkYiBhbiBpbnQKKyAvLyAxOTk5LjEyLjIyIC0tIHNwZWNpYWwgY2FzZSBtPS0xLCBhbHNvIGRyb3AgMCBzcGVjaWFsIGNhc2UKKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlW10gYnl0ZWFkZHN1YihieXRlIGFbXSxpbnQgYXZsZW4sYnl0ZSBiW10saW50IGJ2bGVuLGludCBtLGJvb2xlYW4gcmV1c2UpeworICBpbnQgYWxlbmd0aDsKKyAgaW50IGJsZW5ndGg7CisgIGludCBhcDsKKyAgaW50IGJwOworICBpbnQgbWF4YXJyOworICBieXRlIHJlYltdOworICBib29sZWFuIHF1aWNrbTsKKyAgaW50IGRpZ2l0OworICBpbnQgb3A9MDsKKyAgaW50IGRwOTA9MDsKKyAgYnl0ZSBuZXdhcnJbXTsKKyAgaW50IGk9MDsKKyAgCisgIAorICAKKyAgCisgIC8vIFdlJ2xsIHVzdWFsbHkgYmUgcmlnaHQgaWYgd2UgYXNzdW1lIG5vIGNhcnJ5CisgIGFsZW5ndGg9YS5sZW5ndGg7IC8vIHBoeXNpY2FsIGxlbmd0aHMKKyAgYmxlbmd0aD1iLmxlbmd0aDsgLy8gLi4KKyAgYXA9YXZsZW4tMTsgLy8gLT4gZmluYWwgKHJpZ2h0bW9zdCkgZGlnaXQKKyAgYnA9YnZsZW4tMTsgLy8gLi4KKyAgbWF4YXJyPWJwOworICBpZiAobWF4YXJyPGFwKSAKKyAgIG1heGFycj1hcDsKKyAgcmViPShieXRlW10pbnVsbDsgLy8gcmVzdWx0IGJ5dGUgYXJyYXkKKyAgaWYgKHJldXNlKSAKKyAgIGlmICgobWF4YXJyKzEpPT1hbGVuZ3RoKSAKKyAgICByZWI9YTsgLy8gT0sgdG8gcmV1c2UgQQorICBpZiAocmViPT1udWxsKSAKKyAgIHJlYj1uZXcgYnl0ZVttYXhhcnIrMV07IC8vIG5lZWQgbmV3IGFycmF5CisgIAorICBxdWlja209ZmFsc2U7IC8vIDEgaWYgbm8gbXVsdGlwbHkgbmVlZGVkCisgIGlmIChtPT0xKSAKKyAgIHF1aWNrbT10cnVlOyAvLyBtb3N0IGNvbW1vbgorICBlbHNlIAorICAgaWYgKG09PSgtMSkpIAorICAgIHF1aWNrbT10cnVlOyAvLyBhbHNvIGNvbW1vbgorICAKKyAgZGlnaXQ9MDsgLy8gZGlnaXQsIHdpdGggY2Fycnkgb3IgYm9ycm93CisgIHtvcD1tYXhhcnI7b3A6Zm9yKDtvcD49MDtvcC0tKXsKKyAgIGlmIChhcD49MCkgCisgICAgeworICAgICBpZiAoYXA8YWxlbmd0aCkgCisgICAgICBkaWdpdD1kaWdpdCthW2FwXTsgLy8gd2l0aGluIEEKKyAgICAgYXAtLTsKKyAgICB9CisgICBpZiAoYnA+PTApIAorICAgIHsKKyAgICAgaWYgKGJwPGJsZW5ndGgpIAorICAgICAgeyAvLyB3aXRoaW4gQgorICAgICAgIGlmIChxdWlja20pIAorICAgICAgICB7CisgICAgICAgICBpZiAobT4wKSAKKyAgICAgICAgICBkaWdpdD1kaWdpdCtiW2JwXTsgLy8gbW9zdCBjb21tb24KKyAgICAgICAgIGVsc2UgCisgICAgICAgICAgZGlnaXQ9ZGlnaXQtYlticF07IC8vIGFsc28gY29tbW9uCisgICAgICAgIH0KKyAgICAgICBlbHNlIAorICAgICAgICBkaWdpdD1kaWdpdCsoYlticF0qbSk7CisgICAgICB9CisgICAgIGJwLS07CisgICAgfQorICAgLyogcmVzdWx0IHNvIGZhciAoZGlnaXQpIGNvdWxkIGJlIC05MCB0aHJvdWdoIDk5ICovCisgICBpZiAoZGlnaXQ8MTApIAorICAgIGlmIChkaWdpdD49MCkgCisgICAgIHtxdWljazpkb3sgLy8gMC05CisgICAgICByZWJbb3BdPShieXRlKWRpZ2l0OworICAgICAgZGlnaXQ9MDsgLy8gbm8gY2FycnkKKyAgICAgIGNvbnRpbnVlIG9wOworICAgICB9d2hpbGUoZmFsc2UpO30vKnF1aWNrKi8KKyAgIGRwOTA9ZGlnaXQrOTA7CisgICByZWJbb3BdPWJ5dGVkaWdbZHA5MF07IC8vIHRoaXMgZGlnaXQKKyAgIGRpZ2l0PWJ5dGVjYXJbZHA5MF07IC8vIGNhcnJ5IG9yIGJvcnJvdworICAgfQorICB9LypvcCovCisgIAorICBpZiAoZGlnaXQ9PTApIAorICAgcmV0dXJuIHJlYjsgLy8gbm8gY2FycnkKKyAgLy8gZm9sbG93aW5nIGxpbmUgd2lsbCBiZWNvbWUgYW4gQXNzZXJ0LCBsYXRlcgorICAvLyBpZiBkaWdpdDwwIHRoZW4gc2lnbmFsIEFyaXRobWV0aWNFeGNlcHRpb24oImludGVybmFsLmVycm9yIFsiZGlnaXQiXSIpCisgIAorICAvKiBXZSBoYXZlIGNhcnJ5IC0tIG5lZWQgdG8gbWFrZSBzcGFjZSBmb3IgdGhlIGV4dHJhIGRpZ2l0ICovCisgIG5ld2Fycj0oYnl0ZVtdKW51bGw7CisgIGlmIChyZXVzZSkgCisgICBpZiAoKG1heGFycisyKT09YS5sZW5ndGgpIAorICAgIG5ld2Fycj1hOyAvLyBPSyB0byByZXVzZSBBCisgIGlmIChuZXdhcnI9PW51bGwpIAorICAgbmV3YXJyPW5ldyBieXRlW21heGFycisyXTsKKyAgbmV3YXJyWzBdPShieXRlKWRpZ2l0OyAvLyB0aGUgY2FycmllZCBkaWdpdCAuLgorICAvLyAuLiBhbmQgYWxsIHRoZSByZXN0IFt1c2UgbG9jYWwgbG9vcCBmb3Igc2hvcnQgbnVtYmVyc10KKyAgaWYgKG1heGFycjwxMCkgCisgICB7aW50ICQyND1tYXhhcnIrMTtpPTA7aTpmb3IoOyQyND4wOyQyNC0tLGkrKyl7CisgICAgbmV3YXJyW2krMV09cmViW2ldOworICAgIH0KKyAgIH0vKmkqLworICBlbHNlIAorICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpcmViLDAsKGphdmEubGFuZy5PYmplY3QpbmV3YXJyLDEsbWF4YXJyKzEpOworICByZXR1cm4gbmV3YXJyOworICB9CisKKyAvKiA8c2dtbD4gSW5pdGlhbGl6ZXIgZm9yIGRpZ2l0IGFycmF5IHByb3BlcnRpZXMgKGxvb2thc2lkZSkuIDwvc2dtbD4KKyAgICBSZXR1cm5zIHRoZSBkaWdpdCBhcnJheSwgYW5kIGluaXRpYWxpemVzIHRoZSBjYXJyeSBhcnJheS4gKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlW10gZGlnaW5pdCgpeworICBieXRlIHdvcmtbXTsKKyAgaW50IG9wPTA7CisgIGludCBkaWdpdD0wOworICB3b3JrPW5ldyBieXRlWyg5MCs5OSkrMV07CisgIHtvcD0wO29wOmZvcig7b3A8PSg5MCs5OSk7b3ArKyl7CisgICBkaWdpdD1vcC05MDsKKyAgIGlmIChkaWdpdD49MCkgCisgICAgeworICAgICB3b3JrW29wXT0oYnl0ZSkoZGlnaXQlMTApOworICAgICBieXRlY2FyW29wXT0oYnl0ZSkoZGlnaXQvMTApOyAvLyBjYWxjdWxhdGUgY2FycnkKKyAgICAgY29udGludWUgb3A7CisgICAgfQorICAgLy8gYm9ycm93aW5nLi4uCisgICBkaWdpdD1kaWdpdCsxMDA7IC8vIHllcywgdGhpcyBpcyByaWdodCBbY29uc2lkZXIgLTUwXQorICAgd29ya1tvcF09KGJ5dGUpKGRpZ2l0JTEwKTsKKyAgIGJ5dGVjYXJbb3BdPShieXRlKSgoZGlnaXQvMTApLTEwKTsgLy8gY2FsY3VsYXRlIGJvcnJvdyBbTkI6IC0gYWZ0ZXIgJV0KKyAgIH0KKyAgfS8qb3AqLworICByZXR1cm4gd29yazsKKyAgfQorCisgLyogPHNnbWw+IENyZWF0ZSBhIGNvcHkgb2YgQmlnRGVjaW1hbCBvYmplY3QgZm9yIGxvY2FsIHVzZS4KKyAgICA8cD5UaGlzIGRvZXMgTk9UIG1ha2UgYSBjb3B5IG9mIHRoZSBtYW50aXNzYSBhcnJheS4KKyAgICA8L3NnbWw+CisgICAgQXJnMSBpcyB0aGUgQmlnRGVjaW1hbCB0byBjbG9uZSAobm9uLW51bGwpCisgICAgKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgY2xvbmUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRlYyl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBjb3B5OworICBjb3B5PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKTsKKyAgY29weS5pbmQ9ZGVjLmluZDsKKyAgY29weS5leHA9ZGVjLmV4cDsKKyAgY29weS5mb3JtPWRlYy5mb3JtOworICBjb3B5Lm1hbnQ9ZGVjLm1hbnQ7CisgIHJldHVybiBjb3B5OworICB9CisKKyAvKiA8c2dtbD4gQ2hlY2sgb25lIG9yIHR3byBudW1iZXJzIGZvciBsb3N0IGRpZ2l0cy4gPC9zZ21sPgorICAgIEFyZzEgaXMgUkhTIChvciBudWxsLCBpZiBub25lKQorICAgIEFyZzIgaXMgY3VycmVudCBESUdJVFMgc2V0dGluZworICAgIHJldHVybnMgcXVpZXRseSBvciB0aHJvd3MgYW4gZXhjZXB0aW9uICovCisgCisgcHJpdmF0ZSB2b2lkIGNoZWNrZGlnaXRzKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsaW50IGRpZyl7CisgIGlmIChkaWc9PTApIAorICAgcmV0dXJuOyAvLyBkb24ndCBjaGVjayBpZiBkaWdpdHM9MAorICAvLyBmaXJzdCBjaGVjayBsaHMuLi4KKyAgaWYgKHRoaXMubWFudC5sZW5ndGg+ZGlnKSAKKyAgIGlmICgoIShhbGx6ZXJvKHRoaXMubWFudCxkaWcpKSkpIAorICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgIGlmIChyaHM9PW51bGwpIAorICAgcmV0dXJuOyAvLyBtb25hZGljCisgIGlmIChyaHMubWFudC5sZW5ndGg+ZGlnKSAKKyAgIGlmICgoIShhbGx6ZXJvKHJocy5tYW50LGRpZykpKSkgCisgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJUb28gbWFueSBkaWdpdHM6IisiICIrcmhzLnRvU3RyaW5nKCkpOworICB9CisKKyAvKiA8c2dtbD4gUm91bmQgdG8gc3BlY2lmaWVkIGRpZ2l0cywgaWYgbmVjZXNzYXJ5LiA8L3NnbWw+CisgICAgQXJnMSBpcyByZXF1ZXN0ZWQgTWF0aENvbnRleHQgW3dpdGggbGVuZ3RoIGFuZCByb3VuZGluZyBtb2RlXQorICAgIHJldHVybnMgdGhpcywgZm9yIGNvbnZlbmllbmNlICovCisgCisgcHJpdmF0ZSBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcm91bmQoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICByZXR1cm4gcm91bmQoc2V0LmRpZ2l0cyxzZXQucm91bmRpbmdNb2RlKTsKKyAgfQorCisgLyogPHNnbWw+IFJvdW5kIHRvIHNwZWNpZmllZCBkaWdpdHMsIGlmIG5lY2Vzc2FyeS4KKyAgICBBcmcxIGlzIHJlcXVlc3RlZCBsZW5ndGggKGRpZ2l0cyB0byByb3VuZCB0bykKKyAgICAgICAgICAgIFttYXkgYmUgPD0wIHdoZW4gY2FsbGVkIGZyb20gZm9ybWF0LCBkb2RpdmlkZSwgZXRjLl0KKyAgICBBcmcyIGlzIHJvdW5kaW5nIG1vZGUKKyAgICByZXR1cm5zIHRoaXMsIGZvciBjb252ZW5pZW5jZQorIAorICAgIGluZCBhbmQgZXhwIGFyZSBhZGp1c3RlZCwgYnV0IG5vdCBjbGVhcmVkIGZvciBhIG1hbnRpc3NhIG9mIHplcm8KKyAKKyAgICBUaGUgbGVuZ3RoIG9mIHRoZSBtYW50aXNzYSByZXR1cm5lZCB3aWxsIGJlIEFyZzEsIGV4Y2VwdCB3aGVuIEFyZzEKKyAgICBpcyAwLCBpbiB3aGljaCBjYXNlIHRoZSByZXR1cm5lZCBtYW50aXNzYSBsZW5ndGggd2lsbCBiZSAxLgorICAgIDwvc2dtbD4KKyAgICAqLworIAorIHByaXZhdGUgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJvdW5kKGludCBsZW4saW50IG1vZGUpeworICBpbnQgYWRqdXN0OworICBpbnQgc2lnbjsKKyAgYnl0ZSBvbGRtYW50W107CisgIGJvb2xlYW4gcmV1c2U9ZmFsc2U7CisgIGJ5dGUgZmlyc3Q9MDsKKyAgaW50IGluY3JlbWVudDsKKyAgYnl0ZSBuZXdtYW50W109bnVsbDsKKyAgYWRqdXN0PW1hbnQubGVuZ3RoLWxlbjsKKyAgaWYgKGFkanVzdDw9MCkgCisgICByZXR1cm4gdGhpczsgLy8gbm93dCB0byBkbworICAKKyAgZXhwPWV4cCthZGp1c3Q7IC8vIGV4cG9uZW50IG9mIHJlc3VsdAorICBzaWduPShpbnQpaW5kOyAvLyBzYXZlIFthc3N1bWVzIC0xLCAwLCAxXQorICBvbGRtYW50PW1hbnQ7IC8vIHNhdmUKKyAgaWYgKGxlbj4wKSAKKyAgIHsKKyAgICAvLyByZW1vdmUgdGhlIHVud2FudGVkIGRpZ2l0cworICAgIG1hbnQ9bmV3IGJ5dGVbbGVuXTsKKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClvbGRtYW50LDAsKGphdmEubGFuZy5PYmplY3QpbWFudCwwLGxlbik7CisgICAgcmV1c2U9dHJ1ZTsgLy8gY2FuIHJldXNlIG1hbnRpc3NhCisgICAgZmlyc3Q9b2xkbWFudFtsZW5dOyAvLyBmaXJzdCBvZiBkaXNjYXJkZWQgZGlnaXRzCisgICB9CisgIGVsc2UgCisgICB7LyogbGVuPD0wICovCisgICAgbWFudD1aRVJPLm1hbnQ7CisgICAgaW5kPWlzemVybzsKKyAgICByZXVzZT1mYWxzZTsgLy8gY2Fubm90IHJldXNlIG1hbnRpc3NhCisgICAgaWYgKGxlbj09MCkgCisgICAgIGZpcnN0PW9sZG1hbnRbMF07CisgICAgZWxzZSAKKyAgICAgZmlyc3Q9KGJ5dGUpMDsgLy8gW3ZpcnR1YWwgZGlnaXRdCisgICB9CisgIAorICAvLyBkZWNpZGUgcm91bmRpbmcgYWRqdXN0bWVudCBkZXBlbmRpbmcgb24gbW9kZSwgc2lnbiwgYW5kIGRpc2NhcmRlZCBkaWdpdHMKKyAgaW5jcmVtZW50PTA7IC8vIGJ1bXBlcgorICB7bW9kZXM6ZG97LypzZWxlY3QqLworICBpZiAobW9kZT09Uk9VTkRfSEFMRl9VUCkKKyAgIHsgLy8gZGVmYXVsdCBmaXJzdCBbbW9zdCBjb21tb25dCisgICAgaWYgKGZpcnN0Pj01KSAKKyAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX1VOTkVDRVNTQVJZKQorICAgeyAvLyBkZWZhdWx0IGZvciBzZXRTY2FsZSgpCisgICAgLy8gZGlzY2FyZGluZyBhbnkgbm9uLXplcm8gZGlnaXRzIGlzIGFuIGVycm9yCisgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4pKSkpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICAgfQorICBlbHNlIGlmIChtb2RlPT1ST1VORF9IQUxGX0RPV04pCisgICB7IC8vIDAuNTAwMCBnb2VzIGRvd24KKyAgICBpZiAoZmlyc3Q+NSkgCisgICAgIGluY3JlbWVudD1zaWduOworICAgIGVsc2UgCisgICAgIGlmIChmaXJzdD09NSkgCisgICAgICBpZiAoKCEoYWxsemVybyhvbGRtYW50LGxlbisxKSkpKSAKKyAgICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgIH0KKyAgZWxzZSBpZiAobW9kZT09Uk9VTkRfSEFMRl9FVkVOKQorICAgeyAvLyAwLjUwMDAgZ29lcyBkb3duIGlmIGxlZnQgZGlnaXQgZXZlbgorICAgIGlmIChmaXJzdD41KSAKKyAgICAgaW5jcmVtZW50PXNpZ247CisgICAgZWxzZSAKKyAgICAgaWYgKGZpcnN0PT01KSAKKyAgICAgIHsKKyAgICAgICBpZiAoKCEoYWxsemVybyhvbGRtYW50LGxlbisxKSkpKSAKKyAgICAgICAgaW5jcmVtZW50PXNpZ247CisgICAgICAgZWxzZSAvKiAwLjUwMDAgKi8KKyAgICAgICAgaWYgKCgoKG1hbnRbbWFudC5sZW5ndGgtMV0pJTIpKT09MSkgCisgICAgICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgICAgIH0KKyAgIH0KKyAgZWxzZSBpZiAobW9kZT09Uk9VTkRfRE9XTil7CisgICAvLyBuZXZlciBpbmNyZW1lbnQKKyAgfWVsc2UgaWYgKG1vZGU9PVJPVU5EX1VQKQorICAgeyAvLyBpbmNyZW1lbnQgaWYgZGlzY2FyZGVkIG5vbi16ZXJvCisgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4pKSkpIAorICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgIH0KKyAgZWxzZSBpZiAobW9kZT09Uk9VTkRfQ0VJTElORykKKyAgIHsgLy8gbW9yZSBwb3NpdGl2ZQorICAgIGlmIChzaWduPjApIAorICAgICBpZiAoKCEoYWxsemVybyhvbGRtYW50LGxlbikpKSkgCisgICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgIH0KKyAgZWxzZSBpZiAobW9kZT09Uk9VTkRfRkxPT1IpCisgICB7IC8vIG1vcmUgbmVnYXRpdmUKKyAgICBpZiAoc2lnbjwwKSAKKyAgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4pKSkpIAorICAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2V7CisgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIHJvdW5kIHZhbHVlOiIrIiAiK21vZGUpOworICB9CisgIH13aGlsZShmYWxzZSk7fS8qbW9kZXMqLworICAKKyAgaWYgKGluY3JlbWVudCE9MCkgCisgICB7YnVtcDpkb3sKKyAgICBpZiAoaW5kPT1pc3plcm8pIAorICAgICB7CisgICAgICAvLyB3ZSBtdXN0IG5vdCBzdWJ0cmFjdCBmcm9tIDAsIGJ1dCByZXN1bHQgaXMgdHJpdmlhbCBhbnl3YXkKKyAgICAgIG1hbnQ9T05FLm1hbnQ7CisgICAgICBpbmQ9KGJ5dGUpaW5jcmVtZW50OworICAgICB9CisgICAgZWxzZSAKKyAgICAgeworICAgICAgLy8gbWFudGlzc2EgaXMgbm9uLTA7IHdlIGNhbiBzYWZlbHkgYWRkIG9yIHN1YnRyYWN0IDEKKyAgICAgIGlmIChpbmQ9PWlzbmVnKSAKKyAgICAgICBpbmNyZW1lbnQ9KGludCktaW5jcmVtZW50OworICAgICAgbmV3bWFudD1ieXRlYWRkc3ViKG1hbnQsbWFudC5sZW5ndGgsT05FLm1hbnQsMSxpbmNyZW1lbnQscmV1c2UpOworICAgICAgaWYgKG5ld21hbnQubGVuZ3RoPm1hbnQubGVuZ3RoKSAKKyAgICAgICB7IC8vIGhhZCBhIGNhcnJ5CisgICAgICAgIC8vIGRyb3AgcmlnaHRtb3N0IGRpZ2l0IGFuZCByYWlzZSBleHBvbmVudAorICAgICAgICBleHArKzsKKyAgICAgICAgLy8gbWFudCBpcyBhbHJlYWR5IHRoZSBjb3JyZWN0IGxlbmd0aAorICAgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCluZXdtYW50LDAsKGphdmEubGFuZy5PYmplY3QpbWFudCwwLG1hbnQubGVuZ3RoKTsKKyAgICAgICB9CisgICAgICBlbHNlIAorICAgICAgIG1hbnQ9bmV3bWFudDsKKyAgICAgfQorICAgfXdoaWxlKGZhbHNlKTt9LypidW1wKi8KKyAgLy8gcm91bmRpbmcgY2FuIGluY3JlYXNlIGV4cG9uZW50IHNpZ25pZmljYW50bHkKKyAgaWYgKGV4cD5NYXhFeHApIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJFeHBvbmVudCBPdmVyZmxvdzoiKyIgIitleHApOworICByZXR1cm4gdGhpczsKKyAgfQorCisgLyogPHNnbWw+IFRlc3QgaWYgcmlnaHRtb3N0IGRpZ2l0cyBhcmUgYWxsIDAuCisgICAgQXJnMSBpcyBhIG1hbnRpc3NhIGFycmF5IHRvIHRlc3QKKyAgICBBcmcyIGlzIHRoZSBvZmZzZXQgb2YgZmlyc3QgZGlnaXQgdG8gY2hlY2sKKyAgICAgICAgICAgIFttYXkgYmUgbmVnYXRpdmU7IGlmIHNvLCBkaWdpdHMgdG8gbGVmdCBhcmUgMCdzXQorICAgIHJldHVybnMgMSBpZiBhbGwgdGhlIGRpZ2l0cyBzdGFydGluZyBhdCBBcmcyIGFyZSAwCisgCisgICAgQXJnMiBtYXkgYmUgYmV5b25kIGFycmF5IGJvdW5kcywgaW4gd2hpY2ggY2FzZSAxIGlzIHJldHVybmVkCisgICAgPC9zZ21sPiAqLworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gYWxsemVybyhieXRlIGFycmF5W10saW50IHN0YXJ0KXsKKyAgaW50IGk9MDsKKyAgaWYgKHN0YXJ0PDApIAorICAgc3RhcnQ9MDsKKyAge2ludCAkMjU9YXJyYXkubGVuZ3RoLTE7aT1zdGFydDtpOmZvcig7aTw9JDI1O2krKyl7CisgICBpZiAoYXJyYXlbaV0hPTApIAorICAgIHJldHVybiBmYWxzZTsKKyAgIH0KKyAgfS8qaSovCisgIHJldHVybiB0cnVlOworICB9CisKKyAvKiA8c2dtbD4gQ2Fycnkgb3V0IGZpbmFsIGNoZWNrcyBhbmQgY2Fub25pY2FsaXphdGlvbgorICAgIDxwPgorICAgIFRoaXMgZmluaXNoZXMgb2ZmIHRoZSBjdXJyZW50IG51bWJlciBieToKKyAgICAgIDEuIFJvdW5kaW5nIGlmIG5lY2Vzc2FyeSAoTkI6IGxlbmd0aCBpbmNsdWRlcyBsZWFkaW5nIHplcm9zKQorICAgICAgMi4gU3RyaXBwaW5nIHRyYWlsaW5nIHplcm9zIChpZiByZXF1ZXN0ZWQgYW5kIFxQTEFJTikKKyAgICAgIDMuIFN0cmlwcGluZyBsZWFkaW5nIHplcm9zIChhbHdheXMpCisgICAgICA0LiBTZWxlY3RpbmcgZXhwb25lbnRpYWwgbm90YXRpb24gKGlmIHJlcXVpcmVkKQorICAgICAgNS4gQ29udmVydGluZyBhIHplcm8gcmVzdWx0IHRvIGp1c3QgJzAnIChpZiBcUExBSU4pCisgICAgSW4gcHJhY3RpY2UsIHRoZXNlIG9wZXJhdGlvbnMgb3ZlcmxhcCBhbmQgc2hhcmUgY29kZS4KKyAgICBJdCBhbHdheXMgc2V0cyBmb3JtLgorICAgIDwvc2dtbD4KKyAgICBBcmcxIGlzIHJlcXVlc3RlZCBNYXRoQ29udGV4dCAobGVuZ3RoIHRvIHJvdW5kIHRvLCB0cmlnZ2VyLCBhbmQgRk9STSkKKyAgICBBcmcyIGlzIDEgaWYgdHJhaWxpbmcgaW5zaWduaWZpY2FudCB6ZXJvcyBzaG91bGQgYmUgcmVtb3ZlZCBhZnRlcgorICAgICAgICAgcm91bmQgKGZvciBkaXZpc2lvbiwgZXRjLiksIHByb3ZpZGVkIHRoYXQgc2V0LmZvcm0gaXNuJ3QgUExBSU4uCisgICByZXR1cm5zIHRoaXMsIGZvciBjb252ZW5pZW5jZQorICAgKi8KKyAKKyBwcml2YXRlIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBmaW5pc2goY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQsYm9vbGVhbiBzdHJpcCl7CisgIGludCBkPTA7CisgIGludCBpPTA7CisgIGJ5dGUgbmV3bWFudFtdPW51bGw7CisgIGludCBtYWc9MDsKKyAgaW50IHNpZz0wOworICAvKiBSb3VuZCBpZiBtYW50aXNzYSB0b28gbG9uZyBhbmQgZGlnaXRzIHJlcXVlc3RlZCAqLworICBpZiAoc2V0LmRpZ2l0cyE9MCkgCisgICBpZiAodGhpcy5tYW50Lmxlbmd0aD5zZXQuZGlnaXRzKSAKKyAgICB0aGlzLnJvdW5kKHNldCk7CisgIAorICAvKiBJZiBzdHJpcCByZXF1ZXN0ZWQgKGFuZCBzdGFuZGFyZCBmb3JtYXR0aW5nKSwgcmVtb3ZlCisgICAgIGluc2lnbmlmaWNhbnQgdHJhaWxpbmcgemVyb3MuICovCisgIGlmIChzdHJpcCkgCisgICBpZiAoc2V0LmZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgIHsKKyAgICAgZD10aGlzLm1hbnQubGVuZ3RoOworICAgICAvKiBzZWUgaWYgd2UgbmVlZCB0byBkcm9wIGFueSB0cmFpbGluZyB6ZXJvcyAqLworICAgICB7aT1kLTE7aTpmb3IoO2k+PTE7aS0tKXsKKyAgICAgIGlmICh0aGlzLm1hbnRbaV0hPTApIAorICAgICAgIGJyZWFrIGk7CisgICAgICBkLS07CisgICAgICBleHArKzsKKyAgICAgIH0KKyAgICAgfS8qaSovCisgICAgIGlmIChkPHRoaXMubWFudC5sZW5ndGgpIAorICAgICAgey8qIG5lZWQgdG8gcmVkdWNlICovCisgICAgICAgbmV3bWFudD1uZXcgYnl0ZVtkXTsKKyAgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCl0aGlzLm1hbnQsMCwoamF2YS5sYW5nLk9iamVjdCluZXdtYW50LDAsZCk7CisgICAgICAgdGhpcy5tYW50PW5ld21hbnQ7CisgICAgICB9CisgICAgfQorICAKKyAgZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOyAvLyBwcmVzZXQKKyAgCisgIC8qIE5vdyBjaGVjayBmb3IgbGVhZGluZy0gYW5kIGFsbC0gemVyb3MgaW4gbWFudGlzc2EgKi8KKyAge2ludCAkMjY9dGhpcy5tYW50Lmxlbmd0aDtpPTA7aTpmb3IoOyQyNj4wOyQyNi0tLGkrKyl7CisgICBpZiAodGhpcy5tYW50W2ldIT0wKSAKKyAgICB7CisgICAgIC8vIG5vbi0wIHJlc3VsdDsgaW5kIHdpbGwgYmUgY29ycmVjdAorICAgICAvLyByZW1vdmUgbGVhZGluZyB6ZXJvcyBbZS5nLiwgYWZ0ZXIgc3VidHJhY3RdCisgICAgIGlmIChpPjApIAorICAgICAge2RlbGVhZDpkb3sKKyAgICAgICBuZXdtYW50PW5ldyBieXRlW3RoaXMubWFudC5sZW5ndGgtaV07CisgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpdGhpcy5tYW50LGksKGphdmEubGFuZy5PYmplY3QpbmV3bWFudCwwLHRoaXMubWFudC5sZW5ndGgtaSk7CisgICAgICAgdGhpcy5tYW50PW5ld21hbnQ7CisgICAgICB9d2hpbGUoZmFsc2UpO30vKmRlbGVhZCovCisgICAgIC8vIG5vdyBkZXRlcm1pbmUgZm9ybSBpZiBub3QgUExBSU4KKyAgICAgbWFnPWV4cCttYW50Lmxlbmd0aDsKKyAgICAgaWYgKG1hZz4wKSAKKyAgICAgIHsgLy8gbW9zdCBjb21tb24gcGF0aAorICAgICAgIGlmIChtYWc+c2V0LmRpZ2l0cykgCisgICAgICAgIGlmIChzZXQuZGlnaXRzIT0wKSAKKyAgICAgICAgIGZvcm09KGJ5dGUpc2V0LmZvcm07CisgICAgICAgaWYgKChtYWctMSk8PU1heEV4cCkgCisgICAgICAgIHJldHVybiB0aGlzOyAvLyBubyBvdmVyZmxvdzsgcXVpY2sgcmV0dXJuCisgICAgICB9CisgICAgIGVsc2UgCisgICAgICBpZiAobWFnPCgtNSkpIAorICAgICAgIGZvcm09KGJ5dGUpc2V0LmZvcm07CisgICAgIC8qIGNoZWNrIGZvciBvdmVyZmxvdyAqLworICAgICBtYWctLTsKKyAgICAgaWYgKChtYWc8TWluRXhwKXwobWFnPk1heEV4cCkpIAorICAgICAge292ZXJmbG93OmRveworICAgICAgIC8vIHBvc3NpYmxlIHJlcHJpZXZlIGlmIGZvcm0gaXMgZW5naW5lZXJpbmcKKyAgICAgICBpZiAoZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORykgCisgICAgICAgIHsKKyAgICAgICAgIHNpZz1tYWclMzsgLy8gbGVmdG92ZXIKKyAgICAgICAgIGlmIChzaWc8MCkgCisgICAgICAgICAgc2lnPTMrc2lnOyAvLyBuZWdhdGl2ZSBleHBvbmVudAorICAgICAgICAgbWFnPW1hZy1zaWc7IC8vIGV4cG9uZW50IHRvIHVzZQorICAgICAgICAgLy8gMTk5OS4wNi4yOTogc2Vjb25kIHRlc3QgaGVyZSBtdXN0IGJlIE1heEV4cAorICAgICAgICAgaWYgKG1hZz49TWluRXhwKSAKKyAgICAgICAgICBpZiAobWFnPD1NYXhFeHApIAorICAgICAgICAgICBicmVhayBvdmVyZmxvdzsKKyAgICAgICAgfQorICAgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRXhwb25lbnQgT3ZlcmZsb3c6IisiICIrbWFnKTsKKyAgICAgIH13aGlsZShmYWxzZSk7fS8qb3ZlcmZsb3cqLworICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICB9CisgIH0vKmkqLworICAKKyAgLy8gRHJvcCB0aHJvdWdoIHRvIGhlcmUgb25seSBpZiBtYW50aXNzYSBpcyBhbGwgemVyb3MKKyAgaW5kPWlzemVybzsKKyAgey8qc2VsZWN0Ki8KKyAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKQorICAgZXhwPTA7IC8vIHN0YW5kYXJkIHJlc3VsdDsgZ28gdG8gJzAnCisgIGVsc2UgaWYgKGV4cD4wKQorICAgZXhwPTA7IC8vICt2ZSBleHBvbmVudCBhbHNvIGdvZXMgdG8gJzAnCisgIGVsc2V7CisgICAvLyBhIHBsYWluIG51bWJlciB3aXRoIC12ZSBleHBvbmVudDsgcHJlc2VydmUgYW5kIGNoZWNrIGV4cG9uZW50CisgICBpZiAoZXhwPE1pbkV4cCkgCisgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJFeHBvbmVudCBPdmVyZmxvdzoiKyIgIitleHApOworICB9CisgIH0KKyAgbWFudD1aRVJPLm1hbnQ7IC8vIGNhbm9uaWNhbCBtYW50aXNzYQorICByZXR1cm4gdGhpczsKKyAgfQorIH0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYXRoL01hdGhDb250ZXh0LmphdmEgYi9zcmMvY29tL2libS9pY3UvbWF0aC9NYXRoQ29udGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxNjM4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbWF0aC9NYXRoQ29udGV4dC5qYXZhCkBAIC0wLDAgKzEsNjAxIEBACisvKiBHZW5lcmF0ZWQgZnJvbSAnTWF0aENvbnRleHQubnJ4JyA4IFNlcCAyMDAwIDExOjA3OjQ4IFt2Mi4wMF0gKi8KKy8qIE9wdGlvbnM6IEJpbmFyeSBDb21tZW50cyBDcm9zc3JlZiBGb3JtYXQgSmF2YSBMb2dvIFN0cmljdGFyZ3MgU3RyaWN0Y2FzZSBUcmFjZTIgVmVyYm9zZTMgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UubWF0aDsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBNYXRoQ29udGV4dCAtLSBNYXRoIGNvbnRleHQgc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiwgMTk5NywgMjAwMCwgMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgVGhlIE1hdGhDb250ZXh0IG9iamVjdCBlbmNhcHN1bGF0ZXMgdGhlIHNldHRpbmdzIHVzZWQgYnkgdGhlICAgICAqLworLyogICBCaWdEZWNpbWFsIGNsYXNzOyBpdCBjb3VsZCBhbHNvIGJlIHVzZWQgYnkgb3RoZXIgYXJpdGhtZXRpY3MuICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIE5vdGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxLiBUaGUgcHJvcGVydGllcyBhcmUgY2hlY2tlZCBmb3IgdmFsaWRpdHkgb24gY29uc3RydWN0aW9uLCBzbyAgICAgKi8KKy8qICAgIHRoZSBCaWdEZWNpbWFsIGNsYXNzIG1heSBhc3N1bWUgdGhhdCB0aGV5IGFyZSBjb3JyZWN0LiAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBBdXRob3I6ICAgIE1pa2UgQ293bGlzaGF3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTcuMDkuMDMgSW5pdGlhbCB2ZXJzaW9uIChlZGl0ZWQgZnJvbSBuZXRyZXh4LmxhbmcuUmV4eFNldCkgICAgICAqLworLyogMTk5Ny4wOS4xMiBBZGQgbG9zdERpZ2l0cyBwcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA1LjAyIE1ha2UgdGhlIGNsYXNzIGltbXV0YWJsZSBhbmQgZmluYWw7IGRyb3Agc2V0IG1ldGhvZHMgICAgKi8KKy8qIDE5OTguMDYuMDUgQWRkIFJvdW5kIChyb3VuZGluZyBtb2RlcykgcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4yNSBSZW5hbWUgZnJvbSBEZWNpbWFsQ29udGV4dDsgYWxsb3cgZGlnaXRzPTAgICAgICAgICAgICAgICovCisvKiAxOTk4LjEwLjEyIGNoYW5nZSB0byBjb20uaWJtLmljdS5tYXRoIHBhY2thZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAyLjA2IGFkZCBqYXZhZG9jIGNvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMDUgc2ltcGxpZnk7IGNoYW5nZXMgZnJvbSBkaXNjdXNzaW9uIHdpdGggSi4gQmxvY2ggICAgICAgICAqLworLyogMTk5OS4wMy4xMyAxLjAwIHJlbGVhc2UgdG8gSUJNIENlbnRyZSBmb3IgSmF2YSBUZWNobm9sb2d5ICAgICAgICAgICovCisvKiAxOTk5LjA3LjEwIDEuMDQgZmxhZyBzZXJpYWxpemF0aW9uIHVudXNlZCAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDIwMDAuMDEuMDEgMS4wNiBjb3B5cmlnaHQgdXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKworCisKKy8qKgorICogVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBpbW11dGFibGUgY2xhc3MgZW5jYXBzdWxhdGVzIHRoZQorICogc2V0dGluZ3MgdW5kZXJzdG9vZCBieSB0aGUgb3BlcmF0b3IgbWV0aG9kcyBvZiB0aGUge0BsaW5rIEJpZ0RlY2ltYWx9CisgKiBjbGFzcyAoYW5kIHBvdGVudGlhbGx5IG90aGVyIGNsYXNzZXMpLiAgT3BlcmF0b3IgbWV0aG9kcyBhcmUgdGhvc2UKKyAqIHRoYXQgZWZmZWN0IGFuIG9wZXJhdGlvbiBvbiBhIG51bWJlciBvciBhIHBhaXIgb2YgbnVtYmVycy4KKyAqIDxwPgorICogVGhlIHNldHRpbmdzLCB3aGljaCBhcmUgbm90IGJhc2UtZGVwZW5kZW50LCBjb21wcmlzZToKKyAqIDxvbD4KKyAqIDxsaT48Y29kZT5kaWdpdHM8L2NvZGU+OgorICogdGhlIG51bWJlciBvZiBkaWdpdHMgKHByZWNpc2lvbikgdG8gYmUgdXNlZCBmb3IgYW4gb3BlcmF0aW9uCisgKiA8bGk+PGNvZGU+Zm9ybTwvY29kZT46CisgKiB0aGUgZm9ybSBvZiBhbnkgZXhwb25lbnQgdGhhdCByZXN1bHRzIGZyb20gdGhlIG9wZXJhdGlvbgorICogPGxpPjxjb2RlPmxvc3REaWdpdHM8L2NvZGU+OgorICogd2hldGhlciBjaGVja2luZyBmb3IgbG9zdCBkaWdpdHMgaXMgZW5hYmxlZAorICogPGxpPjxjb2RlPnJvdW5kaW5nTW9kZTwvY29kZT46CisgKiB0aGUgYWxnb3JpdGhtIHRvIGJlIHVzZWQgZm9yIHJvdW5kaW5nLgorICogPC9vbD4KKyAqIDxwPgorICogV2hlbiBwcm92aWRlZCwgYSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0IHN1cHBsaWVzIHRoZQorICogc2V0dGluZ3MgZm9yIGFuIG9wZXJhdGlvbiBkaXJlY3RseS4KKyAqIDxwPgorICogV2hlbiA8Y29kZT5NYXRoQ29udGV4dC5ERUZBVUxUPC9jb2RlPiBpcyBwcm92aWRlZCBmb3IgYQorICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlciB0aGVuIHRoZSBkZWZhdWx0IHNldHRpbmdzIGFyZSB1c2VkCisgKiAoPGNvZGU+OSwgU0NJRU5USUZJQywgZmFsc2UsIFJPVU5EX0hBTEZfVVA8L2NvZGU+KS4KKyAqIDxwPgorICogSW4gdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzLCBhbGwgbWV0aG9kcyB3aGljaCBhY2NlcHQgYQorICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IG9iamVjdCBkZWZhdWx0cykgYWxzbyBoYXZlIGEgdmVyc2lvbiBvZiB0aGUKKyAqIG1ldGhvZCB3aGljaCBkb2VzIG5vdCBhY2NlcHQgYSBNYXRoQ29udGV4dCBwYXJhbWV0ZXIuICBUaGVzZSB2ZXJzaW9ucworICogY2Fycnkgb3V0IHVubGltaXRlZCBwcmVjaXNpb24gZml4ZWQgcG9pbnQgYXJpdGhtZXRpYyAoYXMgdGhvdWdoIHRoZQorICogc2V0dGluZ3Mgd2VyZSAoPGNvZGU+MCwgUExBSU4sIGZhbHNlLCBST1VORF9IQUxGX1VQPC9jb2RlPikuCisgKiA8cD4KKyAqIFRoZSBpbnN0YW5jZSB2YXJpYWJsZXMgYXJlIHNoYXJlZCB3aXRoIGRlZmF1bHQgYWNjZXNzIChzbyB0aGV5IGFyZQorICogZGlyZWN0bHkgYWNjZXNzaWJsZSB0byB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY2xhc3MpLCBidXQgbXVzdAorICogbmV2ZXIgYmUgY2hhbmdlZC4KKyAqIDxwPgorICogVGhlIHJvdW5kaW5nIG1vZGUgY29uc3RhbnRzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYW5kIHZhbHVlcyBhcyB0aGUKKyAqIGNvbnN0YW50cyBvZiB0aGUgc2FtZSBuYW1lIGluIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsPC9jb2RlPiwgdG8KKyAqIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCBlYXJsaWVyIHZlcnNpb25zIG9mCisgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAqCisgKiBAc2VlICAgICBCaWdEZWNpbWFsCisgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIE1hdGhDb250ZXh0IGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGV7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyAkMD0iTWF0aENvbnRleHQubnJ4IjsKKyAKKyAvKiAtLS0tLSBQcm9wZXJ0aWVzIC0tLS0tICovCisgLyogcHJvcGVydGllcyBwdWJsaWMgY29uc3RhbnQgKi8KKyAvKioKKyAgKiBQbGFpbiAoZml4ZWQgcG9pbnQpIG5vdGF0aW9uLCB3aXRob3V0IGFueSBleHBvbmVudC4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSBmb3JtIG9mIHRoZSByZXN1bHQgb2YgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiBBIHplcm8gcmVzdWx0IGluIHBsYWluIGZvcm0gbWF5IGhhdmUgYSBkZWNpbWFsIHBhcnQgb2Ygb25lIG9yCisgICogbW9yZSB6ZXJvcy4KKyAgKgorICAqIEBzZWUgI0VOR0lORUVSSU5HCisgICogQHNlZSAjU0NJRU5USUZJQworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBMQUlOPTA7IC8vIFtubyBleHBvbmVudF0KKyAKKyAvKioKKyAgKiBTdGFuZGFyZCBmbG9hdGluZyBwb2ludCBub3RhdGlvbiAod2l0aCBzY2llbnRpZmljIGV4cG9uZW50aWFsCisgICogZm9ybWF0LCB3aGVyZSB0aGVyZSBpcyBvbmUgZGlnaXQgYmVmb3JlIGFueSBkZWNpbWFsIHBvaW50KS4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSBmb3JtIG9mIHRoZSByZXN1bHQgb2YgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiBBIHplcm8gcmVzdWx0IGluIHBsYWluIGZvcm0gbWF5IGhhdmUgYSBkZWNpbWFsIHBhcnQgb2Ygb25lIG9yCisgICogbW9yZSB6ZXJvcy4KKyAgKgorICAqIEBzZWUgI0VOR0lORUVSSU5HCisgICogQHNlZSAjUExBSU4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQ0lFTlRJRklDPTE7IC8vIDEgZGlnaXQgYmVmb3JlIC4KKyAKKyAvKioKKyAgKiBTdGFuZGFyZCBmbG9hdGluZyBwb2ludCBub3RhdGlvbiAod2l0aCBlbmdpbmVlcmluZyBleHBvbmVudGlhbAorICAqIGZvcm1hdCwgd2hlcmUgdGhlIHBvd2VyIG9mIHRlbiBpcyBhIG11bHRpcGxlIG9mIDMpLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIGZvcm0gb2YgdGhlIHJlc3VsdCBvZiBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIEEgemVybyByZXN1bHQgaW4gcGxhaW4gZm9ybSBtYXkgaGF2ZSBhIGRlY2ltYWwgcGFydCBvZiBvbmUgb3IKKyAgKiBtb3JlIHplcm9zLgorICAqCisgICogQHNlZSAjUExBSU4KKyAgKiBAc2VlICNTQ0lFTlRJRklDCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRU5HSU5FRVJJTkc9MjsgLy8gMS0zIGRpZ2l0cyBiZWZvcmUgLgorIAorIC8vIFRoZSByb3VuZGluZyBtb2RlcyBtYXRjaCB0aGUgb3JpZ2luYWwgQmlnRGVjaW1hbCBjbGFzcyB2YWx1ZXMKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIGEgbW9yZSBwb3NpdGl2ZSBudW1iZXIuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIElmIGFueSBvZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyBhcmUgbm9uLXplcm8gdGhlbiB0aGUgcmVzdWx0CisgICogc2hvdWxkIGJlIHJvdW5kZWQgdG93YXJkcyB0aGUgbmV4dCBtb3JlIHBvc2l0aXZlIGRpZ2l0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0NFSUxJTkc9MjsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvd2FyZHMgemVyby4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogQWxsIGRpc2NhcmRlZCBkaWdpdHMgYXJlIGlnbm9yZWQgKHRydW5jYXRlZCkuICBUaGUgcmVzdWx0IGlzCisgICogbmVpdGhlciBpbmNyZW1lbnRlZCBub3IgZGVjcmVtZW50ZWQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfRE9XTj0xOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gYSBtb3JlIG5lZ2F0aXZlIG51bWJlci4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogSWYgYW55IG9mIHRoZSBkaXNjYXJkZWQgZGlnaXRzIGFyZSBub24temVybyB0aGVuIHRoZSByZXN1bHQKKyAgKiBzaG91bGQgYmUgcm91bmRlZCB0b3dhcmRzIHRoZSBuZXh0IG1vcmUgbmVnYXRpdmUgZGlnaXQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfRkxPT1I9MzsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCBkb3duLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyByZXByZXNlbnQgZ3JlYXRlciB0aGFuIGhhbGYgKDAuNSB0aW1lcykKKyAgKiB0aGUgdmFsdWUgb2YgYSBvbmUgaW4gdGhlIG5leHQgcG9zaXRpb24gdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZQorICAqIHJvdW5kZWQgdXAgKGF3YXkgZnJvbSB6ZXJvKS4gIE90aGVyd2lzZSB0aGUgZGlzY2FyZGVkIGRpZ2l0cyBhcmUKKyAgKiBpZ25vcmVkLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfRE9XTj01OworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGV2ZW4gbmVpZ2hib3IuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIElmIHRoZSBkaXNjYXJkZWQgZGlnaXRzIHJlcHJlc2VudCBncmVhdGVyIHRoYW4gaGFsZiAoMC41IHRpbWVzKQorICAqIHRoZSB2YWx1ZSBvZiBhIG9uZSBpbiB0aGUgbmV4dCBwb3NpdGlvbiB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlCisgICogcm91bmRlZCB1cCAoYXdheSBmcm9tIHplcm8pLiAgSWYgdGhleSByZXByZXNlbnQgbGVzcyB0aGFuIGhhbGYsCisgICogdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZSByb3VuZGVkIGRvd24uCisgICogPHA+CisgICogT3RoZXJ3aXNlICh0aGV5IHJlcHJlc2VudCBleGFjdGx5IGhhbGYpIHRoZSByZXN1bHQgaXMgcm91bmRlZAorICAqIGRvd24gaWYgaXRzIHJpZ2h0bW9zdCBkaWdpdCBpcyBldmVuLCBvciByb3VuZGVkIHVwIGlmIGl0cworICAqIHJpZ2h0bW9zdCBkaWdpdCBpcyBvZGQgKHRvIG1ha2UgYW4gZXZlbiBkaWdpdCkuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfSEFMRl9FVkVOPTY7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgdXAuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIElmIHRoZSBkaXNjYXJkZWQgZGlnaXRzIHJlcHJlc2VudCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gaGFsZgorICAqICgwLjUgdGltZXMpIHRoZSB2YWx1ZSBvZiBhIG9uZSBpbiB0aGUgbmV4dCBwb3NpdGlvbiB0aGVuIHRoZSByZXN1bHQKKyAgKiBzaG91bGQgYmUgcm91bmRlZCB1cCAoYXdheSBmcm9tIHplcm8pLiAgT3RoZXJ3aXNlIHRoZSBkaXNjYXJkZWQKKyAgKiBkaWdpdHMgYXJlIGlnbm9yZWQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfSEFMRl9VUD00OworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gYXNzZXJ0IHRoYXQgbm8gcm91bmRpbmcgaXMgbmVjZXNzYXJ5LgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBSb3VuZGluZyAocG90ZW50aWFsIGxvc3Mgb2YgaW5mb3JtYXRpb24pIGlzIG5vdCBwZXJtaXR0ZWQuCisgICogSWYgYW55IG9mIHRoZSBkaXNjYXJkZWQgZGlnaXRzIGFyZSBub24temVybyB0aGVuIGFuCisgICogPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gc2hvdWxkIGJlIHRocm93bi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9VTk5FQ0VTU0FSWT03OworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgYXdheSBmcm9tIHplcm8uCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIElmIGFueSBvZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyBhcmUgbm9uLXplcm8gdGhlbiB0aGUgcmVzdWx0IHdpbGwKKyAgKiBiZSByb3VuZGVkIHVwIChhd2F5IGZyb20gemVybykuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfVVA9MDsKKyAKKyAKKyAvKiBwcm9wZXJ0aWVzIHNoYXJlZCAqLworIC8qKgorICAqIFRoZSBudW1iZXIgb2YgZGlnaXRzIChwcmVjaXNpb24pIHRvIGJlIHVzZWQgZm9yIGFuIG9wZXJhdGlvbi4KKyAgKiBBIHZhbHVlIG9mIDAgaW5kaWNhdGVzIHRoYXQgdW5saW1pdGVkIHByZWNpc2lvbiAoYXMgbWFueSBkaWdpdHMKKyAgKiBhcyBhcmUgcmVxdWlyZWQpIHdpbGwgYmUgdXNlZC4KKyAgKiA8cD4KKyAgKiBUaGUge0BsaW5rIEJpZ0RlY2ltYWx9IG9wZXJhdG9yIG1ldGhvZHMgdXNlIHRoaXMgdmFsdWUgdG8KKyAgKiBkZXRlcm1pbmUgdGhlIHByZWNpc2lvbiBvZiByZXN1bHRzLgorICAqIE5vdGUgdGhhdCBsZWFkaW5nIHplcm9zIChpbiB0aGUgaW50ZWdlciBwYXJ0IG9mIGEgbnVtYmVyKSBhcmUKKyAgKiBuZXZlciBzaWduaWZpY2FudC4KKyAgKiA8cD4KKyAgKiA8Y29kZT5kaWdpdHM8L2NvZGU+IHdpbGwgYWx3YXlzIGJlIG5vbi1uZWdhdGl2ZS4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBpbnQgZGlnaXRzOworIAorIC8qKgorICAqIFRoZSBmb3JtIG9mIHJlc3VsdHMgZnJvbSBhbiBvcGVyYXRpb24uCisgICogPHA+CisgICogVGhlIHtAbGluayBCaWdEZWNpbWFsfSBvcGVyYXRvciBtZXRob2RzIHVzZSB0aGlzIHZhbHVlIHRvCisgICogZGV0ZXJtaW5lIHRoZSBmb3JtIG9mIHJlc3VsdHMsIGluIHBhcnRpY3VsYXIgd2hldGhlciBhbmQgaG93CisgICogZXhwb25lbnRpYWwgbm90YXRpb24gc2hvdWxkIGJlIHVzZWQuCisgICoKKyAgKiBAc2VlICNFTkdJTkVFUklORworICAqIEBzZWUgI1BMQUlOCisgICogQHNlZSAjU0NJRU5USUZJQworICAqIEBzZXJpYWwKKyAgKi8KKyBpbnQgZm9ybTsgLy8gdmFsdWVzIGZvciB0aGlzIG11c3QgZml0IGluIGEgYnl0ZQorIAorIC8qKgorICAqIENvbnRyb2xzIHdoZXRoZXIgbG9zdCBkaWdpdHMgY2hlY2tpbmcgaXMgZW5hYmxlZCBmb3IgYW4KKyAgKiBvcGVyYXRpb24uCisgICogU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IHRvIGVuYWJsZSBjaGVja2luZywgb3IKKyAgKiB0byA8Y29kZT5mYWxzZTwvY29kZT4gdG8gZGlzYWJsZSBjaGVja2luZy4KKyAgKiA8cD4KKyAgKiBXaGVuIGVuYWJsZWQsIHRoZSB7QGxpbmsgQmlnRGVjaW1hbH0gb3BlcmF0b3IgbWV0aG9kcyBjaGVjaworICAqIHRoZSBwcmVjaXNpb24gb2YgdGhlaXIgb3BlcmFuZCBvciBvcGVyYW5kcywgYW5kIHRocm93IGFuCisgICogPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaWYgYW4gb3BlcmFuZCBpcyBtb3JlIHByZWNpc2UKKyAgKiB0aGFuIHRoZSBkaWdpdHMgc2V0dGluZyAodGhhdCBpcywgZGlnaXRzIHdvdWxkIGJlIGxvc3QpLgorICAqIFdoZW4gZGlzYWJsZWQsIG9wZXJhbmRzIGFyZSByb3VuZGVkIHRvIHRoZSBzcGVjaWZpZWQgZGlnaXRzLgorICAqCisgICogQHNlcmlhbAorICAqLworIGJvb2xlYW4gbG9zdERpZ2l0czsKKyAKKyAvKioKKyAgKiBUaGUgcm91bmRpbmcgYWxnb3JpdGhtIHRvIGJlIHVzZWQgZm9yIGFuIG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBUaGUge0BsaW5rIEJpZ0RlY2ltYWx9IG9wZXJhdG9yIG1ldGhvZHMgdXNlIHRoaXMgdmFsdWUgdG8KKyAgKiBkZXRlcm1pbmUgdGhlIGFsZ29yaXRobSB0byBiZSB1c2VkIHdoZW4gbm9uLXplcm8gZGlnaXRzIGhhdmUgdG8KKyAgKiBiZSBkaXNjYXJkZWQgaW4gb3JkZXIgdG8gcmVkdWNlIHRoZSBwcmVjaXNpb24gb2YgYSByZXN1bHQuCisgICogVGhlIHZhbHVlIG11c3QgYmUgb25lIG9mIHRoZSBwdWJsaWMgY29uc3RhbnRzIHdob3NlIG5hbWUgc3RhcnRzCisgICogd2l0aCA8Y29kZT5ST1VORF88L2NvZGU+LgorICAqCisgICogQHNlZSAjUk9VTkRfQ0VJTElORworICAqIEBzZWUgI1JPVU5EX0RPV04KKyAgKiBAc2VlICNST1VORF9GTE9PUgorICAqIEBzZWUgI1JPVU5EX0hBTEZfRE9XTgorICAqIEBzZWUgI1JPVU5EX0hBTEZfRVZFTgorICAqIEBzZWUgI1JPVU5EX0hBTEZfVVAKKyAgKiBAc2VlICNST1VORF9VTk5FQ0VTU0FSWQorICAqIEBzZWUgI1JPVU5EX1VQCisgICogQHNlcmlhbAorICAqLworIGludCByb3VuZGluZ01vZGU7CisgCisgLyogcHJvcGVydGllcyBwcml2YXRlIGNvbnN0YW50ICovCisgLy8gZGVmYXVsdCBzZXR0aW5ncworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0ZPUk09U0NJRU5USUZJQzsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9ESUdJVFM9OTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFRkFVTFRfTE9TVERJR0lUUz1mYWxzZTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9ST1VORElOR01PREU9Uk9VTkRfSEFMRl9VUDsKKyAKKyAvKiBwcm9wZXJ0aWVzIHByaXZhdGUgY29uc3RhbnQgKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOX0RJR0lUUz0wOyAvLyBzbWFsbGVzdCB2YWx1ZSBmb3IgRElHSVRTLgorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfRElHSVRTPTk5OTk5OTk5OTsgLy8gbGFyZ2VzdCB2YWx1ZSBmb3IgRElHSVRTLiAgSWYgaW5jcmVhc2VkLAorIC8vIHRoZSBCaWdEZWNpbWFsIGNsYXNzIG1heSBuZWVkIHVwZGF0ZS4KKyAvLyBsaXN0IG9mIHZhbGlkIHJvdW5kaW5nIG1vZGUgdmFsdWVzLCBtb3N0IGNvbW1vbiB0d28gZmlyc3QKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRTW109bmV3IGludFtde1JPVU5EX0hBTEZfVVAsUk9VTkRfVU5ORUNFU1NBUlksUk9VTkRfQ0VJTElORyxST1VORF9ET1dOLFJPVU5EX0ZMT09SLFJPVU5EX0hBTEZfRE9XTixST1VORF9IQUxGX0VWRU4sUk9VTkRfVVB9OworIAorIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgUk9VTkRXT1JEU1tdPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IlJPVU5EX0hBTEZfVVAiLCJST1VORF9VTk5FQ0VTU0FSWSIsIlJPVU5EX0NFSUxJTkciLCJST1VORF9ET1dOIiwiUk9VTkRfRkxPT1IiLCJST1VORF9IQUxGX0RPV04iLCJST1VORF9IQUxGX0VWRU4iLCJST1VORF9VUCJ9OyAvLyBtYXRjaGluZyBuYW1lcyBvZiB0aGUgUk9VTkRTIHZhbHVlcworIAorIAorIAorIAorIC8qIHByb3BlcnRpZXMgcHJpdmF0ZSBjb25zdGFudCB1bnVzZWQgKi8KKyAKKyAvLyBTZXJpYWxpemF0aW9uIHZlcnNpb24KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQ9NzE2MzM3Njk5ODg5MjUxNTM3Nkw7CisgCisgLyogcHJvcGVydGllcyBwdWJsaWMgY29uc3RhbnQgKi8KKyAvKioKKyAgKiBBIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3QgaW5pdGlhbGl6ZWQgdG8gdGhlIGRlZmF1bHQKKyAgKiBzZXR0aW5ncyBmb3IgZ2VuZXJhbC1wdXJwb3NlIGFyaXRobWV0aWMuICBUaGF0IGlzLAorICAqIDxjb2RlPmRpZ2l0cz05IGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPWZhbHNlCisgICogcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVA8L2NvZGU+LgorICAqCisgICogQHNlZSAjU0NJRU5USUZJQworICAqIEBzZWUgI1JPVU5EX0hBTEZfVVAKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgREVGQVVMVD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dChERUZBVUxUX0RJR0lUUyxERUZBVUxUX0ZPUk0sREVGQVVMVF9MT1NURElHSVRTLERFRkFVTFRfUk9VTkRJTkdNT0RFKTsKKworIAorIAorIAorIC8qIC0tLS0tIENvbnN0cnVjdG9ycyAtLS0tLSAqLworIAorIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHdpdGggYSBzcGVjaWZpZWQKKyAgKiBwcmVjaXNpb24uCisgICogVGhlIG90aGVyIHNldHRpbmdzIGFyZSBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWVzCisgICogKHNlZSB7QGxpbmsgI0RFRkFVTFR9KS4KKyAgKgorICAqIEFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIHRoZQorICAqIDxjb2RlPnNldGRpZ2l0czwvY29kZT4gcGFyYW1ldGVyIGlzIG91dCBvZiByYW5nZQorICAqICgmbHQ7MCBvciAmZ3Q7OTk5OTk5OTk5KS4KKyAgKgorICAqIEBwYXJhbSBzZXRkaWdpdHMgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGRpZ2l0cyBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHBhcmFtZXRlciBvdXQgb2YgcmFuZ2UuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIE1hdGhDb250ZXh0KGludCBzZXRkaWdpdHMpeworICB0aGlzKHNldGRpZ2l0cyxERUZBVUxUX0ZPUk0sREVGQVVMVF9MT1NURElHSVRTLERFRkFVTFRfUk9VTkRJTkdNT0RFKTsKKyAgcmV0dXJuO30KKworIAorIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHdpdGggYSBzcGVjaWZpZWQKKyAgKiBwcmVjaXNpb24gYW5kIGZvcm0uCisgICogVGhlIG90aGVyIHNldHRpbmdzIGFyZSBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWVzCisgICogKHNlZSB7QGxpbmsgI0RFRkFVTFR9KS4KKyAgKgorICAqIEFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIHRoZQorICAqIDxjb2RlPnNldGRpZ2l0czwvY29kZT4gcGFyYW1ldGVyIGlzIG91dCBvZiByYW5nZQorICAqICgmbHQ7MCBvciAmZ3Q7OTk5OTk5OTk5KSwgb3IgaWYgdGhlIHZhbHVlIGdpdmVuIGZvciB0aGUKKyAgKiA8Y29kZT5zZXRmb3JtPC9jb2RlPiBwYXJhbWV0ZXIgaXMgbm90IG9uZSBvZiB0aGUgYXBwcm9wcmlhdGUKKyAgKiBjb25zdGFudHMuCisgICoKKyAgKiBAcGFyYW0gc2V0ZGlnaXRzICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBkaWdpdHMgc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0Zm9ybSAgICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBmb3JtIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gcGFyYW1ldGVyIG91dCBvZiByYW5nZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgTWF0aENvbnRleHQoaW50IHNldGRpZ2l0cyxpbnQgc2V0Zm9ybSl7CisgIHRoaXMoc2V0ZGlnaXRzLHNldGZvcm0sREVGQVVMVF9MT1NURElHSVRTLERFRkFVTFRfUk9VTkRJTkdNT0RFKTsKKyAgcmV0dXJuO30KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHdpdGggYSBzcGVjaWZpZWQKKyAgKiBwcmVjaXNpb24sIGZvcm0sIGFuZCBsb3N0RGlnaXRzIHNldHRpbmcuCisgICogVGhlIHJvdW5kaW5nTW9kZSBzZXR0aW5nIGlzIHNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZQorICAqIChzZWUge0BsaW5rICNERUZBVUxUfSkuCisgICoKKyAgKiBBbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiB0aGUKKyAgKiA8Y29kZT5zZXRkaWdpdHM8L2NvZGU+IHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UKKyAgKiAoJmx0OzAgb3IgJmd0Ozk5OTk5OTk5OSksIG9yIGlmIHRoZSB2YWx1ZSBnaXZlbiBmb3IgdGhlCisgICogPGNvZGU+c2V0Zm9ybTwvY29kZT4gcGFyYW1ldGVyIGlzIG5vdCBvbmUgb2YgdGhlIGFwcHJvcHJpYXRlCisgICogY29uc3RhbnRzLgorICAqCisgICogQHBhcmFtIHNldGRpZ2l0cyAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZGlnaXRzIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldGZvcm0gICAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZm9ybSBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEBwYXJhbSBzZXRsb3N0ZGlnaXRzIFRoZSA8Y29kZT5ib29sZWFuPC9jb2RlPiBsb3N0RGlnaXRzCisgICogICAgICAgICAgICAgICAgICAgICAgc2V0dGluZyBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gcGFyYW1ldGVyIG91dCBvZiByYW5nZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgTWF0aENvbnRleHQoaW50IHNldGRpZ2l0cyxpbnQgc2V0Zm9ybSxib29sZWFuIHNldGxvc3RkaWdpdHMpeworICB0aGlzKHNldGRpZ2l0cyxzZXRmb3JtLHNldGxvc3RkaWdpdHMsREVGQVVMVF9ST1VORElOR01PREUpOworICByZXR1cm47fQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gd2l0aCBhIHNwZWNpZmllZAorICAqIHByZWNpc2lvbiwgZm9ybSwgbG9zdERpZ2l0cywgYW5kIHJvdW5kaW5nTW9kZSBzZXR0aW5nLgorICAqCisgICogQW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgdGhlCisgICogPGNvZGU+c2V0ZGlnaXRzPC9jb2RlPiBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlCisgICogKCZsdDswIG9yICZndDs5OTk5OTk5OTkpLCBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gZm9yIHRoZQorICAqIDxjb2RlPnNldGZvcm08L2NvZGU+IG9yIDxjb2RlPnNldHJvdW5kaW5nbW9kZTwvY29kZT4gcGFyYW1ldGVycyBpcworICAqIG5vdCBvbmUgb2YgdGhlIGFwcHJvcHJpYXRlIGNvbnN0YW50cy4KKyAgKgorICAqIEBwYXJhbSBzZXRkaWdpdHMgICAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZGlnaXRzIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0Zm9ybSAgICAgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGZvcm0gc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEBwYXJhbSBzZXRsb3N0ZGlnaXRzICAgVGhlIDxjb2RlPmJvb2xlYW48L2NvZGU+IGxvc3REaWdpdHMKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEBwYXJhbSBzZXRyb3VuZGluZ21vZGUgVGhlIDxjb2RlPmludDwvY29kZT4gcm91bmRpbmdNb2RlIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBwYXJhbWV0ZXIgb3V0IG9mIHJhbmdlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBNYXRoQ29udGV4dChpbnQgc2V0ZGlnaXRzLGludCBzZXRmb3JtLGJvb2xlYW4gc2V0bG9zdGRpZ2l0cyxpbnQgc2V0cm91bmRpbmdtb2RlKXtzdXBlcigpOworICAKKyAgCisgIC8vIHNldCB2YWx1ZXMsIGFmdGVyIGNoZWNraW5nCisgIGlmIChzZXRkaWdpdHMhPURFRkFVTFRfRElHSVRTKSAKKyAgIHsKKyAgICBpZiAoc2V0ZGlnaXRzPE1JTl9ESUdJVFMpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGlnaXRzIHRvbyBzbWFsbDoiKyIgIitzZXRkaWdpdHMpOworICAgIGlmIChzZXRkaWdpdHM+TUFYX0RJR0lUUykgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJEaWdpdHMgdG9vIGxhcmdlOiIrIiAiK3NldGRpZ2l0cyk7CisgICB9CisgIHsvKnNlbGVjdCovCisgIGlmIChzZXRmb3JtPT1TQ0lFTlRJRklDKXsKKyAgIC8vIFttb3N0IGNvbW1vbl0KKyAgfWVsc2UgaWYgKHNldGZvcm09PUVOR0lORUVSSU5HKXsKKyAgfWVsc2UgaWYgKHNldGZvcm09PVBMQUlOKXsKKyAgfWVsc2V7CisgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIGZvcm0gdmFsdWU6IisiICIrc2V0Zm9ybSk7CisgIH0KKyAgfQorICBpZiAoKCEoaXNWYWxpZFJvdW5kKHNldHJvdW5kaW5nbW9kZSkpKSkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIHJvdW5kaW5nTW9kZSB2YWx1ZToiKyIgIitzZXRyb3VuZGluZ21vZGUpOworICBkaWdpdHM9c2V0ZGlnaXRzOworICBmb3JtPXNldGZvcm07CisgIGxvc3REaWdpdHM9c2V0bG9zdGRpZ2l0czsgLy8gW25vIGJhZCB2YWx1ZSBwb3NzaWJsZV0KKyAgcm91bmRpbmdNb2RlPXNldHJvdW5kaW5nbW9kZTsKKyAgcmV0dXJuO30KKworIC8qKgorICAqIFJldHVybnMgdGhlIGRpZ2l0cyBzZXR0aW5nLgorICAqIFRoaXMgdmFsdWUgaXMgYWx3YXlzIG5vbi1uZWdhdGl2ZS4KKyAgKgorICAqIEByZXR1cm4gYW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0cworICAqICAgICAgICAgc2V0dGluZworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgZ2V0RGlnaXRzKCl7CisgIHJldHVybiBkaWdpdHM7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIGZvcm0gc2V0dGluZy4KKyAgKiBUaGlzIHdpbGwgYmUgb25lIG9mCisgICoge0BsaW5rICNFTkdJTkVFUklOR30sCisgICoge0BsaW5rICNQTEFJTn0sIG9yCisgICoge0BsaW5rICNTQ0lFTlRJRklDfS4KKyAgKgorICAqIEByZXR1cm4gYW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gc2V0dGluZworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgZ2V0Rm9ybSgpeworICByZXR1cm4gZm9ybTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgbG9zdERpZ2l0cyBzZXR0aW5nLgorICAqIFRoaXMgd2lsbCBiZSBlaXRoZXIgPGNvZGU+dHJ1ZTwvY29kZT4gKGVuYWJsZWQpIG9yCisgICogPGNvZGU+ZmFsc2U8L2NvZGU+IChkaXNhYmxlZCkuCisgICoKKyAgKiBAcmV0dXJuIGEgPGNvZGU+Ym9vbGVhbjwvY29kZT4gd2hpY2ggaXMgdGhlIHZhbHVlIG9mIHRoZSBsb3N0RGlnaXRzCisgICogICAgICAgICAgIHNldHRpbmcKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgYm9vbGVhbiBnZXRMb3N0RGlnaXRzKCl7CisgIHJldHVybiBsb3N0RGlnaXRzOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSByb3VuZGluZ01vZGUgc2V0dGluZy4KKyAgKiBUaGlzIHdpbGwgYmUgb25lIG9mCisgICoge0BsaW5rICAjUk9VTkRfQ0VJTElOR30sCisgICoge0BsaW5rICAjUk9VTkRfRE9XTn0sCisgICoge0BsaW5rICAjUk9VTkRfRkxPT1J9LAorICAqIHtAbGluayAgI1JPVU5EX0hBTEZfRE9XTn0sCisgICoge0BsaW5rICAjUk9VTkRfSEFMRl9FVkVOfSwKKyAgKiB7QGxpbmsgICNST1VORF9IQUxGX1VQfSwKKyAgKiB7QGxpbmsgICNST1VORF9VTk5FQ0VTU0FSWX0sIG9yCisgICoge0BsaW5rICAjUk9VTkRfVVB9LgorICAqCisgICogQHJldHVybiBhbiA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIHRoZSB2YWx1ZSBvZiB0aGUgcm91bmRpbmdNb2RlCisgICogICAgICAgICBzZXR0aW5nCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBnZXRSb3VuZGluZ01vZGUoKXsKKyAgcmV0dXJuIHJvdW5kaW5nTW9kZTsKKyAgfQorCisgLyoqIFJldHVybnMgdGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcyBhIHJlYWRhYmxlIHN0cmluZy4KKyAgKiBUaGUgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXR1cm5lZCByZXByZXNlbnRzIHRoZSBzZXR0aW5ncyBvZiB0aGUKKyAgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0IGFzIGZvdXIgYmxhbmstZGVsaW1pdGVkIHdvcmRzCisgICogc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIGJsYW5rIGFuZCB3aXRoIG5vIGxlYWRpbmcgb3IgdHJhaWxpbmcgYmxhbmtzLAorICAqIGFzIGZvbGxvd3M6CisgICogPG9sPgorICAqIDxsaT4KKyAgKiA8Y29kZT5kaWdpdHM9PC9jb2RlPiwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkKKyAgKiB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0cyBzZXR0aW5nIGFzIGEgbnVtZXJpYyB3b3JkLgorICAqIDxsaT4KKyAgKiA8Y29kZT5mb3JtPTwvY29kZT4sIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5CisgICogdGhlIHZhbHVlIG9mIHRoZSBmb3JtIHNldHRpbmcgYXMgYW4gdXBwZXJjYXNlIHdvcmQKKyAgKiAob25lIG9mIDxjb2RlPlNDSUVOVElGSUM8L2NvZGU+LCA8Y29kZT5QTEFJTjwvY29kZT4sIG9yCisgICogPGNvZGU+RU5HSU5FRVJJTkc8L2NvZGU+KS4KKyAgKiA8bGk+CisgICogPGNvZGU+bG9zdERpZ2l0cz08L2NvZGU+LCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorICAqIHRoZSB2YWx1ZSBvZiB0aGUgbG9zdERpZ2l0cyBzZXR0aW5nCisgICogKDxjb2RlPjE8L2NvZGU+IGlmIGVuYWJsZWQsIDxjb2RlPjA8L2NvZGU+IGlmIGRpc2FibGVkKS4KKyAgKiA8bGk+CisgICogPGNvZGU+cm91bmRpbmdNb2RlPTwvY29kZT4sIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5CisgICogdGhlIHZhbHVlIG9mIHRoZSByb3VuZGluZ01vZGUgc2V0dGluZyBhcyBhIHdvcmQuCisgICogVGhpcyB3b3JkIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcHVibGljCisgICogY29uc3RhbnQuCisgICogPC9vbD4KKyAgKiA8cD4KKyAgKiBGb3IgZXhhbXBsZToKKyAgKiA8YnI+PGNvZGU+CisgICogZGlnaXRzPTkgZm9ybT1TQ0lFTlRJRklDIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUAorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiBBZGRpdGlvbmFsIHdvcmRzIG1heSBiZSBhcHBlbmRlZCB0byB0aGUgcmVzdWx0IG9mCisgICogPGNvZGU+dG9TdHJpbmc8L2NvZGU+IGluIHRoZSBmdXR1cmUgaWYgbW9yZSBwcm9wZXJ0aWVzIGFyZSBhZGRlZAorICAqIHRvIHRoZSBjbGFzcy4KKyAgKgorICAqIEByZXR1cm4gYSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGluZyB0aGUgY29udGV4dCBzZXR0aW5ncy4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpeworICBqYXZhLmxhbmcuU3RyaW5nIGZvcm1zdHI9bnVsbDsKKyAgaW50IHI9MDsKKyAgamF2YS5sYW5nLlN0cmluZyByb3VuZHdvcmQ9bnVsbDsKKyAgey8qc2VsZWN0Ki8KKyAgaWYgKGZvcm09PVNDSUVOVElGSUMpCisgICBmb3Jtc3RyPSJTQ0lFTlRJRklDIjsKKyAgZWxzZSBpZiAoZm9ybT09RU5HSU5FRVJJTkcpCisgICBmb3Jtc3RyPSJFTkdJTkVFUklORyI7CisgIGVsc2V7CisgICBmb3Jtc3RyPSJQTEFJTiI7LyogZm9ybT1QTEFJTiAqLworICB9CisgIH0KKyAge2ludCAkMT1ST1VORFMubGVuZ3RoO3I9MDtyOmZvcig7JDE+MDskMS0tLHIrKyl7CisgICBpZiAocm91bmRpbmdNb2RlPT1ST1VORFNbcl0pIAorICAgIHsKKyAgICAgcm91bmR3b3JkPVJPVU5EV09SRFNbcl07CisgICAgIGJyZWFrIHI7CisgICAgfQorICAgfQorICB9LypyKi8KKyAgcmV0dXJuICJkaWdpdHM9IitkaWdpdHMrIiAiKyJmb3JtPSIrZm9ybXN0cisiICIrImxvc3REaWdpdHM9IisobG9zdERpZ2l0cz8iMSI6IjAiKSsiICIrInJvdW5kaW5nTW9kZT0iK3JvdW5kd29yZDsKKyAgfQorCisgCisgLyogPHNnbWw+IFRlc3Qgd2hldGhlciByb3VuZCBpcyB2YWxpZC4gPC9zZ21sPiAqLworIC8vIFRoaXMgY291bGQgYmUgbWFkZSBzaGFyZWQgZm9yIHVzZSBieSBCaWdEZWNpbWFsIGZvciBzZXRTY2FsZS4KKyAKKyBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVmFsaWRSb3VuZChpbnQgdGVzdHJvdW5kKXsKKyAgaW50IHI9MDsKKyAge2ludCAkMj1ST1VORFMubGVuZ3RoO3I9MDtyOmZvcig7JDI+MDskMi0tLHIrKyl7CisgICBpZiAodGVzdHJvdW5kPT1ST1VORFNbcl0pIAorICAgIHJldHVybiB0cnVlOworICAgfQorICB9LypyKi8KKyAgcmV0dXJuIGZhbHNlOworICB9CisgfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L21hdGgvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYzMzZlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbWF0aC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+CisKKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorCis8dGl0bGU+QzpcY3ZzXGljdTRqXHNyY1xjb21caWJtXGRlbW9ccGFja2FnZS5odG1sPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorCis8cD5JQk0gQmlnRGVjaW1hbCBzdXBwb3J0LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BbnlUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNTQ0ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BbnlUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzQxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAwNi8wNi8yMDAyICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBqYXZhLmxhbmcuTWF0aDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgdHJhbnNsYXRlcyBtdWx0aXBsZSBpbnB1dCBzY3JpcHRzIHRvIGEgc2luZ2xlCisgKiBvdXRwdXQgc2NyaXB0LiAgSXQgaXMgbmFtZWQgQW55LVQgb3IgQW55LVQvViwgd2hlcmUgVCBpcyB0aGUgdGFyZ2V0CisgKiBhbmQgViBpcyB0aGUgb3B0aW9uYWwgdmFyaWFudC4gIFRoZSB0YXJnZXQgVCBpcyBhIHNjcmlwdC4KKyAqCisgKiA8cD5BbiBBbnlUcmFuc2xpdGVyYXRvciBwYXJ0aXRpb25zIHRleHQgaW50byBydW5zIG9mIHRoZSBzYW1lCisgKiBzY3JpcHQsIHRvZ2V0aGVyIHdpdGggYWRqYWNlbnQgQ09NTU9OIG9yIElOSEVSSVRFRCBjaGFyYWN0ZXJzLgorICogQWZ0ZXIgZGV0ZXJtaW5pbmcgdGhlIHNjcmlwdCBvZiBlYWNoIHJ1biwgaXQgdHJhbnNsaXRlcmF0ZXMgZnJvbQorICogdGhhdCBzY3JpcHQgdG8gdGhlIGdpdmVuIHRhcmdldC92YXJpYW50LiAgSXQgZG9lcyBzbyBieQorICogaW5zdGFudGlhdGluZyBhIHRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIHNvdXJjZSBzY3JpcHQgdG8gdGhlCisgKiB0YXJnZXQvdmFyaWFudC4gIElmIGEgcnVuIGNvbnNpc3RzIG9ubHkgb2YgdGhlIHRhcmdldCBzY3JpcHQsCisgKiBDT01NT04sIG9yIElOSEVSSVRFRCBjaGFyYWN0ZXJzLCB0aGVuIHRoZSBydW4gaXMgbm90IGNoYW5nZWQuCisgKgorICogPHA+QXQgc3RhcnR1cCwgYWxsIHBvc3NpYmxlIEFueVRyYW5zbGl0ZXJhdG9ycyBhcmUgcmVnaXN0ZXJlZCB3aXRoCisgKiB0aGUgc3lzdGVtLCBhcyBkZXRlcm1pbmVkIGJ5IGV4YW1pbmluZyB0aGUgcmVnaXN0ZXJlZCBzY3JpcHQKKyAqIHRyYW5zbGl0ZXJhdG9ycy4KKyAqCisgKiBAc2luY2UgSUNVIDIuMgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBBbnlUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RhbnRzCisKKyAgICBzdGF0aWMgZmluYWwgY2hhciBUQVJHRVRfU0VQID0gJy0nOworICAgIHN0YXRpYyBmaW5hbCBjaGFyIFZBUklBTlRfU0VQID0gJy8nOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQU5ZID0gIkFueSI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBOVUxMX0lEID0gIk51bGwiOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTEFUSU5fUElWT1QgPSAiLUxhdGluO0xhdGluLSI7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSBtYXBwaW5nIFVTY3JpcHRDb2RlIHZhbHVlcyB0byBUcmFuc2xpdGVyYXRvciouCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgY2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdGFyZ2V0IG9yIHRhcmdldC92YXJpYW50IHN0cmluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0YXJnZXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdGFyZ2V0IHNjcmlwdCBjb2RlLiAgTmV2ZXIgVVNDUklQVF9JTlZBTElEX0NPREUuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgdGFyZ2V0U2NyaXB0OworCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gcG9zLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgaW50IGFsbFN0YXJ0ID0gcG9zLnN0YXJ0OworICAgICAgICBpbnQgYWxsTGltaXQgPSBwb3MubGltaXQ7CisKKyAgICAgICAgU2NyaXB0UnVuSXRlcmF0b3IgaXQgPQorICAgICAgICAgICAgbmV3IFNjcmlwdFJ1bkl0ZXJhdG9yKHRleHQsIHBvcy5jb250ZXh0U3RhcnQsIHBvcy5jb250ZXh0TGltaXQpOworCisgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgIC8vIElnbm9yZSBydW5zIGluIHRoZSBhbnRlIGNvbnRleHQKKyAgICAgICAgICAgIGlmIChpdC5saW1pdCA8PSBhbGxTdGFydCkgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIFRyeSB0byBpbnN0YW50aWF0ZSB0cmFuc2xpdGVyYXRvciBmcm9tIGl0LnNjcmlwdENvZGUgdG8KKyAgICAgICAgICAgIC8vIG91ciB0YXJnZXQgb3IgdGFyZ2V0L3ZhcmlhbnQKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBnZXRUcmFuc2xpdGVyYXRvcihpdC5zY3JpcHRDb2RlKTsKKworICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgbm8gdHJhbnNsaXRlcmF0b3IuICBEbyBub3RoaW5nLCBidXQga2VlcAorICAgICAgICAgICAgICAgIC8vIHBvcy5zdGFydCB1cCB0byBkYXRlLgorICAgICAgICAgICAgICAgIHBvcy5zdGFydCA9IGl0LmxpbWl0OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB0aGUgcnVuIGVuZCBpcyBiZWZvcmUgdGhlIHRyYW5zbGl0ZXJhdGlvbiBsaW1pdCwgZG8KKyAgICAgICAgICAgIC8vIGEgbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbi4gIE90aGVyd2lzZSBkbyBhbgorICAgICAgICAgICAgLy8gaW5jcmVtZW50YWwgb25lLgorICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCA9IGlzSW5jcmVtZW50YWwgJiYgKGl0LmxpbWl0ID49IGFsbExpbWl0KTsKKworICAgICAgICAgICAgcG9zLnN0YXJ0ID0gTWF0aC5tYXgoYWxsU3RhcnQsIGl0LnN0YXJ0KTsKKyAgICAgICAgICAgIHBvcy5saW1pdCA9IE1hdGgubWluKGFsbExpbWl0LCBpdC5saW1pdCk7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBwb3MubGltaXQ7CisgICAgICAgICAgICB0LmZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBwb3MsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgIGludCBkZWx0YSA9IHBvcy5saW1pdCAtIGxpbWl0OworICAgICAgICAgICAgYWxsTGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICBpdC5hZGp1c3RMaW1pdChkZWx0YSk7CisKKyAgICAgICAgICAgIC8vIFdlJ3JlIGRvbmUgaWYgd2UgZW50ZXIgdGhlIHBvc3QgY29udGV4dAorICAgICAgICAgICAgaWYgKGl0LmxpbWl0ID49IGFsbExpbWl0KSBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJlc3RvcmUgbGltaXQuICBwb3Muc3RhcnQgaXMgZmluZSB3aGVyZSB0aGUgbGFzdCB0cmFuc2xpdGVyYXRvcgorICAgICAgICAvLyBsZWZ0IGl0LCBvciBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0IHJ1bi4KKyAgICAgICAgcG9zLmxpbWl0ID0gYWxsTGltaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpdmF0ZSBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBpZCB0aGUgSUQgb2YgdGhlIGZvcm0gUy1UIG9yIFMtVC9WLCB3aGVyZSBUIGlzIHRoZVRhcmdldAorICAgICAqIGFuZCBWIGlzIHRoZVZhcmlhbnQuICBNdXN0IG5vdCBiZSBlbXB0eS4KKyAgICAgKiBAcGFyYW0gdGhlVGFyZ2V0IHRoZSB0YXJnZXQgbmFtZS4gIE11c3Qgbm90IGJlIGVtcHR5LCBhbmQgbXVzdAorICAgICAqIG5hbWUgYSBzY3JpcHQgY29ycmVzcG9uZGluZyB0byB0aGVUYXJnZXRTY3JpcHQuCisgICAgICogQHBhcmFtIHRoZVZhcmlhbnQgdGhlIHZhcmlhbnQgbmFtZSwgb3IgdGhlIGVtcHR5IHN0cmluZyBpZgorICAgICAqIHRoZXJlIGlzIG5vIHZhcmlhbnQKKyAgICAgKiBAcGFyYW0gdGhlVGFyZ2V0U2NyaXB0IHRoZSBzY3JpcHQgY29kZSBjb3JyZXNwb25kaW5nIHRvCisgICAgICogdGhlVGFyZ2V0LgorICAgICAqLworICAgIHByaXZhdGUgQW55VHJhbnNsaXRlcmF0b3IoU3RyaW5nIGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRoZVRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aGVWYXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRoZVRhcmdldFNjcmlwdCkgeworICAgICAgICBzdXBlcihpZCwgbnVsbCk7CisgICAgICAgIHRhcmdldFNjcmlwdCA9IHRoZVRhcmdldFNjcmlwdDsKKyAgICAgICAgY2FjaGUgPSBuZXcgSGFzaE1hcCgpOworCisgICAgICAgIHRhcmdldCA9IHRoZVRhcmdldDsKKyAgICAgICAgaWYgKHRoZVZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICB0YXJnZXQgPSB0aGVUYXJnZXQgKyBWQVJJQU5UX1NFUCArIHRoZVZhcmlhbnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdHJhbnNsaXRlcmF0b3IgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIHRvIG91ciB0YXJnZXQgb3IKKyAgICAgKiB0YXJnZXQvdmFyaWFudC4gIFJldHVybnMgTlVMTCBpZiB0aGUgc291cmNlIGlzIHRoZSBzYW1lIGFzIG91cgorICAgICAqIHRhcmdldCBzY3JpcHQsIG9yIGlmIHRoZSBzb3VyY2UgaXMgVVNDUklQVF9JTlZBTElEX0NPREUuCisgICAgICogQ2FjaGVzIHRoZSByZXN1bHQgYW5kIHJldHVybnMgdGhlIHNhbWUgdHJhbnNsaXRlcmF0b3IgdGhlIG5leHQKKyAgICAgKiB0aW1lLiAgVGhlIGNhbGxlciBkb2VzIE5PVCBvd24gdGhlIHJlc3VsdCBhbmQgbXVzdCBub3QgZGVsZXRlCisgICAgICogaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBnZXRUcmFuc2xpdGVyYXRvcihpbnQgc291cmNlKSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gdGFyZ2V0U2NyaXB0IHx8IHNvdXJjZSA9PSBVU2NyaXB0LklOVkFMSURfQ09ERSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBJbnRlZ2VyIGtleSA9IG5ldyBJbnRlZ2VyKHNvdXJjZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSAoVHJhbnNsaXRlcmF0b3IpIGNhY2hlLmdldChrZXkpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlTmFtZSA9IFVTY3JpcHQuZ2V0TmFtZShzb3VyY2UpOworICAgICAgICAgICAgU3RyaW5nIGlkID0gc291cmNlTmFtZSArIFRBUkdFVF9TRVAgKyB0YXJnZXQ7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkLCBGT1JXQVJEKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeyB9CisgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisKKyAgICAgICAgICAgICAgICAvLyBUcnkgdG8gcGl2b3QgYXJvdW5kIExhdGluLCBvdXIgbW9zdCBjb21tb24gc2NyaXB0CisgICAgICAgICAgICAgICAgaWQgPSBzb3VyY2VOYW1lICsgTEFUSU5fUElWT1QgKyB0YXJnZXQ7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkLCBGT1JXQVJEKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY2FjaGUucHV0KGtleSwgdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdHJhbnNsaXRlcmF0b3JzIHdpdGggdGhlIHN5c3RlbS4gIENhbGxlZCBieQorICAgICAqIFRyYW5zbGl0ZXJhdG9yIGR1cmluZyBpbml0aWFsaXphdGlvbi4gIFNjYW4gYWxsIGN1cnJlbnQgdGFyZ2V0cworICAgICAqIGFuZCByZWdpc3RlciB0aG9zZSB0aGF0IGFyZSBzY3JpcHRzIFQgYXMgQW55LVQvVi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKworICAgICAgICBIYXNoU2V0IHNlZW4gPSBuZXcgSGFzaFNldCgpOworCisgICAgICAgIGZvciAoRW51bWVyYXRpb24gcz1UcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVTb3VyY2VzKCk7IHMuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHMubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgLy8gSWdub3JlIHRoZSAiQW55IiBzb3VyY2UKKyAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzSWdub3JlQ2FzZShBTlkpKSBjb250aW51ZTsKKworICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiB0PVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgICAgICAgdC5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHQubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgIC8vIE9ubHkgcHJvY2VzcyBlYWNoIHRhcmdldCBvbmNlCisgICAgICAgICAgICAgICAgaWYgKHNlZW4uY29udGFpbnModGFyZ2V0KSkgY29udGludWU7CisgICAgICAgICAgICAgICAgc2Vlbi5hZGQodGFyZ2V0KTsKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSB0YXJnZXQuICBJZiBub3QgYSBzY3JpcHQsIGlnbm9yZS4KKyAgICAgICAgICAgICAgICBpbnQgdGFyZ2V0U2NyaXB0ID0gc2NyaXB0TmFtZVRvQ29kZSh0YXJnZXQpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRTY3JpcHQgPT0gVVNjcmlwdC5JTlZBTElEX0NPREUpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiB2PVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgIHYuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHYubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQ7CisgICAgICAgICAgICAgICAgICAgIGlkID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKEFOWSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgICAgICAgICAgICAgQW55VHJhbnNsaXRlcmF0b3IgdHJhbnMgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoaWQsIHRhcmdldCwgdmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U2NyaXB0KTsKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSh0cmFucyk7CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UodGFyZ2V0LCBOVUxMX0lELCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzY3JpcHQgY29kZSBmb3IgYSBnaXZlbiBuYW1lLCBvcgorICAgICAqIFVTY3JpcHQuSU5WQUxJRF9DT0RFIGlmIG5vdCBmb3VuZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc2NyaXB0TmFtZVRvQ29kZShTdHJpbmcgbmFtZSkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnRbXSBjb2RlcyA9IFVTY3JpcHQuZ2V0Q29kZShuYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBjb2RlcyAhPSBudWxsID8gY29kZXNbMF0gOiBVU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAgICAgfWNhdGNoKCBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICByZXR1cm4gVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFNjcmlwdFJ1bkl0ZXJhdG9yCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc2VyaWVzIG9mIHJhbmdlcyBjb3JyZXNwb25kaW5nIHRvIHNjcmlwdHMuIFRoZXkgd2lsbCBiZQorICAgICAqIG9mIHRoZSBmb3JtOgorICAgICAqCisgICAgICogY2NjY1NTY1NTY2NjY1RUY1RjY2NjICAgLSBjID0gY29tbW9uLCBTID0gZmlyc3Qgc2NyaXB0LCBUID0gc2Vjb25kCisgICAgICogfCAgICAgICAgICAgIHwgICAgICAgICAgLSBmaXJzdCBydW4gKHN0YXJ0LCBsaW1pdCkKKyAgICAgKiAgICAgICAgICB8ICAgICAgICAgICB8ICAtIHNlY29uZCBydW4gKHN0YXJ0LCBsaW1pdCkKKyAgICAgKgorICAgICAqIFRoYXQgaXMsIHRoZSBydW5zIHdpbGwgb3ZlcmxhcC4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyBzbyB0aGF0IGEKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBjYW4gY29uc2lkZXIgY29tbW9uIGNoYXJhY3RlcnMgYm90aCBiZWZvcmUgYW5kIGFmdGVyCisgICAgICogdGhlIHNjcmlwdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU2NyaXB0UnVuSXRlcmF0b3IgeworCisgICAgICAgIHByaXZhdGUgUmVwbGFjZWFibGUgdGV4dDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgdGV4dFN0YXJ0OworICAgICAgICBwcml2YXRlIGludCB0ZXh0TGltaXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjb2RlIG9mIHRoZSBjdXJyZW50IHJ1biwgdmFsaWQgYWZ0ZXIgbmV4dCgpIHJldHVybnMuICBNYXkKKyAgICAgICAgICogYmUgVVNjcmlwdC5JTlZBTElEX0NPREUgaWYgYW5kIG9ubHkgaWYgdGhlIGVudGlyZSB0ZXh0IGlzCisgICAgICAgICAqIENPTU1PTi9JTkhFUklURUQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHNjcmlwdENvZGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBzdGFydCBvZiB0aGUgcnVuLCBpbmNsdXNpdmUsIHZhbGlkIGFmdGVyIG5leHQoKSByZXR1cm5zLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzdGFydDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVuZCBvZiB0aGUgcnVuLCBleGNsdXNpdmUsIHZhbGlkIGFmdGVyIG5leHQoKSByZXR1cm5zLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBsaW1pdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIHJ1biBpdGVyYXRvciBvdmVyIHRoZSBnaXZlbiB0ZXh0IGZyb20gc3RhcnQKKyAgICAgICAgICogKGluY2x1c2l2ZSkgdG8gbGltaXQgKGV4Y2x1c2l2ZSkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2NyaXB0UnVuSXRlcmF0b3IoUmVwbGFjZWFibGUgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgICAgICB0aGlzLnRleHRTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgdGhpcy50ZXh0TGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBzdGFydDsKKyAgICAgICAgfQorCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgVFJVRSBpZiB0aGVyZSBhcmUgYW55IG1vcmUgcnVucy4gIFRSVUUgaXMgYWx3YXlzCisgICAgICAgICAqIHJldHVybmVkIGF0IGxlYXN0IG9uY2UuICBVcG9uIHJldHVybiwgdGhlIGNhbGxlciBzaG91bGQKKyAgICAgICAgICogZXhhbWluZSBzY3JpcHRDb2RlLCBzdGFydCwgYW5kIGxpbWl0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gbmV4dCgpIHsKKyAgICAgICAgICAgIGludCBjaDsKKyAgICAgICAgICAgIGludCBzOworCisgICAgICAgICAgICBzY3JpcHRDb2RlID0gVVNjcmlwdC5JTlZBTElEX0NPREU7IC8vIGRvbid0IGtub3cgc2NyaXB0IHlldAorICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsKKworICAgICAgICAgICAgLy8gQXJlIHdlIGRvbmU/CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gdGV4dExpbWl0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBNb3ZlIHN0YXJ0IGJhY2sgdG8gaW5jbHVkZSBhZGphY2VudCBDT01NT04gb3IgSU5IRVJJVEVECisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzCisgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPiB0ZXh0U3RhcnQpIHsKKyAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhcjMyQXQoc3RhcnQgLSAxKTsgLy8gbG9vayBiYWNrCisgICAgICAgICAgICAgICAgcyA9IFVTY3JpcHQuZ2V0U2NyaXB0KGNoKTsKKyAgICAgICAgICAgICAgICBpZiAocyA9PSBVU2NyaXB0LkNPTU1PTiB8fCBzID09IFVTY3JpcHQuSU5IRVJJVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIC0tc3RhcnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBNb3ZlIGxpbWl0IGFoZWFkIHRvIGluY2x1ZGUgQ09NTU9OLCBJTkhFUklURUQsIGFuZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAvLyBvZiB0aGUgY3VycmVudCBzY3JpcHQuCisgICAgICAgICAgICB3aGlsZSAobGltaXQgPCB0ZXh0TGltaXQpIHsKKyAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhcjMyQXQobGltaXQpOyAvLyBsb29rIGFoZWFkCisgICAgICAgICAgICAgICAgcyA9IFVTY3JpcHQuZ2V0U2NyaXB0KGNoKTsKKyAgICAgICAgICAgICAgICBpZiAocyAhPSBVU2NyaXB0LkNPTU1PTiAmJiBzICE9IFVTY3JpcHQuSU5IRVJJVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzY3JpcHRDb2RlID09IFVTY3JpcHQuSU5WQUxJRF9DT0RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb2RlID0gczsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzICE9IHNjcmlwdENvZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrbGltaXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJldHVybiBUUlVFIGV2ZW4gaWYgdGhlIGVudGlyZSB0ZXh0IGlzIENPTU1PTiAvIElOSEVSSVRFRCwgaW4KKyAgICAgICAgICAgIC8vIHdoaWNoIGNhc2Ugc2NyaXB0Q29kZSB3aWxsIGJlIFVTY3JpcHQuSU5WQUxJRF9DT0RFLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWRqdXN0cyBpbnRlcm5hbCBpbmRpY2VzIGZvciBhIGNoYW5nZSBpbiB0aGUgbGltaXQgaW5kZXggb2YgdGhlCisgICAgICAgICAqIGdpdmVuIGRlbHRhLiAgQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyB0aGUgbGltaXQgaGFzIGluY3JlYXNlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGFkanVzdExpbWl0KGludCBkZWx0YSkgeworICAgICAgICAgICAgbGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICB0ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjNlYTMzMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FyYWJpY1NoYXBpbmcuamF2YQpAQCAtMCwwICsxLDEyMjkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBTaGFwZSBBcmFiaWMgdGV4dCBvbiBhIGNoYXJhY3RlciBiYXNpcy4KKyAqCisgKiA8cD5BcmFiaWNTaGFwaW5nIHBlcmZvcm1zIGJhc2ljIG9wZXJhdGlvbnMgZm9yICJzaGFwaW5nIiBBcmFiaWMgdGV4dC4gSXQgaXMgbW9zdAorICogdXNlZnVsIGZvciB1c2Ugd2l0aCBsZWdhY3kgZGF0YSBmb3JtYXRzIGFuZCBsZWdhY3kgZGlzcGxheSB0ZWNobm9sb2d5CisgKiAoc2ltcGxlIHRlcm1pbmFscykuIEFsbCBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgb24gVW5pY29kZSBjaGFyYWN0ZXJzLjwvcD4KKyAqCisgKiA8cD5UZXh0LWJhc2VkIHNoYXBpbmcgbWVhbnMgdGhhdCBzb21lIGNoYXJhY3RlciBjb2RlIHBvaW50cyBpbiB0aGUgdGV4dCBhcmUKKyAqIHJlcGxhY2VkIGJ5IG90aGVycyBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQuIEl0IHRyYW5zZm9ybXMgb25lIGtpbmQgb2YgdGV4dAorICogaW50byBhbm90aGVyLiBJbiBjb21wYXJpc29uLCBtb2Rlcm4gZGlzcGxheXMgZm9yIEFyYWJpYyB0ZXh0IHNlbGVjdAorICogYXBwcm9wcmlhdGUsIGNvbnRleHQtZGVwZW5kZW50IGZvbnQgZ2x5cGhzIGZvciBlYWNoIHRleHQgZWxlbWVudCwgd2hpY2ggbWVhbnMKKyAqIHRoYXQgdGhleSB0cmFuc2Zvcm0gdGV4dCBpbnRvIGEgZ2x5cGggdmVjdG9yLjwvcD4KKyAqCisgKiA8cD5UZXh0IHRyYW5zZm9ybWF0aW9ucyBhcmUgbmVjZXNzYXJ5IHdoZW4gbW9kZXJuIGRpc3BsYXkgdGVjaG5vbG9neSBpcyBub3QKKyAqIGF2YWlsYWJsZSBvciB3aGVuIHRleHQgbmVlZHMgdG8gYmUgdHJhbnNmb3JtZWQgdG8gb3IgZnJvbSBsZWdhY3kgZm9ybWF0cyB0aGF0CisgKiB1c2UgInNoYXBlZCIgY2hhcmFjdGVycy4gU2luY2UgdGhlIEFyYWJpYyBzY3JpcHQgaXMgY3Vyc2l2ZSwgY29ubmVjdGluZworICogYWRqYWNlbnQgbGV0dGVycyB0byBlYWNoIG90aGVyLCBjb21wdXRlcnMgc2VsZWN0IGltYWdlcyBmb3IgZWFjaCBsZXR0ZXIgYmFzZWQKKyAqIG9uIHRoZSBzdXJyb3VuZGluZyBsZXR0ZXJzLiBUaGlzIHVzdWFsbHkgcmVzdWx0cyBpbiBmb3VyIGltYWdlcyBwZXIgQXJhYmljCisgKiBsZXR0ZXI6IGluaXRpYWwsIG1pZGRsZSwgZmluYWwsIGFuZCBpc29sYXRlZCBmb3Jtcy4gSW4gVW5pY29kZSwgb24gdGhlIG90aGVyCisgKiBoYW5kLCBsZXR0ZXJzIGFyZSBub3JtYWxseSBzdG9yZWQgYWJzdHJhY3QsIGFuZCBhIGRpc3BsYXkgc3lzdGVtIGlzIGV4cGVjdGVkCisgKiB0byBzZWxlY3QgdGhlIG5lY2Vzc2FyeSBnbHlwaHMuIChUaGlzIG1ha2VzIHNlYXJjaGluZyBhbmQgb3RoZXIgdGV4dAorICogcHJvY2Vzc2luZyBlYXNpZXIgYmVjYXVzZSB0aGUgc2FtZSBsZXR0ZXIgaGFzIG9ubHkgb25lIGNvZGUuKSBJdCBpcyBwb3NzaWJsZQorICogdG8gbWltaWMgdGhpcyB3aXRoIHRleHQgdHJhbnNmb3JtYXRpb25zIGJlY2F1c2UgdGhlcmUgYXJlIGNoYXJhY3RlcnMgaW4KKyAqIFVuaWNvZGUgdGhhdCBhcmUgcmVuZGVyZWQgYXMgbGV0dGVycyB3aXRoIGEgc3BlY2lmaWMgc2hhcGUKKyAqIChvciBjdXJzaXZlIGNvbm5lY3Rpdml0eSkuIFRoZXkgd2VyZSBpbmNsdWRlZCBmb3IgaW50ZXJvcGVyYWJpbGl0eSB3aXRoCisgKiBsZWdhY3kgc3lzdGVtcyBhbmQgY29kZXBhZ2VzLCBhbmQgZm9yIHVuc29waGlzdGljYXRlZCBkaXNwbGF5IHN5c3RlbXMuPC9wPgorICoKKyAqIDxwPkEgc2Vjb25kIGtpbmQgb2YgdGV4dCB0cmFuc2Zvcm1hdGlvbnMgaXMgc3VwcG9ydGVkIGZvciBBcmFiaWMgZGlnaXRzOgorICogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdhY3kgY29kZXBhZ2VzIHRoYXQgb25seSBpbmNsdWRlIEV1cm9wZWFuIGRpZ2l0cywKKyAqIGl0IGlzIHBvc3NpYmxlIHRvIHJlcGxhY2Ugb25lIHNldCBvZiBkaWdpdHMgYnkgYW5vdGhlciwgY2hhbmdpbmcgdGhlCisgKiBjaGFyYWN0ZXIgY29kZSBwb2ludHMuIFRoZXNlIG9wZXJhdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCBmb3IgZWl0aGVyCisgKiBBcmFiaWMtSW5kaWMgRGlnaXRzIChVKzA2NjAuLi5VKzA2NjkpIG9yIEVhc3Rlcm4gKEV4dGVuZGVkKSBBcmFiaWMtSW5kaWMKKyAqIGRpZ2l0cyAoVSswNmYwLi4uVSswNmY5KS48L3A+CisgKgorICogPHA+U29tZSByZXBsYWNlbWVudHMgbWF5IHJlc3VsdCBpbiBtb3JlIG9yIGZld2VyIGNoYXJhY3RlcnMgKGNvZGUgcG9pbnRzKS4KKyAqIEJ5IGRlZmF1bHQsIHRoaXMgbWVhbnMgdGhhdCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG1heSByZWNlaXZlIHRleHQgd2l0aCBhCisgKiBsZW5ndGggZGlmZmVyZW50IGZyb20gdGhlIHNvdXJjZSBsZW5ndGguIFNvbWUgbGVnYWN5IHN5c3RlbXMgcmVseSBvbiB0aGUKKyAqIGxlbmd0aCBvZiB0aGUgdGV4dCB0byBiZSBjb25zdGFudC4gVGhleSBleHBlY3QgZXh0cmEgc3BhY2VzIHRvIGJlIGFkZGVkCisgKiBvciBjb25zdW1lZCBlaXRoZXIgbmV4dCB0byB0aGUgYWZmZWN0ZWQgY2hhcmFjdGVyIG9yIGF0IHRoZSBlbmQgb2YgdGhlCisgKiB0ZXh0LjwvcD4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXJhYmljU2hhcGluZyB7CisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgb3B0aW9uczsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNMb2dpY2FsOyAvLyBjb252ZW5pZW5jZQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHJhbmdlIG9mIHRleHQgaW4gdGhlIHNvdXJjZSBhcnJheSwgcHV0dGluZyB0aGUgcmVzdWx0IAorICAgICAqIGludG8gYSByYW5nZSBvZiB0ZXh0IGluIHRoZSBkZXN0aW5hdGlvbiBhcnJheSwgYW5kIHJldHVybiB0aGUgbnVtYmVyCisgICAgICogb2YgY2hhcmFjdGVycyB3cml0dGVuLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBpbnB1dCB0ZXh0CisgICAgICogQHBhcmFtIHNvdXJjZVN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIHNvdXJjZUxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIGNvbnZlcnQKKyAgICAgKiBAcGFyYW0gZGVzdCBUaGUgZGVzdGluYXRpb24gYXJyYXkgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIHJlc3VsdC4KKyAgICAgKiAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvbmx5IGlmICA8Y29kZT5kZXN0U2l6ZTwvY29kZT4gaXMgMC4gIAorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gZGVzdFNpemUgVGhlIHNpemUgKGNhcGFjaXR5KSBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgorICAgICAqICAgSWYgPGNvZGU+ZGVzdFNpemU8L2NvZGU+IGlzIDAsIHRoZW4gbm8gb3V0cHV0IGlzIHByb2R1Y2VkLAorICAgICAqICAgYnV0IHRoZSBuZWNlc3NhcnkgYnVmZmVyIHNpemUgaXMgcmV0dXJuZWQgKCJwcmVmbGlnaHRpbmciKS4gIFRoaXMKKyAgICAgKiAgIGRvZXMgbm90IHZhbGlkYXRlIHRoZSB0ZXh0IGFnYWluc3QgdGhlIG9wdGlvbnMsIGZvciBleGFtcGxlLCAKKyAgICAgKiAgIGlmIGxldHRlcnMgYXJlIGJlaW5nIHVuc2hhcGVkLCBhbmQgc3BhY2VzIGFyZSBiZWluZyBjb25zdW1lZAorICAgICAqICAgZm9sbG93aW5nIGxhbWFsZWYsIHRoaXMgd2lsbCBub3QgZGV0ZWN0IGEgbGFtYWxlZiB3aXRob3V0IGEgCisgICAgICogICBjb3JyZXNwb25kaW5nIHNwYWNlLiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gd2hlbiB0aGUgYWN0dWFsCisgICAgICogICBjb252ZXJzaW9uIGlzIGF0dGVtcHRlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgY2hhcnMgd3JpdHRlbiB0byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgorICAgICAqICAgSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIG5vIG91dHB1dCB3YXMgd3JpdHRlbiwgb3IgaXQgbWF5IGJlCisgICAgICogICBpbmNvbXBsZXRlLgorICAgICAqIEB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBpZiB0aGUgdGV4dCBjYW5ub3QgYmUgY29udmVydGVkIGFjY29yZGluZyB0byB0aGUgb3B0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNoYXBlKGNoYXJbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwgaW50IHNvdXJjZUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdFNpemUpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzb3VyY2UgY2FuIG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNvdXJjZVN0YXJ0IDwgMCB8fCBzb3VyY2VMZW5ndGggPCAwIHx8IHNvdXJjZVN0YXJ0ICsgc291cmNlTGVuZ3RoID4gc291cmNlLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIHNvdXJjZSBzdGFydCAoIiArIHNvdXJjZVN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgb3IgbGVuZ3RoICgiICsgc291cmNlTGVuZ3RoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgZm9yIGJ1ZmZlciBvZiBsZW5ndGggIiArIHNvdXJjZS5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGlmIChkZXN0ID09IG51bGwgJiYgZGVzdFNpemUgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibnVsbCBkZXN0IHJlcXVpcmVzIGRlc3RTaXplID09IDAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGRlc3RTaXplICE9IDApICYmCisgICAgICAgICAgICAoZGVzdFN0YXJ0IDwgMCB8fCBkZXN0U2l6ZSA8IDAgfHwgZGVzdFN0YXJ0ICsgZGVzdFNpemUgPiBkZXN0Lmxlbmd0aCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBkZXN0IHN0YXJ0ICgiICsgZGVzdFN0YXJ0ICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG9yIHNpemUgKCIgKyBkZXN0U2l6ZSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBmb3IgYnVmZmVyIG9mIGxlbmd0aCAiICsgZGVzdC5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGludGVybmFsU2hhcGUoc291cmNlLCBzb3VyY2VTdGFydCwgc291cmNlTGVuZ3RoLCBkZXN0LCBkZXN0U3RhcnQsIGRlc3RTaXplKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgcmFuZ2Ugb2YgdGV4dCBpbiBwbGFjZS4gIFRoaXMgbWF5IG9ubHkgYmUgdXNlZCBpZiB0aGUgTGVuZ3RoIG9wdGlvbgorICAgICAqIGRvZXMgbm90IGdyb3cgb3Igc2hyaW5rIHRoZSB0ZXh0LgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBpbnB1dCB0ZXh0CisgICAgICogQHBhcmFtIHN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIGNvbnZlcnQKKyAgICAgKiBAdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24gaWYgdGhlIHRleHQgY2Fubm90IGJlIGNvbnZlcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2hhcGUoY2hhcltdIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisgICAgICAgIGlmICgob3B0aW9ucyAmIExFTkdUSF9NQVNLKSA9PSBMRU5HVEhfR1JPV19TSFJJTkspIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJDYW5ub3Qgc2hhcGUgaW4gcGxhY2Ugd2l0aCBsZW5ndGggb3B0aW9uIGdyb3cvc2hyaW5rLiIpOworICAgICAgICB9CisgICAgICAgIHNoYXBlKHNvdXJjZSwgc3RhcnQsIGxlbmd0aCwgc291cmNlLCBzdGFydCwgbGVuZ3RoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nLCByZXR1cm5pbmcgdGhlIG5ldyBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIGNvbnZlcnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb252ZXJ0ZWQgc3RyaW5nCisgICAgICogQHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIGlmIHRoZSBzdHJpbmcgY2Fubm90IGJlIGNvbnZlcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzaGFwZShTdHJpbmcgdGV4dCkgdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24geworICAgICAgICBjaGFyW10gc3JjID0gdGV4dC50b0NoYXJBcnJheSgpOworICAgICAgICBjaGFyW10gZGVzdCA9IHNyYzsKKyAgICAgICAgaWYgKCgob3B0aW9ucyAmIExFTkdUSF9NQVNLKSA9PSBMRU5HVEhfR1JPV19TSFJJTkspICYmCisgICAgICAgICAgICAoKG9wdGlvbnMgJiBMRVRURVJTX01BU0spID09IExFVFRFUlNfVU5TSEFQRSkpIHsKKworICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW3NyYy5sZW5ndGggKiAyXTsgLy8gbWF4CisgICAgICAgIH0KKyAgICAgICAgaW50IGxlbiA9IHNoYXBlKHNyYywgMCwgc3JjLmxlbmd0aCwgZGVzdCwgMCwgZGVzdC5sZW5ndGgpOworCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRlc3QsIDAsIGxlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IEFyYWJpY1NoYXBpbmcgdXNpbmcgdGhlIG9wdGlvbnMgZmxhZ3MuCisgICAgICogVGhlIGZsYWdzIGFyZSBhcyBmb2xsb3dzOjxicj4KKyAgICAgKiAnTEVOR1RIJyBmbGFncyBjb250cm9sIHdoZXRoZXIgdGhlIHRleHQgY2FuIGNoYW5nZSBzaXplLCBhbmQgaWYgbm90LAorICAgICAqIGhvdyB0byBtYWludGFpbiB0aGUgc2l6ZSBvZiB0aGUgdGV4dCB3aGVuIExhbUFsZWYgbGlnYXR1cmVzIGFyZSAKKyAgICAgKiBmb3JtZWQgb3IgYnJva2VuLjxicj4KKyAgICAgKiAnVEVYVF9ESVJFQ1RJT04nIGZsYWdzIGNvbnRyb2wgd2hldGhlciB0aGUgdGV4dCBpcyByZWFkIGFuZCB3cml0dGVuCisgICAgICogaW4gdmlzdWFsIG9yZGVyIG9yIGluIGxvZ2ljYWwgb3JkZXIuPGJyPgorICAgICAqICdMRVRURVJTX1NIQVBFJyBmbGFncyBjb250cm9sIHdoZXRoZXIgY29udmVyc2lvbiBpcyB0byBvciBmcm9tCisgICAgICogcHJlc2VudGF0aW9uIGZvcm1zLjxicj4KKyAgICAgKiAnRElHSVRTJyBmbGFncyBjb250cm9sIHdoZXRoZXIgZGlnaXRzIGFyZSBzaGFwZWQsIGFuZCB3aGV0aGVyIGZyb20KKyAgICAgKiBFdXJvcGVhbiB0byBBcmFiaWMtSW5kaWMgb3IgdmljZS12ZXJzYS48YnI+CisgICAgICogJ0RJR0lUX1RZUEUnIGZsYWdzIGNvbnRyb2wgd2hldGhlciBzdGFuZGFyZCBvciBleHRlbmRlZCBBcmFiaWMtSW5kaWMKKyAgICAgKiBkaWdpdHMgYXJlIHVzZWQgd2hlbiBwZXJmb3JtaW5nIGRpZ2l0IGNvbnZlcnNpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEFyYWJpY1NoYXBpbmcoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9uczsKKyAgICAgICAgaWYgKChvcHRpb25zICYgRElHSVRTX01BU0spID4gMHg4MCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIERJR0lUUyBvcHRpb25zIik7CisgICAgICAgIH0KKyAgICAgICAgaXNMb2dpY2FsID0gKG9wdGlvbnMgJiBURVhUX0RJUkVDVElPTl9NQVNLKSA9PSBURVhUX0RJUkVDVElPTl9MT0dJQ0FMOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1lbW9yeSBvcHRpb246IGFsbG93IHRoZSByZXN1bHQgdG8gaGF2ZSBhIGRpZmZlcmVudCBsZW5ndGggdGhhbiB0aGUgc291cmNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9HUk9XX1NIUklOSyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNZW1vcnkgb3B0aW9uOiB0aGUgcmVzdWx0IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIHNvdXJjZS4KKyAgICAgKiBJZiBtb3JlIHJvb20gaXMgbmVjZXNzYXJ5LCB0aGVuIHRyeSB0byBjb25zdW1lIHNwYWNlcyBuZXh0IHRvIG1vZGlmaWVkIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSID0gMTsKKworICAgIC8qKgorICAgICAqIE1lbW9yeSBvcHRpb246IHRoZSByZXN1bHQgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgc291cmNlLgorICAgICAqIElmIG1vcmUgcm9vbSBpcyBuZWNlc3NhcnksIHRoZW4gdHJ5IHRvIGNvbnN1bWUgc3BhY2VzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQgPSAyOworCisgICAgLyoqCisgICAgICogTWVtb3J5IG9wdGlvbjogdGhlIHJlc3VsdCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBzb3VyY2UuCisgICAgICogSWYgbW9yZSByb29tIGlzIG5lY2Vzc2FyeSwgdGhlbiB0cnkgdG8gY29uc3VtZSBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORyA9IDM7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIG1lbW9yeSBvcHRpb25zLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfTUFTSyA9IDM7CisKKworICAgIC8qKiAKKyAgICAgKiBEaXJlY3Rpb24gaW5kaWNhdG9yOiB0aGUgc291cmNlIGlzIGluIGxvZ2ljYWwgKGtleWJvYXJkKSBvcmRlci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCA9IDA7CisKKyAgICAvKiogCisgICAgICogRGlyZWN0aW9uIGluZGljYXRvcjogdGhlIHNvdXJjZSBpcyBpbiB2aXN1YWwgKGRpc3BsYXkpIG9yZGVyLCB0aGF0IGlzLAorICAgICAqIHRoZSBsZWZ0bW9zdCBkaXNwbGF5ZWQgY2hhcmFjdGVyIGlzIHN0b3JlZCBmaXJzdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSID0gNDsKKworICAgIC8qKiAKKyAgICAgKiBCaXQgbWFzayBmb3IgZGlyZWN0aW9uIGluZGljYXRvcnMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX01BU0sgPSA0OworCisKKyAgICAvKioKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IGRvIG5vdCBwZXJmb3JtIGxldHRlciBzaGFwaW5nLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX05PT1AgPSAwOworCisgICAgLyoqIAorICAgICAqIExldHRlciBzaGFwaW5nIG9wdGlvbjogcmVwbGFjZSBub3JtYXRpdmUgbGV0dGVyIGNoYXJhY3RlcnMgaW4gdGhlIFUrMDYwMCAoQXJhYmljKSBibG9jaywKKyAgICAgKiBieSBzaGFwZWQgb25lcyBpbiB0aGUgVStGRTcwIChQcmVzZW50YXRpb24gRm9ybXMgQikgYmxvY2suIFBlcmZvcm1zIExhbS1BbGVmIGxpZ2F0dXJlCisgICAgICogc3Vic3RpdHV0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfU0hBUEUgPSA4OworCisgICAgLyoqIAorICAgICAqIExldHRlciBzaGFwaW5nIG9wdGlvbjogcmVwbGFjZSBzaGFwZWQgbGV0dGVyIGNoYXJhY3RlcnMgaW4gdGhlIFUrRkU3MCAoUHJlc2VudGF0aW9uIEZvcm1zIEIpIGJsb2NrCisgICAgICogYnkgbm9ybWF0aXZlIG9uZXMgaW4gdGhlIFUrMDYwMCAoQXJhYmljKSBibG9jay4gIENvbnZlcnRzIExhbS1BbGVmIGxpZ2F0dXJlcyB0byBwYWlycyBvZiBMYW0gYW5kCisgICAgICogQWxlZiBjaGFyYWN0ZXJzLCBjb25zdW1pbmcgc3BhY2VzIGlmIHJlcXVpcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfVU5TSEFQRSA9IDB4MTA7CisKKyAgICAvKioKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IHJlcGxhY2Ugbm9ybWF0aXZlIGxldHRlciBjaGFyYWN0ZXJzIGluIHRoZSBVKzA2MDAgKEFyYWJpYykgYmxvY2ssCisgICAgICogZXhjZXB0IGZvciB0aGUgVEFTSEtFRUwgY2hhcmFjdGVycyBhdCBVKzA2NEIuLi5VKzA2NTIsIGJ5IHNoYXBlZCBvbmVzIGluIHRoZSBVK0ZlNzAKKyAgICAgKiAoUHJlc2VudGF0aW9uIEZvcm1zIEIpIGJsb2NrLiAgVGhlIFRBU0hLRUVMIGNoYXJhY3RlcnMgd2lsbCBhbHdheXMgYmUgY29udmVydGVkIHRvCisgICAgICogdGhlIGlzb2xhdGVkIGZvcm1zIHJhdGhlciB0aGFuIHRvIHRoZWlyIGNvcnJlY3Qgc2hhcGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCA9IDB4MTg7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIGxldHRlciBzaGFwaW5nIG9wdGlvbnMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfTUFTSyA9IDB4MTg7CisKKworICAgIC8qKiAKKyAgICAgKiBEaWdpdCBzaGFwaW5nIG9wdGlvbjogZG8gbm90IHBlcmZvcm0gZGlnaXQgc2hhcGluZy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX05PT1AgPSAwOworCisgICAgLyoqCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246IFJlcGxhY2UgRXVyb3BlYW4gZGlnaXRzIChVKzAwMzAuLi5VKzAwMzkpIGJ5IEFyYWJpYy1JbmRpYyBkaWdpdHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOID0gMHgyMDsKKworICAgIC8qKgorICAgICAqIERpZ2l0IHNoYXBpbmcgb3B0aW9uOiBSZXBsYWNlIEFyYWJpYy1JbmRpYyBkaWdpdHMgYnkgRXVyb3BlYW4gZGlnaXRzIChVKzAwMzAuLi5VKzAwMzkpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19BTjJFTiA9IDB4NDA7CisKKyAgICAvKioKKyAgICAgKiBEaWdpdCBzaGFwaW5nIG9wdGlvbjoKKyAgICAgKiBSZXBsYWNlIEV1cm9wZWFuIGRpZ2l0cyAoVSswMDMwLi4uVSswMDM5KSBieSBBcmFiaWMtSW5kaWMgZGlnaXRzCisgICAgICogaWYgdGhlIG1vc3QgcmVjZW50IHN0cm9uZ2x5IGRpcmVjdGlvbmFsIGNoYXJhY3RlcgorICAgICAqIGlzIGFuIEFyYWJpYyBsZXR0ZXIgKGl0cyBCaWRpIGRpcmVjdGlvbiB2YWx1ZSBpcyBSSUdIVF9UT19MRUZUX0FSQUJJQykuIAorICAgICAqIFRoZSBpbml0aWFsIHN0YXRlIGF0IHRoZSBzdGFydCBvZiB0aGUgdGV4dCBpcyBhc3N1bWVkIHRvIGJlIG5vdCBhbiBBcmFiaWMsCisgICAgICogbGV0dGVyLCBzbyBFdXJvcGVhbiBkaWdpdHMgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHdpbGwgbm90IGNoYW5nZS4KKyAgICAgKiBDb21wYXJlIHRvIERJR0lUU19BTEVOMkFOX0lOSVRfQUwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOX0lOSVRfTFIgPSAweDYwOworCisgICAgLyoqCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246CisgICAgICogUmVwbGFjZSBFdXJvcGVhbiBkaWdpdHMgKFUrMDAzMC4uLlUrMDAzOSkgYnkgQXJhYmljLUluZGljIGRpZ2l0cworICAgICAqIGlmIHRoZSBtb3N0IHJlY2VudCBzdHJvbmdseSBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIKKyAgICAgKiBpcyBhbiBBcmFiaWMgbGV0dGVyIChpdHMgQmlkaSBkaXJlY3Rpb24gdmFsdWUgaXMgUklHSFRfVE9fTEVGVF9BUkFCSUMpLiAKKyAgICAgKiBUaGUgaW5pdGlhbCBzdGF0ZSBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgaXMgYXNzdW1lZCB0byBiZSBhbiBBcmFiaWMsCisgICAgICogbGV0dGVyLCBzbyBFdXJvcGVhbiBkaWdpdHMgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHdpbGwgY2hhbmdlLgorICAgICAqIENvbXBhcmUgdG8gRElHSVRTX0FMRU4yQU5fSU5UX0xSLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTl9JTklUX0FMID0gMHg4MDsKKworICAgIC8qKiBOb3QgYSB2YWxpZCBvcHRpb24gdmFsdWUuICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERJR0lUU19SRVNFUlZFRCA9IDB4YTA7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIGRpZ2l0IHNoYXBpbmcgb3B0aW9ucy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX01BU0sgPSAweGUwOworCisgICAgLyoqIAorICAgICAqIERpZ2l0IHR5cGUgb3B0aW9uOiBVc2UgQXJhYmljLUluZGljIGRpZ2l0cyAoVSswNjYwLi4uVSswNjY5KS4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTiA9IDA7CisKKyAgICAvKiogCisgICAgICogRGlnaXQgdHlwZSBvcHRpb246IFVzZSBFYXN0ZXJuIChFeHRlbmRlZCkgQXJhYmljLUluZGljIGRpZ2l0cyAoVSswNmYwLi4uVSswNmY5KS4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCA9IDB4MTAwOworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBkaWdpdCB0eXBlIG9wdGlvbnMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUX1RZUEVfTUFTSyA9IDB4MDEwMDsgLy8gMHgzZjAwPworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKyAgICAgICAgcmV0dXJuIHJocyAhPSBudWxsICYmIAorICAgICAgICAgICAgcmhzLmdldENsYXNzKCkgPT0gQXJhYmljU2hhcGluZy5jbGFzcyAmJiAKKyAgICAgICAgICAgIG9wdGlvbnMgPT0gKChBcmFiaWNTaGFwaW5nKXJocykub3B0aW9uczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBvcHRpb25zOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICBidWYuYXBwZW5kKCdbJyk7CisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIExFTkdUSF9NQVNLKSB7CisgICAgICAgIGNhc2UgTEVOR1RIX0dST1dfU0hSSU5LOiBidWYuYXBwZW5kKCJncm93L3NocmluayIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVI6IGJ1Zi5hcHBlbmQoInNwYWNlcyBuZWFyIik7IGJyZWFrOworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOiBidWYuYXBwZW5kKCJzcGFjZXMgYXQgZW5kIik7IGJyZWFrOworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOiBidWYuYXBwZW5kKCJzcGFjZXMgYXQgYmVnaW5uaW5nIik7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIFRFWFRfRElSRUNUSU9OX01BU0spIHsKKyAgICAgICAgY2FzZSBURVhUX0RJUkVDVElPTl9MT0dJQ0FMOiBidWYuYXBwZW5kKCIsIGxvZ2ljYWwiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUjogYnVmLmFwcGVuZCgiLCB2aXN1YWwiKTsgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgTEVUVEVSU19NQVNLKSB7CisgICAgICAgIGNhc2UgTEVUVEVSU19OT09QOiBidWYuYXBwZW5kKCIsIG5vIGxldHRlciBzaGFwaW5nIik7IGJyZWFrOworICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEU6IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgbGV0dGVycyIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEOiBidWYuYXBwZW5kKCIsIHNoYXBlIGxldHRlcnMgdGFzaGtlZWwgaXNvbGF0ZWQiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgTEVUVEVSU19VTlNIQVBFOiBidWYuYXBwZW5kKCIsIHVuc2hhcGUgbGV0dGVycyIpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBESUdJVFNfTUFTSykgeworICAgICAgICBjYXNlIERJR0lUU19OT09QOiBidWYuYXBwZW5kKCIsIG5vIGRpZ2l0IHNoYXBpbmciKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOOiBidWYuYXBwZW5kKCIsIHNoYXBlIGRpZ2l0cyB0byBBTiIpOyBicmVhazsKKyAgICAgICAgY2FzZSBESUdJVFNfQU4yRU46IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgZGlnaXRzIHRvIEVOIik7IGJyZWFrOworICAgICAgICBjYXNlIERJR0lUU19FTjJBTl9JTklUX0xSOiBidWYuYXBwZW5kKCIsIHNoYXBlIGRpZ2l0cyB0byBBTiBjb250ZXh0dWFsbHk6IGRlZmF1bHQgRU4iKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOX0lOSVRfQUw6IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgZGlnaXRzIHRvIEFOIGNvbnRleHR1YWxseTogZGVmYXVsdCBBTCIpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBESUdJVF9UWVBFX01BU0spIHsKKyAgICAgICAgY2FzZSBESUdJVF9UWVBFX0FOOiBidWYuYXBwZW5kKCIsIHN0YW5kYXJkIEFyYWJpYy1JbmRpYyBkaWdpdHMiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRfVFlQRV9BTl9FWFRFTkRFRDogYnVmLmFwcGVuZCgiLCBleHRlbmRlZCBBcmFiaWMtSW5kaWMgZGlnaXRzIik7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIl0iKTsKKworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8KKyAgICAvLyBwb3J0ZWQgYXBpCisgICAgLy8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJUlJFTEVWQU5UID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFNVFlQRSA9IDE2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTEVGVFlQRSA9IDMyOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTktSID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElOS0wgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU5LX01BU0sgPSAzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGlycmVsZXZhbnRQb3NbXSA9IHsgCisgICAgICAgIDB4MCwgMHgyLCAweDQsIDB4NiwgMHg4LCAweEEsIDB4QywgMHhFIAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGNvbnZlcnRMYW1BbGVmW10gPSAgeworICAgICAgICAnXHUwNjIyJywgLy8gRkVGNSAKKyAgICAgICAgJ1x1MDYyMicsIC8vIEZFRjYKKyAgICAgICAgJ1x1MDYyMycsIC8vIEZFRjcKKyAgICAgICAgJ1x1MDYyMycsIC8vIEZFRjgKKyAgICAgICAgJ1x1MDYyNScsIC8vIEZFRjkKKyAgICAgICAgJ1x1MDYyNScsIC8vIEZFRkEKKyAgICAgICAgJ1x1MDYyNycsIC8vIEZFRkIKKyAgICAgICAgJ1x1MDYyNycgIC8vIEZFRkMgCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgY29udmVydE5vcm1hbGl6ZWRMYW1BbGVmW10gPSB7CisgICAgICAgICdcdTA2MjInLCAvLyAwNjVDCisgICAgICAgICdcdTA2MjMnLCAvLyAwNjVECisgICAgICAgICdcdTA2MjUnLCAvLyAwNjVFCisgICAgICAgICdcdTA2MjcnLCAvLyAwNjVGCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGFyYUxpbmsgPSB7CisgICAgICAgIDEgICAgICAgICAgICsgMzIgKyAyNTYgKiAweDExLCAgLyoweDA2MjIqLworICAgICAgICAxICAgICAgICAgICArIDMyICsgMjU2ICogMHgxMywgIC8qMHgwNjIzKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4MTUsICAvKjB4MDYyNCovCisgICAgICAgIDEgICAgICAgICAgICsgMzIgKyAyNTYgKiAweDE3LCAgLyoweDA2MjUqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgxOSwgIC8qMHgwNjI2Ki8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiArIDI1NiAqIDB4MUQsICAvKjB4MDYyNyovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDFGLCAgLyoweDA2MjgqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgyMywgIC8qMHgwNjI5Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MjUsICAvKjB4MDYyQSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDI5LCAgLyoweDA2MkIqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgyRCwgIC8qMHgwNjJDKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MzEsICAvKjB4MDYyRCovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDM1LCAgLyoweDA2MkUqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgzOSwgIC8qMHgwNjJGKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4M0IsICAvKjB4MDYzMCovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDNELCAgLyoweDA2MzEqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgzRiwgIC8qMHgwNjMyKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NDEsICAvKjB4MDYzMyovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDQ1LCAgLyoweDA2MzQqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg0OSwgIC8qMHgwNjM1Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NEQsICAvKjB4MDYzNiovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDUxLCAgLyoweDA2MzcqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg1NSwgIC8qMHgwNjM4Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NTksICAvKjB4MDYzOSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDVELCAgLyoweDA2M0EqLworICAgICAgICAwLCAwLCAwLCAwLCAwLCAgICAgICAgICAgICAgICAgIC8qMHgwNjNCLTB4MDYzRiovCisgICAgICAgIDEgKyAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NDAqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg2MSwgIC8qMHgwNjQxKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NjUsICAvKjB4MDY0MiovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDY5LCAgLyoweDA2NDMqLworICAgICAgICAxICsgMiAgICAgICArIDE2ICsgMjU2ICogMHg2RCwgIC8qMHgwNjQ0Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NzEsICAvKjB4MDY0NSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDc1LCAgLyoweDA2NDYqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg3OSwgIC8qMHgwNjQ3Ki8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4N0QsICAvKjB4MDY0OCovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDdGLCAgLyoweDA2NDkqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg4MSwgIC8qMHgwNjRBKi8KKyAgICAgICAgNCwgNCwgNCwgNCwgICAgICAgICAgICAgICAgICAgICAvKjB4MDY0Qi0weDA2NEUqLworICAgICAgICA0LCA0LCA0LCA0LCAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjRGLTB4MDY1MiovCisgICAgICAgIDQsIDQsIDQsIDAsIDAsICAgICAgICAgICAgICAgICAgLyoweDA2NTMtMHgwNjU3Ki8KKyAgICAgICAgMCwgMCwgMCwgMCwgICAgICAgICAgICAgICAgICAgICAvKjB4MDY1OC0weDA2NUIqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg4NSwgIC8qMHgwNjVDKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4ODcsICAvKjB4MDY1RCovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDg5LCAgLyoweDA2NUUqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg4QiwgIC8qMHgwNjVGKi8KKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgICAgICAgICAgICAgICAgICAvKjB4MDY2MC0weDA2NjQqLworICAgICAgICAwLCAwLCAwLCAwLCAwLCAgICAgICAgICAgICAgICAgIC8qMHgwNjY1LTB4MDY2OSovCisgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsICAgICAgICAgICAgICAgLyoweDA2NkEtMHgwNjZGKi8KKyAgICAgICAgNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDY3MCovCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NzEqLworICAgICAgICAxICAgICAgICAgICArIDMyLCAgICAgICAgICAgICAgIC8qMHgwNjcyKi8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiwgICAgICAgICAgICAgICAvKjB4MDY3MyovCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NzQqLworICAgICAgICAxICAgICAgICAgICArIDMyLCAgICAgICAgICAgICAgIC8qMHgwNjc1Ki8KKyAgICAgICAgMSwgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDY3Ni0weDA2NzcqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNjc4LTB4MDY3RCovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2N0UtMHgwNjgzKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAgICAgICAgICAgICAvKjB4MDY4NC0weDA2ODcqLworICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAgIC8qMHgwNjg4LTB4MDY5MSovCisgICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsICAgICAgICAgLyoweDA2OTItMHgwNjk5Ki8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDY5QS0weDA2QTMqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsICAgICAgICAgICAgIC8qMHgwNjlBLTB4MDZBMyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2QTQtMHgwNkFEKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAgICAgICAgICAgICAvKjB4MDZBNC0weDA2QUQqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNkFFLTB4MDZCNyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgICAgICAgICAgICAgLyoweDA2QUUtMHgwNkI3Ki8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDZCOC0weDA2QkYqLworICAgICAgICAxKzIsIDErMiwgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkI4LTB4MDZCRiovCisgICAgICAgIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2QzAqLworICAgICAgICAxKzIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkMxKi8KKyAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgICAvKjB4MDZDMi0weDA2Q0IqLworICAgICAgICAxKzIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkNDKi8KKyAgICAgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZDRCovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgICAgICAgICAgICAgLyoweDA2Q0UtMHgwNkQxKi8KKyAgICAgICAgMSwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZEMi0weDA2RDMqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBwcmVzTGluayA9IHsKKyAgICAgICAgMSArIDIsICAgICAgICAgICAgICAgICAgICAgICAgLyoweEZFNzAqLworICAgICAgICAxICsgMiwgICAgICAgICAgICAgICAgICAgICAgICAvKjB4RkU3MSovCisgICAgICAgIDEgKyAyLCAwLCAxKyAyLCAwLCAxKyAyLCAgICAgIC8qMHhGRTcyLTB4RkU3NiovCisgICAgICAgIDEgKyAyLCAgICAgICAgICAgICAgICAgICAgICAgIC8qMHhGRTc3Ki8KKyAgICAgICAgMSsgMiwgMSArIDIsIDErMiwgMSArIDIsICAgICAgLyoweEZFNzgtMHhGRTgxKi8KKyAgICAgICAgMSsgMiwgMSArIDIsIDErMiwgMSArIDIsICAgICAgLyoweEZFODItMHhGRTg1Ki8KKyAgICAgICAgMCwgMCArIDMyLCAxICsgMzIsIDAgKyAzMiwgICAgLyoweEZFODYtMHhGRTg5Ki8KKyAgICAgICAgMSArIDMyLCAwLCAxLCAgMCArIDMyLCAgICAgICAgLyoweEZFOEEtMHhGRThEKi8KKyAgICAgICAgMSArIDMyLCAwLCAyLCAgMSArIDIsICAgICAgICAgLyoweEZFOEUtMHhGRTkxKi8KKyAgICAgICAgMSwgMCArIDMyLCAxICsgMzIsIDAsICAgICAgICAgLyoweEZFOTItMHhGRTk1Ki8KKyAgICAgICAgMiwgMSArIDIsIDEsIDAsICAgICAgICAgICAgICAgLyoweEZFOTYtMHhGRTk5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFOUEtMHhGRTlEKi8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFOUUtMHhGRUExKi8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFQTItMHhGRUE1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFQTYtMHhGRUE5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFQUEtMHhGRUFEKi8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFQUUtMHhGRUIxKi8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFQjItMHhGRUI1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQjYtMHhGRUI5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQkEtMHhGRUJEKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQkUtMHhGRUMxKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQzItMHhGRUM1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQzYtMHhGRUM5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQ0EtMHhGRUNEKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQ0UtMHhGRUQxKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRDItMHhGRUQ1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRDYtMHhGRUQ5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFREEtMHhGRUREKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFREUtMHhGRUUxKi8KKyAgICAgICAgMSwgMCArIDE2LCAyICsgMTYsIDEgKyAyICsxNiwgLyoweEZFRTItMHhGRUU1Ki8KKyAgICAgICAgMSArIDE2LCAwLCAyLCAxKzIsICAgICAgICAgICAgLyoweEZFRTYtMHhGRUU5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRUEtMHhGRUVEKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRUUtMHhGRUYxKi8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFRjItMHhGRUY1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRjYtMHhGRUY5Ki8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFRkEtMHhGRUZEKi8KKyAgICAgICAgMSwgMCwgMSwgMCwKKyAgICAgICAgMQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBjb252ZXJ0RkV0bzA2ID0geworICAgICAgICAvKioqKioqKioqKiowKioqKioqMSoqKioqKjIqKioqKiozKioqKioqNCoqKioqKjUqKioqKio2KioqKioqNyoqKioqKjgqKioqKio5KioqKioqQSoqKioqKkIqKioqKipDKioqKioqRCoqKioqKkUqKioqKipGKioqLworICAgICAgICAvKkZFNyovICAgMHg2NEIsIDB4NjRCLCAweDY0QywgMHg2NEMsIDB4NjRELCAweDY0RCwgMHg2NEUsIDB4NjRFLCAweDY0RiwgMHg2NEYsIDB4NjUwLCAweDY1MCwgMHg2NTEsIDB4NjUxLCAweDY1MiwgMHg2NTIsCisgICAgICAgIC8qRkU4Ki8gICAweDYyMSwgMHg2MjIsIDB4NjIyLCAweDYyMywgMHg2MjMsIDB4NjI0LCAweDYyNCwgMHg2MjUsIDB4NjI1LCAweDYyNiwgMHg2MjYsIDB4NjI2LCAweDYyNiwgMHg2MjcsIDB4NjI3LCAweDYyOCwKKyAgICAgICAgLypGRTkqLyAgIDB4NjI4LCAweDYyOCwgMHg2MjgsIDB4NjI5LCAweDYyOSwgMHg2MkEsIDB4NjJBLCAweDYyQSwgMHg2MkEsIDB4NjJCLCAweDYyQiwgMHg2MkIsIDB4NjJCLCAweDYyQywgMHg2MkMsIDB4NjJDLAorICAgICAgICAvKkZFQSovICAgMHg2MkMsIDB4NjJELCAweDYyRCwgMHg2MkQsIDB4NjJELCAweDYyRSwgMHg2MkUsIDB4NjJFLCAweDYyRSwgMHg2MkYsIDB4NjJGLCAweDYzMCwgMHg2MzAsIDB4NjMxLCAweDYzMSwgMHg2MzIsCisgICAgICAgIC8qRkVCKi8gICAweDYzMiwgMHg2MzMsIDB4NjMzLCAweDYzMywgMHg2MzMsIDB4NjM0LCAweDYzNCwgMHg2MzQsIDB4NjM0LCAweDYzNSwgMHg2MzUsIDB4NjM1LCAweDYzNSwgMHg2MzYsIDB4NjM2LCAweDYzNiwKKyAgICAgICAgLypGRUMqLyAgIDB4NjM2LCAweDYzNywgMHg2MzcsIDB4NjM3LCAweDYzNywgMHg2MzgsIDB4NjM4LCAweDYzOCwgMHg2MzgsIDB4NjM5LCAweDYzOSwgMHg2MzksIDB4NjM5LCAweDYzQSwgMHg2M0EsIDB4NjNBLAorICAgICAgICAvKkZFRCovICAgMHg2M0EsIDB4NjQxLCAweDY0MSwgMHg2NDEsIDB4NjQxLCAweDY0MiwgMHg2NDIsIDB4NjQyLCAweDY0MiwgMHg2NDMsIDB4NjQzLCAweDY0MywgMHg2NDMsIDB4NjQ0LCAweDY0NCwgMHg2NDQsCisgICAgICAgIC8qRkVFKi8gICAweDY0NCwgMHg2NDUsIDB4NjQ1LCAweDY0NSwgMHg2NDUsIDB4NjQ2LCAweDY0NiwgMHg2NDYsIDB4NjQ2LCAweDY0NywgMHg2NDcsIDB4NjQ3LCAweDY0NywgMHg2NDgsIDB4NjQ4LCAweDY0OSwKKyAgICAgICAgLypGRUYqLyAgIDB4NjQ5LCAweDY0QSwgMHg2NEEsIDB4NjRBLCAweDY0QSwgMHg2NUMsIDB4NjVDLCAweDY1RCwgMHg2NUQsIDB4NjVFLCAweDY1RSwgMHg2NUYsIDB4NjVGCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzaGFwZVRhYmxlW11bXVtdID0geworICAgICAgICB7IHswLDAsMCwwfSwgezAsMCwwLDB9LCB7MCwxLDAsM30sIHswLDEsMCwxfSB9LAorICAgICAgICB7IHswLDAsMiwyfSwgezAsMCwxLDJ9LCB7MCwxLDEsMn0sIHswLDEsMSwzfSB9LAorICAgICAgICB7IHswLDAsMCwwfSwgezAsMCwwLDB9LCB7MCwxLDAsM30sIHswLDEsMCwzfSB9LAorICAgICAgICB7IHswLDAsMSwyfSwgezAsMCwxLDJ9LCB7MCwxLDEsMn0sIHswLDEsMSwzfSB9CisgICAgfTsKKworICAgIC8qCisgICAgICogVGhpcyBmdW5jdGlvbiBzaGFwZXMgRXVyb3BlYW4gZGlnaXRzIHRvIEFyYWJpYy1JbmRpYyBkaWdpdHMKKyAgICAgKiBpbi1wbGFjZSwgd3JpdGluZyBvdmVyIHRoZSBpbnB1dCBjaGFyYWN0ZXJzLiAgRGF0YSBpcyBpbiB2aXN1YWwKKyAgICAgKiBvcmRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2hhcGVUb0FyYWJpY0RpZ2l0c1dpdGhDb250ZXh0KGNoYXJbXSBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZGlnaXRCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsYXN0U3Ryb25nV2FzQUwpIHsKKyAgICAgICAgVUJpRGlQcm9wcyBiZHA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBiZHA9VUJpRGlQcm9wcy5nZXRTaW5nbGV0b24oKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgIihCaWRpUHJvcHMpIiwgIiIpOworICAgICAgICB9CisgICAgICAgIGRpZ2l0QmFzZSAtPSAnMCc7IC8vIG1vdmUgY29tbW9uIGFkanVzdG1lbnQgb3V0IG9mIGxvb3AKKworICAgICAgICBmb3IoaW50IGkgPSBzdGFydCArIGxlbmd0aDsgLS1pID49IHN0YXJ0OykgeworICAgICAgICAgICAgY2hhciBjaCA9IGRlc3RbaV07CisgICAgICAgICAgICBzd2l0Y2ggKGJkcC5nZXRDbGFzcyhjaCkpIHsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQ6CisgICAgICAgICAgICAgICAgbGFzdFN0cm9uZ1dhc0FMID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUM6CisgICAgICAgICAgICAgICAgbGFzdFN0cm9uZ1dhc0FMID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlckRpcmVjdGlvbi5FVVJPUEVBTl9OVU1CRVI6CisgICAgICAgICAgICAgICAgaWYgKGxhc3RTdHJvbmdXYXNBTCAmJiBjaCA8PSAnXHUwMDM5JykgeworICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gKGNoYXIpKGNoICsgZGlnaXRCYXNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogaW52ZXJ0QnVmZmVyCisgICAgICogRnVuY3Rpb246IFRoaXMgZnVuY3Rpb24gaW52ZXJ0cyB0aGUgYnVmZmVyLCBpdCdzIHVzZWQKKyAgICAgKiAgICAgICAgICAgaW4gY2FzZSB0aGUgdXNlciBzcGVjaWZpZXMgdGhlIGJ1ZmZlciB0byBiZQorICAgICAqICAgICAgICAgICBURVhUX0RJUkVDVElPTl9MT0dJQ0FMCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbnZlcnRCdWZmZXIoY2hhcltdIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCkgeworCisgICAgICAgIGZvcihpbnQgaSA9IHN0YXJ0LCBqID0gc3RhcnQgKyBsZW5ndGggLSAxOyBpIDwgajsgaSsrLCAtLWopIHsKKyAgICAgICAgICAgIGNoYXIgdGVtcCA9IGJ1ZmZlcltpXTsKKyAgICAgICAgICAgIGJ1ZmZlcltpXSA9IGJ1ZmZlcltqXTsKKyAgICAgICAgICAgIGJ1ZmZlcltqXSA9IHRlbXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBjaGFuZ2VMYW1BbGVmCisgICAgICogRnVuY3Rpb246IENvbnZlcnRzIHRoZSBBbGVmIGNoYXJhY3RlcnMgaW50byBhbiBlcXVpdmFsZW50CisgICAgICogICAgICAgICAgIExhbUFsZWYgbG9jYXRpb24gaW4gdGhlIDB4MDZ4eCBSYW5nZSwgdGhpcyBpcyBhbgorICAgICAqICAgICAgICAgICBpbnRlcm1lZGlhdGUgc3RhZ2UgaW4gdGhlIG9wZXJhdGlvbiBvZiB0aGUgcHJvZ3JhbQorICAgICAqICAgICAgICAgICBsYXRlciBpdCdsbCBiZSBjb252ZXJ0ZWQgaW50byB0aGUgMHhGRXh4IExhbUFsZWZzIAorICAgICAqICAgICAgICAgICBpbiB0aGUgc2hhcGluZyBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGNoYW5nZUxhbUFsZWYoY2hhciBjaCkgeworICAgICAgICBzd2l0Y2goY2gpIHsKKyAgICAgICAgY2FzZSAnXHUwNjIyJzogcmV0dXJuICdcdTA2NUMnOworICAgICAgICBjYXNlICdcdTA2MjMnOiByZXR1cm4gJ1x1MDY1RCc7CisgICAgICAgIGNhc2UgJ1x1MDYyNSc6IHJldHVybiAnXHUwNjVFJzsKKyAgICAgICAgY2FzZSAnXHUwNjI3JzogcmV0dXJuICdcdTA2NUYnOworICAgICAgICBkZWZhdWx0OiAgcmV0dXJuICdcdTAwMDAnOyAvLyBub3QgYSBsYW1hbGVmCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBzcGVjaWFsQ2hhcgorICAgICAqIEZ1bmN0aW9uOiBTcGVjaWFsIEFyYWJpYyBjaGFyYWN0ZXJzIG5lZWQgc3BlY2lhbCBoYW5kbGluZyBpbiB0aGUgc2hhcGVVbmljb2RlCisgICAgICogICAgICAgICAgIGZ1bmN0aW9uLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgMSBvciAyIGZvciB0aGVzZSBzcGVjaWFsIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc3BlY2lhbENoYXIoY2hhciBjaCkgeworICAgICAgICBpZiAoKGNoID4gJ1x1MDYyMScgJiYgY2ggPCAnXHUwNjI2JykgfHwgCisgICAgICAgICAgICAoY2ggPT0gJ1x1MDYyNycpIHx8CisgICAgICAgICAgICAoY2ggPiAnXHUwNjJFJyAmJiBjaCA8ICdcdTA2MzMnKSB8fAorICAgICAgICAgICAgKGNoID4gJ1x1MDY0NycgJiYgY2ggPCAnXHUwNjRBJykgfHwKKyAgICAgICAgICAgIChjaCA9PSAnXHUwNjI5JykpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9IGVsc2UgaWYgKGNoID49ICdcdTA2NEInICYmIGNoPD0gJ1x1MDY1MicpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKGNoID49IDB4MDY1MyAmJiBjaCA8PSAweDA2NTUgfHwgCisgICAgICAgICAgICAgICAgICAgY2ggPT0gMHgwNjcwIHx8CisgICAgICAgICAgICAgICAgICAgY2ggPj0gMHhGRTcwICYmIGNoIDw9IDB4RkU3RikgeworICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBnZXRMaW5rCisgICAgICogRnVuY3Rpb246IFJlc29sdmVzIHRoZSBsaW5rIGJldHdlZW4gdGhlIGNoYXJhY3RlcnMgYXMgCisgICAgICogICAgICAgICAgIEFyYWJpYyBjaGFyYWN0ZXJzIGhhdmUgZm91ciBmb3JtcyA6CisgICAgICogICAgICAgICAgIElzb2xhdGVkLCBJbml0aWFsLCBNaWRkbGUgYW5kIEZpbmFsIEZvcm0KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0TGluayhjaGFyIGNoKSB7CisgICAgICAgIGlmIChjaCA+PSAnXHUwNjIyJyAmJiBjaCA8PSAnXHUwNkQzJykgeworICAgICAgICAgICAgcmV0dXJuIGFyYUxpbmtbY2ggLSAnXHUwNjIyJ107CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJ1x1MjAwRCcpIHsKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICB9IGVsc2UgaWYgKGNoID49ICdcdTIwNkQnICYmIGNoIDw9ICdcdTIwNkYnKSB7CisgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA+PSAnXHVGRTcwJyAmJiBjaCA8PSAnXHVGRUZDJykgeworICAgICAgICAgICAgcmV0dXJuIHByZXNMaW5rW2NoIC0gJ1x1RkU3MCddOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBjb3VudFNwYWNlcworICAgICAqIEZ1bmN0aW9uOiBDb3VudHMgdGhlIG51bWJlciBvZiBzcGFjZXMKKyAgICAgKiAgICAgICAgICAgYXQgZWFjaCBlbmQgb2YgdGhlIGxvZ2ljYWwgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvdW50U3BhY2VzTGVmdChjaGFyW10gZGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0LCBlID0gc3RhcnQgKyBjb3VudDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgaWYgKGRlc3RbaV0gIT0gJ1x1MDAyMCcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaSAtIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY291bnRTcGFjZXNSaWdodChjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50KSB7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0ICsgY291bnQ7IC0taSA+PSBzdGFydDspIHsKKyAgICAgICAgICAgIGlmIChkZXN0W2ldICE9ICdcdTAwMjAnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgY291bnQgLSAxIC0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogaXNUYXNoa2VlbENoYXIKKyAgICAgKiBGdW5jdGlvbjogUmV0dXJucyAxIGZvciBUYXNoa2VlbCBjaGFyYWN0ZXJzIGVsc2UgcmV0dXJuIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVGFzaGtlZWxDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49J1x1MDY0QicgJiYgY2ggPD0gJ1x1MDY1Mic7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogaXNBbGVmQ2hhcgorICAgICAqIEZ1bmN0aW9uOiBSZXR1cm5zIDEgZm9yIEFsZWYgY2hhcmFjdGVycyBlbHNlIHJldHVybiAwCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0FsZWZDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID09ICdcdTA2MjInIHx8IGNoID09ICdcdTA2MjMnIHx8IGNoID09ICdcdTA2MjUnIHx8IGNoID09ICdcdTA2MjcnOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGlzTGFtQWxlZkNoYXIKKyAgICAgKiBGdW5jdGlvbjogUmV0dXJucyAxIGZvciBMYW1BbGVmIGNoYXJhY3RlcnMgZWxzZSByZXR1cm4gMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNMYW1BbGVmQ2hhcihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA+PSAnXHVGRUY1JyAmJiBjaCA8PSAnXHVGRUZDJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49ICdcdTA2NUMnICYmIGNoIDw9ICdcdTA2NUYnOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGNhbGN1bGF0ZVNpemUKKyAgICAgKiBGdW5jdGlvbjogVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBkZXN0U2l6ZSB0byBiZSB1c2VkIGluIHByZWZsaWdodGluZworICAgICAqICAgICAgICAgICB3aGVuIHRoZSBkZXN0U2l6ZSBpcyBlcXVhbCB0byAwCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY2FsY3VsYXRlU2l6ZShjaGFyW10gc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZUxlbmd0aCkgeworICAgIAorICAgICAgICBpbnQgZGVzdFNpemUgPSBzb3VyY2VMZW5ndGg7CisKKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgTEVUVEVSU19NQVNLKSB7CisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRToKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEOgorICAgICAgICAgICAgaWYgKGlzTG9naWNhbCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydCwgZSA9IHNvdXJjZVN0YXJ0ICsgc291cmNlTGVuZ3RoIC0gMTsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlW2ldID09ICdcdTA2NDQnICYmIGlzQWxlZkNoYXIoc291cmNlW2krMV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAtLWRlc3RTaXplOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsgLy8gdmlzdWFsCisgICAgICAgICAgICAgICAgZm9yKGludCBpID0gc291cmNlU3RhcnQgKyAxLCBlID0gc291cmNlU3RhcnQgKyBzb3VyY2VMZW5ndGg7IGkgPCBlOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSA9PSAnXHUwNjQ0JyAmJiBpc0FsZWZDaGFyKHNvdXJjZVtpLTFdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLS1kZXN0U2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTEVUVEVSU19VTlNIQVBFOgorICAgICAgICAgICAgZm9yKGludCBpID0gc291cmNlU3RhcnQsIGUgPSBzb3VyY2VTdGFydCArIHNvdXJjZUxlbmd0aDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpc0xhbUFsZWZDaGFyKHNvdXJjZVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFNpemUrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGVzdFNpemU7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogcmVtb3ZlTGFtQWxlZlNwYWNlcworICAgICAqIEZ1bmN0aW9uOiBUaGUgc2hhcGVVbmljb2RlIGZ1bmN0aW9uIGNvbnZlcnRzIExhbSArIEFsZWYgaW50byBMYW1BbGVmICsgc3BhY2UsCisgICAgICogICAgICAgICAgIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgc3BhY2VzIGJlaGluZCB0aGUgTGFtQWxlZnMgYWNjb3JkaW5nIHRvCisgICAgICogICAgICAgICAgIHRoZSBvcHRpb25zIHRoZSB1c2VyIHNwZWNpZmllcywgdGhlIHNwYWNlcyBhcmUgcmVtb3ZlZCB0byB0aGUgZW5kCisgICAgICogICAgICAgICAgIG9mIHRoZSBidWZmZXIsIG9yIHNocmluayB0aGUgYnVmZmVyIGFuZCByZW1vdmUgc3BhY2VzIGZvciBnb29kCisgICAgICogICAgICAgICAgIG9yIGxlYXZlIHRoZSBidWZmZXIgYXMgaXQgaXMgTGFtQWxlZiArIHNwYWNlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHJlbW92ZUxhbUFsZWZTcGFjZXMoY2hhcltdIGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCkgeworICAgIAorICAgICAgICBpbnQgbGVuT3B0aW9ucyA9IG9wdGlvbnMgJiBMRU5HVEhfTUFTSzsKKyAgICAgICAgaWYgKCFpc0xvZ2ljYWwpIHsKKyAgICAgICAgICAgIHN3aXRjaCAobGVuT3B0aW9ucykgeworICAgICAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzogbGVuT3B0aW9ucyA9IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQ6IGxlbk9wdGlvbnMgPSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChsZW5PcHRpb25zID09IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUikgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0LCBlID0gaSArIGxlbmd0aDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChkZXN0W2ldID09ICdcdWZmZmYnKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAnXHUwMDIwJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgZSA9IHN0YXJ0ICsgbGVuZ3RoOworICAgICAgICAgICAgaW50IHcgPSBlOworICAgICAgICAgICAgaW50IHIgPSBlOworICAgICAgICAgICAgd2hpbGUgKC0tciA+PSBzdGFydCkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgIGlmIChjaCAhPSAnXHVmZmZmJykgeworICAgICAgICAgICAgICAgICAgICAtLXc7CisgICAgICAgICAgICAgICAgICAgIGlmICh3ICE9IHIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rbd10gPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxlbk9wdGlvbnMgPT0gTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAodyA+IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9ICdcdTAwMjAnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHcgPiBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaGlmdCwgYXNzdW1lIHNtYWxsIGJ1ZmZlciBzaXplIHNvIGRvbid0IHVzZSBhcnJheWNvcHkKKyAgICAgICAgICAgICAgICAgICAgciA9IHc7CisgICAgICAgICAgICAgICAgICAgIHcgPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHIgPCBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSBkZXN0W3IrK107CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3ID0gZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxlbk9wdGlvbnMgPT0gTEVOR1RIX0dST1dfU0hSSU5LKSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IHcgLSBzdGFydDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBzcGFjZXMgYXQgYmVnaW5uaW5nCisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh3IDwgZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFt3KytdID0gJ1x1MDAyMCc7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBleHBhbmRMYW1BbGVmCisgICAgICogRnVuY3Rpb246IExhbUFsZWYgbmVlZHMgc3BlY2lhbCBoYW5kbGluZyBhcyB0aGUgTGFtQWxlZiBpcworICAgICAqICAgICAgICAgICBvbmUgY2hhcmFjdGVyIHdoaWxlIGV4cGFuZGluZyBpdCB3aWxsIGdpdmUgdHdvCisgICAgICogICAgICAgICAgIGNoYXJhY3RlcnMgTGFtICsgQWxlZiwgc28gd2UgbmVlZCB0byBleHBhbmQgdGhlIExhbUFsZWYKKyAgICAgKiAgICAgICAgICAgaW4gbmVhciBvciBmYXIgc3BhY2VzIGFjY29yZGluZyB0byB0aGUgb3B0aW9ucyB0aGUgdXNlcgorICAgICAqICAgICAgICAgICBzcGVjaWZpZXMgb3IgaW5jcmVhc2UgdGhlIGJ1ZmZlciBzaXplLgorICAgICAqICAgICAgICAgICBEZXN0IGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGV4cGFuc2lvbiBpZiB3ZSBhcmUgZ3Jvd2luZy4KKyAgICAgKiAgICAgICAgICAgbGFtYWxlZiBhcmUgbm9ybWFsaXplZCB0byB0aGUgJ3NwZWNpYWwgY2hhcmFjdGVycycKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBleHBhbmRMYW1BbGVmKGNoYXJbXSBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsYWNvdW50KSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisKKyAgICAgICAgaW50IGxlbk9wdGlvbnMgPSBvcHRpb25zICYgTEVOR1RIX01BU0s7CisgICAgICAgIGlmICghaXNMb2dpY2FsKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGxlbk9wdGlvbnMpIHsKKyAgICAgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc6IGxlbk9wdGlvbnMgPSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOiBsZW5PcHRpb25zID0gTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKGxlbk9wdGlvbnMpIHsKKyAgICAgICAgY2FzZSBMRU5HVEhfR1JPV19TSFJJTks6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZvciAoaW50IHIgPSBzdGFydCArIGxlbmd0aCwgdyA9IHIgKyBsYWNvdW50OyAtLXIgPj0gc3RhcnQ7KSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNvbnZlcnROb3JtYWxpemVkTGFtQWxlZltjaCAtICdcdTA2NUMnXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbGVuZ3RoICs9IGxhY291bnQ7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUjogCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGRlc3Rbc3RhcnRdKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigibm8gc3BhY2UgZm9yIGxhbWFsZWYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0ICsgbGVuZ3RoOyAtLWkgPiBzdGFydDspIHsgLy8gZG9uJ3QgY2hlY2sgc3RhcnQsIGFscmVhZHkgY2hlY2tlZAorICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlc3RbaS0xXSA9PSAnXHUwMDIwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0taV0gPSBjb252ZXJ0Tm9ybWFsaXplZExhbUFsZWZbY2ggLSAnXHUwNjVDJ107CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJubyBzcGFjZSBmb3IgbGFtYWxlZiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDogCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGxhY291bnQgPiBjb3VudFNwYWNlc0xlZnQoZGVzdCwgc3RhcnQsIGxlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyYWJpY1NoYXBpbmdFeGNlcHRpb24oIm5vIHNwYWNlIGZvciBsYW1hbGVmIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaW50IHIgPSBzdGFydCArIGxhY291bnQsIHcgPSBzdGFydCwgZSA9IHN0YXJ0ICsgbGVuZ3RoOyByIDwgZTsgKytyKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSBjb252ZXJ0Tm9ybWFsaXplZExhbUFsZWZbY2ggLSAnXHUwNjVDJ107CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbdysrXSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChsYWNvdW50ID4gY291bnRTcGFjZXNSaWdodChkZXN0LCBzdGFydCwgbGVuZ3RoKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigibm8gc3BhY2UgZm9yIGxhbWFsZWYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgciA9IHN0YXJ0ICsgbGVuZ3RoIC0gbGFjb3VudCwgdyA9IHN0YXJ0ICsgbGVuZ3RoOyAtLXIgPj0gc3RhcnQ7KSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNvbnZlcnROb3JtYWxpemVkTGFtQWxlZltjaCAtICdcdTA2NUMnXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKworICAgIC8qIENvbnZlcnQgdGhlIGlucHV0IGJ1ZmZlciBmcm9tIEZFeHggUmFuZ2UgaW50byAwNnh4IFJhbmdlCisgICAgICogdG8gcHV0IGFsbCBjaGFyYWN0ZXJzIGludG8gdGhlIDA2eHggcmFuZ2UKKyAgICAgKiBldmVuIHRoZSBsYW1hbGVmIGlzIGNvbnZlcnRlZCB0byB0aGUgc3BlY2lhbCByZWdpb24gaW4KKyAgICAgKiB0aGUgMDZ4eCByYW5nZS4gIFJldHVybiB0aGUgbnVtYmVyIG9mIGxhbWFsZWYgY2hhcnMgZm91bmQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbm9ybWFsaXplKGNoYXJbXSBkZXN0LCBpbnQgc3RhcnQsIGludCBsZW5ndGgpIHsKKyAgICAgICAgaW50IGxhY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQsIGUgPSBpICsgbGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtpXTsKKyAgICAgICAgICAgIGlmIChjaCA+PSAnXHVGRTcwJyAmJiBjaCA8PSAnXHVGRUZDJykgeworICAgICAgICAgICAgICAgIGlmIChpc0xhbUFsZWZDaGFyKGNoKSkgeworICAgICAgICAgICAgICAgICAgICArK2xhY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAoY2hhciljb252ZXJ0RkV0bzA2W2NoIC0gJ1x1RkU3MCddOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBsYWNvdW50OworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IHNoYXBlVW5pY29kZQorICAgICAqIEZ1bmN0aW9uOiBDb252ZXJ0cyBhbiBBcmFiaWMgVW5pY29kZSBidWZmZXIgaW4gMDZ4eCBSYW5nZSBpbnRvIGEgc2hhcGVkCisgICAgICogICAgICAgICAgIGFyYWJpYyBVbmljb2RlIGJ1ZmZlciBpbiBGRXh4IFJhbmdlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc2hhcGVVbmljb2RlKGNoYXJbXSBkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0YXNoa2VlbEZsYWcpIHsKKworCisgICAgICAgIG5vcm1hbGl6ZShkZXN0LCBzdGFydCwgbGVuZ3RoKTsKKworICAgICAgICAvLyByZXNvbHZlIHRoZSBsaW5rIGJldHdlZW4gdGhlIGNoYXJhY3RlcnMuCisgICAgICAgIC8vIEFyYWJpYyBjaGFyYWN0ZXJzIGhhdmUgZm91ciBmb3JtczogSXNvbGF0ZWQsIEluaXRpYWwsIE1lZGlhbCBhbmQgRmluYWwuCisgICAgICAgIC8vIFRhc2hrZWVsIGNoYXJhY3RlcnMgaGF2ZSB0d28sIGlzb2xhdGVkIG9yIG1lZGlhbCwgYW5kIHNvbWV0aW1lcyBvbmx5IGlzb2xhdGVkLgorICAgICAgICAvLyB0YXNoa2VlbEZsYWcgPT0gMDogc2hhcGUgbm9ybWFsbHksIDE6IHNoYXBlIGlzb2xhdGVkLCAyOiBkb24ndCBzaGFwZQorCisgICAgICAgIGJvb2xlYW4gbGFtYWxlZl9mb3VuZCA9IGZhbHNlOworICAgICAgICBpbnQgaSA9IHN0YXJ0ICsgbGVuZ3RoIC0gMTsKKyAgICAgICAgaW50IGN1cnJMaW5rID0gZ2V0TGluayhkZXN0W2ldKTsKKyAgICAgICAgaW50IG5leHRMaW5rID0gMDsKKyAgICAgICAgaW50IHByZXZMaW5rID0gMDsKKyAgICAgICAgaW50IGxhc3RMaW5rID0gMDsKKyAgICAgICAgaW50IHByZXZQb3MgPSBpOworICAgICAgICBpbnQgbGFzdFBvcyA9IGk7CisgICAgICAgIGludCBueCA9IC0yOworICAgICAgICBpbnQgbncgPSAwOworCisgICAgICAgIHdoaWxlIChpID49IDApIHsKKyAgICAgICAgICAgIC8vIElmIGhpZ2ggYnl0ZSBvZiBjdXJyTGluayA+IDAgdGhlbiB0aGVyZSBtaWdodCBiZSBtb3JlIHRoYW4gb25lIHNoYXBlCisgICAgICAgICAgICBpZiAoKGN1cnJMaW5rICYgJ1x1RkYwMCcpID4gMCB8fCBpc1Rhc2hrZWVsQ2hhcihkZXN0W2ldKSkgeworICAgICAgICAgICAgICAgIG53ID0gaSAtIDE7CisgICAgICAgICAgICAgICAgbnggPSAtMjsKKyAgICAgICAgICAgICAgICB3aGlsZSAobnggPCAwKSB7IC8vIHdlIG5lZWQgdG8ga25vdyBhYm91dCBuZXh0IGNoYXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKG53ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0TGluayA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBueCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dExpbmsgPSBnZXRMaW5rKGRlc3RbbnddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobmV4dExpbmsgJiBJUlJFTEVWQU5UKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnggPSBudzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1udzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgoKGN1cnJMaW5rICYgQUxFRlRZUEUpID4gMCkgJiYgKChsYXN0TGluayAmIExBTVRZUEUpID4gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFtYWxlZl9mb3VuZCA9IHRydWU7IAorICAgICAgICAgICAgICAgICAgICBjaGFyIHdMYW1hbGVmID0gY2hhbmdlTGFtQWxlZihkZXN0W2ldKTsgLy8gZ2V0IGZyb20gMHgwNjVDLTB4MDY1ZgorICAgICAgICAgICAgICAgICAgICBpZiAod0xhbWFsZWYgIT0gJ1x1MDAwMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgYWxlZiBieSBtYXJrZXIsIGl0IHdpbGwgYmUgcmVtb3ZlZCBsYXRlcgorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9ICdcdWZmZmYnOworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtsYXN0UG9zXSA9IHdMYW1hbGVmOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGxhc3RQb3M7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBsYXN0TGluayA9IHByZXZMaW5rOworICAgICAgICAgICAgICAgICAgICBjdXJyTGluayA9IGdldExpbmsod0xhbWFsZWYpOyAvLyByZXF1aXJlcyAnXHUwMDAwJywgdW5mb3J0dW5hdGVseQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgcHJvcGVyIHNoYXBlIGFjY29yZGluZyB0byBsaW5rIGFiaWxpdHkgb2YgbmVpZ2hib3JzCisgICAgICAgICAgICAgICAgLy8gYW5kIG9mIGNoYXJhY3RlcjsgZGVwZW5kcyBvbiB0aGUgb3JkZXIgb2YgdGhlIHNoYXBlcworICAgICAgICAgICAgICAgIC8vIChpc29sYXRlZCwgaW5pdGlhbCwgbWlkZGxlLCBmaW5hbCkgaW4gdGhlIGNvbXBhdGliaWxpdHkgYXJlYQorCisgICAgICAgICAgICAgICAgaW50IGZsYWcgPSBzcGVjaWFsQ2hhcihkZXN0W2ldKTsKKworICAgICAgICAgICAgICAgIGludCBzaGFwZSA9IHNoYXBlVGFibGVbbmV4dExpbmsgJiBMSU5LX01BU0tdCisgICAgICAgICAgICAgICAgICAgIFtsYXN0TGluayAmIExJTktfTUFTS10KKyAgICAgICAgICAgICAgICAgICAgW2N1cnJMaW5rICYgTElOS19NQVNLXTsKKworICAgICAgICAgICAgICAgIGlmIChmbGFnID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hhcGUgJj0gMHgxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmxhZyA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0YXNoa2VlbEZsYWcgPT0gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKChsYXN0TGluayAmIExJTktMKSAhPSAwKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICgobmV4dExpbmsgJiBMSU5LUikgIT0gMCkgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2ldICE9ICdcdTA2NEMnICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSAhPSAnXHUwNjREJyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgISgobmV4dExpbmsgJiBBTEVGVFlQRSkgPT0gQUxFRlRZUEUgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXN0TGluayAmIExBTVRZUEUpID09IExBTVRZUEUpKSB7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSAxOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGZsYWcgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBpZiAodGFzaGtlZWxGbGFnIDwgMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9IChjaGFyKSgnXHVGRTcwJyArIGlycmVsZXZhbnRQb3NbZGVzdFtpXSAtICdcdTA2NEInXSArIHNoYXBlKTsKKyAgICAgICAgICAgICAgICAgICAgfSAvLyBlbHNlIGxlYXZlIHRhc2hrZWVsIGFsb25lICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gKGNoYXIpKCdcdUZFNzAnICsgKGN1cnJMaW5rID4+IDgpICsgc2hhcGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbW92ZSBvbmUgbm90Y2ggZm9yd2FyZAorICAgICAgICAgICAgaWYgKChjdXJyTGluayAmIElSUkVMRVZBTlQpID09IDApIHsKKyAgICAgICAgICAgICAgICBwcmV2TGluayA9IGxhc3RMaW5rOworICAgICAgICAgICAgICAgIGxhc3RMaW5rID0gY3Vyckxpbms7CisgICAgICAgICAgICAgICAgcHJldlBvcyA9IGxhc3RQb3M7CisgICAgICAgICAgICAgICAgbGFzdFBvcyA9IGk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC0taTsKKyAgICAgICAgICAgIGlmIChpID09IG54KSB7CisgICAgICAgICAgICAgICAgY3VyckxpbmsgPSBuZXh0TGluazsKKyAgICAgICAgICAgICAgICBueCA9IC0yOworICAgICAgICAgICAgfSBlbHNlIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgY3VyckxpbmsgPSBnZXRMaW5rKGRlc3RbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgd2UgZm91bmQgYSBsYW0vYWxlZiBwYWlyIGluIHRoZSBidWZmZXIgCisgICAgICAgIC8vIGNhbGwgcmVtb3ZlTGFtQWxlZlNwYWNlcyB0byByZW1vdmUgdGhlIHNwYWNlcyB0aGF0IHdlcmUgYWRkZWQKKworICAgICAgICBpZiAobGFtYWxlZl9mb3VuZCkgeworICAgICAgICAgICAgZGVzdFNpemUgPSByZW1vdmVMYW1BbGVmU3BhY2VzKGRlc3QsIHN0YXJ0LCBsZW5ndGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdFNpemUgPSBsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZXN0U2l6ZTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBkZVNoYXBlVW5pY29kZQorICAgICAqIEZ1bmN0aW9uOiBDb252ZXJ0cyBhbiBBcmFiaWMgVW5pY29kZSBidWZmZXIgaW4gRkV4eCBSYW5nZSBpbnRvIHVuc2hhcGVkCisgICAgICogICAgICAgICAgIGFyYWJpYyBVbmljb2RlIGJ1ZmZlciBpbiAwNnh4IFJhbmdlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZGVTaGFwZVVuaWNvZGUoY2hhcltdIGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0U2l6ZSkgdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24geworCisgICAgICAgIGludCBsYW1hbGVmX2NvdW50ID0gbm9ybWFsaXplKGRlc3QsIHN0YXJ0LCBsZW5ndGgpOworCisgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhIGxhbWFsZWYgaW4gdGhlIGJ1ZmZlciBjYWxsIGV4cGFuZExhbUFsZWYKKyAgICAgICAgaWYgKGxhbWFsZWZfY291bnQgIT0gMCkgeworICAgICAgICAgICAgLy8gbmVlZCB0byBhZGp1c3QgZGVzdCB0byBmaXQgZXhwYW5kZWQgYnVmZmVyLi4uICEhIQorICAgICAgICAgICAgZGVzdFNpemUgPSBleHBhbmRMYW1BbGVmKGRlc3QsIHN0YXJ0LCBsZW5ndGgsIGxhbWFsZWZfY291bnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdFNpemUgPSBsZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGVzdFNpemU7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgaW50ZXJuYWxTaGFwZShjaGFyW10gc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFNpemUpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoc291cmNlTGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlc3RTaXplID09IDApIHsKKyAgICAgICAgICAgIGlmICgoKG9wdGlvbnMgJiBMRVRURVJTX01BU0spICE9IExFVFRFUlNfTk9PUCkgJiYKKyAgICAgICAgICAgICAgICAoKG9wdGlvbnMgJiBMRU5HVEhfTUFTSykgPT0gTEVOR1RIX0dST1dfU0hSSU5LKSkgeworICAgIAorICAgICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVTaXplKHNvdXJjZSwgc291cmNlU3RhcnQsIHNvdXJjZUxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2VMZW5ndGg7IC8vIGJ5IGRlZmluaXRpb24KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGFsd2F5cyB1c2UgdGVtcCBidWZmZXIKKyAgICAgICAgY2hhcltdIHRlbXAgPSBuZXcgY2hhcltzb3VyY2VMZW5ndGggKiAyXTsgLy8gYWxsIGxhbWFsZWZzIHJlcXVpcmluZyBleHBhbnNpb24KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzb3VyY2UsIHNvdXJjZVN0YXJ0LCB0ZW1wLCAwLCBzb3VyY2VMZW5ndGgpOworCisgICAgICAgIGlmIChpc0xvZ2ljYWwpIHsKKyAgICAgICAgICAgIGludmVydEJ1ZmZlcih0ZW1wLCAwLCBzb3VyY2VMZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IG91dHB1dFNpemUgPSBzb3VyY2VMZW5ndGg7CisKKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgTEVUVEVSU19NQVNLKSB7CisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDoKKyAgICAgICAgICAgIG91dHB1dFNpemUgPSBzaGFwZVVuaWNvZGUodGVtcCwgMCwgc291cmNlTGVuZ3RoLCBkZXN0U2l6ZSwgMSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEU6CisgICAgICAgICAgICBvdXRwdXRTaXplID0gc2hhcGVVbmljb2RlKHRlbXAsIDAsIHNvdXJjZUxlbmd0aCwgZGVzdFNpemUsIDApOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBMRVRURVJTX1VOU0hBUEU6CisgICAgICAgICAgICBvdXRwdXRTaXplID0gZGVTaGFwZVVuaWNvZGUodGVtcCwgMCwgc291cmNlTGVuZ3RoLCBkZXN0U2l6ZSk7CisgICAgICAgICAgICBicmVhazsgCisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChvdXRwdXRTaXplID4gZGVzdFNpemUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJub3QgZW5vdWdoIHJvb20gZm9yIHJlc3VsdCBkYXRhIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKG9wdGlvbnMgJiBESUdJVFNfTUFTSykgIT0gRElHSVRTX05PT1ApIHsKKyAgICAgICAgICAgIGNoYXIgZGlnaXRCYXNlID0gJ1x1MDAzMCc7IC8vIEV1cm9wZWFuIGRpZ2l0cworICAgICAgICAgICAgc3dpdGNoIChvcHRpb25zICYgRElHSVRfVFlQRV9NQVNLKSB7CisgICAgICAgICAgICBjYXNlIERJR0lUX1RZUEVfQU46CisgICAgICAgICAgICAgICAgZGlnaXRCYXNlID0gJ1x1MDY2MCc7ICAvLyBBcmFiaWMtSW5kaWMgZGlnaXRzCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgRElHSVRfVFlQRV9BTl9FWFRFTkRFRDoKKyAgICAgICAgICAgICAgICBkaWdpdEJhc2UgPSAnXHUwNmYwJzsgIC8vIEVhc3Rlcm4gQXJhYmljLUluZGljIGRpZ2l0cyAoUGVyc2lhbiBhbmQgVXJkdSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChvcHRpb25zICYgRElHSVRTX01BU0spIHsKKyAgICAgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0RGVsdGEgPSBkaWdpdEJhc2UgLSAnXHUwMDMwJzsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXRwdXRTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZW1wW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDw9ICdcdTAwMzknICYmIGNoID49ICdcdTAwMzAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFtpXSArPSBkaWdpdERlbHRhOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERJR0lUU19BTjJFTjoKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgZGlnaXRUb3AgPSAoY2hhcikoZGlnaXRCYXNlICsgOSk7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdERlbHRhID0gJ1x1MDAzMCcgLSBkaWdpdEJhc2U7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3V0cHV0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGVtcFtpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBkaWdpdFRvcCAmJiBjaCA+PSBkaWdpdEJhc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW2ldICs9IGRpZ2l0RGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOX0lOSVRfTFI6CisgICAgICAgICAgICAgICAgc2hhcGVUb0FyYWJpY0RpZ2l0c1dpdGhDb250ZXh0KHRlbXAsIDAsIG91dHB1dFNpemUsIGRpZ2l0QmFzZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERJR0lUU19FTjJBTl9JTklUX0FMOgorICAgICAgICAgICAgICAgIHNoYXBlVG9BcmFiaWNEaWdpdHNXaXRoQ29udGV4dCh0ZW1wLCAwLCBvdXRwdXRTaXplLCBkaWdpdEJhc2UsIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzTG9naWNhbCkgeworICAgICAgICAgICAgaW52ZXJ0QnVmZmVyKHRlbXAsIDAsIG91dHB1dFNpemUpOworICAgICAgICB9CisgICAgICAKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCBkZXN0LCBkZXN0U3RhcnQsIG91dHB1dFNpemUpOworICAgICAgCisgICAgICAgIHJldHVybiBvdXRwdXRTaXplOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FyYWJpY1NoYXBpbmdFeGNlcHRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FyYWJpY1NoYXBpbmdFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOWQzMGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5qYXZhCkBAIC0wLDAgKzEsMjggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBUaHJvd24gYnkgQXJhYmljU2hhcGluZyB3aGVuIHRoZXJlIGlzIGEgc2hhcGluZyBlcnJvci4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgLy8gZ2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA1MjYxNTMxODA1NDk3MjYwNDkwTDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHVjdCB0aGUgZXhjZXB0aW9uIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgdGhpcyBleGNlcHRpb24KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrRGljdGlvbmFyeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtEaWN0aW9uYXJ5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTJjN2FkMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrRGljdGlvbmFyeS5qYXZhCkBAIC0wLDAgKzEsMzIzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKKworLyoqCisgKiBUaGlzIGlzIHRoZSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgdGhlIGxpc3Qgb2Yga25vd24gd29yZHMgdXNlZCBieQorICogRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci4gIFRoZSBjb25jZXB0dWFsIGRhdGEgc3RydWN0dXJlIHVzZWQKKyAqIGhlcmUgaXMgYSB0cmllOiB0aGVyZSBpcyBhIG5vZGUgaGFuZ2luZyBvZmYgdGhlIHJvb3Qgbm9kZSBmb3IgZXZlcnkKKyAqIGxldHRlciB0aGF0IGNhbiBzdGFydCBhIHdvcmQuICBFYWNoIG9mIHRoZXNlIG5vZGVzIGhhcyBhIG5vZGUgaGFuZ2luZworICogb2ZmIG9mIGl0IGZvciBldmVyeSBsZXR0ZXIgdGhhdCBjYW4gYmUgdGhlIHNlY29uZCBsZXR0ZXIgb2YgYSB3b3JkCisgKiBpZiB0aGlzIG5vZGUgaXMgdGhlIGZpcnN0IGxldHRlciwgYW5kIHNvIG9uLiAgVGhlIHRyaWUgaXMgcmVwcmVzZW50ZWQKKyAqIGFzIGEgdHdvLWRpbWVuc2lvbmFsIGFycmF5IHRoYXQgY2FuIGJlIHRyZWF0ZWQgYXMgYSB0YWJsZSBvZiBzdGF0ZQorICogdHJhbnNpdGlvbnMuICBJbmRleGVzIGFyZSB1c2VkIHRvIGNvbXByZXNzIHRoaXMgYXJyYXksIHRha2luZworICogYWR2YW50YWdlIG9mIHRoZSBmYWN0IHRoYXQgdGhpcyBhcnJheSB3aWxsIGFsd2F5cyBiZSB2ZXJ5IHNwYXJzZS4KKyAqIEBpbnRlcm5hbAorICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgKi8KK3B1YmxpYyBjbGFzcyBCcmVha0RpY3Rpb25hcnkgeworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gdGVzdGluZyBhbmQgZGVidWdnaW5nCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKiogCisgICAgICogQGludGVybmFsIAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pCisgICAgICAgICAgICB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGFyZ3NbMF07CisKKyAgICAgICAgQnJlYWtEaWN0aW9uYXJ5IGRpY3Rpb25hcnkgPSBuZXcgQnJlYWtEaWN0aW9uYXJ5KG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZW5hbWUpKTsKKworICAgICAgICBQcmludFdyaXRlciBvdXQgPSBudWxsOworCisgICAgICAgIGlmKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG5ldyBGaWxlT3V0cHV0U3RyZWFtKGFyZ3NbMV0pLCAiVW5pY29kZUxpdHRsZSIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGRpY3Rpb25hcnkucHJpbnRXb3JkTGlzdCgiIiwgMCwgb3V0KTsKKworICAgICAgICBpZiAob3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIAorICAgICAqIEBpbnRlcm5hbCAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcmludFdvcmRMaXN0KFN0cmluZyBwYXJ0aWFsV29yZCwgaW50IHN0YXRlLCBQcmludFdyaXRlciBvdXQpCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoc3RhdGUgPT0gMHhGRkZGKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFydGlhbFdvcmQpOworICAgICAgICAgICAgaWYgKG91dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4ocGFydGlhbFdvcmQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgbmV3U3RhdGUgPSAoYXQoc3RhdGUsIGkpKSAmIDB4RkZGRjsKKworICAgICAgICAgICAgICAgIGlmIChuZXdTdGF0ZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgbmV3Q2hhciA9IHJldmVyc2VDb2x1bW5NYXBbaV07CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdQYXJ0aWFsV29yZCA9IHBhcnRpYWxXb3JkOworCisgICAgICAgICAgICAgICAgICAgIGlmIChuZXdDaGFyICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcnRpYWxXb3JkICs9IG5ld0NoYXI7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwcmludFdvcmRMaXN0KG5ld1BhcnRpYWxXb3JkLCBuZXdTdGF0ZSwgb3V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIG1hcCB1c2VkIHRvIGdvIGZyb20gY29sdW1uIG51bWJlcnMgdG8gY2hhcmFjdGVycy4gIFVzZWQgb25seQorICAgICAqIGZvciBkZWJ1Z2dpbmcgcmlnaHQgbm93LgorICAgICAqLworICAgIHByaXZhdGUgY2hhcltdIHJldmVyc2VDb2x1bW5NYXAgPSBudWxsOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogTWFwcyBmcm9tIGNoYXJhY3RlcnMgdG8gY29sdW1uIG51bWJlcnMuICBUaGUgbWFpbiB1c2Ugb2YgdGhpcyBpcyB0bworICAgICAqIGF2b2lkIG1ha2luZyByb29tIGluIHRoZSBhcnJheSBmb3IgZW1wdHkgY29sdW1ucy4KKyAgICAgKi8KKyAgICBwcml2YXRlIENvbXBhY3RCeXRlQXJyYXkgY29sdW1uTWFwID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgYWN0dWFsIGNvbHVtbnMgaW4gdGhlIHRhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbnVtQ29sczsKKworICAgIC8qKgorICAgICAqIENvbHVtbnMgYXJlIG9yZ2FuaXplZCBpbnRvIGdyb3VwcyBvZiAzMi4gIFRoaXMgc2F5cyBob3cgbWFueQorICAgICAqIGNvbHVtbiBncm91cHMuICAoV2UgY291bGQgY2FsY3VsYXRlIHRoaXMsIGJ1dCB3ZSBzdG9yZSB0aGUKKyAgICAgKiB2YWx1ZSB0byBhdm9pZCBoYXZpbmcgdG8gcmVwZWF0ZWRseSBjYWxjdWxhdGUgaXQuKQorICAgICAqLworICAgIHByaXZhdGUgaW50IG51bUNvbEdyb3VwczsKKworICAgIC8qKgorICAgICAqIFRoZSBhY3R1YWwgY29tcHJlc3NlZCBzdGF0ZSB0YWJsZS4gIEVhY2ggY29uY2VwdHVhbCByb3cgcmVwcmVzZW50cworICAgICAqIGEgc3RhdGUsIGFuZCB0aGUgY2VsbHMgaW4gaXQgY29udGFpbiB0aGUgcm93IG51bWJlcnMgb2YgdGhlIHN0YXRlcworICAgICAqIHRvIHRyYW5zaXRpb24gdG8gZm9yIGVhY2ggcG9zc2libGUgbGV0dGVyLiAgMCBpcyB1c2VkIHRvIGluZGljYXRlCisgICAgICogYW4gaWxsZWdhbCBjb21iaW5hdGlvbiBvZiBsZXR0ZXJzIChpLmUuLCB0aGUgZXJyb3Igc3RhdGUpLiAgVGhlCisgICAgICogdGFibGUgaXMgY29tcHJlc3NlZCBieSBlbGltaW5hdGluZyBhbGwgdGhlIHVucG9wdWxhdGVkIChpLmUuLCB6ZXJvKQorICAgICAqIGNlbGxzLiAgTXVsdGlwbGUgY29uY2VwdHVhbCByb3dzIGNhbiB0aGVuIGJlIGRvdWJsZWQgdXAgaW4gYSBzaW5nbGUKKyAgICAgKiBwaHlzaWNhbCByb3cgYnkgc2xpZGluZyB0aGVtIHVwIGFuZCBwb3NzaWJseSBzaGlmdGluZyB0aGVtIHRvIG9uZQorICAgICAqIHNpZGUgb3IgdGhlIG90aGVyIHNvIHRoZSBwb3B1bGF0ZWQgY2VsbHMgZG9uJ3QgY29sbGlkZS4gIEluZGV4ZXMKKyAgICAgKiBhcmUgdXNlZCB0byBpZGVudGlmeSB1bnBvcHVsYXRlZCBjZWxscyBhbmQgdG8gbG9jYXRlIHBvcHVsYXRlZCBjZWxscy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0W10gdGFibGUgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhpcyBpbmRleCBtYXBzIGxvZ2ljYWwgcm93IG51bWJlcnMgdG8gcGh5c2ljYWwgcm93IG51bWJlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0W10gcm93SW5kZXggPSBudWxsOworCisgICAgLyoqCisgICAgICogQSBiaXRtYXAgaXMgdXNlZCB0byB0ZWxsIHdoaWNoIGNlbGxzIGluIHRoZSBjb21jZXB0dWFsIHRhYmxlIGFyZQorICAgICAqIHBvcHVsYXRlZC4gIFRoaXMgYXJyYXkgY29udGFpbnMgYWxsIHRoZSB1bmlxdWUgYml0IGNvbWJpbmF0aW9ucworICAgICAqIGluIHRoYXQgYml0bWFwLiAgSWYgdGhlIHRhYmxlIGlzIG1vcmUgdGhhbiAzMiBjb2x1bW5zIHdpZGUsCisgICAgICogc3VjY2Vzc2l2ZSBlbnRyaWVzIGluIHRoaXMgYXJyYXkgYXJlIHVzZWQgZm9yIGEgc2luZ2xlIHJvdy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIHJvd0luZGV4RmxhZ3MgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhpcyBpbmRleCBtYXBzIGZyb20gYSBsb2dpY2FsIHJvdyBudW1iZXIgaW50byB0aGUgYml0bWFwIHRhYmxlIGFib3ZlLgorICAgICAqIChUaGlzIGtlZXBzIHVzIGZyb20gc3RvcmluZyBkdXBsaWNhdGUgYml0bWFwIGNvbWJpbmF0aW9ucy4pICBTaW5jZSB0aGVyZQorICAgICAqIGFyZSBhIGxvdCBvZiByb3dzIHdpdGggb25seSBvbmUgcG9wdWxhdGVkIGNlbGwsIGluc3RlYWQgb2Ygd2FzdGluZyBzcGFjZQorICAgICAqIGluIHRoZSBiaXRtYXAgdGFibGUsIHdlIGp1c3Qgc3RvcmUgYSBuZWdhdGl2ZSBudW1iZXIgaW4gdGhpcyBpbmRleCBmb3IKKyAgICAgKiByb3dzIHdpdGggb25lIHBvcHVsYXRlZCBjZWxsLiAgVGhlIGFic29sdXRlIHZhbHVlIG9mIHRoYXQgbnVtYmVyIGlzCisgICAgICogdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIHBvcHVsYXRlZCBjZWxsLgorICAgICAqLworICAgIHByaXZhdGUgc2hvcnRbXSByb3dJbmRleEZsYWdzSW5kZXggPSBudWxsOworCisgICAgLyoqCisgICAgICogRm9yIGVhY2ggbG9naWNhbCByb3csIHRoaXMgaW5kZXggY29udGFpbnMgYSBjb25zdGFudCB0aGF0IGlzIGFkZGVkIHRvCisgICAgICogdGhlIGxvZ2ljYWwgY29sdW1uIG51bWJlciB0byBnZXQgdGhlIHBoeXNpY2FsIGNvbHVtbiBudW1iZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGVbXSByb3dJbmRleFNoaWZ0cyA9IG51bGw7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGRlc2VyaWFsaXphdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKiogCisgICAgICogQGludGVybmFsIAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBCcmVha0RpY3Rpb25hcnkoSW5wdXRTdHJlYW0gZGljdGlvbmFyeVN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmVhZERpY3Rpb25hcnlGaWxlKG5ldyBEYXRhSW5wdXRTdHJlYW0oZGljdGlvbmFyeVN0cmVhbSkpOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWFkRGljdGlvbmFyeUZpbGUoRGF0YUlucHV0U3RyZWFtIGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgbDsKKworICAgICAgICAvLyByZWFkIGluIHRoZSB2ZXJzaW9uIG51bWJlciAocmlnaHQgbm93IHdlIGp1c3QgaWdub3JlIGl0KQorICAgICAgICBpbi5yZWFkSW50KCk7CisKKyAgICAgICAgLy8gcmVhZCBpbiB0aGUgY29sdW1uIG1hcCAodGhpcyBpcyBzZXJpYWxpemVkIGluIGl0cyBpbnRlcm5hbCBmb3JtOgorICAgICAgICAvLyBhbiBpbmRleCBhcnJheSBmb2xsb3dlZCBieSBhIGRhdGEgYXJyYXkpCisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGNoYXJbXSB0ZW1wID0gbmV3IGNoYXJbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHRlbXBbaV0gPSAoY2hhcilpbi5yZWFkU2hvcnQoKTsKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgYnl0ZVtdIHRlbXAyID0gbmV3IGJ5dGVbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcDIubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0ZW1wMltpXSA9IGluLnJlYWRCeXRlKCk7CisgICAgICAgIGNvbHVtbk1hcCA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KHRlbXAsIHRlbXAyKTsKKworICAgICAgICAvLyByZWFkIGluIG51bUNvbHMgYW5kIG51bUNvbEdyb3VwcworICAgICAgICBudW1Db2xzID0gaW4ucmVhZEludCgpOworICAgICAgICBudW1Db2xHcm91cHMgPSBpbi5yZWFkSW50KCk7CisKKyAgICAgICAgLy8gcmVhZCBpbiB0aGUgcm93LW51bWJlciBpbmRleAorICAgICAgICBsID0gaW4ucmVhZEludCgpOworICAgICAgICByb3dJbmRleCA9IG5ldyBzaG9ydFtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4W2ldID0gaW4ucmVhZFNob3J0KCk7CisKKyAgICAgICAgLy8gbG9hZCBpbiB0aGUgcG9wdWxhdGVkLWNlbGxzIGJpdG1hcDogaW5kZXggZmlyc3QsIHRoZW4gYml0bWFwIGxpc3QKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXhGbGFnc0luZGV4ID0gbmV3IHNob3J0W2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4RmxhZ3NJbmRleC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleFtpXSA9IGluLnJlYWRTaG9ydCgpOworICAgICAgICBsID0gaW4ucmVhZEludCgpOworICAgICAgICByb3dJbmRleEZsYWdzID0gbmV3IGludFtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgcm93SW5kZXhGbGFnc1tpXSA9IGluLnJlYWRJbnQoKTsKKworICAgICAgICAvLyBsb2FkIGluIHRoZSByb3ctc2hpZnQgaW5kZXgKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXhTaGlmdHMgPSBuZXcgYnl0ZVtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleFNoaWZ0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4U2hpZnRzW2ldID0gaW4ucmVhZEJ5dGUoKTsKKworICAgICAgICAvLyBmaW5hbGx5LCBsb2FkIGluIHRoZSBhY3R1YWwgc3RhdGUgdGFibGUKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgdGFibGUgPSBuZXcgc2hvcnRbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0YWJsZVtpXSA9IGluLnJlYWRTaG9ydCgpOworCisgICAgICAgIC8vIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaXMgb25seSBuZWNlc3NhcnkgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyBwdXJwb3NlcworICAgICAgICByZXZlcnNlQ29sdW1uTWFwID0gbmV3IGNoYXJbbnVtQ29sc107CisgICAgICAgIGZvciAoY2hhciBjID0gMDsgYyA8IDB4ZmZmZjsgYysrKSB7CisgICAgICAgICAgICBpbnQgY29sID0gY29sdW1uTWFwLmVsZW1lbnRBdChjKTsKKyAgICAgICAgICAgIGlmIChjb2wgIT0gMCkgeworICAgICAgICAgICAgICAgcmV2ZXJzZUNvbHVtbk1hcFtjb2xdID0gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGNsb3NlIHRoZSBzdHJlYW0KKyAgICAgICAgaW4uY2xvc2UoKTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGFjY2VzcyB0byB0aGUgd29yZHMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVXNlcyB0aGUgY29sdW1uIG1hcCB0byBtYXAgdGhlIGNoYXJhY3RlciB0byBhIGNvbHVtbiBudW1iZXIsIHRoZW4KKyAgICAgKiBwYXNzZXMgdGhlIHJvdyBhbmQgY29sdW1uIG51bWJlciB0byB0aGUgb3RoZXIgdmVyc2lvbiBvZiBhdCgpCisgICAgICogQHBhcmFtIHJvdyBUaGUgY3VycmVudCBzdGF0ZQorICAgICAqIEBwYXJhbSBjaCBUaGUgY2hhcmFjdGVyIHdob3NlIGNvbHVtbiB3ZSdyZSBpbnRlcmVzdGVkIGluCisgICAgICogQHJldHVybiBUaGUgbmV3IHN0YXRlIHRvIHRyYW5zaXRpb24gdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc2hvcnQgYXQoaW50IHJvdywgY2hhciBjaCkgeworICAgICAgICBpbnQgY29sID0gY29sdW1uTWFwLmVsZW1lbnRBdChjaCk7CisgICAgICAgIHJldHVybiBhdChyb3csIGNvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgaW4gdGhlIGNlbGwgd2l0aCB0aGUgc3BlY2lmaWVkIChsb2dpY2FsKSByb3cgYW5kCisgICAgICogY29sdW1uIG51bWJlcnMuICBJbiBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLCB0aGUgcm93IG51bWJlciBpcworICAgICAqIGEgc3RhdGUgbnVtYmVyLCB0aGUgY29sdW1uIG51bWJlciBpcyBhbiBpbnB1dCwgYW5kIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBpcyB0aGUgcm93IG51bWJlciBvZiB0aGUgbmV3IHN0YXRlIHRvIHRyYW5zaXRpb24gdG8uICAoMCBpcyB0aGUKKyAgICAgKiAiZXJyb3IiIHN0YXRlLCBhbmQgLTEgaXMgdGhlICJlbmQgb2Ygd29yZCIgc3RhdGUgaW4gYSBkaWN0aW9uYXJ5KQorICAgICAqIEBwYXJhbSByb3cgVGhlIHJvdyBudW1iZXIgb2YgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKiBAcGFyYW0gY29sIFRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBpbnB1dCBjaGFyYWN0ZXIgKDAgbWVhbnMgIm5vdCBhCisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXIiKQorICAgICAqIEByZXR1cm4gVGhlIHJvdyBudW1iZXIgb2YgdGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHNob3J0IGF0KGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgaWYgKGNlbGxJc1BvcHVsYXRlZChyb3csIGNvbCkpIHsKKyAgICAgICAgICAgIC8vIHdlIG1hcCBmcm9tIGxvZ2ljYWwgdG8gcGh5c2ljYWwgcm93IG51bWJlciBieSBsb29raW5nIHVwIHRoZQorICAgICAgICAgICAgLy8gbWFwcGluZyBpbiByb3dJbmRleDsgd2UgbWFwIGZyb20gbG9naWNhbCBjb2x1bW4gbnVtYmVyIHRvCisgICAgICAgICAgICAvLyBwaHlzaWNhbCBjb2x1bW4gbnVtYmVyIGJ5IGxvb2tpbmcgdXAgYSBzaGlmdCB2YWx1ZSBmb3IgdGhpcworICAgICAgICAgICAgLy8gbG9naWNhbCByb3cgYW5kIG9mZnNldHRpbmcgdGhlIGxvZ2ljYWwgY29sdW1uIG51bWJlciBieQorICAgICAgICAgICAgLy8gdGhlIHNoaWZ0IGFtb3VudC4gIFRoZW4gd2UgY2FuIHVzZSBpbnRlcm5hbEF0KCkgdG8gYWN0dWFsbHkKKyAgICAgICAgICAgIC8vIGdldCB0aGUgdmFsdWUgb3V0IG9mIHRoZSB0YWJsZS4KKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEF0KHJvd0luZGV4W3Jvd10sIGNvbCArIHJvd0luZGV4U2hpZnRzW3Jvd10pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiAobG9naWNhbCkgcm93IGFuZCBjb2x1bW4gbnVtYmVycywgcmV0dXJucyB0cnVlIGlmIHRoZQorICAgICAqIGNlbGwgaW4gdGhhdCBwb3NpdGlvbiBpcyBwb3B1bGF0ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2VsbElzUG9wdWxhdGVkKGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgLy8gbG9vayB1cCB0aGUgZW50cnkgaW4gdGhlIGJpdG1hcCBpbmRleCBmb3IgdGhlIHNwZWNpZmllZCByb3cuCisgICAgICAgIC8vIElmIGl0J3MgYSBuZWdhdGl2ZSBudW1iZXIsIGl0J3MgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIG9ubHkKKyAgICAgICAgLy8gcG9wdWxhdGVkIGNlbGwgaW4gdGhlIHJvdworICAgICAgICBpZiAocm93SW5kZXhGbGFnc0luZGV4W3Jvd10gPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gY29sID09IC1yb3dJbmRleEZsYWdzSW5kZXhbcm93XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGl0J3MgYSBwb3NpdGl2ZSBudW1iZXIsIGl0J3MgdGhlIG9mZnNldCBvZiBhbiBlbnRyeSBpbiB0aGUgYml0bWFwCisgICAgICAgIC8vIGxpc3QuICBJZiB0aGUgdGFibGUgaXMgbW9yZSB0aGFuIDMyIGNvbHVtbnMgd2lkZSwgdGhlIGJpdG1hcCBpcyBzdG9yZWQKKyAgICAgICAgLy8gc3VjY2Vzc2l2ZSBlbnRyaWVzIGluIHRoZSBiaXRtYXAgbGlzdCwgc28gd2UgaGF2ZSB0byBkaXZpZGUgdGhlIGNvbHVtbgorICAgICAgICAvLyBudW1iZXIgYnkgMzIgYW5kIG9mZnNldCB0aGUgbnVtYmVyIHdlIGdvdCBvdXQgb2YgdGhlIGluZGV4IGJ5IHRoZSByZXN1bHQuCisgICAgICAgIC8vIE9uY2Ugd2UgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgcGllY2Ugb2YgdGhlIGJpdG1hcCwgdGVzdCB0aGUgYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gYml0IGFuZCByZXR1cm4gdGhlIHJlc3VsdC4KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgZmxhZ3MgPSByb3dJbmRleEZsYWdzW3Jvd0luZGV4RmxhZ3NJbmRleFtyb3ddICsgKGNvbCA+PiA1KV07CisgICAgICAgICAgICByZXR1cm4gKGZsYWdzICYgKDEgPDwgKGNvbCAmIDB4MWYpKSkgIT0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIGF0KCkgd2hlbiB3ZSBrbm93IHRoZSBzcGVjaWZpZWQgY2VsbCBpcyBwb3B1bGF0ZWQuCisgICAgICogQHBhcmFtIHJvdyBUaGUgUEhZU0lDQUwgcm93IG51bWJlciBvZiB0aGUgY2VsbAorICAgICAqIEBwYXJhbSBjb2wgVGhlIFBIWVNJQ0FMIGNvbHVtbiBudW1iZXIgb2YgdGhlIGNlbGwKKyAgICAgKiBAcmV0dXJuIFRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGNlbGwKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHNob3J0IGludGVybmFsQXQoaW50IHJvdywgaW50IGNvbCkgeworICAgICAgICAvLyB0aGUgdGFibGUgaXMgYSBvbmUtZGltZW5zaW9uYWwgYXJyYXksIHNvIHRoaXMganVzdCBkb2VzIHRoZSBtYXRoIG5lY2Vzc2FyeQorICAgICAgICAvLyB0byB0cmVhdCBpdCBhcyBhIHR3by1kaW1lbnNpb25hbCBhcnJheSAod2UgZG9uJ3QganVzdCB1c2UgYSB0d28tZGltZW5zaW9uYWwKKyAgICAgICAgLy8gYXJyYXkgYmVjYXVzZSB0d28tZGltZW5zaW9uYWwgYXJyYXlzIGFyZSBpbmVmZmljaWVudCBpbiBKYXZhKQorICAgICAgICByZXR1cm4gdGFibGVbcm93ICogbnVtQ29scyArIGNvbF07CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjY3ZDk5ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDg4NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogQSBjbGFzcyB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBpbiB0ZXh0LiAgVGhpcyBjbGFzcyBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yCisgKiBvYmplY3RzIHRoYXQgYnJlYWsgdXAgYSBwaWVjZSBvZiBuYXR1cmFsLWxhbmd1YWdlIHRleHQgYWNjb3JkaW5nIHRvIGEgc2V0CisgKiBvZiBjcml0ZXJpYS4gIEluc3RhbmNlcyBvciBzdWJjbGFzc2VzIG9mIEJyZWFrSXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkLCBmb3IKKyAqIGV4YW1wbGUsIHRvIGJyZWFrIGEgcGllY2Ugb2YgdGV4dCBpbnRvIHdvcmRzLCBzZW50ZW5jZXMsIG9yIGxvZ2ljYWwgY2hhcmFjdGVycworICogYWNjb3JkaW5nIHRvIHRoZSBjb252ZW50aW9ucyBvZiBzb21lIGxhbmd1YWdlIG9yIGdyb3VwIG9mIGxhbmd1YWdlcy4KKyAqCisgKiBXZSBwcm92aWRlIGZpdmUgYnVpbHQtaW4gdHlwZXMgb2YgQnJlYWtJdGVyYXRvcjoKKyAqIDx1bD48bGk+Z2V0VGl0bGVJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzCisgKiBiZXR3ZWVuIHRpdGxlIGJyZWFrcy4KKyAqIDxsaT5nZXRTZW50ZW5jZUluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMKKyAqIGJldHdlZW4gc2VudGVuY2VzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHRyaXBsZS1jbGljayBzZWxlY3Rpb24sIGZvciBleGFtcGxlLgorICogPGxpPmdldFdvcmRJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzIGJldHdlZW4KKyAqIHdvcmRzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGRvdWJsZS1jbGljayBzZWxlY3Rpb24gb3IgImZpbmQgd2hvbGUgd29yZHMiIHNlYXJjaGVzLgorICogVGhpcyB0eXBlIG9mIEJyZWFrSXRlcmF0b3IgbWFrZXMgc3VyZSB0aGVyZSBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uIGF0IHRoZQorICogYmVnaW5uaW5nIGFuZCBlbmQgb2YgZWFjaCBsZWdhbCB3b3JkLiAgKE51bWJlcnMgY291bnQgYXMgd29yZHMsIHRvby4pICBXaGl0ZXNwYWNlCisgKiBhbmQgcHVuY3R1YXRpb24gYXJlIGtlcHQgc2VwYXJhdGUgZnJvbSByZWFsIHdvcmRzLgorICogPGxpPmdldExpbmVJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBwb3NpdGlvbnMgd2hlcmUgaXQgaXMKKyAqIGxlZ2FsIGZvciBhIHRleHQgZWRpdG9yIHRvIHdyYXAgbGluZXMuICBUaGlzIGlzIHNpbWlsYXIgdG8gd29yZCBicmVha2luZywgYnV0CisgKiBub3QgdGhlIHNhbWU6IHB1bmN0dWF0aW9uIGFuZCB3aGl0ZXNwYWNlIGFyZSBnZW5lcmFsbHkga2VwdCB3aXRoIHdvcmRzICh5b3UgZG9uJ3QKKyAqIHdhbnQgYSBsaW5lIHRvIHN0YXJ0IHdpdGggd2hpdGVzcGFjZSwgZm9yIGV4YW1wbGUpLCBhbmQgc29tZSBzcGVjaWFsIGNoYXJhY3RlcnMKKyAqIGNhbiBmb3JjZSBhIHBvc2l0aW9uIHRvIGJlIGNvbnNpZGVyZWQgYSBsaW5lLWJyZWFrIHBvc2l0aW9uIG9yIHByZXZlbnQgYSBwb3NpdGlvbgorICogZnJvbSBiZWluZyBhIGxpbmUtYnJlYWsgcG9zaXRpb24uCisgKiA8bGk+Z2V0Q2hhcmFjdGVySW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBiZXR3ZWVuCisgKiBsb2dpY2FsIGNoYXJhY3RlcnMuICBCZWNhdXNlIG9mIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIFVuaWNvZGUgZW5jb2RpbmcsIGEgbG9naWNhbAorICogY2hhcmFjdGVyIG1heSBiZSBzdG9yZWQgaW50ZXJuYWxseSBhcyBtb3JlIHRoYW4gb25lIFVuaWNvZGUgY29kZSBwb2ludC4gIChBIHdpdGggYW4KKyAqIHVtbGF1dCBtYXkgYmUgc3RvcmVkIGFzIGFuIGEgZm9sbG93ZWQgYnkgYSBzZXBhcmF0ZSBjb21iaW5pbmcgdW1sYXV0IGNoYXJhY3RlciwKKyAqIGZvciBleGFtcGxlLCBidXQgdGhlIHVzZXIgc3RpbGwgdGhpbmtzIG9mIGl0IGFzIG9uZSBjaGFyYWN0ZXIuKSAgVGhpcyBpdGVyYXRvciBhbGxvd3MKKyAqIHZhcmlvdXMgcHJvY2Vzc2VzIChlc3BlY2lhbGx5IHRleHQgZWRpdG9ycykgdG8gdHJlYXQgYXMgY2hhcmFjdGVycyB0aGUgdW5pdHMgb2YgdGV4dAorICogdGhhdCBhIHVzZXIgd291bGQgdGhpbmsgb2YgYXMgY2hhcmFjdGVycywgcmF0aGVyIHRoYW4gdGhlIHVuaXRzIG9mIHRleHQgdGhhdCB0aGUKKyAqIGNvbXB1dGVyIHNlZXMgYXMgImNoYXJhY3RlcnMiLjwvdWw+CisgKgorICogQnJlYWtJdGVyYXRvcidzIGludGVyZmFjZSBmb2xsb3dzIGFuICJpdGVyYXRvciIgbW9kZWwgKGhlbmNlIHRoZSBuYW1lKSwgbWVhbmluZyBpdAorICogaGFzIGEgY29uY2VwdCBvZiBhICJjdXJyZW50IHBvc2l0aW9uIiBhbmQgbWV0aG9kcyBsaWtlIGZpcnN0KCksIGxhc3QoKSwgbmV4dCgpLAorICogYW5kIHByZXZpb3VzKCkgdGhhdCB1cGRhdGUgdGhlIGN1cnJlbnQgcG9zaXRpb24uICBBbGwgQnJlYWtJdGVyYXRvcnMgdXBob2xkIHRoZQorICogZm9sbG93aW5nIGludmFyaWFudHM6CisgKiA8dWw+PGxpPlRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgdGV4dCBhcmUgYWx3YXlzIHRyZWF0ZWQgYXMgYm91bmRhcnkgcG9zaXRpb25zLgorICogPGxpPlRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBhbHdheXMgYSBib3VuZGFyeSBwb3NpdGlvbiAocmFuZG9tLQorICogYWNjZXNzIG1ldGhvZHMgbW92ZSB0aGUgaXRlcmF0b3IgdG8gdGhlIG5lYXJlc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIG9yCisgKiBhZnRlciB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLCBub3QgX3RvXyB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uKS4KKyAqIDxsaT5ET05FIGlzIHVzZWQgYXMgYSBmbGFnIHRvIGluZGljYXRlIHdoZW4gaXRlcmF0aW9uIGhhcyBzdG9wcGVkLiAgRE9ORSBpcyBvbmx5CisgKiByZXR1cm5lZCB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoZSBlbmQgb2YgdGhlIHRleHQgYW5kIHRoZSB1c2VyIGNhbGxzIG5leHQoKSwKKyAqIG9yIHdoZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCBhbmQgdGhlIHVzZXIgY2FsbHMKKyAqIHByZXZpb3VzKCkuCisgKiA8bGk+QnJlYWsgcG9zaXRpb25zIGFyZSBudW1iZXJlZCBieSB0aGUgcG9zaXRpb25zIG9mIHRoZSBjaGFyYWN0ZXJzIHRoYXQgZm9sbG93CisgKiB0aGVtLiAgVGh1cywgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoZSBwb3NpdGlvbiBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlcgorICogaXMgMCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgMSwgYW5kIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUKKyAqIGxhc3QgY2hhcmFjdGVyIGlzIDEgcGx1cyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgKiA8bGk+VGhlIGNsaWVudCBjYW4gY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiBhbiBpdGVyYXRvciwgb3IgdGhlIHRleHQgaXQgYW5hbHl6ZXMsCisgKiBhdCB3aWxsLCBidXQgY2Fubm90IGNoYW5nZSB0aGUgYmVoYXZpb3IuICBJZiB0aGUgdXNlciB3YW50cyBkaWZmZXJlbnQgYmVoYXZpb3IsIGhlCisgKiBtdXN0IGluc3RhbnRpYXRlIGEgbmV3IGl0ZXJhdG9yLjwvdWw+CisgKgorICogQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0aGUgdGV4dCBpdCBhbmFseXplcyB0aHJvdWdoIGEgQ2hhcmFjdGVySXRlcmF0b3IsIHdoaWNoIG1ha2VzCisgKiBpdCBwb3NzaWJsZSB0byB1c2UgQnJlYWtJdGVyYXRvciB0byBhbmFseXplIHRleHQgaW4gYW55IHRleHQtc3RvcmFnZSB2ZWhpY2xlIHRoYXQKKyAqIHByb3ZpZGVzIGEgQ2hhcmFjdGVySXRlcmF0b3IgaW50ZXJmYWNlLgorICoKKyAqIDxiPk5PVEU6PC9iPiAgU29tZSB0eXBlcyBvZiBCcmVha0l0ZXJhdG9yIGNhbiB0YWtlIGEgbG9uZyB0aW1lIHRvIGNyZWF0ZSwgYW5kCisgKiBpbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBhcmUgbm90IGN1cnJlbnRseSBjYWNoZWQgYnkgdGhlIHN5c3RlbS4gIEZvcgorICogb3B0aW1hbCBwZXJmb3JtYW5jZSwga2VlcCBpbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBhcm91bmQgYXMgbG9uZyBhcyBtYWtlcworICogc2Vuc2UuICBGb3IgZXhhbXBsZSwgd2hlbiB3b3JkLXdyYXBwaW5nIGEgZG9jdW1lbnQsIGRvbid0IGNyZWF0ZSBhbmQgZGVzdHJveSBhCisgKiBuZXcgQnJlYWtJdGVyYXRvciBmb3IgZWFjaCBsaW5lLiAgQ3JlYXRlIG9uZSBicmVhayBpdGVyYXRvciBmb3IgdGhlIHdob2xlIGRvY3VtZW50CisgKiAob3Igd2hhdGV2ZXIgc3RyZXRjaCBvZiB0ZXh0IHlvdSdyZSB3cmFwcGluZykgYW5kIHVzZSBpdCB0byBkbyB0aGUgd2hvbGUgam9iIG9mCisgKiB3cmFwcGluZyB0aGUgdGV4dC4KKyAqCisgICogPFA+CisgKiA8c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+OjxQPgorICogQ3JlYXRpbmcgYW5kIHVzaW5nIHRleHQgYm91bmRhcmllcworICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICogICAgICBpZiAoYXJncy5sZW5ndGggPT0gMSkgeworICogICAgICAgICAgU3RyaW5nIHN0cmluZ1RvRXhhbWluZSA9IGFyZ3NbMF07CisgKiAgICAgICAgICAvL3ByaW50IGVhY2ggd29yZCBpbiBvcmRlcgorICogICAgICAgICAgQnJlYWtJdGVyYXRvciBib3VuZGFyeSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgKiAgICAgICAgICBib3VuZGFyeS5zZXRUZXh0KHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludEVhY2hGb3J3YXJkKGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgLy9wcmludCBlYWNoIHNlbnRlbmNlIGluIHJldmVyc2Ugb3JkZXIKKyAqICAgICAgICAgIGJvdW5kYXJ5ID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisgKiAgICAgICAgICBib3VuZGFyeS5zZXRUZXh0KHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludEVhY2hCYWNrd2FyZChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50Rmlyc3QoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludExhc3QoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGVhY2ggZWxlbWVudCBpbiBvcmRlcgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50RWFjaEZvcndhcmQoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LmZpcnN0KCk7CisgKiAgICAgZm9yIChpbnQgZW5kID0gYm91bmRhcnkubmV4dCgpOworICogICAgICAgICAgZW5kICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAqICAgICAgICAgIHN0YXJ0ID0gZW5kLCBlbmQgPSBib3VuZGFyeS5uZXh0KCkpIHsKKyAqICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGVhY2ggZWxlbWVudCBpbiByZXZlcnNlIG9yZGVyCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRFYWNoQmFja3dhcmQoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5sYXN0KCk7CisgKiAgICAgZm9yIChpbnQgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpOworICogICAgICAgICAgc3RhcnQgIT0gQnJlYWtJdGVyYXRvci5ET05FOworICogICAgICAgICAgZW5kID0gc3RhcnQsIHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKSkgeworICogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqICAgICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBmaXJzdCBlbGVtZW50CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRGaXJzdChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkuZmlyc3QoKTsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkubmV4dCgpOworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgbGFzdCBlbGVtZW50CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRMYXN0KEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkubGFzdCgpOworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCB0aGUgZWxlbWVudCBhdCBhIHNwZWNpZmllZCBwb3NpdGlvbgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50QXQoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgaW50IHBvcywgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5mb2xsb3dpbmcocG9zKTsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpOworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogRmluZCB0aGUgbmV4dCB3b3JkCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIGludCBuZXh0V29yZFN0YXJ0QWZ0ZXIoaW50IHBvcywgU3RyaW5nIHRleHQpIHsKKyAqICAgICBCcmVha0l0ZXJhdG9yIHdiID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAqICAgICB3Yi5zZXRUZXh0KHRleHQpOworICogICAgIGludCBsYXN0ID0gd2IuZm9sbG93aW5nKHBvcyk7CisgKiAgICAgaW50IGN1cnJlbnQgPSB3Yi5uZXh0KCk7CisgKiAgICAgd2hpbGUgKGN1cnJlbnQgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgKiAgICAgICAgIGZvciAoaW50IHAgPSBsYXN0OyBwIDwgY3VycmVudDsgcCsrKSB7CisgKiAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmlzTGV0dGVyKHRleHQuY2hhckF0KHApKQorICogICAgICAgICAgICAgICAgIHJldHVybiBsYXN0OworICogICAgICAgICB9CisgKiAgICAgICAgIGxhc3QgPSBjdXJyZW50OworICogICAgICAgICBjdXJyZW50ID0gd2IubmV4dCgpOworICogICAgIH0KKyAqICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICogfQorICogPC9wcmU+CisgKiAoVGhlIGl0ZXJhdG9yIHJldHVybmVkIGJ5IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCkgaXMgdW5pcXVlIGluIHRoYXQKKyAqIHRoZSBicmVhayBwb3NpdGlvbnMgaXQgcmV0dXJucyBkb24ndCByZXByZXNlbnQgYm90aCB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUKKyAqIHRoaW5nIGJlaW5nIGl0ZXJhdGVkIG92ZXIuICBUaGF0IGlzLCBhIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIHJldHVybnMgYnJlYWtzCisgKiB0aGF0IGVhY2ggcmVwcmVzZW50IHRoZSBlbmQgb2Ygb25lIHNlbnRlbmNlIGFuZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0LgorICogV2l0aCB0aGUgd29yZC1icmVhayBpdGVyYXRvciwgdGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0d28gYm91bmRhcmllcyBtaWdodCBiZSBhCisgKiB3b3JkLCBvciB0aGV5IG1pZ2h0IGJlIHRoZSBwdW5jdHVhdGlvbiBvciB3aGl0ZXNwYWNlIGJldHdlZW4gdHdvIHdvcmRzLiAgVGhlCisgKiBhYm92ZSBjb2RlIHVzZXMgYSBzaW1wbGUgaGV1cmlzdGljIHRvIGRldGVybWluZSB3aGljaCBib3VuZGFyeSBpcyB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIHdvcmQ6IElmIHRoZSBjaGFyYWN0ZXJzIGJldHdlZW4gdGhpcyBib3VuZGFyeSBhbmQgdGhlIG5leHQgYm91bmRhcnkKKyAqIGluY2x1ZGUgYXQgbGVhc3Qgb25lIGxldHRlciAodGhpcyBjYW4gYmUgYW4gYWxwaGFiZXRpY2FsIGxldHRlciwgYSBDSksgaWRlb2dyYXBoLAorICogYSBIYW5ndWwgc3lsbGFibGUsIGEgS2FuYSBjaGFyYWN0ZXIsIGV0Yy4pLCB0aGVuIHRoZSB0ZXh0IGJldHdlZW4gdGhpcyBib3VuZGFyeQorICogYW5kIHRoZSBuZXh0IGlzIGEgd29yZDsgb3RoZXJ3aXNlLCBpdCdzIHRoZSBtYXRlcmlhbCBiZXR3ZWVuIHdvcmRzLikKKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqCisgKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50cyBDbG9uZWFibGUKK3sKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJicmVha2l0ZXJhdG9yIik7CisgICAgCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIFRoZXJlIGlzIG5vIHN0YXRlIHRoYXQgaXMgY2FycmllZCBieSB0aGlzIGFic3RyYWN0CisgICAgICogYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQnJlYWtJdGVyYXRvcigpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb25lIG1ldGhvZC4gIENyZWF0ZXMgYW5vdGhlciBCcmVha0l0ZXJhdG9yIHdpdGggdGhlIHNhbWUgYmVoYXZpb3IgYW5kCisgICAgICogY3VycmVudCBzdGF0ZSBhcyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjbG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRlciBhbGwgdmFsaWQKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uLiAgVGhpcyBpcyBhbHdheXMgdGhlIGJlZ2lubmluZworICAgICAqIGluZGV4IG9mIHRoZSB0ZXh0IHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgb3Zlci4gIEZvciBleGFtcGxlLCBpZgorICAgICAqIHRoZSBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIGEgd2hvbGUgc3RyaW5nLCB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgKiBhbHdheXMgcmV0dXJuIDAuICBUaGlzIGZ1bmN0aW9uIGFsc28gdXBkYXRlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICogdG8gcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmV0Y2ggb2YgdGV4dAorICAgICAqIGJlaW5nIGJyb2tlbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGZpcnN0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24uICBUaGlzIGlzIGFsd2F5cyB0aGUgInBhc3QtdGhlLWVuZCIKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYgdGhlCisgICAgICogaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZyAoY2FsbCBpdCAidGV4dCIpLCB0aGlzIGZ1bmN0aW9uCisgICAgICogd2lsbCBhbHdheXMgcmV0dXJuIHRleHQubGVuZ3RoKCkuICBUaGlzIGZ1bmN0aW9uIGFsc28gdXBkYXRlZCB0aGUKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHN0cmV0Y2ggb2YgdGV4dAorICAgICAqIGJlaW5nIGJyb2tlbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxhc3QoKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzIGZvcndhcmQgaW4gdGhlIHRleHQgKGEgbmVnYXRpdmUKKyAgICAgKiBudW1iZXIsIHRoZXJlZm9yZSwgYWR2YW5jZXMgYmFja3dhcmRzKS4gIElmIHRoaXMgY2F1c2VzIHRoZSBpdGVyYXRvcgorICAgICAqIHRvIGFkdmFuY2Ugb2ZmIGVpdGhlciBlbmQgb2YgdGhlIHRleHQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FOworICAgICAqIG90aGVyd2lzZSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgKiBib3VuZGFyeS4gIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgbmV4dCgpIG9yCisgICAgICogcHJldmlvdXMoKSBuIHRpbWVzLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIgb2YgYm91bmRhcmllcyB0byBhZHZhbmNlIG92ZXIgKGlmIHBvc2l0aXZlLCBtb3ZlcworICAgICAqIGZvcndhcmQ7IGlmIG5lZ2F0aXZlLCBtb3ZlcyBiYWNrd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBib3VuZGFyeSBuIGJvdW5kYXJpZXMgZnJvbSB0aGUgY3VycmVudAorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbiwgb3IgRE9ORSBpZiBtb3ZpbmcgbiBib3VuZGFyaWVzIGNhdXNlcyB0aGUgaXRlcmF0b3IKKyAgICAgKiB0byBhZHZhbmNlIG9mZiBlaXRoZXIgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbmV4dChpbnQgbik7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZm9yd2FyZCBvbmUgYm91bmRhcnkuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBuZXh0IGJvdW5kYXJ5IHBvc2l0aW9uIGFmdGVyIHRoZQorICAgICAqIGN1cnJlbnQgcG9zaXRpb24sIGFuZCB0aGlzIGlzIGFsc28gdGhlIHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQuICBJZgorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBsYXN0KCksIG9yIHRvCisgICAgICogRE9ORSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIERPTkUgYW5kIHNldHMgdGhlIGN1cnJlbnQgcG9zaXRpb24gdG8KKyAgICAgKiBET05FLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbmV4dCgpOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGJhY2t3YXJkIG9uZSBib3VuZGFyeS4gIFRoZSBjdXJyZW50IGl0ZXJhdGlvbgorICAgICAqIHBvc2l0aW9uIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlCisgICAgICogdGhlIGN1cnJlbnQgcG9zaXRpb24sIGFuZCB0aGlzIGlzIGFsc28gdGhlIHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQuICBJZgorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBmaXJzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcHJldmlvdXMoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gYmUgdGhlIGZpcnN0CisgICAgICogYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICAoV2hldGhlciB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24gaXMgaXRzZWxmIGEgYm91bmRhcnkgcG9zaXRpb24gb3Igbm90IGRvZXNuJ3QKKyAgICAgKiBtYXR0ZXItLSB0aGlzIGZ1bmN0aW9uIGFsd2F5cyBtb3ZlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAqIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uKSAgSWYgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGlzIHRoZSBwYXN0LXRoZS1lbmQgcG9zaXRpb24sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZworICAgICAqICJvZmZzZXQiICh3aGV0aGVyIG9yIG5vdCAib2Zmc2V0IiBpdHNlbGYgaXMgYSBib3VuZGFyeSBwb3NpdGlvbiksCisgICAgICogb3IgRE9ORSBpZiAib2Zmc2V0IiBpcyB0aGUgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGZvbGxvd2luZyhpbnQgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gYmUgdGhlIGxhc3QKKyAgICAgKiBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gIChXaGV0aGVyIHRoZQorICAgICAqIHNwZWNpZmllZCBwb3NpdGlvbiBpcyBpdHNlbGYgYSBib3VuZGFyeSBwb3NpdGlvbiBvciBub3QgZG9lc24ndAorICAgICAqIG1hdHRlci0tIHRoaXMgZnVuY3Rpb24gYWx3YXlzIG1vdmVzIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlCisgICAgICogbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4pICBJZiB0aGUgc3BlY2lmaWVkCisgICAgICogcG9zaXRpb24gaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLCByZXR1cm5zIERPTkUuCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgY2hhcmFjdGVyIHBvc2l0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIHByZWNlZGluZworICAgICAqICJvZmZzZXQiICh3aGV0aGVyIG9mIG5vdCAib2Zmc2V0IiBpdHNlbGYgaXMgYSBib3VuZGFyeSBwb3NpdGlvbiksCisgICAgICogb3IgRE9ORSBpZiAib2Zmc2V0IiBpcyB0aGUgc3RhcnRpbmcgb2Zmc2V0IG9mIHRoZSBpdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZWNlZGluZyhpbnQgb2Zmc2V0KSB7CisgICAgICAgIC8vIE5PVEU6ICBUaGlzIGltcGxlbWVudGF0aW9uIGlzIGhlcmUgc29sZWx5IGJlY2F1c2Ugd2UgY2FuJ3QgYWRkIG5ldworICAgICAgICAvLyBhYnN0cmFjdCBtZXRob2RzIHRvIGFuIGV4aXN0aW5nIGNsYXNzLiAgVGhlcmUgaXMgYWxtb3N0IEFMV0FZUyBhCisgICAgICAgIC8vIGJldHRlciwgZmFzdGVyIHdheSB0byBkbyB0aGlzLgorICAgICAgICBpbnQgcG9zID0gZm9sbG93aW5nKG9mZnNldCk7CisgICAgICAgIHdoaWxlIChwb3MgPj0gb2Zmc2V0ICYmIHBvcyAhPSBET05FKQorICAgICAgICAgICAgcG9zID0gcHJldmlvdXMoKTsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIElmIHRoZQorICAgICAqIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb247IGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLCB0aGUgY3VycmVudAorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgYXMgdGhvdWdoIGZvbGxvd2luZygpIGhhZCBiZWVuIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCb3VuZGFyeShpbnQgb2Zmc2V0KSB7CisgICAgICAgIC8vIEFnYWluLCB0aGlzIGlzIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyBwcm92aWRlZCBzb2xlbHkgYmVjYXVzZQorICAgICAgICAvLyB3ZSBjb3VsZG4ndCBhZGQgYSBuZXcgYWJzdHJhY3QgbWV0aG9kIHRvIGFuIGV4aXN0aW5nIGNsYXNzLiAgVGhlIHJlYWwKKyAgICAgICAgLy8gaW1wbGVtZW50YXRpb25zIHdpbGwgdXN1YWxseSBuZWVkIHRvIGRvIGEgbGl0dGxlIG1vcmUgd29yay4KKyAgICAgICAgaWYgKG9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZm9sbG93aW5nKG9mZnNldCAtIDEpID09IG9mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGl0ZXJhdG9yJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBpdGVyYXRvcidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjdXJyZW50KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBGb3IgYXQgbGVhc3Qgc29tZSBzdWJjbGFzc2VzIG9mIEJyZWFrSXRlcmF0b3IsIHRoaXMgaXMgYSByZWZlcmVuY2UKKyAgICAgKiB0byB0aGUgPGI+YWN0dWFsIGl0ZXJhdG9yIGJlaW5nIHVzZWQ8L2I+IGJ5IHRoZSBCcmVha0l0ZXJhdG9yLAorICAgICAqIGFuZCB0aGVyZWZvcmUsIHRoaXMgZnVuY3Rpb24ncyByZXR1cm4gdmFsdWUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMKKyAgICAgKiA8dHQ+Y29uc3Q8L3R0Pi4gIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgYWJvdXQgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICAgKiBvZiB0aGlzIGl0ZXJhdG9yIHdoZW4gaXQgaXMgcmV0dXJuZWQuICBJZiB5b3UgbmVlZCB0byBtb3ZlIHRoYXQKKyAgICAgKiBwb3NpdGlvbiB0byBleGFtaW5lIHRoZSB0ZXh0LCBjbG9uZSB0aGlzIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIGZpcnN0LgorICAgICAqIEByZXR1cm4gQSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBDaGFyYWN0ZXJJdGVyYXRvciBnZXRUZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGUgbmV3CisgICAgICogcGllY2Ugb2YgdGV4dCBpcyBwYXNzZWQgaW4gYXMgYSBTdHJpbmcsIGFuZCB0aGUgY3VycmVudAorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcuCisgICAgICogKFRoZSBvbGQgdGV4dCBpcyBkcm9wcGVkLikKKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBIFN0cmluZyBjb250YWluaW5nIHRoZSB0ZXh0IHRvIGFuYWx5emUgd2l0aAorICAgICAqIHRoaXMgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyBuZXdUZXh0KQorICAgIHsKKyAgICAgICAgc2V0VGV4dChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3VGV4dCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoZQorICAgICAqIEJyZWFrSXRlcmF0b3IgaXMgcGFzc2VkIGEgQ2hhcmFjdGVySXRlcmF0b3IgdGhyb3VnaCB3aGljaAorICAgICAqIGl0IHdpbGwgYWNjZXNzIHRoZSB0ZXh0IGl0c2VsZi4gIFRoZSBjdXJyZW50IGl0ZXJhdGlvbgorICAgICAqIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBDaGFyYWN0ZXJJdGVyYXRvcidzIHN0YXJ0IGluZGV4LgorICAgICAqIChUaGUgb2xkIGl0ZXJhdG9yIGlzIGRyb3BwZWQuKQorICAgICAqIEBwYXJhbSBuZXdUZXh0IEEgQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSB0ZXh0CisgICAgICogdG8gYW5hbHl6ZSB3aXRoIHRoaXMgQnJlYWtJdGVyYXRvciAodGhlIGl0ZXJhdG9yJ3MgY3VycmVudAorICAgICAqIHBvc2l0aW9uIGlzIGlnbm9yZWQsIGJ1dCBpdHMgb3RoZXIgc3RhdGUgaXMgc2lnbmlmaWNhbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldFRleHQoQ2hhcmFjdGVySXRlcmF0b3IgbmV3VGV4dCk7CisKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9DSEFSQUNURVIgPSAwOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX1dPUkQgPSAxOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX0xJTkUgPSAyOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX1NFTlRFTkNFID0gMzsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9USVRMRSA9IDQ7CisKKyAgICAvKiogQHNpbmNlIElDVSAyLjggKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9DT1VOVCA9IDU7CisKKyAgICAvKiogQGludGVybmFsICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU29mdFJlZmVyZW5jZVtdIGl0ZXJDYWNoZSA9IG5ldyBTb2Z0UmVmZXJlbmNlWzVdOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUncyBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0V29yZEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRXb3JkSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIGxvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZQorICAgICAqIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRXb3JkSW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUod2hlcmUpLCBLSU5EX1dPUkQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIGxvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZQorICAgICAqIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFdvcmRJbnN0YW5jZShVTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfV09SRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbCBsaW5lLQorICAgICAqIHdyYXBwaW5nIHBvc2l0aW9ucy4gIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgdGV4dCBiZWluZyBicm9rZW4KKyAgICAgKiBpcyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsCisgICAgICogbGluZS13cmFwcGluZyBwb3NpdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldExpbmVJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0TGluZUluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsIGxpbmUtCisgICAgICogd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBicm9rZW4uCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUod2hlcmUpLCBLSU5EX0xJTkUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwgbGluZS0KKyAgICAgKiB3cmFwcGluZyBwb3NpdGlvbnMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGJyb2tlbi4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsCisgICAgICogbGluZS13cmFwcGluZyBwb3NpdGlvbnMuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKFVMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwgS0lORF9MSU5FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4gIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGlzCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldENoYXJhY3Rlckluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRDaGFyYWN0ZXJJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZSh3aGVyZSksIEtJTkRfQ0hBUkFDVEVSKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX0NIQVJBQ1RFUik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncworICAgICAqIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0U2VudGVuY2VJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0U2VudGVuY2VJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUod2hlcmUpLCBLSU5EX1NFTlRFTkNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRTZW50ZW5jZUluc3RhbmNlKFVMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwgS0lORF9TRU5URU5DRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzLgorICAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncworICAgICAqIGxhbmd1YWdlLiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IgCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUgNC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVzZSBhIHdvcmQgYm91bmRhcnkgaXRlcmF0b3IuIHtAbGluayAjZ2V0V29yZEluc3RhbmNlfQorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0VGl0bGVJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0VGl0bGVJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzLgorICAgICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMgYXMgZGVzY3JpYmVkIGZvciAKKyAgICAgKiBVbmljb2RlIDMuMiBvbmx5LiBGb3IgVW5pY29kZSA0LjAgYW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0ZXJhdGlvbiwKKyAgICAgKiBwbGVhc2UgdXNlIFdvcmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5rICNnZXRXb3JkSW5zdGFuY2V9CisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0VGl0bGVJbnN0YW5jZShMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZSh3aGVyZSksIEtJTkRfVElUTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IgCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUgNC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVzZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjZ2V0V29yZEluc3RhbmNlfQorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0VGl0bGVJbnN0YW5jZShVTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfVElUTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNlIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQ2xvbmVzIG9mIHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBpdGVyIHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGFkb3B0LgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIExvY2FsZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBhcmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IgaXRlciwgTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVySW5zdGFuY2UoaXRlciwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSwga2luZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsgaXRlcmF0b3Igb2YgdGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBDbG9uZXMgb2YgdGhlIGl0ZXJhdG9yIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBpZiBhIHJlcXVlc3QgZm9yIGEgYnJlYWsgaXRlcmF0b3Igb2YgdGhlIGdpdmVuIGtpbmQgbWF0Y2hlcyBvciBmYWxscyBiYWNrIHRvCisgICAgICogdGhpcyBsb2NhbGUuCisgICAgICogQHBhcmFtIGl0ZXIgdGhlIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UgdG8gYWRvcHQuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUgdHlwZSBvZiBpdGVyYXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHJldHVybiBhIHJlZ2lzdHJ5IGtleSB0aGF0IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhpcyBpbnN0YW5jZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yIGl0ZXIsIFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCkgeworICAgICAgICAvLyBJZiB0aGUgcmVnaXN0ZXJlZCBvYmplY3QgbWF0Y2hlcyB0aGUgb25lIGluIHRoZSBjYWNoZSwgdGhlbgorICAgICAgICAvLyBmbHVzaCB0aGUgY2FjaGVkIG9iamVjdC4KKyAgICAgICAgaWYgKGl0ZXJDYWNoZVtraW5kXSAhPSBudWxsKSB7CisgICAgICAgICAgICBCcmVha0l0ZXJhdG9yQ2FjaGUgY2FjaGUgPSAoQnJlYWtJdGVyYXRvckNhY2hlKSBpdGVyQ2FjaGVba2luZF0uZ2V0KCk7CisgICAgICAgICAgICBpZiAoY2FjaGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChjYWNoZS5nZXRMb2NhbGUoKS5lcXVhbHMobG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICBpdGVyQ2FjaGVba2luZF0gPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLnJlZ2lzdGVySW5zdGFuY2UoaXRlciwgbG9jYWxlLCBraW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJldmlvdXNseS1yZWdpc3RlcmVkIEJyZWFrSXRlcmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5lZCBmcm9tIHRoZQorICAgICAqIHJlZ2lzdGVyIGNhbGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFmdGVyIHRoaXMgY2FsbCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFnYWluLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIHJlZ2lzdHJ5IGtleSByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwgdG8gcmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3IgZm9yIHRoZSBrZXkgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgIGlmIChrZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVnaXN0cnkga2V5IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiB3ZSBkb24ndCBkbyBjb2RlIGNvdmVyYWdlIGZvciB0aGUgZm9sbG93aW5nIGxpbmVzCisgICAgICAgIC8vIGJlY2F1c2UgaW4gZ2V0QnJlYWtJbnN0YW5jZSB3ZSBhbHdheXMgaW5zdGFudGlhdGUgdGhlIHNoaW0sCisgICAgICAgIC8vIGFuZCB0ZXN0IGV4ZWN1dGlvbiBpcyBzdWNoIHRoYXQgd2UgYWx3YXlzIGluc3RhbnRpYXRlIGEKKyAgICAgICAgLy8gYnJlYWtpdGVyYXRvciBiZWZvcmUgd2UgZ2V0IHRvIHRoZSBicmVhayBpdGVyYXRvciB0ZXN0cy4KKyAgICAgICAgLy8gdGhpcyBpcyBmb3IgbW9kdWxhcml6YXRpb24sIGFuZCB3ZSBjb3VsZCByZW1vdmUgdGhlCisgICAgICAgIC8vIGRlcGVuZGVuY2llcyBpbiBnZXRCcmVha0luc3RhbmNlIGJ5IHJld3JpdGluZyBwYXJ0IG9mIHRoZQorICAgICAgICAvLyBMb2NhbGVEYXRhIGNvZGUsIG9yIHBlcmhhcHMgYnkgYWNjZXB0aW5nIGl0IGludG8gdGhlCisgICAgICAgIC8vIG1vZHVsZS4KKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICBpZiAoc2hpbSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBkb24ndCBrbm93IHdoYXQgaXMgYmVpbmcgdW5yZWdpc3RlcmVkCisgICAgICAgICAgICAvLyAtLSB3aGF0IGBraW5kJyBhbmQgd2hhdCBsb2NhbGUgLS0gc28gd2UgZmx1c2ggYWxsCisgICAgICAgICAgICAvLyBjYWNoZXMuICBUaGlzIGlzIHNhZmUgYnV0IGluZWZmaWNpZW50IGlmIHBlb3BsZSBhcmUKKyAgICAgICAgICAgIC8vIGFjdGl2ZWx5IHJlZ2lzdGVyaW5nIGFuZCB1bnJlZ2lzdGVyaW5nLgorICAgICAgICAgICAgZm9yIChpbnQga2luZD0wOyBraW5kPEtJTkRfQ09VTlQ7ICsra2luZCkgeworICAgICAgICAgICAgICAgIGl0ZXJDYWNoZVtraW5kXSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc2hpbS51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLy9DTE9WRVI6T04KKyAgICB9CisKKyAgICAvLyBlbmQgb2YgcmVnaXN0cmF0aW9uCisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBwYXJ0aWN1bGFyIGtpbmQgb2YgQnJlYWtJdGVyYXRvciBmb3IgYSBsb2NhbGUuCisgICAgICogQXZvaWRzIHdyaXRpbmcgYSBzd2l0Y2ggc3RhdGVtZW50IHdpdGggZ2V0WFlaSW5zdGFuY2Uod2hlcmUpIGNhbGxzLiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0QnJlYWtJbnN0YW5jZShVTG9jYWxlIHdoZXJlLCBpbnQga2luZCkgeworCisgICAgICAgIGlmIChpdGVyQ2FjaGVba2luZF0gIT0gbnVsbCkgeworICAgICAgICAgICAgQnJlYWtJdGVyYXRvckNhY2hlIGNhY2hlID0gKEJyZWFrSXRlcmF0b3JDYWNoZSkgaXRlckNhY2hlW2tpbmRdLmdldCgpOworICAgICAgICAgICAgaWYgKGNhY2hlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2FjaGUuZ2V0TG9jYWxlKCkuZXF1YWxzKHdoZXJlKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUuY3JlYXRlQnJlYWtJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHNpZ2gsIGFsbCB0byBhdm9pZCBsaW5raW5nIGluIElDVUxvY2FsZURhdGEuLi4KKyAgICAgICAgQnJlYWtJdGVyYXRvciByZXN1bHQgPSBnZXRTaGltKCkuY3JlYXRlQnJlYWtJdGVyYXRvcih3aGVyZSwga2luZCk7CisKKyAgICAgICAgQnJlYWtJdGVyYXRvckNhY2hlIGNhY2hlID0gbmV3IEJyZWFrSXRlcmF0b3JDYWNoZSh3aGVyZSwgcmVzdWx0KTsKKyAgICAgICAgaXRlckNhY2hlW2tpbmRdID0gbmV3IFNvZnRSZWZlcmVuY2UoY2FjaGUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQnJlYWtJdGVyYXRvcnMgY2FuIGJlIHVzZWQuCisgICAgICogQHJldHVybiBBbiBhcnJheSBvZiBMb2NhbGVzLiAgQWxsIG9mIHRoZSBsb2NhbGVzIGluIHRoZSBhcnJheSBjYW4KKyAgICAgKiBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYSBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgLy8gdG8gYXZvaWQgbGlua2luZyBJQ1VMb2NhbGVEYXRhCisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIEJyZWFrSXRlcmF0b3JzIGNhbiBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gQW4gYXJyYXkgb2YgTG9jYWxlcy4gIEFsbCBvZiB0aGUgbG9jYWxlcyBpbiB0aGUgYXJyYXkgY2FuCisgICAgICogYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGEgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpCisgICAgeworICAgICAgICAvLyB0byBhdm9pZCBsaW5raW5nIElDVUxvY2FsZURhdGEKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIEJyZWFrSXRlcmF0b3JDYWNoZSB7CisKKyAgICAgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGl0ZXI7CisgICAgICAgIHByaXZhdGUgVUxvY2FsZSB3aGVyZTsKKworICAgICAgICBCcmVha0l0ZXJhdG9yQ2FjaGUoVUxvY2FsZSB3aGVyZSwgQnJlYWtJdGVyYXRvciBpdGVyKSB7CisgICAgICAgICAgICB0aGlzLndoZXJlID0gd2hlcmU7CisgICAgICAgICAgICB0aGlzLml0ZXIgPSAoQnJlYWtJdGVyYXRvcikgaXRlci5jbG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gd2hlcmU7CisgICAgICAgIH0KKworICAgICAgICBCcmVha0l0ZXJhdG9yIGNyZWF0ZUJyZWFrSW5zdGFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gKEJyZWFrSXRlcmF0b3IpIGl0ZXIuY2xvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBCcmVha0l0ZXJhdG9yU2VydmljZVNoaW0geworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgT2JqZWN0IHJlZ2lzdGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciBpdGVyLCBVTG9jYWxlIGwsIGludCBrKTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgQnJlYWtJdGVyYXRvciBjcmVhdGVCcmVha0l0ZXJhdG9yKFVMb2NhbGUgbCwgaW50IGspOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3JTZXJ2aWNlU2hpbSBzaGltOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3JTZXJ2aWNlU2hpbSBnZXRTaGltKCkgeworICAgICAgICAvLyBOb3RlOiB0aGlzIGluc3RhbnRpYXRpb24gaXMgc2FmZSBvbiBsb29zZS1tZW1vcnktbW9kZWwgY29uZmlndXJhdGlvbnMKKyAgICAgICAgLy8gZGVzcGl0ZSBsYWNrIG9mIHN5bmNocm9uaXphdGlvbiwgc2luY2UgdGhlIHNoaW0gaW5zdGFuY2UgaGFzIG5vIHN0YXRlLS0KKyAgICAgICAgLy8gaXQncyBhbGwgaW4gdGhlIGNsYXNzIGluaXQuICBUaGUgd29yc3QgcHJvYmxlbSBpcyB3ZSBtaWdodCBpbnN0YW50aWF0ZQorICAgICAgICAvLyB0d28gc2hpbSBpbnN0YW5jZXMsIGJ1dCB0aGV5J2xsIHNoYXJlIHRoZSBzYW1lIHN0YXRlIHNvIHRoYXQncyBvay4KKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSBDbGFzcy5mb3JOYW1lKCJjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3JGYWN0b3J5Iik7CisgICAgICAgICAgICAgICAgc2hpbSA9IChCcmVha0l0ZXJhdG9yU2VydmljZVNoaW0pY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgICAgICBpZihERUJVRyl7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbTsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSAqIDxpPmFjdHVhbDwvaT4KKyAgICAgKiBsb2NhbGUgaXMgcmV0dXJuZWQgY29ycmVjdGx5LCBidXQgdGhlIDxpPnZhbGlkPC9pPiBsb2NhbGUgaXMKKyAgICAgKiBub3QsIGluIG1vc3QgY2FzZXMuCisgICAgICogQHBhcmFtIHR5cGUgdHlwZSBvZiBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQsIGVpdGhlciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFfSBvciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRX0uCisgICAgICogQHJldHVybiB0aGUgaW5mb3JtYXRpb24gc3BlY2lmaWVkIGJ5IDxpPnR5cGU8L2k+LCBvciBudWxsIGlmCisgICAgICogdGhpcyBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW4pCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVMb2NhbGUgZ2V0TG9jYWxlKFVMb2NhbGUuVHlwZSB0eXBlKSB7CisgICAgICAgIHJldHVybiB0eXBlID09IFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSA/CisgICAgICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA6IHRoaXMudmFsaWRMb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbGVzIHRoYXQgd2VyZSB1c2VkIHRvIGNyZWF0ZSB0aGlzCisgICAgICogb2JqZWN0LiAgSWYgdGhlIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEsCisgICAgICogYm90aCBhcmd1bWVudHMgc2hvdWxkIGJlIHNldCB0byBudWxsLiAgT3RoZXJ3aXNlLCBuZWl0aGVyCisgICAgICogc2hvdWxkIGJlIG51bGwuICBUaGUgYWN0dWFsIGxvY2FsZSBtdXN0IGJlIGF0IHRoZSBzYW1lIGxldmVsIG9yCisgICAgICogbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuICBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZAorICAgICAqIGZvciB1c2UgYnkgZmFjdG9yaWVzIG9yIG90aGVyIGVudGl0aWVzIHRoYXQgY3JlYXRlIG9iamVjdHMgb2YKKyAgICAgKiB0aGlzIGNsYXNzLgorICAgICAqIEBwYXJhbSB2YWxpZCB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UKKyAgICAgKiBkYXRhLCBvciBudWxsCisgICAgICogQHBhcmFtIGFjdHVhbCB0aGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzCisgICAgICogb2JqZWN0LCBvciBudWxsCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRMb2NhbGUoVUxvY2FsZSB2YWxpZCwgVUxvY2FsZSBhY3R1YWwpIHsKKyAgICAgICAgLy8gQ2hhbmdlIHRoZSBmb2xsb3dpbmcgdG8gYW4gYXNzZXJ0aW9uIGxhdGVyCisgICAgICAgIGlmICgodmFsaWQgPT0gbnVsbCkgIT0gKGFjdHVhbCA9PSBudWxsKSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICAgICAgLy8gQW5vdGhlciBjaGVjayB3ZSBjb3VsZCBkbyBpcyB0aGF0IHRoZSBhY3R1YWwgbG9jYWxlIGlzIGF0CisgICAgICAgIC8vIHRoZSBzYW1lIGxldmVsIG9yIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLgorICAgICAgICB0aGlzLnZhbGlkTG9jYWxlID0gdmFsaWQ7CisgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlID0gYWN0dWFsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZSBkYXRhLCBvciBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIHZhbGlkTG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcyBvYmplY3QsIG9yCisgICAgICogbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBhY3R1YWxMb2NhbGU7CisKKyAgICAvLyAtLS0tLS0tLSBFTkQgVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvckZhY3RvcnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3JGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY5NTJhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3JGYWN0b3J5LmphdmEKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CisKKy8qKgorICogQGF1dGhvciBSYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhpcyBnZW5lcmF0ZWQgY29tbWVudCBlZGl0IHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZSAidHlwZWNvbW1lbnQiOgorICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+VGVtcGxhdGVzLgorICogVG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBjcmVhdGlvbiBvZiB0eXBlIGNvbW1lbnRzIGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIEJyZWFrSXRlcmF0b3JGYWN0b3J5IGV4dGVuZHMgQnJlYWtJdGVyYXRvci5CcmVha0l0ZXJhdG9yU2VydmljZVNoaW0geworCisgICAgcHVibGljIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IgaXRlciwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgICAgIGl0ZXIuc2V0VGV4dChuZXcgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCIiKSk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KGl0ZXIsIGxvY2FsZSwga2luZCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoKEZhY3Rvcnkpa2V5KTsKKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEJyZWFrSXRlcmF0b3IgY3JlYXRlQnJlYWtJdGVyYXRvcihVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAvLyBUT0RPOiBjb252ZXJ0IHRvIFVMb2NhbGUgd2hlbiBzZXJ2aWNlIHN3aXRjaGVzIG92ZXIKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVCcmVha0luc3RhbmNlKGxvY2FsZSwga2luZCk7CisgICAgICAgIH0KKyAgICAgICAgVUxvY2FsZVtdIGFjdHVhbExvYyA9IG5ldyBVTG9jYWxlWzFdOworICAgICAgICBCcmVha0l0ZXJhdG9yIGl0ZXIgPSAoQnJlYWtJdGVyYXRvcilzZXJ2aWNlLmdldChsb2NhbGUsIGtpbmQsIGFjdHVhbExvYyk7CisgICAgICAgIGl0ZXIuc2V0TG9jYWxlKGFjdHVhbExvY1swXSwgYWN0dWFsTG9jWzBdKTsgLy8gc2VydmljZXMgbWFrZSBubyBkaXN0aW5jdGlvbiBiZXR3ZWVuIGFjdHVhbCAmIHZhbGlkCisgICAgICAgIHJldHVybiBpdGVyOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEJGU2VydmljZSBleHRlbmRzIElDVUxvY2FsZVNlcnZpY2UgeworICAgICAgICBCRlNlcnZpY2UoKSB7CisgICAgICAgICAgICBzdXBlcigiQnJlYWtJdGVyYXRvciIpOworCisgICAgICAgICAgICBjbGFzcyBSQkJyZWFrSXRlcmF0b3JGYWN0b3J5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIGxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQnJlYWtJbnN0YW5jZShsb2MsIGtpbmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlZ2lzdGVyRmFjdG9yeShuZXcgUkJCcmVha0l0ZXJhdG9yRmFjdG9yeSgpKTsKKworICAgICAgICAgICAgbWFya0RlZmF1bHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgZmluYWwgSUNVTG9jYWxlU2VydmljZSBzZXJ2aWNlID0gbmV3IEJGU2VydmljZSgpOworCisKKyAgICAvKiogS0lORF9OQU1FUyBhcmUgdGhlIHJlc291cmNlIGtleSB0byBiZSB1c2VkIHRvIGZldGNoIHRoZSBuYW1lIG9mIHRoZQorICAgICAqICAgICAgICAgICAgIHByZS1jb21waWxlZCBicmVhayBydWxlcy4gIFRoZSByZXNvdXJjZSBidW5kbGUgbmFtZSBpcyAiYm91bmRhcmllcyIuCisgICAgICogICAgICAgICAgICAgVGhlIHZhbHVlIGZvciBlYWNoIGtleSB3aWxsIGJlIHRoZSBydWxlcyB0byBiZSB1c2VkIGZvciB0aGUKKyAgICAgKiAgICAgICAgICAgICBzcGVjaWZpZWQgbG9jYWxlIC0gIndvcmQiIC0+ICJ3b3JkX3RoIiBmb3IgVGhhaSwgZm9yIGV4YW1wbGUuCisgICAgICogIERJQ1RJT05BUllfUE9TU0lCTEUgaW5kZXhlcyBpbiB0aGUgc2FtZSB3YXksIGFuZCBpbmRpY2F0ZXMgd2hldGhlciBhCisgICAgICogICAgICAgICAgICAgZGljdGlvbmFyeSBpcyBhIHBvc3NpYmlsaXR5IGZvciB0aGF0IHR5cGUgb2YgYnJlYWsuICBUaGlzIGlzIGp1c3QKKyAgICAgKiAgICAgICAgICAgICBhbiBvcHRpbWl6YXRpb24gdG8gYXZvaWQgYSByZXNvdXJjZSBsb29rdXAgd2hlcmUgbm8gZGljdGlvbmFyeSBpcworICAgICAqICAgICAgICAgICAgIGV2ZXIgcG9zc2libGUuCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEtJTkRfTkFNRVMgPSB7CisgICAgICAgICAgICAiZ3JhcGhlbWUiLCAid29yZCIsICJsaW5lIiwgInNlbnRlbmNlIiwgInRpdGxlIgorICAgICAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW5bXSBESUNUSU9OQVJZX1BPU1NJQkxFID0geworICAgICAgICAgICAgZmFsc2UsICAgICAgdHJ1ZSwgIHRydWUsICAgZmFsc2UsICAgICBmYWxzZQorICAgIH07CisKKworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgY3JlYXRlQnJlYWtJbnN0YW5jZShVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAgICAgCisgICAgICAgIEJyZWFrSXRlcmF0b3IgICAgaXRlciAgICAgICA9IG51bGw7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSAgcmIgICAgICAgICA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlJLSVRSX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vICBHZXQgdGhlIGJpbmFyeSBydWxlcy4gIFRoZXNlIGFyZSBuZWVkZWQgZm9yIGJvdGggbm9ybWFsIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9ycworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZm9yIERpY3Rpb25hcnkgaXRlcmF0b3JzLgorICAgICAgICAvLworICAgICAgICBJbnB1dFN0cmVhbSAgICAgIHJ1bGVTdHJlYW0gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYm91bmRhcmllcyAgICA9IChSZXNvdXJjZUJ1bmRsZSlyYi5nZXRPYmplY3QoImJvdW5kYXJpZXMiKTsgCisgICAgICAgICAgICBTdHJpbmcgICAgICAgICB0eXBlS2V5ICAgICAgID0gS0lORF9OQU1FU1traW5kXTsKKyAgICAgICAgICAgIFN0cmluZyAgICAgICAgIGJya2ZuYW1lICAgICAgPSBib3VuZGFyaWVzLmdldFN0cmluZyh0eXBlS2V5KTsKKyAgICAgICAgICAgIFN0cmluZyAgICAgICAgIHJ1bGVzRmlsZU5hbWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFICtJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlJLSVRSX05BTUUrICIvIiArIGJya2ZuYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVN0cmVhbSAgICA9IElDVURhdGEuZ2V0U3RyZWFtKHJ1bGVzRmlsZU5hbWUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCksIiIsIiIpOworICAgICAgICB9CisgCisgICAgICAgIC8vCisgICAgICAgIC8vICBDaGVjayB3aGV0aGVyIGEgZGljdGlvbmFyeSBleGlzdHMsIGFuZCBjcmVhdGUgYSBEQkJJIGl0ZXJhdG9yIGlzCisgICAgICAgIC8vICAgb25lIGRvZXMuCisgICAgICAgIC8vCisgICAgICAgIGlmIChESUNUSU9OQVJZX1BPU1NJQkxFW2tpbmRdKSB7CisgICAgICAgICAgICAvLyBUaGlzIHR5cGUgb2YgYnJlYWsgaXRlcmF0b3IgY291bGQgcG90ZW50aWFsbHkgdXNlIGEgZGljdGlvbmFyeS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vSUNVUmVzb3VyY2VCdW5kbGUgZGljdFJlcyA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlyYi5nZXRPYmplY3QoIkJyZWFrRGljdGlvbmFyeURhdGEiKTsKKyAgICAgICAgICAgICAgICAvL2J5dGVbXSBkaWN0Qnl0ZXMgPSBudWxsOworICAgICAgICAgICAgICAgIC8vZGljdEJ5dGVzID0gZGljdFJlcy5nZXRCaW5hcnkoZGljdEJ5dGVzKTsKKyAgICAgICAgICAgICAgICAvL1RPRE86IEhhcmQgY29kZSB0aGlzIGZvciBub3chIGZpeCBpdCBvbmNlIENvbXBhY3RUcmllRGljdGlvbmFyeSBpcyBwb3J0ZWQKKyAgICAgICAgICAgICAgICBpZihsb2NhbGUuZXF1YWxzKCJ0aCIpKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nICBmaWxlTmFtZSA9ICJkYXRhL3RoLmJyayI7CisgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGlzICAgID0gSUNVRGF0YS5nZXRTdHJlYW0oZmlsZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBpdGVyID0gbmV3IERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IocnVsZVN0cmVhbSwgaXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gIENvdWxkbid0IGZpbmQgYSBkaWN0aW9uYXJ5LgorICAgICAgICAgICAgICAgIC8vICBUaGlzIGlzIG5vcm1hbCwgYW5kIHdpbGwgb2NjdXIgd2hlbmV2ZXIgY3JlYXRpbmcgYSB3b3JkIG9yIGxpbmUKKyAgICAgICAgICAgICAgICAvLyAgYnJlYWsgaXRlcmF0b3IgZm9yIGEgbG9jYWxlIHRoYXQgZG9lcyBub3QgaGF2ZSBhIEJyZWFrRGljdGlvbmFyeURhdGEKKyAgICAgICAgICAgICAgICAvLyAgcmVzb3VyY2UgLSBtZWFuaW5nIGZvciBhbGwgYnV0IFRoYWkuCisgICAgICAgICAgICAgICAgLy8gIEZhbGwgdGhyb3VnaCB0byBjcmVhdGluZyBhIG5vcm1hbCBSdWxlYmFzZWRCcmVha0l0ZXJhdG9yLgorICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIEFzc2VydC5mYWlsKGUpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorCisgICAgICAgIGlmIChpdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBDcmVhdGUgYSBub3JtYWwgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci4KKyAgICAgICAgICAgIC8vICAgIFdlIGhhdmUgZGV0ZXJtaW5lZCB0aGF0IHRoaXMgaXMgbm90IHN1cHBvc2VkIHRvIGJlIGEgZGljdGlvbmFyeSBpdGVyYXRvci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXIgPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldEluc3RhbmNlRnJvbUNvbXBpbGVkUnVsZXMocnVsZVN0cmVhbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vIFNob3VsZG4ndCBiZSBwb3NzaWJsZSB0byBnZXQgaGVyZS4KKyAgICAgICAgICAgICAgICAvLyBJZiBpdCBoYXBwZW5zLCB0aGUgY29tcGlsZWQgcnVsZXMgYXJlIHByb2JhYmx5IGNvcnJ1cHRlZCBpbiBzb21lIHdheS4KKyAgICAgICAgICAgICAgICBBc3NlcnQuZmFpbChlKTsKKyAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFRPRE86IERldGVybWluZSB2YWxpZCBhbmQgYWN0dWFsIGxvY2FsZSBjb3JyZWN0bHkuCisgICAgICAgIFVMb2NhbGUgdWxvYyA9IFVMb2NhbGUuZm9yTG9jYWxlKHJiLmdldExvY2FsZSgpKTsKKyAgICAgICAgaXRlci5zZXRMb2NhbGUodWxvYywgdWxvYyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaXRlcjsKKworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3YTc1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha1RyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzODMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCisKKy8qKgorICogSW5zZXJ0cyB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlcnMgYXQgd29yZCBicmVha3MuIFRvIHJlc3RyaWN0IGl0IHRvIHBhcnRpY3VsYXIgY2hhcmFjdGVycywgdXNlIGEgZmlsdGVyLgorICogVE9ETzogdGhpcyBpcyBhbiBpbnRlcm5hbCBjbGFzcywgYW5kIG9ubHkgdGVtcG9yYXJ5LiBSZW1vdmUgaXQgb25jZSB3ZSBoYXZlIFxiIG5vdGF0aW9uIGluIFRyYW5zbGl0ZXJhdG9yLgorICovCitmaW5hbCBjbGFzcyBCcmVha1RyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBiaTsKKyAgICBwcml2YXRlIFN0cmluZyBpbnNlcnRpb247CisgICAgcHJpdmF0ZSBpbnRbXSBib3VuZGFyaWVzID0gbmV3IGludFs1MF07CisgICAgcHJpdmF0ZSBpbnQgYm91bmRhcnlDb3VudCA9IDA7CisKKyAgICBwdWJsaWMgQnJlYWtUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyLCBCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgaW5zZXJ0aW9uKSB7CisgICAgICAgIHN1cGVyKElELCBmaWx0ZXIpOworICAgICAgICB0aGlzLmJpID0gYmk7CisgICAgICAgIHRoaXMuaW5zZXJ0aW9uID0gaW5zZXJ0aW9uOworICAgIH0KKworICAgIHB1YmxpYyBCcmVha1RyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgdGhpcyhJRCwgZmlsdGVyLCBudWxsLCAiICIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5zZXJ0aW9uKCkgeworICAgICAgICByZXR1cm4gaW5zZXJ0aW9uOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEluc2VydGlvbihTdHJpbmcgaW5zZXJ0aW9uKSB7CisgICAgICAgIHRoaXMuaW5zZXJ0aW9uID0gaW5zZXJ0aW9uOworICAgIH0KKworICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9yIGdldEJyZWFrSXRlcmF0b3IoKSB7CisgICAgICAgIC8vIERlZmVyIGluaXRpYWxpemF0aW9uIG9mIEJyZWFrSXRlcmF0b3IgYmVjYXVzZSBpdCBpcyBzbG93LAorICAgICAgICAvLyB0eXBpY2FsbHkgb3ZlciAyMDAwIG1zLgorICAgICAgICBpZiAoYmkgPT0gbnVsbCkgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShuZXcgVUxvY2FsZSgidGhfVEgiKSk7CisgICAgICAgIHJldHVybiBiaTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRCcmVha0l0ZXJhdG9yKEJyZWFrSXRlcmF0b3IgYmkpIHsKKyAgICAgICAgdGhpcy5iaSA9IGJpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSX09SX01BUktfTUFTSyA9CisgICAgICAgICAgKDE8PENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTE9XRVJDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5NT0RJRklFUl9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5PVEhFUl9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5DT01CSU5JTkdfU1BBQ0lOR19NQVJLKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTk9OX1NQQUNJTkdfTUFSSykKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLkVOQ0xPU0lOR19NQVJLKQorICAgICAgICA7CisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgYm91bmRhcnlDb3VudCA9IDA7CisgICAgICAgIGludCBib3VuZGFyeSA9IDA7CisgICAgICAgIGdldEJyZWFrSXRlcmF0b3IoKTsgLy8gTGF6eS1jcmVhdGUgaXQgaWYgbmVjZXNzYXJ5CisgICAgICAgIGJpLnNldFRleHQobmV3IFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IodGV4dCwgcG9zLnN0YXJ0LCBwb3MubGltaXQsIHBvcy5zdGFydCkpOworICAgICAgICAvLyBUT0RPOiBmaXggY2x1bXN5IHdvcmthcm91bmQgdXNlZCBiZWxvdy4KKyAgICAgICAgLyoKKyAgICAgICAgY2hhcltdIHRlbXBCdWZmZXIgPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgdGV4dC5nZXRDaGFycygwLCB0ZXh0Lmxlbmd0aCgpLCB0ZW1wQnVmZmVyLCAwKTsKKyAgICAgICAgYmkuc2V0VGV4dChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyh0ZW1wQnVmZmVyKSwgcG9zLnN0YXJ0LCBwb3MubGltaXQsIHBvcy5zdGFydCkpOworICAgICAgICAqLworICAgICAgICAvLyBlbmQgZGVidWdnaW5nCisKKyAgICAgICAgLy8gVG8gbWFrZSB0aGluZ3MgbXVjaCBlYXNpZXIsIHdlIHdpbGwgc3RhY2sgdGhlIGJvdW5kYXJpZXMsIGFuZCB0aGVuIGluc2VydCBhdCB0aGUgZW5kLgorICAgICAgICAvLyBnZW5lcmFsbHksIHdlIHdvbid0IG5lZWQgdG9vIG1hbnksIHNpbmNlIHdlIHdpbGwgYmUgZmlsdGVyZWQuCisKKyAgICAgICAgZm9yKGJvdW5kYXJ5ID0gYmkuZmlyc3QoKTsgYm91bmRhcnkgIT0gQnJlYWtJdGVyYXRvci5ET05FICYmIGJvdW5kYXJ5IDwgcG9zLmxpbWl0OyBib3VuZGFyeSA9IGJpLm5leHQoKSkgeworICAgICAgICAgICAgaWYgKGJvdW5kYXJ5ID09IDApIGNvbnRpbnVlOworICAgICAgICAgICAgLy8gSEFDSzogQ2hlY2sgdG8gc2VlIHRoYXQgcHJlY2VlZGluZyBpdGVtIHdhcyBhIGxldHRlcgorCisgICAgICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQodGV4dCwgYm91bmRhcnktMSk7CisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihJbnRlZ2VyLnRvU3RyaW5nKGNwLDE2KSArICIgKGJlZm9yZSk6ICIgKyB0eXBlKTsKKyAgICAgICAgICAgIGlmICgoKDE8PHR5cGUpICYgTEVUVEVSX09SX01BUktfTUFTSykgPT0gMCkgY29udGludWU7CisKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHRleHQsIGJvdW5kYXJ5KTsKKyAgICAgICAgICAgIHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oSW50ZWdlci50b1N0cmluZyhjcCwxNikgKyAiIChhZnRlcik6ICIgKyB0eXBlKTsKKyAgICAgICAgICAgIGlmICgoKDE8PHR5cGUpICYgTEVUVEVSX09SX01BUktfTUFTSykgPT0gMCkgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChib3VuZGFyeUNvdW50ID49IGJvdW5kYXJpZXMubGVuZ3RoKSB7ICAgICAgIC8vIHJlYWxsb2MgaWYgbmVjZXNzYXJ5CisgICAgICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbYm91bmRhcmllcy5sZW5ndGggKiAyXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJvdW5kYXJpZXMsIDAsIHRlbXAsIDAsIGJvdW5kYXJpZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBib3VuZGFyaWVzID0gdGVtcDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm91bmRhcmllc1tib3VuZGFyeUNvdW50KytdID0gYm91bmRhcnk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihib3VuZGFyeSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZGVsdGEgPSAwOworICAgICAgICBpbnQgbGFzdEJvdW5kYXJ5ID0gMDsKKworICAgICAgICBpZiAoYm91bmRhcnlDb3VudCAhPSAwKSB7IC8vIGlmIHdlIGZvdW5kIHNvbWV0aGluZywgYWRqdXN0CisgICAgICAgICAgICBkZWx0YSA9IGJvdW5kYXJ5Q291bnQgKiBpbnNlcnRpb24ubGVuZ3RoKCk7CisgICAgICAgICAgICBsYXN0Qm91bmRhcnkgPSBib3VuZGFyaWVzW2JvdW5kYXJ5Q291bnQtMV07CisKKyAgICAgICAgICAgIC8vIHdlIGRvIHRoaXMgZnJvbSB0aGUgZW5kIGJhY2t3YXJkcywgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGtlZXAgdXBkYXRpbmcuCisKKyAgICAgICAgICAgIHdoaWxlIChib3VuZGFyeUNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGJvdW5kYXJ5ID0gYm91bmRhcmllc1stLWJvdW5kYXJ5Q291bnRdOworICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShib3VuZGFyeSwgYm91bmRhcnksIGluc2VydGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgZml4IHVwIHRoZSByZXR1cm4gdmFsdWVzCisgICAgICAgIHBvcy5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgIHBvcy5saW1pdCArPSBkZWx0YTsKKyAgICAgICAgcG9zLnN0YXJ0ID0gaW5jcmVtZW50YWwgPyBsYXN0Qm91bmRhcnkgKyBkZWx0YSA6IHBvcy5saW1pdDsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVycyBzdGFuZGFyZCB2YXJpYW50cyB3aXRoIHRoZSBzeXN0ZW0uICBDYWxsZWQgYnkKKyAgICAgKiBUcmFuc2xpdGVyYXRvciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIC8vIGZhbHNlIG1lYW5zIHRoYXQgaXQgaXMgaW52aXNpYmxlCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRyYW5zID0gbmV3IEJyZWFrVHJhbnNsaXRlcmF0b3IoIkFueS1CcmVha0ludGVybmFsIiwgbnVsbCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UodHJhbnMsIGZhbHNlKTsKKyAgICAgICAgLyoKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktQnJlYWsiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJyZWFrVHJhbnNsaXRlcmF0b3IoIkFueS1CcmVhayIsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvLyBIYWNrLCBqdXN0IHRvIGdldCBhIHJlYWwgY2hhcmFjdGVyIGl0ZXJhdG9yLgorCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IgaW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZSB0ZXh0OworICAgICAgICBwcml2YXRlIGludCBiZWdpbjsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZW5kOworICAgICAgICAvLyBpbnZhcmlhbnQ6IGJlZ2luIDw9IHBvcyA8PSBlbmQKKyAgICAgICAgcHJpdmF0ZSBpbnQgcG9zOworCisgICAgICAgIC8qKgorICAgICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igd2l0aCBhbiBpbml0aWFsIGluZGV4IG9mIDAuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKFJlcGxhY2VhYmxlIHRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXModGV4dCwgMCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIHdpdGggdGhlIHNwZWNpZmllZCBpbml0aWFsIGluZGV4LgorICAgICAgICAqCisgICAgICAgICogQHBhcmFtICB0ZXh0ICAgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAgICAgICogQHBhcmFtICBwb3MgICAgSW5pdGlhbCBpdGVyYXRvciBwb3NpdGlvbgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgIHRoaXModGV4dCwgMCwgdGV4dC5sZW5ndGgoKSwgcG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gcmFuZ2Ugb2YgdGhlIGdpdmVuIHN0cmluZywgd2l0aCB0aGUKKyAgICAgICAgKiBpbmRleCBzZXQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgICAgKgorICAgICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgICAgICAqIEBwYXJhbSAgYmVnaW4gIEluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgICAgKiBAcGFyYW0gIGVuZCAgICBJbmRleCBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgKiBAcGFyYW0gIHBvcyAgICBJbml0aWFsIGl0ZXJhdG9yIHBvc2l0aW9uCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKFJlcGxhY2VhYmxlIHRleHQsIGludCBiZWdpbiwgaW50IGVuZCwgaW50IHBvcykgeworICAgICAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKworICAgICAgICAgICAgaWYgKGJlZ2luIDwgMCB8fCBiZWdpbiA+IGVuZCB8fCBlbmQgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBzdWJzdHJpbmcgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHBvcyA8IGJlZ2luIHx8IHBvcyA+IGVuZCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGJlZ2luOworICAgICAgICAgICAgdGhpcy5lbmQgPSBlbmQ7CisgICAgICAgICAgICB0aGlzLnBvcyA9IHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIFJlc2V0IHRoaXMgaXRlcmF0b3IgdG8gcG9pbnQgdG8gYSBuZXcgc3RyaW5nLiAgVGhpcyBwYWNrYWdlLXZpc2libGUKKyAgICAgICAgKiBtZXRob2QgaXMgdXNlZCBieSBvdGhlciBqYXZhLnRleHQgY2xhc3NlcyB0aGF0IHdhbnQgdG8gYXZvaWQgYWxsb2NhdGluZworICAgICAgICAqIG5ldyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMgZXZlcnkgdGltZSB0aGVpciBzZXRUZXh0IG1ldGhvZAorICAgICAgICAqIGlzIGNhbGxlZC4KKyAgICAgICAgKgorICAgICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFJlcGxhY2VhYmxlIHRleHQpIHsKKyAgICAgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgICAgICB0aGlzLmJlZ2luID0gMDsKKyAgICAgICAgICAgIHRoaXMuZW5kID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHRoaXMucG9zID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZmlyc3QoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZmlyc3QKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgZmlyc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBwb3MgPSBiZWdpbjsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmxhc3QoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjbGFzdAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBsYXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVuZCAhPSBiZWdpbikgeworICAgICAgICAgICAgICAgIHBvcyA9IGVuZCAtIDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBvcyA9IGVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLnNldEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI3NldEluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwKQorICAgICAgICB7CisgICAgICAgIGlmIChwIDwgYmVnaW4gfHwgcCA+IGVuZCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgaW5kZXgiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgcG9zID0gcDsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmN1cnJlbnQoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjY3VycmVudAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBvcyA+PSBiZWdpbiAmJiBwb3MgPCBlbmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5uZXh0KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI25leHQKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgbmV4dCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwb3MgPCBlbmQgLSAxKSB7CisgICAgICAgICAgICAgICAgcG9zKys7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBlbmQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLnByZXZpb3VzKCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI3ByZXZpb3VzCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIHByZXZpb3VzKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBvcyA+IGJlZ2luKSB7CisgICAgICAgICAgICAgICAgcG9zLS07CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRCZWdpbkluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBiZWdpbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0RW5kSW5kZXgKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBlbmQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29tcGFyZXMgdGhlIGVxdWFsaXR5IG9mIHR3byBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMuCisgICAgICAgICogQHBhcmFtIG9iaiB0aGUgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aC4KKyAgICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG9iaiBpcyB0aGUgc2FtZSBhcyB0aGlzCisgICAgICAgICogUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3Q7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IG9iaikgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCA9IChSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKSBvYmo7CisKKyAgICAgICAgICAgIGlmIChoYXNoQ29kZSgpICE9IHRoYXQuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghdGV4dC5lcXVhbHModGhhdC50ZXh0KSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwb3MgIT0gdGhhdC5wb3MgfHwgYmVnaW4gIT0gdGhhdC5iZWdpbiB8fCBlbmQgIT0gdGhhdC5lbmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENvbXB1dGVzIGEgaGFzaGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRleHQuaGFzaENvZGUoKSBeIHBvcyBeIGJlZ2luIF4gZW5kOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvci4KKyAgICAgICAgKiBAcmV0dXJuIEEgY29weSBvZiB0aGlzCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3Igb3RoZXIKKyAgICAgICAgICAgICAgICA9IChSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0Nhbm9uaWNhbEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DYW5vbmljYWxJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVhMWVhMzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DYW5vbmljYWxJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTMxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VU2VyaWFsaXplZFNldDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogVGhpcyBjbGFzcyBhbGxvd3Mgb25lIHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwgdGhlIHN0cmluZ3MgdGhhdCBhcmUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCB0byBhIGdpdmVuCisgKiBzdHJpbmcuIEZvciBleGFtcGxlLCBoZXJlIGFyZSBzb21lIHNhbXBsZSByZXN1bHRzOgorICogUmVzdWx0cyBmb3I6IHtBIFdJVEggUklORyBBQk9WRX17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorICogPHByZT4KKyAxOiB7QX17UklORyBBQk9WRX17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorIDI6IHtBfXtSSU5HIEFCT1ZFfXtkfXtDRURJTExBfXtET1QgQUJPVkV9CisgMzoge0F9e1JJTkcgQUJPVkV9e2QgV0lUSCBET1QgQUJPVkV9e0NFRElMTEF9CisgNDoge0F9e1JJTkcgQUJPVkV9e2QgV0lUSCBDRURJTExBfXtET1QgQUJPVkV9CisgNToge0EgV0lUSCBSSU5HIEFCT1ZFfXtkfXtET1QgQUJPVkV9e0NFRElMTEF9CisgNjoge0EgV0lUSCBSSU5HIEFCT1ZFfXtkfXtDRURJTExBfXtET1QgQUJPVkV9CisgNzoge0EgV0lUSCBSSU5HIEFCT1ZFfXtkIFdJVEggRE9UIEFCT1ZFfXtDRURJTExBfQorIDg6IHtBIFdJVEggUklORyBBQk9WRX17ZCBXSVRIIENFRElMTEF9e0RPVCBBQk9WRX0KKyA5OiB7QU5HU1RST00gU0lHTn17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorMTA6IHtBTkdTVFJPTSBTSUdOfXtkfXtDRURJTExBfXtET1QgQUJPVkV9CisxMToge0FOR1NUUk9NIFNJR059e2QgV0lUSCBET1QgQUJPVkV9e0NFRElMTEF9CisxMjoge0FOR1NUUk9NIFNJR059e2QgV0lUSCBDRURJTExBfXtET1QgQUJPVkV9CisgKjwvcHJlPgorICo8YnI+Tm90ZTogdGhlIGNvZGUgaXMgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIHNtYWxsIHN0cmluZ3MsIGFuZCBpcyBub3Qgc3VpdGFibGUgZm9yIGxhcmdlciBvbmVzLAorICogc2luY2UgaXQgaGFzIG5vdCBiZWVuIG9wdGltaXplZCBmb3IgdGhhdCBzaXR1YXRpb24uCisgKiBAYXV0aG9yIE0uIERhdmlzCisgKiBAc3RhYmxlIElDVSAyLjQKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgQ2Fub25pY2FsSXRlcmF0b3IgeworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENhbm9uaWNhbEl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIHRvIGdldCByZXN1bHRzIGZvcgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBDYW5vbmljYWxJdGVyYXRvcihTdHJpbmcgc291cmNlKSB7CisgICAgICAgIHNldFNvdXJjZShzb3VyY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIE5GRCBmb3JtIG9mIHRoZSBjdXJyZW50IHNvdXJjZSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIuCisgICAgICogQHJldHVybiBnZXRzIHRoZSBzb3VyY2U6IE5PVEU6IGl0IGlzIHRoZSBORkQgZm9ybSBvZiB0aGUgc291cmNlIG9yaWdpbmFsbHkgcGFzc2VkIGluCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTb3VyY2UoKSB7CisgICAgICByZXR1cm4gc291cmNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGUgaXRlcmF0b3Igc28gdGhhdCBvbmUgY2FuIHN0YXJ0IGFnYWluIGZyb20gdGhlIGJlZ2lubmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGN1cnJlbnRbaV0gPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuZXh0IGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgc3RyaW5nLgorICAgICAqIDxicj48Yj5XYXJuaW5nOiBUaGUgc3RyaW5ncyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgaW4gYW55IHBhcnRpY3VsYXIgb3JkZXIuPC9iPgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgc3RyaW5nIHRoYXQgaXMgY2Fub25pY2FsbHkgZXF1aXZhbGVudC4gVGhlIHZhbHVlIG51bGwgaXMgcmV0dXJuZWQgd2hlbgorICAgICAqIHRoZSBpdGVyYXRpb24gaXMgZG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIG5leHQoKSB7CisgICAgICAgIGlmIChkb25lKSByZXR1cm4gbnVsbDsKKworICAgICAgICAvLyBjb25zdHJ1Y3QgcmV0dXJuIHZhbHVlCisKKyAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsgLy8gZGVsZXRlIG9sZCBjb250ZW50cworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBpZWNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChwaWVjZXNbaV1bY3VycmVudFtpXV0pOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBidWZmZXIudG9TdHJpbmcoKTsKKworICAgICAgICAvLyBmaW5kIG5leHQgdmFsdWUgZm9yIG5leHQgdGltZQorCisgICAgICAgIGZvciAoaW50IGkgPSBjdXJyZW50Lmxlbmd0aCAtIDE7IDsgLS1pKSB7CisgICAgICAgICAgICBpZiAoaSA8IDApIHsKKyAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRbaV0rKzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50W2ldIDwgcGllY2VzW2ldLmxlbmd0aCkgYnJlYWs7IC8vIGdvdCBzZXF1ZW5jZQorICAgICAgICAgICAgY3VycmVudFtpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBuZXcgc291cmNlIGZvciB0aGlzIGl0ZXJhdG9yLiBBbGxvd3Mgb2JqZWN0IHJldXNlLgorICAgICAqIEBwYXJhbSBuZXdTb3VyY2UgdGhlIHNvdXJjZSBzdHJpbmcgdG8gaXRlcmF0ZSBhZ2FpbnN0LiBUaGlzIGFsbG93cyB0aGUgc2FtZSBpdGVyYXRvciB0byBiZSB1c2VkCisgICAgICogd2hpbGUgY2hhbmdpbmcgdGhlIHNvdXJjZSBzdHJpbmcsIHNhdmluZyBvYmplY3QgY3JlYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U291cmNlKFN0cmluZyBuZXdTb3VyY2UpIHsKKyAgICAgICAgc291cmNlID0gTm9ybWFsaXplci5ub3JtYWxpemUobmV3U291cmNlLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKworICAgICAgICAvLyBjYXRjaCBkZWdlbmVyYXRlIGNhc2UKKyAgICAgICAgaWYgKG5ld1NvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBwaWVjZXMgPSBuZXcgU3RyaW5nWzFdW107CisgICAgICAgICAgICBjdXJyZW50ID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHBpZWNlc1swXSA9IG5ldyBTdHJpbmdbXXsiIn07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5kIHRoZSBzZWdtZW50cworICAgICAgICBMaXN0IHNlZ21lbnRMaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBpbnQgY3A7CisgICAgICAgIGludCBzdGFydCA9IDA7CisKKyAgICAgICAgLy8gaSBzaG91bGQgYmUgdGhlIGVuZCBvZiB0aGUgZmlyc3QgY29kZSBwb2ludAorICAgICAgICAvLyBicmVhayB1cCB0aGUgc3RyaW5nIGludG8gc2VnZW1lbnRzCisKKyAgICAgICAgaW50IGkgPSBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzb3VyY2UsIDEpOworCisgICAgICAgIGZvciAoOyBpIDwgc291cmNlLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHNvdXJjZSwgaSk7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplckltcGwuaXNDYW5vblNhZmVTdGFydChjcCkpIHsKKyAgICAgICAgICAgICAgICBzZWdtZW50TGlzdC5hZGQoc291cmNlLnN1YnN0cmluZyhzdGFydCwgaSkpOyAvLyBhZGQgdXAgdG8gaQorICAgICAgICAgICAgICAgIHN0YXJ0ID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzZWdtZW50TGlzdC5hZGQoc291cmNlLnN1YnN0cmluZyhzdGFydCwgaSkpOyAvLyBhZGQgbGFzdCBvbmUKKworICAgICAgICAvLyBhbGxvY2F0ZSB0aGUgYXJyYXlzLCBhbmQgZmluZCB0aGUgc3RyaW5ncyB0aGF0IGFyZSBDRSB0byBlYWNoIHNlZ21lbnQKKyAgICAgICAgcGllY2VzID0gbmV3IFN0cmluZ1tzZWdtZW50TGlzdC5zaXplKCldW107CisgICAgICAgIGN1cnJlbnQgPSBuZXcgaW50W3NlZ21lbnRMaXN0LnNpemUoKV07CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBwaWVjZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCJTRUdNRU5UIik7CisgICAgICAgICAgICBwaWVjZXNbaV0gPSBnZXRFcXVpdmFsZW50cygoU3RyaW5nKSBzZWdtZW50TGlzdC5nZXQoaSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIHBlcm11dGF0aW9uLgorICAgICAqIDxicj48Yj5XYXJuaW5nOiBUaGUgc3RyaW5ncyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgaW4gYW55IHBhcnRpY3VsYXIgb3JkZXIuPC9iPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHN0cmluZyB0byBmaW5kIHBlcm11dGF0aW9ucyBmb3IKKyAgICAgKiBAcGFyYW0gc2tpcFplcm9zIHNldCB0byB0cnVlIHRvIHNraXAgY2hhcmFjdGVycyB3aXRoIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3MgemVybworICAgICAqIEBwYXJhbSBvdXRwdXQgdGhlIHNldCB0byBhZGQgdGhlIHJlc3VsdHMgdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcGVybXV0ZShTdHJpbmcgc291cmNlLCBib29sZWFuIHNraXBaZXJvcywgU2V0IG91dHB1dCkgeworICAgICAgICAvLyBUT0RPOiBvcHRpbWl6ZQorICAgICAgICAvL2lmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCJQZXJtdXRlOiAiICsgc291cmNlKTsKKworICAgICAgICAvLyBvcHRpbWl6YXRpb246CisgICAgICAgIC8vIGlmIHplcm8gb3Igb25lIGNoYXJhY3RlciwganVzdCByZXR1cm4gYSBzZXQgd2l0aCBpdAorICAgICAgICAvLyB3ZSBjaGVjayBmb3IgbGVuZ3RoIDwgMiB0byBrZWVwIGZyb20gY291bnRpbmcgY29kZSBwb2ludHMgYWxsIHRoZSB0aW1lCisgICAgICAgIGlmIChzb3VyY2UubGVuZ3RoKCkgPD0gMiAmJiBVVEYxNi5jb3VudENvZGVQb2ludChzb3VyY2UpIDw9IDEpIHsKKyAgICAgICAgICAgIG91dHB1dC5hZGQoc291cmNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG90aGVyd2lzZSBpdGVyYXRlIHRocm91Z2ggdGhlIHN0cmluZywgYW5kIHJlY3Vyc2l2ZWx5IHBlcm11dGUgYWxsIHRoZSBvdGhlciBjaGFyYWN0ZXJzCisgICAgICAgIFNldCBzdWJwZXJtdXRlID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworCisgICAgICAgICAgICAvLyBvcHRpbWl6YXRpb246CisgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3MgemVybywKKyAgICAgICAgICAgIC8vIGRvbid0IHBlcm11dGUgaXQKKyAgICAgICAgICAgIGlmIChza2lwWmVyb3MgJiYgaSAhPSAwICYmIFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY3ApID09IDApIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiU2tpcHBpbmcgIiArIFV0aWxpdHkuaGV4KFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKSkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzZWUgd2hhdCB0aGUgcGVybXV0YXRpb25zIG9mIHRoZSBjaGFyYWN0ZXJzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBvbmUgYXJlCisgICAgICAgICAgICBzdWJwZXJtdXRlLmNsZWFyKCk7CisgICAgICAgICAgICBwZXJtdXRlKHNvdXJjZS5zdWJzdHJpbmcoMCxpKQorICAgICAgICAgICAgICAgICsgc291cmNlLnN1YnN0cmluZyhpICsgVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSksIHNraXBaZXJvcywgc3VicGVybXV0ZSk7CisKKyAgICAgICAgICAgIC8vIHByZWZpeCB0aGlzIGNoYXJhY3RlciB0byBhbGwgb2YgdGhlbQorICAgICAgICAgICAgU3RyaW5nIGNoU3RyID0gVVRGMTYudmFsdWVPZihzb3VyY2UsIGkpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdWJwZXJtdXRlLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBpZWNlID0gY2hTdHIgKyAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgLy9pZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiICBQaWVjZTogIiArIHBpZWNlKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYWRkKHBpZWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEZPUiBURVNUSU5HCisKKyAgICAvKgorICAgICAqQHJldHVybiB0aGUgc2V0IG9mICJzYWZlIHN0YXJ0cyIsIGNoYXJhY3RlcnMgdGhhdCBhcmUgY2xhc3MgemVybyBBTkQgYXJlIG5ldmVyIG5vbi1pbml0aWFsIGluIGEgZGVjb21wb3NpdGlvbi4KKyAgICAgKkBpbnRlcm5hbAorICAgICAqCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGdldFNhZmVTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIChVbmljb2RlU2V0KSBTQUZFX1NUQVJULmNsb25lKCk7CisgICAgfQorICAgICovCisgICAgLyoKKyAgICAgKkByZXR1cm4gdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHdob3NlIGRlY29tcG9zaXRpb25zIHN0YXJ0IHdpdGggdGhlIGdpdmVuIGNoYXJhY3RlcgorICAgICAqQGludGVybmFsCisgICAgICoKKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgZ2V0U3RhcnRzKGludCBjcCkgeworICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IEFUX1NUQVJULmdldChjcCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gRU1QVFk7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgcmVzdWx0LmNsb25lKCk7CisgICAgfQorICAgICovCisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT0gUFJJVkFURVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvLyBkZWJ1ZworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gUFJPR1JFU1MgPSBmYWxzZTsgLy8gZGVidWcgcHJvZ3Jlc3MKKyAgICAvL3ByaXZhdGUgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIE5BTUUgPSBQUk9HUkVTUyA/IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJuYW1lIikgOiBudWxsOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gU0tJUF9aRVJPUyA9IHRydWU7CisKKyAgICAvLyBmaWVsZHMKKyAgICBwcml2YXRlIFN0cmluZyBzb3VyY2U7CisgICAgcHJpdmF0ZSBib29sZWFuIGRvbmU7CisgICAgcHJpdmF0ZSBTdHJpbmdbXVtdIHBpZWNlczsKKyAgICBwcml2YXRlIGludFtdIGN1cnJlbnQ7CisgICAgLy8gTm90ZTogQyB3aWxsIG5lZWQgdHdvIG1vcmUgZmllbGRzLCBzaW5jZSBhcnJheXMgdGhlcmUgZG9uJ3QgaGF2ZSBsZW5ndGhzCisgICAgLy8gaW50IHBpZWNlc19sZW5ndGg7CisgICAgLy8gaW50W10gcGllY2VzX2xlbmd0aHM7CisKKyAgICAvLyB0cmFuc2llbnQgZmllbGRzCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworCisgICAgLy8gd2UgaGF2ZSBhIHNlZ21lbnQsIGluIE5GRC4gRmluZCBhbGwgdGhlIHN0cmluZ3MgdGhhdCBhcmUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCB0byBpdC4KKyAgICBwcml2YXRlIFN0cmluZ1tdIGdldEVxdWl2YWxlbnRzKFN0cmluZyBzZWdtZW50KSB7CisgICAgICAgIFNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBTZXQgYmFzaWMgPSBnZXRFcXVpdmFsZW50czIoc2VnbWVudCk7CisgICAgICAgIFNldCBwZXJtdXRhdGlvbnMgPSBuZXcgSGFzaFNldCgpOworCisgICAgICAgIC8vIG5vdyBnZXQgYWxsIHRoZSBwZXJtdXRhdGlvbnMKKyAgICAgICAgLy8gYWRkIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgY2Fub25pY2FsbHkgZXF1aXZhbGVudAorICAgICAgICAvLyBUT0RPOiBvcHRpbWl6ZSBieSBub3QgcGVybXV0aW5nIGFueSBjbGFzcyB6ZXJvLgorICAgICAgICBJdGVyYXRvciBpdCA9IGJhc2ljLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgcGVybXV0YXRpb25zLmNsZWFyKCk7CisgICAgICAgICAgICBwZXJtdXRlKGl0ZW0sIFNLSVBfWkVST1MsIHBlcm11dGF0aW9ucyk7CisgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBwZXJtdXRhdGlvbnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdDIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBvc3NpYmxlID0gKFN0cmluZykgaXQyLm5leHQoKTsKKworLyoKKyAgICAgICAgICAgICAgICBTdHJpbmcgYXR0ZW1wdCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHBvc3NpYmxlLCBOb3JtYWxpemVyLkRFQ09NUCwgMCk7CisgICAgICAgICAgICAgICAgaWYgKGF0dGVtcHQuZXF1YWxzKHNlZ21lbnQpKSB7CisqLworICAgICAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLmNvbXBhcmUocG9zc2libGUsIHNlZ21lbnQsMCk9PTApIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nIFBlcm11dGF0aW9uOiAiICsgVXRpbGl0eS5oZXgocG9zc2libGUpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChwb3NzaWJsZSk7CisKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiLVNraXBwaW5nIFBlcm11dGF0aW9uOiAiICsgVXRpbGl0eS5oZXgocG9zc2libGUpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBjb252ZXJ0IGludG8gYSBTdHJpbmdbXSB0byBjbGVhbiB1cCBzdG9yYWdlCisgICAgICAgIFN0cmluZ1tdIGZpbmFsUmVzdWx0ID0gbmV3IFN0cmluZ1tyZXN1bHQuc2l6ZSgpXTsKKyAgICAgICAgcmVzdWx0LnRvQXJyYXkoZmluYWxSZXN1bHQpOworICAgICAgICByZXR1cm4gZmluYWxSZXN1bHQ7CisgICAgfQorCisKKyAgICBwcml2YXRlIFNldCBnZXRFcXVpdmFsZW50czIoU3RyaW5nIHNlZ21lbnQpIHsKKworICAgICAgICBTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKworICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nOiAiICsgVXRpbGl0eS5oZXgoc2VnbWVudCkpOworCisgICAgICAgIHJlc3VsdC5hZGQoc2VnbWVudCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JraW5nQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBjaGFyYWN0ZXJzCisgICAgICAgIGludCBjcD0wOworICAgICAgICBpbnRbXSByYW5nZSA9IG5ldyBpbnRbMl07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VnbWVudC5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisKKyAgICAgICAgICAgIC8vIHNlZSBpZiBhbnkgY2hhcmFjdGVyIGlzIGF0IHRoZSBzdGFydCBvZiBzb21lIGRlY29tcG9zaXRpb24KKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHNlZ21lbnQsIGkpOworICAgICAgICAgICAgVVNlcmlhbGl6ZWRTZXQgc3RhcnRzID0gbmV3IFVTZXJpYWxpemVkU2V0KCk7CisKKyAgICAgICAgICAgIGlmICghTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldChjcCwgc3RhcnRzKSkgeworICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBqPTA7CisgICAgICAgICAgICAvLyBpZiBzbywgc2VlIHdoaWNoIGRlY29tcG9zaXRpb25zIG1hdGNoCisgICAgICAgICAgICBpbnQgcmFuZ2VDb3VudCA9IHN0YXJ0cy5jb3VudFJhbmdlcygpOworICAgICAgICAgICAgZm9yKGogPSAwOyBqIDwgcmFuZ2VDb3VudDsgKytqKSB7CisgICAgICAgICAgICAJc3RhcnRzLmdldFJhbmdlKGosIHJhbmdlKTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kPXJhbmdlWzFdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGNwMiA9IHJhbmdlWzBdOyBjcDIgPD0gZW5kOyArK2NwMikgeworCSAgICAgICAgICAgICAgICBTZXQgcmVtYWluZGVyID0gZXh0cmFjdChjcDIsIHNlZ21lbnQsIGksIHdvcmtpbmdCdWZmZXIpOworCSAgICAgICAgICAgICAgICBpZiAocmVtYWluZGVyID09IG51bGwpIGNvbnRpbnVlOworCQorCSAgICAgICAgICAgICAgICAvLyB0aGVyZSB3ZXJlIHNvbWUgbWF0Y2hlcywgc28gYWRkIGFsbCB0aGUgcG9zc2liaWxpdGllcyB0byB0aGUgc2V0LgorCSAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4PSBzZWdtZW50LnN1YnN0cmluZygwLGkpOworCSAgICAgICAgICAgICAgICBwcmVmaXggKz0gVVRGMTYudmFsdWVPZihjcDIpOworCSAgICAgICAgICAgICAgICAvL2ludCBlbCA9IC0xOworCSAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gcmVtYWluZGVyLml0ZXJhdG9yKCk7CisJICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworCSAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKSBpdGVyLm5leHQoKTsKKwkgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0b0FkZCA9IG5ldyBTdHJpbmcocHJlZml4KTsKKwkgICAgICAgICAgICAgICAgICAgIHRvQWRkICs9IGl0ZW07CisJICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHRvQWRkKTsKKwkgICAgICAgICAgICAgICAgICAgIC8vaWYgKFBST0dSRVNTKSBwcmludGYoIkFkZGluZzogJXNcbiIsIFVUb1MoVHIoKnRvQWRkKSkpOworCSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIC8qCisgICAgICAgIFNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nOiAiICsgTkFNRS50cmFuc2xpdGVyYXRlKHNlZ21lbnQpKTsKKyAgICAgICAgcmVzdWx0LmFkZChzZWdtZW50KTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHdvcmtpbmdCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gY3ljbGUgdGhyb3VnaCBhbGwgdGhlIGNoYXJhY3RlcnMKKyAgICAgICAgaW50IGNwOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VnbWVudC5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAvLyBzZWUgaWYgYW55IGNoYXJhY3RlciBpcyBhdCB0aGUgc3RhcnQgb2Ygc29tZSBkZWNvbXBvc2l0aW9uCisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzZWdtZW50LCBpKTsKKyAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLmdldENhbm9uU3RhcnRTZXQoYyxmaWxsU2V0KQorICAgICAgICAgICAgVW5pY29kZVNldCBzdGFydHMgPSBBVF9TVEFSVC5nZXQoY3ApOworICAgICAgICAgICAgaWYgKHN0YXJ0cyA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB1c2kgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHN0YXJ0cyk7CisgICAgICAgICAgICAvLyBpZiBzbywgc2VlIHdoaWNoIGRlY29tcG9zaXRpb25zIG1hdGNoCisgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGludCBjcDIgPSB1c2kuY29kZXBvaW50OworICAgICAgICAgICAgICAgIC8vIHdlIGtub3cgdGhhdCB0aGVyZSBhcmUgbm8gc3RyaW5ncyBpbiBpdAorICAgICAgICAgICAgICAgIC8vIHNvIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgQ2hhcmFjdGVySXRlcmF0b3IuSVNfU1RSSU5HCisgICAgICAgICAgICAgICAgU2V0IHJlbWFpbmRlciA9IGV4dHJhY3QoY3AyLCBzZWdtZW50LCBpLCB3b3JraW5nQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBpZiAocmVtYWluZGVyID09IG51bGwpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2VyZSBzb21lIG1hdGNoZXMsIHNvIGFkZCBhbGwgdGhlIHBvc3NpYmlsaXRpZXMgdG8gdGhlIHNldC4KKyAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gc2VnbWVudC5zdWJzdHJpbmcoMCwgaSkgKyBVVEYxNi52YWx1ZU9mKGNwMik7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSByZW1haW5kZXIuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nOiAiICsgTkFNRS50cmFuc2xpdGVyYXRlKHByZWZpeCArIGl0ZW0pKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChwcmVmaXggKyBpdGVtKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWUgaWYgdGhlIGRlY29tcG9zaXRpb24gb2YgY3AyIGlzIGF0IHNlZ21lbnQgc3RhcnRpbmcgYXQgc2VnbWVudFBvcworICAgICAqICh3aXRoIGNhbm9uaWNhbCByZWFycmFuZ21lbnQhKQorICAgICAqIElmIHNvLCB0YWtlIHRoZSByZW1haW5kZXIsIGFuZCByZXR1cm4gdGhlIGVxdWl2YWxlbnRzCisgICAgICovCisgICAgcHJpdmF0ZSBTZXQgZXh0cmFjdChpbnQgY29tcCwgU3RyaW5nIHNlZ21lbnQsIGludCBzZWdtZW50UG9zLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCIgZXh0cmFjdDogIiArIFV0aWxpdHkuaGV4KFVURjE2LnZhbHVlT2YoY29tcCkpCisgICAgICAgICAgICArICIsICIgKyBVdGlsaXR5LmhleChzZWdtZW50LnN1YnN0cmluZyhzZWdtZW50UG9zKSkpOworCisgICAgICAgIC8vU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKFVURjE2LnZhbHVlT2YoY29tcCksIE5vcm1hbGl6ZXIuREVDT01QLCAwKTsKKyAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvbXAsIE5vcm1hbGl6ZXIuTkZEKTsKKworICAgICAgICAvLyBTZWUgaWYgaXQgbWF0Y2hlcyB0aGUgc3RhcnQgb2Ygc2VnbWVudCAoYXQgc2VnbWVudFBvcykKKyAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworICAgICAgICBpbnQgY3A7CisgICAgICAgIGludCBkZWNvbXBQb3MgPSAwOworICAgICAgICBpbnQgZGVjb21wQ3AgPSBVVEYxNi5jaGFyQXQoZGVjb21wLDApOworICAgICAgICBkZWNvbXBQb3MgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGRlY29tcENwKTsgLy8gYWRqdXN0IHBvc2l0aW9uIHRvIHNraXAgZmlyc3QgY2hhcgorICAgICAgICAvL2ludCBkZWNvbXBDbGFzcyA9IGdldENsYXNzKGRlY29tcENwKTsKKyAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsgLy8gaW5pdGlhbGl6ZSB3b3JraW5nIGJ1ZmZlciwgc2hhcmVkIGFtb25nIGNhbGxlZXMKKworICAgICAgICBmb3IgKGludCBpID0gc2VnbWVudFBvczsgaSA8IHNlZ21lbnQubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc2VnbWVudCwgaSk7CisgICAgICAgICAgICBpZiAoY3AgPT0gZGVjb21wQ3ApIHsgLy8gaWYgZXF1YWwsIGVhdCBhbm90aGVyIGNwIGZyb20gZGVjb21wCisgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgbWF0Y2hlczogIiArIFV0aWxpdHkuaGV4KFVURjE2LnZhbHVlT2YoY3ApKSk7CisgICAgICAgICAgICAgICAgaWYgKGRlY29tcFBvcyA9PSBkZWNvbXAubGVuZ3RoKCkpIHsgLy8gZG9uZSwgaGF2ZSBhbGwgZGVjb21wIGNoYXJhY3RlcnMhCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2VnbWVudC5zdWJzdHJpbmcoaSArIFVURjE2LmdldENoYXJDb3VudChjcCkpKTsgLy8gYWRkIHJlbWFpbmluZyBzZWdtZW50IGNoYXJzCisgICAgICAgICAgICAgICAgICAgIG9rID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRlY29tcENwID0gVVRGMTYuY2hhckF0KGRlY29tcCwgZGVjb21wUG9zKTsKKyAgICAgICAgICAgICAgICBkZWNvbXBQb3MgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGRlY29tcENwKTsKKyAgICAgICAgICAgICAgICAvL2RlY29tcENsYXNzID0gZ2V0Q2xhc3MoZGVjb21wQ3ApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiICBidWZmZXI6ICIgKyBVdGlsaXR5LmhleChVVEYxNi52YWx1ZU9mKGNwKSkpOworICAgICAgICAgICAgICAgIC8vIGJydXRlIGZvcmNlIGFwcHJvYWNoCisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgY3ApOworICAgICAgICAgICAgICAgIC8qIFRPRE86IG9wdGltaXplCisgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2Uga25vdyB0aGF0IHRoZSBjbGFzc2VzIGFyZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcsIGFmdGVyIHplcm8KKyAgICAgICAgICAgICAgICAvLyBlLmcuIDAgNSA3IDkgMCAzCisgICAgICAgICAgICAgICAgLy8gd2UgY2FuIGRvIGFuIG9wdGltaXphdGlvbgorICAgICAgICAgICAgICAgIC8vIHRoZXJlIGFyZSBvbmx5IGEgZmV3IGNhc2VzIHRoYXQgd29yazogemVybywgbGVzcywgc2FtZSwgZ3JlYXRlcgorICAgICAgICAgICAgICAgIC8vIGlmIGJvdGggY2xhc3NlcyBhcmUgdGhlIHNhbWUsIHdlIGZhaWwKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVjb21wIGNsYXNzIDwgdGhlIHNlZ21lbnQgY2xhc3MsIHdlIGZhaWwKKworICAgICAgICAgICAgICAgIHNlZ0NsYXNzID0gZ2V0Q2xhc3MoY3ApOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXBDbGFzcyA8PSBzZWdDbGFzcykgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIW9rKSByZXR1cm4gbnVsbDsgLy8gd2UgZmFpbGVkLCBjaGFyYWN0ZXJzIGxlZnQgb3ZlcgorICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiTWF0Y2hlcyIpOworICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCgpID09IDApIHJldHVybiBTRVRfV0lUSF9OVUxMX1NUUklORzsgLy8gc3VjY2VlZCwgYnV0IG5vIHJlbWFpbmRlcgorICAgICAgICBTdHJpbmcgcmVtYWluZGVyID0gYnVmZmVyLnRvU3RyaW5nKCk7CisKKyAgICAgICAgLy8gYnJ1dGUgZm9yY2UgYXBwcm9hY2gKKyAgICAgICAgLy8gdG8gY2hlY2sgdG8gbWFrZSBzdXJlIHJlc3VsdCBpcyBjYW5vbmljYWxseSBlcXVpdmFsZW50CisgICAgICAgIC8qCisgICAgICAgIFN0cmluZyB0cmlhbCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKFVURjE2LnZhbHVlT2YoY29tcCkgKyByZW1haW5kZXIsIE5vcm1hbGl6ZXIuREVDT01QLCAwKTsKKyAgICAgICAgaWYgKCFzZWdtZW50LnJlZ2lvbk1hdGNoZXMoc2VnbWVudFBvcywgdHJpYWwsIDAsIHNlZ21lbnQubGVuZ3RoKCkgLSBzZWdtZW50UG9zKSkgcmV0dXJuIG51bGw7CisgICAgICAgICovCisKKyAgICAgICAgaWYgKDAhPU5vcm1hbGl6ZXIuY29tcGFyZShVVEYxNi52YWx1ZU9mKGNvbXApICsgcmVtYWluZGVyLCBzZWdtZW50LnN1YnN0cmluZyhzZWdtZW50UG9zKSwgMCkpIHJldHVybiBudWxsOworCisgICAgICAgIC8vIGdldCB0aGUgcmVtYWluaW5nIGNvbWJpbmF0aW9ucworICAgICAgICByZXR1cm4gZ2V0RXF1aXZhbGVudHMyKHJlbWFpbmRlcik7CisgICAgfQorCisgICAgLyoKKyAgICAvLyBUT0RPOiBmaXggb25jZSB3ZSBoYXZlIGEgY29kZXBvaW50IGludGVyZmFjZSB0byBnZXQgdGhlIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3MKKyAgICAvLyBUT0RPOiBOZWVkIHB1YmxpYyBhY2Nlc3MgdG8gY2Fub25pY2FsIGNvbWJpbmluZyBjbGFzcyBpbiBVQ2hhcmFjdGVyIQorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRDbGFzcyhpbnQgY3ApIHsKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuZ2V0Q2xhc3MoKGNoYXIpY3ApOworICAgIH0KKyAgICAqLworCisgICAvLyA9PT09PT09PT09PT09PT09PSBCVUlMREVSID09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBUT0RPOiBGbGF0dGVuIHRoaXMgZGF0YSBzbyBpdCBkb2Vzbid0IGhhdmUgdG8gYmUgcmVjb25zdHJ1Y3RlZCBlYWNoIHRpbWUhCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IEVNUFRZID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gY29uc3RhbnQsIGRvbid0IGNoYW5nZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFNldCBTRVRfV0lUSF9OVUxMX1NUUklORyA9IG5ldyBIYXNoU2V0KCk7IC8vIGNvbnN0YW50LCBkb24ndCBjaGFuZ2UKKyAgICBzdGF0aWMgeworICAgICAgICBTRVRfV0lUSF9OVUxMX1NUUklORy5hZGQoIiIpOworICAgIH0KKworICAvLyAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBTQUZFX1NUQVJUID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgLy8gIHByaXZhdGUgc3RhdGljIENoYXJNYXAgQVRfU1RBUlQgPSBuZXcgQ2hhck1hcCgpOworCisgICAgICAgIC8vIFRPRE86IFdBUk5JTkcsIE5PUk1BTElaRVIgZG9lc24ndCBoYXZlIHN1cHBsZW1lbnRhcmllcyB5ZXQgISE7CisgICAgICAgIC8vIENoYW5nZSBGRkZGIHRvIDEwRkZGRiBpbiBDLCBhbmQgaW4gSmF2YSB3aGVuIG5vcm1hbGl6ZXIgaXMgdXBncmFkZWQuCisgIC8vICBwcml2YXRlIHN0YXRpYyBpbnQgTEFTVF9VTklDT0RFID0gMHgxMEZGRkY7CisgICAgLyoKKyAgICBzdGF0aWMgeworICAgICAgICBidWlsZERhdGEoKTsKKyAgICB9CisgICAgKi8KKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYnVpbGREYXRhKCkgeworCisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCJHZXR0aW5nIFNhZmUgU3RhcnQiKTsKKyAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSBMQVNUX1VOSUNPREU7ICsrY3ApIHsKKyAgICAgICAgICAgIGlmIChQUk9HUkVTUyAmIChjcCAmIDB4N0ZGKSA9PSAwKSBTeXN0ZW0ub3V0LnByaW50KCcuJyk7CisgICAgICAgICAgICBpbnQgY2MgPSBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNwKTsKKyAgICAgICAgICAgIGlmIChjYyA9PSAwKSBTQUZFX1NUQVJULmFkZChjcCk7CisgICAgICAgICAgICAvLyB3aWxsIGZpeCB0byBiZSByZWFsbHkgc2FmZSBiZWxvdworICAgICAgICB9CisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCk7CisKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkdldHRpbmcgQ29udGFpbm1lbnQiKTsKKyAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSBMQVNUX1VOSUNPREU7ICsrY3ApIHsKKyAgICAgICAgICAgIGlmIChQUk9HUkVTUyAmIChjcCAmIDB4N0ZGKSA9PSAwKSBTeXN0ZW0ub3V0LnByaW50KCcuJyk7CisKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLmlzTm9ybWFsaXplZChjcCwgTm9ybWFsaXplci5ORkQpKSBjb250aW51ZTsKKworICAgICAgICAgICAgLy9TdHJpbmcgaXN0ciA9IFVURjE2LnZhbHVlT2YoY3ApOworICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNwLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAvL2lmIChkZWNvbXAuZXF1YWxzKGlzdHIpKSBjb250aW51ZTsKKworICAgICAgICAgICAgLy8gYWRkIGVhY2ggY2hhcmFjdGVyIGluIHRoZSBkZWNvbXBvc2l0aW9uIHRvIGNhbkJlSW4KKworICAgICAgICAgICAgaW50IGNvbXBvbmVudDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjb21wb25lbnQpKSB7CisgICAgICAgICAgICAgICAgY29tcG9uZW50ID0gVVRGMTYuY2hhckF0KGRlY29tcCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBBVF9TVEFSVC5hZGQoY29tcG9uZW50LCBjcCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNvbXBvbmVudCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBTQUZFX1NUQVJULnJlbW92ZShjb21wb25lbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgIH0KKyAgICAgICAgLy8gdGhlIGZvbGxvd2luZyBpcyBqdXN0IGZvciBhIG1hcCBmcm9tIGNoYXJhY3RlcnMgdG8gYSBzZXQgb2YgY2hhcmFjdGVycworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ2hhck1hcCB7CisgICAgICAgIE1hcCBzdG9yYWdlID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgTXV0YWJsZUludCBwcm9iZSA9IG5ldyBNdXRhYmxlSW50KCk7CisgICAgICAgIGJvb2xlYW4gY29udmVydGVkID0gZmFsc2U7CisKKyAgICAgICAgcHVibGljIHZvaWQgYWRkKGludCBjcCwgaW50IHdoYXRJdElzSW4pIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gKFVuaWNvZGVTZXQpIHN0b3JhZ2UuZ2V0KHByb2JlLnNldChjcCkpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgICAgICBzdG9yYWdlLnB1dChwcm9iZSwgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hZGQod2hhdEl0SXNJbik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVW5pY29kZVNldCBnZXQoaW50IGNwKSB7CisgICAgICAgICAgICByZXR1cm4gKFVuaWNvZGVTZXQpIHN0b3JhZ2UuZ2V0KHByb2JlLnNldChjcCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTXV0YWJsZUludCB7CisgICAgICAgIHB1YmxpYyBpbnQgY29udGVudHM7CisgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiBjb250ZW50czsgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisgICAgICAgICAgICByZXR1cm4gKChNdXRhYmxlSW50KW90aGVyKS5jb250ZW50cyA9PSBjb250ZW50czsKKyAgICAgICAgfQorICAgICAgICAvLyBhbGxvd3MgY2hhaW5pbmcKKyAgICAgICAgcHVibGljIE11dGFibGVJbnQgc2V0KGludCBjb250ZW50cykgeworICAgICAgICAgICAgdGhpcy5jb250ZW50cyA9IGNvbnRlbnRzOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldERldGVjdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0RGV0ZWN0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTFiNTdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldERldGVjdG9yLmphdmEKQEAgLTAsMCArMSw1MzkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisKKy8qKgorICogPGNvZGU+Q2hhcnNldERldGVjdG9yPC9jb2RlPiBwcm92aWRlcyBhIGZhY2lsaXR5IGZvciBkZXRlY3RpbmcgdGhlCisgKiBjaGFyc2V0IG9yIGVuY29kaW5nIG9mIGNoYXJhY3RlciBkYXRhIGluIGFuIHVua25vd24gZm9ybWF0LgorICogVGhlIGlucHV0IGRhdGEgY2FuIGVpdGhlciBiZSBmcm9tIGFuIGlucHV0IHN0cmVhbSBvciBhbiBhcnJheSBvZiBieXRlcy4KKyAqIFRoZSByZXN1bHQgb2YgdGhlIGRldGVjdGlvbiBvcGVyYXRpb24gaXMgYSBsaXN0IG9mIHBvc3NpYmx5IG1hdGNoaW5nCisgKiBjaGFyc2V0cywgb3IsIGZvciBzaW1wbGUgdXNlLCB5b3UgY2FuIGp1c3QgYXNrIGZvciBhIEphdmEgUmVhZGVyIHRoYXQKKyAqIHdpbGwgd2lsbCB3b3JrIG92ZXIgdGhlIGlucHV0IGRhdGEuCisgKiA8cC8+CisgKiBDaGFyYWN0ZXIgc2V0IGRldGVjdGlvbiBpcyBhdCBiZXN0IGFuIGltcHJlY2lzZSBvcGVyYXRpb24uICBUaGUgZGV0ZWN0aW9uCisgKiBwcm9jZXNzIHdpbGwgYXR0ZW1wdCB0byBpZGVudGlmeSB0aGUgY2hhcnNldCB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgY2hhcmFjdGVyaXN0aWNzCisgKiBvZiB0aGUgYnl0ZSBkYXRhLCBidXQgdGhlIHByb2Nlc3MgaXMgcGFydGx5IHN0YXRpc3RpY2FsIGluIG5hdHVyZSwgYW5kCisgKiB0aGUgcmVzdWx0cyBjYW4gbm90IGJlIGd1YXJhbnRlZWQgdG8gYWx3YXlzIGJlIGNvcnJlY3QuCisgKiA8cC8+CisgKiBGb3IgYmVzdCBhY2N1cmFjeSBpbiBjaGFyc2V0IGRldGVjdGlvbiwgdGhlIGlucHV0IGRhdGEgc2hvdWxkIGJlIHByaW1hcmlseQorICogaW4gYSBzaW5nbGUgbGFuZ3VhZ2UsIGFuZCBhIG1pbmltdW0gb2YgYSBmZXcgaHVuZHJlZCBieXRlcyB3b3J0aCBvZiBwbGFpbiB0ZXh0CisgKiBpbiB0aGUgbGFuZ3VhZ2UgYXJlIG5lZWRlZC4gIFRoZSBkZXRlY3Rpb24gcHJvY2VzcyB3aWxsIGF0dGVtcHQgdG8KKyAqIGlnbm9yZSBodG1sIG9yIHhtbCBzdHlsZSBtYXJrdXAgdGhhdCBjb3VsZCBvdGhlcndpc2Ugb2JzY3VyZSB0aGUgY29udGVudC4KKyAqIDxwLz4KKyAqIEBkcmFmdCBJQ1UgMy40CisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIENoYXJzZXREZXRlY3RvciB7CisKKy8vICAgUXVlc3Rpb246IFNob3VsZCB3ZSBoYXZlIGdldHRlcnMgY29ycmVzcG9uZGluZyB0byB0aGUgc2V0dGVycyBmb3IgaW51dCB0ZXh0CisvLyAgIGFuZCBkZWNsYXJlZCBlbmNvZGluZz8KKworLy8gICBBIHRob3VnaHQ6IElmIHdlIHdlcmUgdG8gY3JlYXRlIG91ciBvd24gdHlwZSBvZiBKYXZhIFJlYWRlciwgd2UgY291bGQgZGVmZXIKKy8vICAgZmlndXJpbmcgb3V0IGFuIGFjdHVhbCBjaGFyc2V0IGZvciBkYXRhIHRoYXQgc3RhcnRzIG91dCB3aXRoIHRvbyBtdWNoIEVuZ2xpc2gKKy8vICAgb25seSBBU0NJSSB1bnRpbCB0aGUgdXNlciBhY3R1YWxseSByZWFkIHRocm91Z2ggdG8gc29tZXRoaW5nIHRoYXQgZGlkbid0IGxvb2sKKy8vICAgbGlrZSA3IGJpdCBFbmdsaXNoLiAgSWYgIG5vdGhpbmcgZWxzZSBldmVyIGFwcGVhcmVkLCB3ZSB3b3VsZCBuZXZlciBuZWVkIHRvCisvLyAgIGFjdHVhbGx5IGNob29zZSB0aGUgInJlYWwiIGNoYXJzZXQuICBBbGwgYXNzdW1pbmcgdGhhdCB0aGUgYXBwbGljYXRpb24ganVzdAorLy8gICB3YW50cyB0aGUgZGF0YSwgYW5kIGRvZXNuJ3QgY2FyZSBhYm91dCBhIGNoYXIgc2V0IG5hbWUuCisKKyAgICAvKioKKyAgICAgKiAgIENvbnN0cnVjdG9yCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcnNldERldGVjdG9yKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGVjbGFyZWQgZW5jb2RpbmcgZm9yIGNoYXJzZXQgZGV0ZWN0aW9uLgorICAgICAqICBUaGUgZGVjbGFyZWQgZW5jb2Rpbmcgb2YgYW4gaW5wdXQgdGV4dCBpcyBhbiBlbmNvZGluZyBvYnRhaW5lZAorICAgICAqICBmcm9tIGFuIGh0dHAgaGVhZGVyIG9yIHhtbCBkZWNsYXJhdGlvbiBvciBzaW1pbGFyIHNvdXJjZSB0aGF0CisgICAgICogIGNhbiBiZSBwcm92aWRlZCBhcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIHRoZSBjaGFyc2V0IGRldGVjdG9yLiAgCisgICAgICogIEEgbWF0Y2ggYmV0d2VlbiBhIGRlY2xhcmVkIGVuY29kaW5nIGFuZCBhIHBvc3NpYmxlIGRldGVjdGVkIGVuY29kaW5nCisgICAgICogIHdpbGwgcmFpc2UgdGhlIHF1YWxpdHkgb2YgdGhhdCBkZXRlY3RlZCBlbmNvZGluZyBieSBhIHNtYWxsIGRlbHRhLAorICAgICAqICBhbmQgd2lsbCBhbHNvIGFwcGVhciBhcyBhICJyZWFzb24iIGZvciB0aGUgbWF0Y2guCisgICAgICogPHAvPgorICAgICAqIEEgZGVjbGFyZWQgZW5jb2RpbmcgdGhhdCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgaW5wdXQgZGF0YSBiZWluZworICAgICAqIGFuYWx5emVkIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGVuY29kaW5ncy4KKyAgICAgKiAKKyAgICAgKiAgQHBhcmFtIGVuY29kaW5nIFRoZSBkZWNsYXJlZCBlbmNvZGluZyAKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoYXJzZXREZXRlY3RvciBzZXREZWNsYXJlZEVuY29kaW5nKFN0cmluZyBlbmNvZGluZykgeworICAgICAgICBmRGVjbGFyZWRFbmNvZGluZyA9IGVuY29kaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCB0ZXh0IChieXRlKSBkYXRhIHdob3NlIGNoYXJzZXQgaXMgdG8gYmUgZGV0ZWN0ZWQuCisgICAgICogCisgICAgICogQHBhcmFtIGluIHRoZSBpbnB1dCB0ZXh0IG9mIHVua25vd24gZW5jb2RpbmcKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoaXMgQ2hhcnNldERldGVjdG9yCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGFyc2V0RGV0ZWN0b3Igc2V0VGV4dChieXRlIFtdIGluKSB7CisgICAgICAgIGZSYXdJbnB1dCAgPSBpbjsKKyAgICAgICAgZlJhd0xlbmd0aCA9IGluLmxlbmd0aDsKKyAgICAgICAgCisgICAgICAgIE11bmdlSW5wdXQoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0J1ZlNpemUgPSA4MDAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCB0ZXh0IChieXRlKSBkYXRhIHdob3NlIGNoYXJzZXQgaXMgdG8gYmUgZGV0ZWN0ZWQuCisgICAgICogIDxwLz4KKyAgICAgKiAgIFRoZSBpbnB1dCBzdHJlYW0gdGhhdCBzdXBwbGllcyB0aGUgY2hhcmFjdGVyIGRhdGEgbXVzdCBoYXZlIG1hcmtTdXBwb3J0ZWQoKQorICAgICAqICAgPT0gdHJ1ZTsgdGhlIGNoYXJzZXQgZGV0ZWN0aW9uIHByb2Nlc3Mgd2lsbCByZWFkIGEgc21hbGwgYW1vdW50IG9mIGRhdGEsCisgICAgICogICB0aGVuIHJldHVybiB0aGUgc3RyZWFtIHRvIGl0cyBvcmlnaW5hbCBwb3NpdGlvbiB2aWEKKyAgICAgKiAgIHRoZSBJbnB1dFN0cmVhbS5yZXNldCgpIG9wZXJhdGlvbi4gIFRoZSBleGFjdCBhbW91bnQgdGhhdCB3aWxsCisgICAgICogICBiZSByZWFkIGRlcGVuZHMgb24gdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgZGF0YSBpdHNlbGYuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW4gdGhlIGlucHV0IHRleHQgb2YgdW5rbm93biBlbmNvZGluZworICAgICAqIAorICAgICAqIEByZXR1cm4gVGhpcyBDaGFyc2V0RGV0ZWN0b3IKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgCisgICAgcHVibGljIENoYXJzZXREZXRlY3RvciBzZXRUZXh0KElucHV0U3RyZWFtIGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBmSW5wdXRTdHJlYW0gPSBpbjsKKyAgICAgICAgZklucHV0U3RyZWFtLm1hcmsoa0J1ZlNpemUpOworICAgICAgICBmUmF3SW5wdXQgPSBuZXcgYnl0ZVtrQnVmU2l6ZV07ICAgLy8gQWx3YXlzIG1ha2UgYSBuZXcgYnVmZmVyIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHByZXZpb3VzIG9uZSBtYXkgaGF2ZSBjb21lIGZyb20gdGhlIGNhbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgaW4gd2hpY2ggY2FzZSB3ZSBjYW4ndCB0b3VjaCBpdC4KKyAgICAgICAgZlJhd0xlbmd0aCA9IDA7CisgICAgICAgIGludCByZW1haW5pbmdMZW5ndGggPSBrQnVmU2l6ZTsKKyAgICAgICAgd2hpbGUgKHJlbWFpbmluZ0xlbmd0aCA+IDAgKSB7CisgICAgICAgICAgICAvLyByZWFkKCkgbWF5IGdpdmUgZGF0YSBpbiBzbWFsbGlzaCBjaHVua3MsIGVzcC4gZm9yIHJlbW90ZSBzb3VyY2VzLiAgSGVuY2UsIHRoaXMgbG9vcC4KKyAgICAgICAgICAgIGludCAgYnl0ZXNSZWFkID0gZklucHV0U3RyZWFtLnJlYWQoZlJhd0lucHV0LCBmUmF3TGVuZ3RoLCByZW1haW5pbmdMZW5ndGgpOworICAgICAgICAgICAgaWYgKGJ5dGVzUmVhZCA8PSAwKSB7CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlJhd0xlbmd0aCArPSBieXRlc1JlYWQ7CisgICAgICAgICAgICByZW1haW5pbmdMZW5ndGggLT0gYnl0ZXNSZWFkOworICAgICAgICB9CisgICAgICAgIGZJbnB1dFN0cmVhbS5yZXNldCgpOworICAgICAgICAKKyAgICAgICAgTXVuZ2VJbnB1dCgpOyAgICAgICAgICAgICAgICAgICAgIC8vIFN0cmlwIGh0bWwgbWFya3VwLCBjb2xsZWN0IGJ5dGUgc3RhdHMuCisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJzZXQgdGhhdCBiZXN0IG1hdGNoZXMgdGhlIHN1cHBsaWVkIGlucHV0IGRhdGEuCisgICAgICogCisgICAgICogTm90ZSB0aG91Z2gsIHRoYXQgYmVjYXVzZSB0aGUgZGV0ZWN0aW9uIAorICAgICAqIG9ubHkgbG9va3MgYXQgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBkYXRhLAorICAgICAqIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgcmV0dXJuZWQgY2hhcnNldCB3aWxsIGZhaWwgdG8gaGFuZGxlCisgICAgICogdGhlIGZ1bGwgc2V0IG9mIGlucHV0IGRhdGEuCisgICAgICogPHAvPgorICAgICAqIFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiAKKyAgICAgKiAgPHVsPgorICAgICAqICAgIDxsaT5ubyBjaGFyc2V0IGFwcGVhcnMgdG8gbWF0Y2ggdGhlIGRhdGEuPC9saT4KKyAgICAgKiAgICA8bGk+bm8gaW5wdXQgdGV4dCBoYXMgYmVlbiBwcm92aWRlZDwvbGk+CisgICAgICogIDwvdWw+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgQ2hhcnNldE1hdGNoIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGJlc3QgbWF0Y2hpbmcgY2hhcnNldCwgb3IKKyAgICAgKiAgICAgICAgIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGFyZSBubyBtYXRjaGVzLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcnNldE1hdGNoIGRldGVjdCgpIHsKKy8vICAgVE9ETzogIEEgYmV0dGVyIGltcGxlbWVudGF0aW9uIHdvdWxkIGJlIHRvIGNvcHkgdGhlIGRldGVjdCBsb29wIGZyb20KKy8vICAgICAgICAgIGRldGVjdEFsbCgpLCBhbmQgY3V0IGl0IHNob3J0IGFzIHNvb24gYXMgYSBtYXRjaCB3aXRoIGEgaGlnaCBjb25maWRlbmNlCisvLyAgICAgICAgICBpcyBmb3VuZC4gIFRoaXMgaXMgc29tZXRoaW5nIHRvIGJlIGRvbmUgbGF0ZXIsIGFmdGVyIHRoaW5ncyBhcmUgb3RoZXJ3aXNlCisvLyAgICAgICAgICB3b3JraW5nLgorICAgICAgICBDaGFyc2V0TWF0Y2ggbWF0Y2hlc1tdID0gZGV0ZWN0QWxsKCk7CisgICAgICAgIAorICAgICAgICBpZiAobWF0Y2hlcyA9PSBudWxsIHx8IG1hdGNoZXMubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbWF0Y2hlc1swXTsKKyAgICAgfQorICAgIAorICAgIC8qKgorICAgICAqICBSZXR1cm4gYW4gYXJyYXkgb2YgYWxsIGNoYXJzZXRzIHRoYXQgYXBwZWFyIHRvIGJlIHBsYXVzaWJsZQorICAgICAqICBtYXRjaGVzIHdpdGggdGhlIGlucHV0IGRhdGEuICBUaGUgYXJyYXkgaXMgb3JkZXJlZCB3aXRoIHRoZQorICAgICAqICBiZXN0IHF1YWxpdHkgbWF0Y2ggZmlyc3QuCisgICAgICogPHAvPgorICAgICAqIFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiAKKyAgICAgKiAgPHVsPgorICAgICAqICAgIDxsaT5ubyBjaGFyc2V0cyBhcHBlYXIgdG8gbWF0Y2ggdGhlIGlucHV0IGRhdGEuPC9saT4KKyAgICAgKiAgICA8bGk+bm8gaW5wdXQgdGV4dCBoYXMgYmVlbiBwcm92aWRlZDwvbGk+CisgICAgICogIDwvdWw+CisgICAgICogCisgICAgICogQHJldHVybiBBbiBhcnJheSBvZiBDaGFyc2V0TWF0Y2ggb2JqZWN0cyByZXByZXNlbnRpbmcgcG9zc2libHkgbWF0Y2hpbmcgY2hhcnNldHMuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGFyc2V0TWF0Y2hbXSBkZXRlY3RBbGwoKSB7CisgICAgICAgIENoYXJzZXRSZWNvZ25pemVyIGNzcjsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgaTsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgZGV0ZWN0UmVzdWx0czsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgY29uZmlkZW5jZTsKKyAgICAgICAgQXJyYXlMaXN0ICAgICAgICAgbWF0Y2hlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgCisgICAgICAgIC8vICBJdGVyYXRlIG92ZXIgYWxsIHBvc3NpYmxlIGNoYXJzZXRzLCByZW1lbWJlciBhbGwgdGhhdAorICAgICAgICAvLyAgICBnaXZlIGEgbWF0Y2ggcXVhbGl0eSA+IDAuCisgICAgICAgIGZvciAoaT0wOyBpPGZDU1JlY29nbml6ZXJzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBjc3IgPSAoQ2hhcnNldFJlY29nbml6ZXIpZkNTUmVjb2duaXplcnMuZ2V0KGkpOworICAgICAgICAgICAgZGV0ZWN0UmVzdWx0cyA9IGNzci5tYXRjaCh0aGlzKTsKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSBkZXRlY3RSZXN1bHRzICYgMHgwMDAwMDBmZjsKKyAgICAgICAgICAgIGlmIChjb25maWRlbmNlID4gMCkgeworICAgICAgICAgICAgICAgIENoYXJzZXRNYXRjaCAgbSA9IG5ldyBDaGFyc2V0TWF0Y2godGhpcywgY3NyLCBjb25maWRlbmNlKTsKKyAgICAgICAgICAgICAgICBtYXRjaGVzLmFkZChtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KG1hdGNoZXMpOyAgICAgIC8vIENoYXJzZXRNYXRjaCBjb21wYXJlcyBvbiBjb25maWRlbmNlCisgICAgICAgIENvbGxlY3Rpb25zLnJldmVyc2UobWF0Y2hlcyk7ICAgLy8gIFB1dCBiZXN0IG1hdGNoIGZpcnN0LgorICAgICAgICBDaGFyc2V0TWF0Y2ggW10gcmVzdWx0QXJyYXkgPSBuZXcgQ2hhcnNldE1hdGNoW21hdGNoZXMuc2l6ZSgpXTsKKyAgICAgICAgcmVzdWx0QXJyYXkgPSAoQ2hhcnNldE1hdGNoW10pIG1hdGNoZXMudG9BcnJheShyZXN1bHRBcnJheSk7CisgICAgICAgIHJldHVybiByZXN1bHRBcnJheTsKKyAgICB9CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBBdXRvZGV0ZWN0IHRoZSBjaGFyc2V0IG9mIGFuIGlucHV0U3RyZWFtLCBhbmQgcmV0dXJuIGEgSmF2YSBSZWFkZXIKKyAgICAgKiB0byBhY2Nlc3MgdGhlIGNvbnZlcnRlZCBpbnB1dCBkYXRhLgorICAgICAqIDxwLz4KKyAgICAgKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgbWV0aG9kIHRoYXQgaXMgZXF1aXZhbGVudCB0bworICAgICAqICAgPGNvZGU+dGhpcy5zZXREZWNsYXJlZEVuY29kaW5nKGRlY2xhcmVkRW5jb2RpbmcpLnNldFRleHQoaW4pLmRldGVjdCgpLmdldFJlYWRlcigpOzwvY29kZT4KKyAgICAgKiA8cC8+CisgICAgICogICBGb3IgdGhlIGlucHV0IHN0cmVhbSB0aGF0IHN1cHBsaWVzIHRoZSBjaGFyYWN0ZXIgZGF0YSwgbWFya1N1cHBvcnRlZCgpCisgICAgICogICBtdXN0IGJlIHRydWU7IHRoZSAgY2hhcnNldCBkZXRlY3Rpb24gd2lsbCByZWFkIGEgc21hbGwgYW1vdW50IG9mIGRhdGEsCisgICAgICogICB0aGVuIHJldHVybiB0aGUgc3RyZWFtIHRvIGl0cyBvcmlnaW5hbCBwb3NpdGlvbiB2aWEKKyAgICAgKiAgIHRoZSBJbnB1dFN0cmVhbS5yZXNldCgpIG9wZXJhdGlvbi4gIFRoZSBleGFjdCBhbW91bnQgdGhhdCB3aWxsCisgICAgICogICAgYmUgcmVhZCBkZXBlbmRzIG9uIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGRhdGEgaXRzZWxmLgorICAgICAqPHAvPgorICAgICAqIFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiBubyBjaGFyc2V0cyBhcHBlYXIgdG8gbWF0Y2ggdGhlIGlucHV0IGRhdGEuCisgICAgICogCisgICAgICogQHBhcmFtIGluIFRoZSBzb3VyY2Ugb2YgdGhlIGJ5dGUgZGF0YSBpbiB0aGUgdW5rbm93biBjaGFyc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIGRlY2xhcmVkRW5jb2RpbmcgIEEgZGVjbGFyZWQgZW5jb2RpbmcgZm9yIHRoZSBkYXRhLCBpZiBhdmFpbGFibGUsCisgICAgICogICAgICAgICAgIG9yIG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vbmUgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVhZGVyIGdldFJlYWRlcihJbnB1dFN0cmVhbSBpbiwgU3RyaW5nIGRlY2xhcmVkRW5jb2RpbmcpIHsKKyAgICAgICAgZkRlY2xhcmVkRW5jb2RpbmcgPSBkZWNsYXJlZEVuY29kaW5nOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNldFRleHQoaW4pOworICAgICAgICAgICAgCisgICAgICAgICAgICBDaGFyc2V0TWF0Y2ggbWF0Y2ggPSBkZXRlY3QoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1hdGNoID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG1hdGNoLmdldFJlYWRlcigpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEF1dG9kZXRlY3QgdGhlIGNoYXJzZXQgb2YgYW4gaW5wdXRTdHJlYW0sIGFuZCByZXR1cm4gYSBTdHJpbmcKKyAgICAgKiBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgaW5wdXQgZGF0YS4KKyAgICAgKiA8cC8+CisgICAgICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIDxjb2RlPnRoaXMuc2V0RGVjbGFyZWRFbmNvZGluZyhkZWNsYXJlZEVuY29kaW5nKS5zZXRUZXh0KGluKS5kZXRlY3QoKS5nZXRTdHJpbmcoKTs8L2NvZGU+CisgICAgICo8cC8+CisgICAgICogUmFpc2UgYW4gZXhjZXB0aW9uIGlmIG5vIGNoYXJzZXRzIGFwcGVhciB0byBtYXRjaCB0aGUgaW5wdXQgZGF0YS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaW4gVGhlIHNvdXJjZSBvZiB0aGUgYnl0ZSBkYXRhIGluIHRoZSB1bmtub3duIGNoYXJzZXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVjbGFyZWRFbmNvZGluZyAgQSBkZWNsYXJlZCBlbmNvZGluZyBmb3IgdGhlIGRhdGEsIGlmIGF2YWlsYWJsZSwKKyAgICAgKiAgICAgICAgICAgb3IgbnVsbCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm9uZSBpcyBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKGJ5dGVbXSBpbiwgU3RyaW5nIGRlY2xhcmVkRW5jb2RpbmcpCisgICAgeworICAgICAgICBmRGVjbGFyZWRFbmNvZGluZyA9IGRlY2xhcmVkRW5jb2Rpbmc7CisgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXRUZXh0KGluKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2hhcnNldE1hdGNoIG1hdGNoID0gZGV0ZWN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtYXRjaCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBtYXRjaC5nZXRTdHJpbmcoLTEpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZXMgb2YgYWxsIGNoYXIgc2V0cyB0aGF0IGNhbiBiZSByZWNvZ25pemVkIGJ5IHRoZSBjaGFyIHNldCBkZXRlY3Rvci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIG5hbWVzIG9mIGFsbCBjaGFyc2V0cyB0aGF0IGNhbiBiZSByZWNvZ25pemVkCisgICAgICogYnkgdGhlIGNoYXJzZXQgZGV0ZWN0b3IuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QWxsRGV0ZWN0YWJsZUNoYXJzZXRzKCkgeworICAgICAgICByZXR1cm4gZkNoYXJzZXROYW1lczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB3aGV0aGVyIG9yIG5vdCBpbnB1dCBmaWx0ZXJpbmcgaXMgZW5hYmxlZC4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIGlucHV0IHRleHQgd2lsbCBiZSBmaWx0ZXJlZC4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNlbmFibGVJbnB1dEZpbHRlcgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbnB1dEZpbHRlckVuYWJsZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZTdHJpcFRhZ3M7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEVuYWJsZSBmaWx0ZXJpbmcgb2YgaW5wdXQgdGV4dC4gSWYgZmlsdGVyaW5nIGlzIGVuYWJsZWQsCisgICAgICogdGV4dCB3aXRoaW4gYW5nbGUgYnJhY2tldHMgKCI8IiBhbmQgIj4iKSB3aWxsIGJlIHJlbW92ZWQKKyAgICAgKiBiZWZvcmUgZGV0ZWN0aW9uLgorICAgICAqIAorICAgICAqIEBwYXJhbSBmaWx0ZXIgPGNvZGU+dHJ1ZTwvY29kZT4gdG8gZW5hYmxlIGlucHV0IHRleHQgZmlsdGVyaW5nLgorICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIHByZXZpb3VzIHNldHRpbmcuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVuYWJsZUlucHV0RmlsdGVyKGJvb2xlYW4gZmlsdGVyKQorICAgIHsKKyAgICAgICAgYm9vbGVhbiBwcmV2aW91cyA9IGZTdHJpcFRhZ3M7CisgICAgICAgIAorICAgICAgICBmU3RyaXBUYWdzID0gZmlsdGVyOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgTXVuZ2VJbnB1dCAtIGFmdGVyIGdldHRpbmcgYSBzZXQgb2YgcmF3IGlucHV0IGRhdGEgdG8gYmUgYW5hbHl6ZWQsIHByZXByb2Nlc3MKKyAgICAgKiAgICAgICAgICAgICAgIGl0IGJ5IHJlbW92aW5nIHdoYXQgYXBwZWFycyB0byBiZSBodG1sIG1hcmt1cC4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgTXVuZ2VJbnB1dCgpIHsKKyAgICAgICAgaW50IHNyY2kgPSAwOworICAgICAgICBpbnQgZHN0aSA9IDA7CisgICAgICAgIGJ5dGUgYjsKKyAgICAgICAgYm9vbGVhbiAgaW5NYXJrdXAgPSBmYWxzZTsKKyAgICAgICAgaW50ICAgICAgb3BlblRhZ3MgPSAwOworICAgICAgICBpbnQgICAgICBiYWRUYWdzICA9IDA7CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyAgaHRtbCAvIHhtbCBtYXJrdXAgc3RyaXBwaW5nLgorICAgICAgICAvLyAgICAgcXVpY2sgYW5kIGRpcnR5LCBub3QgMTAwJSBhY2N1cmF0ZSwgYnV0IGhvcGVmdWxseSBnb29kIGVub3VnaCwgc3RhdGlzdGljYWxseS4KKyAgICAgICAgLy8gICAgIGRpc2NhcmQgZXZlcnl0aGluZyB3aXRoaW4gPCBicmFja2V0cyA+CisgICAgICAgIC8vICAgICBDb3VudCBob3cgbWFueSB0b3RhbCAnPCcgYW5kIGlsbGVnYWwgKG5lc3RlZCkgJzwnIG9jY3VyLCBzbyB3ZSBjYW4gbWFrZSBzb21lCisgICAgICAgIC8vICAgICBndWVzcyBhcyB0byB3aGV0aGVyIHRoZSBpbnB1dCB3YXMgYWN0dWFsbHkgbWFya2VkIHVwIGF0IGFsbC4KKyAgICAgICAgaWYgKGZTdHJpcFRhZ3MpIHsKKyAgICAgICAgICAgIGZvciAoc3JjaSA9IDA7IHNyY2kgPCBmUmF3TGVuZ3RoICYmIGRzdGkgPCBmSW5wdXRCeXRlcy5sZW5ndGg7IHNyY2krKykgeworICAgICAgICAgICAgICAgIGIgPSBmUmF3SW5wdXRbc3JjaV07CisgICAgICAgICAgICAgICAgaWYgKGIgPT0gKGJ5dGUpJzwnKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbk1hcmt1cCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYmFkVGFncysrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGluTWFya3VwID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgb3BlblRhZ3MrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCEgaW5NYXJrdXApIHsKKyAgICAgICAgICAgICAgICAgICAgZklucHV0Qnl0ZXNbZHN0aSsrXSA9IGI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChiID09IChieXRlKSc+JykgeworICAgICAgICAgICAgICAgICAgICBpbk1hcmt1cCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmSW5wdXRMZW4gPSBkc3RpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyAgSWYgaXQgbG9va3MgbGlrZSB0aGlzIGlucHV0IHdhc24ndCBtYXJrZWQgdXAsIG9yIGlmIGl0IGxvb2tzIGxpa2UgaXQncworICAgICAgICAvLyAgICBlc3NlbnRpYWxseSBub3RoaW5nIGJ1dCBtYXJrdXAgYWJhbmRvbiB0aGUgbWFya3VwIHN0cmlwcGluZy4KKyAgICAgICAgLy8gICAgRGV0ZWN0aW9uIHdpbGwgaGF2ZSB0byB3b3JrIG9uIHRoZSB1bnN0cmlwcGVkIGlucHV0LgorICAgICAgICAvLworICAgICAgICBpZiAob3BlblRhZ3M8NSB8fCBvcGVuVGFncy81IDwgYmFkVGFncyB8fCAKKyAgICAgICAgICAgICAgICAoZklucHV0TGVuIDwgMTAwICYmIGZSYXdMZW5ndGg+NjAwKSkgeworICAgICAgICAgICAgaW50IGxpbWl0ID0gZlJhd0xlbmd0aDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxpbWl0ID4ga0J1ZlNpemUpIHsKKyAgICAgICAgICAgICAgICBsaW1pdCA9IGtCdWZTaXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKHNyY2k9MDsgc3JjaTxsaW1pdDsgc3JjaSsrKSB7CisgICAgICAgICAgICAgICAgZklucHV0Qnl0ZXNbc3JjaV0gPSBmUmF3SW5wdXRbc3JjaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmSW5wdXRMZW4gPSBzcmNpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBUYWxseSB1cCB0aGUgYnl0ZSBvY2N1cmVuY2Ugc3RhdGlzdGljcy4KKyAgICAgICAgLy8gICBUaGVzZSBhcmUgYXZhaWxhYmxlIGZvciB1c2UgYnkgdGhlIHZhcmlvdXMgZGV0ZWN0b3JzLgorICAgICAgICAvLworICAgICAgICBBcnJheXMuZmlsbChmQnl0ZVN0YXRzLCAoc2hvcnQpMCk7CisgICAgICAgIGZvciAoc3JjaT0wOyBzcmNpPGZJbnB1dExlbjsgc3JjaSsrKSB7CisgICAgICAgICAgICBpbnQgdmFsID0gZklucHV0Qnl0ZXNbc3JjaV0gJiAweDAwZmY7CisgICAgICAgICAgICBmQnl0ZVN0YXRzW3ZhbF0rKzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkMxQnl0ZXMgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4ODA7IGkgPD0gMHg5RjsgaSArPSAxKSB7CisgICAgICAgICAgICBpZiAoZkJ5dGVTdGF0c1tpXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZkMxQnl0ZXMgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgIH0KKworICAgIC8qKgorICAgICAqICBUaGUgZm9sbG93aW5nIGl0ZW1zIGFyZSBhY2Nlc3NlZCBieSBpbmRpdmlkdWFsIENoYXJzZXRSZWNvbmdpemVycyBkdXJpbmcKKyAgICAgKiAgICAgdGhlIHJlY29nbml0aW9uIHByb2Nlc3MKKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBieXRlW10gICAgICBmSW5wdXRCeXRlcyA9ICAgICAgIC8vIFRoZSB0ZXh0IHRvIGJlIGNoZWNrZWQuICBNYXJrdXAgd2lsbCBoYXZlIGJlZW4KKyAgICAgICAgICAgICAgICAgICBuZXcgYnl0ZVtrQnVmU2l6ZV07ICAvLyAgIHJlbW92ZWQgaWYgYXBwcm9wcmlhdGUuCisgICAgCisgICAgaW50ICAgICAgICAgZklucHV0TGVuOyAgICAgICAgICAvLyBMZW5ndGggb2YgdGhlIGJ5dGUgZGF0YSBpbiBmSW5wdXRUZXh0LgorICAgIAorICAgIHNob3J0ICAgICAgIGZCeXRlU3RhdHNbXSA9ICAgICAgLy8gYnl0ZSBmcmVxdWVuY3kgc3RhdGlzdGljcyBmb3IgdGhlIGlucHV0IHRleHQuCisgICAgICAgICAgICAgICAgICAgbmV3IHNob3J0WzI1Nl07ICAvLyAgIFZhbHVlIGlzIHBlcmNlbnQsIG5vdCBhYnNvbHV0ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgVmFsdWUgaXMgcm91bmRlZCB1cCwgc28gemVybyByZWFsbHkgbWVhbnMgemVybyBvY2N1cmVuY2VzLgorICAgIAorICAgIGJvb2xlYW4gICAgIGZDMUJ5dGVzID0gICAgICAgICAgLy8gVHJ1ZSBpZiBhbnkgYnl0ZXMgaW4gdGhlIHJhbmdlIDB4ODAgLSAweDlGIGFyZSBpbiB0aGUgaW5wdXQ7CisgICAgICAgICAgICAgICAgICAgZmFsc2U7CisgICAgCisgICAgU3RyaW5nICAgICAgZkRlY2xhcmVkRW5jb2Rpbmc7CisgICAgCisgICAgCisKKyAgICAvLworICAgIC8vICBTdHVmZiBwcml2YXRlIHRvIENoYXJzZXREZXRlY3RvcgorICAgIC8vCisgICAgYnl0ZVtdICAgICAgICAgICAgICAgZlJhd0lucHV0OyAgICAgLy8gT3JpZ2luYWwsIHVudG91Y2hlZCBpbnB1dCBieXRlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgSWYgdXNlciBnYXZlIHVzIGEgYnl0ZSBhcnJheSwgdGhpcyBpcyBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgSWYgdXNlciBnYXZlIHVzIGEgc3RyZWFtLCBpdCdzIHJlYWQgdG8gYSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgYnVmZmVyIGhlcmUuCisgICAgaW50ICAgICAgICAgICAgICAgICAgZlJhd0xlbmd0aDsgICAgLy8gTGVuZ3RoIG9mIGRhdGEgaW4gZlJhd0lucHV0IGFycmF5LgorICAgIAorICAgIElucHV0U3RyZWFtICAgICAgICAgIGZJbnB1dFN0cmVhbTsgIC8vIFVzZXIncyBpbnB1dCBzdHJlYW0sIG9yIG51bGwgaWYgdGhlIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGdhdmUgdXMgYSBieXRlIGFycmF5LgorICAgICAKKyAgICBib29sZWFuICAgICAgICAgICAgICBmU3RyaXBUYWdzID0gICAvLyBJZiB0cnVlLCBzZXRUZXh0KCkgd2lsbCBzdHJpcCB0YWdzIGZyb20gaW5wdXQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlOworICAgIAorICAgIAorICAgIC8qKgorICAgICAqICBMaXN0IG9mIHJlY29nbml6ZXJzIGZvciBhbGwgY2hhcnNldHMga25vd24gdG8gdGhlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgQXJyYXlMaXN0IGZDU1JlY29nbml6ZXJzID0gY3JlYXRlUmVjb2duaXplcnMoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgW10gZkNoYXJzZXROYW1lczsKKyAgICAKKyAgIC8qKgorICAgICAqIENyZWF0ZSB0aGUgc2luZ2xldG9uIGluc3RhbmNlcyBvZiB0aGUgQ2hhcnNldFJlY29nbml6ZXIgY2xhc3NlcworICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEFycmF5TGlzdCBjcmVhdGVSZWNvZ25pemVycygpIHsKKyAgICAgICAgQXJyYXlMaXN0IHJlY29nbml6ZXJzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfVVRGOCgpKTsKKyAgICAgICAgCisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX1VuaWNvZGUuQ2hhcnNldFJlY29nX1VURl8xNl9CRSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfVW5pY29kZS5DaGFyc2V0UmVjb2dfVVRGXzE2X0xFKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19Vbmljb2RlLkNoYXJzZXRSZWNvZ19VVEZfMzJfQkUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX1VuaWNvZGUuQ2hhcnNldFJlY29nX1VURl8zMl9MRSgpKTsKKyAgICAgICAgCisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX21iY3MuQ2hhcnNldFJlY29nX3NqaXMoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nXzIwMjIuQ2hhcnNldFJlY29nXzIwMjJKUCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfMjAyMi5DaGFyc2V0UmVjb2dfMjAyMkNOKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ18yMDIyLkNoYXJzZXRSZWNvZ18yMDIyS1IoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX21iY3MuQ2hhcnNldFJlY29nX2V1Yy5DaGFyc2V0UmVjb2dfZ2JfMTgwMzAoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX21iY3MuQ2hhcnNldFJlY29nX2V1Yy5DaGFyc2V0UmVjb2dfZXVjX2pwKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19tYmNzLkNoYXJzZXRSZWNvZ19ldWMuQ2hhcnNldFJlY29nX2V1Y19rcigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfbWJjcy5DaGFyc2V0UmVjb2dfYmlnNSgpKTsKKyAgICAgICAgCisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9kYSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX2RlKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfZW4oKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9lcygpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX2ZyKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfaXQoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9ubCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX25vKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfcHQoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9zdigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8yX2NzKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzJfaHUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMl9wbCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8yX3JvKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzVfcnUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfNl9hcigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV83X2VsKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzhfSV9oZSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV84X2hlKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTEoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1NigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfS09JOF9SKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzlfdHIoKSk7CisgICAgICAgIAorICAgICAgICAvLyBDcmVhdGUgYW4gYXJyYXkgb2YgYWxsIGNoYXJzZXQgbmFtZXMsIGFzIGEgc2lkZSBlZmZlY3QuCisgICAgICAgIC8vIE5lZWRlZCBmb3IgdGhlIGdldEFsbERldGVjdGFibGVDaGFyc2V0cygpIEFQSS4KKyAgICAgICAgU3RyaW5nW10gY2hhcnNldE5hbWVzID0gbmV3IFN0cmluZyBbcmVjb2duaXplcnMuc2l6ZSgpXTsKKyAgICAgICAgaW50IG91dCA9IDA7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlY29nbml6ZXJzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9ICgoQ2hhcnNldFJlY29nbml6ZXIpcmVjb2duaXplcnMuZ2V0KGkpKS5nZXROYW1lKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvdXQgPT0gMCB8fCAhIG5hbWUuZXF1YWxzKGNoYXJzZXROYW1lc1tvdXQgLSAxXSkpIHsKKyAgICAgICAgICAgICAgICBjaGFyc2V0TmFtZXNbb3V0KytdID0gbmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkNoYXJzZXROYW1lcyA9IG5ldyBTdHJpbmdbb3V0XTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShjaGFyc2V0TmFtZXMsIDAsIGZDaGFyc2V0TmFtZXMsIDAsIG91dCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVjb2duaXplcnM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldE1hdGNoLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0TWF0Y2guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTEzZGYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldE1hdGNoLmphdmEKQEAgLTAsMCArMSwyNzggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5SZWFkZXI7CisKKworLyoqCisgKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBjaGFyc2V0IHRoYXQgaGFzIGJlZW4gaWRlbnRpZmllZCBieSBhIENoYXJzZXREZXRlY3RvcgorICogYXMgYSBwb3NzaWJsZSBlbmNvZGluZyBmb3IgYSBzZXQgb2YgaW5wdXQgZGF0YS4gIEZyb20gYW4gaW5zdGFuY2Ugb2YgdGhpcworICogY2xhc3MsIHlvdSBjYW4gYXNrIGZvciBhIGNvbmZpZGVuY2UgbGV2ZWwgaW4gdGhlIGNoYXJzZXQgaWRlbnRpZmljYXRpb24sCisgKiBvciBmb3IgSmF2YSBSZWFkZXIgb3IgU3RyaW5nIHRvIGFjY2VzcyB0aGUgb3JpZ2luYWwgYnl0ZSBkYXRhIGluIFVuaWNvZGUgZm9ybS4KKyAqIDxwLz4KKyAqIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBjcmVhdGVkIG9ubHkgYnkgQ2hhcnNldERldGVjdG9ycy4KKyAqIDxwLz4KKyAqIE5vdGU6ICB0aGlzIGNsYXNzIGhhcyBhIG5hdHVyYWwgb3JkZXJpbmcgdGhhdCBpcyBpbmNvbnNpc3RlbnQgd2l0aCBlcXVhbHMuCisgKiAgICAgICAgVGhlIG5hdHVyYWwgb3JkZXJpbmcgaXMgYmFzZWQgb24gdGhlIG1hdGNoIGNvbmZpZGVuY2UgdmFsdWUuCisgKgorICogQGRyYWZ0IElDVSAzLjQKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgY2xhc3MgQ2hhcnNldE1hdGNoIGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBqYXZhLmlvLlJlYWRlciBmb3IgcmVhZGluZyB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0YSBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIG9yaWdpbmFsIGJ5dGUgZGF0YSBzdXBwbGllZCB0byB0aGUgQ2hhcnNldCBkZXRlY3Qgb3BlcmF0aW9uLgorICAgICAqIDxwLz4KKyAgICAgKiBDQVVUSU9OOiAgaWYgdGhlIHNvdXJjZSBvZiB0aGUgYnl0ZSBkYXRhIHdhcyBhbiBJbnB1dFN0cmVhbSwgYSBSZWFkZXIKKyAgICAgKiBjYW4gYmUgY3JlYXRlZCBmb3Igb25seSBvbmUgbWF0Y2hpbmcgY2hhciBzZXQgdXNpbmcgdGhpcyBtZXRob2QuICBJZiBtb3JlIAorICAgICAqIHRoYW4gb25lIGNoYXJzZXQgbmVlZHMgdG8gYmUgdHJpZWQsIHRoZSBjYWxsZXIgd2lsbCBuZWVkIHRvIHJlc2V0CisgICAgICogdGhlIElucHV0U3RyZWFtIGFuZCBjcmVhdGUgSW5wdXRTdHJlYW1SZWFkZXJzIGl0c2VsZiwgYmFzZWQgb24gdGhlIGNoYXJzZXQgbmFtZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIFJlYWRlciBmb3IgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSZWFkZXIgZ2V0UmVhZGVyKCkgeworICAgICAgICBJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSA9IGZJbnB1dFN0cmVhbTsKKyAgICAgICAgCisgICAgICAgIGlmIChpbnB1dFN0cmVhbSA9PSBudWxsKSB7CisgICAgICAgICAgICBpbnB1dFN0cmVhbSA9IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShmUmF3SW5wdXQsIDAsIGZSYXdMZW5ndGgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXRTdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaW5wdXRTdHJlYW0sIGdldE5hbWUoKSk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgSmF2YSBTdHJpbmcgZnJvbSBVbmljb2RlIGNoYXJhY3RlciBkYXRhIGNvcnJlc3BvbmRpbmcKKyAgICAgKiB0byB0aGUgb3JpZ2luYWwgYnl0ZSBkYXRhIHN1cHBsaWVkIHRvIHRoZSBDaGFyc2V0IGRldGVjdCBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIGNyZWF0ZWQgZnJvbSB0aGUgY29udmVydGVkIGlucHV0IGRhdGEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKCkgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmluZygtMSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBKYXZhIFN0cmluZyBmcm9tIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGEgY29ycmVzcG9uZGluZworICAgICAqIHRvIHRoZSBvcmlnaW5hbCBieXRlIGRhdGEgc3VwcGxpZWQgdG8gdGhlIENoYXJzZXQgZGV0ZWN0IG9wZXJhdGlvbi4KKyAgICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSByZXR1cm5lZCBzdHJpbmcgaXMgbGltaXRlZCB0byB0aGUgc3BlY2lmaWVkIHNpemU7CisgICAgICogdGhlIHN0cmluZyB3aWxsIGJlIHRydW5jdGF0ZWQgdG8gdGhpcyBsZW5ndGggaWYgbmVjZXNzYXJ5LiAgQSBsaW1pdCB2YWx1ZSBvZgorICAgICAqIHplcm8gb3IgbGVzcyBpcyBpZ25vcmVkLCBhbmQgdHJlYXRlZCBhcyBubyBsaW1pdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXhMZW5ndGggVGhlIG1heGltaXVtIGxlbmd0aCBvZiB0aGUgU3RyaW5nIHRvIGJlIGNyZWF0ZWQgd2hlbiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHNvdXJjZSBvZiB0aGUgZGF0YSBpcyBhbiBpbnB1dCBzdHJlYW0sIG9yIC0xIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgdW5saW1pdGVkIGxlbmd0aC4KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIGNyZWF0ZWQgZnJvbSB0aGUgY29udmVydGVkIGlucHV0IGRhdGEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKGludCBtYXhMZW5ndGgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG51bGw7CisgICAgICAgIGlmIChmSW5wdXRTdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzEwMjRdOworICAgICAgICAgICAgUmVhZGVyIHJlYWRlciA9IGdldFJlYWRlcigpOworICAgICAgICAgICAgaW50IG1heCA9IG1heExlbmd0aCA8IDA/IEludGVnZXIuTUFYX1ZBTFVFIDogbWF4TGVuZ3RoOworICAgICAgICAgICAgaW50IGJ5dGVzUmVhZCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICgoYnl0ZXNSZWFkID0gcmVhZGVyLnJlYWQoYnVmZmVyLCAwLCBNYXRoLm1pbihtYXgsIDEwMjQpKSkgPj0gMCkgeworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChidWZmZXIsIDAsIGJ5dGVzUmVhZCk7CisgICAgICAgICAgICAgICAgbWF4IC09IGJ5dGVzUmVhZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVhZGVyLmNsb3NlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZyhmUmF3SW5wdXQsIGdldE5hbWUoKSk7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgYW4gaW5kaWNhdGlvbiBvZiB0aGUgY29uZmlkZW5jZSBpbiB0aGUgY2hhcnNldCBkZXRlY3RlZC4KKyAgICAgKiBDb25maWRlbmNlIHZhbHVlcyByYW5nZSBmcm9tIDAtMTAwLCB3aXRoIGxhcmdlciBudW1iZXJzIGluZGljYXRpbmcKKyAgICAgKiBhIGJldHRlciBtYXRjaCBvZiB0aGUgaW5wdXQgZGF0YSB0byB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZQorICAgICAqIGNoYXJzZXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBjb25maWRlbmNlIGluIHRoZSBjaGFyc2V0IG1hdGNoCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29uZmlkZW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGZDb25maWRlbmNlOworICAgIH0KKyAgICAKKworICAgIC8qKgorICAgICAqIEJpdCBmbGFnIGluZGljYXRpbmcgdGhlIG1hdGNoIGlzIGJhc2VkIG9uIHRoZSB0aGUgZW5jb2Rpbmcgc2NoZW1lLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0TWF0Y2hUeXBlCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBFTkNPRElOR19TQ0hFTUUgICAgPSAxOworICAgIAorICAgIC8qKgorICAgICAqIEJpdCBmbGFnIGluZGljYXRpbmcgdGhlIG1hdGNoIGlzIGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBhIEJPTS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRNYXRjaFR5cGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgaW50IEJPTSAgICAgICAgICAgICAgICA9IDI7CisgICAgCisgICAgLyoqCisgICAgICogQml0IGZsYWcgaW5kaWNhdGluZyBoZSBtYXRjaCBpcyBiYXNlZCBvbiB0aGUgZGVjbGFyZWQgZW5jb2RpbmcuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0TWF0Y2hUeXBlCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBERUNMQVJFRF9FTkNPRElORyAgPSA0OworICAgIAorICAgIC8qKgorICAgICAqIEJpdCBmbGFnIGluZGljYXRpbmcgdGhlIG1hdGNoIGlzIGJhc2VkIG9uIGxhbmd1YWdlIHN0YXRpc3RpY3MuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNYXRjaFR5cGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgaW50IExBTkdfU1RBVElTVElDUyAgICA9IDg7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGZsYWdzIGluZGljYXRpbmcgd2hhdCBpdCB3YXMgYWJvdXQgdGhlIGlucHV0IGRhdGEgCisgICAgICogdGhhdCBjYXVzZWQgdGhpcyBjaGFyc2V0IHRvIGJlIGNvbnNpZGVyZWQgYXMgYSBwb3NzaWJsZSBtYXRjaC4KKyAgICAgKiBUaGUgcmVzdWx0IGlzIGEgYml0ZmllbGQgY29udGFpbmluZyB6ZXJvIG9yIG1vcmUgb2YgdGhlIGZsYWdzCisgICAgICogRU5DT0RJTkdfU0NIRU1FLCBCT00sIERFQ0xBUkVEX0VOQ09ESU5HLCBhbmQgTEFOR19TVEFUSVNUSUNTLgorICAgICAqIEEgcmVzdWx0IG9mIHplcm8gbWVhbnMgbm8gaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IGN1cnJlbnRseSwgdGhpcyBtZXRob2QgYWx3YXlzIHJldHVybnMgemVyby4KKyAgICAgKiA8cD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHR5cGUgb2YgbWF0Y2ggZm91bmQgZm9yIHRoaXMgY2hhcnNldC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXRjaFR5cGUoKSB7CisvLyAgICAgIFRPRE86IGNyZWF0ZSBhIGxpc3Qgb2YgZW51bS1saWtlIGNvbnN0YW50cyBmb3IgY29tbW9uIGNvbWJpbmF0aW9ucyBvZiB0eXBlcyBvZiBtYXRjaGVzLgorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIGRldGVjdGVkIGNoYXJzZXQuICAKKyAgICAgKiBUaGUgbmFtZSB3aWxsIGJlIG9uZSB0aGF0IGNhbiBiZSB1c2VkIHdpdGggb3RoZXIgQVBJcyBvbiB0aGUKKyAgICAgKiBwbGF0Zm9ybSB0aGF0IGFjY2VwdCBjaGFyc2V0IG5hbWVzLiAgSXQgaXMgdGhlICJDYW5vbmljYWwgbmFtZSIKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBjbGFzcyBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQ7IGZvcgorICAgICAqIGNoYXJzZXRzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgSUFOQSBjaGFyc2V0IHJlZ2lzdHJ5LAorICAgICAqIHRoaXMgaXMgdGhlIE1JTUUtcHJlZmVycmVkIHJlZ2lzdGVyZCBuYW1lLgorICAgICAqCisgICAgICogQHNlZSBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQKKyAgICAgKiBAc2VlIGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXIKKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIG5hbWUgb2YgdGhlIGNoYXJzZXQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGZSZWNvZ25pemVyLmdldE5hbWUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBJU08gY29kZSBmb3IgdGhlIGxhbmd1YWdlIG9mIHRoZSBkZXRlY3RlZCBjaGFyc2V0LiAgCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBJU08gY29kZSBmb3IgdGhlIGxhbmd1YWdlIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBsYW5ndWFnZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpIHsKKyAgICAgICAgcmV0dXJuIGZSZWNvZ25pemVyLmdldExhbmd1YWdlKCk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmUgdG8gb3RoZXIgQ2hhcnNldE1hdGNoIG9iamVjdHMuCisgICAgICogQ29tcGFyaXNvbiBpcyBiYXNlZCBvbiB0aGUgbWF0Y2ggY29uZmlkZW5jZSB2YWx1ZSwgd2hpY2ggCisgICAgICogICBhbGxvd3MgQ2hhcnNldERldGVjdG9yLmRldGVjdEFsbCgpIHRvIG9yZGVyIGl0cyByZXN1bHRzLiAKKyAgICAgKgorICAgICAqIEBwYXJhbSBvIHRoZSBDaGFyc2V0TWF0Y2ggb2JqZWN0IHRvIGNvbXBhcmUgYWdhaW5zdC4KKyAgICAgKiBAcmV0dXJuICBhIG5lZ2F0aXZlIGludGVnZXIsIHplcm8sIG9yIGEgcG9zaXRpdmUgaW50ZWdlciBhcyB0aGUgCisgICAgICogICAgICAgICAgY29uZmlkZW5jZSBsZXZlbCBvZiB0aGlzIENoYXJzZXRNYXRjaAorICAgICAqCQlpcyBsZXNzIHRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVyIHRoYW4gdGhhdCBvZgorICAgICAqICAgICAgICAgIHRoZSBhcmd1bWVudC4KKyAgICAgKiBAdGhyb3dzIENsYXNzQ2FzdEV4Y2VwdGlvbiBpZiB0aGUgYXJndW1lbnQgaXMgbm90IGEgQ2hhcnNldE1hdGNoLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8gKE9iamVjdCBvKSB7CisgICAgICAgIENoYXJzZXRNYXRjaCBvdGhlciA9IChDaGFyc2V0TWF0Y2gpbzsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSAwOworICAgICAgICBpZiAodGhpcy5mQ29uZmlkZW5jZSA+IG90aGVyLmZDb25maWRlbmNlKSB7CisgICAgICAgICAgICBjb21wYXJlUmVzdWx0ID0gMTsKKyAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZDb25maWRlbmNlIDwgb3RoZXIuZkNvbmZpZGVuY2UpIHsKKyAgICAgICAgICAgIGNvbXBhcmVSZXN1bHQgPSAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29tcGFyZVJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIENvbnN0cnVjdG9yLiAgSW1wbGVtZW50YXRpb24gaW50ZXJuYWwKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIENoYXJzZXRNYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0LCBDaGFyc2V0UmVjb2duaXplciByZWMsIGludCBjb25mKSB7CisgICAgICAgIGZSZWNvZ25pemVyID0gcmVjOworICAgICAgICBmQ29uZmlkZW5jZSA9IGNvbmY7CisgICAgICAgIAorICAgICAgICAvLyBUaGUgcmVmZXJlbmNlcyB0byB0aGUgb3JpZ2luYWwgYXBsaWNhdGlvbiBpbnB1dCBkYXRhIG11c3QgYmUgY29waWVkIG91dAorICAgICAgICAvLyAgIG9mIHRoZSBjaGFyc2V0IHJlY29nbml6ZXIgdG8gaGVyZSwgaW4gY2FzZSB0aGUgYXBwbGljYXRpb24gcmVzZXRzIHRoZQorICAgICAgICAvLyAgIHJlY29nbml6ZXIgYmVmb3JlIHVzaW5nIHRoaXMgQ2hhcnNldE1hdGNoLgorICAgICAgICBpZiAoZGV0LmZJbnB1dFN0cmVhbSA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBXZSBvbmx5IHdhbnQgdGhlIGV4aXN0aW5nIGlucHV0IGJ5dGUgZGF0YSBpZiBpdCBjYW1lIHN0cmFpZ2h0IGZyb20gdGhlIHVzZXIsCisgICAgICAgICAgICAvLyAgIG5vdCBpZiBpcyBqdXN0IHRoZSBoZWFkIG9mIGEgc3RyZWFtLgorICAgICAgICAgICAgZlJhd0lucHV0ICAgID0gZGV0LmZSYXdJbnB1dDsKKyAgICAgICAgICAgIGZSYXdMZW5ndGggICA9IGRldC5mUmF3TGVuZ3RoOworICAgICAgICB9CisgICAgICAgIGZJbnB1dFN0cmVhbSA9IGRldC5mSW5wdXRTdHJlYW07CisgICAgfQorCisgICAgCisgICAgLy8KKyAgICAvLyAgIFByaXZhdGUgRGF0YQorICAgIC8vCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgICAgIGZDb25maWRlbmNlOworICAgIHByaXZhdGUgQ2hhcnNldFJlY29nbml6ZXIgICBmUmVjb2duaXplcjsKKyAgICBwcml2YXRlIGJ5dGVbXSAgICAgICAgICAgICAgZlJhd0lucHV0ID0gbnVsbDsgICAgIC8vIE9yaWdpbmFsLCB1bnRvdWNoZWQgaW5wdXQgYnl0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgSWYgdXNlciBnYXZlIHVzIGEgYnl0ZSBhcnJheSwgdGhpcyBpcyBpdC4KKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgICAgZlJhd0xlbmd0aDsgICAgICAgICAgIC8vIExlbmd0aCBvZiBkYXRhIGluIGZSYXdJbnB1dCBhcnJheS4KKworICAgIHByaXZhdGUgSW5wdXRTdHJlYW0gICAgICAgICBmSW5wdXRTdHJlYW0gPSBudWxsOyAgLy8gVXNlcidzIGlucHV0IHN0cmVhbSwgb3IgbnVsbCBpZiB0aGUgdXNlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBnYXZlIHVzIGEgYnl0ZSBhcnJheS4KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ18yMDIyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfMjAyMi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ODUxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfMjAyMi5qYXZhCkBAIC0wLDAgKzEsMTYyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiAgY2xhc3MgQ2hhcnNldFJlY29nXzIwMjIgIHBhcnQgb2YgdGhlIElDVSBjaGFyc2V0IGRldGVjdGlvbiBpbWxlbWVudGF0aW9uLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGEgc3VwZXJjbGFzcyBmb3IgdGhlIGluZGl2aWR1YWwgZGV0ZWN0b3JzIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBlYWNoIG9mIHRoZSBkZXRlY3RhYmxlIG1lbWJlcnMgb2YgdGhlIElTTyAyMDIyIGZhbWlseQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBlbmNvZGluZ3MuCisgKiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHNlcGFyYXRlIGNsYXNzZXMgYXJlIG5lc3RlZCB3aXRoaW4gdGhpcyBjbGFzcy4KKyAqIAorICogQGludGVybmFsCisgKi8KK2Fic3RyYWN0IGNsYXNzIENoYXJzZXRSZWNvZ18yMDIyIGV4dGVuZHMgQ2hhcnNldFJlY29nbml6ZXIgeworCisgICAgCisgICAgLyoqCisgICAgICogTWF0Y2hpbmcgZnVuY3Rpb24gc2hhcmVkIGFtb25nIHRoZSAyMDIyIGRldGVjdG9ycyBKUCwgQ04gYW5kIEtSCisgICAgICogQ291bnRzIHVwIHRoZSBudW1iZXIgb2YgbGVnYWwgYW4gdW5yZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZXMgaW4KKyAgICAgKiB0aGUgc2FtcGxlIG9mIHRleHQsIGFuZCBjb21wdXRlcyBhIHNjb3JlIGJhc2VkIG9uIHRoZSB0b3RhbCBudW1iZXIgJgorICAgICAqIHRoZSBwcm9wb3J0aW9uIHRoYXQgZml0IHRoZSBlbmNvZGluZy4KKyAgICAgKiAKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnl0ZSBidWZmZXIgY29udGFpbmluZyB0ZXh0IHRvIGFuYWx5c2UKKyAgICAgKiBAcGFyYW0gdGV4dExlbiAgdGhlIHNpemUgb2YgdGhlIHRleHQgaW4gdGhlIGJ5dGUuCisgICAgICogQHBhcmFtIGVzY2FwZVNlcXVlbmNlcyB0aGUgYnl0ZSBlc2NhcGUgc2VxdWVuY2VzIHRvIHRlc3QgZm9yLgorICAgICAqIEByZXR1cm4gbWF0Y2ggcXVhbGl0eSwgaW4gdGhlIHJhbmdlIG9mIDAtMTAwLgorICAgICAqLworICAgIGludCAgIG1hdGNoKGJ5dGUgW10gdGV4dCwgaW50IHRleHRMZW4sIGJ5dGUgW11bXSBlc2NhcGVTZXF1ZW5jZXMpIHsKKyAgICAgICAgaW50ICAgICBpLCBqOworICAgICAgICBpbnQgICAgIGVzY047CisgICAgICAgIGludCAgICAgaGl0cyAgID0gMDsKKyAgICAgICAgaW50ICAgICBtaXNzZXMgPSAwOworICAgICAgICBpbnQgICAgIHNoaWZ0cyA9IDA7CisgICAgICAgIGludCAgICAgcXVhbGl0eTsKKyAgICAgICAgc2NhbklucHV0OgorICAgICAgICAgICAgZm9yIChpPTA7IGk8dGV4dExlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRleHRbaV0gPT0gMHgxYikgeworICAgICAgICAgICAgICAgICAgICBjaGVja0VzY2FwZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGVzY049MDsgZXNjTjxlc2NhcGVTZXF1ZW5jZXMubGVuZ3RoOyBlc2NOKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIFtdIHNlcSA9IGVzY2FwZVNlcXVlbmNlc1tlc2NOXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGo9MTsgajxzZXEubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlcVtqXSAhPSB0ZXh0W2kral0pICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBjaGVja0VzY2FwZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXRzKys7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gc2VxLmxlbmd0aC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIHNjYW5JbnB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NlcysrOyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGV4dFtpXSA9PSAweDBlIHx8IHRleHRbaV0gPT0gMHgwZikgeworICAgICAgICAgICAgICAgICAgICAvLyBTaGlmdCBpbi9vdXQKKyAgICAgICAgICAgICAgICAgICAgc2hpZnRzKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGhpdHMgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIEluaXRpYWwgcXVhbGl0eSBpcyBiYXNlZCBvbiByZWxhdGl2ZSBwcm9wb3J0aW9uIG9mIHJlY29uZ2l6ZWQgdnMuCisgICAgICAgIC8vICAgdW5yZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZXMuIAorICAgICAgICAvLyAgIEFsbCBnb29kOiAgcXVhbGl0eSA9IDEwMDsKKyAgICAgICAgLy8gICBoYWxmIG9yIGxlc3MgZ29vZDogcXVhbGl0eSA9IDA7CisgICAgICAgIC8vICAgbGluZWFyIGluYmV0d2Vlbi4KKyAgICAgICAgcXVhbGl0eSA9ICgxMDAqaGl0cyAtIDEwMCptaXNzZXMpIC8gKGhpdHMgKyBtaXNzZXMpOworICAgICAgICAKKyAgICAgICAgLy8gQmFjayBvZmYgcXVhbGl0eSBpZiB0aGVyZSB3ZXJlIHRvbyBmZXcgZXNjYXBlIHNlcXVlbmNlcyBzZWVuLgorICAgICAgICAvLyAgIEluY2x1ZGUgc2hpZnRzIGluIHRoaXMgY29tcHV0YXRpb24sIHNvIHRoYXQgS1IgZG9lcyBub3QgZ2V0IHBlbmFsaXplZAorICAgICAgICAvLyAgIGZvciBoYXZpbmcgb25seSBhIHNpbmdsZSBFc2NhcGUgc2VxdWVuY2UsIGJ1dCBtYW55IHNoaWZ0cy4KKyAgICAgICAgaWYgKGhpdHMrc2hpZnRzIDwgNSkgeworICAgICAgICAgICAgcXVhbGl0eSAtPSAoNS0oaGl0cytzaGlmdHMpKSoxMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHF1YWxpdHkgPCAwKSB7CisgICAgICAgICAgICBxdWFsaXR5ID0gMDsKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIHJldHVybiBxdWFsaXR5OworICAgIH0KKworICAgIAorIAorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfMjAyMkpQIGV4dGVuZHMgQ2hhcnNldFJlY29nXzIwMjIgeworICAgICAgICBwcml2YXRlIGJ5dGUgW10gW10gZXNjYXBlU2VxdWVuY2VzID0geworICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDI4LCAweDQzfSwgICAvLyBLUyBYIDEwMDE6MTk5MgorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDI4LCAweDQ0fSwgICAvLyBKSVMgWCAyMTItMTk5MAorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDQwfSwgICAgICAgICAvLyBKSVMgQyA2MjI2LTE5NzgKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHg0MX0sICAgICAgICAgLy8gR0IgMjMxMi04MAorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDQyfSwgICAgICAgICAvLyBKSVMgWCAyMDgtMTk4MworICAgICAgICAgICAgICAgIHsweDFiLCAweDI2LCAweDQwfSwgICAgICAgICAvLyBKSVMgWCAyMDggMTk5MCwgMTk5NworICAgICAgICAgICAgICAgIHsweDFiLCAweDI4LCAweDQyfSwgICAgICAgICAvLyBBU0NJSQorICAgICAgICAgICAgICAgIHsweDFiLCAweDI4LCAweDQ4fSwgICAgICAgICAvLyBKSVMtUm9tYW4KKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyOCwgMHg0OX0sICAgICAgICAgLy8gSGFsZi13aWR0aCBrYXRha2FuYQorICAgICAgICAgICAgICAgIHsweDFiLCAweDI4LCAweDRhfSwgICAgICAgICAvLyBKSVMtUm9tYW4KKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyZSwgMHg0MX0sICAgICAgICAgLy8gSVNPIDg4NTktMQorICAgICAgICAgICAgICAgIHsweDFiLCAweDJlLCAweDQ2fSAgICAgICAgICAvLyBJU08gODg1OS03CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuICJJU08tMjAyMi1KUCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCAgIG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQuZklucHV0Qnl0ZXMsIGRldC5mSW5wdXRMZW4sIGVzY2FwZVNlcXVlbmNlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzIwMjJLUiBleHRlbmRzIENoYXJzZXRSZWNvZ18yMDIyIHsKKyAgICAgICAgcHJpdmF0ZSBieXRlIFtdIFtdIGVzY2FwZVNlcXVlbmNlcyA9IHsKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyOSwgMHg0M30gICAKKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuICJJU08tMjAyMi1LUiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCAgIG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQuZklucHV0Qnl0ZXMsIGRldC5mSW5wdXRMZW4sIGVzY2FwZVNlcXVlbmNlcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ18yMDIyQ04gZXh0ZW5kcyBDaGFyc2V0UmVjb2dfMjAyMiB7CisgICAgICAgIHByaXZhdGUgYnl0ZSBbXSBbXSBlc2NhcGVTZXF1ZW5jZXMgPSB7CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MjksIDB4NDF9LCAgIC8vIEdCIDIzMTItODAKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyOSwgMHg0N30sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgMQorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDJBLCAweDQ4fSwgICAvLyBDTlMgMTE2NDMtMTk5MiBQbGFuZSAyCisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MjksIDB4NDV9LCAgIC8vIElTTy1JUi0xNjUKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyQiwgMHg0OX0sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgMworICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDJCLCAweDRBfSwgICAvLyBDTlMgMTE2NDMtMTk5MiBQbGFuZSA0CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MkIsIDB4NEJ9LCAgIC8vIENOUyAxMTY0My0xOTkyIFBsYW5lIDUKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyQiwgMHg0Q30sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgNgorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDJCLCAweDREfSwgICAvLyBDTlMgMTE2NDMtMTk5MiBQbGFuZSA3CisgICAgICAgICAgICAgICAgezB4MWIsIDB4NGV9LCAgICAgICAgICAgICAgIC8vIFNTMgorICAgICAgICAgICAgICAgIHsweDFiLCAweDRmfSwgICAgICAgICAgICAgICAvLyBTUzMKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuICJJU08tMjAyMi1DTiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpbnQgICBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LmZJbnB1dEJ5dGVzLCBkZXQuZklucHV0TGVuLCBlc2NhcGVTZXF1ZW5jZXMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIH0KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX1VURjguamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19VVEY4LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNiZWFmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19VVEY4LmphdmEKQEAgLTAsMCArMSw5OSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIENoYXJzZXQgcmVjb2duaXplciBmb3IgVVRGLTgKKyAqCisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgQ2hhcnNldFJlY29nX1VURjggZXh0ZW5kcyBDaGFyc2V0UmVjb2duaXplciB7CisKKyAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuICJVVEYtOCI7CisgICAgfQorCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNtYXRjaChjb20uaWJtLmljdS50ZXh0LkNoYXJzZXREZXRlY3RvcikKKyAgICAgKi8KKyAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICBib29sZWFuICAgICBoYXNCT00gPSBmYWxzZTsKKyAgICAgICAgaW50ICAgICAgICAgbnVtVmFsaWQgPSAwOworICAgICAgICBpbnQgICAgICAgICBudW1JbnZhbGlkID0gMDsKKyAgICAgICAgYnl0ZSAgICAgICAgaW5wdXRbXSA9IGRldC5mUmF3SW5wdXQ7CisgICAgICAgIGludCAgICAgICAgIGk7CisgICAgICAgIGludCAgICAgICAgIHRyYWlsQnl0ZXMgPSAwOworICAgICAgICBpbnQgICAgICAgICBjb25maWRlbmNlOworICAgICAgICAKKyAgICAgICAgaWYgKGRldC5mUmF3TGVuZ3RoID49IDMgJiYgCisgICAgICAgICAgICAgICAgaW5wdXRbMF09PTB4ZWYgJiYgaW5wdXRbMV09PTB4YmIgJiBpbnB1dFsyXT09MHhiZikgeworICAgICAgICAgICAgaGFzQk9NID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU2NhbiBmb3IgbXVsdGktYnl0ZSBzZXF1ZW5jZXMKKyAgICAgICAgZm9yIChpPTA7IGk8ZGV0LmZSYXdMZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50IGIgPSBpbnB1dFtpXTsKKyAgICAgICAgICAgIGlmICgoYiAmIDB4ODApID09IDApIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgICAvLyBBU0NJSQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBIaSBiaXQgb24gY2hhciBmb3VuZC4gIEZpZ3VyZSBvdXQgaG93IGxvbmcgdGhlIHNlcXVlbmNlIHNob3VsZCBiZQorICAgICAgICAgICAgaWYgKChiICYgMHgwZTApID09IDB4MGMwKSB7CisgICAgICAgICAgICAgICAgdHJhaWxCeXRlcyA9IDE7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIGlmICgoYiAmIDB4MGYwKSA9PSAweDBlMCkgeworICAgICAgICAgICAgICAgIHRyYWlsQnl0ZXMgPSAyOworICAgICAgICAgICAgfSBlbHNlIGlmICgoYiAmIDB4MGY4KSA9PSAweGYwKSB7CisgICAgICAgICAgICAgICAgdHJhaWxCeXRlcyA9IDM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bUludmFsaWQrKzsKKyAgICAgICAgICAgICAgICBpZiAobnVtSW52YWxpZCA+IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyYWlsQnl0ZXMgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgd2UndmUgZ290IHRoZSByaWdodCBudW1iZXIgb2YgdHJhaWwgYnl0ZXMgaW4gdGhlIHNlcXVlbmNlCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgIGlmIChpPj1kZXQuZlJhd0xlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYiA9IGlucHV0W2ldOworICAgICAgICAgICAgICAgIGlmICgoYiAmIDB4YzApICE9IDB4MDgwKSB7CisgICAgICAgICAgICAgICAgICAgIG51bUludmFsaWQrKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgtLXRyYWlsQnl0ZXMgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBudW1WYWxpZCsrOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQ29vayB1cCBzb21lIHNvcnQgb2YgY29uZmlkZW5jZSBzY29yZSwgYmFzZWQgb24gcHJlc2Vuc2Ugb2YgYSBCT00KKyAgICAgICAgLy8gICAgYW5kIHRoZSBleGlzdGVuY2Ugb2YgdmFsaWQgYW5kL29yIGludmFsaWQgbXVsdGktYnl0ZSBzZXF1ZW5jZXMuCisgICAgICAgIGNvbmZpZGVuY2UgPSAwOworICAgICAgICBpZiAoaGFzQk9NICYmIG51bUludmFsaWQ9PTApIHsKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDA7CisgICAgICAgIH0gZWxzZSBpZiAoaGFzQk9NICYmIG51bVZhbGlkID4gbnVtSW52YWxpZCoxMCkgeworICAgICAgICAgICAgY29uZmlkZW5jZSA9IDgwOworICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID4gMyAmJiBudW1JbnZhbGlkID09IDApIHsKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDA7ICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZSBpZiAobnVtVmFsaWQgPiAwICYmIG51bUludmFsaWQgPT0gMCkgeworICAgICAgICAgICAgY29uZmlkZW5jZSA9IDgwOworICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID09IDAgJiYgbnVtSW52YWxpZCA9PSAwKSB7CisgICAgICAgICAgICAvLyBQbGFpbiBBU0NJSS4gIAorICAgICAgICAgICAgY29uZmlkZW5jZSA9IDEwOyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID4gbnVtSW52YWxpZCoxMCkgeworICAgICAgICAgICAgLy8gUHJvYmFibHkgY29ycnVwdXQgdXRmLTggZGF0YS4gIFZhbGlkIHNlcXVlbmNlcyBhcmVuJ3QgbGlrZWx5IGJ5IGNoYW5jZS4KKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAyNTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29uZmlkZW5jZTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19Vbmljb2RlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfVW5pY29kZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZTYxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfVW5pY29kZS5qYXZhCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIFRoaXMgY2xhc3MgbWF0Y2hlcyBVVEYtMTYgYW5kIFVURi0zMiwgYm90aCBiaWctIGFuZCBsaXR0bGUtZW5kaWFuLiBUaGUKKyAqIEJPTSB3aWxsIGJlIHVzZWQgaWYgaXQgaXMgcHJlc2VudC4KKyAqIAorICogQGludGVybmFsCisgKi8KK2Fic3RyYWN0IGNsYXNzIENoYXJzZXRSZWNvZ19Vbmljb2RlIGV4dGVuZHMgQ2hhcnNldFJlY29nbml6ZXIgeworCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNnZXROYW1lKCkKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBTdHJpbmcgZ2V0TmFtZSgpOworCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNtYXRjaChjb20uaWJtLmljdS50ZXh0LkNoYXJzZXREZXRlY3RvcikKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCk7CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19VVEZfMTZfQkUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfVW5pY29kZQorICAgIHsKKyAgICAgICAgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIlVURi0xNkJFIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVbXSBpbnB1dCA9IGRldC5mUmF3SW5wdXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICgoaW5wdXRbMF0gJiAweEZGKSA9PSAweEZFICYmIChpbnB1dFsxXSAmIDB4RkYpID09IDB4RkYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUT0RPOiBEbyBzb21lIHN0YXRhc3RpY3MgdG8gY2hlY2sgZm9yIHVuc2lnbmVkIFVURi0xNkJFCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX1VURl8xNl9MRSBleHRlbmRzIENoYXJzZXRSZWNvZ19Vbmljb2RlCisgICAgeworICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiVVRGLTE2TEUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZVtdIGlucHV0ID0gZGV0LmZSYXdJbnB1dDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKChpbnB1dFswXSAmIDB4RkYpID09IDB4RkYgJiYgKGlucHV0WzFdICYgMHhGRikgPT0gMHhGRSAmJiAoaW5wdXRbMl0gIT0gMHgwMCB8fCBpbnB1dFszXSAhPSAweDAwKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAxMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRPRE86IERvIHNvbWUgc3RhdGFzdGljcyB0byBjaGVjayBmb3IgdW5zaWduZWQgVVRGLTE2TEUKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBDaGFyc2V0UmVjb2dfVVRGXzMyIGV4dGVuZHMgQ2hhcnNldFJlY29nX1VuaWNvZGUKKyAgICB7CisgICAgICAgIGFic3RyYWN0IGludCBnZXRDaGFyKGJ5dGVbXSBpbnB1dCwgaW50IGluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGFic3RyYWN0IFN0cmluZyBnZXROYW1lKCk7CisgICAgICAgIAorICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZVtdIGlucHV0ICAgPSBkZXQuZlJhd0lucHV0OworICAgICAgICAgICAgaW50IGxpbWl0ICAgICAgPSAoZGV0LmZSYXdMZW5ndGggLyA0KSAqIDQ7CisgICAgICAgICAgICBpbnQgbnVtVmFsaWQgICA9IDA7CisgICAgICAgICAgICBpbnQgbnVtSW52YWxpZCA9IDA7CisgICAgICAgICAgICBib29sZWFuIGhhc0JPTSA9IGZhbHNlOworICAgICAgICAgICAgaW50IGNvbmZpZGVuY2UgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZ2V0Q2hhcihpbnB1dCwgMCkgPT0gMHgwMDAwRkVGRikgeworICAgICAgICAgICAgICAgIGhhc0JPTSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSA0KSB7CisgICAgICAgICAgICAgICAgaW50IGNoID0gZ2V0Q2hhcihpbnB1dCwgaSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMCB8fCBjaCA+PSAweDEwRkZGRiB8fCAoY2ggPj0gMHhEODAwICYmIGNoIDw9IDB4REZGRikpIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtSW52YWxpZCArPSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG51bVZhbGlkICs9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENvb2sgdXAgc29tZSBzb3J0IG9mIGNvbmZpZGVuY2Ugc2NvcmUsIGJhc2VkIG9uIHByZXNlbnNlIG9mIGEgQk9NCisgICAgICAgICAgICAvLyAgICBhbmQgdGhlIGV4aXN0ZW5jZSBvZiB2YWxpZCBhbmQvb3IgaW52YWxpZCBtdWx0aS1ieXRlIHNlcXVlbmNlcy4KKyAgICAgICAgICAgIGlmIChoYXNCT00gJiYgbnVtSW52YWxpZD09MCkgeworICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDA7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0JPTSAmJiBudW1WYWxpZCA+IG51bUludmFsaWQqMTApIHsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gODA7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID4gMyAmJiBudW1JbnZhbGlkID09IDApIHsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMTAwOyAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA+IDAgJiYgbnVtSW52YWxpZCA9PSAwKSB7CisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDgwOworICAgICAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA+IG51bUludmFsaWQqMTApIHsKKyAgICAgICAgICAgICAgICAvLyBQcm9iYWJseSBjb3JydXB1dCBVVEYtMzJCRSBkYXRhLiAgVmFsaWQgc2VxdWVuY2VzIGFyZW4ndCBsaWtlbHkgYnkgY2hhbmNlLgorICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAyNTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNvbmZpZGVuY2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19VVEZfMzJfQkUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfVVRGXzMyCisgICAgeworICAgICAgICBpbnQgZ2V0Q2hhcihieXRlW10gaW5wdXQsIGludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChpbnB1dFtpbmRleCArIDBdICYgMHhGRikgPDwgMjQgfCAoaW5wdXRbaW5kZXggKyAxXSAmIDB4RkYpIDw8IDE2IHwKKyAgICAgICAgICAgICAgICAgICAoaW5wdXRbaW5kZXggKyAyXSAmIDB4RkYpIDw8ICA4IHwgKGlucHV0W2luZGV4ICsgM10gJiAweEZGKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIlVURi0zMkJFIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfVVRGXzMyX0xFIGV4dGVuZHMgQ2hhcnNldFJlY29nX1VURl8zMgorICAgIHsKKyAgICAgICAgaW50IGdldENoYXIoYnl0ZVtdIGlucHV0LCBpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoaW5wdXRbaW5kZXggKyAzXSAmIDB4RkYpIDw8IDI0IHwgKGlucHV0W2luZGV4ICsgMl0gJiAweEZGKSA8PCAxNiB8CisgICAgICAgICAgICAgICAgICAgKGlucHV0W2luZGV4ICsgMV0gJiAweEZGKSA8PCAgOCB8IChpbnB1dFtpbmRleCArIDBdICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJVVEYtMzJMRSI7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfbWJjcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX21iY3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjNmYzNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX21iY3MuamF2YQpAQCAtMCwwICsxLDUzMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisvKioKKyAqIENoYXJzZXRSZWNvZ25pemVyIGltcGxlbWVuYXRpb24gZm9yIEFzaWFuICAtIGRvdWJsZSBvciBtdWx0aS1ieXRlIC0gY2hhcnNldHMuCisgKiAgICAgICAgICAgICAgICAgICBNYXRjaCBpcyBkZXRlcm1pbmVkIG1vc3RseSBieSB0aGUgaW5wdXQgZGF0YSBhZGhlcmluZyB0byB0aGUKKyAqICAgICAgICAgICAgICAgICAgIGVuY29kaW5nIHNjaGVtZSBmb3IgdGhlIGNoYXJzZXQsIGFuZCwgb3B0aW9uYWxseSwKKyAqICAgICAgICAgICAgICAgICAgIGZyZXF1ZW5jeS1vZi1vY2N1cmVuY2Ugb2YgY2hhcmFjdGVycy4KKyAqIDxwLz4KKyAqICAgICAgICAgICAgICAgICAgIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBzaW5nbGV0b25zLCBvbmUgcGVyIGVuY29kaW5nCisgKiAgICAgICAgICAgICAgICAgICBiZWluZyByZWNvZ25pemVkLiAgVGhleSBhcmUgY3JlYXRlZCBpbiB0aGUgbWFpbgorICogICAgICAgICAgICAgICAgICAgQ2hhcnNldERldGVjdG9yIGNsYXNzIGFuZCBrZXB0IGluIHRoZSBnbG9iYWwgbGlzdCBvZiBhdmFpbGFibGUKKyAqICAgICAgICAgICAgICAgICAgIGVuY29kaW5ncyB0byBiZSBjaGVja2VkLiAgVGhlIHNwZWNpZmljIGVuY29kaW5nIGJlaW5nIHJlY29nbml6ZWQKKyAqICAgICAgICAgICAgICAgICAgIGlzIGRldGVybWluZWQgYnkgc3ViY2xhc3MuCisgKiAKKyAqIEBpbnRlcm5hbCAgICAgICAgICAgICAgICAgIAorICovCithYnN0cmFjdCBjbGFzcyBDaGFyc2V0UmVjb2dfbWJjcyBleHRlbmRzIENoYXJzZXRSZWNvZ25pemVyIHsKKworICAgLyoqCisgICAgICogR2V0IHRoZSBJQU5BIG5hbWUgb2YgdGhpcyBjaGFyc2V0LgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJzZXQgbmFtZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBTdHJpbmcgICAgICBnZXROYW1lKCkgOworICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIG1hdGNoIG9mIHRoaXMgY2hhcnNldCB3aXRoIHRoZSBpbnB1dCB0ZXh0IGRhdGEKKyAgICAgKiAgICAgIHdoaWNoIGlzIG9idGFpbmVkIHZpYSB0aGUgQ2hhcnNldERldGVjdG9yIG9iamVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGV0ICBUaGUgQ2hhcnNldERldGVjdG9yLCB3aGljaCBjb250YWlucyB0aGUgaW5wdXQgdGV4dAorICAgICAqICAgICAgICAgICAgIHRvIGJlIGNoZWNrZWQgZm9yIGJlaW5nIGluIHRoaXMgY2hhcnNldC4KKyAgICAgKiBAcmV0dXJuICAgICBUd28gdmFsdWVzIHBhY2tlZCBpbnRvIG9uZSBpbnQgIChEYW1uIGphdmEsIGFueWhvdykKKyAgICAgKiAgICAgICAgICAgICA8YnIvPgorICAgICAqICAgICAgICAgICAgIGJpdHMgMC03OiAgdGhlIG1hdGNoIGNvbmZpZGVuY2UsIHJhbmdpbmcgZnJvbSAwLTEwMAorICAgICAqICAgICAgICAgICAgIDxici8+CisgICAgICogICAgICAgICAgICAgYml0cyA4LTE1OiBUaGUgbWF0Y2ggcmVhc29uLCBhbiBlbnVtLWxpa2UgdmFsdWUuCisgICAgICovCisgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQsIGludCBbXSBjb21tb25DaGFycykgeworICAgICAgICBpbnQgICBzaW5nbGVCeXRlQ2hhckNvdW50ID0gMDsKKyAgICAgICAgaW50ICAgZG91YmxlQnl0ZUNoYXJDb3VudCA9IDA7CisgICAgICAgIGludCAgIGNvbW1vbkNoYXJDb3VudCAgICAgPSAwOworICAgICAgICBpbnQgICBiYWRDaGFyQ291bnQgICAgICAgID0gMDsKKyAgICAgICAgaW50ICAgdG90YWxDaGFyQ291bnQgICAgICA9IDA7CisgICAgICAgIGludCAgIGNvbmZpZGVuY2UgICAgICAgICAgPSAwOworICAgICAgICBpdGVyYXRlZENoYXIgICBpdGVyICAgICAgID0gbmV3IGl0ZXJhdGVkQ2hhcigpOworICAgICAgICAKKyAgICAgICAgZGV0ZWN0QmxvY2s6IHsKKyAgICAgICAgICAgIGZvciAoaXRlci5yZXNldCgpOyBuZXh0Q2hhcihpdGVyLCBkZXQpOykgeworICAgICAgICAgICAgICAgIHRvdGFsQ2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgaWYgKGl0ZXIuZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgYmFkQ2hhckNvdW50Kys7IAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoaXRlci5jaGFyVmFsdWUgPD0gMHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlQnl0ZUNoYXJDb3VudCsrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlQnl0ZUNoYXJDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1vbkNoYXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXlzLmJpbmFyeVNlYXJjaChjb21tb25DaGFycywgaXRlci5jaGFyVmFsdWUpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uQ2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChiYWRDaGFyQ291bnQgPj0gMiAmJiBiYWRDaGFyQ291bnQqNSA+PSBkb3VibGVCeXRlQ2hhckNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEJhaWwgb3V0IGVhcmx5IGlmIHRoZSBieXRlIGRhdGEgaXMgbm90IG1hdGNoaW5nIHRoZSBlbmNvZGluZyBzY2hlbWUuCisgICAgICAgICAgICAgICAgICAgIGJyZWFrIGRldGVjdEJsb2NrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRvdWJsZUJ5dGVDaGFyQ291bnQgPD0gMTAgJiYgYmFkQ2hhckNvdW50PT0gMCkgeworICAgICAgICAgICAgICAgIC8vIE5vdCBtYW55IG11bHRpLWJ5dGUgY2hhcnMuCisgICAgICAgICAgICAgICAgLy8gICBBU0NJSSBvciBJU08gZmlsZT8gIEl0J3MgcHJvYmFibHkgbm90IG91ciBlbmNvZGluZywKKyAgICAgICAgICAgICAgICAvLyAgIGJ1dCBpcyBub3QgaW5jb21wYXRpYmxlIHdpdGggb3VyIGVuY29kaW5nLCBzbyBkb24ndCBnaXZlIGl0IGEgemVyby4KKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMTA7CisgICAgICAgICAgICAgICAgYnJlYWsgZGV0ZWN0QmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgTm8gbWF0Y2ggaWYgdGhlcmUgYXJlIHRvbyBtYW55IGNoYXJhY3RlcnMgdGhhdCBkb24ndCBmaXQgdGhlIGVuY29kaW5nIHNjaGVtZS4KKyAgICAgICAgICAgIC8vICAgIChzaG91bGQgd2UgaGF2ZSB6ZXJvIHRvbGVyYW5jZSBmb3IgdGhlc2U/KQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGlmIChkb3VibGVCeXRlQ2hhckNvdW50IDwgMjAqYmFkQ2hhckNvdW50KSB7CisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDA7CisgICAgICAgICAgICAgICAgYnJlYWsgZGV0ZWN0QmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjb21tb25DaGFycyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBubyBzdGF0aXN0aWNzIG9uIGZyZXF1ZW50bHkgb2NjdXJpbmcgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICAvLyAgQXNzZXNzIGNvbmZpZGVuY2UgcHVyZWx5IG9uIGhhdmluZyBhIHJlYXNvbmFibGUgbnVtYmVyIG9mCisgICAgICAgICAgICAgICAgLy8gIG11bHRpLWJ5dGUgY2hhcmFjdGVycyAodGhlIG1vcmUgdGhlIGJldHRlcgorICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAzMCArIGRvdWJsZUJ5dGVDaGFyQ291bnQgLSAyMCpiYWRDaGFyQ291bnQ7CisgICAgICAgICAgICAgICAgaWYgKGNvbmZpZGVuY2UgPiAxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDEwMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyBGcmVxdWVuY3kgb2Ygb2NjdXJlbmNlIHN0YXRpc3RpY3MgZXhpc3QuCisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICBkb3VibGUgbWF4VmFsID0gTWF0aC5sb2coKGZsb2F0KWRvdWJsZUJ5dGVDaGFyQ291bnQgLyA0KTsKKyAgICAgICAgICAgICAgICBkb3VibGUgc2NhbGVGYWN0b3IgPSA5MC4wIC8gbWF4VmFsOworICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAoaW50KShNYXRoLmxvZyhjb21tb25DaGFyQ291bnQrMSkgKiBzY2FsZUZhY3RvciArIDEwKTsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gTWF0aC5taW4oY29uZmlkZW5jZSwgMTAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgIC8vIGVuZCBvZiBkZXRlY3RCbG9jazoKKyAgICAgICAgCisgICAgICAgIHJldHVybiBjb25maWRlbmNlOworICAgIH0KKyAgICAKKyAgICAgLy8gIkNoYXJhY3RlciIgIGl0ZXJhdGVkIGNoYXJhY3RlciBjbGFzcy4KKyAgICAgLy8gICAgUmVjb2duaXplcnMgZm9yIHNwZWNpZmljIG1iY3MgZW5jb2RpbmdzIG1ha2UgdGhlaXIgImNoYXJhY3RlcnMiIGF2YWlsYWJsZQorICAgICAvLyAgICBieSBwcm92aWRpbmcgYSBuZXh0Q2hhcigpIGZ1bmN0aW9uIHRoYXQgZmlsbHMgaW4gYW4gaW5zdGFuY2Ugb2YgaXRlcmF0ZWRDaGFyCisgICAgIC8vICAgIHdpdGggdGhlIG5leHQgY2hhciBmcm9tIHRoZSBpbnB1dC4KKyAgICAgLy8gICAgVGhlIHJldHVybmVkIGNoYXJhY3RlcnMgYXJlIG5vdCBjb252ZXJ0ZWQgdG8gVW5pY29kZSwgYnV0IHJlbWFpbiBhcyB0aGUgcmF3CisgICAgIC8vICAgIGJ5dGVzIChjb25jYXRlbmF0ZWQgaW50byBhbiBpbnQpIGZyb20gdGhlIGNvZGVwYWdlIGRhdGEuCisgICAgIC8vCisgICAgIC8vICBGb3IgQXNpYW4gY2hhcnNldHMsIHVzZSB0aGUgcmF3IGlucHV0IHJhdGhlciB0aGFuIHRoZSBpbnB1dCB0aGF0IGhhcyBiZWVuCisgICAgIC8vICAgc3RyaXBwZWQgb2YgbWFya3VwLiAgRGV0ZWN0aW9uIG9ubHkgY29uc2lkZXJzIG11bHRpLWJ5dGUgY2hhcnMsIGVmZmVjdGl2ZWx5CisgICAgIC8vICAgc3RyaXBwaW5nIG1hcmt1cCBhbnl3YXksIGFuZCBkb3VibGUgYnl0ZSBjaGFycyBkbyBvY2N1ciBpbiBtYXJrdXAgdG9vLgorICAgICAvLworICAgICBzdGF0aWMgY2xhc3MgaXRlcmF0ZWRDaGFyIHsKKyAgICAgICAgIGludCAgICAgICAgICAgICBjaGFyVmFsdWUgPSAwOyAgICAgICAgICAgICAvLyAxLTQgYnl0ZXMgZnJvbSB0aGUgcmF3IGlucHV0IGRhdGEKKyAgICAgICAgIGludCAgICAgICAgICAgICBpbmRleCAgICAgPSAwOworICAgICAgICAgaW50ICAgICAgICAgICAgIG5leHRJbmRleCA9IDA7CisgICAgICAgICBib29sZWFuICAgICAgICAgZXJyb3IgICAgID0gZmFsc2U7CisgICAgICAgICBib29sZWFuICAgICAgICAgZG9uZSAgICAgID0gZmFsc2U7CisgICAgICAgICAKKyAgICAgICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICAgY2hhclZhbHVlID0gMDsKKyAgICAgICAgICAgICBpbmRleCAgICAgPSAtMTsKKyAgICAgICAgICAgICBuZXh0SW5kZXggPSAwOworICAgICAgICAgICAgIGVycm9yICAgICA9IGZhbHNlOworICAgICAgICAgICAgIGRvbmUgICAgICA9IGZhbHNlOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBpbnQgbmV4dEJ5dGUoQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIGlmIChuZXh0SW5kZXggPj0gZGV0LmZSYXdMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgaW50IGJ5dGVWYWx1ZSA9IChpbnQpZGV0LmZSYXdJbnB1dFtuZXh0SW5kZXgrK10gJiAweDAwZmY7CisgICAgICAgICAgICAgcmV0dXJuIGJ5dGVWYWx1ZTsKKyAgICAgICAgIH0gICAgICAgCisgICAgIH0KKyAgICAgCisgICAgIC8qKgorICAgICAgKiBHZXQgdGhlIG5leHQgY2hhcmFjdGVyIChob3dldmVyIG1hbnkgYnl0ZXMgaXQgaXMpIGZyb20gdGhlIGlucHV0IGRhdGEKKyAgICAgICogICAgU3ViY2xhc3NlcyBmb3Igc3BlY2lmaWMgY2hhcnNldCBlbmNvZGluZ3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbgorICAgICAgKiAgICB0byBnZXQgY2hhcmFjdGVycyBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIHRoZWlyIGVuY29kaW5nIHNjaGVtZS4KKyAgICAgICogCisgICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBhIG1ldGhvZCBvZiBjbGFzcyBpdGVyYXRlZENoYXIgb25seSBiZWNhdXNlCisgICAgICAqICAgdGhhdCB3b3VsZCByZXF1aXJlIGEgbG90IG9mIGV4dHJhIGRlcml2ZWQgY2xhc3Nlcywgd2hpY2ggaXMgYXdrd2FyZC4KKyAgICAgICogQHBhcmFtIGl0ICBUaGUgaXRlcmF0ZWRDaGFyICJzdHJ1Y3QiIGludG8gd2hpY2ggdGhlIHJldHVybmVkIGNoYXIgaXMgcGxhY2VkLgorICAgICAgKiBAcGFyYW0gZGV0IFRoZSBjaGFyc2V0IGRldGVjdG9yLCB3aGljaCBpcyBuZWVkZWQgdG8gZ2V0IGF0IHRoZSBpbnB1dCBieXRlIGRhdGEKKyAgICAgICogICAgICAgICAgICBiZWluZyBpdGVyYXRlZCBvdmVyLgorICAgICAgKiBAcmV0dXJuICAgIFRydWUgaWYgYSBjaGFyYWN0ZXIgd2FzIHJldHVybmVkLCBmYWxzZSBhdCBlbmQgb2YgaW5wdXQuCisgICAgICAqLworICAgICBhYnN0cmFjdCBib29sZWFuIG5leHRDaGFyKGl0ZXJhdGVkQ2hhciBpdCwgQ2hhcnNldERldGVjdG9yIGRldCk7CisgICAgIAorCisKKyAgICAgCisgICAgIAorICAgICAvKioKKyAgICAgICogICBTaGlmdC1KSVMgY2hhcnNldCByZWNvZ25pemVyLiAgIAorICAgICAgKgorICAgICAgKi8KKyAgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19zamlzIGV4dGVuZHMgQ2hhcnNldFJlY29nX21iY3MgeworICAgICAgICAgc3RhdGljIGludCBbXSBjb21tb25DaGFycyA9IAorICAgICAgICAgICAgIC8vIFRPRE86ICBUaGlzIHNldCBvZiBkYXRhIGNvbWVzIGZyb20gdGhlIGNoYXJhY3RlciBmcmVxdWVuY3ktCisgICAgICAgICAgICAgLy8gICAgICAgIG9mLW9jY3VyZW5jZSBhbmFseXNpcyB0b29sLiAgVGhlIGRhdGEgbmVlZHMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgICAvLyAgICAgICAgaW50byBhIHJlc291cmNlIGFuZCBsb2FkZWQgZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIHsweDgxNDAsIDB4ODE0MSwgMHg4MTQyLCAweDgxNDUsIDB4ODE1YiwgMHg4MTY5LCAweDgxNmEsIDB4ODE3NSwgMHg4MTc2LCAweDgyYTAsIAorICAgICAgICAgICAgIDB4ODJhMiwgMHg4MmE0LCAweDgyYTksIDB4ODJhYSwgMHg4MmFiLCAweDgyYWQsIDB4ODJhZiwgMHg4MmIxLCAweDgyYjMsIDB4ODJiNSwgCisgICAgICAgICAgICAgMHg4MmI3LCAweDgyYmQsIDB4ODJiZSwgMHg4MmMxLCAweDgyYzQsIDB4ODJjNSwgMHg4MmM2LCAweDgyYzgsIDB4ODJjOSwgMHg4MmNjLCAKKyAgICAgICAgICAgICAweDgyY2QsIDB4ODJkYywgMHg4MmUwLCAweDgyZTcsIDB4ODJlOCwgMHg4MmU5LCAweDgyZWEsIDB4ODJmMCwgMHg4MmYxLCAweDgzNDEsIAorICAgICAgICAgICAgIDB4ODM0MywgMHg4MzRlLCAweDgzNGYsIDB4ODM1OCwgMHg4MzVlLCAweDgzNjIsIDB4ODM2NywgMHg4Mzc1LCAweDgzNzYsIDB4ODM4OSwgCisgICAgICAgICAgICAgMHg4MzhhLCAweDgzOGIsIDB4ODM4ZCwgMHg4MzkzLCAweDhlOTYsIDB4OTNmYSwgMHg5NWFhfTsKKyAgICAgICAgIAorICAgICAgICAgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQsIENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgICBpdC5pbmRleCA9IGl0Lm5leHRJbmRleDsKKyAgICAgICAgICAgICBpdC5lcnJvciA9IGZhbHNlOworICAgICAgICAgICAgIGludCBmaXJzdEJ5dGU7CisgICAgICAgICAgICAgZmlyc3RCeXRlID0gaXQuY2hhclZhbHVlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPD0gMHg3ZiB8fCAoZmlyc3RCeXRlPjB4YTAgJiYgZmlyc3RCeXRlPD0weGRmKSkgeworICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgaW50IHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlIDwgMCkgIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGZpcnN0Qnl0ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisgICAgICAgICAgICAgaWYgKCEgKChzZWNvbmRCeXRlPj0weDQwICYmIHNlY29uZEJ5dGU8PTB4N2YpIHx8IChzZWNvbmRCeXRlPj0weDgwICYmIHNlY29uZEJ5dGU8PTB4ZmYpKSkgeworICAgICAgICAgICAgICAgICAvLyBJbGxlZ2FsIHNlY29uZCBieXRlIHZhbHVlLgorICAgICAgICAgICAgICAgICBpdC5lcnJvciA9IHRydWU7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIGNvbW1vbkNoYXJzKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICAgcmV0dXJuICJTaGlmdF9KSVMiOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICByZXR1cm4gImphIjsKKyAgICAgICAgIH0KKworICAgICAgICAgCisgICAgIH0KKyAgICAgCisgICAgIAorICAgICAvKioKKyAgICAgICogICBCaWc1IGNoYXJzZXQgcmVjb2duaXplci4gICAKKyAgICAgICoKKyAgICAgICovCisgICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfYmlnNSBleHRlbmRzIENoYXJzZXRSZWNvZ19tYmNzIHsKKyAgICAgICAgIHN0YXRpYyBpbnQgW10gY29tbW9uQ2hhcnMgPSAKKyAgICAgICAgICAgICAvLyBUT0RPOiAgVGhpcyBzZXQgb2YgZGF0YSBjb21lcyBmcm9tIHRoZSBjaGFyYWN0ZXIgZnJlcXVlbmN5LQorICAgICAgICAgICAgIC8vICAgICAgICBvZi1vY2N1cmVuY2UgYW5hbHlzaXMgdG9vbC4gIFRoZSBkYXRhIG5lZWRzIHRvIGJlIG1vdmVkCisgICAgICAgICAgICAgLy8gICAgICAgIGludG8gYSByZXNvdXJjZSBhbmQgbG9hZGVkIGZyb20gdGhlcmUuCisgICAgICAgICAgICB7MHhhMTQwLCAweGExNDEsIDB4YTE0MiwgMHhhMTQzLCAweGExNDcsIDB4YTE0OSwgMHhhMTc1LCAweGExNzYsIDB4YTQ0MCwgMHhhNDQ2LCAKKyAgICAgICAgICAgICAweGE0NDcsIDB4YTQ0OCwgMHhhNDUxLCAweGE0NTQsIDB4YTQ1NywgMHhhNDY0LCAweGE0NmEsIDB4YTQ2YywgMHhhNDc3LCAweGE0YTMsIAorICAgICAgICAgICAgIDB4YTRhNCwgMHhhNGE3LCAweGE0YzEsIDB4YTRjZSwgMHhhNGQxLCAweGE0ZGYsIDB4YTRlOCwgMHhhNGZkLCAweGE1NDAsIDB4YTU0OCwgCisgICAgICAgICAgICAgMHhhNTU4LCAweGE1NjksIDB4YTVjZCwgMHhhNWU3LCAweGE2NTcsIDB4YTY2MSwgMHhhNjYyLCAweGE2NjgsIDB4YTY3MCwgMHhhNmE4LCAKKyAgICAgICAgICAgICAweGE2YjMsIDB4YTZiOSwgMHhhNmQzLCAweGE2ZGIsIDB4YTZlNiwgMHhhNmYyLCAweGE3NDAsIDB4YTc1MSwgMHhhNzU5LCAweGE3ZGEsIAorICAgICAgICAgICAgIDB4YThhMywgMHhhOGE1LCAweGE4YWQsIDB4YThkMSwgMHhhOGQzLCAweGE4ZTQsIDB4YThmYywgMHhhOWMwLCAweGE5ZDIsIDB4YTlmMywgCisgICAgICAgICAgICAgMHhhYTZiLCAweGFhYmEsIDB4YWFiZSwgMHhhYWNjLCAweGFhZmMsIDB4YWM0NywgMHhhYzRmLCAweGFjYjAsIDB4YWNkMiwgMHhhZDU5LCAKKyAgICAgICAgICAgICAweGFlYzksIDB4YWZlMCwgMHhiMGVhLCAweGIxNmYsIDB4YjJiMywgMHhiMmM0LCAweGIzNmYsIDB4YjQ0YywgMHhiNDRlLCAweGI1NGMsIAorICAgICAgICAgICAgIDB4YjVhNSwgMHhiNWJkLCAweGI1ZDAsIDB4YjVkOCwgMHhiNjcxLCAweGI3ZWQsIDB4Yjg2NywgMHhiOTQ0LCAweGJhZDgsIDB4YmI0NCwgCisgICAgICAgICAgICAgMHhiYmExLCAweGJkZDEsIDB4YzJjNCwgMHhjM2I5LCAweGM0NDAsIDB4YzQ1Zn07CisgICAgICAgICAgCisgICAgICAgICBib29sZWFuIG5leHRDaGFyKGl0ZXJhdGVkQ2hhciBpdCwgQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIGl0LmluZGV4ID0gaXQubmV4dEluZGV4OworICAgICAgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgICAgICAgaW50IGZpcnN0Qnl0ZTsKKyAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBpdC5jaGFyVmFsdWUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8PSAweDdmIHx8IGZpcnN0Qnl0ZT09MHhmZikgeworICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgYnl0ZSBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBpbnQgc2Vjb25kQnl0ZSA9IGl0Lm5leHRCeXRlKGRldCk7CisgICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGUgPCAwKSAgeworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgIAorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBpdC5jaGFyVmFsdWUgPSAoaXQuY2hhclZhbHVlIDw8IDgpIHwgc2Vjb25kQnl0ZTsKKworICAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlIDwgMHg0MCB8fAorICAgICAgICAgICAgICAgICBzZWNvbmRCeXRlID09MHg3ZiB8fAorICAgICAgICAgICAgICAgICBzZWNvbmRCeXRlID09IDB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgIGl0LmVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgY29tbW9uQ2hhcnMpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgICByZXR1cm4gIkJpZzUiOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAKKyAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICAgeworICAgICAgICAgICAgIHJldHVybiAiemgiOworICAgICAgICAgfQorICAgICB9CisgICAgIAorICAgICAKKyAgICAgLyoqCisgICAgICAqICAgRVVDIGNoYXJzZXQgcmVjb2duaXplcnMuICBPbmUgYWJzdHJhY3QgY2xhc3MgdGhhdCBwcm92aWRlcyB0aGUgY29tbW9uIGZ1bmN0aW9uCisgICAgICAqICAgICAgICAgICAgIGZvciBnZXR0aW5nIHRoZSBuZXh0IGNoYXJhY3RlciBhY2NvcmRpbmcgdG8gdGhlIEVVQyBlbmNvZGluZyBzY2hlbWUsCisgICAgICAqICAgICAgICAgICAgIGFuZCBuZXN0ZWQgZGVyaXZlZCBjbGFzc2VzIGZvciBFVUNfS1IsIEVVQ19KUCwgRVVDX0NOLiAgIAorICAgICAgKgorICAgICAgKi8KKyAgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19ldWMgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfbWJjcyB7CisgICAgICAgICAKKyAgICAgICAgIC8qCisgICAgICAgICAgKiAgKG5vbi1KYXZhZG9jKQorICAgICAgICAgICogIEdldCB0aGUgbmV4dCBjaGFyYWN0ZXIgdmFsdWUgZm9yIEVVQyBiYXNlZCBlbmNvZGluZ3MuCisgICAgICAgICAgKiAgQ2hhcmFjdGVyICJ2YWx1ZSIgaXMgc2ltcGx5IHRoZSByYXcgYnl0ZXMgdGhhdCBtYWtlIHVwIHRoZSBjaGFyYWN0ZXIKKyAgICAgICAgICAqICAgICBwYWNrZWQgaW50byBhbiBpbnQuCisgICAgICAgICAgKi8KKyAgICAgICAgIGJvb2xlYW4gbmV4dENoYXIoaXRlcmF0ZWRDaGFyIGl0LCBDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgaXQuaW5kZXggPSBpdC5uZXh0SW5kZXg7CisgICAgICAgICAgICAgaXQuZXJyb3IgPSBmYWxzZTsKKyAgICAgICAgICAgICBpbnQgZmlyc3RCeXRlICA9IDA7CisgICAgICAgICAgICAgaW50IHNlY29uZEJ5dGUgPSAwOworICAgICAgICAgICAgIGludCB0aGlyZEJ5dGUgID0gMDsKKyAgICAgICAgICAgICBpbnQgZm91cnRoQnl0ZSA9IDA7CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgYnVpbGRDaGFyOiB7CisgICAgICAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IGl0LmNoYXJWYWx1ZSA9IGl0Lm5leHRCeXRlKGRldCk7ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIFJhbiBvZmYgdGhlIGVuZCBvZiB0aGUgaW5wdXQgZGF0YQorICAgICAgICAgICAgICAgICAgICAgaXQuZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8PSAweDhkKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgYnl0ZSBjaGFyCisgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgICAgICBpdC5jaGFyVmFsdWUgPSAoaXQuY2hhclZhbHVlIDw8IDgpIHwgc2Vjb25kQnl0ZTsKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPj0gMHhBMSAmJiBmaXJzdEJ5dGUgPD0gMHhmZSkgeworICAgICAgICAgICAgICAgICAgICAgLy8gVHdvIGJ5dGUgQ2hhcgorICAgICAgICAgICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGUgPCAweGExKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gMHg4ZSkgeworICAgICAgICAgICAgICAgICAgICAgLy8gQ29kZSBTZXQgMi4KKyAgICAgICAgICAgICAgICAgICAgIC8vICAgSW4gRVVDLUpQLCB0b3RhbCBjaGFyIHNpemUgaXMgMiBieXRlcywgb25seSBvbmUgYnl0ZSBvZiBhY3R1YWwgY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgIC8vICAgSW4gRVVDLVRXLCB0b3RhbCBjaGFyIHNpemUgaXMgNCBieXRlcywgdGhyZWUgYnl0ZXMgY29udHJpYnV0ZSB0byBjaGFyIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyB3aGljaCB3ZSd2ZSBnb3QuCisgICAgICAgICAgICAgICAgICAgICAvLyBUcmVhdCBpdCBsaWtlIEVVQy1KUC4gIElmIHRoZSBkYXRhIHJlYWxseSB3YXMgRVVDLVRXLCB0aGUgZm9sbG93aW5nIHR3bworICAgICAgICAgICAgICAgICAgICAgLy8gICBieXRlcyB3aWxsIGxvb2sgbGlrZSBhIHdlbGwgZm9ybWVkIDIgYnl0ZSBjaGFyLiAgCisgICAgICAgICAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA8IDB4YTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpdC5lcnJvciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gMHg4ZikgeworICAgICAgICAgICAgICAgICAgICAgLy8gQ29kZSBzZXQgMy4KKyAgICAgICAgICAgICAgICAgICAgIC8vIFRocmVlIGJ5dGUgdG90YWwgY2hhciBzaXplLCB0d28gYnl0ZXMgb2YgYWN0dWFsIGNoYXIgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgICB0aGlyZEJ5dGUgICAgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHRoaXJkQnl0ZTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlyZEJ5dGUgPCAweGExKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICByZXR1cm4gKGl0LmRvbmUgPT0gZmFsc2UpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvKioKKyAgICAgICAgICAqIFRoZSBjaGFyc2V0IHJlY29nbml6ZSBmb3IgRVVDLUpQLiAgQSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcworICAgICAgICAgICogICAgaXMgY3JlYXRlZCBhbmQga2VwdCBieSB0aGUgcHVibGljIENoYXJzZXREZXRlY3RvciBjbGFzcworICAgICAgICAgICovCisgICAgICAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX2V1Y19qcCBleHRlbmRzIENoYXJzZXRSZWNvZ19ldWMgeworICAgICAgICAgICAgIHN0YXRpYyBpbnQgW10gY29tbW9uQ2hhcnMgPSAKKyAgICAgICAgICAgICAgICAgLy8gVE9ETzogIFRoaXMgc2V0IG9mIGRhdGEgY29tZXMgZnJvbSB0aGUgY2hhcmFjdGVyIGZyZXF1ZW5jeS0KKyAgICAgICAgICAgICAgICAgLy8gICAgICAgIG9mLW9jY3VyZW5jZSBhbmFseXNpcyB0b29sLiAgVGhlIGRhdGEgbmVlZHMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgICAgICAgLy8gICAgICAgIGludG8gYSByZXNvdXJjZSBhbmQgbG9hZGVkIGZyb20gdGhlcmUuCisgICAgICAgICAgICAgICAgezB4YTFhMSwgMHhhMWEyLCAweGExYTMsIDB4YTFhNiwgMHhhMWJjLCAweGExY2EsIDB4YTFjYiwgMHhhMWQ2LCAweGExZDcsIDB4YTRhMiwgCisgICAgICAgICAgICAgICAgIDB4YTRhNCwgMHhhNGE2LCAweGE0YTgsIDB4YTRhYSwgMHhhNGFiLCAweGE0YWMsIDB4YTRhZCwgMHhhNGFmLCAweGE0YjEsIDB4YTRiMywgCisgICAgICAgICAgICAgICAgIDB4YTRiNSwgMHhhNGI3LCAweGE0YjksIDB4YTRiYiwgMHhhNGJkLCAweGE0YmYsIDB4YTRjMCwgMHhhNGMxLCAweGE0YzMsIDB4YTRjNCwgCisgICAgICAgICAgICAgICAgIDB4YTRjNiwgMHhhNGM3LCAweGE0YzgsIDB4YTRjOSwgMHhhNGNhLCAweGE0Y2IsIDB4YTRjZSwgMHhhNGNmLCAweGE0ZDAsIDB4YTRkZSwgCisgICAgICAgICAgICAgICAgIDB4YTRkZiwgMHhhNGUxLCAweGE0ZTIsIDB4YTRlNCwgMHhhNGU4LCAweGE0ZTksIDB4YTRlYSwgMHhhNGViLCAweGE0ZWMsIDB4YTRlZiwgCisgICAgICAgICAgICAgICAgIDB4YTRmMiwgMHhhNGYzLCAweGE1YTIsIDB4YTVhMywgMHhhNWE0LCAweGE1YTYsIDB4YTVhNywgMHhhNWFhLCAweGE1YWQsIDB4YTVhZiwgCisgICAgICAgICAgICAgICAgIDB4YTViMCwgMHhhNWIzLCAweGE1YjUsIDB4YTViNywgMHhhNWI4LCAweGE1YjksIDB4YTViZiwgMHhhNWMzLCAweGE1YzYsIDB4YTVjNywgCisgICAgICAgICAgICAgICAgIDB4YTVjOCwgMHhhNWM5LCAweGE1Y2IsIDB4YTVkMCwgMHhhNWQ1LCAweGE1ZDYsIDB4YTVkNywgMHhhNWRlLCAweGE1ZTAsIDB4YTVlMSwgCisgICAgICAgICAgICAgICAgIDB4YTVlNSwgMHhhNWU5LCAweGE1ZWEsIDB4YTVlYiwgMHhhNWVjLCAweGE1ZWQsIDB4YTVmMywgMHhiOGE5LCAweGI5ZDQsIDB4YmFlZSwgCisgICAgICAgICAgICAgICAgIDB4YmJjOCwgMHhiZWYwLCAweGJmYjcsIDB4YzRlYSwgMHhjNmZjLCAweGM3YmQsIDB4Y2FiOCwgMHhjYWYzLCAweGNiZGMsIDB4Y2RkMX07ICAgICAgICAgICAgIAorICAgICAgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gIkVVQy1KUCI7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIGNvbW1vbkNoYXJzKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICByZXR1cm4gImphIjsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIC8qKgorICAgICAgICAgICogVGhlIGNoYXJzZXQgcmVjb2duaXplIGZvciBFVUMtS1IuICBBIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzCisgICAgICAgICAgKiAgICBpcyBjcmVhdGVkIGFuZCBrZXB0IGJ5IHRoZSBwdWJsaWMgQ2hhcnNldERldGVjdG9yIGNsYXNzCisgICAgICAgICAgKi8KKyAgICAgICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfZXVjX2tyIGV4dGVuZHMgQ2hhcnNldFJlY29nX2V1YyB7CisgICAgICAgICAgICAgc3RhdGljIGludCBbXSBjb21tb25DaGFycyA9IAorICAgICAgICAgICAgICAgICAvLyBUT0RPOiAgVGhpcyBzZXQgb2YgZGF0YSBjb21lcyBmcm9tIHRoZSBjaGFyYWN0ZXIgZnJlcXVlbmN5LQorICAgICAgICAgICAgICAgICAvLyAgICAgICAgb2Ytb2NjdXJlbmNlIGFuYWx5c2lzIHRvb2wuICBUaGUgZGF0YSBuZWVkcyB0byBiZSBtb3ZlZAorICAgICAgICAgICAgICAgICAvLyAgICAgICAgaW50byBhIHJlc291cmNlIGFuZCBsb2FkZWQgZnJvbSB0aGVyZS4KKyAgICAgICAgICAgICAgICB7MHhiMGExLCAweGIwYjMsIDB4YjBjNSwgMHhiMGNkLCAweGIwZDQsIDB4YjBlNiwgMHhiMGVkLCAweGIwZjgsIDB4YjBmYSwgMHhiMGZjLCAKKyAgICAgICAgICAgICAgICAgMHhiMWI4LCAweGIxYjksIDB4YjFjNywgMHhiMWQ3LCAweGIxZTIsIDB4YjNhYSwgMHhiM2JiLCAweGI0YzIsIDB4YjRjZiwgMHhiNGQ5LCAKKyAgICAgICAgICAgICAgICAgMHhiNGViLCAweGI1YTUsIDB4YjViNSwgMHhiNWJmLCAweGI1YzcsIDB4YjVlOSwgMHhiNmYzLCAweGI3YWYsIDB4YjdjMiwgMHhiN2NlLCAKKyAgICAgICAgICAgICAgICAgMHhiOGE2LCAweGI4YWUsIDB4YjhiNiwgMHhiOGI4LCAweGI4YmIsIDB4YjhlOSwgMHhiOWFiLCAweGI5YWUsIDB4YjljYywgMHhiOWNlLCAKKyAgICAgICAgICAgICAgICAgMHhiOWZkLCAweGJhYjgsIDB4YmFjZSwgMHhiYWQwLCAweGJhZjEsIDB4YmJlNywgMHhiYmYzLCAweGJiZmQsIDB4YmNhZCwgMHhiY2JhLCAKKyAgICAgICAgICAgICAgICAgMHhiY2QyLCAweGJjZjYsIDB4YmRiYSwgMHhiZGMwLCAweGJkYzMsIDB4YmRjNSwgMHhiZWM2LCAweGJlYzgsIDB4YmVkZiwgMHhiZWVlLCAKKyAgICAgICAgICAgICAgICAgMHhiZWY4LCAweGJlZmEsIDB4YmZhMSwgMHhiZmE5LCAweGJmYzAsIDB4YmZlNCwgMHhiZmViLCAweGJmZWMsIDB4YmZmOCwgMHhjMGE3LCAKKyAgICAgICAgICAgICAgICAgMHhjMGFmLCAweGMwYjgsIDB4YzBiYSwgMHhjMGJiLCAweGMwYmQsIDB4YzBjNywgMHhjMGNjLCAweGMwY2UsIDB4YzBjZiwgMHhjMGQ2LCAKKyAgICAgICAgICAgICAgICAgMHhjMGRhLCAweGMwZTUsIDB4YzBmYiwgMHhjMGZjLCAweGMxYTQsIDB4YzFhNiwgMHhjMWI2LCAweGMxZDYsIDB4YzFkZiwgMHhjMWY2LCAKKyAgICAgICAgICAgICAgICAgMHhjMWY4LCAweGM0YTEsIDB4YzVjZCwgMHhjNmFlLCAweGM3Y2YsIDB4YzdkMSwgMHhjN2QyLCAweGM3ZDgsIDB4YzdlNSwgMHhjOGFkfTsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuICJFVUMtS1IiOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBjb21tb25DaGFycyk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuICJrbyI7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9CisgICAgIAorICAgICAvKioKKyAgICAgICogCisgICAgICAqICAgR0ItMTgwMzAgcmVjb2duaXplci4gVXNlcyBzaW1wbGlmaWVkIENoaW5lc2Ugc3RhdGlzdGljcy4gICAKKyAgICAgICoKKyAgICAgICovCisgICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfZ2JfMTgwMzAgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfbWJjcyB7CisgICAgICAgICAKKyAgICAgICAgIC8qCisgICAgICAgICAgKiAgKG5vbi1KYXZhZG9jKQorICAgICAgICAgICogIEdldCB0aGUgbmV4dCBjaGFyYWN0ZXIgdmFsdWUgZm9yIEVVQyBiYXNlZCBlbmNvZGluZ3MuCisgICAgICAgICAgKiAgQ2hhcmFjdGVyICJ2YWx1ZSIgaXMgc2ltcGx5IHRoZSByYXcgYnl0ZXMgdGhhdCBtYWtlIHVwIHRoZSBjaGFyYWN0ZXIKKyAgICAgICAgICAqICAgICBwYWNrZWQgaW50byBhbiBpbnQuCisgICAgICAgICAgKi8KKyAgICAgICAgIGJvb2xlYW4gbmV4dENoYXIoaXRlcmF0ZWRDaGFyIGl0LCBDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgaXQuaW5kZXggPSBpdC5uZXh0SW5kZXg7CisgICAgICAgICAgICAgaXQuZXJyb3IgPSBmYWxzZTsKKyAgICAgICAgICAgICBpbnQgZmlyc3RCeXRlICA9IDA7CisgICAgICAgICAgICAgaW50IHNlY29uZEJ5dGUgPSAwOworICAgICAgICAgICAgIGludCB0aGlyZEJ5dGUgID0gMDsKKyAgICAgICAgICAgICBpbnQgZm91cnRoQnl0ZSA9IDA7CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgYnVpbGRDaGFyOiB7CisgICAgICAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IGl0LmNoYXJWYWx1ZSA9IGl0Lm5leHRCeXRlKGRldCk7IAorICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIFJhbiBvZmYgdGhlIGVuZCBvZiB0aGUgaW5wdXQgZGF0YQorICAgICAgICAgICAgICAgICAgICAgaXQuZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPD0gMHg4MCkgeworICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGJ5dGUgY2hhcgorICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBzZWNvbmRCeXRlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID49IDB4ODEgJiYgZmlyc3RCeXRlIDw9IDB4RkUpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIFR3byBieXRlIENoYXIKKyAgICAgICAgICAgICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSA+PSAweDQwICYmIHNlY29uZEJ5dGUgPD0gMHg3RSkgfHwgKHNlY29uZEJ5dGUgPj04MCAmJiBzZWNvbmRCeXRlIDw9MHhGRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgIC8vIEZvdXIgYnl0ZSBjaGFyCisgICAgICAgICAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA+PSAweDMwICYmIHNlY29uZEJ5dGUgPD0gMHgzOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXJkQnl0ZSA9IGl0Lm5leHRCeXRlKGRldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXJkQnl0ZSA+PSAweDgxICYmIHRoaXJkQnl0ZSA8PSAweEZFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdXJ0aEJ5dGUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdXJ0aEJ5dGUgPj0gMHgzMCAmJiBmb3VydGhCeXRlIDw9IDB4MzkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LmNoYXJWYWx1ZSA9IChpdC5jaGFyVmFsdWUgPDwgMTYpIHwgKHRoaXJkQnl0ZSA8PCA4KSB8IGZvdXJ0aEJ5dGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgIGl0LmVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgcmV0dXJuIChpdC5kb25lID09IGZhbHNlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgc3RhdGljIGludCBbXSBjb21tb25DaGFycyA9IAorICAgICAgICAgICAgIC8vIFRPRE86ICBUaGlzIHNldCBvZiBkYXRhIGNvbWVzIGZyb20gdGhlIGNoYXJhY3RlciBmcmVxdWVuY3ktCisgICAgICAgICAgICAgLy8gICAgICAgIG9mLW9jY3VyZW5jZSBhbmFseXNpcyB0b29sLiAgVGhlIGRhdGEgbmVlZHMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgICAvLyAgICAgICAgaW50byBhIHJlc291cmNlIGFuZCBsb2FkZWQgZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIHsweGExYTEsIDB4YTFhMiwgMHhhMWEzLCAweGExYTQsIDB4YTFiMCwgMHhhMWIxLCAweGExZjEsIDB4YTFmMywgMHhhM2ExLCAweGEzYWMsIAorICAgICAgICAgICAgIDB4YTNiYSwgMHhiMWE4LCAweGIxYjgsIDB4YjFiZSwgMHhiMmJiLCAweGIzYzksIDB4YjNmNiwgMHhiNGYzLCAweGI1YmQsIDB4YjVjNCwgCisgICAgICAgICAgICAgMHhiNWUzLCAweGI2YWYsIDB4YjZkNCwgMHhiNmUwLCAweGI3YTIsIDB4YjdhOCwgMHhiN2JkLCAweGI3ZDYsIDB4YjdkZCwgMHhiOGI0LCAKKyAgICAgICAgICAgICAweGI4ZGYsIDB4YjhmNiwgMHhiOWFiLCAweGI5YzksIDB4YjlkOCwgMHhiOWZhLCAweGI5ZmQsIDB4YmFjZCwgMHhiYmE3LCAweGJiZDYsIAorICAgICAgICAgICAgIDB4YmJlMSwgMHhiYmZhLCAweGJjYmMsIDB4YmNkYiwgMHhiY2ZlLCAweGJkY2MsIDB4YmVjZCwgMHhiZWRkLCAweGJmYjQsIDB4YmZjNiwgCisgICAgICAgICAgICAgMHhiZmM5LCAweGMwYjQsIDB4YzBlZCwgMHhjMWNiLCAweGMyZGIsIDB4YzNjNywgMHhjNGRjLCAweGM0ZWEsIDB4YzVjYywgMHhjNmY3LCAKKyAgICAgICAgICAgICAweGM3ZjgsIDB4YzhhYiwgMHhjOGNiLCAweGM4ZDUsIDB4YzhlNywgMHhjOWNmLCAweGM5ZmEsIDB4Y2FiMSwgMHhjYWI1LCAweGNhYzcsIAorICAgICAgICAgICAgIDB4Y2FkMCwgMHhjYWQ2LCAweGNhZjUsIDB4Y2FmZCwgMHhjY2VjLCAweGNkZjgsIDB4Y2VhYSwgMHhjZWM0LCAweGNlZDIsIDB4Y2VlNSwgCisgICAgICAgICAgICAgMHhjZmI1LCAweGNmYzIsIDB4Y2ZkNiwgMHhkMGMyLCAweGQwYzUsIDB4ZDBkMCwgMHhkMGQ0LCAweGQxYTcsIDB4ZDJhYSwgMHhkMmIyLCAKKyAgICAgICAgICAgICAweGQyYjUsIDB4ZDJiYiwgMHhkMmQ0LCAweGQzYzMsIDB4ZDNkMCwgMHhkM2ZkLCAweGQ0YzIsIDB4ZDRkYSwgMHhkNWUyLCAweGQ2ZDB9OworCisgICAgICAgICAKKyAgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgIHJldHVybiAiR0IxODAzMCI7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgY29tbW9uQ2hhcnMpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICByZXR1cm4gInpoIjsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICAKKyAgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfc2Jjcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX3NiY3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjMwZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX3NiY3MuamF2YQpAQCAtMCwwICsxLDEwNTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogVGhpcyBjbGFzcyByZWNvZ25pemVzIHNpbmdsZS1ieXRlIGVuY29kaW5ncy4gQmVjYXVzZSB0aGUgZW5jb2Rpbmcgc2NoZW1lIGlzIHNvCisgKiBzaW1wbGUsIGxhbmd1YWdlIHN0YXRpc3RpY3MgYXJlIHVzZWQgdG8gZG8gdGhlIG1hdGNoaW5nLgorICogCisgKiBAaW50ZXJuYWwKKyAqLworYWJzdHJhY3QgY2xhc3MgQ2hhcnNldFJlY29nX3NiY3MgZXh0ZW5kcyBDaGFyc2V0UmVjb2duaXplciB7CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LkNoYXJzZXRSZWNvZ25pemVyI2dldE5hbWUoKQorICAgICAqLworICAgIGFic3RyYWN0IFN0cmluZyBnZXROYW1lKCk7CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LkNoYXJzZXRSZWNvZ25pemVyI21hdGNoKGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldERldGVjdG9yKQorICAgICAqLworICAgIGFic3RyYWN0IGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KTsKKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgTkdyYW1QYXJzZXIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOX0dSQU1fU0laRSA9IDM7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOX0dSQU1fTUFTSyA9IDB4RkZGRkZGOworCisgICAgICAgIHByaXZhdGUgaW50IGJ5dGVJbmRleCA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IG5ncmFtID0gMDsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50W10gbmdyYW1MaXN0OworICAgICAgICBwcml2YXRlIGJ5dGVbXSBieXRlTWFwOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgbmdyYW1Db3VudDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaGl0Q291bnQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTkdyYW1QYXJzZXIoaW50W10gdGhlTmdyYW1MaXN0LCBieXRlW10gdGhlQnl0ZU1hcCkKKyAgICAgICAgeworICAgICAgICAgICAgbmdyYW1MaXN0ID0gdGhlTmdyYW1MaXN0OworICAgICAgICAgICAgYnl0ZU1hcCAgID0gdGhlQnl0ZU1hcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbmdyYW0gPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBuZ3JhbUNvdW50ID0gaGl0Q291bnQgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBCaW5hcnkgc2VhcmNoIGZvciB2YWx1ZSBpbiB0YWJsZSwgd2hpY2ggbXVzdCBoYXZlIGV4YWN0bHkgNjQgZW50cmllcy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGludCBzZWFyY2goaW50W10gdGFibGUsIGludCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgMzJdIDw9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gMzI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIDE2XSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDE2OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyA4XSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIDRdIDw9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gNDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgMl0gPD0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSAyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyAxXSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleF0gPiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4IC09IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmRleCA8IDAgfHwgdGFibGVbaW5kZXhdICE9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgbG9va3VwKGludCB0aGlzTmdyYW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ncmFtQ291bnQgKz0gMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNlYXJjaChuZ3JhbUxpc3QsIHRoaXNOZ3JhbSkgPj0gMCkgeworICAgICAgICAgICAgICAgIGhpdENvdW50ICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFkZEJ5dGUoaW50IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ncmFtID0gKChuZ3JhbSA8PCA4KSArIChiICYgMHhGRikpICYgTl9HUkFNX01BU0s7CisgICAgICAgICAgICBsb29rdXAobmdyYW0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGludCBuZXh0Qnl0ZShDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoYnl0ZUluZGV4ID49IGRldC5mSW5wdXRMZW4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkZXQuZklucHV0Qnl0ZXNbYnl0ZUluZGV4KytdICYgMHhGRjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBwYXJzZShDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgYjsKKyAgICAgICAgICAgIGJvb2xlYW4gaWdub3JlU3BhY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKChiID0gbmV4dEJ5dGUoZGV0KSkgPj0gMCkgeworICAgICAgICAgICAgICAgIGJ5dGUgbWIgPSBieXRlTWFwW2JdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRPRE86IDB4MjAgbWlnaHQgbm90IGJlIGEgc3BhY2UgaW4gYWxsIGNoYXJhY3RlciBzZXRzLi4uCisgICAgICAgICAgICAgICAgaWYgKG1iICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCEobWIgPT0gMHgyMCAmJiBpZ25vcmVTcGFjZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZEJ5dGUobWIpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlnbm9yZVNwYWNlID0gKG1iID09IDB4MjApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVE9ETzogSXMgdGhpcyBPSz8gVGhlIGJ1ZmZlciBjb3VsZCBoYXZlIGVuZGVkIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkLi4uCisgICAgICAgICAgICBhZGRCeXRlKDB4MjApOworCisgICAgICAgICAgICBkb3VibGUgcmF3UGVyY2VudCA9IChkb3VibGUpIGhpdENvdW50IC8gKGRvdWJsZSkgbmdyYW1Db3VudDsKKyAgICAgICAgICAgIAorLy8gICAgICAgICAgICBpZiAocmF3UGVyY2VudCA8PSAyLjApIHsKKy8vICAgICAgICAgICAgICAgIHJldHVybiAwOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRPRE8gLSBUaGlzIGlzIGEgYml0IG9mIGEgaGFjayB0byB0YWtlIGNhcmUgb2YgYSBjYXNlCisgICAgICAgICAgICAvLyB3ZXJlIHdlIHdlcmUgZ2V0dGluZyBhIGNvbmZpZGVuY2Ugb2YgMTM1Li4uCisgICAgICAgICAgICBpZiAocmF3UGVyY2VudCA+IDAuMzMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gOTg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiAoaW50KSAocmF3UGVyY2VudCAqIDMwMC4wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBoYXZlQzFCeXRlcyA9IGZhbHNlOworICAgIAorICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0LCBpbnRbXSBuZ3JhbXMsICBieXRlW10gYnl0ZU1hcCkKKyAgICB7CisgICAgICAgIE5HcmFtUGFyc2VyIHBhcnNlciA9IG5ldyBOR3JhbVBhcnNlcihuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICAKKyAgICAgICAgaGF2ZUMxQnl0ZXMgPSBkZXQuZkMxQnl0ZXM7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcGFyc2VyLnBhcnNlKGRldCk7CisgICAgfQorICAgIAorICAgIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfODg1OV8xIGV4dGVuZHMgQ2hhcnNldFJlY29nX3NiY3MKKyAgICB7CisgICAgICAgIHByb3RlY3RlZCBzdGF0aWMgYnl0ZVtdIGJ5dGVNYXAgPSB7CisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDAwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEFBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweEZELCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4REYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaGF2ZUMxQnl0ZXM/ICJ3aW5kb3dzLTEyNTIiIDogIklTTy04ODU5LTEiOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfZGEgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE2NiwgMHgyMDYxNzQsIDB4MjA2NDY1LCAweDIwNjU2RSwgMHgyMDY1NzIsIDB4MjA2NjZGLCAweDIwNjg2MSwgMHgyMDY5MjAsIDB4MjA2RDY1LCAweDIwNkY2NywgMHgyMDcwRTUsIDB4MjA3MzY5LCAweDIwNzM3NCwgMHgyMDc0NjksIDB4MjA3NjY5LCAweDYxNjYyMCwgCisgICAgICAgICAgICAweDYxNkUyMCwgMHg2MTZFNjQsIDB4NjE3MjIwLCAweDYxNzQyMCwgMHg2NDY1MjAsIDB4NjQ2NTZFLCAweDY0NjU3MiwgMHg2NDY1NzQsIDB4NjUyMDczLCAweDY1NjQyMCwgMHg2NTY0NjUsIDB4NjU2RTIwLCAweDY1NkU2NCwgMHg2NTcyMjAsIDB4NjU3MjY1LCAweDY1NzMyMCwgCisgICAgICAgICAgICAweDY1NzQyMCwgMHg2NjZGNzIsIDB4Njc2NTIwLCAweDY3NjU2RSwgMHg2NzY1NzIsIDB4Njk2NzY1LCAweDY5NkMyMCwgMHg2OTZFNjcsIDB4NkI2NTIwLCAweDZCNkI2NSwgMHg2QzY1NzIsIDB4NkM2OTY3LCAweDZDNkM2NSwgMHg2RDY1NjQsIDB4NkU2NDY1LCAweDZFNjUyMCwgCisgICAgICAgICAgICAweDZFNjcyMCwgMHg2RTY3NjUsIDB4NkY2NzIwLCAweDZGNkQyMCwgMHg2RjcyMjAsIDB4NzBFNTIwLCAweDcyMjA2NCwgMHg3MjIwNjUsIDB4NzIyMDczLCAweDcyNjUyMCwgMHg3Mzc0NjUsIDB4NzQyMDczLCAweDc0NjUyMCwgMHg3NDY1NzIsIDB4NzQ2OTZDLCAweDc2NjU3MiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiZGEiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9kZSBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTZFLCAweDIwNjE3NSwgMHgyMDYyNjUsIDB4MjA2NDYxLCAweDIwNjQ2NSwgMHgyMDY0NjksIDB4MjA2NTY5LCAweDIwNjc2NSwgMHgyMDY4NjEsIDB4MjA2OTZFLCAweDIwNkQ2OSwgMHgyMDczNjMsIDB4MjA3MzY1LCAweDIwNzU2RSwgMHgyMDc2NjUsIDB4MjA3NjZGLCAKKyAgICAgICAgICAgIDB4MjA3NzY1LCAweDIwN0E3NSwgMHg2MjY1NzIsIDB4NjM2ODIwLCAweDYzNjg2NSwgMHg2MzY4NzQsIDB4NjQ2MTczLCAweDY0NjU2RSwgMHg2NDY1NzIsIDB4NjQ2OTY1LCAweDY1MjA2NCwgMHg2NTIwNzMsIDB4NjU2OTZFLCAweDY1Njk3NCwgMHg2NTZFMjAsIDB4NjU3MjIwLCAKKyAgICAgICAgICAgIDB4NjU3MzIwLCAweDY3NjU2RSwgMHg2ODY1NkUsIDB4Njg3NDIwLCAweDY5NjM2OCwgMHg2OTY1MjAsIDB4Njk2RTIwLCAweDY5NkU2NSwgMHg2OTc0MjAsIDB4NkM2OTYzLCAweDZDNkM2NSwgMHg2RTIwNjEsIDB4NkUyMDY0LCAweDZFMjA3MywgMHg2RTY0MjAsIDB4NkU2NDY1LCAKKyAgICAgICAgICAgIDB4NkU2NTIwLCAweDZFNjcyMCwgMHg2RTY3NjUsIDB4NkU3NDY1LCAweDcyMjA2NCwgMHg3MjY0NjUsIDB4NzI2NTY5LCAweDczNjM2OCwgMHg3Mzc0NjUsIDB4NzQyMDY0LCAweDc0NjUyMCwgMHg3NDY1NkUsIDB4NzQ2NTcyLCAweDc1NkU2NCwgMHg3NTZFNjcsIDB4NzY2NTcyLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJkZSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9lbiBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjE2RSwgMHgyMDYyNjUsIDB4MjA2MzZGLCAweDIwNjY2RiwgMHgyMDY4NjEsIDB4MjA2ODY1LCAweDIwNjk2RSwgMHgyMDZENjEsIDB4MjA2RjY2LCAweDIwNzA3MiwgMHgyMDcyNjUsIDB4MjA3MzYxLCAweDIwNzM3NCwgMHgyMDc0NjgsIDB4MjA3NDZGLCAKKyAgICAgICAgICAgIDB4MjA3NzY4LCAweDYxNjk2NCwgMHg2MTZDMjAsIDB4NjE2RTIwLCAweDYxNkU2NCwgMHg2MTczMjAsIDB4NjE3NDIwLCAweDYxNzQ2NSwgMHg2MTc0NjksIDB4NjQyMDYxLCAweDY0MjA3NCwgMHg2NTIwNjEsIDB4NjUyMDczLCAweDY1MjA3NCwgMHg2NTY0MjAsIDB4NjU2RTc0LCAKKyAgICAgICAgICAgIDB4NjU3MjIwLCAweDY1NzMyMCwgMHg2NjZGNzIsIDB4Njg2MTc0LCAweDY4NjUyMCwgMHg2ODY1NzIsIDB4Njk2NDIwLCAweDY5NkUyMCwgMHg2OTZFNjcsIDB4Njk2RjZFLCAweDY5NzMyMCwgMHg2RTIwNjEsIDB4NkUyMDc0LCAweDZFNjQyMCwgMHg2RTY3MjAsIDB4NkU3NDIwLCAKKyAgICAgICAgICAgIDB4NkY2NjIwLCAweDZGNkUyMCwgMHg2RjcyMjAsIDB4NzI2NTIwLCAweDcyNzMyMCwgMHg3MzIwNjEsIDB4NzMyMDc0LCAweDczNjE2OSwgMHg3Mzc0MjAsIDB4NzQyMDc0LCAweDc0NjU3MiwgMHg3NDY4NjEsIDB4NzQ2ODY1LCAweDc0Njk2RiwgMHg3NDZGMjAsIDB4NzQ3MzIwLCAKKyAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJlbiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9lcyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjM2MSwgMHgyMDYzNkYsIDB4MjA2NDY1LCAweDIwNjU2QywgMHgyMDY1NkUsIDB4MjA2NTczLCAweDIwNjk2RSwgMHgyMDZDNjEsIDB4MjA2QzZGLCAweDIwNzA2MSwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzE3NSwgMHgyMDcyNjUsIDB4MjA3MzY1LCAKKyAgICAgICAgICAgIDB4MjA3NTZFLCAweDIwNzkyMCwgMHg2MTIwNjMsIDB4NjEyMDY0LCAweDYxMjA2NSwgMHg2MTIwNkMsIDB4NjEyMDcwLCAweDYxNjM2OSwgMHg2MTY0NkYsIDB4NjE2QzIwLCAweDYxNzIyMCwgMHg2MTczMjAsIDB4NjM2OUYzLCAweDYzNkY2RSwgMHg2NDY1MjAsIDB4NjQ2NTZDLCAKKyAgICAgICAgICAgIDB4NjQ2RjIwLCAweDY1MjA2NCwgMHg2NTIwNjUsIDB4NjUyMDZDLCAweDY1NkMyMCwgMHg2NTZFMjAsIDB4NjU2RTc0LCAweDY1NzMyMCwgMHg2NTczNzQsIDB4Njk2NTZFLCAweDY5RjM2RSwgMHg2QzYxMjAsIDB4NkM2RjczLCAweDZFMjA2NSwgMHg2RTc0NjUsIDB4NkYyMDY0LCAKKyAgICAgICAgICAgIDB4NkYyMDY1LCAweDZGNkUyMCwgMHg2RjcyMjAsIDB4NkY3MzIwLCAweDcwNjE3MiwgMHg3MTc1NjUsIDB4NzI2MTIwLCAweDcyNjU3MywgMHg3MzIwNjQsIDB4NzMyMDY1LCAweDczMjA3MCwgMHg3MzY1MjAsIDB4NzQ2NTIwLCAweDc0NkYyMCwgMHg3NTY1MjAsIDB4RjM2RTIwLCAKKyAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJlcyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9mciBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTc1LCAweDIwNjM2RiwgMHgyMDY0NjEsIDB4MjA2NDY1LCAweDIwNjQ3NSwgMHgyMDY1NkUsIDB4MjA2NTc0LCAweDIwNkM2MSwgMHgyMDZDNjUsIDB4MjA3MDYxLCAweDIwNzA2RiwgMHgyMDcwNzIsIDB4MjA3MTc1LCAweDIwNzM2NSwgMHgyMDczNkYsIDB4MjA3NTZFLCAKKyAgICAgICAgICAgIDB4MjBFMDIwLCAweDYxNkU3NCwgMHg2MTc0NjksIDB4NjM2NTIwLCAweDYzNkY2RSwgMHg2NDY1MjAsIDB4NjQ2NTczLCAweDY0NzUyMCwgMHg2NTIwNjEsIDB4NjUyMDYzLCAweDY1MjA2NCwgMHg2NTIwNjUsIDB4NjUyMDZDLCAweDY1MjA3MCwgMHg2NTIwNzMsIDB4NjU2RTIwLCAKKyAgICAgICAgICAgIDB4NjU2RTc0LCAweDY1NzIyMCwgMHg2NTczMjAsIDB4NjU3NDIwLCAweDY1NzU3MiwgMHg2OTZGNkUsIDB4Njk3MzIwLCAweDY5NzQyMCwgMHg2QzYxMjAsIDB4NkM2NTIwLCAweDZDNjU3MywgMHg2RDY1NkUsIDB4NkUyMDY0LCAweDZFNjUyMCwgMHg2RTczMjAsIDB4NkU3NDIwLCAKKyAgICAgICAgICAgIDB4NkY2RTIwLCAweDZGNkU3NCwgMHg2Rjc1NzIsIDB4NzE3NTY1LCAweDcyMjA2QywgMHg3MjY1MjAsIDB4NzMyMDYxLCAweDczMjA2NCwgMHg3MzIwNjUsIDB4NzMyMDZDLCAweDczMjA3MCwgMHg3NDIwNjQsIDB4NzQ2NTIwLCAweDc0Njk2RiwgMHg3NTY1MjAsIDB4NzU3MjIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJmciI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9pdCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTZDLCAweDIwNjM2OCwgMHgyMDYzNkYsIDB4MjA2NDY1LCAweDIwNjQ2OSwgMHgyMDY1MjAsIDB4MjA2OTZDLCAweDIwNjk2RSwgMHgyMDZDNjEsIDB4MjA3MDY1LCAweDIwNzA3MiwgMHgyMDc1NkUsIDB4NjEyMDYzLCAweDYxMjA2NCwgMHg2MTIwNzAsIDB4NjEyMDczLCAKKyAgICAgICAgICAgIDB4NjE3NDZGLCAweDYzNjg2NSwgMHg2MzZGNkUsIDB4NjQ2NTZDLCAweDY0NjkyMCwgMHg2NTIwNjEsIDB4NjUyMDYzLCAweDY1MjA2NCwgMHg2NTIwNjksIDB4NjUyMDZDLCAweDY1MjA3MCwgMHg2NTIwNzMsIDB4NjU2QzIwLCAweDY1NkM2QywgMHg2NTZFNzQsIDB4NjU3MjIwLCAKKyAgICAgICAgICAgIDB4Njg2NTIwLCAweDY5MjA2MSwgMHg2OTIwNjMsIDB4NjkyMDY0LCAweDY5MjA3MywgMHg2OTYxMjAsIDB4Njk2QzIwLCAweDY5NkUyMCwgMHg2OTZGNkUsIDB4NkM2MTIwLCAweDZDNjUyMCwgMHg2QzY5MjAsIDB4NkM2QzYxLCAweDZFNjUyMCwgMHg2RTY5MjAsIDB4NkU2RjIwLCAKKyAgICAgICAgICAgIDB4NkU3NDY1LCAweDZGMjA2MSwgMHg2RjIwNjQsIDB4NkYyMDY5LCAweDZGMjA3MywgMHg2RjZFMjAsIDB4NkY2RTY1LCAweDcwNjU3MiwgMHg3MjYxMjAsIDB4NzI2NTIwLCAweDczNjkyMCwgMHg3NDYxMjAsIDB4NzQ2NTIwLCAweDc0NjkyMCwgMHg3NDZGMjAsIDB4N0E2OTZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJpdCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9ubCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTZDLCAweDIwNjI2NSwgMHgyMDY0NjEsIDB4MjA2NDY1LCAweDIwNjQ2OSwgMHgyMDY1NjUsIDB4MjA2NTZFLCAweDIwNjc2NSwgMHgyMDY4NjUsIDB4MjA2OTZFLCAweDIwNkQ2MSwgMHgyMDZENjUsIDB4MjA2RjcwLCAweDIwNzQ2NSwgMHgyMDc2NjEsIDB4MjA3NjY1LCAKKyAgICAgICAgICAgIDB4MjA3NjZGLCAweDIwNzc2NSwgMHgyMDdBNjksIDB4NjE2MTZFLCAweDYxNjE3MiwgMHg2MTZFMjAsIDB4NjE2RTY0LCAweDYxNzIyMCwgMHg2MTc0MjAsIDB4NjM2ODc0LCAweDY0NjUyMCwgMHg2NDY1NkUsIDB4NjQ2NTcyLCAweDY1MjA2MiwgMHg2NTIwNzYsIDB4NjU2NTZFLCAKKyAgICAgICAgICAgIDB4NjU2NTcyLCAweDY1NkUyMCwgMHg2NTcyMjAsIDB4NjU3MjczLCAweDY1NzQyMCwgMHg2NzY1NkUsIDB4Njg2NTc0LCAweDY5NjUyMCwgMHg2OTZFMjAsIDB4Njk2RTY3LCAweDY5NzMyMCwgMHg2RTIwNjIsIDB4NkUyMDY0LCAweDZFMjA2NSwgMHg2RTIwNjgsIDB4NkUyMDZGLCAKKyAgICAgICAgICAgIDB4NkUyMDc2LCAweDZFNjQ2NSwgMHg2RTY3MjAsIDB4NkY2RTY0LCAweDZGNkY3MiwgMHg2RjcwMjAsIDB4NkY3MjIwLCAweDczNjM2OCwgMHg3Mzc0NjUsIDB4NzQyMDY0LCAweDc0NjUyMCwgMHg3NDY1NkUsIDB4NzQ2NTcyLCAweDc2NjE2RSwgMHg3NjY1NzIsIDB4NzY2RjZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJubCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9ubyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTc0LCAweDIwNjE3NiwgMHgyMDY0NjUsIDB4MjA2NTZFLCAweDIwNjU3MiwgMHgyMDY2NkYsIDB4MjA2ODYxLCAweDIwNjkyMCwgMHgyMDZENjUsIDB4MjA2RjY3LCAweDIwNzBFNSwgMHgyMDczNjUsIDB4MjA3MzZCLCAweDIwNzM2RiwgMHgyMDczNzQsIDB4MjA3NDY5LCAKKyAgICAgICAgICAgIDB4MjA3NjY5LCAweDIwRTUyMCwgMHg2MTZFNjQsIDB4NjE3MjIwLCAweDYxNzQyMCwgMHg2NDY1MjAsIDB4NjQ2NTZFLCAweDY0NjU3NCwgMHg2NTIwNzMsIDB4NjU2NDIwLCAweDY1NkUyMCwgMHg2NTZFNjUsIDB4NjU3MjIwLCAweDY1NzI2NSwgMHg2NTc0MjAsIDB4NjU3NDc0LCAKKyAgICAgICAgICAgIDB4NjY2RjcyLCAweDY3NjU2RSwgMHg2OTZCNkIsIDB4Njk2QzIwLCAweDY5NkU2NywgMHg2QjY1MjAsIDB4NkI2QjY1LCAweDZDNjUyMCwgMHg2QzZDNjUsIDB4NkQ2NTY0LCAweDZENjU2RSwgMHg2RTIwNzMsIDB4NkU2NTIwLCAweDZFNjcyMCwgMHg2RTY3NjUsIDB4NkU2RTY1LCAKKyAgICAgICAgICAgIDB4NkY2NzIwLCAweDZGNkQyMCwgMHg2RjcyMjAsIDB4NzBFNTIwLCAweDcyMjA3MywgMHg3MjY1MjAsIDB4NzM2RjZELCAweDczNzQ2NSwgMHg3NDIwNzMsIDB4NzQ2NTIwLCAweDc0NjU2RSwgMHg3NDY1NzIsIDB4NzQ2OTZDLCAweDc0NzQyMCwgMHg3NDc0NjUsIDB4NzY2NTcyLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJubyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9wdCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjM2RiwgMHgyMDY0NjEsIDB4MjA2NDY1LCAweDIwNjQ2RiwgMHgyMDY1MjAsIDB4MjA2NTczLCAweDIwNkQ2MSwgMHgyMDZFNkYsIDB4MjA2RjIwLCAweDIwNzA2MSwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzE3NSwgMHgyMDcyNjUsIDB4MjA3MzY1LCAKKyAgICAgICAgICAgIDB4MjA3NTZELCAweDYxMjA2MSwgMHg2MTIwNjMsIDB4NjEyMDY0LCAweDYxMjA3MCwgMHg2MTY0NjUsIDB4NjE2NDZGLCAweDYxNkMyMCwgMHg2MTcyMjAsIDB4NjE3MjYxLCAweDYxNzMyMCwgMHg2MzZGNkQsIDB4NjM2RjZFLCAweDY0NjEyMCwgMHg2NDY1MjAsIDB4NjQ2RjIwLCAKKyAgICAgICAgICAgIDB4NjQ2RjczLCAweDY1MjA2MSwgMHg2NTIwNjQsIDB4NjU2RDIwLCAweDY1NkU3NCwgMHg2NTczMjAsIDB4NjU3Mzc0LCAweDY5NjEyMCwgMHg2OTYzNjEsIDB4NkQ2NTZFLCAweDZFNzQ2NSwgMHg2RTc0NkYsIDB4NkYyMDYxLCAweDZGMjA2MywgMHg2RjIwNjQsIDB4NkYyMDY1LCAKKyAgICAgICAgICAgIDB4NkYyMDcwLCAweDZGNzMyMCwgMHg3MDYxNzIsIDB4NzE3NTY1LCAweDcyNjEyMCwgMHg3MjY1NzMsIDB4NzMyMDYxLCAweDczMjA2NCwgMHg3MzIwNjUsIDB4NzMyMDcwLCAweDczNzQ2MSwgMHg3NDY1MjAsIDB4NzQ2RjIwLCAweDc1NjUyMCwgMHhFMzZGMjAsIDB4RTdFMzZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJwdCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9zdiBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTc0LCAweDIwNjE3NiwgMHgyMDY0NjUsIDB4MjA2NTZFLCAweDIwNjZGNiwgMHgyMDY4NjEsIDB4MjA2OTIwLCAweDIwNjk2RSwgMHgyMDZCNkYsIDB4MjA2RDY1LCAweDIwNkY2MywgMHgyMDcwRTUsIDB4MjA3MzZCLCAweDIwNzM2RiwgMHgyMDczNzQsIDB4MjA3NDY5LCAKKyAgICAgICAgICAgIDB4MjA3NjYxLCAweDIwNzY2OSwgMHgyMEU0NzIsIDB4NjE2NDY1LCAweDYxNkUyMCwgMHg2MTZFNjQsIDB4NjE3MjIwLCAweDYxNzQ3NCwgMHg2MzY4MjAsIDB4NjQ2NTIwLCAweDY0NjU2RSwgMHg2NDY1NzIsIDB4NjQ2NTc0LCAweDY1NjQyMCwgMHg2NTZFMjAsIDB4NjU3MjIwLCAKKyAgICAgICAgICAgIDB4NjU3NDIwLCAweDY2RjY3MiwgMHg2NzY1NkUsIDB4Njk2QzZDLCAweDY5NkU2NywgMHg2QjYxMjAsIDB4NkM2QzIwLCAweDZENjU2NCwgMHg2RTIwNzMsIDB4NkU2MTIwLCAweDZFNjQ2NSwgMHg2RTY3MjAsIDB4NkU2NzY1LCAweDZFNjk2RSwgMHg2RjYzNjgsIDB4NkY2RDIwLCAKKyAgICAgICAgICAgIDB4NkY2RTIwLCAweDcwRTUyMCwgMHg3MjIwNjEsIDB4NzIyMDczLCAweDcyNjEyMCwgMHg3MzZCNjEsIDB4NzM2RjZELCAweDc0MjA3MywgMHg3NDYxMjAsIDB4NzQ2NTIwLCAweDc0NjU3MiwgMHg3NDY5NkMsIDB4NzQ3NDIwLCAweDc2NjE3MiwgMHhFNDcyMjAsIDB4RjY3MjIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJzdiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMiBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCMywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI1LCAoYnl0ZSkgMHhCNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI5LCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4QkIsIChieXRlKSAweEJDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkUsIChieXRlKSAweEJGLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCMSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEIzLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweEI2LCAoYnl0ZSkgMHhCNywgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjksIChieXRlKSAweEJBLCAoYnl0ZSkgMHhCQiwgKGJ5dGUpIDB4QkMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCRSwgKGJ5dGUpIDB4QkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjUwIiA6ICJJU08tODg1OS0yIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9jcyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjI3OSwgMHgyMDY0NkYsIDB4MjA2QTY1LCAweDIwNkU2MSwgMHgyMDZFNjUsIDB4MjA2RjIwLCAweDIwNkY2NCwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzBGOCwgMHgyMDcyNkYsIDB4MjA3MzY1LCAweDIwNzM2RiwgMHgyMDczNzQsIDB4MjA3NDZGLCAKKyAgICAgICAgICAgIDB4MjA3NjIwLCAweDIwNzY3OSwgMHgyMDdBNjEsIDB4NjEyMDcwLCAweDYzNjUyMCwgMHg2MzY4MjAsIDB4NjUyMDcwLCAweDY1MjA3MywgMHg2NTIwNzYsIDB4NjU2RDIwLCAweDY1NkVFRCwgMHg2ODZGMjAsIDB4Njg2RjY0LCAweDY5NzM3NCwgMHg2QTY1MjAsIDB4NkI3NDY1LCAKKyAgICAgICAgICAgIDB4NkM2NTIwLCAweDZDNjkyMCwgMHg2RTYxMjAsIDB4NkVFOTIwLCAweDZFRUMyMCwgMHg2RUVEMjAsIDB4NkYyMDcwLCAweDZGNjQ2RSwgMHg2RjZBNjksIDB4NkY3Mzc0LCAweDZGNzUyMCwgMHg2Rjc2NjEsIDB4NzA2RjY0LCAweDcwNkY2QSwgMHg3MDcyNkYsIDB4NzBGODY1LCAKKyAgICAgICAgICAgIDB4NzM2NTIwLCAweDczNkY3NSwgMHg3Mzc0NjEsIDB4NzM3NDY5LCAweDczNzQ2RSwgMHg3NDY1NzIsIDB4NzQ2RUVELCAweDc0NkYyMCwgMHg3NTIwNzAsIDB4QkU2NTIwLCAweEUxNkVFRCwgMHhFOTY4NkYsIDB4RUQyMDcwLCAweEVEMjA3MywgMHhFRDZEMjAsIDB4Rjg2NTY0LCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJjcyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9odSBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjE3QSwgMHgyMDYyNjUsIDB4MjA2NTY3LCAweDIwNjU2QywgMHgyMDY2NjUsIDB4MjA2ODYxLCAweDIwNjg2RiwgMHgyMDY5NzMsIDB4MjA2QjY1LCAweDIwNkI2OSwgMHgyMDZCRjYsIDB4MjA2QzY1LCAweDIwNkQ2MSwgMHgyMDZENjUsIDB4MjA2RDY5LCAKKyAgICAgICAgICAgIDB4MjA2RTY1LCAweDIwNzM3QSwgMHgyMDc0NjUsIDB4MjBFOTczLCAweDYxMjA2MSwgMHg2MTIwNkIsIDB4NjEyMDZELCAweDYxMjA3MywgMHg2MTZCMjAsIDB4NjE2RTIwLCAweDYxN0EyMCwgMHg2MjYxNkUsIDB4NjI2NTZFLCAweDY1Njc3OSwgMHg2NTZCMjAsIDB4NjU2QzIwLCAKKyAgICAgICAgICAgIDB4NjU2QzY1LCAweDY1NkQyMCwgMHg2NTZFMjAsIDB4NjU3MjY1LCAweDY1NzQyMCwgMHg2NTc0NjUsIDB4NjU3NDc0LCAweDY3NzkyMCwgMHg2ODZGNjcsIDB4Njk2RTc0LCAweDY5NzMyMCwgMHg2QjIwNjEsIDB4NkJGNjdBLCAweDZENjU2NywgMHg2RDY5NkUsIDB4NkUyMDYxLCAKKyAgICAgICAgICAgIDB4NkU2MTZCLCAweDZFNjU2QiwgMHg2RTY1NkQsIDB4NkU3NDIwLCAweDZGNjc3OSwgMHg3MzIwNjEsIDB4NzM3QTY1LCAweDczN0E3NCwgMHg3MzdBRTEsIDB4NzNFOTY3LCAweDc0MjA2MSwgMHg3NDc0MjAsIDB4NzRFMTczLCAweDdBNjU3MiwgMHhFMTZFMjAsIDB4RTk3MzIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJodSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9wbCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MzdBLCAweDIwNjQ2RiwgMHgyMDY5MjAsIDB4MjA2QTY1LCAweDIwNkI2RiwgMHgyMDZENjEsIDB4MjA2RDY5LCAweDIwNkU2MSwgMHgyMDZFNjksIDB4MjA2RjY0LCAweDIwNzA2RiwgMHgyMDcwNzIsIDB4MjA3MzY5LCAweDIwNzcyMCwgMHgyMDc3NjksIDB4MjA3Nzc5LCAKKyAgICAgICAgICAgIDB4MjA3QTIwLCAweDIwN0E2MSwgMHg2MTIwNzAsIDB4NjEyMDc3LCAweDYxNkU2OSwgMHg2MzY4MjAsIDB4NjM3QTY1LCAweDYzN0E3OSwgMHg2NDZGMjAsIDB4NjQ3QTY5LCAweDY1MjA3MCwgMHg2NTIwNzMsIDB4NjUyMDc3LCAweDY1MjA3QSwgMHg2NTY3NkYsIDB4NjU2QTIwLCAKKyAgICAgICAgICAgIDB4NjU2RDIwLCAweDY1NkU2OSwgMHg2NzZGMjAsIDB4Njk2MTIwLCAweDY5NjUyMCwgMHg2OTY1NkEsIDB4NkI2MTIwLCAweDZCNjkyMCwgMHg2QjY5NjUsIDB4NkQ2OTY1LCAweDZFNjEyMCwgMHg2RTY5NjEsIDB4NkU2OTY1LCAweDZGMjA3MCwgMHg2Rjc3NjEsIDB4NkY3NzY5LCAKKyAgICAgICAgICAgIDB4NzA2RjZDLCAweDcwNzI2MSwgMHg3MDcyNkYsIDB4NzA3MjdBLCAweDcyN0E2NSwgMHg3MjdBNzksIDB4NzM2OUVBLCAweDczNkI2OSwgMHg3Mzc0NjEsIDB4Nzc2OTY1LCAweDc5NjM2OCwgMHg3OTZEMjAsIDB4N0E2NTIwLCAweDdBNjk2NSwgMHg3QTc5MjAsIDB4RjM3NzIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJwbCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9ybyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjE2MywgMHgyMDYzNjEsIDB4MjA2MzY1LCAweDIwNjM2RiwgMHgyMDYzNzUsIDB4MjA2NDY1LCAweDIwNjQ2OSwgMHgyMDZDNjEsIDB4MjA2RDYxLCAweDIwNzA2NSwgMHgyMDcwNzIsIDB4MjA3MzY1LCAweDIwNzNFMywgMHgyMDc1NkUsIDB4MjBCQTY5LCAKKyAgICAgICAgICAgIDB4MjBFRTZFLCAweDYxMjA2MywgMHg2MTIwNjQsIDB4NjE3MjY1LCAweDYxNzQyMCwgMHg2MTc0NjUsIDB4NjE3NTIwLCAweDYzNjE3MiwgMHg2MzZGNkUsIDB4NjM3NTIwLCAweDYzRTMyMCwgMHg2NDY1MjAsIDB4NjUyMDYxLCAweDY1MjA2MywgMHg2NTIwNjQsIDB4NjUyMDcwLCAKKyAgICAgICAgICAgIDB4NjUyMDczLCAweDY1NjEyMCwgMHg2NTY5MjAsIDB4NjU2QzY1LCAweDY1NkU3NCwgMHg2NTczNzQsIDB4NjkyMDYxLCAweDY5MjA2MywgMHg2OTIwNjQsIDB4NjkyMDcwLCAweDY5NjUyMCwgMHg2OTY5MjAsIDB4Njk2RTIwLCAweDZDNjEyMCwgMHg2QzY1MjAsIDB4NkM2RjcyLCAKKyAgICAgICAgICAgIDB4NkM3NTY5LCAweDZFNjUyMCwgMHg2RTc0NzIsIDB4NkY3MjIwLCAweDcwNjU2RSwgMHg3MjY1MjAsIDB4NzI2NTYxLCAweDcyNzUyMCwgMHg3M0UzMjAsIDB4NzQ2NTIwLCAweDc0NzI3NSwgMHg3NEUzMjAsIDB4NzU2OTIwLCAweDc1NkMyMCwgMHhCQTY5MjAsIDB4RUU2RTIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJybyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNSBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4RjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGLCAKKyAgICAgICAgICAgIChieXRlKSAweEQwLCAoYnl0ZSkgMHhEMSwgKGJ5dGUpIDB4RDIsIChieXRlKSAweEQzLCAoYnl0ZSkgMHhENCwgKGJ5dGUpIDB4RDUsIChieXRlKSAweEQ2LCAoYnl0ZSkgMHhENywgCisgICAgICAgICAgICAoYnl0ZSkgMHhEOCwgKGJ5dGUpIDB4RDksIChieXRlKSAweERBLCAoYnl0ZSkgMHhEQiwgKGJ5dGUpIDB4REMsIChieXRlKSAweERELCAoYnl0ZSkgMHhERSwgKGJ5dGUpIDB4REYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4RDcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJJU08tODg1OS01IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNV9ydSBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzUKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBEMjIwLCAweDIwRDJERSwgMHgyMEQ0REUsIDB4MjBEN0QwLCAweDIwRDgyMCwgMHgyMERBRDAsIDB4MjBEQURFLCAweDIwREREMCwgMHgyMERERDUsIDB4MjBERUQxLCAweDIwREZERSwgMHgyMERGRTAsIDB4MjBFMEQwLCAweDIwRTFERSwgMHgyMEUxRTIsIDB4MjBFMkRFLCAKKyAgICAgICAgICAgIDB4MjBFN0UyLCAweDIwRURFMiwgMHhEMERERDgsIDB4RDBFMkVDLCAweEQzREUyMCwgMHhENURCRUMsIDB4RDVEREQ4LCAweEQ1RTFFMiwgMHhENUUyMjAsIDB4RDgyMERGLCAweEQ4RDUyMCwgMHhEOEQ4MjAsIDB4RDhFRjIwLCAweERCRDVERCwgMHhEQkQ4MjAsIDB4REJFQ0RELCAKKyAgICAgICAgICAgIDB4REREMDIwLCAweERERDUyMCwgMHhEREQ4RDUsIDB4REREOEVGLCAweEREREUyMCwgMHhERERFRDIsIDB4REUyMEQyLCAweERFMjBERiwgMHhERTIwRTEsIDB4REVEMjIwLCAweERFRDJEMCwgMHhERUQzREUsIDB4REVEOTIwLCAweERFREJFQywgMHhERURDMjAsIDB4REVFMUUyLCAKKyAgICAgICAgICAgIDB4REZERURCLCAweERGRTBENSwgMHhERkUwRDgsIDB4REZFMERFLCAweEUwRDBEMiwgMHhFMEQ1RDQsIDB4RTFFMkQwLCAweEUxRTJEMiwgMHhFMUUyRDgsIDB4RTFFRjIwLCAweEUyRDVEQiwgMHhFMkRFMjAsIDB4RTJERUUwLCAweEUyRUMyMCwgMHhFN0UyREUsIDB4RUJFNTIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJydSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNiBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEMxLCAoYnl0ZSkgMHhDMiwgKGJ5dGUpIDB4QzMsIChieXRlKSAweEM0LCAoYnl0ZSkgMHhDNSwgKGJ5dGUpIDB4QzYsIChieXRlKSAweEM3LCAKKyAgICAgICAgICAgIChieXRlKSAweEM4LCAoYnl0ZSkgMHhDOSwgKGJ5dGUpIDB4Q0EsIChieXRlKSAweENCLCAoYnl0ZSkgMHhDQywgKGJ5dGUpIDB4Q0QsIChieXRlKSAweENFLCAoYnl0ZSkgMHhDRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4RDcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJJU08tODg1OS02IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNl9hciBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzYKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBDN0U0LCAweDIwQzdFNiwgMHgyMEM4QzcsIDB4MjBEOUU0LCAweDIwRTFFQSwgMHgyMEU0RTQsIDB4MjBFNUU2LCAweDIwRThDNywgMHhDNzIwQzcsIDB4QzdDMTIwLCAweEM3Q0EyMCwgMHhDN0QxMjAsIDB4QzdFNDIwLCAweEM3RTRDMywgMHhDN0U0QzcsIDB4QzdFNEM4LCAKKyAgICAgICAgICAgIDB4QzdFNENBLCAweEM3RTRDQywgMHhDN0U0Q0QsIDB4QzdFNENGLCAweEM3RTREMywgMHhDN0U0RDksIDB4QzdFNEUyLCAweEM3RTRFNSwgMHhDN0U0RTgsIDB4QzdFNEVBLCAweEM3RTUyMCwgMHhDN0U2MjAsIDB4QzdFNkNBLCAweEM4MjBDNywgMHhDOTIwQzcsIDB4QzkyMEUxLCAKKyAgICAgICAgICAgIDB4QzkyMEU0LCAweEM5MjBFNSwgMHhDOTIwRTgsIDB4Q0EyMEM3LCAweENGMjBDNywgMHhDRkM5MjAsIDB4RDEyMEM3LCAweEQxQzkyMCwgMHhEMzIwQzcsIDB4RDkyMEM3LCAweEQ5RTRFOSwgMHhFMUVBMjAsIDB4RTQyMEM3LCAweEU0QzkyMCwgMHhFNEU5MjAsIDB4RTRFQTIwLCAKKyAgICAgICAgICAgIDB4RTUyMEM3LCAweEU1QzcyMCwgMHhFNUM5MjAsIDB4RTVFNjIwLCAweEU2MjBDNywgMHhFNzIwQzcsIDB4RTdDNzIwLCAweEU4QzdFNCwgMHhFOEU2MjAsIDB4RTkyMEM3LCAweEVBMjBDNywgMHhFQTIwRTUsIDB4RUEyMEU4LCAweEVBQzkyMCwgMHhFQUQxMjAsIDB4RUFFNjIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJhciI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNyBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QTEsIChieXRlKSAweEEyLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweERDLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RkMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4RjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjUzIiA6ICJJU08tODg1OS03IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfN19lbCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzcKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBFMUVELCAweDIwRTFGMCwgMHgyMEUzRTksIDB4MjBFNEU5LCAweDIwRTVGMCwgMHgyMEU3MjAsIDB4MjBFQUUxLCAweDIwRUNFNSwgMHgyMEVERTEsIDB4MjBFRjIwLCAweDIwRjBFMSwgMHgyMEYwRUYsIDB4MjBGMEYxLCAweDIwRjNGNCwgMHgyMEYzRjUsIDB4MjBGNEU3LCAKKyAgICAgICAgICAgIDB4MjBGNEVGLCAweERGRTEyMCwgMHhFMTIwRTEsIDB4RTEyMEY0LCAweEUxRTkyMCwgMHhFMUVEMjAsIDB4RTFGMEZDLCAweEUxRjIyMCwgMHhFM0U5RTEsIDB4RTVFOTIwLCAweEU1RjIyMCwgMHhFNzIwRjQsIDB4RTdFRDIwLCAweEU3RjIyMCwgMHhFOTIwRjQsIDB4RTlFMTIwLCAKKyAgICAgICAgICAgIDB4RTlFQURFLCAweEU5RjIyMCwgMHhFQUUxRTksIDB4RUFFMUY0LCAweEVDRTUyMCwgMHhFRDIwRTEsIDB4RUQyMEU1LCAweEVEMjBGMCwgMHhFREUxMjAsIDB4RUZGMjIwLCAweEVGRjUyMCwgMHhGMEVGRjUsIDB4RjBGMUVGLCAweEYwRkMyMCwgMHhGMjIwRTEsIDB4RjIyMEU1LCAKKyAgICAgICAgICAgIDB4RjIyMEVBLCAweEYyMjBGMCwgMHhGMjIwRjQsIDB4RjNFNTIwLCAweEYzRTcyMCwgMHhGM0Y0RUYsIDB4RjRFMTIwLCAweEY0RTFFOSwgMHhGNEU3RUQsIDB4RjRFN0YyLCAweEY0RTlFQSwgMHhGNEVGMjAsIDB4RjRFRkY1LCAweEY0RjlFRCwgMHhGOUVEMjAsIDB4RkVFRDIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJlbCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfOCBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjU1IiA6ICJJU08tODg1OS04IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfOF9JX2hlIGV4dGVuZHMgQ2hhcnNldFJlY29nXzg4NTlfOAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMEUwRTUsIDB4MjBFMEU3LCAweDIwRTBFOSwgMHgyMEUwRkEsIDB4MjBFMUU5LCAweDIwRTFFRSwgMHgyMEU0RTAsIDB4MjBFNEU1LCAweDIwRTRFOSwgMHgyMEU0RUUsIDB4MjBFNEYyLCAweDIwRTRGOSwgMHgyMEU0RkEsIDB4MjBFQ0UwLCAweDIwRUNFNCwgMHgyMEVFRTAsIAorICAgICAgICAgICAgMHgyMEYyRUMsIDB4MjBGOUVDLCAweEUwRkEyMCwgMHhFNDIwRTAsIDB4RTQyMEUxLCAweEU0MjBFNCwgMHhFNDIwRUMsIDB4RTQyMEVFLCAweEU0MjBGOSwgMHhFNEU1RTAsIDB4RTVFMDIwLCAweEU1RUQyMCwgMHhFNUVGMjAsIDB4RTVGODIwLCAweEU1RkEyMCwgMHhFOTIwRTQsIAorICAgICAgICAgICAgMHhFOUU0MjAsIDB4RTlFNUZBLCAweEU5RTlFRCwgMHhFOUVEMjAsIDB4RTlFRjIwLCAweEU5RjgyMCwgMHhFOUZBMjAsIDB4RUMyMEUwLCAweEVDMjBFNCwgMHhFQ0UwMjAsIDB4RUNFNDIwLCAweEVEMjBFMCwgMHhFRDIwRTEsIDB4RUQyMEU0LCAweEVEMjBFQywgMHhFRDIwRUUsIAorICAgICAgICAgICAgMHhFRDIwRjksIDB4RUVFNDIwLCAweEVGMjBFNCwgMHhGMEU0MjAsIDB4RjBFOTIwLCAweEYwRTlFRCwgMHhGMkVDMjAsIDB4RjgyMEU0LCAweEY4RTlFRCwgMHhGOUVDMjAsIDB4RkEyMEUwLCAweEZBMjBFMSwgMHhGQTIwRTQsIDB4RkEyMEVDLCAweEZBMjBFRSwgMHhGQTIwRjksIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBoYXZlQzFCeXRlcz8gIndpbmRvd3MtMTI1NSIgOiAvKiJJU08tODg1OS04LUkiKi8gIklTTy04ODU5LTgiOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiaGUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzhfaGUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV84CisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwRTBFNSwgMHgyMEUwRUMsIDB4MjBFNEU5LCAweDIwRTRFQywgMHgyMEU0RUUsIDB4MjBFNEYwLCAweDIwRTlGMCwgMHgyMEVDRjIsIDB4MjBFQ0Y5LCAweDIwRURFNSwgMHgyMEVERTksIDB4MjBFRkU1LCAweDIwRUZFOSwgMHgyMEY4RTUsIDB4MjBGOEU5LCAweDIwRkFFMCwgCisgICAgICAgICAgICAweDIwRkFFNSwgMHgyMEZBRTksIDB4RTAyMEU0LCAweEUwMjBFQywgMHhFMDIwRUQsIDB4RTAyMEZBLCAweEUwRTQyMCwgMHhFMEU1RTQsIDB4RTBFQzIwLCAweEUwRUUyMCwgMHhFMTIwRTQsIDB4RTEyMEVELCAweEUxMjBGQSwgMHhFNDIwRTQsIDB4RTQyMEU5LCAweEU0MjBFQywgCisgICAgICAgICAgICAweEU0MjBFRCwgMHhFNDIwRUYsIDB4RTQyMEY4LCAweEU0MjBGQSwgMHhFNEVDMjAsIDB4RTVFMDIwLCAweEU1RTQyMCwgMHhFN0UwMjAsIDB4RTlFMDIwLCAweEU5RTEyMCwgMHhFOUU0MjAsIDB4RUMyMEU0LCAweEVDMjBFRCwgMHhFQzIwRkEsIDB4RUNGMjIwLCAweEVDRjkyMCwgCisgICAgICAgICAgICAweEVERTlFOSwgMHhFREU5RjAsIDB4RURFOUY4LCAweEVFMjBFNCwgMHhFRTIwRUQsIDB4RUUyMEZBLCAweEVFRTEyMCwgMHhFRUU0MjAsIDB4RjJFNDIwLCAweEY5MjBFNCwgMHhGOTIwRUQsIDB4RjkyMEZBLCAweEY5RTQyMCwgMHhGQUUwMjAsIDB4RkFFNDIwLCAweEZBRTVFOSwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiaGUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzkgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QUEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI1LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4NjksIChieXRlKSAweEZFLCAoYnl0ZSkgMHhERiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweEZELCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4RkYsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBoYXZlQzFCeXRlcz8gIndpbmRvd3MtMTI1NCIgOiAiSVNPLTg4NTktOSI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzlfdHIgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV85CisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjI2MSwgMHgyMDYyNjksIDB4MjA2Mjc1LCAweDIwNjQ2MSwgMHgyMDY0NjUsIDB4MjA2NzY1LCAweDIwNjg2MSwgMHgyMDY5NkMsIDB4MjA2QjYxLCAweDIwNkI2RiwgMHgyMDZENjEsIDB4MjA2RjZDLCAweDIwNzM2MSwgMHgyMDc0NjEsIDB4MjA3NjY1LCAweDIwNzk2MSwgCisgICAgICAgICAgICAweDYxMjA2MiwgMHg2MTZCMjAsIDB4NjE2QzYxLCAweDYxNkQ2MSwgMHg2MTZFMjAsIDB4NjE2RUZELCAweDYxNzIyMCwgMHg2MTcyNjEsIDB4NjE3MkZELCAweDYxNzNGRCwgMHg2MTc5NjEsIDB4NjI2OTcyLCAweDY0NjEyMCwgMHg2NDY1MjAsIDB4NjQ2OTIwLCAweDY1MjA2MiwgCisgICAgICAgICAgICAweDY1MjA2QiwgMHg2NTY0NjksIDB4NjU2RTIwLCAweDY1NzIyMCwgMHg2NTcyNjksIDB4NjU3MzY5LCAweDY5NkM2NSwgMHg2OTZFMjAsIDB4Njk2RTY5LCAweDY5NzIyMCwgMHg2QzYxNkUsIDB4NkM2MTcyLCAweDZDNjUyMCwgMHg2QzY1NzIsIDB4NkUyMDYxLCAweDZFMjA2MiwgCisgICAgICAgICAgICAweDZFMjA2QiwgMHg2RTY0NjEsIDB4NkU2NDY1LCAweDZFNjUyMCwgMHg2RTY5MjAsIDB4NkU2OTZFLCAweDZFRkQyMCwgMHg3MjY5NkUsIDB4NzJGRDZFLCAweDc2NjUyMCwgMHg3OTYxMjAsIDB4Nzk2RjcyLCAweEZENkUyMCwgMHhGRDZFNjQsIDB4RkQ2RUZELCAweEZERjBGRCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAidHIiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTEgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMEUyMjAsIDB4MjBFMkVFLCAweDIwRTRFRSwgMHgyMEU3RTAsIDB4MjBFODIwLCAweDIwRUFFMCwgMHgyMEVBRUUsIDB4MjBFREUwLCAweDIwRURFNSwgMHgyMEVFRTEsIDB4MjBFRkVFLCAweDIwRUZGMCwgMHgyMEYwRTAsIDB4MjBGMUVFLCAweDIwRjFGMiwgMHgyMEYyRUUsIAorICAgICAgICAgICAgMHgyMEY3RjIsIDB4MjBGREYyLCAweEUwRURFOCwgMHhFMEYyRkMsIDB4RTNFRTIwLCAweEU1RUJGQywgMHhFNUVERTgsIDB4RTVGMUYyLCAweEU1RjIyMCwgMHhFODIwRUYsIDB4RThFNTIwLCAweEU4RTgyMCwgMHhFOEZGMjAsIDB4RUJFNUVELCAweEVCRTgyMCwgMHhFQkZDRUQsIAorICAgICAgICAgICAgMHhFREUwMjAsIDB4RURFNTIwLCAweEVERThFNSwgMHhFREU4RkYsIDB4RURFRTIwLCAweEVERUVFMiwgMHhFRTIwRTIsIDB4RUUyMEVGLCAweEVFMjBGMSwgMHhFRUUyMjAsIDB4RUVFMkUwLCAweEVFRTNFRSwgMHhFRUU5MjAsIDB4RUVFQkZDLCAweEVFRUMyMCwgMHhFRUYxRjIsIAorICAgICAgICAgICAgMHhFRkVFRUIsIDB4RUZGMEU1LCAweEVGRjBFOCwgMHhFRkYwRUUsIDB4RjBFMEUyLCAweEYwRTVFNCwgMHhGMUYyRTAsIDB4RjFGMkUyLCAweEYxRjJFOCwgMHhGMUZGMjAsIDB4RjJFNUVCLCAweEYyRUUyMCwgMHhGMkVFRjAsIDB4RjJGQzIwLCAweEY3RjJFRSwgMHhGQkY1MjAsIAorICAgICAgICB9OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDkwLCAoYnl0ZSkgMHg4MywgKGJ5dGUpIDB4MjAsIChieXRlKSAweDgzLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUMsIChieXRlKSAweDlELCAoYnl0ZSkgMHg5RSwgKGJ5dGUpIDB4OUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4OTAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5QywgKGJ5dGUpIDB4OUQsIChieXRlKSAweDlFLCAoYnl0ZSkgMHg5RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QTIsIChieXRlKSAweEEyLCAoYnl0ZSkgMHhCQywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI0LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QjgsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEJGLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjMsIChieXRlKSAweEIzLCAoYnl0ZSkgMHhCNCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhCOCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEJBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkMsIChieXRlKSAweEJFLCAoYnl0ZSkgMHhCRSwgKGJ5dGUpIDB4QkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4RjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICAid2luZG93cy0xMjUxIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAicnUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTYgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMEM3RTEsIDB4MjBDN0U0LCAweDIwQzhDNywgMHgyMERBRTEsIDB4MjBEREVELCAweDIwRTFFMSwgMHgyMEUzRTQsIDB4MjBFNkM3LCAweEM3MjBDNywgMHhDN0MxMjAsIDB4QzdDQTIwLCAweEM3RDEyMCwgMHhDN0UxMjAsIDB4QzdFMUMzLCAweEM3RTFDNywgMHhDN0UxQzgsIAorICAgICAgICAgICAgMHhDN0UxQ0EsIDB4QzdFMUNDLCAweEM3RTFDRCwgMHhDN0UxQ0YsIDB4QzdFMUQzLCAweEM3RTFEQSwgMHhDN0UxREUsIDB4QzdFMUUzLCAweEM3RTFFNiwgMHhDN0UxRUQsIDB4QzdFMzIwLCAweEM3RTQyMCwgMHhDN0U0Q0EsIDB4QzgyMEM3LCAweEM5MjBDNywgMHhDOTIwREQsIAorICAgICAgICAgICAgMHhDOTIwRTEsIDB4QzkyMEUzLCAweEM5MjBFNiwgMHhDQTIwQzcsIDB4Q0YyMEM3LCAweENGQzkyMCwgMHhEMTIwQzcsIDB4RDFDOTIwLCAweEQzMjBDNywgMHhEQTIwQzcsIDB4REFFMUVDLCAweERERUQyMCwgMHhFMTIwQzcsIDB4RTFDOTIwLCAweEUxRUMyMCwgMHhFMUVEMjAsIAorICAgICAgICAgICAgMHhFMzIwQzcsIDB4RTNDNzIwLCAweEUzQzkyMCwgMHhFM0U0MjAsIDB4RTQyMEM3LCAweEU1MjBDNywgMHhFNUM3MjAsIDB4RTZDN0UxLCAweEU2RTQyMCwgMHhFQzIwQzcsIDB4RUQyMEM3LCAweEVEMjBFMywgMHhFRDIwRTYsIDB4RURDOTIwLCAweEVERDEyMCwgMHhFREU0MjAsIAorICAgICAgICB9OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg4MSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDgzLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHg4OCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDhBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUMsIChieXRlKSAweDhELCAoYnl0ZSkgMHg4RSwgKGJ5dGUpIDB4OEYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4OTAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDk4LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5QywgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhBQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzAsIChieXRlKSAweEMxLCAoYnl0ZSkgMHhDMiwgKGJ5dGUpIDB4QzMsIChieXRlKSAweEM0LCAoYnl0ZSkgMHhDNSwgKGJ5dGUpIDB4QzYsIChieXRlKSAweEM3LCAKKyAgICAgICAgICAgIChieXRlKSAweEM4LCAoYnl0ZSkgMHhDOSwgKGJ5dGUpIDB4Q0EsIChieXRlKSAweENCLCAoYnl0ZSkgMHhDQywgKGJ5dGUpIDB4Q0QsIChieXRlKSAweENFLCAoYnl0ZSkgMHhDRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEY0LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICAid2luZG93cy0xMjU2IjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiYXIiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfS09JOF9SIGV4dGVuZHMgQ2hhcnNldFJlY29nX3NiY3MKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBDNENGLCAweDIwQzkyMCwgMHgyMENCQzEsIDB4MjBDQkNGLCAweDIwQ0VDMSwgMHgyMENFQzUsIDB4MjBDRkMyLCAweDIwRDBDRiwgMHgyMEQwRDIsIDB4MjBEMkMxLCAweDIwRDNDRiwgMHgyMEQzRDQsIDB4MjBENENGLCAweDIwRDcyMCwgMHgyMEQ3Q0YsIDB4MjBEQUMxLCAKKyAgICAgICAgICAgIDB4MjBEQ0Q0LCAweDIwREVENCwgMHhDMUNFQzksIDB4QzFENEQ4LCAweEM1Q0NEOCwgMHhDNUNFQzksIDB4QzVEM0Q0LCAweEM1RDQyMCwgMHhDN0NGMjAsIDB4QzkyMEQwLCAweEM5QzUyMCwgMHhDOUM5MjAsIDB4QzlEMTIwLCAweENDQzVDRSwgMHhDQ0M5MjAsIDB4Q0NEOENFLCAKKyAgICAgICAgICAgIDB4Q0VDMTIwLCAweENFQzUyMCwgMHhDRUM5QzUsIDB4Q0VDOUQxLCAweENFQ0YyMCwgMHhDRUNGRDcsIDB4Q0YyMEQwLCAweENGMjBEMywgMHhDRjIwRDcsIDB4Q0ZDN0NGLCAweENGQ0EyMCwgMHhDRkNDRDgsIDB4Q0ZDRDIwLCAweENGRDNENCwgMHhDRkQ3MjAsIDB4Q0ZEN0MxLCAKKyAgICAgICAgICAgIDB4RDBDRkNDLCAweEQwRDJDNSwgMHhEMEQyQzksIDB4RDBEMkNGLCAweEQyQzFENywgMHhEMkM1QzQsIDB4RDNEMTIwLCAweEQzRDRDMSwgMHhEM0Q0QzksIDB4RDNENEQ3LCAweEQ0QzVDQywgMHhENENGMjAsIDB4RDRDRkQyLCAweEQ0RDgyMCwgMHhEOUM4MjAsIDB4REVENENGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QTMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhBMywgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEMwLCAoYnl0ZSkgMHhDMSwgKGJ5dGUpIDB4QzIsIChieXRlKSAweEMzLCAoYnl0ZSkgMHhDNCwgKGJ5dGUpIDB4QzUsIChieXRlKSAweEM2LCAoYnl0ZSkgMHhDNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhDOCwgKGJ5dGUpIDB4QzksIChieXRlKSAweENBLCAoYnl0ZSkgMHhDQiwgKGJ5dGUpIDB4Q0MsIChieXRlKSAweENELCAoYnl0ZSkgMHhDRSwgKGJ5dGUpIDB4Q0YsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDAsIChieXRlKSAweEQxLCAoYnl0ZSkgMHhEMiwgKGJ5dGUpIDB4RDMsIChieXRlKSAweEQ0LCAoYnl0ZSkgMHhENSwgKGJ5dGUpIDB4RDYsIChieXRlKSAweEQ3LCAKKyAgICAgICAgICAgIChieXRlKSAweEQ4LCAoYnl0ZSkgMHhEOSwgKGJ5dGUpIDB4REEsIChieXRlKSAweERCLCAoYnl0ZSkgMHhEQywgKGJ5dGUpIDB4REQsIChieXRlKSAweERFLCAoYnl0ZSkgMHhERiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhDMCwgKGJ5dGUpIDB4QzEsIChieXRlKSAweEMyLCAoYnl0ZSkgMHhDMywgKGJ5dGUpIDB4QzQsIChieXRlKSAweEM1LCAoYnl0ZSkgMHhDNiwgKGJ5dGUpIDB4QzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzgsIChieXRlKSAweEM5LCAoYnl0ZSkgMHhDQSwgKGJ5dGUpIDB4Q0IsIChieXRlKSAweENDLCAoYnl0ZSkgMHhDRCwgKGJ5dGUpIDB4Q0UsIChieXRlKSAweENGLCAKKyAgICAgICAgICAgIChieXRlKSAweEQwLCAoYnl0ZSkgMHhEMSwgKGJ5dGUpIDB4RDIsIChieXRlKSAweEQzLCAoYnl0ZSkgMHhENCwgKGJ5dGUpIDB4RDUsIChieXRlKSAweEQ2LCAoYnl0ZSkgMHhENywgCisgICAgICAgICAgICAoYnl0ZSkgMHhEOCwgKGJ5dGUpIDB4RDksIChieXRlKSAweERBLCAoYnl0ZSkgMHhEQiwgKGJ5dGUpIDB4REMsIChieXRlKSAweERELCAoYnl0ZSkgMHhERSwgKGJ5dGUpIDB4REYsIAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICAiS09JOC1SIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAicnUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2duaXplci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nbml6ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODRiYjIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nbml6ZXIuamF2YQpAQCAtMCwwICsxLDU1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgZm9yIHJlY29nbml6aW5nIGEgc2luZ2xlIGNoYXJzZXQuCisgKiBQYXJ0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBJQ1UncyBDaGFyc2V0RGV0ZWN0b3IuCisgKiAKKyAqIEVhY2ggc3BlY2lmaWMgY2hhcnNldCB0aGF0IGNhbiBiZSByZWNvZ25pemVkIHdpbGwgaGF2ZSBhbiBpbnN0YW5jZQorICogb2Ygc29tZSBzdWJjbGFzcyBvZiB0aGlzIGNsYXNzLiAgQWxsIGludGVyYWN0aW9uIGJldHdlZW4gdGhlIG92ZXJhbGwKKyAqIENoYXJzZXREZXRlY3RvciBhbmQgdGhlIHN0dWZmIHNwZWNpZmljIHRvIGFuIGluZGl2aWR1YWwgY2hhcnNldCBoYXBwZW5zCisgKiB2aWEgdGhlIGludGVyZmFjZSBwcm92aWRlZCBoZXJlLgorICogCisgKiBJbnN0YW5jZXMgb2YgQ2hhcnNldERldGVjdG9yIERPIE5PVCBoYXZlIG9yIG1haW50YWluIAorICogc3RhdGUgcGVydGFpbmluZyB0byBhIHNwZWNpZmljIG1hdGNoIG9yIGRldGVjdCBvcGVyYXRpb24uCisgKiBUaGUgV0lMTCBiZSBzaGFyZWQgYnkgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIENoYXJzZXREZXRlY3Rvci4KKyAqIFRoZXkgZW5jYXBzdWxhdGUgY29uc3QgY2hhcnNldC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4KKyAqIAorICogQGludGVybmFsCisgKi8KK2Fic3RyYWN0IGNsYXNzIENoYXJzZXRSZWNvZ25pemVyIHsKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIElBTkEgbmFtZSBvZiB0aGlzIGNoYXJzZXQuCisgICAgICogQHJldHVybiB0aGUgY2hhcnNldCBuYW1lLgorICAgICAqLworICAgIGFic3RyYWN0IFN0cmluZyAgICAgIGdldE5hbWUoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIElTTyBsYW5ndWFnZSBjb2RlIGZvciB0aGlzIGNoYXJzZXQuCisgICAgICogQHJldHVybiB0aGUgbGFuZ3VhZ2UgY29kZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIGxhbmd1YWdlIGNhbm5vdCBiZSBkZXRlcm1pbmVkLgorICAgICAqLworICAgIHB1YmxpYyAgIFN0cmluZyAgICAgIGdldExhbmd1YWdlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBtYXRjaCBvZiB0aGlzIGNoYXJzZXQgd2l0aCB0aGUgaW5wdXQgdGV4dCBkYXRhCisgICAgICogICAgICB3aGljaCBpcyBvYnRhaW5lZCB2aWEgdGhlIENoYXJzZXREZXRlY3RvciBvYmplY3QuCisgICAgICogCisgICAgICogQHBhcmFtIGRldCAgVGhlIENoYXJzZXREZXRlY3Rvciwgd2hpY2ggY29udGFpbnMgdGhlIGlucHV0IHRleHQKKyAgICAgKiAgICAgICAgICAgICB0byBiZSBjaGVja2VkIGZvciBiZWluZyBpbiB0aGlzIGNoYXJzZXQuCisgICAgICogQHJldHVybiAgICAgVHdvIHZhbHVlcyBwYWNrZWQgaW50byBvbmUgaW50ICAoRGFtbiBqYXZhLCBhbnlob3cpCisgICAgICogICAgICAgICAgICAgPGJyLz4KKyAgICAgKiAgICAgICAgICAgICBiaXRzIDAtNzogIHRoZSBtYXRjaCBjb25maWRlbmNlLCByYW5naW5nIGZyb20gMC0xMDAKKyAgICAgKiAgICAgICAgICAgICA8YnIvPgorICAgICAqICAgICAgICAgICAgIGJpdHMgOC0xNTogVGhlIG1hdGNoIHJlYXNvbiwgYW4gZW51bS1saWtlIHZhbHVlLgorICAgICAqLworICAgIGFic3RyYWN0IGludCAgICAgICAgIG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGluZXNlRGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYmYzNTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXQuamF2YQpAQCAtMCwwICsxLDE3NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQSBjb25jcmV0ZSB7QGxpbmsgRGF0ZUZvcm1hdH0gZm9yIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhcn0uCisgKiBUaGlzIGNsYXNzIGhhbmRsZXMgYSA8Y29kZT5DaGluZXNlQ2FsZW5kYXI8L2NvZGU+LXNwZWNpZmljIGZpZWxkLAorICogPGNvZGU+Q2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEg8L2NvZGU+LiAgSXQgYWxzbyByZWRlZmluZXMgdGhlCisgKiBoYW5kbGluZyBvZiB0d28gZmllbGRzLCA8Y29kZT5FUkE8L2NvZGU+IGFuZCA8Y29kZT5ZRUFSPC9jb2RlPi4gIFRoZQorICogZm9ybWVyIGlzIGRpc3BsYXllZCBudW1lcmljYWxseSwgaW5zdGVhZCBvZiBzeW1ib2xpY2FsbHksIHNpbmNlIGl0IGlzCisgKiB0aGUgbnVtZXJpYyBjeWNsZSBudW1iZXIgaW4gPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPi4gIFRoZSBsYXR0ZXIgaXMKKyAqIG51bWVyaWMsIGFzIGJlZm9yZSwgYnV0IGhhcyBubyBzcGVjaWFsIDItZGlnaXQgWTJLIGJlaGF2aW9yLgorICoKKyAqIDxwPldpdGggcmVnYXJkIHRvIDxjb2RlPkNoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIPC9jb2RlPiwgdGhpcworICogY2xhc3MgaGFuZGxlcyBwYXJzaW5nIHNwZWNpYWxseS4gIElmIG5vIHN0cmluZyBzeW1ib2wgaXMgZm91bmQgYXQgYWxsLAorICogdGhpcyBpcyB0YWtlbiBhcyBlcXVpdmFsZW50IHRvIGFuIDxjb2RlPklTX0xFQVBfTU9OVEg8L2NvZGU+IHZhbHVlIG9mCisgKiB6ZXJvLiAgVGhpcyBhbGxvd3MgZm9ybWF0cyB0byBkaXNwbGF5IGEgc3BlY2lhbCBzdHJpbmcgKGUuZy4sICIqIikgZm9yCisgKiBsZWFwIG1vbnRocywgYnV0IG5vIHN0cmluZyBmb3Igbm9ybWFsIG1vbnRocy4KKyAqCisgKiA8cD5TdW1tYXJ5IG9mIGZpZWxkIGNoYW5nZXMgdnMuIHtAbGluayBTaW1wbGVEYXRlRm9ybWF0fTo8cHJlPgorICogU3ltYm9sICAgTWVhbmluZyAgICAgICAgICAgICAgICAgUHJlc2VudGF0aW9uICAgICAgICBFeGFtcGxlCisgKiAtLS0tLS0gICAtLS0tLS0tICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0gICAgICAgIC0tLS0tLS0KKyAqIEcgICAgICAgIGN5Y2xlICAgICAgICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgNzgKKyAqIHkgICAgICAgIHllYXIgb2YgY3ljbGUgKDEuLjYwKSAgIChOdW1iZXIpICAgICAgICAgICAgMTcKKyAqIGwgICAgICAgIGlzIGxlYXAgbW9udGggICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgNDYzNworICogPC9wcmU+CisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhcgorICogQHNlZSBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgQ2hpbmVzZURhdGVGb3JtYXQgZXh0ZW5kcyBTaW1wbGVEYXRlRm9ybWF0IHsKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC00NjEwMzAwNzUzMTA0MDk5ODk5TDsKKyAgICAKKyAgICAvLyBUT0RPIEZpbmlzaCB0aGUgY29uc3RydWN0b3JzCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlRGF0ZUZvcm1hdCBmcm9tIGEgZGF0ZSBmb3JtYXQgcGF0dGVybiBhbmQgbG9jYWxlCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgIC8vIFRPRE86IGNvbnZlcnQgdG8gdXNlIFVMb2NhbGUKKyAgICAgICAgc3VwZXIocGF0dGVybiwgbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhsb2NhbGUpLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlRGF0ZUZvcm1hdCBmcm9tIGEgZGF0ZSBmb3JtYXQgcGF0dGVybiBhbmQgbG9jYWxlCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgIC8vIFRPRE86IGNvbnZlcnQgQ0RGUyB0byB1c2UgVUxvY2FsZQorICAgICAgICAvL3N1cGVyKHBhdHRlcm4sIG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMobG9jYWxlLnRvTG9jYWxlKCkpLCB0cnVlKTsKKyAgICAgICBzdXBlcihwYXR0ZXJuLCBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKGxvY2FsZSksIGxvY2FsZSk7CisgICAgfQorCisvLyBOT1RFOiBUaGlzIEFQSSBzdGlsbCBleGlzdHM7IHdlIGp1c3QgaW5oZXJpdCBpdCBmcm9tIFNpbXBsZURhdGVGb3JtYXQKKy8vIGFzIG9mIElDVSAzLjAKKy8vICAvKioKKy8vICAgKiBAc3RhYmxlIElDVSAyLjAKKy8vICAgKi8KKy8vICBwcm90ZWN0ZWQgU3RyaW5nIHN1YkZvcm1hdChjaGFyIGNoLCBpbnQgY291bnQsIGludCBiZWdpbk9mZnNldCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcywgRGF0ZUZvcm1hdFN5bWJvbHMgZm9ybWF0RGF0YSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBjYWwpICB7CisvLyAgICAgIHN3aXRjaCAoY2gpIHsKKy8vICAgICAgY2FzZSAnRyc6IC8vICdHJyAtIEVSQQorLy8gICAgICAgICAgcmV0dXJuIHplcm9QYWRkaW5nTnVtYmVyKGNhbC5nZXQoQ2FsZW5kYXIuRVJBKSwgMSwgOSk7CisvLyAgICAgIGNhc2UgJ2wnOiAvLyAnbCcgLSBJU19MRUFQX01PTlRICisvLyAgICAgICAgICB7CisvLyAgICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPQorLy8gICAgICAgICAgICAgICAgICAoQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKSBmb3JtYXREYXRhOworLy8gICAgICAgICAgICAgIHJldHVybiBzeW1ib2xzLmdldExlYXBNb250aChjYWwuZ2V0KAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKSk7CisvLyAgICAgICAgICB9CisvLyAgICAgIGRlZmF1bHQ6CisvLyAgICAgICAgICByZXR1cm4gc3VwZXIuc3ViRm9ybWF0KGNoLCBjb3VudCwgYmVnaW5PZmZzZXQsIHBvcywgZm9ybWF0RGF0YSwgY2FsKTsKKy8vICAgICAgfQorLy8gIH0gICAgCisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzdWJGb3JtYXQoU3RyaW5nQnVmZmVyIGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjaCwgaW50IGNvdW50LCBpbnQgYmVnaW5PZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICBjYXNlICdHJzogLy8gJ0cnIC0gRVJBCisgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIGNhbC5nZXQoQ2FsZW5kYXIuRVJBKSwgMSwgOSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnbCc6IC8vICdsJyAtIElTX0xFQVBfTU9OVEgKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGdldFN5bWJvbHMoKSkuCisgICAgICAgICAgICAgICAgICAgICAgIGdldExlYXBNb250aChjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5zdWJGb3JtYXQoYnVmLCBjaCwgY291bnQsIGJlZ2luT2Zmc2V0LCBwb3MsIGNhbCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRPRE86IGFkZCBjb2RlIHRvIHNldCBGaWVsZFBvc2l0aW9uIGZvciAnRycgYW5kICdsJyBmaWVsZHMuIFRoaXMKKyAgICAgICAgLy8gaXMgYSBERVNJR04gRkxBVyAtLSBzdWJjbGFzc2VzIHNob3VsZG4ndCBoYXZlIHRvIGR1cGxpY2F0ZSB0aGUKKyAgICAgICAgLy8gY29kZSB0aGF0IGhhbmRsZXMgdGhpcyBhdCB0aGUgZW5kIG9mIFNpbXBsZURhdGVGb3JtYXQuc3ViRm9ybWF0LgorICAgICAgICAvLyBUaGUgbG9naWMgc2hvdWxkIGJlIG1vdmVkIHVwIGludG8gU2ltcGxlRGF0ZUZvcm1hdC5mb3JtYXQuCisgICAgfQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBzdWJQYXJzZShTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBjaGFyIGNoLCBpbnQgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIG9iZXlDb3VudCwgYm9vbGVhbiBhbGxvd05lZ2F0aXZlLCBib29sZWFuW10gYW1iaWd1b3VzWWVhciwgQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIGlmIChjaCAhPSAnRycgJiYgY2ggIT0gJ2wnICYmIGNoICE9ICd5JykgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnN1YlBhcnNlKHRleHQsIHN0YXJ0LCBjaCwgY291bnQsIG9iZXlDb3VudCwgYWxsb3dOZWdhdGl2ZSwgYW1iaWd1b3VzWWVhciwgY2FsKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNraXAgd2hpdGVzcGFjZQorICAgICAgICBzdGFydCA9IFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UodGV4dCwgc3RhcnQpOworCisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oc3RhcnQpOworCisgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgY2FzZSAnRyc6IC8vICdHJyAtIEVSQQorICAgICAgICBjYXNlICd5JzogLy8gJ3knIC0gWUVBUiwgYnV0IHdpdGhvdXQgdGhlIDItZGlnaXQgWTJLIGFkanVzdG1lbnQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbnVtYmVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAob2JleUNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoc3RhcnQrY291bnQpID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dC5zdWJzdHJpbmcoMCwgc3RhcnQrY291bnQpLCBwb3MpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gbnVtYmVyLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChjaCA9PSAnRycgPyBDYWxlbmRhci5FUkEgOiBDYWxlbmRhci5ZRUFSLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlICdsJzogLy8gJ2wnIC0gSVNfTEVBUF9NT05USAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0KKyAgICAgICAgICAgICAgICAgICAgKENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scykgZ2V0U3ltYm9scygpOworICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMuaXNMZWFwTW9udGgsIGNhbCk7CisgICAgICAgICAgICAgICAgLy8gVHJlYXQgdGhlIGFic2VuY2Ugb2YgYW55IG1hdGNoaW5nIHN0cmluZyBhcyBzZXR0aW5nCisgICAgICAgICAgICAgICAgLy8gSVNfTEVBUF9NT05USCB0byBmYWxzZS4KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0PDApIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgMCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHN0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgcmV0dXJuIDA7IC8vIFRoaXMgY2FuIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxNGNjMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpAQCAtMCwwICsxLDk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNhbGVuZGFyRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIHN1YmNsYXNzIG9mIHtAbGluayBEYXRlRm9ybWF0U3ltYm9sc30gZm9yIHtAbGluayBDaGluZXNlRGF0ZUZvcm1hdH0uCisgKiBUaGlzIGNsYXNzIGNvbnRhaW5zIGFkZGl0aW9uYWwgc3ltYm9scyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICogPGNvZGU+Q2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEg8L2NvZGU+IGZpZWxkLgorICoKKyAqIEBzZWUgQ2hpbmVzZURhdGVGb3JtYXQKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGV4dGVuZHMgRGF0ZUZvcm1hdFN5bWJvbHMgeworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNjgyNzgxNjExOTc4Mzk1Mjg5MEw7CisgICAgCisgICAgLyoqCisgICAgICogUGFja2FnZS1wcml2YXRlIGFycmF5IHRoYXQgQ2hpbmVzZURhdGVGb3JtYXQgbmVlZHMgdG8gYmUgYWJsZSB0bworICAgICAqIHJlYWQuCisgICAgICovCisgICAgU3RyaW5nIGlzTGVhcE1vbnRoW107IC8vIERvIE5PVCBhZGQgPW51bGwgaW5pdGlhbGl6ZXIKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHRoaXMoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBmb3IgdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoQ2hpbmVzZUNhbGVuZGFyLmNsYXNzLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKENoaW5lc2VDYWxlbmRhci5jbGFzcywgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgZm9yIHRoZSBwcm92aWRlZCBjYWxlbmRhciBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBjYWwgdGhlIENhbGVuZGFyCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhDYWxlbmRhciBjYWwsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoY2FsPT1udWxsP251bGw6Y2FsLmdldENsYXNzKCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgcHJvdmlkZWQgY2FsZW5kYXIgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gY2FsIHRoZSBDYWxlbmRhcgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhDYWxlbmRhciBjYWwsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGNhbCA9PSBudWxsID8gbnVsbCA6IGNhbC5nZXRDbGFzcygpLCBsb2NhbGUpOworICAgIH0KKworICAgIC8vIE5ldyBBUEkKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExlYXBNb250aChpbnQgaXNMZWFwTW9udGgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaXNMZWFwTW9udGhbaXNMZWFwTW9udGhdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVEYXRhKFVMb2NhbGUgbG9jLCBDYWxlbmRhckRhdGEgY2FsRGF0YSkgeworICAgICAgICBzdXBlci5pbml0aWFsaXplRGF0YShsb2MsIGNhbERhdGEpOworICAgICAgICBpc0xlYXBNb250aCA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoImlzTGVhcE1vbnRoIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMWQ0OWVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyODc0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKioKKyAqIGltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CisgKiBpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworICovCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURlYnVnOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiA8cD48Y29kZT5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3I8L2NvZGU+IGlzIGFuIGl0ZXJhdG9yIGNyZWF0ZWQgYnkKKyAqIGEgUnVsZUJhc2VkQ29sbGF0b3IgdG8gd2FsayB0aHJvdWdoIGEgc3RyaW5nLiBUaGUgcmV0dXJuIHJlc3VsdCBvZgorICogZWFjaCBpdGVyYXRpb24gaXMgYSAzMi1iaXQgY29sbGF0aW9uIGVsZW1lbnQgdGhhdCBkZWZpbmVzIHRoZQorICogb3JkZXJpbmcgcHJpb3JpdHkgb2YgdGhlIG5leHQgY2hhcmFjdGVyIG9yIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMKKyAqIGluIHRoZSBzb3VyY2Ugc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgaWxsdXN0cmF0aW9uLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIGluIFNwYW5pc2g6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAiY2EiIC0+IHRoZSBmaXJzdCBjb2xsYXRpb24gZWxlbWVudCBpcyBjb2xsYXRpb25fZWxlbWVudCgnYycpIGFuZCBzZWNvbmQKKyAqICAgICAgICAgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2EnKS4KKyAqCisgKiBTaW5jZSAiY2giIGluIFNwYW5pc2ggc29ydHMgYXMgb25lIGVudGl0eSwgdGhlIGJlbG93IGV4YW1wbGUgcmV0dXJucyBvbmUKKyAqIGNvbGxhdGlvbiBlbGVtZW50IGZvciB0aGUgdHdvIGNoYXJhY3RlcnMgJ2MnIGFuZCAnaCcKKyAqCisgKiAiY2hhIiAtPiB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2NoJykgYW5kIHNlY29uZAorICogICAgICAgICAgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2EnKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogQW5kIGluIEdlcm1hbiwKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFNpbmNlIHRoZSBjaGFyYWN0ZXIgJyYjMjMwOycgaXMgYSBjb21wb3NlZCBjaGFyYWN0ZXIgb2YgJ2EnIGFuZCAnZScsIHRoZQorICogaXRlcmF0b3IgcmV0dXJucyB0d28gY29sbGF0aW9uIGVsZW1lbnRzIGZvciB0aGUgc2luZ2xlIGNoYXJhY3RlciAnJiMyMzA7JworICoKKyAqICImIzIzMDtiIiAtPiB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2EnKSwgdGhlCisgKiAgICAgICAgICAgICAgc2Vjb25kIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdlJyksIGFuZCB0aGUKKyAqICAgICAgICAgICAgICB0aGlyZCBjb2xsYXRpb24gZWxlbWVudCBpcyBjb2xsYXRpb25fZWxlbWVudCgnYicpLgorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKgorICogPHA+Rm9yIGNvbGxhdGlvbiBvcmRlcmluZyBjb21wYXJpc29uLCB0aGUgY29sbGF0aW9uIGVsZW1lbnQgcmVzdWx0cworICogY2FuIG5vdCBiZSBjb21wYXJlZCBzaW1wbHkgYnkgdXNpbmcgYmFzaWMgYXJpdGhtZXRyaWMgb3BlcmF0b3JzLAorICogZS5nLiAmbHQ7LCA9PSBvciAmZ3Q7LCBmdXJ0aGVyIHByb2Nlc3NpbmcgaGFzIHRvIGJlIGRvbmUuIERldGFpbHMKKyAqIGNhbiBiZSBmb3VuZCBpbiB0aGUgSUNVCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9TZXJ2aWNlQXJjaGl0ZWN0dXJlLmh0bWwiPgorICogdXNlciBndWlkZTwvYT4uIEFuIGV4YW1wbGUgb2YgdXNpbmcgdGhlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgorICogZm9yIGNvbGxhdGlvbiBvcmRlcmluZyBjb21wYXJpc29uIGlzIHRoZSBjbGFzcworICogPGEgaHJlZj1TdHJpbmdTZWFyY2guaHRtbD4gY29tLmlibS5pY3UudGV4dC5TdHJpbmdTZWFyY2g8L2E+LjwvcD4KKyAqCisgKiA8cD5UbyBjb25zdHJ1Y3QgYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igb2JqZWN0LCB1c2VycworICogY2FsbCB0aGUgbWV0aG9kIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigpIG9uIGEKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIHRoYXQgZGVmaW5lcyB0aGUgZGVzaXJlZCBzb3J0aW5nIG9yZGVyLjwvcD4KKyAqCisgKiA8cD4gRXhhbXBsZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqICBTdHJpbmcgdGVzdFN0cmluZyA9ICJUaGlzIGlzIGEgdGVzdCI7CisgKiAgUnVsZUJhc2VkQ29sbGF0b3IgcmJjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYW1wO2EmbHQ7YiIpOworICogIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyYXRvciA9IHJiYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdFN0cmluZyk7CisgKiAgaW50IHByaW1hcnlPcmRlciA9IGl0ZXJhdG9yLklHTk9SQUJMRTsKKyAqICB3aGlsZSAocHJpbWFyeU9yZGVyICE9IGl0ZXJhdG9yLk5VTExPUkRFUikgeworICogICAgICBpbnQgb3JkZXIgPSBpdGVyYXRvci5uZXh0KCk7CisgKiAgICAgIGlmIChvcmRlciAhPSBpdGVyYXRvci5JR05PUkFCTEUgJiYKKyAqICAgICAgICAgIG9yZGVyICE9IGl0ZXJhdG9yLk5VTExPUkRFUikgeworICogICAgICAgICAgLy8gb3JkZXIgaXMgdmFsaWQsIG5vdCBpZ25vcmFibGUgYW5kIHdlIGhhdmUgbm90IHBhc3NlZCB0aGUgZW5kCisgKiAgICAgICAgICAvLyBvZiB0aGUgaXRlcmF0aW9uLCB3ZSBkbyBzb21ldGhpbmcKKyAqICAgICAgICAgIHByaW1hcnlPcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIpOworICogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOZXh0IHByaW1hcnkgb3JkZXIgMHgiICsKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByaW1hcnlPcmRlcikpOworICogICAgICB9CisgKiAgfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQHNlZSBDb2xsYXRvcgorICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICogQHNlZSBTdHJpbmdTZWFyY2gKKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgoreworICAKKyAgICAKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5UaGlzIGNvbnN0YW50IGlzIHJldHVybmVkIGJ5IHRoZSBpdGVyYXRvciBpbiB0aGUgbWV0aG9kcworICAgICAqIG5leHQoKSBhbmQgcHJldmlvdXMoKSB3aGVuIHRoZSBlbmQgb3IgdGhlIGJlZ2lubmluZyBvZiB0aGUKKyAgICAgKiBzb3VyY2Ugc3RyaW5nIGhhcyBiZWVuIHJlYWNoZWQsIGFuZCB0aGVyZSBhcmUgbm8gbW9yZSB2YWxpZAorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50cyB0byByZXR1cm4uPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLjwvcD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBOVUxMT1JERVIgPSAweGZmZmZmZmZmOworCisgICAgLyoqCisgICAgICogPHA+VGhpcyBjb25zdGFudCBpcyByZXR1cm5lZCBieSB0aGUgaXRlcmF0b3IgaW4gdGhlIG1ldGhvZHMKKyAgICAgKiBuZXh0KCkgYW5kIHByZXZpb3VzKCkgd2hlbiBhIGNvbGxhdGlvbiBlbGVtZW50IHJlc3VsdCBpcyB0byBiZQorICAgICAqIGlnbm9yZWQuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLjwvcD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJR05PUkFCTEUgPSAwOworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHA+UmV0dXJucyB0aGUgY2hhcmFjdGVyIG9mZnNldCBpbiB0aGUgc291cmNlIHN0cmluZworICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQuIEkuZS4sIGdldE9mZnNldCgpCisgICAgICogcmV0dXJucyB0aGUgcG9zaXRpb24gaW4gdGhlIHNvdXJjZSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhlIG5leHQgY2FsbCB0bworICAgICAqIG5leHQoKS4gVGhpcyB2YWx1ZSBjb3VsZCBiZSBhbnkgb2Y6CisgICAgICogPHVsPgorICAgICAqIDxsaT4gVGhlIGluZGV4IG9mIHRoZSA8Yj5maXJzdDwvYj4gY2hhcmFjdGVyIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiB0aGUgbmV4dCBjb2xsYXRpb24gZWxlbWVudC4gKFRoaXMgbWVhbnMgdGhhdCBpZgorICAgICAqIDxjb2RlPnNldE9mZnNldChvZmZzZXQpPC9jb2RlPiBzZXRzIHRoZSBpbmRleCBpbiB0aGUgbWlkZGxlIG9mCisgICAgICogYSBjb250cmFjdGlvbiwgPGNvZGU+Z2V0T2Zmc2V0KCk8L2NvZGU+IHJldHVybnMgdGhlIGluZGV4IG9mCisgICAgICogdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgY29udHJhY3Rpb24sIHdoaWNoIG1heSBub3QgYmUgZXF1YWwKKyAgICAgKiB0byB0aGUgb3JpZ2luYWwgb2Zmc2V0IHRoYXQgd2FzIHNldC4gSGVuY2UgY2FsbGluZyBnZXRPZmZzZXQoKQorICAgICAqIGltbWVkaWF0ZWx5IGFmdGVyIHNldE9mZnNldChvZmZzZXQpIGRvZXMgbm90IGd1YXJhbnRlZSB0aGF0IHRoZQorICAgICAqIG9yaWdpbmFsIG9mZnNldCBzZXQgd2lsbCBiZSByZXR1cm5lZC4pCisgICAgICogPGxpPiBJZiBub3JtYWxpemF0aW9uIGlzIG9uLCB0aGUgaW5kZXggb2YgdGhlIDxiPmltbWVkaWF0ZTwvYj4KKyAgICAgKiBzdWJzZXF1ZW50IGNoYXJhY3Rlciwgb3IgY29tcG9zaXRlIGNoYXJhY3RlciB3aXRoIHRoZSBmaXJzdAorICAgICAqIGNoYXJhY3RlciwgaGF2aW5nIGEgY29tYmluaW5nIGNsYXNzIG9mIDAuCisgICAgICogPGxpPiBUaGUgbGVuZ3RoIG9mIHRoZSBzb3VyY2Ugc3RyaW5nLCBpZiBpdGVyYXRpb24gaGFzIHJlYWNoZWQKKyAgICAgKiB0aGUgZW5kLgorICAgICAqPC91bD4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBpbiB0aGUgc291cmNlIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICAgICAqICAgICAgICAgY29sbGF0aW9uIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBuZXh0IGNhbGwgdG8KKyAgICAgKiAgICAgICAgIG5leHQoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE9mZnNldCgpCisgICAgeworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfICE9IC0xKSB7CisgICAgICAgICAgICBpZiAobV9pc0ZvcndhcmRzXykgeworICAgICAgICAgICAgICAgIHJldHVybiBtX0ZDRExpbWl0XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiA8cD4gUmV0dXJucyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW55IGV4cGFuc2lvbiBzZXF1ZW5jZSB0aGF0IGVuZHMgd2l0aAorICAgICAqIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQuIElmIHRoZXJlIGlzIG5vIGV4cGFuc2lvbiB3aXRoIHRoaXMKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBhcyB0aGUgbGFzdCBlbGVtZW50LCByZXR1cm5zIDEuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjZSBhIGNvbGxhdGlvbiBlbGVtZW50IHJldHVybmVkIGJ5IHByZXZpb3VzKCkgb3IgbmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBleHBhbnNpb24gc2VxdWVuY2UgZW5kaW5nCisgICAgICogICAgICAgICB3aXRoIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhFeHBhbnNpb24oaW50IGNlKQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgaW50IGxpbWl0ID0gbV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoOworICAgICAgICBsb25nIHVuc2lnbmVkY2UgPSBjZSAmIDB4RkZGRkZGRkZsOworICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCAtIDEpIHsKKyAgICAgICAgICAgIGludCBtaWQgPSBzdGFydCArICgobGltaXQgLSBzdGFydCkgPj4gMSk7CisgICAgICAgICAgICBsb25nIG1pZGNlID0gbV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRV9bbWlkXSAmIDB4RkZGRkZGRkZsOworICAgICAgICAgICAgaWYgKHVuc2lnbmVkY2UgPD0gbWlkY2UpIHsKKyAgICAgICAgICAgICAgICBsaW1pdCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSAxOworICAgICAgICBpZiAobV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRV9bc3RhcnRdID09IGNlKSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9bc3RhcnRdOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGxpbWl0IDwgbV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoICYmCisgICAgICAgICAgICAgICAgIG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfW2xpbWl0XSA9PSBjZSkgeworICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRU1heFNpemVfW2xpbWl0XTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICgoY2UgJiAweEZGRkYpID09IDB4MDBDMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPiBSZXNldHMgdGhlIGN1cnNvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcuIFRoZSBuZXh0CisgICAgICogY2FsbCB0byBuZXh0KCkgb3IgcHJldmlvdXMoKSB3aWxsIHJldHVybiB0aGUgZmlyc3QgYW5kIGxhc3QKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBpbiB0aGUgc3RyaW5nLCByZXNwZWN0aXZlbHkuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHVzZWQgYnkgdGhpcyBpdGVyYXRvciBoYXMgaGFkIGl0cworICAgICAqIGF0dHJpYnV0ZXMgY2hhbmdlZCwgY2FsbGluZyByZXNldCgpIHdpbGwgcmVpbml0aWFsaXplIHRoZQorICAgICAqIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbmV3IGF0dHJpYnV0ZXMuPC9wPgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2VfLnNldFRvU3RhcnQoKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgbmV4dCBjb2xsYXRpb24gZWxlbWVudCBpbiB0aGUgc291cmNlIHN0cmluZy48L3A+CisgICAgICoKKyAgICAgKiA8cD5UaGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSBzZXF1ZW5jZSBvZiBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiB0aGF0IHdlcmUgYnVpbHQgZnJvbSB0aGUgc3RyaW5nLiBCZWNhdXNlIHRoZXJlIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lIG1hcHBpbmcgZnJvbSBjaGFyYWN0ZXJzIHRvIGNvbGxhdGlvbgorICAgICAqIGVsZW1lbnRzLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgc2FtZSB0aGluZyBhcyAicmV0dXJuIHRoZQorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50IFtvciBvcmRlcmluZyBwcmlvcml0eV0gb2YgdGhlIG5leHQgY2hhcmFjdGVyCisgICAgICogaW4gdGhlIHN0cmluZyIuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0aGF0IHRoZQorICAgICAqIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSBwb2ludGluZyB0bywgYW5kIHRoZW4gdXBkYXRlcyB0aGUKKyAgICAgKiBpbnRlcm5hbCBwb2ludGVyIHRvIHBvaW50IHRvIHRoZSBuZXh0IGVsZW1lbnQuICBQcmV2aW91cygpCisgICAgICogdXBkYXRlcyB0aGUgcG9pbnRlciBmaXJzdCwgYW5kIHRoZW4gcmV0dXJucyB0aGUgZWxlbWVudC4gVGhpcworICAgICAqIG1lYW5zIHRoYXQgd2hlbiB5b3UgY2hhbmdlIGRpcmVjdGlvbiB3aGlsZSBpdGVyYXRpbmcgKGkuZS4sCisgICAgICogY2FsbCBuZXh0KCkgYW5kIHRoZW4gY2FsbCBwcmV2aW91cygpLCBvciBjYWxsIHByZXZpb3VzKCkgYW5kCisgICAgICogdGhlbiBjYWxsIG5leHQoKSksIHlvdSdsbCBnZXQgYmFjayB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQgb3IgTlVMTE9SREVSIGlmIHRoZSBlbmQgb2YgdGhlCisgICAgICogICAgICAgICBpdGVyYXRpb24gaGFzIGJlZW4gcmVhY2hlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHQoKQorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRzXyA9IHRydWU7CisgICAgICAgIGlmIChtX0NFQnVmZmVyU2l6ZV8gPiAwKSB7CisgICAgICAgICAgICBpZiAobV9DRUJ1ZmZlck9mZnNldF8gPCBtX0NFQnVmZmVyU2l6ZV8pIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgZXhwYW5zaW9ucyBsZWZ0IGluIHRoZSBidWZmZXIsIHdlIHJldHVybiBpdAorICAgICAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyT2Zmc2V0XyArK107CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAwOworICAgICAgICB9CisgCisgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICAKKyAgICAgICAgaWYgKGNoX2ludCA9PSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgcmV0dXJuIE5VTExPUkRFUjsKKyAgICAgICAgfQorICAgICAgICBjaGFyIGNoID0gKGNoYXIpY2hfaW50OworICAgICAgICBpZiAobV9jb2xsYXRvcl8ubV9pc0hpcmFnYW5hNF8pIHsKKyAgICAgICAgICAgIG1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gPSAoY2ggPj0gMHgzMDQwICYmIGNoIDw9IDB4MzA5ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhKGNoID4gMHgzMDk0ICYmIGNoIDwgMHgzMDlkKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgPSBOVUxMT1JERVI7CisgICAgICAgIGlmIChjaCA8PSAweEZGKSB7CisgICAgICAgICAgICAvLyBGb3IgbGF0aW4tMSBjaGFyYWN0ZXJzIHdlIG5ldmVyIG5lZWQgdG8gZmFsbCBiYWNrIHRvIHRoZSBVQ0EKKyAgICAgICAgICAgIC8vIHRhYmxlIGJlY2F1c2UgYWxsIG9mIHRoZSBVQ0EgZGF0YSBpcyByZXBsaWNhdGVkIGluIHRoZQorICAgICAgICAgICAgLy8gbGF0aW5PbmVNYXBwaW5nIGFycmF5CisgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExhdGluMUxpbmVhclZhbHVlKGNoKTsKKyAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc1NwZWNpYWwocmVzdWx0KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHRTcGVjaWFsKG1fY29sbGF0b3JfLCByZXN1bHQsIGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fY29sbGF0b3JfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0KSk7CisgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAvLyBzdXJyb2dhdGUgbGVhZHMgYXJlIGhhbmRsZWQgYXMgc3BlY2lhbCBjZXMKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0U3BlY2lhbChtX2NvbGxhdG9yXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IENFX05PVF9GT1VORF8gJiYgUnVsZUJhc2VkQ29sbGF0b3IuVUNBXyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gY291bGRuJ3QgZmluZCBhIGdvb2QgQ0UgaW4gdGhlIHRhaWxvcmluZworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGdvdCBoZXJlLCB0aGUgY29kZXBvaW50IE1VU1QgYmUgb3ZlciAweEZGIC0gc28gd2UgbG9vaworICAgICAgICAgICAgICAgIC8vIGRpcmVjdGx5IGluIHRoZSBVQ0EKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVUNBIGFsc28gZ2l2ZXMgdXMgYSBzcGVjaWFsIENFCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHRTcGVjaWFsKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihyZXN1bHQgPT0gQ0VfTk9UX0ZPVU5EXykgeyAKKyAgICAgICAgICAgIC8vIG1heWJlIHRoZXJlIGlzIG5vIFVDQSwgdW5saWtlbHkgaW4gSmF2YSwgYnV0IHBvcnRlZCBmb3IgY29uc2lzdGVuY3kKKyAgICAgICAgICAgIHJlc3VsdCA9IG5leHRJbXBsaWNpdChjaCk7IAorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+R2V0IHRoZSBwcmV2aW91cyBjb2xsYXRpb24gZWxlbWVudCBpbiB0aGUgc291cmNlIHN0cmluZy48L3A+CisgICAgICoKKyAgICAgKiA8cD5UaGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSBzZXF1ZW5jZSBvZiBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiB0aGF0IHdlcmUgYnVpbHQgZnJvbSB0aGUgc3RyaW5nLiBCZWNhdXNlIHRoZXJlIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lIG1hcHBpbmcgZnJvbSBjaGFyYWN0ZXJzIHRvIGNvbGxhdGlvbgorICAgICAqIGVsZW1lbnRzLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgc2FtZSB0aGluZyBhcyAicmV0dXJuIHRoZQorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50IFtvciBvcmRlcmluZyBwcmlvcml0eV0gb2YgdGhlIHByZXZpb3VzCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzdHJpbmciLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgaXRlcmF0b3IncyBpbnRlcm5hbCBwb2ludGVyIHRvCisgICAgICogcG9pbnQgdG8gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHByZWNlZGluZyB0aGUgb25lIGl0J3MgY3VycmVudGx5CisgICAgICogcG9pbnRpbmcgdG8gYW5kIHRoZW4gcmV0dXJucyB0aGF0IGVsZW1lbnQsIHdoaWxlIG5leHQoKSByZXR1cm5zCisgICAgICogdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBwb2ludGVyLiBUaGlzIG1lYW5zCisgICAgICogdGhhdCB3aGVuIHlvdSBjaGFuZ2UgZGlyZWN0aW9uIHdoaWxlIGl0ZXJhdGluZyAoaS5lLiwgY2FsbAorICAgICAqIG5leHQoKSBhbmQgdGhlbiBjYWxsIHByZXZpb3VzKCksIG9yIGNhbGwgcHJldmlvdXMoKSBhbmQgdGhlbgorICAgICAqIGNhbGwgbmV4dCgpKSwgeW91J2xsIGdldCBiYWNrIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29sbGF0aW9uIGVsZW1lbnQsIG9yIE5VTExPUkRFUiB3aGVuIHRoZSBzdGFydCBvZgorICAgICAqICAgICAgICAgICAgIHRoZSBpdGVyYXRpb24gaGFzIGJlZW4gcmVhY2hlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZV8uZ2V0SW5kZXgoKSA8PSAwICYmIG1faXNGb3J3YXJkc18pIHsKKyAgICAgICAgICAgIC8vIGlmIGl0ZXJhdG9yIGlzIG5ldyBvciByZXNldCwgd2UgY2FuIGltbWVkaWF0ZSBwZXJmb3JtICBiYWNrd2FyZHMKKyAgICAgICAgICAgIC8vIGl0ZXJhdGlvbiBldmVuIHdoZW4gdGhlIG9mZnNldCBpcyBub3QgcmlnaHQuCisgICAgICAgICAgICBtX3NvdXJjZV8uc2V0VG9MaW1pdCgpOworICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgICAgICB9CisgICAgICAgIG1faXNGb3J3YXJkc18gPSBmYWxzZTsKKyAgICAgICAgaW50IHJlc3VsdCA9IE5VTExPUkRFUjsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyA+IDApIHsKKyAgICAgICAgICAgIGlmIChtX0NFQnVmZmVyT2Zmc2V0XyA+IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bLS0gbV9DRUJ1ZmZlck9mZnNldF9dOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMDsKKyAgICAgICAgfQorICAgICAgICBpbnQgY2hfaW50ID0gcHJldmlvdXNDaGFyKCk7CisgICAgICAgIGlmIChjaF9pbnQgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMT1JERVI7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1faXNIaXJhZ2FuYTRfKSB7CisgICAgICAgICAgICBtX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gKGNoID49IDB4MzA0MCAmJiBjaCA8PSAweDMwOWYpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc0NvbnRyYWN0aW9uRW5kKGNoKSAmJiAhaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91c1NwZWNpYWwobV9jb2xsYXRvcl8sIENFX0NPTlRSQUNUSU9OXywgY2gpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGNoIDw9IDB4RkYpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExhdGluMUxpbmVhclZhbHVlKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fY29sbGF0b3JfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc1NwZWNpYWwocmVzdWx0KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzU3BlY2lhbChtX2NvbGxhdG9yXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQmFja3dhcmRzU3RhcnQoKQorICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbGxhdG9yXy5pc0NvbnRyYWN0aW9uRW5kKGNoKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBDRV9DT05UUkFDVElPTl87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZihSdWxlQmFzZWRDb2xsYXRvci5VQ0FfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV90cmllXy5nZXRMZWFkVmFsdWUoY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8gIT0gbnVsbCkgeyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91c1NwZWNpYWwoUnVsZUJhc2VkQ29sbGF0b3IuVUNBXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYocmVzdWx0ID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzSW1wbGljaXQoY2gpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwcmltYXJ5IG9yZGVyIG9mIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQsCisgICAgICogaS5lLiB0aGUgZmlyc3QgMTYgYml0cy4gIFRoaXMgdmFsdWUgaXMgdW5zaWduZWQuCisgICAgICogQHBhcmFtIGNlIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdGhlIGVsZW1lbnQncyAxNiBiaXRzIHByaW1hcnkgb3JkZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgcHJpbWFyeU9yZGVyKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgPj4+IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfU0hJRlRfOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNlY29uZGFyeSBvcmRlciBvZiB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LAorICAgICAqIGkuZS4gdGhlIDE2dGggdG8gMjN0aCBiaXRzLCBpbmNsdXNpdmUuICBUaGlzIHZhbHVlIGlzIHVuc2lnbmVkLgorICAgICAqIEBwYXJhbSBjZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBlbGVtZW50J3MgOCBiaXRzIHNlY29uZGFyeSBvcmRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IHNlY29uZGFyeU9yZGVyKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfTUFTS18pCisgICAgICAgICAgICA+PiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfU0hJRlRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGVydGlhcnkgb3JkZXIgb2YgdGhlIHNwZWNpZmllZCBjb2xsYXRpb24gZWxlbWVudCwgaS5lLiB0aGUgbGFzdAorICAgICAqIDggYml0cy4gIFRoaXMgdmFsdWUgaXMgdW5zaWduZWQuCisgICAgICogQHBhcmFtIGNlIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdGhlIGVsZW1lbnQncyA4IGJpdHMgdGVydGlhcnkgb3JkZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCB0ZXJ0aWFyeU9yZGVyKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RFUlRJQVJZX01BU0tfOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPiBTZXRzIHRoZSBpdGVyYXRvciB0byBwb2ludCB0byB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBvZmZzZXQuIFRoZQorICAgICAqIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBuZXh0IGNhbGwgdG8gbmV4dCgpIHdpbGwgYmUgdGhlIGNvbGxhdGlvbgorICAgICAqIGVsZW1lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgY2hhcmFjdGVycyBhdCBvZmZzZXQuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgb2Zmc2V0IGlzIGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGluZyBjaGFyYWN0ZXIKKyAgICAgKiBzZXF1ZW5jZSwgdGhlIGl0ZXJhdG9yIGlzIGFkanVzdGVkIHRvIHRoZSBzdGFydCBvZiB0aGUKKyAgICAgKiBjb250cmFjdGluZyBzZXF1ZW5jZS4gVGhpcyBtZWFucyB0aGF0IGdldE9mZnNldCgpIGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gcmV0dXJuIHRoZSBzYW1lIHZhbHVlIHNldCBieSB0aGlzIG1ldGhvZC48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiB0aGUgZGVjb21wb3NpdGlvbiBtb2RlIGlzIG9uLCBhbmQgb2Zmc2V0IGlzIGluIHRoZSBtaWRkbGUKKyAgICAgKiBvZiBhIGRlY29tcG9zaWJsZSByYW5nZSBvZiBzb3VyY2UgdGV4dCwgdGhlIGl0ZXJhdG9yIG1heSBub3QKKyAgICAgKiByZXR1cm4gYSBjb3JyZWN0IHJlc3VsdCBmb3IgdGhlIG5leHQgZm9yd2FyZHMgb3IgYmFja3dhcmRzCisgICAgICogaXRlcmF0aW9uLiAgVGhlIHVzZXIgbXVzdCBlbnN1cmUgdGhhdCB0aGUgb2Zmc2V0IGlzIG5vdCBpbiB0aGUKKyAgICAgKiBtaWRkbGUgb2YgYSBkZWNvbXBvc2libGUgcmFuZ2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgY2hhcmFjdGVyIG9mZnNldCBpbnRvIHRoZSBvcmlnaW5hbCBzb3VyY2Ugc3RyaW5nIHRvCisgICAgICogICAgICAgIHNldC4gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGFuIG9mZnNldCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogICAgICAgIHNlcXVlbmNlIG9mIGNvbGxhdGlvbiBlbGVtZW50cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPZmZzZXQoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBpbnQgY2hfaW50ID0gbV9zb3VyY2VfLmN1cnJlbnQoKTsKKyAgICAgICAgY2hhciBjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgaWYgKGNoX2ludCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiBtX2NvbGxhdG9yXy5pc1Vuc2FmZShjaCkpIHsKKyAgICAgICAgICAgIC8vIGlmIGl0IGlzIHVuc2FmZSB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHBhcnQgb2YgYSBjb250cmFjdGlvbgorICAgICAgICAgICAgLy8gb3IgYSBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBpcyBhIHN1cnJvZ2F0ZSBwYWlyIHdlIG1vdmUgdXAgb25lIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGNoYXIgcHJldmNoID0gKGNoYXIpbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKCFVVEYxNi5pc0xlYWRTdXJyb2dhdGUocHJldmNoKSkgeworICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsgLy8gZ28gYmFjayB0byB0aGUgc2FtZSBpbmRleAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGNvdWxkIGJlIHBhcnQgb2YgYSBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgIC8vIGJhY2t1cCB0byBhIHNhZmUgcG9pbnQgYW5kIGl0ZXJhdGUgdGlsbCB3ZSBwYXNzIG9mZnNldAorICAgICAgICAgICAgICAgIHdoaWxlIChtX3NvdXJjZV8uZ2V0SW5kZXgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFtX2NvbGxhdG9yXy5pc1Vuc2FmZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoYXIpbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICAgICAgICAgICAgICBpbnQgcHJldm9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fc291cmNlXy5nZXRJbmRleCgpIDw9IG9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICBwcmV2b2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KHByZXZvZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICAgICAgLy8gZGlyZWN0aW9uIGNvZGUgdG8gcHJldmVudCBuZXh0IGFuZCBwcmV2aW91cyBmcm9tIHJldHVybmluZyBhIAorICAgICAgICAvLyBjaGFyYWN0ZXIgaWYgd2UgYXJlIGFscmVhZHkgYXQgdGhlIGVuZHMKKyAgICAgICAgb2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIGlmIChvZmZzZXQgPT0gMC8qIG1fc291cmNlXy5nZXRCZWdpbkluZGV4KCkgKi8pIHsKKyAgICAgICAgICAgIC8vIHByZXZlbnRpbmcgcHJldmlvdXMoKSBmcm9tIHJldHVybmluZyBjaGFyYWN0ZXJzIGZyb20gdGhlIGVuZCBvZiAKKyAgICAgICAgICAgIC8vIHRoZSBzdHJpbmcgYWdhaW4gaWYgd2UgYXJlIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgICAgICAgIG1faXNGb3J3YXJkc18gPSBmYWxzZTsgCisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAob2Zmc2V0ID09IG1fc291cmNlXy5nZXRMZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gcHJldmVudGluZyBuZXh0KCkgZnJvbSByZXR1cm5pbmcgY2hhcmFjdGVycyBmcm9tIHRoZSBzdGFydCBvZiAKKyAgICAgICAgICAgIC8vIHRoZSBzdHJpbmcgYWdhaW4gaWYgd2UgYXJlIGF0IHRoZSBlbmQKKyAgICAgICAgICAgIG1faXNGb3J3YXJkc18gPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IGEgbmV3IHNvdXJjZSBzdHJpbmcgZm9yIGl0ZXJhdGlvbiwgYW5kIHJlc2V0IHRoZSBvZmZzZXQKKyAgICAgKiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIG5ldyBzb3VyY2Ugc3RyaW5nIGZvciBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8uc2V0VGV4dChzb3VyY2UpOworICAgICAgICBtX3NvdXJjZV8gPSBtX3NyY1V0aWxJdGVyXzsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5TZXQgYSBuZXcgc291cmNlIHN0cmluZyBpdGVyYXRvciBmb3IgaXRlcmF0aW9uLCBhbmQgcmVzZXQgdGhlCisgICAgICogb2Zmc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogPC9wPgorICAgICAqIDxwPlRoZSBzb3VyY2UgaXRlcmF0b3IncyBpbnRlZ3JpdHkgd2lsbCBiZSBwcmVzZXJ2ZWQgc2luY2UgYSBuZXcgY29weQorICAgICAqIHdpbGwgYmUgY3JlYXRlZCBmb3IgdXNlLjwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBuZXcgc291cmNlIHN0cmluZyBpdGVyYXRvciBmb3IgaXRlcmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSkKKyAgICB7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlLmdldFRleHQoKSk7CisgICAgICAgIG1fc291cmNlXyA9IG1fc3JjVXRpbEl0ZXJfOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7IAorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCBhIG5ldyBzb3VyY2Ugc3RyaW5nIGl0ZXJhdG9yIGZvciBpdGVyYXRpb24sIGFuZCByZXNldCB0aGUKKyAgICAgKiBvZmZzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSkKKyAgICB7CisgICAgICAgIG1fc291cmNlXyA9IG5ldyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoc291cmNlKTsKKyAgICAgICAgbV9zb3VyY2VfLnNldFRvU3RhcnQoKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBtaXNjZWxsYW5lb3VzIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRlc3RzIHRoYXQgYXJndW1lbnQgb2JqZWN0IGlzIGVxdWFscyB0byB0aGlzIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci4KKyAgICAgKiBJdGVyYXRvcnMgYXJlIGVxdWFsIGlmIHRoZSBvYmplY3RzIHVzZXMgdGhlIHNhbWUgUnVsZUJhc2VkQ29sbGF0b3IsCisgICAgICogdGhlIHNhbWUgc291cmNlIHRleHQgYW5kIGhhdmUgdGhlIHNhbWUgY3VycmVudCBwb3NpdGlvbiBpbiBpdGVyYXRpb24uCisgICAgICogQHBhcmFtIHRoYXQgb2JqZWN0IHRvIHRlc3QgaWYgaXQgaXMgZXF1YWxzIHRvIHRoaXMKKyAgICAgKiAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpCisgICAgeworICAgICAgICBpZiAodGhhdCA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhhdCBpbnN0YW5jZW9mIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcikgeworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHRoYXRjZWl0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IpdGhhdDsKKyAgICAgICAgICAgIGlmICghbV9jb2xsYXRvcl8uZXF1YWxzKHRoYXRjZWl0ZXIubV9jb2xsYXRvcl8pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY2hlY2tzIHRoZSB0ZXh0IAorICAgICAgICAgICAgcmV0dXJuIG1fc291cmNlXy5nZXRJbmRleCgpID09IHRoYXRjZWl0ZXIubV9zb3VyY2VfLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAmJiBtX3NvdXJjZV8uZ2V0VGV4dCgpLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdGNlaXRlci5tX3NvdXJjZV8uZ2V0VGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb25zdHJ1Y3Rvci4gVGhpcyB0YWtlcyBhIHNvdXJjZQorICAgICAqIHN0cmluZyBhbmQgYSBSdWxlQmFzZWRDb2xsYXRvci4gVGhlIGl0ZXJhdG9yIHdpbGwgd2FsayB0aHJvdWdoCisgICAgICogdGhlIHNvdXJjZSBzdHJpbmcgYmFzZWQgb24gdGhlIHJ1bGVzIGRlZmluZWQgYnkgdGhlCisgICAgICogY29sbGF0b3IuIElmIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGVtcHR5LCBOVUxMT1JERVIgd2lsbCBiZQorICAgICAqIHJldHVybmVkIG9uIHRoZSBmaXJzdCBjYWxsIHRvIG5leHQoKS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0aGUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nIHNvdXJjZSwgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpCisgICAgeworICAgICAgICBtX3NyY1V0aWxJdGVyXyA9IG5ldyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbV9zcmNVdGlsSXRlcl87CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fQ0VCdWZmZXJfID0gbmV3IGludFtDRV9CVUZGRVJfSU5JVF9TSVpFX107CisgICAgICAgIG1fYnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8gPSBuZXcgQmFja3VwKCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29uc3RydWN0b3IuIFRoaXMgdGFrZXMgYSBzb3VyY2UKKyAgICAgKiBjaGFyYWN0ZXIgaXRlcmF0b3IgYW5kIGEgUnVsZUJhc2VkQ29sbGF0b3IuIFRoZSBpdGVyYXRvciB3aWxsCisgICAgICogd2FsayB0aHJvdWdoIHRoZSBzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSBydWxlcyBkZWZpbmVkIGJ5CisgICAgICogdGhlIGNvbGxhdG9yLiBJZiB0aGUgc291cmNlIHN0cmluZyBpcyBlbXB0eSwgTlVMTE9SREVSIHdpbGwgYmUKKyAgICAgKiByZXR1cm5lZCBvbiB0aGUgZmlyc3QgY2FsbCB0byBuZXh0KCkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZyBpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpCisgICAgeworICAgICAgICBtX3NyY1V0aWxJdGVyXyA9IG5ldyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbmV3IENoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcihzb3VyY2UpOworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICBtX0NFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX0lOSVRfU0laRV9dOworICAgICAgICBtX2J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fdXRpbFNwZWNpYWxCYWNrVXBfID0gbmV3IEJhY2t1cCgpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb25zdHJ1Y3Rvci4gVGhpcyB0YWtlcyBhIHNvdXJjZQorICAgICAqIGNoYXJhY3RlciBpdGVyYXRvciBhbmQgYSBSdWxlQmFzZWRDb2xsYXRvci4gVGhlIGl0ZXJhdG9yIHdpbGwKKyAgICAgKiB3YWxrIHRocm91Z2ggdGhlIHNvdXJjZSBzdHJpbmcgYmFzZWQgb24gdGhlIHJ1bGVzIGRlZmluZWQgYnkKKyAgICAgKiB0aGUgY29sbGF0b3IuIElmIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGVtcHR5LCBOVUxMT1JERVIgd2lsbCBiZQorICAgICAqIHJldHVybmVkIG9uIHRoZSBmaXJzdCBjYWxsIHRvIG5leHQoKS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2Ugc3RyaW5nIGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0aGUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoVUNoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpCisgICAgeworICAgICAgICBtX3NyY1V0aWxJdGVyXyA9IG5ldyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8uc2V0VGV4dChzb3VyY2UuZ2V0VGV4dCgpKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbV9zcmNVdGlsSXRlcl87CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fQ0VCdWZmZXJfID0gbmV3IGludFtDRV9CVUZGRVJfSU5JVF9TSVpFX107CisgICAgICAgIG1fYnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8gPSBuZXcgQmFja3VwKCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiB0cnVlIGlmIGN1cnJlbnQgY29kZXBvaW50IHdhcyBIaXJhZ2FuYQorICAgICAqLworICAgIGJvb2xlYW4gbV9pc0NvZGVQb2ludEhpcmFnYW5hXzsKKyAgICAvKioKKyAgICAgKiBQb3NpdGlvbiBpbiB0aGUgb3JpZ2luYWwgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggYSBub24tRkNEIHNlcXVlbmNlCisgICAgICovCisgICAgaW50IG1fRkNEU3RhcnRfOworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIENFIGZyb20gQ0VzIGJ1ZmZlciB0aGF0IHNob3VsZCBiZSByZXR1cm5lZC4KKyAgICAgKiBJbml0aWFsIHZhbHVlIGlzIDAuCisgICAgICogRm9yd2FyZHMgaXRlcmF0aW9uIHdpbGwgZW5kIHdpdGggbV9DRUJ1ZmZlck9mZnNldF8gPT0gbV9DRUJ1ZmZlclNpemVfLAorICAgICAqIGJhY2t3YXJkcyB3aWxsIGVuZCB3aXRoIG1fQ0VCdWZmZXJPZmZzZXRfID09IDAuCisgICAgICogVGhlIG5leHQvcHJldmlvdXMgYWZ0ZXIgd2UgcmVhY2ggdGhlIGVuZC9iZWdpbm5pbmcgb2YgdGhlIG1fQ0VCdWZmZXJfCisgICAgICogd2lsbCBjYXVzZSB0aGlzIHZhbHVlIHRvIGJlIHJlc2V0IHRvIDAuCisgICAgICovCisgICAgaW50IG1fQ0VCdWZmZXJPZmZzZXRfOworCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgcG9zaXRpb24gdG8gd2hpY2ggd2UgaGF2ZSBzdG9yZWQgcHJvY2Vzc2VkIENFcy4KKyAgICAgKiBJbml0aWFsIHZhbHVlIGlzIDAuCisgICAgICogVGhlIG5leHQvcHJldmlvdXMgYWZ0ZXIgd2UgcmVhY2ggdGhlIGVuZC9iZWdpbm5pbmcgb2YgdGhlIG1fQ0VCdWZmZXJfCisgICAgICogd2lsbCBjYXVzZSB0aGlzIHZhbHVlIHRvIGJlIHJlc2V0IHRvIDAuCisgICAgICovCisgICAgaW50IG1fQ0VCdWZmZXJTaXplXzsKKyAgICBzdGF0aWMgZmluYWwgaW50IENFX05PVF9GT1VORF8gPSAweEYwMDAwMDAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfRVhQQU5TSU9OX1RBR18gPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVFJBQ1RJT05fVEFHXyA9IDI7CisgICAgLyoqIAorICAgICAqIENvbGxhdGUgRGlnaXRzIEFzIE51bWJlcnMgKENPREFOKSBpbXBsZW1lbnRhdGlvbgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfRElHSVRfVEFHXyA9IDEzOworCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY29sbGF0b3IgdXNlZC4KKyAgICAgKiBJbnRlcm5hbCB1c2UsIGFsbCBkYXRhIG1lbWJlcnMgd2lsbCBiZSByZXNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZXMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdG8gc2V0CisgICAgICovCisgICAgdm9pZCBzZXRDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikKKyAgICB7CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TZXRzIHRoZSBpdGVyYXRvciB0byBwb2ludCB0byB0aGUgY29sbGF0aW9uIGVsZW1lbnQgY29ycmVzcG9uZGluZyB0bworICAgICAqIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyICh0aGUgcGFyYW1ldGVyIGlzIGEgQ0hBUkFDVEVSIG9mZnNldCBpbiB0aGUKKyAgICAgKiBvcmlnaW5hbCBzdHJpbmcsIG5vdCBhbiBvZmZzZXQgaW50byBpdHMgY29ycmVzcG9uZGluZyBzZXF1ZW5jZSBvZgorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50cykuIFRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgbmV4dCBjYWxsIHRvIG5leHQoKQorICAgICAqIHdpbGwgYmUgdGhlIGNvbGxhdGlvbiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbgorICAgICAqIGluIHRoZSB0ZXh0LiBVbmxpa2UgdGhlIHB1YmxpYyBtZXRob2Qgc2V0T2Zmc2V0KGludCksIHRoaXMgbWV0aG9kIGRvZXMKKyAgICAgKiBub3QgdHJ5IHRvIHJlYWRqdXN0IHRoZSBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UuCisgICAgICogZ2V0T2Zmc2V0KCkgaXMgZ3VhcmFudGVlZCB0byByZXR1cm4gdGhlIHNhbWUgdmFsdWUgYXMgd2FzIHBhc3NlZCB0byBhCisgICAgICogcHJlY2VkaW5nIGNhbGwgdG8gc2V0T2Zmc2V0KCkuPC9wPgorICAgICAqIEBwYXJhbSBvZmZzZXQgbmV3IGNoYXJhY3RlciBvZmZzZXQgaW50byB0aGUgb3JpZ2luYWwgdGV4dCB0byBzZXQuCisgICAgICovCisgICAgdm9pZCBzZXRFeGFjdE9mZnNldChpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgaXRlcmF0b3IgaXMgaW4gdGhlIGJ1ZmZlciB6b25lCisgICAgICogQHJldHVybiB0cnVlIGlmIGl0ZXJhdG9yIGlzIGluIGJ1ZmZlciB6b25lLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBib29sZWFuIGlzSW5CdWZmZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYnVmZmVyT2Zmc2V0XyA+IDA7CisgICAgfQorCisgICAKKyAgICAvKioKKyAgICAgKiA8cD5TZXRzIHRoZSBpdGVyYXRvciB0byBwb2ludCB0byB0aGUgY29sbGF0aW9uIGVsZW1lbnQgY29ycmVzcG9uZGluZyB0bworICAgICAqIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyICh0aGUgcGFyYW1ldGVyIGlzIGEgQ0hBUkFDVEVSIG9mZnNldCBpbiB0aGUKKyAgICAgKiBvcmlnaW5hbCBzdHJpbmcsIG5vdCBhbiBvZmZzZXQgaW50byBpdHMgY29ycmVzcG9uZGluZyBzZXF1ZW5jZSBvZgorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50cykuIFRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgbmV4dCBjYWxsIHRvIG5leHQoKQorICAgICAqIHdpbGwgYmUgdGhlIGNvbGxhdGlvbiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbgorICAgICAqIGluIHRoZSB0ZXh0LiBVbmxpa2UgdGhlIHB1YmxpYyBtZXRob2Qgc2V0T2Zmc2V0KGludCksIHRoaXMgbWV0aG9kIGRvZXMKKyAgICAgKiBub3QgdHJ5IHRvIHJlYWRqdXN0IHRoZSBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UuCisgICAgICogZ2V0T2Zmc2V0KCkgaXMgZ3VhcmFudGVlZCB0byByZXR1cm4gdGhlIHNhbWUgdmFsdWUgYXMgd2FzIHBhc3NlZCB0byBhCisgICAgICogcHJlY2VkaW5nIGNhbGwgdG8gc2V0T2Zmc2V0KCkuPC9wPgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBuZXcgc291cmNlIHN0cmluZyBpdGVyYXRvciBmb3IgaXRlcmF0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdG8gdGhlIHNvdXJjZQorICAgICAqLworICAgIHZvaWQgc2V0VGV4dChVQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8uc2V0VGV4dChzb3VyY2UuZ2V0VGV4dCgpKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbV9zcmNVdGlsSXRlcl87CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQmFja3VwIGRhdGEgY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBCYWNrdXAKKyAgICB7CisgICAgICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgbm9uIEZDRCBzZXF1ZW5jZSBsaW1pdAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX0ZDRExpbWl0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBub24gRkNEIHNlcXVlbmNlIHN0YXJ0CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fRkNEU3RhcnRfOworICAgICAgICAvKioKKyAgICAgICAgICogQmFja3VwIGlmIHByZXZpb3VzIENvZGVwb2ludCBpcyBIaXJhZ2FuYSBxdWF0ZW5hcnkKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1faXNDb2RlUG9pbnRIaXJhZ2FuYV87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgYnVmZmVyIHBvc2l0aW9uCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fYnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBzb3VyY2UgaXRlcmF0b3Igb2Zmc2V0CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fb2Zmc2V0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBidWZmZXIgY29udGVudHMKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmdCdWZmZXIgbV9idWZmZXJfOworCisgICAgICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbXB0eSBjb25zdHJ1Y3RvcgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIEJhY2t1cCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fYnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBlbmQgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEaXJlY3Rpb24gb2YgdHJhdmVsCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNGb3J3YXJkc187CisgICAgLyoqCisgICAgICogU291cmNlIHN0cmluZyBpdGVyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgVUNoYXJhY3Rlckl0ZXJhdG9yIG1fc291cmNlXzsKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHBvc2l0aW9uIHRvIHRoZSBtX2J1ZmZlcl8sIC0xIGlmIGl0ZXJhdG9yIGlzIG5vdCBpbiBtX2J1ZmZlcl8KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2J1ZmZlck9mZnNldF87CisgICAgLyoqCisgICAgICogQnVmZmVyIGZvciB0ZW1wb3Jhcnkgc3RvcmFnZSBvZiBub3JtYWxpemVkIGNoYXJhY3RlcnMsIGRpc2NvbnRpZ3VvdXMKKyAgICAgKiBjaGFyYWN0ZXJzIGFuZCBUaGFpIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX2J1ZmZlcl87CisgICAgLyoqCisgICAgICogUG9zaXRpb24gaW4gdGhlIG9yaWdpbmFsIHN0cmluZyB0byBjb250aW51ZSBmb3J3YXJkIEZDRCBjaGVjayBmcm9tLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fRkNETGltaXRfOworICAgIC8qKgorICAgICAqIFRoZSBjb2xsYXRvciB0aGlzIGl0ZXJhdG9yIGlzIGJhc2VkIG9uCisgICAgICovCisgICAgcHJpdmF0ZSBSdWxlQmFzZWRDb2xsYXRvciBtX2NvbGxhdG9yXzsKKyAgICAvKioKKyAgICAgKiB0cnVlIGlmIEhpcmFnYW5hIHF1YXRlbmFyeSBpcyBvbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzSGlyYWdhbmE0XzsKKyAgICAvKioKKyAgICAgKiBDRSBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX0NFQnVmZmVyX1tdOworICAgIC8qKgorICAgICAqIEluIHJlYWxpdHkgd2Ugc2hvdWxkIG5vdCBoYXZlIHRvIGRlYWwgd2l0aCBleHBhbnNpb24gc2VxdWVuY2VzIGxvbmdlcgorICAgICAqIHRoZW4gMTYuIEhvd2V2ZXIgdGhpcyB2YWx1ZSBjYW4gYmUgY2hhbmdlIGlmIGEgYmlnZ2VyIGJ1ZmZlciBpcyBuZWVkZWQuCisgICAgICogTm90ZSwgaWYgdGhlIHNpemUgaXMgY2hhbmdlIHRvIHRvbyBzbWFsbCBhIG51bWJlciwgQklHIHRyb3VibGUuCisgICAgICogUmVhc29uYWJsZSBzbWFsbCB2YWx1ZSBpcyBhcm91bmQgMTAsIGlmIHRoZXJlJ3Mgbm8gQXJhYmljIG9yIG90aGVyCisgICAgICogZnVua3kgY29sbGF0aW9ucyB0aGF0IGhhdmUgbG9uZyBleHBhbnNpb24gc2VxdWVuY2UuIFRoaXMgaXMgdGhlIGxvbmdlc3QKKyAgICAgKiBleHBhbnNpb24gc2VxdWVuY2UgdGhpcyBjYW4gaGFuZGxlIHdpdGhvdXQgYm9tYmluZyBvdXQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0JVRkZFUl9JTklUX1NJWkVfID0gNTEyOworICAgIC8qKgorICAgICAqIEJhY2t1cCBzdG9yYWdlIGZvciBzcGVjaWFsIHByb2Nlc3NpbmcgaW5uZXIgY2FzZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIEJhY2t1cCBtX3V0aWxTcGVjaWFsQmFja1VwXzsKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgc3RvcmFnZSBpbiBzcGVjaWFsIHByb2Nlc3NpbmcgZW50cnkgc3RhdGUKKyAgICAgKi8KKyAgICBwcml2YXRlIEJhY2t1cCBtX3V0aWxTcGVjaWFsRW50cnlCYWNrVXBfOworICAgIC8qKgorICAgICAqIEJhY2t1cCBzdG9yYWdlIGluIHNwZWNpYWwgcHJvY2Vzc2luZyBkaXNjb250aWd1b3VzIHN0YXRlCisgICAgICovCisgICAgcHJpdmF0ZSBCYWNrdXAgbV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfOworICAgIC8qKgorICAgICAqIFV0aWxpdHkKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvciBtX3NyY1V0aWxJdGVyXzsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX3V0aWxTdHJpbmdCdWZmZXJfOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fdXRpbFNraXBwZWRCdWZmZXJfOworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fdXRpbENvbEVJdGVyXzsKKyAgICAvKioKKyAgICAgKiBPbmUgY2hhcmFjdGVyIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLXplcm8gY29tYmluaW5nIGNsYXNzIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfID0gMHhDMDsKKyAgICAvKioKKyAgICAgKiBPbmUgY2hhcmFjdGVyIGJlZm9yZSB0aGUgZmlyc3QgY2hhcmFjdGVyIHdpdGggbGVhZGluZyBub24temVybyBjb21iaW5pbmcKKyAgICAgKiBjbGFzcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfID0gMHgzMDA7CisgICAgLyoqCisgICAgICogTWFzayBmb3IgdGhlIGxhc3QgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweEZGOworICAgIC8qKgorICAgICAqIFNoaWZ0IHZhbHVlIGZvciB0aGUgc2Vjb25kIGxhc3QgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXyA9IDg7CisKKyAgICAvLyBzcGVjaWFsIGNlIHZhbHVlcyBhbmQgdGFncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisvLyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfRVhQQU5TSU9OXyA9IDB4RjEwMDAwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NPTlRSQUNUSU9OXyA9IDB4RjIwMDAwMDA7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoZSBsYXN0IGNlIGhhcyBiZWVuIGNvbnN1bWVkLiBDb21wYXJlIHdpdGggTlVMTE9SREVSLgorICAgICAqIE5VTExPUkRFUiBpcyByZXR1cm5lZCBpZiBlcnJvciBvY2N1cnMuCisgICAgICovCisvKiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfID0gMHgwMDAxMDEwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfUFJJTUFSWV8gPSAweDAwMDEwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT19NT1JFX0NFU19TRUNPTkRBUllfID0gMHgwMDAwMDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfVEVSVElBUllfID0gMHgwMDAwMDAwMTsKKyovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX05PVF9GT1VORF9UQUdfID0gMDsKKyAgICAvKioKKyAgICAgKiBDaGFyc2V0IHByb2Nlc3NpbmcsIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0hBUlNFVF9UQUdfID0gNDsKKyAgICAvKioKKyAgICAgKiBBQzAwLUQ3QUYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfSEFOR1VMX1NZTExBQkxFX1RBR18gPSA2OworICAgIC8qKgorICAgICAqIEQ4MDAtREJGRgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9MRUFEX1NVUlJPR0FURV9UQUdfID0gNzsKKyAgICAvKioKKyAgICAgKiBEQzAwLURGRkYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVFJBSUxfU1VSUk9HQVRFX1RBR18gPSA4OworICAgIC8qKgorICAgICAqIDB4MzQwMC0weDREQjUsIDB4NEUwMC0weDlGQTUsIDB4RjkwMC0weEZBMkQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0pLX0lNUExJQ0lUX1RBR18gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9JTVBMSUNJVF9UQUdfID0gMTA7CisgICAgc3RhdGljIGZpbmFsIGludCBDRV9TUEVDX1BST0NfVEFHXyA9IDExOworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSAzIGJ5dGUgcHJpbWFyeSB3aXRoIHN0YXJ0aW5nIHNlY29uZGFyaWVzIGFuZCB0ZXJ0aWFyaWVzLgorICAgICAqIEl0IGZpdHMgaW4gYSBzaW5nbGUgMzIgYml0IENFIGFuZCBpcyB1c2VkIGluc3RlYWQgb2YgZXhwYW5zaW9uIHRvIHNhdmUKKyAgICAgKiBzcGFjZSB3aXRob3V0IGFmZmVjdGluZyB0aGUgcGVyZm9ybWFuY2UgKGhvcGVmdWxseSkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0xPTkdfUFJJTUFSWV9UQUdfID0gMTI7CisgICAgICAgICAgICAgICAgICAgICAgICAKKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DRV9UQUdTX0NPVU5UID0gMTQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0JZVEVfQ09NTU9OXyA9IDB4MDU7CisKKyAgICAvLyBlbmQgc3BlY2lhbCBjZSB2YWx1ZXMgYW5kIHRhZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1NCQVNFXyA9IDB4QUMwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX0xCQVNFXyA9IDB4MTEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1ZCQVNFXyA9IDB4MTE2MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1RCQVNFXyA9IDB4MTFBNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1ZDT1VOVF8gPSAyMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1RDT1VOVF8gPSAyODsKKworICAgIC8vIENKSyBzdHVmZiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLyogICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19CQVNFXyA9IDB4NEUwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0xJTUlUXyA9IDB4OUZGRisxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUX1VTRURfQkFTRV8gPSAweEZBMEU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19DT01QQVRfVVNFRF9MSU1JVF8gPSAweEZBMkYgKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQV9CQVNFXyA9IDB4MzQwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0FfTElNSVRfID0gMHg0REJGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0JfQkFTRV8gPSAweDIwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQl9MSU1JVF8gPSAweDJBNkRGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NKS19PRkZTRVRfID0gMHgxMTAwMDA7CisqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgID0gIElDVURlYnVnLmVuYWJsZWQoImNvbGxhdG9yIik7CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIGludGVybmFsbHkKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpCisgICAgeworICAgICAgICBtX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gZmFsc2U7CisgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IC0xOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgIG1fRkNETGltaXRfID0gLTE7CisgICAgICAgIG1fRkNEU3RhcnRfID0gbV9zb3VyY2VfLmdldExlbmd0aCgpOworICAgICAgICBtX2lzSGlyYWdhbmE0XyA9IG1fY29sbGF0b3JfLm1faXNIaXJhZ2FuYTRfOworICAgICAgICBtX2lzRm9yd2FyZHNfID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgdGhlIGN1cnJlbnQgaW50ZXJuYWwgc3RhdGUKKyAgICAgKiBAcGFyYW0gYmFja3VwIG9iamVjdCB0byBzdG9yZSB0aGUgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBiYWNrdXBJbnRlcm5hbFN0YXRlKEJhY2t1cCBiYWNrdXApCisgICAgeworICAgICAgICBiYWNrdXAubV9vZmZzZXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIGJhY2t1cC5tX0ZDRExpbWl0XyA9IG1fRkNETGltaXRfOworICAgICAgICBiYWNrdXAubV9GQ0RTdGFydF8gPSBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgYmFja3VwLm1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gPSBtX2lzQ29kZVBvaW50SGlyYWdhbmFfOworICAgICAgICBiYWNrdXAubV9idWZmZXJPZmZzZXRfID0gbV9idWZmZXJPZmZzZXRfOworICAgICAgICBiYWNrdXAubV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICAvLyBqZGsgMS4zLjEgZG9lcyBub3QgaGF2ZSBhcHBlbmQoU3RyaW5nQnVmZmVyKSB5ZXQKKyAgICAgICAgICAgIGlmKElDVURlYnVnLmlzSkRLMTRPckhpZ2hlcil7CisgICAgICAgICAgICAgICAgYmFja3VwLm1fYnVmZmVyXy5hcHBlbmQobV9idWZmZXJfKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGJhY2t1cC5tX2J1ZmZlcl8uYXBwZW5kKG1fYnVmZmVyXy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVwZGF0ZSB0aGUgaXRlcmF0b3IgaW50ZXJuYWxseSB3aXRoIGJhY2tlZC11cCBzdGF0ZQorICAgICAqIEBwYXJhbSBiYWNrdXAgb2JqZWN0IHRoYXQgc3RvcmVkIHRoZSBkYXRhCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUludGVybmFsU3RhdGUoQmFja3VwIGJhY2t1cCkKKyAgICB7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChiYWNrdXAubV9vZmZzZXRfKTsKKyAgICAgICAgbV9pc0NvZGVQb2ludEhpcmFnYW5hXyA9IGJhY2t1cC5tX2lzQ29kZVBvaW50SGlyYWdhbmFfOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSBiYWNrdXAubV9idWZmZXJPZmZzZXRfOworICAgICAgICBtX0ZDRExpbWl0XyA9IGJhY2t1cC5tX0ZDRExpbWl0XzsKKyAgICAgICAgbV9GQ0RTdGFydF8gPSBiYWNrdXAubV9GQ0RTdGFydF87CisgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgLy8gamRrIDEuMy4xIGRvZXMgbm90IGhhdmUgYXBwZW5kKFN0cmluZ0J1ZmZlcikgeWV0CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKGJhY2t1cC5tX2J1ZmZlcl8udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGZhc3QgY29tYmluaW5nIGNsYXNzIHJldHJpZXZhbCBzeXN0ZW0uCisgICAgICogQHBhcmFtIGNoIFVURjE2IGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gY29tYmluaW5nIGNsYXNzIG9mIGNoCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0Q29tYmluaW5nQ2xhc3MoaW50IGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoID49IExFQURfWkVST19DT01CSU5JTkdfQ0xBU1NfRkFTVF9MSU1JVF8gJiYKKyAgICAgICAgICAgIG1fY29sbGF0b3JfLmlzVW5zYWZlKChjaGFyKWNoKSB8fCBjaCA+IDB4RkZGRikgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldENvbWJpbmluZ0NsYXNzKGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5JbmNyZW1lbnRhbCBub3JtYWxpemF0aW9uLCB0aGlzIGlzIGFuIGVzc2VudGlhbCBvcHRpbWl6YXRpb24uCisgICAgICogQXNzdW1pbmcgRkNEIGNoZWNrcyBoYXMgYmVlbiBkb25lLCBub3JtYWxpemUgdGhlIG5vbi1GQ0QgY2hhcmFjdGVycyBpbnRvCisgICAgICogdGhlIGJ1ZmZlci4KKyAgICAgKiBTb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuCisgICAgICogPC9wPgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBub3JtYWxpemUoKQorICAgIHsKKyAgICAgICAgaW50IHNpemUgPSBtX0ZDRExpbWl0XyAtIG1fRkNEU3RhcnRfOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9GQ0RTdGFydF8pOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoKGNoYXIpbV9zb3VyY2VfLm5leHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKG1fYnVmZmVyXy50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoZGVjb21wKTsKKyAgICAgICAgbV9idWZmZXJPZmZzZXRfID0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5JbmNyZW1lbnRhbCBGQ0QgY2hlY2sgYW5kIG5vcm1hbGl6YXRpb24uIEdldHMgdGhlIG5leHQgYmFzZSBjaGFyYWN0ZXIKKyAgICAgKiBwb3NpdGlvbiBhbmQgZGV0ZXJtaW5lcyBpZiB0aGUgaW4tYmV0d2VlbiBjaGFyYWN0ZXJzIG5lZWRzIG5vcm1hbGl6YXRpb24uCisgICAgICogPC9wPgorICAgICAqIDxwPldoZW4gZW50ZXJpbmcsIHRoZSBzdGF0ZSBpcyBrbm93biB0byBiZSB0aGlzOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+V2UgYXJlIHdvcmtpbmcgb24gc291cmNlIHN0cmluZywgbm90IHRoZSBidWZmZXIuCisgICAgICogPGxpPlRoZSBsZWFkaW5nIGNvbWJpbmluZyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyAwIG9yIHRoZQorICAgICAqICAgICB0cmFpbGluZyBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIHByZXZpb3VzIGNoYXIgd2FzIHplcm8uCisgICAgICogPC91bD4KKyAgICAgKiBJbmNvbWluZyBzb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuCisgICAgICogUmV0dXJuIHNvdXJjZSBvZmZzZXRzIHBvaW50cyB0byB0aGUgY3VycmVudCBwcm9jZXNzaW5nIGNoYXJhY3Rlci4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIG9mZnNldCBjdXJyZW50IGNoYXJhY3RlciBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgRkNEQ2hlY2sgcGFzc2VzLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gRkNEQ2hlY2soY2hhciBjaCwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gdHJ1ZTsKKworICAgICAgICAvLyBHZXQgdGhlIHRyYWlsaW5nIGNvbWJpbmluZyBjbGFzcyBvZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICAgIC8vIElmIGl0J3MgemVybywgd2UgYXJlIE9LLgorICAgICAgICBtX0ZDRFN0YXJ0XyA9IG9mZnNldDsKKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIC8vIHRyaWUgYWNjZXNzCisgICAgICAgIGNoYXIgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpOworICAgICAgICBpZiAoZmNkICE9IDAgJiYgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgIGNoID0gKGNoYXIpbV9zb3VyY2VfLmN1cnJlbnQoKTsgCisgICAgICAgICAgICAvLyBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSBoYXMgMCBmY2QKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkLCBjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZjZCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgcHJldlRyYWlsQ0MgPSBmY2QgJiBMQVNUX0JZVEVfTUFTS187CisKKyAgICAgICAgaWYgKHByZXZUcmFpbENDICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRoZSBjdXJyZW50IGNoYXIgaGFzIGEgbm9uLXplcm8gdHJhaWxpbmcgQ0MuIFNjYW4gZm9yd2FyZCB1bnRpbAorICAgICAgICAgICAgLy8gd2UgZmluZCBhIGNoYXIgd2l0aCBhIGxlYWRpbmcgY2Mgb2YgemVyby4KKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpbnQgY2hfaW50ID0gbV9zb3VyY2VfLmN1cnJlbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hfaW50ID09IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgICAgICAgICAvLyB0cmllIGFjY2VzcworICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgICAgICAgICBpZiAoZmNkICE9IDAgJiYgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8ubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihmY2QsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZjZCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IGxlYWRDQyA9IGZjZCA+Pj4gU0VDT05EX0xBU1RfQllURV9TSElGVF87CisgICAgICAgICAgICAgICAgaWYgKGxlYWRDQyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBiYXNlIGNoYXJhY3Rlciwgd2Ugc3RvcCB0aGUgRkNEIGNoZWNrcworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobGVhZENDIDwgcHJldlRyYWlsQ0MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHJldlRyYWlsQ0MgPSBmY2QgJiBMQVNUX0JZVEVfTUFTS187CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV9GQ0RMaW1pdF8gPSBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNEU3RhcnRfKTsKKyAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5NZXRob2QgdHJpZXMgdG8gZmV0Y2ggdGhlIG5leHQgY2hhcmFjdGVyIHRoYXQgaXMgaW4gZmNkIGZvcm0uPC9wPgorICAgICAqIDxwPk5vcm1hbGl6YXRpb24gaXMgZG9uZSBpZiByZXF1aXJlZC48L3A+CisgICAgICogPHA+T2Zmc2V0cyBhcmUgcmV0dXJuZWQgYXQgdGhlIG5leHQgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiBAcmV0dXJuIG5leHQgZmNkIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRDaGFyKCkKKyAgICB7CisgICAgICAgIGludCByZXN1bHQ7CisKKyAgICAgICAgLy8gbG9vcCBoYW5kbGVzIHRoZSBuZXh0IGNoYXJhY3RlciB3aGV0aGVyIGl0IGlzIGluIHRoZSBidWZmZXIgb3Igbm90LgorICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfIDwgMCkgeworICAgICAgICAgICAgLy8gd2UncmUgd29ya2luZyBvbiB0aGUgc291cmNlIGFuZCBub3Qgbm9ybWFsaXppbmcuIGZhc3QgcGF0aC4KKyAgICAgICAgICAgIC8vIG5vdGUgVGhhaSBwcmUtdm93ZWwgcmVvcmRlcmluZyB1c2VzIGJ1ZmZlciB0b28KKyAgICAgICAgICAgIHJlc3VsdCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgaW4gdGhlIGJ1ZmZlciwgYnVmZmVyIG9mZnNldCB3aWxsIG5ldmVyIGJlIDAgaGVyZQorICAgICAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSBtX2J1ZmZlcl8ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBOdWxsIG1hcmtlZCBlbmQgb2YgYnVmZmVyLCByZXZlcnQgdG8gdGhlIHNvdXJjZSBzdHJpbmcgYW5kCisgICAgICAgICAgICAgICAgLy8gbG9vcCBiYWNrIHRvIHRvcCB0byB0cnkgYWdhaW4gdG8gZ2V0IGEgY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX0ZDRExpbWl0Xyk7CisgICAgICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfID0gLTE7CisgICAgICAgICAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV4dENoYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX2J1ZmZlcl8uY2hhckF0KG1fYnVmZmVyT2Zmc2V0XyArKyk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHN0YXJ0b2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIGlmIChyZXN1bHQgPCBGVUxMX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfCisgICAgICAgICAgICAvLyBGYXN0IGZjZCBzYWZlIHBhdGguIHRyYWlsIGNvbWJpbmluZyBjbGFzcyA9PSAwLgorICAgICAgICAgICAgfHwgbV9jb2xsYXRvcl8uZ2V0RGVjb21wb3NpdGlvbigpID09IENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04KKyAgICAgICAgICAgIHx8IG1fYnVmZmVyT2Zmc2V0XyA+PSAwIHx8IG1fRkNETGltaXRfID4gc3RhcnRvZmZzZXQpIHsKKyAgICAgICAgICAgIC8vIHNraXAgdGhlIGZjZCBjaGVja3MKKyAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc3VsdCA8IExFQURfWkVST19DT01CSU5JTkdfQ0xBU1NfRkFTVF9MSU1JVF8pIHsKKyAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcGVlayBhdCB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gb3JkZXIgdG8gdGVsbCBpZiB3ZSBhcmUKKyAgICAgICAgICAgIC8vIEZDRAorICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgIGludCBuZXh0ID0gbV9zb3VyY2VfLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIGlmIChuZXh0ID09IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FCisgICAgICAgICAgICAgICAgfHwgbmV4dCA8IExFQURfWkVST19DT01CSU5JTkdfQ0xBU1NfRkFTVF9MSU1JVF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyAvLyBlbmQgb2Ygc291cmNlIHN0cmluZyBhbmQgaWYgbmV4dCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAvLyBzdGFydHMgd2l0aCBhIGJhc2UgY2hhcmFjdGVyIGlzIGFsd2F5cyBmY2QuCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBOZWVkIGEgbW9yZSBjb21wbGV0ZSBGQ0QgY2hlY2sgYW5kIHBvc3NpYmxlIG5vcm1hbGl6YXRpb24uCisgICAgICAgIGlmICghRkNEQ2hlY2soKGNoYXIpcmVzdWx0LCBzdGFydG9mZnNldCkpIHsKKyAgICAgICAgICAgIG5vcm1hbGl6ZSgpOworICAgICAgICAgICAgcmVzdWx0ID0gbV9idWZmZXJfLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5JbmNyZW1lbnRhbCBub3JtYWxpemF0aW9uLCB0aGlzIGlzIGFuIGVzc2VudGlhbCBvcHRpbWl6YXRpb24uCisgICAgICogQXNzdW1pbmcgRkNEIGNoZWNrcyBoYXMgYmVlbiBkb25lLCBub3JtYWxpemUgdGhlIG5vbi1GQ0QgY2hhcmFjdGVycyBpbnRvCisgICAgICogdGhlIGJ1ZmZlci4KKyAgICAgKiBTb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBub3JtYWxpemVCYWNrd2FyZHMoKQorICAgIHsKKyAgICAgICAgbm9ybWFsaXplKCk7CisgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IG1fYnVmZmVyXy5sZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5JbmNyZW1lbnRhbCBiYWNrd2FyZHMgRkNEIGNoZWNrIGFuZCBub3JtYWxpemF0aW9uLiBHZXRzIHRoZSBwcmV2aW91cworICAgICAqIGJhc2UgY2hhcmFjdGVyIHBvc2l0aW9uIGFuZCBkZXRlcm1pbmVzIGlmIHRoZSBpbi1iZXR3ZWVuIGNoYXJhY3RlcnMKKyAgICAgKiBuZWVkcyBub3JtYWxpemF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5XaGVuIGVudGVyaW5nLCB0aGUgc3RhdGUgaXMga25vd24gdG8gYmUgdGhpczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPldlIGFyZSB3b3JraW5nIG9uIHNvdXJjZSBzdHJpbmcsIG5vdCB0aGUgYnVmZmVyLgorICAgICAqIDxsaT5UaGUgdHJhaWxpbmcgY29tYmluaW5nIGNsYXNzIGZyb20gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzIDAgb3IgdGhlCisgICAgICogICAgIGxlYWRpbmcgY29tYmluaW5nIGNsYXNzIG9mIHRoZSBuZXh0IGNoYXIgd2FzIHplcm8uCisgICAgICogPC91bD4KKyAgICAgKiBJbnB1dCBzb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIHByZXZpb3VzIGNoYXJhY3Rlci4KKyAgICAgKiBSZXR1cm4gc291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGN1cnJlbnQgY2hhcmFjdGVyIG9mZnNldAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBGQ0RDaGVjayBwYXNzZXMsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBGQ0RDaGVja0JhY2t3YXJkcyhjaGFyIGNoLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSB0cnVlOworICAgICAgICBjaGFyIGZjZCA9IDA7CisgICAgICAgIG1fRkNETGltaXRfID0gb2Zmc2V0ICsgMTsKKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIGlmICghVVRGMTYuaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkgJiYgbV9GQ0RMaW1pdF8gPiAwKSB7CisgICAgICAgICAgICAvLyBub3RlIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGdldHMgMCBmY2QKKyAgICAgICAgICAgIGNoYXIgdHJhaWxjaCA9IGNoOworICAgICAgICAgICAgY2ggPSAoY2hhciltX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpOworICAgICAgICAgICAgICAgIGlmIChmY2QgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmY2QgPSAwOyAvLyB1bnBhaXJlZCBzdXJyb2dhdGUKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBsZWFkQ0MgPSBmY2QgPj4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfOworICAgICAgICAvLyBUaGUgY3VycmVudCBjaGFyIGhhcyBhIG5vbi16ZXJvIGxlYWRpbmcgY29tYmluaW5nIGNsYXNzLgorICAgICAgICAvLyBTY2FuIGJhY2t3YXJkIHVudGlsIHdlIGZpbmQgYSBjaGFyIHdpdGggYSB0cmFpbGluZyBjYyBvZiB6ZXJvLgorCisgICAgICAgIHdoaWxlIChsZWFkQ0MgIT0gMCkgeworICAgICAgICAgICAgb2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ID09IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gKGNoYXIpbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoIVVURjE2LmlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpICYmIG1fc291cmNlXy5nZXRJbmRleCgpID4gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBjaDsKKyAgICAgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGZjZCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkLCB0cmFpbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZmNkID0gMDsgLy8gdW5wYWlyZWQgc3Vycm9nYXRlCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgcHJldlRyYWlsQ0MgPSBmY2QgJiBMQVNUX0JZVEVfTUFTS187CisgICAgICAgICAgICBpZiAobGVhZENDIDwgcHJldlRyYWlsQ0MpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxlYWRDQyA9IGZjZCA+Pj4gU0VDT05EX0xBU1RfQllURV9TSElGVF87CisgICAgICAgIH0KKworICAgICAgICAvLyBzdG9yaW5nIGNoYXJhY3RlciB3aXRoIDAgbGVhZCBmY2Qgb3IgdGhlIDFzdCBhY2NlbnQgd2l0aCBhIGJhc2UKKyAgICAgICAgLy8gY2hhcmFjdGVyIGJlZm9yZSBpdAorICAgICAgICBpZiAoZmNkID09IDApIHsKKyAgICAgICAgICAgIG1fRkNEU3RhcnRfID0gb2Zmc2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9GQ0RTdGFydF8gPSBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9GQ0RMaW1pdF8pOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPk1ldGhvZCB0cmllcyB0byBmZXRjaCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIHRoYXQgaXMgaW4gZmNkIGZvcm0uPC9wPgorICAgICAqIDxwPk5vcm1hbGl6YXRpb24gaXMgZG9uZSBpZiByZXF1aXJlZC48L3A+CisgICAgICogPHA+T2Zmc2V0cyBhcmUgcmV0dXJuZWQgYXQgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIGZjZCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0NoYXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICBtX2J1ZmZlck9mZnNldF8gLS07CisgICAgICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9idWZmZXJfLmNoYXJBdChtX2J1ZmZlck9mZnNldF8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQXQgdGhlIHN0YXJ0IG9mIGJ1ZmZlciwgcm91dGUgYmFjayB0byBzdHJpbmcuCisgICAgICAgICAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpZiAobV9GQ0RTdGFydF8gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IC0xOworICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fRkNETGltaXRfID0gbV9GQ0RTdGFydF87CisgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX0ZDRFN0YXJ0Xyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IG1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICBpbnQgc3RhcnRvZmZzZXQgPSBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICAgICAgaWYgKHJlc3VsdCA8IExFQURfWkVST19DT01CSU5JTkdfQ0xBU1NfRkFTVF9MSU1JVF8KKyAgICAgICAgICAgIHx8IG1fY29sbGF0b3JfLmdldERlY29tcG9zaXRpb24oKSA9PSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OCisgICAgICAgICAgICB8fCBtX0ZDRFN0YXJ0XyA8PSBzdGFydG9mZnNldCB8fCBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGludCBjaCA9IG1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICBpZiAoY2ggPCBGVUxMX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfKSB7CisgICAgICAgICAgICAvLyBpZiBwcmV2aW91cyBjaGFyYWN0ZXIgaXMgRkNECisgICAgICAgICAgICBtX3NvdXJjZV8ubmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBOZWVkIGEgbW9yZSBjb21wbGV0ZSBGQ0QgY2hlY2sgYW5kIHBvc3NpYmxlIG5vcm1hbGl6YXRpb24uCisgICAgICAgIGlmICghRkNEQ2hlY2tCYWNrd2FyZHMoKGNoYXIpcmVzdWx0LCBzdGFydG9mZnNldCkpIHsKKyAgICAgICAgICAgIG5vcm1hbGl6ZUJhY2t3YXJkcygpOworICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICAgICAgcmVzdWx0ID0gbV9idWZmZXJfLmNoYXJBdChtX2J1ZmZlck9mZnNldF8pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZmNkIGNoZWNrcyBhbHdheSByZXNldCBtX3NvdXJjZV8gdG8gdGhlIGxpbWl0IG9mIHRoZSBGQ0QKKyAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChzdGFydG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIGl0IGlzIGF0IHRoZSBzdGFydCBvZiBzb3VyY2UgaXRlcmF0aW9uCisgICAgICogQHJldHVybiB0cnVlIGlmIGl0ZXJhdG9yIGF0IHRoZSBzdGFydCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzQmFja3dhcmRzU3RhcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX2J1ZmZlck9mZnNldF8gPCAwICYmIG1fc291cmNlXy5nZXRJbmRleCgpID09IDApCisgICAgICAgICAgICB8fCAobV9idWZmZXJPZmZzZXRfID09IDAgJiYgbV9GQ0RTdGFydF8gPD0gMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIGl0ZXJhdG9yIGlzIGF0IHRoZSBlbmQgb2YgaXRzIHNvdXJjZSBzdHJpbmcuCisgICAgICogQHJldHVybiB0cnVlIGlmIGl0IGlzIGF0IHRoZSBlbmQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBpc0VuZCgpCisgICAgeworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gIT0gbV9idWZmZXJfLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gYXQgZW5kIG9mIGJ1ZmZlci4gY2hlY2sgaWYgZmNkIGlzIGF0IHRoZSBlbmQKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9GQ0RMaW1pdF8gPT0gbV9zb3VyY2VfLmdldExlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBtX3NvdXJjZV8uZ2V0TGVuZ3RoKCkgPT0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3BlY2lhbCBDRSBtYW5hZ2VtZW50IGZvciBzdXJyb2dhdGVzPC9wPgorICAgICAqIDxwPkxlYWQgc3Vycm9nYXRlIGlzIGVuY291bnRlcmVkLiBDRSB0byBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlCisgICAgICogZm9sbG93aW5nIGNvZGUgdW5pdC4gSWYgbmV4dCBjaGFyYWN0ZXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIGJvdGgKKyAgICAgKiBjaGFyYWN0ZXJzIHdpbGwgYmUgY29tYmluZWQgdG8gcmV0cmlldmUgdGhlIENFLCBvdGhlcndpc2UgY29tcGxldGVseQorICAgICAqIGlnbm9yYWJsZSAoVUNBIHNwZWNpZmljYXRpb24pIGlzIHJldHVybmVkLjwvcD4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY29sbGF0b3IgdG8gdXNlCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgQ0UKKyAgICAgKiBAcGFyYW0gdHJhaWwgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBuZXh0IENFIGZvciB0aGUgc3Vycm9nYXRlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBuZXh0U3Vycm9nYXRlKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE86IENFIGNvbnRhaW4gdGhlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgQ0UgKyB0aGUgbWFzay4KKyAgICAgICAgLy8gSXQgc2hvdWxkIGF0IGxlYXN0IGJlIHVubWFza2VkCisgICAgICAgIGludCByZXN1bHQgPSBjb2xsYXRvci5tX3RyaWVfLmdldFRyYWlsVmFsdWUoY2UsIHRyYWlsKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIENFIGV4cGFuc2lvbiBvZmZzZXQKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjZSB0byB0ZXN0CisgICAgICogQHJldHVybiBleHBhbnNpb24gb2Zmc2V0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0RXhwYW5zaW9uT2Zmc2V0KFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKChjZSAmIDB4RkZGRkYwKSA+PiA0KSAtIGNvbGxhdG9yLm1fZXhwYW5zaW9uT2Zmc2V0XzsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNvbnRyYWN0aW9uIGNlIG9mZnNldAorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIGNvbnRyYWN0aW9uIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldENvbnRyYWN0aW9uT2Zmc2V0KFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKGNlICYgMHhGRkZGRkYpIC0gY29sbGF0b3IubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIENFIGlzIGEgc3BlY2lhbCB0YWcgQ0UKKyAgICAgKiBAcGFyYW0gY2UgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgQ0UgaXMgYSBzcGVjaWFsIHRhZyBDRSwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzU3BlY2lhbFByZWZpeFRhZyhpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSAmJgorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuZ2V0VGFnKGNlKSA9PSBDRV9TUEVDX1BST0NfVEFHXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TcGVjaWFsIHByb2Nlc3NpbmcgZ2V0dGluZyBhIENFIHRoYXQgaXMgcHJlY2VkZWQgYnkgYSBjZXJ0YWluCisgICAgICogcHJlZml4LjwvcD4KKyAgICAgKiA8cD5Vc2VkIGZvciBvcHRpbWl6aW5nIEphcGFuZXNlIGxlbmd0aCBhbmQgaXRlcmF0aW9uIG1hcmtzLiBXaGVuIGEKKyAgICAgKiBzcGVjaWFsIHByb2Nlc3NpbmcgdGFnIGlzIGVuY291bnRlcmVkLCBpdGVyYXRlIGJhY2t3YXJkcyB0byBzZWUgaWYKKyAgICAgKiB0aGVyZSdzIGEgbWF0Y2guPC9wPgorICAgICAqIDxwPkNvbnRyYWN0aW9uIHRhYmxlcyBhcmUgdXNlZCwgcHJlZml4IGRhdGEgaXMgc3RvcmVkIGJhY2t3YXJkcyBpbiB0aGUKKyAgICAgKiB0YWJsZS48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNvbGxhdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGVudHJ5YmFja3VwIGVudHJ5IGJhY2t1cCBpdGVyYXRvciBzdGF0dXMKKyAgICAgKiBAcmV0dXJuIG5leHQgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0U3BlY2lhbFByZWZpeChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2t1cCBlbnRyeWJhY2t1cCkKKyAgICB7CisgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKGVudHJ5YmFja3VwKTsKKyAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgIC8vIFdlIHdhbnQgdG8gbG9vayBhdCB0aGUgY2hhcmFjdGVyIHdoZXJlIHdlIGVudGVyZWQKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gVGhpcyBsb29wIHdpbGwgcnVuIG9uY2UgcGVyIHNvdXJjZSBzdHJpbmcgY2hhcmFjdGVyLCBmb3IgYXMKKyAgICAgICAgICAgIC8vIGxvbmcgYXMgd2UgYXJlIG1hdGNoaW5nIGEgcG90ZW50aWFsIGNvbnRyYWN0aW9uIHNlcXVlbmNlCisgICAgICAgICAgICAvLyBGaXJzdCB3ZSBwb3NpdGlvbiBvdXJzZWx2ZXMgYXQgdGhlIGJlZ2luaW5nIG9mIGNvbnRyYWN0aW9uCisgICAgICAgICAgICAvLyBzZXF1ZW5jZQorICAgICAgICAgICAgaW50IGVudHJ5b2Zmc2V0ID0gZ2V0Q29udHJhY3Rpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBlbnRyeW9mZnNldDsKKyAgICAgICAgICAgIGlmIChpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgcHJldmlvdXMgPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgIHdoaWxlIChwcmV2aW91cyA+IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIGNvbnRyYWN0aW9uIGNoYXJhY3RlcnMgYXJlIG9yZGVyZWQsIHNraXAgc21hbGxlciBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocHJldmlvdXMgPT0gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgLy8gRm91bmQgdGhlIHNvdXJjZSBzdHJpbmcgY2hhciBpbiB0aGUgdGFibGUuCisgICAgICAgICAgICAgICAgLy8gUGljayB1cCB0aGUgY29ycmVzcG9uZGluZyBDRSBmcm9tIHRoZSB0YWJsZS4KKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFNvdXJjZSBzdHJpbmcgY2hhciB3YXMgbm90IGluIHRoZSB0YWJsZSwgcHJlZml4IG5vdCBmb3VuZAorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghaXNTcGVjaWFsUHJlZml4VGFnKGNlKSkgeworICAgICAgICAgICAgICAgIC8vIFRoZSBzb3VyY2Ugc3RyaW5nIGNoYXIgd2FzIGluIHRoZSBjb250cmFjdGlvbiB0YWJsZSwgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhlIGNvcnJlc3BvbmRpbmcgQ0UgaXMgbm90IGEgcHJlZml4IENFLiBXZSBmb3VuZCB0aGUKKyAgICAgICAgICAgICAgICAvLyBwcmVmaXgsIGJyZWFrIG91dCBvZiBsb29wLCB0aGlzIENFIHdpbGwgZW5kIHVwIGJlaW5nCisgICAgICAgICAgICAgICAgLy8gcmV0dXJuZWQuIFRoaXMgaXMgdGhlIG5vcm1hbCB3YXkgb3V0IG9mIHByZWZpeCBoYW5kbGluZworICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIHNvdXJjZSBhY3R1YWxseSBjb250YWluZWQgdGhlIHByZWZpeC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY2UgIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgLy8gd2UgZm91bmQgc29tZXRoaW5nIGFuZCB3ZSBjYW4gbWVyaWxseSBjb250aW51ZQorICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIHByZWZpeCBzZWFyY2ggd2FzIGEgZmFpbHVyZSwgd2UgaGF2ZSB0byBiYWNrdXAgYWxsIHRoZSB3YXkgdG8KKyAgICAgICAgICAgIC8vIHRoZSBzdGFydAorICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShlbnRyeWJhY2t1cCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgY2UgaXMgYSBjb250cmFjdGlvbiB0YWcKKyAgICAgKiBAcGFyYW0gY2UgY2UgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2UgaXMgYSBjb250cmFjdGlvbiB0YWcsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0NvbnRyYWN0aW9uVGFnKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5pc1NwZWNpYWwoY2UpICYmCisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5nZXRUYWcoY2UpID09IENFX0NPTlRSQUNUSU9OX1RBR187CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIHRvIGNvcHkgc2tpcHBlZCBjaGFyYWN0ZXJzIGludG8gdGhlIGJ1ZmZlciBhbmQgc2V0cyB0aGUgZmNkCisgICAgICogcG9zaXRpb24uIFRvIGVuc3VyZSB0aGF0IHRoZSBza2lwcGVkIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgbGF0ZXIsCisgICAgICogd2UgbmVlZCB0byBwbGFjZSBpdCBpbiB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb24gaW4gdGhlIGJ1ZmZlciBhbmQKKyAgICAgKiByZWFzc2lnbiB0aGUgc291cmNlIGluZGV4LiBzaW1wbGUgY2FzZSBpZiBpbmRleCByZXNpZGUgaW4gc3RyaW5nLAorICAgICAqIHNpbXBseSBjb3B5IHRvIGJ1ZmZlciBhbmQgZmNkcG9zaXRpb24gPSBwb3MsIHBvcyA9IHN0YXJ0IG9mIGJ1ZmZlci4KKyAgICAgKiBpZiBwb3MgaW4gbm9ybWFsaXphdGlvbiBidWZmZXIsIHdlJ2xsIGluc2VydCB0aGUgY29weSBpbmZyb250IG9mIHBvcworICAgICAqIGFuZCBwb2ludCBwb3MgdG8gdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIuIHdoeSBhbSBpIGRvaW5nIHRoZXNlIGNvcGllcz8KKyAgICAgKiB3ZWxsLCBzbyB0aGF0IHRoZSB3aG9sZSBjaHVuayBvZiBjb2RlcyBpbiB0aGUgZ2V0TmV4dENFLAorICAgICAqIHVjb2xfcHJ2X2dldFNwZWNpYWxDRSBkb2VzIG5vdCByZXF1aXJlIGFueSBjaGFuZ2VzLCB3aGljaCB3aWxsIGJlCisgICAgICogcmVhbGx5IHBhaW5mdWwuCisgICAgICogQHBhcmFtIHNraXBwZWQgY2hhcmFjdGVyIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXREaXNjb250aWd1b3VzKFN0cmluZ0J1ZmZlciBza2lwcGVkKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICBtX2J1ZmZlcl8ucmVwbGFjZSgwLCBtX2J1ZmZlck9mZnNldF8sIHNraXBwZWQudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoc2tpcHBlZC50b1N0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBjaGFyYWN0ZXIgZm9yIGZvcndhcmQgaXRlcmF0aW9uCisgICAgICogQHJldHVybiBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgaW50IGN1cnJlbnRDaGFyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPCAwKSB7CisgICAgICAgICAgICBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZV8ubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbV9idWZmZXJPZmZzZXRfIGlzIG5ldmVyIDAgaW4gbm9ybWFsIGNpcmN1bXN0YW5jZXMgZXhjZXB0IGFmdGVyIGEKKyAgICAgICAgLy8gZGlzY29udGlndW91cyBjb250cmFjdGlvbiBzaW5jZSBpdCBpcyBhbHdheXMgcmV0dXJuZWQgYW5kIG1vdmVkCisgICAgICAgIC8vIGJ5IDEgd2hlbiB3ZSBkbyBuZXh0Q2hhcigpCisgICAgICAgIHJldHVybiBtX2J1ZmZlcl8uY2hhckF0KG1fYnVmZmVyT2Zmc2V0XyAtIDEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCB0byBnZXQgdGhlIGRpc2NvbnRpZ3VvdXMgY29sbGF0aW9uIGVsZW1lbnQgd2l0aGluIHRoZSBzb3VyY2UuCisgICAgICogTm90ZSB0aGlzIGZ1bmN0aW9uIHdpbGwgc2V0IHRoZSBwb3NpdGlvbiB0byB0aGUgYXBwcm9wcmlhdGUgcGxhY2VzLgorICAgICAqIFBhc3NlZCBpbiBjaGFyYWN0ZXIgb2Zmc2V0IHBvaW50cyB0byB0aGUgc2Vjb25kIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgKiBhZnRlciB0aGUgc3RhcnQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yIHVzZWQKKyAgICAgKiBAcGFyYW0gZW50cnlvZmZzZXQgaW5kZXggdG8gdGhlIHN0YXJ0IGNoYXJhY3RlciBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcmV0dXJuIGRpc2NvbnRpZ3VvdXMgY29sbGF0aW9uIGVsZW1lbnQgb2Zmc2V0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dERpc2NvbnRpZ3VvdXMoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBlbnRyeW9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQgPSBlbnRyeW9mZnNldDsKKyAgICAgICAgYm9vbGVhbiBtdWx0aWNvbnRyYWN0aW9uID0gZmFsc2U7CisgICAgICAgIC8vIHNpbmNlIGl0IHdpbGwgYmUgc3R1ZmZlZCBpbnRvIHRoaXMgaXRlcmF0b3IgYW5kIHJhbiBvdmVyIGFnYWluCisgICAgICAgIGlmIChtX3V0aWxTa2lwcGVkQnVmZmVyXyA9PSBudWxsKSB7CisgICAgICAgICAgICBtX3V0aWxTa2lwcGVkQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fdXRpbFNraXBwZWRCdWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgfQorICAgICAgICBjaGFyIGNoID0gKGNoYXIpY3VycmVudENoYXIoKTsKKyAgICAgICAgbV91dGlsU2tpcHBlZEJ1ZmZlcl8uYXBwZW5kKChjaGFyKWN1cnJlbnRDaGFyKCkpOworICAgICAgICAvLyBhY2NlbnQgYWZ0ZXIgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAgICBpZiAobV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfID09IG51bGwpIHsKKyAgICAgICAgICAgIG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXyA9IG5ldyBCYWNrdXAoKTsKKyAgICAgICAgfQorICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXyk7CisgICAgICAgIGNoYXIgbmV4dGNoID0gY2g7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBjaCA9IG5leHRjaDsKKyAgICAgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgbmV4dGNoID0gKGNoYXIpY2hfaW50OworICAgICAgICAgICAgaWYgKGNoX2ludCA9PSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORQorICAgICAgICAgICAgICAgIHx8IGdldENvbWJpbmluZ0NsYXNzKG5leHRjaCkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBubyBtb3JlIGFjY2VudHMgdG8gbW92ZSBhcm91bmQKKyAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBoYXZlIHRvIHNoaWZ0IHByZXZpb3VzQ2hhciwgc2luY2Ugd2UgYXJlIHJlc2V0dGluZworICAgICAgICAgICAgICAgIC8vIHRoZSBvZmZzZXQgbGF0ZXIKKyAgICAgICAgICAgICAgICBpZiAobXVsdGljb250cmFjdGlvbikgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hfaW50ICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsgLy8gYmFja3RyYWNrCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc2V0RGlzY29udGlndW91cyhtX3V0aWxTa2lwcGVkQnVmZmVyXyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvZmZzZXQgKys7IC8vIHNraXAgdGhlIGNvbWJpbmluZyBjbGFzcyBvZmZzZXQKKyAgICAgICAgICAgIHdoaWxlIChuZXh0Y2ggPiBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0pIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBjZSA9IENFX05PVF9GT1VORF87CisgICAgICAgICAgICBpZiAobmV4dGNoICE9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XQorICAgICAgICAgICAgICAgICAgICB8fCBnZXRDb21iaW5pbmdDbGFzcyhuZXh0Y2gpID09IGdldENvbWJpbmluZ0NsYXNzKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyB1bm1hdGNoZWQgb3IgYmxvY2tlZCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBtX3V0aWxTa2lwcGVkQnVmZmVyXy5hcHBlbmQobmV4dGNoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2UgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoaXNDb250cmFjdGlvblRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgbXVsdGktY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpOworICAgICAgICAgICAgICAgIGlmIChjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF0gIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgICAgICBtdWx0aWNvbnRyYWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsRGlzY29udGlndW91c0JhY2tVcF8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNldERpc2NvbnRpZ3VvdXMobV91dGlsU2tpcHBlZEJ1ZmZlcl8pOworICAgICAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfKTsKKyAgICAgICAgLy8gYmFja3VwIGlzIG9uZSBmb3J3YXJkIG9mIHRoZSBiYXNlIGNoYXJhY3Rlciwgd2UgbmVlZCB0byBtb3ZlIGJhY2sKKyAgICAgICAgLy8gb25lIG1vcmUKKyAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgIHJldHVybiBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IGNvbnRyYWN0aW9uIGNlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNvbGxhdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBjZSBvZiB0aGUgbmV4dCBjb250cmFjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRDb250cmFjdGlvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIGludCBlbnRyeWNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpXTsgLy9DRV9OT1RfRk9VTkRfOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGVudHJ5b2Zmc2V0ID0gZ2V0Q29udHJhY3Rpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBlbnRyeW9mZnNldDsKKworICAgICAgICAgICAgaWYgKGlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgICAgICAvLyBiYWNrIHVwIHRoZSBzb3VyY2Ugb3ZlciBhbGwgdGhlIGNoYXJzIHdlIHNjYW5uZWQgZ29pbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gaW50byB0aGlzIGNvbnRyYWN0aW9uLgorICAgICAgICAgICAgICAgICAgICBjZSA9IGVudHJ5Y2U7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZ2V0IHRoZSBkaXNjb250aWd1b3MgbWF4aW11bSBjb21iaW5pbmcgY2xhc3MKKyAgICAgICAgICAgIGludCBtYXhDQyA9IChjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0gJiAweEZGKTsKKyAgICAgICAgICAgIC8vIGNoZWNrcyBpZiBhbGwgY2hhcmFjdGVycyBoYXZlIHRoZSBzYW1lIGNvbWJpbmluZyBjbGFzcworICAgICAgICAgICAgYnl0ZSBhbGxTYW1lID0gKGJ5dGUpKGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSA+PiA4KTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSAoY2hhciluZXh0Q2hhcigpOworICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgd2hpbGUgKGNoID4gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gY2hhcmFjdGVycyBhcmUgb3JkZXJlZCwgc2tpcCBhbGwgc21hbGxlcgorICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNoID09IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIEZvdW5kIHRoZSBzb3VyY2Ugc3RyaW5nIGNoYXIgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlLgorICAgICAgICAgICAgICAgIC8vICBQaWNrIHVwIHRoZSBjb3JyZXNwb25kaW5nIENFIGZyb20gdGhlIHRhYmxlLgorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gU291cmNlIHN0cmluZyBjaGFyIHdhcyBub3QgaW4gY29udHJhY3Rpb24gdGFibGUuCisgICAgICAgICAgICAgICAgLy8gVW5sZXNzIGl0IGlzIGEgZGlzY29udGlndW91cyBjb250cmFjdGlvbiwgd2UgYXJlIGRvbmUKKyAgICAgICAgICAgICAgICBpbnQgbWlzcyA9IGNoOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsgLy8gaW4gb3JkZXIgdG8gZG8gdGhlIHByb3BlciBkZXRlY3Rpb24sIHdlCisgICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gc2VlIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgICAgICAgICAgbWlzcyA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGNoLCAoY2hhcikgbmV4dENoYXIoKSk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHNDQzsKKyAgICAgICAgICAgICAgICBpZiAobWF4Q0MgPT0gMCB8fCAoc0NDID0gZ2V0Q29tYmluaW5nQ2xhc3MobWlzcykpID09IDAKKyAgICAgICAgICAgICAgICAgICAgfHwgc0NDID4gbWF4Q0MgfHwgKGFsbFNhbWUgIT0gMCAmJiBzQ0MgPT0gbWF4Q0MpIHx8CisgICAgICAgICAgICAgICAgICAgIGlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29udHJhY3Rpb24gY2FuIG5vdCBiZSBkaXNjb250aWd1b3VzLCBiYWNrIHVwIGJ5IG9uZQorICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYobWlzcyA+IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnRyYWN0aW9uIGlzIHBvc3NpYmx5IGRpc2NvbnRpZ3VvdXMuCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgY2hhcmFjdGVyIGlmIGNoIGlzIG5vdCBhIGJhc2UgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2hfaW50ICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjaGFyIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldENvbWJpbmluZ0NsYXNzKG5leHRjaCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihtaXNzID4gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFzZSBjaGFyYWN0ZXIgbm90IHBhcnQgb2YgZGlzY29udGlndW91cyBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dERpc2NvbnRpZ3VvdXMoY29sbGF0b3IsIGVudHJ5b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNlID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICAvLyBzb3VyY2UgZGlkIG5vdCBtYXRjaCB0aGUgY29udHJhY3Rpb24sIHJldmVydCBiYWNrIG9yaWdpbmFsCisgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgY2UgPSBlbnRyeWNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzb3VyY2Ugd2FzIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgIGlmICghaXNDb250cmFjdGlvblRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2NvbnRpbnVlIGxvb3BpbmcgdG8gY2hlY2sgZm9yIHRoZSByZW1haW5pbmcgY29udHJhY3Rpb24uCisgICAgICAgICAgICBpZiAoY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF0gIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGFyZSBmdXJ0aGVyIGNvbnRyYWN0aW9ucyB0byBiZSBwZXJmb3JtZWQsIHNvIHdlIHN0b3JlCisgICAgICAgICAgICAgICAgLy8gdGhlIHNvLWZhciBjb21wbGV0ZWQgY2UsIHNvIHRoYXQgaWYgd2UgZmFpbCBpbiB0aGUgbmV4dAorICAgICAgICAgICAgICAgIC8vIHJvdW5kIHdlIGp1c3QgcmV0dXJuIHRoaXMgb25lLgorICAgICAgICAgICAgICAgIGVudHJ5Y2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICBpZiAobV91dGlsU3BlY2lhbEJhY2tVcF8ubV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8ubV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8ubV9vZmZzZXRfIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBjZSBmb3IgbG9uZyBwcmltYXJpZXMsIHN0dWZmcyB0aGUgcmVzdCBvZiB0aGUgY29sbGF0aW9uCisgICAgICogZWxlbWVudHMgaW50byB0aGUgY2UgYnVmZmVyCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIG5leHQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0TG9uZ1ByaW1hcnkoaW50IGNlKQorICAgIHsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMV0gPSAoKGNlICYgMHhGRikgPDwgMjQpCisgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIG1fQ0VCdWZmZXJfWzBdID0gKChjZSAmIDB4RkZGRjAwKSA8PCA4KSB8IChDRV9CWVRFX0NPTU1PTl8gPDwgOCkgfAorICAgICAgICAgICAgQ0VfQllURV9DT01NT05fOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bMF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBudW1iZXIgb2YgZXhwYW5zaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0RXhwYW5zaW9uQ291bnQoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNlICYgMHhGOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG5leHQgZXhwYW5zaW9uIGNlIGFuZCBzdHVmZnMgdGhlIHJlc3Qgb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50cworICAgICAqIGludG8gdGhlIGNlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIG5leHQgZXhwYW5zaW9uIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dEV4cGFuc2lvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gTk9URTogd2UgY2FuIGVuY291bnRlciBib3RoIGNvbnRpbnVhdGlvbnMgYW5kIGV4cGFuc2lvbnMgaW4gYW4KKyAgICAgICAgLy8gZXhwYW5zaW9uIQorICAgICAgICAvLyBJIGhhdmUgdG8gZGVjaWRlIHdoZXJlIGNvbnRpbnVhdGlvbnMgYXJlIGdvaW5nIHRvIGJlIGRlYWx0IHdpdGgKKyAgICAgICAgaW50IG9mZnNldCA9IGdldEV4cGFuc2lvbk9mZnNldChjb2xsYXRvciwgY2UpOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSBnZXRFeHBhbnNpb25Db3VudChjZSk7CisgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMF0gPSBjb2xsYXRvci5tX2V4cGFuc2lvbl9bb2Zmc2V0XTsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyAhPSAwKSB7CisgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIDE2IGVsZW1lbnRzIGluIGV4cGFuc2lvbgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtX0NFQnVmZmVyU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1tpXSA9IGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXQgKyBpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNlIGFyZSB0ZXJtaW5hdGVkCisgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAxOworICAgICAgICAgICAgd2hpbGUgKGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXRdICE9IDApIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25fWysrIG9mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gaW4gY2FzZSBvZiBvbmUgZWxlbWVudCBleHBhbnNpb24sIHdlIAorICAgICAgICAvLyB3YW50IHRvIGltbWVkaWF0ZWx5IHJldHVybiBDRXBvcworICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID09IDEpIHsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfWzBdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IGRpZ2l0IGNlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEBwYXJhbSBjcCBjdXJyZW50IGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gbmV4dCBkaWdpdCBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHREaWdpdChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLCBpbnQgY3ApCisgICAgeworICAgICAgICAvLyBXZSBkbyBhIGNoZWNrIHRvIHNlZSBpZiB3ZSB3YW50IHRvIGNvbGxhdGUgZGlnaXRzIGFzIG51bWJlcnM7IAorICAgICAgICAvLyBpZiBzbyB3ZSBnZW5lcmF0ZSBhIGN1c3RvbSBjb2xsYXRpb24ga2V5LiBPdGhlcndpc2Ugd2UgcHVsbCBvdXQgCisgICAgICAgIC8vIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGV4cGFuc2lvbiB0YWJsZS4KKworICAgICAgICBpZiAobV9jb2xsYXRvcl8ubV9pc051bWVyaWNDb2xsYXRpb25fKXsKKyAgICAgICAgICAgIGludCBjb2xsYXRlVmFsID0gMDsKKyAgICAgICAgICAgIGludCB0cmFpbGluZ1plcm9JbmRleCA9IDA7CisgICAgICAgICAgICBib29sZWFuIG5vblplcm9WYWxSZWFjaGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIEkganVzdCBuZWVkIGEgdGVtcG9yYXJ5IHBsYWNlIHRvIHN0b3JlIG15IGdlbmVyYXRlZCBDRXMuCisgICAgICAgICAgICAvLyBpY3U0YyB1c2VzIGEgdW5zaWduZWQgYnl0ZSBhcnJheSwgaSdsbCB1c2UgYSBzdHJpbmdidWZmZXIgaGVyZQorICAgICAgICAgICAgLy8gdG8gYXZvaWQgZGVhbGluZyB3aXRoIHRoZSBzaWduIHByb2JsZW1zIGFuZCBhcnJheSBhbGxvY2F0aW9uCisgICAgICAgICAgICAvLyBjbGVhciBhbmQgc2V0IGluaXRpYWwgc3RyaW5nIGJ1ZmZlciBsZW5ndGgKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0TGVuZ3RoKDMpOworICAgICAgICAKKyAgICAgICAgICAgIC8vIFdlIHBhcnNlIHRoZSBzb3VyY2Ugc3RyaW5nIHVudGlsIHdlIGhpdCBhIGNoYXIgdGhhdCdzIE5PVCBhIAorICAgICAgICAgICAgLy8gZGlnaXQuCisgICAgICAgICAgICAvLyBVc2UgdGhpcyB1X2NoYXJEaWdpdFZhbHVlLiBUaGlzIG1pZ2h0IGJlIHNsb3cgYmVjYXVzZSB3ZSBoYXZlIAorICAgICAgICAgICAgLy8gdG8gaGFuZGxlIHN1cnJvZ2F0ZXMuLi4KKyAgICAgICAgICAgIGludCBkaWdWYWwgPSBVQ2hhcmFjdGVyLmRpZ2l0KGNwKTsgCisgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGFycml2ZWQgaGVyZSwgd2UgaGF2ZSBhbHJlYWR5IHByb2Nlc3NlZCBwb3NzaWJsZSAKKyAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcmllcyB0aGF0IHRyaWdlcmVkIHRoZSBkaWdpdCB0YWcgLQorICAgICAgICAgICAgLy8gYWxsIHN1cHBsZW1lbnRhcmllcyBhcmUgbWFya2VkIGluIHRoZSBVQ0EuCisgICAgICAgICAgICAvLyBXZSAgcGFkIGEgemVybyBpbiBmcm9udCBvZiB0aGUgZmlyc3QgZWxlbWVudCBhbnl3YXlzLiAKKyAgICAgICAgICAgIC8vIFRoaXMgdGFrZXMgY2FyZSBvZiB0aGUgKHByb2JhYmx5KSBtb3N0IGNvbW1vbiBjYXNlIHdoZXJlIAorICAgICAgICAgICAgLy8gcGVvcGxlIGFyZSBzb3J0aW5nIHRoaW5ncyBmb2xsb3dlZCBieSBhIHNpbmdsZSBkaWdpdAorICAgICAgICAgICAgaW50IGRpZ0luZHggPSAxOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCA+PSAoKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgLSAyKSA8PCAxKSkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldExlbmd0aChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gU2tpcHBpbmcgb3ZlciBsZWFkaW5nIHplcm9lcy4gICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkaWdWYWwgIT0gMCB8fCBub25aZXJvVmFsUmVhY2hlZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnVmFsICE9IDAgJiYgIW5vblplcm9WYWxSZWFjaGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBub25aZXJvVmFsUmVhY2hlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIHBhcnNlIHRoZSBkaWdpdCBzdHJpbmcgaW50byBiYXNlIDEwMCBudW1iZXJzIAorICAgICAgICAgICAgICAgICAgICAvLyAodGhpcyBmaXRzIGludG8gYSBieXRlKS4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBhZGQgdG8gdGhlIGJ1ZmZlciBpbiB0d29zLCB0aHVzIGlmIHdlIGFyZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gcGFyc2luZyBhbiBvZGQgY2hhcmFjdGVyLCB0aGF0IHNlcnZlcyBhcyB0aGUgCisgICAgICAgICAgICAgICAgICAgIC8vICd0ZW5zJyBkaWdpdCB3aGlsZSB0aGUgaWYgd2UgYXJlIHBhcnNpbmcgYW4gZXZlbiAKKyAgICAgICAgICAgICAgICAgICAgLy8gb25lLCB0aGF0IGlzIHRoZSAnb25lcycgZGlnaXQuIFdlIGR1bXBlZCB0aGUgCisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnNlZCBiYXNlIDEwMCB2YWx1ZSAoY29sbGF0ZVZhbCkgaW50byBhIGJ1ZmZlci4gCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG11bHRpcGx5IGVhY2ggY29sbGF0ZVZhbCBieSAyICh0byBnaXZlIHVzIHJvb20pIAorICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWRkIDUgKHRvIGF2b2lkIG92ZXJsYXBwaW5nIG1hZ2ljIENFIGJ5dGUgCisgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlcykuIFRoZSBsYXN0IGJ5dGUgd2Ugc3VidHJhY3QgMSB0byBlbnN1cmUgaXQgaXMgCisgICAgICAgICAgICAgICAgICAgIC8vIGxlc3MgdGhhbiBhbGwgdGhlIG90aGVyIGJ5dGVzLgorICAgICAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCAlIDIgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCArPSBkaWdWYWw7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcmVtb3ZlcyB0cmFpbGluZyB6ZXJvZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIHRyYWlsaW5nWmVyb0luZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ1plcm9JbmRleCA9ICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0cmFpbGluZ1plcm9JbmRleCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmdaZXJvSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdGVWYWwgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZHJvcCB0aGUgY29sbGF0aW9uIHZhbHVlIGludG8gdGhlIGJ1ZmZlciBzbyBpZiAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZG8gYSAiZnJvbnQgcGF0Y2giIHdlIGRvbid0IGhhdmUgdG8gCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayB0byBzZWUgaWYgd2UncmUgaGl0dGluZyB0aGUgbGFzdCBlbGVtZW50LgorICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCA9IGRpZ1ZhbCAqIDEwOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoKGRpZ0luZHggPj4+IDEpICsgMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoKGNvbGxhdGVWYWwgPDwgMSkgKyA2KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGlnSW5keCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBHZXQgbmV4dCBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgaWYgKCFpc0VuZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgIGludCBjaGFyMzIgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gKGNoYXIpY2hhcjMyOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gKGNoYXIpbmV4dENoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyMzIgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvQmFja09uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZGlnVmFsID0gVUNoYXJhY3Rlci5kaWdpdChjaGFyMzIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnVmFsID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNldHRpbmcgcG9zaXRpb24gdG8gcG9pbnQgdG8gdGhlIG5leHQgdW5wcm9jZXNzZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyLiBXZSBvdmVyc2hvdCBpdCB3aGVuIGRvaW5nIG91ciB0ZXN0L3NldCBmb3IgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBudW1iZXJzLgorICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAobm9uWmVyb1ZhbFJlYWNoZWQgPT0gZmFsc2UpeworICAgICAgICAgICAgICAgIGRpZ0luZHggPSAyOworICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KDIsIChjaGFyKTYpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBlbmRJbmRleCA9IHRyYWlsaW5nWmVyb0luZGV4ICE9IDAgPyB0cmFpbGluZ1plcm9JbmRleCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGRpZ0luZHggPj4+IDEpICsgMjsgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyICE9IDApeworICAgICAgICAgICAgICAgIC8vIFdlIG1pc3NlZCBhIHZhbHVlLiBTaW5jZSBkaWdJbmR4IGlzbid0IGV2ZW4sIHN0dWNrIHRvbyBtYW55IAorICAgICAgICAgICAgICAgIC8vIHZhbHVlcyBpbnRvIHRoZSBidWZmZXIgKHRoaXMgaXMgd2hhdCB3ZSBnZXQgZm9yIHBhZGRpbmcgdGhlIAorICAgICAgICAgICAgICAgIC8vIGZpcnN0IGJ5dGUgd2l0aCBhIHplcm8pLiAiRnJvbnQtcGF0Y2giIG5vdyBieSBwdXNoaW5nIGFsbCAKKyAgICAgICAgICAgICAgICAvLyBueWJibGVzIGZvcndhcmQuCisgICAgICAgICAgICAgICAgLy8gRG9pbmcgaXQgdGhpcyB3YXkgZW5zdXJlcyB0aGF0IGF0IGxlYXN0IDUwJSBvZiB0aGUgdGltZSAKKyAgICAgICAgICAgICAgICAvLyAoc3RhdGlzdGljYWxseSBzcGVha2luZykgd2UnbGwgb25seSBiZSBkb2luZyBhIHNpbmdsZSBwYXNzIAorICAgICAgICAgICAgICAgIC8vIGFuZCBvcHRpbWl6ZXMgZm9yIHN0cmluZ3Mgd2l0aCBzaW5nbGUgZGlnaXRzLiBJJ20ganVzdCAKKyAgICAgICAgICAgICAgICAvLyBhc3N1bWluZyB0aGF0J3MgdGhlIG1vcmUgY29tbW9uIGNhc2UuCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBlbmRJbmRleDsgaSArKyl7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KGksIAorICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKCgoKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSkgLSA2KSA+Pj4gMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAxMCkgKiAxMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICgoKG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KGkgKyAxKSAtIDYpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMSkgLyAxMCkgPDwgMSkgKyA2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC0tIGRpZ0luZHg7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLy8gU3VidHJhY3Qgb25lIG9mZiBvZiB0aGUgbGFzdCBieXRlLiAKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KGVuZEluZGV4IC0gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KGVuZEluZGV4IC0gMSkgLSAxKSk7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNraXAgb3ZlciB0aGUgZmlyc3QgdHdvIHNsb3RzIGluIHRoZSBidWZmZXIuIAorICAgICAgICAgICAgLy8gVGhlIGZpcnN0IHNsb3QgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBoZWFkZXIgYnl0ZSBDT0RBTl9QTEFDRUhPTERFUi4gCisgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHNsb3QgaXMgZm9yIHRoZSBzaWduL2V4cG9uZW50IGJ5dGU6IAorICAgICAgICAgICAgLy8gMHg4MCArIChkZWNpbWFsUG9zLzIpICYgN2YuCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgwLCAoY2hhcilSdWxlQmFzZWRDb2xsYXRvci5DT0RBTl9QTEFDRUhPTERFUik7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoMHg4MCArICgoZGlnSW5keCA+Pj4gMSkgJiAweDdGKSkpOworICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdyB0cmFuc2ZlciB0aGUgY29sbGF0aW9uIGtleSB0byBvdXIgY29sbEl0ZXJhdGUgc3RydWN0LgorICAgICAgICAgICAgLy8gVGhlIHRvdGFsIHNpemUgZm9yIG91ciBjb2xsYXRpb24ga2V5IGlzIGVuZEluZHggYnVtcGVkIHVwIHRvIHRoZSBuZXh0IGxhcmdlc3QgZXZlbiB2YWx1ZSBkaXZpZGVkIGJ5IHR3by4KKyAgICAgICAgICAgIGNlID0gKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMCkgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJpbWFyeSB3ZWlnaHQgCisgICAgICAgICAgICAgICAgICAgICAgIHwgbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMSkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgIC8vICBTZWNvbmRhcnkgd2VpZ2h0IAorICAgICAgICAgICAgICAgICAgICAgICB8IChSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXzsgLy8gVGVydGlhcnkgd2VpZ2h0LgorICAgICAgICAgICAgaW50IGkgPSAyOyAvLyBSZXNldCB0aGUgaW5kZXggaW50byB0aGUgYnVmZmVyLgorICAgICAgICAgICAgCisgICAgICAgICAgICBtX0NFQnVmZmVyX1swXSA9IGNlOworICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMTsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgZW5kSW5kZXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHByaW1XZWlnaHQgPSBtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdChpICsrKSA8PCA4OworICAgICAgICAgICAgICAgIGlmIChpIDwgZW5kSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbVdlaWdodCB8PSBtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdChpICsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgPSAocHJpbVdlaWdodCA8PCBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX1NISUZUXykgCisgICAgICAgICAgICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgfSAKKyAgICAgICAgCisgICAgICAgIC8vIG5vIG51bWVyaWMgbW9kZSwgd2UnbGwganVzdCBzd2l0Y2ggdG8gd2hhdGV2ZXIgd2Ugc3Rhc2hlZCBhbmQgCisgICAgICAgIC8vIGNvbnRpbnVlCisgICAgICAgIC8vIGZpbmQgdGhlIG9mZnNldCB0byBleHBhbnNpb24gdGFibGUKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKV07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBpbXBsaWNpdCBjZSBmb3IgY29kZXBvaW50cworICAgICAqIEBwYXJhbSBjb2RlcG9pbnQgY3VycmVudCBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIGltcGxpY2l0IGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dEltcGxpY2l0KGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZWdhbChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAvLyBzeW53ZWUgdG8gY2hlY2sgd2l0aCB2bGFkaW1pciBvbiB0aGUgcmFuZ2Ugb2YgaXNOb25DaGFyKCkKKyAgICAgICAgICAgIC8vIGlsbGVnYWwgY29kZSB2YWx1ZSwgdXNlIGNvbXBsZXRlbHkgaWdub3JlYWJsZSEKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21Db2RlUG9pbnQoY29kZXBvaW50KTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMF0gPSAocmVzdWx0ICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICB8IDB4MDAwMDA1MDU7CisgICAgICAgIG1fQ0VCdWZmZXJfWzFdID0gKChyZXN1bHQgJiAweDAwMDBGRkZGKSA8PCAxNikgfCAweDAwMDAwMEMwOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRTdXJyb2dhdGUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICBjaGFyIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgaWYgKGNoX2ludCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmCisgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKG5leHRjaCkpIHsKKyAgICAgICAgICAgIGludCBjb2RlcG9pbnQgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjaCwgbmV4dGNoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmV4dGNoICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHByZXZpb3VzQ2hhcigpOyAvLyByZXZlcnRzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBvc2l0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gY29tcGxldGVseSBpZ25vcmFibGUKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNlIGZvciBhIGhhbmd1bCBjaGFyYWN0ZXIsIHRoaXMgaXMgYW4gaW1wbGljaXQKKyAgICAgKiBjYWxjdWxhdGlvbgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBoYW5ndWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0SGFuZ3VsKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgY2hhciBMID0gKGNoYXIpKGNoIC0gSEFOR1VMX1NCQVNFXyk7CisKKyAgICAgICAgLy8gZGl2aWRlIGludG8gcGllY2VzCisgICAgICAgIC8vIGRvIGl0IGluIHRoaXMgb3JkZXIgc2luY2Ugc29tZSBjb21waWxlcnMgY2FuIGRvICUgYW5kIC8gaW4gb25lCisgICAgICAgIC8vIG9wZXJhdGlvbgorICAgICAgICBjaGFyIFQgPSAoY2hhcikoTCAlIEhBTkdVTF9UQ09VTlRfKTsKKyAgICAgICAgTCAvPSBIQU5HVUxfVENPVU5UXzsKKyAgICAgICAgY2hhciBWID0gKGNoYXIpKEwgJSBIQU5HVUxfVkNPVU5UXyk7CisgICAgICAgIEwgLz0gSEFOR1VMX1ZDT1VOVF87CisKKyAgICAgICAgLy8gb2Zmc2V0IHRoZW0KKyAgICAgICAgTCArPSBIQU5HVUxfTEJBU0VfOworICAgICAgICBWICs9IEhBTkdVTF9WQkFTRV87CisgICAgICAgIFQgKz0gSEFOR1VMX1RCQVNFXzsKKworICAgICAgICAvLyByZXR1cm4gdGhlIGZpcnN0IENFLCBidXQgZmlyc3QgcHV0IHRoZSByZXN0IGludG8gdGhlIGV4cGFuc2lvbgorICAgICAgICAvLyBidWZmZXIKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaWYgKCFjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKSB7IC8vIEZBU1QgUEFUSAorICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9CisgICAgICAgICAgICAgICAgY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUoTCk7CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShWKTsKKworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIEphbW8gaXMgU3BlY2lhbAorICAgICAgICAgICAgLy8gU2luY2UgSGFuZ3VscyBwYXNzIHRoZSBGQ0QgY2hlY2ssIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCB3ZQorICAgICAgICAgICAgLy8gd29uJ3QgYmUgaW4gdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyIGlmIHNvbWV0aGluZyBsaWtlIHRoaXMKKyAgICAgICAgICAgIC8vIGhhcHBlbnMKKyAgICAgICAgICAgIC8vIE1vdmUgSmFtb3MgaW50byBub3JtYWxpemF0aW9uIGJ1ZmZlcgorICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZCgoY2hhcilMKTsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoKGNoYXIpVik7CisgICAgICAgICAgICBpZiAoVCAhPSBIQU5HVUxfVEJBU0VfKSB7CisgICAgICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZCgoY2hhcilUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fRkNETGltaXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fRkNETGltaXRfIC0gMTsKKyAgICAgICAgICAgIC8vIEluZGljYXRlIHdoZXJlIHRvIGNvbnRpbnVlIGluIG1haW4gaW5wdXQgc3RyaW5nIGFmdGVyCisgICAgICAgICAgICAvLyBleGhhdXN0aW5nIHRoZSBidWZmZXIKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TcGVjaWFsIENFIG1hbmFnZW1lbnQuIEV4cGFuc2lvbnMsIGNvbnRyYWN0aW9ucyBldGMuLi48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNhbiBiZSBwbGFpbiBVQ0EKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gbmV4dCBzcGVjaWFsIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFNwZWNpYWwoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBjb2RlcG9pbnQgPSBjaDsKKyAgICAgICAgQmFja3VwIGVudHJ5YmFja3VwID0gbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXzsKKyAgICAgICAgLy8gdGhpcyBpcyB0byBoYW5kbGUgcmVjdXJzaXZlIGxvb3BpbmcKKyAgICAgICAgaWYgKGVudHJ5YmFja3VwICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1fdXRpbFNwZWNpYWxFbnRyeUJhY2tVcF8gPSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW50cnliYWNrdXAgPSBuZXcgQmFja3VwKCk7CisgICAgICAgIH0KKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShlbnRyeWJhY2t1cCk7CisgICAgICAgIHRyeSB7IC8vIGZvcmNlcyBpdCB0byBhc3NpZ24gbV91dGlsU3BlY2lhbEVudHJ5QmFja3VwXworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGxvb3Agd2lsbCByZXBlYXQgb25seSBpbiB0aGUgY2FzZSBvZiBjb250cmFjdGlvbnMsCisgICAgICAgICAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgc3dpdGNoKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENFX05PVF9GT1VORF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAvLyBpbXBvc3NpYmxlIGNhc2UgZm9yIGljdTRqCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NVUlJPR0FURV9UQUdfOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IChjaGFyKW5leHRDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dFN1cnJvZ2F0ZShjb2xsYXRvciwgY2UsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHN1cnJvZ2F0ZSB3YXMgbm90IHRhaWxvcmVkIHdlIGdvIG9uZSBtb3JlIHJvdW5kCisgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9CisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX1NQRUNfUFJPQ19UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHRTcGVjaWFsUHJlZml4KGNvbGxhdG9yLCBjZSwgZW50cnliYWNrdXApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dENvbnRyYWN0aW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfTE9OR19QUklNQVJZX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TG9uZ1ByaW1hcnkoY2UpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfRVhQQU5TSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0RXhwYW5zaW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9ESUdJVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHREaWdpdChjb2xsYXRvciwgY2UsIGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyB2YXJpb3VzIGltcGxpY2l0cyBvcHRpbWl6YXRpb24KKyAgICAgICAgICAgICAgICBjYXNlIENFX0NKS19JTVBMSUNJVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAvLyAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0lNUExJQ0lUX1RBR186IC8vIGV2ZXJ5dGhpbmcgdGhhdCBpcyBub3QgZGVmaW5lZAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dEltcGxpY2l0KGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9UUkFJTF9TVVJST0dBVEVfVEFHXzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gREMwMC1ERkZGIGJyb2tlbiBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBjYXNlIENFX0xFQURfU1VSUk9HQVRFX1RBR186ICAvLyBEODAwLURCRkYKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfSEFOR1VMX1NZTExBQkxFX1RBR186IC8vIEFDMDAtRDdBRgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dEhhbmd1bChjb2xsYXRvciwgY2gpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfQ0hBUlNFVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IHlldCBpbXBsZW1lbnRlZCBwcm9iYWJseSBhZnRlciAxLjgKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgY2UgPSBJR05PUkFCTEU7CisgICAgICAgICAgICAgICAgICAgIC8vIHN5bndlZSB0b2RvLCB0aHJvdyBleGNlcHRpb24gb3Igc29tZXRoaW5nIGhlcmUuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXyA9IGVudHJ5YmFja3VwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIHByb2Nlc3NpbmcgaXMgZ2V0dGluZyBhIENFIHRoYXQgaXMgcHJlY2VkZWQgYnkgYSBjZXJ0YWluIHByZWZpeC4KKyAgICAgKiBDdXJyZW50bHkgdGhpcyBpcyBvbmx5IG5lZWRlZCBmb3Igb3B0aW1pemluZyBKYXBhbmVzZSBsZW5ndGggYW5kCisgICAgICogaXRlcmF0aW9uIG1hcmtzLiBXaGVuIHdlIGVuY291dGVyIGEgc3BlY2lhbCBwcm9jZXNzaW5nIHRhZywgd2UgZ28KKyAgICAgKiBiYWNrd2FyZHMgYW5kIHRyeSB0byBzZWUgaWYgd2UgaGF2ZSBhIG1hdGNoLiBDb250cmFjdGlvbiB0YWJsZXMgYXJlIHVzZWQKKyAgICAgKiAtIHNvIHRoZSB3aG9sZSBwcm9jZXNzIGlzIG5vdCB1bmxpa2UgY29udHJhY3Rpb24uIHByZWZpeCBkYXRhIGlzIHN0b3JlZAorICAgICAqIGJhY2t3YXJkcyBpbiB0aGUgdGFibGUuCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEByZXR1cm4gcHJldmlvdXMgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c1NwZWNpYWxQcmVmaXgoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSkKKyAgICB7CisgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gcG9zaXRpb24gb3Vyc2VsdmVzIGF0IHRoZSBiZWdpbmluZyBvZiBjb250cmFjdGlvbiBzZXF1ZW5jZQorICAgICAgICAgICAgaW50IG9mZnNldCA9IGdldENvbnRyYWN0aW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBpbnQgZW50cnlvZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHByZXZjaCA9IChjaGFyKXByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgd2hpbGUgKHByZXZjaCA+IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIHNpbmNlIGNvbnRyYWN0aW9uIGNvZGVwb2ludHMgYXJlIG9yZGVyZWQsIHdlIHNraXAgYWxsIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBhcmUgc21hbGxlcgorICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcmV2Y2ggPT0gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIGNvbXBsZXRlbHkgaWdub3JhYmxlIGNvZGUgcG9pbnQgaW4gdGhlIG1pZGRsZQorICAgICAgICAgICAgICAgIC8vIG9mIGEgcHJlZml4LCB3ZSBuZWVkIHRvIGFjdCBhcyBpZiBpdCdzIG5vdCB0aGVyZSBhc3N1bXB0aW9uOgorICAgICAgICAgICAgICAgIC8vICdyZWFsJyBub25jaGFyYWN0ZXJzICgqZmZmZSwgKmZmZmYsIGZkZDAtZmRlZiBhcmUgc2V0IHRvCisgICAgICAgICAgICAgICAgLy8gemVybykKKyAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZXMgY2Fubm90IGJlIHNldCB0byB6ZXJvIGFzIGl0IHdvdWxkIGJyZWFrCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgcHJvY2Vzc2luZworICAgICAgICAgICAgICAgIGludCBpc1plcm9DRSA9IGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKHByZXZjaCk7CisgICAgICAgICAgICAgICAgLy8gaXQncyBlYXN5IGZvciBCTVAgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICBpZiAoaXNaZXJvQ0UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShwcmV2Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgfHwgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHByZXZjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlIG5leHQgb25lCisgICAgICAgICAgICAgICAgICAgIC8vIHNpdHVhdGlvbnMgd2hlcmUgd2UgYXJlIGdvaW5nIHRvIGlnbm9yZQorICAgICAgICAgICAgICAgICAgICAvLyAxLiBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZzogc2NoYXIgaXMgYSBsb25lIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAgICAvLyAyLiBzY2hhciBpcyBhIGxvbmUgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIDMuIHNjaGFyIGlzIGEgdHJhaWwgc3Vycm9nYXRlIGluIGEgdmFsaWQgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICAgIC8vICAgIHNlcXVlbmNlIHRoYXQgaXMgZXhwbGljaXRseSBzZXQgdG8gemVyby4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbGVhZCA9IChjaGFyKXByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWmVyb0NFID0gY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUobGVhZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhpc1plcm9DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1VSUk9HQVRFX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpbmFsQ0UgPSBjb2xsYXRvci5tX3RyaWVfLmdldFRyYWlsVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNaZXJvQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmFsQ0UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHJlYWwsIGFzc2lnbmVkIGNvbXBsZXRlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yYWJsZSBjb2RlIHBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyKCk7IC8vIHJldmVydCB0byBvcmlnaW5hbCBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSwgY29tcGxldGVseSBpZ25vcmFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyKCk7IC8vIHJldmVydCB0byBvcmlnaW5hbCBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSBhdCB0aGUgYmVnZ2luaW5nLCBjb21wbGV0ZWx5IGlnbm9yYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gY2hhciB3YXMgbm90IGluIHRoZSB0YWJsZS4gcHJlZml4IG5vdCBmb3VuZAorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghaXNTcGVjaWFsUHJlZml4VGFnKGNlKSkgeworICAgICAgICAgICAgICAgIC8vIGNoYXIgd2FzIGluIHRoZSBjb250cmFjdGlvbiB0YWJsZSwgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGNlCisgICAgICAgICAgICAgICAgLy8gaXMgbm90IGEgcHJlZml4IGNlLiAgV2UgZm91bmQgdGhlIHByZWZpeCwgYnJlYWsgb3V0IG9mIGxvb3AsCisgICAgICAgICAgICAgICAgLy8gdGhpcyBjZSB3aWxsIGVuZCB1cCBiZWluZyByZXR1cm5lZC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgcmV0dXJuIGNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgcHJldmlvdXMgY29udHJhY3Rpb24gY2UuIFRvIGVuc3VyZSB0aGF0IHRoZSBiYWNrd2FyZHMgYW5kCisgICAgICogZm9yd2FyZHMgaXRlcmF0aW9uIG1hdGNoZXMsIHdlIHRha2UgdGhlIGN1cnJlbnQgcmVnaW9uIG9mIG1vc3QgcG9zc2libGUKKyAgICAgKiBtYXRjaCBhbmQgcGFzcyBpdCB0aHJvdWdoIHRoZSBmb3J3YXJkIGl0ZXJhdGlvbi4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0CisgICAgICogdGhlIG9ic3RpbmF0ZSBwcm9ibGVtIG9mIG92ZXJsYXBwaW5nIGNvbnRyYWN0aW9ucyB3aWxsIG5vdCBvY2N1ci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBjb250cmFjdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzQ29udHJhY3Rpb24oUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICAvLyBzaW5jZSB3ZSBtaWdodCBlbmNvdW50ZXIgbm9ybWFsaXplZCBjaGFyYWN0ZXJzIChmcm9tIHRoZSB0aGFpCisgICAgICAgIC8vIHByb2Nlc3NpbmcpIHdlIGNhbid0IHVzZSBwZWVrQ2hhcmFjdGVyKCkgaGVyZS4KKyAgICAgICAgY2hhciBwcmV2Y2ggPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgYm9vbGVhbiBhdFN0YXJ0ID0gZmFsc2U7CisgICAgICAgIC8vIFRPRE86IGFkZHJlc3MgdGhlIGNvbW1lbnQgYWJvdmUgLSBtYXliZSBub3cgd2UgKmNhbiogdXNlIHBlZWtDaGFyYWN0ZXIKKyAgICAgICAgLy93aGlsZSAoY29sbGF0b3IuaXNVbnNhZmUoY2gpIHx8IGlzVGhhaVByZVZvd2VsKHByZXZjaCkpIHsKKyAgICAgICAgd2hpbGUgKGNvbGxhdG9yLmlzVW5zYWZlKGNoKSkgeworICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5pbnNlcnQoMCwgY2gpOworICAgICAgICAgICAgY2ggPSBwcmV2Y2g7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgYXRTdGFydCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmV2Y2ggPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWF0U3RhcnQpIHsKKyAgICAgICAgICAgIC8vIHVuZG8gdGhlIHByZXZpb3VzQ2hhcigpIGlmIHdlIGRpZG4ndCByZWFjaCB0aGUgYmVnaW5uaW5nIAorICAgICAgICAgICAgbmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhZGRzIHRoZSBpbml0aWFsIGJhc2UgY2hhcmFjdGVyIHRvIHRoZSBzdHJpbmcKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5pbnNlcnQoMCwgY2gpOworCisgICAgICAgIC8vIGEgbmV3IGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGlzIHVzZWQgdG8gc2ltcGx5IHRoaW5ncywgc2luY2UKKyAgICAgICAgLy8gdXNpbmcgdGhlIGN1cnJlbnQgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3Igd2lsbCBtZWFuIHRoYXQgdGhlCisgICAgICAgIC8vIGZvcndhcmQgYW5kIGJhY2t3YXJkcyBpdGVyYXRpb24gd2lsbCBzaGFyZSBhbmQgY2hhbmdlIHRoZSBzYW1lCisgICAgICAgIC8vIGJ1ZmZlcnMuIGl0IGlzIGdvaW5nIHRvIGJlIHBhaW5mdWwuCisgICAgICAgIGludCBvcmlnaW5hbGRlY29tcCA9IGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKTsKKyAgICAgICAgLy8gZm9yIGZhc3RlciBhY2Nlc3MsIHNpbmNlIHN0cmluZyB3b3VsZCBoYXZlIGJlZW4gbm9ybWFsaXplZCBhYm92ZQorICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpZiAobV91dGlsQ29sRUl0ZXJfID09IG51bGwpIHsKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8ubV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fdXRpbFN0cmluZ0J1ZmZlcl8udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICB3aGlsZSAoY2UgIT0gTlVMTE9SREVSKSB7CisgICAgICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID09IG1fQ0VCdWZmZXJfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGluY3JlYXNpbmcgY2VidWZmZXIgc2l6ZQorICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcGJ1ZmZlcltdID0gbmV3IGludFttX0NFQnVmZmVyXy5sZW5ndGggKyA1MF07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9DRUJ1ZmZlcl8sIDAsIHRlbXBidWZmZXIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8ubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8gPSB0ZW1wYnVmZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCggTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoREVCVUcpeworICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTE9SREVSOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPSBjZTsKKyAgICAgICAgICAgIGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKG9yaWdpbmFsZGVjb21wKTsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGxvbmcgcHJpbWFyeSBjZXMKKyAgICAgKiBAcGFyYW0gY2UgbG9uZyBwcmltYXJ5IGNlCisgICAgICogQHJldHVybiBwcmV2aW91cyBsb25nIHByaW1hcnkgY2VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNMb25nUHJpbWFyeShpbnQgY2UpCisgICAgeworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICgoY2UgJiAweEZGRkYwMCkgPDwgOCkgfCAoQ0VfQllURV9DT01NT05fIDw8IDgpIHwgQ0VfQllURV9DT01NT05fOworICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0gKChjZSAmIDB4RkYpIDw8IDI0KQorICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGV4cGFuc2lvbiBjZXMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBwcmV2aW91cyBleHBhbnNpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0V4cGFuc2lvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gZmluZCB0aGUgb2Zmc2V0IHRvIGV4cGFuc2lvbiB0YWJsZQorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0RXhwYW5zaW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IGdldEV4cGFuc2lvbkNvdW50KGNlKTsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyAhPSAwKSB7CisgICAgICAgICAgICAvLyBsZXNzIHRoYW4gMTYgZWxlbWVudHMgaW4gZXhwYW5zaW9uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fQ0VCdWZmZXJTaXplXzsgaSArKykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW2ldID0gY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIGldOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBudWxsIHRlcm1pbmF0ZWQgY2VzCisgICAgICAgICAgICB3aGlsZSAoY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIG1fQ0VCdWZmZXJTaXplX10gIT0gMCkgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplX10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbl9bb2Zmc2V0ICsgbV9DRUJ1ZmZlclNpemVfXTsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIHRoZSBkaWdpdCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIGRpZ2l0IGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNEaWdpdChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgLy8gV2UgZG8gYSBjaGVjayB0byBzZWUgaWYgd2Ugd2FudCB0byBjb2xsYXRlIGRpZ2l0cyBhcyBudW1iZXJzOyBpZiBzbyB3ZSBnZW5lcmF0ZQorICAgICAgICAvLyAgYSBjdXN0b20gY29sbGF0aW9uIGtleS4gT3RoZXJ3aXNlIHdlIHB1bGwgb3V0IHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGV4cGFuc2lvbiB0YWJsZS4KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1faXNOdW1lcmljQ29sbGF0aW9uXyl7CisgICAgICAgICAgICBpbnQgbGVhZGluZ1plcm9JbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgY29sbGF0ZVZhbCA9IDA7CisgICAgICAgICAgICBib29sZWFuIG5vblplcm9WYWxSZWFjaGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIGNsZWFyIGFuZCBzZXQgaW5pdGlhbCBzdHJpbmcgYnVmZmVyIGxlbmd0aAorICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRMZW5ndGgoMyk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gV2UgcGFyc2UgdGhlIHNvdXJjZSBzdHJpbmcgdW50aWwgd2UgaGl0IGEgY2hhciB0aGF0J3MgTk9UIGEgZGlnaXQKKyAgICAgICAgICAgIC8vIFVzZSB0aGlzIHVfY2hhckRpZ2l0VmFsdWUuIFRoaXMgbWlnaHQgYmUgc2xvdyBiZWNhdXNlIHdlIGhhdmUgdG8gCisgICAgICAgICAgICAvLyBoYW5kbGUgc3Vycm9nYXRlcy4uLgorICAgICAgICAgICAgaW50IGNoYXIzMiA9IGNoOworICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpeworICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhcjMyID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnb0ZvcndhcmRPbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBpbnQgZGlnVmFsID0gVUNoYXJhY3Rlci5kaWdpdChjaGFyMzIpOworICAgICAgICAgICAgaW50IGRpZ0luZHggPSAwOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCA+PSAoKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgLSAyKSA8PCAxKSkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldExlbmd0aChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gU2tpcHBpbmcgb3ZlciAidHJhaWxpbmciIHplcm9lcyBidXQgd2Ugc3RpbGwgYWRkIHRvIGRpZ0luZHguCisgICAgICAgICAgICAgICAgaWYgKGRpZ1ZhbCAhPSAwIHx8IG5vblplcm9WYWxSZWFjaGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdWYWwgIT0gMCAmJiAhbm9uWmVyb1ZhbFJlYWNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vblplcm9WYWxSZWFjaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBXZSBwYXJzZSB0aGUgZGlnaXQgc3RyaW5nIGludG8gYmFzZSAxMDAgbnVtYmVycyAodGhpcyAKKyAgICAgICAgICAgICAgICAgICAgLy8gZml0cyBpbnRvIGEgYnl0ZSkuCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkgYWRkIHRvIHRoZSBidWZmZXIgaW4gdHdvcywgdGh1cyBpZiB3ZSBhcmUgCisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnNpbmcgYW4gb2RkIGNoYXJhY3RlciwgdGhhdCBzZXJ2ZXMgYXMgdGhlICd0ZW5zJyAKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlnaXQgd2hpbGUgdGhlIGlmIHdlIGFyZSBwYXJzaW5nIGFuIGV2ZW4gb25lLCB0aGF0IGlzIAorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgJ29uZXMnIGRpZ2l0LiBXZSBkdW1wZWQgdGhlIHBhcnNlZCBiYXNlIDEwMCB2YWx1ZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gKGNvbGxhdGVWYWwpIGludG8gYSBidWZmZXIuIFdlIG11bHRpcGx5IGVhY2ggY29sbGF0ZVZhbCAKKyAgICAgICAgICAgICAgICAgICAgLy8gYnkgMiAodG8gZ2l2ZSB1cyByb29tKSBhbmQgYWRkIDUgKHRvIGF2b2lkIG92ZXJsYXBwaW5nIAorICAgICAgICAgICAgICAgICAgICAvLyBtYWdpYyBDRSBieXRlIHZhbHVlcykuIFRoZSBsYXN0IGJ5dGUgd2Ugc3VidHJhY3QgMSB0byAKKyAgICAgICAgICAgICAgICAgICAgLy8gZW5zdXJlIGl0IGlzIGxlc3MgdGhhbiBhbGwgdGhlIG90aGVyIGJ5dGVzLiAKKyAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2UncmUgZG9pbmcgaW4gdGhpcyByZXZlcnNlIHdlIHdhbnQgdG8gcHV0IHRoZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgZGlnaXQgZW5jb3VudGVyZWQgaW50byB0aGUgb25lcyBwbGFjZSBhbmQgdGhlIAorICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmQgZGlnaXQgZW5jb3VudGVyZWQgaW50byB0aGUgdGVucyBwbGFjZS4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyID09IDEpeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCArPSBkaWdWYWwgKiAxMDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlbW92ZXMgbGVhZGluZyB6ZXJvZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIGxlYWRpbmdaZXJvSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ1plcm9JbmRleCA9ICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChsZWFkaW5nWmVyb0luZGV4ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nWmVyb0luZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgoKGRpZ0luZHggLSAxKSA+Pj4gMSkgKyAyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdGVWYWwgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCA9IGRpZ1ZhbDsgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGlnSW5keCArKzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghaXNCYWNrd2FyZHNTdGFydCgpKXsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgIGNoYXIzMiA9IHByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgICAgICAgICBjaCA9IChjaGFyKWNoOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIzMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRpZ1ZhbCA9IFVDaGFyYWN0ZXIuZGlnaXQoY2hhcjMyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ1ZhbCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobm9uWmVyb1ZhbFJlYWNoZWQgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICBkaWdJbmR4ID0gMjsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgyLCAoY2hhcik2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIGxlYWRpbmdaZXJvSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIGxlYWRpbmcgMCBpbiBhIG9kZCBudW1iZXIgc2VxdWVuY2Ugb2YgCisgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlcnMgZS5nLiBhdmVyeTAwMQorICAgICAgICAgICAgICAgICAgICBsZWFkaW5nWmVyb0luZGV4ID0gKChkaWdJbmR4IC0gMSkgPj4+IDEpICsgMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IGEgbGVhZGluZyAwLCB3ZSBhZGQgaXQgaW4KKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoKGRpZ0luZHggPj4+IDEpICsgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgZGlnSW5keCArKzsgCisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgZW5kSW5kZXggPSBsZWFkaW5nWmVyb0luZGV4ICE9IDAgPyBsZWFkaW5nWmVyb0luZGV4IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoZGlnSW5keCA+Pj4gMSkgKyAyKSA7ICAKKyAgICAgICAgICAgIGRpZ0luZHggPSAoKGVuZEluZGV4IC0gMikgPDwgMSkgKyAxOyAvLyByZW1vdmluZyBpbml0aWFsIHplcm9zICAgICAgICAgCisgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvbmUgb2ZmIG9mIHRoZSBsYXN0IGJ5dGUuIAorICAgICAgICAgICAgLy8gUmVhbGx5IHRoZSBmaXJzdCBieXRlIGhlcmUsIGJ1dCBpdCdzIHJldmVyc2VkLi4uCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdCgyKSAtIDEpKTsgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNraXAgb3ZlciB0aGUgZmlyc3QgdHdvIHNsb3RzIGluIHRoZSBidWZmZXIuIAorICAgICAgICAgICAgLy8gVGhlIGZpcnN0IHNsb3QgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBoZWFkZXIgYnl0ZSBDT0RBTl9QTEFDRUhPTERFUi4gCisgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHNsb3QgaXMgZm9yIHRoZSBzaWduL2V4cG9uZW50IGJ5dGU6IAorICAgICAgICAgICAgLy8gMHg4MCArIChkZWNpbWFsUG9zLzIpICYgN2YuCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgwLCAoY2hhcilSdWxlQmFzZWRDb2xsYXRvci5DT0RBTl9QTEFDRUhPTERFUik7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgweDgwICsgKChkaWdJbmR4ID4+PiAxKSAmIDB4N0YpKSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IHRyYW5zZmVyIHRoZSBjb2xsYXRpb24ga2V5IHRvIG91ciBjb2xsSXRlcmF0ZSBzdHJ1Y3QuCisgICAgICAgICAgICAvLyBUaGUgdG90YWwgc2l6ZSBmb3Igb3VyIGNvbGxhdGlvbiBrZXkgaXMgZW5kSW5keCBidW1wZWQgdXAgdG8gdGhlIAorICAgICAgICAgICAgLy8gbmV4dCBsYXJnZXN0IGV2ZW4gdmFsdWUgZGl2aWRlZCBieSB0d28uCisgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMCkgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmltYXJ5IHdlaWdodCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KDEpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfU0hJRlRfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlY29uZGFyeSB3ZWlnaHQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGVydGlhcnkgd2VpZ2h0LiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXzsgCisgICAgICAgICAgICAgaW50IGkgPSBlbmRJbmRleCAtIDE7IC8vIFJlc2V0IHRoZSBpbmRleCBpbnRvIHRoZSBidWZmZXIuCisgICAgICAgICAgICAgd2hpbGUgKGkgPj0gMikgeworICAgICAgICAgICAgICAgIGludCBwcmltV2VpZ2h0ID0gbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSAtLSkgPDwgODsKKyAgICAgICAgICAgICAgICBpZiAoaSA+PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW1XZWlnaHQgfD0gbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSAtLSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gCisgICAgICAgICAgICAgICAgICAgID0gKHByaW1XZWlnaHQgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gbV9DRUJ1ZmZlclNpemVfIC0gMTsKKyAgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgICAgICAgfQorICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgcmV0dXJuIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKV07CisgICAgICAgICB9CisgICAgfSAKKworICAgIC8qKgorICAgICAqIFJldHVybnMgcHJldmlvdXMgaGFuZ3VsIGNlcworICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBoYW5ndWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0hhbmd1bChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGNoYXIgTCA9IChjaGFyKShjaCAtIEhBTkdVTF9TQkFTRV8pOworICAgICAgICAvLyB3ZSBkbyBpdCBpbiB0aGlzIG9yZGVyIHNpbmNlIHNvbWUgY29tcGlsZXJzIGNhbiBkbyAlIGFuZCAvIGluIG9uZQorICAgICAgICAvLyBvcGVyYXRpb24KKyAgICAgICAgY2hhciBUID0gKGNoYXIpKEwgJSBIQU5HVUxfVENPVU5UXyk7CisgICAgICAgIEwgLz0gSEFOR1VMX1RDT1VOVF87CisgICAgICAgIGNoYXIgViA9IChjaGFyKShMICUgSEFOR1VMX1ZDT1VOVF8pOworICAgICAgICBMIC89IEhBTkdVTF9WQ09VTlRfOworCisgICAgICAgIC8vIG9mZnNldCB0aGVtCisgICAgICAgIEwgKz0gSEFOR1VMX0xCQVNFXzsKKyAgICAgICAgViArPSBIQU5HVUxfVkJBU0VfOworICAgICAgICBUICs9IEhBTkdVTF9UQkFTRV87CisKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaWYgKCFjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKSB7CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShMKTsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKFYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gbV9DRUJ1ZmZlclNpemVfIC0gMTsKKyAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyT2Zmc2V0X107CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBTaW5jZSBIYW5ndWxzIHBhc3MgdGhlIEZDRCBjaGVjaywgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IHdlIHdvbid0CisgICAgICAgICAgICAvLyBiZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIgaWYgc29tZXRoaW5nIGxpa2UgdGhpcyBoYXBwZW5zCisgICAgICAgICAgICAvLyBNb3ZlIEphbW9zIGludG8gbm9ybWFsaXphdGlvbiBidWZmZXIKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoTCk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKFYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoVCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1fRkNEU3RhcnRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fRkNEU3RhcnRfICsgMTsKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGltcGxpY2l0IGNvZGVwb2ludCBjZXMKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHJldHVybiBpbXBsaWNpdCBjb2RlcG9pbnQgY2VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNJbXBsaWNpdChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwoY29kZXBvaW50KSkgeworICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gaWxsZWdhbCBjb2RlIHZhbHVlLCBjb21wbGV0ZWx5IGlnbm9yZWFibGUhCisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21Db2RlUG9pbnQoY29kZXBvaW50KTsKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMjsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAxOworICAgICAgICBtX0NFQnVmZmVyX1swXSA9IChyZXN1bHQgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgIHwgMHgwMDAwMDUwNTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMV0gPSAoKHJlc3VsdCAmIDB4MDAwMEZGRkYpIDw8IDE2KSB8IDB4MDAwMDAwQzA7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1sxXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBwcmV2aW91cyBzdXJyb2dhdGUgY2UKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIHN1cnJvZ2F0ZSBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzU3Vycm9nYXRlKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcsIHdyb25nIHBsYWNlIHRvIGJlIGF0CisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9CisgICAgICAgIGNoYXIgcHJldmNoID0gKGNoYXIpcHJldmlvdXNDaGFyKCk7CisgICAgICAgIC8vIEhhbmRsZXMgSGFuIGFuZCBTdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgaGVyZS4KKyAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShwcmV2Y2gpKSB7CisgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNJbXBsaWNpdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkocHJldmNoLCBjaCkpOworICAgICAgICB9CisgICAgICAgIGlmIChwcmV2Y2ggIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgbmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSUdOT1JBQkxFOyAvLyBjb21wbGV0ZWx5IGlnbm9yYWJsZQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNwZWNpYWwgQ0UgbWFuYWdlbWVudC4gRXhwYW5zaW9ucywgY29udHJhY3Rpb25zIGV0Yy4uLjwvcD4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY2FuIGJlIHBsYWluIFVDQQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBzcGVjaWFsIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNTcGVjaWFsKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UsIGNoYXIgY2gpCisgICAgeworICAgICAgICB3aGlsZSh0cnVlKSB7CisgICAgICAgICAgICAvLyB0aGUgb25seSBjZXMgdGhhdCBsb29wcyBhcmUgdGhhaSwgc3BlY2lhbCBwcmVmaXggYW5kCisgICAgICAgICAgICAvLyBjb250cmFjdGlvbnMKKyAgICAgICAgICAgIHN3aXRjaCAoUnVsZUJhc2VkQ29sbGF0b3IuZ2V0VGFnKGNlKSkgeworICAgICAgICAgICAgY2FzZSBDRV9OT1RfRk9VTkRfVEFHXzogIC8vIHRoaXMgdGFnIGFsd2F5cyByZXR1cm5zCisgICAgICAgICAgICAgICAgcmV0dXJuIGNlOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TVVJST0dBVEVfVEFHXzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNzZW50aWFseSBhIGRpc2VuZ2FnZWQgbGVhZCBzdXJyb2dhdGUuIGEgYnJva2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcXVlbmNlIHdhcyBlbmNvdW50ZXJlZCBhbmQgdGhpcyBpcyBhbiBlcnJvcgorICAgICAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgICAgICBjYXNlIENFX1NQRUNfUFJPQ19UQUdfOgorICAgICAgICAgICAgICAgIGNlID0gcHJldmlvdXNTcGVjaWFsUHJlZml4KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAgICAgLy8gbWF5IGxvb3AgZm9yIGZpcnN0IGNoYXJhY3RlciBlLmcuICIweDBmNzEiIGZvciBlbmdsaXNoCisgICAgICAgICAgICAgICAgaWYgKGlzQmFja3dhcmRzU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBzdGFydCBvZiBzdHJpbmcgb3IgdGhpcyBpcyBub3QgdGhlIGVuZCBvZiBhbnkgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0NvbnRyYWN0aW9uKGNvbGxhdG9yLCBjZSwgY2gpOyAvLyBlbHNlCisgICAgICAgICAgICBjYXNlIENFX0xPTkdfUFJJTUFSWV9UQUdfOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0xvbmdQcmltYXJ5KGNlKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfRVhQQU5TSU9OX1RBR186IC8vIGFsd2F5cyByZXR1cm5zCisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzRXhwYW5zaW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBjYXNlIENFX0RJR0lUX1RBR186CisgICAgICAgICAgICAgICAgY2UgPSBwcmV2aW91c0RpZ2l0KGNvbGxhdG9yLCBjZSwgY2gpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDRV9IQU5HVUxfU1lMTEFCTEVfVEFHXzogLy8gQUMwMC1EN0FGCisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzSGFuZ3VsKGNvbGxhdG9yLCBjaCk7CisgICAgICAgICAgICBjYXNlIENFX0xFQURfU1VSUk9HQVRFX1RBR186ICAvLyBEODAwLURCRkYKKyAgICAgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOyAvLyBicm9rZW4gc3Vycm9nYXRlIHNlcXVlbmNlCisgICAgICAgICAgICBjYXNlIENFX1RSQUlMX1NVUlJPR0FURV9UQUdfOiAvLyBEQzAwLURGRkYKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgY2FzZSBDRV9DSktfSU1QTElDSVRfVEFHXzoKKyAgICAgICAgICAgICAgICAvLyAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzSW1wbGljaXQoY2gpOworICAgICAgICAgICAgY2FzZSBDRV9JTVBMSUNJVF9UQUdfOiAvLyBldmVyeXRoaW5nIHRoYXQgaXMgbm90IGRlZmluZWQKKyAgICAgICAgICAgICAgICAvLyBVQ0EgaXMgZmlsbGVkIHdpdGggdGhlc2UuIFRhaWxvcmluZ3MgYXJlIE5PVF9GT1VORAorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0ltcGxpY2l0KGNoKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfQ0hBUlNFVF9UQUdfOiAvLyB0aGlzIHRhZyBhbHdheXMgcmV0dXJucworICAgICAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICAgICAgZGVmYXVsdDogLy8gdGhpcyB0YWcgYWx3YXlzIHJldHVybnMKKyAgICAgICAgICAgICAgICBjZSA9IElHTk9SQUJMRTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHRVQgSU1QTElDSVQgUFJJTUFSWSBXRUlHSFRTCisgICAgICogQHBhcmFtIGNwIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSB2YWx1ZSBpcyBsZWZ0IGp1c3RpZmllZCBwcmltYXJ5IGtleQorICAgICAqLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldEltcGxpY2l0UHJpbWFyeShpbnQgY3ApCisvLyAgICB7CisvLyAgICAgICAgY3AgPSBzd2FwQ0pLKGNwKTsKKy8vCisvLyAgICAgICAgLy9pZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQ0pLIHN3YXBwZWQ6ICIgKyBVdGlsaXR5LmhleChjcCkpOworLy8gICAgICAgIC8vIHdlIG5vdyBoYXZlIGEgcmFuZ2Ugb2YgbnVtYmVycyBmcm9tIDAgdG8gMjFGRkZGLgorLy8gICAgICAgIC8vIHdlIG11c3Qgc2tpcCBhbGwgMDAsIDAxLCAwMiBieXRlcywgc28gbW9zdCBieXRlcyBoYXZlIDI1MyB2YWx1ZXMKKy8vICAgICAgICAvLyB3ZSBtdXN0IGxlYXZlIGEgZ2FwIG9mIDAxIGJldHdlZW4gYWxsIHZhbHVlcyBvZiB0aGUgbGFzdCBieXRlLCBzbworLy8gICAgICAgIC8vIHRoZSBsYXN0IGJ5dGUgaGFzIDEyNiB2YWx1ZXMgKDMgYnl0ZSBjYXNlKQorLy8gICAgICAgIC8vIHdlIHNoaWZ0IHNvIHRoYXQgSEFOIGFsbCBoYXMgdGhlIHNhbWUgZmlyc3QgcHJpbWFyeSwgZm9yCisvLyAgICAgICAgLy8gY29tcHJlc3Npb24uCisvLyAgICAgICAgLy8gZm9yIHRoZSA0IGJ5dGUgY2FzZSwgd2UgbWFrZSB0aGUgZ2FwIGFzIGxhcmdlIGFzIHdlIGNhbiBmaXQuCisvLyAgICAgICAgLy8gVGhyZWUgYnl0ZSBmb3JtcyBhcmUgRUMgeHggeHgsIEVEIHh4IHh4LCBFRSB4eCB4eCAod2l0aCBhIGdhcCBvZiAxKQorLy8gICAgICAgIC8vIEZvdXIgYnl0ZSBmb3JtcyAobW9zdCBzdXBwbGVtZW50YXJpZXMpIGFyZSBFRiB4eCB4eCB4eCAod2l0aCBhIGdhcAorLy8gICAgICAgIC8vIG9mIExBU1QyX01VTFRJUExJRVIgPT0gMTQpCisvLworLy8gICAgICAgIGludCBsYXN0MCA9IGNwIC0gUnVsZUJhc2VkQ29sbGF0b3IuSU1QTElDSVRfNEJZVEVfQk9VTkRBUllfOworLy8gICAgICAgIGlmIChsYXN0MCA8IDApIHsKKy8vICAgICAgICAgICAgaW50IGxhc3QxID0gY3AgLyBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX0NPVU5UXzsKKy8vICAgICAgICAgICAgbGFzdDAgPSBjcCAlIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1RfQ09VTlRfOworLy8KKy8vICAgICAgICAgICAgaW50IGxhc3QyID0gbGFzdDEgLyBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisvLyAgICAgICAgICAgIGxhc3QxICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLklNUExJQ0lUX0JBU0VfM0JZVEVfICsgKGxhc3QyIDw8IDI0KQorLy8gICAgICAgICAgICAgICAgICAgKyAobGFzdDEgPDwgMTYpCisvLyAgICAgICAgICAgICAgICAgICArICgobGFzdDAgKiBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX01VTFRJUExJRVJfKSA8PCA4KTsKKy8vICAgICAgICB9CisvLyAgICAgICAgZWxzZSB7CisvLyAgICAgICAgICAgIGludCBsYXN0MSA9IGxhc3QwIC8gUnVsZUJhc2VkQ29sbGF0b3IuTEFTVF9DT1VOVDJfOworLy8gICAgICAgICAgICBsYXN0MCAlPSBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX0NPVU5UMl87CisvLworLy8gICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgbGFzdDEgJT0gUnVsZUJhc2VkQ29sbGF0b3IuT1RIRVJfQ09VTlRfOworLy8KKy8vICAgICAgICAgICAgaW50IGxhc3QzID0gbGFzdDIgLyBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisvLyAgICAgICAgICAgIGxhc3QyICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLklNUExJQ0lUX0JBU0VfNEJZVEVfICsgKGxhc3QzIDw8IDI0KQorLy8gICAgICAgICAgICAgICAgICAgKyAobGFzdDIgPDwgMTYpICsgKGxhc3QxIDw8IDgpCisvLyAgICAgICAgICAgICAgICAgICArIChsYXN0MCAqIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1QyX01VTFRJUExJRVJfKTsKKy8vICAgICAgICB9CisvLyAgICB9CisKKy8vICAgIC8qKgorLy8gICAgICogU3dhcHBpbmcgQ0pLIGNoYXJhY3RlcnMgZm9yIGltcGxpY2l0IGNlcworLy8gICAgICogQHBhcmFtIGNwIGNvZGVwb2ludCBDSksKKy8vICAgICAqIEByZXR1cm4gc3dhcHBlZCByZXN1bHQKKy8vICAgICAqLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHN3YXBDSksoaW50IGNwKQorLy8gICAgeworLy8gICAgICAgIGlmIChjcCA+PSBDSktfQkFTRV8pIHsKKy8vICAgICAgICAgICAgaWYgKGNwIDwgQ0pLX0xJTUlUXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwIC0gQ0pLX0JBU0VfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19DT01QQVRfVVNFRF9CQVNFXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19DT01QQVRfVVNFRF9MSU1JVF8pIHsKKy8vICAgICAgICAgICAgICAgIHJldHVybiBjcCAtIENKS19DT01QQVRfVVNFRF9CQVNFXyArIChDSktfTElNSVRfIC0gQ0pLX0JBU0VfKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBpZiAoY3AgPCBDSktfQl9CQVNFXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19CX0xJTUlUXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwOyAvLyBub24tQk1QLUNKSworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIHJldHVybiBjcCArIE5PTl9DSktfT0ZGU0VUXzsgLy8gbm9uLUNKSworLy8gICAgICAgIH0KKy8vICAgICAgICBpZiAoY3AgPCBDSktfQV9CQVNFXykgeworLy8gICAgICAgICAgICByZXR1cm4gY3AgKyBOT05fQ0pLX09GRlNFVF87CisvLyAgICAgICAgfQorLy8gICAgICAgIGlmIChjcCA8IENKS19BX0xJTUlUXykgeworLy8gICAgICAgICAgICByZXR1cm4gY3AgLSBDSktfQV9CQVNFXyArIChDSktfTElNSVRfIC0gQ0pLX0JBU0VfKQorLy8gICAgICAgICAgICAgICAgICAgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUXyAtIENKS19DT01QQVRfVVNFRF9CQVNFXyk7CisvLyAgICAgICAgfQorLy8gICAgICAgIHJldHVybiBjcCArIE5PTl9DSktfT0ZGU0VUXzsgLy8gbm9uLUNKSworLy8gICAgfQorICAgIAorLy8gICAgLyoqIAorLy8gICAgICogR2V0cyBhIGNoYXJhY3RlciBmcm9tIHRoZSBzb3VyY2Ugc3RyaW5nIGF0IGEgZ2l2ZW4gb2Zmc2V0LgorLy8gICAgICogSGFuZGxlcyBib3RoIG5vcm1hbCBhbmQgaXRlcmF0aXZlIGNhc2VzLgorLy8gICAgICogTm8gZXJyb3IgY2hlY2tpbmcgYW5kIGRvZXMgbm90IGFjY2VzcyB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIgCisvLyAgICAgKiAtIGNhbGxlciBiZXdhcmUhCisvLyAgICAgKiBAcGFyYW0gb2Zmc2V0IG9mZnNldCBmcm9tIGN1cnJlbnQgcG9zaXRpb24gd2hpY2ggY2hhcmFjdGVyIGlzIHRvIGJlIAorLy8gICAgICogICAgICAgICAgICAgICByZXRyaWV2ZWQKKy8vICAgICAqIEByZXR1cm4gY2hhcmFjdGVyIGF0IGN1cnJlbnQgcG9zaXRpb24gKyBvZmZzZXQKKy8vICAgICAqLworLy8gICAgcHJpdmF0ZSBjaGFyIHBlZWtDaGFyYWN0ZXIoaW50IG9mZnNldCkgCisvLyAgICB7CisvLyAgICAgICAgaWYgKG9mZnNldCAhPSAwKSB7CisvLyAgICAgICAgICAgIGludCBjdXJyZW50b2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisvLyAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChjdXJyZW50b2Zmc2V0ICsgb2Zmc2V0KTsKKy8vICAgICAgICAgICAgY2hhciByZXN1bHQgPSAoY2hhciltX3NvdXJjZV8uY3VycmVudCgpOworLy8gICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgoY3VycmVudG9mZnNldCk7CisvLyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisvLyAgICAgICAgfSAKKy8vICAgICAgICBlbHNlIHsKKy8vICAgICAgICAgICAgcmV0dXJuIChjaGFyKW1fc291cmNlXy5jdXJyZW50KCk7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgLyoqCisgICAgICogTW92ZXMgYmFjayAxIHBvc2l0aW9uIGluIHRoZSBzb3VyY2Ugc3RyaW5nLiBUaGlzIGlzIHNsaWdodGx5IGxlc3MgCisgICAgICogY29tcGxpY2F0ZWQgdGhhbiBwcmV2aW91c0NoYXIgaW4gdGhhdCBpdCBkb2Vzbid0IG5vcm1hbGl6ZSB3aGlsZSAKKyAgICAgKiBtb3ZpbmcgYmFjay4gQm91bmRhcnkgY2hlY2tzIGFyZSBub3QgcGVyZm9ybWVkLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRvIGJlIHVzZWQgd2l0aCBjYXV0aW9uLCB3aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgCisgICAgICogbW92aW5nIGJhY2sgb25lIHBvc2l0aW9uIHdpbGwgbm90IGV4Y2VlZCB0aGUgc291cmNlIGxpbWl0cy4KKyAgICAgKiBVc2Ugb25seSB3aXRoIG5leHRDaGFyKCkgYW5kIG5ldmVyIGNhbGwgdGhpcyBBUEkgdHdpY2UgaW4gYSByb3cgd2l0aG91dAorICAgICAqIG5leHRDaGFyKCkgaW4gdGhlIG1pZGRsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZ29CYWNrT25lKCkgCisgICAgeworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyAtLTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX3NvdXJjZV8uZ2V0SW5kZXgoKSAtIDEpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1vdmVzIGZvcndhcmQgMSBwb3NpdGlvbiBpbiB0aGUgc291cmNlIHN0cmluZy4gVGhpcyBpcyBzbGlnaHRseSBsZXNzIAorICAgICAqIGNvbXBsaWNhdGVkIHRoYW4gbmV4dENoYXIgaW4gdGhhdCBpdCBkb2Vzbid0IG5vcm1hbGl6ZSB3aGlsZSAKKyAgICAgKiBtb3ZpbmcgYmFjay4gQm91bmRhcnkgY2hlY2tzIGFyZSBub3QgcGVyZm9ybWVkLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRvIGJlIHVzZWQgd2l0aCBjYXV0aW9uLCB3aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgCisgICAgICogbW92aW5nIGJhY2sgb25lIHBvc2l0aW9uIHdpbGwgbm90IGV4Y2VlZCB0aGUgc291cmNlIGxpbWl0cy4KKyAgICAgKiBVc2Ugb25seSB3aXRoIHByZXZpb3VzQ2hhcigpIGFuZCBuZXZlciBjYWxsIHRoaXMgQVBJIHR3aWNlIGluIGEgcm93IAorICAgICAqIHdpdGhvdXQgcHJldmlvdXNDaGFyKCkgaW4gdGhlIG1pZGRsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZ29Gb3J3YXJkT25lKCkgCisgICAgeworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfIDwgMCkgeworICAgICAgICAgICAgLy8gd2UncmUgd29ya2luZyBvbiB0aGUgc291cmNlIGFuZCBub3Qgbm9ybWFsaXppbmcuIGZhc3QgcGF0aC4KKyAgICAgICAgICAgIC8vIG5vdGUgVGhhaSBwcmUtdm93ZWwgcmVvcmRlcmluZyB1c2VzIGJ1ZmZlciB0b28KKyAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX3NvdXJjZV8uZ2V0SW5kZXgoKSArIDEpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gd2UgYXJlIGluIHRoZSBidWZmZXIsIGJ1ZmZlciBvZmZzZXQgd2lsbCBuZXZlciBiZSAwIGhlcmUKKyAgICAgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyArKzsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbktleS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U3OWNhNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbktleS5qYXZhCkBAIC0wLDAgKzEsNjQ3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPHA+QSA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+IHJlcHJlc2VudHMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+CisgKiB1bmRlciB0aGUgcnVsZXMgb2YgYSBzcGVjaWZpYyA8Y29kZT5Db2xsYXRvcjwvY29kZT4KKyAqIG9iamVjdC4gQ29tcGFyaW5nIHR3byA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyByZXR1cm5zIHRoZQorICogcmVsYXRpdmUgb3JkZXIgb2YgdGhlIDxjb2RlPlN0cmluZzwvY29kZT5zIHRoZXkgcmVwcmVzZW50LjwvcD4KKyAqCisgKiA8cD5TaW5jZSB0aGUgcnVsZSBzZXQgb2YgPGNvZGU+Q29sbGF0b3I8L2NvZGU+cyBjYW4gZGlmZmVyLCB0aGUKKyAqIHNvcnQgb3JkZXJzIG9mIHRoZSBzYW1lIHN0cmluZyB1bmRlciB0d28gZGlmZmVyZW50CisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT5zIG1pZ2h0IGRpZmZlci4gIEhlbmNlIGNvbXBhcmluZworICogPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPnMgZ2VuZXJhdGVkIGZyb20gZGlmZmVyZW50CisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT5zIGNhbiBnaXZlIGluY29ycmVjdCByZXN1bHRzLjwvcD4KKyAKKyAqIDxwPkJvdGggdGhlIG1ldGhvZAorICogPGNvZGU+Q29sbGF0aW9uS2V5LmNvbXBhcmVUbyhDb2xsYXRpb25LZXkpPC9jb2RlPiBhbmQgdGhlIG1ldGhvZAorICogPGNvZGU+Q29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZyk8L2NvZGU+IGNvbXBhcmUgdHdvIHN0cmluZ3MKKyAqIGFuZCByZXR1cm5zIHRoZWlyIHJlbGF0aXZlIG9yZGVyLiAgVGhlIHBlcmZvcm1hbmNlIGNoYXJhY3RlcmljdGljcworICogb2YgdGhlc2UgdHdvIGFwcHJvYWNoZXMgY2FuIGRpZmZlci48L3A+CisgKgorICogPHA+RHVyaW5nIHRoZSBjb25zdHJ1Y3Rpb24gb2YgYSA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+LCB0aGUKKyAqIGVudGlyZSBzb3VyY2Ugc3RyaW5nIGlzIGV4YW1pbmVkIGFuZCBwcm9jZXNzZWQgaW50byBhIHNlcmllcyBvZgorICogYml0cyB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCwgdGhhdCBhcmUgc3RvcmVkIGluIHRoZSA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+LiAKKyAqIFdoZW4gPGNvZGU+Q29sbGF0aW9uS2V5LmNvbXBhcmVUbyhDb2xsYXRpb25LZXkpPC9jb2RlPiBleGVjdXRlcywgaXQKKyAqIHBlcmZvcm1zIGJpdHdpc2UgY29tcGFyaXNvbiBvbiB0aGUgYml0IHNlcXVlbmNlcy4gIFRoaXMgY2FuIGluY3VycworICogc3RhcnR1cCBjb3N0IHdoZW4gY3JlYXRpbmcgdGhlIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4sIGJ1dCBvbmNlCisgKiB0aGUga2V5IGlzIGNyZWF0ZWQsIGJpbmFyeSBjb21wYXJpc29ucyBhcmUgZmFzdC4gIFRoaXMgYXBwcm9hY2ggaXMKKyAqIHJlY29tbWVuZGVkIHdoZW4gdGhlIHNhbWUgc3RyaW5ncyBhcmUgdG8gYmUgY29tcGFyZWQgb3ZlciBhbmQgb3ZlcgorICogYWdhaW4uPC9wPgorICoKKyAqIDxwPk9uIHRoZSBvdGhlciBoYW5kLCBpbXBsZW1lbnRhdGlvbnMgb2YKKyAqIDxjb2RlPkNvbGxhdG9yLmNvbXBhcmUoU3RyaW5nLCBTdHJpbmcpPC9jb2RlPiBjYW4gZXhhbWluZSBhbmQKKyAqIHByb2Nlc3MgdGhlIHN0cmluZ3Mgb25seSB1bnRpbCB0aGUgZmlyc3QgY2hhcmFjdGVycyBkaWZmZXJpbmcgaW4KKyAqIG9yZGVyLiAgVGhpcyBhcHByb2FjaCBpcyByZWNvbW1lbmRlZCBpZiB0aGUgc3RyaW5ncyBhcmUgdG8gYmUKKyAqIGNvbXBhcmVkIG9ubHkgb25jZS48L3A+CisgKiAKKyAqIDxwPk1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBvc2l0aW9uIG9mIHRoZSBiaXQgc2VxdWVuY2UgY2FuCisgKiBiZSBmb3VuZCBpbiB0aGUgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9TZXJ2aWNlQXJjaGl0ZWN0dXJlLmh0bWwiPgorICogdXNlciBndWlkZTwvYT4uPC9wPgorICoKKyAqIDxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPnMgY2FuIGJlIHVzZWQKKyAqIHRvIHNvcnQgYSBsaXN0IG9mIDxjb2RlPlN0cmluZzwvY29kZT5zLjwvcD4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIC8vIENyZWF0ZSBhbiBhcnJheSBvZiBDb2xsYXRpb25LZXlzIGZvciB0aGUgU3RyaW5ncyB0byBiZSBzb3J0ZWQuCisgKiBDb2xsYXRvciBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAqIENvbGxhdGlvbktleVtdIGtleXMgPSBuZXcgQ29sbGF0aW9uS2V5WzNdOworICoga2V5c1swXSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJUb20iKTsKKyAqIGtleXNbMV0gPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiRGljayIpOworICoga2V5c1syXSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJIYXJyeSIpOworICogc29ydCgga2V5cyApOworICogPGJyPgorICogLy8uLi4KKyAqIDxicj4KKyAqIC8vIEluc2lkZSBib2R5IG9mIHNvcnQgcm91dGluZSwgY29tcGFyZSBrZXlzIHRoaXMgd2F5CisgKiBpZigga2V5c1tpXS5jb21wYXJlVG8oIGtleXNbal0gKSA+IDAgKQorICogICAgLy8gc3dhcCBrZXlzW2ldIGFuZCBrZXlzW2pdCisgKiA8YnI+CisgKiAvLy4uLgorICogPGJyPgorICogLy8gRmluYWxseSwgd2hlbiB3ZSd2ZSByZXR1cm5lZCBmcm9tIHNvcnQuCisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIGtleXNbMF0uZ2V0U291cmNlU3RyaW5nKCkgKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigga2V5c1sxXS5nZXRTb3VyY2VTdHJpbmcoKSApOworICogU3lzdGVtLm91dC5wcmludGxuKCBrZXlzWzJdLmdldFNvdXJjZVN0cmluZygpICk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBpcyBub3Qgc3ViY2xhc3NhYmxlCisgKiA8L3A+CisgKiBAc2VlIENvbGxhdG9yCisgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHN0YWJsZSBJQ1UgMi44IAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29sbGF0aW9uS2V5IGltcGxlbWVudHMgQ29tcGFyYWJsZSAKK3sKKyAgICAvLyBwdWJsaWMgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqIAorICAgICAqIE9wdGlvbnMgdGhhdCB1c2VkIGluIHRoZSBBUEkgQ29sbGF0aW9uS2V5LmdldEJvdW5kKCkgZm9yIGdldHRpbmcgYSAKKyAgICAgKiBDb2xsYXRpb25LZXkgYmFzZWQgb24gdGhlIGJvdW5kIG1vZGUgcmVxdWVzdGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgQm91bmRNb2RlIAorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogZG8gbm90IGNoYW5nZSB0aGUgdmFsdWVzIGFzc2lnbmVkIHRvIHRoZSBtZW1iZXJzIG9mIHRoaXMgZW51bS4gCisgICAgICAgICAqIFVuZGVybHlpbmcgY29kZSBkZXBlbmRzIG9uIHRoZW0gaGF2aW5nIHRoZXNlIG51bWJlcnMgIAorICAgICAgICAgKi8KKyAgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIExvd2VyIGJvdW5kCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVIgPSAwOworCisgICAgICAgIC8qKiAKKyAgICAgICAgICogVXBwZXIgYm91bmQgdGhhdCB3aWxsIG1hdGNoIHN0cmluZ3Mgb2YgZXhhY3Qgc2l6ZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSID0gMTsKKworICAgICAgICAvKiogCisgICAgICAgICAqIFVwcGVyIGJvdW5kIHRoYXQgd2lsbCBtYXRjaCBhbGwgdGhlIHN0cmluZ3MgdGhhdCBoYXZlIHRoZSBzYW1lIAorICAgICAgICAgKiBpbml0aWFsIHN1YnN0cmluZyBhcyB0aGUgZ2l2ZW4gc3RyaW5nCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJfTE9ORyA9IDI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBib3VuZCBtb2RlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSAzOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFByaXZhdGUgQ29uc3RydWN0b3IKKyAgICAgICAgICovCisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgcHJpdmF0ZSBCb3VuZE1vZGUoKXt9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uS2V5IGNvbnN0cnVjdG9yLgorICAgICAqIFRoaXMgY29uc3RydWN0b3IgaXMgZ2l2ZW4gcHVibGljIGFjY2VzcywgdW5saWtlIHRoZSBKREsgdmVyc2lvbiwgdG8KKyAgICAgKiBhbGxvdyBhY2Nlc3MgdG8gdXNlcnMgZXh0ZW5kaW5nIHRoZSBDb2xsYXRvciBjbGFzcy4gU2VlIAorICAgICAqIHtAbGluayBDb2xsYXRvciNnZXRDb2xsYXRpb25LZXkoU3RyaW5nKX0uIAorICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIHRoaXMgQ29sbGF0aW9uS2V5IGlzIHRvIHJlcHJlc2VudAorICAgICAqIEBwYXJhbSBrZXkgYXJyYXkgb2YgYnl0ZXMgdGhhdCByZXByZXNlbnQgdGhlIGNvbGxhdGlvbiBvcmRlciBvZiBhcmd1bWVudAorICAgICAqICAgICAgICAgICAgc291cmNlIHRlcm1pbmF0ZWQgYnkgYSBudWxsCisgICAgICogQHNlZSBDb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSwgYnl0ZSBrZXlbXSkKKyAgICB7CisgICAgICAgIG1fc291cmNlXyA9IHNvdXJjZTsKKyAgICAgICAgbV9rZXlfID0ga2V5OworICAgICAgICBtX2hhc2hDb2RlXyA9IDA7CisgICAgICAgIG1fbGVuZ3RoXyA9IC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb25LZXkgY29uc3RydWN0b3IgdGhhdCBmb3JjZXMga2V5IHRvIHJlbGVhc2UgaXRzIGludGVybmFsIGJ5dGUgCisgICAgICogYXJyYXkgZm9yIGFkb3B0aW9uLiBrZXkgd2lsbCBoYXZlIGEgbnVsbCBieXRlIGFycmF5IGFmdGVyIHRoaXMgCisgICAgICogY29uc3RydWN0aW9uLgorICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIHRoaXMgQ29sbGF0aW9uS2V5IGlzIHRvIHJlcHJlc2VudAorICAgICAqIEBwYXJhbSBrZXkgUmF3Q29sbGF0aW9uS2V5IG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIGNvbGxhdGlvbiBvcmRlciBvZiAKKyAgICAgKiAgICAgICAgICAgIGFyZ3VtZW50IHNvdXJjZS4gCisgICAgICogQHNlZSBDb2xsYXRvcgorICAgICAqIEBzZWUgUmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSwgUmF3Q29sbGF0aW9uS2V5IGtleSkKKyAgICB7CisgICAgICAgIG1fc291cmNlXyA9IHNvdXJjZTsKKyAgICAgICAgbV9rZXlfID0ga2V5LnJlbGVhc2VCeXRlcygpOworICAgICAgICBtX2hhc2hDb2RlXyA9IDA7CisgICAgICAgIG1fbGVuZ3RoXyA9IC0xOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzb3VyY2Ugc3RyaW5nIHRoYXQgdGhpcyBDb2xsYXRpb25LZXkgcmVwcmVzZW50cy4KKyAgICAgKiBAcmV0dXJuIHNvdXJjZSBzdHJpbmcgdGhhdCB0aGlzIENvbGxhdGlvbktleSByZXByZXNlbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTb3VyY2VTdHJpbmcoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX3NvdXJjZV87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+RHVwbGljYXRlcyBhbmQgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhpcyBDb2xsYXRpb25LZXkgYXMgYSBzZXF1ZW5jZSAKKyAgICAgKiBvZiBiaWctZW5kaWFuIGJ5dGVzIHRlcm1pbmF0ZWQgYnkgYSBudWxsLjwvcD4gCisgICAgICoKKyAgICAgKiA8cD5JZiB0d28gQ29sbGF0aW9uS2V5cyBjYW4gYmUgbGVnaXRpbWF0ZWx5IGNvbXBhcmVkLCB0aGVuIG9uZSBjYW4KKyAgICAgKiBjb21wYXJlIHRoZSBieXRlIGFycmF5cyBvZiBlYWNoIHRvIG9idGFpbiB0aGUgc2FtZSByZXN1bHQsIGUuZy4KKyAgICAgKiA8cHJlPgorICAgICAqIGJ5dGUga2V5MVtdID0gY29sbGF0aW9ua2V5MS50b0J5dGVBcnJheSgpOworICAgICAqIGJ5dGUga2V5MltdID0gY29sbGF0aW9ua2V5Mi50b0J5dGVBcnJheSgpOworICAgICAqIGludCBrZXksIHRhcmdldGtleTsKKyAgICAgKiBpbnQgaSA9IDA7CisgICAgICogZG8geworICAgICAqICAgICAgIGtleSA9IGtleTFbaV0gJiAweEZGOworICAgICAqICAgICB0YXJnZXRrZXkgPSBrZXkyW2ldICYgMHhGRjsKKyAgICAgKiAgICAgaWYgKGtleSAmbHQ7IHRhcmdldGtleSkgeworICAgICAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmcgMSBpcyBsZXNzIHRoYW4gc3RyaW5nIDIiKTsKKyAgICAgKiAgICAgICAgIHJldHVybjsKKyAgICAgKiAgICAgfQorICAgICAqICAgICBpZiAodGFyZ2V0a2V5ICZsdDsga2V5KSB7CisgICAgICogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyAxIGlzIG1vcmUgdGhhbiBzdHJpbmcgMiIpOworICAgICAqICAgICB9CisgICAgICogICAgIGkgKys7CisgICAgICogfSB3aGlsZSAoa2V5ICE9IDAgJiYgdGFyZ2V0S2V5ICE9IDApOworICAgICAqCisgICAgICogU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmdzIGFyZSBlcXVhbC4iKTsKKyAgICAgKiA8L3ByZT4KKyAgICAgKiA8L3A+ICAKKyAgICAgKiBAcmV0dXJuIENvbGxhdGlvbktleSB2YWx1ZSBpbiBhIHNlcXVlbmNlIG9mIGJpZy1lbmRpYW4gYnl0ZSBieXRlcyAKKyAgICAgKiAgICAgICAgIHRlcm1pbmF0ZWQgYnkgYSBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBieXRlW10gdG9CeXRlQXJyYXkoKSAKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKG1fa2V5X1tsZW5ndGhdID09IDApIHsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsZW5ndGggKys7CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoICsrOworICAgICAgICBieXRlIHJlc3VsdFtdID0gbmV3IGJ5dGVbbGVuZ3RoXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX2tleV8sIDAsIHJlc3VsdCwgMCwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgIAorICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db21wYXJlIHRoaXMgQ29sbGF0aW9uS2V5IHRvIGFub3RoZXIgQ29sbGF0aW9uS2V5LiAgVGhlCisgICAgICogY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQgdGhpcyBrZXkgYXJlCisgICAgICogYXBwbGllZC48L3A+CisgICAgICoKKyAgICAgKiA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IENvbXBhcmlzb24gYmV0d2VlbiBDb2xsYXRpb25LZXlzCisgICAgICogY3JlYXRlZCBieSBkaWZmZXJlbnQgQ29sbGF0b3JzIG1pZ2h0IHJldHVybiBpbmNvcnJlY3QKKyAgICAgKiByZXN1bHRzLiAgU2VlIGNsYXNzIGRvY3VtZW50YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgQ29sbGF0aW9uS2V5CisgICAgICogQHJldHVybiBhbiBpbnRlZ2VyIHZhbHVlLiAgSWYgdGhlIHZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIHRoaXMgQ29sbGF0aW9uS2V5CisgICAgICogICAgICAgICBpcyBsZXNzIHRoYW4gdGhhbiB0YXJnZXQsIGlmIHRoZSB2YWx1ZSBpcyB6ZXJvIHRoZXkgYXJlIGVxdWFsLCBhbmQKKyAgICAgKiAgICAgICAgIGlmIHRoZSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyB0aGlzIENvbGxhdGlvbktleSBpcyBncmVhdGVyIAorICAgICAqICAgICAgICAgdGhhbiB0YXJnZXQuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYXJndW1lbnQgaXMgbnVsbC4KKyAgICAgKiBAc2VlIENvbGxhdG9yI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKENvbGxhdGlvbktleSB0YXJnZXQpCisgICAgeworICAgIGZvciAoaW50IGkgPSAwOzsgKytpKSB7CisgICAgICAgIGludCBsID0gbV9rZXlfW2ldJjB4ZmY7CisgICAgICAgIGludCByID0gdGFyZ2V0Lm1fa2V5X1tpXSYweGZmOworICAgICAgICBpZiAobCA8IHIpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9IGVsc2UgaWYgKGwgPiByKSB7CisgICAgICAgIHJldHVybiAxOworICAgICAgICB9IGVsc2UgaWYgKGwgPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db21wYXJlIHRoaXMgQ29sbGF0aW9uS2V5IHdpdGggdGhlIHNwZWNpZmllZCBPYmplY3QuICBUaGUKKyAgICAgKiBjb2xsYXRpb24gcnVsZXMgb2YgdGhlIENvbGxhdG9yIHRoYXQgY3JlYXRlZCB0aGlzIGtleSBhcmUKKyAgICAgKiBhcHBsaWVkLjwvcD4KKyAgICAgKiAKKyAgICAgKiA8cD5TZWUgbm90ZSBpbiBjb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3Igd2FybmluZ3MgYWJvdXQgcG9zc2libGUKKyAgICAgKiBpbmNvcnJlY3QgcmVzdWx0cy48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBPYmplY3QgdG8gYmUgY29tcGFyZWQgdG8uCisgICAgICogQHJldHVybiBSZXR1cm5zIGEgbmVnYXRpdmUgaW50ZWdlciwgemVybywgb3IgYSBwb3NpdGl2ZSBpbnRlZ2VyIAorICAgICAqICAgICAgICAgcmVzcGVjdGl2ZWx5IGlmIHRoaXMgQ29sbGF0aW9uS2V5IGlzIGxlc3MgdGhhbiwgZXF1YWwgdG8sIG9yIAorICAgICAqICAgICAgICAgZ3JlYXRlciB0aGFuIHRoZSBnaXZlbiBPYmplY3QuCisgICAgICogQGV4Y2VwdGlvbiBDbGFzc0Nhc3RFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IGlzIG5vdCAKKyAgICAgKiAgICAgICAgICAgIGEgQ29sbGF0aW9uS2V5LiAgTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IAorICAgICAqICAgICAgICAgICAgaXMgbnVsbC4KKyAgICAgKiBAc2VlICNjb21wYXJlVG8oQ29sbGF0aW9uS2V5KQorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3Qgb2JqKSAKKyAgICB7CisgICAgICAgcmV0dXJuIGNvbXBhcmVUbygoQ29sbGF0aW9uS2V5KW9iaik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29tcGFyZSB0aGlzIENvbGxhdGlvbktleSBhbmQgdGhlIHNwZWNpZmllZCBPYmplY3QgZm9yCisgICAgICogZXF1YWxpdHkuICBUaGUgY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQKKyAgICAgKiB0aGlzIGtleSBhcmUgYXBwbGllZC48L3A+CisgICAgICoKKyAgICAgKiA8cD5TZWUgbm90ZSBpbiBjb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3Igd2FybmluZ3MgYWJvdXQKKyAgICAgKiBwb3NzaWJsZSBpbmNvcnJlY3QgcmVzdWx0cy48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBrZXlzIGNvbXBhcmUgYXMgZXF1YWwsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc2VlICNjb21wYXJlVG8oQ29sbGF0aW9uS2V5KQorICAgICAqIEBleGNlcHRpb24gQ2xhc3NDYXN0RXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCBpcyBub3QgCisgICAgICogICAgICAgICAgICBhIENvbGxhdGlvbktleS4gIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCAKKyAgICAgKiAgICAgICAgICAgIGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGFyZ2V0KSAKKyAgICB7CisgICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIENvbGxhdGlvbktleSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGVxdWFscygoQ29sbGF0aW9uS2V5KXRhcmdldCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgYW5kIHRoZSBhcmd1bWVudCB0YXJnZXQgQ29sbGF0aW9uS2V5IGZvciAKKyAgICAgKiBlcXVhbGl0eS4KKyAgICAgKiBUaGUgY29sbGF0aW9uIAorICAgICAqIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciBvYmplY3Qgd2hpY2ggY3JlYXRlZCB0aGVzZSBvYmplY3RzIGFyZSBhcHBsaWVkLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgbm90ZSBpbiBjb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3Igd2FybmluZ3Mgb2YgaW5jb3JyZWN0IHJlc3VsdHMKKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgQ29sbGF0aW9uS2V5IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHR3byBvYmplY3RzIGFyZSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKENvbGxhdGlvbktleSB0YXJnZXQpIAorICAgIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFyZ2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBDb2xsYXRpb25LZXkgb3RoZXIgPSAoQ29sbGF0aW9uS2V5KXRhcmdldDsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKG1fa2V5X1tpXSAhPSBvdGhlci5tX2tleV9baV0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV9rZXlfW2ldID09IDApIHsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpICsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgQ29sbGF0aW9uS2V5LiBUaGUgaGFzaCB2YWx1ZSBpcyBjYWxjdWxhdGVkIAorICAgICAqIG9uIHRoZSBrZXkgaXRzZWxmLCBub3QgdGhlIFN0cmluZyBmcm9tIHdoaWNoIHRoZSBrZXkgd2FzIGNyZWF0ZWQuIFRodXMgCisgICAgICogaWYgeCBhbmQgeSBhcmUgQ29sbGF0aW9uS2V5cywgdGhlbiB4Lmhhc2hDb2RlKHgpID09IHkuaGFzaENvZGUoKSAKKyAgICAgKiBpZiB4LmVxdWFscyh5KSBpcyB0cnVlLiBUaGlzIGFsbG93cyBsYW5ndWFnZS1zZW5zaXRpdmUgY29tcGFyaXNvbiBpbiBhIAorICAgICAqIGhhc2ggdGFibGUuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIAorICAgIHsKKyAgICAgICAgaWYgKG1faGFzaENvZGVfID09IDApIHsKKyAgICAgICAgICAgIGlmIChtX2tleV8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1faGFzaENvZGVfID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBzaXplID0gbV9rZXlfLmxlbmd0aCA+PiAxOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBrZXkgPSBuZXcgU3RyaW5nQnVmZmVyKHNpemUpOworICAgICAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAobV9rZXlfW2ldICE9IDAgJiYgbV9rZXlfW2kgKyAxXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGtleS5hcHBlbmQoKGNoYXIpKChtX2tleV9baV0gPDwgOCkgfCBtX2tleV9baSArIDFdKSk7CisgICAgICAgICAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1fa2V5X1tpXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGtleS5hcHBlbmQoKGNoYXIpKG1fa2V5X1tpXSA8PCA4KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1faGFzaENvZGVfID0ga2V5LnRvU3RyaW5nKCkuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9oYXNoQ29kZV87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFByb2R1Y2UgYSBib3VuZCBmb3IgdGhlIHNvcnQgb3JkZXIgb2YgYSBnaXZlbiBjb2xsYXRpb24ga2V5IGFuZCBhIAorICAgICAqIHN0cmVuZ3RoIGxldmVsLiBUaGlzIEFQSSBkb2VzIG5vdCBhdHRlbXB0IHRvIGZpbmQgYSBib3VuZCBmb3IgdGhlIAorICAgICAqIENvbGxhdGlvbktleSBTdHJpbmcgcmVwcmVzZW50YXRpb24sIGhlbmNlIG51bGwgd2lsbCBiZSByZXR1cm5lZCBpbiBpdHMgCisgICAgICogcGxhY2UuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFJlc3VsdGluZyBib3VuZHMgY2FuIGJlIHVzZWQgdG8gcHJvZHVjZSBhIHJhbmdlIG9mIHN0cmluZ3MgdGhhdCBhcmUKKyAgICAgKiBiZXR3ZWVuIHVwcGVyIGFuZCBsb3dlciBib3VuZHMuIEZvciBleGFtcGxlLCBpZiBib3VuZHMgYXJlIHByb2R1Y2VkCisgICAgICogZm9yIGEgc29ydGtleSBvZiBzdHJpbmcgInNtaXRoIiwgc3RyaW5ncyBiZXR3ZWVuIHVwcGVyIGFuZCBsb3dlciAKKyAgICAgKiBib3VuZHMgd2l0aCBwcmltYXJ5IHN0cmVuZ3RoIHdvdWxkIGluY2x1ZGUgIlNtaXRoIiwgIlNNSVRIIiwgInNNaVRoIi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlcmUgYXJlIHR3byB1cHBlciBib3VuZHMgdGhhdCBjYW4gYmUgcHJvZHVjZWQuIElmIEJvdW5kTW9kZS5VUFBFUgorICAgICAqIGlzIHByb2R1Y2VkLCBzdHJpbmdzIG1hdGNoZWQgd291bGQgYmUgYXMgYWJvdmUuIEhvd2V2ZXIsIGlmIGEgYm91bmQKKyAgICAgKiBpcyBwcm9kdWNlZCB1c2luZyBCb3VuZE1vZGUuVVBQRVJfTE9ORyBpcyB1c2VkLCB0aGUgYWJvdmUgZXhhbXBsZSB3aWxsCisgICAgICogYWxzbyBtYXRjaCAiU21pdGhzb25pYW4iIGFuZCBzaW1pbGFyLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBGb3IgbW9yZSBvbiB1c2FnZSwgc2VlIGV4YW1wbGUgaW4gdGVzdCBwcm9jZWR1cmUgCisgICAgICogPGEgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9+Y2hlY2tvdXR+L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25BUElUZXN0LmphdmEiPgorICAgICAqIHNyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25BUElUZXN0L1Rlc3RCb3VuZHMuCisgICAgICogPC9hPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBDb2xsYXRpb24ga2V5cyBwcm9kdWNlZCBtYXkgYmUgY29tcGFyZWQgdXNpbmcgdGhlIDxUVD5jb21wYXJlPC9UVD4gQVBJLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gYm91bmRUeXBlIE1vZGUgb2YgYm91bmQgcmVxdWlyZWQuIEl0IGNhbiBiZSBCb3VuZE1vZGUuTE9XRVIsIHdoaWNoIAorICAgICAqICAgICAgICAgICAgICBwcm9kdWNlcyBhIGxvd2VyIGluY2x1c2l2ZSBib3VuZCwgQm91bmRNb2RlLlVQUEVSLCB0aGF0IAorICAgICAqICAgICAgICAgICAgICBwcm9kdWNlcyB1cHBlciBib3VuZCB0aGF0IG1hdGNoZXMgc3RyaW5ncyBvZiB0aGUgc2FtZSAKKyAgICAgKiAgICAgICAgICAgICAgbGVuZ3RoIG9yIEJvdW5kTW9kZS5VUFBFUl9MT05HIHRoYXQgbWF0Y2hlcyBzdHJpbmdzIHRoYXQgCisgICAgICogICAgICAgICAgICAgIGhhdmUgdGhlIHNhbWUgc3RhcnRpbmcgc3Vic3RyaW5nIGFzIHRoZSBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBub09mTGV2ZWxzIFN0cmVuZ3RoIGxldmVscyByZXF1aXJlZCBpbiB0aGUgcmVzdWx0aW5nIGJvdW5kIAorICAgICAqICAgICAgICAgICAgICAgICAoZm9yIG1vc3QgdXNlcywgdGhlIHJlY29tbWVuZGVkIHZhbHVlIGlzIFBSSU1BUlkpLiBUaGlzCisgICAgICogICAgICAgICAgICAgICAgIHN0cmVuZ3RoIHNob3VsZCBiZSBsZXNzIHRoYW4gdGhlIG1heGltdW0gc3RyZW5ndGggb2YgCisgICAgICogICAgICAgICAgICAgICAgIHRoaXMgQ29sbGF0aW9uS2V5LgorICAgICAqICAgICAgICAgICAgICAgICBTZWUgdXNlcnMgZ3VpZGUgZm9yIGV4cGxhbmF0aW9uIG9uIHRoZSBzdHJlbmd0aCBsZXZlbHMgYSAKKyAgICAgKiAgICAgICAgICAgICAgICAgY29sbGF0aW9uIGtleSBjYW4gaGF2ZS4gCisgICAgICogQHJldHVybiB0aGUgcmVzdWx0IGJvdW5kZWQgQ29sbGF0aW9uS2V5IHdpdGggYSB2YWxpZCBzb3J0IG9yZGVyIGJ1dCAKKyAgICAgKiAgICAgICAgIGEgbnVsbCBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlIHN0cmVuZ3RoIGxldmVsIAorICAgICAqICAgICAgICAgICAgcmVxdWVzdGVkIGlzIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzdHJlbmd0aCBpbiB0aGlzCisgICAgICogICAgICAgICAgICBDb2xsYXRpb25LZXkuIAorICAgICAqICAgICAgICAgICAgSW4gdGhlIGNhc2Ugb2YgYW4gRXhjZXB0aW9uLCBpbmZvcm1hdGlvbiAKKyAgICAgKiAgICAgICAgICAgIGFib3V0IHRoZSBtYXhpbXVtIHN0cmVuZ3RoIHRvIHVzZSB3aWxsIGJlIHJldHVybmVkIGluIHRoZSAKKyAgICAgKiAgICAgICAgICAgIEV4Y2VwdGlvbi4gVGhlIHVzZXIgY2FuIHRoZW4gY2FsbCBnZXRCb3VuZCgpIGFnYWluIHdpdGggdGhlIAorICAgICAqICAgICAgICAgICAgYXBwcm9wcmlhdGUgc3RyZW5ndGguCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlIENvbGxhdGlvbktleS5Cb3VuZE1vZGUKKyAgICAgKiBAc2VlIENvbGxhdG9yI1BSSU1BUlkKKyAgICAgKiBAc2VlIENvbGxhdG9yI1NFQ09OREFSWQorICAgICAqIEBzZWUgQ29sbGF0b3IjVEVSVElBUlkKKyAgICAgKiBAc2VlIENvbGxhdG9yI1FVQVRFUk5BUlkKKyAgICAgKiBAc2VlIENvbGxhdG9yI0lERU5USUNBTAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkgZ2V0Qm91bmQoaW50IGJvdW5kVHlwZSwgaW50IG5vT2ZMZXZlbHMpIAorICAgIHsKKyAgICAgICAgLy8gU2NhbiB0aGUgc3RyaW5nIHVudGlsIHdlIHNraXAgZW5vdWdoIG9mIHRoZSBrZXkgT1IgcmVhY2ggdGhlIGVuZCBvZiAKKyAgICAgICAgLy8gdGhlIGtleQorICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgaW50IGtleXN0cmVuZ3RoID0gQ29sbGF0b3IuUFJJTUFSWTsKKyAgICAgICAgCisgICAgICAgIGlmIChub09mTGV2ZWxzID4gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICAgICAgd2hpbGUgKG9mZnNldCA8IG1fa2V5Xy5sZW5ndGggJiYgbV9rZXlfW29mZnNldF0gIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChtX2tleV9bb2Zmc2V0ICsrXSAKKyAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLlNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pIHsKKyAgICAgICAgICAgICAgICAgICAga2V5c3RyZW5ndGggKys7CisgICAgICAgICAgICAgICAgICAgIG5vT2ZMZXZlbHMgLS07CisgICAgICAgICAgICAgICAgICAgIGlmIChub09mTGV2ZWxzID09IENvbGxhdG9yLlBSSU1BUlkgCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBvZmZzZXQgPT0gbV9rZXlfLmxlbmd0aCB8fCBtX2tleV9bb2Zmc2V0XSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLS07CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChub09mTGV2ZWxzID4gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291cmNlIGNvbGxhdGlvbiBrZXkgaGFzIG9ubHkgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGtleXN0cmVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzdHJlbmd0aCBsZXZlbC4gQ2FsbCBnZXRCb3VuZCgpIGFnYWluICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgd2l0aCBub09mTGV2ZWxzIDwgIiArIGtleXN0cmVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gUkVBRCBNRTogdGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB0aGUgdmFsdWVzIGZvciBCb3VuZE1vZGUgdmFyaWFibGVzIAorICAgICAgICAvLyB3aWxsIG5vdCBjaGFuZ2VzLiBUaGV5IGFyZSBzZXQgc28gdGhhdCB0aGUgZW51bSB2YWx1ZSBjb3JyZXNwb25kcyB0byAKKyAgICAgICAgLy8gdGhlIG51bWJlciBvZiBleHRyYSBieXRlcyBlYWNoIGJvdW5kIHR5cGUgbmVlZHMuCisgICAgICAgIGJ5dGUgcmVzdWx0a2V5W10gPSBuZXcgYnl0ZVtvZmZzZXQgKyBib3VuZFR5cGUgKyAxXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX2tleV8sIDAsIHJlc3VsdGtleSwgMCwgb2Zmc2V0KTsKKyAgICAgICAgc3dpdGNoIChib3VuZFR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQm91bmRNb2RlLkxPV0VSOiAvLyA9IDAKKyAgICAgICAgICAgICAgICAvLyBMb3dlciBib3VuZCBqdXN0IGdldHMgdGVybWluYXRlZC4gTm8gZXh0cmEgYnl0ZXMKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQm91bmRNb2RlLlVQUEVSOiAvLyA9IDEKKyAgICAgICAgICAgICAgICAvLyBVcHBlciBib3VuZCBuZWVkcyBvbmUgZXh0cmEgYnl0ZQorICAgICAgICAgICAgICAgIHJlc3VsdGtleVtvZmZzZXQgKytdID0gMjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQm91bmRNb2RlLlVQUEVSX0xPTkc6IC8vID0gMgorICAgICAgICAgICAgICAgIC8vIFVwcGVyIGxvbmcgYm91bmQgbmVlZHMgdHdvIGV4dHJhIGJ5dGVzCisgICAgICAgICAgICAgICAgcmVzdWx0a2V5W29mZnNldCArK10gPSAoYnl0ZSkweEZGOworICAgICAgICAgICAgICAgIHJlc3VsdGtleVtvZmZzZXQgKytdID0gKGJ5dGUpMHhGRjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGJvdW5kVHlwZSBhcmd1bWVudCIpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdGtleVtvZmZzZXQgKytdID0gMDsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25LZXkobnVsbCwgcmVzdWx0a2V5KTsKKyAgICB9CisKKworICAgIAorICAgIC8qKiAKKyAgICAgKiA8cD4KKyAgICAgKiBNZXJnZXMgdGhpcyBDb2xsYXRpb25LZXkgd2l0aCBhbm90aGVyLiBPbmx5IHRoZSBzb3J0aW5nIG9yZGVyIG9mIHRoZSAKKyAgICAgKiBDb2xsYXRpb25LZXlzIHdpbGwgYmUgbWVyZ2VkLiBUaGlzIEFQSSBkb2VzIG5vdCBhdHRlbXB0IHRvIG1lcmdlIHRoZSAKKyAgICAgKiBTdHJpbmcgcmVwcmVzZW50YXRpb25zIG9mIHRoZSBDb2xsYXRpb25LZXlzLCBoZW5jZSBudWxsIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBhcyB0aGUgU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgc3RyZW5ndGggbGV2ZWxzIGFyZSBtZXJnZWQgd2l0aCB0aGVpciBjb3JyZXNwb25kaW5nIGNvdW50ZXJwYXJ0cyAKKyAgICAgKiAoUFJJTUFSSUVTIHdpdGggUFJJTUFSSUVTLCBTRUNPTkRBUklFUyB3aXRoIFNFQ09OREFSSUVTIGV0Yy4pLiAKKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIG1lcmdlZCBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlc3VsdCBDb2xsYXRpb25LZXkgd2lsbCBiZSBhCisgICAgICogY29uY2F0ZW5hdGlvbiBvZiB0aGUgU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgMiBzb3VyY2UgCisgICAgICogQ29sbGF0aW9uS2V5cy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogQmV0d2VlbiB0aGUgdmFsdWVzIGZyb20gdGhlIHNhbWUgbGV2ZWwgYSBzZXBhcmF0b3IgaXMgaW5zZXJ0ZWQuCisgICAgICogZXhhbXBsZSAodW5jb21wcmVzc2VkKToKKyAgICAgKiA8cHJlPiAKKyAgICAgKiAxOTFCMUQgMDEgMDUwNTA1IDAxIDkxMDUwNSAwMCBhbmQgMUYyMTIzIDAxIDA1MDUwNSAwMSA5MTA1MDUgMDAKKyAgICAgKiB3aWxsIGJlIG1lcmdlZCBhcyAKKyAgICAgKiAxOTFCMUQgMDIgMUYyMTIzMDEgMDUwNTA1IDAyIDA1MDUwNSAwMSA5MTA1MDUgMDIgOTEwNTA1IDAwCisgICAgICogPC9wcmU+CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoaXMgYWxsb3dzIGZvciBjb25jYXRlbmF0aW5nIG9mIGZpcnN0IGFuZCBsYXN0IG5hbWVzIGZvciBzb3J0aW5nLCBhbW9uZyAKKyAgICAgKiBvdGhlciB0aGluZ3MuCisgICAgICogPC9wPgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIENvbGxhdGlvbktleSB0byBtZXJnZSB3aXRoIAorICAgICAqIEByZXR1cm4gYSBDb2xsYXRpb25LZXkgdGhhdCBjb250YWlucyB0aGUgdmFsaWQgbWVyZ2VkIHNvcnRpbmcgb3JkZXIgCisgICAgICogICAgICAgICB3aXRoIGEgbnVsbCBTdHJpbmcgcmVwcmVzZW50YXRpb24sIAorICAgICAqICAgICAgICAgaS5lLiA8dHQ+bmV3IENvbGxhdGlvbktleShudWxsLCBtZXJnZV9zb3J0X29yZGVyKTwvdHQ+CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIHNvdXJjZSBDb2xsYXRpb25LZXkKKyAgICAgKiAgICAgICAgICAgIGFyZ3VtZW50IGlzIG51bGwgb3Igb2YgMCBsZW5ndGguCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIENvbGxhdGlvbktleSBtZXJnZShDb2xsYXRpb25LZXkgc291cmNlKQorICAgIHsKKyAgICAgICAgLy8gY2hlY2sgYXJndW1lbnRzCisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCB8fCBzb3VyY2UuZ2V0TGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uS2V5IGFyZ3VtZW50IGNhbiBub3QgYmUgbnVsbCBvciBvZiAwIGxlbmd0aCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGdldExlbmd0aCgpOyAvLyBnZXRzIHRoZSBsZW5ndGggb2YgdGhpcyBzb3J0IGtleQorICAgICAgICBpbnQgc291cmNlbGVuZ3RoID0gc291cmNlLmdldExlbmd0aCgpOworICAgICAgICAvLyAxIGV4dHJhIGZvciB0aGUgbGFzdCBzdHJlbmd0aCB0aGF0IGhhcyBubyBzZXBlcmF0b3JzCisgICAgICAgIGJ5dGUgcmVzdWx0W10gPSBuZXcgYnl0ZVttX2xlbmd0aF8gKyBzb3VyY2VsZW5ndGggKyAyXTsKKyAgICAKKyAgICAgICAgLy8gbWVyZ2UgdGhlIHNvcnQga2V5cyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsZXZlbHMKKyAgICAgICAgaW50IHJpbmRleCA9IDA7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBzb3VyY2VpbmRleCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7IAorICAgICAgICAgICAgLy8gd2hpbGUgYm90aCBoYXZlIGFub3RoZXIgbGV2ZWwKKyAgICAgICAgICAgIC8vIGNvcHkgbGV2ZWwgZnJvbSBzcmMxIG5vdCBpbmNsdWRpbmcgMDAgb3IgMDEKKyAgICAgICAgICAgIC8vIHVuc2lnbmVkIGlzc3VlcworICAgICAgICAgICAgd2hpbGUgKG1fa2V5X1tpbmRleF0gPCAwIHx8IG1fa2V5X1tpbmRleF0gPj0gTUVSR0VfU0VQRVJBVE9SXykgeworICAgICAgICAgICAgICAgIHJlc3VsdFtyaW5kZXggKytdID0gbV9rZXlfW2luZGV4ICsrXTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGFkZCBhIDAyIG1lcmdlIHNlcGFyYXRvcgorICAgICAgICAgICAgcmVzdWx0W3JpbmRleCArK10gPSBNRVJHRV9TRVBFUkFUT1JfOworICAgIAorICAgICAgICAgICAgLy8gY29weSBsZXZlbCBmcm9tIHNyYzIgbm90IGluY2x1ZGluZyAwMCBvciAwMQorICAgICAgICAgICAgd2hpbGUgKHNvdXJjZS5tX2tleV9bc291cmNlaW5kZXhdIDwgMCAKKyAgICAgICAgICAgICAgICAgICB8fCBzb3VyY2UubV9rZXlfW3NvdXJjZWluZGV4XSA+PSBNRVJHRV9TRVBFUkFUT1JfKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0W3JpbmRleCArK10gPSBzb3VyY2UubV9rZXlfW3NvdXJjZWluZGV4ICsrXTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGlmIGJvdGggc29ydCBrZXlzIGhhdmUgYW5vdGhlciBsZXZlbCwgdGhlbiBhZGQgYSAwMSBsZXZlbCAKKyAgICAgICAgICAgIC8vIHNlcGFyYXRvciBhbmQgY29udGludWUKKyAgICAgICAgICAgIGlmIChtX2tleV9baW5kZXhdID09IFJ1bGVCYXNlZENvbGxhdG9yLlNPUlRfTEVWRUxfVEVSTUlOQVRPUl8KKyAgICAgICAgICAgICAgICAmJiBzb3VyY2UubV9rZXlfW3NvdXJjZWluZGV4XSAKKyAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLlNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pIHsKKyAgICAgICAgICAgICAgICArKyBpbmRleDsKKyAgICAgICAgICAgICAgICArKyBzb3VyY2VpbmRleDsKKyAgICAgICAgICAgICAgICByZXN1bHRbcmluZGV4ICsrXSA9IFJ1bGVCYXNlZENvbGxhdG9yLlNPUlRfTEVWRUxfVEVSTUlOQVRPUl87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBoZXJlLCBhdCBsZWFzdCBvbmUgc29ydCBrZXkgaXMgZmluaXNoZWQgbm93LCBidXQgdGhlIG90aGVyIG9uZQorICAgICAgICAvLyBtaWdodCBoYXZlIHNvbWUgY29udGVudHMgbGVmdCBmcm9tIGNvbnRhaW5pbmcgbW9yZSBsZXZlbHM7CisgICAgICAgIC8vIHRoYXQgY29udGVudHMgaXMganVzdCBhcHBlbmRlZCB0byB0aGUgcmVzdWx0CisgICAgICAgIGlmIChtX2tleV9baW5kZXhdICE9IDApIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9rZXlfLCBpbmRleCwgcmVzdWx0LCByaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGVuZ3RoXyAtIGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UubV9rZXlfW3NvdXJjZWluZGV4XSAhPSAwKSB7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNvdXJjZS5tX2tleV8sIHNvdXJjZWluZGV4LCByZXN1bHQsIHJpbmRleCwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubV9sZW5ndGhfIC0gc291cmNlaW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gPSAwOworICAgIAorICAgICAgICAvLyB0cnVzdCB0aGF0IG5laXRoZXIgc29ydCBrZXkgY29udGFpbmVkIGlsbGVnYWxseSBlbWJlZGRlZCB6ZXJvIGJ5dGVzCisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0aW9uS2V5KG51bGwsIHJlc3VsdCk7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU2VxdWVuY2Ugb2YgYnl0ZXMgdGhhdCByZXByZXNlbnRzIHRoZSBzb3J0IGtleQorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSBtX2tleV9bXTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTb3VyY2Ugc3RyaW5nIHRoaXMgQ29sbGF0aW9uS2V5IHJlcHJlc2VudHMKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgbV9zb3VyY2VfOworCisgICAgLyoqCisgICAgICogSGFzaCBjb2RlIGZvciB0aGUga2V5CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9oYXNoQ29kZV87CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGVuZ3RoIG9mIHRoaXMgQ29sbGF0aW9uS2V5CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9sZW5ndGhfOworICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBrZXkgbWVyZ2Ugc2VwZXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1FUkdFX1NFUEVSQVRPUl8gPSAyOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsZW5ndGggb2YgdGhlIENvbGxhdGlvbktleQorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIHRoZSBDb2xsYXRpb25LZXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRMZW5ndGgoKQorICAgIHsKKyAgICAgICAgaWYgKG1fbGVuZ3RoXyA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9sZW5ndGhfOworICAgICAgICB9CisgICAgICAgIGludCBsZW5ndGggPSBtX2tleV8ubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArKykgeworICAgICAgICAgICAgaWYgKG1fa2V5X1tpbmRleF0gPT0gMCkgeworICAgICAgICAgICAgICAgIGxlbmd0aCA9IGluZGV4OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBtX2xlbmd0aF8gPSBsZW5ndGg7CisgICAgICAgIHJldHVybiBtX2xlbmd0aF87CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNiMTgyYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwzODYxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisgCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllQnVpbGRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWVCdWlsZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCisvKioKKyogQ2xhc3MgZm9yIGJ1aWxkaW5nIGEgY29sbGF0b3IgZnJvbSBhIGxpc3Qgb2YgY29sbGF0aW9uIHJ1bGVzLgorKiBUaGlzIGNsYXNzIGlzIHVzZXMgQ29sbGF0aW9uUnVsZVBhcnNlcgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjIsIEp1bmUgMTEgMjAwMgorKiBAZHJhZnQgMi4yCisqLworZmluYWwgY2xhc3MgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIKK3sgICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBydWxlcyBjb2xsYXRpb24gcnVsZXMKKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHJ1bGVzIGhhdmUgYW4gaW52YWxpZCAKKyAgICAgKiAgICAgICAgICAgIHN5bnRheCAKKyAgICAgKi8KKyAgICBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlcihTdHJpbmcgcnVsZXMpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgbV9wYXJzZXJfID0gbmV3IENvbGxhdGlvblJ1bGVQYXJzZXIocnVsZXMpOworICAgICAgICBtX3BhcnNlcl8uYXNzZW1ibGVUb2tlbkxpc3QoKTsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfID0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKTsKKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGlubmVyIGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogSW52ZXJzZSBVQ0Egd3JhcHBlcgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBJbnZlcnNlVUNBIAorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgSW52ZXJzZVVDQSgpIAorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBBcnJheSBsaXN0IG9mIGNoYXJhY3RlcnMKKyAgICAgICAgICovCisgICAgICAgIGludCBtX3RhYmxlX1tdOworICAgICAgICAvKioKKyAgICAgICAgICogQXJyYXkgbGlzdCBvZiBjb250aW51YXRpb24gY2hhcmFjdGVycworICAgICAgICAgKi8KKyAgICAgICAgY2hhciBtX2NvbnRpbnVhdGlvbnNfW107CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVUNBIHZlcnNpb24gb2YgaW52ZXJzZSBVQ0EgdGFibGUKKyAgICAgICAgICovCisgICAgICAgIFZlcnNpb25JbmZvIG1fVUNBX3ZlcnNpb25fOworICAgICAgICAKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJldmlvdXMgaW52ZXJzZSBjZXMgb2YgdGhlIGFyZ3VtZW50IGNlcworICAgICAqIEBwYXJhbSBjZSBjZSB0byB0ZXN0CisgICAgICogQHBhcmFtIGNvbnRjZSBjb250aW51YXRpb24gY2UgdG8gdGVzdAorICAgICAqIEBwYXJhbSBzdHJlbmd0aCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgKiBAcGFyYW0gcHJldnJlc3VsdCBhbiBhcnJheSB0byBzdG9yZSB0aGUgcmV0dXJuIHJlc3VsdHMgcHJldmlvdXMgCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgIGludmVyc2UgY2UgYW5kIHByZXZpb3VzIGludmVyc2UgY29udGludWF0aW9uIGNlCisgICAgICAgICAqIEByZXR1cm4gcmVzdWx0IG9mIHRoZSBpbnZlcnNlIGNlIAorICAgICAqLworICAgIGZpbmFsIGludCBnZXRJbnZlcnNlUHJldkNFKGludCBjZSwgaW50IGNvbnRjZSwgaW50IHN0cmVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICBpbnQgcHJldnJlc3VsdFtdKSAKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBmaW5kSW52ZXJzZUNFKGNlLCBjb250Y2UpOworICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcHJldnJlc3VsdFswXSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVI7CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2UgJj0gU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdOworICAgICAgICBjb250Y2UgJj0gU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdOworICAgICAgICAKKyAgICAgICAgICAgIHByZXZyZXN1bHRbMF0gPSBjZTsKKyAgICAgICAgcHJldnJlc3VsdFsxXSA9IGNvbnRjZTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICgocHJldnJlc3VsdFswXSAgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pID09IGNlIAorICAgICAgICAgICAmJiAocHJldnJlc3VsdFsxXSAgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pPT0gY29udGNlCisgICAgICAgICAgICYmIHJlc3VsdCA+IDApIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGNvbmRpdGlvbiBzaG91bGQgcHJldmVudCBmYWxsaW5nIG9mZiB0aGUgZWRnZSBvZiB0aGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3b3JsZCAKKyAgICAgICAgICAgICAgICAvLyBoZXJlLCB3ZSBlbmQgdXAgaW4gYSBzaW5ndWxhcml0eSAtIHplcm8KKyAgICAgICAgICAgICAgICBwcmV2cmVzdWx0WzBdID0gbV90YWJsZV9bMyAqICgtLSByZXN1bHQpXTsKKyAgICAgICAgICAgICAgICBwcmV2cmVzdWx0WzFdID0gbV90YWJsZV9bMyAqIHJlc3VsdCArIDFdOworICAgICAgICAgICB9CisgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZpbmFsIGludCBnZXRDRVN0cmVuZ3RoRGlmZmVyZW5jZShpbnQgQ0UsIGludCBjb250Q0UsIAorICAgICAgICAgICAgICAgIGludCBwcmV2Q0UsIGludCBwcmV2Q29udENFKSB7CisgICAgICAgICAgICBpbnQgc3RyZW5ndGggPSBDb2xsYXRvci5URVJUSUFSWTsKKyAgICAgICAgICAgIHdoaWxlKAorICAgICAgICAgICAgKChwcmV2Q0UgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pICE9IChDRSAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSkgCisgICAgICAgICAgICB8fCAocHJldkNvbnRDRSAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSkgIT0gKGNvbnRDRSAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSkpCisgICAgICAgICAgICAmJiAoc3RyZW5ndGggIT0gMCkpIHsKKyAgICAgICAgICAgICAgICBzdHJlbmd0aC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHN0cmVuZ3RoOyAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgaW50IGNvbXBhcmVDRXMoaW50IHNvdXJjZTAsIGludCBzb3VyY2UxLCBpbnQgdGFyZ2V0MCwgaW50IHRhcmdldDEpIHsKKyAgICAgICAgICAgIGludCBzMSA9IHNvdXJjZTAsIHMyLCB0MSA9IHRhcmdldDAsIHQyOworICAgICAgICAgICAgaWYoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24oc291cmNlMSkpIHsKKyAgICAgICAgICAgICAgICBzMiA9IHNvdXJjZTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHMyID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKHRhcmdldDEpKSB7CisgICAgICAgICAgICAgICAgdDIgPSB0YXJnZXQxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0MiA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzID0gMCwgdCA9IDA7CisgICAgICAgICAgICBpZihzMSA9PSB0MSAmJiBzMiA9PSB0MikgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcyA9IChzMSAmIDB4RkZGRjAwMDApfCgoczIgJiAweEZGRkYwMDAwKT4+MTYpOyAKKyAgICAgICAgICAgIHQgPSAodDEgJiAweEZGRkYwMDAwKXwoKHQyICYgMHhGRkZGMDAwMCk+PjE2KTsKKyAgICAgICAgICAgIGlmKHMgPT0gdCkgeworICAgICAgICAgICAgICAgIHMgPSAoczEgJiAweDAwMDBGRjAwKSB8IChzMiAmIDB4MDAwMEZGMDApPj44OworICAgICAgICAgICAgICAgIHQgPSAodDEgJiAweDAwMDBGRjAwKSB8ICh0MiAmIDB4MDAwMEZGMDApPj44OworICAgICAgICAgICAgICAgIGlmKHMgPT0gdCkgeworICAgICAgICAgICAgICAgICAgICBzID0gKHMxICYgMHgwMDAwMDBGRik8PDggfCAoczIgJiAweDAwMDAwMEZGKTsKKyAgICAgICAgICAgICAgICAgICAgdCA9ICh0MSAmIDB4MDAwMDAwRkYpPDw4IHwgKHQyICYgMHgwMDAwMDBGRik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChzLCB0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKHMsIHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKHMsIHQpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZpbmRpbmcgdGhlIGludmVyc2UgQ0Ugb2YgdGhlIGFyZ3VtZW50IENFcworICAgICAgICAgKiBAcGFyYW0gY2UgQ0UgdG8gYmUgdGVzdGVkCisgICAgICAgICAqIEBwYXJhbSBjb250Y2UgY29udGludWF0aW9uIENFCisgICAgICAgICAqIEByZXR1cm4gaW52ZXJzZSBDRQorICAgICAgICAgKi8KKyAgICAgICAgaW50IGZpbmRJbnZlcnNlQ0UoaW50IGNlLCBpbnQgY29udGNlKSAKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGJvdHRvbSA9IDA7CisgICAgICAgICAgICBpbnQgdG9wID0gbV90YWJsZV8ubGVuZ3RoIC8gMzsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoYm90dG9tIDwgdG9wIC0gMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICh0b3AgKyBib3R0b20pID4+IDE7CisgICAgICAgICAgICAgICAgaW50IGZpcnN0ID0gbV90YWJsZV9bMyAqIHJlc3VsdF07CisgICAgICAgICAgICAgICAgaW50IHNlY29uZCA9IG1fdGFibGVfWzMgKiByZXN1bHQgKyAxXTsKKyAgICAgICAgICAgICAgICBpbnQgY29tcGFyaXNvbiA9IGNvbXBhcmVDRXMoZmlyc3QsIHNlY29uZCwgY2UsIGNvbnRjZSk7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmlzb24gPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRvcCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbXBhcmlzb24gPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJvdHRvbSA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGluZyBnYXAgb2Zmc2V0cyBpbiB0aGUgaW52ZXJzZSBVQ0EKKyAgICAgKiBAcGFyYW0gbGlzdGhlYWRlciBwYXJzZWQgdG9rZW4gbGlzdHMKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBlcnJvciBvY2N1cnMgd2hpbGUgZmluZGluZyB0aGUgCisgICAgICogICAgICAgICAgICBjb2xsYXRpb24gZ2FwcworICAgICAqLworICAgIHZvaWQgZ2V0SW52ZXJzZUdhcFBvc2l0aW9ucyhDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuTGlzdEhlYWRlciAKKyAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlcikKKyAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiAKKyAgICB7CisgICAgICAgIC8vIHJlc2V0IGFsbCB0aGUgZ2FwcworICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIHRva2VuID0gbGlzdGhlYWRlci5tX2ZpcnN0XzsKKyAgICAgICAgaW50IHRva2Vuc3RyZW5ndGggPSB0b2tlbi5tX3N0cmVuZ3RoXzsKKyAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpICsrKSB7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzMgKiBpXSA9IDA7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzMgKiBpICsgMV0gPSAwOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogaSArIDJdID0gMDsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIGldID0gMDsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIGkgKyAxXSA9IDA7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzMgKiBpICsgMl0gPSAwOworICAgICAgICBsaXN0aGVhZGVyLm1fbnVtU3RyX1tpXSA9IDA7CisgICAgICAgIGxpc3RoZWFkZXIubV9mU3RyVG9rZW5fW2ldID0gbnVsbDsKKyAgICAgICAgbGlzdGhlYWRlci5tX2xTdHJUb2tlbl9baV0gPSBudWxsOworICAgICAgICBsaXN0aGVhZGVyLm1fcG9zX1tpXSA9IC0xOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmICgobGlzdGhlYWRlci5tX2Jhc2VDRV8gPj4+IDI0KSAKKyAgICAgICAgICAgICAgICA+PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01JTl8KKyAgICAgICAgJiYgKGxpc3RoZWFkZXIubV9iYXNlQ0VfID4+PiAyNCkKKyAgICAgICAgICAgICAgICA8PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01BWF8pIAorICAgICAgICB7IAorICAgICAgICAgICAgICAgIC8vIGltcGxpY2l0cyAtCisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fcG9zX1swXSA9IDA7CisgICAgICAgICAgICBpbnQgdDEgPSBsaXN0aGVhZGVyLm1fYmFzZUNFXzsKKyAgICAgICAgICAgIGludCB0MiA9IGxpc3RoZWFkZXIubV9iYXNlQ29udENFXzsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzBdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzFdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMl0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGludCBwcmltYXJ5Q0UgPSB0MSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCAodDIgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKSA+Pj4gMTY7CisgICAgICAgICAgICBwcmltYXJ5Q0UgPSBSdWxlQmFzZWRDb2xsYXRvci5pbXBDRUdlbl8uZ2V0SW1wbGljaXRGcm9tUmF3KFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRSYXdGcm9tSW1wbGljaXQocHJpbWFyeUNFKSsxKTsKKworICAgICAgICAgICAgdDEgPSBwcmltYXJ5Q0UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgMHgwNTA1OworICAgICAgICAgICAgdDIgPSAocHJpbWFyeUNFIDw8IDE2KSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIGlmIChsaXN0aGVhZGVyLm1fYmFzZUNFXyA8IDB4RUYwMDAwMDApIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAvLyBmaXJzdCBpbXBsaWNpdHMgaGF2ZSB0aHJlZSBieXRlIHByaW1hcmllcywgd2l0aCBhIGdhcCBvZgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIC8vIG9uZSBzbyB3ZSBlc2VudGlhbGx5IG5lZWQgdG8gYWRkIDIgdG8gdGhlIHRvcCBieXRlIGluIAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIC8vIGxpc3RoZWFkZXIubV9iYXNlQ29udENFXworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIHQyICs9IDB4MDIwMDAwMDA7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgLy8gc2Vjb25kIGltcGxpY2l0cyBoYXZlIGZvdXIgYnl0ZSBwcmltYXJpZXMsIHdpdGggYSBnYXAgb2YKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAvLyBJTVBMSUNJVF9MQVNUMl9NVUxUSVBMSUVSXworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIC8vIE5vdywgdGhpcyBndXkgaXMgbm90IHJlYWxseSBhY2Nlc3NpYmxlIGhlcmUsIHNvIHVudGlsIHdlIAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgYSBiZXR0ZXIgd2F5IHRvIHBhc3MgaXQgYXJvdW5kLCBhc3N1bWUgdGhhdCB0aGUgZ2FwIGlzIDEKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB0MiArPSAweDAwMDIwMDAwOworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMF0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1syXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmIChsaXN0aGVhZGVyLm1faW5kaXJlY3RfID09IHRydWUgCisgICAgICAgICAgICAgICAgICAgICAmJiBsaXN0aGVhZGVyLm1fbmV4dENFXyAhPSAwKSB7CisgICAgICAgIGxpc3RoZWFkZXIubV9wb3NfWzBdID0gMDsKKyAgICAgICAgaW50IHQxID0gbGlzdGhlYWRlci5tX2Jhc2VDRV87CisgICAgICAgIGludCB0MiA9IGxpc3RoZWFkZXIubV9iYXNlQ29udENFXzsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMF0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1sxXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMl0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgdDEgPSBsaXN0aGVhZGVyLm1fbmV4dENFXzsKKyAgICAgICAgdDIgPSBsaXN0aGVhZGVyLm1fbmV4dENvbnRDRV87CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzBdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzJdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKHRva2Vuc3RyZW5ndGggPCBDRV9CQVNJQ19TVFJFTkdUSF9MSU1JVF8pIHsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9wb3NfW3Rva2Vuc3RyZW5ndGhdIAorICAgICAgICAgICAgICAgID0gZ2V0SW52ZXJzZU5leHQobGlzdGhlYWRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zdHJlbmd0aCk7CisgICAgICAgICAgICBpZiAobGlzdGhlYWRlci5tX3Bvc19bdG9rZW5zdHJlbmd0aF0gPj0gMCkgeworICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9mU3RyVG9rZW5fW3Rva2Vuc3RyZW5ndGhdID0gdG9rZW47CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBDRSBtdXN0IGJlIGltcGxpY2l0LCBzaW5jZSBpdCdzIG5vdCBpbiB0aGUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGFibGUgCisgICAgICAgICAgICAgICAgLy8gRXJyb3IKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICh0b2tlbiAhPSBudWxsICYmIHRva2VuLm1fc3RyZW5ndGhfID49IHRva2Vuc3RyZW5ndGgpIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh0b2tlbnN0cmVuZ3RoIDwgQ0VfQkFTSUNfU1RSRU5HVEhfTElNSVRfKSB7CisgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2xTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aF0gPSB0b2tlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdG9rZW4gPSB0b2tlbi5tX25leHRfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRva2Vuc3RyZW5ndGggPCBDRV9CQVNJQ19TVFJFTkdUSF9MSU1JVF8gLSAxKSB7CisgICAgICAgICAgICAvLyBjaGVjayBpZiBwcmV2aW91cyBpbnRlcnZhbCBpcyB0aGUgc2FtZSBhbmQgbWVyZ2UgdGhlIAorICAgICAgICAgICAgLy8gaW50ZXJ2YWxzIGlmIGl0IGlzIHNvCisgICAgICAgICAgICBpZiAobGlzdGhlYWRlci5tX3Bvc19bdG9rZW5zdHJlbmd0aF0gCisgICAgICAgICAgICAgICAgPT0gbGlzdGhlYWRlci5tX3Bvc19bdG9rZW5zdHJlbmd0aCArIDFdKSB7CisgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aF0gCisgICAgICAgICAgICAgICAgPSBsaXN0aGVhZGVyLm1fZlN0clRva2VuX1t0b2tlbnN0cmVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIDFdOworICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9mU3RyVG9rZW5fW3Rva2Vuc3RyZW5ndGggKyAxXSA9IG51bGw7CisgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2xTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aCArIDFdID0gbnVsbDsKKyAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fcG9zX1t0b2tlbnN0cmVuZ3RoICsgMV0gPSAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0b2tlbiAhPSBudWxsKSB7CisgICAgICAgICAgICB0b2tlbnN0cmVuZ3RoID0gdG9rZW4ubV9zdHJlbmd0aF87CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBzdCA9IDA7IHN0IDwgMzsgc3QgKyspIHsKKyAgICAgICAgICAgIGludCBwb3MgPSBsaXN0aGVhZGVyLm1fcG9zX1tzdF07CisgICAgICAgICAgICBpZiAocG9zID49IDApIHsKKyAgICAgICAgICAgIGludCB0MSA9IG1fdGFibGVfWzMgKiBwb3NdOworICAgICAgICAgICAgaW50IHQyID0gbV90YWJsZV9bMyAqIHBvcyArIDFdOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIHN0XSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogc3QgKyAxXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzMgKiBzdCArIDJdID0gKHQxICYgMHgzZikgPDwgMjQgCisgICAgICAgICAgICAgICAgfCAodDIgJiAweDNmKSA8PCAxNjsKKyAgICAgICAgICAgIC8vcG9zIC0tOworICAgICAgICAgICAgLy90MSA9IG1fdGFibGVfWzMgKiBwb3NdOworICAgICAgICAgICAgLy90MiA9IG1fdGFibGVfWzMgKiBwb3MgKyAxXTsKKyAgICAgICAgICAgIHQxID0gbGlzdGhlYWRlci5tX2Jhc2VDRV87CisgICAgICAgICAgICB0MiA9IGxpc3RoZWFkZXIubV9iYXNlQ29udENFXzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIHN0XSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogc3QgKyAxXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzMgKiBzdCArIDJdID0gKHQxICYgMHgzZikgPDwgMjQgCisgICAgICAgICAgICAgICAgfCAodDIgJiAweDNmKSA8PCAxNjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBDRSBpbiB0aGUgaW52ZXJzZSB0YWJsZQorICAgICAqIEBwYXJhbSBsaXN0aGVhZGVyIHRva2VuIGxpc3QgaGVhZGVyCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqIEByZXR1cm4gbmV4dCBjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldEludmVyc2VOZXh0KENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW5MaXN0SGVhZGVyIAorICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlciwgCisgICAgICAgICAgICAgICAgICAgICBpbnQgc3RyZW5ndGgpIAorICAgIHsKKyAgICAgICAgaW50IGNlID0gbGlzdGhlYWRlci5tX2Jhc2VDRV87CisgICAgICAgIGludCBzZWNvbmRjZSA9IGxpc3RoZWFkZXIubV9iYXNlQ29udENFXzsgCisgICAgICAgIGludCByZXN1bHQgPSBmaW5kSW52ZXJzZUNFKGNlLCBzZWNvbmRjZSk7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2UgJj0gU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdOworICAgICAgICBzZWNvbmRjZSAmPSBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF07CisgICAgICAgIAorICAgICAgICBpbnQgbmV4dGNlID0gY2U7CisgICAgICAgIGludCBuZXh0Y29udGNlID0gc2Vjb25kY2U7CisgICAgICAgIAorICAgICAgICB3aGlsZSgobmV4dGNlICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSA9PSBjZSAKKyAgICAgICAgICAmJiAobmV4dGNvbnRjZSAgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pID09IHNlY29uZGNlKSB7CisgICAgICAgIG5leHRjZSA9IG1fdGFibGVfWzMgKiAoKysgcmVzdWx0KV07CisgICAgICAgIG5leHRjb250Y2UgPSBtX3RhYmxlX1szICogcmVzdWx0ICsgMV07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBsaXN0aGVhZGVyLm1fbmV4dENFXyA9IG5leHRjZTsKKyAgICAgICAgbGlzdGhlYWRlci5tX25leHRDb250Q0VfID0gbmV4dGNvbnRjZTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSW52ZXJzZSBVQ0EsIGluc3RhbnRpYXRlIG9ubHkgd2hlbiByZXF1aXJlZAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBJbnZlcnNlVUNBIElOVkVSU0VfVUNBXzsgCisgICAgCisgICAgLyoqCisgICAgICogVUNBIGFuZCBJbnZlcnNlIFVDQSB2ZXJzaW9uIGRvIG5vdCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlZfVUNBX1ZFUlNJT05fTUlTTUFUQ0hfID0KKyAgICAiVUNBIHZlcnNpb25zIG9mIFVDQSBhbmQgaW52ZXJzZSBVQ0Egc2hvdWxkIG1hdGNoIjsKKyAgICAgICAgICAgCisgICAgLyoqCisgICAgICogVUNBIGFuZCBJbnZlcnNlIFVDQSB2ZXJzaW9uIGRvIG5vdCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVQ0FfTk9UX0lOU1RBTlRJQVRFRF8gPQorICAgICJVQ0EgaXMgbm90IGluc3RhbnRpYXRlZCEiOworICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemluZyB0aGUgaW52ZXJzZSBVQ0EKKyAgICAgKi8KKyAgICBzdGF0aWMgeworICAgICAgICBJbnZlcnNlVUNBIHRlbXAgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICB0ZW1wID0gQ29sbGF0b3JSZWFkZXIuZ2V0SW52ZXJzZVVDQSgpOworICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICB9CisgICAgICAgIC8qCisgICAgICB0cnkKKyAgICAgIHsKKyAgICAgIFN0cmluZyBpbnZkYXQgPSAiL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pbnZ1Y2EuaWN1IjsKKyAgICAgIElucHV0U3RyZWFtIGkgPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5jbGFzcy5nZXRSZXNvdXJjZUFzU3RyZWFtKGludmRhdCk7CisgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpLCAxMTAwMDApOworICAgICAgSU5WRVJTRV9VQ0FfID0gQ29sbGF0b3JSZWFkZXIucmVhZEludmVyc2VVQ0EoYik7CisgICAgICBiLmNsb3NlKCk7CisgICAgICBpLmNsb3NlKCk7CisgICAgICB9CisgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICB7CisgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgfQorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgaWYodGVtcCAhPSBudWxsICYmIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8gIT0gbnVsbCkgeworICAgICAgICAgICAgaWYoIXRlbXAubV9VQ0FfdmVyc2lvbl8uZXF1YWxzKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV9VQ0FfdmVyc2lvbl8pKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oSU5WX1VDQV9WRVJTSU9OX01JU01BVENIXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihVQ0FfTk9UX0lOU1RBTlRJQVRFRF8pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBJTlZFUlNFX1VDQV8gPSB0ZW1wOworICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFBhcnNlIGFuZCBzZXRzIHRoZSBjb2xsYXRpb24gcnVsZXMgaW4gdGhlIGFyZ3VtZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRvIHNldAorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIHByb2dyYW0gZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgdm9pZCBzZXRSdWxlcyhSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKG1fcGFyc2VyXy5tX3Jlc3VsdExlbmd0aF8gPiAwIHx8IG1fcGFyc2VyXy5tX3JlbW92ZVNldF8gIT0gbnVsbCkgeyAKKyAgICAgICAgLy8gd2UgaGF2ZSBhIHNldCBvZiBydWxlcywgbGV0J3MgbWFrZSBzb21ldGhpbmcgb2YgaXQgCisgICAgICAgIGFzc2VtYmxlVGFpbG9yaW5nVGFibGUoY29sbGF0b3IpOworICAgIH0gCisgICAgZWxzZSB7IC8vIG5vIHJ1bGVzLCBidXQgbm8gZXJyb3IgZWl0aGVyIG11c3QgYmUgb25seSBvcHRpb25zCisgICAgICAgIC8vIFdlIHdpbGwgaW5pdCB0aGUgY29sbGF0b3IgZnJvbSBVQ0EgICAKKyAgICAgICAgY29sbGF0b3Iuc2V0V2l0aFVDQVRhYmxlcygpOworICAgIH0KKyAgICAgICAgLy8gQW5kIHNldCBvbmx5IHRoZSBvcHRpb25zCisgICAgICAgIG1fcGFyc2VyXy5zZXREZWZhdWx0T3B0aW9uc0luQ29sbGF0b3IoY29sbGF0b3IpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY29weVJhbmdlRnJvbVVDQShCdWlsZFRhYmxlIHQsIGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpbnQgdSA9IDA7CisgICAgICAgIGZvciAodSA9IHN0YXJ0OyB1IDw9IGVuZDsgdSArKykgeworICAgICAgICAgICAgLy8gaWYgKChDRSA9IHVjbXBlMzJfZ2V0KHQubV9tYXBwaW5nLCB1KSkgPT0gVUNPTF9OT1RfRk9VTkQKKyAgICAgICAgICAgIGludCBDRSA9IHQubV9tYXBwaW5nXy5nZXRWYWx1ZSh1KTsKKyAgICAgICAgICAgIGlmIChDRSA9PSBDRV9OT1RfRk9VTkRfIAorICAgICAgICAgICAgICAgIC8vIHRoaXMgdGVzdCBpcyBmb3IgY29udHJhY3Rpb25zIHRoYXQgYXJlIG1pc3NpbmcgdGhlIHN0YXJ0aW5nIAorICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQuIExvb2tzIGxpa2UgbGF0aW4tMSBzaG91bGQgYmUgZG9uZSBiZWZvcmUgCisgICAgICAgICAgICAgICAgLy8gYXNzZW1ibGluZyB0aGUgdGFibGUsIGV2ZW4gaWYgaXQgcmVzdWx0cyBpbiBtb3JlIGZhbHNlIAorICAgICAgICAgICAgICAgIC8vIGNsb3N1cmUgZWxlbWVudHMKKyAgICAgICAgICAgICAgICB8fCAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChDRSkgCisgICAgICAgICAgICAmJiBnZXRDRSh0Lm1fY29udHJhY3Rpb25zXywgQ0UsIDApID09IENFX05PVF9GT1VORF8pKSB7CisgICAgICAgICAgICAgICAgLy9tX3V0aWxFbGVtZW50Xy5tX3VjaGFyc18gPSBzdHIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc18gPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHUpOworICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc187CisgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobV91dGlsRWxlbWVudF8ubV91Y2hhcnNfKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoQ0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBDRSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChDRSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFc19bbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gKytdIAorICAgICAgICAgICAgICAgID0gQ0U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWRkQW5FbGVtZW50KHQsIG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIDIuICBFbGltaW5hdGUgdGhlIG5lZ2F0aXZlIGxpc3RzIGJ5IGRvaW5nIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggCisgICAgICogbm9uLW51bGwgbmVnYXRpdmUgbGlzdDogCisgICAgICogbyAgIGlmIHByZXZpb3VzQ0UoYmFzZUNFLCBzdHJvbmdlc3ROKSAhPSBzb21lIExpc3RIZWFkZXIgWCdzIGJhc2VDRSwgCisgICAgICogY3JlYXRlIG5ldyBMaXN0SGVhZGVyIFggCisgICAgICogbyAgIHJldmVyc2UgdGhlIGxpc3QsIGFkZCB0byB0aGUgZW5kIG9mIFgncyBwb3NpdGl2ZSBsaXN0LiBSZXNldCB0aGUgCisgICAgICogc3RyZW5ndGggb2YgdGhlIGZpcnN0IGl0ZW0geW91IGFkZCwgYmFzZWQgb24gdGhlIHN0cm9uZ2VyIHN0cmVuZ3RoIAorICAgICAqIGxldmVscyBvZiB0aGUgdHdvIGxpc3RzLiAKKyAgICAgKiAKKyAgICAgKiAzLiAgRm9yIGVhY2ggTGlzdEhlYWRlciB3aXRoIGEgbm9uLW51bGwgcG9zaXRpdmUgbGlzdDogCisgICAgICogbyAgIEZpbmQgYWxsIGNoYXJhY3RlciBzdHJpbmdzIHdpdGggQ0VzIGJldHdlZW4gdGhlIGJhc2VDRSBhbmQgdGhlIAorICAgICAqIG5leHQvcHJldmlvdXMgQ0UsIGF0IHRoZSBzdHJlbmd0aCBvZiB0aGUgZmlyc3QgdG9rZW4uIEFkZCB0aGVzZSB0byB0aGUgCisgICAgICogdGFpbG9yaW5nLiAKKyAgICAgKiAgICAgPyBUaGF0IGlzLCBpZiBVQ0EgaGFzIC4uLiAgeCA8PDwgWCA8PCB4JyA8PDwgWCcgPCB5IC4uLiwgYW5kIHRoZSAKKyAgICAgKiAgICAgICB0YWlsb3JpbmcgaGFzICYgeCA8IHouLi4gCisgICAgICogICAgID8gVGhlbiB3ZSBjaGFuZ2UgdGhlIHRhaWxvcmluZyB0byAmIHggIDw8PCBYIDw8IHgnIDw8PCBYJyA8IHogLi4uIAorICAgICAqIAorICAgICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhpcyBwYXJ0IHNob3VsZCBiZSBkb25lIGV2ZW4gd2hpbGUgY29uc3RydWN0aW5nIGxpc3QKKyAgICAgKiBUaGUgcHJvYmxlbSBpcyB0aGF0IGl0IGlzIHVua25vd24gd2hhdCBpcyBnb2luZyB0byBiZSB0aGUgc3Ryb25nZXN0IAorICAgICAqIHdlaWdodC4KKyAgICAgKiBTbyB3ZSBtaWdodCBhcyB3ZWxsIGRvIGl0IGhlcmUKKyAgICAgKiBvICAgQWxsb2NhdGUgQ0VzIGZvciBlYWNoIHRva2VuIGluIHRoZSBsaXN0LCBiYXNlZCBvbiB0aGUgdG90YWwgbnVtYmVyIE4gCisgICAgICogb2YgdGhlIGxhcmdlc3QgbGV2ZWwgZGlmZmVyZW5jZSwgYW5kIHRoZSBnYXAgRyBiZXR3ZWVuIGJhc2VDRSBhbmQgbmV4dENFIAorICAgICAqIGF0IHRoYXQgbGV2ZWwuIFRoZSByZWxhdGlvbiAqIGJldHdlZW4gdGhlIGxhc3QgaXRlbSBhbmQgbmV4dENFIGlzIHRoZSAKKyAgICAgKiBzYW1lIGFzIHRoZSBzdHJvbmdlc3Qgc3RyZW5ndGguIAorICAgICAqIG8gICBFeGFtcGxlOiBiYXNlQ0UgPCBhIDw8IGIgPDw8IHEgPDwgYyA8IGQgPCBlICogbmV4dENFKFgsMSkgCisgICAgICogICAgID8gVGhlcmUgYXJlIDMgcHJpbWFyeSBpdGVtczogYSwgZCwgZS4gRml0IHRoZW0gaW50byB0aGUgcHJpbWFyeSBnYXAuIAorICAgICAqICAgICBUaGVuIGZpdCBiIGFuZCBjIGludG8gdGhlIHNlY29uZGFyeSBnYXAgYmV0d2VlbiBhIGFuZCBkLCB0aGVuIGZpdCBxIAorICAgICAqICAgICBpbnRvIHRoZSB0ZXJ0aWFyeSBnYXAgYmV0d2VlbiBiIGFuZCBjLiAKKyAgICAgKiBvICAgRXhhbXBsZTogYmFzZUNFIDw8IGIgPDw8IHEgPDwgYyAqIG5leHRDRShYLDIpIAorICAgICAqICAgICA/IFRoZXJlIGFyZSAyIHNlY29uZGFyeSBpdGVtczogYiwgYy4gRml0IHRoZW0gaW50byB0aGUgc2Vjb25kYXJ5IGdhcC4gCisgICAgICogICAgICAgVGhlbiBmaXQgcSBpbnRvIHRoZSB0ZXJ0aWFyeSBnYXAgYmV0d2VlbiBiIGFuZCBjLiAKKyAgICAgKiBvICAgV2hlbiBpbmNyZW1lbnRpbmcgcHJpbWFyeSB2YWx1ZXMsIHdlIHdpbGwgbm90IGNyb3NzIGhpZ2ggYnl0ZSAKKyAgICAgKiAgICAgYm91bmRhcmllcyBleGNlcHQgd2hlcmUgdGhlcmUgaXMgb25seSBhIHNpbmdsZS1ieXRlIHByaW1hcnkuIFRoYXQgaXMgCisgICAgICogICAgIHRvIGVuc3VyZSB0aGF0IHRoZSBzY3JpcHQgcmVvcmRlcmluZyB3aWxsIGNvbnRpbnVlIHRvIHdvcmsuIAorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0aGUgcnVsZSBiYXNlZCBjb2xsYXRvciB0byB1cGRhdGUKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnRlcm5hbCBwcm9ncmFtIGVycm9yIG9jY3VycworICAgICAqLworICAgIHZvaWQgYXNzZW1ibGVUYWlsb3JpbmdUYWJsZShSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3BhcnNlcl8ubV9yZXN1bHRMZW5ndGhfOyBpICsrKSB7CisgICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGdlbmVyYXRlIHRoZSBDRXMgIAorICAgICAgICAvLyBXZSBzdHVmZiB0aGUgaW5pdGlhbCB2YWx1ZSBpbiB0aGUgYnVmZmVycywgYW5kIGluY3JlYXNlIHRoZSAKKyAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGJ1ZmZlciBhY2NvcmRpbmcgdG8gc3RyZW5ndGgKKyAgICAgICAgICAgIGlmICAobV9wYXJzZXJfLm1fbGlzdEhlYWRlcl9baV0ubV9maXJzdF8gIT0gbnVsbCkgeyAKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgYW55IGVsZW1lbnRzCisgICAgICAgICAgICAgICAgLy8gZHVlIHRvIHRoZSB3YXkgcGFyc2VyIHdvcmtzLCBzdWJzZXF1ZW50IHRhaWxvcmluZ3MKKyAgICAgICAgICAgICAgICAvLyBtYXkgcmVtb3ZlIGFsbCB0aGUgZWxlbWVudHMgZnJvbSBhIHNlcXVlbmNlLCB0aGVyZWZvcmUKKyAgICAgICAgICAgICAgICAvLyBsZWF2aW5nIGFuIGVtcHR5IHRhaWxvcmluZyBzZXF1ZW5jZS4KKyAgICAgICAgaW5pdEJ1ZmZlcnMobV9wYXJzZXJfLm1fbGlzdEhlYWRlcl9baV0pOworICAgICAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8gIT0gbnVsbCkgeyAKKyAgICAgICAgICAgIC8vIHN0dWZmIHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUKKyAgICAgICAgbV9wYXJzZXJfLm1fb3B0aW9uc18ubV92YXJpYWJsZVRvcFZhbHVlXyAKKyAgICAgICAgPSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9DRV9bMF0gPj4+IDE2OworICAgICAgICAvLyByZW1vdmUgaXQgZnJvbSB0aGUgbGlzdAorICAgICAgICBpZiAobV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gCisgICAgICAgICAgICAgICAgPT0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfKSB7IC8vIGZpcnN0IGluIGxpc3QKKyAgICAgICAgbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gCisgICAgICAgICAgICA9IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX25leHRfOworICAgICAgICB9CisgICAgICAgIGlmIChtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9saXN0SGVhZGVyXy5tX2xhc3RfIAorICAgICAgICA9PSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8pIHsgCisgICAgICAgICAgICAgICAgLy8gZmlyc3QgaW4gbGlzdAorICAgICAgICBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9saXN0SGVhZGVyXy5tX2xhc3RfIAorICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9wcmV2aW91c187ICAgIAorICAgICAgICB9CisgICAgICAgIGlmIChtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9uZXh0XyAhPSBudWxsKSB7CisgICAgICAgIG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX25leHRfLm1fcHJldmlvdXNfIAorICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9wcmV2aW91c187CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisgICAgICAgIG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX3ByZXZpb3VzXy5tX25leHRfIAorICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9uZXh0XzsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgQnVpbGRUYWJsZSB0ID0gbmV3IEJ1aWxkVGFibGUobV9wYXJzZXJfKTsKKyAgICAgICAgCisgICAgICAgIC8vIEFmdGVyIHRoaXMsIHdlIGhhdmUgYXNzaWduZWQgQ0UgdmFsdWVzIHRvIGFsbCByZWd1bGFyIENFcyBub3cgd2UgCisgICAgLy8gd2lsbCBnbyB0aHJvdWdoIGxpc3Qgb25jZSBtb3JlIGFuZCByZXNvbHZlIGV4cGFuc2lvbnMsIG1ha2UgCisgICAgLy8gVUNBRWxlbWVudHMgc3RydWN0cyBhbmQgYWRkIHRoZW0gdG8gdGFibGUgICAgICAgICAgICAgICAKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fcGFyc2VyXy5tX3Jlc3VsdExlbmd0aF87IGkgKyspIHsKKyAgICAgICAgLy8gbm93IHdlIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIENFcyAKKyAgICAgICAgLy8gV2Ugc3R1ZmYgdGhlIGluaXRpYWwgdmFsdWUgaW4gdGhlIGJ1ZmZlcnMsIGFuZCBpbmNyZWFzZSB0aGUgCisgICAgICAgIC8vIGFwcHJvcHJpYXRlIGJ1ZmZlciBhY2NvcmRpbmcgdG8gc3RyZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgY3JlYXRlRWxlbWVudHModCwgbV9wYXJzZXJfLm1fbGlzdEhlYWRlcl9baV0pOworICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fdXRpbEVsZW1lbnRfLmNsZWFyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIAorICAgIC8vIGFkZCBsYXRpbi0xIHN0dWZmCisgICAgICAgIGNvcHlSYW5nZUZyb21VQ0EodCwgMCwgMHhGRik7CisgICAgCisgICAgICAgIC8vIGFkZCBzdHVmZiBmb3IgY29weWluZyAKKyAgICAgICAgaWYobV9wYXJzZXJfLm1fY29weVNldF8gIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgbV9wYXJzZXJfLm1fY29weVNldF8uZ2V0UmFuZ2VDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjb3B5UmFuZ2VGcm9tVUNBKHQsIG1fcGFyc2VyXy5tX2NvcHlTZXRfLmdldFJhbmdlU3RhcnQoaSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZXJfLm1fY29weVNldF8uZ2V0UmFuZ2VFbmQoaSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBjb3B5IGNvbnRyYWN0aW9ucyBmcm9tIHRoZSBVQ0EgLSB0aGlzIGlzIGZlbHQgbW9zdGx5IGZvciBjeXJpbGxpYworICAgIGNoYXIgY29udHNbXSA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05UUkFDVElPTlNfOworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICB3aGlsZSAoY29udHNbb2Zmc2V0XSAhPSAwKSB7CisgICAgICAgIC8vIHRhaWxvcmVkQ0UgPSB1Y21wZTMyX2dldCh0Lm1fbWFwcGluZywgKmNvbnRzKTsKKyAgICAgICAgICAgIGludCB0YWlsb3JlZENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKGNvbnRzW29mZnNldF0pOworICAgICAgICBpZiAodGFpbG9yZWRDRSAhPSBDRV9OT1RfRk9VTkRfKSB7ICAgICAgICAgCisgICAgICAgIGJvb2xlYW4gbmVlZFRvQWRkID0gdHJ1ZTsKKyAgICAgICAgaWYgKGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQodGFpbG9yZWRDRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVGFpbG9yZWQodC5tX2NvbnRyYWN0aW9uc18sIHRhaWxvcmVkQ0UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cywgb2Zmc2V0ICsgMSkgPT0gdHJ1ZSkgeworICAgICAgICAgICAgbmVlZFRvQWRkID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihtX3BhcnNlcl8ubV9yZW1vdmVTZXRfICE9IG51bGwgJiYgbV9wYXJzZXJfLm1fcmVtb3ZlU2V0Xy5jb250YWlucyhjb250c1tvZmZzZXRdKSkgeworICAgICAgICAgICAgICAgICAgICBuZWVkVG9BZGQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobmVlZFRvQWRkID09IHRydWUpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gYWRkIGlmIHRoaXMgY29udHJhY3Rpb24gaXMgbm90IHRhaWxvcmVkLgorICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4Q2hhcnNfID0gbnVsbDsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc187CisgICAgICAgICAgICAgICAgICAgIHN0ci5kZWxldGUoMCwgc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChjb250c1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChjb250c1tvZmZzZXQgKyAxXSk7CisgICAgICAgICAgICBpZiAoY29udHNbb2Zmc2V0ICsgMl0gIT0gMCkgeworICAgICAgICAgICAgc3RyLmFwcGVuZChjb250c1tvZmZzZXQgKyAyXSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc18gPSBzdHIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc18pOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IENFID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChDRSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRXNfW21fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfIAorICAgICAgICAgICAgICAgICAgICAgICAgICsrXSA9IENFOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYWRkQW5FbGVtZW50KHQsIG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZihtX3BhcnNlcl8ubV9yZW1vdmVTZXRfICE9IG51bGwgJiYgbV9wYXJzZXJfLm1fcmVtb3ZlU2V0Xy5jb250YWlucyhjb250c1tvZmZzZXRdKSkgeworICAgICAgICAgICAgICAgIGNvcHlSYW5nZUZyb21VQ0EodCwgY29udHNbb2Zmc2V0XSwgY29udHNbb2Zmc2V0XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgb2Zmc2V0ICs9IDM7CisgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQWRkIGNvbXBsZXRlbHkgaWdub3JhYmxlIGVsZW1lbnRzCisgICAgICAgIHByb2Nlc3NVQ0FDb21wbGV0ZUlnbm9yYWJsZXModCk7CisgICAgICAgIAorICAgICAgICAvLyBjYW5vbmljYWwgY2xvc3VyZSAKKyAgICAgICAgY2Fub25pY2FsQ2xvc3VyZSh0KTsKKyAgCisgICAgLy8gc3RpbGwgbmVlZCB0byBwcm9kdWNlIGNvbXBhdGliaWxpdHkgY2xvc3VyZQorICAgIGFzc2VtYmxlVGFibGUodCwgY29sbGF0b3IpOyAgCisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ0VHZW5lcmF0b3IgCisgICAgeworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIFdlaWdodFJhbmdlIG1fcmFuZ2VzX1tdOworICAgIGludCBtX3Jhbmdlc0xlbmd0aF87CisgICAgaW50IG1fYnl0ZVNpemVfOyAKKyAgICAgICAgaW50IG1fc3RhcnRfOyAKKyAgICAgICAgaW50IG1fbGltaXRfOworICAgIGludCBtX21heENvdW50XzsKKyAgICBpbnQgbV9jb3VudF87CisgICAgaW50IG1fY3VycmVudF87CisgICAgaW50IG1fZkxvd187IC8vIGZvcmJpZGRlbiBMb3cgCisgICAgaW50IG1fZkhpZ2hfOyAvLyBmb3JiaWRkZW4gSGlnaCAKKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIENFR2VuZXJhdG9yKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcmFuZ2VzXyA9IG5ldyBXZWlnaHRSYW5nZVs3XTsgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSA2OyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgICAgICBtX3Jhbmdlc19baV0gPSBuZXcgV2VpZ2h0UmFuZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFdlaWdodFJhbmdlIGltcGxlbWVudHMgQ29tcGFyYWJsZQorICAgIHsKKyAgICAgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbXBhcmVzIHRoaXMgb2JqZWN0IHdpdGggdGFyZ2V0CisgICAgICAgICAqIEBwYXJhbSB0YXJnZXQgb2JqZWN0IHRvIGNvbXBhcmUgd2l0aAorICAgICAgICAgKiBAcmV0dXJuIDAgaWYgZXF1YWxzLCAxIGlmIHRoaXMgaXMgPiB0YXJnZXQsIC0xIG90aGVyd2lzZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IHRhcmdldCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IHRhcmdldCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHRzdGFydCA9ICgoV2VpZ2h0UmFuZ2UpdGFyZ2V0KS5tX3N0YXJ0XzsgICAKKyAgICAgICAgICAgIGlmIChtX3N0YXJ0XyA9PSB0c3RhcnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3N0YXJ0XyA+IHRzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogSW5pdGlhbGl6ZSAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9zdGFydF8gPSAwOworICAgICAgICAgICAgbV9lbmRfID0gMDsKKyAgICAgICAgICAgIG1fbGVuZ3RoXyA9IDA7IAorICAgICAgICAgICAgbV9jb3VudF8gPSAwOworICAgICAgICAgICAgbV9sZW5ndGgyXyA9IDA7CisgICAgICAgICAgICBtX2NvdW50Ml8gPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIGludCBtX3N0YXJ0XzsKKyAgICAgICAgaW50IG1fZW5kXzsKKyAgICBpbnQgbV9sZW5ndGhfOyAKKyAgICAgICAgaW50IG1fY291bnRfOworICAgIGludCBtX2xlbmd0aDJfOworICAgIGludCBtX2NvdW50Ml87CisgICAgICAgIAorICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICBXZWlnaHRSYW5nZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb3B5IGNvbnN0cnVjdG9yLgorICAgICAgICAgKiBDbG9uZWFibGUgaXMgdHJvdWJsZXNvbWUsIG5lZWRzIHRvIGNoZWNrIGZvciBleGNlcHRpb24KKyAgICAgICAgICogQHBhcmFtIHNvdXJjZSB0byBjbG9uZQorICAgICAgICAgKi8KKyAgICAgICAgV2VpZ2h0UmFuZ2UoV2VpZ2h0UmFuZ2Ugc291cmNlKQorICAgICAgICB7CisgICAgICAgICAgICBtX3N0YXJ0XyA9IHNvdXJjZS5tX3N0YXJ0XzsKKyAgICAgICAgICAgIG1fZW5kXyA9IHNvdXJjZS5tX2VuZF87CisgICAgICAgICAgICBtX2xlbmd0aF8gPSBzb3VyY2UubV9sZW5ndGhfOyAKKyAgICAgICAgICAgIG1fY291bnRfID0gc291cmNlLm1fY291bnRfOworICAgICAgICAgICAgbV9sZW5ndGgyXyA9IHNvdXJjZS5tX2xlbmd0aDJfOworICAgICAgICAgICAgbV9jb3VudDJfID0gc291cmNlLm1fY291bnQyXzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNYXhKYW1vRXhwYW5zaW9uVGFibGUKKyAgICB7CisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBWZWN0b3IgbV9lbmRFeHBhbnNpb25DRV87CisgICAgLy8gdmVjdG9yIG9mIGJvb2xlYW5zCisgICAgVmVjdG9yIG1faXNWXzsKKyAgICBieXRlIG1fbWF4TFNpemVfOworICAgIGJ5dGUgbV9tYXhWU2l6ZV87CisgICAgYnl0ZSBtX21heFRTaXplXzsKKyAgICAgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUoKQorICAgIHsKKyAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1faXNWXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8uYWRkKG5ldyBJbnRlZ2VyKDApKTsKKyAgICAgICAgbV9pc1ZfLmFkZChuZXcgQm9vbGVhbihmYWxzZSkpOworICAgICAgICAgICAgbV9tYXhMU2l6ZV8gPSAxOworICAgICAgICAgICAgbV9tYXhWU2l6ZV8gPSAxOworICAgICAgICAgICAgbV9tYXhUU2l6ZV8gPSAxOworICAgIH0KKyAgICAgICAgCisgICAgICAgIE1heEphbW9FeHBhbnNpb25UYWJsZShNYXhKYW1vRXhwYW5zaW9uVGFibGUgdGFibGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fZW5kRXhwYW5zaW9uQ0VfID0gKFZlY3Rvcil0YWJsZS5tX2VuZEV4cGFuc2lvbkNFXy5jbG9uZSgpOworICAgICAgICAgICAgbV9pc1ZfID0gKFZlY3Rvcil0YWJsZS5tX2lzVl8uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fbWF4TFNpemVfID0gdGFibGUubV9tYXhMU2l6ZV87CisgICAgICAgICAgICBtX21heFZTaXplXyA9IHRhYmxlLm1fbWF4VlNpemVfOworICAgICAgICAgICAgbV9tYXhUU2l6ZV8gPSB0YWJsZS5tX21heFRTaXplXzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNYXhFeHBhbnNpb25UYWJsZSAKKyAgICB7CisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIE1heEV4cGFuc2lvblRhYmxlKCkgCisgICAgeworICAgICAgICBtX2VuZEV4cGFuc2lvbkNFXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9leHBhbnNpb25DRVNpemVfID0gbmV3IFZlY3RvcigpOworICAgICAgICBtX2VuZEV4cGFuc2lvbkNFXy5hZGQobmV3IEludGVnZXIoMCkpOworICAgICAgICBtX2V4cGFuc2lvbkNFU2l6ZV8uYWRkKG5ldyBCeXRlKChieXRlKTApKTsKKyAgICB9CisgICAgICAgIAorICAgICAgICBNYXhFeHBhbnNpb25UYWJsZShNYXhFeHBhbnNpb25UYWJsZSB0YWJsZSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fZW5kRXhwYW5zaW9uQ0VfID0gKFZlY3Rvcil0YWJsZS5tX2VuZEV4cGFuc2lvbkNFXy5jbG9uZSgpOworICAgICAgICAgICAgbV9leHBhbnNpb25DRVNpemVfID0gKFZlY3Rvcil0YWJsZS5tX2V4cGFuc2lvbkNFU2l6ZV8uY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgVmVjdG9yIG1fZW5kRXhwYW5zaW9uQ0VfOworICAgIFZlY3RvciBtX2V4cGFuc2lvbkNFU2l6ZV87CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEJhc2ljQ29udHJhY3Rpb25UYWJsZSAKKyAgICB7CisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSgpCisgICAgeworICAgICAgICBtX0NFc18gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fY29kZVBvaW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgfQorICAgICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgU3RyaW5nQnVmZmVyIG1fY29kZVBvaW50c187CisgICAgVmVjdG9yIG1fQ0VzXzsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29udHJhY3Rpb25UYWJsZSAKKyAgICB7CisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIEJ1aWxkcyBhIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIG1hcHBpbmcKKyAgICAgKi8KKyAgICBDb250cmFjdGlvblRhYmxlKEludFRyaWVCdWlsZGVyIG1hcHBpbmcpIAorICAgIHsKKyAgICAgICAgbV9tYXBwaW5nXyA9IG1hcHBpbmc7CisgICAgICAgIG1fZWxlbWVudHNfID0gbmV3IFZlY3RvcigpOworICAgICAgICBtX0NFc18gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fY29kZVBvaW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fb2Zmc2V0c18gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fY3VycmVudFRhZ18gPSBDRV9OT1RfRk9VTkRfVEFHXzsKKyAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ29waWVzIGEgY29udHJhY3Rpb24gdGFibGUuCisgICAgICAgICAqIE5vdCBhbGwgZGF0YSB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZWlyIG93biBvYmplY3QuCisgICAgICAgICAqIEBwYXJhbSB0YWJsZQorICAgICAgICAgKi8KKyAgICAgICAgQ29udHJhY3Rpb25UYWJsZShDb250cmFjdGlvblRhYmxlIHRhYmxlKSAKKyAgICAgICAgeworICAgICAgICAgICAgbV9tYXBwaW5nXyA9IHRhYmxlLm1fbWFwcGluZ187CisgICAgICAgICAgICBtX2VsZW1lbnRzXyA9IChWZWN0b3IpdGFibGUubV9lbGVtZW50c18uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fY29kZVBvaW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKHRhYmxlLm1fY29kZVBvaW50c18udG9TdHJpbmcoKSk7CisgICAgICAgICAgICBtX0NFc18gPSAoVmVjdG9yKXRhYmxlLm1fQ0VzXy5jbG9uZSgpOworICAgICAgICAgICAgbV9vZmZzZXRzXyA9IChWZWN0b3IpdGFibGUubV9vZmZzZXRzXy5jbG9uZSgpOworICAgICAgICAgICAgbV9jdXJyZW50VGFnXyA9IHRhYmxlLm1fY3VycmVudFRhZ187CisgICAgICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgQmFzaWNDb250cmFjdGlvblRhYmxlCisgICAgICovCisgICAgICAgIFZlY3RvciBtX2VsZW1lbnRzXzsKKyAgICAgICAgSW50VHJpZUJ1aWxkZXIgbV9tYXBwaW5nXzsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG1fY29kZVBvaW50c187CisgICAgVmVjdG9yIG1fQ0VzXzsKKyAgICBWZWN0b3IgbV9vZmZzZXRzXzsKKyAgICBpbnQgbV9jdXJyZW50VGFnXzsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBCdWlsZFRhYmxlIGltcGxlbWVudHMgVHJpZUJ1aWxkZXIuRGF0YU1hbmlwdWxhdGUKKyAgICB7CisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgKiBGb3IgY29uc3RydWN0aW9uIG9mIHRoZSBUcmllIHRhYmxlcy4KKyAgICAgKiBIYXMgdG8gYmUgbGFiZWxlZCBwdWJsaWMKKyAgICAgKiBAcGFyYW0gY3AKKyAgICAgKiBAcGFyYW0gb2Zmc2V0CisgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIAorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvbGRlZFZhbHVlKGludCBjcCwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBsaW1pdCA9IGNwICsgMHg0MDA7CisgICAgICAgIHdoaWxlIChjcCA8IGxpbWl0KSB7CisgICAgICAgIGludCB2YWx1ZSA9IG1fbWFwcGluZ18uZ2V0VmFsdWUoY3ApOworICAgICAgICBib29sZWFuIGluQmxvY2taZXJvID0gbV9tYXBwaW5nXy5pc0luWmVyb0Jsb2NrKGNwKTsKKyAgICAgICAgaW50IHRhZyA9IGdldENFVGFnKHZhbHVlKTsKKyAgICAgICAgaWYgKGluQmxvY2taZXJvID09IHRydWUpIHsKKyAgICAgICAgICAgIGNwICs9IFRyaWVCdWlsZGVyLkRBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICghKGlzU3BlY2lhbCh2YWx1ZSkgJiYgKHRhZyA9PSBDRV9JTVBMSUNJVF9UQUdfIAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGFnID09IENFX05PVF9GT1VORF9UQUdfKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHZhbHVlcyB0aGF0IGFyZSBzdGFydGluZyBpbiBlaXRoZXIgVUNBIAorICAgICAgICAgICAgICAgICAgICAvLyAoSU1QTElDSVRfVEFHKSBvciBpbiB0aGUgdGFpbG9yaW5ncyAoTk9UX0ZPVU5EX1RBRykuIAorICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZW5jZSBvZiB0aGVzZSB0YWdzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm90aGluZyBpbiAKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwb3NpdGlvbiBhbmQgdGhhdCBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyAgICAgICAgICAgIHJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfIAorICAgICAgICAgICAgfCAoQ0VfU1VSUk9HQVRFX1RBR18gPDwgMjQpIHwgb2Zmc2V0OworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICsrIGNwOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGFibGUKKyAgICAgKi8KKyAgICBCdWlsZFRhYmxlKENvbGxhdGlvblJ1bGVQYXJzZXIgcGFyc2VyKSAKKyAgICB7CisgICAgICAgIG1fY29sbGF0b3JfID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCk7CisgICAgICAgIG1fY29sbGF0b3JfLnNldFdpdGhVQ0FEYXRhKCk7CisgICAgICAgIE1heEV4cGFuc2lvblRhYmxlIG1heGV0ID0gbmV3IE1heEV4cGFuc2lvblRhYmxlKCk7CisgICAgICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSBtYXhqZXQgPSBuZXcgTWF4SmFtb0V4cGFuc2lvblRhYmxlKCk7CisgICAgICAgIG1fb3B0aW9uc18gPSBwYXJzZXIubV9vcHRpb25zXzsKKyAgICAgICAgbV9leHBhbnNpb25zXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgLy8gRG8geW91ciBvd24gbWFsbG9jcyBmb3IgdGhlIHN0cnVjdHVyZSwgYXJyYXkgYW5kIGhhdmUgbGluZWFyIAorICAgICAgICAvLyBMYXRpbiAxCisgICAgICAgICAgICBpbnQgdHJpZWluaXRpYWx2YWx1ZSA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18KKyAgICAgICAgfCAoQ0VfTk9UX0ZPVU5EX1RBR18gPDwgMjQpOworICAgICAgICAvLyB0ZW1wb3JhcnkgZml4IGZvciBqYjM4MjIsIDB4MTAwMDAwIC0+IDMwMDAwCisgICAgICAgIG1fbWFwcGluZ18gPSBuZXcgSW50VHJpZUJ1aWxkZXIobnVsbCwgMHgzMDAwMCwgdHJpZWluaXRpYWx2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWVpbml0aWFsdmFsdWUsIHRydWUpOyAKKyAgICAgICAgbV9wcmVmaXhMb29rdXBfID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAvLyB1aGFzaF9vcGVuKHByZWZpeExvb2t1cEhhc2gsIHByZWZpeExvb2t1cENvbXApOworICAgICAgICBtX2NvbnRyYWN0aW9uc18gPSBuZXcgQ29udHJhY3Rpb25UYWJsZShtX21hcHBpbmdfKTsKKyAgICAgICAgLy8gY29weSBVQ0EncyBtYXhleHBhbnNpb24gYW5kIG1lcmdlIGFzIHdlIGdvIGFsb25nCisgICAgICAgIG1fbWF4RXhwYW5zaW9uc18gPSBtYXhldDsKKyAgICAgICAgLy8gYWRkaW5nIGFuIGV4dHJhIGluaXRpYWwgdmFsdWUgZm9yIGVhc2llciBtYW5pcHVsYXRpb24gCisgICAgICAgIGZvciAoaW50IGkgPSAwOyAKKyAgICAgICAgIGkgPCBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fZXhwYW5zaW9uRW5kQ0VfLmxlbmd0aDsgaSArKykgeworICAgICAgICBtYXhldC5tX2VuZEV4cGFuc2lvbkNFXy5hZGQobmV3IEludGVnZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX2V4cGFuc2lvbkVuZENFX1tpXSkpOworICAgICAgICBtYXhldC5tX2V4cGFuc2lvbkNFU2l6ZV8uYWRkKG5ldyBCeXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9baV0pKTsKKyAgICAgICAgfQorICAgICAgICBtX21heEphbW9FeHBhbnNpb25zXyA9IG1heGpldDsKKyAgICAgICAgCisgICAgICAgIG1fdW5zYWZlQ1BfID0gbmV3IGJ5dGVbVU5TQUZFQ1BfVEFCTEVfU0laRV9dOworICAgICAgICBtX2NvbnRyRW5kQ1BfID0gbmV3IGJ5dGVbVU5TQUZFQ1BfVEFCTEVfU0laRV9dOworICAgICAgICBBcnJheXMuZmlsbChtX3Vuc2FmZUNQXywgKGJ5dGUpMCk7CisgICAgICAgIEFycmF5cy5maWxsKG1fY29udHJFbmRDUF8sIChieXRlKTApOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIER1cGxpY2F0aW5nIGEgQnVpbGRUYWJsZS4KKyAgICAgICAgICogTm90IGFsbCBkYXRhIHdpbGwgYmUgZHVwbGljYXRlZCBpbnRvIHRoZWlyIG93biBvYmplY3QuCisgICAgICAgICAqIEBwYXJhbSB0YWJsZSB0byBjbG9uZQorICAgICAgICAgKi8KKyAgICAgICAgQnVpbGRUYWJsZShCdWlsZFRhYmxlIHRhYmxlKSAKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb2xsYXRvcl8gPSB0YWJsZS5tX2NvbGxhdG9yXzsKKyAgICAgICAgICAgIG1fbWFwcGluZ18gPSBuZXcgSW50VHJpZUJ1aWxkZXIodGFibGUubV9tYXBwaW5nXyk7CisgICAgICAgICAgICBtX2V4cGFuc2lvbnNfID0gKFZlY3Rvcil0YWJsZS5tX2V4cGFuc2lvbnNfLmNsb25lKCk7CisgICAgICAgICAgICBtX2NvbnRyYWN0aW9uc18gPSBuZXcgQ29udHJhY3Rpb25UYWJsZSh0YWJsZS5tX2NvbnRyYWN0aW9uc18pOworICAgICAgICAgICAgbV9jb250cmFjdGlvbnNfLm1fbWFwcGluZ18gPSBtX21hcHBpbmdfOworICAgICAgICAgICAgbV9vcHRpb25zXyA9IHRhYmxlLm1fb3B0aW9uc187CisgICAgICAgICAgICBtX21heEV4cGFuc2lvbnNfID0gbmV3IE1heEV4cGFuc2lvblRhYmxlKHRhYmxlLm1fbWF4RXhwYW5zaW9uc18pOworICAgICAgICAgICAgbV9tYXhKYW1vRXhwYW5zaW9uc18gCisgICAgICAgID0gbmV3IE1heEphbW9FeHBhbnNpb25UYWJsZSh0YWJsZS5tX21heEphbW9FeHBhbnNpb25zXyk7CisgICAgICAgICAgICBtX3Vuc2FmZUNQXyA9IG5ldyBieXRlW3RhYmxlLm1fdW5zYWZlQ1BfLmxlbmd0aF07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhYmxlLm1fdW5zYWZlQ1BfLCAwLCBtX3Vuc2FmZUNQXywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91bnNhZmVDUF8ubGVuZ3RoKTsKKyAgICAgICAgICAgIG1fY29udHJFbmRDUF8gPSBuZXcgYnl0ZVt0YWJsZS5tX2NvbnRyRW5kQ1BfLmxlbmd0aF07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhYmxlLm1fY29udHJFbmRDUF8sIDAsIG1fY29udHJFbmRDUF8sIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY29udHJFbmRDUF8ubGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9jb2xsYXRvcl87CisgICAgICAgIEludFRyaWVCdWlsZGVyIG1fbWFwcGluZ187IAorICAgICAgICBWZWN0b3IgbV9leHBhbnNpb25zXzsgCisgICAgICAgIENvbnRyYWN0aW9uVGFibGUgbV9jb250cmFjdGlvbnNfOworICAgIC8vIFVDQVRhYmxlSGVhZGVyIGltYWdlOworICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuT3B0aW9uU2V0IG1fb3B0aW9uc187CisgICAgTWF4RXhwYW5zaW9uVGFibGUgbV9tYXhFeHBhbnNpb25zXzsKKyAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUgbV9tYXhKYW1vRXhwYW5zaW9uc187CisgICAgYnl0ZSBtX3Vuc2FmZUNQX1tdOworICAgIGJ5dGUgbV9jb250ckVuZENQX1tdOworICAgIEhhc2h0YWJsZSBtX3ByZWZpeExvb2t1cF87CisgICAgfSAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBFbGVtZW50cworICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgU3RyaW5nIG1fcHJlZml4Q2hhcnNfOworICAgIGludCBtX3ByZWZpeF87CisgICAgU3RyaW5nIG1fdWNoYXJzXzsKKyAgICAvKioKKyAgICAgKiBXb3JraW5nIHN0cmluZworICAgICAqLworICAgIFN0cmluZyBtX2NQb2ludHNfOyAgICAKKyAgICAvKioKKyAgICAgKiBPZmZzZXQgdG8gdGhlIHdvcmtpbmcgc3RyaW5nCisgICAgICovCisgICAgaW50IG1fY1BvaW50c09mZnNldF87CisgICAgLyoqIAorICAgICAqIFRoZXNlIGFyZSBjb2xsYXRpb24gZWxlbWVudHMgLSB0aGVyZSBjb3VsZCBiZSBtb3JlIHRoYW4gb25lIC0gaW4gCisgICAgICogY2FzZSBvZiBleHBhbnNpb24gCisgICAgICovICAgIAorICAgIGludCBtX0NFc19bXTsgICAgICAKKyAgICAgICAgaW50IG1fQ0VMZW5ndGhfOworICAgIC8qKiAKKyAgICAgKiBUaGlzIGlzIHRoZSB2YWx1ZSBlbGVtZW50IG1hcHMgaW4gb3JpZ2luYWwgdGFibGUgICAKKyAgICAgKi8KKyAgICBpbnQgbV9tYXBDRV87ICAgICAgICAgCisgICAgaW50IG1fc2l6ZVByaW1fW107CisgICAgaW50IG1fc2l6ZVNlY19bXTsKKyAgICBpbnQgbV9zaXplVGVyX1tdOworICAgIGJvb2xlYW4gbV92YXJpYWJsZVRvcF87CisgICAgYm9vbGVhbiBtX2Nhc2VCaXRfOworICAgICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yCisgICAgICovCisgICAgRWxlbWVudHMoKQorICAgIHsKKyAgICAgICAgbV9zaXplUHJpbV8gPSBuZXcgaW50WzEyOF07ICAgIAorICAgICAgICBtX3NpemVTZWNfID0gbmV3IGludFsxMjhdOyAgICAKKyAgICAgICAgbV9zaXplVGVyXyA9IG5ldyBpbnRbMTI4XTsgICAgCisgICAgICAgICAgICBtX0NFc18gPSBuZXcgaW50WzI1Nl07CisgICAgICAgICAgICBtX0NFTGVuZ3RoXyA9IDA7CisgICAgfQorCisgICAgICAgIC8qKgorICAgICAqIFBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcgorICAgICAqLworICAgIEVsZW1lbnRzKEVsZW1lbnRzIGVsZW1lbnQpCisgICAgeworICAgICAgICAgICAgbV9wcmVmaXhDaGFyc18gPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfOworICAgICAgICAgICAgbV9wcmVmaXhfID0gZWxlbWVudC5tX3ByZWZpeF87CisgICAgICAgICAgICBtX3VjaGFyc18gPSBlbGVtZW50Lm1fdWNoYXJzXzsKKyAgICAgICAgICAgIG1fY1BvaW50c18gPSBlbGVtZW50Lm1fY1BvaW50c187ICAgIAorICAgICAgICAgICAgbV9jUG9pbnRzT2Zmc2V0XyA9IGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XzsgICAgCisgICAgICAgICAgICBtX0NFc18gPSBlbGVtZW50Lm1fQ0VzXzsKKyAgICAgICAgICAgIG1fQ0VMZW5ndGhfID0gZWxlbWVudC5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgIG1fbWFwQ0VfID0gZWxlbWVudC5tX21hcENFXzsKKyAgICAgICAgbV9zaXplUHJpbV8gPSBlbGVtZW50Lm1fc2l6ZVByaW1fOworICAgICAgICBtX3NpemVTZWNfID0gZWxlbWVudC5tX3NpemVTZWNfOworICAgICAgICBtX3NpemVUZXJfID0gZWxlbWVudC5tX3NpemVUZXJfOworICAgICAgICBtX3ZhcmlhYmxlVG9wXyA9IGVsZW1lbnQubV92YXJpYWJsZVRvcF87CisgICAgICAgIG1fY2FzZUJpdF8gPSBlbGVtZW50Lm1fY2FzZUJpdF87CisgICAgfQorCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbml0aWFsaXppbmcgdGhlIGVsZW1lbnRzCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBjbGVhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcHJlZml4Q2hhcnNfID0gbnVsbDsKKyAgICAgICAgICAgIG1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICBtX3VjaGFyc18gPSBudWxsOworICAgICAgICAgICAgbV9jUG9pbnRzXyA9IG51bGw7ICAgIAorICAgICAgICAgICAgbV9jUG9pbnRzT2Zmc2V0XyA9IDA7ICAKKyAgICAgICAgICAgIG1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgIG1fbWFwQ0VfID0gMDsKKyAgICAgICAgICAgIEFycmF5cy5maWxsKG1fc2l6ZVByaW1fLCAwKTsKKyAgICAgICAgICAgIEFycmF5cy5maWxsKG1fc2l6ZVNlY18sIDApOworICAgICAgICAgICAgQXJyYXlzLmZpbGwobV9zaXplVGVyXywgMCk7CisgICAgICAgICAgICBtX3ZhcmlhYmxlVG9wXyA9IGZhbHNlOworICAgICAgICAgICAgbV9jYXNlQml0XyA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBIYXNoY29kZSBjYWxjdWxhdGlvbiBmb3IgdG9rZW4KKyAgICAgICAgICogQHJldHVybiB0aGUgaGFzaGNvZGUKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgICAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSBtX2NQb2ludHNfLnN1YnN0cmluZyhtX2NQb2ludHNPZmZzZXRfKTsKKyAgICAgICAgcmV0dXJuIHN0ci5oYXNoQ29kZSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRXF1YWxzIGNhbGN1bGF0aW9uCisgICAgICogQHBhcmFtIHRhcmdldCBvYmplY3QgdG8gY29tcGFyZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0YXJnZXQgaXMgdGhlIHNhbWUgYXMgdGhpcyBvYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmICh0YXJnZXQgPT0gdGhpcykgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudHMpIHsKKyAgICAgICAgRWxlbWVudHMgdCA9IChFbGVtZW50cyl0YXJnZXQ7CisgICAgICAgIGludCBzaXplID0gbV9jUG9pbnRzXy5sZW5ndGgoKSAtIG1fY1BvaW50c09mZnNldF87CisgICAgICAgIGlmIChzaXplID09IHQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIHQubV9jUG9pbnRzT2Zmc2V0XykgeworICAgICAgICAgICAgcmV0dXJuIHQubV9jUG9pbnRzXy5yZWdpb25NYXRjaGVzKHQubV9jUG9pbnRzT2Zmc2V0XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2NQb2ludHNfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY1BvaW50c09mZnNldF8sIHNpemUpOworICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogTWF4aW11bSBzdHJlbmd0aCB1c2VkIGluIENFIGJ1aWxkaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0JBU0lDX1NUUkVOR1RIX0xJTUlUXyA9IDM7CisgICAgLyoqCisgICAgICogTWF4aW11bSBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1RSRU5HVEhfTElNSVRfID0gMTY7CisgICAgLyoqCisgICAgICogU3RyZW5ndGggbWFzayBhcnJheSwgdXNlZCBpbiBpbnZlcnNlIFVDQQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVFJFTkdUSF9NQVNLX1tdID0gezB4RkZGRjAwMDAsIDB4RkZGRkZGMDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkZ9OworICAgIC8qKgorICAgICAqIENFIHRhZyBmb3Igbm90IGZvdW5kCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX05PVF9GT1VORF8gPSAweEYwMDAwMDAwOworICAgIC8qKgorICAgICAqIENFIHRhZyBmb3Igbm90IGZvdW5kCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX05PVF9GT1VORF9UQUdfID0gMDsKKyAgICAvKioKKyAgICAgKiBUaGlzIGNvZGUgcG9pbnQgcmVzdWx0cyBpbiBhbiBleHBhbnNpb24gCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0VYUEFOU0lPTl9UQUdfID0gMTsKKyAgICAvKiogCisgICAgICogU3RhcnQgb2YgYSBjb250cmFjdGlvbiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVFJBQ1RJT05fVEFHXyA9IDI7CisgICAgLyoqIAorICAgICAqIFRoYWkgY2hhcmFjdGVyIC0gZG8gdGhlIHJlb3JkZXJpbmcgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1RIQUlfVEFHXyA9IDM7ICAgICAgICAgICAgCisgICAgLyoqIAorICAgICAqIENoYXJzZXQgcHJvY2Vzc2luZywgbm90IHlldCBpbXBsZW1lbnRlZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DSEFSU0VUX1RBR18gPSA0OyAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBMZWFkIHN1cnJvZ2F0ZSB0aGF0IGlzIHRhaWxvcmVkIGFuZCBkb2Vzbid0IHN0YXJ0IGEgY29udHJhY3Rpb24gCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1NVUlJPR0FURV9UQUdfID0gNTsKKyAgICAvKiogCisgICAgICogQUMwMC1EN0FGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0hBTkdVTF9TWUxMQUJMRV9UQUdfID0gNjsKKyAgICAvKiogCisgICAgICogRDgwMC1EQkZGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0xFQURfU1VSUk9HQVRFX1RBR18gPSA3OworICAgIC8qKiAKKyAgICAgKiBEQzAwLURGRkYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVFJBSUxfU1VSUk9HQVRFX1RBR18gPSA4OyAKKyAgICAvKiogCisgICAgICogMHgzNDAwLTB4NERCNSwgMHg0RTAwLTB4OUZBNSwgMHhGOTAwLTB4RkEyRAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0pLX0lNUExJQ0lUX1RBR18gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9JTVBMSUNJVF9UQUdfID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1NQRUNfUFJPQ19UQUdfID0gMTE7CisgICAgLyoqIAorICAgICAqIFRoaXMgaXMgYSB0aHJlZSBieXRlIHByaW1hcnkgd2l0aCBzdGFydGluZyBzZWNvbmRhcmllcyBhbmQgdGVydGlhcmllcy4KKyAgICAgKiBJdCBmaXRzIGluIGEgc2luZ2xlIDMyIGJpdCBDRSBhbmQgaXMgdXNlZCBpbnN0ZWFkIG9mIGV4cGFuc2lvbiB0byBzYXZlCisgICAgICogc3BhY2Ugd2l0aG91dCBhZmZlY3RpbmcgdGhlIHBlcmZvcm1hbmNlIChob3BlZnVsbHkpIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9MT05HX1BSSU1BUllfVEFHXyA9IDEyOyAgCisgICAgLyoqIAorICAgICAqIFVuc2FmZSBVQ2hhciBoYXNoIHRhYmxlIHRhYmxlIHNpemUuIFNpemUgaXMgMzIgYnl0ZXMgZm9yIDEgYml0IGZvciBlYWNoIAorICAgICAqIGxhdGluIDEgY2hhciArIHNvbWUgcG93ZXIgb2YgdHdvIGZvciBoYXNoaW5nIHRoZSByZXN0IG9mIHRoZSBjaGFycy4gCisgICAgICogU2l6ZSBpbiBieXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TQUZFQ1BfVEFCTEVfU0laRV8gPSAxMDU2OworICAgIC8qKiAKKyAgICAgKiBNYXNrIHZhbHVlIGRvd24gdG8gInNvbWUgcG93ZXIgb2YgdHdvIiAtMS4gTnVtYmVyIG9mIGJpdHMsIG5vdCBudW0gb2YgCisgICAgICogYnl0ZXMuICAgICAgIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNBRkVDUF9UQUJMRV9NQVNLXyA9IDB4MWZmZjsKKyAgICAvKioKKyAgICAgKiBDYXNlIHZhbHVlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVUFBFUl9DQVNFXyA9IDB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JWEVEX0NBU0VfID0gMHg0MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVJfQ0FTRV8gPSAweDAwOworICAgIC8qKgorICAgICAqIEluaXRpYWwgdGFibGUgc2l6ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTklUX1RBQkxFX1NJWkVfID0gMTAyODsKKyAgICAvKioKKyAgICAgKiBIZWFkZXIgc2l6ZSwgY29waWVkIGZyb20gSUNVNEMsIHRvIGJlIGNoYW5nZWQgd2hlbiB0aGF0IHZhbHVlIGNoYW5nZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVBREVSX1NJWkVfID0gMHhDNDsKKyAgICAvKioKKyAgICAgKiBDb250cmFjdGlvbiB0YWJsZSBuZXcgZWxlbWVudCBpbmRpY2F0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfID0gMHhGRkZGRkY7CisgICAgLyoqCisgICAgICogUGFyc2VyIGZvciB0aGUgcnVsZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIENvbGxhdGlvblJ1bGVQYXJzZXIgbV9wYXJzZXJfOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgVUNBIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV91dGlsQ29sRUl0ZXJfOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgZGF0YSBtZW1iZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBDRUdlbmVyYXRvciBtX3V0aWxHZW5zX1tdID0ge25ldyBDRUdlbmVyYXRvcigpLCBuZXcgQ0VHZW5lcmF0b3IoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENFR2VuZXJhdG9yKCl9OworICAgIHByaXZhdGUgaW50IG1fdXRpbENFQnVmZmVyX1tdID0gbmV3IGludFtDRV9CQVNJQ19TVFJFTkdUSF9MSU1JVF9dOworICAgIHByaXZhdGUgaW50IG1fdXRpbEludEJ1ZmZlcl9bXSA9IG5ldyBpbnRbQ0VfU1RSRU5HVEhfTElNSVRfXTsKKyAgICBwcml2YXRlIEVsZW1lbnRzIG1fdXRpbEVsZW1lbnRfID0gbmV3IEVsZW1lbnRzKCk7CisgICAgcHJpdmF0ZSBFbGVtZW50cyBtX3V0aWxFbGVtZW50Ml8gPSBuZXcgRWxlbWVudHMoKTsKKyAgICBwcml2YXRlIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gbV91dGlsVG9rZW5fIAorICAgID0gbmV3IENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4oKTsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudEJ1ZmZlcl9bXSA9IG5ldyBpbnRbNl07ICAgICAKKyAgICBwcml2YXRlIGxvbmcgbV91dGlsTG9uZ0J1ZmZlcl9bXSA9IG5ldyBsb25nWzVdOworICAgIHByaXZhdGUgV2VpZ2h0UmFuZ2UgbV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bXSA9IAorICAgIHtuZXcgV2VpZ2h0UmFuZ2UoKSwgbmV3IFdlaWdodFJhbmdlKCksIAorICAgICBuZXcgV2VpZ2h0UmFuZ2UoKSwgbmV3IFdlaWdodFJhbmdlKCksIAorICAgICBuZXcgV2VpZ2h0UmFuZ2UoKX07IAorICAgIHByaXZhdGUgV2VpZ2h0UmFuZ2UgbV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bXSA9IAorICAgIHtuZXcgV2VpZ2h0UmFuZ2UoKSwgbmV3IFdlaWdodFJhbmdlKCksIAorICAgICBuZXcgV2VpZ2h0UmFuZ2UoKSwgbmV3IFdlaWdodFJhbmdlKCksIAorICAgICBuZXcgV2VpZ2h0UmFuZ2UoKX07IAorICAgIHByaXZhdGUgV2VpZ2h0UmFuZ2UgbV91dGlsV2VpZ2h0UmFuZ2VfID0gbmV3IFdlaWdodFJhbmdlKCk7CisgICAgcHJpdmF0ZSBjaGFyIG1fdXRpbENoYXJCdWZmZXJfW10gPSBuZXcgY2hhclsyNTZdOworICAgIHByaXZhdGUgQ2Fub25pY2FsSXRlcmF0b3IgbV91dGlsQ2FuSXRlcl8gPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIiIpOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBsaXN0aGVhZGVyIHBhcnNlZCBydWxlIHRva2VucworICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0QnVmZmVycyhDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuTGlzdEhlYWRlciBsaXN0aGVhZGVyKSAKKyAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIHRva2VuID0gbGlzdGhlYWRlci5tX2xhc3RfOworICAgICAgICBBcnJheXMuZmlsbChtX3V0aWxJbnRCdWZmZXJfLCAwLCBDRV9TVFJFTkdUSF9MSU1JVF8sIDApOworICAgICAgICAKKyAgICB0b2tlbi5tX3RvSW5zZXJ0XyA9IDE7CisgICAgbV91dGlsSW50QnVmZmVyX1t0b2tlbi5tX3N0cmVuZ3RoX10gPSAxOworICAgIHdoaWxlICh0b2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisgICAgICAgIGlmICh0b2tlbi5tX3ByZXZpb3VzXy5tX3N0cmVuZ3RoXyA8IHRva2VuLm1fc3RyZW5ndGhfKSB7IAorICAgICAgICAgICAgICAgIC8vIGdvaW5nIHVwCisgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9bdG9rZW4ubV9zdHJlbmd0aF9dID0gMDsKKyAgICAgICAgbV91dGlsSW50QnVmZmVyX1t0b2tlbi5tX3ByZXZpb3VzXy5tX3N0cmVuZ3RoX10gKys7CisgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5tX3ByZXZpb3VzXy5tX3N0cmVuZ3RoXyA+IHRva2VuLm1fc3RyZW5ndGhfKSB7IAorICAgICAgICAgICAgICAgIC8vIGdvaW5nIGRvd24KKyAgICAgICAgbV91dGlsSW50QnVmZmVyX1t0b2tlbi5tX3ByZXZpb3VzXy5tX3N0cmVuZ3RoX10gPSAxOworICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9bdG9rZW4ubV9zdHJlbmd0aF9dICsrOworICAgICAgICB9CisgICAgICAgIHRva2VuID0gdG9rZW4ubV9wcmV2aW91c187CisgICAgICAgIHRva2VuLm1fdG9JbnNlcnRfID0gbV91dGlsSW50QnVmZmVyX1t0b2tlbi5tX3N0cmVuZ3RoX107CisgICAgfSAKKyAgICAgICAgCisgICAgdG9rZW4ubV90b0luc2VydF8gPSBtX3V0aWxJbnRCdWZmZXJfW3Rva2VuLm1fc3RyZW5ndGhfXTsKKyAgICBJTlZFUlNFX1VDQV8uZ2V0SW52ZXJzZUdhcFBvc2l0aW9ucyhsaXN0aGVhZGVyKTsKKyAgICAgICAgCisgICAgdG9rZW4gPSBsaXN0aGVhZGVyLm1fZmlyc3RfOworICAgIGludCBmc3RyZW5ndGggPSBDb2xsYXRvci5JREVOVElDQUw7CisgICAgaW50IGluaXRzdHJlbmd0aCA9IENvbGxhdG9yLklERU5USUNBTDsKKyAgICAgICAgCisgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlBSSU1BUlldID0gbWVyZ2VDRShsaXN0aGVhZGVyLm1fYmFzZUNFXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5TRUNPTkRBUlldID0gbWVyZ2VDRShsaXN0aGVhZGVyLm1fYmFzZUNFXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5URVJUSUFSWV0gPSBtZXJnZUNFKGxpc3RoZWFkZXIubV9iYXNlQ0VfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgd2hpbGUgKHRva2VuICE9IG51bGwpIHsKKyAgICAgICAgZnN0cmVuZ3RoID0gdG9rZW4ubV9zdHJlbmd0aF87CisgICAgICAgIGlmIChmc3RyZW5ndGggPCBpbml0c3RyZW5ndGgpIHsKKyAgICAgICAgaW5pdHN0cmVuZ3RoID0gZnN0cmVuZ3RoOworICAgICAgICBpZiAobGlzdGhlYWRlci5tX3Bvc19bZnN0cmVuZ3RoXSA9PSAtMSkgeworICAgICAgICAgICAgd2hpbGUgKGxpc3RoZWFkZXIubV9wb3NfW2ZzdHJlbmd0aF0gPT0gLTEgJiYgZnN0cmVuZ3RoID4gMCkgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZnN0cmVuZ3RoLS07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGlzdGhlYWRlci5tX3Bvc19bZnN0cmVuZ3RoXSA9PSAtMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW50ZXJuYWwgcHJvZ3JhbSBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbml0c3RyZW5ndGggPT0gQ29sbGF0b3IuVEVSVElBUlkpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0aW5nIHdpdGggdGVydGlhcnkKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5QUklNQVJZXSAKKyAgICAgICAgICAgID0gbGlzdGhlYWRlci5tX2dhcHNMb19bZnN0cmVuZ3RoICogM107CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuU0VDT05EQVJZXSAKKyAgICAgICAgICAgID0gbGlzdGhlYWRlci5tX2dhcHNMb19bZnN0cmVuZ3RoICogMyArIDFdOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlRFUlRJQVJZXSA9IGdldENFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuVEVSVElBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBmc3RyZW5ndGgpOyAKKyAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpbml0c3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7IAorICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmRhcmllcworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlBSSU1BUlldIAorICAgICAgICAgICAgPSBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1tmc3RyZW5ndGggKiAzXTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5TRUNPTkRBUlldIAorICAgICAgICAgICAgPSBnZXRDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuU0VDT05EQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgZnN0cmVuZ3RoKTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5URVJUSUFSWV0gCisgICAgICAgICAgICA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuVEVSVElBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICAvLyBwcmltYXJpZXMgCisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuUFJJTUFSWV0gCisgICAgICAgICAgICA9IGdldENFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuUFJJTUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb18sIAorICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV8sIAorICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIGZzdHJlbmd0aCk7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuU0VDT05EQVJZXSAKKyAgICAgICAgICAgID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlNFQ09OREFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5URVJUSUFSWV0gCisgICAgICAgICAgICA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5URVJUSUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgaWYgKHRva2VuLm1fc3RyZW5ndGhfID09IENvbGxhdG9yLlRFUlRJQVJZKSB7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuVEVSVElBUlldIAorICAgICAgICAgICAgPSBnZXROZXh0R2VuZXJhdGVkKG1fdXRpbEdlbnNfW0NvbGxhdG9yLlRFUlRJQVJZXSk7CisgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4ubV9zdHJlbmd0aF8gPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuU0VDT05EQVJZXSAKKyAgICAgICAgICAgID0gZ2V0TmV4dEdlbmVyYXRlZChtX3V0aWxHZW5zX1tDb2xsYXRvci5TRUNPTkRBUlldKTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5URVJUSUFSWV0gCisgICAgICAgICAgICA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuVEVSVElBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4ubV9zdHJlbmd0aF8gPT0gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlBSSU1BUlldIAorICAgICAgICAgICAgPSBnZXROZXh0R2VuZXJhdGVkKAorICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5QUklNQVJZXSk7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuU0VDT05EQVJZXSAKKyAgICAgICAgICAgID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5TRUNPTkRBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlRFUlRJQVJZXSAKKyAgICAgICAgICAgID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5URVJUSUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRvQ0UobV91dGlsQ0VCdWZmZXJfLCB0b2tlbik7CisgICAgICAgIHRva2VuID0gdG9rZW4ubV9uZXh0XzsKKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuZXh0IGdlbmVyYXRlZCBjZQorICAgICAqIEBwYXJhbSBnIGNlIGdlbmVyYXRvcgorICAgICAqIEByZXR1cm4gbmV4dCBnZW5lcmF0ZWQgY2UgCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0TmV4dEdlbmVyYXRlZChDRUdlbmVyYXRvciBnKSAKKyAgICB7CisgICAgICAgIGcubV9jdXJyZW50XyA9IG5leHRXZWlnaHQoZyk7CisgICAgICAgIHJldHVybiBnLm1fY3VycmVudF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGcgQ0VHZW5lcmF0b3IKKyAgICAgKiBAcGFyYW0gdG9rZW4gcnVsZSB0b2tlbgorICAgICAqIEBwYXJhbSBzdHJlbmd0aCAKKyAgICAgKiBAcmV0dXJuIGNlIGdlbmVyYXRvcgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFNpbXBsZUNFR2VuZXJhdG9yKENFR2VuZXJhdG9yIGcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gdG9rZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJlbmd0aCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50IGhpZ2gsIGxvdywgY291bnQgPSAxOworICAgICAgICBpbnQgbWF4Ynl0ZSA9IChzdHJlbmd0aCA9PSBDb2xsYXRvci5URVJUSUFSWSkgPyAweDNGIDogMHhGRjsKKworICAgIGlmIChzdHJlbmd0aCA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsKKyAgICAgICAgbG93ID0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXyA8PCAyNDsKKyAgICAgICAgaGlnaCA9IDB4RkZGRkZGRkY7CisgICAgICAgIGNvdW50ID0gMHhGRiAtIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9UT1BfMl87CisgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIGxvdyA9IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXyA8PCAyNDsgLy8weDA1MDAwMDAwOworICAgICAgICBoaWdoID0gMHg0MDAwMDAwMDsKKyAgICAgICAgY291bnQgPSAweDQwIC0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fOworICAgIH0KKyAgICAKKyAgICBpZiAodG9rZW4ubV9uZXh0XyAhPSBudWxsICYmIHRva2VuLm1fbmV4dF8ubV9zdHJlbmd0aF8gPT0gc3RyZW5ndGgpIHsKKyAgICAgICAgY291bnQgPSB0b2tlbi5tX25leHRfLm1fdG9JbnNlcnRfOworICAgIH0gCisgICAgCisgICAgZy5tX3Jhbmdlc0xlbmd0aF8gPSBhbGxvY2F0ZVdlaWdodHMobG93LCBoaWdoLCBjb3VudCwgbWF4Ynl0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcubV9yYW5nZXNfKTsKKyAgICBnLm1fY3VycmVudF8gPSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl8gPDwgMjQ7CisgICAgCisgICAgaWYgKGcubV9yYW5nZXNMZW5ndGhfID09IDApIHsKKyAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW50ZXJuYWwgcHJvZ3JhbSBlcnJvciIpOworICAgIH0KKyAgICByZXR1cm4gZy5tX2N1cnJlbnRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbWJpbmVzIDIgY2UgaW50byBvbmUgd2l0aCByZXNwZWN0IHRvIHRoZSBhcmd1bWVudCBzdHJlbmd0aAorICAgICAqIEBwYXJhbSBjZTEgZmlyc3QgY2UKKyAgICAgKiBAcGFyYW0gY2UyIHNlY29uZCBjZQorICAgICAqIEBwYXJhbSBzdHJlbmd0aCBzdHJlbmd0aCB0byB1c2UKKyAgICAgKiBAcmV0dXJuIGNvbWJpbmVkIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1lcmdlQ0UoaW50IGNlMSwgaW50IGNlMiwgaW50IHN0cmVuZ3RoKSAKKyAgICB7CisgICAgICAgIGludCBtYXNrID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEVSVElBUllfTUFTS187CisgICAgICAgIGlmIChzdHJlbmd0aCA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsKKyAgICAgICAgICAgIG1hc2sgPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICAgICAgbWFzayA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgY2UxICY9IG1hc2s7CisgICAgICAgIGNlMiAmPSBtYXNrOworICAgICAgICBzd2l0Y2ggKHN0cmVuZ3RoKSAKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBDb2xsYXRvci5QUklNQVJZOgorICAgICAgICAgICAgICAgIHJldHVybiBjZTEgfCBjZTIgPj4+IDE2OworICAgICAgICAgICAgY2FzZSBDb2xsYXRvci5TRUNPTkRBUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNlMSA8PCAxNiB8IGNlMiA8PCA4OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gY2UxIDw8IDI0IHwgY2UyIDw8IDE2OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBnIENFR2VuZXJhdG9yCisgICAgICogQHBhcmFtIGxvd3MgbG93IGdhcCBhcnJheQorICAgICAqIEBwYXJhbSBoaWdocyBoaWdoIGdhcCBhcnJheQorICAgICAqIEBwYXJhbSB0b2tlbiBydWxlIHRva2VuCisgICAgICogQHBhcmFtIGZzdHJlbmd0aCAKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnRlcm5hbCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRDRUdlbmVyYXRvcihDRUdlbmVyYXRvciBnLCBpbnQgbG93c1tdLCBpbnQgaGlnaHNbXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbiwgaW50IGZzdHJlbmd0aCkgCisgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICBpbnQgc3RyZW5ndGggPSB0b2tlbi5tX3N0cmVuZ3RoXzsKKyAgICBpbnQgbG93ID0gbG93c1tmc3RyZW5ndGggKiAzICsgc3RyZW5ndGhdOworICAgIGludCBoaWdoID0gaGlnaHNbZnN0cmVuZ3RoICogMyArIHN0cmVuZ3RoXTsKKyAgICBpbnQgbWF4Ynl0ZSA9IDA7CisgICAgaWYoc3RyZW5ndGggPT0gQ29sbGF0b3IuVEVSVElBUlkpIHsKKyAgICAgICAgbWF4Ynl0ZSA9IDB4M0Y7CisgICAgfSBlbHNlIGlmKHN0cmVuZ3RoID09IENvbGxhdG9yLlBSSU1BUlkpIHsKKyAgICAgICAgbWF4Ynl0ZSA9IDB4RkU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbWF4Ynl0ZSA9IDB4RkY7CisgICAgfQorICAgIAorICAgIGludCBjb3VudCA9IHRva2VuLm1fdG9JbnNlcnRfOworICAgIAorICAgIGlmIChVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChsb3csIGhpZ2gpID49IDAgCisgICAgICAgICAgICAmJiBzdHJlbmd0aCA+IENvbGxhdG9yLlBSSU1BUlkpIHsKKyAgICAgICAgaW50IHMgPSBzdHJlbmd0aDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgcyAtLTsKKyAgICAgICAgaWYgKGxvd3NbZnN0cmVuZ3RoICogMyArIHNdICE9IGhpZ2hzW2ZzdHJlbmd0aCAqIDMgKyBzXSkgeworICAgICAgICAgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICAgICAgbG93ID0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXyA8PCAyNDsKKyAgICAgICAgICAgIGhpZ2ggPSAweEZGRkZGRkZGOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb3cgPSAweDAyMDAwMDAwOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgY2hlY2tlZCAtIHdoYXQgaWYgbG93IGlzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgZ29vZC4uLgorICAgICAgICAgICAgaGlnaCA9IDB4NDAwMDAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAocyA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfSAKKyAgICBpZiAobG93ID09IDApIHsKKyAgICAgICAgbG93ID0gMHgwMTAwMDAwMDsKKyAgICB9CisgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeyAvLyBzaW1pbGFyIGFzIHNpbXBsZSAKKyAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvdywgCisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9CT1RUT01fMl8gPDwgMjQpID49IDAKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChsb3csIAorICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0KSA8IDApIHsKKyAgICAgICAgbG93ID0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXyA8PCAyNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGhpZ2gsIAorICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fQk9UVE9NXzJfIDw8IDI0KSA+IDAgCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoaGlnaCwgCisgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9UT1BfMl8gPDwgMjQpIDwgMCkgeworICAgICAgICBoaWdoID0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXyA8PCAyNDsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvdywgCisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9CT1RUT01fMl8gPDwgMjQpIDwgMCkgeworICAgICAgICBnLm1fcmFuZ2VzTGVuZ3RoXyA9IGFsbG9jYXRlV2VpZ2h0cygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX1VOU0hJRlRFRF9NSU5fIDw8IDI0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWdoLCBjb3VudCwgbWF4Ynl0ZSwgZy5tX3Jhbmdlc18pOworICAgICAgICBnLm1fY3VycmVudF8gPSBuZXh0V2VpZ2h0KGcpOworICAgICAgICAvL2cubV9jdXJyZW50XyA9IFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9CT1RUT01fMl8gPDwgMjQ7CisgICAgICAgIHJldHVybiBnLm1fY3VycmVudF87CisgICAgICAgIH0KKyAgICB9IAorICAgIAorICAgIGcubV9yYW5nZXNMZW5ndGhfID0gYWxsb2NhdGVXZWlnaHRzKGxvdywgaGlnaCwgY291bnQsIG1heGJ5dGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLm1fcmFuZ2VzXyk7CisgICAgaWYgKGcubV9yYW5nZXNMZW5ndGhfID09IDApIHsKKyAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW50ZXJuYWwgcHJvZ3JhbSBlcnJvciIpOworICAgIH0KKyAgICBnLm1fY3VycmVudF8gPSBuZXh0V2VpZ2h0KGcpOworICAgIHJldHVybiBnLm1fY3VycmVudF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGNlcGFydHMgbGlzdCBvZiBjb2xsYXRpb24gZWxlbWVudHMgcGFydHMKKyAgICAgKiBAcGFyYW0gdG9rZW4gcnVsZSB0b2tlbgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGZvcm1pbmcgY2FzZSBiaXRzIGZvciBleHBhbnNpb25zIGZhaWxzCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRvQ0UoaW50IGNlcGFydHNbXSwgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbikgCisgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gdGhpcyBvbmUgbWFrZXMgdGhlIHRhYmxlIGFuZCBzdHVmZgorICAgIC8vIGludCBub29mYnl0ZXNbXSA9IG5ldyBpbnRbM107CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpICsrKSB7CisgICAgICAgIC8vIG5vb2ZieXRlc1tpXSA9IGNvdW50Qnl0ZXMoY2VwYXJ0c1tpXSk7CisgICAgICAgICAgICBtX3V0aWxJbnRCdWZmZXJfW2ldID0gY291bnRCeXRlcyhjZXBhcnRzW2ldKTsKKyAgICB9CisgICAgCisgICAgLy8gSGVyZSB3ZSBoYXZlIHRvIHBhY2sgQ0VzIGZyb20gcGFydHMKKyAgICBpbnQgY2VpID0gMDsKKyAgICBpbnQgdmFsdWUgPSAwOworICAgIAorICAgIHdoaWxlICgoY2VpIDw8IDEpIDwgbV91dGlsSW50QnVmZmVyX1swXSB8fCBjZWkgPCBtX3V0aWxJbnRCdWZmZXJfWzFdIAorICAgICAgICAgICAgICAgfHwgY2VpIDwgbV91dGlsSW50QnVmZmVyX1syXSkgeworICAgICAgICBpZiAoY2VpID4gMCkgeworICAgICAgICB2YWx1ZSA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICB9IGVsc2UgeworICAgICAgICB2YWx1ZSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICgoY2VpIDw8IDEpIDwgbV91dGlsSW50QnVmZmVyX1swXSkgeworICAgICAgICB2YWx1ZSB8PSAoKGNlcGFydHNbMF0gPj4gKDMyIC0gKChjZWkgKyAxKSA8PCA0KSkpICYgMHhGRkZGKSAKKyAgICAgICAgICAgICAgICAgICAgICA8PCAxNjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2VpIDwgbV91dGlsSW50QnVmZmVyX1sxXSkgeworICAgICAgICB2YWx1ZSB8PSAoKGNlcGFydHNbMV0gPj4gKDMyIC0gKChjZWkgKyAxKSA8PCAzKSkpICYgMHhGRikgPDwgODsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGlmIChjZWkgPCBtX3V0aWxJbnRCdWZmZXJfWzJdKSB7CisgICAgICAgIHZhbHVlIHw9ICgoY2VwYXJ0c1syXSA+PiAoMzIgLSAoKGNlaSsxKSA8PCAzKSkpICYgMHgzRik7CisgICAgICAgIH0KKyAgICAgICAgdG9rZW4ubV9DRV9bY2VpXSA9IHZhbHVlOworICAgICAgICBjZWkgKys7CisgICAgfQorICAgIGlmIChjZWkgPT0gMCkgeyAvLyB0b3RhbGx5IGlnbm9yYWJsZQorICAgICAgICB0b2tlbi5tX0NFTGVuZ3RoXyA9IDE7CisgICAgICAgIHRva2VuLm1fQ0VfWzBdID0gMDsKKyAgICB9IAorICAgIGVsc2UgeyAvLyB0aGVyZSBpcyBhdCBsZWFzdCBzb21ldGhpbmcKKyAgICAgICAgdG9rZW4ubV9DRUxlbmd0aF8gPSBjZWk7CisgICAgfQorICAgICAgICAgIAorICAgIC8vIENhc2UgYml0cyBoYW5kbGluZyBmb3IgZXhwYW5zaW9uCisgICAgaWYodG9rZW4ubV9DRV9bMF0gIT0gMCkgeyAvLyBjYXNlIGJpdHMgc2hvdWxkIGJlIHNldCBvbmx5IGZvciBub24taWdub3JhYmxlcworICAgICAgICBpbnQgc3RhcnRvZnRva2VucnVsZSA9IHRva2VuLm1fc291cmNlXyAmIDB4RkY7CisgICAgICAgIGlmICgodG9rZW4ubV9zb3VyY2VfID4+PiAyNCkgPiAxKSB7CisgICAgICAgICAgICAvLyBEbyBpdCBtYW51YWxseQorICAgICAgICAgICAgaW50IGxlbmd0aCA9IHRva2VuLm1fc291cmNlXyA+Pj4gMjQ7CisgICAgICAgICAgICBTdHJpbmcgdG9rZW5zdHIgPSB0b2tlbi5tX3J1bGVzXy5zdWJzdHJpbmcoc3RhcnRvZnRva2VucnVsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0b2Z0b2tlbnJ1bGUgKyBsZW5ndGgpOworICAgICAgICAgICAgdG9rZW4ubV9DRV9bMF0gfD0gZ2V0Q2FzZUJpdHModG9rZW5zdHIpOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIENvcHkgaXQgZnJvbSB0aGUgVUNBCisgICAgICAgICAgICBpbnQgY2FzZUNFIAorICAgICAgICAgICAgPSBnZXRGaXJzdENFKHRva2VuLm1fcnVsZXNfLmNoYXJBdChzdGFydG9mdG9rZW5ydWxlKSk7CisgICAgICAgICAgICB0b2tlbi5tX0NFX1swXSB8PSAoY2FzZUNFICYgMHhDMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ291bnQgdGhlIG51bWJlciBvZiBub24temVybyBieXRlcyB1c2VkIGluIHRoZSBjZQorICAgICAqIEBwYXJhbSBjZSAKKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiBub24temVybyBieXRlcyB1c2VkIGluIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNvdW50Qnl0ZXMoaW50IGNlKSAgIAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaW50IG1hc2sgPSAweEZGRkZGRkZGOyAgIAorICAgIGludCByZXN1bHQgPSAwOyAgICAgICAgICAgICAgCisgICAgd2hpbGUgKG1hc2sgIT0gMCkgeyAgICAgICAgICAgIAorICAgICAgICBpZiAoKGNlICYgbWFzaykgIT0gMCkgeyAKKyAgICAgICAgcmVzdWx0ICsrOyAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIG1hc2sgPj4+PSA4OyAgICAgICAgICAgICAgICAgCisgICAgfSAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFdlIGFyZSByZWFkeSB0byBjcmVhdGUgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUgdG8gaW5zZXJ0CisgICAgICogQHBhcmFtIGxoIHJ1bGUgdG9rZW4gbGlzdCBoZWFkZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlRWxlbWVudHMoQnVpbGRUYWJsZSB0LCAKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuTGlzdEhlYWRlciBsaCkKKyAgICB7CisgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2sgPSBsaC5tX2ZpcnN0XzsKKyAgICBtX3V0aWxFbGVtZW50Xy5jbGVhcigpOworICAgIHdoaWxlICh0b2sgIT0gbnVsbCkgeworICAgICAgICAvLyBmaXJzdCwgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBleHBhbnNpb25zCisgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBleHBhbnNpb25zLCB3ZSBuZWVkIHRvIGRvIGEgbGl0dGxlIGJpdCBtb3JlIAorICAgICAgICAvLyBwcm9jZXNzaW5nIHNpbmNlIHBhcnRzIG9mIGV4cGFuc2lvbiBjYW4gYmUgdGFpbG9yZWQsIHdoaWxlIAorICAgICAgICAvLyBvdGhlcnMgYXJlIG5vdAorICAgICAgICBpZiAodG9rLm1fZXhwYW5zaW9uXyAhPSAwKSB7CisgICAgICAgIGludCBsZW4gPSB0b2subV9leHBhbnNpb25fID4+PiAyNDsKKyAgICAgICAgaW50IGN1cnJlbnRTZXF1ZW5jZUxlbiA9IGxlbjsKKyAgICAgICAgaW50IGV4cE9mZnNldCA9IHRvay5tX2V4cGFuc2lvbl8gJiAweDAwRkZGRkZGOworICAgICAgICBtX3V0aWxUb2tlbl8ubV9zb3VyY2VfID0gY3VycmVudFNlcXVlbmNlTGVuIHwgZXhwT2Zmc2V0OworICAgICAgICBtX3V0aWxUb2tlbl8ubV9ydWxlc18gPSBtX3BhcnNlcl8ubV9zb3VyY2VfOworICAgIAorICAgICAgICB3aGlsZSAobGVuID4gMCkgeworICAgICAgICAgICAgY3VycmVudFNlcXVlbmNlTGVuID0gbGVuOworICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRTZXF1ZW5jZUxlbiA+IDApIHsKKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3NvdXJjZV8gPSAoY3VycmVudFNlcXVlbmNlTGVuIDw8IDI0KSAKKyAgICAgICAgICAgICAgICB8IGV4cE9mZnNldDsKKyAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gZXhwdCA9IAorICAgICAgICAgICAgICAgIChDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuKQorICAgICAgICAgICAgICAgIG1fcGFyc2VyXy5tX2hhc2hUYWJsZV8uZ2V0KG1fdXRpbFRva2VuXyk7CisgICAgICAgICAgICBpZiAoZXhwdCAhPSBudWxsIAorICAgICAgICAgICAgICAgICYmIGV4cHQubV9zdHJlbmd0aF8gCisgICAgICAgICAgICAgICAgIT0gQ29sbGF0aW9uUnVsZVBhcnNlci5UT0tFTl9SRVNFVF8pIHsgCisgICAgICAgICAgICAgICAgLy8gZXhwYW5zaW9uIGlzIHRhaWxvcmVkCisgICAgICAgICAgICAgICAgaW50IG5vT2ZDRXNUb0NvcHkgPSBleHB0Lm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbm9PZkNFc1RvQ29weTsgaiArKykgeworICAgICAgICAgICAgICAgIHRvay5tX2V4cENFX1t0b2subV9leHBDRUxlbmd0aF8gKyBqXSAKKyAgICAgICAgICAgICAgICAgICAgPSBleHB0Lm1fQ0VfW2pdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0b2subV9leHBDRUxlbmd0aF8gKz0gbm9PZkNFc1RvQ29weTsKKyAgICAgICAgICAgICAgICAvLyBuZXZlciB0cnkgdG8gYWRkIGNvZGVwb2ludHMgYW5kIENFcy4KKyAgICAgICAgICAgICAgICAvLyBGb3Igc29tZSBvZGQgcmVhc29uLCBpdCB3b24ndCB3b3JrLgorICAgICAgICAgICAgICAgIGV4cE9mZnNldCArPSBjdXJyZW50U2VxdWVuY2VMZW47IC8vbm9PZkNFc1RvQ29weTsKKyAgICAgICAgICAgICAgICBsZW4gLT0gY3VycmVudFNlcXVlbmNlTGVuOyAvL25vT2ZDRXNUb0NvcHk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY3VycmVudFNlcXVlbmNlTGVuIC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1cnJlbnRTZXF1ZW5jZUxlbiA9PSAwKSB7IAorICAgICAgICAgICAgLy8gY291bGRuJ3QgZmluZCBhbnkgdGFpbG9yZWQgc3Vic2VxdWVuY2UsIHdpbGwgaGF2ZSB0byAKKyAgICAgICAgICAgIC8vIGdldCBvbmUgZnJvbSBVQ0EuIGZpcnN0LCBnZXQgdGhlIFVDaGFycyBmcm9tIHRoZSAKKyAgICAgICAgICAgIC8vIHJ1bGVzIHRoZW4gcGljayBDRXMgb3V0IHVudGlsIHRoZXJlIGlzIG5vIG1vcmUgYW5kIAorICAgICAgICAgICAgLy8gc3R1ZmYgdGhlbSBpbnRvIGV4cGFuc2lvbgorICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBPZmZzZXQsIGV4cE9mZnNldCArIDEpKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IG9yZGVyID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAob3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0b2subV9leHBDRV9bdG9rLm1fZXhwQ0VMZW5ndGhfICsrXSA9IG9yZGVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhwT2Zmc2V0ICsrOworICAgICAgICAgICAgbGVuIC0tOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICB0b2subV9leHBDRUxlbmd0aF8gPSAwOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHNldCB0aGUgdWNhZWxlbWVudCB3aXRoIG9idGFpbmVkIHZhbHVlcworICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSB0b2subV9DRUxlbmd0aF8gKyB0b2subV9leHBDRUxlbmd0aF87CisgICAgICAgICAgICAKKyAgICAgICAgLy8gY29weSBDRXMKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0b2subV9DRV8sIDAsIG1fdXRpbEVsZW1lbnRfLm1fQ0VzXywgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvay5tX0NFTGVuZ3RoXyk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodG9rLm1fZXhwQ0VfLCAwLCBtX3V0aWxFbGVtZW50Xy5tX0NFc18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2subV9DRUxlbmd0aF8sIHRvay5tX2V4cENFTGVuZ3RoXyk7CisgICAgCisgICAgICAgIC8vIGNvcHkgVUNoYXJzIAorICAgICAgICAvLyBXZSBrZXB0IHByZWZpeCBhbmQgc291cmNlIGtpbmQgb2YgdG9nZXRoZXIsIGFzIGl0IGlzIGEga2luZCBvZiBhIAorICAgICAgICAvLyBjb250cmFjdGlvbi4gCisgICAgICAgIC8vIEhvd2V2ZXIsIG5vdyB3ZSBoYXZlIHRvIHNsaWNlIHRoZSBwcmVmaXggb2ZmIHRoZSBtYWluIHRoaW5nIC0gCisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7Ly8gZWwubV9wcmVmaXhDaGFyc187CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c09mZnNldF8gPSAwOyAvL2VsLm1fdWNoYXJzXzsKKyAgICAgICAgaWYgKHRvay5tX3ByZWZpeF8gIT0gMCkgeyAKKyAgICAgICAgLy8gd2Ugd2lsbCBqdXN0IGNvcHkgdGhlIHByZWZpeCBoZXJlLCBhbmQgYWRqdXN0IGFjY29yZGluZ2x5IGluIAorICAgICAgICAvLyB0aGUgYWRkUHJlZml4IGZ1bmN0aW9uIGluIHVjb2xfZWxtLiBUaGUgcmVhc29uIGlzIHRoYXQgd2UgCisgICAgICAgIC8vIG5lZWQgdG8gYWRkIGJvdGggY29tcG9zZWQgQU5EIGRlY29tcG9zZWQgZWxlbWVudHMgdG8gdGhlIAorICAgICAgICAvLyB1bnNhZmUgdGFibGUuCisgICAgICAgIGludCBzaXplID0gdG9rLm1fcHJlZml4XyA+PiAyNDsKKyAgICAgICAgaW50IG9mZnNldCA9IHRvay5tX3ByZWZpeF8gJiAweDAwRkZGRkZGOworICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeENoYXJzXyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCBvZmZzZXQgKyBzaXplKTsKKyAgICAgICAgc2l6ZSA9ICh0b2subV9zb3VyY2VfID4+IDI0KSAtICh0b2subV9wcmVmaXhfID4+IDI0KTsgCisgICAgICAgIG9mZnNldCA9ICh0b2subV9zb3VyY2VfICYgMHgwMEZGRkZGRikgKyAodG9rLm1fcHJlZml4XyA+PiAyNCk7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCBvZmZzZXQgKyBzaXplKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4Q2hhcnNfID0gbnVsbDsKKyAgICAgICAgaW50IG9mZnNldCA9IHRvay5tX3NvdXJjZV8gJiAweDAwRkZGRkZGOworICAgICAgICBpbnQgc2l6ZSA9IHRvay5tX3NvdXJjZV8gPj4+IDI0OworICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc18gPSBtX3BhcnNlcl8ubV9zb3VyY2VfLnN1YnN0cmluZyhvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArIHNpemUpOworICAgICAgICB9CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc187CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXy5sZW5ndGgoKSAKKyAgICAgICAgICAgICAtIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c09mZnNldF87IGkgKyspIHsKKyAgICAgICAgaWYgKGlzSmFtbyhtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qKioKKyAgICAKKyAgICAgICAgICAgIC8vIENhc2UgYml0cyBoYW5kbGluZyAKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1swXSAmPSAweEZGRkZGRjNGOyAKKyAgICAgICAgLy8gQ2xlYW4gdGhlIGNhc2UgYml0cyBmaWVsZAorICAgICAgICAgICAgaWYgKG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18ubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgLSBtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNPZmZzZXRfID4gMSkgeworICAgICAgICAvLyBEbyBpdCBtYW51YWxseQorICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFc19bMF0gCisgICAgICAgIHw9IGdldENhc2VCaXRzKG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18pOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAvLyBDb3B5IGl0IGZyb20gdGhlIFVDQQorICAgICAgICBpbnQgY2FzZUNFID0gZ2V0Rmlyc3RDRShtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfLmNoYXJBdCgwKSk7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1swXSB8PSAoY2FzZUNFICYgMHhDMCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAqKiovCisgICAgICAgIC8vIGFuZCB0aGVuLCBhZGQgaXQKKyAgICAgICAgYWRkQW5FbGVtZW50KHQsIG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgdG9rID0gdG9rLm1fbmV4dF87CisgICAgfSAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIGlmIHRoZSBzdHJpbmcgYXJndW1lbnQgaGFzIGNhc2UKKyAgICAgKiBAcGFyYW0gc3JjIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIGNhc2UgZm9yIHRoaXMgY2hhciBhcnJheQorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIHByb2dyYW0gZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0Q2FzZUJpdHMoU3RyaW5nIHNyYykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICBpbnQgdUNvdW50ID0gMDsgCisgICAgaW50IGxDb3VudCA9IDA7CisgICAgc3JjID0gTm9ybWFsaXplci5kZWNvbXBvc2Uoc3JjLCB0cnVlKTsKKyAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChzcmMpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3JjLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoc3JjLnN1YnN0cmluZyhpLCBpICsgMSkpOworICAgICAgICBpbnQgb3JkZXIgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24ob3JkZXIpKSB7CisgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKG9yZGVyICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ0FTRV9CSVRfTUFTS18pCisgICAgICAgID09IFVQUEVSX0NBU0VfKSB7CisgICAgICAgIHVDb3VudCArKzsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIGNoYXIgY2ggPSBzcmMuY2hhckF0KGkpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaCkpIHsKKyAgICAgICAgICAgIGxDb3VudCArKzsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAodG9TbWFsbEthbmEoY2gpID09IGNoICYmIHRvTGFyZ2VLYW5hKGNoKSAhPSBjaCkgeworICAgICAgICAgICAgbENvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIGlmICh1Q291bnQgIT0gMCAmJiBsQ291bnQgIT0gMCkgeworICAgICAgICByZXR1cm4gTUlYRURfQ0FTRV87CisgICAgfSAKKyAgICBlbHNlIGlmICh1Q291bnQgIT0gMCkgeworICAgICAgICByZXR1cm4gVVBQRVJfQ0FTRV87CisgICAgfSAKKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIExPV0VSX0NBU0VfOworICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydHMgYSBjaGFyIHRvIHRoZSB1cHBlcmNhc2UgS2FuYQorICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gY29udmVydAorICAgICAqIEByZXR1cm4gdGhlIGNvbnZlcnRlZCBLYW5hIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgdG9MYXJnZUthbmEoY2hhciBjaCkgCisgICAgeworICAgIGlmICgweDMwNDIgPCBjaCAmJiBjaCA8IDB4MzBlZikgeyAvLyBLYW5hIHJhbmdlIAorICAgICAgICBzd2l0Y2ggKGNoIC0gMHgzMDAwKSB7CisgICAgICAgIGNhc2UgMHg0MTogCisgICAgICAgIGNhc2UgMHg0MzogCisgICAgICAgIGNhc2UgMHg0NTogCisgICAgICAgIGNhc2UgMHg0NzogCisgICAgICAgIGNhc2UgMHg0OTogCisgICAgICAgIGNhc2UgMHg2MzogCisgICAgICAgIGNhc2UgMHg4MzogCisgICAgICAgIGNhc2UgMHg4NTogCisgICAgICAgIGNhc2UgMHg4RToKKyAgICAgICAgY2FzZSAweEExOiAKKyAgICAgICAgY2FzZSAweEEzOiAKKyAgICAgICAgY2FzZSAweEE1OiAKKyAgICAgICAgY2FzZSAweEE3OiAKKyAgICAgICAgY2FzZSAweEE5OiAKKyAgICAgICAgY2FzZSAweEMzOiAKKyAgICAgICAgY2FzZSAweEUzOiAKKyAgICAgICAgY2FzZSAweEU1OiAKKyAgICAgICAgY2FzZSAweEVFOgorICAgICAgICBjaCArKzsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMHhGNToKKyAgICAgICAgY2ggPSAweDMwQUI7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4RjY6CisgICAgICAgIGNoID0gMHgzMEIxOworICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY2g7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIGEgY2hhciB0byB0aGUgbG93ZXJjYXNlIEthbmEKKyAgICAgKiBAcGFyYW0gY2ggY2hhcmFjdGVyIHRvIGNvbnZlcnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb252ZXJ0ZWQgS2FuYSBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIHRvU21hbGxLYW5hKGNoYXIgY2gpIAorICAgIHsKKyAgICBpZiAoMHgzMDQyIDwgY2ggJiYgY2ggPCAweDMwZWYpIHsgLy8gS2FuYSByYW5nZQorICAgICAgICBzd2l0Y2ggKGNoIC0gMHgzMDAwKSB7CisgICAgICAgIGNhc2UgMHg0MjogCisgICAgICAgIGNhc2UgMHg0NDogCisgICAgICAgIGNhc2UgMHg0NjogCisgICAgICAgIGNhc2UgMHg0ODogCisgICAgICAgIGNhc2UgMHg0QTogCisgICAgICAgIGNhc2UgMHg2NDogCisgICAgICAgIGNhc2UgMHg4NDogCisgICAgICAgIGNhc2UgMHg4NjogCisgICAgICAgIGNhc2UgMHg4RjoKKyAgICAgICAgY2FzZSAweEEyOiAKKyAgICAgICAgY2FzZSAweEE0OiAKKyAgICAgICAgY2FzZSAweEE2OiAKKyAgICAgICAgY2FzZSAweEE4OiAKKyAgICAgICAgY2FzZSAweEFBOiAKKyAgICAgICAgY2FzZSAweEM0OiAKKyAgICAgICAgY2FzZSAweEU0OiAKKyAgICAgICAgY2FzZSAweEU2OiAKKyAgICAgICAgY2FzZSAweEVGOgorICAgICAgICBjaCAtLTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMHhBQjoKKyAgICAgICAgY2ggPSAweDMwRjU7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4QjE6CisgICAgICAgIGNoID0gMHgzMEY2OworICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBzaG91bGQgYmUgY29ubmVjdGVkIHRvIHNwZWNpYWwgSmFtbyBoYW5kbGluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRGaXJzdENFKGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoVUNoYXJhY3Rlci50b1N0cmluZyhjaCkpOworICAgIHJldHVybiBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogVGhpcyBhZGRzIGEgcmVhZCBlbGVtZW50LCB3aGlsZSB0ZXN0aW5nIGZvciBleGlzdGVuY2UgCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCAKKyAgICAgKiBAcmV0dXJuIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWRkQW5FbGVtZW50KEJ1aWxkVGFibGUgdCwgRWxlbWVudHMgZWxlbWVudCkgCisgICAgeworICAgICAgICBWZWN0b3IgZXhwYW5zaW9ucyA9IHQubV9leHBhbnNpb25zXzsKKyAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoZWxlbWVudC5tX0NFTGVuZ3RoXyA9PSAxKSB7CisgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gZWxlbWVudC5tX0NFc19bMF07CisKKyAgICAgICAgfSBlbHNlIHsgICAgIAorICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5LCBpdCBsb29rcyBsaWtlIHdlIGhhdmUgdG8gbG9vayBmb3IgYSBsb25nIHByaW1hcnkgCisgICAgICAgIC8vIGhlcmUgc2luY2UgaW4gY2Fub25pY2FsIGNsb3N1cmUgd2UgYXJlIGdvaW5nIHRvIGhpdCBzb21lIGxvbmcgCisgICAgICAgIC8vIHByaW1hcmllcyBmcm9tIHRoZSBmaXJzdCBwaGFzZSwgYW5kIHRoZXkgd2lsbCBjb21lIGJhY2sgYXMgCisgICAgICAgIC8vIGNvbnRpbnVhdGlvbnMvZXhwYW5zaW9ucyBkZXN0cm95aW5nIHRoZSBlZmZlY3Qgb2YgdGhlIHByZXZpb3VzIAorICAgICAgICAvLyBvcGl0aW1pemF0aW9uLiBBIGxvbmcgcHJpbWFyeSBpcyBhIHRocmVlIGJ5dGUgcHJpbWFyeSB3aXRoIAorICAgICAgICAvLyBzdGFydGluZyBzZWNvbmRhcmllcyBhbmQgdGVydGlhcmllcy4gSXQgY2FuIGFwcGVhciBpbiBsb25nIHJ1bnMgCisgICAgICAgIC8vIG9mIG9ubHkgcHJpbWFyeSBkaWZmZXJlbmNlcyAobGlrZSBlYXN0IEFzaWFuIHRhaWxvcmluZ3MpIGFsc28sIAorICAgICAgICAvLyBpdCBzaG91bGQgbm90IGJlIGFuIGV4cGFuc2lvbiwgYXMgZXhwYW5zaW9ucyB3b3VsZCBicmVhayB3aXRoIAorICAgICAgICAvLyB0aGlzCisgICAgICAgIGlmIChlbGVtZW50Lm1fQ0VMZW5ndGhfID09IDIgLy8gYSB0d28gQ0UgZXhwYW5zaW9uIAorICAgICAgICAmJiBSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihlbGVtZW50Lm1fQ0VzX1sxXSkgCisgICAgICAgICYmIChlbGVtZW50Lm1fQ0VzX1sxXSAKKyAgICAgICAgICAgICYgKH4oMHhGRiA8PCAyNCB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfKSkpIAorICAgICAgICA9PSAwIC8vIHRoYXQgaGFzIG9ubHkgcHJpbWFyaWVzIGluIGNvbnRpbnVhdGlvbgorICAgICAgICAmJiAoKChlbGVtZW50Lm1fQ0VzX1swXSA+PiA4KSAmIDB4RkYpIAorICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fKSAKKyAgICAgICAgLy8gYSBjb21tb24gc2Vjb25kYXJ5CisgICAgICAgICYmICgoZWxlbWVudC5tX0NFc19bMF0gJiAweEZGKSAKKyAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXykgLy8gYW5kIGEgY29tbW9uIHRlcnRpYXJ5CisgICAgICAgICkgeworICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgICAgIC8vIGEgbG9uZyBwcmltYXJ5IHNwZWNpYWwKKyAgICAgICAgICAgIHwgKENFX0xPTkdfUFJJTUFSWV9UQUdfIDw8IDI0KSAKKyAgICAgICAgICAgIC8vIGZpcnN0IGFuZCBzZWNvbmQgYnl0ZSBvZiBwcmltYXJ5CisgICAgICAgICAgICB8ICgoZWxlbWVudC5tX0NFc19bMF0gPj4gOCkgJiAweEZGRkYwMCkgCisgICAgICAgICAgICAvLyB0aGlyZCBieXRlIG9mIHByaW1hcnkKKyAgICAgICAgICAgIHwgKChlbGVtZW50Lm1fQ0VzX1sxXSA+PiAyNCkgJiAweEZGKTsgICAKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gb21pdHRpbmcgZXhwYW5zaW9uIG9mZnNldCBpbiBidWlsZGVyCisgICAgICAgICAgICAgICAgLy8gKEhFQURFUl9TSVpFXyA+PiAyKQorICAgICAgICBpbnQgZXhwYW5zaW9uID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgICAgIHwgKENFX0VYUEFOU0lPTl9UQUdfIAorICAgICAgICAgICAgICAgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEFHX1NISUZUXykgCisgICAgICAgICAgICB8IChhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgZWxlbWVudC5tX0NFc19bMF0pCisgICAgICAgICAgICAgICA8PCA0KSAmIDB4RkZGRkYwOworICAgIAorICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGVsZW1lbnQubV9DRUxlbmd0aF87IGkgKyspIHsKKyAgICAgICAgICAgIGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCBlbGVtZW50Lm1fQ0VzX1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVsZW1lbnQubV9DRUxlbmd0aF8gPD0gMHhGKSB7CisgICAgICAgICAgICBleHBhbnNpb24gfD0gZWxlbWVudC5tX0NFTGVuZ3RoXzsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgMCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IGV4cGFuc2lvbjsKKyAgICAgICAgc2V0TWF4RXhwYW5zaW9uKGVsZW1lbnQubV9DRXNfW2VsZW1lbnQubV9DRUxlbmd0aF8gLSAxXSwKKyAgICAgICAgICAgICAgICAoYnl0ZSllbGVtZW50Lm1fQ0VMZW5ndGhfLCAKKyAgICAgICAgICAgICAgICB0Lm1fbWF4RXhwYW5zaW9uc18pOworICAgICAgICBpZiAoaXNKYW1vKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpKXsKKyAgICAgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisgICAgICAgICAgICBzZXRNYXhKYW1vRXhwYW5zaW9uKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCksCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9DRXNfW2VsZW1lbnQubV9DRUxlbmd0aF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIDFdLAorICAgICAgICAgICAgICAgICAgICAoYnl0ZSllbGVtZW50Lm1fQ0VMZW5ndGhfLAorICAgICAgICAgICAgICAgICAgICB0Lm1fbWF4SmFtb0V4cGFuc2lvbnNfKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gV2UgdHJlYXQgZGlnaXRzIGRpZmZlcmVudGx5IC0gdGhleSBhcmUgInViZXIgc3BlY2lhbCIgYW5kIHNob3VsZCBiZQorICAgICAgICAvLyBwcm9jZXNzZWQgZGlmZmVyZW50bHkgaWYgbnVtZXJpYyBjb2xsYXRpb24gaXMgb24uIAorICAgICAgICBpbnQgdW5pQ2hhciA9IDA7CisgICAgICAgIGlmICgoZWxlbWVudC5tX3VjaGFyc18ubGVuZ3RoKCkgPT0gMikgCisgICAgICAgICAgICAmJiBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoZWxlbWVudC5tX3VjaGFyc18uY2hhckF0KDApKSkgeworICAgICAgICAgICAgdW5pQ2hhciA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX3VjaGFyc18uY2hhckF0KDApLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV91Y2hhcnNfLmNoYXJBdCgxKSk7ICAgICAgCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQubV91Y2hhcnNfLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgIHVuaUNoYXIgPSBlbGVtZW50Lm1fdWNoYXJzXy5jaGFyQXQoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEhlcmUsIHdlIGVpdGhlciBoYXZlIG9uZSBub3JtYWwgQ0UgT1IgbWFwQ0UgaXMgc2V0LiBUaGVyZWZvcmUsIHdlIAorICAgICAgICAvLyBzdHVmZiBvbmx5IG9uZSBlbGVtZW50IHRvIHRoZSBleHBhbnNpb24gYnVmZmVyLiBXaGVuIHdlIGVuY291bnRlciBhIAorICAgICAgICAvLyBkaWdpdCBhbmQgd2UgZG9uJ3QgZG8gbnVtZXJpYyBjb2xsYXRpb24sIHdlIHdpbGwganVzdCBwaWNrIHRoZSBDRSAKKyAgICAgICAgLy8gd2UgaGF2ZSBhbmQgYnJlYWsgb3V0IG9mIGNhc2UgKHNlZSB1Y29sLmNwcCB1Y29sX3Bydl9nZXRTcGVjaWFsQ0UgCisgICAgICAgIC8vICYmIHVjb2xfcHJ2X2dldFNwZWNpYWxQcmV2Q0UpLiBJZiB3ZSBwaWNrZWQgYSBzcGVjaWFsLCBmdXJ0aGVyIAorICAgICAgICAvLyBwcm9jZXNzaW5nIHdpbGwgb2NjdXIuIElmIGl0J3MgYSBzaW1wbGUgQ0UsIHdlJ2xsIHJldHVybiBkdWUKKyAgICAgICAgLy8gdG8gaG93IHRoZSBsb29wIGlzIGNvbnN0cnVjdGVkLgorICAgICAgICBpZiAodW5pQ2hhciAhPSAwICYmIFVDaGFyYWN0ZXIuaXNEaWdpdCh1bmlDaGFyKSkgeworICAgICAgICAgICAgLy8gcHJlcGFyZSB0aGUgZWxlbWVudAorICAgICAgICAgICAgaW50IGV4cGFuc2lvbiA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18gCisgICAgICAgIHwgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9ESUdJVF9UQUdfCisgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19TSElGVF8pIHwgMTsgCisgICAgICAgICAgICBpZiAoZWxlbWVudC5tX21hcENFXyAhPSAwKSB7IAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGFuIGV4cGFuc2lvbiwgd2UnbGwgcGljayBpdCBoZXJlCisgICAgICAgICAgICAgICAgZXhwYW5zaW9uIHw9IChhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgZWxlbWVudC5tX21hcENFXykgPDwgNCk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZXhwYW5zaW9uIHw9IChhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgZWxlbWVudC5tX0NFc19bMF0pIDw8IDQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IGV4cGFuc2lvbjsKKyAgICAgICAgfQorICAgIAorICAgIC8vIGhlcmUgd2Ugd2FudCB0byBhZGQgdGhlIHByZWZpeCBzdHJ1Y3R1cmUuCisgICAgLy8gSSB3aWxsIHRyeSB0byBwcm9jZXNzIGl0IGFzIGEgcmV2ZXJzZSBjb250cmFjdGlvbiwgaWYgcG9zc2libGUuCisgICAgLy8gcHJlZml4IGJ1ZmZlciBpcyBhbHJlYWR5IHJldmVyc2VkLgorICAgIAorICAgIGlmIChlbGVtZW50Lm1fcHJlZml4Q2hhcnNfICE9IG51bGwgJiYKKyAgICAgICAgICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fcHJlZml4XyA+IDApIHsKKyAgICAgICAgLy8gV2Uga2VlcCB0aGUgc2VlbiBwcmVmaXggc3RhcnRlciBlbGVtZW50cyBpbiBhIGhhc2h0YWJsZSB3ZSBuZWVkIAorICAgICAgICAgICAgLy8gaXQgdG8gYmUgYWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBzaW1wbGUgY29kZXBvaW50cyBhbmQgCisgICAgICAgICAgICAvLyBwcmVmaXggc3RhcnRlcnMuIEFsc28sIHdlIG5lZWQgdG8gdXNlIGl0IGZvciBjYW5vbmljYWwgY2xvc3VyZS4KKyAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fY2FzZUJpdF8gPSBlbGVtZW50Lm1fY2FzZUJpdF87CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9DRUxlbmd0aF8gPSBlbGVtZW50Lm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fQ0VzXyA9IGVsZW1lbnQubV9DRXNfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fbWFwQ0VfID0gZWxlbWVudC5tX21hcENFXzsKKyAgICAgICAgICAgIC8vbV91dGlsRWxlbWVudDJfLm1fcHJlZml4Q2hhcnNfID0gZWxlbWVudC5tX3ByZWZpeENoYXJzXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3NpemVQcmltXyA9IGVsZW1lbnQubV9zaXplUHJpbV87CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9zaXplU2VjXyA9IGVsZW1lbnQubV9zaXplU2VjXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3NpemVUZXJfID0gZWxlbWVudC5tX3NpemVUZXJfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fdmFyaWFibGVUb3BfID0gZWxlbWVudC5tX3ZhcmlhYmxlVG9wXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3ByZWZpeF8gPSBlbGVtZW50Lm1fcHJlZml4XzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3ByZWZpeENoYXJzXyA9IE5vcm1hbGl6ZXIuY29tcG9zZShlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLCBmYWxzZSk7CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV91Y2hhcnNfID0gZWxlbWVudC5tX3VjaGFyc187CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9jUG9pbnRzXyA9IGVsZW1lbnQubV9jUG9pbnRzXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX2NQb2ludHNPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAodC5tX3ByZWZpeExvb2t1cF8gIT0gbnVsbCkgeworICAgICAgICBFbGVtZW50cyB1Q0UgPSAoRWxlbWVudHMpdC5tX3ByZWZpeExvb2t1cF8uZ2V0KGVsZW1lbnQpOworICAgICAgICBpZiAodUNFICE9IG51bGwpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGFscmVhZHkgYSBzZXQgb2YgY29kZSBwb2ludHMgaGVyZQorICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IGFkZFByZWZpeCh0LCB1Q0UubV9tYXBDRV8sIGVsZW1lbnQpOworICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBubyBjb2RlIHBvaW50cywgc28gdGhpcyBzcG90IGlzIGNsZWFuCisgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gYWRkUHJlZml4KHQsIENFX05PVF9GT1VORF8sIGVsZW1lbnQpOworICAgICAgICAgICAgdUNFID0gbmV3IEVsZW1lbnRzKGVsZW1lbnQpOworICAgICAgICAgICAgdUNFLm1fY1BvaW50c18gPSB1Q0UubV91Y2hhcnNfOworICAgICAgICAgICAgdC5tX3ByZWZpeExvb2t1cF8ucHV0KHVDRSwgdUNFKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV91dGlsRWxlbWVudDJfLm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIAorICAgICAgICAgICAgIT0gZWxlbWVudC5tX3ByZWZpeENoYXJzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9wcmVmaXhfCisgICAgICAgICAgICAgICAgICAgIHx8ICFtX3V0aWxFbGVtZW50Ml8ubV9wcmVmaXhDaGFyc18ucmVnaW9uTWF0Y2hlcygwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18sIGVsZW1lbnQubV9wcmVmaXhfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3ByZWZpeENoYXJzXy5sZW5ndGgoKSkpIHsKKyAgICAgICAgICAgIC8vIGRvIGl0IQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9tYXBDRV8gPSBhZGRQcmVmaXgodCwgZWxlbWVudC5tX21hcENFXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8pOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gV2UgbmVlZCB0byB1c2UgdGhlIGNhbm9uaWNhbCBpdGVyYXRvciBoZXJlCisgICAgLy8gdGhlIHdheSB3ZSBkbyBpdCBpcyB0byBnZW5lcmF0ZSB0aGUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBzdHJpbmdzIAorICAgIC8vIGZvciB0aGUgY29udHJhY3Rpb24gYW5kIHRoZW4gYWRkIHRoZSBzZXF1ZW5jZXMgdGhhdCBwYXNzIEZDRCBjaGVjaworICAgIGlmIChlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPiAxIAorICAgICAgICAmJiAhKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA9PSAyIAorICAgICAgICAgJiYgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpIAorICAgICAgICAgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KDEpKSkpIHsgCisgICAgICAgICAgICAvLyB0aGlzIGlzIGEgY29udHJhY3Rpb24sIHdlIHNob3VsZCBjaGVjayB3aGV0aGVyIGEgY29tcG9zZWQgZm9ybSAKKyAgICAgICAgICAgIC8vIHNob3VsZCBhbHNvIGJlIGluY2x1ZGVkCisgICAgICAgIG1fdXRpbENhbkl0ZXJfLnNldFNvdXJjZShlbGVtZW50Lm1fY1BvaW50c18pOworICAgICAgICBTdHJpbmcgc291cmNlID0gbV91dGlsQ2FuSXRlcl8ubmV4dCgpOworICAgICAgICB3aGlsZSAoc291cmNlICE9IG51bGwgJiYgc291cmNlLmxlbmd0aCgpID4gMCkgeworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHNvdXJjZSwgTm9ybWFsaXplci5GQ0QsMCkgCisgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIGVsZW1lbnQubV91Y2hhcnNfID0gc291cmNlOworICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfID0gZWxlbWVudC5tX3VjaGFyc187CisgICAgICAgICAgICBmaW5hbGl6ZUFkZGl0aW9uKHQsIGVsZW1lbnQpOworICAgICAgICB9CisgICAgICAgIHNvdXJjZSA9IG1fdXRpbENhbkl0ZXJfLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQubV9tYXBDRV87CisgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBmaW5hbGl6ZUFkZGl0aW9uKHQsIGVsZW1lbnQpOyAgCisgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGRzIGFuIGV4cGFuc2lvbiBjZSB0byB0aGUgZXhwYW5zaW9uIHZlY3RvcgorICAgICAqIEBwYXJhbSBleHBhbnNpb25zIHZlY3RvciB0byBhZGQgdG8KKyAgICAgKiBAcGFyYW0gdmFsdWUgb2YgdGhlIGV4cGFuc2lvbgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIG5ldyBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGFkZEV4cGFuc2lvbihWZWN0b3IgZXhwYW5zaW9ucywgaW50IHZhbHVlKSAKKyAgICB7CisgICAgZXhwYW5zaW9ucy5hZGQobmV3IEludGVnZXIodmFsdWUpKTsKKyAgICByZXR1cm4gZXhwYW5zaW9ucy5zaXplKCkgLSAxOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMb29rcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFsbCBleHBhbnNpb24gc2VxdWVuY2VzIGVuZGluZyB3aXRoIHRoZSAKKyAgICAgKiBzYW1lIGNvbGxhdGlvbiBlbGVtZW50LiBUaGUgc2l6ZSByZXF1aXJlZCBmb3IgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIAorICAgICAqIGlzIHJldHVybmVkIGlmIHRoZSBhcnJheXMgYXJlIHRvbyBzbWFsbC4KKyAgICAgKiBAcGFyYW0gZW5kZXhwYW5zaW9uIHRoZSBsYXN0IGV4cGFuc2lvbiBjb2xsYXRpb24gZWxlbWVudCB0byBiZSBhZGRlZAorICAgICAqIEBwYXJhbSBleHBhbnNpb25zaXplIHNpemUgb2YgdGhlIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBtYXhleHBhbnNpb24gZGF0YSBzdHJ1Y3R1cmUgdG8gc3RvcmUgdGhlIG1heGltdW0gZXhwYW5zaW9uIGRhdGEuCisgICAgICogQHJldHVybnMgc2l6ZSBvZiB0aGUgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIHVzZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNldE1heEV4cGFuc2lvbihpbnQgZW5kZXhwYW5zaW9uLCBieXRlIGV4cGFuc2lvbnNpemUsCisgICAgICAgICAgICAgICAgICAgICAgIE1heEV4cGFuc2lvblRhYmxlIG1heGV4cGFuc2lvbikKKyAgICB7CisgICAgaW50IHN0YXJ0ID0gMDsKKyAgICBpbnQgbGltaXQgPSBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgICAgICBsb25nIHVuc2lnbmVkID0gKGxvbmcpZW5kZXhwYW5zaW9uOworICAgICAgICB1bnNpZ25lZCAmPSAweEZGRkZGRkZGbDsKKyAgICAKKyAgICAvLyB1c2luZyBiaW5hcnkgc2VhcmNoIHRvIGRldGVybWluZSBpZiBsYXN0IGV4cGFuc2lvbiBlbGVtZW50IGlzIAorICAgIC8vIGFscmVhZHkgaW4gdGhlIGFycmF5IAorICAgIGludCByZXN1bHQgPSAtMTsKKyAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCAtIDEpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IG1pZCA9IHN0YXJ0ICsgKChsaW1pdCAtIHN0YXJ0KSA+PiAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvbmcgdW5zaWduZWRjZSA9ICgoSW50ZWdlciltYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlkKSkuaW50VmFsdWUoKTsgCisgICAgICAgICAgICB1bnNpZ25lZGNlICY9IDB4RkZGRkZGRkZsOworICAgICAgICBpZiAodW5zaWduZWQgPD0gdW5zaWduZWRjZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBsaW1pdCA9IG1pZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3RhcnQgPSBtaWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIH0gCisgICAgICAgICAgCisgICAgaWYgKCgoSW50ZWdlciltYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KHN0YXJ0KSkuaW50VmFsdWUoKSAKKyAgICAgICAgPT0gZW5kZXhwYW5zaW9uKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gc3RhcnQ7ICAKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBlbHNlIGlmICgoKEludGVnZXIpbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChsaW1pdCkpLmludFZhbHVlKCkgCisgICAgICAgICA9PSBlbmRleHBhbnNpb24pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXN1bHQgPSBsaW1pdDsgICAgICAKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBpZiAocmVzdWx0ID4gLTEpIHsKKyAgICAgICAgLy8gZm91bmQgdGhlIGNlIGluIGV4cGFuc2lvbiwgd2UnbGwganVzdCBtb2RpZnkgdGhlIHNpemUgaWYgaXQgCisgICAgICAgIC8vIGlzIHNtYWxsZXIKKyAgICAgICAgT2JqZWN0IGN1cnJlbnRzaXplID0gbWF4ZXhwYW5zaW9uLm1fZXhwYW5zaW9uQ0VTaXplXy5nZXQocmVzdWx0KTsKKyAgICAgICAgaWYgKCgoQnl0ZSljdXJyZW50c2l6ZSkuYnl0ZVZhbHVlKCkgPCBleHBhbnNpb25zaXplKSB7CisgICAgICAgIG1heGV4cGFuc2lvbi5tX2V4cGFuc2lvbkNFU2l6ZV8uc2V0KHJlc3VsdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJ5dGUoZXhwYW5zaW9uc2l6ZSkpOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvLyB3ZSdsbCBuZWVkIHRvIHNxdWVlemUgdGhlIHZhbHVlIGludG8gdGhlIGFycmF5LiBpbml0aWFsIAorICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbi4gc2hpZnRpbmcgdGhlIHN1YmFycmF5IGRvd24gYnkgMQorICAgICAgICBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uaW5zZXJ0RWxlbWVudEF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoZW5kZXhwYW5zaW9uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgMSk7CisgICAgICAgIG1heGV4cGFuc2lvbi5tX2V4cGFuc2lvbkNFU2l6ZV8uaW5zZXJ0RWxlbWVudEF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnl0ZShleHBhbnNpb25zaXplKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyAxKTsKKyAgICB9CisgICAgcmV0dXJuIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFsbCBqYW1vIGV4cGFuc2lvbiBzZXF1ZW5jZXMgZW5kaW5nIHdpdGggdGhlIAorICAgICAqIHNhbWUgY29sbGF0aW9uIGVsZW1lbnQuIFRoZSBzaXplIHJlcXVpcmVkIGZvciBtYXhleHBhbnNpb24gYW5kIG1heHNpemUgCisgICAgICogaXMgcmV0dXJuZWQgaWYgdGhlIGFycmF5cyBhcmUgdG9vIHNtYWxsLgorICAgICAqIEBwYXJhbSBjaCB0aGUgamFtbyBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gZW5kZXhwYW5zaW9uIHRoZSBsYXN0IGV4cGFuc2lvbiBjb2xsYXRpb24gZWxlbWVudCB0byBiZSBhZGRlZAorICAgICAqIEBwYXJhbSBleHBhbnNpb25zaXplIHNpemUgb2YgdGhlIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBtYXhleHBhbnNpb24gZGF0YSBzdHJ1Y3R1cmUgdG8gc3RvcmUgdGhlIG1heGltdW0gZXhwYW5zaW9uIGRhdGEuCisgICAgICogQHJldHVybnMgc2l6ZSBvZiB0aGUgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIHVzZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNldE1heEphbW9FeHBhbnNpb24oY2hhciBjaCwgaW50IGVuZGV4cGFuc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBleHBhbnNpb25zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUgbWF4ZXhwYW5zaW9uKQorICAgIHsKKyAgICBib29sZWFuIGlzViA9IHRydWU7CisgICAgaWYgKGNoID49IDB4MTEwMCAmJiBjaCA8PSAweDExMTIpIHsKKyAgICAgICAgLy8gZGV0ZXJtaW5lcyBMIGZvciBKYW1vLCBkb2Vzbid0IG5lZWQgdG8gc3RvcmUgdGhpcyBzaW5jZSBpdCBpcyAKKyAgICAgICAgLy8gbmV2ZXIgYXQgdGhlIGVuZCBvZiBhIGV4cGFuc2lvbgorICAgICAgICBpZiAobWF4ZXhwYW5zaW9uLm1fbWF4TFNpemVfIDwgZXhwYW5zaW9uc2l6ZSkgeworICAgICAgICBtYXhleHBhbnNpb24ubV9tYXhMU2l6ZV8gPSBleHBhbnNpb25zaXplOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgIH0KKyAgICAKKyAgICBpZiAoY2ggPj0gMHgxMTYxICYmIGNoIDw9IDB4MTE3NSkgeworICAgICAgICAvLyBkZXRlcm1pbmVzIFYgZm9yIEphbW8KKyAgICAgICAgaWYgKG1heGV4cGFuc2lvbi5tX21heFZTaXplXyA8IGV4cGFuc2lvbnNpemUpIHsKKyAgICAgICAgbWF4ZXhwYW5zaW9uLm1fbWF4VlNpemVfID0gZXhwYW5zaW9uc2l6ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoY2ggPj0gMHgxMUE4ICYmIGNoIDw9IDB4MTFDMikgeworICAgICAgICBpc1YgPSBmYWxzZTsKKyAgICAgICAgLy8gZGV0ZXJtaW5lcyBUIGZvciBKYW1vCisgICAgICAgIGlmIChtYXhleHBhbnNpb24ubV9tYXhUU2l6ZV8gPCBleHBhbnNpb25zaXplKSB7CisgICAgICAgIG1heGV4cGFuc2lvbi5tX21heFRTaXplXyA9IGV4cGFuc2lvbnNpemU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAgICAgaW50IHBvcyA9IG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7ICAgIAorICAgIHdoaWxlIChwb3MgPiAwKSB7CisgICAgICAgIHBvcyAtLTsKKyAgICAgICAgaWYgKCgoSW50ZWdlciltYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KHBvcykpLmludFZhbHVlKCkgCisgICAgICAgID09IGVuZGV4cGFuc2lvbikgeworICAgICAgICByZXR1cm4gbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uYWRkKG5ldyBJbnRlZ2VyKGVuZGV4cGFuc2lvbikpOworICAgIG1heGV4cGFuc2lvbi5tX2lzVl8uYWRkKG5ldyBCb29sZWFuKGlzVikpOworICAgICAgICAgIAorICAgIHJldHVybiBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgcHJlZml4IHRvIHRoZSB0YWJsZQorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlIHRvIHVwZGF0ZQorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudCB0byBhZGQKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBydWxlIGVsZW1lbnQgdG8gYWRkCisgICAgICogQHJldHVybiBtb2RpZmllZCBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IGFkZFByZWZpeChCdWlsZFRhYmxlIHQsIGludCBDRSwgRWxlbWVudHMgZWxlbWVudCkgCisgICAgeworICAgIC8vIGN1cnJlbnRseSB0aGUgbG9uZ2VzdCBwcmVmaXggd2UncmUgc3VwcG9ydGluZyBpbiBKYXBhbmVzZSBpcyB0d28gCisgICAgLy8gY2hhcmFjdGVycyBsb25nLiBBbHRob3VnaCB0aGlzIHRhYmxlIGNvdWxkIHF1aXRlIGVhc2lseSBtaW1pYyAKKyAgICAvLyBjb21wbGV0ZSBjb250cmFjdGlvbiBzdHVmZiB0aGVyZSBpcyBubyBnb29kIHJlYXNvbiB0byBtYWtlIGEgZ2VuZXJhbCAKKyAgICAvLyBzb2x1dGlvbiwgYXMgaXQgd291bGQgcmVxdWlyZSBzb21lIGVycm9yIHByb25lIG1lc3NpbmcuCisgICAgQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMgPSB0Lm1fY29udHJhY3Rpb25zXzsKKyAgICBTdHJpbmcgb2xkQ1AgPSBlbGVtZW50Lm1fY1BvaW50c187CisgICAgaW50IG9sZENQT2Zmc2V0ID0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfOworICAgICAgICAKKyAgICBjb250cmFjdGlvbnMubV9jdXJyZW50VGFnXyA9IENFX1NQRUNfUFJPQ19UQUdfOworICAgIC8vIGhlcmUsIHdlIHdpbGwgbm9ybWFsaXplICYgYWRkIHByZWZpeCB0byB0aGUgdGFibGUuCisgICAgaW50IHNpemUgPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX3ByZWZpeF87CisgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzaXplOyBqICsrKSB7ICAgCisgICAgICAgIC8vIEZpcnN0IGFkZCBORkQgcHJlZml4IGNoYXJzIHRvIHVuc2FmZSBDUCBoYXNoIHRhYmxlIAorICAgICAgICAvLyBVbmxlc3MgaXQgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIHdoaWNoIGlzIGhhbmRsZWQgYWxnb3JpdG1pY2FsbHkgCisgICAgICAgIC8vIGFuZCBzaG91bGRuJ3QgdGFrZSB1cCBzcGFjZSBpbiB0aGUgdGFibGUuCisgICAgICAgIGNoYXIgY2ggPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmNoYXJBdChqICsgZWxlbWVudC5tX3ByZWZpeF8pOworICAgICAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGNoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLy8gU3RyaW5nQnVmZmVyIHJldmVyc2VkID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGogKyspIHsgCisgICAgICAgIC8vIHByZWZpeGVzIGFyZSBnb2luZyB0byBiZSBsb29rZWQgdXAgYmFja3dhcmRzCisgICAgICAgIC8vIHRoZXJlZm9yZSwgd2Ugd2lsbCBwcm9tcHRseSByZXZlcnNlIHRoZSBwcmVmaXggYnVmZmVyLi4uCisgICAgICAgIGludCBvZmZzZXQgPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIC0gaiAtIDE7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKGVsZW1lbnQubV9wcmVmaXhDaGFyc18uY2hhckF0KG9mZnNldCkpOworICAgIH0KKyAgICBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfID0gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgIGVsZW1lbnQubV9wcmVmaXhfID0gMDsKKyAgICAKKyAgICAvLyB0aGUgZmlyc3QgY29kZXBvaW50IGlzIGFsc28gdW5zYWZlLCBhcyBpdCBmb3JtcyBhICdjb250cmFjdGlvbicgd2l0aCAKKyAgICAvLyB0aGUgcHJlZml4CisgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpKSB7CisgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpOworICAgIH0KKyAgICAgICAgCisgICAgZWxlbWVudC5tX2NQb2ludHNfID0gZWxlbWVudC5tX3ByZWZpeENoYXJzXzsKKyAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPSBlbGVtZW50Lm1fcHJlZml4XzsKKyAgICAKKyAgICAvLyBBZGQgdGhlIGxhc3QgY2hhciBvZiB0aGUgY29udHJhY3Rpb24gdG8gdGhlIGNvbnRyYWN0aW9uLWVuZCBoYXNoIAorICAgIC8vIHRhYmxlLiB1bmxlc3MgaXQgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIHdoaWNoIGlzIGhhbmRsZWQgCisgICAgLy8gYWxnb3JpdGhtaWNhbGx5IGFuZCBzaG91bGRuJ3QgYmUgaW4gdGhlIHRhYmxlCisgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKAorICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIDEpKSkgeworICAgICAgICBDb250ckVuZENQU2V0KHQubV9jb250ckVuZENQXywgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSAxKSk7CisgICAgfQorICAgIC8vIEZpcnN0IHdlIG5lZWQgdG8gY2hlY2sgaWYgY29udHJhY3Rpb25zIHN0YXJ0cyB3aXRoIGEgc3Vycm9nYXRlCisgICAgLy8gaW50IGNwID0gVVRGMTYuY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzXywgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKTsKKyAgICAKKyAgICAvLyBJZiB0aGVyZSBhcmUgYW55IEphbW9zIGluIHRoZSBjb250cmFjdGlvbiwgd2Ugc2hvdWxkIHR1cm4gb24gc3BlY2lhbCAKKyAgICAvLyBwcm9jZXNzaW5nIGZvciBKYW1vcworICAgIGlmIChpc0phbW8oZWxlbWVudC5tX3ByZWZpeENoYXJzXy5jaGFyQXQoZWxlbWVudC5tX3ByZWZpeF8pKSkgeworICAgICAgICB0Lm1fY29sbGF0b3JfLm1faXNKYW1vU3BlY2lhbF8gPSB0cnVlOworICAgIH0KKyAgICAvLyB0aGVuIHdlIG5lZWQgdG8gZGVhbCB3aXRoIGl0IAorICAgIC8vIHdlIGNvdWxkIGFyZWFkeSBoYXZlIHNvbWV0aGluZyBpbiB0YWJsZSAtIG9yIHdlIG1pZ2h0IG5vdCAKKyAgICBpZiAoIWlzUHJlZml4KENFKSkgeyAKKyAgICAgICAgLy8gaWYgaXQgd2Fzbid0IGNvbnRyYWN0aW9uLCB3ZSB3b3VsZG4ndCBlbmQgdXAgaGVyZQorICAgICAgICBpbnQgZmlyc3RDb250cmFjdGlvbk9mZnNldCA9IGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikwLCBDRSk7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICBDRV9OT1RfRk9VTkRfKTsKKyAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18uY2hhckF0KGVsZW1lbnQubV9wcmVmaXhfKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgKGNoYXIpMHhGRkZGLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENFKTsKKyAgICAgICAgQ0UgPSBjb25zdHJ1Y3RTcGVjaWFsQ0UoQ0VfU1BFQ19QUk9DX1RBR18sIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQpOworICAgIH0gCisgICAgZWxzZSB7IAorICAgICAgICAvLyB3ZSBhcmUgYWRkaW5nIHRvIGV4aXN0aW5nIGNvbnRyYWN0aW9uIAorICAgICAgICAvLyB0aGVyZSB3ZXJlIGFscmVhZHkgc29tZSBlbGVtZW50cyBpbiB0aGUgdGFibGUsIHNvIHdlIG5lZWQgdG8gYWRkIAorICAgICAgICAvLyBhIG5ldyBjb250cmFjdGlvbiAKKyAgICAgICAgLy8gVHdvIHRoaW5ncyBjYW4gaGFwcGVuIGhlcmU6IGVpdGhlciB0aGUgY29kZXBvaW50IGlzIGFscmVhZHkgaW4gCisgICAgICAgIC8vIHRoZSB0YWJsZSwgb3IgaXQgaXMgbm90CisgICAgICAgIGNoYXIgY2ggPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmNoYXJBdChlbGVtZW50Lm1fcHJlZml4Xyk7CisgICAgICAgIGludCBwb3NpdGlvbiA9IGZpbmRDUChjb250cmFjdGlvbnMsIENFLCBjaCk7CisgICAgICAgIGlmIChwb3NpdGlvbiA+IDApIHsgICAgICAgCisgICAgICAgIC8vIGlmIGl0IGlzIHdlIGp1c3QgY29udGludWUgZG93biB0aGUgY2hhaW4gCisgICAgICAgIGludCBlQ0UgPSBnZXRDRShjb250cmFjdGlvbnMsIENFLCBwb3NpdGlvbik7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIGVDRSk7CisgICAgICAgIHNldENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgQ0UsIHBvc2l0aW9uLCBjaCwgbmV3Q0UpOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gaWYgaXQgaXNuJ3QsIHdlIHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc2VxdWVuY2UgCisgICAgICAgIHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIENFX05PVF9GT1VORF8pOworICAgICAgICBpbnNlcnRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCBjaCwgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZWxlbWVudC5tX2NQb2ludHNfID0gb2xkQ1A7CisgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfID0gb2xkQ1BPZmZzZXQ7CisgICAgCisgICAgcmV0dXJuIENFOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGlzIGEgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gQ0UgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYXJndW1lbnQgY2UgaXMgYSBjb250cmFjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNDb250cmFjdGlvbihpbnQgQ0UpIAorICAgIHsKKyAgICByZXR1cm4gaXNTcGVjaWFsKENFKSAmJiAoZ2V0Q0VUYWcoQ0UpID09IENFX0NPTlRSQUNUSU9OX1RBR18pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBoYXMgYSBwcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzUHJlZml4KGludCBDRSkgCisgICAgeworICAgIHJldHVybiBpc1NwZWNpYWwoQ0UpICYmIChnZXRDRVRhZyhDRSkgPT0gQ0VfU1BFQ19QUk9DX1RBR18pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGlzIHNwZWNpYWwKKyAgICAgKiBAcGFyYW0gQ0UgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYXJndW1lbnQgY2UgaXMgc3BlY2lhbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNTcGVjaWFsKGludCBDRSkgCisgICAgeworICAgIHJldHVybiAoQ0UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfKSA9PSAweEYwMDAwMDAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBoYXMgYSBwcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q0VUYWcoaW50IENFKSAKKyAgICB7CisgICAgcmV0dXJuIChDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19NQVNLXykgPj4+IAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5DRV9UQUdfU0hJRlRfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjZSBhdCBwb3NpdGlvbiBpbiBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBwb3NpdGlvbiBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHJldHVybiBjZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRDRShDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgaW50IHBvc2l0aW9uKSAKKyAgICB7CisgICAgZWxlbWVudCAmPSAweEZGRkZGRjsKKyAgICAgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgICAgIAorICAgICAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9CisgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fQ0VzXy5zaXplKCkgfHwgcG9zaXRpb24gPT0gLTEpIHsKKyAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgfSAKKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuICgoSW50ZWdlcil0YmwubV9DRXNfLmdldChwb3NpdGlvbikpLmludFZhbHVlKCk7CisgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1bnNhZmUgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHRhYmxlIHVuc2FmZSB0YWJsZQorICAgICAqIEBwYXJhbSBjIGNoYXJhY3RlciB0byBiZSBhZGRlZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdW5zYWZlQ1BTZXQoYnl0ZSB0YWJsZVtdLCBjaGFyIGMpIAorICAgIHsKKyAgICBpbnQgaGFzaCA9IGM7CisgICAgaWYgKGhhc2ggPj0gKFVOU0FGRUNQX1RBQkxFX1NJWkVfIDw8IDMpKSB7CisgICAgICAgIGlmIChoYXNoID49IDB4ZDgwMCAmJiBoYXNoIDw9IDB4ZjhmZikgeworICAgICAgICAvLyBQYXJ0IG9mIGEgc3Vycm9nYXRlLCBvciBpbiBwcml2YXRlIHVzZSBhcmVhLiAKKyAgICAgICAgLy8gVGhlc2UgZG9uJ3QgZ28gaW4gdGhlIHRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaGFzaCA9IChoYXNoICYgVU5TQUZFQ1BfVEFCTEVfTUFTS18pICsgMjU2OworICAgIH0KKyAgICB0YWJsZVtoYXNoID4+IDNdIHw9ICgxIDw8IChoYXNoICYgNykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjb250cmFjdGlvbiBlbmQgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIGVuZCB0YWJsZQorICAgICAqIEBwYXJhbSBjIGNoYXJhY3RlciB0byBiZSBhZGRlZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgQ29udHJFbmRDUFNldChieXRlIHRhYmxlW10sIGNoYXIgYykgCisgICAgeworICAgIGludCBoYXNoID0gYzsKKyAgICBpZiAoaGFzaCA+PSAoVU5TQUZFQ1BfVEFCTEVfU0laRV8gPDwgMykpIHsKKyAgICAgICAgaGFzaCA9IChoYXNoICYgVU5TQUZFQ1BfVEFCTEVfTUFTS18pICsgMjU2OworICAgIH0KKyAgICB0YWJsZVtoYXNoID4+IDNdIHw9ICgxIDw8IChoYXNoICYgNykpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogQWRkcyBtb3JlIGNvbnRyYWN0aW9ucyBpbiB0YWJsZS4gSWYgZWxlbWVudCBpcyBub24gZXhpc3RhbnQsIGl0IGNyZWF0ZXMgCisgICAgICogb24uIFJldHVybnMgZWxlbWVudCBoYW5kbGUgCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgY29kZXBvaW50IHRvIGFkZAorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4gY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRkQ29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvZGVQb2ludCwgaW50IHZhbHVlKSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgaWYgKHRibCA9PSBudWxsKSB7CisgICAgICAgIHRibCA9IGFkZEFDb250cmFjdGlvbkVsZW1lbnQodGFibGUpOworICAgICAgICBlbGVtZW50ID0gdGFibGUubV9lbGVtZW50c18uc2l6ZSgpIC0gMTsKKyAgICB9IAorICAgIAorICAgIHRibC5tX0NFc18uYWRkKG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisgICAgdGJsLm1fY29kZVBvaW50c18uYXBwZW5kKGNvZGVQb2ludCk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFNwZWNpYWxDRSh0YWJsZS5tX2N1cnJlbnRUYWdfLCBlbGVtZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgY29udHJhY3Rpb24gZWxlbWVudCB0byB0aGUgdGFibGUKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUgdG8gdXBkYXRlCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBCYXNpY0NvbnRyYWN0aW9uVGFibGUgYWRkQUNvbnRyYWN0aW9uRWxlbWVudCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJhY3Rpb25UYWJsZSB0YWJsZSkgCisgICAgeworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSByZXN1bHQgPSBuZXcgQmFzaWNDb250cmFjdGlvblRhYmxlKCk7CisgICAgdGFibGUubV9lbGVtZW50c18uYWRkKHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc3BlY2lhbCBjZQorICAgICAqIEBwYXJhbSB0YWcgc3BlY2lhbCB0YWcKKyAgICAgKiBAcGFyYW0gQ0UgY29sbGF0aW9uIGVsZW1lbnQgCisgICAgICogQHJldHVybiBhIGNvbnRyYWN0aW9uIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNvbnN0cnVjdFNwZWNpYWxDRShpbnQgdGFnLCBpbnQgQ0UpIAorICAgIHsKKyAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgfCAodGFnIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19TSElGVF8pIHwgKENFICYgMHhGRkZGRkYpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIGFuZCBpbnNlcnRzIHRoZSBlbGVtZW50IHRoYXQgaGFzIGEgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gY29udHJhY3Rpb25zIGNvbnRyYWN0aW9uIHRhYmxlIAorICAgICAqIEBwYXJhbSBlbGVtZW50IGNvbnRyYWN0aW5nIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gZXhpc3RpbmdDRQorICAgICAqIEByZXR1cm4gY29udHJhY3Rpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcHJvY2Vzc0NvbnRyYWN0aW9uKENvbnRyYWN0aW9uVGFibGUgY29udHJhY3Rpb25zLCAKKyAgICAgICAgICAgICAgICAgICAgICBFbGVtZW50cyBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgZXhpc3RpbmdDRSkgCisgICAgeworICAgIGludCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0ID0gMDsKKyAgICAvLyBlbmQgb2YgcmVjdXJzaW9uIAorICAgIGlmIChlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPT0gMSkgeworICAgICAgICBpZiAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChleGlzdGluZ0NFKSAKKyAgICAgICAgJiYgZ2V0Q0VUYWcoZXhpc3RpbmdDRSkgPT0gY29udHJhY3Rpb25zLm1fY3VycmVudFRhZ18pIHsKKyAgICAgICAgY2hhbmdlQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCAoY2hhcikwLCAKKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIChjaGFyKTB4RkZGRiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICAgICAgcmV0dXJuIGV4aXN0aW5nQ0U7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAvLyBjYW4ndCBkbyBqdXN0IHRoYXQuIGV4aXN0aW5nQ2UgbWlnaHQgYmUgYSBjb250cmFjdGlvbiwgCisgICAgICAgIC8vIG1lYW5pbmcgdGhhdCB3ZSBuZWVkIHRvIGRvIGFub3RoZXIgc3RlcAorICAgICAgICByZXR1cm4gZWxlbWVudC5tX21hcENFXzsgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gdGhpcyByZWN1cnNpb24gY3VycmVudGx5IGZlZWRzIG9uIHRoZSBvbmx5IGVsZW1lbnQgd2UgaGF2ZS4uLiAKKyAgICAvLyBXZSB3aWxsIGhhdmUgdG8gY29weSBpdCBpbiBvcmRlciB0byBhY2NvbW9kYXRlIGZvciBib3RoIGJhY2t3YXJkIAorICAgIC8vIGFuZCBmb3J3YXJkIGN5Y2xlcworICAgIC8vIHdlIGVuY291bnRlcmVkIGVpdGhlciBhbiBlbXB0eSBzcGFjZSBvciBhIG5vbi1jb250cmFjdGlvbiBlbGVtZW50IAorICAgIC8vIHRoaXMgbWVhbnMgd2UgYXJlIGNvbnN0cnVjdGluZyBhIG5ldyBjb250cmFjdGlvbiBzZXF1ZW5jZSAKKyAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKys7CisgICAgaWYgKCFpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KGV4aXN0aW5nQ0UpKSB7IAorICAgICAgICAvLyBpZiBpdCB3YXNuJ3QgY29udHJhY3Rpb24sIHdlIHdvdWxkbid0IGVuZCB1cCBoZXJlCisgICAgICAgIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQgPSBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlRSQUNUSU9OX1RBQkxFX05FV19FTEVNRU5UXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpMCwgZXhpc3RpbmdDRSk7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICBDRV9OT1RfRk9VTkRfKTsKKyAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKyAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgCisgICAgICAgICAgICAgICAoY2hhcikweEZGRkYsIGV4aXN0aW5nQ0UpOworICAgICAgICBleGlzdGluZ0NFID0gY29uc3RydWN0U3BlY2lhbENFKGNvbnRyYWN0aW9ucy5tX2N1cnJlbnRUYWdfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQpOworICAgIH0gCisgICAgZWxzZSB7IAorICAgICAgICAvLyB3ZSBhcmUgYWRkaW5nIHRvIGV4aXN0aW5nIGNvbnRyYWN0aW9uCisgICAgICAgIC8vIHRoZXJlIHdlcmUgYWxyZWFkeSBzb21lIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwgc28gd2UgbmVlZCB0byBhZGQgCisgICAgICAgIC8vIGEgbmV3IGNvbnRyYWN0aW9uIAorICAgICAgICAvLyBUd28gdGhpbmdzIGNhbiBoYXBwZW4gaGVyZTogZWl0aGVyIHRoZSBjb2RlcG9pbnQgaXMgYWxyZWFkeSBpbiAKKyAgICAgICAgLy8gdGhlIHRhYmxlLCBvciBpdCBpcyBub3QKKyAgICAgICAgaW50IHBvc2l0aW9uID0gZmluZENQKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgCisgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XykpOworICAgICAgICBpZiAocG9zaXRpb24gPiAwKSB7ICAgICAgIAorICAgICAgICAvLyBpZiBpdCBpcyB3ZSBqdXN0IGNvbnRpbnVlIGRvd24gdGhlIGNoYWluIAorICAgICAgICBpbnQgZUNFID0gZ2V0Q0UoY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCBwb3NpdGlvbik7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIGVDRSk7CisgICAgICAgIHNldENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgcG9zaXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAgCisgICAgICAgIC8vIGlmIGl0IGlzbid0LCB3ZSB3aWxsIGhhdmUgdG8gY3JlYXRlIGEgbmV3IHNlcXVlbmNlIAorICAgICAgICBpbnQgbmV3Q0UgPSBwcm9jZXNzQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworICAgICAgICBpbnNlcnRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIAorICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgIG5ld0NFKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gLS07CisgICAgcmV0dXJuIGV4aXN0aW5nQ0U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBDRSBiZWxvbmdzIHRvIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudCB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIENFIGJlbG9uZ3MgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KGludCBDRSkgCisgICAgeyAKKyAgICByZXR1cm4gaXNTcGVjaWFsKENFKSAKKyAgICAgICAgJiYgKGdldENFVGFnKENFKSA9PSBDRV9DT05UUkFDVElPTl9UQUdfCisgICAgICAgIHx8IGdldENFVGFnKENFKSA9PSBDRV9TUEVDX1BST0NfVEFHXyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNvZGVwb2ludCAKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIGVsZW1lbnQgaW4gdGhlIHRhYmxlCisgICAgICogQHBhcmFtIGNvZGVQb2ludCBjb2RlIHBvaW50IHRvIGxvb2sgZm9yCisgICAgICogQHJldHVybiB0aGUgb2Zmc2V0IHRvIHRoZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRDUChDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICBjaGFyIGNvZGVQb2ludCkgCisgICAgeworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOworICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIGludCBwb3NpdGlvbiA9IDA7CisgICAgd2hpbGUgKGNvZGVQb2ludCA+IHRibC5tX2NvZGVQb2ludHNfLmNoYXJBdChwb3NpdGlvbikpIHsKKyAgICAgICAgcG9zaXRpb24gKys7CisgICAgICAgIGlmIChwb3NpdGlvbiA+IHRibC5tX2NvZGVQb2ludHNfLmxlbmd0aCgpKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY29kZVBvaW50ID09IHRibC5tX2NvZGVQb2ludHNfLmNoYXJBdChwb3NpdGlvbikpIHsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgIH0gCisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29udHJhY3Rpb24gZWxlbWVudCBvdXQgb2YgdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIG9mZnNldCB0byB0aGUgZWxlbWVudCBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcmV0dXJuIGJhc2ljIGNvbnRyYWN0aW9uIGVsZW1lbnQgYXQgb2Zmc2V0IGluIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEJhc2ljQ29udHJhY3Rpb25UYWJsZSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cmFjdGlvblRhYmxlIHRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICBvZmZzZXQgJj0gMHhGRkZGRkY7CisgICAgICAgIGlmIChvZmZzZXQgPT0gMHhGRkZGRkYpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICByZXR1cm4gKEJhc2ljQ29udHJhY3Rpb25UYWJsZSl0YWJsZS5tX2VsZW1lbnRzXy5nZXQob2Zmc2V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hhbmdlcyB0aGUgY29udHJhY3Rpb24gZWxlbWVudAorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50IG9mZnNldCB0byB0aGUgZWxlbWVudCBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IGNvZGVwb2ludCAKKyAgICAgKiBAcGFyYW0gbmV3Q0UgbmV3IGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogQHJldHVybiBiYXNpYyBjb250cmFjdGlvbiBlbGVtZW50IGF0IG9mZnNldCBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgY2hhbmdlQ29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbGVtZW50LCBjaGFyIGNvZGVQb2ludCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdDRSkgCisgICAgeworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOyAgICAKKyAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGludCBwb3NpdGlvbiA9IDA7CisgICAgd2hpbGUgKGNvZGVQb2ludCA+IHRibC5tX2NvZGVQb2ludHNfLmNoYXJBdChwb3NpdGlvbikpIHsKKyAgICAgICAgcG9zaXRpb24gKys7CisgICAgICAgIGlmIChwb3NpdGlvbiA+IHRibC5tX2NvZGVQb2ludHNfLmxlbmd0aCgpKSB7CisgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjb2RlUG9pbnQgPT0gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICB0YmwubV9DRXNfLnNldChwb3NpdGlvbiwgbmV3IEludGVnZXIobmV3Q0UpKTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQgJiAweEZGRkZGRjsKKyAgICB9IAorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gQ0VfTk9UX0ZPVU5EXzsKKyAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBTZXRzIGEgcGFydCBvZiBjb250cmFjdGlvbiBzZXF1ZW5jZSBpbiB0YWJsZS4gSWYgZWxlbWVudCBpcyBub24gCisgICAgICogZXhpc3RhbnQsIGl0IGNyZWF0ZXMgb24uIFJldHVybnMgZWxlbWVudCBoYW5kbGUuCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBvZmZzZXQKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IGNvbnRyYWN0aW9uIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSB2YWx1ZSBjZSB2YWx1ZQorICAgICAqIEByZXR1cm4gbmV3IGNvbnRyYWN0aW9uIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHNldENvbnRyYWN0aW9uKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZWxlbWVudCwgaW50IG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY29kZVBvaW50LCBpbnQgdmFsdWUpIAorICAgIHsKKyAgICAgICAgZWxlbWVudCAmPSAweEZGRkZGRjsKKyAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsgICAgCisgICAgaWYgKHRibCA9PSBudWxsKSB7CisgICAgICAgIHRibCA9IGFkZEFDb250cmFjdGlvbkVsZW1lbnQodGFibGUpOworICAgICAgICBlbGVtZW50ID0gdGFibGUubV9lbGVtZW50c18uc2l6ZSgpIC0gMTsKKyAgICB9CisgICAgCisgICAgdGJsLm1fQ0VzXy5zZXQob2Zmc2V0LCBuZXcgSW50ZWdlcih2YWx1ZSkpOworICAgIHRibC5tX2NvZGVQb2ludHNfLnNldENoYXJBdChvZmZzZXQsIGNvZGVQb2ludCk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFNwZWNpYWxDRSh0YWJsZS5tX2N1cnJlbnRUYWdfLCBlbGVtZW50KTsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIEluc2VydHMgYSBwYXJ0IG9mIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGluIHRhYmxlLiBTZXF1ZW5jZXMgYmVoaW5kIHRoZSAKKyAgICAgKiBvZmZzZXQgYXJlIG1vdmVkIGJhY2suIElmIGVsZW1lbnQgaXMgbm9uIGV4aXN0ZW50LCBpdCBjcmVhdGVzIG9uLiAKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIHRhYmxlIGNvbnRyYWN0aW9uCisgICAgICogQHBhcmFtIGNvZGVQb2ludCBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIHZhbHVlIGNvbGxhdGlvbiBlbGVtZW50IHZhbHVlCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiBjb2xsYXRpb24gZWxlbWVudAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbnNlcnRDb250cmFjdGlvbihDb250cmFjdGlvblRhYmxlIHRhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVsZW1lbnQsIGNoYXIgY29kZVBvaW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZhbHVlKSAKKyAgICB7CisgICAgZWxlbWVudCAmPSAweEZGRkZGRjsKKyAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKyAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgdGJsID0gYWRkQUNvbnRyYWN0aW9uRWxlbWVudCh0YWJsZSk7CisgICAgICAgIGVsZW1lbnQgPSB0YWJsZS5tX2VsZW1lbnRzXy5zaXplKCkgLSAxOworICAgIH0KKyAgICAKKyAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICB3aGlsZSAodGJsLm1fY29kZVBvaW50c18uY2hhckF0KG9mZnNldCkgPCBjb2RlUG9pbnQgCisgICAgICAgICAgICYmIG9mZnNldCA8IHRibC5tX2NvZGVQb2ludHNfLmxlbmd0aCgpKSB7CisgICAgICAgIG9mZnNldCArKzsKKyAgICB9CisgICAgCisgICAgdGJsLm1fQ0VzXy5pbnNlcnRFbGVtZW50QXQobmV3IEludGVnZXIodmFsdWUpLCBvZmZzZXQpOworICAgIHRibC5tX2NvZGVQb2ludHNfLmluc2VydChvZmZzZXQsIGNvZGVQb2ludCk7CisgICAgCisgICAgcmV0dXJuIGNvbnN0cnVjdFNwZWNpYWxDRSh0YWJsZS5tX2N1cnJlbnRUYWdfLCBlbGVtZW50KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluYWxpemUgYWRkaXRpb24KKyAgICAgKiBAcGFyYW0gdCBidWlsZCB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50IHRvIGFkZAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBmaW5hbGl6ZUFkZGl0aW9uKEJ1aWxkVGFibGUgdCwgRWxlbWVudHMgZWxlbWVudCkgCisgICAgeworICAgIGludCBDRSA9IENFX05PVF9GT1VORF87CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGFkZCBhIGNvbXBsZXRlbHkgaWdub3JhYmxlIGVsZW1lbnQgdG8gdGhlICAKKyAgICAgICAgLy8gdW5zYWZlIHRhYmxlLCBzbyB0aGF0IGJhY2t3YXJkIGl0ZXJhdGlvbiB3aWxsIHNraXAgCisgICAgICAgIC8vIG92ZXIgaXQgd2hlbiB0cmVhdGluZyBjb250cmFjdGlvbnMuIAorICAgICAgICBpZiAoZWxlbWVudC5tX21hcENFXyA9PSAwKSB7IAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCk7IGkgKyspIHsgCisgICAgICAgICAgICAgICAgY2hhciBjaCA9IGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeyAKKyAgICAgICAgICAgICAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgY2gpOyAKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgfSAKKyAgICAgICAgfSAKKworICAgIGlmIChlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPiAxKSB7IAorICAgICAgICAvLyB3ZSdyZSBhZGRpbmcgYSBjb250cmFjdGlvbgorICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNfLCBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pOworICAgICAgICBDRSA9IHQubV9tYXBwaW5nXy5nZXRWYWx1ZShjcCk7CisgICAgICAgIENFID0gYWRkQ29udHJhY3Rpb24odCwgQ0UsIGVsZW1lbnQpOworICAgIH0gCisgICAgZWxzZSB7IAorICAgICAgICAvLyBlYXN5IGNhc2UKKyAgICAgICAgQ0UgPSB0Lm1fbWFwcGluZ18uZ2V0VmFsdWUoZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XykpOworICAgICAgICAKKyAgICAgICAgaWYgKENFICE9IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgaWYoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChDRSkpIHsgCisgICAgICAgICAgICAvLyBhZGRpbmcgYSBub24gY29udHJhY3Rpb24gZWxlbWVudCAodGhhaSwgZXhwYW5zaW9uLCAKKyAgICAgICAgICAgIC8vIHNpbmdsZSkgdG8gYWxyZWFkeSBleGlzdGluZyBjb250cmFjdGlvbiAKKyAgICAgICAgICAgIGlmICghaXNQcmVmaXgoZWxlbWVudC5tX21hcENFXykpIHsgCisgICAgICAgICAgICAvLyB3ZSBjYW5ub3QgcmVlbnRlciBwcmVmaXggZWxlbWVudHMgLSBhcyB3ZSBhcmUgZ29pbmcgCisgICAgICAgICAgICAvLyB0byBjcmVhdGUgYSBkZWFkIGxvb3AKKyAgICAgICAgICAgIC8vIE9ubHkgZXhwYW5zaW9ucyBhbmQgcmVndWxhciBDRXMgY2FuIGdvIGhlcmUuLi4gCisgICAgICAgICAgICAvLyBDb250cmFjdGlvbnMgd2lsbCBuZXZlciBoYXBwZW4gaW4gdGhpcyBwbGFjZQorICAgICAgICAgICAgc2V0Q29udHJhY3Rpb24odC5tX2NvbnRyYWN0aW9uc18sIENFLCAwLCAoY2hhcikwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaGFzIHRvIGNoYW5nZSB0aGUgQ0UgYXQgdGhlIGVuZCBvZiAKKyAgICAgICAgICAgIC8vIGNvbnRyYWN0aW9uIFJFRE8hCisgICAgICAgICAgICBjaGFuZ2VMYXN0Q0UodC5tX2NvbnRyYWN0aW9uc18sIENFLCBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0Lm1fbWFwcGluZ18uc2V0VmFsdWUoZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICB0Lm1fbWFwcGluZ18uc2V0VmFsdWUoZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBDRTsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIE5vdGUgcmVnYXJkaW5nIHN1cnJvZ2F0ZSBoYW5kbGluZzogV2UgYXJlIGludGVyZXN0ZWQgb25seSBpbiB0aGUgc2luZ2xlCisgICAgICogb3IgbGVhZGluZyBzdXJyb2dhdGVzIGluIGEgY29udHJhY3Rpb24uIElmIGEgc3Vycm9nYXRlIGlzIHNvbWV3aGVyZSBlbHNlCisgICAgICogaW4gdGhlIGNvbnRyYWN0aW9uLCBpdCBpcyBnb2luZyB0byBiZSBoYW5kbGVkIGFzIGEgcGFpciBvZiBjb2RlIHVuaXRzLAorICAgICAqIGFzIGl0IGRvZXNuJ3QgYWZmZWN0IHRoZSBwZXJmb3JtYW5jZSBBTkQgaGFuZGxpbmcgc3Vycm9nYXRlcyBzcGVjaWFsbHkKKyAgICAgKiB3b3VsZCBjb21wbGljYXRlIGNvZGUgd2F5IHRvbyBtdWNoLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBhZGRDb250cmFjdGlvbihCdWlsZFRhYmxlIHQsIGludCBDRSwgRWxlbWVudHMgZWxlbWVudCkgCisgICAgeworICAgIENvbnRyYWN0aW9uVGFibGUgY29udHJhY3Rpb25zID0gdC5tX2NvbnRyYWN0aW9uc187CisgICAgY29udHJhY3Rpb25zLm1fY3VycmVudFRhZ18gPSBDRV9DT05UUkFDVElPTl9UQUdfOworICAgIAorICAgIC8vIEZpcnN0IHdlIG5lZWQgdG8gY2hlY2sgaWYgY29udHJhY3Rpb25zIHN0YXJ0cyB3aXRoIGEgc3Vycm9nYXRlCisgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzXywgMCk7CisgICAgaW50IGNwc2l6ZSA9IDE7CisgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNwKSkgeworICAgICAgICBjcHNpemUgPSAyOworICAgIH0KKyAgICBpZiAoY3BzaXplIDwgZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpKSB7IAorICAgICAgICAvLyBUaGlzIGlzIGEgcmVhbCBjb250cmFjdGlvbiwgaWYgdGhlcmUgYXJlIG90aGVyIGNoYXJhY3RlcnMgYWZ0ZXIgCisgICAgICAgIC8vIHRoZSBmaXJzdAorICAgICAgICBpbnQgc2l6ZSA9IGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XzsKKyAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzaXplOyBqICsrKSB7ICAgCisgICAgICAgIC8vIEZpcnN0IGFkZCBjb250cmFjdGlvbiBjaGFycyB0byB1bnNhZmUgQ1AgaGFzaCB0YWJsZSAKKyAgICAgICAgLy8gVW5sZXNzIGl0IGlzIGEgdHJhaWwgc3Vycm9nYXRlLCB3aGljaCBpcyBoYW5kbGVkIAorICAgICAgICAvLyBhbGdvcml0bWljYWxseSBhbmQgc2hvdWxkbid0IHRha2UgdXAgc3BhY2UgaW4gdGhlIHRhYmxlLgorICAgICAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfICsgaikpKSB7CisgICAgICAgICAgICB1bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCAKKyAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfICsgaikpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gQWRkIHRoZSBsYXN0IGNoYXIgb2YgdGhlIGNvbnRyYWN0aW9uIHRvIHRoZSBjb250cmFjdGlvbi1lbmQgCisgICAgICAgIC8vIGhhc2ggdGFibGUuIHVubGVzcyBpdCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSwgd2hpY2ggaXMgaGFuZGxlZCAKKyAgICAgICAgLy8gYWxnb3JpdGhtaWNhbGx5IGFuZCBzaG91bGRuJ3QgYmUgaW4gdGhlIHRhYmxlCisgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtMSkpKSB7CisgICAgICAgIENvbnRyRW5kQ1BTZXQodC5tX2NvbnRyRW5kQ1BfLCAKKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0xKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBKYW1vcyBpbiB0aGUgY29udHJhY3Rpb24sIHdlIHNob3VsZCB0dXJuIG9uIAorICAgICAgICAvLyBzcGVjaWFsIHByb2Nlc3NpbmcgZm9yIEphbW9zCisgICAgICAgIGlmIChpc0phbW8oZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pKSkgeworICAgICAgICB0Lm1fY29sbGF0b3JfLm1faXNKYW1vU3BlY2lhbF8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIHRoZW4gd2UgbmVlZCB0byBkZWFsIHdpdGggaXQgCisgICAgICAgIC8vIHdlIGNvdWxkIGFyZWFkeSBoYXZlIHNvbWV0aGluZyBpbiB0YWJsZSAtIG9yIHdlIG1pZ2h0IG5vdCAKKyAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfICs9IGNwc2l6ZTsKKyAgICAgICAgaWYgKCFpc0NvbnRyYWN0aW9uKENFKSkgeyAKKyAgICAgICAgLy8gaWYgaXQgd2Fzbid0IGNvbnRyYWN0aW9uLCB3ZSB3b3VsZG4ndCBlbmQgdXAgaGVyZQorICAgICAgICBpbnQgZmlyc3RDb250cmFjdGlvbk9mZnNldCA9IGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlRSQUNUSU9OX1RBQkxFX05FV19FTEVNRU5UXywgKGNoYXIpMCwgQ0UpOworICAgICAgICBpbnQgbmV3Q0UgPSBwcm9jZXNzQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworICAgICAgICBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQsIAorICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisgICAgICAgICAgICAgICAgICAgbmV3Q0UpOworICAgICAgICBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKTB4RkZGRiwgQ0UpOworICAgICAgICBDRSA9IGNvbnN0cnVjdFNwZWNpYWxDRShDRV9DT05UUkFDVElPTl9UQUdfLCAKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RDb250cmFjdGlvbk9mZnNldCk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAKKyAgICAgICAgLy8gd2UgYXJlIGFkZGluZyB0byBleGlzdGluZyBjb250cmFjdGlvbiAKKyAgICAgICAgLy8gdGhlcmUgd2VyZSBhbHJlYWR5IHNvbWUgZWxlbWVudHMgaW4gdGhlIHRhYmxlLCBzbyB3ZSBuZWVkIHRvIAorICAgICAgICAvLyBhZGQgYSBuZXcgY29udHJhY3Rpb24KKyAgICAgICAgLy8gVHdvIHRoaW5ncyBjYW4gaGFwcGVuIGhlcmU6IGVpdGhlciB0aGUgY29kZXBvaW50IGlzIGFscmVhZHkgCisgICAgICAgIC8vIGluIHRoZSB0YWJsZSwgb3IgaXQgaXMgbm90IAorICAgICAgICBpbnQgcG9zaXRpb24gPSBmaW5kQ1AoY29udHJhY3Rpb25zLCBDRSwgCisgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pKTsKKyAgICAgICAgaWYgKHBvc2l0aW9uID4gMCkgeyAgICAgICAKKyAgICAgICAgICAgIC8vIGlmIGl0IGlzIHdlIGp1c3QgY29udGludWUgZG93biB0aGUgY2hhaW4KKyAgICAgICAgICAgIGludCBlQ0UgPSBnZXRDRShjb250cmFjdGlvbnMsIENFLCBwb3NpdGlvbik7CisgICAgICAgICAgICBpbnQgbmV3Q0UgPSBwcm9jZXNzQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBlbGVtZW50LCBlQ0UpOworICAgICAgICAgICAgc2V0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBDRSwgcG9zaXRpb24sIAorICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisgICAgICAgICAgICAgICAgICAgbmV3Q0UpOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGlmIGl0IGlzbid0LCB3ZSB3aWxsIGhhdmUgdG8gY3JlYXRlIGEgbmV3IHNlcXVlbmNlIAorICAgICAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDRV9OT1RfRk9VTkRfKTsKKyAgICAgICAgICAgIGluc2VydENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgQ0UsIAorICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NFKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyAtPSBjcHNpemU7CisgICAgICAgIHQubV9tYXBwaW5nXy5zZXRWYWx1ZShjcCwgQ0UpOworICAgIH0gCisgICAgZWxzZSBpZiAoIWlzQ29udHJhY3Rpb24oQ0UpKSB7IAorICAgICAgICAvLyB0aGlzIGlzIGp1c3QgYSBzdXJyb2dhdGUsIGFuZCB0aGVyZSBpcyBubyBjb250cmFjdGlvbiAKKyAgICAgICAgdC5tX21hcHBpbmdfLnNldFZhbHVlKGNwLCBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICB9IAorICAgIGVsc2UgeyAKKyAgICAgICAgLy8gZmlsbCBvdXQgdGhlIGZpcnN0IHN0YWdlIG9mIHRoZSBjb250cmFjdGlvbiB3aXRoIHRoZSBzdXJyb2dhdGUgCisgICAgICAgIC8vIENFIAorICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCAoY2hhcikwLCBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICAgICAgY2hhbmdlQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBDRSwgKGNoYXIpMHhGRkZGLCBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICB9CisgICAgcmV0dXJuIENFOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogdGhpcyBpcyBmb3IgYWRkaW5nIG5vbiBjb250cmFjdGlvbnMgCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSB2YWx1ZSBjb2xsYXRpb24gZWxlbWVudCB2YWx1ZQorICAgICAqIEByZXR1cm4gbmV3IGNvbGxhdGlvbiBlbGVtZW50IAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjaGFuZ2VMYXN0Q0UoQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZhbHVlKSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgaWYgKHRibCA9PSBudWxsKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICB0YmwubV9DRXNfLnNldCh0YmwubV9DRXNfLnNpemUoKSAtIDEsIG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFNwZWNpYWxDRSh0YWJsZS5tX2N1cnJlbnRUYWdfLCBlbGVtZW50ICYgMHhGRkZGRkYpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHNldCBvZiByYW5nZXMgY2FsY3VsYXRlZCBieSBhbGxvY1dlaWdodHMoKSwgaXRlcmF0ZSB0aHJvdWdoIHRoZSAKKyAgICAgKiB3ZWlnaHRzLiBTZXRzIHRoZSBuZXh0IHdlaWdodCBpbiBjZWdlbmVyYXRvci5tX2N1cnJlbnRfLgorICAgICAqIEBwYXJhbSBjZWdlbmVyYXRvciBvYmplY3QgdGhhdCBjb250YWlucyByYW5nZXMgd2VpZ2h0IHJhbmdlIGFycmF5IGFuZAorICAgICAqICAgICAgICBpdHMgcmFuZ2VDb3VudAorICAgICAqIEByZXR1cm4gdGhlIG5leHQgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG5leHRXZWlnaHQoQ0VHZW5lcmF0b3IgY2VnZW5lcmF0b3IpIAorICAgIHsKKyAgICAgICAgaWYgKGNlZ2VuZXJhdG9yLm1fcmFuZ2VzTGVuZ3RoXyA+IDApIHsKKyAgICAgICAgICAgIC8vIGdldCBtYXhCeXRlIGZyb20gdGhlIC5jb3VudCBmaWVsZAorICAgICAgICAgICAgaW50IG1heEJ5dGUgPSBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9jb3VudF87CisgICAgICAgICAgICAvLyBnZXQgdGhlIG5leHQgd2VpZ2h0IAorICAgICAgICAgICAgaW50IHdlaWdodCA9IGNlZ2VuZXJhdG9yLm1fcmFuZ2VzX1swXS5tX3N0YXJ0XzsKKyAgICAgICAgICAgIGlmICh3ZWlnaHQgPT0gY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fZW5kXykgeworICAgICAgICAgICAgICAgIC8vIHRoaXMgcmFuZ2UgaXMgZmluaXNoZWQsIHJlbW92ZSBpdCBhbmQgbW92ZSB0aGUgZm9sbG93aW5nIAorICAgICAgICAgICAgICAgIC8vIG9uZXMgdXAgCisgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNMZW5ndGhfIC0tOworICAgICAgICAgICAgICAgIGlmIChjZWdlbmVyYXRvci5tX3Jhbmdlc0xlbmd0aF8gPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2VnZW5lcmF0b3IubV9yYW5nZXNfLCAxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWdlbmVyYXRvci5tX3Jhbmdlc18sIDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlZ2VuZXJhdG9yLm1fcmFuZ2VzTGVuZ3RoXyk7CisgICAgICAgICAgICAgICAgICAgIGNlZ2VuZXJhdG9yLm1fcmFuZ2VzX1swXS5tX2NvdW50XyA9IG1heEJ5dGU7IAorICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIG1heEJ5dGUgaW4gcmFuZ2VzWzBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgd2VpZ2h0IGZvciB0aGUgbmV4dCB2YWx1ZQorICAgICAgICAgICAgICAgIGNlZ2VuZXJhdG9yLm1fcmFuZ2VzX1swXS5tX3N0YXJ0XyAKKyAgICAgICAgICAgID0gaW5jV2VpZ2h0KHdlaWdodCwgY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fbGVuZ3RoMl8sIAorICAgICAgICAgICAgICAgIG1heEJ5dGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHdlaWdodDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluY3JlbWVudCB0aGUgY29sbGF0aW9uIHdlaWdodAorICAgICAqIEBwYXJhbSB3ZWlnaHQgdG8gaW5jcmVtZW50CisgICAgICogQHBhcmFtIGxlbmd0aAorICAgICAqIEBwYXJhbSBtYXhCeXRlCisgICAgICogQHJldHVybiBuZXcgaW5jcmVtZW50ZWQgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluY1dlaWdodChpbnQgd2VpZ2h0LCBpbnQgbGVuZ3RoLCBpbnQgbWF4Qnl0ZSkgCisgICAgeworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGIgPSBnZXRXZWlnaHRCeXRlKHdlaWdodCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChiIDwgbWF4Qnl0ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBzZXRXZWlnaHRCeXRlKHdlaWdodCwgbGVuZ3RoLCBiICsgMSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gcm9sbCBvdmVyLCBzZXQgdGhpcyBieXRlIHRvIEJZVEVfRklSU1RfVEFJTE9SRURfIGFuZCAKKyAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHByZXZpb3VzIG9uZQorICAgICAgICAgICAgICAgIHdlaWdodCA9IHNldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8pOworICAgICAgICAgICAgICAgIC0tIGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB3ZWlnaHQgYnl0ZQorICAgICAqIEBwYXJhbSB3ZWlnaHQKKyAgICAgKiBAcGFyYW0gaW5kZXgKKyAgICAgKiBAcmV0dXJuIGJ5dGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0V2VpZ2h0Qnl0ZShpbnQgd2VpZ2h0LCBpbnQgaW5kZXgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuICh3ZWlnaHQgPj4gKCg0IC0gaW5kZXgpIDw8IDMpKSAmIDB4ZmY7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgd2VpZ2h0IGJ5dGUgaW4gdGFibGUKKyAgICAgKiBAcGFyYW0gd2VpZ2h0IAorICAgICAqIEBwYXJhbSBpbmRleAorICAgICAqIEBwYXJhbSBiIGJ5dGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2V0V2VpZ2h0Qnl0ZShpbnQgd2VpZ2h0LCBpbnQgaW5kZXgsIGludCBiKSAKKyAgICB7CisgICAgICAgIGluZGV4IDw8PSAzOworICAgICAgICAvLyAweGZmZmZmZmZmIGV4Y2VwdCBhIDAwICJob2xlIiBmb3IgdGhlIGluZGV4LXRoIGJ5dGUKKyAgICAgICAgaW50IG1hc2sgPSAweGZmZmZmZmZmID4+PiBpbmRleDsKKyAgICAgICAgaW5kZXggPSAzMiAtIGluZGV4OworICAgICAgICBtYXNrIHw9IDB4ZmZmZmZmMDAgPDwgaW5kZXg7CisgICAgICAgIHJldHVybiAod2VpZ2h0ICYgbWFzaykgfCAoYiA8PCBpbmRleCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENhbGwgZ2V0V2VpZ2h0UmFuZ2VzIGFuZCB0aGVuIGRldGVybWluZSBoZXVyaXN0aWNhbGx5IHdoaWNoIHJhbmdlcyB0byAKKyAgICAgKiB1c2UgZm9yIGEgZ2l2ZW4gbnVtYmVyIG9mIHdlaWdodHMgYmV0d2VlbiAoZXhjbHVkaW5nKSB0d28gbGltaXRzCisgICAgICogQHBhcmFtIGxvd2VyTGltaXQKKyAgICAgKiBAcGFyYW0gdXBwZXJMaW1pdAorICAgICAqIEBwYXJhbSBuCisgICAgICogQHBhcmFtIG1heEJ5dGUKKyAgICAgKiBAcGFyYW0gcmFuZ2VzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHByaXZhdGUgaW50IGFsbG9jYXRlV2VpZ2h0cyhpbnQgbG93ZXJMaW1pdCwgaW50IHVwcGVyTGltaXQsIGludCBuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4Qnl0ZSwgV2VpZ2h0UmFuZ2UgcmFuZ2VzW10pIAorICAgIHsKKyAgICAgICAgLy8gbnVtYmVyIG9mIHVzYWJsZSBieXRlIHZhbHVlcyAzLi5tYXhCeXRlCisgICAgICAgIGludCBjb3VudEJ5dGVzID0gbWF4Qnl0ZSAtIFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfRklSU1RfVEFJTE9SRURfICsgMTsKKyAgICAgICAgLy8gWzBdIHVudXNlZCwgWzVdIHRvIG1ha2UgaW5kZXggY2hlY2tzIHVubmVjZXNzYXJ5LCBtX3V0aWxDb3VudEJ1ZmZlcl8KKyAgICAgICAgLy8gY291bnRCeXRlcyB0byB0aGUgcG93ZXIgb2YgaW5kZXgsIG1fdXRpbExvbmdCdWZmZXJfIGZvciB1bnNpZ25lZG5lc3MKKyAgICAgICAgLy8gZ2NjIHJlcXVpcmVzIGV4cGxpY2l0IGluaXRpYWxpemF0aW9uIAorICAgICAgICBtX3V0aWxMb25nQnVmZmVyX1swXSA9IDE7CisgICAgICAgIG1fdXRpbExvbmdCdWZmZXJfWzFdID0gY291bnRCeXRlczsKKyAgICAgICAgbV91dGlsTG9uZ0J1ZmZlcl9bMl0gPSBtX3V0aWxMb25nQnVmZmVyX1sxXSAqIGNvdW50Qnl0ZXM7CisgICAgICAgIG1fdXRpbExvbmdCdWZmZXJfWzNdID0gbV91dGlsTG9uZ0J1ZmZlcl9bMl0gKiBjb3VudEJ5dGVzOworICAgICAgICBtX3V0aWxMb25nQnVmZmVyX1s0XSA9IG1fdXRpbExvbmdCdWZmZXJfWzNdICogY291bnRCeXRlczsKKyAgICAgICAgaW50IHJhbmdlQ291bnQgPSBnZXRXZWlnaHRSYW5nZXMobG93ZXJMaW1pdCwgdXBwZXJMaW1pdCwgbWF4Qnl0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Qnl0ZXMsIHJhbmdlcyk7CisgICAgICAgIGlmIChyYW5nZUNvdW50IDw9IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8vIHdoYXQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdlaWdodHMgd2l0aCB0aGVzZSByYW5nZXM/CisgICAgICAgIGxvbmcgbWF4Q291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlQ291bnQ7ICsrIGkpIHsKKyAgICAgICAgICAgIG1heENvdW50ICs9IChsb25nKXJhbmdlc1tpXS5tX2NvdW50XyAKKyAgICAgICAgKiBtX3V0aWxMb25nQnVmZmVyX1s0IC0gcmFuZ2VzW2ldLm1fbGVuZ3RoX107CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1heENvdW50IDwgbikgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2V0IHRoZSBsZW5ndGgyIGFuZCBjb3VudDIgZmllbGRzCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VDb3VudDsgKysgaSkgeworICAgICAgICAgICAgcmFuZ2VzW2ldLm1fbGVuZ3RoMl8gPSByYW5nZXNbaV0ubV9sZW5ndGhfOworICAgICAgICAgICAgcmFuZ2VzW2ldLm1fY291bnQyXyA9IHJhbmdlc1tpXS5tX2NvdW50XzsKKyAgICAgICAgfQorICAgICAgICAvLyB0cnkgdW50aWwgd2UgZmluZCBzdWl0YWJseSBsYXJnZSByYW5nZXMKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgc21hbGxlc3QgbnVtYmVyIG9mIGJ5dGVzIGluIGEgcmFuZ2UKKyAgICAgICAgICAgIGludCBtaW5MZW5ndGggPSByYW5nZXNbMF0ubV9sZW5ndGgyXzsKKyAgICAgICAgICAgIC8vIHN1bSB1cCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRoYXQgZml0IGludG8gcmFuZ2VzIG9mIGVhY2ggYnl0ZSAKKyAgICAgICAgICAgIC8vIGxlbmd0aAorICAgICAgICAgICAgQXJyYXlzLmZpbGwobV91dGlsQ291bnRCdWZmZXJfLCAwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VDb3VudDsgKysgaSkgeworICAgICAgICAgICAgICAgIG1fdXRpbENvdW50QnVmZmVyX1tyYW5nZXNbaV0ubV9sZW5ndGgyX10gKz0gcmFuZ2VzW2ldLm1fY291bnQyXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG5vdyB0cnkgdG8gYWxsb2NhdGUgbiBlbGVtZW50cyBpbiB0aGUgYXZhaWxhYmxlIHNob3J0IHJhbmdlcyAKKyAgICAgICAgICAgIGlmIChuIDw9IG1fdXRpbENvdW50QnVmZmVyX1ttaW5MZW5ndGhdIAorICAgICAgICArIG1fdXRpbENvdW50QnVmZmVyX1ttaW5MZW5ndGggKyAxXSkgeworICAgICAgICAgICAgICAgIC8vIHRyaXZpYWwgY2FzZXMsIHVzZSB0aGUgZmlyc3QgZmV3IHJhbmdlcworICAgICAgICAgICAgICAgIG1heENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICByYW5nZUNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIG1heENvdW50ICs9IHJhbmdlc1tyYW5nZUNvdW50XS5tX2NvdW50Ml87CisgICAgICAgICAgICAgICAgICAgICsrIHJhbmdlQ291bnQ7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAobiA+IG1heENvdW50KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChuIDw9IHJhbmdlc1swXS5tX2NvdW50Ml8gKiBjb3VudEJ5dGVzKSB7CisgICAgICAgICAgICAgICAgLy8gZWFzeSBjYXNlLCBqdXN0IG1ha2UgdGhpcyBvbmUgcmFuZ2UgbGFyZ2UgZW5vdWdoIGJ5IAorICAgICAgICAgICAgICAgIC8vIGxlbmd0aGVuaW5nIGl0IG9uY2UgbW9yZSwgcG9zc2libHkgc3BsaXQgaXQKKyAgICAgICAgICAgICAgICByYW5nZUNvdW50ID0gMTsKKyAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgaG93IHRvIHNwbGl0IHRoZSByYW5nZSBiZXR3ZWVuIG1heExlbmd0aC0xIAorICAgICAgICAgICAgICAgIC8vIChjb3VudDEpIGFuZCBtYXhMZW5ndGggKGNvdW50MikgCisgICAgICAgICAgICAgICAgbG9uZyBwb3dlcl8xIAorICAgICAgICAgICAgPSBtX3V0aWxMb25nQnVmZmVyX1ttaW5MZW5ndGggLSByYW5nZXNbMF0ubV9sZW5ndGhfXTsKKyAgICAgICAgICAgICAgICBsb25nIHBvd2VyID0gcG93ZXJfMSAqIGNvdW50Qnl0ZXM7CisgICAgICAgICAgICAgICAgaW50IGNvdW50MiA9IChpbnQpKChuICsgcG93ZXIgLSAxKSAvIHBvd2VyKTsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQxID0gcmFuZ2VzWzBdLm1fY291bnRfIC0gY291bnQyOworICAgICAgICAgICAgICAgIC8vIHNwbGl0IHRoZSByYW5nZQorICAgICAgICAgICAgICAgIGlmIChjb3VudDEgPCAxKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aGVuIHRoZSBlbnRpcmUgcmFuZ2UgdG8gbWF4TGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICBsZW5ndGhlblJhbmdlKHJhbmdlcywgMCwgbWF4Qnl0ZSwgY291bnRCeXRlcyk7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVhbGx5IHNwbGl0IHRoZSByYW5nZQorICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgcmFuZ2Ugd2l0aCB0aGUgZW5kIGFuZCBpbml0aWFsIGFuZCBjdXJyZW50IAorICAgICAgICAgICAgICAgICAgICAvLyBsZW5ndGggb2YgdGhlIG9sZCBvbmUKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VDb3VudCA9IDI7CisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1sxXS5tX2VuZF8gPSByYW5nZXNbMF0ubV9lbmRfOworICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9sZW5ndGhfID0gcmFuZ2VzWzBdLm1fbGVuZ3RoXzsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fbGVuZ3RoMl8gPSBtaW5MZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgZW5kIG9mIHRoZSBmaXJzdCByYW5nZSBhY2NvcmRpbmcgdG8gY291bnQxCisgICAgICAgICAgICAgICAgICAgIGludCBpID0gcmFuZ2VzWzBdLm1fbGVuZ3RoXzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGIgPSBnZXRXZWlnaHRCeXRlKHJhbmdlc1swXS5tX3N0YXJ0XywgaSkgKyBjb3VudDEgLSAxOworICAgICAgICAgICAgICAgICAgICAvLyByYW5nZXNbMF0uY291bnQgYW5kIGNvdW50MSBtYXkgYmUgPmNvdW50Qnl0ZXMgZnJvbSAKKyAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2luZyBhZGphY2VudCByYW5nZXM7IGIgPiBtYXhCeXRlIGlzIHBvc3NpYmxlCisgICAgICAgICAgICAgICAgICAgIGlmIChiIDw9IG1heEJ5dGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2VuZF8gPSBzZXRXZWlnaHRCeXRlKHJhbmdlc1swXS5tX3N0YXJ0XywgaSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiKTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByYW5nZXNbMF0ubV9lbmRfID0gc2V0V2VpZ2h0Qnl0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jV2VpZ2h0KHJhbmdlc1swXS5tX3N0YXJ0XywgaSAtIDEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhCeXRlKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIGIgLSBjb3VudEJ5dGVzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIGJ5dGVzIGluIHRoZSBlbmQgd2VpZ2h0IGF0IGxlbmd0aCArIDEuLmxlbmd0aDIgCisgICAgICAgICAgICAgICAgICAgIC8vIHRvIG1heEJ5dGUKKyAgICAgICAgICAgICAgICAgICAgYiA9IChtYXhCeXRlIDw8IDI0KSB8IChtYXhCeXRlIDw8IDE2KSB8IChtYXhCeXRlIDw8IDgpCisgICAgICAgICAgICAgICAgICAgICAgICB8IG1heEJ5dGU7IC8vIHRoaXMgdXNlZCB0byBiZSAweGZmZmZmZmZmIAorICAgICAgICAgICAgICAgICAgICByYW5nZXNbMF0ubV9lbmRfID0gdHJ1bmNhdGVXZWlnaHQocmFuZ2VzWzBdLm1fZW5kXywgaSkgCisgICAgICAgICAgICB8IChiID4+PiAoaSA8PCAzKSkgCisgICAgICAgICAgICAmIChiIDw8ICgoNCAtIG1pbkxlbmd0aCkgPDwgMykpOworICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YXJ0IG9mIHRoZSBzZWNvbmQgcmFuZ2UgdG8gaW1tZWRpYXRlbHkgZm9sbG93IAorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZW5kIG9mIHRoZSBmaXJzdCBvbmUKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fc3RhcnRfID0gaW5jV2VpZ2h0KHJhbmdlc1swXS5tX2VuZF8sIG1pbkxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhCeXRlKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBjb3VudCB2YWx1ZXMgKGluZm9ybWF0aW9uYWwpCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2NvdW50XyA9IGNvdW50MTsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fY291bnRfID0gY291bnQyOworICAgIAorICAgICAgICAgICAgICAgICAgICByYW5nZXNbMF0ubV9jb3VudDJfID0gKGludCkoY291bnQxICogcG93ZXJfMSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgKmNvdW50Qnl0ZXMgd2hlbiBsZW5ndGhlbmVkIAorICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9jb3VudDJfID0gKGludCkoY291bnQyICogcG93ZXJfMSk7IAorICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBsZW5ndGhlbiB0aGUgc2Vjb25kIHJhbmdlIHRvIG1heExlbmd0aAorICAgICAgICAgICAgICAgICAgICBsZW5ndGhlblJhbmdlKHJhbmdlcywgMSwgbWF4Qnl0ZSwgY291bnRCeXRlcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gbm8gZ29vZCBtYXRjaCwgbGVuZ3RoZW4gYWxsIG1pbkxlbmd0aCByYW5nZXMgYW5kIGl0ZXJhdGUgCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IHJhbmdlc1tpXS5tX2xlbmd0aDJfID09IG1pbkxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgICAgIGxlbmd0aGVuUmFuZ2UocmFuZ2VzLCBpLCBtYXhCeXRlLCBjb3VudEJ5dGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAocmFuZ2VDb3VudCA+IDEpIHsKKyAgICAgICAgICAgIC8vIHNvcnQgdGhlIHJhbmdlcyBieSB3ZWlnaHQgdmFsdWVzIAorICAgICAgICAgICAgQXJyYXlzLnNvcnQocmFuZ2VzLCAwLCByYW5nZUNvdW50KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBzZXQgbWF4Qnl0ZSBpbiByYW5nZXNbMF0gZm9yIHVjb2xfbmV4dFdlaWdodCgpCisgICAgICAgIHJhbmdlc1swXS5tX2NvdW50XyA9IG1heEJ5dGU7CisgICAgCisgICAgICAgIHJldHVybiByYW5nZUNvdW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGRhdGVzIHRoZSByYW5nZSBsZW5ndGgKKyAgICAgKiBAcGFyYW0gcmFuZ2Ugd2VpZ2h0IHJhbmdlIGFycmF5CisgICAgICogQHBhcmFtIG9mZnNldCB0byB3ZWlnaHQgcmFuZ2UgYXJyYXkKKyAgICAgKiBAcGFyYW0gbWF4Qnl0ZQorICAgICAqIEBwYXJhbSBjb3VudEJ5dGVzCisgICAgICogQHJldHVybiBuZXcgbGVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxlbmd0aGVuUmFuZ2UoV2VpZ2h0UmFuZ2UgcmFuZ2VbXSwgaW50IG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heEJ5dGUsIGludCBjb3VudEJ5dGVzKSAKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggPSByYW5nZVtvZmZzZXRdLm1fbGVuZ3RoMl8gKyAxOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fc3RhcnRfID0gc2V0V2VpZ2h0VHJhaWwocmFuZ2Vbb2Zmc2V0XS5tX3N0YXJ0XywgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfRklSU1RfVEFJTE9SRURfKTsKKyAgICAgICAgcmFuZ2Vbb2Zmc2V0XS5tX2VuZF8gPSBzZXRXZWlnaHRUcmFpbChyYW5nZVtvZmZzZXRdLm1fZW5kXywgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhCeXRlKTsKKyAgICAgICAgcmFuZ2Vbb2Zmc2V0XS5tX2NvdW50Ml8gKj0gY291bnRCeXRlczsKKyAgICAgICAgcmFuZ2Vbb2Zmc2V0XS5tX2xlbmd0aDJfID0gbGVuZ3RoOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB3ZWlnaHQgCisgICAgICogQHBhcmFtIHdlaWdodAorICAgICAqIEBwYXJhbSBsZW5ndGgKKyAgICAgKiBAcGFyYW0gdHJhaWwKKyAgICAgKiBAcmV0dXJuIG5ldyB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2V0V2VpZ2h0VHJhaWwoaW50IHdlaWdodCwgaW50IGxlbmd0aCwgaW50IHRyYWlsKSAKKyAgICB7CisgICAgICAgIGxlbmd0aCA9ICg0IC0gbGVuZ3RoKSA8PCAzOworICAgICAgICByZXR1cm4gKHdlaWdodCAmICgweGZmZmZmZjAwIDw8IGxlbmd0aCkpIHwgKHRyYWlsIDw8IGxlbmd0aCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIHRha2UgdHdvIENFIHdlaWdodHMgYW5kIGNhbGN1bGF0ZSB0aGUKKyAgICAgKiBwb3NzaWJsZSByYW5nZXMgb2Ygd2VpZ2h0cyBiZXR3ZWVuIHRoZSB0d28gbGltaXRzLCBleGNsdWRpbmcgdGhlbQorICAgICAqIGZvciB3ZWlnaHRzIHdpdGggdXAgdG8gNCBieXRlcyB0aGVyZSBhcmUgdXAgdG8gMio0LTE9NyByYW5nZXMKKyAgICAgKiBAcGFyYW0gbG93ZXJMaW1pdAorICAgICAqIEBwYXJhbSB1cHBlckxpbWl0CisgICAgICogQHBhcmFtIG1heEJ5dGUKKyAgICAgKiBAcGFyYW0gY291bnRCeXRlcworICAgICAqIEBwYXJhbSByYW5nZXMKKyAgICAgKiBAcmV0dXJuIHdlaWdodCByYW5nZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRXZWlnaHRSYW5nZXMoaW50IGxvd2VyTGltaXQsIGludCB1cHBlckxpbWl0LCBpbnQgbWF4Qnl0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudEJ5dGVzLCBXZWlnaHRSYW5nZSByYW5nZXNbXSkgCisgICAgeworICAgICAgICAvLyBhc3N1bWUgdGhhdCBib3RoIGxvd2VyTGltaXQgJiB1cHBlckxpbWl0IGFyZSBub3QgMCAKKyAgICAgICAgLy8gZ2V0IHRoZSBsZW5ndGhzIG9mIHRoZSBsaW1pdHMgCisgICAgICAgIGludCBsb3dlckxlbmd0aCA9IGxlbmd0aE9mV2VpZ2h0KGxvd2VyTGltaXQpOworICAgICAgICBpbnQgdXBwZXJMZW5ndGggPSBsZW5ndGhPZldlaWdodCh1cHBlckxpbWl0KTsKKyAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvd2VyTGltaXQsIHVwcGVyTGltaXQpID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIHRoYXQgbmVpdGhlciBpcyBhIHByZWZpeCBvZiB0aGUgb3RoZXIKKyAgICAgICAgaWYgKGxvd2VyTGVuZ3RoIDwgdXBwZXJMZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChsb3dlckxpbWl0ID09IHRydW5jYXRlV2VpZ2h0KHVwcGVyTGltaXQsIGxvd2VyTGVuZ3RoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGlmIHRoZSB1cHBlciBsaW1pdCBpcyBhIHByZWZpeCBvZiB0aGUgbG93ZXIgbGltaXQgdGhlbiB0aGUgZWFybGllciAKKyAgICAgICAgLy8gdGVzdCBsb3dlckxpbWl0ID49IHVwcGVyTGltaXQgaGFzIGNhdWdodCBpdAorICAgICAgICAvLyByZXNldCBsb2NhbCB2YXJpYWJsZXMKKyAgICAgICAgLy8gV2l0aCB0aGUgbGltaXQgbGVuZ3RocyBvZiAxLi40LCB0aGVyZSBhcmUgdXAgdG8gNyByYW5nZXMgZm9yIAorICAgICAgICAvLyBhbGxvY2F0aW9uOgorICAgICAgICAvLyByYW5nZSAgICAgbWluaW11bSBsZW5ndGgKKyAgICAgICAgLy8gbG93ZXJbNF0gIDQKKyAgICAgICAgLy8gbG93ZXJbM10gIDMKKyAgICAgICAgLy8gbG93ZXJbMl0gIDIKKyAgICAgICAgLy8gbWlkZGxlICAgIDEKKyAgICAgICAgLy8gdXBwZXJbMl0gIDIKKyAgICAgICAgLy8gdXBwZXJbM10gIDMKKyAgICAgICAgLy8gdXBwZXJbNF0gIDQKKyAgICAgICAgLy8gV2UgYXJlIG5vdyBnb2luZyB0byBjYWxjdWxhdGUgdXAgdG8gNyByYW5nZXMuCisgICAgICAgIC8vIFNvbWUgb2YgdGhlbSB3aWxsIHR5cGljYWxseSBvdmVybGFwLCBzbyB3ZSB3aWxsIHRoZW4gaGF2ZSB0byBtZXJnZSAKKyAgICAgICAgLy8gYW5kIGVsaW1pbmF0ZSByYW5nZXMuCisgICAgICAgIAorICAgICAgICAvLyBXZSBoYXZlIHRvIGNsZWFuIGNydWZ0IGZyb20gcHJldmlvdXMgaW52b2NhdGlvbnMKKyAgICAgICAgLy8gYmVmb3JlIGRvaW5nIGFueXRoaW5nLiBDKysgYWxyZWFkeSBkb2VzIHRoYXQKKyAgICAgICAgZm9yKGludCBsZW5ndGggPSAwOyBsZW5ndGggPCA1OyBsZW5ndGgrKykgeworICAgICAgICAgICAgbV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5jbGVhcigpOworICAgICAgICAgICAgbV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5jbGVhcigpOworICAgICAgICB9CisgICAgICAgIG1fdXRpbFdlaWdodFJhbmdlXy5jbGVhcigpOworICAgICAgICAKKyAgICAgICAgaW50IHdlaWdodCA9IGxvd2VyTGltaXQ7CisgICAgICAgIGZvciAoaW50IGxlbmd0aCA9IGxvd2VyTGVuZ3RoOyBsZW5ndGggPj0gMjsgLS0gbGVuZ3RoKSB7CisgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLmNsZWFyKCk7CisgICAgICAgICAgICBpbnQgdHJhaWwgPSBnZXRXZWlnaHRCeXRlKHdlaWdodCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICh0cmFpbCA8IG1heEJ5dGUpIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fc3RhcnRfIAorICAgICAgICAgICAgPSBpbmNXZWlnaHRUcmFpbCh3ZWlnaHQsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2VuZF8gCisgICAgICAgICAgICA9IHNldFdlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoLCBtYXhCeXRlKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fbGVuZ3RoXyA9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID0gbWF4Qnl0ZSAtIHRyYWlsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2VpZ2h0ID0gdHJ1bmNhdGVXZWlnaHQod2VpZ2h0LCBsZW5ndGggLSAxKTsKKyAgICAgICAgfQorICAgICAgICBtX3V0aWxXZWlnaHRSYW5nZV8ubV9zdGFydF8gPSBpbmNXZWlnaHRUcmFpbCh3ZWlnaHQsIDEpOworICAgIAorICAgICAgICB3ZWlnaHQgPSB1cHBlckxpbWl0OworICAgICAgICAvLyBbMF0gYW5kIFsxXSBhcmUgbm90IHVzZWQgLSB0aGlzIHNpbXBsaWZpZXMgaW5kZXhpbmcsIAorICAgICAgICAvLyBtX3V0aWxVcHBlcldlaWdodFJhbmdlXworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgbGVuZ3RoID0gdXBwZXJMZW5ndGg7IGxlbmd0aCA+PSAyOyBsZW5ndGggLS0pIHsKKyAgICAgICAgICAgIGludCB0cmFpbCA9IGdldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKHRyYWlsID4gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fc3RhcnRfIAorICAgICAgICAgICAgPSBzZXRXZWlnaHRUcmFpbCh3ZWlnaHQsIGxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXyk7CisgICAgICAgICAgICAgICAgbV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2VuZF8gCisgICAgICAgICAgICA9IGRlY1dlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fbGVuZ3RoXyA9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID0gdHJhaWwKKyAgICAgICAgICAgIC0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3ZWlnaHQgPSB0cnVuY2F0ZVdlaWdodCh3ZWlnaHQsIGxlbmd0aCAtIDEpOworICAgICAgICB9CisgICAgICAgIG1fdXRpbFdlaWdodFJhbmdlXy5tX2VuZF8gPSBkZWNXZWlnaHRUcmFpbCh3ZWlnaHQsIDEpOworICAgIAorICAgICAgICAvLyBzZXQgdGhlIG1pZGRsZSByYW5nZQorICAgICAgICBtX3V0aWxXZWlnaHRSYW5nZV8ubV9sZW5ndGhfID0gMTsKKyAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKG1fdXRpbFdlaWdodFJhbmdlXy5tX2VuZF8sIG1fdXRpbFdlaWdodFJhbmdlXy5tX3N0YXJ0XykgPj0gMCkgeworICAgICAgICAvL2lmIChtX3V0aWxXZWlnaHRSYW5nZV8ubV9lbmRfID49IG1fdXRpbFdlaWdodFJhbmdlXy5tX3N0YXJ0XykgeworICAgICAgICAgICAgbV91dGlsV2VpZ2h0UmFuZ2VfLm1fY291bnRfIAorICAgICAgICA9ICgobV91dGlsV2VpZ2h0UmFuZ2VfLm1fZW5kXyAtIG1fdXRpbFdlaWdodFJhbmdlXy5tX3N0YXJ0XykgCisgICAgICAgICAgID4+PiAyNCkgKyAxOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGVsaW1pbmF0ZSBvdmVybGFwcworICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBtaWRkbGUgcmFuZ2UKKyAgICAgICAgICAgIG1fdXRpbFdlaWdodFJhbmdlXy5tX2NvdW50XyA9IDA7CisgICAgICAgICAgICAvLyByZWR1Y2Ugb3IgcmVtb3ZlIHRoZSBsb3dlciByYW5nZXMgdGhhdCBnbyBiZXlvbmQgdXBwZXJMaW1pdAorICAgICAgICAgICAgZm9yIChpbnQgbGVuZ3RoID0gNDsgbGVuZ3RoID49IDI7IC0tIGxlbmd0aCkgeworICAgICAgICAgICAgICAgIGlmIChtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID4gMCAKKyAgICAgICAgICAgICAgICAgICAgJiYgbV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2NvdW50XyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gbV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX3N0YXJ0XzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9lbmRfOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kID49IHN0YXJ0IHx8IGluY1dlaWdodChlbmQsIGxlbmd0aCwgbWF4Qnl0ZSkgCisgICAgICAgICAgICA9PSBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIHJhbmdlcyBjb2xsaWRlIG9yIGFyZSBkaXJlY3RseSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkamFjZW50OiBtZXJnZSB0aGVzZSB0d28gYW5kIHJlbW92ZSBhbGwgc2hvcnRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhbmdlcworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fc3RhcnRfOworICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gbV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2VuZF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fZW5kXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1lcmdpbmcgZGlyZWN0bHkgYWRqYWNlbnQgcmFuZ2VzIG5lZWRzIHRvIHN1YnRyYWN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIDAvMSBnYXBzIGluIGJldHdlZW47CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBtYXkgcmVzdWx0IGluIGEgcmFuZ2Ugd2l0aCBjb3VudD5jb3VudEJ5dGVzCisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfIAorICAgICAgICAgICAgICAgID0gZ2V0V2VpZ2h0Qnl0ZShlbmQsIGxlbmd0aCkKKyAgICAgICAgICAgICAgICAtIGdldFdlaWdodEJ5dGUoc3RhcnQsIGxlbmd0aCkgKyAxIAorICAgICAgICAgICAgICAgICsgY291bnRCeXRlcyAqIChnZXRXZWlnaHRCeXRlKGVuZCwgbGVuZ3RoIC0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC0gZ2V0V2VpZ2h0Qnl0ZShzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAtIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKC0tIGxlbmd0aCA+PSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2NvdW50XyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGNvcHkgdGhlIHJhbmdlcywgc2hvcnRlc3QgZmlyc3QsIGludG8gdGhlIHJlc3VsdCBhcnJheSAKKyAgICAgICAgaW50IHJhbmdlQ291bnQgPSAwOworICAgICAgICBpZiAobV91dGlsV2VpZ2h0UmFuZ2VfLm1fY291bnRfID4gMCkgeworICAgICAgICAgICAgcmFuZ2VzWzBdID0gbmV3IFdlaWdodFJhbmdlKG1fdXRpbFdlaWdodFJhbmdlXyk7CisgICAgICAgICAgICByYW5nZUNvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBsZW5ndGggPSAyOyBsZW5ndGggPD0gNDsgKysgbGVuZ3RoKSB7CisgICAgICAgICAgICAvLyBjb3B5IHVwcGVyIGZpcnN0IHNvIHRoYXQgbGF0ZXIgdGhlIG1pZGRsZSByYW5nZSBpcyBtb3JlIGxpa2VseSAKKyAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBvbmUgdG8gdXNlCisgICAgICAgICAgICBpZiAobV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2NvdW50XyA+IDApIHsKKyAgICAgICAgICAgICAgICByYW5nZXNbcmFuZ2VDb3VudF0gCisgICAgICAgICAgICA9IG5ldyBXZWlnaHRSYW5nZShtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdKTsKKyAgICAgICAgICAgICAgICArKyByYW5nZUNvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPiAwKSB7CisgICAgICAgICAgICAgICAgcmFuZ2VzW3JhbmdlQ291bnRdIAorICAgICAgICAgICAgPSBuZXcgV2VpZ2h0UmFuZ2UobV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXSk7CisgICAgICAgICAgICAgICAgKysgcmFuZ2VDb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmFuZ2VDb3VudDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVHJ1bmNhdGVzIHRoZSB3ZWlnaHQgd2l0aCBsZW5ndGgKKyAgICAgKiBAcGFyYW0gd2VpZ2h0CisgICAgICogQHBhcmFtIGxlbmd0aAorICAgICAqIEByZXR1cm4gdHJ1bmNhdGVkIHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCB0cnVuY2F0ZVdlaWdodChpbnQgd2VpZ2h0LCBpbnQgbGVuZ3RoKSAKKyAgICB7CisgICAgICAgIHJldHVybiB3ZWlnaHQgJiAoMHhmZmZmZmZmZiA8PCAoKDQgLSBsZW5ndGgpIDw8IDMpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSB3ZWlnaHQKKyAgICAgKiBAcGFyYW0gd2VpZ2h0CisgICAgICogQHJldHVybiBsZW5ndGggb2YgdGhlIHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBsZW5ndGhPZldlaWdodChpbnQgd2VpZ2h0KSAKKyAgICB7CisgICAgICAgIGlmICgod2VpZ2h0ICYgMHhmZmZmZmYpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICgod2VpZ2h0ICYgMHhmZmZmKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAoKHdlaWdodCAmIDB4ZmYpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gNDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5jcmVtZW50IHRoZSB3ZWlnaHQgdHJhaWwKKyAgICAgKiBAcGFyYW0gd2VpZ2h0IAorICAgICAqIEBwYXJhbSBsZW5ndGgKKyAgICAgKiBAcmV0dXJuIG5ldyB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5jV2VpZ2h0VHJhaWwoaW50IHdlaWdodCwgaW50IGxlbmd0aCkgCisgICAgeworICAgICAgICByZXR1cm4gd2VpZ2h0ICsgKDEgPDwgKCg0LWxlbmd0aCkgPDwgMykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY3JlbWVudCB0aGUgd2VpZ2h0IHRyYWlsCisgICAgICogQHBhcmFtIHdlaWdodCAKKyAgICAgKiBAcGFyYW0gbGVuZ3RoCisgICAgICogQHJldHVybiBuZXcgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGRlY1dlaWdodFRyYWlsKGludCB3ZWlnaHQsIGludCBsZW5ndGgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHdlaWdodCAtICgxIDw8ICgoNCAtIGxlbmd0aCkgPDwgMykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb2RlcG9pbnQgCisgICAgICogQHBhcmFtIHRibCBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgY29kZSBwb2ludCB0byBsb29rIGZvcgorICAgICAqIEByZXR1cm4gdGhlIG9mZnNldCB0byB0aGUgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kQ1AoQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCwgY2hhciBjb2RlUG9pbnQpIAorICAgIHsKKyAgICAgICAgaW50IHBvc2l0aW9uID0gMDsKKyAgICAgICAgd2hpbGUgKGNvZGVQb2ludCA+IHRibC5tX2NvZGVQb2ludHNfLmNoYXJBdChwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIHBvc2l0aW9uICsrOworICAgICAgICAgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fY29kZVBvaW50c18ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvZGVQb2ludCA9PSB0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQocG9zaXRpb24pKSB7CisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb247CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZHMgYSBjb250cmFjdGlvbiBjZQorICAgICAqIEBwYXJhbSB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50CisgICAgICogQHBhcmFtIGNoCisgICAgICogQHJldHVybiBjZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kQ0UoQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgaWYgKHRhYmxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9CisgICAgICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOworICAgICAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9CisgICAgICAgIGludCBwb3NpdGlvbiA9IGZpbmRDUCh0YmwsIGNoKTsKKyAgICAgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fQ0VzXy5zaXplKCkgfHwgcG9zaXRpb24gPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gQ0VfTk9UX0ZPVU5EXzsKKyAgICAgICAgfSAKKyAgICAgICAgcmV0dXJuICgoSW50ZWdlcil0YmwubV9DRXNfLmdldChwb3NpdGlvbikpLmludFZhbHVlKCk7CisgICAgfSAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIHN0cmluZyBpcyB0YWlsb3JlZCBpbiB0aGUgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCAKKyAgICAgKiBAcGFyYW0gYXJyYXkgY2hhcmFjdGVyIGFycmF5IHRvIGNoZWNrCisgICAgICogQHBhcmFtIG9mZnNldCBhcnJheSBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgaXQgaXMgdGFpbG9yZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVGFpbG9yZWQoQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGFycmF5W10sIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgd2hpbGUgKGFycmF5W29mZnNldF0gIT0gMCkgeworICAgICAgICAgICAgZWxlbWVudCA9IGZpbmRDRSh0YWJsZSwgZWxlbWVudCwgYXJyYXlbb2Zmc2V0XSk7CisgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQgKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGdldENFKHRhYmxlLCBlbGVtZW50LCAwKSAhPSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7IAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFzc2VtYmxlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdG8gdXBkYXRlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VtYmxlVGFibGUoQnVpbGRUYWJsZSB0LCBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikgCisgICAgeworICAgICAgICBJbnRUcmllQnVpbGRlciBtYXBwaW5nID0gdC5tX21hcHBpbmdfOworICAgICAgICBWZWN0b3IgZXhwYW5zaW9ucyA9IHQubV9leHBhbnNpb25zXzsKKyAgICAgICAgQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMgPSB0Lm1fY29udHJhY3Rpb25zXzsKKyAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUgbWF4ZXhwYW5zaW9uID0gdC5tX21heEV4cGFuc2lvbnNfOworICAgICAgICAKKyAgICAgICAgLy8gY29udHJhY3Rpb24gb2Zmc2V0IGhhcyB0byBiZSBpbiBzaW5jZSB3ZSBhcmUgYnVpbGRpbmcgb24gdGhlIAorICAgICAgICAvLyBVQ0EgY29udHJhY3Rpb25zIAorICAgICAgICAvLyBpbnQgYmVmb3JlQ29udHJhY3Rpb25zID0gKEhFQURFUl9TSVpFXyAKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgKyBwYWRkZWRzaXplKGV4cGFuc2lvbnMuc2l6ZSgpIDw8IDIpKSA+Pj4gMTsKKyAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbk9mZnNldF8gPSAwOworICAgICAgICBpbnQgY29udHJhY3Rpb25zU2l6ZSA9IGNvbnN0cnVjdFRhYmxlKGNvbnRyYWN0aW9ucyk7CisgICAgICAgIAorICAgICAgICAvLyB0aGUgZm9sbG93aW5nIG9wZXJhdGlvbiBkZXBlbmRzIG9uIHRoZSB0cmllIGRhdGEuIFRoZXJlZm9yZSwgd2UgaGF2ZSAKKyAgICAgICAgLy8gdG8gZG8gaXQgYmVmb3JlIHRoZSB0cmllIGlzIGNvbXBhY3RlZCAKKyAgICAgICAgLy8gc2V0cyBqYW1vIGV4cGFuc2lvbnMKKyAgICAgICAgZ2V0TWF4RXhwYW5zaW9uSmFtbyhtYXBwaW5nLCBtYXhleHBhbnNpb24sIHQubV9tYXhKYW1vRXhwYW5zaW9uc18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV9pc0phbW9TcGVjaWFsXyk7CisgICAgICAgIAorICAgICAgICAvLyBUT0RPOiBMQVRJTjEgYXJyYXkgaXMgbm93IGluIHRoZSB1dHJpZSAtIGl0IHNob3VsZCBiZSByZW1vdmVkIGZyb20gCisgICAgICAgIC8vIHRoZSBjYWxjdWxhdGlvbgorICAgICAgICBzZXRBdHRyaWJ1dGVzKGNvbGxhdG9yLCB0Lm1fb3B0aW9uc18pOworICAgICAgICAvLyBjb3B5IGV4cGFuc2lvbnMKKyAgICAgICAgaW50IHNpemUgPSBleHBhbnNpb25zLnNpemUoKTsKKyAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25fID0gbmV3IGludFtzaXplXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbl9baV0gPSAoKEludGVnZXIpZXhwYW5zaW9ucy5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gY29udHJhY3Rpb25zIGJsb2NrIAorICAgICAgICBpZiAoY29udHJhY3Rpb25zU2l6ZSAhPSAwKSB7CisgICAgICAgICAgICAvLyBjb3B5IGNvbnRyYWN0aW9uIGluZGV4IAorICAgICAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4XyA9IG5ldyBjaGFyW2NvbnRyYWN0aW9uc1NpemVdOworICAgICAgICAgICAgY29udHJhY3Rpb25zLm1fY29kZVBvaW50c18uZ2V0Q2hhcnMoMCwgY29udHJhY3Rpb25zU2l6ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworICAgICAgICAgICAgLy8gY29weSBjb250cmFjdGlvbiBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgICAgICAgIGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV8gPSBuZXcgaW50W2NvbnRyYWN0aW9uc1NpemVdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250cmFjdGlvbnNTaXplOyBpICsrKSB7CisgICAgICAgICAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tpXSA9ICgoSW50ZWdlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0aW9ucy5tX0NFc18uZ2V0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGNvcHkgbWFwcGluZyB0YWJsZQorICAgICAgICBjb2xsYXRvci5tX3RyaWVfID0gbWFwcGluZy5zZXJpYWxpemUodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuRGF0YU1hbmlwdWxhdGUuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIC8vIGNvcHkgbWF4IGV4cGFuc2lvbiB0YWJsZQorICAgICAgICAvLyBub3QgY29weWluZyB0aGUgZmlyc3QgZWxlbWVudCB3aGljaCBpcyBhIGR1bW15CisgICAgICAgIC8vIHRvIGJlIGluIHN5bmNoIHdpdGggaWN1NGMncyBidWlsZGVyLCB3ZSBjb250aW51ZSB0byB1c2UgdGhlIAorICAgICAgICAvLyBleHBhbnNpb24gb2Zmc2V0CisgICAgICAgIC8vIG9taXR0aW5nIGV4cGFuc2lvbiBvZmZzZXQgaW4gYnVpbGRlcgorICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbk9mZnNldF8gPSAwOyAKKyAgICAgICAgc2l6ZSA9IG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uRW5kQ0VfID0gbmV3IGludFtzaXplIC0gMV07CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25FbmRDRV9baSAtIDFdID0gKChJbnRlZ2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25FbmRDRU1heFNpemVfID0gbmV3IGJ5dGVbc2l6ZSAtIDFdOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpIC0gMV0gCisgICAgICAgID0gKChCeXRlKW1heGV4cGFuc2lvbi5tX2V4cGFuc2lvbkNFU2l6ZV8uZ2V0KGkpKS5ieXRlVmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBVbnNhZmUgY2hhcnMgdGFibGUuICBGaW5pc2ggaXQgb2ZmLCB0aGVuIGNvcHkgaXQuCisgICAgICAgIHVuc2FmZUNQQWRkQ0NOWih0KTsKKyAgICAgICAgLy8gT3IgaW4gdW5zYWZlYml0cyBmcm9tIFVDQSwgbWFraW5nIGEgY29tYmluZWQgdGFibGUuCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVU5TQUZFQ1BfVEFCTEVfU0laRV87IGkgKyspIHsgICAgCisgICAgICAgIHQubV91bnNhZmVDUF9baV0gfD0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX3Vuc2FmZV9baV07CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3IubV91bnNhZmVfID0gdC5tX3Vuc2FmZUNQXzsKKyAgICAKKyAgICAgICAgLy8gRmluaXNoIGJ1aWxkaW5nIENvbnRyYWN0aW9uIEVuZGluZyBjaGFycyBoYXNoIHRhYmxlIGFuZCB0aGVuIGNvcHkgaXQgCisgICAgICAgIC8vIG91dC4KKyAgICAgICAgLy8gT3IgaW4gdW5zYWZlYml0cyBmcm9tIFVDQSwgbWFraW5nIGEgY29tYmluZWQgdGFibGUKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBVTlNBRkVDUF9UQUJMRV9TSVpFXzsgaSArKykgeyAgICAKKyAgICAgICAgdC5tX2NvbnRyRW5kQ1BfW2ldIHw9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV9jb250cmFjdGlvbkVuZF9baV07CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbkVuZF8gPSB0Lm1fY29udHJFbmRDUF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBjb2xsYXRvciB0byB1c2UgdGhlIGFsbCBvcHRpb25zIGFuZCB0YWJsZXMgaW4gVUNBLiAKKyAgICAgKiBAcGFyYW0gY29sbGF0b3Igd2hpY2ggYXR0cmlidXRlIGlzIHRvIGJlIHNldCAKKyAgICAgKiBAcGFyYW0gb3B0aW9uIHRvIHNldCB3aXRoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBzZXRBdHRyaWJ1dGVzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5PcHRpb25TZXQgb3B0aW9uKQorICAgIHsKKyAgICAgICAgY29sbGF0b3IubGF0aW5PbmVGYWlsZWRfID0gdHJ1ZTsKKyAgICAgICAgY29sbGF0b3IubV9jYXNlRmlyc3RfID0gb3B0aW9uLm1fY2FzZUZpcnN0XzsKKyAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihvcHRpb24ubV9kZWNvbXBvc2l0aW9uXyk7CisgICAgICAgIGNvbGxhdG9yLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24ubV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8pOworICAgICAgICBjb2xsYXRvci5zZXRDYXNlTGV2ZWwob3B0aW9uLm1faXNDYXNlTGV2ZWxfKTsKKyAgICAgICAgY29sbGF0b3Iuc2V0RnJlbmNoQ29sbGF0aW9uKG9wdGlvbi5tX2lzRnJlbmNoQ29sbGF0aW9uXyk7CisgICAgICAgIGNvbGxhdG9yLm1faXNIaXJhZ2FuYTRfID0gb3B0aW9uLm1faXNIaXJhZ2FuYTRfOworICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChvcHRpb24ubV9zdHJlbmd0aF8pOworICAgICAgICBjb2xsYXRvci5tX3ZhcmlhYmxlVG9wVmFsdWVfID0gb3B0aW9uLm1fdmFyaWFibGVUb3BWYWx1ZV87ICAgIAorICAgICAgICBjb2xsYXRvci5sYXRpbk9uZUZhaWxlZF8gPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0aW5nIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEByZXR1cm4gCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY29uc3RydWN0VGFibGUoQ29udHJhY3Rpb25UYWJsZSB0YWJsZSkgCisgICAgeworICAgICAgICAvLyBTZWUgaG93IG11Y2ggbWVtb3J5IHdlIG5lZWQgCisgICAgICAgIGludCB0c2l6ZSA9IHRhYmxlLm1fZWxlbWVudHNfLnNpemUoKTsKKyAgICAgICAgaWYgKHRzaXplID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHRhYmxlLm1fb2Zmc2V0c18uY2xlYXIoKTsKKyAgICAgICAgaW50IHBvc2l0aW9uID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0c2l6ZTsgaSArKykgeworICAgICAgICAgICAgdGFibGUubV9vZmZzZXRzXy5hZGQobmV3IEludGVnZXIocG9zaXRpb24pKTsKKyAgICAgICAgICAgIHBvc2l0aW9uICs9ICgoQmFzaWNDb250cmFjdGlvblRhYmxlKQorICAgICAgICAgICAgIHRhYmxlLm1fZWxlbWVudHNfLmdldChpKSkubV9DRXNfLnNpemUoKTsKKyAgICAgICAgfQorICAgICAgICB0YWJsZS5tX0NFc18uY2xlYXIoKTsKKyAgICAgICAgdGFibGUubV9jb2RlUG9pbnRzXy5kZWxldGUoMCwgdGFibGUubV9jb2RlUG9pbnRzXy5sZW5ndGgoKSk7CisgICAgICAgIC8vIE5vdyBzdHVmZiB0aGUgdGhpbmdzIGluCisgICAgICAgIFN0cmluZ0J1ZmZlciBjcFBvaW50ZXIgPSB0YWJsZS5tX2NvZGVQb2ludHNfOworICAgICAgICBWZWN0b3IgQ0VQb2ludGVyID0gdGFibGUubV9DRXNfOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRzaXplOyBpICsrKSB7CisgICAgICAgICAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgYmN0ID0gKEJhc2ljQ29udHJhY3Rpb25UYWJsZSkKKyAgICAgICAgdGFibGUubV9lbGVtZW50c18uZ2V0KGkpOworICAgICAgICAgICAgaW50IHNpemUgPSBiY3QubV9DRXNfLnNpemUoKTsKKyAgICAgICAgICAgIGNoYXIgY2NNYXggPSAwOworICAgICAgICAgICAgY2hhciBjY01pbiA9IDI1NTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBDRVBvaW50ZXIuc2l6ZSgpOworICAgICAgICAgICAgQ0VQb2ludGVyLmFkZChiY3QubV9DRXNfLmdldCgwKSk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IHNpemU7IGogKyspIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gYmN0Lm1fY29kZVBvaW50c18uY2hhckF0KGopOworICAgICAgICAgICAgICAgIGNoYXIgY2MgPSAoY2hhcikoVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjaCkgJiAweEZGKTsKKyAgICAgICAgICAgICAgICBpZiAoY2MgPiBjY01heCkgeworICAgICAgICAgICAgICAgICAgICBjY01heCA9IGNjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2MgPCBjY01pbikgeworICAgICAgICAgICAgICAgICAgICBjY01pbiA9IGNjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjcFBvaW50ZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICBDRVBvaW50ZXIuYWRkKGJjdC5tX0NFc18uZ2V0KGopKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNwUG9pbnRlci5pbnNlcnQob2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKCgoY2NNaW4gPT0gY2NNYXgpID8gMSA6IDAgPDwgOCkgfCBjY01heCkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzaXplOyBqICsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoKChJbnRlZ2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VQb2ludGVyLmdldChvZmZzZXQgKyBqKSkuaW50VmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNlID0gKChJbnRlZ2VyKUNFUG9pbnRlci5nZXQob2Zmc2V0ICsgaikpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIENFUG9pbnRlci5zZXQob2Zmc2V0ICsgaiwgCisgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcihjb25zdHJ1Y3RTcGVjaWFsQ0UoZ2V0Q0VUYWcoY2UpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoSW50ZWdlcil0YWJsZS5tX29mZnNldHNfLmdldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbnRyYWN0aW9uT2Zmc2V0KGNlKSkpLmludFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyBpICsrKSB7CisgICAgICAgICAgICBpbnQgQ0UgPSB0YWJsZS5tX21hcHBpbmdfLmdldFZhbHVlKGkpOworICAgICAgICAgICAgaWYgKGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoQ0UpKSB7CisgICAgICAgICAgICAgICAgQ0UgPSBjb25zdHJ1Y3RTcGVjaWFsQ0UoZ2V0Q0VUYWcoQ0UpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEludGVnZXIpdGFibGUubV9vZmZzZXRzXy5nZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb250cmFjdGlvbk9mZnNldChDRSkpKS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB0YWJsZS5tX21hcHBpbmdfLnNldFZhbHVlKGksIENFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zaXRpb247CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBjb250cmFjdGlvbiBvZmZzZXQKKyAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQgCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q29udHJhY3Rpb25PZmZzZXQoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNlICYgMHhGRkZGRkY7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1heGltdW0gSmFtbyBleHBhbnNpb24KKyAgICAgKiBAcGFyYW0gbWFwcGluZyB0cmllIHRhYmxlCisgICAgICogQHBhcmFtIG1heGV4cGFuc2lvbiBtYXhpbXVtIGV4cGFuc2lvbiB0YWJsZQorICAgICAqIEBwYXJhbSBtYXhqYW1vZXhwYW5zaW9uIG1heGltdW0gamFtbyBleHBhbnNpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gamFtb3NwZWNpYWwgaXMgamFtbyBzcGVjaWFsPworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZ2V0TWF4RXhwYW5zaW9uSmFtbyhJbnRUcmllQnVpbGRlciBtYXBwaW5nLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUgbWF4ZXhwYW5zaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUgCisgICAgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGphbW9zcGVjaWFsKQorICAgIHsKKyAgICAgICAgaW50IFZCQVNFICA9IDB4MTE2MTsKKyAgICAgICAgaW50IFRCQVNFICA9IDB4MTFBODsKKyAgICAgICAgaW50IFZDT1VOVCA9IDIxOworICAgICAgICBpbnQgVENPVU5UID0gMjg7CisgICAgICAgIGludCB2ID0gVkJBU0UgKyBWQ09VTlQgLSAxOworICAgICAgICBpbnQgdCA9IFRCQVNFICsgVENPVU5UIC0gMTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh2ID49IFZCQVNFKSB7CisgICAgICAgICAgICBpbnQgY2UgPSBtYXBwaW5nLmdldFZhbHVlKHYpOworICAgICAgICAgICAgaWYgKChjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pIAorICAgICAgICAhPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfKSB7CisgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKGNlLCAoYnl0ZSkyLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdiAtLTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2hpbGUgKHQgPj0gVEJBU0UpCisgICAgICAgIHsKKyAgICAgICAgaW50IGNlID0gbWFwcGluZy5nZXRWYWx1ZSh0KTsKKyAgICAgICAgaWYgKChjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pIAorICAgICAgICAgICAgIT0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXykgeworICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKGNlLCAoYnl0ZSkzLCBtYXhleHBhbnNpb24pOworICAgICAgICB9CisgICAgICAgIHQgLS07CisgICAgICAgIH0KKyAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBkb2NzLCA5OSUgb2YgdGhlIHRpbWUsIHRoZSBKYW1vIHdpbGwgbm90IGJlIHNwZWNpYWwgCisgICAgICAgIGlmIChqYW1vc3BlY2lhbCkgeworICAgICAgICAgICAgLy8gZ2V0cyB0aGUgbWF4IGV4cGFuc2lvbiBpbiBhbGwgdW5pY29kZSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpbnQgY291bnQgPSBtYXhqYW1vZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKyAgICAgICAgICAgIGJ5dGUgbWF4VFNpemUgPSAoYnl0ZSkobWF4amFtb2V4cGFuc2lvbi5tX21heExTaXplXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLm1fbWF4VlNpemVfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4amFtb2V4cGFuc2lvbi5tX21heFRTaXplXyk7CisgICAgICAgICAgICBieXRlIG1heFZTaXplID0gKGJ5dGUpKG1heGphbW9leHBhbnNpb24ubV9tYXhMU2l6ZV8gKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4amFtb2V4cGFuc2lvbi5tX21heFZTaXplXyk7CisgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgIGlmICgoKEJvb2xlYW4pbWF4amFtb2V4cGFuc2lvbi5tX2lzVl8uZ2V0KGNvdW50KSkuYm9vbGVhblZhbHVlKCkKKyAgICAgICAgICAgID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKCgoSW50ZWdlcikKKyAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KGNvdW50KSkuaW50VmFsdWUoKSwgCisgICAgICAgICAgICAgICAgICAgIG1heFZTaXplLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKCgoSW50ZWdlcikKKyAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KGNvdW50KSkuaW50VmFsdWUoKSwgCisgICAgICAgICAgICAgICAgICAgIG1heFRTaXplLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogIAorICAgICAqIFRvIHRoZSBVbnNhZmVDUCBoYXNoIHRhYmxlLCBhZGQgYWxsIGNoYXJzIHdpdGggY29tYmluaW5nIGNsYXNzICE9IDAgICAgIAorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB1bnNhZmVDUEFkZENDTlooQnVpbGRUYWJsZSB0KSAKKyAgICB7CisgICAgCisgICAgICAgIGZvciAoY2hhciBjID0gMDsgYyA8IDB4ZmZmZjsgYyArKykgeworICAgICAgICAgICAgY2hhciBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjKTsKKyAgICAgICAgICAgIGlmIChmY2QgPj0gMHgxMDAgfHwgLy8gaWYgdGhlIGxlYWRpbmcgY29tYmluaW5nIGNsYXNzKGMpID4gMCB8fAorICAgICAgICAgICAgICAgIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgZmNkICE9IDApKSB7CisgICAgICAgICAgICAgICAgLy8gYyBpcyBhIGxlYWRpbmcgc3Vycm9nYXRlIHdpdGggc29tZSBGQ0QgZGF0YQorICAgICAgICAgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmICh0Lm1fcHJlZml4TG9va3VwXyAhPSBudWxsKSB7CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBlbHMgPSB0Lm1fcHJlZml4TG9va3VwXy5lbGVtZW50cygpOworICAgICAgICAgICAgd2hpbGUgKGVscy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIEVsZW1lbnRzIGUgPSAoRWxlbWVudHMpZWxzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgLy8gY29kZXBvaW50cyBoZXJlIGFyZSBpbiB0aGUgTkZEIGZvcm0uIFdlIG5lZWQgdG8gYWRkIHRoZQorICAgICAgICAgICAgICAgIC8vIGZpcnN0IGNvZGUgcG9pbnQgb2YgdGhlIE5GQyBmb3JtIHRvIHVuc2FmZSwgYmVjYXVzZSAKKyAgICAgICAgICAgICAgICAvLyBzdHJjb2xsIG5lZWRzIHRvIGJhY2t1cCBvdmVyIHRoZW0uCisgICAgICAgICAgICAgICAgLy8gd2VpdjogVGhpcyBpcyB3cm9uZyEgU2VlIHRoZSBjb21tZW50IGFib3ZlLgorICAgICAgICAgICAgICAgIC8vU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGUubV9jUG9pbnRzXywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgLy91bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCBkZWNvbXAuY2hhckF0KDApKTsKKyAgICAgICAgICAgICAgICAvLyBpdCBzaG91bGQgYmU6CisgICAgICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBOb3JtYWxpemVyLmNvbXBvc2UoZS5tX2NQb2ludHNfLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgY29tcC5jaGFyQXQoMCkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgY2xvc3VyZQorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHBhcmFtIGNvbEVsIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHN0YXJ0IAorICAgICAqIEBwYXJhbSBsaW1pdAorICAgICAqIEBwYXJhbSB0eXBlIGNoYXJhY3RlciB0eXBlCisgICAgICogQHJldHVybiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZW51bUNhdGVnb3J5UmFuZ2VDbG9zdXJlQ2F0ZWdvcnkoQnVpbGRUYWJsZSB0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sRWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHR5cGUpIAorICAgIHsKKyAgICAgICAgaWYgKHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQgCisgICAgICAgICAgICAmJiB0eXBlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5QUklWQVRFX1VTRSkgeyAKKyAgICAgICAgICAgIC8vIGlmIHRoZSByYW5nZSBpcyBhc3NpZ25lZCAtIHdlIG1pZ2h0IG9tbWl0IG1vcmUgY2F0ZWdvcmllcyBsYXRlcgorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCB1MzIgPSBzdGFydDsgdTMyIDwgbGltaXQ7IHUzMiArKykgeworICAgICAgICAgICAgICAgIGludCBub09mRGVjID0gTm9ybWFsaXplckltcGwuZ2V0RGVjb21wb3NpdGlvbih1MzIsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDaGFyQnVmZmVyXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDI1Nik7CisgICAgICAgICAgICAgICAgaWYgKG5vT2ZEZWMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIHBvc2l0aXZlLCB0aGF0IG1lYW5zIHRoZXJlIGlzIG5vIGRlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHUzMik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBuZXcgU3RyaW5nKG1fdXRpbENoYXJCdWZmZXJfLCAwLCBub09mRGVjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2xsYXRvci5lcXVhbHMoY29tcCwgZGVjb21wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IGRlY29tcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBFbGVtZW50cyBwcmVmaXggCisgICAgICAgICAgICAgICAgPSAoRWxlbWVudHMpdC5tX3ByZWZpeExvb2t1cF8uZ2V0KG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXggPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBjb21wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbEVsLnNldFRleHQoZGVjb21wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSBjb2xFbC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgPSBjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xFbC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBjb21wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFc19bMF0gPSBwcmVmaXgubV9tYXBDRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBjaGFyYWN0ZXIgdXNlcyBhIHByZWZpeC4gV2UgaGF2ZSB0byBhZGQgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdGhlIHVuc2FmZSB0YWJsZSwgYXMgaXQgZGVjb21wb3NlZCBmb3JtIGlzIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaW4uIEluIEphcGFuZXNlLCB0aGlzIGhhcHBlbnMgZm9yIFx1MzA5ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAmIFx1MzBmZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNpbmNlIHVuc2FmZUNQU2V0IGlzIHN0YXRpYyBpbiB1Y29sX2VsbSwgd2UgYXJlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdvaW5nIHRvIHdyYXAgaXQgdXAgaW4gdGhlIHVuc2FmZUNQQWRkQ0NOWiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYWRkQW5FbGVtZW50KHQsIG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGEgSmFtbworICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBhIEphbW8sIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNKYW1vKGNoYXIgY2gpCisgICAgeyAKKyAgICByZXR1cm4gKGNoID49IDB4MTEwMCAmJiBjaCA8PSAweDExMTIpIAorICAgICAgICB8fCAoY2ggPj0gMHgxMTc1ICYmIGNoIDw9IDB4MTE2MSkgCisgICAgICAgIHx8IChjaCA+PSAweDExQTggJiYgY2ggPD0gMHgxMUMyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHJvZHVjZXMgY2Fub25pY2FsIGNsb3N1cmUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY2Fub25pY2FsQ2xvc3VyZShCdWlsZFRhYmxlIHQpIAorICAgIHsKKyAgICAgICAgQnVpbGRUYWJsZSB0ZW1wID0gbmV3IEJ1aWxkVGFibGUodCk7CisgICAgICAgIGFzc2VtYmxlVGFibGUodGVtcCwgdGVtcC5tX2NvbGxhdG9yXyk7CisgICAgICAgIC8vIHByb2R1Y2UgY2Fub25pY2FsIGNsb3N1cmUgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlciAKKyAgICAgICAgPSB0ZW1wLm1fY29sbGF0b3JfLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvciB0eXBlaXRlciA9IFVDaGFyYWN0ZXIuZ2V0VHlwZUl0ZXJhdG9yKCk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKHR5cGVpdGVyLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGVudW1DYXRlZ29yeVJhbmdlQ2xvc3VyZUNhdGVnb3J5KHQsIHRlbXAubV9jb2xsYXRvcl8sIGNvbGVpdGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnN0YXJ0LCBlbGVtZW50LmxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc1VDQUNvbXBsZXRlSWdub3JhYmxlcyhCdWlsZFRhYmxlIHQpIAorICAgIHsKKyAgICAgICAgVHJpZUl0ZXJhdG9yIHRyaWVpdGVyYXRvciAKKyAgICAgICAgPSBuZXcgVHJpZUl0ZXJhdG9yKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV90cmllXyk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKHRyaWVpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBlbGVtZW50LnN0YXJ0OworICAgICAgICAgICAgaW50IGxpbWl0ID0gZWxlbWVudC5saW1pdDsKKyAgICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlID09IDApIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgQ0UgPSB0Lm1fbWFwcGluZ18uZ2V0VmFsdWUoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoQ0UgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyA9IFVDaGFyYWN0ZXIudG9TdHJpbmcoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c09mZnNldF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRXNfWzBdID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZEFuRWxlbWVudCh0LCBtX3V0aWxFbGVtZW50Xyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUnVsZVBhcnNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUnVsZVBhcnNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMTA5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEKQEAgLTAsMCArMSwyMDY4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworLyoqCisqIENsYXNzIGZvciBwYXJzaW5nIGNvbGxhdGlvbiBydWxlcywgcHJvZHVjZXMgYSBsaXN0IG9mIHRva2VucyB0aGF0IHdpbGwgYmUKKyogdHVybmVkIGludG8gY29sbGF0aW9uIGVsZW1lbnRzCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMiwgSnVuZSA3IDIwMDIKKyogQGRyYWZ0IDIuMgorKi8KK2ZpbmFsIGNsYXNzIENvbGxhdGlvblJ1bGVQYXJzZXIKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlJ1bGVCYXNlZENvbGxhdG9yIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgdGhlIHJ1bGVzLgorICAgICAqIFBsZWFzZSBzZWUgUnVsZUJhc2VkQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUKKyAgICAgKiBjb2xsYXRpb24gcnVsZSBzeW50YXguPC9wPgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZQorICAgICAqIEBwYXJhbSBydWxlcyB0aGUgY29sbGF0aW9uIHJ1bGVzIHRvIGJ1aWxkIHRoZSBjb2xsYXRpb24gdGFibGUgZnJvbS4KKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHJ1bGVzIGhhdmUgYW4gaW52YWxpZAorICAgICAqICAgICAgICAgICAgc3ludGF4LgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBDb2xsYXRpb25SdWxlUGFyc2VyKFN0cmluZyBydWxlcykgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBleHRyYWN0U2V0c0Zyb21SdWxlcyhydWxlcyk7CisgICAgICAgIG1fc291cmNlXyA9IG5ldyBTdHJpbmdCdWZmZXIoTm9ybWFsaXplci5kZWNvbXBvc2UocnVsZXMsIGZhbHNlKS50cmltKCkpOworICAgICAgICBtX3J1bGVzXyA9IG1fc291cmNlXy50b1N0cmluZygpOworICAgICAgICBtX2N1cnJlbnRfID0gMDsKKyAgICAgICAgbV9leHRyYUN1cnJlbnRfID0gbV9zb3VyY2VfLmxlbmd0aCgpOworICAgICAgICBtX3ZhcmlhYmxlVG9wXyA9IG51bGw7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fID0gbmV3IFBhcnNlZFRva2VuKCk7CisgICAgICAgIG1faGFzaFRhYmxlXyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgbV9vcHRpb25zXyA9IG5ldyBPcHRpb25TZXQoUnVsZUJhc2VkQ29sbGF0b3IuVUNBXyk7CisgICAgICAgIG1fbGlzdEhlYWRlcl8gPSBuZXcgVG9rZW5MaXN0SGVhZGVyWzUxMl07CisgICAgICAgIG1fcmVzdWx0TGVuZ3RoXyA9IDA7CisgICAgICAgIC8vIGNhbGwgYXNzZW1ibGVUb2tlbkxpc3QoKSBtYW51YWxseSwgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgLy8gaW5pdCBhIHBhcnNlciBhbmQgbWFudWFsbHkgcGFyc2UgdG9rZW5zCisgICAgICAgIC8vYXNzZW1ibGVUb2tlbkxpc3QoKTsKKyAgICB9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIG9wdGlvbnMgc2V0CisgICAgICovCisgICAgc3RhdGljIGNsYXNzIE9wdGlvblNldAorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbml0aWFsaXplcyB0aGUgb3B0aW9uIHNldCB3aXRoIHRoZSBhcmd1bWVudCBjb2xsYXRvcnMKKyAgICAgICAgICogQHBhcmFtIGNvbGxhdG9yIG9wdGlvbiB0byB1c2UKKyAgICAgICAgICovCisgICAgICAgIE9wdGlvblNldChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikKKyAgICAgICAgeworICAgICAgICAgICAgbV92YXJpYWJsZVRvcFZhbHVlXyA9IGNvbGxhdG9yLm1fdmFyaWFibGVUb3BWYWx1ZV87CisgICAgICAgICAgICBtX2lzRnJlbmNoQ29sbGF0aW9uXyA9IGNvbGxhdG9yLmlzRnJlbmNoQ29sbGF0aW9uKCk7CisgICAgICAgICAgICBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGxhdG9yLmlzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCk7CisgICAgICAgICAgICBtX2Nhc2VGaXJzdF8gPSBjb2xsYXRvci5tX2Nhc2VGaXJzdF87CisgICAgICAgICAgICBtX2lzQ2FzZUxldmVsXyA9IGNvbGxhdG9yLmlzQ2FzZUxldmVsKCk7CisgICAgICAgICAgICBtX2RlY29tcG9zaXRpb25fID0gY29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICAgICAgbV9zdHJlbmd0aF8gPSBjb2xsYXRvci5nZXRTdHJlbmd0aCgpOworICAgICAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBjb2xsYXRvci5tX2lzSGlyYWdhbmE0XzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBpbnQgbV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAgICAgYm9vbGVhbiBtX2lzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF0dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFyaWFibGUgZWxlbWVudHMKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgICAgIC8qKgorICAgICAgICAgKiB3aG8gZ29lcyBmaXJzdCwgbG93ZXIgY2FzZSBvciB1cHBlcmNhc2UKKyAgICAgICAgICovCisgICAgICAgIGludCBtX2Nhc2VGaXJzdF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBkbyB3ZSBoYXZlIGFuIGV4dHJhIGNhc2UgbGV2ZWwKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gbV9pc0Nhc2VMZXZlbF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBhdHRyaWJ1dGUgZm9yIG5vcm1hbGl6YXRpb24KKyAgICAgICAgICovCisgICAgICAgIGludCBtX2RlY29tcG9zaXRpb25fOworICAgICAgICAvKioKKyAgICAgICAgICogYXR0cmlidXRlIGZvciBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgaW50IG1fc3RyZW5ndGhfOworICAgICAgICAvKioKKyAgICAgICAgICogYXR0cmlidXRlIGZvciBzcGVjaWFsIEhpcmFnYW5hCisgICAgICAgICAqLworICAgICAgICBib29sZWFuIG1faXNIaXJhZ2FuYTRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIExpc3Qgb2YgdG9rZW5zIHVzZWQgYnkgdGhlIGNvbGxhdGlvbiBydWxlcworICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBUb2tlbkxpc3RIZWFkZXIKKyAgICB7CisgICAgICAgIFRva2VuIG1fZmlyc3RfOworICAgICAgICBUb2tlbiBtX2xhc3RfOworICAgICAgICBUb2tlbiBtX3Jlc2V0XzsKKyAgICAgICAgYm9vbGVhbiBtX2luZGlyZWN0XzsKKyAgICAgICAgaW50IG1fYmFzZUNFXzsKKyAgICAgICAgaW50IG1fYmFzZUNvbnRDRV87CisgICAgICAgIGludCBtX25leHRDRV87CisgICAgICAgIGludCBtX25leHRDb250Q0VfOworICAgICAgICBpbnQgbV9wcmV2aW91c0NFXzsKKyAgICAgICAgaW50IG1fcHJldmlvdXNDb250Q0VfOworICAgICAgICBpbnQgbV9wb3NfW10gPSBuZXcgaW50W0NvbGxhdG9yLklERU5USUNBTCArIDFdOworICAgICAgICBpbnQgbV9nYXBzTG9fW10gPSBuZXcgaW50WzMgKiAoQ29sbGF0b3IuVEVSVElBUlkgKyAxKV07CisgICAgICAgIGludCBtX2dhcHNIaV9bXSA9IG5ldyBpbnRbMyAqIChDb2xsYXRvci5URVJUSUFSWSArIDEpXTsKKyAgICAgICAgaW50IG1fbnVtU3RyX1tdID0gbmV3IGludFszICogKENvbGxhdG9yLlRFUlRJQVJZICsgMSldOworICAgICAgICBUb2tlbiBtX2ZTdHJUb2tlbl9bXSA9IG5ldyBUb2tlbltDb2xsYXRvci5URVJUSUFSWSArIDFdOworICAgICAgICBUb2tlbiBtX2xTdHJUb2tlbl9bXSA9IG5ldyBUb2tlbltDb2xsYXRvci5URVJUSUFSWSArIDFdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRva2VuIHdyYXBwZXIgZm9yIGNvbGxhdGlvbiBydWxlcworICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBUb2tlbgorICAgIHsKKyAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgaW50IG1fQ0VfW107CisgICAgICAgaW50IG1fQ0VMZW5ndGhfOworICAgICAgIGludCBtX2V4cENFX1tdOworICAgICAgIGludCBtX2V4cENFTGVuZ3RoXzsKKyAgICAgICBpbnQgbV9zb3VyY2VfOworICAgICAgIGludCBtX2V4cGFuc2lvbl87CisgICAgICAgaW50IG1fcHJlZml4XzsKKyAgICAgICBpbnQgbV9zdHJlbmd0aF87CisgICAgICAgaW50IG1fdG9JbnNlcnRfOworICAgICAgIGludCBtX3BvbGFyaXR5XzsgLy8gMSBmb3IgPCwgPDwsIDw8PCwgLCA7IGFuZCAwIGZvciA+LCA+PiwgPj4+CisgICAgICAgVG9rZW5MaXN0SGVhZGVyIG1fbGlzdEhlYWRlcl87CisgICAgICAgVG9rZW4gbV9wcmV2aW91c187CisgICAgICAgVG9rZW4gbV9uZXh0XzsKKyAgICAgICBTdHJpbmdCdWZmZXIgbV9ydWxlc187CisgICAgICAgY2hhciBtX2ZsYWdzXzsKKworICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICBUb2tlbigpCisgICAgICAgeworICAgICAgICAgICBtX0NFXyA9IG5ldyBpbnRbMTI4XTsKKyAgICAgICAgICAgbV9leHBDRV8gPSBuZXcgaW50WzEyOF07CisgICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGFsc28gaGFuZGxlIHJldmVyc2UKKyAgICAgICAgICAgbV9wb2xhcml0eV8gPSBUT0tFTl9QT0xBUklUWV9QT1NJVElWRV87CisgICAgICAgICAgIG1fbmV4dF8gPSBudWxsOworICAgICAgICAgICBtX3ByZXZpb3VzXyA9IG51bGw7CisgICAgICAgICAgIG1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgbV9leHBDRUxlbmd0aF8gPSAwOworICAgICAgIH0KKworICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKioKKyAgICAgICAgKiBIYXNoY29kZSBjYWxjdWxhdGlvbiBmb3IgdG9rZW4KKyAgICAgICAgKiBAcmV0dXJuIHRoZSBoYXNoY29kZQorICAgICAgICAqLworICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgICAgIHsKKyAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgIGludCBsZW4gPSAobV9zb3VyY2VfICYgMHhGRjAwMDAwMCkgPj4+IDI0OworICAgICAgICAgICBpbnQgaW5jID0gKChsZW4gLSAzMikgLyAzMikgKyAxOworCisgICAgICAgICAgIGludCBzdGFydCA9IG1fc291cmNlXyAmIDB4MDBGRkZGRkY7CisgICAgICAgICAgIGludCBsaW1pdCA9IHN0YXJ0ICsgbGVuOworCisgICAgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzcpICsgbV9ydWxlc18uY2hhckF0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgIHN0YXJ0ICs9IGluYzsKKyAgICAgICAgICAgfQorICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKworICAgICAgIC8qKgorICAgICAgICAqIEVxdWFscyBjYWxjdWxhdGlvbgorICAgICAgICAqIEBwYXJhbSB0YXJnZXQgb2JqZWN0IHRvIGNvbXBhcmUKKyAgICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGFyZ2V0IGlzIHRoZSBzYW1lIGFzIHRoaXMgb2JqZWN0CisgICAgICAgICovCisgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0YXJnZXQpCisgICAgICAgeworICAgICAgICAgICBpZiAodGFyZ2V0ID09IHRoaXMpIHsKKyAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICB9CisgICAgICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBUb2tlbikgeworICAgICAgICAgICAgICAgVG9rZW4gdCA9IChUb2tlbil0YXJnZXQ7CisgICAgICAgICAgICAgICBpbnQgc3N0YXJ0ID0gbV9zb3VyY2VfICYgMHgwMEZGRkZGRjsKKyAgICAgICAgICAgICAgIGludCB0c3RhcnQgPSB0Lm1fc291cmNlXyAmIDB4MDBGRkZGRkY7CisgICAgICAgICAgICAgICBpbnQgc2xpbWl0ID0gKG1fc291cmNlXyAmIDB4RkYwMDAwMDApID4+IDI0OworICAgICAgICAgICAgICAgaW50IHRsaW1pdCA9IChtX3NvdXJjZV8gJiAweEZGMDAwMDAwKSA+PiAyNDsKKworICAgICAgICAgICAgICAgaW50IGVuZCA9IHNzdGFydCArIHNsaW1pdCAtIDE7CisKKyAgICAgICAgICAgICAgIGlmIChtX3NvdXJjZV8gPT0gMCB8fCB0Lm1fc291cmNlXyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYgKHNsaW1pdCAhPSB0bGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZiAobV9zb3VyY2VfID09IHQubV9zb3VyY2VfKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgIHdoaWxlIChzc3RhcnQgPCBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAmJiBtX3J1bGVzXy5jaGFyQXQoc3N0YXJ0KSA9PSB0Lm1fcnVsZXNfLmNoYXJBdCh0c3RhcnQpKQorICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICsrIHNzdGFydDsKKyAgICAgICAgICAgICAgICAgICArKyB0c3RhcnQ7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZiAobV9ydWxlc18uY2hhckF0KHNzdGFydCkgPT0gdC5tX3J1bGVzXy5jaGFyQXQodHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgdG9rZW4gaXMgcmVzZXR0ZWQgeWV0LCBpZSAmIGluIHRoZSBydWxlcworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUkVTRVRfID0gMHhERUFEQkVFRjsKKworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIG51bWJlciBvZiB0b2tlbnMKKyAgICAgKi8KKyAgICBpbnQgbV9yZXN1bHRMZW5ndGhfOworICAgIC8qKgorICAgICAqIExpc3Qgb2YgcGFyc2VkIHRva2VucworICAgICAqLworICAgIFRva2VuTGlzdEhlYWRlciBtX2xpc3RIZWFkZXJfW107CisgICAgLyoqCisgICAgICogVmFyaWFibGUgdG9wIHRva2VuCisgICAgICovCisgICAgVG9rZW4gbV92YXJpYWJsZVRvcF87CisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIG9wdGlvbnMKKyAgICAgKi8KKyAgICBPcHRpb25TZXQgbV9vcHRpb25zXzsKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemVkIGNvbGxhdGlvbiBydWxlcyB3aXRoIHNvbWUgZXh0cmEgY2hhcmFjdGVycworICAgICAqLworICAgIFN0cmluZ0J1ZmZlciBtX3NvdXJjZV87CisgICAgLyoqCisgICAgICogSGFzaCB0YWJsZSB0byBrZWVwIGFsbCB0b2tlbnMKKyAgICAgKi8KKyAgICBIYXNodGFibGUgbV9oYXNoVGFibGVfOworCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHZvaWQgc2V0RGVmYXVsdE9wdGlvbnNJbkNvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0U3RyZW5ndGhfID0gbV9vcHRpb25zXy5tX3N0cmVuZ3RoXzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0RGVjb21wb3NpdGlvbl8gPSBtX29wdGlvbnNfLm1fZGVjb21wb3NpdGlvbl87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXyA9IG1fb3B0aW9uc18ubV9pc0ZyZW5jaENvbGxhdGlvbl87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX29wdGlvbnNfLm1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHRJc0Nhc2VMZXZlbF8gPSBtX29wdGlvbnNfLm1faXNDYXNlTGV2ZWxfOworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHRDYXNlRmlyc3RfID0gbV9vcHRpb25zXy5tX2Nhc2VGaXJzdF87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzSGlyYWdhbmE0XyA9IG1fb3B0aW9uc18ubV9pc0hpcmFnYW5hNF87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdFZhcmlhYmxlVG9wVmFsdWVfID0gbV9vcHRpb25zXy5tX3ZhcmlhYmxlVG9wVmFsdWVfOworICAgIH0KKworICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgdG9rZW4gdGhhdCBoYXMgYmVlbiBwYXJzZWQgYnV0IG5vdCB5ZXQgcHJvY2Vzc2VkLiBVc2VkIHRvCisgICAgICogcmVkdWNlIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGluIHRoZSBwYXJzZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBQYXJzZWRUb2tlbgorICAgIHsKKyAgICAgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yCisgICAgICAgICAqLworICAgICAgICBQYXJzZWRUb2tlbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fY2hhcnNMZW5fID0gMDsKKyAgICAgICAgICAgIG1fY2hhcnNPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fZXh0ZW5zaW9uTGVuXyA9IDA7CisgICAgICAgICAgICBtX2V4dGVuc2lvbk9mZnNldF8gPSAwOworICAgICAgICAgICAgbV9wcmVmaXhMZW5fID0gMDsKKyAgICAgICAgICAgIG1fcHJlZml4T2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX2ZsYWdzXyA9IDA7CisgICAgICAgICAgICBtX3N0cmVuZ3RoXyA9IFRPS0VOX1VOU0VUXzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGludCBtX3N0cmVuZ3RoXzsKKyAgICAgICAgaW50IG1fY2hhcnNPZmZzZXRfOworICAgICAgICBpbnQgbV9jaGFyc0xlbl87CisgICAgICAgIGludCBtX2V4dGVuc2lvbk9mZnNldF87CisgICAgICAgIGludCBtX2V4dGVuc2lvbkxlbl87CisgICAgICAgIGludCBtX3ByZWZpeE9mZnNldF87CisgICAgICAgIGludCBtX3ByZWZpeExlbl87CisgICAgICAgIGNoYXIgbV9mbGFnc187CisgICAgICAgIGNoYXIgbV9pbmRpcmVjdEluZGV4XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb3VuZGFyeSB3cmFwcGVycworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEluZGlyZWN0Qm91bmRhcmllcworICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIEluZGlyZWN0Qm91bmRhcmllcyhpbnQgc3RhcnRjZVtdLCBpbnQgbGltaXRjZVtdKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBTZXQgdmFsdWVzIGZvciB0aGUgdG9wIC0gVE9ETzogb25jZSB3ZSBoYXZlIHZhbHVlcyBmb3IgYWxsIHRoZQorICAgICAgICAgICAgLy8gaW5kaXJlY3RzLCB3ZSBhcmUgZ29pbmcgdG8gaW5pdGFsaXplIGhlcmUuCisgICAgICAgICAgICBtX3N0YXJ0Q0VfID0gc3RhcnRjZVswXTsKKyAgICAgICAgICAgIG1fc3RhcnRDb250Q0VfID0gc3RhcnRjZVsxXTsKKyAgICAgICAgICAgIGlmIChsaW1pdGNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX2xpbWl0Q0VfID0gbGltaXRjZVswXTsKKyAgICAgICAgICAgICAgICBtX2xpbWl0Q29udENFXyA9IGxpbWl0Y2VbMV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2xpbWl0Q0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpbWl0Q29udENFXyA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgaW50IG1fc3RhcnRDRV87CisgICAgICAgIGludCBtX3N0YXJ0Q29udENFXzsKKyAgICAgICAgaW50IG1fbGltaXRDRV87CisgICAgICAgIGludCBtX2xpbWl0Q29udENFXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24gb3B0aW9uIHJ1bGUgdGFnCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVG9rZW5PcHRpb24KKyAgICB7CisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBUb2tlbk9wdGlvbihTdHJpbmcgbmFtZSwgaW50IGF0dHJpYnV0ZSwgU3RyaW5nIHN1Ym9wdGlvbnNbXSwKKyAgICAgICAgICAgICAgICAgICAgaW50IHN1Ym9wdGlvbmF0dHJpYnV0ZXZhbHVlW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fbmFtZV8gPSBuYW1lOworICAgICAgICAgICAgbV9hdHRyaWJ1dGVfID0gYXR0cmlidXRlOworICAgICAgICAgICAgbV9zdWJPcHRpb25zXyA9IHN1Ym9wdGlvbnM7CisgICAgICAgICAgICBtX3N1Yk9wdGlvbkF0dHJpYnV0ZVZhbHVlc18gPSBzdWJvcHRpb25hdHRyaWJ1dGV2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBwcml2YXRlIFN0cmluZyBtX25hbWVfOworICAgICAgICBwcml2YXRlIGludCBtX2F0dHJpYnV0ZV87CisgICAgICAgIHByaXZhdGUgU3RyaW5nIG1fc3ViT3B0aW9uc19bXTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbV9zdWJPcHRpb25BdHRyaWJ1dGVWYWx1ZXNfW107CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgcGFyc2VkIHRva2VuCisgICAgICovCisgICAgcHJpdmF0ZSBQYXJzZWRUb2tlbiBtX3BhcnNlZFRva2VuXzsKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24gcnVsZQorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIG1fcnVsZXNfOworICAgIHByaXZhdGUgaW50IG1fY3VycmVudF87CisgICAgLyoqCisgICAgICogRW5kIG9mIHRoZSBvcHRpb24gd2hpbGUgcmVhZGluZy4KKyAgICAgKiBOZWVkIGl0IGZvciBVbmljb2RlU2V0IHJlYWRpbmcgc3VwcG9ydC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX29wdGlvbkVuZF87CisgICAgLyoqCisgICAgICogQ3VycmVudCBvZmZzZXQgaW4gbV9zb3VyY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3NvdXJjZUxpbWl0XzsKKyAgICAvKioKKyAgICAgKiBPZmZzZXQgdG8gbV9zb3VyY2VfIG9mciB0aGUgZXh0cmEgZXhwYW5zaW9uIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2V4dHJhQ3VycmVudF87CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlU2V0IHRoYXQgY29udGFpbnMgY29kZSBwb2ludHMgdG8gYmUgY29waWVkIGZyb20gdGhlIFVDQQorICAgICAqLworICAgIFVuaWNvZGVTZXQgbV9jb3B5U2V0XzsKKworICAgIC8qKgorICAgICAqIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBjb2RlIHBvaW50cyBmb3Igd2hpY2ggd2Ugd2FudCB0byByZW1vdmUKKyAgICAgKiBVQ0EgY29udHJhY3Rpb25zLiBJdCBpbXBsaWVzIGNvcHlpbmcgb2YgdGhlc2UgY29kZSBwb2ludHMgZnJvbQorICAgICAqIHRoZSBVQ0EuCisgICAgICovCisgICAgVW5pY29kZVNldCBtX3JlbW92ZVNldF87CisgICAgLyoqCisgICAgICogVGhpcyBpcyBzcGFjZSBmb3IgdGhlIGV4dHJhIHN0cmluZ3MgdGhhdCBuZWVkIHRvIGJlIHVucXVvdGVkIGR1cmluZyB0aGUKKyAgICAgKiBwYXJzaW5nIG9mIHRoZSBydWxlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9FWFRSQV9SVUxFX1NQQUNFX1NJWkVfID0gMjA0ODsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgdG9rZW4gaXMgbm90IHNldCB5ZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVU5TRVRfID0gMHhGRkZGRkZGRjsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgcnVsZSBpcyBpbiB0aGUgPiBwb2xhcml0eSwgaWUgZXZlcnl0aGluZyBvbiB0aGUKKyAgICAgKiByaWdodCBvZiB0aGUgcnVsZSBpcyBsZXNzIHRoYW4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUE9MQVJJVFlfTkVHQVRJVkVfID0gMDsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgcnVsZSBpcyBpbiB0aGUgPCBwb2xhcml0eSwgaWUgZXZlcnl0aGluZyBvbiB0aGUKKyAgICAgKiByaWdodCBvZiB0aGUgcnVsZSBpcyBncmVhdGVyIHRoYW4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUE9MQVJJVFlfUE9TSVRJVkVfID0gMTsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIHRvcCBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVE9QX01BU0tfID0gMHgwNDsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIHZhcmlhYmxlIHRvcCBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfID0gMHgwODsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIGEgYmVmb3JlIGF0dHJpYnV0ZSBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fQkVGT1JFXyA9IDB4MDM7CisgICAgLyoqCisgICAgICogRm9yIHVzZSBpbiBwYXJzaW5nIHRva2VuIG9wdGlvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fU1VDQ0VTU19NQVNLXyA9IDB4MTA7CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgZm9yIGZpbmRpbmcgQ0UgdmFsdWVzIGZvciBpbmRpcmVjdCBwb3NpdGlvbmluZy4KKyAgICAgKiBJbmRpcmVjdCBwb3NpdGlvbmluZyBpcyBhIG1lY2hhbmlzbSBmb3IgYWxsb3dpbmcgcmVzZXRzIG9uIHN5bWJvbGljCisgICAgICogdmFsdWVzLiBJdCBvbmx5IHdvcmtzIGZvciByZXNldHMgYW5kIHlvdSBjYW5ub3QgdGFpbG9yIGluZGlyZWN0IG5hbWVzLgorICAgICAqIEFuIGluZGlyZWN0IG5hbWUgY2FuIGRlZmluZSBlaXRoZXIgYW4gYW5jaG9yIHBvaW50IG9yIGEgcmFuZ2UuIEFuIGFuY2hvcgorICAgICAqIHBvaW50IGJlaGF2ZXMgaW4gZXhhY3RseSB0aGUgc2FtZSB3YXkgYXMgYSBjb2RlIHBvaW50IGluIHJlc2V0IHdvdWxkLAorICAgICAqIGV4Y2VwdCB0aGF0IGl0IGNhbm5vdCBiZSB0YWlsb3JlZC4gQSByYW5nZSAod2UgY3VycmVudGx5IG9ubHkga25vdyBmb3IKKyAgICAgKiB0aGUgW3RvcF0gcmFuZ2Ugd2lsbCBleHBsaWNpdGx5IHNldCB0aGUgdXBwZXIgYm91bmQgZm9yIGdlbmVyYXRlZCBDRXMsCisgICAgICogdGh1cyBhbGxvd2luZyBmb3IgYmV0dGVyIGNvbnRyb2wgb3ZlciBob3cgbWFueSBDRXMgY2FuIGJlIHNxdWVlemVkCisgICAgICogYmV0d2VlbiBpbiB0aGUgcmFuZ2Ugd2l0aG91dCBwZXJmb3JtYW5jZSBwZW5hbHR5LiBJbiB0aGF0IHJlc3BlY3QsIHdlIHVzZQorICAgICAqIFt0b3BdIGZvciB0YWlsb3Jpbmcgb2YgbG9jYWxlcyB0aGF0IHVzZSBDSksgY2hhcmFjdGVycy4gT3RoZXIgaW5kaXJlY3QKKyAgICAgKiB2YWx1ZXMgYXJlIGN1cnJlbnRseSBhIHB1cmUgY29udmVuaWVuY2UsIHRoZXkgY2FuIGJlIHVzZWQgdG8gYXNzdXJlIHRoYXQKKyAgICAgKiB0aGUgQ0VzIHdpbGwgYmUgYWx3YXlzIHBvc2l0aW9uZWQgaW4gdGhlIHNhbWUgcGxhY2UgcmVsYXRpdmUgdG8gYSBwb2ludAorICAgICAqIHdpdGgga25vd24gcHJvcGVydGllcyAoZS5nLiBmaXJzdCBwcmltYXJ5IGlnbm9yYWJsZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW5kaXJlY3RCb3VuZGFyaWVzIElORElSRUNUX0JPVU5EQVJJRVNfW107CisKKyAgICAvKioKKyAgICAgKiBJbnZlcnNlIFVDQSBjb25zdGFudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5WRVJTRV9TSVpFX01BU0tfID0gMHhGRkYwMDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5WRVJTRV9PRkZTRVRfTUFTS18gPSAweDAwMEZGRkZGOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlZFUlNFX1NISUZUX1ZBTFVFXyA9IDIwOworCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIG9wdGlvbiB0YWdzCisgICAgICogW2xhc3QgdmFyaWFibGVdIGxhc3QgdmFyaWFibGUgdmFsdWUKKyAgICAgKiBbbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV0gbGFyZ2VzdCBDRSBmb3IgcHJpbWFyeSBpZ25vcmFibGUKKyAgICAgKiBbbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXSBsYXJnZXN0IENFIGZvciBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICogW2xhc3QgdGVydGlhcnkgaWdub3JhYmxlXSBsYXJnZXN0IENFIGZvciB0ZXJ0aWFyeSBpZ25vcmFibGUKKyAgICAgKiBbdG9wXSBndWFyYW50ZWVkIHRvIGJlIGFib3ZlIGFsbCBpbXBsaWNpdCBDRXMsIGZvciBub3cgYW5kIGluIHRoZSBmdXR1cmUgKGluIDEuOCkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUb2tlbk9wdGlvbiBSVUxFU19PUFRJT05TX1tdOworCisgICAgc3RhdGljCisgICAgeworICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTXyA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXNbMTVdOworICAgICAgICAvLyBVQ09MX1JFU0VUX1RPUF9WQUxVRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1swXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX05PTl9WQVJJQUJMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9JTVBMSUNJVF8pOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1BSSU1BUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzFdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfUFJJTUFSWV9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX1BSSU1BUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzJdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9QUklNQVJZX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgIG51bGwpOworCisgICAgICAgIC8vIFVDT0xfRklSU1RfU0VDT05EQVJZX0lHTk9SQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1szXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfU0VDT05EQVJZX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzRdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX1NFQ09OREFSWV9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1RFUlRJQVJZX0lHTk9SQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s1XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfVEVSVElBUllfSUdOT1JBQkxFXywKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX1RFUlRJQVJZX0lHTk9SQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s2XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9URVJUSUFSWV9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1ZBUklBQkxFOworICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s3XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfVkFSSUFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfVkFSSUFCTEUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bOF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfVkFSSUFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0ZJUlNUX05PTl9WQVJJQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s5XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfTk9OX1ZBUklBQkxFXywKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX05PTl9WQVJJQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1sxMF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfTk9OX1ZBUklBQkxFXywKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9JTVBMSUNJVF8pOworICAgICAgICAvLyBVQ09MX0ZJUlNUX0lNUExJQ0lUCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzExXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfSU1QTElDSVRfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfSU1QTElDSVQKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTJdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX0lNUExJQ0lUXywKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9UUkFJTElOR18pOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1RSQUlMSU5HCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzEzXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfVFJBSUxJTkdfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfVFJBSUxJTkcKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTRdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX1RSQUlMSU5HXywKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTRdLm1fbGltaXRDRV8KKyAgICAgICAgICAgICAgICAgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX1NQRUNJQUxfTUlOXyA8PCAyNDsKKworICAgICAgICBSVUxFU19PUFRJT05TXyA9IG5ldyBUb2tlbk9wdGlvblsxOV07CisgICAgICAgIFN0cmluZyBvcHRpb25bXSA9IHsibm9uLWlnbm9yYWJsZSIsICJzaGlmdGVkIn07CisgICAgICAgIGludCB2YWx1ZVtdID0ge1J1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk5PTl9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5TSElGVEVEX307CisgICAgICAgIFJVTEVTX09QVElPTlNfWzBdID0gbmV3IFRva2VuT3B0aW9uKCJhbHRlcm5hdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkFMVEVSTkFURV9IQU5ETElOR18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjIiOworICAgICAgICB2YWx1ZSA9IG5ldyBpbnRbMV07CisgICAgICAgIHZhbHVlWzBdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fOworICAgICAgICBSVUxFU19PUFRJT05TX1sxXSA9IG5ldyBUb2tlbk9wdGlvbigiYmFja3dhcmRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5GUkVOQ0hfQ09MTEFUSU9OXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworICAgICAgICBTdHJpbmcgb2Zmb25vcHRpb25bXSA9IG5ldyBTdHJpbmdbMl07CisgICAgICAgIG9mZm9ub3B0aW9uWzBdID0gIm9mZiI7CisgICAgICAgIG9mZm9ub3B0aW9uWzFdID0gIm9uIjsKKyAgICAgICAgaW50IG9mZm9udmFsdWVbXSA9IG5ldyBpbnRbMl07CisgICAgICAgIG9mZm9udmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PRkZfOworICAgICAgICBvZmZvbnZhbHVlWzFdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fOworICAgICAgICBSVUxFU19PUFRJT05TX1syXSA9IG5ldyBUb2tlbk9wdGlvbigiY2FzZUxldmVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5DQVNFX0xFVkVMXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZm9ub3B0aW9uLCBvZmZvbnZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1szXTsKKyAgICAgICAgb3B0aW9uWzBdID0gImxvd2VyIjsKKyAgICAgICAgb3B0aW9uWzFdID0gInVwcGVyIjsKKyAgICAgICAgb3B0aW9uWzJdID0gIm9mZiI7CisgICAgICAgIHZhbHVlID0gbmV3IGludFszXTsKKyAgICAgICAgdmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF87CisgICAgICAgIHZhbHVlWzFdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfOworICAgICAgICB2YWx1ZVsyXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9GRl87CisgICAgICAgIFJVTEVTX09QVElPTlNfWzNdID0gbmV3IFRva2VuT3B0aW9uKCJjYXNlRmlyc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkNBU0VfRklSU1RfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLCB2YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzRdID0gbmV3IFRva2VuT3B0aW9uKCJub3JtYWxpemF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTk9STUFMSVpBVElPTl9NT0RFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZvbm9wdGlvbiwgb2Zmb252YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzVdID0gbmV3IFRva2VuT3B0aW9uKCJoaXJhZ2FuYVEiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5ISVJBR0FOQV9RVUFURVJOQVJZX01PREVfLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZm9ub3B0aW9uLCBvZmZvbnZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjEiOworICAgICAgICBvcHRpb25bMV0gPSAiMiI7CisgICAgICAgIG9wdGlvblsyXSA9ICIzIjsKKyAgICAgICAgb3B0aW9uWzNdID0gIjQiOworICAgICAgICBvcHRpb25bNF0gPSAiSSI7CisgICAgICAgIHZhbHVlID0gbmV3IGludFs1XTsKKyAgICAgICAgdmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5QUklNQVJZXzsKKyAgICAgICAgdmFsdWVbMV0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5TRUNPTkRBUllfOworICAgICAgICB2YWx1ZVsyXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlRFUlRJQVJZXzsKKyAgICAgICAgdmFsdWVbM10gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5RVUFURVJOQVJZXzsKKyAgICAgICAgdmFsdWVbNF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5JREVOVElDQUxfOworICAgICAgICBSVUxFU19PUFRJT05TX1s2XSA9IG5ldyBUb2tlbk9wdGlvbigic3RyZW5ndGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuU1RSRU5HVEhfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bN10gPSBuZXcgVG9rZW5PcHRpb24oInZhcmlhYmxlIHRvcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bOF0gPSBuZXcgVG9rZW5PcHRpb24oInJlYXJyYW5nZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1szXTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjEiOworICAgICAgICBvcHRpb25bMV0gPSAiMiI7CisgICAgICAgIG9wdGlvblsyXSA9ICIzIjsKKyAgICAgICAgdmFsdWUgPSBuZXcgaW50WzNdOworICAgICAgICB2YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlBSSU1BUllfOworICAgICAgICB2YWx1ZVsxXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlNFQ09OREFSWV87CisgICAgICAgIHZhbHVlWzJdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuVEVSVElBUllfOworICAgICAgICBSVUxFU19PUFRJT05TX1s5XSA9IG5ldyBUb2tlbk9wdGlvbigiYmVmb3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxMF0gPSBuZXcgVG9rZW5PcHRpb24oInRvcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgU3RyaW5nIGZpcnN0bGFzdG9wdGlvbltdID0gbmV3IFN0cmluZ1s3XTsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzBdID0gInByaW1hcnkiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bMV0gPSAic2Vjb25kYXJ5IjsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzJdID0gInRlcnRpYXJ5IjsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzNdID0gInZhcmlhYmxlIjsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzRdID0gInJlZ3VsYXIiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bNV0gPSAiaW1wbGljaXQiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bNl0gPSAidHJhaWxpbmciOworCisgICAgICAgIGludCBmaXJzdGxhc3R2YWx1ZVtdID0gbmV3IGludFs3XTsKKyAgICAgICAgQXJyYXlzLmZpbGwoZmlyc3RsYXN0dmFsdWUsIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlBSSU1BUllfKTsKKworICAgICAgICBSVUxFU19PUFRJT05TX1sxMV0gPSBuZXcgVG9rZW5PcHRpb24oImZpcnN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0bGFzdG9wdGlvbiwgZmlyc3RsYXN0dmFsdWUpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxMl0gPSBuZXcgVG9rZW5PcHRpb24oImxhc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RsYXN0b3B0aW9uLCBmaXJzdGxhc3R2YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzEzXSA9IG5ldyBUb2tlbk9wdGlvbigib3B0aW1pemUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzE0XSA9IG5ldyBUb2tlbk9wdGlvbigic3VwcHJlc3NDb250cmFjdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzE1XSA9IG5ldyBUb2tlbk9wdGlvbigidW5kZWZpbmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxNl0gPSBuZXcgVG9rZW5PcHRpb24oInNjcmlwdE9yZGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxN10gPSBuZXcgVG9rZW5PcHRpb24oImNoYXJzZXRuYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxOF0gPSBuZXcgVG9rZW5PcHRpb24oImNoYXJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSBkYXRhIG1lbWJlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFRva2VuIG1fdXRpbFRva2VuXyA9IG5ldyBUb2tlbigpOworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fVUNBQ29sRUl0ZXJfCisgICAgICAgICAgICAgICAgICAgICAgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ0VCdWZmZXJfW10gPSBuZXcgaW50WzJdOworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFzc2VtYmxlcyB0aGUgdG9rZW4gbGlzdAorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gcnVsZXMgc3ludGF4IGZhaWxzCisgICAgICovCisgICAgaW50IGFzc2VtYmxlVG9rZW5MaXN0KCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBUb2tlbiBsYXN0VG9rZW4gPSBudWxsOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXyA9IFRPS0VOX1VOU0VUXzsKKyAgICAgICAgaW50IHNvdXJjZWxpbWl0ID0gbV9zb3VyY2VfLmxlbmd0aCgpOworICAgICAgICBpbnQgZXhwYW5kTmV4dCA9IDA7CisKKyAgICAgICAgd2hpbGUgKG1fY3VycmVudF8gPCBzb3VyY2VsaW1pdCkgeworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIGlmIChwYXJzZU5leHRUb2tlbihsYXN0VG9rZW4gPT0gbnVsbCkgPCAwKSB7CisgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSByZWFjaGVkIHRoZSBlbmQKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgc3BlY3MgPSBtX3BhcnNlZFRva2VuXy5tX2ZsYWdzXzsKKyAgICAgICAgICAgIGJvb2xlYW4gdmFyaWFibGVUb3AgPSAoKHNwZWNzICYgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfKSAhPSAwKTsKKyAgICAgICAgICAgIGJvb2xlYW4gdG9wID0gKChzcGVjcyAmIFRPS0VOX1RPUF9NQVNLXykgIT0gMCk7CisgICAgICAgICAgICBpbnQgbGFzdFN0cmVuZ3RoID0gVE9LRU5fVU5TRVRfOworICAgICAgICAgICAgaWYgKGxhc3RUb2tlbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGFzdFN0cmVuZ3RoID0gbGFzdFRva2VuLm1fc3RyZW5ndGhfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fc291cmNlXyA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fcnVsZXNfID0gbV9zb3VyY2VfOworICAgICAgICAgICAgLy8gNCBMb29rdXAgZWFjaCBzb3VyY2UgaW4gdGhlIENoYXJzVG9Ub2tlbiBtYXAsIGFuZCBmaW5kIGEKKyAgICAgICAgICAgIC8vIHNvdXJjZXRva2VuCisgICAgICAgICAgICBUb2tlbiBzb3VyY2VUb2tlbiA9IChUb2tlbiltX2hhc2hUYWJsZV8uZ2V0KG1fdXRpbFRva2VuXyk7CisgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9zdHJlbmd0aF8gIT0gVE9LRU5fUkVTRVRfKSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgbWVhbnMgdGhhdCBydWxlcyBoYXZlbid0IHN0YXJ0ZWQgcHJvcGVybHkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3NvdXJjZV8udG9TdHJpbmcoKSwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vICA2IE90aGVyd2lzZSAod2hlbiByZWxhdGlvbiAhPSByZXNldCkKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBzb3VyY2VUb2tlbiBpcyBudWxsLCBjcmVhdGUgbmV3IG9uZQorICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IG5ldyBUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9ydWxlc18gPSBtX3NvdXJjZV87CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fc291cmNlXyA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmVmaXhfID0gbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhMZW5fIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeE9mZnNldF87CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGFsc28gaGFuZGxlIHJldmVyc2UKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wb2xhcml0eV8gPSBUT0tFTl9QT0xBUklUWV9QT1NJVElWRV87CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fZXhwQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbV9oYXNoVGFibGVfLnB1dChzb3VyY2VUb2tlbiwgc291cmNlVG9rZW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgY291bGQgaGF2ZSBmaXNoZWQgb3V0IGEgcmVzZXQgaGVyZQorICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gIT0gVE9LRU5fUkVTRVRfCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBsYXN0VG9rZW4gIT0gc291cmNlVG9rZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSByZW1vdmUgc291cmNlVG9rZW4gZnJvbSB3aGVyZSBpdCB3YXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9uZXh0XyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fbmV4dF8ubV9zdHJlbmd0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0Xy5tX3ByZXZpb3VzXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9wcmV2aW91c187CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fbGFzdF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fcHJldmlvdXNfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXy5tX25leHRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9uZXh0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX25leHRfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gPSBtX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXzsKKyAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfID0gbGFzdFRva2VuLm1fbGlzdEhlYWRlcl87CisKKyAgICAgICAgICAgICAgICAvLyAxLiAgRmluZCB0aGUgc3Ryb25nZXN0IHN0cmVuZ3RoIGluIGVhY2ggbGlzdCwgYW5kIHNldAorICAgICAgICAgICAgICAgIC8vIHN0cm9uZ2VzdFAgYW5kIHN0cm9uZ2VzdE4gYWNjb3JkaW5nbHkgaW4gdGhlIGhlYWRlcnMuCisgICAgICAgICAgICAgICAgaWYgKGxhc3RTdHJlbmd0aCA9PSBUT0tFTl9SRVNFVF8KKyAgICAgICAgICAgICAgICAgICAgfHwgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIExBU1QgaXMgYSByZXNldCBpbnNlcnQgc291cmNlVG9rZW4gaW4gdGhlIGxpc3QuCisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9sYXN0XyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB3ZSBuZWVkIHRvIGZpbmQgYSBwbGFjZSBmb3IgdXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSdsbCBnZXQgaW4gZnJvbnQgb2YgdGhlIHNhbWUgc3RyZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfLm1fc3RyZW5ndGhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD0gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0Xy5tX3ByZXZpb3VzXyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4gPSBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsYXN0VG9rZW4ubV9uZXh0XyAhPSBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGxhc3RUb2tlbi5tX25leHRfLm1fc3RyZW5ndGhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4gPSBsYXN0VG9rZW4ubV9uZXh0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbi5tX25leHRfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fbmV4dF8ubV9wcmV2aW91c18gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9sYXN0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBsYXN0VG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IGxhc3RUb2tlbi5tX25leHRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX25leHRfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSAod2hlbiBMQVNUIGlzIG5vdCBhIHJlc2V0KQorICAgICAgICAgICAgICAgICAgICAvLyBpZiBwb2xhcml0eSAoTEFTVCkgPT0gcG9sYXJpdHkocmVsYXRpb24pLCBpbnNlcnQKKyAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlVG9rZW4gYWZ0ZXIgTEFTVCwgb3RoZXJ3aXNlIGluc2VydCBiZWZvcmUuCisgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gaW5zZXJ0aW5nIGFmdGVyIG9yIGJlZm9yZSwgc2VhcmNoIHRvIHRoZSBuZXh0CisgICAgICAgICAgICAgICAgICAgIC8vIHBvc2l0aW9uIHdpdGggdGhlIHNhbWUgc3RyZW5ndGggaW4gdGhhdCBkaXJlY3Rpb24uCisgICAgICAgICAgICAgICAgICAgIC8vIChUaGlzIGlzIGNhbGxlZCBwb3N0cG9uZSBpbnNlcnRpb24pLgorICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gIT0gbGFzdFRva2VuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuLm1fcG9sYXJpdHlfID09IHNvdXJjZVRva2VuLm1fcG9sYXJpdHlfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGxhc3RUb2tlbi5tX25leHRfICE9IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbGFzdFRva2VuLm1fbmV4dF8ubV9zdHJlbmd0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuID0gbGFzdFRva2VuLm1fbmV4dF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfID0gbGFzdFRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4ubV9uZXh0XyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX25leHRfLm1fcHJldmlvdXNfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IGxhc3RUb2tlbi5tX25leHRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX25leHRfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobGFzdFRva2VuLm1fcHJldmlvdXNfICE9IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbGFzdFRva2VuLm1fcHJldmlvdXNfLm1fc3RyZW5ndGhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbiA9IGxhc3RUb2tlbi5tX3ByZXZpb3VzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IGxhc3RUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fcHJldmlvdXNfLm1fbmV4dF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBsYXN0VG9rZW4ubV9wcmV2aW91c187CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fcHJldmlvdXNfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHJlcGVhdGVkIG9uZSB0aGluZyB0d2ljZSBpbiBydWxlcywgc3RheSB3aXRoIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Ryb25nZXIgc3RyZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0U3RyZW5ndGggPCBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfID0gbGFzdFN0cmVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB0b2tlbiB3YXMgYSB2YXJpYWJsZSB0b3AsIHdlJ3JlIGdvbm5hIHB1dCBpdCBpbgorICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZVRvcCA9PSB0cnVlICYmIG1fdmFyaWFibGVUb3BfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVUb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgbV92YXJpYWJsZVRvcF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gVHJlYXQgdGhlIGV4cGFuc2lvbnMuCisgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIHR3byB0eXBlcyBvZiBleHBhbnNpb25zOiBleHBsaWNpdCAoeCAvIHkpIGFuZAorICAgICAgICAgICAgICAgIC8vIHJlc2V0IGJhc2VkIHByb3BhZ2F0aW5nIGV4cGFuc2lvbnMKKyAgICAgICAgICAgICAgICAvLyAoJmFiYyAqIGQgKiBlIDw9PiAmYWIgKiBkIC8gYyAqIGUgLyBjKQorICAgICAgICAgICAgICAgIC8vIGlmIGJvdGggb2YgdGhlbSBhcmUgaW4gZWZmZWN0IGZvciBhIHRva2VuLCB0aGV5IGFyZSBjb21iaW5lZC4KKyAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fZXhwYW5zaW9uXyA9IG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uTGVuXyA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbk9mZnNldF87CisgICAgICAgICAgICAgICBpZiAoZXhwYW5kTmV4dCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfID09IFJ1bGVCYXNlZENvbGxhdG9yLlBSSU1BUlkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJpbWFyeSBzdHJlbmd0aCBraWxscyBvZmYgdGhlIGltcGxpY2l0IGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICAgICBleHBhbmROZXh0ID0gMDsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlVG9rZW4ubV9leHBhbnNpb25fID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gZXhwYW5zaW9uLCBpbXBsaWNpdCBpcyBqdXN0IGFkZGVkIHRvCisgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSB0b2tlbgorICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2V4cGFuc2lvbl8gPSBleHBhbmROZXh0OworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgYm90aCBleHBsaWNpdCBhbmQgaW1wbGljaXQgZXhwYW5zaW9uLgorICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2UgYSBjb21iaW5hdGlvbgorICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBleHBhbmROZXh0ICYgMHhGRkZGRkY7CisgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplID0gZXhwYW5kTmV4dCA+Pj4gMjQ7CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaXplID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKG1fc291cmNlXy5zdWJzdHJpbmcoc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArIHNpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChtX3NvdXJjZV8uc3Vic3RyaW5nKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArIG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uTGVuXykpOworICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2V4cGFuc2lvbl8gPSAoc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbkxlbl8pIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IHNpemUgKyBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbkxlbl87CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIC8vIGlmIHRoZSBwcmV2aW91cyB0b2tlbiB3YXMgYSByZXNldCBiZWZvcmUsIHRoZSBzdHJlbmd0aCBvZiB0aGlzCisgICAgICAgICAgICAgICAvLyB0b2tlbiBtdXN0IG1hdGNoIHRoZSBzdHJlbmd0aCBvZiBiZWZvcmUuIE90aGVyd2lzZSB3ZSBoYXZlIGFuCisgICAgICAgICAgICAgICAvLyB1bmRlZmluZWQgc2l0dWF0aW9uLgorICAgICAgICAgICAgICAgLy8gSW4gb3RoZXIgd29yZHMsIHdlIGN1cnJlbnRseSBoYXZlIGEgY2x1ZGdlIHdoaWNoIHdlIHVzZSB0bworICAgICAgICAgICAgICAgLy8gcmVwcmVzZW50ICZhID4+IHguIFRoaXMgaXMgd3JpdHRlbiBhcyAmW2JlZm9yZSAyXWEgPDwgeC4KKyAgICAgICAgICAgICAgIGlmKChsYXN0VG9rZW4ubV9mbGFnc18gJiBUT0tFTl9CRUZPUkVfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgaW50IGJlZm9yZVN0cmVuZ3RoID0gKGxhc3RUb2tlbi5tX2ZsYWdzXyAmIFRPS0VOX0JFRk9SRV8pIC0gMTsKKyAgICAgICAgICAgICAgICAgICBpZihiZWZvcmVTdHJlbmd0aCAhPSBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fc291cmNlXy50b1N0cmluZygpLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4gIT0gbnVsbCAmJiBsYXN0U3RyZW5ndGggPT0gVE9LRU5fUkVTRVRfKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBwcmV2aW91cyB0b2tlbiB3YXMgYWxzbyBhIHJlc2V0LCB0aGlzIG1lYW5zIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0d28gY29uc2VjdXRpdmUgcmVzZXRzIGFuZCB3ZSB3YW50IHRvIHJlbW92ZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgb25lIGlmIGVtcHR5CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3Jlc3VsdExlbmd0aF8gPiAwICYmIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfIC0gMV0ubV9maXJzdF8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9yZXN1bHRMZW5ndGhfIC0tOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSByZXNldCwgYnV0IGl0IG1pZ2h0IHN0aWxsIGJlIHNvbWV3aGVyZSBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGFpbG9yaW5nLCBpbiBzaG9ydGVyIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgaW50IHNlYXJjaENoYXJzTGVuID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl87CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzZWFyY2hDaGFyc0xlbiA+IDEgJiYgc291cmNlVG9rZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQ2hhcnNMZW4gLS07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZXkgPSBzZWFyY2hDaGFyc0xlbiA8PCAyNCB8IGNoYXJzT2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fc291cmNlXyA9IHNlYXJjaENoYXJzTGVuIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fcnVsZXNfID0gbV9zb3VyY2VfOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSAoVG9rZW4pbV9oYXNoVGFibGVfLmdldChtX3V0aWxUb2tlbl8pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmROZXh0ID0gKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHNlYXJjaENoYXJzTGVuKSA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzZWFyY2hDaGFyc0xlbik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChzcGVjcyAmIFRPS0VOX0JFRk9SRV8pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvcCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UncmUgZG9pbmcgYmVmb3JlICYgdGhlcmUgaXMgbm8gaW5kaXJlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJlbmd0aCA9IChzcGVjcyAmIFRPS0VOX0JFRk9SRV8pIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbiAhPSBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gIT0gVE9LRU5fUkVTRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGJlZm9yZSB0aGF0IGlzIGFscmVhZHkgb3JkZXJlZCBpbiB0aGUgVUNBCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLSBzbyB3ZSBuZWVkIHRvIGdldCB0aGUgcHJldmlvdXMgd2l0aCBnb29kIHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfID4gc3RyZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc291cmNlVG9rZW4ubV9wcmV2aW91c18gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IHNvdXJjZVRva2VuLm1fcHJldmlvdXNfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZXJlLCBlaXRoZXIgd2UgaGl0IHRoZSBzdHJlbmd0aCBvciBOVUxMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfID09IHN0cmVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IHNvdXJjZVRva2VuLm1fcHJldmlvdXNfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBzdGFydCBvZiBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9yZXNldF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHdlIGhpdCBOVUxMLCB3ZSBzaG91bGQgYmUgZG9pbmcgdGhlIGVsc2UgcGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9yZXNldF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gZ2V0VmlyZ2luQmVmb3JlKHNvdXJjZVRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBnZXRWaXJnaW5CZWZvcmUoc291cmNlVG9rZW4sIHN0cmVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYm90aCBiZWZvcmUgYW5kIGluZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXSA9IG5ldyBUb2tlbkxpc3RIZWFkZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9pbmRpcmVjdF8gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBkbyBzbGlnaHRseSBtb3JlIHdvcmsuIHdlIG5lZWQgdG8gZ2V0IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFzZUNFIHVzaW5nIHRoZSBpbnZlcnNlIFVDQSAmIGdldFByZXZpb3VzLiBUaGUgbmV4dAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYm91bmQgaXMgbm90IHNldCwgYW5kIHdpbGwgYmUgZGVjaWRlZCBpbiB1Y29sX2JsZAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmVuZ3RoID0gKHNwZWNzICYgVE9LRU5fQkVGT1JFXykgLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2VDRSA9IElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfXS5tX3N0YXJ0Q0VfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2VDb250Q0UgPSBJTkRJUkVDVF9CT1VOREFSSUVTX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfXS5tX3N0YXJ0Q29udENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjZVtdID0gbmV3IGludFsyXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKChiYXNlQ0UgPj4+IDI0ID49IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUlOXykKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIChiYXNlQ0UgPj4+IDI0IDw9ICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01BWF8pKSB7IC8qIGltcGxpY2l0cyAtICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW1hcnkgPSBiYXNlQ0UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgKGJhc2VDb250Q0UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmF3ID0gUnVsZUJhc2VkQ29sbGF0b3IuaW1wQ0VHZW5fLmdldFJhd0Zyb21JbXBsaWNpdChwcmltYXJ5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbWFyeUNFID0gUnVsZUJhc2VkQ29sbGF0b3IuaW1wQ0VHZW5fLmdldEltcGxpY2l0RnJvbVJhdyhyYXctMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VbMF0gPSBwcmltYXJ5Q0UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgMHgwNTA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlWzFdID0gKHByaW1hcnlDRSA8PCAxNikgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLkludmVyc2VVQ0EgaW52dWNhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSU5WRVJTRV9VQ0FfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludnVjYS5nZXRJbnZlcnNlUHJldkNFKGJhc2VDRSwgYmFzZUNvbnRDRSwgc3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ0VfID0gY2VbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXyA9IGNlWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXyA9IDA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmROZXh0ID0gaW5pdEFSZXNldCgwLCBzb3VyY2VUb2tlbik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gNSBJZiB0aGUgcmVsYXRpb24gaXMgYSByZXNldDoKKyAgICAgICAgICAgICAgICAvLyBJZiBzb3VyY2VUb2tlbiBpcyBudWxsCisgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIG5ldyBsaXN0LCBjcmVhdGUgbmV3IHNvdXJjZVRva2VuLCBtYWtlIHRoZSBiYXNlQ0UKKyAgICAgICAgICAgICAgICAvLyBmcm9tIHNvdXJjZSwgcHV0IHRoZSBzb3VyY2VUb2tlbiBpbiBMaXN0SGVhZGVyIG9mIHRoZSBuZXcKKyAgICAgICAgICAgICAgICAvLyBsaXN0CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10gPSBuZXcgVG9rZW5MaXN0SGVhZGVyKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gMyBDb25zaWRlciBlYWNoIGl0ZW06IHJlbGF0aW9uLCBzb3VyY2UsIGFuZCBleHBhbnNpb246CisgICAgICAgICAgICAgICAgICAgIC8vIGUuZy4gLi4uPCB4IC8geSAuLi4KKyAgICAgICAgICAgICAgICAgICAgLy8gRmlyc3QgY29udmVydCBhbGwgZXhwYW5zaW9ucyBpbnRvIG5vcm1hbCBmb3JtLgorICAgICAgICAgICAgICAgICAgICAvLyBFeGFtcGxlczoKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgInh5IiBkb2Vzbid0IG9jY3VyIGVhcmxpZXIgaW4gdGhlIGxpc3Qgb3IgaW4gdGhlIFVDQSwKKyAgICAgICAgICAgICAgICAgICAgLy8gY29udmVydCAmeHkgKiBjICogZCAqIC4uLiBpbnRvICZ4ICogYy95ICogZCAqIC4uLgorICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiByZXNldCB2YWx1ZXMgY2FuIG5ldmVyIGhhdmUgZXhwYW5zaW9ucywgYWx0aG91Z2gKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhleSBjYW4gY2F1c2UgdGhlIHZlcnkgbmV4dCBpdGVtIHRvIGhhdmUgb25lLiBUaGV5IG1heQorICAgICAgICAgICAgICAgICAgICAvLyBiZSBjb250cmFjdGlvbnMsIGlmIHRoZXkgYXJlIGZvdW5kIGVhcmxpZXIgaW4gdGhlIGxpc3QuCisgICAgICAgICAgICAgICAgICAgIGlmICh0b3AgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8pKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaW50IENFID0gY29sZWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IHRvIHRoZSBjaGFyYWN0ZXIgaW4gdGhlIGZ1bGwgcnVsZSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBhbmQgPSBjb2xlaXRlci5nZXRPZmZzZXQoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgU2Vjb25kQ0UgPSBjb2xlaXRlci5uZXh0KCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IENFICYgMHhGRkZGRkYzRjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihTZWNvbmRDRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNlY29uZENFOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IG5ldyBUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kTmV4dCA9IGluaXRBUmVzZXQoZXhwYW5kLCBzb3VyY2VUb2tlbik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHRvcCA9PSBUUlVFCisgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9pbmRpcmVjdF8gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgSW5kaXJlY3RCb3VuZGFyaWVzIGliID0gSU5ESVJFQ1RfQk9VTkRBUklFU19bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4X107CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGliLm1fc3RhcnRDRV87CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGliLm1fc3RhcnRDb250Q0VfOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpYi5tX2xpbWl0Q0VfOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENvbnRDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpYi5tX2xpbWl0Q29udENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmROZXh0ID0gaW5pdEFSZXNldCgwLCBzb3VyY2VUb2tlbik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHJlc2V0IHRvIHNvbWV0aGluZyBhbHJlYWR5IGluIHJ1bGVzCisgICAgICAgICAgICAgICAgICAgIHRvcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIDcgQWZ0ZXIgYWxsIHRoaXMsIHNldCBMQVNUIHRvIHBvaW50IHRvIHNvdXJjZVRva2VuLCBhbmQgZ290bworICAgICAgICAgICAgLy8gc3RlcCAzLgorICAgICAgICAgICAgbGFzdFRva2VuID0gc291cmNlVG9rZW47CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9yZXN1bHRMZW5ndGhfID4gMAorICAgICAgICAgICAgJiYgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF8gLSAxXS5tX2ZpcnN0XyA9PSBudWxsKSB7CisgICAgICAgICAgICBtX3Jlc3VsdExlbmd0aF8gLS07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fcmVzdWx0TGVuZ3RoXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGFuZCB0aHJvd3MgYSBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBwYXJhbSBydWxlcyBjb2xsYXRpb24gcnVsZSB0aGF0IGZhaWxlZAorICAgICAqIEBwYXJhbSBvZmZzZXQgZmFpbGVkIG9mZnNldCBpbiBydWxlcworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24gd2l0aCBmYWlsdXJlIGluZm9ybWF0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB0aHJvd1BhcnNlRXhjZXB0aW9uKFN0cmluZyBydWxlcywgaW50IG9mZnNldCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIGZvciBwcmUtY29udGV4dAorICAgICAgICBTdHJpbmcgcHJlY29udGV4dCA9IHJ1bGVzLnN1YnN0cmluZygwLCBvZmZzZXQpOworICAgICAgICBTdHJpbmcgcG9zdGNvbnRleHQgPSBydWxlcy5zdWJzdHJpbmcob2Zmc2V0LCBydWxlcy5sZW5ndGgoKSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBlcnJvciA9IG5ldyBTdHJpbmdCdWZmZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyc2UgZXJyb3Igb2NjdXJyZWQgaW4gcnVsZSBhdCBvZmZzZXQgIik7CisgICAgICAgIGVycm9yLmFwcGVuZChvZmZzZXQpOworICAgICAgICBlcnJvci5hcHBlbmQoIlxuIGFmdGVyIHRoZSBwcmVmaXggXCIiKTsKKyAgICAgICAgZXJyb3IuYXBwZW5kKHByZWNvbnRleHQpOworICAgICAgICBlcnJvci5hcHBlbmQoIlwiIGJlZm9yZSB0aGUgc3VmZml4IFwiIik7CisgICAgICAgIGVycm9yLmFwcGVuZChwb3N0Y29udGV4dCk7CisgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbihlcnJvci50b1N0cmluZygpLCBvZmZzZXQpOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBkb1NldFRvcCgpIHsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpMHhGRkZFKTsKKyAgICAgICAgSW5kaXJlY3RCb3VuZGFyaWVzIGliID0KKyAgICAgICAgICAgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfW21fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF9dOworICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKShpYi5tX3N0YXJ0Q0VfID4+IDE2KSk7CisgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpKGliLm1fc3RhcnRDRV8gJiAweEZGRkYpKTsKKyAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IDM7CisgICAgICAgIGlmIChJTkRJUkVDVF9CT1VOREFSSUVTX1ttX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5tX3N0YXJ0Q29udENFXyA9PSAwKSB7CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9IDM7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKShJTkRJUkVDVF9CT1VOREFSSUVTX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLm1fc3RhcnRDb250Q0VfID4+IDE2KSk7CisgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKShJTkRJUkVDVF9CT1VOREFSSUVTX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLm1fc3RhcnRDb250Q0VfICYgMHhGRkZGKSk7CisgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gMjsKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gNTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzQ2hhck5ld0xpbmUoY2hhciBjKSB7CisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlIDB4MDAwQTogLyogTEYgKi8KKyAgICAgICAgY2FzZSAweDAwMEQ6IC8qIENSICovCisgICAgICAgIGNhc2UgMHgwMDBDOiAvKiBGRiAqLworICAgICAgICBjYXNlIDB4MDA4NTogLyogTkVMICovCisgICAgICAgIGNhc2UgMHgyMDI4OiAvKiBMUyAqLworICAgICAgICBjYXNlIDB4MjAyOTogLyogUFMgKi8KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0dGluZyB0aGUgbmV4dCB0b2tlbgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0b2ZydWxlcworICAgICAqICAgICAgICAgICAgZmxhZyBpbmRpY2F0aW5nIGlmIHdlIGFyZSBhdCB0aGUgc3RhcnQgb2YgcnVsZXMKKyAgICAgKiBAcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIHJ1bGVzCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbgorICAgICAqICAgICAgICAgICAgICAgIHRocm93biB3aGVuIHJ1bGUgcGFyc2luZyBmYWlscworICAgICAqLworICAgIHByaXZhdGUgaW50IHBhcnNlTmV4dFRva2VuKGJvb2xlYW4gc3RhcnRvZnJ1bGVzKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIHBhcnNpbmcgcGFydAorICAgICAgICBib29sZWFuIHZhcmlhYmxldG9wID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gdG9wID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gaW5jaGFycyA9IHRydWU7CisgICAgICAgIGJvb2xlYW4gaW5xdW90ZSA9IGZhbHNlOworICAgICAgICBib29sZWFuIHdhc2lucXVvdGUgPSBmYWxzZTsKKyAgICAgICAgYnl0ZSBiZWZvcmUgPSAwOworICAgICAgICBib29sZWFuIGlzZXNjYXBlZCA9IGZhbHNlOworICAgICAgICBpbnQgLypuZXdjaGFyc2xlbiA9IDAsKi8gbmV3ZXh0ZW5zaW9ubGVuID0gMDsKKyAgICAgICAgaW50IC8qY2hhcnNvZmZzZXQgPSAwLCovIGV4dGVuc2lvbm9mZnNldCA9IDA7CisgICAgICAgIGludCBuZXdzdHJlbmd0aCA9IFRPS0VOX1VOU0VUXzsKKworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9IDA7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gMDsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfID0gMDsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhMZW5fID0gMDsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDA7CisKKyAgICAgICAgaW50IGxpbWl0ID0gbV9ydWxlc18ubGVuZ3RoKCk7CisgICAgICAgIHdoaWxlIChtX2N1cnJlbnRfIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8pOworICAgICAgICAgICAgaWYgKGlucXVvdGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gMHgwMDI3KSB7IC8vICdcJycKKyAgICAgICAgICAgICAgICAgICAgaW5xdW90ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9PSAwKSB8fCBpbmNoYXJzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld2V4dGVuc2lvbmxlbiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0ID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoaXNlc2NhcGVkKSB7CisgICAgICAgICAgICAgICAgaXNlc2NhcGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoICE9IDAgJiYgbV9jdXJyZW50XyAhPSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5jaGFycykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fY3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdleHRlbnNpb25sZW4gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCA9IG1fY3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTZXRzIHRoZSBzdHJlbmd0aCBmb3IgdGhpcyBlbnRyeQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDNEIDogLy8gJz0nCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggIT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdGFydCB3aXRoIHN0cmVuZ3RoLCB3ZSdsbCByZXNldCB0byB0b3AKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydG9mcnVsZXMgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGRvU2V0VG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4oVE9LRU5fUkVTRVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5JREVOVElDQUw7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMkMgOiAvLyAnLCcKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0YXJ0IHdpdGggc3RyZW5ndGgsIHdlJ2xsIHJlc2V0IHRvIHRvcAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0b2ZydWxlcyA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZG9TZXRUb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihUT0tFTl9SRVNFVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLlRFUlRJQVJZOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDNCIDogLy8gJzsnCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggIT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdGFydCB3aXRoIHN0cmVuZ3RoLCB3ZSdsbCByZXNldCB0byB0b3AKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydG9mcnVsZXMgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGRvU2V0VG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4oVE9LRU5fUkVTRVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5TRUNPTkRBUlk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwM0MgOiAvLyAnPCcKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0YXJ0IHdpdGggc3RyZW5ndGgsIHdlJ2xsIHJlc2V0IHRvIHRvcAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0b2ZydWxlcyA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZG9TZXRUb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihUT0tFTl9SRVNFVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhpcywgZG8gYSBzY2FuIHRvIHZlcmlmeSB3aGV0aGVyIHRoaXMgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFub3RoZXIgc3RyZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8gKyAxKSA9PSAweDAwM0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8gKyAxKSA9PSAweDAwM0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsgLy8gdGhyZWUgaW4gYSByb3chCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuVEVSVElBUlk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB0d28gaW4gYSByb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5TRUNPTkRBUlk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIGp1c3Qgb25lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5QUklNQVJZOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDI2IDogLy8gJyYnCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggIT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IFRPS0VOX1JFU0VUXzsgLy8gUGF0dGVybkVudHJ5OjpSRVNFVCA9IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDA1YiA6IC8vICdbJworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3B0aW9ucyAtIHJlYWQgYW4gb3B0aW9uLCBhbmFseXplIGl0CisgICAgICAgICAgICAgICAgICAgICAgICBtX29wdGlvbkVuZF8gPSBtX3J1bGVzXy5pbmRleE9mKDB4MDA1ZCwgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9vcHRpb25FbmRfICE9IC0xKSB7IC8vICddJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgcmVzdWx0ID0gcmVhZEFuZFNldE9wdGlvbigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gPSBtX29wdGlvbkVuZF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChyZXN1bHQgJiBUT0tFTl9UT1BfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1JFU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZG9TZXRUb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiZWZvcmUgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiBiZWZvcmUgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5kaXJlY3Rpb24gbGlrZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICcmW2JlZm9yZSAyXVtmaXJzdCByZWd1bGFyXTxiJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpMHgwMDJkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKWJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKz0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgocmVzdWx0ICYgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9SRVNFVF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpMHhGRkZGKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKChyZXN1bHQgJiBUT0tFTl9CRUZPUkVfKSAhPSAwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1JFU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlID0gKGJ5dGUpKHJlc3VsdCAmIFRPS0VOX0JFRk9SRV8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMkYgOiAvLyAnLycKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhc2lucXVvdGUgPSBmYWxzZTsgLy8gaWYgd2Ugd2VyZSBjb3B5aW5nIHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLCB3ZSB3YW50IHRvIHN0b3Agbm93CisgICAgICAgICAgICAgICAgICAgICAgICBpbmNoYXJzID0gZmFsc2U7IC8vIHdlJ3JlIG5vdyBwcm9jZXNzaW5nIGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDVDIDogLy8gYmFjayBzbGFzaCBmb3IgZXNjYXBlZCBjaGFycworICAgICAgICAgICAgICAgICAgICAgICAgaXNlc2NhcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCBhIHF1b3RlLCB3ZSdyZSBnb25uYSBzdGFydCBjb3B5aW5nCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDI3IDogLy8nXCcnCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgaXMgaWxsZWdhbCB1bnRpbCB3ZSBoYXZlIGEgc3RyZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlucXVvdGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY2hhcnMpIHsgLy8gd2UncmUgZG9pbmcgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3YXNpbnF1b3RlID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKG1fc291cmNlXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfIC0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gd2UncmUgZG9pbmcgYW4gZXhwYW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc2lucXVvdGUgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0ID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3ZXh0ZW5zaW9ubGVuICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChtX3NvdXJjZV8uc3Vic3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyAtIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IG5ld2V4dGVuc2lvbmxlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgd2FzaW5xdW90ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4MDAyNykgeyAvLyBjb3B5IHRoZSBkb3VibGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5xdW90ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIC8vICdAJyBpcyBmcmVuY2ggb25seSBpZiB0aGUgc3RyZW5ndGggaXMgbm90IGN1cnJlbnRseSBzZXQKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgaXQgaXMsIGl0J3MganVzdCBhIHJlZ3VsYXIgY2hhcmFjdGVyIGluIGNvbGxhdGlvbgorICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDA0MCA6IC8vICdAJworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3B0aW9uc18ubV9pc0ZyZW5jaENvbGxhdGlvbl8gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwN0MgOiAvL3wKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgbWVhbnMgd2UgaGF2ZSBhY3R1YWxseSBiZWVuIHJlYWRpbmcgcHJlZml4IHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8gc3RvcmUgcmVhZCBjaGFyYWN0ZXJzIHRvIHRoZSBwcmVmaXggcGFydAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGNvbnRpbnVlIHJlYWRpbmcgdGhlIGNoYXJhY3RlcnMgKHByb3BlciB3YXkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdvdWxkIGJlIHRvIHJlc3RhcnQgcmVhZGluZyB0aGUgY2hhcnMsIGJ1dCBpbiB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlIHdlIHdvdWxkIGhhdmUgdG8gY29tcGxpY2F0ZSB0aGUgdG9rZW4gaGFzaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggSSBkbyBub3QgaW50ZW5kIHRvIHBsYXkgd2l0aC4gSW5zdGVhZCwgd2Ugd2lsbAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG8gcHJlZml4ZXMgd2hlbiBwcmVmaXhlcyBhcmUgZHVlIChiZWZvcmUgYWRkaW5nIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMpLgorICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhMZW5fCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY2hhcnMpIHsgLy8gd2UncmUgZG9pbmcgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3YXNpbnF1b3RlID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gbV9zb3VyY2VfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gLSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKHByZWZpeCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3YXNpbnF1b3RlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIHdoaXRlc3BhY2UgYmV0d2VlbiAnfCcgYW5kIHRoZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMjM6IC8vICcjJyAvLyB0aGlzIGlzIGEgY29tbWVudCwgc2tpcCBldmVyeXRoaW5nIHRocm91Z2ggdGhlIGVuZCBvZiBsaW5lCisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICghaXNDaGFyTmV3TGluZShjaCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDIxOiAvLyAnIScgLy8gaWdub3JpbmcgamF2YSBzZXQgdGhhaSByZW9yZGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCA6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTcGVjaWFsQ2hhcihjaCkgJiYgKGlucXVvdGUgPT0gZmFsc2UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gMHgwMDAwICYmIG1fY3VycmVudF8gKyAxID09IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jaGFycykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9jdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8rKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdleHRlbnNpb25sZW4gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQgPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh3YXNpbnF1b3RlKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoICE9IDB4MjcpIHsKKyAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LCBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVuZCB0aGUgbmV4dCBwYXJzZSB0b2tlbgorICAgICAqIEBwYXJhbSBuZXdzdHJlbmd0aCBuZXcgc3RyZW5ndGgKKyAgICAgKiBAcmV0dXJuIG9mZnNldCBpbiBydWxlcywgLTEgZm9yIGVuZCBvZiBydWxlcworICAgICAqLworICAgIHByaXZhdGUgaW50IGRvRW5kUGFyc2VOZXh0VG9rZW4oaW50IG5ld3N0cmVuZ3RoLCAvKmludCBuZXdjaGFyc2xlbiwqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB0b3AsIC8qaW50IGNoYXJzb2Zmc2V0LCovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZXh0ZW5zaW9ub2Zmc2V0LCBpbnQgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2YXJpYWJsZXRvcCwgaW50IGJlZm9yZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9PSAwICYmIHRvcCA9PSBmYWxzZSkgeworICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgIH0KKworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXyA9IG5ld3N0cmVuZ3RoOworICAgICAgICAvL21fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gY2hhcnNvZmZzZXQ7CisgICAgICAgIC8vbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPSBuZXdjaGFyc2xlbjsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25PZmZzZXRfID0gZXh0ZW5zaW9ub2Zmc2V0OworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbkxlbl8gPSBuZXdleHRlbnNpb25sZW47CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fZmxhZ3NfID0gKGNoYXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2YXJpYWJsZXRvcCA/IFRPS0VOX1ZBUklBQkxFX1RPUF9NQVNLXyA6IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAodG9wID8gVE9LRU5fVE9QX01BU0tfIDogMCkgfCBiZWZvcmUpOworICAgICAgICByZXR1cm4gbV9jdXJyZW50XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUb2tlbiBiZWZvcmUgdGhpcyBlbGVtZW50CisgICAgICogQHBhcmFtIHNvdXJjZXRva2VuCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqIEByZXR1cm4gdGhlIHRva2VuIGJlZm9yZSBzb3VyY2UgdG9rZW4KKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIHJ1bGVzIGhhdmUgdGhlIHdyb25nIHN5bnRheAorICAgICAqLworICAgIHByaXZhdGUgVG9rZW4gZ2V0VmlyZ2luQmVmb3JlKFRva2VuIHNvdXJjZXRva2VuLCBpbnQgc3RyZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyB0aGlzIGlzIGEgdmlyZ2luIGJlZm9yZSAtIHdlIG5lZWQgdG8gZmlzaCB0aGUgYW5jaG9yIGZyb20gdGhlIFVDQQorICAgICAgICBpZiAoc291cmNldG9rZW4gIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IG9mZnNldCA9IHNvdXJjZXRva2VuLm1fc291cmNlXyAmIDB4RkZGRkZGOworICAgICAgICAgICAgbV9VQ0FDb2xFSXRlcl8uc2V0VGV4dChtX3NvdXJjZV8uc3Vic3RyaW5nKG9mZnNldCwgb2Zmc2V0ICsgMSkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9VQ0FDb2xFSXRlcl8uc2V0VGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnN1YnN0cmluZyhtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gKyAxKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgYmFzZWNlID0gbV9VQ0FDb2xFSXRlcl8ubmV4dCgpICYgMHhGRkZGRkYzRjsKKyAgICAgICAgaW50IGJhc2Vjb250Y2UgPSBtX1VDQUNvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgIGlmIChiYXNlY29udGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGJhc2Vjb250Y2UgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNoID0gMDsKKworCisgICAgICAgIGlmKChiYXNlY2UgPj4+IDI0ID49IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUlOXykKKyAgICAgICAgICAgICAgICAmJiAoYmFzZWNlID4+PiAyNCA8PSAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uUFJJTUFSWV9JTVBMSUNJVF9NQVhfKSkgeyAvKiBpbXBsaWNpdHMgLSAqLworCisgICAgICAgICAgICBpbnQgcHJpbWFyeSA9IGJhc2VjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCAoYmFzZWNvbnRjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18pID4+IDE2OworICAgICAgICAgICAgaW50IHJhdyA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRSYXdGcm9tSW1wbGljaXQocHJpbWFyeSk7CisgICAgICAgICAgICBjaCA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRDb2RlUG9pbnRGcm9tUmF3KHJhdy0xKTsKKyAgICAgICAgICAgIGludCBwcmltYXJ5Q0UgPSBSdWxlQmFzZWRDb2xsYXRvci5pbXBDRUdlbl8uZ2V0SW1wbGljaXRGcm9tUmF3KHJhdy0xKTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1swXSA9IHByaW1hcnlDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCAweDA1MDU7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bMV0gPSAocHJpbWFyeUNFIDw8IDE2KSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKCdcdUZGRkUnKTsKKyAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpY2gpOworICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IDI7CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXysrOworCisgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9zb3VyY2VfID0gKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIDw8IDI0KQorICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3J1bGVzXyA9IG1fc291cmNlXzsKKyAgICAgICAgICAgIHNvdXJjZXRva2VuID0gKFRva2VuKW1faGFzaFRhYmxlXy5nZXQobV91dGlsVG9rZW5fKTsKKworICAgICAgICAgICAgaWYoc291cmNldG9rZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXSA9IG5ldyBUb2tlbkxpc3RIZWFkZXIoKTsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ0VfCisgICAgICAgICAgICAgICAgICAgID0gbV91dGlsQ0VCdWZmZXJfWzBdICYgMHhGRkZGRkYzRjsKKyAgICAgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24obV91dGlsQ0VCdWZmZXJfWzFdKSkgeworICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXworICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbENFQnVmZmVyX1sxXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2luZGlyZWN0XyA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgc291cmNldG9rZW4gPSBuZXcgVG9rZW4oKTsKKyAgICAgICAgICAgICAgICBpbml0QVJlc2V0KC0xLCBzb3VyY2V0b2tlbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSBlbHNlIHsKKworICAgICAgICAgICAgLy8gZmlyc3QgY2UgYW5kIHNlY29uZCBjZSBtX3V0aWxDRUJ1ZmZlcl8KKyAgICAgICAgICAgIGludCBpbnZwb3MgPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JTlZFUlNFX1VDQV8uZ2V0SW52ZXJzZVByZXZDRSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VjZSwgYmFzZWNvbnRjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVuZ3RoLCBtX3V0aWxDRUJ1ZmZlcl8pOworICAgICAgICAgICAgLy8gd2UgZ290IHRoZSBwcmV2aW91cyBDRS4gTm93IHdlIG5lZWQgdG8gc2VlIGlmIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KKyAgICAgICAgICAgIC8vIHRoZSB0d28gQ0VzIGlzIHJlYWxseSBvZiB0aGUgcmVxdWVzdGVkIHN0cmVuZ3RoLgorICAgICAgICAgICAgLy8gaWYgaXQncyBhIGJpZ2dlciBkaWZmZXJlbmNlICh3ZSBhc2tlZCBmb3Igc2Vjb25kYXJ5IGFuZCBnb3QgcHJpbWFyeSksIHdlCisgICAgICAgICAgICAvLyBuZWVkIHRvIG1vZGlmeSB0aGUgQ0UuCisgICAgICAgICAgICBpZihDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JTlZFUlNFX1VDQV8uZ2V0Q0VTdHJlbmd0aERpZmZlcmVuY2UoYmFzZWNlLCBiYXNlY29udGNlLCBtX3V0aWxDRUJ1ZmZlcl9bMF0sIG1fdXRpbENFQnVmZmVyX1sxXSkgPCBzdHJlbmd0aCkgeworICAgICAgICAgICAgICAgIC8vIGFkanVzdCB0aGUgc3RyZW5ndGgKKyAgICAgICAgICAgICAgICAvLyBub3cgd2UgYXJlIGluIHRoZSBzaXR1YXRpb24gd2hlcmUgb3VyIGJhc2VDRSBzaG91bGQgYWN0dWFsbHkgYmUgbW9kaWZpZWQgaW4KKyAgICAgICAgICAgICAgICAvLyBvcmRlciB0byBnZXQgdGhlIENFIGluIHRoZSByaWdodCBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICBpZihzdHJlbmd0aCA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfWzBdID0gYmFzZWNlIC0gMHgwMjAwOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHN0cmVuZ3RoID09IFVDT0xfVEVSVElBUlkKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfWzBdID0gYmFzZWNlIC0gMHgwMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24oYmFzZWNvbnRjZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bMV0gPSBiYXNlY29udGNlIC0gMHgwMjAwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBzdHJlbmd0aCA9PSBVQ09MX1RFUlRJQVJZCisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bMV0gPSBiYXNlY29udGNlIC0gMHgwMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworLyoKKyAgICAgICAgICAgIC8vIHRoZSBjb2RlIGJlbG93IHJlbGllcyBvbiBnZXR0aW5nIGEgY29kZSBwb2ludCBmcm9tIHRoZSBpbnZlcnNlIHRhYmxlLCBpbiBvcmRlciB0byBiZQorICAgICAgICAgICAgLy8gYWJsZSB0byBtZXJnZSB0aGUgc2l0dWF0aW9ucyBsaWtlICZ4IDwgOSAmW2JlZm9yZSAxXWEgPCBkLiBUaGlzIHdvbid0IHdvcms6CisgICAgICAgICAgICAvLyAxLiBUaGVyZSBhcmUgbWFueSBjb2RlIHBvaW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgQ0UKKyAgICAgICAgICAgIC8vIDIuIFRoZSBDRSB0byBjb2RlcG9pbnQgdGFibGUgKHRoaW5ncyBwb2ludGVkIHRvIGJ5IENFVGFibGVbMyppbnZQb3MrMl0gYXJlIGJyb2tlbi4KKyAgICAgICAgICAgIC8vIEFsc28sIGluIGNhc2Ugd2hlbiB0aGVyZSBpcyBubyBlcXVpdmFsZW50IHN0cmVuZ3RoIGJlZm9yZSBhbiBlbGVtZW50LCB3ZSBoYXZlIHRvIGFjdHVhbGx5CisgICAgICAgICAgICAvLyBjb25zdHJ1Y3Qgb25lLiBGb3IgZXhhbXBsZSwgJltiZWZvcmUgMl1hIDw8IHggd29uJ3QgcmVzdWx0IGluIHggPDwgYSwgYmVjYXVzZSB0aGUgZWxlbWVudAorICAgICAgICAgICAgLy8gYmVmb3JlIGEgaXMgYSBwcmltYXJ5IGRpZmZlcmVuY2UuCisgICAgICAgICAgICBjaCA9IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLklOVkVSU0VfVUNBXy5tX3RhYmxlX1szICogaW52cG9zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAyXTsKKyAgICAgICAgICAgIGlmICgoY2ggJiAgSU5WRVJTRV9TSVpFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGNoICYgSU5WRVJTRV9PRkZTRVRfTUFTS187CisgICAgICAgICAgICAgICAgY2ggPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JTlZFUlNFX1VDQV8ubV9jb250aW51YXRpb25zX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKWNoKTsKKyAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArKzsKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9leHRyYUN1cnJlbnRfIC0gMTsKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gMTsKKworICAgICAgICAgICAgLy8gV2UgZ290IGFuIFVDQSBiZWZvcmUuIEhvd2V2ZXIsIHRoaXMgbWlnaHQgaGF2ZSBiZWVuIHRhaWxvcmVkLgorICAgICAgICAgICAgLy8gZXhhbXBsZToKKyAgICAgICAgICAgIC8vICZcdTMwY2EgPSBcdTMwNmEKKyAgICAgICAgICAgIC8vICZbYmVmb3JlIDNdXHUzMDZhPDw8XHUzMDZhfFx1MzA5ZAorCisgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9zb3VyY2VfID0gKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIDw8IDI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9ydWxlc18gPSBtX3NvdXJjZV87CisgICAgICAgICAgICBzb3VyY2V0b2tlbiA9IChUb2tlbiltX2hhc2hUYWJsZV8uZ2V0KG1fdXRpbFRva2VuXyk7CisqLworCisgICAgICAgICAgICAvLyBoZXJlIGlzIGhvdyBpdCBzaG91bGQgYmUuIFRoZSBzaXR1YXRpb24gc3VjaCBhcyAmW2JlZm9yZSAxXWEgPCB4LCBzaG91bGQgYmUKKyAgICAgICAgICAgIC8vIHJlc29sdmVkIGV4YWN0bHkgYXMgaWYgd2Ugd3JvdGUgJmEgPiB4LgorICAgICAgICAgICAgLy8gdGhlcmVmb3JlLCBJIGRvbid0IHJlYWxseSBjYXJlIGlmIHRoZSBVQ0EgdmFsdWUgYmVmb3JlIGEgaGFzIGJlZW4gY2hhbmdlZC4KKyAgICAgICAgICAgIC8vIEhvd2V2ZXIsIEkgZG8gY2FyZSBpZiB0aGUgc3RyZW5ndGggYmV0d2VlbiBteSBlbGVtZW50IGFuZCB0aGUgcHJldmlvdXMgZWxlbWVudAorICAgICAgICAgICAgLy8gaXMgYmlnZ2VyIHRoZW4gSSB3YW50ZWQuIFNvLCBpZiBDRSA8IGJhc2VDRSBhbmQgSSB3YW50ZWQgJltiZWZvcmUgMl0sIHRoZW4gaSdsbAorICAgICAgICAgICAgLy8gaGF2ZSB0byBjb25zdHJ1Y3QgdGhlIGJhc2UgQ0UuCisKKyAgICAgICAgICAgIC8vIGlmIHdlIGZvdW5kIGEgdGFpbG9yZWQgdGhpbmcsIHdlIGhhdmUgdG8gdXNlIHRoZSBVQ0EgdmFsdWUgYW5kCisgICAgICAgICAgICAvLyBjb25zdHJ1Y3QgYSBuZXcgcmVzZXQgdG9rZW4gd2l0aCBjb25zdHJ1Y3RlZCBuYW1lCisgICAgICAgICAgICAvL2lmIChzb3VyY2V0b2tlbiAhPSBudWxsICYmIHNvdXJjZXRva2VuLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXykgeworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciB0byB3aGljaCB3ZSB3YW50IHRvIGFuY2hvciBpcyBhbHJlYWR5IHRhaWxvcmVkLgorICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY29uc3RydWN0IGEgbmV3IHRva2VuIHdoaWNoIHdpbGwgYmUgdGhlIGFuY2hvciBwb2ludAorICAgICAgICAgICAgICAgIC8vbV9zb3VyY2VfLnNldENoYXJBdChtX2V4dHJhQ3VycmVudF8gLSAxLCAnXHVGRkZFJyk7CisgICAgICAgICAgICAgICAgLy9tX3NvdXJjZV8uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAvL21fZXh0cmFDdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAvL21fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICsrOworICAgICAgICAgICAgICAgIC8vIGdyYWIgYmVmb3JlCisgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gLT0gMTA7CisgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKz0gMTA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dID0gbmV3IFRva2VuTGlzdEhlYWRlcigpOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbENFQnVmZmVyX1swXSAmIDB4RkZGRkZGM0Y7CisgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKG1fdXRpbENFQnVmZmVyX1sxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3V0aWxDRUJ1ZmZlcl9bMV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9pbmRpcmVjdF8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBzb3VyY2V0b2tlbiA9IG5ldyBUb2tlbigpOworICAgICAgICAgICAgICAgIGluaXRBUmVzZXQoLTEsIHNvdXJjZXRva2VuKTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzb3VyY2V0b2tlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzaW5nIERlc2NyaXB0aW9uLgorICAgICAqIDEuIEJ1aWxkIGEgbV9saXN0SGVhZGVyXy4gRWFjaCBsaXN0IGhhcyBhIGhlYWRlciwgd2hpY2ggY29udGFpbnMgdHdvIGxpc3RzCisgICAgICogKHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSksIGEgcmVzZXQgdG9rZW4sIGEgYmFzZUNFLCBuZXh0Q0UsIGFuZAorICAgICAqIHByZXZpb3VzQ0UuIFRoZSBsaXN0cyBhbmQgcmVzZXQgbWF5IGJlIG51bGwuCisgICAgICogMi4gQXMgeW91IHByb2Nlc3MsIHlvdSBrZWVwIGEgTEFTVCBwb2ludGVyIHRoYXQgcG9pbnRzIHRvIHRoZSBsYXN0IHRva2VuCisgICAgICogeW91IGhhbmRsZWQuCisgICAgICogQHBhcmFtIGV4cGFuZCBzdHJpbmcgb2Zmc2V0LCAtMSBmb3IgbnVsbCBzdHJpbmdzCisgICAgICogQHBhcmFtIHRhcmdldFRva2VuIHRva2VuIHRvIHVwZGF0ZQorICAgICAqIEByZXR1cm4gZXhwYW5kbmV4dCBvZmZzZXQKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIHJ1bGVzIHN5bnRheCBmYWlsZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBpbml0QVJlc2V0KGludCBleHBhbmQsIFRva2VuIHRhcmdldFRva2VuKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGlmIChtX3Jlc3VsdExlbmd0aF8gPT0gbV9saXN0SGVhZGVyXy5sZW5ndGggLSAxKSB7CisgICAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCB0aGlzIHdvbid0IHdvcmssIGFzIHdlIHN0b3JlIGFkZHJlc3NlcyBvZiBsaHMgaW4KKyAgICAgICAgICAgIC8vIHRva2VuCisgICAgICAgICAgICBUb2tlbkxpc3RIZWFkZXIgdGVtcFtdID0gbmV3IFRva2VuTGlzdEhlYWRlclttX3Jlc3VsdExlbmd0aF8gPDwgMV07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fbGlzdEhlYWRlcl8sIDAsIHRlbXAsIDAsIG1fcmVzdWx0TGVuZ3RoXyArIDEpOworICAgICAgICAgICAgbV9saXN0SGVhZGVyXyA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgLy8gZG8gdGhlIHJlc2V0IHRoaW5nCisgICAgICAgIHRhcmdldFRva2VuLm1fcnVsZXNfID0gbV9zb3VyY2VfOworICAgICAgICB0YXJnZXRUb2tlbi5tX3NvdXJjZV8gPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICB0YXJnZXRUb2tlbi5tX2V4cGFuc2lvbl8gPSBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbkxlbl8gPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbk9mZnNldF87CisgICAgICAgIC8vIGtlZXAgdGhlIGZsYWdzIGFyb3VuZCBzbyB0aGF0IHdlIGtub3cgYWJvdXQgYmVmb3JlCisgICAgICAgIHRhcmdldFRva2VuLm1fZmxhZ3NfID0gbV9wYXJzZWRUb2tlbl8ubV9mbGFnc187CisKKyAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4T2Zmc2V0XyAhPSAwKSB7CisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYWxzbyBoYW5kbGUgcmV2ZXJzZQorICAgICAgICB0YXJnZXRUb2tlbi5tX3BvbGFyaXR5XyA9IFRPS0VOX1BPTEFSSVRZX1BPU0lUSVZFXzsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9zdHJlbmd0aF8gPSBUT0tFTl9SRVNFVF87CisgICAgICAgIHRhcmdldFRva2VuLm1fbmV4dF8gPSBudWxsOworICAgICAgICB0YXJnZXRUb2tlbi5tX3ByZXZpb3VzXyA9IG51bGw7CisgICAgICAgIHRhcmdldFRva2VuLm1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9leHBDRUxlbmd0aF8gPSAwOworICAgICAgICB0YXJnZXRUb2tlbi5tX2xpc3RIZWFkZXJfID0gbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dOworICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9maXJzdF8gPSBudWxsOworICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9sYXN0XyA9IG51bGw7CisgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2ZpcnN0XyA9IG51bGw7CisgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2xhc3RfID0gbnVsbDsKKyAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcmVzZXRfID0gdGFyZ2V0VG9rZW47CisKKyAgICAgICAgLyogMyBDb25zaWRlciBlYWNoIGl0ZW06IHJlbGF0aW9uLCBzb3VyY2UsIGFuZCBleHBhbnNpb246CisgICAgICAgICAqIGUuZy4gLi4uPCB4IC8geSAuLi4KKyAgICAgICAgICogRmlyc3QgY29udmVydCBhbGwgZXhwYW5zaW9ucyBpbnRvIG5vcm1hbCBmb3JtLiBFeGFtcGxlczoKKyAgICAgICAgICogSWYgInh5IiBkb2Vzbid0IG9jY3VyIGVhcmxpZXIgaW4gdGhlIGxpc3Qgb3IgaW4gdGhlIFVDQSwgY29udmVydAorICAgICAgICAgKiAmeHkgKiBjICogZCAqIC4uLiBpbnRvICZ4ICogYy95ICogZCAqIC4uLgorICAgICAgICAgKiBOb3RlOiByZXNldCB2YWx1ZXMgY2FuIG5ldmVyIGhhdmUgZXhwYW5zaW9ucywgYWx0aG91Z2ggdGhleSBjYW4KKyAgICAgICAgICogY2F1c2UgdGhlIHZlcnkgbmV4dCBpdGVtIHRvIGhhdmUgb25lLiBUaGV5IG1heSBiZSBjb250cmFjdGlvbnMsIGlmCisgICAgICAgICAqIHRoZXkgYXJlIGZvdW5kIGVhcmxpZXIgaW4gdGhlIGxpc3QuCisgICAgICAgICAqLworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaWYgKGV4cGFuZCA+IDApIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhbiBleHBhbnNpb24KKyAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA+IDEpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRUb2tlbi5tX3NvdXJjZV8gPSAoKGV4cGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAyNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gLSBleHBhbmQpIDw8IDI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXhwYW5kOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbV9yZXN1bHRMZW5ndGhfICsrOworICAgICAgICBtX2hhc2hUYWJsZV8ucHV0KHRhcmdldFRva2VuLCB0YXJnZXRUb2tlbik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIGFuIGNoYXJhY3RlciBpcyBzcGVjaWFsCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgc3BlY2lhbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNTcGVjaWFsQ2hhcihjaGFyIGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjaCA8PSAweDAwMkYgJiYgY2ggPj0gMHgwMDIwKSB8fCAoY2ggPD0gMHgwMDNGICYmIGNoID49IDB4MDAzQSkKKyAgICAgICAgICAgICAgIHx8IChjaCA8PSAweDAwNjAgJiYgY2ggPj0gMHgwMDVCKQorICAgICAgICAgICAgICAgfHwgKGNoIDw9IDB4MDA3RSAmJiBjaCA+PSAweDAwN0QpIHx8IGNoID09IDB4MDA3QjsKKyAgICB9CisKKyAgICBwcml2YXRlCisgICAgVW5pY29kZVNldCByZWFkQW5kU2V0VW5pY29kZVNldChTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgIHdoaWxlKHNvdXJjZS5jaGFyQXQoc3RhcnQpICE9ICdbJykgeyAvKiBhZHZhbmNlIHdoaWxlIHdlIGZpbmQgdGhlIGZpcnN0ICdbJyAqLworICAgICAgICBzdGFydCsrOworICAgICAgfQorICAgICAgLy8gbm93IHdlIG5lZWQgdG8gZ2V0IGEgYmFsYW5jZWQgc2V0IG9mICdbXScuIFRoZSBwcm9ibGVtIGlzIHRoYXQgYSBzZXQgY2FuIGhhdmUKKyAgICAgIC8vIG1hbnksIGFuZCAqZW5kIHBvaW50IHRvIHRoZSBmaXJzdCBjbG9zaW5nICdbJworICAgICAgaW50IG5vT3BlbkJyYWNlcyA9IDE7CisgICAgICBpbnQgY3VycmVudCA9IDE7IC8vIHNraXAgdGhlIG9wZW5pbmcgYnJhY2UKKyAgICAgIHdoaWxlKHN0YXJ0K2N1cnJlbnQgPCBzb3VyY2UubGVuZ3RoKCkgJiYgbm9PcGVuQnJhY2VzICE9IDApIHsKKyAgICAgICAgaWYoc291cmNlLmNoYXJBdChzdGFydCtjdXJyZW50KSA9PSAnWycpIHsKKyAgICAgICAgICBub09wZW5CcmFjZXMrKzsKKyAgICAgICAgfSBlbHNlIGlmKHNvdXJjZS5jaGFyQXQoc3RhcnQrY3VycmVudCkgPT0gJ10nKSB7IC8vIGNsb3NpbmcgYnJhY2UKKyAgICAgICAgICBub09wZW5CcmFjZXMtLTsKKyAgICAgICAgfQorICAgICAgICBjdXJyZW50Kys7CisgICAgICB9CisgICAgICAvL2ludCBuZXh0QnJhY2UgPSAtMTsKKworICAgICAgaWYobm9PcGVuQnJhY2VzICE9IDAgfHwgKC8qbmV4dEJyYWNlID0qLyBzb3VyY2UuaW5kZXhPZigiXSIsIHN0YXJ0K2N1cnJlbnQpIC8qJ10nKi8pID09IC0xKSB7CisgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIHN0YXJ0KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldChzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LCBzdGFydCtjdXJyZW50KSk7IC8vdXNldF9vcGVuUGF0dGVybihzdGFydCwgY3VycmVudCk7CisgICAgfQorCisKKyAgICAvKiogaW4gQywgb3B0aW9uYXJnIGlzIHBhc3NlZCBieSByZWZlcmVuY2UgdG8gZnVuY3Rpb24uCisgICAgICogIFdlIHVzZSBhIHByaXZhdGUgaW50IHRvIHNpbXVsYXRlIHRoaXMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9vcHRpb25hcmdfID0gMDsKKworICAgIHByaXZhdGUgaW50IHJlYWRPcHRpb24oU3RyaW5nIHJ1bGVzLCBpbnQgc3RhcnQsIGludCBvcHRpb25lbmQpCisgICAgeworICAgICAgICBtX29wdGlvbmFyZ18gPSAwOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlIChpIDwgUlVMRVNfT1BUSU9OU18ubGVuZ3RoKSB7CisgICAgICAgICAgICBTdHJpbmcgb3B0aW9uID0gUlVMRVNfT1BUSU9OU19baV0ubV9uYW1lXzsKKyAgICAgICAgICAgIGludCBvcHRpb25sZW5ndGggPSBvcHRpb24ubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAocnVsZXMubGVuZ3RoKCkgPiBzdGFydCArIG9wdGlvbmxlbmd0aAorICAgICAgICAgICAgICAgICYmIG9wdGlvbi5lcXVhbHNJZ25vcmVDYXNlKHJ1bGVzLnN1YnN0cmluZyhzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgb3B0aW9ubGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAob3B0aW9uZW5kIC0gc3RhcnQgPiBvcHRpb25sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9vcHRpb25hcmdfID0gc3RhcnQgKyBvcHRpb25sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IG9mIHRoZSBvcHRpb25zLCBza2lwIHNwYWNlCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtX29wdGlvbmFyZ18gPCBvcHRpb25lbmQgJiYgVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UocnVsZXMuY2hhckF0KG1fb3B0aW9uYXJnXykpKQorICAgICAgICAgICAgICAgICAgICB7ICAgLy8gZWF0IHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3B0aW9uYXJnXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgKys7CisgICAgICAgIH0KKyAgICAgICAgaWYoaSA9PSBSVUxFU19PUFRJT05TXy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGkgPSAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmVhZHMgYW5kIHNldCBjb2xsYXRpb24gb3B0aW9ucworICAgICAqIEByZXR1cm4gVE9LRU5fU1VDQ0VTUyBpZiBvcHRpb24gaXMgc2V0IGNvcnJlY3QsIDAgb3RoZXJ3aXNlCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiB0aHJvd24gd2hlbiBvcHRpb25zIGluIHJ1bGVzIGFyZSB3cm9uZworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSByZWFkQW5kU2V0T3B0aW9uKCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBpbnQgc3RhcnQgPSBtX2N1cnJlbnRfICsgMTsgLy8gc2tpcCBvcGVuaW5nICdbJworICAgICAgICBpbnQgaSA9IHJlYWRPcHRpb24obV9ydWxlc18sIHN0YXJ0LCBtX29wdGlvbkVuZF8pOworCisgICAgICAgIGludCBvcHRpb25hcmcgPSBtX29wdGlvbmFyZ187CisKKyAgICAgICAgaWYgKGkgPCAwKSB7CisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaSA8IDcpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25hcmcgIT0gMCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zXy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqICsrKSB7CisgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3VibmFtZSA9IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uc19bal07CisgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IG9wdGlvbmFyZyArIHN1Ym5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9ydWxlc18ubGVuZ3RoKCkgPiBzaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3VibmFtZS5lcXVhbHNJZ25vcmVDYXNlKG1fcnVsZXNfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYXJnLCBzaXplKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcHRpb25zKG1fb3B0aW9uc18sIFJVTEVTX09QVElPTlNfW2ldLm1fYXR0cmlidXRlXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25BdHRyaWJ1dGVWYWx1ZXNfW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXzsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBvcHRpb25hcmcpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGkgPT0gNykgeyAvLyB2YXJpYWJsZSB0b3AKKyAgICAgICAgICAgIHJldHVybiBUT0tFTl9TVUNDRVNTX01BU0tfIHwgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGkgPT0gOCkgeyAvLyByZWFyYW5nZQorICAgICAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaSA9PSA5KSB7IC8vIGJlZm9yZQorICAgICAgICAgICAgaWYgKG9wdGlvbmFyZyAhPSAwKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdWJuYW1lID0gUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zX1tqXTsKKyAgICAgICAgICAgICAgICAgICAgIGludCBzaXplID0gb3B0aW9uYXJnICsgc3VibmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3J1bGVzXy5sZW5ndGgoKSA+IHNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJuYW1lLmVxdWFsc0lnbm9yZUNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcnVsZXNfLnN1YnN0cmluZyhvcHRpb25hcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYXJnICsgc3VibmFtZS5sZW5ndGgoKSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChieXRlKShUT0tFTl9TVUNDRVNTX01BU0tfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbkF0dHJpYnV0ZVZhbHVlc19bal0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIDEpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG9wdGlvbmFyZyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaSA9PSAxMCkgeyAgLy8gdG9wLCB3ZSBhcmUgZ29pbmcgdG8gaGF2ZSBhbiBhcnJheSB3aXRoCisgICAgICAgICAgICAvLyBzdHJ1Y3R1cmVzIG9mIGxpbWl0IENFcyBpbmRleCB0byB0aGlzIGFycmF5IHdpbGwgYmUKKyAgICAgICAgICAgIC8vIHNyYy0+cGFyc2VkVG9rZW4uaW5kaXJlY3RJbmRleAorICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDA7CisgICAgICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXyB8IFRPS0VOX1RPUF9NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpIDwgMTMpIHsgLy8gZmlyc3QsIGxhc3QKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zXy5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3VibmFtZSA9IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uc19bal07CisgICAgICAgICAgICAgICAgaW50IHNpemUgPSBvcHRpb25hcmcgKyBzdWJuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGlmIChtX3J1bGVzXy5sZW5ndGgoKSA+IHNpemUKKyAgICAgICAgICAgICAgICAgICAgJiYgc3VibmFtZS5lcXVhbHNJZ25vcmVDYXNlKG1fcnVsZXNfLnN1YnN0cmluZyhvcHRpb25hcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSAoY2hhcikoaSAtIDEwICsgKGogPDwgMSkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXyB8IFRPS0VOX1RPUF9NQVNLXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBvcHRpb25hcmcpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoaSA9PSAxMyB8fCBpID09IDE0KSB7IC8vIGNvcHkgYW5kIHJlbW92ZSBhcmUgaGFuZGxlZCBiZWZvcmUgbm9ybWFsaXphdGlvbgorICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBtb3ZlIGVuZCBoZXJlCisgICAgICAgICAgICBpbnQgbm9PcGVuQnJhY2VzID0gMTsKKyAgICAgICAgICAgIG1fY3VycmVudF8rKzsgLy8gc2tpcCBvcGVuaW5nIGJyYWNlCisgICAgICAgICAgICB3aGlsZShtX2N1cnJlbnRfIDwgbV9zb3VyY2VfLmxlbmd0aCgpICYmIG5vT3BlbkJyYWNlcyAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYobV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKSA9PSAnWycpIHsKKyAgICAgICAgICAgICAgICAgIG5vT3BlbkJyYWNlcysrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8pID09ICddJykgeyAvLyBjbG9zaW5nIGJyYWNlCisgICAgICAgICAgICAgICAgICBub09wZW5CcmFjZXMtLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9jdXJyZW50XysrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9vcHRpb25FbmRfID0gbV9jdXJyZW50Xy0xOworICAgICAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBvcHRpb25hcmcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBUT0tFTl9TVUNDRVNTX01BU0tfOyAvLyB3ZSB3aWxsIG5ldmVyIHJlYWNoIGhlcmUuCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGNvbGxhdGlvbiBvcHRpb24KKyAgICAgKiBAcGFyYW0gb3B0aW9uc2V0IG9wdGlvbiBzZXQgdG8gc2V0CisgICAgICogQHBhcmFtIGF0dHJpYnV0ZSB0eXBlIHRvIHNldAorICAgICAqIEBwYXJhbSB2YWx1ZSBhdHRyaWJ1dGUgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0T3B0aW9ucyhPcHRpb25TZXQgb3B0aW9uc2V0LCBpbnQgYXR0cmlidXRlLCBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkgeworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFXyA6CisgICAgICAgICAgICAgICAgb3B0aW9uc2V0Lm1faXNIaXJhZ2FuYTRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAodmFsdWUgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkZSRU5DSF9DT0xMQVRJT05fIDoKKyAgICAgICAgICAgICAgICBvcHRpb25zZXQubV9pc0ZyZW5jaENvbGxhdGlvbl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAodmFsdWUgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkFMVEVSTkFURV9IQU5ETElOR18gOgorICAgICAgICAgICAgICAgIG9wdGlvbnNldC5tX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICh2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5TSElGVEVEXyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5DQVNFX0ZJUlNUXyA6CisgICAgICAgICAgICAgICAgb3B0aW9uc2V0Lm1fY2FzZUZpcnN0XyA9IHZhbHVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQ0FTRV9MRVZFTF8gOgorICAgICAgICAgICAgICAgIG9wdGlvbnNldC5tX2lzQ2FzZUxldmVsXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICh2YWx1ZSA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTk9STUFMSVpBVElPTl9NT0RFXyA6CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXykgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvcHRpb25zZXQubV9kZWNvbXBvc2l0aW9uXyA9IHZhbHVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuU1RSRU5HVEhfIDoKKyAgICAgICAgICAgICAgICBvcHRpb25zZXQubV9zdHJlbmd0aF8gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQgOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisKKyAgICBVbmljb2RlU2V0IGdldFRhaWxvcmVkU2V0KCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBib29sZWFuIHN0YXJ0T2ZSdWxlcyA9IHRydWU7CisgICAgICAgIFVuaWNvZGVTZXQgdGFpbG9yZWQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBTdHJpbmcgcGF0dGVybjsKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIiIpOworCisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fc3RyZW5ndGhfID0gVE9LRU5fVU5TRVRfOworICAgICAgICBpbnQgc291cmNlbGltaXQgPSBtX3NvdXJjZV8ubGVuZ3RoKCk7CisgICAgICAgIC8vaW50IGV4cGFuZE5leHQgPSAwOworCisgICAgICAgIHdoaWxlIChtX2N1cnJlbnRfIDwgc291cmNlbGltaXQpIHsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfID0gMDsKKyAgICAgICAgaWYgKHBhcnNlTmV4dFRva2VuKHN0YXJ0T2ZSdWxlcykgPCAwKSB7CisgICAgICAgICAgICAvLyB3ZSBoYXZlIHJlYWNoZWQgdGhlIGVuZAorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgc3RhcnRPZlJ1bGVzID0gZmFsc2U7CisgICAgICAgIC8vIFRoZSBpZGVhIGlzIHRvIHRva2VuaXplIHRoZSBydWxlIHNldC4gRm9yIGVhY2ggbm9uLXJlc2V0IHRva2VuLAorICAgICAgICAvLyB3ZSBhZGQgYWxsIHRoZSBjYW5vbmljYWx5IGVxdWl2YWxlbnQgRkNEIHNlcXVlbmNlcworICAgICAgICAgICAgaWYobV9wYXJzZWRUb2tlbl8ubV9zdHJlbmd0aF8gIT0gVE9LRU5fUkVTRVRfKSB7CisgICAgICAgICAgICAgICAgaXQuc2V0U291cmNlKG1fc291cmNlXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8sCisgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8rbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8pKTsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuID0gaXQubmV4dCgpOworICAgICAgICAgICAgICAgIHdoaWxlKHBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhwYXR0ZXJuLCBOb3JtYWxpemVyLkZDRCwwKSAhPSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWlsb3JlZC5hZGQocGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhaWxvcmVkOworICAgIH0KKworICAgIGZpbmFsIHByaXZhdGUgdm9pZCBleHRyYWN0U2V0c0Zyb21SdWxlcyhTdHJpbmcgcnVsZXMpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICBpbnQgb3B0aW9uTnVtYmVyID0gLTE7CisgICAgICBpbnQgc2V0U3RhcnQgPSAwOworICAgICAgaW50IGkgPSAwOworICAgICAgd2hpbGUoaSA8IHJ1bGVzLmxlbmd0aCgpKSB7CisgICAgICAgIGlmKHJ1bGVzLmNoYXJBdChpKSA9PSAweDAwNUIpIHsKKyAgICAgICAgICBvcHRpb25OdW1iZXIgPSByZWFkT3B0aW9uKHJ1bGVzLCBpKzEsIHJ1bGVzLmxlbmd0aCgpKTsKKyAgICAgICAgICBzZXRTdGFydCA9IG1fb3B0aW9uYXJnXzsKKyAgICAgICAgICBpZihvcHRpb25OdW1iZXIgPT0gMTMpIHsgLyogY29weSAtIHBhcnRzIG9mIFVDQSB0byB0YWlsb3JpbmcgKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgbmV3U2V0ID0gcmVhZEFuZFNldFVuaWNvZGVTZXQocnVsZXMsIHNldFN0YXJ0KTsKKyAgICAgICAgICAgICAgaWYobV9jb3B5U2V0XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9jb3B5U2V0XyA9IG5ld1NldDsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvcHlTZXRfLmFkZEFsbChuZXdTZXQpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfSBlbHNlIGlmKG9wdGlvbk51bWJlciA9PSAxNCkgeworICAgICAgICAgICAgVW5pY29kZVNldCBuZXdTZXQgPSByZWFkQW5kU2V0VW5pY29kZVNldChydWxlcywgc2V0U3RhcnQpOworICAgICAgICAgICAgICBpZihtX3JlbW92ZVNldF8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fcmVtb3ZlU2V0XyA9IG5ld1NldDsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX3JlbW92ZVNldF8uYWRkQWxsKG5ld1NldCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaSsrOworICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkMzkzMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvci5qYXZhCkBAIC0wLDAgKzEsMTAzOCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURlYnVnOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCisvKioKKyogPHA+Q29sbGF0b3IgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSBzdHJpbmcgY29tcGFyaXNvbi4gQSBjb25jcmV0ZQorKiBzdWJjbGFzcywgUnVsZUJhc2VkQ29sbGF0b3IsIGFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBjb2xsYXRpb24KKyogb3JkZXJpbmcgYnkgdGhlIHVzZSBvZiBydWxlIHNldHMuPC9wPgorKgorKiA8cD5Gb2xsb3dpbmcgdGhlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZz5Vbmljb2RlCisqIENvbnNvcnRpdW08L2E+J3Mgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZQorKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+IFVuaWNvZGUgQ29sbGF0aW9uCisqIEFsZ29yaXRobSAoVUNBKTwvYT4sIHRoZXJlIGFyZSA1IGRpZmZlcmVudCBsZXZlbHMgb2Ygc3RyZW5ndGggdXNlZAorKiBpbiBjb21wYXJpc29uczoKKyoKKyogPHVsPgorKiA8bGk+UFJJTUFSWSBzdHJlbmd0aDogVHlwaWNhbGx5LCB0aGlzIGlzIHVzZWQgdG8gZGVub3RlIGRpZmZlcmVuY2VzIGJldHdlZW4KKyogICAgIGJhc2UgY2hhcmFjdGVycyAoZm9yIGV4YW1wbGUsICJhIiAmbHQ7ICJiIikuCisqICAgICBJdCBpcyB0aGUgc3Ryb25nZXN0IGRpZmZlcmVuY2UuIEZvciBleGFtcGxlLCBkaWN0aW9uYXJpZXMgYXJlIGRpdmlkZWQKKyogICAgIGludG8gZGlmZmVyZW50IHNlY3Rpb25zIGJ5IGJhc2UgY2hhcmFjdGVyLgorKiA8bGk+U0VDT05EQVJZIHN0cmVuZ3RoOiBBY2NlbnRzIGluIHRoZSBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHNlY29uZGFyeQorKiAgICAgZGlmZmVyZW5jZXMgKGZvciBleGFtcGxlLCAiYXMiICZsdDsgIiZhZ3JhdmU7cyIgJmx0OyAiYXQiKS4gT3RoZXIKKyogICAgIGRpZmZlcmVuY2VzCisqICAgICBiZXR3ZWVuIGxldHRlcnMgY2FuIGFsc28gYmUgY29uc2lkZXJlZCBzZWNvbmRhcnkgZGlmZmVyZW5jZXMsIGRlcGVuZGluZworKiAgICAgb24gdGhlIGxhbmd1YWdlLiBBIHNlY29uZGFyeSBkaWZmZXJlbmNlIGlzIGlnbm9yZWQgd2hlbiB0aGVyZSBpcyBhCisqICAgICBwcmltYXJ5IGRpZmZlcmVuY2UgYW55d2hlcmUgaW4gdGhlIHN0cmluZ3MuCisqIDxsaT5URVJUSUFSWSBzdHJlbmd0aDogVXBwZXIgYW5kIGxvd2VyIGNhc2UgZGlmZmVyZW5jZXMgaW4gY2hhcmFjdGVycyBhcmUKKyogICAgIGRpc3Rpbmd1aXNoZWQgYXQgdGVydGlhcnkgc3RyZW5ndGggKGZvciBleGFtcGxlLCAiYW8iICZsdDsgIkFvIiAmbHQ7CisqICAgICAiYSZvZ3JhdmU7IikuIEluIGFkZGl0aW9uLCBhIHZhcmlhbnQgb2YgYSBsZXR0ZXIgZGlmZmVycyBmcm9tIHRoZSBiYXNlCisqICAgICBmb3JtIG9uIHRoZSB0ZXJ0aWFyeSBzdHJlbmd0aCAoc3VjaCBhcyAiQSIgYW5kICImIzkzOTg7IikuIEFub3RoZXIKKyogICAgIGV4YW1wbGUgaXMgdGhlCisqICAgICBkaWZmZXJlbmNlIGJldHdlZW4gbGFyZ2UgYW5kIHNtYWxsIEthbmEuIEEgdGVydGlhcnkgZGlmZmVyZW5jZSBpcyBpZ25vcmVkCisqICAgICB3aGVuIHRoZXJlIGlzIGEgcHJpbWFyeSBvciBzZWNvbmRhcnkgZGlmZmVyZW5jZSBhbnl3aGVyZSBpbiB0aGUgc3RyaW5ncy4KKyogPGxpPlFVQVRFUk5BUlkgc3RyZW5ndGg6IFdoZW4gcHVuY3R1YXRpb24gaXMgaWdub3JlZAorKiAgICAgPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfQ29uY2VwdHMuaHRtbCNJZ25vcmluZ19QdW5jdHVhdGlvbiI+CisqICAgICAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkKKyogICAgIHN0cmVuZ3RoLCBhbiBhZGRpdGlvbmFsIHN0cmVuZ3RoIGxldmVsIGNhbgorKiAgICAgYmUgdXNlZCB0byBkaXN0aW5ndWlzaCB3b3JkcyB3aXRoIGFuZCB3aXRob3V0IHB1bmN0dWF0aW9uIChmb3IgZXhhbXBsZSwKKyogICAgICJhYiIgJmx0OyAiYS1iIiAmbHQ7ICJhQiIpLgorKiAgICAgVGhpcyBkaWZmZXJlbmNlIGlzIGlnbm9yZWQgd2hlbiB0aGVyZSBpcyBhIFBSSU1BUlksIFNFQ09OREFSWSBvciBURVJUSUFSWQorKiAgICAgZGlmZmVyZW5jZS4gVGhlIFFVQVRFUk5BUlkgc3RyZW5ndGggc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiBpZ25vcmluZworKiAgICAgcHVuY3R1YXRpb24gaXMgcmVxdWlyZWQuCisqIDxsaT5JREVOVElDQUwgc3RyZW5ndGg6CisqICAgICBXaGVuIGFsbCBvdGhlciBzdHJlbmd0aHMgYXJlIGVxdWFsLCB0aGUgSURFTlRJQ0FMIHN0cmVuZ3RoIGlzIHVzZWQgYXMgYQorKiAgICAgdGllYnJlYWtlci4gVGhlIFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZXMgb2YgdGhlIE5GRCBmb3JtIG9mIGVhY2ggc3RyaW5nCisqICAgICBhcmUgY29tcGFyZWQsIGp1c3QgaW4gY2FzZSB0aGVyZSBpcyBubyBkaWZmZXJlbmNlLgorKiAgICAgRm9yIGV4YW1wbGUsIEhlYnJldyBjYW50ZWxsYXRpb24gbWFya3MgYXJlIG9ubHkgZGlzdGluZ3Vpc2hlZCBhdCB0aGlzCisqICAgICBzdHJlbmd0aC4gVGhpcyBzdHJlbmd0aCBzaG91bGQgYmUgdXNlZCBzcGFyaW5nbHksIGFzIG9ubHkgY29kZSBwb2ludAorKiAgICAgdmFsdWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0d28gc3RyaW5ncyBpcyBhbiBleHRyZW1lbHkgcmFyZSBvY2N1cnJlbmNlLgorKiAgICAgVXNpbmcgdGhpcyBzdHJlbmd0aCBzdWJzdGFudGlhbGx5IGRlY3JlYXNlcyB0aGUgcGVyZm9ybWFuY2UgZm9yIGJvdGgKKyogICAgIGNvbXBhcmlzb24gYW5kIGNvbGxhdGlvbiBrZXkgZ2VuZXJhdGlvbiBBUElzLiBUaGlzIHN0cmVuZ3RoIGFsc28KKyogICAgIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgY29sbGF0aW9uIGtleS4KKyogPC91bD4KKyoKKyogVW5saWtlIHRoZSBKREssIElDVTRKJ3MgQ29sbGF0b3IgZGVhbHMgb25seSB3aXRoIDIgZGVjb21wb3NpdGlvbiBtb2RlcywKKyogdGhlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIG1vZGUgYW5kIG9uZSB0aGF0IGRvZXMgbm90IHVzZSBhbnkgZGVjb21wb3NpdGlvbi4KKyogVGhlIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiBtb2RlLCBqYXZhLnRleHQuQ29sbGF0b3IuRlVMTF9ERUNPTVBPU0lUSU9OCisqIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZS4gSWYgdGhlIGNhbm9uaWNhbAorKiBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgc2V0LCB0aGUgQ29sbGF0b3IgaGFuZGxlcyB1bi1ub3JtYWxpemVkIHRleHQgcHJvcGVybHksCisqIHByb2R1Y2luZyB0aGUgc2FtZSByZXN1bHRzIGFzIGlmIHRoZSB0ZXh0IHdlcmUgbm9ybWFsaXplZCBpbiBORkQuIElmCisqIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGlzIHR1cm5lZCBvZmYsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KKyogZW5zdXJlIHRoYXQgYWxsIHRleHQgaXMgYWxyZWFkeSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybSBiZWZvcmUgcGVyZm9ybWluZworKiBhIGNvbXBhcmlzb24gb3IgYmVmb3JlIGdldHRpbmcgYSBDb2xsYXRpb25LZXkuPC9wPgorKgorKiA8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uIHNlcnZpY2Ugc2VlIHRoZQorKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj51c2VycworKiBndWlkZTwvYT4uPC9wPgorKgorKiA8cD5FeGFtcGxlcyBvZiB1c2UKKyogPHByZT4KKyogLy8gR2V0IHRoZSBDb2xsYXRvciBmb3IgVVMgRW5nbGlzaCBhbmQgc2V0IGl0cyBzdHJlbmd0aCB0byBQUklNQVJZCisqIENvbGxhdG9yIHVzQ29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworKiB1c0NvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworKiBpZiAodXNDb2xsYXRvci5jb21wYXJlKCJhYmMiLCAiQUJDIikgPT0gMCkgeworKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmdzIGFyZSBlcXVpdmFsZW50Iik7CisqIH0KKyoKKyogVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBjb21wYXJlIHR3byBzdHJpbmdzIHVzaW5nIHRoZQorKiBDb2xsYXRvciBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorKgorKiAvLyBDb21wYXJlIHR3byBzdHJpbmdzIGluIHRoZSBkZWZhdWx0IGxvY2FsZQorKiBDb2xsYXRvciBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyogbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKE5PX0RFQ09NUE9TSVRJT04pOworKiBpZiAobXlDb2xsYXRvci5jb21wYXJlKCImYWdyYXZlOyYjOTI7dTAzMjUiLCAiYSYjOTI7dTAzMjUmIzc2ODsiKSAhPSAwKSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiZhZ3JhdmU7JiM5Mjt1MDMyNSBpcyBub3QgZXF1YWxzIHRvIGEmIzkyO3UwMzI1JiM3Njg7IHdpdGhvdXQgZGVjb21wb3NpdGlvbiIpOworKiAgICAgbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyogICAgIGlmIChteUNvbGxhdG9yLmNvbXBhcmUoIiZhZ3JhdmU7JiM5Mjt1MDMyNSIsICJhJiM5Mjt1MDMyNSYjNzY4OyIpICE9IDApIHsKKyogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yOiAmYWdyYXZlOyYjOTI7dTAzMjUgc2hvdWxkIGJlIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogICAgIGVsc2UgeworKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJmFncmF2ZTsmIzkyO3UwMzI1IGlzIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogfQorKiBlbHNlIHsKKyogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3I6ICZhZ3JhdmU7JiM5Mjt1MDMyNSBzaG91bGQgYmUgbm90IGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRob3V0IGRlY29tcG9zaXRpb24iKTsKKyogfQorKiA8L3ByZT4KKyogPC9wPgorKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisqIEBzZWUgQ29sbGF0aW9uS2V5CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzdGFibGUgSUNVIDIuOAorKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBDb2xsYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IsIENsb25lYWJsZQoreworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTdHJvbmdlc3QgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIFR5cGljYWxseSB1c2VkIHRvIGRlbm90ZSBkaWZmZXJlbmNlcworICAgICAqIGJldHdlZW4gYmFzZSBjaGFyYWN0ZXJzLiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUFJJTUFSWSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZWNvbmQgbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuCisgICAgICogQWNjZW50cyBpbiB0aGUgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCBzZWNvbmRhcnkgZGlmZmVyZW5jZXMuCisgICAgICogT3RoZXIgZGlmZmVyZW5jZXMgYmV0d2VlbiBsZXR0ZXJzIGNhbiBhbHNvIGJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5CisgICAgICogZGlmZmVyZW5jZXMsIGRlcGVuZGluZyBvbiB0aGUgbGFuZ3VhZ2UuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09OREFSWSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBUaGlyZCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBVcHBlciBhbmQgbG93ZXIgY2FzZSBkaWZmZXJlbmNlcyBpbiBjaGFyYWN0ZXJzIGFyZSBkaXN0aW5ndWlzaGVkIGF0IHRoaXMKKyAgICAgKiBzdHJlbmd0aCBsZXZlbC4gSW4gYWRkaXRpb24sIGEgdmFyaWFudCBvZiBhIGxldHRlciBkaWZmZXJzIGZyb20gdGhlIGJhc2UKKyAgICAgKiBmb3JtIG9uIHRoZSB0ZXJ0aWFyeSBsZXZlbC4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEVSVElBUlkgPSAyOworCisgICAgLyoqCisgICAgICogRm91cnRoIGxldmVsIGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIFdoZW4gcHVuY3R1YXRpb24gaXMgaWdub3JlZAorICAgICAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0NvbmNlcHRzLmh0bWwjSWdub3JpbmdfUHVuY3R1YXRpb24iPgorICAgICAqIChzZWUgSWdub3JpbmcgUHVuY3R1YXRpb25zIGluIHRoZSB1c2VyIGd1aWRlKTwvYT4gYXQgUFJJTUFSWSB0byBURVJUSUFSWQorICAgICAqIHN0cmVuZ3RoLCBhbiBhZGRpdGlvbmFsIHN0cmVuZ3RoIGxldmVsIGNhbgorICAgICAqIGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggd29yZHMgd2l0aCBhbmQgd2l0aG91dCBwdW5jdHVhdGlvbi4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUVVBVEVSTkFSWSA9IDM7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTbWFsbGVzdCBDb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4gV2hlbiBhbGwgb3RoZXIgc3RyZW5ndGhzIGFyZSBlcXVhbCwKKyAgICAgKiB0aGUgSURFTlRJQ0FMIHN0cmVuZ3RoIGlzIHVzZWQgYXMgYSB0aWVicmVha2VyLiBUaGUgVW5pY29kZSBjb2RlIHBvaW50CisgICAgICogdmFsdWVzIG9mIHRoZSBORkQgZm9ybSBvZiBlYWNoIHN0cmluZyBhcmUgY29tcGFyZWQsIGp1c3QgaW4gY2FzZSB0aGVyZQorICAgICAqIGlzIG5vIGRpZmZlcmVuY2UuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIE5vdGUgdGhpcyB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSBKREsncworICAgICAqIDwvcD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBJREVOVElDQUwgPSAxNTsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggSmF2YSBBUElzIG9ubHkuICBJdAorICAgICAqIHNob3VsZCBub3QgYmUgdXNlZCwgSURFTlRJQ0FMIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuICBJQ1UncworICAgICAqIGNvbGxhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEphdmEncyBGVUxMX0RFQ09NUE9TSVRJT04gbW9kZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZVTExfREVDT01QT1NJVElPTiA9IElERU5USUNBTDsKKworICAgIC8qKgorICAgICAqIDxwPkRlY29tcG9zaXRpb24gbW9kZSB2YWx1ZS4gV2l0aCBOT19ERUNPTVBPU0lUSU9OIHNldCwgU3RyaW5ncworICAgICAqIHdpbGwgbm90IGJlIGRlY29tcG9zZWQgZm9yIGNvbGxhdGlvbi4gVGhpcyBpcyB0aGUgZGVmYXVsdAorICAgICAqIGRlY29tcG9zaXRpb24gc2V0dGluZyB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCBieSB0aGUgbG9jYWxlCisgICAgICogdXNlZCB0byBjcmVhdGUgdGhlIENvbGxhdG9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPjxzdHJvbmc+Tm90ZTwvc3Ryb25nPiB0aGlzIHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBKREsncy48L3A+CisgICAgICogQHNlZSAjQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE5PX0RFQ09NUE9TSVRJT04gPSAxNjsKKworICAgIC8qKgorICAgICAqIDxwPkRlY29tcG9zaXRpb24gbW9kZSB2YWx1ZS4gV2l0aCBDQU5PTklDQUxfREVDT01QT1NJVElPTiBzZXQsCisgICAgICogY2hhcmFjdGVycyB0aGF0IGFyZSBjYW5vbmljYWwgdmFyaWFudHMgYWNjb3JkaW5nIHRvIHRoZSBVbmljb2RlIHN0YW5kYXJkCisgICAgICogd2lsbCBiZSBkZWNvbXBvc2VkIGZvciBjb2xsYXRpb24uPC9wPgorICAgICAqCisgICAgICogPHA+Q0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gY29ycmVzcG9uZHMgdG8gTm9ybWFsaXphdGlvbiBGb3JtIEQgYXMKKyAgICAgKiBkZXNjcmliZWQgaW4gPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8iPgorICAgICAqIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAjMTU8L2E+LgorICAgICAqIDwvcD4KKyAgICAgKiBAc2VlICNOT19ERUNPTVBPU0lUSU9OCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI3NldERlY29tcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBDQU5PTklDQUxfREVDT01QT1NJVElPTiA9IDE3OworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5TZXRzIHRoaXMgQ29sbGF0b3IncyBzdHJlbmd0aCBwcm9wZXJ0eS4gVGhlIHN0cmVuZ3RoIHByb3BlcnR5CisgICAgICogZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBsZXZlbCBvZiBkaWZmZXJlbmNlIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQKKyAgICAgKiBkdXJpbmcgY29tcGFyaXNvbi48L3A+CisgICAgICoKKyAgICAgKiA8cD5UaGUgZGVmYXVsdCBzdHJlbmd0aCBmb3IgdGhlIENvbGxhdG9yIGlzIFRFUlRJQVJZLCB1bmxlc3Mgc3BlY2lmaWVkCisgICAgICogb3RoZXJ3aXNlIGJ5IHRoZSBsb2NhbGUgdXNlZCB0byBjcmVhdGUgdGhlIENvbGxhdG9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLjwvcD4KKyAgICAgKiBAcGFyYW0gbmV3U3RyZW5ndGggdGhlIG5ldyBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI1BSSU1BUlkKKyAgICAgKiBAc2VlICNTRUNPTkRBUlkKKyAgICAgKiBAc2VlICNURVJUSUFSWQorICAgICAqIEBzZWUgI1FVQVRFUk5BUlkKKyAgICAgKiBAc2VlICNJREVOVElDQUwKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlIGlzIG5vdCBvbmUKKyAgICAgKiAgICAgICAgICAgICAgICBvZiBQUklNQVJZLCBTRUNPTkRBUlksIFRFUlRJQVJZLCBRVUFURVJOQVJZIG9yIElERU5USUNBTC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdHJlbmd0aChpbnQgbmV3U3RyZW5ndGgpCisgICAgeworICAgICAgICBpZiAoKG5ld1N0cmVuZ3RoICE9IFBSSU1BUlkpICYmCisgICAgICAgICAgICAobmV3U3RyZW5ndGggIT0gU0VDT05EQVJZKSAmJgorICAgICAgICAgICAgKG5ld1N0cmVuZ3RoICE9IFRFUlRJQVJZKSAmJgorICAgICAgICAgICAgKG5ld1N0cmVuZ3RoICE9IFFVQVRFUk5BUlkpICYmCisgICAgICAgICAgICAobmV3U3RyZW5ndGggIT0gSURFTlRJQ0FMKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW5jb3JyZWN0IGNvbXBhcmlzb24gbGV2ZWwuIik7CisgICAgICAgIH0KKyAgICAgICAgbV9zdHJlbmd0aF8gPSBuZXdTdHJlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TZXQgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBvZiB0aGlzIENvbGxhdG9yLiAgU2V0dGluZyB0aGlzCisgICAgICogZGVjb21wb3NpdGlvbiBwcm9wZXJ0eSB3aXRoIENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIGFsbG93cyB0aGUKKyAgICAgKiBDb2xsYXRvciB0byBoYW5kbGUgdW4tbm9ybWFsaXplZCB0ZXh0IHByb3Blcmx5LCBwcm9kdWNpbmcgdGhlCisgICAgICogc2FtZSByZXN1bHRzIGFzIGlmIHRoZSB0ZXh0IHdlcmUgbm9ybWFsaXplZC4gSWYKKyAgICAgKiBOT19ERUNPTVBPU0lUSU9OIGlzIHNldCwgaXQgaXMgdGhlIHVzZXIncyByZXNwb25zaWJpbGl0eSB0bworICAgICAqIGluc3VyZSB0aGF0IGFsbCB0ZXh0IGlzIGFscmVhZHkgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm0gYmVmb3JlCisgICAgICogYSBjb21wYXJpc29uIG9yIGJlZm9yZSBnZXR0aW5nIGEgQ29sbGF0aW9uS2V5LiBBZGp1c3RpbmcKKyAgICAgKiBkZWNvbXBvc2l0aW9uIG1vZGUgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBiZXR3ZWVuIGZhc3RlciBhbmQKKyAgICAgKiBtb3JlIGNvbXBsZXRlIGNvbGxhdGlvbiBiZWhhdmlvci48L3A+CisgICAgICoKKyAgICAgKiA8cD5TaW5jZSBhIGdyZWF0IG1hbnkgb2YgdGhlIHdvcmxkJ3MgbGFuZ3VhZ2VzIGRvIG5vdCByZXF1aXJlCisgICAgICogdGV4dCBub3JtYWxpemF0aW9uLCBtb3N0IGxvY2FsZXMgc2V0IE5PX0RFQ09NUE9TSVRJT04gYXMgdGhlCisgICAgICogZGVmYXVsdCBkZWNvbXBvc2l0aW9uIG1vZGUuPC9wPgorICAgICAqCisgICAgICogVGhlIGRlZmF1bHQgZGVjb21wb3NpdG9uIG1vZGUgZm9yIHRoZSBDb2xsYXRvciBpcworICAgICAqIE5PX0RFQ09NUE9TSVRPTiwgdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UgYnkgdGhlIGxvY2FsZSB1c2VkCisgICAgICogdG8gY3JlYXRlIHRoZSBDb2xsYXRvci48L3A+CisgICAgICoKKyAgICAgKiA8cD5TZWUgZ2V0RGVjb21wb3NpdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiBkZWNvbXBvc2l0aW9uCisgICAgICogbW9kZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVjb21wb3NpdGlvbiB0aGUgbmV3IGRlY29tcG9zaXRpb24gbW9kZQorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNOT19ERUNPTVBPU0lUSU9OCisgICAgICogQHNlZSAjQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBJZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgbm90IGEgdmFsaWQKKyAgICAgKiAgICAgICAgICAgIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNvbXBvc2l0aW9uKGludCBkZWNvbXBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKChkZWNvbXBvc2l0aW9uICE9IE5PX0RFQ09NUE9TSVRJT04pICYmCisgICAgICAgICAgICAoZGVjb21wb3NpdGlvbiAhPSBDQU5PTklDQUxfREVDT01QT1NJVElPTikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIldyb25nIGRlY29tcG9zaXRpb24gbW9kZS4iKTsKKyAgICAgICAgfQorICAgICAgICBtX2RlY29tcG9zaXRpb25fID0gZGVjb21wb3NpdGlvbjsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ29sbGF0b3IgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGxvY2FsZSBpcyBkZXRlcm1pbmVkIGJ5IGphdmEudXRpbC5Mb2NhbGUuZ2V0RGVmYXVsdCgpLgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdG9yIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgKGZvciBleGFtcGxlLCBlbl9VUykgaWYgaXQKKyAgICAgKiAgICAgICAgIGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBPdGhlcndpc2UgaWYgdGhlcmUgaXMgbm8gQ29sbGF0b3IKKyAgICAgKiAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBsb2NhbGUsIHRoZSBkZWZhdWx0IFVDQSBjb2xsYXRvcgorICAgICAqICAgICAgICAgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUjZ2V0RGVmYXVsdCgpCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoTG9jYWxlKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSB0aGUgY29sbGF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgY29sbGF0b3IuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHRocm93cyBDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgIH0KKworICAgIC8vIGJlZ2luIHJlZ2lzdHJ5IHN0dWZmCisKKyAgICAvKioKKyAgICAgKiBBIGZhY3RvcnkgdXNlZCB3aXRoIHJlZ2lzdGVyRmFjdG9yeSB0byByZWdpc3RlciBtdWx0aXBsZSBjb2xsYXRvcnMgYW5kIHByb3ZpZGUKKyAgICAgKiBkaXNwbGF5IG5hbWVzIGZvciB0aGVtLiAgSWYgc3RhbmRhcmQgbG9jYWxlIGRpc3BsYXkgbmFtZXMgYXJlIHN1ZmZpY2llbnQsIAorICAgICAqIENvbGxhdG9yIGluc3RhbmNlcyBtYXkgYmUgcmVnaXN0ZXJlZCBpbnN0ZWFkLgorICAgICAqIDxwPjxiPk5vdGU6PC9iPiBhcyBvZiBJQ1U0SiAzLjIsIHRoZSBkZWZhdWx0IEFQSSBmb3IgQ29sbGF0b3JGYWN0b3J5IHVzZXMKKyAgICAgKiBVTG9jYWxlIGluc3RlYWQgb2YgTG9jYWxlLiAgSW5zdGVhZCBvZiBvdmVycmlkaW5nIGNyZWF0ZUNvbGxhdG9yKExvY2FsZSksCisgICAgICogbmV3IGltcGxlbWVudGF0aW9ucyBzaG91bGQgb3ZlcnJpZGUgY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSkuICBOb3RlIHRoYXQKKyAgICAgKiBvbmUgb2YgdGhlc2UgdHdvIG1ldGhvZHMgPGI+TVVTVDwvYj4gYmUgb3ZlcnJpZGRlbiBvciBlbHNlIGFuIGluZmluaXRlCisgICAgICogbG9vcCB3aWxsIG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgQ29sbGF0b3JGYWN0b3J5IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgZmFjdG9yeSB3aWxsIGJlIHZpc2libGUuICBEZWZhdWx0IGlzIHRydWUuCisgICAgICAgICAqIElmIG5vdCB2aXNpYmxlLCB0aGUgbG9jYWxlcyBzdXBwb3J0ZWQgYnkgdGhpcyBmYWN0b3J5IHdpbGwgbm90CisgICAgICAgICAqIGJlIGxpc3RlZCBieSBnZXRBdmFpbGFibGVMb2NhbGVzLgorICAgICAgICAgKgorICAgICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBmYWN0b3J5IGlzIHZpc2libGUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiB2aXNpYmxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGFuIGluc3RhbmNlIG9mIHRoZSBhcHByb3ByaWF0ZSBjb2xsYXRvci4gIElmIHRoZSBsb2NhbGUKKyAgICAgICAgICogaXMgbm90IHN1cHBvcnRlZCwgcmV0dXJuIG51bGwuCisgICAgICAgICAqIDxiPk5vdGU6PC9iPiBhcyBvZiBJQ1U0SiAzLjIsIGltcGxlbWVudGF0aW9ucyBzaG91bGQgb3ZlcnJpZGUKKyAgICAgICAgICogdGhpcyBtZXRob2QgaW5zdGVhZCBvZiBjcmVhdGVDb2xsYXRvcihMb2NhbGUpLgorICAgICAgICAgKiBAcGFyYW0gbG9jIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoaXMgY29sbGF0b3IgaXMgdG8gYmUgY3JlYXRlZC4KKyAgICAgICAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBjb2xsYXRvci4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQ29sbGF0b3IgY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb2xsYXRvcihsb2MudG9Mb2NhbGUoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGFuIGluc3RhbmNlIG9mIHRoZSBhcHByb3ByaWF0ZSBjb2xsYXRvci4gIElmIHRoZSBsb2NhbGUKKyAgICAgICAgICogaXMgbm90IHN1cHBvcnRlZCwgcmV0dXJuIG51bGwuCisgICAgICAgICAqIDxwPjxiPk5vdGU6PC9iPiBhcyBvZiBJQ1U0SiAzLjIsIGltcGxlbWVudGF0aW9ucyBzaG91bGQgb3ZlcnJpZGUKKyAgICAgICAgICogY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSkgaW5zdGVhZCBvZiB0aGlzIG1ldGhvZCwgYW5kIGluaGVyaXQgdGhpcworICAgICAgICAgKiBtZXRob2QncyBpbXBsZW1lbnRhdGlvbi4gIFRoaXMgbWV0aG9kIGlzIG5vIGxvbmdlciBhYnN0cmFjdAorICAgICAgICAgKiBhbmQgaW5zdGVhZCBkZWxlZ2F0ZXMgdG8gY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSkuCisgICAgICAgICAqIEBwYXJhbSBsb2MgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBjb2xsYXRvciBpcyB0byBiZSBjcmVhdGVkLgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIGNvbGxhdG9yLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgICBwdWJsaWMgQ29sbGF0b3IgY3JlYXRlQ29sbGF0b3IoTG9jYWxlIGxvYykgeworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbGxhdG9yKFVMb2NhbGUuZm9yTG9jYWxlKGxvYykpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY29sbGF0b3IgZm9yIHRoZSBvYmplY3RMb2NhbGUsIGxvY2FsaXplZCBmb3IgdGhlIGRpc3BsYXlMb2NhbGUuCisgICAgICAgICAqIElmIG9iamVjdExvY2FsZSBpcyBub3QgdmlzaWJsZSBvciBub3QgZGVmaW5lZCBieSB0aGUgZmFjdG9yeSwgcmV0dXJuIG51bGwuCisgICAgICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgdGhlIGxvY2FsZSBpZGVudGlmeWluZyB0aGUgY29sbGF0b3IKKyAgICAgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29sbGF0b3Igc2hvdWxkIGJlIGxvY2FsaXplZAorICAgICAgICAgKiBAcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBvYmplY3RMb2NhbGUsIExvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5mb3JMb2NhbGUob2JqZWN0TG9jYWxlKSwgVUxvY2FsZS5mb3JMb2NhbGUoZGlzcGxheUxvY2FsZSkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY29sbGF0b3IgZm9yIHRoZSBvYmplY3RMb2NhbGUsIGxvY2FsaXplZCBmb3IgdGhlIGRpc3BsYXlMb2NhbGUuCisgICAgICAgICAqIElmIG9iamVjdExvY2FsZSBpcyBub3QgdmlzaWJsZSBvciBub3QgZGVmaW5lZCBieSB0aGUgZmFjdG9yeSwgcmV0dXJuIG51bGwuCisgICAgICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgdGhlIGxvY2FsZSBpZGVudGlmeWluZyB0aGUgY29sbGF0b3IKKyAgICAgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29sbGF0b3Igc2hvdWxkIGJlIGxvY2FsaXplZAorICAgICAgICAgKiBAcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgb2JqZWN0TG9jYWxlLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgICAgIGlmICh2aXNpYmxlKCkpIHsKKyAgICAgICAgICAgICAgICBTZXQgc3VwcG9ydGVkID0gZ2V0U3VwcG9ydGVkTG9jYWxlSURzKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBvYmplY3RMb2NhbGUuZ2V0QmFzZU5hbWUoKTsKKyAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkLmNvbnRhaW5zKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3RMb2NhbGUuZ2V0RGlzcGxheU5hbWUoZGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGFuIHVubW9kaWZpYWJsZSBjb2xsZWN0aW9uIG9mIHRoZSBsb2NhbGUgbmFtZXMgZGlyZWN0bHkgCisgICAgICAgICAqIHN1cHBvcnRlZCBieSB0aGlzIGZhY3RvcnkuCisgICAgICAgICAqCisgICAgICAgICAqIEByZXR1cm4gdGhlIHNldCBvZiBzdXBwb3J0ZWQgbG9jYWxlIElEcy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgU2V0IGdldFN1cHBvcnRlZExvY2FsZUlEcygpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbXB0eSBkZWZhdWx0IGNvbnN0cnVjdG9yLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBDb2xsYXRvckZhY3RvcnkoKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgU2VydmljZVNoaW0geworICAgICAgICBhYnN0cmFjdCBDb2xsYXRvciBnZXRJbnN0YW5jZShVTG9jYWxlIGwpOworICAgICAgICBhYnN0cmFjdCBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShDb2xsYXRvciBjLCBVTG9jYWxlIGwpOworICAgICAgICBhYnN0cmFjdCBPYmplY3QgcmVnaXN0ZXJGYWN0b3J5KENvbGxhdG9yRmFjdG9yeSBmKTsKKyAgICAgICAgYWJzdHJhY3QgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrKTsKKyAgICAgICAgYWJzdHJhY3QgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpOyAvLyBUT0RPIHJlbW92ZQorICAgICAgICBhYnN0cmFjdCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgYWJzdHJhY3QgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgb2wsIFVMb2NhbGUgZGwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTZXJ2aWNlU2hpbSBzaGltOworICAgIHByaXZhdGUgc3RhdGljIFNlcnZpY2VTaGltIGdldFNoaW0oKSB7CisgICAgICAgIC8vIE5vdGU6IHRoaXMgaW5zdGFudGlhdGlvbiBpcyBzYWZlIG9uIGxvb3NlLW1lbW9yeS1tb2RlbCBjb25maWd1cmF0aW9ucworICAgICAgICAvLyBkZXNwaXRlIGxhY2sgb2Ygc3luY2hyb25pemF0aW9uLCBzaW5jZSB0aGUgc2hpbSBpbnN0YW5jZSBoYXMgbm8gc3RhdGUtLQorICAgICAgICAvLyBpdCdzIGFsbCBpbiB0aGUgY2xhc3MgaW5pdC4gIFRoZSB3b3JzdCBwcm9ibGVtIGlzIHdlIG1pZ2h0IGluc3RhbnRpYXRlCisgICAgICAgIC8vIHR3byBzaGltIGluc3RhbmNlcywgYnV0IHRoZXknbGwgc2hhcmUgdGhlIHNhbWUgc3RhdGUgc28gdGhhdCdzIG9rLgorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUoImNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3JTZXJ2aWNlU2hpbSIpOworICAgICAgICAgICAgICAgIHNoaW0gPSAoU2VydmljZVNoaW0pY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgICAgICBpZihERUJVRyl7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZSBpZiBpdCBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgYSBkZWZhdWx0IFVDQSBjb2xsYXRvciB3aWxsCisgICAgICogICAgICAgICBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAgICAgKiBAc2VlIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKExvY2FsZSkKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZSgpCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRvciBnZXRJbnN0YW5jZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvLyBmZXRjaGluZyBmcm9tIHNlcnZpY2UgY2FjaGUgaXMgZmFzdGVyIHRoYW4gaW5zdGFudGlhdGlvbgorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIENvbGxhdG9yIGZvciB0aGUgZGVzaXJlZCBsb2NhbGUgaWYgaXQgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICBPdGhlcndpc2UgaWYgdGhlcmUgaXMgbm8gQ29sbGF0b3IKKyAgICAgKiAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBsb2NhbGUsIGEgZGVmYXVsdCBVQ0EgY29sbGF0b3Igd2lsbAorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgICAgICogQHNlZSBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZShVTG9jYWxlKQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdG9yIGdldEluc3RhbmNlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgY29sbGF0b3IgYXMgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuICBUaGUKKyAgICAgKiBjb2xsYXRvciBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGFmdGVyIGl0IGlzIHJlZ2lzdGVyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIGNvbGxhdG9yIHRvIHJlZ2lzdGVyCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIGlzIHRoZSBkZWZhdWx0IGNvbGxhdG9yCisgICAgICogQHJldHVybiBhbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoZSByZWdpc3RlcmVkIGNvbGxhdG9yLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKENvbGxhdG9yIGNvbGxhdG9yLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLnJlZ2lzdGVySW5zdGFuY2UoY29sbGF0b3IsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjb2xsYXRvciBmYWN0b3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGZhY3RvcnkgdGhlIGZhY3RvcnkgdG8gcmVnaXN0ZXIKKyAgICAgKiBAcmV0dXJuIGFuIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhlIHJlZ2lzdGVyZWQgZmFjdG9yeS4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShDb2xsYXRvckZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLnJlZ2lzdGVyRmFjdG9yeShmYWN0b3J5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgY29sbGF0b3IgcHJldmlvdXNseSByZWdpc3RlcmVkIHVzaW5nIHJlZ2lzdGVySW5zdGFuY2UuCisgICAgICogQHBhcmFtIHJlZ2lzdHJ5S2V5IHRoZSBvYmplY3QgcHJldmlvdXNseSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29sbGF0b3Igd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IHJlZ2lzdHJ5S2V5KSB7CisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbS51bnJlZ2lzdGVyKHJlZ2lzdHJ5S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBsb2NhbGVzLCBhcyBMb2NhbGUgb2JqZWN0cywgZm9yIHdoaWNoIGNvbGxhdG9ycworICAgICAqIGFyZSBpbnN0YWxsZWQuICBOb3RlIHRoYXQgTG9jYWxlIG9iamVjdHMgZG8gbm90IHN1cHBvcnQgUkZDIDMwNjYuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGluIHdoaWNoIGNvbGxhdG9ycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIFRoaXMgbGlzdCBpbmNsdWRlcyBhbnkgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiB0aG9zZSB0aGF0IGFyZSBpbnN0YWxsZWQgd2l0aCBJQ1U0Si4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIC8vIFRPRE8gbWFrZSB0aGlzIHdyYXAgZ2V0QXZhaWxhYmxlVUxvY2FsZXMgbGF0ZXIKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBsb2NhbGVzLCBhcyBVTG9jYWxlIG9iamVjdHMsIGZvciB3aGljaCBjb2xsYXRvcnMKKyAgICAgKiBhcmUgaW5zdGFsbGVkLiAgVUxvY2FsZSBvYmplY3RzIHN1cHBvcnQgUkZDIDMwNjYuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGluIHdoaWNoIGNvbGxhdG9ycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIFRoaXMgbGlzdCBpbmNsdWRlcyBhbnkgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiB0aG9zZSB0aGF0IGFyZSBpbnN0YWxsZWQgd2l0aCBJQ1U0Si4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbGlzdCBvZiBrZXl3b3JkcyBmb3IgdGhpcyBzZXJ2aWNlLiAgVGhpcyBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoCisgICAgICogdGhlIHJlc291cmNlIGRhdGEuCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBLRVlXT1JEUyA9IHsgImNvbGxhdGlvbiIgfTsKKworICAgIC8qKgorICAgICAqIFRoZSByZXNvdXJjZSBuYW1lIGZvciB0aGlzIHNlcnZpY2UuICBOb3RlIHRoYXQgdGhpcyBpcyBub3QgdGhlIHNhbWUgYXMKKyAgICAgKiB0aGUga2V5d29yZCBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAqIEBzaW5jZSBJQ1UgMy4wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU09VUkNFID0gImNvbGxhdGlvbnMiOworCisgICAgLyoqCisgICAgICogVGhlIHJlc291cmNlIGJ1bmRsZSBiYXNlIG5hbWUgZm9yIHRoaXMgc2VydmljZS4KKyAgICAgKiAqc2luY2UgSUNVIDMuMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCQVNFID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUU7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgYWxsIHBvc3NpYmxlIGtleXdvcmRzIHRoYXQgYXJlIHJlbGV2YW50IHRvCisgICAgICogY29sbGF0aW9uLiBBdCB0aGlzIHBvaW50LCB0aGUgb25seSByZWNvZ25pemVkIGtleXdvcmQgZm9yIHRoaXMKKyAgICAgKiBzZXJ2aWNlIGlzICJjb2xsYXRpb24iLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgdmFsaWQgY29sbGF0aW9uIGtleXdvcmRzLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRWYWx1ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEtleXdvcmRzKCkgeworICAgICAgICByZXR1cm4gS0VZV09SRFM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdpdmVuIGEga2V5d29yZCwgcmV0dXJuIGFuIGFycmF5IG9mIGFsbCB2YWx1ZXMgZm9yCisgICAgICogdGhhdCBrZXl3b3JkIHRoYXQgYXJlIGN1cnJlbnRseSBpbiB1c2UuCisgICAgICogQHBhcmFtIGtleXdvcmQgb25lIG9mIHRoZSBrZXl3b3JkcyByZXR1cm5lZCBieSBnZXRLZXl3b3Jkcy4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkcworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0S2V5d29yZFZhbHVlcyhTdHJpbmcga2V5d29yZCkgeworICAgICAgICBpZiAoIWtleXdvcmQuZXF1YWxzKEtFWVdPUkRTWzBdKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBrZXl3b3JkOiAiICsga2V5d29yZCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEtleXdvcmRWYWx1ZXMoQkFTRSwgUkVTT1VSQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgbG9jYWxlIGZvciB0aGUgZ2l2ZW4KKyAgICAgKiByZXF1ZXN0ZWQgbG9jYWxlLCB3aXRoIHJlc3BlY3QgdG8gZ2l2ZW4ga2V5d29yZCwgZm9yIHRoZQorICAgICAqIGNvbGxhdGlvbiBzZXJ2aWNlLiAgSWYgdHdvIGxvY2FsZXMgcmV0dXJuIHRoZSBzYW1lIHJlc3VsdCwgdGhlbgorICAgICAqIGNvbGxhdG9ycyBpbnN0YW50aWF0ZWQgZm9yIHRoZXNlIGxvY2FsZXMgd2lsbCBiZWhhdmUKKyAgICAgKiBlcXVpdmFsZW50bHkuICBUaGUgY29udmVyc2UgaXMgbm90IGFsd2F5cyB0cnVlOyB0d28gY29sbGF0b3JzCisgICAgICogbWF5IGluIGZhY3QgYmUgZXF1aXZhbGVudCwgYnV0IHJldHVybiBkaWZmZXJlbnQgcmVzdWx0cywgZHVlIHRvCisgICAgICogaW50ZXJuYWwgZGV0YWlscy4gIFRoZSByZXR1cm4gcmVzdWx0IGhhcyBubyBvdGhlciBtZWFuaW5nIHRoYW4KKyAgICAgKiB0aGF0IHN0YXRlZCBhYm92ZSwgYW5kIGltcGxpZXMgbm90aGluZyBhcyB0byB0aGUgcmVsYXRpb25zaGlwCisgICAgICogYmV0d2VlbiB0aGUgdHdvIGxvY2FsZXMuICBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgYnkKKyAgICAgKiBhcHBsaWNhdGlvbnMgd2hvIHdpc2ggdG8gY2FjaGUgY29sbGF0b3JzLCBvciBvdGhlcndpc2UgcmV1c2UKKyAgICAgKiBjb2xsYXRvcnMgd2hlbiBwb3NzaWJsZS4gIFRoZSBmdW5jdGlvbmFsIGVxdWl2YWxlbnQgbWF5IGNoYW5nZQorICAgICAqIG92ZXIgdGltZS4gIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoZSA8YQorICAgICAqIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9sb2NhbGUuaHRtbCNzZXJ2aWNlcyI+CisgICAgICogTG9jYWxlcyBhbmQgU2VydmljZXM8L2E+IHNlY3Rpb24gb2YgdGhlIElDVSBVc2VyIEd1aWRlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIGEgcGFydGljdWxhciBrZXl3b3JkIGFzIGVudW1lcmF0ZWQgYnkKKyAgICAgKiBnZXRLZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gbG9jSUQgVGhlIHJlcXVlc3RlZCBsb2NhbGUKKyAgICAgKiBAcGFyYW0gaXNBdmFpbGFibGUgSWYgbm9uLW51bGwsIGlzQXZhaWxhYmxlWzBdIHdpbGwgcmVjZWl2ZSBhbmQKKyAgICAgKiBvdXRwdXQgYm9vbGVhbiB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIHdhcworICAgICAqICdhdmFpbGFibGUnIHRvIHRoZSBjb2xsYXRpb24gc2VydmljZS4gVGhlIGxvY2FsZSBpcyBkZWZpbmVkIGFzCisgICAgICogJ2F2YWlsYWJsZScgaWYgaXQgcGh5c2ljYWxseSBleGlzdHMgd2l0aGluIHRoZSBjb2xsYXRpb24gbG9jYWxlCisgICAgICogZGF0YS4gIElmIG5vbi1udWxsLCBpc0F2YWlsYWJsZSBtdXN0IGhhdmUgbGVuZ3RoID49IDEuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIGdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KFN0cmluZyBrZXl3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzQXZhaWxhYmxlW10pIHsKKyAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFTRSwgUkVTT1VSQ0UsIGtleXdvcmQsIGxvY0lELCBpc0F2YWlsYWJsZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgbG9jYWxlIGZvciB0aGUgZ2l2ZW4KKyAgICAgKiByZXF1ZXN0ZWQgbG9jYWxlLCB3aXRoIHJlc3BlY3QgdG8gZ2l2ZW4ga2V5d29yZCwgZm9yIHRoZQorICAgICAqIGNvbGxhdGlvbiBzZXJ2aWNlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIGEgcGFydGljdWxhciBrZXl3b3JkIGFzIGVudW1lcmF0ZWQgYnkKKyAgICAgKiBnZXRLZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gbG9jSUQgVGhlIHJlcXVlc3RlZCBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUKKyAgICAgKiBAc2VlICNnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChTdHJpbmcsVUxvY2FsZSxib29sZWFuW10pCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIGdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KFN0cmluZyBrZXl3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY0lEKSB7CisgICAgICAgIHJldHVybiBnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChrZXl3b3JkLCBsb2NJRCwgbnVsbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgY29sbGF0b3IgZm9yIHRoZSBvYmplY3RMb2NhbGUsIGxvY2FsaXplZCBmb3IgdGhlIGRpc3BsYXlMb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoZSBjb2xsYXRvcidzIGRpc3BsYXkgbmFtZQorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBvYmplY3RMb2NhbGUsIExvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5mb3JMb2NhbGUob2JqZWN0TG9jYWxlKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZS5mb3JMb2NhbGUoZGlzcGxheUxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgY29sbGF0b3IgZm9yIHRoZSBvYmplY3RMb2NhbGUsIGxvY2FsaXplZCBmb3IgdGhlIGRpc3BsYXlMb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoZSBjb2xsYXRvcidzIGRpc3BsYXkgbmFtZQorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBvYmplY3RMb2NhbGUsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldERpc3BsYXlOYW1lKG9iamVjdExvY2FsZSwgZGlzcGxheUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBjb2xsYXRvciBmb3IgdGhlIG9iamVjdExvY2FsZSwgbG9jYWxpemVkIGZvciB0aGUgY3VycmVudCBsb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBjb2xsYXRvcgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBvYmplY3RMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLmZvckxvY2FsZShvYmplY3RMb2NhbGUpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBjb2xsYXRvciBmb3IgdGhlIG9iamVjdExvY2FsZSwgbG9jYWxpemVkIGZvciB0aGUgY3VycmVudCBsb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBjb2xsYXRvcgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBvYmplY3RMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5nZXREaXNwbGF5TmFtZShvYmplY3RMb2NhbGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIHRoaXMgQ29sbGF0b3IncyBzdHJlbmd0aCBwcm9wZXJ0eS4gVGhlIHN0cmVuZ3RoIHByb3BlcnR5CisgICAgICogZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBsZXZlbCBvZiBkaWZmZXJlbmNlIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiB0aGlzIENvbGxhdG9yJ3MgY3VycmVudCBzdHJlbmd0aCBwcm9wZXJ0eS4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI1BSSU1BUlkKKyAgICAgKiBAc2VlICNTRUNPTkRBUlkKKyAgICAgKiBAc2VlICNURVJUSUFSWQorICAgICAqIEBzZWUgI1FVQVRFUk5BUlkKKyAgICAgKiBAc2VlICNJREVOVElDQUwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0cmVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3N0cmVuZ3RoXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBHZXQgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBvZiB0aGlzIENvbGxhdG9yLiBEZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBkZXRlcm1pbmVzIGhvdyBVbmljb2RlIGNvbXBvc2VkIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiB0aGUgZGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gbV9kZWNvbXBvc2l0aW9uXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb21wYXJlcyB0aGUgc291cmNlIHRleHQgU3RyaW5nIHRvIHRoZSB0YXJnZXQgdGV4dCBTdHJpbmcgYWNjb3JkaW5nIHRvCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBsZXNzIHRoYW4sCisgICAgICogZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHplcm8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNvdXJjZSBTdHJpbmcgaXMKKyAgICAgKiBsZXNzIHRoYW4sIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGFyZ2V0IFN0cmluZy4gU2VlIHRoZSBDb2xsYXRvcgorICAgICAqIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBzb3VyY2Ugb3IgdGFyZ2V0IGlzCisgICAgICogICAgICAgICAgICBub3Qgb2YgdGhlIGNsYXNzIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IHNvdXJjZSwgT2JqZWN0IHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmICghKHNvdXJjZSBpbnN0YW5jZW9mIFN0cmluZykgfHwgISh0YXJnZXQgaW5zdGFuY2VvZiBTdHJpbmcpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJBcmd1bWVudHMgaGF2ZSB0byBiZSBvZiB0eXBlIFN0cmluZyIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjb21wYXJlKChTdHJpbmcpc291cmNlLCAoU3RyaW5nKXRhcmdldCk7CisgICAgfQorCisgICAgLy8gcHVibGljIG90aGVyIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjb21wYXJpbmcgdGhlIGVxdWFsaXR5IG9mIHR3byB0ZXh0IFN0cmluZ3MgdXNpbmcKKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZyB0byBiZSBjb21wYXJlZC4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgc3RyaW5nIHRvIGJlIGNvbXBhcmVkLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwgYWNjb3JkaW5nIHRvIHRoZSBjb2xsYXRpb24KKyAgICAgKiAgICAgICAgIHJ1bGVzLCBvdGhlcndpc2UgZmFsc2UuCisgICAgICogQHNlZSAjY29tcGFyZQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBhcmd1bWVudHMgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkKKyAgICB7CisgICAgICAgIHJldHVybiAoY29tcGFyZShzb3VyY2UsIHRhcmdldCkgPT0gMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFuIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNoYXJhY3RlcnMgYW5kIHNlcXVlbmNlcworICAgICAqIHRhaWxvcmVkIGluIHRoaXMgY29sbGF0b3IuCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBVbmljb2RlU2V0IG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUKKyAgICAgKiAgICAgICAgIGNvZGUgcG9pbnRzIGFuZCBzZXF1ZW5jZXMgdGhhdCBtYXkgc29ydCBkaWZmZXJlbnRseSB0aGFuCisgICAgICogICAgICAgICBpbiB0aGUgVUNBLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFRhaWxvcmVkU2V0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgwLCAweDEwRkZGRik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZXMgdGhlIHNvdXJjZSB0ZXh0IFN0cmluZyB0byB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nIGFjY29yZGluZyB0bworICAgICAqIHRoaXMgQ29sbGF0b3IncyBydWxlcywgc3RyZW5ndGggYW5kIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuLAorICAgICAqIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB6ZXJvIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzb3VyY2UgU3RyaW5nIGlzCisgICAgICogbGVzcyB0aGFuLCBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gdGhlIHRhcmdldCBTdHJpbmcuIFNlZSB0aGUgQ29sbGF0b3IKKyAgICAgKiBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBTdHJpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IFN0cmluZy4KKyAgICAgKiBAcmV0dXJuIFJldHVybnMgYW4gaW50ZWdlciB2YWx1ZS4gVmFsdWUgaXMgbGVzcyB0aGFuIHplcm8gaWYgc291cmNlIGlzCisgICAgICogICAgICAgICBsZXNzIHRoYW4gdGFyZ2V0LCB2YWx1ZSBpcyB6ZXJvIGlmIHNvdXJjZSBhbmQgdGFyZ2V0IGFyZSBlcXVhbCwKKyAgICAgKiAgICAgICAgIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LgorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5CisgICAgICogQHNlZSAjZ2V0Q29sbGF0aW9uS2V5CisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB0aHJvd24gaWYgZWl0aGVyIGFyZ3VtZW50cyBpcyBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY29tcGFyZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KTsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFRyYW5zZm9ybXMgdGhlIFN0cmluZyBpbnRvIGEgQ29sbGF0aW9uS2V5IHN1aXRhYmxlIGZvciBlZmZpY2llbnQKKyAgICAgKiByZXBlYXRlZCBjb21wYXJpc29uLiAgVGhlIHJlc3VsdGluZyBrZXkgZGVwZW5kcyBvbiB0aGUgY29sbGF0b3IncworICAgICAqIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5TZWUgdGhlIENvbGxhdGlvbktleSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzdHJpbmcgdG8gYmUgdHJhbnNmb3JtZWQgaW50byBhIENvbGxhdGlvbktleS4KKyAgICAgKiBAcmV0dXJuIHRoZSBDb2xsYXRpb25LZXkgZm9yIHRoZSBnaXZlbiBTdHJpbmcgYmFzZWQgb24gdGhpcyBDb2xsYXRvcidzCisgICAgICogICAgICAgICBjb2xsYXRpb24gcnVsZXMuIElmIHRoZSBzb3VyY2UgU3RyaW5nIGlzIG51bGwsIGEgbnVsbAorICAgICAqICAgICAgICAgQ29sbGF0aW9uS2V5IGlzIHJldHVybmVkLgorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5CisgICAgICogQHNlZSAjY29tcGFyZShTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc2VlICNnZXRSYXdDb2xsYXRpb25LZXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQ29sbGF0aW9uS2V5IGdldENvbGxhdGlvbktleShTdHJpbmcgc291cmNlKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzaW1wbGVyIGZvcm0gb2YgYSBDb2xsYXRpb25LZXkgZm9yIHRoZSBTdHJpbmcgc291cmNlIGZvbGxvd2luZworICAgICAqIHRoZSBydWxlcyBvZiB0aGlzIENvbGxhdG9yIGFuZCBzdG9yZXMgdGhlIHJlc3VsdCBpbnRvIHRoZSB1c2VyIHByb3ZpZGVkIAorICAgICAqIGFyZ3VtZW50IGtleS4gCisgICAgICogSWYga2V5IGhhcyBhIGludGVybmFsIGJ5dGUgYXJyYXkgb2YgbGVuZ3RoIHRoYXQncyB0b28gc21hbGwgZm9yIHRoZSAKKyAgICAgKiByZXN1bHQsIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IHdpbGwgYmUgZ3Jvd24gdG8gdGhlIGV4YWN0IHJlcXVpcmVkIAorICAgICAqIHNpemUuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgdGV4dCBTdHJpbmcgdG8gYmUgdHJhbnNmb3JtZWQgaW50byBhIFJhd0NvbGxhdGlvbktleSAgCisgICAgICogQHJldHVybiBJZiBrZXkgaXMgbnVsbCwgYSBuZXcgaW5zdGFuY2Ugb2YgUmF3Q29sbGF0aW9uS2V5IHdpbGwgYmUgCisgICAgICogICAgICAgICBjcmVhdGVkIGFuZCByZXR1cm5lZCwgb3RoZXJ3aXNlIHRoZSB1c2VyIHByb3ZpZGVkIGtleSB3aWxsIGJlIAorICAgICAqICAgICAgICAgcmV0dXJuZWQuCisgICAgICogQHNlZSAjY29tcGFyZShTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkgCisgICAgICogQHNlZSBSYXdDb2xsYXRpb25LZXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgUmF3Q29sbGF0aW9uS2V5IGdldFJhd0NvbGxhdGlvbktleShTdHJpbmcgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXkga2V5KTsKKworICAgIC8qKiAKKyAgICAgKiA8cD4KKyAgICAgKiBWYXJpYWJsZSB0b3AgaXMgYSB0d28gYnl0ZSBwcmltYXJ5IHZhbHVlIHdoaWNoIGNhdXNlcyBhbGwgdGhlIGNvZGVwb2ludHMgCisgICAgICogd2l0aCBwcmltYXJ5IHZhbHVlcyB0aGF0IGFyZSBsZXNzIG9yIGVxdWFsIHRoYW4gdGhlIHZhcmlhYmxlIHRvcCB0byBiZSAKKyAgICAgKiBzaGlmdGVkIHdoZW4gYWx0ZXJuYXRlIGhhbmRsaW5nIGlzIHNldCB0byBTSElGVEVELgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoZSB2YXJpYWJsZSB0b3AgdG8gYSBjb2xsYXRpb24gZWxlbWVudCB2YWx1ZSBvZiBhIHN0cmluZyBzdXBwbGllZC4KKyAgICAgKiA8L3A+IAorICAgICAqIEBwYXJhbSB2YXJUb3Agb25lIG9yIG1vcmUgKGlmIGNvbnRyYWN0aW9uKSBjaGFyYWN0ZXJzIHRvIHdoaWNoIHRoZSAKKyAgICAgKiAgICAgICAgICAgICAgIHZhcmlhYmxlIHRvcCBzaG91bGQgYmUgc2V0CisgICAgICogQHJldHVybiBhIGludCB2YWx1ZSBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgdG9wIGluIHVwcGVyIDE2CisgICAgICogICAgICAgICBiaXRzLiBMb3dlciAxNiBiaXRzIGFyZSB1bmRlZmluZWQuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaXMgdGhyb3duIGlmIHZhclRvcCBhcmd1bWVudCBpcyBub3QgCisgICAgICogICAgICAgICAgICBhIHZhbGlkIHZhcmlhYmxlIHRvcCBlbGVtZW50LiBBIHZhcmlhYmxlIHRvcCBlbGVtZW50IGlzIAorICAgICAqICAgICAgICAgICAgaW52YWxpZCB3aGVuIGl0IGlzIGEgY29udHJhY3Rpb24gdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUKKyAgICAgKiAgICAgICAgICAgIENvbGxhdGlvbiBvcmRlciBvciB3aGVuIHRoZSBQUklNQVJZIHN0cmVuZ3RoIGNvbGxhdGlvbiAKKyAgICAgKiAgICAgICAgICAgIGVsZW1lbnQgZm9yIHRoZSB2YXJpYWJsZSB0b3AgaGFzIG1vcmUgdGhhbiB0d28gYnl0ZXMKKyAgICAgKiBAc2VlICNnZXRWYXJpYWJsZVRvcAorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3Ijc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBzZXRWYXJpYWJsZVRvcChTdHJpbmcgdmFyVG9wKTsKKyAgICAKKyAgICAvKiogCisgICAgICogR2V0cyB0aGUgdmFyaWFibGUgdG9wIHZhbHVlIG9mIGEgQ29sbGF0b3IuIAorICAgICAqIExvd2VyIDE2IGJpdHMgYXJlIHVuZGVmaW5lZCBhbmQgc2hvdWxkIGJlIGlnbm9yZWQuCisgICAgICogQHJldHVybiB0aGUgdmFyaWFibGUgdG9wIHZhbHVlIG9mIGEgQ29sbGF0b3IuCisgICAgICogQHNlZSAjc2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFZhcmlhYmxlVG9wKCk7CisgICAgCisgICAgLyoqIAorICAgICAqIFNldHMgdGhlIHZhcmlhYmxlIHRvcCB0byBhIGNvbGxhdGlvbiBlbGVtZW50IHZhbHVlIHN1cHBsaWVkLgorICAgICAqIFZhcmlhYmxlIHRvcCBpcyBzZXQgdG8gdGhlIHVwcGVyIDE2IGJpdHMuIAorICAgICAqIExvd2VyIDE2IGJpdHMgYXJlIGlnbm9yZWQuCisgICAgICogQHBhcmFtIHZhclRvcCBDb2xsYXRpb24gZWxlbWVudCB2YWx1ZSwgYXMgcmV0dXJuZWQgYnkgc2V0VmFyaWFibGVUb3Agb3IgCisgICAgICogICAgICAgICAgICAgICBnZXRWYXJpYWJsZVRvcAorICAgICAqIEBzZWUgI2dldFZhcmlhYmxlVG9wCisgICAgICogQHNlZSAjc2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRWYXJpYWJsZVRvcChpbnQgdmFyVG9wKTsKKworICAgIC8qKiAKKyAgICAgKiBHZXQgdGhlIHZlcnNpb24gb2YgdGhpcyBjb2xsYXRvciBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgdmVyc2lvbiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVmVyc2lvbkluZm8gZ2V0VmVyc2lvbigpOworICAgICAgICAKKyAgICAvKiogCisgICAgICogR2V0IHRoZSBVQ0EgdmVyc2lvbiBvZiB0aGlzIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2ZXJzaW9uIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBWZXJzaW9uSW5mbyBnZXRVQ0FWZXJzaW9uKCk7CisgICAgICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBFbXB0eSBkZWZhdWx0IGNvbnN0cnVjdG9yIHRvIG1ha2UgamF2YWRvY3MgaGFwcHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ29sbGF0b3IoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3N0cmVuZ3RoXyA9IFRFUlRJQVJZOworCisgICAgLyoqCisgICAgICogRGVjb21wb3NpdGlvbiBtb2RlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9kZWNvbXBvc2l0aW9uXyA9IENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJjb2xsYXRvciIpOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gZW5kIHJlZ2lzdHJ5IHN0dWZmCisKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSAqIDxpPmFjdHVhbDwvaT4KKyAgICAgKiBsb2NhbGUgaXMgcmV0dXJuZWQgY29ycmVjdGx5LCBidXQgdGhlIDxpPnZhbGlkPC9pPiBsb2NhbGUgaXMKKyAgICAgKiBub3QsIGluIG1vc3QgY2FzZXMuCisgICAgICogQHBhcmFtIHR5cGUgdHlwZSBvZiBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQsIGVpdGhlciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFfSBvciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRX0uCisgICAgICogQHJldHVybiB0aGUgaW5mb3JtYXRpb24gc3BlY2lmaWVkIGJ5IDxpPnR5cGU8L2k+LCBvciBudWxsIGlmCisgICAgICogdGhpcyBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW4pCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVMb2NhbGUgZ2V0TG9jYWxlKFVMb2NhbGUuVHlwZSB0eXBlKSB7CisgICAgICAgIHJldHVybiB0eXBlID09IFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSA/CisgICAgICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA6IHRoaXMudmFsaWRMb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbGVzIHRoYXQgd2VyZSB1c2VkIHRvIGNyZWF0ZSB0aGlzCisgICAgICogb2JqZWN0LiAgSWYgdGhlIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEsCisgICAgICogYm90aCBhcmd1bWVudHMgc2hvdWxkIGJlIHNldCB0byBudWxsLiAgT3RoZXJ3aXNlLCBuZWl0aGVyCisgICAgICogc2hvdWxkIGJlIG51bGwuICBUaGUgYWN0dWFsIGxvY2FsZSBtdXN0IGJlIGF0IHRoZSBzYW1lIGxldmVsIG9yCisgICAgICogbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuICBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZAorICAgICAqIGZvciB1c2UgYnkgZmFjdG9yaWVzIG9yIG90aGVyIGVudGl0aWVzIHRoYXQgY3JlYXRlIG9iamVjdHMgb2YKKyAgICAgKiB0aGlzIGNsYXNzLgorICAgICAqIEBwYXJhbSB2YWxpZCB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UKKyAgICAgKiBkYXRhLCBvciBudWxsCisgICAgICogQHBhcmFtIGFjdHVhbCB0aGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzCisgICAgICogb2JqZWN0LCBvciBudWxsCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRMb2NhbGUoVUxvY2FsZSB2YWxpZCwgVUxvY2FsZSBhY3R1YWwpIHsKKyAgICAgICAgLy8gQ2hhbmdlIHRoZSBmb2xsb3dpbmcgdG8gYW4gYXNzZXJ0aW9uIGxhdGVyCisgICAgICAgIGlmICgodmFsaWQgPT0gbnVsbCkgIT0gKGFjdHVhbCA9PSBudWxsKSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICAgICAgLy8gQW5vdGhlciBjaGVjayB3ZSBjb3VsZCBkbyBpcyB0aGF0IHRoZSBhY3R1YWwgbG9jYWxlIGlzIGF0CisgICAgICAgIC8vIHRoZSBzYW1lIGxldmVsIG9yIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLgorICAgICAgICB0aGlzLnZhbGlkTG9jYWxlID0gdmFsaWQ7CisgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlID0gYWN0dWFsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZSBkYXRhLCBvciBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIHZhbGlkTG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcyBvYmplY3QsIG9yCisgICAgICogbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBhY3R1YWxMb2NhbGU7CisKKyAgICAvLyAtLS0tLS0tLSBFTkQgVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJiYzk3MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yUmVhZGVyLmphdmEKQEAgLTAsMCArMSw2NjIgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVQmluYXJ5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW50VHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLkludmVyc2VVQ0E7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvci5VQ0FDb25zdGFudHM7CisKKy8qKgorKiA8cD5JbnRlcm5hbCByZWFkZXIgY2xhc3MgZm9yIElDVSBkYXRhIGZpbGUgdWNhLmljdSBjb250YWluaW5nIAorKiBVbmljb2RlIENvbGxhdGlvbiBBbGdvcml0aG0gZGF0YS48L3A+IAorKiA8cD5UaGlzIGNsYXNzIHNpbXBseSByZWFkcyB1Y2EuaWN1LCBhdXRoZW50aWNhdGVzIHRoYXQgaXQgaXMgYSB2YWxpZAorKiBJQ1UgZGF0YSBmaWxlIGFuZCBzcGxpdCBpdHMgY29udGVudHMgdXAgaW50byBibG9ja3Mgb2YgZGF0YSBmb3IgdXNlIGluCisqIDxhIGhyZWY9Q29sbGF0b3IuaHRtbD5jb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yPC9hPi4KKyogPC9wPiAKKyogPHA+dWNhLmljdSB3aGljaCBpcyBpbiBiaWctZW5kaWFuIGZvcm1hdCBpcyBqYXJlZCB0b2dldGhlciB3aXRoIHRoaXMgCisqIHBhY2thZ2UuPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjIsIEFwcmlsIDE4IDIwMDIKKyogQGRyYWZ0IDIuMgorKi8KKworZmluYWwgY2xhc3MgQ29sbGF0b3JSZWFkZXIKK3sgICAgICAgICAgCisgICAgc3RhdGljIGNoYXJbXSByZWFkKFJ1bGVCYXNlZENvbGxhdG9yIHJiYywgVUNBQ29uc3RhbnRzIHVjYWMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIElucHV0U3RyZWFtIGkgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi91Y2FkYXRhLmljdSIpOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpLCA5MDAwMCk7CisgICAgICAgIENvbGxhdG9yUmVhZGVyIHJlYWRlciA9IG5ldyBDb2xsYXRvclJlYWRlcihiKTsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IHJlYWRlci5yZWFkSW1wKHJiYywgdWNhYyk7CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgaW5pdFJCQyhSdWxlQmFzZWRDb2xsYXRvciByYmMsIGJ5dGVbXSBkYXRhKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBmaW5hbCBpbnQgTUlOX0JJTkFSWV9EQVRBX1NJWkVfID0gKDQyICsgMjUpIDw8IDI7CisgICAgICAgIAorICAgICAgICBJbnB1dFN0cmVhbSBpID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGRhdGEpOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpKTsKKyAgICAgICAgQ29sbGF0b3JSZWFkZXIgcmVhZGVyID0gbmV3IENvbGxhdG9yUmVhZGVyKGIsIGZhbHNlKTsKKyAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gTUlOX0JJTkFSWV9EQVRBX1NJWkVfKSB7CisgICAgICAgICAgICByZWFkZXIucmVhZEltcChyYmMsIG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVhZGVyLnJlYWRIZWFkZXIocmJjKTsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkT3B0aW9ucyhyYmMpOworICAgICAgICAgICAgLy8gZHVwbGljYXRpbmcgVUNBXydzIGRhdGEKKyAgICAgICAgICAgIHJiYy5zZXRXaXRoVUNBVGFibGVzKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIEludmVyc2VVQ0EgZ2V0SW52ZXJzZVVDQSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEludmVyc2VVQ0EgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgSW5wdXRTdHJlYW0gaSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL2ludnVjYS5pY3UiKTsKKy8vICAgICAgICB0cnkgICAgeworLy8gICAgICAgICAgICBTdHJpbmcgaW52ZGF0ID0gIi9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaW52dWNhLmljdSI7CisvLyAgICAgICAgICAgIElucHV0U3RyZWFtIGkgPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5jbGFzcy5nZXRSZXNvdXJjZUFzU3RyZWFtKGludmRhdCk7CisgICAgICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpLCAxMTAwMDApOworICAgICAgICAgICAgcmVzdWx0ID0gQ29sbGF0b3JSZWFkZXIucmVhZEludmVyc2VVQ0EoYik7CisgICAgICAgICAgICBiLmNsb3NlKCk7CisgICAgICAgICAgICBpLmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworLy8gICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKy8vICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIGNvbGxhdG9yIGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93IGlmIGRhdGEgZmlsZSBmYWlscyBhdXRoZW50aWNhdGlvbiAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByaXZhdGUgQ29sbGF0b3JSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgdGhpcyhpbnB1dFN0cmVhbSwgdHJ1ZSk7CisgICAgICAgIC8qCisgICAgICAgIGJ5dGVbXSBVbmljb2RlVmVyc2lvbiA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRF8sIFVDQV9BVVRIRU5USUNBVEVfKTsKKyAgICAgICAgLy8gd2VpdjogY2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSBjb3JyZWN0IFVuaWNvZGUgdmVyc2lvbiBpbiAKKyAgICAgICAgLy8gYmluYXJ5IGZpbGVzCisgICAgICAgIFZlcnNpb25JbmZvIFVDRFZlcnNpb24gPSBVQ2hhcmFjdGVyLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgICAgIGlmKFVuaWNvZGVWZXJzaW9uWzBdICE9IFVDRFZlcnNpb24uZ2V0TWFqb3IoKSAKKyAgICAgICAgfHwgVW5pY29kZVZlcnNpb25bMV0gIT0gVUNEVmVyc2lvbi5nZXRNaW5vcigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oV1JPTkdfVU5JQ09ERV9WRVJTSU9OX0VSUk9SXyk7CisgICAgICAgIH0KKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgdXByb3BzLmljdSBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQHBhcmFtIHJlYWRJQ1VIZWFkZXIgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgSUNVIGhlYWRlciBoYXMgdG8gYmUgcmVhZAorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcml2YXRlIENvbGxhdG9yUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCBib29sZWFuIHJlYWRJQ1VIZWFkZXIpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBpZiAocmVhZElDVUhlYWRlcikgeworICAgICAgICAgICAgYnl0ZVtdIFVuaWNvZGVWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lEXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ0FfQVVUSEVOVElDQVRFXyk7CisgICAgICAgICAgICAvLyB3ZWl2OiBjaGVjayB0aGF0IHdlIGhhdmUgdGhlIGNvcnJlY3QgVW5pY29kZSB2ZXJzaW9uIGluIAorICAgICAgICAgICAgLy8gYmluYXJ5IGZpbGVzCisgICAgICAgICAgICBWZXJzaW9uSW5mbyBVQ0RWZXJzaW9uID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworICAgICAgICAgICAgaWYoVW5pY29kZVZlcnNpb25bMF0gIT0gVUNEVmVyc2lvbi5nZXRNYWpvcigpIAorICAgICAgICAgICAgfHwgVW5pY29kZVZlcnNpb25bMV0gIT0gVUNEVmVyc2lvbi5nZXRNaW5vcigpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKFdST05HX1VOSUNPREVfVkVSU0lPTl9FUlJPUl8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXyA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgIH0KKyAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBSZWFkIGFuZCBicmVhayB1cCB0aGUgaGVhZGVyIHN0cmVhbSBvZiBkYXRhIHBhc3NlZCBpbiBhcyBhcmd1bWVudHMgaW50byAKKyAgICAqIG1lYW5pbmdmdWwgQ29sbGF0b3IgZGF0YS4KKyAgICAqIEBwYXJhbSByYmMgUnVsZUJhc2VkQ29sbGF0b3IgdG8gcG9wdWxhdGUgd2l0aCBoZWFkZXIgaW5mb3JtYXRpb24KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlcmUncyBhIGRhdGEgZXJyb3IuCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZEhlYWRlcihSdWxlQmFzZWRDb2xsYXRvciByYmMpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgbV9zaXplXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIC8vIGFsbCB0aGUgb2Zmc2V0cyBhcmUgaW4gYnl0ZXMKKyAgICAgICAgICAvLyB0byBnZXQgdGhlIGFkZHJlc3MgYWRkIHRvIHRoZSBoZWFkZXIgYWRkcmVzcyBhbmQgY2FzdCBwcm9wZXJseSAKKyAgICAgICAgICAvLyBEZWZhdWx0IG9wdGlvbnMgaW50IG9wdGlvbnMKKyAgICAgICAgbV9oZWFkZXJTaXplXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7IC8vIHN0YXJ0IG9mIG9wdGlvbnMKKyAgICAgICAgaW50IHJlYWRjb3VudCA9IDg7IC8vIGZvciBzaXplIGFuZCBoZWFkZXJzaXplCisgICAgICAgIC8vIHN0cnVjdHVyZSB3aGljaCBob2xkcyB2YWx1ZXMgZm9yIGluZGlyZWN0IHBvc2l0aW9uaW5nIGFuZCBpbXBsaWNpdCAKKyAgICAgICAgLy8gcmFuZ2VzCisgICAgICAgICAgaW50IFVDQUNvbnN0ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgCisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICAvLyB0aGlzIG9uZSBpcyBuZWVkZWQgb25seSBmb3IgVUNBLCB0byBjb3B5IHRoZSBhcHByb3ByaWF0ZSAKKyAgICAgICAgLy8gY29udHJhY3Rpb25zCisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwKDQpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgICAvLyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoNCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICAgIC8vIGNvbnN0IHVpbnQ4X3QgKm1hcHBpbmdQb3NpdGlvbjsgCisgICAgICAgICAgaW50IG1hcHBpbmcgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgICAvLyB1aW50MzJfdCAqZXhwYW5zaW9uOyAKKyAgICAgICAgICByYmMubV9leHBhbnNpb25PZmZzZXRfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7IAorICAgICAgICAgIC8vIFVDaGFyICpjb250cmFjdGlvbkluZGV4OyAgICAgCisgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25PZmZzZXRfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7IAorICAgICAgICAgIC8vIHVpbnQzMl90ICpjb250cmFjdGlvbkNFczsKKyAgICAgICAgICBpbnQgY29udHJhY3Rpb25DRSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAgIAorICAgICAgICAgIC8vIG5lZWRlZCBmb3IgdmFyaW91cyBjbG9zdXJlcyBpbnQgY29udHJhY3Rpb25TaXplIAorICAgICAgICAgIGludCBjb250cmFjdGlvblNpemUgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsgIAorICAgICAgICAgIC8vIGFycmF5IG9mIGxhc3QgY29sbGF0aW9uIGVsZW1lbnQgaW4gZXhwYW5zaW9uCisgICAgICAgICAgaW50IGV4cGFuc2lvbkVuZENFID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7ICAKKyAgICAgICAgICAvLyBhcnJheSBvZiBtYXhpbXVtIGV4cGFuc2lvbiBzaXplIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGV4cGFuc2lvbgorICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudHMgd2l0aCBsYXN0IGVsZW1lbnQgaW4gZXhwYW5zaW9uRW5kQ0UKKyAgICAgICAgICBpbnQgZXhwYW5zaW9uRW5kQ0VNYXhTaXplID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7ICAgICAKKyAgICAgICAgICAvLyBzaXplIG9mIGVuZEV4cGFuc2lvbkNFIGludCBleHBhbnNpb25FbmRDRVNpemUKKyAgICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDQpOworICAgICAgICByZWFkY291bnQgKz0gNDsgCisgICAgICAgICAgLy8gaGFzaCB0YWJsZSBvZiB1bnNhZmUgY29kZSBwb2ludHMgCisgICAgICAgICAgaW50IHVuc2FmZSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAgICAgICAgICAgIAorICAgICAgICAgIC8vIGhhc2ggdGFibGUgb2YgZmluYWwgY29kZSBwb2ludHMgaW4gY29udHJhY3Rpb25zLgorICAgICAgICAgIGludCBjb250cmFjdGlvbkVuZCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICAgIC8vIGludCBDRWNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDQpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgICAvLyBpcyBqYW1vU3BlY2lhbAorICAgICAgICAgIHJiYy5tX2lzSmFtb1NwZWNpYWxfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCb29sZWFuKCk7CisgICAgICAgIHJlYWRjb3VudCArKzsgCisgICAgICAgIC8vIHBhZGRpbmcKKyAgICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDMpOworICAgICAgICByZWFkY291bnQgKz0gMzsKKyAgICAgICAgcmJjLm1fdmVyc2lvbl8gPSByZWFkVmVyc2lvbihtX2RhdGFJbnB1dFN0cmVhbV8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fVUNBX3ZlcnNpb25fID0gcmVhZFZlcnNpb24obV9kYXRhSW5wdXRTdHJlYW1fKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX1VDRF92ZXJzaW9uXyA9IHJlYWRWZXJzaW9uKG1fZGF0YUlucHV0U3RyZWFtXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICAgIC8vIGJ5dGUgY2hhcnNldE5hbWVbXSA9IG5ldyBieXRlWzMyXTsgLy8gZm9yIGNoYXJzZXQgQ0VzCisgICAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcygzMik7CisgICAgICAgIHJlYWRjb3VudCArPSAzMjsKKyAgICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDU2KTsgLy8gZm9yIGZ1dHVyZSB1c2UKKyAgICAgICAgcmVhZGNvdW50ICs9IDU2OyAKKyAgICAgICAgaWYgKG1faGVhZGVyU2l6ZV8gPCByZWFkY291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW50ZXJuYWwgRXJyb3I6IEhlYWRlciBzaXplIGVycm9yIik7CisgICAgICAgIH0KKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyhtX2hlYWRlclNpemVfIC0gcmVhZGNvdW50KTsKKyAgICAgICAgCisgICAgICAgICAgaWYgKHJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XyA9PSAwKSB7IC8vIGNvbnRyYWN0aW9uIGNhbiBiZSBudWxsCisgICAgICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IG1hcHBpbmc7CisgICAgICAgICAgICAgIGNvbnRyYWN0aW9uQ0UgPSBtYXBwaW5nOworICAgICAgICAgIH0KKyAgICAgICAgbV9vcHRpb25TaXplXyA9IHJiYy5tX2V4cGFuc2lvbk9mZnNldF8gLSBtX2hlYWRlclNpemVfOworICAgICAgICAgIG1fZXhwYW5zaW9uU2l6ZV8gPSByYmMubV9jb250cmFjdGlvbk9mZnNldF8gLSByYmMubV9leHBhbnNpb25PZmZzZXRfOworICAgICAgICAgIG1fY29udHJhY3Rpb25JbmRleFNpemVfID0gY29udHJhY3Rpb25DRSAtIHJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAgICAgICBtX2NvbnRyYWN0aW9uQ0VTaXplXyA9IG1hcHBpbmcgLSBjb250cmFjdGlvbkNFOworICAgICAgICAgIG1fdHJpZVNpemVfID0gZXhwYW5zaW9uRW5kQ0UgLSBtYXBwaW5nOworICAgICAgICAgIG1fZXhwYW5zaW9uRW5kQ0VTaXplXyA9IGV4cGFuc2lvbkVuZENFTWF4U2l6ZSAtIGV4cGFuc2lvbkVuZENFOworICAgICAgICAgIG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplU2l6ZV8gPSB1bnNhZmUgLSBleHBhbnNpb25FbmRDRU1heFNpemU7CisgICAgICAgICAgbV91bnNhZmVTaXplXyA9IGNvbnRyYWN0aW9uRW5kIC0gdW5zYWZlOworICAgICAgICBtX1VDQVZhbHVlc1NpemVfID0gbV9zaXplXyAtIFVDQUNvbnN0OyAvLyBVQ0EgdmFsdWUsIHdpbGwgYmUgaGFuZGxlZCBsYXRlcgorICAgICAgICAvLyB0cmVhdCBpdCBhcyBub3JtYWwgY29sbGF0b3IgZmlyc3QKKyAgICAgICAgLy8gZm9yIG5vcm1hbCBjb2xsYXRvciB0aGVyZSBpcyBubyBVQ0EgY29udHJhY3Rpb24KKyAgICAgICAgbV9jb250cmFjdGlvbkVuZFNpemVfID0gbV9zaXplXyAtIGNvbnRyYWN0aW9uRW5kOyAgICAKKyAgICAgICAgCisgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25PZmZzZXRfID4+PSAxOyAvLyBjYXN0aW5nIHRvIGludHMKKyAgICAgICAgICByYmMubV9leHBhbnNpb25PZmZzZXRfID4+PSAyOyAvLyBjYXN0aW5nIHRvIGNoYXJzCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWQgYW5kIGJyZWFrIHVwIHRoZSBjb2xsYXRpb24gb3B0aW9ucyBwYXNzZWQgaW4gdGhlIHN0cmVhbSBvZiBkYXRhCisgICAgICogYW5kIHVwZGF0ZSB0aGUgYXJndW1lbnQgQ29sbGF0b3Igd2l0aCB0aGUgcmVzdWx0cworICAgICAqIEBwYXJhbSByYmMgUnVsZUJhc2VkQ29sbGF0b3IgdG8gcG9wdWxhdGUKKyAgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIHRoZXJlJ3MgYSBkYXRhIGVycm9yLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9wdGlvbnMoUnVsZUJhc2VkQ29sbGF0b3IgcmJjKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIGludCByZWFkY291bnQgPSAwOworICAgICAgICByYmMubV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXyA9IChtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9kZWZhdWx0SXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpID09IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuU0hJRlRFRF8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fZGVmYXVsdENhc2VGaXJzdF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fZGVmYXVsdElzQ2FzZUxldmVsXyA9IChtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICBpbnQgdmFsdWUgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgaWYgKHZhbHVlID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXykgeworICAgICAgICAgICAgdmFsdWUgPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHZhbHVlID0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTjsKKyAgICAgICAgfQorICAgICAgICByYmMubV9kZWZhdWx0RGVjb21wb3NpdGlvbl8gPSB2YWx1ZTsKKyAgICAgICAgcmJjLm1fZGVmYXVsdFN0cmVuZ3RoXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9kZWZhdWx0SXNIaXJhZ2FuYTRfID0gKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fID0gKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcCg2MCk7IC8vIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCisgICAgICAgIHJlYWRjb3VudCArPSA2MDsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyhtX29wdGlvblNpemVfIC0gcmVhZGNvdW50KTsKKyAgICAgICAgaWYgKG1fb3B0aW9uU2l6ZV8gPCByZWFkY291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW50ZXJuYWwgRXJyb3I6IE9wdGlvbiBzaXplIGVycm9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBSZWFkIGFuZCBicmVhayB1cCB0aGUgc3RyZWFtIG9mIGRhdGEgcGFzc2VkIGluIGFzIGFyZ3VtZW50cyBpbnRvIAorICAgICogbWVhbmluZ2Z1bCBDb2xsYXRvciBkYXRhLgorICAgICogQHBhcmFtIHJiYyBSdWxlQmFzZWRDb2xsYXRvciB0byBwb3B1bGF0ZQorICAgICogQHBhcmFtIFVDQUNvbnN0IG9iamVjdCB0byBmaWxsIHVwIHdpdGggVUNBIGNvbnN0YW50cyBpZiB3ZSBhcmUgcmVhZGluZyAKKyAgICAqICAgICAgICAgICAgICAgICB0aGUgVUNBIGNvbGxhdG9yLCBpZiBub3QgdXNlIGEgbnVsbAorICAgICogQHJldHVybiBVQ0FDb250cmFjdGlvbnMgYXJyYXkgZmlsbGVkIHVwIHdpdGggdGhlIFVDQSBjb250cmFjdGlvbnMgaWYgd2UKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHJlYWRpbmcgdGhlIFVDQSBjb2xsYXRvcgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGVyZSdzIGEgZGF0YSBlcnJvci4KKyAgICAqIEBkcmFmdCAyLjIKKyAgICAqLworICAgIHByaXZhdGUgY2hhcltdIHJlYWRJbXAoUnVsZUJhc2VkQ29sbGF0b3IgcmJjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBQ29uc3RhbnRzIFVDQUNvbnN0KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgcmVhZEhlYWRlcihyYmMpOworICAgICAgICAvLyBoZWFkZXIgc2l6ZSBoYXMgYmVlbiBjaGVja2VkIGJ5IHJlYWRIZWFkZXIKKyAgICAgICAgaW50IHJlYWRjb3VudCA9IG1faGVhZGVyU2l6ZV87IAorICAgICAgICAvLyBvcHRpb24gc2l6ZSBoYXMgYmVlbiBjaGVja2VkIGJ5IHJlYWRPcHRpb25zCisgICAgICAgIHJlYWRPcHRpb25zKHJiYyk7CisgICAgICAgIHJlYWRjb3VudCArPSBtX29wdGlvblNpemVfOworICAgICAgICBtX2V4cGFuc2lvblNpemVfID4+PSAyOworICAgICAgICByYmMubV9leHBhbnNpb25fID0gbmV3IGludFttX2V4cGFuc2lvblNpemVfXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2V4cGFuc2lvblNpemVfOyBpICsrKSB7CisgICAgICAgICAgICByYmMubV9leHBhbnNpb25fW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZWFkY291bnQgKz0gKG1fZXhwYW5zaW9uU2l6ZV8gPDwgMik7CisgICAgICAgIGlmIChtX2NvbnRyYWN0aW9uSW5kZXhTaXplXyA+IDApIHsgCisgICAgICAgICAgICBtX2NvbnRyYWN0aW9uSW5kZXhTaXplXyA+Pj0gMTsKKyAgICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uSW5kZXhfID0gbmV3IGNoYXJbbV9jb250cmFjdGlvbkluZGV4U2l6ZV9dOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2NvbnRyYWN0aW9uSW5kZXhTaXplXzsgaSArKykgeworICAgICAgICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uSW5kZXhfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZWFkY291bnQgKz0gKG1fY29udHJhY3Rpb25JbmRleFNpemVfIDw8IDEpOworICAgICAgICAgICAgbV9jb250cmFjdGlvbkNFU2l6ZV8gPj49IDI7CisgICAgICAgICAgICByYmMubV9jb250cmFjdGlvbkNFXyA9IG5ldyBpbnRbbV9jb250cmFjdGlvbkNFU2l6ZV9dOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2NvbnRyYWN0aW9uQ0VTaXplXzsgaSArKykgeworICAgICAgICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uQ0VfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlYWRjb3VudCArPSAobV9jb250cmFjdGlvbkNFU2l6ZV8gPDwgMik7CisgICAgICAgIH0KKyAgICAgICAgcmJjLm1fdHJpZV8gPSBuZXcgSW50VHJpZShtX2RhdGFJbnB1dFN0cmVhbV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuRGF0YU1hbmlwdWxhdGUuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIGlmICghcmJjLm1fdHJpZV8uaXNMYXRpbjFMaW5lYXIoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJEYXRhIGNvcnJ1cHRlZCwgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJDb2xsYXRvciBUcmllcyBleHBlY3RlZCB0byBoYXZlIGxpbmVhciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAibGF0aW4gb25lIGRhdGEgYXJyYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgcmVhZGNvdW50ICs9IHJiYy5tX3RyaWVfLmdldFNlcmlhbGl6ZWREYXRhU2l6ZSgpOworICAgICAgICBtX2V4cGFuc2lvbkVuZENFU2l6ZV8gPj49IDI7CisgICAgICAgIHJiYy5tX2V4cGFuc2lvbkVuZENFXyA9IG5ldyBpbnRbbV9leHBhbnNpb25FbmRDRVNpemVfXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2V4cGFuc2lvbkVuZENFU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgIHJiYy5tX2V4cGFuc2lvbkVuZENFX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmVhZGNvdW50ICs9IChtX2V4cGFuc2lvbkVuZENFU2l6ZV8gPDwgMik7CisgICAgICAgIHJiYy5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV8gPSBuZXcgYnl0ZVttX2V4cGFuc2lvbkVuZENFTWF4U2l6ZVNpemVfXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZVNpemVfOyBpICsrKSB7CisgICAgICAgICAgICByYmMubV9leHBhbnNpb25FbmRDRU1heFNpemVfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCeXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmVhZGNvdW50ICs9IG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplU2l6ZV87CisgICAgICAgIHJiYy5tX3Vuc2FmZV8gPSBuZXcgYnl0ZVttX3Vuc2FmZVNpemVfXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3Vuc2FmZVNpemVfOyBpICsrKSB7CisgICAgICAgICAgICByYmMubV91bnNhZmVfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCeXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmVhZGNvdW50ICs9IG1fdW5zYWZlU2l6ZV87CisgICAgICAgIGlmIChVQ0FDb25zdCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgcmVhZGluZyB0aGUgVUNBCisgICAgICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5IHRoZSBVQ0Egb2Zmc2V0IGluIGFueSBjb2xsYXRvciBkYXRhIGlzIG5vdCAwIGFuZAorICAgICAgICAgICAgLy8gb25seSByZWZlcnMgdG8gdGhlIFVDQSBkYXRhCisgICAgICAgICAgICBtX2NvbnRyYWN0aW9uRW5kU2l6ZV8gLT0gbV9VQ0FWYWx1ZXNTaXplXzsgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmJjLm1fY29udHJhY3Rpb25FbmRfID0gbmV3IGJ5dGVbbV9jb250cmFjdGlvbkVuZFNpemVfXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2NvbnRyYWN0aW9uRW5kU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uRW5kX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpOworICAgICAgICB9CisgICAgICAgIHJlYWRjb3VudCArPSBtX2NvbnRyYWN0aW9uRW5kU2l6ZV87CisgICAgICAgIGlmIChVQ0FDb25zdCAhPSBudWxsKSB7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICBpbnQgcmVhZFVDQUNvbnN0Y291bnQgPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVEVSVElBUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVEVSVElBUllfSUdOT1JBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVEVSVElBUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1BSSU1BUllfSUdOT1JBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1BSSU1BUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1NFQ09OREFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfU0VDT05EQVJZX0lHTk9SQUJMRV9bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1NFQ09OREFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfUFJJTUFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9QUklNQVJZX0lHTk9SQUJMRV9bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9WQVJJQUJMRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVkFSSUFCTEVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1ZBUklBQkxFX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7IAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVkFSSUFCTEVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9OT05fVkFSSUFCTEVfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX05PTl9WQVJJQUJMRV9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9OT05fVkFSSUFCTEVfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfTk9OX1ZBUklBQkxFX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5SRVNFVF9UT1BfVkFMVUVfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlJFU0VUX1RPUF9WQUxVRV9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfSU1QTElDSVRfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX0lNUExJQ0lUX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX0lNUExJQ0lUX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX0lNUExJQ0lUX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9UUkFJTElOR19bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVFJBSUxJTkdfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVFJBSUxJTkdfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVFJBSUxJTkdfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7IAorICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9UT1BfTUlOXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX0lNUExJQ0lUX01JTl8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfSU1QTElDSVRfTUFYXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9UUkFJTElOR19NSU5fID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX1RSQUlMSU5HX01BWF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfU1BFQ0lBTF9NSU5fID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX1NQRUNJQUxfTUFYXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgaW50IHJlc3VsdHNpemUgPSAobV9VQ0FWYWx1ZXNTaXplXyAtIHJlYWRVQ0FDb25zdGNvdW50KSA+PiAxOworICAgICAgICAgICAgY2hhciByZXN1bHRbXSA9IG5ldyBjaGFyW3Jlc3VsdHNpemVdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHRzaXplOyBpICsrKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0W2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZWFkY291bnQgKz0gbV9VQ0FWYWx1ZXNTaXplXzsKKyAgICAgICAgICAgIGlmIChyZWFkY291bnQgIT0gbV9zaXplXykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW50ZXJuYWwgRXJyb3I6IERhdGEgZmlsZSBzaXplIGVycm9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGlmIChyZWFkY291bnQgIT0gbV9zaXplXykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogRGF0YSBmaWxlIHNpemUgZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhZHMgaW4gdGhlIGludmVyc2UgdWNhIGRhdGEKKyAgICAgKiBAcGFyYW0gaW5wdXQgaW5wdXQgc3RyZWFtIHdpdGggdGhlIGludmVyc2UgdWNhIGRhdGEKKyAgICAgKiBAcmV0dXJuIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBpbnZlcnNlIHVjYSBkYXRhCisgICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyB0aGUgCisgICAgICogICAgICAgICAgICBpbnZlcnNlIHVjYQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLkludmVyc2VVQ0EgcmVhZEludmVyc2VVQ0EoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgIGJ5dGVbXSBVbmljb2RlVmVyc2lvbiA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBJTlZFUlNFX1VDQV9EQVRBX0ZPUk1BVF9JRF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5WRVJTRV9VQ0FfQVVUSEVOVElDQVRFXyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gd2VpdjogY2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSBjb3JyZWN0IFVuaWNvZGUgdmVyc2lvbiBpbiAKKyAgICAgICAgLy8gYmluYXJ5IGZpbGVzCisgICAgICAgIFZlcnNpb25JbmZvIFVDRFZlcnNpb24gPSBVQ2hhcmFjdGVyLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgICAgIGlmKFVuaWNvZGVWZXJzaW9uWzBdICE9IFVDRFZlcnNpb24uZ2V0TWFqb3IoKSAKKyAgICAgICAgfHwgVW5pY29kZVZlcnNpb25bMV0gIT0gVUNEVmVyc2lvbi5nZXRNaW5vcigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oV1JPTkdfVU5JQ09ERV9WRVJTSU9OX0VSUk9SXyk7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JbnZlcnNlVUNBIHJlc3VsdCA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JbnZlcnNlVUNBKCk7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOyAgICAgICAgCisgICAgICAgIGlucHV0LnJlYWRJbnQoKTsgLy8gYnl0ZXNpemUKKyAgICAgICAgaW50IHRhYmxlc2l6ZSA9IGlucHV0LnJlYWRJbnQoKTsgLy8gaW4gaW50IHNpemUKKyAgICAgICAgaW50IGNvbnRzaXplID0gaW5wdXQucmVhZEludCgpOyAgLy8gaW4gY2hhciBzaXplCisgICAgICAgIGlucHV0LnJlYWRJbnQoKTsgLy8gdGFibGUgaW4gYnl0ZXMKKyAgICAgICAgaW5wdXQucmVhZEludCgpOyAvLyBjb250cyBpbiBieXRlcworICAgICAgICByZXN1bHQubV9VQ0FfdmVyc2lvbl8gPSByZWFkVmVyc2lvbihpbnB1dCk7CisgICAgICAgIGlucHV0LnNraXBCeXRlcyg4KTsgLy8gc2tpcCBwYWRkaW5nCisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSA9IHRhYmxlc2l6ZSAqIDM7IC8vIG9uZSBjb2x1bW4gZm9yIGVhY2ggc3RyZW5ndGgKKyAgICAgICAgcmVzdWx0Lm1fdGFibGVfID0gbmV3IGludFtzaXplXTsKKyAgICAgICAgcmVzdWx0Lm1fY29udGludWF0aW9uc18gPSBuZXcgY2hhcltjb250c2l6ZV07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5tX3RhYmxlX1tpXSA9IGlucHV0LnJlYWRJbnQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnRzaXplOyBpICsrKSB7CisgICAgICAgICAgICByZXN1bHQubV9jb250aW51YXRpb25zX1tpXSA9IGlucHV0LnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaW5wdXQuY2xvc2UoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhZHMgZm91ciBieXRlcyBmcm9tIHRoZSBpbnB1dCBhbmQgcmV0dXJucyBhIFZlcnNpb25JbmZvCisgICAgICogb2JqZWN0LiBVc2UgaXQgdG8gcmVhZCBkaWZmZXJlbnQgY29sbGF0b3IgdmVyc2lvbnMuCisgICAgICogQHBhcmFtIGlucHV0IGFscmVhZHkgaW5zdGFudGlhdGVkIERhdGFJbnB1dFN0cmVhbSwgcG9zaXRpb25lZCAKKyAgICAgKiAgICAgICAgICAgICAgYXQgdGhlIHN0YXJ0IG9mIGZvdXIgdmVyc2lvbiBieXRlcworICAgICAqIEByZXR1cm4gYSByZWFkeSBWZXJzaW9uSW5mbyBvYmplY3QKKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nICAKKyAgICAgKiAgICAgICAgICAgIHZlcnNpb24gYnl0ZXMKKyAgICAgKi8KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIFZlcnNpb25JbmZvIHJlYWRWZXJzaW9uKERhdGFJbnB1dFN0cmVhbSBpbnB1dCkgCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGJ5dGVbXSB2ZXJzaW9uID0gbmV3IGJ5dGVbNF07CisgICAgICAgIHZlcnNpb25bMF0gPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICB2ZXJzaW9uWzFdID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgdmVyc2lvblsyXSA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIHZlcnNpb25bM10gPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICAKKyAgICAgICAgVmVyc2lvbkluZm8gcmVzdWx0ID0gCisgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKAorICAgICAgICAgICAgKGludCl2ZXJzaW9uWzBdLCAoaW50KXZlcnNpb25bMV0sIAorICAgICAgICAgICAgKGludCl2ZXJzaW9uWzJdLCAoaW50KXZlcnNpb25bM10pOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBdXRoZW50aWNhdGUgdWNhIGRhdGEgZm9ybWF0IHZlcnNpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIFVDQV9BVVRIRU5USUNBVEVfIAorICAgICAgICAgICAgICAgID0gbmV3IElDVUJpbmFyeS5BdXRoZW50aWNhdGUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvblswXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmVyc2lvblsxXSA+PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1sxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9vIGhhcnNoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyYmIHZlcnNpb25bMV0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTl9bMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8mJiB2ZXJzaW9uWzJdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzJdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTl9bM107CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBdXRoZW50aWNhdGUgdWNhIGRhdGEgZm9ybWF0IHZlcnNpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIElOVkVSU0VfVUNBX0FVVEhFTlRJQ0FURV8gCisgICAgICAgICAgICAgICAgPSBuZXcgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gSU5WRVJTRV9VQ0FfREFUQV9GT1JNQVRfVkVSU0lPTl9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHZlcnNpb25bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PSBJTlZFUlNFX1VDQV9EQVRBX0ZPUk1BVF9WRVJTSU9OX1sxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAKKyAgICAvKioKKyAgICAqIERhdGEgaW5wdXQgc3RyZWFtIGZvciB1Y2EuaWN1IAorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gbV9kYXRhSW5wdXRTdHJlYW1fOworICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIGFuZCBpZCB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05fW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhieXRlKTB4MiwgKGJ5dGUpMHgyLCAoYnl0ZSkweDAsIChieXRlKTB4MH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRF9bXSA9IHsoYnl0ZSkweDU1LCAoYnl0ZSkweDQzLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg2ZiwgKGJ5dGUpMHg2Y307CisgICAgLyoqCisgICAgKiBJbnZlcnNlIFVDQSBmaWxlIGZvcm1hdCB2ZXJzaW9uIGFuZCBpZCB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIElOVkVSU0VfVUNBX0RBVEFfRk9STUFUX1ZFUlNJT05fW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhieXRlKTB4MiwgKGJ5dGUpMHgxLCAoYnl0ZSkweDAsIChieXRlKTB4MH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBJTlZFUlNFX1VDQV9EQVRBX0ZPUk1BVF9JRF9bXSA9IHsoYnl0ZSkweDQ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NmUsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NzYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg0M307CisgICAgLyoqCisgICAgKiBDb3JydXB0ZWQgZXJyb3Igc3RyaW5nCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09SUlVQVEVEX0RBVEFfRVJST1JfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRhdGEgY29ycnVwdGVkIGluIENvbGxhdGlvbiBkYXRhIGZpbGUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIFdyb25nIHVuaWNvZGUgdmVyc2lvbiBlcnJvciBzdHJpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBXUk9OR19VTklDT0RFX1ZFUlNJT05fRVJST1JfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuaWNvZGUgdmVyc2lvbiBpbiBiaW5hcnkgaW1hZ2UgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgY3VycmVudCBVbmljb2RlIHZlcnNpb24iOworCisgICAgLyoqCisgICAgICogU2l6ZSBvZiBleHBhbnNpb24gdGFibGUgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2V4cGFuc2lvblNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgY29udHJhY3Rpb24gaW5kZXggdGFibGUgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2NvbnRyYWN0aW9uSW5kZXhTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIGNvbnRyYWN0aW9uIHRhYmxlIGluIGJ5dGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jb250cmFjdGlvbkNFU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgVHJpZSBpbiBieXRlcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdHJpZVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogdGhhdCBlbmQgd2l0aCBhbiBleHBhbnNpb24gCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9leHBhbnNpb25FbmRDRVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1heGltdW0gc2l6ZSBvZiAKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudHMgdGhhdCBlbmQgd2l0aCBhIHBhcnRpY3VsYXIgZXhwYW5zaW9uIENFIGNvcnJlc3BvbmRpbmcKKyAgICAgKiB0byB0aGUgb25lcyBpbiBleHBhbnNpb25FbmRDRQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgb3B0aW9uIHRhYmxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbGxhdGlvbgorICAgICAqIG9wdGlvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX29wdGlvblNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHdob2xlIGRhdGEgZmlsZSBtaW51c2luZyB0aGUgSUNVIGhlYWRlcgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fc2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgY29sbGF0aW9uIGRhdGEgaGVhZGVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9oZWFkZXJTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSAiVW5zYWZlIiAKKyAgICAgKiBjb2RlcG9pbnRzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV91bnNhZmVTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGNvZGVwb2ludHMgdGhhdCBlbmRzCisgICAgICogd2l0aCBhIGNvbnRyYWN0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jb250cmFjdGlvbkVuZFNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgVUNBIGNvbnRyYWN0aW9uIGluZm9ybWF0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9VQ0FWYWx1ZXNTaXplXzsKKyAgICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclNlcnZpY2VTaGltLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclNlcnZpY2VTaGltLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUyZjQ0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yU2VydmljZVNoaW0uamF2YQpAQCAtMCwwICsxLDEzNSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLkNvbGxhdG9yRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKKworZmluYWwgY2xhc3MgQ29sbGF0b3JTZXJ2aWNlU2hpbSBleHRlbmRzIENvbGxhdG9yLlNlcnZpY2VTaGltIHsKKworICAgIENvbGxhdG9yIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgLy8gdXNlIHNlcnZpY2UgY2FjaGUsIGl0J3MgZmFzdGVyIHRoYW4gaW5zdGFudGlhdGlvbgorLy8gICAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKy8vICAgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGxvY2FsZSk7CisvLyAgICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFVMb2NhbGVbXSBhY3R1YWxMb2MgPSBuZXcgVUxvY2FsZVsxXTsKKyAgICAgICAgICAgIENvbGxhdG9yIGNvbGwgPSAoQ29sbGF0b3Ipc2VydmljZS5nZXQobG9jYWxlLCBhY3R1YWxMb2MpOworICAgICAgICAgICAgaWYgKGNvbGwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2NhdGUgQ29sbGF0b3IgZGF0YSIsICIiLCAiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb2xsID0gKENvbGxhdG9yKSBjb2xsLmNsb25lKCk7CisgICAgICAgICAgICBjb2xsLnNldExvY2FsZShhY3R1YWxMb2NbMF0sIGFjdHVhbExvY1swXSk7IC8vIHNlcnZpY2VzIG1ha2Ugbm8gZGlzdGluY3Rpb24gYmV0d2VlbiBhY3R1YWwgJiB2YWxpZAorICAgICAgICAgICAgcmV0dXJuIGNvbGw7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgT2JqZWN0IHJlZ2lzdGVySW5zdGFuY2UoQ29sbGF0b3IgY29sbGF0b3IsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KGNvbGxhdG9yLCBsb2NhbGUpOworICAgIH0KKworICAgIE9iamVjdCByZWdpc3RlckZhY3RvcnkoQ29sbGF0b3JGYWN0b3J5IGYpIHsKKyAgICAgICAgY2xhc3MgQ0ZhY3RvcnkgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICAgICAgICAgIENvbGxhdG9yRmFjdG9yeSBkZWxlZ2F0ZTsKKworICAgICAgICAgICAgQ0ZhY3RvcnkoQ29sbGF0b3JGYWN0b3J5IGYpIHsKKyAgICAgICAgICAgICAgICBzdXBlcihmLnZpc2libGUoKSk7IAorICAgICAgICAgICAgICAgIHRoaXMuZGVsZWdhdGUgPSBmOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIGxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBjb2xsID0gZGVsZWdhdGUuY3JlYXRlQ29sbGF0b3IobG9jKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29sbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlIG9iamVjdExvY2FsZSA9IG5ldyBVTG9jYWxlKGlkKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0RGlzcGxheU5hbWUob2JqZWN0TG9jYWxlLCBkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIFNldCBnZXRTdXBwb3J0ZWRJRHMoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldFN1cHBvcnRlZExvY2FsZUlEcygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBDRmFjdG9yeShmKSk7CisgICAgfQorCisgICAgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCByZWdpc3RyeUtleSkgeworICAgICAgICByZXR1cm4gc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeSgoRmFjdG9yeSlyZWdpc3RyeUtleSk7CisgICAgfQorCisgICAgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgLy8gVE9ETyByZXdyaXRlIHRoaXMgdG8ganVzdCB3cmFwIGdldEF2YWlsYWJsZVVMb2NhbGVzIGxhdGVyCisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBvYmplY3RMb2NhbGUsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICBTdHJpbmcgaWQgPSBvYmplY3RMb2NhbGUuZ2V0TmFtZSgpOworICAgICAgICByZXR1cm4gc2VydmljZS5nZXREaXNwbGF5TmFtZShpZCwgZGlzcGxheUxvY2FsZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ1NlcnZpY2UgZXh0ZW5kcyBJQ1VMb2NhbGVTZXJ2aWNlIHsKKyAgICAgICAgQ1NlcnZpY2UoKSB7CisgICAgICAgICAgICBzdXBlcigiQ29sbGF0b3IiKTsKKworICAgICAgICAgICAgY2xhc3MgQ29sbGF0b3JGYWN0b3J5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IHsKKyAgICAgICAgICAgICAgICBDb2xsYXRvckZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgICAgIHN1cGVyKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIHVsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSdWxlQmFzZWRDb2xsYXRvcih1bG9jKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJGYWN0b3J5KG5ldyBDb2xsYXRvckZhY3RvcnkoKSk7CisgICAgICAgICAgICBtYXJrRGVmYXVsdCgpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVEZWZhdWx0KEtleSBrZXksIFN0cmluZ1tdIGFjdHVhbElEUmV0dXJuKSB7CisgICAgICAgICAgICBpZiAoYWN0dWFsSURSZXR1cm4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGFjdHVhbElEUmV0dXJuWzBdID0gInJvb3QiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKFVMb2NhbGUuUk9PVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBJQ1VMb2NhbGVTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgQ1NlcnZpY2UoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvc2VkQ2hhckl0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvc2VkQ2hhckl0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MjU1M2ZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG9zZWRDaGFySXRlci5qYXZhCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CisKKy8qKgorICogPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiBpcyBhbiBpdGVyYXRvciBjbGFzcyB0aGF0IHJldHVybnMgYWxsCisgKiBvZiB0aGUgcHJlY29tcG9zZWQgY2hhcmFjdGVycyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIHN0YW5kYXJkLCBhbG9uZworICogd2l0aCB0aGVpciBkZWNvbXBvc2VkIGZvcm1zLiAgVGhpcyBpcyBvZnRlbiB1c2VmdWwgd2hlbiBidWlsZGluZworICogZGF0YSB0YWJsZXMgKDxpPmUuZy48L2k+IGNvbGxhdGlvbiB0YWJsZXMpIHdoaWNoIG5lZWQgdG8gdHJlYXQgY29tcG9zZWQKKyAqIGFuZCBkZWNvbXBvc2VkIGNoYXJhY3RlcnMgZXF1aXZhbGVudGx5LgorICogPHA+CisgKiBGb3IgZXhhbXBsZSwgaW1hZ2luZSB0aGF0IHlvdSBoYXZlIGJ1aWx0IGEgY29sbGF0aW9uIHRhYmxlIHdpdGggb3JkZXJpbmcKKyAqIHJ1bGVzIGZvciB0aGUge0BsaW5rIE5vcm1hbGl6ZXIjREVDT01QIGNhbm9uaWNhbGx5IGRlY29tcG9zZWR9IGZvcm1zIG9mIGFsbAorICogY2hhcmFjdGVycyB1c2VkIGluIGEgcGFydGljdWxhciBsYW5ndWFnZS4gIFdoZW4geW91IHByb2Nlc3MgaW5wdXQgdGV4dCB1c2luZworICogdGhpcyB0YWJsZSwgdGhlIHRleHQgbXVzdCBmaXJzdCBiZSBkZWNvbXBvc2VkIHNvIHRoYXQgaXQgbWF0Y2hlcyB0aGUgZm9ybQorICogdXNlZCBpbiB0aGUgdGFibGUuICBUaGlzIGNhbiBpbXBvc2UgYSBwZXJmb3JtYW5jZSBwZW5hbHR5IHRoYXQgbWF5IGJlCisgKiB1bmFjY2VwdGFibGUgaW4gc29tZSBzaXR1YXRpb25zLgorICogPHA+CisgKiBZb3UgY2FuIGF2b2lkIHRoaXMgcHJvYmxlbSBieSBlbnN1cmluZyB0aGF0IHRoZSBjb2xsYXRpb24gdGFibGUgY29udGFpbnMKKyAqIHJ1bGVzIGZvciBib3RoIHRoZSBkZWNvbXBvc2VkIDxpPmFuZDwvaT4gY29tcG9zZWQgdmVyc2lvbnMgb2YgZWFjaCBjaGFyYWN0ZXIuCisgKiBUbyBkbyBzbywgdXNlIGEgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiB0byBpdGVyYXRlIHRocm91Z2ggYWxsIG9mIHRoZQorICogY29tcG9zZWQgY2hhcmFjdGVycyBpbiBVbmljb2RlLiAgSWYgdGhlIGRlY29tcG9zaXRpb24gZm9yIHRoYXQgY2hhcmFjdGVyCisgKiBjb25zaXN0cyBzb2xlbHkgb2YgY2hhcmFjdGVycyB0aGF0IGFyZSBsaXN0ZWQgaW4geW91ciBydWxlc2V0LCB5b3UgY2FuCisgKiBhZGQgYSBuZXcgcnVsZSBmb3IgdGhlIGNvbXBvc2VkIGNoYXJhY3RlciB0aGF0IG1ha2VzIGl0IGVxdWl2YWxlbnQgdG8KKyAqIGl0cyBkZWNvbXBvc2l0aW9uIHNlcXVlbmNlLgorICogPHA+CisgKiBOb3RlIHRoYXQgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiBpdGVyYXRlcyBvdmVyIGEgPGVtPnN0YXRpYzwvZW0+IHRhYmxlCisgKiBvZiB0aGUgY29tcG9zZWQgY2hhcmFjdGVycyBpbiBVbmljb2RlLiAgSWYgeW91IHdhbnQgdG8gaXRlcmF0ZSBvdmVyIHRoZQorICogY29tcG9zZWQgY2hhcmFjdGVycyBpbiBhIHBhcnRpY3VsYXIgc3RyaW5nLCB1c2Uge0BsaW5rIE5vcm1hbGl6ZXJ9IGluc3RlYWQuCisgKiA8cD4KKyAqIFdoZW4gY29uc3RydWN0aW5nIGEgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiB0aGVyZSBpcyBvbmUKKyAqIG9wdGlvbmFsIGZlYXR1cmUgdGhhdCB5b3UgY2FuIGVuYWJsZSBvciBkaXNhYmxlOgorICogPHVsPgorICogICA8bGk+e0BsaW5rIE5vcm1hbGl6ZXIjSUdOT1JFX0hBTkdVTH0gLSBEbyBub3QgaXRlcmF0ZSBvdmVyIHRoZSBIYW5ndWwKKyAqICAgICAgICAgIGNoYXJhY3RlcnMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgSmFtbyBkZWNvbXBvc2l0aW9ucy4KKyAqICAgICAgICAgIFRoaXMgb3B0aW9uIGlzIG9mZiBieSBkZWZhdWx0ICg8aT5pLmUuPC9pPiBIYW5ndWwgcHJvY2Vzc2luZyBpcyBlbmFibGVkKQorICogICAgICAgICAgc2luY2UgdGhlIFVuaWNvZGUgc3RhbmRhcmQgc3BlY2lmaWVzIHRoYXQgSGFuZ3VsIHRvIEphbW8gCisgKiAgICAgICAgICBpcyBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLgorICogPC91bD4KKyAqIDxwPgorICogPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiBpcyBjdXJyZW50bHkgYmFzZWQgb24gdmVyc2lvbiAyLjEuOCBvZiB0aGUKKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmciIHRhcmdldD0idW5pY29kZSI+VW5pY29kZSBTdGFuZGFyZDwvYT4uCisgKiBJdCB3aWxsIGJlIHVwZGF0ZWQgYXMgbGF0ZXIgdmVyc2lvbnMgb2YgVW5pY29kZSBhcmUgcmVsZWFzZWQuCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yCisgKi8KKy8vL0NMT1ZFUjpPRkYKK3B1YmxpYyBmaW5hbCBjbGFzcyBDb21wb3NlZENoYXJJdGVyIHsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCB0aGF0IGluZGljYXRlcyB0aGUgaXRlcmF0aW9uIGhhcyBjb21wbGV0ZWQuCisgICAgICoge0BsaW5rICNuZXh0fSByZXR1cm5zIHRoaXMgdmFsdWUgd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBjb21wb3NlZCBjaGFyYWN0ZXJzCisgICAgICogb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsICBjaGFyIERPTkUgPSAoY2hhcikgTm9ybWFsaXplci5ET05FOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+LiAgVGhlIGl0ZXJhdG9yIHdpbGwgcmV0dXJuCisgICAgICogYWxsIFVuaWNvZGUgY2hhcmFjdGVycyB3aXRoIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9ucywgaW5jbHVkaW5nIEtvcmVhbgorICAgICAqIEhhbmd1bCBjaGFyYWN0ZXJzLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG9zZWRDaGFySXRlcigpIHsKKyAgICAgICAgY29tcGF0ID0gZmFsc2U7CisgICAgICAgIG9wdGlvbnMgPTA7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBub24tZGVmYXVsdCA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IHdpdGggb3B0aW9uYWwgYmVoYXZpb3IuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNvbXBhdCAgICA8dHQ+ZmFsc2U8L3R0PiBmb3IgY2Fub25pY2FsIGRlY29tcG9zaXRpb25zIG9ubHk7CisgICAgICogICAgICAgICAgICAgICAgICA8dHQ+dHJ1ZTwvdHQ+IGZvciBib3RoIGNhbm9uaWNhbCBhbmQgY29tcGF0aWJpbGl0eQorICAgICAqICAgICAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbmFsIGRlY29tcG9zaXRpb24gZmVhdHVyZXMuICBDdXJyZW50bHksIHRoZSBvbmx5CisgICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgb3B0aW9uIGlzIHtAbGluayBOb3JtYWxpemVyI0lHTk9SRV9IQU5HVUx9LCB3aGljaAorICAgICAqICAgICAgICAgICAgICAgICAgY2F1c2VzIHRoaXMgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiBub3QgdG8gaXRlcmF0ZQorICAgICAqICAgICAgICAgICAgICAgICAgb3ZlciB0aGUgSGFuZ3VsIGNoYXJhY3RlcnMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgIEphbW8gZGVjb21wb3NpdGlvbnMuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBDb21wb3NlZENoYXJJdGVyKGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucykgeworICAgICAgICB0aGlzLmNvbXBhdCA9IGNvbXBhdDsKKyAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9uczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZXJlIGFueSBwcmVjb21wb3NlZCBVbmljb2RlIGNoYXJhY3RlcnMgbm90IHlldCByZXR1cm5lZAorICAgICAqIGJ5IHtAbGluayAjbmV4dH0uCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CisgICAgICAgIGlmIChuZXh0Q2hhciA9PSBOb3JtYWxpemVyLkRPTkUpICB7CisgICAgICAgICAgICBmaW5kTmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV4dENoYXIgIT0gTm9ybWFsaXplci5ET05FOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IHByZWNvbXBvc2VkIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIFJlcGVhdGVkIGNhbGxzIHRvIDx0dD5uZXh0PC90dD4gcmV0dXJuIGFsbCBvZiB0aGUgcHJlY29tcG9zZWQgY2hhcmFjdGVycyBkZWZpbmVkCisgICAgICogYnkgVW5pY29kZSwgaW4gYXNjZW5kaW5nIG9yZGVyLiAgQWZ0ZXIgYWxsIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgaGF2ZQorICAgICAqIGJlZW4gcmV0dXJuZWQsIHtAbGluayAjaGFzTmV4dH0gd2lsbCByZXR1cm4gPHR0PmZhbHNlPC90dD4gYW5kIGZ1cnRoZXIgY2FsbHMKKyAgICAgKiB0byA8dHQ+bmV4dDwvdHQ+IHdpbGwgcmV0dXJuIHtAbGluayAjRE9ORX0uCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKSB7CisgICAgICAgIGlmIChuZXh0Q2hhciA9PSBOb3JtYWxpemVyLkRPTkUpICB7CisgICAgICAgICAgICBmaW5kTmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBjdXJDaGFyID0gbmV4dENoYXI7CisgICAgICAgIG5leHRDaGFyID0gTm9ybWFsaXplci5ET05FOworICAgICAgICByZXR1cm4gKGNoYXIpIGN1ckNoYXI7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVuaWNvZGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgcHJlY29tcG9zZWQgY2hhcmFjdGVyIG1vc3QKKyAgICAgKiByZWNlbnRseSByZXR1cm5lZCBieSB7QGxpbmsgI25leHR9LiAgVGhlIHJlc3VsdGluZyBkZWNvbXBvc2l0aW9uIGlzCisgICAgICogYWZmZWN0ZWQgYnkgdGhlIHNldHRpbmdzIG9mIHRoZSBvcHRpb25zIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZGVjb21wb3NpdGlvbigpIHsKKyAgICAgICAgLy8gdGhlIGRlY29tcG9zaXRpb24gYnVmZmVyIGNvbnRhaW5zIHRoZSBkZWNvbXBvc2l0aW9uIG9mIAorICAgICAgICAvLyBjdXJyZW50IGNoYXIgc28ganVzdCByZXR1cm4gaXQKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZGVjb21wQnVmLDAsIGJ1Zkxlbik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBmaW5kTmV4dENoYXIoKSB7CisgICAgICAgIGludCBjPWN1ckNoYXIrMTsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgaWYoYyA8IDB4RkZGRil7CisgICAgICAgICAgICAgICBidWZMZW4gPSBOb3JtYWxpemVySW1wbC5nZXREZWNvbXBvc2l0aW9uKGMsY29tcGF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbXBCdWYsMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wQnVmLmxlbmd0aCk7CisgICAgICAgICAgICAgICBpZihidWZMZW4+MCl7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjdXJDaGFyIGNhbiBiZSBkZWNvbXBvc2VkLi4uIHNvIGl0IGlzIGEgY29tcG9zZWQgY2hhcgorICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZSB0aGUgcmVzdWx0ICAgICAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBjKys7CisgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgYz1Ob3JtYWxpemVyLkRPTkU7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG5leHRDaGFyPWM7ICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgb3B0aW9uczsKKyAgICBwcml2YXRlIGJvb2xlYW4gY29tcGF0OworICAgIHByaXZhdGUgY2hhcltdIGRlY29tcEJ1ZiA9IG5ldyBjaGFyWzEwMF07CisgICAgcHJpdmF0ZSBpbnQgYnVmTGVuPTA7CisgICAgcHJpdmF0ZSBpbnQgY3VyQ2hhciA9IDA7CisgICAgcHJpdmF0ZSBpbnQgbmV4dENoYXIgPSBOb3JtYWxpemVyLkRPTkU7CisgICAgCisKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzVlMDdmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDUxNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5RXh0ZW5zaW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBpcyBjb21wb3NlZCBvZiB0d28gb3IgbW9yZSBvdGhlcgorICogdHJhbnNsaXRlcmF0b3Igb2JqZWN0cyBsaW5rZWQgdG9nZXRoZXIuICBGb3IgZXhhbXBsZSwgaWYgb25lCisgKiB0cmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRlcyBmcm9tIHNjcmlwdCBBIHRvIHNjcmlwdCBCLCBhbmQKKyAqIGFub3RoZXIgdHJhbnNsaXRlcmF0ZXMgZnJvbSBzY3JpcHQgQiB0byBzY3JpcHQgQywgdGhlIHR3byBtYXkgYmUKKyAqIGNvbWJpbmVkIHRvIGZvcm0gYSBuZXcgdHJhbnNsaXRlcmF0b3IgZnJvbSBBIHRvIEMuCisgKgorICogPHA+Q29tcG9zZWQgdHJhbnNsaXRlcmF0b3JzIG1heSBub3QgYmVoYXZlIGFzIGV4cGVjdGVkLiAgRm9yCisgKiBleGFtcGxlLCBpbnZlcnNlcyBtYXkgbm90IGNvbWJpbmUgdG8gZm9ybSB0aGUgaWRlbnRpdHkKKyAqIHRyYW5zbGl0ZXJhdG9yLiAgU2VlIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciB7QGxpbmsKKyAqIFRyYW5zbGl0ZXJhdG9yfSBmb3IgZGV0YWlscy4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3JbXSB0cmFuczsKKworICAgIHByaXZhdGUgaW50IG51bUFub255bW91c1JCVHMgPSAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTktMjAwMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciBnaXZlbiBhbiBhcnJheSBvZgorICAgICAqIHRyYW5zbGl0ZXJhdG9ycy4gIFRoZSBhcnJheSBvZiB0cmFuc2xpdGVyYXRvcnMgbWF5IGJlIG9mIGFueQorICAgICAqIGxlbmd0aCwgaW5jbHVkaW5nIHplcm8gb3Igb25lLCBob3dldmVyLCB1c2VmdWwgY29tcG91bmQKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMgaGF2ZSBhdCBsZWFzdCB0d28gY29tcG9uZW50cy4KKyAgICAgKiBAcGFyYW0gdHJhbnNsaXRlcmF0b3JzIGFycmF5IG9mIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPgorICAgICAqIG9iamVjdHMKKyAgICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBmaWx0ZXIuICBBbnkgY2hhcmFjdGVyIGZvciB3aGljaAorICAgICAqIDx0dD5maWx0ZXIuY29udGFpbnMoKTwvdHQ+IHJldHVybnMgPHR0PmZhbHNlPC90dD4gd2lsbCBub3QgYmUKKyAgICAgKiBhbHRlcmVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBJZiA8dHQ+ZmlsdGVyPC90dD4gaXMKKyAgICAgKiA8dHQ+bnVsbDwvdHQ+IHRoZW4gbm8gZmlsdGVyaW5nIGlzIGFwcGxpZWQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoVHJhbnNsaXRlcmF0b3JbXSB0cmFuc2xpdGVyYXRvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoam9pbklEcyh0cmFuc2xpdGVyYXRvcnMpLCBmaWx0ZXIpOworICAgICAgICB0cmFucyA9IG5ldyBUcmFuc2xpdGVyYXRvclt0cmFuc2xpdGVyYXRvcnMubGVuZ3RoXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0cmFuc2xpdGVyYXRvcnMsIDAsIHRyYW5zLCAwLCB0cmFucy5sZW5ndGgpOworICAgICAgICBjb21wdXRlTWF4aW11bUNvbnRleHRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yIGdpdmVuIGFuIGFycmF5IG9mCisgICAgICogdHJhbnNsaXRlcmF0b3JzLiAgVGhlIGFycmF5IG9mIHRyYW5zbGl0ZXJhdG9ycyBtYXkgYmUgb2YgYW55CisgICAgICogbGVuZ3RoLCBpbmNsdWRpbmcgemVybyBvciBvbmUsIGhvd2V2ZXIsIHVzZWZ1bCBjb21wb3VuZAorICAgICAqIHRyYW5zbGl0ZXJhdG9ycyBoYXZlIGF0IGxlYXN0IHR3byBjb21wb25lbnRzLgorICAgICAqIEBwYXJhbSB0cmFuc2xpdGVyYXRvcnMgYXJyYXkgb2YgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+CisgICAgICogb2JqZWN0cworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNsaXRlcmF0b3JzKSB7CisgICAgICAgIHRoaXModHJhbnNsaXRlcmF0b3JzLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBJRCBjb21wb3VuZCBJRAorICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQgb3IgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRQorICAgICAqIEBwYXJhbSBmaWx0ZXIgYSBnbG9iYWwgZmlsdGVyIGZvciB0aGlzIGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yCisgICAgICogb3IgbnVsbAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgaW50IGRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgaW5pdChJRCwgZGlyZWN0aW9uLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yIHdpdGggbm8gZmlsdGVyLgorICAgICAqIEBwYXJhbSBJRCBjb21wb3VuZCBJRAorICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQgb3IgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgaW50IGRpcmVjdGlvbikgeworICAgICAgICB0aGlzKElELCBkaXJlY3Rpb24sIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgZm9yd2FyZCBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciB3aXRoIG5vIGZpbHRlci4KKyAgICAgKiBAcGFyYW0gSUQgY29tcG91bmQgSUQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQpIHsKKyAgICAgICAgdGhpcyhJRCwgRk9SV0FSRCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIGZvciBUcmFuc2xpdGVyYXRvciBmcm9tIGEgdmVjdG9yIG9mCisgICAgICogdHJhbnNsaXRlcmF0b3JzLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZml4aW5nIHVwIHRoZQorICAgICAqIElELgorICAgICAqLworICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoVmVjdG9yIGxpc3QpIHsKKyAgICAgICAgdGhpcyhsaXN0LCAwKTsKKyAgICB9CisKKyAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFZlY3RvciBsaXN0LCBpbnQgbnVtQW5vbnltb3VzUkJUcykgeworICAgICAgICBzdXBlcigiIiwgbnVsbCk7CisgICAgICAgIHRyYW5zID0gbnVsbDsKKyAgICAgICAgaW5pdChsaXN0LCBGT1JXQVJELCBmYWxzZSk7CisgICAgICAgIHRoaXMubnVtQW5vbnltb3VzUkJUcyA9IG51bUFub255bW91c1JCVHM7CisgICAgICAgIC8vIGFzc3VtZSBjYWxsZXIgd2lsbCBmaXh1cCBJRAorICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmlzaCBjb25zdHJ1Y3RpbmcgYSB0cmFuc2xpdGVyYXRvcjogb25seSB0byBiZSBjYWxsZWQgYnkKKyAgICAgKiBjb25zdHJ1Y3RvcnMuICBCZWZvcmUgY2FsbGluZyBpbml0KCksIHNldCB0cmFucyBhbmQgZmlsdGVyIHRvIE5VTEwuCisgICAgICogQHBhcmFtIGlkIHRoZSBpZCBjb250YWluaW5nICc7Jy1zZXBhcmF0ZWQgZW50cmllcworICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIEZPUldBUkQgb3IgUkVWRVJTRQorICAgICAqIEBwYXJhbSBpZFNwbGl0UG9pbnQgdGhlIGluZGV4IGludG8gaWQgYXQgd2hpY2ggdGhlCisgICAgICogc3BsaXRUcmFucyBzaG91bGQgYmUgaW5zZXJ0ZWQsIGlmIHRoZXJlIGlzIG9uZSwgb3IKKyAgICAgKiAtMSBpZiB0aGVyZSBpcyBub25lLgorICAgICAqIEBwYXJhbSBzcGxpdFRyYW5zIGEgdHJhbnNsaXRlcmF0b3IgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKiBiZWZvcmUgdGhlIGVudHJ5IGF0IG9mZnNldCBpZFNwbGl0UG9pbnQgaW4gdGhlIGlkIHN0cmluZy4gIE1heSBiZQorICAgICAqIE5VTEwgdG8gaW5zZXJ0IG5vIGVudHJ5LgorICAgICAqIEBwYXJhbSBmaXhSZXZlcnNlSUQgaWYgVFJVRSwgdGhlbiByZWNvbnN0cnVjdCB0aGUgSUQgb2YgcmV2ZXJzZQorICAgICAqIGVudHJpZXMgYnkgY2FsbGluZyBnZXRJRCgpIG9mIGNvbXBvbmVudCBlbnRyaWVzLiAgU29tZSBjb25zdHJ1Y3RvcnMKKyAgICAgKiBkbyBub3QgcmVxdWlyZSB0aGlzIGJlY2F1c2UgdGhleSBhcHBseSBhIGZhY2FkZSBJRCBhbnl3YXkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoU3RyaW5nIGlkLAorICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXhSZXZlcnNlSUQpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHRyYW5zID09IDApOworCisgICAgICAgIFZlY3RvciBsaXN0ID0gbmV3IFZlY3RvcigpOworICAgICAgICBVbmljb2RlU2V0W10gY29tcG91bmRGaWx0ZXIgPSBuZXcgVW5pY29kZVNldFsxXTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlZ2VuSUQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmICghVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZUNvbXBvdW5kSUQoaWQsIGRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgcmVnZW5JRCwgbGlzdCwgY29tcG91bmRGaWx0ZXIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIElEICIgKyBpZCk7CisgICAgICAgIH0KKworICAgICAgICBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLmluc3RhbnRpYXRlTGlzdChsaXN0KTsKKworICAgICAgICBpbml0KGxpc3QsIGRpcmVjdGlvbiwgZml4UmV2ZXJzZUlEKTsKKworICAgICAgICBpZiAoY29tcG91bmRGaWx0ZXJbMF0gIT0gbnVsbCkgeworICAgICAgICAgICAgc2V0RmlsdGVyKGNvbXBvdW5kRmlsdGVyWzBdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmlzaCBjb25zdHJ1Y3RpbmcgYSB0cmFuc2xpdGVyYXRvcjogb25seSB0byBiZSBjYWxsZWQgYnkKKyAgICAgKiBjb25zdHJ1Y3RvcnMuICBCZWZvcmUgY2FsbGluZyBpbml0KCksIHNldCB0cmFucyBhbmQgZmlsdGVyIHRvIE5VTEwuCisgICAgICogQHBhcmFtIGxpc3QgYSB2ZWN0b3Igb2YgdHJhbnNsaXRlcmF0b3Igb2JqZWN0cyB0byBiZSBhZG9wdGVkLiAgSXQKKyAgICAgKiBzaG91bGQgTk9UIGJlIGVtcHR5LiAgVGhlIGxpc3Qgc2hvdWxkIGJlIGluIGRlY2xhcmVkIG9yZGVyLiAgVGhhdAorICAgICAqIGlzLCBpdCBzaG91bGQgYmUgaW4gdGhlIEZPUldBUkQgb3JkZXI7IGlmIGRpcmVjdGlvbiBpcyBSRVZFUlNFIHRoZW4KKyAgICAgKiB0aGUgbGlzdCBvcmRlciB3aWxsIGJlIHJldmVyc2VkLgorICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIEZPUldBUkQgb3IgUkVWRVJTRQorICAgICAqIEBwYXJhbSBmaXhSZXZlcnNlSUQgaWYgVFJVRSwgdGhlbiByZWNvbnN0cnVjdCB0aGUgSUQgb2YgcmV2ZXJzZQorICAgICAqIGVudHJpZXMgYnkgY2FsbGluZyBnZXRJRCgpIG9mIGNvbXBvbmVudCBlbnRyaWVzLiAgU29tZSBjb25zdHJ1Y3RvcnMKKyAgICAgKiBkbyBub3QgcmVxdWlyZSB0aGlzIGJlY2F1c2UgdGhleSBhcHBseSBhIGZhY2FkZSBJRCBhbnl3YXkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoVmVjdG9yIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgaW50IGRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGZpeFJldmVyc2VJRCkgeworICAgICAgICAvLyBhc3NlcnQodHJhbnMgPT0gMCk7CisKKyAgICAgICAgLy8gQWxsb2NhdGUgYXJyYXkKKyAgICAgICAgaW50IGNvdW50ID0gbGlzdC5zaXplKCk7CisgICAgICAgIHRyYW5zID0gbmV3IFRyYW5zbGl0ZXJhdG9yW2NvdW50XTsKKworICAgICAgICAvLyBNb3ZlIHRoZSB0cmFuc2xpdGVyYXRvcnMgZnJvbSB0aGUgdmVjdG9yIGludG8gYW4gYXJyYXkuCisgICAgICAgIC8vIFJldmVyc2UgdGhlIG9yZGVyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGludCBqID0gKGRpcmVjdGlvbiA9PSBGT1JXQVJEKSA/IGkgOiBjb3VudCAtIDEgLSBpOworICAgICAgICAgICAgdHJhbnNbaV0gPSAoVHJhbnNsaXRlcmF0b3IpIGxpc3QuZWxlbWVudEF0KGopOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlIGRpcmVjdGlvbiBpcyBVVFJBTlNfUkVWRVJTRSB0aGVuIHdlIG1heSBuZWVkIHRvIGZpeCB0aGUKKyAgICAgICAgLy8gSUQuCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gUkVWRVJTRSAmJiBmaXhSZXZlcnNlSUQpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBuZXdJRCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3SUQuYXBwZW5kKElEX0RFTElNKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3SUQuYXBwZW5kKHRyYW5zW2ldLmdldElEKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2V0SUQobmV3SUQudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBjb21wdXRlTWF4aW11bUNvbnRleHRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIElEcyBvZiB0aGUgZ2l2ZW4gbGlzdCBvZiB0cmFuc2xpdGVyYXRvcnMsIGNvbmNhdGVuYXRlZAorICAgICAqIHdpdGggJzsnIGRlbGltaXRpbmcgdGhlbS4gIEVxdWl2YWxlbnQgdG8gdGhlIHBlcmxpc2ggZXhwcmVzc2lvbgorICAgICAqIGpvaW4oJzsnLCBtYXAoJF8uZ2V0SUQoKSwgdHJhbnNsaXRlcmF0b3JzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgam9pbklEcyhUcmFuc2xpdGVyYXRvcltdIHRyYW5zbGl0ZXJhdG9ycykgeworICAgICAgICBTdHJpbmdCdWZmZXIgaWQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFuc2xpdGVyYXRvcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgIGlkLmFwcGVuZCgnOycpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWQuYXBwZW5kKHRyYW5zbGl0ZXJhdG9yc1tpXS5nZXRJRCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaWQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdHJhbnNsaXRlcmF0b3JzIGluIHRoaXMgY2hhaW4uCisgICAgICogQHJldHVybiBudW1iZXIgb2YgdHJhbnNsaXRlcmF0b3JzIGluIHRoaXMgY2hhaW4uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIHRyYW5zLmxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0cmFuc2xpdGVyYXRvciBhdCB0aGUgZ2l2ZW4gaW5kZXggaW4gdGhpcyBjaGFpbi4KKyAgICAgKiBAcGFyYW0gaW5kZXggaW5kZXggaW50byBjaGFpbiwgZnJvbSAwIHRvIDxjb2RlPmdldENvdW50KCkgLSAxPC9jb2RlPgorICAgICAqIEByZXR1cm4gdHJhbnNsaXRlcmF0b3IgYXQgdGhlIGdpdmVuIGluZGV4CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldFRyYW5zbGl0ZXJhdG9yKGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gdHJhbnNbaW5kZXhdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCBjIHRvIGJ1ZiwgdW5sZXNzIGJ1ZiBpcyBlbXB0eSBvciBidWYgYWxyZWFkeSBlbmRzIGluIGMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBfc21hcnRBcHBlbmQoU3RyaW5nQnVmZmVyIGJ1ZiwgY2hhciBjKSB7CisgICAgICAgIGlmIChidWYubGVuZ3RoKCkgIT0gMCAmJgorICAgICAgICAgICAgYnVmLmNoYXJBdChidWYubGVuZ3RoKCkgLSAxKSAhPSBjKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgVHJhbnNsaXRlcmF0b3I6CisgICAgICogQ3JlYXRlIGEgcnVsZSBzdHJpbmcgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGNyZWF0ZUZyb21SdWxlcygpCisgICAgICogdG8gcmVjcmVhdGUgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgVFJVRSB0aGVuIGNvbnZlcnQgdW5wcmludGFibGUKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlaXIgaGV4IGVzY2FwZSByZXByZXNlbnRhdGlvbnMsIFxcdXh4eHggb3IKKyAgICAgKiBcXFV4eHh4eHh4eC4gIFVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIHRob3NlIG90aGVyIHRoYW4KKyAgICAgKiBVKzAwMEEsIFUrMDAyMC4uVSswMDdFLgorICAgICAqIEByZXR1cm4gdGhlIHJ1bGUgc3RyaW5nCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgLy8gV2UgZG8gTk9UIGNhbGwgdG9SdWxlcygpIG9uIG91ciBjb21wb25lbnQgdHJhbnNsaXRlcmF0b3JzLCBpbgorICAgICAgICAvLyBnZW5lcmFsLiAgSWYgd2UgaGF2ZSBzZXZlcmFsIHJ1bGUtYmFzZWQgdHJhbnNsaXRlcmF0b3JzLCB0aGlzCisgICAgICAgIC8vIHlpZWxkcyBhIGNvbmNhdGVuYXRpb24gb2YgdGhlIHJ1bGVzIC0tIG5vdCB3aGF0IHdlIHdhbnQuICBXZSBkbworICAgICAgICAvLyBoYW5kbGUgY29tcG91bmQgUkJUIHRyYW5zbGl0ZXJhdG9ycyBzcGVjaWFsbHkgLS0gdGhvc2UgZm9yIHdoaWNoCisgICAgICAgIC8vIGNvbXBvdW5kUkJUSW5kZXggPj0gMC4gIEZvciB0aGUgdHJhbnNsaXRlcmF0b3IgYXQgY29tcG91bmRSQlRJbmRleCwKKyAgICAgICAgLy8gd2UgZG8gY2FsbCB0b1J1bGVzKCkgcmVjdXJzaXZlbHkuCisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlc1NvdXJjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaWYgKG51bUFub255bW91c1JCVHMgPj0gMSAmJiBnZXRGaWx0ZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgYSBjb21wb3VuZCBSQlQgYW5kIGlmIHdlIGhhdmUgYSBnbG9iYWwKKyAgICAgICAgICAgIC8vIGZpbHRlciwgdGhlbiBlbWl0IGl0IGF0IHRoZSB0b3AuCisgICAgICAgICAgICBydWxlc1NvdXJjZS5hcHBlbmQoIjo6IikuYXBwZW5kKGdldEZpbHRlcigpLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpLmFwcGVuZChJRF9ERUxJTSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcnVsZTsKKworICAgICAgICAgICAgLy8gQW5vbnltb3VzIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9ycyAoaW5saW5lIHJ1bGVzIGFuZAorICAgICAgICAgICAgLy8gOjpCRUdJTi86OkVORCBibG9ja3MpIGFyZSBnaXZlbiBJRHMgdGhhdCBiZWdpbiB3aXRoCisgICAgICAgICAgICAvLyAiJVBhc3MiOiB1c2UgdG9SdWxlcygpIHRvIHdyaXRlIGFsbCB0aGUgcnVsZXMgdG8gdGhlIG91dHB1dAorICAgICAgICAgICAgLy8gKGFuZCBpbnNlcnQgIjo6TnVsbDsiIGlmIHdlIGhhdmUgdHdvIGluIGEgcm93KQorICAgICAgICAgICAgaWYgKHRyYW5zW2ldLmdldElEKCkuc3RhcnRzV2l0aCgiJVBhc3MiKSkgeworICAgICAgICAgICAgICAgIHJ1bGUgPSB0cmFuc1tpXS50b1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgICAgICBpZiAobnVtQW5vbnltb3VzUkJUcyA+IDEgJiYgaSA+IDAgJiYgdHJhbnNbaSAtIDFdLmdldElEKCkuc3RhcnRzV2l0aCgiJVBhc3MiKSkKKyAgICAgICAgICAgICAgICAgICAgcnVsZSA9ICI6Ok51bGw7IiArIHJ1bGU7CisKKyAgICAgICAgICAgIC8vIHdlIGFsc28gdXNlIHRvUnVsZXMoKSBvbiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9ycyAod2hpY2ggd2UKKyAgICAgICAgICAgIC8vIGNoZWNrIGZvciBieSBsb29raW5nIGZvciBhIHNlbWljb2xvbiBpbiB0aGUgSUQpLS0gdGhpcyBnZXRzCisgICAgICAgICAgICAvLyB0aGUgbGlzdCBvZiB0aGVpciBjaGlsZCB0cmFuc2xpdGVyYXRvcnMgb3V0cHV0IGluIHRoZSByaWdodAorICAgICAgICAgICAgLy8gZm9ybWF0CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRyYW5zW2ldLmdldElEKCkuaW5kZXhPZignOycpID49IDApIHsKKyAgICAgICAgICAgICAgICBydWxlID0gdHJhbnNbaV0udG9SdWxlcyhlc2NhcGVVbnByaW50YWJsZSk7CisKKyAgICAgICAgICAgIC8vIGZvciBldmVyeXRoaW5nIGVsc2UsIHVzZSBiYXNlVG9SdWxlcygpCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJ1bGUgPSB0cmFuc1tpXS5iYXNlVG9SdWxlcyhlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBfc21hcnRBcHBlbmQocnVsZXNTb3VyY2UsICdcbicpOworICAgICAgICAgICAgcnVsZXNTb3VyY2UuYXBwZW5kKHJ1bGUpOworICAgICAgICAgICAgX3NtYXJ0QXBwZW5kKHJ1bGVzU291cmNlLCBJRF9ERUxJTSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVzU291cmNlLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbW9kaWZpZWQgYnkgdGhpcworICAgICAqIFRyYW5zbGl0ZXJhdG9yLCBpZ25vcmluZyB0aGUgZWZmZWN0IG9mIG91ciBmaWx0ZXIuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXQgaGFuZGxlR2V0U291cmNlU2V0KCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgc2V0LmFkZEFsbCh0cmFuc1tpXS5nZXRTb3VyY2VTZXQoKSk7CisgICAgICAgICAgICAvLyBUYWtlIHRoZSBleGFtcGxlIG9mIEhpcmFnYW5hLUxhdGluLiAgVGhpcyBpcyByZWFsbHkKKyAgICAgICAgICAgIC8vIEhpcmFnYW5hLUthdGFrYW5hOyBLYXRha2FuYS1MYXRpbi4gIFRoZSBzb3VyY2Ugc2V0IG9mCisgICAgICAgICAgICAvLyB0aGVzZSB0d28gaXMgcm91Z2hseSBbOkhpcmFnYW5hOl0gYW5kIFs6S2F0YWthbmE6XS4KKyAgICAgICAgICAgIC8vIEJ1dCB0aGUgc291cmNlIHNldCBmb3IgdGhlIGVudGlyZSB0cmFuc2xpdGVyYXRvciBpcworICAgICAgICAgICAgLy8gYWN0dWFsbHkgWzpIaXJhZ2FuYTpdIE9OTFkgLS0gdGhhdCBpcywgdGhlIGZpcnN0CisgICAgICAgICAgICAvLyBub24tZW1wdHkgc291cmNlIHNldC4KKworICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGhldXJpc3RpYywgYW5kIG5vdCAxMDAlIHJlbGlhYmxlLgorICAgICAgICAgICAgaWYgKCFzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZ2VuZXJhdGVkIGFzCisgICAgICogcmVwbGFjZW1lbnQgdGV4dCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFRhcmdldFNldCgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBoZXVyaXN0aWMsIGFuZCBub3QgMTAwJSByZWxpYWJsZS4KKyAgICAgICAgICAgIHNldC5hZGRBbGwodHJhbnNbaV0uZ2V0VGFyZ2V0U2V0KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLyogQ2FsbCBlYWNoIHRyYW5zbGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUgc3RhcnQgdmFsdWUgYW5kCisgICAgICAgICAqIGluaXRpYWwgY3Vyc29yIGluZGV4LCBidXQgd2l0aCB0aGUgbGltaXQgaW5kZXggYXMgbW9kaWZpZWQKKyAgICAgICAgICogYnkgcHJlY2VkaW5nIHRyYW5zbGl0ZXJhdG9ycy4gIFRoZSBjdXJzb3IgaW5kZXggbXVzdCBiZQorICAgICAgICAgKiByZXNldCBmb3IgZWFjaCB0cmFuc2xpdGVyYXRvciB0byBnaXZlIGVhY2ggYSBjaGFuY2UgdG8KKyAgICAgICAgICogdHJhbnNsaXRlcmF0ZSB0aGUgdGV4dC4gIFRoZSBpbml0aWFsIGN1cnNvciBpbmRleCBpcyBrbm93bgorICAgICAgICAgKiB0byBzdGlsbCBwb2ludCB0byB0aGUgc2FtZSBwbGFjZSBhZnRlciBlYWNoIHRyYW5zbGl0ZXJhdG9yCisgICAgICAgICAqIGlzIGNhbGxlZCBiZWNhdXNlIGVhY2ggdHJhbnNsaXRlcmF0b3Igd2lsbCBub3QgY2hhbmdlIHRoZQorICAgICAgICAgKiB0ZXh0IGJldHdlZW4gc3RhcnQgYW5kIHRoZSBpbml0aWFsIHZhbHVlIG9mIGN1cnNvci4KKyAgICAgICAgICoKKyAgICAgICAgICogSU1QT1JUQU5UOiBBZnRlciB0aGUgZmlyc3QgdHJhbnNsaXRlcmF0b3IsIGVhY2ggc3Vic2VxdWVudAorICAgICAgICAgKiB0cmFuc2xpdGVyYXRvciBvbmx5IGdldHMgdG8gdHJhbnNsaXRlcmF0ZSB0ZXh0IGNvbW1pdHRlZCBieQorICAgICAgICAgKiBwcmVjZWRpbmcgdHJhbnNsaXRlcmF0b3JzOyB0aGF0IGlzLCB0aGUgY3Vyc29yIChvdXRwdXQKKyAgICAgICAgICogdmFsdWUpIG9mIHRyYW5zbGl0ZXJhdG9yIGkgYmVjb21lcyB0aGUgbGltaXQgKGlucHV0IHZhbHVlKQorICAgICAgICAgKiBvZiB0cmFuc2xpdGVyYXRvciBpKzEuICBGaW5hbGx5LCB0aGUgb3ZlcmFsbCBsaW1pdCBpcyBmaXhlZAorICAgICAgICAgKiB1cCBiZWZvcmUgd2UgcmV0dXJuLgorICAgICAgICAgKgorICAgICAgICAgKiBBc3N1bXB0aW9ucyB3ZSBtYWtlIGhlcmU6CisgICAgICAgICAqICgxKSBjb250ZXh0U3RhcnQgPD0gc3RhcnQgPD0gbGltaXQgPD0gY29udGV4dExpbWl0IDw9IHRleHQubGVuZ3RoKCkKKyAgICAgICAgICogKDIpIHN0YXJ0IDw9IHN0YXJ0JyA8PSBsaW1pdCcgIDtjdXJzb3IgZG9lc24ndCBtb3ZlIGJhY2sKKyAgICAgICAgICogKDMpIHN0YXJ0IDw9IGxpbWl0JyAgICAgICAgICAgIDt0ZXh0IGJlZm9yZSBjdXJzb3IgdW5jaGFuZ2VkCisgICAgICAgICAqIC0gc3RhcnQnIGlzIHRoZSB2YWx1ZSBvZiBzdGFydCBhZnRlciBjYWxsaW5nIGhhbmRsZUtUCisgICAgICAgICAqIC0gbGltaXQnIGlzIHRoZSB2YWx1ZSBvZiBsaW1pdCBhZnRlciBjYWxsaW5nIGhhbmRsZUtUCisgICAgICAgICAqLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBFeGFtcGxlOiAzIHRyYW5zbGl0ZXJhdG9ycy4gIFRoaXMgZXhhbXBsZSBpbGx1c3RyYXRlcyB0aGUKKyAgICAgICAgICogbWVjaGFuaWNzIHdlIG5lZWQgdG8gaW1wbGVtZW50LiAgQywgUywgYW5kIEwgYXJlIHRoZSBjb250ZXh0U3RhcnQsCisgICAgICAgICAqIHN0YXJ0LCBhbmQgbGltaXQuICBnbCBpcyB0aGUgZ2xvYmFsTGltaXQuICBjb250ZXh0TGltaXQgaXMKKyAgICAgICAgICogZXF1YWwgdG8gbGltaXQgdGhyb3VnaG91dC4KKyAgICAgICAgICoKKyAgICAgICAgICogMS4gaC11LCBjaGFuZ2VzIGhleCB0byBVbmljb2RlCisgICAgICAgICAqCisgICAgICAgICAqICAgIDQgIDcgIGEgIGQgIDAgICAgICA0ICA3ICBhCisgICAgICAgICAqICAgIGFiYy91MDA2MS91ICAgID0+ICBhYmNhL3UKKyAgICAgICAgICogICAgQyAgUyAgICAgICBMICAgICAgIEMgICBTIEwgICBnbD1mLT5hCisgICAgICAgICAqCisgICAgICAgICAqIDIuIHVwdXAsIGNoYW5nZXMgIngiIHRvICJYWCIKKyAgICAgICAgICoKKyAgICAgICAgICogICAgNCAgNyAgYSAgICAgICA0ICA3ICBhCisgICAgICAgICAqICAgIGFiY2EvdSAgICA9PiAgYWJjQUEvdQorICAgICAgICAgKiAgICBDICBTTCAgICAgICAgIEMgICAgUworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgTCAgICBnbD1hLT5iCisgICAgICAgICAqIDMuIHUtaCwgY2hhbmdlcyBVbmljb2RlIHRvIGhleAorICAgICAgICAgKgorICAgICAgICAgKiAgICA0ICA3ICBhICAgICAgICA0ICA3ICBhICBkICAwICAzCisgICAgICAgICAqICAgIGFiY0FBL3UgICAgPT4gIGFiYy91MDA0MS91MDA0MS91CisgICAgICAgICAqICAgIEMgIFMgTCAgICAgICAgIEMgICAgICAgICAgICAgIFMKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCAgIGdsPWItPjE1CisgICAgICAgICAqIDQuIHJldHVybgorICAgICAgICAgKgorICAgICAgICAgKiAgICA0ICA3ICBhICBkICAwICAzCisgICAgICAgICAqICAgIGFiYy91MDA0MS91MDA0MS91CisgICAgICAgICAqICAgIEMgUyBMCisgICAgICAgICAqLworCisgICAgICAgIGlmICh0cmFucy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICBpbmRleC5zdGFydCA9IGluZGV4LmxpbWl0OworICAgICAgICAgICAgcmV0dXJuOyAvLyBTaG9ydCBjaXJjdWl0IGZvciBlbXB0eSBjb21wb3VuZCB0cmFuc2xpdGVyYXRvcnMKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvbXBvdW5kTGltaXQgaXMgdGhlIGxpbWl0IHZhbHVlIGZvciB0aGUgZW50aXJlIGNvbXBvdW5kCisgICAgICAgIC8vIG9wZXJhdGlvbi4gIFdlIG92ZXJ3cml0ZSBpbmRleC5saW1pdCB3aXRoIHRoZSBwcmV2aW91cworICAgICAgICAvLyBpbmRleC5zdGFydC4gIEFmdGVyIGVhY2ggdHJhbnNsaXRlcmF0aW9uLCB3ZSB1cGRhdGUKKyAgICAgICAgLy8gY29tcG91bmRMaW1pdCBmb3IgaW5zZXJ0aW9ucyBvciBkZWxldGlvbnMgdGhhdCBoYXZlIGhhcHBlbmVkLgorICAgICAgICBpbnQgY29tcG91bmRMaW1pdCA9IGluZGV4LmxpbWl0OworCisgICAgICAgIC8vIGNvbXBvdW5kU3RhcnQgaXMgdGhlIHN0YXJ0IGZvciB0aGUgZW50aXJlIGNvbXBvdW5kCisgICAgICAgIC8vIG9wZXJhdGlvbi4KKyAgICAgICAgaW50IGNvbXBvdW5kU3RhcnQgPSBpbmRleC5zdGFydDsKKworICAgICAgICBpbnQgZGVsdGEgPSAwOyAvLyBkZWx0YSBpbiBsZW5ndGgKKworICAgICAgICBTdHJpbmdCdWZmZXIgbG9nID0gbnVsbDsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKCJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yeyIgKyBnZXRJRCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluY3JlbWVudGFsID8gIn1pOiBJTj0iIDogIn06IElOPSIpKTsKKyAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBHaXZlIGVhY2ggdHJhbnNsaXRlcmF0b3IgYSBjcmFjayBhdCB0aGUgcnVuIG9mIGNoYXJhY3RlcnMuCisgICAgICAgIC8vIFNlZSBjb21tZW50cyBhdCB0aGUgdG9wIG9mIHRoZSBtZXRob2QgZm9yIG1vcmUgZGV0YWlsLgorICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4LnN0YXJ0ID0gY29tcG91bmRTdGFydDsgLy8gUmVzZXQgc3RhcnQKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGluZGV4LmxpbWl0OworCisgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgPT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICAvLyBTaG9ydCBjaXJjdWl0IGZvciBlbXB0eSByYW5nZQorICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbXBvdW5kVHJhbnNsaXRlcmF0b3JbIiArIGkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4uIiArICh0cmFucy5sZW5ndGgtMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluY3JlbWVudGFsID8gIl1pOiAiIDogIl06ICIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIGluZGV4KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIChOT1RISU5HIFRPIERPKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgbG9nLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yWyIgKyBpICsgIj0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zW2ldLmdldElEKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluY3JlbWVudGFsID8gIl1pOiAiIDogIl06ICIpKTsKKyAgICAgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJhbnNbaV0uZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBpbmNyZW1lbnRhbCk7CisKKyAgICAgICAgICAgIC8vIEluIGEgcHJvcGVybHkgd3JpdHRlbiB0cmFuc2xpdGVyYXRvciwgc3RhcnQgPT0gbGltaXQgYWZ0ZXIKKyAgICAgICAgICAgIC8vIGhhbmRsZVRyYW5zbGl0ZXJhdGUoKSByZXR1cm5zIHdoZW4gaW5jcmVtZW50YWwgaXMgZmFsc2UuCisgICAgICAgICAgICAvLyBDYXRjaCBjYXNlcyB3aGVyZSB0aGUgc3ViY2xhc3MgZG9lc24ndCBkbyB0aGlzLCBhbmQgdGhyb3cKKyAgICAgICAgICAgIC8vIGFuIGV4Y2VwdGlvbi4gIChKdXN0IHBpbm5pbmcgc3RhcnQgdG8gbGltaXQgaXMgYSBiYWQgaWRlYSwKKyAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2hhdCdzIHByb2JhYmx5IGhhcHBlbmluZyBpcyB0aGF0IHRoZSBzdWJjbGFzcworICAgICAgICAgICAgLy8gaXNuJ3QgdHJhbnNsaXRlcmF0aW5nIGFsbCB0aGUgd2F5IHRvIHRoZSBlbmQsIGFuZCBpdCBzaG91bGQKKyAgICAgICAgICAgIC8vIGluIG5vbi1pbmNyZW1lbnRhbCBtb2RlLikKKyAgICAgICAgICAgIGlmICghaW5jcmVtZW50YWwgJiYgaW5kZXguc3RhcnQgIT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRVJST1I6IEluY29tcGxldGUgbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbiBieSAiICsgdHJhbnNbaV0uZ2V0SUQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIiA9PiAiKTsKKyAgICAgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ3VtdWxhdGl2ZSBkZWx0YSBmb3IgaW5zZXJ0aW9ucy9kZWxldGlvbnMKKyAgICAgICAgICAgIGRlbHRhICs9IGluZGV4LmxpbWl0IC0gbGltaXQ7CisKKyAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgIC8vIEluIHRoZSBpbmNyZW1lbnRhbCBjYXNlLCBvbmx5IGFsbG93IHN1YnNlcXVlbnQKKyAgICAgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRvcnMgdG8gbW9kaWZ5IHdoYXQgaGFzIGFscmVhZHkgYmVlbgorICAgICAgICAgICAgICAgIC8vIGNvbXBsZXRlbHkgcHJvY2Vzc2VkIGJ5IHByaW9yIHRyYW5zbGl0ZXJhdG9ycy4gIEluIHRoZQorICAgICAgICAgICAgICAgIC8vIG5vbi1pbmNybWVudGFsIGNhc2UsIGFsbG93IGVhY2ggdHJhbnNsaXRlcmF0b3IgdG8KKyAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHRoZSBlbnRpcmUgdGV4dC4KKyAgICAgICAgICAgICAgICBpbmRleC5saW1pdCA9IGluZGV4LnN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29tcG91bmRMaW1pdCArPSBkZWx0YTsKKworICAgICAgICAvLyBTdGFydCBpcyBnb29kIHdoZXJlIGl0IGlzIC0tIHdoZXJlIHRoZSBsYXN0IHRyYW5zbGl0ZXJhdG9yIGxlZnQKKyAgICAgICAgLy8gaXQuICBMaW1pdCBuZWVkcyB0byBiZSBwdXQgYmFjayB3aGVyZSBpdCB3YXMsIG1vZHVsbworICAgICAgICAvLyBhZGp1c3RtZW50cyBmb3IgZGVsZXRpb25zL2luc2VydGlvbnMuCisgICAgICAgIGluZGV4LmxpbWl0ID0gY29tcG91bmRMaW1pdDsKKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIGxvZy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBsb2cuYXBwZW5kKCJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yeyIgKyBnZXRJRCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgKGluY3JlbWVudGFsID8gIn1pOiBPVVQ9IiA6ICJ9OiBPVVQ9IikpOworICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYW5kIHNldCB0aGUgbGVuZ3RoIG9mIHRoZSBsb25nZXN0IGNvbnRleHQgcmVxdWlyZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBUaGlzIGlzIDxlbT5wcmVjZWRpbmc8L2VtPiBjb250ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wdXRlTWF4aW11bUNvbnRleHRMZW5ndGgoKSB7CisgICAgICAgIGludCBtYXggPSAwOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBsZW4gPSB0cmFuc1tpXS5nZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpOworICAgICAgICAgICAgaWYgKGxlbiA+IG1heCkgeworICAgICAgICAgICAgICAgIG1heCA9IGxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzZXRNYXhpbXVtQ29udGV4dExlbmd0aChtYXgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0N1cnJlbmN5Rm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DdXJyZW5jeUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5NDFkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DdXJyZW5jeUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDIwLCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5QW1vdW50OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBUZW1wb3JhcnkgaW50ZXJuYWwgY29uY3JldGUgc3ViY2xhc3Mgb2YgTWVhc3VyZUZvcm1hdCBpbXBsZW1lbnRpbmcKKyAqIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcgb2YgQ3VycmVuY3lBbW91bnQgb2JqZWN0cy4gIFRoaXMgY2xhc3MgaXMKKyAqIGxpa2VseSB0byBiZSByZWRlc2lnbmVkIGFuZCByZXdyaXR0ZW4gaW4gdGhlIG5lYXIgZnV0dXJlLgorICoKKyAqIDxwPlRoaXMgY2xhc3MgY3VycmVudGx5IGRlbGVnYXRlcyB0byBEZWNpbWFsRm9ybWF0IGZvciBwYXJzaW5nIGFuZAorICogZm9ybWF0dGluZy4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuVUZvcm1hdAorICogQHNlZSBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBpbnRlcm5hbAorICovCitjbGFzcyBDdXJyZW5jeUZvcm1hdCBleHRlbmRzIE1lYXN1cmVGb3JtYXQgeworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTkzMTY3OTM2MzY5MjUwNDYzNEw7CisgICAgCisgICAgcHJpdmF0ZSBOdW1iZXJGb3JtYXQgZm10OworCisgICAgcHVibGljIEN1cnJlbmN5Rm9ybWF0KFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBGb3JtYXQuZm9ybWF0KCkuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3Qgb2JqLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEN1cnJlbmN5QW1vdW50IGN1cnJlbmN5ID0gKEN1cnJlbmN5QW1vdW50KSBvYmo7CisgICAgICAgICAgICBmbXQuc2V0Q3VycmVuY3koY3VycmVuY3kuZ2V0Q3VycmVuY3koKSk7CisgICAgICAgICAgICByZXR1cm4gZm10LmZvcm1hdChjdXJyZW5jeS5nZXROdW1iZXIoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgdHlwZTogIiArIG9iai5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBGb3JtYXQucGFyc2VPYmplY3QoKS4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjcGFyc2VPYmplY3QoamF2YS5sYW5nLlN0cmluZywgamF2YS50ZXh0LlBhcnNlUG9zaXRpb24pCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwYXJzZU9iamVjdChTdHJpbmcgc291cmNlLCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gZm10LnBhcnNlQ3VycmVuY3koc291cmNlLCBwb3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNjFhMDEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTE2NiBAQAorLyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUZvcm1hdDsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8qKgorICogRGF0ZUZvcm1hdCBpcyBhbiBhYnN0cmFjdCBjbGFzcyBmb3IgZGF0ZS90aW1lIGZvcm1hdHRpbmcgc3ViY2xhc3NlcyB3aGljaAorICogZm9ybWF0cyBhbmQgcGFyc2VzIGRhdGVzIG9yIHRpbWUgaW4gYSBsYW5ndWFnZS1pbmRlcGVuZGVudCBtYW5uZXIuCisgKiBUaGUgZGF0ZS90aW1lIGZvcm1hdHRpbmcgc3ViY2xhc3MsIHN1Y2ggYXMgU2ltcGxlRGF0ZUZvcm1hdCwgYWxsb3dzIGZvcgorICogZm9ybWF0dGluZyAoaS5lLiwgZGF0ZSAtPiB0ZXh0KSwgcGFyc2luZyAodGV4dCAtPiBkYXRlKSwgYW5kCisgKiBub3JtYWxpemF0aW9uLiAgVGhlIGRhdGUgaXMgcmVwcmVzZW50ZWQgYXMgYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3Qgb3IKKyAqIGFzIHRoZSBtaWxsaXNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwLCAwMDowMDowMCBHTVQuCisgKgorICogPHA+RGF0ZUZvcm1hdCBwcm92aWRlcyBtYW55IGNsYXNzIG1ldGhvZHMgZm9yIG9idGFpbmluZyBkZWZhdWx0IGRhdGUvdGltZQorICogZm9ybWF0dGVycyBiYXNlZCBvbiB0aGUgZGVmYXVsdCBvciBhIGdpdmVuIGxvYWNsZSBhbmQgYSBudW1iZXIgb2YgZm9ybWF0dGluZworICogc3R5bGVzLiBUaGUgZm9ybWF0dGluZyBzdHlsZXMgaW5jbHVkZSBGVUxMLCBMT05HLCBNRURJVU0sIGFuZCBTSE9SVC4gTW9yZQorICogZGV0YWlsIGFuZCBleGFtcGxlcyBvZiB1c2luZyB0aGVzZSBzdHlsZXMgYXJlIHByb3ZpZGVkIGluIHRoZSBtZXRob2QKKyAqIGRlc2NyaXB0aW9ucy4KKyAqCisgKiA8cD5EYXRlRm9ybWF0IGhlbHBzIHlvdSB0byBmb3JtYXQgYW5kIHBhcnNlIGRhdGVzIGZvciBhbnkgbG9jYWxlLgorICogWW91ciBjb2RlIGNhbiBiZSBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIHRoZSBsb2NhbGUgY29udmVudGlvbnMgZm9yCisgKiBtb250aHMsIGRheXMgb2YgdGhlIHdlZWssIG9yIGV2ZW4gdGhlIGNhbGVuZGFyIGZvcm1hdDogbHVuYXIgdnMuIHNvbGFyLgorICoKKyAqIDxwPlRvIGZvcm1hdCBhIGRhdGUgZm9yIHRoZSBjdXJyZW50IExvY2FsZSwgdXNlIG9uZSBvZiB0aGUKKyAqIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHM6CisgKiA8cHJlPgorICogIG15U3RyaW5nID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKS5mb3JtYXQobXlEYXRlKTsKKyAqIDwvcHJlPgorICogPHA+SWYgeW91IGFyZSBmb3JtYXR0aW5nIG11bHRpcGxlIG51bWJlcnMsIGl0IGlzCisgKiBtb3JlIGVmZmljaWVudCB0byBnZXQgdGhlIGZvcm1hdCBhbmQgdXNlIGl0IG11bHRpcGxlIHRpbWVzIHNvIHRoYXQKKyAqIHRoZSBzeXN0ZW0gZG9lc24ndCBoYXZlIHRvIGZldGNoIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWwKKyAqIGxhbmd1YWdlIGFuZCBjb3VudHJ5IGNvbnZlbnRpb25zIG11bHRpcGxlIHRpbWVzLgorICogPHByZT4KKyAqICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKTsKKyAqICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAqICAgIG91dHB1dC5wcmludGxuKGRmLmZvcm1hdChteURhdGVbaV0pICsgIjsgIik7CisgKiAgfQorICogPC9wcmU+CisgKiA8cD5UbyBmb3JtYXQgYSBudW1iZXIgZm9yIGEgZGlmZmVyZW50IExvY2FsZSwgc3BlY2lmeSBpdCBpbiB0aGUKKyAqIGNhbGwgdG8gZ2V0RGF0ZUluc3RhbmNlKCkuCisgKiA8cHJlPgorICogIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5GUkFOQ0UpOworICogPC9wcmU+CisgKiA8cD5Zb3UgY2FuIHVzZSBhIERhdGVGb3JtYXQgdG8gcGFyc2UgYWxzby4KKyAqIDxwcmU+CisgKiAgbXlEYXRlID0gZGYucGFyc2UobXlTdHJpbmcpOworICogPC9wcmU+CisgKiA8cD5Vc2UgZ2V0RGF0ZUluc3RhbmNlIHRvIGdldCB0aGUgbm9ybWFsIGRhdGUgZm9ybWF0IGZvciB0aGF0IGNvdW50cnkuCisgKiBUaGVyZSBhcmUgb3RoZXIgc3RhdGljIGZhY3RvcnkgbWV0aG9kcyBhdmFpbGFibGUuCisgKiBVc2UgZ2V0VGltZUluc3RhbmNlIHRvIGdldCB0aGUgdGltZSBmb3JtYXQgZm9yIHRoYXQgY291bnRyeS4KKyAqIFVzZSBnZXREYXRlVGltZUluc3RhbmNlIHRvIGdldCBhIGRhdGUgYW5kIHRpbWUgZm9ybWF0LiBZb3UgY2FuIHBhc3MgaW4gCisgKiBkaWZmZXJlbnQgb3B0aW9ucyB0byB0aGVzZSBmYWN0b3J5IG1ldGhvZHMgdG8gY29udHJvbCB0aGUgbGVuZ3RoIG9mIHRoZQorICogcmVzdWx0OyBmcm9tIFNIT1JUIHRvIE1FRElVTSB0byBMT05HIHRvIEZVTEwuIFRoZSBleGFjdCByZXN1bHQgZGVwZW5kcworICogb24gdGhlIGxvY2FsZSwgYnV0IGdlbmVyYWxseToKKyAqIDx1bD48bGk+U0hPUlQgaXMgY29tcGxldGVseSBudW1lcmljLCBzdWNoIGFzIDEyLjEzLjUyIG9yIDM6MzBwbQorICogPGxpPk1FRElVTSBpcyBsb25nZXIsIHN1Y2ggYXMgSmFuIDEyLCAxOTUyCisgKiA8bGk+TE9ORyBpcyBsb25nZXIsIHN1Y2ggYXMgSmFudWFyeSAxMiwgMTk1MiBvciAzOjMwOjMycG0KKyAqIDxsaT5GVUxMIGlzIHByZXR0eSBjb21wbGV0ZWx5IHNwZWNpZmllZCwgc3VjaCBhcworICogVHVlc2RheSwgQXByaWwgMTIsIDE5NTIgQUQgb3IgMzozMDo0MnBtIFBTVC4KKyAqIDwvdWw+CisgKgorICogPHA+WW91IGNhbiBhbHNvIHNldCB0aGUgdGltZSB6b25lIG9uIHRoZSBmb3JtYXQgaWYgeW91IHdpc2guCisgKiBJZiB5b3Ugd2FudCBldmVuIG1vcmUgY29udHJvbCBvdmVyIHRoZSBmb3JtYXQgb3IgcGFyc2luZywKKyAqIChvciB3YW50IHRvIGdpdmUgeW91ciB1c2VycyBtb3JlIGNvbnRyb2wpLAorICogeW91IGNhbiB0cnkgY2FzdGluZyB0aGUgRGF0ZUZvcm1hdCB5b3UgZ2V0IGZyb20gdGhlIGZhY3RvcnkgbWV0aG9kcworICogdG8gYSBTaW1wbGVEYXRlRm9ybWF0LiBUaGlzIHdpbGwgd29yayBmb3IgdGhlIG1ham9yaXR5CisgKiBvZiBjb3VudHJpZXM7IGp1c3QgcmVtZW1iZXIgdG8gcHV0IGl0IGluIGEgdHJ5IGJsb2NrIGluIGNhc2UgeW91CisgKiBlbmNvdW50ZXIgYW4gdW51c3VhbCBvbmUuCisgKgorICogPHA+WW91IGNhbiBhbHNvIHVzZSBmb3JtcyBvZiB0aGUgcGFyc2UgYW5kIGZvcm1hdCBtZXRob2RzIHdpdGgKKyAqIFBhcnNlUG9zaXRpb24gYW5kIEZpZWxkUG9zaXRpb24gdG8KKyAqIGFsbG93IHlvdSB0bworICogPHVsPjxsaT5wcm9ncmVzc2l2ZWx5IHBhcnNlIHRocm91Z2ggcGllY2VzIG9mIGEgc3RyaW5nLgorICogPGxpPmFsaWduIGFueSBwYXJ0aWN1bGFyIGZpZWxkLCBvciBmaW5kIG91dCB3aGVyZSBpdCBpcyBmb3Igc2VsZWN0aW9uCisgKiBvbiB0aGUgc2NyZWVuLgorICogPC91bD4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqCisgKiBEYXRlIGZvcm1hdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZSAKKyAqIGZvcm1hdCBpbnN0YW5jZXMgZm9yIGVhY2ggdGhyZWFkLiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdCAKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4gCisgKgorICogQHNlZSAgICAgICAgICBVRm9ybWF0CisgKiBAc2VlICAgICAgICAgIE51bWJlckZvcm1hdAorICogQHNlZSAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLlRpbWVab25lCisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRGF0ZUZvcm1hdCBleHRlbmRzIFVGb3JtYXQgeworCisgICAgLyoqCisgICAgICogVGhlIGNhbGVuZGFyIHRoYXQgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gdXNlcyB0byBwcm9kdWNlIHRoZSB0aW1lIGZpZWxkCisgICAgICogdmFsdWVzIG5lZWRlZCB0byBpbXBsZW1lbnQgZGF0ZSBhbmQgdGltZSBmb3JtYXR0aW5nLiAgU3ViY2xhc3NlcyBzaG91bGQKKyAgICAgKiBpbml0aWFsaXplIHRoaXMgdG8gYSBjYWxlbmRhciBhcHByb3ByaWF0ZSBmb3IgdGhlIGxvY2FsZSBhc3NvY2lhdGVkIHdpdGgKKyAgICAgKiB0aGlzIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ2FsZW5kYXIgY2FsZW5kYXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIGZvcm1hdHRlciB0aGF0IDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IHVzZXMgdG8gZm9ybWF0IG51bWJlcnMKKyAgICAgKiBpbiBkYXRlcyBhbmQgdGltZXMuICBTdWJjbGFzc2VzIHNob3VsZCBpbml0aWFsaXplIHRoaXMgdG8gYSBudW1iZXIgZm9ybWF0CisgICAgICogYXBwcm9wcmlhdGUgZm9yIHRoZSBsb2NhbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBOdW1iZXJGb3JtYXQgbnVtYmVyRm9ybWF0OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0cnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjRVJBfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBFUkFfRklFTEQgPSAwOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ3knIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjWUVBUn0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWUVBUl9GSUVMRCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnTScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNT05USH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OVEhfRklFTEQgPSAyOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2QnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFURX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFURV9GSUVMRCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnaycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNIT1VSX09GX0RBWX0gZmllbGQuCisgICAgICogSE9VUl9PRl9EQVkxX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSBvbmUtYmFzZWQgMjQtaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMjM6NTkgKyAwMTowMCByZXN1bHRzIGluIDI0OjU5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVJfT0ZfREFZMV9GSUVMRCA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnSCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNIT1VSX09GX0RBWX0gZmllbGQuCisgICAgICogSE9VUl9PRl9EQVkwX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSB6ZXJvLWJhc2VkIDI0LWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDIzOjU5ICsgMDE6MDAgcmVzdWx0cyBpbiAwMDo1OS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWTBfRklFTEQgPSA1OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ20nIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjTUlOVVRFfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSU5VVEVfRklFTEQgPSA2OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ3MnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjU0VDT05EfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRUNPTkRfRklFTEQgPSA3OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ1MnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjTUlMTElTRUNPTkR9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxEID0gODsKKworICAgIC8qKgorICAgICAqIEFsaWFzIGZvciBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRC4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMy4wIHVzZSBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSUxMSVNFQ09ORF9GSUVMRCA9IEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxEOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0UnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUt9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0ZJRUxEID0gOTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdEJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0RBWV9PRl9ZRUFSfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfWUVBUl9GSUVMRCA9IDEwOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0YnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUtfSU5fTU9OVEh9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxEID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAndycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNXRUVLX09GX1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRUtfT0ZfWUVBUl9GSUVMRCA9IDEyOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ1cnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjV0VFS19PRl9NT05USH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9NT05USF9GSUVMRCA9IDEzOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2EnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjQU1fUE19IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFNX1BNX0ZJRUxEID0gMTQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnaCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNIT1VSfSBmaWVsZC4KKyAgICAgKiBIT1VSMV9GSUVMRCBpcyB1c2VkIGZvciB0aGUgb25lLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMTI6MzAgQU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjFfRklFTEQgPSAxNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdLJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJ9IGZpZWxkLgorICAgICAqIEhPVVIwX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSB6ZXJvLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMDA6MzAgQU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjBfRklFTEQgPSAxNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd6JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1pPTkVfT0ZGU0VUfSBhbmQKKyAgICAgKiB7QGxpbmsgQ2FsZW5kYXIjRFNUX09GRlNFVH0gZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRJTUVaT05FX0ZJRUxEID0gMTc7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnWScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNZRUFSX1dPWX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWUVBUl9XT1lfRklFTEQgPSAxODsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdlJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0RPV19MT0NBTH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRE9XX0xPQ0FMX0ZJRUxEID0gMTk7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAndScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNFWFRFTkRFRF9ZRUFSfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBFWFRFTkRFRF9ZRUFSX0ZJRUxEID0gMjA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnZycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNKVUxJQU5fREFZfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBKVUxJQU5fREFZX0ZJRUxEID0gMjE7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnQScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNSUxMSVNFQ09ORFNfSU5fREFZfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSUxMSVNFQ09ORFNfSU5fREFZX0ZJRUxEID0gMjI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnWicgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNaT05FX09GRlNFVH0gYW5kCisgICAgICoge0BsaW5rIENhbGVuZGFyI0RTVF9PRkZTRVR9IGZpZWxkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBUSU1FWk9ORV9SRkNfRklFTEQgPSAyMzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd2JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1pPTkVfT0ZGU0VUfSBhbmQKKyAgICAgKiB7QGxpbmsgQ2FsZW5kYXIjRFNUX09GRlNFVH0gZmllbGRzLiAgVGhpcyBkaXNwbGF5cyB0aGUgZ2VuZXJpYyB6b25lCisgICAgICogbmFtZSwgaWYgYXZhaWxhYmxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVElNRVpPTkVfR0VORVJJQ19GSUVMRCA9IDI0OworIAorCisgICAgCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2MnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUt9IGZpZWxkLiAKKyAgICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBzdGFuZCBhbG9uZSBkYXkgbmFtZSwgaWYgYXZhaWxhYmxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU1RBTkRBTE9ORV9EQVlfRklFTEQgPSAyNTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnTCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNT05USH0gZmllbGQuICAKKyAgICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBzdGFuZCBhbG9uZSBtb250aCBuYW1lLCBpZiBhdmFpbGFibGUuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVEFOREFMT05FX01PTlRIX0ZJRUxEID0gMjY7CisgICAgCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ1EnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjTU9OVEh9IGZpZWxkLiAgCisgICAgICogVGhpcyBkaXNwbGF5cyB0aGUgcXVhcnRlci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFFVQVJURVJfRklFTEQgPSAyNzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAncScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNT05USH0gZmllbGQuICAKKyAgICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBzdGFuZCBhbG9uZSBxdWFydGVyLCBpZiBhdmFpbGFibGUuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVEFOREFMT05FX1FVQVJURVJfRklFTEQgPSAyODsKKyAgICAKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgRmllbGRQb3NpdGlvbiBzZWxlY3RvcnMgZm9yIERhdGVGb3JtYXQuCisgICAgICogVmFsaWQgc2VsZWN0b3JzIHJhbmdlIGZyb20gMCB0byBGSUVMRF9DT1VOVC0xLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZJRUxEX0NPVU5UID0gMjk7IC8vIG11c3QgPT0gRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzLmxlbmd0aCgpCisKKyAgICAvLyBQcm9jbGFpbSBzZXJpYWwgY29tcGF0aWJpbGl0eSB3aXRoIDEuMSBGQ1MKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA3MjE4MzIyMzA2NjQ5OTUzNzg4TDsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBGb3JtYXQuCisgICAgICogRm9ybWF0cyBhIHRpbWUgb2JqZWN0IGludG8gYSB0aW1lIHN0cmluZy4gRXhhbXBsZXMgb2YgdGltZSBvYmplY3RzCisgICAgICogYXJlIGEgdGltZSB2YWx1ZSBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzIGFuZCBhIERhdGUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBvYmogbXVzdCBiZSBhIE51bWJlciBvciBhIERhdGUgb3IgYSBDYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBvYmosIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikKKyAgICB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBDYWxlbmRhcikKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoIChDYWxlbmRhcilvYmosIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24gKTsKKyAgICAgICAgZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoIChEYXRlKW9iaiwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbiApOworICAgICAgICBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBOdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KCBuZXcgRGF0ZSgoKE51bWJlcilvYmopLmxvbmdWYWx1ZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbiApOworICAgICAgICBlbHNlIAorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2Fubm90IGZvcm1hdCBnaXZlbiBPYmplY3QgYXMgYSBEYXRlIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIGRhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGNhbCBhIENhbGVuZGFyIHNldCB0byB0aGUgZGF0ZSBhbmQgdGltZSB0byBiZSBmb3JtYXR0ZWQKKyAgICAgKiBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZFBvc2l0aW9uIGtlZXBzIHRyYWNrIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQKKyAgICAgKiB3aXRoaW4gdGhlIHJldHVybmVkIHN0cmluZy4KKyAgICAgKiBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLAorICAgICAqIGlmIGRlc2lyZWQuIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4gRm9yCisgICAgICogZXhhbXBsZSwgZ2l2ZW4gYSB0aW1lIHRleHQgIjE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUERUIiwKKyAgICAgKiBpZiB0aGUgZ2l2ZW4gZmllbGRQb3NpdGlvbiBpcyBEYXRlRm9ybWF0LllFQVJfRklFTEQsIHRoZQorICAgICAqIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDAgYW5kIDQsIHJlc3BlY3RpdmVseS4KKyAgICAgKiBOb3RpY2UgdGhhdCBpZiB0aGUgc2FtZSB0aW1lIGZpZWxkIGFwcGVhcnMKKyAgICAgKiBtb3JlIHRoYW4gb25jZSBpbiBhIHBhdHRlcm4sIHRoZSBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IGZvciB0aGUgZmlyc3QKKyAgICAgKiBvY2N1cmVuY2Ugb2YgdGhhdCB0aW1lIGZpZWxkLiBGb3IgaW5zdGFuY2UsIGZvcm1hdHRpbmcgYSBEYXRlIHRvCisgICAgICogdGhlIHRpbWUgc3RyaW5nICIxIFBNIFBEVCAoUGFjaWZpYyBEYXlsaWdodCBUaW1lKSIgdXNpbmcgdGhlIHBhdHRlcm4KKyAgICAgKiAiaCBhIHogKHp6enopIiBhbmQgdGhlIGFsaWdubWVudCBmaWVsZCBEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxELAorICAgICAqIHRoZSBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiA1IGFuZCA4LCByZXNwZWN0aXZlbHksIGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSB0aW1lem9uZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVyICd6Jy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChDYWxlbmRhciBjYWwsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGEgRGF0ZSBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZGF0ZSBhIERhdGUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KERhdGUgZGF0ZSwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisgICAgICAgIC8vIFVzZSBvdXIgQ2FsZW5kYXIgb2JqZWN0CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgICAgIHJldHVybiBmb3JtYXQoY2FsZW5kYXIsIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBEYXRlIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB0aW1lIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCBpbnRvIGEgdGltZSBzdHJpbmcuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIHRpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KERhdGUgZGF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgbmV3IFN0cmluZ0J1ZmZlcig2NCksbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHJldHVybiAgICAgIEEgRGF0ZSwgb3IgbnVsbCBpZiB0aGUgaW5wdXQgY291bGQgbm90IGJlIHBhcnNlZAorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgUGFyc2VFeGNlcHRpb24gIElmIHRoZSBnaXZlbiBzdHJpbmcgY2Fubm90IGJlIHBhcnNlZCBhcyBhIGRhdGUuCisgICAgICoKKyAgICAgKiBAc2VlICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGUgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSByZXN1bHQgPSBwYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gMCkgLy8gSUNVNEoKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiVW5wYXJzZWFibGUgZGF0ZTogXCIiICsgdGV4dCArICJcIiIgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5nZXRFcnJvckluZGV4KCkpOyAvLyBJQ1U0SgorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLgorICAgICAqIEZvciBleGFtcGxlLCBhIHRpbWUgdGV4dCAiMDcvMTAvOTYgNDo1IFBNLCBQRFQiIHdpbGwgYmUgcGFyc2VkCisgICAgICogaW50byBhIENhbGVuZGFyIHRoYXQgaXMgZXF1aXZhbGVudCB0byBEYXRlKDgzNzAzOTkyODA0NikuICBUaGUKKyAgICAgKiBjYWxsZXIgc2hvdWxkIGNsZWFyIHRoZSBjYWxlbmRhciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZCwKKyAgICAgKiB1bmxlc3MgZXhpc3RpbmcgZmllbGQgaW5mb3JtYXRpb24gaXMgdG8gYmUga2VwdC4KKyAgICAgKgorICAgICAqIDxwPiBCeSBkZWZhdWx0LCBwYXJzaW5nIGlzIGxlbmllbnQ6IElmIHRoZSBpbnB1dCBpcyBub3QgaW4gdGhlIGZvcm0gdXNlZAorICAgICAqIGJ5IHRoaXMgb2JqZWN0J3MgZm9ybWF0IG1ldGhvZCBidXQgY2FuIHN0aWxsIGJlIHBhcnNlZCBhcyBhIGRhdGUsIHRoZW4KKyAgICAgKiB0aGUgcGFyc2Ugc3VjY2VlZHMuICBDbGllbnRzIG1heSBpbnNpc3Qgb24gc3RyaWN0IGFkaGVyZW5jZSB0byB0aGUKKyAgICAgKiBmb3JtYXQgYnkgY2FsbGluZyBzZXRMZW5pZW50KGZhbHNlKS4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldExlbmllbnQoYm9vbGVhbikKKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICBUaGUgZGF0ZS90aW1lIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgaW50byB3aGljaCBwYXJzZWQgZGF0YSB3aWxsIGJlIHN0b3JlZC4KKyAgICAgKiAgICAgICAgICAgICAgSW4gZ2VuZXJhbCwgdGhpcyBzaG91bGQgYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzCisgICAgICogICAgICAgICAgICAgIG1ldGhvZC4gIElmIHRoaXMgcGFyc2UgZmFpbHMsIHRoZSBjYWxlbmRhciBtYXkgc3RpbGwKKyAgICAgKiAgICAgICAgICAgICAgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYXJzZShTdHJpbmcgdGV4dCwgQ2FsZW5kYXIgY2FsLCBQYXJzZVBvc2l0aW9uIHBvcyk7CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwYXJzZSBwb3NpdGlvbi4gIEZvcgorICAgICAqIGV4YW1wbGUsIGEgdGltZSB0ZXh0ICIwNy8xMC85NiA0OjUgUE0sIFBEVCIgd2lsbCBiZSBwYXJzZWQgaW50byBhIERhdGUKKyAgICAgKiB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gRGF0ZSg4MzcwMzk5MjgwNDYpLgorICAgICAqCisgICAgICogPHA+IEJ5IGRlZmF1bHQsIHBhcnNpbmcgaXMgbGVuaWVudDogSWYgdGhlIGlucHV0IGlzIG5vdCBpbiB0aGUgZm9ybSB1c2VkCisgICAgICogYnkgdGhpcyBvYmplY3QncyBmb3JtYXQgbWV0aG9kIGJ1dCBjYW4gc3RpbGwgYmUgcGFyc2VkIGFzIGEgZGF0ZSwgdGhlbgorICAgICAqIHRoZSBwYXJzZSBzdWNjZWVkcy4gIENsaWVudHMgbWF5IGluc2lzdCBvbiBzdHJpY3QgYWRoZXJlbmNlIHRvIHRoZQorICAgICAqIGZvcm1hdCBieSBjYWxsaW5nIHNldExlbmllbnQoZmFsc2UpLgorICAgICAqCisgICAgICogQHNlZSAjc2V0TGVuaWVudChib29sZWFuKQorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBBIERhdGUsIG9yIG51bGwgaWYgdGhlIGlucHV0IGNvdWxkIG5vdCBiZSBwYXJzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgIGNhbGVuZGFyLmNsZWFyKCk7CisgICAgICAgIHBhcnNlKHRleHQsIGNhbGVuZGFyLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgIT0gc3RhcnQpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBvY2N1cnMgaWYgdGhlIGNhbGVuZGFyIGlzIG5vbi1sZW5pZW50IGFuZCB0aGVyZSBpcworICAgICAgICAgICAgICAgIC8vIGFuIG91dC1vZi1yYW5nZSBmaWVsZC4gIFdlIGRvbid0IGtub3cgd2hpY2ggZmllbGQgd2FzCisgICAgICAgICAgICAgICAgLy8gaWxsZWdhbCBzbyB3ZSBzZXQgdGhlIGVycm9yIGluZGV4IHRvIHRoZSBzdGFydC4KKyAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgaW50byBhbiBPYmplY3QuICBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBzaW1wbHkKKyAgICAgKiBjYWxscyBwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pLgorICAgICAqCisgICAgICogQHNlZSAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcGFyc2VPYmplY3QgKFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlKHNvdXJjZSwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgZnVsbCBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZVTEwgPSAwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGxvbmcgc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT05HID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBtZWRpdW0gc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRURJVU0gPSAyOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIHNob3J0IHN0eWxlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlQgPSAzOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGRlZmF1bHQgc3R5bGUgcGF0dGVybi4gIEl0cyB2YWx1ZSBpcyBNRURJVU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVCA9IE1FRElVTTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgREVGQVVMVCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgc3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoLTEsIHN0eWxlLCBVTG9jYWxlLmZvckxvY2FsZShhTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoLTEsIHN0eWxlLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChERUZBVUxULCAtMSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoaW50IHN0eWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChzdHlsZSwgLTEsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoc3R5bGUsIC0xLCBVTG9jYWxlLmZvckxvY2FsZShhTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoc3R5bGUsIC0xLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KERFRkFVTFQsIERFRkFVTFQsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUKKyAgICAgKiBmb3JtYXR0aW5nIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lU3R5bGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KGRhdGVTdHlsZSwgdGltZVN0eWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlcworICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIHRoZSBnaXZlbiB0aW1lIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQKKyAgICAgICAgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIFVMb2NhbGUuZm9yTG9jYWxlKGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGVzCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSB0aGUgZ2l2ZW4gZGF0ZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgdGhlIGdpdmVuIHRpbWUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0CisgICAgICAgIGdldERhdGVUaW1lSW5zdGFuY2UoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KGRhdGVTdHlsZSwgdGltZVN0eWxlLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIGRlZmF1bHQgZGF0ZS90aW1lIGZvcm1hdHRlciB0aGF0IHVzZXMgdGhlIFNIT1JUIHN0eWxlIGZvciBib3RoIHRoZQorICAgICAqIGRhdGUgYW5kIHRoZSB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoU0hPUlQsIFNIT1JUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2V0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIERhdGVGb3JtYXRzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgc2V0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIERhdGVGb3JtYXRzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpCisgICAgeworICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoaXMgZGF0ZSBmb3JtYXQuICBJbml0aWFsbHksIHRoZSBkZWZhdWx0CisgICAgICogY2FsZW5kYXIgZm9yIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCBsb2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gbmV3Q2FsZW5kYXIgdGhlIG5ldyBDYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoZSBkYXRlIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhbGVuZGFyKENhbGVuZGFyIG5ld0NhbGVuZGFyKQorICAgIHsKKyAgICAgICAgdGhpcy5jYWxlbmRhciA9IG5ld0NhbGVuZGFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNhbGVuZGFyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHJldHVybiB0aGUgY2FsZW5kYXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBudW1iZXIgZm9ybWF0dGVyLgorICAgICAqIEBwYXJhbSBuZXdOdW1iZXJGb3JtYXQgdGhlIGdpdmVuIG5ldyBOdW1iZXJGb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TnVtYmVyRm9ybWF0KE51bWJlckZvcm1hdCBuZXdOdW1iZXJGb3JtYXQpCisgICAgeworICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IG5ld051bWJlckZvcm1hdDsKKyAgICAgICAgLypJbiBvcmRlciB0byBwYXJzZSBTdHJpbmcgbGlrZSAiMTEuMTAuMjAwMSIgdG8gRGF0ZVRpbWUgY29ycmVjdGx5IAorICAgICAgICAgIGluIExvY2FsZSgiZnIiLCJDSCIpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBudW1iZXIgZm9ybWF0dGVyIHdoaWNoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlciB1c2VzIHRvCisgICAgICogZm9ybWF0IGFuZCBwYXJzZSBhIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIGZvcm1hdHRlciB3aGljaCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIgdXNlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckZvcm1hdCgpCisgICAgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgem9uZSBmb3IgdGhlIGNhbGVuZGFyIG9mIHRoaXMgRGF0ZUZvcm1hdCBvYmplY3QuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIG5ldyB0aW1lIHpvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGltZVpvbmUoVGltZVpvbmUgem9uZSkKKyAgICB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjYWxlbmRhciBvZiBEYXRlRm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSBnZXRUaW1lWm9uZSgpCisgICAgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0VGltZVpvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IGRhdGUvdGltZSBwYXJzaW5nIGlzIHRvIGJlIGxlbmllbnQuICBXaXRoCisgICAgICogbGVuaWVudCBwYXJzaW5nLCB0aGUgcGFyc2VyIG1heSB1c2UgaGV1cmlzdGljcyB0byBpbnRlcnByZXQgaW5wdXRzIHRoYXQKKyAgICAgKiBkbyBub3QgcHJlY2lzZWx5IG1hdGNoIHRoaXMgb2JqZWN0J3MgZm9ybWF0LiAgV2l0aCBzdHJpY3QgcGFyc2luZywKKyAgICAgKiBpbnB1dHMgbXVzdCBtYXRjaCB0aGlzIG9iamVjdCdzIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbGVuaWVudCB3aGVuIHRydWUsIHBhcnNpbmcgaXMgbGVuaWVudAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNzZXRMZW5pZW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudChib29sZWFuIGxlbmllbnQpCisgICAgeworICAgICAgICBjYWxlbmRhci5zZXRMZW5pZW50KGxlbmllbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlbGwgd2hldGhlciBkYXRlL3RpbWUgcGFyc2luZyBpcyB0byBiZSBsZW5pZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVuaWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuaXNMZW5pZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8vIHR1cm4gb2ZmIGNvZGUgY292ZXJhZ2Ugc2luY2UgYWxsIHN1YmNsYXNzZXMgb3ZlcnJpZGUgdGhpcworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuaGFzaENvZGUoKTsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIERhdGVGb3JtYXQgb3RoZXIgPSAoRGF0ZUZvcm1hdCkgb2JqOworICAgICAgICByZXR1cm4gKGNhbGVuZGFyLmlzRXF1aXZhbGVudFRvKG90aGVyLmNhbGVuZGFyKSAmJgorICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5lcXVhbHMob3RoZXIubnVtYmVyRm9ybWF0KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBvdGhlciA9IChEYXRlRm9ybWF0KSBzdXBlci5jbG9uZSgpOworICAgICAgICBvdGhlci5jYWxlbmRhciA9IChDYWxlbmRhcikgY2FsZW5kYXIuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIubnVtYmVyRm9ybWF0ID0gKE51bWJlckZvcm1hdCkgbnVtYmVyRm9ybWF0LmNsb25lKCk7CisgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgRGF0ZUZvcm1hdCB3aXRoIHRoZSBnaXZlbiB0aW1lIGFuZC9vciBkYXRlIHN0eWxlIGluIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIGEgdmFsdWUgZnJvbSAwIHRvIDMgaW5kaWNhdGluZyB0aGUgdGltZSBmb3JtYXQsCisgICAgICogb3IgLTEgdG8gaW5kaWNhdGUgbm8gZGF0ZQorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgYSB2YWx1ZSBmcm9tIDAgdG8gMyBpbmRpY2F0aW5nIHRoZSB0aW1lIGZvcm1hdCwKKyAgICAgKiBvciAtMSB0byBpbmRpY2F0ZSBubyB0aW1lCisgICAgICogQHBhcmFtIGxvYyB0aGUgbG9jYWxlIGZvciB0aGUgZm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgRGF0ZUZvcm1hdCBnZXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKHRpbWVTdHlsZSA8IC0xIHx8IHRpbWVTdHlsZSA+IDMpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgdGltZSBzdHlsZSAiICsgdGltZVN0eWxlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGF0ZVN0eWxlIDwgLTEgfHwgZGF0ZVN0eWxlID4gMykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBkYXRlIHN0eWxlICIgKyBkYXRlU3R5bGUpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2MpOworICAgICAgICAgICAgRGF0ZUZvcm1hdCByZXN1bHQgPSBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvYyk7CisJICAgIHJlc3VsdC5zZXRMb2NhbGUoY2FsLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSksCisJCQkgICAgIGNhbC5nZXRMb2NhbGUoVUxvY2FsZS5BQ1RVQUxfTE9DQUxFKSk7CisJICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICAvLyBjb3ZlcmFnZSByZXF1aXJlcyBzZXBhcmF0ZSBydW4gd2l0aCBubyBkYXRhLCBzbyBza2lwCisgICAgICAgICAgICByZXR1cm4gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk0vZC95eSBoOm1tIGEiKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0KCkge30KKworICAgIC8vfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHVibGljIHN0YXRpYyBpbnRlcmZhY2UgZm9yIGNyZWF0aW5nIGN1c3RvbiBEYXRlRm9ybWF0cyBmb3IgZGlmZmVyZW50CisgICAgLy8gdHlwZXMgb2YgQ2FsZW5kYXJzLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIExvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIGRhdGVTdHlsZSwgLTEsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBkYXRlU3R5bGUsIC0xLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IHRpbWVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gV2hlbiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbW92ZWQgaW50byB0aGUgY29yZSBKREssIHRoaXMgbWV0aG9kCisgICAgICogd2lsbCBwcm9iYWJseSBiZSByZXBsYWNlZCBieSBhIG5ldyBvdmVybG9hZCBvZiB7QGxpbmsgRGF0ZUZvcm1hdCNnZXRJbnN0YW5jZX0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNnZXRUaW1lSW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgLTEsIHRpbWVTdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldFRpbWVJbnN0YW5jZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCAtMSwgdGltZVN0eWxlLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGFuZCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0RGF0ZVRpbWVJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGltZVN0eWxlLCBMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbC5nZXREYXRlVGltZUZvcm1hdChkYXRlU3R5bGUsIHRpbWVTdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBhbmQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldERhdGVUaW1lSW5zdGFuY2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgU0hPUlQsIFNIT1JULCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldEluc3RhbmNlKENhbGVuZGFyIGNhbCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBTSE9SVCwgU0hPUlQsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShjYWwsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlSW5zdGFuY2UoY2FsLCBkYXRlU3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBnZXRUaW1lSW5zdGFuY2UoY2FsLCB0aW1lU3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIGRhdGVTdHlsZSwgdGltZVN0eWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ViMjZkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSwxOTA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVGV4dFRyaWVNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuWm9uZU1ldGE7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuU29mdENhY2hlOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBpcyBhIHB1YmxpYyBjbGFzcyBmb3IgZW5jYXBzdWxhdGluZworICogbG9jYWxpemFibGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZGF0YSwgc3VjaCBhcyB0aGUgbmFtZXMgb2YgdGhlCisgKiBtb250aHMsIHRoZSBuYW1lcyBvZiB0aGUgZGF5cyBvZiB0aGUgd2VlaywgYW5kIHRoZSB0aW1lIHpvbmUgZGF0YS4KKyAqIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBib3RoIHVzZQorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IHRvIGVuY2Fwc3VsYXRlIHRoaXMgaW5mb3JtYXRpb24uCisgKgorICogPHA+CisgKiBUeXBpY2FsbHkgeW91IHNob3VsZG4ndCB1c2UgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGRpcmVjdGx5LgorICogUmF0aGVyLCB5b3UgYXJlIGVuY291cmFnZWQgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIHRoZQorICogPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gY2xhc3MncyBmYWN0b3J5IG1ldGhvZHM6IDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sCisgKiA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvciA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPi4KKyAqIFRoZXNlIG1ldGhvZHMgYXV0b21hdGljYWxseSBjcmVhdGUgYSA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yCisgKiB0aGUgZm9ybWF0dGVyIHNvIHRoYXQgeW91IGRvbid0IGhhdmUgdG8uIEFmdGVyIHRoZQorICogZm9ybWF0dGVyIGlzIGNyZWF0ZWQsIHlvdSBtYXkgbW9kaWZ5IGl0cyBmb3JtYXQgcGF0dGVybiB1c2luZyB0aGUKKyAqIDxjb2RlPnNldFBhdHRlcm48L2NvZGU+IG1ldGhvZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGNyZWF0aW5nIGZvcm1hdHRlcnMgdXNpbmcgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMsCisgKiBzZWUge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogSWYgeW91IGRlY2lkZSB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggYSBzcGVjaWZpYworICogZm9ybWF0IHBhdHRlcm4gZm9yIGEgc3BlY2lmaWMgbG9jYWxlLCB5b3UgY2FuIGRvIHNvIHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBuZXcgU2ltcGxlRGF0ZUZvcm1hdChhUGF0dGVybiwgbmV3IERhdGVGb3JtYXRTeW1ib2xzKGFMb2NhbGUpKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdHMgYXJlIGNsb25hYmxlLiBXaGVuIHlvdSBvYnRhaW4KKyAqIGEgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCwgZmVlbCBmcmVlIHRvIG1vZGlmeSB0aGUKKyAqIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEuIEZvciBpbnN0YW5jZSwgeW91IGNhbiByZXBsYWNlIHRoZSBsb2NhbGl6ZWQKKyAqIGRhdGUtdGltZSBmb3JtYXQgcGF0dGVybiBjaGFyYWN0ZXJzIHdpdGggdGhlIG9uZXMgdGhhdCB5b3UgZmVlbCBlYXN5CisgKiB0byByZW1lbWJlci4gT3IgeW91IGNhbiBjaGFuZ2UgdGhlIHJlcHJlc2VudGF0aXZlIGNpdGllcworICogdG8geW91ciBmYXZvcml0ZSBvbmVzLgorICoKKyAqIDxwPgorICogTmV3IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBzdWJjbGFzc2VzIG1heSBiZSBhZGRlZCB0byBzdXBwb3J0CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBmb3IgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGFkZGl0aW9uYWwgbG9jYWxlcy4KKworICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZQorICogQGF1dGhvciAgICAgICBDaGVuLUxpZWggSHVhbmcKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHMgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSB7CisKKyAgICAvLyBUT0RPIG1ha2Ugc3VyZSBsb2NhbCBwYXR0ZXJuIGNoYXIgc3RyaW5nIGlzIDE4IGNoYXJhY3RlcnMgbG9uZywKKyAgICAvLyB0aGF0IGlzLCB0aGF0IGl0IGVuY29tcGFzc2VzIHRoZSBuZXcgJ3UnIGNoYXIgZm9yCisgICAgLy8gRVhURU5ERURfWUVBUi4gIFR3byBvcHRpb25zOiAxLiBNYWtlIHN1cmUgcmVzb3VyY2UgZGF0YSBpcworICAgIC8vIGNvcnJlY3Q7IDIuIE1ha2UgY29kZSBhZGQgaW4gJ3UnIGF0IGVuZCBpZiBsZW4gPT0gMTcuCisKKyAgICAvLyBDb25zdGFudHMgZm9yIGNvbnRleHQKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgY29udGV4dC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgY29udGV4dC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQU5EQUxPTkUgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGNvbnRleHQuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEVF9DT05URVhUX0NPVU5UID0gMjsKKworICAgIC8vIENvbnN0YW50cyBmb3Igd2lkdGgKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB3aWR0aC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFCQlJFVklBVEVEID0gMDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB3aWR0aC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdJREUgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIHdpZHRoLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFSUk9XID0gMjsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB3aWR0aC4KKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERUX1dJRFRIX0NPVU5UID0gMzsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEoVUxvY2FsZS5nZXREZWZhdWx0KCksICIiKTsgLy8gVE9ETzogdHlwZT8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0IGJ5IGxvYWRpbmcgZm9ybWF0IGRhdGEgZnJvbQorICAgICAqIHJlc291cmNlcyBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgICBmb3VuZCBvciBjYW5ub3QgYmUgbG9hZGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSwgIiIpOyAvLyBUT0RPOiB0eXBlPworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqCisgICAgICogQHRocm93cyAgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqICAgICAgICAgIGlmIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGNhbm5vdCBiZQorICAgICAqICAgICAgICAgIGZvdW5kIG9yIGNhbm5vdCBiZSBsb2FkZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICBpbml0aWFsaXplRGF0YShsb2NhbGUsICIiKTsgLy8gVE9ETzogdHlwZT8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFcmEgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBRCIgYW5kICJCQyIuICBBbiBhcnJheSBvZiAyIHN0cmluZ3MsCisgICAgICogaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5CQzwvY29kZT4gYW5kIDxjb2RlPkNhbGVuZGFyLkFEPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIGVyYXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBFcmEgbmFtZSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFubm8gRG9taW5pIiBhbmQgIkJlZm9yZSBDaHJpc3QiLiAgQW4gYXJyYXkgb2YgMiBzdHJpbmdzLAorICAgICAqIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuQkM8L2NvZGU+IGFuZCA8Y29kZT5DYWxlbmRhci5BRDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBlcmFOYW1lc1tdID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBOYXJyb3cgZXJhIG5hbWVzLiBGb3IgZXhhbXBsZTogIkEiIGFuZCAiQiIuIEFuIGFycmF5IG9mIDIgc3RyaW5ncywKKyAgICAgKiBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLkJDPC9jb2RlPiBhbmQgPGNvZGU+Q2FsZW5kYXIuQUQ8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgbmFycm93RXJhc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIE1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgMTMgc3RyaW5ncyAoc29tZSBjYWxlbmRhcnMgaGF2ZSAxMyBtb250aHMpLCBpbmRleGVkIGJ5CisgICAgICogPGNvZGU+Q2FsZW5kYXIuSkFOVUFSWTwvY29kZT4sIDxjb2RlPkNhbGVuZGFyLkZFQlJVQVJZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgbW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU2hvcnQgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW4iLCAiRmViIiwgZXRjLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHNob3J0TW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogTmFycm93IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSiIsICJGIiwgZXRjLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIG5hcnJvd01vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFN0YW5kYWxvbmUgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzdGFuZGFsb25lTW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuICBBbiBhcnJheSBvZgorICAgICAqIDEzIHN0cmluZ3MgKHNvbWUgY2FsZW5kYXJzIGhhdmUgMTMgbW9udGhzKSwgaW5kZXhlZCBieQorICAgICAqIDxjb2RlPkNhbGVuZGFyLkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5DYWxlbmRhci5GRUJSVUFSWTwvY29kZT4sIGV0Yy4KKworICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZVNob3J0TW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSBuYXJyb3cgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKIiwgIkYiLCBldGMuICBBbiBhcnJheSBvZgorICAgICAqIDEzIHN0cmluZ3MgKHNvbWUgY2FsZW5kYXJzIGhhdmUgMTMgbW9udGhzKSwgaW5kZXhlZCBieQorICAgICAqIDxjb2RlPkNhbGVuZGFyLkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5DYWxlbmRhci5GRUJSVUFSWTwvY29kZT4sIGV0Yy4KKworICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZU5hcnJvd01vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+d2Vla2RheXNbMF08L2NvZGU+IGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyB3ZWVrZGF5c1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+c2hvcnRXZWVrZGF5c1swXTwvY29kZT4gaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHNob3J0V2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBOYXJyb3cgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlMiLCAiTSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPm5hcnJvd1dlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgbmFycm93V2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+c3RhbmRhbG9uZVdlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZVdlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuIiwgIk1vbiIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPnN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZVNob3J0V2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIG5hcnJvdyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiUyIsICJNIiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+c3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogQU0gYW5kIFBNIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAyIHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuQU08L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPkNhbGVuZGFyLlBNPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIGFtcG1zW10gPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIEFiYnJldmlhdGVkIHF1YXJ0ZXIgbmFtZXMuIEZvciBleGFtcGxlOiAiUTEiLCAiUTIiLCAiUTMiLCAiUTQiLiBBbiBhcnJheQorICAgICAqIG9mIDQgc3RyaW5ncyBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzaG9ydFF1YXJ0ZXJzW10gPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIEZ1bGwgcXVhcnRlciBuYW1lcy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsICIzcmQgUXVhcnRlciIsCisgICAgICogIjR0aCBRdWFydGVyIi4gQW4gYXJyYXkgb2YgNCBzdHJpbmdzLCBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBxdWFydGVyc1tdID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIGFiYnJldmlhdGVkIHF1YXJ0ZXIgbmFtZXMuIEZvciBleGFtcGxlOiAiUTEiLCAiUTIiLCAiUTMiLCAiUTQiLiBBbiBhcnJheQorICAgICAqIG9mIDQgc3RyaW5ncyBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzdGFuZGFsb25lU2hvcnRRdWFydGVyc1tdID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIGZ1bGwgcXVhcnRlciBuYW1lcy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsICIzcmQgUXVhcnRlciIsCisgICAgICogIjR0aCBRdWFydGVyIi4gQW4gYXJyYXkgb2YgNCBzdHJpbmdzLCBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzdGFuZGFsb25lUXVhcnRlcnNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6ZWQgbmFtZXMgb2YgdGltZSB6b25lcyBpbiB0aGlzIGxvY2FsZS4gIFRoaXMgaXMgYQorICAgICAqIHR3by1kaW1lbnNpb25hbCBhcnJheSBvZiBzdHJpbmdzIG9mIHNpemUgPGVtPm48L2VtPiBieSA8ZW0+bTwvZW0+LAorICAgICAqIHdoZXJlIDxlbT5tPC9lbT4gaXMgYXQgbGVhc3QgNSBhbmQgdXAgdG8gOC4gIEVhY2ggb2YgdGhlIDxlbT5uPC9lbT4gcm93cyBpcyBhbgorICAgICAqIGVudHJ5IGNvbnRhaW5pbmcgdGhlIGxvY2FsaXplZCBuYW1lcyBmb3IgYSBzaW5nbGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICAgICAqIEVhY2ggc3VjaCByb3cgY29udGFpbnMgKHdpdGggPGNvZGU+aTwvY29kZT4gcmFuZ2luZyBmcm9tCisgICAgICogMC4uPGVtPm48L2VtPi0xKToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzBdPC9jb2RlPiAtIHRpbWUgem9uZSBJRDwvbGk+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzFdPC9jb2RlPiAtIGxvbmcgbmFtZSBvZiB6b25lIGluIHN0YW5kYXJkCisgICAgICogdGltZTwvbGk+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzJdPC9jb2RlPiAtIHNob3J0IG5hbWUgb2Ygem9uZSBpbgorICAgICAqIHN0YW5kYXJkIHRpbWU8L2xpPgorICAgICAqIDxsaT48Y29kZT56b25lU3RyaW5nc1tpXVszXTwvY29kZT4gLSBsb25nIG5hbWUgb2Ygem9uZSBpbiBkYXlsaWdodAorICAgICAqIHNhdmluZ3MgdGltZTwvbGk+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzRdPC9jb2RlPiAtIHNob3J0IG5hbWUgb2Ygem9uZSBpbiBkYXlsaWdodAorICAgICAqIHNhdmluZ3MgdGltZTwvbGk+CisgICAgICogPGxpPlRoZSByZW1haW5kZXIgdmFyaWVzIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZXJlIGlzIGRhdGEgCisgICAgICogb24gY2l0eSBuYW1lIG9yIGdlbmVyaWMgdGltZS4gIFRoZSBjaXR5IG5hbWUsIGlmIGF2YWlsYWJsZSwgY29tZXMKKyAgICAgKiBmaXJzdC4gIFRoZSBsb25nIGFuZCBzaG9ydCBnZW5lcmljIHRpbWVzLCBpZiBhdmFpbGFibGUsIGNvbWUgbmV4dCwKKyAgICAgKiBpbiB0aGF0IG9yZGVyLiBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSAobSkgY2FuIGJlIGV4YW1pbmVkIHRvIAorICAgICAqIGRldGVybWluZSB3aGljaCBvcHRpb25hbCBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUuPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIFRoZSB6b25lIElEIGlzIDxlbT5ub3Q8L2VtPiBsb2NhbGl6ZWQ7IGl0IGNvcnJlc3BvbmRzIHRvIHRoZSBJRAorICAgICAqIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHN5c3RlbSB0aW1lIHpvbmUgb2JqZWN0LiAgQWxsIG90aGVyIGVudHJpZXMKKyAgICAgKiBhcmUgbG9jYWxpemVkIG5hbWVzLiAgSWYgYSB6b25lIGRvZXMgbm90IGltcGxlbWVudCBkYXlsaWdodCBzYXZpbmdzCisgICAgICogdGltZSwgdGhlIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBuYW1lcyBhcmUgaWdub3JlZC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgIHByaXZhdGUgU3RyaW5nIHpvbmVTdHJpbmdzW11bXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBVbmxvY2FsaXplZCBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXJzLiBGb3IgZXhhbXBsZTogJ3knLCAnZCcsIGV0Yy4KKyAgICAgKiBBbGwgbG9jYWxlcyB1c2UgdGhlIHNhbWUgdW5sb2NhbGl6ZWQgcGF0dGVybiBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgIHBhdHRlcm5DaGFycyA9ICJHeU1ka0htc1NFREZ3V2FoS3pZZXVnQVp2Y0xRcSI7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGUsIGEgbG9jYWxlIG1heQorICAgICAqIHdpc2ggdG8gdXNlICd1JyByYXRoZXIgdGhhbiAneScgdG8gcmVwcmVzZW50IHllYXJzIGluIGl0cyBkYXRlIGZvcm1hdAorICAgICAqIHBhdHRlcm4gc3RyaW5ncy4KKyAgICAgKiBUaGlzIHN0cmluZyBtdXN0IGJlIGV4YWN0bHkgMTggY2hhcmFjdGVycyBsb25nLCB3aXRoIHRoZSBpbmRleCBvZgorICAgICAqIHRoZSBjaGFyYWN0ZXJzIGRlc2NyaWJlZCBieSA8Y29kZT5EYXRlRm9ybWF0LkVSQV9GSUVMRDwvY29kZT4sCisgICAgICogPGNvZGU+RGF0ZUZvcm1hdC5ZRUFSX0ZJRUxEPC9jb2RlPiwgZXRjLiAgVGh1cywgaWYgdGhlIHN0cmluZyB3ZXJlCisgICAgICogIlh6Li4uIiwgdGhlbiBsb2NhbGl6ZWQgcGF0dGVybnMgd291bGQgdXNlICdYJyBmb3IgZXJhIGFuZCAneicgZm9yIHllYXIuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyAgbG9jYWxQYXR0ZXJuQ2hhcnMgPSBudWxsOworCisgICAgLyogdXNlIHNlcmlhbFZlcnNpb25VSUQgZnJvbSBKREsgMS4xLjQgZm9yIGludGVyb3BlcmFiaWxpdHkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNTk4Nzk3MzU0NTU0OTQyNDcwMkw7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcmV0dXJuIHRoZSBlcmEgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RXJhcygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShlcmFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcGFyYW0gbmV3RXJhcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVyYXMoU3RyaW5nW10gbmV3RXJhcykgeworICAgICAgICBlcmFzID0gZHVwbGljYXRlKG5ld0VyYXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgZXJhIG5hbWUgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBbm5vIERvbWluaSIgYW5kICJCZWZvcmUgQ2hyaXN0Ii4KKyAgICAgKiBAcmV0dXJuIHRoZSBlcmEgc3RyaW5ncy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcmFOYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShlcmFOYW1lcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBlcmEgbmFtZSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFubm8gRG9taW5pIiBhbmQgIkJlZm9yZSBDaHJpc3QiLgorICAgICAqIEBwYXJhbSBuZXdFcmFOYW1lcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RXJhTmFtZXMoU3RyaW5nW10gbmV3RXJhTmFtZXMpIHsKKyAgICAgICAgZXJhTmFtZXMgPSBkdXBsaWNhdGUobmV3RXJhTmFtZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldE1vbnRocygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShtb250aHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLgorICAgICAqIEBwYXJhbSBjb250ZXh0ICAgIFRoZSBtb250aCBjb250ZXh0LCBGT1JNQVQgb3IgU1RBTkRBTE9ORS4KKyAgICAgKiBAcGFyYW0gd2lkdGggICAgICBUaGUgd2lkdGggb3IgdGhlIHJldHVybmVkIG1vbnRoIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgICBlaXRoZXIgV0lERSwgQUJCUkVWSUFURUQsIG9yIE5BUlJPVy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb250aCBzdHJpbmdzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldE1vbnRocyhpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZyBbXSByZXR1cm5WYWx1ZSA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG1vbnRoczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHNob3J0TW9udGhzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG5hcnJvd01vbnRoczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGNhc2UgU1RBTkRBTE9ORSA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHN0YW5kYWxvbmVNb250aHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBzdGFuZGFsb25lU2hvcnRNb250aHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZU5hcnJvd01vbnRoczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShyZXR1cm5WYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbnVhcnkiLCAiRmVicnVhcnkiLCBldGMuCisgICAgICogQHBhcmFtIG5ld01vbnRocyB0aGUgbmV3IG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9udGhzKFN0cmluZ1tdIG5ld01vbnRocykgeworICAgICAgICBtb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3TW9udGhzIHRoZSBuZXcgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAcGFyYW0gY29udGV4dCAgICBUaGUgZm9ybWF0dGluZyBjb250ZXh0LCBGT1JNQVQgb3IgU1RBTkRBTE9ORS4KKyAgICAgKiBAcGFyYW0gd2lkdGggICAgICBUaGUgd2lkdGggb2YgdGhlIG1vbnRoIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgICBlaXRoZXIgV0lERSwgQUJCUkVWSUFURUQsIG9yIE5BUlJPVy4KKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vbnRocyhTdHJpbmdbXSBuZXdNb250aHMsIGludCBjb250ZXh0LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0KSB7CisgICAgICAgICAgIGNhc2UgRk9STUFUIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIG1vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHNob3J0TW9udGhzID0gZHVwbGljYXRlKG5ld01vbnRocyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIG5hcnJvd01vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgTkFSUk9XIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZU5hcnJvd01vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHNob3J0IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFuIiwgIkZlYiIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBzaG9ydCBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTaG9ydE1vbnRocygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShzaG9ydE1vbnRocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuCisgICAgICogQHBhcmFtIG5ld1Nob3J0TW9udGhzIHRoZSBuZXcgc2hvcnQgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaG9ydE1vbnRocyhTdHJpbmdbXSBuZXdTaG9ydE1vbnRocykgeworICAgICAgICBzaG9ydE1vbnRocyA9IGR1cGxpY2F0ZShuZXdTaG9ydE1vbnRocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSB3ZWVrZGF5IHN0cmluZ3MuIFVzZSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4gdG8gaW5kZXggdGhlIHJlc3VsdCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0V2Vla2RheXMoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUod2Vla2RheXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1bmRheSIsICJNb25kYXkiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgd2Vla2RheSBzdHJpbmdzLiBVc2UgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuIHRvIGluZGV4IHRoZSByZXN1bHQgYXJyYXkuCisgICAgICogQHBhcmFtIGNvbnRleHQgICAgRm9ybWF0dGluZyBjb250ZXh0LCBlaXRoZXIgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgV2lkdGggb2Ygc3RyaW5ncyB0byBiZSByZXR1cm5lZCwgZWl0aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgV0lERSwgQUJCUkVWSUFURUQsIG9yIE5BUlJPVworICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFdlZWtkYXlzKGludCBjb250ZXh0LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgU3RyaW5nIFtdIHJldHVyblZhbHVlID0gbnVsbDsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0KSB7CisgICAgICAgICAgIGNhc2UgRk9STUFUIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gd2Vla2RheXM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBzaG9ydFdlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG5hcnJvd1dlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVdlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVNob3J0V2Vla2RheXM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZHVwbGljYXRlKHJldHVyblZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdXZWVrZGF5cyBUaGUgbmV3IHdlZWtkYXkgc3RyaW5ncy4KKyAgICAgKiBAcGFyYW0gY29udGV4dCAgICAgVGhlIGZvcm1hdHRpbmcgY29udGV4dCwgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgIFRoZSB3aWR0aCBvZiB0aGUgc3RyaW5ncywKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZWl0aGVyIFdJREUsIEFCQlJFVklBVEVELCBvciBOQVJST1cuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRXZWVrZGF5cyhTdHJpbmdbXSBuZXdXZWVrZGF5cywgaW50IGNvbnRleHQsIGludCB3aWR0aCkgeworICAgICAgICBzd2l0Y2ggKGNvbnRleHQpIHsKKyAgICAgICAgICAgY2FzZSBGT1JNQVQgOgorICAgICAgICAgICAgICBzd2l0Y2god2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgY2FzZSBXSURFIDoKKyAgICAgICAgICAgICAgICAgICAgd2Vla2RheXMgPSBkdXBsaWNhdGUobmV3V2Vla2RheXMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHNob3J0V2Vla2RheXMgPSBkdXBsaWNhdGUobmV3V2Vla2RheXMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICBuYXJyb3dXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICBjYXNlIFNUQU5EQUxPTkUgOgorICAgICAgICAgICAgICBzd2l0Y2god2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgY2FzZSBXSURFIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZVdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1dlZWtkYXlzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3V2Vla2RheXMgdGhlIG5ldyB3ZWVrZGF5IHN0cmluZ3MuIFRoZSBhcnJheSBzaG91bGQKKyAgICAgKiBiZSBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFdlZWtkYXlzKFN0cmluZ1tdIG5ld1dlZWtkYXlzKSB7CisgICAgICAgIHdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1dlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gVXNlIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLiB0byBpbmRleCB0aGUgcmVzdWx0IGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTaG9ydFdlZWtkYXlzKCkgeworICAgICAgICByZXR1cm4gZHVwbGljYXRlKHNob3J0V2Vla2RheXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgc2hvcnQgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1biIsICJNb24iLCBldGMuCisgICAgICogQHBhcmFtIG5ld1Nob3J0V2Vla2RheXMgdGhlIG5ldyBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIFRoZSBhcnJheSBzaG91bGQKKyAgICAgKiBiZSBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNob3J0V2Vla2RheXMoU3RyaW5nW10gbmV3U2hvcnRXZWVrZGF5cykgeworICAgICAgICBzaG9ydFdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1Nob3J0V2Vla2RheXMpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIHF1YXJ0ZXIgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gY29udGV4dCAgICBUaGUgcXVhcnRlciBjb250ZXh0LCBGT1JNQVQgb3IgU1RBTkRBTE9ORS4KKyAgICAgKiBAcGFyYW0gd2lkdGggICAgICBUaGUgd2lkdGggb3IgdGhlIHJldHVybmVkIHF1YXJ0ZXIgc3RyaW5nLAorICAgICAqICAgICAgICAgICAgICAgICAgIGVpdGhlciBXSURFIG9yIEFCQlJFVklBVEVELiBUaGVyZSBhcmUgbm8gTkFSUk9XIHF1YXJ0ZXJzLgorICAgICAqIEByZXR1cm4gdGhlIHF1YXJ0ZXIgc3RyaW5ncy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRRdWFydGVycyhpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZyBbXSByZXR1cm5WYWx1ZSA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHF1YXJ0ZXJzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc2hvcnRRdWFydGVyczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgTkFSUk9XIDoKKyAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVF1YXJ0ZXJzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVNob3J0UXVhcnRlcnM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVzogCisgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZHVwbGljYXRlKHJldHVyblZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHF1YXJ0ZXIgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3UXVhcnRlcnMgdGhlIG5ldyBxdWFydGVyIHN0cmluZ3MuCisgICAgICogQHBhcmFtIGNvbnRleHQgICAgVGhlIGZvcm1hdHRpbmcgY29udGV4dCwgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgVGhlIHdpZHRoIG9mIHRoZSBxdWFydGVyIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgICBlaXRoZXIgV0lERSBvciBBQkJSRVZJQVRFRC4gVGhlcmUgYXJlIG5vIE5BUlJPVyBxdWFydGVycy4KKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFF1YXJ0ZXJzKFN0cmluZ1tdIG5ld1F1YXJ0ZXJzLCBpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICBxdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgc2hvcnRRdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIC8vbmFycm93UXVhcnRlcnMgPSBkdXBsaWNhdGUobmV3UXVhcnRlcnMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVRdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZVNob3J0UXVhcnRlcnMgPSBkdXBsaWNhdGUobmV3UXVhcnRlcnMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICAvL3N0YW5kYWxvbmVOYXJyb3dRdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhbXBtIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLgorICAgICAqIEByZXR1cm4gdGhlIHdlZWtkYXkgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0QW1QbVN0cmluZ3MoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUoYW1wbXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgYW1wbSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFNIiBhbmQgIlBNIi4KKyAgICAgKiBAcGFyYW0gbmV3QW1wbXMgdGhlIG5ldyBhbXBtIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QW1QbVN0cmluZ3MoU3RyaW5nW10gbmV3QW1wbXMpIHsKKyAgICAgICAgYW1wbXMgPSBkdXBsaWNhdGUobmV3QW1wbXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXVtdIGdldFpvbmVTdHJpbmdzKCkgeworICAgICAgICBTdHJpbmdbXVtdIHN0cmluZ3MgPSB6b25lU3RyaW5nczsKKyAgICAgICAgaWYoc3RyaW5ncyA9PSBudWxsKXsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZGVmYXVsdCB6b25lIHN0cmluZ3MKKyAgICAgICAgICAgIFpvbmVJdGVtSW5mbyB6aWkgPSBnZXREZWZhdWx0Wm9uZUl0ZW1JbmZvKCk7CisgICAgICAgICAgICBzdHJpbmdzID0gemlpLnR6U3RyaW5nczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZHVwbGljYXRlKHN0cmluZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKiBAcGFyYW0gbmV3Wm9uZVN0cmluZ3MgdGhlIG5ldyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFpvbmVTdHJpbmdzKFN0cmluZ1tdW10gbmV3Wm9uZVN0cmluZ3MpIHsKKyAgICAgICAgem9uZVN0cmluZ3MgPSBkdXBsaWNhdGUobmV3Wm9uZVN0cmluZ3MpOworICAgICAgICAvLyBuZWVkIHRvIHVwZGF0ZSBsb2NhbCB6b25lIGl0ZW0gaW5mbworICAgICAgICBsb2NhbFpvbmVJdGVtSW5mbyA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGU6ICd1JywgJ3QnLCBldGMuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcobG9jYWxQYXR0ZXJuQ2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAndScsICd0JywgZXRjLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbFBhdHRlcm5DaGFycyB0aGUgbmV3IGxvY2FsaXplZCBkYXRlLXRpbWUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoU3RyaW5nIG5ld0xvY2FsUGF0dGVybkNoYXJzKSB7CisgICAgICAgIGxvY2FsUGF0dGVybkNoYXJzID0gbmV3TG9jYWxQYXR0ZXJuQ2hhcnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIG90aGVyID0gKERhdGVGb3JtYXRTeW1ib2xzKXN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICBjb3B5TWVtYmVycyh0aGlzLCBvdGhlcik7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgaGFzaENvZGUuCisgICAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGUgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCBoYXNoY29kZSA9IDA7CisgICAgICAgIGhhc2hjb2RlIF49IHJlcXVlc3RlZExvY2FsZS50b1N0cmluZygpLmhhc2hDb2RlKCk7CisgICAgICAgIFN0cmluZ1tdW10gdHpTdHJpbmdzID0gem9uZVN0cmluZ3M7CisgICAgICAgIGlmICh0elN0cmluZ3MgPT0gbnVsbCl7CisgICAgICAgICAgICBab25lSXRlbUluZm8gemlpID0gZ2V0RGVmYXVsdFpvbmVJdGVtSW5mbygpOworICAgICAgICAgICAgdHpTdHJpbmdzID0gemlpLnR6U3RyaW5nczsKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdHpTdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIAlmb3IgKGludCBqID0gMDsgaiA8IHR6U3RyaW5nc1tpXS5sZW5ndGg7IGorKykgeworICAgICAgICAJCWlmICh0elN0cmluZ3NbaV1bal0gIT0gbnVsbCkgeworICAgICAgICAgICAgCQloYXNoY29kZSBePSB0elN0cmluZ3NbaV1bal0uaGFzaENvZGUoKTsKKyAgICAgICAgCQl9CisgICAgICAgIAl9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhc2hjb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGVxdWFscworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgdGhhdCA9IChEYXRlRm9ybWF0U3ltYm9scykgb2JqOworICAgICAgICByZXR1cm4gKFV0aWxpdHkuYXJyYXlFcXVhbHMoZXJhcywgdGhhdC5lcmFzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoZXJhTmFtZXMsIHRoYXQuZXJhTmFtZXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhtb250aHMsIHRoYXQubW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc2hvcnRNb250aHMsIHRoYXQuc2hvcnRNb250aHMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhuYXJyb3dNb250aHMsIHRoYXQubmFycm93TW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc3RhbmRhbG9uZU1vbnRocywgdGhhdC5zdGFuZGFsb25lTW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc3RhbmRhbG9uZVNob3J0TW9udGhzLCB0aGF0LnN0YW5kYWxvbmVTaG9ydE1vbnRocykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHN0YW5kYWxvbmVOYXJyb3dNb250aHMsIHRoYXQuc3RhbmRhbG9uZU5hcnJvd01vbnRocykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHdlZWtkYXlzLCB0aGF0LndlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc2hvcnRXZWVrZGF5cywgdGhhdC5zaG9ydFdlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMobmFycm93V2Vla2RheXMsIHRoYXQubmFycm93V2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzdGFuZGFsb25lV2Vla2RheXMsIHRoYXQuc3RhbmRhbG9uZVdlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc3RhbmRhbG9uZVNob3J0V2Vla2RheXMsIHRoYXQuc3RhbmRhbG9uZVNob3J0V2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzdGFuZGFsb25lTmFycm93V2Vla2RheXMsIHRoYXQuc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoYW1wbXMsIHRoYXQuYW1wbXMpCisgICAgICAgICAgICAgICAgJiYgYXJyYXlPZkFycmF5RXF1YWxzKHpvbmVTdHJpbmdzLCB0aGF0LnpvbmVTdHJpbmdzKQorICAgICAgICAgICAgICAgIC8vIGdldERpcGxheU5hbWUgbWFwcyBkZXByZWNhdGVkIGNvdW50cnkgYW5kIGxhbmd1YWdlIGNvZGVzIHRvIHRoZSBjdXJyZW50IG9uZXMKKyAgICAgICAgICAgICAgICAvLyB0b28gYmFkIHRoZXJlIGlzIG5vIHdheSB0byBnZXQgdGhlIGN1cnJlbnQgY29kZXMhCisgICAgICAgICAgICAgICAgLy8gSSB0aG91Z2h0IGNhbm9saWNhbGl6ZSgpIHdvdWxkIG1hcCB0aGUgY29kZXMgYnV0IC4uIGFsYXMhIGl0IGRvZXNuJ3QuCisgICAgICAgICAgICAgICAgJiYgcmVxdWVzdGVkTG9jYWxlLmdldERpc3BsYXlOYW1lKCkuZXF1YWxzKHRoYXQucmVxdWVzdGVkTG9jYWxlLmdldERpc3BsYXlOYW1lKCkpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhsb2NhbFBhdHRlcm5DaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQubG9jYWxQYXR0ZXJuQ2hhcnMpKTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PXByaXZhdGVzPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBkZWZpbmluZyB0aW1lem9uZSBvZmZzZXRzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDYwKjYwKjEwMDA7CisgICAgLyoqCisgICAgICogCisgICAgICogQHBhcmFtIGRlc2lyZWRMb2NhbGUKKyAgICAgKiBAcGFyYW0gdHlwZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVEYXRhKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgU3RyaW5nIHR5cGUpCisgICAgeworICAgICAgICBDYWxlbmRhckRhdGEgY2FsRGF0YSA9IG5ldyBDYWxlbmRhckRhdGEoZGVzaXJlZExvY2FsZSwgdHlwZSk7CisgICAgICAgIGluaXRpYWxpemVEYXRhKGRlc2lyZWRMb2NhbGUsIGNhbERhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIAorICAgICAqIEBwYXJhbSBkZXNpcmVkTG9jYWxlCisgICAgICogQHBhcmFtIGNhbERhdGEKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplRGF0YShVTG9jYWxlIGRlc2lyZWRMb2NhbGUsIENhbGVuZGFyRGF0YSBjYWxEYXRhKQorICAgIHsKKworICAgICAgICAvLyBGSVhNRTogY2FjaGUgb25seSBSZXNvdXJjZUJ1bmRsZS4gSGVuY2UgZXZlcnkgdGltZSwgd2lsbCBkbworICAgICAgICAvLyBnZXRPYmplY3QoKS4gVGhpcyB3b24ndCBiZSBuZWNlc3NhcnkgaWYgdGhlIFJlc291cmNlIGl0c2VsZgorICAgICAgICAvLyBpcyBjYWNoZWQuCisgICAgICAgIGVyYXMgPSBjYWxEYXRhLmdldEVyYXMoImFiYnJldmlhdGVkIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgZXJhTmFtZXMgPSBjYWxEYXRhLmdldEVyYXMoIndpZGUiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgZXJhTmFtZXMgPSBjYWxEYXRhLmdldEVyYXMoImFiYnJldmlhdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5PVEU6IHNpbmNlIHRoZSBhYm92ZSBjb2RlIGFzc3VtZXMgdGhhdCBhYmJyZXZpYXRlZAorICAgICAgICAvLyBlcmEgbmFtZXMgZXhpc3QsIHdlIG1ha2UgdGhlIHNhbWUgYXNzdW1wdGlvbiBoZXJlIHRvby4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5hcnJvd0VyYXMgPSBjYWxEYXRhLmdldEVyYXMoIm5hcnJvdyIpOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbmFycm93RXJhcyA9IGNhbERhdGEuZ2V0RXJhcygiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAid2lkZSIpOworICAgICAgICBzaG9ydE1vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICBuYXJyb3dNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgIm5hcnJvdyIpOworICAgICAgICB9IAorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJzdGFuZC1hbG9uZSIsICJuYXJyb3ciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgIG5hcnJvd01vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgInN0YW5kLWFsb25lIiwgIndpZGUiKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgImZvcm1hdCIsICJ3aWRlIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgInN0YW5kLWFsb25lIiwgImFiYnJldmlhdGVkIik7CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgImZvcm1hdCIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgc3RhbmRhbG9uZU5hcnJvd01vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICBzdGFuZGFsb25lTmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJmb3JtYXQiLCAibmFycm93Iik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICBzdGFuZGFsb25lTmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJmb3JtYXQiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nW10gbFdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAid2lkZSIpOworICAgICAgICB3ZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIHdlZWtkYXlzWzBdID0gIiI7ICAvLyAxLWJhc2VkCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobFdlZWtkYXlzLCAwLCB3ZWVrZGF5cywgMSwgbFdlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nW10gc1dlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgc2hvcnRXZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIHNob3J0V2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzV2Vla2RheXMsIDAsIHNob3J0V2Vla2RheXMsIDEsIHNXZWVrZGF5cy5sZW5ndGgpOworCisgICAgICAgIFN0cmluZyBbXSBuV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBuV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJuYXJyb3ciKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBuYXJyb3dXZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIG5hcnJvd1dlZWtkYXlzWzBdID0gIiI7ICAvLyAxLWJhc2VkCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobldlZWtkYXlzLCAwLCBuYXJyb3dXZWVrZGF5cywgMSwgbldlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nIFtdIHNhV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBzYVdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAid2lkZSIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzYVdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgIndpZGUiKTsKKyAgICAgICAgfQorICAgICAgICBzdGFuZGFsb25lV2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lV2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzYVdlZWtkYXlzLCAwLCBzdGFuZGFsb25lV2Vla2RheXMsIDEsIHNhV2Vla2RheXMubGVuZ3RoKTsKKworICAgICAgICBTdHJpbmcgW10gc3NXZWVrZGF5cyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHNzV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJzdGFuZC1hbG9uZSIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzc1dlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgImFiYnJldmlhdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgc3RhbmRhbG9uZVNob3J0V2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lU2hvcnRXZWVrZGF5c1swXSA9ICIiOyAgLy8gMS1iYXNlZAorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNzV2Vla2RheXMsIDAsIHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzLCAxLCBzc1dlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nIFtdIHNuV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBzbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHNuV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJmb3JtYXQiLCAibmFycm93Iik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICBzbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgImFiYnJldmlhdGVkIik7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzdGFuZGFsb25lTmFycm93V2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lTmFycm93V2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzbldlZWtkYXlzLCAwLCBzdGFuZGFsb25lTmFycm93V2Vla2RheXMsIDEsIHNuV2Vla2RheXMubGVuZ3RoKTsKKworICAgICAgICBhbXBtcyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIkFtUG1NYXJrZXJzIik7CisgICAgICAgIAorICAgICAgICBxdWFydGVycyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoInF1YXJ0ZXJzIiwgIndpZGUiKTsKKyAgICAgICAgc2hvcnRRdWFydGVycyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoInF1YXJ0ZXJzIiwgImFiYnJldmlhdGVkIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgc3RhbmRhbG9uZVF1YXJ0ZXJzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgicXVhcnRlcnMiLCAic3RhbmQtYWxvbmUiLCAid2lkZSIpOworICAgICAgICB9IAorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgc3RhbmRhbG9uZVF1YXJ0ZXJzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgicXVhcnRlcnMiLCAiZm9ybWF0IiwgIndpZGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgicXVhcnRlcnMiLCAic3RhbmQtYWxvbmUiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRRdWFydGVycyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoInF1YXJ0ZXJzIiwgImZvcm1hdCIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisgICAgICAgIAorLyogIFRIRSBGT0xMT1dJTkcgRE9FU04nVCBXT1JLOyBBIENPVU5UUlkgTE9DQUxFIFdJVEggT05FIFpPTkUgQkxPQ0tTIFRIRSBMQU5HVUFHRSBMT0NBTEUKKyAgICAgICAgLy8gVGhlc2UgcmVhbGx5IGRvIHVzZSByYiBhbmQgbm90IGNhbERhdGEKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGRlc2lyZWRMb2NhbGUpOworICAgICAgICAvLyBoYWNrIGFyb3VuZCBjbGFzcyBjYXN0IHByb2JsZW0KKyAgICAgICAgLy8gem9uZVN0cmluZ3MgPSAoU3RyaW5nW11bXSlyYi5nZXRPYmplY3QoInpvbmVTdHJpbmdzIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHpvbmVPYmplY3QgPSByYi5nZXQoInpvbmVTdHJpbmdzIik7CisgICAgICAgIHpvbmVTdHJpbmdzID0gbmV3IFN0cmluZ1t6b25lT2JqZWN0LmdldFNpemUoKV1bXTsKKyAgICAgICAgZm9yKGludCBpID0wOyBpPCB6b25lT2JqZWN0LmdldFNpemUoKTsgaSsrKXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHpvbmVBcnIgPSB6b25lT2JqZWN0LmdldChpKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHN0cmluZ3MgPSBuZXcgU3RyaW5nW3pvbmVBcnIuZ2V0U2l6ZSgpXTsKKyAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHpvbmVBcnIuZ2V0U2l6ZSgpOyBqKyspeworICAgICAgICAgICAgICAgIHN0cmluZ3Nbal09em9uZUFyci5nZXQoaikuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB6b25lU3RyaW5nc1tpXSA9IHN0cmluZ3M7CisgICAgICAgIH0KKyovICAgICAgICAKKyAgICAgICAgcmVxdWVzdGVkTG9jYWxlID0gZGVzaXJlZExvY2FsZTsKKyAgICAgCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBkZXNpcmVkTG9jYWxlKTsKKyAgICAgICAgbG9jYWxQYXR0ZXJuQ2hhcnMgPSByYi5nZXRTdHJpbmcoImxvY2FsUGF0dGVybkNoYXJzIik7CisKKyAgICAgICAgLy8gVE9ETzogb2J0YWluIGNvcnJlY3QgYWN0dWFsL3ZhbGlkIGxvY2FsZSBsYXRlcgorICAgICAgICBVTG9jYWxlIHVsb2MgPSByYi5nZXRVTG9jYWxlKCk7CisgICAgICAgIHNldExvY2FsZSh1bG9jLCB1bG9jKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGFycmF5T2ZBcnJheUVxdWFscyhPYmplY3RbXVtdIGFhMSwgT2JqZWN0W11bXWFhMikgeworICAgICAgICBpZiAoYWExID09IGFhMikgeyAvLyBib3RoIGFyZSBudWxsCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYWExID09IG51bGwgfHwgYWEyID09IG51bGwpIHsgLy8gb25lIGlzIG51bGwgYW5kIHRoZSBvdGhlciBpcyBub3QKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYWExLmxlbmd0aCAhPSBhYTIubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBlcXVhbCA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYWExLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBlcXVhbCA9IFV0aWxpdHkuYXJyYXlFcXVhbHMoYWExW2ldLCBhYTJbaV0pOworICAgICAgICAgICAgaWYgKCFlcXVhbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBlcXVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGU6IHVzZWQgYnkgU2ltcGxlRGF0ZUZvcm1hdC4KKyAgICAgKiBHZXRzIHRoZSBzdHJpbmcgZm9yIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSB6aWQgVGhlIHRpbWUgem9uZSBJRAorICAgICAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHpvbmUgc3RyaW5nCisgICAgICogQHJldHVybiBUaGUgem9uZSBzdHJpbmcsIG9yIG51bGwgaWYgbm90IGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBTdHJpbmcgZ2V0Wm9uZVN0cmluZyhTdHJpbmcgemlkLCBpbnQgdHlwZSkgeworICAgICAgICAvLyBUcnkgbG9jYWwgem9uZSBpdGVtIGluZm8gZmlyc3QKKyAgICAgICAgU3RyaW5nIHpvbmVTdHJpbmcgPSBnZXRab25lU3RyaW5nKGdldExvY2FsWm9uZUl0ZW1JbmZvKCksIHppZCwgdHlwZSk7CisgICAgICAgIGlmICh6b25lU3RyaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IGluZm8KKyAgICAgICAgICAgIHpvbmVTdHJpbmcgPSBnZXRab25lU3RyaW5nKGdldERlZmF1bHRab25lSXRlbUluZm8oKSwgemlkLCB0eXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gem9uZVN0cmluZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB6b25lIHN0cmluZyBmcm9tIHRoZSBzcGVjaWZpZWQgem9uZSBpdGVtIGluZm8KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRab25lU3RyaW5nKFpvbmVJdGVtSW5mbyB6aW5mbywgU3RyaW5nIHppZCwgaW50IHR5cGUpIHsKKyAgICAgICAgaWYgKHppbmZvID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gKFN0cmluZ1tdKXppbmZvLnR6aWRNYXAuZ2V0KHppZCk7CisgICAgICAgIGlmIChuYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBnZXQgbmFtZSBmb3IgdGhlIHR5cGUKKyAgICAgICAgICAgIGludCBpbmRleCA9IC0xOworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0xPTkdfU1RBTkRBUkQ6CisgICAgICAgICAgICAgICAgaW5kZXggPSAxOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9TSE9SVF9TVEFOREFSRDoKKyAgICAgICAgICAgICAgICBpbmRleCA9IDI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0xPTkdfREFZTElHSFQ6CisgICAgICAgICAgICAgICAgaW5kZXggPSAzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9TSE9SVF9EQVlMSUdIVDoKKyAgICAgICAgICAgICAgICBpbmRleCA9IDQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0VYRU1QTEFSX0NJVFk6CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSA2IHx8IG5hbWVzLmxlbmd0aCA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gNTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0xPTkdfR0VORVJJQzoKKyAgICAgICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSA2OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gNTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX1NIT1JUX0dFTkVSSUM6CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gNzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGluZGV4IDwgbmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVzW2luZGV4XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBjbGFzcyBab25lSXRlbXsKKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICBpbnQgdHlwZTsKKyAgICAgICAgU3RyaW5nIHppZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGU6IHVzZWQgYnkgU2ltcGxlRGF0ZWZvcm1hdAorICAgICAqIEdldHMgdGhlIFpvbmVJdGVtIGluc3RhbmNlIHdoaWNoIGhhcyB6b25lIHN0cmluZ3MKKyAgICAgKiB3aGljaCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB3aGljaCBjb250YWlucyBhIHpvbmUgc3RyaW5nCisgICAgICogQHBhcmFtIHN0YXJ0IFRoZSBzdGFydCBwb3NpdGlvbiBvZiB6b25lIHN0cmluZyBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gQSBab25JdGVtIGluc3RhbmNlIGZvciB0aGUgbG9uZ2VzdCBtYXRjaGluZyB6b25lCisgICAgICogc3RyaW5nLgorICAgICAqLworICAgIFpvbmVJdGVtIGZpbmRab25lSURUeXBlVmFsdWUoU3RyaW5nIHRleHQsIGludCBzdGFydCl7CisgICAgICAgIFpvbmVJdGVtIGl0ZW0gPSBudWxsOworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoKCkgLSBzdGFydDsKKyAgICAgICAgaWYgKGxhc3Rab25lSXRlbSAhPSBudWxsICYmIHRleHRMZW5ndGggPT0gbGFzdFpvbmVJdGVtLnZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAodGV4dC5yZWdpb25NYXRjaGVzKHRydWUsIHN0YXJ0LCBsYXN0Wm9uZUl0ZW0udmFsdWUsIDAsIHRleHRMZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgaXRlbSA9IG5ldyBab25lSXRlbSgpOworICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9IGxhc3Rab25lSXRlbS50eXBlOworICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBsYXN0Wm9uZUl0ZW0udmFsdWU7CisgICAgICAgICAgICAgICAgaXRlbS56aWQgPSBsYXN0Wm9uZUl0ZW0uemlkOworICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgWm9uZUl0ZW1JbmZvIHppbmZvID0gZ2V0TG9jYWxab25lSXRlbUluZm8oKTsKKyAgICAgICAgaWYgKHppbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvb2sgdXAgdGhlIHpvbmUgc3RyaW5nIGluIGxvY2FsWm9uZUl0ZW1JbmZvIGZpcnN0CisgICAgICAgICAgICBpdGVtID0gKFpvbmVJdGVtKXppbmZvLnR6U3RyaW5nTWFwLmdldCh0ZXh0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBsb29rIHVwIHRoZSB6b25lIHN0cmluZyBpbiBkZWZhdWx0IFpvbmVJdGVtSW5mbyBmb3IgdGhlIGxvY2FsZQorICAgICAgICB6aW5mbyA9IGdldERlZmF1bHRab25lSXRlbUluZm8oKTsKKyAgICAgICAgWm9uZUl0ZW0gaXRlbUZvckxvY2FsZSA9IChab25lSXRlbSl6aW5mby50elN0cmluZ01hcC5nZXQodGV4dCwgc3RhcnQpOworICAgICAgICBpZiAoaXRlbUZvckxvY2FsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyB3ZSB3YW50IHRvIHVzZSBsb25nZXIgbWF0Y2gKKyAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwgfHwgaXRlbUZvckxvY2FsZS52YWx1ZS5sZW5ndGgoKSA+IGl0ZW0udmFsdWUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBpdGVtID0gaXRlbUZvckxvY2FsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpdGVtICE9IG51bGwgJiYgdGV4dExlbmd0aCA9PSBpdGVtLnZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAvLyBjbG9uZSB0aGUgbGFzdCBtYXRjaCBmb3IgbmV4dCB0aW1lCisgICAgICAgICAgICAvLyBvbmx5IHdoZW4gdGhlIHN1YnN0cmluZyBjb21wbGV0ZWx5IG1hdGNoZXMKKyAgICAgICAgICAgIC8vIHdpdGggdGhlIHZhbHVlIHJlc29sdmVkCisgICAgICAgICAgICBsYXN0Wm9uZUl0ZW0gPSBuZXcgWm9uZUl0ZW0oKTsKKyAgICAgICAgICAgIGxhc3Rab25lSXRlbS50eXBlID0gaXRlbS50eXBlOworICAgICAgICAgICAgbGFzdFpvbmVJdGVtLnZhbHVlID0gaXRlbS52YWx1ZTsKKyAgICAgICAgICAgIGxhc3Rab25lSXRlbS56aWQgPSBpdGVtLnppZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIGhvbGRzIHpvbmUgc3RyaW5ncyBhbmQgc2VhcmNoYWJsZSBpbmRpY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGNsYXNzIFpvbmVJdGVtSW5mbyB7CisgICAgICAgIFN0cmluZ1tdW10gdHpTdHJpbmdzOworICAgICAgICBIYXNoTWFwIHR6aWRNYXA7CisgICAgICAgIFRleHRUcmllTWFwIHR6U3RyaW5nTWFwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgY2FjaGUgZm9yIFpvbmVJdGVtSW5mbyBvYmplY3RzLCBzaGFyZWQgYnkgY2xhc3MgaW5zdGFuY2VzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNvZnRDYWNoZSB6b25lSXRlbUluZm9DYWNoZSA9IG5ldyBTb2Z0Q2FjaGUoKTsKKworICAgIC8qKgorICAgICAqIEEgWm9uZUl0ZW1JbmZvIGluc3RhbmNlIHdoaWNoIGhvbGRzIGN1c3RvbSB0aW1lem9uZSBzdHJpbmdzCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgWm9uZUl0ZW1JbmZvIGxvY2FsWm9uZUl0ZW1JbmZvOworCisgICAgLyoqCisgICAgICogU2luZ2xlIGVudHJ5IGNhY2hlIGZvciBmaW5kWm9uZVR5cGVWYWx1ZSgpCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgWm9uZUl0ZW0gbGFzdFpvbmVJdGVtOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgWm9uZUl0ZW1JbmZvIGluc3RhbmNlIGZvciB0aGUgbG9jYWxlIHVzZWQgYnkgdGhpcyBvYmplY3QuCisgICAgICogSWYgaXQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBuZXcgb25lIGFuZCByZWdpc3RlciBpbiB0aGUgc3RhdGljIGNhY2hlLgorICAgICAqLworICAgIHByaXZhdGUgWm9uZUl0ZW1JbmZvIGdldERlZmF1bHRab25lSXRlbUluZm8oKSB7CisgICAgICAgIFpvbmVJdGVtSW5mbyB6aWkgPSAoWm9uZUl0ZW1JbmZvKXpvbmVJdGVtSW5mb0NhY2hlLmdldChyZXF1ZXN0ZWRMb2NhbGUpOworICAgICAgICBpZiAoemlpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiB6aWk7CisgICAgICAgIH0KKyAgICAgICAgemlpID0gZ2V0Wm9uZUl0ZW1JbmZvKGdldERlZmF1bHRab25lU3RyaW5ncyhyZXF1ZXN0ZWRMb2NhbGUpKTsKKyAgICAgICAgLy8gQWRkIGZhbGxiYWNrIGRpc3BsYXkgbmFtZXMKKyAgICAgICAgU3RyaW5nW10gem9uZUlEcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHpvbmVJRHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIE9iamVjdCBvID0gemlpLnR6aWRNYXAuZ2V0KHpvbmVJRHNbaV0pOworICAgICAgICAgICAgaWYgKG8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIEFscmVhZHkgaGFzIG5hbWVzCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBab25lTWV0YS5kaXNwbGF5RmFsbGJhY2soem9uZUlEc1tpXSwgbnVsbCwgcmVxdWVzdGVkTG9jYWxlKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgICAgICAgICAgc3RyaW5nc1s1XSA9IHZhbHVlOworICAgICAgICAgICAgICAgIHppaS50emlkTWFwLnB1dCh6b25lSURzW2ldLCBzdHJpbmdzKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBab25lSXRlbSBpdGVtID0gbmV3IFpvbmVJdGVtKCk7CisgICAgICAgICAgICAgICAgaXRlbS56aWQgPSB6b25lSURzW2ldOworICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPSBUSU1FWk9ORV9FWEVNUExBUl9DSVRZOworICAgICAgICAgICAgICAgIHppaS50elN0cmluZ01hcC5wdXQoaXRlbS52YWx1ZSwgaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgem9uZUl0ZW1JbmZvQ2FjaGUucHV0KHJlcXVlc3RlZExvY2FsZSwgemlpKTsKKyAgICAgICAgcmV0dXJuIHppaTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBhcnJheSBvZiB6b25lIHN0cmluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gZ2V0RGVmYXVsdFpvbmVTdHJpbmdzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIEFycmF5TGlzdCB0bXBMaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBIYXNoU2V0IHRtcFNldCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGZvciAoVUxvY2FsZSB0ZW1wTG9jYWxlID0gbG9jYWxlOyB0ZW1wTG9jYWxlICE9IG51bGw7IHRlbXBMb2NhbGUgPSB0ZW1wTG9jYWxlLmdldEZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgdGVtcExvY2FsZSk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB6b25lU3RyaW5nc0J1bmRsZSA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soInpvbmVTdHJpbmdzIik7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgem9uZVN0cmluZ3NCdW5kbGUuZ2V0U2l6ZSgpOyBpKyspeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHpvbmVUYWJsZSA9IHpvbmVTdHJpbmdzQnVuZGxlLmdldChpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gVXRpbGl0eS5yZXBsYWNlQWxsKHpvbmVUYWJsZS5nZXRLZXkoKSwgIjoiLCAiLyIpOworICAgICAgICAgICAgICAgIC8vIGhhY2sgZm9yIHRoZSByb290IHpvbmUgc3RyaW5ncworICAgICAgICAgICAgICAgIGlmKGtleS5sZW5ndGgoKSA9PSAwfHwgem9uZVRhYmxlLmdldFR5cGUoKSAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSl7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodG1wU2V0LmNvbnRhaW5zKGtleSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gb25seSBhZGQgaWYgd2UgZG9uJ3QgaGF2ZSBhbHJlYWR5CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBzdHJpbmdzID0gbmV3IFN0cmluZ1s4XTsKKyAgICAgICAgICAgICAgICBzdHJpbmdzWzBdID0ga2V5OworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbMV0gPSB6b25lVGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKExPTkdfU1RBTkRBUkQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1syXSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soU0hPUlRfU1RBTkRBUkQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1szXSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soTE9OR19EQVlMSUdIVCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IGF3YXkgdGhlIGV4Y2VwdGlvbiAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzdHJpbmdzWzRdID0gem9uZVRhYmxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhTSE9SVF9EQVlMSUdIVCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vICB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjaXR5ID0gem9uZVRhYmxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhFWEVNUExBUl9DSVRZKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1s1XSA9IFpvbmVNZXRhLmRpc3BsYXlGYWxsYmFjayhrZXksIGNpdHksIHRlbXBMb2NhbGUpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1s2XSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soTE9OR19HRU5FUklDKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1s3XSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soU0hPUlRfR0VORVJJQyk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IGF3YXkgdGhlIGV4Y2VwdGlvbiAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0bXBMaXN0LmFkZChzdHJpbmdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXVtdIGFycmF5ID0gbmV3IFN0cmluZ1t0bXBMaXN0LnNpemUoKV1bOF07CisgICAgICAgIHRtcExpc3QudG9BcnJheShhcnJheSk7CisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBhcnJheSBvZiB6b25lIHN0cmluZ3MgZm9yIHRoZSBjdXN0b20gem9uZSBzdHJpbmdzCisgICAgICovCisgICAgcHJpdmF0ZSBab25lSXRlbUluZm8gZ2V0TG9jYWxab25lSXRlbUluZm8oKSB7CisgICAgICAgIGlmIChsb2NhbFpvbmVJdGVtSW5mbyA9PSBudWxsICYmIHpvbmVTdHJpbmdzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsWm9uZUl0ZW1JbmZvID0gZ2V0Wm9uZUl0ZW1JbmZvKHpvbmVTdHJpbmdzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbG9jYWxab25lSXRlbUluZm87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBab25lSXRlbUluZm8gaW5zdGFuY2UgZnJvbSB0aGUgYXJyYXkgb2YgdGltZSB6b25lCisgICAgICogc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFpvbmVJdGVtSW5mbyBnZXRab25lSXRlbUluZm8oU3RyaW5nW11bXSBzdHJpbmdzKSB7CisgICAgICAgIFpvbmVJdGVtSW5mbyB6aWkgPSBuZXcgWm9uZUl0ZW1JbmZvKCk7CisgICAgICAgIHppaS50elN0cmluZ3MgPSBzdHJpbmdzOworICAgICAgICB6aWkudHppZE1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHppaS50elN0cmluZ01hcCA9IG5ldyBUZXh0VHJpZU1hcCh0cnVlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgemlkID0gc3RyaW5nc1tpXVswXTsKKyAgICAgICAgICAgIGlmICh6aWQgIT0gbnVsbCAmJiB6aWQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgemlpLnR6aWRNYXAucHV0KHppZCwgc3RyaW5nc1tpXSk7CisgICAgICAgICAgICAgICAgaW50IG5hbWVDb3VudCA9IHN0cmluZ3NbaV0ubGVuZ3RoIDwgOCA/IHN0cmluZ3NbaV0ubGVuZ3RoIDogODsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IG5hbWVDb3VudDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmdzW2ldW2pdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcCB6b25lU3RyaW5ncyBhcnJheSBpbmRleCB0byB0aW1lem9uZSBuYW1lIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0eXBlID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfTE9OR19TVEFOREFSRDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfU0hPUlRfU1RBTkRBUkQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX0xPTkdfREFZTElHSFQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX1NIT1JUX0RBWUxJR0hUOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lQ291bnQgPT0gNiB8fCBuYW1lQ291bnQgPT0gOCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfRVhFTVBMQVJfQ0lUWTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfTE9OR19HRU5FUklDOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZUNvdW50ID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX0xPTkdfR0VORVJJQzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfU0hPUlRfR0VORVJJQzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX1NIT1JUX0dFTkVSSUM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5ldmVyIG9jY3VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBab25lSXRlbSBpdGVtID0gbmV3IFpvbmVJdGVtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnppZCA9IHppZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBzdHJpbmdzW2ldW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHppaS50elN0cmluZ01hcC5wdXQoc3RyaW5nc1tpXVtqXSwgaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHppaTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBzYXZlIHRoZSBpbnB1dCBsb2NhbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgcmVxdWVzdGVkTG9jYWxlOyAKKyAKKyAgICAvKioKKyAgICAgKiBUaGUgdHJhbnNsYXRpb24gdHlwZSBvZiB0aGUgdHJhbnNsYXRlZCB6b25lIHN0cmluZ3MKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgICBTSE9SVF9HRU5FUklDICA9ICJzZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIT1JUX1NUQU5EQVJEID0gInNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hPUlRfREFZTElHSFQgPSAic2QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT05HX0dFTkVSSUMgICA9ICJsZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPTkdfU1RBTkRBUkQgID0gImxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9OR19EQVlMSUdIVCAgPSAibGQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWEVNUExBUl9DSVRZICA9ICJlYyI7CisgICAgLyoqCisgICAgICogVGhlIHRyYW5zbGF0aW9uIHR5cGUgb2YgdGhlIHRyYW5zbGF0ZWQgem9uZSBzdHJpbmdzCisgICAgICogQGludGVybmFsIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICAgc3RhdGljIGZpbmFsIGludCAgIFRJTUVaT05FX1NIT1JUX0dFTkVSSUMgID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX1NIT1JUX1NUQU5EQVJEID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX1NIT1JUX0RBWUxJR0hUID0gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0xPTkdfR0VORVJJQyAgID0gMywKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0xPTkdfU1RBTkRBUkQgID0gNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0xPTkdfREFZTElHSFQgID0gNSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0VYRU1QTEFSX0NJVFkgID0gNiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0NPVU5UICAgICAgICAgID0gNzsKKworICAgICAvKgorICAgICAqIFBhY2thZ2UgcHJpdmF0ZTogdXNlZCBieSBTaW1wbGVEYXRlRm9ybWF0CisgICAgICogR2V0cyB0aGUgaW5kZXggZm9yIHRoZSBnaXZlbiB0aW1lIHpvbmUgSUQgdG8gb2J0YWluIHRoZSB0aW1lem9uZQorICAgICAqIHN0cmluZ3MgZm9yIGZvcm1hdHRpbmcuIFRoZSB0aW1lIHpvbmUgSUQgaXMganVzdCBmb3IgcHJvZ3JhbW1hdGljCisgICAgICogbG9va3VwLiBOT1QgTE9DQUxJWkVEISEhCisgICAgICogQHBhcmFtIElEIHRoZSBnaXZlbiB0aW1lIHpvbmUgSUQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGdpdmVuIHRpbWUgem9uZSBJRC4gIFJldHVybnMgLTEgaWYKKyAgICAgKiB0aGUgZ2l2ZW4gdGltZSB6b25lIElEIGNhbid0IGJlIGxvY2F0ZWQgaW4gdGhlIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUKKyAgICAgKi8KKy8qICAgIGZpbmFsIGludCBnZXRab25lSW5kZXgoU3RyaW5nIElEKSB7CisgICAgICAgIGludCByZXN1bHQgPSBfZ2V0Wm9uZUluZGV4KElEKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIERvIGEgc2VhcmNoIHRocm91Z2ggdGhlIGVxdWl2YWxlbmN5IGdyb3VwIGZvciB0aGUgZ2l2ZW4gSUQKKyAgICAgICAgaW50IG4gPSBab25lTWV0YS5jb3VudEVxdWl2YWxlbnRJRHMoSUQpOworICAgICAgICBpZiAobiA+IDEpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXF1aXZJRCA9IFpvbmVNZXRhLmdldEVxdWl2YWxlbnRJRChJRCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVpdklELmVxdWFscyhJRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVxdWl2UmVzdWx0ID0gX2dldFpvbmVJbmRleChlcXVpdklEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVxdWl2UmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcXVpdlJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfSovCisgICAgCisgICAgLyoKKyAgICAgKiBMb29rdXAgdGhlIGdpdmVuIElELiAgRG8gTk9UIGRvIGFuIGVxdWl2YWxlbmN5IHNlYXJjaC4KKyAgICAgKi8KKy8qICAgIHByaXZhdGUgaW50IF9nZXRab25lSW5kZXgoU3RyaW5nIElEKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaW5kZXg9MDsgaW5kZXg8em9uZVN0cmluZ3MubGVuZ3RoOyBpbmRleCsrKSB7CisgICAgICAgICAgICBpZiAoSUQuZXF1YWxzSWdub3JlQ2FzZSh6b25lU3RyaW5nc1tpbmRleF1bMF0pKSByZXR1cm4gaW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0qLworCisgICAgLyoqCisgICAgICogQ2xvbmVzIGFuIGFycmF5IG9mIFN0cmluZ3MuCisgICAgICogQHBhcmFtIHNyY0FycmF5IHRoZSBzb3VyY2UgYXJyYXkgdG8gYmUgY2xvbmVkLgorICAgICAqIEByZXR1cm4gYSBjbG9uZWQgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBkdXBsaWNhdGUoU3RyaW5nW10gc3JjQXJyYXkpCisgICAgeworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKXNyY0FycmF5LmNsb25lKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXVtdIGR1cGxpY2F0ZShTdHJpbmdbXVtdIHNyY0FycmF5KQorICAgIHsKKyAgICAgICAgU3RyaW5nW11bXSBhQ29weSA9IG5ldyBTdHJpbmdbc3JjQXJyYXkubGVuZ3RoXVtdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNyY0FycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgYUNvcHlbaV0gPSBkdXBsaWNhdGUoc3JjQXJyYXlbaV0pOworICAgICAgICByZXR1cm4gYUNvcHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvbmVzIGFsbCB0aGUgZGF0YSBtZW1iZXJzIGZyb20gdGhlIHNvdXJjZSBEYXRlRm9ybWF0U3ltYm9scyB0bworICAgICAqIHRoZSB0YXJnZXQgRGF0ZUZvcm1hdFN5bWJvbHMuIFRoaXMgaXMgb25seSBmb3Igc3ViY2xhc3Nlcy4KKyAgICAgKiBAcGFyYW0gc3JjIHRoZSBzb3VyY2UgRGF0ZUZvcm1hdFN5bWJvbHMuCisgICAgICogQHBhcmFtIGRzdCB0aGUgdGFyZ2V0IERhdGVGb3JtYXRTeW1ib2xzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjb3B5TWVtYmVycyhEYXRlRm9ybWF0U3ltYm9scyBzcmMsIERhdGVGb3JtYXRTeW1ib2xzIGRzdCkKKyAgICB7CisgICAgICAgIGRzdC5lcmFzID0gZHVwbGljYXRlKHNyYy5lcmFzKTsKKyAgICAgICAgZHN0LmVyYU5hbWVzID0gZHVwbGljYXRlKHNyYy5lcmFOYW1lcyk7CisgICAgICAgIGRzdC5tb250aHMgPSBkdXBsaWNhdGUoc3JjLm1vbnRocyk7CisgICAgICAgIGRzdC5zaG9ydE1vbnRocyA9IGR1cGxpY2F0ZShzcmMuc2hvcnRNb250aHMpOworICAgICAgICBkc3QubmFycm93TW9udGhzID0gZHVwbGljYXRlKHNyYy5uYXJyb3dNb250aHMpOworICAgICAgICBkc3Quc3RhbmRhbG9uZU1vbnRocyA9IGR1cGxpY2F0ZShzcmMuc3RhbmRhbG9uZU1vbnRocyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lU2hvcnRNb250aHMgPSBkdXBsaWNhdGUoc3JjLnN0YW5kYWxvbmVTaG9ydE1vbnRocyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lTmFycm93TW9udGhzID0gZHVwbGljYXRlKHNyYy5zdGFuZGFsb25lTmFycm93TW9udGhzKTsKKyAgICAgICAgZHN0LndlZWtkYXlzID0gZHVwbGljYXRlKHNyYy53ZWVrZGF5cyk7CisgICAgICAgIGRzdC5zaG9ydFdlZWtkYXlzID0gZHVwbGljYXRlKHNyYy5zaG9ydFdlZWtkYXlzKTsKKyAgICAgICAgZHN0Lm5hcnJvd1dlZWtkYXlzID0gZHVwbGljYXRlKHNyYy5uYXJyb3dXZWVrZGF5cyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lV2Vla2RheXMgPSBkdXBsaWNhdGUoc3JjLnN0YW5kYWxvbmVXZWVrZGF5cyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lU2hvcnRXZWVrZGF5cyA9IGR1cGxpY2F0ZShzcmMuc3RhbmRhbG9uZVNob3J0V2Vla2RheXMpOworICAgICAgICBkc3Quc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzID0gZHVwbGljYXRlKHNyYy5zdGFuZGFsb25lTmFycm93V2Vla2RheXMpOworICAgICAgICBkc3QuYW1wbXMgPSBkdXBsaWNhdGUoc3JjLmFtcG1zKTsKKyAgICAgICAgaWYgKHNyYy56b25lU3RyaW5ncyAhPSBudWxsKSB7CisgICAgICAgICAgICBkc3Quem9uZVN0cmluZ3MgPSBkdXBsaWNhdGUoc3JjLnpvbmVTdHJpbmdzKTsKKyAgICAgICAgfQorICAgICAgICBkc3QucmVxdWVzdGVkTG9jYWxlID0gbmV3IFVMb2NhbGUoc3JjLnJlcXVlc3RlZExvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgZHN0LmxvY2FsUGF0dGVybkNoYXJzID0gbmV3IFN0cmluZyAoc3JjLmxvY2FsUGF0dGVybkNoYXJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdGhlIHR3byBhcnJheXMgb2YgU3RyaW5nLgorICAgICAqIEBwYXJhbSBjdXJyZW50IHRoaXMgU3RyaW5nIGFycmF5LgorICAgICAqIEBwYXJhbSBvdGhlciB0aGF0IFN0cmluZyBhcnJheS4KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZXF1YWxzKFN0cmluZ1tdIGN1cnJlbnQsIFN0cmluZ1tdIG90aGVyKQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gY3VycmVudC5sZW5ndGg7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICAgICAgaWYgKCFjdXJyZW50W2ldLmVxdWFscyhvdGhlcltpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICovCisKKyAgICAvL35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworICAgIC8qKgorICAgICAqIEdldCB0aGUge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzfSBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgYQorICAgICAqIGNhbGVuZGFyIHN5c3RlbSdzIGRhdGVzIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBXaGVuIGNyZWF0aW5nIGEgbmV3IENhbGVuZGFyIHN1YmNsYXNzLCB5b3UgbXVzdCBjcmVhdGUgdGhlCisgICAgICoge0BsaW5rIFJlc291cmNlQnVuZGxlIFJlc291cmNlQnVuZGxlfQorICAgICAqIGNvbnRhaW5pbmcgaXRzIHtAbGluayBEYXRlRm9ybWF0U3ltYm9scyBEYXRlRm9ybWF0U3ltYm9sc30gaW4gYSBzcGVjaWZpYyBwbGFjZS4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICogPHA+CisgICAgICogV2l0aGluIHRoZSBSZXNvdXJjZUJ1bmRsZSwgdGhpcyBtZXRob2Qgc2VhcmNoZXMgZm9yIGZpdmUga2V5czoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkRheU5hbWVzPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBzdHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb3NzaWJsZQorICAgICAqICAgICAgdmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZC4gIEV2ZW4gdGhvdWdoCisgICAgICogICAgICA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gc3RhcnRzIHdpdGggPGNvZGU+U1VOREFZPC9jb2RlPiA9IDEsCisgICAgICogICAgICBUaGlzIGFycmF5IGlzIDAtYmFzZWQ7IHRoZSBuYW1lIGZvciBTdW5kYXkgZ29lcyBpbiB0aGUKKyAgICAgKiAgICAgIGZpcnN0IHBvc2l0aW9uLCBhdCBpbmRleCAwLiAgSWYgdGhpcyBrZXkgaXMgbm90IGZvdW5kCisgICAgICogICAgICBpbiB0aGUgYnVuZGxlLCB0aGUgZGF5IG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5EYXlBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIkRheU5hbWVzIiBhcnJheS4gIElmIHRoaXMga2V5CisgICAgICogICAgICBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwgdGhlICJEYXlOYW1lcyIKKyAgICAgKiAgICAgIHZhbHVlcyBhcmUgdXNlZCBpbnN0ZWFkLiAgSWYgbmVpdGhlciBrZXkgaXMgZm91bmQsCisgICAgICogICAgICB0aGUgZGF5IGFiYnJldmlhdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBkZWZhdWx0CisgICAgICogICAgICA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhOYW1lczwvYj4gLQorICAgICAqICAgICAgQW4gYXJyYXkgb2Ygc3RyaW5ncyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9zc2libGUKKyAgICAgKiAgICAgIHZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQuICBJZiB0aGlzIGtleSBpcyBub3QgZm91bmQKKyAgICAgKiAgICAgIGluIHRoZSBidW5kbGUsIHRoZSBtb250aCBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIk1vbnRoTmFtZXMiIGFycmF5LiAgSWYgdGhpcyBrZXkKKyAgICAgKiAgICAgIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLCB0aGUgIk1vbnRoTmFtZXMiCisgICAgICogICAgICB2YWx1ZXMgYXJlIHVzZWQgaW5zdGVhZC4gIElmIG5laXRoZXIga2V5IGlzIGZvdW5kLAorICAgICAqICAgICAgdGhlIGRheSBhYmJyZXZpYXRpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgZGVmYXVsdAorICAgICAqICAgICAgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgbG9jYWxlLgorICAgICAqCisgICAgICogPGxpPjxiPkVyYXM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIHN0cmluZ3MgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvc3NpYmxlCisgICAgICogICAgICB2YWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZC4gIElmIHRoaXMga2V5IGlzIG5vdCBmb3VuZAorICAgICAqICAgICAgaW4gdGhlIGJ1bmRsZSwgdGhlIGVyYSBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgICAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gd2hvc2UgZGF0ZSBmb3JtYXQgc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIFRoZSBsb2NhbGUgd2hvc2Ugc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGNhbC5nZXRUeXBlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzfSBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgYQorICAgICAqIGNhbGVuZGFyIHN5c3RlbSdzIGRhdGVzIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBXaGVuIGNyZWF0aW5nIGEgbmV3IENhbGVuZGFyIHN1YmNsYXNzLCB5b3UgbXVzdCBjcmVhdGUgdGhlCisgICAgICoge0BsaW5rIFJlc291cmNlQnVuZGxlIFJlc291cmNlQnVuZGxlfQorICAgICAqIGNvbnRhaW5pbmcgaXRzIHtAbGluayBEYXRlRm9ybWF0U3ltYm9scyBEYXRlRm9ybWF0U3ltYm9sc30gaW4gYSBzcGVjaWZpYyBwbGFjZS4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICogPHA+CisgICAgICogV2l0aGluIHRoZSBSZXNvdXJjZUJ1bmRsZSwgdGhpcyBtZXRob2Qgc2VhcmNoZXMgZm9yIGZpdmUga2V5czoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkRheU5hbWVzPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBzdHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb3NzaWJsZQorICAgICAqICAgICAgdmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZC4gIEV2ZW4gdGhvdWdoCisgICAgICogICAgICA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gc3RhcnRzIHdpdGggPGNvZGU+U1VOREFZPC9jb2RlPiA9IDEsCisgICAgICogICAgICBUaGlzIGFycmF5IGlzIDAtYmFzZWQ7IHRoZSBuYW1lIGZvciBTdW5kYXkgZ29lcyBpbiB0aGUKKyAgICAgKiAgICAgIGZpcnN0IHBvc2l0aW9uLCBhdCBpbmRleCAwLiAgSWYgdGhpcyBrZXkgaXMgbm90IGZvdW5kCisgICAgICogICAgICBpbiB0aGUgYnVuZGxlLCB0aGUgZGF5IG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5EYXlBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIkRheU5hbWVzIiBhcnJheS4gIElmIHRoaXMga2V5CisgICAgICogICAgICBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwgdGhlICJEYXlOYW1lcyIKKyAgICAgKiAgICAgIHZhbHVlcyBhcmUgdXNlZCBpbnN0ZWFkLiAgSWYgbmVpdGhlciBrZXkgaXMgZm91bmQsCisgICAgICogICAgICB0aGUgZGF5IGFiYnJldmlhdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBkZWZhdWx0CisgICAgICogICAgICA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhOYW1lczwvYj4gLQorICAgICAqICAgICAgQW4gYXJyYXkgb2Ygc3RyaW5ncyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9zc2libGUKKyAgICAgKiAgICAgIHZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQuICBJZiB0aGlzIGtleSBpcyBub3QgZm91bmQKKyAgICAgKiAgICAgIGluIHRoZSBidW5kbGUsIHRoZSBtb250aCBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIk1vbnRoTmFtZXMiIGFycmF5LiAgSWYgdGhpcyBrZXkKKyAgICAgKiAgICAgIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLCB0aGUgIk1vbnRoTmFtZXMiCisgICAgICogICAgICB2YWx1ZXMgYXJlIHVzZWQgaW5zdGVhZC4gIElmIG5laXRoZXIga2V5IGlzIGZvdW5kLAorICAgICAqICAgICAgdGhlIGRheSBhYmJyZXZpYXRpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgZGVmYXVsdAorICAgICAqICAgICAgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgbG9jYWxlLgorICAgICAqCisgICAgICogPGxpPjxiPkVyYXM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIHN0cmluZ3MgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvc3NpYmxlCisgICAgICogICAgICB2YWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZC4gIElmIHRoaXMga2V5IGlzIG5vdCBmb3VuZAorICAgICAqICAgICAgaW4gdGhlIGJ1bmRsZSwgdGhlIGVyYSBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgICAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gd2hvc2UgZGF0ZSBmb3JtYXQgc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIFRoZSB1bG9jYWxlIHdob3NlIHN5bWJvbHMgYXJlIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXRTeW1ib2xzI0RhdGVGb3JtYXRTeW1ib2xzKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpbml0aWFsaXplRGF0YShsb2NhbGUsIGNhbC5nZXRUeXBlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFZhcmlhbnQgb2YgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIExvY2FsZSkgdGhhdCB0YWtlcyB0aGUgQ2FsZW5kYXIgY2xhc3MKKyAgICAgKiBpbnN0ZWFkIG9mIGEgQ2FsYW5kYXIgaW5zdGFuY2UuCisgICAgICogQHNlZSAjRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIExvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2xhc3MgY2FsZW5kYXJDbGFzcywgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKGNhbGVuZGFyQ2xhc3MsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFZhcmlhbnQgb2YgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIFVMb2NhbGUpIHRoYXQgdGFrZXMgdGhlIENhbGVuZGFyIGNsYXNzCisgICAgICogaW5zdGVhZCBvZiBhIENhbGFuZGFyIGluc3RhbmNlLgorICAgICAqIEBzZWUgI0RhdGVGb3JtYXRTeW1ib2xzKENhbGVuZGFyLCBMb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2xhc3MgY2FsZW5kYXJDbGFzcywgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIGZ1bGxOYW1lID0gY2FsZW5kYXJDbGFzcy5nZXROYW1lKCk7CisgICAgICAgIGludCBsYXN0RG90ID0gZnVsbE5hbWUubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9IGZ1bGxOYW1lLnN1YnN0cmluZyhsYXN0RG90KzEpOworICAgICAgICBTdHJpbmcgY2FsVHlwZSA9IFV0aWxpdHkucmVwbGFjZUFsbChjbGFzc05hbWUsICJDYWxlbmRhciIsICIiKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEobG9jYWxlLCBjYWxUeXBlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGZXRjaCBhIGN1c3RvbSBjYWxlbmRhcidzIERhdGVGb3JtYXRTeW1ib2xzIG91dCBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UKKyAgICAgKiBidW5kbGUuICBTeW1ib2xzIHRoYXQgYXJlIG5vdCBvdmVycmlkZGVuIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiBkZWZhdWx0IERhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoUmVzb3VyY2VCdW5kbGUgYnVuZGxlLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMoYnVuZGxlLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGZXRjaCBhIGN1c3RvbSBjYWxlbmRhcidzIERhdGVGb3JtYXRTeW1ib2xzIG91dCBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UKKyAgICAgKiBidW5kbGUuICBTeW1ib2xzIHRoYXQgYXJlIG5vdCBvdmVycmlkZGVuIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiBkZWZhdWx0IERhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhSZXNvdXJjZUJ1bmRsZSBidW5kbGUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKGxvY2FsZSwgCisgICAgICAgICAgICBuZXcgQ2FsZW5kYXJEYXRhKChJQ1VSZXNvdXJjZUJ1bmRsZSlidW5kbGUsIG51bGwpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBSZXNvdXJjZUJ1bmRsZSBjb250YWluaW5nIHRoZSBkYXRlIGZvcm1hdCBpbmZvcm1hdGlvbiBmb3IKKyAgICAgKiBhIHNwZWNpZmllZCBjYWxlbmRhciBzdWJjbGFzcyBpbiBhIGdpdmVuIGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENsYXNzIGNhbGVuZGFyQ2xhc3MsIExvY2FsZSBsb2NhbGUpCisgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWxlbmRhckNsYXNzLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIFJlc291cmNlQnVuZGxlIGNvbnRhaW5pbmcgdGhlIGRhdGUgZm9ybWF0IGluZm9ybWF0aW9uIGZvcgorICAgICAqIGEgc3BlY2lmaWVkIGNhbGVuZGFyIHN1YmNsYXNzIGluIGEgZ2l2ZW4gbG9jYWxlLgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgbmFtZSBpcyBiYXNlZCBvbiB0aGUgY2FsZW5kYXIncyBmdWxseS1zcGVjaWZpZWQKKyAgICAgKiBjbGFzcyBuYW1lLCB3aXRoICIucmVzb3VyY2VzIiBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBwYWNrYWdlIG5hbWUKKyAgICAgKiAoanVzdCBiZWZvcmUgdGhlIGNsYXNzIG5hbWUpIGFuZCAiU3ltYm9scyIgYXBwZW5kZWQgdG8gdGhlIGVuZC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGJ1bmRsZSBjb3JyZXNwb25kaW5nIHRvICJjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyIgorICAgICAqIGlzICJjb20uaWJtLmljdS5pbXBsLmRhdGEuSGVicmV3Q2FsZW5kYXJTeW1ib2xzIi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgUmVzb3VyY2VCdW5kbGUgZ2V0RGF0ZUZvcm1hdEJ1bmRsZShDbGFzcyBjYWxlbmRhckNsYXNzLCBVTG9jYWxlIGxvY2FsZSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICAvLyBGaW5kIHRoZSBjYWxlbmRhcidzIGNsYXNzIG5hbWUsIHdoaWNoIHdlJ3JlIGdvaW5nIHRvIHVzZSB0byBjb25zdHJ1Y3QgdGhlCisgICAgICAgIC8vIHJlc291cmNlIGJ1bmRsZSBuYW1lLgorICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBjYWxlbmRhckNsYXNzLmdldE5hbWUoKTsKKyAgICAgICAgaW50IGxhc3REb3QgPSBmdWxsTmFtZS5sYXN0SW5kZXhPZignLicpOworICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gZnVsbE5hbWUuc3Vic3RyaW5nKGxhc3REb3QrMSk7CisKKyAgICAgICAgU3RyaW5nIGJ1bmRsZU5hbWUgPSBjbGFzc05hbWUgKyAiU3ltYm9scyI7CisKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIHJlc3VsdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYnVuZGxlTmFtZSwgbG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIC8vIGNvdmVyYWdlIHJlcXVpcmVzIHRlc3Qgd2l0aG91dCBkYXRhLCBzbyBza2lwCisgICAgICAgICAgICAvL2lmICghKGNhbCBpbnN0YW5jZW9mIEdyZWdvcmlhbkNhbGVuZGFyKSkgeworICAgICAgICAgICAgaWYgKCEoR3JlZ29yaWFuQ2FsZW5kYXIuY2xhc3MuaXNBc3NpZ25hYmxlRnJvbShjYWxlbmRhckNsYXNzKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBPayBmb3Igc3ltYm9scyB0byBiZSBtaXNzaW5nIGZvciBhIEdyZWdvcmlhbiBjYWxlbmRhciwgYnV0CisgICAgICAgICAgICAgICAgLy8gbm90IGZvciBhbnkgb3RoZXIgdHlwZS4KKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWYXJpYW50IG9mIGdldERhdGVGb3JtYXRCdW5kbGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLnV0aWwuTG9jYWxlKSB0aGF0IHRha2VzCisgICAgICogYSBDYWxlbmRhciBpbnN0YW5jZSBpbnN0ZWFkIG9mIGEgQ2FsZW5kYXIgY2xhc3MuCisgICAgICogQHNlZSAjZ2V0RGF0ZUZvcm1hdEJ1bmRsZShqYXZhLmxhbmcuQ2xhc3MsIGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENhbGVuZGFyIGNhbCwgTG9jYWxlIGxvY2FsZSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXREYXRlRm9ybWF0QnVuZGxlKGNhbC5nZXRDbGFzcygpLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmFyaWFudCBvZiBnZXREYXRlRm9ybWF0QnVuZGxlKGphdmEubGFuZy5DbGFzcywgamF2YS51dGlsLkxvY2FsZSkgdGhhdCB0YWtlcworICAgICAqIGEgQ2FsZW5kYXIgaW5zdGFuY2UgaW5zdGVhZCBvZiBhIENhbGVuZGFyIGNsYXNzLgorICAgICAqIEBzZWUgI2dldERhdGVGb3JtYXRCdW5kbGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENhbGVuZGFyIGNhbCwgVUxvY2FsZSBsb2NhbGUpCisgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwuZ2V0Q2xhc3MoKSwgbG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLy8gLS0tLS0tLS0gQkVHSU4gVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2NhbGUgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhpcyBvYmplY3QsIG9yIG51bGwuCisgICAgICogVGhpcyBtYXkgbWF5IGRpZmZlciBmcm9tIHRoZSBsb2NhbGUgcmVxdWVzdGVkIGF0IHRoZSB0aW1lIG9mCisgICAgICogdGhpcyBvYmplY3QncyBjcmVhdGlvbi4gIEZvciBleGFtcGxlLCBpZiBhbiBvYmplY3QgaXMgY3JlYXRlZAorICAgICAqIGZvciBsb2NhbGUgPHR0PmVuX1VTX0NBTElGT1JOSUE8L3R0PiwgdGhlIGFjdHVhbCBkYXRhIG1heSBiZQorICAgICAqIGRyYXduIGZyb20gPHR0PmVuPC90dD4gKHRoZSA8aT5hY3R1YWw8L2k+IGxvY2FsZSksIGFuZAorICAgICAqIDx0dD5lbl9VUzwvdHQ+IG1heSBiZSB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgdGhhdCBleGlzdHMgKHRoZQorICAgICAqIDxpPnZhbGlkPC9pPiBsb2NhbGUpLgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2Qgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBJQ1UgMy4wOyBJQ1UgMi44CisgICAgICogY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUgKiA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE2MTAzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTYzNCBAQAorLy8jI2hlYWRlcgorLy8jaWZuZGVmIEZPVU5EQVRJT04KKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBHb29nbGUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5qYXZhLHYgJAorICogJERhdGU6IDIwMDYvMDkvMjQgMjM6MjM6MDAgJAorICogJFJldmlzaW9uOiAxLjEwICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkJpdFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKKy8vaW1wb3J0IG9yZy51bmljb2RlLmNsZHIudXRpbC5VdGlsaXR5OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckRhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5QYXR0ZXJuVG9rZW5pemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkZyZWV6YWJsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGZsZXhpYmxlIGdlbmVyYXRpb24gb2YgZGF0ZSBmb3JtYXQgcGF0dGVybnMsIGxpa2UKKyAqICJ5eS1NTS1kZCIuIFRoZSB1c2VyIGNhbiBidWlsZCB1cCB0aGUgZ2VuZXJhdG9yIGJ5IGFkZGluZyBzdWNjZXNzaXZlCisgKiBwYXR0ZXJucy4gT25jZSB0aGF0IGlzIGRvbmUsIGEgcXVlcnkgY2FuIGJlIG1hZGUgdXNpbmcgYSAic2tlbGV0b24iLCB3aGljaCBpcworICogYSBwYXR0ZXJuIHdoaWNoIGp1c3QgaW5jbHVkZXMgdGhlIGRlc2lyZWQgZmllbGRzIGFuZCBsZW5ndGhzLiBUaGUgZ2VuZXJhdG9yCisgKiB3aWxsIHJldHVybiB0aGUgImJlc3QgZml0IiBwYXR0ZXJuIGNvcnJlc3BvbmRpbmcgdG8gdGhhdCBza2VsZXRvbi4KKyAqIDxwPgorICogVGhlIG1haW4gbWV0aG9kIHBlb3BsZSB3aWxsIHVzZSBpcyBnZXRCZXN0UGF0dGVybihTdHJpbmcgc2tlbGV0b24pLCBzaW5jZQorICogbm9ybWFsbHkgdGhpcyBjbGFzcyBpcyBwcmUtYnVpbHQgd2l0aCBkYXRhIGZyb20gYSBwYXJ0aWN1bGFyIGxvY2FsZS4gSG93ZXZlciwKKyAqIGdlbmVyYXRvcnMgY2FuIGJlIGJ1aWx0IGRpcmVjdGx5IGZyb20gb3RoZXIgZGF0YSBhcyB3ZWxsLgorICogPHByZT4KKyAqIC8vIHNvbWUgc2ltcGxlIHVzZSBjYXNlcworICogRGF0ZSBzYW1wbGVEYXRlID0gbmV3IERhdGUoOTksIDksIDEzLCAyMywgNTgsIDU5KTsKKyAqIFVMb2NhbGUgbG9jYWxlID0gVUxvY2FsZS5HRVJNQU5ZOworICogVGltZVpvbmUgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCZxdW90O0V1cm9wZS9QYXJpcyZxdW90Oyk7CisgKiAKKyAqIC8vIG1ha2UgZnJvbSBsb2NhbGUKKyAqIAorICogRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIGdlbiA9IERhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICogU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChnZW4uZ2V0QmVzdFBhdHRlcm4oJnF1b3Q7TU1NZGRIbW0mcXVvdDspLAorICogICAgIGxvY2FsZSk7CisgKiBmb3JtYXQuc2V0VGltZVpvbmUoem9uZSk7CisgKiBhc3NlcnRFcXVhbHMoJnF1b3Q7c2ltcGxlIGZvcm1hdDogTU1NZGRIbW0mcXVvdDssIAorICogICAgICZxdW90Ozg6NTggMTQuIE9rdCZxdW90OywKKyAqICAgICBmb3JtYXQuZm9ybWF0KHNhbXBsZURhdGUpKTsKKyAqIC8vIChhIGdlbmVyYXRvciBjYW4gYmUgYnVpbHQgZnJvbSBzY3JhdGNoLCBidXQgdGhhdCBpcyBub3QgYSB0eXBpY2FsIHVzZSBjYXNlKQorICogCisgKiAvLyBtb2RpZnkgdGhlIGdlbmVyYXRvciBieSBhZGRpbmcgcGF0dGVybnMKKyAqIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5QYXR0ZXJuSW5mbyByZXR1cm5JbmZvID0gbmV3IERhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5QYXR0ZXJuSW5mbygpOworICogZ2VuLmFkZCgmcXVvdDtkJy4gdm9uJyBNTU1NJnF1b3Q7LCB0cnVlLCByZXR1cm5JbmZvKTsKKyAqIC8vIHRoZSByZXR1cm5JbmZvIGlzIG1vc3RseSB1c2VmdWwgZm9yIGRlYnVnZ2luZyBwcm9ibGVtIGNhc2VzCisgKiBmb3JtYXQuYXBwbHlQYXR0ZXJuKGdlbi5nZXRCZXN0UGF0dGVybigmcXVvdDtNTU1NZGRIbW0mcXVvdDspKTsKKyAqIGFzc2VydEVxdWFscygmcXVvdDttb2RpZmllZCBmb3JtYXQ6IE1NTWRkSG1tJnF1b3Q7LAorICogICAgICZxdW90Ozg6NTggMTQuIHZvbiBPa3RvYmVyJnF1b3Q7LAorICogICAgIGZvcm1hdC5mb3JtYXQoc2FtcGxlRGF0ZSkpOworICogCisgKiAvLyBnZXQgYSBwYXR0ZXJuIGFuZCBtb2RpZnkgaXQKKyAqIGZvcm1hdCA9IChTaW1wbGVEYXRlRm9ybWF0KSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLAorICogICAgIERhdGVGb3JtYXQuRlVMTCwgbG9jYWxlKTsKKyAqIGZvcm1hdC5zZXRUaW1lWm9uZSh6b25lKTsKKyAqIFN0cmluZyBwYXR0ZXJuID0gZm9ybWF0LnRvUGF0dGVybigpOworICogYXNzZXJ0RXF1YWxzKCZxdW90O2Z1bGwtZGF0ZSZxdW90OywKKyAqICAgICAmcXVvdDtEb25uZXJzdGFnLCAxNC4gT2t0b2JlciAxOTk5IDg6NTggVWhyIEdNVCswMjowMCZxdW90OywKKyAqICAgICBmb3JtYXQuZm9ybWF0KHNhbXBsZURhdGUpKTsKKyAqIAorICogLy8gbW9kaWZ5IGl0IHRvIGNoYW5nZSB0aGUgem9uZS4KKyAqIFN0cmluZyBuZXdQYXR0ZXJuID0gZ2VuLnJlcGxhY2VGaWVsZFR5cGVzKHBhdHRlcm4sICZxdW90O3Z2dnYmcXVvdDspOworICogZm9ybWF0LmFwcGx5UGF0dGVybihuZXdQYXR0ZXJuKTsKKyAqIGFzc2VydEVxdWFscygmcXVvdDtmdWxsLWRhdGUsIG1vZGlmaWVkIHpvbmUmcXVvdDssCisgKiAgICAgJnF1b3Q7RG9ubmVyc3RhZywgMTQuIE9rdG9iZXIgMTk5OSA4OjU4IFVociBGcmFua3JlaWNoJnF1b3Q7LAorICogICAgIGZvcm1hdC5mb3JtYXQoc2FtcGxlRGF0ZSkpOworICogPC9wcmU+CisgKiBAZHJhZnQgSUNVIDMuNgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgaW1wbGVtZW50cyBGcmVlemFibGUsIENsb25lYWJsZSB7CisgICAgLy8gZGVidWdnaW5nIGZsYWdzCisgICAgLy9zdGF0aWMgYm9vbGVhbiBTSE9XX0RJU1RBTkNFID0gZmFsc2U7CisgICAgLy8gVE9ETyBhZGQgaGFjayB0byBmaXggbW9udGhzIGZvciBDSkssIGFzIHBlciBidWcgMTA5OQorICAgIC8vIGh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vbG9jYWxlLWJ1Z3MvaW5jb21pbmc/ZmluZGlkPTEwOTkKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgZW1wdHkgZ2VuZXJhdG9yLCB0byBiZSBjb25zdHJ1Y3RlZCB3aXRoIGFkZCguLi4pIGV0Yy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIG5ld0luc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVUaW1lUGF0dGVybkdlbmVyYXRvcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBPbmx5IGZvciB1c2UgYnkgc3ViY2xhc3NlcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvcigpIHsgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgZmxleGlibGUgZ2VuZXJhdG9yIGFjY29yZGluZyB0byBkYXRhIGZvciBhIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIGdldEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBmbGV4aWJsZSBnZW5lcmF0b3IgYWNjb3JkaW5nIHRvIGRhdGEgZm9yIGEgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSB1TG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvciBnZXRJbnN0YW5jZShVTG9jYWxlIHVMb2NhbGUpIHsKKyAgICAgICAgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIHJlc3VsdCA9IG5ldyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IoKTsKKyAgICAgICAgU3RyaW5nIGxhbmcgPSB1TG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgIGlmIChsYW5nLmVxdWFscygiemgiKSB8fCBsYW5nLmVxdWFscygia28iKSB8fCBsYW5nLmVxdWFscygiamEiKSkgeworICAgICAgICAgIHJlc3VsdC5jaGluZXNlTW9udGhIYWNrID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBQYXR0ZXJuSW5mbyByZXR1cm5JbmZvID0gbmV3IFBhdHRlcm5JbmZvKCk7CisgICAgICAgIFN0cmluZyBoYWNrUGF0dGVybiA9IG51bGw7CisgICAgICAgIC8vIGZpcnN0IGxvYWQgd2l0aCB0aGUgSUNVIHBhdHRlcm5zCisgICAgICAgIGZvciAoaW50IGkgPSBEYXRlRm9ybWF0LkZVTEw7IGkgPD0gRGF0ZUZvcm1hdC5TSE9SVDsgKytpKSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmID0gKFNpbXBsZURhdGVGb3JtYXQpIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGksIHVMb2NhbGUpOworICAgICAgICAgICAgcmVzdWx0LmFkZChkZi50b1BhdHRlcm4oKSwgZmFsc2UsIHJldHVybkluZm8pOworICAgICAgICAgICAgZGYgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoaSwgdUxvY2FsZSk7CisgICAgICAgICAgICByZXN1bHQuYWRkKGRmLnRvUGF0dGVybigpLCBmYWxzZSwgcmV0dXJuSW5mbyk7CisgICAgICAgICAgICAvLyBIQUNLIGZvciBoaDpzcworICAgICAgICAgICAgaWYgKGkgPT0gRGF0ZUZvcm1hdC5NRURJVU0pIHsKKyAgICAgICAgICAgICAgICBoYWNrUGF0dGVybiA9IGRmLnRvUGF0dGVybigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSByYiA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhLkRhdGVEYXRhJE15RGF0ZVJlc291cmNlcyIsIHVMb2NhbGUpOworICAgICAgICAvL1Jlc291cmNlQnVuZGxlIHJiID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLmljdS5pbXBsLmRhdGEuRGF0ZURhdGEkTXlEYXRlUmVzb3VyY2VzIiwgVUxvY2FsZS5GUkVOQ0gudG9Mb2NhbGUoKSk7CisgICAgICAgIGZvciAoRW51bWVyYXRpb24gZW4gPSByYi5nZXRLZXlzKCk7IGVuLmhhc01vcmVFbGVtZW50cygpOykgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGVuLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSByYi5nZXRTdHJpbmcoa2V5KTsKKyAgICAgICAgICAgIFN0cmluZyBbXSBrZXlQYXJ0cyA9IGtleS5zcGxpdCgiLyIpOworICAgICAgICAgICAgaWYgKGtleVBhcnRzWzBdLmVxdWFscygicGF0dGVybiIpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh2YWx1ZSwgZmFsc2UsIHJldHVybkluZm8pOworICAgICAgICAgICAgfSBlbHNlIGlmICAoa2V5UGFydHNbMF0uZXF1YWxzKCJhcHBlbmQiKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRBcHBlbmRJdGVtRm9ybWF0cyhnZXRBcHBlbmRGb3JtYXROdW1iZXIoa2V5UGFydHNbMV0pLCB2YWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgIChrZXlQYXJ0c1swXS5lcXVhbHMoImZpZWxkIikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0QXBwZW5kSXRlbU5hbWVzKGdldEFwcGVuZE5hbWVOdW1iZXIoa2V5UGFydHNbMV0pLCB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGFzc3VtZSBpdCBpcyBhbHdheXMgYmlnIGVuZGlhbiAob2sgZm9yIENMRFIgcmlnaHQgbm93KQorICAgICAgICAvLyBzb21lIGxhbmd1YWdlcyBkaWRuJ3QgYWRkIG1tOnNzIG9yIEhIOm1tLCBzbyBwdXQgaW4gYSBoYWNrIHRvIGNvbXB1dGUgdGhhdCBmcm9tIHRoZSBzaG9ydCB0aW1lLgorICAgICAgICBpZiAoaGFja1BhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgaGFja1RpbWVzKHJlc3VsdCwgcmV0dXJuSW5mbywgaGFja1BhdHRlcm4pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzZXQgdGhlIGRhdGV0aW1lIHBhdHRlcm4uIFRoaXMgaXMgdWdseSBjb2RlIC0tIHRoZXJlIHNob3VsZCBiZSBhIHB1YmxpYyBpbnRlcmZhY2UgZm9yIHRoaXMKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodUxvY2FsZSk7CisgICAgICAgIENhbGVuZGFyRGF0YSBjYWxEYXRhID0gbmV3IENhbGVuZGFyRGF0YSh1TG9jYWxlLCBjYWwuZ2V0VHlwZSgpKTsKKyAgICAgICAgU3RyaW5nW10gcGF0dGVybnMgPSBjYWxEYXRhLmdldCgiRGF0ZVRpbWVQYXR0ZXJucyIpLmdldFN0cmluZ0FycmF5KCk7CisgICAgICAgIHJlc3VsdC5zZXREYXRlVGltZUZvcm1hdChwYXR0ZXJuc1s4XSk7CisgICAgICAgIAorICAgICAgICAvLyBkZWNpbWFsIHBvaW50IGZvciBzZWNvbmRzCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyh1TG9jYWxlKTsKKyAgICAgICAgcmVzdWx0LnNldERlY2ltYWwoU3RyaW5nLnZhbHVlT2YoZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKSkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGhhY2tUaW1lcyhEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgcmVzdWx0LCBQYXR0ZXJuSW5mbyByZXR1cm5JbmZvLCBTdHJpbmcgaGFja1BhdHRlcm4pIHsKKyAgICAgICAgcmVzdWx0LmZwLnNldChoYWNrUGF0dGVybik7CisgICAgICAgIFN0cmluZyBtbXNzID0gbmV3IFN0cmluZygpOworICAgICAgICAvLyB0byBnZXQgbW06c3MsIHdlIHN0cmlwIGFsbCBidXQgbW0gbGl0ZXJhbCBzcworICAgICAgICBib29sZWFuIGdvdE1tID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0LmZwLml0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBPYmplY3QgaXRlbSA9IHJlc3VsdC5mcC5pdGVtcy5nZXQoaSk7CisgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIGlmIChnb3RNbSkgeworICAgICAgICAgICAgICAgICAgICBtbXNzICs9IHJlc3VsdC5mcC5xdW90ZUxpdGVyYWwoaXRlbS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBpdGVtLnRvU3RyaW5nKCkuY2hhckF0KDApOworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnbScpIHsKKyAgICAgICAgICAgICAgICAgICAgZ290TW0gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBtbXNzICs9IGl0ZW07CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAncycpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFnb3RNbSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIGZhaWxlZAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1tc3MgKz0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChtbXNzLCBmYWxzZSwgcmV0dXJuSW5mbyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ290TW0gfHwgY2ggPT0gJ3onIHx8IGNoID09ICdaJyB8fCBjaCA9PSAndicgfHwgY2ggPT0gJ1YnKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBmYWlsZWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gdG8gZ2V0IGhoOm1tLCB3ZSBzdHJpcCAobGl0ZXJhbCBzcykgYW5kIChsaXRlcmFsIFMpCisgICAgICAgIC8vIHRoZSBlYXNpZXN0IHdheSB0byBkbyB0aGlzIGlzIHRvIG1hcmsgdGhlIHN0dWZmIHdlIHdhbnQgdG8gbnVrZSwgdGhlbiByZW1vdmUgaXQgaW4gYSBzZWNvbmQgcGFzcy4KKyAgICAgICAgQml0U2V0IHZhcmlhYmxlcyA9IG5ldyBCaXRTZXQoKTsKKyAgICAgICAgQml0U2V0IG51a2UgPSBuZXcgQml0U2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0LmZwLml0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBPYmplY3QgaXRlbSA9IHJlc3VsdC5mcC5pdGVtcy5nZXQoaSk7CisgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFZhcmlhYmxlRmllbGQpIHsKKyAgICAgICAgICAgICAgICB2YXJpYWJsZXMuc2V0KGkpOworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBpdGVtLnRvU3RyaW5nKCkuY2hhckF0KDApOworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAncycgfHwgY2ggPT0gJ1MnKSB7CisgICAgICAgICAgICAgICAgICAgIG51a2Uuc2V0KGkpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gaS0xOyBqID49IDA7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlcy5nZXQoaikpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgbnVrZS5zZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGhobW0gPSBnZXRGaWx0ZXJlZFBhdHRlcm4ocmVzdWx0LmZwLCBudWtlKTsKKyAgICAgICAgcmVzdWx0LmFkZChoaG1tLCBmYWxzZSwgcmV0dXJuSW5mbyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRGaWx0ZXJlZFBhdHRlcm4oRm9ybWF0UGFyc2VyIGZwLCBCaXRTZXQgbnVrZSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbmV3IFN0cmluZygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZwLml0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAobnVrZS5nZXQoaSkpIGNvbnRpbnVlOworICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBmcC5pdGVtcy5nZXQoaSk7CisgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmcC5xdW90ZUxpdGVyYWwoaXRlbS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGl0ZW0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0QXBwZW5kTmFtZU51bWJlcihTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ0xEUl9GSUVMRF9OQU1FLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoQ0xEUl9GSUVMRF9OQU1FW2ldLmVxdWFscyhzdHJpbmcpKSByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRBcHBlbmRGb3JtYXROdW1iZXIoU3RyaW5nIHN0cmluZykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENMRFJfRklFTERfQVBQRU5ELmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoQ0xEUl9GSUVMRF9BUFBFTkRbaV0uZXF1YWxzKHN0cmluZykpIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmVzdCBwYXR0ZXJuIG1hdGNoaW5nIHRoZSBpbnB1dCBza2VsZXRvbi4gSXQgaXMgZ3VhcmFudGVlZCB0bworICAgICAqIGhhdmUgYWxsIG9mIHRoZSBmaWVsZHMgaW4gdGhlIHNrZWxldG9uLgorICAgICAqIAorICAgICAqIEBwYXJhbSBza2VsZXRvbgorICAgICAqICAgICAgICAgICAgVGhlIHNrZWxldG9uIGlzIGEgcGF0dGVybiBjb250YWluaW5nIG9ubHkgdGhlIHZhcmlhYmxlIGZpZWxkcy4KKyAgICAgKiAgICAgICAgICAgIEZvciBleGFtcGxlLCAiTU1NZGQiIGFuZCAibW1oaCIgYXJlIHNrZWxldG9ucy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QmVzdFBhdHRlcm4oU3RyaW5nIHNrZWxldG9uKSB7CisgICAgICBpZiAoY2hpbmVzZU1vbnRoSGFjaykgeworICAgICAgICBza2VsZXRvbiA9IHNrZWxldG9uLnJlcGxhY2VBbGwoIk1NTSsiLCAiTU0iKTsKKyAgICAgIH0KKyAgICAgICAgLy9pZiAoIWlzQ29tcGxldGUpIGNvbXBsZXRlKCk7CisgICAgICAgIGN1cnJlbnQuc2V0KHNrZWxldG9uLCBmcCk7CisgICAgICAgIFN0cmluZyBiZXN0ID0gZ2V0QmVzdFJhdyhjdXJyZW50LCAtMSwgX2Rpc3RhbmNlSW5mbyk7CisgICAgICAgIGlmIChfZGlzdGFuY2VJbmZvLm1pc3NpbmdGaWVsZE1hc2sgPT0gMCAmJiBfZGlzdGFuY2VJbmZvLmV4dHJhRmllbGRNYXNrID09IDApIHsKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBnb29kIGl0ZW0uIEFkanVzdCB0aGUgZmllbGQgdHlwZXMKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RGaWVsZFR5cGVzKGJlc3QsIGN1cnJlbnQsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgbmVlZGVkRmllbGRzID0gY3VycmVudC5nZXRGaWVsZE1hc2soKTsKKyAgICAgICAgLy8gb3RoZXJ3aXNlIGJyZWFrIHVwIGJ5IGRhdGUgYW5kIHRpbWUuCisgICAgICAgIFN0cmluZyBkYXRlUGF0dGVybiA9IGdldEJlc3RBcHBlbmRpbmcobmVlZGVkRmllbGRzICYgREFURV9NQVNLKTsKKyAgICAgICAgU3RyaW5nIHRpbWVQYXR0ZXJuID0gZ2V0QmVzdEFwcGVuZGluZyhuZWVkZWRGaWVsZHMgJiBUSU1FX01BU0spOworICAgICAgICAKKyAgICAgICAgaWYgKGRhdGVQYXR0ZXJuID09IG51bGwpIHJldHVybiB0aW1lUGF0dGVybiA9PSBudWxsID8gIiIgOiB0aW1lUGF0dGVybjsKKyAgICAgICAgaWYgKHRpbWVQYXR0ZXJuID09IG51bGwpIHJldHVybiBkYXRlUGF0dGVybjsKKyAgICAgICAgcmV0dXJuIE1lc3NhZ2VGb3JtYXQuZm9ybWF0KGdldERhdGVUaW1lRm9ybWF0KCksIG5ldyBPYmplY3RbXXtkYXRlUGF0dGVybiwgdGltZVBhdHRlcm59KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUGF0dGVybkluZm8gc3VwcGxpZXMgb3V0cHV0IHBhcmFtZXRlcnMgZm9yIGFkZCguLi4pLiBJdCBpcyB1c2VkIGJlY2F1c2UKKyAgICAgKiBKYXZhIGRvZXNuJ3QgaGF2ZSByZWFsIG91dHB1dCBwYXJhbWV0ZXJzLiBJdCBpcyB0cmVhdGVkIGxpa2UgYSBzdHJ1Y3QgKGVnCisgICAgICogUG9pbnQpLCBzbyBhbGwgZmllbGRzIGFyZSBwdWJsaWMuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFBhdHRlcm5JbmZvIHsgLy8gc3RydWN0IGZvciByZXR1cm4gaW5mb3JtYXRpb24KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0sgPSAwOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFTRV9DT05GTElDVCA9IDE7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05GTElDVCA9IDI7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHN0YXR1czsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY29uZmxpY3RpbmdQYXR0ZXJuOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNpbXBsZSBjb25zdHJ1Y3Rvciwgc2luY2UgdGhpcyBpcyB0cmVhdGVkIGxpa2UgYSBzdHJ1Y3QuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFBhdHRlcm5JbmZvKCkgeworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBmcm9tSGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImhleC1hbnkiKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgcGF0dGVybiB0byB0aGUgZ2VuZXJhdG9yLiBJZiB0aGUgcGF0dGVybiBoYXMgdGhlIHNhbWUgc2tlbGV0b24gYXMKKyAgICAgKiBhbiBleGlzdGluZyBwYXR0ZXJuLCBhbmQgdGhlIG92ZXJyaWRlIHBhcmFtZXRlciBpcyBzZXQsIHRoZW4gdGhlIHByZXZpb3VzCisgICAgICogdmFsdWUgaXMgb3ZlcnJpZGVuLiBPdGhlcndpc2UsIHRoZSBwcmV2aW91cyB2YWx1ZSBpcyByZXRhaW5lZC4gSW4gZWl0aGVyCisgICAgICogY2FzZSwgdGhlIGNvbmZsaWN0aW5nIGluZm9ybWF0aW9uIGlzIHJldHVybmVkIGluIFBhdHRlcm5JbmZvLgorICAgICAqIDxwPgorICAgICAqIE5vdGUgdGhhdCBzaW5nbGUtZmllbGQgcGF0dGVybnMgKGxpa2UgIk1NTSIpIGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkLCBhbmQKKyAgICAgKiBkb24ndCBuZWVkIHRvIGJlIGFkZGVkIGV4cGxpY2l0bHkhCisgICAgICogCisgICAgICogQHBhcmFtIG92ZXJyaWRlCisgICAgICogICAgICAgICAgICB3aGVuIGV4aXN0aW5nIHZhbHVlcyBhcmUgdG8gYmUgb3ZlcnJpZGRlbiB1c2UgdHJ1ZSwgb3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICB1c2UgZmFsc2UuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIGFkZChTdHJpbmcgcGF0dGVybiwgYm9vbGVhbiBvdmVycmlkZSwgUGF0dGVybkluZm8gcmV0dXJuSW5mbykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAocGF0dGVybi5pbmRleE9mKCJcXHUiKSA+PSAwKSB7CisgICAgICAgICAgICBTdHJpbmcgb2xkUGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgICAgICBwYXR0ZXJuID0gZnJvbUhleC50cmFuc2xpdGVyYXRlKHBhdHRlcm4pOworICAgICAgICB9CisgICAgICAgIERhdGVUaW1lTWF0Y2hlciBtYXRjaGVyID0gbmV3IERhdGVUaW1lTWF0Y2hlcigpLnNldChwYXR0ZXJuLCBmcCk7CisgICAgICAgIFN0cmluZyBiYXNlUGF0dGVybiA9IG1hdGNoZXIuZ2V0QmFzZVBhdHRlcm4oKTsKKyAgICAgICAgU3RyaW5nIHByZXZpb3VzUGF0dGVybldpdGhTYW1lQmFzZSA9IChTdHJpbmcpYmFzZVBhdHRlcm5fcGF0dGVybi5nZXQoYmFzZVBhdHRlcm4pOworICAgICAgICBpZiAocHJldmlvdXNQYXR0ZXJuV2l0aFNhbWVCYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybkluZm8uc3RhdHVzID0gUGF0dGVybkluZm8uQkFTRV9DT05GTElDVDsKKyAgICAgICAgICAgIHJldHVybkluZm8uY29uZmxpY3RpbmdQYXR0ZXJuID0gcHJldmlvdXNQYXR0ZXJuV2l0aFNhbWVCYXNlOworICAgICAgICAgICAgaWYgKCFvdmVycmlkZSkgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSAoU3RyaW5nKXNrZWxldG9uMnBhdHRlcm4uZ2V0KG1hdGNoZXIpOworICAgICAgICBpZiAocHJldmlvdXNWYWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm5JbmZvLnN0YXR1cyA9IFBhdHRlcm5JbmZvLkNPTkZMSUNUOworICAgICAgICAgICAgcmV0dXJuSW5mby5jb25mbGljdGluZ1BhdHRlcm4gPSBwcmV2aW91c1ZhbHVlOworICAgICAgICAgICAgaWYgKCFvdmVycmlkZSkgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuSW5mby5zdGF0dXMgPSBQYXR0ZXJuSW5mby5PSzsKKyAgICAgICAgcmV0dXJuSW5mby5jb25mbGljdGluZ1BhdHRlcm4gPSAiIjsKKyAgICAgICAgc2tlbGV0b24ycGF0dGVybi5wdXQobWF0Y2hlciwgcGF0dGVybik7CisgICAgICAgIGJhc2VQYXR0ZXJuX3BhdHRlcm4ucHV0KGJhc2VQYXR0ZXJuLCBwYXR0ZXJuKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgdG8gcmV0dXJuIGEgdW5pcXVlIHNrZWxldG9uIGZyb20gYSBnaXZlbiBwYXR0ZXJuLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBib3RoICJNTU0tZGQiIGFuZCAiZGQvTU1NIiBwcm9kdWNlIHRoZSBza2VsZXRvbiAiTU1NZGQiLgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYXR0ZXJuCisgICAgICogICAgICAgICAgICBJbnB1dCBwYXR0ZXJuLCBzdWNoIGFzICJkZC9NTU0iCisgICAgICogQHJldHVybiBza2VsZXRvbiwgc3VjaCBhcyAiTU1NZGQiCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNrZWxldG9uKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeyAvLyBzeW5jaHJvbml6ZWQgc2luY2UgYSBnZXR0ZXIgbXVzdCBiZSB0aHJlYWQtc2FmZQorICAgICAgICAgICAgY3VycmVudC5zZXQocGF0dGVybiwgZnApOworICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRvIHJldHVybiBhIHVuaXF1ZSBiYXNlIHNrZWxldG9uIGZyb20gYSBnaXZlbiBwYXR0ZXJuLiBUaGlzIGlzCisgICAgICogdGhlIHNhbWUgYXMgdGhlIHNrZWxldG9uLCBleGNlcHQgdGhhdCBkaWZmZXJlbmNlcyBpbiBsZW5ndGggYXJlIG1pbmltaXplZAorICAgICAqIHNvIGFzIHRvIG9ubHkgcHJlc2VydmUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdHJpbmcgYW5kIG51bWVyaWMgZm9ybS4gU28KKyAgICAgKiBmb3IgZXhhbXBsZSwgYm90aCAiTU1NLWRkIiBhbmQgImQvTU1NIiBwcm9kdWNlIHRoZSBza2VsZXRvbiAiTU1NZCIKKyAgICAgKiAobm90aWNlIHRoZSBzaW5nbGUgZCkuCisgICAgICogCisgICAgICogQHBhcmFtIHBhdHRlcm4KKyAgICAgKiAgICAgICAgICAgIElucHV0IHBhdHRlcm4sIHN1Y2ggYXMgImRkL01NTSIKKyAgICAgKiBAcmV0dXJuIHNrZWxldG9uLCBzdWNoIGFzICJNTU1kZCIKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QmFzZVNrZWxldG9uKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeyAvLyBzeW5jaHJvbml6ZWQgc2luY2UgYSBnZXR0ZXIgbXVzdCBiZSB0aHJlYWQtc2FmZQorICAgICAgICAgICAgY3VycmVudC5zZXQocGF0dGVybiwgZnApOworICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQuZ2V0QmFzZVBhdHRlcm4oKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIGFsbCB0aGUgc2tlbGV0b25zIChpbiBjYW5vbmljYWwgZm9ybSkgZnJvbSB0aGlzIGNsYXNzLAorICAgICAqIGFuZCB0aGUgcGF0dGVybnMgdGhhdCB0aGV5IG1hcCB0by4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gcmVzdWx0CisgICAgICogICAgICAgICAgICBhbiBvdXRwdXQgTWFwIGluIHdoaWNoIHRvIHBsYWNlIHRoZSBtYXBwaW5nIGZyb20gc2tlbGV0b24gdG8KKyAgICAgKiAgICAgICAgICAgIHBhdHRlcm4uIElmIHlvdSB3YW50IHRvIHNlZSB0aGUgaW50ZXJuYWwgb3JkZXIgYmVpbmcgdXNlZCwKKyAgICAgKiAgICAgICAgICAgIHN1cHBseSBhIExpbmtlZEhhc2hNYXAuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBudWxsLCB0aGVuIGEKKyAgICAgKiAgICAgICAgICAgIExpbmtlZEhhc2hNYXAgaXMgYWxsb2NhdGVkLgorICAgICAqICAgICAgICAgICAgPHA+CisgICAgICogICAgICAgICAgICA8aT5Jc3N1ZTogYW4gYWx0ZXJuYXRlIEFQSSB3b3VsZCBiZSB0byBqdXN0IHJldHVybiBhIGxpc3Qgb2YKKyAgICAgKiAgICAgICAgICAgIHRoZSBza2VsZXRvbnMsIGFuZCB0aGVuIGhhdmUgYSBzZXBhcmF0ZSByb3V0aW5lIHRvIGdldCBmcm9tCisgICAgICogICAgICAgICAgICBza2VsZXRvbiB0byBwYXR0ZXJuLjwvaT4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbnB1dCBNYXAgY29udGFpbmluZyB0aGUgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIE1hcCBnZXRTa2VsZXRvbnMoTWFwIHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBMaW5rZWRIYXNoTWFwKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBza2VsZXRvbjJwYXR0ZXJuLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIERhdGVUaW1lTWF0Y2hlciBpdGVtID0gKERhdGVUaW1lTWF0Y2hlcikgaXQubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAoU3RyaW5nKSBza2VsZXRvbjJwYXR0ZXJuLmdldChpdGVtKTsKKyAgICAgICAgICAgIGlmIChDQU5PTklDQUxfU0VULmNvbnRhaW5zKHBhdHRlcm4pKSBjb250aW51ZTsKKyAgICAgICAgICAgIHJlc3VsdC5wdXQoaXRlbS50b1N0cmluZygpLCBwYXR0ZXJuKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIGFsbCB0aGUgYmFzZSBza2VsZXRvbnMgKGluIGNhbm9uaWNhbCBmb3JtKSBmcm9tIHRoaXMgY2xhc3MKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTZXQgZ2V0QmFzZVNrZWxldG9ucyhTZXQgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgcmVzdWx0LmFkZEFsbChiYXNlUGF0dGVybl9wYXR0ZXJuLmtleVNldCgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRqdXN0cyB0aGUgZmllbGQgdHlwZXMgKHdpZHRoIGFuZCBzdWJ0eXBlKSBvZiBhIHBhdHRlcm4gdG8gbWF0Y2ggd2hhdCBpcworICAgICAqIGluIGEgc2tlbGV0b24uIFRoYXQgaXMsIGlmIHlvdSBzdXBwbHkgYSBwYXR0ZXJuIGxpa2UgImQtTSBIOm0iLCBhbmQgYQorICAgICAqIHNrZWxldG9uIG9mICJNTU1NZGRoaG1tIiwgdGhlbiB0aGUgaW5wdXQgcGF0dGVybiBpcyBhZGp1c3RlZCB0byBiZQorICAgICAqICJkZC1NTU1NIGhoOm1tIi4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkgdG8gZ2V0IHRoZSBiZXN0IG1hdGNoIGZvciB0aGUKKyAgICAgKiBpbnB1dCBza2VsZXRvbiwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgZXh0ZXJuYWxseS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gcGF0dGVybgorICAgICAqICAgICAgICAgICAgaW5wdXQgcGF0dGVybgorICAgICAqIEBwYXJhbSBza2VsZXRvbgorICAgICAqIEByZXR1cm4gcGF0dGVybiBhZGp1c3RlZCB0byBtYXRjaCB0aGUgc2tlbGV0b24gZmllbGRzIHdpZHRocyBhbmQKKyAgICAgKiAgICAgICAgIHN1YnR5cGVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyByZXBsYWNlRmllbGRUeXBlcyhTdHJpbmcgcGF0dGVybiwgU3RyaW5nIHNrZWxldG9uKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeyAvLyBzeW5jaHJvbml6ZWQgc2luY2UgYSBnZXR0ZXIgbXVzdCBiZSB0aHJlYWQtc2FmZQorICAgICAgICAgICAgcmV0dXJuIGFkanVzdEZpZWxkVHlwZXMocGF0dGVybiwgY3VycmVudC5zZXQoc2tlbGV0b24sIGZwKSwgZmFsc2UpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSBkYXRlIHRpbWUgZm9ybWF0IGlzIGEgbWVzc2FnZSBmb3JtYXQgcGF0dGVybiB1c2VkIHRvIGNvbXBvc2UgZGF0ZSBhbmQKKyAgICAgKiB0aW1lIHBhdHRlcm5zLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAiezB9IHsxfSIsIHdoZXJlIHswfSB3aWxsIGJlIHJlcGxhY2VkCisgICAgICogYnkgdGhlIGRhdGUgcGF0dGVybiBhbmQgezF9IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIHRpbWUgcGF0dGVybi4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2hlbiB0aGUgaW5wdXQgc2tlbGV0b24gY29udGFpbnMgYm90aCBkYXRlIGFuZCB0aW1lIGZpZWxkcywKKyAgICAgKiBidXQgdGhlcmUgaXMgbm90IGEgY2xvc2UgbWF0Y2ggYW1vbmcgdGhlIGFkZGVkIHBhdHRlcm5zLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBzdXBwb3NlIHRoYXQgdGhpcyBvYmplY3Qgd2FzIGNyZWF0ZWQgYnkgYWRkaW5nICJkZC1NTU0iIGFuZCAiaGg6bW0iLCBhbmQKKyAgICAgKiBpdHMgZGF0ZXRpbWVGb3JtYXQgaXMgdGhlIGRlZmF1bHQgInswfSB7MX0iLiBUaGVuIGlmIHRoZSBpbnB1dCBza2VsZXRvbgorICAgICAqIGlzICJNTU1kaG1tIiwgdGhlcmUgaXMgbm90IGFuIGV4YWN0IG1hdGNoLCBzbyB0aGUgaW5wdXQgc2tlbGV0b24gaXMKKyAgICAgKiBicm9rZW4gdXAgaW50byB0d28gY29tcG9uZW50cyAiTU1NZCIgYW5kICJobW0iLiBUaGVyZSBhcmUgY2xvc2UgbWF0Y2hlcworICAgICAqIGZvciB0aG9zZSB0d28gc2tlbGV0b25zLCBzbyB0aGUgcmVzdWx0IGlzIHB1dCB0b2dldGhlciB3aXRoIHRoaXMgcGF0dGVybiwKKyAgICAgKiByZXN1bHRpbmcgaW4gImQtTU1NIGg6bW0iLgorICAgICAqIAorICAgICAqIEBwYXJhbSBkYXRlVGltZUZvcm1hdAorICAgICAqICAgICAgICAgICAgbWVzc2FnZSBmb3JtYXQgcGF0dGVybiwgaGVyZSB7MH0gd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZGF0ZQorICAgICAqICAgICAgICAgICAgcGF0dGVybiBhbmQgezF9IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIHRpbWUgcGF0dGVybi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGVUaW1lRm9ybWF0KFN0cmluZyBkYXRlVGltZUZvcm1hdCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICB0aGlzLmRhdGVUaW1lRm9ybWF0ID0gZGF0ZVRpbWVGb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHRlciBjb3JyZXNwb25kaW5nIHRvIHNldERhdGVUaW1lRm9ybWF0LgorICAgICAqIAorICAgICAqIEByZXR1cm4gcGF0dGVybgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREYXRlVGltZUZvcm1hdCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGVUaW1lRm9ybWF0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgZGVjaW1hbCB2YWx1ZSBpcyB1c2VkIGluIGZvcm1hdHRpbmcgZnJhY3Rpb25zIG9mIHNlY29uZHMuIElmIHRoZQorICAgICAqIHNrZWxldG9uIGNvbnRhaW5zIGZyYWN0aW9uYWwgc2Vjb25kcywgdGhlbiB0aGlzIGlzIHVzZWQgd2l0aCB0aGUKKyAgICAgKiBmcmFjdGlvbmFsIHNlY29uZHMuIEZvciBleGFtcGxlLCBzdXBwb3NlIHRoYXQgdGhlIGlucHV0IHBhdHRlcm4gaXMKKyAgICAgKiAiaGhtbXNzU1NTUyIsIGFuZCB0aGUgYmVzdCBtYXRjaGluZyBwYXR0ZXJuIGludGVybmFsbHkgaXMgIkg6bW06c3MiLCBhbmQKKyAgICAgKiB0aGUgZGVjaW1hbCBzdHJpbmcgaXMgIiwiLiBUaGVuIHRoZSByZXN1bHRpbmcgcGF0dGVybiBpcyBtb2RpZmllZCB0byBiZQorICAgICAqICJIOm1tOnNzLFNTU1MiCisgICAgICogCisgICAgICogQHBhcmFtIGRlY2ltYWwKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY2ltYWwoU3RyaW5nIGRlY2ltYWwpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgdGhpcy5kZWNpbWFsID0gZGVjaW1hbDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGVyIGNvcnJlc3BvbmRpbmcgdG8gc2V0RGVjaW1hbC4KKyAgICAgKiBAcmV0dXJuIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIHRoZSBkZWNpbWFsIHBvaW50CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERlY2ltYWwoKSB7CisgICAgICAgIHJldHVybiBkZWNpbWFsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWR1bmRhbnQgcGF0dGVybnMgYXJlIHRob3NlIHdoaWNoIGlmIHJlbW92ZWQsIG1ha2Ugbm8gZGlmZmVyZW5jZSBpbiB0aGUKKyAgICAgKiByZXN1bHRpbmcgZ2V0QmVzdFBhdHRlcm4gdmFsdWVzLiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbGlzdCBvZiB0aGVtLCB0bworICAgICAqIGhlbHAgY2hlY2sgdGhlIGNvbnNpc3RlbmN5IG9mIHRoZSBwYXR0ZXJucyB1c2VkIHRvIGJ1aWxkIHRoaXMgZ2VuZXJhdG9yLgorICAgICAqIAorICAgICAqIEBwYXJhbSBvdXRwdXQKKyAgICAgKiAgICAgICAgICAgIHN0b3JlcyB0aGUgcmVkdW5kYW50IHBhdHRlcm5zIHRoYXQgYXJlIHJlbW92ZWQuIFRvIGdldCB0aGVzZQorICAgICAqICAgICAgICAgICAgaW4gaW50ZXJuYWwgb3JkZXIsIHN1cHBseSBhIExpbmtlZEhhc2hTZXQuIElmIG51bGwsIGEKKyAgICAgKiAgICAgICAgICAgIGNvbGxlY3Rpb24gaXMgYWxsb2NhdGVkLgorICAgICAqIEByZXR1cm4gdGhlIGNvbGxlY3Rpb24gd2l0aCBhZGRlZCBlbGVtZW50cy4KKyAgICAgKiBAZGVwcmVjYXRlZAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDb2xsZWN0aW9uIGdldFJlZHVuZGFudHMoQ29sbGVjdGlvbiBvdXRwdXQpIHsKKyAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7IC8vIHN5bmNocm9uaXplZCBzaW5jZSBhIGdldHRlciBtdXN0IGJlIHRocmVhZC1zYWZlCisgICAgICAgICAgICBpZiAob3V0cHV0ID09IG51bGwpIG91dHB1dCA9IG5ldyBMaW5rZWRIYXNoU2V0KCk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2tlbGV0b24ycGF0dGVybi5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgRGF0ZVRpbWVNYXRjaGVyIGN1cnJlbnQgPSAoRGF0ZVRpbWVNYXRjaGVyKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAoU3RyaW5nKSBza2VsZXRvbjJwYXR0ZXJuLmdldChjdXJyZW50KTsKKyAgICAgICAgICAgICAgICBpZiAoQ0FOT05JQ0FMX1NFVC5jb250YWlucyhwYXR0ZXJuKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgc2tpcE1hdGNoZXIgPSBjdXJyZW50OworICAgICAgICAgICAgICAgIFN0cmluZyB0cmlhbCA9IGdldEJlc3RQYXR0ZXJuKGN1cnJlbnQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRyaWFsLmVxdWFscyhwYXR0ZXJuKSkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQuYWRkKHBhdHRlcm4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmYWxzZSkgeyAvLyBvcmRlcmVkCisgICAgICAgICAgICAgICAgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIHJlc3VsdHMgPSBuZXcgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgUGF0dGVybkluZm8gcGluZm8gPSBuZXcgUGF0dGVybkluZm8oKTsKKyAgICAgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2tlbGV0b24ycGF0dGVybi5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lTWF0Y2hlciBjdXJyZW50ID0gKERhdGVUaW1lTWF0Y2hlcikgaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IChTdHJpbmcpIHNrZWxldG9uMnBhdHRlcm4uZ2V0KGN1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoQ0FOT05JQ0FMX1NFVC5jb250YWlucyhwYXR0ZXJuKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIC8vc2tpcE1hdGNoZXIgPSBjdXJyZW50OworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdHJpYWwgPSByZXN1bHRzLmdldEJlc3RQYXR0ZXJuKGN1cnJlbnQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cmlhbC5lcXVhbHMocGF0dGVybikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5hZGQocGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLmFkZChwYXR0ZXJuLCBmYWxzZSwgcGluZm8pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBGaWVsZCBudW1iZXJzLCB1c2VkIGZvciBBcHBlbmRJdGVtIGZ1bmN0aW9ucworICAgIAorICAgIC8qKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IEVSQSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBZRUFSID0gMTsgCisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBRVUFSVEVSID0gMjsgCisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBNT05USCA9IDM7CisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBXRUVLX09GX1lFQVIgPSA0OyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IFdFRUtfT0ZfTU9OVEggPSA1OyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IFdFRUtEQVkgPSA2OyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IERBWSA9IDc7CisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBEQVlfT0ZfWUVBUiA9IDg7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgREFZX09GX1dFRUtfSU5fTU9OVEggPSA5OyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IERBWVBFUklPRCA9IDEwOworICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgSE9VUiA9IDExOyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IE1JTlVURSA9IDEyOyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IFNFQ09ORCA9IDEzOyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IEZSQUNUSU9OQUxfU0VDT05EID0gMTQ7CisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBaT05FID0gMTU7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgVFlQRV9MSU1JVCA9IDE2OworICAgIAorICAgIC8qKgorICAgICAqIEFuIEFwcGVuZEl0ZW0gZm9ybWF0IGlzIGEgcGF0dGVybiB1c2VkIHRvIGFwcGVuZCBhIGZpZWxkIGlmIHRoZXJlIGlzIG5vCisgICAgICogZ29vZCBtYXRjaC4gRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhhdCB0aGUgaW5wdXQgc2tlbGV0b24gaXMgIkd5eXl5TU1NZCIsCisgICAgICogYW5kIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHBhdHRlcm4gaW50ZXJuYWxseSwgYnV0IHRoZXJlIGlzIGEgcGF0dGVybgorICAgICAqIG1hdGNoaW5nICJ5eXl5TU1NZCIsIHNheSAiZC1NTS15eXl5Ii4gVGhlbiB0aGF0IHBhdHRlcm4gaXMgdXNlZCwgcGx1cyB0aGUKKyAgICAgKiBHLiBUaGUgd2F5IHRoZXNlIHR3byBhcmUgY29uam9pbmVkIGlzIGJ5IHVzaW5nIHRoZSBBcHBlbmRJdGVtRm9ybWF0IGZvciBHCisgICAgICogKGVyYSkuIFNvIGlmIHRoYXQgdmFsdWUgaXMsIHNheSAiezB9LCB7MX0iIHRoZW4gdGhlIGZpbmFsIHJlc3VsdGluZworICAgICAqIHBhdHRlcm4gaXMgImQtTU0teXl5eSwgRyIuCisgICAgICogPHA+CisgICAgICogVGhlcmUgYXJlIGFjdHVhbGx5IHRocmVlIGF2YWlsYWJsZSB2YXJpYWJsZXM6IHswfSBpcyB0aGUgcGF0dGVybiBzbyBmYXIsCisgICAgICogezF9IGlzIHRoZSBlbGVtZW50IHdlIGFyZSBhZGRpbmcsIGFuZCB7Mn0gaXMgdGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQuCisgICAgICogPHA+CisgICAgICogVGhpcyByZWZsZWN0cyB0aGUgd2F5IHRoYXQgdGhlIENMRFIgZGF0YSBpcyBvcmdhbml6ZWQuCisgICAgICogCisgICAgICogQHBhcmFtIGZpZWxkCisgICAgICogICAgICAgICAgICBzdWNoIGFzIEVSQQorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqICAgICAgICAgICAgcGF0dGVybiwgc3VjaCBhcyAiezB9LCB7MX0iCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBcHBlbmRJdGVtRm9ybWF0cyhpbnQgZmllbGQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBhcHBlbmRJdGVtRm9ybWF0c1tmaWVsZF0gPSB2YWx1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGVyIGNvcnJlc3BvbmRpbmcgdG8gc2V0QXBwZW5kSXRlbUZvcm1hdHMuIFZhbHVlcyBiZWxvdyAwIG9yIGF0IG9yCisgICAgICogYWJvdmUgVFlQRV9MSU1JVCBhcmUgaWxsZWdhbCBhcmd1bWVudHMuCisgICAgICogCisgICAgICogQHBhcmFtIGZpZWxkCisgICAgICogQHJldHVybiBhcHBlbmQgcGF0dGVybiBmb3IgZmllbGQKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXBwZW5kSXRlbUZvcm1hdHMoaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBhcHBlbmRJdGVtRm9ybWF0c1tmaWVsZF07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIG5hbWVzIG9mIGZpZWxkcywgZWcgImVyYSIgaW4gRW5nbGlzaCBmb3IgRVJBLiBUaGVzZSBhcmUgb25seQorICAgICAqIHVzZWQgaWYgdGhlIGNvcnJlc3BvbmRpbmcgQXBwZW5kSXRlbUZvcm1hdCBpcyB1c2VkLCBhbmQgaWYgaXQgY29udGFpbnMgYQorICAgICAqIHsyfSB2YXJpYWJsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIHJlZmxlY3RzIHRoZSB3YXkgdGhhdCB0aGUgQ0xEUiBkYXRhIGlzIG9yZ2FuaXplZC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZmllbGQKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFwcGVuZEl0ZW1OYW1lcyhpbnQgZmllbGQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBhcHBlbmRJdGVtTmFtZXNbZmllbGRdID0gdmFsdWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHRlciBjb3JyZXNwb25kaW5nIHRvIHNldEFwcGVuZEl0ZW1OYW1lcy4gVmFsdWVzIGJlbG93IDAgb3IgYXQgb3IgYWJvdmUKKyAgICAgKiBUWVBFX0xJTUlUIGFyZSBpbGxlZ2FsIGFyZ3VtZW50cy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZmllbGQKKyAgICAgKiBAcmV0dXJuIG5hbWUgZm9yIGZpZWxkCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEFwcGVuZEl0ZW1OYW1lcyhpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZEl0ZW1OYW1lc1tmaWVsZF07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciBhIHNrZWxldG9uIGNvbnRhaW5zIGEgc2luZ2xlIGZpZWxkCisgICAgICogCisgICAgICogQHBhcmFtIHNrZWxldG9uCisgICAgICogQHJldHVybiB0cnVlIG9yIG5vdAorICAgICAqIEBkZXByZWNhdGVkCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU2luZ2xlRmllbGQoU3RyaW5nIHNrZWxldG9uKSB7CisgICAgICAgIGNoYXIgZmlyc3QgPSBza2VsZXRvbi5jaGFyQXQoMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2tlbGV0b24ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNrZWxldG9uLmNoYXJBdChpKSAhPSBmaXJzdCkgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBmb3IgRnJlZXphYmxlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Zyb3plbigpIHsKKyAgICAgICAgcmV0dXJuIGZyb3plbjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUgZm9yIEZyZWV6YWJsZQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBmcmVlemUoKSB7CisgICAgICAgIGZyb3plbiA9IHRydWU7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBmb3IgRnJlZXphYmxlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lQXNUaGF3ZWQoKSB7CisgICAgICAgIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvciByZXN1bHQgPSAoRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKSAodGhpcy5jbG9uZSgpKTsKKyAgICAgICAgZnJvemVuID0gZmFsc2U7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIHJlc3VsdCA9IChEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IpIChzdXBlci5jbG9uZSgpKTsKKyAgICAgICAgICAgIHJlc3VsdC5za2VsZXRvbjJwYXR0ZXJuID0gKFRyZWVNYXApIHNrZWxldG9uMnBhdHRlcm4uY2xvbmUoKTsKKyAgICAgICAgICAgIHJlc3VsdC5iYXNlUGF0dGVybl9wYXR0ZXJuID0gKFRyZWVNYXApIGJhc2VQYXR0ZXJuX3BhdHRlcm4uY2xvbmUoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRJdGVtRm9ybWF0cyA9IChTdHJpbmdbXSkgYXBwZW5kSXRlbUZvcm1hdHMuY2xvbmUoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRJdGVtTmFtZXMgPSAoU3RyaW5nW10pIGFwcGVuZEl0ZW1OYW1lcy5jbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0LmN1cnJlbnQgPSBuZXcgRGF0ZVRpbWVNYXRjaGVyKCk7CisgICAgICAgICAgICByZXN1bHQuZnAgPSBuZXcgRm9ybWF0UGFyc2VyKCk7CisgICAgICAgICAgICByZXN1bHQuX2Rpc3RhbmNlSW5mbyA9IG5ldyBEaXN0YW5jZUluZm8oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0LmZyb3plbiA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW50ZXJuYWwgRXJyb3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGNsYXNzIGZvciBGb3JtYXRQYXJzZXIuIEltbXV0YWJsZSBjbGFzcy4KKyAgICAgKiBAZGVwcmVjYXRlZAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgVmFyaWFibGVGaWVsZCB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHN0cmluZzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBhIHZhcmlhYmxlIGZpZWxkCisgICAgICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgVmFyaWFibGVGaWVsZChTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgICAgICB0aGlzLnN0cmluZyA9IHN0cmluZzsKKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogR2V0IHRoZSBpbnRlcm5hbCByZXN1bHRzCisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2xhc3MgcHJvdmlkaW5nIGRhdGUgZm9ybWF0dGluZworICAgICAqIEBkZXByZWNhdGVkCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBjbGFzcyBGb3JtYXRQYXJzZXIgeworICAgICAgICBwcml2YXRlIHRyYW5zaWVudCBQYXR0ZXJuVG9rZW5pemVyIHRva2VuaXplciA9IG5ldyBQYXR0ZXJuVG9rZW5pemVyKCkKKyAgICAgICAgLnNldFN5bnRheENoYXJhY3RlcnMobmV3IFVuaWNvZGVTZXQoIlthLXpBLVpdIikpCisgICAgICAgIC8vLnNldEVzY2FwZUNoYXJhY3RlcnMobmV3IFVuaWNvZGVTZXQoIlteXFx1MDAyMC1cXHUwMDdFXSIpKSAvLyBXQVJOSU5HOiBEYXRlRm9ybWF0IGRvZXNuJ3QgYWNjZXB0IFxcdVhYWFgKKyAgICAgICAgLnNldFVzaW5nUXVvdGUodHJ1ZSk7CisgICAgICAgIHByaXZhdGUgTGlzdCBpdGVtcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIHN0cmluZyB0byBwYXJzZQorICAgICAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEZvcm1hdFBhcnNlciBzZXQoU3RyaW5nIHN0cmluZykgeworICAgICAgICAgICAgaXRlbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChzdHJpbmcubGVuZ3RoKCkgPT0gMCkgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICB0b2tlbml6ZXIuc2V0UGF0dGVybihzdHJpbmcpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB2YXJpYWJsZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhdHVzID0gdG9rZW5pemVyLm5leHQoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFBhdHRlcm5Ub2tlbml6ZXIuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBQYXR0ZXJuVG9rZW5pemVyLlNZTlRBWCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFibGUubGVuZ3RoKCkgIT0gMCAmJiBidWZmZXIuY2hhckF0KDApICE9IHZhcmlhYmxlLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYWRkVmFyaWFibGUodmFyaWFibGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLmFwcGVuZChidWZmZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFZhcmlhYmxlKHZhcmlhYmxlKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbXMuYWRkKGJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGRWYXJpYWJsZSh2YXJpYWJsZSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFkZFZhcmlhYmxlKFN0cmluZ0J1ZmZlciB2YXJpYWJsZSkgeworICAgICAgICAgICAgaWYgKHZhcmlhYmxlLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBpdGVtcy5hZGQobmV3IFZhcmlhYmxlRmllbGQodmFyaWFibGUudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgICAgIHZhcmlhYmxlLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqIFJldHVybiBhIGNvbGxlY3Rpb24gb2YgZmllbGRzLiBUaGVzZSB3aWxsIGJlIGEgbWl4dHVyZSBvZiBTdHJpbmdzIGFuZCBWYXJpYWJsZUZpZWxkcy4gQW55ICJhIiB2YXJpYWJsZSBmaWVsZCBpcyByZW1vdmVkLgorICAgICAgICAgKiBAcGFyYW0gb3V0cHV0IExpc3QgdG8gYXBwZW5kIHRoZSBpdGVtcyB0by4gSWYgbnVsbCwgaXMgYWxsb2NhdGVkIGFzIGFuIEFycmF5TGlzdC4KKyAgICAgICAgICogQHJldHVybiBsaXN0CisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIExpc3QgZ2V0VmFyaWFibGVGaWVsZHMoTGlzdCBvdXRwdXQpIHsKKyAgICAgICAgICAgIGlmIChvdXRwdXQgPT0gbnVsbCkgb3V0cHV0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgbWFpbjoKKyAgICAgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gaXRlbXMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgICAgICBPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBWYXJpYWJsZUZpZWxkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGl0ZW0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaChzLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9jYXNlICdRJzogY29udGludWUgbWFpbjsgLy8gSEFDSworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYSc6IGNvbnRpbnVlIG1haW47IC8vIHJlbW92ZQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LmFkZChzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKG91dHB1dCk7CisgICAgICAgICAgICByZXR1cm4gb3V0cHV0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQHJldHVybiBhIHN0cmluZyB3aGljaCBpcyBhIGNvbmNhdGVuYXRpb24gb2YgYWxsIHRoZSB2YXJpYWJsZSBmaWVsZHMKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhcmlhYmxlRmllbGRTdHJpbmcoKSB7CisgICAgICAgICAgICBMaXN0IGxpc3QgPSBnZXRWYXJpYWJsZUZpZWxkcyhudWxsKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbGlzdC5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgbW9kaWZpYWJsZSBsaXN0IHdoaWNoIGlzIGEgbWl4dHVyZSBvZiBTdHJpbmdzIGFuZCBWYXJpYWJsZUZpZWxkcywgaW4gdGhlIG9yZGVyIGZvdW5kIGR1cmluZyBwYXJzaW5nLgorICAgICAgICAgKiBAcmV0dXJuIG1vZGlmaWFibGUgbGlzdCBvZiBpdGVtcy4KKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTGlzdCBnZXRJdGVtcygpIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVtczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqIFByb3ZpZGUgZGlzcGxheSBmb3JtIG9mIGZvcm1hdHRlZCBpbnB1dAorICAgICAgICAgKiBAcmV0dXJuIHByaW50YWJsZSBvdXRwdXQgc3RyaW5nCisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiB0b1N0cmluZygwLCBpdGVtcy5zaXplKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUHJvdmlkZSBkaXNwbGF5IGZvcm0gb2YgZm9ybWF0dGVkIGlucHV0CisgICAgICAgICAqIEBwYXJhbSBzdGFydCBpdGVtIHRvIHN0YXJ0IGZyb20KKyAgICAgICAgICogQHBhcmFtIGxpbWl0IGxhc3QgaXRlbSArMQorICAgICAgICAgKiBAcmV0dXJuIHByaW50YWJsZSBvdXRwdXQgc3RyaW5nCisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8IGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGl0ZW1zLmdldChpKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIG1ldGhvZCA8cD4KKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIGl0IGhhcyBhIG1peHR1cmUgb2YgZGF0ZSBhbmQgdGltZSBmaWVsZHMKKyAgICAgICAgICogQHJldHVybiB0cnVlIG9yIGZhbHNlCisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzRGF0ZUFuZFRpbWVGaWVsZHMoKSB7CisgICAgICAgICAgICBpbnQgZm91bmRNYXNrID0gMDsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVtcy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBWYXJpYWJsZUZpZWxkKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB0eXBlID0gZ2V0VHlwZShpdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgZm91bmRNYXNrIHw9IDEgPDwgdHlwZTsgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbGVhbiBpc0RhdGUgPSAoZm91bmRNYXNrICYgREFURV9NQVNLKSAhPSAwOworICAgICAgICAgICAgYm9vbGVhbiBpc1RpbWUgPSAoZm91bmRNYXNrICYgVElNRV9NQVNLKSAhPSAwOworICAgICAgICAgICAgcmV0dXJuIGlzRGF0ZSAmJiBpc1RpbWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnRlcm5hbCByb3V0aW5lCisgICAgICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAgICAgKiBAcGFyYW0gcmVzdWx0CisgICAgICAgICAqIEByZXR1cm4gbGlzdAorICAgICAgICAgKiBAZGVwcmVjYXRlZAorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBMaXN0IGdldEF1dG9QYXR0ZXJucyhTdHJpbmcgdmFsdWUsIExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgIGludCBmaWVsZENvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBtaW5GaWVsZCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgaW50IG1heEZpZWxkID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gaXRlbXMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgVmFyaWFibGVGaWVsZCkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUgPSBnZXRUeXBlKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbkZpZWxkID4gdHlwZSkgbWluRmllbGQgPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heEZpZWxkIDwgdHlwZSkgbWF4RmllbGQgPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gWk9ORSB8fCB0eXBlID09IERBWVBFUklPRCB8fCB0eXBlID09IFdFRUtEQVkpIHJldHVybiByZXN1bHQ7IC8vIHNraXAgYW55dGhpbmcgd2l0aCB6b25lcyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyAvLyBpZiB0aGVyZSBhcmUgYW55IGZ1bm55IGZpZWxkcywgcmV0dXJuCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmllbGRDb3VudCA8IDMpIHJldHVybiByZXN1bHQ7IC8vIHNraXAKKyAgICAgICAgICAgIC8vIHRyaW0gZnJvbSBzdGFydAorICAgICAgICAgICAgLy8gdHJpbSBmaXJzdCBmaWVsZCBJRiB0aGVyZSBhcmUgbm8gbGV0dGVycyBhcm91bmQgaXQKKyAgICAgICAgICAgIC8vIGFuZCBpdCBpcyBlaXRoZXIgdGhlIG1pbiBvciB0aGUgbWF4IGZpZWxkCisgICAgICAgICAgICAvLyBmaXJzdCBmaWVsZCBpcyBlaXRoZXIgMCBvciAxCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdGVtcy5nZXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBWYXJpYWJsZUZpZWxkKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB0eXBlID0gZ2V0VHlwZShpdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgIT0gbWluRmllbGQgJiYgdHlwZSAhPSBtYXhGaWVsZCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBwcmV2aW91c0l0ZW0gPSBpdGVtcy5nZXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxwaGEuY29udGFpbnNTb21lKHByZXZpb3VzSXRlbS50b1N0cmluZygpKSkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gaSsxOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPCBpdGVtcy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBuZXh0SXRlbSA9IGl0ZW1zLmdldChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dEl0ZW0gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxwaGEuY29udGFpbnNTb21lKG5leHRJdGVtLnRvU3RyaW5nKCkpKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCsrOyAvLyBvdGhlcndpc2Ugc2tpcCBvdmVyIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQodG9TdHJpbmcoc3RhcnQsIGl0ZW1zLnNpemUoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBub3cgdHJpbSBmcm9tIGVuZAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IGl0ZW1zLnNpemUoKS0xOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXRlbXMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgVmFyaWFibGVGaWVsZCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IGdldFR5cGUoaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlICE9IG1pbkZpZWxkICYmIHR5cGUgIT0gbWF4RmllbGQpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBpZiAoaSA8IGl0ZW1zLnNpemUoKSAtIDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBwcmV2aW91c0l0ZW0gPSBpdGVtcy5nZXQoaXRlbXMuc2l6ZSgpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxwaGEuY29udGFpbnNTb21lKHByZXZpb3VzSXRlbS50b1N0cmluZygpKSkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IGktMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVuZCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBuZXh0SXRlbSA9IGl0ZW1zLmdldChlbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRJdGVtIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFscGhhLmNvbnRhaW5zU29tZShuZXh0SXRlbS50b1N0cmluZygpKSkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kLS07IC8vIG90aGVyd2lzZSBza2lwIG92ZXIgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh0b1N0cmluZygwLCBlbmQrMSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgYWxwaGEgPSBuZXcgVW5pY29kZVNldCgiWzphbHBoYWJldGljOl0iKTsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50IGdldFR5cGUoT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gaXRlbS50b1N0cmluZygpOworICAgICAgICAgICAgaW50IGNhbm9uaWNhbEluZGV4ID0gZ2V0Q2Fub25pY2FsSW5kZXgocyk7CisgICAgICAgICAgICBpZiAoY2Fub25pY2FsSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBmaWVsZDpcdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgdHlwZSA9IHR5cGVzW2Nhbm9uaWNhbEluZGV4XVsxXTsKKyAgICAgICAgICAgIHJldHVybiB0eXBlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogIHByb2R1Y2UgYSBxdW90ZWQgbGl0ZXJhbAorICAgICAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICAgICAqIEByZXR1cm4gc3RyaW5nIHdpdGggcXVvdGVkIGxpdGVyYWxzCisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE9iamVjdCBxdW90ZUxpdGVyYWwoU3RyaW5nIHN0cmluZykgeworICAgICAgICAgICAgcmV0dXJuIHRva2VuaXplci5xdW90ZUxpdGVyYWwoc3RyaW5nKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNpbXBsZSBjb25zdHJ1Y3Rvciwgc2luY2UgdGhpcyBpcyB0cmVhdGVkIGxpa2UgYSBzdHJ1Y3QuCisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEZvcm1hdFBhcnNlcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWIKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyA9PT09PT09PT0gUFJJVkFURVMgPT09PT09PT09PT09CisgICAgCisgICAgcHJpdmF0ZSBUcmVlTWFwIHNrZWxldG9uMnBhdHRlcm4gPSBuZXcgVHJlZU1hcCgpOyAvLyBpdGVtcyBhcmUgaW4gcHJpb3JpdHkgb3JkZXIKKyAgICBwcml2YXRlIFRyZWVNYXAgYmFzZVBhdHRlcm5fcGF0dGVybiA9IG5ldyBUcmVlTWFwKCk7IC8vIGl0ZW1zIGFyZSBpbiBwcmlvcml0eSBvcmRlcgorICAgIHByaXZhdGUgU3RyaW5nIGRlY2ltYWwgPSAiPyI7CisgICAgcHJpdmF0ZSBTdHJpbmcgZGF0ZVRpbWVGb3JtYXQgPSAiezB9IHsxfSI7CisgICAgcHJpdmF0ZSBTdHJpbmdbXSBhcHBlbmRJdGVtRm9ybWF0cyA9IG5ldyBTdHJpbmdbVFlQRV9MSU1JVF07CisgICAgcHJpdmF0ZSBTdHJpbmdbXSBhcHBlbmRJdGVtTmFtZXMgPSBuZXcgU3RyaW5nW1RZUEVfTElNSVRdOworICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUWVBFX0xJTUlUOyArK2kpIHsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW1Gb3JtYXRzW2ldID0gInswfSBcdTI1MUN7Mn06IHsxfVx1MjUyNCI7CisgICAgICAgICAgICBhcHBlbmRJdGVtTmFtZXNbaV0gPSAiRiIgKyBpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdHJhbnNpZW50IERhdGVUaW1lTWF0Y2hlciBjdXJyZW50ID0gbmV3IERhdGVUaW1lTWF0Y2hlcigpOworICAgIHByaXZhdGUgdHJhbnNpZW50IEZvcm1hdFBhcnNlciBmcCA9IG5ldyBGb3JtYXRQYXJzZXIoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBEaXN0YW5jZUluZm8gX2Rpc3RhbmNlSW5mbyA9IG5ldyBEaXN0YW5jZUluZm8oKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGlzQ29tcGxldGUgPSBmYWxzZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBEYXRlVGltZU1hdGNoZXIgc2tpcE1hdGNoZXIgPSBudWxsOyAvLyBvbmx5IHVzZWQgdGVtcG9yYXJpbHksIGZvciBpbnRlcm5hbCBwdXJwb3NlcworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gZnJvemVuID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBjaGluZXNlTW9udGhIYWNrID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OQUxfTUFTSyA9IDE8PEZSQUNUSU9OQUxfU0VDT05EOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUNPTkRfQU5EX0ZSQUNUSU9OQUxfTUFTSyA9ICgxPDxTRUNPTkQpIHwgKDE8PEZSQUNUSU9OQUxfU0VDT05EKTsKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tGcm96ZW4oKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGZyb3plbiBvYmplY3QiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBXZSBvbmx5IGdldCBjYWxsZWQgaGVyZSBpZiB3ZSBmYWlsZWQgdG8gZmluZCBhbiBleGFjdCBza2VsZXRvbi4gV2UgaGF2ZSBicm9rZW4gaXQgaW50byBkYXRlICsgdGltZSwgYW5kIGxvb2sgZm9yIHRoZSBwaWVjZXMuCisgICAgICogSWYgd2UgZmFpbCB0byBmaW5kIGEgY29tcGxldGUgc2tlbGV0b24sIHdlIGNvbXBvc2UgaW4gYSBsb29wIHVudGlsIHdlIGhhdmUgYWxsIHRoZSBmaWVsZHMuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0QmVzdEFwcGVuZGluZyhpbnQgbWlzc2luZ0ZpZWxkcykgeworICAgICAgICBTdHJpbmcgcmVzdWx0UGF0dGVybiA9IG51bGw7CisgICAgICAgIGlmIChtaXNzaW5nRmllbGRzICE9IDApIHsKKyAgICAgICAgICAgIHJlc3VsdFBhdHRlcm4gPSBnZXRCZXN0UmF3KGN1cnJlbnQsIG1pc3NpbmdGaWVsZHMsIF9kaXN0YW5jZUluZm8pOworICAgICAgICAgICAgcmVzdWx0UGF0dGVybiA9IGFkanVzdEZpZWxkVHlwZXMocmVzdWx0UGF0dGVybiwgY3VycmVudCwgZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoX2Rpc3RhbmNlSW5mby5taXNzaW5nRmllbGRNYXNrICE9IDApIHsgLy8gcHJlY29uZGl0aW9uOiBFVkVSWSBzaW5nbGUgZmllbGQgbXVzdCB3b3JrIQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgaGFjayBmb3IgU1NTLiBJZiB3ZSBhcmUgbWlzc2luZyBTU1MsIGFuZCB3ZSBoYWQgc3MgYnV0IGZvdW5kIGl0LCByZXBsYWNlIHRoZSBzIGZpZWxkIGFjY29yZGluZyB0byB0aGUgCisgICAgICAgICAgICAgICAgLy8gbnVtYmVyIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgIGlmICgoX2Rpc3RhbmNlSW5mby5taXNzaW5nRmllbGRNYXNrICYgU0VDT05EX0FORF9GUkFDVElPTkFMX01BU0spID09IEZSQUNUSU9OQUxfTUFTSworICAgICAgICAgICAgICAgICAgICAgICAgJiYgKG1pc3NpbmdGaWVsZHMgJiBTRUNPTkRfQU5EX0ZSQUNUSU9OQUxfTUFTSykgPT0gU0VDT05EX0FORF9GUkFDVElPTkFMX01BU0spIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGF0dGVybiA9IGFkanVzdEZpZWxkVHlwZXMocmVzdWx0UGF0dGVybiwgY3VycmVudCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIF9kaXN0YW5jZUluZm8ubWlzc2luZ0ZpZWxkTWFzayAmPSB+RlJBQ1RJT05BTF9NQVNLOyAvLyByZW1vdmUgYml0CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnRpbmdNYXNrID0gX2Rpc3RhbmNlSW5mby5taXNzaW5nRmllbGRNYXNrOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gZ2V0QmVzdFJhdyhjdXJyZW50LCBfZGlzdGFuY2VJbmZvLm1pc3NpbmdGaWVsZE1hc2ssIF9kaXN0YW5jZUluZm8pOworICAgICAgICAgICAgICAgIHRlbXAgPSBhZGp1c3RGaWVsZFR5cGVzKHRlbXAsIGN1cnJlbnQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpbnQgZm91bmRNYXNrID0gc3RhcnRpbmdNYXNrICYgfl9kaXN0YW5jZUluZm8ubWlzc2luZ0ZpZWxkTWFzazsKKyAgICAgICAgICAgICAgICBpbnQgdG9wRmllbGQgPSBnZXRUb3BCaXROdW1iZXIoZm91bmRNYXNrKTsKKyAgICAgICAgICAgICAgICByZXN1bHRQYXR0ZXJuID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQoZ2V0QXBwZW5kRm9ybWF0KHRvcEZpZWxkKSwgbmV3IE9iamVjdFtde3Jlc3VsdFBhdHRlcm4sIHRlbXAsIGdldEFwcGVuZE5hbWUodG9wRmllbGQpfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdFBhdHRlcm47CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGdldEFwcGVuZE5hbWUoaW50IGZvdW5kTWFzaykgeworICAgICAgICByZXR1cm4gIiciICsgYXBwZW5kSXRlbU5hbWVzW2ZvdW5kTWFza10gKyAiJyI7CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nIGdldEFwcGVuZEZvcm1hdChpbnQgZm91bmRNYXNrKSB7CisgICAgICAgIHJldHVybiBhcHBlbmRJdGVtRm9ybWF0c1tmb3VuZE1hc2tdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gY3VycmVudDIKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgYWRqdXN0U2Vjb25kcyhEYXRlVGltZU1hdGNoZXIgY3VycmVudDIpIHsKKyAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIGZvdW5kTWFzaworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRUb3BCaXROdW1iZXIoaW50IGZvdW5kTWFzaykgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlIChmb3VuZE1hc2sgIT0gMCkgeworICAgICAgICAgICAgZm91bmRNYXNrID4+Pj0gMTsKKyAgICAgICAgICAgICsraTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaS0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29tcGxldGUoKSB7CisgICAgICAgIFBhdHRlcm5JbmZvIHBhdHRlcm5JbmZvID0gbmV3IFBhdHRlcm5JbmZvKCk7CisgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5IHZhbGlkIGZpZWxkIG9jY3VycyBvbmNlLCB3aXRoIGEgImRlZmF1bHQiIGxlbmd0aAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENBTk9OSUNBTF9JVEVNUy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gKGNoYXIpdHlwZXNbaV1bMF07CisgICAgICAgICAgICBhZGQoU3RyaW5nLnZhbHVlT2YoQ0FOT05JQ0FMX0lURU1TW2ldKSwgZmFsc2UsIHBhdHRlcm5JbmZvKTsKKyAgICAgICAgfQorICAgICAgICBpc0NvbXBsZXRlID0gdHJ1ZTsKKyAgICB9CisgICAgeworICAgICAgICBjb21wbGV0ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRCZXN0UmF3KERhdGVUaW1lTWF0Y2hlciBzb3VyY2UsIGludCBpbmNsdWRlTWFzaywgRGlzdGFuY2VJbmZvIG1pc3NpbmdGaWVsZHMpIHsKKy8vICAgICAgaWYgKFNIT1dfRElTVEFOQ0UpIFN5c3RlbS5vdXQucHJpbnRsbigiU2VhcmNoaW5nIGZvcjogIiArIHNvdXJjZS5wYXR0ZXJuIAorLy8gICAgICArICIsIG1hc2s6ICIgKyBzaG93TWFzayhpbmNsdWRlTWFzaykpOworICAgICAgICBpbnQgYmVzdERpc3RhbmNlID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIFN0cmluZyBiZXN0UGF0dGVybiA9ICIiOworICAgICAgICBEaXN0YW5jZUluZm8gdGVtcEluZm8gPSBuZXcgRGlzdGFuY2VJbmZvKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBza2VsZXRvbjJwYXR0ZXJuLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIERhdGVUaW1lTWF0Y2hlciB0cmlhbCA9IChEYXRlVGltZU1hdGNoZXIpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmICh0cmlhbC5lcXVhbHMoc2tpcE1hdGNoZXIpKSBjb250aW51ZTsKKyAgICAgICAgICAgIGludCBkaXN0YW5jZSA9IHNvdXJjZS5nZXREaXN0YW5jZSh0cmlhbCwgaW5jbHVkZU1hc2ssIHRlbXBJbmZvKTsKKy8vICAgICAgICAgIGlmIChTSE9XX0RJU1RBTkNFKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0RGlzdGFuY2U6ICIgKyB0cmlhbC5wYXR0ZXJuICsgIjpcdCIgCisvLyAgICAgICAgICArIGRpc3RhbmNlICsgIixcdG1pc3NpbmcgZmllbGRzOiAiICsgdGVtcEluZm8pOworICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgYmVzdERpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgYmVzdERpc3RhbmNlID0gZGlzdGFuY2U7CisgICAgICAgICAgICAgICAgYmVzdFBhdHRlcm4gPSAoU3RyaW5nKSBza2VsZXRvbjJwYXR0ZXJuLmdldCh0cmlhbCk7CisgICAgICAgICAgICAgICAgbWlzc2luZ0ZpZWxkcy5zZXRUbyh0ZW1wSW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlID09IDApIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBiZXN0UGF0dGVybjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIGZpeEZyYWN0aW9uYWxTZWNvbmRzIFRPRE8KKyAgICAgKiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBhZGp1c3RGaWVsZFR5cGVzKFN0cmluZyBwYXR0ZXJuLCBEYXRlVGltZU1hdGNoZXIgaW5wdXRSZXF1ZXN0LCBib29sZWFuIGZpeEZyYWN0aW9uYWxTZWNvbmRzKSB7CisgICAgICAgIGZwLnNldChwYXR0ZXJuKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG5ld1BhdHRlcm4gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBmcC5nZXRJdGVtcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBuZXdQYXR0ZXJuLmFwcGVuZChmcC5xdW90ZUxpdGVyYWwoKFN0cmluZylpdGVtKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZCA9ICgoVmFyaWFibGVGaWVsZCkgaXRlbSkuc3RyaW5nOworICAgICAgICAgICAgICAgIGludCBjYW5vbmljYWxJbmRleCA9IGdldENhbm9uaWNhbEluZGV4KGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpZiAoY2Fub25pY2FsSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBkb24ndCBhZGp1c3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHR5cGUgPSB0eXBlc1tjYW5vbmljYWxJbmRleF1bMV07CisgICAgICAgICAgICAgICAgaWYgKGZpeEZyYWN0aW9uYWxTZWNvbmRzICYmIHR5cGUgPT0gU0VDT05EKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdGaWVsZCA9IGlucHV0UmVxdWVzdC5vcmlnaW5hbFtGUkFDVElPTkFMX1NFQ09ORF07CisgICAgICAgICAgICAgICAgICAgIGZpZWxkID0gZmllbGQgKyBkZWNpbWFsICsgbmV3RmllbGQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dFJlcXVlc3QudHlwZVt0eXBlXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdGaWVsZCA9IGlucHV0UmVxdWVzdC5vcmlnaW5hbFt0eXBlXTsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsbHkgd2UganVzdCByZXBsYWNlIHRoZSBmaWVsZC4gSG93ZXZlciBIT1VSIGlzIHNwZWNpYWw7IHdlIG9ubHkgY2hhbmdlIHRoZSBsZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgIT0gSE9VUikgeworICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQgPSBuZXdGaWVsZDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZC5sZW5ndGgoKSAhPSBuZXdGaWVsZC5sZW5ndGgoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBmaWVsZC5jaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG5ld0ZpZWxkLmxlbmd0aCgpOyBpID4gMDsgLS1pKSBmaWVsZCArPSBjOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld1BhdHRlcm4uYXBwZW5kKGZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvL2lmIChTSE9XX0RJU1RBTkNFKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0UmF3OiAiICsgcGF0dGVybik7CisgICAgICAgIHJldHVybiBuZXdQYXR0ZXJuLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorLy8gIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGVhdChTdHJpbmcgcywgaW50IGNvdW50KSB7CisvLyAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKy8vICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKy8vICByZXN1bHQuYXBwZW5kKHMpOworLy8gIH0KKy8vICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisvLyAgfQorICAgIAorICAgIC8qKgorICAgICAqIGludGVybmFsIHJvdXRpbmUKKyAgICAgKiBAcGFyYW0gcGF0dGVybgorICAgICAqIEByZXR1cm4gZmllbGQgdmFsdWUKKyAgICAgKiBAZGVwcmVjYXRlZAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmllbGRzKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIGZwLnNldChwYXR0ZXJuKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG5ld1BhdHRlcm4gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBmcC5nZXRJdGVtcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBuZXdQYXR0ZXJuLmFwcGVuZChmcC5xdW90ZUxpdGVyYWwoKFN0cmluZylpdGVtKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5ld1BhdHRlcm4uYXBwZW5kKCJ7IiArIGdldE5hbWUoaXRlbS50b1N0cmluZygpKSArICJ9Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ld1BhdHRlcm4udG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dNYXNrKGludCBtYXNrKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUWVBFX0xJTUlUOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgobWFzayAmICgxPDxpKSkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpICE9IDApIHJlc3VsdCArPSAiIHwgIjsKKyAgICAgICAgICAgIHJlc3VsdCArPSBGSUVMRF9OQU1FW2ldICsgIiAiOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwcml2YXRlIFN0cmluZ1tdIENMRFJfRklFTERfQVBQRU5EID0geworICAgICAgICAiRXJhIiwgIlllYXIiLCAiUXVhcnRlciIsICJNb250aCIsICJXZWVrIiwgIioiLCAiRGF5LU9mLVdlZWsiLCAKKyAgICAgICAgIkRheSIsICIqIiwgIioiLCAiKiIsIAorICAgICAgICAiSG91ciIsICJNaW51dGUiLCAiU2Vjb25kIiwgIioiLCAiVGltZXpvbmUiCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmdbXSBDTERSX0ZJRUxEX05BTUUgPSB7CisgICAgICAgICJlcmEiLCAieWVhciIsICJxdWFydGVyIiwgIm1vbnRoIiwgIndlZWsiLCAiKiIsICJ3ZWVrZGF5IiwgCisgICAgICAgICJkYXkiLCAiKiIsICIqIiwgImRheXBlcmlvZCIsIAorICAgICAgICAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIioiLCAiem9uZSIKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBwcml2YXRlIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICJFcmEiLCAiWWVhciIsICJRdWFydGVyIiwgIk1vbnRoIiwgIldlZWtfaW5fWWVhciIsICJXZWVrX2luX01vbnRoIiwgIldlZWtkYXkiLCAKKyAgICAgICAgIkRheSIsICJEYXlfT2ZfWWVhciIsICJEYXlfb2ZfV2Vla19pbl9Nb250aCIsICJEYXlwZXJpb2QiLCAKKyAgICAgICAgIkhvdXIiLCAiTWludXRlIiwgIlNlY29uZCIsICJGcmFjdGlvbmFsX1NlY29uZCIsICJab25lIgorICAgIH07CisgICAgCisgICAgCisgICAgc3RhdGljIHByaXZhdGUgU3RyaW5nW10gQ0FOT05JQ0FMX0lURU1TID0geworICAgICAgICAiRyIsICJ5IiwgIlEiLCAiTSIsICJ3IiwgIlciLCAiZSIsIAorICAgICAgICAiZCIsICJEIiwgIkYiLCAKKyAgICAgICAgIkgiLCAibSIsICJzIiwgIlMiLCAidiIKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBwcml2YXRlIFNldCBDQU5PTklDQUxfU0VUID0gbmV3IEhhc2hTZXQoQXJyYXlzLmFzTGlzdChDQU5PTklDQUxfSVRFTVMpKTsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgcHJpdmF0ZSBpbnQgCisgICAgREFURV9NQVNLID0gKDE8PERBWVBFUklPRCkgLSAxLAorICAgIFRJTUVfTUFTSyA9ICgxPDxUWVBFX0xJTUlUKSAtIDEgLSBEQVRFX01BU0s7CisgICAgCisgICAgc3RhdGljIGZpbmFsIHByaXZhdGUgaW50IC8vIG51bWJlcnMgYXJlIGNob3NlbiB0byBleHByZXNzICdkaXN0YW5jZScKKyAgICBERUxUQSA9IDB4MTAsCisgICAgTlVNRVJJQyA9IDB4MTAwLAorICAgIE5PTkUgPSAwLAorICAgIE5BUlJPVyA9IC0weDEwMCwKKyAgICBTSE9SVCA9IC0weDEwMSwKKyAgICBMT05HID0gLTB4MTAyLAorICAgIEVYVFJBX0ZJRUxEID0gICAweDEwMDAwLAorICAgIE1JU1NJTkdfRklFTEQgPSAweDEwMDA7CisgICAgCisgICAgCisgICAgc3RhdGljIHByaXZhdGUgU3RyaW5nIGdldE5hbWUoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGkgPSBnZXRDYW5vbmljYWxJbmRleChzKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBGSUVMRF9OQU1FW3R5cGVzW2ldWzFdXTsKKyAgICAgICAgaW50IHN1YnR5cGUgPSB0eXBlc1tpXVsyXTsKKyAgICAgICAgYm9vbGVhbiBzdHJpbmcgPSBzdWJ0eXBlIDwgMDsKKyAgICAgICAgaWYgKHN0cmluZykgc3VidHlwZSA9IC1zdWJ0eXBlOworICAgICAgICBpZiAoc3VidHlwZSA8IDApIG5hbWUgKz0gIjpTIjsKKyAgICAgICAgZWxzZSBuYW1lICs9ICI6TiI7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBpbnQgZ2V0Q2Fub25pY2FsSW5kZXgoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbiA9IHMubGVuZ3RoKCk7CisgICAgICAgIGludCBjaCA9IHMuY2hhckF0KDApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnRbXSByb3cgPSB0eXBlc1tpXTsKKyAgICAgICAgICAgIGlmIChyb3dbMF0gIT0gY2gpIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHJvd1szXSA+IGxlbikgY29udGludWU7CisgICAgICAgICAgICBpZiAocm93W3Jvdy5sZW5ndGgtMV0gPCBsZW4pIGNvbnRpbnVlOworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBpbnRbXVtdIHR5cGVzID0geworICAgICAgICAvLyB0aGUgb3JkZXIgaGVyZSBtYWtlcyBhIGRpZmZlcmVuY2Ugb25seSB3aGVuIHNlYXJjaGluZyBmb3Igc2luZ2xlIGZpZWxkLgorICAgICAgICAvLyBmb3JtYXQgaXM6CisgICAgICAgIC8vIHBhdHRlcm4gY2hhcmFjdGVyLCBtYWluIHR5cGUsIHdlaWdodCwgbWluIGxlbmd0aCwgd2VpZ2h0CisgICAgICAgIHsnRycsIEVSQSwgU0hPUlQsIDEsIDN9LAorICAgICAgICB7J0cnLCBFUkEsIExPTkcsIDR9LAorICAgICAgICAKKyAgICAgICAgeyd5JywgWUVBUiwgTlVNRVJJQywgMSwgMjB9LAorICAgICAgICB7J1knLCBZRUFSLCBOVU1FUklDICsgREVMVEEsIDEsIDIwfSwKKyAgICAgICAgeyd1JywgWUVBUiwgTlVNRVJJQyArIDIqREVMVEEsIDEsIDIwfSwKKyAgICAgICAgCisgICAgICAgIHsnUScsIFFVQVJURVIsIE5VTUVSSUMsIDEsIDJ9LAorICAgICAgICB7J1EnLCBRVUFSVEVSLCBTSE9SVCwgM30sCisgICAgICAgIHsnUScsIFFVQVJURVIsIExPTkcsIDR9LAorICAgICAgICAKKyAgICAgICAgeydNJywgTU9OVEgsIE5VTUVSSUMsIDEsIDJ9LAorICAgICAgICB7J00nLCBNT05USCwgU0hPUlQsIDN9LAorICAgICAgICB7J00nLCBNT05USCwgTE9ORywgNH0sCisgICAgICAgIHsnTScsIE1PTlRILCBOQVJST1csIDV9LAorICAgICAgICB7J0wnLCBNT05USCwgTlVNRVJJQyArIERFTFRBLCAxLCAyfSwKKyAgICAgICAgeydMJywgTU9OVEgsIFNIT1JUIC0gREVMVEEsIDN9LAorICAgICAgICB7J0wnLCBNT05USCwgTE9ORyAtIERFTFRBLCA0fSwKKyAgICAgICAgeydMJywgTU9OVEgsIE5BUlJPVyAtIERFTFRBLCA1fSwKKyAgICAgICAgCisgICAgICAgIHsndycsIFdFRUtfT0ZfWUVBUiwgTlVNRVJJQywgMSwgMn0sCisgICAgICAgIHsnVycsIFdFRUtfT0ZfTU9OVEgsIE5VTUVSSUMgKyBERUxUQSwgMX0sCisgICAgICAgIAorICAgICAgICB7J2UnLCBXRUVLREFZLCBOVU1FUklDICsgREVMVEEsIDEsIDJ9LAorICAgICAgICB7J2UnLCBXRUVLREFZLCBTSE9SVCAtIERFTFRBLCAzfSwKKyAgICAgICAgeydlJywgV0VFS0RBWSwgTE9ORyAtIERFTFRBLCA0fSwKKyAgICAgICAgeydlJywgV0VFS0RBWSwgTkFSUk9XIC0gREVMVEEsIDV9LAorICAgICAgICB7J0UnLCBXRUVLREFZLCBTSE9SVCwgMSwgM30sCisgICAgICAgIHsnRScsIFdFRUtEQVksIExPTkcsIDR9LAorICAgICAgICB7J0UnLCBXRUVLREFZLCBOQVJST1csIDV9LAorICAgICAgICB7J2MnLCBXRUVLREFZLCBOVU1FUklDICsgMipERUxUQSwgMSwgMn0sCisgICAgICAgIHsnYycsIFdFRUtEQVksIFNIT1JUIC0gMipERUxUQSwgM30sCisgICAgICAgIHsnYycsIFdFRUtEQVksIExPTkcgLSAyKkRFTFRBLCA0fSwKKyAgICAgICAgeydjJywgV0VFS0RBWSwgTkFSUk9XIC0gMipERUxUQSwgNX0sCisgICAgICAgIAorICAgICAgICB7J2QnLCBEQVksIE5VTUVSSUMsIDEsIDJ9LAorICAgICAgICB7J0QnLCBEQVlfT0ZfWUVBUiwgTlVNRVJJQyArIERFTFRBLCAxLCAzfSwKKyAgICAgICAgeydGJywgREFZX09GX1dFRUtfSU5fTU9OVEgsIE5VTUVSSUMgKyAyKkRFTFRBLCAxfSwKKyAgICAgICAgeydnJywgREFZLCBOVU1FUklDICsgMypERUxUQSwgMSwgMjB9LCAvLyByZWFsbHkgaW50ZXJuYWwgdXNlLCBzbyB3ZSBkb24ndCBjYXJlCisgICAgICAgIAorICAgICAgICB7J2EnLCBEQVlQRVJJT0QsIFNIT1JULCAxfSwKKyAgICAgICAgCisgICAgICAgIHsnSCcsIEhPVVIsIE5VTUVSSUMgKyAxMCpERUxUQSwgMSwgMn0sIC8vIDI0IGhvdXIKKyAgICAgICAgeydrJywgSE9VUiwgTlVNRVJJQyArIDExKkRFTFRBLCAxLCAyfSwKKyAgICAgICAgeydoJywgSE9VUiwgTlVNRVJJQywgMSwgMn0sIC8vIDEyIGhvdXIKKyAgICAgICAgeydLJywgSE9VUiwgTlVNRVJJQyArIERFTFRBLCAxLCAyfSwKKyAgICAgICAgCisgICAgICAgIHsnbScsIE1JTlVURSwgTlVNRVJJQywgMSwgMn0sCisgICAgICAgIAorICAgICAgICB7J3MnLCBTRUNPTkQsIE5VTUVSSUMsIDEsIDJ9LAorICAgICAgICB7J1MnLCBGUkFDVElPTkFMX1NFQ09ORCwgTlVNRVJJQyArIERFTFRBLCAxLCAxMDAwfSwKKyAgICAgICAgeydBJywgU0VDT05ELCBOVU1FUklDICsgMipERUxUQSwgMSwgMTAwMH0sCisgICAgICAgIAorICAgICAgICB7J3YnLCBaT05FLCBTSE9SVCAtIDIqREVMVEEsIDF9LAorICAgICAgICB7J3YnLCBaT05FLCBMT05HIC0gMipERUxUQSwgNH0sCisgICAgICAgIHsneicsIFpPTkUsIFNIT1JULCAxLCAzfSwKKyAgICAgICAgeyd6JywgWk9ORSwgTE9ORywgNH0sCisgICAgICAgIHsnWicsIFpPTkUsIFNIT1JUIC0gREVMVEEsIDEsIDN9LAorICAgICAgICB7J1onLCBaT05FLCBMT05HIC0gREVMVEEsIDR9LAorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgRGF0ZVRpbWVNYXRjaGVyIGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisgICAgICAgIC8vcHJpdmF0ZSBTdHJpbmcgcGF0dGVybiA9IG51bGw7CisgICAgICAgIHByaXZhdGUgaW50W10gdHlwZSA9IG5ldyBpbnRbVFlQRV9MSU1JVF07CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gb3JpZ2luYWwgPSBuZXcgU3RyaW5nW1RZUEVfTElNSVRdOworICAgICAgICBwcml2YXRlIFN0cmluZ1tdIGJhc2VPcmlnaW5hbCA9IG5ldyBTdHJpbmdbVFlQRV9MSU1JVF07CisgICAgICAgIAorICAgICAgICAvLyBqdXN0IGZvciB0ZXN0aW5nOyBmaXggdG8gbWFrZSBtdWx0aS10aHJlYWRlZCBsYXRlcgorICAgICAgICAvLyBwcml2YXRlIHN0YXRpYyBGb3JtYXRQYXJzZXIgZnAgPSBuZXcgRm9ybWF0UGFyc2VyKCk7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVFlQRV9MSU1JVDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKG9yaWdpbmFsW2ldLmxlbmd0aCgpICE9IDApIHJlc3VsdC5hcHBlbmQob3JpZ2luYWxbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZ2V0QmFzZVBhdHRlcm4oKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUWVBFX0xJTUlUOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoYmFzZU9yaWdpbmFsW2ldLmxlbmd0aCgpICE9IDApIHJlc3VsdC5hcHBlbmQoYmFzZU9yaWdpbmFsW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRGF0ZVRpbWVNYXRjaGVyIHNldChTdHJpbmcgcGF0dGVybiwgRm9ybWF0UGFyc2VyIGZwKSB7CisgICAgICAgICAgICBpZiAocGF0dGVybi5pbmRleE9mKCJcXHUiKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9sZFBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBmcm9tSGV4LnRyYW5zbGl0ZXJhdGUocGF0dGVybik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRZUEVfTElNSVQ7ICsraSkgeworICAgICAgICAgICAgICAgIHR5cGVbaV0gPSBOT05FOworICAgICAgICAgICAgICAgIG9yaWdpbmFsW2ldID0gIiI7CisgICAgICAgICAgICAgICAgYmFzZU9yaWdpbmFsW2ldID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmcC5zZXQocGF0dGVybik7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gZnAuZ2V0VmFyaWFibGVGaWVsZHMobmV3IEFycmF5TGlzdCgpKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZpZWxkID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jaGFyQXQoMCkgPT0gJ2EnKSBjb250aW51ZTsgLy8gc2tpcCBkYXkgcGVyaW9kLCBzcGVjaWFsIGNhc3MKKyAgICAgICAgICAgICAgICBpbnQgY2Fub25pY2FsSW5kZXggPSBnZXRDYW5vbmljYWxJbmRleChmaWVsZCk7CisgICAgICAgICAgICAgICAgaWYgKGNhbm9uaWNhbEluZGV4IDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGZpZWxkOlx0IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZmllbGQgKyAiXHQgaW4gIiArIHBhdHRlcm4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnRbXSByb3cgPSB0eXBlc1tjYW5vbmljYWxJbmRleF07CisgICAgICAgICAgICAgICAgaW50IHR5cGVWYWx1ZSA9IHJvd1sxXTsKKyAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxbdHlwZVZhbHVlXS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvbmZsaWN0aW5nIGZpZWxkczpcdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG9yaWdpbmFsW3R5cGVWYWx1ZV0gKyAiLCAiICsgZmllbGQgKyAiXHQgaW4gIiArIHBhdHRlcm4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvcmlnaW5hbFt0eXBlVmFsdWVdID0gZmllbGQ7CisgICAgICAgICAgICAgICAgY2hhciByZXBlYXRDaGFyID0gKGNoYXIpcm93WzBdOworICAgICAgICAgICAgICAgIGludCByZXBlYXRDb3VudCA9IHJvd1szXTsKKyAgICAgICAgICAgICAgICBpZiAocmVwZWF0Q291bnQgPiAzKSByZXBlYXRDb3VudCA9IDM7IC8vIGhhY2sgdG8gZGlzY2FyZCBkaWZmZXJlbmNlcworICAgICAgICAgICAgICAgIGlmICgiR0V6dlEiLmluZGV4T2YocmVwZWF0Q2hhcikgPj0gMCkgcmVwZWF0Q291bnQgPSAxOworICAgICAgICAgICAgICAgIGJhc2VPcmlnaW5hbFt0eXBlVmFsdWVdID0gVXRpbGl0eS5yZXBlYXQoU3RyaW5nLnZhbHVlT2YocmVwZWF0Q2hhcikscmVwZWF0Q291bnQpOworICAgICAgICAgICAgICAgIGludCBzdWJUeXBlVmFsdWUgPSByb3dbMl07CisgICAgICAgICAgICAgICAgaWYgKHN1YlR5cGVWYWx1ZSA+IDApIHN1YlR5cGVWYWx1ZSArPSBmaWVsZC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0eXBlW3R5cGVWYWx1ZV0gPSAoYnl0ZSkgc3ViVHlwZVZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiAKKyAgICAgICAgICovCisgICAgICAgIGludCBnZXRGaWVsZE1hc2soKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHlwZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh0eXBlW2ldICE9IDApIHJlc3VsdCB8PSAoMTw8aSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogCisgICAgICAgICAqLworICAgICAgICB2b2lkIGV4dHJhY3RGcm9tKERhdGVUaW1lTWF0Y2hlciBzb3VyY2UsIGludCBmaWVsZE1hc2spIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHlwZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICgoZmllbGRNYXNrICYgKDE8PGkpKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHR5cGVbaV0gPSBzb3VyY2UudHlwZVtpXTsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxbaV0gPSBzb3VyY2Uub3JpZ2luYWxbaV07CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZVtpXSA9IE5PTkU7CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsW2ldID0gIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgZ2V0RGlzdGFuY2UoRGF0ZVRpbWVNYXRjaGVyIG90aGVyLCBpbnQgaW5jbHVkZU1hc2ssIERpc3RhbmNlSW5mbyBkaXN0YW5jZUluZm8pIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAgICAgZGlzdGFuY2VJbmZvLmNsZWFyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHR5cGUubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgbXlUeXBlID0gKGluY2x1ZGVNYXNrICYgKDE8PGkpKSA9PSAwID8gMCA6IHR5cGVbaV07CisgICAgICAgICAgICAgICAgaW50IG90aGVyVHlwZSA9IG90aGVyLnR5cGVbaV07CisgICAgICAgICAgICAgICAgaWYgKG15VHlwZSA9PSBvdGhlclR5cGUpIGNvbnRpbnVlOyAvLyBpZGVudGljYWwgKG1heWJlIGJvdGggemVybykgYWRkIDAKKyAgICAgICAgICAgICAgICBpZiAobXlUeXBlID09IDApIHsgLy8gYW5kIG90aGVyIGlzIG5vdAorICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gRVhUUkFfRklFTEQ7CisgICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlSW5mby5hZGRFeHRyYShpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG90aGVyVHlwZSA9PSAwKSB7IC8vIGFuZCBtaW5lIGlzIG5vdAorICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gTUlTU0lOR19GSUVMRDsKKyAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2VJbmZvLmFkZE1pc3NpbmcoaSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IE1hdGguYWJzKG15VHlwZSAtIG90aGVyVHlwZSk7IC8vIHNxdWFyZSBvZiBtaXNtYXRjaAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CisgICAgICAgICAgICBEYXRlVGltZU1hdGNoZXIgdGhhdCA9IChEYXRlVGltZU1hdGNoZXIpIG87CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9yaWdpbmFsLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IGNvbXAgPSBvcmlnaW5hbFtpXS5jb21wYXJlVG8odGhhdC5vcmlnaW5hbFtpXSk7CisgICAgICAgICAgICAgICAgaWYgKGNvbXAgIT0gMCkgcmV0dXJuIC1jb21wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gICAgICAgCisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisgICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgRGF0ZVRpbWVNYXRjaGVyIHRoYXQgPSAoRGF0ZVRpbWVNYXRjaGVyKSBvdGhlcjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3JpZ2luYWwubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW9yaWdpbmFsW2ldLmVxdWFscyh0aGF0Lm9yaWdpbmFsW2ldKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3JpZ2luYWwubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgXj0gb3JpZ2luYWxbaV0uaGFzaENvZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0gICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIERpc3RhbmNlSW5mbyB7CisgICAgICAgIGludCBtaXNzaW5nRmllbGRNYXNrOworICAgICAgICBpbnQgZXh0cmFGaWVsZE1hc2s7CisgICAgICAgIHZvaWQgY2xlYXIoKSB7CisgICAgICAgICAgICBtaXNzaW5nRmllbGRNYXNrID0gZXh0cmFGaWVsZE1hc2sgPSAwOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiAKKyAgICAgICAgICovCisgICAgICAgIHZvaWQgc2V0VG8oRGlzdGFuY2VJbmZvIG90aGVyKSB7CisgICAgICAgICAgICBtaXNzaW5nRmllbGRNYXNrID0gb3RoZXIubWlzc2luZ0ZpZWxkTWFzazsKKyAgICAgICAgICAgIGV4dHJhRmllbGRNYXNrID0gb3RoZXIuZXh0cmFGaWVsZE1hc2s7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBhZGRNaXNzaW5nKGludCBmaWVsZCkgeworICAgICAgICAgICAgbWlzc2luZ0ZpZWxkTWFzayB8PSAoMTw8ZmllbGQpOworICAgICAgICB9CisgICAgICAgIHZvaWQgYWRkRXh0cmEoaW50IGZpZWxkKSB7CisgICAgICAgICAgICBleHRyYUZpZWxkTWFzayB8PSAoMTw8ZmllbGQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gIm1pc3NpbmdGaWVsZE1hc2s6ICIgKyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3Iuc2hvd01hc2sobWlzc2luZ0ZpZWxkTWFzaykKKyAgICAgICAgICAgICsgIiwgZXh0cmFGaWVsZE1hc2s6ICIgKyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3Iuc2hvd01hc2soZXh0cmFGaWVsZE1hc2spOworICAgICAgICB9CisgICAgfQorfQorLy8jZW5kaWYKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTM4ZGYwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YQpAQCAtMCwwICsxLDQ5MTIgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZFN0cmluZzsKK2ltcG9ydCBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5QW1vdW50OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBpcyBhIGNvbmNyZXRlIHN1YmNsYXNzIG9mCisgKiB7QGxpbmsgTnVtYmVyRm9ybWF0fSB0aGF0IGZvcm1hdHMgZGVjaW1hbCBudW1iZXJzLiBJdCBoYXMgYSB2YXJpZXR5IG9mCisgKiBmZWF0dXJlcyBkZXNpZ25lZCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHBhcnNlIGFuZCBmb3JtYXQgbnVtYmVycyBpbiBhbnkKKyAqIGxvY2FsZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIFdlc3Rlcm4sIEFyYWJpYywgb3IgSW5kaWMgZGlnaXRzLiAgSXQgYWxzbworICogc3VwcG9ydHMgZGlmZmVyZW50IGZsYXZvcnMgb2YgbnVtYmVycywgaW5jbHVkaW5nIGludGVnZXJzICgiMTIzIiksCisgKiBmaXhlZC1wb2ludCBudW1iZXJzICgiMTIzLjQiKSwgc2NpZW50aWZpYyBub3RhdGlvbiAoIjEuMjNFNCIpLCBwZXJjZW50YWdlcworICogKCIxMiUiKSwgYW5kIGN1cnJlbmN5IGFtb3VudHMgKCIkMTIzIikuICBBbGwgb2YgdGhlc2UgZmxhdm9ycyBjYW4gYmUgZWFzaWx5CisgKiBsb2NhbGl6ZWQuCisgKgorICogPHA+PHN0cm9uZz5UaGlzIGlzIGFuIGVuaGFuY2VkIHZlcnNpb24gb2YgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gdGhhdAorICogaXMgYmFzZWQgb24gdGhlIHN0YW5kYXJkIHZlcnNpb24gaW4gdGhlIEpESy4gIE5ldyBvciBjaGFuZ2VkIGZ1bmN0aW9uYWxpdHkKKyAqIGlzIGxhYmVsZWQKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4gb3IKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+Ljwvc3Ryb25nPgorICoKKyAqIDxwPlRvIG9idGFpbiBhIHtAbGluayBOdW1iZXJGb3JtYXR9IGZvciBhIHNwZWNpZmljIGxvY2FsZSAoaW5jbHVkaW5nIHRoZQorICogZGVmYXVsdCBsb2NhbGUpIGNhbGwgb25lIG9mIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMgc3VjaAorICogYXMge0BsaW5rIE51bWJlckZvcm1hdCNnZXRJbnN0YW5jZX0uIERvIG5vdCBjYWxsIHRoZSA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPgorICogY29uc3RydWN0b3JzIGRpcmVjdGx5LCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLCBzaW5jZSB0aGUKKyAqIHtAbGluayBOdW1iZXJGb3JtYXR9IGZhY3RvcnkgbWV0aG9kcyBtYXkgcmV0dXJuIHN1YmNsYXNzZXMgb3RoZXIgdGhhbgorICogPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4uIElmIHlvdSBuZWVkIHRvIGN1c3RvbWl6ZSB0aGUgZm9ybWF0IG9iamVjdCwgZG8KKyAqIHNvbWV0aGluZyBsaWtlIHRoaXM6CisgKgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIE51bWJlckZvcm1hdCBmID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvYyk7CisgKiBpZiAoZiBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAqICAgICAoKERlY2ltYWxGb3JtYXQpIGYpLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAqIH08L3ByZT48L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PHN0cm9uZz5FeGFtcGxlIFVzYWdlPC9zdHJvbmc+CisgKgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIDxzdHJvbmc+Ly8gUHJpbnQgb3V0IGEgbnVtYmVyIHVzaW5nIHRoZSBsb2NhbGl6ZWQgbnVtYmVyLCBjdXJyZW5jeSwKKyAqIC8vIGFuZCBwZXJjZW50IGZvcm1hdCBmb3IgZWFjaCBsb2NhbGU8L3N0cm9uZz4KKyAqIExvY2FsZVtdIGxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICogZG91YmxlIG15TnVtYmVyID0gLTEyMzQuNTY7CisgKiBOdW1iZXJGb3JtYXQgZm9ybWF0OworICogZm9yIChpbnQgaj0wOyBqPDM7ICsraikgeworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRk9STUFUIik7CisgKiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgKiAgICAgICAgIGlmIChsb2NhbGVzW2ldLmdldENvdW50cnkoKS5sZW5ndGgoKSA9PSAwKSB7CisgKiAgICAgICAgICAgIC8vIFNraXAgbGFuZ3VhZ2Utb25seSBsb2NhbGVzCisgKiAgICAgICAgICAgIGNvbnRpbnVlOworICogICAgICAgICB9CisgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQobG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAqICAgICAgICAgc3dpdGNoIChqKSB7CisgKiAgICAgICAgIGNhc2UgMDoKKyAqICAgICAgICAgICAgIGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIGNhc2UgMToKKyAqICAgICAgICAgICAgIGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZXNbaV0pOyBicmVhazsKKyAqICAgICAgICAgZGVmYXVsdDoKKyAqICAgICAgICAgICAgIGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobG9jYWxlc1tpXSk7IGJyZWFrOworICogICAgICAgICB9CisgKiAgICAgICAgIHRyeSB7CisgKiAgICAgICAgICAgICAvLyBBc3N1bWUgZm9ybWF0IGlzIGEgRGVjaW1hbEZvcm1hdAorICogICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiAiICsgKChEZWNpbWFsRm9ybWF0KSBmb3JtYXQpLnRvUGF0dGVybigpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAtPiAiICsgZm9ybS5mb3JtYXQobXlOdW1iZXIpKTsKKyAqICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgKiAgICAgICAgIHRyeSB7CisgKiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAtPiAiICsgZm9ybWF0LnBhcnNlKGZvcm0uZm9ybWF0KG15TnVtYmVyKSkpOworICogICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7fQorICogICAgIH0KKyAqIH08L3ByZT48L2Jsb2NrcXVvdGU+CisgKgorICogPGg0PlBhdHRlcm5zPC9oND4KKyAqCisgKiA8cD5BIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNvbnNpc3RzIG9mIGEgPGVtPnBhdHRlcm48L2VtPiBhbmQgYSBzZXQgb2YKKyAqIDxlbT5zeW1ib2xzPC9lbT4uICBUaGUgcGF0dGVybiBtYXkgYmUgc2V0IGRpcmVjdGx5IHVzaW5nCisgKiB7QGxpbmsgI2FwcGx5UGF0dGVybn0sIG9yIGluZGlyZWN0bHkgdXNpbmcgb3RoZXIgQVBJIG1ldGhvZHMgd2hpY2gKKyAqIG1hbmlwdWxhdGUgYXNwZWN0cyBvZiB0aGUgcGF0dGVybiwgc3VjaCBhcyB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlcgorICogZGlnaXRzLiAgVGhlIHN5bWJvbHMgYXJlIHN0b3JlZCBpbiBhIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30KKyAqIG9iamVjdC4gIFdoZW4gdXNpbmcgdGhlIHtAbGluayBOdW1iZXJGb3JtYXR9IGZhY3RvcnkgbWV0aG9kcywgdGhlCisgKiBwYXR0ZXJuIGFuZCBzeW1ib2xzIGFyZSByZWFkIGZyb20gSUNVJ3MgbG9jYWxlIGRhdGEuCisgKiAKKyAqIDxoND5TcGVjaWFsIFBhdHRlcm4gQ2hhcmFjdGVyczwvaDQ+CisgKgorICogPHA+TWFueSBjaGFyYWN0ZXJzIGluIGEgcGF0dGVybiBhcmUgdGFrZW4gbGl0ZXJhbGx5OyB0aGV5IGFyZSBtYXRjaGVkIGR1cmluZworICogcGFyc2luZyBhbmQgb3V0cHV0IHVuY2hhbmdlZCBkdXJpbmcgZm9ybWF0dGluZy4gIFNwZWNpYWwgY2hhcmFjdGVycywgb24gdGhlCisgKiBvdGhlciBoYW5kLCBzdGFuZCBmb3Igb3RoZXIgY2hhcmFjdGVycywgc3RyaW5ncywgb3IgY2xhc3NlcyBvZiBjaGFyYWN0ZXJzLgorICogRm9yIGV4YW1wbGUsIHRoZSAnIycgY2hhcmFjdGVyIGlzIHJlcGxhY2VkIGJ5IGEgbG9jYWxpemVkIGRpZ2l0LiAgT2Z0ZW4gdGhlCisgKiByZXBsYWNlbWVudCBjaGFyYWN0ZXIgaXMgdGhlIHNhbWUgYXMgdGhlIHBhdHRlcm4gY2hhcmFjdGVyOyBpbiB0aGUgVS5TLiBsb2NhbGUsCisgKiB0aGUgJywnIGdyb3VwaW5nIGNoYXJhY3RlciBpcyByZXBsYWNlZCBieSAnLCcuICBIb3dldmVyLCB0aGUgcmVwbGFjZW1lbnQgaXMKKyAqIHN0aWxsIGhhcHBlbmluZywgYW5kIGlmIHRoZSBzeW1ib2xzIGFyZSBtb2RpZmllZCwgdGhlIGdyb3VwaW5nIGNoYXJhY3RlcgorICogY2hhbmdlcy4gIFNvbWUgc3BlY2lhbCBjaGFyYWN0ZXJzIGFmZmVjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIGZvcm1hdHRlciBieQorICogdGhlaXIgcHJlc2VuY2U7IGZvciBleGFtcGxlLCBpZiB0aGUgcGVyY2VudCBjaGFyYWN0ZXIgaXMgc2VlbiwgdGhlbiB0aGUKKyAqIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgMTAwIGJlZm9yZSBiZWluZyBkaXNwbGF5ZWQuCisgKgorICogPHA+VG8gaW5zZXJ0IGEgc3BlY2lhbCBjaGFyYWN0ZXIgaW4gYSBwYXR0ZXJuIGFzIGEgbGl0ZXJhbCwgdGhhdCBpcywgd2l0aG91dAorICogYW55IHNwZWNpYWwgbWVhbmluZywgdGhlIGNoYXJhY3RlciBtdXN0IGJlIHF1b3RlZC4gIFRoZXJlIGFyZSBzb21lIGV4Y2VwdGlvbnMgdG8KKyAqIHRoaXMgd2hpY2ggYXJlIG5vdGVkIGJlbG93LgorICoKKyAqIDxwPlRoZSBjaGFyYWN0ZXJzIGxpc3RlZCBoZXJlIGFyZSB1c2VkIGluIG5vbi1sb2NhbGl6ZWQgcGF0dGVybnMuICBMb2NhbGl6ZWQKKyAqIHBhdHRlcm5zIHVzZSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIHRha2VuIGZyb20gdGhpcyBmb3JtYXR0ZXIncworICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfSBvYmplY3QgaW5zdGVhZCwgYW5kIHRoZXNlIGNoYXJhY3RlcnMgbG9zZQorICogdGhlaXIgc3BlY2lhbCBzdGF0dXMuICBUd28gZXhjZXB0aW9ucyBhcmUgdGhlIGN1cnJlbmN5IHNpZ24gYW5kIHF1b3RlLCB3aGljaAorICogYXJlIG5vdCBsb2NhbGl6ZWQuCisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MyBjZWxscGFkZGluZz0wIHN1bW1hcnk9IkNoYXJ0IHNob3dpbmcgc3ltYm9sLAorICogIGxvY2F0aW9uLCBsb2NhbGl6ZWQsIGFuZCBtZWFuaW5nLiI+CisgKiAgIDx0ciBiZ2NvbG9yPSIjY2NjY2ZmIj4KKyAqICAgICA8dGggYWxpZ249bGVmdD5TeW1ib2wKKyAqICAgICA8dGggYWxpZ249bGVmdD5Mb2NhdGlvbgorICogICAgIDx0aCBhbGlnbj1sZWZ0PkxvY2FsaXplZD8KKyAqICAgICA8dGggYWxpZ249bGVmdD5NZWFuaW5nCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4wPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkRpZ2l0CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4xLTk8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICAnMScgdGhyb3VnaCAnOScgaW5kaWNhdGUgcm91bmRpbmcuCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5APC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+Tm8KKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICBTaWduaWZpY2FudCBkaWdpdAorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+IzwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5EaWdpdCwgemVybyBzaG93cyBhcyBhYnNlbnQKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPi48L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+RGVjaW1hbCBzZXBhcmF0b3Igb3IgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPi08L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+TWludXMgc2lnbgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+LDwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5Hcm91cGluZyBzZXBhcmF0b3IKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkU8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+U2VwYXJhdGVzIG1hbnRpc3NhIGFuZCBleHBvbmVudCBpbiBzY2llbnRpZmljIG5vdGF0aW9uLgorICogICAgICAgICA8ZW0+TmVlZCBub3QgYmUgcXVvdGVkIGluIHByZWZpeCBvciBzdWZmaXguPC9lbT4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPis8L2NvZGU+CisgKiAgICAgPHRkPkV4cG9uZW50CisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgIFByZWZpeCBwb3NpdGl2ZSBleHBvbmVudHMgd2l0aCBsb2NhbGl6ZWQgcGx1cyBzaWduLgorICogICAgICAgICA8ZW0+TmVlZCBub3QgYmUgcXVvdGVkIGluIHByZWZpeCBvciBzdWZmaXguPC9lbT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPjs8L2NvZGU+CisgKiAgICAgPHRkPlN1YnBhdHRlcm4gYm91bmRhcnkKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPlNlcGFyYXRlcyBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPiU8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPk11bHRpcGx5IGJ5IDEwMCBhbmQgc2hvdyBhcyBwZXJjZW50YWdlCisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4mIzkyO3UyMDMwPC9jb2RlPgorICogICAgIDx0ZD5QcmVmaXggb3Igc3VmZml4CisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5NdWx0aXBseSBieSAxMDAwIGFuZCBzaG93IGFzIHBlciBtaWxsZQorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+JiMxNjQ7PC9jb2RlPiAoPGNvZGU+JiM5Mjt1MDBBNDwvY29kZT4pCisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+Tm8KKyAqICAgICA8dGQ+Q3VycmVuY3kgc2lnbiwgcmVwbGFjZWQgYnkgY3VycmVuY3kgc3ltYm9sLiAgSWYKKyAqICAgICAgICAgZG91YmxlZCwgcmVwbGFjZWQgYnkgaW50ZXJuYXRpb25hbCBjdXJyZW5jeSBzeW1ib2wuCisgKiAgICAgICAgIElmIHByZXNlbnQgaW4gYSBwYXR0ZXJuLCB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IKKyAqICAgICAgICAgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvci4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPic8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+Tm8KKyAqICAgICA8dGQ+VXNlZCB0byBxdW90ZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYSBwcmVmaXggb3Igc3VmZml4LAorICogICAgICAgICBmb3IgZXhhbXBsZSwgPGNvZGU+IicjJyMiPC9jb2RlPiBmb3JtYXRzIDEyMyB0bworICogICAgICAgICA8Y29kZT4iIzEyMyI8L2NvZGU+LiAgVG8gY3JlYXRlIGEgc2luZ2xlIHF1b3RlCisgKiAgICAgICAgIGl0c2VsZiwgdXNlIHR3byBpbiBhIHJvdzogPGNvZGU+IiMgbycnY2xvY2siPC9jb2RlPi4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPio8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXggYm91bmRhcnkKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPjxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqICAgICAgICAgUGFkIGVzY2FwZSwgcHJlY2VkZXMgcGFkIGNoYXJhY3RlcgorICogPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5BIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHBhdHRlcm4gY29udGFpbnMgYSBwb3N0aXZlIGFuZCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgZm9yIGV4YW1wbGUsICIjLCMjMC4wMDsoIywjIzAuMDApIi4gIEVhY2ggc3VicGF0dGVybiBoYXMgYQorICogcHJlZml4LCBhIG51bWVyaWMgcGFydCwgYW5kIGEgc3VmZml4LiAgSWYgdGhlcmUgaXMgbm8gZXhwbGljaXQgbmVnYXRpdmUKKyAqIHN1YnBhdHRlcm4sIHRoZSBuZWdhdGl2ZSBzdWJwYXR0ZXJuIGlzIHRoZSBsb2NhbGl6ZWQgbWludXMgc2lnbiBwcmVmaXhlZCB0byB0aGUKKyAqIHBvc2l0aXZlIHN1YnBhdHRlcm4uIFRoYXQgaXMsICIwLjAwIiBhbG9uZSBpcyBlcXVpdmFsZW50IHRvICIwLjAwOy0wLjAwIi4gIElmIHRoZXJlCisgKiBpcyBhbiBleHBsaWNpdCBuZWdhdGl2ZSBzdWJwYXR0ZXJuLCBpdCBzZXJ2ZXMgb25seSB0byBzcGVjaWZ5IHRoZSBuZWdhdGl2ZQorICogcHJlZml4IGFuZCBzdWZmaXg7IHRoZSBudW1iZXIgb2YgZGlnaXRzLCBtaW5pbWFsIGRpZ2l0cywgYW5kIG90aGVyCisgKiBjaGFyYWN0ZXJpc3RpY3MgYXJlIGlnbm9yZWQgaW4gdGhlIG5lZ2F0aXZlIHN1YnBhdHRlcm4uIFRoYXQgbWVhbnMgdGhhdAorICogIiMsIyMwLjAjOygjKSIgaGFzIHByZWNpc2VseSB0aGUgc2FtZSByZXN1bHQgYXMgIiMsIyMwLjAjOygjLCMjMC4wIykiLgorICoKKyAqIDxwPlRoZSBwcmVmaXhlcywgc3VmZml4ZXMsIGFuZCB2YXJpb3VzIHN5bWJvbHMgdXNlZCBmb3IgaW5maW5pdHksIGRpZ2l0cywKKyAqIHRob3VzYW5kcyBzZXBhcmF0b3JzLCBkZWNpbWFsIHNlcGFyYXRvcnMsIGV0Yy4gbWF5IGJlIHNldCB0byBhcmJpdHJhcnkKKyAqIHZhbHVlcywgYW5kIHRoZXkgd2lsbCBhcHBlYXIgcHJvcGVybHkgZHVyaW5nIGZvcm1hdHRpbmcuICBIb3dldmVyLCBjYXJlIG11c3QKKyAqIGJlIHRha2VuIHRoYXQgdGhlIHN5bWJvbHMgYW5kIHN0cmluZ3MgZG8gbm90IGNvbmZsaWN0LCBvciBwYXJzaW5nIHdpbGwgYmUKKyAqIHVucmVsaWFibGUuICBGb3IgZXhhbXBsZSwgZWl0aGVyIHRoZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcHJlZml4ZXMgb3IgdGhlCisgKiBzdWZmaXhlcyBtdXN0IGJlIGRpc3RpbmN0IGZvciB7QGxpbmsgI3BhcnNlfSB0byBiZSBhYmxlCisgKiB0byBkaXN0aW5ndWlzaCBwb3NpdGl2ZSBmcm9tIG5lZ2F0aXZlIHZhbHVlcy4gIEFub3RoZXIgZXhhbXBsZSBpcyB0aGF0IHRoZQorICogZGVjaW1hbCBzZXBhcmF0b3IgYW5kIHRob3VzYW5kcyBzZXBhcmF0b3Igc2hvdWxkIGJlIGRpc3RpbmN0IGNoYXJhY3RlcnMsIG9yCisgKiBwYXJzaW5nIHdpbGwgYmUgaW1wb3NzaWJsZS4KKyAqCisgKiA8cD5UaGUgPGVtPmdyb3VwaW5nIHNlcGFyYXRvcjwvZW0+IGlzIGEgY2hhcmFjdGVyIHRoYXQgc2VwYXJhdGVzIGNsdXN0ZXJzIG9mCisgKiBpbnRlZ2VyIGRpZ2l0cyB0byBtYWtlIGxhcmdlIG51bWJlcnMgbW9yZSBsZWdpYmxlLiAgSXQgY29tbW9ubHkgdXNlZCBmb3IKKyAqIHRob3VzYW5kcywgYnV0IGluIHNvbWUgbG9jYWxlcyBpdCBzZXBhcmF0ZXMgdGVuLXRob3VzYW5kcy4gIFRoZSA8ZW0+Z3JvdXBpbmcKKyAqIHNpemU8L2VtPiBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBiZXR3ZWVuIHRoZSBncm91cGluZyBzZXBhcmF0b3JzLCBzdWNoIGFzIDMKKyAqIGZvciAiMTAwLDAwMCwwMDAiIG9yIDQgZm9yICIxIDAwMDAgMDAwMCIuIFRoZXJlIGFyZSBhY3R1YWxseSB0d28gZGlmZmVyZW50CisgKiBncm91cGluZyBzaXplczogT25lIHVzZWQgZm9yIHRoZSBsZWFzdCBzaWduaWZpY2FudCBpbnRlZ2VyIGRpZ2l0cywgdGhlCisgKiA8ZW0+cHJpbWFyeSBncm91cGluZyBzaXplPC9lbT4sIGFuZCBvbmUgdXNlZCBmb3IgYWxsIG90aGVycywgdGhlCisgKiA8ZW0+c2Vjb25kYXJ5IGdyb3VwaW5nIHNpemU8L2VtPi4gIEluIG1vc3QgbG9jYWxlcyB0aGVzZSBhcmUgdGhlIHNhbWUsIGJ1dAorICogc29tZXRpbWVzIHRoZXkgYXJlIGRpZmZlcmVudC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBwcmltYXJ5IGdyb3VwaW5nIGludGVydmFsCisgKiBpcyAzLCBhbmQgdGhlIHNlY29uZGFyeSBpcyAyLCB0aGVuIHRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHBhdHRlcm4KKyAqICIjLCMjLCMjMCIsIGFuZCB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBpcyBmb3JtYXR0ZWQgYXMgIjEyLDM0LDU2LDc4OSIuICBJZiBhCisgKiBwYXR0ZXJuIGNvbnRhaW5zIG11bHRpcGxlIGdyb3VwaW5nIHNlcGFyYXRvcnMsIHRoZSBpbnRlcnZhbCBiZXR3ZWVuIHRoZSBsYXN0CisgKiBvbmUgYW5kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgZGVmaW5lcyB0aGUgcHJpbWFyeSBncm91cGluZyBzaXplLCBhbmQgdGhlCisgKiBpbnRlcnZhbCBiZXR3ZWVuIHRoZSBsYXN0IHR3byBkZWZpbmVzIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZS4gQWxsIG90aGVycworICogYXJlIGlnbm9yZWQsIHNvICIjLCMjLCMjIywjIyMjIiA9PSAiIyMjLCMjIywjIyMjIiA9PSAiIyMsIywjIyMsIyMjIyIuCisgKgorICogPHA+SWxsZWdhbCBwYXR0ZXJucywgc3VjaCBhcyAiIy4jLiMiIG9yICIjLiMjIywjIyMiLCB3aWxsIGNhdXNlCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiB0byB0aHJvdyBhbiB7QGxpbmsgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9ufQorICogd2l0aCBhIG1lc3NhZ2UgdGhhdCBkZXNjcmliZXMgdGhlIHByb2JsZW0uCisgKgorICogPGg0PlBhdHRlcm4gQk5GPC9oND4KKyAqCisgKiA8cHJlPgorICogcGF0dGVybiAgICA6PSBzdWJwYXR0ZXJuICgnOycgc3VicGF0dGVybik/CisgKiBzdWJwYXR0ZXJuIDo9IHByZWZpeD8gbnVtYmVyIGV4cG9uZW50PyBzdWZmaXg/CisgKiBudW1iZXIgICAgIDo9IChpbnRlZ2VyICgnLicgZnJhY3Rpb24pPykgfCBzaWdEaWdpdHMKKyAqIHByZWZpeCAgICAgOj0gJyYjOTI7dTAwMDAnLi4nJiM5Mjt1RkZGRCcgLSBzcGVjaWFsQ2hhcmFjdGVycworICogc3VmZml4ICAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHNwZWNpYWxDaGFyYWN0ZXJzCisgKiBpbnRlZ2VyICAgIDo9ICcjJyogJzAnKiAnMCcKKyAqIGZyYWN0aW9uICAgOj0gJzAnKiAnIycqCisgKiBzaWdEaWdpdHMgIDo9ICcjJyogJ0AnICdAJyogJyMnKgorICogZXhwb25lbnQgICA6PSAnRScgJysnPyAnMCcqICcwJworICogcGFkU3BlYyAgICA6PSAnKicgcGFkQ2hhcgorICogcGFkQ2hhciAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHF1b3RlCisgKiAmIzMyOworICogTm90YXRpb246CisgKiAgIFgqICAgICAgIDAgb3IgbW9yZSBpbnN0YW5jZXMgb2YgWAorICogICBYPyAgICAgICAwIG9yIDEgaW5zdGFuY2VzIG9mIFgKKyAqICAgWHxZICAgICAgZWl0aGVyIFggb3IgWQorICogICBDLi5EICAgICBhbnkgY2hhcmFjdGVyIGZyb20gQyB1cCB0byBELCBpbmNsdXNpdmUKKyAqICAgUy1UICAgICAgY2hhcmFjdGVycyBpbiBTLCBleGNlcHQgdGhvc2UgaW4gVAorICogPC9wcmU+CisgKiBUaGUgZmlyc3Qgc3VicGF0dGVybiBpcyBmb3IgcG9zaXRpdmUgbnVtYmVycy4gVGhlIHNlY29uZCAob3B0aW9uYWwpCisgKiBzdWJwYXR0ZXJuIGlzIGZvciBuZWdhdGl2ZSBudW1iZXJzLgorICogCisgKiA8cD5Ob3QgaW5kaWNhdGVkIGluIHRoZSBCTkYgc3ludGF4IGFib3ZlOgorICoKKyAqIDx1bD48bGk+VGhlIGdyb3VwaW5nIHNlcGFyYXRvciAnLCcgY2FuIG9jY3VyIGluc2lkZSB0aGUgaW50ZWdlciBhbmQKKyAqIHNpZ0RpZ2l0cyBlbGVtZW50cywgYmV0d2VlbiBhbnkgdHdvIHBhdHRlcm4gY2hhcmFjdGVycyBvZiB0aGF0CisgKiBlbGVtZW50LCBhcyBsb25nIGFzIHRoZSBpbnRlZ2VyIG9yIHNpZ0RpZ2l0cyBlbGVtZW50IGlzIG5vdAorICogZm9sbG93ZWQgYnkgdGhlIGV4cG9uZW50IGVsZW1lbnQuCisgKgorICogPGxpPjxmb250IGNvbG9yPXJlZCBmYWNlPWhlbHZldGljYT48c3Ryb25nPk5FVzwvc3Ryb25nPjwvZm9udD4KKyAqICAgICBUd28gZ3JvdXBpbmcgaW50ZXJ2YWxzIGFyZSByZWNvZ25pemVkOiBUaGF0IGJldHdlZW4gdGhlCisgKiAgICAgZGVjaW1hbCBwb2ludCBhbmQgdGhlIGZpcnN0IGdyb3VwaW5nIHN5bWJvbCwgYW5kIHRoYXQKKyAqICAgICBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgc2Vjb25kIGdyb3VwaW5nIHN5bWJvbHMuIFRoZXNlCisgKiAgICAgaW50ZXJ2YWxzIGFyZSBpZGVudGljYWwgaW4gbW9zdCBsb2NhbGVzLCBidXQgaW4gc29tZQorICogICAgIGxvY2FsZXMgdGhleSBkaWZmZXIuIEZvciBleGFtcGxlLCB0aGUgcGF0dGVybgorICogICAgICZxdW90OyMsIyMsIyMjJnF1b3Q7IGZvcm1hdHMgdGhlIG51bWJlciAxMjM0NTY3ODkgYXMKKyAqICAgICAmcXVvdDsxMiwzNCw1Niw3ODkmcXVvdDsuPC9saT4KKyAqIAorICogPGxpPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogVGhlIHBhZCBzcGVjaWZpZXIgPGNvZGU+cGFkU3BlYzwvY29kZT4gbWF5IGFwcGVhciBiZWZvcmUgdGhlIHByZWZpeCwKKyAqIGFmdGVyIHRoZSBwcmVmaXgsIGJlZm9yZSB0aGUgc3VmZml4LCBhZnRlciB0aGUgc3VmZml4LCBvciBub3QgYXQgYWxsLgorICoKKyAqIDxsaT4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIEluIHBsYWNlIG9mICcwJywgdGhlIGRpZ2l0cyAnMScgdGhyb3VnaCAnOScgbWF5IGJlIHVzZWQgdG8KKyAqIGluZGljYXRlIGEgcm91bmRpbmcgaW5jcmVtZW50LgorICogPC91bD4KKyAqCisgKiA8aDQ+UGFyc2luZzwvaDQ+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gcGFyc2VzIGFsbCBVbmljb2RlIGNoYXJhY3RlcnMgdGhhdCByZXByZXNlbnQKKyAqIGRlY2ltYWwgZGlnaXRzLCBhcyBkZWZpbmVkIGJ5IHtAbGluayBVQ2hhcmFjdGVyI2RpZ2l0fS4gIEluIGFkZGl0aW9uLAorICogPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gYWxzbyByZWNvZ25pemVzIGFzIGRpZ2l0cyB0aGUgdGVuIGNvbnNlY3V0aXZlCisgKiBjaGFyYWN0ZXJzIHN0YXJ0aW5nIHdpdGggdGhlIGxvY2FsaXplZCB6ZXJvIGRpZ2l0IGRlZmluZWQgaW4gdGhlCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdC4gIER1cmluZyBmb3JtYXR0aW5nLCB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30tYmFzZWQgZGlnaXRzIGFyZSBvdXRwdXQuCisgKgorICogPHA+RHVyaW5nIHBhcnNpbmcsIGdyb3VwaW5nIHNlcGFyYXRvcnMgYXJlIGlnbm9yZWQuCisgKgorICogPHA+SWYge0BsaW5rICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pfSBmYWlscyB0byBwYXJzZQorICogYSBzdHJpbmcsIGl0IHJldHVybnMgPGNvZGU+bnVsbDwvY29kZT4gYW5kIGxlYXZlcyB0aGUgcGFyc2UgcG9zaXRpb24KKyAqIHVuY2hhbmdlZC4gIFRoZSBjb252ZW5pZW5jZSBtZXRob2Qge0BsaW5rICNwYXJzZShTdHJpbmcpfQorICogaW5kaWNhdGVzIHBhcnNlIGZhaWx1cmUgYnkgdGhyb3dpbmcgYSB7QGxpbmsgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9ufS4KKyAqCisgKiA8aDQ+Rm9ybWF0dGluZzwvaDQ+CisgKgorICogPHA+Rm9ybWF0dGluZyBpcyBndWlkZWQgYnkgc2V2ZXJhbCBwYXJhbWV0ZXJzLCBhbGwgb2Ygd2hpY2ggY2FuIGJlCisgKiBzcGVjaWZpZWQgZWl0aGVyIHVzaW5nIGEgcGF0dGVybiBvciB1c2luZyB0aGUgQVBJLiAgVGhlIGZvbGxvd2luZworICogZGVzY3JpcHRpb24gYXBwbGllcyB0byBmb3JtYXRzIHRoYXQgZG8gbm90IHVzZSA8YSBocmVmPSIjc2NpIj5zY2llbnRpZmljCisgKiBub3RhdGlvbjwvYT4gb3IgPGEgaHJlZj0iI3NpZ2RpZyI+c2lnbmlmaWNhbnQgZGlnaXRzPC9hPi4KKyAqCisgKiA8dWw+PGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGludGVnZXIgZGlnaXRzIGV4Y2VlZHMgdGhlCisgKiA8ZW0+bWF4aW11bSBpbnRlZ2VyIGRpZ2l0czwvZW0+LCB0aGVuIG9ubHkgdGhlIGxlYXN0IHNpZ25pZmljYW50CisgKiBkaWdpdHMgYXJlIHNob3duLiAgRm9yIGV4YW1wbGUsIDE5OTcgaXMgZm9ybWF0dGVkIGFzICI5NyIgaWYgdGhlCisgKiBtYXhpbXVtIGludGVnZXIgZGlnaXRzIGlzIHNldCB0byAyLgorICoKKyAqIDxsaT5JZiB0aGUgbnVtYmVyIG9mIGFjdHVhbCBpbnRlZ2VyIGRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlCisgKiA8ZW0+bWluaW11bSBpbnRlZ2VyIGRpZ2l0czwvZW0+LCB0aGVuIGxlYWRpbmcgemVyb3MgYXJlIGFkZGVkLiAgRm9yCisgKiBleGFtcGxlLCAxOTk3IGlzIGZvcm1hdHRlZCBhcyAiMDE5OTciIGlmIHRoZSBtaW5pbXVtIGludGVnZXIgZGlnaXRzCisgKiBpcyBzZXQgdG8gNS4KKyAqCisgKiA8bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgZnJhY3Rpb24gZGlnaXRzIGV4Y2VlZHMgdGhlIDxlbT5tYXhpbXVtCisgKiBmcmFjdGlvbiBkaWdpdHM8L2VtPiwgdGhlbiBoYWxmLWV2ZW4gcm91bmRpbmcgaXQgcGVyZm9ybWVkIHRvIHRoZQorICogbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMuICBGb3IgZXhhbXBsZSwgMC4xMjUgaXMgZm9ybWF0dGVkIGFzICIwLjEyIgorICogaWYgdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzIGlzIDIuICBUaGlzIGJlaGF2aW9yIGNhbiBiZSBjaGFuZ2VkCisgKiBieSBzcGVjaWZ5aW5nIGEgcm91bmRpbmcgaW5jcmVtZW50IGFuZCBhIHJvdW5kaW5nIG1vZGUuCisgKgorICogPGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGZyYWN0aW9uIGRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlCisgKiA8ZW0+bWluaW11bSBmcmFjdGlvbiBkaWdpdHM8L2VtPiwgdGhlbiB0cmFpbGluZyB6ZXJvcyBhcmUgYWRkZWQuCisgKiBGb3IgZXhhbXBsZSwgMC4xMjUgaXMgZm9ybWF0dGVkIGFzICIwLjEyNTAiIGlmIHRoZSBtaW1pbXVtIGZyYWN0aW9uCisgKiBkaWdpdHMgaXMgc2V0IHRvIDQuCisgKgorICogPGxpPlRyYWlsaW5nIGZyYWN0aW9uYWwgemVyb3MgYXJlIG5vdCBkaXNwbGF5ZWQgaWYgdGhleSBvY2N1cgorICogPGVtPmo8L2VtPiBwb3NpdGlvbnMgYWZ0ZXIgdGhlIGRlY2ltYWwsIHdoZXJlIDxlbT5qPC9lbT4gaXMgbGVzcworICogdGhhbiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMuIEZvciBleGFtcGxlLCAwLjEwMDA0IGlzCisgKiBmb3JtYXR0ZWQgYXMgIjAuMSIgaWYgdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzIGlzIGZvdXIgb3IgbGVzcy4KKyAqIDwvdWw+CisgKiAKKyAqIDxwPjxzdHJvbmc+U3BlY2lhbCBWYWx1ZXM8L3N0cm9uZz4KKyAqCisgKiA8cD48Y29kZT5OYU48L2NvZGU+IGlzIHJlcHJlc2VudGVkIGFzIGEgc2luZ2xlIGNoYXJhY3RlciwgdHlwaWNhbGx5CisgKiA8Y29kZT4mIzkyO3VGRkZEPC9jb2RlPi4gIFRoaXMgY2hhcmFjdGVyIGlzIGRldGVybWluZWQgYnkgdGhlCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdC4gIFRoaXMgaXMgdGhlIG9ubHkgdmFsdWUgZm9yIHdoaWNoCisgKiB0aGUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzIGFyZSBub3QgdXNlZC4KKyAqCisgKiA8cD5JbmZpbml0eSBpcyByZXByZXNlbnRlZCBhcyBhIHNpbmdsZSBjaGFyYWN0ZXIsIHR5cGljYWxseQorICogPGNvZGU+JiM5Mjt1MjIxRTwvY29kZT4sIHdpdGggdGhlIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIHByZWZpeGVzIGFuZCBzdWZmaXhlcworICogYXBwbGllZC4gIFRoZSBpbmZpbml0eSBjaGFyYWN0ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LgorICoKKyAqIDxhIG5hbWU9InNjaSI+PGg0PlNjaWVudGlmaWMgTm90YXRpb248L2g0PjwvYT4KKyAqCisgKiA8cD5OdW1iZXJzIGluIHNjaWVudGlmaWMgbm90YXRpb24gYXJlIGV4cHJlc3NlZCBhcyB0aGUgcHJvZHVjdCBvZiBhIG1hbnRpc3NhCisgKiBhbmQgYSBwb3dlciBvZiB0ZW4sIGZvciBleGFtcGxlLCAxMjM0IGNhbiBiZSBleHByZXNzZWQgYXMgMS4yMzQgeCAxMDxzdXA+Mzwvc3VwPi4gVGhlCisgKiBtYW50aXNzYSBpcyB0eXBpY2FsbHkgaW4gdGhlIGhhbGYtb3BlbiBpbnRlcnZhbCBbMS4wLCAxMC4wKSBvciBzb21ldGltZXMgWzAuMCwgMS4wKSwKKyAqIGJ1dCBpdCBuZWVkIG5vdCBiZS4gIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIGFyYml0cmFyeSBtYW50aXNzYXMuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBjYW4gYmUgaW5zdHJ1Y3RlZCB0byB1c2Ugc2NpZW50aWZpYworICogbm90YXRpb24gdGhyb3VnaCB0aGUgQVBJIG9yIHRocm91Z2ggdGhlIHBhdHRlcm4uICBJbiBhIHBhdHRlcm4sIHRoZSBleHBvbmVudAorICogY2hhcmFjdGVyIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGRpZ2l0IGNoYXJhY3RlcnMgaW5kaWNhdGVzCisgKiBzY2llbnRpZmljIG5vdGF0aW9uLiAgRXhhbXBsZTogIjAuIyMjRTAiIGZvcm1hdHMgdGhlIG51bWJlciAxMjM0IGFzCisgKiAiMS4yMzRFMyIuCisgKgorICogPHVsPgorICogPGxpPlRoZSBudW1iZXIgb2YgZGlnaXQgY2hhcmFjdGVycyBhZnRlciB0aGUgZXhwb25lbnQgY2hhcmFjdGVyIGdpdmVzIHRoZQorICogbWluaW11bSBleHBvbmVudCBkaWdpdCBjb3VudC4gIFRoZXJlIGlzIG5vIG1heGltdW0uICBOZWdhdGl2ZSBleHBvbmVudHMgYXJlCisgKiBmb3JtYXR0ZWQgdXNpbmcgdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLCA8ZW0+bm90PC9lbT4gdGhlIHByZWZpeCBhbmQgc3VmZml4CisgKiBmcm9tIHRoZSBwYXR0ZXJuLiAgVGhpcyBhbGxvd3MgcGF0dGVybnMgc3VjaCBhcyAiMC4jIyNFMCBtL3MiLiAgVG8gcHJlZml4CisgKiBwb3NpdGl2ZSBleHBvbmVudHMgd2l0aCBhIGxvY2FsaXplZCBwbHVzIHNpZ24sIHNwZWNpZnkgJysnIGJldHdlZW4gdGhlCisgKiBleHBvbmVudCBhbmQgdGhlIGRpZ2l0czogIjAuIyMjRSswIiB3aWxsIHByb2R1Y2UgZm9ybWF0cyAiMUUrMSIsICIxRSswIiwKKyAqICIxRS0xIiwgZXRjLiAgKEluIGxvY2FsaXplZCBwYXR0ZXJucywgdXNlIHRoZSBsb2NhbGl6ZWQgcGx1cyBzaWduIHJhdGhlciB0aGFuCisgKiAnKycuKQorICoKKyAqIDxsaT5UaGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgYWNoaWV2ZWQgYnkgYWRqdXN0aW5nIHRoZQorICogZXhwb25lbnQuICBFeGFtcGxlOiAwLjAwMTIzIGZvcm1hdHRlZCB3aXRoICIwMC4jIyNFMCIgeWllbGRzICIxMi4zRS00Ii4gIFRoaXMKKyAqIG9ubHkgaGFwcGVucyBpZiB0aGVyZSBpcyBubyBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cy4gIElmIHRoZXJlIGlzIGEKKyAqIG1heGltdW0sIHRoZW4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIGlzIGZpeGVkIGF0IG9uZS4KKyAqCisgKiA8bGk+VGhlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLCBpZiBwcmVzZW50LCBzcGVjaWZpZXMgdGhlIGV4cG9uZW50CisgKiBncm91cGluZy4gIFRoZSBtb3N0IGNvbW1vbiB1c2Ugb2YgdGhpcyBpcyB0byBnZW5lcmF0ZSA8ZW0+ZW5naW5lZXJpbmcKKyAqIG5vdGF0aW9uPC9lbT4sIGluIHdoaWNoIHRoZSBleHBvbmVudCBpcyBhIG11bHRpcGxlIG9mIHRocmVlLCBlLmcuLAorICogIiMjMC4jIyNFMCIuICBUaGUgbnVtYmVyIDEyMzQ1IGlzIGZvcm1hdHRlZCB1c2luZyAiIyMwLiMjIyNFMCIgYXMgIjEyLjM0NUUzIi4KKyAqCisgKiA8bGk+V2hlbiB1c2luZyBzY2llbnRpZmljIG5vdGF0aW9uLCB0aGUgZm9ybWF0dGVyIGNvbnRyb2xzIHRoZQorICogZGlnaXQgY291bnRzIHVzaW5nIHNpZ25pZmljYW50IGRpZ2l0cyBsb2dpYy4gIFRoZSBtYXhpbXVtIG51bWJlciBvZgorICogc2lnbmlmaWNhbnQgZGlnaXRzIGxpbWl0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGludGVnZXIgYW5kIGZyYWN0aW9uCisgKiBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duIGluIHRoZSBtYW50aXNzYTsgaXQgZG9lcyBub3QgYWZmZWN0CisgKiBwYXJzaW5nLiAgRm9yIGV4YW1wbGUsIDEyMzQ1IGZvcm1hdHRlZCB3aXRoICIjIzAuIyNFMCIgaXMgIjEyLjNFMyIuCisgKiBTZWUgdGhlIHNlY3Rpb24gb24gc2lnbmlmaWNhbnQgZGlnaXRzIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogPGxpPlRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHNob3duIGlzIGRldGVybWluZWQgYXMKKyAqIGZvbGxvd3M6IElmIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpIHJldHVybnMgZmFsc2UsIHRoZW4gdGhlCisgKiBtaW5pbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgb25lLCBhbmQgdGhlIG1heGltdW0KKyAqIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgdGhlIHN1bSBvZiB0aGUgPGVtPm1pbmltdW0KKyAqIGludGVnZXI8L2VtPiBhbmQgPGVtPm1heGltdW0gZnJhY3Rpb248L2VtPiBkaWdpdHMsIGFuZCBpcworICogdW5hZmZlY3RlZCBieSB0aGUgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cy4gIElmIHRoaXMgc3VtIGlzIHplcm8sCisgKiB0aGVuIGFsbCBzaWduaWZpY2FudCBkaWdpdHMgYXJlIHNob3duLiAgSWYKKyAqIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpIHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgc2lnbmlmaWNhbnQgZGlnaXQKKyAqIGNvdW50cyBhcmUgc3BlY2lmaWVkIGJ5IGdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIGFuZAorICogZ2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKCkuICBJbiB0aGlzIGNhc2UsIHRoZSBudW1iZXIgb2YKKyAqIGludGVnZXIgZGlnaXRzIGlzIGZpeGVkIGF0IG9uZSwgYW5kIHRoZXJlIGlzIG5vIGV4cG9uZW50IGdyb3VwaW5nLgorICoKKyAqIDxsaT5FeHBvbmVudGlhbCBwYXR0ZXJucyBtYXkgbm90IGNvbnRhaW4gZ3JvdXBpbmcgc2VwYXJhdG9ycy4KKyAqIDwvdWw+CisgKgorICogPGEgbmFtZT0ic2lnZGlnIj48aDQ+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBTaWduaWZpY2FudCBEaWdpdHM8L2g0PjwvYT4KKyAqCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBoYXMgdHdvIHdheXMgb2YgY29udHJvbGxpbmcgaG93IG1hbnkKKyAqIGRpZ2l0cyBhcmUgc2hvd3M6IChhKSBzaWduaWZpY2FudCBkaWdpdHMgY291bnRzLCBvciAoYikgaW50ZWdlciBhbmQKKyAqIGZyYWN0aW9uIGRpZ2l0IGNvdW50cy4gIEludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0IGNvdW50cyBhcmUKKyAqIGRlc2NyaWJlZCBhYm92ZS4gIFdoZW4gYSBmb3JtYXR0ZXIgaXMgdXNpbmcgc2lnbmlmaWNhbnQgZGlnaXRzCisgKiBjb3VudHMsIHRoZSBudW1iZXIgb2YgaW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXRzIGlzIG5vdCBzcGVjaWZpZWQKKyAqIGRpcmVjdGx5LCBhbmQgdGhlIGZvcm1hdHRlciBzZXR0aW5ncyBmb3IgdGhlc2UgY291bnRzIGFyZSBpZ25vcmVkLgorICogSW5zdGVhZCwgdGhlIGZvcm1hdHRlciB1c2VzIGhvd2V2ZXIgbWFueSBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICogZGlnaXRzIGFyZSByZXF1aXJlZCB0byBkaXNwbGF5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNpZ25pZmljYW50CisgKiBkaWdpdHMuICBFeGFtcGxlczoKKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0zIGNlbGxwYWRkaW5nPTA+CisgKiAgIDx0ciBiZ2NvbG9yPSIjY2NjY2ZmIj4KKyAqICAgICA8dGggYWxpZ249bGVmdD5QYXR0ZXJuCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TWluaW11bSBzaWduaWZpY2FudCBkaWdpdHMKKyAqICAgICA8dGggYWxpZ249bGVmdD5NYXhpbXVtIHNpZ25pZmljYW50IGRpZ2l0cworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk51bWJlcgorICogICAgIDx0aCBhbGlnbj1sZWZ0Pk91dHB1dCBvZiBmb3JtYXQoKQorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+QEBAPC9jb2RlPgorICogICAgIDx0ZD4zCisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MTIzNDUKKyAqICAgICA8dGQ+PGNvZGU+MTIzMDA8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT5AQEA8L2NvZGU+CisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4wLjEyMzQ1CisgKiAgICAgPHRkPjxjb2RlPjAuMTIzPC9jb2RlPgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+QEAjIzwvY29kZT4KKyAqICAgICA8dGQ+MgorICogICAgIDx0ZD40CisgKiAgICAgPHRkPjMuMTQxNTkKKyAqICAgICA8dGQ+PGNvZGU+My4xNDI8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT5AQCMjPC9jb2RlPgorICogICAgIDx0ZD4yCisgKiAgICAgPHRkPjQKKyAqICAgICA8dGQ+MS4yMzAwNAorICogICAgIDx0ZD48Y29kZT4xLjIzPC9jb2RlPgorICogPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8dWw+CisgKiA8bGk+U2lnbmlmaWNhbnQgZGlnaXQgY291bnRzIG1heSBiZSBleHByZXNzZWQgdXNpbmcgcGF0dGVybnMgdGhhdAorICogc3BlY2lmeSBhIG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cy4gIFRoZXNlCisgKiBhcmUgaW5kaWNhdGVkIGJ5IHRoZSA8Y29kZT4nQCc8L2NvZGU+IGFuZCA8Y29kZT4nIyc8L2NvZGU+CisgKiBjaGFyYWN0ZXJzLiAgVGhlIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBpcyB0aGUgbnVtYmVyCisgKiBvZiA8Y29kZT4nQCc8L2NvZGU+IGNoYXJhY3RlcnMuICBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBpcyB0aGUgbnVtYmVyIG9mIDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVycyBwbHVzIHRoZSBudW1iZXIKKyAqIG9mIDxjb2RlPicjJzwvY29kZT4gY2hhcmFjdGVycyBmb2xsb3dpbmcgb24gdGhlIHJpZ2h0LiAgRm9yCisgKiBleGFtcGxlLCB0aGUgcGF0dGVybiA8Y29kZT4iQEBAIjwvY29kZT4gaW5kaWNhdGVzIGV4YWN0bHkgMworICogc2lnbmlmaWNhbnQgZGlnaXRzLiAgVGhlIHBhdHRlcm4gPGNvZGU+IkAjIyI8L2NvZGU+IGluZGljYXRlcyBmcm9tCisgKiAxIHRvIDMgc2lnbmlmaWNhbnQgZGlnaXRzLiAgVHJhaWxpbmcgemVybyBkaWdpdHMgdG8gdGhlIHJpZ2h0IG9mCisgKiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgYXJlIHN1cHByZXNzZWQgYWZ0ZXIgdGhlIG1pbmltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMgaGF2ZSBiZWVuIHNob3duLiAgRm9yIGV4YW1wbGUsIHRoZSBwYXR0ZXJuCisgKiA8Y29kZT4iQCMjIjwvY29kZT4gZm9ybWF0cyB0aGUgbnVtYmVyIDAuMTIwMyBhcworICogPGNvZGU+IjAuMTIiPC9jb2RlPi4KKyAqCisgKiA8bGk+SWYgYSBwYXR0ZXJuIHVzZXMgc2lnbmlmaWNhbnQgZGlnaXRzLCBpdCBtYXkgbm90IGNvbnRhaW4gYQorICogZGVjaW1hbCBzZXBhcmF0b3IsIG5vciB0aGUgPGNvZGU+JzAnPC9jb2RlPiBwYXR0ZXJuIGNoYXJhY3Rlci4KKyAqIFBhdHRlcm5zIHN1Y2ggYXMgPGNvZGU+IkAwMCI8L2NvZGU+IG9yIDxjb2RlPiJALiMjIyI8L2NvZGU+IGFyZQorICogZGlzYWxsb3dlZC4KKyAqCisgKiA8bGk+QW55IG51bWJlciBvZiA8Y29kZT4nIyc8L2NvZGU+IGNoYXJhY3RlcnMgbWF5IGJlIHByZXBlbmRlZCB0bworICogdGhlIGxlZnQgb2YgdGhlIGxlZnRtb3N0IDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVyLiAgVGhlc2UgaGF2ZSBubworICogZWZmZWN0IG9uIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudHMsIGJ1dAorICogbWF5IGJlIHVzZWQgdG8gcG9zaXRpb24gZ3JvdXBpbmcgc2VwYXJhdG9ycy4gIEZvciBleGFtcGxlLAorICogPGNvZGU+IiMsI0AjIjwvY29kZT4gaW5kaWNhdGVzIGEgbWluaW11bSBvZiBvbmUgc2lnbmlmaWNhbnQgZGlnaXRzLAorICogYSBtYXhpbXVtIG9mIHR3byBzaWduaWZpY2FudCBkaWdpdHMsIGFuZCBhIGdyb3VwaW5nIHNpemUgb2YgdGhyZWUuCisgKgorICogPGxpPkluIG9yZGVyIHRvIGVuYWJsZSBzaWduaWZpY2FudCBkaWdpdHMgZm9ybWF0dGluZywgdXNlIGEgcGF0dGVybgorICogY29udGFpbmluZyB0aGUgPGNvZGU+J0AnPC9jb2RlPiBwYXR0ZXJuIGNoYXJhY3Rlci4gIEFsdGVybmF0aXZlbHksCisgKiBjYWxsIHtAbGluayAjc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkIHNldFNpZ25pZmljYW50RGlnaXRzVXNlZCh0cnVlKX0uCisgKgorICogPGxpPkluIG9yZGVyIHRvIGRpc2FibGUgc2lnbmlmaWNhbnQgZGlnaXRzIGZvcm1hdHRpbmcsIHVzZSBhCisgKiBwYXR0ZXJuIHRoYXQgZG9lcyBub3QgY29udGFpbiB0aGUgPGNvZGU+J0AnPC9jb2RlPiBwYXR0ZXJuCisgKiBjaGFyYWN0ZXIuIEFsdGVybmF0aXZlbHksIGNhbGwge0BsaW5rICNzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQKKyAqIHNldFNpZ25pZmljYW50RGlnaXRzVXNlZChmYWxzZSl9LgorICoKKyAqIDxsaT5UaGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBoYXMgbm8gZWZmZWN0IG9uIHBhcnNpbmcuCisgKgorICogPGxpPlNpZ25pZmljYW50IGRpZ2l0cyBtYXkgYmUgdXNlZCB0b2dldGhlciB3aXRoIGV4cG9uZW50aWFsIG5vdGF0aW9uLiBTdWNoCisgKiBwYXR0ZXJucyBhcmUgZXF1aXZhbGVudCB0byBhIG5vcm1hbCBleHBvbmVudGlhbCBwYXR0ZXJuIHdpdGggYSBtaW5pbXVtIGFuZAorICogbWF4aW11bSBpbnRlZ2VyIGRpZ2l0IGNvdW50IG9mIG9uZSwgYSBtaW5pbXVtIGZyYWN0aW9uIGRpZ2l0IGNvdW50IG9mCisgKiA8Y29kZT5nZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKSAtIDE8L2NvZGU+LCBhbmQgYSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0CisgKiBjb3VudCBvZiA8Y29kZT5nZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKSAtIDE8L2NvZGU+LiBGb3IgZXhhbXBsZSwgdGhlCisgKiBwYXR0ZXJuIDxjb2RlPiJAQCMjI0UwIjwvY29kZT4gaXMgZXF1aXZhbGVudCB0byA8Y29kZT4iMC4wIyMjRTAiPC9jb2RlPi4KKyAqCisgKiA8bGk+SWYgc2lnbmZpY2FudCBkaWdpdHMgYXJlIGluIHVzZSwgdGhlbiB0aGUgaW50ZWdlciBhbmQgZnJhY3Rpb24KKyAqIGRpZ2l0IGNvdW50cywgYXMgc2V0IHZpYSB0aGUgQVBJLCBhcmUgaWdub3JlZC4gIElmIHNpZ25pZmljYW50CisgKiBkaWdpdHMgYXJlIG5vdCBpbiB1c2UsIHRoZW4gdGhlIHNpZ25maWNhbnQgZGlnaXQgY291bnRzLCBhcyBzZXQgdmlhCisgKiB0aGUgQVBJLCBhcmUgaWdub3JlZC4KKyAqCisgKiA8L3VsPgorICogCisgKiA8aDQ+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBQYWRkaW5nPC9oND4KKyAqCisgKiA8cD48Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBzdXBwb3J0cyBwYWRkaW5nIHRoZSByZXN1bHQgb2YKKyAqIHtAbGluayAjZm9ybWF0fSB0byBhIHNwZWNpZmljIHdpZHRoLiAgUGFkZGluZyBtYXkgYmUgc3BlY2lmaWVkIGVpdGhlcgorICogdGhyb3VnaCB0aGUgQVBJIG9yIHRocm91Z2ggdGhlIHBhdHRlcm4gc3ludGF4LiAgSW4gYSBwYXR0ZXJuIHRoZSBwYWQgZXNjYXBlCisgKiBjaGFyYWN0ZXIsIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIHBhZCBjaGFyYWN0ZXIsIGNhdXNlcyBwYWRkaW5nIHRvIGJlIHBhcnNlZAorICogYW5kIGZvcm1hdHRlZC4gIFRoZSBwYWQgZXNjYXBlIGNoYXJhY3RlciBpcyAnKicgaW4gdW5sb2NhbGl6ZWQgcGF0dGVybnMsIGFuZAorICogY2FuIGJlIGxvY2FsaXplZCB1c2luZyB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHMjc2V0UGFkRXNjYXBlfS4gIEZvcgorICogZXhhbXBsZSwgPGNvZGU+IiQqeCMsIyMwLjAwIjwvY29kZT4gZm9ybWF0cyAxMjMgdG8gPGNvZGU+IiR4eDEyMy4wMCI8L2NvZGU+LAorICogYW5kIDEyMzQgdG8gPGNvZGU+IiQxLDIzNC4wMCI8L2NvZGU+LgorICoKKyAqIDx1bD4KKyAqIDxsaT5XaGVuIHBhZGRpbmcgaXMgaW4gZWZmZWN0LCB0aGUgd2lkdGggb2YgdGhlIHBvc2l0aXZlIHN1YnBhdHRlcm4sCisgKiBpbmNsdWRpbmcgcHJlZml4IGFuZCBzdWZmaXgsIGRldGVybWluZXMgdGhlIGZvcm1hdCB3aWR0aC4gIEZvciBleGFtcGxlLCBpbgorICogdGhlIHBhdHRlcm4gPGNvZGU+IiogIzAgbycnY2xvY2siPC9jb2RlPiwgdGhlIGZvcm1hdCB3aWR0aCBpcyAxMC4KKyAqCisgKiA8bGk+VGhlIHdpZHRoIGlzIGNvdW50ZWQgaW4gMTYtYml0IGNvZGUgdW5pdHMgKEphdmEgPGNvZGU+Y2hhcjwvY29kZT5zKS4KKyAqCisgKiA8bGk+U29tZSBwYXJhbWV0ZXJzIHdoaWNoIHVzdWFsbHkgZG8gbm90IG1hdHRlciBoYXZlIG1lYW5pbmcgd2hlbiBwYWRkaW5nIGlzCisgKiB1c2VkLCBiZWNhdXNlIHRoZSBwYXR0ZXJuIHdpZHRoIGlzIHNpZ25pZmljYW50IHdpdGggcGFkZGluZy4gIEluIHRoZSBwYXR0ZXJuCisgKiAiKiAjIywjIywjLCMjMC4jIyIsIHRoZSBmb3JtYXQgd2lkdGggaXMgMTQuICBUaGUgaW5pdGlhbCBjaGFyYWN0ZXJzICIjIywjIywiCisgKiBkbyBub3QgYWZmZWN0IHRoZSBncm91cGluZyBzaXplIG9yIG1heGltdW0gaW50ZWdlciBkaWdpdHMsIGJ1dCB0aGV5IGRvIGFmZmVjdAorICogdGhlIGZvcm1hdCB3aWR0aC4KKyAqCisgKiA8bGk+UGFkZGluZyBtYXkgYmUgaW5zZXJ0ZWQgYXQgb25lIG9mIGZvdXIgbG9jYXRpb25zOiBiZWZvcmUgdGhlIHByZWZpeCwKKyAqIGFmdGVyIHRoZSBwcmVmaXgsIGJlZm9yZSB0aGUgc3VmZml4LCBvciBhZnRlciB0aGUgc3VmZml4LiAgSWYgcGFkZGluZyBpcworICogc3BlY2lmaWVkIGluIGFueSBvdGhlciBsb2NhdGlvbiwge0BsaW5rICNhcHBseVBhdHRlcm59IHRocm93cyBhbiB7QGxpbmsKKyAqIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbn0uICBJZiB0aGVyZSBpcyBubyBwcmVmaXgsIGJlZm9yZSB0aGUKKyAqIHByZWZpeCBhbmQgYWZ0ZXIgdGhlIHByZWZpeCBhcmUgZXF1aXZhbGVudCwgbGlrZXdpc2UgZm9yIHRoZSBzdWZmaXguCisgKgorICogPGxpPldoZW4gc3BlY2lmaWVkIGluIGEgcGF0dGVybiwgdGhlIDE2LWJpdCA8Y29kZT5jaGFyPC9jb2RlPiBpbW1lZGlhdGVseQorICogZm9sbG93aW5nIHRoZSBwYWQgZXNjYXBlIGlzIHRoZSBwYWQgY2hhcmFjdGVyLiBUaGlzIG1heSBiZSBhbnkgY2hhcmFjdGVyLAorICogaW5jbHVkaW5nIGEgc3BlY2lhbCBwYXR0ZXJuIGNoYXJhY3Rlci4gVGhhdCBpcywgdGhlIHBhZCBlc2NhcGUKKyAqIDxlbT5lc2NhcGVzPC9lbT4gdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIuIElmIHRoZXJlIGlzIG5vIGNoYXJhY3RlciBhZnRlcgorICogdGhlIHBhZCBlc2NhcGUsIHRoZW4gdGhlIHBhdHRlcm4gaXMgaWxsZWdhbC4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogPHN0cm9uZz5Sb3VuZGluZzwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIHJvdW5kaW5nIHRvIGEgc3BlY2lmaWMgaW5jcmVtZW50LiAgRm9yCisgKiBleGFtcGxlLCAxMjMwIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgNTAgaXMgMTI1MC4gIDEuMjM0IHJvdW5kZWQgdG8gdGhlCisgKiBuZWFyZXN0IDAuNjUgaXMgMS4zLiAgVGhlIHJvdW5kaW5nIGluY3JlbWVudCBtYXkgYmUgc3BlY2lmaWVkIHRocm91Z2ggdGhlIEFQSQorICogb3IgaW4gYSBwYXR0ZXJuLiAgVG8gc3BlY2lmeSBhIHJvdW5kaW5nIGluY3JlbWVudCBpbiBhIHBhdHRlcm4sIGluY2x1ZGUgdGhlCisgKiBpbmNyZW1lbnQgaW4gdGhlIHBhdHRlcm4gaXRzZWxmLiAgIiMsIzUwIiBzcGVjaWZpZXMgYSByb3VuZGluZyBpbmNyZW1lbnQgb2YKKyAqIDUwLiAgIiMsIyMwLjA1IiBzcGVjaWZpZXMgYSByb3VuZGluZyBpbmNyZW1lbnQgb2YgMC4wNS4KKyAqCisgKiA8dWw+CisgKiA8bGk+Um91bmRpbmcgb25seSBhZmZlY3RzIHRoZSBzdHJpbmcgcHJvZHVjZWQgYnkgZm9ybWF0dGluZy4gIEl0IGRvZXMKKyAqIG5vdCBhZmZlY3QgcGFyc2luZyBvciBjaGFuZ2UgYW55IG51bWVyaWNhbCB2YWx1ZXMuCisgKgorICogPGxpPkEgPGVtPnJvdW5kaW5nIG1vZGU8L2VtPiBkZXRlcm1pbmVzIGhvdyB2YWx1ZXMgYXJlIHJvdW5kZWQ7IHNlZSB0aGUKKyAqIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWx9IGRvY3VtZW50YXRpb24gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlCisgKiBtb2Rlcy4gIFJvdW5kaW5nIGluY3JlbWVudHMgc3BlY2lmaWVkIGluIHBhdHRlcm5zIHVzZSB0aGUgZGVmYXVsdCBtb2RlLAorICoge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU59LgorICoKKyAqIDxsaT5Tb21lIGxvY2FsZXMgdXNlIHJvdW5kaW5nIGluIHRoZWlyIGN1cnJlbmN5IGZvcm1hdHMgdG8gcmVmbGVjdCB0aGUKKyAqIHNtYWxsZXN0IGN1cnJlbmN5IGRlbm9taW5hdGlvbi4KKyAqCisgKiA8bGk+SW4gYSBwYXR0ZXJuLCBkaWdpdHMgJzEnIHRocm91Z2ggJzknIHNwZWNpZnkgcm91bmRpbmcsIGJ1dCBvdGhlcndpc2UKKyAqIGJlaGF2ZSBpZGVudGljYWxseSB0byBkaWdpdCAnMCcuCisgKiA8L3VsPgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IG9iamVjdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuICBNdWx0aXBsZQorICogdGhyZWFkcyBzaG91bGQgbm90IGFjY2VzcyBvbmUgZm9ybWF0dGVyIGNvbmN1cnJlbnRseS4KKyAqCisgKiBAc2VlICAgICAgICAgIGphdmEudGV4dC5Gb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBhdXRob3IgICAgICAgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGVjaW1hbEZvcm1hdCBleHRlbmRzIE51bWJlckZvcm1hdCB7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IHVzaW5nIHRoZSBkZWZhdWx0IHBhdHRlcm4gYW5kIHN5bWJvbHMKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLiBUaGlzIGlzIGEgY29udmVuaWVudCB3YXkgdG8gb2J0YWluIGEKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHdoZW4gaW50ZXJuYXRpb25hbGl6YXRpb24gaXMgbm90IHRoZSBtYWluIGNvbmNlcm4uCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4gbG9jYWxlLCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcworICAgICAqIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzIGdldE51bWJlckluc3RhbmNlLiBUaGVzZSBmYWN0b3JpZXMgd2lsbAorICAgICAqIHJldHVybiB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzdWItY2xhc3Mgb2YgTnVtYmVyRm9ybWF0IGZvciBhIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0TnVtYmVySW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRDdXJyZW5jeUluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0UGVyY2VudEluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoKSB7CisgICAgICAgIC8vIFtORVddCisgICAgICAgIFVMb2NhbGUgZGVmID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gZ2V0UGF0dGVybihkZWYsIDApOworICAgICAgICAvLyBBbHdheXMgYXBwbHlQYXR0ZXJuIGFmdGVyIHRoZSBzeW1ib2xzIGFyZSBzZXQKKyAgICAgICAgdGhpcy5zeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGRlZik7CisgICAgICAgIHNldEN1cnJlbmN5KEN1cnJlbmN5LmdldEluc3RhbmNlKGRlZikpOworICAgICAgICBhcHBseVBhdHRlcm4ocGF0dGVybiwgZmFsc2UpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdCBmcm9tIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCB0aGUgc3ltYm9scworICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuIFRoaXMgaXMgYSBjb252ZW5pZW50IHdheSB0byBvYnRhaW4gYQorICAgICAqIERlY2ltYWxGb3JtYXQgd2hlbiBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBub3QgdGhlIG1haW4gY29uY2Vybi4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBvYnRhaW4gc3RhbmRhcmQgZm9ybWF0cyBmb3IgYSBnaXZlbiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzCisgICAgICogb24gTnVtYmVyRm9ybWF0IHN1Y2ggYXMgZ2V0TnVtYmVySW5zdGFuY2UuIFRoZXNlIGZhY3RvcmllcyB3aWxsCisgICAgICogcmV0dXJuIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHN1Yi1jbGFzcyBvZiBOdW1iZXJGb3JtYXQgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHBhcmFtIHBhdHRlcm4gQSBub24tbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBnaXZlbiBwYXR0ZXJuIGlzIGludmFsaWQuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdChTdHJpbmcgcGF0dGVybikgeworICAgICAgICAvLyBBbHdheXMgYXBwbHlQYXR0ZXJuIGFmdGVyIHRoZSBzeW1ib2xzIGFyZSBzZXQKKyAgICAgICAgVUxvY2FsZSBkZWYgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgdGhpcy5zeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGRlZik7CisgICAgICAgIHNldEN1cnJlbmN5KEN1cnJlbmN5LmdldEluc3RhbmNlKGRlZikpOworICAgICAgICBhcHBseVBhdHRlcm4oIHBhdHRlcm4sIGZhbHNlICk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4gYW5kIHN5bWJvbHMuCisgICAgICogVXNlIHRoaXMgY29uc3RydWN0b3Igd2hlbiB5b3UgbmVlZCB0byBjb21wbGV0ZWx5IGN1c3RvbWl6ZSB0aGUKKyAgICAgKiBiZWhhdmlvciBvZiB0aGUgZm9ybWF0LgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBzdGFuZGFyZCBmb3JtYXRzIGZvciBhIGdpdmVuCisgICAgICogbG9jYWxlLCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBvbiBOdW1iZXJGb3JtYXQgc3VjaCBhcworICAgICAqIGdldEluc3RhbmNlIG9yIGdldEN1cnJlbmN5SW5zdGFuY2UuIElmIHlvdSBuZWVkIG9ubHkgbWlub3IgYWRqdXN0bWVudHMKKyAgICAgKiB0byBhIHN0YW5kYXJkIGZvcm1hdCwgeW91IGNhbiBtb2RpZnkgdGhlIGZvcm1hdCByZXR1cm5lZCBieQorICAgICAqIGEgTnVtYmVyRm9ybWF0IGZhY3RvcnkgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgbm9uLWxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSBzeW1ib2xzIHRoZSBzZXQgb2Ygc3ltYm9scyB0byBiZSB1c2VkCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0TnVtYmVySW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRDdXJyZW5jeUluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0UGVyY2VudEluc3RhbmNlCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzKSB7CisgICAgICAgIC8vIEFsd2F5cyBhcHBseVBhdHRlcm4gYWZ0ZXIgdGhlIHN5bWJvbHMgYXJlIHNldAorICAgICAgICB0aGlzLnN5bWJvbHMgPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIHN5bWJvbHMuY2xvbmUoKTsKKyAgICAgICAgc2V0Q3VycmVuY3lGb3JTeW1ib2xzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgZmFsc2UgKTsKKyAgICB9CisKKwkvKioKKwkgKiBAc3RhYmxlIElDVSAyLjAKKwkgKi8KKwlwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorCQkJRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisJCXJldHVybiBmb3JtYXQobnVtYmVyLCByZXN1bHQsIGZpZWxkUG9zaXRpb24sIGZhbHNlKTsKKwl9CisJCisJLy8gW1NwYXJrL0NETF0gVGhlIGFjdHVhbCBtZXRob2QgdG8gZm9ybWF0IG51bWJlci4gSWYgYm9vbGVhbiB2YWx1ZQorCS8vIHBhcnNlQXR0ciA9PSB0cnVlLCB0aGVuIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiB3aWxsIGJlIHJlY29yZGVkLgorCXByaXZhdGUgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorCQkJRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLCBib29sZWFuIHBhcnNlQXR0cikgCisgICAgeworICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgoMCk7CisgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgoMCk7CisKKyAgICAgICAgaWYgKERvdWJsZS5pc05hTihudW1iZXIpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXROYU4oKSk7CisJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYXR0cmlidXRlIGZvciBOYU4gaGVyZS4KKwkJCS8vIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXROYU4oKSk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCWFkZEF0dHJpYnV0ZShGaWVsZC5JTlRFR0VSLCByZXN1bHQubGVuZ3RoKCkKKwkJCQkJCS0gc3ltYm9scy5nZXROYU4oKS5sZW5ndGgoKSwgcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCX0KKy8vI2VuZGlmCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhZGRQYWRkaW5nKHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgMCwgMCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyogRGV0ZWN0aW5nIHdoZXRoZXIgYSBkb3VibGUgaXMgbmVnYXRpdmUgaXMgZWFzeSB3aXRoIHRoZSBleGNlcHRpb24gb2YKKyAgICAgICAgICogdGhlIHZhbHVlIC0wLjAuICBUaGlzIGlzIGEgZG91YmxlIHdoaWNoIGhhcyBhIHplcm8gbWFudGlzc2EgKGFuZAorICAgICAgICAgKiBleHBvbmVudCksIGJ1dCBhIG5lZ2F0aXZlIHNpZ24gYml0LiAgSXQgaXMgc2VtYW50aWNhbGx5IGRpc3RpbmN0IGZyb20KKyAgICAgICAgICogYSB6ZXJvIHdpdGggYSBwb3NpdGl2ZSBzaWduIGJpdCwgYW5kIHRoaXMgZGlzdGluY3Rpb24gaXMgaW1wb3J0YW50CisgICAgICAgICAqIHRvIGNlcnRhaW4ga2luZHMgb2YgY29tcHV0YXRpb25zLiAgSG93ZXZlciwgaXQncyBhIGxpdHRsZSB0cmlja3kgdG8KKyAgICAgICAgICogZGV0ZWN0LCBzaW5jZSAoLTAuMCA9PSAwLjApIGFuZCAhKC0wLjAgPCAwLjApLiAgSG93IHRoZW4sIHlvdSBtYXkKKyAgICAgICAgICogYXNrLCBkb2VzIGl0IGJlaGF2ZSBkaXN0aW5jdGx5IGZyb20gKzAuMD8gIFdlbGwsIDEvKC0wLjApID09CisgICAgICAgICAqIC1JbmZpbml0eS4gIFByb3BlciBkZXRlY3Rpb24gb2YgLTAuMCBpcyBuZWVkZWQgdG8gZGVhbCB3aXRoIHRoZQorICAgICAgICAgKiBpc3N1ZXMgcmFpc2VkIGJ5IGJ1Z3MgNDEwNjY1OCwgNDEwNjY2NywgYW5kIDQxNDc3MDYuICBMaXUgNy82Lzk4LgorICAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlID0gKG51bWJlciA8IDAuMCkgfHwgKG51bWJlciA9PSAwLjAgJiYgMS9udW1iZXIgPCAwLjApOworICAgICAgICBpZiAoaXNOZWdhdGl2ZSkgbnVtYmVyID0gLW51bWJlcjsKKworICAgICAgICAvLyBEbyB0aGlzIEJFRk9SRSBjaGVja2luZyB0byBzZWUgaWYgdmFsdWUgaXMgaW5maW5pdGUhCisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIG51bWJlciAqPSBtdWx0aXBsaWVyOworCisgICAgICAgIC8vIEFwcGx5IHJvdW5kaW5nIGFmdGVyIG11bHRpcGxpZXIKKyAgICAgICAgaWYgKHJvdW5kaW5nRG91YmxlID4gMC4wKSB7CisgICAgICAgICAgICAvLyBudW1iZXIgPSByb3VuZGluZ0RvdWJsZQorICAgICAgICAgICAgLy8gICogcm91bmQobnVtYmVyIC8gcm91bmRpbmdEb3VibGUsIHJvdW5kaW5nTW9kZSwgaXNOZWdhdGl2ZSk7CisgICAgICAgICAgICBkb3VibGUgbmV3TnVtYmVyID0gcm91bmQobnVtYmVyLCByb3VuZGluZ0RvdWJsZSwgcm91bmRpbmdEb3VibGVSZWNpcHJvY2FsLCByb3VuZGluZ01vZGUsIGlzTmVnYXRpdmUpOworICAgICAgICAgICAgaWYgKG5ld051bWJlciA9PSAwLjAgJiYgbnVtYmVyICE9IG5ld051bWJlcikgaXNOZWdhdGl2ZSA9IGZhbHNlOyAvLyBpZiB3ZSB0b3VjaGVkIGl0LCB0aGVuIG1ha2UgemVybyBiZSB6ZXJvLgorICAgICAgICAgICAgbnVtYmVyID0gbmV3TnVtYmVyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKERvdWJsZS5pc0luZmluaXRlKG51bWJlcikpCisgICAgICAgIHsKKyAgICAgICAgCWludCBwcmVmaXhMZW4gPSBhcHBlbmRBZmZpeChyZXN1bHQsIGlzTmVnYXRpdmUsIHRydWUsIHBhcnNlQXR0cik7CisKKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworCQkJLy8gW1NwYXJrL0NETF0gQWRkIGF0dHJpYnV0ZSBmb3IgaW5maW5pdHkgaGVyZS4KKwkJCXJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRJbmZpbml0eSgpKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJYWRkQXR0cmlidXRlKEZpZWxkLklOVEVHRVIsIHJlc3VsdC5sZW5ndGgoKQorCQkJCQkJLSBzeW1ib2xzLmdldEluZmluaXR5KCkubGVuZ3RoKCksIHJlc3VsdC5sZW5ndGgoKSk7CisJCQl9CisvLyNlbmRpZgorICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHN1ZmZpeExlbiA9IGFwcGVuZEFmZml4KHJlc3VsdCwgaXNOZWdhdGl2ZSwgZmFsc2UsIHBhcnNlQXR0cik7CisKKyAgICAgICAgICAgIGFkZFBhZGRpbmcocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBwcmVmaXhMZW4sIHN1ZmZpeExlbik7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBhcmUgZ3VhcmFudGVlZCBhIG5vbm5lZ2F0aXZlIGZpbml0ZQorICAgICAgICAvLyBudW1iZXIuCisgICAgICAgIHN5bmNocm9uaXplZChkaWdpdExpc3QpIHsKKyAgICAgICAgICAgIGRpZ2l0TGlzdC5zZXQobnVtYmVyLCBwcmVjaXNpb24oZmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAhdXNlRXhwb25lbnRpYWxOb3RhdGlvbiAmJiAhYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkpOworICAgICAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIGlzTmVnYXRpdmUsIGZhbHNlLAorCQkJCQlwYXJzZUF0dHIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSb3VuZCBhIGRvdWJsZSB2YWx1ZSB0byB0aGUgbmVhcmVzdCBtdWx0aXBsZSBvZiB0aGUgZ2l2ZW4KKyAgICAgKiByb3VuZGluZyBpbmNyZW1lbnQsIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gbW9kZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJvdW5kaW5nIHZhbHVlL3JvdW5kaW5nSW5jIHRvIHRoZSBuZWFyZXN0CisgICAgICogaW50ZWdlciwgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBtb2RlLCBhbmQgcmV0dXJuaW5nIHRoYXQKKyAgICAgKiBpbnRlZ2VyICogcm91bmRpbmdJbmMuCisgICAgICogTm90ZSB0aGlzIGlzIGNoYW5nZWQgZnJvbSB0aGUgdmVyc2lvbiBpbiAyLjQsIHNpbmNlIGRpdmlzaW9uIG9mIGRvdWJsZXMKKyAgICAgKiBoYXZlIGluYWNjdXJhY2llcy4gaml0dGVyYnVnIDE4NzEuCisgICAgICogQHBhcmFtIG51bWJlciB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlciB0byBiZSByb3VuZGVkCisgICAgICogQHBhcmFtIHJvdW5kaW5nSW5jIHRoZSByb3VuZGluZyBpbmNyZW1lbnQKKyAgICAgKiBAcGFyYW0gcm91bmRpbmdJbmNSZWNpcHJvY2FsIGlmIG5vbi16ZXJvLCBpcyB0aGUgCisgICAgICogQHBhcmFtIG1vZGUgYSBCaWdEZWNpbWFsIHJvdW5kaW5nIG1vZGUKKyAgICAgKiBAcGFyYW0gaXNOZWdhdGl2ZSB0cnVlIGlmIHRoZSBudW1iZXIgdG8gYmUgcm91bmRlZCBpcyBuZWdhdGl2ZQorICAgICAqIEByZXR1cm4gdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSByb3VuZGVkIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGRvdWJsZSByb3VuZChkb3VibGUgbnVtYmVyLCBkb3VibGUgcm91bmRpbmdJbmMsIAorICAgIAkJZG91YmxlIHJvdW5kaW5nSW5jUmVjaXByb2NhbCwgaW50IG1vZGUsIGJvb2xlYW4gaXNOZWdhdGl2ZSkgeworICAgIAkKKyAgICAJZG91YmxlIGRpdiA9IHJvdW5kaW5nSW5jUmVjaXByb2NhbCA9PSAwLjAgCisgICAgCQk/IG51bWJlciAvIHJvdW5kaW5nSW5jCisgICAgCSAgICA6IG51bWJlciAqIHJvdW5kaW5nSW5jUmVjaXByb2NhbDsKKyAgICAJCisgICAgCS8vIGRvIHRoZSBhYnNvbHV0ZSBjYXNlcyBmaXJzdAorICAgIAkKKyAgICAJc3dpdGNoIChtb2RlKSB7CisgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9DRUlMSU5HOgorICAgIAkJZGl2ID0gKGlzTmVnYXRpdmUgPyBNYXRoLmZsb29yKGRpdiArIGVwc2lsb24pIDogTWF0aC5jZWlsKGRpdiAtIGVwc2lsb24pKTsKKyAgICAJCWJyZWFrOworICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfRkxPT1I6CisgICAgCQlkaXYgPSAoaXNOZWdhdGl2ZSA/IE1hdGguY2VpbChkaXYgLSBlcHNpbG9uKSA6IE1hdGguZmxvb3IoZGl2ICsgZXBzaWxvbikpOworICAgIAkJYnJlYWs7CisgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9ET1dOOgorICAgIAkJZGl2ID0gKE1hdGguZmxvb3IoZGl2ICsgZXBzaWxvbikpOworICAgIAkJYnJlYWs7CisgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9VUDoKKyAgICAJCWRpdiA9IChNYXRoLmNlaWwoZGl2IC0gZXBzaWxvbikpOworICAgIAkJYnJlYWs7CisgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9VTk5FQ0VTU0FSWToKKyAgICAJCWlmIChkaXYgIT0gTWF0aC5mbG9vcihkaXYpKSB7CisgICAgCQkJdGhyb3cgbmV3IEFyaXRobWV0aWNFeGNlcHRpb24oIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICAgIAkJfQorICAgIAkJcmV0dXJuIG51bWJlcjsKKyAgICAJZGVmYXVsdDoKKyAgICAJCQorICAgIAkJLy8gSGFuZGxlIGNvbXBsZXggY2FzZXMsIHdoZXJlIHRoZSBjaG9pY2UgZGVwZW5kcyBvbiB0aGUgY2xvc2VyIHZhbHVlLgorICAgIAkJCisgICAgCQkvLyBXZSBmaWd1cmUgb3V0IHRoZSBkaXN0YW5jZXMgdG8gdGhlIHR3byBwb3NzaWJsZSB2YWx1ZXMsIGNlaWxpbmcgYW5kIGZsb29yLgorICAgIAkJLy8gV2UgdGhlbiBnbyBmb3IgdGhlIGRpZmYgdGhhdCBpcyBzbWFsbGVyLgorICAgIAkJLy8gT25seSBpZiB0aGV5IGFyZSBlcXVhbCBkb2VzIHRoZSBtb2RlIG1hdHRlci4KKwkgICAgCQkKKwkgICAgCWRvdWJsZSBjZWlsID0gTWF0aC5jZWlsKGRpdik7CisJICAgIAlkb3VibGUgY2VpbGRpZmYgPSBjZWlsIC0gZGl2OyAvLyAoY2VpbCAqIHJvdW5kaW5nSW5jKSAtIG51bWJlcjsKKwkgICAgCWRvdWJsZSBmbG9vciA9IE1hdGguZmxvb3IoZGl2KTsKKwkgICAgCWRvdWJsZSBmbG9vcmRpZmYgPSBkaXYgLSBmbG9vcjsgLy8gbnVtYmVyIC0gKGZsb29yICogcm91bmRpbmdJbmMpOworCSAgICAJCisJICAgIAkvLyBOb3RlIHRoYXQgdGhlIGRpZmYgdmFsdWVzIHdlcmUgdGhvc2UgbWFwcGVkIGJhY2sgdG8gdGhlICJub3JtYWwiIHNwYWNlCisJICAgIAkvLyBieSB1c2luZyB0aGUgcm91bmRpbmdJbmMuIEkgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIG9yaWdpbmFsIGF1dGhvciBvZiB0aGUgY29kZQorCSAgICAJLy8gYnV0IHN1c3BlY3QgdGhhdCB0aGF0IHdhcyB0byBwcm9kdWNlIGJldHRlciByZXN1bHQgaW4gZWRnZSBjYXNlcyBiZWNhdXNlIG9mIG1hY2hpbmUKKwkgICAgCS8vIHByZWNpc2lvbiwgcmF0aGVyIHRoYW4gc2ltcGx5IHVzaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4sIHNheSwgY2VpbCBhbmQgZGl2LgorCSAgICAJLy8gSG93ZXZlciwgaXQgZGlkbid0IHdvcmsgaW4gYWxsIGNhc2VzLiBBbSB0cnlpbmcgaW5zdGVhZCB1c2luZyBhbiBlcHNpbG9uIHZhbHVlLgorCSAgICAJCisJICAgIAlzd2l0Y2ggKG1vZGUpIHsKKwkgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU46CisJICAgIAkJLy8gV2Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCByZXR1cm4gTWF0aC5yaW50KGEpLCBidXQgdGhpcworCSAgICAJCS8vIGRvZXNuJ3Qgd29yayBpbiBzb21lIFZNcy4KKwkgICAgCQkvLyBpZiBvbmUgaXMgc21hbGxlciB0aGFuIHRoZSBvdGhlciwgdGFrZSB0aGUgY29ycmVzcG9uZGluZyBzaWRlCisJICAgIAkJaWYgKGZsb29yZGlmZiArIGVwc2lsb24gPCBjZWlsZGlmZikgeworCSAgICAJCQlkaXYgPSBmbG9vcjsKKwkgICAgCQl9IGVsc2UgaWYgKGNlaWxkaWZmICsgZXBzaWxvbiA8IGZsb29yZGlmZikgeworCSAgICAJCQlkaXYgPSBjZWlsOworCSAgICAJCX0gZWxzZSB7IC8vIHRoZXkgYXJlIGVxdWFsLCBzbyB3ZSB3YW50IHRvIHJvdW5kIHRvIHdoaWNoZXZlciBpcyBldmVuCisJICAgIAkJCWRvdWJsZSB0ZXN0Rmxvb3IgPSBmbG9vciAvIDI7CisJICAgIAkJCWRpdiA9ICh0ZXN0Rmxvb3IgPT0gTWF0aC5mbG9vcih0ZXN0Rmxvb3IpKSA/IGZsb29yIDogY2VpbDsKKwkgICAgCQl9CisJICAgIAkJYnJlYWs7CisJICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9ET1dOOgorCSAgICAJCWRpdiA9ICgoZmxvb3JkaWZmIDw9IGNlaWxkaWZmICsgZXBzaWxvbikgPyBmbG9vciA6IGNlaWwpOworCSAgICAJCWJyZWFrOworCSAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfVVA6CisJICAgIAkJZGl2ID0gKChjZWlsZGlmZiA8PSBmbG9vcmRpZmYgKyBlcHNpbG9uKSA/IGNlaWwgOiBmbG9vcik7CisJICAgIAkJYnJlYWs7CisJICAgIAlkZWZhdWx0OgorCSAgICAJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcm91bmRpbmcgbW9kZTogIiArIG1vZGUpOworCSAgICAJfQorICAgIAl9CisgICAgCW51bWJlciA9IHJvdW5kaW5nSW5jUmVjaXByb2NhbCA9PSAwLjAKKyAgICAJCT8gZGl2ICogcm91bmRpbmdJbmMKKyAgICAJCTogZGl2IC8gcm91bmRpbmdJbmNSZWNpcHJvY2FsOworICAgIAlyZXR1cm4gbnVtYmVyOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBkb3VibGUgZXBzaWxvbiA9IDAuMDAwMDAwMDAwMDE7CisKKwkvKioKKwkgKiBAc3RhYmxlIElDVSAyLjAKKwkgKi8KKwkvLyBbU3BhcmsvQ0RMXSBEZWxlZ2F0ZSB0byBmb3JtYXRfbG9uZ19TdHJpbmdCdWZmZXJfRmllbGRQb3NpdGlvbl9ib29sZWFuCisJcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQobG9uZyBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisJCQlGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKwkJcmV0dXJuIGZvcm1hdChudW1iZXIsIHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgZmFsc2UpOworCX0KKworCXByaXZhdGUgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKwkJCUZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbiwgYm9vbGVhbiBwYXJzZUF0dHIpIAorICAgIHsKKyAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KDApOworICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KDApOworCisgICAgICAgIC8vIElmIHdlIGFyZSB0byBkbyByb3VuZGluZywgd2UgbmVlZCB0byBtb3ZlIGludG8gdGhlIEJpZ0RlY2ltYWwKKyAgICAgICAgLy8gZG9tYWluIGluIG9yZGVyIHRvIGRvIGRpdmlkZS9tdWx0aXBseSBjb3JyZWN0bHkuCisgICAgICAgIC8vIFtORVddCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudElDVSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KEJpZ0RlY2ltYWwudmFsdWVPZihudW1iZXIpLCByZXN1bHQsIGZpZWxkUG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlID0gKG51bWJlciA8IDApOworICAgICAgICBpZiAoaXNOZWdhdGl2ZSkgbnVtYmVyID0gLW51bWJlcjsKKworICAgICAgICAvLyBJbiBnZW5lcmFsLCBsb25nIHZhbHVlcyBhbHdheXMgcmVwcmVzZW50IHJlYWwgZmluaXRlIG51bWJlcnMsIHNvCisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgZm9yICsvLSBJbmZpbml0eSBvciBOYU4uICBIb3dldmVyLCB0aGVyZQorICAgICAgICAvLyBpcyBvbmUgY2FzZSB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgb2Y6ICBUaGUgbXVsdGlwbGllciBjYW4gcHVzaAorICAgICAgICAvLyBhIG51bWJlciBuZWFyIE1JTl9WQUxVRSBvciBNQVhfVkFMVUUgb3V0c2lkZSB0aGUgbGVnYWwgcmFuZ2UuICBXZQorICAgICAgICAvLyBjaGVjayBmb3IgdGhpcyBiZWZvcmUgbXVsdGlwbHlpbmcsIGFuZCBpZiBpdCBoYXBwZW5zIHdlIHVzZSBCaWdJbnRlZ2VyCisgICAgICAgIC8vIGluc3RlYWQuCisgICAgICAgIC8vIFtORVddCisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gdG9vQmlnID0gZmFsc2U7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgMCkgeyAvLyBUaGlzIGNhbiBvbmx5IGhhcHBlbiBpZiBudW1iZXIgPT0gTG9uZy5NSU5fVkFMVUUKKyAgICAgICAgICAgICAgICBsb25nIGN1dG9mZiA9IExvbmcuTUlOX1ZBTFVFIC8gbXVsdGlwbGllcjsKKyAgICAgICAgICAgICAgICB0b29CaWcgPSAobnVtYmVyIDwgY3V0b2ZmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9uZyBjdXRvZmYgPSBMb25nLk1BWF9WQUxVRSAvIG11bHRpcGxpZXI7CisgICAgICAgICAgICAgICAgdG9vQmlnID0gKG51bWJlciA+IGN1dG9mZik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodG9vQmlnKSB7CisJCQkJLy8gW1NwYXJrL0NETF0gVXNlCisJCQkJLy8gZm9ybWF0X0JpZ0ludGVnZXJfU3RyaW5nQnVmZmVyX0ZpZWxkUG9zaXRpb25fYm9vbGVhbiBpbnN0ZWFkCisJCQkJLy8gcGFyc2VBdHRyIGlzIHVzZWQgdG8ganVkZ2Ugd2hldGhlciB0byBzeW50aGVzaXplIGF0dHJpYnV0ZXMuCisJCQkJcmV0dXJuIGZvcm1hdCgKKwkJCQkJCUJpZ0ludGVnZXIudmFsdWVPZihpc05lZ2F0aXZlID8gLW51bWJlciA6IG51bWJlciksCisJCQkJCQlyZXN1bHQsIGZpZWxkUG9zaXRpb24sIHBhcnNlQXR0cik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBudW1iZXIgKj0gbXVsdGlwbGllcjsKKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHByZWNpc2lvbih0cnVlKSk7CisgICAgICAgICAgICByZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgaXNOZWdhdGl2ZSwgdHJ1ZSwgcGFyc2VBdHRyKTsKKyAgICAgICAgfQorICAgIH0KKworCS8qKgorCSAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4gRm9ybWF0IGEKKwkgKiBCaWdJbnRlZ2VyIG51bWJlci4KKwkgKiAKKwkgKiBAc3RhYmxlIElDVSAyLjAKKwkgKi8KKwlwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlciwgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKwkJCUZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworCQlyZXR1cm4gZm9ybWF0KG51bWJlciwgcmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBmYWxzZSk7CisJfQorCisJLy8gW1NwYXJrL0NETF0gCisJcHJpdmF0ZSBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorCQkJRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLCBib29sZWFuIHBhcnNlQXR0cikgeworICAgICAgICAvLyBJZiB3ZSBhcmUgdG8gZG8gcm91bmRpbmcsIHdlIG5lZWQgdG8gbW92ZSBpbnRvIHRoZSBCaWdEZWNpbWFsCisgICAgICAgIC8vIGRvbWFpbiBpbiBvcmRlciB0byBkbyBkaXZpZGUvbXVsdGlwbHkgY29ycmVjdGx5LgorICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnRJQ1UgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdChuZXcgQmlnRGVjaW1hbChudW1iZXIpLCByZXN1bHQsIGZpZWxkUG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgeworICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyLm11bHRpcGx5KEJpZ0ludGVnZXIudmFsdWVPZihtdWx0aXBsaWVyKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBndWFyYW50ZWVkIGEgbm9ubmVnYXRpdmUgZmluaXRlCisgICAgICAgIC8vIG51bWJlci4KKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHByZWNpc2lvbih0cnVlKSk7CisJCQlyZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgbnVtYmVyLnNpZ251bSgpIDwgMCwgZmFsc2UsCXBhcnNlQXR0cik7CisgICAgICAgIH0KKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGphdmEubWF0aC5CaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKwkJcmV0dXJuIGZvcm1hdChudW1iZXIsIHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgZmFsc2UpOworCX0KKwkKKwlwcml2YXRlIFN0cmluZ0J1ZmZlciBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLAorCQkJU3RyaW5nQnVmZmVyIHJlc3VsdCwgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLCBib29sZWFuIHBhcnNlQXR0cikgeworICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxKSB7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIubXVsdGlwbHkoamF2YS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihtdWx0aXBsaWVyKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyLmRpdmlkZShyb3VuZGluZ0luY3JlbWVudCwgMCwgcm91bmRpbmdNb2RlKQorICAgICAgICAgICAgICAgICAgICAubXVsdGlwbHkocm91bmRpbmdJbmNyZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHByZWNpc2lvbihmYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICF1c2VFeHBvbmVudGlhbE5vdGF0aW9uICYmICFhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSk7CisJCQlyZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgbnVtYmVyLnNpZ251bSgpIDwgMCwgZmFsc2UsCXBhcnNlQXR0cik7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKy8vI2VuZGlmCisgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworICAgICAgICAvKiBUaGlzIG1ldGhvZCBpcyBqdXN0IGEgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBqYXZhLm1hdGguQmlnRGVjaW1hbAorICAgICAgICAgKiBtZXRob2QgZm9yIG5vdy4gIEl0IGlzbid0IHZlcnkgZWZmaWNpZW50IHNpbmNlIGl0IG11c3QgY3JlYXRlIGEKKyAgICAgICAgICogY29udmVyc2lvbiBvYmplY3QgdG8gZG8gbWF0aCBvbiB0aGUgcm91bmRpbmcgaW5jcmVtZW50LiAgSW4gdGhlCisgICAgICAgICAqIGZ1dHVyZSB3ZSBtYXkgdHJ5IHRvIGNsZWFuIHRoaXMgdXAsIG9yIGV2ZW4gYmV0dGVyLCBsaW1pdCBvdXIgc3VwcG9ydAorICAgICAgICAgKiB0byBqdXN0IG9uZSBmbGF2b3Igb2YgQmlnRGVjaW1hbC4KKyAgICAgICAgICovCisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIG51bWJlciA9IG51bWJlci5tdWx0aXBseShCaWdEZWNpbWFsLnZhbHVlT2YobXVsdGlwbGllcikpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVICE9IG51bGwpIHsKKyAgICAgICAgICAgIG51bWJlciA9IG51bWJlci5kaXZpZGUocm91bmRpbmdJbmNyZW1lbnRJQ1UsIDAsIHJvdW5kaW5nTW9kZSkKKyAgICAgICAgICAgICAgICAgICAgLm11bHRpcGx5KHJvdW5kaW5nSW5jcmVtZW50SUNVKTsKKyAgICAgICAgfQorCisgICAgICAgIHN5bmNocm9uaXplZChkaWdpdExpc3QpIHsKKyAgICAgICAgICAgIGRpZ2l0TGlzdC5zZXQobnVtYmVyLCBwcmVjaXNpb24oZmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAhdXNlRXhwb25lbnRpYWxOb3RhdGlvbiAmJiAhYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkpOworICAgICAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIG51bWJlci5zaWdudW0oKSA8IDAsIGZhbHNlKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYSBncm91cGluZyBzZXBhcmF0b3IgYmVsb25ncyBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBwb3NpdGlvbiwgYmFzZWQgb24gd2hldGhlciBncm91cGluZyBpcyBpbiB1c2UgYW5kIHRoZSB2YWx1ZXMgb2YKKyAgICAgKiB0aGUgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IGdyb3VwaW5nIGludGVydmFsLgorICAgICAqIEBwYXJhbSBwb3MgdGhlIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyB0byB0aGUgcmlnaHQgb2YKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbi4gIFplcm8gaW5kaWNhdGVzIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUKKyAgICAgKiByaWdodG1vc3QgaW50ZWdlciBkaWdpdC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYSBncm91cGluZyBjaGFyYWN0ZXIgYmVsb25ncyBhdCB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0dyb3VwaW5nUG9zaXRpb24oaW50IHBvcykgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICBpZiAoaXNHcm91cGluZ1VzZWQoKSAmJiAocG9zID4gMCkgJiYgKGdyb3VwaW5nU2l6ZSA+IDApKSB7CisgICAgICAgICAgICBpZiAoKGdyb3VwaW5nU2l6ZTIgPiAwKSAmJiAocG9zID4gZ3JvdXBpbmdTaXplKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICgocG9zIC0gZ3JvdXBpbmdTaXplKSAlIGdyb3VwaW5nU2l6ZTIpID09IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBvcyAlIGdyb3VwaW5nU2l6ZSA9PSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGRpc3BsYXksIG9yIHRoZSB0b3RhbAorICAgICAqIG51bWJlciBvZiBkaWdpdHMgZm9yIHNpZ25pZmljYW50IGRpZ2l0IGZvcm1hdHMgYW5kIGV4cG9uZW50aWFsCisgICAgICogZm9ybWF0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmVjaXNpb24oYm9vbGVhbiBpc0ludGVncmFsKSB7CisgICAgICAgIGlmIChhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSkgeworICAgICAgICAgICAgcmV0dXJuIGdldE1heGltdW1TaWduaWZpY2FudERpZ2l0cygpOworICAgICAgICB9IGVsc2UgaWYgKHVzZUV4cG9uZW50aWFsTm90YXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICsgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gaXNJbnRlZ3JhbCA/IDAgOiBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZXRlIHRoZSBmb3JtYXR0aW5nIG9mIGEgZmluaXRlIG51bWJlci4gIE9uIGVudHJ5LCB0aGUgZGlnaXRMaXN0IG11c3QKKyAgICAgKiBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgY29ycmVjdCBkaWdpdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgc3ViZm9ybWF0KFN0cmluZ0J1ZmZlciByZXN1bHQsIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlLCBib29sZWFuIGlzSW50ZWdlcil7CisJCXJldHVybiBzdWJmb3JtYXQocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBpc05lZ2F0aXZlLCBpc0ludGVnZXIsIGZhbHNlKTsKKwl9CisKKwlwcml2YXRlIFN0cmluZ0J1ZmZlciBzdWJmb3JtYXQoU3RyaW5nQnVmZmVyIHJlc3VsdCwKKwkJCUZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbiwgYm9vbGVhbiBpc05lZ2F0aXZlLCBib29sZWFuIGlzSW50ZWdlciwKKwkJCWJvb2xlYW4gcGFyc2VBdHRyKSAKKyAgICB7CisgICAgICAgIC8vIE5PVEU6IFRoaXMgaXNuJ3QgcmVxdWlyZWQgYW55bW9yZSBiZWNhdXNlIERpZ2l0TGlzdCB0YWtlcyBjYXJlIG9mIHRoaXMuCisgICAgICAgIC8vCisgICAgICAgIC8vICAvLyBUaGUgbmVnYXRpdmUgb2YgdGhlIGV4cG9uZW50IHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nCisgICAgICAgIC8vICAvLyB6ZXJvcyBiZXR3ZWVuIHRoZSBkZWNpbWFsIGFuZCB0aGUgZmlyc3Qgbm9uLXplcm8gZGlnaXQsIGZvcgorICAgICAgICAvLyAgLy8gYSB2YWx1ZSA8IDAuMSAoZS5nLiwgZm9yIDAuMDAxMjMsIC1mRXhwb25lbnQgPT0gMikuICBJZiB0aGlzCisgICAgICAgIC8vICAvLyBpcyBtb3JlIHRoYW4gdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzLCB0aGVuIHdlIGhhdmUgYW4gdW5kZXJmbG93CisgICAgICAgIC8vICAvLyBmb3IgdGhlIHByaW50ZWQgcmVwcmVzZW50YXRpb24uICBXZSByZWNvZ25pemUgdGhpcyBoZXJlIGFuZCBzZXQKKyAgICAgICAgLy8gIC8vIHRoZSBEaWdpdExpc3QgcmVwcmVzZW50YXRpb24gdG8gemVybyBpbiB0aGlzIHNpdHVhdGlvbi4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gIGlmICgtZGlnaXRMaXN0LmRlY2ltYWxBdCA+PSBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSkKKyAgICAgICAgLy8gIHsKKyAgICAgICAgLy8gICAgICBkaWdpdExpc3QuY291bnQgPSAwOworICAgICAgICAvLyAgfQorCisgICAgICAgIGludCBpOworICAgICAgICBjaGFyIHplcm8gPSBzeW1ib2xzLmdldFplcm9EaWdpdCgpOworICAgICAgICBpbnQgemVyb0RlbHRhID0gemVybyAtICcwJzsgLy8gJzAnIGlzIHRoZSBEaWdpdExpc3QgcmVwcmVzZW50YXRpb24gb2YgemVybworICAgICAgICBjaGFyIGdyb3VwaW5nID0gaXNDdXJyZW5jeUZvcm1hdCA/CisgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMuZ2V0TW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvcigpIDoKKyAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworICAgICAgICBjaGFyIGRlY2ltYWwgPSBpc0N1cnJlbmN5Rm9ybWF0ID8KKyAgICAgICAgICAgIHN5bWJvbHMuZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCkgOgorICAgICAgICAgICAgc3ltYm9scy5nZXREZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGJvb2xlYW4gdXNlU2lnRGlnID0gYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCk7CisgICAgICAgIGludCBtYXhJbnREaWcgPSBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpOworICAgICAgICBpbnQgbWluSW50RGlnID0gZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKTsKKworICAgICAgICAvKiBQZXIgYnVnIDQxNDc3MDYsIERlY2ltYWxGb3JtYXQgbXVzdCByZXNwZWN0IHRoZSBzaWduIG9mIG51bWJlcnMgd2hpY2gKKyAgICAgICAgICogZm9ybWF0IGFzIHplcm8uICBUaGlzIGFsbG93cyBzZW5zaWJsZSBjb21wdXRhdGlvbnMgYW5kIHByZXNlcnZlcworICAgICAgICAgKiByZWxhdGlvbnMgc3VjaCBhcyBzaWdudW0oMS94KSA9IHNpZ251bSh4KSwgd2hlcmUgeCBpcyArSW5maW5pdHkgb3IKKyAgICAgICAgICogLUluZmluaXR5LiAgUHJpb3IgdG8gdGhpcyBmaXgsIHdlIGFsd2F5cyBmb3JtYXR0ZWQgemVybyB2YWx1ZXMgYXMgaWYKKyAgICAgICAgICogdGhleSB3ZXJlIHBvc2l0aXZlLiAgTGl1IDcvNi85OC4KKyAgICAgICAgICovCisgICAgICAgIGlmIChkaWdpdExpc3QuaXNaZXJvKCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpZ2l0TGlzdC5kZWNpbWFsQXQgPSAwOyAvLyBOb3JtYWxpemUKKyAgICAgICAgfQorCisgICAgICAgIGludCBwcmVmaXhMZW4gPSBhcHBlbmRBZmZpeChyZXN1bHQsIGlzTmVnYXRpdmUsIHRydWUsIHBhcnNlQXR0cik7CisKKyAgICAgICAgaWYgKHVzZUV4cG9uZW50aWFsTm90YXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgoLTEpOworICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LkZSQUNUSU9OX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KC0xKTsKKyAgICAgICAgICAgIH0KKworCQkJLy8gW1NwYXJrL0NETF0KKwkJCS8vIHRoZSBiZWdpbiBpbmRleCBvZiBpbnRlZ2VyIHBhcnQKKwkJCS8vIHRoZSBlbmQgaW5kZXggb2YgaW50ZWdlciBwYXJ0CisJCQkvLyB0aGUgYmVnaW4gaW5kZXggb2YgZnJhY3Rpb25hbCBwYXJ0CisJCQlpbnQgaW50QmVnaW4gPSByZXN1bHQubGVuZ3RoKCk7CisJCQlpbnQgaW50RW5kID0gLTE7CisJCQlpbnQgZnJhY0JlZ2luID0gLTE7CisKKyAgICAgICAgICAgIGludCBtaW5GcmFjRGlnID0gMDsKKyAgICAgICAgICAgIGlmICh1c2VTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICBtYXhJbnREaWcgPSBtaW5JbnREaWcgPSAxOworICAgICAgICAgICAgICAgIG1pbkZyYWNEaWcgPSBnZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKSAtIDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1pbkZyYWNEaWcgPSBnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgICAgICBpZiAobWF4SW50RGlnID4gTUFYX1NDSUVOVElGSUNfSU5URUdFUl9ESUdJVFMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4SW50RGlnID0gMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1heEludERpZyA8IG1pbkludERpZykgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4SW50RGlnID0gbWluSW50RGlnOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtYXhJbnREaWcgPiBtaW5JbnREaWcpIHsKKyAgICAgICAgICAgICAgICAgICAgbWluSW50RGlnID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisKKyAgICAgICAgICAgIC8vIE1pbmltdW0gaW50ZWdlciBkaWdpdHMgYXJlIGhhbmRsZWQgaW4gZXhwb25lbnRpYWwgZm9ybWF0IGJ5CisgICAgICAgICAgICAvLyBhZGp1c3RpbmcgdGhlIGV4cG9uZW50LiAgRm9yIGV4YW1wbGUsIDAuMDEyMzQgd2l0aCAzIG1pbmltdW0KKyAgICAgICAgICAgIC8vIGludGVnZXIgZGlnaXRzIGlzICIxMjMuNEUtNCIuCisKKyAgICAgICAgICAgIC8vIE1heGltdW0gaW50ZWdlciBkaWdpdHMgYXJlIGludGVycHJldGVkIGFzIGluZGljYXRpbmcgdGhlCisgICAgICAgICAgICAvLyByZXBlYXRpbmcgcmFuZ2UuICBUaGlzIGlzIHVzZWZ1bCBmb3IgZW5naW5lZXJpbmcgbm90YXRpb24sIGluCisgICAgICAgICAgICAvLyB3aGljaCB0aGUgZXhwb25lbnQgaXMgcmVzdHJpY3RlZCB0byBhIG11bHRpcGxlIG9mIDMuICBGb3IKKyAgICAgICAgICAgIC8vIGV4YW1wbGUsIDAuMDEyMzQgd2l0aCAzIG1heGltdW0gaW50ZWdlciBkaWdpdHMgaXMgIjEyLjM0ZS0zIi4KKyAgICAgICAgICAgIC8vIElmIG1heGltdW0gaW50ZWdlciBkaWdpdHMgYXJlIGRlZmluZWQgYW5kIGFyZSBsYXJnZXIgdGhhbgorICAgICAgICAgICAgLy8gbWluaW11bSBpbnRlZ2VyIGRpZ2l0cywgdGhlbiBtaW5pbXVtIGludGVnZXIgZGlnaXRzIGFyZQorICAgICAgICAgICAgLy8gaWdub3JlZC4KKworICAgICAgICAgICAgaW50IGV4cG9uZW50ID0gZGlnaXRMaXN0LmRlY2ltYWxBdDsKKyAgICAgICAgICAgIGlmIChtYXhJbnREaWcgPiAxICYmIG1heEludERpZyAhPSBtaW5JbnREaWcpIHsKKyAgICAgICAgICAgICAgICAvLyBBIGV4cG9uZW50IGluY3JlbWVudCBpcyBkZWZpbmVkOyBhZGp1c3QgdG8gaXQuCisgICAgICAgICAgICAgICAgZXhwb25lbnQgPSAoZXhwb25lbnQgPiAwKSA/IChleHBvbmVudCAtIDEpIC8gbWF4SW50RGlnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChleHBvbmVudCAvIG1heEludERpZykgLSAxOworICAgICAgICAgICAgICAgIGV4cG9uZW50ICo9IG1heEludERpZzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gTm8gZXhwb25lbnQgaW5jcmVtZW50IGlzIGRlZmluZWQ7IHVzZSBtaW5pbXVtIGludGVnZXIgZGlnaXRzLgorICAgICAgICAgICAgICAgIC8vIElmIG5vbmUgaXMgc3BlY2lmaWVkLCBhcyBpbiAiI0UwIiwgZ2VuZXJhdGUgMSBpbnRlZ2VyIGRpZ2l0LgorICAgICAgICAgICAgICAgIGV4cG9uZW50IC09IChtaW5JbnREaWcgPiAwIHx8IG1pbkZyYWNEaWcgPiAwKQorICAgICAgICAgICAgICAgICAgICA/IG1pbkludERpZyA6IDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFdlIG5vdyBvdXRwdXQgYSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMsIGFuZCBtb3JlIGlmIHRoZXJlCisgICAgICAgICAgICAvLyBhcmUgbW9yZSBkaWdpdHMsIHVwIHRvIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMuICBXZQorICAgICAgICAgICAgLy8gcGxhY2UgdGhlIGRlY2ltYWwgcG9pbnQgYWZ0ZXIgdGhlICJpbnRlZ2VyIiBkaWdpdHMsIHdoaWNoCisgICAgICAgICAgICAvLyBhcmUgdGhlIGZpcnN0IChkZWNpbWFsQXQgLSBleHBvbmVudCkgZGlnaXRzLgorICAgICAgICAgICAgaW50IG1pbmltdW1EaWdpdHMgPSBtaW5JbnREaWcgKyBtaW5GcmFjRGlnOworICAgICAgICAgICAgLy8gVGhlIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBoYW5kbGVkIHNwZWNpYWxseSBpZiB0aGUgbnVtYmVyCisgICAgICAgICAgICAvLyBpcyB6ZXJvLCBzaW5jZSB0aGVuIHRoZXJlIG1heSBiZSBubyBkaWdpdHMuCisgICAgICAgICAgICBpbnQgaW50ZWdlckRpZ2l0cyA9IGRpZ2l0TGlzdC5pc1plcm8oKSA/IG1pbkludERpZyA6CisgICAgICAgICAgICAgICAgZGlnaXRMaXN0LmRlY2ltYWxBdCAtIGV4cG9uZW50OworICAgICAgICAgICAgaW50IHRvdGFsRGlnaXRzID0gZGlnaXRMaXN0LmNvdW50OworICAgICAgICAgICAgaWYgKG1pbmltdW1EaWdpdHMgPiB0b3RhbERpZ2l0cykgdG90YWxEaWdpdHMgPSBtaW5pbXVtRGlnaXRzOworICAgICAgICAgICAgaWYgKGludGVnZXJEaWdpdHMgPiB0b3RhbERpZ2l0cykgdG90YWxEaWdpdHMgPSBpbnRlZ2VyRGlnaXRzOworCisgICAgICAgICAgICBmb3IgKGk9MDsgaTx0b3RhbERpZ2l0czsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpID09IGludGVnZXJEaWdpdHMpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICB9CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYXR0cmlidXRlIGZvciBpbnRlZ2VyIHBhcnQKKwkJCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCQkJaW50RW5kID0gcmVzdWx0Lmxlbmd0aCgpOworCQkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLklOVEVHRVIsIGludEJlZ2luLCByZXN1bHQubGVuZ3RoKCkpOworCQkJCQl9CisvLyNlbmRpZgorCQkJCQlyZXN1bHQuYXBwZW5kKGRlY2ltYWwpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCQkJLy8gW1NwYXJrL0NETF0gQWRkIGF0dHJpYnV0ZSBmb3IgZGVjaW1hbCBzZXBhcmF0b3IKKwkJCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCQkJLy8gTGVuZ3RoIG9mIGRlY2ltYWwgc2VwYXJhdG9yIGlzIDEuCisJCQkJCQlpbnQgZGVjaW1hbFNlcGFyYXRvckJlZ2luID0gcmVzdWx0Lmxlbmd0aCgpIC0gMTsKKwkJCQkJCWFkZEF0dHJpYnV0ZShGaWVsZC5ERUNJTUFMX1NFUEFSQVRPUiwKKwkJCQkJCQkJZGVjaW1hbFNlcGFyYXRvckJlZ2luLCByZXN1bHQubGVuZ3RoKCkpOworCQkJCQkJZnJhY0JlZ2luID0gcmVzdWx0Lmxlbmd0aCgpOworCQkJCQl9CisvLyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGkgPCBkaWdpdExpc3QuY291bnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKGRpZ2l0TGlzdC5kaWdpdHNbaV0gKyB6ZXJvRGVsdGEpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgemVybyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vRm9yIElDVSBjb21wYXRpYmlsaXR5IGFuZCBmb3JtYXQgMCB0byAwRTAgd2l0aCBwYXR0ZXJuICIjRTAiIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgIGlmIChkaWdpdExpc3QuaXNaZXJvKCkgJiYgKHRvdGFsRGlnaXRzID09MCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24KKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRFbmRJbmRleCgpIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LkZSQUNUSU9OX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0QmVnaW5JbmRleCgpIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCS8vIFtTcGFyay9DRExdIENhbGN1YXRlIHRoZSBlbmQgaW5kZXggb2YgaW50ZWdlciBwYXJ0IGFuZCBmcmFjdGlvbmFsCisJCQkvLyBwYXJ0IGlmIHRoZXkgYXJlIG5vdCBwcm9wZXJseSBwcm9jZXNzZWQgeWV0LgorCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCWlmIChpbnRFbmQgPCAwKSB7CisJCQkJCWFkZEF0dHJpYnV0ZShGaWVsZC5JTlRFR0VSLCBpbnRCZWdpbiwgcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCQl9CisJCQkJaWYgKGZyYWNCZWdpbiA+IDApIHsKKwkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkZSQUNUSU9OLCBmcmFjQmVnaW4sIHJlc3VsdC5sZW5ndGgoKSk7CisJCQkJfQorCQkJfQorLy8jZW5kaWYKKworICAgICAgICAgICAgLy8gVGhlIGV4cG9uZW50IGlzIG91dHB1dCB1c2luZyB0aGUgcGF0dGVybi1zcGVjaWZpZWQgbWluaW11bQorICAgICAgICAgICAgLy8gZXhwb25lbnQgZGlnaXRzLiAgVGhlcmUgaXMgbm8gbWF4aW11bSBsaW1pdCB0byB0aGUgZXhwb25lbnQKKyAgICAgICAgICAgIC8vIGRpZ2l0cywgc2luY2UgdHJ1bmNhdGluZyB0aGUgZXhwb25lbnQgd291bGQgcmVzdWx0IGluIGFuCisgICAgICAgICAgICAvLyB1bmFjY2VwdGFibGUgaW5hY2N1cmFjeS4KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRFeHBvbmVudFNlcGFyYXRvcigpKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQkvLyBbU3BhcmsvQ0RMXSBGb3IgZXhwb25lbnQgc3ltYm9sLCBhZGQgYW4gYXR0cmlidXRlLgorCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCWFkZEF0dHJpYnV0ZShGaWVsZC5FWFBPTkVOVF9TWU1CT0wsIHJlc3VsdC5sZW5ndGgoKQorCQkJCQkJLSBzeW1ib2xzLmdldEV4cG9uZW50U2VwYXJhdG9yKCkubGVuZ3RoKCksIHJlc3VsdAorCQkJCQkJLmxlbmd0aCgpKTsKKwkJCX0KKy8vI2VuZGlmCisgICAgICAgICAgICAvLyBGb3IgemVybyB2YWx1ZXMsIHdlIGZvcmNlIHRoZSBleHBvbmVudCB0byB6ZXJvLiAgV2UKKyAgICAgICAgICAgIC8vIG11c3QgZG8gdGhpcyBoZXJlLCBhbmQgbm90IGVhcmxpZXIsIGJlY2F1c2UgdGhlIHZhbHVlCisgICAgICAgICAgICAvLyBpcyB1c2VkIHRvIGRldGVybWluZSBpbnRlZ2VyIGRpZ2l0IGNvdW50IGFib3ZlLgorICAgICAgICAgICAgaWYgKGRpZ2l0TGlzdC5pc1plcm8oKSkgZXhwb25lbnQgPSAwOworCisgICAgICAgICAgICBib29sZWFuIG5lZ2F0aXZlRXhwb25lbnQgPSBleHBvbmVudCA8IDA7CisgICAgICAgICAgICBpZiAobmVnYXRpdmVFeHBvbmVudCkgeworICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gLWV4cG9uZW50OworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRNaW51c1NpZ24oKSk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJCS8vIFtTcGFyay9DRExdIElmIGV4cG9uZW50IGhhcyBzaWduLCB0aGVuIGFkZCBhbiBleHBvbmVudCBzaWduCisJCQkJLy8gYXR0cmlidXRlLgorCQkJCWlmIChwYXJzZUF0dHIpIHsKKwkJCQkJLy8gTGVuZ3RoIG9mIGV4cG9uZW50IHNpZ24gaXMgMS4KKwkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkVYUE9ORU5UX1NJR04sIHJlc3VsdC5sZW5ndGgoKSAtIDEsCisJCQkJCQkJcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCQl9CisvLyNlbmRpZgorCQkJfSBlbHNlIGlmIChleHBvbmVudFNpZ25BbHdheXNTaG93bikgeworCQkJCXJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRQbHVzU2lnbigpKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQkJLy8gW1NwYXJrL0NETF0gQWRkIGFuIHBsdXMgc2lnbiBhdHRyaWJ1dGUuCisJCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCQkvLyBMZW5ndGggb2YgZXhwb25lbnQgc2lnbiBpcyAxLgorCQkJCQlpbnQgZXhwU2lnbkJlZ2luID0gcmVzdWx0Lmxlbmd0aCgpIC0gMTsKKwkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkVYUE9ORU5UX1NJR04sIGV4cFNpZ25CZWdpbiwgcmVzdWx0CisJCQkJCQkJLmxlbmd0aCgpKTsKKwkJCQl9CisvLyNlbmRpZgorCQkJfQorCQkJaW50IGV4cEJlZ2luID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChleHBvbmVudCk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IGV4cERpZyA9IG1pbkV4cG9uZW50RGlnaXRzOworICAgICAgICAgICAgICAgIGlmICh1c2VFeHBvbmVudGlhbE5vdGF0aW9uICYmIGV4cERpZyA8IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwRGlnID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpPWRpZ2l0TGlzdC5kZWNpbWFsQXQ7IGk8ZXhwRGlnOyArK2kpIHJlc3VsdC5hcHBlbmQoemVybyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxkaWdpdExpc3QuZGVjaW1hbEF0OyArK2kpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoaSA8IGRpZ2l0TGlzdC5jb3VudCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoZGlnaXRMaXN0LmRpZ2l0c1tpXSArIHplcm9EZWx0YSkgOiB6ZXJvKTsKKyAgICAgICAgICAgIH0KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYXR0cmlidXRlIGZvciBleHBvbmVudCBwYXJ0LgorCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCWFkZEF0dHJpYnV0ZShGaWVsZC5FWFBPTkVOVCwgZXhwQmVnaW4sIHJlc3VsdC5sZW5ndGgoKSk7CisJCQl9CisvLyNlbmRpZgorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworCQkJLy8gW1NwYXJrL0NETF0gUmVjb3JkIHRoZSBpbnRlZ2VyIHN0YXJ0IGluZGV4LgorCQkJaW50IGludEJlZ2luID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzaWdDb3VudCA9IDA7CisgICAgICAgICAgICBpbnQgbWluU2lnRGlnID0gZ2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKCk7CisgICAgICAgICAgICBpbnQgbWF4U2lnRGlnID0gZ2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKCk7CisgICAgICAgICAgICBpZiAoIXVzZVNpZ0RpZykgeworICAgICAgICAgICAgICAgIG1pblNpZ0RpZyA9IDA7CisgICAgICAgICAgICAgICAgbWF4U2lnRGlnID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgaW50ZWdlciBwb3J0aW9uLiAgSGVyZSAnY291bnQnIGlzIHRoZSB0b3RhbAorICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHdlIHdpbGwgZGlzcGxheSwgaW5jbHVkaW5nIGJvdGgKKyAgICAgICAgICAgIC8vIGxlYWRpbmcgemVyb3MgcmVxdWlyZWQgdG8gc2F0aXNmeSBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cywKKyAgICAgICAgICAgIC8vIGFuZCBhY3R1YWwgZGlnaXRzIHByZXNlbnQgaW4gdGhlIG51bWJlci4KKyAgICAgICAgICAgIGludCBjb3VudCA9IHVzZVNpZ0RpZyA/CisgICAgICAgICAgICAgICAgTWF0aC5tYXgoMSwgZGlnaXRMaXN0LmRlY2ltYWxBdCkgOiBtaW5JbnREaWc7CisgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmRlY2ltYWxBdCA+IDAgJiYgY291bnQgPCBkaWdpdExpc3QuZGVjaW1hbEF0KSB7CisgICAgICAgICAgICAgICAgY291bnQgPSBkaWdpdExpc3QuZGVjaW1hbEF0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSBpcyBzbWFsbGVyCisgICAgICAgICAgICAvLyB0aGFuIHRoZSByZWFsIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cy4gIElmIHRoaXMgaXMgc28sIHdlCisgICAgICAgICAgICAvLyBvdXRwdXQgdGhlIGxlYXN0IHNpZ25pZmljYW50IG1heCBpbnRlZ2VyIGRpZ2l0cy4gIEZvciBleGFtcGxlLAorICAgICAgICAgICAgLy8gdGhlIHZhbHVlIDE5OTcgcHJpbnRlZCB3aXRoIDIgbWF4IGludGVnZXIgZGlnaXRzIGlzIGp1c3QgIjk3Ii4KKworICAgICAgICAgICAgaW50IGRpZ2l0SW5kZXggPSAwOyAvLyBJbmRleCBpbnRvIGRpZ2l0TGlzdC5mRGlnaXRzW10KKyAgICAgICAgICAgIGlmIChjb3VudCA+IG1heEludERpZyAmJiBtYXhJbnREaWcgPj0gMCkgeworICAgICAgICAgICAgICAgIGNvdW50ID0gbWF4SW50RGlnOworICAgICAgICAgICAgICAgIGRpZ2l0SW5kZXggPSBkaWdpdExpc3QuZGVjaW1hbEF0IC0gY291bnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzaXplQmVmb3JlSW50ZWdlclBhcnQgPSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICBmb3IgKGk9Y291bnQtMTsgaT49MDsgLS1pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpIDwgZGlnaXRMaXN0LmRlY2ltYWxBdCAmJiBkaWdpdEluZGV4IDwgZGlnaXRMaXN0LmNvdW50ICYmCisgICAgICAgICAgICAgICAgICAgIHNpZ0NvdW50IDwgbWF4U2lnRGlnKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE91dHB1dCBhIHJlYWwgZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgYnl0ZSBkID0gZGlnaXRMaXN0LmRpZ2l0c1tkaWdpdEluZGV4KytdOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKShkICsgemVyb0RlbHRhKSk7CisgICAgICAgICAgICAgICAgICAgICsrc2lnQ291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIE91dHB1dCBhIHplcm8gKGxlYWRpbmcgb3IgdHJhaWxpbmcpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaWdDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrc2lnQ291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBPdXRwdXQgZ3JvdXBpbmcgc2VwYXJhdG9yIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgICAgICAgICBpZiAoaXNHcm91cGluZ1Bvc2l0aW9uKGkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZ3JvdXBpbmcpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCQkJLy8gW1NwYXJrL0NETF0gQWRkIGdyb3VwaW5nIHNlcGFyYXRvciBhdHRyaWJ1dGUgaGVyZS4KKwkJCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCQkJLy8gTGVuZ3RoIG9mIGdyb3VwaW5nIHNlcGFyYXRvciBpcyAxLgorCQkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkdST1VQSU5HX1NFUEFSQVRPUiwKKwkJCQkJCQkJcmVzdWx0Lmxlbmd0aCgpIC0gMSwgcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCQkJfQorLy8jZW5kaWYKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBhbnkgcHJpbnRhYmxlIGZyYWN0aW9uYWwKKyAgICAgICAgICAgIC8vIGRpZ2l0cy4gIElmIHdlJ3ZlIHVzZWQgdXAgdGhlIGRpZ2l0cyB3ZSBrbm93IHRoZXJlIGFyZW4ndC4KKyAgICAgICAgICAgIGJvb2xlYW4gZnJhY3Rpb25QcmVzZW50ID0gKCFpc0ludGVnZXIgJiYgZGlnaXRJbmRleCA8IGRpZ2l0TGlzdC5jb3VudCkgfHwKKyAgICAgICAgICAgICAgICAodXNlU2lnRGlnID8gKHNpZ0NvdW50IDwgbWluU2lnRGlnKSA6IChnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSA+IDApKTsKKworICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZnJhY3Rpb24gcHJlc2VudCwgYW5kIHdlIGhhdmVuJ3QgcHJpbnRlZCBhbnkKKyAgICAgICAgICAgIC8vIGludGVnZXIgZGlnaXRzLCB0aGVuIHByaW50IGEgemVyby4gIE90aGVyd2lzZSB3ZSB3b24ndCBwcmludAorICAgICAgICAgICAgLy8gX2FueV8gZGlnaXRzLCBhbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byBwYXJzZSB0aGlzIHN0cmluZy4KKyAgICAgICAgICAgIGlmICghZnJhY3Rpb25QcmVzZW50ICYmIHJlc3VsdC5sZW5ndGgoKSA9PSBzaXplQmVmb3JlSW50ZWdlclBhcnQpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYXR0cmlidXRlIGZvciBpbnRlZ2VyIHBhcnQuCisJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJYWRkQXR0cmlidXRlKEZpZWxkLklOVEVHRVIsIGludEJlZ2luLCByZXN1bHQubGVuZ3RoKCkpOworCQkJfQorLy8jZW5kaWYKKyAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaWYgd2UgYWx3YXlzIGRvIHNvLgorICAgICAgICAgICAgaWYgKGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biB8fCBmcmFjdGlvblByZXNlbnQpCisJCQl7CisJCQkJcmVzdWx0LmFwcGVuZChkZWNpbWFsKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQkJLy8gW1NwYXJrL0NETF0gQWRkIGF0dHJpYnV0ZSBmb3IgZGVjaW1hbCBzZXBhcmF0b3IKKwkJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJCWFkZEF0dHJpYnV0ZShGaWVsZC5ERUNJTUFMX1NFUEFSQVRPUiwgcmVzdWx0Lmxlbmd0aCgpIC0gMSwKKwkJCQkJCQlyZXN1bHQubGVuZ3RoKCkpOworCQkJCX0KKy8vI2VuZGlmCisJCQl9CisKKyAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworCQkJLy8gW1NwYXJrL0NETF0gUmVjb3JkIHRoZSBiZWdpbiBpbmRleCBvZiBmcmFjdGlvbiBwYXJ0LgorCQkJaW50IGZyYWNCZWdpbiA9IHJlc3VsdC5sZW5ndGgoKTsKKworICAgICAgICAgICAgY291bnQgPSB1c2VTaWdEaWcgPyBJbnRlZ2VyLk1BWF9WQUxVRSA6IGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgICAgICAgICAgaWYgKHVzZVNpZ0RpZyAmJiAoc2lnQ291bnQgPT0gbWF4U2lnRGlnIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2lnQ291bnQgPj0gbWluU2lnRGlnICYmIGRpZ2l0SW5kZXggPT0gZGlnaXRMaXN0LmNvdW50KSkpIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IDA7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAvLyBIZXJlIGlzIHdoZXJlIHdlIGVzY2FwZSBmcm9tIHRoZSBsb29wLiAgV2UgZXNjYXBlCisgICAgICAgICAgICAgICAgLy8gaWYgd2UndmUgb3V0cHV0IHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cworICAgICAgICAgICAgICAgIC8vIChzcGVjaWZpZWQgaW4gdGhlIGZvciBleHByZXNzaW9uIGFib3ZlKS4gIFdlIGFsc28KKyAgICAgICAgICAgICAgICAvLyBzdG9wIHdoZW4gd2UndmUgb3V0cHV0IHRoZSBtaW5pbXVtIGRpZ2l0cyBhbmQKKyAgICAgICAgICAgICAgICAvLyBlaXRoZXI6IHdlIGhhdmUgYW4gaW50ZWdlciwgc28gdGhlcmUgaXMgbm8KKyAgICAgICAgICAgICAgICAvLyBmcmFjdGlvbmFsIHN0dWZmIHRvIGRpc3BsYXksIG9yIHdlJ3JlIG91dCBvZgorICAgICAgICAgICAgICAgIC8vIHNpZ25pZmljYW50IGRpZ2l0cy4KKyAgICAgICAgICAgICAgICBpZiAoIXVzZVNpZ0RpZyAmJiBpID49IGdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICYmCisgICAgICAgICAgICAgICAgICAgIChpc0ludGVnZXIgfHwgZGlnaXRJbmRleCA+PSBkaWdpdExpc3QuY291bnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCBsZWFkaW5nIGZyYWN0aW9uYWwgemVyb3MuICBUaGVzZSBhcmUgemVyb3MKKyAgICAgICAgICAgICAgICAvLyB0aGF0IGNvbWUgYWZ0ZXIgdGhlIGRlY2ltYWwgYnV0IGJlZm9yZSBhbnkKKyAgICAgICAgICAgICAgICAvLyBzaWduaWZpY2FudCBkaWdpdHMuICBUaGVzZSBhcmUgb25seSBvdXRwdXQgaWYKKyAgICAgICAgICAgICAgICAvLyBhYnMobnVtYmVyIGJlaW5nIGZvcm1hdHRlZCkgPCAxLjAuCisgICAgICAgICAgICAgICAgaWYgKC0xLWkgPiAoZGlnaXRMaXN0LmRlY2ltYWxBdC0xKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBPdXRwdXQgYSBkaWdpdCwgaWYgd2UgaGF2ZSBhbnkgcHJlY2lzaW9uIGxlZnQsIG9yIGEKKyAgICAgICAgICAgICAgICAvLyB6ZXJvIGlmIHdlIGRvbid0LiAgV2UgZG9uJ3Qgd2FudCB0byBvdXRwdXQgbm9pc2UgZGlnaXRzLgorICAgICAgICAgICAgICAgIGlmICghaXNJbnRlZ2VyICYmIGRpZ2l0SW5kZXggPCBkaWdpdExpc3QuY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcikoZGlnaXRMaXN0LmRpZ2l0c1tkaWdpdEluZGV4KytdICsgemVyb0RlbHRhKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZWFjaCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAgICAgICAgICAgICAgICAvLyBkaWdpdHMsIG9yIGlmIHdlIG91dHB1dCBhbGwgdGhlIHJlYWwgZGlnaXRzIGFuZAorICAgICAgICAgICAgICAgIC8vIHJlYWNoIHRoZSBtaW5pbXVtLCB0aGVuIHdlIGFyZSBkb25lLgorICAgICAgICAgICAgICAgICsrc2lnQ291bnQ7CisgICAgICAgICAgICAgICAgaWYgKHVzZVNpZ0RpZyAmJgorICAgICAgICAgICAgICAgICAgICAoc2lnQ291bnQgPT0gbWF4U2lnRGlnIHx8CisgICAgICAgICAgICAgICAgICAgICAoZGlnaXRJbmRleCA9PSBkaWdpdExpc3QuY291bnQgJiYgc2lnQ291bnQgPj0gbWluU2lnRGlnKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisJCQkvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKwkJCWlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LkZSQUNUSU9OX0ZJRUxEKSB7CisJCQkJZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworCQkJfQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCS8vIFtTcGFyay9DRExdIEFkZCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gaWYgbmVjZXNzYXJ5LgorCQkJaWYgKHBhcnNlQXR0ciAmJiAoZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duIHx8IGZyYWN0aW9uUHJlc2VudCkpIHsKKwkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuRlJBQ1RJT04sIGZyYWNCZWdpbiwgcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCX0KKy8vI2VuZGlmCisJCX0KKworCQlpbnQgc3VmZml4TGVuID0gYXBwZW5kQWZmaXgocmVzdWx0LCBpc05lZ2F0aXZlLCBmYWxzZSwgcGFyc2VBdHRyKTsKKworICAgICAgICAvLyBbTkVXXQorICAgICAgICBhZGRQYWRkaW5nKHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgcHJlZml4TGVuLCBzdWZmaXhMZW4pOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIFtORVddCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGFkZFBhZGRpbmcoU3RyaW5nQnVmZmVyIHJlc3VsdCwgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmVmaXhMZW4sIGludCBzdWZmaXhMZW4pIHsKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCkgeworICAgICAgICAgICAgaW50IGxlbiA9IGZvcm1hdFdpZHRoIC0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGxlbiA+IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyW10gcGFkZGluZyA9IG5ldyBjaGFyW2xlbl07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdbaV0gPSBwYWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN3aXRjaCAocGFkUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBBRF9BRlRFUl9QUkVGSVg6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQocHJlZml4TGVuLCBwYWRkaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQQURfQkVGT1JFX1BSRUZJWDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydCgwLCBwYWRkaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQQURfQkVGT1JFX1NVRkZJWDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydChyZXN1bHQubGVuZ3RoKCkgLSBzdWZmaXhMZW4sIHBhZGRpbmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFBBRF9BRlRFUl9TVUZGSVg6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGFkZGluZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocGFkUG9zaXRpb24gPT0gUEFEX0JFRk9SRV9QUkVGSVggfHwKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zaXRpb24gPT0gUEFEX0FGVEVSX1BSRUZJWCkgeworICAgICAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgoZmllbGRQb3NpdGlvbi5nZXRCZWdpbkluZGV4KCkgKyBsZW4pOworICAgICAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KGZpZWxkUG9zaXRpb24uZ2V0RW5kSW5kZXgoKSArIGxlbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBQYXJzZSB0aGUgZ2l2ZW4gc3RyaW5nLCByZXR1cm5pbmcgYSA8Y29kZT5OdW1iZXI8L2NvZGU+IG9iamVjdCB0bworICAgICAqIHJlcHJlc2VudCB0aGUgcGFyc2VkIHZhbHVlLiAgPGNvZGU+RG91YmxlPC9jb2RlPiBvYmplY3RzIGFyZSByZXR1cm5lZCB0bworICAgICAqIHJlcHJlc2VudCBub24taW50ZWdyYWwgdmFsdWVzIHdoaWNoIGNhbm5vdCBiZSBzdG9yZWQgaW4gYQorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LiAgVGhlc2UgYXJlIDxjb2RlPk5hTjwvY29kZT4sIGluZmluaXR5LAorICAgICAqIC1pbmZpbml0eSwgYW5kIC0wLjAuICBJZiB7QGxpbmsgI2lzUGFyc2VCaWdEZWNpbWFsKCl9IGlzIGZhbHNlICh0aGUKKyAgICAgKiBkZWZhdWx0KSwgYWxsIG90aGVyIHZhbHVlcyBhcmUgcmV0dXJuZWQgYXMgPGNvZGU+TG9uZzwvY29kZT4sCisgICAgICogPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4sIG9yIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHZhbHVlcywKKyAgICAgKiBpbiB0aGF0IG9yZGVyIG9mIHByZWZlcmVuY2UuIElmIHtAbGluayAjaXNQYXJzZUJpZ0RlY2ltYWwoKX0gaXMgdHJ1ZSwKKyAgICAgKiBhbGwgb3RoZXIgdmFsdWVzIGFyZSByZXR1cm5lZCBhcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB2YWx1c2UuCisgICAgICogSWYgdGhlIHBhcnNlIGZhaWxzLCBudWxsIGlzIHJldHVybmVkLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gZGVmaW5lcyB0aGUgcG9zaXRpb24gd2hlcmUgcGFyc2luZyBpcyB0byBiZWdpbiwKKyAgICAgKiBhbmQgdXBvbiByZXR1cm4sIHRoZSBwb3NpdGlvbiB3aGVyZSBwYXJzaW5nIGxlZnQgb2ZmLiAgSWYgdGhlIHBvc2l0aW9uCisgICAgICogaGFzIG5vdCBjaGFuZ2VkIHVwb24gcmV0dXJuLCB0aGVuIHBhcnNpbmcgZmFpbGVkLgorICAgICAqIEByZXR1cm4gYSA8Y29kZT5OdW1iZXI8L2NvZGU+IG9iamVjdCB3aXRoIHRoZSBwYXJzZWQgdmFsdWUgb3IKKyAgICAgKiA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcGFyc2UgZmFpbGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uKSB7CisgICAgICAgcmV0dXJuIChOdW1iZXIpIHBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUGFyc2VzIHRleHQgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFzIGEgQ3VycmVuY3lBbW91bnQuICBVbmxpa2UKKyAgICAgKiB0aGUgcGFyc2UoKSBtZXRob2QsIHRoaXMgbWV0aG9kIHdpbGwgYXR0ZW1wdCB0byBwYXJzZSBhIGdlbmVyaWMKKyAgICAgKiBjdXJyZW5jeSBuYW1lLCBzZWFyY2hpbmcgZm9yIGEgbWF0Y2ggb2YgdGhpcyBvYmplY3QncyBsb2NhbGUncworICAgICAqIGN1cnJlbmN5IGRpc3BsYXkgbmFtZXMsIG9yIGZvciBhIDMtbGV0dGVyIElTTyBjdXJyZW5jeSBjb2RlLgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZmFpbCBpZiB0aGlzIGZvcm1hdCBpcyBub3QgYSBjdXJyZW5jeSBmb3JtYXQsCisgICAgICogdGhhdCBpcywgaWYgaXQgZG9lcyBub3QgY29udGFpbiB0aGUgY3VycmVuY3kgcGF0dGVybiBzeW1ib2wKKyAgICAgKiAoVSswMEE0KSBpbiBpdHMgcHJlZml4IG9yIHN1ZmZpeC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcG9zIGlucHV0LW91dHB1dCBwb3NpdGlvbjsgb24gaW5wdXQsIHRoZSBwb3NpdGlvbiB3aXRoaW4KKyAgICAgKiB0ZXh0IHRvIG1hdGNoOyBtdXN0IGhhdmUgMCA8PSBwb3MuZ2V0SW5kZXgoKSA8IHRleHQubGVuZ3RoKCk7CisgICAgICogb24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgbWF0Y2hlZCBjaGFyYWN0ZXIuIElmCisgICAgICogdGhlIHBhcnNlIGZhaWxzLCB0aGUgcG9zaXRpb24gaW4gdW5jaGFuZ2VkIHVwb24gb3V0cHV0LgorICAgICAqIEByZXR1cm4gYSBDdXJyZW5jeUFtb3VudCwgb3IgbnVsbCB1cG9uIGZhaWx1cmUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBDdXJyZW5jeUFtb3VudCBwYXJzZUN1cnJlbmN5KFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gKEN1cnJlbmN5QW1vdW50KSBwYXJzZSh0ZXh0LCBwb3MsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0aGUgZ2l2ZW4gdGV4dCBhcyBlaXRoZXIgYSBOdW1iZXIgb3IgYSBDdXJyZW5jeUFtb3VudC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gaW5wdXQtb3V0cHV0IHBvc2l0aW9uOyBvbiBpbnB1dCwgdGhlCisgICAgICogcG9zaXRpb24gd2l0aGluIHRleHQgdG8gbWF0Y2g7IG11c3QgaGF2ZSAwIDw9IHBvcy5nZXRJbmRleCgpIDwKKyAgICAgKiB0ZXh0Lmxlbmd0aCgpOyBvbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBtYXRjaGVkCisgICAgICogY2hhcmFjdGVyLiBJZiB0aGUgcGFyc2UgZmFpbHMsIHRoZSBwb3NpdGlvbiBpbiB1bmNoYW5nZWQgdXBvbgorICAgICAqIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gcGFyc2VDdXJyZW5jeSBpZiB0cnVlLCBhIEN1cnJlbmN5QW1vdW50IGlzIHBhcnNlZCBhbmQKKyAgICAgKiByZXR1cm5lZDsgb3RoZXJ3aXNlIGEgTnVtYmVyIGlzIHBhcnNlZCBhbmQgcmV0dXJuZWQKKyAgICAgKiBAcmV0dXJuIGEgTnVtYmVyIG9yIEN1cnJlbmN5QW1vdW50IG9yIG51bGwKKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdCBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBib29sZWFuIHBhcnNlQ3VycmVuY3kpIHsKKyAgICAgICAgaW50IGJhY2t1cDsKKyAgICAgICAgaW50IGkgPSBiYWNrdXAgPSBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCk7CisKKyAgICAgICAgLy8gSGFuZGxlIE5hTiBhcyBhIHNwZWNpYWwgY2FzZToKKworICAgICAgICAvLyBTa2lwIHBhZGRpbmcgY2hhcmFjdGVycywgaWYgYXJvdW5kIHByZWZpeAorICAgICAgICBpZiAoZm9ybWF0V2lkdGggPiAwICYmIChwYWRQb3NpdGlvbiA9PSBQQURfQkVGT1JFX1BSRUZJWCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRQb3NpdGlvbiA9PSBQQURfQUZURVJfUFJFRklYKSkgeworICAgICAgICAgICAgaSA9IHNraXBQYWRkaW5nKHRleHQsIGkpOworICAgICAgICB9CisgICAgICAgIGlmICh0ZXh0LnJlZ2lvbk1hdGNoZXMoaSwgc3ltYm9scy5nZXROYU4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBzeW1ib2xzLmdldE5hTigpLmxlbmd0aCgpKSkgeworICAgICAgICAgICAgaSArPSBzeW1ib2xzLmdldE5hTigpLmxlbmd0aCgpOworICAgICAgICAgICAgLy8gU2tpcCBwYWRkaW5nIGNoYXJhY3RlcnMsIGlmIGFyb3VuZCBzdWZmaXgKKyAgICAgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgKHBhZFBvc2l0aW9uID09IFBBRF9CRUZPUkVfU1VGRklYIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRQb3NpdGlvbiA9PSBQQURfQUZURVJfU1VGRklYKSkgeworICAgICAgICAgICAgICAgIGkgPSBza2lwUGFkZGluZyh0ZXh0LCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoaSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShEb3VibGUuTmFOKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5hTiBwYXJzZSBmYWlsZWQ7IHN0YXJ0IG92ZXIKKyAgICAgICAgaSA9IGJhY2t1cDsKKworICAgICAgICBib29sZWFuW10gc3RhdHVzID0gbmV3IGJvb2xlYW5bU1RBVFVTX0xFTkdUSF07CisgICAgICAgIEN1cnJlbmN5W10gY3VycmVuY3kgPSBwYXJzZUN1cnJlbmN5ID8gbmV3IEN1cnJlbmN5WzFdIDogbnVsbDsKKyAgICAgICAgaWYgKCFzdWJwYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBkaWdpdExpc3QsIGZhbHNlLCBzdGF0dXMsIGN1cnJlbmN5KSkgeworICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChiYWNrdXApOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBOdW1iZXIgbiA9IG51bGw7CisKKyAgICAgICAgLy8gSGFuZGxlIGluZmluaXR5CisgICAgICAgIGlmIChzdGF0dXNbU1RBVFVTX0lORklOSVRFXSkgeworICAgICAgICAgICAgbiA9IG5ldyBEb3VibGUoc3RhdHVzW1NUQVRVU19QT1NJVElWRV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgID8gRG91YmxlLlBPU0lUSVZFX0lORklOSVRZCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBIYW5kbGUgLTAuMAorICAgICAgICBlbHNlIGlmICghc3RhdHVzW1NUQVRVU19QT1NJVElWRV0gJiYgZGlnaXRMaXN0LmlzWmVybygpKSB7CisgICAgICAgICAgICBuID0gbmV3IERvdWJsZSgtMC4wKTsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gRG8gYXMgbXVjaCBvZiB0aGUgbXVsdGlwbGllciBjb252ZXJzaW9uIGFzIHBvc3NpYmxlIHdpdGhvdXQKKyAgICAgICAgICAgIC8vIGxvc2luZyBhY2N1cmFjeS4KKyAgICAgICAgICAgIGludCBtdWx0ID0gbXVsdGlwbGllcjsgLy8gRG9uJ3QgbW9kaWZ5IHRoaXMubXVsdGlwbGllcgorICAgICAgICAgICAgd2hpbGUgKG11bHQgJSAxMCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLS1kaWdpdExpc3QuZGVjaW1hbEF0OworICAgICAgICAgICAgICAgIG11bHQgLz0gMTA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEhhbmRsZSBpbnRlZ3JhbCB2YWx1ZXMKKyAgICAgICAgICAgIGlmICghcGFyc2VCaWdEZWNpbWFsICYmIG11bHQgPT0gMSAmJiBkaWdpdExpc3QuaXNJbnRlZ3JhbCgpKSB7CisgICAgICAgICAgICAgICAgLy8gaGFjayBxdWljayBsb25nCisgICAgICAgICAgICAgICAgaWYgKGRpZ2l0TGlzdC5kZWNpbWFsQXQgPCAxMikgeyAvLyBxdWljayBjaGVjayBmb3IgbG9uZworICAgICAgICAgICAgICAgICAgICBsb25nIGwgPSAwOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG54ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChueCA8IGRpZ2l0TGlzdC5jb3VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwgPSBsICogMTAgKyAoY2hhcilkaWdpdExpc3QuZGlnaXRzW254KytdIC0gJzAnOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG54KysgPCBkaWdpdExpc3QuZGVjaW1hbEF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCAqPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RhdHVzW1NUQVRVU19QT1NJVElWRV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gLWw7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbiA9IG5ldyBMb25nKGwpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEJpZ0ludGVnZXIgYmlnID0gZGlnaXRMaXN0LmdldEJpZ0ludGVnZXIoc3RhdHVzW1NUQVRVU19QT1NJVElWRV0pOworICAgICAgICAgICAgICAgICAgICBuID0gKGJpZy5iaXRMZW5ndGgoKSA8IDY0KSA/CisgICAgICAgICAgICAgICAgICAgICAgICAoTnVtYmVyKSBuZXcgTG9uZyhiaWcubG9uZ1ZhbHVlKCkpIDogKE51bWJlcikgYmlnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSGFuZGxlIG5vbi1pbnRlZ3JhbCB2YWx1ZXMgb3IgdGhlIGNhc2Ugd2hlcmUgcGFyc2VCaWdEZWNpbWFsIGlzIHNldAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgQmlnRGVjaW1hbCBiaWcgPSBkaWdpdExpc3QuZ2V0QmlnRGVjaW1hbElDVShzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSk7CisgICAgICAgICAgICAgICAgbiA9IGJpZzsKKyAgICAgICAgICAgICAgICBpZiAobXVsdCAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIG4gPSBiaWcuZGl2aWRlKEJpZ0RlY2ltYWwudmFsdWVPZihtdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXNzZW1ibGUgaW50byBDdXJyZW5jeUFtb3VudCBpZiBuZWNlc3NhcnkKKyAgICAgICAgcmV0dXJuIHBhcnNlQ3VycmVuY3kgPyAoT2JqZWN0KSBuZXcgQ3VycmVuY3lBbW91bnQobiwgY3VycmVuY3lbMF0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKE9iamVjdCkgbjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVFVTX0lORklOSVRFID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVFVTX1BPU0lUSVZFID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVFVTX0xFTkdUSCAgID0gMjsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUGFyc2UgdGhlIGdpdmVuIHRleHQgaW50byBhIG51bWJlci4gIFRoZSB0ZXh0IGlzIHBhcnNlZCBiZWdpbm5pbmcgYXQKKyAgICAgKiBwYXJzZVBvc2l0aW9uLCB1bnRpbCBhbiB1bnBhcnNlYWJsZSBjaGFyYWN0ZXIgaXMgc2Vlbi4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlLgorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIFRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBiZWluZyBwYXJzaW5nLiAgVXBvbgorICAgICAqIHJldHVybiwgdGhlIGZpcnN0IHVucGFyc2VhYmxlIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gZGlnaXRzIFRoZSBEaWdpdExpc3QgdG8gc2V0IHRvIHRoZSBwYXJzZWQgdmFsdWUuCisgICAgICogQHBhcmFtIGlzRXhwb25lbnQgSWYgdHJ1ZSwgcGFyc2UgYW4gZXhwb25lbnQuICBUaGlzIG1lYW5zIG5vCisgICAgICogaW5maW5pdGUgdmFsdWVzIGFuZCBpbnRlZ2VyIG9ubHkuCisgICAgICogQHBhcmFtIHN0YXR1cyBVcG9uIHJldHVybiBjb250YWlucyBib29sZWFuIHN0YXR1cyBmbGFncyBpbmRpY2F0aW5nCisgICAgICogd2hldGhlciB0aGUgdmFsdWUgd2FzIGluZmluaXRlIGFuZCB3aGV0aGVyIGl0IHdhcyBwb3NpdGl2ZS4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgcmV0dXJuIHZhbHVlIGZvciBwYXJzZWQgY3VycmVuY3ksIGZvciBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBvciBudWxsIGZvciBub3JtYWwgcGFyc2luZy4gSW4gZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IHBhcnNpbmcgbW9kZSwgYW55IGN1cnJlbmN5IGlzIHBhcnNlZCwgbm90IGp1c3QgdGhlCisgICAgICogY3VycmVuY3kgdGhhdCB0aGlzIGZvcm1hdHRlciBpcyBzZXQgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIHN1YnBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sCisgICAgICAgICAgICAgICAgICAgRGlnaXRMaXN0IGRpZ2l0cywgYm9vbGVhbiBpc0V4cG9uZW50LAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3RhdHVzW10sIEN1cnJlbmN5IGN1cnJlbmN5W10pCisgICAgeworICAgICAgICBpbnQgcG9zaXRpb24gPSBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCk7CisgICAgICAgIGludCBvbGRTdGFydCA9IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKTsKKworICAgICAgICAvLyBNYXRjaCBwYWRkaW5nIGJlZm9yZSBwcmVmaXgKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCAmJiBwYWRQb3NpdGlvbiA9PSBQQURfQkVGT1JFX1BSRUZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYXRjaCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcHJlZml4ZXM7IHByZWZlciBsb25nZXN0IG1hdGNoLgorICAgICAgICBpbnQgcG9zTWF0Y2ggPSBjb21wYXJlQWZmaXgodGV4dCwgcG9zaXRpb24sIGZhbHNlLCB0cnVlLCBjdXJyZW5jeSk7CisgICAgICAgIGludCBuZWdNYXRjaCA9IGNvbXBhcmVBZmZpeCh0ZXh0LCBwb3NpdGlvbiwgdHJ1ZSwgdHJ1ZSwgY3VycmVuY3kpOworICAgICAgICBpZiAocG9zTWF0Y2ggPj0gMCAmJiBuZWdNYXRjaCA+PSAwKSB7CisgICAgICAgICAgICBpZiAocG9zTWF0Y2ggPiBuZWdNYXRjaCkgeworICAgICAgICAgICAgICAgIG5lZ01hdGNoID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5lZ01hdGNoID4gcG9zTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBwb3NNYXRjaCA9IC0xOworICAgICAgICAgICAgfSAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKHBvc01hdGNoID49IDApIHsKKyAgICAgICAgICAgIHBvc2l0aW9uICs9IHBvc01hdGNoOworICAgICAgICB9IGVsc2UgaWYgKG5lZ01hdGNoID49IDApIHsKKyAgICAgICAgICAgIHBvc2l0aW9uICs9IG5lZ01hdGNoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1hdGNoIHBhZGRpbmcgYWZ0ZXIgcHJlZml4CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgcGFkUG9zaXRpb24gPT0gUEFEX0FGVEVSX1BSRUZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBwcm9jZXNzIGRpZ2l0cyBvciBJbmYsIGZpbmQgZGVjaW1hbCBwb3NpdGlvbgorICAgICAgICBzdGF0dXNbU1RBVFVTX0lORklOSVRFXSA9IGZhbHNlOworICAgICAgICBpZiAoIWlzRXhwb25lbnQgJiYgdGV4dC5yZWdpb25NYXRjaGVzKHBvc2l0aW9uLHN5bWJvbHMuZ2V0SW5maW5pdHkoKSwwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLmdldEluZmluaXR5KCkubGVuZ3RoKCkpKQorICAgICAgICB7CisgICAgICAgICAgICBwb3NpdGlvbiArPSBzeW1ib2xzLmdldEluZmluaXR5KCkubGVuZ3RoKCk7CisgICAgICAgICAgICBzdGF0dXNbU1RBVFVTX0lORklOSVRFXSA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBXZSBub3cgaGF2ZSBhIHN0cmluZyBvZiBkaWdpdHMsIHBvc3NpYmx5IHdpdGggZ3JvdXBpbmcgc3ltYm9scywKKyAgICAgICAgICAgIC8vIGFuZCBkZWNpbWFsIHBvaW50cy4gIFdlIHdhbnQgdG8gcHJvY2VzcyB0aGVzZSBpbnRvIGEgRGlnaXRMaXN0LgorICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwdXQgYSBidW5jaCBvZiBsZWFkaW5nIHplcm9zIGludG8gdGhlIERpZ2l0TGlzdAorICAgICAgICAgICAgLy8gdGhvdWdoLCBzbyB3ZSBrZWVwIHRyYWNrIG9mIHRoZSBsb2NhdGlvbiBvZiB0aGUgZGVjaW1hbCBwb2ludCwKKyAgICAgICAgICAgIC8vIHB1dCBvbmx5IHNpZ25pZmljYW50IGRpZ2l0cyBpbnRvIHRoZSBEaWdpdExpc3QsIGFuZCBhZGp1c3QgdGhlCisgICAgICAgICAgICAvLyBleHBvbmVudCBhcyBuZWVkZWQuCisKKyAgICAgICAgICAgIGRpZ2l0cy5kZWNpbWFsQXQgPSBkaWdpdHMuY291bnQgPSAwOworICAgICAgICAgICAgY2hhciB6ZXJvID0gc3ltYm9scy5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgICAgIGNoYXIgZGVjaW1hbCA9IGlzQ3VycmVuY3lGb3JtYXQgPworICAgICAgICAgICAgc3ltYm9scy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSA6IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAgICAgY2hhciBncm91cGluZyA9IHN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBvbmVudFNlcCA9IHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gc2F3RGVjaW1hbCA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdFeHBvbmVudCA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdEaWdpdCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGV4cG9uZW50ID0gMDsgLy8gU2V0IHRvIHRoZSBleHBvbmVudCB2YWx1ZSwgaWYgYW55CisgICAgICAgICAgICBpbnQgZGlnaXQgPSAwOworCisgICAgICAgICAgICAvLyBzdHJpY3QgcGFyc2luZworICAgICAgICAgICAgYm9vbGVhbiBzdHJpY3RQYXJzZSA9IGlzUGFyc2VTdHJpY3QoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gc3RyaWN0RmFpbCA9IGZhbHNlOyAvLyBkaWQgd2UgZXhpdCB3aXRoIGEgc3RyaWN0IHBhcnNlIGZhaWx1cmU/CisgICAgICAgICAgICBib29sZWFuIGxlYWRpbmdaZXJvID0gZmFsc2U7IC8vIGRpZCB3ZSBzZWUgYSBsZWFkaW5nIHplcm8/CisgICAgICAgICAgICBpbnQgbGFzdEdyb3VwID0gLTE7IC8vIHdoZXJlIGRpZCB3ZSBsYXN0IHNlZSBhIGdyb3VwaW5nIHNlcGFyYXRvcj8KKyAgICAgICAgICAgIGludCBwcmV2R3JvdXAgPSAtMTsgLy8gd2hlcmUgZGlkIHdlIHNlZSB0aGUgZ3JvdXBpbmcgc2VwYXJhdG9yIGJlZm9yZSB0aGF0PworICAgICAgICAgICAgaW50IGdzMiA9IGdyb3VwaW5nU2l6ZTIgPT0gMCA/IGdyb3VwaW5nU2l6ZSA6IGdyb3VwaW5nU2l6ZTI7CisKKyAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gdHJhY2sgZGlnaXRDb3VudCBvdXJzZWx2ZXMsIGJlY2F1c2UgZGlnaXRzLmNvdW50IHdpbGwKKyAgICAgICAgICAgIC8vIHBpbiB3aGVuIHRoZSBtYXhpbXVtIGFsbG93YWJsZSBkaWdpdHMgaXMgcmVhY2hlZC4KKyAgICAgICAgICAgIGludCBkaWdpdENvdW50ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGJhY2t1cCA9IC0xOworICAgICAgICAgICAgZm9yICg7IHBvc2l0aW9uIDwgdGV4dC5sZW5ndGgoKTsgKytwb3NpdGlvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGV4dC5jaGFyQXQocG9zaXRpb24pOworCisgICAgICAgICAgICAgICAgLyogV2UgcmVjb2duaXplIGFsbCBkaWdpdCByYW5nZXMsIG5vdCBvbmx5IHRoZSBMYXRpbiBkaWdpdCByYW5nZQorICAgICAgICAgICAgICAgICAqICcwJy4uJzknLiAgV2UgZG8gc28gYnkgdXNpbmcgdGhlIFVDaGFyYWN0ZXIuZGlnaXQoKSBtZXRob2QsCisgICAgICAgICAgICAgICAgICogd2hpY2ggY29udmVydHMgYSB2YWxpZCBVbmljb2RlIGRpZ2l0IHRvIHRoZSByYW5nZSAwLi45LgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogVGhlIGNoYXJhY3RlciAnY2gnIG1heSBiZSBhIGRpZ2l0LiAgSWYgc28sIHBsYWNlIGl0cyB2YWx1ZQorICAgICAgICAgICAgICAgICAqIGZyb20gMCB0byA5IGluICdkaWdpdCcuICBGaXJzdCB0cnkgdXNpbmcgdGhlIGxvY2FsZSBkaWdpdCwKKyAgICAgICAgICAgICAgICAgKiB3aGljaCBtYXkgb3IgTUFZIE5PVCBiZSBhIHN0YW5kYXJkIFVuaWNvZGUgZGlnaXQgcmFuZ2UuICBJZgorICAgICAgICAgICAgICAgICAqIHRoaXMgZmFpbHMsIHRyeSB1c2luZyB0aGUgc3RhbmRhcmQgVW5pY29kZSBkaWdpdCByYW5nZXMgYnkKKyAgICAgICAgICAgICAgICAgKiBjYWxsaW5nIFVDaGFyYWN0ZXIuZGlnaXQoKS4gIElmIHRoaXMgYWxzbyBmYWlscywgZGlnaXQgd2lsbAorICAgICAgICAgICAgICAgICAqIGhhdmUgYSB2YWx1ZSBvdXRzaWRlIHRoZSByYW5nZSAwLi45LgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGRpZ2l0ID0gY2ggLSB6ZXJvOworICAgICAgICAgICAgICAgIGlmIChkaWdpdCA8IDAgfHwgZGlnaXQgPiA5KSBkaWdpdCA9IFVDaGFyYWN0ZXIuZGlnaXQoY2gsIDEwKTsKKworICAgICAgICAgICAgICAgIGlmIChkaWdpdCA9PSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ2FuY2VsIG91dCBiYWNrdXAgc2V0dGluZyAoc2VlIGdyb3VwaW5nIGhhbmRsZXIgYmVsb3cpCisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpY3RQYXJzZSAmJiBiYWNrdXAgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1hIGZvbGxvd2VkIGJ5IGRpZ2l0LCBzbyBncm91cCBiZWZvcmUgY29tbWEgaXMgYSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZGFyeSBncm91cC4gIElmIHRoZXJlIHdhcyBhIGdyb3VwIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoYXQsIHRoZSBncm91cCBtdXN0ID09IHRoZSBzZWNvbmRhcnkgZ3JvdXAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aCwgZWxzZSBpdCBjYW4gYmUgPD0gdGhlIHRoZSBzZWNvbmRhcnkgZ3JvdXAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobGFzdEdyb3VwICE9IC0xICYmIGJhY2t1cCAtIGxhc3RHcm91cCAtIDEgIT0gZ3MyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXN0R3JvdXAgPT0gLTEgJiYgcG9zaXRpb24gLSBvbGRTdGFydCAtIDEgPiBnczIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaWN0RmFpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2R3JvdXAgPSBsYXN0R3JvdXA7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0R3JvdXAgPSBiYWNrdXA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gLTE7IC8vIERvIHRoaXMgQkVGT1JFIGNvbnRpbnVlIHN0YXRlbWVudCBiZWxvdyEhIQorICAgICAgICAgICAgICAgICAgICBzYXdEaWdpdCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGxlYWRpbmcgemVyb3MKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0cy5jb3VudCA9PSAwKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNhd0RlY2ltYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaWN0UGFyc2UgJiYgIWlzRXhwb25lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxsb3cgbGVhZGluZyB6ZXJvcyBpbiBleHBvbmVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWRpbmdaZXJvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpY3RGYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRpbmdaZXJvID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGxlYWRpbmcgemVyb3MgaW4gaW50ZWdlciBwYXJ0IG9mIG51bWJlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBzZWVuIHRoZSBkZWNpbWFsLCBidXQgbm8gc2lnbmlmaWNhbnQgZGlnaXRzIHlldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgYWNjb3VudCBmb3IgbGVhZGluZyB6ZXJvcyBieSBkZWNyZW1lbnRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaWdpdHMuZGVjaW1hbEF0IGludG8gbmVnYXRpdmUgdmFsdWVzLgorICAgICAgICAgICAgICAgICAgICAgICAgLS1kaWdpdHMuZGVjaW1hbEF0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgKytkaWdpdENvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgZGlnaXRzLmFwcGVuZCgoY2hhcikoZGlnaXQgKyAnMCcpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChkaWdpdCA+IDAgJiYgZGlnaXQgPD0gOSkgLy8gW3NpY10gZGlnaXQ9PTAgaGFuZGxlZCBhYm92ZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmljdFBhcnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVhZGluZ1plcm8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGxlYWRpbmcgemVybyBiZWZvcmUgYSBkaWdpdCBpcyBhbiBlcnJvciB3aXRoIHN0cmljdCBwYXJzaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaWN0RmFpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFja3VwICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChsYXN0R3JvdXAgIT0gLTEgJiYgYmFja3VwIC0gbGFzdEdyb3VwIC0gMSAhPSBnczIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXN0R3JvdXAgPT0gLTEgJiYgcG9zaXRpb24gLSBvbGRTdGFydCAtIDEgPiBnczIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdEZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkdyb3VwID0gbGFzdEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RHcm91cCA9IGJhY2t1cDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHNhd0RpZ2l0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgKytkaWdpdENvdW50OworICAgICAgICAgICAgICAgICAgICBkaWdpdHMuYXBwZW5kKChjaGFyKShkaWdpdCArICcwJykpOworCisgICAgICAgICAgICAgICAgICAgIC8vIENhbmNlbCBvdXQgYmFja3VwIHNldHRpbmcgKHNlZSBncm91cGluZyBoYW5kbGVyIGJlbG93KQorICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWlzRXhwb25lbnQgJiYgY2ggPT0gZGVjaW1hbCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpY3RQYXJzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhY2t1cCAhPSAtMSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXN0R3JvdXAgIT0gLTEgJiYgcG9zaXRpb24gLSBsYXN0R3JvdXAgIT0gZ3JvdXBpbmdTaXplICsgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpY3RGYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBvbmx5IHBhcnNpbmcgaW50ZWdlcnMsIG9yIGlmIHdlIEFMUkVBRFkgc2F3IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBkZWNpbWFsLCB0aGVuIGRvbid0IHBhcnNlIHRoaXMgb25lLgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYXJzZUludGVnZXJPbmx5KCkgfHwgc2F3RGVjaW1hbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRpZ2l0cy5kZWNpbWFsQXQgPSBkaWdpdENvdW50OyAvLyBOb3QgZGlnaXRzLmNvdW50IQorICAgICAgICAgICAgICAgICAgICBzYXdEZWNpbWFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbGVhZGluZ1plcm8gPSBmYWxzZTsgLy8gYSBzaW5nbGUgbGVhZGluZyB6ZXJvIGJlZm9yZSBhIGRlY2ltYWwgaXMgb2sKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWlzRXhwb25lbnQgJiYgY2ggPT0gZ3JvdXBpbmcgJiYgaXNHcm91cGluZ1VzZWQoKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzYXdEZWNpbWFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaWN0UGFyc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoIXNhd0RpZ2l0IHx8IGJhY2t1cCAhPSAtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFkaW5nIGdyb3VwLCBvciB0d28gZ3JvdXAgc2VwYXJhdG9ycyBpbiBhIHJvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdEZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBncm91cGluZyBjaGFyYWN0ZXJzLCBpZiB3ZSBhcmUgdXNpbmcgdGhlbSwgYnV0IHJlcXVpcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCB0aGV5IGJlIGZvbGxvd2VkIGJ5IGEgZGlnaXQuICBPdGhlcndpc2Ugd2UgYmFja3VwIGFuZAorICAgICAgICAgICAgICAgICAgICAvLyByZXByb2Nlc3MgdGhlbS4KKyAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gcG9zaXRpb247CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc0V4cG9uZW50ICYmICFzYXdFeHBvbmVudCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVnaW9uTWF0Y2hlcyhwb3NpdGlvbiwgZXhwb25lbnRTZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGV4cG9uZW50U2VwLmxlbmd0aCgpKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlIHNpZ24sIGlmIHByZXNlbnQKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBuZWdFeHAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IHBvc2l0aW9uICsgZXhwb25lbnRTZXAubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gc3ltYm9scy5nZXRQbHVzU2lnbigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHN5bWJvbHMuZ2V0TWludXNTaWduKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWdFeHAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgRGlnaXRMaXN0IGV4cG9uZW50RGlnaXRzID0gbmV3IERpZ2l0TGlzdCgpOworICAgICAgICAgICAgICAgICAgICBleHBvbmVudERpZ2l0cy5jb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IHRleHQuY2hhckF0KHBvcykgLSB6ZXJvOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0IDwgMCB8fCBkaWdpdCA+IDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuJ3QgcGFyc2UgIlsxRTBdIiB3aGVuIHBhdHRlcm4gaXMgIjAuIyMjRTA7WzAuIyMjRTBdIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hvdWxkIHVwZGF0ZSByZWFzc2lnbiB0aGUgdmFsdWUgb2YgJ2NoJyBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6ICBkaWdpdCA9IENoYXJhY3Rlci5kaWdpdChjaCwgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlnaXQgPSBVQ2hhcmFjdGVyLmRpZ2l0KHRleHQuY2hhckF0KHBvcyksIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdCA+PSAwICYmIGRpZ2l0IDw9IDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvbmVudERpZ2l0cy5hcHBlbmQoKGNoYXIpKGRpZ2l0ICsgJzAnKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoZXhwb25lbnREaWdpdHMuY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWZlciBzdHJpY3QgcGFyc2UgdW50aWwgd2Uga25vdyB3ZSBoYXZlIGEgYm9uYS1maWRlIGV4cG9uZW50CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaWN0UGFyc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFja3VwICE9IC0xIHx8IGxhc3RHcm91cCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpY3RGYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBleHBvbmVudERpZ2l0cy5kZWNpbWFsQXQgPSBleHBvbmVudERpZ2l0cy5jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gKGludCkgZXhwb25lbnREaWdpdHMuZ2V0TG9uZygpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5lZ0V4cCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gLWV4cG9uZW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3M7IC8vIEFkdmFuY2UgcGFzdCB0aGUgZXhwb25lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHNhd0V4cG9uZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBXaGV0aGVyIHdlIGZhaWwgb3Igc3VjY2VlZCwgd2UgZXhpdCB0aGlzIGxvb3AKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGJhY2t1cCAhPSAtMSkgcG9zaXRpb24gPSBiYWNrdXA7CisKKyAgICAgICAgICAgIGlmIChzdHJpY3RQYXJzZSAmJiAhc2F3RGVjaW1hbCkgeworICAgICAgICAgICAgICAgIGlmIChsYXN0R3JvdXAgIT0gLTEgJiYgcG9zaXRpb24gLSBsYXN0R3JvdXAgIT0gZ3JvdXBpbmdTaXplICsgMSkgeworICAgICAgICAgICAgICAgICAgICBzdHJpY3RGYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyaWN0RmFpbCkgeworICAgICAgICAgICAgICAgIC8vIG9ubHkgc2V0IHdpdGggc3RyaWN0UGFyc2UgYW5kIGEgbGVhZGluZyB6ZXJvIGVycm9yCisgICAgICAgICAgICAgICAgLy8gbGVhZGluZyB6ZXJvcyBhcmUgYW4gZXJyb3Igd2l0aCBzdHJpY3QgcGFyc2luZyBleGNlcHQKKyAgICAgICAgICAgICAgICAvLyBpbW1lZGlhdGVseSBiZWZvcmUgbm9uZGlnaXQgKGV4Y2VwdCBncm91cCBzZXBhcmF0b3IgCisgICAgICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgZGlnaXQpLCBvciBlbmQgb2YgdGV4dC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KG9sZFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocG9zaXRpb24pOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIG5vIGRlY2ltYWwgcG9pbnQgd2UgaGF2ZSBhbiBpbnRlZ2VyCisgICAgICAgICAgICBpZiAoIXNhd0RlY2ltYWwpIGRpZ2l0cy5kZWNpbWFsQXQgPSBkaWdpdENvdW50OyAvLyBOb3QgZGlnaXRzLmNvdW50IQorCisgICAgICAgICAgICAvLyBBZGp1c3QgZm9yIGV4cG9uZW50LCBpZiBhbnkKKyAgICAgICAgICAgIGRpZ2l0cy5kZWNpbWFsQXQgKz0gZXhwb25lbnQ7CisKKyAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIHRleHQgc3RyaW5nIHdhcyByZWNvZ25pemVkLiAgRm9yIGV4YW1wbGUsIHBhcnNlCisgICAgICAgICAgICAvLyAieCIgd2l0aCBwYXR0ZXJuICIjMC4wMCIgKHJldHVybiBpbmRleCBhbmQgZXJyb3IgaW5kZXggYm90aCAwKQorICAgICAgICAgICAgLy8gcGFyc2UgIiQiIHdpdGggcGF0dGVybiAiJCMwLjAwIi4gKHJldHVybiBpbmRleCAwIGFuZCBlcnJvciBpbmRleAorICAgICAgICAgICAgLy8gMSkuCisgICAgICAgICAgICBpZiAoIXNhd0RpZ2l0ICYmIGRpZ2l0Q291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleChvbGRTdGFydCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTWF0Y2ggcGFkZGluZyBiZWZvcmUgc3VmZml4CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgcGFkUG9zaXRpb24gPT0gUEFEX0JFRk9SRV9TVUZGSVgpIHsKKyAgICAgICAgICAgIHBvc2l0aW9uID0gc2tpcFBhZGRpbmcodGV4dCwgcG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgLy8gTWF0Y2ggcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHN1ZmZpeGVzOyBwcmVmZXIgbG9uZ2VzdCBtYXRjaC4KKyAgICAgICAgaWYgKHBvc01hdGNoID49IDApIHsKKyAgICAgICAgICAgIHBvc01hdGNoID0gY29tcGFyZUFmZml4KHRleHQsIHBvc2l0aW9uLCBmYWxzZSwgZmFsc2UsIGN1cnJlbmN5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmVnTWF0Y2ggPj0gMCkgeworICAgICAgICAgICAgbmVnTWF0Y2ggPSBjb21wYXJlQWZmaXgodGV4dCwgcG9zaXRpb24sIHRydWUsIGZhbHNlLCBjdXJyZW5jeSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBvc01hdGNoID49IDAgJiYgbmVnTWF0Y2ggPj0gMCkgeworICAgICAgICAgICAgaWYgKHBvc01hdGNoID4gbmVnTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBuZWdNYXRjaCA9IC0xOworICAgICAgICAgICAgfSBlbHNlIGlmIChuZWdNYXRjaCA+IHBvc01hdGNoKSB7CisgICAgICAgICAgICAgICAgcG9zTWF0Y2ggPSAtMTsKKyAgICAgICAgICAgIH0gIAorICAgICAgICB9CisKKyAgICAgICAgLy8gRmFpbCBpZiBuZWl0aGVyIG9yIGJvdGgKKyAgICAgICAgaWYgKChwb3NNYXRjaCA+PSAwKSA9PSAobmVnTWF0Y2ggPj0gMCkpIHsKKyAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleChwb3NpdGlvbik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwb3NpdGlvbiArPSAocG9zTWF0Y2g+PTAgPyBwb3NNYXRjaCA6IG5lZ01hdGNoKTsKKworICAgICAgICAvLyBNYXRjaCBwYWRkaW5nIGFmdGVyIHN1ZmZpeAorICAgICAgICBpZiAoZm9ybWF0V2lkdGggPiAwICYmIHBhZFBvc2l0aW9uID09IFBBRF9BRlRFUl9TVUZGSVgpIHsKKyAgICAgICAgICAgIHBvc2l0aW9uID0gc2tpcFBhZGRpbmcodGV4dCwgcG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwb3NpdGlvbik7CisKKyAgICAgICAgc3RhdHVzW1NUQVRVU19QT1NJVElWRV0gPSAocG9zTWF0Y2ggPj0gMCk7CisKKyAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA9PSBvbGRTdGFydCkgeworICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdGFydGluZyBhdCBwb3NpdGlvbiwgYWR2YW5jZSBwYXN0IGEgcnVuIG9mIHBhZCBjaGFyYWN0ZXJzLCBpZiBhbnkuCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHBvc2l0aW9uIHRoYXQgaXMgbm90IGEgcGFkCisgICAgICogY2hhcmFjdGVyLiAgUmVzdWx0IGlzID49IHBvc2l0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IHNraXBQYWRkaW5nKFN0cmluZyB0ZXh0LCBpbnQgcG9zaXRpb24pIHsKKyAgICAgICAgd2hpbGUgKHBvc2l0aW9uIDwgdGV4dC5sZW5ndGgoKSAmJiB0ZXh0LmNoYXJBdChwb3NpdGlvbikgPT0gcGFkKSB7CisgICAgICAgICAgICArK3Bvc2l0aW9uOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBtYXRjaGVkIGJ5IHRoZSBnaXZlbiBhZmZpeCwgb3IgLTEgaWYgbm9uZS4KKyAgICAgKiBSdW5zIG9mIHdoaXRlIHNwYWNlIGluIHRoZSBhZmZpeCwgbWF0Y2ggcnVucyBvZiB3aGl0ZSBzcGFjZSBpbgorICAgICAqIHRoZSBpbnB1dC4gIFBhdHRlcm4gd2hpdGUgc3BhY2UgYW5kIGlucHV0IHdoaXRlIHNwYWNlIGFyZQorICAgICAqIGRldGVybWluZWQgZGlmZmVyZW50bHk7IHNlZSBjb2RlLgorICAgICAqIEBwYXJhbSB0ZXh0IGlucHV0IHRleHQKKyAgICAgKiBAcGFyYW0gcG9zIG9mZnNldCBpbnRvIGlucHV0IGF0IHdoaWNoIHRvIGJlZ2luIG1hdGNoaW5nCisgICAgICogQHBhcmFtIGlzTmVnYXRpdmUKKyAgICAgKiBAcGFyYW0gaXNQcmVmaXgKKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgcmV0dXJuIHZhbHVlIGZvciBwYXJzZWQgY3VycmVuY3ksIGZvciBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBvciBudWxsIGZvciBub3JtYWwgcGFyc2luZy4gSW4gZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IHBhcnNpbmcgbW9kZSwgYW55IGN1cnJlbmN5IGlzIHBhcnNlZCwgbm90IGp1c3QgdGhlCisgICAgICogY3VycmVuY3kgdGhhdCB0aGlzIGZvcm1hdHRlciBpcyBzZXQgdG8uCisgICAgICogQHJldHVybiBsZW5ndGggb2YgaW5wdXQgdGhhdCBtYXRjaGVzLCBvciAtMSBpZiBtYXRjaCBmYWlsdXJlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUFmZml4KFN0cmluZyB0ZXh0LCBpbnQgcG9zLCBib29sZWFuIGlzTmVnYXRpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNQcmVmaXgsIEN1cnJlbmN5W10gY3VycmVuY3kpIHsKKyAgICAgICAgaWYgKGN1cnJlbmN5ICE9IG51bGwgfHwgY3VycmVuY3lDaG9pY2UgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDb21wbGV4QWZmaXgoaXNOZWdhdGl2ZSA/IG5lZ1ByZWZpeFBhdHRlcm4gOiBwb3NQcmVmaXhQYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsIHBvcywgY3VycmVuY3kpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNvbXBsZXhBZmZpeChpc05lZ2F0aXZlID8gbmVnU3VmZml4UGF0dGVybiA6IHBvc1N1ZmZpeFBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwgcG9zLCBjdXJyZW5jeSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNQcmVmaXgpIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlU2ltcGxlQWZmaXgoaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlUHJlZml4IDogcG9zaXRpdmVQcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsIHBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZVNpbXBsZUFmZml4KGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVN1ZmZpeCA6IHBvc2l0aXZlU3VmZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LCBwb3MpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggbWF0Y2hlZCBieSB0aGUgZ2l2ZW4gYWZmaXgsIG9yIC0xIGlmIG5vbmUuCisgICAgICogUnVucyBvZiB3aGl0ZSBzcGFjZSBpbiB0aGUgYWZmaXgsIG1hdGNoIHJ1bnMgb2Ygd2hpdGUgc3BhY2UgaW4KKyAgICAgKiB0aGUgaW5wdXQuICBQYXR0ZXJuIHdoaXRlIHNwYWNlIGFuZCBpbnB1dCB3aGl0ZSBzcGFjZSBhcmUKKyAgICAgKiBkZXRlcm1pbmVkIGRpZmZlcmVudGx5OyBzZWUgY29kZS4KKyAgICAgKiBAcGFyYW0gYWZmaXggcGF0dGVybiBzdHJpbmcsIHRha2VuIGFzIGEgbGl0ZXJhbAorICAgICAqIEBwYXJhbSBpbnB1dCBpbnB1dCB0ZXh0CisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgaW50byBpbnB1dCBhdCB3aGljaCB0byBiZWdpbiBtYXRjaGluZworICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIGlucHV0IHRoYXQgbWF0Y2hlcywgb3IgLTEgaWYgbWF0Y2ggZmFpbHVyZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBjb21wYXJlU2ltcGxlQWZmaXgoU3RyaW5nIGFmZml4LCBTdHJpbmcgaW5wdXQsIGludCBwb3MpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zOworICAgICAgICBmb3IgKGludCBpPTA7IGk8YWZmaXgubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQoYWZmaXgsIGkpOworICAgICAgICAgICAgaW50IGxlbiA9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgIC8vIFdlIG1heSBoYXZlIGEgcGF0dGVybiBsaWtlOiBcdTIwMEYgXHUwMDIwCisgICAgICAgICAgICAgICAgLy8gICAgICAgIGFuZCBpbnB1dCB0ZXh0IGxpa2U6IFx1MjAwRiBcdTAwMjAKKyAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgVSsyMDBGIGFuZCBVKzAwMjAgYXJlIFJ1bGVXaGl0ZVNwYWNlIGJ1dCBvbmx5CisgICAgICAgICAgICAgICAgLy8gVSswMDIwIGlzIFVXaGl0ZVNwYWNlLiAgU28gd2UgaGF2ZSB0byBmaXJzdCBkbyBhIGRpcmVjdAorICAgICAgICAgICAgICAgIC8vIG1hdGNoIG9mIHRoZSBydW4gb2YgUlVMRSB3aGl0ZXNwYWNlIGluIHRoZSBwYXR0ZXJuLAorICAgICAgICAgICAgICAgIC8vIHRoZW4gbWF0Y2ggYW55IGV4dHJhIGNoYXJhY3RlcnMuCisgICAgICAgICAgICAgICAgYm9vbGVhbiBsaXRlcmFsTWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgaW5wdXQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuY2hhckF0KGlucHV0LCBwb3MpID09IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbE1hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgaSArPSBsZW47CisgICAgICAgICAgICAgICAgICAgIHBvcyArPSBsZW47CisgICAgICAgICAgICAgICAgICAgIGlmIChpID09IGFmZml4Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KGFmZml4LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuID0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIG92ZXIgcnVuIGluIGFmZml4CisgICAgICAgICAgICAgICAgaSA9IHNraXBSdWxlV2hpdGVTcGFjZShhZmZpeCwgaSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSBvdmVyIHJ1biBpbiBpbnB1dCB0ZXh0CisgICAgICAgICAgICAgICAgLy8gTXVzdCBzZWUgYXQgbGVhc3Qgb25lIHdoaXRlIHNwYWNlIGNoYXIgaW4gaW5wdXQsCisgICAgICAgICAgICAgICAgLy8gdW5sZXNzIHdlJ3ZlIGFscmVhZHkgbWF0Y2hlZCBzb21lIGNoYXJhY3RlcnMgbGl0ZXJhbGx5LgorICAgICAgICAgICAgICAgIGludCBzID0gcG9zOworICAgICAgICAgICAgICAgIHBvcyA9IHNraXBVV2hpdGVTcGFjZShpbnB1dCwgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zID09IHMgJiYgIWxpdGVyYWxNYXRjaCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zIDwgaW5wdXQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuY2hhckF0KGlucHV0LCBwb3MpID09IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgaSArPSBsZW47CisgICAgICAgICAgICAgICAgICAgIHBvcyArPSBsZW47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zIC0gc3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcCBvdmVyIGEgcnVuIG9mIHplcm8gb3IgbW9yZSBpc1J1bGVXaGl0ZVNwYWNlKCkgY2hhcmFjdGVycyBhdAorICAgICAqIHBvcyBpbiB0ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBza2lwUnVsZVdoaXRlU3BhY2UoU3RyaW5nIHRleHQsIGludCBwb3MpIHsKKyAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHRleHQsIHBvcyk7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcCBvdmVyIGEgcnVuIG9mIHplcm8gb3IgbW9yZSBpc1VXaGl0ZVNwYWNlKCkgY2hhcmFjdGVycyBhdCBwb3MKKyAgICAgKiBpbiB0ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBza2lwVVdoaXRlU3BhY2UoU3RyaW5nIHRleHQsIGludCBwb3MpIHsKKyAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHRleHQsIHBvcyk7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG1hdGNoZWQgYnkgdGhlIGdpdmVuIGFmZml4LCBvciAtMSBpZiBub25lLgorICAgICAqIEBwYXJhbSBhZmZpeFBhdCBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSB0ZXh0IGlucHV0IHRleHQKKyAgICAgKiBAcGFyYW0gcG9zIG9mZnNldCBpbnRvIGlucHV0IGF0IHdoaWNoIHRvIGJlZ2luIG1hdGNoaW5nCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHJldHVybiB2YWx1ZSBmb3IgcGFyc2VkIGN1cnJlbmN5LCBmb3IgZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IHBhcnNpbmcgbW9kZSwgb3IgbnVsbCBmb3Igbm9ybWFsIHBhcnNpbmcuIEluIGdlbmVyaWMKKyAgICAgKiBjdXJyZW5jeSBwYXJzaW5nIG1vZGUsIGFueSBjdXJyZW5jeSBpcyBwYXJzZWQsIG5vdCBqdXN0IHRoZQorICAgICAqIGN1cnJlbmN5IHRoYXQgdGhpcyBmb3JtYXR0ZXIgaXMgc2V0IHRvLgorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIGlucHV0IHRoYXQgbWF0Y2hlcywgb3IgLTEgaWYgbWF0Y2ggZmFpbHVyZQorICAgICAqLworICAgIHByaXZhdGUgaW50IGNvbXBhcmVDb21wbGV4QWZmaXgoU3RyaW5nIGFmZml4UGF0LCBTdHJpbmcgdGV4dCwgaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbmN5W10gY3VycmVuY3kpIHsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8YWZmaXhQYXQubGVuZ3RoKCkgJiYgcG9zID49IDA7ICkgeworICAgICAgICAgICAgY2hhciBjID0gYWZmaXhQYXQuY2hhckF0KGkrKyk7CisgICAgICAgICAgICBpZiAoYyA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGogPSBhZmZpeFBhdC5pbmRleE9mKFFVT1RFLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGogPT0gaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gbWF0Y2godGV4dCwgcG9zLCBRVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpID0gaisxOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA+IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IG1hdGNoKHRleHQsIHBvcywgYWZmaXhQYXQuc3Vic3RyaW5nKGksIGopKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBqKzE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaTxhZmZpeFBhdC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4UGF0LmNoYXJBdChpKT09UVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIFFVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhZ2FpbgorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVudGVybWluYXRlZCBxdW90ZTsgc2hvdWxkIGJlIGNhdWdodCBieSBhcHBseQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSBDVVJSRU5DWV9TSUdOOgorICAgICAgICAgICAgICAgIC8vIElmIGN1cnJlbmN5ICE9IG51bGwsIHRoZW4gcGVyZm9ybSBnZW5lcmljIGN1cnJlbmN5IG1hdGNoaW5nLgorICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgZG8gY3VycmVuY3kgY2hvaWNlIHBhcnNpbmcuCisgICAgICAgICAgICAgICAgLy9hc3NlcnQoY3VycmVuY3kgIT0gbnVsbCB8fAorICAgICAgICAgICAgICAgIC8vICAgICAgIChnZXRDdXJyZW5jeSgpICE9IG51bGwgJiYgY3VycmVuY3lDaG9pY2UgIT0gbnVsbCkpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gaW50bCA9IGk8YWZmaXhQYXQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgYWZmaXhQYXQuY2hhckF0KGkpID09IENVUlJFTkNZX1NJR047CisKKyAgICAgICAgICAgICAgICAvLyBQYXJzZSBnZW5lcmljIGN1cnJlbmN5IC0tIGFueXRoaW5nIGZvciB3aGljaCB3ZQorICAgICAgICAgICAgICAgIC8vIGhhdmUgYSBkaXNwbGF5IG5hbWUsIG9yIGFueSAzLWxldHRlciBJU08gY29kZS4KKyAgICAgICAgICAgICAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gcGFyc2UgZGlzcGxheSBuYW1lIGZvciBvdXIgbG9jYWxlOyBmaXJzdAorICAgICAgICAgICAgICAgICAgICAvLyBkZXRlcm1pbmUgb3VyIGxvY2FsZS4KKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHVsb2MgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXBwbHlQYXR0ZXJuIGhhcyBiZWVuIGNhbGxlZDsgdXNlIHRoZSBzeW1ib2xzCisgICAgICAgICAgICAgICAgICAgICAgICB1bG9jID0gc3ltYm9scy5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIERlbGVnYXRlIHBhcnNlIG9mIGRpc3BsYXkgbmFtZSA9PiBJU08gY29kZSB0byBDdXJyZW5jeQorICAgICAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihwb3MpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaXNvID0gQ3VycmVuY3kucGFyc2UodWxvYywgdGV4dCwgcHBvcyk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgcGFyc2Ugc3VjY2VlZHMsIHBvcHVsYXRlIGN1cnJlbmN5WzBdCisgICAgICAgICAgICAgICAgICAgIGlmIChpc28gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lbMF0gPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShpc28pOworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW50bCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gbWF0Y2godGV4dCwgcG9zLCBnZXRDdXJyZW5jeSgpLmdldEN1cnJlbmN5Q29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgbiA9ICovY3VycmVuY3lDaG9pY2UucGFyc2UodGV4dCwgcHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSAocHBvcy5nZXRJbmRleCgpID09IHBvcykgPyAtMSA6IHBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGNhc2UgUEFUVEVSTl9QRVJDRU5UOgorICAgICAgICAgICAgICAgIGMgPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUEFUVEVSTl9QRVJfTUlMTEU6CisgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0UGVyTWlsbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQQVRURVJOX01JTlVTOgorICAgICAgICAgICAgICAgIGMgPSBzeW1ib2xzLmdldE1pbnVzU2lnbigpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zID0gbWF0Y2godGV4dCwgcG9zLCBjKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgIGkgPSBza2lwUnVsZVdoaXRlU3BhY2UoYWZmaXhQYXQsIGkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIgYXQgdGV4dFtwb3NdIGFuZCByZXR1cm4gdGhlIGluZGV4IG9mIHRoZQorICAgICAqIG5leHQgY2hhcmFjdGVyIHVwb24gc3VjY2Vzcy4gIFJldHVybiAtMSBvbiBmYWlsdXJlLiAgSWYKKyAgICAgKiBpc1J1bGVXaGl0ZVNwYWNlKGNoKSB0aGVuIG1hdGNoIGEgcnVuIG9mIHdoaXRlIHNwYWNlIGluIHRleHQuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBtYXRjaChTdHJpbmcgdGV4dCwgaW50IHBvcywgaW50IGNoKSB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpIHsKKyAgICAgICAgICAgIC8vIEFkdmFuY2Ugb3ZlciBydW4gb2Ygd2hpdGUgc3BhY2UgaW4gaW5wdXQgdGV4dAorICAgICAgICAgICAgLy8gTXVzdCBzZWUgYXQgbGVhc3Qgb25lIHdoaXRlIHNwYWNlIGNoYXIgaW4gaW5wdXQKKyAgICAgICAgICAgIGludCBzID0gcG9zOworICAgICAgICAgICAgcG9zID0gc2tpcFVXaGl0ZVNwYWNlKHRleHQsIHBvcyk7CisgICAgICAgICAgICBpZiAocG9zID09IHMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisgICAgICAgIHJldHVybiAocG9zID49IDAgJiYgVVRGMTYuY2hhckF0KHRleHQsIHBvcykgPT0gY2gpID8KKyAgICAgICAgICAgIChwb3MgKyBVVEYxNi5nZXRDaGFyQ291bnQoY2gpKSA6IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1hdGNoIGEgc3RyaW5nIGF0IHRleHRbcG9zXSBhbmQgcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbmV4dAorICAgICAqIGNoYXJhY3RlciB1cG9uIHN1Y2Nlc3MuICBSZXR1cm4gLTEgb24gZmFpbHVyZS4gIE1hdGNoIGEgcnVuIG9mCisgICAgICogd2hpdGUgc3BhY2UgaW4gc3RyIHdpdGggYSBydW4gb2Ygd2hpdGUgc3BhY2UgaW4gdGV4dC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IG1hdGNoKFN0cmluZyB0ZXh0LCBpbnQgcG9zLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzdHIubGVuZ3RoKCkgJiYgcG9zID49IDA7ICkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHN0ciwgaSk7CisgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIGNoKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpIHsKKyAgICAgICAgICAgICAgICBpID0gc2tpcFJ1bGVXaGl0ZVNwYWNlKHN0ciwgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgZGVjaW1hbCBmb3JtYXQgc3ltYm9scyB1c2VkIGJ5IHRoaXMgZm9ybWF0LgorICAgICAqIEByZXR1cm4gZGVzaXJlZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBkb24ndCBhbGxvdyBtdWx0aXBsZSByZWZlcmVuY2VzCisgICAgICAgICAgICByZXR1cm4gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBzeW1ib2xzLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlY2ltYWwgZm9ybWF0IHN5bWJvbHMgdXNlZCBieSB0aGlzIGZvcm1hdC4gIFRoZQorICAgICAqIGZvcm1hdCB1c2VzIGEgY29weSBvZiB0aGUgcHJvdmlkZWQgc3ltYm9scy4KKyAgICAgKiBAcGFyYW0gbmV3U3ltYm9scyBkZXNpcmVkIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY2ltYWxGb3JtYXRTeW1ib2xzKERlY2ltYWxGb3JtYXRTeW1ib2xzIG5ld1N5bWJvbHMpIHsKKyAgICAgICAgc3ltYm9scyA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgbmV3U3ltYm9scy5jbG9uZSgpOworICAgICAgICBzZXRDdXJyZW5jeUZvclN5bWJvbHMoKTsKKyAgICAgICAgZXhwYW5kQWZmaXhlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVwZGF0ZSB0aGUgY3VycmVuY3kgb2JqZWN0IHRvIG1hdGNoIHRoZSBzeW1ib2xzLiAgVGhpcyBtZXRob2QKKyAgICAgKiBpcyB1c2VkIG9ubHkgd2hlbiB0aGUgY2FsbGVyIGhhcyBwYXNzZWQgaW4gYSBzeW1ib2xzIG9iamVjdAorICAgICAqIHRoYXQgbWF5IG5vdCBiZSB0aGUgZGVmYXVsdCBvYmplY3QgZm9yIGl0cyBsb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldEN1cnJlbmN5Rm9yU3ltYm9scygpIHsKKyAgICAgICAgLypCdWcgNDIxMjA3MgorICAgICAgICAgIFVwZGF0ZSB0aGUgYWZmaXggc3RyaW5ncyBhY2Nyb2RpbmcgdG8gc3ltYm9scyBpbiBvcmRlciB0byBrZWVwCisgICAgICAgICAgdGhlIGFmZml4IHN0cmluZ3MgdXAgdG8gZGF0ZS4KKyAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIAorICAgICAgICAvLyBXaXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIEN1cnJlbmN5IG9iamVjdCwgdGhlIGN1cnJlbmN5CisgICAgICAgIC8vIHN5bWJvbHMgaW4gdGhlIERGUyBvYmplY3QgYXJlIGlnbm9yZWQuICBGb3IgYmFja3dhcmQKKyAgICAgICAgLy8gY29tcGF0aWJpbGl0eSwgd2UgY2hlY2sgYW55IGV4cGxpY2l0bHkgc2V0IERGUyBvYmplY3QuICBJZiBpdAorICAgICAgICAvLyBpcyBhIGRlZmF1bHQgc3ltYm9scyBvYmplY3QgZm9yIGl0cyBsb2NhbGUsIHdlIGNoYW5nZSB0aGUKKyAgICAgICAgLy8gY3VycmVuY3kgb2JqZWN0IHRvIG9uZSBmb3IgdGhhdCBsb2NhbGUuICBJZiBpdCBpcyBjdXN0b20sCisgICAgICAgIC8vIHdlIHNldCB0aGUgY3VycmVuY3kgdG8gbnVsbC4KKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGVmID0KKyAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhzeW1ib2xzLmdldExvY2FsZSgpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChzeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCkuZXF1YWxzKAorICAgICAgICAgICAgICAgIGRlZi5nZXRDdXJyZW5jeVN5bWJvbCgpKSAmJgorICAgICAgICAgICAgc3ltYm9scy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgZGVmLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpKSkgeworICAgICAgICAgICAgc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2Uoc3ltYm9scy5nZXRMb2NhbGUoKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0Q3VycmVuY3kobnVsbCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHBvc2l0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogKzEyMywgJDEyMywgc0ZyMTIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQb3NpdGl2ZVByZWZpeCAoKSB7CisgICAgICAgIHJldHVybiBwb3NpdGl2ZVByZWZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogKzEyMywgJDEyMywgc0ZyMTIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpdmVQcmVmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBwb3NpdGl2ZVByZWZpeCA9IG5ld1ZhbHVlOworICAgICAgICBwb3NQcmVmaXhQYXR0ZXJuID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5lZ2F0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMywgKCQxMjMpICh3aXRoIG5lZ2F0aXZlIHN1ZmZpeCksIHNGci0xMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5lZ2F0aXZlUHJlZml4ICgpIHsKKyAgICAgICAgcmV0dXJuIG5lZ2F0aXZlUHJlZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAtMTIzLCAoJDEyMykgKHdpdGggbmVnYXRpdmUgc3VmZml4KSwgc0ZyLTEyMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5lZ2F0aXZlUHJlZml4IChTdHJpbmcgbmV3VmFsdWUpIHsKKyAgICAgICAgbmVnYXRpdmVQcmVmaXggPSBuZXdWYWx1ZTsKKyAgICAgICAgbmVnUHJlZml4UGF0dGVybiA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBwb3NpdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZTogMTIzJQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UG9zaXRpdmVTdWZmaXggKCkgeworICAgICAgICByZXR1cm4gcG9zaXRpdmVTdWZmaXg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwb3NpdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZTogMTIzJQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBvc2l0aXZlU3VmZml4IChTdHJpbmcgbmV3VmFsdWUpIHsKKyAgICAgICAgcG9zaXRpdmVTdWZmaXggPSBuZXdWYWx1ZTsKKyAgICAgICAgcG9zU3VmZml4UGF0dGVybiA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuZWdhdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZXM6IC0xMjMlLCAoJDEyMykgKHdpdGggcG9zaXRpdmUgc3VmZml4ZXMpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROZWdhdGl2ZVN1ZmZpeCAoKSB7CisgICAgICAgIHJldHVybiBuZWdhdGl2ZVN1ZmZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogMTIzJQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5lZ2F0aXZlU3VmZml4IChTdHJpbmcgbmV3VmFsdWUpIHsKKyAgICAgICAgbmVnYXRpdmVTdWZmaXggPSBuZXdWYWx1ZTsKKyAgICAgICAgbmVnU3VmZml4UGF0dGVybiA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtdWx0aXBsaWVyIGZvciB1c2UgaW4gcGVyY2VudCwgcGVybWlsbCwgZXRjLgorICAgICAqIEZvciBhIHBlcmNlbnRhZ2UsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiJSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMC4KKyAgICAgKiAoRm9yIEFyYWJpYywgdXNlIGFyYWJpYyBwZXJjZW50IHN5bWJvbCkuCisgICAgICogRm9yIGEgcGVybWlsbCwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICJcdTIwMzEiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAwLgorICAgICAqIDxQPkV4YW1wbGVzOiB3aXRoIDEwMCwgMS4yMyAtPiAiMTIzIiwgYW5kICIxMjMiIC0+IDEuMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE11bHRpcGxpZXIgKCkgeworICAgICAgICByZXR1cm4gbXVsdGlwbGllcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICogRm9yIGEgcGVyY2VudGFnZSwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICIlIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwLgorICAgICAqIChGb3IgQXJhYmljLCB1c2UgYXJhYmljIHBlcmNlbnQgc3ltYm9sKS4KKyAgICAgKiBGb3IgYSBwZXJtaWxsLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIlx1MjAzMSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMDAuCisgICAgICogPFA+RXhhbXBsZXM6IHdpdGggMTAwLCAxLjIzIC0+ICIxMjMiLCBhbmQgIjEyMyIgLT4gMS4yMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE11bHRpcGxpZXIgKGludCBuZXdWYWx1ZSkgeworICAgICAgICBpZiAobmV3VmFsdWUgPD0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIG11bHRpcGxpZXI6ICIgKyBuZXdWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgbXVsdGlwbGllciA9IG5ld1ZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBHZXQgdGhlIHJvdW5kaW5nIGluY3JlbWVudC4KKyAgICAgKiBAcmV0dXJuIEEgcG9zaXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiByb3VuZGluZworICAgICAqIGlzIG5vdCBpbiBlZmZlY3QuCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ01vZGUKKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ01vZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIGphdmEubWF0aC5CaWdEZWNpbWFsIGdldFJvdW5kaW5nSW5jcmVtZW50KCkgeworICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnRJQ1UgPT0gbnVsbCkgcmV0dXJuIG51bGw7CisgICAgICAgIHJldHVybiByb3VuZGluZ0luY3JlbWVudElDVS50b0JpZ0RlY2ltYWwoKTsKKyAgICB9CisvLyNlbHNlCisvLyMjICAgIHB1YmxpYyBCaWdEZWNpbWFsIGdldFJvdW5kaW5nSW5jcmVtZW50KCkgeworLy8jIyAgICAJaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVID09IG51bGwpIHJldHVybiBudWxsOworLy8jIyAgICAgICAgcmV0dXJuIG5ldyBCaWdEZWNpbWFsKHJvdW5kaW5nSW5jcmVtZW50SUNVLnRvU3RyaW5nKCkpOworLy8jIyAgICB9CisvLyNlbmRpZgorICAgIAorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSByb3VuZGluZyBpbmNyZW1lbnQuICBUaGlzIG1ldGhvZCBhbHNvIGNvbnRyb2xzIHdoZXRoZXIKKyAgICAgKiByb3VuZGluZyBpcyBlbmFibGVkLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSBBIHBvc2l0aXZlIHJvdW5kaW5nIGluY3JlbWVudCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gb3IKKyAgICAgKiA8Y29kZT5CaWdEZWNpbWFsKDAuMCk8L2NvZGU+IHRvIGRpc2FibGUgcm91bmRpbmcuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+bmV3VmFsdWU8L2NvZGU+IGlzIDwgMC4wCisgICAgICogQHNlZSAjZ2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ01vZGUKKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ01vZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSb3VuZGluZ0luY3JlbWVudChqYXZhLm1hdGguQmlnRGVjaW1hbCBuZXdWYWx1ZSkgeworICAgICAgICBpZiAobmV3VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQoKEJpZ0RlY2ltYWwpbnVsbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXRSb3VuZGluZ0luY3JlbWVudChuZXcgQmlnRGVjaW1hbChuZXdWYWx1ZSkpOworICAgICAgICB9CisgICAgfQorLy8jZW5kaWYKKyAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSByb3VuZGluZyBpbmNyZW1lbnQuICBUaGlzIG1ldGhvZCBhbHNvIGNvbnRyb2xzIHdoZXRoZXIKKyAgICAgKiByb3VuZGluZyBpcyBlbmFibGVkLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSBBIHBvc2l0aXZlIHJvdW5kaW5nIGluY3JlbWVudCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gb3IKKyAgICAgKiA8Y29kZT5CaWdEZWNpbWFsKDAuMCk8L2NvZGU+IHRvIGRpc2FibGUgcm91bmRpbmcuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+bmV3VmFsdWU8L2NvZGU+IGlzIDwgMC4wCisgICAgICogQHNlZSAjZ2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ01vZGUKKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ01vZGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Um91bmRpbmdJbmNyZW1lbnQoQmlnRGVjaW1hbCBuZXdWYWx1ZSkgeworICAgICAgICBpbnQgaSA9IG5ld1ZhbHVlID09IG51bGwKKyAgICAgICAgICAgID8gMCA6IG5ld1ZhbHVlLmNvbXBhcmVUbyhCaWdEZWNpbWFsLlpFUk8pOworICAgICAgICBpZiAoaSA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcm91bmRpbmcgaW5jcmVtZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgc2V0SW50ZXJuYWxSb3VuZGluZ0luY3JlbWVudChudWxsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldEludGVybmFsUm91bmRpbmdJbmNyZW1lbnQobmV3VmFsdWUpOworICAgICAgICB9CisgICAgICAgIHNldFJvdW5kaW5nRG91YmxlKCk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSByb3VuZGluZyBpbmNyZW1lbnQuICBUaGlzIG1ldGhvZCBhbHNvIGNvbnRyb2xzIHdoZXRoZXIKKyAgICAgKiByb3VuZGluZyBpcyBlbmFibGVkLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSBBIHBvc2l0aXZlIHJvdW5kaW5nIGluY3JlbWVudCwgb3IgMC4wIHRvIGRpc2FibGUKKyAgICAgKiByb3VuZGluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdWYWx1ZTwvY29kZT4gaXMgPCAwLjAKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvdW5kaW5nSW5jcmVtZW50KGRvdWJsZSBuZXdWYWx1ZSkgeworICAgICAgICBpZiAobmV3VmFsdWUgPCAwLjApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcm91bmRpbmcgaW5jcmVtZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgcm91bmRpbmdEb3VibGUgPSBuZXdWYWx1ZTsKKyAgICAgICAgcm91bmRpbmdEb3VibGVSZWNpcHJvY2FsID0gMC4wZDsKKyAgICAgICAgaWYgKG5ld1ZhbHVlID09IDAuMGQpIHsKKyAgICAgICAgICAgIHNldFJvdW5kaW5nSW5jcmVtZW50KChCaWdEZWNpbWFsKW51bGwpOyAgICAgICAJCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZSA9IG5ld1ZhbHVlOworICAgICAgICAgICAgaWYgKHJvdW5kaW5nRG91YmxlIDwgMS4wZCkgeworICAgICAgICAgICAgICAgIGRvdWJsZSByYXdSb3VuZGVkUmVjaXByb2NhbCA9IDEuMGQvcm91bmRpbmdEb3VibGU7CisgICAgICAgICAgICAgICAgc2V0Um91bmRpbmdEb3VibGVSZWNpcHJvY2FsKHJhd1JvdW5kZWRSZWNpcHJvY2FsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldEludGVybmFsUm91bmRpbmdJbmNyZW1lbnQobmV3IEJpZ0RlY2ltYWwobmV3VmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIHNldFJvdW5kaW5nRG91YmxlUmVjaXByb2NhbChkb3VibGUgcmF3Um91bmRlZFJlY2lwcm9jYWwpIHsKKyAgICAgICAgcm91bmRpbmdEb3VibGVSZWNpcHJvY2FsID0gTWF0aC5yaW50KHJhd1JvdW5kZWRSZWNpcHJvY2FsKTsKKyAgICAgICAgaWYgKE1hdGguYWJzKHJhd1JvdW5kZWRSZWNpcHJvY2FsIC0gcm91bmRpbmdEb3VibGVSZWNpcHJvY2FsKSA+IHJvdW5kaW5nSW5jcmVtZW50RXBzaWxvbikgeworICAgICAgICAgICAgcm91bmRpbmdEb3VibGVSZWNpcHJvY2FsID0gMC4wZDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIHJvdW5kaW5nSW5jcmVtZW50RXBzaWxvbiA9IDAuMDAwMDAwMDAxOworICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBHZXQgdGhlIHJvdW5kaW5nIG1vZGUuCisgICAgICogQHJldHVybiBBIHJvdW5kaW5nIG1vZGUsIGJldHdlZW4gPGNvZGU+QmlnRGVjaW1hbC5ST1VORF9VUDwvY29kZT4KKyAgICAgKiBhbmQgPGNvZGU+QmlnRGVjaW1hbC5ST1VORF9VTk5FQ0VTU0FSWTwvY29kZT4uCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgamF2YS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJvdW5kaW5nTW9kZSgpIHsKKyAgICAgICAgcmV0dXJuIHJvdW5kaW5nTW9kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSByb3VuZGluZyBtb2RlLiAgVGhpcyBoYXMgbm8gZWZmZWN0IHVubGVzcyB0aGUgcm91bmRpbmcKKyAgICAgKiBpbmNyZW1lbnQgaXMgZ3JlYXRlciB0aGFuIHplcm8uCisgICAgICogQHBhcmFtIHJvdW5kaW5nTW9kZSBBIHJvdW5kaW5nIG1vZGUsIGJldHdlZW4KKyAgICAgKiA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VQPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPi4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZGluZ01vZGU8L2NvZGU+CisgICAgICogaXMgdW5yZWNvZ25pemVkLgorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nSW5jcmVtZW50CisgICAgICogQHNlZSAjZ2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ01vZGUKKyAgICAgKiBAc2VlIGphdmEubWF0aC5CaWdEZWNpbWFsCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Um91bmRpbmdNb2RlKGludCByb3VuZGluZ01vZGUpIHsKKyAgICAgICAgaWYgKHJvdW5kaW5nTW9kZSA8IEJpZ0RlY2ltYWwuUk9VTkRfVVAKKyAgICAgICAgICAgIHx8IHJvdW5kaW5nTW9kZSA+IEJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcm91bmRpbmcgbW9kZTogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJvdW5kaW5nTW9kZSk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5yb3VuZGluZ01vZGUgPSByb3VuZGluZ01vZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgd2lkdGggdG8gd2hpY2ggdGhlIG91dHB1dCBvZiA8Y29kZT5mb3JtYXQoKTwvY29kZT4gaXMgcGFkZGVkLgorICAgICAqIFRoZSB3aWR0aCBpcyBjb3VudGVkIGluIDE2LWJpdCBjb2RlIHVuaXRzLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdCB3aWR0aCwgb3IgemVybyBpZiBubyBwYWRkaW5nIGlzIGluIGVmZmVjdAorICAgICAqIEBzZWUgI3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9ybWF0V2lkdGgoKSB7CisgICAgICAgIHJldHVybiBmb3JtYXRXaWR0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSB3aWR0aCB0byB3aGljaCB0aGUgb3V0cHV0IG9mIDxjb2RlPmZvcm1hdCgpPC9jb2RlPiBpcyBwYWRkZWQuCisgICAgICogVGhlIHdpZHRoIGlzIGNvdW50ZWQgaW4gMTYtYml0IGNvZGUgdW5pdHMuCisgICAgICogVGhpcyBtZXRob2QgYWxzbyBjb250cm9scyB3aGV0aGVyIHBhZGRpbmcgaXMgZW5hYmxlZC4KKyAgICAgKiBAcGFyYW0gd2lkdGggdGhlIHdpZHRoIHRvIHdoaWNoIHRvIHBhZCB0aGUgcmVzdWx0IG9mCisgICAgICogPGNvZGU+Zm9ybWF0KCk8L2NvZGU+LCBvciB6ZXJvIHRvIGRpc2FibGUgcGFkZGluZworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPndpZHRoPC9jb2RlPiBpcyA8IDAKKyAgICAgKiBAc2VlICNnZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI3NldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXRXaWR0aChpbnQgd2lkdGgpIHsKKyAgICAgICAgaWYgKHdpZHRoIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBmb3JtYXQgd2lkdGgiKTsKKyAgICAgICAgfQorICAgICAgICBmb3JtYXRXaWR0aCA9IHdpZHRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBHZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHBhZCB0byB0aGUgZm9ybWF0IHdpZHRoLiAgVGhlIGRlZmF1bHQgaXMgJyAnLgorICAgICAqIEByZXR1cm4gdGhlIHBhZCBjaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNzZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBhZENoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuIHBhZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBwYWQgdG8gdGhlIGZvcm1hdCB3aWR0aC4gIElmIHBhZGRpbmcKKyAgICAgKiBpcyBub3QgZW5hYmxlZCwgdGhlbiB0aGlzIHdpbGwgdGFrZSBlZmZlY3QgaWYgcGFkZGluZyBpcyBsYXRlcgorICAgICAqIGVuYWJsZWQuCisgICAgICogQHBhcmFtIHBhZENoYXIgdGhlIHBhZCBjaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNzZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhZENoYXJhY3RlcihjaGFyIHBhZENoYXIpIHsKKyAgICAgICAgcGFkID0gcGFkQ2hhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogR2V0IHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYWRkaW5nIHdpbGwgdGFrZSBwbGFjZS4gIFRoaXMgaXMgdGhlIGxvY2F0aW9uCisgICAgICogYXQgd2hpY2ggcGFkZGluZyB3aWxsIGJlIGluc2VydGVkIGlmIHRoZSByZXN1bHQgb2YgPGNvZGU+Zm9ybWF0KCk8L2NvZGU+CisgICAgICogaXMgc2hvcnRlciB0aGFuIHRoZSBmb3JtYXQgd2lkdGguCisgICAgICogQHJldHVybiB0aGUgcGFkIHBvc2l0aW9uLCBvbmUgb2YgPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+LAorICAgICAqIDxjb2RlPlBBRF9BRlRFUl9QUkVGSVg8L2NvZGU+LCA8Y29kZT5QQURfQkVGT1JFX1NVRkZJWDwvY29kZT4sIG9yCisgICAgICogPGNvZGU+UEFEX0FGVEVSX1NVRkZJWDwvY29kZT4uCisgICAgICogQHNlZSAjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI3NldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9TVUZGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfU1VGRklYCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRQYWRQb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHBhZFBvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHBhZGRpbmcgd2lsbCB0YWtlIHBsYWNlLiAgVGhpcyBpcyB0aGUgbG9jYXRpb24KKyAgICAgKiBhdCB3aGljaCBwYWRkaW5nIHdpbGwgYmUgaW5zZXJ0ZWQgaWYgdGhlIHJlc3VsdCBvZiA8Y29kZT5mb3JtYXQoKTwvY29kZT4KKyAgICAgKiBpcyBzaG9ydGVyIHRoYW4gdGhlIGZvcm1hdCB3aWR0aC4gIFRoaXMgaGFzIG5vIGVmZmVjdCB1bmxlc3MgcGFkZGluZyBpcworICAgICAqIGVuYWJsZWQuCisgICAgICogQHBhcmFtIHBhZFBvcyB0aGUgcGFkIHBvc2l0aW9uLCBvbmUgb2YgPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+LAorICAgICAqIDxjb2RlPlBBRF9BRlRFUl9QUkVGSVg8L2NvZGU+LCA8Y29kZT5QQURfQkVGT1JFX1NVRkZJWDwvY29kZT4sIG9yCisgICAgICogPGNvZGU+UEFEX0FGVEVSX1NVRkZJWDwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhZCBwb3NpdGlvbiBpbgorICAgICAqIHVucmVjb2duaXplZAorICAgICAqIEBzZWUgI3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfU1VGRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1NVRkZJWAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhZFBvc2l0aW9uKGludCBwYWRQb3MpIHsKKyAgICAgICAgaWYgKHBhZFBvcyA8IFBBRF9CRUZPUkVfUFJFRklYIHx8IHBhZFBvcyA+IFBBRF9BRlRFUl9TVUZGSVgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcGFkIHBvc2l0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgcGFkUG9zaXRpb24gPSBwYWRQb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB3aGV0aGVyIG9yIG5vdCBzY2llbnRpZmljIG5vdGF0aW9uIGlzIHVzZWQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGZvcm1hdHMgYW5kIHBhcnNlcyBzY2llbnRpZmljIG5vdGF0aW9uCisgICAgICogQHNlZSAjc2V0U2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzZWUgI3NldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNTY2llbnRpZmljTm90YXRpb24oKSB7CisgICAgICAgIHJldHVybiB1c2VFeHBvbmVudGlhbE5vdGF0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgd2hldGhlciBvciBub3Qgc2NpZW50aWZpYyBub3RhdGlvbiBpcyB1c2VkLiAgV2hlbiBzY2llbnRpZmljIG5vdGF0aW9uCisgICAgICogaXMgdXNlZCwgdGhlIGVmZmVjdGl2ZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyA8PSA4LiAgSWYgdGhlCisgICAgICogbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgc2V0IHRvIG1vcmUgdGhhbiA4LCB0aGUgZWZmZWN0aXZlCisgICAgICogbWF4aW11bSB3aWxsIGJlIDEuICBUaGlzIGFsbG93cyB0aGlzIGNhbGwgdG8gZ2VuZXJhdGUgYSAnZGVmYXVsdCcgc2NpZW50aWZpYworICAgICAqIG51bWJlciBmb3JtYXQgd2l0aG91dCBhZGRpdGlvbmFsIGNoYW5nZXMuCisgICAgICogQHBhcmFtIHVzZVNjaWVudGlmaWMgdHJ1ZSBpZiB0aGlzIG9iamVjdCBmb3JtYXRzIGFuZCBwYXJzZXMgc2NpZW50aWZpYworICAgICAqIG5vdGF0aW9uCisgICAgICogQHNlZSAjaXNTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRXhwb25lbnREaWdpdHMKKyAgICAgKiBAc2VlICNzZXRNaW5pbXVtRXhwb25lbnREaWdpdHMKKyAgICAgKiBAc2VlICNpc0V4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTY2llbnRpZmljTm90YXRpb24oYm9vbGVhbiB1c2VTY2llbnRpZmljKSB7CisgICAgICAgIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPSB1c2VTY2llbnRpZmljOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gdGhlIG1pbmltdW0gZXhwb25lbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bi4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIGV4cG9uZW50IGRpZ2l0cyB0aGF0IHdpbGwgYmUgc2hvd24KKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI3NldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBieXRlIGdldE1pbmltdW1FeHBvbmVudERpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1pbkV4cG9uZW50RGlnaXRzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSBtaW5pbXVtIGV4cG9uZW50IGRpZ2l0cyB0aGF0IHdpbGwgYmUgc2hvd24uICBUaGlzIGhhcyBubworICAgICAqIGVmZmVjdCB1bmxlc3Mgc2NpZW50aWZpYyBub3RhdGlvbiBpcyBpbiB1c2UuCisgICAgICogQHBhcmFtIG1pbkV4cERpZyBhIHZhbHVlID49IDEgaW5kaWNhdGluZyB0aGUgZmV3ZXN0IGV4cG9uZW50IGRpZ2l0cworICAgICAqIHRoYXQgd2lsbCBiZSBzaG93bgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPm1pbkV4cERpZzwvY29kZT4gPCAxCisgICAgICogQHNlZSAjc2V0U2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjaXNTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRXhwb25lbnREaWdpdHMKKyAgICAgKiBAc2VlICNpc0V4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtRXhwb25lbnREaWdpdHMoYnl0ZSBtaW5FeHBEaWcpIHsKKyAgICAgICAgaWYgKG1pbkV4cERpZyA8IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkV4cG9uZW50IGRpZ2l0cyBtdXN0IGJlID49IDEiKTsKKyAgICAgICAgfQorICAgICAgICBtaW5FeHBvbmVudERpZ2l0cyA9IG1pbkV4cERpZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGV4cG9uZW50IHNpZ24gaXMgYWx3YXlzIHNob3duLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwb25lbnQgaXMgYWx3YXlzIHByZWZpeGVkIHdpdGggZWl0aGVyIHRoZQorICAgICAqIGxvY2FsaXplZCBtaW51cyBzaWduIG9yIHRoZSBsb2NhbGl6ZWQgcGx1cyBzaWduLCBmYWxzZSBpZiBvbmx5IG5lZ2F0aXZlCisgICAgICogZXhwb25lbnRzIGFyZSBwcmVmaXhlZCB3aXRoIHRoZSBsb2NhbGl6ZWQgbWludXMgc2lnbi4KKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI3NldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI3NldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bigpIHsKKyAgICAgICAgcmV0dXJuIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgd2hldGhlciB0aGUgZXhwb25lbnQgc2lnbiBpcyBhbHdheXMgc2hvd24uICBUaGlzIGhhcyBubyBlZmZlY3QKKyAgICAgKiB1bmxlc3Mgc2NpZW50aWZpYyBub3RhdGlvbiBpcyBpbiB1c2UuCisgICAgICogQHBhcmFtIGV4cFNpZ25BbHdheXMgdHJ1ZSBpZiB0aGUgZXhwb25lbnQgaXMgYWx3YXlzIHByZWZpeGVkIHdpdGggZWl0aGVyCisgICAgICogdGhlIGxvY2FsaXplZCBtaW51cyBzaWduIG9yIHRoZSBsb2NhbGl6ZWQgcGx1cyBzaWduLCBmYWxzZSBpZiBvbmx5CisgICAgICogbmVnYXRpdmUgZXhwb25lbnRzIGFyZSBwcmVmaXhlZCB3aXRoIHRoZSBsb2NhbGl6ZWQgbWludXMgc2lnbi4KKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI3NldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bihib29sZWFuIGV4cFNpZ25BbHdheXMpIHsKKyAgICAgICAgZXhwb25lbnRTaWduQWx3YXlzU2hvd24gPSBleHBTaWduQWx3YXlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZ3JvdXBpbmcgc2l6ZS4gR3JvdXBpbmcgc2l6ZSBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBiZXR3ZWVuCisgICAgICogZ3JvdXBpbmcgc2VwYXJhdG9ycyBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEgbnVtYmVyLiAgRm9yIGV4YW1wbGUsCisgICAgICogaW4gdGhlIG51bWJlciAiMTIzLDQ1Ni43OCIsIHRoZSBncm91cGluZyBzaXplIGlzIDMuCisgICAgICogQHNlZSAjc2V0R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjaXNHcm91cGluZ1VzZWQKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzI2dldEdyb3VwaW5nU2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRHcm91cGluZ1NpemUgKCkgeworICAgICAgICByZXR1cm4gZ3JvdXBpbmdTaXplOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZ3JvdXBpbmcgc2l6ZS4gR3JvdXBpbmcgc2l6ZSBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBiZXR3ZWVuCisgICAgICogZ3JvdXBpbmcgc2VwYXJhdG9ycyBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEgbnVtYmVyLiAgRm9yIGV4YW1wbGUsCisgICAgICogaW4gdGhlIG51bWJlciAiMTIzLDQ1Ni43OCIsIHRoZSBncm91cGluZyBzaXplIGlzIDMuCisgICAgICogQHNlZSAjZ2V0R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0R3JvdXBpbmdVc2VkCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRHcm91cGluZ1NlcGFyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEdyb3VwaW5nU2l6ZSAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIGdyb3VwaW5nU2l6ZSA9IChieXRlKW5ld1ZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUuIEluIHNvbWUgbG9jYWxlcyBvbmUKKyAgICAgKiBncm91cGluZyBpbnRlcnZhbCBpcyB1c2VkIGZvciB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgaW50ZWdlcgorICAgICAqIGRpZ2l0cyAodGhlIHByaW1hcnkgZ3JvdXBpbmcgc2l6ZSksIGFuZCBhbm90aGVyIGlzIHVzZWQgZm9yIGFsbAorICAgICAqIG90aGVycyAodGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplKS4gIEEgZm9ybWF0dGVyIHN1cHBvcnRpbmcgYQorICAgICAqIHNlY29uZGFyeSBncm91cGluZyBzaXplIHdpbGwgcmV0dXJuIGEgcG9zaXRpdmUgaW50ZWdlciB1bmVxdWFsCisgICAgICogdG8gdGhlIHByaW1hcnkgZ3JvdXBpbmcgc2l6ZSByZXR1cm5lZCBieQorICAgICAqIDxjb2RlPmdldEdyb3VwaW5nU2l6ZSgpPC9jb2RlPi4gIEZvciBleGFtcGxlLCBpZiB0aGUgcHJpbWFyeQorICAgICAqIGdyb3VwaW5nIHNpemUgaXMgNCwgYW5kIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZSBpcyAyLCB0aGVuCisgICAgICogdGhlIG51bWJlciAxMjM0NTY3ODkgZm9ybWF0cyBhcyAiMSwyMyw0NSw2Nzg5IiwgYW5kIHRoZSBwYXR0ZXJuCisgICAgICogYXBwZWFycyBhcyAiIywjIywjIyMwIi4KKyAgICAgKiBbTkVXXQorICAgICAqIEByZXR1cm4gdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLCBvciBhIHZhbHVlIGxlc3MgdGhhbgorICAgICAqIG9uZSBpZiB0aGVyZSBpcyBub25lCisgICAgICogQHNlZSAjc2V0U2Vjb25kYXJ5R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjaXNHcm91cGluZ1VzZWQKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzI2dldEdyb3VwaW5nU2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWNvbmRhcnlHcm91cGluZ1NpemUgKCkgeworICAgICAgICByZXR1cm4gZ3JvdXBpbmdTaXplMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLiBJZiBzZXQgdG8gYSB2YWx1ZSBsZXNzIHRoYW4gMSwKKyAgICAgKiB0aGVuIHNlY29uZGFyeSBncm91cGluZyBpcyB0dXJuZWQgb2ZmLCBhbmQgdGhlIHByaW1hcnkgZ3JvdXBpbmcKKyAgICAgKiBzaXplIGlzIHVzZWQgZm9yIGFsbCBpbnRlcnZhbHMsIG5vdCBqdXN0IHRoZSBsZWFzdCBzaWduaWZpY2FudC4KKyAgICAgKiBbTkVXXQorICAgICAqIEBzZWUgI2dldFNlY29uZGFyeUdyb3VwaW5nU2l6ZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldEdyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjc2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWNvbmRhcnlHcm91cGluZ1NpemUgKGludCBuZXdWYWx1ZSkgeworICAgICAgICBncm91cGluZ1NpemUyID0gKGJ5dGUpbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBnZXQgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIGludGVnZXJzLgorICAgICAqIChUaGUgZGVjaW1hbCBzZXBhcmF0b3Igd2lsbCBhbHdheXMgYXBwZWFyIHdpdGggZGVjaW1hbHMuKQorICAgICAqIDxQPkV4YW1wbGU6IERlY2ltYWwgT046IDEyMzQ1IC0+IDEyMzQ1LjsgT0ZGOiAxMjM0NSAtPiAxMjM0NQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKCkgeworICAgICAgICByZXR1cm4gZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBiZWhhdmlvciBvZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3Igd2l0aCBpbnRlZ2Vycy4KKyAgICAgKiAoVGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpbGwgYWx3YXlzIGFwcGVhciB3aXRoIGRlY2ltYWxzLikKKyAgICAgKgorICAgICAqIDxwPlRoaXMgb25seSBhZmZlY3RzIGZvcm1hdHRpbmcsIGFuZCBvbmx5IHdoZXJlCisgICAgICogdGhlcmUgbWlnaHQgYmUgbm8gZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LCBlLmcuLAorICAgICAqIGlmIHRydWUsICAzNDU2LjAwIC0+ICIzLDQ1Ni4iCisgICAgICogaWYgZmFsc2UsIDM0NTYuMDAgLT4gIjM0NTYiCisgICAgICogVGhpcyBpcyBpbmRlcGVuZGVudCBvZiBwYXJzaW5nLiAgSWYgeW91IHdhbnQgcGFyc2luZyB0byBzdG9wIGF0IHRoZSBkZWNpbWFsCisgICAgICogcG9pbnQsIHVzZSBzZXRQYXJzZUludGVnZXJPbmx5LgorICAgICAqCisgICAgICogPFA+RXhhbXBsZTogRGVjaW1hbCBPTjogMTIzNDUgLT4gMTIzNDUuOyBPRkY6IDEyMzQ1IC0+IDEyMzQ1CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGJvb2xlYW4gbmV3VmFsdWUpIHsKKyAgICAgICAgZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duID0gbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgb3ZlcnJpZGU7IG5vIGNoYW5nZSBpbiBzZW1hbnRpY3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgb3RoZXIgPSAoRGVjaW1hbEZvcm1hdCkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLnN5bWJvbHMgPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIHN5bWJvbHMuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLmRpZ2l0TGlzdCA9IG5ldyBEaWdpdExpc3QoKTsgLy8gZml4IGZvciBKQiM1MzU4CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogVE9ETzogV2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXRoZXIgd2Ugc2hhcmUgYSBzaW5nbGUgY29weQorICAgICAgICAgICAgICogb2YgRGlnaXRMaXN0IGJ5IG11bHRpcGxlIGNsb25lZCBjb3BpZXMuICBmb3JtYXQvc3ViZm9ybWF0CisgICAgICAgICAgICAgKiBhcmUgZGVzaWduZWQgdG8gdXNlIGEgc2luZ2xlIGluc3RhbmNlLCBidXQgcGFyc2Uvc3VicGFyc2UKKyAgICAgICAgICAgICAqIGltcGxlbWVudGF0aW9uIGlzIG5vdC4gCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBlcXVhbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikKKyAgICB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXN1cGVyLmVxdWFscyhvYmopKSByZXR1cm4gZmFsc2U7IC8vIHN1cGVyIGRvZXMgY2xhc3MgY2hlY2sKKworICAgICAgICBEZWNpbWFsRm9ybWF0IG90aGVyID0gKERlY2ltYWxGb3JtYXQpIG9iajsKKyAgICAgICAgLyogQWRkIHRoZSBjb21wYXJpc29uIG9mIHRoZSBmb3VyIG5ldyBhZGRlZCBmaWVsZHMgLHRoZXkgYXJlCisgICAgICAgICAqIHBvc1ByZWZpeFBhdHRlcm4sIHBvc1N1ZmZpeFBhdHRlcm4sIG5lZ1ByZWZpeFBhdHRlcm4sIG5lZ1N1ZmZpeFBhdHRlcm4uCisgICAgICAgICAqIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICovCisgICAgICAgIHJldHVybiAocG9zUHJlZml4UGF0dGVybiAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIGVxdWFscyhwb3NQcmVmaXhQYXR0ZXJuLCBvdGhlci5wb3NQcmVmaXhQYXR0ZXJuKSkKKyAgICAgICAgICAgICYmIChwb3NTdWZmaXhQYXR0ZXJuICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICAgICAgZXF1YWxzKHBvc1N1ZmZpeFBhdHRlcm4sIG90aGVyLnBvc1N1ZmZpeFBhdHRlcm4pKQorICAgICAgICAgICAgJiYgKG5lZ1ByZWZpeFBhdHRlcm4gIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgICAgICBlcXVhbHMobmVnUHJlZml4UGF0dGVybiwgb3RoZXIubmVnUHJlZml4UGF0dGVybikpCisgICAgICAgICAgICAmJiAobmVnU3VmZml4UGF0dGVybiAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIGVxdWFscyhuZWdTdWZmaXhQYXR0ZXJuLCBvdGhlci5uZWdTdWZmaXhQYXR0ZXJuKSkKKyAgICAgICAgICAgICYmIG11bHRpcGxpZXIgPT0gb3RoZXIubXVsdGlwbGllcgorICAgICAgICAgICAgJiYgZ3JvdXBpbmdTaXplID09IG90aGVyLmdyb3VwaW5nU2l6ZQorICAgICAgICAgICAgJiYgZ3JvdXBpbmdTaXplMiA9PSBvdGhlci5ncm91cGluZ1NpemUyCisgICAgICAgICAgICAmJiBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gPT0gb3RoZXIuZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duCisgICAgICAgICAgICAmJiB1c2VFeHBvbmVudGlhbE5vdGF0aW9uID09IG90aGVyLnVzZUV4cG9uZW50aWFsTm90YXRpb24KKyAgICAgICAgICAgICYmICghdXNlRXhwb25lbnRpYWxOb3RhdGlvbiB8fAorICAgICAgICAgICAgICAgIG1pbkV4cG9uZW50RGlnaXRzID09IG90aGVyLm1pbkV4cG9uZW50RGlnaXRzKQorICAgICAgICAgICAgJiYgdXNlU2lnbmlmaWNhbnREaWdpdHMgPT0gb3RoZXIudXNlU2lnbmlmaWNhbnREaWdpdHMKKyAgICAgICAgICAgICYmICghdXNlU2lnbmlmaWNhbnREaWdpdHMgfHwKKyAgICAgICAgICAgICAgICBtaW5TaWduaWZpY2FudERpZ2l0cyA9PSBvdGhlci5taW5TaWduaWZpY2FudERpZ2l0cyAmJgorICAgICAgICAgICAgICAgIG1heFNpZ25pZmljYW50RGlnaXRzID09IG90aGVyLm1heFNpZ25pZmljYW50RGlnaXRzKQorICAgICAgICAgICAgJiYgc3ltYm9scy5lcXVhbHMob3RoZXIuc3ltYm9scyk7CisgICAgfQorICAgIC8vbWV0aG9kIHRvIHVucXVvdGUgdGhlIHN0cmluZ3MgYW5kIGNvbXBhcmUKKyAgICBwcml2YXRlIGJvb2xlYW4gZXF1YWxzKFN0cmluZyBwYXQxLCBTdHJpbmcgcGF0Mil7CisgICAgICAgIC8vZmFzdCBwYXRoCisgICAgICAgIGlmKHBhdDEuZXF1YWxzKHBhdDIpKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB1bnF1b3RlKHBhdDEpLmVxdWFscyh1bnF1b3RlKHBhdDIpKTsKKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgdW5xdW90ZShTdHJpbmcgcGF0KXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocGF0Lmxlbmd0aCgpKTsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgd2hpbGUoaTxwYXQubGVuZ3RoKCkpeworICAgICAgICAgICAgY2hhciBjaCA9IHBhdC5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmKGNoIT1RVU9URSl7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKy8vICAgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVG9TdHJpbmcoU3RyaW5nQnVmZmVyIGJ1ZikgeworLy8gICAgICAgICAgYnVmLmFwcGVuZCgiXG5wb3NQcmVmaXhQYXR0ZXJuOiAnIiArIHBvc1ByZWZpeFBhdHRlcm4gKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJwb3NpdGl2ZVByZWZpeDogJyIgKyBwb3NpdGl2ZVByZWZpeCArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoInBvc1N1ZmZpeFBhdHRlcm46ICciICsgcG9zU3VmZml4UGF0dGVybiArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoInBvc2l0aXZlU3VmZml4OiAnIiArIHBvc2l0aXZlU3VmZml4ICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibmVnUHJlZml4UGF0dGVybjogJyIgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZm9ybWF0MUZvclNvdXJjZShuZWdQcmVmaXhQYXR0ZXJuKSArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoIm5lZ2F0aXZlUHJlZml4OiAnIiArIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5mb3JtYXQxRm9yU291cmNlKG5lZ2F0aXZlUHJlZml4KSArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoIm5lZ1N1ZmZpeFBhdHRlcm46ICciICsgbmVnU3VmZml4UGF0dGVybiArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoIm5lZ2F0aXZlU3VmZml4OiAnIiArIG5lZ2F0aXZlU3VmZml4ICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibXVsdGlwbGllcjogJyIgKyBtdWx0aXBsaWVyICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgiZ3JvdXBpbmdTaXplOiAnIiArIGdyb3VwaW5nU2l6ZSArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoImdyb3VwaW5nU2l6ZTI6ICciICsgZ3JvdXBpbmdTaXplMiArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoImRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bjogJyIgKyBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJ1c2VFeHBvbmVudGlhbE5vdGF0aW9uOiAnIiArIHVzZUV4cG9uZW50aWFsTm90YXRpb24gKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJtaW5FeHBvbmVudERpZ2l0czogJyIgKyBtaW5FeHBvbmVudERpZ2l0cyArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoInVzZVNpZ25pZmljYW50RGlnaXRzOiAnIiArIHVzZVNpZ25pZmljYW50RGlnaXRzICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibWluU2lnbmlmaWNhbnREaWdpdHM6ICciICsgbWluU2lnbmlmaWNhbnREaWdpdHMgKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJtYXhTaWduaWZpY2FudERpZ2l0czogJyIgKyBtYXhTaWduaWZpY2FudERpZ2l0cyArICInXG4iKTsgICAgICAgICAgIAorLy8gICAgICAgICAgYnVmLmFwcGVuZCgic3ltYm9sczogJyIgKyBzeW1ib2xzICsgIiciKTsKKy8vICAgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhc2hDb2RlKCkgKiAzNyArIHBvc2l0aXZlUHJlZml4Lmhhc2hDb2RlKCk7CisgICAgICAgIC8vIGp1c3QgZW5vdWdoIGZpZWxkcyBmb3IgYSByZWFzb25hYmxlIGRpc3RyaWJ1dGlvbgorICAgIH0KKworICAgIC8qKgorICAgICAqIFN5bnRoZXNpemVzIGEgcGF0dGVybiBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50IHN0YXRlCisgICAgICogb2YgdGhpcyBGb3JtYXQgb2JqZWN0LgorICAgICAqIEBzZWUgI2FwcGx5UGF0dGVybgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gdG9QYXR0ZXJuKCBmYWxzZSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN5bnRoZXNpemVzIGEgbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudAorICAgICAqIHN0YXRlIG9mIHRoaXMgRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc2VlICNhcHBseVBhdHRlcm4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvTG9jYWxpemVkUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuIHRvUGF0dGVybiggdHJ1ZSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEV4cGFuZCB0aGUgYWZmaXggcGF0dGVybiBzdHJpbmdzIGludG8gdGhlIGV4cGFuZGVkIGFmZml4IHN0cmluZ3MuICBJZiBhbnkKKyAgICAgKiBhZmZpeCBwYXR0ZXJuIHN0cmluZyBpcyBudWxsLCBkbyBub3QgZXhwYW5kIGl0LiAgVGhpcyBtZXRob2Qgc2hvdWxkIGJlCisgICAgICogY2FsbGVkIGFueSB0aW1lIHRoZSBzeW1ib2xzIG9yIHRoZSBhZmZpeCBwYXR0ZXJucyBjaGFuZ2UgaW4gb3JkZXIgdG8ga2VlcAorICAgICAqIHRoZSBleHBhbmRlZCBhZmZpeCBzdHJpbmdzIHVwIHRvIGRhdGUuCisgICAgICovCisgICAgLy9CdWcgNDIxMjA3MiBbUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZEFmZml4ZXMoKSB7CisgICAgICAgIC8vIGV4cGFuZEFmZml4KCkgd2lsbCBzZXQgY3VycmVuY3lDaG9pY2UgdG8gYSBub24tbnVsbCB2YWx1ZSBpZgorICAgICAgICAvLyBhcHByb3ByaWF0ZSBBTkQgaWYgaXQgaXMgbnVsbC4KKyAgICAgICAgY3VycmVuY3lDaG9pY2UgPSBudWxsOworCisgICAgICAgIC8vIFJldXNlIG9uZSBTdHJpbmdCdWZmZXIgZm9yIGJldHRlciBwZXJmb3JtYW5jZQorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpZiAocG9zUHJlZml4UGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBhbmRBZmZpeChwb3NQcmVmaXhQYXR0ZXJuLCBidWZmZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHBvc2l0aXZlUHJlZml4ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBvc1N1ZmZpeFBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgZXhwYW5kQWZmaXgocG9zU3VmZml4UGF0dGVybiwgYnVmZmVyLCBmYWxzZSk7CisgICAgICAgICAgICBwb3NpdGl2ZVN1ZmZpeCA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIGlmIChuZWdQcmVmaXhQYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGV4cGFuZEFmZml4KG5lZ1ByZWZpeFBhdHRlcm4sIGJ1ZmZlciwgZmFsc2UpOworICAgICAgICAgICAgbmVnYXRpdmVQcmVmaXggPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmVnU3VmZml4UGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBhbmRBZmZpeChuZWdTdWZmaXhQYXR0ZXJuLCBidWZmZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIG5lZ2F0aXZlU3VmZml4ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHBhbmQgYW4gYWZmaXggcGF0dGVybiBpbnRvIGFuIGFmZml4IHN0cmluZy4gIEFsbCBjaGFyYWN0ZXJzIGluCisgICAgICogdGhlIHBhdHRlcm4gYXJlIGxpdGVyYWwgdW5sZXNzIGJyYWNrZXRlZCBieSBRVU9URXMuICBUaGUKKyAgICAgKiBmb2xsb3dpbmcgY2hhcmFjdGVycyBvdXRzaWRlIFFVT1RFIGFyZSByZWNvZ25pemVkOgorICAgICAqIFBBVFRFUk5fUEVSQ0VOVCwgUEFUVEVSTl9QRVJfTUlMTEUsIFBBVFRFUk5fTUlOVVMsIGFuZAorICAgICAqIENVUlJFTkNZX1NJR04uICBJZiBDVVJSRU5DWV9TSUdOIGlzIGRvdWJsZWQsIGl0IGlzIGludGVycHJldGVkIGFzCisgICAgICogYW4gaW50ZXJuYXRpb25hbCBjdXJyZW5jeSBzaWduLiAgQW55IG90aGVyIGNoYXJhY3RlciBvdXRzaWRlCisgICAgICogUVVPVEUgcmVwcmVzZW50cyBpdHNlbGYuICBRdW90ZWQgdGV4dCBtdXN0IGJlIHdlbGwtZm9ybWVkLgorICAgICAqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBpbiB0d28gZGlzdGluY3Qgd2F5cy4gIEZpcnN0LCBpdCBpcyB1c2VkIHRvIGV4cGFuZAorICAgICAqIHRoZSBzdG9yZWQgYWZmaXggcGF0dGVybnMgaW50byBhY3R1YWwgYWZmaXhlcy4gIEZvciB0aGlzIHVzYWdlLCBkb0Zvcm1hdAorICAgICAqIG11c3QgYmUgZmFsc2UuICBTZWNvbmQsIGl0IGlzIHVzZWQgdG8gZXhwYW5kIHRoZSBzdG9yZWQgYWZmaXggcGF0dGVybnMKKyAgICAgKiBnaXZlbiBhIHNwZWNpZmljIG51bWJlciAoZG9Gb3JtYXQgPT0gdHJ1ZSksIGZvciB0aG9zZSByYXJlIGNhc2VzIGluCisgICAgICogd2hpY2ggYSBjdXJyZW5jeSBmb3JtYXQgcmVmZXJlbmNlcyBhIENob2ljZUZvcm1hdCAoZS5nLiwgZW5fSU4gZGlzcGxheQorICAgICAqIG5hbWUgZm9yIElOUikuICBUaGUgbnVtYmVyIGl0c2VsZiBpcyB0YWtlbiBmcm9tIGRpZ2l0TGlzdC4KKyAgICAgKgorICAgICAqIFdoZW4gdXNlZCBpbiB0aGUgZmlyc3Qgd2F5LCB0aGlzIG1ldGhvZCBoYXMgYSBzaWRlIGVmZmVjdDogSXQgc2V0cworICAgICAqIGN1cnJlbmN5Q2hvaWNlIHRvIGEgQ2hvaWNlRm9ybWF0IG9iamVjdCwgaWYgdGhlIGN1cnJlbmN5J3MgZGlzcGxheSBuYW1lCisgICAgICogaW4gdGhpcyBsb2NhbGUgaXMgYSBDaG9pY2VGb3JtYXQgcGF0dGVybiAodmVyeSByYXJlKS4gIEl0IG9ubHkgZG9lcyB0aGlzCisgICAgICogaWYgY3VycmVuY3lDaG9pY2UgaXMgbnVsbCB0byBzdGFydCB3aXRoLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIG5vbi1udWxsLCBwb3NzaWJseSBlbXB0eSBwYXR0ZXJuCisgICAgICogQHBhcmFtIGJ1ZmZlciBhIHNjcmF0Y2ggU3RyaW5nQnVmZmVyOyBpdHMgY29udGVudHMgd2lsbCBiZSBsb3N0CisgICAgICogQHBhcmFtIGRvRm9ybWF0IGlmIGZhbHNlLCB0aGVuIHRoZSBwYXR0ZXJuIHdpbGwgYmUgZXhwYW5kZWQsIGFuZCBpZiBhCisgICAgICogY3VycmVuY3kgc3ltYm9sIGlzIGVuY291bnRlcmVkIHRoYXQgZXhwYW5kcyB0byBhIENob2ljZUZvcm1hdCwgdGhlCisgICAgICogY3VycmVuY3lDaG9pY2UgbWVtYmVyIHZhcmlhYmxlIHdpbGwgYmUgaW5pdGlhbGl6ZWQgaWYgaXQgaXMgbnVsbC4gIElmCisgICAgICogZG9Gb3JtYXQgaXMgdHJ1ZSwgdGhlbiBpdCBpcyBhc3N1bWVkIHRoYXQgdGhlIGN1cnJlbmN5Q2hvaWNlIGhhcyBiZWVuCisgICAgICogY3JlYXRlZCwgYW5kIGl0IHdpbGwgYmUgdXNlZCB0byBmb3JtYXQgdGhlIHZhbHVlIGluIGRpZ2l0TGlzdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBleHBhbmRlZCBlcXVpdmFsZW50IG9mIHBhdHRlcm4KKyAgICAgKi8KKyAgICAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kQWZmaXgoU3RyaW5nIHBhdHRlcm4sIFN0cmluZ0J1ZmZlciBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZG9Gb3JtYXQpIHsKKyAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgY2hhciBjID0gcGF0dGVybi5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBpbnQgaiA9IHBhdHRlcm4uaW5kZXhPZihRVU9URSwgaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChqID09IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoUVVPVEUpOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGorMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGogPiBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHBhdHRlcm4uc3Vic3RyaW5nKGksIGopKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBqKzE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaTxwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQoaSk9PVFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChRVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvb3AgYWdhaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnRlcm1pbmF0ZWQgcXVvdGU7IHNob3VsZCBiZSBjYXVnaHQgYnkgYXBwbHkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdHRlcm4uCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgIGNhc2UgQ1VSUkVOQ1lfU0lHTjoKKyAgICAgICAgICAgICAgICAvLyBBcyBvZiBJQ1UgMi4yIHdlIHVzZSB0aGUgY3VycmVuY3kgb2JqZWN0LCBhbmQKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmUgdGhlIGN1cnJlbmN5IHN5bWJvbHMgaW4gdGhlIERGUywgdW5sZXNzCisgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIG51bGwgY3VycmVuY3kgb2JqZWN0LiAgVGhpcyBvY2N1cnMgaWYKKyAgICAgICAgICAgICAgICAvLyByZXN1cnJlY3RpbmcgYSBwcmUtMi4yIG9iamVjdCBvciBpZiB0aGUgdXNlcgorICAgICAgICAgICAgICAgIC8vIHNldHMgYSBjdXN0b20gREZTLgorICAgICAgICAgICAgICAgIGJvb2xlYW4gaW50bCA9IGk8cGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChpKSA9PSBDVVJSRU5DWV9TSUdOOworICAgICAgICAgICAgICAgIGlmIChpbnRsKSB7CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBudWxsOworICAgICAgICAgICAgICAgIEN1cnJlbmN5IGN1cnJlbmN5ID0gZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWludGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNDaG9pY2VGb3JtYXRbXSA9IG5ldyBib29sZWFuWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGN1cnJlbmN5LmdldE5hbWUoc3ltYm9scy5nZXRVTG9jYWxlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW5jeS5TWU1CT0xfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hvaWNlRm9ybWF0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Nob2ljZUZvcm1hdFswXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR3byBtb2RlcyBoZXJlOiBJZiBkb0Zvcm1hdCBpcyBmYWxzZSwgd2Ugc2V0IHVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3VycmVuY3lDaG9pY2UuICBJZiBkb0Zvcm1hdCBpcyB0cnVlLCB3ZSB1c2UgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJldmlvdXNseSBjcmVhdGVkIGN1cnJlbmN5Q2hvaWNlIHRvIGZvcm1hdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSBpbiBkaWdpdExpc3QuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkb0Zvcm1hdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY3VycmVuY3kgaXMgaGFuZGxlZCBieSBhIENob2ljZUZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSdyZSBub3QgZ29pbmcgdG8gdXNlIHRoZSBleHBhbmRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXR0ZXJucy4gIEluc3RhbnRpYXRlIHRoZSBDaG9pY2VGb3JtYXQgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbmN5Q2hvaWNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5Q2hvaWNlID0gbmV3IENob2ljZUZvcm1hdChzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBjb3VsZCBhbG1vc3QgcmV0dXJuIG51bGwgb3IgIiIgaGVyZSwgc2luY2UgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV4cGFuZGVkIGFmZml4ZXMgYXJlIGFsbW9zdCBub3QgdXNlZCBhdCBhbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBzaXR1YXRpb24uICBIb3dldmVyLCBvbmUgbWV0aG9kIC0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvUGF0dGVybigpIC0tIHN0aWxsIGRvZXMgdXNlIHRoZSBleHBhbmRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZmZpeGVzLCBpbiBvcmRlciB0byBzZXQgdXAgYSBwYWRkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdHRlcm4uICBXZSB1c2UgdGhlIENVUlJFTkNZX1NJR04gYXMgYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwbGFjZWhvbGRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9IFN0cmluZy52YWx1ZU9mKENVUlJFTkNZX1NJR04pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7IC8vIGlnbm9yZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lDaG9pY2UuZm9ybWF0KGRpZ2l0TGlzdC5nZXREb3VibGUoKSwgYnVmZmVyLCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gY3VycmVuY3kuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzID0gaW50bCA/IHN5bWJvbHMuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIDogc3ltYm9scy5nZXRDdXJyZW5jeVN5bWJvbCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHMpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0UGVyY2VudCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUl9NSUxMRToKKyAgICAgICAgICAgICAgICBjID0gc3ltYm9scy5nZXRQZXJNaWxsKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBBVFRFUk5fTUlOVVM6CisgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0TWludXNTaWduKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGFuIGFmZml4IHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIuCisgICAgICogQHBhcmFtIGJ1ZiBidWZmZXIgdG8gYXBwZW5kIHRvCisgICAgICogQHBhcmFtIGlzTmVnYXRpdmUKKyAgICAgKiBAcGFyYW0gaXNQcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhcHBlbmRBZmZpeChTdHJpbmdCdWZmZXIgYnVmLCBib29sZWFuIGlzTmVnYXRpdmUsCisJCQlib29sZWFuIGlzUHJlZml4LCBib29sZWFuIHBhcnNlQXR0cikgeworICAgICAgICBpZiAoY3VycmVuY3lDaG9pY2UgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIGFmZml4UGF0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChpc1ByZWZpeCkgeworICAgICAgICAgICAgICAgIGFmZml4UGF0ID0gaXNOZWdhdGl2ZSA/IG5lZ1ByZWZpeFBhdHRlcm4gOiBwb3NQcmVmaXhQYXR0ZXJuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhZmZpeFBhdCA9IGlzTmVnYXRpdmUgPyBuZWdTdWZmaXhQYXR0ZXJuIDogcG9zU3VmZml4UGF0dGVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBhZmZpeEJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGV4cGFuZEFmZml4KGFmZml4UGF0LCBhZmZpeEJ1ZiwgdHJ1ZSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGFmZml4QnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIGFmZml4QnVmLmxlbmd0aCgpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGFmZml4ID0gbnVsbDsKKyAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICBhZmZpeCA9IGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVByZWZpeCA6IHBvc2l0aXZlUHJlZml4OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYWZmaXggPSBpc05lZ2F0aXZlID8gbmVnYXRpdmVTdWZmaXggOiBwb3NpdGl2ZVN1ZmZpeDsKKyAgICAgICAgfQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJLy8gW1NwYXJrL0NETF0gSW52b2tlIGZvcm1hdEFmZml4MkF0dHJpYnV0ZSB0byBhZGQgYXR0cmlidXRlcyBmb3IgYWZmaXgKKwkJaWYgKHBhcnNlQXR0cikgeworCQkJaW50IG9mZnNldCA9IGFmZml4LmluZGV4T2Yoc3ltYm9scy5nZXRDdXJyZW5jeVN5bWJvbCgpKTsKKwkJCWlmICgtMSA9PSBvZmZzZXQpIHsKKwkJCQlvZmZzZXQgPSBhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0UGVyY2VudCgpKTsKKwkJCQlpZigtMSA9PSBvZmZzZXQpIHsKKwkJCQkJb2Zmc2V0ID0gMDsKKwkJCQl9CisJCQl9CisJCQlmb3JtYXRBZmZpeDJBdHRyaWJ1dGUoYWZmaXgsIGJ1Zi5sZW5ndGgoKSArIG9mZnNldCwgYnVmLmxlbmd0aCgpCisJCQkJCSsgYWZmaXgubGVuZ3RoKCkpOworCQl9CisvLyNlbmRpZgorICAgICAgICBidWYuYXBwZW5kKGFmZml4KTsKKyAgICAgICAgcmV0dXJuIGFmZml4Lmxlbmd0aCgpOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkvKgorCSAqIFtTcGFyay9DRExdIFRoaXMgaXMgYSBuZXdseSBhZGRlZCBtZXRob2QsIHVzZWQgdG8gYWRkIGF0dHJpYnV0ZXMgZm9yCisJICogcHJlZml4IGFuZCBzdWZmaXguCisJICovCisJcHJpdmF0ZSB2b2lkIGZvcm1hdEFmZml4MkF0dHJpYnV0ZShTdHJpbmcgYWZmaXgsIGludCBiZWdpbiwgaW50IGVuZCkgeworCQkvLyBbU3BhcmsvQ0RMXSBJdCBpcyB0aGUgaW52b2tlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGF0LCBiZWZvcmUKKwkJLy8gdGhlIGludm9jYXRpb24gb2YKKwkJLy8gdGhpcyBtZXRob2QsIGF0dHJpYnV0ZXMgaXMgbm90IG51bGwuCisJCS8vIGlmKCBhdHRyaWJ1dGVzID09IG51bGwgKSByZXR1cm47CisJCWlmIChhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0Q3VycmVuY3lTeW1ib2woKSkgPiAtMSkgeworCQkJYWRkQXR0cmlidXRlKEZpZWxkLkNVUlJFTkNZLCBiZWdpbiwgZW5kKTsKKwkJfSBlbHNlIGlmIChhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0TWludXNTaWduKCkpID4gLTEpIHsKKwkJCWFkZEF0dHJpYnV0ZShGaWVsZC5TSUdOLCBiZWdpbiwgZW5kKTsKKwkJfSBlbHNlIGlmIChhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0UGVyY2VudCgpKSA+IC0xKSB7CisJCQlhZGRBdHRyaWJ1dGUoRmllbGQuUEVSQ0VOVCwgYmVnaW4sIGVuZCk7CisJCX0gZWxzZSBpZiAoYWZmaXguaW5kZXhPZihzeW1ib2xzLmdldFBlck1pbGwoKSkgPiAtMSkgeworCQkJYWRkQXR0cmlidXRlKEZpZWxkLlBFUk1JTExFLCBiZWdpbiwgZW5kKTsKKwkJfQorCX0KKy8vI2VuZGlmCisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJLyoKKwkgKiBbU3BhcmsvQ0RMXSBVc2UgdGhpcyBtZXRob2QgdG8gYWRkIGF0dHJpYnV0ZS4KKwkgKi8KKwlwcml2YXRlIHZvaWQgYWRkQXR0cmlidXRlKEZpZWxkIGZpZWxkLCBpbnQgYmVnaW4sIGludCBlbmQpIHsKKwkJRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbihmaWVsZCk7CisJCXBvcy5zZXRCZWdpbkluZGV4KGJlZ2luKTsKKwkJcG9zLnNldEVuZEluZGV4KGVuZCk7CisJCWF0dHJpYnV0ZXMuYWRkKHBvcyk7CisJfQorLy8jZW5kaWYKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiBGb3JtYXQgdGhlIG9iamVjdCB0byBhbiBhdHRyaWJ1dGVkIHN0cmluZywgYW5kIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBpdGVyYXRvcgorICAgICAqIE92ZXJyaWRlcyBzdXBlcmNsYXNzIG1ldGhvZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKwkvLyBbU3BhcmsvQ0RMXSAKKwlwdWJsaWMgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3IoT2JqZWN0IG9iaikgeworCQlpZiAoIShvYmogaW5zdGFuY2VvZiBOdW1iZXIpKQorCQkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworCQlOdW1iZXIgbnVtYmVyID0gKE51bWJlcikgb2JqOworCQlTdHJpbmdCdWZmZXIgdGV4dCA9IG51bGw7CisJCWF0dHJpYnV0ZXMuY2xlYXIoKTsKKwkJaWYgKG9iaiBpbnN0YW5jZW9mIEJpZ0ludGVnZXIpIHsKKwkJCXRleHQgPSBmb3JtYXQoKEJpZ0ludGVnZXIpIG51bWJlciwgbmV3IFN0cmluZ0J1ZmZlcigpLAorCQkJCQluZXcgRmllbGRQb3NpdGlvbigwKSwgdHJ1ZSk7CisJCX0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgamF2YS5tYXRoLkJpZ0RlY2ltYWwpIHsKKwkJCXRleHQgPSBmb3JtYXQoKGphdmEubWF0aC5CaWdEZWNpbWFsKSBudW1iZXIsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKwkJCQkJbmV3IEZpZWxkUG9zaXRpb24oMCksIHRydWUpOworCQl9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERvdWJsZSkgeworCQkJdGV4dCA9IGZvcm1hdChudW1iZXIuZG91YmxlVmFsdWUoKSwgbmV3IFN0cmluZ0J1ZmZlcigpLAorCQkJCQluZXcgRmllbGRQb3NpdGlvbigwKSwgdHJ1ZSk7CisJCX0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgSW50ZWdlciB8fCBvYmogaW5zdGFuY2VvZiBMb25nKSB7CisJCQl0ZXh0ID0gZm9ybWF0KG51bWJlci5sb25nVmFsdWUoKSwgbmV3IFN0cmluZ0J1ZmZlcigpLAorCQkJCQluZXcgRmllbGRQb3NpdGlvbigwKSwgdHJ1ZSk7CisJCX0KKwkKKwkJQXR0cmlidXRlZFN0cmluZyBhcyA9IG5ldyBBdHRyaWJ1dGVkU3RyaW5nKHRleHQudG9TdHJpbmcoKSk7CisJCisJCS8vIGFkZCBOdW1iZXJGb3JtYXQgZmllbGQgYXR0cmlidXRlcyB0byB0aGUgQXR0cmlidXRlZFN0cmluZworCQlmb3IgKGludCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMuc2l6ZSgpOyBpKyspIHsKKwkJCUZpZWxkUG9zaXRpb24gcG9zID0gKEZpZWxkUG9zaXRpb24pIGF0dHJpYnV0ZXMuZ2V0KGkpOworCQkJRm9ybWF0LkZpZWxkIGF0dHJpYnV0ZSA9IHBvcy5nZXRGaWVsZEF0dHJpYnV0ZSgpOworCQkJYXMuYWRkQXR0cmlidXRlKGF0dHJpYnV0ZSwgYXR0cmlidXRlLCBwb3MuZ2V0QmVnaW5JbmRleCgpLCBwb3MKKwkJCQkJLmdldEVuZEluZGV4KCkpOworCQl9CisJCisJCS8vIHJldHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3IgZnJvbSBBdHRyaWJ1dGVkU3RyaW5nCisJCXJldHVybiBhcy5nZXRJdGVyYXRvcigpOworCX0KKy8vI2VuZGlmCisgICAgLyoqCisgICAgICogQXBwZW5kIGFuIGFmZml4IHBhdHRlcm4gdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4gIExvY2FsaXplIHVucXVvdGVkCisgICAgICogc3BlY2lhbHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZEFmZml4UGF0dGVybihTdHJpbmdCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlLCBib29sZWFuIGlzUHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsb2NhbGl6ZWQpIHsKKyAgICAgICAgU3RyaW5nIGFmZml4UGF0ID0gbnVsbDsKKyAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICBhZmZpeFBhdCA9IGlzTmVnYXRpdmUgPyBuZWdQcmVmaXhQYXR0ZXJuIDogcG9zUHJlZml4UGF0dGVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFmZml4UGF0ID0gaXNOZWdhdGl2ZSA/IG5lZ1N1ZmZpeFBhdHRlcm4gOiBwb3NTdWZmaXhQYXR0ZXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBhIG51bGwgYWZmaXggcGF0dGVybiwgd2UgdXNlIHRoZSBhZmZpeCBpdHNlbGYuCisgICAgICAgIGlmIChhZmZpeFBhdCA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgYWZmaXggPSBudWxsOworICAgICAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICAgICAgYWZmaXggPSBpc05lZ2F0aXZlID8gbmVnYXRpdmVQcmVmaXggOiBwb3NpdGl2ZVByZWZpeDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWZmaXggPSBpc05lZ2F0aXZlID8gbmVnYXRpdmVTdWZmaXggOiBwb3NpdGl2ZVN1ZmZpeDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIERvIHRoaXMgY3J1ZGVseSBmb3Igbm93OiAgV3JhcCBldmVyeXRoaW5nIGluIHF1b3Rlcy4KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoUVVPVEUpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGFmZml4Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gYWZmaXguY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKFFVT1RFKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbG9jYWxpemVkKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGFmZml4UGF0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBpLCBqOworICAgICAgICAgICAgZm9yIChpPTA7IGk8YWZmaXhQYXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBhZmZpeFBhdC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgICAgIGNhc2UgUVVPVEU6CisgICAgICAgICAgICAgICAgICAgIGogPSBhZmZpeFBhdC5pbmRleE9mKFFVT1RFLCBpKzEpOworICAgICAgICAgICAgICAgICAgICBpZiAoaiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1hbGZvcm1lZCBhZmZpeCBwYXR0ZXJuOiAiICsgYWZmaXhQYXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYWZmaXhQYXQuc3Vic3RyaW5nKGksIGorMSkpOworICAgICAgICAgICAgICAgICAgICBpID0gajsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUl9NSUxMRToKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldFBlck1pbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgICAgIGNoID0gc3ltYm9scy5nZXRQZXJjZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUEFUVEVSTl9NSU5VUzoKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldE1pbnVzU2lnbigpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9jaGVjayBpZiBjaGFyIGlzIHNhbWUgYXMgYW55IG90aGVyIHN5bWJvbAorICAgICAgICAgICAgICAgIGlmKGNoPT1zeW1ib2xzLmdldERlY2ltYWxTZXBhcmF0b3IoKSB8fAorICAgICAgICAgICAgICAgICAgIGNoPT1zeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkgKXsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChRVU9URSk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKFFVT1RFKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBEb2VzIHRoZSByZWFsIHdvcmsgb2YgZ2VuZXJhdGluZyBhIHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdG9QYXR0ZXJuKGJvb2xlYW4gbG9jYWxpemVkKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGNoYXIgemVybyA9IGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0WmVyb0RpZ2l0KCkgOiBQQVRURVJOX1pFUk9fRElHSVQ7CisgICAgICAgIGNoYXIgZGlnaXQgPSBsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldERpZ2l0KCkgOiBQQVRURVJOX0RJR0lUOworICAgICAgICBjaGFyIHNpZ0RpZ2l0ID0gMDsKKyAgICAgICAgYm9vbGVhbiB1c2VTaWdEaWcgPSBhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKTsKKyAgICAgICAgaWYgKHVzZVNpZ0RpZykgeworICAgICAgICAgICAgc2lnRGlnaXQgPSBsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldFNpZ25pZmljYW50RGlnaXQoKSA6IFBBVFRFUk5fU0lHTklGSUNBTlRfRElHSVQ7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBncm91cCA9IGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUEFUVEVSTl9HUk9VUElOR19TRVBBUkFUT1I7CisgICAgICAgIGludCBpOworICAgICAgICBpbnQgcm91bmRpbmdEZWNpbWFsUG9zID0gMDsgLy8gUG9zIG9mIGRlY2ltYWwgaW4gcm91bmRpbmdEaWdpdHMKKyAgICAgICAgU3RyaW5nIHJvdW5kaW5nRGlnaXRzID0gbnVsbDsKKyAgICAgICAgaW50IHBhZFBvcyA9IChmb3JtYXRXaWR0aCA+IDApID8gcGFkUG9zaXRpb24gOiAtMTsKKyAgICAgICAgU3RyaW5nIHBhZFNwZWMgPSAoZm9ybWF0V2lkdGggPiAwKQorICAgICAgICAgICAgPyBuZXcgU3RyaW5nQnVmZmVyKDIpLgorICAgICAgICAgICAgICAgIGFwcGVuZChsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldFBhZEVzY2FwZSgpIDogUEFUVEVSTl9QQURfRVNDQVBFKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQocGFkKS50b1N0cmluZygpCisgICAgICAgICAgICA6IG51bGw7CisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudElDVSAhPSBudWxsKSB7CisgICAgICAgICAgICBpID0gcm91bmRpbmdJbmNyZW1lbnRJQ1Uuc2NhbGUoKTsKKyAgICAgICAgICAgIHJvdW5kaW5nRGlnaXRzID0gcm91bmRpbmdJbmNyZW1lbnRJQ1UubW92ZVBvaW50UmlnaHQoaSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHJvdW5kaW5nRGVjaW1hbFBvcyA9IHJvdW5kaW5nRGlnaXRzLmxlbmd0aCgpIC0gaTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBwYXJ0PTA7IHBhcnQ8MjsgKytwYXJ0KSB7CisgICAgICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBpbnQgcGFydFN0YXJ0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKHBhZFBvcyA9PSBQQURfQkVGT1JFX1BSRUZJWCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGFkU3BlYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBVc2Ugb3JpZ2luYWwgc3ltYm9scyByZWFkIGZyb20gcmVzb3VyY2VzIGluIHBhdHRlcm4KKyAgICAgICAgICAgICAqIGVnLiB1c2UgIlx1MDBBNCIgaW5zdGVhZCBvZiAiJCIgaW4gTG9jYWxlLlVTIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYXBwZW5kQWZmaXhQYXR0ZXJuKHJlc3VsdCwgcGFydCE9MCwgdHJ1ZSwgbG9jYWxpemVkKTsKKyAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gUEFEX0FGVEVSX1BSRUZJWCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGFkU3BlYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgc3ViMFN0YXJ0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGcgPSBpc0dyb3VwaW5nVXNlZCgpID8gTWF0aC5tYXgoMCwgZ3JvdXBpbmdTaXplKSA6IDA7CisgICAgICAgICAgICBpZiAoZyA+IDAgJiYgZ3JvdXBpbmdTaXplMiA+IDAgJiYgZ3JvdXBpbmdTaXplMiAhPSBncm91cGluZ1NpemUpIHsKKyAgICAgICAgICAgICAgICBnICs9IGdyb3VwaW5nU2l6ZTI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbWF4RGlnID0gMCwgbWluRGlnID0gMCwgbWF4U2lnRGlnID0gMDsKKyAgICAgICAgICAgIGlmICh1c2VTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICBtaW5EaWcgPSBnZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKTsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSBtYXhTaWdEaWcgPSBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWluRGlnID0gZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKTsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHVzZUV4cG9uZW50aWFsTm90YXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAobWF4RGlnID4gTUFYX1NDSUVOVElGSUNfSU5URUdFUl9ESUdJVFMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4RGlnID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHVzZVNpZ0RpZykgeworICAgICAgICAgICAgICAgIG1heERpZyA9IE1hdGgubWF4KG1heERpZywgZysxKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gTWF0aC5tYXgoTWF0aC5tYXgoZywgZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdEZWNpbWFsUG9zKSArIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGkgPSBtYXhEaWc7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXVzZUV4cG9uZW50aWFsTm90YXRpb24gJiYgaTxtYXhEaWcgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNHcm91cGluZ1Bvc2l0aW9uKGkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZ3JvdXApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAjQCxAIyMjICAgKG1heFNpZ0RpZyA9PSA1LCBtaW5TaWdEaWcgPT0gMikKKyAgICAgICAgICAgICAgICAgICAgLy8gIDY1IDQzMjEgICAoMS1iYXNlZCBwb3MsIGNvdW50IGZyb20gdGhlIHJpZ2h0KQorICAgICAgICAgICAgICAgICAgICAvLyBVc2UgIyBpZiBwb3MgPiBtYXhTaWdEaWcgb3IgMSA8PSBwb3MgPD0gKG1heFNpZ0RpZyAtIG1pblNpZ0RpZykKKyAgICAgICAgICAgICAgICAgICAgLy8gVXNlIEAgaWYgKG1heFNpZ0RpZyAtIG1pblNpZ0RpZykgPCBwb3MgPD0gbWF4U2lnRGlnCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKG1heFNpZ0RpZyA+PSBpICYmIGkgPiAobWF4U2lnRGlnIC0gbWluRGlnKSkgPyBzaWdEaWdpdCA6IGRpZ2l0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAocm91bmRpbmdEaWdpdHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IHJvdW5kaW5nRGVjaW1hbFBvcyAtIGk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zID49IDAgJiYgcG9zIDwgcm91bmRpbmdEaWdpdHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKSAocm91bmRpbmdEaWdpdHMuY2hhckF0KHBvcykgLSAnMCcgKyB6ZXJvKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpPD1taW5EaWcgPyB6ZXJvIDogZGlnaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghdXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgaWYgKGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpID4gMCB8fCBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24pIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldERlY2ltYWxTZXBhcmF0b3IoKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFUVEVSTl9ERUNJTUFMX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBwb3MgPSByb3VuZGluZ0RlY2ltYWxQb3M7CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJvdW5kaW5nRGlnaXRzICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA8IHJvdW5kaW5nRGlnaXRzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBvcyA8IDAgPyB6ZXJvIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpIChyb3VuZGluZ0RpZ2l0cy5jaGFyQXQocG9zKSAtICcwJyArIHplcm8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpPGdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpID8gemVybyA6IGRpZ2l0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikgeworICAgICAgICAgICAgICAgIGlmKGxvY2FsaXplZCApeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKSApOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFBBVFRFUk5fRVhQT05FTlQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZXhwb25lbnRTaWduQWx3YXlzU2hvd24pIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldFBsdXNTaWduKCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBVFRFUk5fUExVU19TSUdOKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8bWluRXhwb25lbnREaWdpdHM7ICsraSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwYWRTcGVjICE9IG51bGwgJiYgIXVzZUV4cG9uZW50aWFsTm90YXRpb24pIHsKKyAgICAgICAgICAgICAgICBpbnQgYWRkID0gZm9ybWF0V2lkdGggLSByZXN1bHQubGVuZ3RoKCkgKyBzdWIwU3RhcnQKKyAgICAgICAgICAgICAgICAgICAgLSAoKHBhcnQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgPyBwb3NpdGl2ZVByZWZpeC5sZW5ndGgoKSArIHBvc2l0aXZlU3VmZml4Lmxlbmd0aCgpCisgICAgICAgICAgICAgICAgICAgICAgIDogbmVnYXRpdmVQcmVmaXgubGVuZ3RoKCkgKyBuZWdhdGl2ZVN1ZmZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGFkZCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydChzdWIwU3RhcnQsIGRpZ2l0KTsKKyAgICAgICAgICAgICAgICAgICAgKyttYXhEaWc7CisgICAgICAgICAgICAgICAgICAgIC0tYWRkOworICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGFkZCBhIGdyb3VwaW5nIHNlcGFyYXRvciBpZiB3ZSBoYXZlIGF0IGxlYXN0CisgICAgICAgICAgICAgICAgICAgIC8vIDIgYWRkaXRpb25hbCBjaGFyYWN0ZXJzIHRvIGJlIGFkZGVkLCBzbyB3ZSBkb24ndAorICAgICAgICAgICAgICAgICAgICAvLyBlbmQgdXAgd2l0aCAiLCMjIyIuCisgICAgICAgICAgICAgICAgICAgIGlmIChhZGQ+MSAmJiBpc0dyb3VwaW5nUG9zaXRpb24obWF4RGlnKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydChzdWIwU3RhcnQsIGdyb3VwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tYWRkOyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBhZFBvcyA9PSBQQURfQkVGT1JFX1NVRkZJWCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGFkU3BlYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBVc2Ugb3JpZ2luYWwgc3ltYm9scyByZWFkIGZyb20gcmVzb3VyY2VzIGluIHBhdHRlcm4KKyAgICAgICAgICAgICAqIGVnLiB1c2UgIlx1MDBBNCIgaW5zdGVhZCBvZiAiJCIgaW4gTG9jYWxlLlVTIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYXBwZW5kQWZmaXhQYXR0ZXJuKHJlc3VsdCwgcGFydCE9MCwgZmFsc2UsIGxvY2FsaXplZCk7CisgICAgICAgICAgICBpZiAocGFkUG9zID09IFBBRF9BRlRFUl9TVUZGSVgpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBhZFNwZWMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBhcnQgPT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZVN1ZmZpeC5lcXVhbHMocG9zaXRpdmVTdWZmaXgpICYmCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlUHJlZml4LmVxdWFscyggUEFUVEVSTl9NSU5VUyArIHBvc2l0aXZlUHJlZml4KSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0UGF0dGVyblNlcGFyYXRvcigpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJOX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gcGF0dGVybiB0byB0aGlzIEZvcm1hdCBvYmplY3QuICBBIHBhdHRlcm4gaXMgYQorICAgICAqIHNob3J0LWhhbmQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHZhcmlvdXMgZm9ybWF0dGluZyBwcm9wZXJ0aWVzLgorICAgICAqIFRoZXNlIHByb3BlcnRpZXMgY2FuIGFsc28gYmUgY2hhbmdlZCBpbmRpdmlkdWFsbHkgdGhyb3VnaCB0aGUKKyAgICAgKiB2YXJpb3VzIHNldHRlciBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIGxpbWl0IHRvIGludGVnZXIgZGlnaXRzIGFyZSBzZXQKKyAgICAgKiBieSB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoYXQgaXMgdGhlIHR5cGljYWwgZW5kLXVzZXIgZGVzaXJlOworICAgICAqIHVzZSBzZXRNYXhpbXVtSW50ZWdlciBpZiB5b3Ugd2FudCB0byBzZXQgYSByZWFsIHZhbHVlLgorICAgICAqIEZvciBuZWdhdGl2ZSBudW1iZXJzLCB1c2UgYSBzZWNvbmQgcGF0dGVybiwgc2VwYXJhdGVkIGJ5IGEgc2VtaWNvbG9uCisgICAgICogPFA+RXhhbXBsZSAiIywjMDAuMCMiIC0+IDEsMjM0LjU2CisgICAgICogPFA+VGhpcyBtZWFucyBhIG1pbmltdW0gb2YgMiBpbnRlZ2VyIGRpZ2l0cywgMSBmcmFjdGlvbiBkaWdpdCwgYW5kCisgICAgICogYSBtYXhpbXVtIG9mIDIgZnJhY3Rpb24gZGlnaXRzLgorICAgICAqIDxwPkV4YW1wbGU6ICIjLCMwMC4wIzsoIywjMDAuMCMpIiBmb3IgbmVnYXRpdmVzIGluIHBhcmVudGhlc2VzLgorICAgICAqIDxwPkluIG5lZ2F0aXZlIHBhdHRlcm5zLCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBjb3VudHMgYXJlIGlnbm9yZWQ7CisgICAgICogdGhlc2UgYXJlIHByZXN1bWVkIHRvIGJlIHNldCBpbiB0aGUgcG9zaXRpdmUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oIFN0cmluZyBwYXR0ZXJuICkgeworICAgICAgICBhcHBseVBhdHRlcm4oIHBhdHRlcm4sIGZhbHNlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHBhdHRlcm4gdG8gdGhpcyBGb3JtYXQgb2JqZWN0LiAgVGhlIHBhdHRlcm4KKyAgICAgKiBpcyBhc3N1bWVkIHRvIGJlIGluIGEgbG9jYWxpemVkIG5vdGF0aW9uLiBBIHBhdHRlcm4gaXMgYQorICAgICAqIHNob3J0LWhhbmQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHZhcmlvdXMgZm9ybWF0dGluZyBwcm9wZXJ0aWVzLgorICAgICAqIFRoZXNlIHByb3BlcnRpZXMgY2FuIGFsc28gYmUgY2hhbmdlZCBpbmRpdmlkdWFsbHkgdGhyb3VnaCB0aGUKKyAgICAgKiB2YXJpb3VzIHNldHRlciBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIGxpbWl0IHRvIGludGVnZXIgZGlnaXRzIGFyZSBzZXQKKyAgICAgKiBieSB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoYXQgaXMgdGhlIHR5cGljYWwgZW5kLXVzZXIgZGVzaXJlOworICAgICAqIHVzZSBzZXRNYXhpbXVtSW50ZWdlciBpZiB5b3Ugd2FudCB0byBzZXQgYSByZWFsIHZhbHVlLgorICAgICAqIEZvciBuZWdhdGl2ZSBudW1iZXJzLCB1c2UgYSBzZWNvbmQgcGF0dGVybiwgc2VwYXJhdGVkIGJ5IGEgc2VtaWNvbG9uCisgICAgICogPFA+RXhhbXBsZSAiIywjMDAuMCMiIC0+IDEsMjM0LjU2CisgICAgICogPFA+VGhpcyBtZWFucyBhIG1pbmltdW0gb2YgMiBpbnRlZ2VyIGRpZ2l0cywgMSBmcmFjdGlvbiBkaWdpdCwgYW5kCisgICAgICogYSBtYXhpbXVtIG9mIDIgZnJhY3Rpb24gZGlnaXRzLgorICAgICAqIDxwPkV4YW1wbGU6ICIjLCMwMC4wIzsoIywjMDAuMCMpIiBmb3IgbmVnYXRpdmVzIGluIHBhcmFudGhlc2VzLgorICAgICAqIDxwPkluIG5lZ2F0aXZlIHBhdHRlcm5zLCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBjb3VudHMgYXJlIGlnbm9yZWQ7CisgICAgICogdGhlc2UgYXJlIHByZXN1bWVkIHRvIGJlIHNldCBpbiB0aGUgcG9zaXRpdmUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseUxvY2FsaXplZFBhdHRlcm4oIFN0cmluZyBwYXR0ZXJuICkgeworICAgICAgICBhcHBseVBhdHRlcm4oIHBhdHRlcm4sIHRydWUgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIERvZXMgdGhlIHJlYWwgd29yayBvZiBhcHBseWluZyBhIHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybiwgYm9vbGVhbiBsb2NhbGl6ZWQpIHsKKyAgICAgICAgY2hhciB6ZXJvRGlnaXQgICAgICAgICA9IFBBVFRFUk5fWkVST19ESUdJVDsgLy8gJzAnCisgICAgICAgIGNoYXIgc2lnRGlnaXQgICAgICAgICAgPSBQQVRURVJOX1NJR05JRklDQU5UX0RJR0lUOyAvLyAnQCcKKyAgICAgICAgY2hhciBncm91cGluZ1NlcGFyYXRvciA9IFBBVFRFUk5fR1JPVVBJTkdfU0VQQVJBVE9SOworICAgICAgICBjaGFyIGRlY2ltYWxTZXBhcmF0b3IgID0gUEFUVEVSTl9ERUNJTUFMX1NFUEFSQVRPUjsKKyAgICAgICAgY2hhciBwZXJjZW50ICAgICAgICAgICA9IFBBVFRFUk5fUEVSQ0VOVDsKKyAgICAgICAgY2hhciBwZXJNaWxsICAgICAgICAgICA9IFBBVFRFUk5fUEVSX01JTExFOworICAgICAgICBjaGFyIGRpZ2l0ICAgICAgICAgICAgID0gUEFUVEVSTl9ESUdJVDsgLy8gJyMnCisgICAgICAgIGNoYXIgc2VwYXJhdG9yICAgICAgICAgPSBQQVRURVJOX1NFUEFSQVRPUjsKKyAgICAgICAgU3RyaW5nIGV4cG9uZW50ICAgICAgICA9IFN0cmluZy52YWx1ZU9mKFBBVFRFUk5fRVhQT05FTlQpOworICAgICAgICBjaGFyIHBsdXMgICAgICAgICAgICAgID0gUEFUVEVSTl9QTFVTX1NJR047CisgICAgICAgIGNoYXIgcGFkRXNjYXBlICAgICAgICAgPSBQQVRURVJOX1BBRF9FU0NBUEU7CisgICAgICAgIGNoYXIgbWludXMgICAgICAgICAgICAgPSBQQVRURVJOX01JTlVTOyAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgaWYgKGxvY2FsaXplZCkgeworICAgICAgICAgICAgemVyb0RpZ2l0ICAgICAgICAgPSBzeW1ib2xzLmdldFplcm9EaWdpdCgpOworICAgICAgICAgICAgc2lnRGlnaXQgICAgICAgICAgPSBzeW1ib2xzLmdldFNpZ25pZmljYW50RGlnaXQoKTsKKyAgICAgICAgICAgIGdyb3VwaW5nU2VwYXJhdG9yID0gc3ltYm9scy5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvciAgPSBzeW1ib2xzLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIHBlcmNlbnQgICAgICAgICAgID0gc3ltYm9scy5nZXRQZXJjZW50KCk7CisgICAgICAgICAgICBwZXJNaWxsICAgICAgICAgICA9IHN5bWJvbHMuZ2V0UGVyTWlsbCgpOworICAgICAgICAgICAgZGlnaXQgICAgICAgICAgICAgPSBzeW1ib2xzLmdldERpZ2l0KCk7CisgICAgICAgICAgICBzZXBhcmF0b3IgICAgICAgICA9IHN5bWJvbHMuZ2V0UGF0dGVyblNlcGFyYXRvcigpOworICAgICAgICAgICAgZXhwb25lbnQgICAgICAgICAgPSBzeW1ib2xzLmdldEV4cG9uZW50U2VwYXJhdG9yKCk7CisgICAgICAgICAgICBwbHVzICAgICAgICAgICAgICA9IHN5bWJvbHMuZ2V0UGx1c1NpZ24oKTsKKyAgICAgICAgICAgIHBhZEVzY2FwZSAgICAgICAgID0gc3ltYm9scy5nZXRQYWRFc2NhcGUoKTsKKyAgICAgICAgICAgIG1pbnVzICAgICAgICAgICAgID0gc3ltYm9scy5nZXRNaW51c1NpZ24oKTsgLy9CdWcgNDIxMjA3MiBbUmljaGFyZC9HQ0xdCisgICAgICAgIH0KKyAgICAgICAgY2hhciBuaW5lRGlnaXQgPSAoY2hhcikgKHplcm9EaWdpdCArIDkpOworCisgICAgICAgIGJvb2xlYW4gZ290TmVnYXRpdmUgPSBmYWxzZTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgLy8gUGFydCAwIGlzIHRoZSBwb3NpdGl2ZSBwYXR0ZXJuLiAgUGFydCAxLCBpZiBwcmVzZW50LCBpcyB0aGUgbmVnYXRpdmUKKyAgICAgICAgLy8gcGF0dGVybi4KKyAgICAgICAgZm9yIChpbnQgcGFydD0wOyBwYXJ0PDIgJiYgcG9zPHBhdHRlcm4ubGVuZ3RoKCk7ICsrcGFydCkgeworICAgICAgICAgICAgLy8gVGhlIHN1YnBhcnQgcmFuZ2VzIGZyb20gMCB0byA0OiAwPXBhdHRlcm4gcHJvcGVyLCAxPXByZWZpeCwKKyAgICAgICAgICAgIC8vIDI9c3VmZml4LCAzPXByZWZpeCBpbiBxdW90ZSwgND1zdWZmaXggaW4gcXVvdGUuICBTdWJwYXJ0IDAgaXMKKyAgICAgICAgICAgIC8vIGJldHdlZW4gdGhlIHByZWZpeCBhbmQgc3VmZml4LCBhbmQgY29uc2lzdHMgb2YgcGF0dGVybgorICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4gIEluIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCwgcGVyY2VudCwgcGVybWlsbGUsIGFuZAorICAgICAgICAgICAgLy8gY3VycmVuY3kgc3ltYm9scyBhcmUgcmVjb2duaXplZCBhbmQgdHJhbnNsYXRlZC4KKyAgICAgICAgICAgIGludCBzdWJwYXJ0ID0gMSwgc3ViMFN0YXJ0ID0gMCwgc3ViMExpbWl0ID0gMCwgc3ViMkxpbWl0ID0gMDsKKworICAgICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdGhhdCB3ZSBkb24ndCBjaGFuZ2UgYW55IGZpZWxkcyBvZiB0aGlzIG9iamVjdAorICAgICAgICAgICAgLy8gcHJlbWF0dXJlbHkuICBXZSBzZXQgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgZm9yIHRoZSBtdWx0aXBsaWVyLAorICAgICAgICAgICAgLy8gZ3JvdXBpbmcsIGV0Yy4sIGFuZCB0aGVuIG9ubHkgY2hhbmdlIHRoZSBhY3R1YWwgb2JqZWN0IGZpZWxkcyBpZgorICAgICAgICAgICAgLy8gZXZlcnl0aGluZyBwYXJzZXMgY29ycmVjdGx5LiAgVGhpcyBhbHNvIGxldHMgdXMgcmVnaXN0ZXIKKyAgICAgICAgICAgIC8vIHRoZSBkYXRhIGZyb20gcGFydCAwIGFuZCBpZ25vcmUgdGhlIHBhcnQgMSwgZXhjZXB0IGZvciB0aGUKKyAgICAgICAgICAgIC8vIHByZWZpeCBhbmQgc3VmZml4LgorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHByZWZpeCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdWZmaXggPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgZGVjaW1hbFBvcyA9IC0xOworICAgICAgICAgICAgaW50IG11bHRpcGxpZXIgPSAxOworICAgICAgICAgICAgaW50IGRpZ2l0TGVmdENvdW50ID0gMCwgemVyb0RpZ2l0Q291bnQgPSAwLCBkaWdpdFJpZ2h0Q291bnQgPSAwLCBzaWdEaWdpdENvdW50ID0gMDsKKyAgICAgICAgICAgIGJ5dGUgZ3JvdXBpbmdDb3VudCA9IC0xOworICAgICAgICAgICAgYnl0ZSBncm91cGluZ0NvdW50MiA9IC0xOworICAgICAgICAgICAgaW50IHBhZFBvcyA9IC0xOworICAgICAgICAgICAgY2hhciBwYWRDaGFyID0gMDsKKyAgICAgICAgICAgIGludCBpbmNyZW1lbnRQb3MgPSAtMTsKKyAgICAgICAgICAgIGxvbmcgaW5jcmVtZW50VmFsID0gMDsKKyAgICAgICAgICAgIGJ5dGUgZXhwRGlnaXRzID0gLTE7CisgICAgICAgICAgICBib29sZWFuIGV4cFNpZ25BbHdheXMgPSBmYWxzZTsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNDdXJyZW5jeSA9IGZhbHNlOworCisgICAgICAgICAgICAvLyBUaGUgYWZmaXggaXMgZWl0aGVyIHRoZSBwcmVmaXggb3IgdGhlIHN1ZmZpeC4KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBhZmZpeCA9IHByZWZpeDsKKworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zOworCisgICAgICAgIFBBUlRMT09QOgorICAgICAgICAgICAgZm9yICg7IHBvcyA8IHBhdHRlcm4ubGVuZ3RoKCk7ICsrcG9zKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHBhdHRlcm4uY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChzdWJwYXJ0KSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOiAvLyBQYXR0ZXJuIHByb3BlciBzdWJwYXJ0IChiZXR3ZWVuIHByZWZpeCAmIHN1ZmZpeCkKKyAgICAgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB0aGUgZGlnaXRzLCBkZWNpbWFsLCBhbmQgZ3JvdXBpbmcgY2hhcmFjdGVycy4gIFdlCisgICAgICAgICAgICAgICAgICAgIC8vIHJlY29yZCBmaXZlIHBpZWNlcyBvZiBpbmZvcm1hdGlvbi4gIFdlIGV4cGVjdCB0aGUgZGlnaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIHRvIG9jY3VyIGluIHRoZSBwYXR0ZXJuICMjIyMwMC4wMCMjIyMsIGFuZCB3ZSByZWNvcmQgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBsZWZ0IGRpZ2l0cywgemVybyAoY2VudHJhbCkgZGlnaXRzLCBhbmQgcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlnaXRzLiAgVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGdyb3VwaW5nIGNoYXJhY3RlciBpcworICAgICAgICAgICAgICAgICAgICAvLyByZWNvcmRlZCAoc2hvdWxkIGJlIHNvbWV3aGVyZSB3aXRoaW4gdGhlIGZpcnN0IHR3byBibG9ja3MKKyAgICAgICAgICAgICAgICAgICAgLy8gb2YgY2hhcmFjdGVycyksIGFzIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVjaW1hbCBwb2ludCwKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgYW55IChzaG91bGQgYmUgaW4gdGhlIHplcm8gZGlnaXRzKS4gIElmIHRoZXJlIGlzIG5vCisgICAgICAgICAgICAgICAgICAgIC8vIGRlY2ltYWwgcG9pbnQsIHRoZW4gdGhlcmUgc2hvdWxkIGJlIG5vIHJpZ2h0IGRpZ2l0cy4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IGRpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoemVyb0RpZ2l0Q291bnQgPiAwIHx8IHNpZ0RpZ2l0Q291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytkaWdpdFJpZ2h0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrZGlnaXRMZWZ0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdDb3VudCA+PSAwICYmIGRlY2ltYWxQb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytncm91cGluZ0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChjaCA+PSB6ZXJvRGlnaXQgJiYgY2ggPD0gbmluZURpZ2l0KSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID09IHNpZ0RpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXRSaWdodENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiVW5leHBlY3RlZCAnIiArIGNoICsgJ1wnJywgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gc2lnRGlnaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NpZ0RpZ2l0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsremVyb0RpZ2l0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoICE9IHplcm9EaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcCA9IGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGlnaXRSaWdodENvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jcmVtZW50UG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpbmNyZW1lbnRQb3MgPCBwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50VmFsICo9IDEwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraW5jcmVtZW50UG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50UG9zID0gcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRWYWwgKz0gY2ggLSB6ZXJvRGlnaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwaW5nQ291bnQgPj0gMCAmJiBkZWNpbWFsUG9zIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrZ3JvdXBpbmdDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBncm91cGluZ1NlcGFyYXRvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgLypCdWcgNDIxMjA3MgorICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHRoZSBMb2NhbGl6ZWQgcGF0dGVybiBsaWtlICInRnIuICcjJyMjMC4wNTsnRnIuLScjJyMjMC4wNSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKExvY2FsZT0iQ0giLCBncm91cGluZ1NlcGFyYXRvciA9PSBRVU9URSkgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IFFVT1RFICYmIChwb3MrMSkgPCBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBhZnRlciA9IHBhdHRlcm4uY2hhckF0KHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShhZnRlciA9PSBkaWdpdCB8fCAoYWZ0ZXIgPj0gemVyb0RpZ2l0ICYmIGFmdGVyIDw9IG5pbmVEaWdpdCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgcXVvdGUgb3V0c2lkZSBxdW90ZXMgaW5kaWNhdGVzIGVpdGhlciB0aGUgb3BlbmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBvciB0d28gcXVvdGVzLCB3aGljaCBpcyBhIHF1b3RlIGxpdGVyYWwuICBUaGF0IGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRoZSBmaXJzdCBxdW90ZSBpbiAnZG8nIG9yIG8nJ2Nsb2NrLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWZ0ZXIgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cGluZ0NvdW50IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBhcnQgPSAzOyAvLyBxdW90ZWQgcHJlZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gc3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCA9IDI7IC8vIHN1ZmZpeCBzdWJwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4ID0gc3VmZml4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIwTGltaXQgPSBwb3MtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVjaW1hbFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJHcm91cGluZyBzZXBhcmF0b3IgYWZ0ZXIgZGVjaW1hbCIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudDIgPSBncm91cGluZ0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gZGVjaW1hbFNlcGFyYXRvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlY2ltYWxQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiTXVsdGlwbGUgZGVjaW1hbCBzZXBhcmF0b3JzIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnRlbnRpb25hbGx5IGluY29ycG9yYXRlIHRoZSBkaWdpdFJpZ2h0Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuIHRob3VnaCBpdCBpcyBpbGxlZ2FsIGZvciB0aGlzIHRvIGJlID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludC4gIFdlIGNoZWNrIHBhdHRlcm4gc3ludGF4IGJlbG93LgorICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFBvcyA9IGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQgKyBkaWdpdFJpZ2h0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi5yZWdpb25NYXRjaGVzKHBvcywgZXhwb25lbnQsIDAsIGV4cG9uZW50Lmxlbmd0aCgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBEaWdpdHMgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIk11bHRpcGxlIGV4cG9uZW50aWFsIHN5bWJvbHMiLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwaW5nQ291bnQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIkdyb3VwaW5nIHNlcGFyYXRvciBpbiBleHBvbmVudGlhbCIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKz0gZXhwb25lbnQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHBvc2l0aXZlIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCBwYXR0ZXJuLmxlbmd0aCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHBhdHRlcm4uY2hhckF0KHBvcykgPT0gcGx1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBTaWduQWx3YXlzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSBsb29rYWhlYWQgdG8gcGFyc2Ugb3V0IHRoZSBleHBvbmVudGlhbCBwYXJ0IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdHRlcm4sIHRoZW4ganVtcCBpbnRvIHN1ZmZpeCBzdWJwYXJ0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cERpZ2l0cyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQocG9zKSA9PSB6ZXJvRGlnaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytleHBEaWdpdHM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxLiBSZXF1aXJlIGF0IGxlYXN0IG9uZSBtYW50aXNzYSBwYXR0ZXJuIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMi4gRGlzYWxsb3cgIiMrIEAiIGluIG1hbnRpc3NhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMy4gUmVxdWlyZSBhdCBsZWFzdCBvbmUgZXhwb25lbnQgcGF0dGVybiBkaWdpdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQpIDwgMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNpZ0RpZ2l0Q291bnQgKyBkaWdpdFJpZ2h0Q291bnQpIDwgMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNpZ0RpZ2l0Q291bnQgPiAwICYmIGRpZ2l0TGVmdENvdW50ID4gMCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwRGlnaXRzIDwgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIk1hbGZvcm1lZCBleHBvbmVudGlhbCIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gc3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBhcnQgPSAyOyAvLyBzdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgYWZmaXggPSBzdWZmaXg7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWIwTGltaXQgPSBwb3MtLTsgLy8gYmFja3VwOiBmb3IoKSB3aWxsIGluY3JlbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOiAvLyBQcmVmaXggc3VicGFydAorICAgICAgICAgICAgICAgIGNhc2UgMjogLy8gU3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB0aGUgcHJlZml4IC8gc3VmZml4IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB1bnF1b3RlZCBjaGFyYWN0ZXJzIHNlZW4gaW4gcHJlZml4IG9yIHN1ZmZpeAorICAgICAgICAgICAgICAgICAgICAvLyBzdWJwYXJ0LgorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gU2V2ZXJhbCBzeW50YXggY2hhcmFjdGVycyBpbXBsaWNpdGx5IGJlZ2lucyB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBzdWJwYXJ0IGlmIHdlIGFyZSBpbiB0aGUgcHJlZml4OyBvdGhlcndpc2UKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhleSBhcmUgaWxsZWdhbCBpZiB1bnF1b3RlZC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IGRpZ2l0IHx8CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9PSBncm91cGluZ1NlcGFyYXRvciB8fAorICAgICAgICAgICAgICAgICAgICAgICAgY2ggPT0gZGVjaW1hbFNlcGFyYXRvciB8fAorICAgICAgICAgICAgICAgICAgICAgICAgKGNoID49IHplcm9EaWdpdCAmJiBjaCA8PSBuaW5lRGlnaXQpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9PSBzaWdEaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW55IG9mIHRoZXNlIGNoYXJhY3RlcnMgaW1wbGljaXRseSBiZWdpbnMgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZXh0IHN1YnBhcnQgaWYgd2UgYXJlIGluIHRoZSBwcmVmaXgKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJwYXJ0ID09IDEpIHsgLy8gcHJlZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0ID0gMDsgLy8gcGF0dGVybiBwcm9wZXIgc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YjBTdGFydCA9IHBvcy0tOyAvLyBSZXByb2Nlc3MgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHRoZSBMb2NhbGl6ZWQgcGF0dGVybiBsaWtlICInRnIuICcjJyMjMC4wNTsnRnIuLScjJyMjMC4wNSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMb2NhbGU9IkNIIiwgZ3JvdXBpbmdTZXBhcmF0b3IgPT0gUVVPVEUpICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgcXVvdGUgb3V0c2lkZSBxdW90ZXMgaW5kaWNhdGVzIGVpdGhlciB0aGUgb3BlbmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIG9yIHR3byBxdW90ZXMsIHdoaWNoIGlzIGEgcXVvdGUgbGl0ZXJhbC4gIFRoYXQgaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0aGUgZmlyc3QgcXVvdGUgaW4gJ2RvJyBvciBvJydjbG9jay4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBvcysxKSA8IHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQocG9zKzEpID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBhcnQgKz0gMjsgLy8gb3BlbiBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiVW5xdW90ZWQgc3BlY2lhbCBjaGFyYWN0ZXIgJyIgKyBjaCArICdcJycsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IENVUlJFTkNZX1NJR04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSBsb29rYWhlYWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjdXJyZW5jeSBzaWduIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkb3VibGVkIG9yIG5vdC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZG91YmxlZCA9IChwb3MgKyAxKSA8IHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MgKyAxKSA9PSBDVVJSRU5DWV9TSUdOOworICAgICAgICAgICAgICAgICAgICAgICAgLypCdWcgNDIxMjA3MgorICAgICAgICAgICAgICAgICAgICAgICAgIFRvIG1lZXQgdGhlIG5lZWQgb2YgZXhwYW5kQWZmaXgoU3RyaW5nLCBTdGlybmdCdWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb3VibGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7IC8vIFNraXAgb3ZlciB0aGUgZG91YmxlZCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOyAvLyBhcHBlbmQgdHdvOiBvbmUgaGVyZSwgb25lIGJlbG93CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbmN5ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBhcHBlbmQoY2gpCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgcXVvdGUgb3V0c2lkZSBxdW90ZXMgaW5kaWNhdGVzIGVpdGhlciB0aGUgb3BlbmluZworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgb3IgdHdvIHF1b3Rlcywgd2hpY2ggaXMgYSBxdW90ZSBsaXRlcmFsLiAgVGhhdCBpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdGhlIGZpcnN0IHF1b3RlIGluICdkbycgb3IgbycnY2xvY2suCisgICAgICAgICAgICAgICAgICAgICAgICBpZigocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQocG9zKzEpPT1RVU9URSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaXguYXBwZW5kKGNoKTsgLy8gYXBwZW5kIHR3bzogb25lIGhlcmUsIG9uZSBiZWxvdworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCArPSAyOyAvLyBvcGVuIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHNlcGFyYXRvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgc2VwYXJhdG9ycyBpbiB0aGUgcHJlZml4LCBhbmQgZG9uJ3QgYWxsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcGFyYXRvcnMgaW4gdGhlIHNlY29uZCBwYXR0ZXJuIChwYXJ0ID09IDEpLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnBhcnQgPT0gMSB8fCBwYXJ0ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIlVucXVvdGVkIHNwZWNpYWwgY2hhcmFjdGVyICciICsgY2ggKyAnXCcnLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YjJMaW1pdCA9IHBvcysrOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgUEFSVExPT1A7IC8vIEdvIHRvIG5leHQgcGFydAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHBlcmNlbnQgfHwgY2ggPT0gcGVyTWlsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV4dCBoYW5kbGUgY2hhcmFjdGVycyB3aGljaCBhcmUgYXBwZW5kZWQgZGlyZWN0bHkuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJUb28gbWFueSBwZXJjZW50L3Blcm1pbGxlIGNoYXJhY3RlcnMiLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXIgPSAoY2ggPT0gcGVyY2VudCkgPyAxMDAgOiAxMDAwOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0byBub24tbG9jYWxpemVkIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoID09IHBlcmNlbnQpID8gUEFUVEVSTl9QRVJDRU5UIDogUEFUVEVSTl9QRVJfTUlMTEU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IG1pbnVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRvIG5vbi1sb2NhbGl6ZWQgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBQQVRURVJOX01JTlVTOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBwYWRFc2NhcGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiTXVsdGlwbGUgcGFkIHNwZWNpZmllcnMiLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpID09IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIkludmFsaWQgcGFkIHNwZWNpZmllciIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gcG9zKys7IC8vIEFkdmFuY2UgcGFzdCBwYWQgY2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgcGFkQ2hhciA9IHBhdHRlcm4uY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDM6IC8vIFByZWZpeCBzdWJwYXJ0LCBpbiBxdW90ZQorICAgICAgICAgICAgICAgIGNhc2UgNDogLy8gU3VmZml4IHN1YnBhcnQsIGluIHF1b3RlCisgICAgICAgICAgICAgICAgICAgIC8vIEEgcXVvdGUgd2l0aGluIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBjbG9zaW5nCisgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIG9yIHR3byBxdW90ZXMsIHdoaWNoIGlzIGEgcXVvdGUgbGl0ZXJhbC4gIFRoYXQgaXMsCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdGhlIHNlY29uZCBxdW90ZSBpbiAnZG8nIG9yICdkb24nJ3QnLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcysxKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0IC09IDI7IC8vIGNsb3NlIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IEluIElDVSAyLjIgdGhlcmUgd2FzIGNvZGUgaGVyZSB0byBwYXJzZSBxdW90ZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gcGVyY2VudCBhbmQgcGVybWlsbGUgY2hhcmFjdGVycyBfd2l0aGluIHF1b3Rlc18gYW5kIGdpdmUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlbSBzcGVjaWFsIG1lYW5pbmcuICBUaGlzIGlzIGluY29ycmVjdCwgc2luY2UgcXVvdGVkCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgYXJlIGxpdGVyYWxzIHdpdGhvdXQgc3BlY2lhbCBtZWFuaW5nLgorICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN1YnBhcnQgPT0gMyB8fCBzdWJwYXJ0ID09IDQpIHsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIlVudGVybWluYXRlZCBxdW90ZSIsIHBhdHRlcm4pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3ViMExpbWl0ID09IDApIHsKKyAgICAgICAgICAgICAgICBzdWIwTGltaXQgPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3ViMkxpbWl0ID09IDApIHsKKyAgICAgICAgICAgICAgICBzdWIyTGltaXQgPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBIYW5kbGUgcGF0dGVybnMgd2l0aCBubyAnMCcgcGF0dGVybiBjaGFyYWN0ZXIuICBUaGVzZSBwYXR0ZXJucworICAgICAgICAgICAgICogYXJlIGxlZ2FsLCBidXQgbXVzdCBiZSByZWNvZGlmaWVkIHRvIG1ha2Ugc2Vuc2UuICAiIyMuIyMjIiAtPgorICAgICAgICAgICAgICogIiMwLiMjIyIuICAiLiMjIyIgLT4gIi4wIyMiLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFdlIGFsbG93IHBhdHRlcm5zIG9mIHRoZSBmb3JtICIjIyMjIiB0byBwcm9kdWNlIGEgemVyb0RpZ2l0Q291bnQKKyAgICAgICAgICAgICAqIG9mIHplcm8gKGdvdCB0aGF0Pyk7IGFsdGhvdWdoIHRoaXMgc2VlbXMgbGlrZSBpdCBtaWdodCBtYWtlIGl0CisgICAgICAgICAgICAgKiBwb3NzaWJsZSBmb3IgZm9ybWF0KCkgdG8gcHJvZHVjZSBlbXB0eSBzdHJpbmdzLCBmb3JtYXQoKSBjaGVja3MKKyAgICAgICAgICAgICAqIGZvciB0aGlzIGNvbmRpdGlvbiBhbmQgb3V0cHV0cyBhIHplcm8gZGlnaXQgaW4gdGhpcyBzaXR1YXRpb24uCisgICAgICAgICAgICAgKiBIYXZpbmcgYSB6ZXJvRGlnaXRDb3VudCBvZiB6ZXJvIHlpZWxkcyBhIG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAgICAgICAgICAgICAqIG9mIHplcm8sIHdoaWNoIGFsbG93cyBwcm9wZXIgcm91bmQtdHJpcCBwYXR0ZXJucy4gIFdlIGRvbid0IHdhbnQKKyAgICAgICAgICAgICAqICIjIiB0byBiZWNvbWUgIiMwIiB3aGVuIHRvUGF0dGVybigpIGlzIGNhbGxlZCAoZXZlbiB0aG91Z2ggdGhhdCdzCisgICAgICAgICAgICAgKiB3aGF0IGl0IHJlYWxseSBpcywgc2VtYW50aWNhbGx5KS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHplcm9EaWdpdENvdW50ID09IDAgJiYgc2lnRGlnaXRDb3VudCA9PSAwICYmCisgICAgICAgICAgICAgICAgZGlnaXRMZWZ0Q291bnQgPiAwICYmIGRlY2ltYWxQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgIC8vIEhhbmRsZSAiIyMjLiMjIyIgYW5kICIjIyMuIiBhbmQgIi4jIyMiCisgICAgICAgICAgICAgICAgaW50IG4gPSBkZWNpbWFsUG9zOworICAgICAgICAgICAgICAgIGlmIChuID09IDApICsrbjsgLy8gSGFuZGxlICIuIyMjIgorICAgICAgICAgICAgICAgIGRpZ2l0UmlnaHRDb3VudCA9IGRpZ2l0TGVmdENvdW50IC0gbjsKKyAgICAgICAgICAgICAgICBkaWdpdExlZnRDb3VudCA9IG4gLSAxOworICAgICAgICAgICAgICAgIHplcm9EaWdpdENvdW50ID0gMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRG8gc3ludGF4IGNoZWNraW5nIG9uIHRoZSBkaWdpdHMsIGRlY2ltYWwgcG9pbnRzLCBhbmQgcXVvdGVzLgorICAgICAgICAgICAgaWYgKChkZWNpbWFsUG9zIDwgMCAmJiBkaWdpdFJpZ2h0Q291bnQgPiAwICYmIHNpZ0RpZ2l0Q291bnQgPT0gMCkgfHwKKyAgICAgICAgICAgICAgICAoZGVjaW1hbFBvcyA+PSAwICYmCisgICAgICAgICAgICAgICAgIChzaWdEaWdpdENvdW50ID4gMCB8fAorICAgICAgICAgICAgICAgICAgZGVjaW1hbFBvcyA8IGRpZ2l0TGVmdENvdW50IHx8CisgICAgICAgICAgICAgICAgICBkZWNpbWFsUG9zID4gKGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQpKSkgfHwKKyAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ID09IDAgfHwgZ3JvdXBpbmdDb3VudDIgPT0gMCB8fAorICAgICAgICAgICAgICAgIChzaWdEaWdpdENvdW50ID4gMCAmJiB6ZXJvRGlnaXRDb3VudCA+IDApIHx8CisgICAgICAgICAgICAgICAgc3VicGFydCA+IDIpIHsgLy8gc3VicGFydCA+IDIgPT0gdW5tYXRjaGVkIHF1b3RlCisgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJNYWxmb3JtZWQgcGF0dGVybiIsIHBhdHRlcm4pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgcGFkIGlzIGF0IGxlZ2FsIHBvc2l0aW9uIGJlZm9yZSBvciBhZnRlciBhZmZpeC4KKyAgICAgICAgICAgIGlmIChwYWRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0JFRk9SRV9QUkVGSVg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWRQb3MrMiA9PSBzdWIwU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0FGVEVSX1BSRUZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhZFBvcyA9PSBzdWIwTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0JFRk9SRV9TVUZGSVg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWRQb3MrMiA9PSBzdWIyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0FGVEVSX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIklsbGVnYWwgcGFkIHBvc2l0aW9uIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocGFydCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gU2V0IG5lZ2F0aXZlIGFmZml4ZXMgdGVtcG9yYXJpbHkgdG8gbWF0Y2ggdGhlIHBvc2l0aXZlCisgICAgICAgICAgICAgICAgLy8gYWZmaXhlcy4gIEZpeCB0aGlzIHVwIGxhdGVyIGFmdGVyIHByb2Nlc3NpbmcgYm90aCBwYXJ0cy4KKyAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcG9zUHJlZml4UGF0dGVybiA9IG5lZ1ByZWZpeFBhdHRlcm4gPSBwcmVmaXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBwb3NTdWZmaXhQYXR0ZXJuID0gbmVnU3VmZml4UGF0dGVybiA9IHN1ZmZpeC50b1N0cmluZygpOworCisgICAgICAgICAgICAgICAgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9IChleHBEaWdpdHMgPj0gMCk7CisgICAgICAgICAgICAgICAgaWYgKHVzZUV4cG9uZW50aWFsTm90YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgbWluRXhwb25lbnREaWdpdHMgPSBleHBEaWdpdHM7CisgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duID0gZXhwU2lnbkFsd2F5czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaXNDdXJyZW5jeUZvcm1hdCA9IGlzQ3VycmVuY3k7CisgICAgICAgICAgICAgICAgaW50IGRpZ2l0VG90YWxDb3VudCA9IGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQgKyBkaWdpdFJpZ2h0Q291bnQ7CisgICAgICAgICAgICAgICAgLy8gVGhlIGVmZmVjdGl2ZURlY2ltYWxQb3MgaXMgdGhlIHBvc2l0aW9uIHRoZSBkZWNpbWFsIGlzIGF0IG9yCisgICAgICAgICAgICAgICAgLy8gd291bGQgYmUgYXQgaWYgdGhlcmUgaXMgbm8gZGVjaW1hbC4gIE5vdGUgdGhhdCBpZgorICAgICAgICAgICAgICAgIC8vIGRlY2ltYWxQb3M8MCwgdGhlbiBkaWdpdFRvdGFsQ291bnQgPT0gZGlnaXRMZWZ0Q291bnQgKworICAgICAgICAgICAgICAgIC8vIHplcm9EaWdpdENvdW50LgorICAgICAgICAgICAgICAgIGludCBlZmZlY3RpdmVEZWNpbWFsUG9zID0gZGVjaW1hbFBvcyA+PSAwID8gZGVjaW1hbFBvcyA6IGRpZ2l0VG90YWxDb3VudDsKKyAgICAgICAgICAgICAgICBib29sZWFuIHVzZVNpZ0RpZyA9IChzaWdEaWdpdENvdW50ID4gMCk7CisgICAgICAgICAgICAgICAgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKHVzZVNpZ0RpZyk7CisgICAgICAgICAgICAgICAgaWYgKHVzZVNpZ0RpZykgeworICAgICAgICAgICAgICAgICAgICBzZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoc2lnRGlnaXRDb3VudCk7CisgICAgICAgICAgICAgICAgICAgIHNldE1heGltdW1TaWduaWZpY2FudERpZ2l0cyhzaWdEaWdpdENvdW50ICsgZGlnaXRSaWdodENvdW50KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgbWluSW50ID0gZWZmZWN0aXZlRGVjaW1hbFBvcyAtIGRpZ2l0TGVmdENvdW50OworICAgICAgICAgICAgICAgICAgICBzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhtaW5JbnQpOworICAgICAgICAgICAgICAgICAgICAvKlVwcGVyIGxpbWl0IG9uIGludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0cyBmb3IgYSBKYXZhIGRvdWJsZQorICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHModXNlRXhwb25lbnRpYWxOb3RhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgPyBkaWdpdExlZnRDb3VudCArIG1pbkludCA6IERPVUJMRV9JTlRFR0VSX0RJR0lUUyk7CisgICAgICAgICAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhkZWNpbWFsUG9zID49IDAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gKGRpZ2l0VG90YWxDb3VudCAtIGRlY2ltYWxQb3MpIDogMCk7CisgICAgICAgICAgICAgICAgICAgIHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhkZWNpbWFsUG9zID49IDAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gKGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQgLSBkZWNpbWFsUG9zKSA6IDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRHcm91cGluZ1VzZWQoZ3JvdXBpbmdDb3VudCA+IDApOworICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdTaXplID0gKGdyb3VwaW5nQ291bnQgPiAwKSA/IGdyb3VwaW5nQ291bnQgOiAwOworICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdTaXplMiA9IChncm91cGluZ0NvdW50MiA+IDAgJiYgZ3JvdXBpbmdDb3VudDIgIT0gZ3JvdXBpbmdDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgPyBncm91cGluZ0NvdW50MiA6IDA7CisgICAgICAgICAgICAgICAgdGhpcy5tdWx0aXBsaWVyID0gbXVsdGlwbGllcjsKKyAgICAgICAgICAgICAgICBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oZGVjaW1hbFBvcyA9PSAwCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWNpbWFsUG9zID09IGRpZ2l0VG90YWxDb3VudCk7CisgICAgICAgICAgICAgICAgaWYgKHBhZFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHBhZFBvc2l0aW9uID0gcGFkUG9zOworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IHN1YjBMaW1pdCAtIHN1YjBTdGFydDsgLy8gdG8gYmUgZml4ZWQgdXAgYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgcGFkID0gcGFkQ2hhcjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpbmNyZW1lbnRWYWwgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBCaWdEZWNpbWFsIHNjYWxlIGNhbm5vdCBiZSBuZWdhdGl2ZSAoZXZlbiB0aG91Z2gKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBtYWtlcyBwZXJmZWN0IHNlbnNlKSwgc28gd2UgbmVlZCB0byBoYW5kbGUgdGhpcy4KKyAgICAgICAgICAgICAgICAgICAgaW50IHNjYWxlID0gaW5jcmVtZW50UG9zIC0gZWZmZWN0aXZlRGVjaW1hbFBvczsKKyAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnRJQ1UgPQorICAgICAgICAgICAgICAgICAgICAJQmlnRGVjaW1hbC52YWx1ZU9mKGluY3JlbWVudFZhbCwgc2NhbGUgPiAwID8gc2NhbGUgOiAwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNjYWxlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnRJQ1UgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kaW5nSW5jcmVtZW50SUNVLm1vdmVQb2ludFJpZ2h0KC1zY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc2V0Um91bmRpbmdEb3VibGUoKTsKKyAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdNb2RlID0gQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQoKEJpZ0RlY2ltYWwpbnVsbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbmVnUHJlZml4UGF0dGVybiA9IHByZWZpeC50b1N0cmluZygpOworICAgICAgICAgICAgICAgIG5lZ1N1ZmZpeFBhdHRlcm4gPSBzdWZmaXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBnb3ROZWdhdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKkJ1ZyA0MTQwMDA5CisgICAgICAgICAgUHJvY2VzcyB0aGUgZW1wdHkgcGF0dGVybgorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKHBhdHRlcm4ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcG9zUHJlZml4UGF0dGVybiA9IHBvc1N1ZmZpeFBhdHRlcm4gPSAiIjsKKyAgICAgICAgICAgIHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDApOworICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHMoRE9VQkxFX0lOVEVHRVJfRElHSVRTKTsKKyAgICAgICAgICAgIHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygwKTsKKyAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhET1VCTEVfRlJBQ1RJT05fRElHSVRTKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gSWYgdGhlcmUgd2FzIG5vIG5lZ2F0aXZlIHBhdHRlcm4sIG9yIGlmIHRoZSBuZWdhdGl2ZSBwYXR0ZXJuIGlzCisgICAgICAgIC8vIGlkZW50aWNhbCB0byB0aGUgcG9zaXRpdmUgcGF0dGVybiwgdGhlbiBwcmVwZW5kIHRoZSBtaW51cyBzaWduIHRvIHRoZQorICAgICAgICAvLyBwb3NpdGl2ZSBwYXR0ZXJuIHRvIGZvcm0gdGhlIG5lZ2F0aXZlIHBhdHRlcm4uCisgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKCFnb3ROZWdhdGl2ZSB8fAorICAgICAgICAgICAgKG5lZ1ByZWZpeFBhdHRlcm4uZXF1YWxzKHBvc1ByZWZpeFBhdHRlcm4pCisgICAgICAgICAgICAgJiYgbmVnU3VmZml4UGF0dGVybi5lcXVhbHMocG9zU3VmZml4UGF0dGVybikpKSB7CisgICAgICAgICAgICBuZWdTdWZmaXhQYXR0ZXJuID0gcG9zU3VmZml4UGF0dGVybjsKKyAgICAgICAgICAgIG5lZ1ByZWZpeFBhdHRlcm4gPSBQQVRURVJOX01JTlVTICsgcG9zUHJlZml4UGF0dGVybjsKKyAgICAgICAgfQorICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgVXBkYXRlIHRoZSBhZmZpeCBzdHJpbmdzIGFjY3JvZGluZyB0byBzeW1ib2xzIGluIG9yZGVyIHRvIGtlZXAKKyAgICAgICAgICB0aGUgYWZmaXggc3RyaW5ncyB1cCB0byBkYXRlLgorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgZXhwYW5kQWZmaXhlcygpOworCisgICAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgdGhlIGFjdHVhbCBwcmVmaXggYW5kIHN1ZmZpeCwgZml4IHVwIGZvcm1hdFdpZHRoCisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDApIHsKKyAgICAgICAgICAgIGZvcm1hdFdpZHRoICs9IHBvc2l0aXZlUHJlZml4Lmxlbmd0aCgpICsgcG9zaXRpdmVTdWZmaXgubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldExvY2FsZShudWxsLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDZW50cmFsaXplcyB0aGUgc2V0dGluZyBvZiB0aGUgcm91bmRpbmdEb3VibGUgYW5kIHJvdW5kaW5nRG91YmxlUmVjaXByb2NhbC4KKyAgICAgKi8KKwlwcml2YXRlIHZvaWQgc2V0Um91bmRpbmdEb3VibGUoKSB7CisJCWlmIChyb3VuZGluZ0luY3JlbWVudElDVSA9PSBudWxsKSB7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZSA9IDAuMGQ7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSAwLjBkOwkJCQorCQl9IGVsc2UgeworCQkJcm91bmRpbmdEb3VibGUgPSByb3VuZGluZ0luY3JlbWVudElDVS5kb3VibGVWYWx1ZSgpOworCQkJc2V0Um91bmRpbmdEb3VibGVSZWNpcHJvY2FsKEJpZ0RlY2ltYWwuT05FLmRpdmlkZShyb3VuZGluZ0luY3JlbWVudElDVSxCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTikuZG91YmxlVmFsdWUoKSk7CisJCX0KKwl9CisKKyAgICBwcml2YXRlIHZvaWQgcGF0dGVybkVycm9yKFN0cmluZyBtc2csIFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnICsgIiBpbiBwYXR0ZXJuIFwiIiArIHBhdHRlcm4gKyAnIicpOworICAgIH0KKworICAgIC8qUmV3cml0ZSB0aGUgZm9sbG93aW5nIDQgInNldCIgbWV0aG9kcworICAgICAgVXBwZXIgbGltaXQgb24gaW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXRzIGZvciBhIEphdmEgZG91YmxlIAorICAgICAgW1JpY2hhcmQvR0NMXQorICAgICovCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG92ZXJyaWRlIGxpbWl0cyB0aGUgaW50ZWdlciBkaWdpdCBjb3VudCB0byAzMDkuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgc3VwZXIuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoTWF0aC5taW4obmV3VmFsdWUsIERPVUJMRV9JTlRFR0VSX0RJR0lUUykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBvdmVycmlkZSBsaW1pdHMgdGhlIGludGVnZXIgZGlnaXQgY291bnQgdG8gMzA5LgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUludGVnZXJEaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIHN1cGVyLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKE1hdGgubWluKG5ld1ZhbHVlLCBET1VCTEVfSU5URUdFUl9ESUdJVFMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlCisgICAgICogZGlzcGxheWVkLiBUaGlzIHZhbHVlIGhhcyBubyBlZmZlY3QgdW5sZXNzIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpCisgICAgICogcmV0dXJucyB0cnVlLgorICAgICAqIEByZXR1cm4gdGhlIGZld2VzdCBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtaW5TaWduaWZpY2FudERpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlCisgICAgICogZGlzcGxheWVkLiBUaGlzIHZhbHVlIGhhcyBubyBlZmZlY3QgdW5sZXNzIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpCisgICAgICogcmV0dXJucyB0cnVlLgorICAgICAqIEByZXR1cm4gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWF4U2lnbmlmaWNhbnREaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHRoYXQgd2lsbCBiZQorICAgICAqIGRpc3BsYXllZC4gIElmIDxjb2RlPm1pbjwvY29kZT4gaXMgbGVzcyB0aGFuIG9uZSB0aGVuIGl0IGlzIHNldAorICAgICAqIHRvIG9uZS4gIElmIHRoZSBtYXhpbXVtIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudCBpcyBsZXNzIHRoYW4KKyAgICAgKiA8Y29kZT5taW48L2NvZGU+LCB0aGVuIGl0IGlzIHNldCB0byA8Y29kZT5taW48L2NvZGU+LiBUaGlzCisgICAgICogdmFsdWUgaGFzIG5vIGVmZmVjdCB1bmxlc3MgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyB0cnVlLgorICAgICAqIEBwYXJhbSBtaW4gdGhlIGZld2VzdCBzaWduaWZpY2FudCBkaWdpdHMgdG8gYmUgc2hvd24gCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKGludCBtaW4pIHsKKyAgICAgICAgaWYgKG1pbiA8IDEpIHsKKyAgICAgICAgICAgIG1pbiA9IDE7ICAgCisgICAgICAgIH0KKyAgICAgICAgLy8gcGluIG1heCBzaWcgZGlnIHRvID49IG1pbgorICAgICAgICBpbnQgbWF4ID0gTWF0aC5tYXgobWF4U2lnbmlmaWNhbnREaWdpdHMsIG1pbik7CisgICAgICAgIG1pblNpZ25pZmljYW50RGlnaXRzID0gbWluOworICAgICAgICBtYXhTaWduaWZpY2FudERpZ2l0cyA9IG1heDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlCisgICAgICogZGlzcGxheWVkLiAgSWYgPGNvZGU+bWF4PC9jb2RlPiBpcyBsZXNzIHRoYW4gb25lIHRoZW4gaXQgaXMgc2V0CisgICAgICogdG8gb25lLiAgSWYgdGhlIG1pbmltdW0gc2lnbmlmaWNhbnQgZGlnaXRzIGNvdW50IGlzIGdyZWF0ZXIKKyAgICAgKiB0aGFuIDxjb2RlPm1heDwvY29kZT4sIHRoZW4gaXQgaXMgc2V0IHRvIDxjb2RlPm1heDwvY29kZT4uIFRoaXMKKyAgICAgKiB2YWx1ZSBoYXMgbm8gZWZmZWN0IHVubGVzcyBhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSByZXR1cm5zIHRydWUuCisgICAgICogQHBhcmFtIG1heCB0aGUgbW9zdCBzaWduaWZpY2FudCBkaWdpdHMgdG8gYmUgc2hvd24gCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKGludCBtYXgpIHsKKyAgICAgICAgaWYgKG1heCA8IDEpIHsKKyAgICAgICAgICAgIG1heCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgLy8gcGluIG1pbiBzaWcgZGlnIHRvIDEuLm1heAorICAgICAgICBpbnQgbWluID0gTWF0aC5taW4obWluU2lnbmlmaWNhbnREaWdpdHMsIG1heCk7CisgICAgICAgIG1pblNpZ25pZmljYW50RGlnaXRzID0gbWluOworICAgICAgICBtYXhTaWduaWZpY2FudERpZ2l0cyA9IG1heDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgc2lnbmlmaWNhbnQgZGlnaXRzIGFyZSBpbiB1c2Ugb3IgZmFsc2UgaWYKKyAgICAgKiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdCBjb3VudHMgYXJlIGluIHVzZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgc2lnbmlmaWNhbnQgZGlnaXRzIGFyZSBpbiB1c2UKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSB7CisgICAgICAgIHJldHVybiB1c2VTaWduaWZpY2FudERpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgc2lnbmlmaWNhbnQgZGlnaXRzIGFyZSBpbiB1c2UsIG9yIGludGVnZXIgYW5kCisgICAgICogZnJhY3Rpb24gZGlnaXQgY291bnRzIGFyZSBpbiB1c2UuCisgICAgICogQHBhcmFtIHVzZVNpZ25pZmljYW50RGlnaXRzIHRydWUgdG8gdXNlIHNpZ25pZmljYW50IGRpZ2l0cywgb3IKKyAgICAgKiBmYWxzZSB0byB1c2UgaW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXQgY291bnRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKGJvb2xlYW4gdXNlU2lnbmlmaWNhbnREaWdpdHMpIHsKKyAgICAgICAgdGhpcy51c2VTaWduaWZpY2FudERpZ2l0cyA9IHVzZVNpZ25pZmljYW50RGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCB1c2VkIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBhbW91bnRzLiAgVGhpcyB0YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHksIGlmIHRoaXMgZm9ybWF0IGlzIGEKKyAgICAgKiBjdXJyZW5jeSBmb3JtYXQuICBJZiB0aGlzIGZvcm1hdCBpcyBub3QgYSBjdXJyZW5jeSBmb3JtYXQsIHRoZW4KKyAgICAgKiB0aGUgY3VycmVuY3kgb2JqZWN0IGlzIHVzZWQgaWYgYW5kIHdoZW4gdGhpcyBvYmplY3QgYmVjb21lcyBhCisgICAgICogY3VycmVuY3kgZm9ybWF0IHRocm91Z2ggdGhlIGFwcGxpY2F0aW9uIG9mIGEgbmV3IHBhdHRlcm4uCisgICAgICogQHBhcmFtIHRoZUN1cnJlbmN5IG5ldyBjdXJyZW5jeSBvYmplY3QgdG8gdXNlLiAgTXVzdCBub3QgYmUKKyAgICAgKiBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbmN5KEN1cnJlbmN5IHRoZUN1cnJlbmN5KSB7CisgICAgICAgIC8vIElmIHdlIGFyZSBhIGN1cnJlbmN5IGZvcm1hdCwgdGhlbiBtb2RpZnkgb3VyIGFmZml4ZXMgdG8KKyAgICAgICAgLy8gZW5jb2RlIHRoZSBjdXJyZW5jeSBzeW1ib2wgZm9yIHRoZSBnaXZlbiBjdXJyZW5jeSBpbiBvdXIKKyAgICAgICAgLy8gbG9jYWxlLCBhbmQgYWRqdXN0IHRoZSBkZWNpbWFsIGRpZ2l0cyBhbmQgcm91bmRpbmcgZm9yIHRoZQorICAgICAgICAvLyBnaXZlbiBjdXJyZW5jeS4KKworICAgICAgICBzdXBlci5zZXRDdXJyZW5jeSh0aGVDdXJyZW5jeSk7CisgICAgICAgIGlmICh0aGVDdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICBib29sZWFuW10gaXNDaG9pY2VGb3JtYXQgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gdGhlQ3VycmVuY3kuZ2V0TmFtZShzeW1ib2xzLmdldFVMb2NhbGUoKSwKKyAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3kuU1lNQk9MX05BTUUsCisgICAgICAgICAgICAgICAgICAgIGlzQ2hvaWNlRm9ybWF0KTsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLnNldEN1cnJlbmN5U3ltYm9sKHMpOworICAgICAgICAgICAgICAgIHN5bWJvbHMuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKHRoZUN1cnJlbmN5LmdldEN1cnJlbmN5Q29kZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc0N1cnJlbmN5Rm9ybWF0KSB7CisgICAgICAgICAgICBpZiAodGhlQ3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNldFJvdW5kaW5nSW5jcmVtZW50KHRoZUN1cnJlbmN5LmdldFJvdW5kaW5nSW5jcmVtZW50KCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBkID0gdGhlQ3VycmVuY3kuZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICAgICAgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGQpOworICAgICAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGFuZEFmZml4ZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbmN5IGluIGVmZmVjdCBmb3IgdGhpcyBmb3JtYXR0ZXIuICBTdWJjbGFzc2VzCisgICAgICogc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIGFzIG5lZWRlZC4gIFVubGlrZSBnZXRDdXJyZW5jeSgpLAorICAgICAqIHRoaXMgbWV0aG9kIHNob3VsZCBuZXZlciByZXR1cm4gbnVsbC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ3VycmVuY3kgZ2V0RWZmZWN0aXZlQ3VycmVuY3koKSB7CisgICAgICAgIEN1cnJlbmN5IGMgPSBnZXRDdXJyZW5jeSgpOworICAgICAgICBpZiAoYyA9PSBudWxsKSB7CisgICAgICAgICAgICBjID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2Uoc3ltYm9scy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBvdmVycmlkZSBsaW1pdHMgdGhlIGZyYWN0aW9uIGRpZ2l0IGNvdW50IHRvIDM0MC4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIHN1cGVyLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhNYXRoLm1pbihuZXdWYWx1ZSwgRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbiBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuIFRoaXMgb3ZlcnJpZGUgbGltaXRzIHRoZSBmcmFjdGlvbiBkaWdpdCBjb3VudCB0byAzNDAuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBzdXBlci5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoTWF0aC5taW4obmV3VmFsdWUsIERPVUJMRV9GUkFDVElPTl9ESUdJVFMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIge0BsaW5rICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pfSBtZXRob2QgcmV0dXJucyBCaWdEZWNpbWFsLgorICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0cnVlIGlmIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIHJldHVybnMKKyAgICAgKiBCaWdEZWNpbWFsLgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhcnNlQmlnRGVjaW1hbChib29sZWFuIHZhbHVlKSB7CisgICAgCXBhcnNlQmlnRGVjaW1hbCA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IG1ldGhvZCByZXR1cm5zIEJpZ0RlY2ltYWwuCisgICAgICogQHJldHVybiB0cnVlIGlmIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIHJldHVybnMgQmlnRGVjaW1hbC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1BhcnNlQmlnRGVjaW1hbCgpIHsKKyAgICAJcmV0dXJuIHBhcnNlQmlnRGVjaW1hbDsKKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KE9iamVjdE91dHB1dFN0cmVhbSBzdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisvLyBEb3VnLCBkbyB3ZSBuZWVkIHRoaXMgYW55bW9yZT8KKy8vICAgICAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVICE9IG51bGwpIHsKKy8vICAgICAgICAgICAgICAgIHJvdW5kaW5nSW5jcmVtZW50ID0gcm91bmRpbmdJbmNyZW1lbnRJQ1UudG9CaWdEZWNpbWFsKCk7CisvLyAgICAgICAgICAgIH0KKwkJCisgICAgICAgICAgICBzdHJlYW0uZGVmYXVsdFdyaXRlT2JqZWN0KCk7CisJfQorLy8jZW5kaWYKKwkJCisgICAgLyoqCisgICAgICogRmlyc3QsIHJlYWQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGZpZWxkcyBmcm9tIHRoZSBzdHJlYW0uICBUaGVuCisgICAgICogaWYgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPiBpcyBsZXNzIHRoYW4gMSwgaW5kaWNhdGluZyB0aGF0CisgICAgICogdGhlIHN0cmVhbSB3YXMgd3JpdHRlbiBieSBKREsgMS4xLCBpbml0aWFsaXplIDxjb2RlPnVzZUV4cG9uZW50aWFsTm90YXRpb248L2NvZGU+CisgICAgICogdG8gZmFsc2UsIHNpbmNlIGl0IHdhcyBub3QgcHJlc2VudCBpbiBKREsgMS4xLgorICAgICAqIEZpbmFsbHksIHNldCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gYmFjayB0byB0aGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIHNvIHRoYXQKKyAgICAgKiBkZWZhdWx0IHNlcmlhbGl6YXRpb24gd2lsbCB3b3JrIHByb3Blcmx5IGlmIHRoaXMgb2JqZWN0IGlzIHN0cmVhbWVkIG91dCBhZ2Fpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAvKkJ1ZyA0MTg1NzYxIHZhbGlkYXRlIGZpZWxkcworICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGNoZWNrIHRoZSBtYXhpbXVtIGNvdW50cyBiZWNhdXNlIE51bWJlckZvcm1hdAorICAgICAgICAvLyAucmVhZE9iamVjdCBoYXMgYWxyZWFkeSBlbnN1cmVkIHRoYXQgdGhlIG1heGltdW0gaXMgZ3JlYXRlciB0aGFuIHRoZQorICAgICAgICAvLyBtaW5pbXVtIGNvdW50LgorICAgICAgICAvKkNvbW1lbnRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb24sIGFuZCByZXNlcnZlZCBmb3IgZnVydGhlciB1c2UKKyAgICAgICAgaWYgKGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgPiBET1VCTEVfSU5URUdFUl9ESUdJVFMgfHwKKyAgICAgICAgICAgIGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpID4gRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUykgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkRpZ2l0IGNvdW50IG91dCBvZiByYW5nZSIpOworICAgICAgICB9Ki8KKyAgICAgICAgLyogVHJ1bmNhdGUgdGhlIG1heGltdW1JbnRlZ2VyRGlnaXRzIHRvIERPVUJMRV9JTlRFR0VSX0RJR0lUUyBhbmQgbWF4aW11bUZyYWN0aW9uRGlnaXRzCisgICAgICAgICAqIHRvIERPVUJMRV9GUkFDVElPTl9ESUdJVFMKKyAgICAgICAgICovCisgICAgICAgIGlmIChnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpID4gRE9VQkxFX0lOVEVHRVJfRElHSVRTKSB7CisgICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHMoRE9VQkxFX0lOVEVHRVJfRElHSVRTKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPiBET1VCTEVfRlJBQ1RJT05fRElHSVRTKSB7CisgICAgICAgICAgICBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDIpIHsKKyAgICAgICAgICAgIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duID0gZmFsc2U7CisgICAgICAgICAgICBzZXRJbnRlcm5hbFJvdW5kaW5nSW5jcmVtZW50KG51bGwpOworICAgICAgICAgICAgc2V0Um91bmRpbmdEb3VibGUoKTsKKyAgICAgICAgICAgIHJvdW5kaW5nTW9kZSA9IEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOworICAgICAgICAgICAgZm9ybWF0V2lkdGggPSAwOworICAgICAgICAgICAgcGFkID0gJyAnOworICAgICAgICAgICAgcGFkUG9zaXRpb24gPSBQQURfQkVGT1JFX1BSRUZJWDsKKyAgICAgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAxKSB7CisgICAgICAgICAgICAgICAgLy8gRGlkbid0IGhhdmUgZXhwb25lbnRpYWwgZmllbGRzCisgICAgICAgICAgICAgICAgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAzKSB7CisgICAgICAgICAgICAvLyBWZXJzaW9ucyBwcmlvciB0byAzIGRvIG5vdCBzdG9yZSBhIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgICAgICAgIC8vIENyZWF0ZSBvbmUgdG8gbWF0Y2ggdGhlIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdC4KKyAgICAgICAgICAgIHNldEN1cnJlbmN5Rm9yU3ltYm9scygpOworICAgICAgICB9CisgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworICAgICAgICBkaWdpdExpc3QgPSBuZXcgRGlnaXRMaXN0KCk7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudCAhPSBudWxsKSB7CisgICAgICAgIAlzZXRJbnRlcm5hbFJvdW5kaW5nSW5jcmVtZW50KG5ldyBCaWdEZWNpbWFsKHJvdW5kaW5nSW5jcmVtZW50KSk7CisgICAgICAgIAlzZXRSb3VuZGluZ0RvdWJsZSgpOworICAgICAgICB9ICAgCisvLyNlbmRpZgorICAgIH0KKworCisJcHJpdmF0ZSB2b2lkIHNldEludGVybmFsUm91bmRpbmdJbmNyZW1lbnQoQmlnRGVjaW1hbCB2YWx1ZSkgeworCQlyb3VuZGluZ0luY3JlbWVudElDVSA9IHZhbHVlOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJcm91bmRpbmdJbmNyZW1lbnQgPSB2YWx1ZSA9PSBudWxsID8gbnVsbCA6IHZhbHVlLnRvQmlnRGVjaW1hbCgpOworLy8jZW5kaWYKKwl9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJTlNUQU5DRSBWQVJJQUJMRVMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgdHJhbnNpZW50IERpZ2l0TGlzdCBkaWdpdExpc3QgPSBuZXcgRGlnaXRMaXN0KCk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9sIHVzZWQgYXMgYSBwcmVmaXggd2hlbiBmb3JtYXR0aW5nIHBvc2l0aXZlIG51bWJlcnMsIGUuZy4gIisiLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldFBvc2l0aXZlUHJlZml4CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgIHBvc2l0aXZlUHJlZml4ID0gIiI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9sIHVzZWQgYXMgYSBzdWZmaXggd2hlbiBmb3JtYXR0aW5nIHBvc2l0aXZlIG51bWJlcnMuCisgICAgICogVGhpcyBpcyBvZnRlbiBhbiBlbXB0eSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UG9zaXRpdmVTdWZmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgcG9zaXRpdmVTdWZmaXggPSAiIjsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHByZWZpeCB3aGVuIGZvcm1hdHRpbmcgbmVnYXRpdmUgbnVtYmVycywgZS5nLiAiLSIuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TmVnYXRpdmVQcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgbmVnYXRpdmVQcmVmaXggPSAiLSI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9sIHVzZWQgYXMgYSBzdWZmaXggd2hlbiBmb3JtYXR0aW5nIG5lZ2F0aXZlIG51bWJlcnMuCisgICAgICogVGhpcyBpcyBvZnRlbiBhbiBlbXB0eSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TmVnYXRpdmVTdWZmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgbmVnYXRpdmVTdWZmaXggPSAiIjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgcHJlZml4IHBhdHRlcm4gZm9yIG5vbi1uZWdhdGl2ZSBudW1iZXJzLiAgVGhpcyB2YXJpYWJsZSBjb3JyZXNwb25kcworICAgICAqIHRvIDxjb2RlPnBvc2l0aXZlUHJlZml4PC9jb2RlPi4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgcGF0dGVybiBpcyBleHBhbmRlZCBieSB0aGUgbWV0aG9kIDxjb2RlPmV4cGFuZEFmZml4KCk8L2NvZGU+IHRvCisgICAgICogPGNvZGU+cG9zaXRpdmVQcmVmaXg8L2NvZGU+IHRvIHVwZGF0ZSB0aGUgbGF0dGVyIHRvIHJlZmxlY3QgY2hhbmdlcyBpbgorICAgICAqIDxjb2RlPnN5bWJvbHM8L2NvZGU+LiAgSWYgdGhpcyB2YXJpYWJsZSBpcyA8Y29kZT5udWxsPC9jb2RlPiB0aGVuCisgICAgICogPGNvZGU+cG9zaXRpdmVQcmVmaXg8L2NvZGU+IGlzIHRha2VuIGFzIGEgbGl0ZXJhbCB2YWx1ZSB0aGF0IGRvZXMgbm90CisgICAgICogY2hhbmdlIHdoZW4gPGNvZGU+c3ltYm9sczwvY29kZT4gY2hhbmdlcy4gIFRoaXMgdmFyaWFibGUgaXMgYWx3YXlzCisgICAgICogPGNvZGU+bnVsbDwvY29kZT4gZm9yIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IG9iamVjdHMgb2xkZXIgdGhhbgorICAgICAqIHN0cmVhbSB2ZXJzaW9uIDIgcmVzdG9yZWQgZnJvbSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgcG9zUHJlZml4UGF0dGVybjsKKworICAgIC8qKgorICAgICAqIFRoZSBzdWZmaXggcGF0dGVybiBmb3Igbm9uLW5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+cG9zaXRpdmVTdWZmaXg8L2NvZGU+LiAgVGhpcyB2YXJpYWJsZSBpcyBhbmFsb2dvdXMgdG8KKyAgICAgKiA8Y29kZT5wb3NQcmVmaXhQYXR0ZXJuPC9jb2RlPjsgc2VlIHRoYXQgdmFyaWFibGUgZm9yIGZ1cnRoZXIKKyAgICAgKiBkb2N1bWVudGF0aW9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIC8vW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgU3RyaW5nIHBvc1N1ZmZpeFBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgcHJlZml4IHBhdHRlcm4gZm9yIG5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+bmVnYXRpdmVQcmVmaXg8L2NvZGU+LiAgVGhpcyB2YXJpYWJsZSBpcyBhbmFsb2dvdXMgdG8KKyAgICAgKiA8Y29kZT5wb3NQcmVmaXhQYXR0ZXJuPC9jb2RlPjsgc2VlIHRoYXQgdmFyaWFibGUgZm9yIGZ1cnRoZXIKKyAgICAgKiBkb2N1bWVudGF0aW9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIC8vW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgU3RyaW5nIG5lZ1ByZWZpeFBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3VmZml4IHBhdHRlcm4gZm9yIG5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+bmVnYXRpdmVTdWZmaXg8L2NvZGU+LiAgVGhpcyB2YXJpYWJsZSBpcyBhbmFsb2dvdXMgdG8KKyAgICAgKiA8Y29kZT5wb3NQcmVmaXhQYXR0ZXJuPC9jb2RlPjsgc2VlIHRoYXQgdmFyaWFibGUgZm9yIGZ1cnRoZXIKKyAgICAgKiBkb2N1bWVudGF0aW9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIC8vW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgU3RyaW5nIG5lZ1N1ZmZpeFBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXR0ZXIgZm9yIENob2ljZUZvcm1hdC1iYXNlZCBjdXJyZW5jeSBuYW1lcy4gIElmIHRoaXMgZmllbGQKKyAgICAgKiBpcyBub3QgbnVsbCwgdGhlbiBkZWxlZ2F0ZSB0byBpdCB0byBmb3JtYXQgY3VycmVuY3kgc3ltYm9scy4KKyAgICAgKiBAc2luY2UgSUNVIDIuNgorICAgICAqLworICAgIHByaXZhdGUgQ2hvaWNlRm9ybWF0IGN1cnJlbmN5Q2hvaWNlOworCisgICAgLyoqCisgICAgICogVGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TXVsdGlwbGllcgorICAgICAqLworICAgIHByaXZhdGUgaW50ICAgICBtdWx0aXBsaWVyID0gMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGRpZ2l0cyBiZXR3ZWVuIGdyb3VwaW5nIHNlcGFyYXRvcnMgaW4gdGhlIGludGVnZXIKKyAgICAgKiBwb3J0aW9uIG9mIGEgbnVtYmVyLiAgTXVzdCBiZSBncmVhdGVyIHRoYW4gMCBpZgorICAgICAqIDxjb2RlPk51bWJlckZvcm1hdC5ncm91cGluZ1VzZWQ8L2NvZGU+IGlzIHRydWUuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjaXNHcm91cGluZ1VzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgZ3JvdXBpbmdTaXplID0gMzsgIC8vIGludmFyaWFudCwgPiAwIGlmIHVzZVRob3VzYW5kcworCisgICAgLyoqCisgICAgICogVGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLiAgVGhpcyBpcyBvbmx5IHVzZWQgZm9yIEhpbmRpCisgICAgICogbnVtZXJhbHMsIHdoaWNoIHVzZSBhIHByaW1hcnkgZ3JvdXBpbmcgb2YgMyBhbmQgYSBzZWNvbmRhcnkKKyAgICAgKiBncm91cGluZyBvZiAyLCBlLmcuLCAiMTIsMzQsNTY3Ii4gIElmIHRoaXMgdmFsdWUgaXMgbGVzcyB0aGFuCisgICAgICogMSwgdGhlbiBzZWNvbmRhcnkgZ3JvdXBpbmcgaXMgZXF1YWwgdG8gdGhlIHByaW1hcnkgZ3JvdXBpbmcuCisgICAgICogW05FV10KKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgZ3JvdXBpbmdTaXplMiA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogSWYgdHJ1ZSwgZm9yY2VzIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB0byBhbHdheXMgYXBwZWFyIGluIGEgZm9ybWF0dGVkCisgICAgICogbnVtYmVyLCBldmVuIGlmIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBpcyB6ZXJvLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2lzRGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhpcyBvYmplY3QgcmVwcmVzZW50cyBhIGN1cnJlbmN5IGZvcm1hdC4gIFRoaXMgZGV0ZXJtaW5lcworICAgICAqIHdoZXRoZXIgdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIG9uZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGlzQ3VycmVuY3lGb3JtYXQgPSBmYWxzZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCB1c2VkIGJ5IHRoaXMgZm9ybWF0LgorICAgICAqIEl0IGNvbnRhaW5zIHRoZSBzeW1ib2xzIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMsIGUuZy4gdGhlIGdyb3VwaW5nIHNlcGFyYXRvciwKKyAgICAgKiBkZWNpbWFsIHNlcGFyYXRvciwgYW5kIHNvIG9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI3NldERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqLworICAgIHByaXZhdGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG51bGw7IC8vIExJVSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKworICAgIC8qKgorICAgICAqIFRydWUgdG8gdXNlIHNpZ25pZmljYW50IGRpZ2l0cyByYXRoZXIgdGhhbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICAgICAqIGRpZ2l0IGNvdW50cy4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gdXNlU2lnbmlmaWNhbnREaWdpdHMgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdG8gc2hvdy4gIE11c3QgYmUgPj0gMQorICAgICAqIGFuZCA8PSBtYXhTaWduaWZpY2FudERpZ2l0cy4gIElnbm9yZWQgdW5sZXNzCisgICAgICogdXNlU2lnbmlmaWNhbnREaWdpdHMgPT0gdHJ1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtaW5TaWduaWZpY2FudERpZ2l0cyA9IDE7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHRvIHNob3cuICBNdXN0IGJlID49CisgICAgICogbWluU2lnbmZpY2FudERpZ2l0cy4gIElnbm9yZWQgdW5sZXNzIHVzZVNpZ25pZmljYW50RGlnaXRzID09CisgICAgICogdHJ1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtYXhTaWduaWZpY2FudERpZ2l0cyA9IDY7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIHRvIGZvcmNlIHRoZSB1c2Ugb2YgZXhwb25lbnRpYWwgKGkuZS4gc2NpZW50aWZpYykgbm90YXRpb24gd2hlbiBmb3JtYXR0aW5nCisgICAgICogbnVtYmVycy4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgdGhlIEpESyAxLjIgcHVibGljIEFQSSBwcm92aWRlcyBubyB3YXkgdG8gc2V0IHRoaXMgZmllbGQsCisgICAgICogZXZlbiB0aG91Z2ggaXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgdGhlIHN0cmVhbSBmb3JtYXQuCisgICAgICogVGhlIGludGVudCBpcyB0aGF0IHRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgQVBJIGluIHRoZSBmdXR1cmUuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHVzZUV4cG9uZW50aWFsTm90YXRpb247ICAvLyBOZXdseSBwZXJzaXN0ZW50IGluIEpESyAxLjIKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgdXNlZCB0byBkaXNwbGF5IHRoZSBleHBvbmVudCB3aGVuIGEgbnVtYmVyIGlzCisgICAgICogZm9ybWF0dGVkIGluIGV4cG9uZW50aWFsIG5vdGF0aW9uLiAgVGhpcyBmaWVsZCBpcyBpZ25vcmVkIGlmCisgICAgICogPGNvZGU+dXNlRXhwb25lbnRpYWxOb3RhdGlvbjwvY29kZT4gaXMgbm90IHRydWUuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IHRoZSBKREsgMS4yIHB1YmxpYyBBUEkgcHJvdmlkZXMgbm8gd2F5IHRvIHNldCB0aGlzIGZpZWxkLAorICAgICAqIGV2ZW4gdGhvdWdoIGl0IGlzIHN1cHBvcnRlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRoZSBzdHJlYW0gZm9ybWF0LgorICAgICAqIFRoZSBpbnRlbnQgaXMgdGhhdCB0aGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIEFQSSBpbiB0aGUgZnV0dXJlLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtaW5FeHBvbmVudERpZ2l0czsgICAgICAgLy8gTmV3bHkgcGVyc2lzdGVudCBpbiBKREsgMS4yCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSWYgdHJ1ZSwgdGhlIGV4cG9uZW50IGlzIGFsd2F5cyBwcmVmaXhlZCB3aXRoIGVpdGhlciB0aGUgcGx1cworICAgICAqIHNpZ24gb3IgdGhlIG1pbnVzIHNpZ24uICBPdGhlcndpc2UsIG9ubHkgbmVnYXRpdmUgZXhwb25lbnRzIGFyZQorICAgICAqIHByZWZpeGVkIHdpdGggdGhlIG1pbnVzIHNpZ24uICBUaGlzIGhhcyBubyBlZmZlY3QgdW5sZXNzCisgICAgICogPGNvZGU+dXNlRXhwb25lbnRpYWxOb3RhdGlvbjwvY29kZT4gaXMgdHJ1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duID0gZmFsc2U7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSB2YWx1ZSB0byB3aGljaCBudW1iZXJzIGFyZSByb3VuZGVkIGR1cmluZyBmb3JtYXR0aW5nLiAgRm9yIGV4YW1wbGUsCisgICAgICogaWYgdGhlIHJvdW5kaW5nIGluY3JlbWVudCBpcyAwLjA1LCB0aGVuIDEzLjM3MSB3b3VsZCBiZSBmb3JtYXR0ZWQgYXMKKyAgICAgKiAxMy4zNTAsIGFzc3VtaW5nIDMgZnJhY3Rpb24gZGlnaXRzLiAgSGFzIHRoZSB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPiBpZgorICAgICAqIHJvdW5kaW5nIGlzIG5vdCBpbiBlZmZlY3QsIG9yIGEgcG9zaXRpdmUgdmFsdWUgaWYgcm91bmRpbmcgaXMgaW4gZWZmZWN0LgorICAgICAqIERlZmF1bHQgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIC8vIE5vdGU6IHRoaXMgaXMga2VwdCBpbiBzeW5jIHdpdGggcm91bmRpbmdJbmNyZW1lbnRJQ1UuCisgICAgLy8gaXQgaXMgb25seSBrZXB0IGFyb3VuZCB0byBhdm9pZCBhIGNvbnZlcnNpb24gd2hlbiBmb3JtYXR0aW5nIGEgamF2YS5tYXRoLkJpZ0RlY2ltYWwKKyAgICBwcml2YXRlIGphdmEubWF0aC5CaWdEZWNpbWFsIHJvdW5kaW5nSW5jcmVtZW50ID0gbnVsbDsKKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIHZhbHVlIHRvIHdoaWNoIG51bWJlcnMgYXJlIHJvdW5kZWQgZHVyaW5nIGZvcm1hdHRpbmcuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpZiB0aGUgcm91bmRpbmcgaW5jcmVtZW50IGlzIDAuMDUsIHRoZW4gMTMuMzcxIHdvdWxkIGJlIGZvcm1hdHRlZCBhcworICAgICAqIDEzLjM1MCwgYXNzdW1pbmcgMyBmcmFjdGlvbiBkaWdpdHMuICBIYXMgdGhlIHZhbHVlIDxjb2RlPm51bGw8L2NvZGU+IGlmCisgICAgICogcm91bmRpbmcgaXMgbm90IGluIGVmZmVjdCwgb3IgYSBwb3NpdGl2ZSB2YWx1ZSBpZiByb3VuZGluZyBpcyBpbiBlZmZlY3QuCisgICAgICogRGVmYXVsdCB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgKiBXQVJOSU5HOiB0aGUgcm91bmRpbmdJbmNyZW1lbnQgdmFsdWUgaXMgdGhlIG9uZSBzZXJpYWxpemVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgQWxwaGFXb3JrcyBOdW1iZXJGb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBCaWdEZWNpbWFsIHJvdW5kaW5nSW5jcmVtZW50SUNVID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgcm91bmRpbmcgaW5jcmVtZW50IGFzIGEgZG91YmxlLiAgSWYgdGhpcyB2YWx1ZSBpcyA8PSAwLCB0aGVuIG5vCisgICAgICogcm91bmRpbmcgaXMgZG9uZS4gIFRoaXMgdmFsdWUgaXMKKyAgICAgKiA8Y29kZT5yb3VuZGluZ0luY3JlbWVudElDVS5kb3VibGVWYWx1ZSgpPC9jb2RlPi4gIERlZmF1bHQgdmFsdWUgMC4wLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSByb3VuZGluZ0RvdWJsZSA9IDAuMDsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBJZiB0aGUgcm91bmRpbmdEb3VibGUgaXMgdGhlIHJlY2lwcm9jYWwgb2YgYW4gaW50ZWdlciAodGhlIG1vc3QgY29tbW9uIGNhc2UhKSwKKyAgICAgKiB0aGlzIGlzIHNldCB0byBiZSB0aGF0IGludGVnZXIuIE90aGVyd2lzZSBpdCBpcyAwLjAuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlIHJvdW5kaW5nRG91YmxlUmVjaXByb2NhbCA9IDAuMDsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgcm91bmRpbmcgbW9kZS4gIFRoaXMgdmFsdWUgY29udHJvbHMgYW55IHJvdW5kaW5nIG9wZXJhdGlvbnMgd2hpY2gKKyAgICAgKiBvY2N1ciB3aGVuIGFwcGx5aW5nIGEgcm91bmRpbmcgaW5jcmVtZW50IG9yIHdoZW4gcmVkdWNpbmcgdGhlIG51bWJlciBvZgorICAgICAqIGZyYWN0aW9uIGRpZ2l0cyB0byBzYXRpc2Z5IGEgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgbGltaXQuICBUaGUgdmFsdWUKKyAgICAgKiBtYXkgYXNzdW1lIGFueSBvZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gcm91bmRpbmcgbW9kZSB2YWx1ZXMuCisgICAgICogRGVmYXVsdCB2YWx1ZSA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTjwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgaW50IHJvdW5kaW5nTW9kZSA9IEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBwYWRkZWQgZm9ybWF0IHdpZHRoLCBvciB6ZXJvIGlmIHRoZXJlIGlzIG5vIHBhZGRpbmcuICBNdXN0CisgICAgICogYmUgPj0gMC4gIERlZmF1bHQgdmFsdWUgemVyby4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZm9ybWF0V2lkdGggPSAwOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBwYWQgdGhlIHJlc3VsdCBvZiBmb3JtYXQgdG8KKyAgICAgKiA8Y29kZT5mb3JtYXRXaWR0aDwvY29kZT4sIGlmIHBhZGRpbmcgaXMgaW4gZWZmZWN0LiAgRGVmYXVsdCB2YWx1ZSAnICcuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgY2hhciBwYWQgPSAnICc7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIHBvc2l0aW9uIGluIHRoZSBzdHJpbmcgYXQgd2hpY2ggdGhlIDxjb2RlPnBhZDwvY29kZT4gY2hhcmFjdGVyCisgICAgICogd2lsbCBiZSBpbnNlcnRlZCwgaWYgcGFkZGluZyBpcyBpbiBlZmZlY3QuICBNdXN0IGhhdmUgYSB2YWx1ZSBmcm9tCisgICAgICogPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+IHRvIDxjb2RlPlBBRF9BRlRFUl9TVUZGSVg8L2NvZGU+LgorICAgICAqIERlZmF1bHQgdmFsdWUgPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgQWxwaGFXb3JrcyBOdW1iZXJGb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwYWRQb3NpdGlvbiA9IFBBRF9CRUZPUkVfUFJFRklYOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IHRvIHJldHVybiBCaWdEZWNpbWFsCisgICAgICogcmF0aGVyIHRoYW4gTG9uZywgRG91YmxlIG9yIEJpZ0RlY2ltYWwgZXhjZXB0IHNwZWNpYWwgdmFsdWVzLgorICAgICAqIFRoaXMgcHJvcGVydHkgaXMgaW50cm9kdWNlZCBmb3IgSjJTRSA1IGNvbXBhdGliaWxpdHkgc3VwcG9ydC4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIElDVSAzLjYKKyAgICAgKiBAc2VlICNzZXRQYXJzZUJpZ0RlY2ltYWwoYm9vbGVhbikKKyAgICAgKiBAc2VlICNpc1BhcnNlQmlnRGVjaW1hbCgpCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHBhcnNlQmlnRGVjaW1hbCA9IGZhbHNlOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBzdGF0aWMgZmluYWwgaW50IGN1cnJlbnRTZXJpYWxWZXJzaW9uID0gMzsKKworICAgIC8qKgorICAgICAqIFRoZSBpbnRlcm5hbCBzZXJpYWwgdmVyc2lvbiB3aGljaCBzYXlzIHdoaWNoIHZlcnNpb24gd2FzIHdyaXR0ZW4KKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+MDwvYj4gKGRlZmF1bHQpOiB2ZXJzaW9ucyBiZWZvcmUgSkRLIDEuMgorICAgICAqIDxsaT48Yj4xPC9iPjogdmVyc2lvbiBmcm9tIEpESyAxLjIgYW5kIGxhdGVyLCB3aGljaCBpbmNsdWRlcyB0aGUgdHdvIG5ldyBmaWVsZHMKKyAgICAgKiAgICAgIDxjb2RlPnVzZUV4cG9uZW50aWFsTm90YXRpb248L2NvZGU+IGFuZCA8Y29kZT5taW5FeHBvbmVudERpZ2l0czwvY29kZT4uCisgICAgICogPGxpPjxiPjI8L2I+OiB2ZXJzaW9uIG9uIEFscGhhV29ya3MsIHdoaWNoIGFkZHMgcm91bmRpbmdNb2RlLCBmb3JtYXRXaWR0aCwKKyAgICAgKiAgICAgIHBhZCwgcGFkUG9zaXRpb24sIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duLCByb3VuZGluZ0luY3JlbWVudC4KKyAgICAgKiA8bGk+PGI+MzwvYj46IElDVSAyLjIuICBBZGRzIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgKiA8L3VsPgorICAgICAqIEBzZXJpYWwgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENPTlNUQU5UUworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnN0YW50IGZvciA8Y29kZT5nZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5zZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBzcGVjaWZ5aW5nIHBhZCBjaGFyYWN0ZXJzIGluc2VydGVkIGJlZm9yZQorICAgICAqIHRoZSBwcmVmaXguCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1NVRkZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9TVUZGSVgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQURfQkVGT1JFX1BSRUZJWCA9IDA7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29uc3RhbnQgZm9yIDxjb2RlPmdldFBhZFBvc2l0aW9uKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPnNldFBhZFBvc2l0aW9uKCk8L2NvZGU+IHNwZWNpZnlpbmcgcGFkIGNoYXJhY3RlcnMgaW5zZXJ0ZWQgYWZ0ZXIKKyAgICAgKiB0aGUgcHJlZml4LgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfU1VGRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1NVRkZJWAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBRF9BRlRFUl9QUkVGSVggID0gMTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb25zdGFudCBmb3IgPGNvZGU+Z2V0UGFkUG9zaXRpb24oKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+c2V0UGFkUG9zaXRpb24oKTwvY29kZT4gc3BlY2lmeWluZyBwYWQgY2hhcmFjdGVycyBpbnNlcnRlZCBiZWZvcmUKKyAgICAgKiB0aGUgc3VmZml4LgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfU1VGRklYCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFEX0JFRk9SRV9TVUZGSVggPSAyOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnN0YW50IGZvciA8Y29kZT5nZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5zZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBzcGVjaWZ5aW5nIHBhZCBjaGFyYWN0ZXJzIGluc2VydGVkIGFmdGVyCisgICAgICogdGhlIHN1ZmZpeC4KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9TVUZGSVgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQURfQUZURVJfU1VGRklYICA9IDM7CisKKyAgICAvLyBDb25zdGFudHMgZm9yIGNoYXJhY3RlcnMgdXNlZCBpbiBwcm9ncmFtbWF0aWMgKHVubG9jYWxpemVkKSBwYXR0ZXJucy4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fWkVST19ESUdJVCAgICAgICAgID0gJzAnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9HUk9VUElOR19TRVBBUkFUT1IgPSAnLCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX0RFQ0lNQUxfU0VQQVJBVE9SICA9ICcuJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fRElHSVQgICAgICAgICAgICAgID0gJyMnOworICAgICAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9TSUdOSUZJQ0FOVF9ESUdJVCAgPSAnQCc7CisgICAgICAgICAgICBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX0VYUE9ORU5UICAgICAgICAgICA9ICdFJzsgLy8gW05FV10KKyAgICAgICAgICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUExVU19TSUdOICAgICAgICAgID0gJysnOyAvLyBbTkVXXQorCisgICAgLy8gQWZmaXgKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUEVSX01JTExFICAgICAgICAgID0gJ1x1MjAzMCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX1BFUkNFTlQgICAgICAgICAgICA9ICclJzsKKyAgICAgICAgICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUEFEX0VTQ0FQRSAgICAgICAgID0gJyonOyAvLyBbTkVXXQorICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgIFRvIG1lZXQgdGhlIG5lZWQgb2YgZXhwYW5kQWZmaXgoU3RyaW5nLCBTdGlybmdCdWZmZXIpCisgICAgICBbUmljaGFyZC9HQ0xdCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fTUlOVVMgICAgICAgICAgICAgID0gJy0nOyAvL1tSaWNoYXJkL0dDTF0KKworICAgIC8vIE90aGVyICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9TRVBBUkFUT1IgICAgICAgICAgPSAnOyc7CisKKyAgICAvLyBQYWQgZXNjYXBlIGlzIHBhY2thZ2UgcHJpdmF0ZSB0byBhbGxvdyBhY2Nlc3MgYnkgRGVjaW1hbEZvcm1hdFN5bWJvbHMuCisgICAgLy8gQWxzbyBwbHVzIHNpZ24uICBBbHNvIGV4cG9uZW50LgorCisgICAgLyoqCisgICAgICogVGhlIENVUlJFTkNZX1NJR04gaXMgdGhlIHN0YW5kYXJkIFVuaWNvZGUgc3ltYm9sIGZvciBjdXJyZW5jeS4gIEl0CisgICAgICogaXMgdXNlZCBpbiBwYXR0ZXJucyBhbmQgc3Vic3RpdHVlZCB3aXRoIGVpdGhlciB0aGUgY3VycmVuY3kgc3ltYm9sLAorICAgICAqIG9yIGlmIGl0IGlzIGRvdWJsZWQsIHdpdGggdGhlIGludGVybmF0aW9uYWwgY3VycmVuY3kgc3ltYm9sLiAgSWYgdGhlCisgICAgICogQ1VSUkVOQ1lfU0lHTiBpcyBzZWVuIGluIGEgcGF0dGVybiwgdGhlbiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMKKyAgICAgKiByZXBsYWNlZCB3aXRoIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBDVVJSRU5DWV9TSUdOIGlzIG5vdCBsb2NhbGl6ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBDVVJSRU5DWV9TSUdOID0gJ1x1MDBBNCc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFFVT1RFID0gJ1wnJzsKKyAgICAKKyAgICAvKiBVcHBlciBsaW1pdCBvbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgZm9yIGEgSmF2YSBkb3VibGUKKyAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IERPVUJMRV9JTlRFR0VSX0RJR0lUUyAgPSAzMDk7CisgICAgc3RhdGljIGZpbmFsIGludCBET1VCTEVfRlJBQ1RJT05fRElHSVRTID0gMzQwOworCisgICAgLyoqCisgICAgICogV2hlbiBzb21lb25lIHR1cm5zIG9uIHNjaWVudGlmaWMgbW9kZSwgd2UgYXNzdW1lIHRoYXQgbW9yZSB0aGFuIHRoaXMKKyAgICAgKiBudW1iZXIgb2YgZGlnaXRzIGlzIGR1ZSB0byBmbGlwcGluZyBmcm9tIHNvbWUgb3RoZXIgbW9kZSB0aGF0IGRpZG4ndAorICAgICAqIHJlc3RyaWN0IHRoZSBtYXhpbXVtLCBhbmQgc28gd2UgZm9yY2UgMSBpbnRlZ2VyIGRpZ2l0LiAgV2UgZG9uJ3QgYm90aGVyCisgICAgICogdG8gdHJhY2sgYW5kIHNlZSBpZiBzb21lb25lIGlzIHVzaW5nIGV4cG9uZW50aWFsIG5vdGF0aW9uIHdpdGggbW9yZSB0aGFuCisgICAgICogdGhpcyBudW1iZXIsIGl0IHdvdWxkbid0IG1ha2Ugc2Vuc2UgYW55d2F5LCBhbmQgdGhpcyBpcyBqdXN0IHRvIG1ha2Ugc3VyZQorICAgICAqIHRoYXQgc29tZW9uZSB0dXJuaW5nIG9uIHNjaWVudGlmaWMgbW9kZSB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgZG9lc24ndAorICAgICAqIGVuZCB1cCB3aXRoIGxvdHMgb2YgemVyb2VzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1NDSUVOVElGSUNfSU5URUdFUl9ESUdJVFMgPSA4OworCisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjCS8vIHdlJ3JlIG5vdCBjb21wYXRpYmxlIHdpdGggb3RoZXIgdmVyc2lvbnMsIHNpbmNlIHdlIGhhdmUgbm8gamF2YS5tYXRoLkJpZ0RlY2ltYWwgZmllbGQKKy8vIyMJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjsKKy8vI2Vsc2UKKyAgICAvLyBQcm9jbGFpbSBKREsgMS4xIHNlcmlhbCBjb21wYXRpYmlsaXR5LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDg2NDQxMzM3NjU1MTQ2NTAxOEw7CisvLyNlbmRpZgorICAgIHByaXZhdGUgQXJyYXlMaXN0IGF0dHJpYnV0ZXMgPSBuZXcgQXJyYXlMaXN0KCk7Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lN2I5ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YQpAQCAtMCwwICsxLDEwMTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8qKgorICogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBzZXQgb2Ygc3ltYm9scyAoc3VjaCBhcyB0aGUgZGVjaW1hbCBzZXBhcmF0b3IsIHRoZQorICogZ3JvdXBpbmcgc2VwYXJhdG9yLCBhbmQgc28gb24pIG5lZWRlZCBieSA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiB0byBmb3JtYXQKKyAqIG51bWJlcnMuIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNyZWF0ZXMgZm9yIGl0c2VsZiBhbiBpbnN0YW5jZSBvZgorICogPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IGZyb20gaXRzIGxvY2FsZSBkYXRhLiAgSWYgeW91IG5lZWQgdG8KKyAqIGNoYW5nZSBhbnkgb2YgdGhlc2Ugc3ltYm9scywgeW91IGNhbiBnZXQgdGhlCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gb2JqZWN0IGZyb20geW91ciA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPgorICogYW5kIG1vZGlmeSBpdC4KKyAqCisgKiA8cD48c3Ryb25nPlRoaXMgaXMgYW4gZW5oYW5jZWQgdmVyc2lvbiBvZiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gdGhhdAorICogaXMgYmFzZWQgb24gdGhlIHN0YW5kYXJkIHZlcnNpb24gaW4gdGhlIEpESy4gIE5ldyBvciBjaGFuZ2VkIGZ1bmN0aW9uYWxpdHkKKyAqIGlzIGxhYmVsZWQKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4uPC9zdHJvbmc+CisgKgorICogQHNlZSAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlCisgKiBAc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKworZmluYWwgcHVibGljIGNsYXNzIERlY2ltYWxGb3JtYXRTeW1ib2xzIGltcGxlbWVudHMgQ2xvbmVhYmxlLCBTZXJpYWxpemFibGUgeworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICBpbml0aWFsaXplKCBVTG9jYWxlLmdldERlZmF1bHQoKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoIExvY2FsZSBsb2NhbGUgKSB7CisgICAgICAgIGluaXRpYWxpemUoIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoIFVMb2NhbGUgbG9jYWxlICkgeworICAgICAgICBpbml0aWFsaXplKCBsb2NhbGUgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciB6ZXJvLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFplcm9EaWdpdCgpIHsKKyAgICAgICAgcmV0dXJuIHplcm9EaWdpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciB6ZXJvLgorICAgICAqIEBwYXJhbSB6ZXJvRGlnaXQgdGhlIHplcm8gY2hhcmFjdGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFplcm9EaWdpdChjaGFyIHplcm9EaWdpdCkgeworICAgICAgICB0aGlzLnplcm9EaWdpdCA9IHplcm9EaWdpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBhIHNpZ25pZmljYW50IGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzaWduaWZpY2FudCBkaWdpdCBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFNpZ25pZmljYW50RGlnaXQoKSB7CisgICAgICAgIHJldHVybiBzaWdEaWdpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBhIHNpZ25pZmljYW50IGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gc2lnRGlnaXQgdGhlIHNpZ25pZmljYW50IGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2lnbmlmaWNhbnREaWdpdChjaGFyIHNpZ0RpZ2l0KSB7CisgICAgICAgIHRoaXMuc2lnRGlnaXQgPSBzaWdEaWdpdDsKKyAgICB9ICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHRob3VzYW5kcyBzZXBhcmF0b3IuIERpZmZlcmVudCBmb3IgRnJlbmNoLCBldGMuCisgICAgICogQHJldHVybiB0aGUgdGhvdXNhbmRzIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldEdyb3VwaW5nU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZ3JvdXBpbmdTZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgdGhvdXNhbmRzIHNlcGFyYXRvci4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcGFyYW0gZ3JvdXBpbmdTZXBhcmF0b3IgdGhlIHRob3VzYW5kcyBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcm91cGluZ1NlcGFyYXRvcihjaGFyIGdyb3VwaW5nU2VwYXJhdG9yKSB7CisgICAgICAgIHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IgPSBncm91cGluZ1NlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBkZWNpbWFsIHNpZ24uIERpZmZlcmVudCBmb3IgRnJlbmNoLCBldGMuCisgICAgICogQHJldHVybiB0aGUgZGVjaW1hbCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXREZWNpbWFsU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGVjaW1hbFNlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBkZWNpbWFsIHNpZ24uIERpZmZlcmVudCBmb3IgRnJlbmNoLCBldGMuCisgICAgICogQHBhcmFtIGRlY2ltYWxTZXBhcmF0b3IgdGhlIGRlY2ltYWwgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjaW1hbFNlcGFyYXRvcihjaGFyIGRlY2ltYWxTZXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gZGVjaW1hbFNlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBtaWxsZSBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHJldHVybiB0aGUgbWlsbGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQZXJNaWxsKCkgeworICAgICAgICByZXR1cm4gcGVyTWlsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBtaWxsZSBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHBhcmFtIHBlck1pbGwgdGhlIG1pbGxlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGVyTWlsbChjaGFyIHBlck1pbGwpIHsKKyAgICAgICAgdGhpcy5wZXJNaWxsID0gcGVyTWlsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHJldHVybiB0aGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQZXJjZW50KCkgeworICAgICAgICByZXR1cm4gcGVyY2VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHBhcmFtIHBlcmNlbnQgdGhlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGVyY2VudChjaGFyIHBlcmNlbnQpIHsKKyAgICAgICAgdGhpcy5wZXJjZW50ID0gcGVyY2VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBhIGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcmV0dXJuIHRoZSBkaWdpdCBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldERpZ2l0KCkgeworICAgICAgICByZXR1cm4gZGlnaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgYSBkaWdpdCBpbiBhIHBhdHRlcm4uCisgICAgICogQHBhcmFtIGRpZ2l0IHRoZSBkaWdpdCBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpZ2l0KGNoYXIgZGlnaXQpIHsKKyAgICAgICAgdGhpcy5kaWdpdCA9IGRpZ2l0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHN1YnBhdHRlcm5zCisgICAgICogaW4gYSBwYXR0ZXJuLgorICAgICAqIEByZXR1cm4gdGhlIHBhdHRlcm4gc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBhdHRlcm5TZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBwYXR0ZXJuU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHN1YnBhdHRlcm5zCisgICAgICogaW4gYSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuU2VwYXJhdG9yIHRoZSBwYXR0ZXJuIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXR0ZXJuU2VwYXJhdG9yKGNoYXIgcGF0dGVyblNlcGFyYXRvcikgeworICAgICAgICB0aGlzLnBhdHRlcm5TZXBhcmF0b3IgPSBwYXR0ZXJuU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5LiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiB0aGUgSW5maW5pdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgIC8vQnVnIDQxOTQxNzMgW1JpY2hhcmQvR0NMXQorCisgICAgcHVibGljIFN0cmluZyBnZXRJbmZpbml0eSgpIHsKKyAgICAgICAgcmV0dXJuIGluZmluaXR5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5LiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIGluZmluaXR5IHRoZSBJbmZpbml0eSBTdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmZpbml0eShTdHJpbmcgaW5maW5pdHkpIHsKKyAgICAgICAgdGhpcy5pbmZpbml0eSA9IGluZmluaXR5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IE5hTi4gQWxtb3N0IGFsd2F5cyBsZWZ0CisgICAgICogdW5jaGFuZ2VkLgorICAgICAqIEByZXR1cm4gdGhlIE5hTiBTdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAgLy9CdWcgNDE5NDE3MyBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIFN0cmluZyBnZXROYU4oKSB7CisgICAgICAgIHJldHVybiBOYU47CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIE5hTiB0aGUgTmFOIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5hTihTdHJpbmcgTmFOKSB7CisgICAgICAgIHRoaXMuTmFOID0gTmFOOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IG1pbnVzIHNpZ24uIElmIG5vIGV4cGxpY2l0CisgICAgICogbmVnYXRpdmUgZm9ybWF0IGlzIHNwZWNpZmllZCwgb25lIGlzIGZvcm1lZCBieSBwcmVmaXhpbmcKKyAgICAgKiBtaW51c1NpZ24gdG8gdGhlIHBvc2l0aXZlIGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW51cyBzaWduIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldE1pbnVzU2lnbigpIHsKKyAgICAgICAgcmV0dXJuIG1pbnVzU2lnbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBtaW51cyBzaWduLiBJZiBubyBleHBsaWNpdAorICAgICAqIG5lZ2F0aXZlIGZvcm1hdCBpcyBzcGVjaWZpZWQsIG9uZSBpcyBmb3JtZWQgYnkgcHJlZml4aW5nCisgICAgICogbWludXNTaWduIHRvIHRoZSBwb3NpdGl2ZSBmb3JtYXQuCisgICAgICogQHBhcmFtIG1pbnVzU2lnbiB0aGUgbWludXMgc2lnbiBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW51c1NpZ24oY2hhciBtaW51c1NpZ24pIHsKKyAgICAgICAgdGhpcy5taW51c1NpZ24gPSBtaW51c1NpZ247CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsIGN1cnJlbmN5IFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEN1cnJlbmN5U3ltYm9sKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjdXJyZW5jeVN5bWJvbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBsb2NhbCBjdXJyZW5jeSBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q3VycmVuY3lTeW1ib2woU3RyaW5nIGN1cnJlbmN5KQorICAgIHsKKyAgICAgICAgY3VycmVuY3lTeW1ib2wgPSBjdXJyZW5jeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGludGVybmF0aW9uYWwgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpCisgICAgeworICAgICAgICByZXR1cm4gaW50bEN1cnJlbmN5U3ltYm9sOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEBwYXJhbSBjdXJyZW5jeSB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbChTdHJpbmcgY3VycmVuY3kpCisgICAgeworICAgICAgICBpbnRsQ3VycmVuY3lTeW1ib2wgPSBjdXJyZW5jeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW5jeSBzeW1ib2wsIGZvciBKREsgMS40IGNvbXBhdGliaWxpdHkgb25seS4KKyAgICAgKiBJQ1UgY2xpZW50cyBzaG91bGQgdXNlIHRoZSBDdXJyZW5jeSBBUEkgZGlyZWN0bHkuCisgICAgICogQHJldHVybiB0aGUgY3VycmVuY3kgdXNlZCwgb3IgbnVsbAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEN1cnJlbmN5IGdldEN1cnJlbmN5KCkgeworICAgICAgICByZXR1cm4gY3VycmVuY3k7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIElDVSBkb2VzIG5vdCB1c2UgdGhlIERlY2ltYWxGb3JtYXRTeW1ib2xzIGZvciB0aGUgCisgICAgICogY3VycmVuY3kgYW55IG1vcmUuICBUaGlzIEFQSSBpcyBwcmVzZW50CisgICAgICogZm9yIEFQSSBjb21wYXRpYmlsaXR5IG9ubHkuCisgICAgICoKKyAgICAgKiBUaGlzIGFsc28gc2V0cyB0aGUgY3VycmVuY3kgc3ltYm9sIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVuY3kncyBzeW1ib2wKKyAgICAgKiBpbiB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMnIGxvY2FsZSwgYW5kIHRoZSBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5CisgICAgICogc3ltYm9sIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVuY3kncyBJU08gNDIxNyBjdXJyZW5jeSBjb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBuZXcgY3VycmVuY3kgdG8gYmUgdXNlZAorICAgICAqIEB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+Y3VycmVuY3k8L2NvZGU+IGlzIG51bGwKKyAgICAgKiBAc2VlICNzZXRDdXJyZW5jeVN5bWJvbAorICAgICAqIEBzZWUgI3NldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbAorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeShDdXJyZW5jeSBjdXJyZW5jeSkgeworICAgICAgICBpZiAoY3VycmVuY3kgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5jdXJyZW5jeSA9IGN1cnJlbmN5OworICAgICAgICBpbnRsQ3VycmVuY3lTeW1ib2wgPSBjdXJyZW5jeS5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgY3VycmVuY3lTeW1ib2wgPSBjdXJyZW5jeS5nZXRTeW1ib2wobG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1vbmV0YXJ5U2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IuCisgICAgICogQHJldHVybiB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRNb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBBUEkgZm9yIE51bWJlckZvcm1hdAorICAgICAqIEByZXR1cm4gU3RyaW5nIGN1cnJlbmN5IHBhdHRlcm4gc3RyaW5nCQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFN0cmluZyBnZXRDdXJyZW5jeVBhdHRlcm4oKXsKKyAgICAgICAgcmV0dXJuIGN1cnJlbmN5UGF0dGVybjsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKiBAcGFyYW0gc2VwIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoY2hhciBzZXApCisgICAgeworICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9IHNlcDsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKiBAcGFyYW0gc2VwIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3IoY2hhciBzZXApCisgICAgeworICAgICAgICBtb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yID0gc2VwOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHRoZSBtYW50aXNzYSBmcm9tIHRoZSBleHBvbmVudC4KKyAgICAgKiBFeGFtcGxlczogIngxMF4iIGZvciAxLjIzeDEwXjQsICJFIiBmb3IgMS4yM0U0LgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBleHBvbmVudCBzeW1ib2wsIHVzZWQgaW4gbG9jYWxpemVkIHBhdHRlcm5zCisgICAgICogYW5kIGZvcm1hdHRlZCBzdHJpbmdzCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEV4cG9uZW50U2VwYXJhdG9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiBleHBvbmVudFNlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSB0aGUgbWFudGlzc2EgZnJvbSB0aGUgZXhwb25lbnQuCisgICAgICogRXhhbXBsZXM6ICJ4MTBeIiBmb3IgMS4yM3gxMF40LCAiRSIgZm9yIDEuMjNFNC4KKyAgICAgKiBAcGFyYW0gZXhwIHRoZSBsb2NhbGl6ZWQgZXhwb25lbnQgc3ltYm9sLCB1c2VkIGluIGxvY2FsaXplZCBwYXR0ZXJucworICAgICAqIGFuZCBmb3JtYXR0ZWQgc3RyaW5ncworICAgICAqIEBzZWUgI2dldEV4cG9uZW50U2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RXhwb25lbnRTZXBhcmF0b3IoU3RyaW5nIGV4cCkKKyAgICB7CisgICAgICAgIGV4cG9uZW50U2VwYXJhdG9yID0gZXhwOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24uCisgICAgICogQHJldHVybiB0aGUgcGx1cyBzaWduLCB1c2VkIGluIGxvY2FsaXplZCBwYXR0ZXJucyBhbmQgZm9ybWF0dGVkCisgICAgICogc3RyaW5ncworICAgICAqIEBzZWUgI3NldFBsdXNTaWduCisgICAgICogQHNlZSAjc2V0TWludXNTaWduCisgICAgICogQHNlZSAjZ2V0TWludXNTaWduCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGx1c1NpZ24oKSB7CisgICAgICAgIHJldHVybiBwbHVzU2lnbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSBsb2NhbGl6ZWQgcGx1cyBzaWduLgorICAgICAqIEBwYXJhbSBwbHVzIHRoZSBwbHVzIHNpZ24sIHVzZWQgaW4gbG9jYWxpemVkIHBhdHRlcm5zIGFuZCBmb3JtYXR0ZWQKKyAgICAgKiBzdHJpbmdzCisgICAgICogQHNlZSAjZ2V0UGx1c1NpZ24KKyAgICAgKiBAc2VlICNzZXRNaW51c1NpZ24KKyAgICAgKiBAc2VlICNnZXRNaW51c1NpZ24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQbHVzU2lnbihjaGFyIHBsdXMpIHsKKyAgICAgICAgcGx1c1NpZ24gPSBwbHVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIHRvIHBhZCBudW1iZXJzIG91dCB0byBhIHNwZWNpZmllZCB3aWR0aC4gIFRoaXMKKyAgICAgKiBpcyBub3QgdGhlIHBhZCBjaGFyYWN0ZXIgaXRzZWxmOyByYXRoZXIsIGl0IGlzIHRoZSBzcGVjaWFsIHBhdHRlcm4KKyAgICAgKiBjaGFyYWN0ZXIgPGVtPnByZWNlZGluZzwvZW0+IHRoZSBwYWQgY2hhcmFjdGVyLiAgSW4gdGhlIHBhdHRlcm4KKyAgICAgKiAiKl8jLCMjMCIsICcqJyBpcyB0aGUgcGFkIGVzY2FwZSwgYW5kICdfJyBpcyB0aGUgcGFkIGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgCisgICAgICogQHNlZSAjc2V0UGFkRXNjYXBlCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0I2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0I2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0I2dldFBhZENoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBhZEVzY2FwZSgpIHsKKyAgICAgICAgcmV0dXJuIHBhZEVzY2FwZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBwYWQgbnVtYmVycyBvdXQgdG8gYSBzcGVjaWZpZWQgd2lkdGguICBUaGlzIGlzCisgICAgICogbm90IHRoZSBwYWQgY2hhcmFjdGVyIGl0c2VsZjsgcmF0aGVyLCBpdCBpcyB0aGUgc3BlY2lhbCBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAqIDxlbT5wcmVjZWRpbmc8L2VtPiB0aGUgcGFkIGNoYXJhY3Rlci4gIEluIHRoZSBwYXR0ZXJuICIqXyMsIyMwIiwgJyonIGlzCisgICAgICogdGhlIHBhZCBlc2NhcGUsIGFuZCAnXycgaXMgdGhlIHBhZCBjaGFyYWN0ZXIuCisgICAgICogQHNlZSAjZ2V0UGFkRXNjYXBlCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0I3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0I3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0I3NldFBhZENoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhZEVzY2FwZShjaGFyIGMpIHsKKyAgICAgICAgcGFkRXNjYXBlID0gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoaXMgb2JqZWN0IHdhcyBjb25zdHJ1Y3RlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoaXMgb2JqZWN0IHdhcyBjb25zdHJ1Y3RlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBvYmplY3Qgd2FzIGNvbnN0cnVjdGVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBvYmplY3Qgd2FzIGNvbnN0cnVjdGVkCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBvdmVycmlkZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIChEZWNpbWFsRm9ybWF0U3ltYm9scykgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIC8vIG90aGVyIGZpZWxkcyBhcmUgYml0LWNvcGllZAorICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGVxdWFscy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb3RoZXIgPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIG9iajsKKyAgICAgICAgcmV0dXJuICh6ZXJvRGlnaXQgPT0gb3RoZXIuemVyb0RpZ2l0ICYmCisgICAgICAgIGdyb3VwaW5nU2VwYXJhdG9yID09IG90aGVyLmdyb3VwaW5nU2VwYXJhdG9yICYmCisgICAgICAgIGRlY2ltYWxTZXBhcmF0b3IgPT0gb3RoZXIuZGVjaW1hbFNlcGFyYXRvciAmJgorICAgICAgICBwZXJjZW50ID09IG90aGVyLnBlcmNlbnQgJiYKKyAgICAgICAgcGVyTWlsbCA9PSBvdGhlci5wZXJNaWxsICYmCisgICAgICAgIGRpZ2l0ID09IG90aGVyLmRpZ2l0ICYmCisgICAgICAgIG1pbnVzU2lnbiA9PSBvdGhlci5taW51c1NpZ24gJiYKKyAgICAgICAgcGF0dGVyblNlcGFyYXRvciA9PSBvdGhlci5wYXR0ZXJuU2VwYXJhdG9yICYmCisgICAgICAgIGluZmluaXR5LmVxdWFscyhvdGhlci5pbmZpbml0eSkgJiYKKyAgICAgICAgTmFOLmVxdWFscyhvdGhlci5OYU4pICYmCisgICAgICAgIGN1cnJlbmN5U3ltYm9sLmVxdWFscyhvdGhlci5jdXJyZW5jeVN5bWJvbCkgJiYKKyAgICAgICAgaW50bEN1cnJlbmN5U3ltYm9sLmVxdWFscyhvdGhlci5pbnRsQ3VycmVuY3lTeW1ib2wpICYmCisgICAgICAgIHBhZEVzY2FwZSA9PSBvdGhlci5wYWRFc2NhcGUgJiYgLy8gW05FV10KKyAgICAgICAgcGx1c1NpZ24gPT0gb3RoZXIucGx1c1NpZ24gJiYgLy8gW05FV10KKyAgICAgICAgZXhwb25lbnRTZXBhcmF0b3IuZXF1YWxzKG90aGVyLmV4cG9uZW50U2VwYXJhdG9yKSAmJiAvLyBbTkVXXQorICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9PSBvdGhlci5tb25ldGFyeVNlcGFyYXRvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IHplcm9EaWdpdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDM3ICsgZ3JvdXBpbmdTZXBhcmF0b3I7CisgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzNyArIGRlY2ltYWxTZXBhcmF0b3I7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBzeW1ib2xzIGZyb20gdGhlIExvY2FsZUVsZW1lbnRzIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiBOb3RlOiBUaGUgb3JnYW5pemF0aW9uIG9mIExvY2FsZUVsZW1lbnRzIGJhZGx5IG5lZWRzIHRvIGJlCisgICAgICogY2xlYW5lZCB1cC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdGlhbGl6ZSggVUxvY2FsZSBsb2NhbGUgKSB7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlLnRvTG9jYWxlKCk7CisgICAgICAgIHRoaXMudWxvY2FsZSA9IGxvY2FsZTsKKworICAgICAgICAvKiB0cnkgdGhlIGNhY2hlIGZpcnN0ICovCisgICAgICAgIFN0cmluZ1tdW10gZGF0YSA9IChTdHJpbmdbXVtdKSBjYWNoZWRMb2NhbGVEYXRhLmdldChsb2NhbGUpOworICAgICAgICBTdHJpbmdbXSBudW1iZXJFbGVtZW50czsKKyAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkgeyAgLyogY2FjaGUgbWlzcyAqLworICAgICAgICAgICAgZGF0YSA9IG5ldyBTdHJpbmdbMV1bXTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgICAgICBnZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICAgICAgZGF0YVswXSA9IHJiLmdldFN0cmluZ0FycmF5KCJOdW1iZXJFbGVtZW50cyIpOworICAgICAgICAgICAgLyogdXBkYXRlIGNhY2hlICovCisgICAgICAgICAgICBjYWNoZWRMb2NhbGVEYXRhLnB1dChsb2NhbGUsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIG51bWJlckVsZW1lbnRzID0gZGF0YVswXTsKKyAgICAgICAgCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLgorICAgICAgICAgICAgZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRPRE86IERldGVybWluZSBhY3R1YWwgYW5kIHZhbGlkIGxvY2FsZSBjb3JyZWN0bHkuCisgICAgICAgIFVMb2NhbGUgdWxvYyA9IHIuZ2V0VUxvY2FsZSgpOworICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAvLyB7ZGxmfSBjbGVhbiB1cCBiZWxvdyBub3cgdGhhdCB3ZSBoYXZlIG91ciBvd24gcmVzb3VyY2UgZGF0YQorICAgICAgICBkZWNpbWFsU2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHNbMF0uY2hhckF0KDApOworICAgICAgICBncm91cGluZ1NlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzFdLmNoYXJBdCgwKTsKKyAgICAgICAgLy8gVGVtcG9yYXJ5IGhhY2sgdG8gc3VwcG9ydCBvbGQgSkRLIDEuMSByZXNvdXJjZXMKKy8vICAgICAgICBwYXR0ZXJuU2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHNbMl0ubGVuZ3RoKCkgPiAwID8KKy8vICAgICAgICAgICAgbnVtYmVyRWxlbWVudHNbMl0uY2hhckF0KDApIDogJzsnOworICAgICAgICBwYXR0ZXJuU2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHNbMl0uY2hhckF0KDApOworICAgICAgICBwZXJjZW50ID0gbnVtYmVyRWxlbWVudHNbM10uY2hhckF0KDApOworICAgICAgICB6ZXJvRGlnaXQgPSBudW1iZXJFbGVtZW50c1s0XS5jaGFyQXQoMCk7IC8vZGlmZmVyZW50IGZvciBBcmFiaWMsZXRjLgorICAgICAgICBkaWdpdCA9IG51bWJlckVsZW1lbnRzWzVdLmNoYXJBdCgwKTsKKyAgICAgICAgbWludXNTaWduID0gbnVtYmVyRWxlbWVudHNbNl0uY2hhckF0KDApOworICAgICAgICAKKyAgICAgICAgLy8gVGVtcG9yYXJ5IGhhY2sgdG8gc3VwcG9ydCBKREsgdmVyc2lvbnMgYmVmb3JlIDEuMS42ICg/KQorLy8gICAgICAgIGV4cG9uZW50U2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHMubGVuZ3RoID49IDkgPworLy8gICAgICAgICAgICBudW1iZXJFbGVtZW50c1s3XSA6IERlY2ltYWxGb3JtYXQuUEFUVEVSTl9FWFBPTkVOVDsKKy8vICAgICAgICBwZXJNaWxsID0gbnVtYmVyRWxlbWVudHMubGVuZ3RoID49IDkgPworLy8gICAgICAgICAgICBudW1iZXJFbGVtZW50c1s4XS5jaGFyQXQoMCkgOiAnXHUyMDMwJzsKKy8vICAgICAgICBpbmZpbml0eSAgPSBudW1iZXJFbGVtZW50cy5sZW5ndGggPj0gMTAgPworLy8gICAgICAgICAgICBudW1iZXJFbGVtZW50c1s5XSA6ICJcdTIyMWUiOworLy8gICAgICAgIE5hTiA9IG51bWJlckVsZW1lbnRzLmxlbmd0aCA+PSAxMSA/CisvLyAgICAgICAgICAgIG51bWJlckVsZW1lbnRzWzEwXSA6ICJcdWZmZmQiOworICAgICAgICBleHBvbmVudFNlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzddOworICAgICAgICBwZXJNaWxsID0gbnVtYmVyRWxlbWVudHNbOF0uY2hhckF0KDApOworICAgICAgICBpbmZpbml0eSA9IG51bWJlckVsZW1lbnRzWzldOworICAgICAgICBOYU4gPSBudW1iZXJFbGVtZW50c1sxMF07CisgICAgICAgIAorICAgICAgICBwbHVzU2lnbiAgPW51bWJlckVsZW1lbnRzWzExXS5jaGFyQXQoMCk7CisgICAgICAgIHBhZEVzY2FwZSA9IERlY2ltYWxGb3JtYXQuUEFUVEVSTl9QQURfRVNDQVBFOworICAgICAgICBzaWdEaWdpdCAgPSBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fU0lHTklGSUNBTlRfRElHSVQ7CisgICAgICAgIAorICAgICAgICAvLyBPYnRhaW4gY3VycmVuY3kgZGF0YSBmcm9tIHRoZSBjdXJyZW5jeSBBUEkuICBUaGlzIGlzIHN0cmljdGx5CisgICAgICAgIC8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OyB3ZSBkb24ndCB1c2UgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgICAgLy8gZm9yIGN1cnJlbmN5IGRhdGEgYW55bW9yZS4KKyAgICAgICAgU3RyaW5nIGN1cnJuYW1lID0gbnVsbDsKKyAgICAgICAgY3VycmVuY3kgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50bEN1cnJlbmN5U3ltYm9sID0gY3VycmVuY3kuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgICAgICBib29sZWFuW10gaXNDaG9pY2VGb3JtYXQgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgICAgIGN1cnJuYW1lID0gY3VycmVuY3kuZ2V0TmFtZShsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW5jeS5TWU1CT0xfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hvaWNlRm9ybWF0KTsKKyAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBDaG9pY2VGb3JtYXQgY3VycmVuY3ksIHRoZW4gZm9ybWF0IGFuCisgICAgICAgICAgICAvLyBhcmJpdHJhcnkgdmFsdWU7IHBpY2sgc29tZXRoaW5nICE9IDE7IG1vcmUgY29tbW9uLgorICAgICAgICAgICAgY3VycmVuY3lTeW1ib2wgPSBpc0Nob2ljZUZvcm1hdFswXQorICAgICAgICAgICAgICAgID8gbmV3IENob2ljZUZvcm1hdChjdXJybmFtZSkuZm9ybWF0KDIuMCkKKyAgICAgICAgICAgICAgICA6IGN1cnJuYW1lOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50bEN1cnJlbmN5U3ltYm9sID0gIlhYWCI7CisgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICJcdTAwQTQiOyAvLyAnT1gnIGN1cnJlbmN5IHN5bWJvbAorICAgICAgICB9CisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgY3VycmVuY3kgZGVjaW1hbCwgdXNlIGl0LgorICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9IGRlY2ltYWxTZXBhcmF0b3I7CisgICAgICAgIG1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3IgPSBncm91cGluZ1NlcGFyYXRvcjsKKyAgICAgICAgQ3VycmVuY3kgY3VyciA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIGlmKGN1cnIhPW51bGwpeworICAgICAgICAgICAgU3RyaW5nIGN1cnJlbmN5Q29kZSA9IGN1cnIuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgICAgICBpZihjdXJyZW5jeUNvZGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8qIEFuIGV4cGxpY2l0IGN1cnJlbmN5IHdhcyByZXF1ZXN0ZWQgKi8KKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXNvdXJjZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW5jeSA9IHJlc291cmNlLmdldFdpdGhGYWxsYmFjaygiQ3VycmVuY2llcyIpOworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSBjdXJyZW5jeS5nZXRXaXRoRmFsbGJhY2soY3VycmVuY3lDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY3VycmVuY3kuZ2V0U2l6ZSgpPjIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gY3VycmVuY3kuZ2V0KDIpOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lQYXR0ZXJuID0gY3VycmVuY3kuZ2V0U3RyaW5nKDApOworICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXRhcnlTZXBhcmF0b3IgPSBjdXJyZW5jeS5nZXRTdHJpbmcoMSkuY2hhckF0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvciA9IGN1cnJlbmN5LmdldFN0cmluZygyKS5jaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgLyogZWxzZSBBbiBleHBsaWNpdCBjdXJyZW5jeSB3YXMgcmVxdWVzdGVkIGFuZCBpcyB1bmtub3duIG9yIGxvY2FsZSBkYXRhIGlzIG1hbGZvcm1lZC4gKi8KKyAgICAgICAgICAgICAgICAgICAgLyogZGVjaW1hbCBmb3JtYXQgQVBJIHdpbGwgZ2V0IHRoZSBjb3JyZWN0IHZhbHVlIGxhdGVyIG9uLiAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIGVsc2Ugbm8gY3VycmVuY3kga2V5d29yZCB1c2VkLiAqLworICAgICAgICB9CisgICAgICAgIC8vbW9uZXRhcnlTZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50c1sxMV0uY2hhckF0KDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGZpZWxkcywgdGhlbiBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+CisgICAgICogaXMgbGVzcyB0aGFuIDEsIGluaXRpYWxpemUgPGNvZGU+bW9uZXRhcnlTZXBhcmF0b3I8L2NvZGU+IHRvIGJlCisgICAgICogdGhlIHNhbWUgYXMgPGNvZGU+ZGVjaW1hbFNlcGFyYXRvcjwvY29kZT4gYW5kIDxjb2RlPmV4cG9uZW50aWFsPC9jb2RlPgorICAgICAqIHRvIGJlICdFJy4KKyAgICAgKiBGaW5hbGx5LCBzZXQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtIGJhY2sgdG8gdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBzbyB0aGF0CisgICAgICogZGVmYXVsdCBzZXJpYWxpemF0aW9uIHdpbGwgd29yayBwcm9wZXJseSBpZiB0aGlzIG9iamVjdCBpcyBzdHJlYW1lZCBvdXQgYWdhaW4uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIC8vIFRPRE86IGl0IGxvb2tzIHRvIG1lIHtkbGZ9IHRoYXQgdGhlIHNlcmlhbGl6YXRpb24gY29kZSB3YXMgbmV2ZXIgdXBkYXRlZAorICAgICAgICAvLyB0byBoYW5kbGUgdGhlIGFjdHVhbC92YWxpZCB1bG9jYWxlIGZpZWxkcy4KKworICAgICAgICBzdHJlYW0uZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAvLyB3ZSBkb24ndCBoYXZlIGRhdGEgZm9yIHRoZXNlIG9sZCBzZXJpYWxpemVkIGZvcm1zIGFueSBtb3JlCisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAxKSB7CisgICAgICAgICAgICAvLyBEaWRuJ3QgaGF2ZSBtb25ldGFyeVNlcGFyYXRvciBvciBleHBvbmVudGlhbCBmaWVsZDsKKyAgICAgICAgICAgIC8vIHVzZSBkZWZhdWx0cy4KKyAgICAgICAgICAgIG1vbmV0YXJ5U2VwYXJhdG9yID0gZGVjaW1hbFNlcGFyYXRvcjsKKyAgICAgICAgICAgIGV4cG9uZW50aWFsID0gJ0UnOworICAgICAgICB9CisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAyKSB7CisgICAgICAgICAgICBwYWRFc2NhcGUgPSBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fUEFEX0VTQ0FQRTsKKyAgICAgICAgICAgIHBsdXNTaWduID0gRGVjaW1hbEZvcm1hdC5QQVRURVJOX1BMVVNfU0lHTjsKKyAgICAgICAgICAgIGV4cG9uZW50U2VwYXJhdG9yID0gU3RyaW5nLnZhbHVlT2YoZXhwb25lbnRpYWwpOworICAgICAgICAgICAgLy8gQWx0aG91Z2ggd2UgcmVhZCB0aGUgZXhwb25lbnRpYWwgZmllbGQgb24gc3RyZWFtIHRvIGNyZWF0ZSB0aGUKKyAgICAgICAgICAgIC8vIGV4cG9uZW50U2VwYXJhdG9yLCB3ZSBkb24ndCBkbyB0aGUgcmV2ZXJzZSwgc2luY2Ugc2NpZW50aWZpYworICAgICAgICAgICAgLy8gbm90YXRpb24gaXNuJ3Qgc3VwcG9ydGVkIGJ5IHRoZSBvbGQgY2xhc3NlcywgZXZlbiB0aG91Z2ggdGhlCisgICAgICAgICAgICAvLyBzeW1ib2wgaXMgdGhlcmUuCisgICAgICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAzKSB7CisgICAgICAgICAgICAvLyBSZXN1cnJlY3RlZCBvYmplY3RzIGZyb20gb2xkIHN0cmVhbXMgd2lsbCBoYXZlIG5vCisgICAgICAgICAgICAvLyBsb2NhbGUuICBUaGVyZSBpcyBubyAxMDAlIGZpeCBmb3IgdGhpcy4gIEEKKyAgICAgICAgICAgIC8vIDkwJSBmaXggaXMgdG8gY29uc3RydWN0IGEgbWFwcGluZyBvZiBkYXRhIGJhY2sgdG8KKyAgICAgICAgICAgIC8vIGxvY2FsZSwgcGVyaGFwcyBhIGhhc2ggb2YgYWxsIG91ciBtZW1iZXJzLiAgVGhpcyBpcworICAgICAgICAgICAgLy8gZXhwZW5zaXZlIGFuZCBkb2Vzbid0IHNlZW0gd29ydGggaXQuCisgICAgICAgICAgICBsb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCA0KSB7CisgICAgICAgICAgICAvLyB1c2Ugc2FtZSBkZWZhdWx0IGJlaGF2aW9yIGFzIGZvciB2ZXJzaW9ucyB3aXRoIG5vIExvY2FsZQorICAgICAgICAgICAgdWxvY2FsZSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgIH0JCSAgIAorCQlpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgNSkgeworCQkJLy8gdXNlIHRoZSBzYW1lIG9uZSBmb3IgZ3JvdXBpbmdTZXBhcmF0b3IKKwkJCW1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3IgPSBncm91cGluZ1NlcGFyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworCS8vIHJlY3JlYXRlCisJY3VycmVuY3kgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShpbnRsQ3VycmVuY3lTeW1ib2wpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIGZvciB6ZXJvLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldFplcm9EaWdpdAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgemVyb0RpZ2l0OworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIHRob3VzYW5kcyBzZXBhcmF0b3IuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIGdyb3VwaW5nU2VwYXJhdG9yOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXREZWNpbWFsU2VwYXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBkZWNpbWFsU2VwYXJhdG9yOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQZXJNaWxsCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBwZXJNaWxsOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UGVyY2VudAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgcGVyY2VudDsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIGZvciBhIGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXREaWdpdAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgZGlnaXQ7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgYSBzaWduaWZpY2FudCBkaWdpdCBpbiBhIHBhdHRlcm4uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0U2lnbmlmaWNhbnREaWdpdAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgc2lnRGlnaXQ7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UGF0dGVyblNlcGFyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgcGF0dGVyblNlcGFyYXRvcjsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBpbmZpbml0eS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0SW5maW5pdHkKKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIGluZmluaXR5OworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IE5hTi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TmFOCisgICAgICovCisgICAgcHJpdmF0ZSAgU3RyaW5nICBOYU47CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCB0byByZXByZXNlbnQgbWludXMgc2lnbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TWludXNTaWduCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBtaW51c1NpZ247CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LCBlLmcuICIkIi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0Q3VycmVuY3lTeW1ib2wKKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIGN1cnJlbmN5U3ltYm9sOworCisgICAgLyoqCisgICAgICogSW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LCBlLmcuICJVU0QiLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2wKKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIGludGxDdXJyZW5jeVN5bWJvbDsKKworICAgIC8qKgorICAgICAqIFRoZSBkZWNpbWFsIHNlcGFyYXRvciB1c2VkIHdoZW4gZm9ybWF0dGluZyBjdXJyZW5jeSB2YWx1ZXMuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgbW9uZXRhcnlTZXBhcmF0b3I7IC8vIEZpZWxkIG5ldyBpbiBKREsgMS4xLjYKKworICAgIC8qKgorICAgICAqIFRoZSBkZWNpbWFsIHNlcGFyYXRvciB1c2VkIHdoZW4gZm9ybWF0dGluZyBjdXJyZW5jeSB2YWx1ZXMuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIG1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3I7IC8vIEZpZWxkIG5ldyBpbiBKREsgMS4xLjYKKworICAgIC8qKgorICAgICAqIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBkaXN0aW5ndWlzaCB0aGUgZXhwb25lbnQgaW4gYSBudW1iZXIgZm9ybWF0dGVkCisgICAgICogaW4gZXhwb25lbnRpYWwgbm90YXRpb24sIGUuZy4gJ0UnIGZvciBhIG51bWJlciBzdWNoIGFzICIxLjIzRTQ1Ii4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBmaWVsZCBoYXMgYmVlbiBzdXBlcnNlZGVkIGJ5IDxjb2RlPmV4cG9uZW50U2VwYXJhdG9yPC9jb2RlPi4KKyAgICAgKiBJdCBpcyByZXRhaW5lZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIGV4cG9uZW50aWFsOyAgICAgICAvLyBGaWVsZCBuZXcgaW4gSkRLIDEuMS42CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgdGhlIG1hbnRpc3NhIGZyb20gdGhlIGV4cG9uZW50LgorICAgICAqIEV4YW1wbGVzOiAieDEwXiIgZm9yIDEuMjN4MTBeNCwgIkUiIGZvciAxLjIzRTQuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IHRoaXMgc3VwZXJzZWRlcyB0aGUgPGNvZGU+ZXhwb25lbnRpYWw8L2NvZGU+IGZpZWxkLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZXhwb25lbnRTZXBhcmF0b3I7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIGNoYXJhY3RlciB1c2VkIHRvIGluZGljYXRlIGEgcGFkZGluZyBjaGFyYWN0ZXIgaW4gYSBmb3JtYXQsCisgICAgICogZS5nLiwgJyonIGluIGEgcGF0dGVybiBzdWNoIGFzICIkKl8jLCMjMC4wMCIuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHBhZEVzY2FwZTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgY2hhcmFjdGVyIHVzZWQgdG8gaW5kaWNhdGUgYSBwbHVzIHNpZ24uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHBsdXNTaWduOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBvYmplY3Qgd2FzIGNvbnN0cnVjdGVkLiAgU2V0IHRvIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlIGZvciBvYmplY3RzIHJlc3VycmVjdGVkIGZyb20gb2xkIHN0cmVhbXMuCisgICAgICogQHNpbmNlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVxdWVzdGVkIFVMb2NhbGUuICBXZSBrZWVwIHRoZSBvbGQgbG9jYWxlIGZvciBzZXJpYWxpemF0aW9uIGNvbXBhdGliaWxpdHkuCisgICAgICogQHNpbmNlIElEVSAzLjIKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdWxvY2FsZTsKKworICAgIC8vIFByb2NsYWltIEpESyAxLjEgRkNTIGNvbXBhdGliaWxpdHkKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA1NzcyNzk2MjQzMzk3MzUwMzAwTDsKKworICAgIC8vIFRoZSBpbnRlcm5hbCBzZXJpYWwgdmVyc2lvbiB3aGljaCBzYXlzIHdoaWNoIHZlcnNpb24gd2FzIHdyaXR0ZW4KKyAgICAvLyAtIDAgKGRlZmF1bHQpIGZvciB2ZXJzaW9uIHVwIHRvIEpESyAxLjEuNQorICAgIC8vIC0gMSBmb3IgdmVyc2lvbiBmcm9tIEpESyAxLjEuNiwgd2hpY2ggaW5jbHVkZXMgdHdvIG5ldyBmaWVsZHM6CisgICAgLy8gICAgIG1vbmV0YXJ5U2VwYXJhdG9yIGFuZCBleHBvbmVudGlhbC4KKyAgICAvLyAtIDIgZm9yIHZlcnNpb24gZnJvbSBBbHBoYVdvcmtzLCB3aGljaCBpbmNsdWRlcyAzIG5ldyBmaWVsZHM6CisgICAgLy8gICAgIHBhZEVzY2FwZSwgZXhwb25lbnRTZXBhcmF0b3IsIGFuZCBwbHVzU2lnbi4KKyAgICAvLyAtIDMgZm9yIElDVSAyLjIsIHdoaWNoIGluY2x1ZGVzIHRoZSBsb2NhbGUgZmllbGQKKyAgICAvLyAtIDQgZm9yIElDVSAzLjIsIHdoaWNoIGluY2x1ZGVzIHRoZSBVTG9jYWxlIGZpZWxkCisgICAgLy8gLSA1IGZvciBJQ1UgMy42LCB3aGljaCBpbmNsdWRlcyB0aGUgbW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvciBmaWVsZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDU7CisgICAgCisgICAgLyoqCisgICAgICogRGVzY3JpYmVzIHRoZSB2ZXJzaW9uIG9mIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBwcmVzZW50IG9uIHRoZSBzdHJlYW0uCisgICAgICogUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IChvciB1bmluaXRpYWxpemVkKTogdmVyc2lvbnMgcHJpb3IgdG8gSkRLIDEuMS42LgorICAgICAqCisgICAgICogPGxpPjxiPjE8L2I+OiBWZXJzaW9ucyB3cml0dGVuIGJ5IEpESyAxLjEuNiBvciBsYXRlciwgd2hpY2ggaW5jbHVkZXMKKyAgICAgKiAgICAgIHR3byBuZXcgZmllbGRzOiA8Y29kZT5tb25ldGFyeVNlcGFyYXRvcjwvY29kZT4gYW5kIDxjb2RlPmV4cG9uZW50aWFsPC9jb2RlPi4KKyAgICAgKiA8bGk+PGI+MjwvYj46IFZlcnNpb24gZm9yIEFscGhhV29ya3MuICBBZGRzIHBhZEVzY2FwZSwgZXhwb25lbnRTZXBhcmF0b3IsCisgICAgICogICAgICBhbmQgcGx1c1NpZ24uCisgICAgICogPC91bD4KKyAgICAgKiBXaGVuIHN0cmVhbWluZyBvdXQgYSA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4sIHRoZSBtb3N0IHJlY2VudCBmb3JtYXQKKyAgICAgKiAoY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPikKKyAgICAgKiBpcyBhbHdheXMgd3JpdHRlbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8qKgorICAgICAqIGNhY2hlIHRvIGhvbGQgdGhlIE51bWJlckVsZW1lbnRzIG9mIGEgTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgY3VycmVuY3lQYXR0ZXJuID0gbnVsbDsKKyAgICAKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSAqIDxpPmFjdHVhbDwvaT4KKyAgICAgKiBsb2NhbGUgaXMgcmV0dXJuZWQgY29ycmVjdGx5LCBidXQgdGhlIDxpPnZhbGlkPC9pPiBsb2NhbGUgaXMKKyAgICAgKiBub3QsIGluIG1vc3QgY2FzZXMuCisgICAgICogQHBhcmFtIHR5cGUgdHlwZSBvZiBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQsIGVpdGhlciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFfSBvciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRX0uCisgICAgICogQHJldHVybiB0aGUgaW5mb3JtYXRpb24gc3BlY2lmaWVkIGJ5IDxpPnR5cGU8L2k+LCBvciBudWxsIGlmCisgICAgICogdGhpcyBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW4pCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVMb2NhbGUgZ2V0TG9jYWxlKFVMb2NhbGUuVHlwZSB0eXBlKSB7CisgICAgICAgIHJldHVybiB0eXBlID09IFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSA/CisgICAgICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA6IHRoaXMudmFsaWRMb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbGVzIHRoYXQgd2VyZSB1c2VkIHRvIGNyZWF0ZSB0aGlzCisgICAgICogb2JqZWN0LiAgSWYgdGhlIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEsCisgICAgICogYm90aCBhcmd1bWVudHMgc2hvdWxkIGJlIHNldCB0byBudWxsLiAgT3RoZXJ3aXNlLCBuZWl0aGVyCisgICAgICogc2hvdWxkIGJlIG51bGwuICBUaGUgYWN0dWFsIGxvY2FsZSBtdXN0IGJlIGF0IHRoZSBzYW1lIGxldmVsIG9yCisgICAgICogbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuICBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZAorICAgICAqIGZvciB1c2UgYnkgZmFjdG9yaWVzIG9yIG90aGVyIGVudGl0aWVzIHRoYXQgY3JlYXRlIG9iamVjdHMgb2YKKyAgICAgKiB0aGlzIGNsYXNzLgorICAgICAqIEBwYXJhbSB2YWxpZCB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UKKyAgICAgKiBkYXRhLCBvciBudWxsCisgICAgICogQHBhcmFtIGFjdHVhbCB0aGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzCisgICAgICogb2JqZWN0LCBvciBudWxsCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRMb2NhbGUoVUxvY2FsZSB2YWxpZCwgVUxvY2FsZSBhY3R1YWwpIHsKKyAgICAgICAgLy8gQ2hhbmdlIHRoZSBmb2xsb3dpbmcgdG8gYW4gYXNzZXJ0aW9uIGxhdGVyCisgICAgICAgIGlmICgodmFsaWQgPT0gbnVsbCkgIT0gKGFjdHVhbCA9PSBudWxsKSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICAgICAgLy8gQW5vdGhlciBjaGVjayB3ZSBjb3VsZCBkbyBpcyB0aGF0IHRoZSBhY3R1YWwgbG9jYWxlIGlzIGF0CisgICAgICAgIC8vIHRoZSBzYW1lIGxldmVsIG9yIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLgorICAgICAgICB0aGlzLnZhbGlkTG9jYWxlID0gdmFsaWQ7CisgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlID0gYWN0dWFsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZSBkYXRhLCBvciBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIHZhbGlkTG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcyBvYmplY3QsIG9yCisgICAgICogbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBhY3R1YWxMb2NhbGU7CisKKyAgICAvLyBub3Qgc2VyaWFsaXplZCwgcmVjb25zdHJ1Y3RlZCBmcm9tIGludGxDdXJyZW5jeUNvZGUKKyAgICBwcml2YXRlIHRyYW5zaWVudCBDdXJyZW5jeSBjdXJyZW5jeTsKKworICAgIC8vIC0tLS0tLS0tIEVORCBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNvbXBEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNvbXBEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmFiN2M0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY29tcERhdGEuamF2YQpAQCAtMCwwICsxLDc0NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogPiBUSElTIEZJTEUgV0FTIE1BQ0hJTkUgR0VORVJBVEVEIDwKKyogPiAgICAgICBETyBOT1QgRURJVCBCWSBIQU5EICAgICAgIDwKKyogPiAgICAgIFJVTiBUT09MIFRPIFJFR0VORVJBVEUgICAgIDwKKyogVG9vbDogY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyCisqIENyZWF0aW9uIGRhdGU6IFR1ZSBKdWwgMTggMTE6MDU6MjggUERUIDIwMDAKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKK2NsYXNzIERlY29tcERhdGEgeworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0NBTk9OSUNBTCA9IDIxNzU0OworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0NPTVBBVCA9IDExMTc3OworICAgIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX01BU0sgPSAzMjc2NzsKKyAgICBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9SRUNVUlNFID0gMzI3Njg7CisgICAgc3RhdGljIGZpbmFsIHNob3J0IEJBU0UgPSAwOworCisgICAgc3RhdGljIGZpbmFsIENvbXBhY3RDaGFyQXJyYXkgb2Zmc2V0cyA9IG5ldyBDb21wYWN0Q2hhckFycmF5KAorICAgICAgICAiXDAwMFx1MDgwMFx1QTVBNVwwMDVcMDAwIEBgXHUwMDgwXHUwMEEwXHUwMEMwXHUwMEUwXDAwMFx1MDEwMFx1MDEyMFx1MDE0MCIrCisgICAgICAgICJcdTAxNjBcdTAxODBcMDAwXDAwMFwwMDBcdTAxQTBcdTAxQzBcdTAxRTBcMDAwXDAwMFx1MDIwMFx1MDIyMFx1MDI0MFx1MDI2MCIrCisgICAgICAgICJcdTAyODBcdTAyQTBcdTAyQzBcdTAyRTBcdTAzMDBcdTAzMjBcMDAwXDAwMFx1MDM0MFx1MDM2MFx1QTVBNVwwMDRcMDAwIisKKyAgICAgICAgIlx1MDM4MFx1QTVBNVwwMDRcMDAwXHUwM0EwXDAwMFx1MDNDMFwwMDBcMDAwXHUwM0UwXHVBNUE1XDAyMlwwMDBcdTA0MDAiKworICAgICAgICAiXHUwNDIwXDAwMFwwMDBcMDAwXHUwNDQwXDAwMFwwMDBcdTA0NjBcdTA0ODBcdUE1QTVcMDA3XDAwMFx1MDRBMFwwMDBcdTA0QzAiKworICAgICAgICAiXDAwMFx1MDRFMFwwMDBcMDAwXDAwMFx1MDUwMFwwMDBcMDAwXDAwMFx1MDUyMFwwMDBcMDAwXDAwMFx1MDU0MFwwMDBcMDAwIisKKyAgICAgICAgIlwwMDBcdTA1NjBcMDAwXDAwMFx1MDU4MFwwMDBcMDAwXDAwMFx1MDVBMFx1MDVDMFwwMDBcdTA1RTBcMDAwXHUwNjAwXHUwNjIwIisKKyAgICAgICAgIlx1MDY0MFx1MDY2MFwwMDBcMDAwXDAwMFx1MDY4MFx1QTVBNW5cMDAwXHUwNkEwXHUwNkMwXHUwNkUwXHUwNzAwXHUwNzIwIisKKyAgICAgICAgIlx1MDc0MFx1MDc2MFx1MDc4MFx1MDdBMFx1MDdDMFx1MDdFMFx1MDgwMFx1MDgyMFx1MDg0MFx1MDg2MFx1MDg4MFx1MDhBMCIrCisgICAgICAgICJcdTA4QzBcdTA4RTBcdTA5MDBcdTA5MjBcdTA5NDBcMDAwXDAwMFx1MDk2MFx1MDk4MFx1MDlBMFx1MDlDMFx1MDlFMFx1MEEwMCIrCisgICAgICAgICJcdTBBMjBcMDAwXHUwQTQwXHUwQTYwXHUwQTgwXHUwQUEwXHUwQUMwXHUwQUUwXDAwMFx1MEIwMFwwMDBcdTBCMjBcdUE1QTUiKworICAgICAgICAiXDAxMVwwMDBcdTBCNDBcdTBCNjBcdTBCODBcdTBCQTBcdTBCQzBcdUE1QTVMXDAwMFx1MEJFMFwwMDBcMDAwXHUwQzAwIisKKyAgICAgICAgIlx1MEMyMFx1MEM0MFx1MEM2MFx1MEM4MFx1MENBMFx1MENDMFx1MENFMFwwMDBcdTBEMDBcdTBEMjBcdTBENDBcdTBENjAiKworICAgICAgICAiXHUwRDgwXHUwREEwXHUwREMwXHUwREUwXDAwMFx1MEUwMFx1MEUyMFx1MEU0MFx1MEU2MFwwMDBcMDAwXDAwMFx1MEU4MCIrCisgICAgICAgICJcdTBFQTBcdTBFQzBcdTBFRTBcdTBGMDBcdTBGMjBcdTBGNDBcdTBGNjBcdTBGODBcdTBGQTBcdTBGQzBcdTBGRTBcdTEwMDAiKworICAgICAgICAiXHUxMDIwXHUxMDQwXHUxMDYwXHVBNUE1XHUwNjI4XDAwMFx1MTA4MFx1MTBBMFx1MTBDMFx1MTBFMFx1MTEwMFx1MTEyMCIrCisgICAgICAgICJcdTExNDBcdTExNjBcdTExODBcdTExQTBcdUE1QTVcMDA2XDAwMFx1MTFDMFx1MTFFMFx1MTIwMFx1MTIyMFx1MTI0MFx1MTI2MCIrCisgICAgICAgICJcdTEyODBcdTEyQTBcdTEyQzBcdTEyRTBcdTEzMDBcdTEzMjBcdTEzNDBcdTEzNjBcdTEzODBcdTEzQTBcdTEzQzBcdTEzRTAiKworICAgICAgICAiXHUxNDAwXHUxNDIwXHUxNDQwXHUxNDYwXHUxNDgwXHUxNEEwXDAwMFx1MTRDMFx1MTRFMFx1MTUwMFx1MTUyMFx1MTU0MCIrCisgICAgICAgICJcdTE1NjBcdTE1ODBcdTE1QTBcdTE1QzBcdTE1RTBcdTE2MDBcdTE2MjBcdTE2NDBcdTE2NjBcdTE2ODAiCisgICAgICAgICwKKyAgICAgICAgIlwwMDBcdTE2QTBcdUE1QTUgXDAwMFwwMDVcdUE1QTVcMDA3XDAwMFwwMTJcMDAwXDAyMVx1QTVBNVwwMDRcMDAwXDAyNiIrCisgICAgICAgICJcMDAwXDAwMFwwMzUhJi1cMDAwXDAwMDI5PVwwMDBDT1tcMDAwXHUyQkFFXHUyQkI2XHUyQkJFXHUyQkM2XHUyQkNFXHUyQkQ2IisKKyAgICAgICAgIlwwMDBcdTJCREVcdTJCRTZcdTJCRUVcdTJCRjZcdTJCRkVcdTJDMDZcdTJDMEVcdTJDMTZcdTJDMUVcMDAwXHUyQzI2XHUyQzJFIisKKyAgICAgICAgIlx1MkMzNlx1MkMzRVx1MkM0Nlx1MkM0RVwwMDBcMDAwXHUyQzU2XHUyQzVFXHUyQzY2XHUyQzZFXHUyQzc2XDAwMFwwMDAiKworICAgICAgICAiXHUyQzdFXHUyQzg2XHUyQzhFXHUyQzk2XHUyQzlFXHUyQ0E2XDAwMFx1MkNBRVx1MkNCNlx1MkNCRVx1MkNDNlx1MkNDRSIrCisgICAgICAgICJcdTJDRDZcdTJDREVcdTJDRTZcdTJDRUVcMDAwXHUyQ0Y2XHUyQ0ZFXHUyRDA2XHUyRDBFXHUyRDE2XHUyRDFFXDAwMFwwMDAiKworICAgICAgICAiXHUyRDI2XHUyRDJFXHUyRDM2XHUyRDNFXHUyRDQ2XDAwMFx1MkQ0RVx1MkQ1Nlx1MkQ1RVx1MkQ2Nlx1MkQ2RVx1MkQ3NiIrCisgICAgICAgICJcdTJEN0VcdTJEODZcdTJEOEVcdTJEOTZcdTJEOUVcdTJEQTZcdTJEQUVcdTJEQjZcdTJEQkVcdTJEQzZcdTJEQ0VcMDAwIisKKyAgICAgICAgIlwwMDBcdTJERDZcdTJEREVcdTJERTZcdTJERUVcdTJERjZcdTJERkVcdTJFMDZcdTJFMEVcdTJFMTZcdTJFMUVcdTJFMjYiKworICAgICAgICAiXHUyRTJFXHUyRTM2XHUyRTNFXHUyRTQ2XHUyRTRFXHUyRTU2XHUyRTVFXHUyRTY2XHUyRTZFXDAwMFwwMDBcdTJFNzZcdTJFN0UiKworICAgICAgICAiXHUyRTg2XHUyRThFXHUyRTk2XHUyRTlFXHUyRUE2XHUyRUFFXHUyRUI2XDAwMGZuXHUyRUJFXHUyRUM2XHUyRUNFXHUyRUQ2IisKKyAgICAgICAgIlwwMDBcdTJFREVcdTJFRTZcdTJFRUVcdTJFRjZcdTJFRkVcdTJGMDZ2flwwMDBcMDAwXHUyRjBFXHUyRjE2XHUyRjFFXHUyRjI2IisKKyAgICAgICAgIlx1MkYyRVx1MkYzNlx1MDA4NlwwMDBcMDAwXHUyRjNFXHUyRjQ2XHUyRjRFXHUyRjU2XHUyRjVFXHUyRjY2XDAwMFwwMDAiKworICAgICAgICAiXHUyRjZFXHUyRjc2XHUyRjdFXHUyRjg2XHUyRjhFXHUyRjk2XHUyRjlFXHUyRkE2XHUyRkFFXHUyRkI2XHUyRkJFXHUyRkM2IisKKyAgICAgICAgIlx1MkZDRVx1MkZENlx1MkZERVx1MkZFNlx1MkZFRVx1MkZGNlwwMDBcMDAwXHUyRkZFXHUzMDA2XHUzMDBFXHUzMDE2XHUzMDFFIisKKyAgICAgICAgIlx1MzAyNlx1MzAyRVx1MzAzNlx1MzAzRVx1MzA0Nlx1MzA0RVx1MzA1Nlx1MzA1RVx1MzA2Nlx1MzA2RVx1MzA3Nlx1MzA3RSIrCisgICAgICAgICJcdTMwODZcdTMwOEVcdTMwOTZcdTMwOUVcdTMwQTZcdTMwQUVcdTAwOERcdTMwQjZcdTMwQkVcdUE1QTVcMDE1XDAwMFx1MzBDNiIrCisgICAgICAgICJcdTMwQ0VcdUE1QTVcMDIzXDAwMFx1MDA5M1x1MDA5Rlx1MDBBQlx1MDBCNlx1MDBCRVx1MDBDNlx1MDBDRVx1MDBENlx1MDBERSIrCisgICAgICAgICJcdTMwRDZcdTMwREVcdTMwRTZcdTMwRUVcdTMwRjZcdTMwRkVcdTMxMDZcdTMxMEVcdTMxMTdcdTMxMjNcdTMxMkZcdTMxM0IiKworICAgICAgICAiXHUzMTQ3XHUzMTUzXHUzMTVGXHUzMTZCXDAwMFx1MzE3N1x1MzE4M1x1MzE4Rlx1MzE5Qlx1MzFBNlx1MzFBRVwwMDBcMDAwIisKKyAgICAgICAgIlx1MzFCNlx1MzFCRVx1MzFDNlx1MzFDRVx1MzFENlx1MzFERVx1MzFFN1x1MzFGM1x1MzFGRVx1MzIwNlx1MzIwRVx1MDA5MiIrCisgICAgICAgICJcdTAwOUVcdTAwQUFcdTMyMTZcdTMyMUVcMDAwXDAwMFx1MzIyNlx1MzIyRVx1MzIzN1x1MzI0M1x1MzI0RVx1MzI1Nlx1MzI1RSIrCisgICAgICAgICJcdTMyNjZcdTMyNkVcdTMyNzZcdTMyN0VcdTMyODZcdTMyOEVcdTMyOTZcdTMyOUVcdTMyQTZcdTMyQUVcdTMyQjZcdTMyQkUiKworICAgICAgICAiXHUzMkM2XHUzMkNFXHUzMkQ2XHUzMkRFXHUzMkU2XHUzMkVFXHUzMkY2XHUzMkZFXHUzMzA2XHUzMzBFXHUzMzE2XHUzMzFFIisKKyAgICAgICAgIlx1MzMyNlx1MzMyRVx1MzMzNlx1MzMzRVx1MzM0NlwwMDBcMDAwXHUzMzRFXHUzMzU2XHVBNUE1XDAwNlwwMDBcdTMzNUUiKworICAgICAgICAiXHUzMzY2XHUzMzZFXHUzMzc2XHUzMzdGXHUzMzhCXHUzMzk3XHUzM0EzXHUzM0FFXHUzM0I2XHUzM0JGXHUzM0NCXHUzM0Q2IisKKyAgICAgICAgIlx1MzNERVx1QTVBNVwwMzRcMDAwXHUwMEU1XHUwMEU5cVx1MDBFRFx1MDBGMVx1MDBGNVx1MDBGOVx1MDBGRFx1MDEwMSIrCisgICAgICAgICJcdUE1QTVcMDM3XDAwMFx1MDEwNlx1MDEwRVx1MDExNlx1MDExRVx1MDEyNlx1MDEyRVwwMDBcMDAwXHUwMTM1fVx1MDA4RCIrCisgICAgICAgICJcdTAxMzlcdTAxM0RcdUE1QTVcMDMzXDAwMFx1MzNFNVx1MzNFOVwwMDBcdTMzRURcdTMzRjJcdUE1QTUvXDAwMFx1MzNGOSIrCisgICAgICAgICJcdUE1QTVcMDA1XDAwMFx1MDE0MlwwMDBcMDAwXDAwMFx1MzNGRFx1QTVBNVwwMDVcMDAwJlx1QjQwMlx1MzQwQVx1MzQxMSIrCisgICAgICAgICJcdTM0MTZcdTM0MUVcdTM0MjZcMDAwXHUzNDJFXDAwMFx1MzQzNlx1MzQzRVx1MzQ0N1x1QTVBNVwwMzFcMDAwXHUzNDUyIisKKyAgICAgICAgIlx1MzQ1QVx1MzQ2Mlx1MzQ2QVx1MzQ3Mlx1MzQ3QVx1MzQ4M1x1QTVBNVwwMzFcMDAwXHUzNDhFXHUzNDk2XHUzNDlFXHUzNEE2IisKKyAgICAgICAgIlx1MzRBRVwwMDBcdTAxNDlcdTAxNERcdTAxNTFcdUI0QjZcdUI0QkVcdTAxNTVcdTAxNTlcdUE1QTVcMDMxXDAwMFx1MDE1RCIrCisgICAgICAgICJcdTAxNjFcdTAxNjVcdUE1QTVcMDE1XDAwMFx1MzRDNlx1MzRDRVwwMDBcdTM0RDZcMDAwXDAwMFwwMDBcdTM0REVcdUE1QTUiKworICAgICAgICAiXDAwNFwwMDBcdTM0RTZcdTM0RUVcdTM0RjZcdUE1QTVcMDEyXDAwMFx1MzRGRVx1QTVBNVwwMzdcMDAwXHUzNTA2XHVBNUE1IisKKyAgICAgICAgIlwwMjZcMDAwXHUzNTBFXHUzNTE2XDAwMFx1MzUxRVwwMDBcMDAwXDAwMFx1MzUyNlx1QTVBNVwwMDRcMDAwXHUzNTJFXHUzNTM2IisKKyAgICAgICAgIlx1MzUzRVx1QTVBNVwwMjdcMDAwXHUzNTQ2XHUzNTRFXHVBNUE1XDAxMVwwMDBcdTM1NTZcdTM1NUVcdUE1QTVcMDE1XDAwMCIrCisgICAgICAgICJcdTM1NjZcdTM1NkVcdTM1NzZcdTM1N0VcMDAwXDAwMFx1MzU4Nlx1MzU4RVwwMDBcMDAwXHUzNTk2XHUzNTlFXHUzNUE2IisKKyAgICAgICAgIlx1MzVBRVx1MzVCNlx1MzVCRVwwMDBcMDAwXHUzNUM2XHUzNUNFXHUzNUQ2XHUzNURFXHUzNUU2XHUzNUVFXDAwMFwwMDAiKworICAgICAgICAiXHUzNUY2XHUzNUZFXHUzNjA2XHUzNjBFXHUzNjE2XHUzNjFFXHUzNjI2XHUzNjJFXHUzNjM2XHUzNjNFXHUzNjQ2XHUzNjRFIisKKyAgICAgICAgIlwwMDBcMDAwXHUzNjU2XHUzNjVFXHVBNUE1XDAxNVwwMDBcdTAxNkFcdUE1QTVcMDMyXDAwMFx1MzY2Nlx1MzY2RVx1MzY3NiIrCisgICAgICAgICJcdTM2N0VcdTM2ODZcdUE1QTUuXDAwMFx1MDE3Mlx1MDE3QVx1MDE4Mlx1MDE4QVx1QTVBNVwwMDdcMDAwXHUzNjhFXDAwMCIrCisgICAgICAgICJcdTM2OTZcdUE1QTVcMDIwXDAwMFx1MzY5RVx1QTVBNVwwMjVcMDAwXHUzNkE2XHVBNUE1XDAwN1wwMDBcdTM2QUVcMDAwIisKKyAgICAgICAgIlwwMDBcdTM2QjZcdUE1QTUjXDAwMFx1MzZCRVx1MzZDNlx1MzZDRVx1MzZENlx1MzZERVx1MzZFNlx1MzZFRVx1MzZGNiIrCisgICAgICAgICJcdUE1QTVcMDEzXDAwMFx1MzZGRVx1MzcwNlx1QTVBNVwwMTdcMDAwXHUzNzBFXHUzNzE2XDAwMFx1MzcxRVx1QTVBNVwwMjMiKworICAgICAgICAiXDAwMFx1MzcyNlwwMDBcMDAwXHUzNzJFXHVBNUE1XDA0MlwwMDBcdTM3MzZcdTM3M0VcdTM3NDZcMDAwXDAwMFx1Mzc0RSIrCisgICAgICAgICJcdUE1QTVcMDExXDAwMFx1Mzc1NlwwMDBcMDAwXHUzNzVFXHUzNzY2XHVBNUE1XDAxN1wwMDBcdTM3NkVcdTM3NzZcdUE1QTUiKworICAgICAgICAiXDAyNlwwMDBcdTM3N0VcdUE1QTVcMDI1XDAwMFx1Mzc4Nlx1Mzc4RVx1Mzc5Nlx1QTVBNVwwMzNcMDAwXHUzNzlFXHVBNUE1IisKKyAgICAgICAgIlwwMjdcMDAwXHUzN0E2XHVBNUE1XDAwNlwwMDBcdTM3QUVcdTM3QjZcMDAwXHUzN0JFXHUzN0M3XHVBNUE1XDAzNlwwMDAiKworICAgICAgICAiXHUzN0QyXHUzN0RBXHUzN0UyXHVBNUE1LVwwMDBcdTM3RUFcMDAwXHUzN0YyXHUzN0ZCXHUzODA2XHVBNUE1XDAyNFwwMDAiKworICAgICAgICAiXHUwMTkyXHVBNUE1XDAzN1wwMDBcdTAxOUFcdUE1QTUoXDAwMFx1MDFBMlx1MDFBQVx1QTVBNVwwMTZcMDAwXHUwMUIxIisKKyAgICAgICAgIlx1QTVBNVwwMjZcMDAwXHUzODBFXHVBNUE1XDAxMVwwMDBcdTM4MTZcdUE1QTVcMDA0XDAwMFx1MzgxRVx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1MzgyNlx1QTVBNVwwMDRcMDAwXHUzODJFXHVBNUE1XDAxNFwwMDBcdTM4MzZcdUE1QTVcMDExXDAwMFx1MzgzRSIrCisgICAgICAgICJcMDAwXHUzODQ2XHUzODRFXHUwMUI3XHUzODU2XHUwMUMzXHVBNUE1XDAwN1wwMDBcdTM4NUVcdUE1QTVcMDIxXDAwMFx1Mzg2NiIrCisgICAgICAgICJcdUE1QTVcMDExXDAwMFx1Mzg2RVx1QTVBNVwwMDRcMDAwXHUzODc2XHVBNUE1XDAwNFwwMDBcdTM4N0VcdUE1QTVcMDA0IisKKyAgICAgICAgIlwwMDBcdTM4ODZcdUE1QTVcMDE0XDAwMFx1Mzg4RVx1QTVBNVwwMTRcMDAwXHUzODk2XHVBNUE1XDAzMVwwMDBcdTM4OUUiKworICAgICAgICAiXHUzOEE2XHUzOEFFXHUzOEI2XHUzOEJFXHUzOEM2XHUzOENFXHUzOEQ2XHUzOERGXHUzOEVCXHUzOEY2XHUzOEZFXHUzOTA2IisKKyAgICAgICAgIlx1MzkwRVx1MzkxNlx1MzkxRVx1MzkyNlx1MzkyRVx1MzkzNlx1MzkzRVx1Mzk0N1x1Mzk1M1x1Mzk1Rlx1Mzk2Qlx1Mzk3NiIrCisgICAgICAgICJcdTM5N0VcdTM5ODZcdTM5OEVcdTM5OTdcdTM5QTNcdTM5QUVcdTM5QjZcdTM5QkVcdTM5QzZcdTM5Q0VcdTM5RDZcdTM5REUiKworICAgICAgICAiXHUzOUU2XHUzOUVFXHUzOUY2XHUzOUZFXHUzQTA2XHUzQTBFXHUzQTE2XHUzQTFFXHUzQTI2XHUzQTJGXHUzQTNCXHUzQTQ2IisKKyAgICAgICAgIlx1M0E0RVx1M0E1Nlx1M0E1RVx1M0E2Nlx1M0E2RVx1M0E3Nlx1M0E3RVx1M0E4N1x1M0E5M1x1M0E5RVx1M0FBNlx1M0FBRSIrCisgICAgICAgICJcdTNBQjZcdTNBQkVcdTNBQzZcdTNBQ0VcdTNBRDZcdTNBREVcdTNBRTZcdTNBRUVcdTNBRjZcdTNBRkVcdTNCMDZcdTNCMEUiKworICAgICAgICAiXHUzQjE2XHUzQjFFXHUzQjI2XHUzQjJGXHUzQjNCXHUzQjQ3XHUzQjUzXHUzQjVGXHUzQjZCXHUzQjc3XHUzQjgzXHUzQjhFIisKKyAgICAgICAgIlx1M0I5Nlx1M0I5RVx1M0JBNlx1M0JBRVx1M0JCNlx1M0JCRVx1M0JDNlx1M0JDRlx1M0JEQlx1M0JFNlx1M0JFRVx1M0JGNiIrCisgICAgICAgICJcdTNCRkVcdTNDMDZcdTNDMEVcdTNDMTdcdTNDMjNcdTNDMkZcdTNDM0JcdTNDNDdcdTNDNTNcdTNDNUVcdTNDNjZcdTNDNkUiKworICAgICAgICAiXHUzQzc2XHUzQzdFXHUzQzg2XHUzQzhFXHUzQzk2XHUzQzlFXHUzQ0E2XHUzQ0FFXHUzQ0I2XHUzQ0JFXHUzQ0M2XHUzQ0NGIisKKyAgICAgICAgIlx1M0NEQlx1M0NFN1x1M0NGM1x1M0NGRVx1M0QwNlx1M0QwRVx1M0QxNlx1M0QxRVx1M0QyNlx1M0QyRVx1M0QzNlx1M0QzRSIrCisgICAgICAgICJcdTNENDZcdTNENEVcdTNENTZcdTNENUVcdTNENjZcdTNENkVcdTNENzZcdTNEN0VcdTNEODZcdTNEOEVcdTNEOTZcdTNEOUUiKworICAgICAgICAiXHUzREE2XHUzREFFXHUzREI2XHUzREJFXHUzREM2XHUzRENFXHUzREQ2XHUzRERFXHUzREU2XHUwMUNFXHVCREVFXHVBNUE1IisKKyAgICAgICAgIlwwMDRcMDAwXHUzREY2XHUzREZFXHUzRTA2XHUzRTBFXHUzRTE3XHUzRTIzXHUzRTJGXHUzRTNCXHUzRTQ3XHUzRTUzXHUzRTVGIisKKyAgICAgICAgIlx1M0U2Qlx1M0U3N1x1M0U4M1x1M0U4Rlx1M0U5Qlx1M0VBN1x1M0VCM1x1M0VCRlx1M0VDQlx1M0VEN1x1M0VFM1x1M0VFRiIrCisgICAgICAgICJcdTNFRkJcdTNGMDZcdTNGMEVcdTNGMTZcdTNGMUVcdTNGMjZcdTNGMkVcdTNGMzdcdTNGNDNcdTNGNEZcdTNGNUJcdTNGNjciKworICAgICAgICAiXHUzRjczXHUzRjdGXHUzRjhCXHUzRjk3XHUzRkEzXHUzRkFFXHUzRkI2XHUzRkJFXHUzRkM2XHUzRkNFXHUzRkQ2XHUzRkRFIisKKyAgICAgICAgIlx1M0ZFNlx1M0ZFRlx1M0ZGQlx1NDAwN1x1NDAxM1x1NDAxRlx1NDAyQlx1NDAzN1x1NDA0M1x1NDA0Rlx1NDA1Qlx1NDA2NyIrCisgICAgICAgICJcdTQwNzNcdTQwN0ZcdTQwOEJcdTQwOTdcdTQwQTNcdTQwQUZcdTQwQkJcdTQwQzdcdTQwRDNcdTQwREVcdTQwRTZcdTQwRUUiKworICAgICAgICAiXHU0MEY2XHU0MEZGXHU0MTBCXHU0MTE3XHU0MTIzXHU0MTJGXHU0MTNCXHU0MTQ3XHU0MTUzXHU0MTVGXHU0MTZCXHU0MTc2IisKKyAgICAgICAgIlx1NDE3RVx1NDE4Nlx1NDE4RVx1NDE5Nlx1NDE5RVx1NDFBNlx1NDFBRVx1QTVBNVwwMDZcMDAwXHU0MUI2XHU0MUJFXHU0MUM3IisKKyAgICAgICAgIlx1NDFEM1x1NDFERlx1NDFFQlx1NDFGN1x1NDIwM1x1NDIwRVx1NDIxNlx1NDIxRlx1NDIyQlx1NDIzN1x1NDI0M1x1NDI0RiIrCisgICAgICAgICJcdTQyNUJcdTQyNjZcdTQyNkVcdTQyNzdcdTQyODNcdTQyOEZcdTQyOUJcMDAwXDAwMFx1NDJBNlx1NDJBRVx1NDJCN1x1NDJDMyIrCisgICAgICAgICJcdTQyQ0ZcdTQyREJcMDAwXDAwMFx1NDJFNlx1NDJFRVx1NDJGN1x1NDMwM1x1NDMwRlx1NDMxQlx1NDMyN1x1NDMzM1x1NDMzRSIrCisgICAgICAgICJcdTQzNDZcdTQzNEZcdTQzNUJcdTQzNjdcdTQzNzNcdTQzN0ZcdTQzOEJcdTQzOTZcdTQzOUVcdTQzQTdcdTQzQjNcdTQzQkYiKworICAgICAgICAiXHU0M0NCXHU0M0Q3XHU0M0UzXHU0M0VFXHU0M0Y2XHU0M0ZGXHU0NDBCXHU0NDE3XHU0NDIzXHU0NDJGXHU0NDNCXHU0NDQ2IisKKyAgICAgICAgIlx1NDQ0RVx1NDQ1N1x1NDQ2M1x1NDQ2Rlx1NDQ3QlwwMDBcMDAwXHU0NDg2XHU0NDhFXHU0NDk3XHU0NEEzXHU0NEFGXHU0NEJCIisKKyAgICAgICAgIlwwMDBcMDAwXHU0NEM2XHU0NENFXHU0NEQ3XHU0NEUzXHU0NEVGXHU0NEZCXHU0NTA3XHU0NTEzXDAwMFx1NDUxRVwwMDAiKworICAgICAgICAiXHU0NTI3XDAwMFx1NDUzM1wwMDBcdTQ1M0ZcdTQ1NEFcdTQ1NTJcdTQ1NUJcdTQ1NjdcdTQ1NzNcdTQ1N0ZcdTQ1OEJcdTQ1OTciKworICAgICAgICAiXHU0NUEyXHU0NUFBXHU0NUIzXHU0NUJGXHU0NUNCXHU0NUQ3XHU0NUUzXHU0NUVGXHU0NUZBXHU0NjAyXHU0NjBBXHU0NjEyIisKKyAgICAgICAgIlx1NDYxQVx1NDYyMlx1NDYyQVx1NDYzMlx1NDYzQVx1NDY0Mlx1NDY0QVx1NDY1Mlx1NDY1QVx1NDY2MlwwMDBcMDAwXHU0NjZCIisKKyAgICAgICAgIlx1NDY3N1x1NDY4MFx1NDY5NFx1NDZBOFx1NDZCQ1x1NDZEMFx1NDZFNFx1NDZGQlx1NDcwN1x1NDcxMFx1NDcyNFx1NDczOCIrCisgICAgICAgICJcdTQ3NENcdTQ3NjBcdTQ3NzRcdTQ3OEJcdTQ3OTdcdTQ3QTBcdTQ3QjRcdTQ3QzhcdTQ3RENcdTQ3RjBcdTQ4MDRcdTQ4MUIiKworICAgICAgICAiXHU0ODI3XHU0ODMwXHU0ODQ0XHU0ODU4XHU0ODZDXHU0ODgwXHU0ODk0XHU0OEFCXHU0OEI3XHU0OEMwXHU0OEQ0XHU0OEU4IisKKyAgICAgICAgIlx1NDhGQ1x1NDkxMFx1NDkyNFx1NDkzQlx1NDk0N1x1NDk1MFx1NDk2NFx1NDk3OFx1NDk4Q1x1NDlBMFx1NDlCNFx1NDlDQSIrCisgICAgICAgICJcdTQ5RDJcdTQ5REJcdTQ5RTZcdTQ5RUZcMDAwXHU0OUZBXHU0QTAzXHU0QTBFXHU0QTE2XHU0QTFFXHU0QTI2XHU0QTJFIisKKyAgICAgICAgIlx1MDFENlx1NEEzNVx1MDFENlx1MDFERVx1Q0EzQVx1NEE0M1x1NEE0RVx1NEE1N1wwMDBcdTRBNjJcdTRBNkJcdTRBNzYiKworICAgICAgICAiXHU0QTdFXHU0QTg2XHU0QThFXHU0QTk2XHVDQTlFXHVDQUE2XHVDQUFFXHU0QUI2XHU0QUJFXHU0QUM3XHU0QUQzXDAwMCIrCisgICAgICAgICJcMDAwXHU0QURFXHU0QUU3XHU0QUYyXHU0QUZBXHU0QjAyXHU0QjBBXDAwMFx1Q0IxMlx1Q0IxQVx1Q0IyMlx1NEIyQVx1NEIzMiIrCisgICAgICAgICJcdTRCM0JcdTRCNDdcdTRCNTJcdTRCNUFcdTRCNjJcdTRCNkJcdTRCNzZcdTRCN0VcdTRCODZcdTRCOEVcdTRCOTZcdUNCOUUiKworICAgICAgICAiXHVDQkE2XHU0QkFEXDAwMFwwMDBcdTRCQjNcdTRCQkVcdTRCQzdcMDAwXHU0QkQyXHU0QkRCXHU0QkU2XHU0QkVFXHU0QkY2IisKKyAgICAgICAgIlx1NEJGRVx1NEMwNlx1Q0MwRFx1MDFFNlwwMDBcdUNDMTFcdUNDMTVcdUE1QTVcMDExXDAwNVx1QTVBNVwwMDZcMDAwXHUwMUVEIisKKyAgICAgICAgIlx1QTVBNVwwMDVcMDAwXHUwMUYyXHVBNUE1XDAxNFwwMDBcdTAxRjlcdTAxRkVcdTAxRkJcdUE1QTVcMDEwXDAwMFwwMDUiKworICAgICAgICAiXDAwMFwwMDBcMDAwXHUwMjA2XHUwMjBGXDAwMFx1MDIxQVx1MDIyM1x1QTVBNVwwMDRcMDAwXHUwMjJFXDAwMFx1MDIzNiIrCisgICAgICAgICJcdUE1QTVcMDExXDAwMFx1MDIzRVx1MDI0Nlx1QTVBNSZcMDAwXHUwMjREXDAwMFwwMDBcMDAwSVx1MDI1MVx1MDI1NVx1MDI1OSIrCisgICAgICAgICJcdTAyNURcdTAyNjFcdTAyNjVcdTAyNjlcdTAyNkRcdTAyNzFcdTAyNzVcdTAwODlcdTAyNEQ5XDAzNSFJXHUwMjUxXHUwMjU1IisKKyAgICAgICAgIlx1MDI1OVx1MDI1RFx1MDI2MVx1MDI2NVx1MDI2OVx1MDI2RFx1MDI3MVx1MDI3NVx1QTVBNVwwMzFcMDAwXHUwMjdBXHVBNUE1IisKKyAgICAgICAgIlwwMjdcMDAwXHUwMjgzXHUwMjhGXHUwMjk5XHUwMjlFXDAwMFx1MDJBN1x1MDJCM1x1MDJCRFwwMDBcdTAyQzJcdTAyQzkiKworICAgICAgICAiXHUwMkNEXHUwMkNEXHUwMkNEXHUwMEU1XHUwMkQxZWV1fVwwMDBcdTAwQ0RcdTAyRDZcMDAwXDAwMFx1MDJERFx1MDJFMSIrCisgICAgICAgICJcdTAyNzlcdTAyNzlcdTAyNzlcMDAwXDAwMFx1MDJFNlx1MDJFRlx1MDJGQVwwMDBcdTAwOTVcMDAwXHU0QzE5XDAwMFx1MDA5NSIrCisgICAgICAgICJcMDAwXHU0QzFEXHU0QzIyXHUwMzAxXHUwMjk5XDAwMFx1MDMwNVx1MDJGMVx1MDJDNVwwMDBcdTAyRTk9XHUwMzA5XHUwMzBEIisKKyAgICAgICAgIlx1MDMxMVx1MDMxNW1cdUE1QTVcMDMxXDAwMFx1MDMxQlx1MDMyN1x1MDMzM1x1MDMzRlx1MDM0Qlx1MDM1N1x1MDM2MyIrCisgICAgICAgICJcdTAzNkZcdTAzN0JcdTAzODdcdTAzOTNcdTAzOUZCZVx1MDNBQVx1MDNCM1x1MDNCRVx1MDNDMVx1MDNDNlx1MDNDRlx1MDNEOCIrCisgICAgICAgICJcdTAzRUVcdTAzRjFcdTAzRjZcdTAzRkZ1XHUwMjk5XHUwMDkxXHUwMkU5bVx1MDQwQVx1MDQxM1x1MDQxRVx1MDQyMVx1MDQyNiIrCisgICAgICAgICJcdTA0MkZcdTA0MzhcdTA0NEVcdTAxMzlcdTA0NTZcdTA0NUZ9XHUwMjg5XHUwMEE5XHUwNDY5XHVBNUE1XDAzMlwwMDAiKworICAgICAgICAiXHU0QzJBXHU0QzMyXHVBNUE1XDAyMlwwMDBcdTRDM0FcdUE1QTVcMDM2XDAwMFx1NEM0Mlx1NEM0QVx1NEM1Mlx1QTVBNSIrCisgICAgICAgICJcMDI0XDAwMFx1NEM1QVx1QTVBNVwwMDRcMDAwXHU0QzYyXDAwMFwwMDBcdTRDNkFcdUE1QTVcMDI3XDAwMFx1NEM3MlwwMDAiKworICAgICAgICAiXHU0QzdBXHVBNUE1XDAwNVwwMDBcdTA0NkVcdTA0NzdcMDAwXHUwNDgyXHUwNDhCXHVBNUE1XDAyMFwwMDBcdTRDODJcMDAwIisKKyAgICAgICAgIlwwMDBcdTRDOEFcMDAwXDAwMFx1NEM5MlwwMDBcdTRDOUFcdUE1QTVcMDI2XDAwMFx1NENBMlwwMDBcdTRDQUFcdUE1QTUiKworICAgICAgICAiXDAxMlwwMDBcdTRDQjJcdTRDQkFcdTRDQzJcdTRDQ0FcdTRDRDJcMDAwXDAwMFx1NENEQVx1NENFMlwwMDBcMDAwXHU0Q0VBIisKKyAgICAgICAgIlx1NENGMlx1QTVBNVwwMDZcMDAwXHU0Q0ZBXHU0RDAyXDAwMFwwMDBcdTREMEFcdTREMTJcMDAwXDAwMFx1NEQxQVx1NEQyMiIrCisgICAgICAgICJcdUE1QTVcMDQyXDAwMFx1NEQyQVx1NEQzMlx1NEQzQVx1NEQ0Mlx1QTVBNVwwMjBcMDAwXHU0RDRBXHU0RDUyXHU0RDVBIisKKyAgICAgICAgIlx1NEQ2Mlx1QTVBNVwwMDZcMDAwXHU0RDZBXHU0RDcyXHU0RDdBXHU0RDgyXHVBNUE1XDAzM1wwMDBcdTREODlcdTREOEQiKworICAgICAgICAiXHVBNUE1XDAyNVwwMDA5XDAzNSFJXHUwMjUxXHUwMjU1XHUwMjU5XHUwMjVEXHUwMjYxXHUwNDk2XHUwNDlFXHUwNEE2IisKKyAgICAgICAgIlx1MDRBRVx1MDRCNlx1MDRCRVx1MDRDNlx1MDRDRVx1MDRENlx1MDRERVx1MDRFNlx1MDRFRlx1MDRGQlx1MDUwN1x1MDUxMyIrCisgICAgICAgICJcdTA1MUZcdTA1MkJcdTA1MzdcdTA1NDNcdTA1NEZcdTA1NThcdTA1NkNcdTA1ODBcdTA1OTRcdTA1QThcdTA1QkNcdTA1RDAiKworICAgICAgICAiXHUwNUU0XHUwNUY4XHUwNjBDXHUwNjIwXHUwNjM2XHUwNjNFXHUwNjQ2XHUwNjRFXHUwNjU2XHUwNjVFXHUwNjY2XHUwNjZFIisKKyAgICAgICAgIlx1MDY3Nlx1MDY3Rlx1MDY4Qlx1MDY5N1x1MDZBM1x1MDZBRlx1MDZCQlx1MDZDN1x1MDZEM1x1MDZERlx1MDZFQlx1MDZGNyIrCisgICAgICAgICJcdTA3MDNcdTA3MEZcdTA3MUJcdTA3MjdcdTA3MzNcdTA3M0ZcdTA3NEJcdTA3NTdcdTA3NjNcdTA3NkZcdTA3N0JcdTA3ODciKworICAgICAgICAiXHUwNzkzXHUwNzlGXHUwN0FCXHUwN0I3XHUwN0MzXHUwN0NGXHUwN0RCXHUwN0U3XHUwN0YzXHUwN0ZGXHUwODBCXHUwODE3IisKKyAgICAgICAgIlx1MDgyM1x1MDgyRlx1MDgzOVx1MDMwMVx1MDI5OVx1MDA5MVx1MDJGMVx1MDJDNVx1MDgzRFx1MDJDRGVpXHUwODQxdSIrCisgICAgICAgICJcdTAyRTlcdTAwQ0RcdTA4NDVcdTAyRERcdTAyRTFcdTAyNzlcdTAyRTVcdTAyRURcdTA4NDlcdTAzQzFcdTA4NERcdTAzRjEiKworICAgICAgICAiXHUwODUxXHUwMDk1XDAyMVx1MDcxMVx1MDI4OVx1MDBBOVx1MDMwNVx1MDc0MVx1MDJDOVx1MDBFNW1xXHUwNzdEfVx1MDQ2OSIrCisgICAgICAgICJcdTAwODk9XHUwN0I5XHUwN0M1XHUwMEVEXHUwMDhEXHUwN0U5XHUwMkI5XHUwNDIxXHUwMEZEXHUwMTM5XHUwMTAxXHUwMEExIisKKyAgICAgICAgIlx1MDI0RFx1QTVBNTRcMDAwXHUwODU1XHVBNUE1XDAyM1wwMDBcdTA4NTlcdUE1QTVcMDE0XDAwMFx1MDg1RFx1MDg2MSIrCisgICAgICAgICJcdTA4NjVcdTA4NjlcdTA4NkRcdTA4NzFcdTA4NzVcdTA4NzlcdTA4N0RcdTA4ODFcdTA4ODVcdTA4ODlcdTA4OERcdTA4OTEiKworICAgICAgICAiXHUwODk1XHUwODk5XHUwODlEXHUwOEExXHUwOEE1XHUwOEE5XHUwOEFEXHUwOEIxXHUwOEI1XHUwOEI5XHUwOEJEXHUwOEMxIisKKyAgICAgICAgIlx1MDhDNVx1MDhDOVx1MDhDRFx1MDhEMVx1MDhENVx1MDhEOVx1MDhERFx1MDhFMVx1MDhFNVx1MDhFOVx1MDhFRFx1MDhGMSIrCisgICAgICAgICJcdTA4RjVcdTA4RjlcdTA4RkRcdTA5MDFcdTA5MDVcdTA5MDlcdTA5MERcdTA5MTFcdTA5MTVcdTA5MTlcdTA5MURcdTA5MjEiKworICAgICAgICAiXHUwOTI1XHUwOTI5XHUwOTJEXHUwOTMxXHUwOTM1XHUwOTM5XHUwOTNEXHUwOTQxXHUwOTQ1XHUwOTQ5XHUwOTREXHUwOTUxIisKKyAgICAgICAgIlx1MDk1NVx1MDk1OVx1MDk1RFx1MDk2MVx1MDk2NVx1MDk2OVx1MDk2RFx1MDk3MVx1MDk3NVx1MDk3OVx1MDk3RFx1MDk4MSIrCisgICAgICAgICJcdTA5ODVcdTA5ODlcdTA5OERcdTA5OTFcdTA5OTVcdTA5OTlcdTA5OURcdTA5QTFcdTA5QTVcdTA5QTlcdTA5QURcdTA5QjEiKworICAgICAgICAiXHUwOUI1XHUwOUI5XHUwOUJEXHUwOUMxXHUwOUM1XHUwOUM5XHUwOUNEXHUwOUQxXHUwOUQ1XHUwOUQ5XHUwOUREXHUwOUUxIisKKyAgICAgICAgIlx1MDlFNVx1MDlFOVx1MDlFRFx1MDlGMVx1MDlGNVx1MDlGOVx1MDlGRFx1MEEwMVx1MEEwNVx1MEEwOVx1MEEwRFx1MEExMSIrCisgICAgICAgICJcdTBBMTVcdTBBMTlcdTBBMURcdTBBMjFcdTBBMjVcdTBBMjlcdTBBMkRcdTBBMzFcdTBBMzVcdTBBMzlcdTBBM0RcdTBBNDEiKworICAgICAgICAiXHUwQTQ1XHUwQTQ5XHUwQTREXHUwQTUxXHUwQTU1XHUwQTU5XHUwQTVEXHUwQTYxXHUwQTY1XHUwQTY5XHUwQTZEXHUwQTcxIisKKyAgICAgICAgIlx1MEE3NVx1MEE3OVx1MEE3RFx1MEE4MVx1MEE4NVx1MEE4OVx1MEE4RFx1MEE5MVx1MEE5NVx1MEE5OVx1MEE5RFx1MEFBMSIrCisgICAgICAgICJcdTBBQTVcdTBBQTlcdTBBQURcdTBBQjFcdTBBQjVcdTBBQjlcdTBBQkRcdTBBQzFcdTBBQzVcdTBBQzlcdTBBQ0RcdTBBRDEiKworICAgICAgICAiXHUwQUQ1XHUwQUQ5XHUwQUREXHUwQUUxXHUwQUU1XHUwQUU5XHUwQUVEXHUwQUYxXHUwQUY1XHUwQUY5XHUwQUZEXHUwQjAxIisKKyAgICAgICAgIlx1MEIwNVx1MEIwOVx1MEIwRFx1MEIxMVx1MEIxNVx1MEIxOVx1MEIxRFx1MEIyMVx1MEIyNVx1MEIyOVx1MEIyRFx1MEIzMSIrCisgICAgICAgICJcdTBCMzVcdTBCMzlcdTBCM0RcdTBCNDFcdTBCNDVcdTBCNDlcdTBCNERcdTBCNTFcdTBCNTVcdTBCNTlcdTBCNURcdTBCNjEiKworICAgICAgICAiXHUwQjY1XHUwQjY5XHUwQjZEXHUwQjcxXHUwQjc1XHUwQjc5XHUwQjdEXHUwQjgxXHUwQjg1XHUwQjg5XHUwQjhEXHUwQjkxIisKKyAgICAgICAgIlx1MEI5NVx1MEI5OVx1MEI5RFx1MEJBMVx1MEJBNVx1MEJBOVx1MEJBRFx1MEJCMVx1QTVBNVwwMTJcMDAwXDAwNVx1QTVBNSIrCisgICAgICAgICI1XDAwMFx1MEJCNVwwMDBcdTA4QjlcdTBCQjlcdTBCQkRcdUE1QTVcMDIxXDAwMFx1NEQ5MlwwMDBcdTREOUFcMDAwXHU0REEyIisKKyAgICAgICAgIlwwMDBcdTREQUFcMDAwXHU0REIyXDAwMFx1NERCQVwwMDBcdTREQzJcMDAwXHU0RENBXDAwMFx1NEREMlwwMDBcdTREREEiKworICAgICAgICAiXDAwMFx1NERFMlwwMDBcdTRERUFcMDAwXDAwMFx1NERGMlwwMDBcdTRERkFcMDAwXHU0RTAyXHVBNUE1XDAwNlwwMDBcdTRFMEEiKworICAgICAgICAiXHU0RTEyXDAwMFx1NEUxQVx1NEUyMlwwMDBcdTRFMkFcdTRFMzJcMDAwXHU0RTNBXHU0RTQyXDAwMFx1NEU0QVx1NEU1MiIrCisgICAgICAgICJcdUE1QTVcMDI2XDAwMFx1NEU1QVx1QTVBNVwwMDZcMDAwXHUwQkMyXHUwQkNBXDAwMFx1NEU2Mlx1QTVBNVwwMTVcMDAwIisKKyAgICAgICAgIlx1NEU2QVwwMDBcdTRFNzJcMDAwXHU0RTdBXDAwMFx1NEU4MlwwMDBcdTRFOEFcMDAwXHU0RTkyXDAwMFx1NEU5QVwwMDAiKworICAgICAgICAiXHU0RUEyXDAwMFx1NEVBQVwwMDBcdTRFQjJcMDAwXHU0RUJBXDAwMFx1NEVDMlwwMDBcMDAwXHU0RUNBXDAwMFx1NEVEMiIrCisgICAgICAgICJcMDAwXHU0RURBXHVBNUE1XDAwNlwwMDBcdTRFRTJcdTRFRUFcMDAwXHU0RUYyXHU0RUZBXDAwMFx1NEYwMlx1NEYwQVwwMDAiKworICAgICAgICAiXHU0RjEyXHU0RjFBXDAwMFx1NEYyMlx1NEYyQVx1QTVBNVwwMjZcMDAwXHU0RjMyXDAwMFwwMDBcdTRGM0FcdTRGNDJcdTRGNEEiKworICAgICAgICAiXHU0RjUyXDAwMFwwMDBcMDAwXHU0RjVBXHVBNUE1XDAyMlwwMDBcdTBCRDFcdTBCRDVcdTBCRDlcdTBCRERcdTBCRTFcdTBCRTUiKworICAgICAgICAiXHUwQkU5XHUwQkVEXHUwQkYxXHUwQkY1XHUwQkY5XHUwQkZEXHUwQzAxXHUwQzA1XHUwQzA5XHUwQzBEXHUwQzExXHUwQzE1IisKKyAgICAgICAgIlx1MEMxOVx1MEMxRFx1MEMyMVx1MEMyNVx1MEMyOVx1MEMyRFx1MEMzMVx1MEMzNVx1MEMzOVx1MEMzRFx1MEM0MVx1MEM0NSIrCisgICAgICAgICJcdTBDNDlcdTBDNERcdTBDNTFcdTBDNTVcdTBDNTlcdTBDNURcdTBDNjFcdTBDNjVcdTBDNjlcdTBDNkRcdTBDNzFcdTBDNzUiKworICAgICAgICAiXHUwQzc5XHUwQzdEXHUwQzgxXHUwQzg1XHUwQzg5XHUwQzhEXHUwQzkxXHUwQzk1XHUwQzk5XHUwQzlEXHUwQ0ExXHUwQ0E1IisKKyAgICAgICAgIlx1MENBOVx1MENBRFx1MENCMVx1MENCNVx1MENCOVx1MENCRFx1MENDMVx1MENDNVx1MENDOVx1MENDRFx1MENEMVx1MENENSIrCisgICAgICAgICJcdTBDRDlcdTBDRERcdTBDRTFcdTBDRTVcdTBDRTlcdTBDRURcdTBDRjFcdTBDRjVcdTBDRjlcdTBDRkRcdTBEMDFcdTBEMDUiKworICAgICAgICAiXHUwRDA5XHUwRDBEXHUwRDExXHUwRDE1XHUwRDE5XHUwRDFEXHUwRDIxXHUwRDI1XHUwRDI5XHUwRDJEXHUwRDMxXHUwRDM1IisKKyAgICAgICAgIlx1MEQzOVx1MEQzRFx1MEQ0MVx1MEQ0NVwwMDBcMDAwXDAwMFx1MDg1RFx1MDg3NVx1MEQ0OVx1MEQ0RFx1MEQ1MVx1MEQ1NSIrCisgICAgICAgICJcdTBENTlcdTBENURcdTA4NkRcdTBENjFcdTBENjVcdTBENjlcdTBENkRcdTA4N0RcdTBENzNcdTBEN0ZcdTBEOEJcdTBEOTciKworICAgICAgICAiXHUwREEzXHUwREFGXHUwREJCXHUwREM3XHUwREQzXHUwRERGXHUwREVCXHUwREY3XHUwRTAzXHUwRTBGXHUwRTE4XHUwRTJDIisKKyAgICAgICAgIlx1MEU0MFx1MEU1NFx1MEU2OFx1MEU3Q1x1MEU5MFx1MEVBNFx1MEVCOFx1MEVDQ1x1MEVFMFx1MEVGNFx1MEYwOFx1MEYxQyIrCisgICAgICAgICJcdTBGMzBcMDAwXDAwMFwwMDBcdTBGNDdcdTBGNTNcdTBGNUZcdTBGNkJcdTBGNzdcdTBGODNcdTBGOEZcdTBGOUJcdTBGQTciKworICAgICAgICAiXHUwRkIzXHUwRkJGXHUwRkNCXHUwRkQ3XHUwRkUzXHUwRkVGXHUwRkZCXHUxMDA3XHUxMDEzXHUxMDFGXHUxMDJCXHUxMDM3IisKKyAgICAgICAgIlx1MTA0M1x1MTA0Rlx1MTA1Qlx1MTA2N1x1MTA3M1x1MTA3Rlx1MTA4Qlx1MTA5N1x1MTBBM1x1MTBBRlx1MTBCQlx1MTBDNyIrCisgICAgICAgICJcdTEwRDNcdTEwREZcdTEwRUJcdUE1QTVcMDM0XDAwMFx1MEJEMVx1MEJERFx1MEJFOVx1MEJGMVx1MEMxMVx1MEMxNVx1MEMyMSIrCisgICAgICAgICJcdTBDMjlcdTBDMkRcdTBDMzVcdTBDMzlcdTBDM0RcdTBDNDFcdTBDNDVcdTBFMUVcdTBFMzJcdTBFNDZcdTBFNUFcdTBFNkUiKworICAgICAgICAiXHUwRTgyXHUwRTk2XHUwRUFBXHUwRUJFXHUwRUQyXHUwRUU2XHUwRUZBXHUwRjBFXHUwQzQ2XHVBNUE1XDAwNFwwMDBcdTA4NUQiKworICAgICAgICAiXHUwODc1XHUwRDQ5XHUwRDREXHUwRjc5XHUwRjg1XHUwRjkxXHUwODg5XHUwRkE5XHUwOEI5XHUwOTgxXHUwOUIxXHUwOUFEIisKKyAgICAgICAgIlx1MDk4NVx1MEFGNVx1MDhEOVx1MDk3OVx1MTAxNVx1MTAyMVx1MTAyRFx1MTAzOVx1MTA0NVx1MTA1MVx1MTA1RFx1MTA2OSIrCisgICAgICAgICJcdTEwRjVcdTEwRjlcdTA4RjFcdTEwRkRcdTExMDFcdTExMDVcdTExMDlcdTExMERcdTEwRDVcdTExMTFcdTExMTVcdTBENTEiKworICAgICAgICAiXHUwRDU1XHUwRDU5XHUxMTE5XHUxMTFEXHUxMTIxXHUxMTI1XHUxMDhEXHUxMDk5XHUxMEE1XHUxMEIxXHUxMEJEXHUxMTI5IisKKyAgICAgICAgIlx1QTVBNVwwMTdcMDAwXHUxMTJFXHUxMTM2XHUxMTNFXHUxMTQ2XHUxMTRFXHUxMTU2XHUxMTVFXHUxMTY2XHUxMTZFXHUxMTc3IisKKyAgICAgICAgIlx1MTE4M1x1MTE4Rlx1QTVBNVwwMDRcMDAwXHUxMTk5XHUxMTlEXHUxMUExXHUxMUE1XHUxMUE5XHUxMUFEXHUxMUIxXHUxMUI1IisKKyAgICAgICAgIlx1MTFCOVx1MTFCRFx1MTFDMVx1MTFDNVx1MTFDOVx1MTFDRFx1MTFEMVx1MTFENVx1MTFEOVx1MTFERFx1MTFFMVx1MTFFNSIrCisgICAgICAgICJcdTExRTlcdTExRURcdTExRjFcdTExRjVcdTExRjlcdTExRkRcdTEyMDFcdTEyMDVcdTEyMDlcdTEyMERcdTEyMTFcdTEyMTUiKworICAgICAgICAiXHUxMjE5XHUxMjFEXHUxMjIxXHUxMjI1XHUxMjI5XHUxMjJEXHUxMjMxXHUxMjM1XHUxMjM5XHUxMjNEXHUxMjQxXHUxMjQ1IisKKyAgICAgICAgIlx1MTI0OVx1MTI0RFx1MTI1MVwwMDBcdTEyNTRcdTEyNkNcdTEyODBcdTEyOUJcdTEyQTRcdTEyQkZcdTEyQ0JcdTEyRDQiKworICAgICAgICAiXHUxMkYwXHUxMzA3XHUxMzEzXHUxMzFGXHUxMzI4XHUxMzNDXHUxMzUwXHUxMzY0XHUxMzc4XHUxMzhDXHUxM0EwXHUxM0I0IisKKyAgICAgICAgIlx1MTNEMlx1MTNEOFx1MTNGNFx1MTQxMFx1MTNFMFx1MTQyOFx1MTQ0NFx1MTQ2MFx1MTQ3N1x1MTQ4M1x1MTQ4Q1x1MTRBMCIrCisgICAgICAgICJcdTE0QjRcdTE0Q0NcdTE0RTdcdTE0RjNcdTE0RkNcdTE1MTNcdTE1MUZcdTE0M0FcdTE1MkFcdTE1MzNcdTE1M0ZcdTE1NDgiKworICAgICAgICAiXHUxNTY0XHUxNTc4XHUxNTkwXHUxNUFDXHUxNUMzXHUxNUNGXHUxNUQ4XHUxNUY0XHUxNjA4XHUxNjI3XHUxNjMwXHUxNjRCIisKKyAgICAgICAgIlx1MTY1NFx1MTY2Qlx1MTY3NFx1MTY4OFx1MTZBMFx1MTZCNFx1MTZDQ1x1MTZFMlx1MTZFOFx1MTcwM1x1MTcwRlx1MTcxOCIrCisgICAgICAgICJcdTE3MkZcdTE3M0JcdTE3NDdcdTE3NTBcdTE3NjhcdTE3N0VcdTE3ODRcdTE3QTNcdTE3QUNcdTEzRkNcdTE3QzRcdTE3REIiKworICAgICAgICAiXHUxN0U3XHUxN0YwXHUxODA2XHUxODBDXHUxODIwXHUxODNBXHUxODQwXHUxNDFCXHUxODVFXHUxODY2XHUxODZFXHUxODc2IisKKyAgICAgICAgIlx1MTg3RVx1MTg4Nlx1MTg4RVx1MTg5Nlx1MTg5RVx1MThBNlx1MThBRlx1MThCQlx1MThDN1x1MThEM1x1MThERlx1MThFQiIrCisgICAgICAgICJcdTE4RjdcdTE5MDNcdTE5MEZcdTE5MUJcdTE5MjdcdTE5MzNcdTE5M0ZcdTE5NEJcdTE5NTdcdTE5NjNcdTE5NkVcdTE5NzYiKworICAgICAgICAiXHUxOTdGXHUxOThBXHUxOTkyXHVBNUE1XDAwNFwwMDBcdTE5OUFcdTE5QTJcdTE5QUFcdTE5QjJcdTE5QjhcdTE5Q0VcdTE5RDYiKworICAgICAgICAiXHUxOURFXHUxOUU2XHUxOUVFXHUxOUY2XHUwMkZFXHUxOUZFXHUxQTA3XHUxQTEwXHUxQTI2XHUxQTJFXHUxQTM2XHUxQTNFIisKKyAgICAgICAgIlx1MUE0Nlx1MUE0RVx1MUE1Nlx1MUE1Rlx1MUE2Qlx1MUE3N1x1MUE4M1x1MUE4RVx1MUE5Nlx1MUE5RVx1MUFBNlx1MUFBRSIrCisgICAgICAgICJcdTFBQjZcdTFBQkVcdTFBQzZcdTFBQ0VcdTFBRDZcdTFBREZcdTFBRUJcdTFBRTJcdTFBRjdcdTFCMDNcdTFCMEZcdTFCMDYiKworICAgICAgICAiXHUxQjFCXHUxQjI3XHUxQjMwXHUxOTY2XHUxQjQ3XHUxQjUzXHUxQjVGXHUxQjZCXHUxQjc0XHUxQjhDXHUxQkFBXHUwMDhBIisKKyAgICAgICAgIlx1MUJCMlx1MUJCQVx1MUJDMlx1MUJDQVx1MUJEMlx1MUJEQVx1MUJFMlx1MUJFQVx1MUJGMlx1MUJGQVx1MUMwMlx1MUMwQSIrCisgICAgICAgICJcdTFDMTJcdTFDMUFcdTFDMjJcdTFDMkFcdTFDMzBcdTFDNDZcdTFDNEVcdTFDNTZcdTFDNUNcdTFDNzNcdTFDN0VcdTFDODYiKworICAgICAgICAiXHUxQzhFXHUxQzk2XHUxQzlFXHUxQ0E2XHUxQ0FFXHUxQ0I2XHUxQTkyXHUxQ0JFXHUxQ0M3XHUxQ0QyXHUxQ0RBXHUxQ0UzIisKKyAgICAgICAgIlx1MUNFRlx1MUNGQVx1MUQwMFx1MUQxN1x1MUQyMlx1MUQyQVx1MUQzMlx1MUQzQVwwMDBcMDAwXHUxRDQyXHUxRDRBXHUxRDUyIisKKyAgICAgICAgIlx1MUQ1QVx1MUQ2Mlx1MUQ2QVx1MUQ3Mlx1MUQ3QVx1MUQ4Mlx1MUQ4Qlx1MUQ5N1x1MURBM1x1MURBRlx1MURCQlx1MURDNyIrCisgICAgICAgICJcdTFERDNcdTFEREZcdTFERUJcdTFERjdcdTFFMDNcdTFFMEZcdTFFMUJcdTFFMjdcdTFFMzNcdTFFM0ZcdTFFNEJcdTFFNTciKworICAgICAgICAiXHUxRTYzXHUxRTZGXHUxRTdCXHUxRTg3XDAwMFx1NEY2MVx1NEY2NVx1NEY2OVx1NEY2RFx1NEY3MVx1NEY3NVx1NEY3OSIrCisgICAgICAgICJcdTRGN0RcdTRGODFcdTRGODVcdTRGODlcdTRGOERcdTRGOTFcdTRGOTVcdTRGOTlcdTRGOURcdTRGQTFcdTRGQTVcdTRGQTkiKworICAgICAgICAiXHU0RkFEXHU0RkIxXHU0RkI1XHU0RkI5XHU0RkJEXHU0RkMxXHU0RkM1XHU0RkM5XHU0RkNEXHU0RkQxXHU0RkQ1XHU0RkQ5IisKKyAgICAgICAgIlx1NEZERFx1NEZFMVx1NEZFNVx1NEZFOVx1NEZFRFx1NEZGMVx1NEZGNVx1NEZGOVx1NEZGRFx1NTAwMVx1NTAwNVx1NTAwOSIrCisgICAgICAgICJcdTUwMERcdTUwMTFcdTUwMTVcdTUwMTlcdTUwMURcdTUwMjFcdTUwMjVcdTUwMjlcdTUwMkRcdTUwMzFcdTUwMzVcdTUwMzkiKworICAgICAgICAiXHU1MDNEXHU1MDQxXHU1MDQ1XHU1MDQ5XHU1MDREXHU1MDUxXHU1MDU1XHU1MDU5XHU1MDVEXHU1MDYxXHU1MDY1XHU1MDY5IisKKyAgICAgICAgIlx1NTA2RFx1NTA3MVx1NTA3NVx1NTA3OVx1NTA3RFx1NTA4MVx1NTA4NVx1NTA4OVx1NTA4RFx1NTA5MVx1NTA5NVx1NTA5OSIrCisgICAgICAgICJcdTUwOURcdTUwQTFcdTUwQTVcdTUwQTlcdTUwQURcdTUwQjFcdTUwQjVcdTUwQjlcdTUwQkRcdTUwQzFcdTUwQzVcdTUwQzkiKworICAgICAgICAiXHU1MENEXHU1MEQxXHU1MEQ1XHU1MEQ5XHU1MEREXHU1MEUxXHU1MEU1XHU1MEU5XHU1MEVEXHU1MEYxXHU1MEY1XHU1MEY5IisKKyAgICAgICAgIlx1NTBGRFx1NTEwMVx1NTEwNVx1NTEwOVx1NTEwRFx1NTExMVx1NTExNVx1NTExOVx1NTExRFx1NTEyMVx1NTEyNVx1NTEyOSIrCisgICAgICAgICJcdTUxMkRcdTUxMzFcdTUxMzVcdTUxMzlcdTUxM0RcdTUxNDFcdTUxNDVcdTUxNDlcdTUxNERcdTUxNTFcdTUxNTVcdTUxNTkiKworICAgICAgICAiXHU1MTVEXHU1MTYxXHU1MTY1XHU1MTY5XHU1MTZEXHU1MTcxXHU1MTc1XHU1MTc5XHU1MTdEXHU1MTgxXHU1MTg1XHU1MTg5IisKKyAgICAgICAgIlx1NTE4RFx1NTE5MVx1NTE5NVx1NTE5OVx1NTE5RFx1NTFBMVx1NTFBNVx1NTFBOVx1NTFBRFx1NTFCMVx1NTFCNVx1NTFCOSIrCisgICAgICAgICJcdTUxQkRcdTUxQzFcdTUxQzVcdTUxQzlcdTUxQ0RcdTUxRDFcdTUxRDVcdTUxRDlcdTUxRERcdTUxRTFcdTUxRTVcdTUxRTkiKworICAgICAgICAiXHU1MUVEXHU1MUYxXHU1MUY1XHU1MUY5XHU1MUZEXHU1MjAxXHU1MjA1XHU1MjA5XHU1MjBEXHU1MjExXHU1MjE1XHU1MjE5IisKKyAgICAgICAgIlx1NTIxRFx1NTIyMVx1NTIyNVx1NTIyOVx1NTIyRFx1NTIzMVx1NTIzNVx1NTIzOVx1NTIzRFx1NTI0MVx1NTI0NVx1NTI0OSIrCisgICAgICAgICJcdTUyNERcdTUyNTFcdTUyNTVcdTUyNTlcdTUyNURcdTUyNjFcdTUyNjVcdTUyNjlcdTUyNkRcdTUyNzFcdTUyNzVcdTUyNzkiKworICAgICAgICAiXHU1MjdEXHU1MjgxXHU1Mjg1XHU1Mjg5XHU1MjhEXHU1MjkxXHU1Mjk1XHU1Mjk5XHU1MjlEXHU1MkExXHU1MkE1XHU1MkE5IisKKyAgICAgICAgIlx1NTJBRFx1NTJCMVx1NTJCNVx1NTJCOVx1NTJCRFx1NTJDMVx1NTJDNVx1NTJDOVx1NTJDRFx1NTJEMVx1NTJENVx1NTJEOSIrCisgICAgICAgICJcdTUyRERcdTUyRTFcdTUyRTVcdTUyRTlcdTUyRURcdTUyRjFcdTUyRjVcdTUyRjlcdTUyRkRcdTUzMDFcdTUzMDVcdTUzMDkiKworICAgICAgICAiXHU1MzBEXHU1MzExXHU1MzE1XHU1MzE5XHU1MzFEXHU1MzIxXHU1MzI1XHU1MzI5XHU1MzJEXHU1MzMxXHU1MzM1XHU1MzM5IisKKyAgICAgICAgIlx1NTMzRFx1NTM0MVx1NTM0NVx1NTM0OVx1NTM0RFx1NTM1MVx1NTM1NVx1NTM1OVx1NTM1RFx1NTM2MVx1NTM2NVx1NTM2OSIrCisgICAgICAgICJcdTUzNkRcdTUzNzFcdTUzNzVcdTUzNzlcdTUzN0RcdTUzODFcdTUzODVcdTUzODlcdTUzOERcdTUzOTFcdTUzOTVcMDAwIisKKyAgICAgICAgIlwwMDBcdTUzOTlcMDAwXHU1MzlEXDAwMFwwMDBcdTUzQTFcdTUzQTVcdTUzQTlcdTUzQURcdTUzQjFcdTUzQjVcdTUzQjkiKworICAgICAgICAiXHU1M0JEXHU1M0MxXHU1M0M1XDAwMFx1NTNDOVwwMDBcdTUzQ0RcMDAwXDAwMFx1NTNEMVx1NTNENVwwMDBcMDAwXDAwMCIrCisgICAgICAgICJcdTUzRDlcdTUzRERcdTUzRTFcdTUzRTVcdUE1QTVcMDIyXDAwMFx1MUU5Mlx1MUU5QVx1MUVBMlx1MUU5N1x1MUVBQlx1MUVCNiIrCisgICAgICAgICJcdTFFQjZcdUE1QTVcMDE0XDAwMFx1MUVCRVx1MUVDNlx1MUVDRVx1MUVENlx1MUVERVx1QTVBNVwwMDVcMDAwXHU1M0VBIisKKyAgICAgICAgIlwwMDBcdTUzRjJcdTFFRTVcdTAzMDlcdTAzMTVcdTFFRTlcdTFFRURcdTFFRjFcdTFFRjVcdTFFRjlcdTFFRkRcdTAyNjUiKworICAgICAgICAiXHU1M0ZBXHU1NDAyXHU1NDBCXHU1NDE3XHU1NDIyXHU1NDJBXHU1NDMyXHU1NDNBXHU1NDQyXHU1NDRBXHU1NDUyXHU1NDVBIisKKyAgICAgICAgIlx1NTQ2MlwwMDBcdTU0NkFcdTU0NzJcdTU0N0FcdTU0ODJcdTU0OEFcMDAwXHU1NDkyXDAwMFx1NTQ5QVx1NTRBMlwwMDAiKworICAgICAgICAiXHU1NEFBXHU1NEIyXDAwMFx1NTRCQVx1NTRDMlx1NTRDQVx1NTREMlx1NTREQVx1NTRFMlx1NTRFQVx1NTRGMlx1NTRGQSIrCisgICAgICAgICJcdTFGMDJcdTFGMDlcdTFGMDlcdUE1QTVcMDA0XHUxRjBEXHVBNUE1XDAwNFx1MUYxMVx1QTVBNVwwMDRcdTFGMTVcdUE1QTUiKworICAgICAgICAiXDAwNFx1MUYxOVx1QTVBNVwwMDRcdTFGMURcdUE1QTVcMDA0XHUxRjIxXHVBNUE1XDAwNFx1MUYyNVx1QTVBNVwwMDRcdTFGMjkiKworICAgICAgICAiXHVBNUE1XDAwNFx1MUYyRFx1QTVBNVwwMDRcdTFGMzFcdUE1QTVcMDA0XHUxRjM1XHVBNUE1XDAwNFx1MUYzOVx1MUYzRCIrCisgICAgICAgICJcdTFGM0RcdTFGNDFcdTFGNDFcdTFGNDVcdTFGNDVcdTFGNDlcdTFGNDlcdTFGNERcdTFGNERcdTFGNTFcdTFGNTFcdUE1QTUiKworICAgICAgICAiXDAwNFx1MUY1NVx1QTVBNVwwMDRcdTFGNTlcdUE1QTVcMDA0XHUxRjVEXHVBNUE1XDAwNFx1MUY2MVx1MUY2NVx1MUY2NSIrCisgICAgICAgICJcdUE1QTVcMDA0XHUxRjY5XHUxRjZFXHUxRjZFXHVBNUE1XDAwNFx1MUY3NVx1QTVBNVwwMDRcdTFGNzlcdTFGN0RcdTFGN0QiKworICAgICAgICAiXHUxRjgyXHUxRjgyXHVBNUE1IVwwMDBcdUE1QTVcMDA0XHUxRjg5XHUwMTgxXHUwMTgxXHUxRjhEXHUxRjhEXHUxRjkxIisKKyAgICAgICAgIlx1MUY5MVx1MDE4Mlx1MUY5NVx1MUY5NVx1MUY5OVx1MUY5OVx1MUY5RFx1MUY5RFx1QTVBNVwwMDRcdTFGQTFcdTFGQTUiKworICAgICAgICAiXHUxRkE1XHUxRkFCXHUxRkFCXHUxRkI3XHUxRkI3XHUxRkMzXHUxRkMzXHUxRkNGXHUxRkNGXHUxRkRCXHUxRkRCXHUxRkU3IisKKyAgICAgICAgIlx1MUZFN1x1MUZGM1x1MUZGM1x1MUZGM1x1MUZGRlx1MUZGRlx1MUZGRlx1QTVBNVwwMDRcdTIwMDlcdTIwMEZcdTIwMUIiKworICAgICAgICAiXHUyMDI3XHUxRkZGXHUyMDMzXHUyMDNFXHUyMDQ2XHUyMDRFXHUyMDU2XHUyMDVFXHUyMDY2XHUyMDZFXHUyMDc2XHUyMDdFIisKKyAgICAgICAgIlx1MjA4Nlx1MjA4RVx1MjA5Nlx1MjA5RVx1MjBBNlx1MjBBRVx1MjBCNlx1MjBCRVx1MjBDNlx1MjBDMlx1MjBDRVx1MjBENiIrCisgICAgICAgICJcdTIwREVcdTIwRTZcdTIwRUVcdTIwRjZcdTIwRkVcdTIxMDZcdTIxMEVcdTIxMTZcdTIxMUVcdTIxMjZcdTIxMkVcdTIxMzYiKworICAgICAgICAiXHUyMTNFXHUyMTQ2XHUyMTRFXHUyMTU2XHUyMTVFXHUyMTY2XHUyMTZFXHUyMTc2XHUyMTdFXHUyMTg2XHUyMThFXHUyMTk2IisKKyAgICAgICAgIlx1MjE5RVx1MjFBNlx1MjFBRVx1MjFCNlx1MjFCRVx1MjFDNlx1MjFDRVx1MjFENlx1MjFERVx1MjFFNlx1MjFFRVx1MjFGNiIrCisgICAgICAgICJcdTIxRkVcdTIyMDZcdTIyMEVcdTIyMTZcdTIyMUVcdTIyMjZcdTIyMkVcdTIyMzZcdTIwQ0FcdTIwRDJcdTIyM0VcdTIyNDYiKworICAgICAgICAiXHUyMDJFXHUyMjRFXHUyMjU2XHUyMjVFXHUyMjY2XHUyMjZFXHUyMjc2XHUyMjdFXHUyMjg2XHUyMjhFXHUyMjk2XHUyMEJBIisKKyAgICAgICAgIlx1MjI5RVx1MjJBNlx1MjIzMlx1MjJBRVx1MjI5QVx1MjJCNlx1MjJCRVx1MjJDNlx1MjJDRlx1MjJEQlx1MjJFN1x1MjJGMyIrCisgICAgICAgICJcdTIyRkZcdTIzMEJcdTIzMTdcdTIzMjNcdTIwMjdcdTIzMkZcdTFGRkZcdTIwMzNcdTIzM0FcdTIzNDJcdTIwNTZcdTIzNEEiKworICAgICAgICAiXHUyMDVFXHUyMDY2XHUyMzUyXHUyMzVBXHUyMDg2XHUyMzYyXHUyMDhFXHUyMDk2XHUyMzZBXHUyMzcyXHUyMEE2XHUyMzdBIisKKyAgICAgICAgIlx1MjBBRVx1MjBCNlx1MjE5Nlx1MjE5RVx1MjFCNlx1MjFCRVx1MjFDNlx1MjFFNlx1MjFFRVx1MjFGNlx1MjFGRVx1MjIxRSIrCisgICAgICAgICJcdTIyMjZcdTIyMkVcdTIzODJcdTIyM0VcdTIzOEFcdTIzOTJcdTIyNjZcdTIzOUFcdTIyNkVcdTIyNzZcdTIyQzZcdTIzQTIiKworICAgICAgICAiXHUyM0FBXHUyMjMyXHUyM0IyXHUyMkFFXHUyMjlBXHUyMDBGXHUyMDFCXHUyM0JCXHUyMDI3XHUyM0M3XHUyMDNFXHUyMDQ2IisKKyAgICAgICAgIlx1MjA0RVx1MjA1Nlx1MjNEMlx1MjA2RVx1MjA3Nlx1MjA3RVx1MjA4Nlx1MjNEQVx1MjBBNlx1MjBCRVx1MjBDNlx1MjBDMiIrCisgICAgICAgICJcdTIwQ0VcdTIwRDZcdTIwRTZcdTIwRUVcdTIwRjZcdTIwRkVcdTIxMDZcdTIxMEVcdTIzRTJcdTIxMTZcdTIxMUVcdTIxMjYiKworICAgICAgICAiXHUyMTJFXHUyMTM2XHUyMTNFXHUyMTRFXHUyMTU2XHUyMTVFXHUyMTY2XHUyMTZFXHUyMTc2XHUyMTdFXHUyMTg2XHUyMThFIisKKyAgICAgICAgIlx1MjFBNlx1MjFBRVx1MjFDRVx1MjFENlx1MjFERVx1MjFFNlx1MjFFRVx1MjIwNlx1MjIwRVx1MjIxNlx1MjIxRVx1MjNFQSIrCisgICAgICAgICJcdTIyMzZcdTIwQ0FcdTIwRDJcdTIyM0VcdTIyNEVcdTIyNTZcdTIyNUVcdTIyNjZcdTIzRjJcdTIyN0VcdTIyODZcdTIzRkEiKworICAgICAgICAiXHUyMEJBXHUyMjlFXHUyMkE2XHUyMjMyXHUyMjdBXHUyMDI3XHUyM0M3XHUyMDU2XHUyM0QyXHUyMDg2XHUyM0RBXHUyMEE2IisKKyAgICAgICAgIlx1MjQwMlx1MjEwNlx1MjQwQVx1MjQxMlx1MjQxQVx1MjFFNlx1MjFFRVx1MjIxRVx1MjI2Nlx1MjNGMlx1MjIzMlx1MjI3QSIrCisgICAgICAgICJcdTI0MjNcdTI0MkZcdTI0M0JcdTI0NDZcdTI0NEVcdTI0NTZcdTI0NUVcdTI0NjZcdTI0NkVcdTI0NzZcdTI0N0VcdTI0ODYiKworICAgICAgICAiXHUyNDhFXHUyNDk2XHUyMDIyXHUyNDlFXHUyMDE2XHUyNEE2XHUyMkFBXHUyNEFFXHUyNEI2XHUyNEJFXHUyNEM2XHUyNENFIisKKyAgICAgICAgIlx1MjRENlx1MjRERVx1MjQxMlx1MjRFNlx1MjRFRVx1MjRGNlx1MjRGRVx1MjQ0Nlx1MjQ0RVx1MjQ1Nlx1MjQ1RVx1MjQ2NiIrCisgICAgICAgICJcdTI0NkVcdTI0NzZcdTI0N0VcdTI0ODZcdTI0OEVcdTI0OTZcdTIwMjJcdTI0OUVcdTIwMTZcdTI0QTZcdTIyQUFcdTI0QUUiKworICAgICAgICAiXHUyNEI2XHUyNEJFXHUyNEM2XHUyNENFXHUyNEQ2XHUyNERFXHUyNDEyXHUyNEU2XHUyNEVFXHUyNEY2XHUyNEZFXHUyNENFIisKKyAgICAgICAgIlx1MjRENlx1MjRERVx1MjQxMlx1MjQwQVx1MjQxQVx1MjE0Nlx1MjBFRVx1MjBGNlx1MjBGRVx1MjRDRVx1MjRENlx1MjRERSIrCisgICAgICAgICJcdTIxNDZcdTIxNEVcdTI1MDZcdTI1MDZcdUE1QTVcMDIyXDAwMFx1MjUwRlx1MjUxQlx1MjUxQlx1MjUyN1x1MjUzM1x1MjUzRiIrCisgICAgICAgICJcdTI1NEJcdTI1NTdcdTIwQzdcdTIwQzdcdTI1NjNcdTI1NkZcdTI1N0JcdTI1ODdcdTI1OTNcdTI1OUZcdTI1OUZcdTI1QUIiKworICAgICAgICAiXHUyNUI3XHUyNUI3XHUyNUMzXHUyNUMzXHUyNUNGXHUyNURCXHUyNURCXHUyNUU3XHUyNUYzXHUyNUYzXHUyNUZGXHUyNUZGIisKKyAgICAgICAgIlx1MjYwQlx1MjYxN1x1MjYxN1x1MjYyM1x1MjYyM1x1MjYyRlx1MjYzQlx1MjY0N1x1MjY1M1x1MjY1M1x1MjY1Rlx1MjY2QiIrCisgICAgICAgICJcdTI2NzdcdTI2ODNcdTI2OEZcdTI2OEZcdTI2OUJcdTI2QTdcdTI2QjNcdTI2QkZcdTI2Q0JcdTI2RDdcdTI2RDdcdTI2RTMiKworICAgICAgICAiXHUyNkUzXHUyNkVGXHUyNkVGXHUyNkZCXHUyMENCXHUyNzA3XHUyNzEzXHUyMjM3XHUyMEQzXHUyNzFGXDAwMFwwMDBcdTI3MkIiKworICAgICAgICAiXHUyNzM3XHUyNzQzXHUyNzRGXHUyNzVCXHUyNzY3XHUyNzY3XHUyNzczXHUyNzdGXHUyNzhCXHUyNzk3XHUyNzk3XHUyN0EzIisKKyAgICAgICAgIlx1MjdBRlx1MjdCQlx1MjdDN1x1MjdEM1x1MjdERlx1MjdFQlx1MjdGN1x1MjgwM1x1MjgwRlx1MjgxQlx1MjgyN1x1MjgzMyIrCisgICAgICAgICJcdTI4M0ZcdTI4NEJcdTI4NTdcdTIyOUZcdTI4NjNcdTI4NkZcdTI4N0JcdTI4ODdcdTI4OTNcdTI2OUJcdTI2QjNcdTI4OUYiKworICAgICAgICAiXHUyOEFCXHUyOEI3XHUyOEMzXHUyOENGXHUyOERCXHUyOENGXHUyOEI3XHUyOEU3XHUyOEYzXHUyOEZGXHUyOTBCXHUyOTE3IisKKyAgICAgICAgIlx1MjhEQlx1MjY0N1x1MjVDRlx1MjkyM1x1MjkyRlx1QTVBNShcMDAwXHUyOTNCXHUyOTQ3XHUyOTUwXHUyOTY0XHUyOTc4IisKKyAgICAgICAgIlx1Mjk4Q1x1MjlBMFx1MjlCNFx1MjlDOFx1MjlERlx1MjlFOFx1MkEzNFx1QTVBNVwwMjRcMDAwXHUwMUZBXHUyQTU5XHUyQTVEIisKKyAgICAgICAgIlx1MkE2MVx1MkE2MVx1MDI3MVx1MDI3NVx1MkE2NVx1MkE2OVx1MkE2RFx1MkE3MVx1MkE3NVx1MkE3OVx1MkE3RFx1MkE4MSIrCisgICAgICAgICJcdTJBODVcdTJBODlcdTJBOERcdTJBOTFcdTJBOTVcdTJBOTlcdUE1QTVcMDA0XDAwMFx1QTVBNVwwMDRcdTAyMzZcdTJBNjEiKworICAgICAgICAiXHUyQTYxXHUyQTYxXHUyQTlEXHUyQUExXHUwMUY5XDAwMFx1MkFBNVx1MkFBOVx1MDIzRFx1MDIyRFx1MkE1OVx1MDI3MSIrCisgICAgICAgICJcdTAyNzVcdTJBNjVcdTJBNjlcdTJBNkRcdTJBNzFcdTJBQURcdTJBQjFcdTJBQjVcdTAyNjVcdTJBQjlcdTJBQkRcdTJBQzEiKworICAgICAgICAiXHUwMjZEXDAwMFx1MkFDNVx1MkFDOVx1MkFDRFx1MkFEMVx1QTVBNVwwMDRcMDAwXHUyQUQ2XHUyQURFXHUyMkNFXDAwMCIrCisgICAgICAgICJcdTIyREFcMDAwXHUyMkU2XHUyNDIyXHUyMkYyXHUyNDJFXHUyMkZFXHUyNDNBXHUyMzBBXHUyQUU2XHUyQUVFXHUyQUY2IisKKyAgICAgICAgIlx1MkFGRFx1MkIwMlx1MkIwMlx1MkIwQVx1MkIwQVx1MkIxMlx1MkIxMlx1MkIxQVx1MkIxQVx1QTVBNVwwMDRcdTFGQUEiKworICAgICAgICAiXHUwMTcxXHUwMTcxXHVBNUE1XDAwNFx1MjAzRFx1MkIyMVx1MkIyMVx1QTVBNVwwMDRcdTIwNkRcdUE1QTVcMDA0XHUyMDlEIisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTIwMTVcdUE1QTVcMDA0XHUyMDIxXHVBNUE1XDAwNFx1MjA1MVx1Mjk4NVx1Mjk4NVx1MjJCNVx1MjJCNSIrCisgICAgICAgICJcdTIyQkRcdTIyQkRcdTIzMjlcdTIzMjlcdUE1QTVcMDA0XHUyMEVEXHVBNUE1XDAwNFx1MjQxMVx1QTVBNVwwMDRcdTIxMEQiKworICAgICAgICAiXHVBNUE1XDAwNFx1MjExRFx1QTVBNVwwMDRcdTIxM0RcdUE1QTVcMDA0XHUyMTREXHVBNUE1XDAwNFx1MjE1NVx1QTVBNSIrCisgICAgICAgICJcMDA0XHUyMTY1XHVBNUE1XDAwNFx1MjE3NVx1QTVBNVwwMDRcdTIxQTVcdUE1QTVcMDA0XHUyMUM1XHVBNUE1XDAwNFx1MjFFOSIrCisgICAgICAgICJcdUE1QTVcMDA0XHUyMDJEXHVBNUE1XDAwNFx1MjI0RFx1QTVBNVwwMDRcdTIyN0RcdTAxNzlcdTAxNzlcdTFGQTVcdTFGQTUiKworICAgICAgICAiXHVBNUE1XDAwNFx1MDE4OVx1MkIyN1x1MkIyN1x1MkIzM1x1MkIzM1x1MkIzRlx1MkIzRlx1MkE0Nlx1MkE0Nlx1QTVBNSIrCisgICAgICAgICJcMDA0XDAwMFx1MDIyRFx1MkI0OVx1MkFBRFx1MkFDOVx1MkFDRFx1MkFCMVx1MkI0RFx1MDI3MVx1MDI3NVx1MkFCNVx1MDI2NSIrCisgICAgICAgICJcdTJBOURcdTJBQjlcdTAxRjlcdTAyODVcdTAyNEQ5XDAzNSFJXHUwMjUxXHUwMjU1XHUwMjU5XHUwMjVEXHUwMjYxXHUyQUE5IisKKyAgICAgICAgIlx1MkFBNVx1MkFCRFx1MDI2RFx1MkFDMVx1MDIzRFx1MkFEMVx1MDgzOVx1MDMwMVx1MDI5OVx1MDA5MVx1MDJGMVx1MDJDNSIrCisgICAgICAgICJcdTA4M0RcdTAyQ0RlaVx1MDg0MXVcdTAyRTlcdTAwQ0RcdTA4NDVcdTAyRERcdTAyRTFcdTAyNzlcdTAyRTVcdTAyRUQiKworICAgICAgICAiXHUwODQ5XHUwM0MxXHUwODREXHUwM0YxXHUwODUxXHUwMDk1XHUyQjUxXHUyQUM1XHUyQjU1XHUyQjU5XHUyQTYxXHUyQjVEIisKKyAgICAgICAgIlwwMjFcdTA3MTFcdTAyODlcdTAwQTlcdTAzMDVcdTA3NDFcdTAyQzlcdTAwRTVtcVx1MDc3RH1cdTA0NjlcdTAwODk9XHUwN0I5IisKKyAgICAgICAgIlx1MDdDNVx1MDBFRFx1MDA4RFx1MDdFOVx1MDJCOVx1MDQyMVx1MDBGRFx1MDEzOVx1MDEwMVx1MDBBMVx1MkE2NVx1MkI2MSIrCisgICAgICAgICJcdTJBNjlcdTJCNjVcMDAwXDAwMFx1MkI2OVx1MkE4RFx1MkE5MVx1MkFBMVx1MkI2RFx1MTI1MVx1MTI3OVx1MTVGOVx1MkI3MSIrCisgICAgICAgICJcdTE2MTlcdTEyQ0RcdTJCNzVcdTEzQTVcdTE3NURcdTEzMzFcdTEyNjFcdTExOTlcdTExOURcdTExQTFcdTExQTVcdTExQTkiKworICAgICAgICAiXHUxMUFEXHUxMUIxXHUxMUI1XHUxMUI5XHUxMUJEXHUxMUMxXHUxMUM1XHUxMUM5XHUxMUNEXHUxMUQxXHUxMUQ1XHUxMUQ5IisKKyAgICAgICAgIlx1MTFERFx1MTFFMVx1MTFFNVx1MTFFOVx1MTFFRFx1MTFGMVx1MTFGNVx1MTFGOVx1MTFGRFx1MTIwMVx1MTIwNVx1MTIwOSIrCisgICAgICAgICJcdTEyMERcdTEyMTFcdTEyMTVcdTEyMTlcdTEyMURcdTEyMjFcdTEyMjVcdTEyMjlcdTEyMkRcdTEyMzFcdTEyMzVcdTEyMzkiKworICAgICAgICAiXHUxMjNEXHUxMjQxXHUxMjQ1XHUxMjg1XHUwQkM1XHUwQkNEXHUwQzlEXHUwQkQxXHUwQkQ1XHUwQkQ5XHUwQkREXHUwQkUxIisKKyAgICAgICAgIlx1MEJFNVx1MEJFOVx1MEJFRFx1MEJGMVx1MEJGNVx1MEJGOVx1MEJGRFx1MEMwMVx1MEMwNVx1MEMwOVx1MEMwRFx1MEMxMSIrCisgICAgICAgICJcdTBDMTVcdTBDMTlcdTBDMURcdTBDMjFcdTBDMjVcdTBDMjlcdTBDMkRcdTBDMzFcdTBDMzVcdTBDMzlcdTBDM0RcdTBDNDEiKworICAgICAgICAiXHUwQzQ1XDAwMFwwMDBcMDAwXHUwQzQ5XHUwQzREXHUwQzUxXHUwQzU1XHUwQzU5XHUwQzVEXDAwMFwwMDBcdTBDNjFcdTBDNjUiKworICAgICAgICAiXHUwQzY5XHUwQzZEXHUwQzcxXHUwQzc1XDAwMFwwMDBcdTBDNzlcdTBDN0RcdTBDODFcdTBDODVcdTBDODlcdTBDOERcMDAwIisKKyAgICAgICAgIlwwMDBcdTBDOTFcdTBDOTVcdTBDOTlcMDAwXDAwMFwwMDBcdTJCNzlcdTJCN0RcdTJCODFcMDI2XHUyQjg1XHUyQjg5XHUyQjhEIisKKyAgICAgICAgIlwwMDBcdTJCOTFcdTJCOTVcdTJCOTlcdTJCOURcdTJCQTFcdTJCQTVcdTJCQTlcdUE1QTVcMDIxXDAwMCIKKyAgICAgICAgKTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29udGVudHMgPSAKKyAgICAgICAgIlx1RkZGRiAgXHUwMzA4YSBcdTAzMDQyMyBcdTAzMDFcdTAzQkMgXHUwMzI3MW8xXHUyMDQ0NDFcdTIwNDQyM1x1MjA0NCIrCisgICAgICAgICI0SUppakxcdTAwQjdsXHUwMEI3XHUwMkJDbnNEWlx1MDMwQ0R6XHUwMzBDZHpcdTAzMENMSkxqbGpOSk5qbmpoXHUwMjY2IisKKyAgICAgICAgInJcdTAyNzlcdTAyN0JcdTAyODF3eSBcdTAzMDYgXHUwMzA3IFx1MDMwQSBcdTAzMjggXHUwMzAzIFx1MDMwQlx1MDI2MyIrCisgICAgICAgICJ4XHUwMjk1IFx1MDM0NVx1MDNCMlx1MDNCOFx1MDNBNVx1MDNDNlx1MDNDMFx1MDNCQVx1MDNDMVx1MDNDMlx1MDU2NVx1MDU4MiIrCisgICAgICAgICJcdTA2MjdcdTA2NzRcdTA2NDhcdTA2NzRcdTA2QzdcdTA2NzRcdTA2NEFcdTA2NzRcdTBFNERcdTBFMzJcdTBFQ0RcdTBFQjIiKworICAgICAgICAiXHUwRUFCXHUwRTk5XHUwRUFCXHUwRUExXHUwRjBCXHUwRkIyXHUwRjcxXHUwRjgwXHUwRkIzXHUwRjcxXHUwRjgwYVx1MDJCRSIrCisgICAgICAgICIgXHUwMzEzIFx1MDM0MiBcdTAzMTRcdTIwMTAgXHUwMzMzLi4uXHUyMDMyXHUyMDMyXHUyMDMyXHUyMDMyXHUyMDMyXHUyMDM1IisKKyAgICAgICAgIlx1MjAzNVx1MjAzNVx1MjAzNVx1MjAzNSEhIFx1MDMwNT8hIT8wNTY3ODkrXHUyMjEyPSgpUnNhL2NhL3NDXHUwMEIwQyIrCisgICAgICAgICJjL29jL3VcdTAxOTBcdTAwQjBGZ0hcdTAxMjdOb1BRU01URUxUTUJlXHUwNUQwXHUwNUQxXHUwNUQyXHUwNUQzMVx1MjA0NCIrCisgICAgICAgICIzMlx1MjA0NDMxXHUyMDQ0NTJcdTIwNDQ1M1x1MjA0NDU0XHUyMDQ0NTFcdTIwNDQ2NVx1MjA0NDYxXHUyMDQ0ODNcdTIwNDQiKworICAgICAgICAiODVcdTIwNDQ4N1x1MjA0NDhJSUlJSUlWVklWSUlWSUlJXDAwMElYWElYSUlpaWlpaWl2dml2aWl2aWlpXDAwMGl4eGl4IisKKyAgICAgICAgImlpbVx1MjIyQlx1MjIyQlx1MjIyQlx1MjIyQlx1MjIyQlx1MjIyRVx1MjIyRVx1MjIyRVx1MjIyRVx1MjIyRTEwMTExMiIrCisgICAgICAgICIxMzE0MTUxNjE3MTgxOTIwKDEpKDIpKDMpKDQpKDUpKDYpKDcpKDgpKDkpKDEwKVwwMDAoMTEpXDAwMCgxMilcMDAwKDEiKworICAgICAgICAiMylcMDAwKDE0KVwwMDAoMTUpXDAwMCgxNilcMDAwKDE3KVwwMDAoMTgpXDAwMCgxOSlcMDAwKDIwKVwwMDAxLjIuMy40IisKKyAgICAgICAgIi41LjYuNy44LjkuMTAuMTEuMTIuMTMuMTQuMTUuMTYuMTcuMTguMTkuMjAuKGEpKGIpKGMpKGQpKGUpKGYpKGcpKGgpKCIrCisgICAgICAgICJpKShqKShrKShsKShtKShuKShvKShwKShxKShyKShzKSh0KSh1KSh2KSh3KSh4KSh5KSh6KUFHS09VV1lcdTZCQ0RcdTlGOUYiKworICAgICAgICAiXHU0RTAwXHU0RTI4XHU0RTM2XHU0RTNGXHU0RTU5XHU0RTg1XHU0RThDXHU0RUEwXHU0RUJBXHU1MTNGXHU1MTY1XHU1MTZCIisKKyAgICAgICAgIlx1NTE4Mlx1NTE5Nlx1NTFBQlx1NTFFMFx1NTFGNVx1NTIwMFx1NTI5Qlx1NTJGOVx1NTMxNVx1NTMxQVx1NTMzOFx1NTM0MSIrCisgICAgICAgICJcdTUzNUNcdTUzNjlcdTUzODJcdTUzQjZcdTUzQzhcdTUzRTNcdTU2RDdcdTU3MUZcdTU4RUJcdTU5MDJcdTU5MEFcdTU5MTUiKworICAgICAgICAiXHU1OTI3XHU1OTczXHU1QjUwXHU1QjgwXHU1QkY4XHU1QzBGXHU1QzIyXHU1QzM4XHU1QzZFXHU1QzcxXHU1RERCXHU1REU1IisKKyAgICAgICAgIlx1NURGMVx1NURGRVx1NUU3Mlx1NUU3QVx1NUU3Rlx1NUVGNFx1NUVGRVx1NUYwQlx1NUYxM1x1NUY1MFx1NUY2MVx1NUY3MyIrCisgICAgICAgICJcdTVGQzNcdTYyMDhcdTYyMzZcdTYyNEJcdTY1MkZcdTY1MzRcdTY1ODdcdTY1OTdcdTY1QTRcdTY1QjlcdTY1RTBcdTY1RTUiKworICAgICAgICAiXHU2NkYwXHU2NzA4XHU2NzI4XHU2QjIwXHU2QjYyXHU2Qjc5XHU2QkIzXHU2QkNCXHU2QkQ0XHU2QkRCXHU2QzBGXHU2QzE0IisKKyAgICAgICAgIlx1NkMzNFx1NzA2Qlx1NzIyQVx1NzIzNlx1NzIzQlx1NzIzRlx1NzI0N1x1NzI1OVx1NzI1Qlx1NzJBQ1x1NzM4NFx1NzM4OSIrCisgICAgICAgICJcdTc0RENcdTc0RTZcdTc1MThcdTc1MUZcdTc1MjhcdTc1MzBcdTc1OEJcdTc1OTJcdTc2NzZcdTc2N0RcdTc2QUVcdTc2QkYiKworICAgICAgICAiXHU3NkVFXHU3N0RCXHU3N0UyXHU3N0YzXHU3OTNBXHU3OUI4XHU3OUJFXHU3QTc0XHU3QUNCXHU3QUY5XHU3QzczXHU3Q0Y4IisKKyAgICAgICAgIlx1N0YzNlx1N0Y1MVx1N0Y4QVx1N0ZCRFx1ODAwMVx1ODAwQ1x1ODAxMlx1ODAzM1x1ODA3Rlx1ODA4OVx1ODFFM1x1ODFFQSIrCisgICAgICAgICJcdTgxRjNcdTgxRkNcdTgyMENcdTgyMUJcdTgyMUZcdTgyNkVcdTgyNzJcdTgyNzhcdTg2NERcdTg2NkJcdTg4NDBcdTg4NEMiKworICAgICAgICAiXHU4ODYzXHU4OTdFXHU4OThCXHU4OUQyXHU4QTAwXHU4QzM3XHU4QzQ2XHU4QzU1XHU4Qzc4XHU4QzlEXHU4RDY0XHU4RDcwIisKKyAgICAgICAgIlx1OERCM1x1OEVBQlx1OEVDQVx1OEY5Qlx1OEZCMFx1OEZCNVx1OTA5MVx1OTE0OVx1OTFDNlx1OTFDQ1x1OTFEMVx1OTU3NyIrCisgICAgICAgICJcdTk1ODBcdTk2MUNcdTk2QjZcdTk2QjlcdTk2RThcdTk3NTFcdTk3NUVcdTk3NjJcdTk3NjlcdTk3Q0JcdTk3RURcdTk3RjMiKworICAgICAgICAiXHU5ODAxXHU5OEE4XHU5OERCXHU5OERGXHU5OTk2XHU5OTk5XHU5OUFDXHU5QUE4XHU5QUQ4XHU5QURGXHU5QjI1XHU5QjJGIisKKyAgICAgICAgIlx1OUIzMlx1OUIzQ1x1OUI1QVx1OUNFNVx1OUU3NVx1OUU3Rlx1OUVBNVx1OUVCQlx1OUVDM1x1OUVDRFx1OUVEMVx1OUVGOSIrCisgICAgICAgICJcdTlFRkRcdTlGMEVcdTlGMTNcdTlGMjBcdTlGM0JcdTlGNEFcdTlGNTJcdTlGOERcdTlGOUNcdTlGQTBcdTMwMTJcdTUzNDQiKworICAgICAgICAiXHU1MzQ1IFx1MzA5OSBcdTMwOUFcdTExMDBcdTExMDFcdTExQUFcdTExMDJcdTExQUNcdTExQURcdTExMDNcdTExMDRcdTExMDUiKworICAgICAgICAiXHUxMUIwXHUxMUIxXHUxMUIyXHUxMUIzXHUxMUI0XHUxMUI1XHUxMTFBXHUxMTA2XHUxMTA3XHUxMTA4XHUxMTIxXHUxMTA5IisKKyAgICAgICAgIlx1MTEwQVx1MTEwQlx1MTEwQ1x1MTEwRFx1MTEwRVx1MTEwRlx1MTExMFx1MTExMVx1MTExMlx1MTE2MVx1MTE2Mlx1MTE2MyIrCisgICAgICAgICJcdTExNjRcdTExNjVcdTExNjZcdTExNjdcdTExNjhcdTExNjlcdTExNkFcdTExNkJcdTExNkNcdTExNkRcdTExNkVcdTExNkYiKworICAgICAgICAiXHUxMTcwXHUxMTcxXHUxMTcyXHUxMTczXHUxMTc0XHUxMTc1XHUxMTYwXHUxMTE0XHUxMTE1XHUxMUM3XHUxMUM4XHUxMUNDIisKKyAgICAgICAgIlx1MTFDRVx1MTFEM1x1MTFEN1x1MTFEOVx1MTExQ1x1MTFERFx1MTFERlx1MTExRFx1MTExRVx1MTEyMFx1MTEyMlx1MTEyMyIrCisgICAgICAgICJcdTExMjdcdTExMjlcdTExMkJcdTExMkNcdTExMkRcdTExMkVcdTExMkZcdTExMzJcdTExMzZcdTExNDBcdTExNDdcdTExNEMiKworICAgICAgICAiXHUxMUYxXHUxMUYyXHUxMTU3XHUxMTU4XHUxMTU5XHUxMTg0XHUxMTg1XHUxMTg4XHUxMTkxXHUxMTkyXHUxMTk0XHUxMTlFIisKKyAgICAgICAgIlx1MTFBMVx1NEUwOVx1NTZEQlx1NEUwQVx1NEUyRFx1NEUwQlx1NzUzMlx1NEUxOVx1NEUwMVx1NTkyOVx1NTczMChcdTExMDAiKworICAgICAgICAiKShcdTExMDIpKFx1MTEwMykoXHUxMTA1KShcdTExMDYpKFx1MTEwNykoXHUxMTA5KShcdTExMEIpKFx1MTEwQykoXHUxMTBFIisKKyAgICAgICAgIikoXHUxMTBGKShcdTExMTApKFx1MTExMSkoXHUxMTEyKShcdTExMDBcdTExNjEpXDAwMChcdTExMDJcdTExNjEpXDAwMCIrCisgICAgICAgICIoXHUxMTAzXHUxMTYxKVwwMDAoXHUxMTA1XHUxMTYxKVwwMDAoXHUxMTA2XHUxMTYxKVwwMDAoXHUxMTA3XHUxMTYxKVwwMDAiKworICAgICAgICAiKFx1MTEwOVx1MTE2MSlcMDAwKFx1MTEwQlx1MTE2MSlcMDAwKFx1MTEwQ1x1MTE2MSlcMDAwKFx1MTEwRVx1MTE2MSlcMDAwIisKKyAgICAgICAgIihcdTExMEZcdTExNjEpXDAwMChcdTExMTBcdTExNjEpXDAwMChcdTExMTFcdTExNjEpXDAwMChcdTExMTJcdTExNjEpXDAwMCIrCisgICAgICAgICIoXHUxMTBDXHUxMTZFKVwwMDAoXHU0RTAwKShcdTRFOEMpKFx1NEUwOSkoXHU1NkRCKShcdTRFOTQpKFx1NTE2RCkoXHU0RTAzIisKKyAgICAgICAgIikoXHU1MTZCKShcdTRFNUQpKFx1NTM0MSkoXHU2NzA4KShcdTcwNkIpKFx1NkMzNCkoXHU2NzI4KShcdTkxRDEpKFx1NTcxRiIrCisgICAgICAgICIpKFx1NjVFNSkoXHU2ODJBKShcdTY3MDkpKFx1NzkzRSkoXHU1NDBEKShcdTcyNzkpKFx1OENBMSkoXHU3OTVEKShcdTUyQjQiKworICAgICAgICAiKShcdTRFRTMpKFx1NTQ3QykoXHU1QjY2KShcdTc2RTMpKFx1NEYwMSkoXHU4Q0M3KShcdTUzNTQpKFx1Nzk2RCkoXHU0RjExIisKKyAgICAgICAgIikoXHU4MUVBKShcdTgxRjMpXHU3OUQ4XHU3NTM3XHU5MDY5XHU1MTJBXHU1MzcwXHU2Q0U4XHU5ODA1XHU1MTk5XHU2QjYzIisKKyAgICAgICAgIlx1NURFNlx1NTNGM1x1NTMzQlx1NUI5N1x1NTkxQzFcdTY3MDgyXHU2NzA4M1x1NjcwODRcdTY3MDg1XHU2NzA4Nlx1NjcwOCIrCisgICAgICAgICI3XHU2NzA4OFx1NjcwODlcdTY3MDgxMFx1NjcwODExXHU2NzA4MTJcdTY3MDhcdTMwQTJcdTMwQTRcdTMwQTZcdTMwQTgiKworICAgICAgICAiXHUzMEFBXHUzMEFCXHUzMEFEXHUzMEFGXHUzMEIxXHUzMEIzXHUzMEI1XHUzMEI3XHUzMEI5XHUzMEJCXHUzMEJEXHUzMEJGIisKKyAgICAgICAgIlx1MzBDMVx1MzBDNFx1MzBDNlx1MzBDOFx1MzBDQVx1MzBDQlx1MzBDQ1x1MzBDRFx1MzBDRVx1MzBDRlx1MzBEMlx1MzBENSIrCisgICAgICAgICJcdTMwRDhcdTMwREJcdTMwREVcdTMwREZcdTMwRTBcdTMwRTFcdTMwRTJcdTMwRTRcdTMwRTZcdTMwRThcdTMwRTlcdTMwRUEiKworICAgICAgICAiXHUzMEVCXHUzMEVDXHUzMEVEXHUzMEVGXHUzMEYwXHUzMEYxXHUzMEYyXHUzMEEyXHUzMENGXHUzMDlBXHUzMEZDXHUzMEM4IisKKyAgICAgICAgIlwwMDBcdTMwQTJcdTMwRUJcdTMwRDVcdTMwQTFcMDAwXHUzMEEyXHUzMEYzXHUzMEQ4XHUzMDlBXHUzMEEyXDAwMFx1MzBBMiIrCisgICAgICAgICJcdTMwRkNcdTMwRUJcdTMwQTRcdTMwQ0JcdTMwRjNcdTMwQUZcdTMwOTlcMDAwXHUzMEE0XHUzMEYzXHUzMEMxXHUzMEE2IisKKyAgICAgICAgIlx1MzBBOVx1MzBGM1x1MzBBOFx1MzBCOVx1MzBBRlx1MzBGQ1x1MzBDOFx1MzA5OVwwMDBcdTMwQThcdTMwRkNcdTMwQUIiKworICAgICAgICAiXHUzMEZDXDAwMFx1MzBBQVx1MzBGM1x1MzBCOVx1MzBBQVx1MzBGQ1x1MzBFMFx1MzBBQlx1MzBBNFx1MzBFQVx1MzBBQiIrCisgICAgICAgICJcdTMwRTlcdTMwQzNcdTMwQzhcMDAwXHUzMEFCXHUzMEVEXHUzMEVBXHUzMEZDXDAwMFx1MzBBQlx1MzA5OVx1MzBFRFx1MzBGMyIrCisgICAgICAgICJcMDAwXHUzMEFCXHUzMDk5XHUzMEYzXHUzMERFXDAwMFx1MzBBRFx1MzA5OVx1MzBBQlx1MzA5OVwwMDBcdTMwQURcdTMwOTkiKworICAgICAgICAiXHUzMENCXHUzMEZDXDAwMFx1MzBBRFx1MzBFNVx1MzBFQVx1MzBGQ1wwMDBcdTMwQURcdTMwOTlcdTMwRUJcdTMwQkZcdTMwOTkiKworICAgICAgICAiXHUzMEZDXDAwMFx1MzBBRFx1MzBFRFx1MzBBRFx1MzBFRFx1MzBBRlx1MzA5OVx1MzBFOVx1MzBFMFwwMDBcdTMwQURcdTMwRUQiKworICAgICAgICAiXHUzMEUxXHUzMEZDXHUzMEM4XHUzMEVCXDAwMFx1MzBBRFx1MzBFRFx1MzBFRlx1MzBDM1x1MzBDOFwwMDBcdTMwQUZcdTMwOTkiKworICAgICAgICAiXHUzMEU5XHUzMEUwXHUzMEM4XHUzMEYzXDAwMFx1MzBBRlx1MzBFQlx1MzBCQlx1MzA5OVx1MzBBNFx1MzBFRFwwMDBcdTMwQUYiKworICAgICAgICAiXHUzMEVEXHUzMEZDXHUzMENEXDAwMFx1MzBCMVx1MzBGQ1x1MzBCOVx1MzBCM1x1MzBFQlx1MzBDQVx1MzBCM1x1MzBGQyIrCisgICAgICAgICJcdTMwREJcdTMwOUFcMDAwXHUzMEI1XHUzMEE0XHUzMEFGXHUzMEVCXDAwMFx1MzBCNVx1MzBGM1x1MzBDMVx1MzBGQ1x1MzBFMCIrCisgICAgICAgICJcMDAwXHUzMEI3XHUzMEVBXHUzMEYzXHUzMEFGXHUzMDk5XDAwMFx1MzBCQlx1MzBGM1x1MzBDMVx1MzBCQlx1MzBGM1x1MzBDOCIrCisgICAgICAgICJcdTMwQkZcdTMwOTlcdTMwRkNcdTMwQjlcMDAwXHUzMEM2XHUzMDk5XHUzMEI3XHUzMEM4XHUzMDk5XHUzMEVCXHUzMENBIisKKyAgICAgICAgIlx1MzBDRVx1MzBDRVx1MzBDM1x1MzBDOFx1MzBDRlx1MzBBNFx1MzBDNFx1MzBDRlx1MzA5QVx1MzBGQ1x1MzBCQlx1MzBGMyIrCisgICAgICAgICJcdTMwQzhcMDAwXHUzMENGXHUzMDlBXHUzMEZDXHUzMEM0XDAwMFx1MzBDRlx1MzA5OVx1MzBGQ1x1MzBFQ1x1MzBFQlwwMDAiKworICAgICAgICAiXHUzMEQyXHUzMDlBXHUzMEEyXHUzMEI5XHUzMEM4XHUzMEVCXDAwMFx1MzBEMlx1MzA5QVx1MzBBRlx1MzBFQlwwMDBcdTMwRDIiKworICAgICAgICAiXHUzMDlBXHUzMEIzXHUzMEQyXHUzMDk5XHUzMEVCXHUzMEQ1XHUzMEExXHUzMEU5XHUzMEMzXHUzMEM4XHUzMDk5XDAwMCIrCisgICAgICAgICJcdTMwRDVcdTMwQTNcdTMwRkNcdTMwQzhcMDAwXHUzMEQ1XHUzMDk5XHUzMEMzXHUzMEI3XHUzMEE3XHUzMEVCXDAwMFx1MzBENSIrCisgICAgICAgICJcdTMwRTlcdTMwRjNcdTMwRDhcdTMwQUZcdTMwQkZcdTMwRkNcdTMwRUJcMDAwXHUzMEQ4XHUzMDlBXHUzMEJEXHUzMEQ4IisKKyAgICAgICAgIlx1MzA5QVx1MzBDQlx1MzBEMlwwMDBcdTMwRDhcdTMwRUJcdTMwQzRcdTMwRDhcdTMwOUFcdTMwRjNcdTMwQjlcMDAwXHUzMEQ4IisKKyAgICAgICAgIlx1MzA5QVx1MzBGQ1x1MzBCN1x1MzA5OVwwMDBcdTMwRDhcdTMwOTlcdTMwRkNcdTMwQkZcMDAwXHUzMERCXHUzMDlBXHUzMEE0IisKKyAgICAgICAgIlx1MzBGM1x1MzBDOFwwMDBcdTMwREJcdTMwOTlcdTMwRUJcdTMwQzhcMDAwXHUzMERCXHUzMEYzXHUzMERCXHUzMDlBXHUzMEYzIisKKyAgICAgICAgIlx1MzBDOFx1MzA5OVwwMDBcdTMwREJcdTMwRkNcdTMwRUJcdTMwREJcdTMwRkNcdTMwRjNcdTMwREVcdTMwQTRcdTMwQUYiKworICAgICAgICAiXHUzMEVEXDAwMFx1MzBERVx1MzBBNFx1MzBFQlx1MzBERVx1MzBDM1x1MzBDRlx1MzBERVx1MzBFQlx1MzBBRlx1MzBERSIrCisgICAgICAgICJcdTMwRjNcdTMwQjdcdTMwRTdcdTMwRjNcMDAwXHUzMERGXHUzMEFGXHUzMEVEXHUzMEYzXDAwMFx1MzBERlx1MzBFQVx1MzBERiIrCisgICAgICAgICJcdTMwRUFcdTMwQ0ZcdTMwOTlcdTMwRkNcdTMwRUJcMDAwXHUzMEUxXHUzMEFCXHUzMDk5XHUzMEUxXHUzMEFCXHUzMDk5IisKKyAgICAgICAgIlx1MzBDOFx1MzBGM1wwMDBcdTMwRTRcdTMwRkNcdTMwQzhcdTMwOTlcMDAwXHUzMEU0XHUzMEZDXHUzMEVCXHUzMEU2XHUzMEEyIisKKyAgICAgICAgIlx1MzBGM1x1MzBFQVx1MzBDM1x1MzBDOFx1MzBFQlwwMDBcdTMwRUFcdTMwRTlcdTMwRUJcdTMwRDJcdTMwOUFcdTMwRkMiKworICAgICAgICAiXDAwMFx1MzBFQlx1MzBGQ1x1MzBENVx1MzA5OVx1MzBFQlwwMDBcdTMwRUNcdTMwRTBcdTMwRUNcdTMwRjNcdTMwQzhcdTMwQjEiKworICAgICAgICAiXHUzMDk5XHUzMEYzXDAwMDBcdTcwQjkxXHU3MEI5Mlx1NzBCOTNcdTcwQjk0XHU3MEI5NVx1NzBCOTZcdTcwQjk3XHU3MEI5IisKKyAgICAgICAgIjhcdTcwQjk5XHU3MEI5MTBcdTcwQjkxMVx1NzBCOTEyXHU3MEI5MTNcdTcwQjkxNFx1NzBCOTE1XHU3MEI5MTZcdTcwQjkiKworICAgICAgICAiMTdcdTcwQjkxOFx1NzBCOTE5XHU3MEI5MjBcdTcwQjkyMVx1NzBCOTIyXHU3MEI5MjNcdTcwQjkyNFx1NzBCOWhQYWRhIisKKyAgICAgICAgIkFVYmFyb1ZwY1x1NUU3M1x1NjIxMFx1NjYyRFx1NTQ4Q1x1NTkyN1x1NkI2M1x1NjYwRVx1NkNCQlx1NjgyQVx1NUYwRiIrCisgICAgICAgICJcdTRGMUFcdTc5M0VcMDAwcEFuQVx1MDNCQ0FtQWtBS0JHQmNhbGtjYWxcMDAwcEZuRlx1MDNCQ0ZcdTAzQkNnbWdrZ0giKworICAgICAgICAiemtIek1IekdIelRIelx1MDNCQ2xtbGRsa2xmbW5tXHUwM0JDbW1tY21rbW1tMmNtMmttMm1tM2NtM2ttM21cdTIyMTVzIisKKyAgICAgICAgIm1cdTIyMTVzMlwwMDBrUGFNUGFHUGFyYWRyYWRcdTIyMTVzXDAwMHJhZFx1MjIxNXMyXDAwMHBzXHUwM0JDc21zcFZuViIrCisgICAgICAgICJcdTAzQkNWbVZrVk1WcFduV1x1MDNCQ1dtV2tXTVdrXHUwM0E5TVx1MDNBOWEubS5cMDAwQnFjY2NkQ1x1MjIxNWtnXDAwMCIrCisgICAgICAgICJDby5kQkd5aGFIUGluS0tLTWt0bG5sb2dseG1ibWlsbW9sUEhwLm0uXDAwMFBQTVBSc3JTdldiMVx1NjVFNTJcdTY1RTUiKworICAgICAgICAiM1x1NjVFNTRcdTY1RTU1XHU2NUU1Nlx1NjVFNTdcdTY1RTU4XHU2NUU1OVx1NjVFNTEwXHU2NUU1MTFcdTY1RTUxMlx1NjVFNSIrCisgICAgICAgICIxM1x1NjVFNTE0XHU2NUU1MTVcdTY1RTUxNlx1NjVFNTE3XHU2NUU1MThcdTY1RTUxOVx1NjVFNTIwXHU2NUU1MjFcdTY1RTUiKworICAgICAgICAiMjJcdTY1RTUyM1x1NjVFNTI0XHU2NUU1MjVcdTY1RTUyNlx1NjVFNTI3XHU2NUU1MjhcdTY1RTUyOVx1NjVFNTMwXHU2NUU1IisKKyAgICAgICAgIjMxXHU2NUU1ZmZmaWZsZmZsc3RcdTA1NzRcdTA1NzZcdTA1NzRcdTA1NjVcdTA1NzRcdTA1NkJcdTA1N0VcdTA1NzZcdTA1NzQiKworICAgICAgICAiXHUwNTZEXHUwNUUyXHUwNUQ0XHUwNURCXHUwNURDXHUwNUREXHUwNUU4XHUwNUVBXHUwNUQwXHUwNURDXHUwNjcxXHUwNjdCIisKKyAgICAgICAgIlx1MDY3RVx1MDY4MFx1MDY3QVx1MDY3Rlx1MDY3OVx1MDZBNFx1MDZBNlx1MDY4NFx1MDY4M1x1MDY4Nlx1MDY4N1x1MDY4RCIrCisgICAgICAgICJcdTA2OENcdTA2OEVcdTA2ODhcdTA2OThcdTA2OTFcdTA2QTlcdTA2QUZcdTA2QjNcdTA2QjFcdTA2QkFcdTA2QkJcdTA2RDUiKworICAgICAgICAiXHUwNjU0XHUwNkMxXHUwNkJFXHUwNkQyXHUwNkQyXHUwNjU0XHUwNkFEXHUwNkM2XHUwNkM4XHUwNkNCXHUwNkM1XHUwNkM5IisKKyAgICAgICAgIlx1MDZEMFx1MDY0OVx1MDY0QVx1MDY1NFx1MDYyN1x1MDY0QVx1MDY1NFx1MDZENVx1MDY0QVx1MDY1NFx1MDY0OFx1MDY0QSIrCisgICAgICAgICJcdTA2NTRcdTA2QzdcdTA2NEFcdTA2NTRcdTA2QzZcdTA2NEFcdTA2NTRcdTA2QzhcdTA2NEFcdTA2NTRcdTA2RDBcdTA2NEEiKworICAgICAgICAiXHUwNjU0XHUwNjQ5XHUwNkNDXHUwNjRBXHUwNjU0XHUwNjJDXHUwNjRBXHUwNjU0XHUwNjJEXHUwNjRBXHUwNjU0XHUwNjQ1IisKKyAgICAgICAgIlx1MDY0QVx1MDY1NFx1MDY0QVx1MDYyOFx1MDYyQ1x1MDYyOFx1MDYyRFx1MDYyOFx1MDYyRVx1MDYyOFx1MDY0NVx1MDYyOCIrCisgICAgICAgICJcdTA2NDlcdTA2MjhcdTA2NEFcdTA2MkFcdTA2MkNcdTA2MkFcdTA2MkRcdTA2MkFcdTA2MkVcdTA2MkFcdTA2NDVcdTA2MkEiKworICAgICAgICAiXHUwNjQ5XHUwNjJBXHUwNjRBXHUwNjJCXHUwNjJDXHUwNjJCXHUwNjQ1XHUwNjJCXHUwNjQ5XHUwNjJCXHUwNjRBXHUwNjJDIisKKyAgICAgICAgIlx1MDYyRFx1MDYyQ1x1MDY0NVx1MDYyRFx1MDY0NVx1MDYyRVx1MDYyQ1x1MDYyRVx1MDYyRFx1MDYyRVx1MDY0NVx1MDYzMyIrCisgICAgICAgICJcdTA2MkNcdTA2MzNcdTA2MkRcdTA2MzNcdTA2MkVcdTA2MzNcdTA2NDVcdTA2MzVcdTA2MkRcdTA2MzVcdTA2NDVcdTA2MzYiKworICAgICAgICAiXHUwNjJDXHUwNjM2XHUwNjJEXHUwNjM2XHUwNjJFXHUwNjM2XHUwNjQ1XHUwNjM3XHUwNjJEXHUwNjM3XHUwNjQ1XHUwNjM4IisKKyAgICAgICAgIlx1MDY0NVx1MDYzOVx1MDYyQ1x1MDYzOVx1MDY0NVx1MDYzQVx1MDYyQ1x1MDYzQVx1MDY0NVx1MDY0MVx1MDYyQ1x1MDY0MSIrCisgICAgICAgICJcdTA2MkRcdTA2NDFcdTA2MkVcdTA2NDFcdTA2NDVcdTA2NDFcdTA2NDlcdTA2NDFcdTA2NEFcdTA2NDJcdTA2MkRcdTA2NDIiKworICAgICAgICAiXHUwNjQ1XHUwNjQyXHUwNjQ5XHUwNjQyXHUwNjRBXHUwNjQzXHUwNjI3XHUwNjQzXHUwNjJDXHUwNjQzXHUwNjJEXHUwNjQzIisKKyAgICAgICAgIlx1MDYyRVx1MDY0M1x1MDY0NFx1MDY0M1x1MDY0NVx1MDY0M1x1MDY0OVx1MDY0M1x1MDY0QVx1MDY0NFx1MDYyQ1x1MDY0NCIrCisgICAgICAgICJcdTA2MkRcdTA2NDRcdTA2MkVcdTA2NDRcdTA2NDVcdTA2NDRcdTA2NDlcdTA2NDRcdTA2NEFcdTA2NDVcdTA2MkNcdTA2NDUiKworICAgICAgICAiXHUwNjQ1XHUwNjQ1XHUwNjQ5XHUwNjQ2XHUwNjJDXHUwNjQ2XHUwNjJEXHUwNjQ2XHUwNjJFXHUwNjQ2XHUwNjQ1XHUwNjQ2IisKKyAgICAgICAgIlx1MDY0OVx1MDY0Nlx1MDY0QVx1MDY0N1x1MDYyQ1x1MDY0N1x1MDY0NVx1MDY0N1x1MDY0OVx1MDY0N1x1MDY0QVx1MDY0QSIrCisgICAgICAgICJcdTA2MkRcdTA2NEFcdTA2MkVcdTA2NEFcdTA2NDlcdTA2MzBcdTA2NzBcdTA2MzFcdTA2NzBcdTA2NDlcdTA2NzAgXHUwNjRDIisKKyAgICAgICAgIlx1MDY1MSBcdTA2NERcdTA2NTEgXHUwNjRFXHUwNjUxIFx1MDY0Rlx1MDY1MSBcdTA2NTBcdTA2NTEgXHUwNjUxXHUwNjcwIisKKyAgICAgICAgIlx1MDY0QVx1MDY1NFx1MDYzMVx1MDY0QVx1MDY1NFx1MDYzMlx1MDY0QVx1MDY1NFx1MDY0Nlx1MDYyOFx1MDYzMVx1MDYyOCIrCisgICAgICAgICJcdTA2MzJcdTA2MjhcdTA2NDZcdTA2MkFcdTA2MzFcdTA2MkFcdTA2MzJcdTA2MkFcdTA2NDZcdTA2MkJcdTA2MzFcdTA2MkIiKworICAgICAgICAiXHUwNjMyXHUwNjJCXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNjQ2XHUwNjMxXHUwNjQ2XHUwNjMyXHUwNjQ2XHUwNjQ2XHUwNjRBIisKKyAgICAgICAgIlx1MDYzMVx1MDY0QVx1MDYzMlx1MDY0QVx1MDY0Nlx1MDY0QVx1MDY1NFx1MDYyRVx1MDY0QVx1MDY1NFx1MDY0N1x1MDYyOCIrCisgICAgICAgICJcdTA2NDdcdTA2MkFcdTA2NDdcdTA2MzVcdTA2MkVcdTA2NDRcdTA2NDdcdTA2NDZcdTA2NDdcdTA2NDdcdTA2NzBcdTA2MkIiKworICAgICAgICAiXHUwNjQ3XHUwNjMzXHUwNjQ3XHUwNjM0XHUwNjQ1XHUwNjM0XHUwNjQ3XHUwNjQwXHUwNjRFXHUwNjUxXHUwNjQwXHUwNjRGIisKKyAgICAgICAgIlx1MDY1MVx1MDY0MFx1MDY1MFx1MDY1MVx1MDYzN1x1MDY0OVx1MDYzN1x1MDY0QVx1MDYzOVx1MDY0OVx1MDYzOVx1MDY0QSIrCisgICAgICAgICJcdTA2M0FcdTA2NDlcdTA2M0FcdTA2NEFcdTA2MzNcdTA2NDlcdTA2MzNcdTA2NEFcdTA2MzRcdTA2NDlcdTA2MzRcdTA2NEEiKworICAgICAgICAiXHUwNjJEXHUwNjQ5XHUwNjJDXHUwNjQ5XHUwNjJFXHUwNjQ5XHUwNjM1XHUwNjQ5XHUwNjM1XHUwNjRBXHUwNjM2XHUwNjQ5IisKKyAgICAgICAgIlx1MDYzNlx1MDY0QVx1MDYzNFx1MDYyQ1x1MDYzNFx1MDYyRFx1MDYzNFx1MDYyRVx1MDYzNFx1MDYzMVx1MDYzM1x1MDYzMSIrCisgICAgICAgICJcdTA2MzVcdTA2MzFcdTA2MzZcdTA2MzFcdTA2MjdcdTA2NEJcdTA2MkFcdTA2MkNcdTA2NDVcdTA2MkFcdTA2MkRcdTA2MkMiKworICAgICAgICAiXHUwNjJBXHUwNjJEXHUwNjQ1XHUwNjJBXHUwNjJFXHUwNjQ1XHUwNjJBXHUwNjQ1XHUwNjJDXHUwNjJBXHUwNjQ1XHUwNjJEIisKKyAgICAgICAgIlx1MDYyQVx1MDY0NVx1MDYyRVx1MDYyRFx1MDY0NVx1MDY0QVx1MDYyRFx1MDY0NVx1MDY0OVx1MDYzM1x1MDYyRFx1MDYyQyIrCisgICAgICAgICJcdTA2MzNcdTA2MkNcdTA2MkRcdTA2MzNcdTA2MkNcdTA2NDlcdTA2MzNcdTA2NDVcdTA2MkRcdTA2MzNcdTA2NDVcdTA2MkMiKworICAgICAgICAiXHUwNjMzXHUwNjQ1XHUwNjQ1XHUwNjM1XHUwNjJEXHUwNjJEXHUwNjM1XHUwNjQ1XHUwNjQ1XHUwNjM0XHUwNjJEXHUwNjQ1IisKKyAgICAgICAgIlx1MDYzNFx1MDYyQ1x1MDY0QVx1MDYzNFx1MDY0NVx1MDYyRVx1MDYzNFx1MDY0NVx1MDY0NVx1MDYzNlx1MDYyRFx1MDY0OSIrCisgICAgICAgICJcdTA2MzZcdTA2MkVcdTA2NDVcdTA2MzdcdTA2NDVcdTA2MkRcdTA2MzdcdTA2NDVcdTA2NDVcdTA2MzdcdTA2NDVcdTA2NEEiKworICAgICAgICAiXHUwNjM5XHUwNjJDXHUwNjQ1XHUwNjM5XHUwNjQ1XHUwNjQ1XHUwNjM5XHUwNjQ1XHUwNjQ5XHUwNjNBXHUwNjQ1XHUwNjQ1IisKKyAgICAgICAgIlx1MDYzQVx1MDY0NVx1MDY0QVx1MDYzQVx1MDY0NVx1MDY0OVx1MDY0MVx1MDYyRVx1MDY0NVx1MDY0Mlx1MDY0NVx1MDYyRCIrCisgICAgICAgICJcdTA2NDJcdTA2NDVcdTA2NDVcdTA2NDRcdTA2MkRcdTA2NDVcdTA2NDRcdTA2MkRcdTA2NEFcdTA2NDRcdTA2MkRcdTA2NDkiKworICAgICAgICAiXHUwNjQ0XHUwNjJDXHUwNjJDXHUwNjQ0XHUwNjJFXHUwNjQ1XHUwNjQ0XHUwNjQ1XHUwNjJEXHUwNjQ1XHUwNjJEXHUwNjJDIisKKyAgICAgICAgIlx1MDY0NVx1MDYyRFx1MDY0QVx1MDY0NVx1MDYyQ1x1MDYyRFx1MDY0NVx1MDYyRVx1MDY0NVx1MDY0NVx1MDYyQ1x1MDYyRSIrCisgICAgICAgICJcdTA2NDdcdTA2NDVcdTA2MkNcdTA2NDdcdTA2NDVcdTA2NDVcdTA2NDZcdTA2MkRcdTA2NDVcdTA2NDZcdTA2MkRcdTA2NDkiKworICAgICAgICAiXHUwNjQ2XHUwNjJDXHUwNjQ1XHUwNjQ2XHUwNjJDXHUwNjQ5XHUwNjQ2XHUwNjQ1XHUwNjRBXHUwNjQ2XHUwNjQ1XHUwNjQ5IisKKyAgICAgICAgIlx1MDY0QVx1MDY0NVx1MDY0NVx1MDYyOFx1MDYyRVx1MDY0QVx1MDYyQVx1MDYyQ1x1MDY0QVx1MDYyQVx1MDYyQ1x1MDY0OSIrCisgICAgICAgICJcdTA2MkFcdTA2MkVcdTA2NEFcdTA2MkFcdTA2MkVcdTA2NDlcdTA2MkFcdTA2NDVcdTA2NEFcdTA2MkFcdTA2NDVcdTA2NDkiKworICAgICAgICAiXHUwNjJDXHUwNjQ1XHUwNjRBXHUwNjJDXHUwNjJEXHUwNjQ5XHUwNjJDXHUwNjQ1XHUwNjQ5XHUwNjMzXHUwNjJFXHUwNjQ5IisKKyAgICAgICAgIlx1MDYzNVx1MDYyRFx1MDY0QVx1MDYzNFx1MDYyRFx1MDY0QVx1MDYzNlx1MDYyRFx1MDY0QVx1MDY0NFx1MDYyQ1x1MDY0QSIrCisgICAgICAgICJcdTA2NDRcdTA2NDVcdTA2NEFcdTA2NEFcdTA2MkNcdTA2NEFcdTA2NEFcdTA2NDVcdTA2NEFcdTA2NDVcdTA2NDVcdTA2NEEiKworICAgICAgICAiXHUwNjQyXHUwNjQ1XHUwNjRBXHUwNjQ2XHUwNjJEXHUwNjRBXHUwNjM5XHUwNjQ1XHUwNjRBXHUwNjQzXHUwNjQ1XHUwNjRBIisKKyAgICAgICAgIlx1MDY0Nlx1MDYyQ1x1MDYyRFx1MDY0NVx1MDYyRVx1MDY0QVx1MDY0NFx1MDYyQ1x1MDY0NVx1MDY0M1x1MDY0NVx1MDY0NSIrCisgICAgICAgICJcdTA2MkNcdTA2MkRcdTA2NEFcdTA2MkRcdTA2MkNcdTA2NEFcdTA2NDVcdTA2MkNcdTA2NEFcdTA2NDFcdTA2NDVcdTA2NEEiKworICAgICAgICAiXHUwNjI4XHUwNjJEXHUwNjRBXHUwNjMzXHUwNjJFXHUwNjRBXHUwNjQ2XHUwNjJDXHUwNjRBXHUwNjM1XHUwNjQ0XHUwNkQyIisKKyAgICAgICAgIlx1MDY0Mlx1MDY0NFx1MDZEMlx1MDYyN1x1MDY0NFx1MDY0NFx1MDY0N1wwMDBcdTA2MjdcdTA2NDNcdTA2MjhcdTA2MzEiKworICAgICAgICAiXDAwMFx1MDY0NVx1MDYyRFx1MDY0NVx1MDYyRlwwMDBcdTA2MzVcdTA2NDRcdTA2MzlcdTA2NDVcMDAwXHUwNjMxXHUwNjMzIisKKyAgICAgICAgIlx1MDY0OFx1MDY0NFwwMDBcdTA2MzlcdTA2NDRcdTA2NEFcdTA2NDdcMDAwXHUwNjQ4XHUwNjMzXHUwNjQ0XHUwNjQ1XDAwMCIrCisgICAgICAgICJcdTA2MzVcdTA2NDRcdTA2NDlcdTA2MzVcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjQ0XHUwNjQ3IFx1MDYzOVx1MDY0NCIrCisgICAgICAgICJcdTA2NEFcdTA2NDcgXHUwNjQ4XHUwNjMzXHUwNjQ0XHUwNjQ1XDAwMFx1MDYyQ1x1MDY0NCBcdTA2MkNcdTA2NDRcdTA2MjciKworICAgICAgICAiXHUwNjQ0XHUwNjQ3XDAwMFx1MjAxNFx1MjAxM197fVx1MzAxNFx1MzAxNVx1MzAxMFx1MzAxMVx1MzAwQVx1MzAwQlx1MzAwOCIrCisgICAgICAgICJcdTMwMDlcdTMwMENcdTMwMERcdTMwMEVcdTMwMEYsXHUzMDAxOzojJiotPD5cMTM0JCVAIFx1MDY0Qlx1MDY0MFx1MDY0QiIrCisgICAgICAgICJcdTA2NDBcdTA2NTEgXHUwNjUyXHUwNjQwXHUwNjUyXHUwNjIxXHUwNjI3XHUwNjUzXHUwNjI3XHUwNjU0XHUwNjQ4XHUwNjU0IisKKyAgICAgICAgIlx1MDYyN1x1MDY1NVx1MDYyOVx1MDY0NFx1MDYyN1x1MDY1M1x1MDY0NFx1MDYyN1x1MDY1NFx1MDY0NFx1MDYyN1x1MDY1NSIrCisgICAgICAgICJcMDQyJ1tdXmB8flx1MzAwMlx1MzBGQlx1MzBBNVx1MzBFM1x1MDBBMlx1MDBBM1x1MDBBQ1x1MDBBNlx1MDBBNVx1MjBBOSIrCisgICAgICAgICJcdTI1MDJcdTIxOTBcdTIxOTFcdTIxOTJcdTIxOTNcdTI1QTBcdTI1Q0JBXHUwMzAwQVx1MDMwMUFcdTAzMDJBXHUwMzAzIisKKyAgICAgICAgIkFcdTAzMDhBXHUwMzBBQ1x1MDMyN0VcdTAzMDBFXHUwMzAxRVx1MDMwMkVcdTAzMDhJXHUwMzAwSVx1MDMwMUlcdTAzMDIiKworICAgICAgICAiSVx1MDMwOE5cdTAzMDNPXHUwMzAwT1x1MDMwMU9cdTAzMDJPXHUwMzAzT1x1MDMwOFVcdTAzMDBVXHUwMzAxVVx1MDMwMiIrCisgICAgICAgICJVXHUwMzA4WVx1MDMwMWFcdTAzMDBhXHUwMzAxYVx1MDMwMmFcdTAzMDNhXHUwMzA4YVx1MDMwQWNcdTAzMjdlXHUwMzAwIisKKyAgICAgICAgImVcdTAzMDFlXHUwMzAyZVx1MDMwOGlcdTAzMDBpXHUwMzAxaVx1MDMwMmlcdTAzMDhuXHUwMzAzb1x1MDMwMG9cdTAzMDEiKworICAgICAgICAib1x1MDMwMm9cdTAzMDNvXHUwMzA4dVx1MDMwMHVcdTAzMDF1XHUwMzAydVx1MDMwOHlcdTAzMDF5XHUwMzA4QVx1MDMwNCIrCisgICAgICAgICJhXHUwMzA0QVx1MDMwNmFcdTAzMDZBXHUwMzI4YVx1MDMyOENcdTAzMDFjXHUwMzAxQ1x1MDMwMmNcdTAzMDJDXHUwMzA3IisKKyAgICAgICAgImNcdTAzMDdDXHUwMzBDY1x1MDMwQ0RcdTAzMENkXHUwMzBDRVx1MDMwNGVcdTAzMDRFXHUwMzA2ZVx1MDMwNkVcdTAzMDciKworICAgICAgICAiZVx1MDMwN0VcdTAzMjhlXHUwMzI4RVx1MDMwQ2VcdTAzMENHXHUwMzAyZ1x1MDMwMkdcdTAzMDZnXHUwMzA2R1x1MDMwNyIrCisgICAgICAgICJnXHUwMzA3R1x1MDMyN2dcdTAzMjdIXHUwMzAyaFx1MDMwMklcdTAzMDNpXHUwMzAzSVx1MDMwNGlcdTAzMDRJXHUwMzA2IisKKyAgICAgICAgImlcdTAzMDZJXHUwMzI4aVx1MDMyOElcdTAzMDdKXHUwMzAyalx1MDMwMktcdTAzMjdrXHUwMzI3TFx1MDMwMWxcdTAzMDEiKworICAgICAgICAiTFx1MDMyN2xcdTAzMjdMXHUwMzBDbFx1MDMwQ05cdTAzMDFuXHUwMzAxTlx1MDMyN25cdTAzMjdOXHUwMzBDblx1MDMwQyIrCisgICAgICAgICJPXHUwMzA0b1x1MDMwNE9cdTAzMDZvXHUwMzA2T1x1MDMwQm9cdTAzMEJSXHUwMzAxclx1MDMwMVJcdTAzMjdyXHUwMzI3IisKKyAgICAgICAgIlJcdTAzMENyXHUwMzBDU1x1MDMwMXNcdTAzMDFTXHUwMzAyc1x1MDMwMlNcdTAzMjdzXHUwMzI3U1x1MDMwQ3NcdTAzMEMiKworICAgICAgICAiVFx1MDMyN3RcdTAzMjdUXHUwMzBDdFx1MDMwQ1VcdTAzMDN1XHUwMzAzVVx1MDMwNHVcdTAzMDRVXHUwMzA2dVx1MDMwNiIrCisgICAgICAgICJVXHUwMzBBdVx1MDMwQVVcdTAzMEJ1XHUwMzBCVVx1MDMyOHVcdTAzMjhXXHUwMzAyd1x1MDMwMllcdTAzMDJ5XHUwMzAyIisKKyAgICAgICAgIllcdTAzMDhaXHUwMzAxelx1MDMwMVpcdTAzMDd6XHUwMzA3Wlx1MDMwQ3pcdTAzMENPXHUwMzFCb1x1MDMxQlVcdTAzMUIiKworICAgICAgICAidVx1MDMxQkFcdTAzMENhXHUwMzBDSVx1MDMwQ2lcdTAzMENPXHUwMzBDb1x1MDMwQ1VcdTAzMEN1XHUwMzBDVVx1MDMwOCIrCisgICAgICAgICJcdTAzMDR1XHUwMzA4XHUwMzA0VVx1MDMwOFx1MDMwMXVcdTAzMDhcdTAzMDFVXHUwMzA4XHUwMzBDdVx1MDMwOFx1MDMwQyIrCisgICAgICAgICJVXHUwMzA4XHUwMzAwdVx1MDMwOFx1MDMwMEFcdTAzMDhcdTAzMDRhXHUwMzA4XHUwMzA0QVx1MDMwN1x1MDMwNGFcdTAzMDciKworICAgICAgICAiXHUwMzA0XHUwMEM2XHUwMzA0XHUwMEU2XHUwMzA0R1x1MDMwQ2dcdTAzMENLXHUwMzBDa1x1MDMwQ09cdTAzMjhvXHUwMzI4IisKKyAgICAgICAgIk9cdTAzMjhcdTAzMDRvXHUwMzI4XHUwMzA0XHUwMUI3XHUwMzBDXHUwMjkyXHUwMzBDalx1MDMwQ0dcdTAzMDFnXHUwMzAxIisKKyAgICAgICAgIk5cdTAzMDBuXHUwMzAwQVx1MDMwQVx1MDMwMWFcdTAzMEFcdTAzMDFcdTAwQzZcdTAzMDFcdTAwRTZcdTAzMDFcdTAwRDgiKworICAgICAgICAiXHUwMzAxXHUwMEY4XHUwMzAxQVx1MDMwRmFcdTAzMEZBXHUwMzExYVx1MDMxMUVcdTAzMEZlXHUwMzBGRVx1MDMxMWVcdTAzMTEiKworICAgICAgICAiSVx1MDMwRmlcdTAzMEZJXHUwMzExaVx1MDMxMU9cdTAzMEZvXHUwMzBGT1x1MDMxMW9cdTAzMTFSXHUwMzBGclx1MDMwRiIrCisgICAgICAgICJSXHUwMzExclx1MDMxMVVcdTAzMEZ1XHUwMzBGVVx1MDMxMXVcdTAzMTFTXHUwMzI2c1x1MDMyNlRcdTAzMjZ0XHUwMzI2IisKKyAgICAgICAgIkhcdTAzMENoXHUwMzBDQVx1MDMwN2FcdTAzMDdFXHUwMzI3ZVx1MDMyN09cdTAzMDhcdTAzMDRvXHUwMzA4XHUwMzA0TyIrCisgICAgICAgICJcdTAzMDNcdTAzMDRvXHUwMzAzXHUwMzA0T1x1MDMwN29cdTAzMDdPXHUwMzA3XHUwMzA0b1x1MDMwN1x1MDMwNFlcdTAzMDQiKworICAgICAgICAieVx1MDMwNFx1MDMwMFx1MDMwMVx1MDMxM1x1MDMwOFx1MDMwMVx1MDJCOTtcdTAwQThcdTAzMDFcdTAzOTFcdTAzMDFcdTAwQjciKworICAgICAgICAiXHUwMzk1XHUwMzAxXHUwMzk3XHUwMzAxXHUwMzk5XHUwMzAxXHUwMzlGXHUwMzAxXHUwM0E1XHUwMzAxXHUwM0E5XHUwMzAxIisKKyAgICAgICAgIlx1MDNCOVx1MDMwOFx1MDMwMVx1MDM5OVx1MDMwOFx1MDNBNVx1MDMwOFx1MDNCMVx1MDMwMVx1MDNCNVx1MDMwMVx1MDNCNyIrCisgICAgICAgICJcdTAzMDFcdTAzQjlcdTAzMDFcdTAzQzVcdTAzMDhcdTAzMDFcdTAzQjlcdTAzMDhcdTAzQzVcdTAzMDhcdTAzQkZcdTAzMDEiKworICAgICAgICAiXHUwM0M1XHUwMzAxXHUwM0M5XHUwMzAxXHUwM0QyXHUwMzAxXHUwM0QyXHUwMzA4XHUwNDE1XHUwMzAwXHUwNDE1XHUwMzA4IisKKyAgICAgICAgIlx1MDQxM1x1MDMwMVx1MDQwNlx1MDMwOFx1MDQxQVx1MDMwMVx1MDQxOFx1MDMwMFx1MDQyM1x1MDMwNlx1MDQxOFx1MDMwNiIrCisgICAgICAgICJcdTA0MzhcdTAzMDZcdTA0MzVcdTAzMDBcdTA0MzVcdTAzMDhcdTA0MzNcdTAzMDFcdTA0NTZcdTAzMDhcdTA0M0FcdTAzMDEiKworICAgICAgICAiXHUwNDM4XHUwMzAwXHUwNDQzXHUwMzA2XHUwNDc0XHUwMzBGXHUwNDc1XHUwMzBGXHUwNDE2XHUwMzA2XHUwNDM2XHUwMzA2IisKKyAgICAgICAgIlx1MDQxMFx1MDMwNlx1MDQzMFx1MDMwNlx1MDQxMFx1MDMwOFx1MDQzMFx1MDMwOFx1MDQxNVx1MDMwNlx1MDQzNVx1MDMwNiIrCisgICAgICAgICJcdTA0RDhcdTAzMDhcdTA0RDlcdTAzMDhcdTA0MTZcdTAzMDhcdTA0MzZcdTAzMDhcdTA0MTdcdTAzMDhcdTA0MzdcdTAzMDgiKworICAgICAgICAiXHUwNDE4XHUwMzA0XHUwNDM4XHUwMzA0XHUwNDE4XHUwMzA4XHUwNDM4XHUwMzA4XHUwNDFFXHUwMzA4XHUwNDNFXHUwMzA4IisKKyAgICAgICAgIlx1MDRFOFx1MDMwOFx1MDRFOVx1MDMwOFx1MDQyRFx1MDMwOFx1MDQ0RFx1MDMwOFx1MDQyM1x1MDMwNFx1MDQ0M1x1MDMwNCIrCisgICAgICAgICJcdTA0MjNcdTAzMDhcdTA0NDNcdTAzMDhcdTA0MjNcdTAzMEJcdTA0NDNcdTAzMEJcdTA0MjdcdTAzMDhcdTA0NDdcdTAzMDgiKworICAgICAgICAiXHUwNDJCXHUwMzA4XHUwNDRCXHUwMzA4XHUwNjI3XHUwNjUzXHUwNjI3XHUwNjU0XHUwNjQ4XHUwNjU0XHUwNjI3XHUwNjU1IisKKyAgICAgICAgIlx1MDY0QVx1MDY1NFx1MDZENVx1MDY1NFx1MDZDMVx1MDY1NFx1MDZEMlx1MDY1NFx1MDkyOFx1MDkzQ1x1MDkzMFx1MDkzQyIrCisgICAgICAgICJcdTA5MzNcdTA5M0NcdTA5MTVcdTA5M0NcdTA5MTZcdTA5M0NcdTA5MTdcdTA5M0NcdTA5MUNcdTA5M0NcdTA5MjFcdTA5M0MiKworICAgICAgICAiXHUwOTIyXHUwOTNDXHUwOTJCXHUwOTNDXHUwOTJGXHUwOTNDXHUwOUM3XHUwOUJFXHUwOUM3XHUwOUQ3XHUwOUExXHUwOUJDIisKKyAgICAgICAgIlx1MDlBMlx1MDlCQ1x1MDlBRlx1MDlCQ1x1MEEzMlx1MEEzQ1x1MEEzOFx1MEEzQ1x1MEExNlx1MEEzQ1x1MEExN1x1MEEzQyIrCisgICAgICAgICJcdTBBMUNcdTBBM0NcdTBBMkJcdTBBM0NcdTBCNDdcdTBCNTZcdTBCNDdcdTBCM0VcdTBCNDdcdTBCNTdcdTBCMjFcdTBCM0MiKworICAgICAgICAiXHUwQjIyXHUwQjNDXHUwQjkyXHUwQkQ3XHUwQkM2XHUwQkJFXHUwQkM3XHUwQkJFXHUwQkM2XHUwQkQ3XHUwQzQ2XHUwQzU2IisKKyAgICAgICAgIlx1MENCRlx1MENENVx1MENDNlx1MENENVx1MENDNlx1MENENlx1MENDNlx1MENDMlx1MENDNlx1MENDMlx1MENENVx1MEQ0NiIrCisgICAgICAgICJcdTBEM0VcdTBENDdcdTBEM0VcdTBENDZcdTBENTdcdTBERDlcdTBEQ0FcdTBERDlcdTBEQ0ZcdTBERDlcdTBEQ0ZcdTBEQ0EiKworICAgICAgICAiXHUwREQ5XHUwRERGXHUwRjQyXHUwRkI3XHUwRjRDXHUwRkI3XHUwRjUxXHUwRkI3XHUwRjU2XHUwRkI3XHUwRjVCXHUwRkI3IisKKyAgICAgICAgIlx1MEY0MFx1MEZCNVx1MEY3MVx1MEY3Mlx1MEY3MVx1MEY3NFx1MEZCMlx1MEY4MFx1MEZCM1x1MEY4MFx1MEY3MVx1MEY4MCIrCisgICAgICAgICJcdTBGOTJcdTBGQjdcdTBGOUNcdTBGQjdcdTBGQTFcdTBGQjdcdTBGQTZcdTBGQjdcdTBGQUJcdTBGQjdcdTBGOTBcdTBGQjUiKworICAgICAgICAiXHUxMDI1XHUxMDJFQVx1MDMyNWFcdTAzMjVCXHUwMzA3Ylx1MDMwN0JcdTAzMjNiXHUwMzIzQlx1MDMzMWJcdTAzMzFDIisKKyAgICAgICAgIlx1MDMyN1x1MDMwMWNcdTAzMjdcdTAzMDFEXHUwMzA3ZFx1MDMwN0RcdTAzMjNkXHUwMzIzRFx1MDMzMWRcdTAzMzFEXHUwMzI3IisKKyAgICAgICAgImRcdTAzMjdEXHUwMzJEZFx1MDMyREVcdTAzMDRcdTAzMDBlXHUwMzA0XHUwMzAwRVx1MDMwNFx1MDMwMWVcdTAzMDRcdTAzMDEiKworICAgICAgICAiRVx1MDMyRGVcdTAzMkRFXHUwMzMwZVx1MDMzMEVcdTAzMjdcdTAzMDZlXHUwMzI3XHUwMzA2Rlx1MDMwN2ZcdTAzMDdHIisKKyAgICAgICAgIlx1MDMwNGdcdTAzMDRIXHUwMzA3aFx1MDMwN0hcdTAzMjNoXHUwMzIzSFx1MDMwOGhcdTAzMDhIXHUwMzI3aFx1MDMyNyIrCisgICAgICAgICJIXHUwMzJFaFx1MDMyRUlcdTAzMzBpXHUwMzMwSVx1MDMwOFx1MDMwMWlcdTAzMDhcdTAzMDFLXHUwMzAxa1x1MDMwMUsiKworICAgICAgICAiXHUwMzIza1x1MDMyM0tcdTAzMzFrXHUwMzMxTFx1MDMyM2xcdTAzMjNMXHUwMzIzXHUwMzA0bFx1MDMyM1x1MDMwNExcdTAzMzEiKworICAgICAgICAibFx1MDMzMUxcdTAzMkRsXHUwMzJETVx1MDMwMW1cdTAzMDFNXHUwMzA3bVx1MDMwN01cdTAzMjNtXHUwMzIzTlx1MDMwNyIrCisgICAgICAgICJuXHUwMzA3Tlx1MDMyM25cdTAzMjNOXHUwMzMxblx1MDMzMU5cdTAzMkRuXHUwMzJET1x1MDMwM1x1MDMwMW9cdTAzMDMiKworICAgICAgICAiXHUwMzAxT1x1MDMwM1x1MDMwOG9cdTAzMDNcdTAzMDhPXHUwMzA0XHUwMzAwb1x1MDMwNFx1MDMwME9cdTAzMDRcdTAzMDEiKworICAgICAgICAib1x1MDMwNFx1MDMwMVBcdTAzMDFwXHUwMzAxUFx1MDMwN3BcdTAzMDdSXHUwMzA3clx1MDMwN1JcdTAzMjNyXHUwMzIzIisKKyAgICAgICAgIlJcdTAzMjNcdTAzMDRyXHUwMzIzXHUwMzA0Ulx1MDMzMXJcdTAzMzFTXHUwMzA3c1x1MDMwN1NcdTAzMjNzXHUwMzIzUyIrCisgICAgICAgICJcdTAzMDFcdTAzMDdzXHUwMzAxXHUwMzA3U1x1MDMwQ1x1MDMwN3NcdTAzMENcdTAzMDdTXHUwMzIzXHUwMzA3c1x1MDMyMyIrCisgICAgICAgICJcdTAzMDdUXHUwMzA3dFx1MDMwN1RcdTAzMjN0XHUwMzIzVFx1MDMzMXRcdTAzMzFUXHUwMzJEdFx1MDMyRFVcdTAzMjQiKworICAgICAgICAidVx1MDMyNFVcdTAzMzB1XHUwMzMwVVx1MDMyRHVcdTAzMkRVXHUwMzAzXHUwMzAxdVx1MDMwM1x1MDMwMVVcdTAzMDRcdTAzMDgiKworICAgICAgICAidVx1MDMwNFx1MDMwOFZcdTAzMDN2XHUwMzAzVlx1MDMyM3ZcdTAzMjNXXHUwMzAwd1x1MDMwMFdcdTAzMDF3XHUwMzAxIisKKyAgICAgICAgIldcdTAzMDh3XHUwMzA4V1x1MDMwN3dcdTAzMDdXXHUwMzIzd1x1MDMyM1hcdTAzMDd4XHUwMzA3WFx1MDMwOHhcdTAzMDgiKworICAgICAgICAiWVx1MDMwN3lcdTAzMDdaXHUwMzAyelx1MDMwMlpcdTAzMjN6XHUwMzIzWlx1MDMzMXpcdTAzMzFoXHUwMzMxdFx1MDMwOCIrCisgICAgICAgICJ3XHUwMzBBeVx1MDMwQVx1MDE3Rlx1MDMwN0FcdTAzMjNhXHUwMzIzQVx1MDMwOWFcdTAzMDlBXHUwMzAyXHUwMzAxYVx1MDMwMiIrCisgICAgICAgICJcdTAzMDFBXHUwMzAyXHUwMzAwYVx1MDMwMlx1MDMwMEFcdTAzMDJcdTAzMDlhXHUwMzAyXHUwMzA5QVx1MDMwMlx1MDMwMyIrCisgICAgICAgICJhXHUwMzAyXHUwMzAzQVx1MDMyM1x1MDMwMmFcdTAzMjNcdTAzMDJBXHUwMzA2XHUwMzAxYVx1MDMwNlx1MDMwMUFcdTAzMDYiKworICAgICAgICAiXHUwMzAwYVx1MDMwNlx1MDMwMEFcdTAzMDZcdTAzMDlhXHUwMzA2XHUwMzA5QVx1MDMwNlx1MDMwM2FcdTAzMDZcdTAzMDMiKworICAgICAgICAiQVx1MDMyM1x1MDMwNmFcdTAzMjNcdTAzMDZFXHUwMzIzZVx1MDMyM0VcdTAzMDllXHUwMzA5RVx1MDMwM2VcdTAzMDNFIisKKyAgICAgICAgIlx1MDMwMlx1MDMwMWVcdTAzMDJcdTAzMDFFXHUwMzAyXHUwMzAwZVx1MDMwMlx1MDMwMEVcdTAzMDJcdTAzMDllXHUwMzAyIisKKyAgICAgICAgIlx1MDMwOUVcdTAzMDJcdTAzMDNlXHUwMzAyXHUwMzAzRVx1MDMyM1x1MDMwMmVcdTAzMjNcdTAzMDJJXHUwMzA5aVx1MDMwOSIrCisgICAgICAgICJJXHUwMzIzaVx1MDMyM09cdTAzMjNvXHUwMzIzT1x1MDMwOW9cdTAzMDlPXHUwMzAyXHUwMzAxb1x1MDMwMlx1MDMwMU8iKworICAgICAgICAiXHUwMzAyXHUwMzAwb1x1MDMwMlx1MDMwME9cdTAzMDJcdTAzMDlvXHUwMzAyXHUwMzA5T1x1MDMwMlx1MDMwM29cdTAzMDIiKworICAgICAgICAiXHUwMzAzT1x1MDMyM1x1MDMwMm9cdTAzMjNcdTAzMDJPXHUwMzFCXHUwMzAxb1x1MDMxQlx1MDMwMU9cdTAzMUJcdTAzMDAiKworICAgICAgICAib1x1MDMxQlx1MDMwME9cdTAzMUJcdTAzMDlvXHUwMzFCXHUwMzA5T1x1MDMxQlx1MDMwM29cdTAzMUJcdTAzMDNPXHUwMzFCIisKKyAgICAgICAgIlx1MDMyM29cdTAzMUJcdTAzMjNVXHUwMzIzdVx1MDMyM1VcdTAzMDl1XHUwMzA5VVx1MDMxQlx1MDMwMXVcdTAzMUJcdTAzMDEiKworICAgICAgICAiVVx1MDMxQlx1MDMwMHVcdTAzMUJcdTAzMDBVXHUwMzFCXHUwMzA5dVx1MDMxQlx1MDMwOVVcdTAzMUJcdTAzMDN1XHUwMzFCIisKKyAgICAgICAgIlx1MDMwM1VcdTAzMUJcdTAzMjN1XHUwMzFCXHUwMzIzWVx1MDMwMHlcdTAzMDBZXHUwMzIzeVx1MDMyM1lcdTAzMDl5XHUwMzA5IisKKyAgICAgICAgIllcdTAzMDN5XHUwMzAzXHUwM0IxXHUwMzEzXHUwM0IxXHUwMzE0XHUwM0IxXHUwMzEzXHUwMzAwXHUwM0IxXHUwMzE0XHUwMzAwIisKKyAgICAgICAgIlx1MDNCMVx1MDMxM1x1MDMwMVx1MDNCMVx1MDMxNFx1MDMwMVx1MDNCMVx1MDMxM1x1MDM0Mlx1MDNCMVx1MDMxNFx1MDM0MiIrCisgICAgICAgICJcdTAzOTFcdTAzMTNcdTAzOTFcdTAzMTRcdTAzOTFcdTAzMTNcdTAzMDBcdTAzOTFcdTAzMTRcdTAzMDBcdTAzOTFcdTAzMTMiKworICAgICAgICAiXHUwMzAxXHUwMzkxXHUwMzE0XHUwMzAxXHUwMzkxXHUwMzEzXHUwMzQyXHUwMzkxXHUwMzE0XHUwMzQyXHUwM0I1XHUwMzEzIisKKyAgICAgICAgIlx1MDNCNVx1MDMxNFx1MDNCNVx1MDMxM1x1MDMwMFx1MDNCNVx1MDMxNFx1MDMwMFx1MDNCNVx1MDMxM1x1MDMwMVx1MDNCNSIrCisgICAgICAgICJcdTAzMTRcdTAzMDFcdTAzOTVcdTAzMTNcdTAzOTVcdTAzMTRcdTAzOTVcdTAzMTNcdTAzMDBcdTAzOTVcdTAzMTRcdTAzMDAiKworICAgICAgICAiXHUwMzk1XHUwMzEzXHUwMzAxXHUwMzk1XHUwMzE0XHUwMzAxXHUwM0I3XHUwMzEzXHUwM0I3XHUwMzE0XHUwM0I3XHUwMzEzIisKKyAgICAgICAgIlx1MDMwMFx1MDNCN1x1MDMxNFx1MDMwMFx1MDNCN1x1MDMxM1x1MDMwMVx1MDNCN1x1MDMxNFx1MDMwMVx1MDNCN1x1MDMxMyIrCisgICAgICAgICJcdTAzNDJcdTAzQjdcdTAzMTRcdTAzNDJcdTAzOTdcdTAzMTNcdTAzOTdcdTAzMTRcdTAzOTdcdTAzMTNcdTAzMDBcdTAzOTciKworICAgICAgICAiXHUwMzE0XHUwMzAwXHUwMzk3XHUwMzEzXHUwMzAxXHUwMzk3XHUwMzE0XHUwMzAxXHUwMzk3XHUwMzEzXHUwMzQyXHUwMzk3IisKKyAgICAgICAgIlx1MDMxNFx1MDM0Mlx1MDNCOVx1MDMxM1x1MDNCOVx1MDMxNFx1MDNCOVx1MDMxM1x1MDMwMFx1MDNCOVx1MDMxNFx1MDMwMCIrCisgICAgICAgICJcdTAzQjlcdTAzMTNcdTAzMDFcdTAzQjlcdTAzMTRcdTAzMDFcdTAzQjlcdTAzMTNcdTAzNDJcdTAzQjlcdTAzMTRcdTAzNDIiKworICAgICAgICAiXHUwMzk5XHUwMzEzXHUwMzk5XHUwMzE0XHUwMzk5XHUwMzEzXHUwMzAwXHUwMzk5XHUwMzE0XHUwMzAwXHUwMzk5XHUwMzEzIisKKyAgICAgICAgIlx1MDMwMVx1MDM5OVx1MDMxNFx1MDMwMVx1MDM5OVx1MDMxM1x1MDM0Mlx1MDM5OVx1MDMxNFx1MDM0Mlx1MDNCRlx1MDMxMyIrCisgICAgICAgICJcdTAzQkZcdTAzMTRcdTAzQkZcdTAzMTNcdTAzMDBcdTAzQkZcdTAzMTRcdTAzMDBcdTAzQkZcdTAzMTNcdTAzMDFcdTAzQkYiKworICAgICAgICAiXHUwMzE0XHUwMzAxXHUwMzlGXHUwMzEzXHUwMzlGXHUwMzE0XHUwMzlGXHUwMzEzXHUwMzAwXHUwMzlGXHUwMzE0XHUwMzAwIisKKyAgICAgICAgIlx1MDM5Rlx1MDMxM1x1MDMwMVx1MDM5Rlx1MDMxNFx1MDMwMVx1MDNDNVx1MDMxM1x1MDNDNVx1MDMxNFx1MDNDNVx1MDMxMyIrCisgICAgICAgICJcdTAzMDBcdTAzQzVcdTAzMTRcdTAzMDBcdTAzQzVcdTAzMTNcdTAzMDFcdTAzQzVcdTAzMTRcdTAzMDFcdTAzQzVcdTAzMTMiKworICAgICAgICAiXHUwMzQyXHUwM0M1XHUwMzE0XHUwMzQyXHUwM0E1XHUwMzE0XHUwM0E1XHUwMzE0XHUwMzAwXHUwM0E1XHUwMzE0XHUwMzAxIisKKyAgICAgICAgIlx1MDNBNVx1MDMxNFx1MDM0Mlx1MDNDOVx1MDMxM1x1MDNDOVx1MDMxNFx1MDNDOVx1MDMxM1x1MDMwMFx1MDNDOVx1MDMxNCIrCisgICAgICAgICJcdTAzMDBcdTAzQzlcdTAzMTNcdTAzMDFcdTAzQzlcdTAzMTRcdTAzMDFcdTAzQzlcdTAzMTNcdTAzNDJcdTAzQzlcdTAzMTQiKworICAgICAgICAiXHUwMzQyXHUwM0E5XHUwMzEzXHUwM0E5XHUwMzE0XHUwM0E5XHUwMzEzXHUwMzAwXHUwM0E5XHUwMzE0XHUwMzAwXHUwM0E5IisKKyAgICAgICAgIlx1MDMxM1x1MDMwMVx1MDNBOVx1MDMxNFx1MDMwMVx1MDNBOVx1MDMxM1x1MDM0Mlx1MDNBOVx1MDMxNFx1MDM0Mlx1MDNCMSIrCisgICAgICAgICJcdTAzMDBcdTAzQjFcdTAzMDFcdTAzQjVcdTAzMDBcdTAzQjVcdTAzMDFcdTAzQjdcdTAzMDBcdTAzQjdcdTAzMDFcdTAzQjkiKworICAgICAgICAiXHUwMzAwXHUwM0I5XHUwMzAxXHUwM0JGXHUwMzAwXHUwM0JGXHUwMzAxXHUwM0M1XHUwMzAwXHUwM0M1XHUwMzAxXHUwM0M5IisKKyAgICAgICAgIlx1MDMwMFx1MDNDOVx1MDMwMVx1MDNCMVx1MDMxM1x1MDM0NVx1MDNCMVx1MDMxNFx1MDM0NVx1MDNCMVx1MDMxM1x1MDMwMCIrCisgICAgICAgICJcdTAzNDVcMDAwXHUwM0IxXHUwMzE0XHUwMzAwXHUwMzQ1XDAwMFx1MDNCMVx1MDMxM1x1MDMwMVx1MDM0NVwwMDBcdTAzQjEiKworICAgICAgICAiXHUwMzE0XHUwMzAxXHUwMzQ1XDAwMFx1MDNCMVx1MDMxM1x1MDM0Mlx1MDM0NVwwMDBcdTAzQjFcdTAzMTRcdTAzNDJcdTAzNDUiKworICAgICAgICAiXDAwMFx1MDM5MVx1MDMxM1x1MDM0NVx1MDM5MVx1MDMxNFx1MDM0NVx1MDM5MVx1MDMxM1x1MDMwMFx1MDM0NVwwMDBcdTAzOTEiKworICAgICAgICAiXHUwMzE0XHUwMzAwXHUwMzQ1XDAwMFx1MDM5MVx1MDMxM1x1MDMwMVx1MDM0NVwwMDBcdTAzOTFcdTAzMTRcdTAzMDFcdTAzNDUiKworICAgICAgICAiXDAwMFx1MDM5MVx1MDMxM1x1MDM0Mlx1MDM0NVwwMDBcdTAzOTFcdTAzMTRcdTAzNDJcdTAzNDVcMDAwXHUwM0I3XHUwMzEzIisKKyAgICAgICAgIlx1MDM0NVx1MDNCN1x1MDMxNFx1MDM0NVx1MDNCN1x1MDMxM1x1MDMwMFx1MDM0NVwwMDBcdTAzQjdcdTAzMTRcdTAzMDAiKworICAgICAgICAiXHUwMzQ1XDAwMFx1MDNCN1x1MDMxM1x1MDMwMVx1MDM0NVwwMDBcdTAzQjdcdTAzMTRcdTAzMDFcdTAzNDVcMDAwXHUwM0I3IisKKyAgICAgICAgIlx1MDMxM1x1MDM0Mlx1MDM0NVwwMDBcdTAzQjdcdTAzMTRcdTAzNDJcdTAzNDVcMDAwXHUwMzk3XHUwMzEzXHUwMzQ1XHUwMzk3IisKKyAgICAgICAgIlx1MDMxNFx1MDM0NVx1MDM5N1x1MDMxM1x1MDMwMFx1MDM0NVwwMDBcdTAzOTdcdTAzMTRcdTAzMDBcdTAzNDVcMDAwXHUwMzk3IisKKyAgICAgICAgIlx1MDMxM1x1MDMwMVx1MDM0NVwwMDBcdTAzOTdcdTAzMTRcdTAzMDFcdTAzNDVcMDAwXHUwMzk3XHUwMzEzXHUwMzQyXHUwMzQ1IisKKyAgICAgICAgIlwwMDBcdTAzOTdcdTAzMTRcdTAzNDJcdTAzNDVcMDAwXHUwM0M5XHUwMzEzXHUwMzQ1XHUwM0M5XHUwMzE0XHUwMzQ1XHUwM0M5IisKKyAgICAgICAgIlx1MDMxM1x1MDMwMFx1MDM0NVwwMDBcdTAzQzlcdTAzMTRcdTAzMDBcdTAzNDVcMDAwXHUwM0M5XHUwMzEzXHUwMzAxXHUwMzQ1IisKKyAgICAgICAgIlwwMDBcdTAzQzlcdTAzMTRcdTAzMDFcdTAzNDVcMDAwXHUwM0M5XHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDNDOVx1MDMxNCIrCisgICAgICAgICJcdTAzNDJcdTAzNDVcMDAwXHUwM0E5XHUwMzEzXHUwMzQ1XHUwM0E5XHUwMzE0XHUwMzQ1XHUwM0E5XHUwMzEzXHUwMzAwIisKKyAgICAgICAgIlx1MDM0NVwwMDBcdTAzQTlcdTAzMTRcdTAzMDBcdTAzNDVcMDAwXHUwM0E5XHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDNBOSIrCisgICAgICAgICJcdTAzMTRcdTAzMDFcdTAzNDVcMDAwXHUwM0E5XHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDNBOVx1MDMxNFx1MDM0Mlx1MDM0NSIrCisgICAgICAgICJcMDAwXHUwM0IxXHUwMzA2XHUwM0IxXHUwMzA0XHUwM0IxXHUwMzAwXHUwMzQ1XHUwM0IxXHUwMzQ1XHUwM0IxXHUwMzAxIisKKyAgICAgICAgIlx1MDM0NVx1MDNCMVx1MDM0Mlx1MDNCMVx1MDM0Mlx1MDM0NVx1MDM5MVx1MDMwNlx1MDM5MVx1MDMwNFx1MDM5MVx1MDMwMCIrCisgICAgICAgICJcdTAzOTFcdTAzMDFcdTAzOTFcdTAzNDVcdTAzQjlcdTAwQThcdTAzNDJcdTAzQjdcdTAzMDBcdTAzNDVcdTAzQjdcdTAzNDUiKworICAgICAgICAiXHUwM0I3XHUwMzAxXHUwMzQ1XHUwM0I3XHUwMzQyXHUwM0I3XHUwMzQyXHUwMzQ1XHUwMzk1XHUwMzAwXHUwMzk1XHUwMzAxIisKKyAgICAgICAgIlx1MDM5N1x1MDMwMFx1MDM5N1x1MDMwMVx1MDM5N1x1MDM0NVx1MUZCRlx1MDMwMFx1MUZCRlx1MDMwMVx1MUZCRlx1MDM0MiIrCisgICAgICAgICJcdTAzQjlcdTAzMDZcdTAzQjlcdTAzMDRcdTAzQjlcdTAzMDhcdTAzMDBcdTAzQjlcdTAzMDhcdTAzMDFcdTAzQjlcdTAzNDIiKworICAgICAgICAiXHUwM0I5XHUwMzA4XHUwMzQyXHUwMzk5XHUwMzA2XHUwMzk5XHUwMzA0XHUwMzk5XHUwMzAwXHUwMzk5XHUwMzAxXHUxRkZFIisKKyAgICAgICAgIlx1MDMwMFx1MUZGRVx1MDMwMVx1MUZGRVx1MDM0Mlx1MDNDNVx1MDMwNlx1MDNDNVx1MDMwNFx1MDNDNVx1MDMwOFx1MDMwMCIrCisgICAgICAgICJcdTAzQzVcdTAzMDhcdTAzMDFcdTAzQzFcdTAzMTNcdTAzQzFcdTAzMTRcdTAzQzVcdTAzNDJcdTAzQzVcdTAzMDhcdTAzNDIiKworICAgICAgICAiXHUwM0E1XHUwMzA2XHUwM0E1XHUwMzA0XHUwM0E1XHUwMzAwXHUwM0E1XHUwMzAxXHUwM0ExXHUwMzE0XHUwMEE4XHUwMzAwIisKKyAgICAgICAgIlx1MDBBOFx1MDMwMWBcdTAzQzlcdTAzMDBcdTAzNDVcdTAzQzlcdTAzNDVcdTAzQzlcdTAzMDFcdTAzNDVcdTAzQzlcdTAzNDIiKworICAgICAgICAiXHUwM0M5XHUwMzQyXHUwMzQ1XHUwMzlGXHUwMzAwXHUwMzlGXHUwMzAxXHUwM0E5XHUwMzAwXHUwM0E5XHUwMzAxXHUwM0E5IisKKyAgICAgICAgIlx1MDM0NVx1MDBCNFx1MjAwMlx1MjAwM1x1MDNBOUtBXHUwMzBBXHUyMTkwXHUwMzM4XHUyMTkyXHUwMzM4XHUyMTk0XHUwMzM4IisKKyAgICAgICAgIlx1MjFEMFx1MDMzOFx1MjFENFx1MDMzOFx1MjFEMlx1MDMzOFx1MjIwM1x1MDMzOFx1MjIwOFx1MDMzOFx1MjIwQlx1MDMzOCIrCisgICAgICAgICJcdTIyMjNcdTAzMzhcdTIyMjVcdTAzMzhcdTIyM0NcdTAzMzhcdTIyNDNcdTAzMzhcdTIyNDVcdTAzMzhcdTIyNDhcdTAzMzgiKworICAgICAgICAiPVx1MDMzOFx1MjI2MVx1MDMzOFx1MjI0RFx1MDMzODxcdTAzMzg+XHUwMzM4XHUyMjY0XHUwMzM4XHUyMjY1XHUwMzM4IisKKyAgICAgICAgIlx1MjI3Mlx1MDMzOFx1MjI3M1x1MDMzOFx1MjI3Nlx1MDMzOFx1MjI3N1x1MDMzOFx1MjI3QVx1MDMzOFx1MjI3Qlx1MDMzOCIrCisgICAgICAgICJcdTIyODJcdTAzMzhcdTIyODNcdTAzMzhcdTIyODZcdTAzMzhcdTIyODdcdTAzMzhcdTIyQTJcdTAzMzhcdTIyQThcdTAzMzgiKworICAgICAgICAiXHUyMkE5XHUwMzM4XHUyMkFCXHUwMzM4XHUyMjdDXHUwMzM4XHUyMjdEXHUwMzM4XHUyMjkxXHUwMzM4XHUyMjkyXHUwMzM4IisKKyAgICAgICAgIlx1MjJCMlx1MDMzOFx1MjJCM1x1MDMzOFx1MjJCNFx1MDMzOFx1MjJCNVx1MDMzOFx1MzAwOFx1MzAwOVx1MzA0Qlx1MzA5OSIrCisgICAgICAgICJcdTMwNERcdTMwOTlcdTMwNEZcdTMwOTlcdTMwNTFcdTMwOTlcdTMwNTNcdTMwOTlcdTMwNTVcdTMwOTlcdTMwNTdcdTMwOTkiKworICAgICAgICAiXHUzMDU5XHUzMDk5XHUzMDVCXHUzMDk5XHUzMDVEXHUzMDk5XHUzMDVGXHUzMDk5XHUzMDYxXHUzMDk5XHUzMDY0XHUzMDk5IisKKyAgICAgICAgIlx1MzA2Nlx1MzA5OVx1MzA2OFx1MzA5OVx1MzA2Rlx1MzA5OVx1MzA2Rlx1MzA5QVx1MzA3Mlx1MzA5OVx1MzA3Mlx1MzA5QSIrCisgICAgICAgICJcdTMwNzVcdTMwOTlcdTMwNzVcdTMwOUFcdTMwNzhcdTMwOTlcdTMwNzhcdTMwOUFcdTMwN0JcdTMwOTlcdTMwN0JcdTMwOUEiKworICAgICAgICAiXHUzMDQ2XHUzMDk5XHUzMDlEXHUzMDk5XHUzMEFCXHUzMDk5XHUzMEFEXHUzMDk5XHUzMEFGXHUzMDk5XHUzMEIxXHUzMDk5IisKKyAgICAgICAgIlx1MzBCM1x1MzA5OVx1MzBCNVx1MzA5OVx1MzBCN1x1MzA5OVx1MzBCOVx1MzA5OVx1MzBCQlx1MzA5OVx1MzBCRFx1MzA5OSIrCisgICAgICAgICJcdTMwQkZcdTMwOTlcdTMwQzFcdTMwOTlcdTMwQzRcdTMwOTlcdTMwQzZcdTMwOTlcdTMwQzhcdTMwOTlcdTMwQ0ZcdTMwOTkiKworICAgICAgICAiXHUzMENGXHUzMDlBXHUzMEQyXHUzMDk5XHUzMEQyXHUzMDlBXHUzMEQ1XHUzMDk5XHUzMEQ1XHUzMDlBXHUzMEQ4XHUzMDk5IisKKyAgICAgICAgIlx1MzBEOFx1MzA5QVx1MzBEQlx1MzA5OVx1MzBEQlx1MzA5QVx1MzBBNlx1MzA5OVx1MzBFRlx1MzA5OVx1MzBGMFx1MzA5OSIrCisgICAgICAgICJcdTMwRjFcdTMwOTlcdTMwRjJcdTMwOTlcdTMwRkRcdTMwOTlcdThDNDhcdTY2RjRcdThFQ0FcdThDQzhcdTZFRDFcdTRFMzIiKworICAgICAgICAiXHU1M0U1XHU5RjlDXHU5RjlDXHU1OTUxXHU5MUQxXHU1NTg3XHU1OTQ4XHU2MUY2XHU3NjY5XHU3Rjg1XHU4NjNGXHU4N0JBIisKKyAgICAgICAgIlx1ODhGOFx1OTA4Rlx1NkEwMlx1NkQxQlx1NzBEOVx1NzNERVx1ODQzRFx1OTE2QVx1OTlGMVx1NEU4Mlx1NTM3NVx1NkIwNCIrCisgICAgICAgICJcdTcyMUJcdTg2MkRcdTlFMUVcdTVENTBcdTZGRUJcdTg1Q0RcdTg5NjRcdTYyQzlcdTgxRDhcdTg4MUZcdTVFQ0FcdTY3MTciKworICAgICAgICAiXHU2RDZBXHU3MkZDXHU5MENFXHU0Rjg2XHU1MUI3XHU1MkRFXHU2NEM0XHU2QUQzXHU3MjEwXHU3NkU3XHU4MDAxXHU4NjA2IisKKyAgICAgICAgIlx1ODY1Q1x1OERFRlx1OTczMlx1OUI2Rlx1OURGQVx1Nzg4Q1x1Nzk3Rlx1N0RBMFx1ODNDOVx1OTMwNFx1OUU3Rlx1OEFENiIrCisgICAgICAgICJcdTU4REZcdTVGMDRcdTdDNjBcdTgwN0VcdTcyNjJcdTc4Q0FcdThDQzJcdTk2RjdcdTU4RDhcdTVDNjJcdTZBMTNcdTZEREEiKworICAgICAgICAiXHU2RjBGXHU3RDJGXHU3RTM3XHU5NkZCXHU1MkQyXHU4MDhCXHU1MURDXHU1MUNDXHU3QTFDXHU3REJFXHU4M0YxXHU5Njc1IisKKyAgICAgICAgIlx1OEI4MFx1NjJDRlx1NkEwMlx1OEFGRVx1NEUzOVx1NUJFN1x1NjAxMlx1NzM4N1x1NzU3MFx1NTMxN1x1NzhGQlx1NEZCRiIrCisgICAgICAgICJcdTVGQTlcdTRFMERcdTZDQ0NcdTY1NzhcdTdEMjJcdTUzQzNcdTU4NUVcdTc3MDFcdTg0NDlcdThBQUFcdTZCQkFcdThGQjAiKworICAgICAgICAiXHU2Qzg4XHU2MkZFXHU4MkU1XHU2M0EwXHU3NTY1XHU0RUFFXHU1MTY5XHU1MUM5XHU2ODgxXHU3Q0U3XHU4MjZGXHU4QUQyIisKKyAgICAgICAgIlx1OTFDRlx1NTJGNVx1NTQ0Mlx1NTk3M1x1NUVFQ1x1NjVDNVx1NkZGRVx1NzkyQVx1OTVBRFx1OUE2QVx1OUU5N1x1OUVDRSIrCisgICAgICAgICJcdTUyOUJcdTY2QzZcdTZCNzdcdThGNjJcdTVFNzRcdTYxOTBcdTYyMDBcdTY0OUFcdTZGMjNcdTcxNDlcdTc0ODlcdTc5Q0EiKworICAgICAgICAiXHU3REY0XHU4MDZGXHU4RjI2XHU4NEVFXHU5MDIzXHU5MzRBXHU1MjE3XHU1MkEzXHU1NEJEXHU3MEM4XHU4OEMyXHU4QUFBIisKKyAgICAgICAgIlx1NUVDOVx1NUZGNVx1NjM3Qlx1NkJBRVx1N0MzRVx1NzM3NVx1NEVFNFx1NTZGOVx1NUJFN1x1NURCQVx1NjAxQ1x1NzNCMiIrCisgICAgICAgICJcdTc0NjlcdTdGOUFcdTgwNDZcdTkyMzRcdTk2RjZcdTk3NDhcdTk4MThcdTRGOEJcdTc5QUVcdTkxQjRcdTk2QjhcdTYwRTEiKworICAgICAgICAiXHU0RTg2XHU1MERBXHU1QkVFXHU1QzNGXHU2NTk5XHU2QTAyXHU3MUNFXHU3NjQyXHU4NEZDXHU5MDdDXHU5RjhEXHU2Njg4IisKKyAgICAgICAgIlx1OTYyRVx1NTI4OVx1Njc3Qlx1NjdGM1x1NkQ0MVx1NkU5Q1x1NzQwOVx1NzU1OVx1Nzg2Qlx1N0QxMFx1OTg1RVx1NTE2RCIrCisgICAgICAgICJcdTYyMkVcdTk2NzhcdTUwMkJcdTVEMTlcdTZERUFcdThGMkFcdTVGOEJcdTYxNDRcdTY4MTdcdTczODdcdTk2ODZcdTUyMjkiKworICAgICAgICAiXHU1NDBGXHU1QzY1XHU2NjEzXHU2NzRFXHU2OEE4XHU2Q0U1XHU3NDA2XHU3NUUyXHU3Rjc5XHU4OENGXHU4OEUxXHU5MUNDIisKKyAgICAgICAgIlx1OTZFMlx1NTMzRlx1NkVCQVx1NTQxRFx1NzFEMFx1NzQ5OFx1ODVGQVx1OTZBM1x1OUM1N1x1OUU5Rlx1Njc5N1x1NkRDQiIrCisgICAgICAgICJcdTgxRThcdTdBQ0JcdTdCMjBcdTdDOTJcdTcyQzBcdTcwOTlcdThCNThcdTRFQzBcdTgzMzZcdTUyM0FcdTUyMDdcdTVFQTYiKworICAgICAgICAiXHU2MkQzXHU3Q0Q2XHU1Qjg1XHU2RDFFXHU2NkI0XHU4RjNCXHU4ODRDXHU5NjREXHU4OThCXHU1RUQzXHU1MTQwXHU1NUMwIisKKyAgICAgICAgIlx1NTg1QVx1NjY3NFx1NTFERVx1NzMyQVx1NzZDQVx1NzkzQ1x1Nzk1RVx1Nzk2NVx1Nzk4Rlx1OTc1Nlx1N0NCRVx1N0ZCRCIrCisgICAgICAgICJcdTg2MTJcdThBRjhcdTkwMzhcdTkwRkRcdTk4RUZcdTk4RkNcdTk5MjhcdTlEQjRcdTA1RDlcdTA1QjRcdTA1RjJcdTA1QjciKworICAgICAgICAiXHUwNUU5XHUwNUMxXHUwNUU5XHUwNUMyXHUwNUU5XHUwNUJDXHUwNUMxXHUwNUU5XHUwNUJDXHUwNUMyXHUwNUQwXHUwNUI3IisKKyAgICAgICAgIlx1MDVEMFx1MDVCOFx1MDVEMFx1MDVCQ1x1MDVEMVx1MDVCQ1x1MDVEMlx1MDVCQ1x1MDVEM1x1MDVCQ1x1MDVENFx1MDVCQyIrCisgICAgICAgICJcdTA1RDVcdTA1QkNcdTA1RDZcdTA1QkNcdTA1RDhcdTA1QkNcdTA1RDlcdTA1QkNcdTA1REFcdTA1QkNcdTA1REJcdTA1QkMiKworICAgICAgICAiXHUwNURDXHUwNUJDXHUwNURFXHUwNUJDXHUwNUUwXHUwNUJDXHUwNUUxXHUwNUJDXHUwNUUzXHUwNUJDXHUwNUU0XHUwNUJDIisKKyAgICAgICAgIlx1MDVFNlx1MDVCQ1x1MDVFN1x1MDVCQ1x1MDVFOFx1MDVCQ1x1MDVFOVx1MDVCQ1x1MDVFQVx1MDVCQ1x1MDVENVx1MDVCOSIrCisgICAgICAgICJcdTA1RDFcdTA1QkZcdTA1REJcdTA1QkZcdTA1RTRcdTA1QkYiCisgICAgOworCisgICAgc3RhdGljIGZpbmFsIENvbXBhY3RCeXRlQXJyYXkgY2Fub25DbGFzcyA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KAorICAgICAgICAiXDAwMFx1MDIwMFx1QTVBNVwwMDZcMDAwXHUwMDgwXDAwMFwwMDBcdTAxMDBcMDAwXHUwMTgwXHUwMjAwXHUwMjgwXHUwMzAwIisKKyAgICAgICAgIlwwMDBcMDAwXDAwMFx1MDM4MFx1QTVBNVwwMDRcdTA0MDBcdTA0ODBcdTA1MDBcdTA0ODBcdTA0ODBcdTA1ODBcdTA2MDAiKworICAgICAgICAiXHUwNjgwXHUwNzAwXHUwNzgwXHUwODAwXHVBNUE1XDAxNlwwMDBcdTA4ODBcMDAwXHUwOTAwXHVBNUE1XDAxN1wwMDBcdTA5ODAiKworICAgICAgICAiXHVBNUE1XDAzNlwwMDBcdTBBMDBcdTBBODBcdUE1QTVcdTAxOTRcMDAwXHUwQjAwXHVBNUE1XDAwNVwwMDBcdTBCODBcMDAwIisKKyAgICAgICAgIlwwMDBcMDAwIgorICAgICAgICAsCisgICAgICAgICJcMDAwXHUwQzAwXHVBNTgwXHUwMEE1XHUxNUU2XHVFOEE1XHUwNERDXHVFOEQ4XHVBNTA1XHVEQ0NBXHVDQUE1XHUwNERDIisKKyAgICAgICAgIlx1Q0FDQVx1QTUwQlx1RENBNVx1MDUwMVx1QTUwNFx1RENBNVx1MDhFNlx1RjBFNlx1RENEQ1x1RENFNlx1RTZFNlx1RENEQyIrCisgICAgICAgICJcdUE1MTFcdTAwRUFcdUVBRTlcdUE1MjBcdTAwQTVcdTA0RTZcdUE1OEFcdTAwRENcdUE1MDRcdUU2RENcdUU2RTZcdUU2REUiKworICAgICAgICAiXHVEQ0E1XHUwNkU2XHUwMEE1XHUwNURDXHVFNkU2XHVEQ0U2XHVFNkRFXHVFNEU2XHUwQTBCXHUwQzBEXHUwRTBGXHUxMDExIisKKyAgICAgICAgIlx1MTIxM1wwMjRcdTE1MTZcMDI3XDAzMFx1MTkwMFx1RTZBNVx1ODYwMFx1MUIxQ1x1MUQxRVx1MUYyMFx1MjEyMlx1RTZFNiIrCisgICAgICAgICJcdURDQTVcdTFBMDBcdTIzQTVcdTY1MDBcdUE1MDdcdUU2MDBcdTAwQTVcdTA0RTZcdURDRTZcMDAwXHVFNkU2XHUwMERDIisKKyAgICAgICAgIlx1RTZFNlx1RENBNVx1MjMwMFx1MjRBNVx1MUUwMFx1RTZEQ1x1RTZFNlx1RENFNlx1RTZEQ1x1RENEQ1x1RTZEQ1x1RENFNiIrCisgICAgICAgICJcdURDRTZcdUU2RTZcdURDRTZcdURDRTZcdURDRTZcdURDRTZcdUU2QTVcdTcxMDBcdTA3QTVcdTEwMDBcdTA5MDBcMDAwIisKKyAgICAgICAgIlx1RTZEQ1x1RTZFNlx1QTU2N1wwMDdcdUE1MTBcMDExXHVBNTdGXDAxMVx1QTU3RlwwMTFcdUE1MDdUXHU1QkE1XHU3MzAwIisKKyAgICAgICAgIlx1MDlBNVx1NkQwMFx1Njc2N1x1MDlBNVx1MEQwMFx1QTUwNFx1NkJBNVx1NkMwMFx1NzY3Nlx1QTUwRVx1MDBBNVx1MDQ3QSIrCisgICAgICAgICJcdUE1NENcdTAwRENcdURDQTVcdTFCMDBcdURDMDBcdURDMDBcdUQ4QTVcdTM3MDBcdTgxODJcdTAwODRcdUE1MDVcdTAwQTUiKworICAgICAgICAiXHUwNDgyXDAwMFx1ODIwMFx1RTZFNlx1MDkwMFx1RTZFNlx1QTUzRVx1MDBEQ1x1QTU3MFwwMDdcMDExXHVBNTk4XDAxMSIrCisgICAgICAgICJcdUE1NTZcdTAwRTRcdUE1QTZcdTAwRTZcdUU2MDFcdTAxQTVcdTA0RTZcdTAxMDFcdTAxRTZcdUU2QTVcdTA0MDBcdUU2QTUiKworICAgICAgICAiXHU0ODAwXHVEQUU0XHVFOERFXHVFMEUwXHVBNTY5XDAxMFx1MDhBNVx1ODMwMFx1MUFBNVx1ODEwMFx1QTUwNFx1RTZBNSIrCisgICAgICAgICJcdTVDMDAiCisgICAgICAgICk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTNlMDg3NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDU0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU3RhY2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworCisvKioKKyAqIEEgc3ViY2xhc3Mgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB0aGF0IGFkZHMgdGhlIGFiaWxpdHkgdG8gdXNlIGEgZGljdGlvbmFyeQorICogdG8gZnVydGhlciBzdWJkaXZpZGUgcmFuZ2VzIG9mIHRleHQgYmV5b25kIHdoYXQgaXMgcG9zc2libGUgdXNpbmcganVzdCB0aGUKKyAqIHN0YXRlLXRhYmxlLWJhc2VkIGFsZ29yaXRobS4gIFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSwgdG8gaGFuZGxlCisgKiB3b3JkIGFuZCBsaW5lIGJyZWFraW5nIGluIFRoYWksIHdoaWNoIGRvZXNuJ3QgdXNlIHNwYWNlcyBiZXR3ZWVuIHdvcmRzLiAgVGhlCisgKiBzdGF0ZS10YWJsZS1iYXNlZCBhbGdvcml0aG0gdXNlZCBieSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBpcyB1c2VkIHRvIGRpdmlkZQorICogdXAgdGV4dCBhcyBmYXIgYXMgcG9zc2libGUsIGFuZCB0aGVuIGNvbnRpZ3VvdXMgcmFuZ2VzIG9mIGxldHRlcnMgYXJlCisgKiByZXBlYXRlZGx5IGNvbXBhcmVkIGFnYWluc3QgYSBsaXN0IG9mIGtub3duIHdvcmRzIChpLmUuLCB0aGUgZGljdGlvbmFyeSkKKyAqIHRvIGRpdmlkZSB0aGVtIHVwIGludG8gd29yZHMuCisgKgorICogRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciB1c2VzIHRoZSBzYW1lIHJ1bGUgbGFuZ3VhZ2UgYXMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQsCisgKiBidXQgYWRkcyBvbmUgbW9yZSBzcGVjaWFsIHN1YnN0aXR1dGlvbiBuYW1lOiBfZGljdGlvbmFyeV8uICBUaGlzIHN1YnN0aXR1dGlvbgorICogbmFtZSBpcyB1c2VkIHRvIGlkZW50aWZ5IGNoYXJhY3RlcnMgaW4gd29yZHMgaW4gdGhlIGRpY3Rpb25hcnkuICBUaGUgaWRlYSBpcyB0aGF0CisgKiBpZiB0aGUgaXRlcmF0b3IgcGFzc2VzIG92ZXIgYSBjaHVuayBvZiB0ZXh0IHRoYXQgaW5jbHVkZXMgdHdvIG9yIG1vcmUgY2hhcmFjdGVycworICogaW4gYSByb3cgdGhhdCBhcmUgaW5jbHVkZWQgaW4gX2RpY3Rpb25hcnlfLCBpdCBnb2VzIGJhY2sgdGhyb3VnaCB0aGF0IHJhbmdlIGFuZAorICogZGVyaXZlcyBhZGRpdGlvbmFsIGJyZWFrIHBvc2l0aW9ucyAoaWYgcG9zc2libGUpIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LgorICoKKyAqIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IgaXMgYWxzbyBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBmaWxlbmFtZSBvZiBhIGRpY3Rpb25hcnkKKyAqIGZpbGUuICBJdCB1c2VzIENsYXNzLmdldFJlc291cmNlKCkgdG8gbG9jYXRlIHRoZSBkaWN0aW9uYXJ5IGZpbGUuICBUaGUKKyAqIGRpY3Rpb25hcnkgZmlsZSBpcyBpbiBhIHNlcmlhbGl6ZWQgYmluYXJ5IGZvcm1hdC4gIFdlIGhhdmUgYSB2ZXJ5IHByaW1pdGl2ZSAoYW5kCisgKiBzbG93KSBCdWlsZERpY3Rpb25hcnlGaWxlIHV0aWxpdHkgZm9yIGNyZWF0aW5nIGRpY3Rpb25hcnkgZmlsZXMsIGJ1dCBhcmVuJ3QKKyAqIGN1cnJlbnRseSBtYWtpbmcgaXQgcHVibGljLiAgQ29udGFjdCB1cyBmb3IgaGVscC4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IgZXh0ZW5kcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIGEgbGlzdCBvZiBrbm93biB3b3JkcyB0aGF0IGlzIHVzZWQgdG8gZGl2aWRlIHVwIGNvbnRpZ3VvdXMgcmFuZ2VzIG9mIGxldHRlcnMsCisgICAgICogc3RvcmVkIGluIGEgY29tcHJlc3NlZCwgaW5kZXhlZCwgZm9ybWF0IHRoYXQgb2ZmZXJzIGZhc3QgYWNjZXNzCisgICAgICovCisgICAgcHJpdmF0ZSBCcmVha0RpY3Rpb25hcnkgZGljdGlvbmFyeTsKKworICAgIC8qKgorICAgICAqIGEgbGlzdCBvZiBmbGFncyBpbmRpY2F0aW5nIHdoaWNoIGNoYXJhY3RlciBjYXRlZ29yaWVzIGFyZSBjb250YWluZWQgaW4KKyAgICAgKiB0aGUgZGljdGlvbmFyeSBmaWxlICh0aGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIHJhbmdlcyBvZiBjaGFyYWN0ZXJzCisgICAgICogdG8gYXBwbHkgdGhlIGRpY3Rpb25hcnkgdG8pCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuW10gY2F0ZWdvcnlGbGFnczsKKworCisgICAgLyoqCisgICAgICogd2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRlZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRoYXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFibGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2YgdGV4dAorICAgICAqLworICAgIHByaXZhdGUgaW50W10gY2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBpZiBjYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVsbCwgdGhpcyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcG9zaXRpb25JbkNhY2hlOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCB2YXJpYWJsZSBuYW1lIGZvciBjaGFyYWN0ZXJzIGluIHdvcmRzIGluIGRpY3Rpb25hcnkKKyAgICAgKi8KKyAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcnVsZXMgU2FtZSBhcyB0aGUgcnVsZXMgcGFyYW1ldGVyIG9uIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IsCisgICAgICogZXhjZXB0IGZvciB0aGUgc3BlY2lhbCBtZWFuaW5nIG9mICJfZGljdGlvbmFyeV8iLiAgVGhpcyBwYXJhbWV0ZXIgaXMganVzdAorICAgICAqIHBhc3NlZCB0aHJvdWdoIHRvIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY29uc3RydWN0b3IuCisgICAgICogQHBhcmFtIGRpY3Rpb25hcnlTdHJlYW0gdGhlIHN0cmVhbSBjb250YWluaW5nIHRoZSBkaWN0aW9uYXJ5IGRhdGEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcihTdHJpbmcgcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gZGljdGlvbmFyeVN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIocnVsZXMpOworICAgICAgICBkaWN0aW9uYXJ5ID0gbmV3IEJyZWFrRGljdGlvbmFyeShkaWN0aW9uYXJ5U3RyZWFtKTsKKyAgICB9CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBEaWN0aW9uYXJCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBwcmVjb21waWxlZCBydWxlcy4KKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBhbiBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0aGUgYmluYXJ5IChmbGF0dGVuZWQpIGNvbXBpbGVkIHJ1bGVzLgorICAgICAqIEBwYXJhbSBkaWN0aW9uYXJ5U3RyZWFtIGFuIGlucHV0IHN0cmVhbSBjb250YWluaW5nIHRoZSBkaWN0aW9uYXJ5IGRhdGEKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcihJbnB1dFN0cmVhbSBjb21waWxlZFJ1bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBkaWN0aW9uYXJ5U3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgIGZSRGF0YSA9IFJCQklEYXRhV3JhcHBlci5nZXQoY29tcGlsZWRSdWxlcyk7ICAgLy8gSW5pdCB0aGUgUkJCSSBwYXJ0IG9mIHRoaXMgaXRlcmF0b3IuCisgICAgICAgZGljdGlvbmFyeSA9IG5ldyBCcmVha0RpY3Rpb25hcnkoZGljdGlvbmFyeVN0cmVhbSk7CisgICAgfQorICAgICAgICAgICAgICAgICAgICAKKworICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKyAgICAgICAgc3VwZXIuc2V0VGV4dChuZXdUZXh0KTsKKyAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudCA9IDA7CisgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3Mgc3RhcnRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpcnN0KCkgeworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50ID0gMDsKKyAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gMDsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpcnN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3MgZW5kaW5nIG9mZnNldCkuCisgICAgICogQHJldHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBsYXN0KCkgeworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50ID0gMDsKKyAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gMDsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmxhc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3Igb25lIHN0ZXAgYmFja3dhcmRzLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSBjYWNoZWQgYnJlYWsgcG9zaXRpb25zIGFuZCB3ZSdyZSBzdGlsbCBpbiB0aGUgcmFuZ2UKKyAgICAgICAgLy8gY292ZXJlZCBieSB0aGVtLCBqdXN0IG1vdmUgb25lIHN0ZXAgYmFja3dhcmQgaW4gdGhlIGNhY2hlCisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyAhPSBudWxsICYmIHBvc2l0aW9uSW5DYWNoZSA+IDApIHsKKyAgICAgICAgICAgIC0tcG9zaXRpb25JbkNhY2hlOworICAgICAgICAgICAgdGV4dC5zZXRJbmRleChjYWNoZWRCcmVha1Bvc2l0aW9uc1twb3NpdGlvbkluQ2FjaGVdKTsKKyAgICAgICAgICAgIHJldHVybiBjYWNoZWRCcmVha1Bvc2l0aW9uc1twb3NpdGlvbkluQ2FjaGVdOworICAgICAgICB9CisKKyAgICAgICAgLy8gb3RoZXJ3aXNlLCBkdW1wIHRoZSBjYWNoZSBhbmQgdXNlIHRoZSBpbmhlcml0ZWQgcHJldmlvdXMoKSBtZXRob2QgdG8gbW92ZQorICAgICAgICAvLyBiYWNrd2FyZC4gIFRoaXMgbWF5IGZpbGwgdXAgdGhlIGNhY2hlIHdpdGggbmV3IGJyZWFrIHBvc2l0aW9ucywgaW4gd2hpY2gKKyAgICAgICAgLy8gY2FzZSB3ZSBoYXZlIHRvIG1hcmsgb3VyIHBvc2l0aW9uIGluIHRoZSBjYWNoZS4gSWYgaXQgZG9lc24ndCwgdXNlIG5leHQoKQorICAgICAgICAvLyB0byBtb3ZlIGZvcndhcmQgdW50aWwgd2UgaGl0IG9yIHBhc3MgdGhlIGN1cnJlbnQgcG9zaXRpb24uIFRoaXMgKndpbGwqIGZpbGwKKyAgICAgICAgLy8gdGhlIGNhY2hlLgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBjdXJyZW50KCk7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc3VwZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNhY2hlZEJyZWFrUG9zaXRpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSBjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGggLSAyOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPCBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBpbnQgbmV4dFJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobmV4dFJlc3VsdCA+PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHRSZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoIC0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICB0ZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbgorICAgICAqIGJlZm9yZSB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmcm9tCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgYmVmb3JlICJvZmZzZXQiCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBjaGVja09mZnNldChvZmZzZXQsIHRleHQpOworCisgICAgICAgIC8vIGlmIHdlIGhhdmUgbm8gY2FjaGVkIGJyZWFrIHBvc2l0aW9ucywgb3IgIm9mZnNldCIgaXMgb3V0c2lkZSB0aGUKKyAgICAgICAgLy8gcmFuZ2UgY292ZXJlZCBieSB0aGUgY2FjaGUsIHdlIGNhbiBqdXN0IGNhbGwgdGhlIGluaGVyaXRlZCByb3V0aW5lCisgICAgICAgIC8vICh3aGljaCB3aWxsIGV2ZW50dWFsbHkgY2FsbCBvdGhlciByb3V0aW5lcyBpbiB0aGlzIGNsYXNzIHRoYXQgbWF5CisgICAgICAgIC8vIHJlZnJlc2ggdGhlIGNhY2hlKQorICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgPT0gbnVsbCB8fCBvZmZzZXQgPD0gY2FjaGVkQnJlYWtQb3NpdGlvbnNbMF0gfHwKKyAgICAgICAgICAgICAgICBvZmZzZXQgPiBjYWNoZWRCcmVha1Bvc2l0aW9uc1tjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGggLSAxXSkgeworICAgICAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnByZWNlZGluZyhvZmZzZXQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gb24gdGhlIG90aGVyIGhhbmQsIGlmICJvZmZzZXQiIGlzIHdpdGhpbiB0aGUgcmFuZ2UgY292ZXJlZCBieSB0aGUgY2FjaGUsCisgICAgICAgIC8vIHRoZW4gYWxsIHdlIGhhdmUgdG8gZG8gaXMgc2VhcmNoIHRoZSBjYWNoZSBmb3IgdGhlIGxhc3QgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgLy8gYmVmb3JlICJvZmZzZXQiCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChwb3NpdGlvbkluQ2FjaGUgPCBjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGgKKyAgICAgICAgICAgICAgICAgICAmJiBvZmZzZXQgPiBjYWNoZWRCcmVha1Bvc2l0aW9uc1twb3NpdGlvbkluQ2FjaGVdKQorICAgICAgICAgICAgICAgICsrcG9zaXRpb25JbkNhY2hlOworICAgICAgICAgICAgLS1wb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pOworICAgICAgICAgICAgcmV0dXJuIHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhZnRlcgorICAgICAqIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvcndhcmQgZnJvbQorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciAib2Zmc2V0IgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZm9sbG93aW5nKGludCBvZmZzZXQpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCB0ZXh0KTsKKworICAgICAgICAvLyBpZiB3ZSBoYXZlIG5vIGNhY2hlZCBicmVhayBwb3NpdGlvbnMsIG9yIGlmICJvZmZzZXQiIGlzIG91dHNpZGUgdGhlCisgICAgICAgIC8vIHJhbmdlIGNvdmVyZWQgYnkgdGhlIGNhY2hlLCB0aGVuIGR1bXAgdGhlIGNhY2hlIGFuZCBjYWxsIG91cgorICAgICAgICAvLyBpbmhlcml0ZWQgZm9sbG93aW5nKCkgbWV0aG9kLiAgVGhpcyB3aWxsIGNhbGwgb3RoZXIgbWV0aG9kcyBpbiB0aGlzCisgICAgICAgIC8vIGNsYXNzIHRoYXQgbWF5IHJlZnJlc2ggdGhlIGNhY2hlLgorICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgPT0gbnVsbCB8fCBvZmZzZXQgPCBjYWNoZWRCcmVha1Bvc2l0aW9uc1swXSB8fAorICAgICAgICAgICAgICAgIG9mZnNldCA+PSBjYWNoZWRCcmVha1Bvc2l0aW9uc1tjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGggLSAxXSkgeworICAgICAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmZvbGxvd2luZyhvZmZzZXQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gb24gdGhlIG90aGVyIGhhbmQsIGlmICJvZmZzZXQiIGlzIHdpdGhpbiB0aGUgcmFuZ2UgY292ZXJlZCBieSB0aGUKKyAgICAgICAgLy8gY2FjaGUsIHRoZW4ganVzdCBzZWFyY2ggdGhlIGNhY2hlIGZvciB0aGUgZmlyc3QgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgLy8gYWZ0ZXIgIm9mZnNldCIKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgICAgICAgICAgd2hpbGUgKHBvc2l0aW9uSW5DYWNoZSA8IGNhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aAorICAgICAgICAgICAgICAgICAgICYmIG9mZnNldCA+PSBjYWNoZWRCcmVha1Bvc2l0aW9uc1twb3NpdGlvbkluQ2FjaGVdKQorICAgICAgICAgICAgICAgICsrcG9zaXRpb25JbkNhY2hlOworICAgICAgICAgICAgdGV4dC5zZXRJbmRleChjYWNoZWRCcmVha1Bvc2l0aW9uc1twb3NpdGlvbkluQ2FjaGVdKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uIAorICAgICAqIAorICAgICAqIFRPRE86ICBub3Qgc3VwcG9ydGVkIHdpdGggZGljdGlvbmFyeSBiYXNlZCBicmVhayBpdGVyYXRvcnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgICBwdWJsaWMgaW50IGdldFJ1bGVTdGF0dXMoKSB7CisgICAgICAgIHJldHVybiAwOworICAgICB9CisKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCAKKyAgICAgKiByZWNlbnRseSByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4gIFRoZSB2YWx1ZXMgYXBwZWFyIGluIHRoZSBydWxlIHNvdXJjZQorICAgICAqIHdpdGhpbiBicmFja2V0cywgezEyM30sIGZvciBleGFtcGxlLiAgVGhlIGRlZmF1bHQgc3RhdHVzIHZhbHVlIGZvciBydWxlcworICAgICAqIHRoYXQgZG8gbm90IGV4cGxpY2l0bHkgcHJvdmlkZSBvbmUgaXMgemVyby4KKyAgICAgKiA8cD4KKyAgICAgKiBUT0RPOiBub3Qgc3VwcG9ydGVkIGZvciBkaWN0aW9uYXJ5IGJhc2VkIGJyZWFrIGl0ZXJhdG9yLiAKKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWxsSW5BcnJheSBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4gIAorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQgCisgICAgICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IHRoYXQgdGhlIGFycmF5IGlzIHRvbyBzbWFsbCwgdGhlIHJldHVybiB2YWx1ZQorICAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgICogICAgICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UnVsZVN0YXR1c1ZlYyhpbnRbXSBmaWxsSW5BcnJheSkgeworICAgICAgICBpZiAoZmlsbEluQXJyYXkgIT0gbnVsbCAmJiBmaWxsSW5BcnJheS5sZW5ndGg+PTEpIHsgIAorICAgICAgICAgICAgZmlsbEluQXJyYXlbMF0gPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbiBmb3IgbmV4dCgpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlTmV4dCgpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKworICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gY2FjaGVkIGJyZWFrIHBvc2l0aW9ucywgb3IgaWYgd2UndmUganVzdCBtb3ZlZAorICAgICAgICAvLyBvZmYgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgY292ZXJlZCBieSB0aGUgY2FjaGUsIHdlIGhhdmUgdG8gZHVtcAorICAgICAgICAvLyBhbmQgcG9zc2libHkgcmVnZW5lcmF0ZSB0aGUgY2FjaGUKKyAgICAgICAgaWYgKGNhY2hlZEJyZWFrUG9zaXRpb25zID09IG51bGwgfHwgcG9zaXRpb25JbkNhY2hlID09IGNhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aCAtIDEpIHsKKworICAgICAgICAgICAgLy8gc3RhcnQgYnkgdXNpbmcgdGhlIGluaGVyaXRlZCBoYW5kbGVOZXh0KCkgdG8gZmluZCBhIHRlbnRhdGl2ZSByZXR1cm4KKyAgICAgICAgICAgIC8vIHZhbHVlLiAgIGRpY3Rpb25hcnlDaGFyQ291bnQgdGVsbHMgdXMgaG93IG1hbnkgZGljdGlvbmFyeSBjaGFyYWN0ZXJzCisgICAgICAgICAgICAvLyB3ZSBwYXNzZWQgb3ZlciBvbiBvdXIgd2F5IHRvIHRoZSB0ZW50YXRpdmUgcmV0dXJuIHZhbHVlCisgICAgICAgICAgICBpbnQgc3RhcnRQb3MgPSB0ZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudCA9IDA7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc3VwZXIuaGFuZGxlTmV4dCgpOworCisgICAgICAgICAgICAvLyBpZiB3ZSBwYXNzZWQgb3ZlciBtb3JlIHRoYW4gb25lIGRpY3Rpb25hcnkgY2hhcmFjdGVyLCB0aGVuIHdlIHVzZQorICAgICAgICAgICAgLy8gZGl2aWRlVXBEaWN0aW9uYXJ5UmFuZ2UoKSB0byByZWdlbmVyYXRlIHRoZSBjYWNoZWQgYnJlYWsgcG9zaXRpb25zCisgICAgICAgICAgICAvLyBmb3IgdGhlIG5ldyByYW5nZQorICAgICAgICAgICAgaWYgKGZEaWN0aW9uYXJ5Q2hhckNvdW50ID4gMSAmJiByZXN1bHQgLSBzdGFydFBvcyA+IDEpIHsKKyAgICAgICAgICAgICAgICBkaXZpZGVVcERpY3Rpb25hcnlSYW5nZShzdGFydFBvcywgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB0aGUgdmFsdWUgd2UgZ290IGJhY2sgZnJvbSB0aGUgaW5oZXJpdGVkIGZ1Y3Rpb24KKyAgICAgICAgICAgIC8vIGlzIG91ciByZXR1cm4gdmFsdWUsIGFuZCB3ZSBjYW4gZHVtcCB0aGUgY2FjaGUKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGNhY2hlIG9mIGJyZWFrIHBvc2l0aW9ucyBoYXMgYmVlbiByZWdlbmVyYXRlZCAob3IgZXhpc3RlZCBhbGwKKyAgICAgICAgLy8gYWxvbmcpLCB0aGVuIGp1c3QgYWR2YW5jZSB0byB0aGUgbmV4dCBicmVhayBwb3NpdGlvbiBpbiB0aGUgY2FjaGUKKyAgICAgICAgLy8gYW5kIHJldHVybiBpdAorICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgKytwb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pOworICAgICAgICAgICAgcmV0dXJuIGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV07CisgICAgICAgIH0KKyAgICAgICAgQXNzZXJ0LmFzc3J0KGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIC05OTk5OyAgIC8vIFNIT1VMRCBORVZFUiBHRVQgSEVSRSEKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgdGhlIGRpY3Rpb25hcnktYmFzZWQKKyAgICAgKiBhbGdvcml0aG0uICBHaXZlbiB0aGUgZW5kcG9pbnRzIG9mIGEgcmFuZ2Ugb2YgdGV4dCwgaXQgdXNlcyB0aGUKKyAgICAgKiBkaWN0aW9uYXJ5IHRvIGRldGVybWluZSB0aGUgcG9zaXRpb25zIG9mIGFueSBib3VuZGFyaWVzIGluIHRoaXMKKyAgICAgKiByYW5nZS4gIEl0IHN0b3JlcyBhbGwgdGhlIGJvdW5kYXJ5IHBvc2l0aW9ucyBpdCBkaXNjb3ZlcnMgaW4KKyAgICAgKiBjYWNoZWRCcmVha1Bvc2l0aW9ucyBzbyB0aGF0IHdlIG9ubHkgaGF2ZSB0byBkbyB0aGlzIHdvcmsgb25jZQorICAgICAqIGZvciBlYWNoIHRpbWUgd2UgZW50ZXIgdGhlIHJhbmdlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkaXZpZGVVcERpY3Rpb25hcnlSYW5nZShpbnQgc3RhcnRQb3MsIGludCBlbmRQb3MpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKworICAgICAgICAvLyB0aGUgcmFuZ2Ugd2UncmUgZGl2aWRpbmcgbWF5IGJlZ2luIG9yIGVuZCB3aXRoIG5vbi1kaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgLy8gKGkuZS4sIGZvciBsaW5lIGJyZWFraW5nLCB3ZSBtYXkgaGF2ZSBsZWFkaW5nIG9yIHRyYWlsaW5nIHB1bmN0dWF0aW9uCisgICAgICAgIC8vIHRoYXQgbmVlZHMgdG8gYmUga2VwdCB3aXRoIHRoZSB3b3JkKS4gIFNlZWsgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAgICAvLyByYW5nZSB0byB0aGUgZmlyc3QgZGljdGlvbmFyeSBjaGFyYWN0ZXIKKyAgICAgICAgdGV4dC5zZXRJbmRleChzdGFydFBvcyk7CisgICAgICAgIGludCBjID0gQ0lDdXJyZW50MzIodGV4dCk7CisgICAgICAgIHdoaWxlIChpc0RpY3Rpb25hcnlDaGFyKGMpID09IGZhbHNlKSB7ICAKKyAgICAgICAgICAgIGMgPSBDSU5leHQzMih0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlxuRGl2aWRpbmcgdXAgcmFuZ2UgZnJvbSAiICsgKHRleHQuZ2V0SW5kZXgoKSArIDEpICsgIiB0byAiICsgZW5kUG9zKTsKKworICAgICAgICAvLyBpbml0aWFsaXplLiAgV2UgbWFpbnRhaW4gdHdvIHN0YWNrczogY3VycmVudEJyZWFrUG9zaXRpb25zIGNvbnRhaW5zCisgICAgICAgIC8vIHRoZSBsaXN0IG9mIGJyZWFrIHBvc2l0aW9ucyB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgaWYgd2Ugc3VjY2Vzc2Z1bGx5CisgICAgICAgIC8vIGZpbmlzaCB0cmF2ZXJzaW5nIHRoZSB3aG9sZSByYW5nZSBub3cuICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zIGxpc3RzCisgICAgICAgIC8vIGFsbCBvdGhlciBwb3NzaWJsZSB3b3JkIGVuZHMgd2UndmUgcGFzc2VkIGFsb25nIHRoZSB3YXkuICAoV2hlbmV2ZXIKKyAgICAgICAgLy8gd2UgcmVhY2ggYW4gZXJyb3IgW2Egc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGNhbid0IGJlZ2luIGFueSB3b3JkCisgICAgICAgIC8vIGluIHRoZSBkaWN0aW9uYXJ5XSwgd2UgYmFjayB1cCwgcG9zc2libHkgZGVsZXRlIHNvbWUgYnJlYWtzIGZyb20KKyAgICAgICAgLy8gY3VycmVudEJyZWFrUG9zaXRpb25zLCBtb3ZlIGEgYnJlYWsgZnJvbSBwb3NzaWJsZUJyZWFrUG9zaXRpb25zCisgICAgICAgIC8vIHRvIGN1cnJlbnRCcmVha1Bvc2l0aW9ucywgYW5kIHN0YXJ0IG92ZXIgZnJvbSB0aGVyZS4gIFRoaXMgcHJvY2VzcworICAgICAgICAvLyBjb250aW51ZXMgaW4gdGhpcyB3YXkgdW50aWwgd2UgZWl0aGVyIHN1Y2Nlc3NmdWxseSBtYWtlIGl0IGFsbCB0aGUgd2F5CisgICAgICAgIC8vIGFjcm9zcyB0aGUgcmFuZ2UsIG9yIGV4aGF1c3QgYWxsIG9mIG91ciBjb21iaW5hdGlvbnMgb2YgYnJlYWsKKyAgICAgICAgLy8gcG9zaXRpb25zLikKKyAgICAgICAgU3RhY2sgY3VycmVudEJyZWFrUG9zaXRpb25zID0gbmV3IFN0YWNrKCk7CisgICAgICAgIFN0YWNrIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgPSBuZXcgU3RhY2soKTsKKyAgICAgICAgVmVjdG9yIHdyb25nQnJlYWtQb3NpdGlvbnMgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gdGhlIGRpY3Rpb25hcnkgaXMgaW1wbGVtZW50ZWQgYXMgYSB0cmllLCB3aGljaCBpcyB0cmVhdGVkIGFzIGEgc3RhdGUKKyAgICAgICAgLy8gbWFjaGluZS4gIC0xIHJlcHJlc2VudHMgdGhlIGVuZCBvZiBhIGxlZ2FsIHdvcmQuICBFdmVyeSB3b3JkIGluIHRoZQorICAgICAgICAvLyBkaWN0aW9uYXJ5IGlzIHJlcHJlc2VudGVkIGJ5IGEgcGF0aCBmcm9tIHRoZSByb290IG5vZGUgdG8gLTEuICBBIHBhdGgKKyAgICAgICAgLy8gdGhhdCBlbmRzIGluIHN0YXRlIDAgaXMgYW4gaWxsZWdhbCBjb21iaW5hdGlvbiBvZiBjaGFyYWN0ZXJzLgorICAgICAgICBpbnQgc3RhdGUgPSAwOworCisgICAgICAgIC8vIHRoZXNlIHR3byB2YXJpYWJsZXMgYXJlIHVzZWQgZm9yIGVycm9yIGhhbmRsaW5nLiAgV2Uga2VlcCB0cmFjayBvZiB0aGUKKyAgICAgICAgLy8gZmFydGhlc3Qgd2UndmUgZ290dGVuIHRocm91Z2ggdGhlIHJhbmdlIGJlaW5nIGRpdmlkZWQsIGFuZCB0aGUgY29tYmluYXRpb24KKyAgICAgICAgLy8gb2YgYnJlYWtzIHRoYXQgZ290IHVzIHRoYXQgZmFyLiAgSWYgd2UgdXNlIHVwIGFsbCBwb3NzaWJsZSBicmVhaworICAgICAgICAvLyBjb21iaW5hdGlvbnMsIHRoZSB0ZXh0IGNvbnRhaW5zIGFuIGVycm9yIG9yIGEgd29yZCB0aGF0J3Mgbm90IGluIHRoZQorICAgICAgICAvLyBkaWN0aW9uYXJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSAiYmxlc3MiIHRoZSBicmVhayBwb3NpdGlvbnMgdGhhdCBnb3QgdXMgdGhlCisgICAgICAgIC8vIGZhcnRoZXN0IGFzIHJlYWwgYnJlYWsgcG9zaXRpb25zLCBhbmQgdGhlbiBzdGFydCBvdmVyIGZyb20gc2NyYXRjaCB3aXRoCisgICAgICAgIC8vIHRoZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkLgorICAgICAgICBpbnQgZmFydGhlc3RFbmRQb2ludCA9IHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgU3RhY2sgYmVzdEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKworICAgICAgICAvLyBpbml0aWFsaXplICh3ZSBhbHdheXMgZXhpdCB0aGUgbG9vcCB3aXRoIGEgYnJlYWsgc3RhdGVtZW50KQorICAgICAgICBjID0gQ0lDdXJyZW50MzIodGV4dCk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisvL1N5c3RlbS5vdXQucHJpbnQoImMgPSAiICsgSW50ZWdlci50b1N0cmluZyhjLCAxNikgKyAiLCBwb3MgPSAiICsgdGV4dC5nZXRJbmRleCgpKTsKKworICAgICAgICAgICAgLy8gaWYgd2UgY2FuIHRyYW5zaXRpb24gdG8gc3RhdGUgIi0xIiBmcm9tIG91ciBjdXJyZW50IHN0YXRlLCB3ZSdyZQorICAgICAgICAgICAgLy8gb24gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGVnYWwgd29yZC4gIFB1c2ggdGhhdCBwb3NpdGlvbiBvbnRvCisgICAgICAgICAgICAvLyB0aGUgcG9zc2libGUtYnJlYWstcG9zaXRpb25zIHN0YWNrCisgICAgICAgICAgICBpZiAoZGljdGlvbmFyeS5hdChzdGF0ZSwgMCkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIodGV4dC5nZXRJbmRleCgpKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGxvb2sgdXAgdGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvIGluIHRoZSBkaWN0aW9uYXJ5CisgICAgICAgICAgICAvLyAgICBUaGVyZSB3aWxsIGJlIG5vIHN1cHBsZW1lbnRhcmllcyBoZXJlIGJlY2F1c2UgdGhlIFRoYWkgZGljdGlvbmFyeQorICAgICAgICAgICAgLy8gICAgIGRvZXMgbm90IGluY2x1ZGUgYW55LiAgVGhpcyBjb2RlIGlzIGdvaW5nIGF3YXkgc29vbiwgbm90IHdvcnRoCisgICAgICAgICAgICAvLyAgICAgZml4aW5nLgorICAgICAgICAgICAgc3RhdGUgPSAoZGljdGlvbmFyeS5hdChzdGF0ZSwgKGNoYXIpYykpICYgMHhGRkZGOyAgLy8gVE9ETzogZml4IHN1cHBsZW1lbnRhcmllcworLy9TeXN0ZW0ub3V0LnByaW50KCIsIHN0YXRlID0gIiArIHN0YXRlKTsKKworICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciB3ZSdyZSBzaXR0aW5nIG9uIGNhdXNlcyB1cyB0byB0cmFuc2l0aW9uIHRvCisgICAgICAgICAgICAvLyB0aGUgImVuZCBvZiB3b3JkIiBzdGF0ZSwgdGhlbiBpdCB3YXMgYSBub24tZGljdGlvbmFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGFuZCB3ZSd2ZSBzdWNjZXNzZnVsbHkgdHJhdmVyc2VkIHRoZSB3aG9sZSByYW5nZS4gIERyb3Agb3V0CisgICAgICAgICAgICAvLyBvZiB0aGUgbG9vcC4KKyAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAvKi0xKi8gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIodGV4dC5nZXRJbmRleCgpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgd2UncmUgc2l0dGluZyBvbiBjYXVzZXMgdXMgdG8gdHJhbnNpdGlvbiB0bworICAgICAgICAgICAgLy8gdGhlIGVycm9yIHN0YXRlLCBvciBpZiB3ZSd2ZSBnb25lIG9mZiB0aGUgZW5kIG9mIHRoZSByYW5nZQorICAgICAgICAgICAgLy8gd2l0aG91dCB0cmFuc2l0aW9uaW5nIHRvIHRoZSAiZW5kIG9mIHdvcmQiIHN0YXRlLCB3ZSd2ZSBoaXQKKyAgICAgICAgICAgIC8vIGFuIGVycm9yLi4uCisgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZSA9PSAwIHx8IHRleHQuZ2V0SW5kZXgoKSA+PSBlbmRQb3MpIHsKKworICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgdGhlIGZhcnRoZXN0IHdlJ3ZlIGdvdHRlbiwgdGFrZSBub3RlIG9mIGl0IGluCisgICAgICAgICAgICAgICAgLy8gY2FzZSB0aGVyZSdzIGFuIGVycm9yIGluIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgaWYgKHRleHQuZ2V0SW5kZXgoKSA+IGZhcnRoZXN0RW5kUG9pbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFydGhlc3RFbmRQb2ludCA9IHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgYmVzdEJyZWFrUG9zaXRpb25zID0gKFN0YWNrKShjdXJyZW50QnJlYWtQb3NpdGlvbnMuY2xvbmUoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gd3JvbmdCcmVha1Bvc2l0aW9ucyBpcyBhIGxpc3Qgb2YgYWxsIGJyZWFrIHBvc2l0aW9ucyB3ZSd2ZSB0cmllZCBzdGFydGluZworICAgICAgICAgICAgICAgIC8vIHRoYXQgZGlkbid0IGFsbG93IHVzIHRvIHRyYXZlcnNlIGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIHRleHQuICBFdmVyeSB0aW1lCisgICAgICAgICAgICAgICAgLy8gd2UgcG9wIGEgYnJlYWsgcG9zaXRpb24gb2ZmIG9mIGN1cnJlbnRCcmVha1Bvc2l0aW9ucywgd2UgcHV0IGl0IGludG8KKyAgICAgICAgICAgICAgICAvLyB3cm9uZ0JyZWFrUG9zaXRpb25zIHRvIGF2b2lkIHRyeWluZyBpdCBhZ2FpbiBsYXRlci4gIElmIHdlIG1ha2UgaXQgdG8gdGhpcworICAgICAgICAgICAgICAgIC8vIHNwb3QsIHdlJ3JlIGVpdGhlciBnb2luZyB0byBiYWNrIHVwIHRvIGEgYnJlYWsgaW4gcG9zc2libGVCcmVha1Bvc2l0aW9ucworICAgICAgICAgICAgICAgIC8vIGFuZCB0cnkgc3RhcnRpbmcgb3ZlciBmcm9tIHRoZXJlLCBvciB3ZSd2ZSBleGhhdXN0ZWQgYWxsIHBvc3NpYmxlIGJyZWFrCisgICAgICAgICAgICAgICAgLy8gcG9zaXRpb25zIGFuZCBhcmUgZ29pbmcgdG8gZG8gdGhlIGZhbGxiYWNrIHByb2NlZHVyZS4gIFRoaXMgbG9vcCBwcmV2ZW50cworICAgICAgICAgICAgICAgIC8vIHVzIGZyb20gbWVzc2luZyB3aXRoIGFueXRoaW5nIGluIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgdGhhdCBkaWRuJ3Qgd29yayBhcworICAgICAgICAgICAgICAgIC8vIGEgc3RhcnRpbmcgcG9pbnQgdGhlIGxhc3QgdGltZSB3ZSB0cmllZCBpdCAodGhpcyBpcyB0byBwcmV2ZW50IGEgYnVuY2ggb2YKKyAgICAgICAgICAgICAgICAvLyByZXBldGl0aXZlIGNoZWNrcyBmcm9tIHNsb3dpbmcgZG93biBzb21lIGV4dHJlbWUgY2FzZXMpCisgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgSW50ZWdlciBuZXdTdGFydGluZ1Nwb3QgPSBudWxsOworICAgICAgICAgICAgICAgIHdoaWxlICghcG9zc2libGVCcmVha1Bvc2l0aW9ucy5pc0VtcHR5KCkgJiYgd3JvbmdCcmVha1Bvc2l0aW9ucy5jb250YWlucygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnBlZWsoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcG9zc2libGVCcmVha1Bvc2l0aW9ucy5wb3AoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSd2ZSB1c2VkIHVwIGFsbCBwb3NzaWJsZSBicmVhay1wb3NpdGlvbiBjb21iaW5hdGlvbnMsIHRoZXJlJ3MKKyAgICAgICAgICAgICAgICAvLyBhbiBlcnJvciBvciBhbiB1bmtub3duIHdvcmQgaW4gdGhlIHRleHQuICBJbiB0aGlzIGNhc2UsIHdlIHN0YXJ0CisgICAgICAgICAgICAgICAgLy8gb3ZlciwgdHJlYXRpbmcgdGhlIGZhcnRoZXN0IGNoYXJhY3RlciB3ZSd2ZSByZWFjaGVkIGFzIHRoZSBiZWdpbm5pbmcKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgcmFuZ2UsIGFuZCAiYmxlc3NpbmciIHRoZSBicmVhayBwb3NpdGlvbnMgdGhhdCBnb3QgdXMgdGhhdAorICAgICAgICAgICAgICAgIC8vIGZhciBhcyByZWFsIGJyZWFrIHBvc2l0aW9ucworICAgICAgICAgICAgICAgIGlmIChwb3NzaWJsZUJyZWFrUG9zaXRpb25zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYmVzdEJyZWFrUG9zaXRpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCcmVha1Bvc2l0aW9ucyA9IGJlc3RCcmVha1Bvc2l0aW9uczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYXJ0aGVzdEVuZFBvaW50IDwgZW5kUG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5zZXRJbmRleChmYXJ0aGVzdEVuZFBvaW50ICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoY3VycmVudEJyZWFrUG9zaXRpb25zLnNpemUoKSA9PSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICgoSW50ZWdlcikoY3VycmVudEJyZWFrUG9zaXRpb25zLnBlZWsoKSkpLmludFZhbHVlKCkgIT0gdGV4dC5nZXRJbmRleCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0ZXh0LmdldEluZGV4KCkgIT0gc3RhcnRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucHVzaChuZXcgSW50ZWdlcih0ZXh0LmdldEluZGV4KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIENJTmV4dDMyKHRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIodGV4dC5nZXRJbmRleCgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdGlsbCBoYXZlIG1vcmUgYnJlYWsgcG9zaXRpb25zIHdlIGNhbiB0cnksIHRoZW4gcHJvbW90ZSB0aGUKKyAgICAgICAgICAgICAgICAvLyBsYXN0IGJyZWFrIGluIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgaW50byBjdXJyZW50QnJlYWtQb3NpdGlvbnMsCisgICAgICAgICAgICAgICAgLy8gYW5kIGdldCByaWQgb2YgYWxsIGVudHJpZXMgaW4gY3VycmVudEJyZWFrUG9zaXRpb25zIHRoYXQgY29tZSBhZnRlcgorICAgICAgICAgICAgICAgIC8vIGl0LiAgVGhlbiBiYWNrIHVwIHRvIHRoYXQgcG9zaXRpb24gYW5kIHN0YXJ0IG92ZXIgZnJvbSB0aGVyZSAoaS5lLiwKKyAgICAgICAgICAgICAgICAvLyB0cmVhdCB0aGF0IHBvc2l0aW9uIGFzIHRoZSBiZWdpbm5pbmcgb2YgYSBuZXcgd29yZCkKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgSW50ZWdlciB0ZW1wID0gKEludGVnZXIpcG9zc2libGVCcmVha1Bvc2l0aW9ucy5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRlbXAyID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFjdXJyZW50QnJlYWtQb3NpdGlvbnMuaXNFbXB0eSgpICYmIHRlbXAuaW50VmFsdWUoKSA8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEludGVnZXIpY3VycmVudEJyZWFrUG9zaXRpb25zLnBlZWsoKSkuaW50VmFsdWUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcDIgPSBjdXJyZW50QnJlYWtQb3NpdGlvbnMucG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB3cm9uZ0JyZWFrUG9zaXRpb25zLmFkZEVsZW1lbnQodGVtcDIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wdXNoKHRlbXApOworICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldEluZGV4KCgoSW50ZWdlciljdXJyZW50QnJlYWtQb3NpdGlvbnMucGVlaygpKS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyByZS1zeW5jICJjIiBmb3IgdGhlIG5leHQgZ28tcm91bmQsIGFuZCBkcm9wIG91dCBvZiB0aGUgbG9vcCBpZgorICAgICAgICAgICAgICAgIC8vIHdlJ3ZlIG1hZGUgaXQgb2ZmIHRoZSBlbmQgb2YgdGhlIHJhbmdlCisgICAgICAgICAgICAgICAgYyA9IENJQ3VycmVudDMyKHRleHQpOworICAgICAgICAgICAgICAgIHN0YXRlID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5nZXRJbmRleCgpID49IGVuZFBvcykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBoaXQgYW55IGV4Y2VwdGlvbmFsIGNvbmRpdGlvbnMgb24gdGhpcyBsYXN0IGl0ZXJhdGlvbiwKKyAgICAgICAgICAgIC8vIGp1c3QgYWR2YW5jZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgYW5kIGxvb3AKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGMgPSBDSU5leHQzMih0ZXh0KTsKKyAgICAgICAgICAgIH0KKy8vU3lzdGVtLm91dC5wcmludCgiLCBwb3NzaWJsZUJyZWFrUG9zaXRpb25zID0geyAiKTsgZm9yIChpbnQgaSA9IDA7IGkgPCBwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnNpemUoKTsgaSsrKSBTeXN0ZW0ub3V0LnByaW50KHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMuZWxlbWVudEF0KGkpICsgIiAiKTsgU3lzdGVtLm91dC5wcmludCgifSIpOworLy9TeXN0ZW0ub3V0LnByaW50KCIsIGN1cnJlbnRCcmVha1Bvc2l0aW9ucyA9IHsgIik7IGZvciAoaW50IGkgPSAwOyBpIDwgY3VycmVudEJyZWFrUG9zaXRpb25zLnNpemUoKTsgaSsrKSBTeXN0ZW0ub3V0LnByaW50KGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5lbGVtZW50QXQoaSkgKyAiICIpOyBTeXN0ZW0ub3V0LnByaW50bG4oIn0iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGR1bXAgdGhlIGxhc3QgYnJlYWsgcG9zaXRpb24gaW4gdGhlIGxpc3QsIGFuZCByZXBsYWNlIGl0IHdpdGggdGhlIGFjdHVhbAorICAgICAgICAvLyBlbmQgb2YgdGhlIHJhbmdlICh3aGljaCBtYXkgYmUgdGhlIHNhbWUgY2hhcmFjdGVyLCBvciBtYXkgYmUgZnVydGhlciBvbgorICAgICAgICAvLyBiZWNhdXNlIHRoZSByYW5nZSBhY3R1YWxseSBlbmRlZCB3aXRoIG5vbi1kaWN0aW9uYXJ5IGNoYXJhY3RlcnMgd2Ugd2FudCB0bworICAgICAgICAvLyBrZWVwIHdpdGggdGhlIHdvcmQpCisgICAgICAgIGlmICghY3VycmVudEJyZWFrUG9zaXRpb25zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnBvcCgpOworICAgICAgICB9CisgICAgICAgIGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wdXNoKG5ldyBJbnRlZ2VyKGVuZFBvcykpOworCisgICAgICAgIC8vIGNyZWF0ZSBhIHJlZ3VsYXIgYXJyYXkgdG8gaG9sZCB0aGUgYnJlYWsgcG9zaXRpb25zIGFuZCBjb3B5CisgICAgICAgIC8vIHRoZSBicmVhayBwb3NpdGlvbnMgZnJvbSB0aGUgc3RhY2sgdG8gdGhlIGFycmF5IChpbiBhZGRpdGlvbiwKKyAgICAgICAgLy8gb3VyIHN0YXJ0aW5nIHBvc2l0aW9uIGdvZXMgaW50byB0aGlzIGFycmF5IGFzIGEgYnJlYWsgcG9zaXRpb24pLgorICAgICAgICAvLyBUaGlzIGFycmF5IGJlY29tZXMgdGhlIGNhY2hlIG9mIGJyZWFrIHBvc2l0aW9ucyB1c2VkIGJ5IG5leHQoKQorICAgICAgICAvLyBhbmQgcHJldmlvdXMoKSwgc28gdGhpcyBpcyB3aGVyZSB3ZSBhY3R1YWxseSByZWZyZXNoIHRoZSBjYWNoZS4KKyAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBuZXcgaW50W2N1cnJlbnRCcmVha1Bvc2l0aW9ucy5zaXplKCkgKyAxXTsKKyAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnNbMF0gPSBzdGFydFBvczsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnNbaSArIDFdID0gKChJbnRlZ2VyKWN1cnJlbnRCcmVha1Bvc2l0aW9ucy5lbGVtZW50QXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gMDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpZ2l0TGlzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2OTE4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YQpAQCAtMCwwICsxLDgwMCBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworCisvKioKKyAqIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gaGFuZGxlcyB0aGUgdHJhbnNjb2RpbmcgYmV0d2VlbiBudW1lcmljIHZhbHVlcyBhbmQKKyAqIHN0cmluZ3Mgb2YgY2hhcmFjdGVycy4gIEl0IG9ubHkgcmVwcmVzZW50cyBub24tbmVnYXRpdmUgbnVtYmVycy4gIFRoZQorICogZGl2aXNpb24gb2YgbGFib3IgYmV0d2VlbiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IGFuZAorICogPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gaXMgdGhhdCA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IGhhbmRsZXMgdGhlIHJhZGl4CisgKiAxMCByZXByZXNlbnRhdGlvbiBpc3N1ZXMgYW5kIG51bWVyaWMgY29udmVyc2lvbiwgaW5jbHVkaW5nIHJvdW5kaW5nOworICogPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gaGFuZGxlcyB0aGUgbG9jYWxlLXNwZWNpZmljIGlzc3VlcyBzdWNoIGFzCisgKiBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcmVwcmVzZW50YXRpb24sIGRpZ2l0IGdyb3VwaW5nLCBkZWNpbWFsIHBvaW50LAorICogY3VycmVuY3ksIGFuZCBzbyBvbi4KKyAqCisgKiA8cD5BIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gaXMgYSByZXByZXNlbnRhdGlvbiBvZiBhIGZpbml0ZSBudW1lcmljIHZhbHVlLgorICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBvYmplY3RzIGRvIG5vdCByZXByZXNlbnQgPGNvZGU+TmFOPC9jb2RlPiBvciBpbmZpbml0ZQorICogdmFsdWVzLiAgQSA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IHZhbHVlIGNhbiBiZSBjb252ZXJ0ZWQgdG8gYQorICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aG91dCBsb3NzIG9mIHByZWNpc2lvbi4gIENvbnZlcnNpb24gdG8gb3RoZXIKKyAqIG51bWVyaWMgZm9ybWF0cyBtYXkgaW52b2x2ZSBsb3NzIG9mIHByZWNpc2lvbiwgZGVwZW5kaW5nIG9uIHRoZSBzcGVjaWZpYworICogdmFsdWUuCisgKgorICogPHA+VGhlIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gcmVwcmVzZW50YXRpb24gY29uc2lzdHMgb2YgYSBzdHJpbmcgb2YKKyAqIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSB0aGUgZGlnaXRzIHJhZGl4IDEwLCBmcm9tICcwJyB0byAnOScuICBJdCBhbHNvIGhhcyBhCisgKiBiYXNlIDEwIGV4cG9uZW50IGFzc29jaWF0ZWQgd2l0aCBpdC4gIFRoZSB2YWx1ZSByZXByZXNlbnRlZCBieSBhCisgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IG9iamVjdCBjYW4gYmUgY29tcHV0ZWQgYnkgbXVsaXRwbHlpbmcgdGhlIGZyYWN0aW9uCisgKiA8ZW0+ZjwvZW0+LCB3aGVyZSAwIDw9IDxlbT5mPC9lbT4gPCAxLCBkZXJpdmVkIGJ5IHBsYWNpbmcgYWxsIHRoZSBkaWdpdHMgb2YKKyAqIHRoZSBsaXN0IHRvIHRoZSByaWdodCBvZiB0aGUgZGVjaW1hbCBwb2ludCwgYnkgMTBeZXhwb25lbnQuCisgKgorICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQKKyAqIEBzZWUgTnVtYmVyRm9ybWF0CisgKiBAc2VlIERlY2ltYWxGb3JtYXQKKyAqIEBzZWUgamF2YS50ZXh0LkNob2ljZUZvcm1hdAorICogQHNlZSBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdAorICogQHZlcnNpb24gICAgICAxLjE4IDA4LzEyLzk4CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMsIEFsYW4gTGl1CisgKiAqLworZmluYWwgY2xhc3MgRGlnaXRMaXN0IHsKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGluIGFuIElFRUUgNzU0IGRvdWJsZSwgdGhhdAorICAgICAqIGlzLCBpbiBhIEphdmEgZG91YmxlLiAgVGhpcyBtdXN0IG5vdCBiZSBpbmNyZWFzZWQsIG9yIGdhcmJhZ2UgZGlnaXRzCisgICAgICogd2lsbCBiZSBnZW5lcmF0ZWQsIGFuZCBzaG91bGQgbm90IGJlIGRlY3JlYXNlZCwgb3IgYWNjdXJhY3kgd2lsbCBiZSBsb3N0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9MT05HX0RJR0lUUyA9IDE5OyAvLyA9PSBMb25nLnRvU3RyaW5nKExvbmcuTUFYX1ZBTFVFKS5sZW5ndGgoKQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERCTF9ESUcgPSAxNzsKKworICAgIC8qKgorICAgICAqIFRoZXNlIGRhdGEgbWVtYmVycyBhcmUgaW50ZW50aW9uYWxseSBwdWJsaWMgYW5kIGNhbiBiZSBzZXQgZGlyZWN0bHkuCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWUgcmVwcmVzZW50ZWQgaXMgZ2l2ZW4gYnkgcGxhY2luZyB0aGUgZGVjaW1hbCBwb2ludCBiZWZvcmUKKyAgICAgKiBkaWdpdHNbZGVjaW1hbEF0XS4gIElmIGRlY2ltYWxBdCBpcyA8IDAsIHRoZW4gbGVhZGluZyB6ZXJvcyBiZXR3ZWVuCisgICAgICogdGhlIGRlY2ltYWwgcG9pbnQgYW5kIHRoZSBmaXJzdCBub256ZXJvIGRpZ2l0IGFyZSBpbXBsaWVkLiAgSWYgZGVjaW1hbEF0CisgICAgICogaXMgPiBjb3VudCwgdGhlbiB0cmFpbGluZyB6ZXJvcyBiZXR3ZWVuIHRoZSBkaWdpdHNbY291bnQtMV0gYW5kIHRoZQorICAgICAqIGRlY2ltYWwgcG9pbnQgYXJlIGltcGxpZWQuCisgICAgICoKKyAgICAgKiBFcXVpdmFsZW50bHksIHRoZSByZXByZXNlbnRlZCB2YWx1ZSBpcyBnaXZlbiBieSBmICogMTBeZGVjaW1hbEF0LiAgSGVyZQorICAgICAqIGYgaXMgYSB2YWx1ZSAwLjEgPD0gZiA8IDEgYXJyaXZlZCBhdCBieSBwbGFjaW5nIHRoZSBkaWdpdHMgaW4gRGlnaXRzIHRvCisgICAgICogdGhlIHJpZ2h0IG9mIHRoZSBkZWNpbWFsLgorICAgICAqCisgICAgICogRGlnaXRMaXN0IGlzIG5vcm1hbGl6ZWQsIHNvIGlmIGl0IGlzIG5vbi16ZXJvLCBmaWdpdHNbMF0gaXMgbm9uLXplcm8uICBXZQorICAgICAqIGRvbid0IGFsbG93IGRlbm9ybWFsaXplZCBudW1iZXJzIGJlY2F1c2Ugb3VyIGV4cG9uZW50IGlzIGVmZmVjdGl2ZWx5IG9mCisgICAgICogdW5saW1pdGVkIG1hZ25pdHVkZS4gIFRoZSBjb3VudCB2YWx1ZSBjb250YWlucyB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50CisgICAgICogZGlnaXRzIHByZXNlbnQgaW4gZGlnaXRzW10uCisgICAgICoKKyAgICAgKiBaZXJvIGlzIHJlcHJlc2VudGVkIGJ5IGFueSBEaWdpdExpc3Qgd2l0aCBjb3VudCA9PSAwIG9yIHdpdGggZWFjaCBkaWdpdHNbaV0KKyAgICAgKiBmb3IgYWxsIGkgPD0gY291bnQgPT0gJzAnLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZGVjaW1hbEF0ID0gMDsKKyAgICBwdWJsaWMgaW50IGNvdW50ID0gMDsKKyAgICBwdWJsaWMgYnl0ZVtdIGRpZ2l0cyA9IG5ldyBieXRlW01BWF9MT05HX0RJR0lUU107CisKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZW5zdXJlQ2FwYWNpdHkoaW50IGRpZ2l0Q2FwYWNpdHksIGludCBkaWdpdHNUb0NvcHkpIHsKKyAgICAgICAgaWYgKGRpZ2l0Q2FwYWNpdHkgPiBkaWdpdHMubGVuZ3RoKSB7CisgICAgICAgICAgICBieXRlW10gbmV3RGlnaXRzID0gbmV3IGJ5dGVbZGlnaXRDYXBhY2l0eSAqIDJdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShkaWdpdHMsIDAsIG5ld0RpZ2l0cywgMCwgZGlnaXRzVG9Db3B5KTsKKyAgICAgICAgICAgIGRpZ2l0cyA9IG5ld0RpZ2l0czsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSByZXByZXNlbnRlZCBudW1iZXIgaXMgemVyby4KKyAgICAgKi8KKyAgICBib29sZWFuIGlzWmVybygpCisgICAgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgaWYgKGRpZ2l0c1tpXSAhPSAnMCcpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisvLyBVbnVzZWQgYXMgb2YgSUNVIDIuNiAtIGFsYW4KKy8vICAgIC8qKgorLy8gICAgICogQ2xlYXJzIG91dCB0aGUgZGlnaXRzLgorLy8gICAgICogVXNlIGJlZm9yZSBhcHBlbmRpbmcgdGhlbS4KKy8vICAgICAqIFR5cGljYWxseSwgeW91IHNldCBhIHNlcmllcyBvZiBkaWdpdHMgd2l0aCBhcHBlbmQsIHRoZW4gYXQgdGhlIHBvaW50CisvLyAgICAgKiB5b3UgaGl0IHRoZSBkZWNpbWFsIHBvaW50LCB5b3Ugc2V0IG15RGlnaXRMaXN0LmRlY2ltYWxBdCA9IG15RGlnaXRMaXN0LmNvdW50OworLy8gICAgICogdGhlbiBnbyBvbiBhcHBlbmRpbmcgZGlnaXRzLgorLy8gICAgICovCisvLyAgICBwdWJsaWMgdm9pZCBjbGVhciAoKSB7CisvLyAgICAgICAgZGVjaW1hbEF0ID0gMDsKKy8vICAgICAgICBjb3VudCA9IDA7CisvLyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmRzIGRpZ2l0cyB0byB0aGUgbGlzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmQgKGludCBkaWdpdCkgeworICAgICAgICBlbnN1cmVDYXBhY2l0eShjb3VudCsxLCBjb3VudCk7CisgICAgICAgIGRpZ2l0c1tjb3VudCsrXSA9IChieXRlKSBkaWdpdDsKKyAgICB9CisgICAgLyoqCisgICAgICogVXRpbGl0eSByb3V0aW5lIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0IGxpc3QKKyAgICAgKiBJZiAoY291bnQgPT0gMCkgdGhpcyB0aHJvd3MgYSBOdW1iZXJGb3JtYXRFeGNlcHRpb24sIHdoaWNoCisgICAgICogbWltaWNzIExvbmcucGFyc2VMb25nKCkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGRvdWJsZSBnZXREb3VibGUoKSB7CisgICAgICAgIGlmIChjb3VudCA9PSAwKSByZXR1cm4gMC4wOworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoY291bnQpOworICAgICAgICB0ZW1wLmFwcGVuZCgnLicpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHRlbXAuYXBwZW5kKChjaGFyKShkaWdpdHNbaV0pKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoJ0UnKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoSW50ZWdlci50b1N0cmluZyhkZWNpbWFsQXQpKTsKKyAgICAgICAgcmV0dXJuIERvdWJsZS52YWx1ZU9mKHRlbXAudG9TdHJpbmcoKSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgLy8gbG9uZyB2YWx1ZSA9IExvbmcucGFyc2VMb25nKHRlbXAudG9TdHJpbmcoKSk7CisgICAgICAgIC8vIHJldHVybiAodmFsdWUgKiBNYXRoLnBvdygxMCwgZGVjaW1hbEF0IC0gY291bnQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHJvdXRpbmUgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgZGlnaXQgbGlzdC4KKyAgICAgKiBJZiAoY291bnQgPT0gMCkgdGhpcyByZXR1cm5zIDAsIHVubGlrZSBMb25nLnBhcnNlTG9uZygpLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBsb25nIGdldExvbmcoKSB7CisgICAgICAgIC8vIGZvciBub3csIHNpbXBsZSBpbXBsZW1lbnRhdGlvbjsgbGF0ZXIsIGRvIHByb3BlciBJRUVFIG5hdGl2ZSBzdHVmZgorCisgICAgICAgIGlmIChjb3VudCA9PSAwKSByZXR1cm4gMDsKKworICAgICAgICAvLyBXZSBoYXZlIHRvIGNoZWNrIGZvciB0aGlzLCBiZWNhdXNlIHRoaXMgaXMgdGhlIG9uZSBORUdBVElWRSB2YWx1ZQorICAgICAgICAvLyB3ZSByZXByZXNlbnQuICBJZiB3ZSB0cmllZCB0byBqdXN0IHBhc3MgdGhlIGRpZ2l0cyBvZmYgdG8gcGFyc2VMb25nLAorICAgICAgICAvLyB3ZSdkIGdldCBhIHBhcnNlIGZhaWx1cmUuCisgICAgICAgIGlmIChpc0xvbmdNSU5fVkFMVUUoKSkgcmV0dXJuIExvbmcuTUlOX1ZBTFVFOworCisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcihjb3VudCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjaW1hbEF0OyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXAuYXBwZW5kKChpIDwgY291bnQpID8gKGNoYXIpKGRpZ2l0c1tpXSkgOiAnMCcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBMb25nLnBhcnNlTG9uZyh0ZW1wLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IHJlcHJlc2VudGluZyB0aGUgdmFsdWUgc3RvcmVkIGluIHRoaXMKKyAgICAgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+LiAgVGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0IHRoaXMgb2JqZWN0IGNvbnRhaW5zCisgICAgICogYW4gaW50ZWdyYWwgdmFsdWU7IGlmIG5vdCwgaXQgd2lsbCByZXR1cm4gYW4gaW5jb3JyZWN0IHZhbHVlLgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIGlzUG9zaXRpdmUgZGV0ZXJtaW5lcyB0aGUgc2lnbiBvZiB0aGUgcmV0dXJuZWQgcmVzdWx0CisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhpcyBvYmplY3QgYXMgYSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBCaWdJbnRlZ2VyIGdldEJpZ0ludGVnZXIoYm9vbGVhbiBpc1Bvc2l0aXZlKSB7CisgICAgICAgIGlmIChpc1plcm8oKSkgcmV0dXJuIEJpZ0ludGVnZXIudmFsdWVPZigwKTsKKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyaW5nUmVwID0gbmV3IFN0cmluZ0J1ZmZlcihjb3VudCk7CisgICAgICAgICAgICBpZiAoIWlzUG9zaXRpdmUpIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCctJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoKGNoYXIpIGRpZ2l0c1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgZCA9IGRlY2ltYWxBdDsKKyAgICAgICAgICAgIHdoaWxlIChkLS0gPiBjb3VudCkgeworICAgICAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihzdHJpbmdSZXAudG9TdHJpbmcoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbGVuID0gZGVjaW1hbEF0ID4gY291bnQgPyBkZWNpbWFsQXQgOiBjb3VudDsKKyAgICAgICAgICAgIGlmICghaXNQb3NpdGl2ZSkgeworICAgICAgICAgICAgICAgIGxlbiArPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hhcltdIHRleHQgPSBuZXcgY2hhcltsZW5dOworICAgICAgICAgICAgaW50IG4gPSAwOworICAgICAgICAgICAgaWYgKCFpc1Bvc2l0aXZlKSB7CisgICAgICAgICAgICAgICAgdGV4dFswXSA9ICctJzsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dFtpKzFdID0gKGNoYXIpZGlnaXRzW2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuID0gY291bnQrMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHRleHRbaV0gPSAoY2hhcilkaWdpdHNbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG4gPSBjb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBuOyBpIDwgdGV4dC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHRleHRbaV0gPSAnMCc7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG5ldyBTdHJpbmcodGV4dCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0U3RyaW5nUmVwKGJvb2xlYW4gaXNQb3NpdGl2ZSkgeworICAgICAgICBpZiAoaXNaZXJvKCkpIHJldHVybiAiMCI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJpbmdSZXAgPSBuZXcgU3RyaW5nQnVmZmVyKGNvdW50KzEpOworICAgICAgICBpZiAoIWlzUG9zaXRpdmUpIHsKKyAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJy0nKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZCA9IGRlY2ltYWxBdDsKKyAgICAgICAgaWYgKGQgPCAwKSB7CisgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCcuJyk7CisgICAgICAgICAgICB3aGlsZSAoZCA8IDApIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgKytkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZCA9IC0xOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpZiAoZCA9PSBpKSB7CisgICAgICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnLicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgoY2hhcikgZGlnaXRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoZC0tID4gY291bnQpIHsKKyAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJzAnKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RyaW5nUmVwLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorLy8jaWZuZGVmIEZPVU5EQVRJT04gICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhpcworICAgICAqIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4uCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gaXNQb3NpdGl2ZSBkZXRlcm1pbmVzIHRoZSBzaWduIG9mIHRoZSByZXR1cm5lZCByZXN1bHQKKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIGphdmEubWF0aC5CaWdEZWNpbWFsIGdldEJpZ0RlY2ltYWwoYm9vbGVhbiBpc1Bvc2l0aXZlKSB7CisgICAgICAgIGlmIChpc1plcm8oKSkgcmV0dXJuIGphdmEubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoMCk7CisgICAgICAgcmV0dXJuIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChnZXRTdHJpbmdSZXAoaXNQb3NpdGl2ZSkpOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gPGNvZGU+SUNVIEJpZ0RlY2ltYWw8L2NvZGU+IHJlcHJlc2VudGluZyB0aGUgdmFsdWUgc3RvcmVkIGluIHRoaXMKKyAgICAgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+LgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIGlzUG9zaXRpdmUgZGV0ZXJtaW5lcyB0aGUgc2lnbiBvZiB0aGUgcmV0dXJuZWQgcmVzdWx0CisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhpcyBvYmplY3QgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZ2V0QmlnRGVjaW1hbElDVShib29sZWFuIGlzUG9zaXRpdmUpIHsKKyAgICAgICAgaWYgKGlzWmVybygpKSByZXR1cm4gY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoMCk7CisgICAgICAgcmV0dXJuIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZ2V0U3RyaW5nUmVwKGlzUG9zaXRpdmUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhpcyBvYmplY3RzIHJlcHJlc2VudGVkIHZhbHVlIGlzIGFuIGludGVnZXIuCisgICAgICogW2JuZl0KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHJlcHJlc2VudGVkIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGlzIGFuIGludGVnZXIKKyAgICAgKi8KKyAgICBib29sZWFuIGlzSW50ZWdyYWwoKSB7CisgICAgICAgIC8vIFRyaW0gdHJhaWxpbmcgemVyb3MuICBUaGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgcmVwcmVzZW50ZWQgdmFsdWUuCisgICAgICAgIHdoaWxlIChjb3VudCA+IDAgJiYgZGlnaXRzW2NvdW50IC0gMV0gPT0gKGJ5dGUpJzAnKSAtLWNvdW50OworICAgICAgICByZXR1cm4gY291bnQgPT0gMCB8fCBkZWNpbWFsQXQgPj0gY291bnQ7CisgICAgfQorCisvLyBVbnVzZWQgYXMgb2YgSUNVIDIuNiAtIGFsYW4KKy8vICAgIC8qKgorLy8gICAgICogUmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciByZXByZXNlbnRlZCBieSB0aGlzIG9iamVjdCBjYW4gZml0IGludG8KKy8vICAgICAqIGEgbG9uZy4KKy8vICAgICAqLworLy8gICAgYm9vbGVhbiBmaXRzSW50b0xvbmcoYm9vbGVhbiBpc1Bvc2l0aXZlKQorLy8gICAgeworLy8gICAgICAgIC8vIEZpZ3VyZSBvdXQgaWYgdGhlIHJlc3VsdCB3aWxsIGZpdCBpbiBhIGxvbmcuICBXZSBoYXZlIHRvCisvLyAgICAgICAgLy8gZmlyc3QgbG9vayBmb3Igbm9uemVybyBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQ7CisvLyAgICAgICAgLy8gdGhlbiBjaGVjayB0aGUgc2l6ZS4gIElmIHRoZSBkaWdpdCBjb3VudCBpcyAxOCBvciBsZXNzLCB0aGVuCisvLyAgICAgICAgLy8gdGhlIHZhbHVlIGNhbiBkZWZpbml0ZWx5IGJlIHJlcHJlc2VudGVkIGFzIGEgbG9uZy4gIElmIGl0IGlzIDE5CisvLyAgICAgICAgLy8gdGhlbiBpdCBtYXkgYmUgdG9vIGxhcmdlLgorLy8KKy8vICAgICAgICAvLyBUcmltIHRyYWlsaW5nIHplcm9zLiAgVGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHJlcHJlc2VudGVkIHZhbHVlLgorLy8gICAgICAgIHdoaWxlIChjb3VudCA+IDAgJiYgZGlnaXRzW2NvdW50IC0gMV0gPT0gKGJ5dGUpJzAnKSAtLWNvdW50OworLy8KKy8vICAgICAgICBpZiAoY291bnQgPT0gMCkgeworLy8gICAgICAgICAgICAvLyBQb3NpdGl2ZSB6ZXJvIGZpdHMgaW50byBhIGxvbmcsIGJ1dCBuZWdhdGl2ZSB6ZXJvIGNhbiBvbmx5CisvLyAgICAgICAgICAgIC8vIGJlIHJlcHJlc2VudGVkIGFzIGEgZG91YmxlLiAtIGJ1ZyA0MTYyODUyCisvLyAgICAgICAgICAgIHJldHVybiBpc1Bvc2l0aXZlOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgaWYgKGRlY2ltYWxBdCA8IGNvdW50IHx8IGRlY2ltYWxBdCA+IE1BWF9MT05HX0RJR0lUUykgcmV0dXJuIGZhbHNlOworLy8KKy8vICAgICAgICBpZiAoZGVjaW1hbEF0IDwgTUFYX0xPTkdfRElHSVRTKSByZXR1cm4gdHJ1ZTsKKy8vCisvLyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBoYXZlIGRlY2ltYWxBdCA9PSBjb3VudCwgYW5kIGNvdW50ID09IE1BWF9MT05HX0RJR0lUUy4KKy8vICAgICAgICAvLyBUaGUgbnVtYmVyIHdpbGwgb3ZlcmZsb3cgaWYgaXQgaXMgbGFyZ2VyIHRoYW4gOTIyMzM3MjAzNjg1NDc3NTgwNworLy8gICAgICAgIC8vIG9yIHNtYWxsZXIgdGhhbiAtOTIyMzM3MjAzNjg1NDc3NTgwOC4KKy8vICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkKKy8vICAgICAgICB7CisvLyAgICAgICAgICAgIGJ5dGUgZGlnID0gZGlnaXRzW2ldLCBtYXggPSBMT05HX01JTl9SRVBbaV07CisvLyAgICAgICAgICAgIGlmIChkaWcgPiBtYXgpIHJldHVybiBmYWxzZTsKKy8vICAgICAgICAgICAgaWYgKGRpZyA8IG1heCkgcmV0dXJuIHRydWU7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBmaXJzdCBjb3VudCBkaWdpdHMgbWF0Y2guICBJZiBkZWNpbWFsQXQgaXMgbGVzcworLy8gICAgICAgIC8vIHRoYW4gY291bnQsIHRoZW4gdGhlIHJlbWFpbmluZyBkaWdpdHMgYXJlIHplcm8sIGFuZCB3ZSByZXR1cm4gdHJ1ZS4KKy8vICAgICAgICBpZiAoY291bnQgPCBkZWNpbWFsQXQpIHJldHVybiB0cnVlOworLy8KKy8vICAgICAgICAvLyBOb3cgd2UgaGF2ZSBhIHJlcHJlc2VudGF0aW9uIG9mIExvbmcuTUlOX1ZBTFVFLCB3aXRob3V0IHRoZSBsZWFkaW5nCisvLyAgICAgICAgLy8gbmVnYXRpdmUgc2lnbi4gIElmIHRoaXMgcmVwcmVzZW50cyBhIHBvc2l0aXZlIHZhbHVlLCB0aGVuIGl0IGRvZXMKKy8vICAgICAgICAvLyBub3QgZml0OyBvdGhlcndpc2UgaXQgZml0cy4KKy8vICAgICAgICByZXR1cm4gIWlzUG9zaXRpdmU7CisvLyAgICB9CisKKy8vIFVudXNlZCBhcyBvZiBJQ1UgMi42IC0gYWxhbgorLy8gICAgLyoqCisvLyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gZG91YmxlIHZhbHVlLgorLy8gICAgICogVGhpcyBtZXRob2Qgc3VwcG9ydHMgZml4ZWQtcG9pbnQgbm90YXRpb24uCisvLyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZDsgbXVzdCBub3QgYmUgSW5mLCAtSW5mLCBOYW4sCisvLyAgICAgKiBvciBhIHZhbHVlIDw9IDAuCisvLyAgICAgKiBAcGFyYW0gbWF4aW11bUZyYWN0aW9uRGlnaXRzIFRoZSBtb3N0IGZyYWN0aW9uYWwgZGlnaXRzIHdoaWNoIHNob3VsZAorLy8gICAgICogYmUgY29udmVydGVkLgorLy8gICAgICovCisvLyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoZG91YmxlIHNvdXJjZSwgaW50IG1heGltdW1GcmFjdGlvbkRpZ2l0cykKKy8vICAgIHsKKy8vICAgICAgICBzZXQoc291cmNlLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHMsIHRydWUpOworLy8gICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGRvdWJsZSB2YWx1ZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBib3RoIGZpeGVkLXBvaW50IGFuZCBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZDsgbXVzdCBub3QgYmUgSW5mLCAtSW5mLCBOYW4sCisgICAgICogb3IgYSB2YWx1ZSA8PSAwLgorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGZyYWN0aW9uYWwgb3IgdG90YWwgZGlnaXRzIHdoaWNoIHNob3VsZAorICAgICAqIGJlIGNvbnZlcnRlZC4KKyAgICAgKiBAcGFyYW0gZml4ZWRQb2ludCBJZiB0cnVlLCB0aGVuIG1heGltdW1EaWdpdHMgaXMgdGhlIG1heGltdW0KKyAgICAgKiBmcmFjdGlvbmFsIGRpZ2l0cyB0byBiZSBjb252ZXJ0ZWQuICBJZiBmYWxzZSwgdG90YWwgZGlnaXRzLgorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0KGRvdWJsZSBzb3VyY2UsIGludCBtYXhpbXVtRGlnaXRzLCBib29sZWFuIGZpeGVkUG9pbnQpCisgICAgeworICAgICAgICBpZiAoc291cmNlID09IDApIHNvdXJjZSA9IDA7CisgICAgICAgIC8vIEdlbmVyYXRlIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZvcm0gREREREQsIERERERELkRERERELCBvcgorICAgICAgICAvLyBEREREREUrLy1ERERERC4KKyAgICAgICAgU3RyaW5nIHJlcCA9IERvdWJsZS50b1N0cmluZyhzb3VyY2UpOworCisgICAgICAgIHNldChyZXAsIE1BWF9MT05HX0RJR0lUUyk7CisKKyAgICAgICAgaWYgKGZpeGVkUG9pbnQpIHsKKyAgICAgICAgICAgIC8vIFRoZSBuZWdhdGl2ZSBvZiB0aGUgZXhwb25lbnQgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcKKyAgICAgICAgICAgIC8vIHplcm9zIGJldHdlZW4gdGhlIGRlY2ltYWwgYW5kIHRoZSBmaXJzdCBub24temVybyBkaWdpdCwgZm9yCisgICAgICAgICAgICAvLyBhIHZhbHVlIDwgMC4xIChlLmcuLCBmb3IgMC4wMDEyMywgLWRlY2ltYWxBdCA9PSAyKS4gIElmIHRoaXMKKyAgICAgICAgICAgIC8vIGlzIG1vcmUgdGhhbiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMsIHRoZW4gd2UgaGF2ZSBhbiB1bmRlcmZsb3cKKyAgICAgICAgICAgIC8vIGZvciB0aGUgcHJpbnRlZCByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgICAgIGlmICgtZGVjaW1hbEF0ID4gbWF4aW11bURpZ2l0cykgeworICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9IGVsc2UgaWYgKC1kZWNpbWFsQXQgPT0gbWF4aW11bURpZ2l0cykgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRSb3VuZFVwKDApKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgKytkZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgICAgIGRpZ2l0c1swXSA9IChieXRlKScxJzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVsc2UgZmFsbCB0aHJvdWdoCisgICAgICAgIH0KKworICAgICAgICAvLyBFbGltaW5hdGUgdHJhaWxpbmcgemVyb3MuCisgICAgICAgIHdoaWxlIChjb3VudCA+IDEgJiYgZGlnaXRzW2NvdW50IC0gMV0gPT0gJzAnKQorICAgICAgICAgICAgLS1jb3VudDsKKworICAgICAgICAvLyBFbGltaW5hdGUgZGlnaXRzIGJleW9uZCBtYXhpbXVtIGRpZ2l0cyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgIC8vIFJvdW5kIHVwIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICByb3VuZChmaXhlZFBvaW50ID8gKG1heGltdW1EaWdpdHMgKyBkZWNpbWFsQXQpIDogbWF4aW11bURpZ2l0cyA9PSAwID8gLTEgOiBtYXhpbXVtRGlnaXRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZm9ybSBERERERCwgREREREQuREREREQsCisgICAgICogb3IgRERERERFKy8tREREREQsIHNldCB0aGlzIG9iamVjdCdzIHZhbHVlIHRvIGl0LiAgSWdub3JlCisgICAgICogYW55IGxlYWRpbmcgJy0nLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXQoU3RyaW5nIHJlcCwgaW50IG1heENvdW50KSB7CisgICAgICAgIGRlY2ltYWxBdCA9IC0xOworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGludCBleHBvbmVudCA9IDA7CisgICAgICAgIC8vIE51bWJlciBvZiB6ZXJvcyBiZXR3ZWVuIGRlY2ltYWwgcG9pbnQgYW5kIGZpcnN0IG5vbi16ZXJvIGRpZ2l0IGFmdGVyCisgICAgICAgIC8vIGRlY2ltYWwgcG9pbnQsIGZvciBudW1iZXJzIDwgMS4KKyAgICAgICAgaW50IGxlYWRpbmdaZXJvc0FmdGVyRGVjaW1hbCA9IDA7CisgICAgICAgIGJvb2xlYW4gbm9uWmVyb0RpZ2l0U2VlbiA9IGZhbHNlOworICAgICAgICAvLyBTa2lwIG92ZXIgbGVhZGluZyAnLScKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgaWYgKHJlcC5jaGFyQXQoaSkgPT0gJy0nKSB7CisgICAgICAgICAgICArK2k7CisgICAgICAgIH0KKyAgICAgICAgZm9yICg7IGkgPCByZXAubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcmVwLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09ICcuJykgeworICAgICAgICAgICAgICAgIGRlY2ltYWxBdCA9IGNvdW50OworICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICdlJyB8fCBjID09ICdFJykgeworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAvLyBJbnRlZ2VyLnBhcnNlSW50IGRvZXNuJ3QgaGFuZGxlIGxlYWRpbmcgJysnIHNpZ25zCisgICAgICAgICAgICAgICAgaWYgKHJlcC5jaGFyQXQoaSkgPT0gJysnKSB7CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXhwb25lbnQgPSBJbnRlZ2VyLnZhbHVlT2YocmVwLnN1YnN0cmluZyhpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY291bnQgPCBtYXhDb3VudCkgeworICAgICAgICAgICAgICAgIGlmICghbm9uWmVyb0RpZ2l0U2VlbikgeworICAgICAgICAgICAgICAgICAgICBub25aZXJvRGlnaXRTZWVuID0gKGMgIT0gJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFub25aZXJvRGlnaXRTZWVuICYmIGRlY2ltYWxBdCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytsZWFkaW5nWmVyb3NBZnRlckRlY2ltYWw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobm9uWmVyb0RpZ2l0U2VlbikgeworICAgICAgICAgICAgICAgICAgICBlbnN1cmVDYXBhY2l0eShjb3VudCsxLCBjb3VudCk7CisgICAgICAgICAgICAgICAgICAgIGRpZ2l0c1tjb3VudCsrXSA9IChieXRlKWM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkZWNpbWFsQXQgPT0gLTEpIHsKKyAgICAgICAgICAgIGRlY2ltYWxBdCA9IGNvdW50OworICAgICAgICB9CisgICAgICAgIGRlY2ltYWxBdCArPSBleHBvbmVudCAtIGxlYWRpbmdaZXJvc0FmdGVyRGVjaW1hbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0cnVuY2F0aW5nIHRoZSByZXByZXNlbnRhdGlvbiB0byB0aGUgZ2l2ZW4gbnVtYmVyCisgICAgICogb2YgZGlnaXRzIHdpbGwgcmVzdWx0IGluIGFuIGluY3JlbWVudCB0byB0aGUgbGFzdCBkaWdpdC4gIFRoaXMKKyAgICAgKiBtZXRob2QgaW1wbGVtZW50cyBoYWxmLWV2ZW4gcm91bmRpbmcsIHRoZSBkZWZhdWx0IHJvdW5kaW5nIG1vZGUuCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyB0byBrZWVwLCBmcm9tIDAgdG8KKyAgICAgKiA8Y29kZT5jb3VudC0xPC9jb2RlPi4gIElmIDAsIHRoZW4gYWxsIGRpZ2l0cyBhcmUgcm91bmRlZCBhd2F5LCBhbmQKKyAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIHRydWUgaWYgYSBvbmUgc2hvdWxkIGJlIGdlbmVyYXRlZCAoZS5nLiwgZm9ybWF0dGluZworICAgICAqIDAuMDkgd2l0aCAiIy4jIikuCisgICAgICogQHJldHVybiB0cnVlIGlmIGRpZ2l0IDxjb2RlPm1heGltdW1EaWdpdHMtMTwvY29kZT4gc2hvdWxkIGJlCisgICAgICogaW5jcmVtZW50ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvdWxkUm91bmRVcChpbnQgbWF4aW11bURpZ2l0cykgeworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBib29sZWFuIGluY3JlbWVudCA9IGZhbHNlOworICAgICAgICAvLyBJbXBsZW1lbnQgSUVFRSBoYWxmLWV2ZW4gcm91bmRpbmcKKyAgICAgICAgLypCdWcgNDI0MzEwOAorICAgICAgICAgIGZvcm1hdCgwLjApIGdpdmVzICIwLjEiIGlmIHByZWNlZGVkIGJ5IHBhcnNlKCI5OS45OSIpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKG1heGltdW1EaWdpdHMgPCBjb3VudCkgeworICAgICAgICAgICAgaWYgKGRpZ2l0c1ttYXhpbXVtRGlnaXRzXSA+ICc1JykgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChkaWdpdHNbbWF4aW11bURpZ2l0c10gPT0gJzUnICkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9bWF4aW11bURpZ2l0cysxOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0c1tpXSAhPSAnMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBtYXhpbXVtRGlnaXRzID4gMCAmJiAoZGlnaXRzW21heGltdW1EaWdpdHMtMV0gJSAyICE9IDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSb3VuZCB0aGUgcmVwcmVzZW50YXRpb24gdG8gdGhlIGdpdmVuIG51bWJlciBvZiBkaWdpdHMuCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyB0byBiZSBzaG93bi4KKyAgICAgKiBVcG9uIHJldHVybiwgY291bnQgd2lsbCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gbWF4aW11bURpZ2l0cy4KKyAgICAgKiBUaGlzIG5vdyBwZXJmb3JtcyByb3VuZGluZyB3aGVuIG1heGltdW1EaWdpdHMgaXMgMCwgZm9ybWVybHkgaXQgZGlkIG5vdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByb3VuZChpbnQgbWF4aW11bURpZ2l0cykgeyAgICAgICAgCisgICAgICAgIC8vIEVsaW1pbmF0ZSBkaWdpdHMgYmV5b25kIG1heGltdW0gZGlnaXRzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgICAgLy8gUm91bmQgdXAgaWYgYXBwcm9wcmlhdGUuCisgICAgICAgIC8vIFtibmZdIHJld3JpdHRlbiB0byBmaXggNDE3OTgxOAorICAgICAgICBpZiAobWF4aW11bURpZ2l0cyA+PSAwICYmIG1heGltdW1EaWdpdHMgPCBjb3VudCkgeworICAgICAgICAgICAgaWYgKHNob3VsZFJvdW5kVXAobWF4aW11bURpZ2l0cykpIHsKKyAgICAgICAgICAgICAgICAvLyBSb3VuZGluZyB1cCBpbnZvbHZlcyBpbmNyZW1lbnRpbmcgZGlnaXRzIGZyb20gTFNEIHRvIE1TRC4KKyAgICAgICAgICAgICAgICAvLyBJbiBtb3N0IGNhc2VzIHRoaXMgaXMgc2ltcGxlLCBidXQgaW4gYSB3b3JzdCBjYXNlIHNpdHVhdGlvbgorICAgICAgICAgICAgICAgIC8vICg5OTk5Li45OSkgd2UgaGF2ZSB0byBhZGp1c3QgdGhlIGRlY2ltYWxBdCB2YWx1ZS4KKyAgICAgICAgICAgICAgICBmb3IgKDs7KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLS1tYXhpbXVtRGlnaXRzOworICAgICAgICAgICAgICAgICAgICBpZiAobWF4aW11bURpZ2l0cyA8IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxsIDkncywgc28gd2UgaW5jcmVtZW50IHRvIGEgc2luZ2xlIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZiBvbmUgYW5kIGFkanVzdCB0aGUgZXhwb25lbnQuCisgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdHNbMF0gPSAoYnl0ZSkgJzEnOworICAgICAgICAgICAgICAgICAgICAgICAgKytkZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtRGlnaXRzID0gMDsgLy8gQWRqdXN0IHRoZSBjb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICArK2RpZ2l0c1ttYXhpbXVtRGlnaXRzXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0c1ttYXhpbXVtRGlnaXRzXSA8PSAnOScpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyBkaWdpdHNbbWF4aW11bURpZ2l0c10gPSAnMCc7IC8vIFVubmVjZXNzYXJ5IHNpbmNlIHdlJ2xsIHRydW5jYXRlIHRoaXMKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyttYXhpbXVtRGlnaXRzOyAvLyBJbmNyZW1lbnQgZm9yIHVzZSBhcyBjb3VudAorICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgPSBtYXhpbXVtRGlnaXRzOworICAgICAgICAgICAgLypCdWcgNDIxNzY2MSBEZWNpbWFsRm9ybWF0IGZvcm1hdHMgMS4wMDEgdG8gIjEuMDAiIGluc3RlYWQgb2YgIjEiCisgICAgICAgICAgICAgIEVsaW1pbmF0ZSB0cmFpbGluZyB6ZXJvcy4gW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA+IDEgJiYgZGlnaXRzW2NvdW50LTFdID09ICcwJykgeworICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICB9IC8vW1JpY2hhcmQvR0NMXQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSByb3V0aW5lIHRvIHNldCB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0IGxpc3QgZnJvbSBhIGxvbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQobG9uZyBzb3VyY2UpCisgICAgeworICAgICAgICBzZXQoc291cmNlLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gbG9uZyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZDsgbXVzdCBiZSA+PSAwIG9yID09CisgICAgICogTG9uZy5NSU5fVkFMVUUuCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChsb25nIHNvdXJjZSwgaW50IG1heGltdW1EaWdpdHMpCisgICAgeworICAgICAgICAvLyBUaGlzIG1ldGhvZCBkb2VzIG5vdCBleHBlY3QgYSBuZWdhdGl2ZSBudW1iZXIuIEhvd2V2ZXIsCisgICAgICAgIC8vICJzb3VyY2UiIGNhbiBiZSBhIExvbmcuTUlOX1ZBTFVFICgtOTIyMzM3MjAzNjg1NDc3NTgwOCksCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGlzIGEgTG9uZy5NSU5fVkFMVUUuICBJbiB0aGF0CisgICAgICAgIC8vIGNhc2UsIGl0IHdpbGwgYmUgZm9ybWF0dGVkIGFzIC1Mb25nLk1JTl9WQUxVRSwgYSBudW1iZXIKKyAgICAgICAgLy8gd2hpY2ggaXMgb3V0c2lkZSB0aGUgbGVnYWwgcmFuZ2Ugb2YgYSBsb25nLCBidXQgd2hpY2ggY2FuCisgICAgICAgIC8vIGJlIHJlcHJlc2VudGVkIGJ5IERpZ2l0TGlzdC4KKyAgICAgICAgLy8gW05FV10gRmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGlmIChzb3VyY2UgPD0gMCkgeworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIGRlY2ltYWxBdCA9IGNvdW50ID0gTUFYX0xPTkdfRElHSVRTOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoTE9OR19NSU5fUkVQLCAwLCBkaWdpdHMsIDAsIGNvdW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgIGRlY2ltYWxBdCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbGVmdCA9IE1BWF9MT05HX0RJR0lUUzsKKyAgICAgICAgICAgIGludCByaWdodDsKKyAgICAgICAgICAgIHdoaWxlIChzb3VyY2UgPiAwKSB7CisgICAgICAgICAgICAgICAgZGlnaXRzWy0tbGVmdF0gPSAoYnl0ZSkgKCgobG9uZykgJzAnKSArIChzb3VyY2UgJSAxMCkpOworICAgICAgICAgICAgICAgIHNvdXJjZSAvPSAxMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlY2ltYWxBdCA9IE1BWF9MT05HX0RJR0lUUy1sZWZ0OworICAgICAgICAgICAgLy8gRG9uJ3QgY29weSB0cmFpbGluZyB6ZXJvcworICAgICAgICAgICAgLy8gd2UgYXJlIGd1YXJhbnRlZWQgdGhhdCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgbm9uLXplcm8gZGlnaXQsCisgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGxvd2VyIGJvdW5kcworICAgICAgICAgICAgZm9yIChyaWdodCA9IE1BWF9MT05HX0RJR0lUUyAtIDE7IGRpZ2l0c1tyaWdodF0gPT0gKGJ5dGUpICcwJzsgLS1yaWdodCkge30KKyAgICAgICAgICAgIGNvdW50ID0gcmlnaHQgLSBsZWZ0ICsgMTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGlnaXRzLCBsZWZ0LCBkaWdpdHMsIDAsIGNvdW50KTsKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzID4gMCkgcm91bmQobWF4aW11bURpZ2l0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIEJpZ0ludGVnZXIgdmFsdWUuCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGRpZ2l0cyB3aGljaCBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAqIElmIG1heGltdW1EaWdpdHMgaXMgbG93ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgICAqIGluIHNvdXJjZSwgdGhlIHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgcm91bmRlZC4gIElnbm9yZWQgaWYgPD0gMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoQmlnSW50ZWdlciBzb3VyY2UsIGludCBtYXhpbXVtRGlnaXRzKSB7CisgICAgICAgIFN0cmluZyBzdHJpbmdEaWdpdHMgPSBzb3VyY2UudG9TdHJpbmcoKTsKKworICAgICAgICBjb3VudCA9IGRlY2ltYWxBdCA9IHN0cmluZ0RpZ2l0cy5sZW5ndGgoKTsKKworICAgICAgICAvLyBEb24ndCBjb3B5IHRyYWlsaW5nIHplcm9zCisgICAgICAgIHdoaWxlIChjb3VudCA+IDEgJiYgc3RyaW5nRGlnaXRzLmNoYXJBdChjb3VudCAtIDEpID09ICcwJykgLS1jb3VudDsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgaWYgKHN0cmluZ0RpZ2l0cy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAtLWRlY2ltYWxBdDsKKyAgICAgICAgfQorCisgICAgICAgIGVuc3VyZUNhcGFjaXR5KGNvdW50LCAwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBkaWdpdHNbaV0gPSAoYnl0ZSkgc3RyaW5nRGlnaXRzLmNoYXJBdChpICsgb2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzID4gMCkgcm91bmQobWF4aW11bURpZ2l0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgbWV0aG9kIHRoYXQgc2V0cyB0aGlzIGRpZ2l0IGxpc3QgdG8gcmVwcmVzZW50IHRoZQorICAgICAqIGdpdmVuIHZhbHVlLiAgVGhlIHZhbHVlIGlzIGdpdmVuIGFzIGEgU3RyaW5nIG9mIHRoZSBmb3JtYXQKKyAgICAgKiByZXR1cm5lZCBieSBCaWdEZWNpbWFsLgorICAgICAqIEBwYXJhbSBzdHJpbmdEaWdpdHMgdmFsdWUgdG8gYmUgcmVwcmVzZW50ZWQgd2l0aCB0aGUgZm9sbG93aW5nCisgICAgICogc3ludGF4LCBleHByZXNzZWQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb246IC0/XGQqLj9cZCoKKyAgICAgKiBNdXN0IG5vdCBiZSBhbiBlbXB0eSBzdHJpbmcuCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqIEBwYXJhbSBmaXhlZFBvaW50IElmIHRydWUsIHRoZW4gbWF4aW11bURpZ2l0cyBpcyB0aGUgbWF4aW11bQorICAgICAqIGZyYWN0aW9uYWwgZGlnaXRzIHRvIGJlIGNvbnZlcnRlZC4gIElmIGZhbHNlLCB0b3RhbCBkaWdpdHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldEJpZ0RlY2ltYWxEaWdpdHMoU3RyaW5nIHN0cmluZ0RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4aW11bURpZ2l0cywgYm9vbGVhbiBmaXhlZFBvaW50KSB7CisvL3wgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IG5vbi16ZXJvIGRpZ2l0LCB0aGUgZGVjaW1hbCwgYW5kIHRoZSBsYXN0IG5vbi16ZXJvIGRpZ2l0LgorLy98ICAgICAgICBpbnQgZmlyc3Q9LTEsIGxhc3Q9c3RyaW5nRGlnaXRzLmxlbmd0aCgpLTEsIGRlY2ltYWw9LTE7CisvL3wgICAgICAgIGZvciAoaW50IGk9MDsgKGZpcnN0PDAgfHwgZGVjaW1hbDwwKSAmJiBpPD1sYXN0OyArK2kpIHsKKy8vfCAgICAgICAgICAgIGNoYXIgYyA9IHN0cmluZ0RpZ2l0cy5jaGFyQXQoaSk7CisvL3wgICAgICAgICAgICBpZiAoYyA9PSAnLicpIHsKKy8vfCAgICAgICAgICAgICAgICBkZWNpbWFsID0gaTsKKy8vfCAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlyc3QgPCAwICYmIChjID49ICcxJyAmJiBjIDw9ICc5JykpIHsKKy8vfCAgICAgICAgICAgICAgICBmaXJzdCA9IGk7CisvL3wgICAgICAgICAgICB9CisvL3wgICAgICAgIH0KKy8vfAorLy98ICAgICAgICBpZiAoZmlyc3QgPCAwKSB7CisvL3wgICAgICAgICAgICBjbGVhcigpOworLy98ICAgICAgICAgICAgcmV0dXJuOworLy98ICAgICAgICB9CisvL3wKKy8vfCAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBub24temVybyBkaWdpdCwgc28gdGhlCisvL3wgICAgICAgIC8vIGZvbGxvd2luZyBsb29wIGlzIHNhZmUuCisvL3wgICAgICAgIGZvciAoOzspIHsKKy8vfCAgICAgICAgICAgIGNoYXIgYyA9IHN0cmluZ0RpZ2l0cy5jaGFyQXQobGFzdCk7CisvL3wgICAgICAgICAgICBpZiAoYyAhPSAnMCcgJiYgYyAhPSAnLicpIHsKKy8vfCAgICAgICAgICAgICAgICBicmVhazsKKy8vfCAgICAgICAgICAgIH0KKy8vfCAgICAgICAgICAgIC0tbGFzdDsKKy8vfCAgICAgICAgfQorLy98CisvL3wgICAgICAgIGlmIChkZWNpbWFsIDwgMCkgeworLy98ICAgICAgICAgICAgZGVjaW1hbCA9IHN0cmluZ0RpZ2l0cy5sZW5ndGgoKTsKKy8vfCAgICAgICAgfQorLy98CisvL3wgICAgICAgIGNvdW50ID0gbGFzdCAtIGZpcnN0OworLy98ICAgICAgICBpZiAoZGVjaW1hbCA8IGZpcnN0IHx8IGRlY2ltYWwgPiBsYXN0KSB7CisvL3wgICAgICAgICAgICArK2NvdW50OworLy98ICAgICAgICB9CisvL3wgICAgICAgIGRlY2ltYWxBdCA9IGRlY2ltYWwgLSBmaXJzdDsKKy8vfCAgICAgICAgaWYgKGRlY2ltYWxBdCA8IDApIHsKKy8vfCAgICAgICAgICAgICsrZGVjaW1hbEF0OworLy98ICAgICAgICB9CisvL3wKKy8vfCAgICAgICAgZW5zdXJlQ2FwYWNpdHkoY291bnQsIDApOworLy98ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKy8vfCAgICAgICAgICAgIGRpZ2l0c1tpXSA9IChieXRlKSBzdHJpbmdEaWdpdHMuY2hhckF0KGZpcnN0KyspOworLy98ICAgICAgICAgICAgaWYgKGZpcnN0ID09IGRlY2ltYWwpIHsKKy8vfCAgICAgICAgICAgICAgICArK2ZpcnN0OworLy98ICAgICAgICAgICAgfQorLy98ICAgICAgICB9CisKKyAgICAgICAgLy8gVGhlIG1heERpZ2l0cyBoZXJlIGNvdWxkIGFsc28gYmUgSW50ZWdlci5NQVhfVkFMVUUKKyAgICAgICAgc2V0KHN0cmluZ0RpZ2l0cywgc3RyaW5nRGlnaXRzLmxlbmd0aCgpKTsKKworICAgICAgICAvLyBFbGltaW5hdGUgZGlnaXRzIGJleW9uZCBtYXhpbXVtIGRpZ2l0cyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgIC8vIFJvdW5kIHVwIGlmIGFwcHJvcHJpYXRlLgorICAgIC8vIHtkbGZ9IFNvbWUgY2FsbGVycyBkZXBlbmQgb24gcGFzc2luZyAnMCcgdG8gcm91bmQgdG8gbWVhbiAnZG9uJ3Qgcm91bmQnLCBidXQKKyAgICAvLyByYXRoZXIgdGhhbiBwYXNzIHRoYXQgaW5mb3JtYXRpb24gZXhwbGljaXRseSwgd2UgcmVseSBvbiBzb21lIG1hZ2ljIHdpdGggbWF4aW11bURpZ2l0cworICAgIC8vIGFuZCBkZWNpbWFsQXQuICBVbmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vIGdvb2QsIGJlY2F1c2UgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIG1heGltdW1EaWdpdHMKKyAgICAvLyBpcyB6ZXJvIGFuZCB3ZSBkbyB3YW50IHRvIHJvdW5kLCBlLmcuIEJpZ0RlY2ltYWwgdmFsdWVzIC0xIDwgeCA8IDEuICBTbyBzaW5jZSByb3VuZAorICAgIC8vIGNoYW5nZWQgdG8gcGVyZm9ybSByb3VuZGluZyB3aGVuIHRoZSBhcmd1bWVudCBpcyAwLCB3ZSBub3cgZm9yY2UgdGhlIGFyZ3VtZW50CisgICAgLy8gdG8gLTEgaW4gdGhlIHNpdHVhdGlvbnMgd2hlcmUgaXQgbWF0dGVycy4KKyAgICAgICAgcm91bmQoZml4ZWRQb2ludCA/IChtYXhpbXVtRGlnaXRzICsgZGVjaW1hbEF0KSA6IG1heGltdW1EaWdpdHMgPT0gMCA/IC0xIDogbWF4aW11bURpZ2l0cyk7CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIFNldCB0aGUgZGlnaXQgbGlzdCB0byBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBCaWdEZWNpbWFsIHZhbHVlLgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIHNvdXJjZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyBUaGUgbW9zdCBkaWdpdHMgd2hpY2ggc2hvdWxkIGJlIGNvbnZlcnRlZC4KKyAgICAgKiBJZiBtYXhpbXVtRGlnaXRzIGlzIGxvd2VyIHRoYW4gdGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMKKyAgICAgKiBpbiBzb3VyY2UsIHRoZSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHJvdW5kZWQuICBJZ25vcmVkIGlmIDw9IDAuCisgICAgICogQHBhcmFtIGZpeGVkUG9pbnQgSWYgdHJ1ZSwgdGhlbiBtYXhpbXVtRGlnaXRzIGlzIHRoZSBtYXhpbXVtCisgICAgICogZnJhY3Rpb25hbCBkaWdpdHMgdG8gYmUgY29udmVydGVkLiAgSWYgZmFsc2UsIHRvdGFsIGRpZ2l0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4aW11bURpZ2l0cywgYm9vbGVhbiBmaXhlZFBvaW50KSB7CisgICAgICAgIHNldEJpZ0RlY2ltYWxEaWdpdHMoc291cmNlLnRvU3RyaW5nKCksIG1heGltdW1EaWdpdHMsIGZpeGVkUG9pbnQpOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKgorICAgICAqIFNldCB0aGUgZGlnaXQgbGlzdCB0byBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBCaWdEZWNpbWFsIHZhbHVlLgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIHNvdXJjZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyBUaGUgbW9zdCBkaWdpdHMgd2hpY2ggc2hvdWxkIGJlIGNvbnZlcnRlZC4KKyAgICAgKiBJZiBtYXhpbXVtRGlnaXRzIGlzIGxvd2VyIHRoYW4gdGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMKKyAgICAgKiBpbiBzb3VyY2UsIHRoZSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHJvdW5kZWQuICBJZ25vcmVkIGlmIDw9IDAuCisgICAgICogQHBhcmFtIGZpeGVkUG9pbnQgSWYgdHJ1ZSwgdGhlbiBtYXhpbXVtRGlnaXRzIGlzIHRoZSBtYXhpbXVtCisgICAgICogZnJhY3Rpb25hbCBkaWdpdHMgdG8gYmUgY29udmVydGVkLiAgSWYgZmFsc2UsIHRvdGFsIGRpZ2l0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heGltdW1EaWdpdHMsIGJvb2xlYW4gZml4ZWRQb2ludCkgeworICAgICAgICBzZXRCaWdEZWNpbWFsRGlnaXRzKHNvdXJjZS50b1N0cmluZygpLCBtYXhpbXVtRGlnaXRzLCBmaXhlZFBvaW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBEaWdpdExpc3QgcmVwcmVzZW50cyBMb25nLk1JTl9WQUxVRTsKKyAgICAgKiBmYWxzZSwgb3RoZXJ3aXNlLiAgVGhpcyBpcyByZXF1aXJlZCBzbyB0aGF0IGdldExvbmcoKSB3b3Jrcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNMb25nTUlOX1ZBTFVFKCkKKyAgICB7CisgICAgICAgIGlmIChkZWNpbWFsQXQgIT0gY291bnQgfHwgY291bnQgIT0gTUFYX0xPTkdfRElHSVRTKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkaWdpdHNbaV0gIT0gTE9OR19NSU5fUkVQW2ldKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBieXRlW10gTE9OR19NSU5fUkVQOworCisgICAgc3RhdGljCisgICAgeworICAgICAgICAvLyBTdG9yZSB0aGUgcmVwcmVzZW50YXRpb24gb2YgTE9OR19NSU4gd2l0aG91dCB0aGUgbGVhZGluZyAnLScKKyAgICAgICAgU3RyaW5nIHMgPSBMb25nLnRvU3RyaW5nKExvbmcuTUlOX1ZBTFVFKTsKKyAgICAgICAgTE9OR19NSU5fUkVQID0gbmV3IGJ5dGVbTUFYX0xPTkdfRElHSVRTXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgTUFYX0xPTkdfRElHSVRTOyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIExPTkdfTUlOX1JFUFtpXSA9IChieXRlKXMuY2hhckF0KGkgKyAxKTsKKyAgICAgICAgfQorICAgIH0KKworLy8gVW51c2VkIC0tIEFsYW4gMjAwMy0wNQorLy8gICAgLyoqCisvLyAgICAgKiBSZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBsb2cgYmFzZSAxMCBvZiBhIGdpdmVuIGRvdWJsZS4KKy8vICAgICAqIFRoaXMgbWV0aG9kIGNvbXBlbnNhdGVzIGZvciBpbmFjY3VyYWNpZXMgd2hpY2ggYXJpc2UgbmF0dXJhbGx5IHdoZW4KKy8vICAgICAqIGNvbXB1dGluZyBsb2dzLCBhbmQgYWx3YXlzIGdpdmUgdGhlIGNvcnJlY3QgdmFsdWUuICBUaGUgcGFyYW1ldGVyCisvLyAgICAgKiBtdXN0IGJlIHBvc2l0aXZlIGFuZCBmaW5pdGUuCisvLyAgICAgKi8KKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBsb2cxMChkb3VibGUgZCkKKy8vICAgIHsKKy8vICAgICAgICAvLyBUaGUgcmVhc29uIHRoaXMgcm91dGluZSBpcyBuZWVkZWQgaXMgdGhhdCBzaW1wbHkgdGFraW5nIHRoZQorLy8gICAgICAgIC8vIGxvZyBhbmQgZGl2aWRpbmcgYnkgbG9nMTAgeWllbGRzIGEgcmVzdWx0IHdoaWNoIG1heSBiZSBvZmYKKy8vICAgICAgICAvLyBieSAxIGR1ZSB0byByb3VuZGluZyBlcnJvcnMuICBGb3IgZXhhbXBsZSwgdGhlIG5haXZlIGxvZzEwCisvLyAgICAgICAgLy8gb2YgMS4wZTMwMCB0YWtlbiB0aGlzIHdheSBpcyAyOTksIHJhdGhlciB0aGFuIDMwMC4KKy8vICAgICAgICBkb3VibGUgbG9nMTAgPSBNYXRoLmxvZyhkKSAvIExPRzEwOworLy8gICAgICAgIGludCBpbG9nMTAgPSAoaW50KU1hdGguZmxvb3IobG9nMTApOworLy8gICAgICAgIC8vIFBvc2l0aXZlIGxvZ3MgY291bGQgYmUgdG9vIHNtYWxsLCBlLmcuIDAuOTkgaW5zdGVhZCBvZiAxLjAKKy8vICAgICAgICBpZiAobG9nMTAgPiAwICYmIGQgPj0gTWF0aC5wb3coMTAsIGlsb2cxMCArIDEpKQorLy8gICAgICAgIHsKKy8vICAgICAgICAgICAgKytpbG9nMTA7CisvLyAgICAgICAgfQorLy8gICAgICAgIC8vIE5lZ2F0aXZlIGxvZ3MgY291bGQgYmUgdG9vIGJpZywgZS5nLiAtMC45OSBpbnN0ZWFkIG9mIC0xLjAKKy8vICAgICAgICBlbHNlIGlmIChsb2cxMCA8IDAgJiYgZCA8IE1hdGgucG93KDEwLCBpbG9nMTApKQorLy8gICAgICAgIHsKKy8vICAgICAgICAgICAgLS1pbG9nMTA7CisvLyAgICAgICAgfQorLy8gICAgICAgIHJldHVybiBpbG9nMTA7CisvLyAgICB9CisvLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIExPRzEwID0gTWF0aC5sb2coMTAuMCk7CisKKyAgICAvLyAoVGhlIGZvbGxvd2luZyBib2lsZXJwbGF0ZSBtZXRob2RzIGFyZSBjdXJyZW50bHkgbm90IGNhbGxlZCwKKyAgICAvLyBhbmQgY2Fubm90IGJlIGNhbGxlZCBieSB0ZXN0cyBzaW5jZSB0aGlzIGNsYXNzIGlzCisgICAgLy8gcGFja2FnZS1wcml2YXRlLiAgVGhlIG1ldGhvZHMgbWF5IGJlIHVzZWZ1bCBpbiB0aGUgZnV0dXJlLCBzbworICAgIC8vIHdlIGRvIG5vdCBkZWxldGUgdGhlbS4gIDIwMDMtMDYtMTEgSUNVIDIuNiBBbGFuKQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBlcXVhbGl0eSB0ZXN0IGJldHdlZW4gdHdvIGRpZ2l0IGxpc3RzLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgICAgICAgICAgICAgICAgICAgICAgLy8gcXVpY2sgY2hlY2sKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoIShvYmogaW5zdGFuY2VvZiBEaWdpdExpc3QpKSAgICAgICAgIC8vICgxKSBzYW1lIG9iamVjdD8KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgRGlnaXRMaXN0IG90aGVyID0gKERpZ2l0TGlzdCkgb2JqOworICAgICAgICBpZiAoY291bnQgIT0gb3RoZXIuY291bnQgfHwKKyAgICAgICAgZGVjaW1hbEF0ICE9IG90aGVyLmRlY2ltYWxBdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorICAgICAgICAgICAgaWYgKGRpZ2l0c1tpXSAhPSBvdGhlci5kaWdpdHNbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIGRpZ2l0IGxpc3QuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IGhhc2hjb2RlID0gZGVjaW1hbEF0OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKyAgICAgICAgICAgIGhhc2hjb2RlID0gaGFzaGNvZGUgKiAzNyArIGRpZ2l0c1tpXTsKKworICAgICAgICByZXR1cm4gaGFzaGNvZGU7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgICAgeworICAgICAgICBpZiAoaXNaZXJvKCkpIHJldHVybiAiMCI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCIwLiIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgYnVmLmFwcGVuZCgoY2hhcilkaWdpdHNbaV0pOworICAgICAgICBidWYuYXBwZW5kKCJ4MTBeIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoZGVjaW1hbEF0KTsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0VzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Fc2NhcGVUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY5ZTRjYzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Fc2NhcGVUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjAwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAxMS8xOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBjb252ZXJ0cyBVbmljb2RlIGNoYXJhY3RlcnMgdG8gYW4gZXNjYXBlCisgKiBmb3JtLiAgRXhhbXBsZXMgb2YgZXNjYXBlIGZvcm1zIGFyZSAiVSs0RTAxIiBhbmQgIiYjeDEwRkZGRjsiLgorICogRXNjYXBlIGZvcm1zIGhhdmUgYSBwcmVmaXggYW5kIHN1ZmZpeCwgZWl0aGVyIG9mIHdoaWNoIG1heSBiZQorICogZW1wdHksIGEgcmFkaXgsIHR5cGljYWxseSAxNiBvciAxMCwgYSBtaW5pbXVtIGRpZ2l0IGNvdW50LAorICogdHlwaWNhbGx5IDEsIDQsIG9yIDgsIGFuZCBhIGJvb2xlYW4gdGhhdCBzcGVjaWZpZXMgd2hldGhlcgorICogc3VwcGxlbWVudGFsIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQgYXMgMzItYml0IGNvZGUgcG9pbnRzIG9yIGFzIHR3bworICogMTYtYml0IGNvZGUgdW5pdHMuICBNb3N0IGVzY2FwZSBmb3JtcyBoYW5kbGUgMzItYml0IGNvZGUgcG9pbnRzLAorICogYnV0IHNvbWUsIHN1Y2ggYXMgdGhlIEphdmEgZm9ybSwgaW50ZW50aW9uYWxseSBicmVhayB0aGVtIGludG8gdHdvCisgKiBzdXJyb2dhdGUgcGFpcnMsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICoKKyAqIDxwPlNvbWUgZXNjYXBlIGZvcm1zIGFjdHVhbGx5IGhhdmUgdHdvIGRpZmZlcmVudCBwYXR0ZXJucywgb25lIGZvcgorICogQk1QIGNoYXJhY3RlcnMgKDAuLkZGRkYpIGFuZCBvbmUgZm9yIHN1cHBsZW1lbnRzICg+RkZGRikuICBUbworICogaGFuZGxlIHRoaXMsIGEgc2Vjb25kIEVzY2FwZVRyYW5zbGl0ZXJhdG9yIG1heSBiZSBkZWZpbmVkIHRoYXQKKyAqIHNwZWNpZmllcyB0aGUgcGF0dGVybiB0byBiZSBwcm9kdWNlZCBmb3Igc3VwcGxlbWVudGFscy4gIEFuIGV4YW1wbGUKKyAqIG9mIGEgZm9ybSB0aGF0IHJlcXVpcmVzIHRoaXMgaXMgdGhlIEMgZm9ybSwgd2hpY2ggdXNlcyAiXFx1RkZGRiIKKyAqIGZvciBCTVAgY2hhcmFjdGVycyBhbmQgIlxcVTAwMTBGRkZGIiBmb3Igc3VwcGxlbWVudGFscy4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIHBhY2thZ2UgcHJpdmF0ZS4gIEl0IHJlZ2lzdGVycyBzZXZlcmFsIHN0YW5kYXJkCisgKiB2YXJpYW50cyB3aXRoIHRoZSBzeXN0ZW0gd2hpY2ggYXJlIHRoZW4gYWNjZXNzZWQgdmlhIHRoZWlyIElEcy4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIEVzY2FwZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogVGhlIHByZWZpeCBvZiB0aGUgZXNjYXBlIGZvcm07IG1heSBiZSBlbXB0eSwgYnV0IHVzdWFsbHkgaXNuJ3QuCisgICAgICogTWF5IG5vdCBiZSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHByZWZpeDsKKworICAgIC8qKgorICAgICAqIFRoZSBwcmVmaXggb2YgdGhlIGVzY2FwZSBmb3JtOyBvZnRlbiBlbXB0eS4gIE1heSBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBzdWZmaXg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmFkaXggdG8gZGlzcGxheSB0aGUgbnVtYmVyIGluLiAgVHlwaWNhbGx5IDE2IG9yIDEwLiAgTXVzdAorICAgICAqIGJlIGluIHRoZSByYW5nZSAyIHRvIDM2LgorICAgICAqLworICAgIHByaXZhdGUgaW50IHJhZGl4OworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cy4gIFR5cGljYWxseSAxLCA0LCBvciA4LiAgVmFsdWVzCisgICAgICogbGVzcyB0aGFuIDEgYXJlIGVxdWl2YWxlbnQgdG8gMS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtaW5EaWdpdHM7CisKKyAgICAvKioKKyAgICAgKiBJZiB0cnVlLCBzdXBwbGVtZW50YWxzIGFyZSBoYW5kbGVkIGFzIDMyLWJpdCBjb2RlIHBvaW50cy4gIElmCisgICAgICogZmFsc2UsIHRoZXkgYXJlIGhhbmRsZWQgYXMgdHdvIDE2LWJpdCBjb2RlIHVuaXRzLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBncm9rU3VwcGxlbWVudGFsczsKKworICAgIC8qKgorICAgICAqIFRoZSBmb3JtIHRvIGJlIHVzZWQgZm9yIHN1cHBsZW1lbnRhbHMuICBJZiB0aGlzIGlzIG51bGwgdGhlbgorICAgICAqIHRoZSBzYW1lIGZvcm0gaXMgdXNlZCBmb3IgQk1QIGNoYXJhY3RlcnMgYW5kIHN1cHBsZW1lbnRhbHMuICBJZgorICAgICAqIHRoaXMgaXMgbm90IG51bGwgYW5kIGlmIGdyb2tTdXBwbGVtZW50YWxzIGlzIHRydWUgdGhlbiB0aGUKKyAgICAgKiBwcmVmaXgsIHN1ZmZpeCwgcmFkaXgsIGFuZCBtaW5EaWdpdHMgb2YgdGhpcyBvYmplY3QgYXJlIHVzZWQKKyAgICAgKiBmb3Igc3VwcGxlbWVudGFscy4KKyAgICAgKi8KKyAgICBwcml2YXRlIEVzY2FwZVRyYW5zbGl0ZXJhdG9yIHN1cHBsZW1lbnRhbEhhbmRsZXI7CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtLiAgQ2FsbGVkIGJ5CisgICAgICogVHJhbnNsaXRlcmF0b3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICAvLyBVbmljb2RlOiAiVSsxMEZGRkYiIGhleCwgbWluPTQsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9Vbmljb2RlIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9Vbmljb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVKyIsICIiLCAxNiwgNCwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gSmF2YTogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9KYXZhIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9KYXZhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXHUiLCAiIiwgMTYsIDQsIGZhbHNlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBDOiAiXFx1RkZGRiIgaGV4LCBtaW49NCwgbWF4PTQ7IFxcVTAwMTBGRkZGIGhleCwgbWluPTgsIG1heD04CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9DIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9DIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXHUiLCAiIiwgMTYsIDQsIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiIiwgIlxcVSIsICIiLCAxNiwgOCwgdHJ1ZSwgbnVsbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFhNTDogIiYjeDEwRkZGRjsiIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9YTUwiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4L1hNTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJiN4IiwgIjsiLCAxNiwgMSwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFhNTDEwOiAiJjExMTQxMTE7IiBkZWMsIG1pbj0xLCBtYXg9NyAobm90IHJlYWxseSAiQW55LUhleCIpCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9YTUwxMCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgvWE1MMTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiYjIiwgIjsiLCAxMCwgMSwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFBlcmw6ICJcXHh7MjYzQX0iIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9QZXJsIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9QZXJsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXHh7IiwgIn0iLCAxNiwgMSwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEdlbmVyaWMKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4IiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFx1IiwgIiIsIDE2LCA0LCBmYWxzZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gZXNjYXBlIHRyYW5zbGl0ZXJhdG9yIHdpdGggdGhlIGdpdmVuIElEIGFuZAorICAgICAqIHBhcmFtZXRlcnMuICBTZWUgdGhlIGNsYXNzIG1lbWJlciBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICAgICAqLworICAgIEVzY2FwZVRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgU3RyaW5nIHByZWZpeCwgU3RyaW5nIHN1ZmZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmFkaXgsIGludCBtaW5EaWdpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBncm9rU3VwcGxlbWVudGFscywKKyAgICAgICAgICAgICAgICAgICAgICAgICBFc2NhcGVUcmFuc2xpdGVyYXRvciBzdXBwbGVtZW50YWxIYW5kbGVyKSB7CisgICAgICAgIHN1cGVyKElELCBudWxsKTsKKyAgICAgICAgdGhpcy5wcmVmaXggPSBwcmVmaXg7CisgICAgICAgIHRoaXMuc3VmZml4ID0gc3VmZml4OworICAgICAgICB0aGlzLnJhZGl4ID0gcmFkaXg7CisgICAgICAgIHRoaXMubWluRGlnaXRzID0gbWluRGlnaXRzOworICAgICAgICB0aGlzLmdyb2tTdXBwbGVtZW50YWxzID0gZ3Jva1N1cHBsZW1lbnRhbHM7CisgICAgICAgIHRoaXMuc3VwcGxlbWVudGFsSGFuZGxlciA9IHN1cHBsZW1lbnRhbEhhbmRsZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gcG9zLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGludCBzdGFydCA9IHBvcy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gcG9zLmxpbWl0OworCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHByZWZpeCk7CisgICAgICAgIGludCBwcmVmaXhMZW4gPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgIGJvb2xlYW4gcmVkb1ByZWZpeCA9IGZhbHNlOworCisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgYyA9IGdyb2tTdXBwbGVtZW50YWxzID8gdGV4dC5jaGFyMzJBdChzdGFydCkgOiB0ZXh0LmNoYXJBdChzdGFydCk7CisgICAgICAgICAgICBpbnQgY2hhckxlbiA9IGdyb2tTdXBwbGVtZW50YWxzID8gVVRGMTYuZ2V0Q2hhckNvdW50KGMpIDogMTsKKworICAgICAgICAgICAgaWYgKChjICYgMHhGRkZGMDAwMCkgIT0gMCAmJiBzdXBwbGVtZW50YWxIYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3VwcGxlbWVudGFsSGFuZGxlci5wcmVmaXgpOworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKGJ1ZiwgYywgc3VwcGxlbWVudGFsSGFuZGxlci5yYWRpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGVtZW50YWxIYW5kbGVyLm1pbkRpZ2l0cyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzdXBwbGVtZW50YWxIYW5kbGVyLnN1ZmZpeCk7CisgICAgICAgICAgICAgICAgcmVkb1ByZWZpeCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChyZWRvUHJlZml4KSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgcmVkb1ByZWZpeCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgocHJlZml4TGVuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmROdW1iZXIoYnVmLCBjLCByYWRpeCwgbWluRGlnaXRzKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHN1ZmZpeCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRleHQucmVwbGFjZShzdGFydCwgc3RhcnQgKyBjaGFyTGVuLCBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBzdGFydCArPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICBsaW1pdCArPSBidWYubGVuZ3RoKCkgLSBjaGFyTGVuOworICAgICAgICB9CisKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCArPSBsaW1pdCAtIHBvcy5saW1pdDsKKyAgICAgICAgcG9zLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIHBvcy5zdGFydCA9IHN0YXJ0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0Z1bmN0aW9uUmVwbGFjZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0Z1bmN0aW9uUmVwbGFjZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZjY2ZjNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRnVuY3Rpb25SZXBsYWNlci5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAxLzE0LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIEEgcmVwbGFjZXIgdGhhdCBjYWxscyBhIHRyYW5zbGl0ZXJhdG9yIHRvIGdlbmVyYXRlIGl0cyBvdXRwdXQgdGV4dC4KKyAqIFRoZSBpbnB1dCB0ZXh0IHRvIHRoZSB0cmFuc2xpdGVyYXRvciBpcyB0aGUgb3V0cHV0IG9mIGFub3RoZXIKKyAqIFVuaWNvZGVSZXBsYWNlciBvYmplY3QuICBUaGF0IGlzLCB0aGlzIHJlcGxhY2VyIHdyYXBzIGFub3RoZXIKKyAqIHJlcGxhY2VyIHdpdGggYSB0cmFuc2xpdGVyYXRvci4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgRnVuY3Rpb25SZXBsYWNlciBpbXBsZW1lbnRzIFVuaWNvZGVSZXBsYWNlciB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdHJhbnNsaXRlcmF0b3IuICBNdXN0IG5vdCBiZSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVwbGFjZXIgb2JqZWN0LiAgVGhpcyBnZW5lcmF0ZXMgdGV4dCB0aGF0IGlzIHRoZW4KKyAgICAgKiBwcm9jZXNzZWQgYnkgJ3RyYW5zbGl0Jy4gIE11c3Qgbm90IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBVbmljb2RlUmVwbGFjZXIgcmVwbGFjZXI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSByZXBsYWNlciB0aGF0IHRha2VzIHRoZSBvdXRwdXQgb2YgdGhlIGdpdmVuCisgICAgICogcmVwbGFjZXIsIHBhc3NlcyBpdCB0aHJvdWdoIHRoZSBnaXZlbiB0cmFuc2xpdGVyYXRvciwgYW5kIGVtaXRzCisgICAgICogdGhlIHJlc3VsdCBhcyBvdXRwdXQuCisgICAgICovCisgICAgcHVibGljIEZ1bmN0aW9uUmVwbGFjZXIoVHJhbnNsaXRlcmF0b3IgdGhlVHJhbnNsaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVJlcGxhY2VyIHRoZVJlcGxhY2VyKSB7CisgICAgICAgIHRyYW5zbGl0ID0gdGhlVHJhbnNsaXQ7CisgICAgICAgIHJlcGxhY2VyID0gdGhlUmVwbGFjZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKSB7CisKKyAgICAgICAgLy8gRmlyc3QgZGVsZWdhdGUgdG8gc3Vib3JkaW5hdGUgcmVwbGFjZXIKKyAgICAgICAgaW50IGxlbiA9IHJlcGxhY2VyLnJlcGxhY2UodGV4dCwgc3RhcnQsIGxpbWl0LCBjdXJzb3IpOworICAgICAgICBsaW1pdCA9IHN0YXJ0ICsgbGVuOworCisgICAgICAgIC8vIE5vdyB0cmFuc2xpdGVyYXRlCisgICAgICAgIGxpbWl0ID0gdHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZXh0LCBzdGFydCwgbGltaXQpOworCisgICAgICAgIHJldHVybiBsaW1pdCAtIHN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGUgPSBuZXcgU3RyaW5nQnVmZmVyKCImIik7CisgICAgICAgIHJ1bGUuYXBwZW5kKHRyYW5zbGl0LmdldElEKCkpOworICAgICAgICBydWxlLmFwcGVuZCgiKCAiKTsKKyAgICAgICAgcnVsZS5hcHBlbmQocmVwbGFjZXIudG9SZXBsYWNlclBhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpKTsKKyAgICAgICAgcnVsZS5hcHBlbmQoIiApIik7CisgICAgICAgIHJldHVybiBydWxlLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBvdXRwdXQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIG91dHB1dCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkUmVwbGFjZW1lbnRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICB0b1VuaW9uVG8uYWRkQWxsKHRyYW5zbGl0LmdldFRhcmdldFNldCgpKTsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9JRE5BLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9JRE5BLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg2NzExOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0lETkEuamF2YQpAQCAtMCwwICsxLDk2NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICoKKyAqIElETkEgQVBJIGltcGxlbWVudHMgdGhlIElETkEgcHJvdG9jb2wgYXMgZGVmaW5lZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzQ5MC50eHQiPklETkEgUkZDPC9hPi4KKyAqIFRoZSBkcmFmdCBkZWZpbmVzIDIgb3BlcmF0aW9uczogVG9BU0NJSSBhbmQgVG9Vbmljb2RlLiBEb21haW4gbGFiZWxzIAorICogY29udGFpbmluZyBub24tQVNDSUkgY29kZSBwb2ludHMgYXJlIHJlcXVpcmVkIHRvIGJlIHByb2Nlc3NlZCBieQorICogVG9BU0NJSSBvcGVyYXRpb24gYmVmb3JlIHBhc3NpbmcgaXQgdG8gcmVzb2x2ZXIgbGlicmFyaWVzLiBEb21haW4gbmFtZXMKKyAqIHRoYXQgYXJlIG9idGFpbmVkIGZyb20gcmVzb2x2ZXIgbGlicmFyaWVzIGFyZSByZXF1aXJlZCB0byBiZSBwcm9jZXNzZWQgYnkKKyAqIFRvVW5pY29kZSBvcGVyYXRpb24gYmVmb3JlIGRpc3BsYXlpbmcgdGhlIGRvbWFpbiBuYW1lIHRvIHRoZSB1c2VyLgorICogSUROQSByZXF1aXJlcyB0aGF0IGltcGxlbWVudGF0aW9ucyBwcm9jZXNzIGlucHV0IHN0cmluZ3Mgd2l0aCAKKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzM0OTEudHh0Ij5OYW1lcHJlcDwvYT4sIAorICogd2hpY2ggaXMgYSBwcm9maWxlIG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzM0NTQudHh0Ij5TdHJpbmdwcmVwPC9hPiAsIAorICogYW5kIHRoZW4gd2l0aCA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzNDkyLnR4dCI+UHVueWNvZGU8L2E+LiAKKyAqIEltcGxlbWVudGF0aW9ucyBvZiBJRE5BIE1VU1QgZnVsbHkgaW1wbGVtZW50IE5hbWVwcmVwIGFuZCBQdW55Y29kZTsgCisgKiBuZWl0aGVyIE5hbWVwcmVwIG5vciBQdW55Y29kZSBhcmUgb3B0aW9uYWwuCisgKiBUaGUgaW5wdXQgYW5kIG91dHB1dCBvZiBUb0FTQ0lJIGFuZCBUb1VuaWNvZGUgb3BlcmF0aW9ucyBhcmUgVW5pY29kZSAKKyAqIGFuZCBhcmUgZGVzaWduZWQgdG8gYmUgY2hhaW5hYmxlLCBpLmUuLCBhcHBseWluZyBUb0FTQ0lJIG9yIFRvVW5pY29kZSBvcGVyYXRpb25zCisgKiBtdWx0aXBsZSB0aW1lcyB0byBhbiBpbnB1dCBzdHJpbmcgd2lsbCB5aWVsZCB0aGUgc2FtZSByZXN1bHQgYXMgYXBwbHlpbmcgdGhlIG9wZXJhdGlvbgorICogb25jZS4KKyAqIFRvVW5pY29kZShUb1VuaWNvZGUoVG9Vbmljb2RlLi4uKFRvVW5pY29kZShzdHJpbmcpKSkpID09IFRvVW5pY29kZShzdHJpbmcpIAorICogVG9BU0NJSShUb0FTQ0lJKFRvQVNDSUkuLi4oVG9BU0NJSShzdHJpbmcpKSkgPT0gVG9BU0NJSShzdHJpbmcpLgorICogCisgKiBAYXV0aG9yIFJhbSBWaXN3YW5hZGhhCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIElETkEgeworCisgICAgLyogSUROQSBBQ0UgUHJlZml4IGlzICJ4bi0tIiAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBBQ0VfUFJFRklYID0gbmV3IGNoYXJbXXsgMHgwMDc4LDB4MDA2RSwweDAwMmQsMHgwMDJkIH0gOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBQ0VfUFJFRklYX0xFTkdUSCAgPSA0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9MQUJFTF9MRU5HVEggICA9IDYzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU4gICAgICAgICAgICAgPSAweDAwMkQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBUElUQUxfQSAgICAgICAgICA9IDB4MDA0MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FQSVRBTF9aICAgICAgICAgID0gMHgwMDVBOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT1dFUl9DQVNFX0RFTFRBICAgPSAweDAwMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfU1RPUCAgICAgICAgICA9IDB4MDAyRTsKKworICAgIC8qKiAKKyAgICAgKiBPcHRpb24gdG8gcHJvaGliaXQgcHJvY2Vzc2luZyBvZiB1bmFzc2lnbmVkIGNvZGVwb2ludHMgaW4gdGhlIGlucHV0IGFuZAorICAgICAqIGRvIG5vdCBjaGVjayBpZiB0aGUgaW5wdXQgY29uZm9ybXMgdG8gU1RELTMgQVNDSUkgcnVsZXMuCisgICAgICogCisgICAgICogQHNlZSAgI2NvbnZlcnRUb0FTQ0lJICNjb252ZXJ0VG9Vbmljb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVCAgICAgICAgICAgICA9IDB4MDAwMDsKKyAgICAvKiogCisgICAgICogT3B0aW9uIHRvIGFsbG93IHByb2Nlc3Npbmcgb2YgdW5hc3NpZ25lZCBjb2RlcG9pbnRzIGluIHRoZSBpbnB1dAorICAgICAqIAorICAgICAqIEBzZWUgICNjb252ZXJ0VG9BU0NJSSAjY29udmVydFRvVW5pY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMTE9XX1VOQVNTSUdORUQgICAgPSAweDAwMDE7CisgICAgLyoqIAorICAgICAqIE9wdGlvbiB0byBjaGVjayBpZiBpbnB1dCBjb25mb3JtcyB0byBTVEQtMyBBU0NJSSBydWxlcworICAgICAqIAorICAgICAqIEBzZWUgI2NvbnZlcnRUb0FTQ0lJICNjb252ZXJ0VG9Vbmljb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVNFX1NURDNfUlVMRVMgICAgICA9IDB4MDAwMjsKKyAgICAKKyAgICAvLyBzdGF0aWMgZmluYWwgc2luZ2xldG9uIG9iamVjdCB0aGF0IGlzIGluaXRpYWxpemVkCisgICAgLy8gYXQgY2xhc3MgaW5pdGlhbGl6YXRpb24gdGltZSwgaGVuY2UgZ3VhcmFudGVlZCB0bworICAgIC8vIGJlIGluaXRpYWxpemVkIGFuZCB0aHJlYWQgc2FmZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIElETkEgc2luZ2xldG9uICA9IG5ldyBJRE5BKCk7CisgICAgCisgICAgLy8gVGhlIE5hbWVQcmVwIHByb2ZpbGUgb2JqZWN0CisgICAgcHJpdmF0ZSBTdHJpbmdQcmVwIG5hbWVQcmVwOworICAgIAorICAgIC8qIHByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBjb25zdHJ1Y3Rpb24gb2YgdGhlIG9iamVjdCAqLworICAgIHByaXZhdGUgSUROQSgpeworICAgICAgICB0cnl7CisgICAgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3VpZG5hLnNwcCIpOworICAgICAgICAgICBuYW1lUHJlcCA9IG5ldyBTdHJpbmdQcmVwKHN0cmVhbSk7CisgICAgICAgICAgIHN0cmVhbS5jbG9zZSgpOworICAgICAgICB9Y2F0Y2ggKElPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCksIiIsIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gc3RhcnRzV2l0aFByZWZpeChTdHJpbmdCdWZmZXIgc3JjKXsKKyAgICAgICAgYm9vbGVhbiBzdGFydHNXaXRoUHJlZml4ID0gdHJ1ZTsKKworICAgICAgICBpZihzcmMubGVuZ3RoKCkgPCBBQ0VfUFJFRklYX0xFTkdUSCl7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGk8QUNFX1BSRUZJWF9MRU5HVEg7aSsrKXsKKyAgICAgICAgICAgIGlmKHRvQVNDSUlMb3dlcihzcmMuY2hhckF0KGkpKSAhPSBBQ0VfUFJFRklYW2ldKXsKKyAgICAgICAgICAgICAgICBzdGFydHNXaXRoUHJlZml4ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXJ0c1dpdGhQcmVmaXg7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciB0b0FTQ0lJTG93ZXIoY2hhciBjaCl7CisgICAgICAgIGlmKENBUElUQUxfQSA8PSBjaCAmJiBjaCA8PSBDQVBJVEFMX1opeworICAgICAgICAgICAgcmV0dXJuIChjaGFyKShjaCArIExPV0VSX0NBU0VfREVMVEEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdCdWZmZXIgdG9BU0NJSUxvd2VyKFN0cmluZ0J1ZmZlciBzcmMpeworICAgICAgICBTdHJpbmdCdWZmZXIgZGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c3JjLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICBkZXN0LmFwcGVuZCh0b0FTQ0lJTG93ZXIoc3JjLmNoYXJBdChpKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkoU3RyaW5nQnVmZmVyIHMxLCBTdHJpbmdCdWZmZXIgczIpeworICAgICAgICBjaGFyIGMxLGMyOworICAgICAgICBpbnQgcmM7CisgICAgICAgIGZvcihpbnQgaSA9MDsvKiBubyBjb25kaXRpb24gKi87aSsrKSB7CisgICAgICAgICAgICAvKiBJZiB3ZSByZWFjaCB0aGUgZW5kcyBvZiBib3RoIHN0cmluZ3MgdGhlbiB0aGV5IG1hdGNoICovCisgICAgICAgICAgICBpZihpID09IHMxLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGMxID0gczEuY2hhckF0KGkpOworICAgICAgICAgICAgYzIgPSBzMi5jaGFyQXQoaSk7CisgICAgICAgIAorICAgICAgICAgICAgLyogQ2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uICovCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICByYz10b0FTQ0lJTG93ZXIoYzEpLXRvQVNDSUlMb3dlcihjMik7CisgICAgICAgICAgICAgICAgaWYocmMhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTZXBhcmF0b3JJbmRleChjaGFyW10gc3JjLGludCBzdGFydCwgaW50IGxpbWl0KXsKKyAgICAgICAgZm9yKDsgc3RhcnQ8bGltaXQ7c3RhcnQrKyl7CisgICAgICAgICAgICBpZihpc0xhYmVsU2VwYXJhdG9yKHNyY1tzdGFydF0pKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gd2UgaGF2ZSBub3QgZm91bmQgdGhlIHNlcGFyYXRvciBqdXN0IHJldHVybiBsZW5ndGgKKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKyAgICAKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTZXBhcmF0b3JJbmRleChVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcil7CisgICAgICAgIGludCBjdXJyZW50SW5kZXggPSBpdGVyLmdldEluZGV4KCk7CisgICAgICAgIGludCBzZXBhcmF0b3JJbmRleCA9IDA7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIGlmKGlzTGFiZWxTZXBhcmF0b3IoY2gpKXsKKyAgICAgICAgICAgICAgICBzZXBhcmF0b3JJbmRleCA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlcGFyYXRvckluZGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHJlc2V0IGluZGV4CisgICAgICAgIGl0ZXIuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKyAgICAgICAgLy8gd2UgaGF2ZSBub3QgZm91bmQgdGhlIHNlcGFyYXRvciBqdXN0IHJldHVybiB0aGUgbGVuZ3RoCisgICAgICAgCisgICAgfQorICAgICovCisgICAgCisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTERIQ2hhcihpbnQgY2gpeworICAgICAgICAvLyBoaWdoIHJ1bm5lciBjYXNlCisgICAgICAgIGlmKGNoPjB4MDA3QSl7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy9bXFx1MDAyRCBcXHUwMDMwLVxcdTAwMzkgXFx1MDA0MS1cXHUwMDVBIFxcdTAwNjEtXFx1MDA3QV0KKyAgICAgICAgaWYoIChjaD09MHgwMDJEKSB8fCAKKyAgICAgICAgICAgICgweDAwMzAgPD0gY2ggJiYgY2ggPD0gMHgwMDM5KSB8fAorICAgICAgICAgICAgKDB4MDA0MSA8PSBjaCAmJiBjaCA8PSAweDAwNUEpIHx8CisgICAgICAgICAgICAoMHgwMDYxIDw9IGNoICYmIGNoIDw9IDB4MDA3QSkKKyAgICAgICAgICApeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBc2NlcnRhaW4gaWYgdGhlIGdpdmVuIGNvZGUgcG9pbnQgaXMgYSBsYWJlbCBzZXBhcmF0b3IgYXMgCisgICAgICogZGVmaW5lZCBieSB0aGUgSUROQSBSRkMKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gY2ggVGhlIGNvZGUgcG9pbnQgdG8gYmUgYXNjZXJ0YWluZWQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNoYXIgaXMgYSBsYWJlbCBzZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTGFiZWxTZXBhcmF0b3IoaW50IGNoKXsKKyAgICAgICAgc3dpdGNoKGNoKXsKKyAgICAgICAgICAgIGNhc2UgMHgwMDJlOgorICAgICAgICAgICAgY2FzZSAweDMwMDI6CisgICAgICAgICAgICBjYXNlIDB4RkYwRToKKyAgICAgICAgICAgIGNhc2UgMHhGRjYxOgorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIFRvQVNDSUkgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gPGI+c2luZ2xlIGxhYmVsczwvYj4gYmVmb3JlIHNlbmRpbmcgaXQgdG8gc29tZXRoaW5nIHRoYXQgZXhwZWN0cworICAgICAqIEFTQ0lJIG5hbWVzLiBBIGxhYmVsIGlzIGFuIGluZGl2aWR1YWwgcGFydCBvZiBhIGRvbWFpbiBuYW1lLiBMYWJlbHMgYXJlIHVzdWFsbHkKKyAgICAgKiBzZXBhcmF0ZWQgYnkgZG90czsgZS5nLiIgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgMyBsYWJlbHMgCisgICAgICogInd3dyIsImV4YW1wbGUiLCBhbmQgImNvbSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9BU0NJSShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0FTQ0lJKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgVG9BU0NJSSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiA8Yj5zaW5nbGUgbGFiZWxzPC9iPiBiZWZvcmUgc2VuZGluZyBpdCB0byBzb21ldGhpbmcgdGhhdCBleHBlY3RzCisgICAgICogQVNDSUkgbmFtZXMuIEEgbGFiZWwgaXMgYW4gaW5kaXZpZHVhbCBwYXJ0IG9mIGEgZG9tYWluIG5hbWUuIExhYmVscyBhcmUgdXN1YWxseQorICAgICAqIHNlcGFyYXRlZCBieSBkb3RzOyBlLmcuIiAid3d3LmV4YW1wbGUuY29tIiBpcyBjb21wb3NlZCBvZiAzIGxhYmVscyAKKyAgICAgKiAid3d3IiwiZXhhbXBsZSIsIGFuZCAiY29tIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBTdHJpbmdCdWZmZXIgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb0FTQ0lJKFN0cmluZ0J1ZmZlciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICByZXR1cm4gY29udmVydFRvQVNDSUkoaXRlcixvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBUb0FTQ0lJIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIDxiPnNpbmdsZSBsYWJlbHM8L2I+IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHNvbWV0aGluZyB0aGF0IGV4cGVjdHMKKyAgICAgKiBBU0NJSSBuYW1lcy4gQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gTGFiZWxzIGFyZSB1c3VhbGx5CisgICAgICogc2VwYXJhdGVkIGJ5IGRvdHM7IGUuZy4iICJ3d3cuZXhhbXBsZS5jb20iIGlzIGNvbXBvc2VkIG9mIDMgbGFiZWxzIAorICAgICAqICJ3d3ciLCJleGFtcGxlIiwgYW5kICJjb20iLgorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIGFzIFVDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvQVNDSUkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW5bXSBjYXNlRmxhZ3MgPSBudWxsOworICAgIAorICAgICAgICAvLyB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBhc2NpaSBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNBU0NJSSAgPSB0cnVlOworICAgICAgICAvLyBhc3N1bWUgdGhlIHNvdXJjZSBjb250YWlucyBhbGwgTERIIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0xESCA9IHRydWU7IAorCisgICAgICAgIC8vZ2V0IHRoZSBvcHRpb25zCisgICAgICAgIGJvb2xlYW4gdXNlU1REM0FTQ0lJUnVsZXMgPSAoKG9wdGlvbnMgJiBVU0VfU1REM19SVUxFUykgIT0gMCk7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgLy8gc3RlcCAxCisgICAgICAgIHdoaWxlKChjaCA9IHNyYy5uZXh0KCkpIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoY2g+IDB4N2YpeworICAgICAgICAgICAgICAgIHNyY0lzQVNDSUkgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgZmFpbFBvcyA9IC0xOworICAgICAgICBzcmMuc2V0VG9TdGFydCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgcHJvY2Vzc091dCA9IG51bGw7CisgICAgICAgIC8vIHN0ZXAgMiBpcyBwZXJmb3JtZWQgb25seSBpZiB0aGUgc291cmNlIGNvbnRhaW5zIG5vbiBBU0NJSQorICAgICAgICBpZighc3JjSXNBU0NJSSl7CisgICAgICAgICAgICAvLyBzdGVwIDIKKyAgICAgICAgICAgIHByb2Nlc3NPdXQgPSBzaW5nbGV0b24ubmFtZVByZXAucHJlcGFyZShzcmMsIG9wdGlvbnMpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHByb2Nlc3NPdXQgPSBuZXcgU3RyaW5nQnVmZmVyKHNyYy5nZXRUZXh0KCkpOworICAgICAgICB9CisgICAgICAgIGludCBwb0xlbiA9IHByb2Nlc3NPdXQubGVuZ3RoKCk7CisgICAgICAgIAorICAgICAgICBpZihwb0xlbj09MCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJGb3VuZCB6ZXJvIGxlbmd0aCBsYWJsZSBhZnRlciBOYW1lUHJlcC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5aRVJPX0xFTkdUSF9MQUJFTCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICAvLyByZXNldCB0aGUgdmFyaWFibGUgdG8gdmVyaWZ5IGlmIG91dHB1dCBvZiBwcmVwYXJlIGlzIEFTQ0lJIG9yIG5vdAorICAgICAgICBzcmNJc0FTQ0lJID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIC8vIHN0ZXAgMyAmIDQKKyAgICAgICAgZm9yKGludCBqPTA7ajxwb0xlbjtqKysgKXsKKyAgICAgICAgICAgIGNoPXByb2Nlc3NPdXQuY2hhckF0KGopOworICAgICAgICAgICAgaWYoY2ggPiAweDdGKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihpc0xESENoYXIoY2gpPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgLy8gaGVyZSB3ZSBkbyBub3QgYXNzZW1ibGUgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgdGhhdCBMREggY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICAvLyBhcmUgaW4gdGhlIEFTQ0lJIHJhbmdlIG9ubHkKKyAgICAgICAgICAgICAgICBzcmNJc0xESCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZhaWxQb3MgPSBqOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmKHVzZVNURDNBU0NJSVJ1bGVzID09IHRydWUpeworICAgICAgICAgICAgLy8gdmVyaWZ5IDNhIGFuZCAzYgorICAgICAgICAgICAgaWYoIHNyY0lzTERIID09IGZhbHNlIC8qIHNvdXJjZSBjb250YWlucyBzb21lIG5vbi1MREggY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KDApID09ICBIWVBIRU4gCisgICAgICAgICAgICAgICAgfHwgcHJvY2Vzc091dC5jaGFyQXQocHJvY2Vzc091dC5sZW5ndGgoKS0xKSA9PSBIWVBIRU4peworCisgICAgICAgICAgICAgICAgLyogcG9wdWxhdGUgdGhlIHBhcnNlRXJyb3Igc3RydWN0ICovCisgICAgICAgICAgICAgICAgaWYoc3JjSXNMREg9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oICJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsUG9zPjApID8gKGZhaWxQb3MtMSkgOiBmYWlsUG9zKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSBIWVBIRU4peworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLHByb2Nlc3NPdXQudG9TdHJpbmcoKSwwKTsKKyAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9MZW4+MCkgPyBwb0xlbi0xIDogcG9MZW4pOworCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKHNyY0lzQVNDSUkpeworICAgICAgICAgICAgZGVzdCA9ICBwcm9jZXNzT3V0OworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8vIHN0ZXAgNSA6IHZlcmlmeSB0aGUgc2VxdWVuY2UgZG9lcyBub3QgYmVnaW4gd2l0aCBBQ0UgcHJlZml4CisgICAgICAgICAgICBpZighc3RhcnRzV2l0aFByZWZpeChwcm9jZXNzT3V0KSl7CisKKyAgICAgICAgICAgICAgICAvL3N0ZXAgNjogZW5jb2RlIHRoZSBzZXF1ZW5jZSB3aXRoIHB1bnljb2RlCisgICAgICAgICAgICAgICAgY2FzZUZsYWdzID0gbmV3IGJvb2xlYW5bcG9MZW5dOworCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHB1bnlvdXQgPSBQdW55Y29kZS5lbmNvZGUocHJvY2Vzc091dCxjYXNlRmxhZ3MpOworCisgICAgICAgICAgICAgICAgLy8gY29udmVydCBhbGwgY29kZXBvaW50cyB0byBsb3dlciBjYXNlIEFTQ0lJCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGxvd2VyT3V0ID0gdG9BU0NJSUxvd2VyKHB1bnlvdXQpOworCisgICAgICAgICAgICAgICAgLy9TdGVwIDc6IHByZXBlbmQgdGhlIEFDRSBwcmVmaXgKKyAgICAgICAgICAgICAgICBkZXN0LmFwcGVuZChBQ0VfUFJFRklYLDAsQUNFX1BSRUZJWF9MRU5HVEgpOworICAgICAgICAgICAgICAgIC8vU3RlcCA2OiBjb3B5IHRoZSBjb250ZW50cyBpbiBiMiBpbnRvIGRlc3QKKyAgICAgICAgICAgICAgICBkZXN0LmFwcGVuZChsb3dlck91dCk7CisgICAgICAgICAgICB9ZWxzZXsKKworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBzdGFydCB3aXRoIHRoZSBBQ0UgUHJlZml4LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5BQ0VfUFJFRklYX0VSUk9SLHByb2Nlc3NPdXQudG9TdHJpbmcoKSwwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihkZXN0Lmxlbmd0aCgpID4gTUFYX0xBQkVMX0xFTkdUSCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgbGFiZWxzIGluIHRoZSBpbnB1dCBhcmUgdG9vIGxvbmcuIExlbmd0aCA+IDY0LiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5MQUJFTF9UT09fTE9OR19FUlJPUixkZXN0LnRvU3RyaW5nKCksMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc3Q7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIElETlRvQVNDSUkgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gY29tcGxldGUgZG9tYWluIG5hbWVzLCBlLmc6ICJ3d3cuZXhhbXBsZS5jb20iLiAKKyAgICAgKiBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoaXMgb3BlcmF0aW9uIGNhbiBmYWlsLiBJZiBpdCBmYWlscywgdGhlbiB0aGUgaW5wdXQgCisgICAgICogZG9tYWluIG5hbWUgY2Fubm90IGJlIHVzZWQgYXMgYW4gSW50ZXJuYXRpb25hbGl6ZWQgRG9tYWluIE5hbWUgYW5kIHRoZSBhcHBsaWNhdGlvbgorICAgICAqIHNob3VsZCBoYXZlIG1ldGhvZHMgZGVmaW5lZCB0byBkZWFsIHdpdGggdGhlIGZhaWx1cmUuCisgICAgICogCisgICAgICogPGI+Tm90ZTo8L2I+IElETkEgUkZDIHNwZWNpZmllcyB0aGF0IGEgY29uZm9ybWFudCBhcHBsaWNhdGlvbiBzaG91bGQgZGl2aWRlIGEgZG9tYWluIG5hbWUKKyAgICAgKiBpbnRvIHNlcGFyYXRlIGxhYmVscywgZGVjaWRlIHdoZXRoZXIgdG8gYXBwbHkgYWxsb3dVbmFzc2lnbmVkIGFuZCB1c2VTVEQzQVNDSUlSdWxlcyBvbiBlYWNoLCAKKyAgICAgKiBhbmQgdGhlbiBjb252ZXJ0LiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG9mZmVyIHRoYXQgbGV2ZWwgb2YgZ3JhbnVsYXJpdHkuIFRoZSBvcHRpb25zIG9uY2UgIAorICAgICAqIHNldCB3aWxsIGFwcGx5IHRvIGFsbCBsYWJlbHMgaW4gdGhlIGRvbWFpbiBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgVUNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9BU0NJSShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9BU0NJSShzcmMuZ2V0VGV4dCgpLCBvcHRpb25zKTsgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9BU0NJSSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiBjb21wbGV0ZSBkb21haW4gbmFtZXMsIGUuZzogInd3dy5leGFtcGxlLmNvbSIuIAorICAgICAqIEl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhpcyBvcGVyYXRpb24gY2FuIGZhaWwuIElmIGl0IGZhaWxzLCB0aGVuIHRoZSBpbnB1dCAKKyAgICAgKiBkb21haW4gbmFtZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBJbnRlcm5hdGlvbmFsaXplZCBEb21haW4gTmFtZSBhbmQgdGhlIGFwcGxpY2F0aW9uCisgICAgICogc2hvdWxkIGhhdmUgbWV0aG9kcyBkZWZpbmVkIHRvIGRlYWwgd2l0aCB0aGUgZmFpbHVyZS4KKyAgICAgKiAKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBhIFN0cmluZ0J1ZmZlciB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvQVNDSUkoU3RyaW5nQnVmZmVyIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRJRE5Ub0FTQ0lJKHNyYy50b1N0cmluZygpLCBvcHRpb25zKTsgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9BU0NJSSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiBjb21wbGV0ZSBkb21haW4gbmFtZXMsIGUuZzogInd3dy5leGFtcGxlLmNvbSIuIAorICAgICAqIEl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhpcyBvcGVyYXRpb24gY2FuIGZhaWwuIElmIGl0IGZhaWxzLCB0aGVuIHRoZSBpbnB1dCAKKyAgICAgKiBkb21haW4gbmFtZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBJbnRlcm5hdGlvbmFsaXplZCBEb21haW4gTmFtZSBhbmQgdGhlIGFwcGxpY2F0aW9uCisgICAgICogc2hvdWxkIGhhdmUgbWV0aG9kcyBkZWZpbmVkIHRvIGRlYWwgd2l0aCB0aGUgZmFpbHVyZS4KKyAgICAgKiAKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvQVNDSUkoU3RyaW5nIHNyYyxpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisKKyAgICAgICAgY2hhcltdIHNyY0FyciA9IHNyYy50b0NoYXJBcnJheSgpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgc2VwSW5kZXg9MDsKKyAgICAgICAgaW50IG9sZFNlcEluZGV4PTA7CisgICAgICAgIGZvcig7Oyl7CisgICAgICAgICAgICBzZXBJbmRleCA9IGdldFNlcGFyYXRvckluZGV4KHNyY0FycixzZXBJbmRleCxzcmNBcnIubGVuZ3RoKTsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IG5ldyBTdHJpbmcoc3JjQXJyLG9sZFNlcEluZGV4LHNlcEluZGV4LW9sZFNlcEluZGV4KTsKKyAgICAgICAgICAgIC8vbWFrZSBzdXJlIHRoaXMgaXMgbm90IGEgcm9vdCBsYWJlbCBzZXBhcmF0b3IuCisgICAgICAgICAgICBpZighKGxhYmVsLmxlbmd0aCgpPT0wICYmIHNlcEluZGV4PT1zcmNBcnIubGVuZ3RoKSl7CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobGFiZWwpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydFRvQVNDSUkoaXRlcixvcHRpb25zKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzZXBJbmRleD09c3JjQXJyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgc2VwSW5kZXggdG8gc2tpcCBwYXN0IHRoZSBzZXBhcmF0b3IKKyAgICAgICAgICAgIHNlcEluZGV4Kys7CisgICAgICAgICAgICBvbGRTZXBJbmRleCA9IHNlcEluZGV4OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcilGVUxMX1NUT1ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBUb1VuaWNvZGUgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gPGI+c2luZ2xlIGxhYmVsczwvYj4gYmVmb3JlIHNlbmRpbmcgaXQgdG8gc29tZXRoaW5nIHRoYXQgZXhwZWN0cworICAgICAqIFVuaWNvZGUgbmFtZXMuIEEgbGFiZWwgaXMgYW4gaW5kaXZpZHVhbCBwYXJ0IG9mIGEgZG9tYWluIG5hbWUuIExhYmVscyBhcmUgdXN1YWxseQorICAgICAqIHNlcGFyYXRlZCBieSBkb3RzOyBmb3IgZS5nLiIgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgMyBsYWJlbHMgCisgICAgICogInd3dyIsImV4YW1wbGUiLCBhbmQgImNvbSIuCisgICAgICogCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9Vbmljb2RlKFN0cmluZyBzcmMsIGludCBvcHRpb25zKQorICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICByZXR1cm4gY29udmVydFRvVW5pY29kZShpdGVyLG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIFRvVW5pY29kZSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiA8Yj5zaW5nbGUgbGFiZWxzPC9iPiBiZWZvcmUgc2VuZGluZyBpdCB0byBzb21ldGhpbmcgdGhhdCBleHBlY3RzCisgICAgICogVW5pY29kZSBuYW1lcy4gQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gTGFiZWxzIGFyZSB1c3VhbGx5CisgICAgICogc2VwYXJhdGVkIGJ5IGRvdHM7IGZvciBlLmcuIiAid3d3LmV4YW1wbGUuY29tIiBpcyBjb21wb3NlZCBvZiAzIGxhYmVscyAKKyAgICAgKiAid3d3IiwiZXhhbXBsZSIsIGFuZCAiY29tIi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgU3RyaW5nQnVmZmVyIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9Vbmljb2RlKFN0cmluZ0J1ZmZlciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICByZXR1cm4gY29udmVydFRvVW5pY29kZShpdGVyLG9wdGlvbnMpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIFRvVW5pY29kZSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiA8Yj5zaW5nbGUgbGFiZWxzPC9iPiBiZWZvcmUgc2VuZGluZyBpdCB0byBzb21ldGhpbmcgdGhhdCBleHBlY3RzCisgICAgICogVW5pY29kZSBuYW1lcy4gQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gTGFiZWxzIGFyZSB1c3VhbGx5CisgICAgICogc2VwYXJhdGVkIGJ5IGRvdHM7IGZvciBlLmcuIiAid3d3LmV4YW1wbGUuY29tIiBpcyBjb21wb3NlZCBvZiAzIGxhYmVscyAKKyAgICAgKiAid3d3IiwiZXhhbXBsZSIsIGFuZCAiY29tIi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgVUNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9Vbmljb2RlKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICAKKyAgICAgICAgYm9vbGVhbltdIGNhc2VGbGFncyA9IG51bGw7CisgICAgICAgIAorICAgICAgICAvLyB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBhc2NpaSBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNBU0NJSSAgPSB0cnVlOworICAgICAgICAvLyBhc3N1bWUgdGhlIHNvdXJjZSBjb250YWlucyBhbGwgTERIIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0xESCA9IHRydWU7IAorICAgICAgICAKKyAgICAgICAgLy9nZXQgdGhlIG9wdGlvbnMKKyAgICAgICAgYm9vbGVhbiB1c2VTVEQzQVNDSUlSdWxlcyA9ICgob3B0aW9ucyAmIFVTRV9TVEQzX1JVTEVTKSAhPSAwKTsKKyAgICAgICAgCisgICAgICAgIGludCBmYWlsUG9zID0gLTE7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgaW50IHNhdmVJbmRleCA9IHNyYy5nZXRJbmRleCgpOworICAgICAgICAvLyBzdGVwIDE6IGZpbmQgb3V0IGlmIGFsbCB0aGUgY29kZXBvaW50cyBpbiBzcmMgYXJlIEFTQ0lJICAKKyAgICAgICAgd2hpbGUoKGNoPXNyYy5uZXh0KCkpIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoY2g+MHg3Ril7CisgICAgICAgICAgICAgICAgc3JjSXNBU0NJSSA9IGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYoKHNyY0lzTERIID0gaXNMREhDaGFyKGNoKSk9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICBmYWlsUG9zID0gc3JjLmdldEluZGV4KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHByb2Nlc3NPdXQ7CisgICAgICAgIAorICAgICAgICBpZihzcmNJc0FTQ0lJID09IGZhbHNlKXsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gc3RlcCAyOiBwcm9jZXNzIHRoZSBzdHJpbmcKKyAgICAgICAgICAgICAgICBzcmMuc2V0SW5kZXgoc2F2ZUluZGV4KTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzT3V0ID0gc2luZ2xldG9uLm5hbWVQcmVwLnByZXBhcmUoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgfSBjYXRjaCAoU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoc3JjLmdldFRleHQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAvL2p1c3QgcG9pbnQgdG8gc291cmNlCisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMuZ2V0VGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOgorICAgICAgICAvLyBUaGUgUkZDIHN0YXRlcyB0aGF0IAorICAgICAgICAvLyA8cXVvdGU+CisgICAgICAgIC8vIFRvVW5pY29kZSBuZXZlciBmYWlscy4gSWYgYW55IHN0ZXAgZmFpbHMsIHRoZW4gdGhlIG9yaWdpbmFsIGlucHV0CisgICAgICAgIC8vIGlzIHJldHVybmVkIGltbWVkaWF0ZWx5IGluIHRoYXQgc3RlcC4KKyAgICAgICAgLy8gPC9xdW90ZT4KKyAgICAgICAgCisgICAgICAgIC8vc3RlcCAzOiB2ZXJpZnkgQUNFIFByZWZpeAorICAgICAgICBpZihzdGFydHNXaXRoUHJlZml4KHByb2Nlc3NPdXQpKXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBkZWNvZGVPdXQgPSBudWxsOworCisgICAgICAgICAgICAvL3N0ZXAgNDogUmVtb3ZlIHRoZSBBQ0UgUHJlZml4CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IHByb2Nlc3NPdXQuc3Vic3RyaW5nKEFDRV9QUkVGSVhfTEVOR1RILHByb2Nlc3NPdXQubGVuZ3RoKCkpOworCisgICAgICAgICAgICAvL3N0ZXAgNTogRGVjb2RlIHVzaW5nIHB1bnljb2RlCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGRlY29kZU91dCA9IFB1bnljb2RlLmRlY29kZShuZXcgU3RyaW5nQnVmZmVyKHRlbXApLGNhc2VGbGFncyk7CisgICAgICAgICAgICB9IGNhdGNoIChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGRlY29kZU91dCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLy9zdGVwIDY6QXBwbHkgdG9BU0NJSQorICAgICAgICAgICAgaWYgKGRlY29kZU91dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQVNDSUlPdXQgPSBjb252ZXJ0VG9BU0NJSShkZWNvZGVPdXQsIG9wdGlvbnMpOworICAgIAorICAgICAgICAgICAgICAgIC8vc3RlcCA3OiB2ZXJpZnkKKyAgICAgICAgICAgICAgICBpZihjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkocHJvY2Vzc091dCwgdG9BU0NJSU91dCkgIT0wKXsKKy8vICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgdmVyaWZpY2F0aW9uIHN0ZXAgcHJlc2NyaWJlZCBieSB0aGUgUkZDIDM0OTEgZmFpbGVkIiwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlZFUklGSUNBVElPTl9FUlJPUik7IAorICAgICAgICAgICAgICAgICAgICBkZWNvZGVPdXQgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9zdGVwIDg6IHJldHVybiBvdXRwdXQgb2Ygc3RlcCA1CisgICAgICAgICAgICAgaWYgKGRlY29kZU91dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGVPdXQ7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAKKy8vICAgICAgICB9ZWxzZXsKKy8vICAgICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgU1REMyBBU0NJSSBydWxlcyBhcmUgc2F0aXNmaWVkCisvLyAgICAgICAgICAgIGlmKHVzZVNURDNBU0NJSVJ1bGVzID09IHRydWUpeworLy8gICAgICAgICAgICAgICAgaWYoIHNyY0lzTERIID09IGZhbHNlIC8qIHNvdXJjZSBjb250YWlucyBzb21lIG5vbi1MREggY2hhcmFjdGVycyAqLworLy8gICAgICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KDApID09ICBIWVBIRU4gCisvLyAgICAgICAgICAgICAgICAgICAgfHwgcHJvY2Vzc091dC5jaGFyQXQocHJvY2Vzc091dC5sZW5ndGgoKS0xKSA9PSBIWVBIRU4peworLy8gICAgCisvLyAgICAgICAgICAgICAgICAgICAgaWYoc3JjSXNMREg9PWZhbHNlKXsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIFNURCAzIEFTQ0lJIHJ1bGVzIiwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsUG9zPjApID8gKGZhaWxQb3MtMSkgOiBmYWlsUG9zKTsKKy8vICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSBIWVBIRU4peworLy8gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0LnRvU3RyaW5nKCksMCk7CisvLyAgICAgICAgIAorLy8gICAgICAgICAgICAgICAgICAgIH1lbHNleworLy8gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0LnRvU3RyaW5nKCksCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0Lmxlbmd0aCgpKTsKKy8vICAgIAorLy8gICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAvLyBqdXN0IHJldHVybiB0aGUgc291cmNlCisvLyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKHNyYy5nZXRUZXh0KCkpOworLy8gICAgICAgIH0gIAorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoc3JjLmdldFRleHQoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICoKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBVQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub1VuaWNvZGUoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9Vbmljb2RlKHNyYy5nZXRUZXh0KCksIG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIElETlRvVW5pY29kZSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiBjb21wbGV0ZSBkb21haW4gbmFtZXMsIGUuZzogInd3dy5leGFtcGxlLmNvbSIuIAorICAgICAqCisgICAgICogPGI+Tm90ZTo8L2I+IElETkEgUkZDIHNwZWNpZmllcyB0aGF0IGEgY29uZm9ybWFudCBhcHBsaWNhdGlvbiBzaG91bGQgZGl2aWRlIGEgZG9tYWluIG5hbWUKKyAgICAgKiBpbnRvIHNlcGFyYXRlIGxhYmVscywgZGVjaWRlIHdoZXRoZXIgdG8gYXBwbHkgYWxsb3dVbmFzc2lnbmVkIGFuZCB1c2VTVEQzQVNDSUlSdWxlcyBvbiBlYWNoLCAKKyAgICAgKiBhbmQgdGhlbiBjb252ZXJ0LiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG9mZmVyIHRoYXQgbGV2ZWwgb2YgZ3JhbnVsYXJpdHkuIFRoZSBvcHRpb25zIG9uY2UgIAorICAgICAqIHNldCB3aWxsIGFwcGx5IHRvIGFsbCBsYWJlbHMgaW4gdGhlIGRvbWFpbiBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgU3RyaW5nQnVmZmVyIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9Vbmljb2RlKFN0cmluZ0J1ZmZlciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gY29udmVydElETlRvVW5pY29kZShzcmMudG9TdHJpbmcoKSwgb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICoKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvVW5pY29kZShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgIAorICAgICAgICBjaGFyW10gc3JjQXJyID0gc3JjLnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBzZXBJbmRleD0wOworICAgICAgICBpbnQgb2xkU2VwSW5kZXg9MDsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHNlcEluZGV4ID0gZ2V0U2VwYXJhdG9ySW5kZXgoc3JjQXJyLHNlcEluZGV4LHNyY0Fyci5sZW5ndGgpOworICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gbmV3IFN0cmluZyhzcmNBcnIsb2xkU2VwSW5kZXgsc2VwSW5kZXgtb2xkU2VwSW5kZXgpOworICAgICAgICAgICAgaWYobGFiZWwubGVuZ3RoKCk9PTAgJiYgc2VwSW5kZXghPXNyY0Fyci5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJGb3VuZCB6ZXJvIGxlbmd0aCBsYWJsZSBhZnRlciBOYW1lUHJlcC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5aRVJPX0xFTkdUSF9MQUJFTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShsYWJlbCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKSk7CisgICAgICAgICAgICBpZihzZXBJbmRleD09c3JjQXJyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHNlcEluZGV4IHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yCisgICAgICAgICAgICBzZXBJbmRleCsrOworICAgICAgICAgICAgb2xkU2VwSW5kZXggPXNlcEluZGV4OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcilGVUxMX1NUT1ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIElETiBzdHJpbmdzIGZvciBlcXVpdmFsZW5jZS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHNwbGl0cyB0aGUgZG9tYWluIG5hbWVzIGludG8gbGFiZWxzIGFuZCBjb21wYXJlcyB0aGVtLgorICAgICAqIEFjY29yZGluZyB0byBJRE4gUkZDLCB3aGVuZXZlciB0d28gbGFiZWxzIGFyZSBjb21wYXJlZCwgdGhleSBhcmUgCisgICAgICogY29uc2lkZXJlZCBlcXVhbCBpZiBhbmQgb25seSBpZiB0aGVpciBBU0NJSSBmb3JtcyAob2J0YWluZWQgYnkgCisgICAgICogYXBwbHlpbmcgdG9BU0NJSSkgbWF0Y2ggdXNpbmcgYW4gY2FzZS1pbnNlbnNpdGl2ZSBBU0NJSSBjb21wYXJpc29uLgorICAgICAqIFR3byBkb21haW4gbmFtZXMgYXJlIGNvbnNpZGVyZWQgYSBtYXRjaCBpZiBhbmQgb25seSBpZiBhbGwgbGFiZWxzIAorICAgICAqIG1hdGNoIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBsYWJlbCBzZXBhcmF0b3JzIG1hdGNoLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzMSAgICAgICAgRmlyc3QgSUROIHN0cmluZyBhcyBTdHJpbmdCdWZmZXIKKyAgICAgKiBAcGFyYW0gczIgICAgICAgIFNlY29uZCBJRE4gc3RyaW5nIGFzIFN0cmluZ0J1ZmZlcgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiAwIGlmIHRoZSBzdHJpbmdzIGFyZSBlcXVhbCwgPiAwIGlmIHMxID4gczIgYW5kIDwgMCBpZiBzMSA8IHMyCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIC8vICBUT0RPOiBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nQnVmZmVyIHMxLCBTdHJpbmdCdWZmZXIgczIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpZihzMT09bnVsbCB8fCBzMiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9uZSBvZiB0aGUgc291cmNlIGJ1ZmZlcnMgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMU91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMxLnRvU3RyaW5nKCksb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMyLnRvU3RyaW5nKCksIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKHMxT3V0LHMyT3V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gSUROIHN0cmluZ3MgZm9yIGVxdWl2YWxlbmNlLgorICAgICAqIFRoaXMgZnVuY3Rpb24gc3BsaXRzIHRoZSBkb21haW4gbmFtZXMgaW50byBsYWJlbHMgYW5kIGNvbXBhcmVzIHRoZW0uCisgICAgICogQWNjb3JkaW5nIHRvIElETiBSRkMsIHdoZW5ldmVyIHR3byBsYWJlbHMgYXJlIGNvbXBhcmVkLCB0aGV5IGFyZSAKKyAgICAgKiBjb25zaWRlcmVkIGVxdWFsIGlmIGFuZCBvbmx5IGlmIHRoZWlyIEFTQ0lJIGZvcm1zIChvYnRhaW5lZCBieSAKKyAgICAgKiBhcHBseWluZyB0b0FTQ0lJKSBtYXRjaCB1c2luZyBhbiBjYXNlLWluc2Vuc2l0aXZlIEFTQ0lJIGNvbXBhcmlzb24uCisgICAgICogVHdvIGRvbWFpbiBuYW1lcyBhcmUgY29uc2lkZXJlZCBhIG1hdGNoIGlmIGFuZCBvbmx5IGlmIGFsbCBsYWJlbHMgCisgICAgICogbWF0Y2ggcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGxhYmVsIHNlcGFyYXRvcnMgbWF0Y2guCisgICAgICogCisgICAgICogQHBhcmFtIHMxICAgICAgICBGaXJzdCBJRE4gc3RyaW5nIAorICAgICAqIEBwYXJhbSBzMiAgICAgICAgU2Vjb25kIElETiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gMCBpZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwsID4gMCBpZiBzMSA+IHMyIGFuZCA8IDAgaWYgczEgPCBzMgorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAvLyAgVE9ETzogb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKFN0cmluZyBzMSwgU3RyaW5nIHMyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaWYoczE9PW51bGwgfHwgczIgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbmUgb2YgdGhlIHNvdXJjZSBidWZmZXJzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgczFPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMSwgb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMyLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIElETiBzdHJpbmdzIGZvciBlcXVpdmFsZW5jZS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHNwbGl0cyB0aGUgZG9tYWluIG5hbWVzIGludG8gbGFiZWxzIGFuZCBjb21wYXJlcyB0aGVtLgorICAgICAqIEFjY29yZGluZyB0byBJRE4gUkZDLCB3aGVuZXZlciB0d28gbGFiZWxzIGFyZSBjb21wYXJlZCwgdGhleSBhcmUgCisgICAgICogY29uc2lkZXJlZCBlcXVhbCBpZiBhbmQgb25seSBpZiB0aGVpciBBU0NJSSBmb3JtcyAob2J0YWluZWQgYnkgCisgICAgICogYXBwbHlpbmcgdG9BU0NJSSkgbWF0Y2ggdXNpbmcgYW4gY2FzZS1pbnNlbnNpdGl2ZSBBU0NJSSBjb21wYXJpc29uLgorICAgICAqIFR3byBkb21haW4gbmFtZXMgYXJlIGNvbnNpZGVyZWQgYSBtYXRjaCBpZiBhbmQgb25seSBpZiBhbGwgbGFiZWxzIAorICAgICAqIG1hdGNoIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBsYWJlbCBzZXBhcmF0b3JzIG1hdGNoLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzMSAgICAgICAgRmlyc3QgSUROIHN0cmluZyBhcyBVQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gczIgICAgICAgIFNlY29uZCBJRE4gc3RyaW5nIGFzIFVDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIDAgaWYgdGhlIHN0cmluZ3MgYXJlIGVxdWFsLCA+IDAgaWYgaTEgPiBpMiBhbmQgPCAwIGlmIGkxIDwgaTIKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLy8gIFRPRE86IG9wdGltaXplCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShVQ2hhcmFjdGVySXRlcmF0b3IgczEsIFVDaGFyYWN0ZXJJdGVyYXRvciBzMiwgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIGlmKHMxPT1udWxsIHx8IHMyID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT25lIG9mIHRoZSBzb3VyY2UgYnVmZmVycyBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHMxT3V0ID0gY29udmVydElETlRvQVNDSUkoczEuZ2V0VGV4dCgpLCBvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoczIuZ2V0VGV4dCgpLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0xvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTcxM2E3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0xvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSB0b0xvd2VyKCkKKyAqIGNhc2UgbWFwcGluZy4KKyAqLworY2xhc3MgTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvcnsKKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgYWNjZXNzaWJsZSBJRC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJBbnktTG93ZXIiOworICAgIAorICAgIC8vIFRPRE86IEFkZCB2YXJpYW50cyBmb3IgdHIsIGF6LCBsdCwgZGVmYXVsdCA9IGRlZmF1bHQgbG9jYWxlCisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIkxvd2VyIiwgIlVwcGVyIiwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBVTG9jYWxlIGxvY2FsZTsKKworICAgIHByaXZhdGUgVUNhc2VQcm9wcyBjc3A7CisgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvciBpdGVyOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHJlc3VsdDsKKyAgICBwcml2YXRlIGludFtdIGxvY0NhY2hlOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworCisgICAgcHVibGljIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yKFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHN1cGVyKF9JRCwgbnVsbCk7CisgICAgICAgIGxvY2FsZSA9IGxvYzsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNzcD1VQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjc3A9bnVsbDsKKyAgICAgICAgfQorICAgICAgICBpdGVyPW5ldyBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcigpOworICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIGxvY0NhY2hlID0gbmV3IGludFsxXTsKKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgaWYoY3NwPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZihvZmZzZXRzLnN0YXJ0ID49IG9mZnNldHMubGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAKKworICAgICAgICBpdGVyLnNldFRleHQodGV4dCk7CisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIGludCBjLCBkZWx0YTsKKworICAgICAgICAvLyBXYWxrIHRocm91Z2ggb3JpZ2luYWwgc3RyaW5nCisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgY2FzZSBjaGFuZ2UsIG1vZGlmeSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHJlcGxhY2VhYmxlCisKKyAgICAgICAgaXRlci5zZXRJbmRleChvZmZzZXRzLnN0YXJ0KTsKKyAgICAgICAgaXRlci5zZXRMaW1pdChvZmZzZXRzLmxpbWl0KTsKKyAgICAgICAgaXRlci5zZXRDb250ZXh0TGltaXRzKG9mZnNldHMuY29udGV4dFN0YXJ0LCBvZmZzZXRzLmNvbnRleHRMaW1pdCk7CisgICAgICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCkgeworICAgICAgICAgICAgYz1jc3AudG9GdWxsTG93ZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgaWYoaXRlci5kaWRSZWFjaExpbWl0KCkgJiYgaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb24gdHJpZWQgdG8gbG9vayBiZXlvbmQgdGhlIGNvbnRleHQgbGltaXQKKyAgICAgICAgICAgICAgICAvLyB3YWl0IGZvciBtb3JlIGlucHV0CisgICAgICAgICAgICAgICAgb2Zmc2V0cy5zdGFydD1pdGVyLmdldENhc2VNYXBDUFN0YXJ0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCAqLworICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgLyogYyBtYXBwZWQgdG8gaXRzZWxmLCBubyBjaGFuZ2UgKi8KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgLyogcmVwbGFjZSBieSB0aGUgbWFwcGluZyBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICBkZWx0YT1pdGVyLnJlcGxhY2UocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHJlcGxhY2UgYnkgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShVVEYxNi52YWx1ZU9mKGMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoZGVsdGEhPTApIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lYXN1cmVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lYXN1cmVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2I3NTNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVhc3VyZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDIwLCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEEgZm9ybWF0dGVyIGZvciBNZWFzdXJlIG9iamVjdHMuICBUaGlzIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisgKgorICogPHA+VG8gZm9ybWF0IG9yIHBhcnNlIGEgTWVhc3VyZSBvYmplY3QsIGZpcnN0IGNyZWF0ZSBhIGZvcm1hdHRlcgorICogb2JqZWN0IHVzaW5nIGEgTWVhc3VyZUZvcm1hdCBmYWN0b3J5IG1ldGhvZC4gIFRoZW4gdXNlIHRoYXQKKyAqIG9iamVjdCdzIGZvcm1hdCBhbmQgcGFyc2UgbWV0aG9kcy4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuVUZvcm1hdAorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNZWFzdXJlRm9ybWF0IGV4dGVuZHMgVUZvcm1hdCB7CisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNzE4MjAyMTQwMTcwMTc3ODI0MEw7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTWVhc3VyZUZvcm1hdCgpIHt9OworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGZvcm1hdHRlciBmb3IgQ3VycmVuY3lBbW91bnQgb2JqZWN0cyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSBkZXNpcmVkIGxvY2FsZQorICAgICAqIEByZXR1cm4gYSBmb3JtYXR0ZXIgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBNZWFzdXJlRm9ybWF0IGdldEN1cnJlbmN5Rm9ybWF0KFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3lGb3JtYXQobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBmb3JtYXR0ZXIgZm9yIEN1cnJlbmN5QW1vdW50IG9iamVjdHMgaW4gdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGZvcm1hdHRlciBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE1lYXN1cmVGb3JtYXQgZ2V0Q3VycmVuY3lGb3JtYXQoKSB7CisgICAgICAgIHJldHVybiBnZXRDdXJyZW5jeUZvcm1hdChVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVzc2FnZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVzc2FnZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjODI3YTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9NZXNzYWdlRm9ybWF0LmphdmEKQEAgLTAsMCArMSwxNzE2IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBBcHJpbCA2LCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkludmFsaWRPYmplY3RFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IHByb3ZpZGVzIGEgbWVhbnMgdG8gcHJvZHVjZSBjb25jYXRlbmF0ZWQKKyAqIG1lc3NhZ2VzIGluIGxhbmd1YWdlLW5ldXRyYWwgd2F5LiBVc2UgdGhpcyB0byBjb25zdHJ1Y3QgbWVzc2FnZXMKKyAqIGRpc3BsYXllZCBmb3IgZW5kIHVzZXJzLgorICoKKyAqIDxwPgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gdGFrZXMgYSBzZXQgb2Ygb2JqZWN0cywgZm9ybWF0cyB0aGVtLCB0aGVuCisgKiBpbnNlcnRzIHRoZSBmb3JtYXR0ZWQgc3RyaW5ncyBpbnRvIHRoZSBwYXR0ZXJuIGF0IHRoZSBhcHByb3ByaWF0ZSBwbGFjZXMuCisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+CisgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBkaWZmZXJzIGZyb20gdGhlIG90aGVyIDxjb2RlPkZvcm1hdDwvY29kZT4KKyAqIGNsYXNzZXMgaW4gdGhhdCB5b3UgY3JlYXRlIGEgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gb2JqZWN0IHdpdGggb25lCisgKiBvZiBpdHMgY29uc3RydWN0b3JzIChub3Qgd2l0aCBhIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiBzdHlsZSBmYWN0b3J5CisgKiBtZXRob2QpLiBUaGUgZmFjdG9yeSBtZXRob2RzIGFyZW4ndCBuZWNlc3NhcnkgYmVjYXVzZSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPgorICogaXRzZWxmIGRvZXNuJ3QgaW1wbGVtZW50IGxvY2FsZSBzcGVjaWZpYyBiZWhhdmlvci4gQW55IGxvY2FsZSBzcGVjaWZpYworICogYmVoYXZpb3IgaXMgZGVmaW5lZCBieSB0aGUgcGF0dGVybiB0aGF0IHlvdSBwcm92aWRlIGFzIHdlbGwgYXMgdGhlCisgKiBzdWJmb3JtYXRzIHVzZWQgZm9yIGluc2VydGVkIGFyZ3VtZW50cy4KKyAqCisgKiA8aDQ+PGEgbmFtZT0icGF0dGVybnMiPlBhdHRlcm5zIGFuZCBUaGVpciBJbnRlcnByZXRhdGlvbjwvYT48L2g0PgorICoKKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IHVzZXMgcGF0dGVybnMgb2YgdGhlIGZvbGxvd2luZyBmb3JtOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIDxpPk1lc3NhZ2VGb3JtYXRQYXR0ZXJuOjwvaT4KKyAqICAgICAgICAgPGk+U3RyaW5nPC9pPgorICogICAgICAgICA8aT5NZXNzYWdlRm9ybWF0UGF0dGVybjwvaT4gPGk+Rm9ybWF0RWxlbWVudDwvaT4gPGk+U3RyaW5nPC9pPgorICoKKyAqIDxpPkZvcm1hdEVsZW1lbnQ6PC9pPgorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+IH0KKyAqICAgICAgICAgeyA8aT5Bcmd1bWVudEluZGV4PC9pPiAsIDxpPkZvcm1hdFR5cGU8L2k+IH0KKyAqICAgICAgICAgeyA8aT5Bcmd1bWVudEluZGV4PC9pPiAsIDxpPkZvcm1hdFR5cGU8L2k+ICwgPGk+Rm9ybWF0U3R5bGU8L2k+IH0KKyAqCisgKiA8aT5Gb3JtYXRUeXBlOiBvbmUgb2YgPC9pPgorICogICAgICAgICBudW1iZXIgZGF0ZSB0aW1lIGNob2ljZQorICoKKyAqIDxpPkZvcm1hdFN0eWxlOjwvaT4KKyAqICAgICAgICAgc2hvcnQKKyAqICAgICAgICAgbWVkaXVtCisgKiAgICAgICAgIGxvbmcKKyAqICAgICAgICAgZnVsbAorICogICAgICAgICBpbnRlZ2VyCisgKiAgICAgICAgIGN1cnJlbmN5CisgKiAgICAgICAgIHBlcmNlbnQKKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4KKyAqCisgKiA8aT5TdHJpbmc6PC9pPgorICogICAgICAgICA8aT5TdHJpbmdQYXJ0PHN1Yj5vcHQ8L3N1Yj48L2k+CisgKiAgICAgICAgIDxpPlN0cmluZzwvaT4gPGk+U3RyaW5nUGFydDwvaT4KKyAqCisgKiA8aT5TdHJpbmdQYXJ0OjwvaT4KKyAqICAgICAgICAgJycKKyAqICAgICAgICAgJyA8aT5RdW90ZWRTdHJpbmc8L2k+ICcKKyAqICAgICAgICAgPGk+VW5xdW90ZWRTdHJpbmc8L2k+CisgKgorICogPGk+U3ViZm9ybWF0UGF0dGVybjo8L2k+CisgKiAgICAgICAgIDxpPlN1YmZvcm1hdFBhdHRlcm5QYXJ0PHN1Yj5vcHQ8L3N1Yj48L2k+CisgKiAgICAgICAgIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+IDxpPlN1YmZvcm1hdFBhdHRlcm5QYXJ0PC9pPgorICoKKyAqIDxpPlN1YkZvcm1hdFBhdHRlcm5QYXJ0OjwvaT4KKyAqICAgICAgICAgJyA8aT5RdW90ZWRQYXR0ZXJuPC9pPiAnCisgKiAgICAgICAgIDxpPlVucXVvdGVkUGF0dGVybjwvaT4KKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIFdpdGhpbiBhIDxpPlN0cmluZzwvaT4sIDxjb2RlPiInJyI8L2NvZGU+IHJlcHJlc2VudHMgYSBzaW5nbGUKKyAqIHF1b3RlLiBBIDxpPlF1b3RlZFN0cmluZzwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzOyB0aGUgc3Vycm91bmRpbmcgc2luZ2xlIHF1b3RlcyBhcmUgcmVtb3ZlZC4KKyAqIEFuIDxpPlVucXVvdGVkU3RyaW5nPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXMgYW5kIGxlZnQgY3VybHkgYnJhY2tldHMuIFRodXMsIGEgc3RyaW5nIHRoYXQKKyAqIHNob3VsZCByZXN1bHQgaW4gdGhlIGZvcm1hdHRlZCBtZXNzYWdlICInezB9JyIgY2FuIGJlIHdyaXR0ZW4gYXMKKyAqIDxjb2RlPiInJyd7JzB9JyciPC9jb2RlPiBvciA8Y29kZT4iJycnezB9JycnIjwvY29kZT4uCisgKiA8cD4KKyAqIFdpdGhpbiBhIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+LCBkaWZmZXJlbnQgcnVsZXMgYXBwbHkuCisgKiBBIDxpPlF1b3RlZFBhdHRlcm48L2k+IGNhbiBjb250YWluIGFyYml0cmFyeSBjaGFyYWN0ZXJzCisgKiBleGNlcHQgc2luZ2xlIHF1b3RlczsgYnV0IHRoZSBzdXJyb3VuZGluZyBzaW5nbGUgcXVvdGVzIGFyZQorICogPHN0cm9uZz5ub3Q8L3N0cm9uZz4gcmVtb3ZlZCwgc28gdGhleSBtYXkgYmUgaW50ZXJwcmV0ZWQgYnkgdGhlCisgKiBzdWJmb3JtYXQuIEZvciBleGFtcGxlLCA8Y29kZT4iezEsbnVtYmVyLCQnIycsIyN9IjwvY29kZT4gd2lsbAorICogcHJvZHVjZSBhIG51bWJlciBmb3JtYXQgd2l0aCB0aGUgcG91bmQtc2lnbiBxdW90ZWQsIHdpdGggYSByZXN1bHQKKyAqIHN1Y2ggYXM6ICIkIzMxLDQ1Ii4KKyAqIEFuIDxpPlVucXVvdGVkUGF0dGVybjwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzLCBidXQgY3VybHkgYnJhY2VzIHdpdGhpbiBpdCBtdXN0IGJlIGJhbGFuY2VkLgorICogRm9yIGV4YW1wbGUsIDxjb2RlPiJhYiB7MH0gZGUiPC9jb2RlPiBhbmQgPGNvZGU+ImFiICd9JyBkZSI8L2NvZGU+CisgKiBhcmUgdmFsaWQgc3ViZm9ybWF0IHBhdHRlcm5zLCBidXQgPGNvZGU+ImFiIHswJ30nIGRlIjwvY29kZT4gYW5kCisgKiA8Y29kZT4iYWIgfSBkZSI8L2NvZGU+IGFyZSBub3QuCisgKiA8cD4KKyAqIDxkbD48ZHQ+PGI+V2FybmluZzo8L2I+PGRkPlRoZSBydWxlcyBmb3IgdXNpbmcgcXVvdGVzIHdpdGhpbiBtZXNzYWdlCisgKiBmb3JtYXQgcGF0dGVybnMgdW5mb3J0dW5hdGVseSBoYXZlIHNob3duIHRvIGJlIHNvbWV3aGF0IGNvbmZ1c2luZy4KKyAqIEluIHBhcnRpY3VsYXIsIGl0IGlzbid0IGFsd2F5cyBvYnZpb3VzIHRvIGxvY2FsaXplcnMgd2hldGhlciBzaW5nbGUKKyAqIHF1b3RlcyBuZWVkIHRvIGJlIGRvdWJsZWQgb3Igbm90LiBNYWtlIHN1cmUgdG8gaW5mb3JtIGxvY2FsaXplcnMgYWJvdXQKKyAqIHRoZSBydWxlcywgYW5kIHRlbGwgdGhlbSAoZm9yIGV4YW1wbGUsIGJ5IHVzaW5nIGNvbW1lbnRzIGluIHJlc291cmNlCisgKiBidW5kbGUgc291cmNlIGZpbGVzKSB3aGljaCBzdHJpbmdzIHdpbGwgYmUgcHJvY2Vzc2VkIGJ5IE1lc3NhZ2VGb3JtYXQuCisgKiBOb3RlIHRoYXQgbG9jYWxpemVycyBtYXkgbmVlZCB0byB1c2Ugc2luZ2xlIHF1b3RlcyBpbiB0cmFuc2xhdGVkCisgKiBzdHJpbmdzIHdoZXJlIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIGRvZXNuJ3QgaGF2ZSB0aGVtLgorICogPGJyPk5vdGUgYWxzbyB0aGF0IHRoZSBzaW1wbGVzdCB3YXkgdG8gYXZvaWQgdGhlIHByb2JsZW0gaXMgdG8KKyAqIHVzZSB0aGUgcmVhbCBhcG9zdHJvcGhlIChzaW5nbGUgcXVvdGUpIGNoYXJhY3RlciBcdTIwMTkgKCcpIGZvcgorICogaHVtYW4tcmVhZGFibGUgdGV4dCwgYW5kIHRvIHVzZSB0aGUgQVNDSUkgYXBvc3Ryb3BoZSAoXHUwMDI3ICcgKQorICogb25seSBpbiBwcm9ncmFtIHN5bnRheCwgbGlrZSBxdW90aW5nIGluIE1lc3NhZ2VGb3JtYXQuCisgKiBTZWUgdGhlIGFubm90YXRpb25zIGZvciBVKzAwMjcgQXBvc3Ryb3BoZSBpbiBUaGUgVW5pY29kZSBTdGFuZGFyZC48L3A+CisgKiA8L2RsPgorICogPHA+CisgKiBUaGUgPGk+QXJndW1lbnRJbmRleDwvaT4gdmFsdWUgaXMgYSBub24tbmVnYXRpdmUgaW50ZWdlciB3cml0dGVuCisgKiB1c2luZyB0aGUgZGlnaXRzICcwJyB0aHJvdWdoICc5JywgYW5kIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byB0aGUKKyAqIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMKKyAqIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQgYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICogPHA+CisgKiBUaGUgPGk+Rm9ybWF0VHlwZTwvaT4gYW5kIDxpPkZvcm1hdFN0eWxlPC9pPiB2YWx1ZXMgYXJlIHVzZWQgdG8gY3JlYXRlCisgKiBhIDxjb2RlPkZvcm1hdDwvY29kZT4gaW5zdGFuY2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudC4gVGhlIGZvbGxvd2luZworICogdGFibGUgc2hvd3MgaG93IHRoZSB2YWx1ZXMgbWFwIHRvIEZvcm1hdCBpbnN0YW5jZXMuIENvbWJpbmF0aW9ucyBub3QKKyAqIHNob3duIGluIHRoZSB0YWJsZSBhcmUgaWxsZWdhbC4gQSA8aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPiBtdXN0CisgKiBiZSBhIHZhbGlkIHBhdHRlcm4gc3RyaW5nIGZvciB0aGUgRm9ybWF0IHN1YmNsYXNzIHVzZWQuCisgKiA8cD4KKyAqIDx0YWJsZSBib3JkZXI9MT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0aD5Gb3JtYXQgVHlwZQorICogICAgICAgPHRoPkZvcm1hdCBTdHlsZQorICogICAgICAgPHRoPlN1YmZvcm1hdCBDcmVhdGVkCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgY29sc3Bhbj0yPjxpPihub25lKTwvaT4KKyAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkIHJvd3NwYW49NT48Y29kZT5udW1iZXI8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+aW50ZWdlcjwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5jdXJyZW5jeTwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+cGVyY2VudDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBEZWNpbWFsRm9ybWF0KHN1YmZvcm1hdFBhdHRlcm4sIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhnZXRMb2NhbGUoKSkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkIHJvd3NwYW49Nj48Y29kZT5kYXRlPC9jb2RlPgorICogICAgICAgPHRkPjxpPihub25lKTwvaT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5zaG9ydDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bWVkaXVtPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmxvbmc8L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+ZnVsbDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBTaW1wbGVEYXRlRm9ybWF0KHN1YmZvcm1hdFBhdHRlcm4sIGdldExvY2FsZSgpKQorICogICAgPHRyPgorICogICAgICAgPHRkIHJvd3NwYW49Nj48Y29kZT50aW1lPC9jb2RlPgorICogICAgICAgPHRkPjxpPihub25lKTwvaT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5zaG9ydDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bWVkaXVtPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmxvbmc8L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+ZnVsbDwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBTaW1wbGVEYXRlRm9ybWF0KHN1YmZvcm1hdFBhdHRlcm4sIGdldExvY2FsZSgpKQorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmNob2ljZTwvY29kZT4KKyAqICAgICAgIDx0ZD48aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICogICAgICAgPHRkPjxjb2RlPm5ldyBDaG9pY2VGb3JtYXQoc3ViZm9ybWF0UGF0dGVybik8L2NvZGU+CisgKiA8L3RhYmxlPgorICogPHA+CisgKgorICogPGg0PlVzYWdlIEluZm9ybWF0aW9uPC9oND4KKyAqCisgKiA8cD4KKyAqIEhlcmUgYXJlIHNvbWUgZXhhbXBsZXMgb2YgdXNhZ2U6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBPYmplY3RbXSBhcmd1bWVudHMgPSB7CisgKiAgICAgbmV3IEludGVnZXIoNyksCisgKiAgICAgbmV3IERhdGUoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpLAorICogICAgICJhIGRpc3R1cmJhbmNlIGluIHRoZSBGb3JjZSIKKyAqIH07CisgKgorICogU3RyaW5nIHJlc3VsdCA9IE1lc3NhZ2VGb3JtYXQuZm9ybWF0KAorICogICAgICJBdCB7MSx0aW1lfSBvbiB7MSxkYXRlfSwgdGhlcmUgd2FzIHsyfSBvbiBwbGFuZXQgezAsbnVtYmVyLGludGVnZXJ9LiIsCisgKiAgICAgYXJndW1lbnRzKTsKKyAqCisgKiA8ZW0+b3V0cHV0PC9lbT46IEF0IDEyOjMwIFBNIG9uIEp1bCAzLCAyMDUzLCB0aGVyZSB3YXMgYSBkaXN0dXJiYW5jZQorICogICAgICAgICAgIGluIHRoZSBGb3JjZSBvbiBwbGFuZXQgNy4KKyAqCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFR5cGljYWxseSwgdGhlIG1lc3NhZ2UgZm9ybWF0IHdpbGwgY29tZSBmcm9tIHJlc291cmNlcywgYW5kIHRoZQorICogYXJndW1lbnRzIHdpbGwgYmUgZHluYW1pY2FsbHkgc2V0IGF0IHJ1bnRpbWUuCisgKgorICogPHA+CisgKiBFeGFtcGxlIDI6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBPYmplY3RbXSB0ZXN0QXJncyA9IHtuZXcgTG9uZygzKSwgIk15RGlzayJ9OworICoKKyAqIE1lc3NhZ2VGb3JtYXQgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KAorICogICAgICJUaGUgZGlzayBcInsxfVwiIGNvbnRhaW5zIHswfSBmaWxlKHMpLiIpOworICoKKyAqIFN5c3RlbS5vdXQucHJpbnRsbihmb3JtLmZvcm1hdCh0ZXN0QXJncykpOworICoKKyAqIC8vIG91dHB1dCwgd2l0aCBkaWZmZXJlbnQgdGVzdEFyZ3MKKyAqIDxlbT5vdXRwdXQ8L2VtPjogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgMCBmaWxlKHMpLgorICogPGVtPm91dHB1dDwvZW0+OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAxIGZpbGUocykuCisgKiA8ZW0+b3V0cHV0PC9lbT46IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEsMjczIGZpbGUocykuCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIEZvciBtb3JlIHNvcGhpc3RpY2F0ZWQgcGF0dGVybnMsIHlvdSBjYW4gdXNlIGEgPGNvZGU+Q2hvaWNlRm9ybWF0PC9jb2RlPiB0byBnZXQKKyAqIG91dHB1dCBzdWNoIGFzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9LiIpOworICogZG91YmxlW10gZmlsZWxpbWl0cyA9IHswLDEsMn07CisgKiBTdHJpbmdbXSBmaWxlcGFydCA9IHsibm8gZmlsZXMiLCJvbmUgZmlsZSIsInswLG51bWJlcn0gZmlsZXMifTsKKyAqIENob2ljZUZvcm1hdCBmaWxlZm9ybSA9IG5ldyBDaG9pY2VGb3JtYXQoZmlsZWxpbWl0cywgZmlsZXBhcnQpOworICogZm9ybS5zZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXgoMCwgZmlsZWZvcm0pOworICoKKyAqIE9iamVjdFtdIHRlc3RBcmdzID0ge25ldyBMb25nKDEyMzczKSwgIk15RGlzayJ9OworICoKKyAqIFN5c3RlbS5vdXQucHJpbnRsbihmb3JtLmZvcm1hdCh0ZXN0QXJncykpOworICoKKyAqIC8vIG91dHB1dCwgd2l0aCBkaWZmZXJlbnQgdGVzdEFyZ3MKKyAqIG91dHB1dDogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgbm8gZmlsZXMuCisgKiBvdXRwdXQ6IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIG9uZSBmaWxlLgorICogb3V0cHV0OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAxLDI3MyBmaWxlcy4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiBlaXRoZXIgZG8gdGhpcyBwcm9ncmFtbWF0aWNhbGx5LCBhcyBpbiB0aGUgYWJvdmUgZXhhbXBsZSwKKyAqIG9yIGJ5IHVzaW5nIGEgcGF0dGVybiAoc2VlCisgKiB7QGxpbmsgQ2hvaWNlRm9ybWF0fQorICogZm9yIG1vcmUgaW5mb3JtYXRpb24pIGFzIGluOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogZm9ybS5hcHBseVBhdHRlcm4oCisgKiAgICAiVGhlcmUgezAsY2hvaWNlLDAjYXJlIG5vIGZpbGVzfDEjaXMgb25lIGZpbGV8MSZsdDthcmUgezAsbnVtYmVyLGludGVnZXJ9IGZpbGVzfS4iKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEFzIHdlIHNlZSBhYm92ZSwgdGhlIHN0cmluZyBwcm9kdWNlZAorICogYnkgYSA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+IGluIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGlzIHRyZWF0ZWQgc3BlY2lhbGx5OworICogb2NjdXJhbmNlcyBvZiAneycgYXJlIHVzZWQgdG8gaW5kaWNhdGVkIHN1YmZvcm1hdHMsIGFuZCBjYXVzZSByZWN1cnNpb24uCisgKiBJZiB5b3UgY3JlYXRlIGJvdGggYSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBhbmQgPGNvZGU+Q2hvaWNlRm9ybWF0PC9jb2RlPgorICogcHJvZ3JhbW1hdGljYWxseSAoaW5zdGVhZCBvZiB1c2luZyB0aGUgc3RyaW5nIHBhdHRlcm5zKSwgdGhlbiBiZSBjYXJlZnVsIG5vdCB0bworICogcHJvZHVjZSBhIGZvcm1hdCB0aGF0IHJlY3Vyc2VzIG9uIGl0c2VsZiwgd2hpY2ggd2lsbCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wLgorICogPHA+CisgKiBXaGVuIGEgc2luZ2xlIGFyZ3VtZW50IGlzIHBhcnNlZCBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc3RyaW5nLCB0aGUgbGFzdCBtYXRjaAorICogd2lsbCBiZSB0aGUgZmluYWwgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLiAgRm9yIGV4YW1wbGUsCisgKiA8cHJlPgorICogTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MCxudW1iZXIsIy4jI30sIHswLG51bWJlciwjLiN9Iik7CisgKiBPYmplY3RbXSBvYmpzID0ge25ldyBEb3VibGUoMy4xNDE1KX07CisgKiBTdHJpbmcgcmVzdWx0ID0gbWYuZm9ybWF0KCBvYmpzICk7CisgKiAvLyByZXN1bHQgbm93IGVxdWFscyAiMy4xNCwgMy4xIgorICogb2JqcyA9IG51bGw7CisgKiBvYmpzID0gbWYucGFyc2UocmVzdWx0LCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgKiAvLyBvYmpzIG5vdyBlcXVhbHMge25ldyBEb3VibGUoMy4xKX0KKyAqIDwvcHJlPgorICogPHA+CisgKiBMaWtld2lzZSwgcGFyc2luZyB3aXRoIGEgTWVzc2FnZUZvcm1hdCBvYmplY3QgdXNpbmcgcGF0dGVybnMgY29udGFpbmluZworICogbXVsdGlwbGUgb2NjdXJhbmNlcyBvZiB0aGUgc2FtZSBhcmd1bWVudCB3b3VsZCByZXR1cm4gdGhlIGxhc3QgbWF0Y2guICBGb3IKKyAqIGV4YW1wbGUsCisgKiA8cHJlPgorICogTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MH0sIHswfSwgezB9Iik7CisgKiBTdHJpbmcgZm9yUGFyc2luZyA9ICJ4LCB5LCB6IjsKKyAqIE9iamVjdFtdIG9ianMgPSBtZi5wYXJzZShmb3JQYXJzaW5nLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgKiAvLyByZXN1bHQgbm93IGVxdWFscyB7bmV3IFN0cmluZygieiIpfQorICogPC9wcmU+CisgKgorICogPGg0PjxhIG5hbWU9InN5bmNocm9uaXphdGlvbiI+U3luY2hyb25pemF0aW9uPC9hPjwvaDQ+CisgKgorICogPHA+CisgKiBNZXNzYWdlIGZvcm1hdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuCisgKiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgc2VwYXJhdGUgZm9ybWF0IGluc3RhbmNlcyBmb3IgZWFjaCB0aHJlYWQuCisgKiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdCBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkCisgKiBleHRlcm5hbGx5LgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS51dGlsLkxvY2FsZQorICogQHNlZSAgICAgICAgICBGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgQ2hvaWNlRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBzdGFibGUgSUNVIDMuMAorICovCitwdWJsaWMgY2xhc3MgTWVzc2FnZUZvcm1hdCBleHRlbmRzIFVGb3JtYXQgeworCisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA3MTM2MjEyNTQ1ODQ3Mzc4NjUxTDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNZXNzYWdlRm9ybWF0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIHRoZQorICAgICAqIHNwZWNpZmllZCBwYXR0ZXJuLgorICAgICAqIFRoZSBjb25zdHJ1Y3RvciBmaXJzdCBzZXRzIHRoZSBsb2NhbGUsIHRoZW4gcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZAorICAgICAqIGNyZWF0ZXMgYSBsaXN0IG9mIHN1YmZvcm1hdHMgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgdGhpcy51bG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgTWVzc2FnZUZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgYW5kCisgICAgICogcGF0dGVybi4KKyAgICAgKiBUaGUgY29uc3RydWN0b3IgZmlyc3Qgc2V0cyB0aGUgbG9jYWxlLCB0aGVuIHBhcnNlcyB0aGUgcGF0dGVybiBhbmQKKyAgICAgKiBjcmVhdGVzIGEgbGlzdCBvZiBzdWJmb3JtYXRzIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBpdC4KKyAgICAgKiBQYXR0ZXJucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb24gYXJlIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgKiA8YSBocmVmPSIjcGF0dGVybnMiPmNsYXNzIGRlc2NyaXB0aW9uPC9hPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBNZXNzYWdlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMocGF0dGVybiwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGFuZAorICAgICAqIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy51bG9jYWxlID0gbG9jYWxlOworICAgICAgICBhcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cy4KKyAgICAgKiBUaGlzIGFmZmVjdHMgc3Vic2VxdWVudCBjYWxscyB0byB0aGUge0BsaW5rICNhcHBseVBhdHRlcm4gYXBwbHlQYXR0ZXJufQorICAgICAqIGFuZCB7QGxpbmsgI3RvUGF0dGVybiB0b1BhdHRlcm59IG1ldGhvZHMgYXMgd2VsbCBhcyB0byB0aGUKKyAgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IGFuZAorICAgICAqIHtAbGluayAjZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvciBmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yfSBtZXRob2RzLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHNldExvY2FsZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqIFRoaXMgYWZmZWN0cyBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB7QGxpbmsgI2FwcGx5UGF0dGVybiBhcHBseVBhdHRlcm59CisgICAgICogYW5kIHtAbGluayAjdG9QYXR0ZXJuIHRvUGF0dGVybn0gbWV0aG9kcyBhcyB3ZWxsIGFzIHRvIHRoZQorICAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gYW5kCisgICAgICoge0BsaW5rICNmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3J9IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIC8qIFNhdmUgdGhlIHBhdHRlcm4sIGFuZCB0aGVuIHJlYXBwbHkgc28gdGhhdCAqLworICAgICAgICAvKiB3ZSBwaWNrIHVwIGFueSBjaGFuZ2VzIGluIGxvY2FsZSBzcGVjaWZpYyAqLworICAgICAgICAvKiBlbGVtZW50cyAqLworICAgICAgICBTdHJpbmcgZXhpc3RpbmdQYXR0ZXJuID0gdG9QYXR0ZXJuKCk7ICAgICAgICAgICAgICAgICAgICAgICAvKmlibS4zNTUwKi8KKyAgICAgICAgdGhpcy51bG9jYWxlID0gbG9jYWxlOworICAgICAgICBhcHBseVBhdHRlcm4oZXhpc3RpbmdQYXR0ZXJuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKmlibS4zNTUwKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsb2NhbGUgdGhhdCdzIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIHVsb2NhbGUudG9Mb2NhbGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsb2NhbGUgdGhhdCdzIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwYXR0ZXJuIHVzZWQgYnkgdGhpcyBtZXNzYWdlIGZvcm1hdC4KKyAgICAgKiBUaGUgbWV0aG9kIHBhcnNlcyB0aGUgcGF0dGVybiBhbmQgY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cworICAgICAqIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBpdC4KKyAgICAgKiBQYXR0ZXJucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb24gYXJlIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgKiA8YSBocmVmPSIjcGF0dGVybnMiPmNsYXNzIGRlc2NyaXB0aW9uPC9hPi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlcltdIHNlZ21lbnRzID0gbmV3IFN0cmluZ0J1ZmZlcls0XTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzZWdtZW50c1tpXSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBwYXJ0ID0gMDsKKyAgICAgICAgICAgIGludCBmb3JtYXROdW1iZXIgPSAwOworICAgICAgICAgICAgYm9vbGVhbiBpblF1b3RlID0gZmFsc2U7CisgICAgICAgICAgICBpbnQgYnJhY2VTdGFjayA9IDA7CisgICAgICAgICAgICBtYXhPZmZzZXQgPSAtMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChwYXJ0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA8IHBhdHRlcm4ubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBwYXR0ZXJuLmNoYXJBdChpKzEpID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOyAgLy8gaGFuZGxlIGRvdWJsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSAhaW5RdW90ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAneycgJiYgIWluUXVvdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQgPSAxOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNbcGFydF0uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSAgaWYgKGluUXVvdGUpIHsgIC8vIGp1c3QgY29weSBxdW90ZXMgaW4gcGFydHMKKyAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNbcGFydF0uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnLCc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFydCA8IDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzW3BhcnRdLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAneyc6CisgICAgICAgICAgICAgICAgICAgICAgICArK2JyYWNlU3RhY2s7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ30nOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJyYWNlU3RhY2sgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VGb3JtYXQoaSwgZm9ybWF0TnVtYmVyLCBzZWdtZW50cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0TnVtYmVyKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tYnJhY2VTdGFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1wnJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbCB0aHJvdWdoLCBzbyB3ZSBrZWVwIHF1b3RlcyBpbiBvdGhlciBwYXJ0cworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNbcGFydF0uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJyYWNlU3RhY2sgPT0gMCAmJiBwYXJ0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYXhPZmZzZXQgPSAtMTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbm1hdGNoZWQgYnJhY2VzIGluIHRoZSBwYXR0ZXJuLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5wYXR0ZXJuID0gc2VnbWVudHNbMF0udG9TdHJpbmcoKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbWVzc2FnZSBmb3JtYXQuCisgICAgICogVGhlIHN0cmluZyBpcyBjb25zdHJ1Y3RlZCBmcm9tIGludGVybmFsIGluZm9ybWF0aW9uIGFuZCB0aGVyZWZvcmUKKyAgICAgKiBkb2VzIG5vdCBuZWNlc3NhcmlseSBlcXVhbCB0aGUgcHJldmlvdXNseSBhcHBsaWVkIHBhdHRlcm4uIAorICAgICAqCisgICAgICogQHJldHVybiBhIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKCkgeworICAgICAgICAvLyBsYXRlciwgbWFrZSB0aGlzIG1vcmUgZXh0ZW5zaWJsZQorICAgICAgICBpbnQgbGFzdE9mZnNldCA9IDA7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG1heE9mZnNldDsgKytpKSB7CisgICAgICAgICAgICBjb3B5QW5kRml4UXVvdGVzKHBhdHRlcm4sIGxhc3RPZmZzZXQsIG9mZnNldHNbaV0scmVzdWx0KTsKKyAgICAgICAgICAgIGxhc3RPZmZzZXQgPSBvZmZzZXRzW2ldOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgneycpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhcmd1bWVudE51bWJlcnNbaV0pOworICAgICAgICAgICAgaWYgKGZvcm1hdHNbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcsIHN0cmluZyBmb3JtYXQKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXSBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsbnVtYmVyIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSh1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLG51bWJlcixjdXJyZW5jeSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSh1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLG51bWJlcixwZXJjZW50Iik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsbnVtYmVyLGludGVnZXIiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsbnVtYmVyLCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoRGVjaW1hbEZvcm1hdClmb3JtYXRzW2ldKS50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldIGluc3RhbmNlb2YgU2ltcGxlRGF0ZUZvcm1hdCkgeworICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixkYXRlIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsZGF0ZSxzaG9ydCIpOworLy8gVGhpcyBjb2RlIHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQgW2FsYW5dCisvLyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCx1bG9jYWxlKSkpIHsKKy8vICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsZGF0ZSxtZWRpdW0iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORyx1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLGRhdGUsbG9uZyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsZGF0ZSxmdWxsIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIix0aW1lIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsdGltZSxzaG9ydCIpOworLy8gVGhpcyBjb2RlIHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQgW2FsYW5dCisvLyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCx1bG9jYWxlKSkpIHsKKy8vICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsdGltZSxtZWRpdW0iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORyx1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLHRpbWUsbG9uZyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsdGltZSxmdWxsIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLGRhdGUsIiArICgoU2ltcGxlRGF0ZUZvcm1hdClmb3JtYXRzW2ldKS50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldIGluc3RhbmNlb2YgQ2hvaWNlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLGNob2ljZSwiICsgKChDaG9pY2VGb3JtYXQpZm9ybWF0c1tpXSkudG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvL3Jlc3VsdC5hcHBlbmQoIiwgdW5rbm93biIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfScpOworICAgICAgICB9CisgICAgICAgIGNvcHlBbmRGaXhRdW90ZXMocGF0dGVybiwgbGFzdE9mZnNldCwgcGF0dGVybi5sZW5ndGgoKSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGZvcm1hdHMgdG8gdXNlIGZvciB0aGUgdmFsdWVzIHBhc3NlZCBpbnRvCisgICAgICogPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHJldHVybmVkIGZyb20gPGNvZGU+cGFyc2U8L2NvZGU+CisgICAgICogbWV0aG9kcy4gVGhlIGluZGljZXMgb2YgZWxlbWVudHMgaW4gPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4KKyAgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBhcmd1bWVudCBpbmRpY2VzIHVzZWQgaW4gdGhlIHByZXZpb3VzbHkgc2V0CisgICAgICogcGF0dGVybiBzdHJpbmcuCisgICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gdGh1cyBjb3JyZXNwb25kcyB0bworICAgICAqIHRoZSBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQKKyAgICAgKiB0byB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQKKyAgICAgKiBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogSWYgYW4gYXJndW1lbnQgaW5kZXggaXMgdXNlZCBmb3IgbW9yZSB0aGFuIG9uZSBmb3JtYXQgZWxlbWVudAorICAgICAqIGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBuZXcgZm9ybWF0IGlzIHVzZWQKKyAgICAgKiBmb3IgYWxsIHN1Y2ggZm9ybWF0IGVsZW1lbnRzLiBJZiBhbiBhcmd1bWVudCBpbmRleCBpcyBub3QgdXNlZAorICAgICAqIGZvciBhbnkgZm9ybWF0IGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZQorICAgICAqIGNvcnJlc3BvbmRpbmcgbmV3IGZvcm1hdCBpcyBpZ25vcmVkLiBJZiBmZXdlciBmb3JtYXRzIGFyZSBwcm92aWRlZAorICAgICAqIHRoYW4gbmVlZGVkLCB0aGVuIG9ubHkgdGhlIGZvcm1hdHMgZm9yIGFyZ3VtZW50IGluZGljZXMgbGVzcworICAgICAqIHRoYW4gPGNvZGU+bmV3Rm9ybWF0cy5sZW5ndGg8L2NvZGU+IGFyZSByZXBsYWNlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuZXdGb3JtYXRzIHRoZSBuZXcgZm9ybWF0cyB0byB1c2UKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPm5ld0Zvcm1hdHM8L2NvZGU+IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KEZvcm1hdFtdIG5ld0Zvcm1hdHMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyBpKyspIHsKKyAgICAgICAgICAgIGludCBqID0gYXJndW1lbnROdW1iZXJzW2ldOworICAgICAgICAgICAgaWYgKGogPCBuZXdGb3JtYXRzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGZvcm1hdHNbaV0gPSBuZXdGb3JtYXRzW2pdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9ybWF0cyB0byB1c2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgaW4gdGhlCisgICAgICogcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gY29ycmVzcG9uZHMgdG8KKyAgICAgKiB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBtb3JlIGZvcm1hdHMgYXJlIHByb3ZpZGVkIHRoYW4gbmVlZGVkIGJ5IHRoZSBwYXR0ZXJuIHN0cmluZywKKyAgICAgKiB0aGUgcmVtYWluaW5nIG9uZXMgYXJlIGlnbm9yZWQuIElmIGZld2VyIGZvcm1hdHMgYXJlIHByb3ZpZGVkCisgICAgICogdGhhbiBuZWVkZWQsIHRoZW4gb25seSB0aGUgZmlyc3QgPGNvZGU+bmV3Rm9ybWF0cy5sZW5ndGg8L2NvZGU+CisgICAgICogZm9ybWF0cyBhcmUgcmVwbGFjZWQuCisgICAgICogPHA+CisgICAgICogU2luY2UgdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiBhIHBhdHRlcm4gc3RyaW5nIG9mdGVuCisgICAgICogY2hhbmdlcyBkdXJpbmcgbG9jYWxpemF0aW9uLCBpdCBpcyBnZW5lcmFsbHkgYmV0dGVyIHRvIHVzZSB0aGUKKyAgICAgKiB7QGxpbmsgI3NldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXggc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleH0KKyAgICAgKiBtZXRob2QsIHdoaWNoIGFzc3VtZXMgYW4gb3JkZXIgb2YgZm9ybWF0cyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICAgICAqIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZCB0bworICAgICAqIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieQorICAgICAqIHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gbWV0aG9kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuZXdGb3JtYXRzIHRoZSBuZXcgZm9ybWF0cyB0byB1c2UKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPm5ld0Zvcm1hdHM8L2NvZGU+IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXRzKEZvcm1hdFtdIG5ld0Zvcm1hdHMpIHsKKyAgICAgICAgaW50IHJ1bnNUb0NvcHkgPSBuZXdGb3JtYXRzLmxlbmd0aDsKKyAgICAgICAgaWYgKHJ1bnNUb0NvcHkgPiBtYXhPZmZzZXQgKyAxKSB7CisgICAgICAgICAgICBydW5zVG9Db3B5ID0gbWF4T2Zmc2V0ICsgMTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bnNUb0NvcHk7IGkrKykgeworICAgICAgICAgICAgZm9ybWF0c1tpXSA9IG5ld0Zvcm1hdHNbaV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBmb3JtYXQgdG8gdXNlIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIHdpdGhpbiB0aGUKKyAgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZyB0aGF0IHVzZSB0aGUgZ2l2ZW4gYXJndW1lbnQKKyAgICAgKiBpbmRleC4KKyAgICAgKiBUaGUgYXJndW1lbnQgaW5kZXggaXMgcGFydCBvZiB0aGUgZm9ybWF0IGVsZW1lbnQgZGVmaW5pdGlvbiBhbmQKKyAgICAgKiByZXByZXNlbnRzIGFuIGluZGV4IGludG8gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkCisgICAgICogdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkCisgICAgICogYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIElmIHRoZSBhcmd1bWVudCBpbmRleCBpcyB1c2VkIGZvciBtb3JlIHRoYW4gb25lIGZvcm1hdCBlbGVtZW50CisgICAgICogaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBuZXcgZm9ybWF0IGlzIHVzZWQgZm9yIGFsbCBzdWNoCisgICAgICogZm9ybWF0IGVsZW1lbnRzLiBJZiB0aGUgYXJndW1lbnQgaW5kZXggaXMgbm90IHVzZWQgZm9yIGFueSBmb3JtYXQKKyAgICAgKiBlbGVtZW50IGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUgbmV3IGZvcm1hdCBpcyBpZ25vcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGFyZ3VtZW50SW5kZXggdGhlIGFyZ3VtZW50IGluZGV4IGZvciB3aGljaCB0byB1c2UgdGhlIG5ldyBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbmV3Rm9ybWF0IHRoZSBuZXcgZm9ybWF0IHRvIHVzZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdEJ5QXJndW1lbnRJbmRleChpbnQgYXJndW1lbnRJbmRleCwgRm9ybWF0IG5ld0Zvcm1hdCkgeworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBtYXhPZmZzZXQ7IGorKykgeworICAgICAgICAgICAgaWYgKGFyZ3VtZW50TnVtYmVyc1tqXSA9PSBhcmd1bWVudEluZGV4KSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1tqXSA9IG5ld0Zvcm1hdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudCB3aXRoIHRoZSBnaXZlbgorICAgICAqIGZvcm1hdCBlbGVtZW50IGluZGV4IHdpdGhpbiB0aGUgcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgICogVGhlIGZvcm1hdCBlbGVtZW50IGluZGV4IGlzIHRoZSB6ZXJvLWJhc2VkIG51bWJlciBvZiB0aGUgZm9ybWF0CisgICAgICogZWxlbWVudCBjb3VudGluZyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgcGF0dGVybiBzdHJpbmcuCisgICAgICogPHA+CisgICAgICogU2luY2UgdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiBhIHBhdHRlcm4gc3RyaW5nIG9mdGVuCisgICAgICogY2hhbmdlcyBkdXJpbmcgbG9jYWxpemF0aW9uLCBpdCBpcyBnZW5lcmFsbHkgYmV0dGVyIHRvIHVzZSB0aGUKKyAgICAgKiB7QGxpbmsgI3NldEZvcm1hdEJ5QXJndW1lbnRJbmRleCBzZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXh9CisgICAgICogbWV0aG9kLCB3aGljaCBhY2Nlc3NlcyBmb3JtYXQgZWxlbWVudHMgYmFzZWQgb24gdGhlIGFyZ3VtZW50CisgICAgICogaW5kZXggdGhleSBzcGVjaWZ5LgorICAgICAqCisgICAgICogQHBhcmFtIGZvcm1hdEVsZW1lbnRJbmRleCB0aGUgaW5kZXggb2YgYSBmb3JtYXQgZWxlbWVudCB3aXRoaW4gdGhlIHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gbmV3Rm9ybWF0IHRoZSBmb3JtYXQgdG8gdXNlIGZvciB0aGUgc3BlY2lmaWVkIGZvcm1hdCBlbGVtZW50CisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgZm9ybWF0RWxlbWVudEluZGV4IGlzIGVxdWFsIHRvIG9yCisgICAgICogICAgICAgICAgICBsYXJnZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUgcGF0dGVybiBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXQoaW50IGZvcm1hdEVsZW1lbnRJbmRleCwgRm9ybWF0IG5ld0Zvcm1hdCkgeworICAgICAgICBmb3JtYXRzW2Zvcm1hdEVsZW1lbnRJbmRleF0gPSBuZXdGb3JtYXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgdmFsdWVzIHBhc3NlZCBpbnRvCisgICAgICogPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHJldHVybmVkIGZyb20gPGNvZGU+cGFyc2U8L2NvZGU+CisgICAgICogbWV0aG9kcy4gVGhlIGluZGljZXMgb2YgZWxlbWVudHMgaW4gdGhlIHJldHVybmVkIGFycmF5CisgICAgICogY29ycmVzcG9uZCB0byB0aGUgYXJndW1lbnQgaW5kaWNlcyB1c2VkIGluIHRoZSBwcmV2aW91c2x5IHNldAorICAgICAqIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIFRoZSBvcmRlciBvZiBmb3JtYXRzIGluIHRoZSByZXR1cm5lZCBhcnJheSB0aHVzIGNvcnJlc3BvbmRzIHRvCisgICAgICogdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZAorICAgICAqIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZAorICAgICAqIGJ5IHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbiBhcmd1bWVudCBpbmRleCBpcyB1c2VkIGZvciBtb3JlIHRoYW4gb25lIGZvcm1hdCBlbGVtZW50CisgICAgICogaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBmb3JtYXQgdXNlZCBmb3IgdGhlIGxhc3Qgc3VjaAorICAgICAqIGZvcm1hdCBlbGVtZW50IGlzIHJldHVybmVkIGluIHRoZSBhcnJheS4gSWYgYW4gYXJndW1lbnQgaW5kZXgKKyAgICAgKiBpcyBub3QgdXNlZCBmb3IgYW55IGZvcm1hdCBlbGVtZW50IGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbgorICAgICAqIG51bGwgaXMgcmV0dXJuZWQgaW4gdGhlIGFycmF5LgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgYXJndW1lbnRzIHdpdGhpbiB0aGUgcGF0dGVybgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBGb3JtYXRbXSBnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KCkgeworICAgICAgICBpbnQgbWF4aW11bUFyZ3VtZW50TnVtYmVyID0gLTE7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG1heE9mZnNldDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoYXJndW1lbnROdW1iZXJzW2ldID4gbWF4aW11bUFyZ3VtZW50TnVtYmVyKSB7CisgICAgICAgICAgICAgICAgbWF4aW11bUFyZ3VtZW50TnVtYmVyID0gYXJndW1lbnROdW1iZXJzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEZvcm1hdFtdIHJlc3VsdEFycmF5ID0gbmV3IEZvcm1hdFttYXhpbXVtQXJndW1lbnROdW1iZXIgKyAxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdEFycmF5W2FyZ3VtZW50TnVtYmVyc1tpXV0gPSBmb3JtYXRzW2ldOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHRBcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgaW4gdGhlCisgICAgICogcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gdGhlIHJldHVybmVkIGFycmF5IGNvcnJlc3BvbmRzIHRvCisgICAgICogdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUgcGF0dGVybiBzdHJpbmcuCisgICAgICogPHA+CisgICAgICogU2luY2UgdGhlIG9yZGVyIG9mIGZvcm1hdCBlbGVtZW50cyBpbiBhIHBhdHRlcm4gc3RyaW5nIG9mdGVuCisgICAgICogY2hhbmdlcyBkdXJpbmcgbG9jYWxpemF0aW9uLCBpdCdzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIHRoZQorICAgICAqIHtAbGluayAjZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCBnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4fQorICAgICAqIG1ldGhvZCwgd2hpY2ggYXNzdW1lcyBhbiBvcmRlciBvZiBmb3JtYXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkIHRvCisgICAgICogdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkIGJ5CisgICAgICogdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIEZvcm1hdFtdIGdldEZvcm1hdHMoKSB7CisgICAgICAgIEZvcm1hdFtdIHJlc3VsdEFycmF5ID0gbmV3IEZvcm1hdFttYXhPZmZzZXQgKyAxXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmb3JtYXRzLCAwLCByZXN1bHRBcnJheSwgMCwgbWF4T2Zmc2V0ICsgMSk7CisgICAgICAgIHJldHVybiByZXN1bHRBcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGFuIGFycmF5IG9mIG9iamVjdHMgYW5kIGFwcGVuZHMgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+J3MKKyAgICAgKiBwYXR0ZXJuLCB3aXRoIGZvcm1hdCBlbGVtZW50cyByZXBsYWNlZCBieSB0aGUgZm9ybWF0dGVkIG9iamVjdHMsIHRvIHRoZQorICAgICAqIHByb3ZpZGVkIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgICogPHA+CisgICAgICogVGhlIHRleHQgc3Vic3RpdHV0ZWQgZm9yIHRoZSBpbmRpdmlkdWFsIGZvcm1hdCBlbGVtZW50cyBpcyBkZXJpdmVkIGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBzdWJmb3JtYXQgb2YgdGhlIGZvcm1hdCBlbGVtZW50IGFuZCB0aGUKKyAgICAgKiA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGVsZW1lbnQgYXQgdGhlIGZvcm1hdCBlbGVtZW50J3MgYXJndW1lbnQgaW5kZXgKKyAgICAgKiBhcyBpbmRpY2F0ZWQgYnkgdGhlIGZpcnN0IG1hdGNoaW5nIGxpbmUgb2YgdGhlIGZvbGxvd2luZyB0YWJsZS4gQW4KKyAgICAgKiBhcmd1bWVudCBpcyA8aT51bmF2YWlsYWJsZTwvaT4gaWYgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBpcworICAgICAqIDxjb2RlPm51bGw8L2NvZGU+IG9yIGhhcyBmZXdlciB0aGFuIGFyZ3VtZW50SW5kZXgrMSBlbGVtZW50cy4KKyAgICAgKiA8cD4KKyAgICAgKiA8dGFibGUgYm9yZGVyPTE+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0aD5TdWJmb3JtYXQKKyAgICAgKiAgICAgICA8dGg+QXJndW1lbnQKKyAgICAgKiAgICAgICA8dGg+Rm9ybWF0dGVkIFRleHQKKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGk+dW5hdmFpbGFibGU8L2k+CisgICAgICogICAgICAgPHRkPjxjb2RlPiJ7IiArIGFyZ3VtZW50SW5kZXggKyAifSI8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxjb2RlPiJudWxsIjwvY29kZT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRkPjxjb2RlPmluc3RhbmNlb2YgQ2hvaWNlRm9ybWF0PC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgICogICAgICAgPHRkPjxjb2RlPnN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpLmluZGV4T2YoJ3snKSA+PSAwID88YnI+CisgICAgICogICAgICAgICAgIChuZXcgTWVzc2FnZUZvcm1hdChzdWJmb3JtYXQuZm9ybWF0KGFyZ3VtZW50KSwgZ2V0TG9jYWxlKCkpKS5mb3JtYXQoYXJndW1lbnQpIDoKKyAgICAgKiAgICAgICAgICAgc3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48Y29kZT4hPSBudWxsPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgICogICAgICAgPHRkPjxjb2RlPnN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBOdW1iZXI8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShnZXRMb2NhbGUoKSkuZm9ybWF0KGFyZ3VtZW50KTwvY29kZT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxjb2RlPmluc3RhbmNlb2YgRGF0ZTwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKS5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBTdHJpbmc8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxjb2RlPmFyZ3VtZW50PC9jb2RlPgorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGk+YW55PC9pPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5hcmd1bWVudC50b1N0cmluZygpPC9jb2RlPgorICAgICAqIDwvdGFibGU+CisgICAgICogPHA+CisgICAgICogSWYgPGNvZGU+cG9zPC9jb2RlPiBpcyBub24tbnVsbCwgYW5kIHJlZmVycyB0bworICAgICAqIDxjb2RlPkZpZWxkLkFSR1VNRU5UPC9jb2RlPiwgdGhlIGxvY2F0aW9uIG9mIHRoZSBmaXJzdCBmb3JtYXR0ZWQKKyAgICAgKiBzdHJpbmcgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorICAgICAqIEBwYXJhbSByZXN1bHQgd2hlcmUgdGV4dCBpcyBhcHBlbmRlZC4KKyAgICAgKiBAcGFyYW0gcG9zIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsIGlmIGRlc2lyZWQuCisgICAgICogICAgICAgICAgICBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisgICAgICogICAgICAgICAgICA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IGlzIG5vdCBvZiB0aGUgdHlwZQorICAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdFtdIGFyZ3VtZW50cywgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykKKyAgICB7CisgICAgICAgIHJldHVybiBzdWJmb3JtYXQoYXJndW1lbnRzLCByZXN1bHQsIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIE1lc3NhZ2VGb3JtYXQgd2l0aCB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgdXNlcyBpdAorICAgICAqIHRvIGZvcm1hdCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8YmxvY2txdW90ZT4KKyAgICAgKiAgICAgPGNvZGU+KG5ldyB7QGxpbmsgI01lc3NhZ2VGb3JtYXQoU3RyaW5nKSBNZXNzYWdlRm9ybWF0fShwYXR0ZXJuKSkue0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fShhcmd1bWVudHMsIG5ldyBTdHJpbmdCdWZmZXIoKSwgbnVsbCkudG9TdHJpbmcoKTwvY29kZT4KKyAgICAgKiA8L2Jsb2NrcXVvdGU+CisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkLAorICAgICAqICAgICAgICAgICAgb3IgaWYgYW4gYXJndW1lbnQgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkKKyAgICAgKiAgICAgICAgICAgIGlzIG5vdCBvZiB0aGUgdHlwZSBleHBlY3RlZCBieSB0aGUgZm9ybWF0IGVsZW1lbnQocykKKyAgICAgKiAgICAgICAgICAgIHRoYXQgdXNlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZvcm1hdChTdHJpbmcgcGF0dGVybiwgT2JqZWN0W10gYXJndW1lbnRzKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgdGVtcCA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4pOworICAgICAgICByZXR1cm4gdGVtcC5mb3JtYXQoYXJndW1lbnRzKTsKKyAgICB9CisKKyAgICAvLyBPdmVycmlkZXMKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGFuIGFycmF5IG9mIG9iamVjdHMgYW5kIGFwcGVuZHMgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+J3MKKyAgICAgKiBwYXR0ZXJuLCB3aXRoIGZvcm1hdCBlbGVtZW50cyByZXBsYWNlZCBieSB0aGUgZm9ybWF0dGVkIG9iamVjdHMsIHRvIHRoZQorICAgICAqIHByb3ZpZGVkIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPGJsb2NrcXVvdGU+CisgICAgICogICAgIDxjb2RlPntAbGluayAjZm9ybWF0KGphdmEubGFuZy5PYmplY3RbXSwgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24pIGZvcm1hdH0oKE9iamVjdFtdKSBhcmd1bWVudHMsIHJlc3VsdCwgcG9zKTwvY29kZT4KKyAgICAgKiA8L2Jsb2NrcXVvdGU+CisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJndW1lbnRzIGFuIGFycmF5IG9mIG9iamVjdHMgdG8gYmUgZm9ybWF0dGVkIGFuZCBzdWJzdGl0dXRlZC4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IHdoZXJlIHRleHQgaXMgYXBwZW5kZWQuCisgICAgICogQHBhcmFtIHBvcyBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLCBpZiBkZXNpcmVkLgorICAgICAqICAgICAgICAgICAgT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFuIGFyZ3VtZW50IGluIHRoZQorICAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKyAgICAgKiAgICAgICAgICAgIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKSB0aGF0IHVzZSBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3QgYXJndW1lbnRzLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN1YmZvcm1hdCgoT2JqZWN0W10pIGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpOworICAgIH0KKworLy8gVE9ETyBEbyBub3QgcmVtb3ZlLCB0aGlzIGlzIEFQSSBpbiBKREsgdGhhdCB3ZSBuZWVkIHRvIGltcGxlbWVudAorLy8gICAgLyoqCisvLyAgICAgKiBGb3JtYXRzIGFuIGFycmF5IG9mIG9iamVjdHMgYW5kIGluc2VydHMgdGhlbSBpbnRvIHRoZQorLy8gICAgICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncyBwYXR0ZXJuLCBwcm9kdWNpbmcgYW4KKy8vICAgICAqIDxjb2RlPkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4uCisvLyAgICAgKiBZb3UgY2FuIHVzZSB0aGUgcmV0dXJuZWQgPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPgorLy8gICAgICogdG8gYnVpbGQgdGhlIHJlc3VsdGluZyBTdHJpbmcsIGFzIHdlbGwgYXMgdG8gZGV0ZXJtaW5lIGluZm9ybWF0aW9uCisvLyAgICAgKiBhYm91dCB0aGUgcmVzdWx0aW5nIFN0cmluZy4KKy8vICAgICAqIDxwPgorLy8gICAgICogVGhlIHRleHQgb2YgdGhlIHJldHVybmVkIDxjb2RlPkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gaXMKKy8vICAgICAqIHRoZSBzYW1lIHRoYXQgd291bGQgYmUgcmV0dXJuZWQgYnkKKy8vICAgICAqIDxibG9ja3F1b3RlPgorLy8gICAgICogICAgIDxjb2RlPntAbGluayAjZm9ybWF0KGphdmEubGFuZy5PYmplY3RbXSwgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24pIGZvcm1hdH0oYXJndW1lbnRzLCBuZXcgU3RyaW5nQnVmZmVyKCksIG51bGwpLnRvU3RyaW5nKCk8L2NvZGU+CisvLyAgICAgKiA8L2Jsb2NrcXVvdGU+CisvLyAgICAgKiA8cD4KKy8vICAgICAqIEluIGFkZGl0aW9uLCB0aGUgPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBjb250YWlucyBhdAorLy8gICAgICogbGVhc3QgYXR0cmlidXRlcyBpbmRpY2F0aW5nIHdoZXJlIHRleHQgd2FzIGdlbmVyYXRlZCBmcm9tIGFuCisvLyAgICAgKiBhcmd1bWVudCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheS4gVGhlIGtleXMgb2YgdGhlc2UgYXR0cmlidXRlcyBhcmUgb2YKKy8vICAgICAqIHR5cGUgPGNvZGU+TWVzc2FnZUZvcm1hdC5GaWVsZDwvY29kZT4sIHRoZWlyIHZhbHVlcyBhcmUKKy8vICAgICAqIDxjb2RlPkludGVnZXI8L2NvZGU+IG9iamVjdHMgaW5kaWNhdGluZyB0aGUgaW5kZXggaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4KKy8vICAgICAqIGFycmF5IG9mIHRoZSBhcmd1bWVudCBmcm9tIHdoaWNoIHRoZSB0ZXh0IHdhcyBnZW5lcmF0ZWQuCisvLyAgICAgKiA8cD4KKy8vICAgICAqIFRoZSBhdHRyaWJ1dGVzL3ZhbHVlIGZyb20gdGhlIHVuZGVybHlpbmcgPGNvZGU+Rm9ybWF0PC9jb2RlPgorLy8gICAgICogaW5zdGFuY2VzIHRoYXQgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gdXNlcyB3aWxsIGFsc28gYmUKKy8vICAgICAqIHBsYWNlZCBpbiB0aGUgcmVzdWx0aW5nIDxjb2RlPkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4uCisvLyAgICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gbm90IG9ubHkgZmluZCB3aGVyZSBhbiBhcmd1bWVudCBpcyBwbGFjZWQgaW4gdGhlCisvLyAgICAgKiByZXN1bHRpbmcgU3RyaW5nLCBidXQgYWxzbyB3aGljaCBmaWVsZHMgaXQgY29udGFpbnMgaW4gdHVybi4KKy8vICAgICAqCisvLyAgICAgKiBAcGFyYW0gYXJndW1lbnRzIGFuIGFycmF5IG9mIG9iamVjdHMgdG8gYmUgZm9ybWF0dGVkIGFuZCBzdWJzdGl0dXRlZC4KKy8vICAgICAqIEByZXR1cm4gQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIGRlc2NyaWJpbmcgdGhlIGZvcm1hdHRlZCB2YWx1ZS4KKy8vICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBpcyBudWxsLgorLy8gICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisvLyAgICAgKiAgICAgICAgICAgIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgaXMgbm90IG9mIHRoZSB0eXBlCisvLyAgICAgKiAgICAgICAgICAgIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKSB0aGF0IHVzZSBpdC4KKy8vICAgICAqLworLy8gICAgcHVibGljIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvciBmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yKE9iamVjdCBhcmd1bWVudHMpIHsKKy8vICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworLy8gICAgICAgIEFycmF5TGlzdCBpdGVyYXRvcnMgPSBuZXcgQXJyYXlMaXN0KCk7CisvLworLy8gICAgICAgIGlmIChhcmd1bWVudHMgPT0gbnVsbCkgeworLy8gICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oCisvLyAgICAgICAgICAgICAgICAgICAiZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvciBtdXN0IGJlIHBhc3NlZCBub24tbnVsbCBvYmplY3QiKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgc3ViZm9ybWF0KChPYmplY3RbXSkgYXJndW1lbnRzLCByZXN1bHQsIG51bGwsIGl0ZXJhdG9ycyk7CisvLyAgICAgICAgaWYgKGl0ZXJhdG9ycy5zaXplKCkgPT0gMCkgeworLy8gICAgICAgICAgICByZXR1cm4gY3JlYXRlQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yKCIiKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgcmV0dXJuIGNyZWF0ZUF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcigKKy8vICAgICAgICAgICAgICAgICAgICAgKEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcltdKWl0ZXJhdG9ycy50b0FycmF5KAorLy8gICAgICAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yW2l0ZXJhdG9ycy5zaXplKCldKSk7CisvLyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIDxwPkNhdmVhdHM6IFRoZSBwYXJzZSBtYXkgZmFpbCBpbiBhIG51bWJlciBvZiBjaXJjdW1zdGFuY2VzLgorICAgICAqIEZvciBleGFtcGxlOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+SWYgb25lIG9mIHRoZSBhcmd1bWVudHMgZG9lcyBub3Qgb2NjdXIgaW4gdGhlIHBhdHRlcm4uCisgICAgICogPGxpPklmIHRoZSBmb3JtYXQgb2YgYW4gYXJndW1lbnQgbG9zZXMgaW5mb3JtYXRpb24sIHN1Y2ggYXMKKyAgICAgKiAgICAgd2l0aCBhIGNob2ljZSBmb3JtYXQgd2hlcmUgYSBsYXJnZSBudW1iZXIgZm9ybWF0cyB0byAibWFueSIuCisgICAgICogPGxpPkRvZXMgbm90IHlldCBoYW5kbGUgcmVjdXJzaW9uICh3aGVyZQorICAgICAqICAgICB0aGUgc3Vic3RpdHV0ZWQgc3RyaW5ncyBjb250YWluIHtufSByZWZlcmVuY2VzLikKKyAgICAgKiA8bGk+V2lsbCBub3QgYWx3YXlzIGZpbmQgYSBtYXRjaCAob3IgdGhlIGNvcnJlY3QgbWF0Y2gpCisgICAgICogICAgIGlmIHNvbWUgcGFydCBvZiB0aGUgcGFyc2UgaXMgYW1iaWd1b3VzLgorICAgICAqICAgICBGb3IgZXhhbXBsZSwgaWYgdGhlIHBhdHRlcm4gInsxfSx7Mn0iIGlzIHVzZWQgd2l0aCB0aGUKKyAgICAgKiAgICAgc3RyaW5nIGFyZ3VtZW50cyB7ImEsYiIsICJjIn0sIGl0IHdpbGwgZm9ybWF0IGFzICJhLGIsYyIuCisgICAgICogICAgIFdoZW4gdGhlIHJlc3VsdCBpcyBwYXJzZWQsIGl0IHdpbGwgcmV0dXJuIHsiYSIsICJiLGMifS4KKyAgICAgKiA8bGk+SWYgYSBzaW5nbGUgYXJndW1lbnQgaXMgcGFyc2VkIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzdHJpbmcsCisgICAgICogICAgIHRoZW4gdGhlIGxhdGVyIHBhcnNlIHdpbnMuCisgICAgICogPC91bD4KKyAgICAgKiBXaGVuIHRoZSBwYXJzZSBmYWlscywgdXNlIFBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpIHRvIGZpbmQgb3V0CisgICAgICogd2hlcmUgaW4gdGhlIHN0cmluZyBkaWQgdGhlIHBhcnNpbmcgZmFpbGVkLiAgVGhlIHJldHVybmVkIGVycm9yCisgICAgICogaW5kZXggaXMgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgc3ViLXBhdHRlcm5zIHRoYXQgdGhlIHN0cmluZworICAgICAqIGlzIGNvbXBhcmluZyB3aXRoLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwYXJzaW5nIHN0cmluZyAiQUFBIHswfSBCQkIiCisgICAgICogaXMgY29tcGFyaW5nIGFnYWluc3QgdGhlIHBhdHRlcm4gIkFBRCB7MH0gQkJCIiwgdGhlIGVycm9yIGluZGV4IGlzCisgICAgICogMC4gV2hlbiBhbiBlcnJvciBvY2N1cnMsIHRoZSBjYWxsIHRvIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIG51bGwuCisgICAgICogSWYgdGhlIHNvdXJjZSBpcyBudWxsLCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdIHBhcnNlKFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgT2JqZWN0W10gZW1wdHkgPSB7fTsKKyAgICAgICAgICAgIHJldHVybiBlbXB0eTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBtYXhpbXVtQXJndW1lbnROdW1iZXIgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudE51bWJlcnNbaV0gPiBtYXhpbXVtQXJndW1lbnROdW1iZXIpIHsKKyAgICAgICAgICAgICAgICBtYXhpbXVtQXJndW1lbnROdW1iZXIgPSBhcmd1bWVudE51bWJlcnNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0W10gcmVzdWx0QXJyYXkgPSBuZXcgT2JqZWN0W21heGltdW1Bcmd1bWVudE51bWJlciArIDFdOworCisgICAgICAgIGludCBwYXR0ZXJuT2Zmc2V0ID0gMDsKKyAgICAgICAgaW50IHNvdXJjZU9mZnNldCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHRlbXBTdGF0dXMgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyArK2kpIHsKKyAgICAgICAgICAgIC8vIG1hdGNoIHVwIHRvIGZvcm1hdAorICAgICAgICAgICAgaW50IGxlbiA9IG9mZnNldHNbaV0gLSBwYXR0ZXJuT2Zmc2V0OworICAgICAgICAgICAgaWYgKGxlbiA9PSAwIHx8IHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyhwYXR0ZXJuT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIHNvdXJjZU9mZnNldCwgbGVuKSkgeworICAgICAgICAgICAgICAgIHNvdXJjZU9mZnNldCArPSBsZW47CisgICAgICAgICAgICAgICAgcGF0dGVybk9mZnNldCArPSBsZW47CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGxlYXZlIGluZGV4IGFzIGlzIHRvIHNpZ25hbCBlcnJvcgorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBub3cgdXNlIGZvcm1hdAorICAgICAgICAgICAgaWYgKGZvcm1hdHNbaV0gPT0gbnVsbCkgeyAgIC8vIHN0cmluZyBmb3JtYXQKKyAgICAgICAgICAgICAgICAvLyBpZiBhdCBlbmQsIHVzZSBsb25nZXN0IHBvc3NpYmxlIG1hdGNoCisgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHVzZXMgZmlyc3QgbWF0Y2ggdG8gaW50ZXJ2ZW5pbmcgc3RyaW5nCisgICAgICAgICAgICAgICAgLy8gZG9lcyBOT1QgcmVjdXJzaXZlbHkgdHJ5IGFsbCBwb3NzaWJpbGl0aWVzCisgICAgICAgICAgICAgICAgaW50IHRlbXBMZW5ndGggPSAoaSAhPSBtYXhPZmZzZXQpID8gb2Zmc2V0c1tpKzFdIDogcGF0dGVybi5sZW5ndGgoKTsKKworICAgICAgICAgICAgICAgIGludCBuZXh0OworICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuT2Zmc2V0ID49IHRlbXBMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCA9IHNvdXJjZS5pbmRleE9mKCBwYXR0ZXJuLnN1YnN0cmluZyhwYXR0ZXJuT2Zmc2V0LHRlbXBMZW5ndGgpLCBzb3VyY2VPZmZzZXQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChuZXh0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICBwb3Muc2V0RXJyb3JJbmRleChzb3VyY2VPZmZzZXQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gbGVhdmUgaW5kZXggYXMgaXMgdG8gc2lnbmFsIGVycm9yCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0clZhbHVlPSBzb3VyY2Uuc3Vic3RyaW5nKHNvdXJjZU9mZnNldCxuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJWYWx1ZS5lcXVhbHMoInsiK2FyZ3VtZW50TnVtYmVyc1tpXSsifSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0QXJyYXlbYXJndW1lbnROdW1iZXJzW2ldXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlLnN1YnN0cmluZyhzb3VyY2VPZmZzZXQsbmV4dCk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZU9mZnNldCA9IG5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZW1wU3RhdHVzLnNldEluZGV4KHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICAgICAgcmVzdWx0QXJyYXlbYXJndW1lbnROdW1iZXJzW2ldXQorICAgICAgICAgICAgICAgICAgICA9IGZvcm1hdHNbaV0ucGFyc2VPYmplY3Qoc291cmNlLHRlbXBTdGF0dXMpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wU3RhdHVzLmdldEluZGV4KCkgPT0gc291cmNlT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBsZWF2ZSBpbmRleCBhcyBpcyB0byBzaWduYWwgZXJyb3IKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc291cmNlT2Zmc2V0ID0gdGVtcFN0YXR1cy5nZXRJbmRleCgpOyAvLyB1cGRhdGUKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgbGVuID0gcGF0dGVybi5sZW5ndGgoKSAtIHBhdHRlcm5PZmZzZXQ7CisgICAgICAgIGlmIChsZW4gPT0gMCB8fCBwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocGF0dGVybk9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIHNvdXJjZU9mZnNldCwgbGVuKSkgeworICAgICAgICAgICAgcG9zLnNldEluZGV4KHNvdXJjZU9mZnNldCArIGxlbik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwb3Muc2V0RXJyb3JJbmRleChzb3VyY2VPZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGxlYXZlIGluZGV4IGFzIGlzIHRvIHNpZ25hbCBlcnJvcgorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHRBcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGV4dCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdpdmVuIHN0cmluZyB0byBwcm9kdWNlIGFuIG9iamVjdAorICAgICAqIGFycmF5LgorICAgICAqIFRoZSBtZXRob2QgbWF5IG5vdCB1c2UgdGhlIGVudGlyZSB0ZXh0IG9mIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICogPHA+CisgICAgICogU2VlIHRoZSB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IG1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorICAgICAqIG9uIG1lc3NhZ2UgcGFyc2luZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgQSA8Y29kZT5TdHJpbmc8L2NvZGU+IHdob3NlIGJlZ2lubmluZyBzaG91bGQgYmUgcGFyc2VkLgorICAgICAqIEByZXR1cm4gQW4gPGNvZGU+T2JqZWN0PC9jb2RlPiBhcnJheSBwYXJzZWQgZnJvbSB0aGUgc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gaWYgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZworICAgICAqICAgICAgICAgICAgY2Fubm90IGJlIHBhcnNlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W10gcGFyc2UoU3RyaW5nIHNvdXJjZSkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE9iamVjdFtdIHJlc3VsdCA9IHBhcnNlKHNvdXJjZSwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IDApICAvLyB1bmNoYW5nZWQsIHJldHVybmVkIG9iamVjdCBpcyBudWxsCisgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oIk1lc3NhZ2VGb3JtYXQgcGFyc2UgZXJyb3IhIiwgcG9zLmdldEVycm9ySW5kZXgoKSk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGV4dCBmcm9tIGEgc3RyaW5nIHRvIHByb2R1Y2UgYW4gb2JqZWN0IGFycmF5LgorICAgICAqIDxwPgorICAgICAqIFRoZSBtZXRob2QgYXR0ZW1wdHMgdG8gcGFyc2UgdGV4dCBzdGFydGluZyBhdCB0aGUgaW5kZXggZ2l2ZW4gYnkKKyAgICAgKiA8Y29kZT5wb3M8L2NvZGU+LgorICAgICAqIElmIHBhcnNpbmcgc3VjY2VlZHMsIHRoZW4gdGhlIGluZGV4IG9mIDxjb2RlPnBvczwvY29kZT4gaXMgdXBkYXRlZAorICAgICAqIHRvIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdXNlZCAocGFyc2luZyBkb2VzIG5vdCBuZWNlc3NhcmlseQorICAgICAqIHVzZSBhbGwgY2hhcmFjdGVycyB1cCB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcpLCBhbmQgdGhlIHBhcnNlZAorICAgICAqIG9iamVjdCBhcnJheSBpcyByZXR1cm5lZC4gVGhlIHVwZGF0ZWQgPGNvZGU+cG9zPC9jb2RlPiBjYW4gYmUgdXNlZCB0bworICAgICAqIGluZGljYXRlIHRoZSBzdGFydGluZyBwb2ludCBmb3IgdGhlIG5leHQgY2FsbCB0byB0aGlzIG1ldGhvZC4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gdGhlIGluZGV4IG9mIDxjb2RlPnBvczwvY29kZT4gaXMgbm90CisgICAgICogY2hhbmdlZCwgdGhlIGVycm9yIGluZGV4IG9mIDxjb2RlPnBvczwvY29kZT4gaXMgc2V0IHRvIHRoZSBpbmRleCBvZgorICAgICAqIHRoZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkLCBhbmQgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgICogb24gbWVzc2FnZSBwYXJzaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBIDxjb2RlPlN0cmluZzwvY29kZT4sIHBhcnQgb2Ygd2hpY2ggc2hvdWxkIGJlIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gcG9zIEEgPGNvZGU+UGFyc2VQb3NpdGlvbjwvY29kZT4gb2JqZWN0IHdpdGggaW5kZXggYW5kIGVycm9yCisgICAgICogICAgICAgICAgICBpbmRleCBpbmZvcm1hdGlvbiBhcyBkZXNjcmliZWQgYWJvdmUuCisgICAgICogQHJldHVybiBBbiA8Y29kZT5PYmplY3Q8L2NvZGU+IGFycmF5IHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuIEluIGNhc2Ugb2YKKyAgICAgKiAgICAgICAgIGVycm9yLCByZXR1cm5zIG51bGwuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5wb3M8L2NvZGU+IGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwYXJzZU9iamVjdChTdHJpbmcgc291cmNlLCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gcGFyc2Uoc291cmNlLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBjb3B5IG9mIHRoaXMgb2JqZWN0LgorICAgICAqCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgaW5zdGFuY2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBvdGhlciA9IChNZXNzYWdlRm9ybWF0KSBzdXBlci5jbG9uZSgpOworCisgICAgICAgIC8vIGNsb25lIGFycmF5cy4gQ2FuJ3QgZG8gd2l0aCB1dGlsaXR5IGJlY2F1c2Ugb2YgYnVnIGluIENsb25lYWJsZQorICAgICAgICBvdGhlci5mb3JtYXRzID0gKEZvcm1hdFtdKSBmb3JtYXRzLmNsb25lKCk7IC8vIHNoYWxsb3cgY2xvbmUKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoZm9ybWF0c1tpXSAhPSBudWxsKQorICAgICAgICAgICAgICAgIG90aGVyLmZvcm1hdHNbaV0gPSAoRm9ybWF0KWZvcm1hdHNbaV0uY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmb3IgcHJpbWl0aXZlcyBvciBpbW11dGFibGVzLCBzaGFsbG93IGNsb25lIGlzIGVub3VnaAorICAgICAgICBvdGhlci5vZmZzZXRzID0gKGludFtdKSBvZmZzZXRzLmNsb25lKCk7CisgICAgICAgIG90aGVyLmFyZ3VtZW50TnVtYmVycyA9IChpbnRbXSkgYXJndW1lbnROdW1iZXJzLmNsb25lKCk7CisKKyAgICAgICAgcmV0dXJuIG90aGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVxdWFsaXR5IGNvbXBhcmlzb24gYmV0d2VlbiB0d28gbWVzc2FnZSBmb3JtYXQgb2JqZWN0cworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgICAgICAgICAgICAgICAgICAgICAgLy8gcXVpY2sgY2hlY2sKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAob2JqID09IG51bGwgfHwgZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBvdGhlciA9IChNZXNzYWdlRm9ybWF0KSBvYmo7CisgICAgICAgIHJldHVybiAobWF4T2Zmc2V0ID09IG90aGVyLm1heE9mZnNldAorICAgICAgICAgICAgICAgICYmIHBhdHRlcm4uZXF1YWxzKG90aGVyLnBhdHRlcm4pCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5vYmplY3RFcXVhbHModWxvY2FsZSwgb3RoZXIudWxvY2FsZSkgICAvLyBkb2VzIG51bGwgY2hlY2sKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKG9mZnNldHMsb3RoZXIub2Zmc2V0cykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKGFyZ3VtZW50TnVtYmVycyxvdGhlci5hcmd1bWVudE51bWJlcnMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhmb3JtYXRzLG90aGVyLmZvcm1hdHMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBtZXNzYWdlIGZvcm1hdCBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIHBhdHRlcm4uaGFzaENvZGUoKTsgLy8gZW5vdWdoIGZvciByZWFzb25hYmxlIGRpc3RyaWJ1dGlvbgorICAgIH0KKworLy8gVE9ETyBEbyBub3QgcmVtb3ZlLCB0aGlzIGlzIEFQSSBpbiBKREsgdGhhdCB3ZSBuZWVkIHRvIGltcGxlbWVudAorLy8gICAgLyoqCisvLyAgICAgKiBEZWZpbmVzIGNvbnN0YW50cyB0aGF0IGFyZSB1c2VkIGFzIGF0dHJpYnV0ZSBrZXlzIGluIHRoZQorLy8gICAgICogPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiByZXR1cm5lZAorLy8gICAgICogZnJvbSA8Y29kZT5NZXNzYWdlRm9ybWF0LmZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+LgorLy8gICAgICogQGRyYWZ0IElDVSAzLjAKKy8vICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorLy8gICAgICovCisvLyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEZpZWxkIGV4dGVuZHMgRm9ybWF0LkZpZWxkIHsKKy8vICAgICAgICAvKioKKy8vICAgICAgICAgKiBDcmVhdGVzIGEgRmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCisvLyAgICAgICAgICoKKy8vICAgICAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKy8vICAgICAgICAgKi8KKy8vICAgICAgICBwcm90ZWN0ZWQgRmllbGQoU3RyaW5nIG5hbWUpIHsKKy8vICAgICAgICAgICAgc3VwZXIobmFtZSk7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvKioKKy8vICAgICAgICAgKiBSZXNvbHZlcyBpbnN0YW5jZXMgYmVpbmcgZGVzZXJpYWxpemVkIHRvIHRoZSBwcmVkZWZpbmVkIGNvbnN0YW50cy4KKy8vICAgICAgICAgKgorLy8gICAgICAgICAqIEB0aHJvd3MgSW52YWxpZE9iamVjdEV4Y2VwdGlvbiBpZiB0aGUgY29uc3RhbnQgY291bGQgbm90IGJlCisvLyAgICAgICAgICogICAgICAgICByZXNvbHZlZC4KKy8vICAgICAgICAgKiBAcmV0dXJuIHJlc29sdmVkIE1lc3NhZ2VGb3JtYXQuRmllbGQgY29uc3RhbnQKKy8vICAgICAgICAgKi8KKy8vICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IHJlYWRSZXNvbHZlKCkgdGhyb3dzIEludmFsaWRPYmplY3RFeGNlcHRpb24geworLy8gICAgICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpICE9IE1lc3NhZ2VGb3JtYXQuRmllbGQuY2xhc3MpIHsKKy8vICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uKCJzdWJjbGFzcyBkaWRuJ3QgY29ycmVjdGx5IGltcGxlbWVudCByZWFkUmVzb2x2ZSIpOworLy8gICAgICAgICAgICB9CisvLworLy8gICAgICAgICAgICByZXR1cm4gQVJHVU1FTlQ7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvLworLy8gICAgICAgIC8vIFRoZSBjb25zdGFudHMKKy8vICAgICAgICAvLworLy8KKy8vICAgICAgICAvKioKKy8vICAgICAgICAgKiBDb25zdGFudCBpZGVudGlmeWluZyBhIHBvcnRpb24gb2YgYSBtZXNzYWdlIHRoYXQgd2FzIGdlbmVyYXRlZAorLy8gICAgICAgICAqIGZyb20gYW4gYXJndW1lbnQgcGFzc2VkIGludG8gPGNvZGU+Zm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4uCisvLyAgICAgICAgICogVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5IHdpbGwgYmUgYW4gPGNvZGU+SW50ZWdlcjwvY29kZT4KKy8vICAgICAgICAgKiBpbmRpY2F0aW5nIHRoZSBpbmRleCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBvZiB0aGUKKy8vICAgICAgICAgKiBhcmd1bWVudCBmcm9tIHdoaWNoIHRoZSB0ZXh0IHdhcyBnZW5lcmF0ZWQuCisvLyAgICAgICAgICovCisvLyAgICAgICAgcHVibGljIGZpbmFsIHN0YXRpYyBGaWVsZCBBUkdVTUVOVCA9CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZCgibWVzc2FnZSBhcmd1bWVudCBmaWVsZCIpOworLy8gICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09cHJpdmF0ZXM9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIHRvIHVzZSBmb3IgZm9ybWF0dGluZyBudW1iZXJzIGFuZCBkYXRlcy4KKyAgICAgKiBUaGlzIGlzIG5vIGxvbmdlciB1c2VkLCBhbmQgaGVyZSBvbmx5IGZvciBzZXJpYWxpemF0aW9uIGNvbXBhdGliaWxpdHkuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgdG8gdXNlIGZvciBmb3JtYXR0aW5nIG51bWJlcnMgYW5kIGRhdGVzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdWxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBzdHJpbmcgdGhhdCB0aGUgZm9ybWF0dGVkIHZhbHVlcyBhcmUgdG8gYmUgcGx1Z2dlZCBpbnRvLiAgSW4gb3RoZXIgd29yZHMsIHRoaXMKKyAgICAgKiBpcyB0aGUgcGF0dGVybiBzdXBwbGllZCBvbiBjb25zdHJ1Y3Rpb24gd2l0aCBhbGwgb2YgdGhlIHt9IGV4cHJlc3Npb25zIHRha2VuIG91dC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0dGVybiA9ICIiOworCisgICAgLyoqIFRoZSBpbml0aWFsbHkgZXhwZWN0ZWQgbnVtYmVyIG9mIHN1YmZvcm1hdHMgaW4gdGhlIGZvcm1hdCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTklUSUFMX0ZPUk1BVFMgPSAxMDsKKworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIGZvcm1hdHRlcnMsIHdoaWNoIGFyZSB1c2VkIHRvIGZvcm1hdCB0aGUgYXJndW1lbnRzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIEZvcm1hdFtdIGZvcm1hdHMgPSBuZXcgRm9ybWF0W0lOSVRJQUxfRk9STUFUU107CisKKyAgICAvKioKKyAgICAgKiBUaGUgcG9zaXRpb25zIHdoZXJlIHRoZSByZXN1bHRzIG9mIGZvcm1hdHRpbmcgZWFjaCBhcmd1bWVudCBhcmUgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKiBpbnRvIHRoZSBwYXR0ZXJuLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIG9mZnNldHMgPSBuZXcgaW50W0lOSVRJQUxfRk9STUFUU107CisKKyAgICAvKioKKyAgICAgKiBUaGUgYXJndW1lbnQgbnVtYmVycyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggZm9ybWF0dGVyLiAgKFRoZSBmb3JtYXR0ZXJzIGFyZSBzdG9yZWQKKyAgICAgKiBpbiB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgcGF0dGVybiwgbm90IGluIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgYXJndW1lbnRzCisgICAgICogYXJlIHNwZWNpZmllZC4pCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50W10gYXJndW1lbnROdW1iZXJzID0gbmV3IGludFtJTklUSUFMX0ZPUk1BVFNdOworCisgICAgLyoqCisgICAgICogT25lIGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gPGNvZGU+b2Zmc2V0czwvY29kZT4uICBDYW4gYWxzbyBiZSB0aG91Z2h0IG9mCisgICAgICogYXMgdGhlIGluZGV4IG9mIHRoZSBoaWdoZXN0LW51bWJlcmVkIGVsZW1lbnQgaW4gPGNvZGU+b2Zmc2V0czwvY29kZT4gdGhhdCBpcyBiZWluZyB1c2VkLgorICAgICAqIEFsbCBvZiB0aGVzZSBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIGVsZW1lbnRzIGJlaW5nIHVzZWQgYXMgPGNvZGU+b2Zmc2V0czwvY29kZT4KKyAgICAgKiBkb2VzLCBhbmQgc28gdGhpcyB2YXJpYWJsZSBzdWZmaWNlcyB0byB0ZWxsIHVzIGhvdyBtYW55IGVudHJpZXMgYXJlIGluIGFsbCBvZiB0aGVtLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtYXhPZmZzZXQgPSAtMTsKKworICAgIC8qKgorICAgICAqIEludGVybmFsIHJvdXRpbmUgdXNlZCBieSBmb3JtYXQuIElmIDxjb2RlPmNoYXJhY3Rlckl0ZXJhdG9yczwvY29kZT4gaXMKKyAgICAgKiBub24tbnVsbCwgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIHdpbGwgYmUgY3JlYXRlZCBmcm9tIHRoZQorICAgICAqIHN1YmZvcm1hdHMgYXMgbmVjZXNzYXJ5LiBJZiA8Y29kZT5jaGFyYWN0ZXJJdGVyYXRvcnM8L2NvZGU+IGlzIG51bGwKKyAgICAgKiBhbmQgPGNvZGU+ZnA8L2NvZGU+IGlzIG5vbi1udWxsIGFuZCBpZGVudGlmaWVzCisgICAgICogPGNvZGU+RmllbGQuTUVTU0FHRV9BUkdVTUVOVDwvY29kZT4sIHRoZSBsb2NhdGlvbiBvZgorICAgICAqIHRoZSBmaXJzdCByZXBsYWNlZCBhcmd1bWVudCB3aWxsIGJlIHNldCBpbiBpdC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFuIGFyZ3VtZW50IGluIHRoZQorICAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKyAgICAgKiAgICAgICAgICAgIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKSB0aGF0IHVzZSBpdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBzdWJmb3JtYXQoT2JqZWN0W10gYXJndW1lbnRzLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qLCBMaXN0IGNoYXJhY3Rlckl0ZXJhdG9ycyovKSB7CisgICAgICAgIC8vIG5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gYXNzdW1lcyBhIGZhc3Qgc3Vic3RyaW5nICYgaW5kZXguCisgICAgICAgIC8vIGlmIHRoaXMgaXMgbm90IHRydWUsIHdvdWxkIGJlIGJldHRlciB0byBhcHBlbmQgY2hhcnMgb25lIGJ5IG9uZS4KKyAgICAgICAgaW50IGxhc3RPZmZzZXQgPSAwOworICAgICAgICBpbnQgbGFzdCA9IHJlc3VsdC5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGF0dGVybi5zdWJzdHJpbmcobGFzdE9mZnNldCwgb2Zmc2V0c1tpXSkpOworICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldHNbaV07CisgICAgICAgICAgICBpbnQgYXJndW1lbnROdW1iZXIgPSBhcmd1bWVudE51bWJlcnNbaV07CisgICAgICAgICAgICBpZiAoYXJndW1lbnRzID09IG51bGwgfHwgYXJndW1lbnROdW1iZXIgPj0gYXJndW1lbnRzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInsiICsgYXJndW1lbnROdW1iZXIgKyAifSIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaW50IGFyZ1JlY3Vyc2lvbiA9ICgocmVjdXJzaW9uUHJvdGVjdGlvbiA+PiAoYXJndW1lbnROdW1iZXIqMikpICYgMHgzKTsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeyAvLyBpZiAoYXJnUmVjdXJzaW9uID09IDMpeworICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgbG9vcCEhIQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1x1RkZGRCcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBPYmplY3Qgb2JqID0gYXJndW1lbnRzW2FyZ3VtZW50TnVtYmVyXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYXJnID0gbnVsbDsKKyAgICAgICAgICAgICAgICBGb3JtYXQgc3ViRm9ybWF0dGVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnID0gIm51bGwiOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHN1YkZvcm1hdHRlciA9IGZvcm1hdHNbaV07CisgICAgICAgICAgICAgICAgICAgIGlmIChzdWJGb3JtYXR0ZXIgaW5zdGFuY2VvZiBDaG9pY2VGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGZvcm1hdHNbaV0uZm9ybWF0KG9iaik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLmluZGV4T2YoJ3snKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0dGVyID0gbmV3IE1lc3NhZ2VGb3JtYXQoYXJnLCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmogPSBhcmd1bWVudHM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgTnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvcm1hdCBudW1iZXIgaWYgY2FuCisgICAgICAgICAgICAgICAgICAgIHN1YkZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSh1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9ybWF0IGEgRGF0ZSBpZiBjYW4KKyAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0dGVyID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LlNIT1JULCBEYXRlRm9ybWF0LlNIT1JULCB1bG9jYWxlKTsvL2ZpeAorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIGFyZyA9IChTdHJpbmcpIG9iajsKKworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFyZyA9IG9iai50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXJnID09IG51bGwpIGFyZyA9ICJudWxsIjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBpbiB0d28gc3RhdGVzLCBlaXRoZXIgc3ViRm9ybWF0dGVyCisgICAgICAgICAgICAgICAgLy8gaXMgbm9uLW51bGwgaW5kaWNhdGluZyB3ZSBzaG91bGQgZm9ybWF0IG9iaiB1c2luZyBpdCwKKyAgICAgICAgICAgICAgICAvLyBvciBhcmcgaXMgbm9uLW51bGwgYW5kIHdlIHNob3VsZCB1c2UgaXQgYXMgdGhlIHZhbHVlLgorCisvLyBUT0RPIERvIG5vdCByZW1vdmUsIHRoaXMgaXMgQVBJIGluIEpESyB0aGF0IHdlIG5lZWQgdG8gaW1wbGVtZW50CisvLyAgICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVySXRlcmF0b3JzICE9IG51bGwpIHsKKy8vICAgICAgICAgICAgICAgICAgICAvLyBJZiBjaGFyYWN0ZXJJdGVyYXRvcnMgaXMgbm9uLW51bGwsIGl0IGluZGljYXRlcyB3ZSBuZWVkCisvLyAgICAgICAgICAgICAgICAgICAgLy8gdG8gZ2V0IHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBmcm9tIHRoZSBjaGlsZCBmb3JtYXR0ZXIuCisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3QgIT0gcmVzdWx0Lmxlbmd0aCgpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlckl0ZXJhdG9ycy5hZGQoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IocmVzdWx0LnN1YnN0cmluZworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXN0KSkpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOworLy8gICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICBpZiAoc3ViRm9ybWF0dGVyICE9IG51bGwpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIHN1Ykl0ZXJhdG9yID0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJGb3JtYXR0ZXIuZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcihvYmopOworLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKHJlc3VsdCwgc3ViSXRlcmF0b3IpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdCAhPSByZXN1bHQubGVuZ3RoKCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlckl0ZXJhdG9ycy5hZGQoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yKAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ykl0ZXJhdG9yLCBGaWVsZC5BUkdVTUVOVCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcihhcmd1bWVudE51bWJlcikpKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSByZXN1bHQubGVuZ3RoKCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gbnVsbDsKKy8vICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGFyZyAhPSBudWxsICYmIGFyZy5sZW5ndGgoKSA+IDApIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhcmcpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJdGVyYXRvcnMuYWRkKAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZywgRmllbGQuQVJHVU1FTlQsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKGFyZ3VtZW50TnVtYmVyKSkpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOworLy8gICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdWJGb3JtYXR0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gc3ViRm9ybWF0dGVyLmZvcm1hdChvYmopOworICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgbGFzdCA9IHJlc3VsdC5sZW5ndGgoKTsgLy8gVXNlbGVzcz8gW2FsYW5dCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJnKTsKKy8vIFRPRE8gRG8gbm90IHJlbW92ZSwgdGhpcyBpcyBKREsgQVBJIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorLy8gICAgICAgICAgICAgICAgICAgIGlmIChpID09IDAgJiYgZnAgIT0gbnVsbCAmJiBGaWVsZC5BUkdVTUVOVC5lcXVhbHMoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcC5nZXRGaWVsZEF0dHJpYnV0ZSgpKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBmcC5zZXRCZWdpbkluZGV4KGxhc3QpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBmcC5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworLy8gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGFzdCA9IHJlc3VsdC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZChwYXR0ZXJuLnN1YnN0cmluZyhsYXN0T2Zmc2V0LCBwYXR0ZXJuLmxlbmd0aCgpKSk7CisvLyBUT0RPIERvIG5vdCByZW1vdmUsIHRoaXMgaXMgSkRLIEFQSSB3ZSBuZWVkIHRvIGltcGxlbWVudC4KKy8vICAgICAgICBpZiAoY2hhcmFjdGVySXRlcmF0b3JzICE9IG51bGwgJiYgbGFzdCAhPSByZXN1bHQubGVuZ3RoKCkpIHsKKy8vICAgICAgICAgICAgY2hhcmFjdGVySXRlcmF0b3JzLmFkZChjcmVhdGVBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnN1YnN0cmluZyhsYXN0KSkpOworLy8gICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKy8vIFRPRE8gRG8gbm90IHJlbW92ZSwgdGhpcyBpcyBKREsgQVBJIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorLy8gICAgLyoqCisvLyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gYXBwZW5kIGFsbCB0aGUgY2hhcmFjdGVycyBpbgorLy8gICAgICogPGNvZGU+aXRlcmF0b3I8L2NvZGU+IHRvIHRoZSBTdHJpbmdCdWZmZXIgPGNvZGU+cmVzdWx0PC9jb2RlPi4KKy8vICAgICAqLworLy8gICAgcHJpdmF0ZSB2b2lkIGFwcGVuZChTdHJpbmdCdWZmZXIgcmVzdWx0LCBDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcikgeworLy8gICAgICAgIGlmIChpdGVyYXRvci5maXJzdCgpICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKy8vICAgICAgICAgICAgY2hhciBhQ2hhcjsKKy8vCisvLyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXRlcmF0b3IuZmlyc3QoKSk7CisvLyAgICAgICAgICAgIHdoaWxlICgoYUNoYXIgPSBpdGVyYXRvci5uZXh0KCkpICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKy8vICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYUNoYXIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdHlwZUxpc3QgPQorICAgICAgICB7IiIsICJudW1iZXIiLCAiZGF0ZSIsICJ0aW1lIiwgImNob2ljZSIsICJzcGVsbG91dCIsICJvcmRpbmFsIiwgImR1cmF0aW9uIn07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IAorICAgICAgICBUWVBFX0VNUFRZID0gMCwKKyAgICAgICAgVFlQRV9OVU1CRVIgPSAxLAorICAgICAgICBUWVBFX0RBVEUgPSAyLAorICAgICAgICBUWVBFX1RJTUUgPSAzLAorICAgICAgICBUWVBFX0NIT0lDRSA9IDQsCisgICAgICAgIFRZUEVfU1BFTExPVVQgPSA1LAorICAgICAgICBUWVBFX09SRElOQUwgPSA2LAorICAgICAgICBUWVBFX0RVUkFUSU9OID0gNzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIG1vZGlmaWVyTGlzdCA9CisgICAgICAgIHsiIiwgImN1cnJlbmN5IiwgInBlcmNlbnQiLCAiaW50ZWdlciJ9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludAorICAgICAgICBNT0RJRklFUl9FTVBUWSA9IDAsCisgICAgICAgIE1PRElGSUVSX0NVUlJFTkNZID0gMSwKKyAgICAgICAgTU9ESUZJRVJfUEVSQ0VOVCA9IDIsCisgICAgICAgIE1PRElGSUVSX0lOVEVHRVIgPSAzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gZGF0ZU1vZGlmaWVyTGlzdCA9CisgICAgICAgIHsiIiwgInNob3J0IiwgIm1lZGl1bSIsICJsb25nIiwgImZ1bGwifTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgREFURV9NT0RJRklFUl9FTVBUWSA9IDAsCisgICAgICAgIERBVEVfTU9ESUZJRVJfU0hPUlQgPSAxLAorICAgICAgICBEQVRFX01PRElGSUVSX01FRElVTSA9IDIsCisgICAgICAgIERBVEVfTU9ESUZJRVJfTE9ORyA9IDMsCisgICAgICAgIERBVEVfTU9ESUZJRVJfRlVMTCA9IDQ7CisKKyAgICBwcml2YXRlIHZvaWQgbWFrZUZvcm1hdChpbnQgcG9zaXRpb24sIGludCBvZmZzZXROdW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyW10gc2VnbWVudHMpCisgICAgeworICAgICAgICAvLyBnZXQgdGhlIGFyZ3VtZW50IG51bWJlcgorICAgICAgICBpbnQgYXJndW1lbnROdW1iZXI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhcmd1bWVudE51bWJlciA9IEludGVnZXIucGFyc2VJbnQoc2VnbWVudHNbMV0udG9TdHJpbmcoKSk7IC8vIGFsd2F5cyB1bmxvY2FsaXplZCEKKyAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbid0IHBhcnNlIGFyZ3VtZW50IG51bWJlciAiICsgc2VnbWVudHNbMV0pOworICAgICAgICB9CisgICAgICAgIGlmIChhcmd1bWVudE51bWJlciA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm5lZ2F0aXZlIGFyZ3VtZW50IG51bWJlciAiICsgYXJndW1lbnROdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVzaXplIGZvcm1hdCBpbmZvcm1hdGlvbiBhcnJheXMgaWYgbmVjZXNzYXJ5CisgICAgICAgIGlmIChvZmZzZXROdW1iZXIgPj0gZm9ybWF0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGludCBuZXdMZW5ndGggPSBmb3JtYXRzLmxlbmd0aCAqIDI7CisgICAgICAgICAgICBGb3JtYXRbXSBuZXdGb3JtYXRzID0gbmV3IEZvcm1hdFtuZXdMZW5ndGhdOworICAgICAgICAgICAgaW50W10gbmV3T2Zmc2V0cyA9IG5ldyBpbnRbbmV3TGVuZ3RoXTsKKyAgICAgICAgICAgIGludFtdIG5ld0FyZ3VtZW50TnVtYmVycyA9IG5ldyBpbnRbbmV3TGVuZ3RoXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZm9ybWF0cywgMCwgbmV3Rm9ybWF0cywgMCwgbWF4T2Zmc2V0ICsgMSk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9mZnNldHMsIDAsIG5ld09mZnNldHMsIDAsIG1heE9mZnNldCArIDEpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShhcmd1bWVudE51bWJlcnMsIDAsIG5ld0FyZ3VtZW50TnVtYmVycywgMCwgbWF4T2Zmc2V0ICsgMSk7CisgICAgICAgICAgICBmb3JtYXRzID0gbmV3Rm9ybWF0czsKKyAgICAgICAgICAgIG9mZnNldHMgPSBuZXdPZmZzZXRzOworICAgICAgICAgICAgYXJndW1lbnROdW1iZXJzID0gbmV3QXJndW1lbnROdW1iZXJzOworICAgICAgICB9CisgICAgICAgIGludCBvbGRNYXhPZmZzZXQgPSBtYXhPZmZzZXQ7CisgICAgICAgIG1heE9mZnNldCA9IG9mZnNldE51bWJlcjsKKyAgICAgICAgb2Zmc2V0c1tvZmZzZXROdW1iZXJdID0gc2VnbWVudHNbMF0ubGVuZ3RoKCk7CisgICAgICAgIGFyZ3VtZW50TnVtYmVyc1tvZmZzZXROdW1iZXJdID0gYXJndW1lbnROdW1iZXI7CisKKyAgICAgICAgLy8gbm93IGdldCB0aGUgZm9ybWF0CisgICAgICAgIEZvcm1hdCBuZXdGb3JtYXQgPSBudWxsOworICAgICAgICBzd2l0Y2ggKGZpbmRLZXl3b3JkKHNlZ21lbnRzWzJdLnRvU3RyaW5nKCksIHR5cGVMaXN0KSkgeworICAgICAgICBjYXNlIFRZUEVfRU1QVFk6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX05VTUJFUjoKKyAgICAgICAgICAgIHN3aXRjaCAoZmluZEtleXdvcmQoc2VnbWVudHNbM10udG9TdHJpbmcoKSwgbW9kaWZpZXJMaXN0KSkgeworICAgICAgICAgICAgY2FzZSBNT0RJRklFUl9FTVBUWToKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UodWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1PRElGSUVSX0NVUlJFTkNZOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBNT0RJRklFUl9QRVJDRU5UOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UodWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1PRElGSUVSX0lOVEVHRVI6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IC8vIHBhdHRlcm4KKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChzZWdtZW50c1szXS50b1N0cmluZygpLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHModWxvY2FsZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVFlQRV9EQVRFOgorICAgICAgICAgICAgc3dpdGNoIChmaW5kS2V5d29yZChzZWdtZW50c1szXS50b1N0cmluZygpLCBkYXRlTW9kaWZpZXJMaXN0KSkgeworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX0VNUFRZOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfU0hPUlQ6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfTUVESVVNOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfTE9ORzoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX0ZVTEw6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoc2VnbWVudHNbM10udG9TdHJpbmcoKSwgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX1RJTUU6CisgICAgICAgICAgICBzd2l0Y2ggKGZpbmRLZXl3b3JkKHNlZ21lbnRzWzNdLnRvU3RyaW5nKCksIGRhdGVNb2RpZmllckxpc3QpKSB7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfRU1QVFk6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9TSE9SVDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9NRURJVU06CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9MT05HOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfRlVMTDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChzZWdtZW50c1szXS50b1N0cmluZygpLCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfQ0hPSUNFOgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBuZXcgQ2hvaWNlRm9ybWF0KHNlZ21lbnRzWzNdLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBtYXhPZmZzZXQgPSBvbGRNYXhPZmZzZXQ7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNob2ljZSBQYXR0ZXJuIGluY29ycmVjdCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVFlQRV9TUEVMTE9VVDogCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHJibmYgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHVsb2NhbGUsIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzZXQgPSBzZWdtZW50c1szXS50b1N0cmluZygpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXNldC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICByYm5mLnNldERlZmF1bHRSdWxlU2V0KHJ1bGVzZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FybiBpbnZhbGlkIHJ1bGVzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSByYm5mOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfT1JESU5BTDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgcmJuZiA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodWxvY2FsZSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0Lk9SRElOQUwpOworICAgICAgICAgICAgICAgIFN0cmluZyBydWxlc2V0ID0gc2VnbWVudHNbM10udG9TdHJpbmcoKS50cmltKCk7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGVzZXQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmJuZi5zZXREZWZhdWx0UnVsZVNldChydWxlc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhcm4gaW52YWxpZCBydWxlc2V0CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gcmJuZjsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX0RVUkFUSU9OOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCByYm5mID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdCh1bG9jYWxlLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pOworICAgICAgICAgICAgICAgIFN0cmluZyBydWxlc2V0ID0gc2VnbWVudHNbM10udG9TdHJpbmcoKS50cmltKCk7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGVzZXQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmJuZi5zZXREZWZhdWx0UnVsZVNldChydWxlc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhcm4gaW52YWxpZCBydWxlc2V0CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gcmJuZjsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIG1heE9mZnNldCA9IG9sZE1heE9mZnNldDsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInVua25vd24gZm9ybWF0IHR5cGUgYXQgIik7CisgICAgICAgIH0KKyAgICAgICAgZm9ybWF0c1tvZmZzZXROdW1iZXJdID0gbmV3Rm9ybWF0OworICAgICAgICBzZWdtZW50c1sxXS5zZXRMZW5ndGgoMCk7ICAgLy8gdGhyb3cgYXdheSBvdGhlciBzZWdtZW50cworICAgICAgICBzZWdtZW50c1syXS5zZXRMZW5ndGgoMCk7CisgICAgICAgIHNlZ21lbnRzWzNdLnNldExlbmd0aCgwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZmluZEtleXdvcmQoU3RyaW5nIHMsIFN0cmluZ1tdIGxpc3QpIHsKKyAgICAgICAgcyA9IHMudHJpbSgpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHMuZXF1YWxzKGxpc3RbaV0pKQorICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGNvcHlBbmRGaXhRdW90ZXMoU3RyaW5nIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgZW5kLCBTdHJpbmdCdWZmZXIgdGFyZ2V0KSB7CisgICAgICAgIC8vIGFkZGVkICdnb3RMQicgbG9naWMgZnJvbSBJQ1U0QyAtIHF1ZXN0aW9uYWJsZSBbYWxhbl0KKyAgICAgICAgYm9vbGVhbiBnb3RMQiA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoY2ggPT0gJ3snKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgiJ3snIik7CisgICAgICAgICAgICAgICAgZ290TEIgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnfScpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ290TEIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgIGdvdExCID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgiJ30nIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgiJyciKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZnRlciByZWFkaW5nIGFuIG9iamVjdCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0sIGRvIGEgc2ltcGxlIHZlcmlmaWNhdGlvbgorICAgICAqIHRvIG1haW50YWluIGNsYXNzIGludmFyaWFudHMuCisgICAgICogQHRocm93cyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uIGlmIHRoZSBvYmplY3RzIHJlYWQgZnJvbSB0aGUgc3RyZWFtIGlzIGludmFsaWQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisgICAgICAgIGluLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisgICAgICAgIGJvb2xlYW4gaXNWYWxpZCA9IG1heE9mZnNldCA+PSAtMQorICAgICAgICAgICAgICAgICYmIGZvcm1hdHMubGVuZ3RoID4gbWF4T2Zmc2V0CisgICAgICAgICAgICAgICAgJiYgb2Zmc2V0cy5sZW5ndGggPiBtYXhPZmZzZXQKKyAgICAgICAgICAgICAgICAmJiBhcmd1bWVudE51bWJlcnMubGVuZ3RoID4gbWF4T2Zmc2V0OworICAgICAgICBpZiAoaXNWYWxpZCkgeworICAgICAgICAgICAgaW50IGxhc3RPZmZzZXQgPSBwYXR0ZXJuLmxlbmd0aCgpICsgMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBtYXhPZmZzZXQ7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgICAgICAgICAgaWYgKChvZmZzZXRzW2ldIDwgMCkgfHwgKG9mZnNldHNbaV0gPiBsYXN0T2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RPZmZzZXQgPSBvZmZzZXRzW2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzVmFsaWQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uKCJDb3VsZCBub3QgcmVjb25zdHJ1Y3QgTWVzc2FnZUZvcm1hdCBmcm9tIGNvcnJ1cHQgc3RyZWFtLiIpOworICAgICAgICB9CisgICAgICAgIGlmICh1bG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHVsb2NhbGUgPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTSU5HTEVfUVVPVEUgPSAnXCcnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1VSTFlfQlJBQ0VfTEVGVCA9ICd7JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENVUkxZX0JSQUNFX1JJR0hUID0gJ30nOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX0lOSVRJQUwgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFURV9TSU5HTEVfUVVPVEUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFURV9JTl9RVU9URSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX01TR19FTEVNRU5UID0gMzsKKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYW4gJ2Fwb3N0cm9waGUtZnJpZW5kbHknIHBhdHRlcm4gaW50byBhIHN0YW5kYXJkCisgICAgICogcGF0dGVybi4gIFN0YW5kYXJkIHBhdHRlcm5zIHRyZWF0IGFsbCBhcG9zdHJvcGhlcyBhcworICAgICAqIHF1b3Rlcywgd2hpY2ggaXMgcHJvYmxlbWF0aWMgaW4gc29tZSBsYW5ndWFnZXMsIGUuZy4gCisgICAgICogRnJlbmNoLCB3aGVyZSBhcG9zdHJvcGhlIGlzIGNvbW1vbmx5IHVzZWQuICBUaGlzIHV0aWxpdHkKKyAgICAgKiBhc3N1bWVzIHRoYXQgb25seSBhbiB1bnBhaXJlZCBhcG9zdHJvcGhlIGltbWVkaWF0ZWx5IGJlZm9yZQorICAgICAqIGEgYnJhY2UgaXMgYSB0cnVlIHF1b3RlLiAgT3RoZXIgdW5wYWlyZWQgYXBvc3Ryb3BoZXMgYXJlIHBhaXJlZCwKKyAgICAgKiBhbmQgdGhlIHJlc3VsdGluZyBzdGFuZGFyZCBwYXR0ZXJuIHN0cmluZyBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIDxwPjxiPk5vdGU8L2I+IGl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhlIHJldHVybmVkIHBhdHRlcm4KKyAgICAgKiBpcyBpbmRlZWQgYSB2YWxpZCBwYXR0ZXJuLiAgVGhlIG9ubHkgZWZmZWN0IGlzIHRvIGNvbnZlcnQKKyAgICAgKiBiZXR3ZWVuIHBhdHRlcm5zIGhhdmluZyBkaWZmZXJlbnQgcXVvdGluZyBzZW1hbnRpY3MuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgJ2Fwb3N0cm9waGUtZnJpZW5kbHknIHBhdHR0ZXJuIHRvIGNvbnZlcnQKKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFuZGFyZCBlcXVpdmFsZW50IG9mIHRoZSBvcmlnaW5hbCBwYXR0ZXJuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBhdXRvUXVvdGVBcG9zdHJvcGhlKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHBhdHRlcm4ubGVuZ3RoKCkqMik7CisgICAgICAgIGludCBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgIGludCBicmFjZUNvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDAsIGogPSBwYXR0ZXJuLmxlbmd0aCgpOyBpIDwgajsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgICAgIGNhc2UgU1RBVEVfSU5JVElBTDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9TSU5HTEVfUVVPVEU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9NU0dfRUxFTUVOVDsKKyAgICAgICAgICAgICAgICAgICAgKyticmFjZUNvdW50OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNUQVRFX1NJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX0xFRlQ6CisgICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9SSUdIVDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTl9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU1RBVEVfSU5fUVVPVEU6CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSBTSU5HTEVfUVVPVEU6CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTVEFURV9NU0dfRUxFTUVOVDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX0xFRlQ6CisgICAgICAgICAgICAgICAgICAgICsrYnJhY2VDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9SSUdIVDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKC0tYnJhY2VDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogLy8gTmV2ZXIgaGFwcGVucy4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gRW5kIG9mIHNjYW4KKyAgICAgICAgaWYgKHN0YXRlID09IFNUQVRFX1NJTkdMRV9RVU9URSB8fCBzdGF0ZSA9PSBTVEFURV9JTl9RVU9URSkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1Zik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYjUxODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlLmphdmEKQEAgLTAsMCArMSwxMzM3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CisKK2ltcG9ydCBqYXZhLnRleHQuKjsKKworLyoqCisgKiBBIGNsYXNzIHJlcHJlc250aW5nIGEgc2luZ2xlIHJ1bGUgaW4gYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQuICBBIHJ1bGUKKyAqIGluc2VydHMgaXRzIHRleHQgaW50byB0aGUgcmVzdWx0IHN0cmluZyBhbmQgdGhlbiBwYXNzZXMgY29udHJvbCB0byBpdHMKKyAqIHN1YnN0aXR1dGlvbnMsIHdoaWNoIGRvIHRoZSBzYW1lIHRoaW5nLgorICovCitmaW5hbCBjbGFzcyBORlJ1bGUgeworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgYmFzZSB2YWx1ZSB1c2VkIHRvIGlkZW50aWZ5IGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORUdBVElWRV9OVU1CRVJfUlVMRSA9IC0xOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCBiYXNlIHZhbHVlIHVzZWQgdG8gaWRlbnRpZnkgYW4gaW1wcm9wZXIgZnJhY3Rpb24gKHgueCkgcnVsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElNUFJPUEVSX0ZSQUNUSU9OX1JVTEUgPSAtMjsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgYmFzZSB2YWx1ZSB1c2VkIHRvIGlkZW50aWZ5IGEgcHJvcGVyIGZyYWN0aW9uICgwLngpIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUk9QRVJfRlJBQ1RJT05fUlVMRSA9IC0zOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCBiYXNlIHZhbHVlIHVzZWQgdG8gaWRlbnRpZnkgYSBtYXN0ZXIgcnVsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BU1RFUl9SVUxFID0gLTQ7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGJhc2VWYWx1ZTsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3MgcmFkaXggKHRoZSByYWRpeCB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uZW50IGVxdWFscworICAgICAqIHRoZSBydWxlJ3MgZGl2aXNvcikKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByYWRpeCA9IDEwOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUncyBleHBvbmVudCAodGhlIHJhZHggcmFzZWQgdG8gdGhlIHBvd2VyIG9mIHRoZSBleHBvbnNudAorICAgICAqIGVxdWFscyB0aGUgcnVsZSdzIGRpdmlzb3IpCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydCBleHBvbmVudCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIHJ1bGUgdGV4dC4gIFdoZW4gZm9ybWF0dGluZyBhIG51bWJlciwgdGhlIHJ1bGUncyB0ZXh0CisgICAgICogaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0IHN0cmluZywgYW5kIHRoZW4gdGhlIHRleHQgZnJvbSBhbnkKKyAgICAgKiBzdWJzdGl0dXRpb25zIGlzIGluc2VydGVkIGludG8gdGhlIHJlc3VsdCBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBydWxlVGV4dCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIGZpcnN0IHN1YnN0aXR1dGlvbiAodGhlIG9uZSB3aXRoIHRoZSBsb3dlciBvZmZzZXQKKyAgICAgKiBpbnRvIHRoZSBydWxlIHRleHQpCisgICAgICovCisgICAgcHJpdmF0ZSBORlN1YnN0aXR1dGlvbiBzdWIxID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3Mgc2Vjb25kIHN1YnN0aXR1dGlvbiAodGhlIG9uZSB3aXRoIHRoZSBoaWdoZXIgb2Zmc2V0CisgICAgICogaW50byB0aGUgcnVsZSB0ZXh0KQorICAgICAqLworICAgIHByaXZhdGUgTkZTdWJzdGl0dXRpb24gc3ViMiA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgb3ducyB0aGlzIHJ1bGUKKyAgICAgKi8KKyAgICBwcml2YXRlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBudWxsOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgb25lIG9yIG1vcmUgcnVsZXMgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBydWxlKHMpLgorICAgICAqIEBwYXJhbSBvd25lciBUaGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgbmV3IHJ1bGUocykuCisgICAgICogQHBhcmFtIHByZWRlY2Vzc29yIFRoZSBydWxlIHRoYXQgcHJlY2VkZXMgdGhlIG5ldyBvbmUocykgaW4gIm93bmVyIidzCisgICAgICogcnVsZSBsaXN0CisgICAgICogQHBhcmFtIG93bmVyc093bmVyIFRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBvd25zIHRoZQorICAgICAqIHJ1bGUgc2V0IHRoYXQgb3ducyB0aGUgbmV3IHJ1bGUocykKKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIE5GUnVsZSwgb3IgYW4gYXJyYXkgb2YgTkZSdWxlcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IG1ha2VSdWxlcyhTdHJpbmcgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCAgICAgICAgICAgICBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXJzT3duZXIpIHsKKyAgICAgICAgLy8gd2Uga25vdyB3ZSdyZSBtYWtpbmcgYXQgbGVhc3Qgb25lIHJ1bGUsIHNvIGdvIGFoZWFkIGFuZAorICAgICAgICAvLyBuZXcgaXQgdXAgYW5kIGluaXRpYWxpemUgaXRzIGJhc2V2YWx1ZSBhbmQgZGl2aXNvcgorICAgICAgICAvLyAodGhpcyBhbHNvIHN0cmlwcyB0aGUgcnVsZSBkZXNjcmlwdG9yLCBpZiBhbnksIG9mZiB0aGUKKyAgICAgICAgLy8gZGVzY3JpcHRvbiBzdHJpbmcpCisgICAgICAgIE5GUnVsZSBydWxlMSA9IG5ldyBORlJ1bGUob3duZXJzT3duZXIpOworICAgICAgICBkZXNjcmlwdGlvbiA9IHJ1bGUxLnBhcnNlUnVsZURlc2NyaXB0b3IoZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIGNoZWNrIHRoZSBkZXNjcmlwdGlvbiB0byBzZWUgd2hldGhlciB0aGVyZSdzIHRleHQgZW5jbG9zZWQKKyAgICAgICAgLy8gaW4gYnJhY2tldHMKKyAgICAgICAgaW50IGJyYWNrMSA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIlsiKTsKKyAgICAgICAgaW50IGJyYWNrMiA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIl0iKTsKKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gZG9lc24ndCBjb250YWluIGEgbWF0Y2hlZCBwYWlyIG9mIGJyYWNrZXRzLAorICAgICAgICAvLyBvciBpZiBpdCdzIG9mIGEgdHlwZSB0aGF0IGRvZXNuJ3QgcmVjb2duaXplIGJyYWNrZXRlZCB0ZXh0LAorICAgICAgICAvLyB0aGVuIGxlYXZlIHRoZSBkZXNjcmlwdGlvbiBhbG9uZSwgaW5pdGlhbGl6ZSB0aGUgcnVsZSdzCisgICAgICAgIC8vIHJ1bGUgdGV4dCBhbmQgc3Vic3RpdHV0aW9ucywgYW5kIHJldHVybiB0aGF0IHJ1bGUKKyAgICAgICAgaWYgKGJyYWNrMSA9PSAtMSB8fCBicmFjazIgPT0gLTEgfHwgYnJhY2sxID4gYnJhY2syCisgICAgICAgICAgICB8fCBydWxlMS5nZXRCYXNlVmFsdWUoKSA9PSBQUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgfHwgcnVsZTEuZ2V0QmFzZVZhbHVlKCkgPT0gTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgIHJ1bGUxLnJ1bGVUZXh0ID0gZGVzY3JpcHRpb247CisgICAgICAgICAgICBydWxlMS5leHRyYWN0U3Vic3RpdHV0aW9ucyhvd25lciwgcHJlZGVjZXNzb3IsIG93bmVyc093bmVyKTsKKyAgICAgICAgICAgIHJldHVybiBydWxlMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBkb2VzIGNvbnRhaW4gYSBtYXRjaGVkIHBhaXIgb2YgYnJhY2tldHMsCisgICAgICAgICAgICAvLyB0aGVuIGl0J3MgcmVhbGx5IHNob3J0aGFuZCBmb3IgdHdvIHJ1bGVzICh3aXRoIG9uZSBleGNlcHRpb24pCisgICAgICAgICAgICBORlJ1bGUgcnVsZTIgPSBudWxsOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgICAgIC8vIHdlJ2xsIGFjdHVhbGx5IG9ubHkgc3BsaXQgdGhlIHJ1bGUgaW50byB0d28gcnVsZXMgaWYgaXRzCisgICAgICAgICAgICAvLyBiYXNlIHZhbHVlIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgaXRzIGRpdmlzb3IgKG9yIGl0J3Mgb25lCisgICAgICAgICAgICAvLyBvZiB0aGUgc3BlY2lhbCBydWxlcykKKyAgICAgICAgICAgIGlmICgocnVsZTEuYmFzZVZhbHVlID4gMAorICAgICAgICAgICAgICAgICAmJiBydWxlMS5iYXNlVmFsdWUgJSAoTWF0aC5wb3cocnVsZTEucmFkaXgsIHJ1bGUxLmV4cG9uZW50KSkgPT0gMCkKKyAgICAgICAgICAgICAgICB8fCBydWxlMS5iYXNlVmFsdWUgPT0gSU1QUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgICAgIHx8IHJ1bGUxLmJhc2VWYWx1ZSA9PSBNQVNURVJfUlVMRSkgeworCisgICAgICAgICAgICAgICAgLy8gaWYgaXQgcGFzc2VzIHRoYXQgdGVzdCwgbmV3IHVwIHRoZSBzZWNvbmQgcnVsZS4gIElmIHRoZQorICAgICAgICAgICAgICAgIC8vIHJ1bGUgc2V0IGJvdGggcnVsZXMgd2lsbCBiZWxvbmcgdG8gaXMgYSBmcmFjdGlvbiBydWxlCisgICAgICAgICAgICAgICAgLy8gc2V0LCB0aGV5IGJvdGggaGF2ZSB0aGUgc2FtZSBiYXNlIHZhbHVlOyBvdGhlcndpc2UsCisgICAgICAgICAgICAgICAgLy8gaW5jcmVtZW50IHRoZSBvcmlnaW5hbCBydWxlJ3MgYmFzZSB2YWx1ZSAoInJ1bGUxIiBhY3R1YWxseQorICAgICAgICAgICAgICAgIC8vIGdvZXMgU0VDT05EIGluIHRoZSBydWxlIHNldCdzIHJ1bGUgbGlzdCkKKyAgICAgICAgICAgICAgICBydWxlMiA9IG5ldyBORlJ1bGUob3duZXJzT3duZXIpOworICAgICAgICAgICAgICAgIGlmIChydWxlMS5iYXNlVmFsdWUgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBydWxlMi5iYXNlVmFsdWUgPSBydWxlMS5iYXNlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIGlmICghb3duZXIuaXNGcmFjdGlvblNldCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK3J1bGUxLmJhc2VWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdhbiB3aXRoICJ4LngiIGFuZCBjb250YWlucyBicmFja2V0ZWQKKyAgICAgICAgICAgICAgICAvLyB0ZXh0LCBpdCBkZXNjcmliZXMgYm90aCB0aGUgaW1wcm9wZXIgZnJhY3Rpb24gcnVsZSBhbmQKKyAgICAgICAgICAgICAgICAvLyB0aGUgcHJvcGVyIGZyYWN0aW9uIHJ1bGUKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChydWxlMS5iYXNlVmFsdWUgPT0gSU1QUk9QRVJfRlJBQ1RJT05fUlVMRSkgeworICAgICAgICAgICAgICAgICAgICBydWxlMi5iYXNlVmFsdWUgPSBQUk9QRVJfRlJBQ1RJT05fUlVMRTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnYW4gd2l0aCAieC4wIiBhbmQgY29udGFpbnMgYnJhY2tldGVkCisgICAgICAgICAgICAgICAgLy8gdGV4dCwgaXQgZGVzY3JpYmVzIGJvdGggdGhlIG1hc3RlciBydWxlIGFuZCB0aGUKKyAgICAgICAgICAgICAgICAvLyBpbXByb3BlciBmcmFjdGlvbiBydWxlCisgICAgICAgICAgICAgICAgZWxzZSBpZiAocnVsZTEuYmFzZVZhbHVlID09IE1BU1RFUl9SVUxFKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUyLmJhc2VWYWx1ZSA9IHJ1bGUxLmJhc2VWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgcnVsZTEuYmFzZVZhbHVlID0gSU1QUk9QRVJfRlJBQ1RJT05fUlVMRTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBib3RoIHJ1bGVzIGhhdmUgdGhlIHNhbWUgcmFkaXggYW5kIGV4cG9uZW50IChpLmUuLCB0aGUKKyAgICAgICAgICAgICAgICAvLyBzYW1lIGRpdmlzb3IpCisgICAgICAgICAgICAgICAgcnVsZTIucmFkaXggPSBydWxlMS5yYWRpeDsKKyAgICAgICAgICAgICAgICBydWxlMi5leHBvbmVudCA9IHJ1bGUxLmV4cG9uZW50OworCisgICAgICAgICAgICAgICAgLy8gcnVsZTIncyBydWxlIHRleHQgb21pdHMgdGhlIHN0dWZmIGluIGJyYWNrZXRzOiBpbml0YWxpemUKKyAgICAgICAgICAgICAgICAvLyBpdHMgcnVsZSB0ZXh0IGFuZCBzdWJzdGl0dXRpb25zIGFjY29yZGluZ2x5CisgICAgICAgICAgICAgICAgc2J1Zi5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIGJyYWNrMSkpOworICAgICAgICAgICAgICAgIGlmIChicmFjazIgKyAxIDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2J1Zi5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKGJyYWNrMiArIDEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcnVsZTIucnVsZVRleHQgPSBzYnVmLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgcnVsZTIuZXh0cmFjdFN1YnN0aXR1dGlvbnMob3duZXIsIHByZWRlY2Vzc29yLCBvd25lcnNPd25lcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHJ1bGUxJ3MgdGV4dCBpbmNsdWRlcyB0aGUgdGV4dCBpbiB0aGUgYnJhY2tldHMgYnV0IG9taXRzCisgICAgICAgICAgICAvLyB0aGUgYnJhY2tldHMgdGhlbXNlbHZlczogaW5pdGlhbGl6ZSBfaXRzXyBydWxlIHRleHQgYW5kCisgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb25zIGFjY29yZGluZ2x5CisgICAgICAgICAgICBzYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIHNidWYuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCBicmFjazEpKTsKKyAgICAgICAgICAgIHNidWYuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhicmFjazEgKyAxLCBicmFjazIpKTsKKyAgICAgICAgICAgIGlmIChicmFjazIgKyAxIDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBzYnVmLmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoYnJhY2syICsgMSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZTEucnVsZVRleHQgPSBzYnVmLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBydWxlMS5leHRyYWN0U3Vic3RpdHV0aW9ucyhvd25lciwgcHJlZGVjZXNzb3IsIG93bmVyc093bmVyKTsKKworICAgICAgICAgICAgLy8gaWYgd2Ugb25seSBoYXZlIG9uZSBydWxlLCByZXR1cm4gaXQ7IGlmIHdlIGhhdmUgdHdvLCByZXR1cm4KKyAgICAgICAgICAgIC8vIGEgdHdvLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyB0aGVtIChub3RpY2UgdGhhdCBydWxlMiBnb2VzCisgICAgICAgICAgICAvLyBCRUZPUkUgcnVsZTEgaW4gdGhlIGxpc3Q6IGluIGFsbCBjYXNlcywgcnVsZTIgT01JVFMgdGhlCisgICAgICAgICAgICAvLyBtYXRlcmlhbCBpbiB0aGUgYnJhY2tldHMgYW5kIHJ1bGUxIElOQ0xVREVTIHRoZSBtYXRlcmlhbAorICAgICAgICAgICAgLy8gaW4gdGhlIGJyYWNrZXRzKQorICAgICAgICAgICAgaWYgKHJ1bGUyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVsZTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTkZSdWxlW10geyBydWxlMiwgcnVsZTEgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE5vbWluYWwgY29uc3RydWN0b3IgZm9yIE5GUnVsZS4gIE1vc3Qgb2YgdGhlIHdvcmsgb2YgY29uc3RydWN0aW5nCisgICAgICogYW4gTkZSdWxlIGlzIGFjdHVhbGx5IHBlcmZvcm1lZCBieSBtYWtlUnVsZXMoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTkZSdWxlKFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIpIHsKKyAgICAgICAgdGhpcy5mb3JtYXR0ZXIgPSBmb3JtYXR0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhlIHJ1bGUncyBydWxlIGRlc2NyaXB0b3IgKGkuZS4sIHRoZSBiYXNlCisgICAgICogdmFsdWUgYW5kL29yIG90aGVyIHRva2VucyB0aGF0IHByZWNlZGUgdGhlIHJ1bGUncyBydWxlIHRleHQKKyAgICAgKiBpbiB0aGUgZGVzY3JpcHRpb24pIGFuZCBzZXRzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSwgcmFkaXgsIGFuZAorICAgICAqIGV4cG9uZW50IGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRvci4gIChJZiB0aGUgZGVzY3JpcHRpb24gZG9lc24ndAorICAgICAqIGluY2x1ZGUgYSBydWxlIGRlc2NyaXB0b3IsIHRoZW4gdGhpcyBmdW5jdGlvbiBzZXRzIGV2ZXJ5dGhpbmcgdG8KKyAgICAgKiBkZWZhdWx0IHZhbHVlcyBhbmQgdGhlIHJ1bGUgc2V0IHNldHMgdGhlIHJ1bGUncyByZWFsIGJhc2UgdmFsdWUpLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgcnVsZSdzIGRlc2NyaXB0aW9uCisgICAgICogQHJldHVybiBJZiAiZGVzY3JpcHRpb24iIGluY2x1ZGVkIGEgcnVsZSBkZXNjcmlwdG9yLCB0aGlzIGlzCisgICAgICogImRlc2NyaXB0aW9uIiB3aXRoIHRoZSBkZXNjcmlwdG9yIGFuZCBhbnkgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAqIHN0cmlwcGVkIG9mZi4gIE90aGVyd2lzZTsgaXQncyAiZGVzY3JpcHRvciIgdW5jaGFuZ2QuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFyc2VSdWxlRGVzY3JpcHRvcihTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgU3RyaW5nIGRlc2NyaXB0b3I7CisKKyAgICAgICAgLy8gdGhlIGRlc2NyaXB0aW9uIGNvbnNpc3RzIG9mIGEgcnVsZSBkZXNjcmlwdG9yIGFuZCBhIHJ1bGUgYm9keSwKKyAgICAgICAgLy8gc2VwYXJhdGVkIGJ5IGEgY29sb24uICBUaGUgcnVsZSBkZXNjcmlwdG9yIGlzIG9wdGlvbmFsLiAgSWYKKyAgICAgICAgLy8gaXQncyBvbWl0dGVkLCBqdXN0IHNldCB0aGUgYmFzZSB2YWx1ZSB0byAwLgorICAgICAgICBpbnQgcCA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIjoiKTsKKyAgICAgICAgaWYgKHAgPT0gLTEpIHsKKyAgICAgICAgICAgIHNldEJhc2VWYWx1ZSgwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGRlc2NyaXB0b3Igb3V0IGludG8gaXRzIG93biBzdHJpbmcgYW5kIHN0cmlwIGl0LAorICAgICAgICAgICAgLy8gYWxvbmcgd2l0aCBhbnkgdHJhaWxpbmcgd2hpdGVzcGFjZSwgb3V0IG9mIHRoZSBvcmlnaW5hbAorICAgICAgICAgICAgLy8gZGVzY3JpcHRpb24KKyAgICAgICAgICAgIGRlc2NyaXB0b3IgPSBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgcCk7CisgICAgICAgICAgICArK3A7CisgICAgICAgICAgICB3aGlsZSAocCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpICYmIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGRlc2NyaXB0aW9uLmNoYXJBdChwKSkpCisgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5zdWJzdHJpbmcocCk7CisKKyAgICAgICAgICAgIC8vIGNoZWNrIGZpcnN0IHRvIHNlZSBpZiB0aGUgcnVsZSBkZXNjcmlwdG9yIG1hdGNoZXMgdGhlIHRva2VuCisgICAgICAgICAgICAvLyBmb3Igb25lIG9mIHRoZSBzcGVjaWFsIHJ1bGVzLiAgSWYgaXQgZG9lcywgc2V0IHRoZSBiYXNlCisgICAgICAgICAgICAvLyB2YWx1ZSB0byB0aGUgY29ycmVjdCBpZGVudGZpZXIgdmFsdWUKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmVxdWFscygiLXgiKSkgeworICAgICAgICAgICAgICAgIHNldEJhc2VWYWx1ZShORUdBVElWRV9OVU1CRVJfUlVMRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yLmVxdWFscygieC54IikpIHsKKyAgICAgICAgICAgICAgICBzZXRCYXNlVmFsdWUoSU1QUk9QRVJfRlJBQ1RJT05fUlVMRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yLmVxdWFscygiMC54IikpIHsKKyAgICAgICAgICAgICAgICBzZXRCYXNlVmFsdWUoUFJPUEVSX0ZSQUNUSU9OX1JVTEUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRvci5lcXVhbHMoInguMCIpKSB7CisgICAgICAgICAgICAgICAgc2V0QmFzZVZhbHVlKE1BU1RFUl9SVUxFKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgZGVzY3JpcHRvciBiZWdpbnMgd2l0aCBhIGRpZ2l0LCBpdCdzIGEgZGVzY3JpcHRvcgorICAgICAgICAgICAgLy8gZm9yIGEgbm9ybWFsIHJ1bGUKKyAgICAgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0b3IuY2hhckF0KDApID49ICcwJyAmJiBkZXNjcmlwdG9yLmNoYXJBdCgwKSA8PSAnOScpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcFZhbHVlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIHAgPSAwOworICAgICAgICAgICAgICAgIGNoYXIgYyA9ICcgJzsKKworICAgICAgICAgICAgICAgIC8vIGJlZ2luIHBhcnNpbmcgdGhlIGRlc2NyaXB0b3I6IGNvcHkgZGlnaXRzCisgICAgICAgICAgICAgICAgLy8gaW50byAidGVtcFZhbHVlIiwgc2tpcCBwZXJpb2RzLCBjb21tYXMsIGFuZCBzcGFjZXMsCisgICAgICAgICAgICAgICAgLy8gc3RvcCBvbiBhIHNsYXNoIG9yID4gc2lnbiAob3IgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nKSwKKyAgICAgICAgICAgICAgICAvLyBhbmQgdGhyb3cgYW4gZXhjZXB0aW9uIG9uIGFueSBvdGhlciBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICB3aGlsZSAocCA8IGRlc2NyaXB0b3IubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IGRlc2NyaXB0b3IuY2hhckF0KHApOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBWYWx1ZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnLycgfHwgYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpIHx8IGMgPT0gJywnIHx8IGMgPT0gJy4nKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNoYXJhY3RlciBpbiBydWxlIGRlc2NyaXB0b3IiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdGVtcFZhbHVlIG5vdyBjb250YWlucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBydWxlJ3MgYmFzZSB2YWx1ZSB3aXRoIHRoZSBwdW5jdHVhdGlvbiBzdHJpcHBlZCBvdXQuCisgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSBhY2NvcmRpbmdseQorICAgICAgICAgICAgICAgIHNldEJhc2VWYWx1ZShMb25nLnBhcnNlTG9uZyh0ZW1wVmFsdWUudG9TdHJpbmcoKSkpOworCisgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RvcHBlZCB0aGUgcHJldmlvdXMgbG9vcCBvbiBhIHNsYXNoLCB3ZSdyZQorICAgICAgICAgICAgICAgIC8vIG5vdyBwYXJzaW5nIHRoZSBydWxlJ3MgcmFkaXguICBBZ2FpbiwgYWNjdW11bGF0ZSBkaWdpdHMKKyAgICAgICAgICAgICAgICAvLyBpbiB0ZW1wVmFsdWUsIHNraXAgcHVuY3R1YXRpb24sIHN0b3Agb24gYSA+IG1hcmssIGFuZAorICAgICAgICAgICAgICAgIC8vIHRocm93IGFuIGV4Y2VwdGlvbiBvbiBhbnl0aGluZyBlbHNlCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy8nKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBWYWx1ZS5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHAgPCBkZXNjcmlwdG9yLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gZGVzY3JpcHRvci5jaGFyQXQocCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVmFsdWUuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpIHx8IGMgPT0gJywnIHx8IGMgPT0gJy4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNoYXJhY3RlciBpcyBydWxlIGRlc2NyaXB0b3IiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIHRlbXBWYWx1ZSBub3cgY29udGFpbidzIHRoZSBydWxlJ3MgcmFkaXguICBTZXQgaXQKKyAgICAgICAgICAgICAgICAgICAgLy8gYWNjb3JkaW5nbHksIGFuZCByZWNhbGN1bGF0ZSB0aGUgcnVsZSdzIGV4cG9uZW50CisgICAgICAgICAgICAgICAgICAgIHJhZGl4ID0gSW50ZWdlci5wYXJzZUludCh0ZW1wVmFsdWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyYWRpeCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSdWxlIGNhbid0IGhhdmUgcmFkaXggb2YgMCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gZXhwZWN0ZWRFeHBvbmVudCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0b3BwZWQgdGhlIHByZXZpb3VzIGxvb3Agb24gYSA+IHNpZ24sIHRoZW4gY29udGludWUKKyAgICAgICAgICAgICAgICAvLyBmb3IgYXMgbG9uZyBhcyB3ZSBzdGlsbCBzZWUgPiBzaWducy4gIEZvciBlYWNoIG9uZSwKKyAgICAgICAgICAgICAgICAvLyBkZWNyZW1lbnQgdGhlIGV4cG9uZW50ICh1bmxlc3MgdGhlIGV4cG9uZW50IGlzIGFscmVhZHkgMCkuCisgICAgICAgICAgICAgICAgLy8gSWYgd2Ugc2VlIGFub3RoZXIgY2hhcmFjdGVyIGJlZm9yZSByZWFjaGluZyB0aGUgZW5kIG9mCisgICAgICAgICAgICAgICAgLy8gdGhlIGRlc2NyaXB0b3IsIHRoYXQncyBhbHNvIGEgc3ludGF4IGVycm9yLgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocCA8IGRlc2NyaXB0b3IubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBkZXNjcmlwdG9yLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICc+JyAmJiBleHBvbmVudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWV4cG9uZW50OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNoYXJhY3RlciBpbiBydWxlIGRlc2NyaXB0b3IiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsbHksIGlmIHRoZSBydWxlIGJvZHkgYmVnaW5zIHdpdGggYW4gYXBvc3Ryb3BoZSwgc3RyaXAgaXQgb2ZmCisgICAgICAgIC8vICh0aGlzIGlzIGdlbmVyYWxseSB1c2VkIHRvIHB1dCB3aGl0ZXNwYWNlIGF0IHRoZSBiZWdpbm5pbmcgb2YKKyAgICAgICAgLy8gYSBydWxlJ3MgcnVsZSB0ZXh0KQorICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgPiAwICYmIGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSAnXCcnKSB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiB0aGUgZGVzY3JpcHRpb24gd2l0aCBhbGwgdGhlIHN0dWZmIHdlJ3ZlIGp1c3Qgd2FkZWQgdGhyb3VnaAorICAgICAgICAvLyBzdHJpcHBlZCBvZmYgdGhlIGZyb250LiAgSXQgbm93IGNvbnRhaW5zIGp1c3QgdGhlIHJ1bGUgYm9keS4KKyAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaGVzIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciB0aGUgc3Vic3RpdHV0aW9uIHRva2VucywKKyAgICAgKiBjcmVhdGVzIHRoZSBzdWJzdGl0dXRpb25zLCBhbmQgcmVtb3ZlcyB0aGUgc3Vic3RpdHV0aW9uIHRva2VucworICAgICAqIGZyb20gdGhlIHJ1bGUncyBydWxlIHRleHQuCisgICAgICogQHBhcmFtIG93bmVyIFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoaXMgcnVsZQorICAgICAqIEBwYXJhbSBwcmVkZWNlc3NvciBUaGUgcnVsZSBwcmVzZWRpbmcgdGhpcyBvbmUgaW4gIm93bmVycyIgcnVsZSBsaXN0CisgICAgICogQHBhcmFtIG93bmVyc093bmVyIFRoZSBSdWxlQmFzZWRGb3JtYXQgdGhhdCBvd25zIHRoaXMgcnVsZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBleHRyYWN0U3Vic3RpdHV0aW9ucyhORlJ1bGVTZXQgICAgICAgICAgICAgb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZSAgICAgICAgICAgICAgICBwcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IG93bmVyc093bmVyKSB7CisgICAgICAgIHN1YjEgPSBleHRyYWN0U3Vic3RpdHV0aW9uKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworICAgICAgICBzdWIyID0gZXh0cmFjdFN1YnN0aXR1dGlvbihvd25lciwgcHJlZGVjZXNzb3IsIG93bmVyc093bmVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2hlcyB0aGUgcnVsZSdzIHJ1bGUgdGV4dCBmb3IgdGhlIGZpcnN0IHN1YnN0aXR1dGlvbiB0b2tlbiwKKyAgICAgKiBjcmVhdGVzIGEgc3Vic3RpdHV0aW9uIGJhc2VkIG9uIGl0LCBhbmQgcmVtb3ZlcyB0aGUgdG9rZW4gZnJvbQorICAgICAqIHRoZSBydWxlJ3MgcnVsZSB0ZXh0LgorICAgICAqIEBwYXJhbSBvd25lciBUaGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGlzIHJ1bGUKKyAgICAgKiBAcGFyYW0gcHJlZGVjZXNzb3IgVGhlIHJ1bGUgcHJlY2VkaW5nIHRoaXMgb25lIGluIHRoZSBydWxlIHNldCdzCisgICAgICogcnVsZSBsaXN0CisgICAgICogQHBhcmFtIG93bmVyc093bmVyIFRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBvd25zIHRoaXMgcnVsZQorICAgICAqIEByZXR1cm4gVGhlIG5ld2x5LWNyZWF0ZWQgc3Vic3RpdHV0aW9uLiAgVGhpcyBpcyBuZXZlciBudWxsOyBpZgorICAgICAqIHRoZSBydWxlIHRleHQgZG9lc24ndCBjb250YWluIGFueSBzdWJzdGl0dXRpb24gdG9rZW5zLCB0aGlzIHdpbGwKKyAgICAgKiBiZSBhIE51bGxTdWJzdGl0dXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBORlN1YnN0aXR1dGlvbiBleHRyYWN0U3Vic3RpdHV0aW9uKE5GUnVsZVNldCAgICAgICAgICAgICBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXJzT3duZXIpIHsKKyAgICAgICAgTkZTdWJzdGl0dXRpb24gcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaW50IHN1YlN0YXJ0OworICAgICAgICBpbnQgc3ViRW5kOworCisgICAgICAgIC8vIHNlYXJjaCB0aGUgcnVsZSdzIHJ1bGUgdGV4dCBmb3IgdGhlIGZpcnN0IHR3byBjaGFyYWN0ZXJzIG9mCisgICAgICAgIC8vIGEgc3Vic3RpdHV0aW9uIHRva2VuCisgICAgICAgIHN1YlN0YXJ0ID0gaW5kZXhPZkFueShuZXcgU3RyaW5nW10geyAiPDwiLCAiPCUiLCAiPCMiLCAiPDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj4+IiwgIj4lIiwgIj4jIiwgIj4wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9JSIsICI9IyIsICI9MCIgfSApOworCisgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIG9uZSwgY3JlYXRlIGEgbnVsbCBzdWJzdGl0dXRpb24gcG9zaXRpb25lZAorICAgICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBydWxlIHRleHQKKyAgICAgICAgaWYgKHN1YlN0YXJ0ID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gTkZTdWJzdGl0dXRpb24ubWFrZVN1YnN0aXR1dGlvbihydWxlVGV4dC5sZW5ndGgoKSwgdGhpcywgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lciwgb3duZXJzT3duZXIsICIiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNwZWNpYWwtY2FzZSB0aGUgIj4+PiIgdG9rZW4sIHNpbmNlIHNlYXJjaGluZyBmb3IgdGhlID4gYXQgdGhlCisgICAgICAgIC8vIGVuZCB3aWxsIGFjdHVhbGx5IGZpbmQgdGhlID4gaW4gdGhlIG1pZGRsZQorICAgICAgICBpZiAocnVsZVRleHQuc3Vic3RyaW5nKHN1YlN0YXJ0KS5zdGFydHNXaXRoKCI+Pj4iKSkgeworICAgICAgICAgICAgc3ViRW5kID0gc3ViU3RhcnQgKyAyOworCisgICAgICAgICAgICAvLyBvdGhlcndpc2UgdGhlIHN1YnN0aXR1dGlvbiB0b2tlbiBlbmRzIHdpdGggdGhlIHNhbWUgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBpdCBiZWdhbiB3aXRoCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjaGFyIGMgPSBydWxlVGV4dC5jaGFyQXQoc3ViU3RhcnQpOworICAgICAgICAgICAgc3ViRW5kID0gcnVsZVRleHQuaW5kZXhPZihjLCBzdWJTdGFydCArIDEpOworICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvciAnPCVmb288PCcKKyAgICAgICAgICAgIGlmIChjID09ICc8JyAmJiBzdWJFbmQgIT0gLTEgJiYgc3ViRW5kIDwgcnVsZVRleHQubGVuZ3RoKCkgLSAxICYmIHJ1bGVUZXh0LmNoYXJBdChzdWJFbmQrMSkgPT0gYykgeworICAgICAgICAgICAgICAgIC8vIG9yZGluYWxzIHVzZSAiPSMsIyMwPT0lYWJicmV2PSIgYXMgdGhlaXIgcnVsZS4gIE5vdGljZSB0aGF0IHRoZSAnPT0nIGluIHRoZSBtaWRkbGUKKyAgICAgICAgICAgICAgICAvLyBvY2N1cnMgYmVjYXVzZSBvZiB0aGUganV4dGFwb3NpdGlvbiBvZiB0d28gZGlmZmVyZW50IHJ1bGVzLiAgVGhlIGNoZWNrIGZvciAnPCcgaXMgYSBoYWNrCisgICAgICAgICAgICAgICAgLy8gdG8gZ2V0IGFyb3VuZCB0aGlzLiAgSGF2aW5nIHRoZSBkdXBsaWNhdGUgYXQgdGhlIGZyb250IHdvdWxkIGNhdXNlIHByb2JsZW1zIHdpdGgKKyAgICAgICAgICAgICAgICAvLyBydWxlcyBsaWtlICI8PCUiIHRvIGZvcm1hdCwgc2F5LCBwZXJjZW50cy4uLgorICAgICAgICAgICAgICAgICsrc3ViRW5kOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgd2UgZG9uJ3QgZmluZCB0aGUgZW5kIG9mIHRoZSB0b2tlbiAoaS5lLiwgaWYgd2UncmUgb24gYSBzaW5nbGUsCisgICAgICAgIC8vIHVubWF0Y2hlZCB0b2tlbiBjaGFyYWN0ZXIpLCBjcmVhdGUgYSBudWxsIHN1YnN0aXR1dGlvbiBwb3NpdGlvbmVkCisgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIHJ1bGUKKyAgICAgICAgaWYgKHN1YkVuZCA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIE5GU3Vic3RpdHV0aW9uLm1ha2VTdWJzdGl0dXRpb24ocnVsZVRleHQubGVuZ3RoKCksIHRoaXMsIHByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXIsIG93bmVyc093bmVyLCAiIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBnZXQgaGVyZSwgd2UgaGF2ZSBhIHJlYWwgc3Vic3RpdHV0aW9uIHRva2VuIChvciBhdCBsZWFzdAorICAgICAgICAvLyBzb21lIHRleHQgYm91bmRlZCBieSBzdWJzdGl0dXRpb24gdG9rZW4gY2hhcmFjdGVycykuICBVc2UKKyAgICAgICAgLy8gbWFrZVN1YnN0aXR1dGlvbigpIHRvIGNyZWF0ZSB0aGUgcmlnaHQga2luZCBvZiBzdWJzdGl0dXRpb24KKyAgICAgICAgcmVzdWx0ID0gTkZTdWJzdGl0dXRpb24ubWFrZVN1YnN0aXR1dGlvbihzdWJTdGFydCwgdGhpcywgcHJlZGVjZXNzb3IsIG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyc093bmVyLCBydWxlVGV4dC5zdWJzdHJpbmcoc3ViU3RhcnQsIHN1YkVuZCArIDEpKTsKKworICAgICAgICAvLyByZW1vdmUgdGhlIHN1YnN0aXR1dGlvbiBmcm9tIHRoZSBydWxlIHRleHQKKyAgICAgICAgcnVsZVRleHQgPSBydWxlVGV4dC5zdWJzdHJpbmcoMCwgc3ViU3RhcnQpICsgcnVsZVRleHQuc3Vic3RyaW5nKHN1YkVuZCArIDEpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLCBhbmQgY2F1c2VzIHRoZSByYWRpeCBhbmQgZXhwb25lbnQKKyAgICAgKiB0byBiZSByZWNhbGN1bGF0ZWQuICBUaGlzIGlzIHVzZWQgZHVyaW5nIGNvbnN0cnVjdGlvbiB3aGVuIHdlCisgICAgICogZG9uJ3Qga25vdyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgdW50aWwgYWZ0ZXIgaXQncyBiZWVuCisgICAgICogY29uc3RydWN0ZWQuICBJdCBzaG91bGQgbm90IGJlIHVzZWQgYXQgYW55IG90aGVyIHRpbWUuCisgICAgICogQHBhcmFtIG5ld0Jhc2VWYWx1ZSBUaGUgbmV3IGJhc2UgdmFsdWUgZm9yIHRoZSBydWxlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldEJhc2VWYWx1ZShsb25nIG5ld0Jhc2VWYWx1ZSkgeworICAgICAgICAvLyBzZXQgdGhlIGJhc2UgdmFsdWUKKyAgICAgICAgYmFzZVZhbHVlID0gbmV3QmFzZVZhbHVlOworCisgICAgICAgIC8vIGlmIHRoaXMgaXNuJ3QgYSBzcGVjaWFsIHJ1bGUsIHJlY2FsY3VsYXRlIHRoZSByYWRpeCBhbmQgZXhwb25lbnQKKyAgICAgICAgLy8gKHRoZSByYWRpeCBhbHdheXMgZGVmYXVsdHMgdG8gMTA7IGlmIGl0J3Mgc3VwcG9zZWQgdG8gYmUgc29tZXRoaW5nCisgICAgICAgIC8vIGVsc2UsIGl0J3MgY2xlYW5lZCB1cCBieSB0aGUgY2FsbGVyIGFuZCB0aGUgZXhwb25lbnQgaXMKKyAgICAgICAgLy8gcmVjYWxjdWxhdGVkIGFnYWluLS0gdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBkb2VzIHRoaXMgaXMKKyAgICAgICAgLy8gTkZSdWxlLnBhcnNlUnVsZURlc2NyaXB0b3IoKSApCisgICAgICAgIGlmIChiYXNlVmFsdWUgPj0gMSkgeworICAgICAgICAgICAgcmFkaXggPSAxMDsKKyAgICAgICAgICAgIGV4cG9uZW50ID0gZXhwZWN0ZWRFeHBvbmVudCgpOworCisgICAgICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIG9uIGEgZnVsbHktY29uc3RydWN0ZWQgcnVsZSB3aG9zZQorICAgICAgICAgICAgLy8gZGVzY3JpcHRpb24gZGlkbid0IHNwZWNpZnkgYSBiYXNlIHZhbHVlLiAgVGhpcyBtZWFucyBpdAorICAgICAgICAgICAgLy8gaGFzIHN1YnN0aXR1dGlvbnMsIGFuZCBzb21lIHN1YnN0aXR1dGlvbnMgaG9sZCBvbiB0byBjb3BpZXMKKyAgICAgICAgICAgIC8vIG9mIHRoZSBydWxlJ3MgZGl2aXNvci4gIEZpeCB0aGVpciBjb3BpZXMgb2YgdGhlIGRpdmlzb3IuCisgICAgICAgICAgICBpZiAoc3ViMSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ViMS5zZXREaXZpc29yKHJhZGl4LCBleHBvbmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3ViMiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ViMi5zZXREaXZpc29yKHJhZGl4LCBleHBvbmVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBzcGVjaWFsIHJ1bGUsIGl0cyByYWRpeCBhbmQgZXhwb25lbnQgYXJlIGJhc2ljYWxseQorICAgICAgICAgICAgLy8gaWdub3JlZC4gIFNldCB0aGVtIHRvICJzYWZlIiBkZWZhdWx0IHZhbHVlcworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmFkaXggPSAxMDsKKyAgICAgICAgICAgIGV4cG9uZW50ID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsY3VsYXRlcyB0aGUgcnVsZSdzIGV4cG9uZW50IGJhc2VkIG9uIGl0cyByYWRpeCBhbmQgYmFzZQorICAgICAqIHZhbHVlLiAgVGhpcyB3aWxsIGJlIHRoZSBoaWdoZXN0IHBvd2VyIHRoZSByYWRpeCBjYW4gYmUgcmFpc2VkIHRvCisgICAgICogYW5kIHN0aWxsIHByb2R1Y2UgYSByZXN1bHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgc2hvcnQgZXhwZWN0ZWRFeHBvbmVudCgpIHsKKyAgICAgICAgLy8gc2luY2UgdGhlIGxvZyBvZiAwLCBvciB0aGUgbG9nIGJhc2UgMCBvZiBzb21ldGhpbmcsIGNhdXNlcyBhbgorICAgICAgICAvLyBlcnJvciwgZGVjbGFyZSB0aGUgZXhwb25lbnQgaW4gdGhlc2UgY2FzZXMgdG8gYmUgMCAod2UgYWxzbworICAgICAgICAvLyBkZWFsIHdpdGggdGhlIHNwZWNpYWwtcnVsZSBpZGVudGlmaWVycyBoZXJlKQorICAgICAgICBpZiAocmFkaXggPT0gMCB8fCBiYXNlVmFsdWUgPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHdlIGdldCByb3VuZGluZyBlcnJvciBpbiBzb21lIGNhc2VzLS0gZm9yIGV4YW1wbGUsIGxvZyAxMDAwIC8gbG9nIDEwCisgICAgICAgIC8vIGdpdmVzIHVzIDEuOTk5OTk5OTk5NiBpbnN0ZWFkIG9mIDIuICBUaGUgZXh0cmEgbG9naWMgaGVyZSBpcyB0byB0YWtlCisgICAgICAgIC8vIHRoYXQgaW50byBhY2NvdW50CisgICAgICAgIHNob3J0IHRlbXBSZXN1bHQgPSAoc2hvcnQpKE1hdGgubG9nKGJhc2VWYWx1ZSkgLyBNYXRoLmxvZyhyYWRpeCkpOworICAgICAgICBpZiAoTWF0aC5wb3cocmFkaXgsIHRlbXBSZXN1bHQgKyAxKSA8PSBiYXNlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiAoc2hvcnQpKHRlbXBSZXN1bHQgKyAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0ZW1wUmVzdWx0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgdGhlIHJ1bGUncyBydWxlIHRleHQgZm9yIGFueSBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZ3MuCisgICAgICogQHBhcmFtIHN0cmluZ3MgQW4gYXJyYXkgb2Ygc3RyaW5ncyB0byBzZWFyY2ggdGhlIHJ1bGUncyBydWxlCisgICAgICogdGV4dCBmb3IKKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgbWF0Y2ggaW4gdGhlIHJ1bGUncyBydWxlIHRleHQKKyAgICAgKiAoaS5lLiwgdGhlIGZpcnN0IHN1YnN0cmluZyBpbiB0aGUgcnVsZSdzIHJ1bGUgdGV4dCB0aGF0IG1hdGNoZXMKKyAgICAgKiBfYW55XyBvZiB0aGUgc3RyaW5ncyBpbiAic3RyaW5ncyIpLiAgSWYgbm9uZSBvZiB0aGUgc3RyaW5ncyBpbgorICAgICAqICJzdHJpbmdzIiBpcyBmb3VuZCBpbiB0aGUgcnVsZSdzIHJ1bGUgdGV4dCwgcmV0dXJucyAtMS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBpbmRleE9mQW55KFN0cmluZ1tdIHN0cmluZ3MpIHsKKyAgICAgICAgaW50IHBvczsKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0cmluZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHBvcyA9IHJ1bGVUZXh0LmluZGV4T2Yoc3RyaW5nc1tpXSk7CisgICAgICAgICAgICBpZiAocG9zICE9IC0xICYmIChyZXN1bHQgPT0gLTEgfHwgcG9zIDwgcmVzdWx0KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRlc3RzIHR3byBydWxlcyBmb3IgZXF1YWxpdHkuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIHJ1bGUgdG8gY29tcGFyZSB0aGlzIG9uZSBhZ2FpbnN0CisgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSB0d28gcnVsZXMgYXJlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmICh0aGF0IGluc3RhbmNlb2YgTkZSdWxlKSB7CisgICAgICAgICAgICBORlJ1bGUgdGhhdDIgPSAoTkZSdWxlKXRoYXQ7CisKKyAgICAgICAgICAgIHJldHVybiBiYXNlVmFsdWUgPT0gdGhhdDIuYmFzZVZhbHVlCisgICAgICAgICAgICAgICAgJiYgcmFkaXggPT0gdGhhdDIucmFkaXgKKyAgICAgICAgICAgICAgICAmJiBleHBvbmVudCA9PSB0aGF0Mi5leHBvbmVudAorICAgICAgICAgICAgICAgICYmIHJ1bGVUZXh0LmVxdWFscyh0aGF0Mi5ydWxlVGV4dCkKKyAgICAgICAgICAgICAgICAmJiBzdWIxLmVxdWFscyh0aGF0Mi5zdWIxKQorICAgICAgICAgICAgICAgICYmIHN1YjIuZXF1YWxzKHRoYXQyLnN1YjIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcnVsZS4gIFRoaXMgd29uJ3QKKyAgICAgKiBuZWNlc3NhcmlseSBiZSB0aGUgc2FtZSBhcyB0aGUgZGVzY3JpcHRpb24gdGhhdCB0aGlzIHJ1bGUKKyAgICAgKiB3YXMgY3JlYXRlZCB3aXRoLCBidXQgaXQgd2lsbCBwcm9kdWNlIHRoZSBzYW1lIHJlc3VsdC4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgcnVsZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gc3RhcnQgd2l0aCB0aGUgcnVsZSBkZXNjcmlwdG9yLiAgU3BlY2lhbC1jYXNlIHRoZSBzcGVjaWFsIHJ1bGVzCisgICAgICAgIGlmIChiYXNlVmFsdWUgPT0gTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIi14OiAiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChiYXNlVmFsdWUgPT0gSU1QUk9QRVJfRlJBQ1RJT05fUlVMRSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieC54OiAiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChiYXNlVmFsdWUgPT0gUFJPUEVSX0ZSQUNUSU9OX1JVTEUpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIjAueDogIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYmFzZVZhbHVlID09IE1BU1RFUl9SVUxFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ4LjA6ICIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZm9yIGEgbm9ybWFsIHJ1bGUsIHdyaXRlIG91dCBpdHMgYmFzZSB2YWx1ZSwgYW5kIGlmIHRoZSByYWRpeCBpcworICAgICAgICAvLyBzb21ldGhpbmcgb3RoZXIgdGhhbiAxMCwgd3JpdGUgb3V0IHRoZSByYWRpeCAod2l0aCB0aGUgcHJlY2VkaW5nCisgICAgICAgIC8vIHNsYXNoLCBvZiBjb3Vyc2UpLiAgVGhlbiBjYWxjdWxhdGUgdGhlIGV4cGVjdGVkIGV4cG9uZW50IGFuZCBpZgorICAgICAgICAvLyBpZiBpc24ndCB0aGUgc2FtZSBhcyB0aGUgYWN0dWFsIGV4cG9uZW50LCB3cml0ZSBhbiBhcHByb3ByaWF0ZQorICAgICAgICAvLyBudW1iZXIgb2YgPiBzaWducy4gIEZpbmFsbHksIHRlcm1pbmF0ZSB0aGUgd2hvbGUgdGhpbmcgd2l0aAorICAgICAgICAvLyBhIGNvbG9uLgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nLnZhbHVlT2YoYmFzZVZhbHVlKSk7CisgICAgICAgICAgICBpZiAocmFkaXggIT0gMTApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcvJyk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmcudmFsdWVPZihyYWRpeCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG51bUNhcmV0cyA9IGV4cGVjdGVkRXhwb25lbnQoKSAtIGV4cG9uZW50OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1DYXJldHM7IGkrKykKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCc+Jyk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCI6ICIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIHJ1bGUgdGV4dCBiZWdpbnMgd2l0aCBhIHNwYWNlLCB3cml0ZSBhbiBhcG9zdHJvcGhlCisgICAgICAgIC8vICh3aGl0ZXNwYWNlIGFmdGVyIHRoZSBydWxlIGRlc2NyaXB0b3IgaXMgaWdub3JlZDsgdGhlCisgICAgICAgIC8vIGFwb3N0cm9waGUgaXMgdXNlZCB0byBtYWtlIHRoZSB3aGl0ZXNwYWNlIHNpZ25pZmljYW50KQorICAgICAgICBpZiAocnVsZVRleHQuc3RhcnRzV2l0aCgiICIpICYmIChzdWIxID09IG51bGwgfHwgc3ViMS5nZXRQb3MoKSAhPSAwKSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiXCciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdywgd3JpdGUgdGhlIHJ1bGUncyBydWxlIHRleHQsIGluc2VydGluZyBhcHByb3ByaWF0ZQorICAgICAgICAvLyBzdWJzdGl0dXRpb24gdG9rZW5zIGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZXMKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGVUZXh0Q29weSA9IG5ldyBTdHJpbmdCdWZmZXIocnVsZVRleHQpOworICAgICAgICBydWxlVGV4dENvcHkuaW5zZXJ0KHN1YjIuZ2V0UG9zKCksIHN1YjIudG9TdHJpbmcoKSk7CisgICAgICAgIHJ1bGVUZXh0Q29weS5pbnNlcnQoc3ViMS5nZXRQb3MoKSwgc3ViMS50b1N0cmluZygpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChydWxlVGV4dENvcHkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgLy8gYW5kIGZpbmFsbHksIHRvcCB0aGUgd2hvbGUgdGhpbmcgb2ZmIHdpdGggYSBzZW1pY29sb24gYW5kCisgICAgICAgIC8vIHJldHVybiB0aGUgcmVzdWx0CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKiBAcmV0dXJuIFRoZSBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBsb25nIGdldEJhc2VWYWx1ZSgpIHsKKyAgICAgICAgcmV0dXJuIGJhc2VWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBydWxlJ3MgZGl2aXNvciAodGhlIHZhbHVlIHRoYXQgY290cm9scyB0aGUgYmVoYXZpb3IKKyAgICAgKiBvZiBpdHMgc3Vic3RpdHV0aW9ucykKKyAgICAgKiBAcmV0dXJuIFRoZSBydWxlJ3MgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0RGl2aXNvcigpIHsKKyAgICAgICAgcmV0dXJuIE1hdGgucG93KHJhZGl4LCBleHBvbmVudCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBudW1iZXIsIGFuZCBpbnNlcnRzIHRoZSByZXN1bHRpbmcgdGV4dCBpbnRvCisgICAgICogdG9JbnNlcnRJbnRvLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2hlcmUgdGhlIHJlc3VsdGFudCB0ZXh0IHNob3VsZAorICAgICAqIGJlIGluc2VydGVkCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gaW4gdG9JbnNlcnRJbnRvIHdoZXJlIHRoZSByZXN1bHRhbnQgdGV4dAorICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvRm9ybWF0KGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIGZpcnN0LCBpbnNlcnQgdGhlIHJ1bGUncyBydWxlIHRleHQgaW50byB0b0luc2VydEludG8gYXQgdGhlCisgICAgICAgIC8vIHNwZWNpZmllZCBwb3NpdGlvbiwgdGhlbiBpbnNlcnQgdGhlIHJlc3VsdHMgb2YgdGhlIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgLy8gaW50byB0aGUgcmlnaHQgcGxhY2VzIGluIHRvSW5zZXJ0SW50byAobm90aWNlIHdlIGRvIHRoZQorICAgICAgICAvLyBzdWJzdGl0dXRpb25zIGluIHJldmVyc2Ugb3JkZXIgc28gdGhhdCB0aGUgb2Zmc2V0cyBkb24ndCBnZXQKKyAgICAgICAgLy8gbWVzc2VkIHVwKQorICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcywgcnVsZVRleHQpOworICAgICAgICBzdWIyLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworICAgICAgICBzdWIxLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgdGhlIG51bWJlciwgYW5kIGluc2VydHMgdGhlIHJlc3VsdGluZyB0ZXh0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEBwYXJhbSB0b0luc2VydEludG8gVGhlIHN0cmluZyB3aGVyZSB0aGUgcmVzdWx0YW50IHRleHQgc2hvdWxkCisgICAgICogYmUgaW5zZXJ0ZWQKKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBpbiB0b0luc2VydEludG8gd2hlcmUgdGhlIHJlc3VsdGFudCB0ZXh0CisgICAgICogc2hvdWxkIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9Gb3JtYXQoZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBmaXJzdCwgaW5zZXJ0IHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGludG8gdG9JbnNlcnRJbnRvIGF0IHRoZQorICAgICAgICAvLyBzcGVjaWZpZWQgcG9zaXRpb24sIHRoZW4gaW5zZXJ0IHRoZSByZXN1bHRzIG9mIHRoZSBzdWJzdGl0dXRpb25zCisgICAgICAgIC8vIGludG8gdGhlIHJpZ2h0IHBsYWNlcyBpbiB0b0luc2VydEludG8KKyAgICAgICAgLy8gW2FnYWluLCB3ZSBoYXZlIHR3byBjb3BpZXMgb2YgdGhpcyByb3V0aW5lIHRoYXQgZG8gdGhlIHNhbWUgdGhpbmcKKyAgICAgICAgLy8gc28gdGhhdCB3ZSBkb24ndCBzYWNyaWZpY2UgcHJlY2lzaW9uIGluIGEgbG9uZyBieSBjYXN0aW5nIGl0CisgICAgICAgIC8vIHRvIGEgZG91YmxlXQorICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcywgcnVsZVRleHQpOworICAgICAgICBzdWIyLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworICAgICAgICBzdWIxLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgdGhlIG93bmluZyBydWxlIHNldCB0byBkZXRlcm1pbmUgd2hldGhlciB0byBpbnZva2UgdGhlCisgICAgICogcm9sbGJhY2sgcnVsZSAoaS5lLiwgd2hldGhlciB0aGlzIHJ1bGUgb3IgdGhlIG9uZSB0aGF0IHByZWNlZGVzCisgICAgICogaXQgaW4gdGhlIHJ1bGUgc2V0J3MgbGlzdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgdGhlIG51bWJlcikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBydWxlIHNldCBzaG91bGQgdXNlIHRoZSBydWxlIHRoYXQgcHJlY2VkZXMKKyAgICAgKiB0aGlzIG9uZSBpbiBpdHMgbGlzdDsgZmFsc2UgaWYgaXQgc2hvdWxkIHVzZSB0aGlzIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzaG91bGRSb2xsQmFjayhkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIC8vIHdlIHJvbGwgYmFjayBpZiB0aGUgcnVsZSBjb250YWlucyBhIG1vZHVsdXMgc3Vic3RpdHV0aW9uLAorICAgICAgICAvLyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MKKyAgICAgICAgLy8gZGl2aXNvciwgYW5kIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSBpcyBOT1QgYW4gZXZlbiBtdWx0aXBsZQorICAgICAgICAvLyBvZiBpdHMgZGl2aXNvcgorICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIG9yaWdpbmFsIGRlc2NyaXB0aW9uIGhhZAorICAgICAgICAvLyAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTsKKyAgICAgICAgLy8gdGhhdCBleHBhbmRzIGludG8KKyAgICAgICAgLy8gICAgMTAwOiA8PCBodW5kcmVkOworICAgICAgICAvLyAgICAxMDE6IDw8IGh1bmRyZWQgPj47CisgICAgICAgIC8vIGludGVybmFsbHkuICBCdXQgd2hlbiB3ZSdyZSBmb3JtYXR0aW5nIDIwMCwgaWYgd2UgdXNlIHRoZSBydWxlCisgICAgICAgIC8vIGF0IDEwMSwgd2hpY2ggd291bGQgbm9ybWFsbHkgYXBwbHksIHdlIGdldCAidHdvIGh1bmRyZWQgemVybyIuCisgICAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2Ugcm9sbCBiYWNrIGFuZCB1c2UgdGhlIHJ1bGUgYXQgMTAwIGluc3RlYWQuCisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGxvZ2ljIHRoYXQgbWFrZXMgdGhpcyBoYXBwZW46IHRoZSBydWxlIGF0IDEwMSBoYXMKKyAgICAgICAgLy8gYSBtb2R1bHVzIHN1YnN0aXR1dGlvbiwgaXRzIGJhc2UgdmFsdWUgaXNuJ3QgYW4gZXZlbiBtdWx0aXBsZQorICAgICAgICAvLyBvZiAxMDAsIGFuZCB0aGUgdmFsdWUgd2UncmUgdHJ5aW5nIHRvIGZvcm1hdCBfaXNfIGFuIGV2ZW4KKyAgICAgICAgLy8gbXVsdGlwbGUgb2YgMTAwLiAgVGhpcyBpcyBjYWxsZWQgdGhlICJyb2xsYmFjayBydWxlLiIKKyAgICAgICAgaWYgKChzdWIxLmlzTW9kdWx1c1N1YnN0aXR1dGlvbigpKSB8fCAoc3ViMi5pc01vZHVsdXNTdWJzdGl0dXRpb24oKSkpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVtYmVyICUgTWF0aC5wb3cocmFkaXgsIGV4cG9uZW50KSkgPT0gMAorICAgICAgICAgICAgICAgICYmIChiYXNlVmFsdWUgJSBNYXRoLnBvdyhyYWRpeCwgZXhwb25lbnQpKSAhPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBzdHJpbmcgd2l0aCB0aGlzIHJ1bGUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyBiZWluZyBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBPbiBlbnRyeSwgdGhlIHZhbHVlIGlzIGlnbm9yZWQgYW5kIGFzc3VtZWQgdG8KKyAgICAgKiBiZSAwLiBPbiBleGl0LCB0aGlzIGhhcyBiZWVuIHVwZGF0ZWQgd2l0aCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIG5vdCBjb25zdW1lZCBieSBtYXRjaGluZyB0aGUgdGV4dCBhZ2FpbnN0IHRoaXMgcnVsZQorICAgICAqIChpZiB0aGlzIHJ1bGUgZG9lc24ndCBtYXRjaCB0aGUgdGV4dCBhdCBhbGwsIHRoZSBwYXJzZSBwb3NpdGlvbgorICAgICAqIGlmIGxlZnQgdW5jaGFuZ2VkIChwcmVzdW1hYmx5IGF0IDApIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucworICAgICAqIG5ldyBMb25nKDApKS4KKyAgICAgKiBAcGFyYW0gaXNGcmFjdGlvblJ1bGUgVHJ1ZSBpZiB0aGlzIHJ1bGUgaXMgY29udGFpbmVkIHdpdGhpbiBhCisgICAgICogZnJhY3Rpb24gcnVsZSBzZXQuICBUaGlzIGlzIG9ubHkgdXNlZCBpZiB0aGUgcnVsZSBoYXMgbm8KKyAgICAgKiBzdWJzdGl0dXRpb25zLgorICAgICAqIEByZXR1cm4gSWYgdGhpcyBydWxlIG1hdGNoZWQgdGhlIHRleHQsIHRoaXMgaXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICogY29tYmluZWQgYXBwcm9wcmlhdGVseSB3aXRoIHRoZSByZXN1bHRzIG9mIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbnMuCisgICAgICogSWYgbm90aGluZyBtYXRjaGVkLCB0aGlzIGlzIG5ldyBMb25nKDApIGFuZCB0aGUgcGFyc2UgcG9zaXRpb24gaXMKKyAgICAgKiBsZWZ0IHVuY2hhbmdlZC4gIFRoZSByZXN1bHQgd2lsbCBiZSBhbiBpbnN0YW5jZSBvZiBMb25nIGlmIHRoZQorICAgICAqIHJlc3VsdCBpcyBhbiBpbnRlZ2VyIGFuZCBEb3VibGUgb3RoZXJ3aXNlLiAgVGhlIHJlc3VsdCBpcyBuZXZlciBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBib29sZWFuIGlzRnJhY3Rpb25SdWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCkgeworCisgICAgICAgIC8vIGludGVybmFsbHkgd2Ugb3BlcmF0ZSBvbiBhIGNvcHkgb2YgdGhlIHN0cmluZyBiZWluZyBwYXJzZWQKKyAgICAgICAgLy8gKGJlY2F1c2Ugd2UncmUgZ29pbmcgdG8gY2hhbmdlIGl0KSBhbmQgdXNlIG91ciBvd24gUGFyc2VQb3NpdGlvbgorICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyB3b3JrVGV4dCA9IG5ldyBTdHJpbmcodGV4dCk7CisKKyAgICAgICAgLy8gY2hlY2sgdG8gc2VlIHdoZXRoZXIgdGhlIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBzdWJzdGl0dXRpb24KKyAgICAgICAgLy8gbWF0Y2hlcyB0aGUgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcgYmVpbmcKKyAgICAgICAgLy8gcGFyc2VkLiAgSWYgaXQgZG9lcywgc3RyaXAgdGhhdCBvZmYgdGhlIGZyb250IG9mIHdvcmtUZXh0OworICAgICAgICAvLyBvdGhlcndpc2UsIGR1bXAgb3V0IHdpdGggYSBtaXNtYXRjaAorICAgICAgICB3b3JrVGV4dCA9IHN0cmlwUHJlZml4KHdvcmtUZXh0LCBydWxlVGV4dC5zdWJzdHJpbmcoMCwgc3ViMS5nZXRQb3MoKSksIHBwKTsKKyAgICAgICAgaW50IHByZWZpeExlbmd0aCA9IHRleHQubGVuZ3RoKCkgLSB3b3JrVGV4dC5sZW5ndGgoKTsKKworICAgICAgICBpZiAocHAuZ2V0SW5kZXgoKSA9PSAwICYmIHN1YjEuZ2V0UG9zKCkgIT0gMCkgeworICAgICAgICAgICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIFBhcnNlUG9zaXRpb24gZG9lc24ndCBoYXZlIGVycm9yIGluZGV4IGluIDEuMS54CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocHAuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoaXMgaXMgdGhlIGZ1biBwYXJ0LiAgVGhlIGJhc2ljIGd1dHMgb2YgdGhlIHJ1bGUtbWF0Y2hpbmcKKyAgICAgICAgLy8gbG9naWMgaXMgbWF0Y2hUb0RlbGltaXRlcigpLCB3aGljaCBpcyBjYWxsZWQgdHdpY2UuICBUaGUgZmlyc3QKKyAgICAgICAgLy8gdGltZSBpdCBzZWFyY2hlcyB0aGUgaW5wdXQgc3RyaW5nIGZvciB0aGUgcnVsZSB0ZXh0IEJFVFdFRU4KKyAgICAgICAgLy8gdGhlIHN1YnN0aXR1dGlvbnMgYW5kIHRyaWVzIHRvIG1hdGNoIHRoZSBpbnRlcnZlbmluZyB0ZXh0CisgICAgICAgIC8vIGluIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZmlyc3Qgc3Vic3RpdHV0aW9uLiAgSWYgdGhhdAorICAgICAgICAvLyBzdWNjZWVkcywgaXQgdGhlbiBjYWxscyBpdCBhZ2FpbiwgdGhpcyB0aW1lIHRvIGxvb2sgZm9yIHRoZQorICAgICAgICAvLyBydWxlIHRleHQgYWZ0ZXIgdGhlIHNlY29uZCBzdWJzdGl0dXRpb24gYW5kIHRvIG1hdGNoIHRoZQorICAgICAgICAvLyBpbnRlcnZlbmluZyBpbnB1dCB0ZXh0IGFnYWluc3QgdGhlIHNlY29uZCBzdWJzdGl0dXRpb24uCisgICAgICAgIC8vCisgICAgICAgIC8vIEZvciBleGFtcGxlLCBzYXkgd2UgaGF2ZSBhIHJ1bGUgdGhhdCBsb29rcyBsaWtlIHRoaXM6CisgICAgICAgIC8vICAgIGZpcnN0IDw8IG1pZGRsZSA+PiBsYXN0OworICAgICAgICAvLyBhbmQgaW5wdXQgdGV4dCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAgICAgLy8gICAgZmlyc3Qgb25lIG1pZGRsZSB0d28gbGFzdAorICAgICAgICAvLyBGaXJzdCB3ZSB1c2Ugc3RyaXBQcmVmaXgoKSB0byBtYXRjaCAiZmlyc3QgIiBpbiBib3RoIHBsYWNlcyBhbmQKKyAgICAgICAgLy8gc3RyaXAgaXQgb2ZmIHRoZSBmcm9udCwgbGVhdmluZworICAgICAgICAvLyAgICBvbmUgbWlkZGxlIHR3byBsYXN0CisgICAgICAgIC8vIFRoZW4gd2UgdXNlIG1hdGNoVG9EZWxpbWl0ZXIoKSB0byBtYXRjaCAiIG1pZGRsZSAiIGFuZCB0cnkgdG8KKyAgICAgICAgLy8gbWF0Y2ggIm9uZSIgYWdhaW5zdCBhIHN1YnN0aXR1dGlvbi4gIElmIGl0J3Mgc3VjY2Vzc2Z1bCwgd2Ugbm93CisgICAgICAgIC8vIGhhdmUKKyAgICAgICAgLy8gICAgdHdvIGxhc3QKKyAgICAgICAgLy8gV2UgdXNlIG1hdGNoVG9EZWxpbWl0ZXIoKSBhIHNlY29uZCB0aW1lIHRvIG1hdGNoICIgbGFzdCIgYW5kCisgICAgICAgIC8vIHRyeSB0byBtYXRjaCAidHdvIiBhZ2FpbnN0IGEgc3Vic3RpdHV0aW9uLiAgSWYgInR3byIgbWF0Y2hlcworICAgICAgICAvLyB0aGUgc3Vic3RpdHV0aW9uLCB3ZSBoYXZlIGEgc3VjY2Vzc2Z1bCBwYXJzZS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gU2luY2UgaXQncyBwb3NzaWJsZSBpbiBtYW55IGNhc2VzIHRvIGZpbmQgbXVsdGlwbGUgaW5zdGFuY2VzCisgICAgICAgIC8vIG9mIGVhY2ggb2YgdGhlc2UgcGllY2VzIG9mIHJ1bGUgdGV4dCBpbiB0aGUgaW5wdXQgc3RyaW5nLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIHRyeSBhbGwgdGhlIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB0aGVzZQorICAgICAgICAvLyBsb2NhdGlvbnMuICBUaGlzIHByZXZlbnRzIHVzIGZyb20gcHJlbWF0dXJlbHkgZGVjbGFyaW5nIGEgbWlzbWF0Y2gsCisgICAgICAgIC8vIGFuZCBtYWtlcyBzdXJlIHdlIG1hdGNoIGFzIG11Y2ggaW5wdXQgdGV4dCBhcyB3ZSBjYW4uCisgICAgICAgIGludCBoaWdoV2F0ZXJNYXJrID0gMDsKKyAgICAgICAgZG91YmxlIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGRvdWJsZSB0ZW1wQmFzZVZhbHVlID0gTWF0aC5tYXgoMCwgYmFzZVZhbHVlKTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICAvLyBvdXIgcGFydGlhbCBwYXJzZSByZXN1bHQgc3RhcnRzIG91dCBhcyB0aGlzIHJ1bGUncyBiYXNlCisgICAgICAgICAgICAvLyB2YWx1ZS4gIElmIGl0IGZpbmRzIGEgc3VjY2Vzc2Z1bCBtYXRjaCwgbWF0Y2hUb0RlbGltaXRlcigpCisgICAgICAgICAgICAvLyB3aWxsIGNvbXBvc2UgdGhpcyBpbiBzb21lIHdheSB3aXRoIHdoYXQgaXQgZ2V0cyBiYWNrIGZyb20KKyAgICAgICAgICAgIC8vIHRoZSBzdWJzdGl0dXRpb24sIGdpdmluZyB1cyBhIG5ldyBwYXJ0aWFsIHBhcnNlIHJlc3VsdAorICAgICAgICAgICAgcHAuc2V0SW5kZXgoMCk7CisgICAgICAgICAgICBkb3VibGUgcGFydGlhbFJlc3VsdCA9IG1hdGNoVG9EZWxpbWl0ZXIod29ya1RleHQsIHN0YXJ0LCB0ZW1wQmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWIxLmdldFBvcygpLCBzdWIyLmdldFBvcygpKSwgcHAsIHN1YjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJCb3VuZCkuZG91YmxlVmFsdWUoKTsKKworICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCAob3Igd2VyZSB0cnlpbmcgdG8gbWF0Y2ggYQorICAgICAgICAgICAgLy8gbnVsbCBzdWJzdGl0dXRpb24pLCBwcCBpcyBub3cgcG9pbnRpbmcgYXQgdGhlIGZpcnN0IHVubWF0Y2hlZAorICAgICAgICAgICAgLy8gY2hhcmFjdGVyLiAgVGFrZSBub3RlIG9mIHRoYXQsIGFuZCB0cnkgbWF0Y2hUb0RlbGltaXRlcigpCisgICAgICAgICAgICAvLyBvbiB0aGUgaW5wdXQgdGV4dCBhZ2FpbgorICAgICAgICAgICAgaWYgKHBwLmdldEluZGV4KCkgIT0gMCB8fCBzdWIxLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBwcC5nZXRJbmRleCgpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0MiA9IHdvcmtUZXh0LnN1YnN0cmluZyhwcC5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwMiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgICAgICAgICAgLy8gdGhlIHNlY29uZCBtYXRjaFRvRGVsaW1pdGVyKCkgd2lsbCBjb21wb3NlIG91ciBwcmV2aW91cworICAgICAgICAgICAgICAgIC8vIHBhcnRpYWwgcmVzdWx0IHdpdGggd2hhdGV2ZXIgaXQgZ2V0cyBiYWNrIGZyb20gaXRzCisgICAgICAgICAgICAgICAgLy8gc3Vic3RpdHV0aW9uIGlmIHRoZXJlJ3MgYSBzdWNjZXNzZnVsIG1hdGNoLCBnaXZpbmcgdXMKKyAgICAgICAgICAgICAgICAvLyBhIHJlYWwgcmVzdWx0CisgICAgICAgICAgICAgICAgcGFydGlhbFJlc3VsdCA9IG1hdGNoVG9EZWxpbWl0ZXIod29ya1RleHQyLCAwLCBwYXJ0aWFsUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWIyLmdldFBvcygpKSwgcHAyLCBzdWIyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyQm91bmQpLmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBnb3QgYSBzdWNjZXNzZnVsIG1hdGNoIG9uIHRoaXMgc2Vjb25kCisgICAgICAgICAgICAgICAgLy8gbWF0Y2hUb0RlbGltaXRlcigpIGNhbGwsIHVwZGF0ZSB0aGUgaGlnaC13YXRlciBtYXJrCisgICAgICAgICAgICAgICAgLy8gYW5kIHJlc3VsdCAoaWYgbmVjZXNzYXJ5KQorICAgICAgICAgICAgICAgIGlmIChwcDIuZ2V0SW5kZXgoKSAhPSAwIHx8IHN1YjIuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeExlbmd0aCArIHBwLmdldEluZGV4KCkgKyBwcDIuZ2V0SW5kZXgoKSA+IGhpZ2hXYXRlck1hcmspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsgPSBwcmVmaXhMZW5ndGggKyBwcC5nZXRJbmRleCgpICsgcHAyLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwYXJ0aWFsUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gcHAyLmdldEVycm9ySW5kZXgoKSArIHN1YjEuZ2V0UG9zKCkgKyBwcC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHRlbXApOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gc3ViMS5nZXRQb3MoKSArIHBwLmdldEVycm9ySW5kZXgoKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBpZiAodGVtcCA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleCh0ZW1wKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBrZWVwIHRyeWluZyB0byBtYXRjaCB0aGluZ3MgdW50aWwgdGhlIG91dGVyIG1hdGNoVG9EZWxpbWl0ZXIoKQorICAgICAgICAgICAgLy8gY2FsbCBmYWlscyB0byBtYWtlIGEgbWF0Y2ggKGVhY2ggdGltZSwgaXQgcGlja3MgdXAgd2hlcmUgaXQKKyAgICAgICAgICAgIC8vIGxlZnQgb2ZmIHRoZSBwcmV2aW91cyB0aW1lKQorICAgICAgICB9IHdoaWxlIChzdWIxLmdldFBvcygpICE9IHN1YjIuZ2V0UG9zKCkgJiYgcHAuZ2V0SW5kZXgoKSA+IDAgJiYgcHAuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICA8IHdvcmtUZXh0Lmxlbmd0aCgpICYmIHBwLmdldEluZGV4KCkgIT0gc3RhcnQpOworCisgICAgICAgIC8vIHVwZGF0ZSB0aGUgY2FsbGVyJ3MgUGFyc2VQb3NpdGlvbiB3aXRoIG91ciBoaWdoLXdhdGVyIG1hcmsKKyAgICAgICAgLy8gKGkuZS4sIGl0IG5vdyBwb2ludHMgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciB0aGlzIGZ1bmN0aW9uCisgICAgICAgIC8vIGRpZG4ndCBtYXRjaC0tIHRoZSBQYXJzZVBvc2l0aW9uIGlzIHRoZXJlZm9yZSB1bmNoYW5nZWQgaWYKKyAgICAgICAgLy8gd2UgZGlkbid0IG1hdGNoIGFueXRoaW5nKQorICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KGhpZ2hXYXRlck1hcmspOworICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKyAgICAgICAgLy8gICAgICAgIGlmIChoaWdoV2F0ZXJNYXJrID4gMCkgeworICAgICAgICAvLyAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleCgwKTsKKyAgICAgICAgLy8gICAgICAgIH0KKworICAgICAgICAvLyB0aGlzIGlzIGEgaGFjayBmb3Igb25lIHVudXN1YWwgY29uZGl0aW9uOiBOb3JtYWxseSwgd2hldGhlciB0aGlzCisgICAgICAgIC8vIHJ1bGUgYmVsb25nIHRvIGEgZnJhY3Rpb24gcnVsZSBzZXQgb3Igbm90IGlzIGhhbmRsZWQgYnkgaXRzCisgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMuICBCdXQgaWYgdGhhdCBydWxlIEhBUyBOTyBzdWJzdGl0dXRpb25zLCB0aGVuCisgICAgICAgIC8vIHdlIGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgaGVyZS4gIEJ5IGRlZmluaXRpb24sIGlmIHRoZSBtYXRjaGluZworICAgICAgICAvLyBydWxlIGluIGEgZnJhY3Rpb24gcnVsZSBzZXQgaGFzIG5vIHN1YnN0aXR1dGlvbnMsIGl0cyBudW1lcmF0b3IKKyAgICAgICAgLy8gaXMgMSwgYW5kIHNvIHRoZSByZXN1bHQgaXMgdGhlIHJlY2lwcm9jYWwgb2YgaXRzIGJhc2UgdmFsdWUuCisgICAgICAgIGlmIChpc0ZyYWN0aW9uUnVsZSAmJiBoaWdoV2F0ZXJNYXJrID4gMCAmJiBzdWIxLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICByZXN1bHQgPSAxIC8gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBMb25nIGlmIHBvc3NpYmxlLCBvciBhcyBhIERvdWJsZQorICAgICAgICBpZiAocmVzdWx0ID09IChsb25nKXJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IHBhcnNlKCkgdG8gbWF0Y2ggdGhlIHRleHQgYmVpbmcgcGFyc2VkCisgICAgICogYWdhaW5zdCBhIHBvc3NpYmxlIHByZWZpeCBzdHJpbmcuICBUaGlzIGZ1bmN0aW9uCisgICAgICogbWF0Y2hlcyBjaGFyYWN0ZXJzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAqIHRvIGNoYXJhY3RlcnMgZnJvbSB0aGUgcHJvc3BlY3RpdmUgcHJlZml4LiAgSWYgdGhleSBtYXRjaCwgcHAgaXMKKyAgICAgKiB1cGRhdGVkIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbm90IG1hdGNoZWQsIGFuZCB0aGUgcmVzdWx0IGlzCisgICAgICogdGhlIHVucGFyc2VkIHBhcnQgb2YgdGhlIHN0cmluZy4gIElmIHRoZXkgZG9uJ3QgbWF0Y2gsIHRoZSB3aG9sZQorICAgICAqIHN0cmluZyBpcyByZXR1cm5lZCwgYW5kIHBwIGlzIGxlZnQgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgYmVpbmcgcGFyc2VkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB0byBtYXRjaCBhZ2FpbnN0CisgICAgICogQHBhcmFtIHBwIE9uIGVudHJ5LCBpZ25vcmVkIGFuZCBhc3N1bWVkIHRvIGJlIDAuICBPbiBleGl0LCBwb2ludHMKKyAgICAgKiB0byB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlciAoYXNzdW1pbmcgdGhlIHdob2xlIHByZWZpeCBtYXRjaGVkKSwKKyAgICAgKiBvciBpcyB1bmNoYW5nZWQgKGlmIHRoZSB3aG9sZSBwcmVmaXggZGlkbid0IG1hdGNoKS4KKyAgICAgKiBAcmV0dXJuIElmIHRoaW5ncyBtYXRjaCwgdGhpcyBpcyB0aGUgdW5wYXJzZWQgcGFydCBvZiAidGV4dCI7CisgICAgICogaWYgdGhleSBkaWRuJ3QgbWF0Y2gsIHRoaXMgaXMgInRleHQiLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHN0cmlwUHJlZml4KFN0cmluZyB0ZXh0LCBTdHJpbmcgcHJlZml4LCBQYXJzZVBvc2l0aW9uIHBwKSB7CisgICAgICAgIC8vIGlmIHRoZSBwcmVmaXggdGV4dCBpcyBlbXB0eSwgZHVtcCBvdXQgd2l0aG91dCBkb2luZyBhbnl0aGluZworICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB1c2UgcHJlZml4TGVuZ3RoKCkgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvZgorICAgICAgICAgICAgLy8gInRleHQiIGFnYWluc3QgInByZWZpeCIuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlCisgICAgICAgICAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBmcm9tICJ0ZXh0IiB0aGF0IG1hdGNoZWQgKG9yIDAgaWYKKyAgICAgICAgICAgIC8vIHdlIGRpZG4ndCBtYXRjaCB0aGUgd2hvbGUgcHJlZml4KQorICAgICAgICAgICAgaW50IHBmbCA9IHByZWZpeExlbmd0aCh0ZXh0LCBwcmVmaXgpOworICAgICAgICAgICAgaWYgKHBmbCAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCwgdXBkYXRlIHRoZSBwYXJzZSBwb3NpdGlvbgorICAgICAgICAgICAgICAgIC8vIGFuZCBzdHJpcCB0aGUgcHJlZml4IG9mZiBvZiAidGV4dCIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleChwcC5nZXRJbmRleCgpICsgcGZsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcocGZsKTsKKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSBzdWNjZXNzZnVsIG1hdGNoLCBsZWF2ZSBldmVyeXRoaW5nIGFsb25lCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlZCBieSBwYXJzZSgpIHRvIG1hdGNoIGEgc3Vic3RpdHV0aW9uIGFuZCBhbnkgZm9sbG93aW5nIHRleHQuCisgICAgICogInRleHQiIGlzIHNlYXJjaGVkIGZvciBpbnN0YW5jZXMgb2YgImRlbGltaXRlciIuICBGb3IgZWFjaCBpbnN0YW5jZQorICAgICAqIG9mIGRlbGltaXRlciwgdGhlIGludGVydmVuaW5nIHRleHQgaXMgdGVzdGVkIHRvIHNlZSB3aGV0aGVyIGl0CisgICAgICogbWF0Y2hlcyB0aGUgc3Vic3RpdHV0aW9uLiAgVGhlIGxvbmdlc3QgbWF0Y2ggd2lucy4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAqIEBwYXJhbSBzdGFydFBvcyBUaGUgcG9zaXRpb24gaW4gInRleHQiIHdoZXJlIHdlIHNob3VsZCBzdGFydCBsb29raW5nCisgICAgICogZm9yICJkZWxpbWl0ZXIiLgorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgQSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCAob2Z0ZW4gdGhlIHJ1bGUncyBiYXNlIHZhbHVlKSwKKyAgICAgKiB3aGljaCBpcyBjb21iaW5lZCB3aXRoIHRoZSByZXN1bHQgZnJvbSBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGRlbGltaXRlciBUaGUgc3RyaW5nIHRvIHNlYXJjaCAidGV4dCIgZm9yLgorICAgICAqIEBwYXJhbSBwcCBJZ25vcmVkIGFuZCBwcmVzdW1lZCB0byBiZSAwIG9uIGVudHJ5LiAgSWYgdGhlcmUncyBhIG1hdGNoLAorICAgICAqIG9uIGV4aXQgdGhpcyB3aWxsIHBvaW50IHRvIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBzdWIgSWYgd2UgZmluZCAiZGVsaW1pdGVyIiBpbiAidGV4dCIsIHRoaXMgc3Vic3RpdHV0aW9uIGlzIHVzZWQKKyAgICAgKiB0byBtYXRjaCB0aGUgdGV4dCBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZyBhbmQgdGhlCisgICAgICogcG9zaXRpb24gb2YgImRlbGltaXRlci4iICAoSWYgImRlbGltaXRlciIgaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbgorICAgICAqIHRoaXMgZnVuY3Rpb24ganVzdCBtYXRjaGVzIGFnYWluc3QgdGhpcyBzdWJzdGl0dXRpb24gYW5kIHVwZGF0ZXMKKyAgICAgKiBldmVyeXRoaW5nIGFjY29yZGluZ2x5LikKKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBXaGVuIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24sIGl0IHdpbGwgb25seQorICAgICAqIGNvbnNpZGVyIHJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMgbG93ZXIgdGhhbiB0aGlzIHZhbHVlLgorICAgICAqIEByZXR1cm4gSWYgdGhlcmUncyBhIG1hdGNoLCB0aGlzIGlzIHRoZSByZXN1bHQgb2YgY29tcG9zaW5nCisgICAgICogYmFzZVZhbHVlIHdpdGggdGhlIHJlc3VsdCBvZiBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uLiAgT3RoZXJ3aXNlLAorICAgICAqIHRoaXMgaXMgbmV3IExvbmcoMCkuICBJdCdzIG5ldmVyIG51bGwuICBJZiB0aGUgcmVzdWx0IGlzIGFuIGludGVnZXIsCisgICAgICogdGhpcyB3aWxsIGJlIGFuIGluc3RhbmNlIG9mIExvbmc7IG90aGVyd2lzZSwgaXQncyBhbiBpbnN0YW5jZSBvZgorICAgICAqIERvdWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE51bWJlciBtYXRjaFRvRGVsaW1pdGVyKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnRQb3MsIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVsaW1pdGVyLCBQYXJzZVBvc2l0aW9uIHBwLCBORlN1YnN0aXR1dGlvbiBzdWIsIGRvdWJsZSB1cHBlckJvdW5kKSB7CisgICAgICAgIC8vIGlmICJkZWxpbWl0ZXIiIGNvbnRhaW5zIHJlYWwgKGkuZS4sIG5vbi1pZ25vcmFibGUpIHRleHQsIHNlYXJjaAorICAgICAgICAvLyBpdCBmb3IgImRlbGltaXRlciIgYmVnaW5uaW5nIGF0ICJzdGFydCIuICBJZiB0aGF0IHN1Y2NlZWRzLCB0aGVuCisgICAgICAgIC8vIHVzZSAic3ViIidzIGRvUGFyc2UoKSBtZXRob2QgdG8gbWF0Y2ggdGhlIHRleHQgYmVmb3JlIHRoZQorICAgICAgICAvLyBpbnN0YW5jZSBvZiAiZGVsaW1pdGVyIiB3ZSBqdXN0IGZvdW5kLgorICAgICAgICBpZiAoIWFsbElnbm9yYWJsZShkZWxpbWl0ZXIpKSB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHRlbXBQUCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQ7CisKKyAgICAgICAgICAgIC8vIHVzZSBmaW5kVGV4dCgpIHRvIHNlYXJjaCBmb3IgImRlbGltaXRlciIuICBJdCByZXR1cm5zIGEgdHdvLQorICAgICAgICAgICAgLy8gZWxlbWVudCBhcnJheTogZWxlbWVudCAwIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgbWF0Y2gsIGFuZAorICAgICAgICAgICAgLy8gZWxlbWVudCAxIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IG1hdGNoZWQKKyAgICAgICAgICAgIC8vICJkZWxpbWl0ZXIiLgorICAgICAgICAgICAgaW50W10gdGVtcCA9IGZpbmRUZXh0KHRleHQsIGRlbGltaXRlciwgc3RhcnRQb3MpOworICAgICAgICAgICAgaW50IGRQb3MgPSB0ZW1wWzBdOworICAgICAgICAgICAgaW50IGRMZW4gPSB0ZW1wWzFdOworCisgICAgICAgICAgICAvLyBpZiBmaW5kVGV4dCgpIHN1Y2NlZWRlZCwgaXNvbGF0ZSB0aGUgdGV4dCBwcmVjZWRpbmcgdGhlCisgICAgICAgICAgICAvLyBtYXRjaCwgYW5kIHVzZSAic3ViIiB0byBtYXRjaCB0aGF0IHRleHQKKyAgICAgICAgICAgIHdoaWxlIChkUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3ViVGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIGRQb3MpOworICAgICAgICAgICAgICAgIGlmIChzdWJUZXh0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gc3ViLmRvUGFyc2Uoc3ViVGV4dCwgdGVtcFBQLCBiYXNlVmFsdWUsIHVwcGVyQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc3Vic3RpdHV0aW9uIGNvdWxkIG1hdGNoIGFsbCB0aGUgdGV4dCB1cCB0bworICAgICAgICAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBmb3VuZCAiZGVsaW1pdGVyIiwgdGhlbiB0aGlzIGZ1bmN0aW9uIGhhcworICAgICAgICAgICAgICAgICAgICAvLyBhIHN1Y2Nlc3NmdWwgbWF0Y2guICBCdW1wIHRoZSBjYWxsZXIncyBwYXJzZSBwb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAvLyB0byBwb2ludCB0byB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgbWF0Y2hlcyAiZGVsaW1pdGVyIiwgYW5kIHJldHVybiB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGdvdCBmcm9tIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBQUC5nZXRJbmRleCgpID09IGRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEluZGV4KGRQb3MgKyBkTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBQUC5nZXRFcnJvckluZGV4KCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAuc2V0RXJyb3JJbmRleCh0ZW1wUFAuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBtYXRjaCB0aGUgc3Vic3RpdHV0aW9uLCBzZWFyY2ggZm9yIGFub3RoZXIKKyAgICAgICAgICAgICAgICAvLyBjb3B5IG9mICJkZWxpbWl0ZXIiIGluICJ0ZXh0IiBhbmQgcmVwZWF0IHRoZSBsb29wIGlmCisgICAgICAgICAgICAgICAgLy8gd2UgZmluZCBpdAorICAgICAgICAgICAgICAgIHRlbXBQUC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gZmluZFRleHQodGV4dCwgZGVsaW1pdGVyLCBkUG9zICsgZExlbik7CisgICAgICAgICAgICAgICAgZFBvcyA9IHRlbXBbMF07CisgICAgICAgICAgICAgICAgZExlbiA9IHRlbXBbMV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IGhlcmUsIHRoaXMgd2FzIGFuIHVuc3VjY2Vzc2Z1bCBtYXRjaCwgYW5kIHdlCisgICAgICAgICAgICAvLyBsZWF2ZSBwcCB1bmNoYW5nZWQgYW5kIHJldHVybiAwCisgICAgICAgICAgICBwcC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygwKTsKKworICAgICAgICAgICAgLy8gaWYgImRlbGltaXRlciIgaXMgZW1wdHksIG9yIGNvbnNpc3RzIG9ubHkgb2YgaWdub3JhYmxlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIChpLmUuLCBpcyBzZW1hbnRpY2FsbHkgZW1wdHkpLCB0aHdlIHdlIG9idmlvdXNseSBjYW4ndCBzZWFyY2gKKyAgICAgICAgICAgIC8vIGZvciAiZGVsaW1pdGVyIi4gIEluc3RlYWQsIGp1c3QgdXNlICJzdWIiIHRvIHBhcnNlIGFzIG11Y2ggb2YKKyAgICAgICAgICAgIC8vICJ0ZXh0IiBhcyBwb3NzaWJsZS4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gdGVtcFBQID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBOdW1iZXIgcmVzdWx0ID0gbmV3IExvbmcoMCk7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAgICAgLy8gdHJ5IHRvIG1hdGNoIHRoZSB3aG9sZSBzdHJpbmcgYWdhaW5zdCB0aGUgc3Vic3RpdHV0aW9uCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gc3ViLmRvUGFyc2UodGV4dCwgdGVtcFBQLCBiYXNlVmFsdWUsIHVwcGVyQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyLmxlbmllbnRQYXJzZUVuYWJsZWQoKSk7CisgICAgICAgICAgICBpZiAodGVtcFBQLmdldEluZGV4KCkgIT0gMCB8fCBzdWIuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSdzIGEgc3VjY2Vzc2Z1bCBtYXRjaCAob3IgaXQncyBhIG51bGwKKyAgICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24pLCB1cGRhdGUgcHAgdG8gcG9pbnQgdG8gdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIHdlIGRpZG4ndCBtYXRjaCwgYW5kIHBhc3MgdGhlIHJlc3VsdCBmcm9tCisgICAgICAgICAgICAgICAgLy8gc3ViLmRvUGFyc2UoKSBvbiB0aHJvdWdoIHRvIHRoZSBjYWxsZXIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleCh0ZW1wUFAuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBSZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgLy8gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgICAgICAvLyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYW5kIGlmIHdlIGdldCB0byBoZXJlLCB0aGVuIG5vdGhpbmcgbWF0Y2hlZCwgc28gd2UgcmV0dXJuCisgICAgICAgICAgICAvLyAwIGFuZCBsZWF2ZSBwcCBhbG9uZQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgc3RyaXBQcmVmaXgoKSB0byBtYXRjaCBjaGFyYWN0ZXJzLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlCisgICAgICogaXMgb2ZmLCB0aGlzIGp1c3QgY2FsbHMgc3RhcnRzV2l0aCgpLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlIGlzIG9uLAorICAgICAqIHRoaXMgZnVuY3Rpb24gdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3JzIHRvIG1hdGNoIGNoYXJhY3RlcnMgaW4KKyAgICAgKiB0aGUgc3RyaW5ncyAob25seSBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbgorICAgICAqIGRldGVybWluaW5nIHdoZXRoZXIgdGhlcmUncyBhIG1hdGNoKS4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgYmVpbmcgdGVzdGVkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB3ZSdyZSBob3BpbmcgdG8gc2VlIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgKiBvZiAic3RyIgorICAgICAqIEByZXR1cm4gSWYgInByZWZpeCIgaXMgZm91bmQgYXQgdGhlIGJlZ2lubmluZyBvZiAic3RyIiwgdGhpcworICAgICAqIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiAic3RyIiB0aGF0IHdlcmUgbWF0Y2hlZCAodGhpcworICAgICAqIGlzbid0IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBsZW5ndGggb2YgInByZWZpeCIgd2hlbiBtYXRjaGluZworICAgICAqIHRleHQgd2l0aCBhIGNvbGxhdG9yKS4gIElmIHRoZXJlJ3Mgbm8gbWF0Y2gsIHRoaXMgaXMgMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmVmaXhMZW5ndGgoU3RyaW5nIHN0ciwgU3RyaW5nIHByZWZpeCkgeworICAgICAgICAvLyBpZiB3ZSdyZSBsb29raW5nIGZvciBhbiBlbXB0eSBwcmVmaXgsIGl0IG9idmlvdXNseSBtYXRjaGVzCisgICAgICAgIC8vIHplcm8gY2hhcmFjdGVycy4gIEp1c3QgZ28gYWhlYWQgYW5kIHJldHVybiAwLgorICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gZ28gdGhyb3VnaCBhbGwgdGhpcyBncmllZiBpZiB3ZSdyZSBpbiBsZW5pZW50LXBhcnNlIG1vZGUKKyAgICAgICAgaWYgKGZvcm1hdHRlci5sZW5pZW50UGFyc2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZm9ybWF0dGVyJ3MgY29sbGF0b3IgYW5kIHVzZSBpdCB0byBjcmVhdGUgdHdvCisgICAgICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcnMsIG9uZSBvdmVyIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAvLyBhbmQgYW5vdGhlciBvdmVyIHRoZSBwcmVmaXggKHJpZ2h0IG5vdywgd2UnbGwgdGhyb3cgYW4KKyAgICAgICAgICAgIC8vIGV4Y2VwdGlvbiBpZiB0aGUgY29sbGF0b3Igd2UgZ2V0IGJhY2sgZnJvbSB0aGUgZm9ybWF0dGVyCisgICAgICAgICAgICAvLyBpc24ndCBhIFJ1bGVCYXNlZENvbGxhdG9yLCBiZWNhdXNlIFJ1bGVCYXNlZENvbGxhdG9yIGRlZmluZXMKKyAgICAgICAgICAgIC8vIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b2VyIHByb3RvY29sLiAgSG9wZWZ1bGx5LCB0aGlzCisgICAgICAgICAgICAvLyB3aWxsIGNoYW5nZSBzb21lZGF5LikKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBQcmV2aW91cyBjb2RlIHdhcyBtYXRjaGluZyAiZmlmdHktIiBhZ2FpbnN0ICIgZmlmdHkiIGFuZCBsZWF2aW5nCisgICAgICAgICAgICAvLyB0aGUgbnVtYmVyICIgZmlmdHktNyIgdG8gcGFyc2UgYXMgNDMgKDUwIC0gNykuCisgICAgICAgICAgICAvLyBBbHNvIGl0IHNlZW1zIHRoYXQgaWYgd2UgY29uc3VtZSB0aGUgZW50aXJlIHByZWZpeCwgdGhhdCdzIG9rIGV2ZW4KKyAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIGNvbnN1bWVkIHRoZSBlbnRpcmUgc3RyaW5nLCBzbyBJIHN3aXRjaGVkIHRoZSBsb2dpYyB0bworICAgICAgICAgICAgLy8gcmVmbGVjdCB0aGlzLgorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpZm9ybWF0dGVyLmdldENvbGxhdG9yKCk7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igc3RySXRlciA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHByZWZpeEl0ZXIgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IocHJlZml4KTsKKworICAgICAgICAgICAgLy8gbWF0Y2ggY29sbGF0aW9uIGVsZW1lbnRzIGJldHdlZW4gdGhlIHN0cmluZ3MKKyAgICAgICAgICAgIGludCBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICBpbnQgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworCisgICAgICAgICAgICB3aGlsZSAob1ByZWZpeCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBvdmVyIGlnbm9yYWJsZSBjaGFyYWN0ZXJzIGluIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgPT0gMCAmJiBvU3RyICE9CisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHNraXAgb3ZlciBpZ25vcmFibGUgY2hhcmFjdGVycyBpbiB0aGUgcHJlZml4CisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1ByZWZpeCkgPT0gMCAmJiBvUHJlZml4ICE9CisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHNraXBwaW5nIG92ZXIgaWdub3JhYmxlcyBicm91Z2h0IHRvIHRoZSBlbmQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgcHJlZml4LCB3ZSBESUQgbWF0Y2g6IGRyb3Agb3V0IG9mIHRoZSBsb29wCisgICAgICAgICAgICAgICAgaWYgKG9QcmVmaXggPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiBza2lwcGluZyBvdmVyIGlnbm9yYWJsZXMgYnJvdWdodCB1cyB0byB0aGUgZW5kCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRhcmdldCBzdHJpbmcsIHdlIGRpZG4ndCBtYXRjaCBhbmQgcmV0dXJuIDAKKyAgICAgICAgICAgICAgICBpZiAob1N0ciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIG1hdGNoIGNvbGxhdGlvbiBlbGVtZW50cyBmcm9tIHRoZSB0d28gc3RyaW5ncworICAgICAgICAgICAgICAgIC8vIChjb25zaWRlcmluZyBvbmx5IHByaW1hcnkgZGlmZmVyZW5jZXMpLiAgSWYgd2UKKyAgICAgICAgICAgICAgICAvLyBnZXQgYSBtaXNtYXRjaCwgZHVtcCBvdXQgYW5kIHJldHVybiAwCisgICAgICAgICAgICAgICAgaWYgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5T3JkZXIob1ByZWZpeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgYWR2YW5jZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gZWFjaCBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBhbmQgbG9vcCAod2UgZHJvcCBvdXQgb2YgdGhlIGxvb3Agd2hlbiB3ZSBleGhhdXN0CisgICAgICAgICAgICAgICAgLy8gY29sbGF0aW9uIGVsZW1lbnRzIGluIHRoZSBwcmVmaXgpCisKKyAgICAgICAgICAgICAgICBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB3ZSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBqZGsgMS4xIGFueSBsb25nZXIKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzdHJJdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgaWYgKG9TdHIgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIC0tcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIEpESyAxLjItc3BlY2lmaWMgQVBJIGNhbGwKKyAgICAgICAgICAgICAgLy8gcmV0dXJuIHN0ckl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBKREsgMS4xIEhBQ0sgKHRha2Ugb3V0IGZvciAxLjItc3BlY2lmaWMgY29kZSkKKworICAgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IHRvIGhlcmUsIHdlIGhhdmUgYSBzdWNjZXNzZnVsIG1hdGNoLiAgTm93IHdlCisgICAgICAgICAgICAgIC8vIGhhdmUgdG8gZmluZCBvdXQgSE9XIE1BTlkgY2hhcmFjdGVycyBmcm9tIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAgIC8vIG1hdGNoZWQgdGhlIHByZWZpeCAodGhlcmUgaXNuJ3QgbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lCisgICAgICAgICAgICAgIC8vIG1hcHBpbmcgYmV0d2VlbiBjb2xsYXRpb24gZWxlbWVudHMgYW5kIGNoYXJhY3RlcnMpLgorICAgICAgICAgICAgICAvLyBJbiBKREsgMS4yLCB0aGVyZSdzIGEgc2ltcGxlIGdldE9mZnNldCgpIGNhbGwgd2UgY2FuIHVzZS4KKyAgICAgICAgICAgICAgLy8gSW4gSkRLIDEuMSwgb24gdGhlIG90aGVyIGhhbmQsIHdlIGhhdmUgdG8gZ28gdGhyb3VnaCBzb21lCisgICAgICAgICAgICAgIC8vIHVnbHkgY29udG9ydGlvbnMuICBGaXJzdCwgdXNlIHRoZSBjb2xsYXRvciB0byBjb21wYXJlIHRoZQorICAgICAgICAgICAgICAvLyBzYW1lIG51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIHByZWZpeCBhbmQgdGFyZ2V0IHN0cmluZy4KKyAgICAgICAgICAgICAgLy8gSWYgdGhleSdyZSBlcXVhbCwgd2UncmUgZG9uZS4KKyAgICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgIGlmIChzdHIubGVuZ3RoKCkgPj0gcHJlZml4Lmxlbmd0aCgpCisgICAgICAgICAgICAgICYmIGNvbGxhdG9yLmVxdWFscyhzdHIuc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgoKSksIHByZWZpeCkpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIGlmIHRoZXkncmUgbm90IGVxdWFsLCB0aGVuIHdlIGhhdmUgdG8gY29tcGFyZSBzdWNjZXNzaXZlbHkKKyAgICAgICAgICAgICAgLy8gbGFyZ2VyIGFuZCBsYXJnZXIgc3Vic3RyaW5ncyBvZiB0aGUgdGFyZ2V0IHN0cmluZyB1bnRpbCB3ZQorICAgICAgICAgICAgICAvLyBnZXQgdG8gb25lIHRoYXQgbWF0Y2hlcyB0aGUgcHJlZml4LiAgQXQgdGhhdCBwb2ludCwgd2Uga25vdworICAgICAgICAgICAgICAvLyBob3cgbWFueSBjaGFyYWN0ZXJzIG1hdGNoZWQgdGhlIHByZWZpeCwgYW5kIHdlIGNhbiByZXR1cm4uCisgICAgICAgICAgICAgIGludCBwID0gMTsKKyAgICAgICAgICAgICAgd2hpbGUgKHAgPD0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgIGlmIChjb2xsYXRvci5lcXVhbHMoc3RyLnN1YnN0cmluZygwLCBwKSwgcHJlZml4KSkgeworICAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBTSE9VTEtEIE5FVkVSIEdFVCBIRVJFISEhCisgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIC8vIElmIGxlbmllbnQgcGFyc2luZyBpcyB0dXJuZWQgb2ZmLCBmb3JnZXQgYWxsIHRoYXQgY3JhcCBhYm92ZS4KKyAgICAgICAgICAgIC8vIEp1c3QgdXNlIFN0cmluZy5zdGFydHNXaXRoKCkgYW5kIGJlIGRvbmUgd2l0aCBpdC4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFNlYXJjaGVzIGEgc3RyaW5nIGZvciBhbm90aGVyIHN0cmluZy4gIElmIGxlbmllbnQgcGFyc2luZyBpcyBvZmYsCisgICAgICogdGhpcyBqdXN0IGNhbGxzIGluZGV4T2YoKS4gIElmIGxlbmllbnQgcGFyc2luZyBpcyBvbiwgdGhpcyBmdW5jdGlvbgorICAgICAqIHVzZXMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHRvIG1hdGNoIGNoYXJhY3RlcnMsIGFuZCBvbmx5CisgICAgICogcHJpbWFyeS1vcmRlciBkaWZmZXJlbmNlcyBhcmUgc2lnbmlmaWNhbnQgaW4gZGV0ZXJtaW5pbmcgd2hldGhlcgorICAgICAqIHRoZXJlJ3MgYSBtYXRjaC4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gc2VhcmNoCisgICAgICogQHBhcmFtIGtleSBUaGUgc3RyaW5nIHRvIHNlYXJjaCAic3RyIiBmb3IKKyAgICAgKiBAcmV0dXJuIEEgdHdvLWVsZW1lbnQgYXJyYXkgb2YgaW50cy4gIEVsZW1lbnQgMCBpcyB0aGUgcG9zaXRpb24KKyAgICAgKiBvZiB0aGUgbWF0Y2gsIG9yIC0xIGlmIHRoZXJlIHdhcyBubyBtYXRjaC4gIEVsZW1lbnQgMSBpcyB0aGUKKyAgICAgKiBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiAic3RyIiB0aGF0IG1hdGNoZWQgKHdoaWNoIGlzbid0IG5lY2Vzc2FyaWx5CisgICAgICogdGhlIHNhbWUgYXMgdGhlIGxlbmd0aCBvZiAia2V5IikKKyAgICAgKi8KKy8qICAgIHByaXZhdGUgaW50W10gZmluZFRleHQoU3RyaW5nIHN0ciwgU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gZmluZFRleHQoc3RyLCBrZXksIDApOworICAgIH0qLworCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgYSBzdHJpbmcgZm9yIGFub3RoZXIgc3RyaW5nLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9mZiwKKyAgICAgKiB0aGlzIGp1c3QgY2FsbHMgaW5kZXhPZigpLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9uLCB0aGlzIGZ1bmN0aW9uCisgICAgICogdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgdG8gbWF0Y2ggY2hhcmFjdGVycywgYW5kIG9ubHkKKyAgICAgKiBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbiBkZXRlcm1pbmluZyB3aGV0aGVyCisgICAgICogdGhlcmUncyBhIG1hdGNoLgorICAgICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byBzZWFyY2gKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBzdHJpbmcgdG8gc2VhcmNoICJzdHIiIGZvcgorICAgICAqIEBwYXJhbSBzdGFydGluZ0F0IFRoZSBpbmRleCBpbnRvICJzdHIiIHdoZXJlIHRoZSBzZWFyY2ggaXMgdG8KKyAgICAgKiBiZWdpbgorICAgICAqIEByZXR1cm4gQSB0d28tZWxlbWVudCBhcnJheSBvZiBpbnRzLiAgRWxlbWVudCAwIGlzIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBtYXRjaCwgb3IgLTEgaWYgdGhlcmUgd2FzIG5vIG1hdGNoLiAgRWxlbWVudCAxIGlzIHRoZQorICAgICAqIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluICJzdHIiIHRoYXQgbWF0Y2hlZCAod2hpY2ggaXNuJ3QgbmVjZXNzYXJpbHkKKyAgICAgKiB0aGUgc2FtZSBhcyB0aGUgbGVuZ3RoIG9mICJrZXkiKQorICAgICAqLworICAgIHByaXZhdGUgaW50W10gZmluZFRleHQoU3RyaW5nIHN0ciwgU3RyaW5nIGtleSwgaW50IHN0YXJ0aW5nQXQpIHsKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoaXMgaXMgZWFzeToganVzdCBjYWxsCisgICAgICAgIC8vIFN0cmluZy5pbmRleE9mKCkgYW5kIHdlJ3JlIGRvbmUKKyAgICAgICAgaWYgKCFmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IGludFtdIHsgc3RyLmluZGV4T2Yoa2V5LCBzdGFydGluZ0F0KSwga2V5Lmxlbmd0aCgpIH07CisKKyAgICAgICAgICAgIC8vIGJ1dCBpZiBsZW5pZW50IHBhcnNpbmcgaXMgdHVybmVkIE9OLCB3ZSd2ZSBnb3Qgc29tZSB3b3JrCisgICAgICAgICAgICAvLyBhaGVhZCBvZiB1cworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAvLyBKREsgMS4xIEhBQ0sgKHRha2Ugb3V0IG9mIDEuMi1zcGVjaWZpYyBjb2RlKQorCisgICAgICAgICAgICAvLyBpbiBKREsgMS4yLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJvdmlkZXMgdXMgd2l0aCBhbgorICAgICAgICAgICAgLy8gQVBJIHRvIG1hcCBiZXR3ZWVuIGNoYXJhY3RlciBvZmZzZXRzIGFuZCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgICAgICAgIC8vIGFuZCB3ZSBjYW4gZG8gdGhpcyBieSBtYXJjaGluZyB0aHJvdWdoIHRoZSBzdHJpbmcgY29tcGFyaW5nCisgICAgICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudHMuICBXZSBjYW4ndCBkbyB0aGF0IGluIEpESyAxLjEuICBJbnN0ZWQsCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIGdvIHRocm91Z2ggdGhpcyBob3JyaWJsZSBzbG93IG1lc3M6CisgICAgICAgICAgICBpbnQgcCA9IHN0YXJ0aW5nQXQ7CisgICAgICAgICAgICBpbnQga2V5TGVuID0gMDsKKworICAgICAgICAgICAgLy8gYmFzaWNhbGx5IGp1c3QgaXNvbGF0ZSBzbWFsbGVyIGFuZCBzbWFsbGVyIHN1YnN0cmluZ3Mgb2YKKyAgICAgICAgICAgIC8vIHRoZSB0YXJnZXQgc3RyaW5nIChlYWNoIHJ1bm5pbmcgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLAorICAgICAgICAgICAgLy8gYW5kIHdpdGggdGhlIGZpcnN0IG9uZSBydW5uaW5nIGZyb20gc3RhcnRpbmdBdCB0byB0aGUgZW5kKQorICAgICAgICAgICAgLy8gYW5kIHRoZW4gdXNlIHByZWZpeExlbmd0aCgpIHRvIHNlZSBpZiB0aGUgc2VhcmNoIGtleSBpcyBhdAorICAgICAgICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiBlYWNoIHN1YnN0cmluZy4gIFRoaXMgaXMgZXhjcnVjaWF0aW5nbHkKKyAgICAgICAgICAgIC8vIHNsb3csIGJ1dCBpdCB3aWxsIGxvY2F0ZSB0aGUga2V5IGFuZCB0ZWxsIHVzZSBob3cgbG9uZyB0aGUKKyAgICAgICAgICAgIC8vIG1hdGNoaW5nIHRleHQgd2FzLgorICAgICAgICAgICAgd2hpbGUgKHAgPCBzdHIubGVuZ3RoKCkgJiYga2V5TGVuID09IDApIHsKKyAgICAgICAgICAgICAgICBrZXlMZW4gPSBwcmVmaXhMZW5ndGgoc3RyLnN1YnN0cmluZyhwKSwga2V5KTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5TGVuICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbXSB7IHAsIGtleUxlbiB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IHRvIGhlcmUsIHdlIGRpZG4ndCBmaW5kIGl0LiAgUmV0dXJuIC0xIGZvciB0aGUKKyAgICAgICAgICAgIC8vIGxvY2F0aW9uLiAgVGhlIGxlbmd0aCBzaG91bGQgYmUgaWdub3JlZCwgYnV0IHNldCBpdCB0byAwLAorICAgICAgICAgICAgLy8gd2hpY2ggc2hvdWxkIGJlICJzYWZlIgorICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbXSB7IC0xLCAwIH07CisKKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgLy8gSkRLIDEuMiB2ZXJzaW9uIG9mIHRoaXMgcm91dGluZQorICAgICAgICAgICAgLy9SdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilmb3JtYXR0ZXIuZ2V0Q29sbGF0b3IoKTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBzdHJJdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgICAgICAvL0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBrZXlJdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGtleSk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9pbnQga2V5U3RhcnQgPSAtMTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL3N0ci5zZXRPZmZzZXQoc3RhcnRpbmdBdCk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9pbnQgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy9pbnQgb0tleSA9IGtleUl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy93aGlsZSAob0tleSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAvLyAgICB3aGlsZSAob1N0ciAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSICYmCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9TdHIpID09IDApCisgICAgICAgICAgICAvLyAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIHdoaWxlIChvS2V5ICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgJiYKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob0tleSkgPT0gMCkKKyAgICAgICAgICAgIC8vICAgICAgICBvS2V5ID0ga2V5SXRlci5uZXh0KCk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICAgaWYgKG9TdHIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8gICAgICAgIHJldHVybiBuZXcgaW50W10geyAtMSwgMCB9OworICAgICAgICAgICAgLy8gICAgfQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIGlmIChvS2V5ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIC8vICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vICAgIH0KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICBpZiAoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvU3RyKSA9PQorICAgICAgICAgICAgLy8gICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9LZXkpKSB7CisgICAgICAgICAgICAvLyAgICAgICAga2V5U3RhcnQgPSBzdHJJdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgLy8gICAgICAgIG9TdHIgPSBzdHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIC8vICAgICAgICBvS2V5ID0ga2V5SXRlci5uZXh0KCk7CisgICAgICAgICAgICAvLyAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gICAgICAgIGlmIChrZXlTdGFydCAhPSAtMSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICBrZXlTdGFydCA9IC0xOworICAgICAgICAgICAgLy8gICAgICAgICAgICBrZXlJdGVyLnJlc2V0KCk7CisgICAgICAgICAgICAvLyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgICAgIC8vICAgIH0KKyAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vaWYgKG9LZXkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8gICAgcmV0dXJuIG5ldyBpbnRbXSB7IGtleVN0YXJ0LCBzdHJJdGVyLmdldE9mZnNldCgpIC0ga2V5U3RhcnQgfTsKKyAgICAgICAgICAgIC8vfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgIHJldHVybiBuZXcgaW50W10geyAtMSwgMCB9OworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgdG8gc2VlIHdoZXRoZXIgYSBzdHJpbmcgY29uc2lzdHMgZW50aXJlbHkgb2YgaWdub3JhYmxlCisgICAgICogY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gdGVzdC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyBpcyBlbXB0eSBvZiBjb25zaXN0cyBlbnRpcmVseSBvZgorICAgICAqIGNoYXJhY3RlcnMgdGhhdCB0aGUgbnVtYmVyIGZvcm1hdHRlcidzIGNvbGxhdG9yIHNheXMgYXJlCisgICAgICogaWdub3JhYmxlIGF0IHRoZSBwcmltYXJ5LW9yZGVyIGxldmVsLiAgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBhbGxJZ25vcmFibGUoU3RyaW5nIHN0cikgeworICAgICAgICAvLyBpZiB0aGUgc3RyaW5nIGlzIGVtcHR5LCB3ZSBjYW4ganVzdCByZXR1cm4gdHJ1ZQorICAgICAgICBpZiAoc3RyLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvbiwgd2FsayB0aHJvdWdoIHRoZSBzdHJpbmcgd2l0aAorICAgICAgICAvLyBhIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGFuZCBtYWtlIHN1cmUgZWFjaCBjb2xsYXRpb24KKyAgICAgICAgLy8gZWxlbWVudCBpcyAwIChpZ25vcmFibGUpIGF0IHRoZSBwcmltYXJ5IGxldmVsCisgICAgICAgIGlmIChmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcikoZm9ybWF0dGVyLmdldENvbGxhdG9yKCkpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3RyKTsKKworICAgICAgICAgICAgaW50IG8gPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIHdoaWxlIChvICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIKKyAgICAgICAgICAgICAgICAgICAmJiBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG8pID09IDApIHsKKyAgICAgICAgICAgICAgICBvID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbyA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoZXJlIGlzIG5vIHN1Y2ggdGhpbmcgYXMKKyAgICAgICAgICAgIC8vIGFuIGlnbm9yYWJsZSBjaGFyYWN0ZXI6IHJldHVybiB0cnVlIG9ubHkgaWYgdGhlIHN0cmluZyBpcyBlbXB0eQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYmE4MjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlU2V0LmphdmEKQEAgLTAsMCArMSw3ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIEEgY29sbGVjdGlvbiBvZiBydWxlcyB1c2VkIGJ5IGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvIGZvcm1hdCBhbmQKKyAqIHBhcnNlIG51bWJlcnMuICBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgYSBSdWxlU2V0IHRvIHNlbGVjdCBhbgorICogYXBwcm9wcmlhdGUgcnVsZSBmb3IgZm9ybWF0dGluZyBhIHBhcnRpY3VsYXIgbnVtYmVyIGFuZCBkaXNwYXRjaAorICogY29udHJvbCB0byBpdCwgYW5kIHRvIGFyYml0cmF0ZSBiZXR3ZWVuIGRpZmZlcmVudCBydWxlcyB3aGVuIHBhcnNpbmcKKyAqIGEgbnVtYmVyLgorICovCisKK2ZpbmFsIGNsYXNzIE5GUnVsZVNldCB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGRhdGEgbWVtYmVycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgc2V0J3MgcmVndWxhciBydWxlcworICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlW10gcnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBuZWdhdGl2ZS1udW1iZXIgcnVsZQorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIG5lZ2F0aXZlTnVtYmVyUnVsZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBmcmFjdGlvbiBydWxlczogZWxlbWVudCAwIGlzIHRoZSBwcm9wZXIgZnJhY3Rpb24KKyAgICAgKiAoMC54KSBydWxlLCBlbGVtZW50IDEgaXMgdGhlIGltcHJvcGVyIGZyYWN0aW9uICh4LngpIHJ1bGUsIGFuZAorICAgICAqIGVsZW1lbnQgMiBpcyB0aGUgbWFzdGVyICh4LjApIHJ1bGUuCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGVbXSBmcmFjdGlvblJ1bGVzID0gbmV3IE5GUnVsZVszXTsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhlIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQuICBBIGZyYWN0aW9uIHJ1bGUgc2V0CisgICAgICogaXMgYSBydWxlIHNldCB0aGF0IGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYQorICAgICAqIG51bWJlci4gIEl0IGlzIGNhbGxlZCBmcm9tIGEgPj4gc3Vic3RpdHV0aW9uIGluIGFub3RoZXIgcnVsZSBzZXQncworICAgICAqIGZyYWN0aW9uIHJ1bGUsIGFuZCBpcyBvbmx5IGNhbGxlZCB1cG9uIHRvIGZvcm1hdCB2YWx1ZXMgYmV0d2VlbgorICAgICAqIDAgYW5kIDEuICBBIGZyYWN0aW9uIHJ1bGUgc2V0IGhhcyBkaWZmZXJlbnQgcnVsZS1zZWxlY3Rpb24KKyAgICAgKiBiZWhhdmlvciB0aGFuIGEgcmVndWxhciBydWxlIHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNGcmFjdGlvblJ1bGVTZXQgPSBmYWxzZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIHRvIGxpbWl0IHJlY3Vyc2lvbiBmb3IgYmFkIHJ1bGUgc2V0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByZWN1cnNpb25Db3VudCA9IDA7CisKKyAgICAvKioKKyAgICAgICogTGltaXQgb2YgcmVjdXJzaW9uLgorICAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkVDVVJTSU9OX0xJTUlUID0gNTA7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoKKyAgICAgKiBDb25zdHJ1Y3RzIGEgcnVsZSBzZXQuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9ucyBBbiBhcnJheSBvZiBTdHJpbmdzIHJlcHJlc2VudGluZyBydWxlIHNldAorICAgICAqIGRlc2NyaXB0aW9ucy4gIE9uIGV4aXQsIHRoaXMgcnVsZSBzZXQncyBlbnRyeSBpbiB0aGUgYXJyYXkgd2lsbAorICAgICAqIGhhdmUgYmVlbiBzdHJpcHBlZCBvZiBpdHMgcnVsZSBzZXQgbmFtZSBhbmQgYW55IHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBpbnRvICJkZXNjcmlwdGlvbnMiIG9mIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIGZvciB0aGUgcnVsZSB0byBiZSBjb25zdHJ1Y3RlZAorICAgICAqLworICAgIHB1YmxpYyBORlJ1bGVTZXQoU3RyaW5nW10gZGVzY3JpcHRpb25zLCBpbnQgaW5kZXgpIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbnNbaW5kZXhdOworCisgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IHJ1bGUgc2V0IGRlc2NyaXB0aW9uIik7CisgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCBhIHJ1bGUgc2V0IG5hbWUgKHRoZSBydWxlIHNldAorICAgICAgICAvLyBuYW1lIGNhbiBiZSBvbWl0dGVkIGluIGZvcm1hdHRlciBkZXNjcmlwdGlvbnMgdGhhdCBjb25zaXN0CisgICAgICAgIC8vIG9mIG9ubHkgb25lIHJ1bGUgc2V0KSwgY29weSBpdCBvdXQgaW50byBvdXIgIm5hbWUiIG1lbWJlcgorICAgICAgICAvLyBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJyUnKSB7CisgICAgICAgICAgICBpbnQgcG9zID0gZGVzY3JpcHRpb24uaW5kZXhPZignOicpOworICAgICAgICAgICAgaWYgKHBvcyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJ1bGUgc2V0IG5hbWUgZG9lc24ndCBlbmQgaW4gY29sb24iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbmFtZSA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCBwb3MpOworICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSAmJiBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShkZXNjcmlwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckF0KCsrcG9zKSkpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5zdWJzdHJpbmcocG9zKTsKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNbaW5kZXhdID0gZGVzY3JpcHRpb247CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGRvZXNuJ3QgYmVnaW4gd2l0aCBhIHJ1bGUgc2V0IG5hbWUsIGl0cworICAgICAgICAvLyBuYW1lIGlzICIlZGVmYXVsdCIKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5hbWUgPSAiJWRlZmF1bHQiOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IHJ1bGUgc2V0IGRlc2NyaXB0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBhbGwgb2YgdGhlIG90aGVyIG1lbWJlcnMgb2YgTkZSdWxlU2V0IGFyZSBpbml0aWFsaXplZAorICAgICAgICAvLyBieSBwYXJzZVJ1bGVzKCkKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgdGhlIHN1Ym9yZGluYXRlIGRhdGEgc3RydWN0dXJlcyB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY29uc3RydWN0b3IKKyAgICAgKiBhZnRlciBhbGwgdGhlIHJ1bGUgc2V0cyBoYXZlIGJlZW4gY3JlYXRlZCB0byBhY3R1YWxseSBwYXJzZQorICAgICAqIHRoZSBkZXNjcmlwdGlvbiBhbmQgYnVpbGQgcnVsZXMgZnJvbSBpdC4gIFNpbmNlIGFueSBydWxlIHNldAorICAgICAqIGNhbiByZWZlciB0byBhbnkgb3RoZXIgcnVsZSBzZXQsIHdlIGhhdmUgdG8gaGF2ZSBjcmVhdGVkIGFsbCBvZgorICAgICAqIHRoZW0gYmVmb3JlIHdlIGNhbiBjcmVhdGUgYW55dGhpbmcgZWxzZS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhpcyBydWxlIHNldAorICAgICAqIEBwYXJhbSBvd25lciBUaGUgZm9ybWF0dGVyIHRoYXQgb3ducyB0aGlzIHJ1bGUgc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2VSdWxlcyhTdHJpbmcgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXIpIHsKKyAgICAgICAgLy8gc3RhcnQgYnkgY3JlYXRpbmcgYSBWZWN0b3Igd2hvc2UgZWxlbWVudHMgYXJlIFN0cmluZ3MgY29udGFpbmluZworICAgICAgICAvLyB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSBydWxlcyAob25lIHJ1bGUgcGVyIGVsZW1lbnQpLiAgVGhlIHJ1bGVzCisgICAgICAgIC8vIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyAodGhlcmUncyBubyBlc2NhcGUgZmFjaWxpdHk6IEFMTAorICAgICAgICAvLyBzZW1pY29sb25zIGFyZSBydWxlIGRlbGltaXRlcnMpCisgICAgICAgIFZlY3RvciBydWxlRGVzY3JpcHRpb25zID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGludCBvbGRQID0gMDsKKyAgICAgICAgaW50IHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCc7Jyk7CisgICAgICAgIHdoaWxlIChvbGRQICE9IC0xKSB7CisgICAgICAgICAgICBpZiAocCAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJ1bGVEZXNjcmlwdGlvbnMuYWRkRWxlbWVudChkZXNjcmlwdGlvbi5zdWJzdHJpbmcob2xkUCwgcCkpOworICAgICAgICAgICAgICAgIG9sZFAgPSBwICsgMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG9sZFAgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBydWxlRGVzY3JpcHRpb25zLmFkZEVsZW1lbnQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKG9sZFApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkUCA9IHA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwID0gZGVzY3JpcHRpb24uaW5kZXhPZignOycsIHAgKyAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdyBnbyBiYWNrIHRocm91Z2ggYW5kIGJ1aWxkIGEgdmVjdG9yIG9mIHRoZSBydWxlcyB0aGVtc2VsdmVzCisgICAgICAgIC8vICh0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkZXNjcmlwdGlvbiBsaXN0IGlzbid0IG5lY2Vzc2FyaWx5CisgICAgICAgIC8vIHRoZSBudW1iZXIgb2YgcnVsZXMtLSBzb21lIGRlc2NyaXB0aW9ucyBtYXkgZXhwZW5kIGludG8gdHdvIHJ1bGVzKQorICAgICAgICBWZWN0b3IgdGVtcFJ1bGVzID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHdlIGtlZXAgdHJhY2sgb2YgdGhlIHJ1bGUgYmVmb3JlIHRoZSBvbmUgd2UncmUgY3VycmVudGx5IHdvcmtpbmcKKyAgICAgICAgLy8gb24gc29sZWx5IHRvIHN1cHBvcnQgPj4+IHN1YnN0aXR1dGlvbnMKKyAgICAgICAgTkZSdWxlIHByZWRlY2Vzc29yID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlRGVzY3JpcHRpb25zLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAvLyBtYWtlUnVsZXMgKGEgZmFjdG9yeSBtZXRob2Qgb24gTkZSdWxlKSB3aWxsIHJldHVybiBlaXRoZXIKKyAgICAgICAgICAgIC8vIGEgc2luZ2xlIHJ1bGUgb3IgYW4gYXJyYXkgb2YgcnVsZXMuICBFaXRoZXIgd2F5LCBhZGQgdGhlbQorICAgICAgICAgICAgLy8gdG8gb3VyIHJ1bGUgdmVjdG9yCisgICAgICAgICAgICBPYmplY3QgdGVtcCA9IE5GUnVsZS5tYWtlUnVsZXMoKFN0cmluZylydWxlRGVzY3JpcHRpb25zLmVsZW1lbnRBdChpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBwcmVkZWNlc3Nvciwgb3duZXIpOworCisgICAgICAgICAgICBpZiAodGVtcCBpbnN0YW5jZW9mIE5GUnVsZSkgeworICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5hZGRFbGVtZW50KHRlbXApOworICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yID0gKE5GUnVsZSl0ZW1wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodGVtcCBpbnN0YW5jZW9mIE5GUnVsZVtdKSB7CisgICAgICAgICAgICAgICAgTkZSdWxlW10gcnVsZXNUb0FkZCA9IChORlJ1bGVbXSl0ZW1wOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBydWxlc1RvQWRkLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5hZGRFbGVtZW50KHJ1bGVzVG9BZGRbal0pOworICAgICAgICAgICAgICAgICAgICBwcmVkZWNlc3NvciA9IHJ1bGVzVG9BZGRbal07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIG5vdyB3ZSBjYW4gYmFnIHRoZSBkZXNjcmlwdGlvbiBsaXN0CisgICAgICAgIHJ1bGVEZXNjcmlwdGlvbnMgPSBudWxsOworCisgICAgICAgIC8vIGZvciBydWxlcyB0aGF0IGRpZG4ndCBzcGVjaWZ5IGEgYmFzZSB2YWx1ZSwgdGhlaXIgYmFzZSB2YWx1ZXMKKyAgICAgICAgLy8gd2VyZSBpbml0aWFsaXplZCB0byAwLiAgTWFrZSBhbm90aGVyIHBhc3MgdGhyb3VnaCB0aGUgbGlzdCBhbmQKKyAgICAgICAgLy8gc2V0IGFsbCB0aG9zZSBydWxlcycgYmFzZSB2YWx1ZXMuICBXZSBhbHNvIHJlbW92ZSBhbnkgc3BlY2lhbAorICAgICAgICAvLyBydWxlcyBmcm9tIHRoZSBsaXN0IGFuZCBwdXQgdGhlbSBpbnRvIHRoZWlyIG93biBtZW1iZXIgdmFyaWFibGVzCisgICAgICAgIGxvbmcgZGVmYXVsdEJhc2VWYWx1ZSA9IDA7CisKKyAgICAgICAgLy8gKHRoaXMgaXNuJ3QgYSBmb3IgbG9vcCBiZWNhdXNlIHdlIG1pZ2h0IGJlIGRlbGV0aW5nIGl0ZW1zIGZyb20KKyAgICAgICAgLy8gdGhlIHZlY3Rvci0tIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIG9ubHkgaW5jcmVtZW50IGkgd2hlbgorICAgICAgICAvLyB3ZSBfZGlkbid0XyBkZWxldGUgYXl0aGluZyBmcm9tIHRoZSB2ZWN0b3IpCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKGkgPCB0ZW1wUnVsZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBORlJ1bGUgcnVsZSA9IChORlJ1bGUpdGVtcFJ1bGVzLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgc3dpdGNoICgoaW50KXJ1bGUuZ2V0QmFzZVZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgaXMgMCwgZmlsbCBpbiBhIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAvLyBiYXNlIHZhbHVlICh0aGlzIHdpbGwgYmUgMSBwbHVzIHRoZSBwcmVjZWRpbmcKKyAgICAgICAgICAgICAgICAvLyBydWxlJ3MgYmFzZSB2YWx1ZSBmb3IgcmVndWxhciBydWxlIHNldHMsIGFuZCB0aGUKKyAgICAgICAgICAgICAgICAvLyBzYW1lIGFzIHRoZSBwcmVjZWRpbmcgcnVsZSdzIGJhc2UgdmFsdWUgaW4gZnJhY3Rpb24KKyAgICAgICAgICAgICAgICAvLyBydWxlIHNldHMpCisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICBydWxlLnNldEJhc2VWYWx1ZShkZWZhdWx0QmFzZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0ZyYWN0aW9uUnVsZVNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytkZWZhdWx0QmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBuZWdhdGl2ZS1udW1iZXIgcnVsZSwgY29weSBpdCBpbnRvIGl0cyBvd24KKyAgICAgICAgICAgICAgICAvLyBkYXRhIG1lbWJlciBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGxpc3QKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5ORUdBVElWRV9OVU1CRVJfUlVMRToKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1iZXJSdWxlID0gcnVsZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlLCBjb3B5IGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBlbGVtZW50IG9mIGZyYWN0aW9uUnVsZXMKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5JTVBST1BFUl9GUkFDVElPTl9SVUxFOgorICAgICAgICAgICAgICAgICAgICBmcmFjdGlvblJ1bGVzWzBdID0gcnVsZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBwcm9wZXIgZnJhY3Rpb24gcnVsZSwgY29weSBpdCBpbnRvIHRoZQorICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZWxlbWVudCBvZiBmcmFjdGlvblJ1bGVzCisgICAgICAgICAgICAgICAgY2FzZSBORlJ1bGUuUFJPUEVSX0ZSQUNUSU9OX1JVTEU6CisgICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uUnVsZXNbMV0gPSBydWxlOworICAgICAgICAgICAgICAgICAgICB0ZW1wUnVsZXMucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIGlmIGl0J3MgdGhlIG1hc3RlciBydWxlLCBjb3B5IGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBlbGVtZW50IG9mIGZyYWN0aW9uUnVsZXMKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5NQVNURVJfUlVMRToKKyAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb25SdWxlc1syXSA9IHJ1bGU7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8gaWYgaXQncyBhIHJlZ3VsYXIgcnVsZSB0aGF0IGFscmVhZHkga25vd3MgaXRzIGJhc2UgdmFsdWUsCisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBydWxlcyBhcmUgaW4gb3JkZXIsIGFuZCB1cGRhdGUKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGVmYXVsdCBiYXNlIHZhbHVlIGZvciB0aGUgbmV4dCBydWxlCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPCBkZWZhdWx0QmFzZVZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSdWxlcyBhcmUgbm90IGluIG9yZGVyLCBiYXNlOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5nZXRCYXNlVmFsdWUoKSArICIgPCAiICsgZGVmYXVsdEJhc2VWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEJhc2VWYWx1ZSA9IHJ1bGUuZ2V0QmFzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghaXNGcmFjdGlvblJ1bGVTZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrZGVmYXVsdEJhc2VWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgd2UgY2FuIGNvcHkgdGhlIHJ1bGVzIGZyb20gdGhlIHZlY3RvciBpbnRvIGEKKyAgICAgICAgLy8gZml4ZWQtbGVuZ3RoIGFycmF5CisgICAgICAgIHJ1bGVzID0gbmV3IE5GUnVsZVt0ZW1wUnVsZXMuc2l6ZSgpXTsKKyAgICAgICAgdGVtcFJ1bGVzLmNvcHlJbnRvKChPYmplY3RbXSlydWxlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmxhZ3MgdGhpcyBydWxlIHNldCBhcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyBmdW5jdGlvbiBpcworICAgICAqIGNhbGxlZCBkdXJpbmcgdGhlIGNvbnN0cnVjdGlvbiBwcm9jZXNzIG9uY2Ugd2Uga25vdyB0aGlzIHJ1bGUKKyAgICAgKiBzZXQgaXMgYSBmcmFjdGlvbiBydWxlIHNldC4gIFdlIGRvbid0IGtub3cgYSBydWxlIHNldCBpcyBhCisgICAgICogZnJhY3Rpb24gcnVsZSBzZXQgdW50aWwgd2Ugc2VlIGl0IHVzZWQgc29tZXdoZXJlLiAgVGhpcyBmdW5jdGlvbgorICAgICAqIGlzIG5vdCBhZCBtdXN0IG5vdCBiZSBjYWxsZWQgYXQgYW55IHRpbWUgb3RoZXIgdGhhbiBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbWFrZUludG9GcmFjdGlvblJ1bGVTZXQoKSB7CisgICAgICAgIGlzRnJhY3Rpb25SdWxlU2V0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0d28gcnVsZSBzZXRzIGZvciBlcXVhbGl0eS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgcnVsZSBzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBydWxlIHNldHMgYXJlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICAvLyBpZiBkaWZmZXJlbnQgY2xhc3NlcywgdGhleSdyZSBub3QgZXF1YWwKKyAgICAgICAgaWYgKCEodGhhdCBpbnN0YW5jZW9mIE5GUnVsZVNldCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgY29tcGFyZSB0aGUgbWVtYmVycyBvbmUgYnkgb25lLi4uCisgICAgICAgICAgICBORlJ1bGVTZXQgdGhhdDIgPSAoTkZSdWxlU2V0KXRoYXQ7CisKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHModGhhdDIubmFtZSkKKyAgICAgICAgfHwgIVV0aWxpdHkub2JqZWN0RXF1YWxzKG5lZ2F0aXZlTnVtYmVyUnVsZSwgdGhhdDIubmVnYXRpdmVOdW1iZXJSdWxlKQorICAgICAgICB8fCAhVXRpbGl0eS5vYmplY3RFcXVhbHMoZnJhY3Rpb25SdWxlc1swXSwgdGhhdDIuZnJhY3Rpb25SdWxlc1swXSkKKyAgICAgICAgfHwgIVV0aWxpdHkub2JqZWN0RXF1YWxzKGZyYWN0aW9uUnVsZXNbMV0sIHRoYXQyLmZyYWN0aW9uUnVsZXNbMV0pCisgICAgICAgIHx8ICFVdGlsaXR5Lm9iamVjdEVxdWFscyhmcmFjdGlvblJ1bGVzWzJdLCB0aGF0Mi5mcmFjdGlvblJ1bGVzWzJdKQorICAgICAgICB8fCBydWxlcy5sZW5ndGggIT0gdGhhdDIucnVsZXMubGVuZ3RoCisgICAgICAgICAgICAgICAgfHwgaXNGcmFjdGlvblJ1bGVTZXQgIT0gdGhhdDIuaXNGcmFjdGlvblJ1bGVTZXQpIHsKKworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLi4udGhlbiBjb21wYXJlIHRoZSBydWxlIGxpc3RzLi4uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlc1tpXS5lcXVhbHModGhhdDIucnVsZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIC4uLmFuZCBpZiB3ZSBtYWtlIGl0IGhlcmUsIHRuZXkncmUgZXF1YWwKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBCdWlsZHMgYSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIGEgcnVsZSBzZXQuCisgICAgICogQHJldHVybiBBIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgYSBydWxlIHNldC4gIFRoaXMgd29uJ3QKKyAgICAgKiBuZWNlc3NhcmlseSBiZSB0aGUgc2FtZSBkZXNjcmlwdGlvbiB0aGF0IHRoZSBydWxlIHNldCB3YXMKKyAgICAgKiBjb25zdHJ1Y3RlZCB3aXRoLCBidXQgaXQgd2lsbCBwcm9kdWNlIHRoZSBzYW1lIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyB0aGUgcnVsZSBzZXQgbmFtZSBnb2VzIGZpcnN0Li4uCisgICAgICAgIHJlc3VsdC5hcHBlbmQobmFtZSArICI6XG4iKTsKKworICAgICAgICAvLyBmb2xsb3dlZCBieSB0aGUgcmVndWxhciBydWxlcy4uLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgICAgIiArIHJ1bGVzW2ldLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZvbGxvd2VkIGJ5IHRoZSBzcGVjaWFsIHJ1bGVzIChpZiB0aGV5IGV4aXN0KQorICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgbmVnYXRpdmVOdW1iZXJSdWxlLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnJhY3Rpb25SdWxlc1swXSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgICAgIiArIGZyYWN0aW9uUnVsZXNbMF0udG9TdHJpbmcoKSArICJcbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzWzFdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgZnJhY3Rpb25SdWxlc1sxXS50b1N0cmluZygpICsgIlxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZyYWN0aW9uUnVsZXNbMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICAgICIgKyBmcmFjdGlvblJ1bGVzWzJdLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNheXMgd2hldGhlciB0aGlzIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0OyBmYWxzZSBpZiBpdCBpc24ndAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRnJhY3Rpb25TZXQoKSB7CisgICAgICAgIHJldHVybiBpc0ZyYWN0aW9uUnVsZVNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKiBAcmV0dXJuIFRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBydWxlIHNldCBpcyBwdWJsaWMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBydWxlIHNldCBpcyBwdWJsaWMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1B1YmxpYygpIHsKKyAgICByZXR1cm4gIW5hbWUuc3RhcnRzV2l0aCgiJSUiKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBsb25nLiAgU2VsZWN0cyBhbiBhcHByb3ByaWF0ZSBydWxlIGFuZCBkaXNwYXRjaGVzCisgICAgICogY29udHJvbCB0byBpdC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdoZXJlIHRoZSByZXN1bHQgaXMgdG8gYmUgcGxhY2VkCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gaW4gdG9JbnNlcnRJbnRvIHdoZXJlIHRoZSByZXN1bHQgb2YKKyAgICAgKiB0aGlzIG9wZXJhdGlvbiBpcyB0byBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICBORlJ1bGUgYXBwbGljYWJsZVJ1bGUgPSBmaW5kTm9ybWFsUnVsZShudW1iZXIpOworCisgICAgICAgIGlmICgrK3JlY3Vyc2lvbkNvdW50ID49IFJFQ1VSU0lPTl9MSU1JVCkgeworICAgICAgICAgICAgcmVjdXJzaW9uQ291bnQgPSAwOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiUmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkIHdoZW4gYXBwbHlpbmcgcnVsZVNldCAiICsgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgYXBwbGljYWJsZVJ1bGUuZG9Gb3JtYXQobnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIC0tcmVjdXJzaW9uQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIGRvdWJsZS4gIFNlbGVjdHMgYW4gYXBwcm9wcmlhdGUgcnVsZSBhbmQgZGlzcGF0Y2hlcworICAgICAqIGNvbnRyb2wgdG8gaXQuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEBwYXJhbSB0b0luc2VydEludG8gVGhlIHN0cmluZyB3aGVyZSB0aGUgcmVzdWx0IGlzIHRvIGJlIHBsYWNlZAorICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgcmVzdWx0IG9mCisgICAgICogdGhpcyBvcGVyYXRpb24gaXMgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBmb3JtYXQoZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICBORlJ1bGUgYXBwbGljYWJsZVJ1bGUgPSBmaW5kUnVsZShudW1iZXIpOworCisgICAgICAgIGlmICgrK3JlY3Vyc2lvbkNvdW50ID49IFJFQ1VSU0lPTl9MSU1JVCkgeworICAgICAgICAgICAgcmVjdXJzaW9uQ291bnQgPSAwOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiUmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkIHdoZW4gYXBwbHlpbmcgcnVsZVNldCAiICsgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgYXBwbGljYWJsZVJ1bGUuZG9Gb3JtYXQobnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIC0tcmVjdXJzaW9uQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VsZWN0cyBhbiBhcHJvcHJpYXRlIHJ1bGUgZm9yIGZvcm1hdHRpbmcgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgaXQKKyAgICAgKi8KKyAgICBwcml2YXRlIE5GUnVsZSBmaW5kUnVsZShkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFjdGlvbiBydWxlIHNldCwgdXNlIGZpbmRGcmFjdGlvblJ1bGVTZXRSdWxlKCkKKyAgICAgICAgaWYgKGlzRnJhY3Rpb25SdWxlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUobnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHJldHVybiB0aGUgbmVnYXRpdmUgbnVtYmVyIHJ1bGUKKyAgICAgICAgLy8gKGlmIHRoZXJlIGlzbid0IGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUsIHdlIHByZXRlbmQgaXQncyBhCisgICAgICAgIC8vIHBvc2l0aXZlIG51bWJlcikKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIGlmIChuZWdhdGl2ZU51bWJlclJ1bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZWdhdGl2ZU51bWJlclJ1bGU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bWJlciA9IC1udW1iZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgbnVtYmVyIGlzbid0IGFuIGludGVnZXIsIHdlIHVzZSBvbmUgZiB0aGUgZnJhY3Rpb24gcnVsZXMuLi4KKyAgICAgICAgaWYgKG51bWJlciAhPSBNYXRoLmZsb29yKG51bWJlcikpIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgYmV0d2VlbiAwIGFuZCAxLCByZXR1cm4gdGhlIHByb3BlcgorICAgICAgICAgICAgLy8gZnJhY3Rpb24gcnVsZQorICAgICAgICAgICAgaWYgKG51bWJlciA8IDEgJiYgZnJhY3Rpb25SdWxlc1sxXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZyYWN0aW9uUnVsZXNbMV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlCisgICAgICAgICAgICBlbHNlIGlmIChmcmFjdGlvblJ1bGVzWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJhY3Rpb25SdWxlc1swXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZXJlJ3MgYSBtYXN0ZXIgcnVsZSwgdXNlIGl0IHRvIGZvcm1hdCB0aGUgbnVtYmVyCisgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzWzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmcmFjdGlvblJ1bGVzWzJdOworCisgICAgICAgIC8vIGFuZCBpZiB3ZSBoYXZlbid0IHlldCByZXR1cm5lZCBhIHJ1bGUsIHVzZSBmaW5kTm9ybWFsUnVsZSgpCisgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFwcGxpY2FibGUgcnVsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZpbmROb3JtYWxSdWxlKChsb25nKU1hdGgucm91bmQobnVtYmVyKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgdmFsdWUgcGFzc2VkIHRvIGZpbmRSdWxlKCkgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBmaW5kUnVsZSgpCisgICAgICogdXNlcyB0aGlzIGZ1bmN0aW9uIHRvIHNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgcnVsZS4gIFRoZSByZXN1bHQgd2lsbAorICAgICAqIGdlbmVyYWxseSBiZSB0aGUgcnVsZSB3aXRoIHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsCisgICAgICogdG8gdGhlIG51bWJlci4gIFRoZXJlIGlzIG9uZSBleGNlcHRpb24gdG8gdGhpczogSWYgdGhhdCBydWxlIGhhcworICAgICAqIHR3byBzdWJzdGl0dXRpb25zIGFuZCBhIGJhc2UgdmFsdWUgdGhhdCBpcyBub3QgYW4gZXZlbiBtdWx0aXBsZSBvZgorICAgICAqIGl0cyBkaXZpc29yLCBhbmQgdGhlIG51bWJlciBpdHNlbGYgSVMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzCisgICAgICogZGl2aXNvciwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgdGhlIHJ1bGUgdGhhdCBwcmVjZWRlZCB0aGUgb3JpZ2luYWwKKyAgICAgKiByZXN1bHQgaW4gdGhlIHJ1bGUgbGlzdC4gIChUaGlzIGJlaGF2aW9yIGlzIGtub3duIGFzIHRoZSAicm9sbGJhY2sKKyAgICAgKiBydWxlIiwgYW5kIGlzIHVzZWQgdG8gaGFuZGxlIG9wdGlvbmFsIHRleHQ6IGEgcnVsZSB3aXRoIG9wdGlvbmFsCisgICAgICogdGV4dCBpcyByZXByZXNlbnRlZCBpbnRlcm5hbGx5IGFzIHR3byBydWxlcywgYW5kIHRoZSByb2xsYmFjayBydWxlCisgICAgICogc2VsZWN0cyBhcHByb3ByaWF0ZSBiZXR3ZWVuIHRoZW0uICBUaGlzIGF2b2lkcyB0aGluZ3MgbGlrZSAidHdvCisgICAgICogaHVuZHJlZCB6ZXJvIi4pCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgdG8gdXNlIHRvIGZvcm1hdCB0aGlzIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIGZpbmROb3JtYWxSdWxlKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFjdGlvbiBydWxlIHNldCwgdXNlIGZpbmRGcmFjdGlvblJ1bGVTZXRSdWxlKCkKKyAgICAgICAgLy8gdG8gZmluZCB0aGUgcnVsZSAod2Ugc2hvdWxkIG9ubHkgZ28gaW50byB0aGlzIGNsYXVzZSBpZiB0aGUKKyAgICAgICAgLy8gdmFsdWUgaXMgMCkKKyAgICAgICAgaWYgKGlzRnJhY3Rpb25SdWxlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUobnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHJldHVybiB0aGUgbmVnYXRpdmUtbnVtYmVyIHJ1bGUKKyAgICAgICAgLy8gKGlmIHRoZXJlIGlzbid0IG9uZSwgcHJldGVuZCB0aGUgbnVtYmVyIGlzIHBvc2l0aXZlKQorICAgICAgICBpZiAobnVtYmVyIDwgMCkgeworICAgICAgICAgICAgaWYgKG5lZ2F0aXZlTnVtYmVyUnVsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0aXZlTnVtYmVyUnVsZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbnVtYmVyID0gLW51bWJlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHdlIGhhdmUgdG8gcmVwZWF0IHRoZSBwcmVjZWRpbmcgdHdvIGNoZWNrcywgZXZlbiB0aG91Z2ggd2UKKyAgICAgICAgLy8gZG8gdGhlbSBpbiBmaW5kUnVsZSgpLCBiZWNhdXNlIHRoZSB2ZXJzaW9uIG9mIGZvcm1hdCgpIHRoYXQKKyAgICAgICAgLy8gdGFrZXMgYSBsb25nIGJ5cGFzc2VzIGZpbmRSdWxlKCkgYW5kIGdvZXMgc3RyYWlnaHQgdG8gdGhpcworICAgICAgICAvLyBmdW5jdGlvbi4gIFRoaXMgZnVuY3Rpb24gZG9lcyBza2lwIHRoZSBmcmFjdGlvbiBydWxlcyBzaW5jZQorICAgICAgICAvLyB3ZSBrbm93IHRoZSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIChpdCBhbHNvIHNraXBzIHRoZSBtYXN0ZXIKKyAgICAgICAgLy8gcnVsZSwgc2luY2UgaXQncyBjb25zaWRlcmVkIGEgZnJhY3Rpb24gcnVsZS4gIFNraXBwaW5nIHRoZQorICAgICAgICAvLyBtYXN0ZXIgcnVsZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gaG93IHdlIGF2b2lkIGluZmluaXRlCisgICAgICAgIC8vIHJlY3Vyc2lvbikKKworICAgICAgICAvLyBiaW5hcnktc2VhcmNoIHRoZSBydWxlIGxpc3QgZm9yIHRoZSBhcHBsaWNhYmxlIHJ1bGUKKyAgICAgICAgLy8gKGEgcnVsZSBpcyB1c2VkIGZvciBhbGwgdmFsdWVzIGZyb20gaXRzIGJhc2UgdmFsdWUgdG8KKyAgICAgICAgLy8gdGhlIG5leHQgcnVsZSdzIGJhc2UgdmFsdWUpCisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCBoaSA9IHJ1bGVzLmxlbmd0aDsKKyAgICBpZiAoaGkgPiAwKSB7CisgICAgICAgIHdoaWxlIChsbyA8IGhpKSB7CisgICAgICAgIGludCBtaWQgPSAobG8gKyBoaSkgLyAyOworICAgICAgICBpZiAocnVsZXNbbWlkXS5nZXRCYXNlVmFsdWUoKSA9PSBudW1iZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBydWxlc1ttaWRdOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJ1bGVzW21pZF0uZ2V0QmFzZVZhbHVlKCkgPiBudW1iZXIpIHsKKyAgICAgICAgICAgIGhpID0gbWlkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG8gPSBtaWQgKyAxOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGhpID09IDApIHsgLy8gYmFkIHJ1bGUgc2V0CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlRoZSBydWxlIHNldCAiICsgbmFtZSArICIgY2Fubm90IGZvcm1hdCB0aGUgdmFsdWUgIiArIG51bWJlcik7CisgICAgICAgIH0KKyAgICAgICAgTkZSdWxlIHJlc3VsdCA9IHJ1bGVzW2hpIC0gMV07CisKKyAgICAgICAgLy8gdXNlIHNob3VsZFJvbGxCYWNrKCkgdG8gc2VlIHdoZXRoZXIgd2UgbmVlZCB0byBpbnZva2UgdGhlCisgICAgICAgIC8vIHJvbGxiYWNrIHJ1bGUgKHNlZSBzaG91bGRSb2xsQmFjaygpJ3MgZG9jdW1lbnRhdGlvbiBmb3IKKyAgICAgICAgLy8gYW4gZXhwbGFuYXRpb24gb2YgdGhlIHJvbGxiYWNrIHJ1bGUpLiAgSWYgd2UgZG8sIHJvbGwgYmFjaworICAgICAgICAvLyBvbmUgcnVsZSBhbmQgcmV0dXJuIHRoYXQgb25lIGluc3RlYWQgb2YgdGhlIG9uZSB3ZSdkIG5vcm1hbGx5CisgICAgICAgIC8vIHJldHVybgorICAgICAgICBpZiAocmVzdWx0LnNob3VsZFJvbGxCYWNrKG51bWJlcikpIHsKKyAgICAgICAgaWYgKGhpID09IDEpIHsgLy8gYmFkIHJ1bGUgc2V0CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJUaGUgcnVsZSBzZXQgIiArIG5hbWUgKyAiIGNhbm5vdCByb2xsIGJhY2sgZnJvbSB0aGUgcnVsZSAnIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBydWxlc1toaSAtIDJdOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8vIGVsc2UgdXNlIHRoZSBtYXN0ZXIgcnVsZQorICAgIHJldHVybiBmcmFjdGlvblJ1bGVzWzJdOworICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoaXMgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkKKyAgICAgKiBmaW5kUnVsZSgpIHRvIHNlbGVjdCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBydWxlIGZvciBmb3JtYXR0aW5nCisgICAgICogdGhlIG51bWJlci4gIEJhc2ljYWxseSwgdGhlIGJhc2UgdmFsdWUgb2YgZWFjaCBydWxlIGluIHRoZSBydWxlCisgICAgICogc2V0IGlzIHRyZWF0ZWQgYXMgdGhlIGRlbm9taW5hdG9yIG9mIGEgZnJhY3Rpb24uICBXaGljaGV2ZXIKKyAgICAgKiBkZW5vbWluYXRvciBjYW4gcHJvZHVjZSB0aGUgZnJhY3Rpb24gY2xvc2VzdCBpbiB2YWx1ZSB0byB0aGUKKyAgICAgKiBudW1iZXIgcGFzc2VkIGluIGlzIHRoZSByZXN1bHQuICBJZiB0aGVyZSdzIGEgdGllLCB0aGUgZWFybGllcgorICAgICAqIG9uZSBpbiB0aGUgbGlzdCB3aW5zLiAgKElmIHRoZXJlIGFyZSB0d28gcnVsZXMgaW4gYSByb3cgd2l0aCB0aGUKKyAgICAgKiBzYW1lIGJhc2UgdmFsdWUsIHRoZSBmaXJzdCBvbmUgaXMgdXNlZCB3aGVuIHRoZSBudW1lcmF0b3Igb2YgdGhlCisgICAgICogZnJhY3Rpb24gd291bGQgYmUgMSwgYW5kIHRoZSBzZWNvbmQgcnVsZSBpcyB1c2VkIHRoZSByZXN0IG9mIHRoZQorICAgICAqIHRpbWUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCAod2hpY2ggd2lsbCBhbHdheXMgYmUKKyAgICAgKiBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEpCisgICAgICogQHJldHVybiBUaGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0IHRoaXMgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGUgZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUoZG91YmxlIG51bWJlcikgeworICAgICAgICAvLyB0aGUgb2J2aW91cyB3YXkgdG8gZG8gdGhpcyAobXVsdGlwbHkgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZAorICAgICAgICAvLyBieSBlYWNoIHJ1bGUncyBiYXNlIHZhbHVlIHVudGlsIHlvdSBnZXQgYW4gaW50ZWdyYWwgcmVzdWx0KQorICAgICAgICAvLyBkb2Vzbid0IHdvcmsgYmVjYXVzZSBvZiByb3VuZGluZyBlcnJvci4gIFRoaXMgbWV0aG9kIGlzIG1vcmUKKyAgICAgICAgLy8gYWNjdXJhdGUKKworICAgICAgICAvLyBmaW5kIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgdGhlIHJ1bGVzJyBiYXNlIHZhbHVlcworICAgICAgICAvLyBhbmQgbXVsdGlwbHkgdGhpcyBieSB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4gIFRoaXMgaXMKKyAgICAgICAgLy8gYWxsIHRoZSBwcmVjaXNpb24gd2UgbmVlZCwgYW5kIHdlIGNhbiBkbyBhbGwgb2YgdGhlIHJlc3QKKyAgICAgICAgLy8gb2YgdGhlIG1hdGggdXNpbmcgaW50ZWdlciBhcml0aG1ldGljCisgICAgICAgIGxvbmcgbGVhc3RDb21tb25NdWx0aXBsZSA9IHJ1bGVzWzBdLmdldEJhc2VWYWx1ZSgpOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsZWFzdENvbW1vbk11bHRpcGxlID0gbGNtKGxlYXN0Q29tbW9uTXVsdGlwbGUsIHJ1bGVzW2ldLmdldEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBsb25nIG51bWVyYXRvciA9IChsb25nKShNYXRoLnJvdW5kKG51bWJlciAqIGxlYXN0Q29tbW9uTXVsdGlwbGUpKTsKKworICAgICAgICAvLyBmb3IgZWFjaCBydWxlLCBkbyB0aGUgZm9sbG93aW5nLi4uCisgICAgICAgIGxvbmcgdGVtcERpZmZlcmVuY2U7CisgICAgICAgIGxvbmcgZGlmZmVyZW5jZSA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBpbnQgd2lubmVyID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gIm51bWVyYXRvciIgaXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gaXMgdGhlCisgICAgICAgICAgICAvLyBkZW5vbWluYXRvciBpcyB0aGUgTENELiAgVGhlIG51bWVyYXRvciBpZiB0aGUgdGhlIHJ1bGUncworICAgICAgICAgICAgLy8gYmFzZSB2YWx1ZSBpcyB0aGUgZGVub21pYXRvciBpcyAibnVtZXJhdG9yIiB0aW1lcyB0aGUKKyAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgZGl2aWRlZCBieXRoZSBMQ0QuICBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZgorICAgICAgICAgICAgLy8gdGhhdCdzIGFuIGludGVnZXIsIGFuZCBpZiBub3QsIGhvdyBjbG9zZSBpdCBpcyB0byBiZWluZworICAgICAgICAgICAgLy8gYW4gaW50ZWdlci4KKyAgICAgICAgICAgIHRlbXBEaWZmZXJlbmNlID0gbnVtZXJhdG9yICogcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgJSBsZWFzdENvbW1vbk11bHRpcGxlOworCisgICAgICAgICAgICAvLyBub3JtYWxpemUgdGhlIHJlc3VsdCBvZiB0aGUgYWJvdmUgY2FsY3VsYXRpb246IHdlIHdhbnQKKyAgICAgICAgICAgIC8vIHRoZSBudW1lcmF0b3IncyBkaXN0YW5jZSBmcm9tIHRoZSBDTE9TRVNUIG11bHRpcGxlCisgICAgICAgICAgICAvLyBvZiB0aGUgTENECisgICAgICAgICAgICBpZiAobGVhc3RDb21tb25NdWx0aXBsZSAtIHRlbXBEaWZmZXJlbmNlIDwgdGVtcERpZmZlcmVuY2UpIHsKKyAgICAgICAgICAgICAgICB0ZW1wRGlmZmVyZW5jZSA9IGxlYXN0Q29tbW9uTXVsdGlwbGUgLSB0ZW1wRGlmZmVyZW5jZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhcyBjbG9zZSBhcyB3ZSd2ZSBjb21lLCBrZWVwIHRyYWNrIG9mIGhvdyBjbG9zZQorICAgICAgICAgICAgLy8gdGhhdCBpcywgYW5kIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgcnVsZSB0aGF0IGRpZCBpdC4gIElmCisgICAgICAgICAgICAvLyB3ZSd2ZSBzY29yZWQgYSBkaXJlY3QgaGl0LCB3ZSBkb24ndCBoYXZlIHRvIGxvb2sgYXQgYW55IG1vcmUKKyAgICAgICAgICAgIC8vIHJ1bGVzCisgICAgICAgICAgICBpZiAodGVtcERpZmZlcmVuY2UgPCBkaWZmZXJlbmNlKSB7CisgICAgICAgICAgICAgICAgZGlmZmVyZW5jZSA9IHRlbXBEaWZmZXJlbmNlOworICAgICAgICAgICAgICAgIHdpbm5lciA9IGk7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBoYXZlIHR3byBzdWNjZXNzaXZlIHJ1bGVzIHRoYXQgYm90aCBoYXZlIHRoZSB3aW5uaW5nIGJhc2UKKyAgICAgICAgLy8gdmFsdWUsIHRoZW4gdGhlIGZpcnN0IG9uZSAodGhlIG9uZSB3ZSBmb3VuZCBhYm92ZSkgaXMgdXNlZCBpZgorICAgICAgICAvLyB0aGUgbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiBpcyAxIGFuZCB0aGUgc2Vjb25kIG9uZSBpcyB1c2VkIGlmCisgICAgICAgIC8vIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIGlzIGFueXRoaW5nIGVsc2UgKHRoaXMgbGV0cyB1cworICAgICAgICAvLyBkbyB0aGluZ3MgbGlrZSAib25lIHRoaXJkIi8idHdvIHRoaXJkcyIgd2l0aG91dCBoYXZlaW5nIHRvIGRlZmluZQorICAgICAgICAvLyBhIHdob2xlIGJ1bmNoIG9mIGV4dHJhIHJ1bGUgc2V0cykKKyAgICAgICAgaWYgKHdpbm5lciArIDEgPCBydWxlcy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBydWxlc1t3aW5uZXIgKyAxXS5nZXRCYXNlVmFsdWUoKSA9PSBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA8IDEKKyAgICAgICAgICAgICAgICAgICAgfHwgTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA+PSAyKSB7CisgICAgICAgICAgICAgICAgKyt3aW5uZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCByZXR1cm4gdGhlIHdpbm5pbmcgcnVsZQorICAgICAgICByZXR1cm4gcnVsZXNbd2lubmVyXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgeCBhbmQgeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIGxjbShsb25nIHgsIGxvbmcgeSkgeworICAgICAgICAvLyBiaW5hcnkgZ2NkIGFsZ29yaXRobSBmcm9tIEtudXRoLCAiVGhlIEFydCBvZiBDb21wdXRlciBQcm9ncmFtbWluZywiCisgICAgICAgIC8vIHZvbC4gMiwgMXN0IGVkLiwgcHAuIDI5OC0yOTkKKyAgICAgICAgbG9uZyB4MSA9IHg7CisgICAgICAgIGxvbmcgeTEgPSB5OworCisgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgIHdoaWxlICgoeDEgJiAxKSA9PSAwICYmICh5MSAmIDEpID09IDApIHsKKyAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICB4MSA+Pj0gMTsKKyAgICAgICAgICAgIHkxID4+PSAxOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0OworICAgICAgICBpZiAoKHgxICYgMSkgPT0gMSkgeworICAgICAgICAgICAgdCA9IC15MTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHQgPSB4MTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICh0ICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlICgodCAmIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ID4+PSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHQgPiAwKSB7CisgICAgICAgICAgICAgICAgeDEgPSB0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB5MSA9IC10OworICAgICAgICAgICAgfQorICAgICAgICAgICAgdCA9IHgxIC0geTE7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBnY2QgPSB4MSA8PCBwMjsKKworICAgICAgICAvLyB4ICogeSA9PSBnY2QoeCwgeSkgKiBsY20oeCwgeSkKKyAgICAgICAgcmV0dXJuIHggLyBnY2QgKiB5OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIGEgc3RyaW5nLiAgTWF0Y2hlcyB0aGUgc3RyaW5nIHRvIGJlIHBhcnNlZCBhZ2FpbnN0IGVhY2gKKyAgICAgKiBvZiBpdHMgcnVsZXMgKHdpdGggYSBiYXNlIHZhbHVlIGxlc3MgdGhhbiB1cHBlckJvdW5kKSBhbmQgcmV0dXJucworICAgICAqIHRoZSB2YWx1ZSBwcm9kdWNlZCBieSB0aGUgcnVsZSB0aGF0IG1hdGNoZWQgdGhlIG1vc3QgY2hhcmN0ZXJzCisgICAgICogaW4gdGhlIHNvdXJjZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIFRoZSBpbml0aWFsIHBvc2l0aW9uIGlzIGlnbm9yZWQgYW5kIGFzc3VtZWQKKyAgICAgKiB0byBiZSAwLiAgT24gZXhpdCwgdGhpcyBvYmplY3QgaGFzIGJlZW4gdXBkYXRlZCB0byBwb2ludCB0byB0aGUKKyAgICAgKiBmaXJzdCBjaGFyYWN0ZXIgcG9zaXRpb24gdGhpcyBydWxlIHNldCBkaWRuJ3QgY29uc3VtZS4KKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBMaW1pdHMgdGhlIHJ1bGVzIHRoYXQgY2FuIGJlIGFsbG93ZWQgdG8gbWF0Y2guCisgICAgICogT25seSBydWxlcyB3aG9zZSBiYXNlIHZhbHVlcyBhcmUgc3RyaWN0bHkgbGVzcyB0aGFuIHVwcGVyQm91bmQKKyAgICAgKiBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1lcmljYWwgcmVzdWx0IG9mIHBhcnNpbmcgdGhpcyBzdHJpbmcuICBUaGlzIHdpbGwKKyAgICAgKiBiZSB0aGUgbWF0Y2hpbmcgcnVsZSdzIGJhc2UgdmFsdWUsIGNvbXBvc2VkIGFwcHJvcHJpYXRlbHkgd2l0aAorICAgICAqIHRoZSByZXN1bHRzIG9mIG1hdGNoaW5nIGFueSBvZiBpdHMgc3Vic3RpdHV0aW9ucy4gIFRoZSBvYmplY3QKKyAgICAgKiB3aWxsIGJlIGFuIGluc3RhbmNlIG9mIExvbmcgaWYgaXQncyBhbiBpbnRlZ3JhbCB2YWx1ZTsgb3RoZXJ3aXNlLAorICAgICAqIGl0IHdpbGwgYmUgYW4gaW5zdGFuY2Ugb2YgRG91YmxlLiAgVGhpcyBmdW5jdGlvbiBhbHdheXMgcmV0dXJucworICAgICAqIGEgdmFsaWQgb2JqZWN0OiBJZiBub3RoaW5nIG1hdGNoZWQgdGhlIGlucHV0IHN0cmluZyBhdCBhbGwsCisgICAgICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIG5ldyBMb25nKDApLCBhbmQgdGhlIHBhcnNlIHBvc2l0aW9uIGlzCisgICAgICogbGVmdCB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgdXBwZXJCb3VuZCkgeworICAgICAgICAvLyB0cnkgbWF0Y2hpbmcgZWFjaCBydWxlIGluIHRoZSBydWxlIHNldCBhZ2FpbnN0IHRoZSB0ZXh0IGJlaW5nCisgICAgICAgIC8vIHBhcnNlZC4gIFdoaWNoZXZlciBvbmUgbWF0Y2hlcyB0aGUgbW9zdCBjaGFyYWN0ZXJzIGlzIHRoZSBvbmUKKyAgICAgICAgLy8gdGhhdCBkZXRlcm1pbmVzIHRoZSB2YWx1ZSB3ZSByZXR1cm4uCisKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBoaWdoV2F0ZXJNYXJrID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBudWxsOworCisgICAgICAgIC8vIGR1bXAgb3V0IGlmIHRoZXJlJ3Mgbm8gdGV4dCB0byBwYXJzZQorICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gc3RhcnQgYnkgdHJ5aW5nIHRoZSBuZWhhdGl2ZSBudW1iZXIgcnVsZSAoaWYgdGhlcmUgaXMgb25lKQorICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBuZWdhdGl2ZU51bWJlclJ1bGUuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBmYWxzZSwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlbiB0cnkgZWFjaCBvZiB0aGUgZnJhY3Rpb24gcnVsZXMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gZnJhY3Rpb25SdWxlc1tpXS5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlLCB1cHBlckJvdW5kKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsuc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsbHksIGdvIHRocm91Z2ggdGhlIHJlZ3VsYXIgcnVsZXMgb25lIGF0IGEgdGltZS4gIFdlIHN0YXJ0CisgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgYmVjYXVzZSB3ZSB3YW50IHRvIHRyeSBtYXRjaGluZyB0aGUgbW9zdAorICAgICAgICAvLyBzaWdpZmljYW50IHJ1bGUgZmlyc3QgKHRoaXMgaGVscHMgZW5zdXJlIHRoYXQgd2UgcGFyc2UKKyAgICAgICAgLy8gImZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCBzaXgiIGFzCisgICAgICAgIC8vICIoZml2ZSB0aG91c2FuZCkgKHRocmVlIGh1bmRyZWQpIChzaXgpIiByYXRoZXIgdGhhbgorICAgICAgICAvLyAiKChmaXZlIHRob3VzYW5kIHRocmVlKSBodW5kcmVkKSAoc2l4KSIpLiAgU2tpcCBydWxlcyB3aG9zZQorICAgICAgICAvLyBiYXNlIHZhbHVlcyBhcmUgaGlnaGVyIHRoYW4gdGhlIHVwcGVyIGJvdW5kIChhZ2FpbiwgdGhpcyBoZWxwcworICAgICAgICAvLyBsaW1pdCBhbWJpZ3VpdHkgYnkgbWFraW5nIHN1cmUgdGhlIHJ1bGVzIHRoYXQgbWF0Y2ggYSBydWxlJ3MKKyAgICAgICAgLy8gYXJlIGxlc3Mgc2lnbmlmaWNhbnQgdGhhbiB0aGUgcnVsZSBjb250YWluaW5nIHRoZSBzdWJzdGl0dXRpb25zKS8KKyAgICAgICAgZm9yIChpbnQgaSA9IHJ1bGVzLmxlbmd0aCAtIDE7IGkgPj0gMCAmJiBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICghaXNGcmFjdGlvblJ1bGVTZXQgJiYgcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgPj0gdXBwZXJCb3VuZCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZXNbaV0uZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBpc0ZyYWN0aW9uUnVsZVNldCwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgdXBkYXRlIHRoZSBwYXJzZSBwb3N0aW9uIHdlIHdlcmUgcGFzc2VkIHRvIHBvaW50IHRvIHRoZQorICAgICAgICAvLyBmaXJzdCBjaGFyYWN0ZXIgd2UgZGlkbid0IHVzZSwgYW5kIHJldHVybiB0aGUgcmVzdWx0IHRoYXQKKyAgICAgICAgLy8gY3BvcnJlc3BvbmRzIHRvIHRoYXQgc3RyaW5nIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpOworLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBlcnJvci1pbmRleCBBUEkgb24gUGFyc2VQb3NpdGlvbiBpc24ndCB0aGVyZSBpbiAxLjEueAorLy8gICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworLy8gICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgoaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GU3Vic3RpdHV0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0NTFlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCkBAIC0wLDAgKzEsMTkzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC4qOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE5GU3Vic3RpdHV0aW9uIChhYnN0cmFjdCBiYXNlIGNsYXNzKQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQW4gYWJzdHJhY3QgY2xhc3MgZGVmaW5pbmcgcHJvdG9jb2wgZm9yIHN1YnN0aXR1dGlvbnMuICBBIHN1YnN0aXR1dGlvbgorICogaXMgYSBzZWN0aW9uIG9mIGEgcnVsZSB0aGF0IGluc2VydHMgdGV4dCBpbnRvIHRoZSBydWxlJ3MgcnVsZSB0ZXh0CisgKiBiYXNlZCBvbiBzb21lIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKi8KK2Fic3RyYWN0IGNsYXNzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTIwMDQgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRleHQgb2YgdGhlIHJ1bGUgdGhhdCBvd25zIGl0CisgICAgICovCisgICAgaW50IHBvczsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIHNldCB0aGlzIHN1YnN0aXR1dGlvbiB1c2VzIHRvIGZvcm1hdCBpdHMgcmVzdWx0LCBvciBudWxsLgorICAgICAqIChFaXRoZXIgdGhpcyBvciBudW1iZXJGb3JtYXQgaGFzIHRvIGJlIG5vbi1udWxsLikKKyAgICAgKi8KKyAgICBORlJ1bGVTZXQgcnVsZVNldCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgRGVjaW1hbEZvcm1hdCB0aGlzIHN1YnN0aXR1dGlvbiB1c2VzIHRvIGZvcm1hdCBpdHMgcmVzdWx0LAorICAgICAqIG9yIG51bGwuICAoRWl0aGVyIHRoaXMgb3IgcnVsZVNldCBoYXMgdG8gYmUgbm9uLW51bGwuKQorICAgICAqLworICAgIERlY2ltYWxGb3JtYXQgbnVtYmVyRm9ybWF0ID0gbnVsbDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGhlIGRlc2NyaXB0aW9uLCBjcmVhdGVzIHRoZSByaWdodCBraW5kIG9mIHN1YnN0aXR1dGlvbiwKKyAgICAgKiBhbmQgaW5pdGlhbGl6ZXMgaXQgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLgorICAgICAqIEBwYXJhbSBwb3MgVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRleHQgb2YgdGhlCisgICAgICogcnVsZSB0aGF0IG93bnMgaXQuCisgICAgICogQHBhcmFtIHJ1bGUgVGhlIHJ1bGUgY29udGFpbmluZyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBydWxlUHJlZGVjZXNzb3IgVGhlIHJ1bGUgcHJlY2VkaW5nIHRoZSBvbmUgdGhhdCBjb250YWlucworICAgICAqIHRoaXMgc3Vic3RpdHV0aW9uIGluIHRoZSBydWxlIHNldCdzIHJ1bGUgbGlzdCAodGhpcyBpcyB1c2VkCisgICAgICogb25seSBmb3IgPj4+IHN1YnN0aXR1dGlvbnMpLgorICAgICAqIEBwYXJhbSBydWxlU2V0IFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoZSBydWxlIGNvbnRhaW5pbmcgdGhpcworICAgICAqIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IHVsdGltYXRlbHkgb3ducworICAgICAqIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiB0byBwYXJzZSB0byBidWlsZCB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogKHRoaXMgaXMganVzdCB0aGUgc3Vic3RyaW5nIG9mIHRoZSBydWxlJ3MgZGVzY3JpcHRpb24gY29udGFpbmluZworICAgICAqIHRoZSBzdWJzdGl0dXRpb24gdG9rZW4gaXRzZWxmKQorICAgICAqIEByZXR1cm4gQSBuZXcgc3Vic3RpdHV0aW9uIGNvbnN0cnVjdGVkIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE5GU3Vic3RpdHV0aW9uIG1ha2VTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlIHJ1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZSBydWxlUHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGlzIGVtcHR5LCByZXR1cm4gYSBOdW1tU3Vic3RpdHV0aW9uCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE51bGxTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoZGVzY3JpcHRpb24uY2hhckF0KDApKSB7CisgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggJzwnLi4uCisgICAgICAgIGNhc2UgJzwnOgorICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBydWxlIGlzIGEgbmVnYXRpdmUgbnVtYmVyCisgICAgICAgICAgICAvLyBydWxlCisgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI8PCBub3QgYWxsb3dlZCBpbiBuZWdhdGl2ZS1udW1iZXIgcnVsZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUsIHJldHVybiBhbgorICAgICAgICAgICAgLy8gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5JTVBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICB8fCBydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5QUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgICAgICAgICAgfHwgcnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTUFTVEVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEludGVncmFsUGFydFN1YnN0aXR1dGlvbihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uCisgICAgICAgICAgICAvLyBydWxlIHNldCwgcmV0dXJuIGEgTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlU2V0LmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJhdG9yU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXRCYXNlVmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZ2V0RGVmYXVsdFJ1bGVTZXQoKSwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGEgTXVsdGlwbGllclN1YnN0aXR1dGlvbgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXREaXZpc29yKCksIHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggJz4nLi4uCisgICAgICAgIGNhc2UgJz4nOgorICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgaXMgYSBuZWdhdGl2ZS1udW1iZXIgcnVsZSwgcmV0dXJuCisgICAgICAgICAgICAvLyBhbiBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uCisgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgaXMgYSBmcmFjdGlvbiBydWxlLCByZXR1cm4gYQorICAgICAgICAgICAgLy8gRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24KKyAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLklNUFJPUEVSX0ZSQUNUSU9OX1JVTEUKKyAgICAgICAgICAgICAgICAgICAgIHx8IHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLlBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICB8fCBydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5NQVNURVJfUlVMRSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgc2V0IG93bmluZyB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LAorICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlU2V0LmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIj4+IG5vdCBhbGxvd2VkIGluIGZyYWN0aW9uIHJ1bGUgc2V0Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGEgTW9kdWx1c1N1YnN0aXR1dGlvbgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2R1bHVzU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXREaXZpc29yKCksIHJ1bGVQcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCAnPScsIGFsd2F5cyByZXR1cm4gYQorICAgICAgICAgICAgLy8gU2FtZVZhbHVlU3Vic3RpdHV0aW9uCisgICAgICAgIGNhc2UgJz0nOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBTYW1lVmFsdWVTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgLy8gYW5kIGlmIGl0J3MgYW55dGhpbmcgZWxzZSwgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEJhc2UgY29uc3RydWN0b3IgZm9yIHN1YnN0aXR1dGlvbnMuICBUaGlzIGNvbnN0cnVjdG9yIHNldHMgdXAgdGhlCisgICAgICogZmllbGRzIHdoaWNoIGFyZSBjb21tb24gdG8gYWxsIHN1YnN0aXR1dGlvbnMuCisgICAgICogQHBhcmFtIHBvcyBUaGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gdGhlIG93bmluZyBydWxlJ3MgcnVsZQorICAgICAqIHRleHQKKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgcnVsZSBzZXQgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGZvcm1hdHRlciBUaGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgc3Vic3RpdHV0aW9uIGRlc2NyaXB0b3IgKGkuZS4sIHRoZSB0ZXh0CisgICAgICogaW5zaWRlIHRoZSB0b2tlbiBjaGFyYWN0ZXJzKQorICAgICAqLworICAgIE5GU3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gaXRzIHBhcmVudCBydWxlCisgICAgICAgIHRoaXMucG9zID0gcG9zOworCisgICAgICAgIC8vIHRoZSBkZXNjcmlwdGlvbiBzaG91bGQgYmVnaW4gYW5kIGVuZCB3aXRoIHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICAgICAgLy8gSWYgaXQgZG9lc24ndCB0aGF0J3MgYSBzeW50YXggZXJyb3IuICBPdGhlcndpc2UsCisgICAgICAgIC8vIG1ha2VTdWJzdGl0dXRpb24oKSB3YXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBuZWVkZWQgdG8ga25vdworICAgICAgICAvLyBhYm91dCB0aGVzZSBjaGFyYWN0ZXJzLCBzbyBzdHJpcCB0aGVtIG9mZgorICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgPj0gMiAmJiBkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gZGVzY3JpcHRpb24uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMSkpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKDEsIGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBzdWJzdGl0dXRpb24gc3ludGF4Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gd2FzIGp1c3QgdHdvIHBhaXJlZCB0b2tlbiBjaGFyYWN0ZXJzCisgICAgICAgIC8vIChpLmUuLCAiPDwiIG9yICI+PiIpLCBpdCB1c2VzIHRoZSBydWxlIHNldCBpdCBiZWxvbmdzIHRvIHRvCisgICAgICAgIC8vIGZvcm1hdCBpdHMgcmVzdWx0CisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICB0aGlzLnJ1bGVTZXQgPSBydWxlU2V0OworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGNvbnRhaW5zIGEgcnVsZSBzZXQgbmFtZSwgdGhhdCdzIHRoZSBydWxlCisgICAgICAgIC8vIHNldCB3ZSB1c2UgdG8gZm9ybWF0IHRoZSByZXN1bHQ6IGdldCBhIHJlZmVyZW5jZSB0byB0aGUKKyAgICAgICAgLy8gbmFtZXMgcnVsZSBzZXQKKyAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRpb24uY2hhckF0KDApID09ICclJykgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0ID0gZm9ybWF0dGVyLmZpbmRSdWxlU2V0KGRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCAwIG9yICMsIHRyZWF0IGl0IGFzIGEKKyAgICAgICAgLy8gRGVjaW1hbEZvcm1hdCBwYXR0ZXJuLCBhbmQgaW5pdGlhbGl6ZSBhIERlY2ltYWxGb3JtYXQgd2l0aAorICAgICAgICAvLyB0aGF0IHBhdHRlcm4gKHRoZW4gc2V0IGl0IHRvIHVzZSB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgICAgLy8gYmVsb25naW5nIHRvIG91ciBmb3JtYXR0ZXIpCisgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSAnIycgfHwgZGVzY3JpcHRpb24uY2hhckF0KDApID09ICcwJykgeworICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhmb3JtYXR0ZXIuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gaXMgIj4+PiIsIHRoaXMgc3Vic3RpdHV0aW9uIGJ5cGFzc2VzIHRoZQorICAgICAgICAvLyB1c3VhbCBydWxlLXNlYXJjaCBwcm9jZXNzIGFuZCBhbHdheXMgdXNlcyB0aGUgcnVsZSB0aGF0IHByZWNlZGVzCisgICAgICAgIC8vIGl0IGluIGl0cyBvd24gcnVsZSBzZXQncyBydWxlIGxpc3QgKHRoaXMgaXMgdXNlZCBmb3IgcGxhY2UtdmFsdWUKKyAgICAgICAgLy8gbm90YXRpb25zOiBmb3JtYXRzIHdoZXJlIHlvdSB3YW50IHRvIHNlZSBhIHBhcnRpY3VsYXIgcGFydCBvZgorICAgICAgICAvLyBhIG51bWJlciBldmVuIHdoZW4gaXQncyAwKQorICAgICAgICBlbHNlIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJz4nKSB7CisgICAgICAgICAgICB0aGlzLnJ1bGVTZXQgPSBydWxlU2V0OyAvLyB3YXMgbnVsbCwgdGhhaSBydWxlcyBhZGRlZCB0byBjb250cm9sIHNwYWNlCisgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBhbmQgb2YgdGhlIGRlc2NyaXB0aW9uIGlzIG5vbmUgb2YgdGhlc2UgdGhpbmdzLCBpdCdzIGEgc3ludGF4IGVycm9yCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBzdWJzdGl0dXRpb24gc3ludGF4Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQncyB0aGUgc3Vic3RpdHV0aW9uJ3MgZGl2aXNvci4gIFVzZWQgYnkgTkZSdWxlLnNldEJhc2VWYWx1ZSgpLgorICAgICAqIEEgbm8tb3AgZm9yIGFsbCBzdWJzdGl0dXRpb25zIGV4Y2VwdCBtdWx0aXBsaWVyIGFuZCBtb2R1bHVzCisgICAgICogc3Vic3RpdHV0aW9ucy4KKyAgICAgKiBAcGFyYW0gcmFkaXggVGhlIHJhZGl4IG9mIHRoZSBkaXZpc29yCisgICAgICogQHBhcmFtIGV4cG9uZW50IFRoZSBleHBvbmVudCBvZiB0aGUgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgLy8gYSBuby1vcCBmb3IgYWxsIHN1YnN0aXR1dGlvbnMgZXhjZXB0IG11bHRpcGxpZXIgYW5kIG1vZHVsdXMgc3Vic3RpdHV0aW9ucworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHR3byBzdWJzdGl0dXRpb25zIGZvciBlcXVhbGl0eQorICAgICAqIEBwYXJhbSBUaGUgc3Vic3RpdHV0aW9uIHRvIGNvbXBhcmUgdGhpcyBvbmUgdG8KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBzdWJzdGl0dXRpb25zIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICAvLyBjb21wYXJlIGNsYXNzIGFuZCBhbGwgb2YgdGhlIGZpZWxkcyBhbGwgc3Vic3RpdHV0aW9ucyBoYXZlCisgICAgICAgIC8vIGluIGNvbW1vbgorICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpID09IHRoYXQuZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgTkZTdWJzdGl0dXRpb24gdGhhdDIgPSAoTkZTdWJzdGl0dXRpb24pdGhhdDsKKworICAgICAgICAgICAgcmV0dXJuIHBvcyA9PSB0aGF0Mi5wb3MKKyAgICAgICAgICAgICAgICAmJiAocnVsZVNldCA9PSBudWxsID8gdGhhdDIucnVsZVNldCA9PSBudWxsIDogdHJ1ZSkgLy8gY2FuJ3QgY29tcGFyZSB0cmVlIHN0cnVjdHVyZSwgbm8gLmVxdWFscyBvciByZWN1cnNlCisgICAgICAgICAgICAgICAgJiYgKG51bWJlckZvcm1hdCA9PSBudWxsID8gKHRoYXQyLm51bWJlckZvcm1hdCA9PSBudWxsKSA6IG51bWJlckZvcm1hdC5lcXVhbHModGhhdDIubnVtYmVyRm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgc3Vic3RpdHV0aW9uLiAgVGhpcyBtaWdodAorICAgICAqIG5vdCBiZSBpZGVudGljYWwgdG8gdGhlIGRlc2NyaXB0aW9uIGl0IHdhcyBjcmVhdGVkIGZyb20sIGJ1dAorICAgICAqIGl0J2xsIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIC8vIHVzZSB0b2tlbkNoYXIoKSB0byBnZXQgdGhlIGNoYXJhY3RlciBhdCB0aGUgYmVnaW5uaW5nIGFuZAorICAgICAgICAvLyBlbmQgb2YgdGhlIHN1YnN0aXR1dGlvbiB0b2tlbi4gIEluIGJldHdlZW4gdGhlbSB3aWxsIGdvCisgICAgICAgIC8vIGVpdGhlciB0aGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQgaXQgdXNlcywgb3IgdGhlIHBhdHRlcm4gb2YKKyAgICAgICAgLy8gdGhlIERlY2ltYWxGb3JtYXQgaXQgdXNlcworICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gdG9rZW5DaGFyKCkgKyBydWxlU2V0LmdldE5hbWUoKSArIHRva2VuQ2hhcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRva2VuQ2hhcigpICsgbnVtYmVyRm9ybWF0LnRvUGF0dGVybigpICsgdG9rZW5DaGFyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIGEgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLCBmb3JtYXRzIGl0IHVzaW5nCisgICAgICogZWl0aGVyIHJ1bGVTZXQgb3IgZGVjaW1hbEZvcm1hdCwgYW5kIGluc2VydHMgdGhlIHJlc3VsdCBpbnRvCisgICAgICogdG9JbnNlcnRJbnRvLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdlIGluc2VydCB0aGUgcmVzdWx0IGludG8KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBpbiB0b0luc2VydEludG8gd2hlcmUgdGhlIG93bmluZyBydWxlJ3MKKyAgICAgKiBydWxlIHRleHQgYmVnaW5zICh0aGlzIHZhbHVlIGlzIGFkZGVkIHRvIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBwb3NpdGlvbiB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGVyZSB0byBpbnNlcnQgdGhlIG5ldyB0ZXh0KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHBlcmZvcm0gYSB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgbnVtYmVyIHRoYXQgaXMgZGVwZW5kZW50CisgICAgICAgICAgICAvLyBvbiB0aGUgdHlwZSBvZiBzdWJzdGl0dXRpb24gdGhpcyBpcywgdGhlbiBqdXN0IGNhbGwgaXRzCisgICAgICAgICAgICAvLyBydWxlIHNldCdzIGZvcm1hdCgpIG1ldGhvZCB0byBmb3JtYXQgdGhlIHJlc3VsdAorICAgICAgICAgICAgbG9uZyBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworCisgICAgICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCwgdG9JbnNlcnRJbnRvLCBwb3MgKyB0aGlzLnBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBvciBwZXJmb3JtIHRoZSB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgbnVtYmVyIChwcmVzZXJ2aW5nCisgICAgICAgICAgICAvLyB0aGUgcmVzdWx0J3MgZnJhY3Rpb25hbCBwYXJ0IGlmIHRoZSBmb3JtYXR0ZXIgaXQgc2V0CisgICAgICAgICAgICAvLyB0byBzaG93IGl0KSwgdGhlbiB1c2UgdGhhdCBmb3JtYXR0ZXIncyBmb3JtYXQoKSBtZXRob2QKKyAgICAgICAgICAgIC8vIHRvIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgICAgICBkb3VibGUgbnVtYmVyVG9Gb3JtYXQgPSB0cmFuc2Zvcm1OdW1iZXIoKGRvdWJsZSludW1iZXIpOworICAgICAgICAgICAgaWYgKG51bWJlckZvcm1hdC5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyVG9Gb3JtYXQgPSBNYXRoLmZsb29yKG51bWJlclRvRm9ybWF0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MgKyB0aGlzLnBvcywgbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGZvcm1hdHMgaXQgdXNpbmcKKyAgICAgKiBlaXRoZXIgcnVsZVNldCBvciBkZWNpbWFsRm9ybWF0LCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2UgaW5zZXJ0IHRoZSByZXN1bHQgaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgb3duaW5nIHJ1bGUncworICAgICAqIHJ1bGUgdGV4dCBiZWdpbnMgKHRoaXMgdmFsdWUgaXMgYWRkZWQgdG8gdGhpcyBzdWJzdGl0dXRpb24ncworICAgICAqIHBvc2l0aW9uIHRvIGRldGVybWluZSBleGFjdGx5IHdoZXJlIHRvIGluc2VydCB0aGUgbmV3IHRleHQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24oZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBwZXJmb3JtIGEgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgdGhhdAorICAgICAgICAvLyBpcyBkZXBlbmRlbnQgb24gdGhlIHR5cGUgb2Ygc3Vic3RpdHV0aW9uIHRoaXMgaXMKKyAgICAgICAgZG91YmxlIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisKKyAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpcyBhbiBpbnRlZ2VyLCBmcm9tIGhlcmUgb24gb3V0IHdlIHdvcmsgaW4gaW50ZWdlcgorICAgICAgICAvLyBzcGFjZSAoc2F2aW5nIHRpbWUgYW5kIG1lbW9yeSBhbmQgcHJlc2VydmluZyBhY2N1cmFjeSkKKyAgICAgICAgaWYgKG51bWJlclRvRm9ybWF0ID09IE1hdGguZmxvb3IobnVtYmVyVG9Gb3JtYXQpICYmIHJ1bGVTZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQoKGxvbmcpbnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgcmVzdWx0IGlzbid0IGFuIGludGVnZXIsIHRoZW4gY2FsbCBlaXRoZXIgb3VyIHJ1bGUgc2V0J3MKKyAgICAgICAgICAgIC8vIGZvcm1hdCgpIG1ldGhvZCBvciBvdXIgRGVjaW1hbEZvcm1hdCdzIGZvcm1hdCgpIG1ldGhvZCB0bworICAgICAgICAgICAgLy8gZm9ybWF0IHRoZSByZXN1bHQKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCwgdG9JbnNlcnRJbnRvLCBwb3MgKyB0aGlzLnBvcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRvSW5zZXJ0SW50by5pbnNlcnQocG9zICsgdGhpcy5wb3MsIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBwZXJmb3JtIHNvbWUga2luZCBvZgorICAgICAqIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlci4gIFRoZSByZXN1bHQgb2YgdGhpcyBvcGVyYXRpb24KKyAgICAgKiBpcyBmb3JtYXR0ZWQgdXNpbmcgdGhlIHJ1bGUgc2V0IG9yIERlY2ltYWxGb3JtYXQgdGhhdCB0aGlzCisgICAgICogc3Vic3RpdHV0aW9uIHJlZmVycyB0bywgYW5kIHRoZSByZXN1bHQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0CisgICAgICogc3RyaW5nLgorICAgICAqIEBwYXJhbSBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVGhlIHJlc3VsdCBvZiBwZXJmb3JtaW5nIHRoZSBvcHJlcmF0aW9uIG9uIHRoZSBudW1iZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpOworCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIHBlcmZvcm0gc29tZSBraW5kIG9mCisgICAgICogbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLiAgVGhlIHJlc3VsdCBvZiB0aGlzIG9wZXJhdGlvbgorICAgICAqIGlzIGZvcm1hdHRlZCB1c2luZyB0aGUgcnVsZSBzZXQgb3IgRGVjaW1hbEZvcm1hdCB0aGF0IHRoaXMKKyAgICAgKiBzdWJzdGl0dXRpb24gcmVmZXJzIHRvLCBhbmQgdGhlIHJlc3VsdCBpcyBpbnNlcnRlZCBpbnRvIHRoZSByZXN1bHQKKyAgICAgKiBzdHJpbmcuCisgICAgICogQHBhcmFtIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBUaGUgcmVzdWx0IG9mIHBlcmZvcm1pbmcgdGhlIG9wcmVyYXRpb24gb24gdGhlIG51bWJlcgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgYSBzdHJpbmcgdXNpbmcgdGhlIHJ1bGUgc2V0IG9yIERlY2ltYWxGb3JtYXQgYmVsb25naW5nCisgICAgICogdG8gdGhpcyBzdWJzdGl0dXRpb24uICBJZiB0aGVyZSdzIGEgbWF0Y2gsIGEgbWF0aGVtYXRpY2FsCisgICAgICogb3BlcmF0aW9uICh0aGUgaW52ZXJzZSBvZiB0aGUgb25lIHVzZWQgaW4gZm9ybWF0dGluZykgaXMKKyAgICAgKiBwZXJmb3JtZWQgb24gdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2UgYW5kIHRoZSB2YWx1ZSBwYXNzZWQgaW4KKyAgICAgKiBhbmQgcmV0dXJuZWQgYXMgdGhlIHJlc3VsdC4gIFRoZSBwYXJzZSBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvCisgICAgICogcG9pbnQgdG8gdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gT24gZW50cnksIGlnbm9yZWQsIGJ1dCBhc3N1bWVkIHRvIGJlIDAuCisgICAgICogT24gZXhpdCwgdGhpcyBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBmaXJzdCB1bm1hdGNoZWQKKyAgICAgKiBjaGFyYWN0ZXIgKG9yIDAgaWYgdGhlIHN1YnN0aXR1dGlvbiBkaWRuJ3QgbWF0Y2gpCisgICAgICogQHBhcmFtIGJhc2VWYWx1ZSBBIHBhcnRpYWwgcGFyc2UgcmVzdWx0IHRoYXQgc2hvdWxkIGJlCisgICAgICogY29tYmluZWQgd2l0aCB0aGUgcmVzdWx0IG9mIHRoaXMgcGFyc2UKKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBXaGVuIHNlYXJjaGluZyB0aGUgcnVsZSBzZXQgZm9yIGEgcnVsZQorICAgICAqIG1hdGNoaW5nIHRoZSBzdHJpbmcgcGFzc2VkIGluLCBvbmx5IHJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMKKyAgICAgKiBsb3dlciB0aGFuIHRoaXMgYXJlIGNvbnNpZGVyZWQKKyAgICAgKiBAcGFyYW0gbGVuaWVudFBhcnNlIElmIHRydWUgYW5kIG1hdGNoaW5nIGFnYWluc3QgcnVsZXMgZmFpbHMsCisgICAgICogdGhlIHN1YnN0aXR1dGlvbiB3aWxsIGFsc28gdHJ5IG1hdGNoaW5nIHRoZSB0ZXh0IGFnYWluc3QKKyAgICAgKiBudW1lcmFscyB1c2luZyBhIGRlZmF1bHQtY29zdHJ1Y3RlZCBOdW1iZXJGb3JtYXQuICBJZiBmYWxzZSwKKyAgICAgKiBubyBleHRyYSB3b3JrIGlzIGRvbmUuICAoVGhpcyB2YWx1ZSBpcyBmYWxzZSB3aGVuZXZlciB0aGUKKyAgICAgKiBmb3JtYXR0ZXIgaXNuJ3QgaW4gbGVuaWVudC1wYXJzZSBtb2RlLCBidXQgaXMgYWxzbyBmYWxzZQorICAgICAqIHVuZGVyIHNvbWUgY29uZGl0aW9ucyBldmVuIHdoZW4gdGhlIGZvcm1hdHRlciBfaXNfIGluCisgICAgICogbGVuaWVudC1wYXJzZSBtb2RlLikKKyAgICAgKiBAcmV0dXJuIElmIHRoZXJlJ3MgYSBtYXRjaCwgdGhpcyBpcyB0aGUgcmVzdWx0IG9mIGNvbXBvc2luZworICAgICAqIGJhc2VWYWx1ZSB3aXRoIHdoYXRldmVyIHdhcyByZXR1cm5lZCBmcm9tIG1hdGNoaW5nIHRoZQorICAgICAqIGNoYXJhY3RlcnMuICBUaGlzIHdpbGwgYmUgZWl0aGVyIGEgTG9uZyBvciBhIERvdWJsZS4gIElmIHRoZXJlJ3MKKyAgICAgKiBubyBtYXRjaCB0aGlzIGlzIG5ldyBMb25nKDApIChub3QgbnVsbCksIGFuZCBwYXJzZVBvc2l0aW9uCisgICAgICogaXMgbGVmdCB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBkb1BhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAvLyBmaWd1cmUgb3V0IHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgYSBydWxlIGNhbiBoYXZlIGFuZCBtYXRjaAorICAgICAgICAvLyB0aGUgdGV4dCBiZWluZyBwYXJzZWQgKHRoaXMgdmFyaWVzIGFjY29yZGluZyB0byB0aGUgdHlwZSBvZgorICAgICAgICAvLyBzdWJzdGl0dXRpb25zOiBtdWx0aXBsaWVyLCBtb2R1bHVzLCBhbmQgbnVtZXJhdG9yIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgLy8gcmVzdHJpY3QgdGhlIHNlYXJjaCB0byBydWxlcyB3aXRoIGJhc2UgdmFsdWVzIGxvd2VyIHRoYW4gdGhlaXIKKyAgICAgICAgLy8gb3duOyBzYW1lLXZhbHVlIHN1YnN0aXR1dGlvbnMgbGVhdmUgdGhlIHVwcGVyIGJvdW5kIHdoZXJldmVyCisgICAgICAgIC8vIGl0IHdhcywgYW5kIHRoZSBvdGhlcnMgYWxsb3cgYW55IHJ1bGUgdG8gbWF0Y2gKKyAgICAgICAgdXBwZXJCb3VuZCA9IGNhbGNVcHBlckJvdW5kKHVwcGVyQm91bmQpOworCisgICAgICAgIC8vIHVzZSBvdXIgcnVsZSBzZXQgdG8gcGFyc2UgdGhlIHRleHQuICBJZiB0aGF0IGZhaWxzIGFuZAorICAgICAgICAvLyBsZW5pZW50IHBhcnNpbmcgaXMgZW5hYmxlZCAodGhpcyBpcyBhbHdheXMgZmFsc2UgaWYgdGhlCisgICAgICAgIC8vIGZvcm1hdHRlcidzIGxlbmllbnQtcGFyc2luZyBtb2RlIGlzIG9mZiwgYnV0IGl0IG1heSBhbHNvCisgICAgICAgIC8vIGJlIGZhbHNlIGV2ZW4gd2hlbiB0aGUgZm9ybWF0dGVyJ3MgbGVuaWVudC1wYXJzZSBtb2RlIGlzCisgICAgICAgIC8vIG9uKSwgdGhlbiBhbHNvIHRyeSBwYXJzaW5nIHRoZSB0ZXh0IHVzaW5nIGEgZGVmYXVsdC0KKyAgICAgICAgLy8gY29uc3RydWN0ZWQgTnVtYmVyRm9ybWF0CisgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBydWxlU2V0LnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIHVwcGVyQm91bmQpOworICAgICAgICAgICAgaWYgKGxlbmllbnRQYXJzZSAmJiAhcnVsZVNldC5pc0ZyYWN0aW9uU2V0KCkgJiYgcGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIC4uLm9yIHVzZSBvdXIgRGVjaW1hbEZvcm1hdCB0byBwYXJzZSB0aGUgdGV4dAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVtcFJlc3VsdCA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBwYXJzZSB3YXMgc3VjY2Vzc2Z1bCwgd2UndmUgYWxyZWFkeSBhZHZhbmNlZCB0aGUgY2FsbGVyJ3MKKyAgICAgICAgLy8gcGFyc2UgcG9zaXRpb24gKHRoaXMgaXMgdGhlIG9uZSBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgaGF2ZSBvbmUKKyAgICAgICAgLy8gb2YgaXRzIG93bikuICBEZXJpdmUgYSBwYXJzZSByZXN1bHQgYW5kIHJldHVybiBpdCBhcyBhIExvbmcsCisgICAgICAgIC8vIGlmIHBvc3NpYmxlLCBvciBhIERvdWJsZQorICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSB0ZW1wUmVzdWx0LmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgIC8vIGNvbXBvc2VSdWxlVmFsdWUoKSBwcm9kdWNlcyBhIGZ1bGwgcGFyc2UgcmVzdWx0IGZyb20KKyAgICAgICAgICAgIC8vIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBmcm9tCisgICAgICAgICAgICAvLyB0aGUgY2FsbGVyICh0aGlzIGlzIGVpdGhlciB0aGUgb3duaW5nIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICAgICAgICAvLyBvciB0aGUgcGFydGlhbCByZXN1bHQgb2J0YWluZWQgZnJvbSBjb21wb3NpbmcgdGhlCisgICAgICAgICAgICAvLyBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUgd2l0aCBpdHMgb3RoZXIgc3Vic3RpdHV0aW9uJ3MKKyAgICAgICAgICAgIC8vIHBhcnNlIHJlc3VsdCkgYW5kIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBvYnRhaW5lZCBieQorICAgICAgICAgICAgLy8gbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbiAod2hpY2ggd2lsbCBiZSB0aGUgc2FtZSB2YWx1ZQorICAgICAgICAgICAgLy8gdGhlIGNhbGxlciB3b3VsZCBnZXQgYnkgcGFyc2luZyBqdXN0IHRoaXMgcGFydCBvZiB0aGUKKyAgICAgICAgICAgIC8vIHRleHQgd2l0aCBSdWxlQmFzZWROdW1iZXJGb3JtYXQucGFyc2UoKSApLiAgSG93IHRoZSB0d28KKyAgICAgICAgICAgIC8vIHZhbHVlcyBhcmUgdXNlZCB0byBkZXJpdmUgdGhlIGZ1bGwgcGFyc2UgcmVzdWx0IGRlcGVuZHMKKyAgICAgICAgICAgIC8vIG9uIHRoZSB0eXBlcyBvZiBzdWJzdGl0dXRpb25zOiBGb3IgYSByZWd1bGFyIHJ1bGUsIHRoZQorICAgICAgICAgICAgLy8gdWx0aW1hdGUgcmVzdWx0IGlzIGl0cyBtdWx0aXBsaWVyIHN1YnN0aXR1dGlvbidzIHJlc3VsdAorICAgICAgICAgICAgLy8gdGltZXMgdGhlIHJ1bGUncyBkaXZpc29yIChvciB0aGUgcnVsZSdzIGJhc2UgdmFsdWUpIHBsdXMKKyAgICAgICAgICAgIC8vIHRoZSBtb2R1bHVzIHN1YnN0aXR1dGlvbidzIHJlc3VsdCAod2hpY2ggd2lsbCBhY3R1YWxseQorICAgICAgICAgICAgLy8gc3VwZXJzZWRlIHBhcnQgb2YgdGhlIHJ1bGUncyBiYXNlIHZhbHVlKS4gIEZvciBhIG5lZ2F0aXZlLQorICAgICAgICAgICAgLy8gbnVtYmVyIHJ1bGUsIHRoZSByZXN1bHQgaXMgdGhlIG5lZ2F0aXZlIG9mIGl0cyBzdWJzdGl0dXRpb24ncworICAgICAgICAgICAgLy8gcmVzdWx0LiAgRm9yIGEgZnJhY3Rpb24gcnVsZSwgaXQncyB0aGUgc3VtIG9mIGl0cyB0d28KKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbiByZXN1bHRzLiAgRm9yIGEgcnVsZSBpbiBhIGZyYWN0aW9uIHJ1bGUgc2V0LAorICAgICAgICAgICAgLy8gaXQncyB0aGUgbnVtZXJhdG9yIHN1YnN0aXR1dGlvbidzIHJlc3VsdCBkaXZpZGVkIGJ5CisgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuICBSZXN1bHRzIGZyb20gc2FtZS12YWx1ZSBzdWJzdGl0dXRpb25zCisgICAgICAgICAgICAvLyBwcm9wYWdhdGUgYmFjayB1cGFyZCwgYW5kIG51bGwgc3Vic3RpdHV0aW9ucyBkb24ndCBhZmZlY3QKKyAgICAgICAgICAgIC8vIHRoZSByZXN1bHQuCisgICAgICAgICAgICByZXN1bHQgPSBjb21wb3NlUnVsZVZhbHVlKHJlc3VsdCwgYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gKGxvbmcpcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKHJlc3VsdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBwYXJzZSB3YXMgVU5zdWNjZXNzZnVsLCByZXR1cm4gMAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRlbXBSZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXJpdmVzIGEgbmV3IHZhbHVlIGZyb20gdGhlIHR3byB2YWx1ZXMgcGFzc2VkIGluLiAgVGhlIHR3byB2YWx1ZXMKKyAgICAgKiBhcmUgdHlwaWNhbGx5IGVpdGhlciB0aGUgYmFzZSB2YWx1ZXMgb2YgdHdvIHJ1bGVzICh0aGUgb25lIGNvbnRhaW5pbmcKKyAgICAgKiB0aGUgc3Vic3RpdHV0aW9uIGFuZCB0aGUgb25lIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24pIG9yIHBhcnRpYWwKKyAgICAgKiBwYXJzZSByZXN1bHRzIGRlcml2ZWQgaW4gc29tZSBvdGhlciB3YXkuICBUaGUgb3BlcmF0aW9uIGlzIGdlbmVyYWxseQorICAgICAqIHRoZSBpbnZlcnNlIG9mIHRoZSBvcGVyYXRpb24gcGVyZm9ybWVkIGJ5IHRyYW5zZm9ybU51bWJlcigpLgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHZhbHVlIHByb2R1Y2VkIGJ5IG1hdGNoaW5nIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgdmFsdWUgdGhhdCB3YXMgcGFzc2VkIHRvIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBieSB0aGUgcnVsZSB0aGF0IG93bnMgaXQKKyAgICAgKiBAcmV0dXJuIEEgdGhpcmQgdmFsdWUgZGVyaXZlZCBmcm9tIHRoZSBvdGhlciB0d28sIHJlcHJlc2VudGluZyBhCisgICAgICogcGFydGlhbCBwYXJzZSByZXN1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIGFuIHVwcGVyIGJvdW5kIHdoZW4gc2VhcmNoaW5nIGZvciBhIHJ1bGUgdGhhdCBtYXRjaGVzCisgICAgICogdGhpcyBzdWJzdGl0dXRpb24uICBSdWxlcyB3aXRoIGJhc2UgdmFsdWVzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbAorICAgICAqIHRvIHVwcGVyQm91bmQgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIFRoZSBjdXJyZW50IHVwcGVyLWJvdW5kIHNldHRpbmcuICBUaGUgbmV3CisgICAgICogdXBwZXIgYm91bmQgY2FuJ3QgYmUgYW55IGhpZ2hlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gdGhlIHJ1bGUgdGhhdCBvd25zIGl0LgorICAgICAqIEByZXR1cm4gVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRoYXQgb3ducyBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFBvcygpIHsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgdXNlZCBpbiB0aGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZgorICAgICAqIHN1YnN0aXR1dGlvbnMgb2YgdGhpcyB0eXBlLiAgVXNlZCBieSB0b1N0cmluZygpLgorICAgICAqIEByZXR1cm4gVGhpcyBzdWJzdGl0dXRpb24ncyB0b2tlbiBjaGFyYWN0ZXIuCisgICAgICovCisgICAgYWJzdHJhY3QgY2hhciB0b2tlbkNoYXIoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGlzIGEgbnVsbCBzdWJzdGl0dXRpb24uICAoV2UgZGlkbid0IGRvIHRoaXMKKyAgICAgKiB3aXRoIGluc3RhbmNlb2YgcGFydGlhbGx5IGJlY2F1c2UgaXQgY2F1c2VzIHNvdXJjZSBmaWxlcyB0bworICAgICAqIHByb2xpZmVyYXRlIGFuZCBwYXJ0aWFsbHkgYmVjYXVzZSB3ZSBoYXZlIHRvIHBvcnQgdGhpcyB0byBDKysuKQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBOdWxsU3Vic3RpdHV0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNOdWxsU3Vic3RpdHV0aW9uKCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgaXMgYSBtb2R1bHVzIHN1YnN0aXR1dGlvbi4gIChXZSBkaWRuJ3QgZG8gdGhpcworICAgICAqIHdpdGggaW5zdGFuY2VvZiBwYXJ0aWFsbHkgYmVjYXVzZSBpdCBjYXVzZXMgc291cmNlIGZpbGVzIHRvCisgICAgICogcHJvbGlmZXJhdGUgYW5kIHBhcnRpYWxseSBiZWNhdXNlIHdlIGhhdmUgdG8gcG9ydCB0aGlzIHRvIEMrKy4pCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIE1vZHVsdXNTdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZHVsdXNTdWJzdGl0dXRpb24oKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gU2FtZVZhbHVlU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IHBhc3NlcyB0aGUgdmFsdWUgcGFzc2VkIHRvIGl0IHRocm91Z2ggdW5jaGFuZ2VkLgorICogUmVwcmVzZW50ZWQgYnkgPT0gaW4gcnVsZSBkZXNjcmlwdGlvbnMuCisgKi8KK2NsYXNzIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFNhbWVWYWx1ZVN1YnN0dXRpb24uICBUaGlzIGZ1bmN0aW9uIGp1c3QgdXNlcyB0aGUKKyAgICAgKiBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLCBidXQgaXQgcGVyZm9ybXMgYSBjaGVjayB0aGF0IHRoaXMKKyAgICAgKiBzdWJzdGl0dXRpb24gZG9lc24ndCBjYWxsIHRoZSBydWxlIHNldCB0aGF0IG93bnMgaXQsIHNpbmNlIHRoYXQKKyAgICAgKiB3b3VsZCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbi4KKyAgICAgKi8KKyAgICBTYW1lVmFsdWVTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI9PSIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI9PSBpcyBub3QgYSBsZWdhbCB0b2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zICJudW1iZXIiIHVuY2hhbmdlZC4KKyAgICAgKiBAcmV0dXJuICJudW1iZXIiCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyAibnVtYmVyIiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiAibnVtYmVyIgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgbmV3UnVsZVZhbHVlIGFuZCBpZ25vcmVzIG9sZFJ1bGVWYWx1ZS4gKFRoZSB2YWx1ZSB3ZSBnb3QKKyAgICAgKiBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uIHN1cGVyc2VkZXMgdGhlIHZhbHVlIG9mIHRoZSBydWxlCisgICAgICogdGhhdCBvd25zIHRoZSBzdWJzdGl0dXRpb24uKQorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHZhbHVlIHJlc3VsdGluZyBmcm9tIG1hdGNoaW5nIHRoZSBzdWJzdGl0dWlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBydWxlIGNvbnRhaW5pbmcgdGhlCisgICAgICogc3Vic3RpdHV0aW9uLgorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYW1lVmFsdWVTdWJzdGl0dXRpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHVwcGVyIGJvdW5kLgorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIFRoZSBjdXJyZW50IHVwcGVyIGJvdW5kLgorICAgICAqIEByZXR1cm4gb2xkVXBwZXJCb3VuZAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIG9sZFVwcGVyQm91bmQ7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB0b2tlbiBjaGFyYWN0ZXIgZm9yIGEgU2FtZVZhbHVlU3Vic3RpdHV0aW9uIGlzID0uCisgICAgICogQHJldHVybiAnPScKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc9JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTXVsdGlwbGllclN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBkaXZpZGVzIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGJ5IHRoZSBydWxlJ3MKKyAqIGRpdmlzb3IgYW5kIGZvcm1hdHMgdGhlIHF1b3RpZW50LiAgUmVwcmVzZW50ZWQgYnkgJmx0OyZsdDsgaW4gbm9ybWFsCisgKiBydWxlcy4KKyAqLworY2xhc3MgTXVsdGlwbGllclN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIGRpdmlzb3Igb2YgdGhlIHJ1bGUgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uLgorICAgICAqLworICAgIGRvdWJsZSBkaXZpc29yOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uLiAgVGhpcyB1c2VzIHRoZSBzdXBlcmNsYXNzCisgICAgICogY29uc3RydWN0b3IgdG8gaW5pdGlhbGl6ZSBtb3N0IG1lbWJlcnMsIGJ1dCB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIGFsc28gbWFpbnRhaW5zIGl0cyBvd24gY29weSBvZiBpdHMgcnVsZSdzIGRpdmlzb3IuCisgICAgICogQHBhcmFtIHBvcyBUaGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gaXRzIHJ1bGUncyBydWxlIHRleHQKKyAgICAgKiBAcGFyYW0gZGl2aXNvciBUaGUgb3duaW5nIHJ1bGUncyBkaXZpc29yCisgICAgICogQHJ1bGVTZXQgVGhlIHJ1bGVTZXQgdGhpcyBzdWJzdGl0dXRpb24gdXNlcyB0byBmb3JtYXQgaXRzIHJlc3VsdAorICAgICAqIEBmb3JtYXR0ZXIgVGhlIGZvcm1hdHRlciB0aGF0IG93bnMgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIGRlc2NyaWJpbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGl2aXNvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIHRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IgYWZmZWN0cyB0aGUgYmVoYXZpb3Igb2YgdGhpcworICAgICAgICAvLyBzdWJzdGl0dXRpb24uICBSYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFjay1wb2ludGVyIHRvIHRoZQorICAgICAgICAvLyBydWxlLCB3ZSBrZWVwIGEgY29weSBvZiB0aGUgZGl2aXNvcgorICAgICAgICB0aGlzLmRpdmlzb3IgPSBkaXZpc29yOworCisgICAgaWYgKGRpdmlzb3IgPT0gMCkgeyAvLyB0aGlzIHdpbGwgY2F1c2UgcmVjdXJzaW9uCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlN1YnN0aXR1dGlvbiB3aXRoIGJhZCBkaXZpc29yICgiICsgZGl2aXNvciArICIpICIgKyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgcG9zKSArIAorICAgICAgICAgICAgICAgICAgICAgIiB8ICIgKyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcocG9zKSk7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHN1YnN0aXR1dGlvbidzIGRpdmlzb3IgYmFzZWQgb24gdGhlIHZhbHVlcyBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHJhZGl4IFRoZSByYWRpeCBvZiB0aGUgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gZXhwb25lbnQgVGhlIGV4cG9uZW50IG9mIHRoZSBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgZGl2aXNvciA9IE1hdGgucG93KHJhZGl4LCBleHBvbmVudCk7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlN1YnN0aXR1dGlvbiB3aXRoIGRpdmlzb3IgMCIpOworICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBdWdtZW50cyB0aGUgc3VwZXJjbGFzcydzIGVxdWFscygpIGZ1bmN0aW9uIGJ5IGNvbXBhcmluZyBkaXZpc29ycy4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgc3Vic3RpdHV0aW9uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBhcmUgZnVuY3Rpb25hbGx5IGVxdWFsCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmIChzdXBlci5lcXVhbHModGhhdCkpIHsKKyAgICAgICAgICAgIE11bHRpcGxpZXJTdWJzdGl0dXRpb24gdGhhdDIgPSAoTXVsdGlwbGllclN1YnN0aXR1dGlvbil0aGF0OworCisgICAgICAgICAgICByZXR1cm4gZGl2aXNvciA9PSB0aGF0Mi5kaXZpc29yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCByZXR1cm5zIHRoZSBxdW90aWVudC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gIm51bWJlciIgZGl2aWRlZCBieSB0aGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIChsb25nKU1hdGguZmxvb3IobnVtYmVyIC8gZGl2aXNvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlcyB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgcmV0dXJucyB0aGUgcXVvdGllbnQuCisgICAgICogVGhpcyBpcyBhbiBpbnRlZ3JhbCBxdW90aWVudCBpZiB3ZSdyZSBmaWxsaW5nIGluIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiB1c2luZyBhbm90aGVyIHJ1bGUgc2V0LCBidXQgaXQncyB0aGUgZnVsbCBxdW90aWVudCAoaW50ZWdyYWwgYW5kCisgICAgICogZnJhY3Rpb25hbCBwYXJ0cykgaWYgd2UncmUgZmlsbGluZyBpbiB0aGUgc3Vic3RpdHV0aW9uIHVzaW5nCisgICAgICogYSBEZWNpbWFsRm9ybWF0LiAgKFRoaXMgYWxsb3dzIHRoaW5ncyBzdWNoIGFzICIxLjIgbWlsbGlvbiIuKQorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuICJudW1iZXIiIGRpdmlkZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICBpZiAocnVsZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyIC8gZGl2aXNvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlciAvIGRpdmlzb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIG5ld1J1bGVWYWx1ZSB0aW1lcyB0aGUgZGl2aXNvci4gIElnbm9yZXMgb2xkUnVsZVZhbHVlLgorICAgICAqIChUaGUgcmVzdWx0IG9mIG1hdGNoaW5nIGEgPDwgc3Vic3RpdHV0aW9uIHN1cGVyc2VkZXMgdGhlIGJhc2UKKyAgICAgKiB2YWx1ZSBvZiB0aGUgcnVsZSB0aGF0IGNvbnRhaW5zIGl0LikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIGJhc2UgdmFsdWUgb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIG5ld1J1bGVWYWx1ZSAqIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3UnVsZVZhbHVlICogZGl2aXNvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBkb3duIHRvIHRoZSBydWxlJ3MgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkLgorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUncyBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIGRpdmlzb3I7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB0b2tlbiBjaGFyYWN0ZXIgZm9yIGEgbXVsdGlwbGllciBzdWJzdGl0dXRpb24gaXMgJmx0Oy4KKyAgICAgKiBAcmV0dXJuICcmbHQ7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJzwnOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBNb2R1bHVzU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGRpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIGl0cyBydWxlJ3MKKyAqIGRpdmlzb3IgYW5kIGZvcm1hdHMgdGhlIHJlbWFpbmRlci4gIFJlcHJlc2VudGVkIGJ5ICImZ3Q7Jmd0OyIgaW4gYQorICogcmVndWxhciBydWxlLgorICovCitjbGFzcyBNb2R1bHVzU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGl2aXNvciBvZiB0aGUgcnVsZSBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBkb3VibGUgZGl2aXNvcjsKKworICAgIC8qKgorICAgICAqIElmIHRoaXMgaXMgYSAmZ3Q7Jmd0OyZndDsgc3Vic3RpdHV0aW9uLCB0aGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0CisgICAgICogdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZS4gIE90aGVyd2lzZSwgbnVsbC4KKyAgICAgKi8KKyAgICBORlJ1bGUgcnVsZVRvVXNlOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNb2R1bHVzU3Vic3R1dGlvbi4gIEluIGFkZGl0aW9uIHRvIHRoZSBpbmhlcml0ZWQKKyAgICAgKiBtZW1iZXJzLCBhIE1vZHVsdXNTdWJzdGl0dXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIGRpdmlzb3Igb2YgdGhlCisgICAgICogcnVsZSB0aGF0IG93bnMgaXQsIGFuZCBtYXkgYWxzbyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBydWxlCisgICAgICogdGhhdCBwcmVjZWRlcyB0aGUgcnVsZSBjb250YWluaW5nIHRoaXMgc3Vic3RpdHV0aW9uIGluIHRoZSBydWxlCisgICAgICogc2V0J3MgcnVsZSBsaXN0LgorICAgICAqIEBwYXJhbSBwb3MgVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIGl0cyBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogQHBhcmFtIGRpdmlzb3IgVGhlIGRpdmlzb3Igb2YgdGhlIHJ1bGUgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIHJ1bGVQcmVkZWNlc3NvciBUaGUgcnVsZSB0aGF0IHByZWNlZGVzIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBydWxlIGluIGl0cyBydWxlIHNldCdzIHJ1bGUgbGlzdAorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIGZvciB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqLworICAgIE1vZHVsdXNTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkaXZpc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlIHJ1bGVQcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIHRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IgY29udHJvbHMgdGhlIGJlaGF2aW9yIG9mIHRoaXMKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uOiByYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFja3BvaW50ZXIgdG8gdGhlIHJ1bGUsCisgICAgICAgIC8vIHdlIGtlZXAgYSBjb3B5IG9mIHRoZSBkaXZpc29yCisgICAgICAgIHRoaXMuZGl2aXNvciA9IGRpdmlzb3I7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7IC8vIHRoaXMgd2lsbCBjYXVzZSByZWN1cnNpb24KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU3Vic3RpdHV0aW9uIHdpdGggYmFkIGRpdmlzb3IgKCIgKyBkaXZpc29yICsgIikgIisgZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIHBvcykgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgfCAiICsgZGVzY3JpcHRpb24uc3Vic3RyaW5nKHBvcykpOworICAgIH0KKworICAgICAgICAvLyB0aGUgPj4+IHRva2VuIGRvZXNuJ3QgYWx0ZXIgaG93IHRoaXMgc3Vic3RpdHVpb24gY2FsY3VsYXRlcyB0aGUKKyAgICAgICAgLy8gdmFsdWVzIGl0IHVzZXMgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcsIGJ1dCBpdCBjaGFuZ2VzCisgICAgICAgIC8vIHdoYXQncyBkb25lIHdpdGggdGhhdCB2YWx1ZSBhZnRlciBpdCdzIG9idGFpbmVkOiA+Pj4gc2hvcnQtCisgICAgICAgIC8vIGNpcmN1aXRzIHRoZSBydWxlLXNlYXJjaCBwcm9jZXNzIGFuZCBnb2VzIHN0cmFpZ2h0IHRvIHRoZQorICAgICAgICAvLyBzcGVjaWZpZWQgcnVsZSB0byBmb3JtYXQgdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZQorICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI+Pj4iKSkgeworICAgICAgICAgICAgcnVsZVRvVXNlID0gcnVsZVByZWRlY2Vzc29yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcnVsZVRvVXNlID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2VzIHRoZSBzdWJzdGl0dXRpb24ncyBkaXZpc29yIGNvbmZvcm0gdG8gdGhhdCBvZiB0aGUgcnVsZQorICAgICAqIHRoYXQgb3ducyBpdC4gIFVzZWQgd2hlbiB0aGUgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGFmdGVyIGNyZWF0aW9uLgorICAgICAqIEBwYXJhbSByYWRpeCBUaGUgcmFkaXggb2YgdGhlIGRpdnNvci4KKyAgICAgKiBAcGFyYW0gZXhwb25lbnQgVGhlIGV4cG9uZW50IG9mIHRoZSBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgZGl2aXNvciA9IE1hdGgucG93KHJhZGl4LCBleHBvbmVudCk7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7IC8vIHRoaXMgd2lsbCBjYXVzZSByZWN1cnNpb24KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU3Vic3RpdHV0aW9uIHdpdGggYmFkIGRpdmlzb3IiKTsKKyAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQXVnbWVudHMgdGhlIGluaGVyaXRlZCBlcXVhbHMoKSBmdW5jdGlvbiBieSBjb21wYXJpbmcgZGl2aXNvcnMgYW5kCisgICAgICogcnVsZVRvVXNlLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBvdGhlciBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBzdWJzdGl0dXRpb25zIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICBpZiAoc3VwZXIuZXF1YWxzKHRoYXQpKSB7CisgICAgICAgICAgICBNb2R1bHVzU3Vic3RpdHV0aW9uIHRoYXQyID0gKE1vZHVsdXNTdWJzdGl0dXRpb24pdGhhdDsKKworICAgICAgICAgICAgcmV0dXJuIGRpdmlzb3IgPT0gdGhhdDIuZGl2aXNvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSWYgdGhpcyBpcyBhICZndDsmZ3Q7Jmd0OyBzdWJzdGl0dXRpb24sIHVzZSBydWxlVG9Vc2UgdG8gZmlsbCBpbgorICAgICAqIHRoZSBzdWJzdGl0dXRpb24uICBPdGhlcndpc2UsIGp1c3QgdXNlIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBpbnRvCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gb2YgdGhlIHJ1bGUgdGV4dCBpbiB0b0luc2VydEludG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgPj4+IHN1YnN0aXR1dGlvbiwganVzdCB1c2UgdGhlIGluaGVyaXRlZCB2ZXJzaW9uCisgICAgICAgIC8vIG9mIHRoaXMgZnVuY3Rpb24gKHdoaWNoIHVzZXMgZWl0aGVyIGEgcnVsZSBzZXQgb3IgYSBEZWNpbWFsRm9ybWF0CisgICAgICAgIC8vIHRvIGZvcm1hdCBpdHMgc3Vic3RpdHV0aW9uIHZhbHVlKQorICAgICAgICBpZiAocnVsZVRvVXNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN1cGVyLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworCisgICAgICAgIC8vIGEgPj4+IHN1YnN0aXR1dGlvbiBnb2VzIHN0cmFpZ2h0IHRvIGEgcGFydGljdWxhciBydWxlIHRvCisgICAgICAgIC8vIGZvcm1hdCB0aGUgc3Vic3RpdHV0aW9uIHZhbHVlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb25nIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisgICAgICAgICAgICBydWxlVG9Vc2UuZG9Gb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgdGhpcyBpcyBhICZndDsmZ3Q7Jmd0OyBzdWJzdGl0dXRpb24sIHVzZSBydWxlVG9Vc2UgdG8gZmlsbCBpbgorICAgICAqIHRoZSBzdWJzdGl0dXRpb24uICBPdGhlcndpc2UsIGp1c3QgdXNlIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBpbnRvCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gb2YgdGhlIHJ1bGUgdGV4dCBpbiB0b0luc2VydEludG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXNuJ3QgYSA+Pj4gc3Vic3RpdHV0aW9uLCBqdXN0IHVzZSB0aGUgaW5oZXJpdGVkIHZlcnNpb24KKyAgICAgICAgLy8gb2YgdGhpcyBmdW5jdGlvbiAod2hpY2ggdXNlcyBlaXRoZXIgYSBydWxlIHNldCBvciBhIERlY2ltYWxGb3JtYXQKKyAgICAgICAgLy8gdG8gZm9ybWF0IGl0cyBzdWJzdGl0dXRpb24gdmFsdWUpCisgICAgICAgIGlmIChydWxlVG9Vc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgc3VwZXIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisKKyAgICAgICAgLy8gYSA+Pj4gc3Vic3RpdHV0aW9uIGdvZXMgc3RyYWlnaHQgdG8gYSBwYXJ0aWN1bGFyIHJ1bGUgdG8KKyAgICAgICAgLy8gZm9ybWF0IHRoZSBzdWJzdGl0dXRpb24gdmFsdWUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvdWJsZSBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworCisgICAgICAgICAgICBydWxlVG9Vc2UuZG9Gb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlcyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBieSB0aGUgcnVsZSdzIGRpdmlzb3IgYW5kCisgICAgICogcmV0dXJucyB0aGUgcmVtYWluZGVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuICJudW1iZXIiIG1vZCBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAobG9uZylNYXRoLmZsb29yKG51bWJlciAlIGRpdmlzb3IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZAorICAgICAqIHJldHVybnMgdGhlIHJlbWFpbmRlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAibnVtYmVyIiBtb2QgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyICUgZGl2aXNvcik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBJZiB0aGlzIGlzIGEgJmd0OyZndDsmZ3Q7IHN1YnN0aXR1dGlvbiwgbWF0Y2ggb25seSBhZ2FpbnN0IHJ1bGVUb1VzZS4KKyAgICAgKiBPdGhlcndpc2UsIHVzZSB0aGUgc3VwZXJjbGFzcyBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gSWdub3JlZCBvbiBlbnRyeSwgdXBkYXRlZCBvbiBleGl0IHRvIHBvaW50IHRvCisgICAgICogdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGJhc2VWYWx1ZSBUaGUgcGFydGlhbCBwYXJzZSByZXN1bHQgcHJpb3IgdG8gY2FsbGluZyB0aGlzCisgICAgICogcm91dGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIGRvUGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiwgZG91YmxlIGJhc2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgPj4+IHN1YnN0aXR1dGlvbiwgd2UgY2FuIGp1c3QgdXNlIHRoZQorICAgICAgICAvLyBpbmhlcml0ZWQgcGFyc2UoKSByb3V0aW5lIHRvIGRvIHRoZSBwYXJzaW5nCisgICAgICAgIGlmIChydWxlVG9Vc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmRvUGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgYmFzZVZhbHVlLCB1cHBlckJvdW5kLCBsZW5pZW50UGFyc2UpOworCisgICAgICAgIC8vIGJ1dCBpZiBpdCBJUyBhID4+PiBzdWJzdGl0dXRpb24sIHdlIGhhdmUgdG8gZG8gaXQgaGVyZTogd2UKKyAgICAgICAgLy8gdXNlIHRoZSBzcGVjaWZpYyBydWxlJ3MgZG9QYXJzZSgpIG1ldGhvZCwgYW5kIHRoZW4gd2UgaGF2ZSB0bworICAgICAgICAvLyBkbyBzb21lIG9mIHRoZSBvdGhlciB3b3JrIG9mIE5GUnVsZVNldC5wYXJzZSgpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdCA9IHJ1bGVUb1VzZS5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlLCB1cHBlckJvdW5kKTsKKworICAgICAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IHRlbXBSZXN1bHQuZG91YmxlVmFsdWUoKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBvc2VSdWxlVmFsdWUocmVzdWx0LCBiYXNlVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gKGxvbmcpcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygobG9uZylyZXN1bHQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbXVsdGlwbGUgb2YgdGhlIHJ1bGUncyBkaXZpc29yIHRoYXQgaXRzIGxlc3MKKyAgICAgKiB0aGFuIG9yIGVxdWFsIHRvIG9sZFJ1bGVWYWx1ZSwgcGx1cyBuZXdSdWxlVmFsdWUuICAoVGhlIHJlc3VsdAorICAgICAqIGlzIHRoZSBzdW0gb2YgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24gcGx1cyB0aGUKKyAgICAgKiBiYXNlIHZhbHVlb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUgc3Vic3RpdHV0aW9uLCBidXQgaWYgdGhlCisgICAgICogb3duaW5nIHJ1bGUncyBiYXNlIHZhbHVlIGlzbid0IGFuIGV2ZW4gbXVsdGlwbGUgb2YgaXRzIGRpdmlzb3IsCisgICAgICogd2UgaGF2ZSB0byByb3VuZCBpdCBkb3duIHRvIGEgbXVsdGlwbGUgb2YgdGhlIGRpdmlzb3IsIG9yIHdlCisgICAgICogZ2V0IHVud2FudGVkIGRpZ2l0cyBpbiB0aGUgcmVzdWx0LikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgYmFzZSB2YWx1ZSBvZiB0aGUgcnVsZSBjb250YWluaW5nIHRoZQorICAgICAqIHN1YnN0aXR1dGlvbgorICAgICAqIEByZXR1cm4gKG9sZFJ1bGVWYWx1ZSAtIChvbGRSdWxlVmFsdWUgJSBkaXZpc29yKSkgKyBuZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gKG9sZFJ1bGVWYWx1ZSAtIChvbGRSdWxlVmFsdWUgJSBkaXZpc29yKSkgKyBuZXdSdWxlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdXBwZXIgYm91bmQgZG93biB0byB0aGUgb3duaW5nIHJ1bGUncyBkaXZpc29yCisgICAgICogQHBhcmFtIG9sZFVwcGVyQm91bmQgSWdub3JlZAorICAgICAqIEByZXR1cm4gVGhlIG93bmluZyBydWxlJ3MgZHZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gZGl2aXNvcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZS4gIFRoaXMgX2lzXyBhIE1vZHVsdXNTdWJzdGl0dXRpb24uCisgICAgICogQHJldHVybiB0cnVlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2R1bHVzU3Vic3RpdHV0aW9uKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIG9mIGEgTW9kdWx1c1N1YnN0aXR1dGlvbiBpcyAmZ3Q7LgorICAgICAqIEByZXR1cm4gJyZndDsnCisgICAgICovCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnPic7CisgICAgfQorfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIEludGVncmFsUGFydFN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBmb3JtYXRzIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0LiAgVGhpcyBpcworICogcmVwcmVzZW50ZWQgYnkgJmx0OyZsdDsgaW4gYSBmcmFjdGlvbiBydWxlLgorICovCitjbGFzcyBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gZXh0ZW5kcyBORlN1YnN0aXR1dGlvbiB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uLiAgVGhpcyBqdXN0IGNhbGxzCisgICAgICogdGhlIHN1cGVyY2xhc3MgY29uc3RydWN0b3IuCisgICAgICovCisgICAgSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgc3VwZXIocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlcidzIGludGVncmFsIHBhcnQuIChGb3IgYSBsb25nLCB0aGF0J3MganVzdCB0aGUKKyAgICAgKiBudW1iZXIgdW5jaGFuZ2VkLikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAibnVtYmVyIiB1bmNoYW5nZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0LgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIGludGVncmFsIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuIGZsb29yKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdW0gb2YgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24gYW5kIHRoZQorICAgICAqIG93bmluZyBydWxlJ3MgYmFzZSB2YWx1ZS4gIChUaGUgb3duaW5nIHJ1bGUsIGF0IGJlc3QsIGhhcyBhbgorICAgICAqIGludGVncmFsLXBhcnQgc3Vic3RpdHV0aW9uIGFuZCBhIGZyYWN0aW9uYWwtcGFydCBzdWJzdGl0dXRpb24sCisgICAgICogc28gd2UgY2FuIHNhZmVseSBqdXN0IGFkZCB0aGVtLikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIHBhcnRpYWwgcmVzdWx0IG9mIHRoZSBwYXJzZSBwcmlvciB0bworICAgICAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgorICAgICAqIEByZXR1cm4gb2xkUnVsZVZhbHVlICsgbmV3UnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSArIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbiBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gc2V0cyB0aGUgdXBwZXIgYm91bmQgYmFjayB1cCBzbyBhbGwKKyAgICAgKiBwb3RlbnRpYWxseSBtYXRjaGluZyBydWxlcyBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkCisgICAgICogQHJldHVybiBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gRG91YmxlLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQW4gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uJ3MgdG9rZW4gY2hhcmFjdGVyIGlzICZsdDsKKyAgICAgKiBAcmV0dXJuICcmbHQ7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJzwnOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBGcmFjdGlvbmFsUGFydFN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBmb3JtYXRzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYSBudW1iZXIuICBUaGlzIGlzCisgKiByZXByZXNlbnRlZCBieSAmZ3Q7Jmd0OyBpbiBhIGZyYWN0aW9uIHJ1bGUuCisgKi8KK2NsYXNzIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiB0cnVlIGlmIHRoaXMgc3Vic3RpdHV0aW9uIHNob3VsZCBoYXZlIHRoZSBkZWZhdWx0ICJieSBkaWdpdHMiCisgICAgICogYmVoYXZpb3IsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBieURpZ2l0cyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogdHJ1ZSBpZiB3ZSBhdXRvbWF0aWNhbGx5IGluc2VydCBzcGFjZXMgdG8gc2VwYXJhdGUgbmFtZXMgb2YgZGlnaXRzCisgICAgICogc2V0IHRvIGZhbHNlIGJ5ICc+Pj4nIGluIGZyYWN0aW9uIHJ1bGVzLCB1c2VkIGJ5IFRoYWkuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHVzZVNwYWNlcyA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGFyZ2VzdCBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IHRoYXQgdGhpcworICAgICAqIG9iamVjdCB3aWxsIHNob3cgaW4gImJ5IGRpZ2l0cyIgbW9kZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhERUNJTUFMRElHSVRTID0gMTg7IC8vIDgKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24uICBUaGlzIG9iamVjdCBrZWVwcyBhIGZsYWcKKyAgICAgKiB0ZWxsaW5nIHdoZXRoZXIgaXQgc2hvdWxkIGZvcm1hdCBieSBkaWdpdHMgb3Igbm90LiAgSW4gYWRkaXRpb24sCisgICAgICogaXQgbWFya3MgdGhlIHJ1bGUgc2V0IGl0IGNhbGxzIChpZiBhbnkpIGFzIGEgZnJhY3Rpb24gcnVsZSBzZXQuCisgICAgICovCisgICAgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworLy8gICAgYm9vbGVhbiBjaGV2cm9uID0gZGVzY3JpcHRpb24uc3RhcnRzV2l0aCgiPj4iKSB8fCBydWxlU2V0ID09IHRoaXMucnVsZVNldDsKKy8vICAgICAgaWYgKGNoZXZyb24gfHwgcnVsZVNldCA9PSB0aGlzLnJ1bGVTZXQpIHsKKworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI+PiIpIHx8IGRlc2NyaXB0aW9uLmVxdWFscygiPj4+IikgfHwgcnVsZVNldCA9PSB0aGlzLnJ1bGVTZXQpIHsKKyAgICAgICAgICAgIGJ5RGlnaXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi5lcXVhbHMoIj4+PiIpKSB7CisgICAgICAgICAgICAgIHVzZVNwYWNlcyA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0Lm1ha2VJbnRvRnJhY3Rpb25SdWxlU2V0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIElmIGluICJieSBkaWdpdHMiIG1vZGUsIGZpbGxzIGluIHRoZSBzdWJzdGl0dXRpb24gb25lIGRlY2ltYWwgZGlnaXQKKyAgICAgKiBhdCBhIHRpbWUgdXNpbmcgdGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhpcyBzdWJzdGl0dXRpb24uCisgICAgICogT3RoZXJ3aXNlLCB1c2VzIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZworICAgICAqIHRoZSBzdWJzdGl0dXRpb24gaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBvd25pbmcgcnVsZSdzIHJ1bGUgdGV4dCBpbgorICAgICAqIHRvSW5zZXJ0SW50bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gaWYgd2UncmUgbm90IGluICJieURpZ2l0cyIgbW9kZSwganVzdCB1c2UgdGhlIGluaGVyaXRlZAorICAgICAgICAvLyBkb1N1YnN0aXR1dGlvbigpIHJvdXRpbmUKKyAgICAgICAgaWYgKCFieURpZ2l0cykgeworICAgICAgICAgICAgc3VwZXIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisKKyAgICAgICAgLy8gaWYgd2UncmUgaW4gImJ5RGlnaXRzIiBtb2RlLCB0cmFuc2Zvcm0gdGhlIHZhbHVlIGludG8gYW4gaW50ZWdlcgorICAgICAgICAvLyBieSBtb3ZpbmcgdGhlIGRlY2ltYWwgcG9pbnQgZWlnaHQgcGxhY2VzIHRvIHRoZSByaWdodCBhbmQKKyAgICAgICAgLy8gcHVsbGluZyBkaWdpdHMgb2ZmIHRoZSByaWdodCBvbmUgYXQgYSB0aW1lLCBmb3JtYXR0aW5nIGVhY2ggZGlnaXQKKyAgICAgICAgLy8gYXMgYW4gaW50ZWdlciB1c2luZyB0aGlzIHN1YnN0aXR1dGlvbidzIG93bmluZyBydWxlIHNldAorICAgICAgICAvLyAodGhpcyBpcyBzbG93ZXIsIGJ1dCBtb3JlIGFjY3VyYXRlLCB0aGFuIGRvaW5nIGl0IGZyb20gdGhlCisgICAgICAgIC8vIG90aGVyIGVuZCkKKyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICBpbnQgbnVtYmVyVG9Gb3JtYXQgPSAoaW50KU1hdGgucm91bmQodHJhbnNmb3JtTnVtYmVyKG51bWJlcikgKiBNYXRoLnBvdygKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIE1BWERFQ0lNQUxESUdJVFMpKTsKKy8vICAgICAgICBsb25nIG51bWJlclRvRm9ybWF0ID0gKGxvbmcpTWF0aC5yb3VuZCh0cmFuc2Zvcm1OdW1iZXIobnVtYmVyKSAqIE1hdGgucG93KDEwLCBNQVhERUNJTUFMRElHSVRTKSk7CisKKyAgICAgICAgLy8ganVzdCBwcmludCB0byBzdHJpbmcgYW5kIHRoZW4gdXNlIHRoYXQKKyAgICAgICAgRGlnaXRMaXN0IGRsID0gbmV3IERpZ2l0TGlzdCgpOworICAgICAgICBkbC5zZXQobnVtYmVyLCAyMCwgdHJ1ZSk7CisKKyAgICAgICAgICAgIC8vIHRoaXMgZmxhZyBrZWVwcyB1cyBmcm9tIGZvcm1hdHRpbmcgdHJhaWxpbmcgemVyb3MuICBJdCBzdGFydHMKKyAgICAgICAgICAgIC8vIG91dCBmYWxzZSBiZWNhdXNlIHdlJ3JlIHB1bGxpbmcgZnJvbSB0aGUgcmlnaHQsIGFuZCBzd2l0Y2hlcworICAgICAgICAgICAgLy8gdG8gdHJ1ZSB0aGUgZmlyc3QgdGltZSB3ZSBlbmNvdW50ZXIgYSBub24temVybyBkaWdpdAorLy8gICAgICAgICAgICAgIGJvb2xlYW4gZG9aZXJvcyA9IGZhbHNlOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjbGFzczogIiArIGdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibnVtYmVyOiAiICsgbnVtYmVyICsgIiB0cmFuc2Zvcm1lZDogIiArIHRyYW5zZm9ybU51bWJlcihudW1iZXIpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZm9ybWF0dGluZyAiICsgbnVtYmVyVG9Gb3JtYXQpOworLy8gICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYREVDSU1BTERJR0lUUzsgaSsrKSB7CisvLyAgICAgICAgICAgICAgICAgIGludCBkaWdpdCA9IChpbnQpKG51bWJlclRvRm9ybWF0ICUgMTApOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAjOiAnIiArIG51bWJlclRvRm9ybWF0ICsgIiciICsgIiBkaWdpdCAnIiArIGRpZ2l0ICsgIiciKTsKKy8vICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0ICE9IDAgfHwgZG9aZXJvcykgeworLy8gICAgICAgICAgICAgICAgICAgICAgaWYgKGRvWmVyb3MgJiYgdXNlU3BhY2VzKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MgKyB0aGlzLnBvcywgJyAnKTsKKy8vICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICAgIGRvWmVyb3MgPSB0cnVlOworLy8gICAgICAgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQoZGlnaXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworLy8gICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgIG51bWJlclRvRm9ybWF0IC89IDEwOworLy8gICAgICAgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHBhZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoZGwuY291bnQgPiBNYXRoLm1heCgwLCBkbC5kZWNpbWFsQXQpKSB7CisgICAgICAgIGlmIChwYWQgJiYgdXNlU3BhY2VzKSB7CisgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0LmZvcm1hdChkbC5kaWdpdHNbLS1kbC5jb3VudF0gLSAnMCcsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChkbC5kZWNpbWFsQXQgPCAwKSB7CisgICAgICAgIGlmIChwYWQgJiYgdXNlU3BhY2VzKSB7CisgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0LmZvcm1hdCgwLCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKyAgICAgICAgKytkbC5kZWNpbWFsQXQ7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIsIHdoaWNoIHdpbGwgYWx3YXlzIGJlCisgICAgICogemVybyBpZiBpdCdzIGEgbG9uZy4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAwCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHJldHVybiBudW1iZXIgLSBmbG9vcihudW1iZXIpCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gbnVtYmVyIC0gTWF0aC5mbG9vcihudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSWYgaW4gImJ5IGRpZ2l0cyIgbW9kZSwgcGFyc2VzIHRoZSBzdHJpbmcgYXMgaWYgaXQgd2VyZSBhIHN0cmluZworICAgICAqIG9mIGluZGl2aWR1YWwgZGlnaXRzOyBvdGhlcndpc2UsIHVzZXMgdGhlIHN1cGVyY2xhc3MgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIElnbm9yZWQgb24gZW50cnksIGJ1dCB1cGRhdGVkIG9uIGV4aXQgdG8gcG9pbnQKKyAgICAgKiB0byB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgVGhlIHBhcnRpYWwgcGFyc2UgcmVzdWx0IHByaW9yIHRvIGVudGVyaW5nIHRoaXMKKyAgICAgKiBmdW5jdGlvbgorICAgICAqIEBwYXJhbSB1cHBlckJvdW5kIE9ubHkgY29uc2lkZXIgcnVsZXMgd2l0aCBiYXNlIHZhbHVlcyBsb3dlciB0aGFuCisgICAgICogdGhpcyB3aGVuIGZpbGxpbmcgaW4gdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBsZW5pZW50UGFyc2UgSWYgdHJ1ZSwgdHJ5IG1hdGNoaW5nIHRoZSB0ZXh0IGFzIG51bWVyYWxzIGlmCisgICAgICogbWF0Y2hpbmcgYXMgd29yZHMgZG9lc24ndCB3b3JrCisgICAgICogQHJldHVybiBJZiB0aGUgbWF0Y2ggd2FzIHN1Y2Nlc3NmdWwsIHRoZSBjdXJyZW50IHBhcnRpYWwgcGFyc2UKKyAgICAgKiByZXN1bHQ7IG90aGVyd2lzZSBuZXcgTG9uZygwKS4gIFRoZSByZXN1bHQgaXMgZWl0aGVyIGEgTG9uZyBvcgorICAgICAqIGEgRG91YmxlLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHVwcGVyQm91bmQsIGJvb2xlYW4gbGVuaWVudFBhcnNlKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIG5vdCBpbiBieURpZ2l0cyBtb2RlLCB3ZSBjYW4ganVzdCB1c2UgdGhlIGluaGVyaXRlZAorICAgICAgICAvLyBkb1BhcnNlKCkKKyAgICAgICAgaWYgKCFieURpZ2l0cykgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmRvUGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgYmFzZVZhbHVlLCAwLCBsZW5pZW50UGFyc2UpOworCisgICAgICAgIC8vIGlmIHdlIEFSRSBpbiBieURpZ2l0cyBtb2RlLCBwYXJzZSB0aGUgdGV4dCBvbmUgZGlnaXQgYXQgYSB0aW1lCisgICAgICAgIC8vIHVzaW5nIHRoaXMgc3Vic3RpdHV0aW9uJ3Mgb3duaW5nIHJ1bGUgc2V0ICh3ZSBkbyB0aGlzIGJ5IHNldHRpbmcKKyAgICAgICAgLy8gdXBwZXJCb3VuZCB0byAxMCB3aGVuIGNhbGxpbmcgZG9QYXJzZSgpICkgdW50aWwgd2UgcmVhY2gKKyAgICAgICAgLy8gbm9ubWF0Y2hpbmcgdGV4dAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gd29ya1BvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDEpOworICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBkaWdpdDsKKy8vICAgICAgICAgICAgICBkb3VibGUgcDEwID0gMC4xOworCisvLyAgICAgICAgICAgICAgd2hpbGUgKHdvcmtUZXh0Lmxlbmd0aCgpID4gMCAmJiB3b3JrUG9zLmdldEluZGV4KCkgIT0gMCkgeworLy8gICAgICAgICAgICAgICAgICB3b3JrUG9zLnNldEluZGV4KDApOworLy8gICAgICAgICAgICAgICAgICBkaWdpdCA9IHJ1bGVTZXQucGFyc2Uod29ya1RleHQsIHdvcmtQb3MsIDEwKS5pbnRWYWx1ZSgpOworLy8gICAgICAgICAgICAgICAgICBpZiAobGVuaWVudFBhcnNlICYmIHdvcmtQb3MuZ2V0SW5kZXgoKSA9PSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHdvcmtUZXh0LCB3b3JrUG9zKS5pbnRWYWx1ZSgpOworLy8gICAgICAgICAgICAgICAgICB9CisKKy8vICAgICAgICAgICAgICAgICAgaWYgKHdvcmtQb3MuZ2V0SW5kZXgoKSAhPSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZGlnaXQgKiBwMTA7CisvLyAgICAgICAgICAgICAgICAgICAgICBwMTAgLz0gMTA7CisvLyAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICB3b3JrVGV4dCA9IHdvcmtUZXh0LnN1YnN0cmluZyh3b3JrUG9zLmdldEluZGV4KCkpOworLy8gICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHdvcmtUZXh0Lmxlbmd0aCgpID4gMCAmJiB3b3JrVGV4dC5jaGFyQXQoMCkgPT0gJyAnKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcoMSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyAxKTsKKy8vICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgIH0KKworCisgICAgICAgIERpZ2l0TGlzdCBkbCA9IG5ldyBEaWdpdExpc3QoKTsKKyAgICAgICAgICAgIHdoaWxlICh3b3JrVGV4dC5sZW5ndGgoKSA+IDAgJiYgd29ya1Bvcy5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICB3b3JrUG9zLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgIGRpZ2l0ID0gcnVsZVNldC5wYXJzZSh3b3JrVGV4dCwgd29ya1BvcywgMTApLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmllbnRQYXJzZSAmJiB3b3JrUG9zLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHdvcmtUZXh0LCB3b3JrUG9zKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICh3b3JrUG9zLmdldEluZGV4KCkgIT0gMCkgeworICAgICAgICAgICAgZGwuYXBwZW5kKCcwJytkaWdpdCk7CisKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyB3b3JrUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgICAgICB3b3JrVGV4dCA9IHdvcmtUZXh0LnN1YnN0cmluZyh3b3JrUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtUZXh0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtUZXh0ID0gd29ya1RleHQuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gZGwuY291bnQgPT0gMCA/IDAgOiBkbC5nZXREb3VibGUoKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gY29tcG9zZVJ1bGVWYWx1ZShyZXN1bHQsIGJhc2VWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3VtIG9mIHRoZSB0d28gcGFydGlhbCBwYXJzZSByZXN1bHRzLgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwcmlvciB0byBjYWxsaW5nCisgICAgICogdGhpcyBmdW5jdGlvbgorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlICsgb2xkUnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSArIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3QgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiAwOyAgIC8vIHRoaXMgdmFsdWUgaXMgaWdub3JlZAorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3IKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIGZvciBhIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIGlzICZndDsuCisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAvKioKKyAgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGZvcm1hdHMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBudW1iZXIuCisgICogVGhpcyBzdWJzdGl0aW9uIGlzIHJlcHJlc2VudGVkIGJ5ICZndDsmZ3Q7IGluIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuCisgICovCitjbGFzcyBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24uICBUaGlzIGp1c3QgdXNlcyB0aGUKKyAgICAgKiBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIE1hdGguYWJzKG51bWJlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmFicyhudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWRkdGl2ZSBpbnZlcnNlIG9mIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24gKHRoaXMgc3VwZXJzZWRlcyB0aGUgZWFybGllciBwYXJ0aWFsIHJlc3VsdCkKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgcGFydGlhbCBwYXJzZSByZXN1bHQgcHJpb3IgdG8gY2FsbGluZworICAgICAqIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBAcmV0dXJuIC1uZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gLW5ld1J1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBiZWNrIHVwIHRvIGNvbnNpZGVyIGFsbCBydWxlcworICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIElnbm9yZWQuCisgICAgICogQHJldHVybiBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gRG91YmxlLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYW4gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbiBpcyAmZ3Q7CisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IG11bHRpcGxpZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgKHdoaWNoIGlzCisgKiBiZXR3ZWVuIDAgYW5kIDEpIGJ5IHRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdCBhbmQKKyAqIGZvcm1hdHMgdGhlIHJlc3VsdC4gIEl0IGlzIHJlcHJlc2VudGVkIGJ5ICZsdDsmbHQ7IGluIHRoZSBydWxlcworICogaW4gYSBmcmFjdGlvbiBydWxlIHNldC4KKyAqLworY2xhc3MgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVub21pbmF0b3Igb2YgdGhlIGZyYWN0aW9uIHdlJ3JlIGZpbmRpbmcgdGhlIG51bWVyYXRvciBmb3IuCisgICAgICogKFRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbi4pCisgICAgICovCisgICAgZG91YmxlIGRlbm9taW5hdG9yOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB3ZSBmb3JtYXQgbGVhZGluZyB6ZXJvcyAodGhpcyBpcyBhIGhhY2sgZm9yIEhlYnJldyBzcGVsbG91dCkKKyAgICAgKi8KKyAgICBib29sZWFuIHdpdGhaZXJvczsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgTnVtYmVyYXRvclN1YnN0aXR1dGlvbi4gIEluIGFkZGl0aW9uIHRvIHRoZSBpbmhlcml0ZWQKKyAgICAgKiBmaWVsZHMsIGEgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIGtlZXBzIHRyYWNrIG9mIGEgZGVub21pbmF0b3IsIHdoaWNoCisgICAgICogaXMgbWVyZWx5IHRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdC4KKyAgICAgKi8KKyAgICBOdW1lcmF0b3JTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlbm9taW5hdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIHN1cGVyKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBmaXhkZXNjKGRlc2NyaXB0aW9uKSk7CisKKyAgICAgICAgLy8gdGhpcyBzdWJzdGl0dXRpb24ncyBiZWhhdmlvciBkZXBlbmRzIG9uIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAgICAvLyBSYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFja3BvaW50ZXIgdG8gdGhlIHJ1bGUsIHdlIGNvcHkgaXRzCisgICAgICAgIC8vIGJhc2UgdmFsdWUgaGVyZQorICAgICAgICB0aGlzLmRlbm9taW5hdG9yID0gZGVub21pbmF0b3I7CisgICAgICAgIAorICAgICAgICB0aGlzLndpdGhaZXJvcyA9IGRlc2NyaXB0aW9uLmVuZHNXaXRoKCI8PCIpOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmcgZml4ZGVzYyhTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uLmVuZHNXaXRoKCI8PCIpIAorICAgICAgICAgICAgPyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCxkZXNjcmlwdGlvbi5sZW5ndGgoKS0xKSAKKyAgICAgICAgICAgIDogZGVzY3JpcHRpb247CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGVzdHMgdHdvIE51bWVyYXRvclN1YnN0aXR1dGlvbnMgZm9yIGVxdWFsaXR5CisgICAgICogQHBhcmFtIHRoYXQgVGhlIG90aGVyIE51bWVyYXRvclN1YnN0aXR1dGlvbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdHdvIG9iamVjdHMgYXJlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmIChzdXBlci5lcXVhbHModGhhdCkpIHsKKyAgICAgICAgICAgIE51bWVyYXRvclN1YnN0aXR1dGlvbiB0aGF0MiA9IChOdW1lcmF0b3JTdWJzdGl0dXRpb24pdGhhdDsKKyAgICAgICAgICAgIHJldHVybiBkZW5vbWluYXRvciA9PSB0aGF0Mi5kZW5vbWluYXRvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGZvcm1hdHMgaXQgdXNpbmcKKyAgICAgKiBlaXRoZXIgcnVsZVNldCBvciBkZWNpbWFsRm9ybWF0LCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2UgaW5zZXJ0IHRoZSByZXN1bHQgaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgb3duaW5nIHJ1bGUncworICAgICAqIHJ1bGUgdGV4dCBiZWdpbnMgKHRoaXMgdmFsdWUgaXMgYWRkZWQgdG8gdGhpcyBzdWJzdGl0dXRpb24ncworICAgICAqIHBvc2l0aW9uIHRvIGRldGVybWluZSBleGFjdGx5IHdoZXJlIHRvIGluc2VydCB0aGUgbmV3IHRleHQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24oZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBwZXJmb3JtIGEgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgdGhhdAorICAgICAgICAvLyBpcyBkZXBlbmRlbnQgb24gdGhlIHR5cGUgb2Ygc3Vic3RpdHV0aW9uIHRoaXMgaXMKKyAgICAgICAgU3RyaW5nIHMgPSB0b0luc2VydEludG8udG9TdHJpbmcoKTsKKyAgICAgICAgZG91YmxlIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisKKyAgICAgICAgaWYgKHdpdGhaZXJvcyAmJiBydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBsZWFkaW5nIHplcm9zIGluIHRoZSBkZWNpbWFsIGV4cGFuc2lvbiB0aGVuIGVtaXQgdGhlbQorICAgICAgICAgICAgbG9uZyBuZiA9IChsb25nKW51bWJlclRvRm9ybWF0OworICAgICAgICAgICAgaW50IGxlbiA9IHRvSW5zZXJ0SW50by5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlICgobmYgKj0gMTApIDwgZGVub21pbmF0b3IpIHsKKyAgICAgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICAgICAgICAgIHJ1bGVTZXQuZm9ybWF0KDAsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zICs9IHRvSW5zZXJ0SW50by5sZW5ndGgoKSAtIGxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSByZXN1bHQgaXMgYW4gaW50ZWdlciwgZnJvbSBoZXJlIG9uIG91dCB3ZSB3b3JrIGluIGludGVnZXIKKyAgICAgICAgLy8gc3BhY2UgKHNhdmluZyB0aW1lIGFuZCBtZW1vcnkgYW5kIHByZXNlcnZpbmcgYWNjdXJhY3kpCisgICAgICAgIGlmIChudW1iZXJUb0Zvcm1hdCA9PSBNYXRoLmZsb29yKG51bWJlclRvRm9ybWF0KSAmJiBydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJ1bGVTZXQuZm9ybWF0KChsb25nKW51bWJlclRvRm9ybWF0LCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKworICAgICAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpc24ndCBhbiBpbnRlZ2VyLCB0aGVuIGNhbGwgZWl0aGVyIG91ciBydWxlIHNldCdzCisgICAgICAgICAgICAvLyBmb3JtYXQoKSBtZXRob2Qgb3Igb3VyIERlY2ltYWxGb3JtYXQncyBmb3JtYXQoKSBtZXRob2QgdG8KKyAgICAgICAgICAgIC8vIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlclRvRm9ybWF0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHRpbWVzIHRoZSBkZW5vbWluYXRvci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBudW1iZXIgKiBkZW5vbWluYXRvcgorICAgICAqLworICAgIHB1YmxpYyBsb25nIHRyYW5zZm9ybU51bWJlcihsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW1iZXIgKiBkZW5vbWluYXRvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCB0aW1lcyB0aGUgZGVub21pbmF0b3IuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gbnVtYmVyICogZGVub21pbmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bWJlciAqIGRlbm9taW5hdG9yKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIERpc3BhdGNoZXMgdG8gdGhlIGluaGVyaXRlZCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24sIGJ1dCBtYWtlcworICAgICAqIHN1cmUgdGhhdCBsZW5pZW50UGFyc2UgaXMgb2ZmLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHVwcGVyQm91bmQsIGJvb2xlYW4gbGVuaWVudFBhcnNlKSB7CisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCB0byBkbyB0aGUgcGFyc2luZyBoZXJlLAorICAgICAgICAvLyBidXQgd2UgaGF2ZSB0byB0dXJuIGxlbmllbnQgcGFyc2luZyBvZmYtLSBpZiB3ZSBsZWF2ZSBpdCBvbiwKKyAgICAgICAgLy8gaXQgU0VSSU9VU0xZIG1lc3NlcyB1cCB0aGUgYWxnb3JpdGhtCisKKyAgICAgICAgLy8gaWYgd2l0aFplcm9zIGlzIHRydWUsIHdlIG5lZWQgdG8gY291bnQgdGhlIHplcm9zCisgICAgICAgIC8vIGFuZCB1c2UgdGhhdCB0byBhZGp1c3QgdGhlIHBhcnNlIHJlc3VsdAorICAgICAgICBpbnQgemVyb0NvdW50ID0gMDsKKyAgICAgICAgaWYgKHdpdGhaZXJvcykgeworICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gd29ya1BvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDEpOworICAgICAgICAgICAgaW50IGRpZ2l0OworCisgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtQb3MuZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgd29ya1Bvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICBkaWdpdCA9IHJ1bGVTZXQucGFyc2Uod29ya1RleHQsIHdvcmtQb3MsIDEpLmludFZhbHVlKCk7IC8vIHBhcnNlIHplcm8gb3Igbm90aGluZyBhdCBhbGwKKyAgICAgICAgICAgICAgICBpZiAod29ya1Bvcy5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZmFpbGVkLCBlaXRoZXIgdGhlcmUgd2VyZSBubyBtb3JlIHplcm9zLCBvciB0aGUgbnVtYmVyIHdhcyBmb3JtYXR0ZWQgd2l0aCBkaWdpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyIHdheSwgd2UncmUgZG9uZQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICArK3plcm9Db3VudDsKKyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcod29ya1Bvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtUZXh0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsgLy8gYXJyZ2ghCisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gd2UndmUgcGFyc2VkIG9mZiB0aGUgemVyb3MsIG5vdyBsZXQncyBwYXJzZSB0aGUgcmVzdCBmcm9tIG91ciBjdXJyZW50IHBvc2l0aW9uCisgICAgICAgIE51bWJlciByZXN1bHQgPSAgc3VwZXIuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCB3aXRoWmVyb3MgPyAxIDogYmFzZVZhbHVlLCB1cHBlckJvdW5kLCBmYWxzZSk7CisKKyAgICAgICAgaWYgKHdpdGhaZXJvcykgeworICAgICAgICAgICAgLy8gYW55IGJhc2UgdmFsdWUgd2lsbCBkbyBpbiB0aGlzIGNhc2UuICBpcyB0aGVyZSBhIHdheSB0bworICAgICAgICAgICAgLy8gZm9yY2UgdGhpcyB0byBub3QgYm90aGVyIHRyeWluZyBhbGwgdGhlIGJhc2UgdmFsdWVzPworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb21wdXRlIHRoZSAnZWZmZWN0aXZlJyBiYXNlIGFuZCBwcmVzY2FsZSB0aGUgdmFsdWUgZG93bgorICAgICAgICAgICAgbG9uZyBuID0gcmVzdWx0LmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgbG9uZyBkID0gMTsKKyAgICAgICAgICAgIGludCBwb3cgPSAwOworICAgICAgICAgICAgd2hpbGUgKGQgPD0gbikgeworICAgICAgICAgICAgICAgIGQgKj0gMTA7CisgICAgICAgICAgICAgICAgKytwb3c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBub3cgYWRkIHRoZSB6ZXJvcworICAgICAgICAgICAgd2hpbGUgKHplcm9Db3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBkICo9IDEwOworICAgICAgICAgICAgICAgIC0temVyb0NvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZCBpcyBub3cgb3VyIHRydWUgZGVub21pbmF0b3IKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBEb3VibGUobi8oZG91YmxlKWQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uIGJ5IHRoZSBwYXJ0aWFsCisgICAgICogcGFyc2UgcmVzdWx0LgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKiBAcmV0dXJuIG5ld1J1bGVWYWx1ZSAvIG9sZFJ1bGVWYWx1ZQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY29tcG9zZVJ1bGVWYWx1ZShkb3VibGUgbmV3UnVsZVZhbHVlLCBkb3VibGUgb2xkUnVsZVZhbHVlKSB7CisgICAgICAgIHJldHVybiBuZXdSdWxlVmFsdWUgLyBvbGRSdWxlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdXBlciBib3VuZCBkb3duIHRvIHRoaXMgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkCisgICAgICogQHJldHVybiBUaGUgYmFzZSB2YWx1ZSBvZiB0aGUgcnVsZSBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiBkZW5vbWluYXRvcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYSBOdW1lcmF0b3JTdWJzdGl0dXRpb24gaXMgJmx0OworICAgICAqIEByZXR1cm4gJyZsdDsnCisgICAgICovCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnPCc7CisgICAgfQorfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE51bGxTdWJzdGl0dXRpb24KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyAqIEEgc3Vic3RpdHV0aW9uIHdoaWNoIGRvZXMgbm90aGluZy4gIFRoaXMgY2xhc3MgZXhpc3RzIGp1c3QgdG8gc2ltcGxpZnkKKyAqIHRoZSBsb2dpYyBpbiBzb21lIG90aGVyIHJvdXRpbmVzIHNvIHRoYXQgdGhleSBkb24ndCBoYXZlIHRvIHdvcnJ5CisgKiBhYm91dCBob3cgbWFueSBzdWJzdGl0dXRpb25zIGEgcnVsZSBoYXMuCisgKi8KK2NsYXNzIE51bGxTdWJzdGl0dXRpb24gZXh0ZW5kcyBORlN1YnN0aXR1dGlvbiB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBOdWxsU3Vic3RpdHV0aW9uLiAgVGhpcyBqdXN0IGRlbGVnYXRlcyB0byB0aGUgc3VwZXJjbGFzcworICAgICAqIGNvbnN0cnVjdG9yLCBidXQgdGhlIG9ubHkgdmFsdWUgd2UgcmVhbGx5IGNhcmUgYWJvdXQgaXMgdGhlIHBvc2l0aW9uLgorICAgICAqLworICAgIE51bGxTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIE9ubHkgY2hlY2tzIGZvciBjbGFzcyBlcXVhbGl0eQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICByZXR1cm4gc3VwZXIuZXF1YWxzKHRoYXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE51bGxTdWJzdGl0dXRpb25zIGRvbid0IHNob3cgdXAgaW4gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24KKyAgICAgKiBvZiBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIERvZXMgbm90aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgbm90aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcGFydGlhbCBwYXJzZSByZXN1bHQgdW5jaGFuZ2VkCisgICAgICovCisgICAgcHVibGljIE51bWJlciBkb1BhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCwgYm9vbGVhbiBsZW5pZW50UGFyc2UpIHsKKyAgICAgICAgaWYgKGJhc2VWYWx1ZSA9PSAobG9uZyliYXNlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygobG9uZyliYXNlVmFsdWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBEb3VibGUoYmFzZVZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE5ldmVyIGNhbGxlZC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlICh0aGlzIF9pc18gYSBOdWxsU3Vic3RpdHV0aW9uKS4KKyAgICAgKiBAcmV0dXJuIHRydWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc051bGxTdWJzdGl0dXRpb24oKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5ldmVyIGNhbGxlZC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnICc7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9OYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjU2N2NlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBwZXJmb3JtcyBuYW1lIHRvIGNoYXJhY3RlciBtYXBwaW5nLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgY2hhciBvcGVuRGVsaW1pdGVyOworICAgIGNoYXIgY2xvc2VEZWxpbWl0ZXI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJOYW1lLUFueSI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIE9QRU5fUEFUICAgID0gIlxcTn57fiI7CisgICAgc3RhdGljIGZpbmFsIGNoYXIgICBPUEVOX0RFTElNICA9ICdcXCc7IC8vIGZpcnN0IGNoYXIgb2YgT1BFTl9QQVQKKyAgICBzdGF0aWMgZmluYWwgY2hhciAgIENMT1NFX0RFTElNID0gJ30nOworICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgU1BBQ0UgICAgICAgPSAnICc7CisKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yKG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIE5hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IoVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoX0lELCBmaWx0ZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworCisgICAgICAgIGludCBtYXhMZW4gPSBVQ2hhcmFjdGVyTmFtZS5nZXRJbnN0YW5jZSgpLmdldE1heENoYXJOYW1lTGVuZ3RoKCkgKyAxOyAvLyBhbGxvdyBmb3IgdGVtcG9yYXJ5IHRyYWlsaW5nIHNwYWNlCisKKyAgICAgICAgU3RyaW5nQnVmZmVyIG5hbWUgPSBuZXcgU3RyaW5nQnVmZmVyKG1heExlbik7CisKKyAgICAgICAgLy8gR2V0IHRoZSBsZWdhbCBjaGFyYWN0ZXIgc2V0CisgICAgICAgIFVuaWNvZGVTZXQgbGVnYWwgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBVQ2hhcmFjdGVyTmFtZS5nZXRJbnN0YW5jZSgpLmdldENoYXJOYW1lQ2hhcmFjdGVycyhsZWdhbCk7CisKKyAgICAgICAgaW50IGN1cnNvciA9IG9mZnNldHMuc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisKKyAgICAgICAgLy8gTW9kZXM6CisgICAgICAgIC8vIDAgLSBsb29raW5nIGZvciBvcGVuIGRlbGltaXRlcgorICAgICAgICAvLyAxIC0gYWZ0ZXIgb3BlbiBkZWxpbWl0ZXIKKyAgICAgICAgaW50IG1vZGUgPSAwOworICAgICAgICBpbnQgb3BlblBvcyA9IC0xOyAvLyBvcGVuIGRlbGltIGNhbmRpZGF0ZSBwb3MKKyAgICAgICAgCisgICAgICAgIGludCBjOworICAgICAgICB3aGlsZSAoY3Vyc29yIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGMgPSB0ZXh0LmNoYXIzMkF0KGN1cnNvcik7CisKKyAgICAgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICAgICAgY2FzZSAwOiAvLyBsb29raW5nIGZvciBvcGVuIGRlbGltaXRlcgorICAgICAgICAgICAgICAgIGlmIChjID09IE9QRU5fREVMSU0pIHsgLy8gcXVpY2sgY2hlY2sgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgb3BlblBvcyA9IGN1cnNvcjsKKyAgICAgICAgICAgICAgICAgICAgaW50IGkgPSBVdGlsaXR5LnBhcnNlUGF0dGVybihPUEVOX1BBVCwgdGV4dCwgY3Vyc29yLCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID49IDAgJiYgaSA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyAqKiogcmVwcm9jZXNzIGNoYXIzMkF0KGN1cnNvcikKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOiAvLyBhZnRlciBvcGVuIGRlbGltaXRlcgorICAgICAgICAgICAgICAgIC8vIExvb2sgZm9yIGxlZ2FsIGNoYXJzLiAgSWYgXHMrIGlzIGZvdW5kLCBjb252ZXJ0IGl0CisgICAgICAgICAgICAgICAgLy8gdG8gYSBzaW5nbGUgc3BhY2UuICBJZiBjbG9zZURlbGltaXRlciBpcyBmb3VuZCwgZXhpdAorICAgICAgICAgICAgICAgIC8vIHRoZSBsb29wLiAgSWYgYW55IG90aGVyIGNoYXJhY3RlciBpcyBmb3VuZCwgZXhpdCB0aGUKKyAgICAgICAgICAgICAgICAvLyBsb29wLiAgSWYgdGhlIGxpbWl0IGlzIHJlYWNoZWQsIGV4aXQgdGhlIGxvb3AuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQ29udmVydCBccysgPT4gU1BBQ0UuICBUaGlzIGFzc3VtZXMgdGhlcmUgYXJlIG5vCisgICAgICAgICAgICAgICAgLy8gcnVucyBvZiA+MSBzcGFjZSBjaGFyYWN0ZXJzIGluIG5hbWVzLgorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgbGVhZGluZyB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5jaGFyQXQobmFtZS5sZW5ndGgoKS0xKSAhPSBTUEFDRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5hcHBlbmQoU1BBQ0UpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHRvbyBsb25nIHRoZW4gYWJvcnQuICBtYXhMZW4gaW5jbHVkZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRlbXBvcmFyeSB0cmFpbGluZyBzcGFjZSwgc28gdXNlICc+Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gbWF4TGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gQ0xPU0VfREVMSU0pIHsKKworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0cmFpbGluZyBzcGFjZSwgaWYgYW55CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmNoYXJBdChsZW4tMSkgPT0gU1BBQ0UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuc2V0TGVuZ3RoKC0tbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGMgPSBVQ2hhcmFjdGVyLmdldENoYXJGcm9tRXh0ZW5kZWROYW1lKG5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb29rdXAgc3VjY2VlZGVkCisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydChVVEYxNi5nZXRDaGFyQ291bnQoQ0xPU0VfREVMSU0pID09IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yKys7IC8vIGFkdmFuY2Ugb3ZlciBDTE9TRV9ERUxJTQorCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShvcGVuUG9zLCBjdXJzb3IsIHN0cik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkanVzdCBpbmRpY2VzIGZvciB0aGUgY2hhbmdlIGluIHRoZSBsZW5ndGggb2YKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzdHJpbmcuICBEbyBub3QgYXNzdW1lIHRoYXQgc3RyLmxlbmd0aCgpID09CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAxLCBpbiBjYXNlIG9mIHN1cnJvZ2F0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsdGEgPSBjdXJzb3IgLSBvcGVuUG9zIC0gc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yIC09IGRlbHRhOworICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLT0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQoY3Vyc29yID09IG9wZW5Qb3MgKyBzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsb29rdXAgZmFpbGVkLCB3ZSBsZWF2ZSB0aGluZ3MgYXMtaXMgYW5kCisgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIHN3aXRjaCB0byBtb2RlIDAgYW5kIGNvbnRpbnVlLgorICAgICAgICAgICAgICAgICAgICBtb2RlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgb3BlblBvcyA9IC0xOyAvLyBjbG9zZSBvZmYgY2FuZGlkYXRlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyAqKiogcmVwcm9jZXNzIGNoYXIzMkF0KGN1cnNvcikKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobGVnYWwuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKG5hbWUsIGMpOworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBnbyBwYXN0IHRoZSBsb25nZXN0IHBvc3NpYmxlIG5hbWUgdGhlbiBhYm9ydC4KKyAgICAgICAgICAgICAgICAgICAgLy8gbWF4TGVuIGluY2x1ZGVzIHRlbXBvcmFyeSB0cmFpbGluZyBzcGFjZSwgc28gdXNlICc+PScuCisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID49IG1heExlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAtLWN1cnNvcjsgLy8gQmFja3VwIGFuZCByZXByb2Nlc3MgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1cnNvciArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgIH0KKworICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBsaW1pdCAtIG9mZnNldHMubGltaXQ7CisgICAgICAgIG9mZnNldHMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgLy8gSW4gaW5jcmVtZW50YWwgbW9kZSwgb25seSBhZHZhbmNlIHRoZSBjdXJzb3IgdXAgdG8gdGhlIGxhc3QKKyAgICAgICAgLy8gb3BlbiBkZWxpbWl0ZXIgY2FuZGlkYXRlLgorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gKGlzSW5jcmVtZW50YWwgJiYgb3BlblBvcyA+PSAwKSA/IG9wZW5Qb3MgOiBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjVmOWNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw2MzIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDA2LzA4LzAxICAgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2ZpbmFsIGNsYXNzIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVGhlIG5vcm1hbGl6YXRpb24gbW9kZSBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgTm9ybWFsaXplci5Nb2RlIG1vZGU7CisKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgb3B0aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBzZXQgb2YgInVuc2FmZSBzdGFydCIgY2hhcmFjdGVycy4gIFRoZXNlIGFyZSBjaGFyYWN0ZXJzCisgICAgICogd2l0aCBjYz09MCBidXQgd2hpY2ggbWF5IGludGVyYWN0IHdpdGggcHJldmlvdXMgY2hhcmFjdGVycy4gIFdlCisgICAgICogZWZmZWN0aXZlbHkgY29uc2lkZXIgdGhlc2UgdG8gYmUgY2MhPTAsIGZvciBvdXIgcHVycG9zZXMuCisgICAgICoKKyAgICAgKiBGcm9tIGh0dHA6Ly93d3cubWFjY2hpYXRvLmNvbS91dGMvTkZVbnNhZmVTdGFydC0zLjEuMWRYLnR4dAorICAgICAqIEdlbmVyYXRlZCBpbiB1bmljb2RldG9vbHMsIE5GU2tpcHBhYmxlCisgICAgICoKKyAgICAgKi8KKyAgICAgCisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBVTlNBRkVfU1RBUlRTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBTS0lQUEFCTEVTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludAorICAgICAgICBEID0gMCwgQyA9IDEsIEtEPSAyLCBLQyA9IDM7CisgICAgCisgICAgLy8gSW5zdGFuY2UgZGF0YSwgc2ltcGx5IHBvaW50ZXIgdG8gb25lIG9mIHRoZSBzZXRzIGJlbG93CisgICAgZmluYWwgVW5pY29kZVNldCB1bnNhZmVTdGFydDsKKyAgICBmaW5hbCBVbmljb2RlU2V0IHNraXBwYWJsZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GQyIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GRCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GS0MiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktTkZLRCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJORkMiLCAiTkZEIiwgdHJ1ZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIk5GS0MiLCAiTkZLRCIsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcnkgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTW9kZSBtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGlkID0gbmV3IFN0cmluZ0J1ZmZlcigiTkYiKTsKKyAgICAgICAgaW50IGNob2ljZSA9IDA7CisgICAgICAgIGlmKG09PU5vcm1hbGl6ZXIuTkZDKXsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgiQyIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEM7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZLQyl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIktDIik7CisgICAgICAgICAgICBjaG9pY2UgfD0gS0M7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZEKXsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgiRCIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEQ7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZLRCl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIktEIik7CisgICAgICAgICAgICBjaG9pY2UgfD0gS0Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qaWYgKG0uY29tcGF0KCkpIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgnSycpOworICAgICAgICAgICAgY2hvaWNlIHw9IEtEOworICAgICAgICB9CisgICAgICAgIGlmIChtLmNvbXBvc2UoKSkgeworICAgICAgICAgICAgaWQuYXBwZW5kKCdDJyk7CisgICAgICAgICAgICBjaG9pY2UgfD0gQzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgnRCcpOworICAgICAgICB9Ki8KKyAgICAgICAgcmV0dXJuIG5ldyBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IoaWQudG9TdHJpbmcoKSwgbSwgY2hvaWNlLCBvcHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcnkgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTW9kZSBtKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShtLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IoU3RyaW5nIGlkLCBOb3JtYWxpemVyLk1vZGUgbSwgaW50IHN0YXJ0Q2hvaWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHQpIHsKKyAgICAgICAgc3VwZXIoaWQsIG51bGwpOworICAgICAgICBtb2RlID0gbTsKKyAgICAgICAgb3B0aW9ucyA9IG9wdDsKKyAgICAgICAgaWYgKFVOU0FGRV9TVEFSVFNbc3RhcnRDaG9pY2VdID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXRTdGF0aWNzKHN0YXJ0Q2hvaWNlKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiB1c2UgYnVpbHQtaW4gcHJvcGVydGllcyBkYXRhIHJhdGhlciB0aGFuIGhhcmRjb2RlZCBzZXRzOyBzZWUgSUNVNEMKKyAgICAgICAgdW5zYWZlU3RhcnQgPSBVTlNBRkVfU1RBUlRTW3N0YXJ0Q2hvaWNlXTsKKyAgICAgICAgc2tpcHBhYmxlID0gU0tJUFBBQkxFU1tzdGFydENob2ljZV07CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCBzdGFydCA9IG9mZnNldHMuc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgcmV0dXJuOworCisgICAgICAgIGludCBvdmVyYWxsRGVsdGEgPSAwOworICAgICAgICAgICAgCisgICAgICAgIC8vIFdhbGsgdGhyb3VnaCB0aGUgc3RyaW5nIGxvb2tpbmcgZm9yIHNhZmUgY2hhcmFjdGVycy4KKyAgICAgICAgLy8gV2hlbmV2ZXIgeW91IGhpdCBvbmUgbm9ybWFsaXplIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBsYXN0CisgICAgICAgIC8vIHNhZmUgY2hhcmFjdGVyIHVwIHRvIGp1c3QgYmVmb3JlIHRoZSBuZXh0IHNhZmUgY2hhcmFjdGVyCisgICAgICAgIC8vIEFsc28sIGlmIHlvdSBoaXQgdGhlIGVuZCBhbmQgd2UgYXJlIG5vdCBpbiBpbmNyZW1lbnRhbCBtb2RlLAorICAgICAgICAvLyBkbyB0byBlbmQuCisgICAgICAgICAgICAKKyAgICAgICAgLy8gVE9ETzogZml4IGZvciBzdXJyb2dhdGVzCisgICAgICAgIC8vIFRPRE86IGFkZCBRdWlja0NoZWNrLCBzbyB3ZSByYXJlbHkgY29udmVydCBPSyBzdHVmZgorICAgICAgICAgICAgCisgICAgICAgIGludCBsYXN0U2FmZSA9IHN0YXJ0OyAvLyBnbyBiYWNrIHRvIHN0YXJ0IGluIGFueSBldmVudAorICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCsxOyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSB0ZXh0LmNoYXIzMkF0KGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY3ApID09IDAgJiYgIXVuc2FmZVN0YXJ0LmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IGNvbnZlcnQodGV4dCwgbGFzdFNhZmUsIGksIG51bGwpOworICAgICAgICAgICAgICAgIGkgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgbGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgb3ZlcmFsbERlbHRhICs9IGRlbHRhOworICAgICAgICAgICAgICAgIGxhc3RTYWZlID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgIGludCBkZWx0YSA9IGNvbnZlcnQodGV4dCwgbGFzdFNhZmUsIGxpbWl0LCBudWxsKTsKKyAgICAgICAgICAgIG92ZXJhbGxEZWx0YSArPSBkZWx0YTsKKyAgICAgICAgICAgIGxhc3RTYWZlID0gbGltaXQgKyBkZWx0YTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlIGFyZSBpbmNyZW1lbnRhbCwgc28gYWNjZXB0IHRoZSBsYXN0IGNoYXJhY3RlcnMgSUYgdGhleSB0dXJuIGludG8gc2tpcHBhYmxlcworICAgICAgICAgICAgaW50IGRlbHRhID0gY29udmVydCh0ZXh0LCBsYXN0U2FmZSwgbGltaXQsIHNraXBwYWJsZSk7CisgICAgICAgICAgICBpZiAoZGVsdGEgIT0gSW50ZWdlci5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICBvdmVyYWxsRGVsdGEgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgbGFzdFNhZmUgPSBsaW1pdCArIGRlbHRhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IG92ZXJhbGxEZWx0YTsKKyAgICAgICAgb2Zmc2V0cy5saW1pdCArPSBvdmVyYWxsRGVsdGE7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBsYXN0U2FmZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIHJhbmdlIGZyb20gbGFzdFNhZmUgdG8gbGltaXQuCisgICAgICogQHBhcmFtIHZlcmlmeSBJZiBub24tbnVsbCwgY2hlY2sgdG8gc2VlIHRoYXQgYWxsIHJlcGxhY2VtZW50IGNoYXJhY3RlcnMgYXJlIGluIGl0LiBJZiBub3QsCisgICAgICogYWJvcnQgdGhlIGNvbnZlcnNpb24gYW5kIHJldHVybiBJbnRlZ2VyLk1JTl9WQUxVRS4KKyAgICAgKiBAcmV0dXJuIHJldHVybiB0aGUgZGVsdGEgaW4gbGVuZ3RoIChuZXcgLSBvbGQpLCBvciBJbnRlZ2VyLk1JTl9WQUxVRSBpZiB0aGUgdmVyaWZ5IGFib3J0ZWQuCisgICAgICovCisgICAgaW50IGNvbnZlcnQoUmVwbGFjZWFibGUgdGV4dCwgaW50IGxhc3RTYWZlLCBpbnQgbGltaXQsIFVuaWNvZGVTZXQgdmVyaWZ5KSB7ICAgICAgICAKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInQ6ICIgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuaGV4KHRleHQudG9TdHJpbmcoKSkgKyAiLCBzOiAiICsgbGFzdFNhZmUgKyAiLCBsOiAiICsgbGltaXQpOworCisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIGxhc3RTYWZlOworICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA8IGxlbikgeworICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbbGVuXTsgLy8gcmFyZSwgYW5kIHdlIGRvbid0IGNhcmUgaWYgd2UgZ3JvdyB0b28gbGFyZ2UKKyAgICAgICAgfQorICAgICAgICB0ZXh0LmdldENoYXJzKGxhc3RTYWZlLCBsaW1pdCwgYnVmZmVyLCAwKTsKKyAgICAgICAgU3RyaW5nIGlucHV0ID0gbmV3IFN0cmluZyhidWZmZXIsIDAsIGxlbik7IC8vIFRPRE86IGZpeCBub3JtYWxpemVyIHRvIHRha2UgY2hhcltdCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCwgbW9kZSk7CisgICAgICAgIAorICAgICAgICAvLyB2ZXJpZnkgT0ssIGlmIHNwZWNpZmllZAorICAgICAgICBpZiAodmVyaWZ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gc2tpcCA9ICFza2lwcGFibGUuY29udGFpbnNBbGwob3V0cHV0KTsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoc2tpcCA/ICIgIFNLSVA6ICIgOiAiTk9TS0lQOiAiKSAKKyAgICAgICAgICAgICAgICAgICAgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKGlucHV0KSAKKyAgICAgICAgICAgICAgICAgICAgKyAiID0+ICIgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKG91dHB1dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNraXApIHJldHVybiBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG91dHB1dC5lcXVhbHMoaW5wdXQpKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICB0ZXh0LnJlcGxhY2UobGFzdFNhZmUsIGxpbWl0LCBvdXRwdXQpOworICAgICAgICByZXR1cm4gb3V0cHV0Lmxlbmd0aCgpIC0gbGVuOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGNoYXIgYnVmZmVyW10gPSBuZXcgY2hhclszMF07CisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBzdGF0aWNzIGZvciB0aGUgZ2l2ZW4gbW9kZS4gIFRoaXMgaXMgc2xvdywgc28gd2UKKyAgICAgKiBkZWZlciBpdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGluaXRTdGF0aWNzKGludCBzdGFydENob2ljZSkgeworICAgICAgICBzd2l0Y2ggKHN0YXJ0Q2hvaWNlKSB7CisgICAgICAgIGNhc2UgRDoKKyAgICAgICAgICBVTlNBRkVfU1RBUlRTW0RdID0gbmV3IFVuaWNvZGVTZXQoIltcdTBGNzNcdTBGNzVcdTBGODFdIiwgZmFsc2UpOworICAgICAgICAgIFNLSVBQQUJMRVNbRF0gPSBuZXcgVW5pY29kZVNldCgKKyAgICAgICAgICAgICAgIlteXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2XFx1MDBEOS1cXHUwMEREIgorICAgICAgICAgICAgKyAiXFx1MDBFMC1cXHUwMEU1XFx1MDBFNy1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2XFx1MDBGOS1cXHUwMEZEIgorICAgICAgICAgICAgKyAiXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwXFx1MDEzNC1cXHUwMTM3IgorICAgICAgICAgICAgKyAiXFx1MDEzOS1cXHUwMTNFXFx1MDE0My1cXHUwMTQ4XFx1MDE0Qy1cXHUwMTUxXFx1MDE1NC1cXHUwMTY1IgorICAgICAgICAgICAgKyAiXFx1MDE2OC1cXHUwMTdFXFx1MDFBMFxcdTAxQTFcXHUwMUFGXFx1MDFCMFxcdTAxQ0QtXFx1MDFEQyIKKyAgICAgICAgICAgICsgIlxcdTAxREUtXFx1MDFFM1xcdTAxRTYtXFx1MDFGMFxcdTAxRjRcXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICAgKyAiXFx1MDIxRVxcdTAyMUZcXHUwMjI2LVxcdTAyMzNcXHUwMzAwLVxcdTAzNEVcXHUwMzUwLVxcdTAzNkYiCisgICAgICAgICAgICArICJcXHUwMzc0XFx1MDM3RVxcdTAzODUtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzOTBcXHUwM0FBLSIKKyAgICAgICAgICAgICsgIlxcdTAzQjBcXHUwM0NBLVxcdTAzQ0VcXHUwM0QzXFx1MDNENFxcdTA0MDBcXHUwNDAxXFx1MDQwM1xcdTA0MDciCisgICAgICAgICAgICArICJcXHUwNDBDLVxcdTA0MEVcXHUwNDE5XFx1MDQzOVxcdTA0NTBcXHUwNDUxXFx1MDQ1M1xcdTA0NTdcXHUwNDVDIgorICAgICAgICAgICAgKyAiLVxcdTA0NUVcXHUwNDc2XFx1MDQ3N1xcdTA0ODMtXFx1MDQ4NlxcdTA0QzFcXHUwNEMyXFx1MDREMC0iCisgICAgICAgICAgICArICJcXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLVxcdTA0REZcXHUwNEUyLVxcdTA0RTdcXHUwNEVBLSIKKyAgICAgICAgICAgICsgIlxcdTA0RjVcXHUwNEY4XFx1MDRGOVxcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzQiCisgICAgICAgICAgICArICJcXHUwNUM1XFx1MDVDN1xcdTA2MTAtXFx1MDYxNVxcdTA2MjItXFx1MDYyNlxcdTA2NEItXFx1MDY1RSIKKyAgICAgICAgICAgICsgIlxcdTA2NzBcXHUwNkMwXFx1MDZDMlxcdTA2RDNcXHUwNkQ2LVxcdTA2RENcXHUwNkRGLVxcdTA2RTQiCisgICAgICAgICAgICArICJcXHUwNkU3XFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEFcXHUwN0VCLSIKKyAgICAgICAgICAgICsgIlxcdTA3RjNcXHUwOTI5XFx1MDkzMVxcdTA5MzRcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgiCisgICAgICAgICAgICArICItXFx1MDk1RlxcdTA5QkNcXHUwOUNCLVxcdTA5Q0RcXHUwOURDXFx1MDlERFxcdTA5REZcXHUwQTMzIgorICAgICAgICAgICAgKyAiXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQyIKKyAgICAgICAgICAgICsgIlxcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjVDXFx1MEI1RFxcdTBCOTRcXHUwQkNBLVxcdTBCQ0QiCisgICAgICAgICAgICArICJcXHUwQzQ4XFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MENCQ1xcdTBDQzBcXHUwQ0M3XFx1MENDOFxcdTBDQ0EiCisgICAgICAgICAgICArICJcXHUwQ0NCXFx1MENDRFxcdTBENEEtXFx1MEQ0RFxcdTBEQ0FcXHUwRERBXFx1MEREQy1cXHUwRERFIgorICAgICAgICAgICAgKyAiXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCXFx1MEVCOFxcdTBFQjlcXHUwRUM4LVxcdTBFQ0IiCisgICAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgICArICJcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3NlxcdTBGNzhcXHUwRjdBLVxcdTBGN0RcXHUwRjgwLSIKKyAgICAgICAgICAgICsgIlxcdTBGODRcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOSIKKyAgICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxMzVGXFx1MTcxNFxcdTE3MzRcXHUxN0QyXFx1MTdERCIKKyAgICAgICAgICAgICsgIlxcdTE4QTlcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFCMzRcXHUxQjQ0XFx1MUI2Qi0iCisgICAgICAgICAgICArICJcXHUxQjczXFx1MURDMC1cXHUxRENBXFx1MURGRS1cXHUxRTk5XFx1MUU5QlxcdTFFQTAtXFx1MUVGOSIKKyAgICAgICAgICAgICsgIlxcdTFGMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RCIKKyAgICAgICAgICAgICsgIlxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtIgorICAgICAgICAgICAgKyAiXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMxLVxcdTFGQzRcXHUxRkM2LVxcdTFGRDMiCisgICAgICAgICAgICArICJcXHUxRkQ2LVxcdTFGREJcXHUxRkRELVxcdTFGRUZcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkQiCisgICAgICAgICAgICArICJcXHUyMDAwXFx1MjAwMVxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUZcXHUyMTI2IgorICAgICAgICAgICAgKyAiXFx1MjEyQVxcdTIxMkJcXHUyMTlBXFx1MjE5QlxcdTIxQUVcXHUyMUNELVxcdTIxQ0ZcXHUyMjA0XFx1MjIwOSIKKyAgICAgICAgICAgICsgIlxcdTIyMENcXHUyMjI0XFx1MjIyNlxcdTIyNDFcXHUyMjQ0XFx1MjI0N1xcdTIyNDlcXHUyMjYwXFx1MjI2MiIKKyAgICAgICAgICAgICsgIlxcdTIyNkQtXFx1MjI3MVxcdTIyNzRcXHUyMjc1XFx1MjI3OFxcdTIyNzlcXHUyMjgwXFx1MjI4MVxcdTIyODQiCisgICAgICAgICAgICArICJcXHUyMjg1XFx1MjI4OFxcdTIyODlcXHUyMkFDLVxcdTIyQUZcXHUyMkUwLVxcdTIyRTNcXHUyMkVBLSIKKyAgICAgICAgICAgICsgIlxcdTIyRURcXHUyMzI5XFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkZcXHUzMDRDXFx1MzA0RVxcdTMwNTAiCisgICAgICAgICAgICArICJcXHUzMDUyXFx1MzA1NFxcdTMwNTZcXHUzMDU4XFx1MzA1QVxcdTMwNUNcXHUzMDVFXFx1MzA2MFxcdTMwNjIiCisgICAgICAgICAgICArICJcXHUzMDY1XFx1MzA2N1xcdTMwNjlcXHUzMDcwXFx1MzA3MVxcdTMwNzNcXHUzMDc0XFx1MzA3NlxcdTMwNzciCisgICAgICAgICAgICArICJcXHUzMDc5XFx1MzA3QVxcdTMwN0NcXHUzMDdEXFx1MzA5NFxcdTMwOTlcXHUzMDlBXFx1MzA5RVxcdTMwQUMiCisgICAgICAgICAgICArICJcXHUzMEFFXFx1MzBCMFxcdTMwQjJcXHUzMEI0XFx1MzBCNlxcdTMwQjhcXHUzMEJBXFx1MzBCQ1xcdTMwQkUiCisgICAgICAgICAgICArICJcXHUzMEMwXFx1MzBDMlxcdTMwQzVcXHUzMEM3XFx1MzBDOVxcdTMwRDBcXHUzMEQxXFx1MzBEM1xcdTMwRDQiCisgICAgICAgICAgICArICJcXHUzMEQ2XFx1MzBEN1xcdTMwRDlcXHUzMERBXFx1MzBEQ1xcdTMwRERcXHUzMEY0XFx1MzBGNy1cXHUzMEZBIgorICAgICAgICAgICAgKyAiXFx1MzBGRVxcdUE4MDZcXHVBQzAwLVxcdUQ3QTNcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMiIKKyAgICAgICAgICAgICsgIlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyXFx1RkEyNVxcdUZBMjZcXHVGQTJBLVxcdUZBMkQiCisgICAgICAgICAgICArICJcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjFELVxcdUZCMUZcXHVGQjJBLVxcdUZCMzYiCisgICAgICAgICAgICArICJcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtIgorICAgICAgICAgICAgKyAiXFx1RkI0RVxcdUZFMjAtXFx1RkUyM1xcVTAwMDEwQTBEXFxVMDAwMTBBMEZcXFUwMDAxMEEzOC1cXFUwMDAxMCIKKyAgICAgICAgICAgICsgIkEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS0iCisgICAgICAgICAgICArICJcXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMUQyNDItXFxVMDAwMUQyNDRcXFUwMDAyIgorICAgICAgICAgICAgKyAiRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQzoKKyAgICAgICAgICBVTlNBRkVfU1RBUlRTW0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXFx1MDlCRVxcdTA5RDdcXHUwQjNFXFx1MEI1NlxcdTBCNTdcXHUwQkJFXFx1MEJEN1xcdTBDQzJcXHUwQ0Q1IgorICAgICAgICAgICAgKyAiXFx1MENENlxcdTBEM0VcXHUwRDU3XFx1MERDRlxcdTBEREZcXHUwRjczXFx1MEY3NVxcdTBGODFcXHUxMDJFIgorICAgICAgICAgICAgKyAiXFx1MTE2MS1cXHUxMTc1XFx1MTFBNy1cXHUxMUMyXSIsIGZhbHNlKTsKKyAgICAgICAgICBTS0lQUEFCTEVTW0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQThcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDZcXHUwMEQ4LSIKKyAgICAgICAgICAgICsgIlxcdTAwRERcXHUwMEUwLVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY4LVxcdTAwRkRcXHUwMEZGLSIKKyAgICAgICAgICAgICsgIlxcdTAxMDNcXHUwMTA2LVxcdTAxMEZcXHUwMTEyLVxcdTAxMTdcXHUwMTFBLVxcdTAxMjFcXHUwMTI0IgorICAgICAgICAgICAgKyAiXFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTM5XFx1MDEzQVxcdTAxM0RcXHUwMTNFXFx1MDE0MyIKKyAgICAgICAgICAgICsgIlxcdTAxNDRcXHUwMTQ3XFx1MDE0OFxcdTAxNEMtXFx1MDE1MVxcdTAxNTRcXHUwMTU1XFx1MDE1OC0iCisgICAgICAgICAgICArICJcXHUwMTVEXFx1MDE2MFxcdTAxNjFcXHUwMTY0XFx1MDE2NVxcdTAxNjgtXFx1MDE3MVxcdTAxNzQtIgorICAgICAgICAgICAgKyAiXFx1MDE3RlxcdTAxQTBcXHUwMUExXFx1MDFBRlxcdTAxQjBcXHUwMUI3XFx1MDFDRC1cXHUwMURDXFx1MDFERSIKKyAgICAgICAgICAgICsgIi1cXHUwMUUxXFx1MDFFNi1cXHUwMUVCXFx1MDFGNFxcdTAxRjVcXHUwMUY4LVxcdTAxRkJcXHUwMjAwLSIKKyAgICAgICAgICAgICsgIlxcdTAyMUJcXHUwMjFFXFx1MDIxRlxcdTAyMjYtXFx1MDIzM1xcdTAyOTJcXHUwMzAwLVxcdTAzNEUiCisgICAgICAgICAgICArICJcXHUwMzUwLVxcdTAzNkZcXHUwMzc0XFx1MDM3RVxcdTAzODdcXHUwMzkxXFx1MDM5NVxcdTAzOTdcXHUwMzk5IgorICAgICAgICAgICAgKyAiXFx1MDM5RlxcdTAzQTFcXHUwM0E1XFx1MDNBOVxcdTAzQUNcXHUwM0FFXFx1MDNCMVxcdTAzQjVcXHUwM0I3IgorICAgICAgICAgICAgKyAiXFx1MDNCOVxcdTAzQkZcXHUwM0MxXFx1MDNDNVxcdTAzQzktXFx1MDNDQlxcdTAzQ0VcXHUwM0QyXFx1MDQwNiIKKyAgICAgICAgICAgICsgIlxcdTA0MTBcXHUwNDEzXFx1MDQxNS1cXHUwNDE4XFx1MDQxQVxcdTA0MUVcXHUwNDIzXFx1MDQyN1xcdTA0MkIiCisgICAgICAgICAgICArICJcXHUwNDJEXFx1MDQzMFxcdTA0MzNcXHUwNDM1LVxcdTA0MzhcXHUwNDNBXFx1MDQzRVxcdTA0NDNcXHUwNDQ3IgorICAgICAgICAgICAgKyAiXFx1MDQ0QlxcdTA0NERcXHUwNDU2XFx1MDQ3NFxcdTA0NzVcXHUwNDgzLVxcdTA0ODZcXHUwNEQ4XFx1MDREOSIKKyAgICAgICAgICAgICsgIlxcdTA0RThcXHUwNEU5XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzUiCisgICAgICAgICAgICArICJcXHUwNUM3XFx1MDYxMC1cXHUwNjE1XFx1MDYyMlxcdTA2MjNcXHUwNjI3XFx1MDY0OFxcdTA2NEEtIgorICAgICAgICAgICAgKyAiXFx1MDY1RVxcdTA2NzBcXHUwNkMxXFx1MDZEMlxcdTA2RDUtXFx1MDZEQ1xcdTA2REYtXFx1MDZFNCIKKyAgICAgICAgICAgICsgIlxcdTA2RTdcXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3RUItIgorICAgICAgICAgICAgKyAiXFx1MDdGM1xcdTA5MjhcXHUwOTMwXFx1MDkzM1xcdTA5M0NcXHUwOTREXFx1MDk1MS1cXHUwOTU0XFx1MDk1OCIKKyAgICAgICAgICAgICsgIi1cXHUwOTVGXFx1MDlCQ1xcdTA5QkVcXHUwOUM3XFx1MDlDRFxcdTA5RDdcXHUwOURDXFx1MDlERFxcdTA5REYiCisgICAgICAgICAgICArICJcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEIgorICAgICAgICAgICAgKyAiXFx1MEIzQ1xcdTBCM0VcXHUwQjQ3XFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjkyIgorICAgICAgICAgICAgKyAiXFx1MEJCRVxcdTBCQzZcXHUwQkM3XFx1MEJDRFxcdTBCRDdcXHUwQzQ2XFx1MEM0RFxcdTBDNTVcXHUwQzU2IgorICAgICAgICAgICAgKyAiXFx1MENCQ1xcdTBDQkZcXHUwQ0MyXFx1MENDNlxcdTBDQ0FcXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwRDNFIgorICAgICAgICAgICAgKyAiXFx1MEQ0NlxcdTBENDdcXHUwRDREXFx1MEQ1N1xcdTBEQ0FcXHUwRENGXFx1MEREOVxcdTBERENcXHUwRERGIgorICAgICAgICAgICAgKyAiXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCXFx1MEVCOFxcdTBFQjlcXHUwRUM4LVxcdTBFQ0IiCisgICAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgICArICJcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3NlxcdTBGNzhcXHUwRjdBLVxcdTBGN0RcXHUwRjgwLSIKKyAgICAgICAgICAgICsgIlxcdTBGODRcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOSIKKyAgICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI1XFx1MTAyRVxcdTEwMzdcXHUxMDM5XFx1MTEwMC1cXHUxMTEyXFx1MTE2MS0iCisgICAgICAgICAgICArICJcXHUxMTc1XFx1MTFBOC1cXHUxMUMyXFx1MTM1RlxcdTE3MTRcXHUxNzM0XFx1MTdEMlxcdTE3RERcXHUxOEE5IgorICAgICAgICAgICAgKyAiXFx1MTkzOS1cXHUxOTNCXFx1MUExN1xcdTFBMThcXHUxQjM0XFx1MUI0NFxcdTFCNkItXFx1MUI3MyIKKyAgICAgICAgICAgICsgIlxcdTFEQzAtXFx1MURDQVxcdTFERkUtXFx1MUUwM1xcdTFFMEEtXFx1MUUwRlxcdTFFMTItXFx1MUUxQiIKKyAgICAgICAgICAgICsgIlxcdTFFMjAtXFx1MUUyN1xcdTFFMkEtXFx1MUU0MVxcdTFFNDQtXFx1MUU1M1xcdTFFNTgtXFx1MUU3RCIKKyAgICAgICAgICAgICsgIlxcdTFFODAtXFx1MUU4N1xcdTFFOEUtXFx1MUU5MVxcdTFFOTYtXFx1MUU5OVxcdTFFQTAtXFx1MUVGMyIKKyAgICAgICAgICAgICsgIlxcdTFFRjYtXFx1MUVGOVxcdTFGMDAtXFx1MUYxMVxcdTFGMThcXHUxRjE5XFx1MUYyMC1cXHUxRjMxIgorICAgICAgICAgICAgKyAiXFx1MUYzOFxcdTFGMzlcXHUxRjQwXFx1MUY0MVxcdTFGNDhcXHUxRjQ5XFx1MUY1MFxcdTFGNTFcXHUxRjU5IgorICAgICAgICAgICAgKyAiXFx1MUY2MC1cXHUxRjcxXFx1MUY3My1cXHUxRjc1XFx1MUY3N1xcdTFGNzlcXHUxRjdCLVxcdTFGN0QiCisgICAgICAgICAgICArICJcXHUxRjgwXFx1MUY4MVxcdTFGODhcXHUxRjg5XFx1MUY5MFxcdTFGOTFcXHUxRjk4XFx1MUY5OVxcdTFGQTAiCisgICAgICAgICAgICArICJcXHUxRkExXFx1MUZBOFxcdTFGQTlcXHUxRkIzXFx1MUZCNlxcdTFGQkJcXHUxRkJDXFx1MUZCRVxcdTFGQkYiCisgICAgICAgICAgICArICJcXHUxRkMzXFx1MUZDNlxcdTFGQzlcXHUxRkNCXFx1MUZDQ1xcdTFGRDNcXHUxRkRCXFx1MUZFM1xcdTFGRUIiCisgICAgICAgICAgICArICJcXHUxRkVFXFx1MUZFRlxcdTFGRjNcXHUxRkY2XFx1MUZGOVxcdTFGRkItXFx1MUZGRVxcdTIwMDBcXHUyMDAxIgorICAgICAgICAgICAgKyAiXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBFRlxcdTIxMjZcXHUyMTJBXFx1MjEyQiIKKyAgICAgICAgICAgICsgIlxcdTIxOTBcXHUyMTkyXFx1MjE5NFxcdTIxRDBcXHUyMUQyXFx1MjFENFxcdTIyMDNcXHUyMjA4XFx1MjIwQiIKKyAgICAgICAgICAgICsgIlxcdTIyMjNcXHUyMjI1XFx1MjIzQ1xcdTIyNDNcXHUyMjQ1XFx1MjI0OFxcdTIyNERcXHUyMjYxXFx1MjI2NCIKKyAgICAgICAgICAgICsgIlxcdTIyNjVcXHUyMjcyXFx1MjI3M1xcdTIyNzZcXHUyMjc3XFx1MjI3QS1cXHUyMjdEXFx1MjI4MlxcdTIyODMiCisgICAgICAgICAgICArICJcXHUyMjg2XFx1MjI4N1xcdTIyOTFcXHUyMjkyXFx1MjJBMlxcdTIyQThcXHUyMkE5XFx1MjJBQlxcdTIyQjItIgorICAgICAgICAgICAgKyAiXFx1MjJCNVxcdTIzMjlcXHUyMzJBXFx1MkFEQ1xcdTMwMkEtXFx1MzAyRlxcdTMwNDZcXHUzMDRCXFx1MzA0RCIKKyAgICAgICAgICAgICsgIlxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OVxcdTMwNUJcXHUzMDVEXFx1MzA1RiIKKyAgICAgICAgICAgICsgIlxcdTMwNjFcXHUzMDY0XFx1MzA2NlxcdTMwNjhcXHUzMDZGXFx1MzA3MlxcdTMwNzVcXHUzMDc4XFx1MzA3QiIKKyAgICAgICAgICAgICsgIlxcdTMwOTlcXHUzMDlBXFx1MzA5RFxcdTMwQTZcXHUzMEFCXFx1MzBBRFxcdTMwQUZcXHUzMEIxXFx1MzBCMyIKKyAgICAgICAgICAgICsgIlxcdTMwQjVcXHUzMEI3XFx1MzBCOVxcdTMwQkJcXHUzMEJEXFx1MzBCRlxcdTMwQzFcXHUzMEM0XFx1MzBDNiIKKyAgICAgICAgICAgICsgIlxcdTMwQzhcXHUzMENGXFx1MzBEMlxcdTMwRDVcXHUzMEQ4XFx1MzBEQlxcdTMwRUYtXFx1MzBGMlxcdTMwRkQiCisgICAgICAgICAgICArICJcXHVBODA2XFx1QUMwMFxcdUFDMUNcXHVBQzM4XFx1QUM1NFxcdUFDNzBcXHVBQzhDXFx1QUNBOFxcdUFDQzQiCisgICAgICAgICAgICArICJcXHVBQ0UwXFx1QUNGQ1xcdUFEMThcXHVBRDM0XFx1QUQ1MFxcdUFENkNcXHVBRDg4XFx1QURBNFxcdUFEQzAiCisgICAgICAgICAgICArICJcXHVBRERDXFx1QURGOFxcdUFFMTRcXHVBRTMwXFx1QUU0Q1xcdUFFNjhcXHVBRTg0XFx1QUVBMFxcdUFFQkMiCisgICAgICAgICAgICArICJcXHVBRUQ4XFx1QUVGNFxcdUFGMTBcXHVBRjJDXFx1QUY0OFxcdUFGNjRcXHVBRjgwXFx1QUY5Q1xcdUFGQjgiCisgICAgICAgICAgICArICJcXHVBRkQ0XFx1QUZGMFxcdUIwMENcXHVCMDI4XFx1QjA0NFxcdUIwNjBcXHVCMDdDXFx1QjA5OFxcdUIwQjQiCisgICAgICAgICAgICArICJcXHVCMEQwXFx1QjBFQ1xcdUIxMDhcXHVCMTI0XFx1QjE0MFxcdUIxNUNcXHVCMTc4XFx1QjE5NFxcdUIxQjAiCisgICAgICAgICAgICArICJcXHVCMUNDXFx1QjFFOFxcdUIyMDRcXHVCMjIwXFx1QjIzQ1xcdUIyNThcXHVCMjc0XFx1QjI5MFxcdUIyQUMiCisgICAgICAgICAgICArICJcXHVCMkM4XFx1QjJFNFxcdUIzMDBcXHVCMzFDXFx1QjMzOFxcdUIzNTRcXHVCMzcwXFx1QjM4Q1xcdUIzQTgiCisgICAgICAgICAgICArICJcXHVCM0M0XFx1QjNFMFxcdUIzRkNcXHVCNDE4XFx1QjQzNFxcdUI0NTBcXHVCNDZDXFx1QjQ4OFxcdUI0QTQiCisgICAgICAgICAgICArICJcXHVCNEMwXFx1QjREQ1xcdUI0RjhcXHVCNTE0XFx1QjUzMFxcdUI1NENcXHVCNTY4XFx1QjU4NFxcdUI1QTAiCisgICAgICAgICAgICArICJcXHVCNUJDXFx1QjVEOFxcdUI1RjRcXHVCNjEwXFx1QjYyQ1xcdUI2NDhcXHVCNjY0XFx1QjY4MFxcdUI2OUMiCisgICAgICAgICAgICArICJcXHVCNkI4XFx1QjZENFxcdUI2RjBcXHVCNzBDXFx1QjcyOFxcdUI3NDRcXHVCNzYwXFx1Qjc3Q1xcdUI3OTgiCisgICAgICAgICAgICArICJcXHVCN0I0XFx1QjdEMFxcdUI3RUNcXHVCODA4XFx1QjgyNFxcdUI4NDBcXHVCODVDXFx1Qjg3OFxcdUI4OTQiCisgICAgICAgICAgICArICJcXHVCOEIwXFx1QjhDQ1xcdUI4RThcXHVCOTA0XFx1QjkyMFxcdUI5M0NcXHVCOTU4XFx1Qjk3NFxcdUI5OTAiCisgICAgICAgICAgICArICJcXHVCOUFDXFx1QjlDOFxcdUI5RTRcXHVCQTAwXFx1QkExQ1xcdUJBMzhcXHVCQTU0XFx1QkE3MFxcdUJBOEMiCisgICAgICAgICAgICArICJcXHVCQUE4XFx1QkFDNFxcdUJBRTBcXHVCQUZDXFx1QkIxOFxcdUJCMzRcXHVCQjUwXFx1QkI2Q1xcdUJCODgiCisgICAgICAgICAgICArICJcXHVCQkE0XFx1QkJDMFxcdUJCRENcXHVCQkY4XFx1QkMxNFxcdUJDMzBcXHVCQzRDXFx1QkM2OFxcdUJDODQiCisgICAgICAgICAgICArICJcXHVCQ0EwXFx1QkNCQ1xcdUJDRDhcXHVCQ0Y0XFx1QkQxMFxcdUJEMkNcXHVCRDQ4XFx1QkQ2NFxcdUJEODAiCisgICAgICAgICAgICArICJcXHVCRDlDXFx1QkRCOFxcdUJERDRcXHVCREYwXFx1QkUwQ1xcdUJFMjhcXHVCRTQ0XFx1QkU2MFxcdUJFN0MiCisgICAgICAgICAgICArICJcXHVCRTk4XFx1QkVCNFxcdUJFRDBcXHVCRUVDXFx1QkYwOFxcdUJGMjRcXHVCRjQwXFx1QkY1Q1xcdUJGNzgiCisgICAgICAgICAgICArICJcXHVCRjk0XFx1QkZCMFxcdUJGQ0NcXHVCRkU4XFx1QzAwNFxcdUMwMjBcXHVDMDNDXFx1QzA1OFxcdUMwNzQiCisgICAgICAgICAgICArICJcXHVDMDkwXFx1QzBBQ1xcdUMwQzhcXHVDMEU0XFx1QzEwMFxcdUMxMUNcXHVDMTM4XFx1QzE1NFxcdUMxNzAiCisgICAgICAgICAgICArICJcXHVDMThDXFx1QzFBOFxcdUMxQzRcXHVDMUUwXFx1QzFGQ1xcdUMyMThcXHVDMjM0XFx1QzI1MFxcdUMyNkMiCisgICAgICAgICAgICArICJcXHVDMjg4XFx1QzJBNFxcdUMyQzBcXHVDMkRDXFx1QzJGOFxcdUMzMTRcXHVDMzMwXFx1QzM0Q1xcdUMzNjgiCisgICAgICAgICAgICArICJcXHVDMzg0XFx1QzNBMFxcdUMzQkNcXHVDM0Q4XFx1QzNGNFxcdUM0MTBcXHVDNDJDXFx1QzQ0OFxcdUM0NjQiCisgICAgICAgICAgICArICJcXHVDNDgwXFx1QzQ5Q1xcdUM0QjhcXHVDNEQ0XFx1QzRGMFxcdUM1MENcXHVDNTI4XFx1QzU0NFxcdUM1NjAiCisgICAgICAgICAgICArICJcXHVDNTdDXFx1QzU5OFxcdUM1QjRcXHVDNUQwXFx1QzVFQ1xcdUM2MDhcXHVDNjI0XFx1QzY0MFxcdUM2NUMiCisgICAgICAgICAgICArICJcXHVDNjc4XFx1QzY5NFxcdUM2QjBcXHVDNkNDXFx1QzZFOFxcdUM3MDRcXHVDNzIwXFx1QzczQ1xcdUM3NTgiCisgICAgICAgICAgICArICJcXHVDNzc0XFx1Qzc5MFxcdUM3QUNcXHVDN0M4XFx1QzdFNFxcdUM4MDBcXHVDODFDXFx1QzgzOFxcdUM4NTQiCisgICAgICAgICAgICArICJcXHVDODcwXFx1Qzg4Q1xcdUM4QThcXHVDOEM0XFx1QzhFMFxcdUM4RkNcXHVDOTE4XFx1QzkzNFxcdUM5NTAiCisgICAgICAgICAgICArICJcXHVDOTZDXFx1Qzk4OFxcdUM5QTRcXHVDOUMwXFx1QzlEQ1xcdUM5RjhcXHVDQTE0XFx1Q0EzMFxcdUNBNEMiCisgICAgICAgICAgICArICJcXHVDQTY4XFx1Q0E4NFxcdUNBQTBcXHVDQUJDXFx1Q0FEOFxcdUNBRjRcXHVDQjEwXFx1Q0IyQ1xcdUNCNDgiCisgICAgICAgICAgICArICJcXHVDQjY0XFx1Q0I4MFxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRjBcXHVDQzBDXFx1Q0MyOFxcdUNDNDQiCisgICAgICAgICAgICArICJcXHVDQzYwXFx1Q0M3Q1xcdUNDOThcXHVDQ0I0XFx1Q0NEMFxcdUNDRUNcXHVDRDA4XFx1Q0QyNFxcdUNENDAiCisgICAgICAgICAgICArICJcXHVDRDVDXFx1Q0Q3OFxcdUNEOTRcXHVDREIwXFx1Q0RDQ1xcdUNERThcXHVDRTA0XFx1Q0UyMFxcdUNFM0MiCisgICAgICAgICAgICArICJcXHVDRTU4XFx1Q0U3NFxcdUNFOTBcXHVDRUFDXFx1Q0VDOFxcdUNFRTRcXHVDRjAwXFx1Q0YxQ1xcdUNGMzgiCisgICAgICAgICAgICArICJcXHVDRjU0XFx1Q0Y3MFxcdUNGOENcXHVDRkE4XFx1Q0ZDNFxcdUNGRTBcXHVDRkZDXFx1RDAxOFxcdUQwMzQiCisgICAgICAgICAgICArICJcXHVEMDUwXFx1RDA2Q1xcdUQwODhcXHVEMEE0XFx1RDBDMFxcdUQwRENcXHVEMEY4XFx1RDExNFxcdUQxMzAiCisgICAgICAgICAgICArICJcXHVEMTRDXFx1RDE2OFxcdUQxODRcXHVEMUEwXFx1RDFCQ1xcdUQxRDhcXHVEMUY0XFx1RDIxMFxcdUQyMkMiCisgICAgICAgICAgICArICJcXHVEMjQ4XFx1RDI2NFxcdUQyODBcXHVEMjlDXFx1RDJCOFxcdUQyRDRcXHVEMkYwXFx1RDMwQ1xcdUQzMjgiCisgICAgICAgICAgICArICJcXHVEMzQ0XFx1RDM2MFxcdUQzN0NcXHVEMzk4XFx1RDNCNFxcdUQzRDBcXHVEM0VDXFx1RDQwOFxcdUQ0MjQiCisgICAgICAgICAgICArICJcXHVENDQwXFx1RDQ1Q1xcdUQ0NzhcXHVENDk0XFx1RDRCMFxcdUQ0Q0NcXHVENEU4XFx1RDUwNFxcdUQ1MjAiCisgICAgICAgICAgICArICJcXHVENTNDXFx1RDU1OFxcdUQ1NzRcXHVENTkwXFx1RDVBQ1xcdUQ1QzhcXHVENUU0XFx1RDYwMFxcdUQ2MUMiCisgICAgICAgICAgICArICJcXHVENjM4XFx1RDY1NFxcdUQ2NzBcXHVENjhDXFx1RDZBOFxcdUQ2QzRcXHVENkUwXFx1RDZGQ1xcdUQ3MTgiCisgICAgICAgICAgICArICJcXHVENzM0XFx1RDc1MFxcdUQ3NkNcXHVENzg4XFx1RjkwMC1cXHVGQTBEXFx1RkExMFxcdUZBMTJcXHVGQTE1IgorICAgICAgICAgICAgKyAiLVxcdUZBMUVcXHVGQTIwXFx1RkEyMlxcdUZBMjVcXHVGQTI2XFx1RkEyQS1cXHVGQTJEXFx1RkEzMC0iCisgICAgICAgICAgICArICJcXHVGQTZBXFx1RkE3MC1cXHVGQUQ5XFx1RkIxRC1cXHVGQjFGXFx1RkIyQS1cXHVGQjM2XFx1RkIzOC0iCisgICAgICAgICAgICArICJcXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCNEVcXHVGRTIwIgorICAgICAgICAgICAgKyAiLVxcdUZFMjNcXFUwMDAxMEEwRFxcVTAwMDEwQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTBBM0FcXFUwMDAxMEEzRiIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMTVFLVxcVTAwMDFEMTY5XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJcXFUwMDAxRDE3Qi0iCisgICAgICAgICAgICArICJcXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQURcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDFEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtEOgorICAgICAgICAgIFVOU0FGRV9TVEFSVFNbS0RdID0gbmV3IFVuaWNvZGVTZXQoIltcdTBGNzNcdTBGNzVcdTBGODFcdUZGOUUtXHVGRjlGXSIsIGZhbHNlKTsKKyAgICAgICAgICBTS0lQUEFCTEVTW0tEXSA9IG5ldyBVbmljb2RlU2V0KAorICAgICAgICAgICAgICAiW15cXHUwMEEwXFx1MDBBOFxcdTAwQUFcXHUwMEFGXFx1MDBCMi1cXHUwMEI1XFx1MDBCOC1cXHUwMEJBIgorICAgICAgICAgICAgKyAiXFx1MDBCQy1cXHUwMEJFXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2IgorICAgICAgICAgICAgKyAiXFx1MDBEOS1cXHUwMEREXFx1MDBFMC1cXHUwMEU1XFx1MDBFNy1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2IgorICAgICAgICAgICAgKyAiXFx1MDBGOS1cXHUwMEZEXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwIgorICAgICAgICAgICAgKyAiXFx1MDEzMi1cXHUwMTM3XFx1MDEzOS1cXHUwMTQwXFx1MDE0My1cXHUwMTQ5XFx1MDE0Qy1cXHUwMTUxIgorICAgICAgICAgICAgKyAiXFx1MDE1NC1cXHUwMTY1XFx1MDE2OC1cXHUwMTdGXFx1MDFBMFxcdTAxQTFcXHUwMUFGXFx1MDFCMCIKKyAgICAgICAgICAgICsgIlxcdTAxQzQtXFx1MDFEQ1xcdTAxREUtXFx1MDFFM1xcdTAxRTYtXFx1MDFGNVxcdTAxRjgtXFx1MDIxQiIKKyAgICAgICAgICAgICsgIlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDJCMC1cXHUwMkI4XFx1MDJEOC1cXHUwMkREIgorICAgICAgICAgICAgKyAiXFx1MDJFMC1cXHUwMkU0XFx1MDMwMC1cXHUwMzRFXFx1MDM1MC1cXHUwMzZGXFx1MDM3NFxcdTAzN0EiCisgICAgICAgICAgICArICJcXHUwMzdFXFx1MDM4NC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDM5MFxcdTAzQUEtXFx1MDNCMCIKKyAgICAgICAgICAgICsgIlxcdTAzQ0EtXFx1MDNDRVxcdTAzRDAtXFx1MDNENlxcdTAzRjAtXFx1MDNGMlxcdTAzRjRcXHUwM0Y1IgorICAgICAgICAgICAgKyAiXFx1MDNGOVxcdTA0MDBcXHUwNDAxXFx1MDQwM1xcdTA0MDdcXHUwNDBDLVxcdTA0MEVcXHUwNDE5XFx1MDQzOSIKKyAgICAgICAgICAgICsgIlxcdTA0NTBcXHUwNDUxXFx1MDQ1M1xcdTA0NTdcXHUwNDVDLVxcdTA0NUVcXHUwNDc2XFx1MDQ3N1xcdTA0ODMiCisgICAgICAgICAgICArICItXFx1MDQ4NlxcdTA0QzFcXHUwNEMyXFx1MDREMC1cXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLSIKKyAgICAgICAgICAgICsgIlxcdTA0REZcXHUwNEUyLVxcdTA0RTdcXHUwNEVBLVxcdTA0RjVcXHUwNEY4XFx1MDRGOVxcdTA1ODciCisgICAgICAgICAgICArICJcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwIgorICAgICAgICAgICAgKyAiLVxcdTA2MTVcXHUwNjIyLVxcdTA2MjZcXHUwNjRCLVxcdTA2NUVcXHUwNjcwXFx1MDY3NS1cXHUwNjc4IgorICAgICAgICAgICAgKyAiXFx1MDZDMFxcdTA2QzJcXHUwNkQzXFx1MDZENi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFNyIKKyAgICAgICAgICAgICsgIlxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdFQi1cXHUwN0YzIgorICAgICAgICAgICAgKyAiXFx1MDkyOVxcdTA5MzFcXHUwOTM0XFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LSIKKyAgICAgICAgICAgICsgIlxcdTA5NUZcXHUwOUJDXFx1MDlDQi1cXHUwOUNEXFx1MDlEQ1xcdTA5RERcXHUwOURGXFx1MEEzM1xcdTBBMzYiCisgICAgICAgICAgICArICJcXHUwQTNDXFx1MEE0RFxcdTBBNTktXFx1MEE1QlxcdTBBNUVcXHUwQUJDXFx1MEFDRFxcdTBCM0NcXHUwQjQ4IgorICAgICAgICAgICAgKyAiXFx1MEI0Qi1cXHUwQjREXFx1MEI1Q1xcdTBCNURcXHUwQjk0XFx1MEJDQS1cXHUwQkNEXFx1MEM0OCIKKyAgICAgICAgICAgICsgIlxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDQkNcXHUwQ0MwXFx1MENDN1xcdTBDQzhcXHUwQ0NBXFx1MENDQiIKKyAgICAgICAgICAgICsgIlxcdTBDQ0RcXHUwRDRBLVxcdTBENERcXHUwRENBXFx1MEREQVxcdTBEREMtXFx1MERERVxcdTBFMzMiCisgICAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUIzXFx1MEVCOFxcdTBFQjlcXHUwRUM4LSIKKyAgICAgICAgICAgICsgIlxcdTBFQ0JcXHUwRURDXFx1MEVERFxcdTBGMENcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOSIKKyAgICAgICAgICAgICsgIlxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTdcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3RFxcdTBGODAiCisgICAgICAgICAgICArICItXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICAgKyAiXFx1MEZDNlxcdTEwMjZcXHUxMDM3XFx1MTAzOVxcdTEwRkNcXHUxMzVGXFx1MTcxNFxcdTE3MzRcXHUxN0QyIgorICAgICAgICAgICAgKyAiXFx1MTdERFxcdTE4QTlcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFCMzRcXHUxQjQ0XFx1MUI2QiIKKyAgICAgICAgICAgICsgIi1cXHUxQjczXFx1MUQyQy1cXHUxRDJFXFx1MUQzMC1cXHUxRDNBXFx1MUQzQy1cXHUxRDREXFx1MUQ0Ri0iCisgICAgICAgICAgICArICJcXHUxRDZBXFx1MUQ3OFxcdTFEOUItXFx1MURDQVxcdTFERkUtXFx1MUU5QlxcdTFFQTAtXFx1MUVGOSIKKyAgICAgICAgICAgICsgIlxcdTFGMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RCIKKyAgICAgICAgICAgICsgIlxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtIgorICAgICAgICAgICAgKyAiXFx1MUZCNFxcdTFGQjYtXFx1MUZDNFxcdTFGQzYtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGREQtIgorICAgICAgICAgICAgKyAiXFx1MUZFRlxcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGRVxcdTIwMDAtXFx1MjAwQVxcdTIwMTEiCisgICAgICAgICAgICArICJcXHUyMDE3XFx1MjAyNC1cXHUyMDI2XFx1MjAyRlxcdTIwMzNcXHUyMDM0XFx1MjAzNlxcdTIwMzdcXHUyMDNDIgorICAgICAgICAgICAgKyAiXFx1MjAzRVxcdTIwNDctXFx1MjA0OVxcdTIwNTdcXHUyMDVGXFx1MjA3MFxcdTIwNzFcXHUyMDc0LSIKKyAgICAgICAgICAgICsgIlxcdTIwOEVcXHUyMDkwLVxcdTIwOTRcXHUyMEE4XFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtIgorICAgICAgICAgICAgKyAiXFx1MjBFRlxcdTIxMDAtXFx1MjEwM1xcdTIxMDUtXFx1MjEwN1xcdTIxMDktXFx1MjExM1xcdTIxMTUiCisgICAgICAgICAgICArICJcXHUyMTE2XFx1MjExOS1cXHUyMTFEXFx1MjEyMC1cXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4IgorICAgICAgICAgICAgKyAiXFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTMxXFx1MjEzMy1cXHUyMTM5XFx1MjEzQi1cXHUyMTQwIgorICAgICAgICAgICAgKyAiXFx1MjE0NS1cXHUyMTQ5XFx1MjE1My1cXHUyMTdGXFx1MjE5QVxcdTIxOUJcXHUyMUFFXFx1MjFDRC0iCisgICAgICAgICAgICArICJcXHUyMUNGXFx1MjIwNFxcdTIyMDlcXHUyMjBDXFx1MjIyNFxcdTIyMjZcXHUyMjJDXFx1MjIyRFxcdTIyMkYiCisgICAgICAgICAgICArICJcXHUyMjMwXFx1MjI0MVxcdTIyNDRcXHUyMjQ3XFx1MjI0OVxcdTIyNjBcXHUyMjYyXFx1MjI2RC1cXHUyMjcxIgorICAgICAgICAgICAgKyAiXFx1MjI3NFxcdTIyNzVcXHUyMjc4XFx1MjI3OVxcdTIyODBcXHUyMjgxXFx1MjI4NFxcdTIyODVcXHUyMjg4IgorICAgICAgICAgICAgKyAiXFx1MjI4OVxcdTIyQUMtXFx1MjJBRlxcdTIyRTAtXFx1MjJFM1xcdTIyRUEtXFx1MjJFRFxcdTIzMjkiCisgICAgICAgICAgICArICJcXHUyMzJBXFx1MjQ2MC1cXHUyNEVBXFx1MkEwQ1xcdTJBNzQtXFx1MkE3NlxcdTJBRENcXHUyRDZGIgorICAgICAgICAgICAgKyAiXFx1MkU5RlxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGXFx1MzAzNiIKKyAgICAgICAgICAgICsgIlxcdTMwMzgtXFx1MzAzQVxcdTMwNENcXHUzMDRFXFx1MzA1MFxcdTMwNTJcXHUzMDU0XFx1MzA1NlxcdTMwNTgiCisgICAgICAgICAgICArICJcXHUzMDVBXFx1MzA1Q1xcdTMwNUVcXHUzMDYwXFx1MzA2MlxcdTMwNjVcXHUzMDY3XFx1MzA2OVxcdTMwNzAiCisgICAgICAgICAgICArICJcXHUzMDcxXFx1MzA3M1xcdTMwNzRcXHUzMDc2XFx1MzA3N1xcdTMwNzlcXHUzMDdBXFx1MzA3Q1xcdTMwN0QiCisgICAgICAgICAgICArICJcXHUzMDk0XFx1MzA5OS1cXHUzMDlDXFx1MzA5RVxcdTMwOUZcXHUzMEFDXFx1MzBBRVxcdTMwQjBcXHUzMEIyIgorICAgICAgICAgICAgKyAiXFx1MzBCNFxcdTMwQjZcXHUzMEI4XFx1MzBCQVxcdTMwQkNcXHUzMEJFXFx1MzBDMFxcdTMwQzJcXHUzMEM1IgorICAgICAgICAgICAgKyAiXFx1MzBDN1xcdTMwQzlcXHUzMEQwXFx1MzBEMVxcdTMwRDNcXHUzMEQ0XFx1MzBENlxcdTMwRDdcXHUzMEQ5IgorICAgICAgICAgICAgKyAiXFx1MzBEQVxcdTMwRENcXHUzMEREXFx1MzBGNFxcdTMwRjctXFx1MzBGQVxcdTMwRkVcXHUzMEZGXFx1MzEzMSIKKyAgICAgICAgICAgICsgIi1cXHUzMThFXFx1MzE5Mi1cXHUzMTlGXFx1MzIwMC1cXHUzMjFFXFx1MzIyMC1cXHUzMjQzXFx1MzI1MC0iCisgICAgICAgICAgICArICJcXHUzMjdFXFx1MzI4MC1cXHUzMkZFXFx1MzMwMC1cXHUzM0ZGXFx1QTgwNlxcdUFDMDAtXFx1RDdBMyIKKyAgICAgICAgICAgICsgIlxcdUY5MDAtXFx1RkEwRFxcdUZBMTBcXHVGQTEyXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjIiCisgICAgICAgICAgICArICJcXHVGQTI1XFx1RkEyNlxcdUZBMkEtXFx1RkEyRFxcdUZBMzAtXFx1RkE2QVxcdUZBNzAtXFx1RkFEOSIKKyAgICAgICAgICAgICsgIlxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQyIKKyAgICAgICAgICAgICsgIlxcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy0iCisgICAgICAgICAgICArICJcXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZDXFx1RkUxMC0iCisgICAgICAgICAgICArICJcXHVGRTE5XFx1RkUyMC1cXHVGRTIzXFx1RkUzMC1cXHVGRTQ0XFx1RkU0Ny1cXHVGRTUyXFx1RkU1NC0iCisgICAgICAgICAgICArICJcXHVGRTY2XFx1RkU2OC1cXHVGRTZCXFx1RkU3MC1cXHVGRTcyXFx1RkU3NFxcdUZFNzYtXFx1RkVGQyIKKyAgICAgICAgICAgICsgIlxcdUZGMDEtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZENyIKKyAgICAgICAgICAgICsgIlxcdUZGREEtXFx1RkZEQ1xcdUZGRTAtXFx1RkZFNlxcdUZGRTgtXFx1RkZFRVxcVTAwMDEwQTBEXFxVMDAwMTAiCisgICAgICAgICAgICArICJBMEZcXFUwMDAxMEEzOC1cXFUwMDAxMEEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjkiCisgICAgICAgICAgICArICJcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS1cXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQyNDItXFxVMDAwMUQyNDRcXFUwMDAxRDQwMC1cXFUwMDAxRDQ1NFxcVTAwMDFENDU2LVxcVTAwMDFENDlDIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ0OUVcXFUwMDAxRDQ5RlxcVTAwMDFENEEyXFxVMDAwMUQ0QTVcXFUwMDAxRDRBNlxcVTAwMDFENCIKKyAgICAgICAgICAgICsgIkE5LVxcVTAwMDFENEFDXFxVMDAwMUQ0QUUtXFxVMDAwMUQ0QjlcXFUwMDAxRDRCQlxcVTAwMDFENEJELSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENEMzXFxVMDAwMUQ0QzUtXFxVMDAwMUQ1MDVcXFUwMDAxRDUwNy1cXFUwMDAxRDUwQVxcVTAwMDEiCisgICAgICAgICAgICArICJENTBELVxcVTAwMDFENTE0XFxVMDAwMUQ1MTYtXFxVMDAwMUQ1MUNcXFUwMDAxRDUxRS1cXFUwMDAxRDUzOSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENTNCLVxcVTAwMDFENTNFXFxVMDAwMUQ1NDAtXFxVMDAwMUQ1NDRcXFUwMDAxRDU0NlxcVTAwMDEiCisgICAgICAgICAgICArICJENTRBLVxcVTAwMDFENTUwXFxVMDAwMUQ1NTItXFxVMDAwMUQ2QTVcXFUwMDAxRDZBOC1cXFUwMDAxRDdDQiIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEN0NFLVxcVTAwMDFEN0ZGXFxVMDAwMkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtDOgorICAgICAgICAgIFVOU0FGRV9TVEFSVFNbS0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXFx1MDlCRVxcdTA5RDdcXHUwQjNFXFx1MEI1NlxcdTBCNTdcXHUwQkJFXFx1MEJEN1xcdTBDQzJcXHUwQ0Q1IgorICAgICAgICAgICAgKyAiXFx1MENENlxcdTBEM0VcXHUwRDU3XFx1MERDRlxcdTBEREZcXHUwRjczXFx1MEY3NVxcdTBGODFcXHUxMDJFIgorICAgICAgICAgICAgKyAiXFx1MTE2MS1cXHUxMTc1XFx1MTFBNy1cXHUxMUMyXFx1MzEzM1xcdTMxMzVcXHUzMTM2XFx1MzEzQS0iCisgICAgICAgICAgICArICJcXHUzMTNGXFx1MzE0Ri1cXHUzMTYzXFx1RkY5RVxcdUZGOUZcXHVGRkEzXFx1RkZBNVxcdUZGQTZcXHVGRkFBIgorICAgICAgICAgICAgKyAiLVxcdUZGQUZcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLSIKKyAgICAgICAgICAgICsgIlxcdUZGRENdIiwgZmFsc2UpOworICAgICAgICAgIFNLSVBQQUJMRVNbS0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjUiCisgICAgICAgICAgICArICJcXHUwMEI4LVxcdTAwQkFcXHUwMEJDLVxcdTAwQkVcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDYiCisgICAgICAgICAgICArICJcXHUwMEQ4LVxcdTAwRERcXHUwMEUwLVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY4LVxcdTAwRkQiCisgICAgICAgICAgICArICJcXHUwMEZGLVxcdTAxMDNcXHUwMTA2LVxcdTAxMEZcXHUwMTEyLVxcdTAxMTdcXHUwMTFBLVxcdTAxMjEiCisgICAgICAgICAgICArICJcXHUwMTI0XFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTMyXFx1MDEzM1xcdTAxMzlcXHUwMTNBIgorICAgICAgICAgICAgKyAiXFx1MDEzRC1cXHUwMTQwXFx1MDE0M1xcdTAxNDRcXHUwMTQ3LVxcdTAxNDlcXHUwMTRDLVxcdTAxNTEiCisgICAgICAgICAgICArICJcXHUwMTU0XFx1MDE1NVxcdTAxNTgtXFx1MDE1RFxcdTAxNjBcXHUwMTYxXFx1MDE2NFxcdTAxNjVcXHUwMTY4IgorICAgICAgICAgICAgKyAiLVxcdTAxNzFcXHUwMTc0LVxcdTAxN0ZcXHUwMUEwXFx1MDFBMVxcdTAxQUZcXHUwMUIwXFx1MDFCNyIKKyAgICAgICAgICAgICsgIlxcdTAxQzQtXFx1MDFEQ1xcdTAxREUtXFx1MDFFMVxcdTAxRTYtXFx1MDFFQlxcdTAxRjEtXFx1MDFGNSIKKyAgICAgICAgICAgICsgIlxcdTAxRjgtXFx1MDFGQlxcdTAyMDAtXFx1MDIxQlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzIgorICAgICAgICAgICAgKyAiXFx1MDI5MlxcdTAyQjAtXFx1MDJCOFxcdTAyRDgtXFx1MDJERFxcdTAyRTAtXFx1MDJFNFxcdTAzMDAtIgorICAgICAgICAgICAgKyAiXFx1MDM0RVxcdTAzNTAtXFx1MDM2RlxcdTAzNzRcXHUwMzdBXFx1MDM3RVxcdTAzODRcXHUwMzg1XFx1MDM4NyIKKyAgICAgICAgICAgICsgIlxcdTAzOTFcXHUwMzk1XFx1MDM5N1xcdTAzOTlcXHUwMzlGXFx1MDNBMVxcdTAzQTVcXHUwM0E5XFx1MDNBQyIKKyAgICAgICAgICAgICsgIlxcdTAzQUVcXHUwM0IxXFx1MDNCNVxcdTAzQjdcXHUwM0I5XFx1MDNCRlxcdTAzQzFcXHUwM0M1XFx1MDNDOS0iCisgICAgICAgICAgICArICJcXHUwM0NCXFx1MDNDRVxcdTAzRDAtXFx1MDNENlxcdTAzRjAtXFx1MDNGMlxcdTAzRjRcXHUwM0Y1IgorICAgICAgICAgICAgKyAiXFx1MDNGOVxcdTA0MDZcXHUwNDEwXFx1MDQxM1xcdTA0MTUtXFx1MDQxOFxcdTA0MUFcXHUwNDFFXFx1MDQyMyIKKyAgICAgICAgICAgICsgIlxcdTA0MjdcXHUwNDJCXFx1MDQyRFxcdTA0MzBcXHUwNDMzXFx1MDQzNS1cXHUwNDM4XFx1MDQzQVxcdTA0M0UiCisgICAgICAgICAgICArICJcXHUwNDQzXFx1MDQ0N1xcdTA0NEJcXHUwNDREXFx1MDQ1NlxcdTA0NzRcXHUwNDc1XFx1MDQ4My1cXHUwNDg2IgorICAgICAgICAgICAgKyAiXFx1MDREOFxcdTA0RDlcXHUwNEU4XFx1MDRFOVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMSIKKyAgICAgICAgICAgICsgIlxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MTVcXHUwNjIyXFx1MDYyM1xcdTA2MjciCisgICAgICAgICAgICArICJcXHUwNjQ4XFx1MDY0QS1cXHUwNjVFXFx1MDY3MFxcdTA2NzUtXFx1MDY3OFxcdTA2QzFcXHUwNkQyIgorICAgICAgICAgICAgKyAiXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RUQiCisgICAgICAgICAgICArICJcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdFQi1cXHUwN0YzXFx1MDkyOFxcdTA5MzBcXHUwOTMzIgorICAgICAgICAgICAgKyAiXFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LVxcdTA5NUZcXHUwOUJDXFx1MDlCRSIKKyAgICAgICAgICAgICsgIlxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERlxcdTBBMzNcXHUwQTM2XFx1MEEzQyIKKyAgICAgICAgICAgICsgIlxcdTBBNERcXHUwQTU5LVxcdTBBNUJcXHUwQTVFXFx1MEFCQ1xcdTBBQ0RcXHUwQjNDXFx1MEIzRVxcdTBCNDciCisgICAgICAgICAgICArICJcXHUwQjREXFx1MEI1NlxcdTBCNTdcXHUwQjVDXFx1MEI1RFxcdTBCOTJcXHUwQkJFXFx1MEJDNlxcdTBCQzciCisgICAgICAgICAgICArICJcXHUwQkNEXFx1MEJEN1xcdTBDNDZcXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQ0JDXFx1MENCRlxcdTBDQzIiCisgICAgICAgICAgICArICJcXHUwQ0M2XFx1MENDQVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBEM0VcXHUwRDQ2XFx1MEQ0N1xcdTBENEQiCisgICAgICAgICAgICArICJcXHUwRDU3XFx1MERDQVxcdTBEQ0ZcXHUwREQ5XFx1MEREQ1xcdTBEREZcXHUwRTMzXFx1MEUzOC1cXHUwRTNBIgorICAgICAgICAgICAgKyAiXFx1MEU0OC1cXHUwRTRCXFx1MEVCM1xcdTBFQjhcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEVEQyIKKyAgICAgICAgICAgICsgIlxcdTBFRERcXHUwRjBDXFx1MEYxOFxcdTBGMTlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjQzXFx1MEY0RCIKKyAgICAgICAgICAgICsgIlxcdTBGNTJcXHUwRjU3XFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGN0RcXHUwRjgwLVxcdTBGODQiCisgICAgICAgICAgICArICJcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzYiCisgICAgICAgICAgICArICJcXHUxMDI1XFx1MTAyRVxcdTEwMzdcXHUxMDM5XFx1MTBGQ1xcdTExMDAtXFx1MTExMlxcdTExNjEtIgorICAgICAgICAgICAgKyAiXFx1MTE3NVxcdTExQTgtXFx1MTFDMlxcdTEzNUZcXHUxNzE0XFx1MTczNFxcdTE3RDJcXHUxN0REXFx1MThBOSIKKyAgICAgICAgICAgICsgIlxcdTE5MzktXFx1MTkzQlxcdTFBMTdcXHUxQTE4XFx1MUIzNFxcdTFCNDRcXHUxQjZCLVxcdTFCNzMiCisgICAgICAgICAgICArICJcXHUxRDJDLVxcdTFEMkVcXHUxRDMwLVxcdTFEM0FcXHUxRDNDLVxcdTFENERcXHUxRDRGLVxcdTFENkEiCisgICAgICAgICAgICArICJcXHUxRDc4XFx1MUQ5Qi1cXHUxRENBXFx1MURGRS1cXHUxRTAzXFx1MUUwQS1cXHUxRTBGXFx1MUUxMi0iCisgICAgICAgICAgICArICJcXHUxRTFCXFx1MUUyMC1cXHUxRTI3XFx1MUUyQS1cXHUxRTQxXFx1MUU0NC1cXHUxRTUzXFx1MUU1OC0iCisgICAgICAgICAgICArICJcXHUxRTdEXFx1MUU4MC1cXHUxRTg3XFx1MUU4RS1cXHUxRTkxXFx1MUU5Ni1cXHUxRTlCXFx1MUVBMC0iCisgICAgICAgICAgICArICJcXHUxRUYzXFx1MUVGNi1cXHUxRUY5XFx1MUYwMC1cXHUxRjExXFx1MUYxOFxcdTFGMTlcXHUxRjIwLSIKKyAgICAgICAgICAgICsgIlxcdTFGMzFcXHUxRjM4XFx1MUYzOVxcdTFGNDBcXHUxRjQxXFx1MUY0OFxcdTFGNDlcXHUxRjUwXFx1MUY1MSIKKyAgICAgICAgICAgICsgIlxcdTFGNTlcXHUxRjYwLVxcdTFGNzFcXHUxRjczLVxcdTFGNzVcXHUxRjc3XFx1MUY3OVxcdTFGN0ItIgorICAgICAgICAgICAgKyAiXFx1MUY3RFxcdTFGODBcXHUxRjgxXFx1MUY4OFxcdTFGODlcXHUxRjkwXFx1MUY5MVxcdTFGOThcXHUxRjk5IgorICAgICAgICAgICAgKyAiXFx1MUZBMFxcdTFGQTFcXHUxRkE4XFx1MUZBOVxcdTFGQjNcXHUxRkI2XFx1MUZCQi1cXHUxRkMxXFx1MUZDMyIKKyAgICAgICAgICAgICsgIlxcdTFGQzZcXHUxRkM5XFx1MUZDQi1cXHUxRkNGXFx1MUZEM1xcdTFGREJcXHUxRkRELVxcdTFGREYiCisgICAgICAgICAgICArICJcXHUxRkUzXFx1MUZFQlxcdTFGRUQtXFx1MUZFRlxcdTFGRjNcXHUxRkY2XFx1MUZGOVxcdTFGRkItIgorICAgICAgICAgICAgKyAiXFx1MUZGRVxcdTIwMDAtXFx1MjAwQVxcdTIwMTFcXHUyMDE3XFx1MjAyNC1cXHUyMDI2XFx1MjAyRiIKKyAgICAgICAgICAgICsgIlxcdTIwMzNcXHUyMDM0XFx1MjAzNlxcdTIwMzdcXHUyMDNDXFx1MjAzRVxcdTIwNDctXFx1MjA0OVxcdTIwNTciCisgICAgICAgICAgICArICJcXHUyMDVGXFx1MjA3MFxcdTIwNzFcXHUyMDc0LVxcdTIwOEVcXHUyMDkwLVxcdTIwOTRcXHUyMEE4IgorICAgICAgICAgICAgKyAiXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBFRlxcdTIxMDAtXFx1MjEwM1xcdTIxMDUtIgorICAgICAgICAgICAgKyAiXFx1MjEwN1xcdTIxMDktXFx1MjExM1xcdTIxMTVcXHUyMTE2XFx1MjExOS1cXHUyMTFEXFx1MjEyMC0iCisgICAgICAgICAgICArICJcXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTMxIgorICAgICAgICAgICAgKyAiXFx1MjEzMy1cXHUyMTM5XFx1MjEzQi1cXHUyMTQwXFx1MjE0NS1cXHUyMTQ5XFx1MjE1My1cXHUyMTdGIgorICAgICAgICAgICAgKyAiXFx1MjE5MFxcdTIxOTJcXHUyMTk0XFx1MjFEMFxcdTIxRDJcXHUyMUQ0XFx1MjIwM1xcdTIyMDhcXHUyMjBCIgorICAgICAgICAgICAgKyAiXFx1MjIyM1xcdTIyMjVcXHUyMjJDXFx1MjIyRFxcdTIyMkZcXHUyMjMwXFx1MjIzQ1xcdTIyNDNcXHUyMjQ1IgorICAgICAgICAgICAgKyAiXFx1MjI0OFxcdTIyNERcXHUyMjYxXFx1MjI2NFxcdTIyNjVcXHUyMjcyXFx1MjI3M1xcdTIyNzZcXHUyMjc3IgorICAgICAgICAgICAgKyAiXFx1MjI3QS1cXHUyMjdEXFx1MjI4MlxcdTIyODNcXHUyMjg2XFx1MjI4N1xcdTIyOTFcXHUyMjkyXFx1MjJBMiIKKyAgICAgICAgICAgICsgIlxcdTIyQThcXHUyMkE5XFx1MjJBQlxcdTIyQjItXFx1MjJCNVxcdTIzMjlcXHUyMzJBXFx1MjQ2MC0iCisgICAgICAgICAgICArICJcXHUyNEVBXFx1MkEwQ1xcdTJBNzQtXFx1MkE3NlxcdTJBRENcXHUyRDZGXFx1MkU5RlxcdTJFRjNcXHUyRjAwIgorICAgICAgICAgICAgKyAiLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGXFx1MzAzNlxcdTMwMzgtXFx1MzAzQVxcdTMwNDYiCisgICAgICAgICAgICArICJcXHUzMDRCXFx1MzA0RFxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OVxcdTMwNUIiCisgICAgICAgICAgICArICJcXHUzMDVEXFx1MzA1RlxcdTMwNjFcXHUzMDY0XFx1MzA2NlxcdTMwNjhcXHUzMDZGXFx1MzA3MlxcdTMwNzUiCisgICAgICAgICAgICArICJcXHUzMDc4XFx1MzA3QlxcdTMwOTktXFx1MzA5RFxcdTMwOUZcXHUzMEE2XFx1MzBBQlxcdTMwQURcXHUzMEFGIgorICAgICAgICAgICAgKyAiXFx1MzBCMVxcdTMwQjNcXHUzMEI1XFx1MzBCN1xcdTMwQjlcXHUzMEJCXFx1MzBCRFxcdTMwQkZcXHUzMEMxIgorICAgICAgICAgICAgKyAiXFx1MzBDNFxcdTMwQzZcXHUzMEM4XFx1MzBDRlxcdTMwRDJcXHUzMEQ1XFx1MzBEOFxcdTMwREJcXHUzMEVGLSIKKyAgICAgICAgICAgICsgIlxcdTMwRjJcXHUzMEZEXFx1MzBGRlxcdTMxMzEtXFx1MzE4RVxcdTMxOTItXFx1MzE5RlxcdTMyMDAtIgorICAgICAgICAgICAgKyAiXFx1MzIxRVxcdTMyMjAtXFx1MzI0M1xcdTMyNTAtXFx1MzI3RVxcdTMyODAtXFx1MzJGRVxcdTMzMDAtIgorICAgICAgICAgICAgKyAiXFx1MzNGRlxcdUE4MDZcXHVBQzAwXFx1QUMxQ1xcdUFDMzhcXHVBQzU0XFx1QUM3MFxcdUFDOENcXHVBQ0E4IgorICAgICAgICAgICAgKyAiXFx1QUNDNFxcdUFDRTBcXHVBQ0ZDXFx1QUQxOFxcdUFEMzRcXHVBRDUwXFx1QUQ2Q1xcdUFEODhcXHVBREE0IgorICAgICAgICAgICAgKyAiXFx1QURDMFxcdUFERENcXHVBREY4XFx1QUUxNFxcdUFFMzBcXHVBRTRDXFx1QUU2OFxcdUFFODRcXHVBRUEwIgorICAgICAgICAgICAgKyAiXFx1QUVCQ1xcdUFFRDhcXHVBRUY0XFx1QUYxMFxcdUFGMkNcXHVBRjQ4XFx1QUY2NFxcdUFGODBcXHVBRjlDIgorICAgICAgICAgICAgKyAiXFx1QUZCOFxcdUFGRDRcXHVBRkYwXFx1QjAwQ1xcdUIwMjhcXHVCMDQ0XFx1QjA2MFxcdUIwN0NcXHVCMDk4IgorICAgICAgICAgICAgKyAiXFx1QjBCNFxcdUIwRDBcXHVCMEVDXFx1QjEwOFxcdUIxMjRcXHVCMTQwXFx1QjE1Q1xcdUIxNzhcXHVCMTk0IgorICAgICAgICAgICAgKyAiXFx1QjFCMFxcdUIxQ0NcXHVCMUU4XFx1QjIwNFxcdUIyMjBcXHVCMjNDXFx1QjI1OFxcdUIyNzRcXHVCMjkwIgorICAgICAgICAgICAgKyAiXFx1QjJBQ1xcdUIyQzhcXHVCMkU0XFx1QjMwMFxcdUIzMUNcXHVCMzM4XFx1QjM1NFxcdUIzNzBcXHVCMzhDIgorICAgICAgICAgICAgKyAiXFx1QjNBOFxcdUIzQzRcXHVCM0UwXFx1QjNGQ1xcdUI0MThcXHVCNDM0XFx1QjQ1MFxcdUI0NkNcXHVCNDg4IgorICAgICAgICAgICAgKyAiXFx1QjRBNFxcdUI0QzBcXHVCNERDXFx1QjRGOFxcdUI1MTRcXHVCNTMwXFx1QjU0Q1xcdUI1NjhcXHVCNTg0IgorICAgICAgICAgICAgKyAiXFx1QjVBMFxcdUI1QkNcXHVCNUQ4XFx1QjVGNFxcdUI2MTBcXHVCNjJDXFx1QjY0OFxcdUI2NjRcXHVCNjgwIgorICAgICAgICAgICAgKyAiXFx1QjY5Q1xcdUI2QjhcXHVCNkQ0XFx1QjZGMFxcdUI3MENcXHVCNzI4XFx1Qjc0NFxcdUI3NjBcXHVCNzdDIgorICAgICAgICAgICAgKyAiXFx1Qjc5OFxcdUI3QjRcXHVCN0QwXFx1QjdFQ1xcdUI4MDhcXHVCODI0XFx1Qjg0MFxcdUI4NUNcXHVCODc4IgorICAgICAgICAgICAgKyAiXFx1Qjg5NFxcdUI4QjBcXHVCOENDXFx1QjhFOFxcdUI5MDRcXHVCOTIwXFx1QjkzQ1xcdUI5NThcXHVCOTc0IgorICAgICAgICAgICAgKyAiXFx1Qjk5MFxcdUI5QUNcXHVCOUM4XFx1QjlFNFxcdUJBMDBcXHVCQTFDXFx1QkEzOFxcdUJBNTRcXHVCQTcwIgorICAgICAgICAgICAgKyAiXFx1QkE4Q1xcdUJBQThcXHVCQUM0XFx1QkFFMFxcdUJBRkNcXHVCQjE4XFx1QkIzNFxcdUJCNTBcXHVCQjZDIgorICAgICAgICAgICAgKyAiXFx1QkI4OFxcdUJCQTRcXHVCQkMwXFx1QkJEQ1xcdUJCRjhcXHVCQzE0XFx1QkMzMFxcdUJDNENcXHVCQzY4IgorICAgICAgICAgICAgKyAiXFx1QkM4NFxcdUJDQTBcXHVCQ0JDXFx1QkNEOFxcdUJDRjRcXHVCRDEwXFx1QkQyQ1xcdUJENDhcXHVCRDY0IgorICAgICAgICAgICAgKyAiXFx1QkQ4MFxcdUJEOUNcXHVCREI4XFx1QkRENFxcdUJERjBcXHVCRTBDXFx1QkUyOFxcdUJFNDRcXHVCRTYwIgorICAgICAgICAgICAgKyAiXFx1QkU3Q1xcdUJFOThcXHVCRUI0XFx1QkVEMFxcdUJFRUNcXHVCRjA4XFx1QkYyNFxcdUJGNDBcXHVCRjVDIgorICAgICAgICAgICAgKyAiXFx1QkY3OFxcdUJGOTRcXHVCRkIwXFx1QkZDQ1xcdUJGRThcXHVDMDA0XFx1QzAyMFxcdUMwM0NcXHVDMDU4IgorICAgICAgICAgICAgKyAiXFx1QzA3NFxcdUMwOTBcXHVDMEFDXFx1QzBDOFxcdUMwRTRcXHVDMTAwXFx1QzExQ1xcdUMxMzhcXHVDMTU0IgorICAgICAgICAgICAgKyAiXFx1QzE3MFxcdUMxOENcXHVDMUE4XFx1QzFDNFxcdUMxRTBcXHVDMUZDXFx1QzIxOFxcdUMyMzRcXHVDMjUwIgorICAgICAgICAgICAgKyAiXFx1QzI2Q1xcdUMyODhcXHVDMkE0XFx1QzJDMFxcdUMyRENcXHVDMkY4XFx1QzMxNFxcdUMzMzBcXHVDMzRDIgorICAgICAgICAgICAgKyAiXFx1QzM2OFxcdUMzODRcXHVDM0EwXFx1QzNCQ1xcdUMzRDhcXHVDM0Y0XFx1QzQxMFxcdUM0MkNcXHVDNDQ4IgorICAgICAgICAgICAgKyAiXFx1QzQ2NFxcdUM0ODBcXHVDNDlDXFx1QzRCOFxcdUM0RDRcXHVDNEYwXFx1QzUwQ1xcdUM1MjhcXHVDNTQ0IgorICAgICAgICAgICAgKyAiXFx1QzU2MFxcdUM1N0NcXHVDNTk4XFx1QzVCNFxcdUM1RDBcXHVDNUVDXFx1QzYwOFxcdUM2MjRcXHVDNjQwIgorICAgICAgICAgICAgKyAiXFx1QzY1Q1xcdUM2NzhcXHVDNjk0XFx1QzZCMFxcdUM2Q0NcXHVDNkU4XFx1QzcwNFxcdUM3MjBcXHVDNzNDIgorICAgICAgICAgICAgKyAiXFx1Qzc1OFxcdUM3NzRcXHVDNzkwXFx1QzdBQ1xcdUM3QzhcXHVDN0U0XFx1QzgwMFxcdUM4MUNcXHVDODM4IgorICAgICAgICAgICAgKyAiXFx1Qzg1NFxcdUM4NzBcXHVDODhDXFx1QzhBOFxcdUM4QzRcXHVDOEUwXFx1QzhGQ1xcdUM5MThcXHVDOTM0IgorICAgICAgICAgICAgKyAiXFx1Qzk1MFxcdUM5NkNcXHVDOTg4XFx1QzlBNFxcdUM5QzBcXHVDOURDXFx1QzlGOFxcdUNBMTRcXHVDQTMwIgorICAgICAgICAgICAgKyAiXFx1Q0E0Q1xcdUNBNjhcXHVDQTg0XFx1Q0FBMFxcdUNBQkNcXHVDQUQ4XFx1Q0FGNFxcdUNCMTBcXHVDQjJDIgorICAgICAgICAgICAgKyAiXFx1Q0I0OFxcdUNCNjRcXHVDQjgwXFx1Q0I5Q1xcdUNCQjhcXHVDQkQ0XFx1Q0JGMFxcdUNDMENcXHVDQzI4IgorICAgICAgICAgICAgKyAiXFx1Q0M0NFxcdUNDNjBcXHVDQzdDXFx1Q0M5OFxcdUNDQjRcXHVDQ0QwXFx1Q0NFQ1xcdUNEMDhcXHVDRDI0IgorICAgICAgICAgICAgKyAiXFx1Q0Q0MFxcdUNENUNcXHVDRDc4XFx1Q0Q5NFxcdUNEQjBcXHVDRENDXFx1Q0RFOFxcdUNFMDRcXHVDRTIwIgorICAgICAgICAgICAgKyAiXFx1Q0UzQ1xcdUNFNThcXHVDRTc0XFx1Q0U5MFxcdUNFQUNcXHVDRUM4XFx1Q0VFNFxcdUNGMDBcXHVDRjFDIgorICAgICAgICAgICAgKyAiXFx1Q0YzOFxcdUNGNTRcXHVDRjcwXFx1Q0Y4Q1xcdUNGQThcXHVDRkM0XFx1Q0ZFMFxcdUNGRkNcXHVEMDE4IgorICAgICAgICAgICAgKyAiXFx1RDAzNFxcdUQwNTBcXHVEMDZDXFx1RDA4OFxcdUQwQTRcXHVEMEMwXFx1RDBEQ1xcdUQwRjhcXHVEMTE0IgorICAgICAgICAgICAgKyAiXFx1RDEzMFxcdUQxNENcXHVEMTY4XFx1RDE4NFxcdUQxQTBcXHVEMUJDXFx1RDFEOFxcdUQxRjRcXHVEMjEwIgorICAgICAgICAgICAgKyAiXFx1RDIyQ1xcdUQyNDhcXHVEMjY0XFx1RDI4MFxcdUQyOUNcXHVEMkI4XFx1RDJENFxcdUQyRjBcXHVEMzBDIgorICAgICAgICAgICAgKyAiXFx1RDMyOFxcdUQzNDRcXHVEMzYwXFx1RDM3Q1xcdUQzOThcXHVEM0I0XFx1RDNEMFxcdUQzRUNcXHVENDA4IgorICAgICAgICAgICAgKyAiXFx1RDQyNFxcdUQ0NDBcXHVENDVDXFx1RDQ3OFxcdUQ0OTRcXHVENEIwXFx1RDRDQ1xcdUQ0RThcXHVENTA0IgorICAgICAgICAgICAgKyAiXFx1RDUyMFxcdUQ1M0NcXHVENTU4XFx1RDU3NFxcdUQ1OTBcXHVENUFDXFx1RDVDOFxcdUQ1RTRcXHVENjAwIgorICAgICAgICAgICAgKyAiXFx1RDYxQ1xcdUQ2MzhcXHVENjU0XFx1RDY3MFxcdUQ2OENcXHVENkE4XFx1RDZDNFxcdUQ2RTBcXHVENkZDIgorICAgICAgICAgICAgKyAiXFx1RDcxOFxcdUQ3MzRcXHVENzUwXFx1RDc2Q1xcdUQ3ODhcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMiIKKyAgICAgICAgICAgICsgIlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyXFx1RkEyNVxcdUZBMjZcXHVGQTJBLVxcdUZBMkQiCisgICAgICAgICAgICArICJcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTciCisgICAgICAgICAgICArICJcXHVGQjFELVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzIgorICAgICAgICAgICAgKyAiXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItIgorICAgICAgICAgICAgKyAiXFx1RkRDN1xcdUZERjAtXFx1RkRGQ1xcdUZFMTAtXFx1RkUxOVxcdUZFMjAtXFx1RkUyM1xcdUZFMzAtIgorICAgICAgICAgICAgKyAiXFx1RkU0NFxcdUZFNDctXFx1RkU1MlxcdUZFNTQtXFx1RkU2NlxcdUZFNjgtXFx1RkU2QlxcdUZFNzAtIgorICAgICAgICAgICAgKyAiXFx1RkU3MlxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjAxLVxcdUZGQkVcXHVGRkMyLVxcdUZGQzciCisgICAgICAgICAgICArICJcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENcXHVGRkUwLVxcdUZGRTYiCisgICAgICAgICAgICArICJcXHVGRkU4LVxcdUZGRUVcXFUwMDAxMEEwRFxcVTAwMDEwQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTBBM0EiCisgICAgICAgICAgICArICJcXFUwMDAxMEEzRlxcVTAwMDFEMTVFLVxcVTAwMDFEMTY5XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQUQiCisgICAgICAgICAgICArICJcXFUwMDAxRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDFEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMUQ0MDAtIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ0NTRcXFUwMDAxRDQ1Ni1cXFUwMDAxRDQ5Q1xcVTAwMDFENDlFXFxVMDAwMUQ0OUZcXFUwMDAxRCIKKyAgICAgICAgICAgICsgIjRBMlxcVTAwMDFENEE1XFxVMDAwMUQ0QTZcXFUwMDAxRDRBOS1cXFUwMDAxRDRBQ1xcVTAwMDFENEFFLSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENEI5XFxVMDAwMUQ0QkJcXFUwMDAxRDRCRC1cXFUwMDAxRDRDM1xcVTAwMDFENEM1LVxcVTAwMDEiCisgICAgICAgICAgICArICJENTA1XFxVMDAwMUQ1MDctXFxVMDAwMUQ1MEFcXFUwMDAxRDUwRC1cXFUwMDAxRDUxNFxcVTAwMDFENTE2LSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENTFDXFxVMDAwMUQ1MUUtXFxVMDAwMUQ1MzlcXFUwMDAxRDUzQi1cXFUwMDAxRDUzRVxcVTAwMDEiCisgICAgICAgICAgICArICJENTQwLVxcVTAwMDFENTQ0XFxVMDAwMUQ1NDZcXFUwMDAxRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDFENTUyLSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENkE1XFxVMDAwMUQ2QTgtXFxVMDAwMUQ3Q0JcXFUwMDAxRDdDRS1cXFUwMDAxRDdGRlxcVTAwMDIiCisgICAgICAgICAgICArICJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0gICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDlmYTc0ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YQpAQCAtMCwwICsxLDI4MTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogVW5pY29kZSBOb3JtYWxpemF0aW9uIAorICoKKyAqIDxoMj5Vbmljb2RlIG5vcm1hbGl6YXRpb24gQVBJPC9oMj4KKyAqCisgKiA8Y29kZT5ub3JtYWxpemU8L2NvZGU+IHRyYW5zZm9ybXMgVW5pY29kZSB0ZXh0IGludG8gYW4gZXF1aXZhbGVudCBjb21wb3NlZCBvcgorICogZGVjb21wb3NlZCBmb3JtLCBhbGxvd2luZyBmb3IgZWFzaWVyIHNvcnRpbmcgYW5kIHNlYXJjaGluZyBvZiB0ZXh0LgorICogPGNvZGU+bm9ybWFsaXplPC9jb2RlPiBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgbm9ybWFsaXphdGlvbiBmb3JtcyBkZXNjcmliZWQgaW4KKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvIiB0YXJnZXQ9InVuaWNvZGUiPgorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTUgJm1kYXNoOyBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICoKKyAqIENoYXJhY3RlcnMgd2l0aCBhY2NlbnRzIG9yIG90aGVyIGFkb3JubWVudHMgY2FuIGJlIGVuY29kZWQgaW4KKyAqIHNldmVyYWwgZGlmZmVyZW50IHdheXMgaW4gVW5pY29kZS4gIEZvciBleGFtcGxlLCB0YWtlIHRoZSBjaGFyYWN0ZXIgQS1hY3V0ZS4KKyAqIEluIFVuaWNvZGUsIHRoaXMgY2FuIGJlIGVuY29kZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyICh0aGUKKyAqICJjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwQzEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgKiA8L3A+CisgKgorICogb3IgYXMgdHdvIHNlcGFyYXRlIGNoYXJhY3RlcnMgKHRoZSAiZGVjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwNDEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQQorICogICAgICAwMzAxICAgIENPTUJJTklORyBBQ1VURSBBQ0NFTlQKKyAqIDwvcD4KKyAqCisgKiBUbyBhIHVzZXIgb2YgeW91ciBwcm9ncmFtLCBob3dldmVyLCBib3RoIG9mIHRoZXNlIHNlcXVlbmNlcyBzaG91bGQgYmUKKyAqIHRyZWF0ZWQgYXMgdGhlIHNhbWUgInVzZXItbGV2ZWwiIGNoYXJhY3RlciAiQSB3aXRoIGFjdXRlIGFjY2VudCIuICBXaGVuIHlvdSAKKyAqIGFyZSBzZWFyY2hpbmcgb3IgY29tcGFyaW5nIHRleHQsIHlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoZXNlIHR3byBzZXF1ZW5jZXMgYXJlIAorICogdHJlYXRlZCBlcXVpdmFsZW50bHkuICBJbiBhZGRpdGlvbiwgeW91IG11c3QgaGFuZGxlIGNoYXJhY3RlcnMgd2l0aCBtb3JlIHRoYW4KKyAqIG9uZSBhY2NlbnQuICBTb21ldGltZXMgdGhlIG9yZGVyIG9mIGEgY2hhcmFjdGVyJ3MgY29tYmluaW5nIGFjY2VudHMgaXMKKyAqIHNpZ25pZmljYW50LCB3aGlsZSBpbiBvdGhlciBjYXNlcyBhY2NlbnQgc2VxdWVuY2VzIGluIGRpZmZlcmVudCBvcmRlcnMgYXJlCisgKiByZWFsbHkgZXF1aXZhbGVudC4KKyAqCisgKiBTaW1pbGFybHksIHRoZSBzdHJpbmcgImZmaSIgY2FuIGJlIGVuY29kZWQgYXMgdGhyZWUgc2VwYXJhdGUgbGV0dGVyczoKKyAqCisgKiA8cD4KKyAqICAgICAgMDA2NiAgICBMQVRJTiBTTUFMTCBMRVRURVIgRgorICogICAgICAwMDY2ICAgIExBVElOIFNNQUxMIExFVFRFUiBGCisgKiAgICAgIDAwNjkgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkKKyAqIDxccD4KKyAqCisgKiBvciBhcyB0aGUgc2luZ2xlIGNoYXJhY3RlcgorICoKKyAqIDxwPgorICogICAgICBGQjAzICAgIExBVElOIFNNQUxMIExJR0FUVVJFIEZGSQorICogPFxwPgorICoKKyAqIFRoZSBmZmkgbGlnYXR1cmUgaXMgbm90IGEgZGlzdGluY3Qgc2VtYW50aWMgY2hhcmFjdGVyLCBhbmQgc3RyaWN0bHkgc3BlYWtpbmcKKyAqIGl0IHNob3VsZG4ndCBiZSBpbiBVbmljb2RlIGF0IGFsbCwgYnV0IGl0IHdhcyBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eQorICogd2l0aCBleGlzdGluZyBjaGFyYWN0ZXIgc2V0cyB0aGF0IGFscmVhZHkgcHJvdmlkZWQgaXQuICBUaGUgVW5pY29kZSBzdGFuZGFyZAorICogaWRlbnRpZmllcyBzdWNoIGNoYXJhY3RlcnMgYnkgZ2l2aW5nIHRoZW0gImNvbXBhdGliaWxpdHkiIGRlY29tcG9zaXRpb25zCisgKiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHNlbWFudGljIGNoYXJhY3RlcnMuICBXaGVuIHNvcnRpbmcgYW5kIHNlYXJjaGluZywgeW91CisgKiB3aWxsIG9mdGVuIHdhbnQgdG8gdXNlIHRoZXNlIG1hcHBpbmdzLgorICoKKyAqIDxjb2RlPm5vcm1hbGl6ZTwvY29kZT4gaGVscHMgc29sdmUgdGhlc2UgcHJvYmxlbXMgYnkgdHJhbnNmb3JtaW5nIHRleHQgaW50byAKKyAqIHRoZSBjYW5vbmljYWwgY29tcG9zZWQgYW5kIGRlY29tcG9zZWQgZm9ybXMgYXMgc2hvd24gaW4gdGhlIGZpcnN0IGV4YW1wbGUgCisgKiBhYm92ZS4gSW4gYWRkaXRpb24sIHlvdSBjYW4gaGF2ZSBpdCBwZXJmb3JtIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbnMgc28gCisgKiB0aGF0IHlvdSBjYW4gdHJlYXQgY29tcGF0aWJpbGl0eSBjaGFyYWN0ZXJzIHRoZSBzYW1lIGFzIHRoZWlyIGVxdWl2YWxlbnRzLgorICogRmluYWxseSwgPGNvZGU+bm9ybWFsaXplPC9jb2RlPiByZWFycmFuZ2VzIGFjY2VudHMgaW50byB0aGUgcHJvcGVyIGNhbm9uaWNhbAorICogb3JkZXIsIHNvIHRoYXQgeW91IGRvIG5vdCBoYXZlIHRvIHdvcnJ5IGFib3V0IGFjY2VudCByZWFycmFuZ2VtZW50IG9uIHlvdXIKKyAqIG93bi4KKyAqCisgKiBGb3JtIEZDRCwgIkZhc3QgQyBvciBEIiwgaXMgYWxzbyBkZXNpZ25lZCBmb3IgY29sbGF0aW9uLgorICogSXQgYWxsb3dzIHRvIHdvcmsgb24gc3RyaW5ncyB0aGF0IGFyZSBub3QgbmVjZXNzYXJpbHkgbm9ybWFsaXplZAorICogd2l0aCBhbiBhbGdvcml0aG0gKGxpa2UgaW4gY29sbGF0aW9uKSB0aGF0IHdvcmtzIHVuZGVyICJjYW5vbmljYWwgY2xvc3VyZSIsIAorICogaS5lLiwgaXQgdHJlYXRzIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgYW5kIHRoZWlyIGRlY29tcG9zZWQgZXF1aXZhbGVudHMgdGhlIAorICogc2FtZS4KKyAqCisgKiBJdCBpcyBub3QgYSBub3JtYWxpemF0aW9uIGZvcm0gYmVjYXVzZSBpdCBkb2VzIG5vdCBwcm92aWRlIGZvciB1bmlxdWVuZXNzIG9mIAorICogcmVwcmVzZW50YXRpb24uIE11bHRpcGxlIHN0cmluZ3MgbWF5IGJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgKHRoZWlyIE5GRHMgCisgKiBhcmUgaWRlbnRpY2FsKSBhbmQgbWF5IGFsbCBjb25mb3JtIHRvIEZDRCB3aXRob3V0IGJlaW5nIGlkZW50aWNhbCB0aGVtc2VsdmVzLgorICoKKyAqIFRoZSBmb3JtIGlzIGRlZmluZWQgc3VjaCB0aGF0IHRoZSAicmF3IGRlY29tcG9zaXRpb24iLCB0aGUgcmVjdXJzaXZlIAorICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gb2YgZWFjaCBjaGFyYWN0ZXIsIHJlc3VsdHMgaW4gYSBzdHJpbmcgdGhhdCBpcyAKKyAqIGNhbm9uaWNhbGx5IG9yZGVyZWQuIFRoaXMgbWVhbnMgdGhhdCBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkIGZvciAKKyAqIGFzIGxvbmcgYXMgdGhlaXIgZGVjb21wb3NpdGlvbnMgZG8gbm90IG5lZWQgY2Fub25pY2FsIHJlb3JkZXJpbmcuCisgKgorICogSXRzIGFkdmFudGFnZSBmb3IgYSBwcm9jZXNzIGxpa2UgY29sbGF0aW9uIGlzIHRoYXQgYWxsIE5GRCBhbmQgbW9zdCBORkMgdGV4dHMKKyAqIC0gYW5kIG1hbnkgdW5ub3JtYWxpemVkIHRleHRzIC0gYWxyZWFkeSBjb25mb3JtIHRvIEZDRCBhbmQgZG8gbm90IG5lZWQgdG8gYmUgCisgKiBub3JtYWxpemVkIChORkQpIGZvciBzdWNoIGEgcHJvY2Vzcy4gVGhlIEZDRCBxdWljayBjaGVjayB3aWxsIHJldHVybiBZRVMgZm9yIAorICogbW9zdCBzdHJpbmdzIGluIHByYWN0aWNlLgorICoKKyAqIG5vcm1hbGl6ZShGQ0QpIG1heSBiZSBpbXBsZW1lbnRlZCB3aXRoIE5GRC4KKyAqCisgKiBGb3IgbW9yZSBkZXRhaWxzIG9uIEZDRCBzZWUgdGhlIGNvbGxhdGlvbiBkZXNpZ24gZG9jdW1lbnQ6CisgKiBodHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL35jaGVja291dH4vaWN1aHRtbC9kZXNpZ24vY29sbGF0aW9uL0lDVV9jb2xsYXRpb25fZGVzaWduLmh0bQorICoKKyAqIElDVSBjb2xsYXRpb24gcGVyZm9ybXMgZWl0aGVyIE5GRCBvciBGQ0Qgbm9ybWFsaXphdGlvbiBhdXRvbWF0aWNhbGx5IGlmIAorICogbm9ybWFsaXphdGlvbiBpcyB0dXJuZWQgb24gZm9yIHRoZSBjb2xsYXRvciBvYmplY3QuIEJleW9uZCBjb2xsYXRpb24gYW5kIAorICogc3RyaW5nIHNlYXJjaCwgbm9ybWFsaXplZCBzdHJpbmdzIG1heSBiZSB1c2VmdWwgZm9yIHN0cmluZyBlcXVpdmFsZW5jZSAKKyAqIGNvbXBhcmlzb25zLCB0cmFuc2xpdGVyYXRpb24vdHJhbnNjcmlwdGlvbiwgdW5pcXVlIHJlcHJlc2VudGF0aW9ucywgZXRjLgorICoKKyAqIFRoZSBXM0MgZ2VuZXJhbGx5IHJlY29tbWVuZHMgdG8gZXhjaGFuZ2UgdGV4dHMgaW4gTkZDLgorICogTm90ZSBhbHNvIHRoYXQgbW9zdCBsZWdhY3kgY2hhcmFjdGVyIGVuY29kaW5ncyB1c2Ugb25seSBwcmVjb21wb3NlZCBmb3JtcyBhbmQKKyAqIG9mdGVuIGRvIG5vdCBlbmNvZGUgYW55IGNvbWJpbmluZyBtYXJrcyBieSB0aGVtc2VsdmVzLiBGb3IgY29udmVyc2lvbiB0byBzdWNoCisgKiBjaGFyYWN0ZXIgZW5jb2RpbmdzIHRoZSBVbmljb2RlIHRleHQgbmVlZHMgdG8gYmUgbm9ybWFsaXplZCB0byBORkMuCisgKiBGb3IgbW9yZSB1c2FnZSBleGFtcGxlcywgc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIEFubmV4LgorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIE5vcm1hbGl6ZXIgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByaXZhdGUgZGF0YQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgCisgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbMTAwXTsKKyAgICBwcml2YXRlIGludCBidWZmZXJTdGFydCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgYnVmZmVyUG9zICAgPSAwOworICAgIHByaXZhdGUgaW50IGJ1ZmZlckxpbWl0ID0gMDsKKyAgICAKKyAgICAvLyBUaGlzIHRlbGxzIHVzIHdoYXQgdGhlIGJpdHMgaW4gdGhlICJtb2RlIiBvYmplY3QgbWVhbi4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFUX0JJVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9CSVQgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01QT1NFX0JJVCA9IDQ7CisgICAgCisgICAgLy8gVGhlIGlucHV0IHRleHQgYW5kIG91ciBwb3NpdGlvbiBpbiBpdAorICAgIHByaXZhdGUgVUNoYXJhY3Rlckl0ZXJhdG9yICB0ZXh0OworICAgIHByaXZhdGUgTW9kZSAgICAgICAgICAgICAgICBtb2RlID0gTkZDOworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBvcHRpb25zID0gMDsKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4OworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBuZXh0SW5kZXg7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9ucyBiaXQgc2V0IHZhbHVlIHRvIHNlbGVjdCBVbmljb2RlIDMuMiBub3JtYWxpemF0aW9uCisgICAgICogKGV4Y2VwdCBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMpLgorICAgICAqIEF0IG1vc3Qgb25lIFVuaWNvZGUgdmVyc2lvbiBjYW4gYmUgc2VsZWN0ZWQgYXQgYSB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSUNPREVfM18yPTB4MjA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBpbmRpY2F0aW5nIHRoYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogVGhpcyBpcyBndWFyYW50ZWVkIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMge0BsaW5rIFVDaGFyYWN0ZXJJdGVyYXRvciNET05FfS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudHMgZm9yIG5vcm1hbGl6YXRpb24gbW9kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbW9kZVZhbHVlOworICAgICAgICBwcml2YXRlIE1vZGUoaW50IHZhbHVlKSB7CisgICAgICAgICAgICBtb2RlVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgaW50IHNyY0xlbiA9IChzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgICAgIGludCBkZXN0TGVuID0gKGRlc3RMaW1pdCAtIGRlc3RTdGFydCk7CisgICAgICAgICAgICBpZiggc3JjTGVuID4gZGVzdExlbiApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3JjTGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMsc3JjU3RhcnQsZGVzdCxkZXN0U3RhcnQsc3JjTGVuKTsKKyAgICAgICAgICAgIHJldHVybiBzcmNMZW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBmb3IgbWV0aG9kIGRpc3BhdGNoCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoY2hhcltdIHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemUoICAgc3JjLCBzcmNTdGFydCwgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gc3JjOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWluQygpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBmb3IgbWV0aG9kIGRpc3BhdGNoCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzcmMsaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWxsb3dNYXliZSxVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpZihhbGxvd01heWJlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWUJFOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5POworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBObyBkZWNvbXBvc2l0aW9uL2NvbXBvc2l0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5PTkUgPSBuZXcgTW9kZSgxKTsKKworICAgIC8qKiAKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBORkQgPSBuZXcgTkZETW9kZSgyKTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBORkRNb2RlIGV4dGVuZHMgTW9kZSB7CisgICAgICAgIHByaXZhdGUgTkZETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cmFpbENDLG54KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gZGVjb21wb3NlKHNyYyxmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuTUlOX1dJVEhfTEVBRF9DQzsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc1ByZXZCb3VuZGFyeSBnZXRQcmV2Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzUHJldk5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkQpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwucXVpY2tDaGVjaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYywgc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORkRfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5RQ19ORkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNORlNraXBwYWJsZShpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzTkZTa2lwcGFibGUoYyx0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuUUNfTkZEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfSAgICAgICAgICAgCisgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKiogCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0QgPSBuZXcgTkZLRE1vZGUoMyk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTkZLRE1vZGUgZXh0ZW5kcyBNb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBORktETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIHRyYWlsQ0MsIG54KTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKCBTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykgeworICAgICAgICAgICAgcmV0dXJuIGRlY29tcG9zZShzcmMsdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuTUlOX1dJVEhfTEVBRF9DQzsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc1ByZXZCb3VuZGFyeSBnZXRQcmV2Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzUHJldk5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORktEKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktEX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNORlNraXBwYWJsZShpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzTkZTa2lwcGFibGUoYywgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVySW1wbC5DQ19NQVNLfE5vcm1hbGl6ZXJJbXBsLlFDX05GS0QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgTkZDID0gbmV3IE5GQ01vZGUoNCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTkZDTW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgTkZDTW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuY29tcG9zZSggc3JjLCBzcmNTdGFydCwgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIG54KTsKKyAgICAgICAgfQorICAKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gY29tcG9zZShzcmMsIGZhbHNlLCBvcHRpb25zKTsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0RnJvbUluZGV4ZXNBcnIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuSU5ERVhfTUlOX05GQ19OT19NQVlCRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2VHJ1ZVN0YXJ0ZXIoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSXNOZXh0Qm91bmRhcnkgZ2V0TmV4dEJvdW5kYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBJc05leHRUcnVlU3RhcnRlcigpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkMpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORkNfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5RQ19ORkMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GU2tpcHBhYmxlKGMsdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5DT01CSU5FU19BTll8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVySW1wbC5RQ19ORkMgJiBOb3JtYWxpemVySW1wbC5RQ19BTllfTk8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0gCisgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqIAorICAgICAqIERlZmF1bHQgbm9ybWFsaXphdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBERUZBVUxUID0gTkZDOyAKKyAgICAKKyAgICAvKiogCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIGZvbGxvd2VkIGJ5IGNhbm9uaWNhbCBjb21wb3NpdGlvbi4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0MgPW5ldyBORktDTW9kZSg1KTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBORktDTW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgTkZLQ01vZGUoaW50IHZhbHVlKSB7CisgICAgICAgICAgICBzdXBlcih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoY2hhcltdIHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5jb21wb3NlKHNyYywgIHNyY1N0YXJ0LHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULCBueCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wb3NlKHNyYywgdHJ1ZSwgb3B0aW9ucyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZyb21JbmRleGVzQXJyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSXNQcmV2Qm91bmRhcnkgZ2V0UHJldkJvdW5kYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBJc1ByZXZUcnVlU3RhcnRlcigpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dFRydWVTdGFydGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNYXNrKCkgeworICAgICAgICAgICAgcmV0dXJuIChOb3JtYWxpemVySW1wbC5DQ19NQVNLfE5vcm1hbGl6ZXJJbXBsLlFDX05GS0MpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GU2tpcHBhYmxlKGMsIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuQ09NQklORVNfQU5ZfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9ybWFsaXplckltcGwuUUNfTkZLQyAmIE5vcm1hbGl6ZXJJbXBsLlFDX0FOWV9OTykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfSAKKyAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiAiRmFzdCBDIG9yIEQiIGZvcm0uIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgRkNEID0gbmV3IEZDRE1vZGUoNik7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgRkNETW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgRkNETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLm1ha2VGQ0Qoc3JjLCBzcmNTdGFydCxzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsIG54KTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBtYWtlRkNEKHNyYywgb3B0aW9ucyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLk1JTl9XSVRIX0xFQURfQ0M7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2TkZEU2FmZSgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuY2hlY2tGQ0Qoc3JjLHN0YXJ0LGxpbWl0LG54KSA/IFlFUyA6IE5POworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIC8qIEZDRDogc2tpcHBhYmxlIGlmIGxlYWQgY2M9PTAgYW5kIHRyYWlsIGNjPD0xICovCisgICAgICAgICAgICByZXR1cm4gKE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGMpPjEpOworICAgICAgICB9ICAgCisgICAgfTsKKworICAgIAorICAgIC8qKgorICAgICAqIE51bGwgb3BlcmF0aW9uIGZvciB1c2Ugd2l0aCB0aGUge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30KKyAgICAgKiBhbmQgdGhlIHN0YXRpYyB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9IG1ldGhvZC4gIFRoaXMgdmFsdWUgdGVsbHMKKyAgICAgKiB0aGUgPHR0Pk5vcm1hbGl6ZXI8L3R0PiB0byBkbyBub3RoaW5nIGJ1dCByZXR1cm4gdW5wcm9jZXNzZWQgY2hhcmFjdGVycworICAgICAqIGZyb20gdGhlIHVuZGVybHlpbmcgU3RyaW5nIG9yIENoYXJhY3Rlckl0ZXJhdG9yLiAgSWYgeW91IGhhdmUgY29kZSB3aGljaAorICAgICAqIHJlcXVpcmVzIHJhdyB0ZXh0IGF0IHNvbWUgdGltZXMgYW5kIG5vcm1hbGl6ZWQgdGV4dCBhdCBvdGhlcnMsIHlvdSBjYW4KKyAgICAgKiB1c2UgPHR0Pk5PX09QPC90dD4gZm9yIHRoZSBjYXNlcyB3aGVyZSB5b3Ugd2FudCByYXcgdGV4dCwgcmF0aGVyCisgICAgICogdGhhbiBoYXZpbmcgYSBzZXBhcmF0ZSBjb2RlIHBhdGggdGhhdCBieXBhc3NlcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+CisgICAgICogYWx0b2dldGhlci4KKyAgICAgKiA8cD4KKyAgICAgKiBAc2VlICNzZXRNb2RlCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuOC4gVXNlIE5vbWFsaXplci5OT05FCisgICAgICogQHNlZSAjTk9ORQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBOT19PUCA9IE5PTkU7CisKKyAgICAvKioKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uICBVc2VkIHdpdGggdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMgCisgICAgICoge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfSBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSBvcGVyYXRpb24gdG8gYmUgCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIDxwPgorICAgICAqIElmIGFsbCBvcHRpb25hbCBmZWF0dXJlcyAoPGk+ZS5nLjwvaT4ge0BsaW5rICNJR05PUkVfSEFOR1VMfSkgYXJlIHR1cm5lZAorICAgICAqIG9mZiwgdGhpcyBvcGVyYXRpb24gcHJvZHVjZXMgb3V0cHV0IHRoYXQgaXMgaW4KKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvPlVuaWNvZGUgQ2Fub25pY2FsIAorICAgICAqIEZvcm08L2E+CisgICAgICogPGI+QzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpZXIuTkZDCisgICAgICogQHNlZSAjTkZDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0UgPSBORkM7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gZm9sbG93ZWQgYnkgY2Fub25pY2FsIGNvbXBvc2l0aW9uLgorICAgICAqIFVzZWQgd2l0aCB0aGUge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMKKyAgICAgKiB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9IG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSAKKyAgICAgKiBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgCisgICAgICogRm9ybTwvYT4KKyAgICAgKiA8Yj5LQzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpemVyLk5GS0MKKyAgICAgKiBAc2VlICNORktDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0VfQ09NUEFUID0gTkZLQzsKKworICAgIC8qKgorICAgICAqIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMKKyAgICAgKiB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9CisgICAgICogbWV0aG9kIHRvIGRldGVybWluZSB0aGUgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbGwgb3B0aW9uYWwgZmVhdHVyZXMgKDxpPmUuZy48L2k+IHtAbGluayAjSUdOT1JFX0hBTkdVTH0pIGFyZSB0dXJuZWQKKyAgICAgKiBvZmYsIHRoaXMgb3BlcmF0aW9uIHByb2R1Y2VzIG91dHB1dCB0aGF0IGlzIGluCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1Lz5Vbmljb2RlIENhbm9uaWNhbCAKKyAgICAgKiBGb3JtPC9hPgorICAgICAqIDxiPkQ8L2I+LgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE1vZGUKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi44LiBVc2UgTm9ybWFsaXplci5ORkQKKyAgICAgKiBAc2VlICNORkQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgREVDT01QID0gTkZEOworCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMgCisgICAgICoge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfQorICAgICAqIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgCisgICAgICogRm9ybTwvYT4KKyAgICAgKiA8Yj5LRDwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpemVyLk5GS0QKKyAgICAgKiBAc2VlICNORktECisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIERFQ09NUF9DT01QQVQgPSBORktEOworCisgICAgLyoqCisgICAgICogT3B0aW9uIHRvIGRpc2FibGUgSGFuZ3VsL0phbW8gY29tcG9zaXRpb24gYW5kIGRlY29tcG9zaXRpb24uCisgICAgICogVGhpcyBvcHRpb24gYXBwbGllcyB0byBLb3JlYW4gdGV4dCwKKyAgICAgKiB3aGljaCBjYW4gYmUgcmVwcmVzZW50ZWQgZWl0aGVyIGluIHRoZSBKYW1vIGFscGhhYmV0IG9yIGluIEhhbmd1bAorICAgICAqIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSByZWFsbHkganVzdCB0d28gb3IgdGhyZWUgSmFtbyBjb21iaW5lZAorICAgICAqIGludG8gb25lIHZpc3VhbCBnbHlwaC4gIFNpbmNlIEphbW8gdGFrZXMgdXAgbW9yZSBzdG9yYWdlIHNwYWNlIHRoYW4KKyAgICAgKiBIYW5ndWwsIGFwcGxpY2F0aW9ucyB0aGF0IHByb2Nlc3Mgb25seSBIYW5ndWwgdGV4dCBtYXkgd2lzaCB0byB0dXJuCisgICAgICogdGhpcyBvcHRpb24gb24gd2hlbiBkZWNvbXBvc2luZyB0ZXh0LgorICAgICAqIDxwPgorICAgICAqIFRoZSBVbmljb2RlIHN0YW5kYXJkIHRyZWF0ZXMgSGFuZ3VsIHRvIEphbW8gY29udmVyc2lvbiBhcyBhCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24sIHNvIHRoaXMgb3B0aW9uIG11c3QgYmUgdHVybmVkIDxiPm9mZjwvYj4gaWYgeW91CisgICAgICogd2lzaCB0byB0cmFuc2Zvcm0gc3RyaW5ncyBpbnRvIG9uZSBvZiB0aGUgc3RhbmRhcmQKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyIgdGFyZ2V0PSJ1bmljb2RlIj4KKyAgICAgKiBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE9wdGlvbgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFRoaXMgb3B0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFRPRE86IGNoZWNrIHdpdGggUmFtCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JFX0hBTkdVTCA9IDB4MDAwMTsKKyAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXN1bHQgdmFsdWVzIGZvciBxdWlja0NoZWNrKCkuCisgICAgICogRm9yIGRldGFpbHMgc2VlIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAxNS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFF1aWNrQ2hlY2tSZXN1bHR7CisgICAgICAgIHByaXZhdGUgaW50IHJlc3VsdFZhbHVlOworICAgICAgICBwcml2YXRlIFF1aWNrQ2hlY2tSZXN1bHQoaW50IHZhbHVlKSB7CisgICAgICAgICAgICByZXN1bHRWYWx1ZT12YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiogCisgICAgICogSW5kaWNhdGVzIHRoYXQgc3RyaW5nIGlzIG5vdCBpbiB0aGUgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgTk8gPSBuZXcgUXVpY2tDaGVja1Jlc3VsdCgwKTsKKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIEluZGljYXRlcyB0aGF0IHN0cmluZyBpcyBpbiB0aGUgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgWUVTID0gbmV3IFF1aWNrQ2hlY2tSZXN1bHQoMSk7CisKKyAgICAvKiogCisgICAgICogSW5kaWNhdGVzIGl0IGNhbm5vdCBiZSBkZXRlcm1pbmVkIGlmIHN0cmluZyBpcyBpbiB0aGUgbm9ybWFsaXplZCAKKyAgICAgKiBmb3JtYXQgd2l0aG91dCBmdXJ0aGVyIHRob3JvdWdoIGNoZWNrcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgTUFZQkUgPSBuZXcgUXVpY2tDaGVja1Jlc3VsdCgyKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBPcHRpb24gYml0IGZvciBjb21wYXJlOgorICAgICAqIENhc2Ugc2Vuc2l0aXZlbHkgY29tcGFyZSB0aGUgc3RyaW5ncworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPTERfQ0FTRV9ERUZBVUxUID0gIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQ7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBCb3RoIGlucHV0IHN0cmluZ3MgYXJlIGFzc3VtZWQgdG8gZnVsZmlsbCBGQ0QgY29uZGl0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlBVVF9JU19GQ0QgICAgPSAgICAgIDB4MjAwMDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE9wdGlvbiBiaXQgZm9yIGNvbXBhcmU6CisgICAgICogUGVyZm9ybSBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9JR05PUkVfQ0FTRSAgPSAgICAgMHgxMDAwMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBDb21wYXJlIHN0cmluZ3MgaW4gY29kZSBwb2ludCBvcmRlciBpbnN0ZWFkIG9mIGNvZGUgdW5pdCBvcmRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIgPSAweDgwMDA7CisgICAgCisgICAgLyoqIAorICAgICAqIE9wdGlvbiB2YWx1ZSBmb3IgY2FzZSBmb2xkaW5nOiBleGNsdWRlIHRoZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkgCisgICAgICogYW5kIGRvdGxlc3MgaSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBMb3dlc3Qtb3JkZXIgYml0IG51bWJlciBvZiBjb21wYXJlKCkgb3B0aW9ucyBiaXRzIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiBub3JtYWxpemF0aW9uIG9wdGlvbnMgYml0cy4KKyAgICAgKgorICAgICAqIFRoZSBvcHRpb25zIHBhcmFtZXRlciBmb3IgY29tcGFyZSgpIHVzZXMgbW9zdCBiaXRzIGZvcgorICAgICAqIGl0c2VsZiBhbmQgZm9yIHZhcmlvdXMgY29tcGFyaXNvbiBhbmQgZm9sZGluZyBmbGFncy4KKyAgICAgKiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXRzLCBob3dldmVyLCBhcmUgc2hpZnRlZCBkb3duIGFuZCBwYXNzZWQgb24KKyAgICAgKiB0byB0aGUgbm9ybWFsaXphdGlvbiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiAoVGhhdCBpcywgZnJvbSBjb21wYXJlKC4uLiwgb3B0aW9ucywgLi4uKSwKKyAgICAgKiBvcHRpb25zPj5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUKKyAgICAgKiBpbnRlcm5hbCBub3JtYWxpemF0aW9uIGZ1bmN0aW9ucy4pCisgICAgICoKKyAgICAgKiBAc2VlICNjb21wYXJlCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQgID0gMjA7CisgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IG9iamVjdCBmb3IgaXRlcmF0aW5nIG92ZXIgdGhlCisgICAgICogbm9ybWFsaXplZCBmb3JtIG9mIGEgZ2l2ZW4gc3RyaW5nLgorICAgICAqIDxwPgorICAgICAqIFRoZSA8dHQ+b3B0aW9uczwvdHQ+IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb3B0aW9uYWwKKyAgICAgKiA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGZlYXR1cmVzIGFyZSB0byBiZSBlbmFibGVkIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gc3RyICBUaGUgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0IEFueSBvcHRpb25hbCBmZWF0dXJlcyB0byBiZSBlbmFibGVkLgorICAgICAqICAgICAgICAgICAgQ3VycmVudGx5IHRoZSBvbmx5IGF2YWlsYWJsZSBvcHRpb24gaXMge0BsaW5rICNVTklDT0RFXzNfMn0uCisgICAgICogICAgICAgICAgICBJZiB5b3Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgIHN0YW5kYXJkIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3JtcywgdXNlIDAgZm9yIHRoaXMgYXJndW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIE5vcm1hbGl6ZXIoU3RyaW5nIHN0ciwgTW9kZSBtb2RlLCBpbnQgb3B0KSB7CisgICAgICAgIHRoaXMudGV4dCA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzdHIpOworICAgICAgICB0aGlzLm1vZGUgPSBtb2RlOyAKKyAgICAgICAgdGhpcy5vcHRpb25zPW9wdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0IGZvciBpdGVyYXRpbmcgb3ZlciB0aGUKKyAgICAgKiBub3JtYWxpemVkIGZvcm0gb2YgdGhlIGdpdmVuIHRleHQuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGl0ZXIgIFRoZSBpbnB1dCB0ZXh0IHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdCBBbnkgb3B0aW9uYWwgZmVhdHVyZXMgdG8gYmUgZW5hYmxlZC4KKyAgICAgKiAgICAgICAgICAgIEN1cnJlbnRseSB0aGUgb25seSBhdmFpbGFibGUgb3B0aW9uIGlzIHtAbGluayAjVU5JQ09ERV8zXzJ9LgorICAgICAqICAgICAgICAgICAgSWYgeW91IHdhbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlCisgICAgICogICAgICAgICAgICBzdGFuZGFyZCBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMsIHVzZSAwIGZvciB0aGlzIGFyZ3VtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIE1vZGUgbW9kZSwgaW50IG9wdCkgeworICAgICAgICB0aGlzLnRleHQgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3IpaXRlci5jbG9uZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB0aGlzLm1vZGUgPSBtb2RlOworICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBvYmplY3QgZm9yIGl0ZXJhdGluZyBvdmVyIHRoZQorICAgICAqIG5vcm1hbGl6ZWQgZm9ybSBvZiB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gaXRlciAgVGhlIGlucHV0IHRleHQgdG8gYmUgbm9ybWFsaXplZC4gIFRoZSBub3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgIHdpbGwgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIE5vcm1hbGl6ZXIoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRoaXMudGV4dCAgICAgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIHRoaXMubW9kZSAgICAgPSBtb2RlOworICAgICAgICAgICAgdGhpcy5vcHRpb25zICA9IG9wdGlvbnM7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENsb25lcyB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0LiAgQWxsIHByb3BlcnRpZXMgb2YgdGhpcworICAgICAqIG9iamVjdCBhcmUgZHVwbGljYXRlZCBpbiB0aGUgbmV3IG9iamVjdCwgaW5jbHVkaW5nIHRoZSBjbG9uaW5nIG9mIGFueQorICAgICAqIHtAbGluayBDaGFyYWN0ZXJJdGVyYXRvcn0gdGhhdCB3YXMgcGFzc2VkIGluIHRvIHRoZSBjb25zdHJ1Y3RvcgorICAgICAqIG9yIHRvIHtAbGluayAjc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvcikgc2V0VGV4dH0uCisgICAgICogSG93ZXZlciwgdGhlIHRleHQgc3RvcmFnZSB1bmRlcmx5aW5nCisgICAgICogdGhlIDx0dD5DaGFyYWN0ZXJJdGVyYXRvcjwvdHQ+IGlzIG5vdCBkdXBsaWNhdGVkIHVubGVzcyB0aGUKKyAgICAgKiBpdGVyYXRvcidzIDx0dD5jbG9uZTwvdHQ+IG1ldGhvZCBkb2VzIHNvLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOb3JtYWxpemVyIGNvcHkgPSAoTm9ybWFsaXplcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIGNvcHkudGV4dCA9IChVQ2hhcmFjdGVySXRlcmF0b3IpIHRleHQuY2xvbmUoKTsKKyAgICAgICAgICAgIC8vY2xvbmUgdGhlIGludGVybmFsIGJ1ZmZlcgorICAgICAgICAgICAgaWYgKGJ1ZmZlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY29weS5idWZmZXIgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlciwwLGNvcHkuYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY29weTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdGF0aWMgVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgICBUaGUgY29tcG9zZWQgc3RyaW5nICAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCkgeworICAgICAgICByZXR1cm4gY29tcG9zZShzdHIsY29tcGF0LDApOyAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgICBUaGUgb25seSByZWNvZ25pemVkIG9wdGlvbiBpcyBVTklDT0RFXzNfMgorICAgICAqIEByZXR1cm4gU3RyaW5nICAgIFRoZSBjb21wb3NlZCBzdHJpbmcgICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb21wb3NlKFN0cmluZyBzdHIsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucykgeworICAgICAgICAgICAKKyAgICAgICAgY2hhcltdIGRlc3QgPSBuZXcgY2hhcltzdHIubGVuZ3RoKCkqTUFYX0JVRl9TSVpFX0NPTVBPU0VdOworICAgICAgICBpbnQgZGVzdFNpemU9MDsKKyAgICAgICAgY2hhcltdIHNyYyA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBVbmljb2RlU2V0IG54ID0gTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucyk7CisKKyAgICAgICAgLyogcmVzZXQgb3B0aW9ucyBiaXRzIHRoYXQgc2hvdWxkIG9ubHkgYmUgc2V0IGhlcmUgb3IgaW5zaWRlIGNvbXBvc2UoKSAqLworICAgICAgICBvcHRpb25zJj1+KE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfU0VUU19NQVNLfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTKTsKKworICAgICAgICBpZihjb21wYXQpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUOworICAgICAgICB9CisKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBkZXN0U2l6ZT1Ob3JtYWxpemVySW1wbC5jb21wb3NlKHNyYywwLHNyYy5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsMCxkZXN0Lmxlbmd0aCxvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCk7CisgICAgICAgICAgICBpZihkZXN0U2l6ZTw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsZGVzdFNpemUpOyAgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltkZXN0U2l6ZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IEEgY2hhciBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgbm9ybWFsaXplZCB0ZXh0LgorICAgICAqIEBwYXJhbSBjb21wYXQgSWYgdHJ1ZSB0aGUgY2hhciBhcnJheSB3aWxsIGJlIGNvbXBvc2VkIGFjY29kaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GS0MgcnVsZXMgYW5kIGlmIGZhbHNlIHdpbGwgYmUgY29tcG9zZWQgYWNjb3JkaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXphdGlvbiBvcHRpb25zLCBPUmVkIHRvZ2V0aGVyICgwIGZvciBubyBvcHRpb25zKS4KKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICByZXN1bHQsIHRoZSBvdXRwdXQgd2FzIHRydW5jYXRlZC4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGFyZ2V0Lmxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIAorICAgICAqICAgICAgICAgICAgIHJlcXVpcmVkIGxlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAgCisgICAgICovICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcG9zZShjaGFyW10gc291cmNlLGNoYXJbXSB0YXJnZXQsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucykgeworICAgICAgICBVbmljb2RlU2V0IG54ID0gTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucyk7CisKKyAgICAgICAgLyogcmVzZXQgb3B0aW9ucyBiaXRzIHRoYXQgc2hvdWxkIG9ubHkgYmUgc2V0IGhlcmUgb3IgaW5zaWRlIGNvbXBvc2UoKSAqLworICAgICAgICBvcHRpb25zJj1+KE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfU0VUU19NQVNLfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTKTsKKworICAgICAgICBpZihjb21wYXQpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmNvbXBvc2Uoc291cmNlLDAsc291cmNlLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyxueCk7CisgICAgICAgIGlmKGxlbmd0aDw9dGFyZ2V0Lmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGNoYXIgYXJyYXkgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgIFN0YXJ0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gc3JjTGltaXQgIExpbWl0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gZGVzdCAgICAgIFRoZSBjaGFyIGJ1ZmZlciB0byBmaWxsIGluCisgICAgICogQHBhcmFtIGRlc3RTdGFydCBTdGFydCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyICAKKyAgICAgKiBAcGFyYW0gZGVzdExpbWl0IEVuZCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgY29tcG9zZWQgYWNjb2RpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZDIHJ1bGVzLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0YXJnZXQubGVuZ3RoIGlzIGxlc3MgdGhhbiB0aGUgCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoIAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKi8gICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wb3NlKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKSB7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKworICAgICAgICAvKiByZXNldCBvcHRpb25zIGJpdHMgdGhhdCBzaG91bGQgb25seSBiZSBzZXQgaGVyZSBvciBpbnNpZGUgY29tcG9zZSgpICovCisgICAgICAgIG9wdGlvbnMmPX4oTm9ybWFsaXplckltcGwuT1BUSU9OU19TRVRTX01BU0t8Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QQVR8Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QT1NFX0NPTlRJR1VPVVMpOworCisgICAgICAgIGlmKGNvbXBhdCkgeworICAgICAgICAgICAgb3B0aW9uc3w9Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QQVQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuZ3RoID0gTm9ybWFsaXplckltcGwuY29tcG9zZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucywgbngpOworICAgICAgICBpZihsZW5ndGg8PShkZXN0TGltaXQtZGVzdFN0YXJ0KSkgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVGX1NJWkVfQ09NUE9TRSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9CVUZfU0laRV9ERUNPTVBPU0UgPSAzOworICAgIAorICAgIC8qKgorICAgICAqIERlY29tcG9zZSBhIHN0cmluZy4KKyAgICAgKiBUaGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICAgIFRoZSBzdHJpbmcgdG8gZGVjb21wb3NlLgorICAgICAqIEBwYXJhbSBjb21wYXQgICAgSWYgdHJ1ZSB0aGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIAorICAgICAqICAgICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgIFRoZSBkZWNvbXBvc2VkIHN0cmluZyAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCkgeworICAgICAgICByZXR1cm4gZGVjb21wb3NlKHN0cixjb21wYXQsMCk7ICAgICAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERlY29tcG9zZSBhIHN0cmluZy4KKyAgICAgKiBUaGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICBUaGUgc3RyaW5nIHRvIGRlY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBkZWNvbXBvc2VkIGFjY29kaW5nIHRvIE5GS0QgCisgICAgICogICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCAKKyAgICAgKiAgICAgICAgICAgICAgICAgcnVsZXMuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiBTdHJpbmcgVGhlIGRlY29tcG9zZWQgc3RyaW5nIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgCisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbc3RyLmxlbmd0aCgpKk1BWF9CVUZfU0laRV9ERUNPTVBPU0VdOworICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGRlc3RTaXplPTA7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBkZXN0U2l6ZT1Ob3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3RyLnRvQ2hhckFycmF5KCksMCxzdHIubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCx0cmFpbENDLCBueCk7CisgICAgICAgICAgICBpZihkZXN0U2l6ZTw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsZGVzdFNpemUpOyAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW2Rlc3RTaXplXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVjb21wb3NlIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBkZWNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gZGVjb21wb3NlLgorICAgICAqIEBwYXJhbSB0YXJnZXQgQSBjaGFyIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBub3JtYWxpemVkIHRleHQuCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIAorICAgICAqICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GRCBydWxlcy4KKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICByZXN1bHQsdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgdGhhbgorICAgICAqICAgICAgICAgICAgIHRoZSByZXF1aXJlZCBsZW5ndGggICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBkZWNvbXBvc2UoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50W10gdHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmRlY29tcG9zZShzb3VyY2UsMCxzb3VyY2UubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCwwLHRhcmdldC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0LHRyYWlsQ0MsbngpOworICAgICAgICBpZihsZW5ndGg8PXRhcmdldC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGRlY29tcG9zZWQgdG8gYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG1vZGUuCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgY2hhciBhcnJheSB0byBjb21wb3NlLgorICAgICAqIEBwYXJhbSBzcmNTdGFydCAgU3RhcnQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBzcmNMaW1pdCAgTGltaXQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBkZXN0ICAgICAgVGhlIGNoYXIgYnVmZmVyIHRvIGZpbGwgaW4KKyAgICAgKiBAcGFyYW0gZGVzdFN0YXJ0IFN0YXJ0IGluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgIAorICAgICAqIEBwYXJhbSBkZXN0TGltaXQgRW5kIGluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIKKyAgICAgKiBAcGFyYW0gY29tcGF0IElmIHRydWUgdGhlIGNoYXIgYXJyYXkgd2lsbCBiZSBkZWNvbXBvc2VkIGFjY29kaW5nIHRvIE5GS0QgCisgICAgICogICAgICAgICAgICAgICAgcnVsZXMgYW5kIGlmIGZhbHNlIHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZEIHJ1bGVzLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCx0aGUgb3V0cHV0IHdhcyB0cnVuY2F0ZWQuCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRoZSB0YXJnZXQgY2FwYWNpdHkgaXMgbGVzcyB0aGFuCisgICAgICogICAgICAgICAgICAgdGhlIHJlcXVpcmVkIGxlbmd0aCAgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRlY29tcG9zZShjaGFyW10gc3JjLGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50W10gdHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmRlY29tcG9zZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCx0cmFpbENDLG54KTsKKyAgICAgICAgaWYobGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIG1ha2VGQ0QoU3RyaW5nIHNyYyxpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgc3JjTGVuID0gc3JjLmxlbmd0aCgpOworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyW01BWF9CVUZfU0laRV9ERUNPTVBPU0Uqc3JjTGVuXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBsZW5ndGggPSBOb3JtYWxpemVySW1wbC5tYWtlRkNEKHNyYy50b0NoYXJBcnJheSgpLDAsc3JjTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LDAsZGVzdC5sZW5ndGgsbngpOworICAgICAgICAgICAgaWYobGVuZ3RoIDw9IGRlc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZGVzdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5vcm1hbGl6ZXMgYSA8dHQ+U3RyaW5nPC90dD4gdXNpbmcgdGhlIGdpdmVuIG5vcm1hbGl6YXRpb24gb3BlcmF0aW9uLgorICAgICAqIDxwPgorICAgICAqIFRoZSA8dHQ+b3B0aW9uczwvdHQ+IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb3B0aW9uYWwKKyAgICAgKiA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGZlYXR1cmVzIGFyZSB0byBiZSBlbmFibGVkIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpcyB7QGxpbmsgI1VOSUNPREVfM18yfS4KKyAgICAgKiBJZiB5b3Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgc3RhbmRhcmQKKyAgICAgKiBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMsIHVzZSAwIGZvciB0aGlzIGFyZ3VtZW50LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgdGhlIGlucHV0IHN0cmluZyB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBwYXJhbSBtb2RlICAgICAgdGhlIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIEBwYXJhbSBvcHRpb25zICAgdGhlIG9wdGlvbmFsIGZlYXR1cmVzIHRvIGJlIGVuYWJsZWQuCisgICAgICogQHJldHVybiBTdHJpbmcgICB0aGUgbm9ybWFsaXplZCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHN0ciwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5ub3JtYWxpemUoc3RyLG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIG5vcm1hbGl6ZWQgYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG5vcm1hbGl6YXRpb24gCisgICAgICogbW9kZSBhbmQgb3B0aW9ucy4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgICBUaGUgc3RyaW5nIHRvIG5vcm1hbGl6ZS4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlOyBvbmUgb2YgTm9ybWFsaXplci5OT05FLCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsIE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVyLk5GS0MsIAorICAgICAqICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsIE5vcm1hbGl6ZXIuREVGQVVMVAorICAgICAqIEByZXR1cm4gdGhlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHNyYyxNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzcmMsIG1vZGUsIDApOyAgICAKKyAgICB9CisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBub3JtYWxpemVkIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBub3JtYWxpemF0aW9uIAorICAgICAqIG1vZGUgYW5kIG9wdGlvbnMuCisgICAgICogQHBhcmFtIHNvdXJjZSBUaGUgY2hhciBhcnJheSB0byBub3JtYWxpemUuCisgICAgICogQHBhcmFtIHRhcmdldCBBIGNoYXIgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIG5vcm1hbGl6ZWQgdGV4dC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGU7IG9uZSBvZiBOb3JtYWxpemVyLk5PTkUsIAorICAgICAqICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZELCBOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplci5ORktDLCAKKyAgICAgKiAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsIE5vcm1hbGl6ZXIuREVGQVVMVAorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gICAgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgCisgICAgICogICAgICAgICAgICAgICAgdGhhbiB0aGUgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi42ICAgICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBub3JtYWxpemUoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBNb2RlICBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgbGVuZ3RoID0gbm9ybWFsaXplKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCxtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgaWYobGVuZ3RoPD10YXJnZXQubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBub3JtYWxpemVkIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBub3JtYWxpemF0aW9uCisgICAgICogbW9kZSBhbmQgb3B0aW9ucy4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBjaGFyIGFycmF5IHRvIGNvbXBvc2UuCisgICAgICogQHBhcmFtIHNyY1N0YXJ0ICBTdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHNyY0xpbWl0ICBMaW1pdCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIGRlc3QgICAgICBUaGUgY2hhciBidWZmZXIgdG8gZmlsbCBpbgorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgU3RhcnQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciAgCisgICAgICogQHBhcmFtIGRlc3RMaW1pdCBFbmQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBtb2RlICAgICAgVGhlIG5vcm1hbGl6YXRpb24gbW9kZTsgb25lIG9mIE5vcm1hbGl6ZXIuTk9ORSwgCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsIE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVyLk5GS0MsIAorICAgICAqICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLRCwgTm9ybWFsaXplci5ERUZBVUxUCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuIAorICAgICAqIEByZXR1cm4gaW50ICAgICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gICAgICAgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIAorICAgICAqICAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiB0aGUgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi42ICAgIAorICAgICAqLyAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBub3JtYWxpemUoY2hhcltdIHNyYyxpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsIGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgIG1vZGUsIGludCBvcHRpb25zKSB7CisgICAgICAgIGludCBsZW5ndGggPSBtb2RlLm5vcm1hbGl6ZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LCBvcHRpb25zKTsKKyAgICAgICAKKyAgICAgICAgaWYobGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBjb2RlcG9pbnQgYWNjb2RpbmcgdG8gdGhlIGdpdmVuIG1vZGUKKyAgICAgKiBAcGFyYW0gY2hhcjMyICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMgorICAgICAqIEByZXR1cm4gU3RyaW5nICAgVGhlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICogQHNlZSAjVU5JQ09ERV8zXzIKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoaW50IGNoYXIzMiwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKFVURjE2LnZhbHVlT2YoY2hhcjMyKSwgbW9kZSwgb3B0aW9ucyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVpbmllbmNlIG1ldGhvZCB0byBub3JtYWxpemUgYSBjb2RlcG9pbnQgYWNjb2RpbmcgdG8gdGhlIGdpdmVuIG1vZGUKKyAgICAgKiBAcGFyYW0gY2hhcjMyICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgIFRoZSBub3JtYWxpemVkIHN0cmluZworICAgICAqIEBzZWUgI1VOSUNPREVfM18yICAgICAgICAgICAgICAgIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIC8vIFRPRE86IGFjdHVhbGx5IGRvIHRoZSBvcHRpbWl6YXRpb24gd2hlbiB0aGUgZ3V0cyBvZiBOb3JtYWxpemVyIGFyZSAKKyAgICAvLyB1cGdyYWRlZCAtLWhhcyBqdXN0IGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZShpbnQgY2hhcjMyLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNoYXIzMiksIG1vZGUsIDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIG1vZGUgICAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcmV0dXJuICAgICAgICAgUmV0dXJuIGNvZGUgdG8gc3BlY2lmeSBpZiB0aGUgdGV4dCBpcyBub3JtYWxpemVkIG9yIG5vdCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTyBvciBOb3JtYWxpemVyLk1BWUJFKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKCBTdHJpbmcgc291cmNlLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG1vZGUucXVpY2tDaGVjayhzb3VyY2UudG9DaGFyQXJyYXkoKSwwLHNvdXJjZS5sZW5ndGgoKSx0cnVlLG51bGwpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIG1vZGUgICAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAgCisgICAgICogQHJldHVybiAgICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgICAgICAoTm9ybWFsaXplci5ZRVMsIE5vcm1hbGl6ZXIuTk8gb3IgTm9ybWFsaXplci5NQVlCRSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayggU3RyaW5nIHNvdXJjZSwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZS50b0NoYXJBcnJheSgpLDAsc291cmNlLmxlbmd0aCgpLHRydWUsTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIEFycmF5IG9mIGNoYXJhY3RlcnMgZm9yIGRldGVybWluaW5nIGlmIGl0IGlzIGluIGEgCisgICAgICogICAgICAgICAgICAgICAgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbW9kZSAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQyxOb3JtYWxpemVyLk5GS0QpCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBPcHRpb25zIGZvciB1c2Ugd2l0aCBleGNsdXNpb24gc2V0IGFuIHRhaWxvcmVkIE5vcm1hbGl6YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9ubHkgb3B0aW9uIHRoYXQgaXMgY3VycmVudGx5IHJlY29nbml6ZWQgaXMgVU5JQ09ERV8zXzIKKyAgICAgKiBAcmV0dXJuICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yIE5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNvdXJjZSwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsdHJ1ZSwgTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtaW5nIHF1aWNrIGNoZWNrIG9uIGEgc3RyaW5nLCB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGUgc3RyaW5nIGlzIAorICAgICAqIGluIGEgcGFydGljdWxhciBub3JtYWxpemF0aW9uIGZvcm1hdC4KKyAgICAgKiBUaHJlZSB0eXBlcyBvZiByZXN1bHQgY2FuIGJlIHJldHVybmVkIE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yCisgICAgICogTm9ybWFsaXplci5NQVlCRS4gUmVzdWx0IE5vcm1hbGl6ZXIuWUVTIGluZGljYXRlcyB0aGF0IHRoZSBhcmd1bWVudAorICAgICAqIHN0cmluZyBpcyBpbiB0aGUgZGVzaXJlZCBub3JtYWxpemVkIGZvcm1hdCwgTm9ybWFsaXplci5OTyBkZXRlcm1pbmVzIHRoYXQKKyAgICAgKiBhcmd1bWVudCBzdHJpbmcgaXMgbm90IGluIHRoZSBkZXNpcmVkIG5vcm1hbGl6ZWQgZm9ybWF0LiBBIAorICAgICAqIE5vcm1hbGl6ZXIuTUFZQkUgcmVzdWx0IGluZGljYXRlcyB0aGF0IGEgbW9yZSB0aG9yb3VnaCBjaGVjayBpcyByZXF1aXJlZCwgCisgICAgICogdGhlIHVzZXIgbWF5IGhhdmUgdG8gcHV0IHRoZSBzdHJpbmcgaW4gaXRzIG5vcm1hbGl6ZWQgZm9ybSBhbmQgY29tcGFyZSAKKyAgICAgKiB0aGUgcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIHN0YXJ0ICAgICB0aGUgc3RhcnQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBsaW1pdCAgICAgdGhlIGxpbWl0IGluZGV4IG9mIHRoZSBzb3VyY2UgaXQgaXMgZXF1YWwgdG8gdGhlIGxlbmd0aAorICAgICAqIEBwYXJhbSBtb2RlICAgICAgbm9ybWFsaXphdGlvbiBmb3JtYXQgKE5vcm1hbGl6ZXIuTkZDLE5vcm1hbGl6ZXIuTkZELCAgCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5NQVlCRSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzb3VyY2UsaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIE1vZGUgbW9kZSxpbnQgb3B0aW9ucykgeyAgICAgICAKKyAgICAgICAgcmV0dXJuIG1vZGUucXVpY2tDaGVjayhzb3VyY2Usc3RhcnQsbGltaXQsdHJ1ZSxOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKSk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIG1ldGhvZHMgKGZvciBub3cpCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0IGlmIGEgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gbm9ybWFsaXphdGlvbiBmb3JtLgorICAgICAqIFRoaXMgaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgdG8gc291cmNlLmVxdWFscyhub3JtYWxpemUoc291cmNlLCBtb2RlKSkuCisgICAgICoKKyAgICAgKiBVbmxpa2UgcXVpY2tDaGVjaygpLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYSBkZWZpbml0aXZlIHJlc3VsdCwKKyAgICAgKiBuZXZlciBhICJtYXliZSIuCisgICAgICogRm9yIE5GRCwgTkZLRCwgYW5kIEZDRCwgYm90aCBmdW5jdGlvbnMgd29yayBleGFjdGx5IHRoZSBzYW1lLgorICAgICAqIEZvciBORkMgYW5kIE5GS0Mgd2hlcmUgcXVpY2tDaGVjayBtYXkgcmV0dXJuICJtYXliZSIsIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAqIHBlcmZvcm0gZnVydGhlciB0ZXN0cyB0byBhcnJpdmUgYXQgYSB0cnVlL2ZhbHNlIHJlc3VsdC4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgdG8gc2VlIGlmIAorICAgICAqICAgICAgICAgICAgICAgICAgIGl0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgICAgIFRoZSBzdHJhcnQgaW5kZXggaW4gdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBsaW1pdCAgICAgVGhlIGxpbWl0IGluZGV4IGluIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIHRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAKKyAgICAgKiBAcmV0dXJuIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGluIHRoZQorICAgICAqICAgICAgICAgIm1vZGUiIG5vcm1hbGl6YXRpb24gZm9ybQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05vcm1hbGl6ZWQoY2hhcltdIHNyYyxpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIE1vZGUgbW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gKG1vZGUucXVpY2tDaGVjayhzcmMsc3RhcnQsbGltaXQsZmFsc2UsTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpPT1ZRVMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBNZXRob2QKKyAgICAgKiBAcGFyYW0gc3RyICAgICAgIHRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgY2hlY2tlZCB0byBzZWUgaWYgaXQgaXMgCisgICAgICogICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBtb2RlICAgICAgdGhlIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIEBwYXJhbSBvcHRpb25zICAgT3B0aW9ucyBmb3IgdXNlIHdpdGggZXhjbHVzaW9uIHNldCBhbiB0YWlsb3JlZCBOb3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvbmx5IG9wdGlvbiB0aGF0IGlzIGN1cnJlbnRseSByZWNvZ25pemVkIGlzIFVOSUNPREVfM18yICAgCisgICAgICogQHNlZSAjaXNOb3JtYWxpemVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTm9ybWFsaXplZChTdHJpbmcgc3RyLCBNb2RlIG1vZGUsIGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiAobW9kZS5xdWlja0NoZWNrKHN0ci50b0NoYXJBcnJheSgpLDAsc3RyLmxlbmd0aCgpLGZhbHNlLE5vcm1hbGl6ZXJJbXBsLmdldE5YKG9wdGlvbnMpKT09WUVTKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgTWV0aG9kCisgICAgICogQHBhcmFtIGNoYXIzMiAgICB0aGUgaW5wdXQgY29kZSBwb2ludCB0byBiZSBjaGVja2VkIHRvIHNlZSBpZiBpdCBpcyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkCisgICAgICogQHBhcmFtIG1vZGUgICAgICB0aGUgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBPcHRpb25zIGZvciB1c2Ugd2l0aCBleGNsdXNpb24gc2V0IGFuIHRhaWxvcmVkIE5vcm1hbGl6YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9ubHkgb3B0aW9uIHRoYXQgaXMgY3VycmVudGx5IHJlY29nbml6ZWQgaXMgVU5JQ09ERV8zXzIgICAgCisgICAgICoKKyAgICAgKiBAc2VlICNpc05vcm1hbGl6ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb3JtYWxpemVkKGludCBjaGFyMzIsIE1vZGUgbW9kZSxpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gaXNOb3JtYWxpemVkKFVURjE2LnZhbHVlT2YoY2hhcjMyKSwgbW9kZSwgb3B0aW9ucyk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKgorICAgICAqIENhbm9uaWNhbCBlcXVpdmFsZW5jZSBiZXR3ZWVuIHR3byBzdHJpbmdzIGlzIGRlZmluZWQgYXMgdGhlaXIgbm9ybWFsaXplZAorICAgICAqIGZvcm1zIChORkQgb3IgTkZDKSBiZWluZyBpZGVudGljYWwuCisgICAgICogVGhpcyBmdW5jdGlvbiBjb21wYXJlcyBzdHJpbmdzIGluY3JlbWVudGFsbHkgaW5zdGVhZCBvZiBub3JtYWxpemluZworICAgICAqIChhbmQgb3B0aW9uYWxseSBjYXNlLWZvbGRpbmcpIGJvdGggc3RyaW5ncyBlbnRpcmVseSwKKyAgICAgKiBpbXByb3ZpbmcgcGVyZm9ybWFuY2Ugc2lnbmlmaWNhbnRseS4KKyAgICAgKgorICAgICAqIEJ1bGsgbm9ybWFsaXphdGlvbiBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB0aGUgc3RyaW5ncyBkbyBub3QgZnVsZmlsbCB0aGUgCisgICAgICogRkNEIGNvbmRpdGlvbnMuIE9ubHkgaW4gdGhpcyBjYXNlLCBhbmQgb25seSBpZiB0aGUgc3RyaW5ncyBhcmUgcmVsYXRpdmVseSAKKyAgICAgKiBsb25nLCBpcyBtZW1vcnkgYWxsb2NhdGVkIHRlbXBvcmFyaWx5LgorICAgICAqIEZvciBGQ0Qgc3RyaW5ncyBhbmQgc2hvcnQgbm9uLUZDRCBzdHJpbmdzIHRoZXJlIGlzIG5vIG1lbW9yeSBhbGxvY2F0aW9uLgorICAgICAqCisgICAgICogU2VtYW50aWNhbGx5LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIHN0cmNtcFtDb2RlUG9pbnRPcmRlcl0oZm9sZENhc2UoTkZEKHMxKSksIGZvbGRDYXNlKE5GRChzMikpKQorICAgICAqIHdoZXJlIGNvZGUgcG9pbnQgb3JkZXIgYW5kIGZvbGRDYXNlIGFyZSBhbGwgb3B0aW9uYWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgICAgICAgIEZpcnN0IHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHMxU3RhcnQgICBzdGFydCBpbmRleCBvZiBzb3VyY2UKKyAgICAgKiBAcGFyYW0gczFMaW1pdCAgIGxpbWl0IG9mIHRoZSBzb3VyY2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBzMiAgICAgICAgU2Vjb25kIHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHMyU3RhcnQgICBzdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHMyTGltaXQgICBsaW1pdCBvZiB0aGUgc291cmNlCisgICAgICogCisgICAgICogQHBhcmFtIG9wdGlvbnMgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogICAtIEZPTERfQ0FTRV9ERUZBVUxUIG9yIDAgaXMgdXNlZCBmb3IgZGVmYXVsdCBvcHRpb25zOgorICAgICAqICAgICBDYXNlLXNlbnNpdGl2ZSBjb21wYXJpc29uIGluIGNvZGUgdW5pdCBvcmRlciwgYW5kIHRoZSBpbnB1dCBzdHJpbmdzCisgICAgICogICAgIGFyZSBxdWljay1jaGVja2VkIGZvciBGQ0QuCisgICAgICoKKyAgICAgKiAgIC0gSU5QVVRfSVNfRkNECisgICAgICogICAgIFNldCBpZiB0aGUgY2FsbGVyIGtub3dzIHRoYXQgYm90aCBzMSBhbmQgczIgZnVsZmlsbCB0aGUgRkNEIAorICAgICAqICAgICBjb25kaXRpb25zLklmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKgorICAgICAqIEByZXR1cm4gPDAgb3IgMCBvciA+MCBhcyB1c3VhbCBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCisgICAgICoKKyAgICAgKiBAc2VlICNub3JtYWxpemUKKyAgICAgKiBAc2VlICNGQ0QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKGNoYXJbXSBzMSwgaW50IHMxU3RhcnQsIGludCBzMUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCwgaW50IHMyTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gaW50ZXJuYWxDb21wYXJlKHMxLCBzMVN0YXJ0LCBzMUxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMiwgczJTdGFydCwgczJMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfSAKKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgIC0gRk9MRF9DQVNFX0RFRkFVTFQgb3IgMCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6CisgICAgICogICAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gY29kZSB1bml0IG9yZGVyLCBhbmQgdGhlIGlucHV0IHN0cmluZ3MKKyAgICAgKiAgICAgYXJlIHF1aWNrLWNoZWNrZWQgZm9yIEZDRC4KKyAgICAgKgorICAgICAqICAgLSBJTlBVVF9JU19GQ0QKKyAgICAgKiAgICAgU2V0IGlmIHRoZSBjYWxsZXIga25vd3MgdGhhdCBib3RoIHMxIGFuZCBzMiBmdWxmaWxsIHRoZSBGQ0QgCisgICAgICogICAgIGNvbmRpdGlvbnMuIElmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgIAorICAgICAgICByZXR1cm4gY29tcGFyZShzMS50b0NoYXJBcnJheSgpLDAsczEubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgIHMyLnRvQ2hhckFycmF5KCksMCxzMi5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgIC0gRk9MRF9DQVNFX0RFRkFVTFQgb3IgMCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6CisgICAgICogICAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gY29kZSB1bml0IG9yZGVyLCBhbmQgdGhlIGlucHV0IHN0cmluZ3MKKyAgICAgKiAgICAgYXJlIHF1aWNrLWNoZWNrZWQgZm9yIEZDRC4KKyAgICAgKgorICAgICAqICAgLSBJTlBVVF9JU19GQ0QKKyAgICAgKiAgICAgU2V0IGlmIHRoZSBjYWxsZXIga25vd3MgdGhhdCBib3RoIHMxIGFuZCBzMiBmdWxmaWxsIHRoZSBGQ0QgCisgICAgICogICAgIGNvbmRpdGlvbnMuIElmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShjaGFyW10gczEsIGNoYXJbXSBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUoczEsMCxzMS5sZW5ndGgsczIsMCxzMi5sZW5ndGgsb3B0aW9ucyk7CisgICAgfSAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGhhdmUgZmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogYnkgbm90IGFsbG9jYXRpbmcgYnVmZmVycy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyYSAgICB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBiZSBjaGVja2VkIGFnYWluc3QgdGhlCisgICAgICogQHBhcmFtIGNoYXIzMmIgICAgdGhlIHNlY29uZCBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIG9wdGlvbnMgICAgQSBiaXQgc2V0IG9mIG9wdGlvbnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKGludCBjaGFyMzJhLCBpbnQgY2hhcjMyYixpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gY29tcGFyZShVVEYxNi52YWx1ZU9mKGNoYXIzMmEpLCBVVEYxNi52YWx1ZU9mKGNoYXIzMmIpLCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGhhdmUgZmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogYnkgbm90IGFsbG9jYXRpbmcgYnVmZmVycy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyYSAgIHRoZSBmaXJzdCBjb2RlIHBvaW50IHRvIGJlIGNoZWNrZWQgYWdhaW5zdAorICAgICAqIEBwYXJhbSBzdHIyICAgICAgdGhlIHNlY29uZCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLy8gVE9ETzogYWN0dWFsbHkgZG8gdGhlIG9wdGltaXphdGlvbiB3aGVuIHRoZSBndXRzIG9mIE5vcm1hbGl6ZXIgYXJlIAorICAgIC8vIHVwZ3JhZGVkIC0taGFzIGp1c3QgZHVtYiBpbXBsZW1lbnRhdGlvbiBmb3Igbm93CisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShpbnQgY2hhcjMyYSwgU3RyaW5nIHN0cjIsIGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKFVURjE2LnZhbHVlT2YoY2hhcjMyYSksIHN0cjIsIG9wdGlvbnMpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENvbmNhdGVuYXRlIG5vcm1hbGl6ZWQgc3RyaW5ncywgbWFraW5nIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBhcyB3ZWxsLgorICAgICAqCisgICAgICogSWYgYm90aCB0aGUgbGVmdCBhbmQgdGhlIHJpZ2h0IHN0cmluZ3MgYXJlIGluCisgICAgICogdGhlIG5vcm1hbGl6YXRpb24gZm9ybSBhY2NvcmRpbmcgdG8gIm1vZGUiLAorICAgICAqIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlCisgICAgICoKKyAgICAgKiA8Y29kZT4KKyAgICAgKiAgICAgZGVzdD1ub3JtYWxpemUobGVmdCtyaWdodCwgbW9kZSkKKyAgICAgKiA8L2NvZGU+CisgICAgICoKKyAgICAgKiBXaXRoIHRoZSBpbnB1dCBzdHJpbmdzIGFscmVhZHkgYmVpbmcgbm9ybWFsaXplZCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgdXNlIG5leHQoKSBhbmQgcHJldmlvdXMoKQorICAgICAqIHRvIGZpbmQgdGhlIGFkamFjZW50IGVuZCBwaWVjZXMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICogT25seSB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGVzZSBlbmQgcGllY2VzIHdpbGwgYmUgbm9ybWFsaXplZCBhbmQKKyAgICAgKiB0aGVuIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSByZW1haW5pbmcgcGFydHMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICoKKyAgICAgKiBJdCBpcyBhbGxvd2VkIHRvIGhhdmUgZGVzdD09bGVmdCB0byBhdm9pZCBjb3B5aW5nIHRoZSBlbnRpcmUgbGVmdCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBMZWZ0IHNvdXJjZSBhcnJheSwgbWF5IGJlIHNhbWUgYXMgZGVzdC4KKyAgICAgKiBAcGFyYW0gbGVmdFN0YXJ0IHN0YXJ0IGluIHRoZSBsZWZ0IGFycmF5LgorICAgICAqIEBwYXJhbSBsZWZ0TGltaXQgbGltaXQgaW4gdGhlIGxlZnQgYXJyYXkgKD09bGVuZ3RoKQorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2UgYXJyYXkuCisgICAgICogQHBhcmFtIHJpZ2h0U3RhcnQgc3RhcnQgaW4gdGhlIHJpZ2h0IGFycmF5LgorICAgICAqIEBwYXJhbSByaWdodExpbWl0IGxpbWl0IGluIHRoZSByaWdodCBhcnJheSAoPT1sZW5ndGgpCisgICAgICogQHBhcmFtIGRlc3QgVGhlIG91dHB1dCBidWZmZXI7IGNhbiBiZSBudWxsIGlmIGRlc3RTdGFydD09ZGVzdExpbWl0PT0wIAorICAgICAqICAgICAgICAgICAgICBmb3IgcHVyZSBwcmVmbGlnaHRpbmcuCisgICAgICogQHBhcmFtIGRlc3RTdGFydCBzdGFydCBpbiB0aGUgZGVzdGluYXRpb24gYXJyYXkKKyAgICAgKiBAcGFyYW0gZGVzdExpbWl0IGxpbWl0IGluIHRoZSBkZXN0aW5hdGlvbiBhcnJheSAoPT1sZW5ndGgpCisgICAgICogQHBhcmFtIG1vZGUgVGhlIG5vcm1hbGl6YXRpb24gbW9kZS4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXphdGlvbiBvcHRpb25zLCBPUmVkIHRvZ2V0aGVyICgwIGZvciBubyBvcHRpb25zKS4KKyAgICAgKiBAcmV0dXJuIExlbmd0aCBvZiBvdXRwdXQgKG51bWJlciBvZiBjaGFycykgd2hlbiBzdWNjZXNzZnVsIG9yIAorICAgICAqICAgICAgICAgIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hvc2UgbWVzc2FnZSBoYXMgdGhlIHN0cmluZyAKKyAgICAgKiAgICAgICAgICAgICByZXByZXNlbnRhdGlvbiBvZiBkZXN0aW5hdGlvbiBjYXBhY2l0eSByZXF1aXJlZC4gCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRhcmdldCBjYXBhY2l0eSBpcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLyogQ29uY2F0ZW5hdGlvbiBvZiBub3JtYWxpemVkIHN0cmluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29uY2F0ZW5hdGUoY2hhcltdIGxlZnQsICBpbnQgbGVmdFN0YXJ0LCAgaW50IGxlZnRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gcmlnaHQsIGludCByaWdodFN0YXJ0LCBpbnQgcmlnaHRMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsICBpbnQgZGVzdFN0YXJ0LCAgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXI7CisgICAgICAgIAorICAgICAgICBpbnQgbGVmdEJvdW5kYXJ5LCByaWdodEJvdW5kYXJ5LCBkZXN0TGVuZ3RoOworICAgIAorICAgICAgICBpZihkZXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBjaGVjayBmb3Igb3ZlcmxhcHBpbmcgcmlnaHQgYW5kIGRlc3RpbmF0aW9uICovCisgICAgICAgIGlmIChyaWdodCA9PSBkZXN0ICYmIHJpZ2h0U3RhcnQgPCBkZXN0TGltaXQgJiYgZGVzdFN0YXJ0IDwgcmlnaHRMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigib3ZlcmxhcHBpbmcgcmlnaHQgYW5kIGRzdCByYW5nZXMiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBhbGxvdyBsZWZ0PT1kZXN0ICovCisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIElucHV0OiBsZWZ0WzAuLmxlZnRMZW5ndGhbICsgcmlnaHRbMC4ucmlnaHRMZW5ndGhbCisgICAgICAgICAqCisgICAgICAgICAqIEZpbmQgbm9ybWFsaXphdGlvbi1zYWZlIGJvdW5kYXJpZXMgbGVmdEJvdW5kYXJ5IGFuZCByaWdodEJvdW5kYXJ5CisgICAgICAgICAqIGFuZCBjb3B5IHRoZSBlbmQgcGFydHMgdG9nZXRoZXI6CisgICAgICAgICAqIGJ1ZmZlcj1sZWZ0W2xlZnRCb3VuZGFyeS4ubGVmdExlbmd0aFsgKyByaWdodFswLi5yaWdodEJvdW5kYXJ5WworICAgICAgICAgKgorICAgICAgICAgKiBkZXN0PWxlZnRbMC4ubGVmdEJvdW5kYXJ5WyArCisgICAgICAgICAqICAgICAgbm9ybWFsaXplKGJ1ZmZlcikgKworICAgICAgICAgKiAgICAgIHJpZ2h0W3JpZ2h0Qm91bmRhcnkuLnJpZ2h0TGVuZ3RoWworICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogZmluZCBhIG5vcm1hbGl6YXRpb24gYm91bmRhcnkgYXQgdGhlIGVuZCBvZiB0aGUgbGVmdCBzdHJpbmcKKyAgICAgICAgICogYW5kIGNvcHkgdGhlIGVuZCBwYXJ0IGludG8gdGhlIGJ1ZmZlcgorICAgICAgICAgKi8KKworICAgICAgICBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGxlZnQsIGxlZnRTdGFydCwgbGVmdExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpdGVyLnNldEluZGV4KGl0ZXIuZ2V0TGVuZ3RoKCkpOyAvKiBlbmQgb2YgbGVmdCBzdHJpbmcgKi8KKyAgICAgICAgY2hhcltdIGJ1ZmZlcj1uZXcgY2hhclsxMDBdOworICAgICAgICBpbnQgYnVmZmVyTGVuZ3RoOworICAgICAgICBidWZmZXJMZW5ndGg9cHJldmlvdXMoaXRlciwgYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCxtb2RlLGZhbHNlLG51bGwsb3B0aW9ucyk7CisgICAgICAgIAorICAgICAgICBsZWZ0Qm91bmRhcnk9aXRlci5nZXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgaWYoYnVmZmVyTGVuZ3RoPmJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSBuZXdCdWYgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoKjJdOworICAgICAgICAgICAgYnVmZmVyID0gbmV3QnVmOworICAgICAgICAgICAgbmV3QnVmID0gbnVsbDsgLy8gbnVsbCB0aGUgcmVmZXJlbmNlIGZvciBHQworICAgICAgICAgICAgLyoganVzdCBjb3B5IGZyb20gdGhlIGxlZnQgc3RyaW5nOiB3ZSBrbm93IHRoZSBib3VuZGFyeSBhbHJlYWR5ICovCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxlZnQsbGVmdEJvdW5kYXJ5LGJ1ZmZlciwwLGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogZmluZCBhIG5vcm1hbGl6YXRpb24gYm91bmRhcnkgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmlnaHQgc3RyaW5nCisgICAgICAgICAqIGFuZCBjb25jYXRlbmF0ZSB0aGUgYmVnaW5uaW5nIHBhcnQgdG8gdGhlIGJ1ZmZlcgorICAgICAgICAgKi8KKworICAgICAgICBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHJpZ2h0LCByaWdodFN0YXJ0LCByaWdodExpbWl0KTsKKyAgICAgICAgCisgICAgICAgIHJpZ2h0Qm91bmRhcnk9bmV4dChpdGVyLGJ1ZmZlcixidWZmZXJMZW5ndGgsIGJ1ZmZlci5sZW5ndGgtYnVmZmVyTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSwgZmFsc2UsbnVsbCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYoYnVmZmVyTGVuZ3RoPmJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSBuZXdCdWYgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoKjJdOworICAgICAgICAgICAgYnVmZmVyID0gbmV3QnVmOworICAgICAgICAgICAgbmV3QnVmID0gbnVsbDsgLy8gbnVsbCB0aGUgcmVmZXJlbmNlIGZvciBHQworICAgICAgICAgICAgLyoganVzdCBjb3B5IGZyb20gdGhlIHJpZ2h0IHN0cmluZzogd2Uga25vdyB0aGUgYm91bmRhcnkgYWxyZWFkeSAqLworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShyaWdodCxyaWdodEJvdW5kYXJ5LGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyTGVuZ3RoLHJpZ2h0Qm91bmRhcnkpOworICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyTGVuZ3RoKz1yaWdodEJvdW5kYXJ5OworICAgIAorICAgICAgICAvKiBjb3B5IGxlZnRbMC4ubGVmdEJvdW5kYXJ5WyB0byBkZXN0ICovCisgICAgICAgIGlmKGxlZnQhPWRlc3QgJiYgbGVmdEJvdW5kYXJ5PjAgJiYgKGRlc3RMaW1pdCk+MCkgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsZWZ0LDAsZGVzdCwwLCBNYXRoLm1pbihsZWZ0Qm91bmRhcnksZGVzdExpbWl0KSk7IAorICAgICAgICB9CisgICAgICAgIGRlc3RMZW5ndGg9bGVmdEJvdW5kYXJ5OworICAgIAorICAgICAgICAvKiBjb25jYXRlbmF0ZSB0aGUgbm9ybWFsaXphdGlvbiBvZiB0aGUgYnVmZmVyIHRvIGRlc3QgKi8KKyAgICAgICAgaWYoZGVzdExpbWl0PmRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGgrPU5vcm1hbGl6ZXIubm9ybWFsaXplKGJ1ZmZlciwwLGJ1ZmZlckxlbmd0aCxkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aCxkZXN0TGltaXQsbW9kZSxvcHRpb25zKTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdExlbmd0aCs9Tm9ybWFsaXplci5ub3JtYWxpemUoYnVmZmVyLCAwLCBidWZmZXJMZW5ndGgsbnVsbCwwLDAsbW9kZSxvcHRpb25zKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBjb25jYXRlbmF0ZSByaWdodFtyaWdodEJvdW5kYXJ5Li5yaWdodExlbmd0aFsgdG8gZGVzdCAqLworICAgICAgICByaWdodFN0YXJ0Kz1yaWdodEJvdW5kYXJ5OworICAgICAgICBpbnQgcmlnaHRMZW5ndGg9KHJpZ2h0TGltaXQtcmlnaHRTdGFydCk7CisgICAgICAgIGlmKHJpZ2h0TGVuZ3RoPjAgJiYgZGVzdExpbWl0PmRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocmlnaHQscmlnaHRTdGFydCxkZXN0LGRlc3RMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHJpZ2h0TGVuZ3RoLGRlc3RMZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgZGVzdExlbmd0aCs9cmlnaHRMZW5ndGg7CisgICAgICAgIAorICAgICAgICBpZihkZXN0TGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhkZXN0TGVuZ3RoKSk7CisgICAgICAgIH0gIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25jYXRlbmF0ZSBub3JtYWxpemVkIHN0cmluZ3MsIG1ha2luZyBzdXJlIHRoYXQgdGhlIHJlc3VsdCBpcyBub3JtYWxpemVkCisgICAgICogYXMgd2VsbC4KKyAgICAgKgorICAgICAqIElmIGJvdGggdGhlIGxlZnQgYW5kIHRoZSByaWdodCBzdHJpbmdzIGFyZSBpbgorICAgICAqIHRoZSBub3JtYWxpemF0aW9uIGZvcm0gYWNjb3JkaW5nIHRvICJtb2RlIiwKKyAgICAgKiB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZQorICAgICAqCisgICAgICogPGNvZGU+CisgICAgICogICAgIGRlc3Q9bm9ybWFsaXplKGxlZnQrcmlnaHQsIG1vZGUpCisgICAgICogPC9jb2RlPgorICAgICAqCisgICAgICogRm9yIGRldGFpbHMgc2VlIGNvbmNhdGVuYXRlIAorICAgICAqCisgICAgICogQHBhcmFtIGxlZnQgTGVmdCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKgorICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjY29uY2F0ZW5hdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb25jYXRlbmF0ZShjaGFyW10gbGVmdCwgY2hhcltdIHJpZ2h0LE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyWyhsZWZ0Lmxlbmd0aCtyaWdodC5sZW5ndGgpKiBNQVhfQlVGX1NJWkVfREVDT01QT1NFXTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBjb25jYXRlbmF0ZShsZWZ0LCAgMCwgbGVmdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQsIDAsIHJpZ2h0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsMCwgcmVzdWx0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDw9cmVzdWx0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHJlc3VsdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uY2F0ZW5hdGUgbm9ybWFsaXplZCBzdHJpbmdzLCBtYWtpbmcgc3VyZSB0aGF0IHRoZSByZXN1bHQgaXMgbm9ybWFsaXplZAorICAgICAqIGFzIHdlbGwuCisgICAgICoKKyAgICAgKiBJZiBib3RoIHRoZSBsZWZ0IGFuZCB0aGUgcmlnaHQgc3RyaW5ncyBhcmUgaW4KKyAgICAgKiB0aGUgbm9ybWFsaXphdGlvbiBmb3JtIGFjY29yZGluZyB0byAibW9kZSIsCisgICAgICogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKgorICAgICAqIDxjb2RlPgorICAgICAqICAgICBkZXN0PW5vcm1hbGl6ZShsZWZ0K3JpZ2h0LCBtb2RlKQorICAgICAqIDwvY29kZT4KKyAgICAgKgorICAgICAqIEZvciBkZXRhaWxzIHNlZSBjb25jYXRlbmF0ZQorICAgICAqCisgICAgICogQHBhcmFtIGxlZnQgTGVmdCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKgorICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjY29uY2F0ZW5hdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb25jYXRlbmF0ZShTdHJpbmcgbGVmdCwgU3RyaW5nIHJpZ2h0LE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyWyhsZWZ0Lmxlbmd0aCgpK3JpZ2h0Lmxlbmd0aCgpKSogTUFYX0JVRl9TSVpFX0RFQ09NUE9TRV07CisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gY29uY2F0ZW5hdGUobGVmdC50b0NoYXJBcnJheSgpLCAwLCBsZWZ0Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LnRvQ2hhckFycmF5KCksMCwgcmlnaHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LCAgICAgICAgICAgICAwLCByZXN1bHQubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUsIG9wdGlvbnMpOworICAgICAgICAgICAgaWYobGVuZ3RoPD1yZXN1bHQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcocmVzdWx0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBGQ19ORktDIGNsb3N1cmUgc2V0IGZyb20gdGhlIG5vcm1hbGl6YXRpb24gZGF0YQorICAgICAqIEBwYXJhbSBjIFRoZSBjb2RlIHBvaW50IHdob3NlIGNsb3N1cmUgc2V0IGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEBwYXJhbSBkZXN0IFRoZSBjaGFyIGFycmF5IHRvIHJlY2l2ZSB0aGUgY2xvc3VyZSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRGQ19ORktDX0Nsb3N1cmUoaW50IGMsY2hhcltdIGRlc3QpIHsKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZDX05GS0NfQ2xvc3VyZShjLGRlc3QpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBGQ19ORktDIGNsb3N1cmUgc2V0IGZyb20gdGhlIG5vcm1hbGl6YXRpb24gZGF0YQorICAgICAqIEBwYXJhbSBjIFRoZSB0aGUgY29kZSBwb2ludCB3aG9zZSBjbG9zdXJlIHNldCBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY2xvc3VyZSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RkNfTkZLQ19DbG9zdXJlKGludCBjKSB7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbMTBdOworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBnZXRGQ19ORktDX0Nsb3N1cmUoYyxkZXN0KTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSXRlcmF0aW9uIEFQSQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQtPgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisgICAgICAgIGlmKGJ1ZmZlclBvczxidWZmZXJMaW1pdCB8fCBuZXh0Tm9ybWFsaXplKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRDb2RlUG9pbnRBdChidWZmZXJQb3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gdGhlIG5vcm1hbGl6ZWQgdGV4dCBhbmQgYWR2YW5jZQorICAgICAqIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gYnkgb25lLiAgSWYgdGhlIGVuZAorICAgICAqIG9mIHRoZSB0ZXh0IGhhcyBhbHJlYWR5IGJlZW4gcmVhY2hlZCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICBpZihidWZmZXJQb3M8YnVmZmVyTGltaXQgfHwgIG5leHROb3JtYWxpemUoKSkgeworICAgICAgICAgICAgaW50IGM9Z2V0Q29kZVBvaW50QXQoYnVmZmVyUG9zKTsKKyAgICAgICAgICAgIGJ1ZmZlclBvcys9KGM+MHhGRkZGKSA/IDIgOiAxOworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQgYW5kIGRlY3JlbWVudAorICAgICAqIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gYnkgb25lLiAgSWYgdGhlIGJlZ2lubmluZworICAgICAqIG9mIHRoZSB0ZXh0IGhhcyBhbHJlYWR5IGJlZW4gcmVhY2hlZCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgaWYoYnVmZmVyUG9zPjAgfHwgcHJldmlvdXNOb3JtYWxpemUoKSkgeworICAgICAgICAgICAgaW50IGM9Z2V0Q29kZVBvaW50QXQoYnVmZmVyUG9zLTEpOworICAgICAgICAgICAgYnVmZmVyUG9zLT0oYz4weEZGRkYpID8gMiA6IDE7CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaW5kZXggdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gc2V0SW5kZXhPbmx5KHN0YXJ0SW5kZXgpKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgdGV4dC5zZXRJbmRleCgwKTsKKyAgICAgICAgY3VycmVudEluZGV4PW5leHRJbmRleD0wOworICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgdGV4dCB0aGF0IGlzIGJlaW5nIG5vcm1hbGl6ZWQsCisgICAgICogd2l0aG91dCBhbnkgaW1tZWRpYXRlIG5vcm1hbGl6YXRpb24uCisgICAgICogQWZ0ZXIgc2V0SW5kZXhPbmx5KCksIGdldEluZGV4KCkgd2lsbCByZXR1cm4gdGhlIHNhbWUgaW5kZXggdGhhdCBpcworICAgICAqIHNwZWNpZmllZCBoZXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBkZXNpcmVkIGluZGV4IGluIHRoZSBpbnB1dCB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4T25seShpbnQgaW5kZXgpIHsKKyAgICAgICAgdGV4dC5zZXRJbmRleChpbmRleCk7CisgICAgICAgIGN1cnJlbnRJbmRleD1uZXh0SW5kZXg9aW5kZXg7IC8vIHZhbGlkYXRlcyBpbmRleAorICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRpb24gcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQgdGhhdCBpcyBiZWluZyBub3JtYWxpemVkCisgICAgICogYW5kIHJldHVybiB0aGUgZmlyc3Qgbm9ybWFsaXplZCBjaGFyYWN0ZXIgYXQgdGhhdCBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gVGhpcyBtZXRob2Qgc2V0cyB0aGUgcG9zaXRpb24gaW4gdGhlIDxlbT5pbnB1dDwvZW0+IHRleHQsCisgICAgICogd2hpbGUge0BsaW5rICNuZXh0fSBhbmQge0BsaW5rICNwcmV2aW91c30gaXRlcmF0ZSB0aHJvdWdoIGNoYXJhY3RlcnMKKyAgICAgKiBpbiB0aGUgbm9ybWFsaXplZCA8ZW0+b3V0cHV0PC9lbT4uICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm90CisgICAgICogbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gY2hhcmFjdGVycyByZXR1cm5lZAorICAgICAqIGJ5IDx0dD5uZXh0PC90dD4gYW5kIDx0dD5wcmV2aW91czwvdHQ+IGFuZCB0aGUgaW5kaWNlcyBwYXNzZWQgdG8gYW5kCisgICAgICogcmV0dXJuZWQgZnJvbSA8dHQ+c2V0SW5kZXg8L3R0PiBhbmQge0BsaW5rICNnZXRJbmRleH0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBkZXNpcmVkIGluZGV4IGluIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICB0aGUgZmlyc3Qgbm9ybWFsaXplZCBjaGFyYWN0ZXIgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGl0ZXJhdGluZworICAgICAqICAgICAgICAgICAgZm9yd2FyZCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gaW5kZXguCisgICAgICoKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gaW5kZXggaXMgbGVzcyB0aGFuCisgICAgICogICAgICAgICAge0BsaW5rICNnZXRCZWdpbkluZGV4fSBvciBncmVhdGVyIHRoYW4ge0BsaW5rICNnZXRFbmRJbmRleH0uCisgICAgICogQHJldHVybiBUaGUgY29kZXBvaW50IGFzIGFuIGludAorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjIKKyAgICAgKiBAb2Jzb2xldGUgSUNVIDMuMgorICAgICAqLworICAgICAvLy9DTE9WRVI6T0ZGCisgICAgIHB1YmxpYyBpbnQgc2V0SW5kZXgoaW50IGluZGV4KSB7CisgICAgICAgICBzZXRJbmRleE9ubHkoaW5kZXgpOworICAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICAgfQorICAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCB0ZXh0LiBUaGlzIGlzIHRoZSBiZWdpbiAKKyAgICAgKiBpbmRleCBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIHN0YXJ0IChpLmUuIDApIG9mIHRoZSAKKyAgICAgKiA8dHQ+U3RyaW5nPC90dD4gb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMi4gVXNlIHN0YXJ0SW5kZXgoKSBpbnN0ZWFkLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc2VlICNzdGFydEluZGV4CisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gIFRoaXMgaXMgdGhlIGVuZCBpbmRleAorICAgICAqIG9mIHRoZSA8dHQ+Q2hhcmFjdGVySXRlcmF0b3I8L3R0PiBvciB0aGUgbGVuZ3RoIG9mIHRoZSA8dHQ+U3RyaW5nPC90dD4KKyAgICAgKiBvdmVyIHdoaWNoIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBpcyBpdGVyYXRpbmcKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yLiBVc2UgZW5kSW5kZXgoKSBpbnN0ZWFkLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc2VlICNlbmRJbmRleAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKSB7CisgICAgICAgIHJldHVybiBlbmRJbmRleCgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbm9ybWFsaXplZCB0ZXh0LT4gIFRoaXMgcmVzZXRzCisgICAgICogdGhlIDx0dD5Ob3JtYWxpemVyJ3M8L3R0PiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LT4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBmaXJzdCgpIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5vcm1hbGl6ZWQgdGV4dC0+ICBUaGlzIHJlc2V0cworICAgICAqIHRoZSA8dHQ+Tm9ybWFsaXplcidzPC90dD4gcG9zaXRpb24gdG8gYmUganVzdCBiZWZvcmUgdGhlCisgICAgICogdGhlIGlucHV0IHRleHQgY29ycmVzcG9uZGluZyB0byB0aGF0IG5vcm1hbGl6ZWQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIHRleHQuc2V0VG9MaW1pdCgpOworICAgICAgICBjdXJyZW50SW5kZXg9bmV4dEluZGV4PXRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgY2xlYXJCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQgdGhhdCBpcworICAgICAqIGJlaW5nIG5vcm1hbGl6ZWQuICBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaW4gYXBwbGljYXRpb25zIHN1Y2ggYXMKKyAgICAgKiBzZWFyY2hpbmcsIHdoZXJlIHlvdSBuZWVkIHRvIGJlIGFibGUgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBpbgorICAgICAqIHRoZSBpbnB1dCB0ZXh0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBnaXZlbiBub3JtYWxpemVkIG91dHB1dCBjaGFyYWN0ZXIuCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFRoaXMgbWV0aG9kIHNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSA8ZW0+aW5wdXQ8L2VtPiwgd2hpbGUKKyAgICAgKiB7QGxpbmsgI25leHR9IGFuZCB7QGxpbmsgI3ByZXZpb3VzfSBpdGVyYXRlIHRocm91Z2ggY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiA8ZW0+b3V0cHV0PC9lbT4uICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm90IG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZQorICAgICAqIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gY2hhcmFjdGVycyByZXR1cm5lZCBieSA8dHQ+bmV4dDwvdHQ+IGFuZAorICAgICAqIDx0dD5wcmV2aW91czwvdHQ+IGFuZCB0aGUgaW5kaWNlcyBwYXNzZWQgdG8gYW5kIHJldHVybmVkIGZyb20KKyAgICAgKiA8dHQ+c2V0SW5kZXg8L3R0PiBhbmQge0BsaW5rICNnZXRJbmRleH0uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICBpZihidWZmZXJQb3M8YnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV4dEluZGV4OworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCB0ZXh0LiBUaGlzIGlzIHRoZSBiZWdpbiAKKyAgICAgKiBpbmRleCBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIHN0YXJ0IChpLmUuIDApIG9mIHRoZSAKKyAgICAgKiA8dHQ+U3RyaW5nPC90dD4gb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHN0YXJ0SW5kZXgoKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGluZGV4IG9mIHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQtPiAgVGhpcyBpcyB0aGUgZW5kIGluZGV4CisgICAgICogb2YgdGhlIDx0dD5DaGFyYWN0ZXJJdGVyYXRvcjwvdHQ+IG9yIHRoZSBsZW5ndGggb2YgdGhlIDx0dD5TdHJpbmc8L3R0PgorICAgICAqIG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGlzIGl0ZXJhdGluZworICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBlbmRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0TGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByb3BlcnR5IGFjY2VzcyBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLyoqCisgICAgICogU2V0IHRoZSBub3JtYWxpemF0aW9uIG1vZGUgZm9yIHRoaXMgb2JqZWN0LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPklmIHRoZSBub3JtYWxpemF0aW9uIG1vZGUgaXMgY2hhbmdlZCB3aGlsZSBpdGVyYXRpbmcKKyAgICAgKiBvdmVyIGEgc3RyaW5nLCBjYWxscyB0byB7QGxpbmsgI25leHR9IGFuZCB7QGxpbmsgI3ByZXZpb3VzfSBtYXkKKyAgICAgKiByZXR1cm4gcHJldmlvdXNseSBidWZmZXJzIGNoYXJhY3RlcnMgaW4gdGhlIG9sZCBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiB1bnRpbCB0aGUgaXRlcmF0aW9uIGlzIGFibGUgdG8gcmUtc3luYyBhdCB0aGUgbmV4dCBiYXNlIGNoYXJhY3Rlci4KKyAgICAgKiBJdCBpcyBzYWZlc3QgdG8gY2FsbCB7QGxpbmsgI3NldFRleHQgc2V0VGV4dCgpfSwge0BsaW5rICNmaXJzdH0sCisgICAgICoge0BsaW5rICNsYXN0fSwgZXRjLiBhZnRlciBjYWxsaW5nIDx0dD5zZXRNb2RlPC90dD4uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIG5ld01vZGUgdGhlIG5ldyBtb2RlIGZvciB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4uCisgICAgICogVGhlIHN1cHBvcnRlZCBtb2RlcyBhcmU6CisgICAgICogPHVsPgorICAgICAqICA8bGk+e0BsaW5rICNDT01QT1NFfSAgICAgICAgLSBVbmljb2RlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aWlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IGNhbm9uaWNhbCBjb21wb3NpdGlvbi4KKyAgICAgKiAgPGxpPntAbGluayAjQ09NUE9TRV9DT01QQVR9IC0gVW5pY29kZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpaW9uCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbHdlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uCisgICAgICogIDxsaT57QGxpbmsgI0RFQ09NUH0gICAgICAgICAtIFVuaWNvZGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24KKyAgICAgKiAgPGxpPntAbGluayAjREVDT01QX0NPTVBBVH0gIC0gVW5pY29kZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24uCisgICAgICogIDxsaT57QGxpbmsgI05PX09QfSAgICAgICAgICAtIERvIG5vdGhpbmcgYnV0IHJldHVybiBjaGFyYWN0ZXJzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgdW5kZXJseWluZyBpbnB1dCB0ZXh0LgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kZShNb2RlIG5ld01vZGUpIHsKKyAgICAgICAgbW9kZSA9IG5ld01vZGU7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFzaWMgb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldE1vZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgTW9kZSBnZXRNb2RlKCkgeworICAgICAgICByZXR1cm4gbW9kZTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+J3Mgb3BlcmF0aW9uLgorICAgICAqIE9wdGlvbnMgZG8gbm90IGNoYW5nZSB0aGUgYmFzaWMgY29tcG9zaXRpb24gb3IgZGVjb21wb3NpdGlvbiBvcGVyYXRpb24KKyAgICAgKiB0aGF0IGlzIGJlaW5nIHBlcmZvcm1lZCAsIGJ1dCB0aGV5IGNvbnRyb2wgd2hldGhlcgorICAgICAqIGNlcnRhaW4gb3B0aW9uYWwgcG9ydGlvbnMgb2YgdGhlIG9wZXJhdGlvbiBhcmUgZG9uZS4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpczoKKyAgICAgKiA8cD4KKyAgICAgKiA8dWw+CisgICAgICogICA8bGk+e0BsaW5rICNVTklDT0RFXzNfMn0gLSBVc2UgTm9ybWFsaXphdGlvbiBjb25mb3JtaW5nIHRvIFVuaWNvZGUgdmVyc2lvbiAzLjIuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gICBvcHRpb24gIHRoZSBvcHRpb24gd2hvc2UgdmFsdWUgaXMgdG8gYmUgc2V0LgorICAgICAqIEBwYXJhbSAgIHZhbHVlICAgdGhlIG5ldyBzZXR0aW5nIGZvciB0aGUgb3B0aW9uLiAgVXNlIDx0dD50cnVlPC90dD4gdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgIHR1cm4gdGhlIG9wdGlvbiBvbiBhbmQgPHR0PmZhbHNlPC90dD4gdG8gdHVybiBpdCBvZmYuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRPcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbixib29sZWFuIHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSkgeworICAgICAgICAgICAgb3B0aW9ucyB8PSBvcHRpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvcHRpb25zICY9ICh+b3B0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYW4gb3B0aW9uIGlzIHR1cm5lZCBvbiBvciBvZmYuCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0T3B0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPcHRpb24oaW50IG9wdGlvbikgeworICAgICAgICBpZigob3B0aW9ucyAmIG9wdGlvbikhPTApIHsKKyAgICAgICAgICAgIHJldHVybiAxIDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlCisgICAgICogQHBhcmFtIGZpbGxJbiB0aGUgY2hhciBidWZmZXIgdG8gZmlsbCB0aGUgVVRGLTE2IHVuaXRzLgorICAgICAqICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRoZQorICAgICAqICAgICAgICAgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2UKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAc2VlICAgI2dldExlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluKSB7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFRleHQoZmlsbEluKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGVuZ3RoIG9mIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBpbnQgZ2V0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gdGV4dC5nZXRMZW5ndGgoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gYXMgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gdGV4dC5nZXRUZXh0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCBvdmVyIHdoaWNoIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiB3aWxsIGl0ZXJhdGUuCisgICAgICogVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgaW5wdXQgdGV4dC0+CisgICAgICogQHBhcmFtIG5ld1RleHQgICBUaGUgbmV3IHN0cmluZyB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nQnVmZmVyIG5ld1RleHQpIHsKKyAgICAgICAgCisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBuZXdJdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ld1RleHQpOworICAgICAgICBpZiAobmV3SXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDb3VsZCBub3QgY3JlYXRlIGEgbmV3IFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgICAgICB9ICAKKyAgICAgICAgdGV4dCA9IG5ld0l0ZXI7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IHRleHQtPgorICAgICAqIEBwYXJhbSBuZXdUZXh0ICAgVGhlIG5ldyBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KGNoYXJbXSBuZXdUZXh0KSB7CisgICAgICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgbmV3SXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXdUZXh0KTsKKyAgICAgICAgaWYgKG5ld0l0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IHRleHQtPgorICAgICAqIEBwYXJhbSBuZXdUZXh0ICAgVGhlIG5ldyBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyBuZXdUZXh0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobmV3VGV4dCk7CisgICAgICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNvdWxkIG5vdCBjcmVhdGUgYSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yIik7CisgICAgICAgIH0gIAorICAgICAgICB0ZXh0ID0gbmV3SXRlcjsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCB0ZXh0IG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IHdpbGwgaXRlcmF0ZS4KKyAgICAgKiBUaGUgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBuZXdUZXh0KSB7CisgICAgICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgbmV3SXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXdUZXh0KTsKKyAgICAgICAgaWYgKG5ld0l0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChVQ2hhcmFjdGVySXRlcmF0b3IgbmV3VGV4dCkgeyAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKW5ld1RleHQuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDb3VsZCBub3QgY3JlYXRlIGEgbmV3IFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dCA9IG5ld0l0ZXI7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICB9Y2F0Y2goQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNsb25lIHRoZSBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcml2YXRlIHV0aWxpdHkgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorCisgICAgLyogYmFja3dhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgICAgICAgICAgICAgCisgICAgLyoKKyAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgZ2V0IG5vcm0zMgorICAgICAqIHJldHVybiAwIGlmIHRoZSBjaGFyYWN0ZXIgaXMgPG1pbkMKKyAgICAgKiBpZiBjMiE9MCB0aGVuIChjMiwgYykgaXMgYSBzdXJyb2dhdGUgcGFpciAocmV2ZXJzZWQgLSBjMiBpcyBmaXJzdCAKKyAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgKi8KKworICAgIHByaXZhdGUgc3RhdGljICBsb25nIGdldFByZXZOb3JtMzIoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnMpIHsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGludCBjaD0wOworICAgICAgICAvKiBuZWVkIHNyYy5oYXNQcmV2aW91cygpICovCisgICAgICAgIGlmKChjaD1zcmMucHJldmlvdXMoKSkgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGNoYXJzWzBdPShjaGFyKWNoOworICAgICAgICBjaGFyc1sxXT0wOworICAgIAorICAgICAgICAvKiBjaGVjayBmb3IgYSBzdXJyb2dhdGUgYmVmb3JlIGdldHRpbmcgbm9ybTMyIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIAorICAgICAgICAgKiBwcmVkZWNyZW1lbnQgZnVydGhlciAqLworICAgICAgICBpZihjaGFyc1swXTxtaW5DKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjaGFyc1swXSkpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXROb3JtMzIoY2hhcnNbMF0pOworICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoYXJzWzBdKSB8fCAoc3JjLmdldEluZGV4KCk9PTApKSB7CisgICAgICAgICAgICAvKiB1bnBhaXJlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIGNoYXJzWzFdPShjaGFyKXNyYy5jdXJyZW50KCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaGFyc1sxXT0oY2hhcilzcmMucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgIG5vcm0zMj1Ob3JtYWxpemVySW1wbC5nZXROb3JtMzIoY2hhcnNbMV0pOworICAgICAgICAgICAgaWYoKG5vcm0zMiZtYXNrKT09MCkgeworICAgICAgICAgICAgICAgIC8qIGFsbCBzdXJyb2dhdGUgcGFpcnMgd2l0aCB0aGlzIGxlYWQgc3Vycm9nYXRlIGhhdmUgaXJyZWxldmFudCAKKyAgICAgICAgICAgICAgICAgKiBkYXRhICovCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vcm0zMiBtdXN0IGJlIGEgc3Vycm9nYXRlIHNwZWNpYWwgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLGNoYXJzWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHVucGFpcmVkIHNlY29uZCBzdXJyb2dhdGUsIHVuZG8gdGhlIGMyPXNyYy5wcmV2aW91cygpIG1vdmVtZW50ICovCisgICAgICAgICAgICBzcmMubW92ZUluZGV4KCAxKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorIAorICAgIHByaXZhdGUgaW50ZXJmYWNlIElzUHJldkJvdW5kYXJ5eworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ByZXZCb3VuZGFyeShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgSXNQcmV2TkZEU2FmZSBpbXBsZW1lbnRzIElzUHJldkJvdW5kYXJ5eworICAgICAgICAvKgorICAgICAgICAgKiBmb3IgTkYqRDoKKyAgICAgICAgICogcmVhZCBiYWNrd2FyZHMgYW5kIGNoZWNrIGlmIHRoZSBsZWFkIGNvbWJpbmluZyBjbGFzcyBpcyAwCisgICAgICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnMpIHsKKyAgICAKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GRFNhZmUoZ2V0UHJldk5vcm0zMihzcmMsIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIGNoYXJzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY09yUUNNYXNrJiBOb3JtYWxpemVySW1wbC5RQ19NQVNLKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc1ByZXZUcnVlU3RhcnRlciBpbXBsZW1lbnRzIElzUHJldkJvdW5kYXJ5eworICAgICAgICAvKgorICAgICAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgY2hlY2sgaWYgdGhlIGNoYXJhY3RlciBpcyAob3IgaXRzIGRlY29tcG9zaXRpb24gCisgICAgICAgICAqIGJlZ2lucyB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiIChjYz09MCBhbmQgTkYqQ19ZRVMpCisgICAgICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBjaGFycykgeworICAgICAgICAgICAgbG9uZyBub3JtMzI7IAorICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb21wUUNNYXNrPShjY09yUUNNYXNrPDwyKSYweGY7IC8qZGVjb21wb3NpdGlvbiBxdWljayBjaGVjayBtYXNrKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXRQcmV2Tm9ybTMyKHNyYywgbWluQywgY2NPclFDTWFza3xkZWNvbXBRQ01hc2ssIGNoYXJzKTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc1RydWVTdGFydGVyKG5vcm0zMixjY09yUUNNYXNrLGRlY29tcFFDTWFzayk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRQcmV2aW91c0l0ZXJhdGlvbkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzUHJldkJvdW5kYXJ5IG9iaiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKm1hc2sqLyBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gc3RhcnRJbmRleCkgeworICAgICAgICBjaGFyW10gY2hhcnM9bmV3IGNoYXJbMl07CisgICAgICAgIGJvb2xlYW4gaXNCb3VuZGFyeTsKKyAgICAKKyAgICAgICAgLyogZmlsbCB0aGUgYnVmZmVyIGZyb20gdGhlIGVuZCBiYWNrd2FyZHMgKi8KKyAgICAgICAgc3RhcnRJbmRleFswXSA9IGJ1ZmZlci5sZW5ndGg7CisgICAgICAgIGNoYXJzWzBdPTA7CisgICAgICAgIHdoaWxlKHNyYy5nZXRJbmRleCgpPjAgJiYgY2hhcnNbMF0hPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpc0JvdW5kYXJ5PW9iai5pc1ByZXZCb3VuZGFyeShzcmMsIG1pbkMsIG1hc2ssIGNoYXJzKTsKKyAgICAKKyAgICAgICAgICAgIC8qIGFsd2F5cyB3cml0ZSB0aGlzIGNoYXJhY3RlciB0byB0aGUgZnJvbnQgb2YgdGhlIGJ1ZmZlciAqLworICAgICAgICAgICAgLyogbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCBzcGFjZSBpbiB0aGUgYnVmZmVyICovCisgICAgICAgICAgICBpZihzdGFydEluZGV4WzBdIDwgKGNoYXJzWzFdPT0wID8gMSA6IDIpKSB7CisKKyAgICAgICAgICAgICAgICAvLyBncm93IHRoZSBidWZmZXIKKyAgICAgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCoyXTsKKyAgICAgICAgICAgICAgICAvKiBtb3ZlIHRoZSBjdXJyZW50IGJ1ZmZlciBjb250ZW50cyB1cCAqLworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sbmV3QnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3QnVmLmxlbmd0aC0oYnVmZmVyLmxlbmd0aC1zdGFydEluZGV4WzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5sZW5ndGgtc3RhcnRJbmRleFswXSk7CisgICAgICAgICAgICAgICAgLy9hZGp1c3QgdGhlIHN0YXJ0SW5kZXgKKyAgICAgICAgICAgICAgICBzdGFydEluZGV4WzBdKz1uZXdCdWYubGVuZ3RoLWJ1ZmZlci5sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnVmZmVyPW5ld0J1ZjsKKyAgICAgICAgICAgICAgICBuZXdCdWY9bnVsbDsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBidWZmZXJbLS1zdGFydEluZGV4WzBdXT1jaGFyc1swXTsKKyAgICAgICAgICAgIGlmKGNoYXJzWzFdIT0wKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyWy0tc3RhcnRJbmRleFswXV09Y2hhcnNbMV07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBzdG9wIGlmIHRoaXMganVzdC1jb3BpZWQgY2hhcmFjdGVyIGlzIGEgYm91bmRhcnkgKi8KKyAgICAgICAgICAgIGlmKGlzQm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGNvbnRlbnRzICovCisgICAgICAgIHJldHVybiBidWZmZXIubGVuZ3RoLXN0YXJ0SW5kZXhbMF07CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBwcmV2aW91cyhVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgbW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZG9Ob3JtYWxpemUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gcE5lZWRlZFRvTm9ybWFsaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworCisgICAgICAgIElzUHJldkJvdW5kYXJ5IGlzUHJldmlvdXNCb3VuZGFyeTsKKyAgICAgICAgaW50IGRlc3RMZW5ndGgsIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2s7CisgICAgICAgIAorICAgICAgICBpbnQgYyxjMjsKKyAgICAgICAgCisgICAgICAgIGNoYXIgbWluQzsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IGRlc3RMaW1pdC1kZXN0U3RhcnQ7CisgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgIHBOZWVkZWRUb05vcm1hbGl6ZVswXT1mYWxzZTsKKyAgICAgICAgfQorICAgICAgICBtaW5DID0gKGNoYXIpbW9kZS5nZXRNaW5DKCk7CisgICAgICAgIG1hc2sgPSBtb2RlLmdldE1hc2soKTsKKyAgICAgICAgaXNQcmV2aW91c0JvdW5kYXJ5ID0gbW9kZS5nZXRQcmV2Qm91bmRhcnkoKTsKKworICAgICAgICBpZihpc1ByZXZpb3VzQm91bmRhcnk9PW51bGwpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGlmKChjPXNyYy5wcmV2aW91cygpKT49MCkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWMpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPSBzcmMucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT49MikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0WzFdPShjaGFyKWM7IC8vIHRyYWlsIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSB0byBiZSB3cml0dGVuIGJlbG93IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9YzI7IAorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzEwMF07CisgICAgICAgIGludFtdIHN0YXJ0SW5kZXg9IG5ldyBpbnRbMV07CisgICAgICAgIGJ1ZmZlckxlbmd0aD1maW5kUHJldmlvdXNJdGVyYXRpb25Cb3VuZGFyeShzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ByZXZpb3VzQm91bmRhcnksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluQywgbWFzayxidWZmZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCk7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9Tm9ybWFsaXplci5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4WzBdK2J1ZmZlckxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsMCxkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RTdGFydCxkZXN0TGltaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGp1c3QgY29weSB0aGUgc291cmNlIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlcixzdGFydEluZGV4WzBdLGRlc3QsMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyTGVuZ3RoPGRlc3RDYXBhY2l0eSkgPyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJMZW5ndGggOiBkZXN0Q2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKworICAgIAorICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICB9CisKKyAKKyAgICAKKyAgICAvKiBmb3J3YXJkIGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgLyoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSBuZXh0LWl0ZXJhdGlvbiBib3VuZGFyeQorICAgICAqIGlmIGMyIT0wIHRoZW4gKGMsIGMyKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIGJvb2xlYW4gaXNOZXh0Qm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjaGFycyk7CisgICAgfSAgIAorICAgIC8qCisgICAgICogcmVhZCBmb3J3YXJkIGFuZCBnZXQgbm9ybTMyCisgICAgICogcmV0dXJuIDAgaWYgdGhlIGNoYXJhY3RlciBpcyA8bWluQworICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICogYWx3YXlzIHJlYWRzIGNvbXBsZXRlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIC8qdW5zaWduZWQqLyBnZXROZXh0Tm9ybTMyKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgCisgICAgICAgIC8qIG5lZWQgc3JjLmhhc05leHQoKSB0byBiZSB0cnVlICovCisgICAgICAgIGNoYXJzWzBdPXNyYy5uZXh0KCk7CisgICAgICAgIGNoYXJzWzFdPTA7CisgICAgCisgICAgICAgIGlmKGNoYXJzWzBdPG1pbkMpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgCisgICAgICAgIG5vcm0zMj1Ob3JtYWxpemVySW1wbC5nZXROb3JtMzIoKGNoYXIpY2hhcnNbMF0pOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcnNbMF0pKSB7CisgICAgICAgICAgICBpZihzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJgorICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikoY2hhcnNbMV09c3JjLmN1cnJlbnQoKSkpKSB7CisgICAgICAgICAgICAgICAgc3JjLm1vdmVJbmRleCgxKTsgLyogc2tpcCB0aGUgYzIgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgaWYoKG5vcm0zMiZtYXNrKT09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBpcnJlbGV2YW50IGRhdGEgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm9ybTMyIG11c3QgYmUgYSBzdXJyb2dhdGUgc3BlY2lhbCAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLChjaGFyKWNoYXJzWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBmb3IgTkYqRDoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBsZWFkIGNvbWJpbmluZyBjbGFzcyBpcyAwCisgICAgICogaWYgYzIhPTAgdGhlbiAoYywgYzIpIGlzIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc05leHRORkRTYWZlIGltcGxlbWVudHMgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTmV4dEJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBjY09yUUNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GRFNhZmUoZ2V0TmV4dE5vcm0zMihzcmMsbWluQyxjY09yUUNNYXNrLGNoYXJzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIGNjT3JRQ01hc2smTm9ybWFsaXplckltcGwuUUNfTUFTSyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBmb3IgTkYqQzoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgaXMgKG9yIGl0cyBkZWNvbXBvc2l0aW9uIGJlZ2lucyAKKyAgICAgKiB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiIChjYz09MCBhbmQgTkYqQ19ZRVMpCisgICAgICogaWYgYzIhPTAgdGhlbiAoYywgYzIpIGlzIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc05leHRUcnVlU3RhcnRlciBpbXBsZW1lbnRzIElzTmV4dEJvdW5kYXJ5eworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc05leHRCb3VuZGFyeShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGNoYXJzKSB7CisgICAgICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2s7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlY29tcFFDTWFzaz0oY2NPclFDTWFzazw8MikmMHhmOyAvKmRlY29tcG9zaXRpb24gcXVpY2sgY2hlY2sgbWFzayovCisgICAgICAgICAgICBub3JtMzI9Z2V0TmV4dE5vcm0zMihzcmMsIG1pbkMsIGNjT3JRQ01hc2t8ZGVjb21wUUNNYXNrLCBjaGFycyk7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuaXNUcnVlU3RhcnRlcihub3JtMzIsIGNjT3JRQ01hc2ssIGRlY29tcFFDTWFzayk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmROZXh0SXRlcmF0aW9uQm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc05leHRCb3VuZGFyeSBvYmosIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyKSB7CisgICAgICAgIGludFtdIGNoYXJzID0gbmV3IGludFsyXTsKKyAgICAgICAgaW50IGJ1ZmZlckluZGV4ID0wOworICAgICAgICAKKyAgICAgICAgaWYoc3JjLmN1cnJlbnQoKT09VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8qIGdldCBvbmUgY2hhcmFjdGVyIGFuZCBpZ25vcmUgaXRzIHByb3BlcnRpZXMgKi8KKyAgICAgICAgY2hhcnNbMF09c3JjLm5leHQoKTsKKyAgICAgICAgYnVmZmVyWzBdPShjaGFyKWNoYXJzWzBdOworICAgICAgICBidWZmZXJJbmRleD0xOworICAgICAgICAKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoYXJzWzBdKSYmIAorICAgICAgICAgICBzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikoY2hhcnNbMV09c3JjLm5leHQoKSkpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlckluZGV4KytdPShjaGFyKWNoYXJzWzFdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KC0xKTsgLyogYmFjayBvdXQgdGhlIG5vbi10cmFpbC1zdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBnZXQgYWxsIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHVudGlsIHdlIHNlZSBhIGJvdW5kYXJ5ICovCisgICAgICAgIC8qIGNoZWNraW5nIGhhc05leHQoKSBpbnN0ZWFkIG9mIGMhPURPTkUgb24gdGhlIG9mZi1jaGFuY2UgdGhhdCBVK2ZmZmYgCisgICAgICAgICAqIGlzIHBhcnQgb2YgdGhlIHN0cmluZyAqLworICAgICAgICB3aGlsZSggc3JjLmN1cnJlbnQoKSE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGlmKG9iai5pc05leHRCb3VuZGFyeShzcmMsIG1pbkMsIG1hc2ssIGNoYXJzKSkgeworICAgICAgICAgICAgICAgIC8qIGJhY2sgb3V0IHRoZSBsYXRlc3QgbW92ZW1lbnQgdG8gc3RvcCBhdCB0aGUgYm91bmRhcnkgKi8KKyAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KGNoYXJzWzFdPT0wID8gLTEgOiAtMik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGJ1ZmZlckluZGV4KyhjaGFyc1sxXT09MCA/IDEgOiAyKTw9YnVmZmVyLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXJbYnVmZmVySW5kZXgrK109KGNoYXIpY2hhcnNbMF07CisgICAgICAgICAgICAgICAgICAgIGlmKGNoYXJzWzFdIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbYnVmZmVySW5kZXgrK109KGNoYXIpY2hhcnNbMV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCAgICAqMl07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLDAsbmV3QnVmLDAsYnVmZmVySW5kZXgpOworICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSBuZXdCdWY7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltidWZmZXJJbmRleCsrXT0oY2hhciljaGFyc1swXTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2hhcnNbMV0hPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltidWZmZXJJbmRleCsrXT0oY2hhciljaGFyc1sxXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGNvbnRlbnRzICovCisgICAgICAgIHJldHVybiBidWZmZXJJbmRleDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG5leHQoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRvTm9ybWFsaXplLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gcE5lZWRlZFRvTm9ybWFsaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBJc05leHRCb3VuZGFyeSBpc05leHRCb3VuZGFyeTsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyBtYXNrOworICAgICAgICBpbnQgLyp1bnNpZ25lZCovIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgaW50IGMsYzI7CisgICAgICAgIGNoYXIgbWluQzsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsKKyAgICAgICAgaW50IGRlc3RMZW5ndGggPSAwOworICAgICAgICAKKyAgICAgICAgaWYocE5lZWRlZFRvTm9ybWFsaXplIT1udWxsKSB7CisgICAgICAgICAgICBwTmVlZGVkVG9Ob3JtYWxpemVbMF09ZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBtaW5DID0gKGNoYXIpbW9kZS5nZXRNaW5DKCk7CisgICAgICAgIG1hc2sgPSBtb2RlLmdldE1hc2soKTsKKyAgICAgICAgaXNOZXh0Qm91bmRhcnkgPSBtb2RlLmdldE5leHRCb3VuZGFyeSgpOworICAgICAgICAKKyAgICAgICAgaWYoaXNOZXh0Qm91bmRhcnk9PW51bGwpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGM9c3JjLm5leHQoKTsKKyAgICAgICAgICAgIGlmKGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZGVzdExlbmd0aD0xOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljKSkgeworICAgICAgICAgICAgICAgICAgICBjMj0gc3JjLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFsxXT0oY2hhciljMjsgLy8gdHJhaWwgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYWQgc3Vycm9nYXRlIHRvIGJlIHdyaXR0ZW4gYmVsb3cgCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5tb3ZlSW5kZXgoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJbXSBidWZmZXI9bmV3IGNoYXJbMTAwXTsKKyAgICAgICAgaW50W10gc3RhcnRJbmRleCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBidWZmZXJMZW5ndGg9ZmluZE5leHRJdGVyYXRpb25Cb3VuZGFyeShzcmMsaXNOZXh0Qm91bmRhcnksIG1pbkMsIG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcik7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9bW9kZS5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sYnVmZmVyTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcyhidWZmZXIsc3RhcnRJbmRleFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IGNvcHkgdGhlIHNvdXJjZSBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsMCxkZXN0LGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihidWZmZXJMZW5ndGgsZGVzdENhcGFjaXR5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgIH0gCisKKyAgICBwcml2YXRlIHZvaWQgY2xlYXJCdWZmZXIoKSB7CisgICAgICAgIGJ1ZmZlckxpbWl0PWJ1ZmZlclN0YXJ0PWJ1ZmZlclBvcz0wOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIG5leHROb3JtYWxpemUoKSB7CisgICAgICAgIAorICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgICAgICBjdXJyZW50SW5kZXg9bmV4dEluZGV4OworICAgICAgICB0ZXh0LnNldEluZGV4KG5leHRJbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGJ1ZmZlckxpbWl0PW5leHQodGV4dCxidWZmZXIsYnVmZmVyU3RhcnQsYnVmZmVyLmxlbmd0aCxtb2RlLHRydWUsbnVsbCxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBuZXh0SW5kZXg9dGV4dC5nZXRJbmRleCgpOworICAgICAgICByZXR1cm4gKGJ1ZmZlckxpbWl0PjApOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBib29sZWFuICAgICBwcmV2aW91c05vcm1hbGl6ZSgpIHsKKworICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgICAgICBuZXh0SW5kZXg9Y3VycmVudEluZGV4OworICAgICAgICB0ZXh0LnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisgICAgICAgIGJ1ZmZlckxpbWl0PXByZXZpb3VzKHRleHQsYnVmZmVyLGJ1ZmZlclN0YXJ0LGJ1ZmZlci5sZW5ndGgsbW9kZSx0cnVlLG51bGwsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGN1cnJlbnRJbmRleD10ZXh0LmdldEluZGV4KCk7CisgICAgICAgIGJ1ZmZlclBvcyA9IGJ1ZmZlckxpbWl0OworICAgICAgICByZXR1cm4gYnVmZmVyTGltaXQ+MDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0Q29kZVBvaW50QXQoaW50IGluZGV4KSB7CisgICAgICAgIGlmKCBVVEYxNi5pc1N1cnJvZ2F0ZShidWZmZXJbaW5kZXhdKSkgeworICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGJ1ZmZlcltpbmRleF0pKSB7CisgICAgICAgICAgICAgICAgaWYoKGluZGV4KzEpPGJ1ZmZlckxpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgrMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleF0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2luZGV4KzFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNlIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYnVmZmVyW2luZGV4XSkpIHsKKyAgICAgICAgICAgICAgICBpZihpbmRleD4wICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgtMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleC0xXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXJbaW5kZXhdOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgQVBJCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMsIE1vZGUgbW9kZSkgeworICAgICAgICByZXR1cm4gbW9kZS5pc05GU2tpcHBhYmxlKGMpOworICAgIH0gICAgCisKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGludGVybmFsQ29tcGFyZShjaGFyW10gczEsIGludCBzMVN0YXJ0LGludCBzMUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCxpbnQgczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGNoYXJbXSBmY2QxICA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgIGNoYXJbXSBmY2QyICA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgIAorICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIGlmKCAgICBzMT09bnVsbCB8fCBzMVN0YXJ0PDAgfHwgczFMaW1pdDwwIHx8IAorICAgICAgICAgICAgICAgczI9PW51bGwgfHwgczJTdGFydDwwIHx8IHMyTGltaXQ8MCB8fAorICAgICAgICAgICAgICAgczFMaW1pdDxzMVN0YXJ0IHx8IHMyTGltaXQ8czJTdGFydAorICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBVbmljb2RlU2V0IG54PU5vcm1hbGl6ZXJJbXBsLmdldE5YKChpbnQpKG9wdGlvbnM+Pk5vcm1hbGl6ZXIuQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQpKTsKKyAgICAgICAgb3B0aW9uc3w9IE5vcm1hbGl6ZXJJbXBsLkNPTVBBUkVfRVFVSVY7CisgICAgICAgIHJlc3VsdD0wOworCisgICAgICAgIC8qCisgICAgICAgICAqIFVBWCAjMjEgQ2FzZSBNYXBwaW5ncywgYXMgZml4ZWQgZm9yIFVuaWNvZGUgdmVyc2lvbiA0CisgICAgICAgICAqIChzZWUgSml0dGVyYnVnIDIwMjEpLCBkZWZpbmVzIGEgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoIGFzCisgICAgICAgICAqCisgICAgICAgICAqIEEgc3RyaW5nIFggaXMgYSBjYW5vbmljYWwgY2FzZWxlc3MgbWF0Y2gKKyAgICAgICAgICogZm9yIGEgc3RyaW5nIFkgaWYgYW5kIG9ubHkgaWYKKyAgICAgICAgICogTkZEKHRvQ2FzZWZvbGQoTkZEKFgpKSkgPSBORkQodG9DYXNlZm9sZChORkQoWSkpKQorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgYmV0dGVyIHBlcmZvcm1hbmNlLCB3ZSBjaGVjayBmb3IgRkNEIChvciBsZXQgdGhlIGNhbGxlciB0ZWxsIHVzIHRoYXQKKyAgICAgICAgICogYm90aCBzdHJpbmdzIGFyZSBpbiBGQ0QpIGZvciB0aGUgaW5uZXIgbm9ybWFsaXphdGlvbi4KKyAgICAgICAgICogQmFzaWNOb3JtYWxpemVyVGVzdDo6RmluZEZvbGRGQ0RFeGNlcHRpb25zKCkgbWFrZXMgc3VyZSB0aGF0CisgICAgICAgICAqIGNhc2UtZm9sZGluZyBwcmVzZXJ2ZXMgdGhlIEZDRC1uZXNzIG9mIGEgc3RyaW5nLgorICAgICAgICAgKiBUaGUgb3V0ZXIgbm9ybWFsaXphdGlvbiBpcyB0aGVuIG9ubHkgcGVyZm9ybWVkIGJ5IE5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZCgpCisgICAgICAgICAqIHdoZW4gdGhlcmUgaXMgYSBkaWZmZXJlbmNlLgorICAgICAgICAgKgorICAgICAgICAgKiBFeGNlcHRpb246IFdoZW4gdXNpbmcgdGhlIFR1cmtpYyBjYXNlLWZvbGRpbmcgb3B0aW9uLCB3ZSBkbyBwZXJmb3JtCisgICAgICAgICAqIGZ1bGwgTkZEIGZpcnN0LiBUaGlzIGlzIGJlY2F1c2UgaW4gdGhlIFR1cmtpYyBjYXNlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyAgICAgICAgICogd2l0aCAwMDQ5IGNhcGl0YWwgSSBvciAwMDY5IHNtYWxsIGkgZm9sZCBkaWZmZXJlbnRseSB3aGV0aGVyIHRoZXkKKyAgICAgICAgICogYXJlIGZpcnN0IGRlY29tcG9zZWQgb3Igbm90LCBzbyBhbiBGQ0QgY2hlY2sgLSBhIGNoZWNrIG9ubHkgZm9yCisgICAgICAgICAqIGNhbm9uaWNhbCBvcmRlciAtIGlzIG5vdCBzdWZmaWNpZW50LgorICAgICAgICAgKi8KKyAgICAgICAgaWYoKG9wdGlvbnMmIE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSA+MCApIHsKKyAgICAgICAgICAgIG1vZGU9Tm9ybWFsaXplci5ORkQ7CisgICAgICAgICAgICBvcHRpb25zJj1+IE5vcm1hbGl6ZXIuSU5QVVRfSVNfRkNEOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbW9kZT1Ob3JtYWxpemVyLkZDRDsKKyAgICAgICAgfQorICAgICAgICBpZigob3B0aW9ucyYgTm9ybWFsaXplci5JTlBVVF9JU19GQ0QpPT0wKSB7CisgICAgICAgICAgICBjaGFyW10gZGVzdDsKKyAgICAgICAgICAgIGludCBmY2RMZW4xLCBmY2RMZW4yOworICAgICAgICAgICAgYm9vbGVhbiBpc0ZDRDEsIGlzRkNEMjsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayBpZiBzMSBhbmQvb3IgczIgZnVsZmlsbCB0aGUgRkNEIGNvbmRpdGlvbnMKKyAgICAgICAgICAgIGlzRkNEMT0gTm9ybWFsaXplci5ZRVM9PW1vZGUucXVpY2tDaGVjayhzMSwgczFTdGFydCwgczFMaW1pdCwgdHJ1ZSwgbngpOworICAgICAgICAgICAgaXNGQ0QyPSBOb3JtYWxpemVyLllFUz09bW9kZS5xdWlja0NoZWNrKHMyLCBzMlN0YXJ0LCBzMkxpbWl0LCB0cnVlLCBueCk7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSUNVIDIuNCBoYWQgYSBmdXJ0aGVyIG9wdGltaXphdGlvbjoKKyAgICAgICAgICAgICAqIElmIGJvdGggc3RyaW5ncyB3ZXJlIG5vdCBpbiBGQ0QsIHRoZW4gdGhleSB3ZXJlIGJvdGggTkZEJ2VkLAorICAgICAgICAgICAgICogYW5kIHRoZSBDT01QQVJFX0VRVUlWIG9wdGlvbiB3YXMgdHVybmVkIG9mZi4KKyAgICAgICAgICAgICAqIEl0IGlzIG5vdCBlbnRpcmVseSBjbGVhciB0aGF0IHRoaXMgaXMgdmFsaWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgICAgICAgICogZGVmaW5pdGlvbiBvZiB0aGUgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoLgorICAgICAgICAgICAgICogVGhlcmVmb3JlLCBJQ1UgMi42IHJlbW92ZXMgdGhhdCBvcHRpbWl6YXRpb24uCisgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgaWYoIWlzRkNEMSkgeworICAgICAgICAgICAgICAgIGZjZExlbjE9bW9kZS5ub3JtYWxpemUoczEsIDAsIHMxLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjZDEsIDAsIGZjZDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbngpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoZmNkTGVuMT5mY2QxLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0PW5ldyBjaGFyW2ZjZExlbjFdOworICAgICAgICAgICAgICAgICAgICBmY2RMZW4xPW1vZGUubm9ybWFsaXplKCBzMSwgMCwgczEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LCAwLCBkZXN0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbngpOworICAgICAgICAgICAgICAgICAgICBzMT1kZXN0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMxPWZjZDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHMxTGltaXQ9ZmNkTGVuMTsKKyAgICAgICAgICAgICAgICBzMVN0YXJ0PTA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKCFpc0ZDRDIpIHsKKyAgICAgICAgICAgICAgICBmY2RMZW4yPW1vZGUubm9ybWFsaXplKHMyLHMyU3RhcnQsczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjZDIsMCxmY2QyLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihmY2RMZW4yPmZjZDIubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3Q9bmV3IGNoYXJbZmNkTGVuMl07CisgICAgICAgICAgICAgICAgICAgIGZjZExlbjI9bW9kZS5ub3JtYWxpemUoIHMyLHMyU3RhcnQsczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCk7CisgICAgICAgICAgICAgICAgICAgIHMyPWRlc3Q7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgczI9ZmNkMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgczJMaW1pdD1mY2RMZW4yOworICAgICAgICAgICAgICAgIHMyU3RhcnQ9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZChzMSwgczFTdGFydCwgczFMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczIsIHMyU3RhcnQsIHMyTGltaXQsIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgICogRmV0Y2hlcyB0aGUgVW5pY29kZSB2ZXJzaW9uIGJ1cm5lZCBpbnRvIHRoZSBOb3JtYWxpemF0aW9uIGRhdGEgZmlsZQorICAgICAqIEByZXR1cm4gVmVyc2lvbkluZm8gdmVyc2lvbiBpbmZvcm1hdGlvbiBvZiB0aGUgbm9ybWFsaXplcgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRVbmljb2RlVmVyc2lvbigpIHsKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdWxsVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYTQyZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgbGVhdmVzIHRleHQgdW5jaGFuZ2VkLgorICogQGludGVybmFsCisgKi8KK2NsYXNzIE51bGxUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMjAwMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogUGFja2FnZSBhY2Nlc3NpYmxlIElEcyBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIFNIT1JUX0lEID0gIk51bGwiOworICAgIHN0YXRpYyBTdHJpbmcgX0lEICAgICAgPSAiQW55LU51bGwiOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBOdWxsVHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHN1cGVyKF9JRCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViYmEzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YQpAQCAtMCwwICsxLDE2NTIgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW52YWxpZE9iamVjdEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5QW1vdW50OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGlzIHRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgbnVtYmVyCisgKiBmb3JtYXRzLiBUaGlzIGNsYXNzIHByb3ZpZGVzIHRoZSBpbnRlcmZhY2UgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcKKyAqIG51bWJlcnMuIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gYWxzbyBwcm92aWRlcyBtZXRob2RzIGZvciBkZXRlcm1pbmluZworICogd2hpY2ggbG9jYWxlcyBoYXZlIG51bWJlciBmb3JtYXRzLCBhbmQgd2hhdCB0aGVpciBuYW1lcyBhcmUuCisgKgorICogPHA+PHN0cm9uZz5UaGlzIGlzIGFuIGVuaGFuY2VkIHZlcnNpb24gb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPiBvcgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4uPC9zdHJvbmc+CisgKgorICogPHA+CisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGhlbHBzIHlvdSB0byBmb3JtYXQgYW5kIHBhcnNlIG51bWJlcnMgZm9yIGFueSBsb2NhbGUuCisgKiBZb3VyIGNvZGUgY2FuIGJlIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIGxvY2FsZSBjb252ZW50aW9ucyBmb3IKKyAqIGRlY2ltYWwgcG9pbnRzLCB0aG91c2FuZHMtc2VwYXJhdG9ycywgb3IgZXZlbiB0aGUgcGFydGljdWxhciBkZWNpbWFsCisgKiBkaWdpdHMgdXNlZCwgb3Igd2hldGhlciB0aGUgbnVtYmVyIGZvcm1hdCBpcyBldmVuIGRlY2ltYWwuCisgKgorICogPHA+CisgKiBUbyBmb3JtYXQgYSBudW1iZXIgZm9yIHRoZSBjdXJyZW50IExvY2FsZSwgdXNlIG9uZSBvZiB0aGUgZmFjdG9yeQorICogY2xhc3MgbWV0aG9kczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqICBteVN0cmluZyA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdChteU51bWJlcik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIElmIHlvdSBhcmUgZm9ybWF0dGluZyBtdWx0aXBsZSBudW1iZXJzLCBpdCBpcworICogbW9yZSBlZmZpY2llbnQgdG8gZ2V0IHRoZSBmb3JtYXQgYW5kIHVzZSBpdCBtdWx0aXBsZSB0aW1lcyBzbyB0aGF0CisgKiB0aGUgc3lzdGVtIGRvZXNuJ3QgaGF2ZSB0byBmZXRjaCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsCisgKiBsYW5ndWFnZSBhbmQgY291bnRyeSBjb252ZW50aW9ucyBtdWx0aXBsZSB0aW1lcy4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICogZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgKiAgICAgb3V0cHV0LnByaW50bG4obmYuZm9ybWF0KG15TnVtYmVyW2ldKSArICI7ICIpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBUbyBmb3JtYXQgYSBudW1iZXIgZm9yIGEgZGlmZmVyZW50IExvY2FsZSwgc3BlY2lmeSBpdCBpbiB0aGUKKyAqIGNhbGwgdG8gPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+LgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBZb3UgY2FuIGFsc28gdXNlIGEgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB0byBwYXJzZSBudW1iZXJzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogbXlOdW1iZXIgPSBuZi5wYXJzZShteVN0cmluZyk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFVzZSA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4gb3IgPGNvZGU+Z2V0TnVtYmVySW5zdGFuY2U8L2NvZGU+IHRvIGdldCB0aGUKKyAqIG5vcm1hbCBudW1iZXIgZm9ybWF0LiBVc2UgPGNvZGU+Z2V0SW50ZWdlckluc3RhbmNlPC9jb2RlPiB0byBnZXQgYW4KKyAqIGludGVnZXIgbnVtYmVyIGZvcm1hdC4gVXNlIDxjb2RlPmdldEN1cnJlbmN5SW5zdGFuY2U8L2NvZGU+IHRvIGdldCB0aGUKKyAqIGN1cnJlbmN5IG51bWJlciBmb3JtYXQuIEFuZCB1c2UgPGNvZGU+Z2V0UGVyY2VudEluc3RhbmNlPC9jb2RlPiB0byBnZXQgYQorICogZm9ybWF0IGZvciBkaXNwbGF5aW5nIHBlcmNlbnRhZ2VzLiBXaXRoIHRoaXMgZm9ybWF0LCBhIGZyYWN0aW9uIGxpa2UKKyAqIDAuNTMgaXMgZGlzcGxheWVkIGFzIDUzJS4KKyAqCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyBjb250cm9sIHRoZSBkaXNwbGF5IG9mIG51bWJlcnMgd2l0aCBzdWNoIG1ldGhvZHMgYXMKKyAqIDxjb2RlPnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCBldmVuIG1vcmUgY29udHJvbCBvdmVyIHRoZSBmb3JtYXQgb3IgcGFyc2luZywKKyAqIG9yIHdhbnQgdG8gZ2l2ZSB5b3VyIHVzZXJzIG1vcmUgY29udHJvbCwKKyAqIHlvdSBjYW4gdHJ5IGNhc3RpbmcgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4geW91IGdldCBmcm9tIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAqIHRvIGEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4uIFRoaXMgd2lsbCB3b3JrIGZvciB0aGUgdmFzdCBtYWpvcml0eQorICogb2YgbG9jYWxlczsganVzdCByZW1lbWJlciB0byBwdXQgaXQgaW4gYSA8Y29kZT50cnk8L2NvZGU+IGJsb2NrIGluIGNhc2UgeW91CisgKiBlbmNvdW50ZXIgYW4gdW51c3VhbCBvbmUuCisgKgorICogPHA+CisgKiBOdW1iZXJGb3JtYXQgaXMgZGVzaWduZWQgc3VjaCB0aGF0IHNvbWUgY29udHJvbHMKKyAqIHdvcmsgZm9yIGZvcm1hdHRpbmcgYW5kIG90aGVycyB3b3JrIGZvciBwYXJzaW5nLiAgVGhlIGZvbGxvd2luZyBpcworICogdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uIGZvciBlYWNoIHRoZXNlIGNvbnRyb2wgbWV0aG9kcywKKyAqIDxwPgorICogc2V0UGFyc2VJbnRlZ2VyT25seSA6IG9ubHkgYWZmZWN0cyBwYXJzaW5nLCBlLmcuCisgKiBpZiB0cnVlLCAgIjM0NTYuNzgiIC0+IDM0NTYgKGFuZCBsZWF2ZXMgdGhlIHBhcnNlIHBvc2l0aW9uIGp1c3QgYWZ0ZXIgJzYnKQorICogaWYgZmFsc2UsICIzNDU2Ljc4IiAtPiAzNDU2Ljc4IChhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbiBqdXN0IGFmdGVyICc4JykKKyAqIFRoaXMgaXMgaW5kZXBlbmRlbnQgb2YgZm9ybWF0dGluZy4gIElmIHlvdSB3YW50IHRvIG5vdCBzaG93IGEgZGVjaW1hbCBwb2ludAorICogd2hlcmUgdGhlcmUgbWlnaHQgYmUgbm8gZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LCB1c2UKKyAqIHNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biBvbiBEZWNpbWFsRm9ybWF0LgorICogPHA+CisgKiBZb3UgY2FuIGFsc28gdXNlIGZvcm1zIG9mIHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gYW5kIDxjb2RlPmZvcm1hdDwvY29kZT4KKyAqIG1ldGhvZHMgd2l0aCA8Y29kZT5QYXJzZVBvc2l0aW9uPC9jb2RlPiBhbmQgPGNvZGU+RmllbGRQb3NpdGlvbjwvY29kZT4gdG8KKyAqIGFsbG93IHlvdSB0bzoKKyAqIDx1bD4KKyAqIDxsaT4gcHJvZ3Jlc3NpdmVseSBwYXJzZSB0aHJvdWdoIHBpZWNlcyBvZiBhIHN0cmluZworICogPGxpPiBhbGlnbiB0aGUgZGVjaW1hbCBwb2ludCBhbmQgb3RoZXIgYXJlYXMKKyAqIDwvdWw+CisgKiBGb3IgZXhhbXBsZSwgeW91IGNhbiBhbGlnbiBudW1iZXJzIGluIHR3byB3YXlzOgorICogPG9sPgorICogPGxpPiBJZiB5b3UgYXJlIHVzaW5nIGEgbW9ub3NwYWNlZCBmb250IHdpdGggc3BhY2luZyBmb3IgYWxpZ25tZW50LAorICogICAgICB5b3UgY2FuIHBhc3MgdGhlIDxjb2RlPkZpZWxkUG9zaXRpb248L2NvZGU+IGluIHlvdXIgZm9ybWF0IGNhbGwsIHdpdGgKKyAqICAgICAgPGNvZGU+ZmllbGQ8L2NvZGU+ID0gPGNvZGU+SU5URUdFUl9GSUVMRDwvY29kZT4uIE9uIG91dHB1dCwKKyAqICAgICAgPGNvZGU+Z2V0RW5kSW5kZXg8L2NvZGU+IHdpbGwgYmUgc2V0IHRvIHRoZSBvZmZzZXQgYmV0d2VlbiB0aGUKKyAqICAgICAgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIGludGVnZXIgYW5kIHRoZSBkZWNpbWFsLiBBZGQKKyAqICAgICAgKGRlc2lyZWRTcGFjZUNvdW50IC0gZ2V0RW5kSW5kZXgpIHNwYWNlcyBhdCB0aGUgZnJvbnQgb2YgdGhlIHN0cmluZy4KKyAqCisgKiA8bGk+IElmIHlvdSBhcmUgdXNpbmcgcHJvcG9ydGlvbmFsIGZvbnRzLAorICogICAgICBpbnN0ZWFkIG9mIHBhZGRpbmcgd2l0aCBzcGFjZXMsIG1lYXN1cmUgdGhlIHdpZHRoCisgKiAgICAgIG9mIHRoZSBzdHJpbmcgaW4gcGl4ZWxzIGZyb20gdGhlIHN0YXJ0IHRvIDxjb2RlPmdldEVuZEluZGV4PC9jb2RlPi4KKyAqICAgICAgVGhlbiBtb3ZlIHRoZSBwZW4gYnkKKyAqICAgICAgKGRlc2lyZWRQaXhlbFdpZHRoIC0gd2lkdGhUb0FsaWdubWVudFBvaW50KSBiZWZvcmUgZHJhd2luZyB0aGUgdGV4dC4KKyAqICAgICAgSXQgYWxzbyB3b3JrcyB3aGVyZSB0aGVyZSBpcyBubyBkZWNpbWFsLCBidXQgcG9zc2libHkgYWRkaXRpb25hbAorICogICAgICBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQsIGUuZy4sIHdpdGggcGFyZW50aGVzZXMgaW4gbmVnYXRpdmUKKyAqICAgICAgbnVtYmVyczogIigxMikiIGZvciAtMTIuCisgKiA8L29sPgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICogPHA+CisgKiBOdW1iZXIgZm9ybWF0cyBhcmUgZ2VuZXJhbGx5IG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSAKKyAqIHNlcGFyYXRlIGZvcm1hdCBpbnN0YW5jZXMgZm9yIGVhY2ggdGhyZWFkLiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdAorICogY29uY3VycmVudGx5LCBpdCBtdXN0IGJlIHN5bmNocm9uaXplZCBleHRlcm5hbGx5LiAKKyAqIDxwPgorICoKKyAqIDxoND5EZWNpbWFsRm9ybWF0PC9oND4KKyAqIDxwPkRlY2ltYWxGb3JtYXQgaXMgdGhlIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIE51bWJlckZvcm1hdCwgYW5kIHRoZQorICogTnVtYmVyRm9ybWF0IEFQSSBpcyBlc3NlbnRpYWxseSBhbiBhYnN0cmFjdGlvbiBmcm9tIERlY2ltYWxGb3JtYXQncyBBUEkuCisgKiBSZWZlciB0byBEZWNpbWFsRm9ybWF0IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgQVBJLjwvcD4KKyAqCisgKiBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogc2VlICAgICAgICAgIGphdmEudGV4dC5DaG9pY2VGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBIZWxlbmEgU2hpaAorICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBOdW1iZXJGb3JtYXQgZXh0ZW5kcyBVRm9ybWF0IHsKKworICAgIC8vIENvbnN0YW50cyB1c2VkIGJ5IGZhY3RvcnkgbWV0aG9kcyB0byBzcGVjaWZ5IGEgc3R5bGUgb2YgZm9ybWF0LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1CRVJTVFlMRSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTkNZU1RZTEUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQRVJDRU5UU1RZTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ0lFTlRJRklDU1RZTEUgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSU1RZTEUgPSA0OworCisgICAgLyoqCisgICAgICogRmllbGQgY29uc3RhbnQgdXNlZCB0byBjb25zdHJ1Y3QgYSBGaWVsZFBvc2l0aW9uIG9iamVjdC4gU2lnbmlmaWVzIHRoYXQKKyAgICAgKiB0aGUgcG9zaXRpb24gb2YgdGhlIGludGVnZXIgcGFydCBvZiBhIGZvcm1hdHRlZCBudW1iZXIgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSX0ZJRUxEID0gMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIGNvbnN0YW50IHVzZWQgdG8gY29uc3RydWN0IGEgRmllbGRQb3NpdGlvbiBvYmplY3QuIFNpZ25pZmllcyB0aGF0CisgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIGEgZm9ybWF0dGVkIG51bWJlciBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRmllbGRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX0ZJRUxEID0gMTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGFuIG9iamVjdC4gIENoYW5nZTogcmVjb2duaXplcyA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICAgeworICAgICAgICBpZiAobnVtYmVyIGluc3RhbmNlb2YgTG9uZykgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoKExvbmcpbnVtYmVyKS5sb25nVmFsdWUoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgaW5zdGFuY2VvZiBCaWdJbnRlZ2VyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChCaWdJbnRlZ2VyKSBudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICB9IGVsc2UgaWYgKG51bWJlciBpbnN0YW5jZW9mIGphdmEubWF0aC5CaWdEZWNpbWFsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChqYXZhLm1hdGguQmlnRGVjaW1hbCkgbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworLy8jZW5kaWYKKyAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgaW5zdGFuY2VvZiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCkgbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICB9IGVsc2UgaWYgKG51bWJlciBpbnN0YW5jZW9mIEN1cnJlbmN5QW1vdW50KSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChDdXJyZW5jeUFtb3VudCludW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIGluc3RhbmNlb2YgTnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KCgoTnVtYmVyKW51bWJlcikuZG91YmxlVmFsdWUoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBmb3JtYXQgZ2l2ZW4gT2JqZWN0IGFzIGEgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gcGFyc2Uoc291cmNlLCBwYXJzZVBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlcixuZXcgU3RyaW5nQnVmZmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KGxvbmcgbnVtYmVyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKDE5KTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgZm9ybWF0KG51bWJlciwgYnVmLCBwb3MpOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBmb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLCBuZXcgU3RyaW5nQnVmZmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQmlnRGVjaW1hbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBmb3JtYXQgYW4gSUNVIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlcikgeworICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlciwgbmV3IFN0cmluZ0J1ZmZlcigpLAorICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZFBvc2l0aW9uKDApKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQ3VycmVuY3lBbW91bnQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoQ3VycmVuY3lBbW91bnQgY3VyckFtdCkgeworICAgICAgICByZXR1cm4gZm9ybWF0KGN1cnJBbXQsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOyAKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOworLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdEZWNpbWFsLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyk7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQ3VycmVuY3lBbW91bnQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChDdXJyZW5jeUFtb3VudCBjdXJyQW10LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb24gLS0gc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKyAgICAgICAgQ3VycmVuY3kgc2F2ZSA9IGdldEN1cnJlbmN5KCksIGN1cnIgPSBjdXJyQW10LmdldEN1cnJlbmN5KCk7CisgICAgICAgIGJvb2xlYW4gc2FtZSA9IGN1cnIuZXF1YWxzKHNhdmUpOworICAgICAgICBpZiAoIXNhbWUpIHNldEN1cnJlbmN5KGN1cnIpOworICAgICAgICBmb3JtYXQoY3VyckFtdC5nZXROdW1iZXIoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgaWYgKCFzYW1lKSBzZXRDdXJyZW5jeShzYXZlKTsKKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIExvbmcgaWYgcG9zc2libGUgKGUuZy4sIHdpdGhpbiB0aGUgcmFuZ2UgW0xvbmcuTUlOX1ZBTFVFLAorICAgICAqIExvbmcuTUFYX1ZBTFVFXSBhbmQgd2l0aCBubyBkZWNpbWFscyksIG90aGVyd2lzZSBhIERvdWJsZS4KKyAgICAgKiBJZiBJbnRlZ2VyT25seSBpcyBzZXQsIHdpbGwgc3RvcCBhdCBhIGRlY2ltYWwKKyAgICAgKiBwb2ludCAob3IgZXF1aXZhbGVudDsgZS5nLiwgZm9yIHJhdGlvbmFsIG51bWJlcnMgIjEgMi8zIiwgd2lsbCBzdG9wCisgICAgICogYWZ0ZXIgdGhlIDEpLgorICAgICAqIERvZXMgbm90IHRocm93IGFuIGV4Y2VwdGlvbjsgaWYgbm8gb2JqZWN0IGNhbiBiZSBwYXJzZWQsIGluZGV4IGlzCisgICAgICogdW5jaGFuZ2VkIQorICAgICAqIEBzZWUgI2lzUGFyc2VJbnRlZ2VyT25seQorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNwYXJzZU9iamVjdChTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHByb2R1Y2UgYSBudW1iZXIuCisgICAgICogVGhlIG1ldGhvZCBtaWdodCBub3QgdXNlIHRoZSBlbnRpcmUgdGV4dCBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgQSBTdHJpbmcgd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiBBIE51bWJlciBwYXJzZWQgZnJvbSB0aGUgc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gaWYgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZyAKKyAgICAgKiBjYW5ub3QgYmUgcGFyc2VkLgorICAgICAqIEBzZWUgI2Zvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIC8vQnVnIDQzNzUzOTkgW1JpY2hhcmQvR0NMXQorICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBOdW1iZXIgcmVzdWx0ID0gcGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbik7CisgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKCJVbnBhcnNlYWJsZSBudW1iZXI6IFwiIiArIHRleHQgKyAnIicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gdGhlIGdpdmVuIHN0cmluZyBhcyBhIEN1cnJlbmN5QW1vdW50LiAgVW5saWtlCisgICAgICogdGhlIHBhcnNlKCkgbWV0aG9kLCB0aGlzIG1ldGhvZCB3aWxsIGF0dGVtcHQgdG8gcGFyc2UgYSBnZW5lcmljCisgICAgICogY3VycmVuY3kgbmFtZSwgc2VhcmNoaW5nIGZvciBhIG1hdGNoIG9mIHRoaXMgb2JqZWN0J3MgbG9jYWxlJ3MKKyAgICAgKiBjdXJyZW5jeSBkaXNwbGF5IG5hbWVzLCBvciBmb3IgYSAzLWxldHRlciBJU08gY3VycmVuY3kgY29kZS4KKyAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGZhaWwgaWYgdGhpcyBmb3JtYXQgaXMgbm90IGEgY3VycmVuY3kgZm9ybWF0LAorICAgICAqIHRoYXQgaXMsIGlmIGl0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGN1cnJlbmN5IHBhdHRlcm4gc3ltYm9sCisgICAgICogKFUrMDBBNCkgaW4gaXRzIHByZWZpeCBvciBzdWZmaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBvcyBpbnB1dC1vdXRwdXQgcG9zaXRpb247IG9uIGlucHV0LCB0aGUgcG9zaXRpb24gd2l0aGluCisgICAgICogdGV4dCB0byBtYXRjaDsgbXVzdCBoYXZlIDAgPD0gcG9zLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpOworICAgICAqIG9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IG1hdGNoZWQgY2hhcmFjdGVyLiBJZgorICAgICAqIHRoZSBwYXJzZSBmYWlscywgdGhlIHBvc2l0aW9uIGluIHVuY2hhbmdlZCB1cG9uIG91dHB1dC4KKyAgICAgKiBAcmV0dXJuIGEgQ3VycmVuY3lBbW91bnQsIG9yIG51bGwgdXBvbiBmYWlsdXJlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgQ3VycmVuY3lBbW91bnQgcGFyc2VDdXJyZW5jeShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvbmx5IC0tIHN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlCisgICAgICAgIE51bWJlciBuID0gcGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgcmV0dXJuIG4gPT0gbnVsbCA/IG51bGwgOiBuZXcgQ3VycmVuY3lBbW91bnQobiwgZ2V0RWZmZWN0aXZlQ3VycmVuY3koKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZm9ybWF0IHdpbGwgcGFyc2UgbnVtYmVycyBhcyBpbnRlZ2VycyBvbmx5LgorICAgICAqIEZvciBleGFtcGxlIGluIHRoZSBFbmdsaXNoIGxvY2FsZSwgd2l0aCBQYXJzZUludGVnZXJPbmx5IHRydWUsIHRoZQorICAgICAqIHN0cmluZyAiMTIzNC4iIHdvdWxkIGJlIHBhcnNlZCBhcyB0aGUgaW50ZWdlciB2YWx1ZSAxMjM0IGFuZCBwYXJzaW5nCisgICAgICogd291bGQgc3RvcCBhdCB0aGUgIi4iIGNoYXJhY3Rlci4gIFRoZSBkZWNpbWFsIHNlcGFyYXRvciBhY2NlcHRlZAorICAgICAqIGJ5IHRoZSBwYXJzZSBvcGVyYXRpb24gaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgKiBzdWJjbGFzcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB3aWxsIHBhcnNlIGludGVnZXJzIG9ubHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1BhcnNlSW50ZWdlck9ubHkoKSB7CisgICAgICAgIHJldHVybiBwYXJzZUludGVnZXJPbmx5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBvciBub3QgbnVtYmVycyBzaG91bGQgYmUgcGFyc2VkIGFzIGludGVnZXJzIG9ubHkuCisgICAgICogQHBhcmFtIHZhbHVlIHRydWUgaWYgdGhpcyBzaG91bGQgcGFyc2UgaW50ZWdlcnMgb25seQorICAgICAqIEBzZWUgI2lzUGFyc2VJbnRlZ2VyT25seQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhcnNlSW50ZWdlck9ubHkoYm9vbGVhbiB2YWx1ZSkgeworICAgICAgICBwYXJzZUludGVnZXJPbmx5ID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIHN0cmljdCBwYXJzaW5nIGlzIGluIGVmZmVjdC4gIFdoZW4gdGhpcyBpcyB0cnVlLCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgY29uZGl0aW9ucyBjYXVzZSBhIHBhcnNlIGZhaWx1cmUgKGV4YW1wbGVzIHVzZSB0aGUgcGF0dGVybiAiIywjIzAuIyIpOjx1bD4KKyAgICAgKiA8bGk+TGVhZGluZyB6ZXJvczxicj4KKyAgICAgKiAnMDAnLCAnMDEyMycgZmFpbCB0aGUgcGFyc2UsIGJ1dCAnMCcgYW5kICcwLjAwMScgcGFzczwvbGk+CisgICAgICogPGxpPkxlYWRpbmcgb3IgZG91YmxlZCBncm91cGluZyBzZXBhcmF0b3JzPGJyPgorICAgICAqICcsMTIzJyBhbmQgJzEsLDIzNCIgZmFpbDwvbGk+CisgICAgICogPGxpPkdyb3VwcyBvZiBpbmNvcnJlY3QgbGVuZ3RoIHdoZW4gZ3JvdXBpbmcgaXMgdXNlZDxicj4KKyAgICAgKiAnMSwyMycgYW5kICcxMjM0LDU2NycgZmFpbCwgYnV0ICcxMjM0JyBwYXNzZXM8L2xpPgorICAgICAqIDxsaT5Hcm91cGluZyBzZXBhcmF0b3JzIHVzZWQgaW4gbnVtYmVycyBmb2xsb3dlZCBieSBleHBvbmVudHM8YnI+CisgICAgICogJzEsMjM0RTUnIGZhaWxzLCBidXQgJzEyMzRFNScgYW5kICcxLDIzNEUnIHBhc3MgKCdFJyBpcyBub3QgYW4gZXhwb25lbnQgd2hlbgorICAgICAqIG5vdCBmb2xsb3dlZCBieSBhIG51bWJlcik8L2xpPgorICAgICAqIDwvdWw+CisgICAgICogV2hlbiBzdHJpY3QgcGFyc2luZyBpcyBvZmYsIGxlYWRpbmcgemVyb3MgYW5kIGFsbCBncm91cGluZyBzZXBhcmF0b3JzIGFyZSBpZ25vcmVkLgorICAgICAqIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHZhbHVlIFRydWUgdG8gZW5hYmxlIHN0cmljdCBwYXJzaW5nLiAgRGVmYXVsdCBpcyBmYWxzZS4KKyAgICAgKiBAc2VlICNpc1BhcnNlU3RyaWN0CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXJzZVN0cmljdChib29sZWFuIHZhbHVlKSB7CisgICAgICAgIHBhcnNlU3RyaWN0ID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgc3RyaWN0IHBhcnNpbmcgaXMgaW4gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzdHJpY3QgcGFyc2luZyBpcyBpbiBlZmZlY3QKKyAgICAgKiBAc2VlICNzZXRQYXJzZVN0cmljdAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNQYXJzZVN0cmljdCgpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlU3RyaWN0OworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT0gTG9jYWxlIFN0dWZmID09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVmYXVsdCBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBUaGUgZGVmYXVsdCBmb3JtYXQgaXMgb25lIG9mIHRoZSBzdHlsZXMgcHJvdmlkZWQgYnkgdGhlIG90aGVyCisgICAgICogZmFjdG9yeSBtZXRob2RzOiBnZXROdW1iZXJJbnN0YW5jZSwgZ2V0SW50ZWdlckluc3RhbmNlLAorICAgICAqIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy9CdWcgNDQwODA2NiBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgTlVNQkVSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBOVU1CRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIG51bWJlciBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLiBUaGUKKyAgICAgKiByZXR1cm5lZCBudW1iZXIgZm9ybWF0IGlzIGNvbmZpZ3VyZWQgdG8gcm91bmQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycworICAgICAqIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgdXNpbmcgSUVFRSBoYWxmLWV2ZW4gcm91bmRpbmcgKHNlZSB7QGxpbmsgCisgICAgICogY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTiBST1VORF9IQUxGX0VWRU59KSBmb3IgZm9ybWF0dGluZywKKyAgICAgKiBhbmQgdG8gcGFyc2Ugb25seSB0aGUgaW50ZWdlciBwYXJ0IG9mIGFuIGlucHV0IHN0cmluZyAoc2VlIHtAbGluaworICAgICAqICNpc1BhcnNlSW50ZWdlck9ubHkgaXNQYXJzZUludGVnZXJPbmx5fSkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgaW50ZWdlciB2YWx1ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAvL0J1ZyA0NDA4MDY2IFtSaWNoYXJkL0dDTF0KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnRlZ2VySW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuIFRoZQorICAgICAqIHJldHVybmVkIG51bWJlciBmb3JtYXQgaXMgY29uZmlndXJlZCB0byByb3VuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgICAgICogdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyBJRUVFIGhhbGYtZXZlbiByb3VuZGluZyAoc2VlIHtAbGluayAKKyAgICAgKiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjUk9VTkRfSEFMRl9FVkVOIFJPVU5EX0hBTEZfRVZFTn0pIGZvciBmb3JtYXR0aW5nLAorICAgICAqIGFuZCB0byBwYXJzZSBvbmx5IHRoZSBpbnRlZ2VyIHBhcnQgb2YgYW4gaW5wdXQgc3RyaW5nIChzZWUge0BsaW5rCisgICAgICogI2lzUGFyc2VJbnRlZ2VyT25seSBpc1BhcnNlSW50ZWdlck9ubHl9KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIG51bWJlciBmb3JtYXQgaXMgbmVlZGVkCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy9CdWcgNDQwODA2NiBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBJTlRFR0VSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4gVGhlCisgICAgICogcmV0dXJuZWQgbnVtYmVyIGZvcm1hdCBpcyBjb25maWd1cmVkIHRvIHJvdW5kIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKyAgICAgKiB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nIChzZWUge0BsaW5rIAorICAgICAqIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU4gUk9VTkRfSEFMRl9FVkVOfSkgZm9yIGZvcm1hdHRpbmcsCisgICAgICogYW5kIHRvIHBhcnNlIG9ubHkgdGhlIGludGVnZXIgcGFydCBvZiBhbiBpbnB1dCBzdHJpbmcgKHNlZSB7QGxpbmsKKyAgICAgKiAjaXNQYXJzZUludGVnZXJPbmx5IGlzUGFyc2VJbnRlZ2VyT25seX0pLgorICAgICAqCisgICAgICogQHBhcmFtIGluTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgbnVtYmVyIGZvcm1hdCBpcyBuZWVkZWQKKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgaW50ZWdlciB2YWx1ZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEludGVnZXJJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIENVUlJFTkNZU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIENVUlJFTkNZU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgQ1VSUkVOQ1lTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBlcmNlbnRhZ2UgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgcGVyY2VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRQZXJjZW50SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgUEVSQ0VOVFNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgUEVSQ0VOVFNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0UGVyY2VudEluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBQRVJDRU5UU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm5zIGEgc2NpZW50aWZpYyBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBzY2llbnRpZmljIG51bWJlciBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRTY2llbnRpZmljSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBTQ0lFTlRJRklDU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm5zIGEgc2NpZW50aWZpYyBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBzY2llbnRpZmljIG51bWJlciBmb3JtYXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisKKyAgICAvLyA9PT09PSBGYWN0b3J5IHN0dWZmID09PT09CisgICAgLyoqCisgICAgICogQSBOdW1iZXJGb3JtYXRGYWN0b3J5IGlzIHVzZWQgdG8gcmVnaXN0ZXIgbmV3IG51bWJlciBmb3JtYXRzLiAgVGhlIGZhY3RvcnkKKyAgICAgKiBzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYW55IG9mIHRoZSBwcmVkZWZpbmVkIGZvcm1hdHMgZm9yIGVhY2ggbG9jYWxlIGl0CisgICAgICogc3VwcG9ydHMuICBXaGVuIHJlZ2lzdGVyZWQsIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzIGV4dGVuZCBvciBvdmVycmlkZSB0aGUKKyAgICAgKiBsb2NhbGVzIGFscmVhZHkgc3VwcG9ydGVkIGJ5IElDVS4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gYXMgb2YgSUNVNEogMy4yLCB0aGUgZGVmYXVsdCBBUEkgZm9yIE51bWJlckZvcm1hdEZhY3RvcnkgdXNlcworICAgICAqIFVMb2NhbGUgaW5zdGVhZCBvZiBMb2NhbGUuICBJbnN0ZWFkIG9mIG92ZXJyaWRpbmcgY3JlYXRlRm9ybWF0KExvY2FsZSwgaW50KSwKKyAgICAgKiBuZXcgaW1wbGVtZW50YXRpb25zIHNob3VsZCBvdmVycmlkZSBjcmVhdGVGYWN0b3J5KFVMb2NhbGUsIGludCkuICBOb3RlIHRoYXQKKyAgICAgKiBvbmUgb2YgdGhlc2UgdHdvIG1ldGhvZHMgPGI+TVVTVDwvYj4gYmUgb3ZlcnJpZGRlbiBvciBlbHNlIGFuIGluZmluaXRlCisgICAgICogbG9vcCB3aWxsIG9jY3VyLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBOdW1iZXJGb3JtYXRGYWN0b3J5IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbHVlIHBhc3NlZCB0byBmb3JtYXQgcmVxdWVzdGluZyBhIGRlZmF1bHQgbnVtYmVyIGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfTlVNQkVSID0gTlVNQkVSU1RZTEU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbHVlIHBhc3NlZCB0byBmb3JtYXQgcmVxdWVzdGluZyBhIGN1cnJlbmN5IGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfQ1VSUkVOQ1kgPSBDVVJSRU5DWVNUWUxFOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBWYWx1ZSBwYXNzZWQgdG8gZm9ybWF0IHJlcXVlc3RpbmcgYSBwZXJjZW50IGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfUEVSQ0VOVCA9IFBFUkNFTlRTVFlMRTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVmFsdWUgcGFzc2VkIHRvIGZvcm1hdCByZXF1ZXN0aW5nIGEgc2NpZW50aWZpYyBmb3JtYXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUX1NDSUVOVElGSUMgPSBTQ0lFTlRJRklDU1RZTEU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbHVlIHBhc3NlZCB0byBmb3JtYXQgcmVxdWVzdGluZyBhbiBpbnRlZ2VyIGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfSU5URUdFUiA9IElOVEVHRVJTVFlMRTsKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZmFjdG9yeSBpcyB2aXNpYmxlLiAgRGVmYXVsdCBpcyB0cnVlLgorICAgICAgICAgKiBJZiBub3QgdmlzaWJsZSwgdGhlIGxvY2FsZXMgc3VwcG9ydGVkIGJ5IHRoaXMgZmFjdG9yeSB3aWxsIG5vdAorICAgICAgICAgKiBiZSBsaXN0ZWQgYnkgZ2V0QXZhaWxhYmxlTG9jYWxlcy4gIFRoaXMgdmFsdWUgbXVzdCBub3QgY2hhbmdlLgorICAgICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGZhY3RvcnkgaXMgdmlzaWJsZS4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIHB1YmxpYyBib29sZWFuIHZpc2libGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyBhbiBpbW11dGFibGUgY29sbGVjdGlvbiBvZiB0aGUgbG9jYWxlIG5hbWVzIGRpcmVjdGx5IAorICAgICAgICAgKiBzdXBwb3J0ZWQgYnkgdGhpcyBmYWN0b3J5LgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBzdXBwb3J0ZWQgbG9jYWxlIG5hbWVzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgICBwdWJsaWMgYWJzdHJhY3QgU2V0IGdldFN1cHBvcnRlZExvY2FsZU5hbWVzKCk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBudW1iZXIgZm9ybWF0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgSWYgdGhlIGxvY2FsZQorICAgICAgICAgKiBpcyBub3Qgc3VwcG9ydGVkLCByZXR1cm4gbnVsbC4gIElmIHRoZSBsb2NhbGUgaXMgc3VwcG9ydGVkLCBidXQKKyAgICAgICAgICogdGhlIHR5cGUgaXMgbm90IHByb3ZpZGVkIGJ5IHRoaXMgc2VydmljZSwgcmV0dXJuIG51bGwuICBPdGhlcndpc2UKKyAgICAgICAgICogcmV0dXJuIGFuIGFwcHJvcHJpYXRlIGluc3RhbmNlIG9mIE51bWJlckZvcm1hdC4KKyAgICAgICAgICogPGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgaW1wbGVtZW50YXRpb25zIHNob3VsZCBvdmVycmlkZQorICAgICAgICAgKiB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGNyZWF0ZUZvcm1hdChMb2NhbGUsIGludCkuCisgICAgICAgICAqIEBwYXJhbSBsb2MgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBmb3JtYXQKKyAgICAgICAgICogQHBhcmFtIGZvcm1hdFR5cGUgdGhlIHR5cGUgb2YgZm9ybWF0CisgICAgICAgICAqIEByZXR1cm4gdGhlIE51bWJlckZvcm1hdCwgb3IgbnVsbC4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUZvcm1hdChVTG9jYWxlIGxvYywgaW50IGZvcm1hdFR5cGUpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVGb3JtYXQobG9jLnRvTG9jYWxlKCksIGZvcm1hdFR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBudW1iZXIgZm9ybWF0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgSWYgdGhlIGxvY2FsZQorICAgICAgICAgKiBpcyBub3Qgc3VwcG9ydGVkLCByZXR1cm4gbnVsbC4gIElmIHRoZSBsb2NhbGUgaXMgc3VwcG9ydGVkLCBidXQKKyAgICAgICAgICogdGhlIHR5cGUgaXMgbm90IHByb3ZpZGVkIGJ5IHRoaXMgc2VydmljZSwgcmV0dXJuIG51bGwuICBPdGhlcndpc2UKKyAgICAgICAgICogcmV0dXJuIGFuIGFwcHJvcHJpYXRlIGluc3RhbmNlIG9mIE51bWJlckZvcm1hdC4KKyAgICAgICAgICogPGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgY3JlYXRlRm9ybWF0KFVMb2NhbGUsIGludCkgc2hvdWxkIGJlCisgICAgICAgICAqIG92ZXJyaWRkZW4gaW5zdGVhZCBvZiB0aGlzIG1ldGhvZC4gIFRoaXMgbWV0aG9kIGlzIG5vIGxvbmdlciAKKyAgICAgICAgICogYWJzdHJhY3QgYW5kIGRlbGVnYXRlcyB0byB0aGF0IG1ldGhvZC4KKyAgICAgICAgICogQHBhcmFtIGxvYyB0aGUgbG9jYWxlIGZvciB3aGljaCB0byBjcmVhdGUgdGhlIGZvcm1hdAorICAgICAgICAgKiBAcGFyYW0gZm9ybWF0VHlwZSB0aGUgdHlwZSBvZiBmb3JtYXQKKyAgICAgICAgICogQHJldHVybiB0aGUgTnVtYmVyRm9ybWF0LCBvciBudWxsLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgY3JlYXRlRm9ybWF0KExvY2FsZSBsb2MsIGludCBmb3JtYXRUeXBlKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlRm9ybWF0KFVMb2NhbGUuZm9yTG9jYWxlKGxvYyksIGZvcm1hdFR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIE51bWJlckZvcm1hdEZhY3RvcnkoKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIE51bWJlckZvcm1hdEZhY3RvcnkgdGhhdCBzdXBwb3J0cyBhIHNpbmdsZSBsb2NhbGUuICBJdCBjYW4gYmUgdmlzaWJsZSBvciBpbnZpc2libGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5IGV4dGVuZHMgTnVtYmVyRm9ybWF0RmFjdG9yeSB7CisgICAgICAgIGZpbmFsIFNldCBsb2NhbGVOYW1lczsKKyAgICAgICAgZmluYWwgYm9vbGVhbiB2aXNpYmxlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIHRoaXMobG9jYWxlLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkoTG9jYWxlIGxvY2FsZSwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgICAgICBsb2NhbGVOYW1lcyA9IENvbGxlY3Rpb25zLnNpbmdsZXRvbihVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLmdldEJhc2VOYW1lKCkpOworICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICB0aGlzKGxvY2FsZSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KFVMb2NhbGUgbG9jYWxlLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgICAgIGxvY2FsZU5hbWVzID0gQ29sbGVjdGlvbnMuc2luZ2xldG9uKGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiB2aXNpYmxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgU2V0IGdldFN1cHBvcnRlZExvY2FsZU5hbWVzKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZU5hbWVzOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gc2hpbSBzbyB3ZSBjYW4gYnVpbGQgd2l0aG91dCBzZXJ2aWNlIGNvZGUKKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTnVtYmVyRm9ybWF0U2hpbSB7CisgICAgICAgIGFic3RyYWN0IExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgYWJzdHJhY3QgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGFic3RyYWN0IE9iamVjdCByZWdpc3RlckZhY3RvcnkoTnVtYmVyRm9ybWF0RmFjdG9yeSBmKTsKKyAgICAgICAgYWJzdHJhY3QgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrKTsKKyAgICAgICAgYWJzdHJhY3QgTnVtYmVyRm9ybWF0IGNyZWF0ZUluc3RhbmNlKFVMb2NhbGUgbCwgaW50IGspOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE51bWJlckZvcm1hdFNoaW0gc2hpbTsKKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXRTaGltIGdldFNoaW0oKSB7CisgICAgICAgIC8vIE5vdGU6IHRoaXMgaW5zdGFudGlhdGlvbiBpcyBzYWZlIG9uIGxvb3NlLW1lbW9yeS1tb2RlbCBjb25maWd1cmF0aW9ucworICAgICAgICAvLyBkZXNwaXRlIGxhY2sgb2Ygc3luY2hyb25pemF0aW9uLCBzaW5jZSB0aGUgc2hpbSBpbnN0YW5jZSBoYXMgbm8gc3RhdGUtLQorICAgICAgICAvLyBpdCdzIGFsbCBpbiB0aGUgY2xhc3MgaW5pdC4gIFRoZSB3b3JzdCBwcm9ibGVtIGlzIHdlIG1pZ2h0IGluc3RhbnRpYXRlCisgICAgICAgIC8vIHR3byBzaGltIGluc3RhbmNlcywgYnV0IHRoZXknbGwgc2hhcmUgdGhlIHNhbWUgc3RhdGUgc28gdGhhdCdzIG9rLgorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUoImNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0U2VydmljZVNoaW0iKTsKKyAgICAgICAgICAgICAgICBzaGltID0gKE51bWJlckZvcm1hdFNoaW0pY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgTG9jYWxlcyBmb3Igd2hpY2ggTnVtYmVyRm9ybWF0cyBhcmUgYXZhaWxhYmxlLgorICAgICAqIEByZXR1cm4gdGhlIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgTG9jYWxlcyBmb3Igd2hpY2ggTnVtYmVyRm9ybWF0cyBhcmUgYXZhaWxhYmxlLgorICAgICAqIEByZXR1cm4gdGhlIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBuZXcgTnVtYmVyRm9ybWF0RmFjdG9yeS4gIFRoZSBmYWN0b3J5IGlzIGFkb3B0ZWQgYnkKKyAgICAgKiB0aGUgc2VydmljZSBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQuICBUaGUgcmV0dXJuZWQgb2JqZWN0IGlzIGEKKyAgICAgKiBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gZmFjdG9yeSB0aGUgZmFjdG9yeSB0byByZWdpc3RlcgorICAgICAqIEByZXR1cm4gYSBrZXkgd2l0aCB3aGljaCB0byB1bnJlZ2lzdGVyIHRoZSBmYWN0b3J5CisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShOdW1iZXJGb3JtYXRGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiZmFjdG9yeSBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5yZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciB0aGUgZmFjdG9yeSBvciBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBrZXkgKG9idGFpbmVkIGZyb20KKyAgICAgKiByZWdpc3Rlckluc3RhbmNlIG9yIHJlZ2lzdGVyRmFjdG9yeSkuCisgICAgICogQHBhcmFtIHJlZ2lzdHJ5S2V5IGEga2V5IG9idGFpbmVkIGZyb20gcmVnaXN0ZXJGYWN0b3J5CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3Qgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5S2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlZ2lzdHJ5S2V5IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzaGltLnVucmVnaXN0ZXIocmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIC8vID09PT09IEVuZCBvZiBmYWN0b3J5IHN0dWZmID09PT09CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbWF4aW11bUludGVnZXJEaWdpdHMgKiAzNyArIG1heEZyYWN0aW9uRGlnaXRzOworICAgICAgICAvLyBqdXN0IGVub3VnaCBmaWVsZHMgZm9yIGEgcmVhc29uYWJsZSBkaXN0cmlidXRpb24KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgZXF1YWxzLiAgVHdvIE51bWJlckZvcm1hdHMgYXJlIGVxdWFsIGlmIHRoZXkgYXJlIG9mIHRoZSBzYW1lIGNsYXNzCisgICAgICogYW5kIHRoZSBzZXR0aW5ncyAoZ3JvdXBpbmdVc2VkLCBwYXJzZUludGVnZXJPbmx5LCBtYXhpbXVtSW50ZWdlckRpZ2l0cywgZXRjLgorICAgICAqIGFyZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgZXF1YWwgdG8gdGhpcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBOdW1iZXJGb3JtYXQgb3RoZXIgPSAoTnVtYmVyRm9ybWF0KSBvYmo7CisgICAgICAgIHJldHVybiBtYXhpbXVtSW50ZWdlckRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAgICAgICAgJiYgbWluaW11bUludGVnZXJEaWdpdHMgPT0gb3RoZXIubWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgICAgICAgICYmIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5taW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIGdyb3VwaW5nVXNlZCA9PSBvdGhlci5ncm91cGluZ1VzZWQKKyAgICAgICAgICAgICYmIHBhcnNlSW50ZWdlck9ubHkgPT0gb3RoZXIucGFyc2VJbnRlZ2VyT25seQorICAgICAgICAgICAgJiYgcGFyc2VTdHJpY3QgPT0gb3RoZXIucGFyc2VTdHJpY3Q7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIE51bWJlckZvcm1hdCBvdGhlciA9IChOdW1iZXJGb3JtYXQpIHN1cGVyLmNsb25lKCk7CisgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGlzIGZvcm1hdC4gRm9yIGV4YW1wbGUsIGluIHRoZQorICAgICAqIGVuX1VTIGxvY2FsZSwgd2l0aCBncm91cGluZyBvbiwgdGhlIG51bWJlciAxMjM0NTY3IHdpbGwgYmUgZm9ybWF0dGVkCisgICAgICogYXMgIjEsMjM0LDU2NyIuIFRoZSBncm91cGluZyBzZXBhcmF0b3IgYXMgd2VsbCBhcyB0aGUgc2l6ZSBvZiBlYWNoIGdyb3VwCisgICAgICogaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgaXMgZGV0ZXJtaW5lZCBieSBzdWJjbGFzc2VzIG9mIE51bWJlckZvcm1hdC4KKyAgICAgKiBHcm91cGluZyBhZmZlY3RzIGJvdGggcGFyc2luZyBhbmQgZm9ybWF0dGluZy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZAorICAgICAqIEBzZWUgI3NldEdyb3VwaW5nVXNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzR3JvdXBpbmdVc2VkKCkgeworICAgICAgICByZXR1cm4gZ3JvdXBpbmdVc2VkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBvciBub3QgZ3JvdXBpbmcgd2lsbCBiZSB1c2VkIGluIHRoaXMgZm9ybWF0LiAgR3JvdXBpbmcKKyAgICAgKiBhZmZlY3RzIGJvdGggcGFyc2luZyBhbmQgZm9ybWF0dGluZy4KKyAgICAgKiBAc2VlICNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0cnVlIHRvIHVzZSBncm91cGluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcm91cGluZ1VzZWQoYm9vbGVhbiBuZXdWYWx1ZSkgeworICAgICAgICBncm91cGluZ1VzZWQgPSBuZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA0MCwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCB0aGUgZXhhY3QgYmVoYXZpb3Igd2hlbiB0aGlzIHZhbHVlIGlzIGV4Y2VlZGVkIGlzCisgICAgICogc3ViY2xhc3Mtc3BlY2lmaWMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1heGltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBtdXN0IGJlID49IG1pbmltdW1JbnRlZ2VyRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtYXhpbXVtSW50ZWdlckRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtaW5pbXVtSW50ZWdlckRpZ2l0cywgdGhlbiBtaW5pbXVtSW50ZWdlckRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gIFN1YmNsYXNzZXMgbWlnaHQgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWF4aW11bUludGVnZXJEaWdpdHMgPSBNYXRoLm1heCgwLG5ld1ZhbHVlKTsKKyAgICAgICAgaWYgKG1pbmltdW1JbnRlZ2VyRGlnaXRzID4gbWF4aW11bUludGVnZXJEaWdpdHMpCisgICAgICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IG1heGltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEsIHdoaWNoIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLgorICAgICAqIFdoZW4gZm9ybWF0dGluZywgaWYgdGhpcyB2YWx1ZSBpcyBub3QgcmVhY2hlZCwgbnVtYmVycyBhcmUgcGFkZGVkIG9uIHRoZQorICAgICAqIGxlZnQgd2l0aCB0aGUgbG9jYWxlLXNwZWNpZmljICcwJyBjaGFyYWN0ZXIgdG8gZW5zdXJlIGF0IGxlYXN0IHRoaXMKKyAgICAgKiBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1pbmltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoaXMgbXVzdCBiZSA8PSBtYXhpbXVtSW50ZWdlckRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWluaW11bUludGVnZXJEaWdpdHMgaXMgbW9yZSB0aGFuIHRoZSBjdXJyZW50IHZhbHVlCisgICAgICogb2YgbWF4aW11bUludGVnZXJEaWdpdHMsIHRoZW4gbWF4aW11bUludGVnZXJEaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyB0byBiZSBzaG93bjsgaWYKKyAgICAgKiBsZXNzIHRoYW4gemVybywgdGhlbiB6ZXJvIGlzIHVzZWQuIFN1YmNsYXNzZXMgbWlnaHQgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHMgPSBNYXRoLm1heCgwLG5ld1ZhbHVlKTsKKyAgICAgICAgaWYgKG1pbmltdW1JbnRlZ2VyRGlnaXRzID4gbWF4aW11bUludGVnZXJEaWdpdHMpCisgICAgICAgICAgICBtYXhpbXVtSW50ZWdlckRpZ2l0cyA9IG1pbmltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbgorICAgICAqIHBvcnRpb24gb2YgYSBudW1iZXIuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAzLCB3aGljaCBzdWJjbGFzc2VzCisgICAgICogY2FuIG92ZXJyaWRlLiAgV2hlbiBmb3JtYXR0aW5nLCB0aGUgZXhhY3QgYmVoYXZpb3Igd2hlbiB0aGlzCisgICAgICogdmFsdWUgaXMgZXhjZWVkZWQgaXMgc3ViY2xhc3Mtc3BlY2lmaWMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIAorICAgICAqIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgKiBAc2VlICNzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAgCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtYXhpbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBtdXN0IGJlID49IG1pbmltdW1GcmFjdGlvbkRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWF4aW11bUZyYWN0aW9uRGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1pbmltdW1GcmFjdGlvbkRpZ2l0cywgdGhlbiBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiBUaGUgY29uY3JldGUgc3ViY2xhc3MgbWF5IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzID0gTWF0aC5tYXgoMCxuZXdWYWx1ZSk7CisgICAgICAgIGlmIChtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMpCisgICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSBtYXhpbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIHdoaWNoIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLgorICAgICAqIFdoZW4gZm9ybWF0dGluZywgaWYgdGhpcyB2YWx1ZSBpcyBub3QgcmVhY2hlZCwgbnVtYmVycyBhcmUgcGFkZGVkIG9uCisgICAgICogdGhlIHJpZ2h0IHdpdGggdGhlIGxvY2FsZS1zcGVjaWZpYyAnMCcgY2hhcmFjdGVyIHRvIGVuc3VyZSBhdCBsZWFzdAorICAgICAqIHRoaXMgbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWluaW11bUZyYWN0aW9uRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbiBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGlzIG11c3QgYmUgPD0gbWF4aW11bUZyYWN0aW9uRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgZXhjZWVkcyB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1heGltdW1GcmFjdGlvbkRpZ2l0cywgdGhlbiBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiAgU3ViY2xhc3NlcyBtaWdodCBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9IE1hdGgubWF4KDAsbmV3VmFsdWUpOworICAgICAgICBpZiAobWF4aW11bUZyYWN0aW9uRGlnaXRzIDwgbWluaW11bUZyYWN0aW9uRGlnaXRzKQorICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzID0gbWluaW11bUZyYWN0aW9uRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCB1c2VkIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBhbW91bnRzLiAgVGhpcyB0YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHksIGlmIHRoaXMgZm9ybWF0IGlzIGEKKyAgICAgKiBjdXJyZW5jeSBmb3JtYXQuICBJZiB0aGlzIGZvcm1hdCBpcyBub3QgYSBjdXJyZW5jeSBmb3JtYXQsIHRoZW4KKyAgICAgKiB0aGUgY3VycmVuY3kgb2JqZWN0IGlzIHVzZWQgaWYgYW5kIHdoZW4gdGhpcyBvYmplY3QgYmVjb21lcyBhCisgICAgICogY3VycmVuY3kgZm9ybWF0LgorICAgICAqIEBwYXJhbSB0aGVDdXJyZW5jeSBuZXcgY3VycmVuY3kgb2JqZWN0IHRvIHVzZS4gIE1heSBiZSBudWxsIGZvcgorICAgICAqIHNvbWUgc3ViY2xhc3Nlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeShDdXJyZW5jeSB0aGVDdXJyZW5jeSkgeworICAgICAgICBjdXJyZW5jeSA9IHRoZUN1cnJlbmN5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCB1c2VkIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBhbW91bnRzLiAgVGhpcyBtYXkgYmUgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3kgZ2V0Q3VycmVuY3koKSB7CisgICAgICAgIHJldHVybiBjdXJyZW5jeTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVuY3kgaW4gZWZmZWN0IGZvciB0aGlzIGZvcm1hdHRlci4gIFN1YmNsYXNzZXMKKyAgICAgKiBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgYXMgbmVlZGVkLiAgVW5saWtlIGdldEN1cnJlbmN5KCksCisgICAgICogdGhpcyBtZXRob2Qgc2hvdWxkIG5ldmVyIHJldHVybiBudWxsLgorICAgICAqIEByZXR1cm4gYSBub24tbnVsbCBDdXJyZW5jeQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBDdXJyZW5jeSBnZXRFZmZlY3RpdmVDdXJyZW5jeSgpIHsKKyAgICAgICAgQ3VycmVuY3kgYyA9IGdldEN1cnJlbmN5KCk7CisgICAgICAgIGlmIChjID09IG51bGwpIHsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IGdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBpZiAodWxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdWxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IEN1cnJlbmN5LmdldEluc3RhbmNlKHVsb2MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09cHJpdmF0ZXM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvLyBIb29rIGZvciBzZXJ2aWNlCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgaW50IGNob2ljZSkgeworLy8gICAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworLy8gICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnN0YW5jZShkZXNpcmVkTG9jYWxlLCBjaG9pY2UpOworLy8gICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAvLyBUT0RPOiBzaGltcyBtdXN0IGNhbGwgc2V0TG9jYWxlKCkgb24gb2JqZWN0IHRoZXkgY3JlYXRlCisvLyAgICAgICAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5jcmVhdGVJbnN0YW5jZShkZXNpcmVkTG9jYWxlLCBjaG9pY2UpOworLy8gICAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmNyZWF0ZUluc3RhbmNlKGRlc2lyZWRMb2NhbGUsIGNob2ljZSk7CisgICAgfQorCisgICAgLy8gW05FV10KKyAgICBzdGF0aWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUluc3RhbmNlKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgaW50IGNob2ljZSkgeworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGdldFBhdHRlcm4oZGVzaXJlZExvY2FsZSwgY2hvaWNlKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhkZXNpcmVkTG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIC8vIEhlcmUgd2UgYXNzdW1lIHRoYXQgdGhlIGxvY2FsZSBwYXNzZWQgaW4gaXMgaW4gdGhlIGNhbm9uaWNhbAorICAgICAgICAvLyBmb3JtLCBlLmc6IHB0X1BUX0BjdXJyZW5jeT1QVEUgbm90IHB0X1BUX1BSRUVVUk8KKyAgICAgICAgaWYoY2hvaWNlID09IENVUlJFTkNZU1RZTEUpeworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBzeW1ib2xzLmdldEN1cnJlbmN5UGF0dGVybigpOworICAgICAgICAgICAgaWYodGVtcCE9bnVsbCl7CisgICAgICAgICAgICAgICAgcGF0dGVybiA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigibG9jOiAiICsgZGVzaXJlZExvY2FsZSArICIgY2hvaWNlOiAiICsgY2hvaWNlICsgIiBwYXQ6ICIgKyBwYXR0ZXJuICsgIiBzeW06ICIgKyBzeW1ib2xzICsgIiByZXN1bHQ6ICIgKyBmb3JtYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8qQnVnIDQ0MDgwNjYKKyAgICAgICAgIEFkZCBjb2RlcyBmb3IgdGhlIG5ldyBtZXRob2QgZ2V0SW50ZWdlckluc3RhbmNlKCkgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRoaXMgLS0gdGhpcyBpcyBhbG1vc3QgY2VydGFpbmx5IG5vdCB0aGUgd2F5IHdlIHdhbnQKKyAgICAgICAgLy8gdG8gZG8gdGhpcy4gIGFsaXUgMS82LzIwMDQKKyAgICAgICAgaWYgKGNob2ljZSA9PSBJTlRFR0VSU1RZTEUpIHsKKyAgICAgICAgICAgIGZvcm1hdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMCk7CisgICAgICAgICAgICBmb3JtYXQuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgICAgIGZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUT0RPOiB0aGUgYWN0dWFsIGxvY2FsZSBvZiB0aGUgKnBhdHRlcm4qIG1heSBkaWZmZXIgZnJvbSB0aGF0CisgICAgICAgIC8vIGZvciB0aGUgKnN5bWJvbHMqLiAgRm9yIG5vdywgd2UgdXNlIHRoZSBkYXRhIGZvciB0aGUgc3ltYm9scy4KKyAgICAgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgICAgICBVTG9jYWxlIHZhbGlkID0gc3ltYm9scy5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICBVTG9jYWxlIGFjdHVhbCA9IHN5bWJvbHMuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSk7CisgICAgICAgIGZvcm1hdC5zZXRMb2NhbGUodmFsaWQsIGFjdHVhbCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZm9ybWF0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBhdHRlcm4gZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUgYW5kIGNob2ljZS4KKyAgICAgKiBAcGFyYW0gZm9yTG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGNob2ljZSB0aGUgcGF0dGVybiBmb3JtYXQuCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybgorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjQgc3ViY2xhc3NlcnMgc2hvdWxkIG92ZXJyaWRlIGdldFBhdHRlcm4oVUxvY2FsZSwgaW50KSBpbnN0ZWFkIG9mIHRoaXMgbWV0aG9kLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgU3RyaW5nIGdldFBhdHRlcm4oTG9jYWxlIGZvckxvY2FsZSwgaW50IGNob2ljZSkgeworICAgICAgICByZXR1cm4gZ2V0UGF0dGVybihVTG9jYWxlLmZvckxvY2FsZShmb3JMb2NhbGUpLCBjaG9pY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBhdHRlcm4gZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUgYW5kIGNob2ljZS4KKyAgICAgKiBAcGFyYW0gZm9yTG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGNob2ljZSB0aGUgcGF0dGVybiBmb3JtYXQuCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBTdHJpbmcgZ2V0UGF0dGVybihVTG9jYWxlIGZvckxvY2FsZSwgaW50IGNob2ljZSkgeworCisgICAgICAgIC8qIFRoZSBmb2xsb3dpbmcgY29kZSB0YWtlcyBjYXJlIG9mIGEgZmV3IGNhc2VzIHdoZXJlIHRoZQorICAgICAgICAgKiByZXNvdXJjZSBkYXRhIGluIHRoZSB1bmRlcmx5aW5nIEpESyBsYWdzIHRoZSBuZXcgZmVhdHVyZXMKKyAgICAgICAgICogd2UgaGF2ZSBhZGRlZCB0byBJQ1U0Sjogc2NpZW50aWZpYyBub3RhdGlvbiwgcm91bmRpbmcsIGFuZAorICAgICAgICAgKiBzZWNvbmRhcnkgZ3JvdXBpbmcuCisgICAgICAgICAqCisgICAgICAgICAqIFdlIGRldGVjdCB0aGVzZSBjYXNlcyBoZXJlIGFuZCByZXR1cm4gdmFyaW91cyBoYXJkLWNvZGVkCisgICAgICAgICAqIHJlc291cmNlIGRhdGEuICBUaGlzIGlzIHRoZSBzaW1wbGVzdCBzb2x1dGlvbiBmb3Igbm93LCBidXQKKyAgICAgICAgICogaXQgaXMgbm90IGEgZ29vZCBsb25nLXRlcm0gbWVjaGFuaXNtLgorICAgICAgICAgKiAKKyAgICAgICAgICogV2Ugc2hvdWxkIHJlcGxhY2UgdGhpcyBjb2RlIHdpdGggYSBkYXRhLWRyaXZlbiBtZWNoYW5pc20KKyAgICAgICAgICogdGhhdCByZWFkcyB0aGUgYnVuZGxlIGNvbS5pYm0uaWN1LmltcGwuZGF0YS5Mb2NhbGVFbGVtZW50cworICAgICAgICAgKiBhbmQgcGFyc2VzIGFuIGV4Y2VwdGlvbiB0YWJsZSB0aGF0IG92ZXJyaWRlcyB0aGUgc3RhbmRhcmQKKyAgICAgICAgICogZGF0YSBhdCBqYXZhLnRleHQucmVzb3VyY2UuTG9jYWxlRWxlbWVudHMqLmphdmEuCisgICAgICAgICAqIEFsdGVybmF0aXZlbHksIHdlIHNob3VsZCBjcmVhdGUgb3VyIG93biBjb3B5IG9mIHRoZQorICAgICAgICAgKiByZXNvdXJjZSBkYXRhLCBhbmQgdXNlIHRoYXQgZXhjbHVzaXZlbHkuCisgICAgICAgICAqLworCisgICAgICAgIC8vIFRFTVBPUkFSWSwgdW50aWwgd2UgZ2V0IHNjaWVudGlmaWMgcGF0dGVybnMgaW50byB0aGUgbWFpbgorICAgICAgICAvLyByZXNvdXJjZXM6ICBSZXRyaWV2ZSBzY2llbnRpZmljIHBhdHRlcm5zIGZyb20gb3VyIHJlc291cmNlcy4KKyAgICAgICAgaWYgKGNob2ljZSA9PSBTQ0lFTlRJRklDU1RZTEUpIHsKKyAgICAgICAgICAgIC8vIFRlbXBvcmFyaWx5IGhhcmQgY29kZTsgcmV0cmlldmUgZnJvbSByZXNvdXJjZSBsYXRlcgorICAgICAgICAgICAgLypGb3IgSUNVIGNvbXBhdGliaWxpdHkgW1JpY2hhcmQvR0NMXSovCisgICAgICAgICAgICByZXR1cm4gIiNFMCI7CisgICAgICAgICAgICAvLyByZXR1cm4gTnVtYmVyRm9ybWF0LmdldEJhc2VTdHJpbmdBcnJheSgiTnVtYmVyUGF0dGVybnMiKVtTQ0lFTlRJRklDU1RZTEVdOworICAgICAgICB9CisgICAgICAgIC8vIFRFTVBPUkFSWTogVXNlIHJvdW5kaW5nIGZvciBTd2lzcyBjdXJyZW5jeQorICAgICAgICAvL2lmIChjaG9pY2UgPT0gQ1VSUkVOQ1lTVFlMRSAmJgorICAgICAgICAvLyAgICBmb3JMb2NhbGUuZ2V0Q291bnRyeSgpLmVxdWFscygiQ0giKSkgeworICAgICAgICAvLyAgICByZXR1cm4gIidGci4gJyMsIyMwLjA1OydGci4tJyMsIyMwLjA1IjsKKyAgICAgICAgLy99CisgICAgICAgIC8vIFRFTVBPUkFSWTogU3BlY2lhbCBjYXNlIElOIG51bWJlciBmb3JtYXQKKyAgICAgICAgLy9pZiAoY2hvaWNlID09IE5VTUJFUlNUWUxFICYmCisgICAgICAgIC8vICAgIGZvckxvY2FsZS5nZXRDb3VudHJ5KCkuZXF1YWxzKCJJTiIpKSB7CisgICAgICAgIC8vICAgIHJldHVybiAiIywjIywjIzAuIyMjIjsKKyAgICAgICAgLy99CisKKyAgICAgICAgLy8ge2RsZn0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLgorICAgICAgICAgICAgZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgZm9yTG9jYWxlKTsKKyAgICAgICAgU3RyaW5nW10gbnVtYmVyUGF0dGVybnMgPSByYi5nZXRTdHJpbmdBcnJheSgiTnVtYmVyUGF0dGVybnMiKTsKKworICAgICAgICAvKiB7ZGxmfQorICAgICAgICAvLyBUcnkgdGhlIGNhY2hlIGZpcnN0CisgICAgICAgIFN0cmluZ1tdIG51bWJlclBhdHRlcm5zID0gKFN0cmluZ1tdKSBjYWNoZWRMb2NhbGVEYXRhLmdldChmb3JMb2NhbGUpOworICAgICAgICBpZiAobnVtYmVyUGF0dGVybnMgPT0gbnVsbCkgeworICAgICAgICAgICAgT3ZlcmxheUJ1bmRsZSByZXNvdXJjZSA9IG5ldyBPdmVybGF5QnVuZGxlKG5ldyBTdHJpbmdbXQorICAgICAgICAgICAgICAgIHsgImNvbS5pYm0uaWN1LmltcGwuZGF0YS5Mb2NhbGVFbGVtZW50cyIsIFJFU09VUkNFX0JBU0UgfSwgZm9yTG9jYWxlKTsKKyAgICAgICAgICAgIG51bWJlclBhdHRlcm5zID0gcmVzb3VyY2UuZ2V0U3RyaW5nQXJyYXkoIk51bWJlclBhdHRlcm5zIik7CisgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNhY2hlCisgICAgICAgICAgICBjYWNoZWRMb2NhbGVEYXRhLnB1dChmb3JMb2NhbGUsIG51bWJlclBhdHRlcm5zKTsgCisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICAvKkJ1ZyA0NDA4MDY2CisgICAgICAgICBBZGQgY29kZXMgZm9yIHRoZSBuZXcgbWV0aG9kIGdldEludGVnZXJJbnN0YW5jZSgpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaW50IGVudHJ5ID0gKGNob2ljZSA9PSBJTlRFR0VSU1RZTEUpID8gTlVNQkVSU1RZTEUgOiBjaG9pY2U7IC8vW1JpY2hhcmQvR0NMXQorICAgICAgICByZXR1cm4gbnVtYmVyUGF0dGVybnNbZW50cnldOyAvL1tSaWNoYXJkL0dDTF0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaXJzdCwgcmVhZCBpbiB0aGUgZGVmYXVsdCBzZXJpYWxpemFibGUgZGF0YS4KKyAgICAgKgorICAgICAqIFRoZW4sIGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEsIGluZGljYXRpbmcgdGhhdAorICAgICAqIHRoZSBzdHJlYW0gd2FzIHdyaXR0ZW4gYnkgSkRLIDEuMSwKKyAgICAgKiBzZXQgdGhlIDxjb2RlPmludDwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+CisgICAgICogdG8gYmUgZXF1YWwgdG8gdGhlIDxjb2RlPmJ5dGU8L2NvZGU+IGZpZWxkcyBzdWNoIGFzIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+LAorICAgICAqIHNpbmNlIHRoZSA8Y29kZT5pbnQ8L2NvZGU+IGZpZWxkcyB3ZXJlIG5vdCBwcmVzZW50IGluIEpESyAxLjEuCisgICAgICogRmluYWxseSwgc2V0IHNlcmlhbFZlcnNpb25PblN0cmVhbSBiYWNrIHRvIHRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgc28gdGhhdAorICAgICAqIGRlZmF1bHQgc2VyaWFsaXphdGlvbiB3aWxsIHdvcmsgcHJvcGVybHkgaWYgdGhpcyBvYmplY3QgaXMgc3RyZWFtZWQgb3V0IGFnYWluLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSBzZXJpYWxpemF0aW9uIGRhdGEgZm9yIHRoaXMgZm9ybWF0CisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAxKSB7CisgICAgICAgICAgICAvLyBEaWRuJ3QgaGF2ZSBhZGRpdGlvbmFsIGludCBmaWVsZHMsIHJlYXNzaWduIHRvIHVzZSB0aGVtLgorICAgICAgICAgICAgbWF4aW11bUludGVnZXJEaWdpdHMgPSBtYXhJbnRlZ2VyRGlnaXRzOworICAgICAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHMgPSBtaW5JbnRlZ2VyRGlnaXRzOworICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzID0gbWF4RnJhY3Rpb25EaWdpdHM7CisgICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSBtaW5GcmFjdGlvbkRpZ2l0czsKKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgLypCdWcgNDE4NTc2MQorICAgICAgICAgIFZhbGlkYXRlIHRoZSBtaW4gYW5kIG1heCBmaWVsZHMgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBpZiAobWluaW11bUludGVnZXJEaWdpdHMgPiBtYXhpbXVtSW50ZWdlckRpZ2l0cyB8fAorICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID4gbWF4aW11bUZyYWN0aW9uRGlnaXRzIHx8CisgICAgICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA8IDAgfHwgbWluaW11bUZyYWN0aW9uRGlnaXRzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkRpZ2l0IGNvdW50IHJhbmdlIGludmFsaWQiKTsKKyAgICAgICAgfQorICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSBvdXQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGRhdGEsIGFmdGVyIGZpcnN0IHNldHRpbmcKKyAgICAgKiB0aGUgPGNvZGU+Ynl0ZTwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gdG8gYmUKKyAgICAgKiBlcXVhbCB0byB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4KKyAgICAgKiAob3IgdG8gPGNvZGU+Qnl0ZS5NQVhfVkFMVUU8L2NvZGU+LCB3aGljaGV2ZXIgaXMgc21hbGxlciksIGZvciBjb21wYXRpYmlsaXR5CisgICAgICogd2l0aCB0aGUgSkRLIDEuMSB2ZXJzaW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB3cml0ZU9iamVjdChPYmplY3RPdXRwdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBtYXhJbnRlZ2VyRGlnaXRzID0gKG1heGltdW1JbnRlZ2VyRGlnaXRzID4gQnl0ZS5NQVhfVkFMVUUpID8gQnl0ZS5NQVhfVkFMVUUgOgorICAgICAgICAgICAgKGJ5dGUpbWF4aW11bUludGVnZXJEaWdpdHM7CisgICAgICAgIG1pbkludGVnZXJEaWdpdHMgPSAobWluaW11bUludGVnZXJEaWdpdHMgPiBCeXRlLk1BWF9WQUxVRSkgPyBCeXRlLk1BWF9WQUxVRSA6CisgICAgICAgICAgICAoYnl0ZSltaW5pbXVtSW50ZWdlckRpZ2l0czsKKyAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHMgPSAobWF4aW11bUZyYWN0aW9uRGlnaXRzID4gQnl0ZS5NQVhfVkFMVUUpID8gQnl0ZS5NQVhfVkFMVUUgOgorICAgICAgICAgICAgKGJ5dGUpbWF4aW11bUZyYWN0aW9uRGlnaXRzOworICAgICAgICBtaW5GcmFjdGlvbkRpZ2l0cyA9IChtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPiBCeXRlLk1BWF9WQUxVRSkgPyBCeXRlLk1BWF9WQUxVRSA6CisgICAgICAgICAgICAoYnl0ZSltaW5pbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0V3JpdGVPYmplY3QoKTsKKyAgICB9CisKKy8vIFVudXNlZCAtLSBBbGFuIDIwMDMtMDUKKy8vICAgIC8qKgorLy8gICAgICogQ2FjaGUgdG8gaG9sZCB0aGUgTnVtYmVyUGF0dGVybnMgb2YgYSBMb2NhbGUuCisvLyAgICAgKi8KKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKworICAgIC8qQnVnIDQ0MDgwNjYKKyAgICAgIEFkZCBGaWVsZCBmb3IgdGhlIG5ldyBtZXRob2QgZ2V0SW50ZWdlckluc3RhbmNlKCkgW1JpY2hhcmQvR0NMXQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHRoZSB0aGUgZ3JvdXBpbmcgKGkuZS4gdGhvdXNhbmRzKSBzZXBhcmF0b3IgaXMgdXNlZCB3aGVuCisgICAgICogZm9ybWF0dGluZyBhbmQgcGFyc2luZyBudW1iZXJzLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2lzR3JvdXBpbmdVc2VkCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGdyb3VwaW5nVXNlZCA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBXaGVuIHdyaXRpbmcgdG8gYSBzdHJlYW0sIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHNldCB0bworICAgICAqIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtYXhJbnRlZ2VyRGlnaXRzID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBmaWVsZCBleGlzdHMgb25seSBmb3Igc2VyaWFsaXphdGlvbgorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xLiAgSW4gSkRLIDEuMiBhbmQgaGlnaGVyLCB0aGUgbmV3CisgICAgICogPGNvZGU+aW50PC9jb2RlPiBmaWVsZCA8Y29kZT5taW5pbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gaXMgdXNlZCBpbnN0ZWFkLgorICAgICAqIFdoZW4gd3JpdGluZyB0byBhIHN0cmVhbSwgPGNvZGU+bWluSW50ZWdlckRpZ2l0czwvY29kZT4gaXMgc2V0IHRvCisgICAgICogPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG9yIDxjb2RlPkJ5dGUuTUFYX1ZBTFVFPC9jb2RlPiwKKyAgICAgKiB3aGljaGV2ZXIgaXMgc21hbGxlci4gIFdoZW4gcmVhZGluZyBmcm9tIGEgc3RyZWFtLCB0aGlzIGZpZWxkIGlzIHVzZWQKKyAgICAgKiBvbmx5IGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEuIAorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlICAgIG1pbkludGVnZXJEaWdpdHMgPSAxOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbmFsIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBmaWVsZCBleGlzdHMgb25seSBmb3Igc2VyaWFsaXphdGlvbgorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xLiAgSW4gSkRLIDEuMiBhbmQgaGlnaGVyLCB0aGUgbmV3CisgICAgICogPGNvZGU+aW50PC9jb2RlPiBmaWVsZCA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBXaGVuIHdyaXRpbmcgdG8gYSBzdHJlYW0sIDxjb2RlPm1heEZyYWN0aW9uRGlnaXRzPC9jb2RlPiBpcyBzZXQgdG8KKyAgICAgKiA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG9yIDxjb2RlPkJ5dGUuTUFYX1ZBTFVFPC9jb2RlPiwKKyAgICAgKiB3aGljaGV2ZXIgaXMgc21hbGxlci4gIFdoZW4gcmVhZGluZyBmcm9tIGEgc3RyZWFtLCB0aGlzIGZpZWxkIGlzIHVzZWQKKyAgICAgKiBvbmx5IGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEuIAorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtYXhGcmFjdGlvbkRpZ2l0cyA9IDM7ICAgIC8vIGludmFyaWFudCwgPj0gbWluRnJhY3Rpb25EaWdpdHMKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBpcyB1c2VkIGluc3RlYWQuCisgICAgICogV2hlbiB3cml0aW5nIHRvIGEgc3RyZWFtLCA8Y29kZT5taW5GcmFjdGlvbkRpZ2l0czwvY29kZT4gaXMgc2V0IHRvCisgICAgICogPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgbWluRnJhY3Rpb25EaWdpdHMgPSAwOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIGZvcm1hdCB3aWxsIHBhcnNlIG51bWJlcnMgYXMgaW50ZWdlcnMgb25seS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VJbnRlZ2VyT25seSA9IGZhbHNlOworCisgICAgLy8gbmV3IGZpZWxkcyBmb3IgMS4yLiAgYnl0ZSBpcyB0b28gc21hbGwgZm9yIGludGVnZXIgZGlnaXRzLgorCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bworICAgICAqIDxjb2RlPm1pbmltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgaW50ICAgIG1heGltdW1JbnRlZ2VyRGlnaXRzID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgbWluaW11bUludGVnZXJEaWdpdHMgPSAxOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbmFsIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgaW50ICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IDM7ICAgIC8vIGludmFyaWFudCwgPj0gbWluRnJhY3Rpb25EaWdpdHMKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSAwOworCisgICAgLyoqCisgICAgICogQ3VycmVuY3kgb2JqZWN0IHVzZWQgdG8gZm9ybWF0IGN1cnJlbmNpZXMuICBTdWJjbGFzc2VzIG1heQorICAgICAqIGlnbm9yZSB0aGlzIGlmIHRoZXkgYXJlIG5vdCBjdXJyZW5jeSBmb3JtYXRzLiAgVGhpcyB3aWxsIGJlCisgICAgICogbnVsbCB1bmxlc3MgYSBzdWJjbGFzcyBzZXRzIGl0IHRvIGEgbm9uLW51bGwgdmFsdWUuCisgICAgICogQHNpbmNlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwcml2YXRlIEN1cnJlbmN5IGN1cnJlbmN5OworCisgICAgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBEZXNjcmliZXMgdGhlIHZlcnNpb24gb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBwcmVzZW50IG9uIHRoZSBzdHJlYW0uCisgICAgICogUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IChvciB1bmluaXRpYWxpemVkKTogdGhlIEpESyAxLjEgdmVyc2lvbiBvZiB0aGUgc3RyZWFtIGZvcm1hdC4KKyAgICAgKiAgICAgSW4gdGhpcyB2ZXJzaW9uLCB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcworICAgICAqICAgICA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gd2VyZSBub3QgcHJlc2VudCwgYW5kIHRoZSA8Y29kZT5ieXRlPC9jb2RlPgorICAgICAqICAgICBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhJbnRlZ2VyRGlnaXRzPC9jb2RlPiBhcmUgdXNlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogPGxpPjxiPjE8L2I+OiB0aGUgSkRLIDEuMiB2ZXJzaW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0LiAgVGhlIHZhbHVlcyBvZiB0aGUKKyAgICAgKiAgICAgPGNvZGU+Ynl0ZTwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gYXJlIGlnbm9yZWQsCisgICAgICogICAgIGFuZCB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4KKyAgICAgKiAgICAgYXJlIHVzZWQgaW5zdGVhZC4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gc3RyZWFtaW5nIG91dCBhIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4sIHRoZSBtb3N0IHJlY2VudCBmb3JtYXQKKyAgICAgKiAoY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPikKKyAgICAgKiBpcyBhbHdheXMgd3JpdHRlbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8vIFJlbW92ZWQgImltcGxlbWVudHMgQ2xvbmVhYmxlIiBjbGF1c2UuICBOZWVkcyB0byB1cGRhdGUgc2VyaWFsaXphdGlvbgorICAgIC8vIElEIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0yMzA4NDYwMTI1NzMzNzEzOTQ0TDsKKworICAgIC8qKgorICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yLiAgUHVibGljIGZvciBjb21wYXRpYmlseSB3aXRoIEpESyB3aGljaCBsZXRzIHRoZQorICAgICAqIGNvbXBpbGVyIGdlbmVyYXRlIGEgZGVmYXVsdCBwdWJsaWMgY29uc3RydWN0b3IgZXZlbiB0aG91Z2ggdGhpcyBpcworICAgICAqIGFuIGFic3RyYWN0IGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQoKSB7CisgICAgfQorCisgICAgLy8gbmV3IGluIElDVTRKIDMuNgorICAgIHByaXZhdGUgYm9vbGVhbiBwYXJzZVN0cmljdDsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiBbU3BhcmsvQ0RMXSBUaGUgaW5zdGFuY2VzIG9mIHRoaXMgaW5uZXIgY2xhc3MgYXJlIHVzZWQgYXMgYXR0cmlidXRlIGtleXMgYW5kIHZhbHVlcworICAgICAqIGluIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvciB0aGF0CisgICAgICogTnVtYmVyRm9ybWF0LmZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3IoKSBtZXRob2QgcmV0dXJucy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBpcyBubyBwdWJsaWMgY29uc3RydWN0b3IgdG8gdGhpcyBjbGFzcywgdGhlIG9ubHkgaW5zdGFuY2VzIGFyZSB0aGUKKyAgICAgKiBjb25zdGFudHMgZGVmaW5lZCBoZXJlLgorICAgICAqIDxwPgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRmllbGQgZXh0ZW5kcyBGb3JtYXQuRmllbGQgeworICAgICAgICAvLyBnZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNDUxNjI3Mzc0OTkyOTM4NTg0Mkw7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIFNJR04gPSBuZXcgRmllbGQoInNpZ24iKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIElOVEVHRVIgPSBuZXcgRmllbGQoImludGVnZXIiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIEZSQUNUSU9OID0gbmV3IEZpZWxkKCJmcmFjdGlvbiIpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmllbGQgRVhQT05FTlQgPSBuZXcgRmllbGQoImV4cG9uZW50Iik7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGaWVsZCBFWFBPTkVOVF9TSUdOID0gbmV3IEZpZWxkKCJleHBvbmVudCBzaWduIik7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGaWVsZCBFWFBPTkVOVF9TWU1CT0wgPSBuZXcgRmllbGQoImV4cG9uZW50IHN5bWJvbCIpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmllbGQgREVDSU1BTF9TRVBBUkFUT1IgPSBuZXcgRmllbGQoImRlY2ltYWwgc2VwYXJhdG9yIik7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmllbGQgR1JPVVBJTkdfU0VQQVJBVE9SID0gbmV3IEZpZWxkKCJncm91cGluZyBzZXBhcmF0b3IiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIFBFUkNFTlQgPSBuZXcgRmllbGQoInBlcmNlbnQiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIFBFUk1JTExFID0gbmV3IEZpZWxkKCJwZXIgbWlsbGUiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIENVUlJFTkNZID0gbmV3IEZpZWxkKCJjdXJyZW5jeSIpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIE51bWJlckZvcm1hdC5GaWVsZCB3aXRoIHRoZSBnaXZlbiBmaWVsZAorICAgICAgICAgKiBuYW1lLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBGaWVsZChTdHJpbmcgZmllbGROYW1lKSB7CisgICAgICAgICAgICBzdXBlcihmaWVsZE5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIHNlcml6YWxpemF0aW9uIG1ldGhvZCByZXNvbHZlIGluc3RhbmNlcyB0byB0aGUgY29uc3RhbnQKKyAgICAgICAgICogTnVtYmVyRm9ybWF0LkZpZWxkIHZhbHVlcworICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBPYmplY3QgcmVhZFJlc29sdmUoKSB0aHJvd3MgSW52YWxpZE9iamVjdEV4Y2VwdGlvbiB7CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKElOVEVHRVIuZ2V0TmFtZSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSU5URUdFUjsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoRlJBQ1RJT04uZ2V0TmFtZSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRlJBQ1RJT047CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKEVYUE9ORU5ULmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEVYUE9ORU5UOworICAgICAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpLmVxdWFscyhFWFBPTkVOVF9TSUdOLmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEVYUE9ORU5UX1NJR047CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKEVYUE9ORU5UX1NZTUJPTC5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBFWFBPTkVOVF9TWU1CT0w7CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKENVUlJFTkNZLmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIENVUlJFTkNZOworICAgICAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpLmVxdWFscyhERUNJTUFMX1NFUEFSQVRPUi5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBERUNJTUFMX1NFUEFSQVRPUjsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoR1JPVVBJTkdfU0VQQVJBVE9SLmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEdST1VQSU5HX1NFUEFSQVRPUjsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoUEVSQ0VOVC5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBQRVJDRU5UOworICAgICAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpLmVxdWFscyhQRVJNSUxMRS5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBQRVJNSUxMRTsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoU0lHTi5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBTSUdOOworCisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9iamVjdEV4Y2VwdGlvbigiQW4gaW52YWxpZCBvYmplY3QuIik7CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0U2VydmljZVNoaW0uamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdFNlcnZpY2VTaGltLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U4MjI5OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdFNlcnZpY2VTaGltLmphdmEKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLktleTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2UuTG9jYWxlS2V5RmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC5OdW1iZXJGb3JtYXRGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworY2xhc3MgTnVtYmVyRm9ybWF0U2VydmljZVNoaW0gZXh0ZW5kcyBOdW1iZXJGb3JtYXQuTnVtYmVyRm9ybWF0U2hpbSB7CisKKyAgICBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIE5GRmFjdG9yeSBleHRlbmRzIExvY2FsZUtleUZhY3RvcnkgeworICAgICAgICBwcml2YXRlIE51bWJlckZvcm1hdEZhY3RvcnkgZGVsZWdhdGU7CisKKyAgICAgICAgTkZGYWN0b3J5KE51bWJlckZvcm1hdEZhY3RvcnkgZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGRlbGVnYXRlLnZpc2libGUoKSA/IFZJU0lCTEUgOiBJTlZJU0lCTEUpOworCisgICAgICAgICAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIGlmIChoYW5kbGVzS2V5KGtleSkpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGVLZXkgbGtleSA9IChMb2NhbGVLZXkpa2V5OworICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gbGtleS5jYW5vbmljYWxMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICBpbnQga2luZCA9IGxrZXkua2luZCgpOworCisgICAgICAgICAgICAgICAgT2JqZWN0IHJlc3VsdCA9IGRlbGVnYXRlLmNyZWF0ZUZvcm1hdChsb2MsIGtpbmQpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXJ2aWNlLmdldEtleShrZXksIG51bGwsIHRoaXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5nZXRTdXBwb3J0ZWRMb2NhbGVOYW1lcygpOworICAgICAgICB9CisgICAgfQorCisgICAgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShOdW1iZXJGb3JtYXRGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBORkZhY3RvcnkoZmFjdG9yeSkpOworICAgIH0KKworICAgIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoKEZhY3RvcnkpcmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIE51bWJlckZvcm1hdCBjcmVhdGVJbnN0YW5jZShVTG9jYWxlIGRlc2lyZWRMb2NhbGUsIGludCBjaG9pY2UpIHsKKworICAgIC8vIHVzZSBzZXJ2aWNlIGNhY2hlCisvLyAgICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworLy8gICAgICAgICAgICAgIHJldHVybiBOdW1iZXJGb3JtYXQuY3JlYXRlSW5zdGFuY2UoZGVzaXJlZExvY2FsZSwgY2hvaWNlKTsKKy8vICAgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlW10gYWN0dWFsTG9jID0gbmV3IFVMb2NhbGVbMV07CisgICAgICAgIGlmIChkZXNpcmVkTG9jYWxlLmVxdWFscyhVTG9jYWxlLlJPT1QpKSB7CisgICAgICAgICAgICBkZXNpcmVkTG9jYWxlID0gVUxvY2FsZS5ST09UOworICAgICAgICB9CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSAoTnVtYmVyRm9ybWF0KXNlcnZpY2UuZ2V0KGRlc2lyZWRMb2NhbGUsIGNob2ljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsTG9jKTsKKyAgICAgICAgaWYgKGZtdCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJVbmFibGUgdG8gY29uc3RydWN0IE51bWJlckZvcm1hdCIsICIiLCAiIik7CisgICAgICAgIH0KKyAgICAgICAgZm10ID0gKE51bWJlckZvcm1hdClmbXQuY2xvbmUoKTsKKworICAgICAgICBVTG9jYWxlIHVsb2MgPSBhY3R1YWxMb2NbMF07CisgICAgICAgIGZtdC5zZXRMb2NhbGUodWxvYywgdWxvYyk7IC8vIHNlcnZpY2VzIG1ha2Ugbm8gZGlzdGluY3Rpb24gYmV0d2VlbiBhY3R1YWwgJiB2YWxpZAorICAgICAgICByZXR1cm4gZm10OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE5GU2VydmljZSBleHRlbmRzIElDVUxvY2FsZVNlcnZpY2UgeworICAgICAgICBORlNlcnZpY2UoKSB7CisgICAgICAgICAgICBzdXBlcigiTnVtYmVyRm9ybWF0Iik7CisKKyAgICAgICAgICAgIGNsYXNzIFJCTnVtYmVyRm9ybWF0RmFjdG9yeSBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSB7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlckZvcm1hdC5jcmVhdGVJbnN0YW5jZShsb2MsIGtpbmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJGYWN0b3J5KG5ldyBSQk51bWJlckZvcm1hdEZhY3RvcnkoKSk7CisgICAgICAgICAgICBtYXJrRGVmYXVsdCgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIElDVUxvY2FsZVNlcnZpY2Ugc2VydmljZSA9IG5ldyBORlNlcnZpY2UoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1B1bnljb2RlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9QdW55Y29kZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjOTk5NjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9QdW55Y29kZS5qYXZhCkBAIC0wLDAgKzEsNDc2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIFBvcnRlZCBjb2RlIGZyb20gSUNVIHB1bnljb2RlLmMgCisgKiBAYXV0aG9yIHJhbQorICovCisKKy8qIFBhY2thZ2UgUHJpdmF0ZSBjbGFzcyAqLworZmluYWwgY2xhc3MgUHVueWNvZGUgeworCisgICAgLyogUHVueWNvZGUgcGFyYW1ldGVycyBmb3IgQm9vdHN0cmluZyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCQVNFICAgICAgICAgICA9IDM2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUTUlOICAgICAgICAgICA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRNQVggICAgICAgICAgID0gMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNLRVcgICAgICAgICAgID0gMzg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERBTVAgICAgICAgICAgID0gNzAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTklUSUFMX0JJQVMgICA9IDcyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTklUSUFMX04gICAgICA9IDB4ODA7CisgICAgCisgICAgLyogIkJhc2ljIiBVbmljb2RlL0FTQ0lJIGNvZGUgcG9pbnRzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhZUEhFTiAgICAgICAgID0gMHgyZDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMSU1JVEVSICAgICAgPSBIWVBIRU47CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpFUk8gICAgICAgICAgID0gMHgzMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTklORSAgICAgICAgICAgPSAweDM5OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTUFMTF9BICAgICAgICA9IDB4NjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNNQUxMX1ogICAgICAgID0gMHg3YTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FQSVRBTF9BICAgICAgPSAweDQxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVBJVEFMX1ogICAgICA9IDB4NWE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9DUF9DT1VOVCAgID0gMjAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVSU5UX01BR0lDICAgICA9IDB4ODAwMDAwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBVTE9OR19NQUdJQyAgID0gMHg4MDAwMDAwMDAwMDAwMDAwTDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRhcHRCaWFzKGludCBkZWx0YSwgaW50IGxlbmd0aCwgYm9vbGVhbiBmaXJzdFRpbWUpeworICAgICAgICBpZihmaXJzdFRpbWUpeworICAgICAgICAgICAgZGVsdGEgLz1EQU1QOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGRlbHRhIC89ICAyOworICAgICAgICB9CisgICAgICAgIGRlbHRhICs9IGRlbHRhL2xlbmd0aDsKKworICAgICAgICBpbnQgY291bnQ9MDsKKyAgICAgICAgZm9yKDsgZGVsdGE+KChCQVNFLVRNSU4pKlRNQVgpLzI7IGNvdW50Kz1CQVNFKSB7CisgICAgICAgICAgICBkZWx0YS89KEJBU0UtVE1JTik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gY291bnQrKCgoQkFTRS1UTUlOKzEpKmRlbHRhKS8oZGVsdGErU0tFVykpOyAgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIGJhc2ljVG9EaWdpdFtdIGNvbnRhaW5zIHRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZQorICAgICAqIHBvaW50IChmb3IgdXNlIGluIHJlcHJlc2VudGluZyBpbnRlZ2VycykgaW4gdGhlIHJhbmdlIDAgdG8KKyAgICAgKiBCQVNFLTEsIG9yIC0xIGlmIGIgaXMgZG9lcyBub3QgcmVwcmVzZW50IGEgdmFsdWUuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludFtdICAgIGJhc2ljVG9EaWdpdD0gbmV3IGludFtdeworICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAKKyAgICAgICAgLTEsICAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsCisgICAgICAgIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgIAorICAgICAgICAtMSwgIDAsICAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwKKyAgICAgICAgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgIAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMQorICAgIH07CisKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBhc2NpaUNhc2VNYXAoY2hhciBiLCBib29sZWFuIHVwcGVyY2FzZSkgeworICAgICAgICBpZih1cHBlcmNhc2UpIHsKKyAgICAgICAgICAgIGlmKFNNQUxMX0E8PWIgJiYgYjw9U01BTExfWikgeworICAgICAgICAgICAgICAgIGItPShTTUFMTF9BLUNBUElUQUxfQSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZihDQVBJVEFMX0E8PWIgJiYgYjw9Q0FQSVRBTF9aKSB7CisgICAgICAgICAgICAgICAgYis9KFNNQUxMX0EtQ0FQSVRBTF9BKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYjsKKyAgICB9ICAgIAorICAgIC8vL0NMT1ZFUjpPTgorICAgIC8qKgorICAgICAqIGRpZ2l0VG9CYXNpYygpIHJldHVybnMgdGhlIGJhc2ljIGNvZGUgcG9pbnQgd2hvc2UgdmFsdWUKKyAgICAgKiAod2hlbiB1c2VkIGZvciByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGlzIGQsIHdoaWNoIG11c3QgYmUgaW4gdGhlCisgICAgICogcmFuZ2UgMCB0byBCQVNFLTEuIFRoZSBsb3dlcmNhc2UgZm9ybSBpcyB1c2VkIHVubGVzcyB0aGUgdXBwZXJjYXNlIGZsYWcgaXMKKyAgICAgKiBub256ZXJvLCBpbiB3aGljaCBjYXNlIHRoZSB1cHBlcmNhc2UgZm9ybSBpcyB1c2VkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgZGlnaXRUb0Jhc2ljKGludCBkaWdpdCwgYm9vbGVhbiB1cHBlcmNhc2UpIHsKKyAgICAgICAgLyogIDAuLjI1IG1hcCB0byBBU0NJSSBhLi56IG9yIEEuLlogKi8KKyAgICAgICAgLyogMjYuLjM1IG1hcCB0byBBU0NJSSAwLi45ICAgICAgICAgKi8KKyAgICAgICAgaWYoZGlnaXQ8MjYpIHsKKyAgICAgICAgICAgIGlmKHVwcGVyY2FzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcikoQ0FQSVRBTF9BK2RpZ2l0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKShTTUFMTF9BK2RpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcikoKFpFUk8tMjYpK2RpZ2l0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBVbmljb2RlIHRvIFB1bnljb2RlLgorICAgICAqIFRoZSBpbnB1dCBzdHJpbmcgbXVzdCBub3QgY29udGFpbiBzaW5nbGUsIHVucGFpcmVkIHN1cnJvZ2F0ZXMuCisgICAgICogVGhlIG91dHB1dCB3aWxsIGJlIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5IG9mIEFTQ0lJIGNvZGUgcG9pbnRzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzcmMKKyAgICAgKiBAcGFyYW0gY2FzZUZsYWdzCisgICAgICogQHJldHVybgorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBlbmNvZGUoU3RyaW5nQnVmZmVyIHNyYywgYm9vbGVhbltdIGNhc2VGbGFncykgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgCisgICAgICAgIGludFtdIGNwQnVmZmVyID0gbmV3IGludFtNQVhfQ1BfQ09VTlRdOworICAgICAgICBpbnQgbiwgZGVsdGEsIGhhbmRsZWRDUENvdW50LCBiYXNpY0xlbmd0aCwgZGVzdExlbmd0aCwgYmlhcywgaiwgbSwgcSwgaywgdCwgc3JjQ1BDb3VudDsKKyAgICAgICAgY2hhciBjLCBjMjsKKyAgICAgICAgaW50IHNyY0xlbmd0aCA9IHNyYy5sZW5ndGgoKTsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IE1BWF9DUF9DT1VOVDsKKyAgICAgICAgY2hhcltdIGRlc3QgPSBuZXcgY2hhcltkZXN0Q2FwYWNpdHldOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvKgorICAgICAgICAgKiBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzIGFuZAorICAgICAgICAgKiBjb252ZXJ0IGV4dGVuZGVkIG9uZXMgdG8gVVRGLTMyIGluIGNwQnVmZmVyIChjYXNlRmxhZyBpbiBzaWduIGJpdCk6CisgICAgICAgICAqLworICAgICAgICBzcmNDUENvdW50PWRlc3RMZW5ndGg9MDsKKyAgICAgICAgCisgICAgICAgIGZvcihqPTA7IGo8c3JjTGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIGlmKHNyY0NQQ291bnQ9PU1BWF9DUF9DT1VOVCkgeworICAgICAgICAgICAgICAgIC8qIHRvbyBtYW55IGlucHV0IGNvZGUgcG9pbnRzICovCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9c3JjLmNoYXJBdChqKTsKKyAgICAgICAgICAgIGlmKGlzQmFzaWMoYykpIHsKKyAgICAgICAgICAgICAgICBpZihkZXN0TGVuZ3RoPGRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBjcEJ1ZmZlcltzcmNDUENvdW50KytdPTA7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdExlbmd0aF09CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlRmxhZ3MhPW51bGwgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzY2lpQ2FzZU1hcCgoY2hhciljLCBjYXNlRmxhZ3Nbal0pIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2Rlc3RMZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG49KChjYXNlRmxhZ3MhPW51bGwgJiYgY2FzZUZsYWdzW2pdKT8gMSA6IDApPDwzMUw7CisgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIG58PWM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiAoaisxKTxzcmNMZW5ndGggJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmMuY2hhckF0KGorMSkpKSB7CisgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG58PVVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KGMsIGMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBlcnJvcjogdW5tYXRjaGVkIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJJbGxlZ2FsIGNoYXIgZm91bmQiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjcEJ1ZmZlcltzcmNDUENvdW50KytdPW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBGaW5pc2ggdGhlIGJhc2ljIHN0cmluZyAtIGlmIGl0IGlzIG5vdCBlbXB0eSAtIHdpdGggYSBkZWxpbWl0ZXIuICovCisgICAgICAgIGJhc2ljTGVuZ3RoPWRlc3RMZW5ndGg7CisgICAgICAgIGlmKGJhc2ljTGVuZ3RoPjApIHsKKyAgICAgICAgICAgIGlmKGRlc3RMZW5ndGg8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgZGVzdFtkZXN0TGVuZ3RoXT1ERUxJTUlURVI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2Rlc3RMZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBoYW5kbGVkQ1BDb3VudCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBiZWVuIGhhbmRsZWQKKyAgICAgICAgICogYmFzaWNMZW5ndGggaXMgdGhlIG51bWJlciBvZiBiYXNpYyBjb2RlIHBvaW50cworICAgICAgICAgKiBkZXN0TGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgY2hhcnMgdGhhdCBoYXZlIGJlZW4gb3V0cHV0CisgICAgICAgICAqLworCisgICAgICAgIC8qIEluaXRpYWxpemUgdGhlIHN0YXRlOiAqLworICAgICAgICBuPUlOSVRJQUxfTjsKKyAgICAgICAgZGVsdGE9MDsKKyAgICAgICAgYmlhcz1JTklUSUFMX0JJQVM7CisKKyAgICAgICAgLyogTWFpbiBlbmNvZGluZyBsb29wOiAqLworICAgICAgICBmb3IoaGFuZGxlZENQQ291bnQ9YmFzaWNMZW5ndGg7IGhhbmRsZWRDUENvdW50PHNyY0NQQ291bnQ7IC8qIG5vIG9wICovKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogQWxsIG5vbi1iYXNpYyBjb2RlIHBvaW50cyA8IG4gaGF2ZSBiZWVuIGhhbmRsZWQgYWxyZWFkeS4KKyAgICAgICAgICAgICAqIEZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZToKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZm9yKG09MHg3ZmZmZmZmZiwgaj0wOyBqPHNyY0NQQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgIHE9Y3BCdWZmZXJbal0mMHg3ZmZmZmZmZjsgLyogcmVtb3ZlIGNhc2UgZmxhZyBmcm9tIHRoZSBzaWduIGJpdCAqLworICAgICAgICAgICAgICAgIGlmKG48PXEgJiYgcTxtKSB7CisgICAgICAgICAgICAgICAgICAgIG09cTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBJbmNyZWFzZSBkZWx0YSBlbm91Z2ggdG8gYWR2YW5jZSB0aGUgZGVjb2RlcidzCisgICAgICAgICAgICAgKiA8bixpPiBzdGF0ZSB0byA8bSwwPiwgYnV0IGd1YXJkIGFnYWluc3Qgb3ZlcmZsb3c6CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKG0tbj4oMHg3ZmZmZmZmZi1NQVhfQ1BfQ09VTlQtZGVsdGEpLyhoYW5kbGVkQ1BDb3VudCsxKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlbHRhKz0obS1uKSooaGFuZGxlZENQQ291bnQrMSk7CisgICAgICAgICAgICBuPW07CisKKyAgICAgICAgICAgIC8qIEVuY29kZSBhIHNlcXVlbmNlIG9mIHNhbWUgY29kZSBwb2ludHMgbiAqLworICAgICAgICAgICAgZm9yKGo9MDsgajxzcmNDUENvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICBxPWNwQnVmZmVyW2pdJjB4N2ZmZmZmZmY7IC8qIHJlbW92ZSBjYXNlIGZsYWcgZnJvbSB0aGUgc2lnbiBiaXQgKi8KKyAgICAgICAgICAgICAgICBpZihxPG4pIHsKKyAgICAgICAgICAgICAgICAgICAgKytkZWx0YTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYocT09bikgeworICAgICAgICAgICAgICAgICAgICAvKiBSZXByZXNlbnQgZGVsdGEgYXMgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlcjogKi8KKyAgICAgICAgICAgICAgICAgICAgZm9yKHE9ZGVsdGEsIGs9QkFTRTsgLyogbm8gY29uZGl0aW9uICovOyBrKz1CQVNFKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qKiBSQU06IGNvbW1lbnQgb3V0IHRoZSBvbGQgY29kZSBmb3IgY29uZm9ybWFuY2Ugd2l0aCBkcmFmdC1pZXRmLWlkbi1wdW55Y29kZS0wMy50eHQgICAKKworICAgICAgICAgICAgICAgICAgICAgICAgdD1rLWJpYXM7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih0PFRNSU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0PVRNSU47CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYodD5UTUFYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdD1UTUFYOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB0PWstYmlhczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHQ8VE1JTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQ9VE1JTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihrPj0oYmlhcytUTUFYKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQ9VE1BWDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYocTx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RMZW5ndGg8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0TGVuZ3RoKytdPWRpZ2l0VG9CYXNpYyh0KyhxLXQpJShCQVNFLXQpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBxPShxLXQpLyhCQVNFLXQpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYoZGVzdExlbmd0aDxkZXN0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdExlbmd0aCsrXT1kaWdpdFRvQmFzaWMocSwgKGNwQnVmZmVyW2pdPDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiaWFzPWFkYXB0QmlhcyhkZWx0YSwgaGFuZGxlZENQQ291bnQrMSwoaGFuZGxlZENQQ291bnQ9PWJhc2ljTGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIGRlbHRhPTA7CisgICAgICAgICAgICAgICAgICAgICsraGFuZGxlZENQQ291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICArK2RlbHRhOworICAgICAgICAgICAgKytuOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoZGVzdCwgMCwgZGVzdExlbmd0aCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNCYXNpYyhpbnQgY2gpeworICAgICAgICByZXR1cm4gKGNoIDwgSU5JVElBTF9OKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNCYXNpY1VwcGVyQ2FzZShpbnQgY2gpeworICAgICAgICByZXR1cm4oIENBUElUQUxfQTw9Y2ggJiYgY2ggPj0gQ0FQSVRBTF9aKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1N1cnJvZ2F0ZShpbnQgY2gpeworICAgICAgICByZXR1cm4gKCgoY2gpJjB4ZmZmZmY4MDApPT0weGQ4MDApOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBQdW55Y29kZSB0byBVbmljb2RlLgorICAgICAqIFRoZSBVbmljb2RlIHN0cmluZyB3aWxsIGJlIGF0IG1vc3QgYXMgbG9uZyBhcyB0aGUgUHVueWNvZGUgc3RyaW5nLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzcmMKKyAgICAgKiBAcGFyYW0gY2FzZUZsYWdzCisgICAgICogQHJldHVybgorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBkZWNvZGUoU3RyaW5nQnVmZmVyIHNyYywgYm9vbGVhbltdIGNhc2VGbGFncykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaW50IHNyY0xlbmd0aCA9IHNyYy5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IG4sIGRlc3RMZW5ndGgsIGksIGJpYXMsIGJhc2ljTGVuZ3RoLCBqLCBpbiwgb2xkaSwgdywgaywgZGlnaXQsIHQsCisgICAgICAgICAgICAgICAgZGVzdENQQ291bnQsIGZpcnN0U3VwcGxlbWVudGFyeUluZGV4LCBjcExlbmd0aDsKKyAgICAgICAgY2hhciBiOworICAgICAgICBpbnQgZGVzdENhcGFjaXR5ID0gTUFYX0NQX0NPVU5UOworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyW2Rlc3RDYXBhY2l0eV07CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50czoKKyAgICAgICAgICogTGV0IGJhc2ljTGVuZ3RoIGJlIHRoZSBudW1iZXIgb2YgaW5wdXQgY29kZSBwb2ludHMKKyAgICAgICAgICogYmVmb3JlIHRoZSBsYXN0IGRlbGltaXRlciwgb3IgMCBpZiB0aGVyZSBpcyBub25lLAorICAgICAgICAgKiB0aGVuIGNvcHkgdGhlIGZpcnN0IGJhc2ljTGVuZ3RoIGNvZGUgcG9pbnRzIHRvIHRoZSBvdXRwdXQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB0d28gZm9sbG93aW5nIGxvb3BzIGl0ZXJhdGUgYmFja3dhcmQuCisgICAgICAgICAqLworICAgICAgICBmb3Ioaj1zcmNMZW5ndGg7IGo+MDspIHsKKyAgICAgICAgICAgIGlmKHNyYy5jaGFyQXQoLS1qKT09REVMSU1JVEVSKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZGVzdExlbmd0aD1iYXNpY0xlbmd0aD1kZXN0Q1BDb3VudD1qOworCisgICAgICAgIHdoaWxlKGo+MCkgeworICAgICAgICAgICAgYj1zcmMuY2hhckF0KC0taik7CisgICAgICAgICAgICBpZighaXNCYXNpYyhiKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihqPGRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgIGRlc3Rbal09IGI7CisKKyAgICAgICAgICAgICAgICBpZihjYXNlRmxhZ3MhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZUZsYWdzW2pdPWlzQmFzaWNVcHBlckNhc2UoYik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgc3RhdGU6ICovCisgICAgICAgIG49SU5JVElBTF9OOworICAgICAgICBpPTA7CisgICAgICAgIGJpYXM9SU5JVElBTF9CSUFTOworICAgICAgICBmaXJzdFN1cHBsZW1lbnRhcnlJbmRleD0xMDAwMDAwMDAwOworCisgICAgICAgIC8qCisgICAgICAgICAqIE1haW4gZGVjb2RpbmcgbG9vcDoKKyAgICAgICAgICogU3RhcnQganVzdCBhZnRlciB0aGUgbGFzdCBkZWxpbWl0ZXIgaWYgYW55CisgICAgICAgICAqIGJhc2ljIGNvZGUgcG9pbnRzIHdlcmUgY29waWVkOyBzdGFydCBhdCB0aGUgYmVnaW5uaW5nIG90aGVyd2lzZS4KKyAgICAgICAgICovCisgICAgICAgIGZvcihpbj1iYXNpY0xlbmd0aD4wID8gYmFzaWNMZW5ndGgrMSA6IDA7IGluPHNyY0xlbmd0aDsgLyogbm8gb3AgKi8pIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBpbiBpcyB0aGUgaW5kZXggb2YgdGhlIG5leHQgY2hhcmFjdGVyIHRvIGJlIGNvbnN1bWVkLCBhbmQKKyAgICAgICAgICAgICAqIGRlc3RDUENvdW50IGlzIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIG91dHB1dCBhcnJheS4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBEZWNvZGUgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlciBpbnRvIGRlbHRhLAorICAgICAgICAgICAgICogd2hpY2ggZ2V0cyBhZGRlZCB0byBpLiAgVGhlIG92ZXJmbG93IGNoZWNraW5nIGlzIGVhc2llcgorICAgICAgICAgICAgICogaWYgd2UgaW5jcmVhc2UgaSBhcyB3ZSBnbywgdGhlbiBzdWJ0cmFjdCBvZmYgaXRzIHN0YXJ0aW5nCisgICAgICAgICAgICAgKiB2YWx1ZSBhdCB0aGUgZW5kIHRvIG9idGFpbiBkZWx0YS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZm9yKG9sZGk9aSwgdz0xLCBrPUJBU0U7IC8qIG5vIGNvbmRpdGlvbiAqLzsgays9QkFTRSkgeworICAgICAgICAgICAgICAgIGlmKGluPj1zcmNMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZGlnaXQ9YmFzaWNUb0RpZ2l0W3NyYy5jaGFyQXQoaW4rKykgJiAweEZGXTsKKyAgICAgICAgICAgICAgICBpZihkaWdpdDwwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkludmFsaWQgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihkaWdpdD4oMHg3ZmZmZmZmZi1pKS93KSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGludGVnZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaSs9ZGlnaXQqdzsKKyAgICAgICAgICAgICAgICB0PWstYmlhczsKKyAgICAgICAgICAgICAgICBpZih0PFRNSU4pIHsKKyAgICAgICAgICAgICAgICAgICAgdD1UTUlOOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihrPj0oYmlhcytUTUFYKSkgeworICAgICAgICAgICAgICAgICAgICB0PVRNQVg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGRpZ2l0PHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYodz4weDdmZmZmZmZmLyhCQVNFLXQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGludGVnZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHcqPUJBU0UtdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIE1vZGlmaWNhdGlvbiBmcm9tIHNhbXBsZSBjb2RlOgorICAgICAgICAgICAgICogSW5jcmVtZW50cyBkZXN0Q1BDb3VudCBoZXJlLAorICAgICAgICAgICAgICogd2hlcmUgbmVlZGVkIGluc3RlYWQgb2YgaW4gZm9yKCkgbG9vcCB0YWlsLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICArK2Rlc3RDUENvdW50OworICAgICAgICAgICAgYmlhcz1hZGFwdEJpYXMoaS1vbGRpLCBkZXN0Q1BDb3VudCwgKG9sZGk9PTApKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGkgd2FzIHN1cHBvc2VkIHRvIHdyYXAgYXJvdW5kIGZyb20gKGluY3JlbWVudGVkKSBkZXN0Q1BDb3VudCB0byAwLAorICAgICAgICAgICAgICogaW5jcmVtZW50aW5nIG4gZWFjaCB0aW1lLCBzbyB3ZSdsbCBmaXggdGhhdCBub3c6CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKGkvZGVzdENQQ291bnQ+KDB4N2ZmZmZmZmYtbikpIHsKKyAgICAgICAgICAgICAgICAvKiBpbnRlZ2VyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG4rPWkvZGVzdENQQ291bnQ7CisgICAgICAgICAgICBpJT1kZXN0Q1BDb3VudDsKKyAgICAgICAgICAgIC8qIG5vdCBuZWVkZWQgZm9yIFB1bnljb2RlOiAqLworICAgICAgICAgICAgLyogaWYgKGRlY29kZV9kaWdpdChuKSA8PSBCQVNFKSByZXR1cm4gcHVueWNvZGVfaW52YWxpZF9pbnB1dDsgKi8KKworICAgICAgICAgICAgaWYobj4weDEwZmZmZiB8fCBpc1N1cnJvZ2F0ZShuKSkgeworICAgICAgICAgICAgICAgIC8qIFVuaWNvZGUgY29kZSBwb2ludCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBJbnNlcnQgbiBhdCBwb3NpdGlvbiBpIG9mIHRoZSBvdXRwdXQ6ICovCisgICAgICAgICAgICBjcExlbmd0aD1VVEYxNi5nZXRDaGFyQ291bnQobik7CisgICAgICAgICAgICBpZigoZGVzdExlbmd0aCtjcExlbmd0aCk8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgaW50IGNvZGVVbml0SW5kZXg7CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEhhbmRsZSBpbmRleGVzIHdoZW4gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyBhcmUgcHJlc2VudC4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIEluIGFsbW9zdCBhbGwgY2FzZXMsIHRoZXJlIHdpbGwgYmUgb25seSBCTVAgY29kZSBwb2ludHMgYmVmb3JlIGkKKyAgICAgICAgICAgICAgICAgKiBhbmQgZXZlbiBpbiB0aGUgZW50aXJlIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIGhhbmRsZWQgd2l0aCB0aGUgc2FtZSBlZmZpY2llbmN5IGFzIHdpdGggVVRGLTMyLgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogT25seSB0aGUgcmFyZSBjYXNlcyB3aXRoIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgYXJlIGhhbmRsZWQKKyAgICAgICAgICAgICAgICAgKiBtb3JlIHNsb3dseSAtIGJ1dCBub3QgdG9vIGJhZCBzaW5jZSB0aGlzIGlzIGFuIGluc2VydGlvbiBhbnl3YXkuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYoaTw9Zmlyc3RTdXBwbGVtZW50YXJ5SW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY29kZVVuaXRJbmRleD1pOworICAgICAgICAgICAgICAgICAgICBpZihjcExlbmd0aD4xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFN1cHBsZW1lbnRhcnlJbmRleD1jb2RlVW5pdEluZGV4OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgKytmaXJzdFN1cHBsZW1lbnRhcnlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvZGVVbml0SW5kZXg9Zmlyc3RTdXBwbGVtZW50YXJ5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvZGVVbml0SW5kZXg9VVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChkZXN0LCAwLCBkZXN0TGVuZ3RoLCBjb2RlVW5pdEluZGV4LCBpLWNvZGVVbml0SW5kZXgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIHVzZSB0aGUgVUNoYXIgaW5kZXggY29kZVVuaXRJbmRleCBpbnN0ZWFkIG9mIHRoZSBjb2RlIHBvaW50IGluZGV4IGkgKi8KKyAgICAgICAgICAgICAgICBpZihjb2RlVW5pdEluZGV4PGRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShkZXN0LCBjb2RlVW5pdEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGNvZGVVbml0SW5kZXgrY3BMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVzdExlbmd0aC1jb2RlVW5pdEluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGlmKGNhc2VGbGFncyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjYXNlRmxhZ3MsIGNvZGVVbml0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VGbGFncywgY29kZVVuaXRJbmRleCtjcExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aC1jb2RlVW5pdEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjcExlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAvKiBCTVAsIGluc2VydCBvbmUgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgICAgIGRlc3RbY29kZVVuaXRJbmRleF09KGNoYXIpbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciwgaW5zZXJ0IHR3byBjb2RlIHVuaXRzICovCisgICAgICAgICAgICAgICAgICAgIGRlc3RbY29kZVVuaXRJbmRleF09VVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShuKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFtjb2RlVW5pdEluZGV4KzFdPVVURjE2LmdldFRyYWlsU3Vycm9nYXRlKG4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjYXNlRmxhZ3MhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogQ2FzZSBvZiBsYXN0IGNoYXJhY3RlciBkZXRlcm1pbmVzIHVwcGVyY2FzZSBmbGFnOiAqLworICAgICAgICAgICAgICAgICAgICBjYXNlRmxhZ3NbY29kZVVuaXRJbmRleF09aXNCYXNpY1VwcGVyQ2FzZShzcmMuY2hhckF0KGluLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY3BMZW5ndGg9PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VGbGFnc1tjb2RlVW5pdEluZGV4KzFdPWZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzdExlbmd0aCs9Y3BMZW5ndGg7CisgICAgICAgICAgICArK2k7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZChkZXN0LCAwLCBkZXN0TGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjZkNjA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUXVhbnRpZmllci5qYXZhCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworY2xhc3MgUXVhbnRpZmllciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIHByaXZhdGUgVW5pY29kZU1hdGNoZXIgbWF0Y2hlcjsKKworICAgIHByaXZhdGUgaW50IG1pbkNvdW50OworCisgICAgcHJpdmF0ZSBpbnQgbWF4Q291bnQ7CisKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIGNvdW50IGEgcXVhbnRpZmllciBjYW4gaGF2ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVggPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKworICAgIHB1YmxpYyBRdWFudGlmaWVyKFVuaWNvZGVNYXRjaGVyIHRoZU1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgaW50IHRoZU1pbkNvdW50LCBpbnQgdGhlTWF4Q291bnQpIHsKKyAgICAgICAgaWYgKHRoZU1hdGNoZXIgPT0gbnVsbCB8fCBtaW5Db3VudCA8IDAgfHwgbWF4Q291bnQgPCAwIHx8IG1pbkNvdW50ID4gbWF4Q291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVyID0gdGhlTWF0Y2hlcjsKKyAgICAgICAgbWluQ291bnQgPSB0aGVNaW5Db3VudDsKKyAgICAgICAgbWF4Q291bnQgPSB0aGVNYXhDb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIgQVBJLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgc3RhcnQgPSBvZmZzZXRbMF07CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG1heENvdW50KSB7CisgICAgICAgICAgICBpbnQgcG9zID0gb2Zmc2V0WzBdOworICAgICAgICAgICAgaW50IG0gPSBtYXRjaGVyLm1hdGNoZXModGV4dCwgb2Zmc2V0LCBsaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgaWYgKG0gPT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSBvZmZzZXRbMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgb2Zmc2V0IGhhcyBub3QgbW92ZWQgd2UgaGF2ZSBhIHplcm8td2lkdGggbWF0Y2guCisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtlZXAgbWF0Y2hpbmcgaXQgaW5maW5pdGVseS4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChpbmNyZW1lbnRhbCAmJiBtID09IFVfUEFSVElBTF9NQVRDSCkgeworICAgICAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbmNyZW1lbnRhbCAmJiBvZmZzZXRbMF0gPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ID49IG1pbkNvdW50KSB7CisgICAgICAgICAgICByZXR1cm4gVV9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICBvZmZzZXRbMF0gPSBzdGFydDsKKyAgICAgICAgcmV0dXJuIFVfTUlTTUFUQ0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtYXRjaGVyLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpOworICAgICAgICBpZiAobWluQ291bnQgPT0gMCkgeworICAgICAgICAgICAgaWYgKG1heENvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgnPycpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1heENvdW50ID09IE1BWCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCcqJykudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVsc2UgZmFsbCB0aHJvdWdoCisgICAgICAgIH0gZWxzZSBpZiAobWluQ291bnQgPT0gMSAmJiBtYXhDb3VudCA9PSBNQVgpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCcrJykudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKCd7Jyk7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJlc3VsdCwgbWluQ291bnQpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcsJyk7CisgICAgICAgIGlmIChtYXhDb3VudCAhPSBNQVgpIHsKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJlc3VsdCwgbWF4Q291bnQpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudCBVbmljb2RlTWF0Y2hlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICByZXR1cm4gKG1pbkNvdW50ID09IDApIHx8IG1hdGNoZXIubWF0Y2hlc0luZGV4VmFsdWUodik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIgQVBJLiAgVW5pb24gdGhlIHNldCBvZiBhbGwKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1hdGNoZWQgYnkgdGhpcyBvYmplY3QgaW50byB0aGUgZ2l2ZW4KKyAgICAgKiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIHNvdXJjZSBjaGFyYWN0ZXJzCisgICAgICogQHJldHVybnMgYSByZWZlcmVuY2UgdG8gdG9VbmlvblRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBpZiAobWF4Q291bnQgPiAwKSB7CisgICAgICAgICAgICBtYXRjaGVyLmFkZE1hdGNoU2V0VG8odG9VbmlvblRvKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSURhdGFXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY0YzY0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhCkBAIC0wLDAgKzEsNTI1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZTsKKworLyoqCisqIDxwPkludGVybmFsIGNsYXNzIHVzZWQgZm9yIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3JzPC9wPgorKiA8cD5UaGlzIGNsYXNzIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZSBkYXRhLCBhcworKiBpdCBpcyBzdG9yZWQgaW4gYSAuYnJrIGZpbGUuICAKKyogQGludGVybmFsCisqIAorKi8KK2ZpbmFsIGNsYXNzIFJCQklEYXRhV3JhcHBlciB7CisgICAgLy8KKyAgICAvLyBUaGVzZSBmaWVsZHMgYXJlIHRoZSByZWFkeS10by11c2UgY29tcGlsZWQgcnVsZSBkYXRhLCBhcworICAgIC8vICAgcmVhZCBmcm9tIHRoZSBmaWxlLgorICAgIC8vCisgICAgUkJCSURhdGFIZWFkZXIgZkhlYWRlcjsKKyAgICBzaG9ydCAgICAgICAgICBmRlRhYmxlW107CisgICAgc2hvcnQgICAgICAgICAgZlJUYWJsZVtdOworICAgIHNob3J0ICAgICAgICAgIGZTRlRhYmxlW107CisgICAgc2hvcnQgICAgICAgICAgZlNSVGFibGVbXTsKKyAgICBDaGFyVHJpZSAgICAgICBmVHJpZTsKKyAgICBTdHJpbmcgICAgICAgICBmUnVsZVNvdXJjZTsKKyAgICBpbnQgICAgICAgICAgICBmU3RhdHVzVGFibGVbXTsKKyAgICAKKyAgICAvLworICAgIC8vIEluZGV4ZXMgdG8gZmllbGRzIGluIHRoZSBJQ1U0QyBzdHlsZSBiaW5hcnkgZm9ybSBvZiB0aGUgUkJCSSBEYXRhIEhlYWRlcgorICAgIC8vICAgVXNlZCBieSB0aGUgcnVsZSBjb21waWxlciB3aGVuIGZsYXR0ZW5pbmcgdGhlIGRhdGEuCisgICAgLy8KKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgIERIX1NJWkUgICAgICAgICAgID0gMjQ7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9NQUdJQyAgICAgICAgICA9IDA7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9GT1JNQVRWRVJTSU9OICA9IDE7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9MRU5HVEggICAgICAgICA9IDI7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9DQVRDT1VOVCAgICAgICA9IDM7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9GVEFCTEUgICAgICAgICA9IDQ7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9GVEFCTEVMRU4gICAgICA9IDU7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9SVEFCTEUgICAgICAgICA9IDY7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9SVEFCTEVMRU4gICAgICA9IDc7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TRlRBQkxFICAgICAgICA9IDg7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TRlRBQkxFTEVOICAgICA9IDk7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TUlRBQkxFICAgICAgICA9IDEwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgREhfU1JUQUJMRUxFTiAgICAgPSAxMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgIERIX1RSSUUgICAgICAgICAgID0gMTI7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9UUklFTEVOICAgICAgICA9IDEzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgREhfUlVMRVNPVVJDRSAgICAgPSAxNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgIERIX1JVTEVTT1VSQ0VMRU4gID0gMTU7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TVEFUVVNUQUJMRSAgICA9IDE2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgREhfU1RBVFVTVEFCTEVMRU4gPSAxNzsKKyAgICAKKyAgICAKKyAgICAvLyBJbmRleCBvZmZzZXRzIHRvIHRoZSBmaWVsZHMgaW4gYSBzdGF0ZSB0YWJsZSByb3cuCisgICAgLy8gICAgQ29ycmVzcG9uZHMgdG8gc3RydWN0IFJCQklTdGF0ZVRhYmxlUm93IGluIHRoZSBDIHZlcnNpb24uCisgICAgLy8gICAKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgQUNDRVBUSU5HICA9IDA7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIExPT0tBSEVBRCAgPSAxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBUQUdJRFggICAgID0gMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUkVTRVJWRUQgICA9IDM7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIE5FWFRTVEFURVMgPSA0OworICAgIAorICAgIC8vIEluZGV4IG9mZnNldHMgdG8gaGVhZGVyIGZpZWxkcyBvZiBhIHN0YXRlIHRhYmxlCisgICAgLy8gICAgIHN0cnVjdCBSQkJJU3RhdGVUYWJsZSB7Li4uICAgaW4gdGhlIEMgdmVyc2lvbi4KKyAgICAvLworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBOVU1TVEFURVMgID0gMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUk9XTEVOICAgICA9IDI7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIEZMQUdTICAgICAgPSA0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBSRVNFUlZFRF8yID0gNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUk9XX0RBVEEgICA9IDg7CisgICAgCisgICAgLy8gIEJpdCBzZWxlY3RvcnMgZm9yIHRoZSAiRkxBR1MiIGZpZWxkIG9mIHRoZSBzdGF0ZSB0YWJsZSBoZWFkZXIKKyAgICAvLyAgICAgZW51bSBSQkJJU3RhdGVUYWJsZUZsYWdzIGluIHRoZSBDIHZlcnNpb24uCisgICAgLy8KKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUkJCSV9MT09LQUhFQURfSEFSRF9CUkVBSyA9IDE7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIFJCQklfQk9GX1JFUVVJUkVEICAgICAgICAgPSAyOyAgCisgICAgCisgICAgLyoqCisgICAgICogRGF0YSBIZWFkZXIuICBBIHN0cnVjdC1saWtlIGNsYXNzIHdpdGggdGhlIGZpZWxkcyBmcm9tIHRoZSBSQkJJIGRhdGEgZmlsZSBoZWFkZXIuCisgICAgICovCisgICAgZmluYWwgc3RhdGljIGNsYXNzIFJCQklEYXRhSGVhZGVyIHsKKyAgICAgICAgaW50ICAgICAgICAgZk1hZ2ljOyAgICAgICAgIC8vICA9PSAweGJsYTAgCisgICAgICAgIGludCAgICAgICAgIGZWZXJzaW9uOyAgICAgICAvLyAgPT0gMSAoZm9yIElDVSAzLjIgYW5kIGVhcmxpZXIuIAorICAgICAgICBieXRlW10gICAgICBmRm9ybWF0VmVyc2lvbjsgLy8gIEZvciBJQ1UgMy40IGFuZCBsYXRlci4KKyAgICAgICAgaW50ICAgICAgICAgZkxlbmd0aDsgICAgICAgIC8vICBUb3RhbCBsZW5ndGggaW4gYnl0ZXMgb2YgdGhpcyBSQkJJIERhdGEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICBpbmNsdWRpbmcgYWxsIHNlY3Rpb25zLCBub3QganVzdCB0aGUgaGVhZGVyLiAKKyAgICAgICAgaW50ICAgICAgICAgZkNhdENvdW50OyAgICAgIC8vICBOdW1iZXIgb2YgY2hhcmFjdGVyIGNhdGVnb3JpZXMuIAorCisgICAgICAgIC8vICAKKyAgICAgICAgLy8gIE9mZnNldHMgYW5kIHNpemVzIG9mIGVhY2ggb2YgdGhlIHN1YnNlY3Rpb25zIHdpdGhpbiB0aGUgUkJCSSBkYXRhLiAKKyAgICAgICAgLy8gIEFsbCBvZmZzZXRzIGFyZSBieXRlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgUkJCSURhdGFIZWFkZXIuIAorICAgICAgICAvLyAgQWxsIHNpemVzIGFyZSBpbiBieXRlcy4gCisgICAgICAgIC8vICAKKyAgICAgICAgaW50ICAgICAgICAgZkZUYWJsZTsgICAgICAgICAvLyAgZm9yd2FyZCBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLiAKKyAgICAgICAgaW50ICAgICAgICAgZkZUYWJsZUxlbjsKKyAgICAgICAgaW50ICAgICAgICAgZlJUYWJsZTsgICAgICAgICAvLyAgT2Zmc2V0IHRvIHRoZSByZXZlcnNlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuIAorICAgICAgICBpbnQgICAgICAgICBmUlRhYmxlTGVuOworICAgICAgICBpbnQgICAgICAgICBmU0ZUYWJsZTsgICAgICAgIC8vICBzYWZlIHBvaW50IGZvcndhcmQgdHJhbnNpdGlvbiB0YWJsZSAKKyAgICAgICAgaW50ICAgICAgICAgZlNGVGFibGVMZW47CisgICAgICAgIGludCAgICAgICAgIGZTUlRhYmxlOyAgICAgICAgLy8gIHNhZmUgcG9pbnQgcmV2ZXJzZSB0cmFuc2l0aW9uIHRhYmxlIAorICAgICAgICBpbnQgICAgICAgICBmU1JUYWJsZUxlbjsKKyAgICAgICAgaW50ICAgICAgICAgZlRyaWU7ICAgICAgICAgICAvLyAgT2Zmc2V0IHRvIFRyaWUgZGF0YSBmb3IgY2hhcmFjdGVyIGNhdGVnb3JpZXMgCisgICAgICAgIGludCAgICAgICAgIGZUcmllTGVuOworICAgICAgICBpbnQgICAgICAgICBmUnVsZVNvdXJjZTsgICAgIC8vICBPZmZzZXQgdG8gdGhlIHNvdXJjZSBmb3IgZm9yIHRoZSBicmVhayAKKyAgICAgICAgaW50ICAgICAgICAgZlJ1bGVTb3VyY2VMZW47ICAvLyAgICBydWxlcy4gIFN0b3JlZCBVQ2hhciAqLiAKKyAgICAgICAgaW50ICAgICAgICAgZlN0YXR1c1RhYmxlOyAgICAvLyBPZmZzZXQgdG8gdGhlIHRhYmxlIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyAKKyAgICAgICAgaW50ICAgICAgICAgZlN0YXR1c1RhYmxlTGVuOworCisgICAgICAgIHB1YmxpYyBSQkJJRGF0YUhlYWRlcigpIHsKKyAgICAgICAgICAgIGZNYWdpYyA9IDA7CisgICAgICAgICAgICBmRm9ybWF0VmVyc2lvbiA9IG5ldyBieXRlWzRdOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFJCQkkgU3RhdGUgVGFibGUgSW5kZXhpbmcgRnVuY3Rpb24uICBHaXZlbiBhIHN0YXRlIG51bWJlciwgcmV0dXJuIHRoZQorICAgICAqIGFycmF5IGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgc3RhdGUgdGFibGUgcm93IGZvciB0aGF0IHN0YXRlLgorICAgICAqIAorICAgICAqLworICAgIGludCBnZXRSb3dJbmRleChpbnQgc3RhdGUpeworICAgICAgICByZXR1cm4gUk9XX0RBVEEgKyBzdGF0ZSAqIChmSGVhZGVyLmZDYXRDb3VudCArIDQpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgVHJpZUZvbGRpbmdGdW5jIGltcGxlbWVudHMgIFRyaWUuRGF0YU1hbmlwdWxhdGUgeworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IGRhdGEpIHsKKyAgICAgICAgICAgIGlmICgoZGF0YSAmIDB4ODAwMCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBkYXRhICYgMHg3ZmZmOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgVHJpZUZvbGRpbmdGdW5jICBmVHJpZUZvbGRpbmdGdW5jID0gbmV3IFRyaWVGb2xkaW5nRnVuYygpOworIAorICAgIAorICAgIFJCQklEYXRhV3JhcHBlcigpIHsKKyAgICB9CisKKyAgICAvKgorICAgICAqICBHZXQgYW4gUkJCSURhdGFXcmFwcGVyIGZyb20gYW4gSW5wdXRTdHJlYW0gb250byBhIHByZS1jb21waWxlZCBzZXQKKyAgICAgKiAgb2YgUkJCSSBydWxlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgUkJCSURhdGFXcmFwcGVyIGdldChJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIAorICAgICAgICBEYXRhSW5wdXRTdHJlYW0gZGlzID0gbmV3IERhdGFJbnB1dFN0cmVhbShuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcykpOworICAgICAgICBSQkJJRGF0YVdyYXBwZXIgVGhpcyA9IG5ldyBSQkJJRGF0YVdyYXBwZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIFNlZWsgcGFzdCB0aGUgSUNVIGRhdGEgaGVhZGVyLgorICAgICAgICAvLyAgIFRPRE86ICB2ZXJpZnkgdGhhdCB0aGUgaGVhZGVyIGxvb2tzIGdvb2QuCisgICAgICAgIGRpcy5za2lwKDB4ODApOworICAgICAgICAKKyAgICAgICAgLy8gUmVhZCBpbiB0aGUgUkJCSSBkYXRhIGhlYWRlci4uLgorICAgICAgICBUaGlzLmZIZWFkZXIgPSBuZXcgIFJCQklEYXRhSGVhZGVyKCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mTWFnaWMgICAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlZlcnNpb24gICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZGb3JtYXRWZXJzaW9uWzBdID0gKGJ5dGUpIChUaGlzLmZIZWFkZXIuZlZlcnNpb24gPj4gMjQpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkZvcm1hdFZlcnNpb25bMV0gPSAoYnl0ZSkgKFRoaXMuZkhlYWRlci5mVmVyc2lvbiA+PiAxNik7CisgICAgICAgIFRoaXMuZkhlYWRlci5mRm9ybWF0VmVyc2lvblsyXSA9IChieXRlKSAoVGhpcy5mSGVhZGVyLmZWZXJzaW9uID4+IDgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkZvcm1hdFZlcnNpb25bM10gPSAoYnl0ZSkgKFRoaXMuZkhlYWRlci5mVmVyc2lvbik7CisgICAgICAgIFRoaXMuZkhlYWRlci5mTGVuZ3RoICAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkNhdENvdW50ICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZGVGFibGUgICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mRlRhYmxlTGVuICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlJUYWJsZSAgICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZSVGFibGVMZW4gICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mU0ZUYWJsZSAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlNGVGFibGVMZW4gICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZTUlRhYmxlICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mU1JUYWJsZUxlbiAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlRyaWUgICAgICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZUcmllTGVuICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZSAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlJ1bGVTb3VyY2VMZW4gID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZSAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mU3RhdHVzVGFibGVMZW4gPSBkaXMucmVhZEludCgpOworICAgICAgICBkaXMuc2tpcCg2ICogNCk7ICAgIC8vIHVpbnQzMl90ICBmUmVzZXJ2ZWRbNl07CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaWYgKFRoaXMuZkhlYWRlci5mTWFnaWMgIT0gMHhiMWEwIHx8IAorICAgICAgICAgICAgICAgICEgKFRoaXMuZkhlYWRlci5mVmVyc2lvbiA9PSAxICB8fCAgICAgICAgIC8vIElDVSAzLjIgYW5kIGVhcmxpZXIKKyAgICAgICAgICAgICAgICAgICBUaGlzLmZIZWFkZXIuZkZvcm1hdFZlcnNpb25bMF0gPT0gMykgICAvLyBJQ1UgMy40CisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiQnJlYWsgSXRlcmF0b3IgUnVsZSBEYXRhIE1hZ2ljIE51bWJlciBJbmNvcnJlY3QsIG9yIHVuc3VwcG9ydGVkIGRhdGEgdmVyc2lvbi4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQ3VycmVudCBwb3NpdGlvbiBpbiBpbnB1dCBzdHJlYW0uICAKKyAgICAgICAgaW50IHBvcyA9IDI0ICogNDsgICAgIC8vIG9mZnNldCBvZiBlbmQgb2YgaGVhZGVyLCB3aGljaCBoYXMgMjQgZmllbGRzLCBhbGwgaW50MzJfdCAoNCBieXRlcykKKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFJlYWQgaW4gdGhlIEZvcndhcmQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZSBhcyBhbiBhcnJheSBvZiBzaG9ydHMuCisgICAgICAgIC8vCisgICAgICAgIAorICAgICAgICAvLyAgIFF1aWNrIFNhbml0eSBDaGVjaworICAgICAgICBpZiAoVGhpcy5mSGVhZGVyLmZGVGFibGUgPCBwb3MgfHwgVGhpcy5mSGVhZGVyLmZGVGFibGUgPiBUaGlzLmZIZWFkZXIuZkxlbmd0aCkgeworICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiQnJlYWsgaXRlcmF0b3IgUnVsZSBkYXRhIGNvcnJ1cHQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gICAgU2tpcCBvdmVyIGFueSBwYWRkaW5nIHByZWNlZGluZyB0aGlzIHRhYmxlCisgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mRlRhYmxlIC0gcG9zKTsKKyAgICAgICAgcG9zID0gVGhpcy5mSGVhZGVyLmZGVGFibGU7CisgICAgICAgIAorICAgICAgICBUaGlzLmZGVGFibGUgPSBuZXcgc2hvcnRbVGhpcy5mSGVhZGVyLmZGVGFibGVMZW4gLyAyXTsKKyAgICAgICAgZm9yICggaT0wOyBpPFRoaXMuZkZUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgVGhpcy5mRlRhYmxlW2ldID0gZGlzLnJlYWRTaG9ydCgpOyAKKyAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBSZWFkIGluIHRoZSBSZXZlcnNlIHN0YXRlIHRhYmxlCisgICAgICAgIC8vCisgICAgICAgIAorICAgICAgICAvLyBTa2lwIG92ZXIgYW55IHBhZGRpbmcgaW4gdGhlIGZpbGUKKyAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZSVGFibGUgLSBwb3MpOworICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlJUYWJsZTsKKyAgICAgICAgCisgICAgICAgIC8vIENyZWF0ZSAmIGZpbGwgdGhlIHRhYmxlIGl0c2VsZi4KKyAgICAgICAgVGhpcy5mUlRhYmxlID0gbmV3IHNob3J0W1RoaXMuZkhlYWRlci5mUlRhYmxlTGVuIC8gMl07CisgICAgICAgIGZvciAoaT0wOyBpPFRoaXMuZlJUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgVGhpcy5mUlRhYmxlW2ldID0gZGlzLnJlYWRTaG9ydCgpOyAKKyAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBSZWFkIGluIHRoZSBTYWZlIEZvcndhcmQgc3RhdGUgdGFibGUKKyAgICAgICAgLy8gCisgICAgICAgIGlmIChUaGlzLmZIZWFkZXIuZlNGVGFibGVMZW4gPiAwKSB7CisgICAgICAgICAgICAvLyBTa2lwIG92ZXIgYW55IHBhZGRpbmcgaW4gdGhlIGZpbGUKKyAgICAgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mU0ZUYWJsZSAtIHBvcyk7CisgICAgICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlNGVGFibGU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENyZWF0ZSAmIGZpbGwgdGhlIHRhYmxlIGl0c2VsZi4KKyAgICAgICAgICAgIFRoaXMuZlNGVGFibGUgPSBuZXcgc2hvcnRbVGhpcy5mSGVhZGVyLmZTRlRhYmxlTGVuIC8gMl07CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxUaGlzLmZTRlRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgVGhpcy5mU0ZUYWJsZVtpXSA9IGRpcy5yZWFkU2hvcnQoKTsgCisgICAgICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gUmVhZCBpbiB0aGUgU2FmZSBSZXZlcnNlIHN0YXRlIHRhYmxlCisgICAgICAgIC8vIAorICAgICAgICBpZiAoVGhpcy5mSGVhZGVyLmZTUlRhYmxlTGVuID4gMCkgeworICAgICAgICAgICAgLy8gU2tpcCBvdmVyIGFueSBwYWRkaW5nIGluIHRoZSBmaWxlCisgICAgICAgICAgICBkaXMuc2tpcChUaGlzLmZIZWFkZXIuZlNSVGFibGUgLSBwb3MpOworICAgICAgICAgICAgcG9zID0gVGhpcy5mSGVhZGVyLmZTUlRhYmxlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgJiBmaWxsIHRoZSB0YWJsZSBpdHNlbGYuCisgICAgICAgICAgICBUaGlzLmZTUlRhYmxlID0gbmV3IHNob3J0W1RoaXMuZkhlYWRlci5mU1JUYWJsZUxlbiAvIDJdOworICAgICAgICAgICAgZm9yIChpPTA7IGk8VGhpcy5mU1JUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFRoaXMuZlNSVGFibGVbaV0gPSBkaXMucmVhZFNob3J0KCk7IAorICAgICAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFVuc2VyaWFsaXplIHRoZSBDaGFyYWN0ZXIgY2F0ZWdvcmllcyBUUklFCisgICAgICAgIC8vICAgICBCZWNhdXNlIHdlIGNhbid0IGJlIGFic29sdXRlbHkgY2VydGFpbiB3aGVyZSB0aGUgVHJpZSBkZXNlcmlhbGl6ZSB3aWxsCisgICAgICAgIC8vICAgICBsZWF2ZSB0aGUgaW5wdXQgc3RyZWFtLCBsZWF2ZSBwb3NpdGlvbiB1bmNoYW5nZWQuCisgICAgICAgIC8vICAgICBUaGUgc2VlayB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgaXRlbSBmb2xsb3dpbmcgdGhlIFRSSUUgd2lsbCBnZXQgdXMKKyAgICAgICAgLy8gICAgIGJhY2sgaW4gc3luYy4KKyAgICAgICAgLy8KKyAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZUcmllIC0gcG9zKTsgICAgIC8vIHNlZWsgaW5wdXQgc3RyZWFtIGZyb20gZW5kIG9mIHByZXZpb3VzIHNlY3Rpb24gdG8KKyAgICAgICAgcG9zID0gVGhpcy5mSGVhZGVyLmZUcmllOyAgICAgICAgICAgICAgIC8vICAgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0cmllCisgICAgCisgICAgICAgIGRpcy5tYXJrKFRoaXMuZkhlYWRlci5mVHJpZUxlbisxMDApOyAgICAvLyBNYXJrIHBvc2l0aW9uIG9mIHN0YXJ0IG9mIFRSSUUgaW4gdGhlIGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgYW5kIHRlbGwgSmF2YSB0byBrZWVwIHRoZSBtYXJrIHZhbGlkIHNvIGxvbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBhcyB3ZSBkb24ndCBnbyBtb3JlIHRoYW4gMTAwIGJ5dGVzIHBhc3QgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgcGFzdCB0aGUgZW5kIG9mIHRoZSBUUklFLgorICAgIAorICAgICAgICBUaGlzLmZUcmllID0gbmV3IENoYXJUcmllKGRpcywgZlRyaWVGb2xkaW5nRnVuYyk7ICAvLyBEZXNlcmlhbGl6ZSB0aGUgVFJJRSwgbGVhdmluZyBpbnB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHN0cmVhbSBhdCBhbiB1bmtub3duIHBvc2l0aW9uLCBwcmVjZWRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgcGFkZGluZyBiZXR3ZWVuIFRSSUUgYW5kIGZvbGxvd2luZyBzZWN0aW9uLgorICAgIAorICAgICAgICBkaXMucmVzZXQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBpbnB1dCBzdHJlYW0gYmFjayB0byBtYXJrZWQgcG9zaXRpb24gYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgdGhlIHN0YXJ0IG9mIHRoZSBzZXJpYWxpemVkIFRSSUUuICBOb3cgb3VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICJwb3MiIHZhcmlhYmxlIGFuZCB0aGUgaW5wdXQgc3RyZWFtIGFyZSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBhZ3JlZW1lbnQuCisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBSZWFkIHRoZSBSdWxlIFN0YXR1cyBUYWJsZQorICAgICAgICAvLworICAgICAgICBpZiAocG9zID4gVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJCcmVhayBpdGVyYXRvciBSdWxlIGRhdGEgY29ycnVwdCIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mU3RhdHVzVGFibGUgLSBwb3MpOworICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlN0YXR1c1RhYmxlOworICAgICAgICBUaGlzLmZTdGF0dXNUYWJsZSA9IG5ldyBpbnRbVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZUxlbiAvIDRdOworICAgICAgICBmb3IgKGk9MDsgaTxUaGlzLmZTdGF0dXNUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgVGhpcy5mU3RhdHVzVGFibGVbaV0gPSBkaXMucmVhZEludCgpOyAKKyAgICAgICAgICAgIHBvcyArPSA0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBQdXQgdGhlIGJyZWFrIHJ1bGUgc291cmNlIGludG8gYSBTdHJpbmcKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKHBvcyA+IFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJCcmVhayBpdGVyYXRvciBSdWxlIGRhdGEgY29ycnVwdCIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZSAtIHBvcyk7CisgICAgICAgIHBvcyA9IFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcihUaGlzLmZIZWFkZXIuZlJ1bGVTb3VyY2VMZW4gLyAyKTsKKyAgICAgICAgZm9yIChpPTA7IGk8VGhpcy5mSGVhZGVyLmZSdWxlU291cmNlTGVuOyBpKz0yKSB7CisgICAgICAgICAgICBzYi5hcHBlbmQoZGlzLnJlYWRDaGFyKCkpOyAKKyAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICB9CisgICAgICAgIFRoaXMuZlJ1bGVTb3VyY2UgPSBzYi50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgaWYgKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZkRlYnVnRW52IT1udWxsICYmIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZkRlYnVnRW52LmluZGV4T2YoImRhdGEiKT49MCkgeworICAgICAgICAgICAgVGhpcy5kdW1wKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFRoaXM7CisgICAgfQorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8vICBHZXR0ZXJzIGZvciBmaWVsZHMgZnJvbSB0aGUgc3RhdGUgdGFibGUgaGVhZGVyCisgICAgLy8KKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgZ2V0TnVtU3RhdGVzKHNob3J0ICB0YWJsZVtdKSB7CisgICAgICAgIGludCAgaGkgPSB0YWJsZVtOVU1TVEFURVNdOworICAgICAgICBpbnQgIGxvID0gdGFibGVbTlVNU1RBVEVTKzFdOworICAgICAgICBpbnQgIHZhbCA9IChoaTw8MTYpICsgKGxvJjB4MDAwMGZmZmYpOworICAgICAgICByZXR1cm4gdmFsOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKiogRGVidWcgZnVuY3Rpb24gdG8gZGlzcGxheSB0aGUgYnJlYWsgaXRlcmF0b3IgZGF0YS4gIAorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2b2lkIGR1bXAoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUkJCSSBEYXRhIFdyYXBwZXIgZHVtcCAuLi4iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRm9yd2FyZCBTdGF0ZSBUYWJsZSIpOworICAgICAgICBkdW1wVGFibGUoZkZUYWJsZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmV2ZXJzZSBTdGF0ZSBUYWJsZSIpOworICAgICAgICBkdW1wVGFibGUoZlJUYWJsZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRm9yd2FyZCBTYWZlIFBvaW50cyBUYWJsZSIpOworICAgICAgICBkdW1wVGFibGUoZlNGVGFibGUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJldmVyc2UgU2FmZSBQb2ludHMgVGFibGUiKTsKKyAgICAgICAgZHVtcFRhYmxlKGZTUlRhYmxlKTsKKyAgICAgICAgCisgICAgICAgIGR1bXBDaGFyQ2F0ZWdvcmllcygpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvdXJjZSBSdWxlczogIiArIGZSdWxlU291cmNlKTsKKyAgICAgICAgCisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKiBGaXhlZCB3aWR0aCBpbnQtdG8tc3RyaW5nIGNvbnZlcnNpb24uICAgCisgICAgICogIEBpbnRlcm5hbAorICAgICAqIAorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGludFRvU3RyaW5nKGludCBuLCBpbnQgd2lkdGgpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyICBkZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcih3aWR0aCk7ICAgCisgICAgICAgIGRlc3QuYXBwZW5kKG4pOworICAgICAgICB3aGlsZSAoZGVzdC5sZW5ndGgoKSA8IHdpZHRoKSB7CisgICAgICAgICAgIGRlc3QuaW5zZXJ0KDAsICcgJyk7ICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc3QudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqIEZpeGVkIHdpZHRoIGludC10by1zdHJpbmcgY29udmVyc2lvbi4gICAKKyAgICAgKiAgQGludGVybmFsCisgICAgICogCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgaW50VG9IZXhTdHJpbmcoaW50IG4sIGludCB3aWR0aCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKHdpZHRoKTsgICAKKyAgICAgICAgZGVzdC5hcHBlbmQoSW50ZWdlci50b0hleFN0cmluZyhuKSk7CisgICAgICAgIHdoaWxlIChkZXN0Lmxlbmd0aCgpIDwgd2lkdGgpIHsKKyAgICAgICAgICAgZGVzdC5pbnNlcnQoMCwgJyAnKTsgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdC50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKiogRHVtcCBhIHN0YXRlIHRhYmxlLiAgKEEgZnVsbCBzZXQgb2YgUkJCSSBydWxlcyBoYXMgNCBzdGF0ZSB0YWJsZXMuKSAgKi8KKyAgICBwcml2YXRlIHZvaWQgZHVtcFRhYmxlKHNob3J0IHRhYmxlW10pIHsKKyAgICAgICAgaWYgKHRhYmxlID09IG51bGwpICAgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgIC0tIG51bGwgLS0gIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbjsKKyAgICAgICAgICAgIGludCBzdGF0ZTsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXIgPSAiIFJvdyAgQWNjIExvb2sgIFRhZyI7CisgICAgICAgICAgICBmb3IgKG49MDsgbjxmSGVhZGVyLmZDYXRDb3VudDsgbisrKSB7CisgICAgICAgICAgICAgICAgaGVhZGVyICs9IGludFRvU3RyaW5nKG4sIDUpOyAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaGVhZGVyKTsKKyAgICAgICAgICAgIGZvciAobj0wOyBuPGhlYWRlci5sZW5ndGgoKTsgbisrKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBmb3IgKHN0YXRlPTA7IHN0YXRlPCBnZXROdW1TdGF0ZXModGFibGUpOyBzdGF0ZSsrKSB7CisgICAgICAgICAgICAgICAgZHVtcFJvdyh0YWJsZSwgc3RhdGUpOyAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgICogRHVtcCAoZm9yIGRlYnVnKSBhIHNpbmdsZSByb3cgb2YgYW4gUkJCSSBzdGF0ZSB0YWJsZQorICAgICAqIEBwYXJhbSB0YWJsZQorICAgICAqIEBwYXJhbSBzdGF0ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkdW1wUm93KHNob3J0IHRhYmxlW10sIGludCAgIHN0YXRlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBkZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcihmSGVhZGVyLmZDYXRDb3VudCo1ICsgMjApOworICAgICAgICBkZXN0LmFwcGVuZChpbnRUb1N0cmluZyhzdGF0ZSwgNCkpOworICAgICAgICBpbnQgcm93ID0gZ2V0Um93SW5kZXgoc3RhdGUpOworICAgICAgICBpZiAodGFibGVbcm93K0FDQ0VQVElOR10gIT0gMCkgeworICAgICAgICAgICBkZXN0LmFwcGVuZChpbnRUb1N0cmluZyh0YWJsZVtyb3crQUNDRVBUSU5HXSwgNSkpOyAKKyAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgZGVzdC5hcHBlbmQoIiAgICAgIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhYmxlW3JvdytMT09LQUhFQURdICE9IDApIHsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHRhYmxlW3JvdytMT09LQUhFQURdLCA1KSk7IAorICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICBkZXN0LmFwcGVuZCgiICAgICAiKTsKKyAgICAgICAgfQorICAgICAgICBkZXN0LmFwcGVuZChpbnRUb1N0cmluZyh0YWJsZVtyb3crVEFHSURYXSwgNSkpOyAKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGNvbD0wOyBjb2w8ZkhlYWRlci5mQ2F0Q291bnQ7IGNvbCsrKSB7CisgICAgICAgICAgICBkZXN0LmFwcGVuZChpbnRUb1N0cmluZyh0YWJsZVtyb3crTkVYVFNUQVRFUytjb2xdLCA1KSk7ICAgCisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZGVzdCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgdm9pZCBkdW1wQ2hhckNhdGVnb3JpZXMoKSB7CisgICAgICAgIGludCBuID0gZkhlYWRlci5mQ2F0Q291bnQ7CisgICAgICAgIFN0cmluZyAgIGNhdFN0cmluZ3NbXSA9IG5ldyAgU3RyaW5nW24rMV07CisgICAgICAgIGludCAgICAgIHJhbmdlU3RhcnQgPSAwOworICAgICAgICBpbnQgICAgICByYW5nZUVuZCA9IDA7CisgICAgICAgIGludCAgICAgIGxhc3RDYXQgPSAtMTsKKyAgICAgICAgaW50ICAgICAgY2hhcjMyOworICAgICAgICBpbnQgICAgICBjYXRlZ29yeTsKKyAgICAgICAgaW50ICAgICAgbGFzdE5ld2xpbmVbXSA9IG5ldyBpbnRbbisxXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoY2F0ZWdvcnkgPSAwOyBjYXRlZ29yeSA8PSBmSGVhZGVyLmZDYXRDb3VudDsgY2F0ZWdvcnkgKyspIHsKKyAgICAgICAgICAgIGNhdFN0cmluZ3NbY2F0ZWdvcnldID0gIiI7ICAgCisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkNoYXJhY3RlciBDYXRlZ29yaWVzIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgZm9yIChjaGFyMzIgPSAwOyBjaGFyMzI8PTB4MTBmZmZmOyBjaGFyMzIrKykgeworICAgICAgICAgICAgY2F0ZWdvcnkgPSBmVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjaGFyMzIpOworICAgICAgICAgICAgY2F0ZWdvcnkgJj0gfjB4NDAwMDsgICAgICAgICAgICAvLyBNYXNrIG9mZiBkaWN0aW9uYXJ5IGJpdC4KKyAgICAgICAgICAgIGlmIChjYXRlZ29yeSA8IDAgfHwgY2F0ZWdvcnkgPiBmSGVhZGVyLmZDYXRDb3VudCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3IsIGJhZCBjYXRlZ29yeSAiICsgSW50ZWdlci50b0hleFN0cmluZyhjYXRlZ29yeSkgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZm9yIGNoYXIgIiArIEludGVnZXIudG9IZXhTdHJpbmcoY2hhcjMyKSk7IAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09IGxhc3RDYXQgKSB7CisgICAgICAgICAgICAgICAgcmFuZ2VFbmQgPSBjaGFyMzI7ICAgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsYXN0Q2F0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhdFN0cmluZ3NbbGFzdENhdF0ubGVuZ3RoKCkgPiBsYXN0TmV3bGluZVtsYXN0Q2F0XSArIDcwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0TmV3bGluZVtsYXN0Q2F0XSA9IGNhdFN0cmluZ3NbbGFzdENhdF0ubGVuZ3RoKCkgKyAxMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdFN0cmluZ3NbbGFzdENhdF0gKz0gIlxuICAgICAgICI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhdFN0cmluZ3NbbGFzdENhdF0gKz0gIiAiICsgSW50ZWdlci50b0hleFN0cmluZyhyYW5nZVN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmdlRW5kICE9IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdFN0cmluZ3NbbGFzdENhdF0gKz0gIi0iICsgSW50ZWdlci50b0hleFN0cmluZyhyYW5nZUVuZCk7ICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGFzdENhdCA9IGNhdGVnb3J5OworICAgICAgICAgICAgICAgIHJhbmdlU3RhcnQgPSByYW5nZUVuZCA9IGNoYXIzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRTdHJpbmdzW2xhc3RDYXRdICs9ICIgIiArIEludGVnZXIudG9IZXhTdHJpbmcocmFuZ2VTdGFydCk7CisgICAgICAgIGlmIChyYW5nZUVuZCAhPSByYW5nZVN0YXJ0KSB7CisgICAgICAgICAgICBjYXRTdHJpbmdzW2xhc3RDYXRdICs9ICItIiArIEludGVnZXIudG9IZXhTdHJpbmcocmFuZ2VFbmQpOyAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGNhdGVnb3J5ID0gMDsgY2F0ZWdvcnkgPD0gZkhlYWRlci5mQ2F0Q291bnQ7IGNhdGVnb3J5ICsrKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4gKGludFRvU3RyaW5nKGNhdGVnb3J5LCA1KSArICIgICIgKyBjYXRTdHJpbmdzW2NhdGVnb3J5XSk7ICAgCisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLypzdGF0aWMgUkJCSURhdGFXcmFwcGVyIGdldChTdHJpbmcgbmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nICBmdWxsTmFtZSA9ICJkYXRhLyIgKyBuYW1lOworICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oZnVsbE5hbWUpOworICAgICAgICByZXR1cm4gZ2V0KGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFN0cmluZyBzOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcyA9ICJjaGFyIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHMgPSBhcmdzWzBdOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUkJCSURhdGFXcmFwcGVyLm1haW4oIiArIHMgKyAiKSAiKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB2ZXJzaW9uZWROYW1lID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiLyIrIHMgKyAiLmJyayI7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgUkJCSURhdGFXcmFwcGVyIFRoaXMgPSBSQkJJRGF0YVdyYXBwZXIuZ2V0KHZlcnNpb25lZE5hbWUpOworICAgICAgICAgICAgVGhpcy5kdW1wKCk7CisgICAgICAgIH0KKyAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgIH0KKyAgICAgICAgICAgCisgICAgfSovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJTm9kZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSU5vZGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDVlZWZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSU5vZGUuamF2YQpAQCAtMCwwICsxLDM1NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDT1BZUklHSFQ6CisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQXNzZXJ0OworCisvKioKKyAqICAgVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgbm9kZSBpbiB0aGUgcGFyc2UgdHJlZSBjcmVhdGVkIGJ5IHRoZSBSQkJJIFJ1bGUgY29tcGlsZXIuCisgKiBAaW50ZXJuYWwKKyAqCisgKi8KK2NsYXNzIFJCQklOb2RlIHsKKworICAgIAorIC8vICAgZW51bSBOb2RlVHlwZSB7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgc2V0UmVmID0gMDsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICB1c2V0ID0gMTsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICB2YXJSZWYgPSAyOworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIGxlYWZDaGFyID0gMzsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBsb29rQWhlYWQgPSA0OworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIHRhZyA9IDU7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgZW5kTWFyayA9IDY7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgb3BTdGFydCA9IDc7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgb3BDYXQgPSA4OworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wT3IgPSA5OworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wU3RhciA9IDEwOworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wUGx1cyA9IDExOworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wUXVlc3Rpb24gPSAxMjsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBvcEJyZWFrID0gMTM7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgb3BSZXZlcnNlID0gMTQ7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgb3BMUGFyZW4gPSAxNTsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBub2RlVHlwZUxpbWl0ID0gMTY7ICAgIC8vICBGb3IgQXNzZXJ0aW9uIGNoZWNraW5nIG9ubHkuCisgICAgIAorICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFtdICBub2RlVHlwZU5hbWVzID0geworICAgICAgICAgInNldFJlZiIsCisgICAgICAgICAidXNldCIsCisgICAgICAgICAidmFyUmVmIiwKKyAgICAgICAgICJsZWFmQ2hhciIsCisgICAgICAgICAibG9va0FoZWFkIiwKKyAgICAgICAgICJ0YWciLAorICAgICAgICAgImVuZE1hcmsiLAorICAgICAgICAgIm9wU3RhcnQiLAorICAgICAgICAgIm9wQ2F0IiwKKyAgICAgICAgICJvcE9yIiwKKyAgICAgICAgICJvcFN0YXIiLAorICAgICAgICAgIm9wUGx1cyIsCisgICAgICAgICAib3BRdWVzdGlvbiIsCisgICAgICAgICAib3BCcmVhayIsCisgICAgICAgICAib3BSZXZlcnNlIiwKKyAgICAgICAgICJvcExQYXJlbiIKKyAgICAgfTsKKworLy8gICAgZW51bSBPcFByZWNlZGVuY2UgeyAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgcHJlY1plcm8gICA9IDA7CisgICAgc3RhdGljIGZpbmFsIGludCAgICBwcmVjU3RhcnQgID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50ICAgIHByZWNMUGFyZW4gPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgcHJlY09wT3IgICA9IDM7CisgICAgc3RhdGljIGZpbmFsIGludCAgICBwcmVjT3BDYXQgID0gNDsKKyAgICAgICAgCisgICAgaW50ICAgICAgICAgIGZUeXBlOyAgIC8vIGVudW0gTm9kZVR5cGUKKyAgICBSQkJJTm9kZSAgICAgIGZQYXJlbnQ7CisgICAgUkJCSU5vZGUgICAgICBmTGVmdENoaWxkOworICAgIFJCQklOb2RlICAgICAgZlJpZ2h0Q2hpbGQ7CisgICAgVW5pY29kZVNldCAgICBmSW5wdXRTZXQ7ICAgICAgICAgICAvLyBGb3IgdXNldCBub2RlcyBvbmx5LgorICAgIGludCAgICAgICAgICBmUHJlY2VkZW5jZSA9IHByZWNaZXJvOyAgIC8vIGVudW0gT3BQcmVjZWRlbmNlLCBGb3IgYmluYXJ5IG9wcyBvbmx5LgorICAgIAorICAgIFN0cmluZyAgICAgICBmVGV4dDsgICAgICAgICAgICAgICAgIC8vIFRleHQgY29ycmVzcG9uZGluZyB0byB0aGlzIG5vZGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBNYXkgYmUgbGF6aWx5IGV2YWx1YXRlZCB3aGVuIChpZikgbmVlZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBmb3Igc29tZSBub2RlIHR5cGVzLgorICAgIGludCAgICAgICAgICAgZkZpcnN0UG9zOyAgICAgICAgICAgIC8vIFBvc2l0aW9uIGluIHRoZSBydWxlIHNvdXJjZSBzdHJpbmcgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBmaXJzdCB0ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIElmIHRoZXJlJ3MgYSBsZWZ0IGNoaWxkLCB0aGlzIHdpbGwgYmUgdGhlIHNhbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGFzIHRoYXQgY2hpbGQncyBsZWZ0IHBvcy4KKyAgICBpbnQgICAgICAgICAgIGZMYXN0UG9zOyAgICAgICAgICAgICAvLyAgTGFzdCBwb3NpdGlvbiBpbiB0aGUgcnVsZSBzb3VyY2Ugc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgb2YgYW55IHRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbm9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICBJZiB0aGVyZSdzIGEgcmlnaHQgY2hpbGQsIHRoaXMgd2lsbCBiZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIGFzIHRoYXQgY2hpbGQncyBsYXN0IHBvc3Rpb24uCisKKyAgICBib29sZWFuICAgICAgZk51bGxhYmxlOyAgICAgICAgICAgIC8vICBTZWUgQWhvIERGQSB0YWJsZSBnZW5lcmF0aW9uIGFsZ29yaXRobQorICAgIGludCAgICAgICAgICAgZlZhbDsgICAgICAgICAgICAgICAgIC8vIEZvciBsZWFmQ2hhciBub2RlcywgdGhlIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgVmFsdWVzIGFyZSB0aGUgY2hhcmFjdGVyIGNhdGVnb3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgY29ycmVzcG9uZHMgdG8gY29sdW1ucyBpbiB0aGUgZmluYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuCisKKyAgICBib29sZWFuICAgICAgZkxvb2tBaGVhZEVuZDsgICAgICAgIC8vIEZvciBlbmRNYXJrIG5vZGVzLCBzZXQgVFJVRSBpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgbWFya2luZyB0aGUgZW5kIG9mIGEgbG9vay1haGVhZCBydWxlLgorCisgICAgU2V0ICAgICAgICAgICBmRmlyc3RQb3NTZXQ7ICAgICAgICAgLy8gU2VlIEFobyBERkEgdGFibGUgZ2VuZXJhdGlvbiBhbGdvcml0aG0KKyAgICBTZXQgICAgICAgICAgIGZMYXN0UG9zU2V0OyAgICAgICAgICAvLyBTZWUgQWhvLiAgICAgICAKKyAgICBTZXQgICAgICAgICAgIGZGb2xsb3dQb3M7ICAgICAgICAgICAvLyBTZWUgQWhvLgorICAgIAorICAgIGludCAgICAgICAgICAgZlNlcmlhbE51bTsgICAgICAgICAgIC8vICBEZWJ1Z2dpbmcgYWlkcy4gIEVhY2ggbm9kZSBnZXRzIGEgdW5pcXVlIHNlcmlhbCBudW1iZXIuCisgICAgc3RhdGljIGludCAgICBnTGFzdFNlcmlhbDsKKworICAgIFJCQklOb2RlKGludCB0KSB7CisJCUFzc2VydC5hc3NydCh0IDwgbm9kZVR5cGVMaW1pdCk7CisJCWZTZXJpYWxOdW0gPSArK2dMYXN0U2VyaWFsOworCQlmVHlwZSA9IHQ7CisKKwkJZkZpcnN0UG9zU2V0ID0gbmV3IEhhc2hTZXQoKTsKKwkJZkxhc3RQb3NTZXQgPSBuZXcgSGFzaFNldCgpOworCQlmRm9sbG93UG9zID0gbmV3IEhhc2hTZXQoKTsKKwkJaWYgKHQgPT0gb3BDYXQpIHsKKwkJCWZQcmVjZWRlbmNlID0gcHJlY09wQ2F0OworCQl9IGVsc2UgaWYgKHQgPT0gb3BPcikgeworCQkJZlByZWNlZGVuY2UgPSBwcmVjT3BPcjsKKwkJfSBlbHNlIGlmICh0ID09IG9wU3RhcnQpIHsKKwkJCWZQcmVjZWRlbmNlID0gcHJlY1N0YXJ0OworCQl9IGVsc2UgaWYgKHQgPT0gb3BMUGFyZW4pIHsKKwkJCWZQcmVjZWRlbmNlID0gcHJlY0xQYXJlbjsKKwkJfSBlbHNlIHsKKwkJCWZQcmVjZWRlbmNlID0gcHJlY1plcm87CisgICAgICAgIH0KKwl9CisKKwlSQkJJTm9kZShSQkJJTm9kZSBvdGhlcikgeworCQlmU2VyaWFsTnVtID0gKytnTGFzdFNlcmlhbDsKKwkJZlR5cGUgPSBvdGhlci5mVHlwZTsKKwkJZklucHV0U2V0ID0gb3RoZXIuZklucHV0U2V0OworCQlmUHJlY2VkZW5jZSA9IG90aGVyLmZQcmVjZWRlbmNlOworCQlmVGV4dCA9IG90aGVyLmZUZXh0OworCQlmRmlyc3RQb3MgPSBvdGhlci5mRmlyc3RQb3M7CisJCWZMYXN0UG9zID0gb3RoZXIuZkxhc3RQb3M7CisJCWZOdWxsYWJsZSA9IG90aGVyLmZOdWxsYWJsZTsKKwkJZlZhbCA9IG90aGVyLmZWYWw7CisJCWZGaXJzdFBvc1NldCA9IG5ldyBIYXNoU2V0KG90aGVyLmZGaXJzdFBvc1NldCk7CisJCWZMYXN0UG9zU2V0ID0gbmV3IEhhc2hTZXQob3RoZXIuZkxhc3RQb3NTZXQpOworCQlmRm9sbG93UG9zID0gbmV3IEhhc2hTZXQob3RoZXIuZkZvbGxvd1Bvcyk7CisJfQorCisJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJLy8KKwkvLyAgICAgICAgY2xvbmVUcmVlIE1ha2UgYSBjb3B5IG9mIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCB0aGlzIG5vZGUuCisJLy8gICAgICAgICAgICAgICAgICAgICAgRGlzY2FyZCBhbnkgdmFyaWFibGUgcmVmZXJlbmNlcyBlbmNvdW50ZXJlZCBhbG9uZyB0aGUgd2F5LAorCS8vICAgICAgICAgICAgICAgICAgICAgIGFuZCByZXBsYWNlIHdpdGggY29waWVzIG9mIHRoZSB2YXJpYWJsZSdzIGRlZmluaXRpb25zLgorCS8vICAgICAgICAgICAgICAgICAgICAgIFVzZWQgdG8gcmVwbGljYXRlIHRoZSBleHByZXNzaW9uIHVuZGVybmVhdGggdmFyaWFibGUKKwkvLyAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzIGluIHByZXBhcmF0aW9uIGZvciBnZW5lcmF0aW5nIHRoZSBERkEgdGFibGVzLgorCS8vCisJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJUkJCSU5vZGUgY2xvbmVUcmVlKCkgeworCQlSQkJJTm9kZSBuOworCisJCWlmIChmVHlwZSA9PSBSQkJJTm9kZS52YXJSZWYpIHsKKwkJCS8vIElmIHRoZSBjdXJyZW50IG5vZGUgaXMgYSB2YXJpYWJsZSByZWZlcmVuY2UsIHNraXAgb3ZlciBpdAorCQkJLy8gICBhbmQgY2xvbmUgdGhlIGRlZmluaXRpb24gb2YgdGhlIHZhcmlhYmxlIGluc3RlYWQuCisJCQluID0gZkxlZnRDaGlsZC5jbG9uZVRyZWUoKTsKKwkJfSBlbHNlIGlmIChmVHlwZSA9PSBSQkJJTm9kZS51c2V0KSB7CisJCQluID0gdGhpczsKKwkJfSBlbHNlIHsKKwkJCW4gPSBuZXcgUkJCSU5vZGUodGhpcyk7CisJCQlpZiAoZkxlZnRDaGlsZCAhPSBudWxsKSB7CisJCQkJbi5mTGVmdENoaWxkID0gZkxlZnRDaGlsZC5jbG9uZVRyZWUoKTsKKwkJCQluLmZMZWZ0Q2hpbGQuZlBhcmVudCA9IG47CisJCQl9CisJCQlpZiAoZlJpZ2h0Q2hpbGQgIT0gbnVsbCkgeworCQkJCW4uZlJpZ2h0Q2hpbGQgPSBmUmlnaHRDaGlsZC5jbG9uZVRyZWUoKTsKKwkJCQluLmZSaWdodENoaWxkLmZQYXJlbnQgPSBuOworCQkJfQorCQl9CisJCXJldHVybiBuOworCX0KKworCisKKwkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkvLworCS8vICAgICAgIGZsYXR0ZW5WYXJpYWJsZXMgV2FsayBhIHBhcnNlIHRyZWUsIHJlcGxhY2luZyBhbnkgdmFyaWFibGUKKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcyB3aXRoIGEgY29weSBvZiB0aGUgdmFyaWFibGUncyBkZWZpbml0aW9uLgorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICBBc2lkZSBmcm9tIHZhcmlhYmxlcywgdGhlIHRyZWUgaXMgbm90IGNoYW5nZWQuCisJLy8KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIHRoZSByb290IG9mIHRoZSB0cmVlLiBJZiB0aGUgcm9vdCB3YXMgbm90IGEgdmFyaWFibGUKKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlLCBpdCByZW1haW5zIHVuY2hhbmdlZCAtIHRoZSByb290IHdlIHN0YXJ0ZWQgd2l0aAorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICBpcyB0aGUgcm9vdCB3ZSByZXR1cm4uIElmLCBob3dldmVyLCB0aGUgcm9vdCB3YXMgYSB2YXJpYWJsZQorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UsIHRoZSByb290IG9mIHRoZSBuZXdseSBjbG9uZWQgcmVwbGFjZW1lbnQgdHJlZSB3aWxsCisJLy8gICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHJldHVybmVkLCBhbmQgdGhlIG9yaWdpbmFsIHRyZWUgZGVsZXRlZC4KKwkvLworCS8vICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHdvcmtzIGJ5IHJlY3Vyc2l2ZWx5IHdhbGtpbmcgdGhlIHRyZWUKKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aG91dCBkb2luZyBhbnl0aGluZyB1bnRpbCBhIHZhcmlhYmxlIHJlZmVyZW5jZSBpcworCS8vICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCwgdGhlbiBjYWxsaW5nIGNsb25lVHJlZSgpIGF0IHRoYXQgcG9pbnQuIEFueQorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgcmVmZXJlbmNlcyBhcmUgaGFuZGxlZCBieSBjbG9uZVRyZWUoKSwgbm90IGhlcmUuCisJLy8KKwkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwlSQkJJTm9kZSBmbGF0dGVuVmFyaWFibGVzKCkgeworCQlpZiAoZlR5cGUgPT0gdmFyUmVmKSB7CisJCQlSQkJJTm9kZSByZXROb2RlID0gZkxlZnRDaGlsZC5jbG9uZVRyZWUoKTsKKwkJCS8vIGRlbGV0ZSB0aGlzOworCQkJcmV0dXJuIHJldE5vZGU7CisJCX0KKworCQlpZiAoZkxlZnRDaGlsZCAhPSBudWxsKSB7CisJCQlmTGVmdENoaWxkID0gZkxlZnRDaGlsZC5mbGF0dGVuVmFyaWFibGVzKCk7CisJCQlmTGVmdENoaWxkLmZQYXJlbnQgPSB0aGlzOworCQl9CisJCWlmIChmUmlnaHRDaGlsZCAhPSBudWxsKSB7CisJCQlmUmlnaHRDaGlsZCA9IGZSaWdodENoaWxkLmZsYXR0ZW5WYXJpYWJsZXMoKTsKKwkJCWZSaWdodENoaWxkLmZQYXJlbnQgPSB0aGlzOworCQl9CisJCXJldHVybiB0aGlzOworCX0KKworCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCS8vCisJLy8gICAgICBmbGF0dGVuU2V0cyBXYWxrIHRoZSBwYXJzZSB0cmVlLCByZXBsYWNpbmcgYW55IG5vZGVzIG9mIHR5cGUgc2V0UmVmCisJLy8gICAgICAgICAgICAgICAgICAgICB3aXRoIGEgY29weSBvZiB0aGUgZXhwcmVzc2lvbiB0cmVlIGZvciB0aGUgc2V0LiBBIHNldCdzCisJLy8gICAgICAgICAgICAgICAgICAgICBlcXVpdmFsZW50IGV4cHJlc3Npb24gdHJlZSBpcyBwcmVjb21wdXRlZCBhbmQgc2F2ZWQgYXMKKwkvLyAgICAgICAgICAgICAgICAgICAgIHRoZSBsZWZ0IGNoaWxkIG9mIHRoZSB1c2V0IG5vZGUuCisJLy8KKwkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwl2b2lkIGZsYXR0ZW5TZXRzKCkgeworCQlBc3NlcnQuYXNzcnQoZlR5cGUgIT0gc2V0UmVmKTsKKworCQlpZiAoZkxlZnRDaGlsZCAhPSBudWxsKSB7CisJCQlpZiAoZkxlZnRDaGlsZC5mVHlwZSA9PSBzZXRSZWYpIHsKKwkJCQlSQkJJTm9kZSBzZXRSZWZOb2RlID0gZkxlZnRDaGlsZDsKKwkJCQlSQkJJTm9kZSB1c2V0Tm9kZSA9IHNldFJlZk5vZGUuZkxlZnRDaGlsZDsKKwkJCQlSQkJJTm9kZSByZXBsVHJlZSA9IHVzZXROb2RlLmZMZWZ0Q2hpbGQ7CisJCQkJZkxlZnRDaGlsZCA9IHJlcGxUcmVlLmNsb25lVHJlZSgpOworCQkJCWZMZWZ0Q2hpbGQuZlBhcmVudCA9IHRoaXM7CisJCQl9IGVsc2UgeworCQkJCWZMZWZ0Q2hpbGQuZmxhdHRlblNldHMoKTsKKwkJCX0KKwkJfQorCisJCWlmIChmUmlnaHRDaGlsZCAhPSBudWxsKSB7CisJCQlpZiAoZlJpZ2h0Q2hpbGQuZlR5cGUgPT0gc2V0UmVmKSB7CisJCQkJUkJCSU5vZGUgc2V0UmVmTm9kZSA9IGZSaWdodENoaWxkOworCQkJCVJCQklOb2RlIHVzZXROb2RlID0gc2V0UmVmTm9kZS5mTGVmdENoaWxkOworCQkJCVJCQklOb2RlIHJlcGxUcmVlID0gdXNldE5vZGUuZkxlZnRDaGlsZDsKKwkJCQlmUmlnaHRDaGlsZCA9IHJlcGxUcmVlLmNsb25lVHJlZSgpOworCQkJCWZSaWdodENoaWxkLmZQYXJlbnQgPSB0aGlzOworCQkJCS8vIGRlbGV0ZSBzZXRSZWZOb2RlOworCQkJfSBlbHNlIHsKKwkJCQlmUmlnaHRDaGlsZC5mbGF0dGVuU2V0cygpOworCQkJfQorCQl9CisJfQorCisJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJLy8KKwkvLyAgICAgICBmaW5kTm9kZXMoKSBMb2NhdGUgYWxsIHRoZSBub2RlcyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUsIHN0YXJ0aW5nCisJLy8gICAgICAgICAgICAgICAgICAgICAgIGF0IHRoZSBzcGVjaWZpZWQgcm9vdC4KKwkvLworCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCXZvaWQgZmluZE5vZGVzKExpc3QgZGVzdCwgaW50IGtpbmQpIHsKKwkJaWYgKGZUeXBlID09IGtpbmQpIHsKKwkJCWRlc3QuYWRkKHRoaXMpOworCQl9CisJCWlmIChmTGVmdENoaWxkICE9IG51bGwpIHsKKwkJCWZMZWZ0Q2hpbGQuZmluZE5vZGVzKGRlc3QsIGtpbmQpOworCQl9CisJCWlmIChmUmlnaHRDaGlsZCAhPSBudWxsKSB7CisJCQlmUmlnaHRDaGlsZC5maW5kTm9kZXMoZGVzdCwga2luZCk7CisJCX0KKwl9CisKKyAgICAKKyAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgICBwcmludC4gUHJpbnQgb3V0IGEgc2luZ2xlIG5vZGUsIGZvciBkZWJ1Z2dpbmcuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgc3RhdGljIHZvaWQgcHJpbnROb2RlKFJCQklOb2RlIG4pIHsKKworICAgICAgICBpZiAobj09bnVsbCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCAoIiAtLSBudWxsIC0tXG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KCBuLmZTZXJpYWxOdW0sIDEwKTsKKyAgICAgICAgICAgIFJCQklOb2RlLnByaW50U3RyaW5nKG5vZGVUeXBlTmFtZXNbbi5mVHlwZV0sIDExKTsKKyAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KG4uZlBhcmVudD09bnVsbD8gMCAgICAgOiBuLmZQYXJlbnQuZlNlcmlhbE51bSwgMTEpOworICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQobi5mTGVmdENoaWxkPT1udWxsPyAwICA6IG4uZkxlZnRDaGlsZC5mU2VyaWFsTnVtLCAxMSk7CisgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludChuLmZSaWdodENoaWxkPT1udWxsPyAwIDogbi5mUmlnaHRDaGlsZC5mU2VyaWFsTnVtLCAxMik7CisgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludChuLmZGaXJzdFBvcywgMTIpOworICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQobi5mVmFsLCA3KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG4uZlR5cGUgPT0gdmFyUmVmKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIgKyBuLmZUZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAKKworICAgIC8vIFByaW50IGEgU3RyaW5nIGluIGEgZml4ZWQgZmllbGQgc2l6ZS4KKwkvLyBEZWJ1Z2dpbmcgZnVuY3Rpb24uCisgICAgLy8vQ0xPVkVSOk9GRgorCXN0YXRpYyB2b2lkIHByaW50U3RyaW5nKFN0cmluZyBzLCBpbnQgbWluV2lkdGgpIHsKKwkJZm9yIChpbnQgaSA9IG1pbldpZHRoOyBpIDwgMDsgaSsrKSB7CisJCQkvLyBuZWdhdGl2ZSB3aWR0aCBtZWFucyBwYWQgbGVhZGluZyBzcGFjZXMsIG5vdCBmaXhlZCB3aWR0aC4KKwkJCVN5c3RlbS5vdXQucHJpbnQoJyAnKTsKKwkJfQorCQlmb3IgKGludCBpID0gcy5sZW5ndGgoKTsgaSA8IG1pbldpZHRoOyBpKyspIHsKKwkJCVN5c3RlbS5vdXQucHJpbnQoJyAnKTsKKwkJfQorCQlTeXN0ZW0ub3V0LnByaW50KHMpOworCX0KKyAgICAvLy9DTE9WRVI6T04KKworCS8vCisJLy8gIFByaW50IGFuIGludCBpbiBhIGZpeGVkIHNpemUgZmllbGQuCisJLy8gIERlYnVnZ2luZyBmdW5jdGlvbi4KKwkvLworICAgIC8vL0NMT1ZFUjpPRkYKKwlzdGF0aWMgdm9pZCBwcmludEludChpbnQgaSwgaW50IG1pbldpZHRoKSB7CisJCVN0cmluZyBzID0gSW50ZWdlci50b1N0cmluZyhpKTsKKwkJcHJpbnRTdHJpbmcocywgTWF0aC5tYXgobWluV2lkdGgsIHMubGVuZ3RoKCkgKyAxKSk7CisJfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8vQ0xPVkVSOk9GRgorCXN0YXRpYyB2b2lkIHByaW50SGV4KGludCBpLCBpbnQgbWluV2lkdGgpIHsKKwkJU3RyaW5nIHMgPSBJbnRlZ2VyLnRvU3RyaW5nKGksIDE2KTsKKwkJU3RyaW5nIGxlYWRpbmdaZXJvZXMgPSAiMDAwMDAiCisJCQkJLnN1YnN0cmluZygwLCBNYXRoLm1heCgwLCA1IC0gcy5sZW5ndGgoKSkpOworCQlzID0gbGVhZGluZ1plcm9lcyArIHM7CisJCXByaW50U3RyaW5nKHMsIG1pbldpZHRoKTsKKwl9CisgICAgLy8vQ0xPVkVSOk9OCisKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgICBwcmludC4gUHJpbnQgb3V0IHRoZSB0cmVlIG9mIG5vZGVzIHJvb3RlZCBhdCAidGhpcyIKKyAgICAvLworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgdm9pZCBwcmludFRyZWUoYm9vbGVhbiBwcmludEhlYWRpbmcpIHsKKyAgICAgICAgaWYgKHByaW50SGVhZGluZykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgU2VyaWFsICAgICAgIHR5cGUgICAgIFBhcmVudCAgTGVmdENoaWxkICBSaWdodENoaWxkICAgIHBvc2l0aW9uICB2YWx1ZSIpOworICAgICAgICB9CisgICAgICAgIHByaW50Tm9kZSh0aGlzKTsKKyAgICAgICAgICAgIC8vIE9ubHkgZHVtcCB0aGUgZGVmaW5pdGlvbiB1bmRlciBhIHZhcmlhYmxlIHJlZmVyZW5jZSBpZiBhc2tlZCB0by4KKyAgICAgICAgICAgIC8vIFVuY29uZGl0aW5hbGx5IGR1bXAgY2hpbGRyZW4gb2YgYWxsIG90aGVyIG5vZGUgdHlwZXMuCisgICAgICAgICAgICBpZiAoZlR5cGUgIT0gdmFyUmVmKSB7CisgICAgICAgICAgICAgICAgaWYgKGZMZWZ0Q2hpbGQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmTGVmdENoaWxkLnByaW50VHJlZShmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChmUmlnaHRDaGlsZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZSaWdodENoaWxkLnByaW50VHJlZShmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVJ1bGVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJUnVsZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MGJmYjlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVJ1bGVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwzMzAgQEAKKy8vCisvLyAgICBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorLy8gICAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vCisvLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQXNzZXJ0OworCitjbGFzcyBSQkJJUnVsZUJ1aWxkZXIgeworICAgIC8vICAgVGhpcyBpcyB0aGUgbWFpbiBjbGFzcyBmb3IgYnVpbGRpbmcgKGNvbXBpbGluZykgYnJlYWsgcnVsZXMgaW50byB0aGUgdGFibGVzCisgICAgLy8gICAgcmVxdWlyZWQgYnkgdGhlIHJ1bnRpbWUgUkJCSSBlbmdpbmUuCisgICAgLy8KKyAgICAKKyAgICBTdHJpbmcgZkRlYnVnRW52OyAgICAgICAgICAgICAgLy8gY29udHJvbHMgZGVidWcgdHJhY2Ugb3V0cHV0CisgICAgU3RyaW5nIGZSdWxlczsgICAgICAgICAgICAgICAgIC8vIFRoZSBydWxlIHN0cmluZyB0aGF0IHdlIGFyZSBjb21waWxpbmcKKyAgICBSQkJJUnVsZVNjYW5uZXIgZlNjYW5uZXI7ICAgICAgLy8gVGhlIHNjYW5uZXIuCisKKyAgICAKKyAgICAvLworICAgIC8vICBUaGVyZSBhcmUgZm91ciBzZXBhcmF0ZSBwYXJzZSB0cmVlcyBnZW5lcmF0ZWQsIG9uZSBmb3IgZWFjaCBvZiB0aGUKKyAgICAvLyAgICBmb3J3YXJkIHJ1bGVzLCByZXZlcnNlIHJ1bGVzLCBzYWZlIGZvcndhcmQgcnVsZXMgYW5kIHNhZmUgcmV2ZXJzZSBydWxlcy4KKyAgICAvLyAgVGhpcyBhcnJheSByZWZlcmVuY2VzIHRoZSByb290IG9mIGVhY2ggb2YgdGhlIHRyZWVzLgorICAgIC8vICAKKyAgICBSQkJJTm9kZVtdICAgICAgICAgZlRyZWVSb290cyA9IG5ldyBSQkJJTm9kZVs0XTsKKyAgICBzdGF0aWMgZmluYWwgaW50ICAgZkZvcndhcmRUcmVlID0gMDsgIC8vIEluZGV4ZXMgaW50byB0aGUgYWJvdmUgZlRyZWVSb290cyBhcnJheQorICAgIHN0YXRpYyBmaW5hbCBpbnQgICBmUmV2ZXJzZVRyZWUgPSAxOyAgLy8gICBmb3IgZWFjaCBvZiB0aGUgdHJlZXMuCisgICAgc3RhdGljIGZpbmFsIGludCAgIGZTYWZlRndkVHJlZSA9IDI7ICAvLyAgIChpbiBDLCB0aGVzZSBhcmUgcG9pbnRlciB2YXJpYWJsZXMgYW5kCisgICAgc3RhdGljIGZpbmFsIGludCAgIGZTYWZlUmV2VHJlZSA9IDM7ICAvLyAgICB0aGVyZSBpcyBubyBhcnJheS4pCisgICAgaW50IGZEZWZhdWx0VHJlZSA9IGZGb3J3YXJkVHJlZTsgICAgICAvLyBGb3IgcnVsZXMgbm90IHF1YWxpZmllZCB3aXRoIGEgIQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB0aGUgdHJlZSB0byB3aGljaCB0aGV5IGJlbG9uZyB0by4KKworICAgIGJvb2xlYW4gZkNoYWluUnVsZXM7ICAgICAgICAgICAgICAgICAgLy8gVHJ1ZSBmb3IgY2hhaW5lZCBVbmljb2RlIFRSIHN0eWxlIHJ1bGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsc2UgZm9yIHRyYWRpdGlvbmFsIHJlZ2V4cCBydWxlcy4KKworICAgIGJvb2xlYW4gZkxCQ01Ob0NoYWluOyAgICAgICAgICAgICAgICAgLy8gVHJ1ZTogIHN1cHByZXNzIGNoYWluaW5nIG9mIHJ1bGVzIG9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNoYXJzIHdpdGggTGluZUJyZWFrIHByb3BlcnR5ID09IENNLgorCisgICAgYm9vbGVhbiBmTG9va0FoZWFkSGFyZEJyZWFrOyAgICAgICAgICAvLyBUcnVlOiAgTG9vayBhaGVhZCBtYXRjaGVzIGNhdXNlIGFuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbW1lZGlhdGUgYnJlYWssIG5vIGNvbnRpbnVpbmcgZm9yIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9uZ2VzdCBtYXRjaC4KKworICAgIFJCQklTZXRCdWlsZGVyIGZTZXRCdWlsZGVyOyAgICAgICAgICAgLy8gU2V0IGFuZCBDaGFyYWN0ZXIgQ2F0ZWdvcnkgYnVpbGRlci4KKyAgICBMaXN0IGZVU2V0Tm9kZXM7ICAgICAgICAgICAgICAgICAgICAgIC8vIFZlY3RvciBvZiBhbGwgdXNldCBub2Rlcy4KKyAgICBSQkJJVGFibGVCdWlsZGVyIGZGb3J3YXJkVGFibGVzOyAgICAgIC8vIFN0YXRlIHRyYW5zaXRpb24gdGFibGVzCisgICAgUkJCSVRhYmxlQnVpbGRlciBmUmV2ZXJzZVRhYmxlczsKKyAgICBSQkJJVGFibGVCdWlsZGVyIGZTYWZlRndkVGFibGVzOworICAgIFJCQklUYWJsZUJ1aWxkZXIgZlNhZmVSZXZUYWJsZXM7CisKKyAgICAvLworICAgIC8vIFN0YXR1cyB7dGFnfSB2YWx1ZXMuICAgVGhlc2Ugc3RydWN0dXJlcyBhcmUgY29tbW9uIHRvIGFsbCBvZiB0aGUgcnVsZSBzZXRzIChGb3J3YXJkLCBSZXZlcnNlLCBldGMuKS4KKyAgICAvLworICAgIE1hcCBmU3RhdHVzU2V0cyA9IG5ldyBIYXNoTWFwKCk7ICAgICAgLy8gU3RhdHVzIHZhbHVlIHNldHMgZW5jb3VudGVyZWQgc28gZmFyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIE1hcCBLZXkgaXMgdGhlIHNldCBvZiB2YWx1ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgTWFwIFZhbHVlIGlzIHRoZSBydW50aW1lIGFycmF5IGluZGV4LgorCisgICAgTGlzdCBmUnVsZVN0YXR1c1ZhbHM7ICAgICAgICAgICAgICAgICAvLyBMaXN0IG9mIEludGVnZXIgb2JqZWN0cy4gIEhhcyBzYW1lIGxheW91dCBhcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgcnVudGltZSBhcnJheSBvZiBzdGF0dXMgKHRhZykgdmFsdWVzIC0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgbnVtYmVyIG9mIHZhbHVlcyBpbiBncm91cCAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgZmlyc3Qgc3RhdHVzIHZhbHVlIGluIGdyb3VwIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAybmQgc3RhdHVzIHZhbHVlIGluIGdyb3VwIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBudW1iZXIgb2YgdmFsdWVzIGluIGdyb3VwIDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBmaXJzdCBzdGF0dXMgdmFsdWUgaW4gZ3JvdXAgMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgIGV0Yy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8gRXJyb3IgY29kZXMgZnJvbSBJQ1U0Qy4KKyAgICAvLyAgICB1c2luZyB0aGVzZSBzaW1wbGlmaWVkIHRoZSBwb3J0aW5nLCBhbmQgY29uc29saWRhdGVkIHRoZQorICAgIC8vICAgIGNyZWF0aW9uIG9mIEphdmEgZXhjZXB0aW9ucworICAgIC8vCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19FUlJPUl9TVEFSVCA9IDB4MTAyMDA7CisgICAgLyoqPCBTdGFydCBvZiBjb2RlcyBpbmRpY2F0aW5nIEJyZWFrIEl0ZXJhdG9yIGZhaWx1cmVzICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19JTlRFUk5BTF9FUlJPUiA9IDB4MTAyMDE7CisgICAgLyoqPCBBbiBpbnRlcm5hbCBlcnJvciAoYnVnKSB3YXMgZGV0ZWN0ZWQuICAgICAgICAgICAgICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19IRVhfRElHSVRTX0VYUEVDVEVEID0gMHgxMDIwMjsKKyAgICAvKio8IEhleCBkaWdpdHMgZXhwZWN0ZWQgYXMgcGFydCBvZiBhIGVzY2FwZWQgY2hhciBpbiBhIHJ1bGUuICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19TRU1JQ09MT05fRVhQRUNURUQgPSAweDEwMjAzOworICAgIC8qKjwgTWlzc2luZyAnOycgYXQgdGhlIGVuZCBvZiBhIFJCQkkgcnVsZS4gICAgICAgICAgICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfUlVMRV9TWU5UQVggPSAweDEwMjA0OworICAgIC8qKjwgU3ludGF4IGVycm9yIGluIFJCQkkgcnVsZS4gICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfVU5DTE9TRURfU0VUID0gMHgxMDIwNTsKKyAgICAvKio8IFVuaWNvZGVTZXQgd2l0aW5nIGFuIFJCQkkgcnVsZSBtaXNzaW5nIGEgY2xvc2luZyAnXScuICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfQVNTSUdOX0VSUk9SID0gMHgxMDIwNjsKKyAgICAvKio8IFN5bnRheCBlcnJvciBpbiBSQkJJIHJ1bGUgYXNzaWdubWVudCBzdGF0ZW1lbnQuICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX1ZBUklBQkxFX1JFREZJTklUSU9OID0gMHgxMDIwNzsKKyAgICAvKio8IFJCQkkgcnVsZSAkVmFyaWFibGUgcmVkZWZpbmVkLiAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX01JU01BVENIRURfUEFSRU4gPSAweDEwMjA4OworICAgIC8qKjwgTWlzLW1hdGNoZWQgcGFyZW50aGVzZXMgaW4gYW4gUkJCSSBydWxlLiAgICAgICAgICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfTkVXX0xJTkVfSU5fUVVPVEVEX1NUUklORyA9IDB4MTAyMDk7CisgICAgLyoqPCBNaXNzaW5nIGNsb3NpbmcgcXVvdGUgaW4gYW4gUkJCSSBydWxlLiAgICAgICAgICAgICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19VTkRFRklORURfVkFSSUFCTEUgPSAweDEwMjBhOworICAgIC8qKjwgVXNlIG9mIGFuIHVuZGVmaW5lZCAkVmFyaWFibGUgaW4gYW4gUkJCSSBydWxlLiAgICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfSU5JVF9FUlJPUiA9IDB4MTAyMGI7CisgICAgLyoqPCBJbml0aWFsaXphdGlvbiBmYWlsdXJlLiAgUHJvYmFibGUgbWlzc2luZyBJQ1UgRGF0YS4gKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX1JVTEVfRU1QVFlfU0VUID0gMHgxMDIwYzsKKyAgICAvKio8IFJ1bGUgY29udGFpbnMgYW4gZW1wdHkgVW5pY29kZSBTZXQuICAgICAgICAgICAgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX1VOUkVDT0dOSVpFRF9PUFRJT04gPSAweDEwMjBkOworICAgIC8qKjwgISFvcHRpb24gaW4gUkJCSSBydWxlcyBub3QgcmVjb2duaXplZC4gICAgICAgICAgICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfTUFMRk9STUVEX1JVTEVfVEFHID0gMHgxMDIwZTsKKyAgICAvKio8IFRoZSB7bm5ufSB0YWcgb24gYSBydWxlIGlzIG1hbCBmb3JtZWQgICAgICAgICAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX01BTEZPUk1FRF9TRVQgPSAweDEwMjBmOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfRVJST1JfTElNSVQgPSAweDEwMjEwOworICAgIC8qKjwgVGhpcyBtdXN0IGFsd2F5cyBiZSB0aGUgbGFzdCB2YWx1ZSB0byBpbmRpY2F0ZSB0aGUgbGltaXQgZm9yIEJyZWFrIEl0ZXJhdG9yIGZhaWx1cmVzICovCisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gIENvbnN0cnVjdG9yLgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgUkJCSVJ1bGVCdWlsZGVyKFN0cmluZyBydWxlcykKKyAgICB7CisgICAgICAgIGZEZWJ1Z0VudiAgICAgICA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgiVV9SQkJJREVCVUciKTsKKyAgICAgICAgZlJ1bGVzICAgICAgICAgID0gcnVsZXM7CisgICAgICAgIGZVU2V0Tm9kZXMgICAgICA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZlJ1bGVTdGF0dXNWYWxzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmU2Nhbm5lciAgICAgICAgPSBuZXcgUkJCSVJ1bGVTY2FubmVyKHRoaXMpOworICAgICAgICBmU2V0QnVpbGRlciAgICAgPSBuZXcgUkJCSVNldEJ1aWxkZXIodGhpcyk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgIGZsYXR0ZW5EYXRhKCkgLSAgQ29sbGVjdCB1cCB0aGUgY29tcGlsZWQgUkJCSSBydWxlIGRhdGEgYW5kIHB1dCBpdCBpbnRvCisgICAgLy8gICAgICAgICAgICAgICAgICAgIHRoZSBmb3JtYXQgZm9yIHNhdmluZyBpbiBJQ1UgZGF0YSBmaWxlcywKKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgICAgICBTZWUgdGhlIElDVTRDIGZpbGUgY29tbW9uL3JiaWRhdGEuaCBmb3IgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbi4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyBmaW5hbCBpbnQgYWxpZ244KGludCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChpICsgNykgJiAweGZmZmZmZmY4OworICAgIH0KKworICAgIHZvaWQgZmxhdHRlbkRhdGEoT3V0cHV0U3RyZWFtIG9zKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBEYXRhT3V0cHV0U3RyZWFtIGRvcyA9IG5ldyBEYXRhT3V0cHV0U3RyZWFtKG9zKTsKKyAgICAgICAgaW50IGk7CisJCisgICAgICAgIC8vICBSZW1vdmUgY29tbWVudHMgYW5kIHdoaXRlc3BhY2UgZnJvbSB0aGUgcnVsZXMgdG8gbWFrZSBpdCBzbWFsbGVyLgorICAgICAgICBTdHJpbmcgc3RyaXBwZWRSdWxlcyA9IFJCQklSdWxlU2Nhbm5lci5zdHJpcFJ1bGVzKGZSdWxlcyk7CisJCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBlYWNoIHNlY3Rpb24gaW4gdGhlIGRhdGEgaW4gYnl0ZXMuCisgICAgICAgIC8vICAgU2l6ZXMgaGVyZSBhcmUgcGFkZGVkIHVwIHRvIGEgbXVsdGlwbGUgb2YgOCBmb3IgYmV0dGVyIG1lbW9yeSBhbGlnbm1lbnQuCisgICAgICAgIC8vICAgU2VjdGlvbnMgc2l6ZXMgYWN0dWFsbHkgc3RvcmVkIGluIHRoZSBoZWFkZXIgYXJlIGZvciB0aGUgYWN0dWFsIGRhdGEKKyAgICAgICAgLy8gICAgIHdpdGhvdXQgdGhlIHBhZGRpbmcuCisgICAgICAgIC8vCisgICAgICAgIGludCBoZWFkZXJTaXplICAgICAgID0gMjQgKiA0OyAgICAgLy8gYWxpZ244KHNpemVvZihSQkJJRGF0YUhlYWRlcikpOworICAgICAgICBpbnQgZm9yd2FyZFRhYmxlU2l6ZSA9IGFsaWduOChmRm9yd2FyZFRhYmxlcy5nZXRUYWJsZVNpemUoKSk7CisgICAgICAgIGludCByZXZlcnNlVGFibGVTaXplID0gYWxpZ244KGZSZXZlcnNlVGFibGVzLmdldFRhYmxlU2l6ZSgpKTsKKyAgICAgICAgaW50IHNhZmVGd2RUYWJsZVNpemUgPSBhbGlnbjgoZlNhZmVGd2RUYWJsZXMuZ2V0VGFibGVTaXplKCkpOworICAgICAgICBpbnQgc2FmZVJldlRhYmxlU2l6ZSA9IGFsaWduOChmU2FmZVJldlRhYmxlcy5nZXRUYWJsZVNpemUoKSk7CisgICAgICAgIGludCB0cmllU2l6ZSAgICAgICAgID0gYWxpZ244KGZTZXRCdWlsZGVyLmdldFRyaWVTaXplKCkpOworICAgICAgICBpbnQgc3RhdHVzVGFibGVTaXplICA9IGFsaWduOChmUnVsZVN0YXR1c1ZhbHMuc2l6ZSgpICogNCk7CisgICAgICAgIGludCBydWxlc1NpemUgICAgICAgID0gYWxpZ244KChzdHJpcHBlZFJ1bGVzLmxlbmd0aCgpKSAqIDIpOworICAgICAgICBpbnQgdG90YWxTaXplICAgICAgICA9IGhlYWRlclNpemUgKyBmb3J3YXJkVGFibGVTaXplICsgcmV2ZXJzZVRhYmxlU2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNhZmVGd2RUYWJsZVNpemUgKyBzYWZlUmV2VGFibGVTaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RhdHVzVGFibGVTaXplICsgdHJpZVNpemUgKyBydWxlc1NpemU7CisgICAgICAgIGludCBvdXRwdXRQb3MgPSAwOyAgICAgICAgICAgICAgIC8vIFRyYWNrIHN0cmVhbSBwb3NpdGlvbiwgc3RhcnRpbmcgZnJvbSBSQkJJRGF0YUhlYWRlci4KKworICAgICAgICAvLworICAgICAgICAvLyBXcml0ZSBvdXQgYW4gSUNVIERhdGEgSGVhZGVyCisgICAgICAgIC8vICAgVE9ETzogIGFjdHVhbGx5IGNyZWF0ZSBhIHJlYWwgaGVhZGVyLCByYXRoZXIgdGhhbiBqdXN0IGEgcGxhY2Vob2xkZXIuCisgICAgICAgIC8vICAgICAgICAgICBUaGUgZW1wdHkgcGxhY2Vob2xkZXIgaXMgb2sgZm9yIGNvbXBpbGUtYW5kLWdvIGZyb20gd2l0aGluIElDVTRKLgorICAgICAgICAvLyAgICAgICAgICAgUmVwbGljYXRpbmcgdGhlIElDVTRDIGdlbmJyayB0b29sIGZvciBidWlsZGluZyAuYnJrIHJlc291cmNlcyB3b3VsZCBuZWVkIGEgcmVhbCBoZWFkZXIuCisgICAgICAgIC8vCisgICAgICAgIGJ5dGVbXSBJQ1VEYXRhSGVhZGVyID0gbmV3IGJ5dGVbMHg4MF07CisgICAgICAgIGRvcy53cml0ZShJQ1VEYXRhSGVhZGVyKTsKKworICAgICAgICAvLworICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIFJCQklEYXRhSGVhZGVyCisgICAgICAgIC8vCisgICAgICAgIGludFtdIGhlYWRlciA9IG5ldyBpbnRbUkJCSURhdGFXcmFwcGVyLkRIX1NJWkVdOyAgICAgICAgICAgICAgICAgLy8gc2l6ZW9mIHN0cnVjdCBSQkJJRGF0YUhlYWRlcgorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX01BR0lDXSAgICAgICAgID0gMHhiMWEwOworICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX0ZPUk1BVFZFUlNJT05dID0gMHgwMzAxMDAwMDsgICAgICAgICAgIC8vIHVpbnQ4X3QgZkZvcm1hdFZlcnNpb25bNF07CisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfTEVOR1RIXSAgICAgICAgPSB0b3RhbFNpemU7ICAgICAgICAgICAgLy8gZkxlbmd0aCwgdGhlIHRvdGFsIHNpemUgb2YgYWxsIHJ1bGUgc2VjdGlvbnMuCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfQ0FUQ09VTlRdICAgICAgPSBmU2V0QnVpbGRlci5nZXROdW1DaGFyQ2F0ZWdvcmllcygpOyAvLyBmQ2F0Q291bnQuCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfRlRBQkxFXSAgICAgICAgPSBoZWFkZXJTaXplOyAgICAgICAgICAgLy8gZkZUYWJsZQorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX0ZUQUJMRUxFTl0gICAgID0gZm9yd2FyZFRhYmxlU2l6ZTsgICAgIC8vIGZUYWJsZUxlbgorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1JUQUJMRV0gICAgICAgID0gaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9GVEFCTEVdICsgZm9yd2FyZFRhYmxlU2l6ZTsgLy8gZlJUYWJsZQorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1JUQUJMRUxFTl0gICAgID0gcmV2ZXJzZVRhYmxlU2l6ZTsgICAgIC8vIGZSVGFibGVMZW4KKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9TRlRBQkxFXSAgICAgICA9IGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfUlRBQkxFXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJldmVyc2VUYWJsZVNpemU7IC8vIGZTVGFibGUKKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9TRlRBQkxFTEVOXSAgICA9IHNhZmVGd2RUYWJsZVNpemU7ICAgICAvLyBmU1RhYmxlTGVuCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfU1JUQUJMRV0gICAgICAgPSBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1NGVEFCTEVdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2FmZUZ3ZFRhYmxlU2l6ZTsgLy8gZlNSVGFibGUKKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9TUlRBQkxFTEVOXSAgICA9IHNhZmVSZXZUYWJsZVNpemU7ICAgICAvLyBmU1JUYWJsZUxlbgorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1RSSUVdICAgICAgICAgID0gaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9TUlRBQkxFXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNhZmVSZXZUYWJsZVNpemU7IC8vIGZUcmllCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfVFJJRUxFTl0gICAgICAgPSBmU2V0QnVpbGRlci5nZXRUcmllU2l6ZSgpOyAvLyBmVHJpZUxlbgorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1NUQVRVU1RBQkxFXSAgID0gaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9UUklFXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfVFJJRUxFTl07CisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfU1RBVFVTVEFCTEVMRU5dID0gc3RhdHVzVGFibGVTaXplOyAvLyBmU3RhdHVzVGFibGVMZW4KKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9SVUxFU09VUkNFXSAgICA9IGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfU1RBVFVTVEFCTEVdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RhdHVzVGFibGVTaXplOworICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1JVTEVTT1VSQ0VMRU5dID0gc3RyaXBwZWRSdWxlcy5sZW5ndGgoKSAqIDI7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBoZWFkZXIubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGRvcy53cml0ZUludChoZWFkZXJbaV0pOworICAgICAgICAgICAgb3V0cHV0UG9zICs9IDQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIGFjdHVhbCBzdGF0ZSB0YWJsZXMuCisgICAgICAgIHNob3J0W10gdGFibGVEYXRhOworICAgICAgICB0YWJsZURhdGEgPSBmRm9yd2FyZFRhYmxlcy5leHBvcnRUYWJsZSgpOworICAgICAgICBBc3NlcnQuYXNzcnQob3V0cHV0UG9zID09IGhlYWRlcls0XSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0YWJsZURhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGRvcy53cml0ZVNob3J0KHRhYmxlRGF0YVtpXSk7CisgICAgICAgICAgICBvdXRwdXRQb3MgKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIHRhYmxlRGF0YSA9IGZSZXZlcnNlVGFibGVzLmV4cG9ydFRhYmxlKCk7CisgICAgICAgIEFzc2VydC5hc3NydChvdXRwdXRQb3MgPT0gaGVhZGVyWzZdKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHRhYmxlRGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZG9zLndyaXRlU2hvcnQodGFibGVEYXRhW2ldKTsKKyAgICAgICAgICAgIG91dHB1dFBvcyArPSAyOworICAgICAgICB9CisKKyAgICAgICAgQXNzZXJ0LmFzc3J0KG91dHB1dFBvcyA9PSBoZWFkZXJbOF0pOworICAgICAgICB0YWJsZURhdGEgPSBmU2FmZUZ3ZFRhYmxlcy5leHBvcnRUYWJsZSgpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGFibGVEYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkb3Mud3JpdGVTaG9ydCh0YWJsZURhdGFbaV0pOworICAgICAgICAgICAgb3V0cHV0UG9zICs9IDI7CisgICAgICAgIH0KKworICAgICAgICBBc3NlcnQuYXNzcnQob3V0cHV0UG9zID09IGhlYWRlclsxMF0pOworICAgICAgICB0YWJsZURhdGEgPSBmU2FmZVJldlRhYmxlcy5leHBvcnRUYWJsZSgpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGFibGVEYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkb3Mud3JpdGVTaG9ydCh0YWJsZURhdGFbaV0pOworICAgICAgICAgICAgb3V0cHV0UG9zICs9IDI7CisgICAgICAgIH0KKworICAgICAgICAvLyB3cml0ZSBvdXQgdGhlIFRyaWUgdGFibGUKKyAgICAgICAgQXNzZXJ0LmFzc3J0KG91dHB1dFBvcyA9PSBoZWFkZXJbMTJdKTsKKyAgICAgICAgZlNldEJ1aWxkZXIuc2VyaWFsaXplVHJpZShvcyk7CisgICAgICAgIG91dHB1dFBvcyArPSBoZWFkZXJbMTNdOworICAgICAgICB3aGlsZSAob3V0cHV0UG9zICUgOCAhPSAwKSB7IC8vIHBhZCB0byBhbiA4IGJ5dGUgYm91bmRhcnkKKyAgICAgICAgICAgIGRvcy53cml0ZSgwKTsKKyAgICAgICAgICAgIG91dHB1dFBvcyArPSAxOworICAgICAgICB9CisKKyAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBzdGF0dXMge3RhZ30gdGFibGUuCisgICAgICAgIEFzc2VydC5hc3NydChvdXRwdXRQb3MgPT0gaGVhZGVyWzE2XSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmUnVsZVN0YXR1c1ZhbHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIEludGVnZXIgdmFsID0gKEludGVnZXIpIGZSdWxlU3RhdHVzVmFscy5nZXQoaSk7CisgICAgICAgICAgICBkb3Mud3JpdGVJbnQodmFsLmludFZhbHVlKCkpOworICAgICAgICAgICAgb3V0cHV0UG9zICs9IDQ7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAob3V0cHV0UG9zICUgOCAhPSAwKSB7IC8vIHBhZCB0byBhbiA4IGJ5dGUgYm91bmRhcnkKKyAgICAgICAgICAgIGRvcy53cml0ZSgwKTsKKyAgICAgICAgICAgIG91dHB1dFBvcyArPSAxOworICAgICAgICB9CisKKyAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBzdHJpcHBlZCBydWxlcyAocnVsZXMgd2l0aCBleHRyYSBzcGFjZXMgcmVtb3ZlZAorICAgICAgICAvLyAgIFRoZXNlIGdvIGxhc3QgaW4gdGhlIGRhdGEgYXJlYSwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm90IGxhc3QgaW4gdGhlIGhlYWRlci4KKyAgICAgICAgQXNzZXJ0LmFzc3J0KG91dHB1dFBvcyA9PSBoZWFkZXJbMTRdKTsKKyAgICAgICAgZG9zLndyaXRlQ2hhcnMoc3RyaXBwZWRSdWxlcyk7CisgICAgICAgIG91dHB1dFBvcyArPSBzdHJpcHBlZFJ1bGVzLmxlbmd0aCgpICogMjsKKyAgICAgICAgd2hpbGUgKG91dHB1dFBvcyAlIDggIT0gMCkgeyAvLyBwYWQgdG8gYW4gOCBieXRlIGJvdW5kYXJ5CisgICAgICAgICAgICBkb3Mud3JpdGUoMCk7CisgICAgICAgICAgICBvdXRwdXRQb3MgKz0gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gIGNvbXBpbGVSdWxlcyAgICAgICAgICBjb21waWxlIHNvdXJjZSBydWxlcywgcGxhY2luZyB0aGUgY29tcGlsZWQgZm9ybSBpbnRvIGEgb3V0cHV0IHN0cmVhbQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvbXBpbGVkIGZvcm0gaXMgaWRlbnRpY2FsIHRvIHRoYXQgZnJvbSBJQ1U0QyAoQmlnIEVuZGlhbikuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0aWMgdm9pZCBjb21waWxlUnVsZXMoU3RyaW5nIHJ1bGVzLCBPdXRwdXRTdHJlYW0gb3MpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gUmVhZCB0aGUgaW5wdXQgcnVsZXMsIGdlbmVyYXRlIGEgcGFyc2UgdHJlZSwgc3ltYm9sIHRhYmxlLAorICAgICAgICAvLyBhbmQgbGlzdCBvZiBhbGwgVW5pY29kZSBTZXRzIHJlZmVyZW5jZWQgYnkgdGhlIHJ1bGVzLgorICAgICAgICAvLworICAgICAgICBSQkJJUnVsZUJ1aWxkZXIgYnVpbGRlciA9IG5ldyBSQkJJUnVsZUJ1aWxkZXIocnVsZXMpOworICAgICAgICBidWlsZGVyLmZTY2FubmVyLnBhcnNlKCk7CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVW5pY29kZVNldCBwcm9jZXNzaW5nLgorICAgICAgICAvLyAgICBNdW5nZSB0aGUgVW5pY29kZSBTZXRzIHRvIGNyZWF0ZSBhIHNldCBvZiBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4KKyAgICAgICAgLy8gICAgR2VuZXJhdGUgdGhlIG1hcHBpbmcgdGFibGVzIChUUklFKSBmcm9tIGlucHV0IDMyLWJpdCBjaGFyYWN0ZXJzIHRvCisgICAgICAgIC8vICAgIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4KKyAgICAgICAgLy8KKyAgICAgICAgYnVpbGRlci5mU2V0QnVpbGRlci5idWlsZCgpOworCisgICAgICAgIC8vCisgICAgICAgIC8vICAgR2VuZXJhdGUgdGhlIERGQSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLgorICAgICAgICAvLworICAgICAgICBidWlsZGVyLmZGb3J3YXJkVGFibGVzID0gbmV3IFJCQklUYWJsZUJ1aWxkZXIoYnVpbGRlciwgZkZvcndhcmRUcmVlKTsKKyAgICAgICAgYnVpbGRlci5mUmV2ZXJzZVRhYmxlcyA9IG5ldyBSQkJJVGFibGVCdWlsZGVyKGJ1aWxkZXIsIGZSZXZlcnNlVHJlZSk7CisgICAgICAgIGJ1aWxkZXIuZlNhZmVGd2RUYWJsZXMgPSBuZXcgUkJCSVRhYmxlQnVpbGRlcihidWlsZGVyLCBmU2FmZUZ3ZFRyZWUpOworICAgICAgICBidWlsZGVyLmZTYWZlUmV2VGFibGVzID0gbmV3IFJCQklUYWJsZUJ1aWxkZXIoYnVpbGRlciwgZlNhZmVSZXZUcmVlKTsKKyAgICAgICAgYnVpbGRlci5mRm9yd2FyZFRhYmxlcy5idWlsZCgpOworICAgICAgICBidWlsZGVyLmZSZXZlcnNlVGFibGVzLmJ1aWxkKCk7CisgICAgICAgIGJ1aWxkZXIuZlNhZmVGd2RUYWJsZXMuYnVpbGQoKTsKKyAgICAgICAgYnVpbGRlci5mU2FmZVJldlRhYmxlcy5idWlsZCgpOworICAgICAgICBpZiAoYnVpbGRlci5mRGVidWdFbnYgIT0gbnVsbAorICAgICAgICAgICAgICAgICYmIGJ1aWxkZXIuZkRlYnVnRW52LmluZGV4T2YoInN0YXRlcyIpID49IDApIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuZkZvcndhcmRUYWJsZXMucHJpbnRSdWxlU3RhdHVzVGFibGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vCisgICAgICAgIC8vICAgUGFja2FnZSB1cCB0aGUgY29tcGlsZWQgZGF0YSwgd3JpdGluZyBpdCB0byBhbiBvdXRwdXQgc3RyZWFtCisgICAgICAgIC8vICAgICAgaW4gdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0LiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgSUNVNEMgcnVudGltZSBmb3JtYXQuCisgICAgICAgIC8vCisgICAgICAgIGJ1aWxkZXIuZmxhdHRlbkRhdGEob3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklSdWxlUGFyc2VUYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVJ1bGVQYXJzZVRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWE4ZTk1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklSdWxlUGFyc2VUYWJsZS5qYXZhCkBAIC0wLDAgKzEsMTc4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LAorICogSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworIAorLyoqCisgKiBHZW5lcmF0ZWQgSmF2YSBGaWxlLiAgRG8gbm90IGVkaXQgYnkgaGFuZC4KKyAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgc3RhdGUgdGFibGUgZm9yIHRoZSBJQ1UgUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICogcnVsZSBwYXJzZXIuCisgKiBJdCBpcyBnZW5lcmF0ZWQgYnkgdGhlIFBlcmwgc2NyaXB0ICJyYmJpY3N0LnBsIiBmcm9tCisgKiB0aGUgcnVsZSBwYXJzZXIgc3RhdGUgZGVmaW5pdGlvbnMgZmlsZSAicmJiaXJwdC50eHQiLgorICogQGludGVybmFsIAorICoKKyAqLworY2xhc3MgUkJCSVJ1bGVQYXJzZVRhYmxlCit7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0NoZWNrVmFyRGVmID0gMTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvRG90QW55ID0gMjsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvRW5kQXNzaWduID0gMzsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvRW5kT2ZSdWxlID0gNDsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvRW5kVmFyaWFibGVOYW1lID0gNTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvRXhpdCA9IDY7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0V4cHJDYXRPcGVyYXRvciA9IDc7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0V4cHJGaW5pc2hlZCA9IDg7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0V4cHJPck9wZXJhdG9yID0gOTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvRXhwclJQYXJlbiA9IDEwOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9FeHByU3RhcnQgPSAxMTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvTFBhcmVuID0gMTI7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb05PUCA9IDEzOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9PcHRpb25FbmQgPSAxNDsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvT3B0aW9uU3RhcnQgPSAxNTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvUmV2ZXJzZURpciA9IDE2OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9SdWxlQ2hhciA9IDE3OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9SdWxlRXJyb3IgPSAxODsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvUnVsZUVycm9yQXNzaWduRXhwciA9IDE5OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9TY2FuVW5pY29kZVNldCA9IDIwOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9TbGFzaCA9IDIxOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9TdGFydEFzc2lnbiA9IDIyOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9TdGFydFRhZ1ZhbHVlID0gMjM7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1N0YXJ0VmFyaWFibGVOYW1lID0gMjQ7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1RhZ0RpZ2l0ID0gMjU7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1RhZ0V4cGVjdGVkRXJyb3IgPSAyNjsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvVGFnVmFsdWUgPSAyNzsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvVW5hcnlPcFBsdXMgPSAyODsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvVW5hcnlPcFF1ZXN0aW9uID0gMjk7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1VuYXJ5T3BTdGFyID0gMzA7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1ZhcmlhYmxlTmFtZUV4cGVjdGVkRXJyID0gMzE7CisgCisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBrUnVsZVNldF9kZWZhdWx0ID0gMjU1OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQga1J1bGVTZXRfZGlnaXRfY2hhciA9IDEyODsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGtSdWxlU2V0X2VvZiA9IDI1MjsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGtSdWxlU2V0X2VzY2FwZWQgPSAyNTQ7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBrUnVsZVNldF9uYW1lX2NoYXIgPSAxMjk7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBrUnVsZVNldF9uYW1lX3N0YXJ0X2NoYXIgPSAxMzA7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBrUnVsZVNldF9ydWxlX2NoYXIgPSAxMzE7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBrUnVsZVNldF93aGl0ZV9zcGFjZSA9IDEzMjsKKworCisgICBzdGF0aWMgY2xhc3MgUkJCSVJ1bGVUYWJsZUVsZW1lbnQgeyAKKyAgICAgIHNob3J0ICAgICAgZkFjdGlvbjsgCisgICAgICBzaG9ydCAgICAgIGZDaGFyQ2xhc3M7IAorICAgICAgc2hvcnQgICAgICBmTmV4dFN0YXRlOyAKKyAgICAgIHNob3J0ICAgICAgZlB1c2hTdGF0ZTsgCisgICAgICBib29sZWFuICAgIGZOZXh0Q2hhcjsgIAorICAgICAgU3RyaW5nICAgICBmU3RhdGVOYW1lOyAKKyAgICAgIFJCQklSdWxlVGFibGVFbGVtZW50KHNob3J0IGEsIGludCBjYywgaW50IG5zLCBpbnQgcHMsIGJvb2xlYW4gbmMsIFN0cmluZyBzbikgeyAgCisgICAgICBmQWN0aW9uID0gYTsgCisgICAgICBmQ2hhckNsYXNzID0gKHNob3J0KWNjOyAKKyAgICAgIGZOZXh0U3RhdGUgPSAoc2hvcnQpbnM7IAorICAgICAgZlB1c2hTdGF0ZSA9IChzaG9ydClwczsgCisgICAgICBmTmV4dENoYXIgID0gbmM7IAorICAgICAgZlN0YXRlTmFtZSA9IHNuOyAKKyAgIH0gCisgICB9IAorICAKKyAgICBzdGF0aWMgUkJCSVJ1bGVUYWJsZUVsZW1lbnRbXSBnUnVsZVBhcnNlU3RhdGVUYWJsZSA9IHsgCisgICAgICAgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAwLCAwLDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDAgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwclN0YXJ0LCAyNTQsIDIxLCA4LCBmYWxzZSwgICAic3RhcnQiKSAgICAgLy8gIDEgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAxMzIsIDEsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByU3RhcnQsJyQnLCAgODAsIDkwLCBmYWxzZSwgICBudWxsICkgICAgIC8vICAzIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwnIScsICAxMSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA0IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwnOycsICAxLDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDUgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAyNTIsIDAsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDYgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwclN0YXJ0LCAyNTUsIDIxLCA4LCBmYWxzZSwgICBudWxsICkgICAgIC8vICA3IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0VuZE9mUnVsZSwnOycsICAxLDAsICB0cnVlLCAgICJicmVhay1ydWxlLWVuZCIpICAgICAvLyAgOCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgOCwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA5IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1J1bGVFcnJvciwgMjU1LCA5NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgMTAgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCchJywgIDEzLDAsICB0cnVlLCAgICJyZXYtb3B0aW9uIikgICAgIC8vICAxMSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9SZXZlcnNlRGlyLCAyNTUsIDIwLCA4LCBmYWxzZSwgICBudWxsICkgICAgIC8vICAxMiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9PcHRpb25TdGFydCwgMTMwLCAxNSwwLCAgdHJ1ZSwgICAib3B0aW9uLXNjYW4xIikgICAgIC8vICAxMyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9SdWxlRXJyb3IsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDE0IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTI5LCAxNSwwLCAgdHJ1ZSwgICAib3B0aW9uLXNjYW4yIikgICAgIC8vICAxNSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9PcHRpb25FbmQsIDI1NSwgMTcsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDE2IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwnOycsICAxLDAsICB0cnVlLCAgICJvcHRpb24tc2NhbjMiKSAgICAgLy8gIDE3IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCAxNywwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAxOCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9SdWxlRXJyb3IsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDE5IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJTdGFydCwgMjU1LCAyMSwgOCwgZmFsc2UsICAgInJldmVyc2UtcnVsZSIpICAgICAvLyAgMjAgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvUnVsZUNoYXIsIDI1NCwgMzAsMCwgIHRydWUsICAgInRlcm0iKSAgICAgLy8gIDIxIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCAyMSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAyMiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9SdWxlQ2hhciwgMTMxLCAzMCwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAyMyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsJ1snLCAgODYsIDMwLCBmYWxzZSwgICBudWxsICkgICAgIC8vICAyNCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9MUGFyZW4sJygnLCAgMjEsIDMwLCB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDI1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwnJCcsICA4MCwgMjksIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDI2IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0RvdEFueSwnLicsICAzMCwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAyNyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9SdWxlRXJyb3IsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDI4IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0NoZWNrVmFyRGVmLCAyNTUsIDMwLDAsICBmYWxzZSwgICAidGVybS12YXItcmVmIikgICAgIC8vICAyOSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgMzAsMCwgIHRydWUsICAgImV4cHItbW9kIikgICAgIC8vICAzMCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9VbmFyeU9wU3RhciwnKicsICAzNSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAzMSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9VbmFyeU9wUGx1cywnKycsICAzNSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAzMiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9VbmFyeU9wUXVlc3Rpb24sJz8nLCAgMzUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMzMgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAyNTUsIDM1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICAzNCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsIDI1NCwgMjEsMCwgIGZhbHNlLCAgICJleHByLWNvbnQiKSAgICAgLy8gIDM1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCAzNSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAzNiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsIDEzMSwgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDM3IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnWycsICAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgMzggCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCcoJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICAzOSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJyQnLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDQwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnLicsICAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNDEgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCcvJywgIDQ3LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA0MiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJ3snLCAgNTksMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNDMgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwck9yT3BlcmF0b3IsJ3wnLCAgMjEsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNDQgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwclJQYXJlbiwnKScsICAyNTUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNDUgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckZpbmlzaGVkLCAyNTUsIDI1NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNDYgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvU2xhc2gsJy8nLCAgNDksMCwgIHRydWUsICAgImxvb2stYWhlYWQiKSAgICAgLy8gIDQ3IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMjU1LCA5NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNDggCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCAyNTQsIDIxLDAsICBmYWxzZSwgICAiZXhwci1jb250LW5vLXNsYXNoIikgICAgIC8vICA0OSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgMzUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNTAgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCAxMzEsIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA1MSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJ1snLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDUyIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnKCcsICAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNTMgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCckJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA1NCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJy4nLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDU1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJPck9wZXJhdG9yLCd8JywgIDIxLDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDU2IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJSUGFyZW4sJyknLCAgMjU1LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDU3IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJGaW5pc2hlZCwgMjU1LCAyNTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDU4IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCA1OSwwLCAgdHJ1ZSwgICAidGFnLW9wZW4iKSAgICAgLy8gIDU5IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1N0YXJ0VGFnVmFsdWUsIDEyOCwgNjIsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDYwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1RhZ0V4cGVjdGVkRXJyb3IsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDYxIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCA2NiwwLCAgdHJ1ZSwgICAidGFnLXZhbHVlIikgICAgIC8vICA2MiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsJ30nLCAgNjYsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDYzIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1RhZ0RpZ2l0LCAxMjgsIDYyLDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDY0IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1RhZ0V4cGVjdGVkRXJyb3IsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDY1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCA2NiwwLCAgdHJ1ZSwgICAidGFnLWNsb3NlIikgICAgIC8vICA2NiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9UYWdWYWx1ZSwnfScsICA2OSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA2NyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9UYWdFeHBlY3RlZEVycm9yLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA2OCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsIDI1NCwgMjEsMCwgIGZhbHNlLCAgICJleHByLWNvbnQtbm8tdGFnIikgICAgIC8vICA2OSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgNjksMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNzAgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCAxMzEsIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA3MSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJ1snLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDcyIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnKCcsICAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNzMgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCckJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA3NCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJy4nLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDc1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnLycsICA0NywwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNzYgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwck9yT3BlcmF0b3IsJ3wnLCAgMjEsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNzcgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwclJQYXJlbiwnKScsICAyNTUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNzggCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckZpbmlzaGVkLCAyNTUsIDI1NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNzkgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvU3RhcnRWYXJpYWJsZU5hbWUsJyQnLCAgODIsMCwgIHRydWUsICAgInNjYW4tdmFyLW5hbWUiKSAgICAgLy8gIDgwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMjU1LCA5NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgODEgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAxMzAsIDg0LDAsICB0cnVlLCAgICJzY2FuLXZhci1zdGFydCIpICAgICAvLyAgODIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvVmFyaWFibGVOYW1lRXhwZWN0ZWRFcnIsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDgzIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTI5LCA4NCwwLCAgdHJ1ZSwgICAic2Nhbi12YXItYm9keSIpICAgICAvLyAgODQgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRW5kVmFyaWFibGVOYW1lLCAyNTUsIDI1NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgODUgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvU2NhblVuaWNvZGVTZXQsJ1snLCAgMjU1LDAsICB0cnVlLCAgICJzY2FuLXVuaWNvZGUtc2V0IikgICAgIC8vICA4NiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9TY2FuVW5pY29kZVNldCwncCcsICAyNTUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgODcgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvU2NhblVuaWNvZGVTZXQsJ1AnLCAgMjU1LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDg4IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMjU1LCA5NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgODkgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAxMzIsIDkwLDAsICB0cnVlLCAgICJhc3NpZ24tb3ItcnVsZSIpICAgICAvLyAgOTAgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvU3RhcnRBc3NpZ24sJz0nLCAgMjEsIDkzLCB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDkxIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMjU1LCAyOSwgOCwgZmFsc2UsICAgbnVsbCApICAgICAvLyAgOTIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRW5kQXNzaWduLCc7JywgIDEsMCwgIHRydWUsICAgImFzc2lnbi1lbmQiKSAgICAgLy8gIDkzIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1J1bGVFcnJvckFzc2lnbkV4cHIsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDk0IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4aXQsIDI1NSwgOTUsMCwgIHRydWUsICAgImVycm9yRGVhdGgiKSAgICAgLy8gIDk1IAorIH07Cit9IApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVJ1bGVTY2FubmVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJUnVsZVNjYW5uZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMjFmMzFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVJ1bGVTY2FubmVyLmphdmEKQEAgLTAsMCArMSwxMDc1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LAorICogSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICAqICBUaGlzIGNsYXNzIGlzIHBhcnQgb2YgdGhlIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3IgcnVsZSBjb21waWxlci4KKyAgKiAgSXQgc2NhbnMgdGhlIHJ1bGVzIGFuZCBidWlsZHMgdGhlIHBhcnNlIHRyZWUuCisgICogIFRoZXJlIGlzIG5vIHB1YmxpYyBBUEkgaGVyZS4KKyAgKiAgQGludGVybmFsCisgICovCitjbGFzcyBSQkJJUnVsZVNjYW5uZXIgeworICAgIAorICAgIHByaXZhdGUgIGZpbmFsIGludCAgICBrU3RhY2tTaXplID0gMTAwOyAgICAgICAgICAgICAgIC8vIFRoZSBzaXplIG9mIHRoZSBzdGF0ZSBzdGFjayBmb3IKKyAgICAvLyAgIHJ1bGVzIHBhcnNpbmcuICBDb3JyZXNwb25kcyByb3VnaGx5CisgICAgLy8gICB0byB0aGUgZGVwdGggb2YgcGFyZW50aGVzZXMgbmVzdGluZworICAgIC8vICAgdGhhdCBpcyBhbGxvd2VkIGluIHRoZSBydWxlcy4KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgUkJCSVJ1bGVDaGFyIHsKKyAgICAgICAgaW50ICAgICAgICAgICAgIGZDaGFyOworICAgICAgICBib29sZWFuICAgICAgICAgZkVzY2FwZWQ7CisgICAgfQorCisKKworICAgIFJCQklSdWxlQnVpbGRlciAgICAgICAgICAgICAgIGZSQjsgICAgICAgICAgICAgIC8vIFRoZSBydWxlIGJ1aWxkZXIgdGhhdCB3ZSBhcmUgcGFydCBvZi4KKyAgICAKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgIGZTY2FuSW5kZXg7ICAgICAgICAvLyBJbmRleCBvZiBjdXJyZW50IGNoYXJhY3RlciBiZWluZyBwcm9jZXNzZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBpbiB0aGUgcnVsZSBpbnB1dCBzdHJpbmcuCisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICBmTmV4dEluZGV4OyAgICAgICAgLy8gSW5kZXggb2YgdGhlIG5leHQgY2hhcmFjdGVyLCB3aGljaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbm90IHlldCBzY2FubmVkLgorICAgIGJvb2xlYW4gICAgICAgICAgICAgICAgICBmUXVvdGVNb2RlOyAgICAgICAgLy8gU2NhbiBpcyBpbiBhICdxdW90ZWQgcmVnaW9uJworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVOdW07ICAgICAgICAgIC8vIExpbmUgbnVtYmVyIGluIGlucHV0IGZpbGUuCisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICBmQ2hhck51bTsgICAgICAgICAgLy8gQ2hhciBwb3NpdGlvbiB3aXRoaW4gdGhlIGxpbmUuCisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICBmTGFzdENoYXI7ICAgICAgICAgLy8gUHJldmlvdXMgY2hhciwgbmVlZGVkIHRvIGNvdW50IENSLUxGCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgYXMgYSBzaW5nbGUgbGluZSwgbm90IHR3by4KKyAgICAKKyAgICBSQkJJUnVsZUNoYXIgICAgICAgICAgICAgIGZDID0gbmV3IFJCQklSdWxlQ2hhcigpOyAgICAvLyBDdXJyZW50IGNoYXIgZm9yIHBhcnNlIHN0YXRlIG1hY2hpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBwcm9jZXNzaW5nLgorICAgIFN0cmluZyAgICAgICAgICAgICAgICAgICAgZlZhck5hbWU7ICAgICAgICAgIC8vICR2YXJpYWJsZU5hbWUsIHZhbGlkIHdoZW4gd2UndmUganVzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHNjYW5uZWQgb25lLgorICAgIAorICAgIAorICAgIHNob3J0ICBmU3RhY2tbXSA9IG5ldyBzaG9ydFtrU3RhY2tTaXplXTsgIC8vIFN0YXRlIHN0YWNrLCBob2xkcyBzdGF0ZSBwdXNoZXMKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgIGZTdGFja1B0cjsgICAgICAgICAgIC8vICBhbmQgcG9wcyBhcyBzcGVjaWZpZWQgaW4gdGhlIHN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHRyYW5zaXRpb24gcnVsZXMuCisgICAgCisgICAgUkJCSU5vZGUgIGZOb2RlU3RhY2tbXSA9IG5ldyBSQkJJTm9kZVtrU3RhY2tTaXplXTsgLy8gTm9kZSBzdGFjaywgaG9sZHMgbm9kZXMgY3JlYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgZHVyaW5nIHRoZSBwYXJzZSBvZiBhIHJ1bGUKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICBmTm9kZVN0YWNrUHRyOworICAgIAorICAgIAorICAgIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgIGZSZXZlcnNlUnVsZTsgICAgIC8vIFRydWUgaWYgdGhlIHJ1bGUgY3VycmVudGx5IGJlaW5nIHNjYW5uZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGlzIGEgcmV2ZXJzZSBkaXJlY3Rpb24gcnVsZSAoaWYgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHN0YXJ0cyB3aXRoIGEgJyEnKQorICAgIAorICAgIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgIGZMb29rQWhlYWRSdWxlOyAgIC8vIFRydWUgaWYgdGhlIHJ1bGUgaW5jbHVkZXMgYSAnLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBzb21ld2hlcmUgd2l0aGluIGl0LgorICAgIAorICAgIFJCQklTeW1ib2xUYWJsZSAgICAgICAgICAgICAgZlN5bWJvbFRhYmxlOyAgICAgLy8gc3ltYm9sIHRhYmxlLCBob2xkcyBkZWZpbml0aW9ucyBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICR2YXJpYWJsZSBzeW1ib2xzLgorICAgIAorICAgIEhhc2hNYXAgICAgICAgICAgICAgICAgIGZTZXRUYWJsZSA9IG5ldyBIYXNoTWFwKCk7ICAgICAgICAvLyBVbmljb2NvZGVTZXQgaGFzaCB0YWJsZSwgaG9sZHMgaW5kZXhlcyB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHRoZSBzZXRzIGNyZWF0ZWQgd2hpbGUgcGFyc2luZyBydWxlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBUaGUga2V5IGlzIHRoZSBzdHJpbmcgdXNlZCBmb3IgY3JlYXRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB0aGUgc2V0LgorICAgIAorICAgIFVuaWNvZGVTZXQgICAgICBmUnVsZVNldHNbXSA9IG5ldyBVbmljb2RlU2V0WzEwXTsgICAgLy8gVW5pY29kZSBTZXRzIHRoYXQgYXJlIG5lZWRlZCBkdXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHRoZSBzY2FubmluZyBvZiBSQkJJIHJ1bGVzLiAgVGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBpbmRpY2llcyBmb3IgdGhlc2UgYXJlIGFzc2lnbmVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgcGVybCBzY3JpcHQgdGhhdCBidWlsZHMgdGhlIHN0YXRlIHRhYmxlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIFNlZSByYmJpcnB0LmguCisgICAgCisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgZlJ1bGVOdW07ICAgICAgICAgLy8gQ291bnRzIGVhY2ggcnVsZSBhcyBpdCBpcyBzY2FubmVkLgorICAgIAorICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgIGZPcHRpb25TdGFydDsgICAgIC8vIElucHV0IGluZGV4IG9mIHN0YXJ0IG9mIGEgISFvcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGtleXdvcmQsIHdoaWxlIGJlaW5nIHNjYW5uZWQuCisKKyAgICAKKworICAgc3RhdGljIHByaXZhdGUgU3RyaW5nIGdSdWxlU2V0X3J1bGVfY2hhcl9wYXR0ZXJuICAgICAgID0gIlteW1xccHtafVxcdTAwMjAtXFx1MDA3Zl0tW1xccHtMfV0tW1xccHtOfV1dIjsKKyAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyBnUnVsZVNldF9uYW1lX2NoYXJfcGF0dGVybiAgICAgICA9ICJbX1xccHtMfVxccHtOfV0iOworICAgc3RhdGljIHByaXZhdGUgU3RyaW5nIGdSdWxlU2V0X2RpZ2l0X2NoYXJfcGF0dGVybiAgICAgID0gIlswLTldIjsKKyAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyBnUnVsZVNldF9uYW1lX3N0YXJ0X2NoYXJfcGF0dGVybiA9ICJbX1xccHtMfV0iOworICAgc3RhdGljIHByaXZhdGUgU3RyaW5nIGdSdWxlU2V0X3doaXRlX3NwYWNlX3BhdHRlcm4gICAgID0gIltcXHB7UGF0dGVybl9XaGl0ZV9TcGFjZX1dIjsKKyAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyBrQW55ID0gICJhbnkiOworCisgICAgCisgCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBDb25zdHJ1Y3Rvci4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFJCQklSdWxlU2Nhbm5lcihSQkJJUnVsZUJ1aWxkZXIgcmIpIHsKKyAgICAgICAgZlJCID0gcmI7CisgICAgICAgIGZMaW5lTnVtID0gMTsKKworICAgICAgICAvLworICAgICAgICAvLyAgU2V0IHVwIHRoZSBjb25zdGFudCBVbmljb2RlIFNldHMuCisgICAgICAgIC8vICAgICBOb3RlOiBUaGVzZSBjb3VsZCBiZSBtYWRlIHN0YXRpYyBhbmQgc2hhcmVkIGFtb25nCisgICAgICAgIC8vICAgICAgICAgICAgYWxsIGluc3RhbmNlcyBvZiBSQkJJUnVsZVNjYW5uZXJzLgorICAgICAgICBmUnVsZVNldHNbUkJCSVJ1bGVQYXJzZVRhYmxlLmtSdWxlU2V0X3J1bGVfY2hhciAtIDEyOF0gPSBuZXcgVW5pY29kZVNldChnUnVsZVNldF9ydWxlX2NoYXJfcGF0dGVybik7CisgICAgICAgIGZSdWxlU2V0c1tSQkJJUnVsZVBhcnNlVGFibGUua1J1bGVTZXRfd2hpdGVfc3BhY2UgLSAxMjhdID0gbmV3IFVuaWNvZGVTZXQoZ1J1bGVTZXRfd2hpdGVfc3BhY2VfcGF0dGVybik7CisgICAgICAgIGZSdWxlU2V0c1tSQkJJUnVsZVBhcnNlVGFibGUua1J1bGVTZXRfbmFtZV9jaGFyIC0gMTI4XSA9IG5ldyBVbmljb2RlU2V0KGdSdWxlU2V0X25hbWVfY2hhcl9wYXR0ZXJuKTsKKyAgICAgICAgZlJ1bGVTZXRzW1JCQklSdWxlUGFyc2VUYWJsZS5rUnVsZVNldF9uYW1lX3N0YXJ0X2NoYXIgLSAxMjhdID0gbmV3IFVuaWNvZGVTZXQoZ1J1bGVTZXRfbmFtZV9zdGFydF9jaGFyX3BhdHRlcm4pOworICAgICAgICBmUnVsZVNldHNbUkJCSVJ1bGVQYXJzZVRhYmxlLmtSdWxlU2V0X2RpZ2l0X2NoYXIgLSAxMjhdID0gbmV3IFVuaWNvZGVTZXQoZ1J1bGVTZXRfZGlnaXRfY2hhcl9wYXR0ZXJuKTsKKworICAgICAgICBmU3ltYm9sVGFibGUgPSBuZXcgUkJCSVN5bWJvbFRhYmxlKHRoaXMsIHJiLmZSdWxlcyk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgZG9QYXJzZUFjdGlvbiBEbyBzb21lIGFjdGlvbiBkdXJpbmcgcnVsZSBwYXJzaW5nLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBDYWxsZWQgYnkgdGhlIHBhcnNlIHN0YXRlIG1hY2hpbmUuCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbnMgYnVpbGQgdGhlIHBhcnNlIHRyZWUgYW5kIFVuaWNvZGUgU2V0cywKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgYW5kIG1haW50YWluIHRoZSBwYXJzZSBzdGFjayBmb3IgbmVzdGVkIGV4cHJlc3Npb25zLgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgYm9vbGVhbiBkb1BhcnNlQWN0aW9ucyhpbnQgYWN0aW9uKSB7CisgICAgICAgIFJCQklOb2RlIG4gPSBudWxsOworCisgICAgICAgIGJvb2xlYW4gcmV0dXJuVmFsID0gdHJ1ZTsKKworICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvRXhwclN0YXJ0OgorICAgICAgICAgICAgcHVzaE5ld05vZGUoUkJCSU5vZGUub3BTdGFydCk7CisgICAgICAgICAgICBmUnVsZU51bSsrOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9FeHByT3JPcGVyYXRvcjogeworICAgICAgICAgICAgZml4T3BTdGFjayhSQkJJTm9kZS5wcmVjT3BDYXQpOworICAgICAgICAgICAgUkJCSU5vZGUgb3BlcmFuZE5vZGUgPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHItLV07CisgICAgICAgICAgICBSQkJJTm9kZSBvck5vZGUgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcE9yKTsKKyAgICAgICAgICAgIG9yTm9kZS5mTGVmdENoaWxkID0gb3BlcmFuZE5vZGU7CisgICAgICAgICAgICBvcGVyYW5kTm9kZS5mUGFyZW50ID0gb3JOb2RlOworICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0V4cHJDYXRPcGVyYXRvcjoKKyAgICAgICAgLy8gY29uY2F0ZW5hdGlvbiBvcGVyYXRvci4KKyAgICAgICAgLy8gRm9yIHRoZSBpbXBsaWNpdCBjb25jYXRlbmF0aW9uIG9mIGFkamFjZW50IHRlcm1zIGluIGFuIGV4cHJlc3Npb24KKyAgICAgICAgLy8gdGhhdCBhcmUKKyAgICAgICAgLy8gICBub3Qgc2VwYXJhdGVkIGJ5IGFueSBvdGhlciBvcGVyYXRvci4gQWN0aW9uIGlzIGludm9rZWQgYmV0d2VlbiB0aGUKKyAgICAgICAgLy8gICBhY3Rpb25zIGZvciB0aGUgdHdvIHRlcm1zLgorICAgICAgICB7CisgICAgICAgICAgICBmaXhPcFN0YWNrKFJCQklOb2RlLnByZWNPcENhdCk7CisgICAgICAgICAgICBSQkJJTm9kZSBvcGVyYW5kTm9kZSA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0ci0tXTsKKyAgICAgICAgICAgIFJCQklOb2RlIGNhdE5vZGUgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcENhdCk7CisgICAgICAgICAgICBjYXROb2RlLmZMZWZ0Q2hpbGQgPSBvcGVyYW5kTm9kZTsKKyAgICAgICAgICAgIG9wZXJhbmROb2RlLmZQYXJlbnQgPSBjYXROb2RlOworICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0xQYXJlbjoKKyAgICAgICAgICAgIC8vIE9wZW4gUGFyZW4uCisgICAgICAgICAgICAvLyAgIFRoZSBvcGVuUGFyZW4gbm9kZSBpcyBhIGR1bW15IG9wZXJhdGlvbiB0eXBlIHdpdGggYSBsb3cKKyAgICAgICAgICAgIC8vIHByZWNlZGVuY2UsCisgICAgICAgICAgICAvLyAgICAgd2hpY2ggaGFzIHRoZSBhZmZlY3Qgb2YgZW5zdXJpbmcgdGhhdCBhbnkgcmVhbCBiaW5hcnkgb3AgdGhhdAorICAgICAgICAgICAgLy8gICAgIGZvbGxvd3Mgd2l0aGluIHRoZSBwYXJlbnMgYmluZHMgbW9yZSB0aWdodGx5IHRvIHRoZSBvcGVyYW5kcyB0aGFuCisgICAgICAgICAgICAvLyAgICAgc3R1ZmYgb3V0c2lkZSBvZiB0aGUgcGFyZW5zLgorICAgICAgICAgICAgcHVzaE5ld05vZGUoUkJCSU5vZGUub3BMUGFyZW4pOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9FeHByUlBhcmVuOgorICAgICAgICAgICAgZml4T3BTdGFjayhSQkJJTm9kZS5wcmVjTFBhcmVuKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvTk9QOgorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9TdGFydEFzc2lnbjoKKyAgICAgICAgICAgIC8vIFdlJ3ZlIGp1c3Qgc2Nhbm5lZCAiJHZhcmlhYmxlID0gIgorICAgICAgICAgICAgLy8gVGhlIHRvcCBvZiB0aGUgbm9kZSBzdGFjayBoYXMgdGhlICR2YXJpYWJsZSByZWYgbm9kZS4KKworICAgICAgICAgICAgLy8gU2F2ZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIFJIUyB0ZXh0IGluIHRoZSBTdGFydEV4cHJlc3Npb24KKyAgICAgICAgICAgIC8vIG5vZGUKKyAgICAgICAgICAgIC8vICAgdGhhdCBwcmVjZWRlcyB0aGUgJHZhcmlhYmxlUmVmZXJlbmNlIG5vZGUgb24gdGhlIHN0YWNrLgorICAgICAgICAgICAgLy8gICBUaGlzIHdpbGwgZXZlbnR1YWxseSBiZSB1c2VkIHdoZW4gc2F2aW5nIHRoZSBmdWxsICR2YXJpYWJsZQorICAgICAgICAgICAgLy8gcmVwbGFjZW1lbnQKKyAgICAgICAgICAgIC8vICAgdGV4dCBhcyBhIHN0cmluZy4KKyAgICAgICAgICAgIG4gPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHIgLSAxXTsKKyAgICAgICAgICAgIG4uZkZpcnN0UG9zID0gZk5leHRJbmRleDsgLy8gbW92ZSBwYXN0IHRoZSAnPScKKworICAgICAgICAgICAgLy8gUHVzaCBhIG5ldyBzdGFydC1vZi1leHByZXNzaW9uIG5vZGU7IG5lZWRlZCB0byBrZWVwIHBhcnNlIG9mIHRoZQorICAgICAgICAgICAgLy8gICBSSFMgZXhwcmVzc2lvbiBoYXBweS4KKyAgICAgICAgICAgIHB1c2hOZXdOb2RlKFJCQklOb2RlLm9wU3RhcnQpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9FbmRBc3NpZ246IHsKKyAgICAgICAgICAgIC8vIFdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIGFuIGFzc2lnbmVtZW50IHN0YXRlbWVudC4KKyAgICAgICAgICAgIC8vICAgQ3VycmVudCBzY2FuIGNoYXIgaXMgdGhlICc7JyB0aGF0IHRlcm1pbmF0ZXMgdGhlIGFzc2lnbm1lbnQuCisKKyAgICAgICAgICAgIC8vIFRlcm1pbmF0ZSBleHByZXNzaW9uLCBsZWF2ZXMgZXhwcmVzc2lvbiBwYXJzZSB0cmVlIHJvb3RlZCBpbiBUT1MKKyAgICAgICAgICAgIC8vIG5vZGUuCisgICAgICAgICAgICBmaXhPcFN0YWNrKFJCQklOb2RlLnByZWNTdGFydCk7CisKKyAgICAgICAgICAgIFJCQklOb2RlIHN0YXJ0RXhwck5vZGUgPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHIgLSAyXTsKKyAgICAgICAgICAgIFJCQklOb2RlIHZhclJlZk5vZGUgPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHIgLSAxXTsKKyAgICAgICAgICAgIFJCQklOb2RlIFJIU0V4cHJOb2RlID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKworICAgICAgICAgICAgLy8gU2F2ZSBvcmlnaW5hbCB0ZXh0IG9mIHJpZ2h0IHNpZGUgb2YgYXNzaWdubWVudCwgZXhjbHVkaW5nIHRoZQorICAgICAgICAgICAgLy8gdGVybWluYXRpbmcgJzsnCisgICAgICAgICAgICAvLyAgaW4gdGhlIHJvb3Qgb2YgdGhlIG5vZGUgZm9yIHRoZSByaWdodC1oYW5kLXNpZGUgZXhwcmVzc2lvbi4KKyAgICAgICAgICAgIFJIU0V4cHJOb2RlLmZGaXJzdFBvcyA9IHN0YXJ0RXhwck5vZGUuZkZpcnN0UG9zOworICAgICAgICAgICAgUkhTRXhwck5vZGUuZkxhc3RQb3MgPSBmU2NhbkluZGV4OworICAgICAgICAgICAgLy8gZlJCLmZSdWxlcy5leHRyYWN0QmV0d2VlbihSSFNFeHByTm9kZS5mRmlyc3RQb3MsCisgICAgICAgICAgICAvLyBSSFNFeHByTm9kZS5mTGFzdFBvcywgUkhTRXhwck5vZGUuZlRleHQpOworICAgICAgICAgICAgUkhTRXhwck5vZGUuZlRleHQgPSBmUkIuZlJ1bGVzLnN1YnN0cmluZyhSSFNFeHByTm9kZS5mRmlyc3RQb3MsCisgICAgICAgICAgICAgICAgICAgIFJIU0V4cHJOb2RlLmZMYXN0UG9zKTsKKworICAgICAgICAgICAgLy8gRXhwcmVzc2lvbiBwYXJzZSB0cmVlIGJlY29tZXMgbC4gY2hpbGQgb2YgdGhlICR2YXJpYWJsZSByZWZlcmVuY2UKKyAgICAgICAgICAgIC8vIG5vZGUuCisgICAgICAgICAgICB2YXJSZWZOb2RlLmZMZWZ0Q2hpbGQgPSBSSFNFeHByTm9kZTsKKyAgICAgICAgICAgIFJIU0V4cHJOb2RlLmZQYXJlbnQgPSB2YXJSZWZOb2RlOworCisgICAgICAgICAgICAvLyBNYWtlIGEgc3ltYm9sIHRhYmxlIGVudHJ5IGZvciB0aGUgJHZhcmlhYmxlUmVmIG5vZGUuCisgICAgICAgICAgICBmU3ltYm9sVGFibGUuYWRkRW50cnkodmFyUmVmTm9kZS5mVGV4dCwgdmFyUmVmTm9kZSk7CisKKyAgICAgICAgICAgIC8vIENsZWFuIHVwIHRoZSBzdGFjay4KKyAgICAgICAgICAgIGZOb2RlU3RhY2tQdHIgLT0gMzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9FbmRPZlJ1bGU6IHsKKyAgICAgICAgICAgIGZpeE9wU3RhY2soUkJCSU5vZGUucHJlY1N0YXJ0KTsgLy8gVGVybWluYXRlIGV4cHJlc3Npb24sIGxlYXZlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHByZXNzaW9uCisKKyAgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52ICE9IG51bGwgJiYgZlJCLmZEZWJ1Z0Vudi5pbmRleE9mKCJydHJlZSIpID49IDApIHsKKyAgICAgICAgICAgICAgICBwcmludE5vZGVTdGFjaygiZW5kIG9mIHJ1bGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFzc2VydC5hc3NydChmTm9kZVN0YWNrUHRyID09IDEpOworCisgICAgICAgICAgICAvLyBJZiB0aGlzIHJ1bGUgaW5jbHVkZXMgYSBsb29rLWFoZWFkICcvJywgYWRkIGEgZW5kTWFyayBub2RlIHRvIHRoZQorICAgICAgICAgICAgLy8gICBleHByZXNzaW9uIHRyZWUuCisgICAgICAgICAgICBpZiAoZkxvb2tBaGVhZFJ1bGUpIHsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSB0aGlzUnVsZSA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07CisgICAgICAgICAgICAgICAgUkJCSU5vZGUgZW5kTm9kZSA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLmVuZE1hcmspOworICAgICAgICAgICAgICAgIFJCQklOb2RlIGNhdE5vZGUgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcENhdCk7CisgICAgICAgICAgICAgICAgZk5vZGVTdGFja1B0ciAtPSAyOworICAgICAgICAgICAgICAgIGNhdE5vZGUuZkxlZnRDaGlsZCA9IHRoaXNSdWxlOworICAgICAgICAgICAgICAgIGNhdE5vZGUuZlJpZ2h0Q2hpbGQgPSBlbmROb2RlOworICAgICAgICAgICAgICAgIGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl0gPSBjYXROb2RlOworICAgICAgICAgICAgICAgIGVuZE5vZGUuZlZhbCA9IGZSdWxlTnVtOworICAgICAgICAgICAgICAgIGVuZE5vZGUuZkxvb2tBaGVhZEVuZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFsbCBydWxlIGV4cHJlc3Npb25zIGFyZSBPUmVkIHRvZ2V0aGVyLgorICAgICAgICAgICAgLy8gVGhlICc7JyB0aGF0IHRlcm1pbmF0ZXMgYW4gZXhwcmVzc2lvbiByZWFsbHkganVzdCBmdW5jdGlvbnMgYXMgYQorICAgICAgICAgICAgLy8gJ3wnIHdpdGgKKyAgICAgICAgICAgIC8vICAgYSBsb3cgb3BlcmF0b3IgcHJlZGVkZW5jZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBFYWNoIG9mIHRoZSBmb3VyIHNldHMgb2YgcnVsZXMgYXJlIGNvbGxlY3RlZCBzZXBhcmF0ZWx5LgorICAgICAgICAgICAgLy8gIChmb3J3YXJkLCByZXZlcnNlLCBzYWZlX2ZvcndhcmQsIHNhZmVfcmV2ZXJzZSkKKyAgICAgICAgICAgIC8vICBPUiB0aGlzIHJ1bGUgaW50byB0aGUgYXBwcm9wcmlhdGUgZ3JvdXAgb2YgdGhlbS4KKyAgICAgICAgICAgIC8vCisKKyAgICAgICAgICAgIGludCBkZXN0UnVsZXMgPSAoZlJldmVyc2VSdWxlID8gZlJCLmZSZXZlcnNlVHJlZSA6IGZSQi5mRGVmYXVsdFRyZWUpOworCisgICAgICAgICAgICBpZiAoZlJCLmZUcmVlUm9vdHNbZGVzdFJ1bGVzXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBub3QgdGhlIGZpcnN0IHJ1bGUgZW5jb3VudGVkLgorICAgICAgICAgICAgICAgIC8vIE9SIHByZXZpb3VzIHN0dWZmIChmcm9tICpkZXN0UnVsZXMpCisgICAgICAgICAgICAgICAgLy8gd2l0aCB0aGUgY3VycmVudCBydWxlIGV4cHJlc3Npb24gKG9uIHRoZSBOb2RlIFN0YWNrKQorICAgICAgICAgICAgICAgIC8vICB3aXRoIHRoZSByZXN1bHRpbmcgT1IgZXhwcmVzc2lvbiBnb2luZyB0byAqZGVzdFJ1bGVzCisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICBSQkJJTm9kZSB0aGlzUnVsZSA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07CisgICAgICAgICAgICAgICAgUkJCSU5vZGUgcHJldlJ1bGVzID0gZlJCLmZUcmVlUm9vdHNbZGVzdFJ1bGVzXTsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSBvck5vZGUgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcE9yKTsKKyAgICAgICAgICAgICAgICBvck5vZGUuZkxlZnRDaGlsZCA9IHByZXZSdWxlczsKKyAgICAgICAgICAgICAgICBwcmV2UnVsZXMuZlBhcmVudCA9IG9yTm9kZTsKKyAgICAgICAgICAgICAgICBvck5vZGUuZlJpZ2h0Q2hpbGQgPSB0aGlzUnVsZTsKKyAgICAgICAgICAgICAgICB0aGlzUnVsZS5mUGFyZW50ID0gb3JOb2RlOworICAgICAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2Rlc3RSdWxlc10gPSBvck5vZGU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHJ1bGUgZW5jb3VudGVyZWQgKGZvciB0aGlzIGRpcmVjdGlvbikuCisgICAgICAgICAgICAgICAgLy8gSnVzdCBtb3ZlIGl0cyBwYXJzZSB0cmVlIGZyb20gdGhlIHN0YWNrIHRvICpkZXN0UnVsZXMuCisgICAgICAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZGVzdFJ1bGVzXSA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmUmV2ZXJzZVJ1bGUgPSBmYWxzZTsgLy8gaW4gcHJlcGFyYXRpb24gZm9yIHRoZSBuZXh0IHJ1bGUuCisgICAgICAgICAgICBmTG9va0FoZWFkUnVsZSA9IGZhbHNlOworICAgICAgICAgICAgZk5vZGVTdGFja1B0ciA9IDA7CisgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvUnVsZUVycm9yOgorICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX1JVTEVfU1lOVEFYKTsKKyAgICAgICAgICAgIHJldHVyblZhbCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9WYXJpYWJsZU5hbWVFeHBlY3RlZEVycjoKKyAgICAgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19SVUxFX1NZTlRBWCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLworICAgICAgICAvLyAgVW5hcnkgb3BlcmFuZHMgKyA/ICoKKyAgICAgICAgLy8gICAgVGhlc2UgYWxsIGFwcGVhciBhZnRlciB0aGUgb3BlcmFuZCB0byB3aGljaCB0aGV5IGFwcGx5LgorICAgICAgICAvLyAgICBXaGVuIHdlIGhpdCBvbmUsIHRoZSBvcGVyYW5kIChtYXkgYmUgYSB3aG9sZSBzdWIgZXhwcmVzc2lvbikKKyAgICAgICAgLy8gICAgd2lsbCBiZSBvbiB0aGUgdG9wIG9mIHRoZSBzdGFjay4KKyAgICAgICAgLy8gICAgVW5hcnkgT3BlcmF0b3IgYmVjb21lcyBUT1MsIHdpdGggdGhlIG9sZCBUT1MgYXMgaXRzIG9uZSBjaGlsZC4KKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9VbmFyeU9wUGx1czogeworICAgICAgICAgICAgUkJCSU5vZGUgb3BlcmFuZE5vZGUgPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHItLV07CisgICAgICAgICAgICBSQkJJTm9kZSBwbHVzTm9kZSA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLm9wUGx1cyk7CisgICAgICAgICAgICBwbHVzTm9kZS5mTGVmdENoaWxkID0gb3BlcmFuZE5vZGU7CisgICAgICAgICAgICBvcGVyYW5kTm9kZS5mUGFyZW50ID0gcGx1c05vZGU7CisgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvVW5hcnlPcFF1ZXN0aW9uOiB7CisgICAgICAgICAgICBSQkJJTm9kZSBvcGVyYW5kTm9kZSA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0ci0tXTsKKyAgICAgICAgICAgIFJCQklOb2RlIHFOb2RlID0gcHVzaE5ld05vZGUoUkJCSU5vZGUub3BRdWVzdGlvbik7CisgICAgICAgICAgICBxTm9kZS5mTGVmdENoaWxkID0gb3BlcmFuZE5vZGU7CisgICAgICAgICAgICBvcGVyYW5kTm9kZS5mUGFyZW50ID0gcU5vZGU7CisgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvVW5hcnlPcFN0YXI6IHsKKyAgICAgICAgICAgIFJCQklOb2RlIG9wZXJhbmROb2RlID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyLS1dOworICAgICAgICAgICAgUkJCSU5vZGUgc3Rhck5vZGUgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcFN0YXIpOworICAgICAgICAgICAgc3Rhck5vZGUuZkxlZnRDaGlsZCA9IG9wZXJhbmROb2RlOworICAgICAgICAgICAgb3BlcmFuZE5vZGUuZlBhcmVudCA9IHN0YXJOb2RlOworICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb1J1bGVDaGFyOgorICAgICAgICAvLyBBICJSdWxlIENoYXJhY3RlciIgaXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgdGhhdCBpcyBhIGxpdGVyYWwgcGFydAorICAgICAgICAvLyBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uLiBMaWtlIGEsIGIgYW5kIGMgaW4gdGhlIGV4cHJlc3Npb24gIihhYmMqKQorICAgICAgICAvLyB8IFs6TDpdIgorICAgICAgICAvLyBUaGVzZSBhcmUgcHJldHR5IHVuY29tbW9uIGluIGJyZWFrIHJ1bGVzOyB0aGUgdGVybXMgYXJlIG1vcmUgY29tbW9ubHkKKyAgICAgICAgLy8gIHNldHMuIFRvIGtlZXAgdGhpbmdzIHVuaWZvcm0sIHRyZWF0IHRoZXNlIGNoYXJhY3RlcnMgbGlrZSBhcworICAgICAgICAvLyBzZXRzIHRoYXQganVzdCBoYXBwZW4gdG8gY29udGFpbiBvbmx5IG9uZSBjaGFyYWN0ZXIuCisgICAgICAgIHsKKyAgICAgICAgICAgIG4gPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5zZXRSZWYpOworICAgICAgICAgICAgU3RyaW5nIHMgPSAobmV3IFN0cmluZ0J1ZmZlcigpLmFwcGVuZCgoY2hhcikgZkMuZkNoYXIpKS50b1N0cmluZygpOworICAgICAgICAgICAgZmluZFNldEZvcihzLCBuLCBudWxsKTsKKyAgICAgICAgICAgIG4uZkZpcnN0UG9zID0gZlNjYW5JbmRleDsKKyAgICAgICAgICAgIG4uZkxhc3RQb3MgPSBmTmV4dEluZGV4OworICAgICAgICAgICAgbi5mVGV4dCA9IGZSQi5mUnVsZXMuc3Vic3RyaW5nKG4uZkZpcnN0UG9zLCBuLmZMYXN0UG9zKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9Eb3RBbnk6CisgICAgICAgIC8vIHNjYW5uZWQgYSAiLiIsIG1lYW5pbmcgbWF0Y2ggYW55IHNpbmdsZSBjaGFyYWN0ZXIuCisgICAgICAgIHsKKyAgICAgICAgICAgIG4gPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5zZXRSZWYpOworICAgICAgICAgICAgZmluZFNldEZvcihrQW55LCBuLCBudWxsKTsKKyAgICAgICAgICAgIG4uZkZpcnN0UG9zID0gZlNjYW5JbmRleDsKKyAgICAgICAgICAgIG4uZkxhc3RQb3MgPSBmTmV4dEluZGV4OworICAgICAgICAgICAgbi5mVGV4dCA9IGZSQi5mUnVsZXMuc3Vic3RyaW5nKG4uZkZpcnN0UG9zLCBuLmZMYXN0UG9zKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9TbGFzaDoKKyAgICAgICAgICAgIC8vIFNjYW5uZWQgYSAnLycsIHdoaWNoIGlkZW50aWZpZXMgYSBsb29rLWFoZWFkIGJyZWFrIHBvc2l0aW9uIGluIGEKKyAgICAgICAgICAgIC8vIHJ1bGUuCisgICAgICAgICAgICBuID0gcHVzaE5ld05vZGUoUkJCSU5vZGUubG9va0FoZWFkKTsKKyAgICAgICAgICAgIG4uZlZhbCA9IGZSdWxlTnVtOworICAgICAgICAgICAgbi5mRmlyc3RQb3MgPSBmU2NhbkluZGV4OworICAgICAgICAgICAgbi5mTGFzdFBvcyA9IGZOZXh0SW5kZXg7CisgICAgICAgICAgICBuLmZUZXh0ID0gZlJCLmZSdWxlcy5zdWJzdHJpbmcobi5mRmlyc3RQb3MsIG4uZkxhc3RQb3MpOworICAgICAgICAgICAgZkxvb2tBaGVhZFJ1bGUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9TdGFydFRhZ1ZhbHVlOgorICAgICAgICAgICAgLy8gU2Nhbm5lZCBhICd7JywgdGhlIG9wZW5pbmcgZGVsaW1pdGVyIGZvciBhIHRhZyB2YWx1ZSB3aXRoaW4gYQorICAgICAgICAgICAgLy8gcnVsZS4KKyAgICAgICAgICAgIG4gPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS50YWcpOworICAgICAgICAgICAgbi5mVmFsID0gMDsKKyAgICAgICAgICAgIG4uZkZpcnN0UG9zID0gZlNjYW5JbmRleDsKKyAgICAgICAgICAgIG4uZkxhc3RQb3MgPSBmTmV4dEluZGV4OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9UYWdEaWdpdDoKKyAgICAgICAgLy8gSnVzdCBzY2FubmVkIGEgZGVjaW1hbCBkaWdpdCB0aGF0J3MgcGFydCBvZiBhIHRhZyB2YWx1ZQorICAgICAgICB7CisgICAgICAgICAgICBuID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKyAgICAgICAgICAgIGludCB2ID0gQ2hhcmFjdGVyLmRpZ2l0KChjaGFyKSBmQy5mQ2hhciwgMTApOworICAgICAgICAgICAgbi5mVmFsID0gbi5mVmFsICogMTAgKyB2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb1RhZ1ZhbHVlOgorICAgICAgICAgICAgbiA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07CisgICAgICAgICAgICBuLmZMYXN0UG9zID0gZk5leHRJbmRleDsKKyAgICAgICAgICAgIG4uZlRleHQgPSBmUkIuZlJ1bGVzLnN1YnN0cmluZyhuLmZGaXJzdFBvcywgbi5mTGFzdFBvcyk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb1RhZ0V4cGVjdGVkRXJyb3I6CisgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfTUFMRk9STUVEX1JVTEVfVEFHKTsKKyAgICAgICAgICAgIHJldHVyblZhbCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9PcHRpb25TdGFydDoKKyAgICAgICAgICAgIC8vIFNjYW5uaW5nIGEgISFvcHRpb24uIEF0IHRoZSBzdGFydCBvZiBzdHJpbmcuCisgICAgICAgICAgICBmT3B0aW9uU3RhcnQgPSBmU2NhbkluZGV4OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9PcHRpb25FbmQ6IHsKKyAgICAgICAgICAgIFN0cmluZyBvcHQgPSBmUkIuZlJ1bGVzLnN1YnN0cmluZyhmT3B0aW9uU3RhcnQsIGZTY2FuSW5kZXgpOworICAgICAgICAgICAgaWYgKG9wdC5lcXVhbHMoImNoYWluIikpIHsKKyAgICAgICAgICAgICAgICBmUkIuZkNoYWluUnVsZXMgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCJMQkNNTm9DaGFpbiIpKSB7CisgICAgICAgICAgICAgICAgZlJCLmZMQkNNTm9DaGFpbiA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoImZvcndhcmQiKSkgeworICAgICAgICAgICAgICAgIGZSQi5mRGVmYXVsdFRyZWUgPSBmUkIuZkZvcndhcmRUcmVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCJyZXZlcnNlIikpIHsKKyAgICAgICAgICAgICAgICBmUkIuZkRlZmF1bHRUcmVlID0gZlJCLmZSZXZlcnNlVHJlZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygic2FmZV9mb3J3YXJkIikpIHsKKyAgICAgICAgICAgICAgICBmUkIuZkRlZmF1bHRUcmVlID0gZlJCLmZTYWZlRndkVHJlZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygic2FmZV9yZXZlcnNlIikpIHsKKyAgICAgICAgICAgICAgICBmUkIuZkRlZmF1bHRUcmVlID0gZlJCLmZTYWZlUmV2VHJlZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygibG9va0FoZWFkSGFyZEJyZWFrIikpIHsKKyAgICAgICAgICAgICAgICBmUkIuZkxvb2tBaGVhZEhhcmRCcmVhayA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19VTlJFQ09HTklaRURfT1BUSU9OKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9SZXZlcnNlRGlyOgorICAgICAgICAgICAgZlJldmVyc2VSdWxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvU3RhcnRWYXJpYWJsZU5hbWU6CisgICAgICAgICAgICBuID0gcHVzaE5ld05vZGUoUkJCSU5vZGUudmFyUmVmKTsKKyAgICAgICAgICAgIG4uZkZpcnN0UG9zID0gZlNjYW5JbmRleDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvRW5kVmFyaWFibGVOYW1lOgorICAgICAgICAgICAgbiA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07CisgICAgICAgICAgICBpZiAobiA9PSBudWxsIHx8IG4uZlR5cGUgIT0gUkJCSU5vZGUudmFyUmVmKSB7CisgICAgICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0lOVEVSTkFMX0VSUk9SKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG4uZkxhc3RQb3MgPSBmU2NhbkluZGV4OworICAgICAgICAgICAgbi5mVGV4dCA9IGZSQi5mUnVsZXMuc3Vic3RyaW5nKG4uZkZpcnN0UG9zICsgMSwgbi5mTGFzdFBvcyk7CisgICAgICAgICAgICAvLyBMb29rIHRoZSBuZXdseSBzY2FubmVkIG5hbWUgdXAgaW4gdGhlIHN5bWJvbCB0YWJsZQorICAgICAgICAgICAgLy8gICBJZiB0aGVyZSdzIGFuIGVudHJ5LCBzZXQgdGhlIGwuIGNoaWxkIG9mIHRoZSB2YXIgcmVmIHRvIHRoZQorICAgICAgICAgICAgLy8gcmVwbGFjZW1lbnQgZXhwcmVzc2lvbi4KKyAgICAgICAgICAgIC8vICAgKFdlIGFsc28gcGFzcyB0aHJvdWdoIGhlcmUgd2hlbiBzY2FubmluZyBhc3NpZ25tZW50cywgYnV0IG5vIGhhcm0KKyAgICAgICAgICAgIC8vIGlzIGRvbmUsIG90aGVyCisgICAgICAgICAgICAvLyAgICB0aGFuIGEgc2xpZ2h0IHdhc3RlZCBlZmZvcnQgdGhhdCBzZWVtcyBoYXJkIHRvIGF2b2lkLiBMb29rdXAgd2lsbAorICAgICAgICAgICAgLy8gYmUgbnVsbCkKKyAgICAgICAgICAgIG4uZkxlZnRDaGlsZCA9IGZTeW1ib2xUYWJsZS5sb29rdXBOb2RlKG4uZlRleHQpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9DaGVja1ZhckRlZjoKKyAgICAgICAgICAgIG4gPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHJdOworICAgICAgICAgICAgaWYgKG4uZkxlZnRDaGlsZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX1VOREVGSU5FRF9WQVJJQUJMRSk7CisgICAgICAgICAgICAgICAgcmV0dXJuVmFsID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0V4cHJGaW5pc2hlZDoKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvUnVsZUVycm9yQXNzaWduRXhwcjoKKyAgICAgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19BU1NJR05fRVJST1IpOworICAgICAgICAgICAgcmV0dXJuVmFsID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0V4aXQ6CisgICAgICAgICAgICByZXR1cm5WYWwgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvU2NhblVuaWNvZGVTZXQ6CisgICAgICAgICAgICBzY2FuU2V0KCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0lOVEVSTkFMX0VSUk9SKTsKKyAgICAgICAgICAgIHJldHVyblZhbCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldHVyblZhbDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBFcnJvciBUaHJvdyBhbmQgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGluIHJlc3BvbnNlIHRvIGEgcnVsZSBwYXJzZQorICAgIC8vIGVycm9yLgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdm9pZCBlcnJvcihpbnQgZSkgeworICAgICAgICBTdHJpbmcgcyA9ICJFcnJvciAiICsgZSArICIgYXQgbGluZSAiICsgZkxpbmVOdW0gKyAiIGNvbHVtbiAiCisgICAgICAgICAgICAgICAgKyBmQ2hhck51bTsKKyAgICAgICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4ID0gbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihzKTsKKyAgICAgICAgdGhyb3cgZXg7CisKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBmaXhPcFN0YWNrIFRoZSBwYXJzZSBzdGFjayBob2xkcyBwYXJ0aWFsbHkgYXNzZW1ibGVkIGNodW5rcyBvZiB0aGUgcGFyc2UKKyAgICAvLyB0cmVlLgorICAgIC8vICAgICAgICAgICAgICAgQW4gZW50cnkgb24gdGhlIHN0YWNrIG1heSBiZSBhcyBzbWFsbCBhcyBhIHNpbmdsZSBzZXRSZWYgbm9kZSwKKyAgICAvLyAgICAgICAgICAgICAgIG9yIGFzIGxhcmdlIGFzIHRoZSBwYXJzZSB0cmVlCisgICAgLy8gICAgICAgICAgICAgICBmb3IgYW4gZW50aXJlIGV4cHJlc3Npb24gKHRoaXMgd2lsbCBiZSB0aGUgb25lIGl0ZW0gbGVmdCBvbiB0aGUgc3RhY2sKKyAgICAvLyAgICAgICAgICAgICAgIHdoZW4gdGhlIHBhcnNpbmcgb2YgYW4gUkJCSSBydWxlIGNvbXBsZXRlcy4KKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBhIGJpbmFyeSBvcGVyYXRvciBpcyBlbmNvdW50ZXJlZC4KKyAgICAvLyAgICAgICAgICAgICAgIEl0IGxvb2tzIGJhY2sgdXAgdGhlIHN0YWNrIGZvciBvcGVyYXRvcnMgdGhhdCBhcmUgbm90IHlldCBhc3NvY2lhdGVkCisgICAgLy8gICAgICAgICAgICAgICB3aXRoIGEgcmlnaHQgb3BlcmFuZCwgYW5kIGlmIHRoZSBwcmVjZWRlbmNlIG9mIHRoZSBzdGFja2VkIG9wZXJhdG9yID49CisgICAgLy8gICAgICAgICAgICAgICB0aGUgcHJlY2VkZW5jZSBvZiB0aGUgY3VycmVudCBvcGVyYXRvciwgYmluZHMgdGhlIG9wZXJhbmQgbGVmdCwKKyAgICAvLyAgICAgICAgICAgICAgIHRvIHRoZSBwcmV2aW91c2x5IGVuY291bnRlcmVkIG9wZXJhdG9yLgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdm9pZCBmaXhPcFN0YWNrKGludCBwKSB7CisgICAgICAgIFJCQklOb2RlIG47CisgICAgICAgIC8vIHByaW50Tm9kZVN0YWNrKCJlbnRlcmluZyBmaXhPcFN0YWNrKCkiKTsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbiA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0ciAtIDFdOyAvLyBhbiBvcGVyYXRvciBub2RlCisgICAgICAgICAgICBpZiAobi5mUHJlY2VkZW5jZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiUkJCSVJ1bGVTY2FubmVyLmZpeE9wU3RhY2ssIGJhZCBvcGVyYXRvciBub2RlIik7CisgICAgICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0lOVEVSTkFMX0VSUk9SKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChuLmZQcmVjZWRlbmNlIDwgcCB8fCBuLmZQcmVjZWRlbmNlIDw9IFJCQklOb2RlLnByZWNMUGFyZW4pIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgbW9zdCByZWNlbnQgb3BlcmFuZCBnb2VzIHdpdGggdGhlIGN1cnJlbnQgb3BlcmF0b3IsCisgICAgICAgICAgICAgICAgLy8gICBub3Qgd2l0aCB0aGUgcHJldmlvdXNseSBzdGFja2VkIG9uZS4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFN0YWNrIG9wZXJhdG9yIGlzIGEgYmluYXJ5IG9wICggJ3wnIG9yIGNvbmNhdGVuYXRpb24pCisgICAgICAgICAgICAvLyAgIFRPUyBvcGVyYW5kIGJlY29tZXMgcmlnaHQgY2hpbGQgb2YgdGhpcyBvcGVyYXRvci4KKyAgICAgICAgICAgIC8vICAgUmVzdWx0aW5nIHN1YmV4cHJlc3Npb24gYmVjb21lcyB0aGUgVE9TIG9wZXJhbmQuCisgICAgICAgICAgICBuLmZSaWdodENoaWxkID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKyAgICAgICAgICAgIGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl0uZlBhcmVudCA9IG47CisgICAgICAgICAgICBmTm9kZVN0YWNrUHRyLS07CisgICAgICAgICAgICAvLyBwcmludE5vZGVTdGFjaygibG9vcGluZyBpbiBmaXhPcFN0YWNrKCkgIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAocCA8PSBSQkJJTm9kZS5wcmVjTFBhcmVuKSB7CisgICAgICAgICAgICAvLyBTY2FuIGlzIGF0IGEgcmlnaHQgcGFyZW4gb3IgZW5kIG9mIGV4cHJlc3Npb24uCisgICAgICAgICAgICAvLyAgVGhlIHNjYW5uZWQgaXRlbSBtdXN0IG1hdGNoIHRoZSBzdGFjaywgb3IgZWxzZSB0aGVyZSB3YXMgYW4KKyAgICAgICAgICAgIC8vIGVycm9yLgorICAgICAgICAgICAgLy8gIERpc2NhcmQgdGhlIGxlZnQgcGFyZW4gKG9yIHN0YXJ0IGV4cHIpIG5vZGUgZnJvbSB0aGUgc3RhY2ssCisgICAgICAgICAgICAvLyAgbGVhdmluZyB0aGUgY29tcGxldGVkIChzdWIpZXhwcmVzc2lvbiBhcyBUT1MuCisgICAgICAgICAgICBpZiAobi5mUHJlY2VkZW5jZSAhPSBwKSB7CisgICAgICAgICAgICAgICAgLy8gUmlnaHQgcGFyZW4gZW5jb3VudGVyZWQgbWF0Y2hlZCBzdGFydCBvZiBleHByZXNzaW9uIG5vZGUsIG9yCisgICAgICAgICAgICAgICAgLy8gZW5kIG9mIGV4cHJlc3Npb24gbWF0Y2hlZCB3aXRoIGEgbGVmdCBwYXJlbiBub2RlLgorICAgICAgICAgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19NSVNNQVRDSEVEX1BBUkVOKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0ciAtIDFdID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKyAgICAgICAgICAgIGZOb2RlU3RhY2tQdHItLTsKKyAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgbm93LWRpc2NhcmRlZCBMUGFyZW4gb3IgU3RhcnQgbm9kZS4KKyAgICAgICAgICAgIC8vIGRlbGV0ZSBuOworICAgICAgICB9CisgICAgICAgIC8vIHByaW50Tm9kZVN0YWNrKCJsZWF2aW5nIGZpeE9wU3RhY2soKSIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gICAgICAgUkJCSVNldFRhYmxlRWwgaXMgYW4gZW50cnkgaW4gdGhlIGhhc2ggdGFibGUgb2YgVW5pY29kZVNldHMgdGhhdCBoYXZlCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBiZWVuIGVuY291bnRlcmVkLiBUaGUgdmFsIE5vZGUgd2lsbCBiZSBvZiBub2RldHlwZSB1c2V0CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBhbmQgY29udGFpbiBwb2ludGVycyB0byB0aGUgYWN0dWFsIFVuaWNvZGVTZXRzLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgVGhlIEtleSBpcyB0aGUgc291cmNlIHN0cmluZyBmb3IgaW5pdGlhbGl6aW5nIHRoZSBzZXQuCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBoYXNoIHRhYmxlIGlzIHVzZWQgdG8gYXZvaWQgY3JlYXRpbmcgZHVwbGljYXRlCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICB1bm5hbWVkIChub3QgJHZhciByZWZlcmVuY2VzKSBVbmljb2RlU2V0cy4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyBjbGFzcyBSQkJJU2V0VGFibGVFbCB7CisgICAgICAgIFN0cmluZyBrZXk7CisKKyAgICAgICAgUkJCSU5vZGUgdmFsOworICAgIH0KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgIGZpbmRTZXRGb3IgZ2l2ZW4gYSBTdHJpbmcsCisgICAgLy8gICAgICAgICAgICAgICAgICAtIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgVW5pY29kZSBTZXQgKHVzZXQgbm9kZSkKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAoY3JlYXRlIG9uZSBpZiBuZWNlc3NhcnkpCisgICAgLy8gICAgICAgICAgICAgICAgICAtIFNldCBmTGVmdENoaWxkIG9mIHRoZSBjYWxsZXIncyBub2RlIChzaG91bGQgYmUgYSBzZXRSZWYgbm9kZSkKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgdXNldCBub2RlCisgICAgLy8gICAgICAgICAgICAgICAgIE1haW50YWluIGEgaGFzaCB0YWJsZSBvZiB1c2V0IG5vZGVzLCBzbyB0aGUgc2FtZSBvbmUgaXMgYWx3YXlzIHVzZWQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBzYW1lIHN0cmluZy4KKyAgICAvLyAgICAgICAgICAgICAgICAgSWYgYSAidG8gYWRvcHQiIHNldCBpcyBwcm92aWRlZCBhbmQgd2UgaGF2ZW4ndCBzZWVuIHRoaXMga2V5IGJlZm9yZSwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgYWRkIHRoZSBwcm92aWRlZCBzZXQgdG8gdGhlIGhhc2ggdGFibGUuCisgICAgLy8gICAgICAgICAgICAgICAgIElmIHRoZSBzdHJpbmcgaXMgb25lICgzMiBiaXQpIGNoYXIgaW4gbGVuZ3RoLCB0aGUgc2V0IGNvbnRhaW5zCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGp1c3Qgb25lIGVsZW1lbnQgd2hpY2ggaXMgdGhlIGNoYXIgaW4gcXVlc3Rpb24uCisgICAgLy8gICAgICAgICAgICAgICAgIElmIHRoZSBzdHJpbmcgaXMgImFueSIsIHJldHVybiBhIHNldCBjb250YWluaW5nIGFsbCBjaGFycy4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZvaWQgZmluZFNldEZvcihTdHJpbmcgcywgUkJCSU5vZGUgbm9kZSwgVW5pY29kZVNldCBzZXRUb0Fkb3B0KSB7CisKKyAgICAgICAgUkJCSVNldFRhYmxlRWwgZWw7CisKKyAgICAgICAgLy8gRmlyc3QgY2hlY2sgd2hldGhlciB3ZSd2ZSBhbHJlYWR5IGNhY2hlZCBhIHNldCBmb3IgdGhpcyBzdHJpbmcuCisgICAgICAgIC8vIElmIHNvLCBqdXN0IHVzZSB0aGUgY2FjaGVkIHNldCBpbiB0aGUgbmV3IG5vZGUuCisgICAgICAgIC8vICAgZGVsZXRlIGFueSBzZXQgcHJvdmlkZWQgYnkgdGhlIGNhbGxlciwgc2luY2Ugd2Ugb3duIGl0LgorICAgICAgICBlbCA9IChSQkJJU2V0VGFibGVFbCkgZlNldFRhYmxlLmdldChzKTsKKyAgICAgICAgaWYgKGVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIG5vZGUuZkxlZnRDaGlsZCA9IGVsLnZhbDsKKyAgICAgICAgICAgIEFzc2VydC5hc3NydChub2RlLmZMZWZ0Q2hpbGQuZlR5cGUgPT0gUkJCSU5vZGUudXNldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBIYXZlbid0IHNlZW4gdGhpcyBzZXQgYmVmb3JlLgorICAgICAgICAvLyBJZiB0aGUgY2FsbGVyIGRpZG4ndCBwcm92aWRlIHVzIHdpdGggYSBwcmVidWlsdCBzZXQsCisgICAgICAgIC8vICAgY3JlYXRlIGEgbmV3IFVuaWNvZGVTZXQgbm93LgorICAgICAgICBpZiAoc2V0VG9BZG9wdCA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAocy5lcXVhbHMoa0FueSkpIHsKKyAgICAgICAgICAgICAgICBzZXRUb0Fkb3B0ID0gbmV3IFVuaWNvZGVTZXQoMHgwMDAwMDAsIDB4MTBmZmZmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGM7CisgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCAwKTsKKyAgICAgICAgICAgICAgICBzZXRUb0Fkb3B0ID0gbmV3IFVuaWNvZGVTZXQoYywgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyBNYWtlIGEgbmV3IHVzZXQgbm9kZSB0byByZWZlciB0byB0aGlzIFVuaWNvZGVTZXQKKyAgICAgICAgLy8gVGhpcyBuZXcgdXNldCBub2RlIGJlY29tZXMgdGhlIGNoaWxkIG9mIHRoZSBjYWxsZXIncyBzZXRSZWZlcmVuY2UKKyAgICAgICAgLy8gbm9kZS4KKyAgICAgICAgLy8KKyAgICAgICAgUkJCSU5vZGUgdXNldE5vZGUgPSBuZXcgUkJCSU5vZGUoUkJCSU5vZGUudXNldCk7CisgICAgICAgIHVzZXROb2RlLmZJbnB1dFNldCA9IHNldFRvQWRvcHQ7CisgICAgICAgIHVzZXROb2RlLmZQYXJlbnQgPSBub2RlOworICAgICAgICBub2RlLmZMZWZ0Q2hpbGQgPSB1c2V0Tm9kZTsKKyAgICAgICAgdXNldE5vZGUuZlRleHQgPSBzOworCisgICAgICAgIC8vCisgICAgICAgIC8vIEFkZCB0aGUgbmV3IHVzZXQgbm9kZSB0byB0aGUgbGlzdCBvZiBhbGwgdXNldCBub2Rlcy4KKyAgICAgICAgLy8KKyAgICAgICAgZlJCLmZVU2V0Tm9kZXMuYWRkKHVzZXROb2RlKTsKKworICAgICAgICAvLworICAgICAgICAvLyBBZGQgdGhlIG5ldyBzZXQgdG8gdGhlIHNldCBoYXNoIHRhYmxlLgorICAgICAgICAvLworICAgICAgICBlbCA9IG5ldyBSQkJJU2V0VGFibGVFbCgpOworICAgICAgICBlbC5rZXkgPSBzOworICAgICAgICBlbC52YWwgPSB1c2V0Tm9kZTsKKyAgICAgICAgZlNldFRhYmxlLnB1dChlbC5rZXksIGVsKTsKKworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8KKyAgICAvLyAgQXNzb3J0ZWQgVW5pY29kZSBjaGFyYWN0ZXIgY29uc3RhbnRzLgorICAgIC8vICAgICBOdW1lcmljIGJlY2F1c2UgdGhlcmUgaXMgbm8gcG9ydGFibGUgd2F5IHRvIGVudGVyIHRoZW0gYXMgbGl0ZXJhbHMuCisgICAgLy8gICAgIChUaGluayBFQkNESUMpLgorICAgIC8vCisgICAgc3RhdGljIGZpbmFsIGludCBjaE5FTCA9IDB4ODU7IC8vICAgIE5FTCBuZXdsaW5lIHZhcmlhbnQKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgY2hMUyA9IDB4MjAyODsgLy8gICAgVW5pY29kZSBMaW5lIFNlcGFyYXRvcgorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgc3RyaXBSdWxlcyAgICBSZXR1cm4gYSBydWxlcyBzdHJpbmcgd2l0aG91dCB1bm5lY2Vzc2FyeQorICAgIC8vICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0aWMgU3RyaW5nIHN0cmlwUnVsZXMoU3RyaW5nIHJ1bGVzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJpcHBlZFJ1bGVzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgcnVsZXNMZW5ndGggPSBydWxlcy5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaWR4ID0gMDsgaWR4IDwgcnVsZXNMZW5ndGg7KSB7CisgICAgICAgICAgICBjaGFyIGNoID0gcnVsZXMuY2hhckF0KGlkeCsrKTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAnIycpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaWR4IDwgcnVsZXNMZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGNoICE9ICdccicgJiYgY2ggIT0gJ1xuJyAmJiBjaCAhPSBjaE5FTCkgeworICAgICAgICAgICAgICAgICAgICBjaCA9IHJ1bGVzLmNoYXJBdChpZHgrKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChjaCkpIHsKKyAgICAgICAgICAgICAgICBzdHJpcHBlZFJ1bGVzLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0cmlwcGVkUnVsZXMudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBuZXh0Q2hhckxMICAgIExvdyBMZXZlbCBOZXh0IENoYXIgZnJvbSBydWxlIGlucHV0IHNvdXJjZS4KKyAgICAvLyAgICAgICAgICAgICAgICBHZXQgYSBjaGFyIGZyb20gdGhlIGlucHV0IGNoYXJhY3RlciBpdGVyYXRvciwKKyAgICAvLyAgICAgICAgICAgICAgICBrZWVwIHRyYWNrIG9mIGlucHV0IHBvc2l0aW9uIGZvciBlcnJvciByZXBvcnRpbmcuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBpbnQgbmV4dENoYXJMTCgpIHsKKyAgICAgICAgaW50IGNoOworCisgICAgICAgIGlmIChmTmV4dEluZGV4ID49IGZSQi5mUnVsZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBjaCA9IFVURjE2LmNoYXJBdChmUkIuZlJ1bGVzLCBmTmV4dEluZGV4KTsKKyAgICAgICAgZk5leHRJbmRleCA9IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoZlJCLmZSdWxlcywgZk5leHRJbmRleCwgMSk7CisKKyAgICAgICAgaWYgKGNoID09ICdccicgfHwKKyAgICAgICAgICAgIGNoID09IGNoTkVMIHx8CisgICAgICAgICAgICBjaCA9PSBjaExTIHx8CisgICAgICAgICAgICBjaCA9PSAnXG4nICYmIGZMYXN0Q2hhciAhPSAnXHInKSB7CisgICAgICAgICAgICAvLyBDaGFyYWN0ZXIgaXMgc3RhcnRpbmcgYSBuZXcgbGluZS4gIEJ1bXAgdXAgdGhlIGxpbmUgbnVtYmVyLCBhbmQKKyAgICAgICAgICAgIC8vICByZXNldCB0aGUgY29sdW1uIHRvIDAuCisgICAgICAgICAgICBmTGluZU51bSsrOworICAgICAgICAgICAgZkNoYXJOdW0gPSAwOworICAgICAgICAgICAgaWYgKGZRdW90ZU1vZGUpIHsKKyAgICAgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfTkVXX0xJTkVfSU5fUVVPVEVEX1NUUklORyk7CisgICAgICAgICAgICAgICAgZlF1b3RlTW9kZSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQ2hhcmFjdGVyIGlzIG5vdCBzdGFydGluZyBhIG5ldyBsaW5lLiAgRXhjZXB0IGluIHRoZSBjYXNlIG9mIGEKKyAgICAgICAgICAgIC8vICAgTEYgZm9sbG93aW5nIGEgQ1IsIGluY3JlbWVudCB0aGUgY29sdW1uIHBvc2l0aW9uLgorICAgICAgICAgICAgaWYgKGNoICE9ICdcbicpIHsKKyAgICAgICAgICAgICAgICBmQ2hhck51bSsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZMYXN0Q2hhciA9IGNoOworICAgICAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgbmV4dENoYXIgICAgIGZvciBydWxlcyBzY2FubmluZy4gIEF0IHRoaXMgbGV2ZWwsIHdlIGhhbmRsZSBzdHJpcHBpbmcKKyAgICAvLyAgICAgICAgICAgICAgICBvdXQgY29tbWVudHMgYW5kIHByb2Nlc3NpbmcgYmFja3NsYXNoIGNoYXJhY3RlciBlc2NhcGVzLgorICAgIC8vICAgICAgICAgICAgICAgIFRoZSByZXN0IG9mIHRoZSBydWxlcyBncmFtbWFyIGlzIGhhbmRsZWQgYXQgdGhlIG5leHQgbGV2ZWwgdXAuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZvaWQgbmV4dENoYXIoUkJCSVJ1bGVDaGFyIGMpIHsKKworICAgICAgICAvLyBVbmljb2RlIENoYXJhY3RlciBjb25zdGFudHMgbmVlZGVkIGZvciB0aGUgcHJvY2Vzc2luZyBkb25lIGJ5IG5leHRDaGFyKCksCisgICAgICAgIC8vICAgaW4gaGV4IGJlY2F1c2UgbGl0ZXJhbHMgd29udCB3b3JrIG9uIEVCQ0RJQyBtYWNoaW5lcy4KKworICAgICAgICBmU2NhbkluZGV4ID0gZk5leHRJbmRleDsKKyAgICAgICAgYy5mQ2hhciA9IG5leHRDaGFyTEwoKTsKKyAgICAgICAgYy5mRXNjYXBlZCA9IGZhbHNlOworCisgICAgICAgIC8vCisgICAgICAgIC8vICBjaGVjayBmb3IgJycgc2VxdWVuY2UuCisgICAgICAgIC8vICBUaGVzZSBhcmUgcmVjb2duaXplZCBpbiBhbGwgY29udGV4dHMsIHdoZXRoZXIgaW4gcXVvdGVkIHRleHQgb3Igbm90LgorICAgICAgICAvLworICAgICAgICBpZiAoYy5mQ2hhciA9PSAnXCcnKSB7CisgICAgICAgICAgICBpZiAoVVRGMTYuY2hhckF0KGZSQi5mUnVsZXMsIGZOZXh0SW5kZXgpID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICBjLmZDaGFyID0gbmV4dENoYXJMTCgpOyAvLyBnZXQgbmV4dENoYXIgb2ZmaWNpYWxseSBzbyBjaGFyYWN0ZXIgY291bnRzCisgICAgICAgICAgICAgICAgYy5mRXNjYXBlZCA9IHRydWU7IC8vICAgc3RheSBjb3JyZWN0LgorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTaW5nbGUgcXVvdGUsIGJ5IGl0c2VsZi4KKyAgICAgICAgICAgICAgICAvLyAgIFRvZ2dsZSBxdW90aW5nIG1vZGUuCisgICAgICAgICAgICAgICAgLy8gICBSZXR1cm4gZWl0aGVyICcoJyAgb3IgJyknLCBiZWNhdXNlIHF1b3RlcyBjYXVzZSBhIGdyb3VwaW5nIG9mIHRoZSBxdW90ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICBmUXVvdGVNb2RlID0gIWZRdW90ZU1vZGU7CisgICAgICAgICAgICAgICAgaWYgKGZRdW90ZU1vZGUgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBjLmZDaGFyID0gJygnOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMuZkNoYXIgPSAnKSc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMuZkVzY2FwZWQgPSBmYWxzZTsgLy8gVGhlIHBhcmVuIHRoYXQgd2UgcmV0dXJuIGlzIG5vdCBlc2NhcGVkLgorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChmUXVvdGVNb2RlKSB7CisgICAgICAgICAgICBjLmZFc2NhcGVkID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlIGFyZSBub3QgaW4gYSAncXVvdGVkIHJlZ2lvbicgb2YgdGhlIHNvdXJjZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBpZiAoYy5mQ2hhciA9PSAnIycpIHsKKyAgICAgICAgICAgICAgICAvLyBTdGFydCBvZiBhIGNvbW1lbnQuICBDb25zdW1lIHRoZSByZXN0IG9mIGl0LgorICAgICAgICAgICAgICAgIC8vICBUaGUgbmV3LWxpbmUgY2hhciB0aGF0IHRlcm1pbmF0ZXMgdGhlIGNvbW1lbnQgaXMgYWx3YXlzIHJldHVybmVkLgorICAgICAgICAgICAgICAgIC8vICBJdCB3aWxsIGJlIHRyZWF0ZWQgYXMgd2hpdGUtc3BhY2UsIGFuZCBzZXJ2ZXMgdG8gYnJlYWsgdXAgYW55dGhpbmcKKyAgICAgICAgICAgICAgICAvLyAgICB0aGF0IG1pZ2h0IG90aGVyd2lzZSBpbmNvcnJlY3RseSBjbHVtcCB0b2dldGhlciB3aXRoIGEgY29tbWVudCBpbgorICAgICAgICAgICAgICAgIC8vICAgIHRoZSBtaWRkbGUgKGEgdmFyaWFibGUgbmFtZSwgZm9yIGV4YW1wbGUuKQorICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgYy5mQ2hhciA9IG5leHRDaGFyTEwoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMuZkNoYXIgPT0gKGludCkgLTEgfHwgLy8gRU9GCisgICAgICAgICAgICAgICAgICAgICAgICBjLmZDaGFyID09ICdccicgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGMuZkNoYXIgPT0gJ1xuJyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgYy5mQ2hhciA9PSBjaE5FTCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgYy5mQ2hhciA9PSBjaExTKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjLmZDaGFyID09IChpbnQpIC0xKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gIGNoZWNrIGZvciBiYWNrc2xhc2ggZXNjYXBlZCBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgLy8gIFVzZSBTdHJpbmcudW5lc2NhcGVBdCgpIHRvIGhhbmRsZSB0aGVtLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGlmIChjLmZDaGFyID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBjLmZFc2NhcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpbnRbXSB1bmVzY2FwZUluZGV4ID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgICAgICB1bmVzY2FwZUluZGV4WzBdID0gZk5leHRJbmRleDsKKyAgICAgICAgICAgICAgICBjLmZDaGFyID0gVXRpbGl0eS51bmVzY2FwZUF0KGZSQi5mUnVsZXMsIHVuZXNjYXBlSW5kZXgpOworICAgICAgICAgICAgICAgIGlmICh1bmVzY2FwZUluZGV4WzBdID09IGZOZXh0SW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0hFWF9ESUdJVFNfRVhQRUNURUQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZDaGFyTnVtICs9IHVuZXNjYXBlSW5kZXhbMF0gLSBmTmV4dEluZGV4OworICAgICAgICAgICAgICAgIGZOZXh0SW5kZXggPSB1bmVzY2FwZUluZGV4WzBdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHB1dGMoYy5mQ2hhciwgc3Rkb3V0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gIFBhcnNlIFJCQkkgcnVsZXMuICAgVGhlIHN0YXRlIG1hY2hpbmUgZm9yIHJ1bGVzIHBhcnNpbmcgaXMgaGVyZS4KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICBUaGUgc3RhdGUgdGFibGVzIGFyZSBoYW5kLXdyaXR0ZW4gaW4gdGhlIGZpbGUgcmJiaXJwdC50eHQsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgYW5kIGNvbnZlcnRlZCB0byB0aGUgZm9ybSB1c2VkIGhlcmUgYnkgYSBwZXJsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgc2NyaXB0IHJiYmljc3QucGwKKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdm9pZCBwYXJzZSgpIHsKKyAgICAgICAgaW50IHN0YXRlOworICAgICAgICBSQkJJUnVsZVBhcnNlVGFibGUuUkJCSVJ1bGVUYWJsZUVsZW1lbnQgdGFibGVFbDsKKworICAgICAgICBzdGF0ZSA9IDE7CisgICAgICAgIG5leHRDaGFyKGZDKTsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gTWFpbiBsb29wIGZvciB0aGUgcnVsZSBwYXJzaW5nIHN0YXRlIG1hY2hpbmUuCisgICAgICAgIC8vICAgUnVucyBvbmNlIHBlciBzdGF0ZSB0cmFuc2l0aW9uLgorICAgICAgICAvLyAgIEVhY2ggdGltZSB0aHJvdWdoIG9wdGlvbmFsbHkgcGVyZm9ybXMsIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgdGFibGUsCisgICAgICAgIC8vICAgICAgLSBhbiBhZHZhbmNlIHRvIHRoZSB0aGUgbmV4dCBpbnB1dCBjaGFyCisgICAgICAgIC8vICAgICAgLSBhbiBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkLgorICAgICAgICAvLyAgICAgIC0gcHVzaGluZyBvciBwb3BwaW5nIGEgc3RhdGUgdG8vZnJvbSB0aGUgbG9jYWwgc3RhdGUgcmV0dXJuIHN0YWNrLgorICAgICAgICAvLworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAvLyBRdWl0IGlmIHN0YXRlID09IDAuICBUaGlzIGlzIHRoZSBub3JtYWwgd2F5IHRvIGV4aXQgdGhlIHN0YXRlIG1hY2hpbmUuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgaWYgKHN0YXRlID09IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRmluZCB0aGUgc3RhdGUgdGFibGUgZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhlIGlucHV0IGNoYXIgZnJvbSB0aGUgcnVsZSwgb3IgdGhlCisgICAgICAgICAgICAvLyAgICBjbGFzcyBvZiB0aGUgaW5wdXQgY2hhcmFjdGVyLiAgU3RhcnQgd2l0aCB0aGUgZmlyc3QgdGFibGUgcm93IGZvciB0aGlzCisgICAgICAgICAgICAvLyAgICBzdGF0ZSwgdGhlbiBsaW5lYXJseSBzY2FuIGZvcndhcmQgdW50aWwgd2UgZmluZCBhIHJvdyB0aGF0IG1hdGNoZXMgdGhlCisgICAgICAgICAgICAvLyAgICBjaGFyYWN0ZXIuICBUaGUgbGFzdCByb3cgZm9yIGVhY2ggc3RhdGUgYWx3YXlzIG1hdGNoZXMgYWxsIGNoYXJhY3RlcnMsIHNvCisgICAgICAgICAgICAvLyAgICB0aGUgc2VhcmNoIHdpbGwgc3RvcCB0aGVyZSwgaWYgbm90IGJlZm9yZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICB0YWJsZUVsID0gUkJCSVJ1bGVQYXJzZVRhYmxlLmdSdWxlUGFyc2VTdGF0ZVRhYmxlW3N0YXRlXTsKKyAgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52ICE9IG51bGwgJiYgZlJCLmZEZWJ1Z0Vudi5pbmRleE9mKCJzY2FuIikgPj0gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hhciwgbGluZSwgY29sID0gKFwnIiArIChjaGFyKSBmQy5mQ2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCcsICIgKyBmTGluZU51bSArICIsICIgKyBmQ2hhck51bSArICIgICAgc3RhdGUgPSAiCisgICAgICAgICAgICAgICAgICAgICAgICArIHRhYmxlRWwuZlN0YXRlTmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IHRhYmxlUm93ID0gc3RhdGU7OyB0YWJsZVJvdysrKSB7IC8vIGxvb3Agb3ZlciB0aGUgc3RhdGUgdGFibGUgcm93cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZS4KKyAgICAgICAgICAgICAgICB0YWJsZUVsID0gUkJCSVJ1bGVQYXJzZVRhYmxlLmdSdWxlUGFyc2VTdGF0ZVRhYmxlW3RhYmxlUm93XTsKKyAgICAgICAgICAgICAgICBpZiAoZlJCLmZEZWJ1Z0VudiAhPSBudWxsICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigic2NhbiIpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGFibGVFbC5mQ2hhckNsYXNzIDwgMTI3ICYmIGZDLmZFc2NhcGVkID09IGZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAmJiB0YWJsZUVsLmZDaGFyQ2xhc3MgPT0gZkMuZkNoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGFibGUgcm93IHNwZWNpZmllZCBhbiBpbmRpdmlkdWFsIGNoYXJhY3Rlciwgbm90IGEgc2V0LCBhbmQKKyAgICAgICAgICAgICAgICAgICAgLy8gICB0aGUgaW5wdXQgY2hhcmFjdGVyIGlzIG5vdCBlc2NhcGVkLCBhbmQKKyAgICAgICAgICAgICAgICAgICAgLy8gICB0aGUgaW5wdXQgY2hhcmFjdGVyIG1hdGNoZWQgaXQuCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGFibGVFbC5mQ2hhckNsYXNzID09IDI1NSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUYWJsZSByb3cgc3BlY2lmaWVkIGRlZmF1bHQsIG1hdGNoIGFueXRoaW5nIGNoYXJhY3RlciBjbGFzcy4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YWJsZUVsLmZDaGFyQ2xhc3MgPT0gMjU0ICYmIGZDLmZFc2NhcGVkKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRhYmxlIHJvdyBzcGVjaWZpZWQgImVzY2FwZWQiIGFuZCB0aGUgY2hhciB3YXMgZXNjYXBlZC4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YWJsZUVsLmZDaGFyQ2xhc3MgPT0gMjUzICYmIGZDLmZFc2NhcGVkCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAoZkMuZkNoYXIgPT0gMHg1MCB8fCBmQy5mQ2hhciA9PSAweDcwKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUYWJsZSByb3cgc3BlY2lmaWVkICJlc2NhcGVkIFAiIGFuZCB0aGUgY2hhciBpcyBlaXRoZXIgJ3AnIG9yICdQJy4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YWJsZUVsLmZDaGFyQ2xhc3MgPT0gMjUyICYmIGZDLmZDaGFyID09IChpbnQpIC0xKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRhYmxlIHJvdyBzcGVjaWZpZWQgZW9mIGFuZCB3ZSBoaXQgZW9mIG9uIHRoZSBpbnB1dC4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHRhYmxlRWwuZkNoYXJDbGFzcyA+PSAxMjggJiYgdGFibGVFbC5mQ2hhckNsYXNzIDwgMjQwICYmIC8vIFRhYmxlIHNwZWNzIGEgY2hhciBjbGFzcyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZkMuZkVzY2FwZWQgPT0gZmFsc2UgJiYgLy8gICBjaGFyIGlzIG5vdCBlc2NhcGVkICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmQy5mQ2hhciAhPSAoaW50KSAtMSkgeyAvLyAgIGNoYXIgaXMgbm90IEVPRgorICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHVuaXNldCA9IGZSdWxlU2V0c1t0YWJsZUVsLmZDaGFyQ2xhc3MgLSAxMjhdOworICAgICAgICAgICAgICAgICAgICBpZiAodW5pc2V0LmNvbnRhaW5zKGZDLmZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGFibGUgcm93IHNwZWNpZmllZCBhIGNoYXJhY3RlciBjbGFzcywgb3Igc2V0IG9mIGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGFuZCB0aGUgY3VycmVudCBjaGFyIG1hdGNoZXMgaXQuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZSQi5mRGVidWdFbnYgIT0gbnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInNjYW4iKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBXZSd2ZSBmb3VuZCB0aGUgcm93IG9mIHRoZSBzdGF0ZSB0YWJsZSB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgaW5wdXQKKyAgICAgICAgICAgIC8vICAgY2hhcmFjdGVyIGZyb20gdGhlIHJ1bGVzIHN0cmluZy4KKyAgICAgICAgICAgIC8vIFBlcmZvcm0gYW55IGFjdGlvbiBzcGVjaWZpZWQgIGJ5IHRoaXMgcm93IGluIHRoZSBzdGF0ZSB0YWJsZS4KKyAgICAgICAgICAgIGlmIChkb1BhcnNlQWN0aW9ucyh0YWJsZUVsLmZBY3Rpb24pID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgLy8gQnJlYWsgb3V0IG9mIHRoZSBzdGF0ZSBtYWNoaW5lIGxvb3AgaWYgdGhlCisgICAgICAgICAgICAgICAgLy8gICB0aGUgYWN0aW9uIHNpZ25hbGxlZCBzb21lIGtpbmQgb2YgZXJyb3IsIG9yCisgICAgICAgICAgICAgICAgLy8gICB0aGUgYWN0aW9uIHdhcyB0byBleGl0LCBvY2N1cnMgb24gbm9ybWFsIGVuZC1vZi1ydWxlcy1pbnB1dC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRhYmxlRWwuZlB1c2hTdGF0ZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZlN0YWNrUHRyKys7CisgICAgICAgICAgICAgICAgaWYgKGZTdGFja1B0ciA+PSBrU3RhY2tTaXplKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUkJCSVJ1bGVTY2FubmVyLnBhcnNlKCkgLSBzdGF0ZSBzdGFjayBvdmVyZmxvdy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0lOVEVSTkFMX0VSUk9SKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZlN0YWNrW2ZTdGFja1B0cl0gPSB0YWJsZUVsLmZQdXNoU3RhdGU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWJsZUVsLmZOZXh0Q2hhcikgeworICAgICAgICAgICAgICAgIG5leHRDaGFyKGZDKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gR2V0IHRoZSBuZXh0IHN0YXRlIGZyb20gdGhlIHRhYmxlIGVudHJ5LCBvciBmcm9tIHRoZQorICAgICAgICAgICAgLy8gICBzdGF0ZSBzdGFjayBpZiB0aGUgbmV4dCBzdGF0ZSB3YXMgc3BlY2lmaWVkIGFzICJwb3AiLgorICAgICAgICAgICAgaWYgKHRhYmxlRWwuZk5leHRTdGF0ZSAhPSAyNTUpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IHRhYmxlRWwuZk5leHRTdGF0ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhdGUgPSBmU3RhY2tbZlN0YWNrUHRyXTsKKyAgICAgICAgICAgICAgICBmU3RhY2tQdHItLTsKKyAgICAgICAgICAgICAgICBpZiAoZlN0YWNrUHRyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJCQklSdWxlU2Nhbm5lci5wYXJzZSgpIC0gc3RhdGUgc3RhY2sgdW5kZXJmbG93LiIpOworICAgICAgICAgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfSU5URVJOQUxfRVJST1IpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gSWYgdGhlcmUgd2VyZSBOTyB1c2VyIHNwZWNpZmllZCByZXZlcnNlIHJ1bGVzLCBzZXQgdXAgdGhlIGVxdWl2YWxlbnQgb2YgIi4qOyIKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mUmV2ZXJzZVRyZWVdID09IG51bGwpIHsKKyAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mUmV2ZXJzZVRyZWVdID0gcHVzaE5ld05vZGUoUkJCSU5vZGUub3BTdGFyKTsKKyAgICAgICAgICAgIFJCQklOb2RlIG9wZXJhbmQgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5zZXRSZWYpOworICAgICAgICAgICAgZmluZFNldEZvcihrQW55LCBvcGVyYW5kLCBudWxsKTsKKyAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mUmV2ZXJzZVRyZWVdLmZMZWZ0Q2hpbGQgPSBvcGVyYW5kOworICAgICAgICAgICAgb3BlcmFuZC5mUGFyZW50ID0gZlJCLmZUcmVlUm9vdHNbUkJCSVJ1bGVCdWlsZGVyLmZSZXZlcnNlVHJlZV07CisgICAgICAgICAgICBmTm9kZVN0YWNrUHRyIC09IDI7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyBQYXJzaW5nIG9mIHRoZSBpbnB1dCBSQkJJIHJ1bGVzIGlzIGNvbXBsZXRlLgorICAgICAgICAvLyBXZSBub3cgaGF2ZSBhIHBhcnNlIHRyZWUgZm9yIHRoZSBydWxlIGV4cHJlc3Npb25zCisgICAgICAgIC8vIGFuZCBhIGxpc3Qgb2YgYWxsIFVuaWNvZGVTZXRzIHRoYXQgYXJlIHJlZmVyZW5jZWQuCisgICAgICAgIC8vCisgICAgICAgIGlmIChmUkIuZkRlYnVnRW52ICE9IG51bGwgJiYgZlJCLmZEZWJ1Z0Vudi5pbmRleE9mKCJzeW1ib2xzIikgPj0gMCkgeworICAgICAgICAgICAgZlN5bWJvbFRhYmxlLnJiYmlTeW10YWJsZVByaW50KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZSQi5mRGVidWdFbnYgIT0gbnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInB0cmVlIikgPj0gMCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb21wbGV0ZWQgRm9yd2FyZCBSdWxlcyBQYXJzZSBUcmVlLi4uIik7CisgICAgICAgICAgICBmUkIuZlRyZWVSb290c1tSQkJJUnVsZUJ1aWxkZXIuZkZvcndhcmRUcmVlXS5wcmludFRyZWUodHJ1ZSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQ29tcGxldGVkIFJldmVyc2UgUnVsZXMgUGFyc2UgVHJlZS4uLiIpOworICAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbUkJCSVJ1bGVCdWlsZGVyLmZSZXZlcnNlVHJlZV0ucHJpbnRUcmVlKHRydWUpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkNvbXBsZXRlZCBTYWZlIFBvaW50IEZvcndhcmQgUnVsZXMgUGFyc2UgVHJlZS4uLiIpOworICAgICAgICAgICAgaWYgKGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mU2FmZUZ3ZFRyZWVdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgLS0gbnVsbCAtLSAiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbUkJCSVJ1bGVCdWlsZGVyLmZTYWZlRndkVHJlZV0ucHJpbnRUcmVlKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkNvbXBsZXRlZCBTYWZlIFBvaW50IFJldmVyc2UgUnVsZXMgUGFyc2UgVHJlZS4uLiIpOworICAgICAgICAgICAgaWYgKGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mU2FmZVJldlRyZWVdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgLS0gbnVsbCAtLSAiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbUkJCSVJ1bGVCdWlsZGVyLmZTYWZlUmV2VHJlZV0ucHJpbnRUcmVlKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBwcmludE5vZGVTdGFjayAgICAgZm9yIGRlYnVnZ2luZy4uLgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgdm9pZCBwcmludE5vZGVTdGFjayhTdHJpbmcgdGl0bGUpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0aXRsZSArICIuICBEdW1waW5nIG5vZGUgc3RhY2suLi5cbiIpOworICAgICAgICBmb3IgKGkgPSBmTm9kZVN0YWNrUHRyOyBpID4gMDsgaS0tKSB7CisgICAgICAgICAgICBmTm9kZVN0YWNrW2ldLnByaW50VHJlZSh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgcHVzaE5ld05vZGUgICBjcmVhdGUgYSBuZXcgUkJCSU5vZGUgb2YgdGhlIHNwZWNpZmllZCB0eXBlIGFuZCBwdXNoIGl0CisgICAgLy8gICAgICAgICAgICAgICAgb250byB0aGUgc3RhY2sgb2Ygbm9kZXMuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFJCQklOb2RlIHB1c2hOZXdOb2RlKGludCBub2RlVHlwZSkgeworICAgICAgICBmTm9kZVN0YWNrUHRyKys7CisgICAgICAgIGlmIChmTm9kZVN0YWNrUHRyID49IGtTdGFja1NpemUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUkJCSVJ1bGVTY2FubmVyLnB1c2hOZXdOb2RlIC0gc3RhY2sgb3ZlcmZsb3cuIik7CisgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfSU5URVJOQUxfRVJST1IpOworICAgICAgICB9CisgICAgICAgIGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl0gPSBuZXcgUkJCSU5vZGUobm9kZVR5cGUpOworICAgICAgICByZXR1cm4gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gIHNjYW5TZXQgICAgQ29uc3RydWN0IGEgVW5pY29kZVNldCBmcm9tIHRoZSB0ZXh0IGF0IHRoZSBjdXJyZW50IHNjYW4KKyAgICAvLyAgICAgICAgICAgICBwb3NpdGlvbi4gIEFkdmFuY2UgdGhlIHNjYW4gcG9zaXRpb24gdG8gdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgIC8vICAgICAgICAgICAgIGFmdGVyIHRoZSBzZXQuCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgICBBIG5ldyBSQkJJIHNldHJlZiBub2RlIHJlZmVycmluZyB0byB0aGUgc2V0IGlzIHB1c2hlZCBvbnRvIHRoZSBub2RlCisgICAgLy8gICAgICAgICAgICAgc3RhY2suCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgICBUaGUgc2NhbiBwb3NpdGlvbiBpcyBub3JtYWxseSB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgc3RhdGUgbWFjaGluZQorICAgIC8vICAgICAgICAgICAgIHRoYXQgY29udHJvbHMgcnVsZSBwYXJzaW5nLiAgVW5pY29kZVNldHMsIGhvd2V2ZXIsIGFyZSBwYXJzZWQgYnkKKyAgICAvLyAgICAgICAgICAgICB0aGUgVW5pY29kZVNldCBjb25zdHJ1Y3Rvciwgbm90IGJ5IHRoZSBSQkJJIHJ1bGUgcGFyc2VyLgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB2b2lkIHNjYW5TZXQoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgdXNldCA9IG51bGw7CisgICAgICAgIGludCBzdGFydFBvczsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihmU2NhbkluZGV4KTsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgc3RhcnRQb3MgPSBmU2NhbkluZGV4OworICAgICAgICB0cnkgeworICAgICAgICAgICAgdXNldCA9IG5ldyBVbmljb2RlU2V0KGZSQi5mUnVsZXMsIHBvcywgZlN5bWJvbFRhYmxlLCBVbmljb2RlU2V0LklHTk9SRV9TUEFDRSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7IC8vIFRPRE86ICBjYXRjaCBmZXdlciBleGNlcHRpb24gdHlwZXMuCisgICAgICAgICAgICAvLyBSZXBhY2thZ2UgVW5pY29kZVNldCBlcnJvcnMgYXMgUkJCSSBydWxlIGJ1aWxkZXIgZXJyb3JzLCB3aXRoIGxvY2F0aW9uIGluZm8uCisgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfTUFMRk9STUVEX1NFVCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgc2V0IGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBjb2RlIHBvaW50LgorICAgICAgICAvLworICAgICAgICBpZiAodXNldC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgc2V0IGlzIGVtcHR5LgorICAgICAgICAgICAgLy8gIE1ha2UgaXQgYW4gZXJyb3IsIGJlY2F1c2UgaXQgYWxtb3N0IGNlcnRhaW5seSBpcyBub3Qgd2hhdCB0aGUgdXNlciB3YW50ZWQuCisgICAgICAgICAgICAvLyAgQWxzbywgYXZvaWRzIGhhdmluZyB0byB0aGluayBhYm91dCBjb3JuZXIgY2FzZXMgaW4gdGhlIHRyZWUgbWFuaXB1bGF0aW9uIGNvZGUKKyAgICAgICAgICAgIC8vICAgdGhhdCBvY2N1cnMgbGF0ZXIgb24uCisgICAgICAgICAgICAvLyAgVE9ETzogIHRoaXMgc2hvdWxkbid0IGJlIGFuIGVycm9yOyBpdCBkb2VzIGhhcHBlbi4KKyAgICAgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19SVUxFX0VNUFRZX1NFVCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZHZhbmNlIHRoZSBSQkJJIHBhcnNlIHBvc3Rpb24gb3ZlciB0aGUgVW5pY29kZVNldCBwYXR0ZXJuLgorICAgICAgICAvLyAgIERvbid0IGp1c3Qgc2V0IGZTY2FuSW5kZXggYmVjYXVzZSB0aGUgbGluZS9jaGFyIHBvc2l0aW9ucyBtYWludGFpbmVkCisgICAgICAgIC8vICAgZm9yIGVycm9yIHJlcG9ydGluZyB3b3VsZCBiZSB0aHJvd24gb2ZmLgorICAgICAgICBpID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGlmIChmTmV4dEluZGV4ID49IGkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5leHRDaGFyTEwoKTsKKyAgICAgICAgfQorCisgICAgICAgIFJCQklOb2RlIG47CisKKyAgICAgICAgbiA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLnNldFJlZik7CisgICAgICAgIG4uZkZpcnN0UG9zID0gc3RhcnRQb3M7CisgICAgICAgIG4uZkxhc3RQb3MgPSBmTmV4dEluZGV4OworICAgICAgICBuLmZUZXh0ID0gZlJCLmZSdWxlcy5zdWJzdHJpbmcobi5mRmlyc3RQb3MsIG4uZkxhc3RQb3MpOworICAgICAgICAvLyAgZmluZFNldEZvcigpIHNlcnZlcyBzZXZlcmFsIHB1cnBvc2VzIGhlcmU6CisgICAgICAgIC8vICAgICAtIEFkb3B0cyBzdG9yYWdlIGZvciB0aGUgVW5pY29kZVNldCwgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcuCisgICAgICAgIC8vICAgICAtIE1hbnRhaW5zIGNvbGxlY3Rpb24gb2YgYWxsIHNldHMgaW4gdXNlLCBuZWVkZWQgbGF0ZXIgZm9yIGVzdGFibGlzaGluZworICAgICAgICAvLyAgICAgICAgICBjaGFyYWN0ZXIgY2F0ZWdvcmllcyBmb3IgcnVuIHRpbWUgZW5naW5lLgorICAgICAgICAvLyAgICAgLSBFbGltaW5hdGVzIG11bGl0aXBsZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgc2V0LgorICAgICAgICAvLyAgICAgLSBDcmVhdGVzIGEgbmV3IHVzZXQgbm9kZSBpZiBuZWNlc3NhcnkgKGlmIHRoaXMgaXNuJ3QgYSBkdXBsaWNhdGUuKQorICAgICAgICBmaW5kU2V0Rm9yKG4uZlRleHQsIG4sIHVzZXQpOworICAgIH0KKworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJU2V0QnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVNldEJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOTI1ZTlkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVNldEJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDU3MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwKKyAqIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllQnVpbGRlcjsKKworLy8KKy8vICBSQkJJU2V0QnVpbGRlciAgIEhhbmRsZXMgcHJvY2Vzc2luZyBvZiBVbmljb2RlIFNldHMgZnJvbSBSQkJJIHJ1bGVzCisvLyAgICAgICAgICAgICAgICAgICAocGFydCBvZiB0aGUgcnVsZSBidWlsZGluZyBwcm9jZXNzLikKKy8vCisvLyAgICAgIFN0YXJ0aW5nIHdpdGggdGhlIHJ1bGVzIHBhcnNlIHRyZWUgZnJvbSB0aGUgc2Nhbm5lciwKKy8vCisvLyAgICAgICAgICAgICAgICAgICAtICBFbnVtZXJhdGUgdGhlIHNldCBvZiBVbmljb2RlU2V0cyB0aGF0IGFyZSByZWZlcmVuY2VkCisvLyAgICAgICAgICAgICAgICAgICAgICBieSB0aGUgUkJCSSBydWxlcy4KKy8vICAgICAgICAgICAgICAgICAgIC0gIGNvbXB1dGUgYSBzZXQgb2Ygbm9uLW92ZXJsYXBwaW5nIGNoYXJhY3RlciByYW5nZXMKKy8vICAgICAgICAgICAgICAgICAgICAgIHdpdGggYWxsIGNoYXJhY3RlcnMgd2l0aGluIGEgcmFuZ2UgYmVsb25naW5nIHRvIHRoZSBzYW1lCisvLyAgICAgICAgICAgICAgICAgICAgICBzZXQgb2YgaW5wdXQgdW5pb2NkZSBzZXRzLgorLy8gICAgICAgICAgICAgICAgICAgLSAgRGVyaXZlIGEgc2V0IG9mIG5vbi1vdmVybGFwcGluZyBVbmljb2RlU2V0IChsaWtlIHRoaW5ncykKKy8vICAgICAgICAgICAgICAgICAgICAgIHRoYXQgd2lsbCBjb3JyZXNwb25kIHRvIGNvbHVtbnMgaW4gdGhlIHN0YXRlIHRhYmxlIGZvcgorLy8gICAgICAgICAgICAgICAgICAgICAgdGhlIFJCQkkgZXhlY3V0aW9uIGVuZ2luZS4gIEFsbCBjaGFyYWN0ZXJzIHdpdGhpbiBvbmUKKy8vICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZXNlIHNldHMgYmVsb25nIHRvIHRoZSBzYW1lIHNldCBvZiB0aGUgb3JpZ2luYWwKKy8vICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRzIGZyb20gdGhlIHVzZXIncyBydWxlcy4KKy8vICAgICAgICAgICAgICAgICAgIC0gIGNvbnN0cnVjdCB0aGUgdHJpZSB0YWJsZSB0aGF0IG1hcHMgaW5wdXQgY2hhcmFjdGVycworLy8gICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIGluZGV4IG9mIHRoZSBtYXRjaGluZyBub24tb3ZlcmxhcHBpbmcgc2V0IG9mIHNldCBmcm9tCisvLyAgICAgICAgICAgICAgICAgICAgICB0aGUgcHJldmlvdXMgc3RlcC4KKy8vCitjbGFzcyBSQkJJU2V0QnVpbGRlciB7CisgICAgc3RhdGljIGNsYXNzIFJhbmdlRGVzY3JpcHRvciAgeworICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgZlN0YXJ0Q2hhcjsgICAgICAvLyBTdGFydCBvZiByYW5nZSwgdW5pY29kZSAzMiBiaXQgdmFsdWUuCisgICAgICAgICAgIGludCAgICAgICAgICAgICAgICBmRW5kQ2hhcjsgICAgICAgIC8vIEVuZCBvZiByYW5nZSwgdW5pY29kZSAzMiBiaXQgdmFsdWUuCisgICAgICAgICAgIGludCAgICAgICAgICAgICAgICBmTnVtOyAgICAgICAgICAgIC8vIHJ1bnRpbWUtbWFwcGVkIGlucHV0IHZhbHVlIGZvciB0aGlzIHJhbmdlLgorICAgICAgICAgICBMaXN0ICAgICAgICAgICAgICAgZkluY2x1ZGVzU2V0czsgICAvLyB2ZWN0b3Igb2YgdGhlIHRoZSBvcmlnaW5hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBVbmljb2RlIHNldHMgdGhhdCBpbmNsdWRlIHRoaXMgcmFuZ2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAoQ29udGFpbnMgcHRycyB0byB1c2V0IG5vZGVzKQorICAgICAgICAgICAgUmFuZ2VEZXNjcmlwdG9yICAgZk5leHQ7ICAgICAgICAgICAvLyBOZXh0IFJhbmdlRGVzY3JpcHRvciBpbiB0aGUgbGlua2VkIGxpc3QuCisKKyAgICAgICAgICAgIFJhbmdlRGVzY3JpcHRvcigpIHsKKyAgICAgICAgICAgICAgICBmSW5jbHVkZXNTZXRzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBSYW5nZURlc2NyaXB0b3IoUmFuZ2VEZXNjcmlwdG9yIG90aGVyKSB7CisgICAgICAgICAgICAgICAgZlN0YXJ0Q2hhciA9IG90aGVyLmZTdGFydENoYXI7CisgICAgICAgICAgICAgICAgZkVuZENoYXIgICA9IG90aGVyLmZFbmRDaGFyOworICAgICAgICAgICAgICAgIGZOdW0gICAgICAgPSBvdGhlci5mTnVtOworICAgICAgICAgICAgICAgIGZJbmNsdWRlc1NldHMgPSBuZXcgQXJyYXlMaXN0KG90aGVyLmZJbmNsdWRlc1NldHMpOworICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICAgICAgICAgUmFuZ2VEZXNyaXB0b3I6OnNwbGl0KCkKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIHZvaWQgc3BsaXQoaW50IHdoZXJlKSB7CisgICAgICAgICAgICAgICAgQXNzZXJ0LmFzc3J0KHdoZXJlPmZTdGFydENoYXIgJiYgd2hlcmU8PWZFbmRDaGFyKTsKKyAgICAgICAgICAgICAgICBSYW5nZURlc2NyaXB0b3IgbnIgPSBuZXcgUmFuZ2VEZXNjcmlwdG9yKHRoaXMpOworIAorICAgICAgICAgICAgICAgIC8vICBSYW5nZURlc2NyaXB0b3IgY29weSBjb25zdHJ1Y3RvciBjb3BpZXMgYWxsIGZpZWxkcy4KKyAgICAgICAgICAgICAgICAvLyAgT25seSBuZWVkIHRvIHVwZGF0ZSB0aG9zZSB0aGF0IGFyZSBkaWZmZXJlbnQgYWZ0ZXIgdGhlIHNwbGl0LgorICAgICAgICAgICAgICAgIG5yLmZTdGFydENoYXIgPSB3aGVyZTsKKyAgICAgICAgICAgICAgICB0aGlzLmZFbmRDaGFyID0gd2hlcmUtMTsKKyAgICAgICAgICAgICAgICBuci5mTmV4dCAgICAgID0gdGhpcy5mTmV4dDsKKyAgICAgICAgICAgICAgICB0aGlzLmZOZXh0ICAgID0gbnI7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gVE9ETzogIGZJbmNsdWRlc1NldHMgaXMgbm90IHVwZGF0ZWQuICBDaGVjayBpdCBvdXQuCisgICAgICAgICAgICAgICAgLy8gICAgICAgICBQcm9iYWJseSBiZWNhdXNlIHRoZXkgaGF2ZW4ndCBiZWVuIHBvcHVsYXRlZCB5ZXQsIAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgYnV0IHN0aWxsIHNsb3BweS4KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgCisgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICAgICAgICBSYW5nZURlc2NyaXB0b3I6OnNldERpY3Rpb25hcnlGbGFnCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICAgICAgICAgQ2hhcmFjdGVyIENhdGVnb3J5IE51bWJlcnMgdGhhdCBpbmNsdWRlIGNoYXJhY3RlcnMgZnJvbQorICAgICAgICAgICAgLy8gICAgICAgICAgdGhlIG9yaWdpbmFsIFVuaWNvZGUgU2V0IG5hbWVkICJkaWN0aW9uYXJ5IiBoYXZlIGJpdCAxNAorICAgICAgICAgICAgLy8gICAgICAgICAgc2V0IHRvIDEuICBUaGUgUkJCSSBydW50aW1lIGVuZ2luZSB1c2VzIHRoaXMgdG8gdHJpZ2dlcgorICAgICAgICAgICAgLy8gICAgICAgICAgdXNlIG9mIHRoZSB3b3JkIGRpY3Rpb25hcnkuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICAgICAgICAgVGhpcyBmdW5jdGlvbiBsb29rcyB0aHJvdWdoIHRoZSBVbmljb2RlIFNldHMgdGhhdCBpdAorICAgICAgICAgICAgLy8gICAgICAgICAgKHRoZSByYW5nZSkgaW5jbHVkZXMsIGFuZCBzZXRzIHRoZSBiaXQgaW4gZk51bSB3aGVuCisgICAgICAgICAgICAvLyAgICAgICAgICAiZGljdGlvbmFyeSIgaXMgYW1vbmcgdGhlbS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICAgICAgICBUT0RPOiAgYSBmYXN0ZXIgd2F5IHdvdWxkIGJlIHRvIGZpbmQgdGhlIHNldCBub2RlIGZvcgorICAgICAgICAgICAgLy8gICAgICAgICAgImRpY3Rpb25hcnkiIGp1c3Qgb25jZSwgcmF0aGVyIHRoYW4gbG9va2luZyBpdAorICAgICAgICAgICAgLy8gICAgICAgICAgdXAgYnkgbmFtZSBldmVyeSB0aW1lLgorICAgICAgICAgICAgLy8gICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIHZvaWQgc2V0RGljdGlvbmFyeUZsYWcoKSB7CisgICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8dGhpcy5mSW5jbHVkZXNTZXRzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFJCQklOb2RlICAgICAgICB1c2V0Tm9kZSAgICA9IChSQkJJTm9kZSlmSW5jbHVkZXNTZXRzLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nICAgICAgICAgIHNldE5hbWUgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgICAgICAgIHNldFJlZiA9IHVzZXROb2RlLmZQYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChzZXRSZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgdmFyUmVmID0gc2V0UmVmLmZQYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFyUmVmICE9IG51bGwgICYmICB2YXJSZWYuZlR5cGUgPT0gUkJCSU5vZGUudmFyUmVmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TmFtZSA9IHZhclJlZi5mVGV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc2V0TmFtZS5lcXVhbHMoImRpY3Rpb25hcnkiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mTnVtIHw9IDB4NDAwMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAgICBSQkJJUnVsZUJ1aWxkZXIgICAgICAgZlJCOyAgICAgICAgICAgICAvLyBUaGUgUkJCSSBSdWxlIENvbXBpbGVyIHRoYXQgb3ducyB1cy4KKyAgICBSYW5nZURlc2NyaXB0b3IgICAgICAgZlJhbmdlTGlzdDsgICAgICAvLyBIZWFkIG9mIHRoZSBsaW5rZWQgbGlzdCBvZiBSYW5nZURlc2NyaXB0b3JzCisKKyAgICBJbnRUcmllQnVpbGRlciAgICAgICAgZlRyaWU7ICAgICAgICAgICAvLyBUaGUgbWFwcGluZyBUUklFIHRoYXQgaXMgdGhlIGVuZCByZXN1bHQgb2YgcHJvY2Vzc2luZworICAgIGludCAgICAgICAgICAgICAgICAgIGZUcmllU2l6ZTsgICAgICAgIC8vICB0aGUgVW5pY29kZSBTZXRzLgorCisgICAgLy8gR3JvdXBzIGNvcnJlc3BvbmQgdG8gY2hhcmFjdGVyIGNhdGVnb3JpZXMgLQorICAgIC8vICAgICAgIGdyb3VwcyBvZiByYW5nZXMgdGhhdCBhcmUgaW4gdGhlIHNhbWUgb3JpZ2luYWwgVW5pY29kZVNldHMuCisgICAgLy8gICAgICAgZkdyb3VwQ291bnQgaXMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHVzZWQgZ3JvdXAuCisgICAgLy8gICAgICAgZkdyb3VwQ291bnQrMSBpcyBhbHNvIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgUkJCSSBzdGF0ZSB0YWJsZSBiZWluZyBjb21waWxlZC4KKyAgICAvLyAgICAgICBTdGF0ZSB0YWJsZSBjb2x1bW4gMCBpcyBub3QgdXNlZC4gIENvbHVtbiAxIGlzIGZvciBlbmQtb2YtaW5wdXQuCisgICAgLy8gICAgICAgY29sdW1uIDIgaXMgZm9yIGdyb3VwIDAuICBGdW5ueSBjb3VudGluZy4KKyAgICBpbnQgICAgICAgICAgICAgICAgZkdyb3VwQ291bnQ7CisKKyAgICBib29sZWFuICAgICAgICAgICAgIGZTYXdCT0Y7CisgICAgCisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgIFJCQklTZXRCdWlsZGVyIENvbnN0cnVjdG9yCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFJCQklTZXRCdWlsZGVyKFJCQklSdWxlQnVpbGRlciByYikKKyAgICB7CisgICAgICAgIGZSQiAgICAgICAgICAgICA9IHJiOworICAgIH0KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgICAgICBidWlsZCAgICAgICAgICBCdWlsZCB0aGUgbGlzdCBvZiBub24tb3ZlcmxhcHBpbmcgY2hhcmFjdGVyIHJhbmdlcworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBVbmljb2RlIFNldHMuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZvaWQgYnVpbGQoKSB7CisgICAgICAgIFJCQklOb2RlICAgICAgICB1c2V0Tm9kZTsKKyAgICAgICAgUmFuZ2VEZXNjcmlwdG9yIHJsUmFuZ2U7CisKKyAgICAgICAgaWYgKGZSQi5mRGVidWdFbnYhPW51bGwgICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigidXNldHMiKT49MCkge3ByaW50U2V0cygpO30KKworICAgICAgICAvLyAgSW5pdGlhbGl6ZSB0aGUgcHJvY2VzcyBieSBjcmVhdGluZyBhIHNpbmdsZSByYW5nZSBlbmNvbXBhc3NpbmcgYWxsIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gIHRoYXQgaXMgaW4gbm8gc2V0cy4KKyAgICAgICAgLy8KKyAgICAgICAgZlJhbmdlTGlzdCAgICAgICAgICAgICAgID0gbmV3IFJhbmdlRGVzY3JpcHRvcigpOyAKKyAgICAgICAgZlJhbmdlTGlzdC5mU3RhcnRDaGFyICAgID0gMDsKKyAgICAgICAgZlJhbmdlTGlzdC5mRW5kQ2hhciAgICAgID0gMHgxMGZmZmY7CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIEZpbmQgdGhlIHNldCBvZiBub24tb3ZlcmxhcHBpbmcgcmFuZ2VzIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgLy8KKyAgICAgICAgICAgIEl0ZXJhdG9yICBuaSA9IGZSQi5mVVNldE5vZGVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAobmkuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgdXNldE5vZGUgPSAoUkJCSU5vZGUpbmkubmV4dCgpOworIAorICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgICAgICBpbnB1dFNldCAgICAgICAgICAgICA9IHVzZXROb2RlLmZJbnB1dFNldDsKKyAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICBpbnB1dFNldFJhbmdlQ291bnQgICA9IGlucHV0U2V0LmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICBpbnB1dFNldFJhbmdlSW5kZXggICA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBybFJhbmdlICAgICAgICAgICAgICA9IGZSYW5nZUxpc3Q7CisKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dFNldFJhbmdlSW5kZXggPj0gaW5wdXRTZXRSYW5nZUNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgICAgICBpbnB1dFNldFJhbmdlQmVnaW4gID0gaW5wdXRTZXQuZ2V0UmFuZ2VTdGFydChpbnB1dFNldFJhbmdlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICBpbnQgICAgICBpbnB1dFNldFJhbmdlRW5kICAgID0gaW5wdXRTZXQuZ2V0UmFuZ2VFbmQoaW5wdXRTZXRSYW5nZUluZGV4KTsKKworICAgICAgICAgICAgICAgICAgICAvLyBza2lwIG92ZXIgcmFuZ2VzIGZyb20gdGhlIHJhbmdlIGxpc3QgdGhhdCBhcmUgY29tcGxldGVseQorICAgICAgICAgICAgICAgIC8vICAgYmVsb3cgdGhlIGN1cnJlbnQgcmFuZ2UgZnJvbSB0aGUgaW5wdXQgdW5pY29kZSBzZXQuCisgICAgICAgICAgICAgICAgd2hpbGUgKHJsUmFuZ2UuZkVuZENoYXIgPCBpbnB1dFNldFJhbmdlQmVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgcmxSYW5nZSA9IHJsUmFuZ2UuZk5leHQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBmcm9tIHRoZSByYW5nZSBsaXN0IGlzIGJlZm9yZSB3aXRoCisgICAgICAgICAgICAgICAgLy8gICB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIGZyb20gdGhlIHVuaWNvZGUgc2V0LCBzcGxpdCB0aGUgcmFuZ2UgbGlzdCByYW5nZQorICAgICAgICAgICAgICAgIC8vICAgaW4gdHdvLCB3aXRoIG9uZSBwYXJ0IGJlaW5nIGJlZm9yZSAod2hvbGx5IG91dHNpZGUgb2YpIHRoZSB1bmljb2RlIHNldAorICAgICAgICAgICAgICAgIC8vICAgYW5kIHRoZSBvdGhlciBjb250YWluaW5nIHRoZSByZXN0LgorICAgICAgICAgICAgICAgIC8vICAgVGhlbiBjb250aW51ZSB0aGUgbG9vcDsgdGhlIHBvc3Qtc3BsaXQgY3VycmVudCByYW5nZSB3aWxsIHRoZW4gYmUgc2tpcHBlZAorICAgICAgICAgICAgICAgIC8vICAgICBvdmVyCisgICAgICAgICAgICAgICAgaWYgKHJsUmFuZ2UuZlN0YXJ0Q2hhciA8IGlucHV0U2V0UmFuZ2VCZWdpbikgeworICAgICAgICAgICAgICAgICAgICBybFJhbmdlLnNwbGl0KGlucHV0U2V0UmFuZ2VCZWdpbik7CisgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBTYW1lIHRoaW5nIGF0IHRoZSBlbmQgb2YgdGhlIHJhbmdlcy4uLgorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBlbmQgb2YgdGhlIHJhbmdlIGZyb20gdGhlIHJhbmdlIGxpc3QgZG9lc24ndCBjb2luY2lkZSB3aXRoCisgICAgICAgICAgICAgICAgLy8gICB0aGUgZW5kIG9mIHRoZSByYW5nZSBmcm9tIHRoZSB1bmljb2RlIHNldCwgc3BsaXQgdGhlIHJhbmdlIGxpc3QKKyAgICAgICAgICAgICAgICAvLyAgIHJhbmdlIGluIHR3by4gIFRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBzcGxpdCByYW5nZSB3aWxsIGJlCisgICAgICAgICAgICAgICAgLy8gICB3aG9sbHkgaW5zaWRlIHRoZSBVbmljb2RlIHNldC4KKyAgICAgICAgICAgICAgICBpZiAocmxSYW5nZS5mRW5kQ2hhciA+IGlucHV0U2V0UmFuZ2VFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmxSYW5nZS5zcGxpdChpbnB1dFNldFJhbmdlRW5kKzEpOworICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBUaGUgY3VycmVudCBybFJhbmdlIGlzIG5vdyBlbnRpcmVseSB3aXRoaW4gdGhlIFVuaWNvZGVTZXQgcmFuZ2UuCisgICAgICAgICAgICAgICAgLy8gQWRkIHRoaXMgdW5pY29kZSBzZXQgdG8gdGhlIGxpc3Qgb2Ygc2V0cyBmb3IgdGhpcyBybFJhbmdlCisgICAgICAgICAgICAgICAgaWYgKHJsUmFuZ2UuZkluY2x1ZGVzU2V0cy5pbmRleE9mKHVzZXROb2RlKSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBybFJhbmdlLmZJbmNsdWRlc1NldHMuYWRkKHVzZXROb2RlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIG92ZXIgcmFuZ2VzIHRoYXQgd2UgYXJlIGZpbmlzaGVkIHdpdGguCisgICAgICAgICAgICAgICAgaWYgKGlucHV0U2V0UmFuZ2VFbmQgPT0gcmxSYW5nZS5mRW5kQ2hhcikgeworICAgICAgICAgICAgICAgICAgICBpbnB1dFNldFJhbmdlSW5kZXgrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmxSYW5nZSA9IHJsUmFuZ2UuZk5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlJCLmZEZWJ1Z0VudiE9bnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInJhbmdlIik+PTApIHsgcHJpbnRSYW5nZXMoKTt9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIEdyb3VwIHRoZSBhYm92ZSByYW5nZXMsIHdpdGggZWFjaCBncm91cCBjb25zaXN0aW5nIG9mIG9uZSBvciBtb3JlCisgICAgICAgIC8vICAgIHJhbmdlcyB0aGF0IGFyZSBpbiBleGFjdGx5IHRoZSBzYW1lIHNldCBvZiBvcmlnaW5hbCBVbmljb2RlU2V0cy4KKyAgICAgICAgLy8gICAgVGhlIGdyb3VwcyBhcmUgbnVtYmVyZWQsIGFuZCB0aGVzZSBncm91cCBudW1iZXJzIGFyZSB0aGUgc2V0IG9mCisgICAgICAgIC8vICAgIGlucHV0IHN5bWJvbHMgcmVjb2duaXplZCBieSB0aGUgcnVuLXRpbWUgc3RhdGUgbWFjaGluZS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgTnVtYmVyaW5nOiAjIDAgIChzdGF0ZSB0YWJsZSBjb2x1bW4gMCkgaXMgdW51c2VkLgorICAgICAgICAvLyAgICAgICAgICAgICAgICMgMSAgaXMgcmVzZXJ2ZWQgLSB0YWJsZSBjb2x1bW4gMSBpcyBmb3IgZW5kLW9mLWlucHV0CisgICAgICAgIC8vICAgICAgICAgICAgICAgIyAyICBpcyByZXNlcnZlZCAtIHRhYmxlIGNvbHVtbiAyIGlzIGZvciBiZWdpbm5pbmctaW4taW5wdXQKKyAgICAgICAgLy8gICAgICAgICAgICAgICAjIDMgIGlzIHRoZSBmaXJzdCByYW5nZSBsaXN0LgorICAgICAgICAvLworICAgICAgICBSYW5nZURlc2NyaXB0b3IgcmxTZWFyY2hSYW5nZTsKKyAgICAgICAgZm9yIChybFJhbmdlID0gZlJhbmdlTGlzdDsgcmxSYW5nZSE9bnVsbDsgcmxSYW5nZT1ybFJhbmdlLmZOZXh0KSB7CisgICAgICAgICAgICBmb3IgKHJsU2VhcmNoUmFuZ2U9ZlJhbmdlTGlzdDsgcmxTZWFyY2hSYW5nZSAhPSBybFJhbmdlOyBybFNlYXJjaFJhbmdlPXJsU2VhcmNoUmFuZ2UuZk5leHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmxSYW5nZS5mSW5jbHVkZXNTZXRzLmVxdWFscyhybFNlYXJjaFJhbmdlLmZJbmNsdWRlc1NldHMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJsUmFuZ2UuZk51bSA9IHJsU2VhcmNoUmFuZ2UuZk51bTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJsUmFuZ2UuZk51bSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZkdyb3VwQ291bnQgKys7CisgICAgICAgICAgICAgICAgcmxSYW5nZS5mTnVtID0gZkdyb3VwQ291bnQrMjsgCisgICAgICAgICAgICAgICAgcmxSYW5nZS5zZXREaWN0aW9uYXJ5RmxhZygpOworICAgICAgICAgICAgICAgIGFkZFZhbFRvU2V0cyhybFJhbmdlLmZJbmNsdWRlc1NldHMsIGZHcm91cENvdW50KzIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSGFuZGxlIGlucHV0IHNldHMgdGhhdCBjb250YWluIHRoZSBzcGVjaWFsIHN0cmluZyB7ZW9mfS4KKyAgICAgICAgLy8gICBDb2x1bW4gMSBvZiB0aGUgc3RhdGUgdGFibGUgaXMgcmVzZXJ2ZWQgZm9yIEVPRiBvbiBpbnB1dC4KKyAgICAgICAgLy8gICBDb2x1bW4gMiBpcyByZXNlcnZlZCBmb3IgYmVmb3JlLXRoZS1zdGFydC1pbnB1dC4KKyAgICAgICAgLy8gICAgICAgICAgICAoVGhpcyBjb2x1bW4gY2FuIGJlIG9wdGltaXplZCBhd2F5IGxhdGVyIGlmIHRoZXJlIGFyZSBubyBydWxlCisgICAgICAgIC8vICAgICAgICAgICAgIHJlZmVyZW5jZXMgdG8ge2JvZn0uKQorICAgICAgICAvLyAgIEFkZCB0aGlzIGNvbHVtbiB2YWx1ZSAoMSBvciAyKSB0byB0aGUgZXF1aXZhbGVudCBleHByZXNzaW9uCisgICAgICAgIC8vICAgICBzdWJ0cmVlIGZvciBlYWNoIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyB0aGUgc3RyaW5nIHtlb2Z9CisgICAgICAgIC8vICAgQmVjYXVzZSB7Ym9mfSBhbmQge2VvZn0gYXJlIG5vdCBhIGNoYXJhY3RlcnMgaW4gdGhlIG5vcm1hbCBzZW5zZSwKKyAgICAgICAgLy8gICB0aGV5IGRvZXNuJ3QgYWZmZWN0IHRoZSBjb21wdXRhdGlvbiBvZiByYW5nZXMgb3IgVFJJRS4KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBlb2ZTdHJpbmcgPSAiZW9mIjsKKyAgICAgICAgU3RyaW5nIGJvZlN0cmluZyA9ICJib2YiOworCisgICAgICAgIG5pID0gZlJCLmZVU2V0Tm9kZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKG5pLmhhc05leHQoKSkgeworICAgICAgICAgICAgdXNldE5vZGUgPSAoUkJCSU5vZGUgKW5pLm5leHQoKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgICAgICBpbnB1dFNldCA9IHVzZXROb2RlLmZJbnB1dFNldDsKKyAgICAgICAgICAgIGlmIChpbnB1dFNldC5jb250YWlucyhlb2ZTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgYWRkVmFsVG9TZXQodXNldE5vZGUsIDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlucHV0U2V0LmNvbnRhaW5zKGJvZlN0cmluZykpIHsKKyAgICAgICAgICAgICAgICBhZGRWYWxUb1NldCh1c2V0Tm9kZSwgMik7CisgICAgICAgICAgICAgICAgZlNhd0JPRiA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInJncm91cCIpPj0wKSB7cHJpbnRSYW5nZUdyb3VwcygpO30KKyAgICAgICAgaWYgKGZSQi5mRGVidWdFbnYhPW51bGwgICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigiZXNldHMiKT49MCkge3ByaW50U2V0cygpO30KKworCisgICAgICAgIC8vSW50VHJpZUJ1aWxkZXIoaW50IGFsaWFzZGF0YVtdLCBpbnQgbWF4ZGF0YWxlbmd0aCwgCisgICAgICAgIC8vICAgICAgICBpbnQgaW5pdGlhbHZhbHVlLCBpbnQgbGVhZHVuaXR2YWx1ZSwgCisgICAgICAgIC8vICAgICAgICBib29sZWFuIGxhdGluMWxpbmVhcikKKyAgICAgICAgCisgICAgICAgIGZUcmllID0gbmV3IEludFRyaWVCdWlsZGVyKG51bGwsICAgLy8gICBEYXRhIGFycmF5ICAodXRyaWUgd2lsbCBhbGxvY2F0ZSBvbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMCwgIC8vICAgTWF4IERhdGEgTGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgICAgIC8vICAgSW5pdGlhbCB2YWx1ZSBmb3IgYWxsIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgICAgIC8vICAgTGVhZCBTdXJyb2dhdGUgdW5pdCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7ICAgLy8gICBLZWVwIExhdGluIDEgaW4gc2VwYXJhdGVseS4KKyAgICAgICAgCisgICAgICAgIGZvciAocmxSYW5nZSA9IGZSYW5nZUxpc3Q7IHJsUmFuZ2UhPW51bGw7IHJsUmFuZ2U9cmxSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgZlRyaWUuc2V0UmFuZ2UocmxSYW5nZS5mU3RhcnRDaGFyLCBybFJhbmdlLmZFbmRDaGFyKzEsIHJsUmFuZ2UuZk51bSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gICBSQkJJRGF0YU1hbmlwdWxhdGUgIEEgbGl0dGxlIGludGVybmFsIGNsYXNzIG5lZWRlZCBvbmx5IHRvIHdyYXAgb2YgdGhlIAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBnZXRGb2xkZWRWYWx1ZSgpIGZ1bmN0aW9uIG5lZWRlZCBmb3IgVHJpZSB0YWJsZSBjcmVhdGlvbi4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIGNsYXNzIFJCQklEYXRhTWFuaXB1bGF0ZSBpbXBsZW1lbnRzIEludFRyaWVCdWlsZGVyLkRhdGFNYW5pcHVsYXRlIHsKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkZWRWYWx1ZShpbnQgc3RhcnQsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIGludCAgdmFsdWU7CisgICAgICAgICAgICBpbnQgIGxpbWl0OworICAgICAgICAgICAgYm9vbGVhbiBbXSBpbkJsb2NrWmVybyA9IG5ldyBib29sZWFuWzFdOworICAgICAgICAgICAgCisgICAgICAgICAgICBsaW1pdCA9IHN0YXJ0ICsgMHg0MDA7CisgICAgICAgICAgICB3aGlsZShzdGFydDxsaW1pdCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gZlRyaWUuZ2V0VmFsdWUoc3RhcnQsIGluQmxvY2taZXJvKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5CbG9ja1plcm9bMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gSW50VHJpZUJ1aWxkZXIuREFUQV9CTE9DS19MRU5HVEg7ICAKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mZnNldCB8IDB4MDgwMDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgIH0KKyAgICB9CisgICAgUkJCSURhdGFNYW5pcHVsYXRlIGRtID0gbmV3IFJCQklEYXRhTWFuaXB1bGF0ZSgpOworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgICAgIGdldFRyaWVTaXplKCkgICAgUmV0dXJuIHRoZSBzaXplIHRoYXQgd2lsbCBiZSByZXF1aXJlZCB0byBzZXJpYWxpemUgdGhlIFRyaWUuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgaW50IGdldFRyaWVTaXplKCkgIHsKKyAgICAgICAgaW50IHNpemUgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gVGhlIHRyaWUgc2VyaWFsaXplIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNpemUgb2YgdGhlIGRhdGEgd3JpdHRlbi4KKyAgICAgICAgICAgIC8vICAgIG51bGwgb3V0cHV0IHN0cmVhbSBzYXlzIGdpdmUgc2l6ZSBvbmx5LCBkb24ndCBhY3R1YWxseSB3cml0ZSBhbnl0aGluZy4KKyAgICAgICAgICAgIHNpemUgPSBmVHJpZS5zZXJpYWxpemUobnVsbCwgdHJ1ZSwgZG0gKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgQXNzZXJ0LmFzc3J0IChmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgICAgICAgICBzZXJpYWxpemVUcmllKCkgICBXcml0ZSB0aGUgc2VyaWFsaXplZCB0cmllIHRvIGFuIG91dHB1dCBzdHJlYW0KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB2b2lkIHNlcmlhbGl6ZVRyaWUoT3V0cHV0U3RyZWFtIG9zKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBmVHJpZS5zZXJpYWxpemUob3MsIHRydWUsIGRtICk7CisgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gICAgICBhZGRWYWxUb1NldHMgICAgIEFkZCBhIHJ1bnRpbWUtbWFwcGVkIGlucHV0IHZhbHVlIHRvIGVhY2ggdXNldCBmcm9tIGEKKyAgICAvLyAgICAgIGxpc3Qgb2YgdXNldCBub2Rlcy4gKHZhbCBjb3JyZXNwb25kcyB0byBhIHN0YXRlIHRhYmxlIGNvbHVtbi4pCisgICAgLy8gICAgICBGb3IgZWFjaCBvZiB0aGUgb3JpZ2luYWwgVW5pY29kZSBzZXRzIC0gd2hpY2ggY29ycmVzcG9uZAorICAgIC8vICAgICAgZGlyZWN0bHkgdG8gdXNldCBub2RlcyAtIGEgbG9naWNhbGx5IGVxdWl2YWxlbnQgZXhwcmVzc2lvbgorICAgIC8vICAgICAgaXMgY29uc3RydWN0ZWQgaW4gdGVybXMgb2YgdGhlIHJlbWFwcGVkIHJ1bnRpbWUgaW5wdXQKKyAgICAvLyAgICAgIHN5bWJvbCBzZXQuICBUaGlzIGZ1bmN0aW9uIGFkZHMgb25lIHJ1bnRpbWUgaW5wdXQgc3ltYm9sIHRvCisgICAgLy8gICAgICBhIGxpc3Qgb2Ygc2V0cy4KKyAgICAvLworICAgIC8vICAgICAgVGhlICJsb2dpY2FsbHkgZXF1aXZhbGVudCBleHByZXNzaW9uIiBpcyB0aGUgdHJlZSBmb3IgYW4KKyAgICAvLyAgICAgIG9yLWluZyB0b2dldGhlciBvZiBhbGwgb2YgdGhlIHN5bWJvbHMgdGhhdCBnbyBpbnRvIHRoZSBzZXQuCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZvaWQgIGFkZFZhbFRvU2V0cyhMaXN0IHNldHMsIGludCB2YWwpIHsKKyAgICAgICAgaW50ICAgICAgIGl4OworCisgICAgICAgIGZvciAoaXg9MDsgaXg8c2V0cy5zaXplKCk7IGl4KyspIHsKKyAgICAgICAgICAgIFJCQklOb2RlIHVzZXROb2RlID0gKFJCQklOb2RlIClzZXRzLmdldChpeCk7CisgICAgICAgICAgICBhZGRWYWxUb1NldCh1c2V0Tm9kZSwgdmFsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgIGFkZFZhbFRvU2V0KFJCQklOb2RlIHVzZXROb2RlLCBpbnQgdmFsKSB7CisgICAgICAgIFJCQklOb2RlIGxlYWZOb2RlID0gbmV3IFJCQklOb2RlKFJCQklOb2RlLmxlYWZDaGFyKTsKKyAgICAgICAgbGVhZk5vZGUuZlZhbCA9IHZhbDsKKyAgICAgICAgaWYgKHVzZXROb2RlLmZMZWZ0Q2hpbGQgPT0gbnVsbCkgeworICAgICAgICAgICAgdXNldE5vZGUuZkxlZnRDaGlsZCA9IGxlYWZOb2RlOworICAgICAgICAgICAgbGVhZk5vZGUuZlBhcmVudCAgICA9IHVzZXROb2RlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlcmUgYXJlIGFscmVhZHkgaW5wdXQgc3ltYm9scyBwcmVzZW50IGZvciB0aGlzIHNldC4KKyAgICAgICAgICAgIC8vIFNldCB1cCBhbiBPUiBub2RlLCB3aXRoIHRoZSBwcmV2aW91cyBzdHVmZiBhcyB0aGUgbGVmdCBjaGlsZAorICAgICAgICAgICAgLy8gICBhbmQgdGhlIG5ldyB2YWx1ZSBhcyB0aGUgcmlnaHQgY2hpbGQuCisgICAgICAgICAgICBSQkJJTm9kZSBvck5vZGUgPSBuZXcgUkJCSU5vZGUoUkJCSU5vZGUub3BPcik7CisgICAgICAgICAgICBvck5vZGUuZkxlZnRDaGlsZCAgPSB1c2V0Tm9kZS5mTGVmdENoaWxkOworICAgICAgICAgICAgb3JOb2RlLmZSaWdodENoaWxkID0gbGVhZk5vZGU7CisgICAgICAgICAgICBvck5vZGUuZkxlZnRDaGlsZC5mUGFyZW50ICA9IG9yTm9kZTsKKyAgICAgICAgICAgIG9yTm9kZS5mUmlnaHRDaGlsZC5mUGFyZW50ID0gb3JOb2RlOworICAgICAgICAgICAgdXNldE5vZGUuZkxlZnRDaGlsZCA9IG9yTm9kZTsKKyAgICAgICAgICAgIG9yTm9kZS5mUGFyZW50ID0gdXNldE5vZGU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgZ2V0TnVtQ2hhckNhdGVnb3JpZXMKKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgaW50ICBnZXROdW1DaGFyQ2F0ZWdvcmllcygpICB7CisgICAgICAgIHJldHVybiBmR3JvdXBDb3VudCArIDM7CisgICAgfQorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gICAgICAgICAgIHNhd0JPRgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBib29sZWFuICBzYXdCT0YoKSAgeworICAgICAgICByZXR1cm4gZlNhd0JPRjsKKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgZ2V0Rmlyc3RDaGFyICAgICAgR2l2ZW4gYSBydW50aW1lIFJCQkkgY2hhcmFjdGVyIGNhdGVnb3J5LCBmaW5kCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmaXJzdCBVQ2hhcjMyIHRoYXQgaXMgaW4gdGhlIHNldCBvZiBjaGFycyAKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGNhdGVnb3J5LgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgaW50ICBnZXRGaXJzdENoYXIoaW50IGNhdGVnb3J5KSAgeworICAgICAgICBSYW5nZURlc2NyaXB0b3IgICBybFJhbmdlOworICAgICAgICBpbnQgICAgICAgICAgICByZXRWYWwgPSAtMTsKKyAgICAgICAgZm9yIChybFJhbmdlID0gZlJhbmdlTGlzdDsgcmxSYW5nZSE9bnVsbDsgcmxSYW5nZT1ybFJhbmdlLmZOZXh0KSB7CisgICAgICAgICAgICBpZiAocmxSYW5nZS5mTnVtID09IGNhdGVnb3J5KSB7CisgICAgICAgICAgICAgICAgcmV0VmFsID0gcmxSYW5nZS5mU3RhcnRDaGFyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorCisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgcHJpbnRSYW5nZXMgICAgICAgIEEgZGVidWdnaW5nIGZ1bmN0aW9uLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcCBvdXQgYWxsIG9mIHRoZSByYW5nZSBkZWZpbml0aW9ucy4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHZvaWQgcHJpbnRSYW5nZXMoKSB7CisgICAgICAgIFJhbmdlRGVzY3JpcHRvciAgICAgICBybFJhbmdlOworICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgIGk7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cbiBOb25vdmVybGFwcGluZyBSYW5nZXMgLi4uXG4iKTsKKyAgICAgICAgZm9yIChybFJhbmdlID0gZlJhbmdlTGlzdDsgcmxSYW5nZSE9bnVsbDsgcmxSYW5nZT1ybFJhbmdlLmZOZXh0KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIiArIHJsUmFuZ2UuZk51bSArICIgICAiICsgKGludClybFJhbmdlLmZTdGFydENoYXIgKyAiLSIgKyAoaW50KXJsUmFuZ2UuZkVuZENoYXIpOworCisgICAgICAgICAgICBmb3IgKGk9MDsgaTxybFJhbmdlLmZJbmNsdWRlc1NldHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSAgICAgICB1c2V0Tm9kZSAgICA9IChSQkJJTm9kZSApcmxSYW5nZS5mSW5jbHVkZXNTZXRzLmdldChpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgICAgICAgICBzZXROYW1lID0gImFub24iOworICAgICAgICAgICAgICAgIFJCQklOb2RlICAgICAgIHNldFJlZiA9IHVzZXROb2RlLmZQYXJlbnQ7CisgICAgICAgICAgICAgICAgaWYgKHNldFJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIFJCQklOb2RlIHZhclJlZiA9IHNldFJlZi5mUGFyZW50OworICAgICAgICAgICAgICAgICAgICBpZiAodmFyUmVmICE9IG51bGwgICYmICB2YXJSZWYuZlR5cGUgPT0gUkJCSU5vZGUudmFyUmVmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXROYW1lID0gdmFyUmVmLmZUZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc2V0TmFtZSk7IFN5c3RlbS5vdXQucHJpbnQoIiAgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOworICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gICAgICAgICAgIHByaW50UmFuZ2VHcm91cHMgICAgIEEgZGVidWdnaW5nIGZ1bmN0aW9uLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdW1wIG91dCBhbGwgb2YgdGhlIHJhbmdlIGdyb3Vwcy4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHZvaWQgcHJpbnRSYW5nZUdyb3VwcygpIHsKKyAgICAgICAgUmFuZ2VEZXNjcmlwdG9yICAgICAgIHJsUmFuZ2U7CisgICAgICAgIFJhbmdlRGVzY3JpcHRvciAgICAgICB0UmFuZ2U7CisgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgaTsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBsYXN0UHJpbnRlZEdyb3VwTnVtID0gMDsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcblJhbmdlcyBncm91cGVkIGJ5IFVuaWNvZGUgU2V0IE1lbWJlcnNoaXAuLi5cbiIpOworICAgICAgICBmb3IgKHJsUmFuZ2UgPSBmUmFuZ2VMaXN0OyBybFJhbmdlIT1udWxsOyBybFJhbmdlPXJsUmFuZ2UuZk5leHQpIHsKKyAgICAgICAgICAgIGludCBncm91cE51bSA9IHJsUmFuZ2UuZk51bSAmIDB4YmZmZjsKKyAgICAgICAgICAgIGlmIChncm91cE51bSA+IGxhc3RQcmludGVkR3JvdXBOdW0pIHsKKyAgICAgICAgICAgICAgICBsYXN0UHJpbnRlZEdyb3VwTnVtID0gZ3JvdXBOdW07CisgICAgICAgICAgICAgICAgaWYgKGdyb3VwTnVtPDEwKSB7U3lzdGVtLm91dC5wcmludCgiICIpO30KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGdyb3VwTnVtICsgIiAiKTsKKworICAgICAgICAgICAgICAgIGlmICgocmxSYW5nZS5mTnVtICYgMHg0MDAwKSAhPSAwKSB7IFN5c3RlbS5vdXQucHJpbnQoIiA8RElDVD4gIik7fQorCisgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8cmxSYW5nZS5mSW5jbHVkZXNTZXRzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFJCQklOb2RlICAgICAgIHVzZXROb2RlICAgID0gKFJCQklOb2RlIClybFJhbmdlLmZJbmNsdWRlc1NldHMuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgICAgICAgICBzZXROYW1lID0gImFub24iOworICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZSAgICAgICBzZXRSZWYgPSB1c2V0Tm9kZS5mUGFyZW50OworICAgICAgICAgICAgICAgICAgICBpZiAoc2V0UmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJCQklOb2RlIHZhclJlZiA9IHNldFJlZi5mUGFyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhclJlZiAhPSBudWxsICAmJiAgdmFyUmVmLmZUeXBlID09IFJCQklOb2RlLnZhclJlZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE5hbWUgPSB2YXJSZWYuZlRleHQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzZXROYW1lKTsgU3lzdGVtLm91dC5wcmludCgiICIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgICAgIGZvciAodFJhbmdlID0gcmxSYW5nZTsgdFJhbmdlICE9IG51bGw7IHRSYW5nZSA9IHRSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodFJhbmdlLmZOdW0gPT0gcmxSYW5nZS5mTnVtKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSsrICUgNSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4gICAgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEhleCgoaW50KXRSYW5nZS5mU3RhcnRDaGFyLCAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCItIik7CisgICAgICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEhleCgoaW50KXRSYW5nZS5mRW5kQ2hhciwgMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgICAgICBwcmludFNldHMgICAgICAgICAgQSBkZWJ1Z2dpbmcgZnVuY3Rpb24uCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdW1wIG91dCBhbGwgb2YgdGhlIHNldCBkZWZpbml0aW9ucy4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHZvaWQgcHJpbnRTZXRzKCkgeworICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgaTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cblVuaWNvZGUgU2V0cyBMaXN0XG4tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworICAgICAgICBmb3IgKGk9MDsgaTxmUkIuZlVTZXROb2Rlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgUkJCSU5vZGUgICAgICAgIHVzZXROb2RlOworICAgICAgICAgICAgUkJCSU5vZGUgICAgICAgIHNldFJlZjsKKyAgICAgICAgICAgIFJCQklOb2RlICAgICAgICB2YXJSZWY7CisgICAgICAgICAgICBTdHJpbmcgICAgICAgICAgc2V0TmFtZTsKKworICAgICAgICAgICAgdXNldE5vZGUgPSAoUkJCSU5vZGUgKWZSQi5mVVNldE5vZGVzLmdldChpKTsKKworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50KCIgIiArIGkgKyAiICAgIik7CisgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludCgyLCBpKTsKKyAgICAgICAgICAgIHNldE5hbWUgPSAiYW5vbnltb3VzIjsKKyAgICAgICAgICAgIHNldFJlZiA9IHVzZXROb2RlLmZQYXJlbnQ7CisgICAgICAgICAgICBpZiAoc2V0UmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB2YXJSZWYgPSBzZXRSZWYuZlBhcmVudDsKKyAgICAgICAgICAgICAgICBpZiAodmFyUmVmICE9IG51bGwgICYmICB2YXJSZWYuZlR5cGUgPT0gUkJCSU5vZGUudmFyUmVmKSB7CisgICAgICAgICAgICAgICAgICAgIHNldE5hbWUgPSB2YXJSZWYuZlRleHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAiICsgc2V0TmFtZSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQodXNldE5vZGUuZlRleHQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4iKTsKKyAgICAgICAgICAgIGlmICh1c2V0Tm9kZS5mTGVmdENoaWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB1c2V0Tm9kZS5mTGVmdENoaWxkLnByaW50VHJlZSh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklTeW1ib2xUYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVN5bWJvbFRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmVhM2IzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklTeW1ib2xUYWJsZS5qYXZhCkBAIC0wLDAgKzEsMjA0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoKKyogICBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKK2NsYXNzIFJCQklTeW1ib2xUYWJsZSBpbXBsZW1lbnRzIFN5bWJvbFRhYmxleworICAgIAorICAgIFN0cmluZyAgICAgICAgICAgICAgIGZSdWxlczsKKyAgICBIYXNoTWFwICAgICAgICAgICAgICBmSGFzaFRhYmxlOworICAgIFJCQklSdWxlU2Nhbm5lciAgICAgIGZSdWxlU2Nhbm5lcjsKKworICAgIC8vIFRoZXNlIG5leHQgdHdvIGZpZWxkcyBhcmUgcGFydCBvZiB0aGUgbWVjaGFuaXNtIGZvciBwYXNzaW5nIHJlZmVyZW5jZXMgdG8KKyAgICAvLyAgIGFscmVhZHktY29uc3RydWN0ZWQgVW5pY29kZVNldHMgYmFjayB0byB0aGUgVW5pY29kZVNldCBjb25zdHJ1Y3RvcgorICAgIC8vICAgd2hlbiB0aGUgcGF0dGVybiBpbmNsdWRlcyAkdmFyaWFibGUgcmVmZXJlbmNlcy4KKyAgICBTdHJpbmcgICAgICAgICAgICAgICBmZmZmU3RyaW5nOworICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZDYWNoZWRTZXRMb29rdXA7CisgICAgCisgICAgCisgICAgCisgICAgc3RhdGljIGNsYXNzIFJCQklTeW1ib2xUYWJsZUVudHJ5ICB7IAorICAgICAgICBTdHJpbmcgICAgICAgICAga2V5OworICAgICAgICBSQkJJTm9kZSAgICAgICAgdmFsOworICAgIH0KKworICAgIAorICAgIFJCQklTeW1ib2xUYWJsZShSQkJJUnVsZVNjYW5uZXIgcnMsIFN0cmluZyBydWxlcykgeworICAgICAgICBmUnVsZXMgPSBydWxlczsKKyAgICAgICAgZlJ1bGVTY2FubmVyID0gcnM7CisgICAgICAgIGZIYXNoVGFibGUgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBmZmZmU3RyaW5nID0gIlx1ZmZmZiI7CisgICAgfQorCisgICAgLy8KKyAgICAvLyAgUkJCSVN5bWJvbFRhYmxlOjpsb29rdXAgICAgICAgVGhpcyBmdW5jdGlvbiBmcm9tIHRoZSBhYnN0cmFjdCBzeW1ib2wgdGFibGUgaW50ZWZhY2UKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3MgdXAgYSB2YXJpYWJsZSBuYW1lIGFuZCByZXR1cm5zIGEgVW5pY29kZVN0cmluZworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluaW5nIHRoZSBzdWJzdGl0dXRpb24gdGV4dC4KKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFyaWFibGUgbmFtZSBkb2VzIE5PVCBpbmNsdWRlIHRoZSBsZWFkaW5nICQuCisgICAgLy8KKyAgICBwdWJsaWMgY2hhcltdIGxvb2t1cChTdHJpbmcgcykgeworICAgICAgICBSQkJJU3ltYm9sVGFibGVFbnRyeSBlbDsKKyAgICAgICAgUkJCSU5vZGUgdmFyUmVmTm9kZTsKKyAgICAgICAgUkJCSU5vZGUgZXhwck5vZGU7CisKKyAgICAgICAgUkJCSU5vZGUgdXNldE5vZGU7CisgICAgICAgIFN0cmluZyByZXRTdHJpbmc7CisKKyAgICAgICAgZWwgPSAoUkJCSVN5bWJvbFRhYmxlRW50cnkpIGZIYXNoVGFibGUuZ2V0KHMpOworICAgICAgICBpZiAoZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBXYWxrIHRocm91Z2ggYW55IGNoYWluIG9mIHZhcmlhYmxlIGFzc2lnbm1lbnRzIHRoYXQgdWx0aW1hdGVseSByZXNvbHZlIHRvIGEgU2V0IFJlZi4KKyAgICAgICAgdmFyUmVmTm9kZSA9IGVsLnZhbDsKKyAgICAgICAgd2hpbGUgKHZhclJlZk5vZGUuZkxlZnRDaGlsZC5mVHlwZSA9PSBSQkJJTm9kZS52YXJSZWYpIHsKKyAgICAgICAgICAgIHZhclJlZk5vZGUgPSB2YXJSZWZOb2RlLmZMZWZ0Q2hpbGQ7CisgICAgICAgIH0KKworICAgICAgICBleHByTm9kZSA9IHZhclJlZk5vZGUuZkxlZnRDaGlsZDsgLy8gUm9vdCBub2RlIG9mIGV4cHJlc3Npb24gZm9yIHZhcmlhYmxlCisgICAgICAgIGlmIChleHByTm9kZS5mVHlwZSA9PSBSQkJJTm9kZS5zZXRSZWYpIHsKKyAgICAgICAgICAgIC8vIFRoZSAkdmFyaWFibGUgcmVmZXJzIHRvIGEgc2luZ2xlIFVuaWNvZGVTZXQKKyAgICAgICAgICAgIC8vICAgcmV0dXJuIHRoZSBmZmZmU3RyaW5nLCB3aGljaCB3aWxsIHN1YnNlcXVlbnRseSBiZSBpbnRlcnByZXRlZCBhcyBhCisgICAgICAgICAgICAvLyAgIHN0YW5kLWluIGNoYXJhY3RlciBmb3IgdGhlIHNldCBieSBSQkJJU3ltYm9sVGFibGU6Omxvb2t1cE1hdGNoZXIoKQorICAgICAgICAgICAgdXNldE5vZGUgPSBleHByTm9kZS5mTGVmdENoaWxkOworICAgICAgICAgICAgZkNhY2hlZFNldExvb2t1cCA9IHVzZXROb2RlLmZJbnB1dFNldDsKKyAgICAgICAgICAgIHJldFN0cmluZyA9IGZmZmZTdHJpbmc7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgdmFyaWFibGUgcmVmZXJzIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGp1c3QgYSBzZXQuCisgICAgICAgICAgICAvLyBUaGlzIGlzIGFuIGVycm9yIGluIHRoZSBydWxlcyBiZWluZyBjb21waWxlZC4gICRWYXJpYWJsZXMgaW5zaWRlIG9mIFVuaWNvZGVTZXRzCisgICAgICAgICAgICAvLyAgIG11c3QgcmVmZXIgb25seSB0byBhbm90aGVyIHNldCwgbm90IHRvIHNvbWUgcmFuZG9tIG5vbi1zZXQgZXhwcmVzc2lvbi4KKyAgICAgICAgICAgIC8vICAgTm90ZTogIHNpbmdsZSBjaGFyYWN0ZXJzIGFyZSByZXByZXNlbnRlZCBhcyBzZXRzLCBzbyB0aGV5IGFyZSBvay4KKyAgICAgICAgICAgIGZSdWxlU2Nhbm5lci5lcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfTUFMRk9STUVEX1NFVCk7CisgICAgICAgICAgICByZXRTdHJpbmcgPSBleHByTm9kZS5mVGV4dDsKKyAgICAgICAgICAgIGZDYWNoZWRTZXRMb29rdXAgPSBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRTdHJpbmcudG9DaGFyQXJyYXkoKTsKKyAgICB9CisKKyAgICAvLworICAgIC8vICBSQkJJU3ltYm9sVGFibGU6Omxvb2t1cE1hdGNoZXIgICBUaGlzIGZ1bmN0aW9uIGZyb20gdGhlIGFic3RyYWN0IHN5bWJvbCB0YWJsZQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UgbWFwcyBhIHNpbmdsZSBzdGFuZC1pbiBjaGFyYWN0ZXIgdG8gYQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyIHRvIGEgVW5pY29kZSBTZXQuICAgVGhlIFVuaWNvZGUgU2V0IGNvZGUgdXNlcyB0aGlzCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lY2hhbmlzbSB0byBnZXQgYWxsIHJlZmVyZW5jZXMgdG8gdGhlIHNhbWUgJHZhcmlhYmxlCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgdG8gcmVmZXIgdG8gYSBzaW5nbGUgY29tbW9uIFVuaWNvZGUgU2V0IGluc3RhbmNlLgorICAgIC8vCisgICAgLy8gICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBjaGVhdHMgYSBsaXR0bGUsIGFuZCBkb2VzIG5vdCBtYWludGFpbiBhIG1hcCBvZiBzdGFuZC1pbiBjaGFycworICAgIC8vICAgIHRvIHNldHMuICBJbnN0ZWFkLCBpdCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCAgdGhlIFVuaWNvZGVTZXQKKyAgICAvLyAgICBjb25zdHJ1Y3RvciB3aWxsIGFsd2F5cyBjYWxsIHRoaXMgZnVuY3Rpb24gcmlnaHQgYWZ0ZXIgY2FsbGluZyBsb29rdXAoKSwKKyAgICAvLyAgICBhbmQgd2UganVzdCBuZWVkIHRvIHJlbWVtYmVyIHdoYXQgc2V0IHRvIHJldHVybiBiZXR3ZWVuIHRoZXNlIHR3byBjYWxscy4KKyAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgVW5pY29kZVNldCByZXRWYWwgPSBudWxsOworICAgICAgICBpZiAoY2ggPT0gMHhmZmZmKSB7CisgICAgICAgICAgICByZXRWYWwgPSBmQ2FjaGVkU2V0TG9va3VwOworICAgICAgICAgICAgZkNhY2hlZFNldExvb2t1cCA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICB9CisKKyAgICAvLworICAgIC8vIFJCQklTeW1ib2xUYWJsZTo6cGFyc2VSZWZlcmVuY2UgICBUaGlzIGZ1bmN0aW9uIGZyb20gdGhlIGFic3RyYWN0IHN5bWJvbCB0YWJsZSBpbnRlcmZhY2UKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3MgZm9yIGEgJHZhcmlhYmxlIG5hbWUgaW4gdGhlIHNvdXJjZSB0ZXh0LgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBkb2VzIG5vdCBsb29rIGl0IHVwLCBvbmx5IHNjYW5zIGZvciBpdC4KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgaXMgdXNlZCBieSB0aGUgVW5pY29kZVNldCBwYXJzZXIuCisgICAgLy8KKyAgICBwdWJsaWMgU3RyaW5nIHBhcnNlUmVmZXJlbmNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgIGludCBzdGFydCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICBpbnQgaSA9IHN0YXJ0OworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgICAgIHdoaWxlIChpIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgaWYgKChpID09IHN0YXJ0ICYmICFVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChjKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgIVVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoYykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IHN0YXJ0KSB7IC8vIE5vIHZhbGlkIG5hbWUgY2hhcnMKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIEluZGljYXRlIGZhaWx1cmUgd2l0aCBlbXB0eSBzdHJpbmcKKyAgICAgICAgfQorICAgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICAgIHJlc3VsdCA9IHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLworICAgIC8vIFJCQklTeW1ib2xUYWJsZTo6bG9va3VwTm9kZSAgICAgIEdpdmVuIGEga2V5IChhIHZhcmlhYmxlIG5hbWUpLCByZXR1cm4gdGhlCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBSQkJJIE5vZGUuICBJZiB0aGVyZSBpcyBubyBlbnRyeQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWJsZSBmb3IgdGhpcyBuYW1lLCByZXR1cm4gTlVMTC4KKyAgICAvLworICAgIFJCQklOb2RlIGxvb2t1cE5vZGUoU3RyaW5nIGtleSkgeworCisgICAgICAgIFJCQklOb2RlIHJldE5vZGUgPSBudWxsOworICAgICAgICBSQkJJU3ltYm9sVGFibGVFbnRyeSBlbDsKKworICAgICAgICBlbCA9IChSQkJJU3ltYm9sVGFibGVFbnRyeSkgZkhhc2hUYWJsZS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKGVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldE5vZGUgPSBlbC52YWw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldE5vZGU7CisgICAgfQorCisgICAgLy8KKyAgICAvLyAgICBSQkJJU3ltYm9sVGFibGU6OmFkZEVudHJ5ICAgICBBZGQgYSBuZXcgZW50cnkgdG8gdGhlIHN5bWJvbCB0YWJsZS4KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRpY2F0ZSBhbiBlcnJvciBpZiB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cyAtCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHdpbGwgb25seSBvY2N1ciBpbiB0aGUgY2FzZSBvZiBkdXBsaWNhdGUKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlIGFzc2lnbm1lbnRzLgorICAgIC8vCisgICAgdm9pZCBhZGRFbnRyeShTdHJpbmcga2V5LCBSQkJJTm9kZSB2YWwpIHsKKyAgICAgICAgUkJCSVN5bWJvbFRhYmxlRW50cnkgZTsKKyAgICAgICAgZSA9IChSQkJJU3ltYm9sVGFibGVFbnRyeSkgZkhhc2hUYWJsZS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKGUgIT0gbnVsbCkgeworICAgICAgICAgICAgZlJ1bGVTY2FubmVyLmVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19WQVJJQUJMRV9SRURGSU5JVElPTik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBlID0gbmV3IFJCQklTeW1ib2xUYWJsZUVudHJ5KCk7CisgICAgICAgIGUua2V5ID0ga2V5OworICAgICAgICBlLnZhbCA9IHZhbDsKKyAgICAgICAgZkhhc2hUYWJsZS5wdXQoZS5rZXksIGUpOworICAgIH0KKworICAgIC8vCisgICAgLy8gIFJCQklTeW1ib2xUYWJsZTo6cHJpbnQgICAgRGVidWdnaW5nIGZ1bmN0aW9uLCBkdW1wIG91dCB0aGUgc3ltYm9sIHRhYmxlIGNvbnRlbnRzLgorICAgIC8vCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHZvaWQgcmJiaVN5bXRhYmxlUHJpbnQoKSB7CisgICAgICAgIFN5c3RlbS5vdXQKKyAgICAgICAgICAgICAgICAucHJpbnQoIlZhcmlhYmxlIERlZmluaXRpb25zXG4iCisgICAgICAgICAgICAgICAgICAgICAgICArICJOYW1lICAgICAgICAgICAgICAgTm9kZSBWYWwgICAgIFN0cmluZyBWYWxcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCisgICAgICAgIFJCQklTeW1ib2xUYWJsZUVudHJ5W10gc3ltcyA9IG5ldyBSQkJJU3ltYm9sVGFibGVFbnRyeVswXTsKKyAgICAgICAgQ29sbGVjdGlvbiB0ID0gZkhhc2hUYWJsZS52YWx1ZXMoKTsKKyAgICAgICAgc3ltcyA9IChSQkJJU3ltYm9sVGFibGVFbnRyeVtdKSB0LnRvQXJyYXkoc3ltcyk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzeW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBSQkJJU3ltYm9sVGFibGVFbnRyeSBzID0gc3ltc1tpXTsKKworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAiICsgcy5rZXkgKyAiICAiKTsgLy8gVE9ETzogIGZvcm1hdCBvdXRwdXQgaW50byBjb2x1bW5zLgorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAiICsgcy52YWwgKyAiICAiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQocy52YWwuZkxlZnRDaGlsZC5mVGV4dCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgICAgICB9CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblBhcnNlZCBWYXJpYWJsZSBEZWZpbml0aW9uc1xuIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3ltcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgUkJCSVN5bWJvbFRhYmxlRW50cnkgcyA9IHN5bXNbaV07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHMua2V5KTsKKyAgICAgICAgICAgIHMudmFsLmZMZWZ0Q2hpbGQucHJpbnRUcmVlKHRydWUpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklUYWJsZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklUYWJsZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MjNjOWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVRhYmxlQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMTA1MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5Tb3J0ZWRTZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CisKKy8vCisvLyAgY2xhc3MgUkJCSVRhYmxlQnVpbGRlciBpcyBwYXJ0IG9mIHRoZSBSQkJJIHJ1bGUgY29tcGlsZXIuCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBJdCBidWlsZHMgdGhlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUgdXNlZCBieSB0aGUgUkJCSSBydW50aW1lCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBleHByZXNzaW9uIHN5bnRheCB0cmVlIGdlbmVyYXRlZCBieSB0aGUgcnVsZSBzY2FubmVyLgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgY2xhc3MgaXMgcGFydCBvZiB0aGUgUkJCSSBpbXBsZW1lbnRhdGlvbiBvbmx5LgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgVGhlcmUgaXMgbm8gdXNlci12aXNpYmxlIHB1YmxpYyBBUEkgaGVyZS4KKy8vCitjbGFzcyBSQkJJVGFibGVCdWlsZGVyIHsKKyAgICAKKyAgICAKKyAgICAKKyAgICAvLworICAgIC8vICBSQkJJU3RhdGVEZXNjcmlwdG9yIC0gVGhlIERGQSBpcyBpbml0aWFsbHkgY29uc3RydWN0ZWQgYXMgYSBzZXQgb2YgdGhlc2UgZGVzY3JpcHRvcnMsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBvbmUgZm9yIGVhY2ggc3RhdGUuCisgICAgc3RhdGljIGNsYXNzIFJCQklTdGF0ZURlc2NyaXB0b3IgeworICAgICAgICBib29sZWFuICAgICAgZk1hcmtlZDsKKyAgICAgICAgaW50ICAgICAgICAgIGZBY2NlcHRpbmc7CisgICAgICAgIGludCAgICAgICAgICBmTG9va0FoZWFkOworICAgICAgICBTb3J0ZWRTZXQgICAgZlRhZ1ZhbHM7CisgICAgICAgIGludCAgICAgICAgICBmVGFnc0lkeDsKKyAgICAgICAgU2V0ICAgICAgICAgIGZQb3NpdGlvbnM7ICAgICAgICAgICAgICAgICAvLyBTZXQgb2YgcGFyc2UgdHJlZSBwb3NpdGlvbnMgYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHdpdGggdGhpcyBzdGF0ZS4gIFVub3JkZXJlZCAoaXQncyBhIHNldCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgVVZlY3RvciBjb250ZW50cyBhcmUgUkJCSU5vZGUgKgorCisgICAgICAgIGludFtdICAgICAgICBmRHRyYW47ICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zaXRpb25zIG91dCBvZiB0aGlzIHN0YXRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBpbmRleGVkIGJ5IGlucHV0IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjb250ZW50cyBpcyBpbnQgaW5kZXggb2YgZGVzdCBzdGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBpbiBSQkJJVGFibGVCdWlsZGVyLmZEU3RhdGVzCisKKyAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvcihpbnQgbWF4SW5wdXRTeW1ib2wpIHsKKyAgICAgICAgICAgIGZUYWdWYWxzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgICAgIGZQb3NpdGlvbnMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgZkR0cmFuID0gbmV3IGludFttYXhJbnB1dFN5bWJvbCsxXTsgICAgLy8gZkR0cmFuIG5lZWRzIHRvIGJlIHByZS1zaXplZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIEl0IGlzIGluZGV4ZWQgYnkgaW5wdXQgc3ltYm9scywgYW5kIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGhvbGQgIHRoZSBuZXh0IHN0YXRlIG51bWJlciBmb3IgZWFjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgc3ltYm9sLgorICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgIFJCQklSdWxlQnVpbGRlciAgZlJCOworICAgIHByaXZhdGUgIGludCAgICAgICAgICAgICBmUm9vdEl4OyAgICAgICAgICAgICAvLyBUaGUgYXJyYXkgaW5kZXggaW50byBSQkJJUnVsZUJ1aWxkZXIuZlRyZWVSb290cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBmb3IgdGhlIHBhcnNlIHRyZWUgdG8gb3BlcmF0ZSBvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgVG9vIGJhZCBKYXZhIGNhbid0IGRvIGluZGlyZWN0aW9uIG1vcmUgZWFzaWx5IQorCisgICAgcHJpdmF0ZSAgTGlzdCAgICAgICAgICAgICBmRFN0YXRlczsgICAgICAgLy8gIEQgc3RhdGVzIChBaG8ncyB0ZXJtaW5vbG9neSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIEluZGV4IGlzIHN0YXRlIG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgQ29udGVudHMgYXJlIFJCQklTdGF0ZURlc2NyaXB0b3IgcG9pbnRlcnMuCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgQ29uc3RydWN0b3IgICAgZm9yIFJCQklUYWJsZUJ1aWxkZXIuCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgICAgICAgcm9vdE5vZGUgaXMgYW4gaW5kZXggaW50byB0aGUgYXJyYXkgb2Ygcm9vdCBub2RlcyB0aGF0IGlzIGhlbGQgYnkKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG92ZXJhbGwgUkJCSVJ1bGVCdWlsZGVyLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBSQkJJVGFibGVCdWlsZGVyKFJCQklSdWxlQnVpbGRlciByYiwgIGludCByb290Tm9kZUl4KSAgeworICAgICAgICAgICBmUm9vdEl4ICAgICA9IHJvb3ROb2RlSXg7CisgICAgICAgICAgIGZSQiAgICAgICAgID0gcmI7CisgICAgICAgICAgIGZEU3RhdGVzICAgID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICB9CisKKworCisgCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBSQkJJVGFibGVCdWlsZGVyOjpidWlsZCAgLSAgVGhpcyBpcyB0aGUgbWFpbiBmdW5jdGlvbiBmb3IgYnVpbGRpbmcgdGhlIERGQSBzdGF0ZSB0cmFuc3Rpb24KKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSBmcm9tIHRoZSBSQkJJIHJ1bGVzIHBhcnNlIHRyZWUuCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgdm9pZCAgYnVpbGQoKSB7CisgICAgICAgICAgIC8vIElmIHRoZXJlIHdlcmUgbm8gcnVsZXMsIGp1c3QgcmV0dXJuLiAgVGhpcyBzaXR1YXRpb24gY2FuIGVhc2lseSBhcmlzZQorICAgICAgICAgICAvLyAgIGZvciB0aGUgcmV2ZXJzZSBydWxlcy4KKyAgICAgICAgICAgaWYgKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdPT1udWxsKSB7CisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyBXYWxrIHRocm91Z2ggdGhlIHRyZWUsIHJlcGxhY2luZyBhbnkgcmVmZXJlbmNlcyB0byAkdmFyaWFibGVzIHdpdGggYSBjb3B5IG9mIHRoZQorICAgICAgICAgICAvLyAgIHBhcnNlIHRyZWUgZm9yIHRoZSBzdWJzdGl0aW9uIGV4cHJlc3Npb24uCisgICAgICAgICAgIC8vCisgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdID0gZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZmxhdHRlblZhcmlhYmxlcygpOworICAgICAgICAgICBpZiAoZlJCLmZEZWJ1Z0VudiE9bnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoImZ0cmVlIik+PTApIHsKKyAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUGFyc2UgdHJlZSBhZnRlciBmbGF0dGVuaW5nIHZhcmlhYmxlIHJlZmVyZW5jZXMuIik7CisgICAgICAgICAgICAgICBmUkIuZlRyZWVSb290c1tmUm9vdEl4XS5wcmludFRyZWUodHJ1ZSk7CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyBJZiB0aGUgcnVsZXMgY29udGFpbmVkIGFueSByZWZlcmVuY2VzIHRvIHtib2Z9IAorICAgICAgICAgICAvLyAgIGFkZCBhIHtib2Z9IDxjYXQ+IDxmb3JtZXIgcm9vdCBvZiB0cmVlPiB0byB0aGUKKyAgICAgICAgICAgLy8gICB0cmVlLiAgTWVhbnMgdGhhdCBhbGwgbWF0Y2hlcyBtdXN0IHN0YXJ0IG91dCB3aXRoIHRoZSAKKyAgICAgICAgICAgLy8gICB7Ym9mfSBmYWtlIGNoYXJhY3Rlci4KKyAgICAgICAgICAgLy8gCisgICAgICAgICAgIGlmIChmUkIuZlNldEJ1aWxkZXIuc2F3Qk9GKCkpIHsKKyAgICAgICAgICAgICAgIFJCQklOb2RlIGJvZlRvcCAgICA9IG5ldyBSQkJJTm9kZShSQkJJTm9kZS5vcENhdCk7CisgICAgICAgICAgICAgICBSQkJJTm9kZSBib2ZMZWFmICAgPSBuZXcgUkJCSU5vZGUoUkJCSU5vZGUubGVhZkNoYXIpOworICAgICAgICAgICAgICAgYm9mVG9wLmZMZWZ0Q2hpbGQgID0gYm9mTGVhZjsKKyAgICAgICAgICAgICAgIGJvZlRvcC5mUmlnaHRDaGlsZCA9IGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdOworICAgICAgICAgICAgICAgYm9mTGVhZi5mUGFyZW50ICAgID0gYm9mVG9wOworICAgICAgICAgICAgICAgYm9mTGVhZi5mVmFsICAgICAgID0gMjsgICAgICAvLyBSZXNlcnZlZCB2YWx1ZSBmb3Ige2JvZn0uCisgICAgICAgICAgICAgICBmUkIuZlRyZWVSb290c1tmUm9vdEl4XSA9IGJvZlRvcDsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIEFkZCBhIHVuaXF1ZSByaWdodC1lbmQgbWFya2VyIHRvIHRoZSBleHByZXNzaW9uLgorICAgICAgICAgICAvLyAgIEFwcGVhcnMgYXMgYSBjYXQtbm9kZSwgbGVmdCBjaGlsZCBiZWluZyB0aGUgb3JpZ2luYWwgdHJlZSwKKyAgICAgICAgICAgLy8gICByaWdodCBjaGlsZCBiZWluZyB0aGUgZW5kIG1hcmtlci4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgUkJCSU5vZGUgY24gPSBuZXcgUkJCSU5vZGUoUkJCSU5vZGUub3BDYXQpOworICAgICAgICAgICBjbi5mTGVmdENoaWxkID0gZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF07CisgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdLmZQYXJlbnQgPSBjbjsKKyAgICAgICAgICAgY24uZlJpZ2h0Q2hpbGQgPSBuZXcgUkJCSU5vZGUoUkJCSU5vZGUuZW5kTWFyayk7CisgICAgICAgICAgIGNuLmZSaWdodENoaWxkLmZQYXJlbnQgPSBjbjsKKyAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0gPSBjbjsKKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyAgUmVwbGFjZSBhbGwgcmVmZXJlbmNlcyB0byBVbmljb2RlU2V0cyB3aXRoIHRoZSB0cmVlIGZvciB0aGUgZXF1aXZhbGVudAorICAgICAgICAgICAvLyAgICAgIGV4cHJlc3Npb24uCisgICAgICAgICAgIC8vCisgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdLmZsYXR0ZW5TZXRzKCk7CisgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigic3RyZWUiKT49MCkgeworICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQYXJzZSB0cmVlIGFmdGVyIGZsYXR0ZW5pbmcgVW5pY29kZSBTZXQgcmVmZXJlbmNlcy4iKTsKKyAgICAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdLnByaW50VHJlZSh0cnVlKTsKKyAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBmdW5jdGlvbnMgbnVsbGFibGUsIGZpcnN0cG9zLCBsYXN0cG9zIGFuZCBmb2xsb3dwb3Mgb24KKyAgICAgICAgICAgLy8gbm9kZXMgaW4gdGhlIHBhcnNlIHRyZWUuCisgICAgICAgICAgIC8vICAgIFNlZSB0aGUgYWxvZ3JpdGhtIGRlc2NyaXB0aW9uIGluIEFoby4KKyAgICAgICAgICAgLy8gICAgVW5kZXJzdGFuZGluZyBob3cgdGhpcyB3b3JrcyBieSBsb29raW5nIGF0IHRoZSBjb2RlIGFsb25lIHdpbGwgYmUKKyAgICAgICAgICAgLy8gICAgICAgbmVhcmx5IGltcG9zc2libGUuCisgICAgICAgICAgIC8vCisgICAgICAgICAgIGNhbGNOdWxsYWJsZShmUkIuZlRyZWVSb290c1tmUm9vdEl4XSk7CisgICAgICAgICAgIGNhbGNGaXJzdFBvcyhmUkIuZlRyZWVSb290c1tmUm9vdEl4XSk7CisgICAgICAgICAgIGNhbGNMYXN0UG9zKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdKTsKKyAgICAgICAgICAgY2FsY0ZvbGxvd1BvcyhmUkIuZlRyZWVSb290c1tmUm9vdEl4XSk7CisgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigicG9zIik+PTApIHsKKyAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuIik7CisgICAgICAgICAgICAgICBwcmludFBvc1NldHMoZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0pOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gIEZvciAiY2hhaW5lZCIgcnVsZXMsIG1vZGlmeSB0aGUgZm9sbG93UG9zIHNldHMKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgaWYgKGZSQi5mQ2hhaW5SdWxlcykgeworICAgICAgICAgICAgICAgY2FsY0NoYWluZWRGb2xsb3dQb3MoZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0pOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gIEJPRiAoc3RhcnQgb2YgaW5wdXQpIHRlc3QgZml4dXAuCisgICAgICAgICAgIC8vCisgICAgICAgICAgIGlmIChmUkIuZlNldEJ1aWxkZXIuc2F3Qk9GKCkpIHsKKyAgICAgICAgICAgICAgIGJvZkZpeHVwKCk7CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyBCdWlsZCB0aGUgREZBIHN0YXRlIHRyYW5zaXRpb24gdGFibGVzLgorICAgICAgICAgICAvLworICAgICAgICAgICBidWlsZFN0YXRlVGFibGUoKTsKKyAgICAgICAgICAgZmxhZ0FjY2VwdGluZ1N0YXRlcygpOworICAgICAgICAgICBmbGFnTG9va0FoZWFkU3RhdGVzKCk7CisgICAgICAgICAgIGZsYWdUYWdnZWRTdGF0ZXMoKTsKKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGdsb2JhbCB0YWJsZSBvZiBydWxlIHN0YXR1cyB7dGFnfSB2YWx1ZXMKKyAgICAgICAgICAgLy8gVGhlIHJ1bGUgYnVpbGRlciBoYXMgYSBnbG9iYWwgdmVjdG9yIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCBhcmUgY29tbW9uCisgICAgICAgICAgIC8vICAgIGZvciBhbGwgdGFibGVzLiAgTWVyZ2UgdGhlIG9uZXMgZnJvbSB0aGlzIHRhYmxlIGludG8gdGhlIGdsb2JhbCBzZXQuCisgICAgICAgICAgIC8vCisgICAgICAgICAgIG1lcmdlUnVsZVN0YXR1c1ZhbHMoKTsKKworICAgICAgICAgICBpZiAoZlJCLmZEZWJ1Z0VudiE9bnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInN0YXRlcyIpPj0wKSB7cHJpbnRTdGF0ZXMoKTt9OworICAgICAgIH0KKworCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIGNhbGNOdWxsYWJsZS4gICAgSW1wb3NzaWJsZSB0byBleHBsYWluIHN1Y2NpbmN0bHkuICBTZWUgQWhvLCBzZWN0aW9uIDMuOQorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZvaWQgY2FsY051bGxhYmxlKFJCQklOb2RlIG4pIHsKKyAgICAgICAgICAgaWYgKG4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisgICAgICAgICAgIGlmIChuLmZUeXBlID09IFJCQklOb2RlLnNldFJlZiB8fAorICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS5lbmRNYXJrICkgeworICAgICAgICAgICAgICAgLy8gVGhlc2UgYXJlIG5vbi1lbXB0eSBsZWFmIG5vZGUgdHlwZXMuCisgICAgICAgICAgICAgICBuLmZOdWxsYWJsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUubG9va0FoZWFkIHx8IG4uZlR5cGUgPT0gUkJCSU5vZGUudGFnKSB7CisgICAgICAgICAgICAgICAvLyBMb29rYWhlYWQgbWFya2VyIG5vZGUuICBJdCdzIGEgbGVhZiwgc28gbm8gcmVjdXJzaW9uIG9uIGNoaWxkcmVuLgorICAgICAgICAgICAgICAgLy8gSXQncyBudWxsYWJsZSBiZWNhdXNlIGl0IGRvZXMgbm90IG1hdGNoIGFueSBsaXRlcmFsIHRleHQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLgorICAgICAgICAgICAgICAgbi5mTnVsbGFibGUgPSB0cnVlOworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisKKworICAgICAgICAgICAvLyBUaGUgbm9kZSBpcyBub3QgYSBsZWFmLgorICAgICAgICAgICAvLyAgQ2FsY3VsYXRlIG51bGxhYmxlIG9uIGl0cyBjaGlsZHJlbi4KKyAgICAgICAgICAgY2FsY051bGxhYmxlKG4uZkxlZnRDaGlsZCk7CisgICAgICAgICAgIGNhbGNOdWxsYWJsZShuLmZSaWdodENoaWxkKTsKKworICAgICAgICAgICAvLyBBcHBseSBmdW5jdGlvbnMgZnJvbSB0YWJsZSAzLjQwIGluIEFobworICAgICAgICAgICBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcE9yKSB7CisgICAgICAgICAgICAgICBuLmZOdWxsYWJsZSA9IG4uZkxlZnRDaGlsZC5mTnVsbGFibGUgfHwgbi5mUmlnaHRDaGlsZC5mTnVsbGFibGU7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcENhdCkgeworICAgICAgICAgICAgICAgbi5mTnVsbGFibGUgPSBuLmZMZWZ0Q2hpbGQuZk51bGxhYmxlICYmIG4uZlJpZ2h0Q2hpbGQuZk51bGxhYmxlOworICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUub3BTdGFyIHx8IG4uZlR5cGUgPT0gUkJCSU5vZGUub3BRdWVzdGlvbikgeworICAgICAgICAgICAgICAgbi5mTnVsbGFibGUgPSB0cnVlOworICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgbi5mTnVsbGFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKworCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgY2FsY0ZpcnN0UG9zLiAgICBJbXBvc3NpYmxlIHRvIGV4cGxhaW4gc3VjY2luY3RseS4gIFNlZSBBaG8sIHNlY3Rpb24gMy45CisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgdm9pZCBjYWxjRmlyc3RQb3MoUkJCSU5vZGUgbikgeworICAgICAgICAgICBpZiAobiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgIH0KKyAgICAgICAgICAgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUubGVhZkNoYXIgIHx8CisgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLmVuZE1hcmsgICB8fAorICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS5sb29rQWhlYWQgfHwKKyAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUudGFnKSB7CisgICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgbm9uLWVtcHR5IGxlYWYgbm9kZSB0eXBlcy4KKyAgICAgICAgICAgICAgIG4uZkZpcnN0UG9zU2V0LmFkZChuKTsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vIFRoZSBub2RlIGlzIG5vdCBhIGxlYWYuCisgICAgICAgICAgIC8vICBDYWxjdWxhdGUgZmlyc3RQb3Mgb24gaXRzIGNoaWxkcmVuLgorICAgICAgICAgICBjYWxjRmlyc3RQb3Mobi5mTGVmdENoaWxkKTsKKyAgICAgICAgICAgY2FsY0ZpcnN0UG9zKG4uZlJpZ2h0Q2hpbGQpOworCisgICAgICAgICAgIC8vIEFwcGx5IGZ1bmN0aW9ucyBmcm9tIHRhYmxlIDMuNDAgaW4gQWhvCisgICAgICAgICAgIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wT3IpIHsKKyAgICAgICAgICAgICAgIG4uZkZpcnN0UG9zU2V0LmFkZEFsbChuLmZMZWZ0Q2hpbGQuZkZpcnN0UG9zU2V0KTsKKyAgICAgICAgICAgICAgIG4uZkZpcnN0UG9zU2V0LmFkZEFsbChuLmZSaWdodENoaWxkLmZGaXJzdFBvc1NldCk7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcENhdCkgeworICAgICAgICAgICAgICAgbi5mRmlyc3RQb3NTZXQuYWRkQWxsKG4uZkxlZnRDaGlsZC5mRmlyc3RQb3NTZXQpOworICAgICAgICAgICAgICAgaWYgKG4uZkxlZnRDaGlsZC5mTnVsbGFibGUpIHsKKyAgICAgICAgICAgICAgICAgICBuLmZGaXJzdFBvc1NldC5hZGRBbGwobi5mUmlnaHRDaGlsZC5mRmlyc3RQb3NTZXQpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUub3BTdGFyIHx8CisgICAgICAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUub3BRdWVzdGlvbiB8fAorICAgICAgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLm9wUGx1cykgeworICAgICAgICAgICAgICAgbi5mRmlyc3RQb3NTZXQuYWRkQWxsKG4uZkxlZnRDaGlsZC5mRmlyc3RQb3NTZXQpOworICAgICAgICAgICB9CisgICAgICAgfQorCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgY2FsY0xhc3RQb3MuICAgIEltcG9zc2libGUgdG8gZXhwbGFpbiBzdWNjaW5jdGx5LiAgU2VlIEFobywgc2VjdGlvbiAzLjkKKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkIGNhbGNMYXN0UG9zKFJCQklOb2RlIG4pIHsKKyAgICAgICAgICAgaWYgKG4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisgICAgICAgICAgIGlmIChuLmZUeXBlID09IFJCQklOb2RlLmxlYWZDaGFyICB8fAorICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS5lbmRNYXJrICAgfHwKKyAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUubG9va0FoZWFkIHx8CisgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLnRhZykgeworICAgICAgICAgICAgICAgLy8gVGhlc2UgYXJlIG5vbi1lbXB0eSBsZWFmIG5vZGUgdHlwZXMuCisgICAgICAgICAgICAgICBuLmZMYXN0UG9zU2V0LmFkZChuKTsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vIFRoZSBub2RlIGlzIG5vdCBhIGxlYWYuCisgICAgICAgICAgIC8vICBDYWxjdWxhdGUgbGFzdFBvcyBvbiBpdHMgY2hpbGRyZW4uCisgICAgICAgICAgIGNhbGNMYXN0UG9zKG4uZkxlZnRDaGlsZCk7CisgICAgICAgICAgIGNhbGNMYXN0UG9zKG4uZlJpZ2h0Q2hpbGQpOworCisgICAgICAgICAgIC8vIEFwcGx5IGZ1bmN0aW9ucyBmcm9tIHRhYmxlIDMuNDAgaW4gQWhvCisgICAgICAgICAgIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wT3IpIHsKKyAgICAgICAgICAgICAgIG4uZkxhc3RQb3NTZXQuYWRkQWxsKG4uZkxlZnRDaGlsZC5mTGFzdFBvc1NldCk7CisgICAgICAgICAgICAgICBuLmZMYXN0UG9zU2V0LmFkZEFsbChuLmZSaWdodENoaWxkLmZMYXN0UG9zU2V0KTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBlbHNlIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wQ2F0KSB7CisgICAgICAgICAgICAgICBuLmZMYXN0UG9zU2V0LmFkZEFsbChuLmZSaWdodENoaWxkLmZMYXN0UG9zU2V0KTsKKyAgICAgICAgICAgICAgIGlmIChuLmZSaWdodENoaWxkLmZOdWxsYWJsZSkgeworICAgICAgICAgICAgICAgICAgIG4uZkxhc3RQb3NTZXQuYWRkQWxsKG4uZkxlZnRDaGlsZC5mTGFzdFBvc1NldCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcFN0YXIgICAgIHx8CisgICAgICAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUub3BRdWVzdGlvbiB8fAorICAgICAgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLm9wUGx1cykgeworICAgICAgICAgICAgICAgbi5mTGFzdFBvc1NldC5hZGRBbGwobi5mTGVmdENoaWxkLmZMYXN0UG9zU2V0KTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKworCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIGNhbGNGb2xsb3dQb3MuICAgIEltcG9zc2libGUgdG8gZXhwbGFpbiBzdWNjaW5jdGx5LiAgU2VlIEFobywgc2VjdGlvbiAzLjkKKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkIGNhbGNGb2xsb3dQb3MoUkJCSU5vZGUgbikgeworICAgICAgICAgICBpZiAobiA9PSBudWxsIHx8CisgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLmxlYWZDaGFyIHx8CisgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLmVuZE1hcmspIHsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIGNhbGNGb2xsb3dQb3Mobi5mTGVmdENoaWxkKTsKKyAgICAgICAgICAgY2FsY0ZvbGxvd1BvcyhuLmZSaWdodENoaWxkKTsKKworICAgICAgICAgICAvLyBBaG8gcnVsZSAjMQorICAgICAgICAgICBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcENhdCkgeworICAgICAgICAgICAgICAgUkJCSU5vZGUgaTsgICAvLyBpcyAnaScgaW4gQWhvJ3MgZGVzY3JpcHRpb24KKworICAgICAgICAgICAgICAgU2V0IExhc3RQb3NPZkxlZnRDaGlsZCA9IG4uZkxlZnRDaGlsZC5mTGFzdFBvc1NldDsKKworICAgICAgICAgICAgICAgSXRlcmF0b3IgaXggPSBMYXN0UG9zT2ZMZWZ0Q2hpbGQuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgIHdoaWxlIChpeC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICBpID0gKFJCQklOb2RlIClpeC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgaS5mRm9sbG93UG9zLmFkZEFsbChuLmZSaWdodENoaWxkLmZGaXJzdFBvc1NldCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLyBBaG8gcnVsZSAjMgorICAgICAgICAgICBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcFN0YXIgfHwKKyAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUub3BQbHVzKSB7CisgICAgICAgICAgICAgICBSQkJJTm9kZSAgIGk7ICAvLyBhZ2FpbiwgbiBhbmQgaSBhcmUgdGhlIG5hbWVzIGZyb20gQWhvJ3MgZGVzY3JpcHRpb24uCisgICAgICAgICAgICAgICBJdGVyYXRvciAgIGl4ID0gbi5mTGFzdFBvc1NldC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgd2hpbGUgKGl4Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgIGkgPSAoUkJCSU5vZGUpIGl4Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICBpLmZGb2xsb3dQb3MuYWRkQWxsKG4uZkZpcnN0UG9zU2V0KTsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICB9CisKKworCisgICAgICAgfQorCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIGNhbGNDaGFpbmVkRm9sbG93UG9zLiAgICBNb2RpZnkgdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlZCBmb2xsb3dQb3Mgc2V0cworICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGltcGxlbWVudCBydWxlIGNoYWluaW5nLiAgTk9UIGRlc2NyaWJlZCBieSBBaG8KKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkIGNhbGNDaGFpbmVkRm9sbG93UG9zKFJCQklOb2RlIHRyZWUpIHsKKworICAgICAgICAgICBMaXN0ICAgICAgICBlbmRNYXJrZXJOb2RlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgTGlzdCAgICAgICAgbGVhZk5vZGVzICAgICAgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAgICAgIC8vIGdldCBhIGxpc3Qgb2YgYWxsIGVuZG1hcmtlciBub2Rlcy4KKyAgICAgICAgICAgdHJlZS5maW5kTm9kZXMoZW5kTWFya2VyTm9kZXMsIFJCQklOb2RlLmVuZE1hcmspOworCisgICAgICAgICAgIC8vIGdldCBhIGxpc3QgYWxsIGxlYWYgbm9kZXMKKyAgICAgICAgICAgdHJlZS5maW5kTm9kZXMobGVhZk5vZGVzLCBSQkJJTm9kZS5sZWFmQ2hhcik7CisKKyAgICAgICAgICAgLy8gR2V0IGFsbCBub2RlcyB0aGF0IGNhbiBiZSB0aGUgc3RhcnQgYSBtYXRjaCwgd2hpY2ggaXMgRmlyc3RQb3NpdGlvbigpCisgICAgICAgICAgIC8vIG9mIHRoZSBwb3J0aW9uIG9mIHRoZSB0cmVlIGNvcnJlc3BvbmRpbmcgdG8gdXNlci13cml0dGVuIHJ1bGVzLgorICAgICAgICAgICAvLyBTZWUgdGhlIHRyZWUgZGVzY3JpcHRpb24gaW4gYm9mRml4dXAoKS4KKyAgICAgICAgICAgUkJCSU5vZGUgdXNlclJ1bGVSb290ID0gdHJlZTsKKyAgICAgICAgICAgaWYgKGZSQi5mU2V0QnVpbGRlci5zYXdCT0YoKSkgeworICAgICAgICAgICAgICAgdXNlclJ1bGVSb290ID0gdHJlZS5mTGVmdENoaWxkLmZSaWdodENoaWxkOworICAgICAgICAgICB9CisgICAgICAgICAgIEFzc2VydC5hc3NydCh1c2VyUnVsZVJvb3QgIT0gbnVsbCk7CisgICAgICAgICAgIFNldCBtYXRjaFN0YXJ0Tm9kZXMgPSB1c2VyUnVsZVJvb3QuZkZpcnN0UG9zU2V0OworCisKKyAgICAgICAgICAgLy8gSXRlcmF0YXRlIG92ZXIgYWxsIGxlYWYgbm9kZXMsCisgICAgICAgICAgIC8vCisgICAgICAgICAgIEl0ZXJhdG9yICBlbmROb2RlSXggPSBsZWFmTm9kZXMuaXRlcmF0b3IoKTsKKworICAgICAgICAgICB3aGlsZSAoZW5kTm9kZUl4Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgUkJCSU5vZGUgdE5vZGUgICA9IChSQkJJTm9kZSllbmROb2RlSXgubmV4dCgpOworICAgICAgICAgICAgICAgUkJCSU5vZGUgZW5kTm9kZSA9IG51bGw7CisKKyAgICAgICAgICAgICAgIC8vIElkZW50aWZ5IGxlYWYgbm9kZXMgdGhhdCBjb3JyZXNwb25kIHRvIG92ZXJhbGwgcnVsZSBtYXRjaCBwb3NpdGlvbnMuCisgICAgICAgICAgICAgICAvLyAgIFRoZXNlIGluY2x1ZGUgYW4gZW5kTWFya2VyTm9kZSBpbiB0aGVpciBmb2xsb3dQb3Mgc2V0cy4KKyAgICAgICAgICAgICAgIEl0ZXJhdG9yIGkgPSBlbmRNYXJrZXJOb2Rlcy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgd2hpbGUgKGkuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgZW5kTWFya2VyTm9kZSA9IChSQkJJTm9kZSlpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICBpZiAodE5vZGUuZkZvbGxvd1Bvcy5jb250YWlucyhlbmRNYXJrZXJOb2RlKSkgeworICAgICAgICAgICAgICAgICAgICAgICBlbmROb2RlID0gdE5vZGU7CisgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmIChlbmROb2RlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAvLyBub2RlIHdhc24ndCBhbiBlbmQgbm9kZS4gIFRyeSBhZ2FpbiB3aXRoIHRoZSBuZXh0LgorICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3QgYSBub2RlIHRoYXQgY2FuIGVuZCBhIG1hdGNoLgorCisgICAgICAgICAgICAgICAvLyBMaW5lIEJyZWFrIFNwZWNpZmljIGhhY2s6ICBJZiB0aGlzIG5vZGUncyB2YWwgY29ycmVzcG9uZCB0byB0aGUgJENNIGNoYXIgY2xhc3MsCisgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb24ndCBjaGFpbiBmcm9tIGl0LgorICAgICAgICAgICAgICAgLy8gVE9ETzogIEFkZCBydWxlIHN5bnRheCBmb3IgdGhpcyBiZWhhdmlvciwgZ2V0IHNwZWNpZmljcyBvdXQgb2YgaGVyZSBhbmQKKyAgICAgICAgICAgICAgIC8vICAgICAgICBpbnRvIHRoZSBydWxlIGZpbGUuCisgICAgICAgICAgICAgICBpZiAoZlJCLmZMQkNNTm9DaGFpbikgeworICAgICAgICAgICAgICAgICAgIGludCBjID0gdGhpcy5mUkIuZlNldEJ1aWxkZXIuZ2V0Rmlyc3RDaGFyKGVuZE5vZGUuZlZhbCk7CisgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gYyA9PSAtMSBvY2N1cnMgd2l0aCBzZXRzIGNvbnRhaW5pbmcgb25seSB0aGUge2VvZn0gbWFya2VyIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGNMQlByb3AgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkxJTkVfQlJFQUspOworICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCUHJvcCA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgICAgLy8gTm93IGl0ZXJhdGUgb3ZlciB0aGUgbm9kZXMgdGhhdCBjYW4gc3RhcnQgYSBtYXRjaCwgbG9va2luZyBmb3Igb25lcworICAgICAgICAgICAgICAgLy8gICB3aXRoIHRoZSBzYW1lIGNoYXIgY2xhc3MgYXMgb3VyIGVuZGluZyBub2RlLgorICAgICAgICAgICAgICAgUkJCSU5vZGUgc3RhcnROb2RlOworICAgICAgICAgICAgICAgSXRlcmF0b3IgIHN0YXJ0Tm9kZUl4ID0gbWF0Y2hTdGFydE5vZGVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICB3aGlsZSAoc3RhcnROb2RlSXguaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgc3RhcnROb2RlID0gKFJCQklOb2RlIClzdGFydE5vZGVJeC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0Tm9kZS5mVHlwZSAhPSBSQkJJTm9kZS5sZWFmQ2hhcikgeworICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICBpZiAoZW5kTm9kZS5mVmFsID09IHN0YXJ0Tm9kZS5mVmFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBlbmQgdmFsIChjaGFyYWN0ZXIgY2xhc3MpIG9mIG9uZSBwb3NzaWJsZSBtYXRjaCBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gICBzYW1lIGFzIHRoZSBzdGFydCBvZiBhbm90aGVyLgorCisgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCBhbGwgbm9kZXMgZnJvbSB0aGUgZm9sbG93UG9zIG9mIHRoZSBzdGFydCBub2RlIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAvLyAgZm9sbG93UG9zIHNldCBvZiB0aGUgZW5kIG5vZGUsIHdoaWNoIHdpbGwgaGF2ZSB0aGUgZWZmZWN0IG9mCisgICAgICAgICAgICAgICAgICAgICAgIC8vICBsZXR0aW5nIG1hdGNoZXMgdHJhbnNpdGlvbiBmcm9tIGEgbWF0Y2ggc3RhdGUgYXQgZW5kTm9kZQorICAgICAgICAgICAgICAgICAgICAgICAvLyAgdG8gdGhlIHNlY29uZCBjaGFyIG9mIGEgbWF0Y2ggc3RhcnRpbmcgd2l0aCBzdGFydE5vZGUuCisgICAgICAgICAgICAgICAgICAgICAgIGVuZE5vZGUuZkZvbGxvd1Bvcy5hZGRBbGwoc3RhcnROb2RlLmZGb2xsb3dQb3MpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgIH0KKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBib2ZGaXh1cC4gICAgRml4dXAgZm9yIHN0YXRlIHRhYmxlcyB0aGF0IGluY2x1ZGUge2JvZn0gYmVnaW5uaW5nIG9mIGlucHV0IHRlc3RpbmcuCisgICAgICAgLy8gICAgICAgICAgICAgICAgRG8gYW4gc3dpenpsZSBzaW1pbGFyIHRvIGNoYWluaW5nLCBtb2RpZnlpbmcgdGhlIGZvbGxvd1BvcyBzZXQgb2YKKyAgICAgICAvLyAgICAgICAgICAgICAgICB0aGUgYm9mTm9kZSB0byBpbmNsdWRlIHRoZSBmb2xsb3dQb3Mgbm9kZXMgZnJvbSBvdGhlciB7Ym90fSBub2RlcworICAgICAgIC8vICAgICAgICAgICAgICAgIHNjYXR0ZXJlZCB0aHJvdWdoIHRoZSB0cmVlLgorICAgICAgIC8vCisgICAgICAgLy8gICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBoYXMgbXVjaCBpbiBjb21tb24gd2l0aCBjYWxjQ2hhaW5lZEZvbGxvd1BvcygpLgorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZvaWQgYm9mRml4dXAoKSB7CisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vICAgVGhlIHBhcnNlIHRyZWUgbG9va3MgbGlrZSB0aGlzIC4uLgorICAgICAgICAgICAvLyAgICAgICAgIGZUcmVlIHJvb3QgIC0tLiAgICAgICA8Y2F0PgorICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICBcICAgCisgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjYXQ+ICAgPCNlbmQgbm9kZT4KKyAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICBcICAgCisgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgPGJvZk5vZGU+ICAgcmVzdAorICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0cmVlCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vICAgIFdlIHdpbGwgYmUgYWRkaW5nIHRoaW5ncyB0byB0aGUgZm9sbG93UG9zIHNldCBvZiB0aGUgPGJvZk5vZGU+CisgICAgICAgICAgIC8vCisgICAgICAgICAgIFJCQklOb2RlICBib2ZOb2RlID0gZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZkxlZnRDaGlsZC5mTGVmdENoaWxkOworICAgICAgICAgICBBc3NlcnQuYXNzcnQoYm9mTm9kZS5mVHlwZSA9PSBSQkJJTm9kZS5sZWFmQ2hhcik7CisgICAgICAgICAgIEFzc2VydC5hc3NydChib2ZOb2RlLmZWYWwgPT0gMik7CisKKyAgICAgICAgICAgLy8gR2V0IGFsbCBub2RlcyB0aGF0IGNhbiBiZSB0aGUgc3RhcnQgYSBtYXRjaCBvZiB0aGUgdXNlci13cml0dGVuIHJ1bGVzCisgICAgICAgICAgIC8vICAoZXhjbHVkaW5nIHRoZSBmYWtlIGJvZk5vZGUpCisgICAgICAgICAgIC8vICBXZSB3YW50IHRoZSBub2RlcyB0aGF0IGNhbiBzdGFydCBhIG1hdGNoIGluIHRoZQorICAgICAgICAgICAvLyAgICAgcGFydCBsYWJlbGVkICJyZXN0IG9mIHRyZWUiCisgICAgICAgICAgIC8vIAorICAgICAgICAgICBTZXQgbWF0Y2hTdGFydE5vZGVzID0gZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZkxlZnRDaGlsZC5mUmlnaHRDaGlsZC5mRmlyc3RQb3NTZXQ7CisgICAgICAgICAgIEl0ZXJhdG9yIHN0YXJ0Tm9kZUl0ID0gbWF0Y2hTdGFydE5vZGVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgIHdoaWxlIChzdGFydE5vZGVJdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgIFJCQklOb2RlIHN0YXJ0Tm9kZSA9IChSQkJJTm9kZSlzdGFydE5vZGVJdC5uZXh0KCk7CisgICAgICAgICAgICAgICBpZiAoc3RhcnROb2RlLmZUeXBlICE9IFJCQklOb2RlLmxlYWZDaGFyKSB7CisgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgIGlmIChzdGFydE5vZGUuZlZhbCA9PSBib2ZOb2RlLmZWYWwpIHsKKyAgICAgICAgICAgICAgICAgICAvLyAgV2UgZm91bmQgYSBsZWFmIG5vZGUgY29ycmVzcG9uZGluZyB0byBhIHtib2Z9IHRoYXQgd2FzCisgICAgICAgICAgICAgICAgICAgLy8gICAgZXhwbGljaXRseSB3cml0dGVuIGludG8gYSBydWxlLgorICAgICAgICAgICAgICAgICAgIC8vICBBZGQgZXZlcnl0aGluZyBmcm9tIHRoZSBmb2xsb3dQb3Mgc2V0IG9mIHRoaXMgbm9kZSB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAvLyAgICBmb2xsb3dQb3Mgc2V0IG9mIHRoZSBmYWtlIGJvZk5vZGUgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmVlLgorICAgICAgICAgICAgICAgICAgIC8vICAKKyAgICAgICAgICAgICAgICAgICBib2ZOb2RlLmZGb2xsb3dQb3MuYWRkQWxsKHN0YXJ0Tm9kZS5mRm9sbG93UG9zKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgYnVpbGRTdGF0ZVRhYmxlKCkgICAgRGV0ZXJtaW5lIHRoZSBzZXQgb2YgcnVudGltZSBERkEgc3RhdGVzIGFuZCB0aGUKKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24gdGFibGVzIGZvciB0aGVzZSBzdGF0ZXMsIGJ5IHRoZSBhbGdvcml0aG0KKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIG9mIGZpZy4gMy40NCBpbiBBaG8uCisgICAgICAgLy8KKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIE1vc3Qgb2YgdGhlIGNvbW1lbnRzIGFyZSBxdW90ZXMgb2YgQWhvJ3MgcHN1ZWRvLWNvZGUuCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgdm9pZCBidWlsZFN0YXRlVGFibGUoKSB7CisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIEFkZCBhIGR1bW15IHN0YXRlIDAgLSB0aGUgc3RvcCBzdGF0ZS4gIE5vdCBmcm9tIEFoby4KKyAgICAgICAgICAgaW50ICAgICAgbGFzdElucHV0U3ltYm9sID0gZlJCLmZTZXRCdWlsZGVyLmdldE51bUNoYXJDYXRlZ29yaWVzKCkgLSAxOworICAgICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yIGZhaWxTdGF0ZSA9IG5ldyBSQkJJU3RhdGVEZXNjcmlwdG9yKGxhc3RJbnB1dFN5bWJvbCk7CisgICAgICAgICAgIGZEU3RhdGVzLmFkZChmYWlsU3RhdGUpOworCisgICAgICAgICAgIC8vIGluaXRpYWxseSwgdGhlIG9ubHkgdW5tYXJrZWQgc3RhdGUgaW4gRHN0YXRlcyBpcyBmaXJzdHBvcyhyb290KSwKKyAgICAgICAgICAgLy8gICAgICAgd2hlcmUgdG9vdCBpcyB0aGUgcm9vdCBvZiB0aGUgc3ludGF4IHRyZWUgZm9yIChyKSM7CisgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3IgaW5pdGlhbFN0YXRlID0gbmV3IFJCQklTdGF0ZURlc2NyaXB0b3IobGFzdElucHV0U3ltYm9sKTsKKyAgICAgICAgICAgaW5pdGlhbFN0YXRlLmZQb3NpdGlvbnMuYWRkQWxsKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdLmZGaXJzdFBvc1NldCk7CisgICAgICAgICAgIGZEU3RhdGVzLmFkZChpbml0aWFsU3RhdGUpOworCisgICAgICAgICAgIC8vIHdoaWxlIHRoZXJlIGlzIGFuIHVubWFya2VkIHN0YXRlIFQgaW4gRHN0YXRlcyBkbyBiZWdpbgorICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yIFQgPSBudWxsOworICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICB0eDsKKyAgICAgICAgICAgICAgIGZvciAodHg9MTsgdHg8ZkRTdGF0ZXMuc2l6ZSgpOyB0eCsrKSB7CisgICAgICAgICAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciB0ZW1wICA9IChSQkJJU3RhdGVEZXNjcmlwdG9yIClmRFN0YXRlcy5nZXQodHgpOworICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLmZNYXJrZWQgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgVCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmIChUID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgLy8gbWFyayBUOworICAgICAgICAgICAgICAgVC5mTWFya2VkID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggaW5wdXQgc3ltYm9sIGEgZG8gYmVnaW4KKyAgICAgICAgICAgICAgIGludCAgYTsKKyAgICAgICAgICAgICAgIGZvciAoYSA9IDE7IGE8PWxhc3RJbnB1dFN5bWJvbDsgYSsrKSB7CisgICAgICAgICAgICAgICAgICAgLy8gbGV0IFUgYmUgdGhlIHNldCBvZiBwb3NpdGlvbnMgdGhhdCBhcmUgaW4gZm9sbG93cG9zKHApCisgICAgICAgICAgICAgICAgICAgLy8gICAgZm9yIHNvbWUgcG9zaXRpb24gcCBpbiBUCisgICAgICAgICAgICAgICAgICAgLy8gICAgc3VjaCB0aGF0IHRoZSBzeW1ib2wgYXQgcG9zaXRpb24gcCBpcyBhOworICAgICAgICAgICAgICAgICAgIFNldCAgICAgICAgVSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgICBwOworICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yICAgcGl0ID0gVC5mUG9zaXRpb25zLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgcCA9IChSQkJJTm9kZSApcGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwLmZUeXBlID09IFJCQklOb2RlLmxlYWZDaGFyKSAmJiAgKHAuZlZhbCA9PSBhKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVS5hZGRBbGwocC5mRm9sbG93UG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgIC8vIGlmIFUgaXMgbm90IGVtcHR5IGFuZCBub3QgaW4gRFN0YXRlcyB0aGVuCisgICAgICAgICAgICAgICAgICAgaW50ICB1eCA9IDA7CisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiAgICBVaW5Ec3RhdGVzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgaWYgKFUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQoVS5zaXplKCkgPiAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaW50ICBpeDsKKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpeD0wOyBpeDxmRFN0YXRlcy5zaXplKCk7IGl4KyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3IgdGVtcDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wMiA9IChSQkJJU3RhdGVEZXNjcmlwdG9yIClmRFN0YXRlcy5nZXQoaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFUuZXF1YWxzKHRlbXAyLmZQb3NpdGlvbnMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSAgPSB0ZW1wMi5mUG9zaXRpb25zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV4ID0gaXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVWluRHN0YXRlcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgVSBhcyBhbiB1bm1hcmtlZCBzdGF0ZSB0byBEc3RhdGVzCisgICAgICAgICAgICAgICAgICAgICAgIGlmICghVWluRHN0YXRlcykKKyAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciBuZXdTdGF0ZSA9IG5ldyBSQkJJU3RhdGVEZXNjcmlwdG9yKGxhc3RJbnB1dFN5bWJvbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZS5mUG9zaXRpb25zID0gVTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEU3RhdGVzLmFkZChuZXdTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB1eCA9IGZEU3RhdGVzLnNpemUoKS0xOworICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gRHRyYW5bVCwgYV0gOj0gVTsKKyAgICAgICAgICAgICAgICAgICAgICAgVC5mRHRyYW5bYV0gPSB1eDsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICB9CisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBmbGFnQWNjZXB0aW5nU3RhdGVzICAgIElkZW50aWZ5IGFjY2VwdGluZyBzdGF0ZXMuCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgIEZpcnN0IGdldCBhIGxpc3Qgb2YgYWxsIG9mIHRoZSBlbmQgbWFya2VyIG5vZGVzLgorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBUaGVuLCBmb3IgZWFjaCBzdGF0ZSBzLAorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcyBjb250YWlucyBvbmUgb2YgdGhlIGVuZCBtYXJrZXIgbm9kZXMgaW4gaXRzIGxpc3Qgb2YgdHJlZSBwb3NpdGlvbnMgdGhlbgorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgaXMgYW4gYWNjZXB0aW5nIHN0YXRlLgorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZvaWQgICAgIGZsYWdBY2NlcHRpbmdTdGF0ZXMoKSB7CisgICAgICAgICAgIExpc3QgICAgICAgIGVuZE1hcmtlck5vZGVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICBSQkJJTm9kZSAgICBlbmRNYXJrZXI7CisgICAgICAgICAgIGludCAgICAgaTsKKyAgICAgICAgICAgaW50ICAgICBuOworCisgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdLmZpbmROb2RlcyhlbmRNYXJrZXJOb2RlcywgUkJCSU5vZGUuZW5kTWFyayk7CisKKyAgICAgICAgICAgZm9yIChpPTA7IGk8ZW5kTWFya2VyTm9kZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgIGVuZE1hcmtlciA9IChSQkJJTm9kZSllbmRNYXJrZXJOb2Rlcy5nZXQoaSk7CisgICAgICAgICAgICAgICBmb3IgKG49MDsgbjxmRFN0YXRlcy5zaXplKCk7IG4rKykgeworICAgICAgICAgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3Igc2QgPSAoUkJCSVN0YXRlRGVzY3JpcHRvciApZkRTdGF0ZXMuZ2V0KG4pOworICAgICAgICAgICAgICAgICAgIC8vaWYgKHNkLmZQb3NpdGlvbnMuaW5kZXhPZihlbmRNYXJrZXIpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICBpZiAoc2QuZlBvc2l0aW9ucy5jb250YWlucyhlbmRNYXJrZXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgIC8vIEFueSBub24temVybyB2YWx1ZSBmb3IgZkFjY2VwdGluZyBtZWFucyB0aGlzIGlzIGFuIGFjY2VwdGluZyBub2RlLgorICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdmFsdWUgaXMgd2hhdCB3aWxsIGJlIHJldHVybmVkIHRvIHRoZSB1c2VyIGFzIHRoZSBicmVhayBzdGF0dXMuCisgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIG5vIG90aGVyIHZhbHVlIHdhcyBzcGVjaWZpZWQsIGZvcmNlIGl0IHRvIC0xLgorCisgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZC5mQWNjZXB0aW5nPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGF0ZSBoYXNuJ3QgYmVlbiBtYXJrZWQgYXMgYWNjZXB0aW5nIHlldC4gIERvIGl0IG5vdy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkLmZBY2NlcHRpbmcgPSBlbmRNYXJrZXIuZlZhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZC5mQWNjZXB0aW5nID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZC5mQWNjZXB0aW5nID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNkLmZBY2NlcHRpbmc9PS0xICYmIGVuZE1hcmtlci5mVmFsICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJvdGggbG9va2FoZWFkIGFuZCBub24tbG9va2FoZWFkIGFjY2VwdGluZyBmb3IgdGhpcyBzdGF0ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhdm9yIHRoZSBsb29rLWFoZWFkLiAgRXhwZWRpZW50IGZvciBsaW5lIGJyZWFrLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIG5lZWQgYSBtb3JlIGVsZWdhbnQgcmVzb2x1dGlvbiBmb3IgY29uZmxpY3RpbmcgcnVsZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBzZC5mQWNjZXB0aW5nID0gZW5kTWFya2VyLmZWYWw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGltcGxpY2l0IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBzZC5mQWNjZXB0aW5nIGFscmVhZHkgaGFkIGEgdmFsdWUgb3RoZXIgdGhhbiAwIG9yIC0xLCBsZWF2ZSBpdCBiZS4KKworICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZW5kIG1hcmtlciBub2RlIGlzIGZyb20gYSBsb29rLWFoZWFkIHJ1bGUsIHNldAorICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHRoZSBmTG9va0FoZWFkIGZpZWxkIG9yIHRoaXMgc3RhdGUgYWxzby4KKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuZE1hcmtlci5mTG9va0FoZWFkRW5kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAgZG9uJ3QgY2hhbmdlIHZhbHVlIGlmIGFscmVhZHkgc2V0PworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIGFsbG93IGZvciBtb3JlIHRoYW4gb25lIGFjdGl2ZSBsb29rLWFoZWFkIHJ1bGUgaW4gZW5naW5lLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgIE1ha2UgdmFsdWUgaGVyZSBhbiBpbmRleCB0byBhIHNpZGUgYXJyYXkgaW4gZW5naW5lPworICAgICAgICAgICAgICAgICAgICAgICAgICAgc2QuZkxvb2tBaGVhZCA9IHNkLmZBY2NlcHRpbmc7CisgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICB9CisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgIGZsYWdMb29rQWhlYWRTdGF0ZXMgICBWZXJ5IHNpbWlsYXIgdG8gZmxhZ0FjY2VwdGluZ1N0YXRlcywgYWJvdmUuCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgdm9pZCAgICAgZmxhZ0xvb2tBaGVhZFN0YXRlcygpIHsKKyAgICAgICAgICAgTGlzdCAgICAgICAgbG9va0FoZWFkTm9kZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgIFJCQklOb2RlICAgIGxvb2tBaGVhZE5vZGU7CisgICAgICAgICAgIGludCAgICAgaTsKKyAgICAgICAgICAgaW50ICAgICBuOworCisgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdLmZpbmROb2Rlcyhsb29rQWhlYWROb2RlcywgUkJCSU5vZGUubG9va0FoZWFkKTsKKyAgICAgICAgICAgZm9yIChpPTA7IGk8bG9va0FoZWFkTm9kZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgIGxvb2tBaGVhZE5vZGUgPSAoUkJCSU5vZGUgKWxvb2tBaGVhZE5vZGVzLmdldChpKTsKKworICAgICAgICAgICAgICAgZm9yIChuPTA7IG48ZkRTdGF0ZXMuc2l6ZSgpOyBuKyspIHsKKyAgICAgICAgICAgICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yIHNkID0gKFJCQklTdGF0ZURlc2NyaXB0b3IgKWZEU3RhdGVzLmdldChuKTsKKyAgICAgICAgICAgICAgICAgICBpZiAoc2QuZlBvc2l0aW9ucy5jb250YWlucyhsb29rQWhlYWROb2RlKSkgeworICAgICAgICAgICAgICAgICAgICAgICBzZC5mTG9va0FoZWFkID0gbG9va0FoZWFkTm9kZS5mVmFsOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgIH0KKworCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgIGZsYWdUYWdnZWRTdGF0ZXMKKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkICAgICBmbGFnVGFnZ2VkU3RhdGVzKCkgeworICAgICAgICAgICBMaXN0ICAgICAgICB0YWdOb2RlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgUkJCSU5vZGUgICAgdGFnTm9kZTsKKyAgICAgICAgICAgaW50ICAgICBpOworICAgICAgICAgICBpbnQgICAgIG47CisKKyAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZmluZE5vZGVzKHRhZ05vZGVzLCBSQkJJTm9kZS50YWcpOworICAgICAgICAgICBmb3IgKGk9MDsgaTx0YWdOb2Rlcy5zaXplKCk7IGkrKykgeyAgICAgICAgICAgICAgICAgICAvLyBGb3IgZWFjaCB0YWcgbm9kZSB0IChhbGwgb2YgJ2VtKQorICAgICAgICAgICAgICAgdGFnTm9kZSA9IChSQkJJTm9kZSApdGFnTm9kZXMuZ2V0KGkpOworCisgICAgICAgICAgICAgICBmb3IgKG49MDsgbjxmRFN0YXRlcy5zaXplKCk7IG4rKykgeyAgICAgICAgICAgICAgLy8gICAgRm9yIGVhY2ggc3RhdGUgIHMgKHJvdyBpbiB0aGUgc3RhdGUgdGFibGUpCisgICAgICAgICAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciBzZCA9IChSQkJJU3RhdGVEZXNjcmlwdG9yIClmRFN0YXRlcy5nZXQobik7CisgICAgICAgICAgICAgICAgICAgaWYgKHNkLmZQb3NpdGlvbnMuY29udGFpbnModGFnTm9kZSkpIHsgICAgICAgLy8gICAgICAgaWYgIHMgaW5jbHVkZSB0aGUgdGFnIG5vZGUgdAorICAgICAgICAgICAgICAgICAgICAgICBzZC5mVGFnVmFscy5hZGQobmV3IEludGVnZXIodGFnTm9kZS5mVmFsKSk7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgfQorCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICBtZXJnZVJ1bGVTdGF0dXNWYWxzCisgICAgICAgLy8KKyAgICAgICAvLyAgICAgIEFsbG9jYXRlIHBvc2l0aW9ucyBpbiB0aGUgIGdsb2JhbCBhcnJheSBvZiBydWxlIHN0YXR1cyB7dGFnfSB2YWx1ZXMKKyAgICAgICAvLworICAgICAgIC8vICAgICAgVGhlIFJCQkkgcnVudGltZSB1c2VzIGFuIGFycmF5IG9mIHtzZXRzIG9mIHN0YXR1cyB2YWx1ZXN9IHRoYXQgY2FuCisgICAgICAgLy8gICAgICBiZSByZXR1cm5lZCBmb3IgYm91bmRhcmllcy4gIEVhY2ggYWNjZXB0aW5nIHN0YXRlIHRoYXQgaGFzIG5vbi16ZXJvCisgICAgICAgLy8gICAgICBzdGF0dXMgaW5jbHVkZXMgYW4gaW5kZXggaW50byB0aGlzIGFycmF5LiAgVGhlIGZvcm1hdCBvZiB0aGUgYXJyYXkKKyAgICAgICAvLyAgICAgIGlzIAorICAgICAgIC8vICAgICAgICAgICBOdW0gb2Ygc3RhdHVzIHZhbHVlcyBpbiBncm91cCAxCisgICAgICAgLy8gICAgICAgICAgICAgIHN0YXR1cyB2YWwKKyAgICAgICAvLyAgICAgICAgICAgICAgc3RhdHVzIHZhbAorICAgICAgIC8vICAgICAgICAgICAgICAuLi4KKyAgICAgICAvLyAgICAgICAgICAgTnVtIG9mIHN0YXR1cyB2YWxzIGluIGdyb3VwIDIKKyAgICAgICAvLyAgICAgICAgICAgICAgc3RhdHVzIHZhbAorICAgICAgIC8vICAgICAgICAgICAgICBzdGF0dXMgdmFsCisgICAgICAgLy8gICAgICAgICAgICAgIC4uLgorICAgICAgIC8vICAgICAgICAgICBldGMuCisgICAgICAgLy8KKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAKKyAgICAgICB2b2lkICBtZXJnZVJ1bGVTdGF0dXNWYWxzKCkgeworICAgICAgICAgICAvLworICAgICAgICAgICAvLyAgVGhlIGJhc2ljIG91dGxpbmUgb2Ygd2hhdCBoYXBwZW5zIGhlcmUgaXMgdGhpcy4uLgorICAgICAgICAgICAvLworICAgICAgICAgICAvLyAgICBmb3IgZWFjaCBzdGF0ZSBpbiB0aGlzIHN0YXRlIHRhYmxlCisgICAgICAgICAgIC8vICAgICAgIGlmIHRoZSBzdGF0dXMgdGFnIGxpc3QgZm9yIHRoaXMgc3RhdGUgaXMgaW4gdGhlIGdsb2JhbCBzdGF0dXNlcyBsaXN0CisgICAgICAgICAgIC8vICAgICAgICAgICByZWNvcmQgd2hlcmUgYW5kCisgICAgICAgICAgIC8vICAgICAgICAgICBjb250aW51ZSB3aXRoIHRoZSBuZXh0IHN0YXRlCisgICAgICAgICAgIC8vICAgICAgIGVsc2UKKyAgICAgICAgICAgLy8gICAgICAgICAgIGFkZCB0aGUgdGFnIGxpc3QgZm9yIHRoaXMgc3RhdGUgdG8gdGhlIGdsb2JhbCBsaXN0LgorICAgICAgICAgICAvLworICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgaW50IG47CisgICAgICAgICAgIAorICAgICAgICAgICAvLyBQcmUtbG9hZCBhIHNpbmdsZSB0YWcgb2YgezB9IGludG8gdGhlIHRhYmxlLgorICAgICAgICAgICAvLyAgIFdlIHdpbGwgbmVlZCB0aGlzIGFzIGEgZGVmYXVsdCwgZm9yIHJ1bGUgc2V0cyB3aXRoIG5vIGV4cGxpY2l0IHRhZ2dpbmcsCisgICAgICAgICAgIC8vICAgb3Igd2l0aCBleHBsaWNpdCB0YWdnaW5nIG9mIHswfS4KKyAgICAgICAgICAgaWYgKGZSQi5mUnVsZVN0YXR1c1ZhbHMuc2l6ZSgpID09IDApIHsgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgZlJCLmZSdWxlU3RhdHVzVmFscy5hZGQobmV3IEludGVnZXIoMSkpOyAgICAvLyBOdW0gb2Ygc3RhdHVzZXMgaW4gZ3JvdXAKKyAgICAgICAgICAgICAgIGZSQi5mUnVsZVN0YXR1c1ZhbHMuYWRkKG5ldyBJbnRlZ2VyKDApKTsgICAgLy8gICBhbmQgb3VyIHNpbmdsZSBzdGF0dXMgb2YgemVybworICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBTb3J0ZWRTZXQgczAgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgSW50ZWdlciBpemVybyA9IG5ldyBJbnRlZ2VyKDApOworICAgICAgICAgICAgICAgZlJCLmZTdGF0dXNTZXRzLnB1dChzMCwgaXplcm8pOworICAgICAgICAgICAgICAgU29ydGVkU2V0IHMxID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgICAgICAgIHMxLmFkZChpemVybyk7CisgICAgICAgICAgICAgICBmUkIuZlN0YXR1c1NldHMucHV0KHMwLCBpemVybyk7CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLyAgICBGb3IgZWFjaCBzdGF0ZSwgY2hlY2sgd2hldGhlciB0aGUgc3RhdGUncyBzdGF0dXMgdGFnIHZhbHVlcyBhcmUKKyAgICAgICAgICAgLy8gICAgICAgYWxyZWFkeSBlbnRlcmVkIGludG8gdGhlIHN0YXR1cyB2YWx1ZXMgYXJyYXksIGFuZCBhZGQgdGhlbSBpZiBub3QuCisgICAgICAgICAgIGZvciAobj0wOyBuPGZEU3RhdGVzLnNpemUoKTsgbisrKSB7CisgICAgICAgICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yIHNkID0gKFJCQklTdGF0ZURlc2NyaXB0b3IgKWZEU3RhdGVzLmdldChuKTsKKyAgICAgICAgICAgICAgIFNldCBzdGF0dXNWYWxzID0gc2QuZlRhZ1ZhbHM7CisgICAgICAgICAgICAgICBJbnRlZ2VyIGFycmF5SW5kZXhJID0gKEludGVnZXIpZlJCLmZTdGF0dXNTZXRzLmdldChzdGF0dXNWYWxzKTsKKyAgICAgICAgICAgICAgIGlmIChhcnJheUluZGV4SSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgZW5jb3VudGVyIG9mIHRoaXMgc2V0IG9mIHN0YXR1cyB2YWx1ZXMuCisgICAgICAgICAgICAgICAgICAgLy8gICBBZGQgdGhlbSB0byB0aGUgc3RhdHVzU2V0cyBtYXAsIFRoaXMgbWFwIGFzc29jaWF0ZXMKKyAgICAgICAgICAgICAgICAgICAvLyAgIHRoZSBzZXQgb2Ygc3RhdHVzIHZhbHVlcyB3aXRoIGFuIGluZGV4IGluIHRoZSBydW50aW1lIHN0YXR1cyAKKyAgICAgICAgICAgICAgICAgICAvLyAgIHZhbHVlcyBhcnJheS4KKyAgICAgICAgICAgICAgICAgICBhcnJheUluZGV4SSA9IG5ldyBJbnRlZ2VyKGZSQi5mUnVsZVN0YXR1c1ZhbHMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICBmUkIuZlN0YXR1c1NldHMucHV0KHN0YXR1c1ZhbHMsIGFycmF5SW5kZXhJKTsKKyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIG5ldyBzZXQgb2Ygc3RhdHVzIHZhbHVlcyB0byB0aGUgdmVjdG9yIG9mIHZhbHVlcyB0aGF0CisgICAgICAgICAgICAgICAgICAgLy8gICB3aWxsIGV2ZW50dWFsbHkgYmVjb21lIHRoZSBhcnJheSB1c2VkIGJ5IHRoZSBydW50aW1lIGVuZ2luZS4KKyAgICAgICAgICAgICAgICAgICBmUkIuZlJ1bGVTdGF0dXNWYWxzLmFkZChuZXcgSW50ZWdlcihzdGF0dXNWYWxzLnNpemUoKSkpOworICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RhdHVzVmFscy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgZlJCLmZSdWxlU3RhdHVzVmFscy5hZGQoaXQubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgLy8gU2F2ZSB0aGUgcnVudGltZSBhcnJheSBpbmRleCBiYWNrIGludG8gdGhlIHN0YXRlIGRlc2NyaXB0b3IuCisgICAgICAgICAgICAgICBzZC5mVGFnc0lkeCA9IGFycmF5SW5kZXhJLmludFZhbHVlKCk7CisgICAgICAgICAgIH0gICAgICAgICAgCisgICAgICAgfQorCisKKworCisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gIHByaW50UG9zU2V0cyAgIERlYnVnIGZ1bmN0aW9uLiAgRHVtcCBOdWxsYWJsZSwgZmlyc3Rwb3MsIGxhc3Rwb3MgYW5kIGZvbGxvd3BvcworICAgICAgIC8vICAgICAgICAgICAgICAgICBmb3IgZWFjaCBub2RlIGluIHRoZSB0cmVlLgorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIHZvaWQgcHJpbnRQb3NTZXRzKFJCQklOb2RlIG4pIHsKKyAgICAgICAgICAgaWYgKG49PW51bGwpIHsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgfQorICAgICAgICAgICBSQkJJTm9kZS5wcmludE5vZGUobik7CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICAgICAgIE51bGxhYmxlOiAgIiArIG4uZk51bGxhYmxlKTsKKworICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICBmaXJzdHBvczogICIpOworICAgICAgICAgICBwcmludFNldChuLmZGaXJzdFBvc1NldCk7CisKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgICAgICAgbGFzdHBvczogICAiKTsKKyAgICAgICAgICAgcHJpbnRTZXQobi5mTGFzdFBvc1NldCk7CisKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgICAgICAgZm9sbG93cG9zOiAiKTsKKyAgICAgICAgICAgcHJpbnRTZXQobi5mRm9sbG93UG9zKTsKKworICAgICAgICAgICBwcmludFBvc1NldHMobi5mTGVmdENoaWxkKTsKKyAgICAgICAgICAgcHJpbnRQb3NTZXRzKG4uZlJpZ2h0Q2hpbGQpOworICAgICAgIH0KKyAgICAgICAKKworCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIGdldFRhYmxlU2l6ZSgpICAgIENhbGN1bGF0ZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgcnVudGltZSBmb3JtIG9mIHRoaXMKKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuCisgICAgICAgLy8KKyAgICAgICAvLyAgICAgICAgICBOb3RlOiAgUmVmZXIgdG8gY29tbW9uL3JiYmlkYXRhLmggZnJvbSBJQ1U0QyBmb3IgdGhlIGRlY2xhcmF0aW9ucworICAgICAgIC8vICAgICAgICAgICAgICAgICBvZiB0aGUgc3RydWN0dXJlcyBiZWluZyBtYXRjaGVkIGJ5IHRoaXMgY2FsY3VsYXRpb24uCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgaW50ICBnZXRUYWJsZVNpemUoKSAgeworICAgICAgICAgICBpbnQgICAgc2l6ZSA9IDA7CisgICAgICAgICAgIGludCAgICBudW1Sb3dzOworICAgICAgICAgICBpbnQgICAgbnVtQ29sczsKKyAgICAgICAgICAgaW50ICAgIHJvd1NpemU7CisKKyAgICAgICAgICAgaWYgKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgc2l6ZSAgICA9IC8qc2l6ZW9mKFJCQklTdGF0ZVRhYmxlKSAtIDQgKi8gMTY7ICAgIC8vIFRoZSBoZWFkZXIsIHdpdGggbm8gcm93cyB0byB0aGUgdGFibGUuCisKKyAgICAgICAgICAgbnVtUm93cyA9IGZEU3RhdGVzLnNpemUoKTsKKyAgICAgICAgICAgbnVtQ29scyA9IGZSQi5mU2V0QnVpbGRlci5nZXROdW1DaGFyQ2F0ZWdvcmllcygpOworCisgICAgICAgICAgIC8vICBOb3RlICBUaGUgZGVjbGFyYXRpb24gb2YgUkJCSVN0YXRlVGFibGVSb3cgaXMgZm9yIGEgdGFibGUgb2YgdHdvIGNvbHVtbnMuCisgICAgICAgICAgIC8vICAgICAgICBUaGVyZWZvcmUgd2Ugc3VidHJhY3QgdHdvIGZyb20gbnVtQ29scyB3aGVuIGRldGVybWluaW5nCisgICAgICAgICAgIC8vICAgICAgICBob3cgbXVjaCBzdG9yYWdlIHRvIGFkZCB0byBhIHJvdyBmb3IgdGhlIHRvdGFsIGNvbHVtbnMuCisgICAgICAgICAgIC8vIHJvd1NpemUgPSBzaXplb2YoUkJCSVN0YXRlVGFibGVSb3cpICsgc2l6ZW9mKHVpbnQxNl90KSoobnVtQ29scy0yKTsKKyAgICAgICAgICAgcm93U2l6ZSA9IDggKyAyKm51bUNvbHM7CisgICAgICAgICAgIHNpemUgICArPSBudW1Sb3dzICogcm93U2l6ZTsKKyAgICAgICAgICAgd2hpbGUgKHNpemUgJSA4ID4gMCkgeyAgICAvLyBTaXplIG11c3QgYmUgbXVsdGlwbGUgb2YgOCBieXRlcyBpbiBzaXplLgorICAgICAgICAgICAgICAgc2l6ZSsrOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgcmV0dXJuIHNpemU7CisgICAgICAgfQorCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgZXhwb3J0VGFibGUoKSAgICBleHBvcnQgdGhlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUgaW4gdGhlIElDVTRDIGZvcm1hdC4KKyAgICAgICAvLworICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBNb3N0IG9mIHRoZSB0YWJsZSBpcyAxNiBiaXQgc2hvcnRzLiAgVGhpcyBmdW5jdGlvbiBleHBvcnRzCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIHRoZSB3aG9sZSB0aGluZyBhcyBhbiBhcnJheSBvZiBzaG9ydHMuCisgICAgICAgLy8KKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgVGhlIHNpemUgb2YgdGhlIGFycmF5IG11c3QgYmUgcm91bmRlZCB1cCB0byBhIG11bHRpcGxlIG9mCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIDggYnl0ZXMuCisgICAgICAgLy8KKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgU2VlIHN0cnVjdCBSQkJJU3RhdGVUYWJsZSBpbiBJQ1U0QywgY29tbW9uL3JiYmlkYXRhLmgKKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAKKyAgICAgICBzaG9ydCBbXSBleHBvcnRUYWJsZSgpIHsKKyAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgIHN0YXRlOworICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgY29sOworCisgICAgICAgICAgIGlmIChmUkIuZlRyZWVSb290c1tmUm9vdEl4XSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNob3J0WzBdOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgQXNzZXJ0LmFzc3J0KGZSQi5mU2V0QnVpbGRlci5nZXROdW1DaGFyQ2F0ZWdvcmllcygpIDwgMHg3ZmZmICYmCisgICAgICAgICAgICAgICBmRFN0YXRlcy5zaXplKCkgPCAweDdmZmYpOyAKKworICAgICAgICAgICBpbnQgbnVtU3RhdGVzID0gZkRTdGF0ZXMuc2l6ZSgpOworICAgIAorICAgICAgICAgICAvLyBTaXplIG9mIHRhYmxlIHNpemUgaW4gc2hvcnRzLgorICAgICAgICAgICAvLyAgdGhlICI0IiBpcyB0aGUgc2l6ZSBvZiBzdHJ1Y3QgUkJCSVN0YXRlVGFibGVSb3csIHRoZSByb3cgaGVhZGVyIHBhcnQgb25seS4KKyAgICAgICAgICAgaW50IHJvd0xlbiA9IDQgKyBmUkIuZlNldEJ1aWxkZXIuZ2V0TnVtQ2hhckNhdGVnb3JpZXMoKTsKKyAgICAgICAgICAgaW50IHRhYmxlU2l6ZSA9IGdldFRhYmxlU2l6ZSgpIC8gMjsKKworICAgICAgICAgICAKKyAgICAgICAgICAgc2hvcnQgW10gdGFibGUgPSBuZXcgc2hvcnRbdGFibGVTaXplXTsKKyAgICAgICAgICAgCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIEZpbGwgaW4gdGhlIGhlYWRlciBmaWVsZHMuCisgICAgICAgICAgIC8vICAgICAgQW5ub3lpbmcgYmVjYXVzZSB0aGV5IHJlYWxseSB3YW50IHRvIGJlIGludHMsIG5vdCBzaG9ydHMuCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIFJCQklTdGF0ZVRhYmxlLmZOdW1TdGF0ZXMKKyAgICAgICAgICAgdGFibGVbUkJCSURhdGFXcmFwcGVyLk5VTVNUQVRFU10gICA9IChzaG9ydCkobnVtU3RhdGVzID4+PiAxNik7CisgICAgICAgICAgIHRhYmxlW1JCQklEYXRhV3JhcHBlci5OVU1TVEFURVMrMV0gPSAoc2hvcnQpKG51bVN0YXRlcyAmIDB4MDAwMGZmZmYpOworCisgICAgICAgICAgIC8vIFJCQklTdGF0ZVRhYmxlLmZSb3dMZW4KKyAgICAgICAgICAgdGFibGVbUkJCSURhdGFXcmFwcGVyLlJPV0xFTl0gICA9IChzaG9ydCkocm93TGVuID4+PiAxNik7CisgICAgICAgICAgIHRhYmxlW1JCQklEYXRhV3JhcHBlci5ST1dMRU4rMV0gPSAoc2hvcnQpKHJvd0xlbiAmIDB4MDAwMGZmZmYpOworICAgICAgICAgICAKKyAgICAgICAgICAgLy8gUkJCSVN0YXRlVGFibGUuZkZsYWdzCisgICAgICAgICAgIGludCBmbGFncyA9IDA7CisgICAgICAgICAgIGlmIChmUkIuZkxvb2tBaGVhZEhhcmRCcmVhaykgeworICAgICAgICAgICAgICAgZmxhZ3MgIHw9IFJCQklEYXRhV3JhcHBlci5SQkJJX0xPT0tBSEVBRF9IQVJEX0JSRUFLOworICAgICAgICAgICB9CisgICAgICAgICAgIGlmIChmUkIuZlNldEJ1aWxkZXIuc2F3Qk9GKCkpIHsKKyAgICAgICAgICAgICAgIGZsYWdzICB8PSBSQkJJRGF0YVdyYXBwZXIuUkJCSV9CT0ZfUkVRVUlSRUQ7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgdGFibGVbUkJCSURhdGFXcmFwcGVyLkZMQUdTXSAgID0gKHNob3J0KShmbGFncyA+Pj4gMTYpOworICAgICAgICAgICB0YWJsZVtSQkJJRGF0YVdyYXBwZXIuRkxBR1MrMV0gPSAoc2hvcnQpKGZsYWdzICYgMHgwMDAwZmZmZik7CisgICAgICAgICAgIAorICAgICAgICAgICBpbnQgbnVtQ2hhckNhdGVnb3JpZXMgPSBmUkIuZlNldEJ1aWxkZXIuZ2V0TnVtQ2hhckNhdGVnb3JpZXMoKTsKKyAgICAgICAgICAgZm9yIChzdGF0ZT0wOyBzdGF0ZTxudW1TdGF0ZXM7IHN0YXRlKyspIHsKKyAgICAgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3Igc2QgPSAoUkJCSVN0YXRlRGVzY3JpcHRvciApZkRTdGF0ZXMuZ2V0KHN0YXRlKTsKKyAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICByb3cgPSA4ICsgc3RhdGUqcm93TGVuOworICAgICAgICAgICAgICAgQXNzZXJ0LmFzc3J0ICgtMzI3NjggPCBzZC5mQWNjZXB0aW5nICYmIHNkLmZBY2NlcHRpbmcgPD0gMzI3NjcpOworICAgICAgICAgICAgICAgQXNzZXJ0LmFzc3J0ICgtMzI3NjggPCBzZC5mTG9va0FoZWFkICYmIHNkLmZMb29rQWhlYWQgPD0gMzI3NjcpOworICAgICAgICAgICAgICAgdGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPSAoc2hvcnQpc2QuZkFjY2VwdGluZzsKKyAgICAgICAgICAgICAgIHRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdID0gKHNob3J0KXNkLmZMb29rQWhlYWQ7CisgICAgICAgICAgICAgICB0YWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuVEFHSURYXSAgICA9IChzaG9ydClzZC5mVGFnc0lkeDsKKyAgICAgICAgICAgICAgIGZvciAoY29sPTA7IGNvbDxudW1DaGFyQ2F0ZWdvcmllczsgY29sKyspIHsKKyAgICAgICAgICAgICAgICAgICB0YWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuTkVYVFNUQVRFUyArIGNvbF0gPSAoc2hvcnQpc2QuZkR0cmFuW2NvbF07CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAgICAgcmV0dXJuIHRhYmxlOworICAgICAgIH0KKworCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIHByaW50U2V0ICAgIERlYnVnIGZ1bmN0aW9uLiAgIFByaW50IHRoZSBjb250ZW50cyBvZiBhIHNldCBvZiBOb2RlcworICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIHZvaWQgcHJpbnRTZXQoQ29sbGVjdGlvbiBzKSB7CisgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gcy5pdGVyYXRvcigpOworICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICBSQkJJTm9kZSBuID0gKFJCQklOb2RlKWl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KG4uZlNlcmlhbE51bSwgOCk7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgfQorICAgICAgIAorCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIHByaW50U3RhdGVzICAgIERlYnVnIEZ1bmN0aW9uLiAgRHVtcCB0aGUgZnVsbHkgY29uc3RydWN0ZWQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4KKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAKKyAgICAgICB2b2lkIHByaW50U3RhdGVzKCkgeworICAgICAgICAgICBpbnQgICAgIGM7ICAgIC8vIGlucHV0ICJjaGFyYWN0ZXIiCisgICAgICAgICAgIGludCAgICAgbjsgICAgLy8gc3RhdGUgbnVtYmVyCisKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgic3RhdGUgfCAgICAgICAgICAgaSBuIHAgdSB0ICAgICBzIHkgbSBiIG8gbCBzIFxuIik7CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICAgIHwgQWNjICBMQSAgICBUYWciKTsKKyAgICAgICAgICAgZm9yIChjPTA7IGM8ZlJCLmZTZXRCdWlsZGVyLmdldE51bUNoYXJDYXRlZ29yaWVzKCk7IGMrKykgeworICAgICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQoKGludCljLCAzKTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICB8LS0tLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgIGZvciAoYz0wOyBjPGZSQi5mU2V0QnVpbGRlci5nZXROdW1DaGFyQ2F0ZWdvcmllcygpOyBjKyspIHsKKyAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIi0tLSIpOworICAgICAgICAgICB9CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuIik7CisKKyAgICAgICAgICAgZm9yIChuPTA7IG48ZkRTdGF0ZXMuc2l6ZSgpOyBuKyspIHsKKyAgICAgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3Igc2QgPSAoUkJCSVN0YXRlRGVzY3JpcHRvcilmRFN0YXRlcy5nZXQobik7CisgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludChuLCA1KTsKKyAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiB8ICIpOworICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludChzZC5mQWNjZXB0aW5nLCAzKTsKKyAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KHNkLmZMb29rQWhlYWQsIDQpOworICAgICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQoc2QuZlRhZ3NJZHgsIDYpOworICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIpOworICAgICAgICAgICAgICAgZm9yIChjPTA7IGM8ZlJCLmZTZXRCdWlsZGVyLmdldE51bUNoYXJDYXRlZ29yaWVzKCk7IGMrKykgeworICAgICAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KHNkLmZEdHJhbltjXSwgMyk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgICAgICAgICB9CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuXG4iKTsKKyAgICAgICB9CisgICAgICAgCisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBwcmludFJ1bGVTdGF0dXNUYWJsZSAgICBEZWJ1ZyBGdW5jdGlvbi4gIER1bXAgdGhlIGNvbW1vbiBydWxlIHN0YXR1cyB0YWJsZQorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIHZvaWQgcHJpbnRSdWxlU3RhdHVzVGFibGUoKSB7CisgICAgICAgICAgIGludCAgdGhpc1JlY29yZCA9IDA7CisgICAgICAgICAgIGludCAgbmV4dFJlY29yZCA9IDA7CisgICAgICAgICAgIGludCAgICAgIGk7CisgICAgICAgICAgIExpc3QgIHRibCA9IGZSQi5mUnVsZVN0YXR1c1ZhbHM7CisKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiaW5kZXggfCAgdGFncyBcbiIpOworICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCItLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKworICAgICAgICAgICB3aGlsZSAobmV4dFJlY29yZCA8IHRibC5zaXplKCkpIHsKKyAgICAgICAgICAgICAgIHRoaXNSZWNvcmQgPSBuZXh0UmVjb3JkOworICAgICAgICAgICAgICAgbmV4dFJlY29yZCA9IHRoaXNSZWNvcmQgKyAoKEludGVnZXIpdGJsLmdldCh0aGlzUmVjb3JkKSkuaW50VmFsdWUoKSArIDE7CisgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludCh0aGlzUmVjb3JkLCA3KTsKKyAgICAgICAgICAgICAgIGZvciAoaT10aGlzUmVjb3JkKzE7IGk8bmV4dFJlY29yZDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgaW50IHZhbCA9ICgoSW50ZWdlcil0YmwuZ2V0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KHZhbCwgNyk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgICAgICAgICB9CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuXG4iKTsKKyAgICAgICB9CisgICAgICAgCisKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJORkNoaW5lc2VQb3N0UHJvY2Vzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQk5GQ2hpbmVzZVBvc3RQcm9jZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDhjYjFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJORkNoaW5lc2VQb3N0UHJvY2Vzc29yLmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHBvc3QtcHJvY2Vzc29yIGZvciBDaGluZXNlIHRleHQuCisgKi8KK2ZpbmFsIGNsYXNzIFJCTkZDaGluZXNlUG9zdFByb2Nlc3NvciBpbXBsZW1lbnRzIFJCTkZQb3N0UHJvY2Vzc29yIHsKKyAgICBwcml2YXRlIE5GUnVsZVNldCBsYXN0UnVsZVNldDsKKyAgICBwcml2YXRlIGJvb2xlYW4gbG9uZ0Zvcm07CisgICAgcHJpdmF0ZSBpbnQgZm9ybWF0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gcnVsZXNldE5hbWVzID0geworICAgICAgICAiJXRyYWRpdGlvbmFsIiwgIiVzaW1wbGlmaWVkIiwgIiVhY2NvdW50aW5nIiwgIiV0aW1lIgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXphdGlvbiByb3V0aW5lIGZvciB0aGlzIGluc3RhbmNlLCBjYWxsZWQgb25jZQorICAgICAqIGltbWVkaWF0ZWx5IGFmdGVyIGZpcnN0IGNvbnN0cnVjdGlvbiBhbmQgbmV2ZXIgYWdhaW4uICAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0KFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIsIFN0cmluZyBydWxlcykgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFdvcmsgcm91dGluZS4gIFBvc3QgcHJvY2VzcyB0aGUgb3V0cHV0LCB3aGljaCB3YXMgZ2VuZXJhdGVkIGJ5IHRoZQorICAgICAqIHJ1bGVzZXQgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzKFN0cmluZ0J1ZmZlciBidWYsIE5GUnVsZVNldCBydWxlU2V0KSB7CisgICAgICAgIC8vIG1hcmtlcnMgZGVwZW5kIG9uIHdoYXQgcnVsZSBzZXQgd2UgYXJlIHVzaW5nCisKKyAgICAgICAgaWYgKHJ1bGVTZXQgIT0gbGFzdFJ1bGVTZXQpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gcnVsZVNldC5nZXROYW1lKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzZXROYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChydWxlc2V0TmFtZXNbaV0uZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9IGk7CisgICAgICAgICAgICAgICAgICAgIGxvbmdGb3JtID0gaSA9PSAxIHx8IGkgPT0gMzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGxvbmdGb3JtKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gVXRpbGl0eS5pbmRleE9mKGJ1ZiwiKiIpOyBpICE9IC0xOyBpID0gVXRpbGl0eS5pbmRleE9mKGJ1ZiwgIioiLCBpKSkgeworICAgICAgICAgICAgICAgIGJ1Zi5kZWxldGUoaSwgaSsxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZyBESUFOID0gIlx1OWVkZSI7IC8vIGRlY2ltYWwgcG9pbnQKKworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG1hcmtlcnMgPSB7CisgICAgICAgICAgICB7ICJcdTg0MmMiLCAiXHU1MTA0IiwgIlx1NTE0NiIsICJcdTMwMDciIH0sIC8vIG1hcmtlciBjaGFycywgbGFzdCBjaGFyIGlzIHRoZSAnemVybycKKyAgICAgICAgICAgIHsgIlx1NGUwNyIsICJcdTRlYmYiLCAiXHU1MTQ2IiwgIlx1MzAwNyIgfSwKKyAgICAgICAgICAgIHsgIlx1ODQyYyIsICJcdTUxMDQiLCAiXHU1MTQ2IiwgIlx1OTZmNiIgfQorICAgICAgICAgICAgLy8gbmVlZCBtYXJrZXJzIGZvciB0aW1lPworICAgICAgICB9OworCisgICAgICAgIC8vIHJlbW92ZSB1bndhbnRlZCBsaW5ncworICAgICAgICAvLyBhICcwJyAobGluZykgd2l0aCAqIG1pZ2h0IGJlIHJlbW92ZWQKKyAgICAgICAgLy8gbWFyayBvZmYgMTAsMDAwICdjaHVua3MnLCBtYXJrZXJzIGFyZSBaLCBZLCBXICh6aGFvLCB5aWksIGFuZCB3YW4pCisgICAgICAgIC8vIGFscmVhZHksIHdlIGF2b2lkIHR3byBsaW5ncyBpbiB0aGUgc2FtZSBjaHVuayAtLSBsaW5nIHdpdGhvdXQgKiB3aW5zCisgICAgICAgIC8vIG5vdywganVzdCBuZWVkICB0byBhdm9pZCBvcHRpb25hbCBsaW5ncyBpbiBhZGphY2VudCBjaHVua3MKKyAgICAgICAgLy8gcHJvY2VzcyByaWdodCB0byBsZWZ0CisKKyAgICAgICAgLy8gZGVjaXNpb24gbWF0cml4OgorICAgICAgICAvLyBzdGF0ZSwgc2l0dWF0aW9uCisgICAgICAgIC8vICAgICBzdGF0ZSAgICAgICAgIG5vbmUgICAgICAgb3B0LiAgICAgICAgICByZXEuCisgICAgICAgIC8vICAgICAtLS0tLSAgICAgICAgIC0tLS0gICAgICAgLS0tLSAgICAgICAgICAtLS0tCisgICAgICAgIC8vIG5vbmUgdG8gcmlnaHQgICAgIG5vbmUgICAgICAgb3B0LiAgICAgICAgICByZXEuICAKKyAgICAgICAgLy8gb3B0LiB0byByaWdodCAgICAgbm9uZSAgIGNsZWFyLCBub25lICBjbGVhciByaWdodCwgcmVxLgorICAgICAgICAvLyByZXEuIHRvIHJpZ2h0ICAgICBub25lICAgY2xlYXIsIG5vbmUgICAgICAgcmVxLgorCisgICAgICAgIC8vIG1hcmsgY2h1bmtzIHdpdGggJ3wnIGZvciBjb252ZW5pZW5jZQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmdbXSBtID0gbWFya2Vyc1tmb3JtYXRdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtLmxlbmd0aC0xOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgbiA9IFV0aWxpdHkuaW5kZXhPZihidWYsIG1baV0pOworICAgICAgICAgICAgICAgIGlmIChuICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQobittW2ldLmxlbmd0aCgpLCAnfCcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCB4ID0gVXRpbGl0eS5pbmRleE9mKGJ1ZiwgRElBTik7CisgICAgICAgIGlmICh4ID09IC0xKSB7CisgICAgICAgICAgICB4ID0gYnVmLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGludCBzID0gMDsgLy8gMCA9IG5vbmUgdG8gcmlnaHQsIDEgPSBvcHQuIHRvIHJpZ2h0LCAyID0gcmVxLiB0byByaWdodAorICAgICAgICBpbnQgbiA9IC0xOyAvLyBwcmV2aW91cyBvcHRpb25hbCBsaW5nCisgICAgICAgIFN0cmluZyBsaW5nID0gbWFya2Vyc1tmb3JtYXRdWzNdOworICAgICAgICB3aGlsZSAoeCA+PSAwKSB7CisgICAgICAgICAgICBpbnQgbSA9IFV0aWxpdHkubGFzdEluZGV4T2YoYnVmLCAifCIsIHgpOworICAgICAgICAgICAgaW50IG5uID0gVXRpbGl0eS5sYXN0SW5kZXhPZihidWYsIGxpbmcsIHgpOworICAgICAgICAgICAgaW50IG5zID0gMDsKKyAgICAgICAgICAgIGlmIChubiA+IG0pIHsKKyAgICAgICAgICAgICAgICBucyA9IChubiA+IDAgJiYgYnVmLmNoYXJBdChubi0xKSAhPSAnKicpID8gMiA6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4ID0gbSAtIDE7CisKKyAgICAgICAgICAgIC8vIGFjdHVhbGx5IG11Y2ggc2ltcGxlciwgYnV0IGxlYXZlIHRoaXMgdmVyYm9zZSBmb3Igbm93IHNvIGl0J3MgZWFzaWVyIHRvIGZvbGxvdworICAgICAgICAgICAgc3dpdGNoIChzKjMrbnMpIHsKKyAgICAgICAgICAgIGNhc2UgMDogLyogbm9uZSwgbm9uZSAqLworICAgICAgICAgICAgICAgIHMgPSBuczsgLy8gcmVkdW5kYW50CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOiAvKiBub25lLCBvcHQuICovCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSBubjsgLy8gcmVtZW1iZXIgb3B0aW9uYWwgbGluZyB0byByaWdodAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOiAvKiBub25lLCByZXEuICovCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzogLyogb3B0Liwgbm9uZSAqLworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDQ6IC8qIG9wdC4sIG9wdC4gKi8KKyAgICAgICAgICAgICAgICBidWYuZGVsZXRlKG5uLTEsIG5uK2xpbmcubGVuZ3RoKCkpOyAvLyBkZWxldGUgY3VycmVudCBvcHRpb25hbCBsaW5nCisgICAgICAgICAgICAgICAgcyA9IDA7CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA1OiAvKiBvcHQuLCByZXEuICovCisgICAgICAgICAgICAgICAgYnVmLmRlbGV0ZShuLTEsIG4rbGluZy5sZW5ndGgoKSk7IC8vIGRlbGV0ZSBwcmV2aW91cyBvcHRpb25hbCBsaW5nCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNjogLyogcmVxLiwgbm9uZSAqLworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDc6IC8qIHJlcS4sIG9wdC4gKi8KKyAgICAgICAgICAgICAgICBidWYuZGVsZXRlKG5uLTEsIG5uK2xpbmcubGVuZ3RoKCkpOyAvLyBkZWxldGUgY3VycmVudCBvcHRpb25hbCBsaW5nCisgICAgICAgICAgICAgICAgcyA9IDA7CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA4OiAvKiByZXEuLCByZXEuICovCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaSA9IGJ1Zi5sZW5ndGgoKTsgLS1pID49IDA7KSB7CisgICAgICAgICAgICBjaGFyIGMgPSBidWYuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJyonIHx8IGMgPT0gJ3wnKSB7CisgICAgICAgICAgICAgICAgYnVmLmRlbGV0ZShpLCBpKzEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJORlBvc3RQcm9jZXNzb3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCTkZQb3N0UHJvY2Vzc29yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUxMzE0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCTkZQb3N0UHJvY2Vzc29yLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIFBvc3QgcHJvY2Vzc29yIGZvciBSQk5GIG91dHB1dC4KKyAqIEBpbnRlcm5hbAorICovCitpbnRlcmZhY2UgUkJORlBvc3RQcm9jZXNzb3IgeworICAgIC8qKgorICAgICAqIEluaXRpYWxpemF0aW9uIHJvdXRpbmUgZm9yIHRoaXMgaW5zdGFuY2UsIGNhbGxlZCBvbmNlCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgZmlyc3QgY29uc3RydWN0aW9uIGFuZCBuZXZlciBhZ2Fpbi4KKyAgICAgKiBAcGFyYW0gZm9ybWF0dGVyIHRoZSBmb3JtYXR0ZXIgdGhhdCB3aWxsIGJlIHVzaW5nIHRoaXMgcG9zdC1wcm9jZXNzb3IKKyAgICAgKiBAcGFyYW0gcnVsZXMgdGhlIHNwZWNpYWwgcnVsZXMgZm9yIHRoaXMgcG9zdC1wcm9jZXNvcgorICAgICAqLworICAgIHZvaWQgaW5pdChSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLCBTdHJpbmcgcnVsZXMpOworCisgICAgLyoqCisgICAgICogV29yayByb3V0aW5lLiAgUG9zdCBwcm9jZXNzIHRoZSBvdXRwdXQsIHdoaWNoIHdhcyBnZW5lcmF0ZWQgYnkgdGhlCisgICAgICogcnVsZXNldCB3aXRoIHRoZSBnaXZlbiBuYW1lLgorICAgICAqIEBwYXJhbSBvdXRwdXQgdGhlIG91dHB1dCBvZiB0aGUgbWFpbiBSQk5GIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcnVsZVNldCB0aGUgcnVsZSBzZXQgb3JpZ2luYWxseSBpbnZva2VkIHRvIGdlbmVyYXRlIHRoZSBvdXRwdXQKKyAgICAgKi8KKyAgICB2b2lkIHByb2Nlc3MoU3RyaW5nQnVmZmVyIG91dHB1dCwgTkZSdWxlU2V0IHJ1bGVTZXQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmF3Q29sbGF0aW9uS2V5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SYXdDb2xsYXRpb25LZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTViNjM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmF3Q29sbGF0aW9uS2V5LmphdmEKQEAgLTAsMCArMSwxMDIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CeXRlQXJyYXlXcmFwcGVyOworCisvKioKKyAqIDxwPgorICogU2ltcGxlIGNsYXNzIHdyYXBwZXIgdG8gc3RvcmUgdGhlIGludGVybmFsIGJ5dGUgcmVwcmVzZW50YXRpb24gb2YgYSAKKyAqIENvbGxhdGlvbktleS4gVW5saWtlIHRoZSBDb2xsYXRpb25LZXksIHRoaXMgY2xhc3MgZG8gbm90IGNvbnRhaW4gaW5mb3JtYXRpb24gCisgKiBvbiB0aGUgc291cmNlIHN0cmluZyB0aGUgc29ydCBvcmRlciByZXByZXNlbnRzLiBSYXdDb2xsYXRpb25LZXkgaXMgbXV0YWJsZSAKKyAqIGFuZCB1c2VycyBjYW4gcmV1c2UgaXRzIG9iamVjdHMgd2l0aCB0aGUgbWV0aG9kIGluIAorICogUnVsZUJhc2VkQ29sbGF0b3IuZ2V0UmF3Q29sbGF0aW9uS2V5KC4uKS4KKyAqIDwvcD4KKyAqIDxwPgorICogUGxlYXNlIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9uIENvbGxhdGlvbktleSBmb3IgYSBkZXRhaWwgZGVzY3JpcHRpb24KKyAqIG9uIHRoZSBpbnRlcm5hbCBieXRlIHJlcHJlc2VudGF0aW9uLiBOb3RlIHRoZSBpbnRlcm5hbCBieXRlIHJlcHJlc2VudGF0aW9uIAorICogaXMgYWx3YXlzIG51bGwtdGVybWluYXRlZC4KKyAqIDwvcD4gCisgKiA8Y29kZT4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIFN0cmluZyBzdHJbXSA9IHsuLi4uLn07CisgKiBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICogUmF3Q29sbGF0aW9uS2V5IGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoMTI4KTsKKyAqIGZvciAoaW50IGkgPSAwOyBpICZsdDsgc3RyLmxlbmd0aDsgaSArKykgeworICogICAgIGNvbGxhdG9yLmdldFJhd0NvbGxhdGlvbktleShzdHJbaV0sIGtleSk7CisgKiAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGgga2V5LmJ5dGVzCisgKiB9CisgKiA8L2NvZGU+CisgKiA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IENvbXBhcmlzb24gYmV0d2VlbiBSYXdDb2xsYXRpb25LZXlzIGNyZWF0ZWQgYnkgCisgKiBkaWZmZXJlbnQgQ29sbGF0b3JzIG1pZ2h0IHJldHVybiBpbmNvcnJlY3QgcmVzdWx0cy4gIAorICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIENvbGxhdG9yLjwvcD4KKyAqIEBzdGFibGUgSUNVIDIuOAorICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICogQHNlZSBDb2xsYXRpb25LZXkKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFJhd0NvbGxhdGlvbktleSBleHRlbmRzIEJ5dGVBcnJheVdyYXBwZXIKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvciwgaW50ZXJuYWwgYnl0ZSBhcnJheSBpcyBudWxsIGFuZCBpdHMgc2l6ZSBzZXQgdG8gMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5KCkgCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFJhd0NvbGxhdGlvbktleSBjcmVhdGVkIHdpdGggYW4gZW1wdHkgaW50ZXJuYWwgYnl0ZSBhcnJheSBvZiBsZW5ndGggCisgICAgICogY2FwYWNpdHkuIFNpemUgb2YgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgd2lsbCBiZSBzZXQgdG8gMC4KKyAgICAgKiBAcGFyYW0gY2FwYWNpdHkgbGVuZ3RoIG9mIGludGVybmFsIGJ5dGUgYXJyYXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5KGludCBjYXBhY2l0eSkgCisgICAgeworICAgICAgICBieXRlcyA9IG5ldyBieXRlW2NhcGFjaXR5XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSYXdDb2xsYXRpb25LZXkgY3JlYXRlZCwgYWRvcHRpbmcgYnl0ZXMgYXMgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkuCisgICAgICogU2l6ZSBvZiB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB3aWxsIGJlIHNldCB0byAwLgorICAgICAqIEBwYXJhbSBieXRlcyBieXRlIGFycmF5IHRvIGJlIGFkb3B0ZWQgYnkgUmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFJhd0NvbGxhdGlvbktleShieXRlW10gYnl0ZXMpIAorICAgIHsKKyAgICAgICAgdGhpcy5ieXRlcyA9IGJ5dGVzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSYXdDb2xsYXRpb25LZXkgZnJvbSBhIGJ5dGUgYXJyYXkgYW5kIHNpemUuCisgICAgICogQHBhcmFtIGJ5dGVzVG9BZG9wdCB0aGUgYnl0ZSBhcnJheSB0byBhZG9wdAorICAgICAqIEBwYXJhbSBzaXplIHRoZSBsZW5ndGggb2YgdmFsaWQgZGF0YSBpbiB0aGUgYnl0ZSBhcnJheQorICAgICAqIEB0aHJvd3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBieXRlc1RvQWRvcHQgPT0gbnVsbCBhbmQgc2l6ZSAhPSAwLCBvcgorICAgICAqIHNpemUgPCAwLCBvciBzaXplID4gYnl0ZXNUb0Fkb3B0Lmxlbmd0aC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5KGJ5dGVbXSBieXRlc1RvQWRvcHQsIGludCBzaXplKSAKKyAgICB7CisgICAgICAgIHN1cGVyKGJ5dGVzVG9BZG9wdCwgc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGlzIFJhd0NvbGxhdGlvbktleSB0byBhbm90aGVyLCB3aGljaCBtdXN0IG5vdCBiZSBudWxsLiAgVGhpcyBvdmVycmlkZXMKKyAgICAgKiB0aGUgaW5oZXJpdGVkIGltcGxlbWVudGF0aW9uIHRvIGVuc3VyZSB0aGUgcmV0dXJuZWQgdmFsdWVzIGFyZSAtMSwgMCwgb3IgMS4KKyAgICAgKiBAcGFyYW0gcmhzIHRoZSBSYXdDb2xsYXRpb25LZXkgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIC0xLCAwLCBvciAxIGFzIHRoaXMgY29tcGFyZXMgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IKKyAgICAgKiBncmVhdGVyIHRoYW4gcmhzLgorICAgICAqIEB0aHJvd3MgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIHRoZSBvdGhlciBvYmplY3QgaXMgbm90IGEgUmF3Q29sbGF0aW9uS2V5LgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IHJocykgeworICAgICAgICBpbnQgcmVzdWx0ID0gc3VwZXIuY29tcGFyZVRvKChSYXdDb2xsYXRpb25LZXkpcmhzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCA8IDAgPyAtMSA6IHJlc3VsdCA9PSAwID8gMCA6IDE7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVtb3ZlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlbW92ZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2QwMjAwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlbW92ZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCByZW1vdmVzIGNoYXJhY3RlcnMuICBUaGlzIGlzIHVzZWZ1bCBpbiBjb25qdW5jdGlvbgorICogd2l0aCBhIGZpbHRlci4KKyAqLworY2xhc3MgUmVtb3ZlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICAvKioKKyAgICAgKiBJRCBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgX0lEID0gIkFueS1SZW1vdmUiOworCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbW92ZVRyYW5zbGl0ZXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJSZW1vdmUiLCAiTnVsbCIsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIFJlbW92ZVRyYW5zbGl0ZXJhdG9yKCkgeworICAgICAgICBzdXBlcihfSUQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIGluZGV4LCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIC8vIE91ciBjYWxsZXIgKGZpbHRlcmVkVHJhbnNsaXRlcmF0ZSkgaGFzIGFscmVhZHkgbmFycm93ZWQgdXMKKyAgICAgICAgLy8gdG8gYW4gdW5maWx0ZXJlZCBydW4uICBEZWxldGUgaXQuCisgICAgICAgIHRleHQucmVwbGFjZShpbmRleC5zdGFydCwgaW5kZXgubGltaXQsICIiKTsKKyAgICAgICAgaW50IGxlbiA9IGluZGV4LmxpbWl0IC0gaW5kZXguc3RhcnQ7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCAtPSBsZW47CisgICAgICAgIGluZGV4LmxpbWl0IC09IGxlbjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YmYyNzQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YQpAQCAtMCwwICsxLDE4NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gaXMgYW4gaW50ZXJmYWNlIHJlcHJlc2VudGluZyBhCisgKiBzdHJpbmcgb2YgY2hhcmFjdGVycyB0aGF0IHN1cHBvcnRzIHRoZSByZXBsYWNlbWVudCBvZiBhIHJhbmdlIG9mCisgKiBpdHNlbGYgd2l0aCBhIG5ldyBzdHJpbmcgb2YgY2hhcmFjdGVycy4gIEl0IGlzIHVzZWQgYnkgQVBJcyB0aGF0CisgKiBjaGFuZ2UgYSBwaWVjZSBvZiB0ZXh0IHdoaWxlIHJldGFpbmluZyBtZXRhZGF0YS4gIE1ldGFkYXRhIGlzIGRhdGEKKyAqIG90aGVyIHRoYW4gdGhlIFVuaWNvZGUgY2hhcmFjdGVycyByZXR1cm5lZCBieSBjaGFyMzJBdCgpLiAgT25lCisgKiBleGFtcGxlIG9mIG1ldGFkYXRhIGlzIHN0eWxlIGF0dHJpYnV0ZXM7IGFub3RoZXIgaXMgYW4gZWRpdAorICogaGlzdG9yeSwgbWFya2luZyBlYWNoIGNoYXJhY3RlciB3aXRoIGFuIGF1dGhvciBhbmQgcmV2aXNpb24gbnVtYmVyLgorICoKKyAqIDxwPkFuIGltcGxpY2l0IGFzcGVjdCBvZiB0aGUgPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IEFQSSBpcyB0aGF0CisgKiBkdXJpbmcgYSByZXBsYWNlIG9wZXJhdGlvbiwgbmV3IGNoYXJhY3RlcnMgdGFrZSBvbiB0aGUgbWV0YWRhdGEgb2YKKyAqIHRoZSBvbGQgY2hhcmFjdGVycy4gIEZvciBleGFtcGxlLCBpZiB0aGUgc3RyaW5nICJ0aGUgPGI+Ym9sZDwvYj4KKyAqIGZvbnQiIGhhcyByYW5nZSAoNCwgOCkgcmVwbGFjZWQgd2l0aCAic3Ryb25nIiwgdGhlbiBpdCBiZWNvbWVzICJ0aGUKKyAqIDxiPnN0cm9uZzwvYj4gZm9udCIuCisgKgorICogPHA+PGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IHNwZWNpZmllcyByYW5nZXMgdXNpbmcgYSBzdGFydAorICogb2Zmc2V0IGFuZCBhIGxpbWl0IG9mZnNldC4gIFRoZSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRodXMgc3BlY2lmaWVkCisgKiBpbmNsdWRlcyB0aGUgY2hhcmFjdGVycyBhdCBvZmZzZXQgc3RhcnQuLmxpbWl0LTEuICBUaGF0IGlzLCB0aGUKKyAqIHN0YXJ0IG9mZnNldCBpcyBpbmNsdXNpdmUsIGFuZCB0aGUgbGltaXQgb2Zmc2V0IGlzIGV4Y2x1c2l2ZS4KKyAqCisgKiA8cD48Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gYWxzbyBpbmNsdWRlcyBBUEkgdG8gYWNjZXNzIGNoYXJhY3RlcnMKKyAqIGluIHRoZSBzdHJpbmc6IDxjb2RlPmxlbmd0aCgpPC9jb2RlPiwgPGNvZGU+Y2hhckF0KCk8L2NvZGU+LAorICogPGNvZGU+Y2hhcjMyQXQoKTwvY29kZT4sIGFuZCA8Y29kZT5leHRyYWN0QmV0d2VlbigpPC9jb2RlPi4KKyAqCisgKiA8cD5Gb3IgYSBzdWJjbGFzcyB0byBzdXBwb3J0IG1ldGFkYXRhLCB0eXBpY2FsIGJlaGF2aW9yIG9mCisgKiA8Y29kZT5yZXBsYWNlKCk8L2NvZGU+IGlzIHRoZSBmb2xsb3dpbmc6CisgKiA8dWw+CisgKiAgIDxsaT5TZXQgdGhlIG1ldGFkYXRhIG9mIHRoZSBuZXcgdGV4dCB0byB0aGUgbWV0YWRhdGEgb2YgdGhlIGZpcnN0CisgKiAgIGNoYXJhY3RlciByZXBsYWNlZDwvbGk+CisgKiAgIDxsaT5JZiBubyBjaGFyYWN0ZXJzIGFyZSByZXBsYWNlZCwgdXNlIHRoZSBtZXRhZGF0YSBvZiB0aGUKKyAqICAgcHJldmlvdXMgY2hhcmFjdGVyPC9saT4KKyAqICAgPGxpPklmIHRoZXJlIGlzIG5vIHByZXZpb3VzIGNoYXJhY3RlciAoaS5lLiBzdGFydCA9PSAwKSwgdXNlIHRoZQorICogICBmb2xsb3dpbmcgY2hhcmFjdGVyPC9saT4KKyAqICAgPGxpPklmIHRoZXJlIGlzIG5vIGZvbGxvd2luZyBjaGFyYWN0ZXIgKGkuZS4gdGhlIHJlcGxhY2VhYmxlIHdhcworICogICBlbXB0eSksIHVzZSBkZWZhdWx0IG1ldGFkYXRhPGJyPgorICogICA8bGk+SWYgdGhlIGNvZGUgcG9pbnQgVStGRkZGIGlzIHNlZW4sIGl0IHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcworICogICBhIHNwZWNpYWwgbWFya2VyIGhhdmluZyBubyBtZXRhZGF0YTxsaT4KKyAqICAgPC9saT4KKyAqIDwvdWw+CisgKiBJZiB0aGlzIGlzIG5vdCB0aGUgYmVoYXZpb3IsIHRoZSBzdWJjbGFzcyBzaG91bGQgZG9jdW1lbnQgYW55IGRpZmZlcmVuY2VzLgorICogCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGludGVyZmFjZSBSZXBsYWNlYWJsZSB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRleHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8gCisgICAgaW50IGxlbmd0aCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgMTYtYml0IGNvZGUgdW5pdCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGludG8gdGhlIHRleHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgPGNvZGU+bGVuZ3RoKCk8L2NvZGU+LTEKKyAgICAgKiBpbmNsdXNpdmUKKyAgICAgKiBAcmV0dXJuIDE2LWJpdCBjb2RlIHVuaXQgb2YgdGV4dCBhdCBnaXZlbiBvZmZzZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBjaGFyIGNoYXJBdChpbnQgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIDMyLWJpdCBjb2RlIHBvaW50IGF0IHRoZSBnaXZlbiAxNi1iaXQgb2Zmc2V0IGludG8KKyAgICAgKiB0aGUgdGV4dC4gIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMKKyAgICAgKiB3aXRoIHN1cnJvZ2F0ZSBwYWlycyBpbnRlcm1peGVkLiAgSWYgdGhlIG9mZnNldCBvZiBhIGxlYWRpbmcgb3IKKyAgICAgKiB0cmFpbGluZyBjb2RlIHVuaXQgb2YgYSBzdXJyb2dhdGUgcGFpciBpcyBnaXZlbiwgcmV0dXJuIHRoZQorICAgICAqIGNvZGUgcG9pbnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAqCisgICAgICogPHA+TW9zdCBzdWJjbGFzc2VzIGNhbiByZXR1cm4KKyAgICAgKiA8Y29kZT5jb20uaWJtLmljdS50ZXh0LlVURjE2LmNoYXJBdCh0aGlzLCBvZmZzZXQpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA8Y29kZT5sZW5ndGgoKTwvY29kZT4tMQorICAgICAqIGluY2x1c2l2ZQorICAgICAqIEByZXR1cm4gMzItYml0IGNvZGUgcG9pbnQgb2YgdGV4dCBhdCBnaXZlbiBvZmZzZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQgY2hhcjMyQXQoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgY2hhcmFjdGVycyBmcm9tIHRoaXMgb2JqZWN0IGludG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICogY2hhcmFjdGVyIGFycmF5LiAgVGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQgaW5kZXgKKyAgICAgKiA8Y29kZT5zcmNTdGFydDwvY29kZT47IHRoZSBsYXN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQKKyAgICAgKiBpbmRleCA8Y29kZT5zcmNMaW1pdC0xPC9jb2RlPiAodGh1cyB0aGUgdG90YWwgbnVtYmVyIG9mCisgICAgICogY2hhcmFjdGVycyB0byBiZSBjb3BpZWQgaXMgPGNvZGU+c3JjTGltaXQtc3JjU3RhcnQ8L2NvZGU+KS4gVGhlCisgICAgICogY2hhcmFjdGVycyBhcmUgY29waWVkIGludG8gdGhlIHN1YmFycmF5IG9mIDxjb2RlPmRzdDwvY29kZT4KKyAgICAgKiBzdGFydGluZyBhdCBpbmRleCA8Y29kZT5kc3RTdGFydDwvY29kZT4gYW5kIGVuZGluZyBhdCBpbmRleAorICAgICAqIDxjb2RlPmRzdFN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KSAtIDE8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIHNyY1N0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXggdG8gY29weSwgaW5jbHVzaXZlOyA8Y29kZT4wCisgICAgICogPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZW5kaW5nIGluZGV4IHRvIGNvcHksIGV4Y2x1c2l2ZTsKKyAgICAgKiA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGRzdCB0aGUgZGVzdGluYXRpb24gYXJyYXkuCisgICAgICogQHBhcmFtIGRzdFN0YXJ0IHRoZSBzdGFydCBvZmZzZXQgaW4gdGhlIGRlc3RpbmF0aW9uIGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZvaWQgZ2V0Q2hhcnMoaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIGNoYXIgZHN0W10sIGludCBkc3RTdGFydCk7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyBhIHN1YnN0cmluZyBvZiB0aGlzIG9iamVjdCB3aXRoIHRoZSBnaXZlbiB0ZXh0LgorICAgICAqCisgICAgICogPHA+U3ViY2xhc3NlcyBtdXN0IGVuc3VyZSB0aGF0IGlmIHRoZSB0ZXh0IGJldHdlZW4gc3RhcnQgYW5kCisgICAgICogbGltaXQgaXMgZXF1YWwgdG8gdGhlIHJlcGxhY2VtZW50IHRleHQsIHRoYXQgcmVwbGFjZSBoYXMgbm8KKyAgICAgKiBlZmZlY3QuIFRoYXQgaXMsIGFueSBtZXRhZGF0YQorICAgICAqIHNob3VsZCBiZSB1bmFmZmVjdGVkLiBJbiBhZGRpdGlvbiwgc3ViY2xhc3NlcyBhcmUgZW5jb3VyYWdlZCB0bworICAgICAqIGNoZWNrIGZvciBpbml0aWFsIGFuZCB0cmFpbGluZyBpZGVudGljYWwgY2hhcmFjdGVycywgYW5kIG1ha2UgYQorICAgICAqIHNtYWxsZXIgcmVwbGFjZW1lbnQgaWYgcG9zc2libGUuIFRoaXMgd2lsbCBwcmVzZXJ2ZSBhcyBtdWNoCisgICAgICogbWV0YWRhdGEgYXMgcG9zc2libGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byByZXBsYWNlIGNoYXJhY3RlcnMgPGNvZGU+c3RhcnQ8L2NvZGU+CisgICAgICogdG8gPGNvZGU+bGltaXQgLSAxPC9jb2RlPgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHRleHQpOworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgbXVzdCBlbnN1cmUgdGhhdCBpZiB0aGUgdGV4dCBiZXR3ZWVuIHN0YXJ0IGFuZAorICAgICAqIGxpbWl0IGlzIGVxdWFsIHRvIHRoZSByZXBsYWNlbWVudCB0ZXh0LCB0aGF0IHJlcGxhY2UgaGFzIG5vCisgICAgICogZWZmZWN0LiBUaGF0IGlzLCBhbnkgbWV0YWRhdGEKKyAgICAgKiBzaG91bGQgYmUgdW5hZmZlY3RlZC4gSW4gYWRkaXRpb24sIHN1YmNsYXNzZXMgYXJlIGVuY291cmFnZWQgdG8KKyAgICAgKiBjaGVjayBmb3IgaW5pdGlhbCBhbmQgdHJhaWxpbmcgaWRlbnRpY2FsIGNoYXJhY3RlcnMsIGFuZCBtYWtlIGEKKyAgICAgKiBzbWFsbGVyIHJlcGxhY2VtZW50IGlmIHBvc3NpYmxlLiBUaGlzIHdpbGwgcHJlc2VydmUgYXMgbXVjaAorICAgICAqIG1ldGFkYXRhIGFzIHBvc3NpYmxlLgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSB0ZXh0IHRvIHJlcGxhY2UgY2hhcmFjdGVycyA8Y29kZT5zdGFydDwvY29kZT4KKyAgICAgKiB0byA8Y29kZT5saW1pdCAtIDE8L2NvZGU+CisgICAgICogQHBhcmFtIGNoYXJzU3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCBpbnRvIDxjb2RlPmNoYXJzPC9jb2RlPiwKKyAgICAgKiBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBjaGFyc0xlbiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb2YgPGNvZGU+Y2hhcnM8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGNoYXJzLAorICAgICAgICAgICAgICAgICBpbnQgY2hhcnNTdGFydCwgaW50IGNoYXJzTGVuKTsKKyAgICAvLyBOb3RlOiBXZSB1c2UgbGVuZ3RoIHJhdGhlciB0aGFuIGxpbWl0IHRvIGNvbmZvcm0gdG8gU3RyaW5nQnVmZmVyCisgICAgLy8gYW5kIFN5c3RlbS5hcnJheWNvcHkuCisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3QsIHJldGFpbmluZyBtZXRhZGF0YS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGR1cGxpY2F0ZSBvciByZW9yZGVyIHN1YnN0cmluZ3MuCisgICAgICogVGhlIGRlc3RpbmF0aW9uIGluZGV4IG11c3Qgbm90IG92ZXJsYXAgdGhlIHNvdXJjZSByYW5nZS4KKyAgICAgKiBJZiA8Y29kZT5oYXNNZXRhRGF0YSgpPC9jb2RlPiByZXR1cm5zIGZhbHNlLCBzdWJjbGFzc2VzCisgICAgICogbWF5IHVzZSB0aGUgbmFpdmUgaW1wbGVtZW50YXRpb246CisgICAgICoKKyAgICAgKiA8cHJlPiBjaGFyW10gdGV4dCA9IG5ldyBjaGFyW2xpbWl0IC0gc3RhcnRdOworICAgICAqIGdldENoYXJzKHN0YXJ0LCBsaW1pdCwgdGV4dCwgMCk7CisgICAgICogcmVwbGFjZShkZXN0LCBkZXN0LCB0ZXh0LCAwLCBsaW1pdCAtIHN0YXJ0KTs8L3ByZT4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0IDw9CisgICAgICogbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0IDw9CisgICAgICogbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkZXN0IHRoZSBkZXN0aW5hdGlvbiBpbmRleC4gIFRoZSBjaGFyYWN0ZXJzIGZyb20KKyAgICAgKiA8Y29kZT5zdGFydC4ubGltaXQtMTwvY29kZT4gd2lsbCBiZSBjb3BpZWQgdG8gPGNvZGU+ZGVzdDwvY29kZT4uCisgICAgICogSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIG1heSBhc3N1bWUgdGhhdCA8Y29kZT5kZXN0IDw9IHN0YXJ0IHx8CisgICAgICogZGVzdCA+PSBsaW1pdDwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdm9pZCBjb3B5KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgZGVzdCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgb2JqZWN0IGNvbnRhaW5zIG1ldGFkYXRhLiAgSWYgYQorICAgICAqIFJlcGxhY2VhYmxlIG9iamVjdCBoYXMgbWV0YWRhdGEsIGNhbGxzIHRvIHRoZSBSZXBsYWNlYWJsZSBBUEkKKyAgICAgKiBtdXN0IGJlIG1hZGUgc28gYXMgdG8gcHJlc2VydmUgbWV0YWRhdGEuICBJZiBpdCBkb2VzIG5vdCwgY2FsbHMKKyAgICAgKiB0byB0aGUgUmVwbGFjZWFibGUgQVBJIG1heSBiZSBvcHRpbWl6ZWQgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgY29udGFpbnMgbWV0YWRhdGEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBib29sZWFuIGhhc01ldGFEYXRhKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Zjg2ZTcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yLmphdmEKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1ZmViMDQKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIEltcGxlbWVudGF0aW9uIG9mIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yLCBpdGVyYXRlcyBvdmVyIGEgUmVwbGFjZWFibGUuCisqICAgSmF2YSBwb3J0IG9mIGNhc2V0cm4uY3BwL3V0cmFuc19yZXBfY2FzZUNvbnRleHRJdGVyYXRvcigpLgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEltcGxlbWVudGF0aW9uIG9mIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yLCBpdGVyYXRlcyBvdmVyIGEgUmVwbGFjZWFibGUuCisgKiBTZWUgY2FzZXRybi5jcHAvdXRyYW5zX3JlcF9jYXNlQ29udGV4dEl0ZXJhdG9yKCkuCisgKiBTZWUgYWxzbyBVQ2hhcmFjdGVyLlN0cmluZ0NvbnRleHRJdGVyYXRvci4KKyAqIEBpbnRlcm5hbAorICovCitjbGFzcyBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvciBpbXBsZW1lbnRzIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yIHsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBAcGFyYW0gcmVwIFJlcGxhY2VhYmxlIHRvIGl0ZXJhdGUgb3Zlci4gCisgICAgICovCisgICAgUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IoKSB7CisgICAgICAgIHRoaXMucmVwPW51bGw7CisgICAgICAgIGxpbWl0PWNwU3RhcnQ9Y3BMaW1pdD1pbmRleD1jb250ZXh0U3RhcnQ9Y29udGV4dExpbWl0PTA7CisgICAgICAgIGRpcj0wOworICAgICAgICByZWFjaGVkTGltaXQ9ZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSB0ZXh0IGZvciBpdGVyYXRpb24uCisgICAgICogQHBhcmFtIHJlcCBJdGVyYXRpb24gdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFJlcGxhY2VhYmxlIHJlcCkgeworICAgICAgICB0aGlzLnJlcD1yZXA7CisgICAgICAgIGxpbWl0PWNvbnRleHRMaW1pdD1yZXAubGVuZ3RoKCk7CisgICAgICAgIGNwU3RhcnQ9Y3BMaW1pdD1pbmRleD1jb250ZXh0U3RhcnQ9MDsKKyAgICAgICAgZGlyPTA7CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGluZGV4IHdoZXJlIG5leHRDYXNlTWFwQ1AoKSBpcyB0byBzdGFydCBpdGVyYXRpbmcuCisgICAgICogQHBhcmFtIGluZGV4IEl0ZXJhdGlvbiBzdGFydCBpbmRleCBmb3IgbmV4dENhc2VNYXBDUCgpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBpbmRleCkgeworICAgICAgICBjcFN0YXJ0PWNwTGltaXQ9aW5kZXg7CisgICAgICAgIHRoaXMuaW5kZXg9MDsKKyAgICAgICAgZGlyPTA7CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGluZGV4IG9mIHdoZXJlIHRoZSBjb2RlIHBvaW50IGN1cnJlbnRseSBiZWluZyBjYXNlLW1hcHBlZCBzdGFydHMuCisgICAgICogQHJldHVybiBUaGUgc3RhcnQgaW5kZXggb2YgdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENhc2VNYXBDUFN0YXJ0KCkgeworICAgICAgICByZXR1cm4gY3BTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdGlvbiBsaW1pdCBmb3IgbmV4dENhc2VNYXBDUCgpIHRvIGFuIGluZGV4IHdpdGhpbiB0aGUgc3RyaW5nLgorICAgICAqIElmIHRoZSBsaW1pdCBwYXJhbWV0ZXIgaXMgbmVnYXRpdmUgb3IgcGFzdCB0aGUgc3RyaW5nLCB0aGVuIHRoZQorICAgICAqIHN0cmluZyBsZW5ndGggaXMgcmVzdG9yZWQgYXMgdGhlIGl0ZXJhdGlvbiBsaW1pdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsaW0gVGhlIGl0ZXJhdGlvbiBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMaW1pdChpbnQgbGltKSB7CisgICAgICAgIGlmKDA8PWxpbSAmJiBsaW08PXJlcC5sZW5ndGgoKSkgeworICAgICAgICAgICAgbGltaXQ9bGltOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGltaXQ9cmVwLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHN0YXJ0IGFuZCBsaW1pdCBpbmRleGVzIGZvciBjb250ZXh0IGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcGFyYW0gY29udGV4dFN0YXJ0IFN0YXJ0IG9mIGNvbnRleHQgZm9yIG5leHQoKS4KKyAgICAgKiBAcGFyYW0gY29udGV4dExpbWl0IExpbWl0IG9mIGNvbnRleHQgZm9yIG5leHQoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb250ZXh0TGltaXRzKGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0TGltaXQpIHsKKyAgICAgICAgaWYoY29udGV4dFN0YXJ0PDApIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dFN0YXJ0PTA7CisgICAgICAgIH0gZWxzZSBpZihjb250ZXh0U3RhcnQ8PXJlcC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0U3RhcnQ9Y29udGV4dFN0YXJ0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0U3RhcnQ9cmVwLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGlmKGNvbnRleHRMaW1pdDx0aGlzLmNvbnRleHRTdGFydCkgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0TGltaXQ9dGhpcy5jb250ZXh0U3RhcnQ7CisgICAgICAgIH0gZWxzZSBpZihjb250ZXh0TGltaXQ8PXJlcC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0TGltaXQ9Y29udGV4dExpbWl0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0TGltaXQ9cmVwLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlIGZvcndhcmQgdGhyb3VnaCB0aGUgc3RyaW5nIHRvIGZldGNoIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiB0byBiZSBjYXNlLW1hcHBlZCwgYW5kIHNldCB0aGUgY29udGV4dCBpbmRleGVzIGZvciBpdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIG5leHQgY29kZSBwb2ludCB0byBiZSBjYXNlLW1hcHBlZCwgb3IgPDAgd2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUuCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0Q2FzZU1hcENQKCkgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaWYoY3BMaW1pdDxsaW1pdCkgeworICAgICAgICAgICAgY3BTdGFydD1jcExpbWl0OworICAgICAgICAgICAgYz1yZXAuY2hhcjMyQXQoY3BMaW1pdCk7CisgICAgICAgICAgICBjcExpbWl0Kz1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBieSBpdHMgY2FzZSBtYXBwaW5nLAorICAgICAqIGFuZCB1cGRhdGUgdGhlIGluZGV4ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBSZXBsYWNlbWVudCB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGRlbHRhIGZvciB0aGUgY2hhbmdlIG9mIHRoZSB0ZXh0IGxlbmd0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHJlcGxhY2UoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgaW50IGRlbHRhPXRleHQubGVuZ3RoKCktKGNwTGltaXQtY3BTdGFydCk7CisgICAgICAgIHJlcC5yZXBsYWNlKGNwU3RhcnQsIGNwTGltaXQsIHRleHQpOworICAgICAgICBjcExpbWl0Kz1kZWx0YTsKKyAgICAgICAgbGltaXQrPWRlbHRhOworICAgICAgICBjb250ZXh0TGltaXQrPWRlbHRhOworICAgICAgICByZXR1cm4gZGVsdGE7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGlkIGZvcndhcmQgY29udGV4dCBpdGVyYXRpb24gd2l0aCBuZXh0KCkgcmVhY2ggdGhlIGl0ZXJhdGlvbiBsaW1pdD8KKyAgICAgKiBAcmV0dXJuIEJvb2xlYW4gdmFsdWUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZGlkUmVhY2hMaW1pdCgpIHsKKyAgICAgICAgcmV0dXJuIHJlYWNoZWRMaW1pdDsKKyAgICB9CisKKyAgICAvLyBpbXBsZW1lbnQgVUNhc2VQcm9wcy5Db250ZXh0SXRlcmF0b3IKKyAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgZGlyKSB7CisgICAgICAgIGlmKGRpcj4wKSB7CisgICAgICAgICAgICAvKiByZXNldCBmb3IgZm9yd2FyZCBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgIHRoaXMuZGlyPTE7CisgICAgICAgICAgICBpbmRleD1jcExpbWl0OworICAgICAgICB9IGVsc2UgaWYoZGlyPDApIHsKKyAgICAgICAgICAgIC8qIHJlc2V0IGZvciBiYWNrd2FyZCBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgIHRoaXMuZGlyPS0xOworICAgICAgICAgICAgaW5kZXg9Y3BTdGFydDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIG5vdCBhIHZhbGlkIGRpcmVjdGlvbgorICAgICAgICAgICAgdGhpcy5kaXI9MDsKKyAgICAgICAgICAgIGluZGV4PTA7CisgICAgICAgIH0KKyAgICAgICAgcmVhY2hlZExpbWl0PWZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgaW50IGM7CisKKyAgICAgICAgaWYoZGlyPjApIHsKKyAgICAgICAgICAgIGlmKGluZGV4PGNvbnRleHRMaW1pdCkgeworICAgICAgICAgICAgICAgIGM9cmVwLmNoYXIzMkF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBpbmRleCs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBmb3J3YXJkIGNvbnRleHQgaXRlcmF0aW9uIHJlYWNoZWQgdGhlIGxpbWl0CisgICAgICAgICAgICAgICAgcmVhY2hlZExpbWl0PXRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZihkaXI8MCAmJiBpbmRleD5jb250ZXh0U3RhcnQpIHsKKyAgICAgICAgICAgIGM9cmVwLmNoYXIzMkF0KGluZGV4LTEpOworICAgICAgICAgICAgaW5kZXgtPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvLyB2YXJpYWJsZXMKKyAgICBwcm90ZWN0ZWQgUmVwbGFjZWFibGUgcmVwOworICAgIHByb3RlY3RlZCBpbnQgaW5kZXgsIGxpbWl0LCBjcFN0YXJ0LCBjcExpbWl0LCBjb250ZXh0U3RhcnQsIGNvbnRleHRMaW1pdDsKKyAgICBwcm90ZWN0ZWQgaW50IGRpcjsgLy8gMD1pbml0aWFsIHN0YXRlICA+MD1mb3J3YXJkICA8MD1iYWNrd2FyZAorICAgIHByb3RlY3RlZCBib29sZWFuIHJlYWNoZWRMaW1pdDsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlU3RyaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiNjY2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhCkBAIC0wLDAgKzEsMjAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIDxjb2RlPlJlcGxhY2VhYmxlU3RyaW5nPC9jb2RlPiBpcyBhbiBhZGFwdGVyIGNsYXNzIHRoYXQgaW1wbGVtZW50cyB0aGUKKyAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkgYXJvdW5kIGFuIG9yZGluYXJ5IDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgKgorICogPHA+PGVtPk5vdGU6PC9lbT4gVGhpcyBjbGFzcyBkb2VzIG5vdCBzdXBwb3J0IGF0dHJpYnV0ZXMgYW5kIGlzIG5vdAorICogaW50ZW5kZWQgZm9yIGdlbmVyYWwgdXNlLiAgTW9zdCBjbGllbnRzIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQKKyAqIHtAbGluayBSZXBsYWNlYWJsZX0gaW4gdGhlaXIgdGV4dCByZXByZXNlbnRhdGlvbiBjbGFzcy4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAc2VlIFJlcGxhY2VhYmxlCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFJlcGxhY2VhYmxlU3RyaW5nIGltcGxlbWVudHMgUmVwbGFjZWFibGUgeworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIGJ1ZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgb2JqZWN0IHdpdGggdGhlIGdpdmVuIGluaXRpYWwgY29udGVudHMuCisgICAgICogQHBhcmFtIHN0ciBpbml0aWFsIGNvbnRlbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlU3RyaW5nKFN0cmluZyBzdHIpIHsKKyAgICAgICAgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBvYmplY3QgdXNpbmcgPGNvZGU+YnVmPC9jb2RlPiBmb3IgaW50ZXJuYWwKKyAgICAgKiBzdG9yYWdlLiAgVGhlIGNvbnRlbnRzIG9mIDxjb2RlPmJ1ZjwvY29kZT4gYXQgdGhlIHRpbWUgb2YKKyAgICAgKiBjb25zdHJ1Y3Rpb24gYXJlIHVzZWQgYXMgdGhlIGluaXRpYWwgY29udGVudHMuICA8ZW0+Tm90ZSEKKyAgICAgKiBNb2RpZmljYXRpb25zIHRvIDxjb2RlPmJ1ZjwvY29kZT4gd2lsbCBtb2RpZnkgdGhpcyBvYmplY3QsIGFuZAorICAgICAqIHZpY2UgdmVyc2EuPC9lbT4KKyAgICAgKiBAcGFyYW0gYnVmIG9iamVjdCB0byBiZSB1c2VkIGFzIGludGVybmFsIHN0b3JhZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUmVwbGFjZWFibGVTdHJpbmcoU3RyaW5nQnVmZmVyIGJ1ZikgeworICAgICAgICB0aGlzLmJ1ZiA9IGJ1ZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgZW1wdHkgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVN0cmluZygpIHsKKyAgICAgICAgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY29udGVudHMgb2YgdGhpcyBvYmplY3QgYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICAgICAqIEByZXR1cm4gc3RyaW5nIGNvbnRlbnRzIG9mIHRoaXMgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHN1YnN0cmluZyBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc3Vic3RyaW5nKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHJldHVybiBidWYuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBjb250YWluZWQgaW4gdGhpcyBvYmplY3QuCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IEFQSS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8gCisgICAgcHVibGljIGludCBsZW5ndGgoKSB7CisgICAgICAgIHJldHVybiBidWYubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGdpdmVuIHBvc2l0aW9uIGluIHRoaXMgb2JqZWN0LgorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkuCisgICAgICogQHBhcmFtIG9mZnNldCBvZmZzZXQgaW50byB0aGUgY29udGVudHMsIGZyb20gMCB0bworICAgICAqIDxjb2RlPmxlbmd0aCgpPC9jb2RlPiAtIDEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjaGFyQXQoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gYnVmLmNoYXJBdChvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgMzItYml0IGNvZGUgcG9pbnQgYXQgdGhlIGdpdmVuIDE2LWJpdCBvZmZzZXQgaW50bworICAgICAqIHRoZSB0ZXh0LiAgVGhpcyBhc3N1bWVzIHRoZSB0ZXh0IGlzIHN0b3JlZCBhcyAxNi1iaXQgY29kZSB1bml0cworICAgICAqIHdpdGggc3Vycm9nYXRlIHBhaXJzIGludGVybWl4ZWQuICBJZiB0aGUgb2Zmc2V0IG9mIGEgbGVhZGluZyBvcgorICAgICAqIHRyYWlsaW5nIGNvZGUgdW5pdCBvZiBhIHN1cnJvZ2F0ZSBwYWlyIGlzIGdpdmVuLCByZXR1cm4gdGhlCisgICAgICogY29kZSBwb2ludCBvZiB0aGUgc3Vycm9nYXRlIHBhaXIuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgPGNvZGU+bGVuZ3RoKCk8L2NvZGU+LTEKKyAgICAgKiBpbmNsdXNpdmUKKyAgICAgKiBAcmV0dXJuIDMyLWJpdCBjb2RlIHBvaW50IG9mIHRleHQgYXQgZ2l2ZW4gb2Zmc2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBjaGFyMzJBdChpbnQgb2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBVVEYxNi5jaGFyQXQoYnVmLCBvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvcGllcyBjaGFyYWN0ZXJzIGZyb20gdGhpcyBvYmplY3QgaW50byB0aGUgZGVzdGluYXRpb24KKyAgICAgKiBjaGFyYWN0ZXIgYXJyYXkuICBUaGUgZmlyc3QgY2hhcmFjdGVyIHRvIGJlIGNvcGllZCBpcyBhdCBpbmRleAorICAgICAqIDxjb2RlPnNyY1N0YXJ0PC9jb2RlPjsgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIGJlIGNvcGllZCBpcyBhdAorICAgICAqIGluZGV4IDxjb2RlPnNyY0xpbWl0LTE8L2NvZGU+ICh0aHVzIHRoZSB0b3RhbCBudW1iZXIgb2YKKyAgICAgKiBjaGFyYWN0ZXJzIHRvIGJlIGNvcGllZCBpcyA8Y29kZT5zcmNMaW1pdC1zcmNTdGFydDwvY29kZT4pLiBUaGUKKyAgICAgKiBjaGFyYWN0ZXJzIGFyZSBjb3BpZWQgaW50byB0aGUgc3ViYXJyYXkgb2YgPGNvZGU+ZHN0PC9jb2RlPgorICAgICAqIHN0YXJ0aW5nIGF0IGluZGV4IDxjb2RlPmRzdFN0YXJ0PC9jb2RlPiBhbmQgZW5kaW5nIGF0IGluZGV4CisgICAgICogPGNvZGU+ZHN0U3RhcnQgKyAoc3JjTGltaXQtc3JjU3RhcnQpIC0gMTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCB0byBjb3B5LCBpbmNsdXNpdmU7IDxjb2RlPjAKKyAgICAgKiA8PSBzdGFydCA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIHNyY0xpbWl0IHRoZSBlbmRpbmcgaW5kZXggdG8gY29weSwgZXhjbHVzaXZlOworICAgICAqIDxjb2RlPnN0YXJ0IDw9IGxpbWl0IDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZHN0IHRoZSBkZXN0aW5hdGlvbiBhcnJheS4KKyAgICAgKiBAcGFyYW0gZHN0U3RhcnQgdGhlIHN0YXJ0IG9mZnNldCBpbiB0aGUgZGVzdGluYXRpb24gYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0Q2hhcnMoaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIGNoYXIgZHN0W10sIGludCBkc3RTdGFydCkgeworICAgICAgICBVdGlsaXR5LmdldENoYXJzKGJ1Ziwgc3JjU3RhcnQsIHNyY0xpbWl0LCBkc3QsIGRzdFN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHplcm8gb3IgbW9yZSBjaGFyYWN0ZXJzIHdpdGggbmV3IGNoYXJhY3RlcnMuCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IEFQSS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0CisgICAgICogPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0CisgICAgICogPD0gbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSB0ZXh0IG5ldyB0ZXh0IHRvIHJlcGxhY2UgY2hhcmFjdGVycyA8Y29kZT5zdGFydDwvY29kZT4gdG8KKyAgICAgKiA8Y29kZT5saW1pdCAtIDE8L2NvZGU+CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgYnVmLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCB0ZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIGEgc3Vic3RyaW5nIG9mIHRoaXMgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHRleHQuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gY2hhcnMgdGhlIHRleHQgdG8gcmVwbGFjZSBjaGFyYWN0ZXJzIDxjb2RlPnN0YXJ0PC9jb2RlPgorICAgICAqIHRvIDxjb2RlPmxpbWl0IC0gMTwvY29kZT4KKyAgICAgKiBAcGFyYW0gY2hhcnNTdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4IGludG8gPGNvZGU+Y2hhcnM8L2NvZGU+LAorICAgICAqIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydCA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGNoYXJzTGVuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvZiA8Y29kZT5jaGFyczwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJzU3RhcnQsIGludCBjaGFyc0xlbikgeworICAgICAgICBidWYuZGVsZXRlKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIGJ1Zi5pbnNlcnQoc3RhcnQsIGNoYXJzLCBjaGFyc1N0YXJ0LCBjaGFyc0xlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29weSBhIHN1YnN0cmluZyBvZiB0aGlzIG9iamVjdCwgcmV0YWluaW5nIGF0dHJpYnV0ZSAob3V0LW9mLWJhbmQpCisgICAgICogaW5mb3JtYXRpb24uICBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGR1cGxpY2F0ZSBvciByZW9yZGVyIHN1YnN0cmluZ3MuCisgICAgICogVGhlIGRlc3RpbmF0aW9uIGluZGV4IG11c3Qgbm90IG92ZXJsYXAgdGhlIHNvdXJjZSByYW5nZS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0IDw9CisgICAgICogbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0IDw9CisgICAgICogbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkZXN0IHRoZSBkZXN0aW5hdGlvbiBpbmRleC4gIFRoZSBjaGFyYWN0ZXJzIGZyb20KKyAgICAgKiA8Y29kZT5zdGFydC4ubGltaXQtMTwvY29kZT4gd2lsbCBiZSBjb3BpZWQgdG8gPGNvZGU+ZGVzdDwvY29kZT4uCisgICAgICogSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIG1heSBhc3N1bWUgdGhhdCA8Y29kZT5kZXN0IDw9IHN0YXJ0IHx8CisgICAgICogZGVzdCA+PSBsaW1pdDwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29weShpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGRlc3QpIHsKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0ICYmIHN0YXJ0ID49IDAgJiYgc3RhcnQgPD0gYnVmLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIHRleHQgPSBuZXcgY2hhcltsaW1pdCAtIHN0YXJ0XTsKKyAgICAgICAgZ2V0Q2hhcnMoc3RhcnQsIGxpbWl0LCB0ZXh0LCAwKTsKKyAgICAgICAgcmVwbGFjZShkZXN0LCBkZXN0LCB0ZXh0LCAwLCBsaW1pdCAtIHN0YXJ0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBSZXBsYWNlYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc01ldGFEYXRhKCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ3OTY2MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMzc3IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKKworCisvKioKKyAqIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3IgCisgKiBUaGlzIGlzIGEgcG9ydCBvZiB0aGUgQysrIGNsYXNzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBJQ1U0Qy4KKyAqIAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGV4dGVuZHMgQnJlYWtJdGVyYXRvciB7CisKKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ29uc3RydWN0b3JzICYgRmFjdG9yaWVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIAorICAgIC8qKiAKKyAgICAgKiBAaW50ZXJuYWwgCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBhIHByZWNvbXBpbGVkIHNldCBvZiBydWxlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZ2V0SW5zdGFuY2VGcm9tQ29tcGlsZWRSdWxlcyhJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAgVGhpcyA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisgICAgICAgIFRoaXMuZlJEYXRhID0gUkJCSURhdGFXcmFwcGVyLmdldChpcyk7CisgICAgICAgIHJldHVybiBUaGlzOyAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBvdGhlcikgeworICAgICAgICAvLyBUT0RPOiBjaGVjayB0eXBlcy4KKyAgICAgICAgZlJEYXRhID0gb3RoZXIuZlJEYXRhOworICAgICAgICBpZiAoZlRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHQgPSAoQ2hhcmFjdGVySXRlcmF0b3IpKG90aGVyLmZUZXh0LmNsb25lKCkpOyAgIAorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVzIHN1cHBsaWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9mIGEgc3ludGF4IGVycm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFN0cmluZyBydWxlcykgIHsKKyAgICAgICAgaW5pdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIHJ1bGVPUyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIGNvbXBpbGVSdWxlcyhydWxlcywgcnVsZU9TKTsKKyAgICAgICAgICAgIGJ5dGUgW10gcnVsZUJBID0gcnVsZU9TLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBydWxlSVMgPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0ocnVsZUJBKTsKKyAgICAgICAgICAgIGZSRGF0YSA9IFJCQklEYXRhV3JhcHBlci5nZXQocnVsZUlTKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gQW4gSU8gZXhjZXB0aW9uIGNhbiBvbmx5IGFycml2ZSBoZXJlIGlmIHRoZXJlIGlzIGEgYnVnIGluIHRoZSBSQkJJIFJ1bGUgY29tcGlsZXIsCisgICAgICAgICAgICAvLyAgY2F1c2luZyBib2d1cyBjb21waWxlZCBydWxlcyB0byBiZSBwcm9kdWNlZCwgYnV0IHdpdGggbm8gY29tcGlsZSBlcnJvciByYWlzZWQuCisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiBydGUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBydWxlIGNvbXBpbGF0aW9uIGludGVybmFsIGVycm9yOiIpOworLy8jZWxzZQorICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiBydGUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBydWxlIGNvbXBpbGF0aW9uIGludGVybmFsIGVycm9yOiIsIGUpOworLy8jZW5kaWYKKyAgICAgICAgICAgIHRocm93IHJ0ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQm9pbGVycGxhdGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqCisgICAgICogQ2xvbmVzIHRoaXMgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBBIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yIGFzIHRoaXMgb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByZXN1bHQgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcih0aGlzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUKKyAgICAgKiBydWxlcywgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBvdGhlciA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSB0aGF0OworICAgICAgICAgICAgaWYgKGZSRGF0YSAhPSBvdGhlci5mUkRhdGEgJiYgKGZSRGF0YSA9PSBudWxsIHx8IG90aGVyLmZSRGF0YSA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmUkRhdGEgIT0gbnVsbCAmJiBvdGhlci5mUkRhdGEgIT0gbnVsbCAmJiAKKyAgICAgICAgICAgICAgICAgICAgKCFmUkRhdGEuZlJ1bGVTb3VyY2UuZXF1YWxzKG90aGVyLmZSRGF0YS5mUnVsZVNvdXJjZSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgJiYgb3RoZXIuZlRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgfHwgb3RoZXIuZlRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmVGV4dC5lcXVhbHMob3RoZXIuZlRleHQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gKHJ1bGVzKSB1c2VkIHRvIGNyZWF0ZSB0aGlzIGl0ZXJhdG9yLgorICAgICAqIChJbiBJQ1U0QywgdGhlIHNhbWUgZnVuY3Rpb24gaXMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZXMoKSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgICByZXRTdHIgPSBudWxsOworICAgICAgICBpZiAoZlJEYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldFN0ciA9ICBmUkRhdGEuZlJ1bGVTb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldFN0cjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUkRhdGEuZlJ1bGVTb3VyY2UuaGFzaENvZGUoKTsgCisgICAgfQorCisgICAgCisgICAgLyoqIAorICAgICAqIFRhZyB2YWx1ZSBmb3IgIndvcmRzIiB0aGF0IGRvIG5vdCBmaXQgaW50byBhbnkgb2Ygb3RoZXIgY2F0ZWdvcmllcy4gCisgICAgICogSW5jbHVkZXMgc3BhY2VzIGFuZCBtb3N0IHB1bmN0dWF0aW9uLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMCAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBpcyBhIGRyYWZ0IEFQSSBhbmQgbWlnaHQgY2hhbmdlIGluIGEgZnV0dXJlIHJlbGVhc2Ugb2YgSUNVLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdPUkRfTk9ORSAgICAgICAgICAgPSAwOworCisgICAgLyoqCisgICAgICogVXBwZXIgYm91bmQgZm9yIHRhZ3MgZm9yIHVuY2F0ZWdvcml6ZWQgd29yZHMuIAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OT05FX0xJTUlUICAgICA9IDEwMDsKKworICAgIC8qKgorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywgbG93ZXIgbGltaXQuIAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OVU1CRVIgICAgICAgICA9IDEwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsIHVwcGVyIGxpbWl0LgorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OVU1CRVJfTElNSVQgICA9IDIwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIHRoYXQgY29udGFpbiBsZXR0ZXJzLCBleGNsdWRpbmcKKyAgICAgKiBoaXJhZ2FuYSwga2F0YWthbmEgb3IgaWRlb2dyYXBoaWMgY2hhcmFjdGVycywgbG93ZXIgbGltaXQuIAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9MRVRURVIgICAgICAgICA9IDIwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIGNvbnRhaW5pbmcgbGV0dGVycywgdXBwZXIgbGltaXQgCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0xFVFRFUl9MSU1JVCAgID0gMzAwOworCisgICAgLyoqIAorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgY29udGFpbmluZyBrYW5hIGNoYXJhY3RlcnMsIGxvd2VyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0tBTkEgICAgICAgICAgID0gMzAwOworCisgICAgLyoqIAorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgY29udGFpbmluZyBrYW5hIGNoYXJhY3RlcnMsIHVwcGVyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0tBTkFfTElNSVQgICAgID0gNDAwOworCisgICAgLyoqCisgICAgICogVGFnIHZhbHVlIGZvciB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGxvd2VyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0lERU8gICAgICAgICAgID0gNDAwOworCisgICAgLyoqCisgICAgICogVGFnIHZhbHVlIGZvciB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIHVwcGVyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0lERU9fTElNSVQgICAgID0gNTAwOworCisgICAKKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgIFNUQVJUX1NUQVRFID0gMTsgICAgIC8vIFRoZSBzdGF0ZSBudW1iZXIgb2YgdGhlIHN0YXJ0aW5nIHN0YXRlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBTVE9QX1NUQVRFICA9IDA7ICAgICAvLyBUaGUgc3RhdGUtdHJhbnNpdGlvbiB2YWx1ZSBpbmRpY2F0aW5nICJzdG9wIgorICAgIAorICAgIC8vIFJCQklSdW5Nb2RlIC0gdGhlIHN0YXRlIG1hY2hpbmUgcnVucyBhbiBleHRyYSBpdGVyYXRpb24gYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kCisgICAgLy8gICAgICAgICAgICAgICBvZiB1c2VyIHRleHQuICBBIHZhcmlhYmxlIHdpdGggdGhpcyBlbnVtIHR5cGUga2VlcHMgdHJhY2sgb2Ygd2hlcmUgd2UKKyAgICAvLyAgICAgICAgICAgICAgIGFyZS4gIFRoZSBzdGF0ZSBtYWNoaW5lIG9ubHkgZmV0Y2hlcyB1c2VyIHRleHQgaW5wdXQgd2hpbGUgaW4gUlVOIG1vZGUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBSQkJJX1NUQVJUICA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBSQkJJX1JVTiAgICA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBSQkJJX0VORCAgID0gMjsKKworICAgIC8qKgorICAgICAqIFRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhyb3VnaCB3aGljaCB0aGlzIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciAgIGZUZXh0ID0gbmV3IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiIik7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVha0l0ZXJhdG9yIGluc3RhbmNlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIFJCQklEYXRhV3JhcHBlciAgICAgZlJEYXRhOworICAgIAorICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2VudCBtYXRjaC4gCisgICAgICogIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisgICAgCisgICAgLyoqCisgICAgICogQ291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdpdGggdGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuICBOb3JtYWwgUkJCSSBpdGVyYXRvcnMgZG9uJ3QgdXNlIGl0LCBhbHRob3VnaCB0aGUgY29kZQorICAgICAqICAgZm9yIHVwZGF0aW5nIGl0IGlzIGxpdmUuICBEaWN0aW9uYXJ5IEJhc2VkIGJyZWFrIGl0ZXJhdG9ycyAoYSBzdWJjbGFzcworICAgICAqICAgb2YgdXMpIGFjY2VzcyB0aGlzIGZpZWxkIGRpcmVjdGx5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgICBwcm90ZWN0ZWQgaW50IGZEaWN0aW9uYXJ5Q2hhckNvdW50OworICAgIAorICAgIC8qKgorICAgICAqIERlYnVnZ2luZyBmbGFnLiAgVHJhY2Ugb3BlcmF0aW9uIG9mIHN0YXRlIG1hY2hpbmUgd2hlbiB0cnVlLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiAgICAgICBmVHJhY2U7CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogRHVtcCB0aGUgY29udGVudHMgb2YgdGhlIHN0YXRlIHRhYmxlIGFuZCBjaGFyYWN0ZXIgY2xhc3NlcyBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4KKyAgICAgKiBGb3IgZGVidWdnaW5nIG9ubHkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZHVtcCgpIHsKKyAgICAgICAgdGhpcy5mUkRhdGEuZHVtcCgpOyAgIAorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZGVidWdJbml0RG9uZSA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgdm9pZCBpbml0KCkgeworICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSB0cnVlOworICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudCAgPSAwOworCisgCisgICAgICAgIGlmIChkZWJ1Z0luaXREb25lID09IGZhbHNlKSB7CisgICAgICAgICAgICBTdHJpbmcgZGVidWdFbnYgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoIlVfUkJCSURFQlVHIik7CisgICAgICAgICAgICBpZiAoZGVidWdFbnYhPW51bGwgJiYgZGVidWdFbnYuaW5kZXhPZigidHJhY2UiKT49MCkgeworICAgICAgICAgICAgICAgIGZUcmFjZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWJ1Z0luaXREb25lID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgY29tcGlsZVJ1bGVzKFN0cmluZyBydWxlcywgT3V0cHV0U3RyZWFtIHJ1bGVCaW5hcnkpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFJCQklSdWxlQnVpbGRlci5jb21waWxlUnVsZXMocnVsZXMsIHJ1bGVCaW5hcnkpOworICAgIH0KKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydGluZyBvZmZzZXQpLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZmlyc3QoKSB7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IHRydWU7CisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICB9CisgICAgICAgIGZUZXh0LmZpcnN0KCk7CisgICAgICAgIHJldHVybiBmVGV4dC5nZXRJbmRleCgpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBlbmRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCAgPSAwOworICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJJ20gbm90IHN1cmUgd2h5LCBidXQgdC5sYXN0KCkgcmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IGNoYXJhY3RlciwKKyAgICAgICAgLy8gcmF0aGVyIHRoYW4gdGhlIHBhc3QtdGhlLWVuZCBvZmZzZXQKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAoSXQncyBzbyBhIGxvb3AgbGlrZSBmb3IocD1pdC5sYXN0KCk7IHAhPURPTkU7IHA9aXQucHJldmlvdXMoKSkgLi4uCisgICAgICAgIC8vICAgICB3aWxsIHdvcmsgY29ycmVjdGx5LikKKworCisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IGZhbHNlOworICAgICAgICBpbnQgcG9zID0gZlRleHQuZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgZlRleHQuc2V0SW5kZXgocG9zKTsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlvdXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUgc2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2FyZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJvbQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHQoaW50IG4pIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnQoKTsKKyAgICAgICAgd2hpbGUgKG4gPiAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVOZXh0KCk7CisgICAgICAgICAgICAtLW47CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKG4gPCAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91cygpOworICAgICAgICAgICAgKytuOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICByZXR1cm4gaGFuZGxlTmV4dCgpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgc2l0dGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCByZXR1cm4gRE9ORQorICAgICAgICBpZiAoZlRleHQgPT0gbnVsbCB8fCBjdXJyZW50KCkgPT0gZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCAgPSAwOworICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlJEYXRhLmZTUlRhYmxlICE9IG51bGwgfHwgZlJEYXRhLmZTRlRhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVQcmV2aW91cyhmUkRhdGEuZlJUYWJsZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvbGQgcnVsZSBzeW50YXgKKyAgICAgICAgLy8gc2V0IHRoaW5ncyB1cC4gIGhhbmRsZVByZXZpb3VzKCkgd2lsbCBiYWNrIHVzIHVwIHRvIHNvbWUgdmFsaWQKKyAgICAgICAgLy8gYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uICh3ZSBiYWNrIG91ciBpbnRlcm5hbAorICAgICAgICAvLyBpdGVyYXRvciB1cCBvbmUgc3RlcCB0byBwcmV2ZW50IGhhbmRsZVByZXZpb3VzKCkgZnJvbSByZXR1cm5pbmcKKyAgICAgICAgLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24pLCBidXQgbm90IG5lY2Vzc2FyaWx5IHRoZSBsYXN0IG9uZSBiZWZvcmUKKyAgICAgICAgLy8gd2hlcmUgd2Ugc3RhcnRlZAorCisgICAgICAgIGludCAgICAgICBzdGFydCA9IGN1cnJlbnQoKTsKKworICAgICAgICBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICBpbnQgICAgICAgbGFzdFJlc3VsdCAgICA9IGhhbmRsZVByZXZpb3VzKGZSRGF0YS5mUlRhYmxlKTsKKyAgICAgICAgaWYgKGxhc3RSZXN1bHQgPT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBsYXN0UmVzdWx0ID0gZlRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgobGFzdFJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgaW50ICAgICAgIHJlc3VsdCAgICAgICAgPSBsYXN0UmVzdWx0OworICAgICAgICBpbnQgICAgICAgbGFzdFRhZyAgICAgICA9IDA7CisgICAgICAgIGJvb2xlYW4gICBicmVha1RhZ1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgLy8gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhlIGtub3duIGJyZWFrIHBvc2l0aW9uIHVudGlsIHdlIHBhc3Mgb3VyCisgICAgICAgIC8vIHN0YXJ0aW5nIHBvaW50LiAgVGhlIGxhc3QgYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBzdGFydGluZworICAgICAgICAvLyBwb2ludCBpcyBvdXIgcmV0dXJuIHZhbHVlCisKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgcmVzdWx0ICAgICAgICAgPSBoYW5kbGVOZXh0KCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCByZXN1bHQgPj0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RSZXN1bHQgICAgID0gcmVzdWx0OworICAgICAgICAgICAgbGFzdFRhZyAgICAgICAgPSBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKyAgICAgICAgICAgIGJyZWFrVGFnVmFsaWQgID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZMYXN0QnJlYWtUYWcgd2FudHMgdG8gaGF2ZSB0aGUgdmFsdWUgZm9yIHNlY3Rpb24gb2YgdGV4dCBwcmVjZWRpbmcKKyAgICAgICAgLy8gdGhlIHJlc3VsdCBwb3NpdGlvbiB0aGF0IHdlIGFyZSB0byByZXR1cm4gKGluIGxhc3RSZXN1bHQuKSAgSWYKKyAgICAgICAgLy8gdGhlIGJhY2t3YXJkcyBydWxlcyBvdmVyc2hvdCBhbmQgdGhlIGFib3ZlIGxvb3AgaGFkIHRvIGRvIHR3byBvciBtb3JlCisgICAgICAgIC8vIGhhbmRsZU5leHQoKXMgdG8gbW92ZSB1cCB0byB0aGUgZGVzaXJlZCByZXR1cm4gcG9zaXRpb24sIHdlIHdpbGwgaGF2ZSBhIHZhbGlkCisgICAgICAgIC8vIHRhZyB2YWx1ZS4gQnV0LCBpZiBoYW5kbGVQcmV2aW91cygpIHRvb2sgdXMgdG8gZXhhY3RseSB0aGUgY29ycmVjdCByZXN1bHQgcG9zaXRvbiwKKyAgICAgICAgLy8gd2Ugd29udCBoYXZlIGEgdGFnIHZhbHVlIGZvciB0aGF0IHBvc2l0aW9uLCB3aGljaCBpcyBvbmx5IHNldCBieSBoYW5kbGVOZXh0KCkuCisKKyAgICAgICAgLy8gc2V0IHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byBiZSB0aGUgbGFzdCBicmVhayBwb3NpdGlvbgorICAgICAgICAvLyBiZWZvcmUgd2hlcmUgd2Ugc3RhcnRlZCwgYW5kIHRoZW4gcmV0dXJuIHRoYXQgdmFsdWUKKyAgICAgICAgZlRleHQuc2V0SW5kZXgobGFzdFJlc3VsdCk7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IGxhc3RUYWc7ICAgICAgIC8vIGZvciB1c2UgYnkgZ2V0UnVsZVN0YXR1cygpCisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IGJyZWFrVGFnVmFsaWQ7CisgICAgICAgIHJldHVybiBsYXN0UmVzdWx0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmb2xsb3dpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBpZiB0aGUgb2Zmc2V0IHBhc3NlZCBpbiBpcyBhbHJlYWR5IHBhc3QgdGhlIGVuZCBvZiB0aGUgdGV4dCwKKyAgICAgICAgLy8ganVzdCByZXR1cm4gRE9ORTsgaWYgaXQncyBiZWZvcmUgdGhlIGJlZ2lubmluZywgcmV0dXJuIHRoZQorICAgICAgICAvLyB0ZXh0J3Mgc3RhcnRpbmcgb2Zmc2V0CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IHRydWU7CisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsIHx8IG9mZnNldCA+PSBmVGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICBsYXN0KCk7CisgICAgICAgICAgICByZXR1cm4gbmV4dCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG9mZnNldCA8IGZUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZpcnN0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvdGhlcndpc2UsIHNldCBvdXIgaW50ZXJuYWwgaXRlcmF0aW9uIHBvc2l0aW9uICh0ZW1wb3JhcmlseSkKKyAgICAgICAgLy8gdG8gdGhlIHBvc2l0aW9uIHBhc3NlZCBpbi4gIElmIHRoaXMgaXMgdGhlIF9iZWdpbm5pbmdfIHBvc2l0aW9uLAorICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0IHVzZSBuZXh0KCkgdG8gZ2V0IG91ciByZXR1cm4gdmFsdWUKKworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKworICAgICAgICBpZiAoZlJEYXRhLmZTUlRhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIFNhZmUgUG9pbnQgUmV2ZXJzZSBydWxlcyBleGlzdC4KKyAgICAgICAgICAgIC8vICAgVGhpcyBhbGxvd3MgdXMgdG8gdXNlIHRoZSBvcHRpbXVtIGFsZ29yaXRobS4KKyAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgICAgICAvLyBtb3ZlIGZvcndhcmQgb25lIGNvZGVwb2ludCB0byBwcmVwYXJlIGZvciBtb3ZpbmcgYmFjayB0byBhCisgICAgICAgICAgICAvLyBzYWZlIHBvaW50LgorICAgICAgICAgICAgLy8gdGhpcyBoYW5kbGVzIG9mZnNldCBiZWluZyBiZXR3ZWVuIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgIC8vIGhhbmRsZVByZXZpb3VzIHdpbGwgbW92ZSBtb3N0IG9mIHRoZSB0aW1lIHRvIDwgMSBib3VuZGFyeSBhd2F5CisgICAgICAgICAgICBoYW5kbGVQcmV2aW91cyhmUkRhdGEuZlNSVGFibGUpOworICAgICAgICAgICAgcmVzdWx0ID0gbmV4dCgpOworICAgICAgICAgICAgd2hpbGUgKHJlc3VsdCA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGlmIChmUkRhdGEuZlNGVGFibGUgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gTm8gU2FmZSBwb2ludCByZXZlcnNlIHRhYmxlLCBidXQgdGhlcmUgaXMgYSBzYWZlIHB0IGZvcndhcmQgdGFibGUuCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgICAgICBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICAgICAgLy8gaGFuZGxlIG5leHQgd2lsbCBnaXZlIHJlc3VsdCA+PSBvZmZzZXQKKyAgICAgICAgICAgIGhhbmRsZU5leHQoZlJEYXRhLmZTRlRhYmxlKTsKKyAgICAgICAgICAgIC8vIHByZXZpb3VzIHdpbGwgZ2l2ZSByZXN1bHQgMCBvciAxIGJvdW5kYXJ5IGF3YXkgZnJvbSBvZmZzZXQsCisgICAgICAgICAgICAvLyBtb3N0IG9mIHRoZSB0aW1lCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvCisgICAgICAgICAgICBpbnQgb2xkcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChvbGRyZXN1bHQgPiBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPD0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbGRyZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZHJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPD0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBoYXZlIHRvIHN5bmMgdXAgZmlyc3QuICBVc2UgaGFuZGxlUHJldmlvdXMoKSB0byBiYWNrCisgICAgICAgIC8vIHVzIHVwIHRvIGEga25vd24gYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gKGlmCisgICAgICAgIC8vIHdlIGNhbiBkZXRlcm1pbmUgdGhhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGEgYnJlYWsgcG9zaXRpb24sCisgICAgICAgIC8vIHdlIGRvbid0IGJhY2sgdXAgYXQgYWxsKS4gIFRoaXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIGxhc3QgYnJlYWsKKyAgICAgICAgLy8gcG9zaXRpb24gYXQgb3IgYmVmb3JlIG91ciBzdGFydGluZyBwb3NpdGlvbi4gIEFkdmFuY2UgZm9yd2FyZAorICAgICAgICAvLyBmcm9tIGhlcmUgdW50aWwgd2UndmUgcGFzc2VkIHRoZSBzdGFydGluZyBwb3NpdGlvbi4gIFRoZSBwb3NpdGlvbgorICAgICAgICAvLyB3ZSBzdG9wIG9uIHdpbGwgYmUgdGhlIGZpcnN0IGJyZWFrIHBvc2l0aW9uIGFmdGVyIHRoZSBzcGVjaWZpZWQgb25lLgorICAgICAgICAvLyBvbGQgcnVsZSBzeW50YXgKKworICAgICAgICBmVGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBpZiAob2Zmc2V0ID09IGZUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZU5leHQoKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBwcmV2aW91cygpOworCisgICAgICAgIHdoaWxlIChyZXN1bHQgIT0gQnJlYWtJdGVyYXRvci5ET05FICYmIHJlc3VsdCA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzdGFydGluZyBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZWNlZGluZyhpbnQgb2Zmc2V0KSB7CisgICAgICAgIC8vIGlmIHRoZSBvZmZzZXQgcGFzc2VkIGluIGlzIGFscmVhZHkgcGFzdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LAorICAgICAgICAvLyBqdXN0IHJldHVybiBET05FOyBpZiBpdCdzIGJlZm9yZSB0aGUgYmVnaW5uaW5nLCByZXR1cm4gdGhlCisKKyAgICAgICAgLy8gdGV4dCdzIHN0YXJ0aW5nIG9mZnNldAorICAgICAgICBpZiAoZlRleHQgPT0gbnVsbCB8fCBvZmZzZXQgPiBmVGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICAvLyByZXR1cm4gQnJlYWtJdGVyYXRvcjo6RE9ORTsKKyAgICAgICAgICAgIHJldHVybiBsYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAob2Zmc2V0IDwgZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmlyc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHdlIHN0YXJ0IGJ5IHVwZGF0aW5nIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUKKyAgICAgICAgLy8gcG9zaXRpb24gc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIsIHdlIGNhbiBqdXN0IHVzZSBwcmV2aW91cygpCisgICAgICAgIC8vIHRvIGNhcnJ5IG91dCB0aGlzIG9wZXJhdGlvbgorCisgICAgICAgIGludCAgcmVzdWx0OworICAgICAgICBpZiAoZlJEYXRhLmZTRlRhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vLyB0b2RvIHN5bndlZQorICAgICAgICAgICAgLy8gbmV3IHJ1bGUgc3ludGF4CisgICAgICAgICAgICBmVGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICAgICAgLy8gbW92ZSBiYWNrd2FyZHMgb25lIGNvZGVwb2ludCB0byBwcmVwYXJlIGZvciBtb3ZpbmcgZm9yd2FyZHMgdG8gYQorICAgICAgICAgICAgLy8gc2FmZSBwb2ludC4KKyAgICAgICAgICAgIC8vIHRoaXMgaGFuZGxlcyBvZmZzZXQgYmVpbmcgYmV0d2VlbiBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICAgICAgICBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICAgICAgaGFuZGxlTmV4dChmUkRhdGEuZlNGVGFibGUpOworICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPj0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZSRGF0YS5mU1JUYWJsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBiYWNrdXAgcGxhbiBpZiBmb3J3YXJkIHNhZmUgdGFibGUgaXMgbm90IGF2YWlsYWJsZQorICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgIC8vIGhhbmRsZSBwcmV2aW91cyB3aWxsIGdpdmUgcmVzdWx0IDw9IG9mZnNldAorICAgICAgICAgICAgaGFuZGxlUHJldmlvdXMoZlJEYXRhLmZTUlRhYmxlKTsKKworICAgICAgICAgICAgLy8gbmV4dCB3aWxsIGdpdmUgcmVzdWx0IDAgb3IgMSBib3VuZGFyeSBhd2F5IGZyb20gb2Zmc2V0LAorICAgICAgICAgICAgLy8gbW9zdCBvZiB0aGUgdGltZQorICAgICAgICAgICAgLy8gd2UgaGF2ZSB0bworICAgICAgICAgICAgaW50IG9sZHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgICAgIHdoaWxlIChvbGRyZXN1bHQgPCBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9sZHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkcmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gb2xkIHJ1bGUgc3ludGF4CisgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIHJldHVybiBwcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB1bmxlc3MgYmVnaW4gPD0gb2Zmc2V0IDwgZW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgdm9pZCBjaGVja09mZnNldChpbnQgb2Zmc2V0LCBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0KSB7CisgICAgICAgIGlmIChvZmZzZXQgPCB0ZXh0LmdldEJlZ2luSW5kZXgoKSB8fCBvZmZzZXQgPiB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm9mZnNldCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKyAgICB9CisKKworLyoqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAqIGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQKKyAqIG9yIGFmdGVyICJvZmZzZXQiLgorICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGJvb2xlYW4gaXNCb3VuZGFyeShpbnQgb2Zmc2V0KSB7CisgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBmVGV4dCk7CisgICAgCisgICAgLy8gdGhlIGJlZ2lubmluZyBpbmRleCBvZiB0aGUgaXRlcmF0b3IgaXMgYWx3YXlzIGEgYm91bmRhcnkgcG9zaXRpb24gYnkgZGVmaW5pdGlvbgorICAgIGlmIChvZmZzZXQgPT0gZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgIGZpcnN0KCk7ICAgICAgIC8vIEZvciBzaWRlIGVmZmVjdHMgb24gY3VycmVudCBwb3NpdGlvbiwgdGFnIHZhbHVlcy4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKG9mZnNldCA9PSBmVGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgIGxhc3QoKTsgICAgICAgLy8gRm9yIHNpZGUgZWZmZWN0cyBvbiBjdXJyZW50IHBvc2l0aW9uLCB0YWcgdmFsdWVzLgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBvdGhlcndpc2UsIHdlIGNhbiB1c2UgZm9sbG93aW5nKCkgb24gdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgc3BlY2lmaWVkCisgICAgLy8gb25lIGFuZCByZXR1cm4gdHJ1ZSBpZiB0aGUgcG9zaXRpb24gd2UgZ2V0IGJhY2sgaXMgdGhlIG9uZSB0aGUgdXNlcgorICAgIC8vIHNwZWNpZmllZAorICAgIAorICAgIC8vIHJldHVybiBmb2xsb3dpbmcob2Zmc2V0IC0gMSkgPT0gb2Zmc2V0OworICAgIC8vIFRPRE86ICBjaGVjayB3aGV0aGVyIGl0IGlzIHNhZmUgdG8gcmV2ZXJ0IHRvIHRoZSBzaW1wbGVyIG9mZnNldC0xIGNvZGUKKyAgICAvLyAgICAgICAgIFRoZSBzYWZlIHJ1bGVzIG1heSB0YWtlIGNhcmUgb2YgdW5wYWlyZWQgc3Vycm9nYXRlcyBvay4KKyAgICBmVGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgIENJUHJldmlvdXMzMihmVGV4dCk7CisgICAgaW50ICBwb3MgPSBmVGV4dC5nZXRJbmRleCgpOworICAgIGJvb2xlYW4gcmVzdWx0ID0gZm9sbG93aW5nKHBvcykgPT0gb2Zmc2V0OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qKgorICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisgICAgcmV0dXJuIChmVGV4dCAhPSBudWxsKSA/IGZUZXh0LmdldEluZGV4KCkgOiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgfQorCisKKworcHJpdmF0ZSB2b2lkIG1ha2VSdWxlU3RhdHVzVmFsaWQoKSB7CisgICAgaWYgKGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9PSBmYWxzZSkgeworICAgICAgICAvLyAgTm8gY2FjaGVkIHN0YXR1cyBpcyBhdmFpbGFibGUuCisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsIHx8IGN1cnJlbnQoKSA9PSBmVGV4dC5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgIC8vICBBdCBzdGFydCBvZiB0ZXh0LCBvciB0aGVyZSBpcyBubyB0ZXh0LiAgU3RhdHVzIGlzIGFsd2F5cyB6ZXJvLgorICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggPSAwOworICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICBOb3QgYXQgc3RhcnQgb2YgdGV4dC4gIEZpbmQgc3RhdHVzIHRoZSB0ZWRpb3VzIHdheS4KKyAgICAgICAgICAgIGludCBwYSA9IGN1cnJlbnQoKTsKKyAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICBpbnQgcGIgPSBuZXh0KCk7CisgICAgICAgICAgICBBc3NlcnQuYXNzcnQgKHBhID09IHBiKTsKKyAgICAgICAgfQorICAgICAgICBBc3NlcnQuYXNzcnQoZkxhc3RTdGF0dXNJbmRleFZhbGlkID09IHRydWUpOworICAgICAgICBBc3NlcnQuYXNzcnQoZkxhc3RSdWxlU3RhdHVzSW5kZXggPj0gMCAgJiYgIGZMYXN0UnVsZVN0YXR1c0luZGV4IDwgZlJEYXRhLmZTdGF0dXNUYWJsZS5sZW5ndGgpOworICAgIH0KK30KKworCisvKioKKyAqIFJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBUaGUgdmFsdWVzIGFwcGVhciBpbiB0aGUgcnVsZSBzb3VyY2UKKyAqIHdpdGhpbiBicmFja2V0cywgezEyM30sIGZvciBleGFtcGxlLiAgRm9yIHJ1bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyByZXR1cm5lZC4gIElmIG1vcmUgdGhhbiBvbmUgcnVsZSBhcHBsaWVzLAorICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qgb2YgdGhlIHBvc3NpYmxlIHN0YXR1cyB2YWx1ZXMgaXMgcmV0dXJuZWQuCisgKiA8cD4KKyAqIE9mIHRoZSBzdGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzLCBvbmx5IHRoZSB3b3JkIGJyZWFrCisgKiBpdGVyYXRvciBwcm92aWRlcyBzdGF0dXMgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICogY2xhc3MgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwgYW5kIGFsbG93IGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRlcnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywKKyAqIHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRlb2dyYXBoaWMgY2hhcmFjdGVycywgYW5kCisgKiBtb3JlLiAgQ2FsbCA8Y29kZT5nZXRSdWxlU3RhdHVzPC9jb2RlPiBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICogcG9zaXRpb24gZnJvbSA8Y29kZT5uZXh0KCk8Y29kZT4sIDxjb2RlPnByZXZpb3VzKCk8L2NvZGU+LCBvciAKKyAqIGFueSBvdGhlciBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisgKiA8cD4KKyAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgKgorICogQGRyYWZ0IElDVSAzLjAKKyAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgKi8KKworcHVibGljIGludCAgZ2V0UnVsZVN0YXR1cygpIHsKKyAgICBtYWtlUnVsZVN0YXR1c1ZhbGlkKCk7CisgICAgLy8gICBTdGF0dXMgcmVjb3JkcyBoYXZlIHRoaXMgZm9ybToKKyAgICAvLyAgICAgICAgICAgQ291bnQgTiAgICAgICAgIDwtLSAgZkxhc3RSdWxlU3RhdHVzSW5kZXggcG9pbnRzIGhlcmUuCisgICAgLy8gICAgICAgICAgIFN0YXR1cyB2YWwgMAorICAgIC8vICAgICAgICAgICBTdGF0dXMgdmFsIDEKKyAgICAvLyAgICAgICAgICAgICAgLi4uCisgICAgLy8gICAgICAgICAgIFN0YXR1cyB2YWwgTi0xICA8LS0gIHRoZSB2YWx1ZSB3ZSBuZWVkIHRvIHJldHVybgorICAgIC8vICAgVGhlIHN0YXR1cyB2YWx1ZXMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuCisgICAgLy8gICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxhc3QgKGxhcmdlc3QpIG9mIHRoZSBhcnJheSBvZiBzdGF0dXMgdmFsdWVzLgorICAgIGludCAgaWR4ID0gZkxhc3RSdWxlU3RhdHVzSW5kZXggKyBmUkRhdGEuZlN0YXR1c1RhYmxlW2ZMYXN0UnVsZVN0YXR1c0luZGV4XTsKKyAgICBpbnQgIHRhZ1ZhbCA9IGZSRGF0YS5mU3RhdHVzVGFibGVbaWR4XTsKKworICAgIHJldHVybiB0YWdWYWw7Cit9CisKKworCisvKioKKyAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCAKKyAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLiAgVGhlIHZhbHVlcyBhcHBlYXIgaW4gdGhlIHJ1bGUgc291cmNlCisgKiB3aXRoaW4gYnJhY2tldHMsIHsxMjN9LCBmb3IgZXhhbXBsZS4gIFRoZSBkZWZhdWx0IHN0YXR1cyB2YWx1ZSBmb3IgcnVsZXMKKyAqIHRoYXQgZG8gbm90IGV4cGxpY2l0bHkgcHJvdmlkZSBvbmUgaXMgemVyby4KKyAqIDxwPgorICogVGhlIHN0YXR1cyB2YWx1ZXMgdXNlZCBieSB0aGUgc3RhbmRhcmQgSUNVIGJyZWFrIHJ1bGVzIGFyZSBkZWZpbmVkCisgKiBhcyBwdWJsaWMgY29uc3RhbnRzIGluIGNsYXNzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuCisgKiA8cD4KKyAqIElmIHRoZSBzaXplICBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGguICBObyBleGNlcHRpb24KKyAqICB3aWxsIGJlIHRocm93bi4KKyAqCisgKiBAcGFyYW0gZmlsbEluQXJyYXkgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuICAKKyAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQgCisgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCB0aGF0IHRoZSBhcnJheSBpcyB0b28gc21hbGwsIHRoZSByZXR1cm4gdmFsdWUKKyAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICogQGRyYWZ0IElDVSAzLjAKKyAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgKi8KK3B1YmxpYyBpbnQgZ2V0UnVsZVN0YXR1c1ZlYyhpbnRbXSBmaWxsSW5BcnJheSkgeworICAgIG1ha2VSdWxlU3RhdHVzVmFsaWQoKTsKKyAgICBpbnQgbnVtU3RhdHVzVmFscyA9IGZSRGF0YS5mU3RhdHVzVGFibGVbZkxhc3RSdWxlU3RhdHVzSW5kZXhdOworICAgIGlmIChmaWxsSW5BcnJheSAhPSBudWxsKSB7ICAKKyAgICAgICAgaW50IG51bVRvQ29weSA9IE1hdGgubWluKG51bVN0YXR1c1ZhbHMsIGZpbGxJbkFycmF5Lmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxudW1Ub0NvcHk7IGkrKykgeworICAgICAgICAgICAgZmlsbEluQXJyYXlbaV0gPSBmUkRhdGEuZlN0YXR1c1RhYmxlW2ZMYXN0UnVsZVN0YXR1c0luZGV4ICsgaSArIDFdOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBudW1TdGF0dXNWYWxzOworIH0KKworCisvKioKKyAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuICBUaGlzIHZlcnNpb24KKyAqIG9mIHRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGFjdHVhbCBDaGFyYWN0ZXJJdGVyYXRvciB3ZSdyZSB1c2luZyBpbnRlcm5hbGx5LgorICogQ2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoaXMgaXRlcmF0b3IgY2FuIGhhdmUgdW5kZWZpbmVkIGNvbnNlcXVlbmNlcy4gIElmCisgKiB5b3UgbmVlZCB0byBjaGFuZ2UgaXQsIGNsb25lIGl0IGZpcnN0LgorICogQHJldHVybiBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGZUZXh0OworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKyAgICAgICAgZlRleHQgPSBuZXdUZXh0OworICAgICAgICB0aGlzLmZpcnN0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnRyb2wgZGVidWcsIHRyYWNlIGFuZCBkdW1wIG9wdGlvbnMuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBTdHJpbmcgZkRlYnVnRW52ID0gU3lzdGVtLmdldFByb3BlcnR5KCJVX1JCQklERUJVRyIpOworCisgICAgCisgICAgLy8gMzIgYml0IENoYXIgdmFsdWUgcmV0dXJuZWQgZnJvbSB3aGVuIGFuIGl0ZXJhdG9yIGhhcyBydW4gb3V0IG9mIHJhbmdlLgorICAgIC8vICAgICBQb3NpdGl2ZSB2YWx1ZSBzbyBmYXN0IGNhc2UgKG5vdCBlbmQsIG5vdCBzdXJyb2dhdGUpIGNhbiBiZSBjaGVja2VkCisgICAgLy8gICAgIHdpdGggYSBzaW5nbGUgdGVzdC4KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgQ0lfRE9ORTMyID0gMHg3ZmZmZmZmZjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlIHRoZSBpdGVyYXRvciBmb3J3YXJkIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQsIGFuZCByZXR1cm4gdGhhdCBjb2RlIHBvaW50LAorICAgICAqICAgbGVhdmluZyB0aGUgaXRlcmF0b3IgcG9zaXRpb25lZCBhdCBjaGFyIHJldHVybmVkLgorICAgICAqICAgRm9yIFN1cHBsZW1lbnRhcnkgY2hhcnMsIHRoZSBpdGVyYXRvciBpcyBsZWZ0IHBvc2l0aW9uZWQgYXQgdGhlIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaSAgVGhlIGNoYXJhY3RlciBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gICAgVGhlIG5leHQgY29kZSBwb2ludC4KKyAgICAgKi8KKyAgICAgc3RhdGljIGludCBDSU5leHQzMihDaGFyYWN0ZXJJdGVyYXRvciBjaSkgeworICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBhdCBhIHN1cnJvZ2F0ZSBwYWlyLCBtb3ZlIHRvIHRoZSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgLy8gICB3aGljaCBsZWF2ZXMgaXQgaW4gcG9zaXRvbiBmb3IgdW5kZXJseWluZyBpdGVyYXRvcidzIG5leHQoKSB0byB3b3JrLgorICAgICAgICBpbnQgYz0gY2kuY3VycmVudCgpOworICAgICAgICBpZiAoYyA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgJiYgYzw9VVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICBjID0gY2kubmV4dCgpOyAgIAorICAgICAgICAgICAgaWYgKGM8VVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSB8fCBjPlVURjE2LlRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgIGMgPSBjaS5wcmV2aW91cygpOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gRm9yIEJNUCBjaGFycywgdGhpcyBuZXh0KCkgaXMgdGhlIHJlYWwgZGVhbC4KKyAgICAgICAgYyA9IGNpLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIC8vIElmIHdlIG1pZ2h0IGhhdmUgYSBsZWFkIHN1cnJvZ2F0ZSwgd2UgbmVlZCB0byBwZWFrIGFoZWFkIHRvIGdldCB0aGUgdHJhaWwgCisgICAgICAgIC8vICBldmVuIHRob3VnaCB3ZSBkb24ndCB3YW50IHRvIHJlYWxseSBiZSBwb3NpdGlvbmVkIHRoZXJlLgorICAgICAgICBpZiAoYyA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGMgPSBDSU5leHRUcmFpbDMyKGNpLCBjKTsgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGMgPj0gVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgJiYgYyAhPSBDSV9ET05FMzIpIHsKKyAgICAgICAgICAgIC8vIFdlIGdvdCBhIHN1cHBsZW1lbnRhcnkgY2hhci4gIEJhY2sgdGhlIGl0ZXJhdG9yIHVwIHRvIHRoZSBwb3N0aW9uCisgICAgICAgICAgICAvLyBvZiB0aGUgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICAgICBjaS5wcmV2aW91cygpOyAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgfQorCisgICAgCisgICAgLy8gT3V0LW9mLWxpbmUgcG9ydGlvbiBvZiB0aGUgaW4tbGluZSBOZXh0MzIgY29kZS4KKyAgICAvLyBUaGUgY2FsbCBzaXRlIGRvZXMgYW4gaW5pdGlhbCBjaS5uZXh0KCkgYW5kIGNhbGxzIHRoaXMgZnVuY3Rpb24KKyAgICAvLyAgICBpZiB0aGUgMTYgYml0IHZhbHVlIGl0IGdldHMgaXMgPj0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFLgorICAgIC8vIE5PVEU6ICB3ZSBsZWF2ZSB0aGUgdW5kZXJseWluZyBjaGFyIGl0ZXJhdG9yIHBvc2l0aW9uZWQgaW4gdGhlCisgICAgLy8gICAgICAgIG1pZGRsZSBvZiBhIHN1cnJvYWdlIHBhaXIuICBjaS5uZXh0KCkgd2lsbCB3b3JrIGNvcnJlY3RseQorICAgIC8vICAgICAgICBmcm9tIHRoZXJlLCBidXQgdGhlIGNpLmdldEluZGV4KCkgd2lsbCBiZSB3cm9uZywgYW5kIG5lZWRzCisgICAgLy8gICAgICAgIGFkanVzdG1lbnQuCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IENJTmV4dFRyYWlsMzIoQ2hhcmFjdGVySXRlcmF0b3IgY2ksIGludCBsZWFkKSB7CisgICAgICAgIGludCByZXRWYWwgPSBsZWFkOworICAgICAgICBpZiAobGVhZCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIGNoYXIgIGNUcmFpbCA9IGNpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNUcmFpbCkpIHsKKyAgICAgICAgICAgICAgICByZXRWYWwgPSAoKGxlYWQgIC0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSA8PCAxMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjVHJhaWwgLSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNpLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobGVhZCA9PSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIGNpLmdldEluZGV4KCkgPj0gY2kuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9IENJX0RPTkUzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmV0VmFsOworICAgIH0KKyAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgQ0lQcmV2aW91czMyKENoYXJhY3Rlckl0ZXJhdG9yIGNpKSB7CisgICAgICAgIGlmIChjaS5nZXRJbmRleCgpIDw9IGNpLmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIENJX0RPTkUzMjsgICAKKyAgICAgICAgfQorICAgICAgICBjaGFyIHRyYWlsID0gY2kucHJldmlvdXMoKTsKKyAgICAgICAgaW50IHJldFZhbCA9IHRyYWlsOworICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkgJiYgY2kuZ2V0SW5kZXgoKT5jaS5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgIGNoYXIgbGVhZCA9IGNpLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisgICAgICAgICAgICAgICAgcmV0VmFsID0gKCgoaW50KWxlYWQgIC0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSA8PCAxMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAoKGludCl0cmFpbCAtIFVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNpLm5leHQoKTsKKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorICAgCisgICAgc3RhdGljIGludCBDSUN1cnJlbnQzMihDaGFyYWN0ZXJJdGVyYXRvciBjaSkgeworICAgICAgICBjaGFyICBsZWFkICAgPSBjaS5jdXJyZW50KCk7CisgICAgICAgIGludCAgIHJldFZhbCA9IGxlYWQ7CisgICAgICAgIGlmIChyZXRWYWwgPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiByZXRWYWw7ICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgaW50ICB0cmFpbCA9IChpbnQpY2kubmV4dCgpOworICAgICAgICAgICAgY2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKXRyYWlsKSkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9ICgobGVhZCAgLSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIDw8IDEwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYWlsIC0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFOworICAgICAgICAgICAgfQorICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsZWFkID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2kuZ2V0SW5kZXgoKSA+PSBjaS5nZXRFbmRJbmRleCgpKSAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0VmFsID0gQ0lfRE9ORTMyOyAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICB9CisgICAgCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgICAgIGhhbmRsZU5leHQodm9pZCkgICAgQWxsIGZvcndhcmQgaXRlcmF0aW9uIHZlY3RvcnMgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RFOiAgVGhpcyBmdW5jdGlvbiBpcyBvdmVycmlkZGVuIGJ5IHRoZSBkaWN0aW9uYXJ5IGJhc2UgYnJlYWsgaXRlcmF0b3IuCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIGxldmVsIEFQSSBmdW5jdGlvbnMgZ28gdG8gdGhlIGRiYmkgaW1wbGVtZW50YXRpb24KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHRoZSBicmVhayBpdGVyYXRvciB0eXBlIGlzIGRiYmkuCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgREJCSSBpbXBsZW1lbnRhdGlvbiBzb21ldGltZXMgZXhwbGljaXRseSBjYWxscyBiYWNrIHRvIGhlcmUsIAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0cyBpbmhlcml0ZWQgaGFuZGxlTmV4dCgpLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBpbnQgaGFuZGxlTmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZU5leHQoZlJEYXRhLmZGVGFibGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBTdGF0ZSBNYWNoaW5lIEVuZ2luZSBmb3IgbW92aW5nIGZvcndhcmQgaXMgaGVyZS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBoZWFydCBvZiB0aGUgUkJCSSBydW4gdGltZSBlbmdpbmUuCisgICAgICogCisgICAgICogQHBhcmFtIHN0YXRlVGFibGUKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgaXRlcmF0b3IgcG9zaXRpb24KKyAgICAgKiAKKyAgICAgKiBBIG5vdGUgb24gc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIGFuZCB0aGUgcG9zaXRpb24gb2YgdW5kZXJseWluZworICAgICAqIEphdmEgQ2hhcmFjdGVySXRlcmF0b3I6ICAgTm9ybWFsbHksIGEgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIHBvc2l0aW9uZWQgYXQKKyAgICAgKiB0aGUgY2hhciBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJ5IG5leHQoKS4gIFdpdGhpbiB0aGlzIGZ1bmN0aW9uLCB3aGVuCisgICAgICogYSBzdXBwbGVtZW50YXJ5IGNoYXIgaXMgYmVpbmcgcHJvY2Vzc2VkLCB0aGUgY2hhciBpdGVyYXRvciBpcyBsZWZ0CisgICAgICogc2l0dGluZyBvbiB0aGUgdHJhaWwgc3Vycm9nYXRlLCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjb2RlIHBvaW50LgorICAgICAqIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gZXZlcnl3aGVyZSBlbHNlLCB3aGVyZSBhbiBpdGVyYXRvciBhbHdheXMKKyAgICAgKiBwb2ludHMgYXQgdGhlIGxlYWQgc3Vycm9nYXRlIG9mIGEgc3VwcGxlbWVudGFyeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBoYW5kbGVOZXh0KHNob3J0IHN0YXRlVGFibGVbXSkgeworICAgICAgICBpbnQgICAgICAgICAgICAgICBzdGF0ZTsKKyAgICAgICAgc2hvcnQgICAgICAgICAgICAgY2F0ZWdvcnkgICAgICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgbW9kZTsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgcm93OworICAgICAgICBpbnQgICAgICAgICAgICAgICBjOworICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRUYWdJZHggPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICByZXN1bHQgICAgICAgICAgPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICBpbml0aWFsUG9zaXRpb24gPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRSZXN1bHQgPSAwOworICAgICAgICBib29sZWFuICAgICAgICAgIGxvb2tBaGVhZEhhcmRCcmVhayA9IAorICAgICAgICAgICAgKHN0YXRlVGFibGVbUkJCSURhdGFXcmFwcGVyLkZMQUdTKzFdICYgUkJCSURhdGFXcmFwcGVyLlJCQklfTE9PS0FIRUFEX0hBUkRfQlJFQUspICE9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhhbmRsZSBOZXh0ICAgcG9zICAgICAgY2hhciAgc3RhdGUgY2F0ZWdvcnkiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vIG1hdHRlciB3aGF0LCBoYW5kbGVOZXh0IGFsd2F5IGNvcnJlY3RseSBzZXRzIHRoZSBicmVhayB0YWcgdmFsdWUuCisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IHRydWU7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisKKyAgICAgICAgLy8gaWYgd2UncmUgYWxyZWFkeSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LCByZXR1cm4gRE9ORS4KKyAgICAgICAgaWYgKGZUZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gMDsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgdXAgdGhlIHN0YXJ0aW5nIGNoYXIKKyAgICAgICAgaW5pdGlhbFBvc2l0aW9uID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgcmVzdWx0ICAgICAgICAgID0gaW5pdGlhbFBvc2l0aW9uOworICAgICAgICBjICAgICAgICAgICAgICAgPSBmVGV4dC5jdXJyZW50KCk7CisgICAgICAgIGlmIChjID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgYyA9IENJTmV4dFRyYWlsMzIoZlRleHQsIGMpOworICAgICAgICAgICAgaWYgKGMgPT0gQ0lfRE9ORTMyKSB7CisgICAgICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggPSAwOworICAgICAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgdGhlIGluaXRpYWwgc3RhdGUgZm9yIHRoZSBzdGF0ZSBtYWNoaW5lCisgICAgICAgIHN0YXRlICAgICAgICAgICA9IFNUQVJUX1NUQVRFOworICAgICAgICByb3cgICAgICAgICAgICAgPSBmUkRhdGEuZ2V0Um93SW5kZXgoc3RhdGUpOyAKKyAgICAgICAgY2F0ZWdvcnkgICAgICAgID0gMzsKKyAgICAgICAgbW9kZSAgICAgICAgICAgID0gUkJCSV9SVU47CisgICAgICAgIGlmICgoc3RhdGVUYWJsZVtSQkJJRGF0YVdyYXBwZXIuRkxBR1MrMV0gJiBSQkJJRGF0YVdyYXBwZXIuUkJCSV9CT0ZfUkVRVUlSRUQpICE9IDApIHsKKyAgICAgICAgICAgIGNhdGVnb3J5ID0gMjsKKyAgICAgICAgICAgIG1vZGUgICAgID0gUkJCSV9TVEFSVDsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy8gbG9vcCB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSB0ZXh0IG9yIHRyYW5zaXRpb24gdG8gc3RhdGUgMAorICAgICAgICB3aGlsZSAoc3RhdGUgIT0gU1RPUF9TVEFURSkgeworICAgICAgICAgICAgaWYgKGMgPT0gQ0lfRE9ORTMyKSB7CisgICAgICAgICAgICAgICAgLy8gUmVhY2hlZCBlbmQgb2YgaW5wdXQgc3RyaW5nLgorICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfRU5EKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBydW4gdGhlIGxvb3Agb25lIGxhc3QgdGltZSB3aXRoIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgc2V0IHRvIHRoZSBwc2V1ZG8ge2VvZn0gdmFsdWUuIE5vdyBpdCBpcyB0aW1lCisgICAgICAgICAgICAgICAgICAgIC8vIHRvIHVuY29uZGl0aW9uYWxseSBiYWlsIG91dC4KKworICAgICAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkUmVzdWx0ID4gcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIHN0cmluZyB3aXRoIGEgcGVuZGluZworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vay1haGVhZCBtYXRjaC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoaXMgYXMgaWYgdGhlIGxvb2stYWhlYWQgY29uZGl0aW9uIGhhZCBiZWVuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtZXQsIGFuZCByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBtYXRjaCBhdCB0aGUgLyBwb3NpdGlvbiBmcm9tIHRoZSBsb29rLWFoZWFkIHJ1bGUuCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsb29rYWhlYWRSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA9IGxvb2thaGVhZFRhZ0lkeDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IGluaXRpYWxQb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFuIG9mZiBlbmQsIG5vIG1hdGNoIGZvdW5kLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW92ZSBmb3J3YXJkIG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgoaW5pdGlhbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gUnVuIHRoZSBsb29wIG9uZSBsYXN0IHRpbWUgd2l0aCB0aGUgZmFrZSBlbmQtb2YtaW5wdXQgY2hhcmFjdGVyIGNhdGVnb3J5CisgICAgICAgICAgICAgICAgbW9kZSA9IFJCQklfRU5EOworICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gR2V0IHRoZSBjaGFyIGNhdGVnb3J5LiAgQW4gaW5jb21pbmcgY2F0ZWdvcnkgb2YgMSBvciAyIG1lbnMgdGhhdAorICAgICAgICAgICAgLy8gICAgICB3ZSBhcmUgcHJlc2V0IGZvciBkb2luZyB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiBpbnB1dCwgYW5kCisgICAgICAgICAgICAvLyAgICAgIHRoYXQgd2Ugc2hvdWxkbid0IGdldCBhIGNhdGVnb3J5IGZyb20gYW4gYWN0dWFsIHRleHQgaW5wdXQgY2hhcmFjdGVyLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfUlVOKSB7CisgICAgICAgICAgICAgICAgLy8gbG9vayB1cCB0aGUgY3VycmVudCBjaGFyYWN0ZXIncyBjaGFyYWN0ZXIgY2F0ZWdvcnksIHdoaWNoIHRlbGxzIHVzCisgICAgICAgICAgICAgICAgLy8gd2hpY2ggY29sdW1uIGluIHRoZSBzdGF0ZSB0YWJsZSB0byBsb29rIGF0LgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAoc2hvcnQpIGZSRGF0YS5mVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGUgZGljdGlvbmFyeSBiaXQgaW4gdGhlIGNoYXJhY3RlcidzIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIC8vICAgIENvdW50ZXIgaXMgb25seSB1c2VkIGJ5IGRpY3Rpb25hcnkgYmFzZWQgaXRlcmF0b3JzIChzdWJjbGFzc2VzKS4KKyAgICAgICAgICAgICAgICAvLyAgICBDaGFycyB0aGF0IG5lZWQgdG8gYmUgaGFuZGxlZCBieSBhIGRpY3Rpb25hcnkgaGF2ZSBhIGZsYWcgYml0IHNldAorICAgICAgICAgICAgICAgIC8vICAgIGluIHRoZWlyIGNhdGVnb3J5IHZhbHVlcy4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGlmICgoY2F0ZWdvcnkgJiAweDQwMDApICE9IDApICB7CisgICAgICAgICAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIC8vICBBbmQgb2ZmIHRoZSBkaWN0aW9uYXJ5IGZsYWcgYml0LgorICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSAmPSB+MHg0MDAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgICAgICAgICAgIiArICBSQkJJRGF0YVdyYXBwZXIuaW50VG9TdHJpbmcoZlRleHQuZ2V0SW5kZXgoKSwgNSkpOyAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KFJCQklEYXRhV3JhcHBlci5pbnRUb0hleFN0cmluZyhjLCAxMCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihSQkJJRGF0YVdyYXBwZXIuaW50VG9TdHJpbmcoc3RhdGUsNykgKyBSQkJJRGF0YVdyYXBwZXIuaW50VG9TdHJpbmcoY2F0ZWdvcnksNikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBsb29rIHVwIGEgc3RhdGUgdHJhbnNpdGlvbiBpbiB0aGUgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIC8vICAgICBzdGF0ZSA9IHJvdy0+Zk5leHRTdGF0ZVtjYXRlZ29yeV07CisgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLk5FWFRTVEFURVMgKyBjYXRlZ29yeV07CisgICAgICAgICAgICByb3cgICA9IGZSRGF0YS5nZXRSb3dJbmRleChzdGF0ZSk7ICAKKworICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuICAKKyAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBiZWdpbm5pbmctb2YtaW5wdXQgbG9vcCBpdGVyYXRpb24sIGRvbid0IGFkdmFuY2UuCisgICAgICAgICAgICAvLyAgICBUaGUgbmV4dCBpdGVyYXRpb24gd2lsbCBiZSBwcm9jZXNzaW5nIHRoZSBmaXJzdCByZWFsIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfUlVOKSB7CisgICAgICAgICAgICAgICAgYyA9IChpbnQpZlRleHQubmV4dCgpOyAKKyAgICAgICAgICAgICAgICBpZiAoYyA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IENJTmV4dFRyYWlsMzIoZlRleHQsIGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gUkJCSV9TVEFSVCkgeworICAgICAgICAgICAgICAgICAgICBtb2RlID0gUkJCSV9SVU47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvLyBNYXRjaCBmb3VuZCwgY29tbW9uIGNhc2UKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmVGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChjID49IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICYmIGMgIT0gQ0lfRE9ORTMyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBpdGVyYXRvciBoYXMgYmVlbiBsZWZ0IGluIHRoZSBtaWRkbGUgb2YgYSBzdXJyb2dhdGUgcGFpci4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgc3RhcnQgb2YgaXQuCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vICBSZW1lbWJlciB0aGUgYnJlYWsgc3RhdHVzICh0YWcpIHZhbHVlcy4KKyAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA9IHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLlRBR0lEWF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkU3RhdHVzICE9IDAKKyAgICAgICAgICAgICAgICAgICAgJiYgc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSA9PSBsb29rYWhlYWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTG9va2FoZWFkIG1hdGNoIGlzIGNvbXBsZXRlZC4gIFNldCB0aGUgcmVzdWx0IGFjY29yZGluZ2x5LCBidXQgb25seQorICAgICAgICAgICAgICAgICAgICAvLyBpZiBubyBvdGhlciBydWxlIGhhcyBtYXRjaGVkIGZ1cnRoZXIgaW4gdGhlIG1lYW4gdGltZS4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICAgICAgICAgICAgICAgPSBsb29rYWhlYWRSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gbG9va2FoZWFkVGFnSWR4OworICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IG1ha2UgYSBzdGFuZGFsb25lIGhhcmQgYnJlYWsgaW4gYSBydWxlIHdvcmsuCisgICAgICAgICAgICAgICAgICAgIGlmIChsb29rQWhlYWRIYXJkQnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gTG9vay1haGVhZCBjb21wbGV0ZWQsIGJ1dCBvdGhlciBydWxlcyBtYXkgbWF0Y2ggZnVydGhlci4gIENvbnRpbnVlIG9uLgorICAgICAgICAgICAgICAgICAgICAvLyAgIFRPRE86ICBqdW5rIHRoaXMgZmVhdHVyZT8gIEkgZG9uJ3QgdGhpbmsgaXQncyB1c2VkIGFueXdoZXJlLgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsb29rYWhlYWRSZXN1bHQgPSBmVGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChjPj1VVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJiBjIT1DSV9ET05FMzIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGl0ZXJhdG9yIGhhcyBiZWVuIGxlZnQgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBiZWdpbm5pbmcgIG9mIGl0LgorICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRSZXN1bHQtLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzID0gc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuTE9PS0FIRUFEXTsKKyAgICAgICAgICAgICAgICBsb29rYWhlYWRUYWdJZHggPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5UQUdJRFhdOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5BQ0NFUFRJTkddICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoaXMgaXMgYW4gYWNjZXB0aW5nIHN0YXRlLCBhbnkgaW4tcHJvZ3Jlc3MgbG9vay1haGVhZCBtYXRjaAorICAgICAgICAgICAgICAgIC8vICAgaXMgbm8gbG9uZ2VyIHJlbGF2YW50LiAgQ2xlYXIgb3V0IHRoZSBwZW5kaW5nIGxvb2thaGVhZCBzdGF0dXMuCisgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzID0gMDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgIH0gICAgICAgIC8vIEVuZCBvZiBzdGF0ZSBtYWNoaW5lIG1haW4gbG9vcAorCisgICAgICAgIC8vIFRoZSBzdGF0ZSBtYWNoaW5lIGlzIGRvbmUuICBDaGVjayB3aGV0aGVyIGl0IGZvdW5kIGEgbWF0Y2guLi4KKworICAgICAgICAvLyBJZiB0aGUgaXRlcmF0b3IgZmFpbGVkIHRvIGFkdmFuY2UgaW4gdGhlIG1hdGNoIGVuZ2luZSwgZm9yY2UgaXQgYWhlYWQgYnkgb25lLgorICAgICAgICAvLyAgIChUaGlzIHJlYWxseSBpbmRpY2F0ZXMgYSBkZWZlY3QgaW4gdGhlIGJyZWFrIHJ1bGVzLiAgVGhleSBzaG91bGQgYWx3YXlzIG1hdGNoCisgICAgICAgIC8vICAgIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIuKQorICAgICAgICBpZiAocmVzdWx0ID09IGluaXRpYWxQb3NpdGlvbikgeworICAgICAgICAgICAgcmVzdWx0ID0gZlRleHQuc2V0SW5kZXgoaW5pdGlhbFBvc2l0aW9uKTsKKyAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBMZWF2ZSB0aGUgaXRlcmF0b3IgYXQgb3VyIHJlc3VsdCBwb3NpdGlvbi4KKyAgICAgICAgLy8gICAod2UgbWF5IGhhdmUgYWR2YW5jZWQgYmV5b25kIHRoZSBsYXN0IGFjY2VwdGluZyBwb3NpdGlvbiBjaGFzaW5nIGFmdGVyCisgICAgICAgIC8vICAgIGxvbmdlciBtYXRjaGVzIHRoYXQgbmV2ZXIgY29tcGxldGVkLikKKyAgICAgICAgZlRleHQuc2V0SW5kZXgocmVzdWx0KTsKKyAgICAgICAgaWYgKGZUcmFjZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZXN1bHQgPSAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIAorICAgIAorICAgIHByaXZhdGUgaW50IGhhbmRsZVByZXZpb3VzKHNob3J0IHN0YXRlVGFibGVbXSkgeworICAgICAgICBpbnQgICAgICAgICAgICBzdGF0ZTsKKyAgICAgICAgaW50ICAgICAgICAgICAgY2F0ZWdvcnkgICAgICAgICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgbW9kZTsKKyAgICAgICAgaW50ICAgICAgICAgICAgcm93OyAgICAgICAgCisgICAgICAgIGludCAgICAgICAgICAgIGM7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIHJlc3VsdCAgICAgICAgICAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbiAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCAgICA9IDA7CisgICAgICAgIGJvb2xlYW4gICAgICAgIGxvb2tBaGVhZEhhcmRCcmVhayA9IAorICAgICAgICAgICAgKHN0YXRlVGFibGVbUkJCSURhdGFXcmFwcGVyLkZMQUdTKzFdICYgUkJCSURhdGFXcmFwcGVyLlJCQklfTE9PS0FIRUFEX0hBUkRfQlJFQUspICE9IDA7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgfHwgc3RhdGVUYWJsZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvLyBoYW5kbGVQcmV2aW91cygpIG5ldmVyIGdldHMgdGhlIHJ1bGUgc3RhdHVzLgorICAgICAgICAvLyBGbGFnIHRoZSBzdGF0dXMgYXMgaW52YWxpZDsgaWYgdGhlIHVzZXIgZXZlciBhc2tzIGZvciBzdGF0dXMsIHdlIHdpbGwgbmVlZAorICAgICAgICAvLyB0byBiYWNrIHVwLCB0aGVuIHJlLWZpbmQgdGhlIGJyZWFrIHBvc2l0aW9uIHVzaW5nIGhhbmRsZU5leHQoKSwgd2hpY2ggZG9lcworICAgICAgICAvLyBnZXQgdGhlIHN0YXR1cyB2YWx1ZS4KKyAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gZmFsc2U7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisgICAgICAgIAorICAgICAgICAvLyBzZXQgdXAgdGhlIHN0YXJ0aW5nIGNoYXIKKyAgICAgICAgaW5pdGlhbFBvc2l0aW9uID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgcmVzdWx0ICAgICAgICAgID0gaW5pdGlhbFBvc2l0aW9uOworICAgICAgICBjICAgICAgICAgICAgICAgPSBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICAKKyAgICAgICAgLy8gU2V0IHVwIHRoZSBpbml0aWFsIHN0YXRlIGZvciB0aGUgc3RhdGUgbWFjaGluZQorICAgICAgICBzdGF0ZSA9IFNUQVJUX1NUQVRFOworICAgICAgICByb3cgPSBmUkRhdGEuZ2V0Um93SW5kZXgoc3RhdGUpOworICAgICAgICBjYXRlZ29yeSA9IDM7ICAgLy8gVE9ETzogIG9ic29sZXRlPyAgZnJvbSB0aGUgb2xkIHN0YXJ0L3J1biBtb2RlIHNjaGVtZT8KKyAgICAgICAgbW9kZSAgICAgPSBSQkJJX1JVTjsKKyAgICAgICAgaWYgKChzdGF0ZVRhYmxlW1JCQklEYXRhV3JhcHBlci5GTEFHUysxXSAmIFJCQklEYXRhV3JhcHBlci5SQkJJX0JPRl9SRVFVSVJFRCkgIT0gMCkgeworICAgICAgICAgICAgY2F0ZWdvcnkgPSAyOworICAgICAgICAgICAgbW9kZSAgICAgPSBSQkJJX1NUQVJUOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhhbmRsZSBQcmV2ICAgcG9zICAgY2hhciAgc3RhdGUgY2F0ZWdvcnkgIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGxvb3AgdW50aWwgd2UgcmVhY2ggdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCBvciB0cmFuc2l0aW9uIHRvIHN0YXRlIDAKKyAgICAgICAgLy8KKyAgICAgICAgbWFpbkxvb3A6IGZvciAoOzspIHsKKyAgICAgICAgICAgIGlubmVyQmxvY2s6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBDSV9ET05FMzIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVhY2hlZCBlbmQgb2YgaW5wdXQgc3RyaW5nLgorICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBSQkJJX0VORCB8fCBmUkRhdGEuZkhlYWRlci5mVmVyc2lvbiA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgb2xkIChJQ1UgMy4yIGFuZCBlYXJsaWVyKSBmb3JtYXQgZGF0YSB3aGljaAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyBub3Qgc3VwcG9ydCBleHBsaWNpdCBzdXBwb3J0IGZvciBtYXRjaGluZyB7ZW9mfSwgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgYWxyZWFkeSBkb25lIHRoZSB7ZW9mfSBpdGVyYXRpb24uICBOb3cgaXMgdGhlIHRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHVuY29uZGl0aW9uYWxseSBiYWlsIG91dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb29rYWhlYWRSZXN1bHQgPCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIHN0cmluZyB3aXRoIGEgcGVuZGluZyBsb29rLWFoZWFkIG1hdGNoLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoaXMgYXMgaWYgdGhlIGxvb2stYWhlYWQgY29uZGl0aW9uIGhhZCBiZWVuIG1ldCwgYW5kIHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICB0aGUgbWF0Y2ggYXQgdGhlIC8gcG9zaXRpb24gZnJvbSB0aGUgbG9vay1haGVhZCBydWxlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxvb2thaGVhZFJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gaW5pdGlhbFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFuIG9mZiBzdGFydCwgbm8gbWF0Y2ggZm91bmQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBvbmUgcG9zaXRpb24gKHRvd2FyZHMgdGhlIHN0YXJ0LCBzaW5jZSB3ZSBhcmUgZG9pbmcgcHJldmlvdXMuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KGluaXRpYWxQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0lQcmV2aW91czMyKGZUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBSQkJJX0VORDsKKyAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBSQkJJX1JVTikgeworICAgICAgICAgICAgICAgICAgICAvLyBsb29rIHVwIHRoZSBjdXJyZW50IGNoYXJhY3RlcidzIGNhdGVnb3J5LCB3aGljaCB0ZWxscyB1cworICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBjb2x1bW4gaW4gdGhlIHN0YXRlIHRhYmxlIHRvIGxvb2sgYXQuCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gKHNob3J0KSBmUkRhdGEuZlRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGUgZGljdGlvbmFyeSBiaXQgaW4gdGhlIGNoYXJhY3RlcidzIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgICAgICAvLyAgICBDb3VudGVyIGlzIG9ubHkgdXNlZCBieSBkaWN0aW9uYXJ5IGJhc2VkIGl0ZXJhdG9ycyAoc3ViY2xhc3NlcykuCisgICAgICAgICAgICAgICAgICAgIC8vICAgIENoYXJzIHRoYXQgbmVlZCB0byBiZSBoYW5kbGVkIGJ5IGEgZGljdGlvbmFyeSBoYXZlIGEgZmxhZyBiaXQgc2V0CisgICAgICAgICAgICAgICAgICAgIC8vICAgIGluIHRoZWlyIGNhdGVnb3J5IHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgaWYgKChjYXRlZ29yeSAmIDB4NDAwMCkgIT0gMCkgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgQW5kIG9mZiB0aGUgZGljdGlvbmFyeSBmbGFnIGJpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ICY9IH4weDQwMDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZUcmFjZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICAgICAgIiArIGZUZXh0LmdldEluZGV4KCkgKyAiICAgIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgweDIwIDw9IGMgJiYgYyA8IDB4N2YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIiArIGMgKyAiICAiKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAiICsgSW50ZWdlci50b0hleFN0cmluZyhjKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgIiArIHN0YXRlICsgIiAgIiArIGNhdGVnb3J5ICsgIiAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gU3RhdGUgVHJhbnNpdGlvbiAtIG1vdmUgbWFjaGluZSB0byBpdHMgbmV4dCBzdGF0ZQorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5ORVhUU1RBVEVTICsgY2F0ZWdvcnldOworICAgICAgICAgICAgICAgIHJvdyA9IGZSRGF0YS5nZXRSb3dJbmRleChzdGF0ZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWF0Y2ggZm91bmQsIGNvbW1vbiBjYXNlLCBjb3VsZCBoYXZlIGxvb2thaGVhZCBzbyB3ZSBtb3ZlCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIHRvIGNoZWNrIGl0CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvb2thaGVhZFN0YXR1cyAhPSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSA9PSBsb29rYWhlYWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvb2thaGVhZCBtYXRjaCBpcyBjb21wbGV0ZWQuIFNldCB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhY2NvcmRpbmdseSwgYnV0IG9ubHkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIG5vIG90aGVyIHJ1bGUgaGFzIG1hdGNoZWQgZnVydGhlciBpbiB0aGUgbWVhbgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxvb2thaGVhZFJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBtYWtlIGEgc3RhbmRhbG9uZSBoYXJkIGJyZWFrIGluIGEgcnVsZSB3b3JrLgorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9va0FoZWFkSGFyZEJyZWFrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb29rLWFoZWFkIGNvbXBsZXRlZCwgYnV0IG90aGVyIHJ1bGVzIG1heSBtYXRjaCBmdXJ0aGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udGludWUgb24uCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBqdW5rIHRoaXMgZmVhdHVyZT8gIEkgZG9uJ3QgdGhpbmsgdGhhdCBpdCdzIHVzZWQgYW55d2hlcmUuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBpbm5lckJsb2NrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIEhpdCBhIHBvc3NpYmxlIGxvb2stYWhlYWQgbWF0Y2guIFdlIGFyZSBhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhlICcvJy4gUmVtZW1iZXIgdGhpcyBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkUmVzdWx0ID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzID0gc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuTE9PS0FIRUFEXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW5uZXJCbG9jazsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIG5vdCBsb29rYWhlYWQuLi4KKyAgICAgICAgICAgICAgICBpZiAoc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwbGFpbiAobm9uLWxvb2stYWhlYWQpIGFjY2VwdGluZyBzdGF0ZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFsb29rQWhlYWRIYXJkQnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIG91dCBhbnkgcGVuZGluZyBsb29rLWFoZWFkIG1hdGNoZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBpZiBub3QgZG9pbmcgdGhlIGxvb2tBaGVhZEhhcmRCcmVhayBvcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIG5lZWRzIHRvIGZvcmNlIGEgYnJlYWsgbm8gbWF0dGVyIHdoYXQgaXMgZ29pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uIHdpdGggdGhlIHJlc3Qgb2YgdGhlIG1hdGNoLCBpLmUuIHdlIGNhbid0IGFiYW5kb24KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgcGFydGlhbGx5IGNvbXBsZXRlZCBsb29rLWFoZWFkIG1hdGNoIGJlY2F1c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvbWUgb3RoZXIgcnVsZSBtYXRjaGVkIGZ1cnRoZXIgdGhhbiB0aGUgJy8nIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgbG9vay1haGVhZCBtYXRjaC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7IAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSAvLyBlbmQgb2YgaW5uZXJCbG9jay4gICJicmVhayBpbm5lckJsb2NrIiBpbiBhYm92ZSBjb2RlIGNvbWVzIG91dCBoZXJlLgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICBpZiAoc3RhdGUgPT0gU1RPUF9TVEFURSkgeworICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBsb29wIGV4aXQgaXMgaGVyZQorICAgICAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8vIHRoZW4gbW92ZSBpdGVyYXRvciBwb3NpdGlvbiBiYWNrd2FyZHMgb25lIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfUlVOKSB7CisgICAgICAgICAgICAgICAgYyA9IENJUHJldmlvdXMzMihmVGV4dCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFJCQklfUlVOOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICB9ICAgLy8gRW5kIG9mIHRoZSBtYWluIGxvb3AuCisgICAgICAgIAorICAgICAgICAvLyBUaGUgc3RhdGUgbWFjaGluZSBpcyBkb25lLiAgQ2hlY2sgd2hldGhlciBpdCBmb3VuZCBhIG1hdGNoLi4uCisgICAgICAgIC8vCisgICAgICAgIC8vIElmIHRoZSBpdGVyYXRvciBmYWlsZWQgdG8gYWR2YW5jZSBpbiB0aGUgbWF0Y2ggZW5naW5lLCBmb3JjZSBpdCBhaGVhZCBieSBvbmUuCisgICAgICAgIC8vICAgKFRoaXMgcmVhbGx5IGluZGljYXRlcyBhIGRlZmVjdCBpbiB0aGUgYnJlYWsgcnVsZXMuICBUaGV5IHNob3VsZCBhbHdheXMgbWF0Y2gKKyAgICAgICAgLy8gICAgYXQgbGVhc3Qgb25lIGNoYXJhY3Rlci4pCisgICAgICAgIGlmIChyZXN1bHQgPT0gaW5pdGlhbFBvc2l0aW9uKSB7CisgICAgICAgICAgICByZXN1bHQgPSBmVGV4dC5zZXRJbmRleChpbml0aWFsUG9zaXRpb24pOworICAgICAgICAgICAgQ0lQcmV2aW91czMyKGZUZXh0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIGlmIChmVHJhY2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0ID0gIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisKKworCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLworICAgIAorICAgIC8vICBpc0RpY3Rpb25hcnlDaGFyICAgICAgUmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwCisgICAgCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBjaGFycy4KKyAgICAKKyAgICAvLworICAgIAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQKKyAgICAKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAKKyAgICAvLworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGJvb2xlYW4gaXNEaWN0aW9uYXJ5Q2hhcihpbnQgYykgeworICAgIAorICAgICAgICBzaG9ydCAgY2F0ZWdvcnkgPSAoc2hvcnQpIGZSRGF0YS5mVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAKKyAgICAgICAgcmV0dXJuIChjYXRlZ29yeSAmIDB4NDAwMCkgIT0gMDsKKyAgICAKKyAgICB9CisKK30KKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRDb2xsYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZjFmNjQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuamF2YQpAQCAtMCwwICsxLDQ2NzggQEAKKy8vIyNoZWFkZXIKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKKy8vI2Vsc2UKKy8vIyNpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5CeXRlQnVmZmVyOworLy8jZW5kaWYKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQk9DVTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURlYnVnOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbXBsaWNpdENFR2VuZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW50VHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworLyoqCisgKiA8cD5SdWxlQmFzZWRDb2xsYXRvciBpcyBhIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENvbGxhdG9yLiBJdCBhbGxvd3MKKyAqIGN1c3RvbWl6YXRpb24gb2YgdGhlIENvbGxhdG9yIHZpYSB1c2VyLXNwZWNpZmllZCBydWxlIHNldHMuCisgKiBSdWxlQmFzZWRDb2xsYXRvciBpcyBkZXNpZ25lZCB0byBiZSBmdWxseSBjb21wbGlhbnQgdG8gdGhlIDxhCisgKiBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+IFVuaWNvZGUKKyAqIENvbGxhdGlvbiBBbGdvcml0aG0gKFVDQSk8L2E+IGFuZCBjb25mb3JtcyB0byBJU08gMTQ2NTEuPC9wPgorICoKKyAqIDxwPlVzZXJzIGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIHJlYWQgPGEKKyAqIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0ludHJvLmh0bWwiPgorICogdGhlIHVzZXJzIGd1aWRlPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uCisgKiBzZXJ2aWNlIGJlZm9yZSB1c2luZyB0aGlzIGNsYXNzLjwvcD4KKyAqCisgKiA8cD5DcmVhdGUgYSBSdWxlQmFzZWRDb2xsYXRvciBmcm9tIGEgbG9jYWxlIGJ5IGNhbGxpbmcgdGhlCisgKiBnZXRJbnN0YW5jZShMb2NhbGUpIGZhY3RvcnkgbWV0aG9kIGluIHRoZSBiYXNlIGNsYXNzIENvbGxhdG9yLgorICogQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlKSBjcmVhdGVzIGEgUnVsZUJhc2VkQ29sbGF0b3Igb2JqZWN0CisgKiBiYXNlZCBvbiB0aGUgY29sbGF0aW9uIHJ1bGVzIGRlZmluZWQgYnkgdGhlIGFyZ3VtZW50IGxvY2FsZS4gIElmIGEKKyAqIGN1c3RvbWl6ZWQgY29sbGF0aW9uIG9yZGVyaW5nIGFyIGF0dHJpYnV0ZXMgaXMgcmVxdWlyZWQsIHVzZSB0aGUKKyAqIFJ1bGVCYXNlZENvbGxhdG9yKFN0cmluZykgY29uc3RydWN0b3Igd2l0aCB0aGUgYXBwcm9wcmlhdGUKKyAqIHJ1bGVzLiBUaGUgY3VzdG9taXplZCBSdWxlQmFzZWRDb2xsYXRvciB3aWxsIGJhc2UgaXRzIG9yZGVyaW5nIG9uCisgKiBVQ0EsIHdoaWxlIHJlLWFkanVzdGluZyB0aGUgYXR0cmlidXRlcyBhbmQgb3JkZXJzIG9mIHRoZSBjaGFyYWN0ZXJzCisgKiBpbiB0aGUgc3BlY2lmaWVkIHJ1bGUgYWNjb3JkaW5nbHkuPC9wPgorICoKKyAqIDxwPlJ1bGVCYXNlZENvbGxhdG9yIHByb3ZpZGVzIGNvcnJlY3QgY29sbGF0aW9uIG9yZGVycyBmb3IgbW9zdAorICogbG9jYWxlcyBzdXBwb3J0ZWQgaW4gSUNVLiBJZiBzcGVjaWZpYyBkYXRhIGZvciBhIGxvY2FsZSBpcyBub3QKKyAqIGF2YWlsYWJsZSwgdGhlIG9yZGVycyBldmVudHVhbGx5IGZhbGxzIGJhY2sgdG8gdGhlIDxhCisgKiBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+VUNBIGNvbGxhdGlvbgorICogb3JkZXIgPC9hPi48L3A+CisgKgorICogPHA+Rm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2xsYXRpb24gcnVsZSBzeW50YXggYW5kIGRldGFpbHMKKyAqIGFib3V0IGN1c3RvbWl6YXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0N1c3RvbWl6YXRpb24uaHRtbCI+CisgKiBDb2xsYXRpb24gY3VzdG9taXphdGlvbjwvYT4gc2VjdGlvbiBvZiB0aGUgdXNlcidzIGd1aWRlLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz4gdGhhdCB0aGVyZSBhcmUgc29tZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCisgKiB0aGUgQ29sbGF0aW9uIHJ1bGUgc3ludGF4IHVzZWQgaW4gSmF2YSBhbmQgSUNVNEo6CisgKgorICogPHVsPgorICogPGxpPkFjY29yZGluZyB0byB0aGUgSkRLIGRvY3VtZW50YXRpb246CisgKiA8aT4KKyAqIDxwPgorICogTW9kaWZpZXIgJyEnIDogVHVybnMgb24gVGhhaS9MYW8gdm93ZWwtY29uc29uYW50IHN3YXBwaW5nLiBJZiB0aGlzIHJ1bGUKKyAqIGlzIGluIGZvcmNlIHdoZW4gYSBUaGFpIHZvd2VsIG9mIHRoZSByYW5nZSAmIzkyO1UwRTQwLSYjOTI7VTBFNDQgcHJlY2VkZXMgYQorICogVGhhaSBjb25zb25hbnQgb2YgdGhlIHJhbmdlICYjOTI7VTBFMDEtJiM5MjtVMEUyRSBPUiBhIExhbyB2b3dlbCBvZiB0aGUKKyAqIHJhbmdlICYjOTI7VTBFQzAtJiM5MjtVMEVDNCBwcmVjZWRlcyBhIExhbyBjb25zb25hbnQgb2YgdGhlIHJhbmdlCisgKiAmIzkyO1UwRTgxLSYjOTI7VTBFQUUgdGhlbiB0aGUKKyAqIHZvd2VsIGlzIHBsYWNlZCBhZnRlciB0aGUgY29uc29uYW50IGZvciBjb2xsYXRpb24gcHVycG9zZXMuCisgKiA8L3A+CisgKiA8cD4KKyAqIElmIGEgcnVsZSBpcyB3aXRob3V0IHRoZSBtb2RpZmllciAnIScsIHRoZSBUaGFpL0xhbyB2b3dlbC1jb25zb25hbnQKKyAqIHN3YXBwaW5nIGlzIG5vdCB0dXJuZWQgb24uCisgKiA8L3A+CisgKiA8L2k+CisgKiA8cD4KKyAqIElDVTRKJ3MgUnVsZUJhc2VkQ29sbGF0b3IgZG9lcyBub3Qgc3VwcG9ydCB0dXJuaW5nIG9mZiB0aGUgVGhhaS9MYW8KKyAqIHZvd2VsLWNvbnNvbmFudCBzd2FwcGluZywgc2luY2UgdGhlIFVDQSBjbGVhcmx5IHN0YXRlcyB0aGF0IGl0IGhhcyB0byBiZQorICogc3VwcG9ydGVkIHRvIGVuc3VyZSBhIGNvcnJlY3Qgc29ydGluZyBvcmRlci4gSWYgYSAnIScgaXMgZW5jb3VudGVyZWQsIGl0IGlzCisgKiBpZ25vcmVkLgorICogPC9wPgorICogPGxpPkFzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYmFzZSBjbGFzcyBDb2xsYXRvciwKKyAqICAgICBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gbW9kZSBpcyBub3Qgc3VwcG9ydGVkLgorICogPC91bD4KKyAqIDxwPgorICogPHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPgorICogPC9wPgorICogPHA+CisgKiBDcmVhdGluZyBDdXN0b21pemVkIFJ1bGVCYXNlZENvbGxhdG9yczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFN0cmluZyBzaW1wbGUgPSAiJmFtcDsgYSAmbHQ7IGIgJmx0OyBjICZsdDsgZCI7CisgKiBSdWxlQmFzZWRDb2xsYXRvciBzaW1wbGVDb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihzaW1wbGUpOworICoKKyAqIFN0cmluZyBub3J3ZWdpYW4gPSAiJmFtcDsgYSAsIEEgJmx0OyBiICwgQiAmbHQ7IGMgLCBDICZsdDsgZCAsIEQgJmx0OyBlICwgRSAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiJmx0OyBmICwgRiAmbHQ7IGcgLCBHICZsdDsgaCAsIEggJmx0OyBpICwgSSAmbHQ7IGogLCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiSiAmbHQ7IGsgLCBLICZsdDsgbCAsIEwgJmx0OyBtICwgTSAmbHQ7IG4gLCBOICZsdDsgIgorICogICAgICAgICAgICAgICAgICAgICsgIm8gLCBPICZsdDsgcCAsIFAgJmx0OyBxICwgUSAmbHQgciAsIFIgJmx0IHMgLCBTICZsdDsgIgorICogICAgICAgICAgICAgICAgICAgICsgInQgLCBUICZsdDsgdSAsIFUgJmx0OyB2ICwgViAmbHQ7IHcgLCBXICZsdDsgeCAsIFggIgorICogICAgICAgICAgICAgICAgICAgICsgIiZsdDsgeSAsIFkgJmx0OyB6ICwgWiAmbHQ7ICYjOTI7dTAwRTUgPSBhJiM5Mjt1MDMwQSAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiLCAmIzkyO3UwMEM1ID0gQSYjOTI7dTAzMEEgOyBhYSAsIEFBICZsdDsgJiM5Mjt1MDBFNiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiLCAmIzkyO3UwMEM2ICZsdDsgJiM5Mjt1MDBGOCAsICYjOTI7dTAwRDgiOworICogUnVsZUJhc2VkQ29sbGF0b3Igbm9yd2VnaWFuQ29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Iobm9yd2VnaWFuKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIENvbmNhdGVuYXRpbmcgcnVsZXMgdG8gY29tYmluZSA8Y29kZT5Db2xsYXRvcjwvY29kZT5zOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gQ3JlYXRlIGFuIGVuX1VTIENvbGxhdG9yIG9iamVjdAorICogUnVsZUJhc2VkQ29sbGF0b3IgZW5fVVNDb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcikKKyAqICAgICBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIsICIiKSk7CisgKiAvLyBDcmVhdGUgYSBkYV9ESyBDb2xsYXRvciBvYmplY3QKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIGRhX0RLQ29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpCisgKiAgICAgQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZGEiLCAiREsiLCAiIikpOworICogLy8gQ29tYmluZSB0aGUgdHdvCisgKiAvLyBGaXJzdCwgZ2V0IHRoZSBjb2xsYXRpb24gcnVsZXMgZnJvbSBlbl9VU0NvbGxhdG9yCisgKiBTdHJpbmcgZW5fVVNSdWxlcyA9IGVuX1VTQ29sbGF0b3IuZ2V0UnVsZXMoKTsKKyAqIC8vIFNlY29uZCwgZ2V0IHRoZSBjb2xsYXRpb24gcnVsZXMgZnJvbSBkYV9ES0NvbGxhdG9yCisgKiBTdHJpbmcgZGFfREtSdWxlcyA9IGRhX0RLQ29sbGF0b3IuZ2V0UnVsZXMoKTsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG5ld0NvbGxhdG9yID0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fVVNSdWxlcyArIGRhX0RLUnVsZXMpOworICogLy8gbmV3Q29sbGF0b3IgaGFzIHRoZSBjb21iaW5lZCBydWxlcworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogTWFraW5nIGNoYW5nZXMgdG8gYW4gZXhpc3RpbmcgUnVsZUJhc2VkQ29sbGF0b3IgdG8gY3JlYXRlIGEgbmV3CisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT4gb2JqZWN0LCBieSBhcHBlbmRpbmcgY2hhbmdlcyB0byB0aGUgZXhpc3RpbmcgcnVsZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIC8vIENyZWF0ZSBhIG5ldyBDb2xsYXRvciBvYmplY3Qgd2l0aCBhZGRpdGlvbmFsIHJ1bGVzCisgKiBTdHJpbmcgYWRkUnVsZXMgPSAiJmFtcDsgQyAmbHQ7IGNoLCBjSCwgQ2gsIENIIjsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0b3IgPQorICogICAgIG5ldyBSdWxlQmFzZWRDb2xsYXRvcihlbl9VU0NvbGxhdG9yICsgYWRkUnVsZXMpOworICogLy8gbXlDb2xsYXRvciBjb250YWlucyB0aGUgbmV3IHJ1bGVzCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBIb3cgdG8gY2hhbmdlIHRoZSBvcmRlciBvZiBub24tc3BhY2luZyBhY2NlbnRzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gb2xkIHJ1bGUgd2l0aCBtYWluIGFjY2VudHMKKyAqIFN0cmluZyBvbGRSdWxlcyA9ICI9ICYjOTI7dTAzMDEgOyAmIzkyO3UwMzAwIDsgJiM5Mjt1MDMwMiA7ICYjOTI7dTAzMDggIgorICogICAgICAgICAgICAgICAgICsgIjsgJiM5Mjt1MDMyNyA7ICYjOTI7dTAzMDMgOyAmIzkyO3UwMzA0IDsgJiM5Mjt1MDMwNSAiCisgKiAgICAgICAgICAgICAgICAgKyAiOyAmIzkyO3UwMzA2IDsgJiM5Mjt1MDMwNyA7ICYjOTI7dTAzMDkgOyAmIzkyO3UwMzBBICIKKyAqICAgICAgICAgICAgICAgICArICI7ICYjOTI7dTAzMEIgOyAmIzkyO3UwMzBDIDsgJiM5Mjt1MDMwRCA7ICYjOTI7dTAzMEUgIgorICogICAgICAgICAgICAgICAgICsgIjsgJiM5Mjt1MDMwRiA7ICYjOTI7dTAzMTAgOyAmIzkyO3UwMzExIDsgJiM5Mjt1MDMxMiAiCisgKiAgICAgICAgICAgICAgICAgKyAiJmx0OyBhICwgQSA7IGFlLCBBRSA7ICYjOTI7dTAwZTYgLCAmIzkyO3UwMGM2ICIKKyAqICAgICAgICAgICAgICAgICArICImbHQ7IGIgLCBCICZsdDsgYywgQyAmbHQ7IGUsIEUgJmFtcDsgQyAmbHQ7IGQgLCBEIjsKKyAqIC8vIGNoYW5nZSB0aGUgb3JkZXIgb2YgYWNjZW50IGNoYXJhY3RlcnMKKyAqIFN0cmluZyBhZGRPbiA9ICImYW1wOyAmIzkyO3UwMzAwIDsgJiM5Mjt1MDMwOCA7ICYjOTI7dTAzMDIiOworICogUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihvbGRSdWxlcyArIGFkZE9uKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFB1dHRpbmcgaW4gYSBuZXcgcHJpbWFyeSBvcmRlcmluZyBiZWZvcmUgdGhlIGRlZmF1bHQgc2V0dGluZywKKyAqIGUuZy4gc29ydCBFbmdsaXNoIGNoYXJhY3RlcnMgYmVmb3JlIG9yIGFmdGVyIEphcGFuZXNlIGNoYXJhY3RlcnMgaW4gdGhlIEphcGFuZXNlCisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT46CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBnZXQgZW5fVVMgQ29sbGF0b3IgcnVsZXMKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIGVuX1VTQ29sbGF0b3IKKyAqICAgICAgICAgICAgICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAqIC8vIGFkZCBhIGZldyBKYXBhbmVzZSBjaGFyYWN0ZXJzIHRvIHNvcnQgYmVmb3JlIEVuZ2xpc2ggY2hhcmFjdGVycworICogLy8gc3VwcG9zZSB0aGUgbGFzdCBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBmaXJzdCBiYXNlIGxldHRlciAnYScgaW4KKyAqIC8vIHRoZSBFbmdsaXNoIGNvbGxhdGlvbiBydWxlIGlzICYjOTI7dTIyMTIKKyAqIFN0cmluZyBqYVN0cmluZyA9ICImICYjOTI7dTIyMTIgJmx0ICYjOTI7dTMwNDEsICYjOTI7dTMwNDIgJmx0ICYjOTI7dTMwNDMsICIKKyAqICAgICAgICAgICAgICAgICAgICsgIiYjOTI7dTMwNDQiOworICogUnVsZUJhc2VkQ29sbGF0b3IgbXlKYXBhbmVzZUNvbGxhdG9yCisgKiAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fVVNDb2xsYXRvci5nZXRSdWxlcygpICsgamFTdHJpbmcpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUnVsZUJhc2VkQ29sbGF0b3IgZXh0ZW5kcyBDb2xsYXRvcgoreyAgIAorICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb25zdHJ1Y3RvciB0aGF0IHRha2VzIHRoZSBhcmd1bWVudCBydWxlcyBmb3IKKyAgICAgKiBjdXN0b21pemF0aW9uLiBUaGUgY29sbGF0b3Igd2lsbCBiZSBiYXNlZCBvbiBVQ0EsCisgICAgICogd2l0aCB0aGUgYXR0cmlidXRlcyBhbmQgcmUtb3JkZXJpbmcgb2YgdGhlIGNoYXJhY3RlcnMgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIGFyZ3VtZW50IHJ1bGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5TZWUgdGhlIHVzZXIgZ3VpZGUncyBzZWN0aW9uIG9uCisgICAgICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfQ3VzdG9taXphdGlvbi5odG1sIj4KKyAgICAgKiBDb2xsYXRpb24gQ3VzdG9taXphdGlvbjwvYT4gZm9yIGRldGFpbHMgb24gdGhlIHJ1bGUgc3ludGF4LgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gcnVsZXMgdGhlIGNvbGxhdGlvbiBydWxlcyB0byBidWlsZCB0aGUgY29sbGF0aW9uIHRhYmxlIGZyb20uCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiBhbmQgSU9FeGNlcHRpb24gdGhyb3duLiBQYXJzZUV4Y2VwdGlvbiB0aHJvd24KKyAgICAgKiAgICAgICAgICAgIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbiBpbnZhbGlkIHN5bnRheC4gSU9FeGNlcHRpb24KKyAgICAgKiAgICAgICAgICAgIHRocm93biB3aGVuIGFuIGVycm9yIG9jY3VyZWQgd2hpbGUgcmVhZGluZyBpbnRlcm5hbCBkYXRhLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWRDb2xsYXRvcihTdHJpbmcgcnVsZXMpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGNoZWNrVUNBKCk7CisgICAgICAgIGlmIChydWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uIHJ1bGVzIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGluaXQocnVsZXMpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDbG9uZXMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHJldHVybiBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB0aHJvd3MgQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHJlc3VsdCA9IChSdWxlQmFzZWRDb2xsYXRvcilzdXBlci5jbG9uZSgpOworICAgICAgICBpZiAobGF0aW5PbmVDRXNfICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5tX3JlYWxsb2NMYXRpbk9uZUNFc18gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIHNpbmNlIGFsbCBjb2xsYXRpb24gZGF0YSBpbiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgZG8gbm90IGNoYW5nZQorICAgICAgICAvLyB3ZSBjYW4gc2FmZWx5IGFzc2lnbiB0aGUgcmVzdWx0LmZpZWxkcyB0byB0aGlzIGNvbGxhdG9yCisgICAgICAgIHJlc3VsdC5pbml0VXRpbGl0eShmYWxzZSk7ICAvLyBsZXQgdGhlIG5ldyBjbG9uZSBoYXZlIHRoZWlyIG93biB1dGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdGVyYXRvcnMKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBTdHJpbmcuCisgICAgICogQHNlZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlLCB0aGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiBUaGUgc291cmNlIGl0ZXJhdG9yJ3MgaW50ZWdyaXR5IHdpbGwgYmUgcHJlc2VydmVkIHNpbmNlIGEgbmV3IGNvcHkKKyAgICAgKiB3aWxsIGJlIGNyZWF0ZWQgZm9yIHVzZS4KKyAgICAgKiBAc2VlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlKQorICAgIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgbmV3c291cmNlID0gKENoYXJhY3Rlckl0ZXJhdG9yKXNvdXJjZS5jbG9uZSgpOworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihuZXdzb3VyY2UsIHRoaXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBVQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogVGhlIHNvdXJjZSBpdGVyYXRvcidzIGludGVncml0eSB3aWxsIGJlIHByZXNlcnZlZCBzaW5jZSBhIG5ldyBjb3B5CisgICAgICogd2lsbCBiZSBjcmVhdGVkIGZvciB1c2UuCisgICAgICogQHNlZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UsIHRoaXMpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgdG8gYmUgb24gb3Igb2ZmLgorICAgICAqIFdoZW4gdGhlIEhpcmFnYW5hIFF1YXRlcm5hcnkgbW9kZSBpcyB0dXJuZWQgb24sIHRoZSBjb2xsYXRvcgorICAgICAqIHBvc2l0aW9ucyBIaXJhZ2FuYSBjaGFyYWN0ZXJzIGJlZm9yZSBhbGwgbm9uLWlnbm9yYWJsZSBjaGFyYWN0ZXJzIGluCisgICAgICogUVVBVEVSTkFSWSBzdHJlbmd0aC4gVGhpcyBpcyB0byBwcm9kdWNlIGEgY29ycmVjdCBKSVMgY29sbGF0aW9uIG9yZGVyLAorICAgICAqIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gS2F0YWthbmEgIGFuZCBIaXJhZ2FuYSBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBmbGFnIHRydWUgaWYgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIHRvIGJlIG9uLCBmYWxzZQorICAgICAqICAgICAgICBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNzZXRIaXJhZ2FuYVF1YXRlcm5hcnlEZWZhdWx0CisgICAgICogQHNlZSAjaXNIaXJhZ2FuYVF1YXRlcm5hcnkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRIaXJhZ2FuYVF1YXRlcm5hcnkoYm9vbGVhbiBmbGFnKQorICAgIHsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBmbGFnOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nCisgICAgICogY29uc3RydWN0aW9uIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBTZWUgc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pCisgICAgICogQHNlZSAjaXNIaXJhZ2FuYVF1YXRlcm5hcnkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRIaXJhZ2FuYVF1YXRlcm5hcnlEZWZhdWx0KCkKKyAgICB7CisgICAgICAgIG1faXNIaXJhZ2FuYTRfID0gbV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHNvcnQgYmVmb3JlIGxvd2VyY2FzZQorICAgICAqIGNoYXJhY3RlcnMgb3IgdmljZSB2ZXJzYSwgaW4gc3RyZW5ndGggVEVSVElBUlkuIFRoZSBkZWZhdWx0CisgICAgICogbW9kZSBpcyBmYWxzZSwgYW5kIHNvIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIHNvcnQgYmVmb3JlIHVwcGVyY2FzZQorICAgICAqIGNoYXJhY3RlcnMuCisgICAgICogSWYgdHJ1ZSwgc29ydCB1cHBlciBjYXNlIGNoYXJhY3RlcnMgZmlyc3QuCisgICAgICogQHBhcmFtIHVwcGVyZmlyc3QgdHJ1ZSB0byBzb3J0IHVwcGVyY2FzZSBjaGFyYWN0ZXJzIGJlZm9yZQorICAgICAqICAgICAgICAgICAgICAgICAgIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBmYWxzZSB0byBzb3J0IGxvd2VyY2FzZQorICAgICAqICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMgYmVmb3JlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzCisgICAgICogQHNlZSAjaXNMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI2lzVXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVcHBlckNhc2VGaXJzdChib29sZWFuIHVwcGVyZmlyc3QpCisgICAgeworICAgICAgICBpZiAodXBwZXJmaXJzdCkgeworICAgICAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IEF0dHJpYnV0ZVZhbHVlLlVQUEVSX0ZJUlNUXykgeworICAgICAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9jYXNlRmlyc3RfID0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IEF0dHJpYnV0ZVZhbHVlLk9GRl8pIHsKKyAgICAgICAgICAgICAgICBsYXRpbk9uZVJlZ2VuVGFibGVfID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY2FzZUZpcnN0XyA9IEF0dHJpYnV0ZVZhbHVlLk9GRl87CisgICAgICAgIH0KKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG9yZGVycyBvZiBsb3dlciBjYXNlZCBjaGFyYWN0ZXJzIHRvIHNvcnQgYmVmb3JlIHVwcGVyIGNhc2VkCisgICAgICogY2hhcmFjdGVycywgaW4gc3RyZW5ndGggVEVSVElBUlkuIFRoZSBkZWZhdWx0CisgICAgICogbW9kZSBpcyBmYWxzZS4KKyAgICAgKiBJZiB0cnVlIGlzIHNldCwgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHdpbGwgc29ydCBsb3dlciBjYXNlZCBjaGFyYWN0ZXJzCisgICAgICogYmVmb3JlIHRoZSB1cHBlciBjYXNlZCBvbmVzLgorICAgICAqIE90aGVyd2lzZSwgaWYgZmFsc2UgaXMgc2V0LCB0aGUgUnVsZUJhc2VkQ29sbGF0b3Igd2lsbCBpZ25vcmUgY2FzZQorICAgICAqIHByZWZlcmVuY2VzLgorICAgICAqIEBwYXJhbSBsb3dlcmZpcnN0IHRydWUgZm9yIHNvcnRpbmcgbG93ZXIgY2FzZWQgY2hhcmFjdGVycyBiZWZvcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICB1cHBlciBjYXNlZCBjaGFyYWN0ZXJzLCBmYWxzZSB0byBpZ25vcmUgY2FzZQorICAgICAqICAgICAgICAgICAgICAgICAgIHByZWZlcmVuY2VzLgorICAgICAqIEBzZWUgI2lzTG93ZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNpc1VwcGVyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0VXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRDYXNlRmlyc3REZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG93ZXJDYXNlRmlyc3QoYm9vbGVhbiBsb3dlcmZpcnN0KQorICAgIHsKKyAgICAgICAgaWYgKGxvd2VyZmlyc3QpIHsKKyAgICAgICAgICAgICAgICBpZihtX2Nhc2VGaXJzdF8gIT0gQXR0cmlidXRlVmFsdWUuTE9XRVJfRklSU1RfKSB7CisgICAgICAgICAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2Nhc2VGaXJzdF8gPSBBdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IEF0dHJpYnV0ZVZhbHVlLk9GRl8pIHsKKyAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9jYXNlRmlyc3RfID0gQXR0cmlidXRlVmFsdWUuT0ZGXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNhc2UgZmlyc3QgbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRVcHBlckNhc2VGaXJzdChib29sZWFuKSBhbmQgc2V0TG93ZXJDYXNlRmlyc3QoYm9vbGVhbikgZm9yIG1vcmUKKyAgICAgKiBkZXRhaWxzLgorICAgICAqIEBzZWUgI2lzTG93ZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNpc1VwcGVyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0TG93ZXJDYXNlRmlyc3QoYm9vbGVhbikKKyAgICAgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdChib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldENhc2VGaXJzdERlZmF1bHQoKQorICAgIHsKKyAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IG1fZGVmYXVsdENhc2VGaXJzdF8pIHsKKyAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG1fY2FzZUZpcnN0XyA9IG1fZGVmYXVsdENhc2VGaXJzdF87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhbHRlcm5hdGUgaGFuZGxpbmcgbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRBbHRlcm5hdGVIYW5kbGluZyhib29sZWFuKSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI3NldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChib29sZWFuKQorICAgICAqIEBzZWUgI2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBbHRlcm5hdGVIYW5kbGluZ0RlZmF1bHQoKQorICAgIHsKKyAgICAgICAgbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gPSBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjYXNlIGxldmVsIG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nCisgICAgICogY29uc3RydWN0aW9uIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBTZWUgc2V0Q2FzZUxldmVsKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0Q2FzZUxldmVsKGJvb2xlYW4pCisgICAgICogQHNlZSAjaXNDYXNlTGV2ZWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXNlTGV2ZWxEZWZhdWx0KCkKKyAgICB7CisgICAgICAgIG1faXNDYXNlTGV2ZWxfID0gbV9kZWZhdWx0SXNDYXNlTGV2ZWxfOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZyBjb25zdHJ1Y3Rpb24KKyAgICAgKiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldERlY29tcG9zaXRpb24oaW50KSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uKGludCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNvbXBvc2l0aW9uRGVmYXVsdCgpCisgICAgeworICAgICAgICBzZXREZWNvbXBvc2l0aW9uKG1fZGVmYXVsdERlY29tcG9zaXRpb25fKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgRnJlbmNoIGNvbGxhdGlvbiBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZworICAgICAqIGNvbnN0cnVjdGlvbiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldEZyZW5jaENvbGxhdGlvbihib29sZWFuKSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI2lzRnJlbmNoQ29sbGF0aW9uCisgICAgICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uKGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RnJlbmNoQ29sbGF0aW9uRGVmYXVsdCgpCisgICAgeworICAgICAgICBpZihtX2lzRnJlbmNoQ29sbGF0aW9uXyAhPSBtX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl8pIHsKKyAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gbV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY29sbGF0aW9uIHN0cmVuZ3RoIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZyB0aGUKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRTdHJlbmd0aChpbnQpIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgoaW50KQorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RyZW5ndGhEZWZhdWx0KCkKKyAgICB7CisgICAgICAgIHNldFN0cmVuZ3RoKG1fZGVmYXVsdFN0cmVuZ3RoXyk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNZXRob2QgdG8gc2V0IG51bWVyaWMgY29sbGF0aW9uIHRvIGl0cyBkZWZhdWx0IHZhbHVlLgorICAgICAqIFdoZW4gbnVtZXJpYyBjb2xsYXRpb24gaXMgdHVybmVkIG9uLCB0aGlzIENvbGxhdG9yIGdlbmVyYXRlcyBhIGNvbGxhdGlvbiAKKyAgICAgKiBrZXkgZm9yIHRoZSBudW1lcmljIHZhbHVlIG9mIHN1YnN0cmluZ3Mgb2YgZGlnaXRzLiBUaGlzIGlzIGEgd2F5IHRvIGdldCAKKyAgICAgKiAnMTAwJyB0byBzb3J0IEFGVEVSICcyJworICAgICAqIEBzZWUgI2dldE51bWVyaWNDb2xsYXRpb24KKyAgICAgKiBAc2VlICNzZXROdW1lcmljQ29sbGF0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TnVtZXJpY0NvbGxhdGlvbkRlZmF1bHQoKQorICAgIHsKKyAgICAgICAgc2V0TnVtZXJpY0NvbGxhdGlvbihtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbW9kZSBmb3IgdGhlIGRpcmVjdGlvbiBvZiBTRUNPTkRBUlkgd2VpZ2h0cyB0byBiZSB1c2VkIGluCisgICAgICogRnJlbmNoIGNvbGxhdGlvbi4KKyAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZSwgd2hpY2ggdHJlYXRzIFNFQ09OREFSWSB3ZWlnaHRzIGluIHRoZSBvcmRlcgorICAgICAqIHRoZXkgYXBwZWFyLgorICAgICAqIElmIHNldCB0byB0cnVlLCB0aGUgU0VDT05EQVJZIHdlaWdodHMgd2lsbCBiZSBzb3J0ZWQgYmFja3dhcmRzLgorICAgICAqIFNlZSB0aGUgc2VjdGlvbiBvbgorICAgICAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX1NlcnZpY2VBcmNoaXRlY3R1cmUuaHRtbCI+CisgICAgICogRnJlbmNoIGNvbGxhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSB0byBzZXQgdGhlIEZyZW5jaCBjb2xsYXRpb24gb24sIGZhbHNlIHRvIHNldCBpdCBvZmYKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKiBAc2VlICNpc0ZyZW5jaENvbGxhdGlvbgorICAgICAqIEBzZWUgI3NldEZyZW5jaENvbGxhdGlvbkRlZmF1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGcmVuY2hDb2xsYXRpb24oYm9vbGVhbiBmbGFnKQorICAgIHsKKyAgICAgICAgaWYobV9pc0ZyZW5jaENvbGxhdGlvbl8gIT0gZmxhZykgeworICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbV9pc0ZyZW5jaENvbGxhdGlvbl8gPSBmbGFnOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIGZvciBRVUFURVJOQVJZIHN0cmVuZ3RoIHRvIGJlIGVpdGhlcgorICAgICAqIHNoaWZ0ZWQgb3Igbm9uLWlnbm9yYWJsZS4KKyAgICAgKiBTZWUgdGhlIFVDQSBkZWZpbml0aW9uIG9uCisgICAgICogPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8jVmFyaWFibGVfV2VpZ2h0aW5nIj4KKyAgICAgKiBBbHRlcm5hdGUgV2VpZ2h0aW5nPC9hPi4KKyAgICAgKiBUaGlzIGF0dHJpYnV0ZSB3aWxsIG9ubHkgYmUgZWZmZWN0aXZlIHdoZW4gUVVBVEVSTkFSWSBzdHJlbmd0aCBpcyBzZXQuCisgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgbW9kZSBpcyBmYWxzZSwgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiBOT05fSUdOT1JBQkxFIG1vZGUgaW4gVUNBLiBJbiB0aGUgTk9OLUlHTk9SQUJMRSBtb2RlLCB0aGUKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvciB3aWxsIHRyZWF0cyBhbGwgdGhlIGNvZGVwb2ludHMgd2l0aCBub24taWdub3JhYmxlCisgICAgICogcHJpbWFyeSB3ZWlnaHRzIGluIHRoZSBzYW1lIHdheS4KKyAgICAgKiBJZiB0aGUgbW9kZSBpcyBzZXQgdG8gdHJ1ZSwgdGhlIGJlaGF2aW91ciBjb3JyZXNwb25kcyB0byBTSElGVEVEIGRlZmluZWQKKyAgICAgKiBpbiBVQ0EsIHRoaXMgY2F1c2VzIGNvZGVwb2ludHMgd2l0aCBQUklNQVJZIG9yZGVycyB0aGF0IGFyZSBlcXVhbCBvcgorICAgICAqIGJlbG93IHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgdG8gYmUgaWdub3JlZCBpbiBQUklNQVJZIG9yZGVyIGFuZAorICAgICAqIG1vdmVkIHRvIHRoZSBRVUFURVJOQVJZIG9yZGVyLgorICAgICAqIEBwYXJhbSBzaGlmdGVkIHRydWUgaWYgU0hJRlRFRCBiZWhhdmlvdXIgZm9yIGFsdGVybmF0ZSBoYW5kbGluZyBpcworICAgICAqICAgICAgICBkZXNpcmVkLCBmYWxzZSBmb3IgdGhlIE5PTl9JR05PUkFCTEUgYmVoYXZpb3VyLgorICAgICAqIEBzZWUgI2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkCisgICAgICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdEZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4gc2hpZnRlZCkKKyAgICB7CisgICAgICAgIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfID0gc2hpZnRlZDsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFdoZW4gY2FzZSBsZXZlbCBpcyBzZXQgdG8gdHJ1ZSwgYW4gYWRkaXRpb25hbCB3ZWlnaHQgaXMgZm9ybWVkCisgICAgICogYmV0d2VlbiB0aGUgU0VDT05EQVJZIGFuZCBURVJUSUFSWSB3ZWlnaHQsIGtub3duIGFzIHRoZSBjYXNlIGxldmVsLgorICAgICAqIFRoZSBjYXNlIGxldmVsIGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggbGFyZ2UgYW5kIHNtYWxsIEphcGFuZXNlIEthbmEKKyAgICAgKiBjaGFyYWN0ZXJzLiBDYXNlIGxldmVsIGNvdWxkIGFsc28gYmUgdXNlZCBpbiBvdGhlciBzaXR1YXRpb25zLgorICAgICAqIEZvciBleGFtcGxlIHRvIGRpc3Rpbmd1aXNoIGNlcnRhaW4gUGlueWluIGNoYXJhY3RlcnMuCisgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UsIHdoaWNoIG1lYW5zIHRoZSBjYXNlIGxldmVsIGlzIG5vdCBnZW5lcmF0ZWQuCisgICAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSBjYXNlIGxldmVsIGFyZSBhZmZlY3RlZCBieSB0aGUgY2FzZSBmaXJzdAorICAgICAqIG1vZGUuIEEgc2ltcGxlIHdheSB0byBpZ25vcmUgYWNjZW50IGRpZmZlcmVuY2VzIGluIGEgc3RyaW5nIGlzIHRvIHNldAorICAgICAqIHRoZSBzdHJlbmd0aCB0byBQUklNQVJZIGFuZCBlbmFibGUgY2FzZSBsZXZlbC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIHRoZSBzZWN0aW9uIG9uCisgICAgICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAgICAgKiBjYXNlIGxldmVsPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSBpZiBjYXNlIGxldmVsIHNvcnRpbmcgaXMgcmVxdWlyZWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqIEBzZWUgI3NldENhc2VMZXZlbERlZmF1bHQKKyAgICAgKiBAc2VlICNpc0Nhc2VMZXZlbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhc2VMZXZlbChib29sZWFuIGZsYWcpCisgICAgeworICAgICAgICBtX2lzQ2FzZUxldmVsXyA9IGZsYWc7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoaXMgQ29sbGF0b3IncyBzdHJlbmd0aCBwcm9wZXJ0eS4gVGhlIHN0cmVuZ3RoIHByb3BlcnR5CisgICAgICogZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBsZXZlbCBvZiBkaWZmZXJlbmNlIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQKKyAgICAgKiBkdXJpbmcgY29tcGFyaXNvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBwYXJhbSBuZXdTdHJlbmd0aCB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGhEZWZhdWx0CisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUgaXMgbm90IG9uZQorICAgICAqICAgICAgICAgICAgICBvZiBQUklNQVJZLCBTRUNPTkRBUlksIFRFUlRJQVJZLCBRVUFURVJOQVJZIG9yIElERU5USUNBTC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdHJlbmd0aChpbnQgbmV3U3RyZW5ndGgpCisgICAgeworICAgICAgICBzdXBlci5zZXRTdHJlbmd0aChuZXdTdHJlbmd0aCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIDxwPgorICAgICAqIFZhcmlhYmxlIHRvcCBpcyBhIHR3byBieXRlIHByaW1hcnkgdmFsdWUgd2hpY2ggY2F1c2VzIGFsbCB0aGUgY29kZXBvaW50cyAKKyAgICAgKiB3aXRoIHByaW1hcnkgdmFsdWVzIHRoYXQgYXJlIGxlc3Mgb3IgZXF1YWwgdGhhbiB0aGUgdmFyaWFibGUgdG9wIHRvIGJlIAorICAgICAqIHNoaWZ0ZWQgd2hlbiBhbHRlcm5hdGUgaGFuZGxpbmcgaXMgc2V0IHRvIFNISUZURUQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhlIHZhcmlhYmxlIHRvcCB0byBhIGNvbGxhdGlvbiBlbGVtZW50IHZhbHVlIG9mIGEgc3RyaW5nIHN1cHBsaWVkLgorICAgICAqIDwvcD4gCisgICAgICogQHBhcmFtIHZhclRvcCBvbmUgb3IgbW9yZSAoaWYgY29udHJhY3Rpb24pIGNoYXJhY3RlcnMgdG8gd2hpY2ggdGhlIAorICAgICAqICAgICAgICAgICAgICAgdmFyaWFibGUgdG9wIHNob3VsZCBiZSBzZXQKKyAgICAgKiBAcmV0dXJuIGEgaW50IHZhbHVlIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSB0b3AgaW4gdXBwZXIgMTYKKyAgICAgKiAgICAgICAgIGJpdHMuIExvd2VyIDE2IGJpdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgdmFyVG9wIGFyZ3VtZW50IGlzIG5vdCAKKyAgICAgKiAgICAgICAgICAgIGEgdmFsaWQgdmFyaWFibGUgdG9wIGVsZW1lbnQuIEEgdmFyaWFibGUgdG9wIGVsZW1lbnQgaXMgCisgICAgICogICAgICAgICAgICBpbnZhbGlkIHdoZW4gCisgICAgICogICAgICAgICAgICA8dWw+CisgICAgICogICAgICAgICAgICA8bGk+aXQgaXMgYSBjb250cmFjdGlvbiB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZQorICAgICAqICAgICAgICAgICAgICAgIENvbGxhdGlvbiBvcmRlcgorICAgICAqICAgICAgICAgICAgPGxpPndoZW4gdGhlIFBSSU1BUlkgc3RyZW5ndGggY29sbGF0aW9uIGVsZW1lbnQgZm9yIHRoZSAKKyAgICAgKiAgICAgICAgICAgICAgICB2YXJpYWJsZSB0b3AgaGFzIG1vcmUgdGhhbiB0d28gYnl0ZXMKKyAgICAgKiAgICAgICAgICAgIDxsaT53aGVuIHRoZSB2YXJUb3AgYXJndW1lbnQgaXMgbnVsbCBvciB6ZXJvIGluIGxlbmd0aC4KKyAgICAgKiAgICAgICAgICAgIDwvdWw+CisgICAgICogQHNlZSAjZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yI3NldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2V0VmFyaWFibGVUb3AoU3RyaW5nIHZhclRvcCkKKyAgICB7CisgICAgICAgIGlmICh2YXJUb3AgPT0gbnVsbCB8fCB2YXJUb3AubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICJWYXJpYWJsZSB0b3AgYXJndW1lbnQgc3RyaW5nIGNhbiBub3QgYmUgbnVsbCBvciB6ZXJvIGluIGxlbmd0aC4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9zcmNVdGlsSXRlcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgaW5pdFV0aWxpdHkodHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBtX3NyY1V0aWxDb2xFSXRlcl8uc2V0VGV4dCh2YXJUb3ApOworICAgICAgICBpbnQgY2UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAKKyAgICAgICAgLy8gaGVyZSB3ZSBjaGVjayBpZiB3ZSBoYXZlIGNvbnN1bWVkIGFsbCBjaGFyYWN0ZXJzIAorICAgICAgICAvLyB5b3UgY2FuIHB1dCBpbiBlaXRoZXIgb25lIGNoYXJhY3RlciBvciBhIGNvbnRyYWN0aW9uCisgICAgICAgIC8vIHlvdSBzaG91bGRuJ3QgcHV0IG1vcmUuLi4gCisgICAgICAgIGlmIChtX3NyY1V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdmFyVG9wLmxlbmd0aCgpIAorICAgICAgICAgICAgfHwgY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICJWYXJpYWJsZSB0b3AgYXJndW1lbnQgc3RyaW5nIGlzIGEgY29udHJhY3Rpb24gdGhhdCBkb2VzIG5vdCBleGlzdCAiCisgICAgICAgICAgICArICJpbiB0aGUgQ29sbGF0aW9uIG9yZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBuZXh0Q0UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAKKyAgICAgICAgaWYgKChuZXh0Q0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgCisgICAgICAgICAgICAmJiAoIWlzQ29udGludWF0aW9uKG5leHRDRSkgfHwgKG5leHRDRSAmIENFX1BSSU1BUllfTUFTS18pICE9IDApKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiVmFyaWFibGUgdG9wIGFyZ3VtZW50IHN0cmluZyBjYW4gb25seSBoYXZlIGEgc2luZ2xlIGNvbGxhdGlvbiAiCisgICAgICAgICAgICAgICAgKyAiZWxlbWVudCB0aGF0IGhhcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdHdvIFBSSU1BUlkgc3RyZW5ndGggIgorICAgICAgICAgICAgICAgICsgImJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fdmFyaWFibGVUb3BWYWx1ZV8gPSAoY2UgJiBDRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBjZSAmIENFX1BSSU1BUllfTUFTS187CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBTZXRzIHRoZSB2YXJpYWJsZSB0b3AgdG8gYSBjb2xsYXRpb24gZWxlbWVudCB2YWx1ZSBzdXBwbGllZC4KKyAgICAgKiBWYXJpYWJsZSB0b3AgaXMgc2V0IHRvIHRoZSB1cHBlciAxNiBiaXRzLiAKKyAgICAgKiBMb3dlciAxNiBiaXRzIGFyZSBpZ25vcmVkLgorICAgICAqIEBwYXJhbSB2YXJUb3AgQ29sbGF0aW9uIGVsZW1lbnQgdmFsdWUsIGFzIHJldHVybmVkIGJ5IHNldFZhcmlhYmxlVG9wIG9yIAorICAgICAqICAgICAgICAgICAgICAgZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlICNnZXRWYXJpYWJsZVRvcAorICAgICAqIEBzZWUgI3NldFZhcmlhYmxlVG9wKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRWYXJpYWJsZVRvcChpbnQgdmFyVG9wKQorICAgIHsKKyAgICAgICAgbV92YXJpYWJsZVRvcFZhbHVlXyA9ICh2YXJUb3AgJiBDRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV2hlbiBudW1lcmljIGNvbGxhdGlvbiBpcyB0dXJuZWQgb24sIHRoaXMgQ29sbGF0b3IgZ2VuZXJhdGVzIGEgY29sbGF0aW9uIAorICAgICAqIGtleSBmb3IgdGhlIG51bWVyaWMgdmFsdWUgb2Ygc3Vic3RyaW5ncyBvZiBkaWdpdHMuIFRoaXMgaXMgYSB3YXkgdG8gZ2V0IAorICAgICAqICcxMDAnIHRvIHNvcnQgQUZURVIgJzInCisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSB0byB0dXJuIG51bWVyaWMgY29sbGF0aW9uIG9uIGFuZCBmYWxzZSB0byB0dXJuIGl0IG9mZgorICAgICAqIEBzZWUgI2dldE51bWVyaWNDb2xsYXRpb24KKyAgICAgKiBAc2VlICNzZXROdW1lcmljQ29sbGF0aW9uRGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE51bWVyaWNDb2xsYXRpb24oYm9vbGVhbiBmbGFnKQorICAgIHsKKyAgICAgICAgLy8gc29ydCBzdWJzdHJpbmdzIG9mIGRpZ2l0cyBhcyBudW1iZXJzCisgICAgICAgIG1faXNOdW1lcmljQ29sbGF0aW9uXyA9IGZsYWc7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29sbGF0aW9uIHJ1bGVzIGZvciB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEVxdWl2YWxlbnQgdG8gU3RyaW5nIGdldFJ1bGVzKFJ1bGVPcHRpb24uRlVMTF9SVUxFUykuCisgICAgICogQHJldHVybiByZXR1cm5zIHRoZSBjb2xsYXRpb24gcnVsZXMKKyAgICAgKiBAc2VlICNnZXRSdWxlcyhib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UnVsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcnVsZXNfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGN1cnJlbnQgcnVsZXMuIFRoZSBhcmd1bWVudCBkZWZpbmVzIHdoZXRoZXIgZnVsbCBydWxlcyAKKyAgICAgKiAoVUNBICsgdGFpbG9yZWQpIHJ1bGVzIGFyZSByZXR1cm5lZCBvciBqdXN0IHRoZSB0YWlsb3JpbmcuIAorICAgICAqIEBwYXJhbSBmdWxscnVsZXMgdHJ1ZSBpZiB0aGUgcnVsZXMgdGhhdCBkZWZpbmVzIHRoZSBmdWxsIHNldCBvZiAKKyAgICAgKiAgICAgICAgY29sbGF0aW9uIG9yZGVyIGlzIHJlcXVpcmVkLCBvdGhlcndpc2UgZmFsc2UgZm9yIHJldHVybmluZyBvbmx5IAorICAgICAqICAgICAgICB0aGUgdGFpbG9yZWQgcnVsZXMKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHJ1bGVzIHRoYXQgZGVmaW5lcyB0aGlzIENvbGxhdG9yLgorICAgICAqIEBzZWUgI2dldFJ1bGVzKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJ1bGVzKGJvb2xlYW4gZnVsbHJ1bGVzKQorICAgIHsKKyAgICAgICAgaWYgKCFmdWxscnVsZXMpIHsKKyAgICAgICAgICAgIHJldHVybiBtX3J1bGVzXzsKKyAgICAgICAgfQorICAgICAgICAvLyB0YWtlIHRoZSBVQ0EgcnVsZXMgYW5kIGFwcGVuZCByZWFsIHJ1bGVzIGF0IHRoZSBlbmQgCisgICAgICAgIHJldHVybiBVQ0FfLm1fcnVsZXNfLmNvbmNhdChtX3J1bGVzXyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFuIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNoYXJhY3RlcnMgYW5kIHNlcXVlbmNlcworICAgICAqIHRhaWxvcmVkIGluIHRoaXMgY29sbGF0b3IuCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBVbmljb2RlU2V0IG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUKKyAgICAgKiAgICAgICAgIGNvZGUgcG9pbnRzIGFuZCBzZXF1ZW5jZXMgdGhhdCBtYXkgc29ydCBkaWZmZXJlbnRseSB0aGFuCisgICAgICogICAgICAgICBpbiB0aGUgVUNBLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbgorICAgICAqICAgICAgICAgICAgaW52YWxpZCBzeW50YXguIElPRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0VGFpbG9yZWRTZXQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlciBzcmMgPSBuZXcgQ29sbGF0aW9uUnVsZVBhcnNlcihnZXRSdWxlcygpKTsKKyAgICAgICAgICAgcmV0dXJuIHNyYy5nZXRUYWlsb3JlZFNldCgpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJBIHRhaWxvcmluZyBydWxlIHNob3VsZCBub3QgIiArCisgICAgICAgICAgICAgICAgImhhdmUgZXJyb3JzLiBTb21ldGhpbmcgaXMgcXVpdGUgd3JvbmchIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGNsYXNzIGNvbnRDb250ZXh0IHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbDsKKyAgICAgICAgVW5pY29kZVNldCBjb250cmFjdGlvbnM7CisgICAgICAgIFVuaWNvZGVTZXQgZXhwYW5zaW9uczsKKyAgICAgICAgVW5pY29kZVNldCByZW1vdmVkQ29udHJhY3Rpb25zOworICAgICAgICBib29sZWFuIGFkZFByZWZpeGVzOyAgICAgICAKKyAgICAgICAgY29udENvbnRleHQoUnVsZUJhc2VkQ29sbGF0b3IgY29sbCwgVW5pY29kZVNldCBjb250cmFjdGlvbnMsIFVuaWNvZGVTZXQgZXhwYW5zaW9ucywgCisgICAgICAgICAgICAgICAgVW5pY29kZVNldCByZW1vdmVkQ29udHJhY3Rpb25zLCBib29sZWFuIGFkZFByZWZpeGVzKSB7CisgICAgICAgICAgICB0aGlzLmNvbGwgPSBjb2xsOworICAgICAgICAgICAgdGhpcy5jb250cmFjdGlvbnMgPSBjb250cmFjdGlvbnM7CisgICAgICAgICAgICB0aGlzLmV4cGFuc2lvbnMgPSBleHBhbnNpb25zOworICAgICAgICAgICAgdGhpcy5yZW1vdmVkQ29udHJhY3Rpb25zID0gcmVtb3ZlZENvbnRyYWN0aW9uczsKKyAgICAgICAgICAgIHRoaXMuYWRkUHJlZml4ZXMgPSBhZGRQcmVmaXhlczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQKKyAgICBhZGRTcGVjaWFsKGNvbnRDb250ZXh0IGMsIFN0cmluZ0J1ZmZlciBidWZmZXIsIGludCBDRSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgb2Zmc2V0ID0gKENFICYgMHhGRkZGRkYpIC0gYy5jb2xsLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgICBpbnQgbmV3Q0UgPSBjLmNvbGwubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAvLyB3ZSBtaWdodCBoYXZlIGEgY29udHJhY3Rpb24gdGhhdCBlbmRzIGZyb20gcHJldmlvdXMgbGV2ZWwKKyAgICAgICAgaWYobmV3Q0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgIGlmKGlzU3BlY2lhbChDRSkgJiYgZ2V0VGFnKENFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXyAKKyAgICAgICAgICAgICAgICAgICAgJiYgaXNTcGVjaWFsKG5ld0NFKSAmJiBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9TUEVDX1BST0NfVEFHXyAKKyAgICAgICAgICAgICAgICAgICAgJiYgYy5hZGRQcmVmaXhlcykgeworICAgICAgICAgICAgICAgIGFkZFNwZWNpYWwoYywgYnVmZmVyLCBuZXdDRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihidWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgaWYoYy5jb250cmFjdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBjLmNvbnRyYWN0aW9ucy5hZGQoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjLmV4cGFuc2lvbnMgIT0gbnVsbCAmJiBpc1NwZWNpYWwoQ0UpICYmIGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0VYUEFOU0lPTl9UQUdfKSB7CisgICAgICAgICAgICAgICAgICAgIGMuZXhwYW5zaW9ucy5hZGQoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIG9mZnNldCsrOworICAgICAgICAvLyBjaGVjayB3aGV0aGVyIHdlJ3JlIGRvaW5nIGNvbnRyYWN0aW9uIG9yIHByZWZpeAorICAgICAgICBpZihnZXRUYWcoQ0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9TUEVDX1BST0NfVEFHXyAmJiBjLmFkZFByZWZpeGVzKSB7CisgICAgICAgICAgICB3aGlsZShjLmNvbGwubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGIuZGVsZXRlKDAsIGIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGIuYXBwZW5kKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgbmV3Q0UgPSBjLmNvbGwubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgICAgIGIuaW5zZXJ0KDAsIGMuY29sbC5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0pOworICAgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbChuZXdDRSkgJiYgKGdldFRhZyhuZXdDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18gfHwgZ2V0VGFnKG5ld0NFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfU1BFQ19QUk9DX1RBR18pKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFNwZWNpYWwoYywgYiwgbmV3Q0UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGMuY29udHJhY3Rpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMuY29udHJhY3Rpb25zLmFkZChiLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKGMuZXhwYW5zaW9ucyAhPSBudWxsICYmIGlzU3BlY2lhbChuZXdDRSkgJiYgZ2V0VGFnKG5ld0NFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMuZXhwYW5zaW9ucy5hZGQoYi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmKGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18pIHsKKyAgICAgICAgICAgIHdoaWxlKGMuY29sbC5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0gIT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgYi5kZWxldGUoMCwgYi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgYi5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBuZXdDRSA9IGMuY29sbC5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYi5hcHBlbmQoYy5jb2xsLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKG5ld0NFKSAmJiAoZ2V0VGFnKG5ld0NFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXyB8fCBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9TUEVDX1BST0NfVEFHXykpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkU3BlY2lhbChjLCBiLCBuZXdDRSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoYy5jb250cmFjdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYy5jb250cmFjdGlvbnMuYWRkKGIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYoYy5leHBhbnNpb25zICE9IG51bGwgJiYgaXNTcGVjaWFsKG5ld0NFKSAmJiBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9FWFBBTlNJT05fVEFHXykgeworICAgICAgICAgICAgICAgICAgICAgICAgYy5leHBhbnNpb25zLmFkZChiLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9mZnNldCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUKKyAgICB2b2lkIHByb2Nlc3NTcGVjaWFscyhjb250Q29udGV4dCBjKSAKKyAgICB7CisgICAgICAgIGludCBpbnRlcm5hbEJ1ZmZlclNpemUgPSA1MTI7CisgICAgICAgIFRyaWVJdGVyYXRvciB0cmllaXRlcmF0b3IgCisgICAgICAgID0gbmV3IFRyaWVJdGVyYXRvcihjLmNvbGwubV90cmllXyk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKHRyaWVpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBlbGVtZW50LnN0YXJ0OworICAgICAgICAgICAgaW50IGxpbWl0ID0gZWxlbWVudC5saW1pdDsKKyAgICAgICAgICAgIGludCBDRSA9IGVsZW1lbnQudmFsdWU7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgY29udHJhY3Rpb24gPSBuZXcgU3RyaW5nQnVmZmVyKGludGVybmFsQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGlzU3BlY2lhbChDRSkpIHsKKyAgICAgICAgICAgICAgICBpZigoKGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX1NQRUNfUFJPQ19UQUdfICYmIGMuYWRkUHJlZml4ZXMpIHx8IGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18pKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBzdXBwcmVzc2VkIGNvbnRyYWN0aW9ucywgd2UgZG9uJ3QgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YW50IHRvIGFkZCB0aGVtLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYoYy5yZW1vdmVkQ29udHJhY3Rpb25zICE9IG51bGwgJiYgYy5yZW1vdmVkQ29udHJhY3Rpb25zLmNvbnRhaW5zKHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBzdGFydCBvdXIgY29udHJhY3Rpb24gZnJvbSBtaWRkbGUsIHNpbmNlIHdlIGRvbid0IGtub3cgaWYgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgZ3JvdyB0b3dhcmQgcmlnaHQgb3IgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb24uYXBwZW5kKChjaGFyKSBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTcGVjaWFsKGMsIGNvbnRyYWN0aW9uLCBDRSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGMuZXhwYW5zaW9ucyAhPSBudWxsICYmIGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0VYUEFOU0lPTl9UQUdfKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMuZXhwYW5zaW9ucy5hZGQoc3RhcnQrKyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB1bmljb2RlIHNldHMgY29udGFpbmluZyBjb250cmFjdGlvbnMgYW5kL29yIGV4cGFuc2lvbnMgb2YgYSBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjb250cmFjdGlvbnMgaWYgbm90IG51bGwsIHNldCB0byBjb250YWluIGNvbnRyYWN0aW9ucworICAgICAqIEBwYXJhbSBleHBhbnNpb25zIGlmIG5vdCBudWxsLCBzZXQgdG8gY29udGFpbiBleHBhbnNpb25zCisgICAgICogQHBhcmFtIGFkZFByZWZpeGVzIGFkZCB0aGUgcHJlZml4IGNvbnRleHR1YWwgZWxlbWVudHMgdG8gY29udHJhY3Rpb25zCisgICAgICogQHRocm93cyBFeGNlcHRpb24gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZAorICAgIGdldENvbnRyYWN0aW9uc0FuZEV4cGFuc2lvbnMoVW5pY29kZVNldCBjb250cmFjdGlvbnMsIFVuaWNvZGVTZXQgZXhwYW5zaW9ucywKKyAgICAgICAgICAgIGJvb2xlYW4gYWRkUHJlZml4ZXMpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBpZihjb250cmFjdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgY29udHJhY3Rpb25zLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoZXhwYW5zaW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBhbnNpb25zLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJ1bGVzTGVuID0gMDsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gZ2V0UnVsZXMoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIgc3JjID0gbmV3IENvbGxhdGlvblJ1bGVQYXJzZXIocnVsZXMpOworICAgICAgICAgICAgY29udENvbnRleHQgYyA9IG5ldyBjb250Q29udGV4dChSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLCAKKyAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb25zLCBleHBhbnNpb25zLCBzcmMubV9yZW1vdmVTZXRfLCBhZGRQcmVmaXhlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEFkZCB0aGUgVUNBIGNvbnRyYWN0aW9ucworICAgICAgICAgICAgcHJvY2Vzc1NwZWNpYWxzKGMpOworICAgICAgICAgICAgLy8gVGhpcyBpcyBjb2xsYXRvciBzcGVjaWZpYy4gQWRkIGNvbnRyYWN0aW9ucyBmcm9tIGEgY29sbGF0b3IKKyAgICAgICAgICAgIGMuY29sbCA9IHRoaXM7CisgICAgICAgICAgICBjLnJlbW92ZWRDb250cmFjdGlvbnMgPSAgbnVsbDsKKyAgICAgICAgICAgIHByb2Nlc3NTcGVjaWFscyhjKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogR2V0IGEgQ29sbGF0aW9uIGtleSBmb3IgdGhlIGFyZ3VtZW50IFN0cmluZyBzb3VyY2UgZnJvbSB0aGlzCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEdlbmVyYWwgcmVjb21tZW5kYXRpb246IDxicj4KKyAgICAgKiBJZiBjb21wYXJpc29uIGFyZSB0byBiZSBkb25lIHRvIHRoZSBzYW1lIFN0cmluZyBtdWx0aXBsZSB0aW1lcywgaXQgd291bGQKKyAgICAgKiBiZSBtb3JlIGVmZmljaWVudCB0byBnZW5lcmF0ZSBDb2xsYXRpb25LZXlzIGZvciB0aGUgU3RyaW5ncyBhbmQgdXNlCisgICAgICogQ29sbGF0aW9uS2V5LmNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB0aGUgY29tcGFyaXNvbnMuCisgICAgICogSWYgdGhlIGVhY2ggU3RyaW5ncyBhcmUgY29tcGFyZWQgdG8gb25seSBvbmNlLCB1c2luZyB0aGUgbWV0aG9kCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZykgd2lsbCBoYXZlIGEgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGFuIGV4cGxhbmF0aW9uIGFib3V0IENvbGxhdGlvbktleXMuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgU3RyaW5nIHRvIGJlIHRyYW5zZm9ybWVkIGludG8gYSBjb2xsYXRpb24ga2V5LgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdGlvbktleSBmb3IgdGhlIGdpdmVuIFN0cmluZyBiYXNlZCBvbiB0aGlzCisgICAgICogICAgICAgICBSdWxlQmFzZWRDb2xsYXRvcidzIGNvbGxhdGlvbiBydWxlcy4gSWYgdGhlIHNvdXJjZSBTdHJpbmcgaXMKKyAgICAgKiAgICAgICAgIG51bGwsIGEgbnVsbCBDb2xsYXRpb25LZXkgaXMgcmV0dXJuZWQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzZWUgI2dldFJhd0NvbGxhdGlvbktleQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkgZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBtX3V0aWxSYXdDb2xsYXRpb25LZXlfID0gZ2V0UmF3Q29sbGF0aW9uS2V5KHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsUmF3Q29sbGF0aW9uS2V5Xyk7CisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0aW9uS2V5KHNvdXJjZSwgbV91dGlsUmF3Q29sbGF0aW9uS2V5Xyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNpbXBsZXIgZm9ybSBvZiBhIENvbGxhdGlvbktleSBmb3IgdGhlIFN0cmluZyBzb3VyY2UgZm9sbG93aW5nCisgICAgICogdGhlIHJ1bGVzIG9mIHRoaXMgQ29sbGF0b3IgYW5kIHN0b3JlcyB0aGUgcmVzdWx0IGludG8gdGhlIHVzZXIgcHJvdmlkZWQgCisgICAgICogYXJndW1lbnQga2V5LiAKKyAgICAgKiBJZiBrZXkgaGFzIGEgaW50ZXJuYWwgYnl0ZSBhcnJheSBvZiBsZW5ndGggdGhhdCdzIHRvbyBzbWFsbCBmb3IgdGhlIAorICAgICAqIHJlc3VsdCwgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgd2lsbCBiZSBncm93biB0byB0aGUgZXhhY3QgcmVxdWlyZWQgCisgICAgICogc2l6ZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IFN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgUmF3Q29sbGF0aW9uS2V5ICAKKyAgICAgKiBAcGFyYW0ga2V5IG91dHB1dCBSYXdDb2xsYXRpb25LZXkgdG8gc3RvcmUgcmVzdWx0cworICAgICAqIEByZXR1cm4gSWYga2V5IGlzIG51bGwsIGEgbmV3IGluc3RhbmNlIG9mIFJhd0NvbGxhdGlvbktleSB3aWxsIGJlIAorICAgICAqICAgICAgICAgY3JlYXRlZCBhbmQgcmV0dXJuZWQsIG90aGVyd2lzZSB0aGUgdXNlciBwcm92aWRlZCBrZXkgd2lsbCBiZSAKKyAgICAgKiAgICAgICAgIHJldHVybmVkLgorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleSAKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzZWUgUmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFJhd0NvbGxhdGlvbktleSBnZXRSYXdDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaW50IHN0cmVuZ3RoID0gZ2V0U3RyZW5ndGgoKTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTBfID0gbV9pc0Nhc2VMZXZlbF87CisgICAgICAgIG1fdXRpbENvbXBhcmUxXyA9IHRydWU7CisgICAgICAgIG1fdXRpbENvbXBhcmUyXyA9IHN0cmVuZ3RoID49IFNFQ09OREFSWTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTNfID0gc3RyZW5ndGggPj0gVEVSVElBUlk7CisgICAgICAgIG1fdXRpbENvbXBhcmU0XyA9IHN0cmVuZ3RoID49IFFVQVRFUk5BUlk7CisgICAgICAgIG1fdXRpbENvbXBhcmU1XyA9IHN0cmVuZ3RoID09IElERU5USUNBTDsKKworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MF8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50NV8gPSAwOworICAgICAgICBtX3V0aWxDb3VudDBfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQxXyA9IDA7CisgICAgICAgIG1fdXRpbENvdW50Ml8gPSAwOworICAgICAgICBtX3V0aWxDb3VudDNfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQ0XyA9IDA7CisgICAgICAgIG1fdXRpbENvdW50NV8gPSAwOworICAgICAgICBib29sZWFuIGRvRnJlbmNoID0gbV9pc0ZyZW5jaENvbGxhdGlvbl8gJiYgbV91dGlsQ29tcGFyZTJfOworICAgICAgICAvLyBUT0RPOiBVQ09MX0NPTU1PTl9CT1Q0IHNob3VsZCBiZSBhIGZ1bmN0aW9uIG9mIHFTaGlmdGVkLgorICAgICAgICAvLyBJZiB3ZSBoYXZlIG5vIHFTaGlmdGVkLCB3ZSBkb24ndCBuZWVkIHRvIHNldCBVQ09MX0NPTU1PTl9CT1Q0IHNvCisgICAgICAgIC8vIGhpZ2guCisgICAgICAgIGludCBjb21tb25Cb3R0b200ID0gKChtX3ZhcmlhYmxlVG9wVmFsdWVfID4+PiA4KSArIDEpICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICBieXRlIGhpcmFnYW5hNCA9IDA7CisgICAgICAgIGlmIChtX2lzSGlyYWdhbmE0XyAmJiBtX3V0aWxDb21wYXJlNF8pIHsKKyAgICAgICAgICAgIC8vIGFsbG9jYXRlIG9uZSBtb3JlIHNwYWNlIGZvciBoaXJhZ2FuYSwgdmFsdWUgZm9yIGhpcmFnYW5hCisgICAgICAgICAgICBoaXJhZ2FuYTQgPSAoYnl0ZSljb21tb25Cb3R0b200OworICAgICAgICAgICAgY29tbW9uQm90dG9tNCArKzsKKyAgICAgICAgfQorCisgICAgICAgIGludCBib3R0b21Db3VudDQgPSAweEZGIC0gY29tbW9uQm90dG9tNDsKKyAgICAgICAgLy8gSWYgd2UgbmVlZCB0byBub3JtYWxpemUsIHdlJ2xsIGRvIGl0IGFsbCBhdCBvbmNlIGF0IHRoZSBiZWdpbm5pbmchCisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlNV8gJiYgTm9ybWFsaXplci5xdWlja0NoZWNrKHNvdXJjZSwgTm9ybWFsaXplci5ORkQsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykgeworICAgICAgICAgICAgLy8gaWYgaXQgaXMgaWRlbnRpY2FsIHN0cmVuZ3RoLCB3ZSBoYXZlIHRvIG5vcm1hbGl6ZSB0aGUgc3RyaW5nIHRvCisgICAgICAgICAgICAvLyBORkQgc28gdGhhdCBpdCB3aWxsIGJlIGFwcGVuZGVkIGNvcnJlY3RseSB0byB0aGUgZW5kIG9mIHRoZSBzb3J0CisgICAgICAgICAgICAvLyBrZXkKKyAgICAgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHNvdXJjZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGdldERlY29tcG9zaXRpb24oKSAhPSBOT19ERUNPTVBPU0lUSU9OCisgICAgICAgICAgICAmJiBOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLkZDRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICAvLyBmb3IgdGhlIHJlc3Qgb2YgdGhlIHN0cmVuZ3RoLCBpZiBkZWNvbXBvc2l0aW9uIGlzIG9uLCBGQ0QgaXMKKyAgICAgICAgICAgIC8vIGVub3VnaCBmb3IgdXMgdG8gd29yayBvbi4KKyAgICAgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSxOb3JtYWxpemVyLkZDRCk7CisgICAgICAgIH0KKyAgICAgICAgZ2V0U29ydEtleUJ5dGVzKHNvdXJjZSwgZG9GcmVuY2gsIGhpcmFnYW5hNCwgY29tbW9uQm90dG9tNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUNvdW50NCk7CisgICAgICAgIGlmIChrZXkgPT0gbnVsbCkgeworICAgICAgICAgICAga2V5ID0gbmV3IFJhd0NvbGxhdGlvbktleSgpOworICAgICAgICB9CisgICAgICAgIGdldFNvcnRLZXkoc291cmNlLCBkb0ZyZW5jaCwgY29tbW9uQm90dG9tNCwgYm90dG9tQ291bnQ0LCBrZXkpOworICAgICAgICByZXR1cm4ga2V5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGFuIHVwcGVyY2FzZSBjaGFyYWN0ZXIgaXMgc29ydGVkIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBsb3dlcmNhc2UgY2hhcmFjdGVyLgorICAgICAqIFNlZSBzZXRDYXNlRmlyc3QoYm9vbGVhbikgZm9yIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0VXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI2lzTG93ZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRDYXNlRmlyc3REZWZhdWx0CisgICAgICogQHJldHVybiB0cnVlIGlmIHVwcGVyIGNhc2VkIGNoYXJhY3RlcnMgYXJlIHNvcnRlZCBiZWZvcmUgbG93ZXIgY2FzZWQKKyAgICAgKiAgICAgICAgIGNoYXJhY3RlcnMsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgICBwdWJsaWMgYm9vbGVhbiBpc1VwcGVyQ2FzZUZpcnN0KCkKKyAgICAgeworICAgICAgICByZXR1cm4gKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF8pOworICAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGEgbG93ZXJjYXNlIGNoYXJhY3RlciBpcyBzb3J0ZWQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHVwcGVyY2FzZSBjaGFyYWN0ZXIuCisgICAgICogU2VlIHNldENhc2VGaXJzdChib29sZWFuKSBmb3IgZGV0YWlscy4KKyAgICAgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjaXNVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKyAgICAgKiBAcmV0dXJuIHRydWUgbG93ZXIgY2FzZWQgY2hhcmFjdGVycyBhcmUgc29ydGVkIGJlZm9yZSB1cHBlciBjYXNlZAorICAgICAqICAgICAgICAgY2hhcmFjdGVycywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNMb3dlckNhc2VGaXJzdCgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIGJlaGF2aW91ciBpcyB0aGUgVUNBIGRlZmluZWQgU0hJRlRFRCBvcgorICAgICAqIE5PTl9JR05PUkFCTEUuCisgICAgICogSWYgcmV0dXJuIHZhbHVlIGlzIHRydWUsIHRoZW4gdGhlIGFsdGVybmF0ZSBoYW5kbGluZyBhdHRyaWJ1dGUgZm9yIHRoZQorICAgICAqIENvbGxhdG9yIGlzIFNISUZURUQuIE90aGVyd2lzZSBpZiByZXR1cm4gdmFsdWUgaXMgZmFsc2UsIHRoZW4gdGhlCisgICAgICogYWx0ZXJuYXRlIGhhbmRsaW5nIGF0dHJpYnV0ZSBmb3IgdGhlIENvbGxhdG9yIGlzIE5PTl9JR05PUkFCTEUKKyAgICAgKiBTZWUgc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHJldHVybiB0cnVlIG9yIGZhbHNlCisgICAgICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4pCisgICAgICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdEZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBjYXNlIGxldmVsIGlzIHNldCB0byB0cnVlLgorICAgICAqIFNlZSBzZXRDYXNlTGV2ZWwoYm9vbGVhbikgZm9yIGRldGFpbHMuCisgICAgICogQHJldHVybiB0aGUgY2FzZSBsZXZlbCBtb2RlCisgICAgICogQHNlZSAjc2V0Q2FzZUxldmVsRGVmYXVsdAorICAgICAqIEBzZWUgI2lzQ2FzZUxldmVsCisgICAgICogQHNlZSAjc2V0Q2FzZUxldmVsKGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNDYXNlTGV2ZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNDYXNlTGV2ZWxfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBGcmVuY2ggQ29sbGF0aW9uIGlzIHNldCB0byB0cnVlLgorICAgICAqIFNlZSBzZXRGcmVuY2hDb2xsYXRpb24oYm9vbGVhbikgZm9yIGRldGFpbHMuCisgICAgICogQHJldHVybiB0cnVlIGlmIEZyZW5jaCBDb2xsYXRpb24gaXMgc2V0IHRvIHRydWUsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzZWUgI3NldEZyZW5jaENvbGxhdGlvbihib29sZWFuKQorICAgICAqIEBzZWUgI3NldEZyZW5jaENvbGxhdGlvbkRlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAgcHVibGljIGJvb2xlYW4gaXNGcmVuY2hDb2xsYXRpb24oKQorICAgICB7CisgICAgICAgICByZXR1cm4gbV9pc0ZyZW5jaENvbGxhdGlvbl87CisgICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIHNldCBvbi4KKyAgICAgKiBTZWUgc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHJldHVybiBmbGFnIHRydWUgaWYgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIG9uLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNzZXRIaXJhZ2FuYVF1YXRlcm5hcnlEZWZhdWx0CisgICAgICogQHNlZSAjc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNIaXJhZ2FuYVF1YXRlcm5hcnkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNIaXJhZ2FuYTRfOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBHZXRzIHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgb2YgYSBDb2xsYXRvci4gCisgICAgICogTG93ZXIgMTYgYml0cyBhcmUgdW5kZWZpbmVkIGFuZCBzaG91bGQgYmUgaWdub3JlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgb2YgYSBDb2xsYXRvci4KKyAgICAgKiBAc2VlICNzZXRWYXJpYWJsZVRvcAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VmFyaWFibGVUb3AoKQorICAgIHsKKyAgICAgICAgICByZXR1cm4gbV92YXJpYWJsZVRvcFZhbHVlXyA8PCAxNjsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIE1ldGhvZCB0byByZXRyaWV2ZSB0aGUgbnVtZXJpYyBjb2xsYXRpb24gdmFsdWUuCisgICAgICogV2hlbiBudW1lcmljIGNvbGxhdGlvbiBpcyB0dXJuZWQgb24sIHRoaXMgQ29sbGF0b3IgZ2VuZXJhdGVzIGEgY29sbGF0aW9uIAorICAgICAqIGtleSBmb3IgdGhlIG51bWVyaWMgdmFsdWUgb2Ygc3Vic3RyaW5ncyBvZiBkaWdpdHMuIFRoaXMgaXMgYSB3YXkgdG8gZ2V0IAorICAgICAqICcxMDAnIHRvIHNvcnQgQUZURVIgJzInCisgICAgICogQHNlZSAjc2V0TnVtZXJpY0NvbGxhdGlvbgorICAgICAqIEBzZWUgI3NldE51bWVyaWNDb2xsYXRpb25EZWZhdWx0CisgICAgICogQHJldHVybiB0cnVlIGlmIG51bWVyaWMgY29sbGF0aW9uIGlzIHR1cm5lZCBvbiwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0TnVtZXJpY0NvbGxhdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc051bWVyaWNDb2xsYXRpb25fOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdHdvIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdHMuCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3Igb2JqZWN0cyBhcmUgZXF1YWwgaWYgdGhleSBoYXZlIHRoZSBzYW1lIGNvbGxhdGlvbgorICAgICAqIHJ1bGVzIGFuZCB0aGUgc2FtZSBhdHRyaWJ1dGVzLgorICAgICAqIEBwYXJhbSBvYmogdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHRvIGJlIGNvbXBhcmVkIHRvLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yIGhhcyBleGFjdGx5IHRoZSBzYW1lCisgICAgICogICAgICAgICBjb2xsYXRpb24gYmVoYXZpb3VyIGFzIG9iaiwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBzdXBlciBkb2VzIGNsYXNzIGNoZWNrCisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG90aGVyID0gKFJ1bGVCYXNlZENvbGxhdG9yKW9iajsKKyAgICAgICAgLy8gYWxsIG90aGVyIG5vbi10cmFuc2llbnQgaW5mb3JtYXRpb24gaXMgYWxzbyBjb250YWluZWQgaW4gcnVsZXMuCisgICAgICAgIGlmIChnZXRTdHJlbmd0aCgpICE9IG90aGVyLmdldFN0cmVuZ3RoKCkKKyAgICAgICAgICAgICAgIHx8IGdldERlY29tcG9zaXRpb24oKSAhPSBvdGhlci5nZXREZWNvbXBvc2l0aW9uKCkKKyAgICAgICAgICAgICAgIHx8IG90aGVyLm1fY2FzZUZpcnN0XyAhPSBtX2Nhc2VGaXJzdF8KKyAgICAgICAgICAgICAgIHx8IG90aGVyLm1fY2FzZVN3aXRjaF8gIT0gbV9jYXNlU3dpdGNoXworICAgICAgICAgICAgICAgfHwgb3RoZXIubV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICB8fCBvdGhlci5tX2lzQ2FzZUxldmVsXyAhPSBtX2lzQ2FzZUxldmVsXworICAgICAgICAgICAgICAgfHwgb3RoZXIubV9pc0ZyZW5jaENvbGxhdGlvbl8gIT0gbV9pc0ZyZW5jaENvbGxhdGlvbl8KKyAgICAgICAgICAgICAgIHx8IG90aGVyLm1faXNIaXJhZ2FuYTRfICE9IG1faXNIaXJhZ2FuYTRfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBydWxlcyA9IG1fcnVsZXNfID09IG90aGVyLm1fcnVsZXNfOworICAgICAgICBpZiAoIXJ1bGVzICYmIChtX3J1bGVzXyAhPSBudWxsICYmIG90aGVyLm1fcnVsZXNfICE9IG51bGwpKSB7CisgICAgICAgICAgICBydWxlcyA9IG1fcnVsZXNfLmVxdWFscyhvdGhlci5tX3J1bGVzXyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFydWxlcyB8fCAhSUNVRGVidWcuZW5hYmxlZCgiY29sbGF0aW9uIikpIHsKKyAgICAgICAgICAgIHJldHVybiBydWxlczsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9hZGRpdGlvbjNfICE9IG90aGVyLm1fYWRkaXRpb24zXworICAgICAgICAgICAgICAgICAgfHwgbV9ib3R0b20zXyAhPSBvdGhlci5tX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICB8fCBtX2JvdHRvbUNvdW50M18gIT0gb3RoZXIubV9ib3R0b21Db3VudDNfCisgICAgICAgICAgICAgICAgICB8fCBtX2NvbW1vbjNfICE9IG90aGVyLm1fY29tbW9uM18KKyAgICAgICAgICAgICAgICAgIHx8IG1faXNTaW1wbGUzXyAhPSBvdGhlci5tX2lzU2ltcGxlM18KKyAgICAgICAgICAgICAgICAgIHx8IG1fbWFzazNfICE9IG90aGVyLm1fbWFzazNfCisgICAgICAgICAgICAgICAgICB8fCBtX21pbkNvbnRyYWN0aW9uRW5kXyAhPSBvdGhlci5tX21pbkNvbnRyYWN0aW9uRW5kXworICAgICAgICAgICAgICAgICAgfHwgbV9taW5VbnNhZmVfICE9IG90aGVyLm1fbWluVW5zYWZlXworICAgICAgICAgICAgICAgICAgfHwgbV90b3AzXyAhPSBvdGhlci5tX3RvcDNfCisgICAgICAgICAgICAgICAgICB8fCBtX3RvcENvdW50M18gIT0gb3RoZXIubV90b3BDb3VudDNfCisgICAgICAgICAgICAgICAgICB8fCAhQXJyYXlzLmVxdWFscyhtX3Vuc2FmZV8sIG90aGVyLm1fdW5zYWZlXykpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1fdHJpZV8uZXF1YWxzKG90aGVyLm1fdHJpZV8pKSB7CisgICAgICAgICAgICAvLyB3ZSBzaG91bGQgdXNlIHRoZSB0cmllIGl0ZXJhdG9yIGhlcmUsIGJ1dCB0aGVuIHRoaXMgcGFydCBpcworICAgICAgICAgICAgLy8gb25seSB1c2VkIGluIHRoZSB0ZXN0LgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFOyBpID49IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOyBpIC0tKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCB2ID0gbV90cmllXy5nZXRDb2RlUG9pbnRWYWx1ZShpKTsKKyAgICAgICAgICAgICAgICBpbnQgb3RoZXJ2ID0gb3RoZXIubV90cmllXy5nZXRDb2RlUG9pbnRWYWx1ZShpKTsKKyAgICAgICAgICAgICAgICBpZiAodiAhPSBvdGhlcnYpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG1hc2sgPSB2ICYgKENFX1RBR19NQVNLXyB8IENFX1NQRUNJQUxfRkxBR18pOworICAgICAgICAgICAgICAgICAgICBpZiAobWFzayA9PSAob3RoZXJ2ICYgMHhmZjAwMDAwMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYgJj0gMHhmZmZmZmY7CisgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnYgJj0gMHhmZmZmZmY7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFzayA9PSAweGYxMDAwMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtPSAobV9leHBhbnNpb25PZmZzZXRfIDw8IDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVydiAtPSAob3RoZXIubV9leHBhbnNpb25PZmZzZXRfIDw8IDQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobWFzayA9PSAweGYyMDAwMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtPSBtX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnYgLT0gb3RoZXIubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBvdGhlcnYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChBcnJheXMuZXF1YWxzKG1fY29udHJhY3Rpb25DRV8sIG90aGVyLm1fY29udHJhY3Rpb25DRV8pCisgICAgICAgICAgICAmJiBBcnJheXMuZXF1YWxzKG1fY29udHJhY3Rpb25FbmRfLCBvdGhlci5tX2NvbnRyYWN0aW9uRW5kXykKKyAgICAgICAgICAgICYmIEFycmF5cy5lcXVhbHMobV9jb250cmFjdGlvbkluZGV4Xywgb3RoZXIubV9jb250cmFjdGlvbkluZGV4XykKKyAgICAgICAgICAgICYmIEFycmF5cy5lcXVhbHMobV9leHBhbnNpb25fLCBvdGhlci5tX2V4cGFuc2lvbl8pCisgICAgICAgICAgICAmJiBBcnJheXMuZXF1YWxzKG1fZXhwYW5zaW9uRW5kQ0VfLCBvdGhlci5tX2V4cGFuc2lvbkVuZENFXykpIHsKKyAgICAgICAgICAgIC8vIG5vdCBjb21wYXJpbmcgcGFkZGluZ3MKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgIGlmIChtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9baV0KKyAgICAgICAgICAgICAgICAgICAgICE9IG90aGVyLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpXSkgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgaGFzaCBjb2RlIGZvciB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEByZXR1cm4gdGhlIHVuaXF1ZSBoYXNoIGNvZGUgZm9yIHRoaXMgQ29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IGdldFJ1bGVzKCk7CisgICAgICAgIGlmIChydWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICBydWxlcyA9ICIiOworICAgICAgICB9CisgICAgICAgIHJldHVybiBydWxlcy5oYXNoQ29kZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcgdG8gdGhlIHRhcmdldCB0ZXh0IFN0cmluZyBhY2NvcmRpbmcgdG8KKyAgICAgKiB0aGUgY29sbGF0aW9uIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlIGZvciB0aGlzCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwKKyAgICAgKiBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gemVybyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc291cmNlIFN0cmluZyBpcworICAgICAqIGxlc3MgdGhhbiwgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB0YXJnZXQgU3RyaW5nLiBTZWUgdGhlIENvbGxhdG9yCisgICAgICogY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBHZW5lcmFsIHJlY29tbWVuZGF0aW9uOiA8YnI+CisgICAgICogSWYgY29tcGFyaXNvbiBhcmUgdG8gYmUgZG9uZSB0byB0aGUgc2FtZSBTdHJpbmcgbXVsdGlwbGUgdGltZXMsIGl0IHdvdWxkCisgICAgICogYmUgbW9yZSBlZmZpY2llbnQgdG8gZ2VuZXJhdGUgQ29sbGF0aW9uS2V5cyBmb3IgdGhlIFN0cmluZ3MgYW5kIHVzZQorICAgICAqIENvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3IgdGhlIGNvbXBhcmlzb25zLgorICAgICAqIElmIHNwZWVkIHBlcmZvcm1hbmNlIGlzIGNyaXRpY2FsIGFuZCBvYmplY3QgaW5zdGFudGlhdGlvbiBpcyB0byBiZSAKKyAgICAgKiByZWR1Y2VkLCBmdXJ0aGVyIG9wdGltaXphdGlvbiBtYXkgYmUgYWNoaWV2ZWQgYnkgZ2VuZXJhdGluZyBhIHNpbXBsZXIgCisgICAgICoga2V5IG9mIHRoZSBmb3JtIFJhd0NvbGxhdGlvbktleSBhbmQgcmV1c2luZyB0aGlzIFJhd0NvbGxhdGlvbktleSAKKyAgICAgKiBvYmplY3Qgd2l0aCB0aGUgbWV0aG9kIFJ1bGVCYXNlZENvbGxhdG9yLmdldFJhd0NvbGxhdGlvbktleS4gSW50ZXJuYWwgCisgICAgICogYnl0ZSByZXByZXNlbnRhdGlvbiBjYW4gYmUgZGlyZWN0bHkgYWNjZXNzZWQgdmlhIFJhd0NvbGxhdGlvbktleSBhbmQKKyAgICAgKiBzdG9yZWQgZm9yIGZ1dHVyZSB1c2UuIExpa2UgQ29sbGF0aW9uS2V5LCBSYXdDb2xsYXRpb25LZXkgcHJvdmlkZXMgYQorICAgICAqIG1ldGhvZCBSYXdDb2xsYXRpb25LZXkuY29tcGFyZVRvIGZvciBrZXkgY29tcGFyaXNvbnMuCisgICAgICogSWYgdGhlIGVhY2ggU3RyaW5ncyBhcmUgY29tcGFyZWQgdG8gb25seSBvbmNlLCB1c2luZyB0aGUgbWV0aG9kCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZykgd2lsbCBoYXZlIGEgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIGxlbmd0aCBvZiBhbnkgbGVhZGluZyBwb3J0aW9uIHRoYXQgaXMgZXF1YWwKKyAgICAgICAgaW50IG9mZnNldCA9IGdldEZpcnN0VW5tYXRjaGVkT2Zmc2V0KHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgLy9yZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgIGlmKGxhdGluT25lVXNlXykgeworICAgICAgICAgIGlmICgob2Zmc2V0IDwgc291cmNlLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgJiYgc291cmNlLmNoYXJBdChvZmZzZXQpID4gRU5ET0ZMQVRJTk9ORVJBTkdFXykgCisgICAgICAgICAgICAgIHx8IChvZmZzZXQgPCB0YXJnZXQubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgICAmJiB0YXJnZXQuY2hhckF0KG9mZnNldCkgPiBFTkRPRkxBVElOT05FUkFOR0VfKSkgeyAKKyAgICAgICAgICAgICAgLy8gc291cmNlIG9yIHRhcmdldCBzdGFydCB3aXRoIG5vbi1sYXRpbi0xCisgICAgICAgICAgICByZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlVXNlTGF0aW4xKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXQpOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGlubmVyIGludGVyZmFjZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSB2YWx1ZXMgdG8gYmUgdXNlZCB3aGVuIHNldHRpbmcgdGhlIENvbGxhdG9yIG9wdGlvbnMKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50ZXJmYWNlIEF0dHJpYnV0ZVZhbHVlCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgICogU2VlIGluZGl2aWR1YWwgYXR0cmlidXRlIGZvciBkZXRhaWxzIG9uIGl0cyBkZWZhdWx0IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBERUZBVUxUXyA9IC0xOworICAgICAgICAvKioKKyAgICAgICAgICogUHJpbWFyeSBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgUFJJTUFSWV8gPSBDb2xsYXRvci5QUklNQVJZOworICAgICAgICAvKioKKyAgICAgICAgICogU2Vjb25kYXJ5IGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBTRUNPTkRBUllfID0gQ29sbGF0b3IuU0VDT05EQVJZOworICAgICAgICAvKioKKyAgICAgICAgICogVGVydGlhcnkgY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFRFUlRJQVJZXyA9IENvbGxhdG9yLlRFUlRJQVJZOworICAgICAgICAvKioKKyAgICAgICAgICogRGVmYXVsdCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9TVFJFTkdUSF8gPSBDb2xsYXRvci5URVJUSUFSWTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIHVzZSBmb3Igc3RyZW5ndGggY2hlY2tzIGluIENvbGxhdGlvbiBlbGVtZW50cworICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBDRV9TVFJFTkdUSF9MSU1JVF8gPSBDb2xsYXRvci5URVJUSUFSWSArIDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBRdWF0ZXJuYXJ5IGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBRVUFURVJOQVJZXyA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBJZGVudGljYWwgY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IElERU5USUNBTF8gPSBDb2xsYXRvci5JREVOVElDQUw7CisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnRlcm5hbCB1c2UgZm9yIHN0cmVuZ3RoIGNoZWNrcworICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBTVFJFTkdUSF9MSU1JVF8gPSBDb2xsYXRvci5JREVOVElDQUwgKyAxOworICAgICAgICAvKioKKyAgICAgICAgICogVHVybiB0aGUgZmVhdHVyZSBvZmYgLSB3b3JrcyBmb3IgRlJFTkNIX0NPTExBVElPTiwgQ0FTRV9MRVZFTCwKKyAgICAgICAgICogSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFIGFuZCBERUNPTVBPU0lUSU9OX01PREUKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgT0ZGXyA9IDE2OworICAgICAgICAvKioKKyAgICAgICAgICogVHVybiB0aGUgZmVhdHVyZSBvbiAtIHdvcmtzIGZvciBGUkVOQ0hfQ09MTEFUSU9OLCBDQVNFX0xFVkVMLAorICAgICAgICAgKiBISVJBR0FOQV9RVUFURVJOQVJZX01PREUgYW5kIERFQ09NUE9TSVRJT05fTU9ERQorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBPTl8gPSAxNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkIGZvciBBTFRFUk5BVEVfSEFORExJTkcuIEFsdGVybmF0ZSBoYW5kbGluZyB3aWxsIGJlIHNoaWZ0ZWQKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlRFRF8gPSAyMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkIGZvciBBTFRFUk5BVEVfSEFORExJTkcuIEFsdGVybmF0ZSBoYW5kbGluZyB3aWxsIGJlIG5vbgorICAgICAgICAgKiBpZ25vcmFibGUKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0lHTk9SQUJMRV8gPSAyMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkIGZvciBDQVNFX0ZJUlNUIC0gbG93ZXIgY2FzZSBzb3J0cyBiZWZvcmUgdXBwZXIgY2FzZQorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBMT1dFUl9GSVJTVF8gPSAyNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVwcGVyIGNhc2Ugc29ydHMgYmVmb3JlIGxvd2VyIGNhc2UKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJfRklSU1RfID0gMjU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgYXR0cmlidXRlIHZhbHVlcworICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBMSU1JVF8gPSAyOTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGVzIHRoYXQgY29sbGF0aW9uIHNlcnZpY2UgdW5kZXJzdGFuZHMuIEFsbCB0aGUgYXR0cmlidXRlcyBjYW4KKyAgICAgKiB0YWtlIERFRkFVTFQgdmFsdWUsIGFzIHdlbGwgYXMgdGhlIHZhbHVlcyBzcGVjaWZpYyB0byBlYWNoIG9uZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50ZXJmYWNlIEF0dHJpYnV0ZQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF0dHJpYnV0ZSBmb3IgZGlyZWN0aW9uIG9mIHNlY29uZGFyeSB3ZWlnaHRzIC0gdXNlZCBpbiBGcmVuY2guCisgICAgICAgICAqIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBPTiwgd2hpY2ggcmVzdWx0cyBpbiBzZWNvbmRhcnkgd2VpZ2h0cyBiZWluZworICAgICAgICAgKiBjb25zaWRlcmVkIGJhY2t3YXJkcyBhbmQgT0ZGIHdoaWNoIHRyZWF0cyBzZWNvbmRhcnkgd2VpZ2h0cyBpbiB0aGUKKyAgICAgICAgICogb3JkZXIgdGhleSBhcHBlYXIuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IEZSRU5DSF9DT0xMQVRJT05fID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF0dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFyaWFibGUgZWxlbWVudHMuIEFjY2VwdGFibGUgdmFsdWVzIGFyZQorICAgICAgICAgKiBOT05fSUdOT1JBQkxFIChkZWZhdWx0KSB3aGljaCB0cmVhdHMgYWxsIHRoZSBjb2RlcG9pbnRzIHdpdGgKKyAgICAgICAgICogbm9uLWlnbm9yYWJsZSBwcmltYXJ5IHdlaWdodHMgaW4gdGhlIHNhbWUgd2F5LCBhbmQgU0hJRlRFRCB3aGljaAorICAgICAgICAgKiBjYXVzZXMgY29kZXBvaW50cyB3aXRoIHByaW1hcnkgd2VpZ2h0cyB0aGF0IGFyZSBlcXVhbCBvciBiZWxvdyB0aGUKKyAgICAgICAgICogdmFyaWFibGUgdG9wIHZhbHVlIHRvIGJlIGlnbm9yZWQgb24gcHJpbWFyeSBsZXZlbCBhbmQgbW92ZWQgdG8gdGhlCisgICAgICAgICAqIHF1YXRlcm5hcnkgbGV2ZWwuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IEFMVEVSTkFURV9IQU5ETElOR18gPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQ29udHJvbHMgdGhlIG9yZGVyaW5nIG9mIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMuIEFjY2VwdGFibGUKKyAgICAgICAgICogdmFsdWVzIGFyZSBPRkYgKGRlZmF1bHQpLCB3aGljaCBvcmRlcnMgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycworICAgICAgICAgKiBpbiBhY2NvcmRhbmNlIHRvIHRoZWlyIHRlcnRpYXJ5IHdlaWdodHMsIFVQUEVSX0ZJUlNUIHdoaWNoIGZvcmNlcworICAgICAgICAgKiB1cHBlciBjYXNlIGxldHRlcnMgdG8gc29ydCBiZWZvcmUgbG93ZXIgY2FzZSBsZXR0ZXJzLCBhbmQKKyAgICAgICAgICogTE9XRVJfRklSU1Qgd2hpY2ggZG9lcyB0aGUgb3Bwb3NpdGUuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IENBU0VfRklSU1RfID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnRyb2xzIHdoZXRoZXIgYW4gZXh0cmEgY2FzZSBsZXZlbCAocG9zaXRpb25lZCBiZWZvcmUgdGhlIHRoaXJkCisgICAgICAgICAqIGxldmVsKSBpcyBnZW5lcmF0ZWQgb3Igbm90LiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgT0ZGIChkZWZhdWx0KSwKKyAgICAgICAgICogd2hlbiBjYXNlIGxldmVsIGlzIG5vdCBnZW5lcmF0ZWQsIGFuZCBPTiB3aGljaCBjYXVzZXMgdGhlIGNhc2UKKyAgICAgICAgICogbGV2ZWwgdG8gYmUgZ2VuZXJhdGVkLiBDb250ZW50cyBvZiB0aGUgY2FzZSBsZXZlbCBhcmUgYWZmZWN0ZWQgYnkKKyAgICAgICAgICogdGhlIHZhbHVlIG9mIENBU0VfRklSU1QgYXR0cmlidXRlLiBBIHNpbXBsZSB3YXkgdG8gaWdub3JlIGFjY2VudAorICAgICAgICAgKiBkaWZmZXJlbmNlcyBpbiBhIHN0cmluZyBpcyB0byBzZXQgdGhlIHN0cmVuZ3RoIHRvIFBSSU1BUlkgYW5kCisgICAgICAgICAqIGVuYWJsZSBjYXNlIGxldmVsLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBDQVNFX0xFVkVMXyA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSBub3JtYWxpemF0aW9uIGNoZWNrIGFuZCBuZWNlc3NhcnkKKyAgICAgICAgICogbm9ybWFsaXphdGlvbnMgYXJlIHBlcmZvcm1lZC4gV2hlbiBzZXQgdG8gT0ZGIChkZWZhdWx0KSBubworICAgICAgICAgKiBub3JtYWxpemF0aW9uIGNoZWNrIGlzIHBlcmZvcm1lZC4gVGhlIGNvcnJlY3RuZXNzIG9mIHRoZSByZXN1bHQgaXMKKyAgICAgICAgICogZ3VhcmFudGVlZCBvbmx5IGlmIHRoZSBpbnB1dCBkYXRhIGlzIGluIHNvLWNhbGxlZCBGQ0QgZm9ybSAoc2VlCisgICAgICAgICAqIHVzZXJzIG1hbnVhbCBmb3IgbW9yZSBpbmZvKS4gV2hlbiBzZXQgdG8gT04sIGFuIGluY3JlbWVudGFsIGNoZWNrCisgICAgICAgICAqIGlzIHBlcmZvcm1lZCB0byBzZWUgd2hldGhlciB0aGUgaW5wdXQgZGF0YSBpcyBpbiB0aGUgRkNEIGZvcm0uIElmCisgICAgICAgICAqIHRoZSBkYXRhIGlzIG5vdCBpbiB0aGUgRkNEIGZvcm0sIGluY3JlbWVudGFsIE5GRCBub3JtYWxpemF0aW9uIGlzCisgICAgICAgICAqIHBlcmZvcm1lZC4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgTk9STUFMSVpBVElPTl9NT0RFXyA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgc3RyZW5ndGggYXR0cmlidXRlLiBDYW4gYmUgZWl0aGVyIFBSSU1BUlksIFNFQ09OREFSWSwgVEVSVElBUlksCisgICAgICAgICAqIFFVQVRFUk5BUlkgb3IgSURFTlRJQ0FMLiBUaGUgdXN1YWwgc3RyZW5ndGggZm9yIG1vc3QgbG9jYWxlcworICAgICAgICAgKiAoZXhjZXB0IEphcGFuZXNlKSBpcyB0ZXJ0aWFyeS4gUXVhdGVybmFyeSBzdHJlbmd0aCBpcyB1c2VmdWwgd2hlbgorICAgICAgICAgKiBjb21iaW5lZCB3aXRoIHNoaWZ0ZWQgc2V0dGluZyBmb3IgYWx0ZXJuYXRlIGhhbmRsaW5nIGF0dHJpYnV0ZSBhbmQKKyAgICAgICAgICogZm9yIEpJUyB4IDQwNjEgY29sbGF0aW9uLCB3aGVuIGl0IGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgorICAgICAgICAgKiBLYXRha2FuYSAgYW5kIEhpcmFnYW5hICh0aGlzIGlzIGFjaGlldmVkIGJ5IHNldHRpbmcgdGhlCisgICAgICAgICAqIEhJUkFHQU5BX1FVQVRFUk5BUlkgbW9kZSB0byBvbi4gT3RoZXJ3aXNlLCBxdWF0ZXJuYXJ5IGxldmVsIGlzCisgICAgICAgICAqIGFmZmVjdGVkIG9ubHkgYnkgdGhlIG51bWJlciBvZiBub24gaWdub3JhYmxlIGNvZGUgcG9pbnRzIGluIHRoZQorICAgICAgICAgKiBzdHJpbmcuIElkZW50aWNhbCBzdHJlbmd0aCBpcyByYXJlbHkgdXNlZnVsLCBhcyBpdCBhbW91bnRzIHRvCisgICAgICAgICAqIGNvZGVwb2ludHMgb2YgdGhlIE5GRCBmb3JtIG9mIHRoZSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFNUUkVOR1RIXyA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhdHRyaWJ1dGUgcG9zaXRpb25zIEhpcmFnYW5hIGJlZm9yZSBhbGwKKyAgICAgICAgICogbm9uLWlnbm9yYWJsZXMgb24gcXVhdGVybmFyeSBsZXZlbC4gVGhpcyBpcyBhIHNuZWFreSB3YXkgdG8gcHJvZHVjZQorICAgICAgICAgKiBKSVMgc29ydCBvcmRlci4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFXyA9IDY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBdHRyaWJ1dGUgY291bnQKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRfID0gNzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEYXRhTWFuaXB1bGF0ZSBzaW5nbGV0b24KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgRGF0YU1hbmlwdWxhdGUgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRlCisgICAgeworICAgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIG1ldGhvZCBjYWxsZWQgdG8gcGFyc2UgYSBsZWFkIHN1cnJvZ2F0ZSdzIGNlIGZvciB0aGUgb2Zmc2V0CisgICAgICAgICAqIHRvIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZSBkYXRhLgorICAgICAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQgb2YgdGhlIGxlYWQgc3Vycm9nYXRlCisgICAgICAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCBmb3IgdGhlIG5leHQgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCBjZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGlzU3BlY2lhbChjZSkgJiYgZ2V0VGFnKGNlKSA9PSBDRV9TVVJST0dBVEVfVEFHXykgeworICAgICAgICAgICAgICAgIHJldHVybiAoY2UgJiAweEZGRkZGRik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXQgc2luZ2xldG9uIG9iamVjdAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRhTWFuaXB1bGF0ZSBnZXRJbnN0YW5jZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2luc3RhbmNlXyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9pbnN0YW5jZV8gPSAgbmV3IERhdGFNYW5pcHVsYXRlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9pbnN0YW5jZV87CisgICAgICAgIH0KKworICAgICAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2luZ2xldG9uIGluc3RhbmNlCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBEYXRhTWFuaXB1bGF0ZSBtX2luc3RhbmNlXzsKKworICAgICAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogcHJpdmF0ZSB0byBwcmV2ZW50IGluaXRpYWxpemF0aW9uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIERhdGFNYW5pcHVsYXRlKCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVUNBQ29uc3RhbnRzCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFVDQUNvbnN0YW50cworICAgIHsKKyAgICAgICAgIGludCBGSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAvLyAweDAwMDAwMDAwCisgICAgICAgICBpbnQgTEFTVF9URVJUSUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgLy8gMHgwMDAwMDAwMAorICAgICAgICAgaW50IEZJUlNUX1BSSU1BUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgIC8vIDB4MDAwMDg3MDUKKyAgICAgICAgIGludCBGSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAvLyAweDAwMDAwMDAwCisgICAgICAgICBpbnQgTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgLy8gMHgwMDAwMDUwMAorICAgICAgICAgaW50IExBU1RfUFJJTUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgIC8vIDB4MDAwMEREMDUKKyAgICAgICAgIGludCBGSVJTVF9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgICAgICAvLyAweDA1MDcwNTA1CisgICAgICAgICBpbnQgTEFTVF9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgICAgICAgLy8gMHgxM0NGMDUwNQorICAgICAgICAgaW50IEZJUlNUX05PTl9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgIC8vIDB4MTYyMDA1MDUKKyAgICAgICAgIGludCBMQVNUX05PTl9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgICAvLyAweDc2N0MwNTA1CisgICAgICAgICBpbnQgUkVTRVRfVE9QX1ZBTFVFX1tdID0gbmV3IGludFsyXTsgICAgICAgICAgICAgICAgLy8gMHg5RjAwMDMwMworICAgICAgICAgaW50IEZJUlNUX0lNUExJQ0lUX1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgIGludCBMQVNUX0lNUExJQ0lUX1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgIGludCBGSVJTVF9UUkFJTElOR19bXSA9IG5ldyBpbnRbMl07CisgICAgICAgICBpbnQgTEFTVF9UUkFJTElOR19bXSA9IG5ldyBpbnRbMl07CisgICAgICAgICBpbnQgUFJJTUFSWV9UT1BfTUlOXzsKKyAgICAgICAgIGludCBQUklNQVJZX0lNUExJQ0lUX01JTl87IC8vIDB4RTgwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX0lNUExJQ0lUX01BWF87IC8vIDB4RjAwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX1RSQUlMSU5HX01JTl87IC8vIDB4RTgwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX1RSQUlMSU5HX01BWF87IC8vIDB4RjAwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX1NQRUNJQUxfTUlOXzsgLy8gMHhFODAwMDAwMAorICAgICAgICAgaW50IFBSSU1BUllfU1BFQ0lBTF9NQVhfOyAvLyAweEYwMDAwMDAwCisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfRklSU1RfVEFJTE9SRURfID0gKGJ5dGUpMHgwNDsKKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0NPTU1PTl8gPSAoYnl0ZSkweDA1OworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF8yXyA9IDB4ODY7IC8vIGludCBmb3IgdW5zaWduZXNzCisgICAgc3RhdGljIGZpbmFsIGludCBDT01NT05fQk9UVE9NXzJfID0gQllURV9DT01NT05fOworICAgIC8qKgorICAgICAqIENhc2Ugc3RyZW5ndGggbWFzaworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0FTRV9CSVRfTUFTS18gPSAweEMwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVEFHX1NISUZUXyA9IDI0OworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVEFHX01BU0tfID0gMHgwRjAwMDAwMDsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1BFQ0lBTF9GTEFHXyA9IDB4RjAwMDAwMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgdGhhdCBpcyB0YWlsb3JlZCBhbmQgZG9lc24ndCBzdGFydCBhIGNvbnRyYWN0aW9uCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9TVVJST0dBVEVfVEFHXyA9IDU7CisgICAgLyoqCisgICAgICogTWFzayB0byBnZXQgdGhlIHByaW1hcnkgc3RyZW5ndGggb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9QUklNQVJZX01BU0tfID0gMHhGRkZGMDAwMDsKKyAgICAvKioKKyAgICAgKiBNYXNrIHRvIGdldCB0aGUgc2Vjb25kYXJ5IHN0cmVuZ3RoIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU0VDT05EQVJZX01BU0tfID0gMHhGRjAwOworICAgIC8qKgorICAgICAqIE1hc2sgdG8gZ2V0IHRoZSB0ZXJ0aWFyeSBzdHJlbmd0aCBvZiB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENFX1RFUlRJQVJZX01BU0tfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBQcmltYXJ5IHN0cmVuZ3RoIHNoaWZ0CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9QUklNQVJZX1NISUZUXyA9IDE2OworICAgIC8qKgorICAgICAqIFNlY29uZGFyeSBzdHJlbmd0aCBzaGlmdAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU0VDT05EQVJZX1NISUZUXyA9IDg7CisgICAgLyoqCisgICAgICogQ29udGludWF0aW9uIG1hcmtlcgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVElOVUFUSU9OX01BUktFUl8gPSAweEMwOworCisgICAgLyoqCisgICAgICogU2l6ZSBvZiBjb2xsYXRvciByYXcgZGF0YSBoZWFkZXJzIGFuZCBvcHRpb25zIGJlZm9yZSB0aGUgZXhwYW5zaW9uCisgICAgICogZGF0YS4gVGhpcyBpcyB1c2VkIHdoZW4gZXhwYW5zaW9uIGNlcyBhcmUgdG8gYmUgcmV0cmlldmVkLiBJQ1U0QyB1c2VzCisgICAgICogdGhlIGV4cGFuc2lvbiBvZmZzZXQgc3RhcnRpbmcgZnJvbSBVQ29sbGF0b3IuVUNvbEhlYWRlciwgaGVuY2UgSUNVNEoKKyAgICAgKiB3aWxsIGhhdmUgdG8gbWludXMgdGhhdCBvZmYgdG8gZ2V0IHRoZSByaWdodCBleHBhbnNpb24gY2Ugb2Zmc2V0LiBJbgorICAgICAqIG51bWJlciBvZiBpbnRzLgorICAgICAqLworICAgIGludCBtX2V4cGFuc2lvbk9mZnNldF87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiBjb2xsYXRvciByYXcgZGF0YSBoZWFkZXJzLCBvcHRpb25zIGFuZCBleHBhbnNpb25zIGJlZm9yZQorICAgICAqIGNvbnRyYWN0aW9uIGRhdGEuIFRoaXMgaXMgdXNlZCB3aGVuIGNvbnRyYWN0aW9uIGNlcyBhcmUgdG8gYmUgcmV0cmlldmVkLgorICAgICAqIElDVTRDIHVzZXMgY29udHJhY3Rpb24gb2Zmc2V0IHN0YXJ0aW5nIGZyb20gVUNvbGxhdG9yLlVDb2xIZWFkZXIsIGhlbmNlCisgICAgICogSUNVNEogd2lsbCBoYXZlIHRvIG1pbnVzIHRoYXQgb2ZmIHRvIGdldCB0aGUgcmlnaHQgY29udHJhY3Rpb24gY2UKKyAgICAgKiBvZmZzZXQuIEluIG51bWJlciBvZiBjaGFycy4KKyAgICAgKi8KKyAgICBpbnQgbV9jb250cmFjdGlvbk9mZnNldF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgSmFtbyBpcyBzcGVjaWFsCisgICAgICovCisgICAgYm9vbGVhbiBtX2lzSmFtb1NwZWNpYWxfOworCisgICAgLy8gQ29sbGF0b3Igb3B0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBpbnQgbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgaW50IG1fZGVmYXVsdENhc2VGaXJzdF87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0Nhc2VMZXZlbF87CisgICAgaW50IG1fZGVmYXVsdERlY29tcG9zaXRpb25fOworICAgIGludCBtX2RlZmF1bHRTdHJlbmd0aF87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0hpcmFnYW5hNF87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fOworICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSB2YXJpYWJsZSB0b3AKKyAgICAgKi8KKyAgICBpbnQgbV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUgZm9yIHNwZWNpYWwgSGlyYWdhbmEKKyAgICAgKi8KKyAgICBib29sZWFuIG1faXNIaXJhZ2FuYTRfOworICAgIC8qKgorICAgICAqIENhc2Ugc29ydGluZyBjdXN0b21pemF0aW9uCisgICAgICovCisgICAgaW50IG1fY2FzZUZpcnN0XzsKKyAgICAvKioKKyAgICAgKiBOdW1lcmljIGNvbGxhdGlvbiBvcHRpb24KKyAgICAgKi8KKyAgICBib29sZWFuIG1faXNOdW1lcmljQ29sbGF0aW9uXzsKKworICAgIC8vIGVuZCBDb2xsYXRvciBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBFeHBhbnNpb24gdGFibGUKKyAgICAgKi8KKyAgICBpbnQgbV9leHBhbnNpb25fW107CisgICAgLyoqCisgICAgICogQ29udHJhY3Rpb24gaW5kZXggdGFibGUKKyAgICAgKi8KKyAgICBjaGFyIG1fY29udHJhY3Rpb25JbmRleF9bXTsKKyAgICAvKioKKyAgICAgKiBDb250cmFjdGlvbiBDRSB0YWJsZQorICAgICAqLworICAgIGludCBtX2NvbnRyYWN0aW9uQ0VfW107CisgICAgLyoqCisgICAgICogRGF0YSB0cmllCisgICAgICovCisgICAgSW50VHJpZSBtX3RyaWVfOworICAgIC8qKgorICAgICAqIFRhYmxlIHRvIHN0b3JlIGFsbCBjb2xsYXRpb24gZWxlbWVudHMgdGhhdCBhcmUgdGhlIGxhc3QgZWxlbWVudCBvZiBhbgorICAgICAqIGV4cGFuc2lvbi4gVGhpcyBpcyBmb3IgdXNlIGluIFN0cmluZ1NlYXJjaC4KKyAgICAgKi8KKyAgICBpbnQgbV9leHBhbnNpb25FbmRDRV9bXTsKKyAgICAvKioKKyAgICAgKiBUYWJsZSB0byBzdG9yZSB0aGUgbWF4aW11bSBzaXplIG9mIGFueSBleHBhbnNpb25zIHRoYXQgZW5kIHdpdGggdGhlCisgICAgICogY29ycmVzcG9uZGluZyBjb2xsYXRpb24gZWxlbWVudCBpbiBtX2V4cGFuc2lvbkVuZENFXy4gRm9yIHVzZSBpbgorICAgICAqIFN0cmluZ1NlYXJjaCB0b28KKyAgICAgKi8KKyAgICBieXRlIG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tdOworICAgIC8qKgorICAgICAqIEhldXJpc3RpYyB0YWJsZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBvbiB3aGV0aGVyIGEgY2hhciBjaGFyYWN0ZXIgaXMKKyAgICAgKiBjb25zaWRlcmVkICJ1bnNhZmUiLiAiVW5zYWZlIiBjaGFyYWN0ZXIgYXJlIGNvbWJpbmluZyBtYXJrcyBvciB0aG9zZQorICAgICAqIGJlbG9uZ2luZyB0byBzb21lIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGZyb20gdGhlIG9mZnNldCAxIG9ud2FyZHMuCisgICAgICogRS5nLiBpZiAiQUJDIiBpcyB0aGUgb25seSBjb250cmFjdGlvbiwgdGhlbiAnQicgYW5kICdDJyBhcmUgY29uc2lkZXJlZAorICAgICAqIHVuc2FmZS4gSWYgd2UgaGF2ZSBhbm90aGVyIGNvbnRyYWN0aW9uICJaQSIgd2l0aCB0aGUgb25lIGFib3ZlLCB0aGVuCisgICAgICogJ0EnLCAnQicsICdDJyBhcmUgInVuc2FmZSIgYnV0ICdaJyBpcyBub3QuCisgICAgICovCisgICAgYnl0ZSBtX3Vuc2FmZV9bXTsKKyAgICAvKioKKyAgICAgKiBUYWJsZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBvbiB3aGV0aGVyIGEgY29kZXBvaW50IGNhbiBvY2N1ciBhcyB0aGUgbGFzdAorICAgICAqIGNoYXJhY3RlciBpbiBhIGNvbnRyYWN0aW9uCisgICAgICovCisgICAgYnl0ZSBtX2NvbnRyYWN0aW9uRW5kX1tdOworICAgIC8qKgorICAgICAqIE9yaWdpbmFsIGNvbGxhdGlvbiBydWxlcworICAgICAqLworICAgIFN0cmluZyBtX3J1bGVzXzsKKyAgICAvKioKKyAgICAgKiBUaGUgc21hbGxlc3QgInVuc2FmZSIgY29kZXBvaW50CisgICAgICovCisgICAgY2hhciBtX21pblVuc2FmZV87CisgICAgLyoqCisgICAgICogVGhlIHNtYWxsZXN0IGNvZGVwb2ludCB0aGF0IGNvdWxkIGJlIHRoZSBlbmQgb2YgYSBjb250cmFjdGlvbgorICAgICAqLworICAgIGNoYXIgbV9taW5Db250cmFjdGlvbkVuZF87CisgICAgLyoqCisgICAgICogR2VuZXJhbCB2ZXJzaW9uIG9mIHRoZSBjb2xsYXRvcgorICAgICAqLworICAgIFZlcnNpb25JbmZvIG1fdmVyc2lvbl87CisgICAgLyoqCisgICAgICogVUNBIHZlcnNpb24KKyAgICAgKi8KKyAgICBWZXJzaW9uSW5mbyBtX1VDQV92ZXJzaW9uXzsKKyAgICAvKioKKyAgICAgKiBVQ0QgdmVyc2lvbgorICAgICAqLworICAgIFZlcnNpb25JbmZvIG1fVUNEX3ZlcnNpb25fOworCisgICAgLyoqCisgICAgICogVW5pY29kZURhdGEudHh0IHByb3BlcnR5IG9iamVjdAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBSdWxlQmFzZWRDb2xsYXRvciBVQ0FfOworICAgIC8qKgorICAgICAqIFVDQSBDb25zdGFudHMKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgVUNBQ29uc3RhbnRzIFVDQV9DT05TVEFOVFNfOworICAgIC8qKgorICAgICAqIFRhYmxlIGZvciBVQ0EgYW5kIGJ1aWxkZXIgdXNlCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgVUNBX0NPTlRSQUNUSU9OU19bXTsKKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gVUNBX0lOSVRfQ09NUExFVEU7CisKKyAgICAvKioKKyAgICAgKiBJbXBsaWNpdCBnZW5lcmF0b3IKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgSW1wbGljaXRDRUdlbmVyYXRvciBpbXBDRUdlbl87CisvLyAgICAvKioKKy8vICAgICAqIEltcGxpY2l0IGNvbnN0YW50cworLy8gICAgICovCisvLyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUX0JBU0VfQllURV87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUX0xJTUlUX0JZVEVfOworLy8gICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF80QllURV9CT1VOREFSWV87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IExBU1RfTVVMVElQTElFUl87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IExBU1QyX01VTFRJUExJRVJfOworLy8gICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF9CQVNFXzNCWVRFXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgSU1QTElDSVRfQkFTRV80QllURV87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IEJZVEVTX1RPX0FWT0lEXyA9IDM7CisvLyAgICBzdGF0aWMgZmluYWwgaW50IE9USEVSX0NPVU5UXyA9IDI1NiAtIEJZVEVTX1RPX0FWT0lEXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DT1VOVF8gPSBPVEhFUl9DT1VOVF8gLyAyOworLy8gICAgLyoqCisvLyAgICAgKiBSb29tIGZvciBpbnRlcnZlbmluZywgd2l0aG91dCBleHBhbmRpbmcgdG8gNSBieXRlcworLy8gICAgICovCisvLyAgICBzdGF0aWMgZmluYWwgaW50IExBU1RfQ09VTlQyXyA9IE9USEVSX0NPVU5UXyAvIDIxOworLy8gICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF8zQllURV9DT1VOVF8gPSAxOworLy8gICAgCisgICAgc3RhdGljIGZpbmFsIGJ5dGUgU09SVF9MRVZFTF9URVJNSU5BVE9SXyA9IDE7CisKKy8vICBUaGVzZSBhcmUgdmFsdWVzIGZyb20gVUNBIHJlcXVpcmVkIGZvcgorLy8gIGltcGxpY2l0IGdlbmVyYXRpb24gYW5kIHN1cHJlc3Npbmcgc29ydCBrZXkgY29tcHJlc3Npb24KKy8vICB0aGV5IHNob3VsZCByZWd1bGFybHkgYmUgaW4gdGhlIFVDQSwgYnV0IGlmIG9uZQorLy8gIGlzIHJ1bm5pbmcgd2l0aG91dCBVQ0EsIGl0IGNvdWxkIGJlIGEgcHJvYmxlbQorICAgICBzdGF0aWMgZmluYWwgaW50IG1heFJlZ3VsYXJQcmltYXJ5ICA9IDB4QTA7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgbWluSW1wbGljaXRQcmltYXJ5ID0gMHhFMDsKKyAgICAgc3RhdGljIGZpbmFsIGludCBtYXhJbXBsaWNpdFByaW1hcnkgPSAweEU0OworCisKKyAgICAvLyBibG9jayB0byBpbml0aWFsaXNlIGNoYXJhY3RlciBwcm9wZXJ0eSBkYXRhYmFzZQorICAgIHN0YXRpYworICAgIHsKKyAgICAgICAgLy8gdGFrZSBwYWlucyB0byBsZXQgc3RhdGljIGNsYXNzIGluaXQgc3VjY2VlZCwgb3RoZXJ3aXNlIHRoZSBjbGFzcyBpdHNlbGYgd29uJ3QgZXhpc3QgYW5kCisgICAgICAgIC8vIGNsaWVudHMgd2lsbCBnZXQgYSBOb0NsYXNzRGVmRm91bmRFeGNlcHRpb24uICBJbnN0ZWFkLCBtYWtlIHRoZSBjb25zdHJ1Y3RvcnMgZmFpbCBpZgorICAgICAgICAvLyB3ZSBjYW4ndCBsb2FkIHRoZSBVQ0EgZGF0YS4KKworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBpVUNBXyA9IG51bGw7CisgICAgICAgIFVDQUNvbnN0YW50cyBpVUNBX0NPTlNUQU5UU18gPSBudWxsOworICAgICAgICBjaGFyIGlVQ0FfQ09OVFJBQ1RJT05TX1tdID0gbnVsbDsKKyAgICAgICAgSW1wbGljaXRDRUdlbmVyYXRvciBpaW1wQ0VHZW5fID0gbnVsbDsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vICEhISBub3RlIHdoYXQncyBnb2luZyBvbiBoZXJlLi4uCisgICAgICAgICAgICAvLyBldmVuIHRob3VnaCB0aGUgc3RhdGljIGluaXQgb2YgdGhlIGNsYXNzIGlzIG5vdCB5ZXQgY29tcGxldGUsIHdlCisgICAgICAgICAgICAvLyBpbnN0YW50aWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MuICBTbyB3ZSdkIGJldHRlciBiZSBzdXJlIHRoYXQKKyAgICAgICAgICAgIC8vIGluc3RhbnRpYXRpb24gZG9lc24ndCByZWx5IG9uIHRoZSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gdGhhdCdzCisgICAgICAgICAgICAvLyBub3QgY29tcGxldGUgeWV0IQorICAgICAgICAgICAgaVVDQV8gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoKTsKKyAgICAgICAgICAgIGlVQ0FfQ09OU1RBTlRTXyA9IG5ldyBVQ0FDb25zdGFudHMoKTsKKyAgICAgICAgICAgIGlVQ0FfQ09OVFJBQ1RJT05TXyA9IENvbGxhdG9yUmVhZGVyLnJlYWQoaVVDQV8sIGlVQ0FfQ09OU1RBTlRTXyk7CisKKyAgICAgICAgICAgIC8vIGNhbGxlZCBiZWZvcmUgZG9pbmcgY2Fub25pY2FsIGNsb3N1cmUgZm9yIHRoZSBVQ0EuCisgICAgICAgICAJaWltcENFR2VuXyA9IG5ldyBJbXBsaWNpdENFR2VuZXJhdG9yKG1pbkltcGxpY2l0UHJpbWFyeSwgbWF4SW1wbGljaXRQcmltYXJ5KTsKKyAgICAgICAgICAgIC8vaWltcENFR2VuXyA9IG5ldyBJbXBsaWNpdENFR2VuZXJhdG9yKGlVQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01JTl8sIGlVQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01BWF8pOworICAgICAgICAgICAgaVVDQV8uaW5pdCgpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCBVTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgaVVDQV8ubV9ydWxlc18gPSAoU3RyaW5nKXJiLmdldE9iamVjdCgiVUNBUnVsZXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KQorICAgICAgICB7CisvLyAgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworLy8gICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgIH0KKworICAgICAgICBVQ0FfID0gaVVDQV87CisgICAgICAgIFVDQV9DT05TVEFOVFNfID0gaVVDQV9DT05TVEFOVFNfOworICAgICAgICBVQ0FfQ09OVFJBQ1RJT05TXyA9IGlVQ0FfQ09OVFJBQ1RJT05TXzsKKyAgICAgICAgaW1wQ0VHZW5fID0gaWltcENFR2VuXzsKKworICAgICAgICBVQ0FfSU5JVF9DT01QTEVURSA9IHRydWU7CisgICAgfQorCisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGNoZWNrVUNBKCkgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChVQ0FfSU5JVF9DT01QTEVURSAmJiBVQ0FfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvbGxhdG9yIFVDQSBkYXRhIHVuYXZhaWxhYmxlIiwgIiIsICIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UHJpdmF0ZSBjb250cnVjdG9yIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4KKyAgICAqIFB1YmxpYyBhY2Nlc3MgdG8gY3JlYXRpbmcgQ29sbGF0b3JzIGlzIGhhbmRsZWQgYnkgdGhlIEFQSQorICAgICogQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSBvciBSdWxlQmFzZWRDb2xsYXRvcihTdHJpbmcgcnVsZXMpLgorICAgICogPC9wPgorICAgICogPHA+CisgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNvbnN0cnVjdHMgdGhlIFVDQSBjb2xsYXRvciBpbnRlcm5hbGx5CisgICAgKiA8L3A+CisgICAgKi8KKyAgICBSdWxlQmFzZWRDb2xsYXRvcigpCisgICAgeworICAgICAgICBjaGVja1VDQSgpOworICAgICAgICBpbml0VXRpbGl0eShmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3JzIGEgUnVsZUJhc2VkQ29sbGF0b3IgZnJvbSB0aGUgYXJndW1lbnQgbG9jYWxlLgorICAgICAqIElmIG5vIHJlc291cmNlIGJ1bmRsZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGxvY2FsZSwgVUNBIGlzIHVzZWQKKyAgICAgKiBpbnN0ZWFkLgorICAgICAqIEBwYXJhbSBsb2NhbGUKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRDb2xsYXRvcihVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIGNoZWNrVUNBKCk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgaW5pdFV0aWxpdHkoZmFsc2UpOworICAgICAgICBpZiAocmIgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBVc2Uga2V5d29yZHMsIGlmIHN1cHBsaWVkIGZvciBsb29rdXAKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29sbGtleSA9IGxvY2FsZS5nZXRLZXl3b3JkVmFsdWUoImNvbGxhdGlvbiIpOworICAgICAgICAgICAgICAgICAgaWYoY29sbGtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgY29sbGtleSA9IHJiLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9kZWZhdWx0Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjb2xsYXRpb25zL2RlZmF1bHQgd2lsbCBhbHdheXMgZ2l2ZSBhIHN0cmluZyBiYWNrCisgICAgICAgICAgICAgICAgLy8ga2V5d29yZCBmb3IgdGhlIHJlYWwgY29sbGF0aW9uIGRhdGEKKyAgICAgICAgICAgICAgICAvLyBpZiAiY29sbGF0aW9ucy9jb2xsa2V5IiB3aWxsIHJldHVybiBudWxsIGlmIGNvbGxrZXkgPT0gbnVsbCAKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBlbGVtZW50cyA9IHJiLmdldFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy8iICsgY29sbGtleSk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogRGV0ZXJtaW5lIGFjdHVhbCAmIHZhbGlkIGxvY2FsZSBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gcmIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAgICAgICAgICAgICAgICAgbV9ydWxlc18gPSBlbGVtZW50cy5nZXRTdHJpbmcoIlNlcXVlbmNlIik7CisgICAgICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnVmID0gZWxlbWVudHMuZ2V0KCIlJUNvbGxhdGlvbkJpbiIpLmdldEJpbmFyeSgpOworICAgICAgICAgICAgICAgICAgICAvLyAlJUNvbGxhdGlvbkJpbgorICAgICAgICAgICAgICAgICAgICBpZihidWYhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAvLyAgICAgbV9ydWxlc18gPSAoU3RyaW5nKXJ1bGVzWzFdWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBtYXBbXSA9IGJ1Zi5hcnJheSgpOworICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3JSZWFkZXIuaW5pdFJCQyh0aGlzLCBtYXApOworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gaW5wdXQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShtYXApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvclJlYWRlciByZWFkZXIgPSBuZXcgQ29sbGF0b3JSZWFkZXIoaW5wdXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXAubGVuZ3RoID4gTUlOX0JJTkFSWV9EQVRBX1NJWkVfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWQodGhpcywgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVhZEhlYWRlcih0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVhZE9wdGlvbnModGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVwbGljYXRpbmcgVUNBXydzIGRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaXRoVUNBVGFibGVzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgd2UgaGF2ZSByZWFkIGluIHRoZSBjb2xsYXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm93IHdlIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgYmluYXJ5IGltYWdlIGhhcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJpZ2h0IFVDQSBhbmQgb3RoZXIgdmVyc2lvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFtX1VDQV92ZXJzaW9uXy5lcXVhbHMoVUNBXy5tX1VDQV92ZXJzaW9uXykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICFtX1VDRF92ZXJzaW9uXy5lcXVhbHMoVUNBXy5tX1VDRF92ZXJzaW9uXykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0KG1fcnVsZXNfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbml0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkdWUgdG8gcmVzb3VyY2UgcmVkaXJlY3Rpb24gSUNVTGlzdFJlc291cmNlQnVuZGxlIGRvZXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZSBtaXNzaW5nIHJlc291cmNlIGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBnZXQgcmVzb3VyY2UgZm9yIGNvbnN0cnVjdGluZyBSdWxlQmFzZWRDb2xsYXRvciIsImNvbS5pYm0uaWN1LmltcGwuZGF0YS5Mb2NhbGVFbGVtZW50c18iK2xvY2FsZS50b1N0cmluZygpLCAiJSVDb2xsYXRpb25CaW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdChtX3J1bGVzXyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIC8vIGlmIGZhaWxlZCB1c2UgVUNBLgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldFdpdGhVQ0FEYXRhKCk7CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBjb2xsYXRvciB0byB1c2UgdGhlIHRhYmxlcyBpbiBVQ0EuIE5vdGUgb3B0aW9ucyBub3QgdGFrZW4KKyAgICAgKiBjYXJlIG9mIGhlcmUuCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRXaXRoVUNBVGFibGVzKCkKKyAgICB7CisgICAgICAgIG1fY29udHJhY3Rpb25PZmZzZXRfID0gVUNBXy5tX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAgICAgbV9leHBhbnNpb25PZmZzZXRfID0gVUNBXy5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgICAgIG1fZXhwYW5zaW9uXyA9IFVDQV8ubV9leHBhbnNpb25fOworICAgICAgICBtX2NvbnRyYWN0aW9uSW5kZXhfID0gVUNBXy5tX2NvbnRyYWN0aW9uSW5kZXhfOworICAgICAgICBtX2NvbnRyYWN0aW9uQ0VfID0gVUNBXy5tX2NvbnRyYWN0aW9uQ0VfOworICAgICAgICBtX3RyaWVfID0gVUNBXy5tX3RyaWVfOworICAgICAgICBtX2V4cGFuc2lvbkVuZENFXyA9IFVDQV8ubV9leHBhbnNpb25FbmRDRV87CisgICAgICAgIG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplXyA9IFVDQV8ubV9leHBhbnNpb25FbmRDRU1heFNpemVfOworICAgICAgICBtX3Vuc2FmZV8gPSBVQ0FfLm1fdW5zYWZlXzsKKyAgICAgICAgbV9jb250cmFjdGlvbkVuZF8gPSBVQ0FfLm1fY29udHJhY3Rpb25FbmRfOworICAgICAgICBtX21pblVuc2FmZV8gPSBVQ0FfLm1fbWluVW5zYWZlXzsKKyAgICAgICAgbV9taW5Db250cmFjdGlvbkVuZF8gPSBVQ0FfLm1fbWluQ29udHJhY3Rpb25FbmRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBjb2xsYXRvciB0byB1c2UgdGhlIGFsbCBvcHRpb25zIGFuZCB0YWJsZXMgaW4gVUNBLgorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0V2l0aFVDQURhdGEoKQorICAgIHsKKyAgICAgICAgbGF0aW5PbmVGYWlsZWRfID0gdHJ1ZTsKKworICAgICAgICBtX2FkZGl0aW9uM18gPSBVQ0FfLm1fYWRkaXRpb24zXzsKKyAgICAgICAgbV9ib3R0b20zXyA9IFVDQV8ubV9ib3R0b20zXzsKKyAgICAgICAgbV9ib3R0b21Db3VudDNfID0gVUNBXy5tX2JvdHRvbUNvdW50M187CisgICAgICAgIG1fY2FzZUZpcnN0XyA9IFVDQV8ubV9jYXNlRmlyc3RfOworICAgICAgICBtX2Nhc2VTd2l0Y2hfID0gVUNBXy5tX2Nhc2VTd2l0Y2hfOworICAgICAgICBtX2NvbW1vbjNfID0gVUNBXy5tX2NvbW1vbjNfOworICAgICAgICBtX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IFVDQV8ubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICAgIHNldERlY29tcG9zaXRpb24oVUNBXy5nZXREZWNvbXBvc2l0aW9uKCkpOworICAgICAgICBtX2RlZmF1bHRDYXNlRmlyc3RfID0gVUNBXy5tX2RlZmF1bHRDYXNlRmlyc3RfOworICAgICAgICBtX2RlZmF1bHREZWNvbXBvc2l0aW9uXyA9IFVDQV8ubV9kZWZhdWx0RGVjb21wb3NpdGlvbl87CisgICAgICAgIG1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFVDQV8ubV9kZWZhdWx0SXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgICAgICBtX2RlZmF1bHRJc0Nhc2VMZXZlbF8gPSBVQ0FfLm1fZGVmYXVsdElzQ2FzZUxldmVsXzsKKyAgICAgICAgbV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fID0gVUNBXy5tX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl87CisgICAgICAgIG1fZGVmYXVsdElzSGlyYWdhbmE0XyA9IFVDQV8ubV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworICAgICAgICBtX2RlZmF1bHRTdHJlbmd0aF8gPSBVQ0FfLm1fZGVmYXVsdFN0cmVuZ3RoXzsKKyAgICAgICAgbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV8gPSBVQ0FfLm1fZGVmYXVsdFZhcmlhYmxlVG9wVmFsdWVfOworICAgICAgICBtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fID0gVUNBXy5tX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fOworICAgICAgICBtX2V4cGFuc2lvbk9mZnNldF8gPSBVQ0FfLm1fZXhwYW5zaW9uT2Zmc2V0XzsKKyAgICAgICAgbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gPSBVQ0FfLm1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgICAgICBtX2lzQ2FzZUxldmVsXyA9IFVDQV8ubV9pc0Nhc2VMZXZlbF87CisgICAgICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gVUNBXy5tX2lzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBVQ0FfLm1faXNIaXJhZ2FuYTRfOworICAgICAgICBtX2lzSmFtb1NwZWNpYWxfID0gVUNBXy5tX2lzSmFtb1NwZWNpYWxfOworICAgICAgICBtX2lzU2ltcGxlM18gPSBVQ0FfLm1faXNTaW1wbGUzXzsKKyAgICAgICAgbV9tYXNrM18gPSBVQ0FfLm1fbWFzazNfOworICAgICAgICBtX21pbkNvbnRyYWN0aW9uRW5kXyA9IFVDQV8ubV9taW5Db250cmFjdGlvbkVuZF87CisgICAgICAgIG1fbWluVW5zYWZlXyA9IFVDQV8ubV9taW5VbnNhZmVfOworICAgICAgICBtX3J1bGVzXyA9IFVDQV8ubV9ydWxlc187CisgICAgICAgIHNldFN0cmVuZ3RoKFVDQV8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIG1fdG9wM18gPSBVQ0FfLm1fdG9wM187CisgICAgICAgIG1fdG9wQ291bnQzXyA9IFVDQV8ubV90b3BDb3VudDNfOworICAgICAgICBtX3ZhcmlhYmxlVG9wVmFsdWVfID0gVUNBXy5tX3ZhcmlhYmxlVG9wVmFsdWVfOworICAgICAgICBtX2lzTnVtZXJpY0NvbGxhdGlvbl8gPSBVQ0FfLm1faXNOdW1lcmljQ29sbGF0aW9uXzsKKyAgICAgICAgc2V0V2l0aFVDQVRhYmxlcygpOworICAgICAgICBsYXRpbk9uZUZhaWxlZF8gPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHdoZXRoZXIgYSBjaGFyIGNoYXJhY3RlciBpcyBwb3RlbnRpYWxseSAidW5zYWZlIiBmb3IgdXNlIGFzIGEKKyAgICAgKiBjb2xsYXRpb24gc3RhcnRpbmcgcG9pbnQuICJVbnNhZmUiIGNoYXJhY3RlcnMgYXJlIGNvbWJpbmluZyBtYXJrcyBvcgorICAgICAqIHRob3NlIGJlbG9uZ2luZyB0byBzb21lIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGZyb20gdGhlIG9mZnNldCAxIG9ud2FyZHMuCisgICAgICogRS5nLiBpZiAiQUJDIiBpcyB0aGUgb25seSBjb250cmFjdGlvbiwgdGhlbiAnQicgYW5kCisgICAgICogJ0MnIGFyZSBjb25zaWRlcmVkIHVuc2FmZS4gSWYgd2UgaGF2ZSBhbm90aGVyIGNvbnRyYWN0aW9uICJaQSIgd2l0aAorICAgICAqIHRoZSBvbmUgYWJvdmUsIHRoZW4gJ0EnLCAnQicsICdDJyBhcmUgInVuc2FmZSIgYnV0ICdaJyBpcyBub3QuCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBkZXRlcm1pbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyB1bnNhZmUsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIGZpbmFsIGJvb2xlYW4gaXNVbnNhZmUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IG1fbWluVW5zYWZlXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoY2ggPj0gKEhFVVJJU1RJQ19TSVpFXyA8PCBIRVVSSVNUSUNfU0hJRlRfKSkgeworICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkgCisgICAgICAgICAgICAgICAgfHwgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAvLyAgVHJhaWwgc3Vycm9nYXRlIGFyZSBhbHdheXMgY29uc2lkZXJlZCB1bnNhZmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCAmPSBIRVVSSVNUSUNfT1ZFUkZMT1dfTUFTS187CisgICAgICAgICAgICBjaCArPSBIRVVSSVNUSUNfT1ZFUkZMT1dfT0ZGU0VUXzsKKyAgICAgICAgfQorICAgICAgICBpbnQgdmFsdWUgPSBtX3Vuc2FmZV9bY2ggPj4gSEVVUklTVElDX1NISUZUX107CisgICAgICAgIHJldHVybiAoKHZhbHVlID4+IChjaCAmIEhFVVJJU1RJQ19NQVNLXykpICYgMSkgIT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHByb3hpbWF0ZSBkZXRlcm1pbmF0aW9uIGlmIGEgY2hhciBjaGFyYWN0ZXIgaXMgYXQgYSBjb250cmFjdGlvbiBlbmQuCisgICAgICogR3VhcmFudGVlZCB0byBiZSB0cnVlIGlmIGEgY2hhcmFjdGVyIGlzIGF0IHRoZSBlbmQgb2YgYSBjb250cmFjdGlvbiwKKyAgICAgKiBvdGhlcndpc2UgaXQgaXMgbm90IGRldGVybWluaXN0aWMuCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBiZSBkZXRlcm1pbmVkCisgICAgICovCisgICAgZmluYWwgYm9vbGVhbiBpc0NvbnRyYWN0aW9uRW5kKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoIDwgbV9taW5Db250cmFjdGlvbkVuZF8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjaCA+PSAoSEVVUklTVElDX1NJWkVfIDw8IEhFVVJJU1RJQ19TSElGVF8pKSB7CisgICAgICAgICAgICBjaCAmPSBIRVVSSVNUSUNfT1ZFUkZMT1dfTUFTS187CisgICAgICAgICAgICBjaCArPSBIRVVSSVNUSUNfT1ZFUkZMT1dfT0ZGU0VUXzsKKyAgICAgICAgfQorICAgICAgICBpbnQgdmFsdWUgPSBtX2NvbnRyYWN0aW9uRW5kX1tjaCA+PiBIRVVSSVNUSUNfU0hJRlRfXTsKKyAgICAgICAgcmV0dXJuICgodmFsdWUgPj4gKGNoICYgSEVVUklTVElDX01BU0tfKSkgJiAxKSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSB0YWcgb2YgYSBzcGVjaWFsIGNlCisgICAgICogQHBhcmFtIGNlIGNlIHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRhZyBvZiBjZQorICAgICAqLworICAgIHN0YXRpYyBpbnQgZ2V0VGFnKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiBDRV9UQUdfTUFTS18pID4+IENFX1RBR19TSElGVF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tpbmcgaWYgY2UgaXMgc3BlY2lhbAorICAgICAqIEBwYXJhbSBjZSB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjZSBpcyBzcGVjaWFsCisgICAgICovCisgICAgc3RhdGljIGJvb2xlYW4gaXNTcGVjaWFsKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiBDRV9TUEVDSUFMX0ZMQUdfKSA9PSBDRV9TUEVDSUFMX0ZMQUdfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaXMgYSBjb250aW51YXRpb24KKyAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjZSBpcyBhIGNvbnRpbnVhdGlvbgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzQ29udGludWF0aW9uKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSCisgICAgICAgICAgICAgICAgICAgICAgICYmIChjZSAmIENFX0NPTlRJTlVBVElPTl9UQUdfKSA9PSBDRV9DT05USU5VQVRJT05fVEFHXzsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGlubmVyIGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHNtYWxsZXN0IG5hdHVyYWwgdW5zYWZlIG9yIGNvbnRyYWN0aW9uIGVuZCBjaGFyIGNoYXJhY3RlciBiZWZvcmUKKyAgICAgKiB0YWlsb3JpbmcuCisgICAgICogVGhpcyBpcyBhIGNvbWJpbmluZyBtYXJrLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX01JTl9IRVVSSVNUSUNfID0gMHgzMDA7CisgICAgLyoqCisgICAgICogSGV1cmlzdGljIHRhYmxlIHRhYmxlIHNpemUuIFNpemUgaXMgMzIgYnl0ZXMsIDEgYml0IGZvciBlYWNoCisgICAgICogbGF0aW4gMSBjaGFyLCBhbmQgc29tZSBwb3dlciBvZiB0d28gZm9yIGhhc2hpbmcgdGhlIHJlc3Qgb2YgdGhlIGNoYXJzLgorICAgICAqIFNpemUgaW4gYnl0ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIRVVSSVNUSUNfU0laRV8gPSAxMDU2OworICAgIC8qKgorICAgICAqIE1hc2sgdmFsdWUgZG93biB0byAic29tZSBwb3dlciBvZiB0d28iIC0gMSwKKyAgICAgKiBudW1iZXIgb2YgYml0cywgbm90IG51bSBvZiBieXRlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhFVVJJU1RJQ19PVkVSRkxPV19NQVNLXyA9IDB4MWZmZjsKKyAgICAvKioKKyAgICAgKiBVbnNhZmUgY2hhcmFjdGVyIHNoaWZ0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFVVJJU1RJQ19TSElGVF8gPSAzOworICAgIC8qKgorICAgICAqIFVuc2FmZSBjaGFyYWN0ZXIgYWRkaXRpb24gZm9yIGNoYXJhY3RlciB0b28gbGFyZ2UsIGl0IGhhcyB0byBiZSBmb2xkZWQKKyAgICAgKiB0aGVuIGluY3JlbWVudGVkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSEVVUklTVElDX09WRVJGTE9XX09GRlNFVF8gPSAyNTY7CisgICAgLyoqCisgICAgICogTWFzayB2YWx1ZSB0byBnZXQgb2Zmc2V0IGluIGhldXJpc3RpYyB0YWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhFVVJJU1RJQ19NQVNLXyA9IDc7CisKKyAgICBwcml2YXRlIGludCBtX2Nhc2VTd2l0Y2hfOworICAgIHByaXZhdGUgaW50IG1fY29tbW9uM187CisgICAgcHJpdmF0ZSBpbnQgbV9tYXNrM187CisgICAgLyoqCisgICAgICogV2hlbiBzd2l0Y2hpbmcgY2FzZSwgd2UgbmVlZCB0byBhZGQgb3Igc3VidHJhY3QgZGlmZmVyZW50IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uM187CisgICAgLyoqCisgICAgICogVXBwZXIgcmFuZ2Ugd2hlbiBjb21wcmVzc2luZworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9wM187CisgICAgLyoqCisgICAgICogVXBwZXIgcmFuZ2Ugd2hlbiBjb21wcmVzc2luZworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fYm90dG9tM187CisgICAgcHJpdmF0ZSBpbnQgbV90b3BDb3VudDNfOworICAgIHByaXZhdGUgaW50IG1fYm90dG9tQ291bnQzXzsKKyAgICAvKioKKyAgICAgKiBDYXNlIGZpcnN0IGNvbnN0YW50cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVNFX1NXSVRDSF8gPSAweEMwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT19DQVNFX1NXSVRDSF8gPSAwOworICAgIC8qKgorICAgICAqIENhc2UgbGV2ZWwgY29uc3RhbnRzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFTU9WRV9DQVNFXyA9IDB4M0Y7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0tFRVBfQ0FTRV8gPSAweEZGOworICAgIC8qKgorICAgICAqIENhc2Ugc3RyZW5ndGggbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DQVNFX01BU0tfM18gPSAweEZGOworICAgIC8qKgorICAgICAqIFNvcnRrZXkgc2l6ZSBmYWN0b3IuIFZhbHVlcyBjYW4gYmUgY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgUFJPUE9SVElPTl8yXyA9IDAuNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgUFJPUE9SVElPTl8zXyA9IDAuNjY3OworCisgICAgLy8gVGhlc2UgdmFsdWVzIGNvbWUgZnJvbSB0aGUgVUNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYW4gZW51bSB0aGF0IGxpc3RzIG1hZ2ljIHNwZWNpYWwgYnl0ZSB2YWx1ZXMgZnJvbSB0aGUKKyAgICAgKiBmcmFjdGlvbmFsIFVDQQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9aRVJPXyA9IDB4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfTEVWRUxfU0VQQVJBVE9SXyA9IChieXRlKTB4MDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1NPUlRLRVlfR0xVRV8gPSAoYnl0ZSkweDAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9TSElGVF9QUkVGSVhfID0gKGJ5dGUpMHgwMzsKKyAgICAvKnByaXZhdGUqLyBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1VOU0hJRlRFRF9NSU5fID0gQllURV9TSElGVF9QUkVGSVhfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9GSVJTVF9VQ0FfID0gQllURV9DT01NT05fOworICAgIHN0YXRpYyBmaW5hbCBieXRlIENPREFOX1BMQUNFSE9MREVSID0gMHgyNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfTEFTVF9MQVRJTl9QUklNQVJZXyA9IChieXRlKTB4NEM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0ZJUlNUX05PTl9MQVRJTl9QUklNQVJZXyA9IChieXRlKTB4NEQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1VOU0hJRlRFRF9NQVhfID0gKGJ5dGUpMHhGRjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9UQUxfMl8gPSBDT01NT05fVE9QXzJfIC0gQ09NTU9OX0JPVFRPTV8yXyAtIDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMQUdfQklUX01BU0tfQ0FTRV9TV0lUQ0hfT0ZGXyA9IDB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMQUdfQklUX01BU0tfQ0FTRV9TV0lUQ0hfT05fID0gMHg0MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9PRkZfM18gPSAweDg1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fVE9QX0NBU0VfU1dJVENIX0xPV0VSXzNfID0gMHg0NTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9VUFBFUl8zXyA9IDB4QzU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9CT1RUT01fM18gPSAweDA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fQk9UVE9NX0NBU0VfU1dJVENIX1VQUEVSXzNfID0gMHg4NjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9MT1dFUl8zXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTU1PTl9CT1RUT01fM187CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRPUF9DT1VOVF8yXyA9IChpbnQpKFBST1BPUlRJT05fMl8gKiBUT1RBTF8yXyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJPVFRPTV9DT1VOVF8yXyA9IFRPVEFMXzJfIC0gVE9QX0NPVU5UXzJfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fMl8gPSBDT01NT05fQk9UVE9NXzJfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fVVBQRVJfRklSU1RfM18gPSAweEM1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fTk9STUFMXzNfID0gQ09NTU9OX0JPVFRPTV8zXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OXzRfID0gKGJ5dGUpMHhGRjsKKworCisKKyAgICAvKioKKyAgICAgKiBNaW5pbXVtIHNpemUgcmVxdWlyZWQgZm9yIHRoZSBiaW5hcnkgY29sbGF0aW9uIGRhdGEgaW4gYnl0ZXMuCisgICAgICogU2l6ZSBvZiBVQ0EgaGVhZGVyICsgc2l6ZSBvZiBvcHRpb25zIHRvIDQgYnl0ZXMKKyAgICAgKi8KKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSU5fQklOQVJZX0RBVEFfU0laRV8gPSAoNDIgKyAyNSkgPDwgMjsKKworICAgIC8qKgorICAgICAqIElmIHRoaXMgY29sbGF0b3IgaXMgdG8gZ2VuZXJhdGUgb25seSBzaW1wbGUgdGVydGlhcmllcyBmb3IgZmFzdCBwYXRoCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNTaW1wbGUzXzsKKworICAgIC8qKgorICAgICAqIEZyZW5jaCBjb2xsYXRpb24gc29ydGluZyBmbGFnCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNGcmVuY2hDb2xsYXRpb25fOworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGluZyBpZiBzaGlmdGVkIGlzIHJlcXVlc3RlZCBmb3IgUXVhdGVybmFyeSBhbHRlcm5hdGUKKyAgICAgKiBoYW5kbGluZy4gSWYgdGhpcyBpcyBub3QgdHJ1ZSwgdGhlIGRlZmF1bHQgZm9yIGFsdGVybmF0ZSBoYW5kbGluZyB3aWxsCisgICAgICogYmUgbm9uLWlnbm9yYWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgLyoqCisgICAgICogRXh0cmEgY2FzZSBsZXZlbCBmb3Igc29ydGluZworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzQ2FzZUxldmVsXzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1JUX0JVRkZFUl9JTklUX1NJWkVfID0gMTI4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1JUX0JVRkZFUl9JTklUX1NJWkVfMV8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfQlVGRkVSX0lOSVRfU0laRV8gPDwgMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXzJfID0gU09SVF9CVUZGRVJfSU5JVF9TSVpFXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXzNfID0gU09SVF9CVUZGRVJfSU5JVF9TSVpFXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFX0NBU0VfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfQlVGRkVSX0lOSVRfU0laRV8gPj4gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXzRfID0gU09SVF9CVUZGRVJfSU5JVF9TSVpFXzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DT05USU5VQVRJT05fVEFHXyA9IDB4QzA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFTU9WRV9DT05USU5VQVRJT05fTUFTS18gPSAweEZGRkZGRjNGOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4RkY7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfUkVTRVRfVE9QX1ZBTFVFXyA9IDB4OUYwMDAzMDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX05FWFRfVE9QX1ZBTFVFXyA9IDB4RTg5NjAzMDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIFNPUlRfQ0FTRV9CWVRFX1NUQVJUXyA9IChieXRlKTB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBTT1JUX0NBU0VfU0hJRlRfU1RBUlRfID0gKGJ5dGUpNzsKKworICAgIC8qKgorICAgICAqIENFIGJ1ZmZlciBzaXplCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0JVRkZFUl9TSVpFXyA9IDUxMjsKKworICAgIC8vIHZhcmlhYmxlcyBmb3IgTGF0aW4tMSBwcm9jZXNzaW5nCisgICAgYm9vbGVhbiBsYXRpbk9uZVVzZV8gICAgICAgID0gZmFsc2U7CisgICAgYm9vbGVhbiBsYXRpbk9uZVJlZ2VuVGFibGVfID0gZmFsc2U7CisgICAgYm9vbGVhbiBsYXRpbk9uZUZhaWxlZF8gICAgID0gZmFsc2U7CisKKyAgICBpbnQgbGF0aW5PbmVUYWJsZUxlbl8gPSAwOworICAgIGludCBsYXRpbk9uZUNFc19bXSA9IG51bGw7CisgICAgLyoqCisgICAgICogQnVuY2ggb2YgdXRpbGl0eSBpdGVyYXRvcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvciBtX3NyY1V0aWxJdGVyXzsKKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX3NyY1V0aWxDb2xFSXRlcl87CisgICAgcHJpdmF0ZSBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IgbV90Z3RVdGlsSXRlcl87CisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV90Z3RVdGlsQ29sRUl0ZXJfOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgY29tcGFyaXNvbiBmbGFncworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlMF87CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmUxXzsKKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTJfOworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlM187CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmU0XzsKKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTVfOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgYnl0ZSBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXMwX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczFfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzMl9bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXMzX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczRfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzNV9bXTsKKyAgICBwcml2YXRlIFJhd0NvbGxhdGlvbktleSBtX3V0aWxSYXdDb2xsYXRpb25LZXlfOworCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDBfOworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQxXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50Ml87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDNfOworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQ0XzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50NV87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQwXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDFfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50Ml87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQzXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDRfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50NV87CisKKyAgICBwcml2YXRlIGludCBtX3V0aWxGcmVuY2hTdGFydF87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsRnJlbmNoRW5kXzsKKworICAgIC8qKgorICAgICAqIFByZXBhcmluZyB0aGUgQ0UgYnVmZmVycy4gd2lsbCBiZSBmaWxsZWQgZHVyaW5nIHRoZSBwcmltYXJ5IHBoYXNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsQ0VCdWZmZXJfW107CisgICAgcHJpdmF0ZSBpbnQgbV90Z3RVdGlsQ0VCdWZmZXJfW107CisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXzsKKyAgICBwcml2YXRlIGludCBtX3RndFV0aWxDRUJ1ZmZlclNpemVfOworCisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsQ29udE9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV90Z3RVdGlsQ29udE9mZnNldF87CisKKyAgICBwcml2YXRlIGludCBtX3NyY1V0aWxPZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fdGd0VXRpbE9mZnNldF87CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoU3RyaW5nIHJ1bGVzKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBzZXRXaXRoVUNBRGF0YSgpOworICAgICAgICBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlciBidWlsZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlcihydWxlcyk7CisgICAgICAgIGJ1aWxkZXIuc2V0UnVsZXModGhpcyk7CisgICAgICAgIG1fcnVsZXNfID0gcnVsZXM7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgaW5pdFV0aWxpdHkoZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGludCBjb21wYXJlUmVndWxhcihTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGlmIChtX3NyY1V0aWxJdGVyXyA9PSBudWxsKSB7CisgICAgICAgICAgICBpbml0VXRpbGl0eSh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RyZW5ndGggPSBnZXRTdHJlbmd0aCgpOworICAgICAgICAvLyBzZXR0aW5nIHVwIHRoZSBjb2xsYXRvciBwYXJhbWV0ZXJzCisgICAgICAgIG1fdXRpbENvbXBhcmUwXyA9IG1faXNDYXNlTGV2ZWxfOworICAgICAgICBtX3V0aWxDb21wYXJlMV8gPSB0cnVlOworICAgICAgICBtX3V0aWxDb21wYXJlMl8gPSBzdHJlbmd0aCA+PSBTRUNPTkRBUlk7CisgICAgICAgIG1fdXRpbENvbXBhcmUzXyA9IHN0cmVuZ3RoID49IFRFUlRJQVJZOworICAgICAgICBtX3V0aWxDb21wYXJlNF8gPSBzdHJlbmd0aCA+PSBRVUFURVJOQVJZOworICAgICAgICBtX3V0aWxDb21wYXJlNV8gPSBzdHJlbmd0aCA9PSBJREVOVElDQUw7CisgICAgICAgIGJvb2xlYW4gZG9GcmVuY2ggPSBtX2lzRnJlbmNoQ29sbGF0aW9uXyAmJiBtX3V0aWxDb21wYXJlMl87CisgICAgICAgIGJvb2xlYW4gZG9TaGlmdDQgPSBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAmJiBtX3V0aWxDb21wYXJlNF87CisgICAgICAgIGJvb2xlYW4gZG9IaXJhZ2FuYTQgPSBtX2lzSGlyYWdhbmE0XyAmJiBtX3V0aWxDb21wYXJlNF87CisKKyAgICAgICAgaWYgKGRvSGlyYWdhbmE0ICYmIGRvU2hpZnQ0KSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlc3ViID0gc291cmNlLnN1YnN0cmluZyhvZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldHN1YiA9IHRhcmdldC5zdWJzdHJpbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlQnlTb3J0S2V5cyhzb3VyY2VzdWIsIHRhcmdldHN1Yik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBsb3dlc3QgcHJpbWFyeSB2YWx1ZSB0aGF0IHdpbGwgbm90IGJlIGlnbm9yZWQgaWYgc2hpZnRlZAorICAgICAgICBpbnQgbG93ZXN0cHZhbHVlID0gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBtX3ZhcmlhYmxlVG9wVmFsdWVfIDw8IDE2IDogMDsKKyAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBpbnQgcmVzdWx0ID0gZG9QcmltYXJ5Q29tcGFyZShkb0hpcmFnYW5hNCwgbG93ZXN0cHZhbHVlLCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCwgb2Zmc2V0KTsKKyAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gPT0gLTEKKyAgICAgICAgICAgICYmIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPT0gLTEpIHsKKyAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBjZWJ1ZmZlciBpcyBjbGVhcmVkIHdoZW4gd2UgaGF2ZSBkZXRlcm1pbmVkIHRoYXQKKyAgICAgICAgICAgIC8vIGVpdGhlciBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldCBvciB2aWNlIHZlcnNhLCB0aGUgcmV0dXJuCisgICAgICAgICAgICAvLyByZXN1bHQgaXMgdGhlIGNvbXBhcmlzb24gcmVzdWx0IGFuZCBub3QgdGhlIGhpcmFnYW5hIHJlc3VsdAorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBoaXJhZ2FuYXJlc3VsdCA9IHJlc3VsdDsKKworICAgICAgICBpZiAobV91dGlsQ29tcGFyZTJfKSB7CisgICAgICAgICAgICByZXN1bHQgPSBkb1NlY29uZGFyeUNvbXBhcmUoZG9GcmVuY2gpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBkb2luZyB0aGUgY2FzZSBiaXQKKyAgICAgICAgaWYgKG1fdXRpbENvbXBhcmUwXykgeworICAgICAgICAgICAgcmVzdWx0ID0gZG9DYXNlQ29tcGFyZSgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBUZXJ0aWFyeSBsZXZlbAorICAgICAgICBpZiAobV91dGlsQ29tcGFyZTNfKSB7CisgICAgICAgICAgICByZXN1bHQgPSBkb1RlcnRpYXJ5Q29tcGFyZSgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChkb1NoaWZ0NCkgeyAgLy8gY2hlY2tRdWFkCisgICAgICAgICAgICByZXN1bHQgPSBkb1F1YXRlcm5hcnlDb21wYXJlKGxvd2VzdHB2YWx1ZSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGRvSGlyYWdhbmE0ICYmIGhpcmFnYW5hcmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIC8vIElmIHdlJ3JlIGZpbmUgb24gcXVhdGVybmFyaWVzLCB3ZSBtaWdodCBiZSBkaWZmZXJlbnQKKyAgICAgICAgICAgIC8vIG9uIEhpcmFnYW5hLiBUaGlzLCBob3dldmVyLCBtaWdodCBmYWlsIHVzIGluIHNoaWZ0ZWQuCisgICAgICAgICAgICByZXR1cm4gaGlyYWdhbmFyZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBGb3IgSURFTlRJQ0FMIGNvbXBhcmlzb25zLCB3ZSB1c2UgYSBiaXR3aXNlIGNoYXJhY3RlciBjb21wYXJpc29uCisgICAgICAgIC8vIGFzIGEgdGllYnJlYWtlciBpZiBhbGwgZWxzZSBpcyBlcXVhbC4KKyAgICAgICAgLy8gR2V0dGluZyBoZXJlICBzaG91bGQgYmUgcXVpdGUgcmFyZSAtIHN0cmluZ3MgYXJlIG5vdCBpZGVudGljYWwgLQorICAgICAgICAvLyB0aGF0IGlzIGNoZWNrZWQgZmlyc3QsIGJ1dCBjb21wYXJlZCA9PSB0aHJvdWdoIGFsbCBvdGhlciBjaGVja3MuCisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlNV8pIHsKKyAgICAgICAgICAgIHJldHVybiBkb0lkZW50aWNhbENvbXBhcmUoc291cmNlLCB0YXJnZXQsIG9mZnNldCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgMiBieXRlcyBvZiBwcmltYXJ5IG9yZGVyIGFuZCBhZGRzIGl0IHRvIHRoZSBwcmltYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBub3RJc0NvbnRpbnVhdGlvbiBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGN1cnJlbnQgYnl0ZXMgYmVsb25nIHRvCisgICAgICogICAgICAgICAgYSBjb250aW51YXRpb24gY2UKKyAgICAgKiBAcGFyYW0gZG9TaGlmdCBmbGFnIGluZGljYXRpbmcgaWYgY2UgaXMgdG8gYmUgc2hpZnRlZAorICAgICAqIEBwYXJhbSBsZWFkUHJpbWFyeSBsZWFkIHByaW1hcnkgdXNlZCBmb3IgY29tcHJlc3Npb24KKyAgICAgKiBAcGFyYW0gY29tbW9uQm90dG9tNCBjb21tb24gYnl0ZSB2YWx1ZSBmb3IgUXVhdGVybmFyeQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgYnl0ZSB2YWx1ZSBmb3IgUXVhdGVybmFyeQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBsZWFkIHByaW1hcnkgZm9yIGNvbXByZXNzaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9QcmltYXJ5Qnl0ZXMoaW50IGNlLCBib29sZWFuIG5vdElzQ29udGludWF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZG9TaGlmdCwgaW50IGxlYWRQcmltYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21tb25Cb3R0b200LCBpbnQgYm90dG9tQ291bnQ0KQorICAgIHsKKworICAgICAgICBpbnQgcDIgPSAoY2UgPj49IDE2KSAmIExBU1RfQllURV9NQVNLXzsgLy8gaW4gaW50cyBmb3IgdW5zaWduZWQKKyAgICAgICAgaW50IHAxID0gY2UgPj4+IDg7ICAvLyBjb21wYXJpc29uCisgICAgICAgIGlmIChkb1NoaWZ0KSB7CisgICAgICAgICAgICBpZiAobV91dGlsQ291bnQ0XyA+IDApIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbUNvdW50NCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQgKyBib3R0b21Db3VudDQpKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDRfIC09IGJvdHRvbUNvdW50NDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoY29tbW9uQm90dG9tNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50NF8gLSAxKSkpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDRfID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGRlYWxpbmcgd2l0aCBhIHZhcmlhYmxlIGFuZCB3ZSdyZSB0cmVhdGluZyB0aGVtIGFzIHNoaWZ0ZWQKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzaGlmdGVkIGlnbm9yYWJsZQorICAgICAgICAgICAgaWYgKHAxICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNoZWNrIHRoaXMgc2luY2Ugd2UgY291bGQgYmUgaW4gY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHAyICE9IDApIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBOb3RlOiBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSB0YWJsZSBpcyB3ZWxsIGJ1aWx0CisgICAgICAgICAgICAvLyBpLmUuIG5vdCBoYXZpbmcgMCBieXRlcyB3aGVyZSB0aGV5IGFyZSBub3Qgc3VwcG9zZWQgdG8gYmUuCisgICAgICAgICAgICAvLyBVc3VhbGx5LCB3ZSdsbCBoYXZlIG5vbi16ZXJvIHByaW1hcnkxICYgcHJpbWFyeTIsIGV4Y2VwdAorICAgICAgICAgICAgLy8gaW4gY2FzZXMgb2YgTGF0aW5PbmUgYW5kIGZyaWVuZHMsIHdoZW4gcHJpbWFyeTIgd2lsbCBiZQorICAgICAgICAgICAgLy8gcmVndWxhciBhbmQgc2ltcGxlIHNvcnRrZXkgY2FsYworICAgICAgICAgICAgaWYgKHAxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICBpZiAobm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWRQcmltYXJ5ID09IHAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgKGJ5dGUpcDIpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWRQcmltYXJ5ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHAxID4gbGVhZFByaW1hcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gQllURV9VTlNISUZURURfTUFYXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEJZVEVfVU5TSElGVEVEX01JTl8pKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgYnl0ZXIsIG5vdCBjb21wcmVzc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkUHJpbWFyeSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChwMSA8IEJZVEVfRklSU1RfTk9OX0xBVElOX1BSSU1BUllfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAocDEgPiBtYXhSZWd1bGFyUHJpbWFyeQorICAgICAgICAgICAgICAgICAgICAvLz4gKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfTk9OX1ZBUklBQkxFX1swXQorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHAxIDwgbWluSW1wbGljaXRQcmltYXJ5CisgICAgICAgICAgICAgICAgICAgIC8vPCAoUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfSU1QTElDSVRfWzBdCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+PiAyNCkKKyAgICAgICAgICAgICAgICAgICAgKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgY29tcHJlc3NpYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBjb21wcmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5ID0gcDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgKGJ5dGUpcDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWF0aW9uLCBhZGQgcHJpbWFyeSB0byB0aGUga2V5LCBubyBjb21wcmVzc2lvbgorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHAyICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlYWRQcmltYXJ5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNlY29uZGFyeSBieXRlIGFuZCBhZGRzIGl0IHRvIHRoZSBzZWNvbmRhcnkgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIG5vdElzQ29udGludWF0aW9uIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY3VycmVudCBieXRlcyBiZWxvbmcgdG8KKyAgICAgKiAgICAgICAgICBhIGNvbnRpbnVhdGlvbiBjZQorICAgICAqIEBwYXJhbSBkb0ZyZW5jaCBmbGFnIGluZGljYXRvciBpZiBmcmVuY2ggc29ydCBpcyB0byBiZSBwZXJmb3JtZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9TZWNvbmRhcnlCeXRlcyhpbnQgY2UsIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb0ZyZW5jaCkKKyAgICB7CisgICAgICAgIGludCBzID0gKGNlID4+PSA4KSAmIExBU1RfQllURV9NQVNLXzsgLy8gaW50IGZvciBjb21wYXJpc29uCisgICAgICAgIGlmIChzICE9IDApIHsKKyAgICAgICAgICAgIGlmICghZG9GcmVuY2gpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGNvbXByZXNzaW9uIGNvZGUuCisgICAgICAgICAgICAgICAgaWYgKHMgPT0gQ09NTU9OXzJfICYmIG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPiBDT01NT05fMl8pIHsgLy8gbm90IG5lY2Vzc2FyeSBmb3IgNHRoIGxldmVsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDJfID4gVE9QX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8gLSBUT1BfQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IFRPUF9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IEJPVFRPTV9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IEJPVFRPTV9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sIG1fdXRpbEJ5dGVzQ291bnQyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLCBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXMpOworICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIHNwZWNpYWwgaGFuZGxpbmcgZm9yIEZyZW5jaCBzZWNvbmRhcmllcworICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnZXQgY29udGludWF0aW9uIGVsZW1lbnRzIGFuZCBkbyBpbnRlcm1lZGlhdGUKKyAgICAgICAgICAgICAgICAgIC8vIHJlc3RvcmUKKyAgICAgICAgICAgICAgICAgIC8vIGFiYzFjMmMzZGUgd2l0aCBmcmVuY2ggc2Vjb25kYXJpZXMgbmVlZCB0byBiZSBlZGMxYzJjM2JhCisgICAgICAgICAgICAgICAgICAvLyBOT1QgZWRjM2MyYzFiYQorICAgICAgICAgICAgICAgICAgaWYgKG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV91dGlsRnJlbmNoU3RhcnRfICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV2ZXJzZSBzZWNvbmRhcmllcyBmcm9tIGZyZW5jaFN0YXJ0UHRyIHVwIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJlbmNoRW5kUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZUJ1ZmZlcihtX3V0aWxCeXRlczJfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxGcmVuY2hTdGFydF8gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdXRpbEZyZW5jaFN0YXJ0XyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEZyZW5jaFN0YXJ0XyAgPSBtX3V0aWxCeXRlc0NvdW50Ml8gLSAyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRnJlbmNoRW5kXyA9IG1fdXRpbEJ5dGVzQ291bnQyXyAtIDE7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXZlcnNlIHRoZSBhcmd1bWVudCBidWZmZXIKKyAgICAgKiBAcGFyYW0gYnVmZmVyIHRvIHJldmVyc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmV2ZXJzZUJ1ZmZlcihieXRlIGJ1ZmZlcltdKQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gbV91dGlsRnJlbmNoU3RhcnRfOworICAgICAgICBpbnQgZW5kID0gbV91dGlsRnJlbmNoRW5kXzsKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kKSB7CisgICAgICAgICAgICBieXRlIGIgPSBidWZmZXJbc3RhcnRdOworICAgICAgICAgICAgYnVmZmVyW3N0YXJ0ICsrXSA9IGJ1ZmZlcltlbmRdOworICAgICAgICAgICAgYnVmZmVyW2VuZCAtLV0gPSBiOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBjYXNlIHNoaWZ0aW5nIGJ5dGUgaWYgcmVxdWlyZWQKKyAgICAgKiBAcGFyYW0gY2FzZXNoaWZ0IHZhbHVlCisgICAgICogQHJldHVybiBuZXcgY2FzZXNoaWZ0IHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9DYXNlU2hpZnQoaW50IGNhc2VzaGlmdCkKKyAgICB7CisgICAgICAgIGlmIChjYXNlc2hpZnQgID09IDApIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF8gPSBhcHBlbmQobV91dGlsQnl0ZXMwXywgbV91dGlsQnl0ZXNDb3VudDBfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0NBU0VfQllURV9TVEFSVF8pOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDBfICsrOworICAgICAgICAgICAgY2FzZXNoaWZ0ID0gU09SVF9DQVNFX1NISUZUX1NUQVJUXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2FzZXNoaWZ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIHRoZSBjYXNpbmcgc29ydAorICAgICAqIEBwYXJhbSB0ZXJ0aWFyeSBieXRlIGluIGludHMgZm9yIGVhc3kgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBub3RJc0NvbnRpbnVhdGlvbiBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGN1cnJlbnQgYnl0ZXMgYmVsb25nIHRvCisgICAgICogICAgICAgICAgYSBjb250aW51YXRpb24gY2UKKyAgICAgKiBAcGFyYW0gY2FzZXNoaWZ0CisgICAgICogQHJldHVybiB0aGUgbmV3IHZhbHVlIG9mIGNhc2Ugc2hpZnQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb0Nhc2VCeXRlcyhpbnQgdGVydGlhcnksIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNhc2VzaGlmdCkKKyAgICB7CisgICAgICAgIGNhc2VzaGlmdCA9IGRvQ2FzZVNoaWZ0KGNhc2VzaGlmdCk7CisKKyAgICAgICAgaWYgKG5vdElzQ29udGludWF0aW9uICYmIHRlcnRpYXJ5ICE9IDApIHsKKyAgICAgICAgICAgIGJ5dGUgY2FzZWJpdHMgPSAoYnl0ZSkodGVydGlhcnkgJiAweEMwKTsKKyAgICAgICAgICAgIGlmIChtX2Nhc2VGaXJzdF8gPT0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfKSB7CisgICAgICAgICAgICAgICAgaWYgKGNhc2ViaXRzID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMwX1ttX3V0aWxCeXRlc0NvdW50MF8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKDEgPDwgKC0tIGNhc2VzaGlmdCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBiaXQKKyAgICAgICAgICAgICAgICAgICAgIGNhc2VzaGlmdCA9IGRvQ2FzZVNoaWZ0KGNhc2VzaGlmdCAtIDEpOworICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMwX1ttX3V0aWxCeXRlc0NvdW50MF8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKChjYXNlYml0cyA+PiA2KSAmIDEpIDw8ICgtLSBjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjYXNlYml0cyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF9bbV91dGlsQnl0ZXNDb3VudDBfIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gMSA8PCAoLS0gY2FzZXNoaWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2Vjb25kIGJpdAorICAgICAgICAgICAgICAgICAgICBjYXNlc2hpZnQgPSBkb0Nhc2VTaGlmdChjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczBfW21fdXRpbEJ5dGVzQ291bnQwXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKChjYXNlYml0cyA+PiA3KSAmIDEpIDw8ICgtLSBjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZXNoaWZ0IC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjYXNlc2hpZnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGVydGlhcnkgYnl0ZSBhbmQgYWRkcyBpdCB0byB0aGUgdGVydGlhcnkgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSB0ZXJ0aWFyeSBieXRlIGluIGludCBmb3IgZWFzeSBjb21wYXJpc29uCisgICAgICogQHBhcmFtIG5vdElzQ29udGludWF0aW9uIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY3VycmVudCBieXRlcyBiZWxvbmcgdG8KKyAgICAgKiAgICAgICAgICBhIGNvbnRpbnVhdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1RlcnRpYXJ5Qnl0ZXMoaW50IHRlcnRpYXJ5LCBib29sZWFuIG5vdElzQ29udGludWF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKHRlcnRpYXJ5ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgY29tcHJlc3Npb24gY29kZS4KKyAgICAgICAgICAgIC8vIHNlcXVlbmNlIHNpemUgY2hlY2sgaXMgaW5jbHVkZWQgaW4gdGhlIGlmIGNsYXVzZQorICAgICAgICAgICAgaWYgKHRlcnRpYXJ5ID09IG1fY29tbW9uM18gJiYgbm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBjb21tb24zID0gbV9jb21tb24zXyAmIExBU1RfQllURV9NQVNLXzsKKyAgICAgICAgICAgICAgICBpZiAodGVydGlhcnkgPiBjb21tb24zICYmIG1fY29tbW9uM18gPT0gQ09NTU9OX05PUk1BTF8zXykgeworICAgICAgICAgICAgICAgICAgICB0ZXJ0aWFyeSArPSBtX2FkZGl0aW9uM187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlcnRpYXJ5IDw9IGNvbW1vbjMKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbW1vbjNfID09IENPTU1PTl9VUFBFUl9GSVJTVF8zXykgeworICAgICAgICAgICAgICAgICAgICB0ZXJ0aWFyeSAtPSBtX2FkZGl0aW9uM187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDNfID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVydGlhcnkgPiBjb21tb24zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQzXyA+IG1fdG9wQ291bnQzXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fdG9wM18gLSBtX3RvcENvdW50M18pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyAtPSBtX3RvcENvdW50M187CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fdG9wM18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gKG1fdXRpbENvdW50M18gLSAxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50M18gPiBtX2JvdHRvbUNvdW50M18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfICsgbV9ib3R0b21Db3VudDNfKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50M18gLT0gbV9ib3R0b21Db3VudDNfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDNfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDNfID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLCBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSl0ZXJ0aWFyeSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgUXVhdGVybmFyeSBieXRlIGFuZCBhZGRzIGl0IHRvIHRoZSBRdWF0ZXJuYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gaXNDb2RlUG9pbnRIaXJhZ2FuYSBmbGFnIGluZGljYXRvciBpZiB0aGUgcHJldmlvdXMgY29kZXBvaW50CisgICAgICogICAgICAgICAgd2UgZGVhbHQgd2l0aCB3YXMgSGlyYWdhbmEKKyAgICAgKiBAcGFyYW0gY29tbW9uQm90dG9tNCBzbWFsbGVzdCBjb21tb24gUXVhdGVybmFyeSBieXRlCisgICAgICogQHBhcmFtIGJvdHRvbUNvdW50NCBzbWFsbGVzdCBRdWF0ZXJuYXJ5IGJ5dGUKKyAgICAgKiBAcGFyYW0gaGlyYWdhbmE0IGhpcmFnYW5hIFF1YXRlcm5hcnkgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1F1YXRlcm5hcnlCeXRlcyhib29sZWFuIGlzQ29kZVBvaW50SGlyYWdhbmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21tb25Cb3R0b200LCBpbnQgYm90dG9tQ291bnQ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIGhpcmFnYW5hNCkKKyAgICB7CisgICAgICAgIGlmIChpc0NvZGVQb2ludEhpcmFnYW5hKSB7IC8vIFRoaXMgd2FzIEhpcmFnYW5hLCBuZWVkIHRvIG5vdGUgaXQKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDRfID4gMCkgeyAvLyBDbG9zZSB0aGlzIHBhcnQKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbUNvdW50NCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoY29tbW9uQm90dG9tNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJvdHRvbUNvdW50NCkpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50NF8gLT0gYm90dG9tQ291bnQ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50NF8gLSAxKSkpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDRfID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXJhZ2FuYTQpOyAvLyBBZGQgdGhlIEhpcmFnYW5hCisgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIFRoaXMgd2Fzbid0IEhpcmFnYW5hLCBzbyB3ZSBjYW4gY29udGludWUgYWRkaW5nIHN0dWZmCisgICAgICAgICAgICBtX3V0aWxDb3VudDRfICsrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgYXJndW1lbnQgc3RyaW5nIGZvciBhbGwgY2VzLgorICAgICAqIFNwbGl0IHRoZSBjZXMgaW50byB0aGVpciByZWxldmFudCBwcmltYXJpZXMsIHNlY29uZGFyaWVzIGV0Yy4KKyAgICAgKiBAcGFyYW0gc291cmNlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHBhcmFtIGRvRnJlbmNoIGZsYWcgaW5kaWNhdG9yIGlmIHNwZWNpYWwgaGFuZGxpbmcgb2YgRnJlbmNoIGhhcyB0byBiZQorICAgICAqICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAqIEBwYXJhbSBoaXJhZ2FuYTQgb2Zmc2V0IGZvciBIaXJhZ2FuYSBxdWF0ZXJuYXJ5CisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgc21hbGxlc3QgY29tbW9uIHF1YXRlcm5hcnkgYnl0ZQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgcXVhdGVybmFyeSBieXRlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGdldFNvcnRLZXlCeXRlcyhTdHJpbmcgc291cmNlLCBib29sZWFuIGRvRnJlbmNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBoaXJhZ2FuYTQsIGludCBjb21tb25Cb3R0b200LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJvdHRvbUNvdW50NCkKKworICAgIHsKKyAgICAgICAgaWYgKG1fc3JjVXRpbEl0ZXJfID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXRVdGlsaXR5KHRydWUpOworICAgICAgICB9CisgICAgICAgIGludCBiYWNrdXBEZWNvbXBvc2l0aW9uID0gZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICBzZXREZWNvbXBvc2l0aW9uKE5PX0RFQ09NUE9TSVRJT04pOyAvLyBoYXZlIHRvIHJldmVydCB0byBiYWNrdXAgbGF0ZXIKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8uc2V0VGV4dChzb3VyY2UpOworICAgICAgICBtX3NyY1V0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3NyY1V0aWxJdGVyXyk7CisgICAgICAgIG1fdXRpbEZyZW5jaFN0YXJ0XyA9IC0xOworICAgICAgICBtX3V0aWxGcmVuY2hFbmRfID0gLTE7CisKKyAgICAgICAgLy8gc2NyaXB0b3JkZXIgbm90IGltcGxlbWVudGVkIHlldAorICAgICAgICAvLyBjb25zdCB1aW50OF90ICpzY3JpcHRPcmRlciA9IGNvbGwtPnNjcmlwdE9yZGVyOworCisgICAgICAgIGJvb2xlYW4gZG9TaGlmdCA9IGZhbHNlOworICAgICAgICBib29sZWFuIG5vdElzQ29udGludWF0aW9uID0gZmFsc2U7CisKKyAgICAgICAgaW50IGxlYWRQcmltYXJ5ID0gMDsgLy8gaW50IGZvciBlYXNpZXIgY29tcGFyaXNvbgorICAgICAgICBpbnQgY2FzZVNoaWZ0ID0gMDsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGNlID0gbV9zcmNVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5vdElzQ29udGludWF0aW9uID0gIWlzQ29udGludWF0aW9uKGNlKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGlmIChub3RJc0NvbnRpbnVhdGlvbikgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0T3JkZXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeTEgPSBzY3JpcHRPcmRlcltwcmltYXJ5MV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Ki8KKyAgICAgICAgICAgIGJvb2xlYW4gaXNQcmltYXJ5Qnl0ZUlnbm9yYWJsZSA9IChjZSAmIENFX1BSSU1BUllfTUFTS18pID09IDA7CisgICAgICAgICAgICAvLyBhY3R1YWxseSB3ZSBjYW4ganVzdCBjaGVjayB0aGF0IHRoZSBmaXJzdCBieXRlIGlzIDAKKyAgICAgICAgICAgIC8vIGdlbmVyYXRpb24gc3R1ZmZzIHRoZSBvcmRlciBsZWZ0IGZpcnN0CisgICAgICAgICAgICBib29sZWFuIGlzU21hbGxlclRoYW5WYXJpYWJsZVRvcCA9IChjZSA+Pj4gQ0VfUFJJTUFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9IG1fdmFyaWFibGVUb3BWYWx1ZV87CisgICAgICAgICAgICBkb1NoaWZ0ID0gKG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAoKG5vdElzQ29udGludWF0aW9uICYmIGlzU21hbGxlclRoYW5WYXJpYWJsZVRvcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFpc1ByaW1hcnlCeXRlSWdub3JhYmxlKSAvLyBwcmltYXJ5IGJ5dGUgbm90IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8ICghbm90SXNDb250aW51YXRpb24gJiYgZG9TaGlmdCkpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAoZG9TaGlmdCAmJiBpc1ByaW1hcnlCeXRlSWdub3JhYmxlKSk7CisgICAgICAgICAgICBpZiAoZG9TaGlmdCAmJiBpc1ByaW1hcnlCeXRlSWdub3JhYmxlKSB7CisgICAgICAgICAgICAgICAgLy8gYW1lbmRtZW50IHRvIHRoZSBVQ0Egc2F5cyB0aGF0IHByaW1hcnkgaWdub3JhYmxlcyBhbmQgb3RoZXIKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmFibGVzIHNob3VsZCBiZSByZW1vdmVkIGlmIGZvbGxvd2luZyBhIHNoaWZ0ZWQgY29kZQorICAgICAgICAgICAgICAgIC8vIHBvaW50CisgICAgICAgICAgICAgICAgLy8gaWYgd2Ugd2VyZSBzaGlmdGVkIGFuZCB3ZSBnb3QgYW4gaWdub3JhYmxlIGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICAvLyB3ZSBzaG91bGQganVzdCBjb21wbGV0ZWx5IGlnbm9yZSBpdAorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGVhZFByaW1hcnkgPSBkb1ByaW1hcnlCeXRlcyhjZSwgbm90SXNDb250aW51YXRpb24sIGRvU2hpZnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5LCBjb21tb25Cb3R0b200LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21Db3VudDQpOworICAgICAgICAgICAgaWYgKGRvU2hpZnQpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMl8pIHsKKyAgICAgICAgICAgICAgICBkb1NlY29uZGFyeUJ5dGVzKGNlLCBub3RJc0NvbnRpbnVhdGlvbiwgZG9GcmVuY2gpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgdCA9IGNlICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgaWYgKCFub3RJc0NvbnRpbnVhdGlvbikgeworICAgICAgICAgICAgICAgIHQgPSBjZSAmIENFX1JFTU9WRV9DT05USU5VQVRJT05fTUFTS187CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMF8gJiYgKCFpc1ByaW1hcnlCeXRlSWdub3JhYmxlIHx8IG1fdXRpbENvbXBhcmUyXykpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyB0aGUgY2FzZSBsZXZlbCBpZiB3ZSBuZWVkIHRvIGRvIGl0LiBXZSBkb24ndCB3YW50IHRvIGNhbGN1bGF0ZQorICAgICAgICAgICAgICAgIC8vIGNhc2UgbGV2ZWwgZm9yIHByaW1hcnkgaWdub3JhYmxlcyBpZiB3ZSBoYXZlIG9ubHkgcHJpbWFyeSBzdHJlbmd0aCBhbmQgY2FzZSBsZXZlbAorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSB3b3VsZCBicmVhayB3ZWxsIGZvcm1lZG5lc3Mgb2YgQ0VzIAorICAgICAgICAgICAgICAgIGNhc2VTaGlmdCA9IGRvQ2FzZUJ5dGVzKHQsIG5vdElzQ29udGludWF0aW9uLCBjYXNlU2hpZnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgdCBePSBtX2Nhc2VTd2l0Y2hfOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ICY9IG1fbWFzazNfOworCisgICAgICAgICAgICBpZiAobV91dGlsQ29tcGFyZTNfKSB7CisgICAgICAgICAgICAgICAgZG9UZXJ0aWFyeUJ5dGVzKHQsIG5vdElzQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmU0XyAmJiBub3RJc0NvbnRpbnVhdGlvbikgeyAvLyBjb21wYXJlIHF1YWQKKyAgICAgICAgICAgICAgICBkb1F1YXRlcm5hcnlCeXRlcyhtX3NyY1V0aWxDb2xFSXRlcl8ubV9pc0NvZGVQb2ludEhpcmFnYW5hXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25Cb3R0b200LCBib3R0b21Db3VudDQsIGhpcmFnYW5hNCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2V0RGVjb21wb3NpdGlvbihiYWNrdXBEZWNvbXBvc2l0aW9uKTsgLy8gcmV2ZXJ0cyB0byBvcmlnaW5hbAorICAgICAgICBpZiAobV91dGlsRnJlbmNoU3RhcnRfICE9IC0xKSB7CisgICAgICAgICAgICAvLyBvbmUgbGFzdCByb3VuZCBvZiBjaGVja3MKKyAgICAgICAgICAgIHJldmVyc2VCdWZmZXIobV91dGlsQnl0ZXMyXyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGcm9tIHRoZSBpbmRpdmlkdWFsIHN0cmVuZ3RoIGJ5dGUgcmVzdWx0cyB0aGUgZmluYWwgY29tcGFjdCBzb3J0a2V5CisgICAgICogd2lsbCBiZSBjYWxjdWxhdGVkLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gZG9GcmVuY2ggZmxhZyBpbmRpY2F0aW5nIHRoYXQgc3BlY2lhbCBoYW5kbGluZyBvZiBGcmVuY2ggaGFzIHRvCisgICAgICogICAgICAgICAgICAgICAgICBiZSBkb25lCisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgc21hbGxlc3QgY29tbW9uIHF1YXRlcm5hcnkgYnl0ZQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgcXVhdGVybmFyeSBieXRlCisgICAgICogQHBhcmFtIGtleSBvdXRwdXQgUmF3Q29sbGF0aW9uS2V5IHRvIHN0b3JlIHJlc3VsdHMsIGtleSBjYW5ub3QgYmUgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBnZXRTb3J0S2V5KFN0cmluZyBzb3VyY2UsIGJvb2xlYW4gZG9GcmVuY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tbW9uQm90dG9tNCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYm90dG9tQ291bnQ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSkKKyAgICB7CisgICAgICAgIC8vIHdlIGhhdmUgZG9uZSBhbGwgdGhlIENFJ3MsIG5vdyBsZXQncyBwdXQgdGhlbSB0b2dldGhlciB0byBmb3JtCisgICAgICAgIC8vIGEga2V5CisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMl8pIHsKKyAgICAgICAgICAgIGRvU2Vjb25kYXJ5KGRvRnJlbmNoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhZGRpbmcgY2FzZSBsZXZlbCBzaG91bGQgYmUgaW5kZXBlbmRlbnQgb2Ygc2Vjb25kYXJ5IGxldmVsCisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMF8pIHsKKyAgICAgICAgICAgIGRvQ2FzZSgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlM18pIHsKKyAgICAgICAgICAgIGRvVGVydGlhcnkoKTsKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlNF8pIHsKKyAgICAgICAgICAgICAgICBkb1F1YXRlcm5hcnkoY29tbW9uQm90dG9tNCwgYm90dG9tQ291bnQ0KTsKKyAgICAgICAgICAgICAgICBpZiAobV91dGlsQ29tcGFyZTVfKSB7CisgICAgICAgICAgICAgICAgICAgIGRvSWRlbnRpY2FsKHNvdXJjZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKTApOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisKKyAgICAgICAga2V5LnNldChtX3V0aWxCeXRlczFfLCAwLCBtX3V0aWxCeXRlc0NvdW50MV8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2tzIHRoZSBGcmVuY2ggYnl0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9GcmVuY2goKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3V0aWxCeXRlc0NvdW50Ml87IGkgKyspIHsKKyAgICAgICAgICAgIGJ5dGUgcyA9IG1fdXRpbEJ5dGVzMl9bbV91dGlsQnl0ZXNDb3VudDJfIC0gaSAtIDFdOworICAgICAgICAgICAgLy8gVGhpcyBpcyBjb21wcmVzc2lvbiBjb2RlLgorICAgICAgICAgICAgaWYgKHMgPT0gQ09NTU9OXzJfKSB7CisgICAgICAgICAgICAgICAgKysgbV91dGlsQ291bnQyXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHRoZSB1bnNpZ25lZCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICBpZiAoKHMgJiBMQVNUX0JZVEVfTUFTS18pID4gQ09NTU9OXzJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgbmVjZXNzYXJ5IGZvciA0dGggbGV2ZWwuCisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IFRPUF9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX1RPUF8yXyAtIFRPUF9DT1VOVF8yXykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IFRPUF9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX1RPUF8yXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAobV91dGlsQ291bnQyXyAtIDEpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IEJPVFRPTV9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyAtPSBCT1RUT01fQ09VTlRfMl87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50Ml8gLSAxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50Ml8gPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywgcyk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50Ml8gPiBCT1RUT01fQ09VTlRfMl8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShDT01NT05fQk9UVE9NXzJfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyAtPSBCT1RUT01fQ09VTlRfMl87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3RzIHRoZSBzZWNvbmRhcnkgYnl0ZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gdGhlIHByaW1hcnkgYXJyYXkKKyAgICAgKiBAcGFyYW0gZG9GcmVuY2ggZmxhZyBpbmRpY2F0b3IgdGhhdCBGcmVuY2ggaGFzIHRvIGJlIGhhbmRsZWQgc3BlY2lhbGx5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGRvU2Vjb25kYXJ5KGJvb2xlYW4gZG9GcmVuY2gpCisgICAgeworICAgICAgICBpZiAobV91dGlsQ291bnQyXyA+IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDJfID4gQk9UVE9NX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLCBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEJPVFRPTV9DT1VOVF8yXykpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyArKzsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IEJPVFRPTV9DT1VOVF8yXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1fdXRpbENvdW50Ml8gLSAxKSkpOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICB9CisKKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9MRVZFTF9URVJNSU5BVE9SXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKworICAgICAgICBpZiAoZG9GcmVuY2gpIHsgLy8gZG8gdGhlIHJldmVyc2UgY29weQorICAgICAgICAgICAgZG9GcmVuY2goKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG1fdXRpbEJ5dGVzQ291bnQyXykgeworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzMl8sIDAsIG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgbV91dGlsQnl0ZXNDb3VudDJfKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArPSBtX3V0aWxCeXRlc0NvdW50Ml87CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZWFzZSBidWZmZXIgc2l6ZQorICAgICAqIEBwYXJhbSBidWZmZXIgYXJyYXkgb2YgYnl0ZXMKKyAgICAgKiBAcGFyYW0gc2l6ZSBvZiB0aGUgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSBpbmNyZW1lbnRzaXplIHNpemUgdG8gaW5jcmVhc2UKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGluY3JlYXNlKGJ5dGUgYnVmZmVyW10sIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5jcmVtZW50c2l6ZSkKKyAgICB7CisgICAgICAgIGJ5dGUgcmVzdWx0W10gPSBuZXcgYnl0ZVtidWZmZXIubGVuZ3RoICsgaW5jcmVtZW50c2l6ZV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCAwLCByZXN1bHQsIDAsIHNpemUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEluY3JlYXNlIGJ1ZmZlciBzaXplCisgICAgICogQHBhcmFtIGJ1ZmZlciBhcnJheSBvZiBpbnRzCisgICAgICogQHBhcmFtIHNpemUgb2YgdGhlIGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50c2l6ZSBzaXplIHRvIGluY3JlYXNlCisgICAgICogQHJldHVybiB0aGUgbmV3IGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGluY3JlYXNlKGludCBidWZmZXJbXSwgaW50IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluY3JlbWVudHNpemUpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0W10gPSBuZXcgaW50W2J1ZmZlci5sZW5ndGggKyBpbmNyZW1lbnRzaXplXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIHJlc3VsdCwgMCwgc2l6ZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFjdHMgdGhlIGNhc2UgYnl0ZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gdGhlIHByaW1hcnkgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9DYXNlKCkKKyAgICB7CisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgIGlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8gKyBtX3V0aWxCeXRlc0NvdW50MF8pIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDBfKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzMF8sIDAsIG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MF8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKz0gbV91dGlsQnl0ZXNDb3VudDBfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3RzIHRoZSB0ZXJ0aWFyeSBieXRlcyBhbmQgc3RvcmVzIHRoZW0gaW50byB0aGUgcHJpbWFyeSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1RlcnRpYXJ5KCkKKyAgICB7CisgICAgICAgIGlmIChtX3V0aWxDb3VudDNfID4gMCkgeworICAgICAgICAgICAgaWYgKG1fY29tbW9uM18gIT0gQ09NTU9OX0JPVFRPTV8zXykgeworICAgICAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDNfID49IG1fdG9wQ291bnQzXykgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkobV90b3AzXyAtIG1fdG9wQ291bnQzXykpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50M18gLT0gbV90b3BDb3VudDNfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX3RvcDNfIC0gbV91dGlsQ291bnQzXykpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDNfID4gbV9ib3R0b21Db3VudDNfKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbV9ib3R0b21Db3VudDNfKSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyAtPSBtX2JvdHRvbUNvdW50M187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fYm90dG9tM18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDNfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9MRVZFTF9URVJNSU5BVE9SXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgaWYgKG1fdXRpbEJ5dGVzMV8ubGVuZ3RoIDw9IG1fdXRpbEJ5dGVzQ291bnQxXyArIG1fdXRpbEJ5dGVzQ291bnQzXykgeworICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGluY3JlYXNlKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18pOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV91dGlsQnl0ZXMzXywgMCwgbV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArPSBtX3V0aWxCeXRlc0NvdW50M187CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFjdHMgdGhlIHF1YXRlcm5hcnkgYnl0ZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gdGhlIHByaW1hcnkgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9RdWF0ZXJuYXJ5KGludCBjb21tb25ib3R0b200LCBpbnQgYm90dG9tY291bnQ0KQorICAgIHsKKyAgICAgICAgaWYgKG1fdXRpbENvdW50NF8gPiAwKSB7CisgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbWNvdW50NCkgeworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbmJvdHRvbTQgKyBib3R0b21jb3VudDQpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQ0XyAtPSBib3R0b21jb3VudDQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbmJvdHRvbTQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50NF8gLSAxKSkpOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICB9CisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgIGlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8gKyBtX3V0aWxCeXRlc0NvdW50NF8pIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzNF8sIDAsIG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKz0gbV91dGlsQnl0ZXNDb3VudDRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlYWxzIHdpdGggdGhlIGlkZW50aWNhbCBzb3J0LgorICAgICAqIEFwcGVuZHMgdGhlIEJPQ1NVIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBzdHJpbmcgdG8gdGhlIGVuZHMgb2YgdGhlCisgICAgICogYnl0ZSBidWZmZXIuCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb0lkZW50aWNhbChTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgaW50IGlzaXplID0gQk9DVS5nZXRDb21wcmVzc2lvbkxlbmd0aChzb3VyY2UpOworICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICBpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfICsgaXNpemUpIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIGlzaXplKTsKKyAgICAgICAgfQorICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gPSBCT0NVLmNvbXByZXNzKHNvdXJjZSwgbV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlcnMgaW4gc291cmNlIGFuZCB0YXJnZXQuCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiBhIGNvbnRyYWN0aW9uIG9yIGEKKyAgICAgKiBjb21iaW5pbmcgc2VxdWVuY2UsIGlmIHRoZSBmaXJzdCBkaWZmZXJlbmNlIGlzIGluIHRoZSBtaWRkbGUgb2Ygc3VjaCBhCisgICAgICogc2VxdWVuY2UuCisgICAgICogQHBhcmFtIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZworICAgICAqIEByZXR1cm4gb2Zmc2V0IG9mIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVycyBpbiBzb3VyY2UgYW5kIHRhcmdldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRGaXJzdFVubWF0Y2hlZE9mZnNldChTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBzbGVuZ3RoID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdGxlbmd0aCA9IHRhcmdldC5sZW5ndGgoKTsKKyAgICAgICAgaW50IG1pbmxlbmd0aCA9IHNsZW5ndGg7CisgICAgICAgIGlmIChtaW5sZW5ndGggPiB0bGVuZ3RoKSB7CisgICAgICAgICAgICBtaW5sZW5ndGggPSB0bGVuZ3RoOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChyZXN1bHQgPCBtaW5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBzb3VyY2UuY2hhckF0KHJlc3VsdCkgPT0gdGFyZ2V0LmNoYXJBdChyZXN1bHQpKSB7CisgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCA+IDApIHsKKyAgICAgICAgICAgIC8vIFRoZXJlIGlzIGFuIGlkZW50aWNhbCBwb3J0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHR3bworICAgICAgICAgICAgLy8gc3RyaW5ncy4gSWYgdGhlIGlkZW50aWNhbCBwb3J0aW9uIGVuZHMgd2l0aGluIGEgY29udHJhY3Rpb24gb3IgYQorICAgICAgICAgICAgLy8gY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZSwgYmFjayB1cCB0byB0aGUgc3RhcnQgb2YgdGhhdAorICAgICAgICAgICAgLy8gc2VxdWVuY2UuCisgICAgICAgICAgICBjaGFyIHNjaGFyID0gMDsKKyAgICAgICAgICAgIGNoYXIgdGNoYXIgPSAwOworICAgICAgICAgICAgaWYgKHJlc3VsdCA8IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHNjaGFyID0gc291cmNlLmNoYXJBdChyZXN1bHQpOyAvLyBmaXJzdCBkaWZmZXJpbmcgY2hhcnMKKyAgICAgICAgICAgICAgICB0Y2hhciA9IHRhcmdldC5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNjaGFyID0gc291cmNlLmNoYXJBdChtaW5sZW5ndGggLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRjaGFyID0gc2NoYXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNsZW5ndGggPT0gdGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoc2xlbmd0aCA8IHRsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGNoYXIgPSB0YXJnZXQuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzY2hhciA9IHNvdXJjZS5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNVbnNhZmUoc2NoYXIpIHx8IGlzVW5zYWZlKHRjaGFyKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBhcmUgc3RvcHBlZCBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24gb3IgY29tYmluaW5nCisgICAgICAgICAgICAgICAgLy8gc2VxdWVuY2UuCisgICAgICAgICAgICAgICAgLy8gTG9vayBiYWNrd2FyZHMgZm9yIHRoZSBwYXJ0IG9mIHRoZSBzdHJpbmcgZm9yIHRoZSBzdGFydCBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBzZXF1ZW5jZQorICAgICAgICAgICAgICAgIC8vIEl0IGRvZXNuJ3QgbWF0dGVyIHdoaWNoIHN0cmluZyB3ZSBzY2FuLCBzaW5jZSB0aGV5IGFyZSB0aGUKKyAgICAgICAgICAgICAgICAvLyBzYW1lIGluIHRoaXMgcmVnaW9uLgorICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0IC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAocmVzdWx0ID4gMCAmJiBpc1Vuc2FmZShzb3VyY2UuY2hhckF0KHJlc3VsdCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZGluZyBhbiBieXRlIHRvIGFuIGFycmF5IG9mIGJ5dGVzIGFuZCBpbmNyZWFzZXMgaXQgaWYgd2UgcnVuIG91dCBvZgorICAgICAqIHNwYWNlCisgICAgICogQHBhcmFtIGFycmF5IG9mIGJ5dGUgYXJyYXlzCisgICAgICogQHBhcmFtIGFwcGVuZGluZGV4IGluZGV4IGluIHRoZSBieXRlIGFycmF5IHRvIGFwcGVuZAorICAgICAqIEBwYXJhbSB2YWx1ZSB0byBhcHBlbmQKKyAgICAgKiBAcmV0dXJuIGFycmF5IGlmIGFycmF5IHNpemUgY2FuIGFjY29tb2RhdGUgdGhlIG5ldyB2YWx1ZSwgb3RoZXJ3aXNlCisgICAgICogICAgICAgICBhIGJpZ2dlciBhcnJheSB3aWxsIGJlIGNyZWF0ZWQgYW5kIHJldHVybmVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGFwcGVuZChieXRlIGFycmF5W10sIGludCBhcHBlbmRpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgdmFsdWUpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgYXJyYXlbYXBwZW5kaW5kZXhdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBhcnJheSA9IGluY3JlYXNlKGFycmF5LCBhcHBlbmRpbmRleCwgU09SVF9CVUZGRVJfSU5JVF9TSVpFXyk7CisgICAgICAgICAgICBhcnJheVthcHBlbmRpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIHRyaWNrIHN0cmluZyBjb21wYXJlIGZ1bmN0aW9uIHRoYXQgZ29lcyBpbiBhbmQgdXNlcyBzb3J0a2V5cworICAgICAqIHRvIGNvbXBhcmUuIEl0IGlzIHVzZWQgd2hlbiBjb21wYXJlIGdldHMgaW4gdHJvdWJsZSBhbmQgbmVlZHMgdG8gYmFpbAorICAgICAqIG91dC4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIHRhcmdldCB0ZXh0IHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGNvbXBhcmVCeVNvcnRLZXlzKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpCisKKyAgICB7CisgICAgICAgIG1fdXRpbFJhd0NvbGxhdGlvbktleV8gPSBnZXRSYXdDb2xsYXRpb25LZXkoc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxSYXdDb2xsYXRpb25LZXlfKTsKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgaXMgdmVyeSBzZWxkb20gY2FsbGVkCisgICAgICAgIFJhd0NvbGxhdGlvbktleSB0YXJnZXRrZXkgPSBnZXRSYXdDb2xsYXRpb25LZXkodGFyZ2V0LCBudWxsKTsKKyAgICAgICAgcmV0dXJuIG1fdXRpbFJhd0NvbGxhdGlvbktleV8uY29tcGFyZVRvKHRhcmdldGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgdGhlIHByaW1hcnkgY29tcGFyaXNvbnMsIGFuZCBmaWxscyB1cCB0aGUgQ0UgYnVmZmVyIGF0IHRoZQorICAgICAqIHNhbWUgdGltZS4KKyAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIHRvZ2dsZXMgYmV0d2VlbiB0aGUgY29tcGFyaXNvbiByZXN1bHQgYW5kIHRoZSBoaXJhZ2FuYQorICAgICAqIHJlc3VsdC4gSWYgZWl0aGVyIHRoZSBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldCBvciB2aWNlIHZlcnNhLCB0aGUKKyAgICAgKiByZXR1cm4gcmVzdWx0IGlzIHRoZSBjb21wYXJpc29uIHJlc3VsdCwgaWUgMSBvciAtMSwgZnVydGhlcm1vcmUgdGhlCisgICAgICogY2VidWZmZXJzIHdpbGwgYmUgY2xlYXJlZCB3aGVuIHRoYXQgaGFwcGVucy4gSWYgdGhlIHByaW1hcnkgY29tcGFyaXNvbnMKKyAgICAgKiBhcmUgZXF1YWwsIHdlJ2xsIGhhdmUgdG8gY29udGludWUgd2l0aCBzZWNvbmRhcnkgY29tcGFyaXNvbi4gSW4gdGhpcyBjYXNlCisgICAgICogdGhlIGNlYnVmZmVyIHdpbGwgbm90IGJlIGNsZWFyZWQgYW5kIHRoZSByZXR1cm4gcmVzdWx0IHdpbGwgYmUgdGhlCisgICAgICogaGlyYWdhbmEgcmVzdWx0LgorICAgICAqIEBwYXJhbSBkb0hpcmFnYW5hNCBmbGFnIGluZGljYXRvciB0aGF0IEhpcmFnYW5hIFF1YXRlcm5hcnkgaGFzIHRvIGJlCisgICAgICogICAgICAgICAgICAgICAgICBvYnNlcnZlZAorICAgICAqIEBwYXJhbSBsb3dlc3RwdmFsdWUgdGhlIGxvd2VzdCBwcmltYXJ5IHZhbHVlIHRoYXQgd2lsbCBub3QgYmUgaWdub3JlZCBpZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZSBoYW5kbGluZyBpcyBzaGlmdGVkCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHN0cmluZworICAgICAqIEBwYXJhbSB0YXJnZXQgdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gdGV4dCB0byBzdGFydCB0aGUgY29tcGFyaXNvbgorICAgICAqIEByZXR1cm4gY29tcGFyaW9uIHJlc3VsdCBpZiBhIHByaW1hcnkgZGlmZmVyZW5jZSBpcyBmb3VuZCwgb3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgaGlyYWdhbmEgcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9QcmltYXJ5Q29tcGFyZShib29sZWFuIGRvSGlyYWdhbmE0LCBpbnQgbG93ZXN0cHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRleHRvZmZzZXQpCisKKyAgICB7CisgICAgICAgIC8vIFByZXBhcmluZyB0aGUgY29udGV4dCBvYmplY3RzIGZvciBpdGVyYXRpbmcgb3ZlciBzdHJpbmdzCisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlKTsKKyAgICAgICAgbV9zcmNVdGlsQ29sRUl0ZXJfLnNldFRleHQobV9zcmNVdGlsSXRlcl8sIHRleHRvZmZzZXQpOworICAgICAgICBtX3RndFV0aWxJdGVyXy5zZXRUZXh0KHRhcmdldCk7CisgICAgICAgIG1fdGd0VXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fdGd0VXRpbEl0ZXJfLCB0ZXh0b2Zmc2V0KTsKKworICAgICAgICAvLyBOb24gc2hpZnRlZCBwcmltYXJ5IHByb2Nlc3NpbmcgaXMgcXVpdGUgc2ltcGxlCisgICAgICAgIGlmICghbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8pIHsKKyAgICAgICAgICAgIGludCBoaXJhZ2FuYXJlc3VsdCA9IDA7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGludCBzb3JkZXIgPSAwOworICAgICAgICAgICAgICAgIC8vIFdlIGZldGNoIENFcyB1bnRpbCB3ZSBoaXQgYSBub24gaWdub3JhYmxlIHByaW1hcnkgb3IgZW5kLgorICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgc29yZGVyID0gbV9zcmNVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJfID0gYXBwZW5kKG1fc3JjVXRpbENFQnVmZmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8sIHNvcmRlcik7CisgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gKys7CisgICAgICAgICAgICAgICAgICAgIHNvcmRlciAmPSBDRV9QUklNQVJZX01BU0tfOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHNvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKTsKKworICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSAwOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyID0gbV90Z3RVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgbV90Z3RVdGlsQ0VCdWZmZXJfID0gYXBwZW5kKG1fdGd0VXRpbENFQnVmZmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8sIHRvcmRlcik7CisgICAgICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gKys7CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciAmPSBDRV9QUklNQVJZX01BU0tfOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHRvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKTsKKworICAgICAgICAgICAgICAgIC8vIGlmIGJvdGggcHJpbWFyaWVzIGFyZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVyZSBhcmUgbm8gbW9yZSBDRXMsIHdlIGFkdmFuY2UgdG8gdGhlIG5leHQgbGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIGVpdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyX1ttX3NyY1V0aWxDRUJ1ZmZlclNpemVfIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW21fdGd0VXRpbENFQnVmZmVyU2l6ZV8gLSAxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW21fdGd0VXRpbENFQnVmZmVyU2l6ZV8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZG9IaXJhZ2FuYTQgJiYgaGlyYWdhbmFyZXN1bHQgPT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgbV9zcmNVdGlsQ29sRUl0ZXJfLm1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RndFV0aWxDb2xFSXRlcl8ubV9pc0NvZGVQb2ludEhpcmFnYW5hXykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENvbEVJdGVyXy5tX2lzQ29kZVBvaW50SGlyYWdhbmFfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlyYWdhbmFyZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpcmFnYW5hcmVzdWx0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdHdvIHByaW1hcmllcyBhcmUgZGlmZmVyZW50LCB3ZSBhcmUgZG9uZQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW5kUHJpbWFyeUNvbXBhcmUoc29yZGVyLCB0b3JkZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG5vIHByaW1hcnkgZGlmZmVyZW5jZS4uLiBkbyB0aGUgcmVzdCBmcm9tIHRoZSBidWZmZXJzCisgICAgICAgICAgICByZXR1cm4gaGlyYWdhbmFyZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIHNoaWZ0ZWQgLSBkbyBhIHNsaWdodGx5IG1vcmUgY29tcGxpY2F0ZWQgcHJvY2Vzc2luZyA6KQorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgc29yZGVyID0gZ2V0UHJpbWFyeVNoaWZ0ZWRDb21wYXJlQ0UobV9zcmNVdGlsQ29sRUl0ZXJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlc3RwdmFsdWUsIHRydWUpOworICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSBnZXRQcmltYXJ5U2hpZnRlZENvbXBhcmVDRShtX3RndFV0aWxDb2xFSXRlcl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VzdHB2YWx1ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuZFByaW1hcnlDb21wYXJlKHNvcmRlciwgdG9yZGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IC8vIG5vIHByaW1hcnkgZGlmZmVyZW5jZS4uLiBkbyB0aGUgcmVzdCBmcm9tIHRoZSBidWZmZXJzCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyB1c2VkIG9ubHkgZm9yIHByaW1hcnkgc3RyZW5ndGggd2hlbiB3ZSBrbm93IHRoYXQgc29yZGVyIGlzCisgICAgICogYWxyZWFkeSBkaWZmZXJlbnQgZnJvbSB0b3JkZXIuCisgICAgICogQ29tcGFyZXMgc29yZGVyIGFuZCB0b3JkZXIsIHJldHVybnMgLTEgaWYgc29yZGVyIGlzIGxlc3MgdGhhbiB0b3JkZXIuCisgICAgICogQ2xlYXJzIHRoZSBjZWJ1ZmZlciBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAqIEBwYXJhbSBzb3JkZXIgc291cmNlIHN0cmVuZ3RoIG9yZGVyCisgICAgICogQHBhcmFtIHRvcmRlciB0YXJnZXQgc3RyZW5ndGggb3JkZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBjb21wYXJpc29uIHJlc3VsdCBvZiBzb3JkZXIgYW5kIHRvcmRlcgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGVuZFByaW1hcnlDb21wYXJlKGludCBzb3JkZXIsIGludCB0b3JkZXIpCisgICAgeworICAgICAgICAvLyBpZiB3ZSByZWFjaCBoZXJlLCB0aGUgY2Ugb2Zmc2V0IGFjY2Vzc2VkIGlzIHRoZSBsYXN0IGNlCisgICAgICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBidWZmZXIKKyAgICAgICAgYm9vbGVhbiBpc1NvdXJjZU51bGxPcmRlciA9IChtX3NyY1V0aWxDRUJ1ZmZlcl9bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUik7CisgICAgICAgIGJvb2xlYW4gaXNUYXJnZXROdWxsT3JkZXIgPSAobV90Z3RVdGlsQ0VCdWZmZXJfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpOworICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfID0gLTE7CisgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPSAtMTsKKyAgICAgICAgaWYgKGlzU291cmNlTnVsbE9yZGVyKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzVGFyZ2V0TnVsbE9yZGVyKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgc2lnbgorICAgICAgICBzb3JkZXIgPj4+PSBDRV9QUklNQVJZX1NISUZUXzsKKyAgICAgICAgdG9yZGVyID4+Pj0gQ0VfUFJJTUFSWV9TSElGVF87CisgICAgICAgIGlmIChzb3JkZXIgPCB0b3JkZXIpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIHRoZSBuZXh0IHByaW1hcnkgc2hpZnRlZCB2YWx1ZSBhbmQgZmlsbHMgdXAgY2VidWZmZXIgd2l0aCB0aGUKKyAgICAgKiBuZXh0IG5vbi1pZ25vcmFibGUgY2UuCisgICAgICogQHBhcmFtIGNvbGVpdGVyIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yCisgICAgICogQHBhcmFtIGRvSGlyYWdhbmE0IGZsYWcgaW5kaWNhdG9yIGlmIGhpcmFnYW5hIHF1YXRlcm5hcnkgaXMgdG8gYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVkCisgICAgICogQHBhcmFtIGxvd2VzdHB2YWx1ZSBsb3dlc3QgcHJpbWFyeSBzaGlmdGVkIHZhbHVlIHRoYXQgd2lsbCBub3QgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVkCisgICAgICogQHJldHVybiByZXN1bHQgbmV4dCBtb2RpZmllZCBjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFByaW1hcnlTaGlmdGVkQ29tcGFyZUNFKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG93ZXN0cHZhbHVlLCBib29sZWFuIGlzU3JjKQorCisgICAgeworICAgICAgICBib29sZWFuIHNoaWZ0ZWQgPSBmYWxzZTsKKyAgICAgICAgaW50IHJlc3VsdCA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgIGludCBjZWJ1ZmZlcltdID0gbV9zcmNVdGlsQ0VCdWZmZXJfOworICAgICAgICBpbnQgY2VidWZmZXJzaXplID0gbV9zcmNVdGlsQ0VCdWZmZXJTaXplXzsKKyAgICAgICAgaWYgKCFpc1NyYykgeworICAgICAgICAgICAgY2VidWZmZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl87CisgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgPSBtX3RndFV0aWxDRUJ1ZmZlclNpemVfOworICAgICAgICB9CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICByZXN1bHQgPSBjb2xlaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFCisgICAgICAgICAgICAgICAgICAgICB8fCAoc2hpZnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSkgeworICAgICAgICAgICAgICAgIC8vIFVDQSBhbWVuZG1lbnQgLSBpZ25vcmUgaWdub3JhYmxlcyB0aGF0IGZvbGxvdyBzaGlmdGVkIGNvZGUKKyAgICAgICAgICAgICAgICAvLyBwb2ludHMKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlzQ29udGludWF0aW9uKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIHByaW1hcnkgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VydmUgaW50ZXJlc3RpbmcgY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7IC8vIEp1c3QgbG93ZXIgbGV2ZWwgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGlmICghc2hpZnRlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeyAvLyByZWd1bGFyCisgICAgICAgICAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VzdHB2YWx1ZSkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyID0gYXBwZW5kKGNlYnVmZmVyLCBjZWJ1ZmZlcnNpemUsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICY9IENFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzU3JjKSB7CisgICAgICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlcl8gPSBjZWJ1ZmZlcjsKKyAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gPSBjZWJ1ZmZlcnNpemU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlcl8gPSBjZWJ1ZmZlcjsKKyAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPSBjZWJ1ZmZlcnNpemU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ICY9IENFX1BSSU1BUllfTUFTS187CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kaW5nIGFuIGludCB0byBhbiBhcnJheSBvZiBpbnRzIGFuZCBpbmNyZWFzZXMgaXQgaWYgd2UgcnVuIG91dCBvZgorICAgICAqIHNwYWNlCisgICAgICogQHBhcmFtIGFycmF5IG9mIGludCBhcnJheXMKKyAgICAgKiBAcGFyYW0gYXBwZW5kaW5kZXggaW5kZXggYXQgd2hpY2ggdmFsdWUgd2lsbCBiZSBhcHBlbmRlZAorICAgICAqIEBwYXJhbSB2YWx1ZSB0byBhcHBlbmQKKyAgICAgKiBAcmV0dXJuIGFycmF5IGlmIHNpemUgaXMgbm90IGluY3JlYXNlZCwgb3RoZXJ3aXNlIGEgbmV3IGFycmF5IHdpbGwgYmUKKyAgICAgKiAgICAgICAgIHJldHVybmVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gYXBwZW5kKGludCBhcnJheVtdLCBpbnQgYXBwZW5kaW5kZXgsIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChhcHBlbmRpbmRleCArIDEgPj0gYXJyYXkubGVuZ3RoKSB7CisgICAgICAgICAgICBhcnJheSA9IGluY3JlYXNlKGFycmF5LCBhcHBlbmRpbmRleCwgQ0VfQlVGRkVSX1NJWkVfKTsKKyAgICAgICAgfQorICAgICAgICBhcnJheVthcHBlbmRpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgc2Vjb25kYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGNvbGxlY3RlZCBjZXMuCisgICAgICogQHBhcmFtIGRvRnJlbmNoIGZsYWcgaW5kaWNhdGVzIGlmIEZyZW5jaCBvcmRlcmluZyBpcyB0byBiZSBkb25lCisgICAgICogQHJldHVybiB0aGUgc2Vjb25kYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9TZWNvbmRhcnlDb21wYXJlKGJvb2xlYW4gZG9GcmVuY2gpCisgICAgeworICAgICAgICAvLyBub3csIHdlJ3JlIGdvbm5hIHJlZXhhbWluZSBjb2xsZWN0ZWQgQ0VzCisgICAgICAgIGlmICghZG9GcmVuY2gpIHsgLy8gbm9ybWFsCisgICAgICAgICAgICBpbnQgc29mZnNldCA9IDA7CisgICAgICAgICAgICBpbnQgdG9mZnNldCA9IDA7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGludCBzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgICAgIHdoaWxlIChzb3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgPSBtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCArK10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBDRV9TRUNPTkRBUllfTUFTS187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgICAgIHdoaWxlICh0b3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBDRV9TRUNPTkRBUllfTUFTS187CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoc29yZGVyIDwgdG9yZGVyKSA/IC0xIDogMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIGRvIHRoZSBGcmVuY2gKKyAgICAgICAgICAgIG1fc3JjVXRpbENvbnRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fdGd0VXRpbENvbnRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fc3JjVXRpbE9mZnNldF8gPSBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfIC0gMjsKKyAgICAgICAgICAgIG1fdGd0VXRpbE9mZnNldF8gPSBtX3RndFV0aWxDRUJ1ZmZlclNpemVfIC0gMjsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IHNvcmRlciA9IGdldFNlY29uZGFyeUZyZW5jaENFKHRydWUpOworICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSBnZXRTZWNvbmRhcnlGcmVuY2hDRShmYWxzZSk7CisgICAgICAgICAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtX3NyY1V0aWxPZmZzZXRfIDwgMCAmJiBtX3RndFV0aWxPZmZzZXRfIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3NyY1V0aWxPZmZzZXRfID49IDAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbV9zcmNVdGlsQ0VCdWZmZXJfW21fc3JjVXRpbE9mZnNldF9dCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoc29yZGVyIDwgdG9yZGVyKSA/IC0xIDogMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlcyB0aGUgbmV4dCBzZWNvbmRhcnkgZnJlbmNoIENFLgorICAgICAqIEBwYXJhbSBpc1NyYyBmbGFnIGluZGljYXRvciBpZiB3ZSBhcmUgY2FsY3VsYXRpbmcgdGhlIHNyYyBjZXMKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBuZXh0IG1vZGlmaWVkIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0U2Vjb25kYXJ5RnJlbmNoQ0UoYm9vbGVhbiBpc1NyYykKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICBpbnQgb2Zmc2V0ID0gbV9zcmNVdGlsT2Zmc2V0XzsKKyAgICAgICAgaW50IGNvbnRpbnVhdGlvbm9mZnNldCA9IG1fc3JjVXRpbENvbnRPZmZzZXRfOworICAgICAgICBpbnQgY2VidWZmZXJbXSA9IG1fc3JjVXRpbENFQnVmZmVyXzsKKyAgICAgICAgaWYgKCFpc1NyYykgeworICAgICAgICAgICAgb2Zmc2V0ID0gbV90Z3RVdGlsT2Zmc2V0XzsKKyAgICAgICAgICAgIGNvbnRpbnVhdGlvbm9mZnNldCA9IG1fdGd0VXRpbENvbnRPZmZzZXRfOworICAgICAgICAgICAgY2VidWZmZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl87CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAocmVzdWx0ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUKKyAgICAgICAgICAgICAgICAmJiBvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgaWYgKGNvbnRpbnVhdGlvbm9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2VidWZmZXJbb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXNDb250aW51YXRpb24oY2VidWZmZXJbb2Zmc2V0IC0tXSkpeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBhZnRlciB0aGlzLCBzb3JkZXIgaXMgYXQgdGhlIHN0YXJ0IG9mIGNvbnRpbnVhdGlvbiwKKyAgICAgICAgICAgICAgICAvLyBhbmQgb2Zmc2V0IHBvaW50cyBiZWZvcmUgdGhhdAorICAgICAgICAgICAgICAgIGlmIChpc0NvbnRpbnVhdGlvbihjZWJ1ZmZlcltvZmZzZXQgKyAxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSBvZmZzZXQgZm9yIGxhdGVyCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbm9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2VidWZmZXJbb2Zmc2V0ICsrXTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQ29udGludWF0aW9uKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBmaW5pc2hlZCB3aXRoIHRoaXMgY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGNvbnRpbnVhdGlvbm9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXQgdGhlIHBvaW50ZXIgdG8gYmVmb3JlIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgICAgICAgICBjb250aW51YXRpb25vZmZzZXQgPSAwOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgJj0gQ0VfU0VDT05EQVJZX01BU0tfOyAvLyByZW1vdmUgY29udGludWF0aW9uIGJpdAorICAgICAgICB9CisgICAgICAgIGlmIChpc1NyYykgeworICAgICAgICAgICAgbV9zcmNVdGlsT2Zmc2V0XyA9IG9mZnNldDsKKyAgICAgICAgICAgIG1fc3JjVXRpbENvbnRPZmZzZXRfID0gY29udGludWF0aW9ub2Zmc2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV90Z3RVdGlsT2Zmc2V0XyA9IG9mZnNldDsKKyAgICAgICAgICAgIG1fdGd0VXRpbENvbnRPZmZzZXRfID0gY29udGludWF0aW9ub2Zmc2V0OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG9lcyBjYXNlIHN0cmVuZ3RoIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGNvbGxlY3RlZCBjZXMuCisgICAgICogQHJldHVybiB0aGUgY2FzZSBzdHJlbmd0aCBjb21wYXJpc29uIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGRvQ2FzZUNvbXBhcmUoKQorICAgIHsKKyAgICAgICAgaW50IHNvZmZzZXQgPSAwOworICAgICAgICBpbnQgdG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgc29yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIGludCB0b3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgd2hpbGUgKChzb3JkZXIgJiBDRV9SRU1PVkVfQ0FTRV8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgc29yZGVyID0gbV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgKytdOworICAgICAgICAgICAgICAgIGlmICghaXNDb250aW51YXRpb24oc29yZGVyKSAmJiAoKHNvcmRlciAmIENFX1BSSU1BUllfTUFTS18pICE9IDAgfHwgbV91dGlsQ29tcGFyZTJfID09IHRydWUpKSB7CisgICAgICAgICAgICAgICAgCS8vIHByaW1hcnkgaWdub3JhYmxlcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgb24gdGhlIGNhc2UgbGV2ZWwgd2hlbiB0aGUgc3RyZW5ndGggaXMgcHJpbWFyeQorICAgICAgICAgICAgICAgIAkvLyBvdGhlcndpc2UsIHRoZSBDRXMgc3RvcCBiZWluZyB3ZWxsLWZvcm1lZAorICAgICAgICAgICAgICAgICAgICBzb3JkZXIgJj0gQ0VfQ0FTRV9NQVNLXzNfOworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAoKHRvcmRlciAmIENFX1JFTU9WRV9DQVNFXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICB0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK107CisgICAgICAgICAgICAgICAgaWYgKCFpc0NvbnRpbnVhdGlvbih0b3JkZXIpICYmICgodG9yZGVyICYgQ0VfUFJJTUFSWV9NQVNLXykgIT0gMCB8fCBtX3V0aWxDb21wYXJlMl8gPT0gdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAJLy8gcHJpbWFyeSBpZ25vcmFibGVzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBvbiB0aGUgY2FzZSBsZXZlbCB3aGVuIHRoZSBzdHJlbmd0aCBpcyBwcmltYXJ5CisgICAgICAgICAgICAgICAgCS8vIG90aGVyd2lzZSwgdGhlIENFcyBzdG9wIGJlaW5nIHdlbGwtZm9ybWVkCisgICAgICAgICAgICAgICAgICAgIHRvcmRlciAmPSBDRV9DQVNFX01BU0tfM187CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciBePSBtX2Nhc2VTd2l0Y2hfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNvcmRlciAmPSBDRV9DQVNFX0JJVF9NQVNLXzsKKyAgICAgICAgICAgIHRvcmRlciAmPSBDRV9DQVNFX0JJVF9NQVNLXzsKKyAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2tpbmcgZW5kIG9mIHN0cmluZ3MKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAoc29yZGVyIDwgdG9yZGVyKSA/IC0xIDogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEb2VzIHRlcnRpYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGNvbGxlY3RlZCBjZXMuCisgICAgICogQHJldHVybiB0aGUgdGVydGlhcnkgc3RyZW5ndGggY29tcGFyaXNvbiByZXN1bHQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb1RlcnRpYXJ5Q29tcGFyZSgpCisgICAgeworICAgICAgICBpbnQgc29mZnNldCA9IDA7CisgICAgICAgIGludCB0b2Zmc2V0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgaW50IHRvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICB3aGlsZSAoKHNvcmRlciAmIENFX1JFTU9WRV9DQVNFXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgIHNvcmRlciA9IG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0ICsrXSAmIG1fbWFzazNfOworICAgICAgICAgICAgICAgIGlmICghaXNDb250aW51YXRpb24oc29yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNvcmRlciAmPSBDRV9SRU1PVkVfQ0FTRV87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAoKHRvcmRlciAmIENFX1JFTU9WRV9DQVNFXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgIHRvcmRlciA9IG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0ICsrXSAmIG1fbWFzazNfOworICAgICAgICAgICAgICAgIGlmICghaXNDb250aW51YXRpb24odG9yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciAmPSBDRV9SRU1PVkVfQ0FTRV87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc29yZGVyID09IHRvcmRlcikgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIChzb3JkZXIgPCB0b3JkZXIpID8gLTEgOiAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgcXVhdGVybmFyeSBzdHJlbmd0aCBjb21wYXJpc29uIGJhc2VkIG9uIHRoZSBjb2xsZWN0ZWQgY2VzLgorICAgICAqIEBwYXJhbSBsb3dlc3RwdmFsdWUgdGhlIGxvd2VzdCBwcmltYXJ5IHZhbHVlIHRoYXQgd2lsbCBub3QgYmUgaWdub3JlZCBpZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZSBoYW5kbGluZyBpcyBzaGlmdGVkCisgICAgICogQHJldHVybiB0aGUgcXVhdGVybmFyeSBzdHJlbmd0aCBjb21wYXJpc29uIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGRvUXVhdGVybmFyeUNvbXBhcmUoaW50IGxvd2VzdHB2YWx1ZSkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gc1NoaWZ0ZWQgPSB0cnVlOworICAgICAgICBib29sZWFuIHRTaGlmdGVkID0gdHJ1ZTsKKyAgICAgICAgaW50IHNvZmZzZXQgPSAwOworICAgICAgICBpbnQgdG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgc29yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIGludCB0b3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgd2hpbGUgKHNvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFCisgICAgICAgICAgICAgICAgICAgIHx8IChpc0NvbnRpbnVhdGlvbihzb3JkZXIpICYmICFzU2hpZnRlZCkpIHsKKyAgICAgICAgICAgICAgICBzb3JkZXIgPSBtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCArK107CisgICAgICAgICAgICAgICAgaWYgKGlzQ29udGludWF0aW9uKHNvcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzU2hpZnRlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoc29yZGVyLCBsb3dlc3RwdmFsdWUpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChzb3JkZXIgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAvLyBub24gY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgICAgIHNvcmRlciA9IENFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICAgICAgICAgIHNTaGlmdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzU2hpZnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc29yZGVyID4+Pj0gQ0VfUFJJTUFSWV9TSElGVF87CisgICAgICAgICAgICB3aGlsZSAodG9yZGVyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUKKyAgICAgICAgICAgICAgICAgICAgfHwgKGlzQ29udGludWF0aW9uKHRvcmRlcikgJiYgIXRTaGlmdGVkKSkgeworICAgICAgICAgICAgICAgIHRvcmRlciA9IG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0ICsrXTsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb250aW51YXRpb24odG9yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRTaGlmdGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZCh0b3JkZXIsIGxvd2VzdHB2YWx1ZSkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHRvcmRlciAmIENFX1BSSU1BUllfTUFTS18pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vbiBjb250aW51YXRpb24KKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyID0gQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgICAgICAgICAgICAgdFNoaWZ0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRTaGlmdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3JkZXIgPj4+PSBDRV9QUklNQVJZX1NISUZUXzsKKworICAgICAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdID09CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgZnVuY3Rpb24uIERvZXMgYnl0ZSBsZXZlbCBzdHJpbmcgY29tcGFyZS4gVXNlZCBieSBzdHJjb2xsIGlmCisgICAgICogc3RyZW5ndGggPT0gaWRlbnRpY2FsIGFuZCBzdHJpbmdzIGFyZSBvdGhlcndpc2UgZXF1YWwuIFRoaXMgaXMgYSByYXJlCisgICAgICogY2FzZS4gQ29tcGFyaXNvbiBtdXN0IGJlIGRvbmUgb24gTkZEIG5vcm1hbGl6ZWQgc3RyaW5ncy4gRkNEIGlzIG5vdCBnb29kCisgICAgICogZW5vdWdoLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dAorICAgICAqIEBwYXJhbSB0YXJnZXQgdGV4dAorICAgICAqIEBwYXJhbSBvZmZzZXQgb2YgdGhlIGZpcnN0IGRpZmZlcmVuY2UgaW4gdGhlIHRleHQgc3RyaW5ncworICAgICAqIEBwYXJhbSBub3JtYWxpemUgZmxhZyBpbmRpY2F0aW5nIGlmIHdlIGFyZSB0byBub3JtYWxpemUgdGhlIHRleHQgYmVmb3JlCisgICAgICogICAgICAgICAgICAgIGNvbXBhcmlzb24KKyAgICAgKiBAcmV0dXJuIDEgaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQsIC0xIGxlc3MgdGhhbiBhbmQgMCBpZiBlcXVhbHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZG9JZGVudGljYWxDb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBib29sZWFuIG5vcm1hbGl6ZSkKKworICAgIHsKKyAgICAgICAgaWYgKG5vcm1hbGl6ZSkgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhzb3VyY2UsIE5vcm1hbGl6ZXIuTkZELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzb3VyY2UsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayh0YXJnZXQsIE5vcm1hbGl6ZXIuTkZELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gTm9ybWFsaXplci5kZWNvbXBvc2UodGFyZ2V0LCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRvU3RyaW5nQ29tcGFyZShzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyBzdHJpbmcgZm9yIHRoZWlyIGNvZGVwb2ludCBvcmRlci4KKyAgICAgKiBUaGlzIGNvbXBhcmlzb24gaGFuZGxlcyBzdXJyb2dhdGUgY2hhcmFjdGVycyBhbmQgcGxhY2UgdGhlbSBhZnRlciB0aGUKKyAgICAgKiBhbGwgbm9uIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dAorICAgICAqIEBwYXJhbSB0YXJnZXQgdGV4dAorICAgICAqIEBwYXJhbSBvZmZzZXQgc3RhcnQgb2Zmc2V0IGZvciBjb21wYXJpc29uCisgICAgICogQHJldHVybiAxIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LCAtMSBsZXNzIHRoYW4gYW5kIDAgaWYgZXF1YWxzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRvU3RyaW5nQ29tcGFyZShTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQpCisgICAgeworICAgICAgICAvLyBjb21wYXJlIGlkZW50aWNhbCBwcmVmaXhlcyAtIHRoZXkgZG8gbm90IG5lZWQgdG8gYmUgZml4ZWQgdXAKKyAgICAgICAgY2hhciBzY2hhciA9IDA7CisgICAgICAgIGNoYXIgdGNoYXIgPSAwOworICAgICAgICBpbnQgc2xlbmd0aCA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHRsZW5ndGggPSB0YXJnZXQubGVuZ3RoKCk7CisgICAgICAgIGludCBtaW5sZW5ndGggPSBNYXRoLm1pbihzbGVuZ3RoLCB0bGVuZ3RoKTsKKyAgICAgICAgd2hpbGUgKG9mZnNldCA8IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgc2NoYXIgPSBzb3VyY2UuY2hhckF0KG9mZnNldCk7CisgICAgICAgICAgICB0Y2hhciA9IHRhcmdldC5jaGFyQXQob2Zmc2V0ICsrKTsKKyAgICAgICAgICAgIGlmIChzY2hhciAhPSB0Y2hhcikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNjaGFyID09IHRjaGFyICYmIG9mZnNldCA9PSBtaW5sZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChzbGVuZ3RoID4gbWlubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGxlbmd0aCA+IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gIGlmIGJvdGggdmFsdWVzIGFyZSBpbiBvciBhYm92ZSB0aGUgc3Vycm9nYXRlIHJhbmdlLCBGaXggdGhlbSB1cC4KKyAgICAgICAgaWYgKHNjaGFyID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgJiYgdGNoYXIgPj0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBzY2hhciA9IGZpeHVwVVRGMTYoc2NoYXIpOworICAgICAgICAgICAgdGNoYXIgPSBmaXh1cFVURjE2KHRjaGFyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdyBjMSBhbmQgYzIgYXJlIGluIFVURi0zMi1jb21wYXRpYmxlIG9yZGVyCisgICAgICAgIHJldHVybiAoc2NoYXIgPCB0Y2hhcikgPyAtMSA6IDE7IC8vIHNjaGFyIGFuZCB0Y2hhciBoYXMgdG8gYmUgZGlmZmVyZW50CisgICAgfQorCisgICAgLyoqCisgICAgICogUm90YXRlIHN1cnJvZ2F0ZXMgdG8gdGhlIHRvcCB0byBnZXQgY29kZSBwb2ludCBvcmRlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgZml4dXBVVEYxNihjaGFyIGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoID49IDB4ZTAwMCkgeworICAgICAgICAgICAgY2ggLT0gMHg4MDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjaCArPSAweDIwMDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGUgaW50ZXJuYWwgY2FzZSBkYXRhIG1lbWJlcnMgYW5kIGNvbXByZXNzaW9uIHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpCisgICAgeworICAgICAgICBpZiAobV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLlVQUEVSX0ZJUlNUXykgeworICAgICAgICAgICAgbV9jYXNlU3dpdGNoXyA9IENBU0VfU1dJVENIXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fY2FzZVN3aXRjaF8gPSBOT19DQVNFX1NXSVRDSF87CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9pc0Nhc2VMZXZlbF8gfHwgbV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLk9GRl8pIHsKKyAgICAgICAgICAgIG1fbWFzazNfID0gQ0VfUkVNT1ZFX0NBU0VfOworICAgICAgICAgICAgbV9jb21tb24zXyA9IENPTU1PTl9OT1JNQUxfM187CisgICAgICAgICAgICBtX2FkZGl0aW9uM18gPSBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09GRl87CisgICAgICAgICAgICBtX3RvcDNfID0gQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9PRkZfM187CisgICAgICAgICAgICBtX2JvdHRvbTNfID0gQ09NTU9OX0JPVFRPTV8zXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fbWFzazNfID0gQ0VfS0VFUF9DQVNFXzsKKyAgICAgICAgICAgIG1fYWRkaXRpb24zXyA9IEZMQUdfQklUX01BU0tfQ0FTRV9TV0lUQ0hfT05fOworICAgICAgICAgICAgaWYgKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF8pIHsKKyAgICAgICAgICAgICAgICBtX2NvbW1vbjNfID0gQ09NTU9OX1VQUEVSX0ZJUlNUXzNfOworICAgICAgICAgICAgICAgIG1fdG9wM18gPSBDT01NT05fVE9QX0NBU0VfU1dJVENIX1VQUEVSXzNfOworICAgICAgICAgICAgICAgIG1fYm90dG9tM18gPSBDT01NT05fQk9UVE9NX0NBU0VfU1dJVENIX1VQUEVSXzNfOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvbW1vbjNfID0gQ09NTU9OX05PUk1BTF8zXzsKKyAgICAgICAgICAgICAgICBtX3RvcDNfID0gQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9MT1dFUl8zXzsKKyAgICAgICAgICAgICAgICBtX2JvdHRvbTNfID0gQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9MT1dFUl8zXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCB0aGUgY29tcHJlc3Npb24gdmFsdWVzCisgICAgICAgIGludCB0b3RhbDMgPSBtX3RvcDNfIC0gQ09NTU9OX0JPVFRPTV8zXyAtIDE7CisgICAgICAgIC8vIHdlIG11bHRpbHBseSBkb3VibGUgd2l0aCBpbnQsIGJ1dCBuZWVkIG9ubHkgaW50CisgICAgICAgIG1fdG9wQ291bnQzXyA9IChpbnQpKFBST1BPUlRJT05fM18gKiB0b3RhbDMpOworICAgICAgICBtX2JvdHRvbUNvdW50M18gPSB0b3RhbDMgLSBtX3RvcENvdW50M187CisKKyAgICAgICAgaWYgKCFtX2lzQ2FzZUxldmVsXyAmJiBnZXRTdHJlbmd0aCgpID09IEF0dHJpYnV0ZVZhbHVlLlRFUlRJQVJZXworICAgICAgICAgICAgJiYgIW1faXNGcmVuY2hDb2xsYXRpb25fICYmICFtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXykgeworICAgICAgICAgICAgbV9pc1NpbXBsZTNfID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1faXNTaW1wbGUzXyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKCFtX2lzQ2FzZUxldmVsXyAmJiBnZXRTdHJlbmd0aCgpIDw9IEF0dHJpYnV0ZVZhbHVlLlRFUlRJQVJZXyAmJiAhbV9pc051bWVyaWNDb2xsYXRpb25fCisgICAgICAgICAgJiYgIW1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfICYmICFsYXRpbk9uZUZhaWxlZF8pIHsKKyAgICAgICAgICBpZihsYXRpbk9uZUNFc18gPT0gbnVsbCB8fCBsYXRpbk9uZVJlZ2VuVGFibGVfKSB7CisgICAgICAgICAgICBpZihzZXRVcExhdGluT25lKCkpIHsgLy8gaWYgd2Ugc3VjY2VlZCBpbiBidWlsZGluZyBsYXRpbjEgdGFibGUsIHdlJ2xsIHVzZSBpdAorICAgICAgICAgICAgICBsYXRpbk9uZVVzZV8gPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgbGF0aW5PbmVVc2VfID0gZmFsc2U7CisgICAgICAgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXRpbk9uZVJlZ2VuVGFibGVfID0gZmFsc2U7CisgICAgICAgICAgfSBlbHNlIHsgLy8gbGF0aW4xVGFibGUgZXhpc3RzIGFuZCBpdCBkb2Vzbid0IG5lZWQgdG8gYmUgcmVnZW5lcmF0ZWQsIGp1c3QgdXNlIGl0CisgICAgICAgICAgICBsYXRpbk9uZVVzZV8gPSB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBsYXRpbk9uZVVzZV8gPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgZm9yIChtX21pblVuc2FmZV8gPSAwOyBtX21pblVuc2FmZV8gPCBERUZBVUxUX01JTl9IRVVSSVNUSUNfOworICAgICAgICAgICAgIG1fbWluVW5zYWZlXyArKykgeworICAgICAgICAgICAgLy8gRmluZCB0aGUgc21hbGxlc3QgdW5zYWZlIGNoYXIuCisgICAgICAgICAgICBpZiAoaXNVbnNhZmUobV9taW5VbnNhZmVfKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChtX21pbkNvbnRyYWN0aW9uRW5kXyA9IDA7CisgICAgICAgICAgICAgbV9taW5Db250cmFjdGlvbkVuZF8gPCBERUZBVUxUX01JTl9IRVVSSVNUSUNfOworICAgICAgICAgICAgIG1fbWluQ29udHJhY3Rpb25FbmRfICsrKSB7CisgICAgICAgICAgICAvLyBGaW5kIHRoZSBzbWFsbGVzdCBjb250cmFjdGlvbi1lbmRpbmcgY2hhci4KKyAgICAgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uRW5kKG1fbWluQ29udHJhY3Rpb25FbmRfKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgIHNldFN0cmVuZ3RoKG1fZGVmYXVsdFN0cmVuZ3RoXyk7CisgICAgICAgIHNldERlY29tcG9zaXRpb24obV9kZWZhdWx0RGVjb21wb3NpdGlvbl8pOworICAgICAgICBtX3ZhcmlhYmxlVG9wVmFsdWVfID0gbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV87CisgICAgICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gbV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fOworICAgICAgICBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyA9IG1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAgICAgbV9pc0Nhc2VMZXZlbF8gPSBtX2RlZmF1bHRJc0Nhc2VMZXZlbF87CisgICAgICAgIG1fY2FzZUZpcnN0XyA9IG1fZGVmYXVsdENhc2VGaXJzdF87CisgICAgICAgIG1faXNIaXJhZ2FuYTRfID0gbV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworICAgICAgICBtX2lzTnVtZXJpY0NvbGxhdGlvbl8gPSBtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fOworICAgICAgICBsYXRpbk9uZUZhaWxlZF8gPSBmYWxzZTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqICBJbml0aWFsaXplcyB1dGlsaXR5IGl0ZXJhdG9ycyBhbmQgYnl0ZSBidWZmZXIgdXNlZCBieSBjb21wYXJlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGluaXRVdGlsaXR5KGJvb2xlYW4gYWxsb2NhdGUpIHsKKyAgICAgICAgaWYgKGFsbG9jYXRlKSB7CisgICAgICAgICAgICBpZiAobV9zcmNVdGlsSXRlcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fc3JjVXRpbEl0ZXJfID0gbmV3IFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgICAgIG1fc3JjVXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IobV9zcmNVdGlsSXRlcl8sIHRoaXMpOworICAgICAgICAgICAgICAgIG1fdGd0VXRpbEl0ZXJfID0gbmV3IFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgICAgIG1fdGd0VXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IobV90Z3RVdGlsSXRlcl8sIHRoaXMpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF8gPSBuZXcgYnl0ZVtTT1JUX0JVRkZFUl9JTklUX1NJWkVfQ0FTRV9dOyAvLyBjYXNlCisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV8xX107IC8vIHByaW1hcnkKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gbmV3IGJ5dGVbU09SVF9CVUZGRVJfSU5JVF9TSVpFXzJfXTsgLy8gc2Vjb25kYXJ5CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV8zX107IC8vIHRlcnRpYXJ5CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV80X107ICAvLyBRdWF0ZXJuYXJ5CisgICAgICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJfID0gbmV3IGludFtDRV9CVUZGRVJfU0laRV9dOworICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX1NJWkVfXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fc3JjVXRpbEl0ZXJfID0gbnVsbDsKKyAgICAgICAgICAgIG1fc3JjVXRpbENvbEVJdGVyXyA9IG51bGw7CisgICAgICAgICAgICBtX3RndFV0aWxJdGVyXyA9IG51bGw7CisgICAgICAgICAgICBtX3RndFV0aWxDb2xFSXRlcl8gPSBudWxsOworICAgICAgICAgICAgbV91dGlsQnl0ZXMwXyA9IG51bGw7CisgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gbnVsbDsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBudWxsOworICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IG51bGw7CisgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gbnVsbDsKKyAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyXyA9IG51bGw7CisgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlcl8gPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQ29uc3RzIGZvciBMYXRpbi0xIHNwZWNpYWwgcHJvY2Vzc2luZworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFTkRPRkxBVElOT05FUkFOR0VfID0gMHhGRjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5PTkVUQUJMRUxFTl8gICA9IChFTkRPRkxBVElOT05FUkFOR0VfKzUwKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQkFJTF9PVVRfQ0VfICAgICAgICA9IDB4RkYwMDAwMDA7CisKKyAgICAgLyoqCisgICAgICogR2VuZXJhdGUgbGF0aW4tMSB0YWJsZXMKKyAgICAgKi8KKworICAgIHByaXZhdGUgY2xhc3Mgc2hpZnRWYWx1ZXMgeworICAgICAgICBpbnQgcHJpbVNoaWZ0ID0gMjQ7CisgICAgICAgIGludCBzZWNTaGlmdCA9IDI0OworICAgICAgICBpbnQgdGVyU2hpZnQgPSAyNDsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQKKyAgICBhZGRMYXRpbk9uZUVudHJ5KGNoYXIgY2gsIGludCBDRSwgc2hpZnRWYWx1ZXMgc2gpIHsKKyAgICAgIGludCBwcmltYXJ5MSA9IDAsIHByaW1hcnkyID0gMCwgc2Vjb25kYXJ5ID0gMCwgdGVydGlhcnkgPSAwOworICAgICAgYm9vbGVhbiByZXZlcnNlU2Vjb25kYXJ5ID0gZmFsc2U7CisgICAgICBpZighaXNDb250aW51YXRpb24oQ0UpKSB7CisgICAgICAgIHRlcnRpYXJ5ID0gKChDRSAmIG1fbWFzazNfKSk7CisgICAgICAgIHRlcnRpYXJ5IF49IG1fY2FzZVN3aXRjaF87CisgICAgICAgIHJldmVyc2VTZWNvbmRhcnkgPSB0cnVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGVydGlhcnkgPSAoYnl0ZSkoKENFICYgQ0VfUkVNT1ZFX0NPTlRJTlVBVElPTl9NQVNLXykpOworICAgICAgICB0ZXJ0aWFyeSAmPSBDRV9SRU1PVkVfQ0FTRV87CisgICAgICAgIHJldmVyc2VTZWNvbmRhcnkgPSBmYWxzZTsKKyAgICAgIH0KKworICAgICAgc2Vjb25kYXJ5ID0gKChDRSA+Pj49IDgpICYgTEFTVF9CWVRFX01BU0tfKTsKKyAgICAgIHByaW1hcnkyID0gICgoQ0UgPj4+PSA4KSAmIExBU1RfQllURV9NQVNLXyk7CisgICAgICBwcmltYXJ5MSA9ICAoQ0UgPj4+IDgpOworCisgICAgICBpZihwcmltYXJ5MSAhPSAwKSB7CisgICAgICAgIGxhdGluT25lQ0VzX1tjaF0gfD0gKHByaW1hcnkxIDw8IHNoLnByaW1TaGlmdCk7CisgICAgICAgIHNoLnByaW1TaGlmdCAtPSA4OworICAgICAgfQorICAgICAgaWYocHJpbWFyeTIgIT0gMCkgeworICAgICAgICBpZihzaC5wcmltU2hpZnQgPCAwKSB7CisgICAgICAgICAgbGF0aW5PbmVDRXNfW2NoXSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICBsYXRpbk9uZUNFc19bbGF0aW5PbmVUYWJsZUxlbl8rY2hdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NoXSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbGF0aW5PbmVDRXNfW2NoXSB8PSAocHJpbWFyeTIgPDwgc2gucHJpbVNoaWZ0KTsKKyAgICAgICAgc2gucHJpbVNoaWZ0IC09IDg7CisgICAgICB9CisgICAgICBpZihzZWNvbmRhcnkgIT0gMCkgeworICAgICAgICBpZihyZXZlcnNlU2Vjb25kYXJ5ICYmIG1faXNGcmVuY2hDb2xsYXRpb25fKSB7IC8vIHJldmVyc2Ugc2Vjb25kYXJ5CisgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSA+Pj49IDg7IC8vIG1ha2Ugc3BhY2UgZm9yIHNlY29uZGFyeQorICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjaF0gfD0gKHNlY29uZGFyeSA8PCAyNCk7CisgICAgICAgIH0gZWxzZSB7IC8vIG5vcm1hbCBjYXNlCisgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSB8PSAoc2Vjb25kYXJ5IDw8IHNoLnNlY1NoaWZ0KTsKKyAgICAgICAgfQorICAgICAgICBzaC5zZWNTaGlmdCAtPSA4OworICAgICAgfQorICAgICAgaWYodGVydGlhcnkgIT0gMCkgeworICAgICAgICBsYXRpbk9uZUNFc19bMipsYXRpbk9uZVRhYmxlTGVuXytjaF0gfD0gKHRlcnRpYXJ5IDw8IHNoLnRlclNoaWZ0KTsKKyAgICAgICAgc2gudGVyU2hpZnQgLT0gODsKKyAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQKKyAgICByZXNpemVMYXRpbk9uZVRhYmxlKGludCBuZXdTaXplKSB7CisgICAgICAgIGludCBuZXdUYWJsZVtdID0gbmV3IGludFszKm5ld1NpemVdOworICAgICAgICBpbnQgc2l6ZVRvQ29weSA9ICgobmV3U2l6ZTxsYXRpbk9uZVRhYmxlTGVuXyk/bmV3U2l6ZTpsYXRpbk9uZVRhYmxlTGVuXyk7CisgICAgICAgIC8vdXBydl9tZW1zZXQobmV3VGFibGUsIDAsIG5ld1NpemUqc2l6ZW9mKHVpbnQzMl90KSozKTsgLy8gYXV0b21hdGljYWxseSBjbGVhcmVkLgorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxhdGluT25lQ0VzXywgMCwgbmV3VGFibGUsIDAsIHNpemVUb0NvcHkpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxhdGluT25lQ0VzXywgbGF0aW5PbmVUYWJsZUxlbl8sIG5ld1RhYmxlLCBuZXdTaXplLCBzaXplVG9Db3B5KTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsYXRpbk9uZUNFc18sIDIqbGF0aW5PbmVUYWJsZUxlbl8sIG5ld1RhYmxlLCAyKm5ld1NpemUsIHNpemVUb0NvcHkpOworICAgICAgICBsYXRpbk9uZVRhYmxlTGVuXyA9IG5ld1NpemU7CisgICAgICAgIGxhdGluT25lQ0VzXyA9IG5ld1RhYmxlOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBzZXRVcExhdGluT25lKCkgeworICAgICAgaWYobGF0aW5PbmVDRXNfID09IG51bGwgfHwgbV9yZWFsbG9jTGF0aW5PbmVDRXNfKSB7CisgICAgICAgIGxhdGluT25lQ0VzXyA9IG5ldyBpbnRbMypMQVRJTk9ORVRBQkxFTEVOX107CisgICAgICAgIGxhdGluT25lVGFibGVMZW5fID0gTEFUSU5PTkVUQUJMRUxFTl87CisgICAgICAgIG1fcmVhbGxvY0xhdGluT25lQ0VzXyA9IGZhbHNlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgQXJyYXlzLmZpbGwobGF0aW5PbmVDRXNfLCAwKTsKKyAgICAgIH0KKyAgICAgIGlmKG1fQ29udEluZm9fID09IG51bGwpIHsKKyAgICAgICAgbV9Db250SW5mb18gPSBuZXcgQ29udHJhY3Rpb25JbmZvKCk7CisgICAgICB9CisgICAgICBjaGFyIGNoID0gMDsKKyAgICAgIC8vU3RyaW5nQnVmZmVyIHNDaCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgIC8vQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ID0gZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNDaC50b1N0cmluZygpKTsKKyAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdCA9IGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisKKyAgICAgIHNoaWZ0VmFsdWVzIHMgPSBuZXcgc2hpZnRWYWx1ZXMoKTsKKyAgICAgIGludCBDRSA9IDA7CisgICAgICBjaGFyIGNvbnRyYWN0aW9uT2Zmc2V0ID0gRU5ET0ZMQVRJTk9ORVJBTkdFXysxOworCisgICAgICBmb3IoY2ggPSAwOyBjaCA8PSBFTkRPRkxBVElOT05FUkFOR0VfOyBjaCsrKSB7CisgICAgICAgIHMucHJpbVNoaWZ0ID0gMjQ7IHMuc2VjU2hpZnQgPSAyNDsgcy50ZXJTaGlmdCA9IDI0OworICAgICAgICBpZihjaCA8IDB4MTAwKSB7CisgICAgICAgICAgQ0UgPSBtX3RyaWVfLmdldExhdGluMUxpbmVhclZhbHVlKGNoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBDRSA9IG1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICBpZihDRSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgQ0UgPSBVQ0FfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoIWlzU3BlY2lhbChDRSkpIHsKKyAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNoLCBDRSwgcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgc3dpdGNoIChSdWxlQmFzZWRDb2xsYXRvci5nZXRUYWcoQ0UpKSB7CisgICAgICAgICAgY2FzZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR186CisgICAgICAgICAgY2FzZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRElHSVRfVEFHXzoKKyAgICAgICAgICAgIC8vc0NoLmRlbGV0ZSgwLCBzQ2gubGVuZ3RoKCkpOworICAgICAgICAgICAgLy9zQ2guYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIC8vaXQuc2V0VGV4dChzQ2gudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpdC5zZXRUZXh0KFVDaGFyYWN0ZXIudG9TdHJpbmcoY2gpKTsKKyAgICAgICAgICAgIHdoaWxlKChDRSA9IGl0Lm5leHQoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICBpZihzLnByaW1TaGlmdCA8IDAgfHwgcy5zZWNTaGlmdCA8IDAgfHwgcy50ZXJTaGlmdCA8IDApIHsKKyAgICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bY2hdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjaF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfWzIqbGF0aW5PbmVUYWJsZUxlbl8rY2hdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGFkZExhdGluT25lRW50cnkoY2gsIENFLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAvLyBoZXJlIGlzIHRoZSB0cmljaworICAgICAgICAgICAgLy8gRjIgaXMgY29udHJhY3Rpb24uIFdlIGRvIHNvbWV0aGluZyB2ZXJ5IHNpbWlsYXIgdG8gY29udHJhY3Rpb25zCisgICAgICAgICAgICAvLyBidXQgaGF2ZSB0d28gaW5kaWNlcywgb25lIGluIHRoZSByZWFsIGNvbnRyYWN0aW9uIHRhYmxlIGFuZCB0aGUKKyAgICAgICAgICAgIC8vIG90aGVyIHRvIHdoZXJlIHdlIHN0dWZmZWQgdGhpbmdzLiBUaGlzIGhvcGVzIHRoYXQgd2UgZG9uJ3QgaGF2ZQorICAgICAgICAgICAgLy8gbWFueSBjb250cmFjdGlvbnMgKHRoaXMgc2hvdWxkIHdvcmsgZm9yIGxhdGluLTEgdGFibGVzKS4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoKENFICYgMHgwMEZGRjAwMCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgaW50IFVDaGFyT2Zmc2V0ID0gKENFICYgMHhGRkZGRkYpIC0gbV9jb250cmFjdGlvbk9mZnNldF87IC8vZ2V0Q29udHJhY3Rpb25PZmZzZXQoQ0UpXQorCisgICAgICAgICAgICAgIENFIHw9IChjb250cmFjdGlvbk9mZnNldCAmIDB4RkZGKSA8PCAxMjsgLy8gaW5zZXJ0IHRoZSBvZmZzZXQgaW4gbGF0aW4tMSB0YWJsZQorCisgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tjaF0gPSBDRTsKKyAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSA9IENFOworICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bMipsYXRpbk9uZVRhYmxlTGVuXytjaF0gPSBDRTsKKworICAgICAgICAgICAgICAvLyBXZSdyZSBnb2luZyB0byBqdW1wIGludG8gY29udHJhY3Rpb24gdGFibGUsIHBpY2sgdGhlIGVsZW1lbnRzCisgICAgICAgICAgICAgIC8vIGFuZCB1c2UgdGhlbQorICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAvL0NFID0gKihjb250cmFjdGlvbkNFcyArIChVQ2hhck9mZnNldCAtIGNvbnRyYWN0aW9uSW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgIENFID0gbV9jb250cmFjdGlvbkNFX1tVQ2hhck9mZnNldF07CisgICAgICAgICAgICAgICAgICBpZihpc1NwZWNpYWwoQ0UpIAorICAgICAgICAgICAgICAgICAgICAgJiYgZ2V0VGFnKENFKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGk7ICAgIC8qIGdlbmVyYWwgY291bnRlciAqLworICAgICAgICAgICAgICAgICAgICAvL3VpbnQzMl90ICpDRU9mZnNldCA9ICh1aW50MzJfdCAqKWltYWdlK2dldEV4cGFuc2lvbk9mZnNldChDRSk7IC8qIGZpbmQgdGhlIG9mZnNldCB0byBleHBhbnNpb24gdGFibGUgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9ICgoQ0UgJiAweEZGRkZGMCkgPj4gNCkgLSBtX2V4cGFuc2lvbk9mZnNldF87IC8vaXQuZ2V0RXhwYW5zaW9uT2Zmc2V0KHRoaXMsIENFKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBDRSAmIDB4RjsgLy8gZ2V0RXhwYW5zaW9uQ291bnQoQ0UpOworICAgICAgICAgICAgICAgICAgICAvL0NFID0gKkNFT2Zmc2V0Kys7CisgICAgICAgICAgICAgICAgICAgIGlmKHNpemUgIT0gMCkgeyAvKiBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIDE2IGVsZW1lbnRzIGluIGV4cGFuc2lvbiwgd2UgZG9uJ3QgdGVybWluYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgZm9yKGkgPSAwOyBpPHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYocy5wcmltU2hpZnQgPCAwIHx8IHMuc2VjU2hpZnQgPCAwIHx8IHMudGVyU2hpZnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNvbnRyYWN0aW9uT2Zmc2V0LCBtX2V4cGFuc2lvbl9bb2Zmc2V0K2ldLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8qIGVsc2UsIHdlIGRvICovCisgICAgICAgICAgICAgICAgICAgICAgd2hpbGUobV9leHBhbnNpb25fW29mZnNldF0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYocy5wcmltU2hpZnQgPCAwIHx8IHMuc2VjU2hpZnQgPCAwIHx8IHMudGVyU2hpZnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNvbnRyYWN0aW9uT2Zmc2V0LCBtX2V4cGFuc2lvbl9bb2Zmc2V0KytdLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb25PZmZzZXQrKzsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZighaXNTcGVjaWFsKENFKSkgeworICAgICAgICAgICAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNvbnRyYWN0aW9uT2Zmc2V0KyssIENFLCBzKTsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bbGF0aW5PbmVUYWJsZUxlbl8rY29udHJhY3Rpb25PZmZzZXRdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdGlvbk9mZnNldCsrOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgVUNoYXJPZmZzZXQrKzsKKyAgICAgICAgICAgICAgICAgIHMucHJpbVNoaWZ0ID0gMjQ7IHMuc2VjU2hpZnQgPSAyNDsgcy50ZXJTaGlmdCA9IDI0OworICAgICAgICAgICAgICAgICAgaWYoY29udHJhY3Rpb25PZmZzZXQgPT0gbGF0aW5PbmVUYWJsZUxlbl8pIHsgLy8gd2UgbmVlZCB0byByZWFsbG9jYXRlCisgICAgICAgICAgICAgICAgICAgcmVzaXplTGF0aW5PbmVUYWJsZSgyKmxhdGluT25lVGFibGVMZW5fKTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSB3aGlsZShtX2NvbnRyYWN0aW9uSW5kZXhfW1VDaGFyT2Zmc2V0XSAhPSAweEZGRkYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgICAvLyBjb21wYWN0IHRhYmxlCisgICAgICBpZihjb250cmFjdGlvbk9mZnNldCA8IGxhdGluT25lVGFibGVMZW5fKSB7CisgICAgICAgIHJlc2l6ZUxhdGluT25lVGFibGUoY29udHJhY3Rpb25PZmZzZXQpOworICAgICAgfQorICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBjbGFzcyBDb250cmFjdGlvbkluZm8geworICAgICAgICBpbnQgaW5kZXg7CisgICAgfQorCisgICAgQ29udHJhY3Rpb25JbmZvIG1fQ29udEluZm9fOworCisgICAgcHJpdmF0ZSBpbnQKKyAgICBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKGludCBzdHJlbmd0aCwgaW50IENFLCBTdHJpbmcgcykgeworICAgIC8vaW50IHN0cmVuZ3RoLCBpbnQgQ0UsIFN0cmluZyBzLCBJbnRlZ2VyIGluZCkgeworICAgICAgaW50IGxlbiA9IHMubGVuZ3RoKCk7CisgICAgICAvL2NvbnN0IFVDaGFyICpVQ2hhck9mZnNldCA9IChVQ2hhciAqKWNvbGwtPmltYWdlK2dldENvbnRyYWN0T2Zmc2V0KENFJjB4RkZGKTsKKyAgICAgIGludCBVQ2hhck9mZnNldCA9IChDRSAmIDB4RkZGKSAtIG1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgaW50IG9mZnNldCA9IDE7CisgICAgICBpbnQgbGF0aW5PbmVPZmZzZXQgPSAoQ0UgJiAweDAwRkZGMDAwKSA+Pj4gMTI7CisgICAgICBjaGFyIHNjaGFyID0gMCwgdGNoYXIgPSAwOworCisgICAgICBmb3IoOzspIHsKKyAgICAgICAgLyoKKyAgICAgICAgaWYobGVuID09IC0xKSB7CisgICAgICAgICAgaWYoc1sqaW5kZXhdID09IDApIHsgLy8gZW5kIG9mIHN0cmluZworICAgICAgICAgICAgcmV0dXJuKGNvbGwtPmxhdGluT25lQ0VzW3N0cmVuZ3RoKmNvbGwtPmxhdGluT25lVGFibGVMZW4rbGF0aW5PbmVPZmZzZXRdKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2NoYXIgPSBzWyppbmRleF07CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAqLworICAgICAgICAgIGlmKG1fQ29udEluZm9fLmluZGV4ID09IGxlbikgeworICAgICAgICAgICAgcmV0dXJuKGxhdGluT25lQ0VzX1tzdHJlbmd0aCpsYXRpbk9uZVRhYmxlTGVuXytsYXRpbk9uZU9mZnNldF0pOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzY2hhciA9IHMuY2hhckF0KG1fQ29udEluZm9fLmluZGV4KTsKKyAgICAgICAgICB9CisgICAgICAgIC8vfQorCisgICAgICAgIHdoaWxlKHNjaGFyID4gKHRjaGFyID0gbV9jb250cmFjdGlvbkluZGV4X1tVQ2hhck9mZnNldCtvZmZzZXRdLyoqKFVDaGFyT2Zmc2V0K29mZnNldCkqLykpIHsgLyogc2luY2UgdGhlIGNvbnRyYWN0aW9uIGNvZGVwb2ludHMgc2hvdWxkIGJlIG9yZGVyZWQsIHdlIHNraXAgYWxsIHRoYXQgYXJlIHNtYWxsZXIgKi8KKyAgICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzY2hhciA9PSB0Y2hhcikgeworICAgICAgICAgIG1fQ29udEluZm9fLmluZGV4Kys7CisgICAgICAgICAgcmV0dXJuKGxhdGluT25lQ0VzX1tzdHJlbmd0aCpsYXRpbk9uZVRhYmxlTGVuXytsYXRpbk9uZU9mZnNldCtvZmZzZXRdKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICBpZihzY2hhciAgPiBFTkRPRkxBVElOT05FUkFOR0VfIC8qJiAweEZGMDAqLykgeworICAgICAgICAgICAgcmV0dXJuIEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gc2tpcCBjb21wbGV0ZWx5IGlnbm9yYWJsZXMKKyAgICAgICAgICBpbnQgaXNaZXJvQ0UgPSBtX3RyaWVfLmdldExlYWRWYWx1ZShzY2hhcik7IC8vVVRSSUVfR0VUMzJfRlJPTV9MRUFEKGNvbGwtPm1hcHBpbmcsIHNjaGFyKTsKKyAgICAgICAgICBpZihpc1plcm9DRSA9PSAwKSB7IC8vIHdlIGhhdmUgdG8gaWdub3JlIGNvbXBsZXRlbHkgaWdub3JhYmxlcworICAgICAgICAgICAgbV9Db250SW5mb18uaW5kZXgrKzsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0KKworICAgICAgICAgIHJldHVybihsYXRpbk9uZUNFc19bc3RyZW5ndGgqbGF0aW5PbmVUYWJsZUxlbl8rbGF0aW5PbmVPZmZzZXRdKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIGZhc3Qgc3RyY29sbCwgZ2VhcmVkIHRvd2FyZHMgdGV4dCBpbiBMYXRpbi0xLgorICAgICAqIEl0IHN1cHBvcnRzIGNvbnRyYWN0aW9ucyBvZiBzaXplIHR3bywgRnJlbmNoIHNlY29uZGFyaWVzCisgICAgICogYW5kIGNhc2Ugc3dpdGNoaW5nLiBZb3UgY2FuIHVzZSBpdCB3aXRoIHN0cmVuZ3RocyBwcmltYXJ5CisgICAgICogdG8gdGVydGlhcnkuIEl0IGRvZXMgbm90IHN1cHBvcnQgc2hpZnRlZCBhbmQgY2FzZSBsZXZlbC4KKyAgICAgKiBJdCByZWxpZXMgb24gdGhlIHRhYmxlIGJ1aWxkIGJ5IHNldHVwTGF0aW4xVGFibGUuIElmIGl0CisgICAgICogZG9lc24ndCB1bmRlcnN0YW5kIHNvbWV0aGluZywgaXQgd2lsbCBnbyB0byB0aGUgcmVndWxhcgorICAgICAqIHN0cmNvbGwuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQKKyAgICBjb21wYXJlVXNlTGF0aW4xKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCBzdGFydE9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBzTGVuID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdExlbiA9IHRhcmdldC5sZW5ndGgoKTsKKworICAgICAgICBpbnQgc3RyZW5ndGggPSBnZXRTdHJlbmd0aCgpOworCisgICAgICAgIGludCBzSW5kZXggPSBzdGFydE9mZnNldCwgdEluZGV4ID0gc3RhcnRPZmZzZXQ7CisgICAgICAgIGNoYXIgc0NoYXIgPSAwLCB0Q2hhciA9IDA7CisgICAgICAgIGludCBzT3JkZXI9MCwgdE9yZGVyPTA7CisKKyAgICAgICAgYm9vbGVhbiBlbmRPZlNvdXJjZSA9IGZhbHNlOworCisgICAgICAgIC8vdWludDMyX3QgKmVsZW1lbnRzID0gY29sbC0+bGF0aW5PbmVDRXM7CisKKyAgICAgICAgYm9vbGVhbiBoYXZlQ29udHJhY3Rpb25zID0gZmFsc2U7IC8vIGlmIHdlIGhhdmUgY29udHJhY3Rpb25zIGluIG91ciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW5ub3QgZG8gRnJlbmNoIHNlY29uZGFyeQorCisgICAgICAgIGludCBvZmZzZXQgPSBsYXRpbk9uZVRhYmxlTGVuXzsKKworICAgICAgICAvLyBEbyB0aGUgcHJpbWFyeSBsZXZlbAorICAgIHByaW1Mb29wOgorICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICB3aGlsZShzT3JkZXI9PTApIHsgLy8gdGhpcyBsb29wIHNraXBzIHByaW1hcnkgaWdub3JhYmxlcworICAgICAgICAgICAgLy8gc09yZGVyPWdldE5leHRsYXRpbk9uZUNFKHNvdXJjZSk7CisgICAgICAgICAgICAgIGlmKHNJbmRleD09c0xlbikgeworICAgICAgICAgICAgICAgIGVuZE9mU291cmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBzQ2hhcj1zb3VyY2UuY2hhckF0KHNJbmRleCsrKTsgLy9bc0luZGV4KytdOworICAgICAgICAgICAgLy99CisgICAgICAgICAgICBpZihzQ2hhciA+IEVORE9GTEFUSU5PTkVSQU5HRV8pIHsgLy8gaWYgd2UgZW5jb3VudGVyIG5vbi1sYXRpbi0xLCB3ZSBiYWlsIG91dAorICAgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiUiIpOworICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNPcmRlciA9IGxhdGluT25lQ0VzX1tzQ2hhcl07CisgICAgICAgICAgICBpZihpc1NwZWNpYWwoc09yZGVyKSkgeyAvLyBpZiB3ZSBnb3QgYSBzcGVjaWFsCisgICAgICAgICAgICAgIC8vIHNwZWNpYWxzIGNhbiBiYXNpY2FsbHkgYmUgZWl0aGVyIGNvbnRyYWN0aW9ucyBvciBiYWlsLW91dCBzaWducy4gSWYgd2UgZ2V0IGFueXRoaW5nCisgICAgICAgICAgICAgIC8vIGVsc2UsIHdlJ2xsIGJhaWwgb3V0IGFueXdhc3kKKyAgICAgICAgICAgICAgaWYoZ2V0VGFnKHNPcmRlcikgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHNJbmRleDsKKyAgICAgICAgICAgICAgICBzT3JkZXIgPSBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKDAsIHNPcmRlciwgc291cmNlKTsKKyAgICAgICAgICAgICAgICBzSW5kZXggPSBtX0NvbnRJbmZvXy5pbmRleDsKKyAgICAgICAgICAgICAgICBoYXZlQ29udHJhY3Rpb25zID0gdHJ1ZTsgLy8gaWYgdGhlcmUgYXJlIGNvbnRyYWN0aW9ucywgd2UgY2Fubm90IGRvIEZyZW5jaCBzZWNvbmRhcnkKKyAgICAgICAgICAgICAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBhcmUgY29udHJhY3Rpb25zIGluIHRoZSB0YWJsZSwgYnV0IHdlIGFsd2F5cyB1c2UganVzdCBvbmUgY2hhciwKKyAgICAgICAgICAgICAgICAvLyB3ZSBtaWdodCBiZSBhYmxlIHRvIGRvIEZyZW5jaC4gVGhpcyBzaG91bGQgYmUgY2hlY2tlZCBvdXQuCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHNPcmRlcikgLyo9PSBVQ09MX0JBSUxfT1VUX0NFKi8pIHsKKyAgICAgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiUyIpOworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgd2hpbGUodE9yZGVyPT0wKSB7ICAvLyB0aGlzIGxvb3Agc2tpcHMgcHJpbWFyeSBpZ25vcmFibGVzCisgICAgICAgICAgICAvLyB0T3JkZXI9Z2V0TmV4dGxhdGluT25lQ0UodGFyZ2V0KTsKKyAgICAgICAgICAgIGlmKHRJbmRleD09dExlbikgeworICAgICAgICAgICAgICBpZihlbmRPZlNvdXJjZSkgeworICAgICAgICAgICAgICAgIGJyZWFrIHByaW1Mb29wOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0Q2hhcj10YXJnZXQuY2hhckF0KHRJbmRleCsrKTsgLy9bdEluZGV4KytdOworICAgICAgICAgICAgaWYodENoYXIgPiBFTkRPRkxBVElOT05FUkFOR0VfKSB7IC8vIGlmIHdlIGVuY291bnRlciBub24tbGF0aW4tMSwgd2UgYmFpbCBvdXQKKyAgICAgICAgICAgICAgLy9mcHJpbnRmKHN0ZGVyciwgIlIiKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVSZWd1bGFyKHNvdXJjZSwgdGFyZ2V0LCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0T3JkZXIgPSBsYXRpbk9uZUNFc19bdENoYXJdOworICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHRPcmRlcikpIHsKKyAgICAgICAgICAgICAgLy8gSGFuZGxpbmcgc3BlY2lhbHMsIHNlZSB0aGUgY29tbWVudHMgZm9yIHNvdXJjZQorICAgICAgICAgICAgICBpZihnZXRUYWcodE9yZGVyKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXykgeworICAgICAgICAgICAgICAgIG1fQ29udEluZm9fLmluZGV4ID0gdEluZGV4OworICAgICAgICAgICAgICAgIHRPcmRlciA9IGdldExhdGluT25lQ29udHJhY3Rpb24oMCwgdE9yZGVyLCB0YXJnZXQpOworICAgICAgICAgICAgICAgIHRJbmRleCA9IG1fQ29udEluZm9fLmluZGV4OworICAgICAgICAgICAgICAgIGhhdmVDb250cmFjdGlvbnMgPSB0cnVlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbCh0T3JkZXIpLyo9PSBVQ09MX0JBSUxfT1VUX0NFKi8pIHsKKyAgICAgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiUyIpOworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7IC8vIHNvdXJjZSBpcyBmaW5pc2hlZCwgYnV0IHRhcmdldCBpcyBub3QsIHNheSB0aGUgcmVzdWx0LgorICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYoc09yZGVyID09IHRPcmRlcikgeyAvLyBpZiB3ZSBoYXZlIHNhbWUgQ0VzLCB3ZSBjb250aW51ZSB0aGUgbG9vcAorICAgICAgICAgICAgc09yZGVyID0gMDsgdE9yZGVyID0gMDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBjb21wYXJlIGN1cnJlbnQgdG9wIGJ5dGVzCisgICAgICAgICAgICBpZigoKHNPcmRlcl50T3JkZXIpJjB4RkYwMDAwMDApIT0wKSB7CisgICAgICAgICAgICAgIC8vIHRvcCBieXRlcyBkaWZmZXIsIHJldHVybiBkaWZmZXJlbmNlCisgICAgICAgICAgICAgIGlmKHNPcmRlciA+Pj4gOCA8IHRPcmRlciA+Pj4gOCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAvLyBpbnN0ZWFkIG9mIHJldHVybiAoaW50MzJfdCkoc09yZGVyPj4yNCktKGludDMyX3QpKHRPcmRlcj4+MjQpOworICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSBtdXN0IHJldHVybiBlbnVtIHZhbHVlCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRvcCBieXRlcyBtYXRjaCwgY29udGludWUgd2l0aCBmb2xsb3dpbmcgYnl0ZXMKKyAgICAgICAgICAgIHNPcmRlcjw8PTg7CisgICAgICAgICAgICB0T3JkZXI8PD04OworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGFmdGVyIHByaW1hcnkgbG9vcCwgd2UgZGVmaW5pdGVseSBrbm93IHRoZSBzaXplcyBvZiBzdHJpbmdzLAorICAgICAgICAvLyBzbyB3ZSBzZXQgaXQgYW5kIHVzZSBzaW1wbGVyIGxvb3AgZm9yIHNlY29uZGFyaWVzIGFuZCB0ZXJ0aWFyaWVzCisgICAgICAgIC8vc0xlbiA9IHNJbmRleDsgdExlbiA9IHRJbmRleDsKKyAgICAgICAgaWYoc3RyZW5ndGggPj0gU0VDT05EQVJZKSB7CisgICAgICAgICAgLy8gYWRqdXN0IHRoZSB0YWJsZSBiZWdnaW5pbmcKKyAgICAgICAgICAvL2xhdGluT25lQ0VzXyArPSBjb2xsLT5sYXRpbk9uZVRhYmxlTGVuOworICAgICAgICAgIGVuZE9mU291cmNlID0gZmFsc2U7CisKKyAgICAgICAgICBpZighbV9pc0ZyZW5jaENvbGxhdGlvbl8pIHsgLy8gbm9uIEZyZW5jaAorICAgICAgICAgICAgLy8gVGhpcyBsb29wIGlzIGEgc2ltcGxpZmllZCBjb3B5IG9mIHByaW1hcnkgbG9vcAorICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgd2hvbGUgc3RyaW5ncyBhcmUgbGF0aW4tMSwgc28gd2UgZG9uJ3QKKyAgICAgICAgICAgIC8vIGNoZWNrIGZvciB0aGF0LiBXZSBhbHNvIGtub3cgdGhhdCB3ZSBvbmx5IGhhdmUgY29udHJhY3Rpb25zIGFzCisgICAgICAgICAgICAvLyBzcGVjaWFscy4KKyAgICAgICAgICAgIC8vc0luZGV4ID0gMDsgdEluZGV4ID0gMDsKKyAgICAgICAgICAgIHNJbmRleCA9IHN0YXJ0T2Zmc2V0OyB0SW5kZXggPSBzdGFydE9mZnNldDsKKyAgICBzZWNMb29wOgorICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgIHdoaWxlKHNPcmRlcj09MCkgeworICAgICAgICAgICAgICAgIGlmKHNJbmRleD09c0xlbikgeworICAgICAgICAgICAgICAgICAgZW5kT2ZTb3VyY2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNDaGFyPXNvdXJjZS5jaGFyQXQoc0luZGV4KyspOyAvL1tzSW5kZXgrK107CisgICAgICAgICAgICAgICAgc09yZGVyID0gbGF0aW5PbmVDRXNfW29mZnNldCtzQ2hhcl07CisgICAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHNPcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9Db250SW5mb18uaW5kZXggPSBzSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHNPcmRlciA9IGdldExhdGluT25lQ29udHJhY3Rpb24oMSwgc09yZGVyLCBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBzSW5kZXggPSBtX0NvbnRJbmZvXy5pbmRleDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB3aGlsZSh0T3JkZXI9PTApIHsKKyAgICAgICAgICAgICAgICBpZih0SW5kZXg9PXRMZW4pIHsKKyAgICAgICAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIHNlY0xvb3A7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdENoYXI9dGFyZ2V0LmNoYXJBdCh0SW5kZXgrKyk7IC8vW3RJbmRleCsrXTsKKyAgICAgICAgICAgICAgICB0T3JkZXIgPSBsYXRpbk9uZUNFc19bb2Zmc2V0K3RDaGFyXTsKKyAgICAgICAgICAgICAgICBpZihpc1NwZWNpYWwodE9yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHRJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgdE9yZGVyID0gZ2V0TGF0aW5PbmVDb250cmFjdGlvbigxLCB0T3JkZXIsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIHRJbmRleCA9IG1fQ29udEluZm9fLmluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZihlbmRPZlNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgaWYoc09yZGVyID09IHRPcmRlcikgeworICAgICAgICAgICAgICAgIHNPcmRlciA9IDA7IHRPcmRlciA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gc2VlIHByaW1hcnkgbG9vcCBmb3IgY29tbWVudHMgb24gdGhpcworICAgICAgICAgICAgICAgIGlmKCgoc09yZGVyXnRPcmRlcikmMHhGRjAwMDAwMCkhPTApIHsKKyAgICAgICAgICAgICAgICAgIGlmKHNPcmRlciA+Pj4gOCA8IHRPcmRlciA+Pj4gOCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc09yZGVyPDw9ODsKKyAgICAgICAgICAgICAgICB0T3JkZXI8PD04OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfSBlbHNlIHsgLy8gRnJlbmNoCisgICAgICAgICAgICBpZihoYXZlQ29udHJhY3Rpb25zKSB7IC8vIGlmIHdlIGhhdmUgY29udHJhY3Rpb25zLCB3ZSBoYXZlIHRvIGJhaWwgb3V0CisgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IHJlYWxseSBrbm93IGhvdyB0byBoYW5kbGUgdGhlbSBoZXJlCisgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRm9yIEZyZW5jaCwgd2UgZ28gYmFja3dhcmRzCisgICAgICAgICAgICBzSW5kZXggPSBzTGVuOyB0SW5kZXggPSB0TGVuOworICAgIHNlY0ZMb29wOgorICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgIHdoaWxlKHNPcmRlcj09MCkgeworICAgICAgICAgICAgICAgIGlmKHNJbmRleD09c3RhcnRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgIGVuZE9mU291cmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzQ2hhcj1zb3VyY2UuY2hhckF0KC0tc0luZGV4KTsgLy9bLS1zSW5kZXhdOworICAgICAgICAgICAgICAgIHNPcmRlciA9IGxhdGluT25lQ0VzX1tvZmZzZXQrc0NoYXJdOworICAgICAgICAgICAgICAgIC8vIGRvbid0IGV2ZW4gbG9vayBmb3IgY29udHJhY3Rpb25zCisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB3aGlsZSh0T3JkZXI9PTApIHsKKyAgICAgICAgICAgICAgICBpZih0SW5kZXg9PXN0YXJ0T2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICBpZihlbmRPZlNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICBicmVhayBzZWNGTG9vcDsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0Q2hhcj10YXJnZXQuY2hhckF0KC0tdEluZGV4KTsgLy9bLS10SW5kZXhdOworICAgICAgICAgICAgICAgIHRPcmRlciA9IGxhdGluT25lQ0VzX1tvZmZzZXQrdENoYXJdOworICAgICAgICAgICAgICAgIC8vIGRvbid0IGV2ZW4gbG9vayBmb3IgY29udHJhY3Rpb25zCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYoZW5kT2ZTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGlmKHNPcmRlciA9PSB0T3JkZXIpIHsKKyAgICAgICAgICAgICAgICBzT3JkZXIgPSAwOyB0T3JkZXIgPSAwOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHNlZSB0aGUgcHJpbWFyeSBsb29wIGZvciBjb21tZW50cworICAgICAgICAgICAgICAgIGlmKCgoc09yZGVyXnRPcmRlcikmMHhGRjAwMDAwMCkhPTApIHsKKyAgICAgICAgICAgICAgICAgIGlmKHNPcmRlciA+Pj4gOCA8IHRPcmRlciA+Pj4gOCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc09yZGVyPDw9ODsKKyAgICAgICAgICAgICAgICB0T3JkZXI8PD04OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYoc3RyZW5ndGggPj0gVEVSVElBUlkpIHsKKyAgICAgICAgICAvLyB0ZXJ0aWFyeSBsb29wIGlzIHRoZSBzYW1lIGFzIHNlY29uZGFyeSAoZXhjZXB0IG5vIEZyZW5jaCkKKyAgICAgICAgICBvZmZzZXQgKz0gbGF0aW5PbmVUYWJsZUxlbl87CisgICAgICAgICAgLy9zSW5kZXggPSAwOyB0SW5kZXggPSAwOworICAgICAgICAgIHNJbmRleCA9IHN0YXJ0T2Zmc2V0OyB0SW5kZXggPSBzdGFydE9mZnNldDsKKyAgICAgICAgICBlbmRPZlNvdXJjZSA9IGZhbHNlOworICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgd2hpbGUoc09yZGVyPT0wKSB7CisgICAgICAgICAgICAgIGlmKHNJbmRleD09c0xlbikgeworICAgICAgICAgICAgICAgIGVuZE9mU291cmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBzQ2hhcj1zb3VyY2UuY2hhckF0KHNJbmRleCsrKTsgLy9bc0luZGV4KytdOworICAgICAgICAgICAgICBzT3JkZXIgPSBsYXRpbk9uZUNFc19bb2Zmc2V0K3NDaGFyXTsKKyAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHNPcmRlcikpIHsKKyAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHNJbmRleDsKKyAgICAgICAgICAgICAgICBzT3JkZXIgPSBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKDIsIHNPcmRlciwgc291cmNlKTsKKyAgICAgICAgICAgICAgICBzSW5kZXggPSBtX0NvbnRJbmZvXy5pbmRleDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUodE9yZGVyPT0wKSB7CisgICAgICAgICAgICAgIGlmKHRJbmRleD09dExlbikgeworICAgICAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLy8gaWYgYm90aCBzdHJpbmdzIGFyZSBhdCB0aGUgZW5kLCB0aGV5IGFyZSBlcXVhbAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgdENoYXI9dGFyZ2V0LmNoYXJBdCh0SW5kZXgrKyk7IC8vW3RJbmRleCsrXTsKKyAgICAgICAgICAgICAgdE9yZGVyID0gbGF0aW5PbmVDRXNfW29mZnNldCt0Q2hhcl07CisgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbCh0T3JkZXIpKSB7CisgICAgICAgICAgICAgICAgbV9Db250SW5mb18uaW5kZXggPSB0SW5kZXg7CisgICAgICAgICAgICAgICAgdE9yZGVyID0gZ2V0TGF0aW5PbmVDb250cmFjdGlvbigyLCB0T3JkZXIsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgdEluZGV4ID0gbV9Db250SW5mb18uaW5kZXg7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc09yZGVyID09IHRPcmRlcikgeworICAgICAgICAgICAgICBzT3JkZXIgPSAwOyB0T3JkZXIgPSAwOworICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGlmKCgoc09yZGVyXnRPcmRlcikmMHhmZjAwMDAwMCkhPTApIHsKKyAgICAgICAgICAgICAgICBpZihzT3JkZXIgPj4+IDggPCB0T3JkZXIgPj4+IDgpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHNPcmRlcjw8PTg7CisgICAgICAgICAgICAgIHRPcmRlcjw8PTg7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvKiogCisgICAgICogR2V0IHRoZSB2ZXJzaW9uIG9mIHRoaXMgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIHZlcnNpb24gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFZlcnNpb24oKSB7CisgICAgICAgIC8qIFJ1blRpbWUgdmVyc2lvbiAgKi8KKyAgICAgICAgaW50IHJ0VmVyc2lvbiA9IFZlcnNpb25JbmZvLlVDT0xfUlVOVElNRV9WRVJTSU9OLmdldE1ham9yKCk7CisgICAgICAgIC8qIEJ1aWxkZXIgdmVyc2lvbiovCisgICAgICAgIGludCBiZFZlcnNpb24gPSBtX3ZlcnNpb25fLmdldE1ham9yKCk7CisKKyAgICAgICAgLyogQ2hhcnNldCBWZXJzaW9uLiBOZWVkIHRvIGdldCB0aGUgdmVyc2lvbiBmcm9tIGNudiBmaWxlcworICAgICAgICAgKiBtYWtlY29udiBzaG91bGQgcG9wdWxhdGUgY252IGZpbGVzIHdpdGggdmVyc2lvbiBhbmQKKyAgICAgICAgICogYW4gYXBpIGhhcyB0byBiZSBwcm92aWRlZCBpbiB1Y252LmggdG8gb2J0YWluIHRoaXMgdmVyc2lvbgorICAgICAgICAgKi8KKyAgICAgICAgaW50IGNzVmVyc2lvbiA9IDA7CisKKyAgICAgICAgLyogY29tYmluZSB0aGUgdmVyc2lvbiBpbmZvICovCisgICAgICAgIGludCBjbWJWZXJzaW9uID0gKChydFZlcnNpb248PDExKSB8IChiZFZlcnNpb248PDYpIHwgKGNzVmVyc2lvbikpICYgMHhGRkZGOworICAgICAgICAKKyAgICAgICAgLyogVGFpbG9yaW5nIHJ1bGVzICovCisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShjbWJWZXJzaW9uPj44LCAKKyAgICAgICAgICAgICAgICBjbWJWZXJzaW9uICYgMHhGRiwgCisgICAgICAgICAgICAgICAgbV92ZXJzaW9uXy5nZXRNaW5vcigpLCAKKyAgICAgICAgICAgICAgICBVQ0FfLm1fVUNBX3ZlcnNpb25fLmdldE1ham9yKCkpOworCisvLyAgICAgICAgdmVyc2lvbkluZm9bMF0gPSAodWludDhfdCkoY21iVmVyc2lvbj4+OCk7CisvLyAgICAgICAgdmVyc2lvbkluZm9bMV0gPSAodWludDhfdCljbWJWZXJzaW9uOworLy8gICAgICAgIHZlcnNpb25JbmZvWzJdID0gY29sbC0+aW1hZ2UtPnZlcnNpb25bMV07CisvLyAgICAgICAgdmVyc2lvbkluZm9bM10gPSBjb2xsLT5VQ0EtPmltYWdlLT5VQ0FWZXJzaW9uWzBdOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogR2V0IHRoZSBVQ0EgdmVyc2lvbiBvZiB0aGlzIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2ZXJzaW9uIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBnZXRVQ0FWZXJzaW9uKCkgeworICAgICAgICByZXR1cm4gVUNBXy5tX1VDQV92ZXJzaW9uXzsKKyAgICB9CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIG1fcmVhbGxvY0xhdGluT25lQ0VzXzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGQ3ZDBhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTcyNiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8vaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworCisvKioKKyAqIDxwPkEgY2xhc3MgdGhhdCBmb3JtYXRzIG51bWJlcnMgYWNjb3JkaW5nIHRvIGEgc2V0IG9mIHJ1bGVzLiBUaGlzIG51bWJlciBmb3JtYXR0ZXIgaXMKKyAqIHR5cGljYWxseSB1c2VkIGZvciBzcGVsbGluZyBvdXQgbnVtZXJpYyB2YWx1ZXMgaW4gd29yZHMgKGUuZy4sIDI1LDM0NzYgYXMKKyAqICZxdW90O3R3ZW50eS1maXZlIHRob3VzYW5kIHRocmVlIGh1bmRyZWQgc2V2ZW50eS1zaXgmcXVvdDsgb3IgJnF1b3Q7dmluZ3QtY2lucSBtaWxsZSB0cm9pcworICogY2VudHMgc29peGFudGUtc2VpemUmcXVvdDsgb3IKKyAqICZxdW90O2Z1bmZ1bmR6d2FuemlndGF1c2VuZGRyZWlodW5kZXJ0c2VjaHN1bmRzaWViemlnJnF1b3Q7KSwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgZm9yCisgKiBvdGhlciBjb21wbGljYXRlZCBmb3JtYXR0aW5nIHRhc2tzLCBzdWNoIGFzIGZvcm1hdHRpbmcgYSBudW1iZXIgb2Ygc2Vjb25kcyBhcyBob3VycywKKyAqIG1pbnV0ZXMgYW5kIHNlY29uZHMgKGUuZy4sIDMsNzMwIGFzICZxdW90OzE6MDI6MTAmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UaGUgcmVzb3VyY2VzIGNvbnRhaW4gdGhyZWUgcHJlZGVmaW5lZCBmb3JtYXR0ZXJzIGZvciBlYWNoIGxvY2FsZTogc3BlbGxvdXQsIHdoaWNoCisgKiBzcGVsbHMgb3V0IGEgdmFsdWUgaW4gd29yZHMgKDEyMyBpcyAmcXVvdDtvbmUgaHVuZHJlZCB0d2VudHktdGhyZWUmcXVvdDspOyBvcmRpbmFsLCB3aGljaAorICogYXBwZW5kcyBhbiBvcmRpbmFsIHN1ZmZpeCB0byB0aGUgZW5kIG9mIGEgbnVtZXJhbCAoMTIzIGlzICZxdW90OzEyM3JkJnF1b3Q7KTsgYW5kCisgKiBkdXJhdGlvbiwgd2hpY2ggc2hvd3MgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcyAoMTIzIGlzCisgKiAmcXVvdDsyOjAzJnF1b3Q7KS4mbmJzcDsgVGhlIGNsaWVudCBjYW4gYWxzbyBkZWZpbmUgbW9yZSBzcGVjaWFsaXplZCA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD5zCisgKiBieSBzdXBwbHlpbmcgcHJvZ3JhbW1lci1kZWZpbmVkIHJ1bGUgc2V0cy48L3A+CisgKgorICogPHA+VGhlIGJlaGF2aW9yIG9mIGEgPHR0PlJ1bGVCYXNlZE51bWJlckZvcm1hdDwvdHQ+IGlzIHNwZWNpZmllZCBieSBhIHRleHR1YWwgZGVzY3JpcHRpb24KKyAqIHRoYXQgaXMgZWl0aGVyIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IgYXMgYSA8dHQ+U3RyaW5nPC90dD4gb3IgbG9hZGVkIGZyb20gYSByZXNvdXJjZQorICogYnVuZGxlLiBJbiBpdHMgc2ltcGxlc3QgZm9ybSwgdGhlIGRlc2NyaXB0aW9uIGNvbnNpc3RzIG9mIGEgc2VtaWNvbG9uLWRlbGltaXRlZCBsaXN0IG9mIDxlbT5ydWxlcy48L2VtPgorICogRWFjaCBydWxlIGhhcyBhIHN0cmluZyBvZiBvdXRwdXQgdGV4dCBhbmQgYSB2YWx1ZSBvciByYW5nZSBvZiB2YWx1ZXMgaXQgaXMgYXBwbGljYWJsZSB0by4KKyAqIEluIGEgdHlwaWNhbCBzcGVsbG91dCBydWxlIHNldCwgdGhlIGZpcnN0IHR3ZW50eSBydWxlcyBhcmUgdGhlIHdvcmRzIGZvciB0aGUgbnVtYmVycyBmcm9tCisgKiAwIHRvIDE5OjwvcD4KKyAqCisgKiA8cHJlPnplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4OyBzZXZlbjsgZWlnaHQ7IG5pbmU7CisgKiB0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47IHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuOzwvcHJlPgorICoKKyAqIDxwPkZvciBsYXJnZXIgbnVtYmVycywgd2UgY2FuIHVzZSB0aGUgcHJlY2VkaW5nIHNldCBvZiBydWxlcyB0byBmb3JtYXQgdGhlIG9uZXMgcGxhY2UsIGFuZAorICogd2Ugb25seSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTA6PC9wPgorICoKKyAqIDxwcmU+MjA6IHR3ZW50eVstJmd0OyZndDtdOworICogMzA6IHRoaXJ0eXstJmd0OyZndDtdOworICogNDA6IGZvcnR5Wy0mZ3Q7Jmd0O107CisgKiA1MDogZmlmdHlbLSZndDsmZ3Q7XTsKKyAqIDYwOiBzaXh0eVstJmd0OyZndDtdOworICogNzA6IHNldmVudHlbLSZndDsmZ3Q7XTsKKyAqIDgwOiBlaWdodHlbLSZndDsmZ3Q7XTsKKyAqIDkwOiBuaW5ldHlbLSZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5JbiB0aGVzZSBydWxlcywgdGhlIDxlbT5iYXNlIHZhbHVlPC9lbT4gaXMgc3BlbGxlZCBvdXQgZXhwbGljaXRseSBhbmQgc2V0IG9mZiBmcm9tIHRoZQorICogcnVsZSdzIG91dHB1dCB0ZXh0IHdpdGggYSBjb2xvbi4gVGhlIHJ1bGVzIGFyZSBpbiBhIHNvcnRlZCBsaXN0LCBhbmQgYSBydWxlIGlzIGFwcGxpY2FibGUKKyAqIHRvIGFsbCBudW1iZXJzIGZyb20gaXRzIG93biBiYXNlIHZhbHVlIHRvIG9uZSBsZXNzIHRoYW4gdGhlIG5leHQgcnVsZSdzIGJhc2UgdmFsdWUuIFRoZQorICogJnF1b3Q7Jmd0OyZndDsmcXVvdDsgdG9rZW4gaXMgY2FsbGVkIGEgPGVtPnN1YnN0aXR1dGlvbjwvZW0+IGFuZCB0ZWxscyB0aGUgZm9tYXR0ZXIgdG8KKyAqIGlzb2xhdGUgdGhlIG51bWJlcidzIG9uZXMgZGlnaXQsIGZvcm1hdCBpdCB1c2luZyB0aGlzIHNhbWUgc2V0IG9mIHJ1bGVzLCBhbmQgcGxhY2UgdGhlCisgKiByZXN1bHQgYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSAmcXVvdDsmZ3Q7Jmd0OyZxdW90OyB0b2tlbi4gVGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIGlmCisgKiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDEwICh0aGUgaHlwaGVuIGlzIGEgbGl0ZXJhbCBoeXBoZW47IDI0CisgKiBpcyAmcXVvdDt0d2VudHktZm91ciwmcXVvdDsgbm90ICZxdW90O3R3ZW50eSBmb3VyJnF1b3Q7KS48L3A+CisgKgorICogPHA+Rm9yIGV2ZW4gbGFyZ2VyIG51bWJlcnMsIHdlIGNhbiBhY3R1YWxseSBsb29rIHVwIHNldmVyYWwgcGFydHMgb2YgdGhlIG51bWJlciBpbiB0aGUKKyAqIGxpc3Q6PC9wPgorICoKKyAqIDxwcmU+MTAwOiAmbHQ7Jmx0OyBodW5kcmVkWyAmZ3Q7Jmd0O107PC9wcmU+CisgKgorICogPHA+VGhlICZxdW90OyZsdDsmbHQ7JnF1b3Q7IHJlcHJlc2VudHMgYSBuZXcga2luZCBvZiBzdWJzdGl0dXRpb24uIFRoZSAmbHQ7Jmx0OyBpc29sYXRlcworICogdGhlIGh1bmRyZWRzIGRpZ2l0IChhbmQgYW55IGRpZ2l0cyB0byBpdHMgbGVmdCksIGZvcm1hdHMgaXQgdXNpbmcgdGhpcyBzYW1lIHJ1bGUgc2V0LCBhbmQKKyAqIHBsYWNlcyB0aGUgcmVzdWx0IHdoZXJlIHRoZSAmcXVvdDsmbHQ7Jmx0OyZxdW90OyB3YXMuIE5vdGljZSBhbHNvIHRoYXQgdGhlIG1lYW5pbmcgb2YKKyAqICZndDsmZ3Q7IGhhcyBjaGFuZ2VkOiBpdCBub3cgcmVmZXJzIHRvIGJvdGggdGhlIHRlbnMgYW5kIHRoZSBvbmVzIGRpZ2l0cy4gVGhlIG1lYW5pbmcgb2YKKyAqIGJvdGggc3Vic3RpdHV0aW9ucyBkZXBlbmRzIG9uIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVGhlIGJhc2UgdmFsdWUgZGV0ZXJtaW5lcyB0aGUgcnVsZSdzIDxlbT5kaXZpc29yLDwvZW0+CisgKiB3aGljaCBpcyB0aGUgaGlnaGVzdCBwb3dlciBvZiAxMCB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZSAodGhlIHVzZXIKKyAqIGNhbiBjaGFuZ2UgdGhpcykuIFRvIGZpbGwgaW4gdGhlIHN1YnN0aXR1dGlvbnMsIHRoZSBmb3JtYXR0ZXIgZGl2aWRlcyB0aGUgbnVtYmVyIGJlaW5nCisgKiBmb3JtYXR0ZWQgYnkgdGhlIGRpdmlzb3IuIFRoZSBpbnRlZ3JhbCBxdW90aWVudCBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlICZsdDsmbHQ7CisgKiBzdWJzdGl0dXRpb24sIGFuZCB0aGUgcmVtYWluZGVyIGlzIHVzZWQgdG8gZmlsbCBpbiB0aGUgJmd0OyZndDsgc3Vic3RpdHV0aW9uLiBUaGUgbWVhbmluZworICogb2YgdGhlIGJyYWNrZXRzIGNoYW5nZXMgc2ltaWxhcmx5OiB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlIGJlaW5nCisgKiBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IuIFRoZSBydWxlcyBhcmUgYXBwbGllZCByZWN1cnNpdmVseSwgc28KKyAqIGlmIGEgc3Vic3RpdHV0aW9uIGlzIGZpbGxlZCBpbiB3aXRoIHRleHQgdGhhdCBpbmNsdWRlcyBhbm90aGVyIHN1YnN0aXR1dGlvbiwgdGhhdAorICogc3Vic3RpdHV0aW9uIGlzIGFsc28gZmlsbGVkIGluLjwvcD4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgY292ZXJzIHZhbHVlcyB1cCB0byA5OTksIGF0IHdoaWNoIHBvaW50IHdlIGFkZCBhbm90aGVyIHJ1bGU6PC9wPgorICoKKyAqIDxwcmU+MTAwMDogJmx0OyZsdDsgdGhvdXNhbmRbICZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5BZ2FpbiwgdGhlIG1lYW5pbmdzIG9mIHRoZSBicmFja2V0cyBhbmQgc3Vic3RpdHV0aW9uIHRva2VucyBzaGlmdCBiZWNhdXNlIHRoZSBydWxlJ3MKKyAqIGJhc2UgdmFsdWUgaXMgYSBoaWdoZXIgcG93ZXIgb2YgMTAsIGNoYW5naW5nIHRoZSBydWxlJ3MgZGl2aXNvci4gVGhpcyBydWxlIGNhbiBhY3R1YWxseSBiZQorICogdXNlZCBhbGwgdGhlIHdheSB1cCB0byA5OTksOTk5LiBUaGlzIGFsbG93cyB1cyB0byBmaW5pc2ggb3V0IHRoZSBydWxlcyBhcyBmb2xsb3dzOjwvcD4KKyAqCisgKiA8cHJlPjEsMDAwLDAwMDogJmx0OyZsdDsgbWlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMDogJmx0OyZsdDsgYmlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMCwwMDA6ICZsdDsmbHQ7IHRyaWxsaW9uWyAmZ3Q7Jmd0O107CisgKiAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6IE9VVCBPRiBSQU5HRSE7PC9wcmU+CisgKgorICogPHA+Q29tbWFzLCBwZXJpb2RzLCBhbmQgc3BhY2VzIGNhbiBiZSB1c2VkIGluIHRoZSBiYXNlIHZhbHVlcyB0byBpbXByb3ZlIGxlZ2liaWxpdHkgYW5kCisgKiBhcmUgaWdub3JlZCBieSB0aGUgcnVsZSBwYXJzZXIuIFRoZSBsYXN0IHJ1bGUgaW4gdGhlIGxpc3QgaXMgY3VzdG9tYXJpbHkgdHJlYXRlZCBhcyBhbgorICogJnF1b3Q7b3ZlcmZsb3cgcnVsZSwmcXVvdDsgYXBwbHlpbmcgdG8gZXZlcnl0aGluZyBmcm9tIGl0cyBiYXNlIHZhbHVlIG9uIHVwLCBhbmQgb2Z0ZW4gKGFzCisgKiBpbiB0aGlzIGV4YW1wbGUpIGJlaW5nIHVzZWQgdG8gcHJpbnQgb3V0IGFuIGVycm9yIG1lc3NhZ2Ugb3IgZGVmYXVsdCByZXByZXNlbnRhdGlvbi4KKyAqIE5vdGljZSBhbHNvIHRoYXQgdGhlIHNpemUgb2YgdGhlIG1ham9yIGdyb3VwaW5ncyBpbiBsYXJnZSBudW1iZXJzIGlzIGNvbnRyb2xsZWQgYnkgdGhlCisgKiBzcGFjaW5nIG9mIHRoZSBydWxlczogYmVjYXVzZSBpbiBFbmdsaXNoIHdlIGdyb3VwIG51bWJlcnMgYnkgdGhvdXNhbmQsIHRoZSBoaWdoZXIgcnVsZXMKKyAqIGFyZSBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEsMDAwLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoZXNlIHJ1bGVzIGFjdHVhbGx5IHdvcmsgaW4gcHJhY3RpY2UsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKKyAqIEZvcm1hdHRpbmcgMjUsNDMwIHdpdGggdGhpcyBydWxlIHNldCB3b3VsZCB3b3JrIGxpa2UgdGhpczo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjYzMCI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+PHN0cm9uZz4mbHQ7Jmx0OyB0aG91c2FuZCAmZ3Q7Jmd0Ozwvc3Ryb25nPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bdGhlIHJ1bGUgd2hvc2UgYmFzZSB2YWx1ZSBpcyAxLDAwMCBpcyBhcHBsaWNhYmxlIHRvIDI1LDM0MF08L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIyMSI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjI1NyIgdmFsaWduPSJ0b3AiPjxzdHJvbmc+dHdlbnR5LSZndDsmZ3Q7PC9zdHJvbmc+IHRob3VzYW5kICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlsyNSwzNDAgb3ZlciAxLDAwMCBpcyAyNS4gVGhlIHJ1bGUgZm9yIDIwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LTxzdHJvbmc+Zml2ZTwvc3Ryb25nPiB0aG91c2FuZCAmZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bMjUgbW9kIDEwIGlzIDUuIFRoZSBydWxlIGZvciA1IGlzICZxdW90O2ZpdmUuJnF1b3Q7PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMjEiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyNTciIHZhbGlnbj0idG9wIj50d2VudHktZml2ZSB0aG91c2FuZCA8c3Ryb25nPiZsdDsmbHQ7IGh1bmRyZWQgJmd0OyZndDs8L3N0cm9uZz48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMzQwIiB2YWxpZ249InRvcCI+WzI1LDM0MCBtb2QgMSwwMDAgaXMgMzQwLiBUaGUgcnVsZSBmb3IgMTAwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgPHN0cm9uZz50aHJlZTwvc3Ryb25nPiBodW5kcmVkICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgb3ZlciAxMDAgaXMgMy4gVGhlIHJ1bGUgZm9yIDMgaXMgJnF1b3Q7dGhyZWUuJnF1b3Q7XTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCA8c3Ryb25nPmZvcnR5PC9zdHJvbmc+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgbW9kIDEwMCBpcyA0MC4gVGhlIHJ1bGUgZm9yIDQwIGFwcGxpZXMuIFNpbmNlIDQwIGRpdmlkZXMKKyAqICAgICBldmVubHkgYnkgMTAsIHRoZSBoeXBoZW4gYW5kIHN1YnN0aXR1dGlvbiBpbiB0aGUgYnJhY2tldHMgYXJlIG9taXR0ZWQuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPlRoZSBhYm92ZSBzeW50YXggc3VmZmljZXMgb25seSB0byBmb3JtYXQgcG9zaXRpdmUgaW50ZWdlcnMuIFRvIGZvcm1hdCBuZWdhdGl2ZSBudW1iZXJzLAorICogd2UgYWRkIGEgc3BlY2lhbCBydWxlOjwvcD4KKyAqCisgKiA8cHJlPi14OiBtaW51cyAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIGlzIGNhbGxlZCBhIDxlbT5uZWdhdGl2ZS1udW1iZXIgcnVsZSw8L2VtPiBhbmQgaXMgaWRlbnRpZmllZCBieSAmcXVvdDsteCZxdW90OworICogd2hlcmUgdGhlIGJhc2UgdmFsdWUgd291bGQgYmUuIFRoaXMgcnVsZSBpcyB1c2VkIHRvIGZvcm1hdCBhbGwgbmVnYXRpdmUgbnVtYmVycy4gdGhlCisgKiAmZ3Q7Jmd0OyB0b2tlbiBoZXJlIG1lYW5zICZxdW90O2ZpbmQgdGhlIG51bWJlcidzIGFic29sdXRlIHZhbHVlLCBmb3JtYXQgaXQgd2l0aCB0aGVzZQorICogcnVsZXMsIGFuZCBwdXQgdGhlIHJlc3VsdCBoZXJlLiZxdW90OzwvcD4KKyAqCisgKiA8cD5XZSBhbHNvIGFkZCBhIHNwZWNpYWwgcnVsZSBjYWxsZWQgYSA8ZW0+ZnJhY3Rpb24gcnVsZSA8L2VtPmZvciBudW1iZXJzIHdpdGggZnJhY3Rpb25hbAorICogcGFydHM6PC9wPgorICoKKyAqIDxwcmU+eC54OiAmbHQ7Jmx0OyBwb2ludCAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgaXMgdXNlZCBmb3IgYWxsIHBvc2l0aXZlIG5vbi1pbnRlZ2VycyAobmVnYXRpdmUgbm9uLWludGVnZXJzIHBhc3MgdGhyb3VnaCB0aGUKKyAqIG5lZ2F0aXZlLW51bWJlciBydWxlIGZpcnN0IGFuZCB0aGVuIHRocm91Z2ggdGhpcyBydWxlKS4gSGVyZSwgdGhlICZsdDsmbHQ7IHRva2VuIHJlZmVycyB0bworICogdGhlIG51bWJlcidzIGludGVncmFsIHBhcnQsIGFuZCB0aGUgJmd0OyZndDsgdG8gdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydC4gVGhlCisgKiBmcmFjdGlvbmFsIHBhcnQgaXMgZm9ybWF0dGVkIGFzIGEgc2VyaWVzIG9mIHNpbmdsZS1kaWdpdCBudW1iZXJzIChlLmcuLCAxMjMuNDU2IHdvdWxkIGJlCisgKiBmb3JtYXR0ZWQgYXMgJnF1b3Q7b25lIGh1bmRyZWQgdHdlbnR5LXRocmVlIHBvaW50IGZvdXIgZml2ZSBzaXgmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoaXMgcnVsZSBzeW50YXggaXMgYXBwbGllZCB0byB2YXJpb3VzIGxhbmd1YWdlcywgZXhhbWluZSB0aGUgcmVzb3VyY2UgZGF0YS48L3A+CisgKgorICogPHA+VGhlcmUgaXMgYWN0dWFsbHkgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGJ1aWx0IGludG8gdGhlIHJ1bGUgbGFuZ3VhZ2UgdGhhbiB0aGUKKyAqIGRlc2NyaXB0aW9uIGFib3ZlIHNob3dzLiBBIGZvcm1hdHRlciBtYXkgb3duIG11bHRpcGxlIHJ1bGUgc2V0cywgd2hpY2ggY2FuIGJlIHNlbGVjdGVkIGJ5CisgKiB0aGUgY2FsbGVyLCBhbmQgd2hpY2ggY2FuIHVzZSBlYWNoIG90aGVyIHRvIGZpbGwgaW4gdGhlaXIgc3Vic3RpdHV0aW9ucy4gU3Vic3RpdHV0aW9ucyBjYW4KKyAqIGFsc28gYmUgZmlsbGVkIGluIHdpdGggZGlnaXRzLCB1c2luZyBhIERlY2ltYWxGb3JtYXQgb2JqZWN0LiBUaGVyZSBpcyBzeW50YXggdGhhdCBjYW4gYmUKKyAqIHVzZWQgdG8gYWx0ZXIgYSBydWxlJ3MgZGl2aXNvciBpbiB2YXJpb3VzIHdheXMuIEFuZCB0aGVyZSBpcyBwcm92aXNpb24gZm9yIG11Y2ggbW9yZQorICogZmxleGlibGUgZnJhY3Rpb24gaGFuZGxpbmcuIEEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUgc3ludGF4IGZvbGxvd3M6PC9wPgorICoKKyAqIDxocj4KKyAqCisgKiA8cD5UaGUgZGVzY3JpcHRpb24gb2YgYSA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD4ncyBiZWhhdmlvciBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSA8ZW0+cnVsZQorICogc2V0cy48L2VtPiBFYWNoIHJ1bGUgc2V0IGNvbnNpc3RzIG9mIGEgbmFtZSwgYSBjb2xvbiwgYW5kIGEgbGlzdCBvZiA8ZW0+cnVsZXMuPC9lbT4gQSBydWxlCisgKiBzZXQgbmFtZSBtdXN0IGJlZ2luIHdpdGggYSAlIHNpZ24uIFJ1bGUgc2V0cyB3aXRoIG5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIHNpbmdsZSAlIHNpZ24KKyAqIGFyZSA8ZW0+cHVibGljOjwvZW0+IHRoZSBjYWxsZXIgY2FuIHNwZWNpZnkgdGhhdCB0aGV5IGJlIHVzZWQgdG8gZm9ybWF0IGFuZCBwYXJzZSBudW1iZXJzLgorICogUnVsZSBzZXRzIHdpdGggbmFtZXMgdGhhdCBiZWdpbiB3aXRoICUlIGFyZSA8ZW0+cHJpdmF0ZTo8L2VtPiB0aGV5IGV4aXN0IG9ubHkgZm9yIHRoZSB1c2UKKyAqIG9mIG90aGVyIHJ1bGUgc2V0cy4gSWYgYSBmb3JtYXR0ZXIgb25seSBoYXMgb25lIHJ1bGUgc2V0LCB0aGUgbmFtZSBtYXkgYmUgb21pdHRlZC48L3A+CisgKgorICogPHA+VGhlIHVzZXIgY2FuIGFsc28gc3BlY2lmeSBhIHNwZWNpYWwgJnF1b3Q7cnVsZSBzZXQmcXVvdDsgbmFtZWQgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+LgorICogVGhlIGJvZHkgb2YgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+IGlzbid0IGEgc2V0IG9mIG51bWJlci1mb3JtYXR0aW5nIHJ1bGVzLCBidXQgYSA8dHQ+UnVsZUJhc2VkQ29sbGF0b3I8L3R0PgorICogZGVzY3JpcHRpb24gd2hpY2ggaXMgdXNlZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzIGZvciBsZW5pZW50IHBhcnNpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uCisgKiBvbiB0aGUgc3ludGF4LCBzZWUgPHR0PlJ1bGVCYXNlZENvbGxhdG9yPC90dD4uIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGxlbmllbnQgcGFyc2luZywKKyAqIHNlZSA8dHQ+c2V0TGVuaWVudFBhcnNlKCk8L3R0Pi4gPGVtPk5vdGU6PC9lbT4gc3ltYm9scyB0aGF0IGhhdmUgc3ludGFjdGljIG1lYW5pbmcKKyAqIGluIGNvbGxhdGlvbiBydWxlcywgc3VjaCBhcyAnJmFtcDsnLCBoYXZlIG5vIHBhcnRpY3VsYXIgbWVhbmluZyB3aGVuIGFwcGVhcmluZyBvdXRzaWRlCisgKiBvZiB0aGUgPHR0PmxlbmllbnQtcGFyc2U8L3R0PiBydWxlIHNldC48L3A+CisgKgorICogPHA+VGhlIGJvZHkgb2YgYSBydWxlIHNldCBjb25zaXN0cyBvZiBhbiBvcmRlcmVkLCBzZW1pY29sb24tZGVsaW1pdGVkIGxpc3Qgb2YgPGVtPnJ1bGVzLjwvZW0+CisgKiBJbnRlcm5hbGx5LCBldmVyeSBydWxlIGhhcyBhIGJhc2UgdmFsdWUsIGEgZGl2aXNvciwgcnVsZSB0ZXh0LCBhbmQgemVybywgb25lLCBvciB0d28gPGVtPnN1YnN0aXR1dGlvbnMuPC9lbT4KKyAqIFRoZXNlIHBhcmFtZXRlcnMgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIGRlc2NyaXB0aW9uIHN5bnRheCwgd2hpY2ggY29uc2lzdHMgb2YgYSA8ZW0+cnVsZQorICogZGVzY3JpcHRvciw8L2VtPiBhIGNvbG9uLCBhbmQgYSA8ZW0+cnVsZSBib2R5LjwvZW0+PC9wPgorICoKKyAqIDxwPkEgcnVsZSBkZXNjcmlwdG9yIGNhbiB0YWtlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGZvcm1zICh0ZXh0IGluIDxlbT5pdGFsaWNzPC9lbT4gaXMgdGhlCisgKiBuYW1lIG9mIGEgdG9rZW4pOjwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT46PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+IHNwZWNpZmllcyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuIDxlbT5idjwvZW0+IGlzIGEgZGVjaW1hbAorICogICAgIG51bWJlciBleHByZXNzZWQgdXNpbmcgQVNDSUkgZGlnaXRzLiA8ZW0+YnY8L2VtPiBtYXkgY29udGFpbiBzcGFjZXMsIHBlcmlvZCwgYW5kIGNvbW1hcywKKyAqICAgICB3aGljaCBhcmUgaXJnbm9yZWQuIFRoZSBydWxlJ3MgZGl2aXNvciBpcyB0aGUgaGlnaGVzdCBwb3dlciBvZiAxMCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8KKyAqICAgICB0aGUgYmFzZSB2YWx1ZS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+LzxlbT5yYWQ8L2VtPjo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4gc3BlY2lmaWVzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVGhlIHJ1bGUncyBkaXZpc29yIGlzIHRoZQorICogICAgIGhpZ2hlc3QgcG93ZXIgb2YgPGVtPnJhZDwvZW0+IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+Jmd0Ozo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4gc3BlY2lmaWVzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVG8gY2FsY3VsYXRlIHRoZSBkaXZpc29yLAorICogICAgIGxldCB0aGUgcmFkaXggYmUgMTAsIGFuZCB0aGUgZXhwb25lbnQgYmUgdGhlIGhpZ2hlc3QgZXhwb25lbnQgb2YgdGhlIHJhZGl4IHRoYXQgeWllbGRzIGEKKyAqICAgICByZXN1bHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLiBFdmVyeSAmZ3Q7IGNoYXJhY3RlciBhZnRlciB0aGUgYmFzZSB2YWx1ZQorICogICAgIGRlY3JlYXNlcyB0aGUgZXhwb25lbnQgYnkgMS4gSWYgdGhlIGV4cG9uZW50IGlzIHBvc2l0aXZlIG9yIDAsIHRoZSBkaXZpc29yIGlzIHRoZSByYWRpeAorICogICAgIHJhaXNlZCB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uZW50OyBvdGhlcndpc2UsIHRoZSBkaXZpc29yIGlzIDEuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPi88ZW0+cmFkPC9lbT4mZ3Q7OjwvdGQ+CisgKiAgICAgPHRkIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPiBzcGVjaWZpZXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLiBUbyBjYWxjdWxhdGUgdGhlIGRpdmlzb3IsCisgKiAgICAgbGV0IHRoZSByYWRpeCBiZSA8ZW0+cmFkPC9lbT4sIGFuZCB0aGUgZXhwb25lbnQgYmUgdGhlIGhpZ2hlc3QgZXhwb25lbnQgb2YgdGhlIHJhZGl4IHRoYXQKKyAqICAgICB5aWVsZHMgYSByZXN1bHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLiBFdmVyeSAmZ3Q7IGNoYXJhY3RlciBhZnRlciB0aGUgcmFkaXgKKyAqICAgICBkZWNyZWFzZXMgdGhlIGV4cG9uZW50IGJ5IDEuIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSBvciAwLCB0aGUgZGl2aXNvciBpcyB0aGUgcmFkaXgKKyAqICAgICByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIHRoZSBleHBvbmVudDsgb3RoZXJ3aXNlLCB0aGUgZGl2aXNvciBpcyAxLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+LXg6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj54Lng6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGFuIDxlbT5pbXByb3BlciBmcmFjdGlvbiBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj4wLng6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgPGVtPnByb3BlciBmcmFjdGlvbiBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj54LjA6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgPGVtPm1hc3RlciBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj48ZW0+bm90aGluZzwvZW0+PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPklmIHRoZSBydWxlJ3MgcnVsZSBkZXNjcmlwdG9yIGlzIGxlZnQgb3V0LCB0aGUgYmFzZSB2YWx1ZSBpcyBvbmUgcGx1cyB0aGUKKyAqICAgICBwcmVjZWRpbmcgcnVsZSdzIGJhc2UgdmFsdWUgKG9yIHplcm8gaWYgdGhpcyBpcyB0aGUgZmlyc3QgcnVsZSBpbiB0aGUgbGlzdCkgaW4gYSBub3JtYWwKKyAqICAgICBydWxlIHNldC4mbmJzcDsgSW4gYSBmcmFjdGlvbiBydWxlIHNldCwgdGhlIGJhc2UgdmFsdWUgaXMgdGhlIHNhbWUgYXMgdGhlIHByZWNlZGluZyBydWxlJ3MKKyAqICAgICBiYXNlIHZhbHVlLjwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPkEgcnVsZSBzZXQgbWF5IGJlIGVpdGhlciBhIHJlZ3VsYXIgcnVsZSBzZXQgb3IgYSA8ZW0+ZnJhY3Rpb24gcnVsZSBzZXQsPC9lbT4gZGVwZW5kaW5nCisgKiBvbiB3aGV0aGVyIGl0IGlzIHVzZWQgdG8gZm9ybWF0IGEgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCAob3IgdGhlIHdob2xlIG51bWJlcikgb3IgYQorICogbnVtYmVyJ3MgZnJhY3Rpb25hbCBwYXJ0LiBVc2luZyBhIHJ1bGUgc2V0IHRvIGZvcm1hdCBhIHJ1bGUncyBmcmFjdGlvbmFsIHBhcnQgbWFrZXMgaXQgYQorICogZnJhY3Rpb24gcnVsZSBzZXQuPC9wPgorICoKKyAqIDxwPldoaWNoIHJ1bGUgaXMgdXNlZCB0byBmb3JtYXQgYSBudW1iZXIgaXMgZGVmaW5lZCBhY2NvcmRpbmcgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAqIGFsZ29yaXRobXM6IElmIHRoZSBydWxlIHNldCBpcyBhIHJlZ3VsYXIgcnVsZSBzZXQsIGRvIHRoZSBmb2xsb3dpbmc6CisgKgorICogPHVsPgorICogICA8bGk+SWYgdGhlIHJ1bGUgc2V0IGluY2x1ZGVzIGEgbWFzdGVyIHJ1bGUgKGFuZCB0aGUgbnVtYmVyIHdhcyBwYXNzZWQgaW4gYXMgYSA8dHQ+ZG91YmxlPC90dD4pLAorICogICAgIHVzZSB0aGUgbWFzdGVyIHJ1bGUuJm5ic3A7IChJZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCB3YXMgcGFzc2VkIGluIGFzIGEgPHR0Pmxvbmc8L3R0PiwKKyAqICAgICB0aGUgbWFzdGVyIHJ1bGUgaXMgaWdub3JlZC4pPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHVzZSB0aGUgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaGFzIGEgZnJhY3Rpb25hbCBwYXJ0IGFuZCBpcyBncmVhdGVyIHRoYW4gMSwgdXNlIHRoZSBpbXByb3BlciBmcmFjdGlvbgorICogICAgIHJ1bGUuPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaGFzIGEgZnJhY3Rpb25hbCBwYXJ0IGFuZCBpcyBiZXR3ZWVuIDAgYW5kIDEsIHVzZSB0aGUgcHJvcGVyIGZyYWN0aW9uCisgKiAgICAgcnVsZS48L2xpPgorICogICA8bGk+QmluYXJ5LXNlYXJjaCB0aGUgcnVsZSBsaXN0IGZvciB0aGUgcnVsZSB3aXRoIHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsCisgKiAgICAgdG8gdGhlIG51bWJlci4gSWYgdGhhdCBydWxlIGhhcyB0d28gc3Vic3RpdHV0aW9ucywgaXRzIGJhc2UgdmFsdWUgaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUKKyAqICAgICBvZiBpdHMgZGl2aXNvciwgYW5kIHRoZSBudW1iZXIgPGVtPmlzPC9lbT4gYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IsIHVzZSB0aGUKKyAqICAgICBydWxlIHRoYXQgcHJlY2VkZXMgaXQgaW4gdGhlIHJ1bGUgbGlzdC4gT3RoZXJ3aXNlLCB1c2UgdGhlIHJ1bGUgaXRzZWxmLjwvbGk+CisgKiA8L3VsPgorICoKKyAqIDxwPklmIHRoZSBydWxlIHNldCBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCBkbyB0aGUgZm9sbG93aW5nOgorICoKKyAqIDx1bD4KKyAqICAgPGxpPklnbm9yZSBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzLjwvbGk+CisgKiAgIDxsaT5Gb3IgZWFjaCBydWxlIGluIHRoZSBsaXN0LCBtdWx0aXBseSB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCAod2hpY2ggd2lsbCBhbHdheXMgYmUKKyAqICAgICBiZXR3ZWVuIDAgYW5kIDEpIGJ5IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gS2VlcCB0cmFjayBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcmVzdWx0CisgKiAgICAgdGhlIG5lYXJlc3QgaW50ZWdlci48L2xpPgorICogICA8bGk+VXNlIHRoZSBydWxlIHRoYXQgcHJvZHVjZWQgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIHplcm8gaW4gdGhlIGFib3ZlIGNhbGN1bGF0aW9uLiBJbiB0aGUKKyAqICAgICBldmVudCBvZiBhIHRpZSBvciBhIGRpcmVjdCBoaXQsIHVzZSB0aGUgZmlyc3QgbWF0Y2hpbmcgcnVsZSBlbmNvdW50ZXJlZC4gKFRoZSBpZGVhIGhlcmUgaXMKKyAqICAgICB0byB0cnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhcyBhIHBvc3NpYmxlIGRlbm9taW5hdG9yIG9mIGEgZnJhY3Rpb24uIFdoaWNoZXZlcgorICogICAgIGRlbm9taW5hdG9yIHByb2R1Y2VzIHRoZSBmcmFjdGlvbiBjbG9zZXN0IGluIHZhbHVlIHRvIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHdpbnMuKSBJZgorICogICAgIHRoZSBydWxlIGZvbGxvd2luZyB0aGUgbWF0Y2hpbmcgcnVsZSBoYXMgdGhlIHNhbWUgYmFzZSB2YWx1ZSwgdXNlIGl0IGlmIHRoZSBudW1lcmF0b3Igb2YKKyAqICAgICB0aGUgZnJhY3Rpb24gaXMgYW55dGhpbmcgb3RoZXIgdGhhbiAxOyBpZiB0aGUgbnVtZXJhdG9yIGlzIDEsIHVzZSB0aGUgb3JpZ2luYWwgbWF0Y2hpbmcKKyAqICAgICBydWxlLiAoVGhpcyBpcyB0byBhbGxvdyBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mIHRoZSBydWxlIHRleHQgd2l0aG91dCBhIGxvdCBvZiBleHRyYQorICogICAgIGhhc3NsZS4pPC9saT4KKyAqIDwvdWw+CisgKgorICogPHA+QSBydWxlJ3MgYm9keSBjb25zaXN0cyBvZiBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24uIFRoZSBydWxlCisgKiBtYXkgaW5jbHVkZSB6ZXJvLCBvbmUsIG9yIHR3byA8ZW0+c3Vic3RpdHV0aW9uIHRva2Vucyw8L2VtPiBhbmQgYSByYW5nZSBvZiB0ZXh0IGluCisgKiBicmFja2V0cy4gVGhlIGJyYWNrZXRzIGRlbm90ZSBvcHRpb25hbCB0ZXh0IChhbmQgbWF5IGFsc28gaW5jbHVkZSBvbmUgb3IgYm90aAorICogc3Vic3RpdHV0aW9ucykuIFRoZSBleGFjdCBtZWFuaW5ncyBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VucywgYW5kIHVuZGVyIHdoYXQgY29uZGl0aW9ucworICogb3B0aW9uYWwgdGV4dCBpcyBvbWl0dGVkLCBkZXBlbmQgb24gdGhlIHN5bnRheCBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGFuZCB0aGUgY29udGV4dC4KKyAqIFRoZSByZXN0IG9mIHRoZSB0ZXh0IGluIGEgcnVsZSBib2R5IGlzIGxpdGVyYWwgdGV4dCB0aGF0IGlzIG91dHB1dCB3aGVuIHRoZSBydWxlIG1hdGNoZXMKKyAqIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLjwvcD4KKyAqCisgKiA8cD5BIHN1YnN0aXR1dGlvbiB0b2tlbiBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIDxlbT50b2tlbiBjaGFyYWN0ZXIuPC9lbT4gVGhlIHRva2VuCisgKiBjaGFyYWN0ZXIgYW5kIHRoZSBjb250ZXh0IHRvZ2V0aGVyIHNwZWNpZnkgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUKKyAqIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuIEFuIG9wdGlvbmFsIDxlbT5zdWJzdGl0dXRpb24gZGVzY3JpcHRvciA8L2VtPnNwZWNpZmllcyBob3cgdGhlCisgKiB2YWx1ZSByZXN1bHRpbmcgZnJvbSB0aGF0IG9wZXJhdGlvbiBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlIHN1YnN0aXR1dGlvbi4gVGhlIHBvc2l0aW9uIG9mCisgKiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGluIHRoZSBydWxlIGJvZHkgc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzdWx0YW50IHRleHQgaW4KKyAqIHRoZSBvcmlnaW5hbCBydWxlIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBtZWFuaW5ncyBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGNoYXJhY3RlcnMgYXJlIGFzIGZvbGxvd3M6PC9wPgorICoKKyAqIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+Jmd0OyZndDs8L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbm9ybWFsIHJ1bGU8L3RkPgorICogICAgIDx0ZD5EaXZpZGUgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGRpdmlzb3IgYW5kIGZvcm1hdCB0aGUgcmVtYWluZGVyPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5lZ2F0aXZlLW51bWJlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+RmluZCB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlciBhbmQgZm9ybWF0IHRoZSByZXN1bHQ8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gZnJhY3Rpb24gb3IgbWFzdGVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5Jc29sYXRlIHRoZSBudW1iZXIncyBmcmFjdGlvbmFsIHBhcnQgYW5kIGZvcm1hdCBpdC48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gcnVsZSBpbiBmcmFjdGlvbiBydWxlIHNldDwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPiZndDsmZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBub3JtYWwgcnVsZTwvdGQ+CisgKiAgICAgPHRkPkRpdmlkZSB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgZm9ybWF0IHRoZSByZW1haW5kZXIsCisgKiAgICAgICBidXQgYnlwYXNzIHRoZSBub3JtYWwgcnVsZS1zZWxlY3Rpb24gcHJvY2VzcyBhbmQganVzdCB1c2UgdGhlCisgKiAgICAgICBydWxlIHRoYXQgcHJlY2VkZXMgdGhpcyBvbmUgaW4gdGhpcyBydWxlIGxpc3QuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGFsbCBvdGhlciBydWxlczwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPiZsdDsmbHQ7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5vcm1hbCBydWxlPC90ZD4KKyAqICAgICA8dGQ+RGl2aWRlIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCBmb3JtYXQgdGhlIHF1b3RpZW50PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5lZ2F0aXZlLW51bWJlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGZyYWN0aW9uIG9yIG1hc3RlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+SXNvbGF0ZSB0aGUgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCBhbmQgZm9ybWF0IGl0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBydWxlIGluIGZyYWN0aW9uIHJ1bGUgc2V0PC90ZD4KKyAqICAgICA8dGQ+TXVsdGlwbHkgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgYW5kIGZvcm1hdCB0aGUgcmVzdWx0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPj09PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGFsbCBydWxlIHNldHM8L3RkPgorICogICAgIDx0ZD5Gb3JtYXQgdGhlIG51bWJlciB1bmNoYW5nZWQ8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj5bXTwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBub3JtYWwgcnVsZTwvdGQ+CisgKiAgICAgPHRkPk9taXQgdGhlIG9wdGlvbmFsIHRleHQgaWYgdGhlIG51bWJlciBpcyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MgZGl2aXNvcjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBuZWdhdGl2ZS1udW1iZXIgcnVsZTwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBpbXByb3Blci1mcmFjdGlvbiBydWxlPC90ZD4KKyAqICAgICA8dGQ+T21pdCB0aGUgb3B0aW9uYWwgdGV4dCBpZiB0aGUgbnVtYmVyIGlzIGJldHdlZW4gMCBhbmQgMSAoc2FtZSBhcyBzcGVjaWZ5aW5nIGJvdGggYW4KKyAqICAgICB4LnggcnVsZSBhbmQgYSAwLnggcnVsZSk8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbWFzdGVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5PbWl0IHRoZSBvcHRpb25hbCB0ZXh0IGlmIHRoZSBudW1iZXIgaXMgYW4gaW50ZWdlciAoc2FtZSBhcyBzcGVjaWZ5aW5nIGJvdGggYW4geC54CisgKiAgICAgcnVsZSBhbmQgYW4geC4wIHJ1bGUpPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIHByb3Blci1mcmFjdGlvbiBydWxlPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIHJ1bGUgaW4gZnJhY3Rpb24gcnVsZSBzZXQ8L3RkPgorICogICAgIDx0ZD5PbWl0IHRoZSBvcHRpb25hbCB0ZXh0IGlmIG11bHRpcGx5aW5nIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBiYXNlIHZhbHVlIHlpZWxkcyAxLjwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPlRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciAoaS5lLiwgdGhlIHRleHQgYmV0d2VlbiB0aGUgdG9rZW4gY2hhcmFjdGVycykgbWF5IHRha2Ugb25lCisgKiBvZiB0aHJlZSBmb3Jtczo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI0MiI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NiIgdmFsaWduPSJ0b3AiPmEgcnVsZSBzZXQgbmFtZTwvdGQ+CisgKiAgICAgPHRkPlBlcmZvcm0gdGhlIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlciwgYW5kIGZvcm1hdCB0aGUgcmVzdWx0IHVzaW5nIHRoZQorICogICAgIG5hbWVkIHJ1bGUgc2V0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjQyIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY2IiB2YWxpZ249InRvcCI+YSBEZWNpbWFsRm9ybWF0IHBhdHRlcm48L3RkPgorICogICAgIDx0ZD5QZXJmb3JtIHRoZSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGFuZCBmb3JtYXQgdGhlIHJlc3VsdCB1c2luZyBhCisgKiAgICAgRGVjaW1hbEZvcm1hdCB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0dGVybi4mbmJzcDsgVGhlIHBhdHRlcm4gbXVzdCBiZWdpbiB3aXRoIDAgb3IgIy48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI0MiI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NiIgdmFsaWduPSJ0b3AiPm5vdGhpbmc8L3RkPgorICogICAgIDx0ZD5QZXJmb3JtIHRoZSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGFuZCBmb3JtYXQgdGhlIHJlc3VsdCB1c2luZyB0aGUgcnVsZQorICogICAgIHNldCBjb250YWluaW5nIHRoZSBjdXJyZW50IHJ1bGUsIGV4Y2VwdDo8dWw+CisgKiAgICAgICA8bGk+WW91IGNhbid0IGhhdmUgYW4gZW1wdHkgc3Vic3RpdHV0aW9uIGRlc2NyaXB0b3Igd2l0aCBhID09IHN1YnN0aXR1dGlvbi48L2xpPgorICogICAgICAgPGxpPklmIHlvdSBvbWl0IHRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciBpbiBhICZndDsmZ3Q7IHN1YnN0aXR1dGlvbiBpbiBhIGZyYWN0aW9uIHJ1bGUsCisgKiAgICAgICAgIGZvcm1hdCB0aGUgcmVzdWx0IG9uZSBkaWdpdCBhdCBhIHRpbWUgdXNpbmcgdGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgcnVsZS48L2xpPgorICogICAgICAgPGxpPklmIHlvdSBvbWl0IHRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciBpbiBhICZsdDsmbHQ7IHN1YnN0aXR1dGlvbiBpbiBhIHJ1bGUgaW4gYQorICogICAgICAgICBmcmFjdGlvbiBydWxlIHNldCwgZm9ybWF0IHRoZSByZXN1bHQgdXNpbmcgdGhlIGRlZmF1bHQgcnVsZSBzZXQgZm9yIHRoaXMgZm9ybWF0dGVyLjwvbGk+CisgKiAgICAgPC91bD4KKyAqICAgICA8L3RkPgorICogICA8L3RyPgorICogPC90YWJsZT4KKyAqCisgKiA8cD5XaGl0ZXNwYWNlIGlzIGlnbm9yZWQgYmV0d2VlbiBhIHJ1bGUgc2V0IG5hbWUgYW5kIGEgcnVsZSBzZXQgYm9keSwgYmV0d2VlbiBhIHJ1bGUKKyAqIGRlc2NyaXB0b3IgYW5kIGEgcnVsZSBib2R5LCBvciBiZXR3ZWVuIHJ1bGVzLiBJZiBhIHJ1bGUgYm9keSBiZWdpbnMgd2l0aCBhbiBhcG9zdHJvcGhlLAorICogdGhlIGFwb3N0cm9waGUgaXMgaWdub3JlZCwgYnV0IGFsbCB0ZXh0IGFmdGVyIGl0IGJlY29tZXMgc2lnbmlmaWNhbnQgKHRoaXMgaXMgaG93IHlvdSBjYW4KKyAqIGhhdmUgYSBydWxlJ3MgcnVsZSB0ZXh0IGJlZ2luIHdpdGggd2hpdGVzcGFjZSkuIFRoZXJlIGlzIG5vIGVzY2FwZSBmdW5jdGlvbjogdGhlIHNlbWljb2xvbgorICogaXMgbm90IGFsbG93ZWQgaW4gcnVsZSBzZXQgbmFtZXMgb3IgaW4gcnVsZSB0ZXh0LCBhbmQgdGhlIGNvbG9uIGlzIG5vdCBhbGxvd2VkIGluIHJ1bGUgc2V0CisgKiBuYW1lcy4gVGhlIGNoYXJhY3RlcnMgYmVnaW5uaW5nIGEgc3Vic3RpdHV0aW9uIHRva2VuIGFyZSBhbHdheXMgdHJlYXRlZCBhcyB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIHN1YnN0aXR1dGlvbiB0b2tlbi48L3A+CisgKgorICogPHA+U2VlIHRoZSByZXNvdXJjZSBkYXRhIGFuZCB0aGUgZGVtbyBwcm9ncmFtIGZvciBhbm5vdGF0ZWQgZXhhbXBsZXMgb2YgcmVhbCBydWxlIHNldHMKKyAqIHVzaW5nIHRoZXNlIGZlYXR1cmVzLjwvcD4KKyAqCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKiBAc2VlIE51bWJlckZvcm1hdAorICogQHNlZSBEZWNpbWFsRm9ybWF0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBleHRlbmRzIE51bWJlckZvcm1hdCB7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNzY2NDI1Mjc2NTU3NTM5NTA2OEw7CisgICAgCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTIwMDQgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb2RlIHRoYXQgdGVsbHMgdGhlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIHNwZWxsb3V0IGZvcm1hdHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNQRUxMT1VUID0gMTsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGNvZGUgdGhhdCB0ZWxscyB0aGUgY29uc3RydWN0b3IgdG8gY3JlYXRlIGFuIG9yZGluYWwgZm9ybWF0dGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1JESU5BTCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb2RlIHRoYXQgdGVsbHMgdGhlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIGR1cmF0aW9uIGZvcm1hdHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERVUkFUSU9OID0gMzsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZm9ybWF0dGVyJ3MgcnVsZSBzZXRzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IE5GUnVsZVNldFtdIHJ1bGVTZXRzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgcG9pbnRlciB0byB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4gIFRoaXMgaXMgYWx3YXlzIGluY2x1ZGVkCisgICAgICogaW4gcnVsZVNldHMuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgTkZSdWxlU2V0IGRlZmF1bHRSdWxlU2V0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBmb3JtYXR0ZXIncyBsb2NhbGUuICBUaGlzIGlzIHVzZWQgdG8gY3JlYXRlIERlY2ltYWxGb3JtYXRTeW1ib2xzIGFuZAorICAgICAqIENvbGxhdG9yIG9iamVjdHMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBsb2NhbGUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQ29sbGF0b3IgdG8gYmUgdXNlZCBpbiBsZW5pZW50IHBhcnNpbmcuICBUaGlzIHZhcmlhYmxlIGlzIGxhenktZXZhbHVhdGVkOgorICAgICAqIHRoZSBjb2xsYXRvciBpcyBhY3R1YWxseSBjcmVhdGVkIHRoZSBmaXJzdCB0aW1lIHRoZSBjbGllbnQgZG9lcyBhIHBhcnNlCisgICAgICogd2l0aCBsZW5pZW50LXBhcnNlIG1vZGUgdHVybmVkIG9uLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgdGhhdCBhbnkgRGVjaW1hbEZvcm1hdCBvYmplY3RzIHRoaXMKKyAgICAgKiBmb3JtYXR0ZXIgdXNlcyBzaG91bGQgdXNlLiAgVGhpcyB2YXJpYWJsZSBpcyBsYXp5LWV2YWx1YXRlZDogaXQgaXNuJ3QKKyAgICAgKiBmaWxsZWQgaW4gaWYgdGhlIHJ1bGUgc2V0IG5ldmVyIHVzZXMgYSBEZWNpbWFsRm9ybWF0IHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGVjaW1hbEZvcm1hdFN5bWJvbHMgPSBudWxsOworCisgICAgLyoqCisgICAgICogRmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIgbGVuaWVudCBwYXJzZSBtb2RlIGlzIG9uIG9yIG9mZi4gIE9mZiBieSBkZWZhdWx0LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbGVuaWVudFBhcnNlID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgZGVzY3JpcHRpb24gc3BlY2lmaWVzIGxlbmllbnQtcGFyc2UgcnVsZXMsIHRoZXkncmUgc3RvcmVkIGhlcmUgdW50aWwKKyAgICAgKiB0aGUgY29sbGF0b3IgaXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBTdHJpbmcgbGVuaWVudFBhcnNlUnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgZGVzY3JpcHRpb24gc3BlY2lmaWVzIHBvc3QtcHJvY2VzcyBydWxlcywgdGhleSdyZSBzdG9yZWQgaGVyZSB1bnRpbAorICAgICAqIHBvc3QtcHJvY2Vzc2luZyBpcyByZXF1aXJlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBTdHJpbmcgcG9zdFByb2Nlc3NSdWxlczsKKworICAgIC8qKgorICAgICAqIFBvc3QgcHJvY2Vzc29yIGxhemlseSBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBwb3N0UHJvY2Vzc1J1bGVzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IFJCTkZQb3N0UHJvY2Vzc29yIHBvc3RQcm9jZXNzb3I7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6YXRpb25zIGZvciBydWxlIHNldCBuYW1lcy4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgcnVsZVNldERpc3BsYXlOYW1lczsKKworICAgIC8qKgorICAgICAqIFRoZSBwdWJsaWMgcnVsZSBzZXQgbmFtZXM7CisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gcHVibGljUnVsZVNldE5hbWVzOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgID0gIElDVURlYnVnLmVuYWJsZWQoInJibmYiKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3RvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24gb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogc3ludGF4LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpbml0KGRlc2NyaXB0aW9uLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgbG9jYWxpemF0aW9ucyBkYXRhIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwdWJsaWMKKyAgICAgKiBydWxlIHNldHMgYW5kIHRoZWlyIGxvY2FsaXplZCBkaXNwbGF5IG5hbWVzIGZvciBkaWZmZXJlbnQKKyAgICAgKiBsb2NhbGVzLiBUaGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbGlzdCBpcyBhbiBhcnJheSBvZiB0aGUgbmFtZXMKKyAgICAgKiBvZiB0aGUgcHVibGljIHJ1bGUgc2V0cy4gIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoaXMgYXJyYXkgaXMKKyAgICAgKiB0aGUgaW5pdGlhbCBkZWZhdWx0IHJ1bGVzZXQuICBUaGUgcmVtYWluaW5nIGVsZW1lbnRzIGluIHRoZQorICAgICAqIGxpc3QgYXJlIGFycmF5cyBvZiBsb2NhbGl6YXRpb25zIG9mIHRoZSBuYW1lcyBvZiB0aGUgcHVibGljCisgICAgICogcnVsZSBzZXRzLiAgRWFjaCBvZiB0aGVzZSBpcyBvbmUgbG9uZ2VyIHRoYW4gdGhlIGluaXRpYWwgYXJyYXksCisgICAgICogd2l0aCB0aGUgZmlyc3QgU3RyaW5nIGJlaW5nIHRoZSBVTG9jYWxlIElELCBhbmQgdGhlIHJlbWFpbmluZworICAgICAqIFN0cmluZ3MgYmVpbmcgdGhlIGxvY2FsaXphdGlvbnMgb2YgdGhlIHJ1bGUgc2V0IG5hbWVzLCBpbiB0aGUKKyAgICAgKiBzYW1lIG9yZGVyIGFzIHRoZSBpbml0aWFsIGFycmF5LgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBvZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBzeW50YXguCisgICAgICogQHBhcmFtIGxvY2FsaXphdGlvbnMgYSBsaXN0IG9mIGxvY2FsaXphdGlvbnMgZm9yIHRoZSBydWxlIHNldAorICAgICAqIG5hbWVzIGluIHRoZSBkZXNjcmlwdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMpIHsKKyAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIGxvY2FsaXphdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBiZWhhdmVzIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwYXNzZWQgaW4uICBUaGUgZm9ybWF0dGVyIHVzZXMgdGhlIHNwZWNpZmllZCBsb2NhbGUgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAqIGNoYXJhY3RlcnMgdG8gdXNlIHdoZW4gZm9ybWF0dGluZyBpbiBudW1lcmFscywgYW5kIHRvIGRlZmluZSBlcXVpdmFsZW5jZXMKKyAgICAgKiBmb3IgbGVuaWVudCBwYXJzaW5nLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBvZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBzeW50YXguCisgICAgICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSwgd2hpY2ggZ292ZXJucyB3aGljaCBjaGFyYWN0ZXJzIGFyZSB1c2VkIGZvcgorICAgICAqIGZvcm1hdHRpbmcgdmFsdWVzIGluIG51bWVyYWxzLCBhbmQgd2hpY2ggY2hhcmFjdGVycyBhcmUgZXF1aXZhbGVudCBpbgorICAgICAqIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFN0cmluZyBkZXNjcmlwdGlvbiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKGRlc2NyaXB0aW9uLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBzcGVjaWZpZWQgbG9jYWxlIHRvIGRldGVybWluZSB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIHRvIHVzZSB3aGVuIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMsIGFuZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzCisgICAgICogZm9yIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24gb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogc3ludGF4LgorICAgICAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUsIHdoaWNoIGdvdmVybnMgd2hpY2ggY2hhcmFjdGVycyBhcmUgdXNlZCBmb3IKKyAgICAgKiBmb3JtYXR0aW5nIHZhbHVlcyBpbiBudW1lcmFscywgYW5kIHdoaWNoIGNoYXJhY3RlcnMgYXJlIGVxdWl2YWxlbnQgaW4KKyAgICAgKiBsZW5pZW50IHBhcnNpbmcuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFN0cmluZyBkZXNjcmlwdGlvbiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBiZWhhdmVzIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwYXNzZWQgaW4uICBUaGUgZm9ybWF0dGVyIHVzZXMgdGhlIHNwZWNpZmllZCBsb2NhbGUgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAqIGNoYXJhY3RlcnMgdG8gdXNlIHdoZW4gZm9ybWF0dGluZyBpbiBudW1lcmFscywgYW5kIHRvIGRlZmluZSBlcXVpdmFsZW5jZXMKKyAgICAgKiBmb3IgbGVuaWVudCBwYXJzaW5nLgorICAgICAqIDxwPgorICAgICAqIFRoZSBsb2NhbGl6YXRpb25zIGRhdGEgcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHB1YmxpYworICAgICAqIHJ1bGUgc2V0cyBhbmQgdGhlaXIgbG9jYWxpemVkIGRpc3BsYXkgbmFtZXMgZm9yIGRpZmZlcmVudAorICAgICAqIGxvY2FsZXMuIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGFuIGFycmF5IG9mIHRoZSBuYW1lcworICAgICAqIG9mIHRoZSBwdWJsaWMgcnVsZSBzZXRzLiAgVGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhpcyBhcnJheSBpcworICAgICAqIHRoZSBpbml0aWFsIGRlZmF1bHQgcnVsZXNldC4gIFRoZSByZW1haW5pbmcgZWxlbWVudHMgaW4gdGhlCisgICAgICogbGlzdCBhcmUgYXJyYXlzIG9mIGxvY2FsaXphdGlvbnMgb2YgdGhlIG5hbWVzIG9mIHRoZSBwdWJsaWMKKyAgICAgKiBydWxlIHNldHMuICBFYWNoIG9mIHRoZXNlIGlzIG9uZSBsb25nZXIgdGhhbiB0aGUgaW5pdGlhbCBhcnJheSwKKyAgICAgKiB3aXRoIHRoZSBmaXJzdCBTdHJpbmcgYmVpbmcgdGhlIFVMb2NhbGUgSUQsIGFuZCB0aGUgcmVtYWluaW5nCisgICAgICogU3RyaW5ncyBiZWluZyB0aGUgbG9jYWxpemF0aW9ucyBvZiB0aGUgcnVsZSBzZXQgbmFtZXMsIGluIHRoZQorICAgICAqIHNhbWUgb3JkZXIgYXMgdGhlIGluaXRpYWwgYXJyYXkuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIEEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdHRlcidzIGRlc2lyZWQgYmVoYXZpb3IuCisgICAgICogU2VlIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIHN5bnRheC4KKyAgICAgKiBAcGFyYW0gbG9jYWxpemF0aW9ucyBhIGxpc3Qgb2YgbG9jYWxpemF0aW9ucyBmb3IgdGhlIHJ1bGUgc2V0IG5hbWVzIGluIHRoZSBkZXNjcmlwdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIEEgdWxvY2FsZSB0aGF0IGdvdmVybnMgd2hpY2ggY2hhcmFjdGVycyBhcmUgdXNlZCBmb3IKKyAgICAgKiBmb3JtYXR0aW5nIHZhbHVlcyBpbiBudW1lcmFscywgYW5kIGRldGVybWluZXMgd2hpY2ggY2hhcmFjdGVycyBhcmUgZXF1aXZhbGVudCBpbgorICAgICAqIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICBpbml0KGRlc2NyaXB0aW9uLCBsb2NhbGl6YXRpb25zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZyb20gYSBwcmVkZWZpbmVkIGRlc2NyaXB0aW9uLiAgVGhlIHNlbGVjdG9yCisgICAgICogY29kZSBjaG9vc2VkIGFtb25nIHRocmVlIHBvc3NpYmxlIHByZWRlZmluZWQgZm9ybWF0czogc3BlbGxvdXQsIG9yZGluYWwsCisgICAgICogYW5kIGR1cmF0aW9uLgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIGZvcm1hdHRlci4KKyAgICAgKiBAcGFyYW0gZm9ybWF0IEEgc2VsZWN0b3IgY29kZSBzcGVjaWZ5aW5nIHdoaWNoIGtpbmQgb2YgZm9ybWF0dGVyIHRvIGNyZWF0ZSBmb3IgdGhhdAorICAgICAqIGxvY2FsZS4gIFRoZXJlIGFyZSB0aHJlZSBsZWdhbCB2YWx1ZXM6IFNQRUxMT1VULCB3aGljaCBjcmVhdGVzIGEgZm9ybWF0dGVyIHRoYXQKKyAgICAgKiBzcGVsbHMgb3V0IGEgdmFsdWUgaW4gd29yZHMgaW4gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UsIE9SRElOQUwsIHdoaWNoIGF0dGFjaGVzCisgICAgICogYW4gb3JkaW5hbCBzdWZmaXggZnJvbSB0aGUgZGVzaXJlZCBsYW5ndWFnZSB0byB0aGUgZW5kIG9mIGEgbnVtYmVyIChlLmcuICIxMjNyZCIpLAorICAgICAqIGFuZCBEVVJBVElPTiwgd2hpY2ggZm9ybWF0cyBhIGR1cmF0aW9uIGluIHNlY29uZHMgYXMgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlIGxvY2FsZSwgaW50IGZvcm1hdCkgeworICAgICAgICB0aGlzKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGZvcm1hdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIGEgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbi4gIFRoZSBzZWxlY3RvcgorICAgICAqIGNvZGUgY2hvb3NlZCBhbW9uZyB0aHJlZSBwb3NzaWJsZSBwcmVkZWZpbmVkIGZvcm1hdHM6IHNwZWxsb3V0LCBvcmRpbmFsLAorICAgICAqIGFuZCBkdXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBmb3JtYXR0ZXIuCisgICAgICogQHBhcmFtIGZvcm1hdCBBIHNlbGVjdG9yIGNvZGUgc3BlY2lmeWluZyB3aGljaCBraW5kIG9mIGZvcm1hdHRlciB0byBjcmVhdGUgZm9yIHRoYXQKKyAgICAgKiBsb2NhbGUuICBUaGVyZSBhcmUgdGhyZWUgbGVnYWwgdmFsdWVzOiBTUEVMTE9VVCwgd2hpY2ggY3JlYXRlcyBhIGZvcm1hdHRlciB0aGF0CisgICAgICogc3BlbGxzIG91dCBhIHZhbHVlIGluIHdvcmRzIGluIHRoZSBkZXNpcmVkIGxhbmd1YWdlLCBPUkRJTkFMLCB3aGljaCBhdHRhY2hlcworICAgICAqIGFuIG9yZGluYWwgc3VmZml4IGZyb20gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UgdG8gdGhlIGVuZCBvZiBhIG51bWJlciAoZS5nLiAiMTIzcmQiKSwKKyAgICAgKiBhbmQgRFVSQVRJT04sIHdoaWNoIGZvcm1hdHMgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoVUxvY2FsZSBsb2NhbGUsIGludCBmb3JtYXQpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9SQk5GX0JBU0VfTkFNRSwgbG9jYWxlKTsKKworICAgICAgICAvLyBUT0RPOiBkZXRlcm1pbmUgY29ycmVjdCBhY3R1YWwvdmFsaWQgbG9jYWxlLiAgTm90ZSBhbWJpZ3VpdHkKKyAgICAgICAgLy8gaGVyZSAtLSBkbyBhY3R1YWwvdmFsaWQgcmVmZXIgdG8gcGF0dGVybiwgRGVjaW1hbEZvcm1hdFN5bWJvbHMsCisgICAgICAgIC8vIG9yIENvbGxhdG9yPworICAgICAgICBVTG9jYWxlIHVsb2MgPSBidW5kbGUuZ2V0VUxvY2FsZSgpOworICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gIiI7CisgICAgICAgIFN0cmluZ1tdW10gbG9jYWxpemF0aW9ucyA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gYnVuZGxlLmdldFN0cmluZyhydWxlbmFtZXNbZm9ybWF0LTFdKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGxvY2IgPSBidW5kbGUuZ2V0KGxvY25hbWVzW2Zvcm1hdC0xXSk7CisgICAgICAgICAgICBsb2NhbGl6YXRpb25zID0gbmV3IFN0cmluZ1tsb2NiLmdldFNpemUoKV1bXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxpemF0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbnNbaV0gPSBsb2NiLmdldChpKS5nZXRTdHJpbmdBcnJheSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gbWlnaHQgaGF2ZSBkZXNjcmlwdGlvbiBhbmQgbm8gbG9jYWxpemF0aW9ucywgb3Igbm8gZGVzY3JpcHRpb24uLi4KKyAgICAgICAgfQorCisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIGxvY2FsaXphdGlvbnMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHJ1bGVuYW1lcyA9IHsKKyAgICAgICAgIlNwZWxsb3V0UnVsZXMiLCAiT3JkaW5hbFJ1bGVzIiwgIkR1cmF0aW9uUnVsZXMiLAorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gbG9jbmFtZXMgPSB7CisgICAgICAgICJTcGVsbG91dExvY2FsaXphdGlvbnMiLCAiT3JkaW5hbExvY2FsaXphdGlvbnMiLCAiRHVyYXRpb25Mb2NhbGl6YXRpb25zIiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIGEgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbi4gIFVzZXMgdGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGZvcm1hdCBBIHNlbGVjdG9yIGNvZGUgc3BlY2lmeWluZyB3aGljaCBraW5kIG9mIGZvcm1hdHRlciB0byBjcmVhdGUuCisgICAgICogVGhlcmUgYXJlIHRocmVlIGxlZ2FsIHZhbHVlczogU1BFTExPVVQsIHdoaWNoIGNyZWF0ZXMgYSBmb3JtYXR0ZXIgdGhhdCBzcGVsbHMKKyAgICAgKiBvdXQgYSB2YWx1ZSBpbiB3b3JkcyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5neWFnZSwgT1JESU5BTCwgd2hpY2ggYXR0YWNoZXMKKyAgICAgKiBhbiBvcmRpbmFsIHN1ZmZpeCBmcm9tIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIHRvIGEgbnVtZXJhbCwgYW5kCisgICAgICogRFVSQVRJT04sIHdoaWNoIGZvcm1hdHMgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGludCBmb3JtYXQpIHsKKyAgICAgICAgdGhpcyhVTG9jYWxlLmdldERlZmF1bHQoKSwgZm9ybWF0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEdXBsaWNhdGVzIHRoaXMgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gQSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gUnVsZUJhc2VkTnVtYmVyRm9ybWF0cyBmb3IgZXF1YWxpdHkuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIGZvcm1hdHRlciB0byBjb21wYXJlIGFnYWluc3QgdGhpcyBvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gZm9ybWF0dGVycyBoYXZlIGlkZW50aWNhbCBiZWhhdmlvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgLy8gaWYgdGhlIG90aGVyIG9iamVjdCBpc24ndCBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCwgdGhhdCdzCisgICAgICAgIC8vIGFsbCB3ZSBuZWVkIHRvIGtub3cKKyAgICAgICAgaWYgKCEodGhhdCBpbnN0YW5jZW9mIFJ1bGVCYXNlZE51bWJlckZvcm1hdCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNhc3QgdGhlIG90aGVyIG9iamVjdCdzIHBvaW50ZXIgdG8gYSBwb2ludGVyIHRvIGEKKyAgICAgICAgICAgIC8vIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQyID0gKFJ1bGVCYXNlZE51bWJlckZvcm1hdCl0aGF0OworCisgICAgICAgICAgICAvLyBjb21wYXJlIHRoZWlyIGxvY2FsZXMgYW5kIGxlbmllbnQtcGFyc2UgbW9kZXMKKyAgICAgICAgICAgIGlmICghbG9jYWxlLmVxdWFscyh0aGF0Mi5sb2NhbGUpIHx8IGxlbmllbnRQYXJzZSAhPSB0aGF0Mi5sZW5pZW50UGFyc2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoYXQgc3VjY2VlZHMsIHRoZW4gY29tcGFyZSB0aGVpciBydWxlIHNldCBsaXN0cworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzLmxlbmd0aCAhPSB0aGF0Mi5ydWxlU2V0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5lcXVhbHModGhhdDIucnVsZVNldHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIGNvbnRhaW5pbmcgYSBydWxlIHNldCB0aGF0IHdpbGwgcHJvZHVjZSBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAqIHdpdGggaWRlbnRpY2FsIGJlaGF2aW9yIHRvIHRoaXMgb25lLiAgVGhpcyB3b24ndCBuZWNlc3NhcmlseSBiZSBpZGVudGljYWwKKyAgICAgKiB0byB0aGUgcnVsZSBzZXQgZGVzY3JpcHRpb24gdGhhdCB3YXMgb3JpZ2luYWxseSBwYXNzZWQgaW4sIGJ1dCB3aWxsIHByb2R1Y2UKKyAgICAgKiB0aGUgc2FtZSByZXN1bHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKworICAgICAgICAvLyBhY2N1bXVsYXRlIHRoZSBkZXNjcmlwdGlvbnMgb2YgYWxsIHRoZSBydWxlIHNldHMgaW4gYQorICAgICAgICAvLyBTdHJpbmdCdWZmZXIsIHRoZW4gY2FzdCBpdCB0byBhIFN0cmluZyBhbmQgcmV0dXJuIGl0CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocnVsZVNldHNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdyaXRlcyB0aGlzIG9iamVjdCB0byBhIHN0cmVhbS4KKyAgICAgKiBAcGFyYW0gb3V0IFRoZSBzdHJlYW0gdG8gd3JpdGUgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtIG91dCkKKyAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geworICAgICAgICAvLyB3ZSBqdXN0IHdyaXRlIHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9uIHRvIHRoZSBzdHJlYW0sIHNvIHdlCisgICAgICAgIC8vIGhhdmUgYW4gaW1wbGVtZW50YXRpb24taW5kZXBlbmRlbnQgc3RyZWFtaW5nIGZvcm1hdAorICAgICAgICBvdXQud3JpdGVVVEYodGhpcy50b1N0cmluZygpKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KHRoaXMubG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkcyB0aGlzIG9iamVjdCBpbiBmcm9tIGEgc3RyZWFtLgorICAgICAqIEBwYXJhbSBpbiBUaGUgc3RyZWFtIHRvIHJlYWQgZnJvbS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtIGluKQorICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIC8vIHJlYWQgdGhlIGRlc2NyaXB0aW9uIGluIGZyb20gdGhlIHN0cmVhbQorICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSBpbi5yZWFkVVRGKCk7CisgICAgICAgIFVMb2NhbGUgbG9jOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvYyA9IChVTG9jYWxlKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJ1aWxkIGEgYnJhbmQtbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIHRoZSBkZXNjcmlwdGlvbiwKKyAgICAgICAgLy8gdGhlbiBzdGVhbCBpdHMgc3Vic3RydWN0dXJlLiAgVGhpcyBvYmplY3QncyBzdWJzdHJ1Y3R1cmUgYW5kCisgICAgICAgIC8vIHRoZSB0ZW1wb3JhcnkgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGRyb3Agb24gdGhlIGZsb29yIGFuZAorICAgICAgICAvLyBnZXQgc3dlcHQgdXAgYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0ZW1wID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChkZXNjcmlwdGlvbiwgbG9jKTsKKyAgICAgICAgcnVsZVNldHMgPSB0ZW1wLnJ1bGVTZXRzOworICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHRlbXAuZGVmYXVsdFJ1bGVTZXQ7CisgICAgICAgIHB1YmxpY1J1bGVTZXROYW1lcyA9IHRlbXAucHVibGljUnVsZVNldE5hbWVzOworICAgICAgICBkZWNpbWFsRm9ybWF0U3ltYm9scyA9IHRlbXAuZGVjaW1hbEZvcm1hdFN5bWJvbHM7CisgICAgICAgIGxvY2FsZSA9IHRlbXAubG9jYWxlOworICAgIH0KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHB1YmxpYyBBUEkgZnVuY3Rpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGlzIGZvcm1hdHRlcidzIHB1YmxpYyBydWxlIHNldHMuCisgICAgICogQHJldHVybiBBIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGlzIGZvcm1hdHRlcidzIHB1YmxpYyBydWxlIHNldHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFJ1bGVTZXROYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSlwdWJsaWNSdWxlU2V0TmFtZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIHRoZXJlIGFyZSBsb2NhbGUtc3BlY2lmaWMgZGlzcGxheSBuYW1lcworICAgICAqIGZvciB0aGUgcnVsZSBzZXRzIGluIHRoaXMgZm9ybWF0dGVyLiAgSWYgdGhlcmUgYXJlIG5vIGxvY2FsaXplZCBkaXNwbGF5IG5hbWVzLCByZXR1cm4gbnVsbC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSB1bG9jYWxlcyBmb3Igd2hpY2ggdGhlcmUgaXMgcnVsZSBzZXQgZGlzcGxheSBuYW1lIGluZm9ybWF0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZVtdIGdldFJ1bGVTZXREaXNwbGF5TmFtZUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChydWxlU2V0RGlzcGxheU5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNldCBzID0gcnVsZVNldERpc3BsYXlOYW1lcy5rZXlTZXQoKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZXMgPSAoU3RyaW5nW10pcy50b0FycmF5KG5ldyBTdHJpbmdbcy5zaXplKCldKTsKKyAgICAgICAgICAgIEFycmF5cy5zb3J0KGxvY2FsZXMsIFN0cmluZy5DQVNFX0lOU0VOU0lUSVZFX09SREVSKTsKKyAgICAgICAgICAgIFVMb2NhbGVbXSByZXN1bHQgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbaV0gPSBuZXcgVUxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBnZXROYW1lTGlzdEZvckxvY2FsZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAobG9jYWxlICE9IG51bGwgJiYgcnVsZVNldERpc3BsYXlOYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IHsgbG9jYWxlLmdldEJhc2VOYW1lKCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLmdldEJhc2VOYW1lKCkgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlTmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbG5hbWUgPSBsb2NhbGVOYW1lc1tpXTsKKyAgICAgICAgICAgICAgICB3aGlsZSAobG5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gKFN0cmluZ1tdKXJ1bGVTZXREaXNwbGF5TmFtZXMuZ2V0KGxuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsbmFtZSA9IFVMb2NhbGUuZ2V0RmFsbGJhY2sobG5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJ1bGUgc2V0IGRpc3BsYXkgbmFtZXMgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuICBUaGVzZSBhcmUgaW4gdGhlIHNhbWUgb3JkZXIKKyAgICAgKiBhcyB0aG9zZSByZXR1cm5lZCBieSBnZXRSdWxlU2V0TmFtZXMuICBUaGUgbG9jYWxlIGlzIG1hdGNoZWQgYWdhaW5zdCB0aGUgbG9jYWxlcyBmb3IKKyAgICAgKiB3aGljaCB0aGVyZSBpcyBkaXNwbGF5IG5hbWUgZGF0YSwgdXNpbmcgbm9ybWFsIGZhbGxiYWNrIHJ1bGVzLiAgSWYgbm8gbG9jYWxlIG1hdGNoZXMsCisgICAgICogdGhlIGRlZmF1bHQgZGlzcGxheSBuYW1lcyBhcmUgcmV0dXJuZWQuICAoVGhlc2UgYXJlIHRoZSBpbnRlcm5hbCBydWxlIHNldCBuYW1lcyBtaW51cworICAgICAqIHRoZSBsZWFkaW5nICclJy4pCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB0aGUgbG9jYWxlcyB0aGF0IGhhdmUgZGlzcGxheSBuYW1lIGluZm9ybWF0aW9uCisgICAgICogQHNlZSAjZ2V0UnVsZVNldE5hbWVzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGdldE5hbWVMaXN0Rm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgIGlmIChuYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZ1tdKW5hbWVzLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgbmFtZXMgPSBnZXRSdWxlU2V0TmFtZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbmFtZXNbaV0gPSBuYW1lc1tpXS5zdWJzdHJpbmcoMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcnVsZSBzZXQgZGlzcGxheSBuYW1lcyBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB0aGUgZGlzcGxheSBuYW1lcworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHNlZSAjZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRSdWxlU2V0RGlzcGxheU5hbWVzKCkgeworICAgICAgICByZXR1cm4gZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBydWxlIHNldCBkaXNwbGF5IG5hbWUgZm9yIHRoZSBwcm92aWRlZCBydWxlIHNldCBhbmQgbG9jYWxlLgorICAgICAqIFRoZSBsb2NhbGUgaXMgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBsb2NhbGVzIGZvciB3aGljaCB0aGVyZSBpcyBkaXNwbGF5IG5hbWUgZGF0YSwgdXNpbmcKKyAgICAgKiBub3JtYWwgZmFsbGJhY2sgcnVsZXMuICBJZiBubyBsb2NhbGUgbWF0Y2hlcywgdGhlIGRlZmF1bHQgZGlzcGxheSBuYW1lIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIHJ1bGUgc2V0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAc2VlICNnZXRSdWxlU2V0RGlzcGxheU5hbWVzCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgcnVsZVNldE5hbWUgaXMgbm90IGEgdmFsaWQgcnVsZSBzZXQgbmFtZSBmb3IgdGhpcyBmb3JtYXQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJ1bGVTZXREaXNwbGF5TmFtZShTdHJpbmcgcnVsZVNldE5hbWUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZ1tdIHJzbmFtZXMgPSBwdWJsaWNSdWxlU2V0TmFtZXM7CisgICAgICAgIGZvciAoaW50IGl4ID0gMDsgaXggPCByc25hbWVzLmxlbmd0aDsgKytpeCkgeworICAgICAgICAgICAgaWYgKHJzbmFtZXNbaXhdLmVxdWFscyhydWxlU2V0TmFtZSkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGdldE5hbWVMaXN0Rm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVzW2l4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJzbmFtZXNbaXhdLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bnJlY29nbml6ZWQgcnVsZSBzZXQgbmFtZTogIiArIHJ1bGVTZXROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJ1bGUgc2V0IGRpc3BsYXkgbmFtZSBmb3IgdGhlIHByb3ZpZGVkIHJ1bGUgc2V0IGluIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIHJ1bGUgc2V0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAc2VlICNnZXRSdWxlU2V0RGlzcGxheU5hbWUoU3RyaW5nLFVMb2NhbGUpCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRSdWxlU2V0RGlzcGxheU5hbWUoU3RyaW5nIHJ1bGVTZXROYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRSdWxlU2V0RGlzcGxheU5hbWUocnVsZVNldE5hbWUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0LgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIG5hbWUgb2YgdGhlIHJ1bGUgc2V0IHRvIGZvcm1hdCB0aGUgbnVtYmVyIHdpdGguCisgICAgICogVGhpcyBtdXN0IGJlIHRoZSBuYW1lIG9mIGEgdmFsaWQgcHVibGljIHJ1bGUgc2V0IGZvciB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZyBydWxlU2V0KSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHJ1bGVTZXQuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3QgdXNlIGludGVybmFsIHJ1bGUgc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIGZpbmRSdWxlU2V0KHJ1bGVTZXQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0LgorICAgICAqIChJZiB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0IHNwZWNpZmllcyBhIG1hc3RlciBbInguMCJdIHJ1bGUsIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBpZ25vcmVzIGl0LiAgQ29udmVydCB0aGUgbnVtYmVyIHRvIGEgZG91YmxlIGZpcnN0IGlmIHlvdSBuZWQgaXQuKSAgVGhpcworICAgICAqIGZ1bmN0aW9uIHByZXNlcnZlcyBhbGwgdGhlIHByZWNpc2lvbiBpbiB0aGUgbG9uZy0tIGl0IGRvZXNuJ3QgY29udmVydCBpdAorICAgICAqIHRvIGEgZG91YmxlLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIG5hbWUgb2YgdGhlIHJ1bGUgc2V0IHRvIGZvcm1hdCB0aGUgbnVtYmVyIHdpdGguCisgICAgICogVGhpcyBtdXN0IGJlIHRoZSBuYW1lIG9mIGEgdmFsaWQgcHVibGljIHJ1bGUgc2V0IGZvciB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KGxvbmcgbnVtYmVyLCBTdHJpbmcgcnVsZVNldCkgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChydWxlU2V0LnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbid0IHVzZSBpbnRlcm5hbCBydWxlIHNldCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLCBmaW5kUnVsZVNldChydWxlU2V0KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyB0aGUgc3BlY2lmaWVkIG51bWJlciB1c2luZyB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4KKyAgICAgKiAoVGhlIGRlZmF1bHQgcnVsZSBzZXQgaXMgdGhlIGxhc3QgcHVibGljIHJ1bGUgc2V0IGRlZmluZWQgaW4gdGhlIGRlc2NyaXB0aW9uLikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0LgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIEEgU3RyaW5nQnVmZmVyIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYXBwZW5kZWQgdG8uCisgICAgICogQHBhcmFtIGlnbm9yZSBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZXhhbWluZSBvciB1cGRhdGUgdGhlIGZpZWxkIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdG9BcHBlbmRUbworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBpZ25vcmUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBvbmUgb2YgdGhlIGluaGVyaXRlZCBmb3JtYXQoKSBtZXRob2RzLiAgU2luY2UgaXQgZG9lc24ndAorICAgICAgICAvLyBoYXZlIGEgd2F5IHRvIHNlbGVjdCB0aGUgcnVsZSBzZXQgdG8gdXNlLCBpdCBqdXN0IHVzZXMgdGhlCisgICAgICAgIC8vIGRlZmF1bHQgb25lCisgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKGZvcm1hdChudW1iZXIsIGRlZmF1bHRSdWxlU2V0KSk7CisgICAgICAgIHJldHVybiB0b0FwcGVuZFRvOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgdGhlIHNwZWNpZmllZCBudW1iZXIgdXNpbmcgdGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQuCisgICAgICogKFRoZSBkZWZhdWx0IHJ1bGUgc2V0IGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBkZWZpbmVkIGluIHRoZSBkZXNjcmlwdGlvbi4pCisgICAgICogKElmIHRoZSBzcGVjaWZpZWQgcnVsZSBzZXQgc3BlY2lmaWVzIGEgbWFzdGVyIFsieC4wIl0gcnVsZSwgdGhpcyBmdW5jdGlvbgorICAgICAqIGlnbm9yZXMgaXQuICBDb252ZXJ0IHRoZSBudW1iZXIgdG8gYSBkb3VibGUgZmlyc3QgaWYgeW91IG5lZCBpdC4pICBUaGlzCisgICAgICogZnVuY3Rpb24gcHJlc2VydmVzIGFsbCB0aGUgcHJlY2lzaW9uIGluIHRoZSBsb25nLS0gaXQgZG9lc24ndCBjb252ZXJ0IGl0CisgICAgICogdG8gYSBkb3VibGUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyBBIFN0cmluZ0J1ZmZlciB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGFwcGVuZGVkIHRvLgorICAgICAqIEBwYXJhbSBpZ25vcmUgVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGV4YW1pbmUgb3IgdXBkYXRlIHRoZSBmaWVsZCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRvQXBwZW5kVG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSkgeworICAgICAgICAvLyB0aGlzIGlzIG9uZSBvZiB0aGUgaW5oZXJpdGVkIGZvcm1hdCgpIG1ldGhvZHMuICBTaW5jZSBpdCBkb2Vzbid0CisgICAgICAgIC8vIGhhdmUgYSB3YXkgdG8gc2VsZWN0IHRoZSBydWxlIHNldCB0byB1c2UsIGl0IGp1c3QgdXNlcyB0aGUKKyAgICAgICAgLy8gZGVmYXVsdCBvbmUKKyAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoZm9ybWF0KG51bWJlciwgZGVmYXVsdFJ1bGVTZXQpKTsKKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEltcGxlbWVudCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDoKKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChudW1iZXIpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSW1wbGVtZW50IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChudW1iZXIpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSW1wbGVtZW50IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICAvLyBURU1QT1JBUlk6CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLmRvdWJsZVZhbHVlKCksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBzcGVjZmllZCBzdHJpbmcsIGJlZ2lubmluZyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLCBhY2NvcmRpbmcKKyAgICAgKiB0byB0aGlzIGZvcm1hdHRlcidzIHJ1bGVzLiAgVGhpcyB3aWxsIG1hdGNoIHRoZSBzdHJpbmcgYWdhaW5zdCBhbGwgb2YgdGhlCisgICAgICogZm9ybWF0dGVyJ3MgcHVibGljIHJ1bGUgc2V0cyBhbmQgcmV0dXJuIHRoZSB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb25nZXN0CisgICAgICogcGFyc2VhYmxlIHN1YnN0cmluZy4gIFRoaXMgZnVuY3Rpb24ncyBiZWhhdmlvciBpcyBhZmZlY3RlZCBieSB0aGUgbGVuaWVudAorICAgICAqIHBhcnNlIG1vZGUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIE9uIGVudHJ5LCBjb250YWlucyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIGluICJ0ZXh0IiB0byBleGFtaW5lLiAgT24gZXhpdCwgaGFzIGJlZW4gdXBkYXRlZCB0byBjb250YWluIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gInRleHQiIHRoYXQgd2Fzbid0IGNvbnN1bWVkIGJ5IHRoZSBwYXJzZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcGFyc2VkIHRleHQuICBUaGlzIHdpbGwgYmUgYW4KKyAgICAgKiBpbnN0YW5jZSBvZiBlaXRoZXIgTG9uZyBvciBEb3VibGUsIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSByZXN1bHQgaGFzIGEKKyAgICAgKiBmcmFjdGlvbmFsIHBhcnQuCisgICAgICogQHNlZSAjc2V0TGVuaWVudFBhcnNlTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworCisgICAgICAgIC8vIHBhcnNlUG9zaXRpb24gdGVsbHMgdXMgd2hlcmUgdG8gc3RhcnQgcGFyc2luZy4gIFdlIGNvcHkgdGhlCisgICAgICAgIC8vIHRleHQgaW4gdGhlIHN0cmluZyBmcm9tIGhlcmUgdG8gdGhlIGVuZCBpbnJvIGEgbmV3IHN0cmluZywKKyAgICAgICAgLy8gYW5kIGNyZWF0ZSBhIG5ldyBQYXJzZVBvc2l0aW9uIGFuZCByZXN1bHQgdmFyaWFibGUgdG8gdXNlCisgICAgICAgIC8vIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHBhcnNlIG9wZXJhdGlvbgorICAgICAgICBTdHJpbmcgd29ya2luZ1RleHQgPSB0ZXh0LnN1YnN0cmluZyhwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHdvcmtpbmdQb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBudWxsOworCisgICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIGxhcmdlc3QgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29uc3VtZWQgaW4KKyAgICAgICAgLy8gdGhlIHZhcmlvdXMgdHJpYWxzLCBhbmQgdGhlIHJlc3VsdCB0aGF0IGNvcnJlc3BvbmRzIHRvIGl0CisgICAgICAgIE51bWJlciByZXN1bHQgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBoaWdoV2F0ZXJNYXJrID0gbmV3IFBhcnNlUG9zaXRpb24od29ya2luZ1Bvcy5nZXRJbmRleCgpKTsKKworICAgICAgICAvLyBpdGVyYXRlIG92ZXIgdGhlIHB1YmxpYyBydWxlIHNldHMgKGJlZ2lubmluZyB3aXRoIHRoZSBkZWZhdWx0IG9uZSkKKyAgICAgICAgLy8gYW5kIHRyeSBwYXJzaW5nIHRoZSB0ZXh0IHdpdGggZWFjaCBvZiB0aGVtLiAgS2VlcCB0cmFjayBvZiB3aGljaAorICAgICAgICAvLyBvbmUgY29uc3VtZXMgdGhlIG1vc3QgY2hhcmFjdGVyczogdGhhdCdzIHRoZSBvbmUgdGhhdCBkZXRlcm1pbmVzCisgICAgICAgIC8vIHRoZSByZXN1bHQgd2UgcmV0dXJuCisgICAgICAgIGZvciAoaW50IGkgPSBydWxlU2V0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgLy8gc2tpcCBwcml2YXRlIHJ1bGUgc2V0cworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzW2ldLmdldE5hbWUoKS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRyeSBwYXJzaW5nIHRoZSBzdHJpbmcgd2l0aCB0aGUgcnVsZSBzZXQuICBJZiBpdCBnZXRzIHBhc3QgdGhlCisgICAgICAgICAgICAvLyBoaWdoLXdhdGVyIG1hcmssIHVwZGF0ZSB0aGUgaGlnaC13YXRlciBtYXJrIGFuZCB0aGUgcmVzdWx0CisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZVNldHNbaV0ucGFyc2Uod29ya2luZ1RleHQsIHdvcmtpbmdQb3MsIERvdWJsZS5NQVhfVkFMVUUpOworICAgICAgICAgICAgaWYgKHdvcmtpbmdQb3MuZ2V0SW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgaGlnaFdhdGVyTWFyay5zZXRJbmRleCh3b3JraW5nUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIHRoaXMgQVBJIG9uIFBhcnNlUG9zaXRpb24gZG9lc24ndCBleGlzdCBpbiAxLjEueAorICAgICAgICAgICAgLy8gICAgICAgICAgICBpZiAod29ya2luZ1Bvcy5nZXRFcnJvckluZGV4KCkgPiBoaWdoV2F0ZXJNYXJrLmdldEVycm9ySW5kZXgoKSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgaGlnaFdhdGVyTWFyay5zZXRFcnJvckluZGV4KHdvcmtpbmdQb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB3ZSBtYW5hZ2UgdG8gdXNlIHVwIGFsbCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLAorICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byB0cnkgYW55IG1vcmUgcnVsZSBzZXRzCisgICAgICAgICAgICBpZiAoaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpID09IHdvcmtpbmdUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmVzZXQgb3VyIGludGVybmFsIHBhcnNlIHBvc2l0aW9uIHRvIHRoZQorICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGFuZCB0cnkgYWdhaW4gd2l0aCB0aGUgbmV4dCBydWxlIHNldAorICAgICAgICAgICAgd29ya2luZ1Bvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFkZCB0aGUgaGlnaCB3YXRlciBtYXJrIHRvIG91ciBvcmlnaW5hbCBwYXJzZSBwb3NpdGlvbiBhbmQKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpOworICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhpcyBBUEkgb24gUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGV4aXN0IGluIDEuMS54CisgICAgICAgIC8vICAgICAgICBpZiAoaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgLy8gICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICsgaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFR1cm5zIGxlbmllbnQgcGFyc2UgbW9kZSBvbiBhbmQgb2ZmLgorICAgICAqCisgICAgICogV2hlbiBpbiBsZW5pZW50IHBhcnNlIG1vZGUsIHRoZSBmb3JtYXR0ZXIgdXNlcyBhIENvbGxhdG9yIGZvciBwYXJzaW5nIHRoZSB0ZXh0LgorICAgICAqIE9ubHkgcHJpbWFyeSBkaWZmZXJlbmNlcyBhcmUgdHJlYXRlZCBhcyBzaWduaWZpY2FudC4gIFRoaXMgbWVhbnMgdGhhdCBjYXNlCisgICAgICogZGlmZmVyZW5jZXMsIGFjY2VudCBkaWZmZXJlbmNlcywgYWx0ZXJuYXRlIHNwZWxsaW5ncyBvZiB0aGUgc2FtZSBsZXR0ZXIKKyAgICAgKiAoZS5nLiwgYWUgYW5kIGEtdW1sYXV0IGluIEdlcm1hbiksIGlnbm9yYWJsZSBjaGFyYWN0ZXJzLCBldGMuIGFyZSBpZ25vcmVkIGluCisgICAgICogbWF0Y2hpbmcgdGhlIHRleHQuICBJbiBtYW55IGNhc2VzLCBudW1lcmFscyB3aWxsIGJlIGFjY2VwdGVkIGluIHBsYWNlIG9mIHdvcmRzCisgICAgICogb3IgcGhyYXNlcyBhcyB3ZWxsLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIGFsbCBvZiB0aGUgZm9sbG93aW5nIHdpbGwgY29ycmVjdGx5IHBhcnNlIGFzIDI1NSBpbiBFbmdsaXNoIGluCisgICAgICogbGVuaWVudC1wYXJzZSBtb2RlOgorICAgICAqIDxicj4idHdvIGh1bmRyZWQgZmlmdHktZml2ZSIKKyAgICAgKiA8YnI+InR3byBodW5kcmVkIGZpZnR5IGZpdmUiCisgICAgICogPGJyPiJUV08gSFVORFJFRCBGSUZUWS1GSVZFIgorICAgICAqIDxicj4idHdvaHVuZHJlZGZpZnR5Zml2ZSIKKyAgICAgKiA8YnI+IjIgaHVuZHJlZCBmaWZ0eS01IgorICAgICAqCisgICAgICogVGhlIENvbGxhdG9yIHVzZWQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbG9jYWxlIHRoYXQgd2FzCisgICAgICogcGFzc2VkIHRvIHRoaXMgb2JqZWN0IG9uIGNvbnN0cnVjdGlvbi4gIFRoZSBkZXNjcmlwdGlvbiBwYXNzZWQgdG8gdGhpcyBvYmplY3QKKyAgICAgKiBvbiBjb25zdHJ1Y3Rpb24gbWF5IHN1cHBseSBhZGRpdGlvbmFsIGNvbGxhdGlvbiBydWxlcyB0aGF0IGFyZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUsIGVuYWJsaW5nIGFkZGl0aW9uYWwgZXF1aXZhbGVuY2VzCisgICAgICogKHN1Y2ggYXMgYWRkaW5nIG1vcmUgaWdub3JhYmxlIGNoYXJhY3RlcnMgb3IgcGVybWl0dGluZyBzcGVsbGVkLW91dCB2ZXJzaW9uIG9mCisgICAgICogc3ltYm9sczsgc2VlIHRoZSBkZW1vIHByb2dyYW0gZm9yIGV4YW1wbGVzKS4KKyAgICAgKgorICAgICAqIEl0J3MgaW1wb3J0YW50IHRvIGVtcGhhc2l6ZSB0aGF0IGV2ZW4gc3RyaWN0IHBhcnNpbmcgaXMgcmVsYXRpdmVseSBsZW5pZW50OiBpdAorICAgICAqIHdpbGwgYWNjZXB0IHNvbWUgdGV4dCB0aGF0IGl0IHdvbid0IHByb2R1Y2UgYXMgb3V0cHV0LiAgSW4gRW5nbGlzaCwgZm9yIGV4YW1wbGUsCisgICAgICogaXQgd2lsbCBjb3JyZWN0bHkgcGFyc2UgInR3byBodW5kcmVkIHplcm8iIGFuZCAiZmlmdGVlbiBodW5kcmVkIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGVkIElmIHRydWUsIHR1cm5zIGxlbmllbnQtcGFyc2UgbW9kZSBvbjsgaWYgZmFsc2UsIHR1cm5zIGl0IG9mZi4KKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudFBhcnNlTW9kZShib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgbGVuaWVudFBhcnNlID0gZW5hYmxlZDsKKworICAgICAgICAvLyBpZiB3ZSdyZSBsZWF2aW5nIGxlbmllbnQtcGFyc2UgbW9kZSwgdGhyb3cgYXdheSB0aGUgY29sbGF0b3IKKyAgICAgICAgLy8gd2UndmUgYmVlbiB1c2luZworICAgICAgICBpZiAoIWVuYWJsZWQpIHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBsZW5pZW50LXBhcnNlIG1vZGUgaXMgdHVybmVkIG9uLiAgTGVuaWVudCBwYXJzaW5nIGlzIG9mZgorICAgICAqIGJ5IGRlZmF1bHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIGxlbmllbnQtcGFyc2UgbW9kZSBpcyB0dXJuZWQgb24uCisgICAgICogQHNlZSAjc2V0TGVuaWVudFBhcnNlTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGxlbmllbnRQYXJzZUVuYWJsZWQoKSB7CisgICAgICAgIHJldHVybiBsZW5pZW50UGFyc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgcnVsZSBzZXQgdG8gdXNlLiAgSWYgcnVsZVNldE5hbWUgaXMgbnVsbCwgcmVzZXQKKyAgICAgKiB0byB0aGUgaW5pdGlhbCBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIEBwYXJhbSBydWxlU2V0TmFtZSB0aGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQsIG9yIG51bGwgdG8gcmVzZXQgdGhlIGluaXRpYWwgZGVmYXVsdC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlU2V0TmFtZSBpcyBub3QgdGhlIG5hbWUgb2YgYSBwdWJsaWMgcnVsZXNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWZhdWx0UnVsZVNldChTdHJpbmcgcnVsZVNldE5hbWUpIHsKKyAgICAgICAgaWYgKHJ1bGVTZXROYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChwdWJsaWNSdWxlU2V0TmFtZXMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gZmluZFJ1bGVTZXQocHVibGljUnVsZVNldE5hbWVzWzBdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IG51bGw7CisgICAgICAgICAgICBpbnQgbiA9IHJ1bGVTZXRzLmxlbmd0aDsKKyAgICAgICAgd2hpbGUgKC0tbiA+PSAwKSB7CisgICAgICAgICAgaWYgKHJ1bGVTZXRzW25dLmlzUHVibGljKCkpIHsKKyAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gcnVsZVNldHNbbl07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChydWxlU2V0TmFtZS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjYW5ub3QgdXNlIHByaXZhdGUgcnVsZSBzZXQ6ICIgKyBydWxlU2V0TmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IGZpbmRSdWxlU2V0KHJ1bGVTZXROYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIEByZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZGVmYXVsdCBydWxlIHNldCwgaWYgaXQgaXMgcHVibGljLCBlbHNlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREZWZhdWx0UnVsZVNldE5hbWUoKSB7CisgICAgICAgIGlmIChkZWZhdWx0UnVsZVNldCAhPSBudWxsICYmIGRlZmF1bHRSdWxlU2V0LmlzUHVibGljKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0UnVsZVNldC5nZXROYW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYWNrYWdlLWludGVybmFsIEFQSQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQuICBUaGUgZGVmYXVsdAorICAgICAqIHJ1bGUgc2V0IGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBpbiB0aGUgZGVzY3JpcHRpb24sIG9yIHRoZSBvbmUKKyAgICAgKiBtb3N0IHJlY2VudGx5IHNldCBieSBzZXREZWZhdWx0UnVsZVNldC4KKyAgICAgKiBAcmV0dXJuIFRoZSBmb3JtYXR0ZXIncyBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqLworICAgIE5GUnVsZVNldCBnZXREZWZhdWx0UnVsZVNldCgpIHsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRSdWxlU2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvbGxhdG9yIHRvIHVzZSBmb3IgbGVuaWVudCBwYXJzaW5nLiAgVGhlIGNvbGxhdG9yIGlzIGxhemlseSBjcmVhdGVkOgorICAgICAqIHRoaXMgZnVuY3Rpb24gY3JlYXRlcyBpdCB0aGUgZmlyc3QgdGltZSBpdCdzIGNhbGxlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2xsYXRvciB0byB1c2UgZm9yIGxlbmllbnQgcGFyc2luZywgb3IgbnVsbCBpZiBsZW5pZW50IHBhcnNpbmcKKyAgICAgKiBpcyB0dXJuZWQgb2ZmLgorICAgICAqLworICAgIENvbGxhdG9yIGdldENvbGxhdG9yKCkgeworICAgICAgICAvLyBsYXp5LWV2YXVsYXRlIHRoZSBjb2xsYXRvcgorICAgICAgICBpZiAoY29sbGF0b3IgPT0gbnVsbCAmJiBsZW5pZW50UGFyc2UpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgZGVmYXVsdCBjb2xsYXRvciBiYXNlZCBvbiB0aGUgZm9ybWF0dGVyJ3MgbG9jYWxlLAorICAgICAgICAgICAgICAgIC8vIHRoZW4gcHVsbCBvdXQgdGhhdCBjb2xsYXRvcidzIHJ1bGVzLCBhcHBlbmQgYW55IGFkZGl0aW9uYWwKKyAgICAgICAgICAgICAgICAvLyBydWxlcyBzcGVjaWZpZWQgaW4gdGhlIGRlc2NyaXB0aW9uLCBhbmQgY3JlYXRlIGEgX25ld18KKyAgICAgICAgICAgICAgICAvLyBjb2xsYXRvciBiYXNlZCBvbiB0aGUgY29tYmluYWl0b24gb2YgdGhvc2UgcnVsZXMKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciB0ZW1wID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gdGVtcC5nZXRSdWxlcygpICsgbGVuaWVudFBhcnNlUnVsZXM7CisKKyAgICAgICAgICAgICAgICBjb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgaXQgbWVhbnMgd2UgaGF2ZSBhIG1hbGZvcm1lZCBzZXQgb2YKKyAgICAgICAgICAgICAgICAvLyBjb2xsYXRpb24gcnVsZXMsIHdoaWNoIGhvcGVmdWxseSB3b24ndCBoYXBwZW4KKyAgICAgICAgICAgICAgICBpZihERUJVRyl7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGxlbmllbnQtcGFyc2UgbW9kZSBpcyBvZmYsIHRoaXMgd2lsbCBiZSBudWxsCisgICAgICAgIC8vIChzZWUgc2V0TGVuaWVudFBhcnNlTW9kZSgpKQorICAgICAgICByZXR1cm4gY29sbGF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgYWxsIERlY2ltYWxGb3JtYXQKKyAgICAgKiBpbnN0YW5jZXMgb3duZWQgYnkgdGhpcyBmb3JtYXR0ZXIuICBUaGlzIG9iamVjdCBpcyBsYXppbHkgY3JlYXRlZDogdGhpcyBmdW5jdGlvbgorICAgICAqIGNyZWF0ZXMgaXQgdGhlIGZpcnN0IHRpbWUgaXQncyBjYWxsZWQuCisgICAgICogQHJldHVybiBUaGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgYWxsIERlY2ltYWxGb3JtYXQKKyAgICAgKiBpbnN0YW5jZXMgb3duZWQgYnkgdGhpcyBmb3JtYXR0ZXIuCisgICAgICovCisgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIC8vIGxhenktZXZhbHVhdGUgdGhlIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdC4gIFRoaXMgb2JqZWN0CisgICAgICAgIC8vIGlzIHNoYXJlZCBieSBhbGwgRGVjaW1hbEZvcm1hdCBpbnN0YW5jZXMgYmVsb25naW5nIHRvIHRoaXMKKyAgICAgICAgLy8gZm9ybWF0dGVyCisgICAgICAgIGlmIChkZWNpbWFsRm9ybWF0U3ltYm9scyA9PSBudWxsKSB7CisgICAgICAgICAgICBkZWNpbWFsRm9ybWF0U3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZWNpbWFsRm9ybWF0U3ltYm9sczsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uIGltcGxlbWVudGF0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhpcyBleHRyYWN0cyB0aGUgc3BlY2lhbCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBydWxlIHNldHMgYmVmb3JlIHRoZQorICAgICAqIG1haW4gcGFyc2luZyBzdGFydHMuICBFeHRyYSB3aGl0ZXNwYWNlIG11c3QgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZAorICAgICAqIGZyb20gdGhlIGRlc2NyaXB0aW9uLiAgSWYgZm91bmQsIHRoZSBzcGVjaWFsIGluZm9ybWF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUKKyAgICAgKiBkZXNjcmlwdGlvbiBhbmQgcmV0dXJuZWQsIG90aGVyd2lzZSB0aGUgZGVzY3JpcHRpb24gaXMgdW5jaGFuZ2VkIGFuZCBudWxsCisgICAgICogaXMgcmV0dXJuZWQuICBOb3RlOiB0aGUgdHJhaWxpbmcgc2VtaWNvbG9uIGF0IHRoZSBlbmQgb2YgdGhlIHNwZWNpYWwKKyAgICAgKiBydWxlcyBpcyBzdHJpcHBlZC4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gdGhlIHJibmYgZGVzY3JpcHRpb24gd2l0aCBleHRyYSB3aGl0ZXNwYWNlIHJlbW92ZWQKKyAgICAgKiBAcGFyYW0gc3BlY2lhbE5hbWUgdGhlIG5hbWUgb2YgdGhlIHNwZWNpYWwgcnVsZSB0ZXh0IHRvIGV4dHJhY3QKKyAgICAgKiBAcmV0dXJuIHRoZSBzcGVjaWFsIHJ1bGUgdGV4dCwgb3IgbnVsbCBpZiB0aGUgcnVsZSB3YXMgbm90IGZvdW5kCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZXh0cmFjdFNwZWNpYWwoU3RyaW5nQnVmZmVyIGRlc2NyaXB0aW9uLCBTdHJpbmcgc3BlY2lhbE5hbWUpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG51bGw7CisgICAgICAgIGludCBscCA9IFV0aWxpdHkuaW5kZXhPZihkZXNjcmlwdGlvbiwgc3BlY2lhbE5hbWUpOworICAgICAgICBpZiAobHAgIT0gLTEpIHsKKyAgICAgICAgICAgIC8vIHdlJ3ZlIGdvdCB0byBtYWtlIHN1cmUgd2UncmUgbm90IGluIHRoZSBtaWRkbGUgb2YgYSBydWxlCisgICAgICAgICAgICAvLyAod2hlcmUgc3BlY2lhbE5hbWUgd291bGQgYWN0dWFsbHkgZ2V0IHRyZWF0ZWQgYXMKKyAgICAgICAgICAgIC8vIHJ1bGUgdGV4dCkKKyAgICAgICAgICAgIGlmIChscCA9PSAwIHx8IGRlc2NyaXB0aW9uLmNoYXJBdChscCAtIDEpID09ICc7JykgeworICAgICAgICAgICAgICAgIC8vIGxvY2F0ZSB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGFjdHVhbCBzcGVjaWFsCisgICAgICAgICAgICAgICAgLy8gcnVsZXMgKHRoZXJlIG1heSBiZSB3aGl0ZXNwYWNlIGJldHdlZW4gdGhlIG5hbWUgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IHRva2VuIGluIHRoZSBkZXNjcmlwdGlvbikKKyAgICAgICAgICAgICAgICBpbnQgbHBFbmQgPSBVdGlsaXR5LmluZGV4T2YoZGVzY3JpcHRpb24sICI7JSIsIGxwKTsKKworICAgICAgICAgICAgICAgIGlmIChscEVuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBscEVuZCA9IGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMTsgLy8gbGF0ZXIgd2UgYWRkIDEgYmFjayB0byBnZXQgdGhlICclJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgbHBTdGFydCA9IGxwICsgc3BlY2lhbE5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGxwU3RhcnQgPCBscEVuZCAmJgorICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShkZXNjcmlwdGlvbi5jaGFyQXQobHBTdGFydCkpKSB7CisgICAgICAgICAgICAgICAgICAgICsrbHBTdGFydDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBjb3B5IG91dCB0aGUgc3BlY2lhbCBydWxlcworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZyhscFN0YXJ0LCBscEVuZCk7CisKKyAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIHNwZWNpYWwgcnVsZSBmcm9tIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLmRlbGV0ZShscCwgbHBFbmQrMSk7IC8vIGRlbGV0ZSB0aGUgc2VtaWNvbG9uIGJ1dCBub3QgdGhlICclJworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhlIGRlc2NyaXB0aW9uIGFuZCB1c2VzIGl0IHRvIGJ1aWxkIGFsbCBvZgorICAgICAqIGludGVybmFsIGRhdGEgc3RydWN0dXJlcyB0aGF0IHRoZSBmb3JtYXR0ZXIgdXNlcyB0byBkbyBmb3JtYXR0aW5nCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBUaGlzIGlzIGVpdGhlciBwYXNzZWQgaW4gYnkgdGhlIGNhbGxlciBvciBsb2FkZWQgb3V0IG9mIGEgcmVzb3VyY2UKKyAgICAgKiBieSBvbmUgb2YgdGhlIGNvbnN0cnVjdG9ycywgYW5kIGlzIGluIHRoZSBkZXNjcmlwdGlvbiBmb3JtYXQgc3BlY2lmaWVkCisgICAgICogaW4gdGhlIGNsYXNzIGRvY3MuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMpIHsKKyAgICAgICAgaW5pdExvY2FsaXphdGlvbnMobG9jYWxpemF0aW9ucyk7CisKKyAgICAgICAgLy8gc3RhcnQgYnkgc3RyaXBwaW5nIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGZyb20gYWxsIHRoZSBydWxlcworICAgICAgICAvLyAodGhpcyBpcyBhbGwgdGhlIHdoaXRlc3BhY2UgZm9sbHdpbmcgZWFjaCBzZW1pY29sb24gaW4gdGhlCisgICAgICAgIC8vIGRlc2NyaXB0aW9uKS4gIFRoaXMgYWxsb3dzIHVzIHRvIGxvb2sgZm9yIHJ1bGUtc2V0IGJvdW5kYXJpZXMKKyAgICAgICAgLy8gYnkgc2VhcmNoaW5nIGZvciAiOyUiIHdpdGhvdXQgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IHdoaXRlc3BhY2UKKyAgICAgICAgLy8gYmV0d2VlbiB0aGUgOyBhbmQgdGhlICUKKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc2NCdWYgPSBzdHJpcFdoaXRlc3BhY2UoZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGEgc2V0IG9mIGxlbmllbnQtcGFyc2UgcnVsZXMuICBJZiB0aGVyZQorICAgICAgICAvLyBpcywgcHVsbCB0aGVtIG91dCBpbnRvIG91ciB0ZW1wb3JhcnkgaG9sZGluZyBwbGFjZSBmb3IgdGhlbSwKKyAgICAgICAgLy8gYW5kIGRlbGV0ZSB0aGVtIGZyb20gdGhlIGRlc2NyaXB0aW9uIGJlZm9yZSB0aGUgcmVhbCBkZXNjaXB0aW9uLQorICAgICAgICAvLyBwYXJzaW5nIGNvZGUgc2VlcyB0aGVtCisKKyAgICAgICAgbGVuaWVudFBhcnNlUnVsZXMgPSBleHRyYWN0U3BlY2lhbChkZXNjQnVmLCAiJSVsZW5pZW50LXBhcnNlOiIpOworICAgICAgICBwb3N0UHJvY2Vzc1J1bGVzID0gZXh0cmFjdFNwZWNpYWwoZGVzY0J1ZiwgIiUlcG9zdC1wcm9jZXNzOiIpOworCisgICAgICAgIC8vIHByZS1mbGlnaHQgcGFyc2luZyB0aGUgZGVzY3JpcHRpb24gYW5kIGNvdW50IHRoZSBudW1iZXIgb2YKKyAgICAgICAgLy8gcnVsZSBzZXRzICgiOyUiIG1hcmtzIHRoZSBlbmQgb2Ygb25lIHJ1bGUgc2V0IGFuZCB0aGUgYmVnaW5uaW5nCisgICAgICAgIC8vIG9mIHRoZSBuZXh0KQorICAgICAgICBpbnQgbnVtUnVsZVNldHMgPSAwOworICAgICAgICBmb3IgKGludCBwID0gVXRpbGl0eS5pbmRleE9mKGRlc2NCdWYsICI7JSIpOyBwICE9IC0xOyBwID0gVXRpbGl0eS5pbmRleE9mKGRlc2NCdWYsICI7JSIsIHApKSB7CisgICAgICAgICAgICArK251bVJ1bGVTZXRzOworICAgICAgICAgICAgKytwOworICAgICAgICB9CisgICAgICAgICsrbnVtUnVsZVNldHM7CisKKyAgICAgICAgLy8gb3VyIHJ1bGUgbGlzdCBpcyBhbiBhcnJheSBvZiB0aGUgYXBwcnByaWF0ZSBzaXplCisgICAgICAgIHJ1bGVTZXRzID0gbmV3IE5GUnVsZVNldFtudW1SdWxlU2V0c107CisKKyAgICAgICAgLy8gZGl2aWRlIHVwIHRoZSBkZXNjcmlwdGlvbnMgaW50byBpbmRpdmlkdWFsIHJ1bGUtc2V0IGRlc2NyaXB0aW9ucworICAgICAgICAvLyBhbmQgc3RvcmUgdGhlbSBpbiBhIHRlbXBvcmFyeSBhcnJheS4gIEF0IGVhY2ggc3RlcCwgd2UgYWxzbworICAgICAgICAvLyBuZXcgdXAgYSBydWxlIHNldCwgYnV0IGFsbCB0aGlzIGRvZXMgaXMgaW5pdGlhbGl6ZSBpdHMgbmFtZQorICAgICAgICAvLyBhbmQgcmVtb3ZlIGl0IGZyb20gaXRzIGRlc2NyaXB0aW9uLiAgV2UgY2FuJ3QgYWN0dWFsbHkgcGFyc2UKKyAgICAgICAgLy8gdGhlIHJlc3Qgb2YgdGhlIGRlc2NyaXB0aW9ucyBhbmQgZmluaXNoIGluaXRpYWxpemluZyBldmVyeXRoaW5nCisgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGF2ZSB0byBrbm93IHRoZSBuYW1lcyBhbmQgbG9jYXRpb25zIG9mIGFsbCB0aGUgcnVsZQorICAgICAgICAvLyBzZXRzIGJlZm9yZSB3ZSBjYW4gYWN0dWFsbHkgc2V0IGV2ZXJ5dGhpbmcgdXAKKyAgICAgICAgU3RyaW5nW10gcnVsZVNldERlc2NyaXB0aW9ucyA9IG5ldyBTdHJpbmdbbnVtUnVsZVNldHNdOworCisgICAgICAgIGludCBjdXJSdWxlU2V0ID0gMDsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgcCA9IFV0aWxpdHkuaW5kZXhPZihkZXNjQnVmLCAiOyUiKTsgcCAhPSAtMTsgcCA9IFV0aWxpdHkuaW5kZXhPZihkZXNjQnVmLCAiOyUiLCBzdGFydCkpIHsKKyAgICAgICAgICAgIHJ1bGVTZXREZXNjcmlwdGlvbnNbY3VyUnVsZVNldF0gPSBkZXNjQnVmLnN1YnN0cmluZyhzdGFydCwgcCArIDEpOworICAgICAgICAgICAgcnVsZVNldHNbY3VyUnVsZVNldF0gPSBuZXcgTkZSdWxlU2V0KHJ1bGVTZXREZXNjcmlwdGlvbnMsIGN1clJ1bGVTZXQpOworICAgICAgICAgICAgKytjdXJSdWxlU2V0OworICAgICAgICAgICAgc3RhcnQgPSBwICsgMTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0RGVzY3JpcHRpb25zW2N1clJ1bGVTZXRdID0gZGVzY0J1Zi5zdWJzdHJpbmcoc3RhcnQpOworICAgICAgICBydWxlU2V0c1tjdXJSdWxlU2V0XSA9IG5ldyBORlJ1bGVTZXQocnVsZVNldERlc2NyaXB0aW9ucywgY3VyUnVsZVNldCk7CisKKyAgICAgICAgLy8gbm93IHdlIGNhbiB0YWtlIG5vdGUgb2YgdGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQsIHdoaWNoCisgICAgICAgIC8vIGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBpbiB0aGUgZGVzY3JpcHRpb24gKGl0J3MgdGhlIGxhc3QKKyAgICAgICAgLy8gcmF0aGVyIHRoYW4gdGhlIGZpcnN0IHNvIHRoYXQgYSB1c2VyIGNhbiBjcmVhdGUgYSBuZXcgZm9ybWF0dGVyCisgICAgICAgIC8vIGZyb20gYW4gZXhpc3RpbmcgZm9ybWF0dGVyIGFuZCBjaGFuZ2UgaXRzIGRlZmF1bHQgYmV2aGFpb3IganVzdAorICAgICAgICAvLyBieSBhcHBlbmRpbmcgbW9yZSBydWxlIHNldHMgdG8gdGhlIGVuZCkKKworICAgICAgICAvLyB7ZGxmfSBJbml0aWFsaXphdGlvbiBvZiBhIGZyYWN0aW9uIHJ1bGUgc2V0IHJlcXVpcmVzIHRoZSBkZWZhdWx0IHJ1bGUKKyAgICAgICAgLy8gc2V0IHRvIGJlIGtub3duLiAgRm9yIHB1cnBvc2VzIG9mIGluaXRpYWxpemF0aW9uLCB0aGlzIGlzIGFsd2F5cyB0aGUKKyAgICAgICAgLy8gbGFzdCBwdWJsaWMgcnVsZSBzZXQsIG5vIG1hdHRlciB3aGF0IHRoZSBsb2NhbGl6YXRpb24gZGF0YSBzYXlzLgorICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW3J1bGVTZXRzLmxlbmd0aCAtIDFdOworICAgICAgICBmb3IgKGludCBpID0gcnVsZVNldHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGlmICghcnVsZVNldHNbaV0uZ2V0TmFtZSgpLnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW2ldOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgd2UgY2FuIGdvIGJhY2sgdGhyb3VnaCB0aGUgdGVtcG9yYXJ5IGRlc2NyaXB0aW9ucworICAgICAgICAvLyBsaXN0IGFuZCBmaW5pc2ggc2V0aW5nIHVwIHRoZSBzdWJzdHJ1Y3R1cmUgKGFuZCB3ZSB0aHJvdworICAgICAgICAvLyBhd2F5IHRoZSB0ZW1wb3JhcnkgZGVzY3JpcHRpb25zIGFzIHdlIGdvKQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBydWxlU2V0c1tpXS5wYXJzZVJ1bGVzKHJ1bGVTZXREZXNjcmlwdGlvbnNbaV0sIHRoaXMpOworICAgICAgICAgICAgcnVsZVNldERlc2NyaXB0aW9uc1tpXSA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGhhdCB0aGUgcnVsZXMgYXJlIGluaXRpYWxpemVkLCB0aGUgJ3JlYWwnIGRlZmF1bHQgcnVsZQorICAgICAgICAvLyBzZXQgY2FuIGJlIGFkanVzdGVkIGJ5IHRoZSBsb2NhbGl6YXRpb24gZGF0YS4KKworICAgICAgICAvLyBjb3VudCB0aGUgbnVtYmVyIG9mIHB1YmxpYyBydWxlIHNldHMKKyAgICAgICAgLy8gKHB1YmxpYyBydWxlIHNldHMgaGF2ZSBuYW1lcyB0aGF0IGJlZ2luIHdpdGggJSBpbnN0ZWFkIG9mICUlKQorICAgICAgICBpbnQgcHVibGljUnVsZVNldENvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlU2V0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgICAgICsrcHVibGljUnVsZVNldENvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcHJlcGFyZSBhbiBhcnJheSBvZiB0aGUgcHJvcGVyIHNpemUgYW5kIGNvcHkgdGhlIG5hbWVzIGludG8gaXQKKyAgICAgICAgU3RyaW5nW10gcHVibGljUnVsZVNldFRlbXAgPSBuZXcgU3RyaW5nW3B1YmxpY1J1bGVTZXRDb3VudF07CisgICAgICAgIHB1YmxpY1J1bGVTZXRDb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSBydWxlU2V0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgICAgIHB1YmxpY1J1bGVTZXRUZW1wW3B1YmxpY1J1bGVTZXRDb3VudCsrXSA9IHJ1bGVTZXRzW2ldLmdldE5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChwdWJsaWNSdWxlU2V0TmFtZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gY29uZmlybSB0aGUgbmFtZXMsIGlmIGFueSBhcmVuJ3QgaW4gdGhlIHJ1bGVzLCB0aGF0J3MgYW4gZXJyb3IKKyAgICAgICAgICAgIC8vIGl0IGlzIG9rIGlmIHRoZSBydWxlcyBjb250YWluIHB1YmxpYyBydWxlIHNldHMgdGhhdCBhcmUgbm90IGluIHRoaXMgbGlzdAorICAgICAgICAgICAgbG9vcDogZm9yIChpbnQgaSA9IDA7IGkgPCBwdWJsaWNSdWxlU2V0TmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHB1YmxpY1J1bGVTZXROYW1lc1tpXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHB1YmxpY1J1bGVTZXRUZW1wLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmVxdWFscyhwdWJsaWNSdWxlU2V0VGVtcFtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGxvb3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiZGlkIG5vdCBmaW5kIHB1YmxpYyBydWxlIHNldDogIiArIG5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IGZpbmRSdWxlU2V0KHB1YmxpY1J1bGVTZXROYW1lc1swXSk7IC8vIG1pZ2h0IGJlIGRpZmZlcmVudAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVibGljUnVsZVNldE5hbWVzID0gcHVibGljUnVsZVNldFRlbXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUYWtlIHRoZSBsb2NhbGl6YXRpb25zIGFycmF5IGFuZCBjcmVhdGUgYSBNYXAgZnJvbSB0aGUgbG9jYWxlIHN0cmluZ3MgdG8KKyAgICAgKiB0aGUgbG9jYWxpemF0aW9uIGFycmF5cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdExvY2FsaXphdGlvbnMoU3RyaW5nW11bXSBsb2NhbGl6YXRpb25zKSB7CisgICAgICAgIGlmIChsb2NhbGl6YXRpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgIHB1YmxpY1J1bGVTZXROYW1lcyA9IChTdHJpbmdbXSlsb2NhbGl6YXRpb25zWzBdLmNsb25lKCk7CisKKyAgICAgICAgICAgIE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbG9jYWxpemF0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGRhdGEgPSBsb2NhbGl6YXRpb25zW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSBkYXRhWzBdOworICAgICAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gbmV3IFN0cmluZ1tkYXRhLmxlbmd0aC0xXTsKKyAgICAgICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoICE9IHB1YmxpY1J1bGVTZXROYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicHVibGljIG5hbWUgbGVuZ3RoOiAiICsgcHVibGljUnVsZVNldE5hbWVzLmxlbmd0aCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAhPSBsb2NhbGl6ZWQgbmFtZXNbIiArIGkgKyAiXSBsZW5ndGg6ICIgKyBuYW1lcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGEsIDEsIG5hbWVzLCAwLCBuYW1lcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIG0ucHV0KGxvY2FsZSwgbmFtZXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIW0uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldERpc3BsYXlOYW1lcyA9IG07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkgaW5pdCgpIHRvIHN0cmlwIHdoaXRlc3BhY2UgYmV0d2VlbiBydWxlcyAoaS5lLiwKKyAgICAgKiBhZnRlciBzZW1pY29sb25zKS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGZvcm1hdHRlciBkZXNjcmlwdGlvbgorICAgICAqIEByZXR1cm4gVGhlIGRlc2NyaXB0aW9uIHdpdGggYWxsIHRoZSB3aGl0ZXNwYWNlIHRoYXQgZm9sbG93cyBzZW1pY29sb25zCisgICAgICogdGFrZW4gb3V0LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHN0cmlwV2hpdGVzcGFjZShTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIG1ldGhvZCB0aGF0IGRlbGV0ZXMgY2hhcmFjdGVycyAod2h5PyEhKQorICAgICAgICAvLyBjcmVhdGUgYSBuZXcgU3RyaW5nQnVmZmVyIHRvIGNvcHkgdGhlIHRleHQgaW50bworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCB0aGUgY2hhcmFjdGVycy4uLgorICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICB3aGlsZSAoc3RhcnQgIT0gLTEgJiYgc3RhcnQgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gc2VlayB0byB0aGUgZmlyc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLi4uCisgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICYmIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGRlc2NyaXB0aW9uLmNoYXJBdChzdGFydCkpKSB7CisgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9pZiB0aGUgZmlyc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIHNlbWljb2xvbiwgc2tpcCBpdCBhbmQgY29udGludWUKKyAgICAgICAgICAgIGlmIChzdGFydCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpICYmIGRlc2NyaXB0aW9uLmNoYXJBdChzdGFydCkgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbG9jYXRlIHRoZSBuZXh0IHNlbWljb2xvbiBpbiB0aGUgdGV4dCBhbmQgY29weSB0aGUgdGV4dCBmcm9tCisgICAgICAgICAgICAvLyBvdXIgY3VycmVudCBwb3NpdGlvbiB1cCB0byB0aGF0IHNlbWljb2xvbiBpbnRvIHRoZSByZXN1bHQKKyAgICAgICAgICAgIGludCBwOworICAgICAgICAgICAgcCA9IGRlc2NyaXB0aW9uLmluZGV4T2YoJzsnLCBzdGFydCk7CisgICAgICAgICAgICBpZiAocCA9PSAtMSkgeworICAgICAgICAgICAgICAgIC8vIG9yIGlmIHdlIGRvbid0IGZpbmQgYSBzZW1pY29sb24sIGp1c3QgY29weSB0aGUgcmVzdCBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBzdHJpbmcgaW50byB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoc3RhcnQpKTsKKyAgICAgICAgICAgICAgICBzdGFydCA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAocCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoc3RhcnQsIHAgKyAxKSk7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBwICsgMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gd2hlbiB3ZSBnZXQgaGVyZSwgd2UndmUgc2Vla2VkIG9mZiB0aGUgZW5kIG9mIHRoZSBzcmluZywgYW5kCisgICAgICAgICAgICAvLyB3ZSB0ZXJtaW5hdGUgdGhlIGxvb3AgKHdlIGNvbnRpbnVlIHVudGlsICpzdGFydCogaXMgLTEgcmF0aGVyCisgICAgICAgICAgICAvLyB0aGFuIHVudGlsICpwKiBpcyAtMSwgYmVjYXVzZSBvdGhlcndpc2Ugd2UnZCBtaXNzIHRoZSBsYXN0CisgICAgICAgICAgICAvLyBydWxlIGluIHRoZSBkZXNjcmlwdGlvbikKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBPTkxZIERVUklORyBDT05TVFJVQ1RJT04gdG8gZmlsbCBpbiB0aGUKKyAgICAgKiBkZWZhdWx0UnVsZVNldCB2YXJpYWJsZSBvbmNlIHdlJ3ZlIHNldCB1cCBhbGwgdGhlIHJ1bGUgc2V0cy4KKyAgICAgKiBUaGUgZGVmYXVsdCBydWxlIHNldCBpcyB0aGUgbGFzdCBwdWJsaWMgcnVsZSBzZXQgaW4gdGhlIGRlc2NyaXB0aW9uLgorICAgICAqIChJdCdzIHRoZSBsYXN0IHJhdGhlciB0aGFuIHRoZSBmaXJzdCBzbyB0aGF0IGEgY2FsbGVyIGNhbiBhcHBlbmQKKyAgICAgKiB0ZXh0IHRvIHRoZSBlbmQgb2YgYW4gZXhpc3RpbmcgZm9ybWF0dGVyIGRlc2NyaXB0aW9uIHRvIGNoYW5nZSBpdHMKKyAgICAgKiBiZWhhdmlvci4pCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXREZWZhdWx0UnVsZVNldCgpIHsKKyAgICAgICAgLy8gc2VlayBiYWNrd2FyZCBmcm9tIHRoZSBlbmQgb2YgdGhlIGxpc3QgdW50aWwgd2UgcmVhY2ggYSBydWxlIHNldAorICAgICAgICAvLyB3aG9zZSBuYW1lIERPRVNOJ1QgYmVnaW4gd2l0aCAlJS4gIFRoYXQncyB0aGUgZGVmYXVsdCBydWxlIHNldAorICAgICAgICBmb3IgKGludCBpID0gcnVsZVNldHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGlmICghcnVsZVNldHNbaV0uZ2V0TmFtZSgpLnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW2ldOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW3J1bGVTZXRzLmxlbmd0aCAtIDFdOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nIGltcGxlbWVudGF0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQm90dGxlbmVjayB0aHJvdWdoIHdoaWNoIGFsbCB0aGUgcHVibGljIGZvcm1hdCgpIG1ldGhvZHMKKyAgICAgKiB0aGF0IHRha2UgYSBkb3VibGUgcGFzcy4gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUsIHdlIGtub3cKKyAgICAgKiB3aGljaCBydWxlIHNldCB3ZSdyZSB1c2luZyB0byBkbyB0aGUgZm9ybWF0dGluZy4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0CisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIHJ1bGUgc2V0IHRvIHVzZSB0byBmb3JtYXQgdGhlIG51bWJlcgorICAgICAqIEByZXR1cm4gVGhlIHRleHQgdGhhdCByZXN1bHRlZCBmcm9tIGZvcm1hdHRpbmcgdGhlIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGZvcm1hdChkb3VibGUgbnVtYmVyLCBORlJ1bGVTZXQgcnVsZVNldCkgeworICAgICAgICAvLyBhbGwgQVBJIGZvcm1hdCgpIHJvdXRpbmVzIHRoYXQgdGFrZSBhIGRvdWJsZSB2ZWN0b3IgdGhyb3VnaAorICAgICAgICAvLyBoZXJlLiAgQ3JlYXRlIGFuIGVtcHR5IHN0cmluZyBidWZmZXIgd2hlcmUgdGhlIHJlc3VsdCB3aWxsCisgICAgICAgIC8vIGJlIGJ1aWx0LCBhbmQgcGFzcyBpdCB0byB0aGUgcnVsZSBzZXQgKGFsb25nIHdpdGggYW4gaW5zZXJ0aW9uCisgICAgICAgIC8vIHBvc2l0aW9uIG9mIDAgYW5kIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkKSB0byB0aGUgcnVsZSBzZXQKKyAgICAgICAgLy8gZm9yIGZvcm1hdHRpbmcKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcnVsZVNldC5mb3JtYXQobnVtYmVyLCByZXN1bHQsIDApOworICAgICAgICBwb3N0UHJvY2VzcyhyZXN1bHQsIHJ1bGVTZXQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm90dGxlbmVjayB0aHJvdWdoIHdoaWNoIGFsbCB0aGUgcHVibGljIGZvcm1hdCgpIG1ldGhvZHMKKyAgICAgKiB0aGF0IHRha2UgYSBsb25nIHBhc3MuIEJ5IHRoZSB0aW1lIHdlIGdldCBoZXJlLCB3ZSBrbm93CisgICAgICogd2hpY2ggcnVsZSBzZXQgd2UncmUgdXNpbmcgdG8gZG8gdGhlIGZvcm1hdHRpbmcuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdAorICAgICAqIEBwYXJhbSBydWxlU2V0IFRoZSBydWxlIHNldCB0byB1c2UgdG8gZm9ybWF0IHRoZSBudW1iZXIKKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0IHRoYXQgcmVzdWx0ZWQgZnJvbSBmb3JtYXR0aW5nIHRoZSBudW1iZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBmb3JtYXQobG9uZyBudW1iZXIsIE5GUnVsZVNldCBydWxlU2V0KSB7CisgICAgICAgIC8vIGFsbCBBUEkgZm9ybWF0KCkgcm91dGluZXMgdGhhdCB0YWtlIGEgZG91YmxlIHZlY3RvciB0aHJvdWdoCisgICAgICAgIC8vIGhlcmUuICBXZSBoYXZlIHRoZXNlIHR3byBpZGVudGljYWwgZnVuY3Rpb25zLS0gb25lIHRha2luZyBhCisgICAgICAgIC8vIGRvdWJsZSBhbmQgb25lIHRha2luZyBhIGxvbmctLSB0aGUgY291cGxlIGRpZ2l0cyBvZiBwcmVjaXNpb24KKyAgICAgICAgLy8gdGhhdCBsb25nIGhhcyBidXQgZG91YmxlIGRvZXNuJ3QgKGJvdGggdHlwZXMgYXJlIDggYnl0ZXMgbG9uZywKKyAgICAgICAgLy8gYnV0IGRvdWJsZSBoYXMgdG8gYm9ycm93IHNvbWUgb2YgdGhlIG1hbnRpc3NhIGJpdHMgdG8gaG9sZAorICAgICAgICAvLyB0aGUgZXhwb25lbnQpLgorICAgICAgICAvLyBDcmVhdGUgYW4gZW1wdHkgc3RyaW5nIGJ1ZmZlciB3aGVyZSB0aGUgcmVzdWx0IHdpbGwKKyAgICAgICAgLy8gYmUgYnVpbHQsIGFuZCBwYXNzIGl0IHRvIHRoZSBydWxlIHNldCAoYWxvbmcgd2l0aCBhbiBpbnNlcnRpb24KKyAgICAgICAgLy8gcG9zaXRpb24gb2YgMCBhbmQgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQpIHRvIHRoZSBydWxlIHNldAorICAgICAgICAvLyBmb3IgZm9ybWF0dGluZworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXIsIHJlc3VsdCwgMCk7CisgICAgICAgIHBvc3RQcm9jZXNzKHJlc3VsdCwgcnVsZVNldCk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQb3N0LXByb2Nlc3MgdGhlIHJ1bGVzIGlmIHdlIGhhdmUgYSBwb3N0LXByb2Nlc3Nvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcG9zdFByb2Nlc3MoU3RyaW5nQnVmZmVyIHJlc3VsdCwgTkZSdWxlU2V0IHJ1bGVTZXQpIHsKKyAgICAgICAgaWYgKHBvc3RQcm9jZXNzUnVsZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHBvc3RQcm9jZXNzb3IgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGludCBpeCA9IHBvc3RQcm9jZXNzUnVsZXMuaW5kZXhPZigiOyIpOworICAgICAgICAgICAgICAgIGlmIChpeCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpeCA9IHBvc3RQcm9jZXNzUnVsZXMubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBwcENsYXNzTmFtZSA9IHBvc3RQcm9jZXNzUnVsZXMuc3Vic3RyaW5nKDAsIGl4KS50cmltKCk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZShwcENsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHBvc3RQcm9jZXNzb3IgPSAoUkJORlBvc3RQcm9jZXNzb3IpY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIHBvc3RQcm9jZXNzb3IuaW5pdCh0aGlzLCBwb3N0UHJvY2Vzc1J1bGVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlYnVnLCBwcmludCBpdCBvdXQKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImNvdWxkIG5vdCBsb2NhdGUgIiArIHBwQ2xhc3NOYW1lICsgIiwgZXJyb3IgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiwgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zdFByb2Nlc3NvciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHBvc3RQcm9jZXNzUnVsZXMgPSBudWxsOyAvLyBkb24ndCB0cnkgYWdhaW4KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcG9zdFByb2Nlc3Nvci5wcm9jZXNzKHJlc3VsdCwgcnVsZVNldCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuYW1lZCBydWxlIHNldC4gIFRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBpZiB0aGlzIGZvcm1hdHRlciBkb2Vzbid0IGhhdmUgYSBydWxlIHNldCB3aXRoIHRoYXQgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGVzaXJlZCBydWxlIHNldAorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgc2V0IHdpdGggdGhhdCBuYW1lCisgICAgICovCisgICAgTkZSdWxlU2V0IGZpbmRSdWxlU2V0KFN0cmluZyBuYW1lKSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlU2V0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzW2ldLmdldE5hbWUoKS5lcXVhbHMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVsZVNldHNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTm8gcnVsZSBzZXQgbmFtZWQgIiArIG5hbWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2ZjYwZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNjQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworCisvKioKKyAqIDxjb2RlPlJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBpcyBhIHRyYW5zbGl0ZXJhdG9yCisgKiB0aGF0IHJlYWRzIGEgc2V0IG9mIHJ1bGVzIGluIG9yZGVyIHRvIGRldGVybWluZSBob3cgdG8gcGVyZm9ybQorICogdHJhbnNsYXRpb25zLiBSdWxlIHNldHMgYXJlIHN0b3JlZCBpbiByZXNvdXJjZSBidW5kbGVzIGluZGV4ZWQgYnkKKyAqIG5hbWUuIFJ1bGVzIHdpdGhpbiBhIHJ1bGUgc2V0IGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyAoJzsnKS4KKyAqIFRvIGluY2x1ZGUgYSBsaXRlcmFsIHNlbWljb2xvbiwgcHJlZml4IGl0IHdpdGggYSBiYWNrc2xhc2ggKCdcJykuCisgKiBXaGl0ZXNwYWNlLCBhcyBkZWZpbmVkIGJ5IDxjb2RlPlVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCk8L2NvZGU+LAorICogaXMgaWdub3JlZC4gSWYgdGhlIGZpcnN0IG5vbi1ibGFuayBjaGFyYWN0ZXIgb24gYSBsaW5lIGlzICcjJywKKyAqIHRoZSBlbnRpcmUgbGluZSBpcyBpZ25vcmVkIGFzIGEgY29tbWVudC4gPC9wPgorICoKKyAqIDxwPkVhY2ggc2V0IG9mIHJ1bGVzIGNvbnNpc3RzIG9mIHR3byBncm91cHMsIG9uZSBmb3J3YXJkLCBhbmQgb25lCisgKiByZXZlcnNlLiBUaGlzIGlzIGEgY29udmVudGlvbiB0aGF0IGlzIG5vdCBlbmZvcmNlZDsgcnVsZXMgZm9yIG9uZQorICogZGlyZWN0aW9uIG1heSBiZSBvbWl0dGVkLCB3aXRoIHRoZSByZXN1bHQgdGhhdCB0cmFuc2xhdGlvbnMgaW4KKyAqIHRoYXQgZGlyZWN0aW9uIHdpbGwgbm90IG1vZGlmeSB0aGUgc291cmNlIHRleHQuIEluIGFkZGl0aW9uLAorICogYmlkaXJlY3Rpb25hbCBmb3J3YXJkLXJldmVyc2UgcnVsZXMgbWF5IGJlIHNwZWNpZmllZCBmb3IKKyAqIHN5bW1ldHJpY2FsIHRyYW5zZm9ybWF0aW9ucy48L3A+CisgKgorICogPHA+PGI+UnVsZSBzeW50YXg8L2I+IDwvcD4KKyAqCisgKiA8cD5SdWxlIHN0YXRlbWVudHMgdGFrZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBmb3JtczogPC9wPgorICoKKyAqIDxkbD4KKyAqICAgICA8ZHQ+PGNvZGU+JGFsZWZtYWRkYT1cdTA2MjI7PC9jb2RlPjwvZHQ+CisgKiAgICAgPGRkPjxzdHJvbmc+VmFyaWFibGUgZGVmaW5pdGlvbi48L3N0cm9uZz4gVGhlIG5hbWUgb24gdGhlCisgKiAgICAgICAgIGxlZnQgaXMgYXNzaWduZWQgdGhlIHRleHQgb24gdGhlIHJpZ2h0LiBJbiB0aGlzIGV4YW1wbGUsCisgKiAgICAgICAgIGFmdGVyIHRoaXMgc3RhdGVtZW50LCBpbnN0YW5jZXMgb2YgdGhlIGxlZnQgaGFuZCBuYW1lLAorICogICAgICAgICAmcXVvdDs8Y29kZT4kYWxlZm1hZGRhPC9jb2RlPiZxdW90Oywgd2lsbCBiZSByZXBsYWNlZCBieQorICogICAgICAgICB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgVSswNjIyLiBWYXJpYWJsZSBuYW1lcyBtdXN0IGJlZ2luCisgKiAgICAgICAgIHdpdGggYSBsZXR0ZXIgYW5kIGNvbnNpc3Qgb25seSBvZiBsZXR0ZXJzLCBkaWdpdHMsIGFuZAorICogICAgICAgICB1bmRlcnNjb3Jlcy4gQ2FzZSBpcyBzaWduaWZpY2FudC4gRHVwbGljYXRlIG5hbWVzIGNhdXNlCisgKiAgICAgICAgIGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24sIHRoYXQgaXMsIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqICAgICAgICAgcmVkZWZpbmVkLiBUaGUgcmlnaHQgaGFuZCBzaWRlIG1heSBjb250YWluIHdlbGwtZm9ybWVkCisgKiAgICAgICAgIHRleHQgb2YgYW55IGxlbmd0aCwgaW5jbHVkaW5nIG5vIHRleHQgYXQgYWxsICgmcXVvdDs8Y29kZT4kZW1wdHk9OzwvY29kZT4mcXVvdDspLgorICogICAgICAgICBUaGUgcmlnaHQgaGFuZCBzaWRlIG1heSBjb250YWluIGVtYmVkZGVkIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+CisgKiAgICAgICAgIHBhdHRlcm5zLCBmb3IgZXhhbXBsZSwgJnF1b3Q7PGNvZGU+JHNvZnR2b3dlbD1bZWl5RUlZXTwvY29kZT4mcXVvdDsuPC9kZD4KKyAqICAgICA8ZGQ+Jm5ic3A7PC9kZD4KKyAqICAgICA8ZHQ+PGNvZGU+YWkmZ3Q7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5Gb3J3YXJkIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMgcnVsZQorICogICAgICAgICBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSBsZWZ0IHdpbGwgYmUgY2hhbmdlZCB0byB0aGUKKyAqICAgICAgICAgc3RyaW5nIG9uIHRoZSByaWdodCB3aGVuIHBlcmZvcm1pbmcgZm9yd2FyZAorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24uPC9kZD4KKyAqICAgICA8ZHQ+Jm5ic3A7PC9kdD4KKyAqICAgICA8ZHQ+PGNvZGU+YWkmbHQ7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5SZXZlcnNlIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMgcnVsZQorICogICAgICAgICBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSByaWdodCB3aWxsIGJlIGNoYW5nZWQgdG8KKyAqICAgICAgICAgdGhlIHN0cmluZyBvbiB0aGUgbGVmdCB3aGVuIHBlcmZvcm1pbmcgcmV2ZXJzZQorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24uPC9kZD4KKyAqIDwvZGw+CisgKgorICogPGRsPgorICogICAgIDxkdD48Y29kZT5haSZsdDsmZ3Q7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5CaWRpcmVjdGlvbmFsIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMKKyAqICAgICAgICAgcnVsZSBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSByaWdodCB3aWxsIGJlIGNoYW5nZWQKKyAqICAgICAgICAgdG8gdGhlIHN0cmluZyBvbiB0aGUgbGVmdCB3aGVuIHBlcmZvcm1pbmcgZm9yd2FyZAorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24sIGFuZCB2aWNlIHZlcnNhIHdoZW4gcGVyZm9ybWluZyByZXZlcnNlCisgKiAgICAgICAgIHRyYW5zbGl0ZXJhdGlvbi48L2RkPgorICogPC9kbD4KKyAqCisgKiA8cD5UcmFuc2xhdGlvbiBydWxlcyBjb25zaXN0IG9mIGEgPGVtPm1hdGNoIHBhdHRlcm48L2VtPiBhbmQgYW4gPGVtPm91dHB1dAorICogc3RyaW5nPC9lbT4uIFRoZSBtYXRjaCBwYXR0ZXJuIGNvbnNpc3RzIG9mIGxpdGVyYWwgY2hhcmFjdGVycywKKyAqIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgY29udGV4dCwgYW5kIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkKKyAqIGNvbnRleHQuIENvbnRleHQgY2hhcmFjdGVycywgbGlrZSBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycywKKyAqIG11c3QgYmUgbWF0Y2hlZCBpbiB0aGUgdGV4dCBiZWluZyB0cmFuc2xpdGVyYXRlZC4gSG93ZXZlciwgdW5saWtlCisgKiBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycywgdGhleSBhcmUgbm90IHJlcGxhY2VkIGJ5IHRoZSBvdXRwdXQKKyAqIHRleHQuIEZvciBleGFtcGxlLCB0aGUgcGF0dGVybiAmcXVvdDs8Y29kZT5hYmN7ZGVmfTwvY29kZT4mcXVvdDsKKyAqIGluZGljYXRlcyB0aGUgY2hhcmFjdGVycyAmcXVvdDs8Y29kZT5kZWY8L2NvZGU+JnF1b3Q7IG11c3QgYmUKKyAqIHByZWNlZGVkIGJ5ICZxdW90Ozxjb2RlPmFiYzwvY29kZT4mcXVvdDsgZm9yIGEgc3VjY2Vzc2Z1bCBtYXRjaC4KKyAqIElmIHRoZXJlIGlzIGEgc3VjY2Vzc2Z1bCBtYXRjaCwgJnF1b3Q7PGNvZGU+ZGVmPC9jb2RlPiZxdW90OyB3aWxsCisgKiBiZSByZXBsYWNlZCwgYnV0IG5vdCAmcXVvdDs8Y29kZT5hYmM8L2NvZGU+JnF1b3Q7LiBUaGUgZmluYWwgJzxjb2RlPn08L2NvZGU+JworICogaXMgb3B0aW9uYWwsIHNvICZxdW90Ozxjb2RlPmFiY3tkZWY8L2NvZGU+JnF1b3Q7IGlzIGVxdWl2YWxlbnQgdG8KKyAqICZxdW90Ozxjb2RlPmFiY3tkZWZ9PC9jb2RlPiZxdW90Oy4gQW5vdGhlciBleGFtcGxlIGlzICZxdW90Ozxjb2RlPnsxMjN9NDU2PC9jb2RlPiZxdW90OworICogKG9yICZxdW90Ozxjb2RlPjEyM300NTY8L2NvZGU+JnF1b3Q7KSBpbiB3aGljaCB0aGUgbGl0ZXJhbAorICogcGF0dGVybiAmcXVvdDs8Y29kZT4xMjM8L2NvZGU+JnF1b3Q7IG11c3QgYmUgZm9sbG93ZWQgYnkgJnF1b3Q7PGNvZGU+NDU2PC9jb2RlPiZxdW90Oy4KKyAqIDwvcD4KKyAqCisgKiA8cD5UaGUgb3V0cHV0IHN0cmluZyBvZiBhIGZvcndhcmQgb3IgcmV2ZXJzZSBydWxlIGNvbnNpc3RzIG9mCisgKiBjaGFyYWN0ZXJzIHRvIHJlcGxhY2UgdGhlIGxpdGVyYWwgcGF0dGVybiBjaGFyYWN0ZXJzLiBJZiB0aGUKKyAqIG91dHB1dCBzdHJpbmcgY29udGFpbnMgdGhlIGNoYXJhY3RlciAnPGNvZGU+fDwvY29kZT4nLCB0aGlzIGlzCisgKiB0YWtlbiB0byBpbmRpY2F0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIDxlbT5jdXJzb3I8L2VtPiBhZnRlcgorICogcmVwbGFjZW1lbnQuIFRoZSBjdXJzb3IgaXMgdGhlIHBvaW50IGluIHRoZSB0ZXh0IGF0IHdoaWNoIHRoZQorICogbmV4dCByZXBsYWNlbWVudCwgaWYgYW55LCB3aWxsIGJlIGFwcGxpZWQuIFRoZSBjdXJzb3IgaXMgdXN1YWxseQorICogcGxhY2VkIHdpdGhpbiB0aGUgcmVwbGFjZW1lbnQgdGV4dDsgaG93ZXZlciwgaXQgY2FuIGFjdHVhbGx5IGJlCisgKiBwbGFjZWQgaW50byB0aGUgcHJlY2VuZGluZyBvciBmb2xsb3dpbmcgY29udGV4dCBieSB1c2luZyB0aGUKKyAqIHNwZWNpYWwgY2hhcmFjdGVyICc8Y29kZT5APC9jb2RlPicuIEV4YW1wbGVzOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgICA8cD48Y29kZT5hIHtmb299IHogJmd0OyB8IEAgYmFyOyAjIGZvbyAtJmd0OyBiYXIsIG1vdmUgY3Vyc29yCisgKiAgICAgYmVmb3JlIGE8YnI+CisgKiAgICAge2Zvb30geHl6ICZndDsgYmFyIEBAfDsgIyZuYnNwO2ZvbyAtJmd0OyBiYXIsIGN1cnNvciBiZXR3ZWVuCisgKiAgICAgeSBhbmQgejwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGI+VW5pY29kZVNldDwvYj48L3A+CisgKgorICogPHA+PGNvZGU+VW5pY29kZVNldDwvY29kZT4gcGF0dGVybnMgbWF5IGFwcGVhciBhbnl3aGVyZSB0aGF0CisgKiBtYWtlcyBzZW5zZS4gVGhleSBtYXkgYXBwZWFyIGluIHZhcmlhYmxlIGRlZmluaXRpb25zLgorICogQ29udHJhcml3aXNlLCA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBwYXR0ZXJucyBtYXkgdGhlbXNlbHZlcworICogY29udGFpbiB2YXJpYWJsZSByZWZlcmVuY2VzLCBzdWNoIGFzICZxdW90Ozxjb2RlPiRhPVthLXpdOyRub3RfYT1bXiRhXTwvY29kZT4mcXVvdDssCisgKiBvciAmcXVvdDs8Y29kZT4kcmFuZ2U9YS16OyRsbD1bJHJhbmdlXTwvY29kZT4mcXVvdDsuPC9wPgorICoKKyAqIDxwPjxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IHBhdHRlcm5zIG1heSBhbHNvIGJlIGVtYmVkZGVkIGRpcmVjdGx5CisgKiBpbnRvIHJ1bGUgc3RyaW5ncy4gVGh1cywgdGhlIGZvbGxvd2luZyB0d28gcnVsZXMgYXJlIGVxdWl2YWxlbnQ6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICAgIDxwPjxjb2RlPiR2b3dlbD1bYWVpb3VdOyAkdm93ZWwmZ3Q7JyonOyAjIE9uZSB3YXkgdG8gZG8gdGhpczxicj4KKyAqICAgICBbYWVpb3VdJmd0OycqJzsKKyAqICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsjCisgKiAgICAgQW5vdGhlciB3YXk8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPlNlZSB7QGxpbmsgVW5pY29kZVNldH0gZm9yIG1vcmUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMuPC9wPgorICoKKyAqIDxwPjxiPlNlZ21lbnRzPC9iPjwvcD4KKyAqCisgKiA8cD5TZWdtZW50cyBvZiB0aGUgaW5wdXQgc3RyaW5nIGNhbiBiZSBtYXRjaGVkIGFuZCBjb3BpZWQgdG8gdGhlCisgKiBvdXRwdXQgc3RyaW5nLiBUaGlzIG1ha2VzIGNlcnRhaW4gc2V0cyBvZiBydWxlcyBzaW1wbGVyIGFuZCBtb3JlCisgKiBnZW5lcmFsLCBhbmQgbWFrZXMgcmVvcmRlcmluZyBwb3NzaWJsZS4gRm9yIGV4YW1wbGU6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICAgIDxwPjxjb2RlPihbYS16XSkgJmd0OyAkMSAkMTsKKyAqICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsjCisgKiAgICAgZG91YmxlIGxvd2VyY2FzZSBsZXR0ZXJzPGJyPgorICogICAgIChbOkx1Ol0pIChbOkxsOl0pICZndDsgJDIgJDE7ICMgcmV2ZXJzZSBvcmRlciBvZiBMdS1MbCBwYWlyczwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+VGhlIHNlZ21lbnQgb2YgdGhlIGlucHV0IHN0cmluZyB0byBiZSBjb3BpZWQgaXMgZGVsaW1pdGVkIGJ5CisgKiAmcXVvdDs8Y29kZT4oPC9jb2RlPiZxdW90OyBhbmQgJnF1b3Q7PGNvZGU+KTwvY29kZT4mcXVvdDsuIFVwIHRvCisgKiBuaW5lIHNlZ21lbnRzIG1heSBiZSBkZWZpbmVkLiBTZWdtZW50cyBtYXkgbm90IG92ZXJsYXAuIEluIHRoZQorICogb3V0cHV0IHN0cmluZywgJnF1b3Q7PGNvZGU+JDE8L2NvZGU+JnF1b3Q7IHRocm91Z2ggJnF1b3Q7PGNvZGU+JDk8L2NvZGU+JnF1b3Q7CisgKiByZXByZXNlbnQgdGhlIGlucHV0IHN0cmluZyBzZWdtZW50cywgaW4gbGVmdC10by1yaWdodCBvcmRlciBvZgorICogZGVmaW5pdGlvbi48L3A+CisgKgorICogPHA+PGI+QW5jaG9yczwvYj48L3A+CisgKgorICogPHA+UGF0dGVybnMgY2FuIGJlIGFuY2hvcmVkIHRvIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dC4gVGhpcyBpcyBkb25lIHdpdGggdGhlCisgKiBzcGVjaWFsIGNoYXJhY3RlcnMgJzxjb2RlPl48L2NvZGU+JyBhbmQgJzxjb2RlPiQ8L2NvZGU+Jy4gRm9yIGV4YW1wbGU6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48Y29kZT5eIGEmbmJzcDsmbmJzcDsgJmd0OyAnQkVHX0EnOyAmbmJzcDsmbmJzcDsjIG1hdGNoICdhJyBhdCBzdGFydCBvZiB0ZXh0PGJyPgorICogICAmbmJzcDsgYSZuYnNwOyZuYnNwOyAmZ3Q7ICdBJzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgIyBtYXRjaCBvdGhlciBpbnN0YW5jZXMKKyAqICAgb2YgJ2EnPGJyPgorICogICAmbmJzcDsgeiAkICZndDsgJ0VORF9aJzsgJm5ic3A7Jm5ic3A7IyBtYXRjaCAneicgYXQgZW5kIG9mIHRleHQ8YnI+CisgKiAgICZuYnNwOyB6Jm5ic3A7Jm5ic3A7ICZndDsgJ1onOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAjIG1hdGNoIG90aGVyIGluc3RhbmNlcworICogICBvZiAneic8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvciB0aGUgZW5kIG9mIHRoZSB0ZXh0IHVzaW5nIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4uCisgKiBUaGlzIGlzIGRvbmUgYnkgaW5jbHVkaW5nIGEgdmlydHVhbCBhbmNob3IgY2hhcmFjdGVyICc8Y29kZT4kPC9jb2RlPicgYXQgdGhlIGVuZCBvZiB0aGUKKyAqIHNldCBwYXR0ZXJuLiBBbHRob3VnaCB0aGlzIGlzIHVzdWFsbHkgdGhlIG1hdGNoIGNoYWZhY3RlciBmb3IgdGhlIGVuZCBhbmNob3IsIHRoZSBzZXQgd2lsbAorICogbWF0Y2ggZWl0aGVyIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dCwgZGVwZW5kaW5nIG9uIGl0cyBwbGFjZW1lbnQuIEZvcgorICogZXhhbXBsZTo8L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDxwPjxjb2RlPiR4ID0gW2EteiRdOyAmbmJzcDsmbmJzcDsjIG1hdGNoICdhJyB0aHJvdWdoICd6JyBPUiBhbmNob3I8YnI+CisgKiAgICR4IDEmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAyOyZuYnNwOyZuYnNwOyAjIG1hdGNoICcxJyBhZnRlciBhLXogb3IgYXQgdGhlIHN0YXJ0PGJyPgorICogICAmbmJzcDsmbmJzcDsgMyAkeCAmZ3Q7IDQ7ICZuYnNwOyZuYnNwOyMgbWF0Y2ggJzMnIGJlZm9yZSBhLXogb3IgYXQgdGhlIGVuZDwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGI+RXhhbXBsZTwvYj4gPC9wPgorICoKKyAqIDxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBydWxlcyBpbGx1c3RyYXRlIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mCisgKiB0aGUgcnVsZSBsYW5ndWFnZS4gPC9wPgorICoKKyAqIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0Ij4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+UnVsZSAxLjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFiY3tkZWZ9Jmd0O3h8eTwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMi48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT54eXomZ3Q7cjwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMy48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT55eiZndDtxPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqIDwvdGFibGU+CisgKgorICogPHA+QXBwbHlpbmcgdGhlc2UgcnVsZXMgdG8gdGhlIHN0cmluZyAmcXVvdDs8Y29kZT5hZGVmYWJjZGVmejwvY29kZT4mcXVvdDsKKyAqIHlpZWxkcyB0aGUgZm9sbG93aW5nIHJlc3VsdHM6IDwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT58YWRlZmFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5Jbml0aWFsIHN0YXRlLCBubyBydWxlcyBtYXRjaC4gQWR2YW5jZQorICogICAgICAgICBjdXJzb3IuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YXxkZWZhYmNkZWZ6PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+U3RpbGwgbm8gbWF0Y2guIFJ1bGUgMSBkb2VzIG5vdCBtYXRjaAorICogICAgICAgICBiZWNhdXNlIHRoZSBwcmVjZWRpbmcgY29udGV4dCBpcyBub3QgcHJlc2VudC48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZHxlZmFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5TdGlsbCBubyBtYXRjaC4gS2VlcCBhZHZhbmNpbmcgdW50aWwKKyAqICAgICAgICAgdGhlcmUgaXMgYSBtYXRjaC4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZXxmYWJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZ8YWJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhfGJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhYnxjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhYmN8ZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMSBtYXRjaGVzOyByZXBsYWNlICZxdW90Ozxjb2RlPmRlZjwvY29kZT4mcXVvdDsKKyAqICAgICAgICAgd2l0aCAmcXVvdDs8Y29kZT54eTwvY29kZT4mcXVvdDsgYW5kIGJhY2sgdXAgdGhlIGN1cnNvcgorICogICAgICAgICB0byBiZWZvcmUgdGhlICc8Y29kZT55PC9jb2RlPicuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YWRlZmFiY3h8eXo8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5BbHRob3VnaCAmcXVvdDs8Y29kZT54eXo8L2NvZGU+JnF1b3Q7IGlzCisgKiAgICAgICAgIHByZXNlbnQsIHJ1bGUgMiBkb2VzIG5vdCBtYXRjaCBiZWNhdXNlIHRoZSBjdXJzb3IgaXMKKyAqICAgICAgICAgYmVmb3JlIHRoZSAnPGNvZGU+eTwvY29kZT4nLCBub3QgYmVmb3JlIHRoZSAnPGNvZGU+eDwvY29kZT4nLgorICogICAgICAgICBSdWxlIDMgZG9lcyBtYXRjaC4gUmVwbGFjZSAmcXVvdDs8Y29kZT55ejwvY29kZT4mcXVvdDsKKyAqICAgICAgICAgd2l0aCAmcXVvdDs8Y29kZT5xPC9jb2RlPiZxdW90Oy48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGVmYWJjeHF8PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kOworICogICAgICAgICB0cmFuc2xpdGVyYXRpb24gaXMgY29tcGxldGUuPC90ZD4KKyAqICAgICA8L3RyPgorICogPC90YWJsZT4KKyAqCisgKiA8cD5UaGUgb3JkZXIgb2YgcnVsZXMgaXMgc2lnbmlmaWNhbnQuIElmIG11bHRpcGxlIHJ1bGVzIG1heSBtYXRjaAorICogYXQgc29tZSBwb2ludCwgdGhlIGZpcnN0IG1hdGNoaW5nIHJ1bGUgaXMgYXBwbGllZC4gPC9wPgorICoKKyAqIDxwPkZvcndhcmQgYW5kIHJldmVyc2UgcnVsZXMgbWF5IGhhdmUgYW4gZW1wdHkgb3V0cHV0IHN0cmluZy4KKyAqIE90aGVyd2lzZSwgYW4gZW1wdHkgbGVmdCBvciByaWdodCBoYW5kIHNpZGUgb2YgYW55IHN0YXRlbWVudCBpcyBhCisgKiBzeW50YXggZXJyb3IuIDwvcD4KKyAqCisgKiA8cD5TaW5nbGUgcXVvdGVzIGFyZSB1c2VkIHRvIHF1b3RlIGFueSBjaGFyYWN0ZXIgb3RoZXIgdGhhbiBhCisgKiBkaWdpdCBvciBsZXR0ZXIuIFRvIHNwZWNpZnkgYSBzaW5nbGUgcXVvdGUgaXRzZWxmLCBpbnNpZGUgb3IKKyAqIG91dHNpZGUgb2YgcXVvdGVzLCB1c2UgdHdvIHNpbmdsZSBxdW90ZXMgaW4gYSByb3cuIEZvciBleGFtcGxlLAorICogdGhlIHJ1bGUgJnF1b3Q7PGNvZGU+JyZndDsnJmd0O28nJ2Nsb2NrPC9jb2RlPiZxdW90OyBjaGFuZ2VzIHRoZQorICogc3RyaW5nICZxdW90Ozxjb2RlPiZndDs8L2NvZGU+JnF1b3Q7IHRvIHRoZSBzdHJpbmcgJnF1b3Q7PGNvZGU+bydjbG9jazwvY29kZT4mcXVvdDsuCisgKiA8L3A+CisgKgorICogPHA+PGI+Tm90ZXM8L2I+IDwvcD4KKyAqCisgKiA8cD5XaGlsZSBhIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGlzIGJlaW5nIGJ1aWx0LCBpdCBjaGVja3MgdGhhdAorICogdGhlIHJ1bGVzIGFyZSBhZGRlZCBpbiBwcm9wZXIgb3JkZXIuIEZvciBleGFtcGxlLCBpZiB0aGUgcnVsZQorICogJnF1b3Q7YSZndDt4JnF1b3Q7IGlzIGZvbGxvd2VkIGJ5IHRoZSBydWxlICZxdW90O2FiJmd0O3kmcXVvdDssCisgKiB0aGVuIHRoZSBzZWNvbmQgcnVsZSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4gVGhlIHJlYXNvbiBpcyB0aGF0CisgKiB0aGUgc2Vjb25kIHJ1bGUgY2FuIG5ldmVyIGJlIHRyaWdnZXJlZCwgc2luY2UgdGhlIGZpcnN0IHJ1bGUKKyAqIGFsd2F5cyBtYXRjaGVzIGFueXRoaW5nIGl0IG1hdGNoZXMuIEluIG90aGVyIHdvcmRzLCB0aGUgZmlyc3QKKyAqIHJ1bGUgPGVtPm1hc2tzPC9lbT4gdGhlIHNlY29uZCBydWxlLiA8L3A+CisgKgorICogPHA+Q29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAwLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAaW50ZXJuYWwKKyAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICovCitwdWJsaWMgY2xhc3MgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBwcml2YXRlIERhdGEgZGF0YTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IHRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIGdpdmVuIHJ1bGVzLgorICAgICAqIEBwYXJhbSBydWxlcyBydWxlcywgc2VwYXJhdGVkIGJ5ICc7JworICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIEZPUldBUkQgb3IgUkVWRVJTRS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlcyBhcmUgbWFsZm9ybWVkCisgICAgICogb3IgZGlyZWN0aW9uIGlzIGludmFsaWQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgU3RyaW5nIHJ1bGVzLCBpbnQgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbiAhPSBGT1JXQVJEICYmIGRpcmVjdGlvbiAhPSBSRVZFUlNFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGRpcmVjdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyID0gbmV3IFRyYW5zbGl0ZXJhdG9yUGFyc2VyKCk7CisgICAgICAgIHBhcnNlci5wYXJzZShydWxlcywgZGlyZWN0aW9uKTsKKyAgICAgICAgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSAhPSAwIHx8CisgICAgICAgICAgICBwYXJzZXIuY29tcG91bmRGaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiOjpJRCBibG9ja3MgaWxsZWdhbCBpbiBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3RvciIpOworICAgICAgICB9CisKKyAgICAgICAgZGF0YSA9IChEYXRhKXBhcnNlci5kYXRhVmVjdG9yLmdldCgwKTsKKyAgICAgICAgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgoZGF0YS5ydWxlU2V0LmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgdHJhbnNsaXRlcmF0b3IgZnJvbSB0aGUgZ2l2ZW4gcnVsZXMgaW4gdGhlCisgICAgICogPGNvZGU+Rk9SV0FSRDwvY29kZT4gZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBydWxlcyBydWxlcywgc2VwYXJhdGVkIGJ5ICc7JworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHJ1bGVzIGFyZSBtYWxmb3JtZWQKKyAgICAgKiBvciBkaXJlY3Rpb24gaXMgaW52YWxpZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBTdHJpbmcgcnVsZXMpIHsKKyAgICAgICAgdGhpcyhJRCwgcnVsZXMsIEZPUldBUkQsIG51bGwpOworICAgIH0KKworICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgRGF0YSBkYXRhLCBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKKyAgICAgICAgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgoZGF0YS5ydWxlU2V0LmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBzeW5jaHJvbml6ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvKiBXZSBrZWVwIHN0YXJ0IGFuZCBsaW1pdCBmaXhlZCB0aGUgZW50aXJlIHRpbWUsCisgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSB0ZXh0IC0tIGxpbWl0IG1heSBtb3ZlIG51bWVyaWNhbGx5IGlmIHRleHQgaXMKKyAgICAgICAgICogaW5zZXJ0ZWQgb3IgcmVtb3ZlZC4gIFRoZSBjdXJzb3IgbW92ZXMgZnJvbSBzdGFydCB0byBsaW1pdCwgd2l0aAorICAgICAgICAgKiByZXBsYWNlbWVudHMgaGFwcGVuaW5nIHVuZGVyIGl0LgorICAgICAgICAgKgorICAgICAgICAgKiBFeGFtcGxlOiBydWxlcyAxLiBhYj54fHkKKyAgICAgICAgICogICAgICAgICAgICAgICAgMi4geWM+egorICAgICAgICAgKgorICAgICAgICAgKiB8ZWFiY2QgICBzdGFydCAtIG5vIG1hdGNoLCBhZHZhbmNlIGN1cnNvcgorICAgICAgICAgKiBlfGFiY2QgICBtYXRjaCBydWxlIDEgLSBjaGFuZ2UgdGV4dCAmIGFkanVzdCBjdXJzb3IKKyAgICAgICAgICogZXh8eWNkICAgbWF0Y2ggcnVsZSAyIC0gY2hhbmdlIHRleHQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIGV4enxkICAgIG5vIG1hdGNoLCBhZHZhbmNlIGN1cnNvcgorICAgICAgICAgKiBleHpkfCAgICBkb25lCisgICAgICAgICAqLworCisgICAgICAgIC8qIEEgcnVsZSBsaWtlCisgICAgICAgICAqICAgYT5ifGEKKyAgICAgICAgICogY3JlYXRlcyBhbiBpbmZpbml0ZSBsb29wLiBUbyBwcmV2ZW50IHRoYXQsIHdlIHB1dCBhbiBhcmJpdHJhcnkKKyAgICAgICAgICogbGltaXQgb24gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHRoYXQgd2UgdGFrZSwgb25lIHRoYXQgaXMKKyAgICAgICAgICogaGlnaCBlbm91Z2ggdGhhdCBhbnkgcmVhc29uYWJsZSBydWxlcyBhcmUgb2ssIGJ1dCBsb3cgZW5vdWdoIHRvCisgICAgICAgICAqIHByZXZlbnQgYSBzZXJ2ZXIgZnJvbSBoYW5naW5nLiAgVGhlIGxpbWl0IGlzIDE2IHRpbWVzIHRoZQorICAgICAgICAgKiBudW1iZXIgb2YgY2hhcmFjdGVycyBuLCB1bmxlc3MgbiBpcyBzbyBsYXJnZSB0aGF0IDE2biBleGNlZWRzIGEKKyAgICAgICAgICogdWludDMyX3QuCisgICAgICAgICAqLworICAgICAgICBpbnQgbG9vcENvdW50ID0gMDsKKyAgICAgICAgaW50IGxvb3BMaW1pdCA9IChpbmRleC5saW1pdCAtIGluZGV4LnN0YXJ0KSA8PCA0OworICAgICAgICBpZiAobG9vcExpbWl0IDwgMCkgeworICAgICAgICAgICAgbG9vcExpbWl0ID0gMHg3RkZGRkZGRjsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChpbmRleC5zdGFydCA8IGluZGV4LmxpbWl0ICYmCisgICAgICAgICAgICAgICBsb29wQ291bnQgPD0gbG9vcExpbWl0ICYmCisgICAgICAgICAgICAgICBkYXRhLnJ1bGVTZXQudHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaW5jcmVtZW50YWwpKSB7CisgICAgICAgICAgICArK2xvb3BDb3VudDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgc3RhdGljIGNsYXNzIERhdGEgeworICAgICAgICBwdWJsaWMgRGF0YSgpIHsKKyAgICAgICAgICAgIHZhcmlhYmxlTmFtZXMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBydWxlU2V0ID0gbmV3IFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSdWxlIHRhYmxlLiAgTWF5IGJlIGVtcHR5LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQgcnVsZVNldDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTWFwIHZhcmlhYmxlIG5hbWUgKFN0cmluZykgdG8gdmFyaWFibGUgKGNoYXJbXSkuICBBIHZhcmlhYmxlIG5hbWUKKyAgICAgICAgICogY29ycmVzcG9uZHMgdG8gemVybyBvciBtb3JlIGNoYXJhY3RlcnMsIHN0b3JlZCBpbiBhIGNoYXJbXSBhcnJheSBpbgorICAgICAgICAgKiB0aGlzIGhhc2guICBPbmUgb3IgbW9yZSBvZiB0aGVzZSBjaGFycyBtYXkgYWxzbyBjb3JyZXNwb25kIHRvIGEKKyAgICAgICAgICogVW5pY29kZVNldCwgaW4gd2hpY2ggY2FzZSB0aGUgY2hhcmFjdGVyIGluIHRoZSBjaGFyW10gaW4gdGhpcyBoYXNoIGlzCisgICAgICAgICAqIGEgc3RhbmQtaW46IGl0IGlzIGFuIGluZGV4IGZvciBhIHNlY29uZGFyeSBsb29rdXAgaW4KKyAgICAgICAgICogZGF0YS52YXJpYWJsZXMuICBUaGUgc3RhbmQtaW4gYWxzbyByZXByZXNlbnRzIHRoZSBVbmljb2RlU2V0IGluCisgICAgICAgICAqIHRoZSBzdG9yZWQgcnVsZXMuCisgICAgICAgICAqLworICAgICAgICBIYXNodGFibGUgdmFyaWFibGVOYW1lczsKKworICAgICAgICAvKioKKyAgICAgICAgICogTWFwIGNhdGVnb3J5IHZhcmlhYmxlIChDaGFyYWN0ZXIpIHRvIFVuaWNvZGVNYXRjaGVyIG9yIFVuaWNvZGVSZXBsYWNlci4KKyAgICAgICAgICogVmFyaWFibGVzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNldCBvZiBjaGFyYWN0ZXJzIGFyZSBtYXBwZWQKKyAgICAgICAgICogZnJvbSB2YXJpYWJsZSBuYW1lIHRvIGEgc3RhbmQtaW4gY2hhcmFjdGVyIGluIGRhdGEudmFyaWFibGVOYW1lcy4KKyAgICAgICAgICogVGhlIHN0YW5kLWluIHRoZW4gc2VydmVzIGFzIGEga2V5IGluIHRoaXMgaGFzaCB0byBsb29rdXAgdGhlCisgICAgICAgICAqIGFjdHVhbCBVbmljb2RlU2V0IG9iamVjdC4gIEluIGFkZGl0aW9uLCB0aGUgc3RhbmQtaW4gaXMKKyAgICAgICAgICogc3RvcmVkIGluIHRoZSBydWxlIHRleHQgdG8gcmVwcmVzZW50IHRoZSBzZXQgb2YgY2hhcmFjdGVycy4KKyAgICAgICAgICogdmFyaWFibGVzW2ldIHJlcHJlc2VudHMgY2hhcmFjdGVyICh2YXJpYWJsZXNCYXNlICsgaSkuCisgICAgICAgICAqLworICAgICAgICBPYmplY3RbXSB2YXJpYWJsZXM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjaGFyYWN0ZXIgdGhhdCByZXByZXNlbnRzIHZhcmlhYmxlc1swXS4gIENoYXJhY3RlcnMKKyAgICAgICAgICogdmFyaWFibGVzQmFzZSB0aHJvdWdoIHZhcmlhYmxlc0Jhc2UgKworICAgICAgICAgKiB2YXJpYWJsZXMubGVuZ3RoIC0gMSByZXByZXNlbnQgVW5pY29kZVNldCBvYmplY3RzLgorICAgICAgICAgKi8KKyAgICAgICAgY2hhciB2YXJpYWJsZXNCYXNlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIFVuaWNvZGVNYXRjaGVyIHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbiBjaGFyYWN0ZXIsIG9yCisgICAgICAgICAqIG51bGwgaWYgbm9uZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBzdGFuZEluKSB7CisgICAgICAgICAgICBpbnQgaSA9IHN0YW5kSW4gLSB2YXJpYWJsZXNCYXNlOworICAgICAgICAgICAgcmV0dXJuIChpID49IDAgJiYgaSA8IHZhcmlhYmxlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgPyAoVW5pY29kZU1hdGNoZXIpIHZhcmlhYmxlc1tpXSA6IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBVbmljb2RlUmVwbGFjZXIgcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIGNoYXJhY3Rlciwgb3IKKyAgICAgICAgICogbnVsbCBpZiBub25lLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVSZXBsYWNlciBsb29rdXBSZXBsYWNlcihpbnQgc3RhbmRJbikgeworICAgICAgICAgICAgaW50IGkgPSBzdGFuZEluIC0gdmFyaWFibGVzQmFzZTsKKyAgICAgICAgICAgIHJldHVybiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgID8gKFVuaWNvZGVSZXBsYWNlcikgdmFyaWFibGVzW2ldIDogbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0cmFuc2xpdGVyYXRvciBhcyBzb3VyY2UgcnVsZXMuCisgICAgICogVGhlc2UgcnVsZXMgd2lsbCBwcm9kdWNlIGFuIGVxdWl2YWxlbnQgdHJhbnNsaXRlcmF0b3IgaWYgdXNlZAorICAgICAqIHRvIGNvbnN0cnVjdCBhIG5ldyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgVFJVRSB0aGVuIGNvbnZlcnQgdW5wcmludGFibGUKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlaXIgaGV4IGVzY2FwZSByZXByZXNlbnRhdGlvbnMsIFxcdXh4eHggb3IKKyAgICAgKiBcXFV4eHh4eHh4eC4gIFVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIHRob3NlIG90aGVyIHRoYW4KKyAgICAgKiBVKzAwMEEsIFUrMDAyMC4uVSswMDdFLgorICAgICAqIEByZXR1cm4gcnVsZXMgc3RyaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgcmV0dXJuIGRhdGEucnVsZVNldC50b1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBieSB0aGlzCisgICAgICogVHJhbnNsaXRlcmF0b3IsIGlnbm9yaW5nIHRoZSBlZmZlY3Qgb2Ygb3VyIGZpbHRlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBoYW5kbGVHZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhLnJ1bGVTZXQuZ2V0U291cmNlVGFyZ2V0U2V0KGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZ2VuZXJhdGVkIGFzCisgICAgICogcmVwbGFjZW1lbnQgdGV4dCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFRhcmdldFNldCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGEucnVsZVNldC5nZXRTb3VyY2VUYXJnZXRTZXQodHJ1ZSk7CisgICAgfQorfQorCisvKioKKyAqIFJldmlzaW9uIDEuNjEgIDIwMDQvMDIvMjUgMDE6MjY6MjMgIGFsYW4KKyAqIGppdHRlcmJ1ZyAzNTE3OiBtYWtlIGNvbmNyZXRlIHRyYW5zaWx0ZXJhdG9ycyBwYWNrYWdlIHByaXZhdGUgYW5kIEBpbnRlcm5hbAorICoKKyAqIFJldmlzaW9uIDEuNjAgIDIwMDMvMDYvMDMgMTg6NDk6MzUgIGFsYW4KKyAqIGppdHRlcmJ1ZyAyOTU5OiB1cGRhdGUgY29weXJpZ2h0IGRhdGVzIHRvIGluY2x1ZGUgMjAwMworICoKKyAqIFJldmlzaW9uIDEuNTkgIDIwMDMvMDUvMTQgMTk6MDM6MzAgIHJ2aXN3YW5hZGhhCisgKiBqaXR0ZXJidWcgMjgzNjogZml4IGNvbXBpbGVyIHdhcm5pbmdzCisgKgorICogUmV2aXNpb24gMS41OCAgMjAwMi8xMi8wMyAxODo1NzozNiAgYWxhbgorICogaml0dGVyYnVnIDIwODc6IGZpeCBAIHRhZ3MKKyAqCisgKiBSZXZpc2lvbiAxLjU3ICAyMDAyLzA3LzI2IDIxOjEyOjM2ICBhbGFuCisgKiBqaXR0ZXJidWcgMTk5NzogdXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgaW4gcGFyc2VycworICoKKyAqIFJldmlzaW9uIDEuNTYgIDIwMDIvMDYvMjggMTk6MTU6NTIgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNDM0OiBpbXByb3ZlIG1ldGhvZCBuYW1lczsgbWlub3IgY2xlYW51cAorICoKKyAqIFJldmlzaW9uIDEuNTUgIDIwMDIvMDYvMjYgMTg6MTI6MzkgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNDM0OiBpbml0aWFsIHB1YmxpYyBpbXBsZW1lbnRhdGlvbiBvZiBnZXRTb3VyY2VTZXQgYW5kIGdldFRhcmdldFNldAorICoKKyAqIFJldmlzaW9uIDEuNTQgIDIwMDIvMDIvMjUgMjI6NDM6NTggIHJhbQorICogTW92ZSBVdGlsaXR5IGNsYXNzIHRvIGljdS5pbXBsCisgKgorICogUmV2aXNpb24gMS41MyAgMjAwMi8wMi8xNiAwMzowNjoxMyAgTW9oYW4KKyAqIElDVTRKIHJlb3JnYW5pemF0aW9uCisgKgorICogUmV2aXNpb24gMS41MiAgMjAwMi8wMi8wNyAwMDo1Mzo1NCAgYWxhbgorICogaml0dGVyYnVnIDEyMzQ6IG1ha2Ugb3V0cHV0IHNpZGUgb2YgUkJUcyBvYmplY3Qtb3JpZW50ZWQ7IHJld3JpdGUgSUQgcGFyc2VycyBhbmQgbW9kdWxhcml6ZSB0aGVtOyBpbXBsZW1lbnQgJkFueS1Mb3dlcigpIHN1cHBvcnQKKyAqCisgKiBSZXZpc2lvbiAxLjUxICAyMDAxLzExLzI5IDIyOjMxOjE4ICBhbGFuCisgKiBqaXR0ZXJidWcgMTU2MDogYWRkIHNvdXJjZS1zZXQgbWV0aG9kcyBhbmQgVHJhbnNsaXRlcmF0b3JVdGlsaXR5IGNsYXNzCisgKgorICogUmV2aXNpb24gMS41MCAgMjAwMS8xMS8yNyAyMjowNzozMyAgYWxhbgorICogaml0dGVyYnVnIDEzODk6IGluY29ycG9yYXRlIE1hcmsncyByZXZpZXcgY29tbWVudHMgLSBjb21tZW50cyBvbmx5CisgKgorICogUmV2aXNpb24gMS40OSAgMjAwMS8xMC8xMCAyMDoyNjoyNyAgYWxhbgorICogaml0dGVyYnVnIDgxOiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGNvbXBvdW5kIGZpbHRlcnMgaW4gSURzIGFuZCA6OklEIGJsb2NrcworICoKKyAqIFJldmlzaW9uIDEuNDggIDIwMDEvMTAvMDUgMTg6MTU6NTQgIGFsYW4KKyAqIGppdHRlcmJ1ZyA3NDogZmluaXNoIHBvcnQgb2YgU291cmNlLVRhcmdldC9WYXJpYW50IGNvZGUgaW5jbC4gVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSBhbmQgdGVzdHMKKyAqCisgKiBSZXZpc2lvbiAxLjQ3ICAyMDAxLzEwLzAzIDAwOjE0OjIyICBhbGFuCisgKiBqaXR0ZXJidWcgNzM6IGZpbmlzaCBxdWFudGlmaWVyIGFuZCBzdXBwbGVtZW50YWwgY2hhciBzdXBwb3J0CisgKgorICogUmV2aXNpb24gMS40NiAgMjAwMS8wOS8yNiAxODowMDowNiAgYWxhbgorICogaml0dGVyYnVnIDY3OiBzeW5jIHBhcnNlciB3aXRoIGljdTRjLCBhbGxvdyB1bmxpbWl0ZWQsIG5lc3RlZCBzZWdtZW50cworICoKKyAqIFJldmlzaW9uIDEuNDUgIDIwMDEvMDkvMjQgMTk6NTc6MTcgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2MDogaW1wbGVtZW50IHRvUGF0dGVybiBpbiBVbmljb2RlU2V0OyB1cGRhdGUgVW5pY29kZUZpbHRlci5jb250YWlucyB0byB0YWtlIGFuIGludDsgdXBkYXRlIFVuaWNvZGVTZXQgdG8gc3VwcG9ydCBjb2RlIHBvaW50cyB0byBVKzEwRkZGRgorICoKKyAqIFJldmlzaW9uIDEuNDQgIDIwMDEvMDkvMjEgMjE6MjQ6MDQgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2NDogYWxsb3cgOjpJRCBibG9ja3MgaW4gcnVsZXMKKyAqCisgKiBSZXZpc2lvbiAxLjQzICAyMDAxLzA5LzE5IDE3OjQzOjM3ICBhbGFuCisgKiBqaXR0ZXJidWcgNjA6IGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdG9SdWxlcygpCisgKgorICogUmV2aXNpb24gMS40MiAgMjAwMS8wMi8yMCAxNzo1OTo0MCAgYWxhbjRqCisgKiBSZW1vdmUgYmFja3NsYXNoLXUgZnJvbSBsb2cKKyAqCisgKiBSZXZpc2lvbiAxLjQxICAyMDAxLzAyLzE2IDE4OjUzOjU1ICBhbGFuNGoKKyAqIEhhbmRsZSBiYWNrc2xhc2gtdSBlc2NhcGVzCisgKgorICogUmV2aXNpb24gMS40MCAgMjAwMS8wMi8wMyAwMDo0NjoyMSAgYWxhbjRqCisgKiBMb2FkIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGZpbGVzIGZyb20gVVRGOCBmaWxlcyBpbnN0ZWFkIG9mIFJlc291cmNlQnVuZGxlcworICoKKyAqIFJldmlzaW9uIDEuMzkgIDIwMDAvMDgvMzEgMTc6MTE6NDIgIGFsYW40agorICogSW1wbGVtZW50IGFuY2hvcnMuCisgKgorICogUmV2aXNpb24gMS4zOCAgMjAwMC8wOC8zMCAyMDo0MDozMCAgYWxhbjRqCisgKiBJbXBsZW1lbnQgYW5jaG9ycy4KKyAqCisgKiBSZXZpc2lvbiAxLjM3ICAyMDAwLzA3LzEyIDE2OjMxOjM2ICBhbGFuNGoKKyAqIFNpbXBsaWZ5IGxvb3AgbGltaXQgbG9naWMKKyAqCisgKiBSZXZpc2lvbiAxLjM2ICAyMDAwLzA2LzI5IDIxOjU5OjIzICBhbGFuNGoKKyAqIEZpeCBoYW5kbGluZyBvZiBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBmaWVsZHMKKyAqCisgKiBSZXZpc2lvbiAxLjM1ICAyMDAwLzA2LzI4IDIwOjQ5OjU0ICBhbGFuNGoKKyAqIEZpeCBoYW5kbGluZyBvZiBQb3NpdGlvbnMgZmllbGRzCisgKgorICogUmV2aXNpb24gMS4zNCAgMjAwMC8wNi8yOCAyMDozNjozMiAgYWxhbjRqCisgKiBDbGVhbiB1cCBUcmFuc2xpdGVyYXRvcjo6UG9zaXRpb24gLSByZW5hbWUgdGVtcG9yYXJ5IG5hbWVzCisgKgorICogUmV2aXNpb24gMS4zMyAgMjAwMC8wNi8yOCAyMDozMTo0MyAgYWxhbjRqCisgKiBDbGVhbiB1cCBUcmFuc2xpdGVyYXRvcjo6UG9zaXRpb24gYW5kIHJlbmFtZSBmaWVsZHMgKHJlbGF0ZWQgdG8gaml0dGVyYnVnIDQ1MCkKKyAqCisgKiBSZXZpc2lvbiAxLjMyICAyMDAwLzA1LzI0IDIyOjIxOjAwICBhbGFuNGoKKyAqIENvbXBhY3QgVW5pY29kZVNldHMKKyAqCisgKiBSZXZpc2lvbiAxLjMxICAyMDAwLzA1LzIzIDE2OjQ4OjI3ICBhbGFuNGoKKyAqIEZpeCBkb2M7IHJlbW92ZSB1bnVzZWQgYXV0bworICoKKyAqIFJldmlzaW9uIDEuMzAgIDIwMDAvMDUvMTggMjI6NDk6NTEgIGFsYW4KKyAqIFVwZGF0ZSBkb2NzCisgKgorICogUmV2aXNpb24gMS4yOSAgMjAwMC8wNC8yOCAwMDoyNTo0MiAgYWxhbgorICogSW1wcm92ZSBlcnJvciByZXBvcnRpbmcKKyAqCisgKiBSZXZpc2lvbiAxLjI4ICAyMDAwLzA0LzI1IDE3OjM4OjAwICBhbGFuCisgKiBNaW5vciBwYXJzZXIgY2xlYW51cC4KKyAqCisgKiBSZXZpc2lvbiAxLjI3ICAyMDAwLzA0LzI1IDAxOjQyOjU4ICBhbGFuCisgKiBBbGxvdyBhcmJpdHJhcnkgbGVuZ3RoIHZhcmlhYmxlIHZhbHVlcy4gQ2xlYW4gdXAgRGF0YSBBUEkuIFVwZGF0ZSBqYXZhZG9jcy4KKyAqCisgKiBSZXZpc2lvbiAxLjI2ICAyMDAwLzA0LzIyIDAxOjI1OjEwICBhbGFuCisgKiBBZGQgc3VwcG9ydCBmb3IgY3Vyc29yIHBvc2l0aW9uZXIgJ0AnOyB1cGRhdGUgamF2YWRvYworICoKKyAqIFJldmlzaW9uIDEuMjUgIDIwMDAvMDQvMjIgMDA6MDg6NDMgIGFsYW4KKyAqIE5hcnJvdyByYW5nZSB0byAyMSAtIDdFIGZvciBtYW5kYXRvcnkgcXVvdGluZy4KKyAqCisgKiBSZXZpc2lvbiAxLjI0ICAyMDAwLzA0LzIyIDAwOjAzOjU0ICBhbGFuCisgKiBEaXNhbGxvdyB1bnF1b3RlZCBzcGVjaWFsIGNoYXJzLiBSZXBvcnQgbXVsdGlwbGUgZXJyb3JzIGF0IG9uY2UuCisgKgorICogUmV2aXNpb24gMS4yMyAgMjAwMC8wNC8yMSAyMjoyMzo0MCAgYWxhbgorICogQ2xlYW4gdXAgcGFyc2VSZWZlcmVuY2UuIFByZXZpb3VzIGxvZyBzaG91bGQgcmVhZCAnZGVsZWdhdGUnLCBub3QgJ2RlbGV0ZScuCisgKgorICogUmV2aXNpb24gMS4yMiAgMjAwMC8wNC8yMSAyMjoxNjoyOSAgYWxhbgorICogRGVsZXRlIHZhcmlhYmxlIG5hbWUgcGFyc2luZyB0byBTeW1ib2xUYWJsZSBpbnRlcmZhY2UgdG8gY29uc29saWRhdGUgcGFyc2luZyBjb2RlLgorICoKKyAqIFJldmlzaW9uIDEuMjEgIDIwMDAvMDQvMjEgMjE6MTY6NDAgIGFsYW4KKyAqIE1vZGlmeSBydWxlIHN5bnRheAorICoKKyAqIFJldmlzaW9uIDEuMjAgIDIwMDAvMDQvMTkgMTc6MzU6MjMgIGFsYW4KKyAqIFVwZGF0ZSBqYXZhZG9jOyBmaXggY29tcGlsZSBlcnJvcgorICoKKyAqIFJldmlzaW9uIDEuMTkgIDIwMDAvMDQvMTkgMTY6MzQ6MTggIGFsYW4KKyAqIEFkZCBzZWdtZW50IHN1cHBvcnQuCisgKgorICogUmV2aXNpb24gMS4xOCAgMjAwMC8wNC8xMiAyMDoxNzo0NSAgYWxhbgorICogRGVsZWdhdGUgcmVwbGFjZSBvcGVyYXRpb24gdG8gcnVsZSBvYmplY3QKKyAqCisgKiBSZXZpc2lvbiAxLjE3ICAyMDAwLzAzLzEwIDA0OjA3OjIzICBqb2huZgorICogQ29weXJpZ2h0IHVwZGF0ZQorICoKKyAqIFJldmlzaW9uIDEuMTYgIDIwMDAvMDIvMjQgMjA6NDY6NDkgIGxpdQorICogQWRkIGluZmluaXRlIGxvb3AgY2hlY2sKKyAqCisgKiBSZXZpc2lvbiAxLjE1ICAyMDAwLzAyLzEwIDA3OjM2OjI1ICBqb2huZgorICogZml4ZWQgaW1wb3J0cyBmb3IgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5CisgKgorICogUmV2aXNpb24gMS4xNCAgMjAwMC8wMi8wMyAxODoxODo0MiAgQWxhbgorICogVXNlIGFycmF5IHJhdGhlciB0aGFuIGhhc2h0YWJsZSBmb3IgY2hhci10by1zZXQgbWFwCisgKgorICogUmV2aXNpb24gMS4xMyAgMjAwMC8wMS8yNyAxODo1OToxOSAgQWxhbgorICogVXNlIFBvc2l0aW9uIHJhdGhlciB0aGFuIGludFtdIGFuZCBtb3ZlIGFsbCBzdWJjbGFzcyBvdmVycmlkZXMgdG8gb25lIG1ldGhvZCAoaGFuZGxlVHJhbnNsaXRlcmF0ZSkKKyAqCisgKiBSZXZpc2lvbiAxLjEyICAyMDAwLzAxLzE4IDE3OjUxOjA5ICBBbGFuCisgKiBSZW1vdmUgImtleWJvYXJkIiBmcm9tIG1ldGhvZCBuYW1lcy4gTWFrZSBtYXhpbXVtIGNvbnRleHQgYSBmaWVsZCBvZiBUcmFuc2xpdGVyYXRvciwgYW5kIGhhdmUgc3ViY2xhc3NlcyBzZXQgaXQuCisgKgorICogUmV2aXNpb24gMS4xMSAgMjAwMC8wMS8xOCAwMjozMDo0OSAgQWxhbgorICogQWRkIEphbW8tSGFuZ3VsLCBIYW5ndWwtSmFtbywgZml4IHJ1bGVzLCBhZGQgY29tcG91bmQgSUQgc3VwcG9ydAorICoKKyAqIFJldmlzaW9uIDEuMTAgIDIwMDAvMDEvMTMgMjM6NTM6MjMgIEFsYW4KKyAqIEZpeCBidWdzIGZvdW5kIGR1cmluZyBJQ1UgcG9ydAorICoKKyAqIFJldmlzaW9uIDEuOSAgMjAwMC8wMS8xMSAwNDoxMjowNiAgQWxhbgorICogQ2xlYW51cCwgZW1iZWxsaXNoIGNvbW1lbnRzCisgKgorICogUmV2aXNpb24gMS44ICAyMDAwLzAxLzExIDAyOjI1OjAzICBBbGFuCisgKiBSZXdyaXRlIFVuaWNvZGVTZXQgYW5kIFJCVCBwYXJzZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgYW5kIG5ldyBzeW50YXgKKyAqCisgKiBSZXZpc2lvbiAxLjcgIDIwMDAvMDEvMDYgMDE6MzY6MzYgIEFsYW4KKyAqIEFsbG93IHN0cmluZyBhcnJheXMgaW4gcnVsZSByZXNvdXJjZSBidW5kbGVzCisgKgorICogUmV2aXNpb24gMS42ICAyMDAwLzAxLzA0IDIxOjQzOjU3ICBBbGFuCisgKiBBZGQgcnVsZSBpbmRleGluZywgYW5kIG1vdmUgbWFza2luZyBjaGVjayB0byBUcmFuc2xpdGVyYXRpb25SdWxlU2V0LgorICoKKyAqIFJldmlzaW9uIDEuNSAgMTk5OS8xMi8yMiAwMTo0MDo1NCAgQWxhbgorICogQ29uc29saWRhdGUgcnVsZSBwYXR0ZXJuIGFudGVDb250ZXh0LCBrZXksIGFuZCBwb3N0Q29udGV4dCBpbnRvIG9uZSBzdHJpbmcuCisgKgorICogUmV2aXNpb24gMS40ICAxOTk5LzEyLzIyIDAxOjA1OjU0ICBBbGFuCisgKiBJbXByb3ZlIG1hc2tpbmcgY2hlY2tpbmc7IHR1cm4gaXQgb2ZmIGJ5IGRlZmF1bHQsIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UKKyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU0NTVS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU0NTVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEzODA5OTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TQ1NVLmphdmEKQEAgLTAsMCArMSwxODQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBBbiBpbnRlcmZhY2UgZGVmaW5pbmcgIGNvbnN0YW50cyBmb3IgdGhlIFN0YW5kYXJkIENvbXByZXNzaW9uIFNjaGVtZQorICogZm9yIFVuaWNvZGUgKFNDU1UpIGFzIG91dGxpbmVkIGluIDxBCisgKiBIUkVGPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjYiPlVuaWNvZGUgVGVjaG5pY2FsCisgKiBSZXBvcnQgIzY8L0E+LgorICoKKyAqIEBhdXRob3IgU3RlcGhlbiBGLiBCb290aAorICogQHZlcnNpb24gMS4xIDA1IEF1ZyA5OQorICogQHZlcnNpb24gMS4wIDI2IEp1bCA5OQorICovCitpbnRlcmZhY2UgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBHZW5lcmljIHdpbmRvdyBzaGlmdAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IENPTVBSRVNTSU9OT0ZGU0VUICAgICAgICAgICA9IDB4ODA7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTnVtYmVyIG9mIHdpbmRvd3MKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBOVU1XSU5ET1dTICAgICAgICAgICAgICAgICAgPSA4OworICAgIGZpbmFsIHN0YXRpYyBpbnQgTlVNU1RBVElDV0lORE9XUyAgICAgICAgICAgID0gODsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbmRpY2F0ZXMgYSB3aW5kb3cgaW5kZXggaXMgaW52YWxpZAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IElOVkFMSURXSU5ET1cgICAgICAgICAgICAgICA9IC0xOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEluZGljYXRlcyBhIGNoYXJhY3RlciBkb2Vzbid0IGV4aXN0IGluIGlucHV0IChwYXN0IGVuZCBvZiBidWZmZXIpCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgSU5WQUxJRENIQVIgICAgICAgICAgICAgICAgID0gLTE7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ29tcHJlc3Npb24gbW9kZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBTSU5HTEVCWVRFTU9ERSAgICAgICAgICAgICAgPSAwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVU5JQ09ERU1PREUgICAgICAgICAgICAgICAgID0gMTsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBNYXhpbXVtIHZhbHVlIGZvciBhIHdpbmRvdydzIGluZGV4CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgTUFYSU5ERVggICAgICAgICAgICAgICAgICAgID0gMHhGRjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBSZXNlcnZlZCBpbmRleCB2YWx1ZSAoY2hhcmFjdGVycyBiZWxvbmdzIHRvIGZpcnN0IGJsb2NrKQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFJFU0VSVkVESU5ERVggICAgICAgICAgICAgICA9IDB4MDA7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gSW5kaWNlcyBmb3Igc2NyaXB0cyB3aGljaCBjcm9zcyBhIGhhbGYtYmxvY2sgYm91bmRhcnkKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBMQVRJTklOREVYICAgICAgICAgICAgICAgICAgPSAweEY5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgSVBBRVhURU5TSU9OSU5ERVggICAgICAgICAgID0gMHhGQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEdSRUVLSU5ERVggICAgICAgICAgICAgICAgICA9IDB4RkI7CisgICAgZmluYWwgc3RhdGljIGludCBBUk1FTklBTklOREVYICAgICAgICAgICAgICAgPSAweEZDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgSElSQUdBTkFJTkRFWCAgICAgICAgICAgICAgID0gMHhGRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEtBVEFLQU5BSU5ERVggICAgICAgICAgICAgICA9IDB4RkU7CisgICAgZmluYWwgc3RhdGljIGludCBIQUxGV0lEVEhLQVRBS0FOQUlOREVYICAgICAgPSAweEZGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFNpbmdsZS1ieXRlIG1vZGUgdGFncworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkVYICAgICAgICAgICAgICAgICAgICA9IDB4MEI7CisgICAgZmluYWwgc3RhdGljIGludCBTUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgPSAweDBDOyAgLy8gcmVzZXJ2ZWQgdmFsdWUKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URVUgICAgICAgICAgICAgICAgICAgICA9IDB4MEU7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFVSAgICAgICAgICAgICAgICAgICAgPSAweDBGOworCisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUwICAgICAgICAgICAgICAgICAgICAgPSAweDAxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMSAgICAgICAgICAgICAgICAgICAgID0gMHgwMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTIgICAgICAgICAgICAgICAgICAgICA9IDB4MDM7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUzICAgICAgICAgICAgICAgICAgICAgPSAweDA0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNCAgICAgICAgICAgICAgICAgICAgID0gMHgwNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTUgICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU2ICAgICAgICAgICAgICAgICAgICAgPSAweDA3OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNyAgICAgICAgICAgICAgICAgICAgID0gMHgwODsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHgxMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4MTE7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweDEyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHgxMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4MTQ7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweDE1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHgxNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4MTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4MTg7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweDE5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHgxQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4MUI7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweDFDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHgxRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4MUU7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweDFGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFVuaWNvZGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHhFMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4RTE7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweEUyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHhFMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4RTQ7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweEU1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHhFNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4RTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4RTg7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweEU5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHhFQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4RUI7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweEVDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHhFRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4RUU7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweEVGOworCisgICAgZmluYWwgc3RhdGljIGludCBVUVVPVEVVICAgICAgICAgICAgICAgICAgICAgPSAweEYwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORVggICAgICAgICAgICAgICAgICAgID0gMHhGMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVSRVNFUlZFRCAgICAgICAgICAgICAgICAgICA9IDB4RjI7ICAvLyByZXNlcnZlZCB2YWx1ZQorCisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2xhc3MgdmFyaWFibGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqIEZvciB3aW5kb3cgb2Zmc2V0IG1hcHBpbmcgKi8KKyAgICBmaW5hbCBzdGF0aWMgaW50IFtdIHNPZmZzZXRUYWJsZSA9IHsgCisgICAgICAgIC8vIHRhYmxlIGdlbmVyYXRlZCBieSBDb21wcmVzc2lvblRhYmxlR2VuZXJhdG9yCisgICAgICAgIDB4MCwgMHg4MCwgMHgxMDAsIDB4MTgwLCAweDIwMCwgMHgyODAsIDB4MzAwLCAweDM4MCwgMHg0MDAsCisgICAgMHg0ODAsIDB4NTAwLCAweDU4MCwgMHg2MDAsIDB4NjgwLCAweDcwMCwgMHg3ODAsIDB4ODAwLCAweDg4MCwKKyAgICAweDkwMCwgMHg5ODAsIDB4YTAwLCAweGE4MCwgMHhiMDAsIDB4YjgwLCAweGMwMCwgMHhjODAsIDB4ZDAwLAorICAgIDB4ZDgwLCAweGUwMCwgMHhlODAsIDB4ZjAwLCAweGY4MCwgMHgxMDAwLCAweDEwODAsIDB4MTEwMCwKKyAgICAweDExODAsIDB4MTIwMCwgMHgxMjgwLCAweDEzMDAsIDB4MTM4MCwgMHgxNDAwLCAweDE0ODAsCisgICAgMHgxNTAwLCAweDE1ODAsIDB4MTYwMCwgMHgxNjgwLCAweDE3MDAsIDB4MTc4MCwgMHgxODAwLAorICAgIDB4MTg4MCwgMHgxOTAwLCAweDE5ODAsIDB4MWEwMCwgMHgxYTgwLCAweDFiMDAsIDB4MWI4MCwKKyAgICAweDFjMDAsIDB4MWM4MCwgMHgxZDAwLCAweDFkODAsIDB4MWUwMCwgMHgxZTgwLCAweDFmMDAsCisgICAgMHgxZjgwLCAweDIwMDAsIDB4MjA4MCwgMHgyMTAwLCAweDIxODAsIDB4MjIwMCwgMHgyMjgwLAorICAgIDB4MjMwMCwgMHgyMzgwLCAweDI0MDAsIDB4MjQ4MCwgMHgyNTAwLCAweDI1ODAsIDB4MjYwMCwKKyAgICAweDI2ODAsIDB4MjcwMCwgMHgyNzgwLCAweDI4MDAsIDB4Mjg4MCwgMHgyOTAwLCAweDI5ODAsCisgICAgMHgyYTAwLCAweDJhODAsIDB4MmIwMCwgMHgyYjgwLCAweDJjMDAsIDB4MmM4MCwgMHgyZDAwLAorICAgIDB4MmQ4MCwgMHgyZTAwLCAweDJlODAsIDB4MmYwMCwgMHgyZjgwLCAweDMwMDAsIDB4MzA4MCwKKyAgICAweDMxMDAsIDB4MzE4MCwgMHgzMjAwLCAweDMyODAsIDB4MzMwMCwgMHgzMzgwLCAweGUwMDAsCisgICAgMHhlMDgwLCAweGUxMDAsIDB4ZTE4MCwgMHhlMjAwLCAweGUyODAsIDB4ZTMwMCwgMHhlMzgwLAorICAgIDB4ZTQwMCwgMHhlNDgwLCAweGU1MDAsIDB4ZTU4MCwgMHhlNjAwLCAweGU2ODAsIDB4ZTcwMCwKKyAgICAweGU3ODAsIDB4ZTgwMCwgMHhlODgwLCAweGU5MDAsIDB4ZTk4MCwgMHhlYTAwLCAweGVhODAsCisgICAgMHhlYjAwLCAweGViODAsIDB4ZWMwMCwgMHhlYzgwLCAweGVkMDAsIDB4ZWQ4MCwgMHhlZTAwLAorICAgIDB4ZWU4MCwgMHhlZjAwLCAweGVmODAsIDB4ZjAwMCwgMHhmMDgwLCAweGYxMDAsIDB4ZjE4MCwKKyAgICAweGYyMDAsIDB4ZjI4MCwgMHhmMzAwLCAweGYzODAsIDB4ZjQwMCwgMHhmNDgwLCAweGY1MDAsCisgICAgMHhmNTgwLCAweGY2MDAsIDB4ZjY4MCwgMHhmNzAwLCAweGY3ODAsIDB4ZjgwMCwgMHhmODgwLAorICAgIDB4ZjkwMCwgMHhmOTgwLCAweGZhMDAsIDB4ZmE4MCwgMHhmYjAwLCAweGZiODAsIDB4ZmMwMCwKKyAgICAweGZjODAsIDB4ZmQwMCwgMHhmZDgwLCAweGZlMDAsIDB4ZmU4MCwgMHhmZjAwLCAweGZmODAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorICAgIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisgICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorICAgIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisgICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHhjMCwgMHgyNTAsIDB4MzcwLAorICAgIDB4NTMwLCAweDMwNDAsIDB4MzBhMCwgMHhmZjYwICAKKyAgICB9OworCisgICAgLyoqIFN0YXRpYyBjb21wcmVzc2lvbiB3aW5kb3cgb2Zmc2V0cyAqLworICAgIGZpbmFsIHN0YXRpYyBpbnQgW10gc09mZnNldHMgPSB7CisgICAgICAgIDB4MDAwMCwgIC8vIGZvciBxdW90aW5nIHNpbmdsZS1ieXRlIG1vZGUgdGFncworICAgICAgICAweDAwODAsICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQKKyAgICAgICAgMHgwMTAwLCAgLy8gTGF0aW4gRXh0ZW5kZWQtQQorICAgICAgICAweDAzMDAsICAvLyBDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MKKyAgICAgICAgMHgyMDAwLCAgLy8gR2VuZXJhbCBQdW5jdHVhdGlvbgorICAgICAgICAweDIwODAsICAvLyBDdXJlbmN5IFN5bWJvbHMKKyAgICAgICAgMHgyMTAwLCAgLy8gTGV0dGVybGlrZSBTeW1ib2xzIGFuZCBOdW1iZXIgRm9ybXMKKyAgICAgICAgMHgzMDAwICAgLy8gQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uCisgICAgfTsKKworfTsKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2VhcmNoSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTRkZTUzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw3ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8cD5TZWFyY2hJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIHRoYXQgZGVmaW5lcyBhIHByb3RvY29sCisgKiBmb3IgdGV4dCBzZWFyY2hpbmcuIFN1YmNsYXNzZXMgcHJvdmlkZSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgb2YKKyAqIHZhcmlvdXMgc2VhcmNoIGFsZ29yaXRobXMuICBBIGNvbmNyZXRlIHN1YmNsYXNzLCBTdHJpbmdTZWFyY2gsIGlzCisgKiBwcm92aWRlZCB0aGF0IGltcGxlbWVudHMgbGFuZ3VhZ2Utc2Vuc2l0aXZlIHBhdHRlcm4gbWF0Y2hpbmcgYmFzZWQKKyAqIG9uIHRoZSBjb21wYXJpc29uIHJ1bGVzIGRlZmluZWQgaW4gYSBSdWxlQmFzZWRDb2xsYXRvcgorICogb2JqZWN0LiBJbnN0YW5jZXMgb2YgU2VhcmNoSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFuZAorICogc2NhbiBvdmVyIHRoZSB0YXJnZXQgdGV4dCwgcmV0dXJuaW5nIHRoZSBpbmRpY2VzIHdoZXJlIGEgbWF0Y2ggaXMKKyAqIGZvdW5kIGFuZCB0aGUgbGVuZ3RoIG9mIGVhY2ggbWF0Y2guIEdlbmVyYWxseSwgdGhlIHNlcXVlbmNlIG9mIGZvcndhcmQgCisgKiBtYXRjaGVzIHdpbGwgYmUgZXF1aXZhbGVudCB0byB0aGUgc2VxdWVuY2Ugb2YgYmFja3dhcmQgbWF0Y2hlcy5PbmUKKyAqIGNhc2Ugd2hlcmUgdGhpcyBzdGF0ZW1lbnQgbWF5IG5vdCBob2xkIGlzIHdoZW4gbm9uLW92ZXJsYXBwaW5nIG1vZGUgCisgKiBpcyBzZXQgb24gYW5kIHRoZXJlIGFyZSBjb250aW51b3VzIHJlcGV0aXRpdmUgcGF0dGVybnMgaW4gdGhlIHRleHQuIAorICogQ29uc2lkZXIgdGhlIGNhc2Ugc2VhcmNoaW5nIGZvciBwYXR0ZXJuICJhYmEiIGluIHRoZSB0ZXh0IAorICogImFiYWJhYmFiYSIsIHNldHRpbmcgb3ZlcmxhcHBpbmcgbW9kZSBvZmYgd2lsbCBwcm9kdWNlIGZvcndhcmQgbWF0Y2hlcworICogYXQgb2Zmc2V0cyAwLCA0LiBIb3dldmVyIHdoZW4gYSBiYWNrd2FyZHMgc2VhcmNoIGlzIGRvbmUsIHRoZQorICogcmVzdWx0cyB3aWxsIGJlIGF0IG9mZnNldHMgNiBhbmQgMi48L3A+CisgKiAKKyAqIDxwPklmIG1hdGNoZXMgc2VhcmNoZWQgZm9yIGhhdmUgYm91bmRhcnkgcmVzdHJpY3Rpb25zLiBCcmVha0l0ZXJhdG9ycyAKKyAqIGNhbiBiZSB1c2VkIHRvIGRlZmluZSB0aGUgdmFsaWQgYm91bmRhcmllcyBvZiBzdWNoIGEgbWF0Y2guIE9uY2UgYSAKKyAqIEJyZWFrSXRlcmF0b3IgaXMgc2V0LCBwb3RlbnRpYWwgbWF0Y2hlcyB3aWxsIGJlIHRlc3RlZCBhZ2FpbnN0IHRoZQorICogQnJlYWtJdGVyYXRvciB0byBkZXRlcm1pbmUgaWYgdGhlIGJvdW5kYXJpZXMgYXJlIHZhbGlkIGFuZCB0aGF0IGFsbAorICogY2hhcmFjdGVycyBpbiB0aGUgcG90ZW50aWFsIG1hdGNoIGFyZSBlcXVpdmFsZW50IHRvIHRoZSBwYXR0ZXJuIAorICogc2VhcmNoZWQgZm9yLiBGb3IgZXhhbXBsZSwgbG9va2luZyBmb3IgdGhlIHBhdHRlcm4gImZveCIgaW4gdGhlIHRleHQKKyAqICJmb3h5IGZveCIgd2lsbCBwcm9kdWNlIG1hdGNoIHJlc3VsdHMgYXQgb2Zmc2V0IDAgYW5kIDUgd2l0aCBsZW5ndGggMworICogaWYgbm8gQnJlYWtJdGVyYXRvcnMgd2VyZSBzZXQuIEhvd2V2ZXIgaWYgYSBXb3JkQnJlYWtJdGVyYXRvciBpcyBzZXQsCisgKiB0aGUgb25seSBtYXRjaCB0aGF0IHdvdWxkIGJlIGZvdW5kIHdpbGwgYmUgYXQgdGhlIG9mZnNldCA1LiBTaW5jZSwKKyAqIHRoZSBTZWFyY2hJdGVyYXRvciBndWFyYW50ZWVzIHRoYXQgaWYgYSBCcmVha0l0ZXJhdG9yIGlzIHNldCwgYWxsIGl0cworICogbWF0Y2hlcyB3aWxsIG1hdGNoIHRoZSBnaXZlbiBwYXR0ZXJuIGV4YWN0bHksIGEgcG90ZW50aWFsIG1hdGNoIHRoYXQgCisgKiBwYXNzZXMgdGhlIEJyZWFrSXRlcmF0b3IgbWlnaHQgc3RpbGwgbm90IHByb2R1Y2UgYSB2YWxpZCBtYXRjaC4gRm9yIAorICogaW5zdGFuY2UgdGhlIHBhdHRlcm4gImUiIHdpbGwgbm90IGJlIGZvdW5kIGluIHRoZSBzdHJpbmcgCisgKiAiJiM5Mjt1MDBlOSIgKGxhdGluIHNtYWxsIGxldHRlciBlIHdpdGggYWN1dGUpIGlmIGEgCisgKiBDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yIGlzIHVzZWQuIEV2ZW4gdGhvdWdoICJlIiBpcworICogYSBwYXJ0IG9mIHRoZSBjaGFyYWN0ZXIgIiYjOTI7dTAwZTkiIGFuZCB0aGUgcG90ZW50aWFsIG1hdGNoIGF0CisgKiBvZmZzZXQgMCBsZW5ndGggMSBwYXNzZXMgdGhlIENoYXJhY3RlckJyZWFrSXRlcmF0b3IgdGVzdCwgIiYjOTI7dTAwZTkiCisgKiBpcyBub3QgZXF1aXZhbGVudCB0byAiZSIsIGhlbmNlIHRoZSBTZWFyY2hJdGVyYXRvciByZWplY3RzIHRoZSBwb3RlbnRpYWwKKyAqIG1hdGNoLiBCeSBkZWZhdWx0LCB0aGUgU2VhcmNoSXRlcmF0b3IKKyAqIGRvZXMgbm90IGltcG9zZSBhbnkgYm91bmRhcnkgcmVzdHJpY3Rpb24gb24gdGhlIG1hdGNoZXMsIGl0IHdpbGwgCisgKiByZXR1cm4gYWxsIHJlc3VsdHMgdGhhdCBtYXRjaCB0aGUgcGF0dGVybi4gSWxsdXN0cmF0aW5nIHdpdGggdGhlIAorICogYWJvdmUgZXhhbXBsZSwgImUiIHdpbGwKKyAqIGJlIGZvdW5kIGluIHRoZSBzdHJpbmcgIiYjOTI7dTAwZTkiIGlmIG5vIEJyZWFrSXRlcmF0b3IgaXMKKyAqIHNwZWNpZmllZC48L3A+CisgKiAKKyAqIDxwPlNlYXJjaEl0ZXJhdG9yIGFsc28gcHJvdmlkZXMgYSBtZWFucyB0byBoYW5kbGUgb3ZlcmxhcHBpbmcKKyAqIG1hdGNoZXMgdmlhIHRoZSBBUEkgc2V0T3ZlcmxhcHBpbmcoYm9vbGVhbikuIEZvciBleGFtcGxlLCBpZgorICogb3ZlcmxhcHBpbmcgbW9kZSBpcyBzZXQsIHNlYXJjaGluZyBmb3IgdGhlIHBhdHRlcm4gImFiYWIiIGluIHRoZQorICogdGV4dCAiYWJhYmFiIiB3aWxsIG1hdGNoIGF0IHBvc2l0aW9ucyAwIGFuZCAyLCB3aGVyZWFzIGlmCisgKiBvdmVybGFwcGluZyBpcyBub3Qgc2V0LCBTZWFyY2hJdGVyYXRvciB3aWxsIG9ubHkgbWF0Y2ggYXQgcG9zaXRpb24KKyAqIDAuIEJ5IGRlZmF1bHQsIG92ZXJsYXBwaW5nIG1vZGUgaXMgbm90IHNldC48L3A+CisgKiAKKyAqIDxwPlRoZSBBUElzIGluIFNlYXJjaEl0ZXJhdG9yIGFyZSBzaW1pbGFyIHRvIHRoYXQgb2Ygb3RoZXIgdGV4dAorICogaXRlcmF0aW9uIGNsYXNzZXMgc3VjaCBhcyBCcmVha0l0ZXJhdG9yLiBVc2luZyB0aGlzIGNsYXNzLCBpdCBpcworICogZWFzeSB0byBzY2FuIHRocm91Z2ggdGV4dCBsb29raW5nIGZvciBhbGwgb2NjdXJhbmNlcyBvZiBhCisgKiBtYXRjaC48L3A+CisgKiA8cD4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBTdHJpbmcgdGFyZ2V0ID0gIlRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZm94IjsKKyAqIFN0cmluZyBwYXR0ZXJuID0gImZveCI7CisgKiBTZWFyY2hJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCB0YXJnZXQpOworICogZm9yIChpbnQgcG9zID0gaXRlci5maXJzdCgpOyBwb3MgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORTsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpdGVyLm5leHQoKSkgeworICogICAgIC8vIHByaW50bG4gbWF0Y2hlcyBhdCBvZmZzZXQgMTYgYW5kIDQxIHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZvdW5kIG1hdGNoIGF0ICIgKyBwb3MgKyAiLCBsZW5ndGggaXMgIiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVyLmdldE1hdGNoTGVuZ3RoKCkpOworICogfQorICogdGFyZ2V0ID0gImFiYWJhYmFiYSI7CisgKiBwYXR0ZXJuID0gImFiYSI7CisgKiBpdGVyLnNldFRhcmdldChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IocGF0dGVybikpOworICogaXRlci5zZXRPdmVybGFwcGluZyhmYWxzZSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk92ZXJsYXBwaW5nIG1vZGUgc2V0IHRvIGZhbHNlIik7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkZvcndhcmQgbWF0Y2hlcyBvZiBwYXR0ZXJuICIgKyBwYXR0ZXJuICsgIiBpbiB0ZXh0ICIKKyAqICAgICAgICAgICAgICAgICAgICArIHRleHQgKyAiOiAiKTsKKyAqIGZvciAoaW50IHBvcyA9IGl0ZXIuZmlyc3QoKTsgcG9zICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkU7IAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAvLyBwcmludGxuIG1hdGNoZXMgYXQgb2Zmc2V0IDAgYW5kIDQgd2l0aCBsZW5ndGggMworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2Zmc2V0ICIgKyBwb3MgKyAiLCBsZW5ndGggIiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVyLmdldE1hdGNoTGVuZ3RoKCkpOworICogfQorICogU3lzdGVtLm91dC5wcmludGxuKCJCYWNrd2FyZCBtYXRjaGVzIG9mIHBhdHRlcm4gIiArIHBhdHRlcm4gKyAiIGluIHRleHQgIgorICogICAgICAgICAgICAgICAgICAgICsgdGV4dCArICI6ICIpOworICogZm9yIChpbnQgcG9zID0gaXRlci5sYXN0KCk7IHBvcyAhPSBTZWFyY2hJdGVyYXRvci5ET05FOyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGl0ZXIucHJldmlvdXMoKSkgeworICogICAgIC8vIHByaW50bG4gbWF0Y2hlcyBhdCBvZmZzZXQgNiBhbmQgMiB3aXRoIGxlbmd0aCAzCisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvZmZzZXQgIiArIHBvcyArICIsIGxlbmd0aCAiIAorICogICAgICAgICAgICAgICAgICAgICAgICArIGl0ZXIuZ2V0TWF0Y2hMZW5ndGgoKSk7CisgKiB9CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk92ZXJsYXBwaW5nIG1vZGUgc2V0IHRvIHRydWUiKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSW5kZXggc2V0IHRvIDIiKTsKKyAqIGl0ZXIuc2V0SW5kZXgoMik7CisgKiBpdGVyLnNldE92ZXJsYXBwaW5nKHRydWUpOworICogU3lzdGVtLm91dC5wcmludGxuKCJGb3J3YXJkIG1hdGNoZXMgb2YgcGF0dGVybiAiICsgcGF0dGVybiArICIgaW4gdGV4dCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyB0ZXh0ICsgIjogIik7CisgKiBmb3IgKGludCBwb3MgPSBpdGVyLmZpcnN0KCk7IHBvcyAhPSBTZWFyY2hJdGVyYXRvci5ET05FOyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGl0ZXIubmV4dCgpKSB7CisgKiAgICAgLy8gcHJpbnRsbiBtYXRjaGVzIGF0IG9mZnNldCAyLCA0IGFuZCA2IHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9mZnNldCAiICsgcG9zICsgIiwgbGVuZ3RoICIgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICsgaXRlci5nZXRNYXRjaExlbmd0aCgpKTsKKyAqIH0KKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSW5kZXggc2V0IHRvIDIiKTsKKyAqIGl0ZXIuc2V0SW5kZXgoMik7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkJhY2t3YXJkIG1hdGNoZXMgb2YgcGF0dGVybiAiICsgcGF0dGVybiArICIgaW4gdGV4dCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyB0ZXh0ICsgIjogIik7CisgKiBmb3IgKGludCBwb3MgPSBpdGVyLmxhc3QoKTsgcG9zICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkU7IAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgLy8gcHJpbnRsbiBtYXRjaGVzIGF0IG9mZnNldCAwIHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9mZnNldCAiICsgcG9zICsgIiwgbGVuZ3RoICIgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICsgaXRlci5nZXRNYXRjaExlbmd0aCgpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9wPgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIsIHN5bndlZQorICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFNlYXJjaEl0ZXJhdG9yIAoreworICAgIAorICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4dCgpIGFmdGVyIGFsbCB2YWxpZCBtYXRjaGVzIGhhdmUgCisgICAgICogYmVlbiByZXR1cm5lZCwgYW5kIGJ5IGZpcnN0KCkgYW5kIGxhc3QoKSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcyBhdCBhbGwuCisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9ORSA9IC0xOworICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIG5leHQgc2VhcmNoIHdpbGwgc3RhcnQuCisgICAgICogVGhpcyBtZXRob2QgY2xlYXJzIGFueSBwcmV2aW91cyBtYXRjaC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHBvc2l0aW9uIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gc3RhcnQgdGhlIG5leHQgc2VhcmNoCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBhcmd1bWVudCBwb3NpdGlvbiBpcyBvdXQKKyAgICAgKiAgICAgICAgICAgIG9mIHRoZSB0YXJnZXQgdGV4dCByYW5nZS4KKyAgICAgKiBAc2VlICNnZXRJbmRleAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBwb3NpdGlvbikgeworICAgICAgICBpZiAocG9zaXRpb24gPCB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSAKKyAgICAgICAgICAgIHx8IHBvc2l0aW9uID4gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAic2V0SW5kZXgoaW50KSBleHBlY3RlZCBwb3NpdGlvbiB0byBiZSBiZXR3ZWVuICIgKworICAgICAgICAgICAgICAgIHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpICsgIiBhbmQgIiArIHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9zZXRPZmZzZXRfID0gcG9zaXRpb247CisgICAgICAgIG1fcmVzZXRfID0gZmFsc2U7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIG92ZXJsYXBwaW5nIG1hdGNoZXMgYXJlIHJldHVybmVkLiBTZWUgdGhlIGNsYXNzIAorICAgICAqIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3ZlcmxhcHBpbmcgbWF0Y2hlcy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIGRlZmF1bHQgc2V0dGluZyBvZiB0aGlzIHByb3BlcnR5IGlzIGZhbHNlCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBhbGxvd092ZXJsYXAgZmxhZyBpbmRpY2F0b3IgaWYgb3ZlcmxhcHBpbmcgbWF0Y2hlcyBhcmUgYWxsb3dlZAorICAgICAqIEBzZWUgI2lzT3ZlcmxhcHBpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPdmVybGFwcGluZyhib29sZWFuIGFsbG93T3ZlcmxhcCkKKyAgICB7CisgICAgICAgIG1faXNPdmVybGFwXyA9IGFsbG93T3ZlcmxhcDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBCcmVha0l0ZXJhdG9yIHRoYXQgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgcG9pbnRzIGF0IHdoaWNoIAorICAgICAqIG1hdGNoZXMgYXJlIGRldGVjdGVkLgorICAgICAqIFVzaW5nIDx0dD5udWxsPC90dD4gYXMgdGhlIHBhcmFtZXRlciBpcyBsZWdhbDsgaXQgbWVhbnMgdGhhdCBicmVhayAKKyAgICAgKiBkZXRlY3Rpb24gc2hvdWxkIG5vdCBiZSBhdHRlbXB0ZWQuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHBhcmFtIGJyZWFraXRlciBBIEJyZWFrSXRlcmF0b3IgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmVzdHJpY3QgdGhlIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgcG9pbnRzIGF0IHdoaWNoIG1hdGNoZXMgYXJlIGRldGVjdGVkLgorICAgICAqIEBzZWUgI2dldEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCcmVha0l0ZXJhdG9yKEJyZWFrSXRlcmF0b3IgYnJlYWtpdGVyKSAKKyAgICB7CisgICAgICAgIGJyZWFrSXRlcmF0b3IgPSBicmVha2l0ZXI7CisgICAgICAgIGlmIChicmVha0l0ZXJhdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrSXRlcmF0b3Iuc2V0VGV4dCh0YXJnZXRUZXh0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHRhcmdldCB0ZXh0IHRvIGJlIHNlYXJjaGVkLiBUZXh0IGl0ZXJhdGlvbiB3aWxsIHRoZW4gYmVnaW4gYXQgCisgICAgICAqIHRoZSBzdGFydCBvZiB0aGUgdGV4dCBzdHJpbmcuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byAKKyAgICAgKiByZXVzZSBhbiBpdGVyYXRvciB0byBzZWFyY2ggd2l0aGluIGEgZGlmZmVyZW50IGJvZHkgb2YgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCBuZXcgdGV4dCBpdGVyYXRvciB0byBsb29rIGZvciBtYXRjaCwgCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gdGV4dCBpcyBudWxsIG9yIGhhcworICAgICAqICAgICAgICAgICAgICAgMCBsZW5ndGgKKyAgICAgKiBAc2VlICNnZXRUYXJnZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUYXJnZXQoQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkKKyAgICB7CisgICAgICAgIGlmICh0ZXh0ID09IG51bGwgfHwgdGV4dC5nZXRFbmRJbmRleCgpID09IHRleHQuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBudWxsIG9yIGVtcHR5IHRleHQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGFyZ2V0VGV4dCA9IHRleHQ7CisgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgIG1fcmVzZXRfID0gdHJ1ZTsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IgIT0gbnVsbCkgeworICAgICAgICAgICAgYnJlYWtJdGVyYXRvci5zZXRUZXh0KHRhcmdldFRleHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSB2YWxpZCByZXN1bHQgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCB0byAKKyAgICAgKiB7QGxpbmsgI2ZpcnN0fSwge0BsaW5rICNuZXh0fSwge0BsaW5rICNwcmV2aW91c30sIG9yIHtAbGluayAjbGFzdH0uCisgICAgICogSnVzdCBhZnRlciBjb25zdHJ1Y3Rpb24sIG9yIGFmdGVyIGEgc2VhcmNoaW5nIG1ldGhvZCByZXR1cm5zIAorICAgICAqIDx0dD5ET05FPC90dD4sIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIDx0dD5ET05FPC90dD4uCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFVzZSA8dHQ+Z2V0TWF0Y2hMZW5ndGg8L3R0PiB0byBnZXQgdGhlIGxlbmd0aCBvZiB0aGUgbWF0Y2hlZCB0ZXh0LgorICAgICAqIDx0dD5nZXRNYXRjaGVkVGV4dDwvdHQ+IHdpbGwgcmV0dXJuIHRoZSBzdWJ0ZXh0IGluIHRoZSBzZWFyY2hlZCAKKyAgICAgKiB0YXJnZXQgdGV4dCBmcm9tIGluZGV4IGdldE1hdGNoU3RhcnQoKSB3aXRoIGxlbmd0aCBnZXRNYXRjaExlbmd0aCgpLiAKKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiBpbmRleCB0byBhIHN1YnN0cmluZyB3aXRoaW4gdGhlIHRleHQgc3RyaW5nIHRoYXQgaXMgYmVpbmcgCisgICAgICogICAgICAgICBzZWFyY2hlZC4KKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF0Y2hTdGFydCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9sYXN0TWF0Y2hTdGFydF87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseQorICAgICAqIHBvc2l0aW9uZWQuIAorICAgICAqIElmIHRoZSBpdGVyYXRpb24gaGFzIGdvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dCwgb3IgcGFzdCAKKyAgICAgKiB0aGUgYmVnaW5uaW5nIGZvciBhIGJhY2t3YXJkcyBzZWFyY2gsIHtAbGluayAjRE9ORX0gaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSAKKyAgICAgKiAgICAgICAgIHBvc2l0aW9uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0SW5kZXgoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG1vc3QgcmVjZW50IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSB2YWxpZCByZXN1bHQgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwKKyAgICAgKiBjYWxsIHRvIHtAbGluayAjZmlyc3R9LCB7QGxpbmsgI25leHR9LCB7QGxpbmsgI3ByZXZpb3VzfSwgb3IgCisgICAgICoge0BsaW5rICNsYXN0fS4KKyAgICAgKiBKdXN0IGFmdGVyIGNvbnN0cnVjdGlvbiwgb3IgYWZ0ZXIgYSBzZWFyY2hpbmcgbWV0aG9kIHJldHVybnMKKyAgICAgKiA8dHQ+RE9ORTwvdHQ+LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiAwLiBTZWUgZ2V0TWF0Y2hTdGFydCgpIGZvciAKKyAgICAgKiBtb3JlIGRldGFpbHMuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgbW9zdCByZWNlbnQgbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LCBvciAwIGlmIAorICAgICAqICAgICAgICAgdGhlcmUgaXMgbm8gbWF0Y2guCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF0Y2hMZW5ndGgoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtYXRjaExlbmd0aDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgQnJlYWtJdGVyYXRvciB0aGF0IGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGluZGV4ZXMgYXQgd2hpY2ggCisgICAgICogbWF0Y2hlcyBhcmUgZGV0ZWN0ZWQuIFRoaXMgd2lsbCBiZSB0aGUgc2FtZSBvYmplY3QgdGhhdCB3YXMgcGFzc2VkIHRvIAorICAgICAqIHRoZSBjb25zdHJ1Y3RvciBvciB0byA8Y29kZT5zZXRCcmVha0l0ZXJhdG9yPC9jb2RlPi4KKyAgICAgKiBJZiB0aGUgQnJlYWtJdGVyYXRvciBoYXMgbm90IGJlZW4gc2V0LCA8dHQ+bnVsbDwvdHQ+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogU2VlIHNldEJyZWFrSXRlcmF0b3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHJldHVybiB0aGUgQnJlYWtJdGVyYXRvciBzZXQgdG8gcmVzdHJpY3QgbG9naWMgbWF0Y2hlcworICAgICAqIEBzZWUgI3NldEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQnJlYWtJdGVyYXRvciBnZXRCcmVha0l0ZXJhdG9yKCkgCisgICAgeworICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvcjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0YXJnZXQgdGV4dCB0aGF0IGlzIGJlaW5nIHNlYXJjaGVkLgorICAgICAqIEByZXR1cm4gdGFyZ2V0IHRleHQgYmVpbmcgc2VhcmNoZWQuCisgICAgICogQHNlZSAjc2V0VGFyZ2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGdldFRhcmdldCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhcmdldFRleHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRleHQgdGhhdCB3YXMgbWF0Y2hlZCBieSB0aGUgbW9zdCByZWNlbnQgY2FsbCB0byAKKyAgICAgKiB7QGxpbmsgI2ZpcnN0fSwge0BsaW5rICNuZXh0fSwge0BsaW5rICNwcmV2aW91c30sIG9yIHtAbGluayAjbGFzdH0uIAorICAgICAqIElmIHRoZSBpdGVyYXRvciBpcyBub3QgcG9pbnRpbmcgYXQgYSB2YWxpZCBtYXRjaCwgZm9yIGluc3RhbmNlIGp1c3QgCisgICAgICogYWZ0ZXIgY29uc3RydWN0aW9uIG9yIGFmdGVyIDx0dD5ET05FPC90dD4gaGFzIGJlZW4gcmV0dXJuZWQsIGFuIGVtcHR5IAorICAgICAqIFN0cmluZyB3aWxsIGJlIHJldHVybmVkLiBTZWUgZ2V0TWF0Y2hTdGFydCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAcmV0dXJuIHRoZSBzdWJzdHJpbmcgaW4gdGhlIHRhcmdldCB0ZXh0IG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1hdGNoZWRUZXh0KCkgCisgICAgeworICAgICAgICBpZiAobWF0Y2hMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBtX2xhc3RNYXRjaFN0YXJ0XyArIG1hdGNoTGVuZ3RoOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIobWF0Y2hMZW5ndGgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0YXJnZXRUZXh0LmN1cnJlbnQoKSk7CisgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIHdoaWxlICh0YXJnZXRUZXh0LmdldEluZGV4KCkgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodGFyZ2V0VGV4dC5jdXJyZW50KCkpOworICAgICAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtX2xhc3RNYXRjaFN0YXJ0Xyk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gbWlzY2VsbGFuZW91cyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZWFyY2ggPGI+Zm9yd2FyZHM8L2I+IGluIHRoZSB0YXJnZXQgdGV4dCBmb3IgdGhlIG5leHQgdmFsaWQgbWF0Y2gsCisgICAgICogc3RhcnRpbmcgdGhlIHNlYXJjaCBmcm9tIHRoZSBjdXJyZW50IGl0ZXJhdG9yIHBvc2l0aW9uLiBUaGUgaXRlcmF0b3IgaXMgCisgICAgICogYWRqdXN0ZWQgc28gdGhhdCBpdHMgY3VycmVudCBpbmRleCwgYXMgcmV0dXJuZWQgYnkge0BsaW5rICNnZXRJbmRleH0sCisgICAgICogaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBpZiBvbmUgd2FzIGZvdW5kLiBJZiBhIG1hdGNoIGlzIAorICAgICAqIGZvdW5kLCB0aGUgaW5kZXggb2YgdGhlIG1hdGNoIGlzIHJldHVybmVkLCBvdGhlcndpc2UgPHR0PkRPTkU8L3R0PiBpcworICAgICAqIHJldHVybmVkLiAgSWYgb3ZlcmxhcHBpbmcgbW9kZSBpcyBzZXQsIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZvdW5kIG1hdGNoCisgICAgICogY2FuIGJlIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IG1hdGNoLCBpZiBhbnkuCisgICAgICogQHJldHVybiBUaGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgZm9yd2FyZCBtYXRjaCBhZnRlciB0aGUgY3VycmVudCAKKyAgICAgKiAgICAgICAgIGl0ZXJhdG9yIHBvc2l0aW9uLCBvciAKKyAgICAgKiAgICAgICAgIDx0dD5ET05FPC90dD4gaWYgdGhlcmUgYXJlIG5vIG1vcmUgbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpCisgICAgeworICAgICAgICBpbnQgc3RhcnQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgIGlmIChtX3NldE9mZnNldF8gIT0gRE9ORSkgeworICAgICAgICAgICAgc3RhcnQgPSBtX3NldE9mZnNldF87ICAgIAorICAgICAgICAgICAgbV9zZXRPZmZzZXRfID0gRE9ORTsgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKG1faXNGb3J3YXJkU2VhcmNoaW5nXykgeworICAgICAgICAgICAgaWYgKCFtX3Jlc2V0XyAmJiAKKyAgICAgICAgICAgICAgICBzdGFydCArIG1hdGNoTGVuZ3RoID49IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdCBlbm91Z2ggY2hhcmFjdGVycyB0byBtYXRjaAorICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgICAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBET05FOworICAgICAgICAgICAgICAgIHJldHVybiBET05FOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fcmVzZXRfID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBzd2l0Y2hpbmcgZGlyZWN0aW9uLiAKKyAgICAgICAgICAgIC8vIGlmIG1hdGNoZWRJbmRleCA9PSBVU0VBUkNIX0RPTkUsIGl0IG1lYW5zIHRoYXQgZWl0aGVyIGEgCisgICAgICAgICAgICAvLyBzZXRJbmRleCBoYXMgYmVlbiBjYWxsZWQgb3IgdGhhdCBwcmV2aW91cyByYW4gb2ZmIHRoZSB0ZXh0CisgICAgICAgICAgICAvLyBzdHJpbmcuIHRoZSBpdGVyYXRvciB3b3VsZCBoYXZlIGJlZW4gc2V0IHRvIG9mZnNldCAwIGlmIGEgCisgICAgICAgICAgICAvLyBtYXRjaCBpcyBub3QgZm91bmQuCisgICAgICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGVyZSdzIG5vIG5lZWQgdG8gc2V0IHRoZSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcgorICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IGNhbGwgdG8gbmV4dCB3aWxsIHNldCB0aGUgb2Zmc2V0LgorICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0ID09IERPTkUpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1hdGNoTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgLy8gaWYgbWF0Y2ggbGVuZ3RoIGlzIDAgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uCisgICAgICAgICAgICBpZiAobV9pc092ZXJsYXBfKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFydCArPSBtYXRjaExlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2xhc3RNYXRjaFN0YXJ0XyA9IGhhbmRsZU5leHQoc3RhcnQpOworICAgICAgICByZXR1cm4gbV9sYXN0TWF0Y2hTdGFydF87CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoIDxiPmJhY2t3YXJkczwvYj4gaW4gdGhlIHRhcmdldCB0ZXh0IGZvciB0aGUgbmV4dCB2YWxpZCBtYXRjaCwKKyAgICAgKiBzdGFydGluZyB0aGUgc2VhcmNoIGZyb20gdGhlIGN1cnJlbnQgaXRlcmF0b3IgcG9zaXRpb24uIFRoZSBpdGVyYXRvciBpcyAKKyAgICAgKiBhZGp1c3RlZCBzbyB0aGF0IGl0cyBjdXJyZW50IGluZGV4LCBhcyByZXR1cm5lZCBieSB7QGxpbmsgI2dldEluZGV4fSwKKyAgICAgKiBpcyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIG1hdGNoIGlmIG9uZSB3YXMgZm91bmQuIElmIGEgbWF0Y2ggaXMgCisgICAgICogZm91bmQsIHRoZSBpbmRleCBpcyByZXR1cm5lZCwgb3RoZXJ3aXNlIDx0dD5ET05FPC90dD4gaXMgcmV0dXJuZWQuICBJZgorICAgICAqIG92ZXJsYXBwaW5nIG1vZGUgaXMgc2V0LCB0aGUgZW5kIG9mIHRoZSBmb3VuZCBtYXRjaCBjYW4gYmUgYWZ0ZXIgdGhlCisgICAgICogYmVnaW5uaW5nIG9mIHRoZSBwcmV2aW91cyBtYXRjaCwgaWYgYW55LgorICAgICAqIEByZXR1cm4gVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBuZXh0IGJhY2t3YXJkcyBtYXRjaCBhZnRlciB0aGUgY3VycmVudCAKKyAgICAgKiAgICAgICAgIGl0ZXJhdG9yIHBvc2l0aW9uLCBvciAKKyAgICAgKiAgICAgICAgIDx0dD5ET05FPC90dD4gaWYgdGhlcmUgYXJlIG5vIG1vcmUgbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNmaXJzdAorICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpCisgICAgeworICAgICAgICBpbnQgc3RhcnQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgIGlmIChtX3NldE9mZnNldF8gIT0gRE9ORSkgeworICAgICAgICAgICAgc3RhcnQgPSBtX3NldE9mZnNldF87ICAgIAorICAgICAgICAgICAgbV9zZXRPZmZzZXRfID0gRE9ORTsgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fcmVzZXRfKSB7CisgICAgICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSBmYWxzZTsKKyAgICAgICAgICAgIG1fcmVzZXRfID0gZmFsc2U7CisgICAgICAgICAgICBzdGFydCA9IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9PSB0cnVlKSB7CisgICAgICAgICAgICAvLyBzd2l0Y2hpbmcgZGlyZWN0aW9uLiAKKyAgICAgICAgICAgIC8vIGlmIG1hdGNoZWRJbmRleCA9PSBVU0VBUkNIX0RPTkUsIGl0IG1lYW5zIHRoYXQgZWl0aGVyIGEgCisgICAgICAgICAgICAvLyBzZXRJbmRleCBoYXMgYmVlbiBjYWxsZWQgb3IgdGhhdCBuZXh0IHJhbiBvZmYgdGhlIHRleHQKKyAgICAgICAgICAgIC8vIHN0cmluZy4gdGhlIGl0ZXJhdG9yIHdvdWxkIGhhdmUgYmVlbiBzZXQgdG8gb2Zmc2V0IHRleHRMZW5ndGggaWYgCisgICAgICAgICAgICAvLyBhIG1hdGNoIGlzIG5vdCBmb3VuZC4KKyAgICAgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IGZhbHNlOworICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdCBlbm91Z2ggY2hhcmFjdGVycyB0byBtYXRjaAorICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICAgICAgICAgICAgICBtX2xhc3RNYXRjaFN0YXJ0XyA9IERPTkU7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7IAorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBoYW5kbGVQcmV2aW91cyhzdGFydCk7CisgICAgICAgIHJldHVybiBtX2xhc3RNYXRjaFN0YXJ0XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgb3ZlcmxhcHBpbmcgcHJvcGVydHkgaGFzIGJlZW4gc2V0LgorICAgICAqIFNlZSBzZXRPdmVybGFwcGluZyhib29sZWFuKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRPdmVybGFwcGluZworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb3ZlcmxhcHBpbmcgcHJvcGVydHkgaGFzIGJlZW4gc2V0LCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc092ZXJsYXBwaW5nKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9pc092ZXJsYXBfOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogPHA+CisgICAgICogUmVzZXRzIHRoZSBzZWFyY2ggaXRlcmF0aW9uLiBBbGwgcHJvcGVydGllcyB3aWxsIGJlIHJlc2V0IHRvIHRoZWlyCisgICAgICogZGVmYXVsdCB2YWx1ZXMuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIElmIGEgZm9yd2FyZCBpdGVyYXRpb24gaXMgaW5pdGlhdGVkLCB0aGUgbmV4dCBzZWFyY2ggd2lsbCBiZWdpbiBhdCB0aGUKKyAgICAgKiBzdGFydCBvZiB0aGUgdGFyZ2V0IHRleHQuIE90aGVyd2lzZSwgaWYgYSBiYWNrd2FyZHMgaXRlcmF0aW9uIGlzIGluaXRpYXRlZCwKKyAgICAgKiB0aGUgbmV4dCBzZWFyY2ggd2lsbCBiZWdpbiBhdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dC4KKyAgICAgKiA8L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgLy8gcmVzZXQgaXMgc2V0dGluZyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSBhbHJlYWR5IGluIHN0cmluZyBzZWFyY2gKKyAgICAgICAgbWF0Y2hMZW5ndGggPSAwOworICAgICAgICBzZXRJbmRleCh0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIG1faXNPdmVybGFwXyA9IGZhbHNlOworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICBtX3Jlc2V0XyA9IHRydWU7CisgICAgICAgIG1fc2V0T2Zmc2V0XyA9IERPTkU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IDxiPmZvcndhcmQ8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgaXRlcmF0aW9uIHRvIGJlZ2luIGF0IHRoZSBzdGFydCBvZiB0aGUgCisgICAgICogdGFyZ2V0IHRleHQgYW5kIHNlYXJjaGVzIGZvcndhcmQgZnJvbSB0aGVyZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZm9yd2FyZCBtYXRjaCwgb3IgPGNvZGU+RE9ORTwvY29kZT4gCisgICAgICogICAgICAgICAgICBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBmaXJzdCgpIAorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICByZXR1cm4gbmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IDxiPmZvcndhcmQ8L2I+IG1hdGNoIGluIHRhcmdldCB0ZXh0IHRoYXQgCisgICAgICogaXMgYXQgb3IgYWZ0ZXIgYXJndW1lbnQgPHR0PnBvc2l0aW9uPC90dD4uIAorICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIGl0ZXJhdGlvbiB0byBiZWdpbiBhdCB0aGUgc3BlY2lmaWVkCisgICAgICogcG9zaXRpb24gaW4gdGhlIHRoZSB0YXJnZXQgdGV4dCBhbmQgc2VhcmNoZXMgZm9yd2FyZCBmcm9tIHRoZXJlLgorICAgICAqIEByZXR1cm4gVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBmb3J3YXJkIG1hdGNoLCBvciA8Y29kZT5ET05FPC9jb2RlPiAKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGFyZSBubyBtYXRjaGVzLgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNwcmVjZWRpbmcKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZm9sbG93aW5nKGludCBwb3NpdGlvbikgCisgICAgeworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICAvLyBwb3NpdGlvbiBjaGVja2VkIGluIHVzZWFyY2hfc2V0T2Zmc2V0CisgICAgICAgIHNldEluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgPGI+YmFja3dhcmQ8L2I+IG1hdGNoIGluIHRhcmdldCB0ZXh0LiAKKyAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBpdGVyYXRpb24gdG8gYmVnaW4gYXQgdGhlIGVuZCBvZiB0aGUgCisgICAgICogdGFyZ2V0IHRleHQgYW5kIHNlYXJjaGVzIGJhY2t3YXJkcyBmcm9tIHRoZXJlLgorICAgICAqIEByZXR1cm4gVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBmaXJzdCBiYWNrd2FyZCBtYXRjaCwgb3IgCisgICAgICogICAgICAgICA8Y29kZT5ET05FPC9jb2RlPiBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjcHJlY2VkaW5nCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjZm9sbG93aW5nCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgbGFzdCgpIAorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gZmFsc2U7CisgICAgICAgIHNldEluZGV4KHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIHJldHVybiBwcmV2aW91cygpOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgPGI+YmFja3dhcmRzPC9iPiBtYXRjaCBpbiB0YXJnZXQgCisgICAgICogdGV4dCB0aGF0IGVuZHMgYXQgb3IgYmVmb3JlIGFyZ3VtZW50IDx0dD5wb3NpdGlvbjwvdHQ+LiAKKyAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBpdGVyYXRpb24gdG8gYmVnaW4gYXQgdGhlIGFyZ3VtZW50CisgICAgICogcG9zaXRpb24gaW5kZXggb2YgdGhlIHRhcmdldCB0ZXh0IGFuZCBzZWFyY2hlcyBiYWNrd2FyZHMgZnJvbSB0aGVyZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgZmlyc3QgYmFja3dhcmRzIG1hdGNoLCBvciAKKyAgICAgKiAgICAgICAgIDxjb2RlPkRPTkU8L2NvZGU+IAorICAgICAqICAgICAgICAgaWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmaXJzdAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBwcmVjZWRpbmcoaW50IHBvc2l0aW9uKSAKKyAgICB7CisgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IGZhbHNlOworICAgICAgICAvLyBwb3NpdGlvbiBjaGVja2VkIGluIHVzZWFyY2hfc2V0T2Zmc2V0CisgICAgICAgIHNldEluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7ICAgCisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGhlIEJyZWFrSXRlcmF0b3IgdG8gZGVmaW5lIHRoZSBib3VuZGFyaWVzIG9mIGEgbG9naWNhbCBtYXRjaC4KKyAgICAgKiBUaGlzIHZhbHVlIGNhbiBiZSBhIG51bGwuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHNlZSAjc2V0QnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yKQorICAgICAqIEBzZWUgI2dldEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9yOyAKKworICAgIC8qKgorICAgICAqIFRhcmdldCB0ZXh0IGZvciBzZWFyY2hpbmcuCisgICAgICogQHNlZSAjc2V0VGFyZ2V0KENoYXJhY3Rlckl0ZXJhdG9yKQorICAgICAqIEBzZWUgI2dldFRhcmdldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBDaGFyYWN0ZXJJdGVyYXRvciB0YXJnZXRUZXh0OworICAgIC8qKgorICAgICAqIExlbmd0aCBvZiB0aGUgbW9zdCBjdXJyZW50IG1hdGNoIGluIHRhcmdldCB0ZXh0LiAKKyAgICAgKiBWYWx1ZSAwIGlzIHRoZSBkZWZhdWx0IHZhbHVlLgorICAgICAqIEBzZWUgI3NldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG1hdGNoTGVuZ3RoOworICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4KKyAgICAgKiBJbml0aWFsaXplcyB0aGUgaXRlcmF0b3Igd2l0aCB0aGUgYXJndW1lbnQgdGFyZ2V0IHRleHQgZm9yIHNlYXJjaGluZyAKKyAgICAgKiBhbmQgc2V0cyB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSB1c2Ugb2YgdGhlIHRhcmdldCB0ZXh0CisgICAgICogYW5kIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IHRleHQgdG8gYmUgc2VhcmNoZWQuCisgICAgICogQHBhcmFtIGJyZWFrZXIgQSB7QGxpbmsgQnJlYWtJdGVyYXRvcn0gdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgCisgICAgICogICAgICAgICAgICAgICAgYm91bmRhcmllcyBvZiBhIGxvZ2ljYWwgbWF0Y2guIFRoaXMgYXJndW1lbnQgY2FuIGJlIG51bGwuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMAorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvciAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIFNlYXJjaEl0ZXJhdG9yKENoYXJhY3Rlckl0ZXJhdG9yIHRhcmdldCwgQnJlYWtJdGVyYXRvciBicmVha2VyKQorICAgIHsKKyAgICAgICAgaWYgKHRhcmdldCA9PSBudWxsIAorICAgICAgICAgICAgfHwgKHRhcmdldC5nZXRFbmRJbmRleCgpIC0gdGFyZ2V0LmdldEJlZ2luSW5kZXgoKSkgPT0gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGFyZ3VtZW50IHRhcmdldC4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgQXJndW1lbnQgY2FuIG5vdCBiZSBudWxsIG9yIG9mIGxlbmd0aCAwIik7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0VGV4dCA9IHRhcmdldDsKKyAgICAgICAgYnJlYWtJdGVyYXRvciA9IGJyZWFrZXI7CisgICAgICAgIGlmIChicmVha0l0ZXJhdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrSXRlcmF0b3Iuc2V0VGV4dCh0YXJnZXQpOworICAgICAgICB9CisgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBET05FOworICAgICAgICBtX2lzT3ZlcmxhcF8gPSBmYWxzZTsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNldF8gPSB0cnVlOworICAgICAgICBtX3NldE9mZnNldF8gPSBET05FOworICAgIH0gICAgCisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbGVuZ3RoIG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuIAorICAgICAqIFN1YmNsYXNzZXMnIGhhbmRsZU5leHQoKSBhbmQgaGFuZGxlUHJldmlvdXMoKSBtZXRob2RzIHNob3VsZCBjYWxsIHRoaXMgCisgICAgICogYWZ0ZXIgdGhleSBmaW5kIGEgbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LiAgICAKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIG5ldyBsZW5ndGggdG8gc2V0CisgICAgICogQHNlZSAjaGFuZGxlTmV4dAorICAgICAqIEBzZWUgI2hhbmRsZVByZXZpb3VzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TWF0Y2hMZW5ndGgoaW50IGxlbmd0aCkKKyAgICB7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gbGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEFic3RyYWN0IG1ldGhvZCB0aGF0IHN1YmNsYXNzZXMgb3ZlcnJpZGUgdG8gcHJvdmlkZSB0aGUgbWVjaGFuaXNtIAorICAgICAqIGZvciBmaW5kaW5nIHRoZSBuZXh0IDxiPmZvcndhcmRzPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuIFRoaXMgCisgICAgICogYWxsb3dzIGRpZmZlcmVudCBzdWJjbGFzc2VzIHRvIHByb3ZpZGUgZGlmZmVyZW50IHNlYXJjaCBhbGdvcml0aG1zLgorICAgICAqIDwvcD4gCisgICAgICogPHA+CisgICAgICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgdGhpcyBmdW5jdGlvbiBtdXN0IGNhbGwgc2V0TWF0Y2hMZW5ndGgoaW50KSB0bworICAgICAqIHNldCB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgbWF0Y2guCisgICAgICogVGhlIGl0ZXJhdG9yIGlzIGFkanVzdGVkIHNvIHRoYXQgaXRzIGN1cnJlbnQgaW5kZXgsIGFzIHJldHVybmVkIGJ5IAorICAgICAqIHtAbGluayAjZ2V0SW5kZXh9LCBpcyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIG1hdGNoIGlmIG9uZSB3YXMgCisgICAgICogZm91bmQuIElmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCA8dHQ+RE9ORTwvdHQ+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogPC9wPiAKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBmb3J3YXJkcyBzZWFyY2ggCisgICAgICogICAgICAgIHNob3VsZCBiZWdpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBmb3J3YXJkcyBtYXRjaCBpZiBmb3VuZCwgRE9ORSAKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqIEBzZWUgI3NldE1hdGNoTGVuZ3RoKGludCkKKyAgICAgKiBAc2VlICNoYW5kbGVQcmV2aW91cyhpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgaGFuZGxlTmV4dChpbnQgc3RhcnQpOworICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEFic3RyYWN0IG1ldGhvZCB3aGljaCBzdWJjbGFzc2VzIG92ZXJyaWRlIHRvIHByb3ZpZGUgdGhlIG1lY2hhbmlzbSAKKyAgICAgKiBmb3IgZmluZGluZyB0aGUgbmV4dCA8Yj5iYWNrd2FyZHM8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBhbGxvd3MgZGlmZmVyZW50IAorICAgICAqIHN1YmNsYXNzZXMgdG8gcHJvdmlkZSBkaWZmZXJlbnQgc2VhcmNoIGFsZ29yaXRobXMuIAorICAgICAqIDwvcD4gCisgICAgICogPHA+CisgICAgICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgdGhpcyBmdW5jdGlvbiBtdXN0IGNhbGwgc2V0TWF0Y2hMZW5ndGgoaW50KSB0bworICAgICAqIHNldCB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgbWF0Y2guCisgICAgICogVGhlIGl0ZXJhdG9yIGlzIGFkanVzdGVkIHNvIHRoYXQgaXRzIGN1cnJlbnQgaW5kZXgsIGFzIHJldHVybmVkIGJ5IAorICAgICAqIHtAbGluayAjZ2V0SW5kZXh9LCBpcyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIG1hdGNoIGlmIG9uZSB3YXMgCisgICAgICogZm91bmQuIElmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCA8dHQ+RE9ORTwvdHQ+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogPC9wPiAKKyAgICAgKiBAcGFyYW0gc3RhcnRBdCBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGJhY2t3YXJkcyBzZWFyY2ggCisgICAgICogICAgICAgIHNob3VsZCBiZWdpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBiYWNrd2FyZHMgbWF0Y2ggaWYgZm91bmQsIAorICAgICAqICAgICAgICAgRE9ORSBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNzZXRNYXRjaExlbmd0aChpbnQpCisgICAgICogQHNlZSAjaGFuZGxlTmV4dChpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgaGFuZGxlUHJldmlvdXMoaW50IHN0YXJ0QXQpOworICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGVzIGlmIHdlIGFyZSBkb2luZyBhIGZvcndhcmRzIHNlYXJjaAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzRm9yd2FyZFNlYXJjaGluZ187CisgICAgLyoqCisgICAgICogRmxhZyB0byBpbmRpY2F0ZSBpZiBvdmVybGFwcGluZyBzZWFyY2ggaXMgdG8gYmUgZG9uZS4KKyAgICAgKiBFLmcuIGxvb2tpbmcgZm9yICJhYSIgaW4gImFhYSIgd2lsbCB5aWVsZCBtYXRjaGVzIGF0IG9mZnNldCAwIGFuZCAxLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzT3ZlcmxhcF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0ZXMgaWYgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIHN0cmluZyBzZWFyY2guCisgICAgICogVGhpcyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUgaW4gZm9yd2FyZCBzZWFyY2ggYW5kIGF0IHRoZSBzdGFydCBvZiBtX3RleHQuCisgICAgICovIAorICAgIHByaXZhdGUgYm9vbGVhbiBtX3Jlc2V0XzsKKyAgICAvKioKKyAgICAgKiBEYXRhIG1lbWJlciB0byBzdG9yZSB1c2VyIGRlZmluZWQgcG9zaXRpb24gaW4gc2V0SW5kZXgoKS4KKyAgICAgKiBJZiBzZXRJbmRleCgpIGlzIG5vdCBjYWxsZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBET05FLgorICAgICAqLyAKKyAgICBwcml2YXRlIGludCBtX3NldE9mZnNldF87CisgICAgLyoqCisgICAgICogT2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3QgbWF0Y2gKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2xhc3RNYXRjaFN0YXJ0XzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYmM5OGViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMjA2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckRhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5ab25lTWV0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKKworLyoqCisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBpcyBhIGNvbmNyZXRlIGNsYXNzIGZvciBmb3JtYXR0aW5nIGFuZAorICogcGFyc2luZyBkYXRlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVyLiBJdCBhbGxvd3MgZm9yIGZvcm1hdHRpbmcKKyAqIChkYXRlIC0+IHRleHQpLCBwYXJzaW5nICh0ZXh0IC0+IGRhdGUpLCBhbmQgbm9ybWFsaXphdGlvbi4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPlNpbXBsZURhdGVGb3JtYXQ8L2NvZGU+IGFsbG93cyB5b3UgdG8gc3RhcnQgYnkgY2hvb3NpbmcKKyAqIGFueSB1c2VyLWRlZmluZWQgcGF0dGVybnMgZm9yIGRhdGUtdGltZSBmb3JtYXR0aW5nLiBIb3dldmVyLCB5b3UKKyAqIGFyZSBlbmNvdXJhZ2VkIHRvIGNyZWF0ZSBhIGRhdGUtdGltZSBmb3JtYXR0ZXIgd2l0aCBlaXRoZXIKKyAqIDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sIDxjb2RlPmdldERhdGVJbnN0YW5jZTwvY29kZT4sIG9yCisgKiA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPiBpbiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi4gRWFjaAorICogb2YgdGhlc2UgY2xhc3MgbWV0aG9kcyBjYW4gcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlciBpbml0aWFsaXplZAorICogd2l0aCBhIGRlZmF1bHQgZm9ybWF0IHBhdHRlcm4uIFlvdSBtYXkgbW9kaWZ5IHRoZSBmb3JtYXQgcGF0dGVybgorICogdXNpbmcgdGhlIDxjb2RlPmFwcGx5UGF0dGVybjwvY29kZT4gbWV0aG9kcyBhcyBkZXNpcmVkLgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhlc2UgbWV0aG9kcywgc2VlCisgKiB7QGxpbmsgRGF0ZUZvcm1hdH0uCisgKgorICogPHA+CisgKiA8c3Ryb25nPlRpbWUgRm9ybWF0IFN5bnRheDo8L3N0cm9uZz4KKyAqIDxwPgorICogVG8gc3BlY2lmeSB0aGUgdGltZSBmb3JtYXQgdXNlIGEgPGVtPnRpbWUgcGF0dGVybjwvZW0+IHN0cmluZy4KKyAqIEluIHRoaXMgcGF0dGVybiwgYWxsIEFTQ0lJIGxldHRlcnMgYXJlIHJlc2VydmVkIGFzIHBhdHRlcm4gbGV0dGVycywKKyAqIHdoaWNoIGFyZSBkZWZpbmVkIGFzIHRoZSBmb2xsb3dpbmc6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTeW1ib2wgICBNZWFuaW5nICAgICAgICAgICAgICAgICBQcmVzZW50YXRpb24gICAgICAgIEV4YW1wbGUKKyAqIC0tLS0tLSAgIC0tLS0tLS0gICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tLQorICogRyAgICAgICAgZXJhIGRlc2lnbmF0b3IgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBBRAorICogeSYjeDIwMjA7ICAgICAgIHllYXIgICAgICAgICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMTk5NgorICogWSogICAgICAgeWVhciAod2VlayBvZiB5ZWFyKSAgICAgKE51bWJlcikgICAgICAgICAgICAxOTk3CisgKiB1KiAgICAgICBleHRlbmRlZCB5ZWFyICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDQ2MDEKKyAqIE0gICAgICAgIG1vbnRoIGluIHllYXIgICAgICAgICAgIChUZXh0ICYgTnVtYmVyKSAgICAgSnVseSAmIDA3CisgKiBkICAgICAgICBkYXkgaW4gbW9udGggICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDEwCisgKiBoICAgICAgICBob3VyIGluIGFtL3BtICgxfjEyKSAgICAoTnVtYmVyKSAgICAgICAgICAgIDEyCisgKiBIICAgICAgICBob3VyIGluIGRheSAoMH4yMykgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDAKKyAqIG0gICAgICAgIG1pbnV0ZSBpbiBob3VyICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMzAKKyAqIHMgICAgICAgIHNlY29uZCBpbiBtaW51dGUgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgNTUKKyAqIFMgICAgICAgIGZyYWN0aW9uYWwgc2Vjb25kICAgICAgIChOdW1iZXIpICAgICAgICAgICAgOTc4CisgKiBFICAgICAgICBkYXkgb2Ygd2VlayAgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFR1ZXNkYXkKKyAqIGUqICAgICAgIGRheSBvZiB3ZWVrIChsb2NhbCAxfjcpIChOdW1iZXIpICAgICAgICAgICAgMgorICogRCAgICAgICAgZGF5IGluIHllYXIgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAxODkKKyAqIEYgICAgICAgIGRheSBvZiB3ZWVrIGluIG1vbnRoICAgIChOdW1iZXIpICAgICAgICAgICAgMiAoMm5kIFdlZCBpbiBKdWx5KQorICogdyAgICAgICAgd2VlayBpbiB5ZWFyICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyNworICogVyAgICAgICAgd2VlayBpbiBtb250aCAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyCisgKiBhICAgICAgICBhbS9wbSBtYXJrZXIgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFBNCisgKiBrICAgICAgICBob3VyIGluIGRheSAoMX4yNCkgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDI0CisgKiBLICAgICAgICBob3VyIGluIGFtL3BtICgwfjExKSAgICAoTnVtYmVyKSAgICAgICAgICAgIDAKKyAqIHogICAgICAgIHRpbWUgem9uZSAgICAgICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgUGFjaWZpYyBTdGFuZGFyZCBUaW1lCisgKiBaICAgICAgICB0aW1lIHpvbmUgKFJGQyA4MjIpICAgICAoTnVtYmVyKSAgICAgICAgICAgIC0wODAwCisgKiB2ICAgICAgICB0aW1lIHpvbmUgKGdlbmVyaWMpICAgICAoVGV4dCkgICAgICAgICAgICAgIFBhY2lmaWMgVGltZQorICogZyogICAgICAgSnVsaWFuIGRheSAgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyNDUxMzM0CisgKiBBKiAgICAgICBtaWxsaXNlY29uZHMgaW4gZGF5ICAgICAoTnVtYmVyKSAgICAgICAgICAgIDY5NTQwMDAwCisgKiAnICAgICAgICBlc2NhcGUgZm9yIHRleHQgICAgICAgICAoRGVsaW1pdGVyKSAgICAgICAgICdEYXRlPScKKyAqICcnICAgICAgIHNpbmdsZSBxdW90ZSAgICAgICAgICAgIChMaXRlcmFsKSAgICAgICAgICAgJ28nJ2Nsb2NrJworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8dHQ+PGI+KjwvYj48L3R0PiBUaGVzZSBpdGVtcyBhcmUgbm90IHN1cHBvcnRlZCBieSBKYXZhJ3MgU2ltcGxlRGF0ZUZvcm1hdC48YnI+CisgKiA8dHQ+PGI+JiN4MjAyMDs8L2I+PC90dD4gSUNVIGludGVycHJldHMgYSBzaW5nbGUgJ3knIGRpZmZlcmVudGx5IHRoYW4gSmF2YS48L3A+CisgKiA8cD4KKyAqIFRoZSBjb3VudCBvZiBwYXR0ZXJuIGxldHRlcnMgZGV0ZXJtaW5lIHRoZSBmb3JtYXQuCisgKiA8cD4KKyAqIDxzdHJvbmc+KFRleHQpPC9zdHJvbmc+OiA0IG9yIG1vcmUgcGF0dGVybiBsZXR0ZXJzLS11c2UgZnVsbCBmb3JtLAorICogJmx0OyA0LS11c2Ugc2hvcnQgb3IgYWJicmV2aWF0ZWQgZm9ybSBpZiBvbmUgZXhpc3RzLgorICogPHA+CisgKiA8c3Ryb25nPihOdW1iZXIpPC9zdHJvbmc+OiB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzLiBTaG9ydGVyCisgKiBudW1iZXJzIGFyZSB6ZXJvLXBhZGRlZCB0byB0aGlzIGFtb3VudC4gWWVhciBpcyBoYW5kbGVkIHNwZWNpYWxseTsKKyAqIHRoYXQgaXMsIGlmIHRoZSBjb3VudCBvZiAneScgaXMgMiwgdGhlIFllYXIgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gMiBkaWdpdHMuCisgKiAoZS5nLiwgaWYgInl5eXkiIHByb2R1Y2VzICIxOTk3IiwgInl5IiBwcm9kdWNlcyAiOTciLikKKyAqIFVubGlrZSBvdGhlciBmaWVsZHMsIGZyYWN0aW9uYWwgc2Vjb25kcyBhcmUgcGFkZGVkIG9uIHRoZSByaWdodCB3aXRoIHplcm8uCisgKiA8cD4KKyAqIDxzdHJvbmc+KFRleHQgJiBOdW1iZXIpPC9zdHJvbmc+OiAzIG9yIG92ZXIsIHVzZSB0ZXh0LCBvdGhlcndpc2UgdXNlIG51bWJlci4KKyAqIDxwPgorICogQW55IGNoYXJhY3RlcnMgaW4gdGhlIHBhdHRlcm4gdGhhdCBhcmUgbm90IGluIHRoZSByYW5nZXMgb2YgWydhJy4uJ3onXQorICogYW5kIFsnQScuLidaJ10gd2lsbCBiZSB0cmVhdGVkIGFzIHF1b3RlZCB0ZXh0LiBGb3IgaW5zdGFuY2UsIGNoYXJhY3RlcnMKKyAqIGxpa2UgJzonLCAnLicsICcgJywgJyMnIGFuZCAnQCcgd2lsbCBhcHBlYXIgaW4gdGhlIHJlc3VsdGluZyB0aW1lIHRleHQKKyAqIGV2ZW4gdGhleSBhcmUgbm90IGVtYnJhY2VkIHdpdGhpbiBzaW5nbGUgcXVvdGVzLgorICogPHA+CisgKiBBIHBhdHRlcm4gY29udGFpbmluZyBhbnkgaW52YWxpZCBwYXR0ZXJuIGxldHRlciB3aWxsIHJlc3VsdCBpbiBhIHRocm93bgorICogZXhjZXB0aW9uIGR1cmluZyBmb3JtYXR0aW5nIG9yIHBhcnNpbmcuCisgKgorICogPHA+CisgKiA8c3Ryb25nPkV4YW1wbGVzIFVzaW5nIHRoZSBVUyBMb2NhbGU6PC9zdHJvbmc+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBGb3JtYXQgUGF0dGVybiAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQKKyAqIC0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0KKyAqICJ5eXl5Lk1NLmRkIEcgJ2F0JyBISDptbTpzcyB2dnZ2IiAtPj4gIDE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUGFjaWZpYyBUaW1lCisgKiAiRUVFLCBNTU0gZCwgJyd5eSIgICAgICAgICAgICAgICAgLT4+ICBXZWQsIEp1bHkgMTAsICc5NgorICogImg6bW0gYSIgICAgICAgICAgICAgICAgICAgICAgICAgIC0+PiAgMTI6MDggUE0KKyAqICJoaCAnbycnY2xvY2snIGEsIHp6enoiICAgICAgICAgICAtPj4gIDEyIG8nY2xvY2sgUE0sIFBhY2lmaWMgRGF5bGlnaHQgVGltZQorICogIks6bW0gYSwgdnZ2IiAgICAgICAgICAgICAgICAgICAgIC0+PiAgMDowMCBQTSwgUFQKKyAqICJ5eXl5eS5NTU1NTS5kZCBHR0cgaGg6bW0gYWFhIiAgICAtPj4gIDAxOTk2Lkp1bHkuMTAgQUQgMTI6MDggUE0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHN0cm9uZz5Db2RlIFNhbXBsZTo8L3N0cm9uZz4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFNpbXBsZVRpbWVab25lIHBkdCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCAqIDYwICogNjAgKiAxMDAwLCAiUFNUIik7CisgKiBwZHQuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkFQUklMLCAxLCBDYWxlbmRhci5TVU5EQVksIDIqNjAqNjAqMTAwMCk7CisgKiBwZHQuc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICogPGJyPgorICogLy8gRm9ybWF0IHRoZSBjdXJyZW50IHRpbWUuCisgKiBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlcgorICogICAgID0gbmV3IFNpbXBsZURhdGVGb3JtYXQgKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyBhIHp6eiIpOworICogRGF0ZSBjdXJyZW50VGltZV8xID0gbmV3IERhdGUoKTsKKyAqIFN0cmluZyBkYXRlU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdChjdXJyZW50VGltZV8xKTsKKyAqIDxicj4KKyAqIC8vIFBhcnNlIHRoZSBwcmV2aW91cyBzdHJpbmcgYmFjayBpbnRvIGEgRGF0ZS4KKyAqIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgKiBEYXRlIGN1cnJlbnRUaW1lXzIgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogSW4gdGhlIGV4YW1wbGUsIHRoZSB0aW1lIHZhbHVlIDxjb2RlPmN1cnJlbnRUaW1lXzI8L2NvZGU+IG9idGFpbmVkIGZyb20KKyAqIHBhcnNpbmcgd2lsbCBiZSBlcXVhbCB0byA8Y29kZT5jdXJyZW50VGltZV8xPC9jb2RlPi4gSG93ZXZlciwgdGhleSBtYXkgbm90IGJlCisgKiBlcXVhbCBpZiB0aGUgYW0vcG0gbWFya2VyICdhJyBpcyBsZWZ0IG91dCBmcm9tIHRoZSBmb3JtYXQgcGF0dGVybiB3aGlsZQorICogdGhlICJob3VyIGluIGFtL3BtIiBwYXR0ZXJuIHN5bWJvbCBpcyB1c2VkLiBUaGlzIGluZm9ybWF0aW9uIGxvc3MgY2FuCisgKiBoYXBwZW4gd2hlbiBmb3JtYXR0aW5nIHRoZSB0aW1lIGluIFBNLgorICoKKyAqIDxwPgorICogV2hlbiBwYXJzaW5nIGEgZGF0ZSBzdHJpbmcgdXNpbmcgdGhlIGFiYnJldmlhdGVkIHllYXIgcGF0dGVybiAoInl5IiksCisgKiBTaW1wbGVEYXRlRm9ybWF0IG11c3QgaW50ZXJwcmV0IHRoZSBhYmJyZXZpYXRlZCB5ZWFyCisgKiByZWxhdGl2ZSB0byBzb21lIGNlbnR1cnkuICBJdCBkb2VzIHRoaXMgYnkgYWRqdXN0aW5nIGRhdGVzIHRvIGJlCisgKiB3aXRoaW4gODAgeWVhcnMgYmVmb3JlIGFuZCAyMCB5ZWFycyBhZnRlciB0aGUgdGltZSB0aGUgU2ltcGxlRGF0ZUZvcm1hdAorICogaW5zdGFuY2UgaXMgY3JlYXRlZC4gRm9yIGV4YW1wbGUsIHVzaW5nIGEgcGF0dGVybiBvZiAiTU0vZGQveXkiIGFuZCBhCisgKiBTaW1wbGVEYXRlRm9ybWF0IGluc3RhbmNlIGNyZWF0ZWQgb24gSmFuIDEsIDE5OTcsICB0aGUgc3RyaW5nCisgKiAiMDEvMTEvMTIiIHdvdWxkIGJlIGludGVycHJldGVkIGFzIEphbiAxMSwgMjAxMiB3aGlsZSB0aGUgc3RyaW5nICIwNS8wNC82NCIKKyAqIHdvdWxkIGJlIGludGVycHJldGVkIGFzIE1heSA0LCAxOTY0LgorICogRHVyaW5nIHBhcnNpbmcsIG9ubHkgc3RyaW5ncyBjb25zaXN0aW5nIG9mIGV4YWN0bHkgdHdvIGRpZ2l0cywgYXMgZGVmaW5lZCBieQorICoge0BsaW5rIGphdmEubGFuZy5DaGFyYWN0ZXIjaXNEaWdpdChjaGFyKX0sIHdpbGwgYmUgcGFyc2VkIGludG8gdGhlIGRlZmF1bHQKKyAqIGNlbnR1cnkuCisgKiBBbnkgb3RoZXIgbnVtZXJpYyBzdHJpbmcsIHN1Y2ggYXMgYSBvbmUgZGlnaXQgc3RyaW5nLCBhIHRocmVlIG9yIG1vcmUgZGlnaXQKKyAqIHN0cmluZywgb3IgYSB0d28gZGlnaXQgc3RyaW5nIHRoYXQgaXNuJ3QgYWxsIGRpZ2l0cyAoZm9yIGV4YW1wbGUsICItMSIpLCBpcworICogaW50ZXJwcmV0ZWQgbGl0ZXJhbGx5LiAgU28gIjAxLzAyLzMiIG9yICIwMS8wMi8wMDMiIGFyZSBwYXJzZWQsIHVzaW5nIHRoZQorICogc2FtZSBwYXR0ZXJuLCBhcyBKYW4gMiwgMyBBRC4gIExpa2V3aXNlLCAiMDEvMDIvLTMiIGlzIHBhcnNlZCBhcyBKYW4gMiwgNCBCQy4KKyAqCisgKiA8cD4KKyAqIElmIHRoZSB5ZWFyIHBhdHRlcm4gZG9lcyBub3QgaGF2ZSBleGFjdGx5IHR3byAneScgY2hhcmFjdGVycywgdGhlIHllYXIgaXMKKyAqIGludGVycHJldGVkIGxpdGVyYWxseSwgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIGRpZ2l0cy4gIFNvIHVzaW5nIHRoZQorICogcGF0dGVybiAiTU0vZGQveXl5eSIsICIwMS8xMS8xMiIgcGFyc2VzIHRvIEphbiAxMSwgMTIgQS5ELgorICoKKyAqIDxwPgorICogV2hlbiBudW1lcmljIGZpZWxkcyBhYnV0IG9uZSBhbm90aGVyIGRpcmVjdGx5LCB3aXRoIG5vIGludGVydmVuaW5nIGRlbGltaXRlcgorICogY2hhcmFjdGVycywgdGhleSBjb25zdGl0dXRlIGEgcnVuIG9mIGFidXR0aW5nIG51bWVyaWMgZmllbGRzLiAgU3VjaCBydW5zIGFyZQorICogcGFyc2VkIHNwZWNpYWxseS4gIEZvciBleGFtcGxlLCB0aGUgZm9ybWF0ICJISG1tc3MiIHBhcnNlcyB0aGUgaW5wdXQgdGV4dAorICogIjEyMzQ1NiIgdG8gMTI6MzQ6NTYsIHBhcnNlcyB0aGUgaW5wdXQgdGV4dCAiMTIzNDUiIHRvIDE6MjM6NDUsIGFuZCBmYWlscyB0bworICogcGFyc2UgIjEyMzQiLiAgSW4gb3RoZXIgd29yZHMsIHRoZSBsZWZ0bW9zdCBmaWVsZCBvZiB0aGUgcnVuIGlzIGZsZXhpYmxlLAorICogd2hpbGUgdGhlIG90aGVycyBrZWVwIGEgZml4ZWQgd2lkdGguICBJZiB0aGUgcGFyc2UgZmFpbHMgYW55d2hlcmUgaW4gdGhlIHJ1biwKKyAqIHRoZW4gdGhlIGxlZnRtb3N0IGZpZWxkIGlzIHNob3J0ZW5lZCBieSBvbmUgY2hhcmFjdGVyLCBhbmQgdGhlIGVudGlyZSBydW4gaXMKKyAqIHBhcnNlZCBhZ2Fpbi4gVGhpcyBpcyByZXBlYXRlZCB1bnRpbCBlaXRoZXIgdGhlIHBhcnNlIHN1Y2NlZWRzIG9yIHRoZQorICogbGVmdG1vc3QgZmllbGQgaXMgb25lIGNoYXJhY3RlciBpbiBsZW5ndGguICBJZiB0aGUgcGFyc2Ugc3RpbGwgZmFpbHMgYXQgdGhhdAorICogcG9pbnQsIHRoZSBwYXJzZSBvZiB0aGUgcnVuIGZhaWxzLgorICoKKyAqIDxwPgorICogRm9yIHRpbWUgem9uZXMgdGhhdCBoYXZlIG5vIG5hbWVzLCB1c2Ugc3RyaW5ncyBHTVQraG91cnM6bWludXRlcyBvcgorICogR01ULWhvdXJzOm1pbnV0ZXMuCisgKgorICogPHA+CisgKiBUaGUgY2FsZW5kYXIgZGVmaW5lcyB3aGF0IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIHRoZSBmaXJzdCB3ZWVrCisgKiBvZiB0aGUgeWVhciwgd2hldGhlciBob3VycyBhcmUgemVybyBiYXNlZCBvciBub3QgKDAgdnMgMTIgb3IgMjQpLCBhbmQgdGhlCisgKiB0aW1lIHpvbmUuIFRoZXJlIGlzIG9uZSBjb21tb24gZGVjaW1hbCBmb3JtYXQgdG8gaGFuZGxlIGFsbCB0aGUgbnVtYmVyczsKKyAqIHRoZSBkaWdpdCBjb3VudCBpcyBoYW5kbGVkIHByb2dyYW1tYXRpY2FsbHkgYWNjb3JkaW5nIHRvIHRoZSBwYXR0ZXJuLgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICoKKyAqIERhdGUgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gY3JlYXRlIHNlcGFyYXRlCisgKiBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4KKyAqCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLlRpbWVab25lCisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFNpbXBsZURhdGVGb3JtYXQgZXh0ZW5kcyBEYXRlRm9ybWF0IHsKKworICAgIC8vIHRoZSBvZmZpY2lhbCBzZXJpYWwgdmVyc2lvbiBJRCB3aGljaCBzYXlzIGNyeXB0aWNhbGx5CisgICAgLy8gd2hpY2ggdmVyc2lvbiB3ZSdyZSBjb21wYXRpYmxlIHdpdGgKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA0Nzc0ODgxOTcwNTU4ODc1MDI0TDsKKworICAgIC8vIHRoZSBpbnRlcm5hbCBzZXJpYWwgdmVyc2lvbiB3aGljaCBzYXlzIHdoaWNoIHZlcnNpb24gd2FzIHdyaXR0ZW4KKyAgICAvLyAtIDAgKGRlZmF1bHQpIGZvciB2ZXJzaW9uIHVwIHRvIEpESyAxLjEuMworICAgIC8vIC0gMSBmb3IgdmVyc2lvbiBmcm9tIEpESyAxLjEuNCwgd2hpY2ggaW5jbHVkZXMgYSBuZXcgZmllbGQKKyAgICBzdGF0aWMgZmluYWwgaW50IGN1cnJlbnRTZXJpYWxWZXJzaW9uID0gMTsKKworICAgIC8qKgorICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJpYWxpemVkIGRhdGEgb24gdGhlIHN0cmVhbS4gIFBvc3NpYmxlIHZhbHVlczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IG9yIG5vdCBwcmVzZW50IG9uIHN0cmVhbTogSkRLIDEuMS4zLiAgVGhpcyB2ZXJzaW9uCisgICAgICogaGFzIG5vIDxjb2RlPmRlZmF1bHRDZW50dXJ5U3RhcnQ8L2NvZGU+IG9uIHN0cmVhbS4KKyAgICAgKiA8bGk+PGI+MTwvYj4gSkRLIDEuMS40IG9yIGxhdGVyLiAgVGhpcyB2ZXJzaW9uIGFkZHMKKyAgICAgKiA8Y29kZT5kZWZhdWx0Q2VudHVyeVN0YXJ0PC9jb2RlPi4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gc3RyZWFtaW5nIG91dCB0aGlzIGNsYXNzLCB0aGUgbW9zdCByZWNlbnQgZm9ybWF0CisgICAgICogYW5kIHRoZSBoaWdoZXN0IGFsbG93YWJsZSA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+CisgICAgICogaXMgd3JpdHRlbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGF0dGVybiBzdHJpbmcgb2YgdGhpcyBmb3JtYXR0ZXIuICBUaGlzIGlzIGFsd2F5cyBhIG5vbi1sb2NhbGl6ZWQKKyAgICAgKiBwYXR0ZXJuLiAgTWF5IG5vdCBiZSBudWxsLiAgU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9scyB1c2VkIGJ5IHRoaXMgZm9ybWF0dGVyIGZvciB3ZWVrIG5hbWVzLCBtb250aCBuYW1lcywKKyAgICAgKiBldGMuICBNYXkgbm90IGJlIG51bGwuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMKKyAgICAgKi8KKyAgICBwcml2YXRlIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGE7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBVTG9jYWxlIGxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFdlIG1hcCBkYXRlcyB3aXRoIHR3by1kaWdpdCB5ZWFycyBpbnRvIHRoZSBjZW50dXJ5IHN0YXJ0aW5nIGF0CisgICAgICogPGNvZGU+ZGVmYXVsdENlbnR1cnlTdGFydDwvY29kZT4sIHdoaWNoIG1heSBiZSBhbnkgZGF0ZS4gIE1heQorICAgICAqIG5vdCBiZSBudWxsLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSkRLMS4xLjQKKyAgICAgKi8KKyAgICBwcml2YXRlIERhdGUgZGVmYXVsdENlbnR1cnlTdGFydDsKKworICAgIHRyYW5zaWVudCBwcml2YXRlIGludCBkZWZhdWx0Q2VudHVyeVN0YXJ0WWVhcjsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IFRpbWVab25lIHBhcnNlZFRpbWVab25lOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1BlckhvdXIgPSA2MCAqIDYwICogMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVyTWludXRlID0gNjAgKiAxMDAwOworCisgICAgLy8gRm9yIHRpbWUgem9uZXMgdGhhdCBoYXZlIG5vIG5hbWVzLCB1c2Ugc3RyaW5ncyBHTVQrbWludXRlcyBhbmQKKyAgICAvLyBHTVQtbWludXRlcy4gRm9yIGluc3RhbmNlLCBpbiBGcmFuY2UgdGhlIHRpbWUgem9uZSBpcyBHTVQrNjAuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEdNVF9QTFVTID0gIkdNVCsiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBHTVRfTUlOVVMgPSAiR01ULSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEdNVCA9ICJHTVQiOworCisgICAgLy8gVGhpcyBwcmVmaXggaXMgZGVzaWduZWQgdG8gTkVWRVIgTUFUQ0ggcmVhbCB0ZXh0LCBpbiBvcmRlciB0bworICAgIC8vIHN1cHByZXNzIHRoZSBwYXJzaW5nIG9mIG5lZ2F0aXZlIG51bWJlcnMuICBBZGp1c3QgYXMgbmVlZGVkIChpZgorICAgIC8vIHRoaXMgYmVjb21lcyB2YWxpZCBVbmljb2RlKS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VQUFJFU1NfTkVHQVRJVkVfUFJFRklYID0gIlx1QUIwMCI7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0byBob2xkIHRoZSBEYXRlVGltZVBhdHRlcm5zIG9mIGEgTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKworICAgIC8qKgorICAgICAqIElmIHRydWUsIHRoaXMgb2JqZWN0IHN1cHBvcnRzIGZhc3QgZm9ybWF0dGluZyB1c2luZyB0aGUKKyAgICAgKiBzdWJGb3JtYXQgdmFyaWFudCB0aGF0IHRha2VzIGEgU3RyaW5nQnVmZmVyLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gdXNlRmFzdEZvcm1hdDsKKworICAgIC8qKgorICAgICAqIElmIHRydWUsIHRoaXMgb2JqZWN0IHN1cHBvcnRzIGZhc3QgbnVtYmVyIGZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gdXNlRmFzdFplcm9QYWRkaW5nTnVtYmVyOworICAgIHByaXZhdGUgdHJhbnNpZW50IGNoYXIgemVyb0RpZ2l0OworICAgIHByaXZhdGUgY2hhcltdIGRlY2ltYWxCdWYgPSBuZXcgY2hhclsxMF07IC8vIDEwIGRpZ2l0IGlzIGdvb2QgZW5vdWdoIHRvIHN0b3JlIEludGVyZ2VyLk1BWF9WQUxVRQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBmb3IgdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUuICA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KCkgeworICAgICAgICB0aGlzKFNIT1JULCBTSE9SVCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gaW4gdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUuICA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybikKKyAgICB7CisgICAgICAgIHRoaXMocGF0dGVybiwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gYW5kIGxvY2FsZS4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvYykKKyAgICB7CisgICAgICAgIHRoaXMocGF0dGVybiwgVUxvY2FsZS5mb3JMb2NhbGUobG9jKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgbG9jYWxlLgorICAgICAqIDxiPk5vdGU6PC9iPiBOb3QgYWxsIGxvY2FsZXMgc3VwcG9ydCBTaW1wbGVEYXRlRm9ybWF0OyBmb3IgZnVsbAorICAgICAqIGdlbmVyYWxpdHksIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIGluIHRoZSBEYXRlRm9ybWF0IGNsYXNzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIFVMb2NhbGUgbG9jKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgdGhpcy5mb3JtYXREYXRhID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGxvYyk7CisgICAgICAgIGluaXRpYWxpemUobG9jKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZAorICAgICAqIGxvY2FsZS1zcGVjaWZpYyBzeW1ib2wgZGF0YS4KKyAgICAgKiBXYXJuaW5nOiB1c2VzIGRlZmF1bHQgbG9jYWxlIGZvciBkaWdpdHMhCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEpCisgICAgeworICAgICAgICB0aGlzKHBhdHRlcm4sIGZvcm1hdERhdGEsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhLCBVTG9jYWxlIGxvYykKKyAgICB7CisgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgIHRoaXMuZm9ybWF0RGF0YSA9IChEYXRlRm9ybWF0U3ltYm9scykgZm9ybWF0RGF0YS5jbG9uZSgpOworCisgICAgICAgIGluaXRpYWxpemUobG9jKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlLXByaXZhdGUgY29uc3RydWN0b3IgdGhhdCBhbGxvd3MgYSBzdWJjbGFzcyB0byBzcGVjaWZ5CisgICAgICogd2hldGhlciBpdCBzdXBwb3J0cyBmYXN0IGZvcm1hdHRpbmcuCisgICAgICoKKyAgICAgKiBUT0RPIG1ha2UgdGhpcyBBUEkgcHVibGljLgorICAgICAqLworICAgIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEsCisgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVzZUZhc3RGb3JtYXQpIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgdGhpcy5mb3JtYXREYXRhID0gKERhdGVGb3JtYXRTeW1ib2xzKSBmb3JtYXREYXRhLmNsb25lKCk7CisgICAgICAgIGluaXRpYWxpemUoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAvLyB0aGlzLnVzZUZhc3RGb3JtYXQgaXMgc2V0IGJ5IGluaXRpYWxpemUoKTsgZml4IGl0IHVwIGFmdGVyd2FyZHMKKyAgICAgICAgdGhpcy51c2VGYXN0Rm9ybWF0ID0gdXNlRmFzdEZvcm1hdDsKKyAgICB9CisKKyAgICAvLyB0cnkgY2FjaGluZworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gQ0FDSEUgPSB0cnVlOworICAgIHByaXZhdGUgc3RhdGljIGxvbmcgY2FjaGVBZ2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBoaWdoQ2FjaGVSZWY7CisKKyAgICAvKiBQYWNrYWdlLXByaXZhdGUsIGNhbGxlZCBieSBEYXRlRm9ybWF0IGZhY3RvcnkgbWV0aG9kcyAqLworICAgIFNpbXBsZURhdGVGb3JtYXQoaW50IHRpbWVTdHlsZSwgaW50IGRhdGVTdHlsZSwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgLy8gdHJ5IGEgaGlnaCBsZXZlbCBjYWNoZSBmaXJzdCEKKworICAgICAgICBNYXAgbWFwID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGtleSA9IG51bGw7CisgICAgICAgIGlmIChDQUNIRSkgeworICAgICAgICAgICAgLy8gYWdlIHRlc3QgaXMgc28gd2UgZG9uJ3QgaGF2ZSB0byBjb21wdXRlIHRoZSBjZW50dXJ5IHN0YXJ0IGFsbCB0aGUgdGltZS4uLiBvbmNlIGEgZGF5IGlzIGVub3VnaC4KKyAgICAgICAgICAgIGxvbmcgdGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgaWYgKCgodGltZSAtIGNhY2hlQWdlKSA8IDEwMDAqNjAqNjAqMjRMKSAmJiBoaWdoQ2FjaGVSZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1hcCA9IChNYXApaGlnaENhY2hlUmVmLmdldCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbWFwID0gbmV3IEhhc2hNYXAoMyk7CisgICAgICAgICAgICAgICAgaGlnaENhY2hlUmVmID0gbmV3IFNvZnRSZWZlcmVuY2UobWFwKTsKKyAgICAgICAgICAgICAgICBjYWNoZUFnZSA9IHRpbWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBrZXkgPSBsb2MudG9TdHJpbmcoKSArIHRpbWVTdHlsZSArIGRhdGVTdHlsZTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgdGFyZ2V0ID0gKFNpbXBsZURhdGVGb3JtYXQpbWFwLmdldChrZXkpOworICAgICAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7IC8vIGtpbmRvZiBza2Fua3kKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICBpZiAoImVuX1VTMjIiLmVxdWFscyhrZXkpKQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuZm91bmQga2V5OiAiICsga2V5ICsgIiBwYXQ6ICIgKyB0YXJnZXQucGF0dGVybiArCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgIiBjYWw6ICIgKyB0YXJnZXQuY2FsZW5kYXIgKyAiIGZtdDogIiArIHRhcmdldC5udW1iZXJGb3JtYXQpOworICAgICAgICAgICAgICAgIHRoaXMucGF0dGVybiA9IHRhcmdldC5wYXR0ZXJuOworICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0RGF0YSA9IHRhcmdldC5mb3JtYXREYXRhOworICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENlbnR1cnlTdGFydCA9IHRhcmdldC5kZWZhdWx0Q2VudHVyeVN0YXJ0OworICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENlbnR1cnlTdGFydFllYXIgPSB0YXJnZXQuZGVmYXVsdENlbnR1cnlTdGFydFllYXI7CisgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhciA9IChDYWxlbmRhcil0YXJnZXQuY2FsZW5kYXIuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldERlZmF1bHQoKSk7IC8vIG1pZ2h0IGhhdmUgY2hhbmdlZCBzaW5jZSBjYWNoZWQKKyAgICAgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IChOdW1iZXJGb3JtYXQpdGFyZ2V0Lm51bWJlckZvcm1hdC5jbG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIHRyeSB0aGUgY2FjaGUgZmlyc3QgKi8KKyAgICAgICAgU3RyaW5nW10gZGF0ZVRpbWVQYXR0ZXJucyA9IChTdHJpbmdbXSkgY2FjaGVkTG9jYWxlRGF0YS5nZXQobG9jKTsKKyAgICAgICAgaWYgKGRhdGVUaW1lUGF0dGVybnMgPT0gbnVsbCkgeyAvKiBjYWNoZSBtaXNzICovCisgICAgICAgICAgICBDYWxlbmRhckRhdGEgY2FsRGF0YSA9IG5ldyBDYWxlbmRhckRhdGEobG9jLCBudWxsKTsgLy8gVE9ETzogdHlwZT8KKyAgICAgICAgICAgIC8vIFRPRE86IGdldCBjb3JyZWN0IGFjdHVhbC92YWxpZCBsb2NhbGUgaGVyZQorICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gY2FsRGF0YS5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAgICAgICAgIGRhdGVUaW1lUGF0dGVybnMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJEYXRlVGltZVBhdHRlcm5zIik7CisgICAgICAgICAgICAvKiB1cGRhdGUgY2FjaGUgKi8KKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGxvYywgZGF0ZVRpbWVQYXR0ZXJucyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIC8vIGZvciBub3csIGp1c3QgYXNzdW1lIHRoaXMgaXMgY29ycmVjdCwgc28gd2UgaGF2ZSBub24tbnVsbCBsb2NhbGUgaW5mby4KKyAgICAgICAgLy8gd2UgbWF5IGhhdmUgdG8gY2FjaGUgdGhlIHJlc3VsdCBvZiBjYWxEYXRhLmdldFVMb2NhbGUgd2l0aCB0aGUgcGF0dGVybiBzdHJpbmdzCisgICAgICAgIC8vIGFuZCBzZXQgdGhlIGxvY2FsZSB3aXRoIHRoYXQuCisgICAgICAgIHNldExvY2FsZShsb2MsIGxvYyk7CisgICAgfQorICAgICAgICBmb3JtYXREYXRhID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGxvYyk7CisgICAgICAgIGlmICgodGltZVN0eWxlID49IDApICYmIChkYXRlU3R5bGUgPj0gMCkpIHsKKyAgICAgICAgICAgIE9iamVjdFtdIGRhdGVUaW1lQXJncyA9IHtkYXRlVGltZVBhdHRlcm5zW3RpbWVTdHlsZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZVRpbWVQYXR0ZXJuc1tkYXRlU3R5bGUgKyA0XX07CisgICAgICAgICAgICBwYXR0ZXJuID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQoZGF0ZVRpbWVQYXR0ZXJuc1s4XSwgZGF0ZVRpbWVBcmdzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh0aW1lU3R5bGUgPj0gMCkgeworICAgICAgICAgICAgcGF0dGVybiA9IGRhdGVUaW1lUGF0dGVybnNbdGltZVN0eWxlXTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChkYXRlU3R5bGUgPj0gMCkgeworICAgICAgICAgICAgcGF0dGVybiA9IGRhdGVUaW1lUGF0dGVybnNbZGF0ZVN0eWxlICsgNF07CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJObyBkYXRlIG9yIHRpbWUgc3R5bGUgc3BlY2lmaWVkIik7CisgICAgICAgIH0KKworICAgICAgICBpbml0aWFsaXplKGxvYyk7CisKKyAgICAgICAgaWYgKENBQ0hFKSB7CisgICAgICAgICAgICAvLyAgICAgICAgICBpZiAoImVuX1VTMjIiLmVxdWFscyhrZXkpKQorICAgICAgICAgICAgLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbnJlZ2lzdGVyIGtleTogIiArIGtleSArICIgcGF0OiAiICsgdGhpcy5wYXR0ZXJuICsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIiBjYWw6ICIgKyB0aGlzLmNhbGVuZGFyICsgIiBmbXQ6ICIgKyB0aGlzLm51bWJlckZvcm1hdCk7CisgICAgICAgICAgICBtYXAucHV0KGtleSwgdGhpcy5jbG9uZSgpKTsgLy8gb2sgaWYgd2Ugc3RvbXAgZXhpc3RpbmcgdGFyZ2V0IGR1ZSB0byB0aHJlYWRpbmcKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIEluaXRpYWxpemUgY2FsZW5kYXIgYW5kIG51bWJlckZvcm1hdCBmaWVsZHMgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdGlhbGl6ZShVTG9jYWxlIGxvYykgeworICAgICAgICAvLyB0aW1lIHpvbmUgZm9ybWF0dGluZworICAgICAgICBsb2NhbGUgPSBsb2M7CisKKyAgICAgICAgLy8gVGhlIGZvcm1hdCBvYmplY3QgbXVzdCBiZSBjb25zdHJ1Y3RlZCB1c2luZyB0aGUgc3ltYm9scyBmb3IgdGhpcyB6b25lLgorICAgICAgICAvLyBIb3dldmVyLCB0aGUgY2FsZW5kYXIgc2hvdWxkIHVzZSB0aGUgY3VycmVudCBkZWZhdWx0IFRpbWVab25lLgorICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBjb250YWluZWQgaW4gdGhlIGxvY2FsZSB6b25lIHN0cmluZ3MsIHRoZW4gdGhlIHpvbmUKKyAgICAgICAgLy8gd2lsbCBiZSBmb3JtYXR0ZWQgdXNpbmcgZ2VuZXJpYyBHTVQrLy1IOk1NIG5vbWVuY2xhdHVyZS4KKyAgICAgICAgY2FsZW5kYXIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvYyk7CisgICAgICAgIC8vIFRPRE86IGNvbnZlcnQgdG8gdXNlIFVMb2NhbGUgQVBJcyB3aGVuIHdlIGdldCB0byB0aGUgdGV4dCBwYWNrYWdlCisgICAgICAgIG51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2MpOworICAgICAgICBudW1iZXJGb3JtYXQuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgdXNlRmFzdFplcm9QYWRkaW5nTnVtYmVyID0gZmFsc2U7CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgLy8gZGlmZmljdWx0IHRvIHRlc3QgZm9yIGNhc2Ugd2hlcmUgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlIGRvZXMgbm90CisgICAgICAgIC8vIHJldHVybiBhIERlY2ltYWxGb3JtYXQKKyAgICAgICAgaWYgKG51bWJlckZvcm1hdCBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAgICAgICAgICAgICgoRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihmYWxzZSk7CisgICAgICAgICAgICB6ZXJvRGlnaXQgPSAoKERlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpLmdldFplcm9EaWdpdCgpOworICAgICAgICAgICAgaWYgKG51bWJlckZvcm1hdC5nZXRDbGFzcygpLmdldE5hbWUoKS5lcXVhbHMoImNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdCIpKSB7CisgICAgICAgICAgICAgICAgdXNlRmFzdFplcm9QYWRkaW5nTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7IC8qIFNvIHRoYXQgZGQuTU0ueXkgY2FuIGJlIHBhcnNlZCAqLworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDApOyAvLyBUbyBwcmV2ZW50ICJKYW4gMS4wMCwgMTk5Ny4wMCIKKworICAgICAgICBpbml0aWFsaXplRGVmYXVsdENlbnR1cnkoKTsKKworICAgICAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBmYXN0IGZvcm1hdHRpbmcgaW4gU2ltcGxlRGF0ZUZvcm1hdAorICAgICAgICAvLyBpdHNlbGYuICBUT0RPIGFkZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzIHRvIGFsbG93IHN1YmNsYXNzZXMKKyAgICAgICAgLy8gdG8gc2F5IHRoYXQgdGhleSBpbXBsZW1lbnQgZmFzdCBmb3JtYXR0aW5nLgorICAgICAgICB1c2VGYXN0Rm9ybWF0ID0gKGdldENsYXNzKCkgPT0gU2ltcGxlRGF0ZUZvcm1hdC5jbGFzcyk7CisgICAgfQorCisgICAgLyogSW5pdGlhbGl6ZSB0aGUgZmllbGRzIHdlIHVzZSB0byBkaXNhbWJpZ3VhdGUgYW1iaWd1b3VzIHllYXJzLiBTZXBhcmF0ZQorICAgICAqIHNvIHdlIGNhbiBjYWxsIGl0IGZyb20gcmVhZE9iamVjdCgpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0aWFsaXplRGVmYXVsdENlbnR1cnkoKSB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoIG5ldyBEYXRlKCkgKTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5ZRUFSLCAtODAgKTsKKyAgICAgICAgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoY2FsZW5kYXIuZ2V0VGltZSgpKTsKKyAgICB9CisKKyAgICAvKiBEZWZpbmUgb25lLWNlbnR1cnkgd2luZG93IGludG8gd2hpY2ggdG8gZGlzYW1iaWd1YXRlIGRhdGVzIHVzaW5nCisgICAgICogdHdvLWRpZ2l0IHllYXJzLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBwYXJzZUFtYmlndW91c0RhdGVzQXNBZnRlcihEYXRlIHN0YXJ0RGF0ZSkgeworICAgICAgICBkZWZhdWx0Q2VudHVyeVN0YXJ0ID0gc3RhcnREYXRlOworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKHN0YXJ0RGF0ZSk7CisgICAgICAgIGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLllFQVIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIDEwMC15ZWFyIHBlcmlvZCAyLWRpZ2l0IHllYXJzIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYmVpbmcgaW4KKyAgICAgKiB0byBiZWdpbiBvbiB0aGUgZGF0ZSB0aGUgdXNlciBzcGVjaWZpZXMuCisgICAgICogQHBhcmFtIHN0YXJ0RGF0ZSBEdXJpbmcgcGFyc2luZywgdHdvIGRpZ2l0IHllYXJzIHdpbGwgYmUgcGxhY2VkIGluIHRoZSByYW5nZQorICAgICAqIDxjb2RlPnN0YXJ0RGF0ZTwvY29kZT4gdG8gPGNvZGU+c3RhcnREYXRlICsgMTAwIHllYXJzPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXQyRGlnaXRZZWFyU3RhcnQoRGF0ZSBzdGFydERhdGUpIHsKKyAgICAgICAgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoc3RhcnREYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBiZWdpbm5pbmcgZGF0ZSBvZiB0aGUgMTAwLXllYXIgcGVyaW9kIDItZGlnaXQgeWVhcnMgYXJlIGludGVycHJldGVkCisgICAgICogYXMgYmVpbmcgd2l0aGluLgorICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSAxMDAteWVhciBwZXJpb2QgaW50byB3aGljaCB0d28gZGlnaXQgeWVhcnMgYXJlCisgICAgICogcGFyc2VkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGUgZ2V0MkRpZ2l0WWVhclN0YXJ0KCkgeworICAgICAgICByZXR1cm4gZGVmYXVsdENlbnR1cnlTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgRGF0ZUZvcm1hdC4KKyAgICAgKiA8cD5Gb3JtYXRzIGEgZGF0ZSBvciB0aW1lLCB3aGljaCBpcyB0aGUgc3RhbmRhcmQgbWlsbGlzCisgICAgICogc2luY2UgSmFudWFyeSAxLCAxOTcwLCAwMDowMDowMCBHTVQuCisgICAgICogPHA+RXhhbXBsZTogdXNpbmcgdGhlIFVTIGxvY2FsZToKKyAgICAgKiAieXl5eS5NTS5kZCBHICdhdCcgSEg6bW06c3Mgenp6IiAtPj4gMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQKKyAgICAgKiBAcGFyYW0gY2FsIHRoZSBjYWxlbmRhciB3aG9zZSBkYXRlLXRpbWUgdmFsdWUgaXMgdG8gYmUgZm9ybWF0dGVkIGludG8gYSBkYXRlLXRpbWUgc3RyaW5nCisgICAgICogQHBhcmFtIHRvQXBwZW5kVG8gd2hlcmUgdGhlIG5ldyBkYXRlLXRpbWUgdGV4dCBpcyB0byBiZSBhcHBlbmRlZAorICAgICAqIEBwYXJhbSBwb3MgdGhlIGZvcm1hdHRpbmcgcG9zaXRpb24uIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlLXRpbWUgc3RyaW5nLgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KENhbGVuZGFyIGNhbCwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKCF1c2VGYXN0Rm9ybWF0KSB7CisgICAgICAgICAgICByZXR1cm4gc2xvd0Zvcm1hdChjYWwsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbml0aWFsaXplCisgICAgICAgIHBvcy5zZXRCZWdpbkluZGV4KDApOworICAgICAgICBwb3Muc2V0RW5kSW5kZXgoMCk7CisKKyAgICAgICAgLy8gQ2FyZWZ1bDogRm9yIGJlc3QgcGVyZm9ybWFuY2UsIG1pbmltaXplIHRoZSBudW1iZXIgb2YgY2FsbHMKKyAgICAgICAgLy8gdG8gU3RyaW5nQnVmZmVyLmFwcGVuZCgpIGJ5IGNvbnNvbGlkYXRpbmcgYXBwZW5kcyB3aGVuCisgICAgICAgIC8vIHBvc3NpYmxlLgorCisgICAgICAgIGludCBqLCBuID0gcGF0dGVybi5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICkgeworICAgICAgICAgICAgY2hhciBjaCA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKChjaCA+PSAnYScgJiYgY2ggPD0gJ3onKSB8fCAoY2ggPj0gJ0EnICYmIGNoIDw9ICdaJykpIHsKKyAgICAgICAgICAgICAgICAvLyBjaCBpcyBhIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlciB0byBiZSBpbnRlcnByZXRlZAorICAgICAgICAgICAgICAgIC8vIGJ5IHN1YkZvcm1hdCgpOyBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0IGlzIHJlcGVhdGVkCisgICAgICAgICAgICAgICAgZm9yIChqPWkrMTsgajxuICYmIHBhdHRlcm4uY2hhckF0KGopPT1jaDsgKytqKSB7fQorICAgICAgICAgICAgICAgIHN1YkZvcm1hdCh0b0FwcGVuZFRvLCBjaCwgai1pLCB0b0FwcGVuZFRvLmxlbmd0aCgpLCBwb3MsIGNhbCk7CisgICAgICAgICAgICAgICAgaSA9IGo7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgYW4gZW50aXJlIHF1b3RlZCBzdHJpbmcsIGluY2x1ZGVkIGVtYmVkZGVkCisgICAgICAgICAgICAgICAgLy8gZG91YmxlZCBhcG9zdHJvcGhlcyAoYXMgaW4gJ28nJ2Nsb2NrJykuCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gaSsxOworICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgKytpOyAvLyBpIHBvaW50cyBhZnRlciAnCisgICAgICAgICAgICAgICAgICAgIGlmIChpPT1uKSB7IC8vIHRyYWlsaW5nICcgKHBhdGhvbG9naWNhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChqPWk7IGo8biAmJiBwYXR0ZXJuLmNoYXJBdChqKSE9J1wnJzsgKytqKSB7fQorICAgICAgICAgICAgICAgICAgICAvLyBqIHBvaW50cyB0byBuZXh0ICcgb3IgRU9TCisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGo9PXN0YXJ0KSB7IC8vICcnIG91dHNpZGUgb2YgcXVvdGVzCisgICAgICAgICAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZCgnXCcnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gbG9vayBhaGVhZCB0byBkZXRlY3QgJycgd2l0aGluIHF1b3RlcworICAgICAgICAgICAgICAgICAgICBpbnQgayA9IGosIGpqID0gaisxOworICAgICAgICAgICAgICAgICAgICBpZiAoamo8biAmJiBwYXR0ZXJuLmNoYXJBdChqaik9PSdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGFwcGVuZCB0aGlzIHJ1biwgYW5kIGlmIHRoZXJlIGlzICcnIHdpdGhpbgorICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZXMsIGFwcGVuZCBhIHRyYWlsaW5nICcgYXMgd2VsbAorICAgICAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZChwYXR0ZXJuLnN1YnN0cmluZyhpLCBrKSk7CisKKyAgICAgICAgICAgICAgICAgICAgaSA9IGpqOworCisgICAgICAgICAgICAgICAgICAgIGlmIChrPT1qKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHVucXVvdGVkIGxpdGVyYWwgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdG9BcHBlbmRUbzsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBzbG93Rm9ybWF0KENhbGVuZGFyIGNhbCwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICAvLyBJbml0aWFsaXplCisgICAgICAgIHBvcy5zZXRCZWdpbkluZGV4KDApOworICAgICAgICBwb3Muc2V0RW5kSW5kZXgoMCk7CisKKyAgICAgICAgYm9vbGVhbiBpblF1b3RlID0gZmFsc2U7IC8vIHRydWUgd2hlbiBiZXR3ZWVuIHNpbmdsZSBxdW90ZXMKKyAgICAgICAgY2hhciBwcmV2Q2ggPSAwOyAvLyBwcmV2aW91cyBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAgICBpbnQgY291bnQgPSAwOyAgLy8gbnVtYmVyIG9mIHRpbWUgcHJldkNoIHJlcGVhdGVkCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIC8vIFVzZSBzdWJGb3JtYXQoKSB0byBmb3JtYXQgYSByZXBlYXRlZCBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gd2hlbiBhIGRpZmZlcmVudCBwYXR0ZXJuIG9yIG5vbi1wYXR0ZXJuIGNoYXJhY3RlciBpcyBzZWVuCisgICAgICAgICAgICBpZiAoY2ggIT0gcHJldkNoICYmIGNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YkZvcm1hdChwcmV2Q2gsIGNvdW50LCB0b0FwcGVuZFRvLmxlbmd0aCgpLCBwb3MsIGZvcm1hdERhdGEsIGNhbCkpOworICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaCA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgLy8gQ29uc2VjdXRpdmUgc2luZ2xlIHF1b3RlcyBhcmUgYSBzaW5nbGUgcXVvdGUgbGl0ZXJhbCwKKyAgICAgICAgICAgICAgICAvLyBlaXRoZXIgb3V0c2lkZSBvZiBxdW90ZXMgb3IgYmV0d2VlbiBxdW90ZXMKKyAgICAgICAgICAgICAgICBpZiAoKGkrMSk8cGF0dGVybi5sZW5ndGgoKSAmJiBwYXR0ZXJuLmNoYXJBdChpKzEpID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoJ1wnJyk7CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpblF1b3RlID0gIWluUXVvdGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICghaW5RdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAmJiAoY2ggPj0gJ2EnICYmIGNoIDw9ICd6JyB8fCBjaCA+PSAnQScgJiYgY2ggPD0gJ1onKSkgeworICAgICAgICAgICAgICAgIC8vIGNoIGlzIGEgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVyIHRvIGJlIGludGVycHJldGVkCisgICAgICAgICAgICAgICAgLy8gYnkgc3ViRm9ybWF0KCk7IGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgaXQgaXMgcmVwZWF0ZWQKKyAgICAgICAgICAgICAgICBwcmV2Q2ggPSBjaDsKKyAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHF1b3RlZCBjaGFyYWN0ZXJzIGFuZCB1bnF1b3RlZCBub24tcGF0dGVybiBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIEZvcm1hdCB0aGUgbGFzdCBpdGVtIGluIHRoZSBwYXR0ZXJuLCBpZiBhbnkKKyAgICAgICAgaWYgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJGb3JtYXQocHJldkNoLCBjb3VudCwgdG9BcHBlbmRUby5sZW5ndGgoKSwgcG9zLCBmb3JtYXREYXRhLCBjYWwpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdG9BcHBlbmRUbzsKKyAgICB9CisKKyAgICAvLyBNYXAgaW5kZXggaW50byBwYXR0ZXJuIGNoYXJhY3RlciBzdHJpbmcgdG8gQ2FsZW5kYXIgZmllbGQgbnVtYmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gUEFUVEVSTl9JTkRFWF9UT19DQUxFTkRBUl9GSUVMRCA9CisgICAgeworICAgICAgICAvKkd5TSovIENhbGVuZGFyLkVSQSwgQ2FsZW5kYXIuWUVBUiwgQ2FsZW5kYXIuTU9OVEgsCisgICAgICAgIC8qZGtIKi8gQ2FsZW5kYXIuREFURSwgQ2FsZW5kYXIuSE9VUl9PRl9EQVksIENhbGVuZGFyLkhPVVJfT0ZfREFZLAorICAgICAgICAvKm1zUyovIENhbGVuZGFyLk1JTlVURSwgQ2FsZW5kYXIuU0VDT05ELCBDYWxlbmRhci5NSUxMSVNFQ09ORCwKKyAgICAgICAgLypFREYqLyBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuREFZX09GX1lFQVIsIENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILAorICAgICAgICAvKndXYSovIENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgQ2FsZW5kYXIuQU1fUE0sCisgICAgICAgIC8qaEt6Ki8gQ2FsZW5kYXIuSE9VUiwgQ2FsZW5kYXIuSE9VUiwgQ2FsZW5kYXIuWk9ORV9PRkZTRVQsCisgICAgICAgIC8qWWV1Ki8gQ2FsZW5kYXIuWUVBUl9XT1ksIENhbGVuZGFyLkRPV19MT0NBTCwgQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwKKyAgICAgICAgLypnQVoqLyBDYWxlbmRhci5KVUxJQU5fREFZLCBDYWxlbmRhci5NSUxMSVNFQ09ORFNfSU5fREFZLCBDYWxlbmRhci5aT05FX09GRlNFVCwKKyAgICAgICAgLyp2Ki8gICBDYWxlbmRhci5aT05FX09GRlNFVCwKKyAgICAgICAgLypjKi8gICBDYWxlbmRhci5EQVlfT0ZfV0VFSywKKyAgICAgICAgLypMKi8gICBDYWxlbmRhci5NT05USCwKKyAgICAgICAgLypRcSovICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuTU9OVEgsCisgICAgfTsKKworICAgIC8vIE1hcCBpbmRleCBpbnRvIHBhdHRlcm4gY2hhcmFjdGVyIHN0cmluZyB0byBEYXRlRm9ybWF0IGZpZWxkIG51bWJlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIFBBVFRFUk5fSU5ERVhfVE9fREFURV9GT1JNQVRfRklFTEQgPSB7CisgICAgICAgIC8qR3lNKi8gRGF0ZUZvcm1hdC5FUkFfRklFTEQsIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgRGF0ZUZvcm1hdC5NT05USF9GSUVMRCwKKyAgICAgICAgLypka0gqLyBEYXRlRm9ybWF0LkRBVEVfRklFTEQsIERhdGVGb3JtYXQuSE9VUl9PRl9EQVkxX0ZJRUxELCBEYXRlRm9ybWF0LkhPVVJfT0ZfREFZMF9GSUVMRCwKKyAgICAgICAgLyptc1MqLyBEYXRlRm9ybWF0Lk1JTlVURV9GSUVMRCwgRGF0ZUZvcm1hdC5TRUNPTkRfRklFTEQsIERhdGVGb3JtYXQuRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQsCisgICAgICAgIC8qRURGKi8gRGF0ZUZvcm1hdC5EQVlfT0ZfV0VFS19GSUVMRCwgRGF0ZUZvcm1hdC5EQVlfT0ZfWUVBUl9GSUVMRCwgRGF0ZUZvcm1hdC5EQVlfT0ZfV0VFS19JTl9NT05USF9GSUVMRCwKKyAgICAgICAgLyp3V2EqLyBEYXRlRm9ybWF0LldFRUtfT0ZfWUVBUl9GSUVMRCwgRGF0ZUZvcm1hdC5XRUVLX09GX01PTlRIX0ZJRUxELCBEYXRlRm9ybWF0LkFNX1BNX0ZJRUxELAorICAgICAgICAvKmhLeiovIERhdGVGb3JtYXQuSE9VUjFfRklFTEQsIERhdGVGb3JtYXQuSE9VUjBfRklFTEQsIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICAgIC8qWWV1Ki8gRGF0ZUZvcm1hdC5ZRUFSX1dPWV9GSUVMRCwgRGF0ZUZvcm1hdC5ET1dfTE9DQUxfRklFTEQsIERhdGVGb3JtYXQuRVhURU5ERURfWUVBUl9GSUVMRCwKKyAgICAgICAgLypnQVoqLyBEYXRlRm9ybWF0LkpVTElBTl9EQVlfRklFTEQsIERhdGVGb3JtYXQuTUlMTElTRUNPTkRTX0lOX0RBWV9GSUVMRCwgRGF0ZUZvcm1hdC5USU1FWk9ORV9SRkNfRklFTEQsCisgICAgICAgIC8qdiovICAgRGF0ZUZvcm1hdC5USU1FWk9ORV9HRU5FUklDX0ZJRUxELCAKKyAgICAgICAgLypjKi8gICBEYXRlRm9ybWF0LlNUQU5EQUxPTkVfREFZX0ZJRUxELAorICAgICAgICAvKkwqLyAgIERhdGVGb3JtYXQuU1RBTkRBTE9ORV9NT05USF9GSUVMRCwKKyAgICAgICAgLypRKi8gICBEYXRlRm9ybWF0LlFVQVJURVJfRklFTEQsCisgICAgICAgIC8qcSovICAgRGF0ZUZvcm1hdC5TVEFOREFMT05FX1FVQVJURVJfRklFTEQsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZvcm1hdCBhIHNpbmdsZSBmaWVsZCwgZ2l2ZW4gaXRzIHBhdHRlcm4gY2hhcmFjdGVyLiAgU3ViY2xhc3NlcyBtYXkKKyAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCBpbiBvcmRlciB0byBtb2RpZnkgb3IgYWRkIGZvcm1hdHRpbmcKKyAgICAgKiBjYXBhYmlsaXRpZXMuCisgICAgICogQHBhcmFtIGNoIHRoZSBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIGNoIGlzIHJlcGVhdGVkIGluIHRoZSBwYXR0ZXJuCisgICAgICogQHBhcmFtIGJlZ2luT2Zmc2V0IHRoZSBvZmZzZXQgb2YgdGhlIG91dHB1dCBzdHJpbmcgYXQgdGhlIHN0YXJ0IG9mCisgICAgICogdGhpcyBmaWVsZDsgdXNlZCB0byBzZXQgcG9zIHdoZW4gYXBwcm9wcmlhdGUKKyAgICAgKiBAcGFyYW0gcG9zIHJlY2VpdmVzIHRoZSBwb3NpdGlvbiBvZiBhIGZpZWxkLCB3aGVuIGFwcHJvcHJpYXRlCisgICAgICogQHBhcmFtIGZvcm1hdERhdGEgdGhlIHN5bWJvbHMgZm9yIHRoaXMgZm9ybWF0dGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBzdWJGb3JtYXQoY2hhciBjaCwgaW50IGNvdW50LCBpbnQgYmVnaW5PZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MsIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsKQorICAgICAgICB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBOb3RlOiBmb3JtYXREYXRhIGlzIGlnbm9yZWQKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc3ViRm9ybWF0KGJ1ZiwgY2gsIGNvdW50LCBiZWdpbk9mZnNldCwgcG9zLCBjYWwpOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0IGEgc2luZ2xlIGZpZWxkOyB1c2VGYXN0Rm9ybWF0IHZhcmlhbnQuICBSZXVzZXMgYQorICAgICAqIFN0cmluZ0J1ZmZlciBmb3IgcmVzdWx0cyBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgU3RyaW5nIG9uIHRoZQorICAgICAqIGhlYXAgZm9yIGVhY2ggY2FsbC4KKyAgICAgKgorICAgICAqIE5PVEUgV2UgZG9uJ3QgcmVhbGx5IG5lZWQgdGhlIGJlZ2luT2Zmc2V0IHBhcmFtZXRlciwgRVhDRVBUIGZvcgorICAgICAqIHRoZSBuZWVkIHRvIHN1cHBvcnQgdGhlIHNsb3cgc3ViRm9ybWF0IHZhcmlhbnQgKGFib3ZlKSB3aGljaAorICAgICAqIGhhcyB0byBwYXNzIGl0IGluIHRvIHVzLgorICAgICAqCisgICAgICogVE9ETyBtYWtlIHRoaXMgQVBJIHB1YmxpYworICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc3ViRm9ybWF0KFN0cmluZ0J1ZmZlciBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY2gsIGludCBjb3VudCwgaW50IGJlZ2luT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIGZpbmFsIGludCBtYXhJbnRDb3VudCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICBmaW5hbCBpbnQgYnVmc3RhcnQgPSBidWYubGVuZ3RoKCk7CisKKyAgICAgICAgZmluYWwgaW50IHBhdHRlcm5DaGFySW5kZXggPSBEYXRlRm9ybWF0U3ltYm9scy5wYXR0ZXJuQ2hhcnMuaW5kZXhPZihjaCk7CisgICAgICAgIGlmIChwYXR0ZXJuQ2hhckluZGV4ID09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHBhdHRlcm4gY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJyIgKyBjaCArICInIGluIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmcocGF0dGVybikgKyAnIicpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGZpZWxkID0gUEFUVEVSTl9JTkRFWF9UT19DQUxFTkRBUl9GSUVMRFtwYXR0ZXJuQ2hhckluZGV4XTsKKyAgICAgICAgaW50IHZhbHVlID0gY2FsLmdldChmaWVsZCk7CisKKyAgICAgICAgc3dpdGNoIChwYXR0ZXJuQ2hhckluZGV4KSB7CisgICAgICAgIGNhc2UgMDogLy8gJ0cnIC0gRVJBCisgICAgICAgICAgICBpZiAoY291bnQgPT0gNSkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5uYXJyb3dFcmFzW3ZhbHVlXSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID09IDQpCisgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuZXJhTmFtZXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5lcmFzW3ZhbHVlXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOiAvLyAneScgLSBZRUFSCisgICAgICAgICAgICAvKiBBY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb24sIGlmIHRoZSBudW1iZXIgb2YgcGF0dGVybiBsZXR0ZXJzICgneScpIGlzIDIsCisgICAgICAgICAgICAgKiB0aGUgeWVhciBpcyB0cnVuY2F0ZWQgdG8gMiBkaWdpdHM7IG90aGVyd2lzZSBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIG51bWJlci4KKyAgICAgICAgICAgICAqIEJ1dCB0aGUgb3JpZ2luYWwgY29kZSBwcm9jZXNzICd5JywgJ3l5JywgJ3l5eScgaW4gdGhlIHNhbWUgd2F5LiBhbmQgcHJvY2VzcworICAgICAgICAgICAgICogcGF0dGVybnMgd2l0aCA0IG9yIG1vcmUgdGhhbiA0ICd5JyBjaGFyYWN0ZXJzIGluIHRoZSBzYW1lIHdheS4KKyAgICAgICAgICAgICAqIFNvIEkgY2hhbmdlIHRoZSBjb2RlcyB0byBtZWV0IHRoZSBzcGVjaWZpY2F0aW9uLiBbUmljaGFyZC9HQ2xdCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIDIsIDIpOyAvLyBjbGlwIDE5OTYgdG8gOTYKKyAgICAgICAgICAgIGVsc2UgLy9jb3VudCA9IDEgb3IgY291bnQgPiAyCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6IC8vICdNJyAtIE1PTlRICisgICAgICAgICAgICBpZiAoY291bnQgPT0gNSkgCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLm5hcnJvd01vbnRoc1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPT0gNCkKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEubW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSAzKQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zaG9ydE1vbnRoc1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUrMSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6IC8vICdrJyAtIEhPVVJfT0ZfREFZICgxLi4yNCkKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAwKQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5IT1VSX09GX0RBWSkrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA4OiAvLyAnUycgLSBGUkFDVElPTkFMX1NFQ09ORAorICAgICAgICAgICAgLy8gRnJhY3Rpb25hbCBzZWNvbmRzIGxlZnQtanVzdGlmeQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhNYXRoLm1pbigzLCBjb3VudCkpOworICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhtYXhJbnRDb3VudCk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAodmFsdWUgKyA1MCkgLyAxMDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKHZhbHVlICsgNSkgLyAxMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwID0gbmV3IEZpZWxkUG9zaXRpb24oLTEpOworICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5mb3JtYXQoKGxvbmcpIHZhbHVlLCBidWYsIHApOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKGNvdW50IC0gMyk7CisgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5mb3JtYXQoMEwsIGJ1ZiwgcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOTogLy8gJ0UnIC0gREFZX09GX1dFRUsKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSA1KSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLm5hcnJvd1dlZWtkYXlzW3ZhbHVlXSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID09IDQpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLndlZWtkYXlzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIC8vIGNvdW50IDw9IDMsIHVzZSBhYmJyZXZpYXRlZCBmb3JtIGlmIGV4aXN0cworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zaG9ydFdlZWtkYXlzW3ZhbHVlXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDogLy8gJ2EnIC0gQU1fUE0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5hbXBtc1t2YWx1ZV0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTU6IC8vICdoJyAtIEhPVVIgKDEuLjEyKQorICAgICAgICAgICAgaWYgKHZhbHVlID09IDApCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXRMZWFzdE1heGltdW0oQ2FsZW5kYXIuSE9VUikrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzogLy8gJ3onIC0gWk9ORV9PRkZTRVQKKyAgICAgICAgY2FzZSAyNDogLy8gJ3YnIC0gVElNRVpPTkVfR0VORVJJQyAKKyAgICAgICAgICAgIHsKKworICAgICAgICAgICAgICAgIFN0cmluZyB6aWQ7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlcz1udWxsOworICAgICAgICAgICAgICAgIHppZCA9IFpvbmVNZXRhLmdldENhbm9uaWNhbElEKGNhbC5nZXRUaW1lWm9uZSgpLmdldElEKCkpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNHZW5lcmljID0gcGF0dGVybkNoYXJJbmRleCA9PSAyNDsKKyAgICAgICAgICAgICAgICBpZiAoemlkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm5DaGFySW5kZXggPT0gVElNRVpPTkVfR0VORVJJQ19GSUVMRCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoY291bnQgPCA0KXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9TSE9SVF9HRU5FUklDKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0xPTkdfR0VORVJJQyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY291bnQgPCA0KXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gZm9ybWF0RGF0YS5nZXRab25lU3RyaW5nKHppZCwgRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfU0hPUlRfREFZTElHSFQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9MT05HX0RBWUxJR0hUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA8IDQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9TSE9SVF9TVEFOREFSRCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0xPTkdfU1RBTkRBUkQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzID09IG51bGwgfHwgcmVzLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm90ZSwgdHIzNSBkb2VzIG5vdCBkZXNjcmliZSB0aGUgc3BlY2lhbCBjYXNlIGZvciAnbm8gY291bnRyeScgCisgICAgICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGVkIGJlbG93LCB0aGlzIGlzIGZyb20gZGlzY3Vzc2lvbiB3aXRoIE1hcmsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHppZCA9PSBudWxsIHx8ICFpc0dlbmVyaWMgfHwgWm9uZU1ldGEuZ2V0Q2Fub25pY2FsQ291bnRyeSh6aWQpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZnNldCA9IGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gWm9uZU1ldGEuZGlzcGxheUdNVChvZmZzZXQsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjaXR5ID0gZm9ybWF0RGF0YS5nZXRab25lU3RyaW5nKHppZCwgRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfRVhFTVBMQVJfQ0lUWSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBab25lTWV0YS5kaXNwbGF5RmFsbGJhY2soemlkLCBjaXR5LCBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0VYRU1QTEFSX0NJVFkpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBab25lTWV0YS5kaXNwbGF5RmFsbGJhY2soemlkLCBudWxsLCBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKHJlcy5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEdNVChidWYsIGNhbCk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocmVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICBjYXNlIDIzOiAvLyAnWicgLSBUSU1FWk9ORV9SRkMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPCA0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vICdzaG9ydCcgKHN0YW5kYXJkIEphdmEpIGZvcm0sIG11c3QgdXNlIEFTQ0lJIGRpZ2l0cworICAgICAgICAgICAgICAgICAgICBsb25nIHZhbD0gKGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkpIC8gbWlsbGlzUGVyTWludXRlOworICAgICAgICAgICAgICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSAtdmFsOworICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9ICctJzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB2YWwgPSAodmFsIC8gNjApICogMTAwICsgKHZhbCAlIDYwKTsgLy8gbWludXRlcyA9PiBLS21tCisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICAgICAgICAgIGZhc3RaZXJvUGFkZGluZ051Ym1lcihidWYsIChpbnQpdmFsLCA0LCA0LCAnMCcpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGxvbmcgZm9ybSwgbG9jYWxpemVkIEdNVCBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBpbiAzLjQgbG9jYWxlIGRhdGEsIG5lZWQgdG8gYWRkLCBzbyB1c2Ugc2FtZSBkZWZhdWx0IGFzIGZvciBnZW5lcmFsIHRpbWUgem9uZSBuYW1lcworICAgICAgICAgICAgICAgICAgICBsb25nIHZhbCA9IGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoWm9uZU1ldGEuZGlzcGxheUdNVCh2YWwsIGxvY2FsZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI1OiAvLyAnYycgLSBTVEFOREFMT05FIERBWQorICAgICAgICAgICAgaWYgKGNvdW50ID09IDUpIAorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lTmFycm93V2Vla2RheXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDQpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnN0YW5kYWxvbmVXZWVrZGF5c1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPT0gMykKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuc3RhbmRhbG9uZVNob3J0V2Vla2RheXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIHZhbHVlLCAxLCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjogLy8gJ0wnIC0gU1RBTkRBTE9ORSBNT05USAorICAgICAgICAgICAgaWYgKGNvdW50ID09IDUpIAorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lTmFycm93TW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSA0KQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lTW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSAzKQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lU2hvcnRNb250aHNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIHZhbHVlKzEsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzogLy8gJ1EnIC0gUVVBUlRFUgorICAgICAgICAgICAgaWYgKGNvdW50ID49IDQpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnF1YXJ0ZXJzW3ZhbHVlLzNdKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDMpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnNob3J0UXVhcnRlcnNbdmFsdWUvM10pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgKHZhbHVlLzMpKzEsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODogLy8gJ3EnIC0gU1RBTkRBTE9ORSBRVUFSVEVSCisgICAgICAgICAgICBpZiAoY291bnQgPj0gNCkKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuc3RhbmRhbG9uZVF1YXJ0ZXJzW3ZhbHVlLzNdKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDMpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzW3ZhbHVlLzNdKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsICh2YWx1ZS8zKSsxLCBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBjYXNlIDM6IC8vICdkJyAtIERBVEUKKyAgICAgICAgICAgIC8vIGNhc2UgNTogLy8gJ0gnIC0gSE9VUl9PRl9EQVkgKDAuLjIzKQorICAgICAgICAgICAgLy8gY2FzZSA2OiAvLyAnbScgLSBNSU5VVEUKKyAgICAgICAgICAgIC8vIGNhc2UgNzogLy8gJ3MnIC0gU0VDT05ECisgICAgICAgICAgICAvLyBjYXNlIDEwOiAvLyAnRCcgLSBEQVlfT0ZfWUVBUgorICAgICAgICAgICAgLy8gY2FzZSAxMTogLy8gJ0YnIC0gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgICAgIC8vIGNhc2UgMTI6IC8vICd3JyAtIFdFRUtfT0ZfWUVBUgorICAgICAgICAgICAgLy8gY2FzZSAxMzogLy8gJ1cnIC0gV0VFS19PRl9NT05USAorICAgICAgICAgICAgLy8gY2FzZSAxNjogLy8gJ0snIC0gSE9VUiAoMC4uMTEpCisgICAgICAgICAgICAvLyBjYXNlIDE4OiAvLyAnWScgLSBZRUFSX1dPWQorICAgICAgICAgICAgLy8gY2FzZSAxOTogLy8gJ2UnIC0gRE9XX0xPQ0FMCisgICAgICAgICAgICAvLyBjYXNlIDIwOiAvLyAndScgLSBFWFRFTkRFRF9ZRUFSCisgICAgICAgICAgICAvLyBjYXNlIDIxOiAvLyAnZycgLSBKVUxJQU5fREFZCisgICAgICAgICAgICAvLyBjYXNlIDIyOiAvLyAnQScgLSBNSUxMSVNFQ09ORFNfSU5fREFZCisKKyAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfSAvLyBzd2l0Y2ggKHBhdHRlcm5DaGFySW5kZXgpCisKKyAgICAgICAgLy8gU2V0IHRoZSBGaWVsZFBvc2l0aW9uIChmb3IgdGhlIGZpcnN0IG9jY3VyZW5jZSBvbmx5KQorICAgICAgICBpZiAocG9zLmdldEJlZ2luSW5kZXgoKSA9PSBwb3MuZ2V0RW5kSW5kZXgoKSAmJgorICAgICAgICAgICAgcG9zLmdldEZpZWxkKCkgPT0gUEFUVEVSTl9JTkRFWF9UT19EQVRFX0ZPUk1BVF9GSUVMRFtwYXR0ZXJuQ2hhckluZGV4XSkgeworICAgICAgICAgICAgcG9zLnNldEJlZ2luSW5kZXgoYmVnaW5PZmZzZXQpOworICAgICAgICAgICAgcG9zLnNldEVuZEluZGV4KGJlZ2luT2Zmc2V0ICsgYnVmLmxlbmd0aCgpIC0gYnVmc3RhcnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZEdNVChTdHJpbmdCdWZmZXIgYnVmLCBDYWxlbmRhciBjYWwpeworICAgICAgICBpbnQgdmFsdWUgPSBjYWwuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSArCisgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisKKyAgICAgICAgaWYgKHZhbHVlIDwgMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChHTVRfTUlOVVMpOworICAgICAgICAgICAgdmFsdWUgPSAtdmFsdWU7IC8vIHN1cHByZXNzIHRoZSAnLScgc2lnbiBmb3IgdGV4dCBkaXNwbGF5LgorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoR01UX1BMVVMpOworICAgICAgICB9CisKKyAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCAoaW50KSh2YWx1ZS9taWxsaXNQZXJIb3VyKSwgMiwgMik7CisgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpMHgwMDNBKSAvKic6JyovOworICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIChpbnQpKCh2YWx1ZSVtaWxsaXNQZXJIb3VyKS9taWxsaXNQZXJNaW51dGUpLCAyLCAyKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QuIFJldHVybnMgbnVsbCBpZiB0aGUgdmFsdWUgb2YgYW4gYXJyYXkgaXMgZW1wdHksIG9yIGlmIHRoZQorICAgICAqIGluZGV4IGlzIG91dCBvZiBib3VuZHMKKyAgICAgKi8KKy8qICAgIHByaXZhdGUgU3RyaW5nIGdldFpvbmVBcnJheVZhbHVlKFN0cmluZ1tdIHpzLCBpbnQgaXgpIHsKKyAgICAgICAgaWYgKGl4ID49IDAgJiYgaXggPCB6cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSB6c1tpeF07CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwgJiYgcmVzdWx0Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0qLworCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgaGlnaC1zcGVlZCBtZXRob2QuICBSZXVzZXMgYSBTdHJpbmdCdWZmZXIgZm9yIHJlc3VsdHMKKyAgICAgKiBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgU3RyaW5nIG9uIHRoZSBoZWFwIGZvciBlYWNoIGNhbGwuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgemVyb1BhZGRpbmdOdW1iZXIoU3RyaW5nQnVmZmVyIGJ1ZiwgaW50IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW5EaWdpdHMsIGludCBtYXhEaWdpdHMpIHsKKyAgICAJaWYgKHVzZUZhc3RaZXJvUGFkZGluZ051bWJlcikgeworICAgIAkJZmFzdFplcm9QYWRkaW5nTnVibWVyKGJ1ZiwgdmFsdWUsIG1pbkRpZ2l0cywgbWF4RGlnaXRzLCB6ZXJvRGlnaXQpOworICAgIAkJcmV0dXJuOworICAgIAl9CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oLTEpOworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUludGVnZXJEaWdpdHMobWluRGlnaXRzKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKG1heERpZ2l0cyk7CisgICAgICAgIG51bWJlckZvcm1hdC5mb3JtYXQodmFsdWUsIGJ1ZiwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBmYXN0ZXIgbWV0aG9kLiAgVGhpcyBtZXRob2QgZG9lcyBub3QgdXNlIE51bWJlckZvcm1hdAorICAgICAqIHRvIGZvcm1hdCBkaWdpdHMuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGZhc3RaZXJvUGFkZGluZ051Ym1lcihTdHJpbmdCdWZmZXIgYnVmLCBpbnQgdmFsdWUsCisgICAgICAgICAgICBpbnQgbWluRGlnaXRzLCBpbnQgbWF4RGlnaXRzLCBjaGFyIHplcm8pIHsKKyAgICAJdmFsdWUgPSB2YWx1ZSA8IDAgPyAtdmFsdWUgOiB2YWx1ZTsgLy8/PworICAgICAgICBtaW5EaWdpdHMgPSBtaW5EaWdpdHMgPCBtYXhEaWdpdHMgPyBtaW5EaWdpdHMgOiBtYXhEaWdpdHM7CisgICAgICAgIGludCBsaW1pdCA9IGRlY2ltYWxCdWYubGVuZ3RoIDwgbWF4RGlnaXRzID8gZGVjaW1hbEJ1Zi5sZW5ndGggOiBtYXhEaWdpdHM7CisgICAgICAgIGludCBpbmRleCA9IGxpbWl0IC0gMTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGRlY2ltYWxCdWZbaW5kZXhdID0gKGNoYXIpKCh2YWx1ZSAlIDEwKSArIHplcm8pOworICAgICAgICAgICAgdmFsdWUgLz0gMTA7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMCB8fCB2YWx1ZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleC0tOworICAgICAgICB9CisgICAgICAgIGludCBwYWRkaW5nID0gbWluRGlnaXRzIC0gKGxpbWl0IC0gaW5kZXgpOworICAgICAgICBmb3IgKDsgcGFkZGluZyA+IDA7IHBhZGRpbmctLSkgeworICAgICAgICAgICAgZGVjaW1hbEJ1ZlstLWluZGV4XSA9IHplcm87CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZChkZWNpbWFsQnVmLCBpbmRleCwgbGltaXQgLSBpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIHN1cGVyY2xhc3MgbWV0aG9kCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TnVtYmVyRm9ybWF0KE51bWJlckZvcm1hdCBuZXdOdW1iZXJGb3JtYXQpIHsKKyAgICAJc3VwZXIuc2V0TnVtYmVyRm9ybWF0KG5ld051bWJlckZvcm1hdCk7CisgICAgICAgIGlmIChuZXdOdW1iZXJGb3JtYXQgaW5zdGFuY2VvZiBEZWNpbWFsRm9ybWF0KSB7CisgICAgICAgICAgICB6ZXJvRGlnaXQgPSAoKERlY2ltYWxGb3JtYXQpbmV3TnVtYmVyRm9ybWF0KS5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpLmdldFplcm9EaWdpdCgpOworICAgICAgICAgICAgdXNlRmFzdFplcm9QYWRkaW5nTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHVzZUZhc3RaZXJvUGFkZGluZ051bWJlciA9IGZhbHNlOworICAgICAgICB9ICAgIAkKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGEgbnVtYmVyIHdpdGggdGhlIHNwZWNpZmllZCBtaW5pbXVtIGFuZCBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyB6ZXJvUGFkZGluZ051bWJlcihsb25nIHZhbHVlLCBpbnQgbWluRGlnaXRzLCBpbnQgbWF4RGlnaXRzKQorICAgIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKG1pbkRpZ2l0cyk7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhtYXhEaWdpdHMpOworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdCh2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0IGNoYXJhY3RlcnMgdGhhdCBpbmRpY2F0ZSBudW1lcmljIGZpZWxkcy4gIFRoZSBjaGFyYWN0ZXIKKyAgICAgKiBhdCBpbmRleCAwIGlzIHRyZWF0ZWQgc3BlY2lhbGx5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOVU1FUklDX0ZPUk1BVF9DSEFSUyA9ICJNeXVkaEhtc1NERndXa0siOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGZvcm1hdCBjaGFyYWN0ZXIsIG9jY3VyaW5nIGNvdW50CisgICAgICogdGltZXMsIHJlcHJlc2VudHMgYSBudW1lcmljIGZpZWxkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNOdW1lcmljKGNoYXIgZm9ybWF0Q2hhciwgaW50IGNvdW50KSB7CisgICAgICAgIGludCBpID0gTlVNRVJJQ19GT1JNQVRfQ0hBUlMuaW5kZXhPZihmb3JtYXRDaGFyKTsKKyAgICAgICAgcmV0dXJuIChpID4gMCB8fCAoaSA9PSAwICYmIGNvdW50IDwgMykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBEYXRlRm9ybWF0CisgICAgICogQHNlZSBEYXRlRm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2UoU3RyaW5nIHRleHQsIENhbGVuZGFyIGNhbCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvcykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBwYXJzZVBvcy5nZXRJbmRleCgpOworICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgIGJvb2xlYW5bXSBhbWJpZ3VvdXNZZWFyID0geyBmYWxzZSB9OworICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgIC8vIGhhY2ssIGNsZWFyIHBhcnNlZFRpbWVab25lCisgICAgICAgIHBhcnNlZFRpbWVab25lID0gbnVsbDsKKworICAgICAgICAvLyBGb3IgcGFyc2luZyBhYnV0dGluZyBudW1lcmljIGZpZWxkcy4gJ2FidXRQYXQnIGlzIHRoZQorICAgICAgICAvLyBvZmZzZXQgaW50byAncGF0dGVybicgb2YgdGhlIGZpcnN0IG9mIDIgb3IgbW9yZSBhYnV0dGluZworICAgICAgICAvLyBudW1lcmljIGZpZWxkcy4gICdhYnV0U3RhcnQnIGlzIHRoZSBvZmZzZXQgaW50byAndGV4dCcKKyAgICAgICAgLy8gd2hlcmUgcGFyc2luZyB0aGUgZmllbGRzIGJlZ2lucy4gJ2FidXRQYXNzJyBzdGFydHMgb2ZmIGFzIDAKKyAgICAgICAgLy8gYW5kIGluY3JlbWVudHMgZWFjaCB0aW1lIHdlIHRyeSB0byBwYXJzZSB0aGUgZmllbGRzLgorICAgICAgICBpbnQgYWJ1dFBhdCA9IC0xOyAvLyBJZiA+PTAsIHdlIGFyZSBpbiBhIHJ1biBvZiBhYnV0dGluZyBudW1lcmljIGZpZWxkcworICAgICAgICBpbnQgYWJ1dFN0YXJ0ID0gMDsKKyAgICAgICAgaW50IGFidXRQYXNzID0gMDsKKyAgICAgICAgYm9vbGVhbiBpblF1b3RlID0gZmFsc2U7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHBhdHRlcm4uY2hhckF0KGkpOworCisgICAgICAgICAgICAvLyBIYW5kbGUgYWxwaGFiZXRpYyBmaWVsZCBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgaWYgKCFpblF1b3RlICYmIChjaCA+PSAnQScgJiYgY2ggPD0gJ1onIHx8IGNoID49ICdhJyAmJiBjaCA8PSAneicpKSB7CisgICAgICAgICAgICAgICAgaW50IGZpZWxkUGF0ID0gaTsKKworICAgICAgICAgICAgICAgIC8vIENvdW50IHRoZSBsZW5ndGggb2YgdGhpcyBmaWVsZCBzcGVjaWZpZXIKKyAgICAgICAgICAgICAgICBjb3VudCA9IDE7CisgICAgICAgICAgICAgICAgd2hpbGUgKChpKzEpPHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQoaSsxKSA9PSBjaCkgeworICAgICAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGlzTnVtZXJpYyhjaCwgY291bnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhYnV0UGF0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGFuIGFidXR0aW5nIG51bWVyaWMgZmllbGQuICBGb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vc3QgZmllbGRzIHdlIGNhbiBqdXN0IGxvb2sgYXQgdGhlIG5leHQgY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGUgJ20nIGZpZWxkIGlzIGVpdGhlciBudW1lcmljIG9yIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXBlbmRpbmcgb24gdGhlIGNvdW50LCBzbyB3ZSBoYXZlIHRvIGxvb2sgYWhlYWQgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGZpZWxkLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChpKzEpPHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFidXR0aW5nOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbmV4dENoID0gcGF0dGVybi5jaGFyQXQoaSsxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgayA9IE5VTUVSSUNfRk9STUFUX0NIQVJTLmluZGV4T2YobmV4dENoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoayA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBqID0gaSsyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoajxwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChqKSA9PSBuZXh0Q2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnV0dGluZyA9IChqLWkpIDwgNDsgLy8gbmV4dENvdW50IDwgMworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFidXR0aW5nID0gayA+IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHRoZSBzdGFydCBvZiBhIHNldCBvZiBhYnV0dGluZyBudW1lcmljCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmllbGRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhYnV0dGluZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnV0UGF0ID0gZmllbGRQYXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFidXRTdGFydCA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJ1dFBhc3MgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFidXRQYXQgPSAtMTsgLy8gRW5kIG9mIGFueSBhYnV0dGluZyBmaWVsZHMKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgZmllbGRzIHdpdGhpbiBhIHJ1biBvZiBhYnV0dGluZyBudW1lcmljIGZpZWxkcy4gIFRha2UKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGF0dGVybiAiSEhtbXNzIiBhcyBhbiBleGFtcGxlLiBXZSB3aWxsIHRyeSB0byBwYXJzZQorICAgICAgICAgICAgICAgIC8vIDIvMi8yIGNoYXJhY3RlcnMgb2YgdGhlIGlucHV0IHRleHQsIHRoZW4gaWYgdGhhdCBmYWlscywKKyAgICAgICAgICAgICAgICAvLyAxLzIvMi4gIFdlIG9ubHkgYWRqdXN0IHRoZSB3aWR0aCBvZiB0aGUgbGVmdG1vc3QgZmllbGQ7IHRoZQorICAgICAgICAgICAgICAgIC8vIG90aGVycyByZW1haW4gZml4ZWQuICBUaGlzIGFsbG93cyAiMTIzNDU2IiA9PiAxMjozNDo1NiwgYnV0CisgICAgICAgICAgICAgICAgLy8gIjEyMzQ1IiA9PiAxOjIzOjQ1LiAgTGlrZXdpc2UsIGZvciB0aGUgcGF0dGVybiAieXl5eU1NZGQiIHdlCisgICAgICAgICAgICAgICAgLy8gdHJ5IDQvMi8yLCAzLzIvMiwgMi8yLzIsIGFuZCBmaW5hbGx5IDEvMi8yLgorICAgICAgICAgICAgICAgIGlmIChhYnV0UGF0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIHJ1biBvZiBhYnV0dGluZyBmaWVsZHMsIHRoZW4KKyAgICAgICAgICAgICAgICAgICAgLy8gc2hvcnRlbiB0aGlzIGZpZWxkIGluIGVhY2ggcGFzcy4gIElmIHdlIGNhbid0IHNob3J0ZW4KKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBmaWVsZCBhbnkgbW9yZSwgdGhlbiB0aGUgcGFyc2Ugb2YgdGhpcyBzZXQgb2YKKyAgICAgICAgICAgICAgICAgICAgLy8gYWJ1dHRpbmcgbnVtZXJpYyBmaWVsZHMgaGFzIGZhaWxlZC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkUGF0ID09IGFidXRQYXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IGFidXRQYXNzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zLnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvcy5zZXRFcnJvckluZGV4KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gc3ViUGFyc2UodGV4dCwgcG9zLCBjaCwgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGZhbHNlLCBhbWJpZ3VvdXNZZWFyLCBjYWwpOworCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwYXJzZSBmYWlscyBhbnl3aGVyZSBpbiB0aGUgcnVuLCBiYWNrIHVwIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBzdGFydCBvZiB0aGUgcnVuIGFuZCByZXRyeS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBhYnV0UGF0IC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGFidXRTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIG5vbi1udW1lcmljIGZpZWxkcyBhbmQgbm9uLWFidXR0aW5nIG51bWVyaWMKKyAgICAgICAgICAgICAgICAvLyBmaWVsZHMuCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBzID0gcG9zOworICAgICAgICAgICAgICAgICAgICBwb3MgPSBzdWJQYXJzZSh0ZXh0LCBwb3MsIGNoLCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRydWUsIGFtYmlndW91c1llYXIsIGNhbCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zLnNldEVycm9ySW5kZXgocyk7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvcy5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEhhbmRsZSBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycy4gIFRoZXNlIGFyZSBhbnkKKyAgICAgICAgICAgIC8vIHF1b3RlZCBjaGFyYWN0ZXJzIGFuZCBub24tYWxwaGFiZXRpYyB1bnF1b3RlZAorICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4KKyAgICAgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAgICAgYWJ1dFBhdCA9IC0xOyAvLyBFbmQgb2YgYW55IGFidXR0aW5nIGZpZWxkcworCisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIHF1b3Rlcy4gIFR3byBjb25zZWN1dGl2ZSBxdW90ZXMgaXMgYSBxdW90ZQorICAgICAgICAgICAgICAgIC8vIGxpdGVyYWwsIGluc2lkZSBvciBvdXRzaWRlIG9mIHF1b3Rlcy4gIE90aGVyd2lzZSBhCisgICAgICAgICAgICAgICAgLy8gcXVvdGUgaW5kaWNhdGVzIGVudHJ5IG9yIGV4aXQgZnJvbSBhIHF1b3RlZCByZWdpb24uCisgICAgICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWF0Y2ggYSBxdW90ZSBsaXRlcmFsICcnIHdpdGhpbiBPUiBvdXRzaWRlIG9mIHF1b3RlcworICAgICAgICAgICAgICAgICAgICBpZiAoKGkrMSk8cGF0dGVybi5sZW5ndGgoKSAmJiBwYXR0ZXJuLmNoYXJBdChpKzEpPT1jaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytpOyAvLyBTa2lwIG92ZXIgZG91YmxlZCBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIGFuZCB0cmVhdCBxdW90ZSBhcyBhIGxpdGVyYWwKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVudGVyIG9yIGV4aXQgcXVvdGVkIHJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9ICFpblF1b3RlOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBBIHJ1biBvZiB3aGl0ZSBzcGFjZSBpbiB0aGUgcGF0dGVybiBtYXRjaGVzIGEgcnVuCisgICAgICAgICAgICAgICAgLy8gb2Ygd2hpdGUgc3BhY2UgaW4gdGhlIGlucHV0IHRleHQuCisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIG92ZXIgcnVuIGluIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChpKzEpPHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKHBhdHRlcm4uY2hhckF0KGkrMSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIG92ZXIgcnVuIGluIGlucHV0IHRleHQKKyAgICAgICAgICAgICAgICAgICAgaW50IHMgPSBwb3M7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwb3M8dGV4dC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKHRleHQuY2hhckF0KHBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIE11c3Qgc2VlIGF0IGxlYXN0IG9uZSB3aGl0ZSBzcGFjZSBjaGFyIGluIGlucHV0CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPiBzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocG9zPHRleHQubGVuZ3RoKCkgJiYgdGV4dC5jaGFyQXQocG9zKT09Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWF0Y2ggYSBsaXRlcmFsCisgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBXZSBmYWxsIHRocm91Z2ggdG8gdGhpcyBwb2ludCBpZiB0aGUgbWF0Y2ggZmFpbHMKKyAgICAgICAgICAgICAgICBwYXJzZVBvcy5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICAgICAgcGFyc2VQb3Muc2V0RXJyb3JJbmRleChwb3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIGZpZWxkcyBvZiBDYWxlbmRhciBoYXZlIGJlZW4gc2V0LiAgQ2FsZW5kYXIKKyAgICAgICAgLy8gd2lsbCBmaWxsIGluIGRlZmF1bHQgdmFsdWVzIGZvciBtaXNzaW5nIGZpZWxkcyB3aGVuIHRoZSB0aW1lCisgICAgICAgIC8vIGlzIGNvbXB1dGVkLgorCisgICAgICAgIHBhcnNlUG9zLnNldEluZGV4KHBvcyk7CisKKyAgICAgICAgLy8gVGhpcyBwYXJ0IGlzIGEgcHJvYmxlbTogIFdoZW4gd2UgY2FsbCBwYXJzZWREYXRlLmFmdGVyLCB3ZSBjb21wdXRlIHRoZSB0aW1lLgorICAgICAgICAvLyBUYWtlIHRoZSBkYXRlIEFwcmlsIDMgMjAwNCBhdCAyOjMwIGFtLiAgV2hlbiB0aGlzIGlzIGZpcnN0IHNldCB1cCwgdGhlIHllYXIKKyAgICAgICAgLy8gd2lsbCBiZSB3cm9uZyBpZiB3ZSdyZSBwYXJzaW5nIGEgMi1kaWdpdCB5ZWFyIHBhdHRlcm4uICBJdCB3aWxsIGJlIDE5MDQuCisgICAgICAgIC8vIEFwcmlsIDMgMTkwNCBpcyBhIFN1bmRheSAodW5saWtlIDIwMDQpIHNvIGl0IGlzIHRoZSBEU1Qgb25zZXQgZGF5LiAgMjozMCBhbQorICAgICAgICAvLyBpcyB0aGVyZWZvcmUgYW4gImltcG9zc2libGUiIHRpbWUsIHNpbmNlIHRoZSB0aW1lIGdvZXMgZnJvbSAxOjU5IHRvIDM6MDAgYW0KKyAgICAgICAgLy8gb24gdGhhdCBkYXkuICBJdCBpcyB0aGVyZWZvcmUgcGFyc2VkIG91dCB0byBmaWVsZHMgYXMgMzozMCBhbS4gIFRoZW4gd2UKKyAgICAgICAgLy8gYWRkIDEwMCB5ZWFycywgYW5kIGdldCBBcHJpbCAzIDIwMDQgYXQgMzozMCBhbS4gIE5vdGUgdGhhdCBBcHJpbCAzIDIwMDQgaXMKKyAgICAgICAgLy8gYSBTYXR1cmRheSwgc28gaXQgY2FuIGhhdmUgYSAyOjMwIGFtIC0tIGFuZCBpdCBzaG91bGQuIFtMSVVdCisgICAgICAgIC8qCisgICAgICAgICAgRGF0ZSBwYXJzZWREYXRlID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICBpZiggYW1iaWd1b3VzWWVhclswXSAmJiAhcGFyc2VkRGF0ZS5hZnRlcihkZWZhdWx0Q2VudHVyeVN0YXJ0KSApIHsKKyAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEwMCk7CisgICAgICAgICAgcGFyc2VkRGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAvLyBCZWNhdXNlIG9mIHRoZSBhYm92ZSBjb25kaXRpb24sIHNhdmUgb2ZmIHRoZSBmaWVsZHMgaW4gY2FzZSB3ZSBuZWVkIHRvIHJlYWRqdXN0LgorICAgICAgICAvLyBUaGUgcHJvY2VkdXJlIHdlIHVzZSBoZXJlIGlzIG5vdCBwYXJ0aWN1bGFybHkgZWZmaWNpZW50LCBidXQgdGhlcmUgaXMgbm8gb3RoZXIKKyAgICAgICAgLy8gd2F5IHRvIGRvIHRoaXMgZ2l2ZW4gdGhlIEFQSSByZXN0cmljdGlvbnMgcHJlc2VudCBpbiBDYWxlbmRhci4gIFdlIG1pbmltaXplCisgICAgICAgIC8vIGluZWZmaWNpZW5jeSBieSBvbmx5IHBlcmZvcm1pbmcgdGhpcyBjb21wdXRhdGlvbiB3aGVuIGl0IG1pZ2h0IGFwcGx5LCB0aGF0IGlzLAorICAgICAgICAvLyB3aGVuIHRoZSB0d28tZGlnaXQgeWVhciBpcyBlcXVhbCB0byB0aGUgc3RhcnQgeWVhciwgYW5kIHRodXMgbWlnaHQgZmFsbCBhdCB0aGUKKyAgICAgICAgLy8gZnJvbnQgb3IgdGhlIGJhY2sgb2YgdGhlIGRlZmF1bHQgY2VudHVyeS4gIFRoaXMgb25seSB3b3JrcyBiZWNhdXNlIHdlIGFkanVzdAorICAgICAgICAvLyB0aGUgeWVhciBjb3JyZWN0bHkgdG8gc3RhcnQgd2l0aCBpbiBvdGhlciBjYXNlcyAtLSBzZWUgc3ViUGFyc2UoKS4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChhbWJpZ3VvdXNZZWFyWzBdIHx8IHBhcnNlZFRpbWVab25lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIGEgY29weSBvZiB0aGUgZmllbGRzLCBhbmQgd2UgbmVlZCB0byBhdm9pZCB0cmlnZ2VyaW5nIGEgY2FsbCB0bworICAgICAgICAgICAgICAgIC8vIGNvbXBsZXRlKCksIHdoaWNoIHdpbGwgcmVjYWxjdWxhdGUgdGhlIGZpZWxkcy4gIFNpbmNlIHdlIGNhbid0IGFjY2VzcworICAgICAgICAgICAgICAgIC8vIHRoZSBmaWVsZHNbXSBhcnJheSBpbiBDYWxlbmRhciwgd2UgY2xvbmUgdGhlIGVudGlyZSBvYmplY3QuICBUaGlzIHdpbGwKKyAgICAgICAgICAgICAgICAvLyBzdG9wIHdvcmtpbmcgaWYgQ2FsZW5kYXIuY2xvbmUoKSBpcyBldmVyIHJld3JpdHRlbiB0byBjYWxsIGNvbXBsZXRlKCkuCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY29weSA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAoYW1iaWd1b3VzWWVhclswXSkgeyAvLyB0aGUgdHdvLWRpZ2l0IHllYXIgPT0gdGhlIGRlZmF1bHQgc3RhcnQgeWVhcgorICAgICAgICAgICAgICAgICAgICBEYXRlIHBhcnNlZERhdGUgPSBjb3B5LmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuYmVmb3JlKGRlZmF1bHRDZW50dXJ5U3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCB1c2UgYWRkIGhlcmUgYmVjYXVzZSB0aGF0IGRvZXMgYSBjb21wbGV0ZSgpIGZpcnN0LgorICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCBkZWZhdWx0Q2VudHVyeVN0YXJ0WWVhciArIDEwMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VkVGltZVpvbmUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IHBhcnNlZFRpbWVab25lOworCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYWxlbmRhciByZXByZXNlbnRzIHRoZSBwYXJzZSBhcyBnbXQgdGltZQorICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHR1cm4gdGhpcyBpbnRvIGxvY2FsIHRpbWUsIHNvIHdlIGFkZCB0aGUgcmF3IG9mZnNldAorICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFzayB0aGUgdGltZXpvbmUgdG8gaGFuZGxlIHRoaXMgbG9jYWwgdGltZQorICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXRzID0gbmV3IGludFsyXTsKKyAgICAgICAgICAgICAgICAgICAgdHouZ2V0T2Zmc2V0KGNvcHkuZ2V0VGltZUluTWlsbGlzKCkrdHouZ2V0UmF3T2Zmc2V0KCksIHRydWUsIG9mZnNldHMpOworCisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIG9mZnNldHNbMF0pOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRTVF9PRkZTRVQsIG9mZnNldHNbMV0pOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0VGltZVpvbmUodHopOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBBbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2lsbCBiZSB0aHJvd24gYnkgQ2FsZW5kYXIuZ2V0VGltZSgpCisgICAgICAgIC8vIGlmIGFueSBmaWVsZHMgYXJlIG91dCBvZiByYW5nZSwgZS5nLiwgTU9OVEggPT0gMTcuCisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcGFyc2VQb3Muc2V0RXJyb3JJbmRleChwb3MpOworICAgICAgICAgICAgcGFyc2VQb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCB0byBtYXRjaCB0aGUgdGV4dCBhdCBhIGdpdmVuIHBvc2l0aW9uIGFnYWluc3QgYW4gYXJyYXkgb2YKKyAgICAgKiBzdHJpbmdzLiAgU2luY2UgbXVsdGlwbGUgc3RyaW5ncyBpbiB0aGUgYXJyYXkgbWF5IG1hdGNoIChmb3IKKyAgICAgKiBleGFtcGxlLCBpZiB0aGUgYXJyYXkgY29udGFpbnMgImEiLCAiYWIiLCBhbmQgImFiYyIsIGFsbCB3aWxsIG1hdGNoCisgICAgICogdGhlIGlucHV0IHN0cmluZyAiYWJjZCIpIHRoZSBsb25nZXN0IG1hdGNoIGlzIHJldHVybmVkLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCB0aGUgZ2l2ZW4gZmllbGQgb2YgPGNvZGU+Y2FsPC9jb2RlPiBpcyBzZXQgdG8gdGhlIGluZGV4CisgICAgICogb2YgdGhlIGJlc3QgbWF0Y2gsIGlmIHRoZXJlIGlzIG9uZS4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGltZSB0ZXh0IGJlaW5nIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgd2hlcmUgdG8gc3RhcnQgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGRhdGUgZmllbGQgYmVpbmcgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkYXRhIHRoZSBzdHJpbmcgYXJyYXkgdG8gcGFyc2VkLgorICAgICAqIEByZXR1cm4gdGhlIG5ldyBzdGFydCBwb3NpdGlvbiBpZiBtYXRjaGluZyBzdWNjZWVkZWQ7IGEgbmVnYXRpdmUKKyAgICAgKiBudW1iZXIgaW5kaWNhdGluZyBtYXRjaGluZyBmYWlsdXJlLCBvdGhlcndpc2UuICBBcyBhIHNpZGUgZWZmZWN0LAorICAgICAqIHNldHMgdGhlIDxjb2RlPmNhbDwvY29kZT4gZmllbGQgPGNvZGU+ZmllbGQ8L2NvZGU+IHRvIHRoZSBpbmRleAorICAgICAqIG9mIHRoZSBiZXN0IG1hdGNoLCBpZiBtYXRjaGluZyBzdWNjZWVkZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBtYXRjaFN0cmluZyhTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBpbnQgZmllbGQsIFN0cmluZ1tdIGRhdGEsIENhbGVuZGFyIGNhbCkKKyAgICB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gZGF0YS5sZW5ndGg7CisKKyAgICAgICAgaWYgKGZpZWxkID09IENhbGVuZGFyLkRBWV9PRl9XRUVLKSBpID0gMTsKKworICAgICAgICAvLyBUaGVyZSBtYXkgYmUgbXVsdGlwbGUgc3RyaW5ncyBpbiB0aGUgZGF0YVtdIGFycmF5IHdoaWNoIGJlZ2luIHdpdGgKKyAgICAgICAgLy8gdGhlIHNhbWUgcHJlZml4IChlLmcuLCBDZXJ2ZW4gYW5kIENlcnZlbmVjIChKdW5lIGFuZCBKdWx5KSBpbiBDemVjaCkuCisgICAgICAgIC8vIFdlIGtlZXAgdHJhY2sgb2YgdGhlIGxvbmdlc3QgbWF0Y2gsIGFuZCByZXR1cm4gdGhhdC4gIE5vdGUgdGhhdCB0aGlzCisgICAgICAgIC8vIHVuZm9ydHVuYXRlbHkgcmVxdWlyZXMgdXMgdG8gdGVzdCBhbGwgYXJyYXkgZWxlbWVudHMuCisgICAgICAgIGludCBiZXN0TWF0Y2hMZW5ndGggPSAwLCBiZXN0TWF0Y2ggPSAtMTsKKyAgICAgICAgZm9yICg7IGk8Y291bnQ7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gZGF0YVtpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAvLyBBbHdheXMgY29tcGFyZSBpZiB3ZSBoYXZlIG5vIG1hdGNoIHlldDsgb3RoZXJ3aXNlIG9ubHkgY29tcGFyZQorICAgICAgICAgICAgICAgIC8vIGFnYWluc3QgcG90ZW50aWFsbHkgYmV0dGVyIG1hdGNoZXMgKGxvbmdlciBzdHJpbmdzKS4KKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID4gYmVzdE1hdGNoTGVuZ3RoICYmCisgICAgICAgICAgICAgICAgICAgIHRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgZGF0YVtpXSwgMCwgbGVuZ3RoKSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaExlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBpZiAoYmVzdE1hdGNoID49IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZCwgYmVzdE1hdGNoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQgKyBiZXN0TWF0Y2hMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCB0byBtYXRjaCB0aGUgdGV4dCBhdCBhIGdpdmVuIHBvc2l0aW9uIGFnYWluc3QgYW4gYXJyYXkgb2YgcXVhcnRlcgorICAgICAqIHN0cmluZ3MuICBTaW5jZSBtdWx0aXBsZSBzdHJpbmdzIGluIHRoZSBhcnJheSBtYXkgbWF0Y2ggKGZvcgorICAgICAqIGV4YW1wbGUsIGlmIHRoZSBhcnJheSBjb250YWlucyAiYSIsICJhYiIsIGFuZCAiYWJjIiwgYWxsIHdpbGwgbWF0Y2gKKyAgICAgKiB0aGUgaW5wdXQgc3RyaW5nICJhYmNkIikgdGhlIGxvbmdlc3QgbWF0Y2ggaXMgcmV0dXJuZWQuICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIHRoZSBnaXZlbiBmaWVsZCBvZiA8Y29kZT5jYWw8L2NvZGU+IGlzIHNldCB0byB0aGUgaW5kZXgKKyAgICAgKiBvZiB0aGUgYmVzdCBtYXRjaCwgaWYgdGhlcmUgaXMgb25lLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0aW1lIHRleHQgYmVpbmcgcGFyc2VkLgorICAgICAqIEBwYXJhbSBzdGFydCB3aGVyZSB0byBzdGFydCBwYXJzaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZGF0ZSBmaWVsZCBiZWluZyBwYXJzZWQuCisgICAgICogQHBhcmFtIGRhdGEgdGhlIHN0cmluZyBhcnJheSB0byBwYXJzZWQuCisgICAgICogQHJldHVybiB0aGUgbmV3IHN0YXJ0IHBvc2l0aW9uIGlmIG1hdGNoaW5nIHN1Y2NlZWRlZDsgYSBuZWdhdGl2ZQorICAgICAqIG51bWJlciBpbmRpY2F0aW5nIG1hdGNoaW5nIGZhaWx1cmUsIG90aGVyd2lzZS4gIEFzIGEgc2lkZSBlZmZlY3QsCisgICAgICogc2V0cyB0aGUgPGNvZGU+Y2FsPC9jb2RlPiBmaWVsZCA8Y29kZT5maWVsZDwvY29kZT4gdG8gdGhlIGluZGV4CisgICAgICogb2YgdGhlIGJlc3QgbWF0Y2gsIGlmIG1hdGNoaW5nIHN1Y2NlZWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG1hdGNoUXVhcnRlclN0cmluZyhTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBpbnQgZmllbGQsIFN0cmluZ1tdIGRhdGEsIENhbGVuZGFyIGNhbCkKKyAgICB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gZGF0YS5sZW5ndGg7CisKKyAgICAgICAgLy8gVGhlcmUgbWF5IGJlIG11bHRpcGxlIHN0cmluZ3MgaW4gdGhlIGRhdGFbXSBhcnJheSB3aGljaCBiZWdpbiB3aXRoCisgICAgICAgIC8vIHRoZSBzYW1lIHByZWZpeCAoZS5nLiwgQ2VydmVuIGFuZCBDZXJ2ZW5lYyAoSnVuZSBhbmQgSnVseSkgaW4gQ3plY2gpLgorICAgICAgICAvLyBXZSBrZWVwIHRyYWNrIG9mIHRoZSBsb25nZXN0IG1hdGNoLCBhbmQgcmV0dXJuIHRoYXQuICBOb3RlIHRoYXQgdGhpcworICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5IHJlcXVpcmVzIHVzIHRvIHRlc3QgYWxsIGFycmF5IGVsZW1lbnRzLgorICAgICAgICBpbnQgYmVzdE1hdGNoTGVuZ3RoID0gMCwgYmVzdE1hdGNoID0gLTE7CisgICAgICAgIGZvciAoOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBkYXRhW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgLy8gQWx3YXlzIGNvbXBhcmUgaWYgd2UgaGF2ZSBubyBtYXRjaCB5ZXQ7IG90aGVyd2lzZSBvbmx5IGNvbXBhcmUKKyAgICAgICAgICAgIC8vIGFnYWluc3QgcG90ZW50aWFsbHkgYmV0dGVyIG1hdGNoZXMgKGxvbmdlciBzdHJpbmdzKS4KKyAgICAgICAgICAgIGlmIChsZW5ndGggPiBiZXN0TWF0Y2hMZW5ndGggJiYKKyAgICAgICAgICAgICAgICB0ZXh0LnJlZ2lvbk1hdGNoZXModHJ1ZSwgc3RhcnQsIGRhdGFbaV0sIDAsIGxlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICBiZXN0TWF0Y2ggPSBpOworICAgICAgICAgICAgICAgIGJlc3RNYXRjaExlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGJlc3RNYXRjaCA+PSAwKSB7CisgICAgICAgICAgICBjYWwuc2V0KGZpZWxkLCBiZXN0TWF0Y2ggKiAzKTsKKyAgICAgICAgICAgIHJldHVybiBzdGFydCArIGJlc3RNYXRjaExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogZmluZCB0aW1lIHpvbmUgJ3RleHQnIG1hdGNoZWQgem9uZVN0cmluZ3MgYW5kIHNldCBjYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzdWJQYXJzZVpvbmVTdHJpbmcoU3RyaW5nIHRleHQsIGludCBzdGFydCwgQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGNoZWNrIGZvciBuYW1lZCB0aW1lIHpvbmVzIGJ5IGxvb2tpbmcgdGhyb3VnaAorICAgICAgICAvLyB0aGUgbG9jYWxlIGRhdGEgZnJvbSB0aGUgRGF0ZUZvcm1hdFpvbmVEYXRhIHN0cmluZ3MuCisgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorCisgICAgICAgIC8vIG9wdGltaXplIGZvciBjYWxlbmRhcidzIGN1cnJlbnQgdGltZSB6b25lCisgICAgICAgIFRpbWVab25lIHR6ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHppZCA9IG51bGwsIHZhbHVlID0gbnVsbDsKKyAgICAgICAgaW50IHR5cGUgPSAtMTsKKworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scy5ab25lSXRlbSBpdGVtID0gZm9ybWF0RGF0YS5maW5kWm9uZUlEVHlwZVZhbHVlKHRleHQsIHN0YXJ0KTsKKyAgICAgICAgaWYgKGl0ZW0gIT0gbnVsbCkgeworICAgICAgICAgICAgemlkID0gaXRlbS56aWQ7CisgICAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7CisgICAgICAgICAgICB0eXBlID0gaXRlbS50eXBlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHppZCAhPSBudWxsKSB7CisgICAgICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKHppZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0eiAhPSBudWxsKSB7IC8vIE1hdGNoZWQgYW55ID8KKyAgICAgICAgICAgIC8vIGFsd2F5cyBzZXQgem9uZSBvZmZzZXQsIG5lZWRlZCB0byBnZXQgY29ycmVjdCBob3VyIGluIHdhbGwgdGltZQorICAgICAgICAgICAgLy8gd2hlbiBjaGVja2luZyBkYXlsaWdodCBzYXZpbmdzCisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VULCB0ei5nZXRSYXdPZmZzZXQoKSk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9TSE9SVF9TVEFOREFSRAorICAgICAgICAgICAgICAgICAgICB8fCB0eXBlID09IERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0xPTkdfU1RBTkRBUkQpIHsKKyAgICAgICAgICAgICAgICAvLyBzdGFuZGFyZCB0aW1lCisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EU1RfT0ZGU0VULCAwKTsKKyAgICAgICAgICAgICAgICB0eiA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfU0hPUlRfREFZTElHSFQKKyAgICAgICAgICAgICAgICAgICAgfHwgdHlwZSA9PSBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9MT05HX0RBWUxJR0hUKSB7CisgICAgICAgICAgICAgICAgLy8gZGF5bGlnaHQgdGltZQorICAgICAgICAgICAgICAgIC8vIHVzZSB0aGUgY29ycmVjdCBEU1QgU0FWSU5HUyBmb3IgdGhlIHpvbmUuCisgICAgICAgICAgICAgICAgLy8gY2FsLnNldChVQ0FMX0RTVF9PRkZTRVQsIHR6LT5nZXREU1RTYXZpbmdzKCkpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCwgbWlsbGlzUGVySG91cik7CisgICAgICAgICAgICAgICAgdHogPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBlaXRoZXIgc3RhbmRhcmQgb3IgZGF5bGlnaHQKKyAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGZpbmlzaCBnZXR0aW5nIHRoZSBkYXRlLCB0aGVuIGNvbXB1dGUgZHN0IG9mZnNldCBhcworICAgICAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlCisgICAgICAgICAgICAgICAgcGFyc2VkVGltZVpvbmUgPSB0ejsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQgKyB2YWx1ZS5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBjb21wbGV0ZSBmYWlsdXJlCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb3RlY3RlZCBtZXRob2QgdGhhdCBjb252ZXJ0cyBvbmUgZmllbGQgb2YgdGhlIGlucHV0IHN0cmluZyBpbnRvIGEKKyAgICAgKiBudW1lcmljIGZpZWxkIHZhbHVlIGluIDxjb2RlPmNhbDwvY29kZT4uICBSZXR1cm5zIC1zdGFydCAoZm9yCisgICAgICogUGFyc2VQb3NpdGlvbikgaWYgZmFpbGVkLiAgU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8KKyAgICAgKiBtb2RpZnkgb3IgYWRkIHBhcnNpbmcgY2FwYWJpbGl0aWVzLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0aW1lIHRleHQgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBzdGFydCB3aGVyZSB0byBzdGFydCBwYXJzaW5nLgorICAgICAqIEBwYXJhbSBjaCB0aGUgcGF0dGVybiBjaGFyYWN0ZXIgZm9yIHRoZSBkYXRlIGZpZWxkIHRleHQgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgY291bnQgb2YgYSBwYXR0ZXJuIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gb2JleUNvdW50IGlmIHRydWUsIHRoZW4gdGhlIG5leHQgZmllbGQgZGlyZWN0bHkgYWJ1dHMgdGhpcyBvbmUsCisgICAgICogYW5kIHdlIHNob3VsZCB1c2UgdGhlIGNvdW50IHRvIGtub3cgd2hlbiB0byBzdG9wIHBhcnNpbmcuCisgICAgICogQHBhcmFtIGFtYmlndW91c1llYXIgcmV0dXJuIHBhcmFtZXRlcjsgdXBvbiByZXR1cm4sIGlmIGFtYmlndW91c1llYXJbMF0KKyAgICAgKiBpcyB0cnVlLCB0aGVuIGEgdHdvLWRpZ2l0IHllYXIgd2FzIHBhcnNlZCBhbmQgbWF5IG5lZWQgdG8gYmUgcmVhZGp1c3RlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgc3RhcnQgcG9zaXRpb24gaWYgbWF0Y2hpbmcgc3VjY2VlZGVkOyBhIG5lZ2F0aXZlCisgICAgICogbnVtYmVyIGluZGljYXRpbmcgbWF0Y2hpbmcgZmFpbHVyZSwgb3RoZXJ3aXNlLiAgQXMgYSBzaWRlIGVmZmVjdCwKKyAgICAgKiBzZXQgdGhlIGFwcHJvcHJpYXRlIGZpZWxkIG9mIDxjb2RlPmNhbDwvY29kZT4gd2l0aCB0aGUgcGFyc2VkCisgICAgICogdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBzdWJQYXJzZShTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBjaGFyIGNoLCBpbnQgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIG9iZXlDb3VudCwgYm9vbGVhbiBhbGxvd05lZ2F0aXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbltdIGFtYmlndW91c1llYXIsIENhbGVuZGFyIGNhbCkKKyAgICB7CisgICAgICAgIE51bWJlciBudW1iZXIgPSBudWxsOworICAgICAgICBpbnQgdmFsdWUgPSAwOworICAgICAgICBpbnQgaTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgaW50IHBhdHRlcm5DaGFySW5kZXggPSBEYXRlRm9ybWF0U3ltYm9scy5wYXR0ZXJuQ2hhcnMuaW5kZXhPZihjaCk7CisKKyAgICAgICAgaWYgKHBhdHRlcm5DaGFySW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZmllbGQgPSBQQVRURVJOX0lOREVYX1RPX0NBTEVOREFSX0ZJRUxEW3BhdHRlcm5DaGFySW5kZXhdOworCisgICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgc3BhY2VzIGhlcmUsIHNraXAgb3ZlciB0aGVtLiAgSWYgd2UgaGl0IHRoZSBlbmQKKyAgICAgICAgLy8gb2YgdGhlIHN0cmluZywgdGhlbiBmYWlsLgorICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPj0gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdCh0ZXh0LCBzdGFydCk7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICB9CisgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCk7CisKKyAgICAgICAgLy8gV2UgaGFuZGxlIGEgZmV3IHNwZWNpYWwgY2FzZXMgaGVyZSB3aGVyZSB3ZSBuZWVkIHRvIHBhcnNlCisgICAgICAgIC8vIGEgbnVtYmVyIHZhbHVlLiAgV2UgaGFuZGxlIGZ1cnRoZXIsIG1vcmUgZ2VuZXJpYyBjYXNlcyBiZWxvdy4gIFdlIG5lZWQKKyAgICAgICAgLy8gdG8gaGFuZGxlIHNvbWUgb2YgdGhlbSBoZXJlIGJlY2F1c2Ugc29tZSBmaWVsZHMgcmVxdWlyZSBleHRyYSBwcm9jZXNzaW5nIG9uCisgICAgICAgIC8vIHRoZSBwYXJzZWQgdmFsdWUuCisgICAgICAgIGlmIChwYXR0ZXJuQ2hhckluZGV4ID09IDQgLypIT1VSX09GX0RBWTFfRklFTEQqLyB8fAorICAgICAgICAgICAgcGF0dGVybkNoYXJJbmRleCA9PSAxNSAvKkhPVVIxX0ZJRUxEKi8gfHwKKyAgICAgICAgICAgIChwYXR0ZXJuQ2hhckluZGV4ID09IDIgLypNT05USF9GSUVMRCovICYmIGNvdW50IDw9IDIpIHx8CisgICAgICAgICAgICBwYXR0ZXJuQ2hhckluZGV4ID09IDEgfHwKKyAgICAgICAgICAgIHBhdHRlcm5DaGFySW5kZXggPT0gOCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBJdCB3b3VsZCBiZSBnb29kIHRvIHVuaWZ5IHRoaXMgd2l0aCB0aGUgb2JleUNvdW50IGxvZ2ljIGJlbG93LAorICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGF0J3MgZ29pbmcgdG8gYmUgZGlmZmljdWx0LgorICAgICAgICAgICAgICAgIGlmIChvYmV5Q291bnQpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoc3RhcnQrY291bnQpID4gdGV4dC5sZW5ndGgoKSkgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IHBhcnNlSW50KHRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0K2NvdW50KSwgcG9zLCBhbGxvd05lZ2F0aXZlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgbnVtYmVyID0gcGFyc2VJbnQodGV4dCwgcG9zLCBhbGxvd05lZ2F0aXZlKTsKKyAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBudW1iZXIuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKHBhdHRlcm5DaGFySW5kZXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlIDA6IC8vICdHJyAtIEVSQQorICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSA0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuRVJBLCBmb3JtYXREYXRhLmVyYU5hbWVzLCBjYWwpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuRVJBLCBmb3JtYXREYXRhLmVyYXMsIGNhbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAxOiAvLyAneScgLSBZRUFSCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIDMgb3IgbW9yZSBZRUFSIHBhdHRlcm4gY2hhcmFjdGVycywgdGhpcyBpbmRpY2F0ZXMKKyAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZSB5ZWFyIHZhbHVlIGlzIHRvIGJlIHRyZWF0ZWQgbGl0ZXJhbGx5LCB3aXRob3V0IGFueQorICAgICAgICAgICAgICAgIC8vIHR3by1kaWdpdCB5ZWFyIGFkanVzdG1lbnRzIChlLmcuLCBmcm9tICIwMSIgdG8gMjAwMSkuICBPdGhlcndpc2UKKyAgICAgICAgICAgICAgICAvLyB3ZSBtYWRlIGFkanVzdG1lbnRzIHRvIHBsYWNlIHRoZSAyLWRpZ2l0IHllYXIgaW4gdGhlIHByb3BlcgorICAgICAgICAgICAgICAgIC8vIGNlbnR1cnksIGZvciBwYXJzZWQgc3RyaW5ncyBmcm9tICIwMCIgdG8gIjk5Ii4gIEFueSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBpcyB0cmVhdGVkIGxpdGVyYWxseTogICIyMjUwIiwgIi0xIiwgIjEiLCAiMDAyIi4KKyAgICAgICAgICAgICAgICAvKiAneXknIGlzIHRoZSBvbmx5IHNwZWNpYWwgY2FzZSwgJ3knIGlzIGludGVycHJldGVkIGFzIG51bWJlci4gW1JpY2hhcmQvR0NMXSovCisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIgJiYgKHBvcy5nZXRJbmRleCgpIC0gc3RhcnQpID09IDIKKyAgICAgICAgICAgICAgICAgICAgJiYgQ2hhcmFjdGVyLmlzRGlnaXQodGV4dC5jaGFyQXQoc3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAmJiBDaGFyYWN0ZXIuaXNEaWdpdCh0ZXh0LmNoYXJBdChzdGFydCsxKSkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzc3VtZSBmb3IgZXhhbXBsZSB0aGF0IHRoZSBkZWZhdWx0Q2VudHVyeVN0YXJ0IGlzIDYvMTgvMTkwMy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0d28tZGlnaXQgeWVhcnMgd2lsbCBiZSBmb3JjZWQgaW50byB0aGUgcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIDYvMTgvMTkwMyB0byA2LzE3LzIwMDMuICBBcyBhIHJlc3VsdCwgeWVhcnMgMDAsIDAxLCBhbmQgMDIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvcnJlc3BvbmQgdG8gMjAwMCwgMjAwMSwgYW5kIDIwMDIuICBZZWFycyAwNCwgMDUsIGV0Yy4gY29ycmVzcG9uZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gMTkwNCwgMTkwNSwgZXRjLiAgSWYgdGhlIHllYXIgaXMgMDMsIHRoZW4gaXQgaXMgMjAwMyBpZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyIGZpZWxkcyBzcGVjaWZ5IGEgZGF0ZSBiZWZvcmUgNi8xOCwgb3IgMTkwMyBpZiB0aGV5IHNwZWNpZnkgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0ZSBhZnRlcndhcmRzLiAgQXMgYSByZXN1bHQsIDAzIGlzIGFuIGFtYmlndW91cyB5ZWFyLiAgQWxsIG90aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0d28tZGlnaXQgeWVhcnMgYXJlIHVuYW1iaWd1b3VzLgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFtYmlndW91c1R3b0RpZ2l0WWVhciA9IGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyICUgMTAwOworICAgICAgICAgICAgICAgICAgICAgICAgYW1iaWd1b3VzWWVhclswXSA9IHZhbHVlID09IGFtYmlndW91c1R3b0RpZ2l0WWVhcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9IChkZWZhdWx0Q2VudHVyeVN0YXJ0WWVhci8xMDApKjEwMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlIDwgYW1iaWd1b3VzVHdvRGlnaXRZZWFyID8gMTAwIDogMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBjYXNlIDI6IC8vICdNJyAtIE1PTlRICisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDw9IDIpIC8vIGkuZS4sIE0gb3IgTU0uCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IHdhbnQgdG8gcGFyc2UgdGhlIG1vbnRoIGlmIGl0IGlzIGEgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGlsZSBwYXR0ZXJuIHVzZXMgbnVtZXJpYyBzdHlsZTogTSBvciBNTS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFtXZSBjb21wdXRlZCAndmFsdWUnIGFib3ZlLl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIHZhbHVlIC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50ID49IDMgLy8gaS5lLiwgTU1NIG9yIE1NTU0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJ5IGNvdW50ID09IDQgZmlyc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLm1vbnRocywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBjb3VudCA9PSA0IGZhaWxlZCwgbm93IHRyeSBjb3VudCA9PSAzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5zaG9ydE1vbnRocywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAyNjogLy8gJ0wnIC0gU1RBTkRfQUxPTkVfTU9OVEgKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPD0gMikgLy8gaS5lLiwgTSBvciBNTS4KKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgd2FudCB0byBwYXJzZSB0aGUgbW9udGggaWYgaXQgaXMgYSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWxlIHBhdHRlcm4gdXNlcyBudW1lcmljIHN0eWxlOiBNIG9yIE1NLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gW1dlIGNvbXB1dGVkICd2YWx1ZScgYWJvdmUuXQorICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgdmFsdWUgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgPj0gMyAvLyBpLmUuLCBNTU0gb3IgTU1NTQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcnkgY291bnQgPT0gNCBmaXJzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdTdGFydCA9IG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc3RhbmRhbG9uZU1vbnRocywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBjb3VudCA9PSA0IGZhaWxlZCwgbm93IHRyeSBjb3VudCA9PSAzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5zdGFuZGFsb25lU2hvcnRNb250aHMsIGNhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgNDogLy8gJ2snIC0gSE9VUl9PRl9EQVkgKDEuLjI0KQorICAgICAgICAgICAgICAgIC8vIFtXZSBjb21wdXRlZCAndmFsdWUnIGFib3ZlLl0KKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gY2FsLmdldE1heGltdW0oQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKzEpIHZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgY2FzZSA4OiAvLyAnUycgLSBGUkFDVElPTkFMX1NFQ09ORAorICAgICAgICAgICAgICAgIC8vIEZyYWN0aW9uYWwgc2Vjb25kcyBsZWZ0LWp1c3RpZnkKKyAgICAgICAgICAgICAgICBpID0gcG9zLmdldEluZGV4KCkgLSBzdGFydDsKKyAgICAgICAgICAgICAgICBpZiAoaSA8IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCAzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBhID0gMTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPiAzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhICo9IDEwOworICAgICAgICAgICAgICAgICAgICAgICAgaS0tOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKHZhbHVlICsgKGE+PjEpKSAvIGE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBjYXNlIDk6IHsgLy8gJ0UnIC0gREFZX09GX1dFRUsKKyAgICAgICAgICAgICAgICAvLyBXYW50IHRvIGJlIGFibGUgdG8gcGFyc2UgYm90aCBzaG9ydCBhbmQgbG9uZyBmb3Jtcy4KKyAgICAgICAgICAgICAgICAvLyBUcnkgY291bnQgPT0gNCAoRUVFRSkgZmlyc3Q6CisgICAgICAgICAgICAgICAgaW50IG5ld1N0YXJ0ID0gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLkRBWV9PRl9XRUVLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEud2Vla2RheXMsIGNhbCk7CisgICAgICAgICAgICAgICAgaWYgKG5ld1N0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gRUVFRSBmYWlsZWQsIG5vdyB0cnkgRUVFCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnNob3J0V2Vla2RheXMsIGNhbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAyNTogeyAvLyAnYycgLSBTVEFORF9BTE9ORV9EQVlfT0ZfV0VFSworICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgIC8vIFRyeSBjb3VudCA9PSA0IChjY2NjKSBmaXJzdDoKKyAgICAgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5zdGFuZGFsb25lV2Vla2RheXMsIGNhbCk7CisgICAgICAgICAgICAgICAgaWYgKG5ld1N0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gY2NjYyBmYWlsZWQsIG5vdyB0cnkgY2NjCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzLCBjYWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgMTQ6IC8vICdhJyAtIEFNX1BNCisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5BTV9QTSwgZm9ybWF0RGF0YS5hbXBtcywgY2FsKTsKKyAgICAgICAgICAgIGNhc2UgMTU6IC8vICdoJyAtIEhPVVIgKDEuLjEyKQorICAgICAgICAgICAgICAgIC8vIFtXZSBjb21wdXRlZCAndmFsdWUnIGFib3ZlLl0KKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gY2FsLmdldExlYXN0TWF4aW11bShDYWxlbmRhci5IT1VSKSsxKSB2YWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgY2FzZSAxNzogLy8gJ3onIC0gWk9ORV9PRkZTRVQKKyAgICAgICAgICAgIGNhc2UgMjM6IC8vICdaJyAtIFRJTUVaT05FX1JGQworICAgICAgICAgICAgY2FzZSAyNDogLy8gJ3YnIC0gVElNRVpPTkVfR0VORVJJQworICAgICAgICAgICAgICAgIC8vIEZpcnN0IHRyeSB0byBwYXJzZSBnZW5lcmljIGZvcm1zIHN1Y2ggYXMgR01ULTA3OjAwLiBEbyB0aGlzIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gaW4gY2FzZSBsb2NhbGl6ZWQgRGF0ZUZvcm1hdFpvbmVEYXRhIGNvbnRhaW5zIHRoZSBzdHJpbmcgIkdNVCIKKyAgICAgICAgICAgICAgICAvLyBmb3IgYSB6b25lOyBpbiB0aGF0IGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gbWF0Y2ggdGhlIGZpcnN0IHRocmVlCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBvZiBHTVQrLy1ISDpNTSBldGMuCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgc2lnbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQ7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gRm9yIHRpbWUgem9uZXMgdGhhdCBoYXZlIG5vIGtub3duIG5hbWVzLCBsb29rIGZvciBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBmb3JtOgorICAgICAgICAgICAgICAgICAgICAvLyAgICBHTVRbKy1daG91cnM6bWludXRlcyBvcgorICAgICAgICAgICAgICAgICAgICAvLyAgICBHTVRbKy1daGhtbSBvcgorICAgICAgICAgICAgICAgICAgICAvLyAgICBHTVQuCisgICAgICAgICAgICAgICAgICAgIGlmICgodGV4dC5sZW5ndGgoKSAtIHN0YXJ0KSA+PSBHTVQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgR01ULCAwLCBHTVQubGVuZ3RoKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCwgMCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQgKyBHTVQubGVuZ3RoKCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsgLy8gdHJ5LWNhdGNoIGZvciAiR01UIiBvbmx5IHRpbWUgem9uZSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0ZXh0LmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnKyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICctJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ24gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VULCAwICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb29rIGZvciBob3VyczptaW51dGVzIG9yIGhobW0uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyIHR6TnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHR6TnVtYmVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHBvcy5nZXRJbmRleCgpIDwgdGV4dC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgPT0gJzonICkgeworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGhvdXJzOm1pbnV0ZXMgY2FzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0ek51bWJlci5pbnRWYWx1ZSgpICogNjA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChwb3MuZ2V0SW5kZXgoKSArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ek51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggdHpOdW1iZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdHpOdW1iZXIuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGhobW0gY2FzZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gdHpOdW1iZXIuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXNzdW1lICItMjMiLi4iKzIzIiByZWZlcnMgdG8gaG91cnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBvZmZzZXQgPCAyNCAmJiAocG9zLmdldEluZGV4KCkgLSBzdCkgPD0gMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAqPSA2MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9kbzogdGhpcyBsb29rcyBxdWVzdGlvbmFibGUsIHNob3VsZCBoYXZlIG1vcmUgZXJyb3IgY2hlY2tpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IG9mZnNldCAlIDEwMCArIG9mZnNldCAvIDEwMCAqIDYwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCBmb3IgZmluYWwgcHJvY2Vzc2luZyBiZWxvdyBvZiAnb2Zmc2V0JyBhbmQgJ3NpZ24nLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGNoZWNrIGZvciBuYW1lZCB0aW1lIHpvbmVzIGJ5IGxvb2tpbmcgdGhyb3VnaAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGxvY2FsZSBkYXRhIGZyb20gdGhlIERhdGVGb3JtYXRab25lRGF0YSBzdHJpbmdzLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpID0gc3ViUGFyc2Vab25lU3RyaW5nKHRleHQsIHN0YXJ0LCBjYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXMgYSBsYXN0IHJlc29ydCwgbG9vayBmb3IgbnVtZXJpYyB0aW1lem9uZXMgb2YgdGhlIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFsrLV1oaG1tIGFzIHNwZWNpZmllZCBieSBSRkMgODIyLiAgVGhpcyBjb2RlIGlzIGFjdHVhbGx5CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGxpdHRsZSBtb3JlIHBlcm1pc3NpdmUgdGhhbiBSRkMgODIyLiAgSXQgd2lsbCB0cnkgdG8gZG8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0cyBiZXN0IHdpdGggbnVtYmVycyB0aGF0IGFyZW4ndCBzdHJpY3RseSA0IGRpZ2l0cyBsb25nLgorICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMjIyM7LSMjIyMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZtdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyIHR6TnVtYmVyID0gZm10LnBhcnNlKCB0ZXh0LCBwb3MgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCB0ek51bWJlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsgICAvLyBXYXNuJ3QgYWN0dWFsbHkgYSBudW1iZXIuCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0ek51bWJlci5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiggb2Zmc2V0IDwgMCApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzc3VtZSAiLTIzIi4uIisyMyIgcmVmZXJzIHRvIGhvdXJzLiBMZW5ndGggaW5jbHVkZXMgc2lnbi4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBvZmZzZXQgPCAyNCAmJiAocG9zLmdldEluZGV4KCkgLSBzdGFydCkgPD0gMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBvZmZzZXQgKiA2MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBvZmZzZXQgJSAxMDAgKyBvZmZzZXQgLyAxMDAgKiA2MDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIGZvciBmaW5hbCBwcm9jZXNzaW5nIGJlbG93IG9mICdvZmZzZXQnIGFuZCAnc2lnbicuCisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBEbyB0aGUgZmluYWwgcHJvY2Vzc2luZyBmb3IgYm90aCBvZiB0aGUgYWJvdmUgY2FzZXMuICBXZSBvbmx5CisgICAgICAgICAgICAgICAgICAgIC8vIGFycml2ZSBoZXJlIGlmIHRoZSBmb3JtIEdNVCsvLS4uLiBvciBhbiBSRkMgODIyIGZvcm0gd2FzIHNlZW4uCisKKyAgICAgICAgICAgICAgICAgICAgLy8gYXNzZXJ0IChzaWduICE9IDApIDogc2lnbjsgLy8gZW5hYmxlIHdoZW4gZ3VhcmFudGVlZCBKREsgPj0gMS40CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCAqPSBtaWxsaXNQZXJNaW51dGUgKiBzaWduOworCisgICAgICAgICAgICAgICAgICAgIGlmIChjYWwuZ2V0VGltZVpvbmUoKS51c2VEYXlsaWdodFRpbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRTVF9PRkZTRVQsIG1pbGxpc1BlckhvdXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAtPSBtaWxsaXNQZXJIb3VyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VULCBvZmZzZXQpOworCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIDI3OiAvLyAnUScgLSBRVUFSVEVSCisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDw9IDIpIC8vIGkuZS4sIFEgb3IgUVEuCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCB3YW50IHRvIHBhcnNlIHRoZSBxdWFydGVyIGlmIGl0IGlzIGEgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgIC8vIHdoaWxlIHBhdHRlcm4gdXNlcyBudW1lcmljIHN0eWxlOiBRIG9yIFFRLgorICAgICAgICAgICAgICAgICAgICAvLyBbV2UgY29tcHV0ZWQgJ3ZhbHVlJyBhYm92ZS5dCisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsICh2YWx1ZSAtIDEpICogMyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCA+PSAzIC8vIGkuZS4sIFFRUSBvciBRUVFRCisgICAgICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgICAgICAvLyBUcnkgY291bnQgPT0gNCBmaXJzdDoKKyAgICAgICAgICAgICAgICAgICAgaW50IG5ld1N0YXJ0ID0gbWF0Y2hRdWFydGVyU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5xdWFydGVycywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1N0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBjb3VudCA9PSA0IGZhaWxlZCwgbm93IHRyeSBjb3VudCA9PSAzCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hRdWFydGVyU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnNob3J0UXVhcnRlcnMsIGNhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIDI4OiAvLyAncScgLSBTVEFOREFMT05FIFFVQVJURVIKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPD0gMikgLy8gaS5lLiwgcSBvciBxcS4KKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IHdhbnQgdG8gcGFyc2UgdGhlIHF1YXJ0ZXIgaWYgaXQgaXMgYSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gd2hpbGUgcGF0dGVybiB1c2VzIG51bWVyaWMgc3R5bGU6IHEgb3IgcXEuCisgICAgICAgICAgICAgICAgICAgIC8vIFtXZSBjb21wdXRlZCAndmFsdWUnIGFib3ZlLl0KKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgKHZhbHVlIC0gMSkgKiAzKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50ID49IDMgLy8gaS5lLiwgcXFxIG9yIHFxcXEKKyAgICAgICAgICAgICAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisgICAgICAgICAgICAgICAgICAgIC8vIFRyeSBjb3VudCA9PSA0IGZpcnN0OgorICAgICAgICAgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSBtYXRjaFF1YXJ0ZXJTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnN0YW5kYWxvbmVRdWFydGVycywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1N0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBjb3VudCA9PSA0IGZhaWxlZCwgbm93IHRyeSBjb3VudCA9PSAzCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hRdWFydGVyU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzLCBjYWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIGNhc2UgMzogLy8gJ2QnIC0gREFURQorICAgICAgICAgICAgICAgIC8vIGNhc2UgNTogLy8gJ0gnIC0gSE9VUl9PRl9EQVkgKDAuLjIzKQorICAgICAgICAgICAgICAgIC8vIGNhc2UgNjogLy8gJ20nIC0gTUlOVVRFCisgICAgICAgICAgICAgICAgLy8gY2FzZSA3OiAvLyAncycgLSBTRUNPTkQKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDEwOiAvLyAnRCcgLSBEQVlfT0ZfWUVBUgorICAgICAgICAgICAgICAgIC8vIGNhc2UgMTE6IC8vICdGJyAtIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgICAgICAgICAgLy8gY2FzZSAxMjogLy8gJ3cnIC0gV0VFS19PRl9ZRUFSCisgICAgICAgICAgICAgICAgLy8gY2FzZSAxMzogLy8gJ1cnIC0gV0VFS19PRl9NT05USAorICAgICAgICAgICAgICAgIC8vIGNhc2UgMTY6IC8vICdLJyAtIEhPVVIgKDAuLjExKQorICAgICAgICAgICAgICAgIC8vIGNhc2UgMTg6IC8vICdZJyAtIFlFQVJfV09ZCisgICAgICAgICAgICAgICAgLy8gY2FzZSAxOTogLy8gJ2UnIC0gRE9XX0xPQ0FMCisgICAgICAgICAgICAgICAgLy8gY2FzZSAyMDogLy8gJ3UnIC0gRVhURU5ERURfWUVBUgorICAgICAgICAgICAgICAgIC8vIGNhc2UgMjE6IC8vICdnJyAtIEpVTElBTl9EQVkKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDIyOiAvLyAnQScgLSBNSUxMSVNFQ09ORFNfSU5fREFZCisKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgImdlbmVyaWMiIGZpZWxkcworICAgICAgICAgICAgICAgIGlmIChvYmV5Q291bnQpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoc3RhcnQrY291bnQpID4gdGV4dC5sZW5ndGgoKSkgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IHBhcnNlSW50KHRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0K2NvdW50KSwgcG9zLCBhbGxvd05lZ2F0aXZlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgbnVtYmVyID0gcGFyc2VJbnQodGV4dCwgcG9zLCBhbGxvd05lZ2F0aXZlKTsKKyAgICAgICAgICAgICAgICBpZiAobnVtYmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZCwgbnVtYmVyLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW4gaW50ZWdlciB1c2luZyBmTnVtYmVyRm9ybWF0LiAgVGhpcyBtZXRob2QgaXMgc2VtYW50aWNhbGx5CisgICAgICogY29uc3QsIGJ1dCBhY3R1YWxseSBtYXkgbW9kaWZ5IGZOdW1iZXJGb3JtYXQuCisgICAgICovCisgICAgcHJpdmF0ZSBOdW1iZXIgcGFyc2VJbnQoU3RyaW5nIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbGxvd05lZ2F0aXZlKSB7CisgICAgICAgIFN0cmluZyBvbGRQcmVmaXggPSBudWxsOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbnVsbDsKKyAgICAgICAgaWYgKCFhbGxvd05lZ2F0aXZlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGRmID0gKERlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0OworICAgICAgICAgICAgICAgIG9sZFByZWZpeCA9IGRmLmdldE5lZ2F0aXZlUHJlZml4KCk7CisgICAgICAgICAgICAgICAgZGYuc2V0TmVnYXRpdmVQcmVmaXgoU1VQUFJFU1NfTkVHQVRJVkVfUFJFRklYKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlMSkge30KKyAgICAgICAgfQorICAgICAgICBOdW1iZXIgbnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgIGlmIChkZiAhPSBudWxsKSB7CisgICAgICAgICAgICBkZi5zZXROZWdhdGl2ZVByZWZpeChvbGRQcmVmaXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsYXRlIGEgcGF0dGVybiwgbWFwcGluZyBlYWNoIGNoYXJhY3RlciBpbiB0aGUgZnJvbSBzdHJpbmcgdG8gdGhlCisgICAgICogY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgaW4gdGhlIHRvIHN0cmluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0cmFuc2xhdGVQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gaW5RdW90ZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoaW5RdW90ZSkgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2kgPSBmcm9tLmluZGV4T2YoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHRvLmNoYXJBdChjaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90IHdvcnJ5IG9uIHRyYW5zbGF0ZXBhdHRlcm4gaWYgdGhlIGNoYXJhY3RlciBpcyBub3QgbGlzdGVkCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvIHRoZSB2YWxpZGl0eSBjaGVjayBlbHNld2hlcmUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIGlmIChpblF1b3RlKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVW5maW5pc2hlZCBxdW90ZSBpbiBwYXR0ZXJuIik7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwYXR0ZXJuIHN0cmluZyBkZXNjcmliaW5nIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiBwYXR0ZXJuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyBkZXNjcmliaW5nIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiB0cmFuc2xhdGVQYXR0ZXJuKHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzLnBhdHRlcm5DaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5sb2NhbFBhdHRlcm5DaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHVubG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRvIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgc2V0TG9jYWxlKG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiBsb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgdG8gdGhpcyBkYXRlIGZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseUxvY2FsaXplZFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gdHJhbnNsYXRlUGF0dGVybihwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEubG9jYWxQYXR0ZXJuQ2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzKTsKKyAgICAgICAgc2V0TG9jYWxlKG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIGRhdGEuCisgICAgICogQHJldHVybiBhIGNvcHkgb2YgdGhlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhpcyBkYXRlLXRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyBnZXREYXRlRm9ybWF0U3ltYm9scygpCisgICAgeworICAgICAgICByZXR1cm4gKERhdGVGb3JtYXRTeW1ib2xzKWZvcm1hdERhdGEuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIHNldCB0aGUgZGF0ZS90aW1lIGZvcm1hdHRpbmcgZGF0YS4KKyAgICAgKiBAcGFyYW0gbmV3Rm9ybWF0U3ltYm9scyB0aGUgbmV3IHN5bWJvbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREYXRlRm9ybWF0U3ltYm9scyhEYXRlRm9ybWF0U3ltYm9scyBuZXdGb3JtYXRTeW1ib2xzKQorICAgIHsKKyAgICAgICAgdGhpcy5mb3JtYXREYXRhID0gKERhdGVGb3JtYXRTeW1ib2xzKW5ld0Zvcm1hdFN5bWJvbHMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgZm9yIHN1YmNsYXNzZXMgdG8gYWNjZXNzIHRoZSBEYXRlRm9ybWF0U3ltYm9scy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0ZUZvcm1hdFN5bWJvbHMgZ2V0U3ltYm9scygpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdERhdGE7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgb3RoZXIgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIuZm9ybWF0RGF0YSA9IChEYXRlRm9ybWF0U3ltYm9scykgZm9ybWF0RGF0YS5jbG9uZSgpOworICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgaGFzaENvZGUuCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBTaW1wbGVEYXRlRm9ybWF0IG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhdHRlcm4uaGFzaENvZGUoKTsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgZXF1YWxzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKCFzdXBlci5lcXVhbHMob2JqKSkgcmV0dXJuIGZhbHNlOyAvLyBzdXBlciBkb2VzIGNsYXNzIGNoZWNrCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgdGhhdCA9IChTaW1wbGVEYXRlRm9ybWF0KSBvYmo7CisgICAgICAgIHJldHVybiAocGF0dGVybi5lcXVhbHModGhhdC5wYXR0ZXJuKQorICAgICAgICAgICAgICAgICYmIGZvcm1hdERhdGEuZXF1YWxzKHRoYXQuZm9ybWF0RGF0YSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIHJlYWRPYmplY3QuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBzdHJlYW0uZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAvLyBkb24ndCBoYXZlIG9sZCBzZXJpYWwgZGF0YSB0byB0ZXN0IHdpdGgKKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDEpIHsKKyAgICAgICAgICAgIC8vIGRpZG4ndCBoYXZlIGRlZmF1bHRDZW50dXJ5U3RhcnQgZmllbGQKKyAgICAgICAgICAgIGluaXRpYWxpemVEZWZhdWx0Q2VudHVyeSgpOworICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGZpbGwgaW4gZGVwZW5kZW50IHRyYW5zaWVudCBmaWVsZAorICAgICAgICAgICAgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoZGVmYXVsdENlbnR1cnlTdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisgICAgICAgIGxvY2FsZSA9IGdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDBmYTYwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyODEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKworLy8gTk9URTogIFRoaXMgY2xhc3MgaXMgaWRlbnRpY2FsIHRvIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcgorLy8gaW4gSkRLIDEuMi4gIEl0J3MgY29waWVkIGhlcmUgYmVjYXVzZSB0aGUgSkRLIDEuMSB2ZXJzaW9uIG9mCisvLyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBoYXMgYSBidWcgdGhhdCBwcmV2ZW50cyBpdCBmcm9tIHdvcmtpbmcKKy8vIHJpZ2h0IHdpdGggUnVsZUJhc2VkQnJlYWtJdGVyYXRvci4gIFRoaXMgY2xhc3MgaXMgdW5uZWNlc3NhcnkKKy8vIHdoZW4gdXNpbmcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3aXRoIEpESyAxLjIuCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogPGNvZGU+U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGltcGxlbWVudHMgdGhlCisgKiA8Y29kZT5DaGFyYWN0ZXJJdGVyYXRlcjwvY29kZT4gcHJvdG9jb2wgZm9yIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAqIFRoZSA8Y29kZT5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gY2xhc3MgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGVudGlyZSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICoKKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAqLworLy8vQ0xPVkVSOk9GRgorcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IKK3sKKyAgICBwcml2YXRlIFN0cmluZyB0ZXh0OworICAgIHByaXZhdGUgaW50IGJlZ2luOworICAgIHByaXZhdGUgaW50IGVuZDsKKyAgICAvLyBpbnZhcmlhbnQ6IGJlZ2luIDw9IHBvcyA8PSBlbmQKKyAgICBwcml2YXRlIGludCBwb3M7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIHdpdGggYW4gaW5pdGlhbCBpbmRleCBvZiAwLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHRleHQpCisgICAgeworICAgICAgICB0aGlzKHRleHQsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGluaXRpYWwgaW5kZXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgKiBAcGFyYW0gIHBvcyAgICBJbml0aWFsIGl0ZXJhdG9yIHBvc2l0aW9uICAgICAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFN0cmluZyB0ZXh0LCBpbnQgcG9zKQorICAgIHsKKyAgICB0aGlzKHRleHQsIDAsIHRleHQubGVuZ3RoKCksIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBpdGVyYXRvciBvdmVyIHRoZSBnaXZlbiByYW5nZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLCB3aXRoIHRoZQorICAgICAqIGluZGV4IHNldCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtICB0ZXh0ICAgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAgICogQHBhcmFtICBiZWdpbiAgSW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSAgZW5kICAgIEluZGV4IG9mIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSAgcG9zICAgIEluaXRpYWwgaXRlcmF0b3IgcG9zaXRpb24gCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgdGV4dCwgaW50IGJlZ2luLCBpbnQgZW5kLCBpbnQgcG9zKSB7CisgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisKKyAgICAgICAgaWYgKGJlZ2luIDwgMCB8fCBiZWdpbiA+IGVuZCB8fCBlbmQgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHN1YnN0cmluZyByYW5nZSIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcyA8IGJlZ2luIHx8IHBvcyA+IGVuZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwb3NpdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5iZWdpbiA9IGJlZ2luOworICAgICAgICB0aGlzLmVuZCA9IGVuZDsKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdGhpcyBpdGVyYXRvciB0byBwb2ludCB0byBhIG5ldyBzdHJpbmcuICBUaGlzIHBhY2thZ2UtdmlzaWJsZQorICAgICAqIG1ldGhvZCBpcyB1c2VkIGJ5IG90aGVyIGphdmEudGV4dCBjbGFzc2VzIHRoYXQgd2FudCB0byBhdm9pZCBhbGxvY2F0aW5nCisgICAgICogbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMgZXZlcnkgdGltZSB0aGVpciBzZXRUZXh0IG1ldGhvZAorICAgICAqIGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlciAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICBpZiAodGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLmJlZ2luID0gMDsKKyAgICAgICAgdGhpcy5lbmQgPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICB0aGlzLnBvcyA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5maXJzdCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNmaXJzdCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKQorICAgIHsKKyAgICAgICAgcG9zID0gYmVnaW47CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5sYXN0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2xhc3QgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGxhc3QoKQorICAgIHsKKyAgICAgICAgaWYgKGVuZCAhPSBiZWdpbikgeworICAgICAgICAgICAgcG9zID0gZW5kIC0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvcyA9IGVuZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLnNldEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI3NldEluZGV4IAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgcCkKKyAgICB7CisgICAgaWYgKHAgPCBiZWdpbiB8fCBwID4gZW5kKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGluZGV4Iik7CisgICAgfQorICAgICAgICBwb3MgPSBwOworICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuY3VycmVudCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNjdXJyZW50IAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkKKyAgICB7CisgICAgICAgIGlmIChwb3MgPj0gYmVnaW4gJiYgcG9zIDwgZW5kKSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5uZXh0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI25leHQgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKQorICAgIHsKKyAgICAgICAgaWYgKHBvcyA8IGVuZCAtIDEpIHsKKyAgICAgICAgICAgIHBvcysrOworICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwb3MgPSBlbmQ7CisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IucHJldmlvdXMoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjcHJldmlvdXMgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHByZXZpb3VzKCkKKyAgICB7CisgICAgICAgIGlmIChwb3MgPiBiZWdpbikgeworICAgICAgICAgICAgcG9zLS07CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRCZWdpbkluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEJlZ2luSW5kZXggCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gYmVnaW47CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRFbmRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRFbmRJbmRleCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gZW5kOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0SW5kZXggCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdHdvIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGguCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmogaXMgdGhlIHNhbWUgYXMgdGhpcworICAgICAqIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdDsgZmFsc2Ugb3RoZXJ3aXNlLiAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCA9IChTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcikgb2JqOworCisgICAgICAgIGlmIChoYXNoQ29kZSgpICE9IHRoYXQuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghdGV4dC5lcXVhbHModGhhdC50ZXh0KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChwb3MgIT0gdGhhdC5wb3MgfHwgYmVnaW4gIT0gdGhhdC5iZWdpbiB8fCBlbmQgIT0gdGhhdC5lbmQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlcyBhIGhhc2hjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRleHQuaGFzaENvZGUoKSBeIHBvcyBeIGJlZ2luIF4gZW5kOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBBIGNvcHkgb2YgdGhpcyAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb3RoZXIKKyAgICAgICAgICAgID0gKFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKK30KKy8vL0NMT1ZFUjpPTgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nTWF0Y2hlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nTWF0Y2hlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlZmNjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdNYXRjaGVyLmphdmEKQEAgLTAsMCArMSwyODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEFuIG9iamVjdCB0aGF0IG1hdGNoZXMgYSBmaXhlZCBpbnB1dCBzdHJpbmcsIGltcGxlbWVudGluZyB0aGUKKyAqIFVuaWNvZGVNYXRjaGVyIEFQSS4gIFRoaXMgb2JqZWN0IGFsc28gaW1wbGVtZW50cyB0aGUKKyAqIFVuaWNvZGVSZXBsYWNlciBBUEksIGFsbG93aW5nIGl0IHRvIGVtaXQgdGhlIG1hdGNoZWQgdGV4dCBhcworICogb3V0cHV0LiAgU2luY2UgdGhlIG1hdGNoIHRleHQgbWF5IGNvbnRhaW4gZmxleGlibGUgbWF0Y2ggZWxlbWVudHMsCisgKiBzdWNoIGFzIFVuaWNvZGVTZXRzLCB0aGUgZW1pdHRlZCB0ZXh0IGlzIG5vdCB0aGUgbWF0Y2ggcGF0dGVybiwgYnV0CisgKiBpbnN0ZWFkIGEgc3Vic3RyaW5nIG9mIHRoZSBhY3R1YWwgbWF0Y2hlZCB0ZXh0LiAgRm9sbG93aW5nCisgKiBjb252ZW50aW9uLCB0aGUgb3V0cHV0IHRleHQgaXMgdGhlIGxlZnRtb3N0IG1hdGNoIHNlZW4gdXAgdG8gdGhpcworICogcG9pbnQuCisgKgorICogQSBTdHJpbmdNYXRjaGVyIG1heSByZXByZXNlbnQgYSBzZWdtZW50LCBpbiB3aGljaCBjYXNlIGl0IGhhcyBhCisgKiBwb3NpdGl2ZSBzZWdtZW50IG51bWJlci4gIFRoaXMgYWZmZWN0cyBob3cgdGhlIG1hdGNoZXIgY29udmVydHMKKyAqIGl0c2VsZiB0byBhIHBhdHRlcm4gYnV0IGRvZXMgbm90IG90aGVyd2lzZSBhZmZlY3QgaXRzIGZ1bmN0aW9uLgorICoKKyAqIEEgU3RyaW5nTWF0Y2hlciB0aGF0IGlzIG5vdCBhIHNlZ21lbnQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEKKyAqIFVuaWNvZGVSZXBsYWNlci4KKyAqLworY2xhc3MgU3RyaW5nTWF0Y2hlciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyLCBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogVGhlIHRleHQgdG8gYmUgbWF0Y2hlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXR0ZXJuOworCisgICAgLyoqCisgICAgICogU3RhcnQgb2Zmc2V0LCBpbiB0aGUgbWF0Y2ggdGV4dCwgb2YgdGhlIDxlbT5yaWdodG1vc3Q8L2VtPgorICAgICAqIG1hdGNoLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1hdGNoU3RhcnQ7CisgICAgCisgICAgLyoqCisgICAgICogTGltaXQgb2Zmc2V0LCBpbiB0aGUgbWF0Y2ggdGV4dCwgb2YgdGhlIDxlbT5yaWdodG1vc3Q8L2VtPgorICAgICAqIG1hdGNoLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1hdGNoTGltaXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc2VnbWVudCBudW1iZXIsIDEtYmFzZWQsIG9yIDAgaWYgbm90IGEgc2VnbWVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZWdtZW50TnVtYmVyOworCisgICAgLyoqCisgICAgICogQ29udGV4dCBvYmplY3QgdGhhdCBtYXBzIHN0YW5kLWlucyB0byBtYXRjaGVyIGFuZCByZXBsYWNlcgorICAgICAqIG9iamVjdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gcGF0dGVybiBzdHJpbmcuCisgICAgICogQHBhcmFtIHRoZVN0cmluZyB0aGUgcGF0dGVybiB0byBiZSBtYXRjaGVkLCBwb3NzaWJseSBjb250YWluaW5nCisgICAgICogc3RhbmQtaW5zIHRoYXQgcmVwcmVzZW50IG5lc3RlZCBVbmljb2RlTWF0Y2hlciBvYmplY3RzLgorICAgICAqIEBwYXJhbSBzZWdtZW50TnVtIHRoZSBzZWdtZW50IG51bWJlciBmcm9tIDEuLm4sIG9yIDAgaWYgdGhpcyBpcworICAgICAqIG5vdCBhIHNlZ21lbnQuCisgICAgICogQHBhcmFtIHRoZURhdGEgY29udGV4dCBvYmplY3QgbWFwcGluZyBzdGFuZC1pbnMgdG8KKyAgICAgKiBVbmljb2RlTWF0Y2hlciBvYmplY3RzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdNYXRjaGVyKFN0cmluZyB0aGVTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnROdW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIGRhdGEgPSB0aGVEYXRhOworICAgICAgICBwYXR0ZXJuID0gdGhlU3RyaW5nOworICAgICAgICBtYXRjaFN0YXJ0ID0gbWF0Y2hMaW1pdCA9IC0xOworICAgICAgICBzZWdtZW50TnVtYmVyID0gc2VnbWVudE51bTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGhlU3RyaW5nIHRoZSBwYXR0ZXJuIHRvIGJlIG1hdGNoZWQsIHBvc3NpYmx5IGNvbnRhaW5pbmcKKyAgICAgKiBzdGFuZC1pbnMgdGhhdCByZXByZXNlbnQgbmVzdGVkIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMuCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciBvZiB0aGVTdHJpbmcgdG8gYmUgbWF0Y2hlZAorICAgICAqIEBwYXJhbSBsaW1pdCBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlU3RyaW5nIHRvIGJlCisgICAgICogbWF0Y2hlZC4KKyAgICAgKiBAcGFyYW0gc2VnbWVudE51bSB0aGUgc2VnbWVudCBudW1iZXIgZnJvbSAxLi5uLCBvciAwIGlmIHRoaXMgaXMKKyAgICAgKiBub3QgYSBzZWdtZW50LgorICAgICAqIEBwYXJhbSB0aGVEYXRhIGNvbnRleHQgb2JqZWN0IG1hcHBpbmcgc3RhbmQtaW5zIHRvCisgICAgICogVW5pY29kZU1hdGNoZXIgb2JqZWN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nTWF0Y2hlcihTdHJpbmcgdGhlU3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnROdW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIHRoaXModGhlU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGltaXQpLCBzZWdtZW50TnVtLCB0aGVEYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1hdGNoZXMoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLy8gTm90ZSAoMSk6IFdlIHByb2Nlc3MgdGV4dCBpbiAxNi1iaXQgY29kZSB1bml0cywgcmF0aGVyIHRoYW4KKyAgICAgICAgLy8gMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyB3b3JrcyBiZWNhdXNlIHN0YW5kLWlucyBhcmUKKyAgICAgICAgLy8gYWx3YXlzIGluIHRoZSBCTVAgYW5kIGJlY2F1c2Ugd2UgYXJlIGRvaW5nIGEgbGl0ZXJhbCBtYXRjaAorICAgICAgICAvLyBvcGVyYXRpb24sIHdoaWNoIGNhbiBiZSBkb25lIDE2LWJpdHMgYXQgYSB0aW1lLgorICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50W10gY3Vyc29yID0gbmV3IGludFtdIHsgb2Zmc2V0WzBdIH07CisgICAgICAgIGlmIChsaW1pdCA8IGN1cnNvclswXSkgeworICAgICAgICAgICAgLy8gTWF0Y2ggaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICAgICAgICBmb3IgKGk9cGF0dGVybi5sZW5ndGgoKS0xOyBpPj0wOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGtleUNoYXIgPSBwYXR0ZXJuLmNoYXJBdChpKTsgLy8gT0s7IHNlZSBub3RlICgxKSBhYm92ZQorICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIHN1Ym0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoa2V5Q2hhcik7CisgICAgICAgICAgICAgICAgaWYgKHN1Ym0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yWzBdID4gbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleUNoYXIgPT0gdGV4dC5jaGFyQXQoY3Vyc29yWzBdKSkgeyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAtLWN1cnNvclswXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3VibS5tYXRjaGVzKHRleHQsIGN1cnNvciwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG0gIT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIG1hdGNoIHBvc2l0aW9uLCBidXQgYWRqdXN0IGZvciBhIG5vcm1hbAorICAgICAgICAgICAgLy8gZm9yd2FyZCBzdGFydCwgbGltaXQsIGFuZCBvbmx5IGlmIGEgcHJpb3IgbWF0Y2ggZG9lcyBub3QKKyAgICAgICAgICAgIC8vIGV4aXN0IC0tIHdlIHdhbnQgdGhlIHJpZ2h0bW9zdCBtYXRjaC4KKyAgICAgICAgICAgIGlmIChtYXRjaFN0YXJ0IDwgMCkgeworICAgICAgICAgICAgICAgIG1hdGNoU3RhcnQgPSBjdXJzb3JbMF0rMTsKKyAgICAgICAgICAgICAgICBtYXRjaExpbWl0ID0gb2Zmc2V0WzBdKzE7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwgJiYgY3Vyc29yWzBdID09IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIHJlYWNoZWQgdGhlIGNvbnRleHQgbGltaXQgd2l0aG91dCBhIG1pc21hdGNoIGFuZAorICAgICAgICAgICAgICAgICAgICAvLyB3aXRob3V0IGNvbXBsZXRpbmcgb3VyIG1hdGNoLgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVV9QQVJUSUFMX01BVENIOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaGFyIGtleUNoYXIgPSBwYXR0ZXJuLmNoYXJBdChpKTsgLy8gT0s7IHNlZSBub3RlICgxKSBhYm92ZQorICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIHN1Ym0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoa2V5Q2hhcik7CisgICAgICAgICAgICAgICAgaWYgKHN1Ym0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBuZWVkIHRoZSBjdXJzb3IgPCBsaW1pdCBjaGVjayBpZgorICAgICAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBpcyB0cnVlIChiZWNhdXNlIGl0J3MgZG9uZSBhYm92ZSk7IGRvIG5lZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gaXQgb3RoZXJ3aXNlLgorICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yWzBdIDwgbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleUNoYXIgPT0gdGV4dC5jaGFyQXQoY3Vyc29yWzBdKSkgeyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICArK2N1cnNvclswXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3VibS5tYXRjaGVzKHRleHQsIGN1cnNvciwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG0gIT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIG1hdGNoIHBvc2l0aW9uCisgICAgICAgICAgICBtYXRjaFN0YXJ0ID0gb2Zmc2V0WzBdOworICAgICAgICAgICAgbWF0Y2hMaW1pdCA9IGN1cnNvclswXTsKKyAgICAgICAgfQorCisgICAgICAgIG9mZnNldFswXSA9IGN1cnNvclswXTsKKyAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmIChzZWdtZW50TnVtYmVyID4gMCkgeyAvLyBpLmUuLCBpZiB0aGlzIGlzIGEgc2VnbWVudAorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKCcpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIga2V5Q2hhciA9IHBhdHRlcm4uY2hhckF0KGkpOyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtID0gZGF0YS5sb29rdXBNYXRjaGVyKGtleUNoYXIpOworICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJlc3VsdCwga2V5Q2hhciwgZmFsc2UsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJlc3VsdCwgbS50b1BhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlZ21lbnROdW1iZXIgPiAwKSB7IC8vIGkuZS4sIGlmIHRoaXMgaXMgYSBzZWdtZW50CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gRmx1c2ggcXVvdGVCdWYgb3V0IHRvIHJlc3VsdAorICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShyZXN1bHQsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlc0luZGV4VmFsdWUoaW50IHYpIHsKKyAgICAgICAgaWYgKHBhdHRlcm4ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgMCk7CisgICAgICAgIFVuaWNvZGVNYXRjaGVyIG0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoYyk7CisgICAgICAgIHJldHVybiAobSA9PSBudWxsKSA/ICgoYyAmIDB4RkYpID09IHYpIDogbS5tYXRjaGVzSW5kZXhWYWx1ZSh2KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBVbmlvbiB0aGUgc2V0IG9mIGFsbAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdCBpbnRvIHRoZSBnaXZlbgorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7IGkrPVVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyAgICAgICAgICAgIGNoID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbWF0Y2hlciA9IGRhdGEubG9va3VwTWF0Y2hlcihjaCk7CisgICAgICAgICAgICBpZiAobWF0Y2hlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdG9VbmlvblRvLmFkZChjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1hdGNoZXIuYWRkTWF0Y2hTZXRUbyh0b1VuaW9uVG8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKSB7CisKKyAgICAgICAgaW50IG91dExlbiA9IDA7CisKKyAgICAgICAgLy8gQ29weSBzZWdtZW50IHdpdGggb3V0LW9mLWJhbmQgZGF0YQorICAgICAgICBpbnQgZGVzdCA9IGxpbWl0OworICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gbWF0Y2gsIHRoYXQgbWVhbnMgdGhhdCBhIHF1YW50aWZpZXIKKyAgICAgICAgLy8gbWF0Y2hlZCB6ZXJvLWxlbmd0aC4gIEUuZy4sIHggKGEpKiB5IG1hdGNoZWQgInh5Ii4KKyAgICAgICAgaWYgKG1hdGNoU3RhcnQgPj0gMCkgeworICAgICAgICAgICAgaWYgKG1hdGNoU3RhcnQgIT0gbWF0Y2hMaW1pdCkgeworICAgICAgICAgICAgICAgIHRleHQuY29weShtYXRjaFN0YXJ0LCBtYXRjaExpbWl0LCBkZXN0KTsKKyAgICAgICAgICAgICAgICBvdXRMZW4gPSBtYXRjaExpbWl0IC0gbWF0Y2hTdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRleHQucmVwbGFjZShzdGFydCwgbGltaXQsICIiKTsgLy8gZGVsZXRlIG9yaWdpbmFsIHRleHQKKworICAgICAgICByZXR1cm4gb3V0TGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNlZ21lbnROdW1iZXIgPiAwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGUgPSBuZXcgU3RyaW5nQnVmZmVyKCIkIik7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJ1bGUsIHNlZ21lbnROdW1iZXIsIDEwLCAxKTsKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYW55IG1hdGNoIGRhdGEuICBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBwZXJmb3JtaW5nIGEKKyAgICAgKiBzZXQgb2YgbWF0Y2hlcyB3aXRoIHRoaXMgc2VnbWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldE1hdGNoKCkgeworICAgICAgICBtYXRjaFN0YXJ0ID0gbWF0Y2hMaW1pdCA9IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgb3V0cHV0IGJ5IHRoaXMgb2JqZWN0CisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSB0b1VuaW9uVG8gdGhlIHNldCBpbnRvIHdoaWNoIHRvIHVuaW9uIHRoZSBvdXRwdXQgY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZFJlcGxhY2VtZW50U2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgLy8gVGhlIG91dHB1dCBvZiB0aGlzIHJlcGxhY2VyIHZhcmllczsgaXQgaXMgdGhlIHNvdXJjZSB0ZXh0IGJldHdlZW4KKyAgICAgICAgLy8gbWF0Y2hTdGFydCBhbmQgbWF0Y2hMaW1pdC4gIFNpbmNlIHRoaXMgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUKKyAgICAgICAgLy8gaW5wdXQgdGV4dCwgd2UgY2FuJ3QgY29tcHV0ZSBpdCBoZXJlLiAgV2UgY2FuIGVpdGhlciBkbyBub3RoaW5nCisgICAgICAgIC8vIG9yIHdlIGNhbiBhZGQgQUxMIGNoYXJhY3RlcnMgdG8gdGhlIHNldC4gIEl0J3MgcHJvYmFibHkgbW9yZSB1c2VmdWwKKyAgICAgICAgLy8gdG8gZG8gbm90aGluZy4KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAwNTNjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1ByZXAuamF2YQpAQCAtMCwwICsxLDQ0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlN0cmluZ1ByZXBEYXRhUmVhZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRGlyZWN0aW9uOworCisvKioKKyAqIFN0cmluZ1ByZXAgQVBJIGltcGxlbWVudHMgdGhlIFN0aW5nUHJlcCBmcmFtZXdvcmsgYXMgZGVzY3JpYmVkIGJ5IAorICogPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzQ1NC50eHQiPlJGQyAzNDU0PC9hPi4KKyAqIFN0cmluZ1ByZXAgcHJlcGFyZXMgVW5pY29kZSBzdHJpbmdzIGZvciB1c2UgaW4gbmV0d29yayBwcm90b2NvbHMuCisgKiBQcm9maWxlcyBvZiBTdGluZ1ByZXAgYXJlIHNldCBvZiBydWxlcyBhbmQgZGF0YSBhY2NvcmRpbmcgdG8gd2hpY2ggdGhlCisgKiBVbmljb2RlIFN0cmluZ3MgYXJlIHByZXBhcmVkLiBFYWNoIHByb2ZpbGVzIGNvbnRhaW5zIHRhYmxlcyB3aGljaCBkZXNjcmliZQorICogaG93IGEgY29kZSBwb2ludCBzaG91bGQgYmUgdHJlYXRlZC4gVGhlIHRhYmxlcyBhcmUgYnJvYWRseSBjbGFzc2llZCBpbnRvCisgKiA8dWw+CisgKiAgICAgPGxpPiBVbmFzc2lnbmVkIFRhYmxlOiBDb250YWlucyBjb2RlIHBvaW50cyB0aGF0IGFyZSB1bmFzc2lnbmVkIAorICogICAgICAgICAgaW4gdGhlIFVuaWNvZGUgVmVyc2lvbiBzdXBwb3J0ZWQgYnkgU3RyaW5nUHJlcC4gQ3VycmVudGx5IAorICogICAgICAgICAgUkZDIDM0NTQgc3VwcG9ydHMgVW5pY29kZSAzLjIuIDwvbGk+CisgKiAgICAgPGxpPiBQcm9oaWJpdGVkIFRhYmxlOiBDb250YWlucyBjb2RlIHBvaW50cyB0aGF0IGFyZSBwcm9oaWJ0ZWQgZnJvbQorICogICAgICAgICAgdGhlIG91dHB1dCBvZiB0aGUgU3RyaW5nUHJlcCBwcm9jZXNzaW5nIGZ1bmN0aW9uLiA8L2xpPgorICogICAgIDxsaT4gTWFwcGluZyBUYWJsZTogQ29udGFpbnMgY29kZSBwb250cyB0aGF0IGFyZSBkZWxldGVkIGZyb20gdGhlIG91dHB1dCBvciBjYXNlIG1hcHBlZC4gPC9saT4KKyAqIDwvdWw+CisgKiAKKyAqIFRoZSBwcm9jZWR1cmUgZm9yIHByZXBhcmluZyBVbmljb2RlIHN0cmluZ3M6CisgKiA8b2w+CisgKiAgICAgIDxsaT4gTWFwOiBGb3IgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCBjaGVjayBpZiBpdCBoYXMgYSBtYXBwaW5nCisgKiAgICAgICAgICAgYW5kLCBpZiBzbywgcmVwbGFjZSBpdCB3aXRoIGl0cyBtYXBwaW5nLiA8L2xpPgorICogICAgICA8bGk+IE5vcm1hbGl6ZTogUG9zc2libHkgbm9ybWFsaXplIHRoZSByZXN1bHQgb2Ygc3RlcCAxIHVzaW5nIFVuaWNvZGUKKyAqICAgICAgICAgICBub3JtYWxpemF0aW9uLiA8L2xpPgorICogICAgICA8bGk+IFByb2hpYml0OiBDaGVjayBmb3IgYW55IGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGFsbG93ZWQgaW4gdGhlCisgKiAgICAgICAgICAgb3V0cHV0LiAgSWYgYW55IGFyZSBmb3VuZCwgcmV0dXJuIGFuIGVycm9yLjwvbGk+CisgKiAgICAgIDxsaT4gQ2hlY2sgYmlkaTogUG9zc2libHkgY2hlY2sgZm9yIHJpZ2h0LXRvLWxlZnQgY2hhcmFjdGVycywgYW5kIGlmCisgKiAgICAgICAgICAgYW55IGFyZSBmb3VuZCwgbWFrZSBzdXJlIHRoYXQgdGhlIHdob2xlIHN0cmluZyBzYXRpc2ZpZXMgdGhlCisgKiAgICAgICAgICAgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MuICBJZiB0aGUgc3RyaW5nIGRvZXMgbm90CisgKiAgICAgICAgICAgc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MsIHJldHVybiBhbgorICogICAgICAgICAgIGVycm9yLiAgPC9saT4KKyAqIDwvb2w+CisgKiBAYXV0aG9yIFJhbSBWaXN3YW5hZGhhCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZ1ByZXAgeworICAgIC8qKiAKKyAgICAgKiBPcHRpb24gdG8gcHJvaGliaXQgcHJvY2Vzc2luZyBvZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGluIHRoZSBpbnB1dAorICAgICAqIAorICAgICAqIEBzZWUgICAjcHJlcGFyZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFQgPSAweDAwMDA7CisKKyAgICAvKiogCisgICAgICogT3B0aW9uIHRvIGFsbG93IHByb2Nlc3Npbmcgb2YgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBpbiB0aGUgaW5wdXQKKyAgICAgKiAKKyAgICAgKiBAc2VlICAgI3ByZXBhcmUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTExPV19VTkFTU0lHTkVEID0gMHgwMDAxOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTkFTU0lHTkVEICAgICAgICA9IDB4MDAwMDsgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BUCAgICAgICAgICAgICAgID0gMHgwMDAxOyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUFJPSElCSVRFRCAgICAgICAgPSAweDAwMDI7IAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUxFVEUgICAgICAgICAgICA9IDB4MDAwMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV9MSU1JVCAgICAgICAgPSAweDAwMDQ7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PUk1BTElaQVRJT05fT04gID0gMHgwMDAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSEVDS19CSURJX09OICAgICA9IDB4MDAwMjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV9USFJFU0hPTEQgICAgICAgPSAweEZGRjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9JTkRFWF9WQUxVRSAgICAgID0gMHgzRkJGOyAgIC8qMTYxMzkqLyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0lOREVYX1RPUF9MRU5HVEggPSAweDAwMDM7CisgICAgCisgICAgLyogaW5kZXhlc1tdIHZhbHVlIG5hbWVzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOREVYX1RSSUVfU0laRSAgICAgICAgICAgICAgICAgID0gIDA7IC8qIG51bWJlciBvZiBieXRlcyBpbiBub3JtYWxpemF0aW9uIHRyaWUgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfTUFQUElOR19EQVRBX1NJWkUgICAgICAgICAgPSAgMTsgLyogVGhlIGFycmF5IHRoYXQgY29udGFpbnMgdGhlIG1hcHBpbmcgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1JNX0NPUlJFQ1ROU19MQVNUX1VOSV9WRVJTSU9OICA9ICAyOyAvKiBUaGUgaW5kZXggb2YgVW5pY29kZSB2ZXJzaW9uIG9mIGxhc3QgZW50cnkgaW4gTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLnR4dCAqLyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT05FX1VDSEFSX01BUFBJTkdfSU5ERVhfU1RBUlQgICAgPSAgMzsgLyogVGhlIHN0YXJ0aW5nIGluZGV4IG9mIDEgVUNoYXIgbWFwcGluZyBpbmRleCBpbiB0aGUgbWFwcGluZyBkYXRhIGFycmF5ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRXT19VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVCAgID0gIDQ7IC8qIFRoZSBzdGFydGluZyBpbmRleCBvZiAyIFVDaGFycyBtYXBwaW5nIGluZGV4IGluIHRoZSBtYXBwaW5nIGRhdGEgYXJyYXkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEhSRUVfVUNIQVJTX01BUFBJTkdfSU5ERVhfU1RBUlQgPSAgNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9VUl9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVCAgPSAgNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgPSAgNzsgLyogQml0IHNldCBvZiBvcHRpb25zIHRvIHR1cm4gb24gaW4gdGhlIHByb2ZpbGUgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfVE9QICAgICAgICAgICAgICAgICAgICAgICAgPSAxNjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNoYW5naW5nIHRoaXMgcmVxdWlyZXMgYSBuZXcgZm9ybWF0VmVyc2lvbiAqLworICAgCisgICAKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGJ1ZmZlciBzaXplIG9mIGRhdGFmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERBVEFfQlVGRkVSX1NJWkUgPSAyNTAwMDsKKyAgICAKKyAgICAvLyBDaGFyVHJpZSBpbXBsbWVudGF0aW9uIGZvciByZWFkaW5nIHRoZSB0cmllIGRhdGEKKyAgICBwcml2YXRlIENoYXJUcmllIHNwcmVwVHJpZTsKKyAgICAvLyBJbmRleGVzIHJlYWQgZnJvbSB0aGUgZGF0YSBmaWxlCisgICAgcHJpdmF0ZSBpbnRbXSBpbmRleGVzOworICAgIC8vIG1hcHBpbmcgZGF0YSByZWFkIGZyb20gdGhlIGRhdGEgZmlsZQorICAgIHByaXZhdGUgY2hhcltdIG1hcHBpbmdEYXRhOworICAgIC8vIGZvcm1hdCB2ZXJzaW9uIG9mIHRoZSBkYXRhIGZpbGUKKyAgICBwcml2YXRlIGJ5dGVbXSBmb3JtYXRWZXJzaW9uOworICAgIC8vIHRoZSB2ZXJzaW9uIG9mIFVuaWNvZGUgc3VwcG9ydGVkIGJ5IHRoZSBkYXRhIGZpbGUKKyAgICBwcml2YXRlIFZlcnNpb25JbmZvIHNwcmVwVW5pVmVyOworICAgIC8vIHRoZSBVbmljb2RlIHZlcnNpb24gb2YgbGFzdCBlbnRyeSBpbiB0aGUKKyAgICAvLyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0IGZpbGUgaWYgbm9ybWFsaXphdGlvbgorICAgIC8vIGlzIHR1cm5lZCBvbiAKKyAgICBwcml2YXRlIFZlcnNpb25JbmZvIG5vcm1Db3JyVmVyOworICAgIC8vIE9wdGlvbiB0byB0dXJuIG9uIE5vcm1hbGl6YXRpb24KKyAgICBwcml2YXRlIGJvb2xlYW4gZG9ORktDOworICAgIC8vIE9wdGlvbiB0byB0dXJuIG9uIGNoZWNraW5nIGZvciBCaURpIHJ1bGVzCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrQmlEaTsKKyAgICAvLyBiaWRpIHByb3BlcnRpZXMKKyAgICBwcml2YXRlIFVCaURpUHJvcHMgYmRwOworICAgIAorICAgIHByaXZhdGUgY2hhciBnZXRDb2RlUG9pbnRWYWx1ZShpbnQgY2gpeworICAgICAgICByZXR1cm4gc3ByZXBUcmllLmdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICB9CisgIAorICAgIHByaXZhdGUgc3RhdGljIFZlcnNpb25JbmZvIGdldFZlcnNpb25JbmZvKGludCBjb21wKXsKKyAgICAgICAgaW50IG1pY3JvID0gY29tcCAmIDB4RkY7CisgICAgICAgIGludCBtaWxsaSA9KGNvbXAgPj4gOCkgICYgMHhGRjsKKyAgICAgICAgaW50IG1pbm9yID0oY29tcCA+PiAxNikgJiAweEZGOworICAgICAgICBpbnQgbWFqb3IgPShjb21wID4+IDI0KSAmIDB4RkY7CisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShtYWpvcixtaW5vcixtaWxsaSxtaWNybyk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIFZlcnNpb25JbmZvIGdldFZlcnNpb25JbmZvKGJ5dGVbXSB2ZXJzaW9uKXsKKyAgICAgICAgaWYodmVyc2lvbi5sZW5ndGggIT0gNCl7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoKGludCl2ZXJzaW9uWzBdLChpbnQpIHZlcnNpb25bMV0sKGludCkgdmVyc2lvblsyXSwoaW50KSB2ZXJzaW9uWzNdKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBTdHJpbmdQcmVwIG9iamVjdCBhZnRlciByZWFkaW5nIHRoZSBpbnB1dCBzdHJlYW0uCisgICAgICogVGhlIG9iamVjdCBkb2VzIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBpbnB1dCBzdGVhbSwgc28gdGhlIHN0cmVhbSBjYW4gYmUKKyAgICAgKiBjbG9zZWQgYWZ0ZXIgdGhlIG1ldGhvZCByZXR1cm5zLgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBUaGUgc3RyZWFtIGZvciByZWFkaW5nIHRoZSBTdHJpbmdQcmVwIHByb2ZpbGUgYmluYXJ5U3VuIAorICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcChJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9ueworCisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlucHV0U3RyZWFtLERBVEFfQlVGRkVSX1NJWkUpOworICAKKyAgICAgICAgU3RyaW5nUHJlcERhdGFSZWFkZXIgcmVhZGVyID0gbmV3IFN0cmluZ1ByZXBEYXRhUmVhZGVyKGIpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZCB0aGUgaW5kZXhlcyAgICAgICAgICAgIAorICAgICAgICBpbmRleGVzID0gcmVhZGVyLnJlYWRJbmRleGVzKElOREVYX1RPUCk7CisgICAKKyAgICAgICAgYnl0ZVtdIHNwcmVwQnl0ZXMgPSBuZXcgYnl0ZVtpbmRleGVzW0lOREVYX1RSSUVfU0laRV1dOworICAgCisKKyAgICAgICAgLy9pbmRleGVzW0lOREVYX01BUFBJTkdfREFUQV9TSVpFXSBzdG9yZSB0aGUgc2l6ZSBvZiBtYXBwaW5nRGF0YSBpbiBieXRlcyAgICAgICAgICAgCisgICAgICAgIG1hcHBpbmdEYXRhID0gbmV3IGNoYXJbaW5kZXhlc1tJTkRFWF9NQVBQSU5HX0RBVEFfU0laRV0vMl07IAorICAgICAgICAvLyBsb2FkIHRoZSByZXN0IG9mIHRoZSBkYXRhIGRhdGEgYW5kIGluaXRpYWxpemUgdGhlIGRhdGEgbWVtYmVycworICAgICAgICByZWFkZXIucmVhZChzcHJlcEJ5dGVzLG1hcHBpbmdEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHNwcmVwVHJpZSA9IG5ldyBDaGFyVHJpZShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oc3ByZXBCeXRlcyksIG51bGwpOworICAgICAgICAgICAgICAKKyAgICAgICAgLy8gZ2V0IHRoZSBkYXRhIGZvcm1hdCB2ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZvcm1hdFZlcnNpb24gPSByZWFkZXIuZ2V0RGF0YUZvcm1hdFZlcnNpb24oKTsKKyAKKyAgICAgICAgLy8gZ2V0IHRoZSBvcHRpb25zCisgICAgICAgIGRvTkZLQyAgICAgICAgICAgID0gKChpbmRleGVzW09QVElPTlNdICYgTk9STUFMSVpBVElPTl9PTikgPiAwKTsKKyAgICAgICAgY2hlY2tCaURpICAgICAgICAgPSAoKGluZGV4ZXNbT1BUSU9OU10gJiBDSEVDS19CSURJX09OKSA+IDApOworICAgICAgICBzcHJlcFVuaVZlciAgID0gZ2V0VmVyc2lvbkluZm8ocmVhZGVyLmdldFVuaWNvZGVWZXJzaW9uKCkpOworICAgICAgICBub3JtQ29yclZlciAgID0gZ2V0VmVyc2lvbkluZm8oaW5kZXhlc1tOT1JNX0NPUlJFQ1ROU19MQVNUX1VOSV9WRVJTSU9OXSk7CisgICAgICAgIFZlcnNpb25JbmZvIG5vcm1VbmlWZXIgPSBOb3JtYWxpemVyLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgICAgIGlmKG5vcm1VbmlWZXIuY29tcGFyZVRvKHNwcmVwVW5pVmVyKSA8IDAgJiYgLyogdGhlIFVuaWNvZGUgdmVyc2lvbiBvZiBTUFJFUCBmaWxlIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBVbmljb2RlIFZlc2lvbiBvZiB0aGUgbm9ybWFsaXphdGlvbiBkYXRhICovCisgICAgICAgICAgIG5vcm1VbmlWZXIuY29tcGFyZVRvKG5vcm1Db3JyVmVyKSA8IDAgJiYgLyogdGhlIFVuaWNvZGUgdmVyc2lvbiBvZiB0aGUgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLnR4dCBmaWxlIHNob3VsZCBiZSBsZXNzIHRoYW4gdGhlIFVuaWNvZGUgVmVzaW9uIG9mIHRoZSBub3JtYWxpemF0aW9uIGRhdGEgKi8KKyAgICAgICAgICAgKChpbmRleGVzW09QVElPTlNdICYgTk9STUFMSVpBVElPTl9PTikgPiAwKSAvKiBub3JtYWxpemF0aW9uIHR1cm5lZCBvbiovCisgICAgICAgICAgICl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIk5vcm1hbGl6YXRpb24gQ29ycmVjdGlvbiB2ZXJzaW9uIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBiLmNsb3NlKCk7CisgICAgICAgIAorICAgICAgICBpZihjaGVja0JpRGkpIHsKKyAgICAgICAgICAgIGJkcD1VQmlEaVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9CisgICAgfQorIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFZhbHVlc3sKKyAgICAgICAgYm9vbGVhbiBpc0luZGV4OworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIGludCB0eXBlOworICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpeworICAgICAgICAgICAgaXNJbmRleCA9IGZhbHNlOworICAgICAgICAgICAgdmFsdWUgPSAwOworICAgICAgICAgICAgdHlwZSA9IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBnZXRWYWx1ZXMoY2hhciB0cmllV29yZCxWYWx1ZXMgdmFsdWVzKXsKKyAgICAgICAgdmFsdWVzLnJlc2V0KCk7CisgICAgICAgIGlmKHRyaWVXb3JkID09IDApeworICAgICAgICAgICAgLyogCisgICAgICAgICAgICAgKiBJbml0aWFsIHZhbHVlIHN0b3JlZCBpbiB0aGUgbWFwcGluZyB0YWJsZSAKKyAgICAgICAgICAgICAqIGp1c3QgcmV0dXJuIFRZUEVfTElNSVQgLi4gc28gdGhhdAorICAgICAgICAgICAgICogdGhlIHNvdXJjZSBjb2RlcG9pbnQgaXMgY29waWVkIHRvIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB2YWx1ZXMudHlwZSA9IFRZUEVfTElNSVQ7CisgICAgICAgIH1lbHNlIGlmKHRyaWVXb3JkID49IFRZUEVfVEhSRVNIT0xEKXsKKyAgICAgICAgICAgIHZhbHVlcy50eXBlID0gKHRyaWVXb3JkIC0gVFlQRV9USFJFU0hPTEQpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8qIGdldCB0aGUgdHlwZSAqLworICAgICAgICAgICAgdmFsdWVzLnR5cGUgPSBNQVA7CisgICAgICAgICAgICAvKiBhc2NlcnRhaW4gaWYgdGhlIHZhbHVlIGlzIGluZGV4IG9yIGRlbHRhICovCisgICAgICAgICAgICBpZigodHJpZVdvcmQgJiAweDAyKT4wKXsKKyAgICAgICAgICAgICAgICB2YWx1ZXMuaXNJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgdmFsdWVzLnZhbHVlID0gdHJpZVdvcmQgID4+IDI7IC8vbWFzayBvZmYgdGhlIGxvd2VyIDIgYml0cyBhbmQgc2hpZnQKKworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgdmFsdWVzLmlzSW5kZXggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMudmFsdWUgPSAoKGludCkodHJpZVdvcmQ8PDE2KSk+PjE2OworICAgICAgICAgICAgICAgIHZhbHVlcy52YWx1ZSA9ICAodmFsdWVzLnZhbHVlID4+IDIpOworCisgICAgICAgICAgICB9CisgCisgICAgICAgICAgICBpZigodHJpZVdvcmQ+PjIpID09IE1BWF9JTkRFWF9WQUxVRSl7CisgICAgICAgICAgICAgICAgdmFsdWVzLnR5cGUgPSBERUxFVEU7CisgICAgICAgICAgICAgICAgdmFsdWVzLmlzSW5kZXggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMudmFsdWUgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1hcCggVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIGludCBvcHRpb25zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgCisgICAgICAgIFZhbHVlcyB2YWwgPSBuZXcgVmFsdWVzKCk7CisgICAgICAgIGNoYXIgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IGNoICA9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FOworICAgICAgICBTdHJpbmdCdWZmZXIgZGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYm9vbGVhbiBhbGxvd1VuYXNzaWduZWQgPSAoKG9wdGlvbnMgJiBBTExPV19VTkFTU0lHTkVEKT4wKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICAgICAgICAgIGdldFZhbHVlcyhyZXN1bHQsdmFsKTsKKworICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHNvdXJjZSBjb2RlcG9pbnQgaXMgdW5hc3NpZ25lZAorICAgICAgICAgICAgaWYodmFsLnR5cGUgPT0gVU5BU1NJR05FRCAmJiBhbGxvd1VuYXNzaWduZWQgPT0gZmFsc2UpeworICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJBbiB1bmFzc2lnbmVkIGNvZGUgcG9pbnQgd2FzIGZvdW5kIGluIHRoZSBpbnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXIuZ2V0VGV4dCgpLGl0ZXIuZ2V0SW5kZXgoKSk7ICAgIAorICAgICAgICAgICAgfWVsc2UgaWYoKHZhbC50eXBlID09IE1BUCkpeworICAgICAgICAgICAgICAgIGludCBpbmRleCwgbGVuZ3RoOworCisgICAgICAgICAgICAgICAgaWYodmFsLmlzSW5kZXgpeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHZhbC52YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaW5kZXggPj0gaW5kZXhlc1tPTkVfVUNIQVJfTUFQUElOR19JTkRFWF9TVEFSVF0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBpbmRleGVzW1RXT19VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0peworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoaW5kZXggPj0gaW5kZXhlc1tUV09fVUNIQVJTX01BUFBJTkdfSU5ERVhfU1RBUlRdICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IDwgaW5kZXhlc1tUSFJFRV9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0peworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoaW5kZXggPj0gaW5kZXhlc1tUSFJFRV9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBpbmRleGVzW0ZPVVJfVUNIQVJTX01BUFBJTkdfSU5ERVhfU1RBUlRdKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDM7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gbWFwcGluZ0RhdGFbaW5kZXgrK107CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLyogY29weSBtYXBwaW5nIHRvIGRlc3RpbmF0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGRlc3QuYXBwZW5kKG1hcHBpbmdEYXRhLGluZGV4LGxlbmd0aCk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBjaCAtPSB2YWwudmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2UgaWYodmFsLnR5cGUgPT0gREVMRVRFKXsKKyAgICAgICAgICAgICAgICAvLyBqdXN0IGNvbnN1bWUgdGhlIGNvZGVwb2ludCBhbmQgY29udGluZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9jb3B5IHRoZSBzb3VyY2UgaW50byBkZXN0aW5hdGlvbgorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGRlc3QsY2gpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVzdDsKKyAgICB9CisKKworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG5vcm1hbGl6ZShTdHJpbmdCdWZmZXIgc3JjKXsKKyAgICAgICAgLyoKKyAgICAgICAgICogT3B0aW9uIFVOT1JNX0JFRk9SRV9QUklfMjk6CisgICAgICAgICAqCisgICAgICAgICAqIElETkEgYXMgaW50ZXJwcmV0ZWQgYnkgSUVURiBtZW1iZXJzIChzZWUgdW5pY29kZSBtYWlsaW5nIGxpc3QgMjAwNEgxKQorICAgICAgICAgKiByZXF1aXJlcyBzdHJpY3QgYWRoZXJlbmNlIHRvIFVuaWNvZGUgMy4yIG5vcm1hbGl6YXRpb24sCisgICAgICAgICAqIGluY2x1ZGluZyBidWdneSBjb21wb3NpdGlvbiBmcm9tIGJlZm9yZSBmaXhpbmcgUHVibGljIFJldmlldyBJc3N1ZSAjMjkuCisgICAgICAgICAqIE5vdGUgdGhhdCB0aGlzIHJlc3VsdHMgaW4gc29tZSB2YWxpZCBidXQgbm9uc2Vuc2ljYWwgdGV4dCB0byBiZQorICAgICAgICAgKiBlaXRoZXIgY29ycnVwdGVkIG9yIHJlamVjdGVkLCBkZXBlbmRpbmcgb24gdGhlIHRleHQuCisgICAgICAgICAqIFNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCNwcmkyOQorICAgICAgICAgKiBTZWUgdW5vcm0uY3BwIGFuZCBjbm9ybXRzdC5jCisgICAgICAgICAqLworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKAorICAgICAgICAgICAgICAgIHNyYy50b1N0cmluZygpLAorICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywKKyAgICAgICAgICAgICAgICBOb3JtYWxpemVyLlVOSUNPREVfM18yfE5vcm1hbGl6ZXJJbXBsLkJFRk9SRV9QUklfMjkpKTsKKyAgICB9CisgICAgLyoKKyAgICBib29sZWFuIGlzTGFiZWxTZXBhcmF0b3IoaW50IGNoKXsKKyAgICAgICAgaW50IHJlc3VsdCA9IGdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICAgICAgaWYoIChyZXN1bHQgJiAweDA3KSAgPT0gTEFCRUxfU0VQQVJBVE9SKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgKi8KKyAgICAgLyoKKyAgICAgICAxKSBNYXAgLS0gRm9yIGVhY2ggY2hhcmFjdGVyIGluIHRoZSBpbnB1dCwgY2hlY2sgaWYgaXQgaGFzIGEgbWFwcGluZworICAgICAgICAgIGFuZCwgaWYgc28sIHJlcGxhY2UgaXQgd2l0aCBpdHMgbWFwcGluZy4gIAorCisgICAgICAgMikgTm9ybWFsaXplIC0tIFBvc3NpYmx5IG5vcm1hbGl6ZSB0aGUgcmVzdWx0IG9mIHN0ZXAgMSB1c2luZyBVbmljb2RlCisgICAgICAgICAgbm9ybWFsaXphdGlvbi4gCisKKyAgICAgICAzKSBQcm9oaWJpdCAtLSBDaGVjayBmb3IgYW55IGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGFsbG93ZWQgaW4gdGhlCisgICAgICAgICAgb3V0cHV0LiAgSWYgYW55IGFyZSBmb3VuZCwgcmV0dXJuIGFuIGVycm9yLiAgCisKKyAgICAgICA0KSBDaGVjayBiaWRpIC0tIFBvc3NpYmx5IGNoZWNrIGZvciByaWdodC10by1sZWZ0IGNoYXJhY3RlcnMsIGFuZCBpZgorICAgICAgICAgIGFueSBhcmUgZm91bmQsIG1ha2Ugc3VyZSB0aGF0IHRoZSB3aG9sZSBzdHJpbmcgc2F0aXNmaWVzIHRoZQorICAgICAgICAgIHJlcXVpcmVtZW50cyBmb3IgYmlkaXJlY3Rpb25hbCBzdHJpbmdzLiAgSWYgdGhlIHN0cmluZyBkb2VzIG5vdAorICAgICAgICAgIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cyBmb3IgYmlkaXJlY3Rpb25hbCBzdHJpbmdzLCByZXR1cm4gYW4KKyAgICAgICAgICBlcnJvci4gIAorICAgICAgICAgIFtVbmljb2RlMy4yXSBkZWZpbmVzIHNldmVyYWwgYmlkaXJlY3Rpb25hbCBjYXRlZ29yaWVzOyBlYWNoIGNoYXJhY3RlcgorICAgICAgICAgICBoYXMgb25lIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcnkgYXNzaWduZWQgdG8gaXQuICBGb3IgdGhlIHB1cnBvc2VzIG9mCisgICAgICAgICAgIHRoZSByZXF1aXJlbWVudHMgYmVsb3csIGFuICJSYW5kQUxDYXQgY2hhcmFjdGVyIiBpcyBhIGNoYXJhY3RlciB0aGF0CisgICAgICAgICAgIGhhcyBVbmljb2RlIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcmllcyAiUiIgb3IgIkFMIjsgYW4gIkxDYXQgY2hhcmFjdGVyIgorICAgICAgICAgICBpcyBhIGNoYXJhY3RlciB0aGF0IGhhcyBVbmljb2RlIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcnkgIkwiLiAgTm90ZQorCisKKyAgICAgICAgICAgdGhhdCB0aGVyZSBhcmUgbWFueSBjaGFyYWN0ZXJzIHdoaWNoIGZhbGwgaW4gbmVpdGhlciBvZiB0aGUgYWJvdmUKKyAgICAgICAgICAgZGVmaW5pdGlvbnM7IExhdGluIGRpZ2l0cyAoPFUrMDAzMD4gdGhyb3VnaCA8VSswMDM5PikgYXJlIGV4YW1wbGVzIG9mCisgICAgICAgICAgIHRoaXMgYmVjYXVzZSB0aGV5IGhhdmUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSAiRU4iLgorCisgICAgICAgICAgIEluIGFueSBwcm9maWxlIHRoYXQgc3BlY2lmaWVzIGJpZGlyZWN0aW9uYWwgY2hhcmFjdGVyIGhhbmRsaW5nLCBhbGwKKyAgICAgICAgICAgdGhyZWUgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMgTVVTVCBiZSBtZXQ6CisKKyAgICAgICAgICAgMSkgVGhlIGNoYXJhY3RlcnMgaW4gc2VjdGlvbiA1LjggTVVTVCBiZSBwcm9oaWJpdGVkLgorCisgICAgICAgICAgIDIpIElmIGEgc3RyaW5nIGNvbnRhaW5zIGFueSBSYW5kQUxDYXQgY2hhcmFjdGVyLCB0aGUgc3RyaW5nIE1VU1QgTk9UCisgICAgICAgICAgICAgIGNvbnRhaW4gYW55IExDYXQgY2hhcmFjdGVyLgorCisgICAgICAgICAgIDMpIElmIGEgc3RyaW5nIGNvbnRhaW5zIGFueSBSYW5kQUxDYXQgY2hhcmFjdGVyLCBhIFJhbmRBTENhdAorICAgICAgICAgICAgICBjaGFyYWN0ZXIgTVVTVCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcsIGFuZCBhCisgICAgICAgICAgICAgIFJhbmRBTENhdCBjaGFyYWN0ZXIgTVVTVCBiZSB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZy4KKyAgICAqLworICAgIC8qKgorICAgICAqIFByZXBhcmUgdGhlIGlucHV0IGJ1ZmZlciBmb3IgdXNlIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSBnaXZlbiBwcm9maWxlLiBUaGlzIG9wZXJhdGlvbiBtYXBzLCBub3JtYWxpemVzKE5GS0MpLAorICAgICAqIGNoZWNrcyBmb3IgcHJvaGl0ZWQgYW5kIEJpRGkgY2hhcmFjdGVycyBpbiB0aGUgb3JkZXIgZGVmaW5lZCBieSBSRkMgMzQ1NAorICAgICAqIGRlcGVuZGluZyBvbiB0aGUgb3B0aW9ucyBzcGVjaWZpZWQgaW4gdGhlIHByb2ZpbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgICAgICBBIFVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QgY29udGFpbmluZyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEBwYXJhbSBvcHRpb25zICAgICAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqCisgICAgICogIC0gU3RyaW5nUHJlcC5OT05FICAgICAgICAgICAgICAgUHJvaGliaXQgcHJvY2Vzc2luZyBvZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGluIHRoZSBpbnB1dAorICAgICAqCisgICAgICogIC0gU3RyaW5nUHJlcC5BTExPV19VTkFTU0lHTkVEICAgVHJlYXQgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIEEgU3RyaW5nQnVmZmVyIGNvbnRhaW5pbmcgdGhlIG91dHB1dAorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIHByZXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBtYXAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBtYXBPdXQgPSBtYXAoc3JjLG9wdGlvbnMpOworICAgICAgICBTdHJpbmdCdWZmZXIgbm9ybU91dCA9IG1hcE91dDsvLyBpbml0aWFsaXplIAorICAgICAgICAKKyAgICAgICAgaWYoZG9ORktDKXsKKyAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSAKKyAgICAgICAgICAgIG5vcm1PdXQgPSBub3JtYWxpemUobWFwT3V0KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBjaDsKKyAgICAgICAgY2hhciByZXN1bHQ7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5vcm1PdXQpOworICAgICAgICBWYWx1ZXMgdmFsID0gbmV3IFZhbHVlcygpOyAKKyAgICAgICAgaW50IGRpcmVjdGlvbj1VQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5ULAorICAgICAgICAgICAgZmlyc3RDaGFyRGlyPVVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQ7ICAgIAorICAgICAgICBpbnQgcnRsUG9zPS0xLCBsdHJQb3M9LTE7CisgICAgICAgIGJvb2xlYW4gcmlnaHRUb0xlZnQ9ZmFsc2UsIGxlZnRUb1JpZ2h0PWZhbHNlOworICAgICAgICAgICAKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dENvZGVQb2ludCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICAgICAgICAgIGdldFZhbHVlcyhyZXN1bHQsdmFsKTsKKworICAgICAgICAgICAgaWYodmFsLnR5cGUgPT0gUFJPSElCSVRFRCApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkEgcHJvaGliaXRlZCBjb2RlIHBvaW50IHdhcyBmb3VuZCBpbiB0aGUgaW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUixpdGVyLmdldFRleHQoKSx2YWwudmFsdWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihjaGVja0JpRGkpIHsKKyAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSBiZHAuZ2V0Q2xhc3MoY2gpOworICAgICAgICAgICAgICAgIGlmKGZpcnN0Q2hhckRpciA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5UKXsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RDaGFyRGlyID0gZGlyZWN0aW9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUKXsKKyAgICAgICAgICAgICAgICAgICAgbGVmdFRvUmlnaHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBsdHJQb3MgPSBpdGVyLmdldEluZGV4KCktMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB8fCBkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyl7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0VG9MZWZ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgcnRsUG9zID0gaXRlci5nZXRJbmRleCgpLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgaWYoY2hlY2tCaURpID09IHRydWUpeworICAgICAgICAgICAgLy8gc2F0aXNmeSAyCisgICAgICAgICAgICBpZiggbGVmdFRvUmlnaHQgPT0gdHJ1ZSAmJiByaWdodFRvTGVmdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgcnVsZXMgZm9yIEJpRGkgY29kZSBwb2ludHMuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkNIRUNLX0JJRElfRVJST1IsaXRlci5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChydGxQb3M+bHRyUG9zKSA/IHJ0bFBvcyA6IGx0clBvcyk7CisgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy9zYXRpc2Z5IDMKKyAgICAgICAgICAgIGlmKCByaWdodFRvTGVmdCA9PSB0cnVlICYmIAorICAgICAgICAgICAgICAgICEoKGZpcnN0Q2hhckRpciA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfHwgZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMpICYmCisgICAgICAgICAgICAgICAgKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfHwgZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMpKQorICAgICAgICAgICAgICApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBydWxlcyBmb3IgQmlEaSBjb2RlIHBvaW50cy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUixpdGVyLmdldFRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ0bFBvcz5sdHJQb3MpID8gcnRsUG9zIDogbHRyUG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybU91dDsKKworICAgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDZlZWUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwyMDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKKy8qKgorICogRXhjZXB0aW9uIHRoYXQgc2lnbmFscyBhbiBlcnJvciBoYXMgb2NjdXJyZWQgd2hpbGUgcGFyc2luZyB0aGUgCisgKiBpbnB1dCB0byBTdHJpbmdQcmVwIG9yIElETkEuIAorICoKKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4dGVuZHMgUGFyc2VFeGNlcHRpb24geworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNzE2MDI2NDgyNzcwMTY1MTI1NUw7CisgICAgCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WQUxJRF9DSEFSX0ZPVU5EICAgICAgPSAwOworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElMTEVHQUxfQ0hBUl9GT1VORCAgICAgID0gMTsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUk9ISUJJVEVEX0VSUk9SICAgICAgICA9IDI7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5BU1NJR05FRF9FUlJPUiAgICAgICAgPSAzOworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIRUNLX0JJRElfRVJST1IgICAgICAgID0gNDsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEQzX0FTQ0lJX1JVTEVTX0VSUk9SICA9IDU7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUNFX1BSRUZJWF9FUlJPUiAgICAgICAgPSA2OworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZFUklGSUNBVElPTl9FUlJPUiAgICAgID0gNzsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQUJFTF9UT09fTE9OR19FUlJPUiAgICA9IDg7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlVGRkVSX09WRVJGTE9XX0VSUk9SICAgPSA5OworICAgIAorICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFpFUk9fTEVOR1RIX0xBQkVMICAgPSAxMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBQYXJzZUV4Y2VwdGlvbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZQorICAgICAqIGFuZCBlcnJvciBjb2RlCisgICAgICogCisgICAgICogQHBhcmFtIG1lc3NhZ2UgQSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkCisgICAgICogQHBhcmFtIGVycm9yICAgVGhlIGVycm9yIHRoYXQgaGFzIG9jY3VycmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSxpbnQgZXJyb3IpeworICAgICAgICBzdXBlcihtZXNzYWdlLCAtMSk7CisgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgdGhpcy5saW5lID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgUGFyc2VFeGNlcHRpb24gb2JqZWN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UgYW5kCisgICAgICogZXJyb3IgY29kZQorICAgICAqIAorICAgICAqIEBwYXJhbSBtZXNzYWdlIEEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZAorICAgICAqIEBwYXJhbSBlcnJvciAgIFRoZSBlcnJvciB0aGF0IGhhcyBvY2N1cnJlZAorICAgICAqIEBwYXJhbSBydWxlcyAgIFRoZSBpbnB1dCBydWxlcyBzdHJpbmcgCisgICAgICogQHBhcmFtIHBvcyAgICAgVGhlIHBvc2l0aW9uIG9mIGVycm9yIGluIHRoZSBydWxlcyBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlLGludCBlcnJvciwgU3RyaW5nIHJ1bGVzLCBpbnQgcG9zKXsKKyAgICAgICAgc3VwZXIobWVzc2FnZSwgLTEpOworICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7CisgICAgICAgIHNldENvbnRleHQocnVsZXMscG9zKTsgIAorICAgICAgICB0aGlzLmxpbmUgPSAwOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgIGEgUGFyc2VFeGNlcHRpb24gb2JqZWN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UgYW5kIGVycm9yIGNvZGUKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSAgICBBIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQKKyAgICAgKiBAcGFyYW0gZXJyb3IgICAgICBUaGUgZXJyb3IgdGhhdCBoYXMgb2NjdXJyZWQKKyAgICAgKiBAcGFyYW0gcnVsZXMgICAgICBUaGUgaW5wdXQgcnVsZXMgc3RyaW5nIAorICAgICAqIEBwYXJhbSBwb3MgICAgICAgIFRoZSBwb3NpdGlvbiBvZiBlcnJvciBpbiB0aGUgcnVsZXMgc3RyaW5nCisgICAgICogQHBhcmFtIGxpbmVOdW1iZXIgVGhlIGxpbmUgbnVtYmVyIGF0IHdoaWNoIHRoZSBlcnJvciBoYXMgb2NjdXJyZWQuIAorICAgICAqICAgICAgICAgICAgICAgICAgIElmIHRoZSBwYXJzZSBlbmdpbmUgaXMgbm90IHVzaW5nIHRoaXMgZmllbGQsIGl0IHNob3VsZCBzZXQgaXQgdG8gemVyby4gIE90aGVyd2lzZQorICAgICAqICAgICAgICAgICAgICAgICAgIGl0IHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgZmllbGQKKyAgICAgKiAgICAgICAgICAgICAgICAgICBpcyAtMS4gSXQgd2lsbCBiZSBzZXQgdG8gMCBpZiB0aGUgY29kZSBwb3B1bGF0aW5nIHRoaXMgc3RydWN0IGlzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgIHVzaW5nIGxpbmUgbnVtYmVycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlLCBpbnQgZXJyb3IsIFN0cmluZyBydWxlcywgaW50IHBvcywgaW50IGxpbmVOdW1iZXIpeworICAgICAgICBzdXBlcihtZXNzYWdlLCAtMSk7CisgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgc2V0Q29udGV4dChydWxlcyxwb3MpOyAgIAorICAgICAgICB0aGlzLmxpbmUgPSBsaW5lTnVtYmVyOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgUGFyc2VFeGNlcHRpb24gdG8gYW5vdGhlciBhbmQgZXZhbHVhdGUgaWYgdGhleSBhcmUgZXF1YWwuCisgICAgICogVGhlIGNvbXBhcmlzb24gd29ya3Mgb25seSBvbiB0aGUgdHlwZSBvZiBlcnJvciBhbmQgZG9lcyBub3QgY29tcGFyZQorICAgICAqIHRoZSBydWxlcyBzdHJpbmdzLCBpZiBhbnksIGZvciBlcXVhbGl0eS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGV4Y2VwdGlvbiB0aGF0IHRoaXMgb2JqZWN0IHNob3VsZCBiZSBjb21wYXJlZCB0bworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1YWwsIGZhbHNlIGlmIHVuZXF1YWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKXsKKyAgICAgICAgaWYoIShvdGhlciBpbnN0YW5jZW9mIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbikpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbilvdGhlcikuZXJyb3IgPT0gdGhpcy5lcnJvcjsKKyAgICAgICAgCisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIGVycm9yIGluIHRoZSBydWxlcyBzdHJpbmcKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmLmFwcGVuZChzdXBlci5nZXRNZXNzYWdlKCkpOworICAgICAgICBidWYuYXBwZW5kKCIuIHByZUNvbnRleHQ6ICAiKTsKKyAgICAgICAgYnVmLmFwcGVuZChwcmVDb250ZXh0KTsKKyAgICAgICAgYnVmLmFwcGVuZCgiLiBwb3N0Q29udGV4dDogIik7CisgICAgICAgIGJ1Zi5hcHBlbmQocG9zdENvbnRleHQpOworICAgICAgICBidWYuYXBwZW5kKCJcbiIpOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZXJyb3I7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGxpbmUgb24gd2hpY2ggdGhlIGVycm9yIG9jY3VyZWQuICBJZiB0aGUgcGFyc2UgZW5naW5lCisgICAgICogaXMgbm90IHVzaW5nIHRoaXMgZmllbGQsIGl0IHNob3VsZCBzZXQgaXQgdG8gemVyby4gIE90aGVyd2lzZQorICAgICAqIGl0IHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgZmllbGQKKyAgICAgKiBpcyAtMS4gSXQgd2lsbCBiZSBzZXQgdG8gMCBpZiB0aGUgY29kZSBwb3B1bGF0aW5nIHRoaXMgc3RydWN0IGlzIG5vdAorICAgICAqIHVzaW5nIGxpbmUgbnVtYmVycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjggIAorICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmU7CisKKworICAgIC8qKgorICAgICAqIFRleHR1YWwgY29udGV4dCBiZWZvcmUgdGhlIGVycm9yLiAgTnVsbC10ZXJtaW5hdGVkLgorICAgICAqIE1heSBiZSB0aGUgZW1wdHkgc3RyaW5nIGlmIG5vdCBpbXBsZW1lbnRlZCBieSBwYXJzZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgcHJlQ29udGV4dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgIC8qKgorICAgICAqIFRleHR1YWwgY29udGV4dCBhZnRlciB0aGUgZXJyb3IuICBOdWxsLXRlcm1pbmF0ZWQuCisgICAgICogTWF5IGJlIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm90IGltcGxlbWVudGVkIGJ5IHBhcnNlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjggICAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBwb3N0Q29udGV4dCA9ICBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBBUlNFX0NPTlRFWFRfTEVOID0gMTY7CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFByZUNvbnRleHQoU3RyaW5nIHN0ciwgaW50IHBvcyl7CisgICAgICAgIHNldFByZUNvbnRleHQoc3RyLnRvQ2hhckFycmF5KCkscG9zKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFByZUNvbnRleHQoY2hhcltdIHN0ciwgaW50IHBvcyl7CisgICAgICAgIGludCBzdGFydCA9IChwb3MgPD0gUEFSU0VfQ09OVEVYVF9MRU4pPyAwIDogKHBvcyAtIChQQVJTRV9DT05URVhUX0xFTi0xKSk7CisgICAgICAgIGludCBsZW4gPSAoc3RhcnQgPD0gUEFSU0VfQ09OVEVYVF9MRU4pPyBzdGFydCA6IFBBUlNFX0NPTlRFWFRfTEVOOworICAgICAgICBwcmVDb250ZXh0LmFwcGVuZChzdHIsc3RhcnQsbGVuKTsKKyAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFBvc3RDb250ZXh0KFN0cmluZyBzdHIsIGludCBwb3MpeworICAgICAgICBzZXRQb3N0Q29udGV4dChzdHIudG9DaGFyQXJyYXkoKSxwb3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0UG9zdENvbnRleHQoY2hhcltdIHN0ciwgaW50IHBvcyl7CisgICAgICAgIGludCBzdGFydCA9IHBvczsKKyAgICAgICAgaW50IGxlbiAgPSBzdHIubGVuZ3RoIC0gc3RhcnQ7IAorICAgICAgICBwb3N0Q29udGV4dC5hcHBlbmQoc3RyLHN0YXJ0LGxlbik7CisKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldENvbnRleHQoU3RyaW5nIHN0cixpbnQgcG9zKXsKKyAgICAgICAgc2V0UHJlQ29udGV4dChzdHIscG9zKTsKKyAgICAgICAgc2V0UG9zdENvbnRleHQoc3RyLHBvcyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUmVwbGFjZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1JlcGxhY2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGY4YWRlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1JlcGxhY2VyLmphdmEKQEAgLTAsMCArMSwzMjggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqICAgYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMS8xNC8yMDAyICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQSByZXBsYWNlciB0aGF0IHByb2R1Y2VzIHN0YXRpYyB0ZXh0IGFzIGl0cyBvdXRwdXQuICBUaGUgdGV4dCBtYXkKKyAqIGNvbnRhaW4gdHJhbnNsaXRlcmF0b3Igc3RhbmQtaW4gY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudCBuZXN0ZWQKKyAqIFVuaWNvZGVSZXBsYWNlciBvYmplY3RzLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gZW5jb2RlIGEgdHJlZSBvZgorICogcmVwbGFjZXJzIGluIGEgU3RyaW5nUmVwbGFjZXIuICBBIFN0cmluZ1JlcGxhY2VyIHRoYXQgY29udGFpbnMgc3VjaAorICogc3RhbmQtaW5zIGlzIGNhbGxlZCBhIDxlbT5jb21wbGV4PC9lbT4gU3RyaW5nUmVwbGFjZXIuICBBIGNvbXBsZXgKKyAqIFN0cmluZ1JlcGxhY2VyIGhhcyBhIHNsb3dlciBwcm9jZXNzaW5nIGxvb3AgdGhhbiBhIG5vbi1jb21wbGV4IG9uZS4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgU3RyaW5nUmVwbGFjZXIgaW1wbGVtZW50cyBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogT3V0cHV0IHRleHQsIHBvc3NpYmx5IGNvbnRhaW5pbmcgc3RhbmQtaW4gY2hhcmFjdGVycyB0aGF0CisgICAgICogcmVwcmVzZW50IG5lc3RlZCBVbmljb2RlUmVwbGFjZXJzLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIG91dHB1dDsKKworICAgIC8qKgorICAgICAqIEN1cnNvciBwb3NpdGlvbi4gIFZhbHVlIGlzIGlnbm9yZWQgaWYgaGFzQ3Vyc29yIGlzIGZhbHNlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGN1cnNvclBvczsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhpcyBvYmplY3Qgb3V0cHV0cyBhIGN1cnNvciBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaGFzQ3Vyc29yOworCisgICAgLyoqCisgICAgICogQSBjb21wbGV4IG9iamVjdCBjb250YWlucyBuZXN0ZWQgcmVwbGFjZXJzIGFuZCByZXF1aXJlcyBtb3JlCisgICAgICogY29tcGxleCBwcm9jZXNzaW5nLiAgU3RyaW5nUmVwbGFjZXJzIGFyZSBpbml0aWFsbHkgYXNzdW1lZCB0bworICAgICAqIGJlIGNvbXBsZXguICBJZiBubyBuZXN0ZWQgcmVwbGFjZXJzIGFyZSBzZWVuIGR1cmluZyBwcm9jZXNzaW5nLAorICAgICAqIHRoZW4gaXNDb21wbGV4IGlzIHNldCB0byBmYWxzZSwgYW5kIGZ1dHVyZSByZXBsYWNlbWVudHMgYXJlCisgICAgICogc2hvcnQgY2lyY3VpdGVkIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzQ29tcGxleDsKKworICAgIC8qKgorICAgICAqIE9iamVjdCB0aGF0IHRyYW5zbGF0ZXMgc3RhbmQtaW4gY2hhcmFjdGVycyBpbiAnb3V0cHV0JyB0bworICAgICAqIFVuaWNvZGVSZXBsYWNlciBvYmplY3RzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU3RyaW5nUmVwbGFjZXIgdGhhdCBzZXRzIHRoZSBlbWl0cyB0aGUgZ2l2ZW4gb3V0cHV0CisgICAgICogdGV4dCBhbmQgc2V0cyB0aGUgY3Vyc29yIHRvIHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gdGhlT3V0cHV0IHRleHQgdGhhdCB3aWxsIHJlcGxhY2UgaW5wdXQgdGV4dCB3aGVuIHRoZQorICAgICAqIHJlcGxhY2UoKSBtZXRob2QgaXMgY2FsbGVkLiAgTWF5IGNvbnRhaW4gc3RhbmQtaW4gY2hhcmFjdGVycworICAgICAqIHRoYXQgcmVwcmVzZW50IG5lc3RlZCByZXBsYWNlcnMuCisgICAgICogQHBhcmFtIHRoZUN1cnNvclBvcyBjdXJzb3IgcG9zaXRpb24gdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5CisgICAgICogdGhlIHJlcGxhY2UoKSBtZXRob2QKKyAgICAgKiBAcGFyYW0gdGhlRGF0YSB0cmFuc2xpdGVyYXRvciBjb250ZXh0IG9iamVjdCB0aGF0IHRyYW5zbGF0ZXMKKyAgICAgKiBzdGFuZC1pbiBjaGFyYWN0ZXJzIHRvIFVuaWNvZGVSZXBsYWNlciBvYmplY3RzCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1JlcGxhY2VyKFN0cmluZyB0aGVPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aGVDdXJzb3JQb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgdGhlRGF0YSkgeworICAgICAgICBvdXRwdXQgPSB0aGVPdXRwdXQ7CisgICAgICAgIGN1cnNvclBvcyA9IHRoZUN1cnNvclBvczsKKyAgICAgICAgaGFzQ3Vyc29yID0gdHJ1ZTsKKyAgICAgICAgZGF0YSA9IHRoZURhdGE7CisgICAgICAgIGlzQ29tcGxleCA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU3RyaW5nUmVwbGFjZXIgdGhhdCBzZXRzIHRoZSBlbWl0cyB0aGUgZ2l2ZW4gb3V0cHV0CisgICAgICogdGV4dCBhbmQgZG9lcyBub3QgbW9kaWZ5IHRoZSBjdXJzb3IuCisgICAgICogQHBhcmFtIHRoZU91dHB1dCB0ZXh0IHRoYXQgd2lsbCByZXBsYWNlIGlucHV0IHRleHQgd2hlbiB0aGUKKyAgICAgKiByZXBsYWNlKCkgbWV0aG9kIGlzIGNhbGxlZC4gIE1heSBjb250YWluIHN0YW5kLWluIGNoYXJhY3RlcnMKKyAgICAgKiB0aGF0IHJlcHJlc2VudCBuZXN0ZWQgcmVwbGFjZXJzLgorICAgICAqIEBwYXJhbSB0aGVEYXRhIHRyYW5zbGl0ZXJhdG9yIGNvbnRleHQgb2JqZWN0IHRoYXQgdHJhbnNsYXRlcworICAgICAqIHN0YW5kLWluIGNoYXJhY3RlcnMgdG8gVW5pY29kZVJlcGxhY2VyIG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUmVwbGFjZXIoU3RyaW5nIHRoZU91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIG91dHB1dCA9IHRoZU91dHB1dDsKKyAgICAgICAgY3Vyc29yUG9zID0gMDsKKyAgICAgICAgaGFzQ3Vyc29yID0gZmFsc2U7CisgICAgICAgIGRhdGEgPSB0aGVEYXRhOworICAgICAgICBpc0NvbXBsZXggPSB0cnVlOworICAgIH0KKworLy89ICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVJlcGxhY2VyIHZhbHVlT2YoU3RyaW5nIG91dHB1dCwKKy8vPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJzb3JQb3MsCisvLz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGEpIHsKKy8vPSAgICAgICAgaWYgKG91dHB1dC5sZW5ndGgoKSA9PSAxKSB7CisvLz0gICAgICAgICAgICBjaGFyIGMgPSBvdXRwdXQuY2hhckF0KDApOworLy89ICAgICAgICAgICAgVW5pY29kZVJlcGxhY2VyIHIgPSBkYXRhLmxvb2t1cFJlcGxhY2VyKGMpOworLy89ICAgICAgICAgICAgaWYgKHIgIT0gbnVsbCkgeworLy89ICAgICAgICAgICAgICAgIHJldHVybiByOworLy89ICAgICAgICAgICAgfQorLy89ICAgICAgICB9CisvLz0gICAgICAgIHJldHVybiBuZXcgU3RyaW5nUmVwbGFjZXIob3V0cHV0LCBjdXJzb3JQb3MsIGRhdGEpOworLy89ICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHJlcGxhY2UoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGN1cnNvcikgeworICAgICAgICBpbnQgb3V0TGVuOworICAgICAgICBpbnQgbmV3U3RhcnQgPSAwOworCisgICAgICAgIC8vIE5PVEU6IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBfYWx3YXlzXyBydW4gdGhlIGNvbXBsZXgKKyAgICAgICAgLy8gcHJvY2Vzc2luZyBjb2RlOyBqdXN0IHNsb3dlci4gIElmIG5vdCwgdGhlbiB0aGVyZSBpcyBhIGJ1ZworICAgICAgICAvLyBpbiB0aGUgY29tcGxleCBwcm9jZXNzaW5nIGNvZGUuCisKKyAgICAgICAgLy8gU2ltcGxlIChubyBuZXN0ZWQgcmVwbGFjZXJzKSBQcm9jZXNzaW5nIENvZGUgOgorICAgICAgICBpZiAoIWlzQ29tcGxleCkgeworICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgb3V0cHV0KTsKKyAgICAgICAgICAgIG91dExlbiA9IG91dHB1dC5sZW5ndGgoKTsKKworICAgICAgICAgICAgLy8gU2V0dXAgZGVmYXVsdCBjdXJzb3IgcG9zaXRpb24gKGZvciBjdXJzb3JQb3Mgd2l0aGluIG91dHB1dCkKKyAgICAgICAgICAgIG5ld1N0YXJ0ID0gY3Vyc29yUG9zOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29tcGxleCAobmVzdGVkIHJlcGxhY2VycykgUHJvY2Vzc2luZyBDb2RlIDoKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvKiBXaGVuIHRoZXJlIGFyZSBzZWdtZW50cyB0byBiZSBjb3BpZWQsIHVzZSB0aGUgUmVwbGFjZWFibGUuY29weSgpCisgICAgICAgICAgICAgKiBBUEkgaW4gb3JkZXIgdG8gcmV0YWluIG91dC1vZi1iYW5kIGRhdGEuICBDb3B5IGV2ZXJ5dGhpbmcgdG8gdGhlCisgICAgICAgICAgICAgKiBlbmQgb2YgdGhlIHN0cmluZywgdGhlbiBjb3B5IHRoZW0gYmFjayBvdmVyIHRoZSBrZXkuICBUaGlzIHByZXNlcnZlcworICAgICAgICAgICAgICogdGhlIGludGVncml0eSBvZiBpbmRpY2VzIGludG8gdGhlIGtleSBhbmQgc3Vycm91bmRpbmcgY29udGV4dCB3aGlsZQorICAgICAgICAgICAgICogZ2VuZXJhdGluZyB0aGUgb3V0cHV0IHRleHQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgb091dHB1dDsgLy8gb2Zmc2V0IGludG8gJ291dHB1dCcKKyAgICAgICAgICAgIGlzQ29tcGxleCA9IGZhbHNlOworCisgICAgICAgICAgICAvLyBUaGUgdGVtcG9yYXJ5IGJ1ZmZlciBzdGFydHMgYXQgdGVtcFN0YXJ0LCBhbmQgZXh0ZW5kcworICAgICAgICAgICAgLy8gdG8gZGVzdExpbWl0ICsgdGVtcEV4dHJhLiAgVGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIgaGFzIGEgc2luZ2xlCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgZnJvbSBiZWZvcmUgdGhlIGtleS4gIFRoaXMgcHJvdmlkZXMgc3R5bGUKKyAgICAgICAgICAgIC8vIGRhdGEgd2hlbiBhZGRpdGlvbiBjaGFyYWN0ZXJzIGFyZSBmaWxsZWQgaW50byB0aGUKKyAgICAgICAgICAgIC8vIHRlbXBvcmFyeSBidWZmZXIuICBJZiB0aGVyZSBpcyBub3RoaW5nIHRvIHRoZSBsZWZ0LCB1c2UKKyAgICAgICAgICAgIC8vIHRoZSBub24tY2hhcmFjdGVyIFUrRkZGRiwgd2hpY2ggUmVwbGFjZWFibGUgc3ViY2xhc3NlcworICAgICAgICAgICAgLy8gc2hvdWxkIHRyZWF0IHNwZWNpYWxseSBhcyBhICJuby1zdHlsZSBjaGFyYWN0ZXIuIgorICAgICAgICAgICAgLy8gZGVzdFN0YXJ0IHBvaW50cyB0byB0aGUgcG9pbnQgYWZ0ZXIgdGhlIHN0eWxlIGNvbnRleHQKKyAgICAgICAgICAgIC8vIGNoYXJhY3Rlciwgc28gaXQgaXMgdGVtcFN0YXJ0KzEgb3IgdGVtcFN0YXJ0KzIuCisgICAgICAgICAgICBpbnQgdGVtcFN0YXJ0ID0gdGV4dC5sZW5ndGgoKTsgLy8gc3RhcnQgb2YgdGVtcCBidWZmZXIKKyAgICAgICAgICAgIGludCBkZXN0U3RhcnQgPSB0ZW1wU3RhcnQ7IC8vIGNvcHkgbmV3IHRleHQgdG8gaGVyZQorICAgICAgICAgICAgaWYgKHN0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgIGludCBsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChzdGFydC0xKSk7CisgICAgICAgICAgICAgICAgdGV4dC5jb3B5KHN0YXJ0LWxlbiwgc3RhcnQsIHRlbXBTdGFydCk7CisgICAgICAgICAgICAgICAgZGVzdFN0YXJ0ICs9IGxlbjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHRlbXBTdGFydCwgdGVtcFN0YXJ0LCAiXHVGRkZGIik7CisgICAgICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgZGVzdExpbWl0ID0gZGVzdFN0YXJ0OworICAgICAgICAgICAgaW50IHRlbXBFeHRyYSA9IDA7IC8vIHRlbXAgY2hhcnMgYWZ0ZXIgZGVzdExpbWl0CisKKyAgICAgICAgICAgIGZvciAob091dHB1dD0wOyBvT3V0cHV0PG91dHB1dC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICAgICAgaWYgKG9PdXRwdXQgPT0gY3Vyc29yUG9zKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnNvcgorICAgICAgICAgICAgICAgICAgICBuZXdTdGFydCA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsgLy8gcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQob3V0cHV0LCBvT3V0cHV0KTsKKworICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGF0IHRoZSBsYXN0IHBvc2l0aW9uIGNvcHkgdGhlIHJpZ2h0IHN0eWxlCisgICAgICAgICAgICAgICAgLy8gY29udGV4dCBjaGFyYWN0ZXIgaW50byB0aGUgdGVtcG9yYXJ5IGJ1ZmZlci4gIFdlIGRvbid0CisgICAgICAgICAgICAgICAgLy8gZG8gdGhpcyBiZWZvcmUgYmVjYXVzZSBpdCB3aWxsIHByb3ZpZGUgYW4gaW5jb3JyZWN0CisgICAgICAgICAgICAgICAgLy8gcmlnaHQgY29udGV4dCBmb3IgcHJldmlvdXMgcmVwbGFjZSgpIG9wZXJhdGlvbnMuCisgICAgICAgICAgICAgICAgaW50IG5leHRJbmRleCA9IG9PdXRwdXQgKyBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJbmRleCA9PSBvdXRwdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcEV4dHJhID0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQobGltaXQpKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5jb3B5KGxpbWl0LCBsaW1pdCt0ZW1wRXh0cmEsIGRlc3RMaW1pdCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgVW5pY29kZVJlcGxhY2VyIHIgPSBkYXRhLmxvb2t1cFJlcGxhY2VyKGMpOworICAgICAgICAgICAgICAgIGlmIChyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWNjdW11bGF0ZSBzdHJhaWdodCAobm9uLXNlZ21lbnQpIHRleHQuCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlzQ29tcGxleCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IGFueSBhY2N1bXVsYXRlZCBzdHJhaWdodCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGRlc3RMaW1pdCwgZGVzdExpbWl0LCBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGltaXQgKz0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIERlbGVnYXRlIG91dHB1dCBnZW5lcmF0aW9uIHRvIHJlcGxhY2VyIG9iamVjdAorICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gci5yZXBsYWNlKHRleHQsIGRlc3RMaW1pdCwgZGVzdExpbWl0LCBjdXJzb3IpOworICAgICAgICAgICAgICAgICAgICBkZXN0TGltaXQgKz0gbGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvT3V0cHV0ID0gbmV4dEluZGV4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gSW5zZXJ0IGFueSBhY2N1bXVsYXRlZCBzdHJhaWdodCB0ZXh0LgorICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoZGVzdExpbWl0LCBkZXN0TGltaXQsIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBkZXN0TGltaXQgKz0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9PdXRwdXQgPT0gY3Vyc29yUG9zKSB7CisgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yCisgICAgICAgICAgICAgICAgbmV3U3RhcnQgPSBkZXN0TGltaXQgLSBkZXN0U3RhcnQ7IC8vIHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG91dExlbiA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsKKworICAgICAgICAgICAgLy8gQ29weSBuZXcgdGV4dCB0byBzdGFydCwgYW5kIGRlbGV0ZSBpdAorICAgICAgICAgICAgdGV4dC5jb3B5KGRlc3RTdGFydCwgZGVzdExpbWl0LCBzdGFydCk7CisgICAgICAgICAgICB0ZXh0LnJlcGxhY2UodGVtcFN0YXJ0ICsgb3V0TGVuLCBkZXN0TGltaXQgKyB0ZW1wRXh0cmEgKyBvdXRMZW4sICIiKTsKKworICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBvbGQgdGV4dCAodGhlIGtleSkKKyAgICAgICAgICAgIHRleHQucmVwbGFjZShzdGFydCArIG91dExlbiwgbGltaXQgKyBvdXRMZW4sICIiKTsKKyAgICAgICAgfSAgICAgICAgCisKKyAgICAgICAgaWYgKGhhc0N1cnNvcikgeworICAgICAgICAgICAgLy8gQWRqdXN0IHRoZSBjdXJzb3IgZm9yIHBvc2l0aW9ucyBvdXRzaWRlIHRoZSBrZXkuICBUaGVzZQorICAgICAgICAgICAgLy8gcmVmZXIgdG8gY29kZSBwb2ludHMgcmF0aGVyIHRoYW4gY29kZSB1bml0cy4gIElmIGN1cnNvclBvcworICAgICAgICAgICAgLy8gaXMgd2l0aGluIHRoZSBvdXRwdXQgc3RyaW5nLCB0aGVuIHVzZSBuZXdTdGFydCwgd2hpY2ggaGFzCisgICAgICAgICAgICAvLyBhbHJlYWR5IGJlZW4gc2V0IGFib3ZlLgorICAgICAgICAgICAgaWYgKGN1cnNvclBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICBuZXdTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgICAgIGludCBuID0gY3Vyc29yUG9zOworICAgICAgICAgICAgICAgIC8vIE91dHNpZGUgdGhlIG91dHB1dCBzdHJpbmcsIGN1cnNvclBvcyBjb3VudHMgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICB3aGlsZSAobiA8IDAgJiYgbmV3U3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1N0YXJ0IC09IFVURjE2LmdldENoYXJDb3VudCh0ZXh0LmNoYXIzMkF0KG5ld1N0YXJ0LTEpKTsKKyAgICAgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdTdGFydCArPSBuOworICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3JQb3MgPiBvdXRwdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBuZXdTdGFydCA9IHN0YXJ0ICsgb3V0TGVuOworICAgICAgICAgICAgICAgIGludCBuID0gY3Vyc29yUG9zIC0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIC8vIE91dHNpZGUgdGhlIG91dHB1dCBzdHJpbmcsIGN1cnNvclBvcyBjb3VudHMgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICB3aGlsZSAobiA+IDAgJiYgbmV3U3RhcnQgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1N0YXJ0ICs9IFVURjE2LmdldENoYXJDb3VudCh0ZXh0LmNoYXIzMkF0KG5ld1N0YXJ0KSk7CisgICAgICAgICAgICAgICAgICAgIC0tbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3U3RhcnQgKz0gbjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQ3Vyc29yIGlzIHdpdGhpbiBvdXRwdXQgc3RyaW5nLiAgSXQgaGFzIGJlZW4gc2V0IHVwIGFib3ZlCisgICAgICAgICAgICAgICAgLy8gdG8gYmUgcmVsYXRpdmUgdG8gc3RhcnQuCisgICAgICAgICAgICAgICAgbmV3U3RhcnQgKz0gc3RhcnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1cnNvclswXSA9IG5ld1N0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG91dExlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlUmVwbGFjZXIgQVBJCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1JlcGxhY2VyUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgaW50IGN1cnNvciA9IGN1cnNvclBvczsKKworICAgICAgICAvLyBIYW5kbGUgYSBjdXJzb3IgcHJlY2VkaW5nIHRoZSBvdXRwdXQKKyAgICAgICAgaWYgKGhhc0N1cnNvciAmJiBjdXJzb3IgPCAwKSB7CisgICAgICAgICAgICB3aGlsZSAoY3Vyc29yKysgPCAwKSB7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ0AnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIGFuZCBhcHBlbmQgJ3wnIGJlbG93CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGk8b3V0cHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChoYXNDdXJzb3IgJiYgaSA9PSBjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAnfCcsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIGMgPSBvdXRwdXQuY2hhckF0KGkpOyAvLyBPayB0byB1c2UgMTYtYml0cyBoZXJlCisKKyAgICAgICAgICAgIFVuaWNvZGVSZXBsYWNlciByID0gZGF0YS5sb29rdXBSZXBsYWNlcihjKTsKKyAgICAgICAgICAgIGlmIChyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBjLCBmYWxzZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIiAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHIudG9SZXBsYWNlclBhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgYnVmLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEhhbmRsZSBhIGN1cnNvciBhZnRlciB0aGUgb3V0cHV0LiAgVXNlID4gcmF0aGVyIHRoYW4gPj0gYmVjYXVzZQorICAgICAgICAvLyBpZiBjdXJzb3IgPT0gb3V0cHV0Lmxlbmd0aCgpIGl0IGlzIGF0IHRoZSBlbmQgb2YgdGhlIG91dHB1dCwKKyAgICAgICAgLy8gd2hpY2ggaXMgdGhlIGRlZmF1bHQgcG9zaXRpb24sIHNvIHdlIG5lZWQgbm90IGVtaXQgaXQuCisgICAgICAgIGlmIChoYXNDdXJzb3IgJiYgY3Vyc29yID4gb3V0cHV0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBjdXJzb3IgLT0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICAgICAgd2hpbGUgKGN1cnNvci0tID4gMCkgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICdAJywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd8JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgICAgICAvLyBGbHVzaCBxdW90ZUJ1ZiBvdXQgdG8gcmVzdWx0CisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIHJldHVybiBydWxlLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBvdXRwdXQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIG91dHB1dCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkUmVwbGFjZW1lbnRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBpbnQgY2g7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxvdXRwdXQubGVuZ3RoKCk7IGkrPVVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyAgICAgICAgICAgIGNoID0gVVRGMTYuY2hhckF0KG91dHB1dCwgaSk7CisgICAgICAgICAgICBVbmljb2RlUmVwbGFjZXIgciA9IGRhdGEubG9va3VwUmVwbGFjZXIoY2gpOworICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRvVW5pb25Uby5hZGQoY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByLmFkZFJlcGxhY2VtZW50U2V0VG8odG9VbmlvblRvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1NlYXJjaC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nU2VhcmNoLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDU5MWEzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1NlYXJjaC5qYXZhCkBAIC0wLDAgKzEsMzEwOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxwPgorICogPGNvZGU+U3RyaW5nU2VhcmNoPC9jb2RlPiBpcyB0aGUgY29uY3JldGUgc3ViY2xhc3Mgb2YgCisgKiA8Y29kZT5TZWFyY2hJdGVyYXRvcjwvY29kZT4gdGhhdCBwcm92aWRlcyBsYW5ndWFnZS1zZW5zaXRpdmUgdGV4dCBzZWFyY2hpbmcgCisgKiBiYXNlZCBvbiB0aGUgY29tcGFyaXNvbiBydWxlcyBkZWZpbmVkIGluIGEge0BsaW5rIFJ1bGVCYXNlZENvbGxhdG9yfSBvYmplY3QuCisgKiA8L3A+CisgKiA8cD4KKyAqIDxjb2RlPlN0cmluZ1NlYXJjaDwvY29kZT4gdXNlcyBhIHZlcnNpb24gb2YgdGhlIGZhc3QgQm95ZXItTW9vcmUgc2VhcmNoCisgKiBhbGdvcml0aG0gdGhhdCBoYXMgYmVlbiBhZGFwdGVkIHRvIHdvcmsgd2l0aCB0aGUgbGFyZ2UgY2hhcmFjdGVyIHNldCBvZgorICogVW5pY29kZS4gUmVmZXIgdG8gCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb2NzL3BhcGVycy9lZmZpY2llbnRfdGV4dF9zZWFyY2hpbmdfaW5famF2YS5odG1sIj4KKyAqICJFZmZpY2llbnQgVGV4dCBTZWFyY2hpbmcgaW4gSmF2YSI8L2E+LCBwdWJsaXNoZWQgaW4gdGhlIAorICogPGk+SmF2YSBSZXBvcnQ8L2k+IG9uIEZlYnJ1YXJ5LCAxOTk5LCBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvbiB0aGUgCisgKiBhbGdvcml0aG0uCisgKiA8L3A+CisgKiA8cD4KKyAqIFVzZXJzIGFyZSBhbHNvIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gcmVhZCB0aGUgc2VjdGlvbiBvbiAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9zZWFyY2hTdHJpbmcuaHRtbCI+CisgKiBTdHJpbmcgU2VhcmNoPC9hPiBhbmQgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj4KKyAqIENvbGxhdGlvbjwvYT4gaW4gdGhlIHVzZXIgZ3VpZGUgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdXNlIHRoaXMgY2xhc3MuCisgKiA8L3A+CisgKiA8cD4KKyAqIFN0cmluZyBzZWFyY2hpbmcgZ2V0cyBhbGl0dGxlIGNvbXBsaWNhdGVkIHdoZW4gYWNjZW50cyBhcmUgZW5jb3VudGVyZWQgYXQKKyAqIG1hdGNoIGJvdW5kYXJpZXMuIElmIGEgbWF0Y2ggaXMgZm91bmQgYW5kIGl0IGhhcyBwcmVjZWRpbmcgb3IgdHJhaWxpbmcgCisgKiBhY2NlbnRzIG5vdCBwYXJ0IG9mIHRoZSBtYXRjaCwgdGhlIHJlc3VsdCByZXR1cm5lZCB3aWxsIGluY2x1ZGUgdGhlIAorICogcHJlY2VkaW5nIGFjY2VudHMgdXAgdG8gdGhlIGZpcnN0IGJhc2UgY2hhcmFjdGVyLCBpZiB0aGUgcGF0dGVybiBzZWFyY2hlZCAKKyAqIGZvciBzdGFydHMgYW4gYWNjZW50LiBMaWtld2lzZSwgCisgKiBpZiB0aGUgcGF0dGVybiBlbmRzIHdpdGggYW4gYWNjZW50LCBhbGwgdHJhaWxpbmcgYWNjZW50cyB1cCB0byB0aGUgZmlyc3QKKyAqIGJhc2UgY2hhcmFjdGVyIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdC4KKyAqIDwvcD4KKyAqIDxwPgorICogRm9yIGV4YW1wbGUsIGlmIGEgbWF0Y2ggaXMgZm91bmQgaW4gdGFyZ2V0IHRleHQgImEmIzkyO3UwMzI1JiM5Mjt1MDMwMCIgZm9yIAorICogdGhlIHBhdHRlcm4KKyAqICJhJiM5Mjt1MDMyNSIsIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgU3RyaW5nU2VhcmNoIHdpbGwgYmUgdGhlIGluZGV4IDAgYW5kCisgKiBsZW5ndGggMyAmbHQ7MCwgMyZndDsuIElmIGEgbWF0Y2ggaXMgZm91bmQgaW4gdGhlIHRhcmdldCAKKyAqICJhJiM5Mjt1MDMyNSYjOTI7dTAzMDAiIAorICogZm9yIHRoZSBwYXR0ZXJuICImIzkyO3UwMzAwIiwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgaW5kZXggMSBhbmQgbGVuZ3RoIDIgCisgKiA8MSwgMj4uCisgKiA8L3A+CisgKiA8cD4KKyAqIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgb24gZm9yIHRoZSBSdWxlQmFzZWRDb2xsYXRvciwKKyAqIGFsbCBtYXRjaGVzIHRoYXQgc3RhcnRzIG9yIGVuZHMgd2l0aCBhbiBhY2NlbnQgd2lsbCBoYXZlIGl0cyByZXN1bHRzIGluY2x1ZGUgCisgKiBwcmVjZWRpbmcgb3IgZm9sbG93aW5nIGFjY2VudHMgcmVzcGVjdGl2ZWx5LiBGb3IgZXhhbXBsZSwgaWYgcGF0dGVybiAiYSIgaXMKKyAqIGxvb2tlZCBmb3IgaW4gdGhlIHRhcmdldCB0ZXh0ICImYWFjdXRlOyYjOTI7dTAzMjUiLCB0aGUgcmVzdWx0IHdpbGwgYmUKKyAqIGluZGV4IDAgYW5kIGxlbmd0aCAyICZsdDswLCAyJmd0Oy4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhlIFN0cmluZ1NlYXJjaCBjbGFzcyBwcm92aWRlcyB0d28gb3B0aW9ucyB0byBoYW5kbGUgYWNjZW50IG1hdGNoaW5nIAorICogZGVzY3JpYmVkIGJlbG93OgorICogPC9wPgorICogPHA+CisgKiBMZXQgUycgYmUgdGhlIHN1Yi1zdHJpbmcgb2YgYSB0ZXh0IHN0cmluZyBTIGJldHdlZW4gdGhlIG9mZnNldHMgc3RhcnQgYW5kIAorICogZW5kICZsdDtzdGFydCwgZW5kJmd0Oy4KKyAqIDxicj4KKyAqIEEgcGF0dGVybiBzdHJpbmcgUCBtYXRjaGVzIGEgdGV4dCBzdHJpbmcgUyBhdCB0aGUgb2Zmc2V0cyAmbHQ7c3RhcnQsIAorICogbGVuZ3RoJmd0OyAKKyAqIDxicj4KKyAqIGlmCisgKiA8cHJlPiAKKyAqIG9wdGlvbiAxLiBQIG1hdGNoZXMgc29tZSBjYW5vbmljYWwgZXF1aXZhbGVudCBzdHJpbmcgb2YgUycuIFN1cHBvc2UgdGhlIAorICogICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHVzZWQgZm9yIHNlYXJjaGluZyBoYXMgYSBjb2xsYXRpb24gc3RyZW5ndGggb2YgCisgKiAgICAgICAgICAgVEVSVElBUlksIGFsbCBhY2NlbnRzIGFyZSBub24taWdub3JhYmxlLiBJZiB0aGUgcGF0dGVybiAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMDAiIGlzIHNlYXJjaGVkIGluIHRoZSB0YXJnZXQgdGV4dCAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMjUmIzkyO3UwMzAwIiwgCisgKiAgICAgICAgICAgYSBtYXRjaCB3aWxsIGJlIGZvdW5kLCBzaW5jZSB0aGUgdGFyZ2V0IHRleHQgaXMgY2Fub25pY2FsbHkgCisgKiAgICAgICAgICAgZXF1aXZhbGVudCB0byAiYSYjOTI7dTAzMDAmIzkyO3UwMzI1IgorICogb3B0aW9uIDIuIFAgbWF0Y2hlcyBTJyBhbmQgaWYgUCBzdGFydHMgb3IgZW5kcyB3aXRoIGEgY29tYmluaW5nIG1hcmssIAorICogICAgICAgICAgIHRoZXJlIGV4aXN0cyBubyBub24taWdub3JhYmxlIGNvbWJpbmluZyBtYXJrIGJlZm9yZSBvciBhZnRlciBTJyAKKyAqICAgICAgICAgICBpbiBTIHJlc3BlY3RpdmVseS4gRm9sbG93aW5nIHRoZSBleGFtcGxlIGFib3ZlLCB0aGUgcGF0dGVybiAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMDAiIHdpbGwgbm90IGZpbmQgYSBtYXRjaCBpbiAiYSYjOTI7dTAzMjUmIzkyO3UwMzAwIiwgCisgKiAgICAgICAgICAgc2luY2UKKyAqICAgICAgICAgICB0aGVyZSBleGlzdHMgYSBub24taWdub3JhYmxlIGFjY2VudCAnJiM5Mjt1MDMyNScgaW4gdGhlIG1pZGRsZSBvZiAKKyAqICAgICAgICAgICAnYScgYW5kICcmIzkyO3UwMzAwJy4gRXZlbiB3aXRoIGEgdGFyZ2V0IHRleHQgb2YgCisgKiAgICAgICAgICAgImEmIzkyO3UwMzAwJiM5Mjt1MDMyNSIgYSBtYXRjaCB3aWxsIG5vdCBiZSBmb3VuZCBiZWNhdXNlIG9mIHRoZSAKKyAqICAgICAgICAgICBub24taWdub3JhYmxlIHRyYWlsaW5nIGFjY2VudCAmIzkyO3UwMzI1LgorICogPC9wcmU+CisgKiBPcHRpb24gMi4gd2lsbCBiZSB0aGUgZGVmYXVsdCBtb2RlIGZvciBkZWFsaW5nIHdpdGggYm91bmRhcnkgYWNjZW50cyB1bmxlc3MKKyAqIHNwZWNpZmllZCB2aWEgdGhlIEFQSSBzZXRDYW5vbmljYWwoYm9vbGVhbikuCisgKiBPbmUgcmVzdHJpY3Rpb24gaXMgdG8gYmUgbm90ZWQgZm9yIG9wdGlvbiAxLiBDdXJyZW50bHkgdGhlcmUgYXJlIG5vIAorICogY29tcG9zaXRlIGNoYXJhY3RlcnMgdGhhdCBjb25zaXN0cyBvZiBhIGNoYXJhY3RlciB3aXRoIGNvbWJpbmluZyBjbGFzcyA+IDAgCisgKiBiZWZvcmUgYSBjaGFyYWN0ZXIgd2l0aCBjb21iaW5pbmcgY2xhc3MgPT0gMC4gSG93ZXZlciwgaWYgc3VjaCBhIGNoYXJhY3RlciAKKyAqIGV4aXN0cyBpbiB0aGUgZnV0dXJlLCB0aGUgU3RyaW5nU2VhcmNoIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBvcHRpb24gMQorICogd2hlbiBzdWNoIGNoYXJhY3RlcnMgYXJlIGVuY291bnRlcmVkLgorICogPC9wPgorICogPHA+CisgKiA8dHQ+U2VhcmNoSXRlcmF0b3I8L3R0PiBwcm92aWRlcyBBUElzIHRvIHNwZWNpZnkgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIAorICogd2l0aGluIHRoZSB0ZXh0IHN0cmluZyB0byBiZSBzZWFyY2hlZCwgZS5nLiA8dHQ+c2V0SW5kZXg8L3R0PiwKKyAqIDx0dD5wcmVjZWRpbmc8L3R0PiBhbmQgPHR0PmZvbGxvd2luZzwvdHQ+LiBTaW5jZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24gd2lsbCAKKyAqIGJlIHNldCBhcyBpdCBpcyBzcGVjaWZpZWQsIHBsZWFzZSB0YWtlIG5vdGUgdGhhdCB0aGVyZSBhcmUgc29tZSBkYW5nZXJvdXMgCisgKiBwb3NpdGlvbnMgd2hpY2ggdGhlIHNlYXJjaCBtYXkgcmVuZGVyIGluY29ycmVjdCByZXN1bHRzOgorICogPHVsPgorICogPGxpPiBUaGUgbWlkc3Qgb2YgYSBzdWJzdHJpbmcgdGhhdCByZXF1aXJlcyBkZWNvbXBvc2l0aW9uLgorICogPGxpPiBJZiB0aGUgZm9sbG93aW5nIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCB0aGUgcG9zaXRpb24gc2hvdWxkIG5vdCBiZSB0aGUKKyAqICAgICAgc2Vjb25kIGNoYXJhY3RlciB3aGljaCByZXF1aXJlcyB0byBiZSBzd2FwcGVkIHdpdGggdGhlIHByZWNlZGluZyAKKyAqICAgICAgY2hhcmFjdGVyLiBWaWNlIHZlcnNhLCBpZiB0aGUgcHJlY2VkaW5nIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCAKKyAqICAgICAgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20gc2hvdWxkIG5vdCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIAorICogICAgICByZXF1aXJlcyB0byBiZSBzd2FwcGVkIHdpdGggdGhlIG5leHQgY2hhcmFjdGVyLiBFLmcgY2VydGFpbiBUaGFpIGFuZAorICogICAgICBMYW8gY2hhcmFjdGVycyByZXF1aXJlIHN3YXBwaW5nLgorICogPGxpPiBJZiBhIGZvbGxvd2luZyBwYXR0ZXJuIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCBhbnkgcG9zaXRpb24gd2l0aGluIGEgCisgKiAgICAgIGNvbnRyYWN0aW5nIHNlcXVlbmNlIGV4Y2VwdCB0aGUgZmlyc3Qgd2lsbCBmYWlsLiBWaWNlIHZlcnNhIGlmIGEgCisgKiAgICAgIHByZWNlZGluZyBwYXR0ZXJuIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCBhIGludmFsaWQgc3RhcnRpbmcgcG9pbnQgCisgKiAgICAgIHdvdWxkIGJlIGFueSBjaGFyYWN0ZXIgd2l0aGluIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UgZXhjZXB0IHRoZSBsYXN0LgorICogPC91bD4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhvdWdoIGNvbGxhdG9yIGF0dHJpYnV0ZXMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gd2hpbGUgCisgKiBwZXJmb3JtaW5nIG1hdGNoZXMsIHRoZXJlIGFyZSBubyBBUElzIHByb3ZpZGVkIGluIFN0cmluZ1NlYXJjaCBmb3Igc2V0dGluZyAKKyAqIGFuZCBnZXR0aW5nIHRoZSBhdHRyaWJ1dGVzLiBUaGVzZSBhdHRyaWJ1dGVzIGNhbiBiZSBzZXQgYnkgZ2V0dGluZyB0aGUgCisgKiBjb2xsYXRvciBmcm9tIDx0dD5nZXRDb2xsYXRvcjwvdHQ+IGFuZCB1c2luZyB0aGUgQVBJcyBpbiAKKyAqIDx0dD5jb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yPC90dD4uIFRvIHVwZGF0ZSBTdHJpbmdTZWFyY2ggdG8gdGhlIG5ldyAKKyAqIGNvbGxhdG9yIGF0dHJpYnV0ZXMsIDx0dD5yZXNldCgpPC90dD4gb3IgCisgKiA8dHQ+c2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IpPC90dD4gaGFzIHRvIGJlIGNhbGxlZC4KKyAqIDwvcD4KKyAqIDxwPgorICogQ29uc3VsdCB0aGUgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvc2VhcmNoU3RyaW5nLmh0bWwiPgorICogU3RyaW5nIFNlYXJjaDwvYT4gdXNlciBndWlkZSBhbmQgdGhlIDxjb2RlPlNlYXJjaEl0ZXJhdG9yPC9jb2RlPiAKKyAqIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGV4YW1wbGVzIG9mIHVzZS4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBpcyBub3Qgc3ViY2xhc3NhYmxlCisgKiA8L3A+CisgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lciwgc3lud2VlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworLy8gaW50ZXJuYWwgbm90ZXM6IGFsbCBtZXRob2RzIGRvIG5vdCBndWFyYW50ZWUgdGhlIGNvcnJlY3Qgc3RhdHVzIG9mIHRoZSAKKy8vIGNoYXJhY3Rlcml0ZXJhdG9yLiB0aGUgY2FsbGVyIGhhcyB0byBtYWludGFpbiB0aGUgb3JpZ2luYWwgaW5kZXggcG9zaXRpb24KKy8vIGlmIG5lY2Vzc2FyeS4gbWV0aG9kcyBjb3VsZCBjaGFuZ2UgdGhlIGluZGV4IHBvc2l0aW9uIGFzIGl0IGRlZW1zIGZpdAorcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZ1NlYXJjaCBleHRlbmRzIFNlYXJjaEl0ZXJhdG9yCit7CisgICAgCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGRlZmluZWQgaW4gCisgICAgICogdGhlIGFyZ3VtZW50IGNvbGxhdG9yIHRvIHNlYXJjaCBmb3IgYXJndW1lbnQgcGF0dGVybiBpbiB0aGUgYXJndW1lbnQgCisgICAgICogdGFyZ2V0IHRleHQuIFRoZSBhcmd1bWVudCBicmVha2l0ZXIgaXMgdXNlZCB0byBkZWZpbmUgbG9naWNhbCBtYXRjaGVzLgorICAgICAqIFNlZSBzdXBlciBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIHVzZSBvZiB0aGUgdGFyZ2V0IAorICAgICAqIHRleHQgYW5kIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGV4dCB0byBsb29rIGZvci4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCB0ZXh0IHRvIHNlYXJjaCBmb3IgcGF0dGVybi4gCisgICAgICogQHBhcmFtIGNvbGxhdG9yIFJ1bGVCYXNlZENvbGxhdG9yIHRoYXQgZGVmaW5lcyB0aGUgbGFuZ3VhZ2UgcnVsZXMKKyAgICAgKiBAcGFyYW0gYnJlYWtpdGVyIEEge0BsaW5rIEJyZWFrSXRlcmF0b3J9IHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIAorICAgICAqICAgICAgICAgICAgICAgIGJvdW5kYXJpZXMgb2YgYSBsb2dpY2FsIG1hdGNoLiBUaGlzIGFyZ3VtZW50IGNhbiBiZSBudWxsLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdTZWFyY2goU3RyaW5nIHBhdHRlcm4sIENoYXJhY3Rlckl0ZXJhdG9yIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikgCisgICAgeworICAgICAgICBzdXBlcih0YXJnZXQsIGJyZWFraXRlcik7CisgICAgICAgIG1fdGV4dEJlZ2luT2Zmc2V0XyA9IHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICBtX3RleHRMaW1pdE9mZnNldF8gPSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCk7CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fY29sRUl0ZXJfID0gbV9jb2xsYXRvcl8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRhcmdldCk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIG1fY2VNYXNrXyA9IGdldE1hc2sobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIG1faXNDYW5vbmljYWxNYXRjaF8gPSBmYWxzZTsKKyAgICAgICAgbV9wYXR0ZXJuXyA9IG5ldyBQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGRlZmluZWQgaW4gCisgICAgICogdGhlIGFyZ3VtZW50IGNvbGxhdG9yIHRvIHNlYXJjaCBmb3IgYXJndW1lbnQgcGF0dGVybiBpbiB0aGUgYXJndW1lbnQgCisgICAgICogdGFyZ2V0IHRleHQuIE5vIEJyZWFrSXRlcmF0b3JzIGFyZSBzZXQgdG8gdGVzdCBmb3IgbG9naWNhbCBtYXRjaGVzLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRleHQgdG8gbG9vayBmb3IuCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgdGV4dCB0byBzZWFyY2ggZm9yIHBhdHRlcm4uIAorICAgICAqIEBwYXJhbSBjb2xsYXRvciBSdWxlQmFzZWRDb2xsYXRvciB0aGF0IGRlZmluZXMgdGhlIGxhbmd1YWdlIHJ1bGVzCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMAorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCB0YXJnZXQsIGNvbGxhdG9yLCBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGFuZCAKKyAgICAgKiBicmVhayBpdGVyYXRvciBydWxlcyBkZWZpbmVkIGluIHRoZSBhcmd1bWVudCBsb2NhbGUgdG8gc2VhcmNoIGZvciAKKyAgICAgKiBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCB0YXJnZXQgdGV4dC4gCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgCisgICAgICogdGV4dCBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0ZXh0IHRvIGxvb2sgZm9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IHRleHQgdG8gc2VhcmNoIGZvciBwYXR0ZXJuLiAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSB0byB1c2UgZm9yIGxhbmd1YWdlIGFuZCBicmVhayBpdGVyYXRvciBydWxlcworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAuIENsYXNzQ2FzdEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlIGNvbGxhdG9yIGZvciAKKyAgICAgKiAgICAgICAgICAgIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGlzIG5vdCBhIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCB0YXJnZXQsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGFuZCAKKyAgICAgKiBicmVhayBpdGVyYXRvciBydWxlcyBkZWZpbmVkIGluIHRoZSBhcmd1bWVudCBsb2NhbGUgdG8gc2VhcmNoIGZvciAKKyAgICAgKiBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCB0YXJnZXQgdGV4dC4gCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgCisgICAgICogdGV4dCBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0ZXh0IHRvIGxvb2sgZm9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IHRleHQgdG8gc2VhcmNoIGZvciBwYXR0ZXJuLiAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHVsb2NhbGUgdG8gdXNlIGZvciBsYW5ndWFnZSBhbmQgYnJlYWsgaXRlcmF0b3IgcnVsZXMKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhcmd1bWVudCB0YXJnZXQgaXMgbnVsbCwKKyAgICAgKiAgICAgICAgICAgIG9yIG9mIGxlbmd0aCAwLiBDbGFzc0Nhc3RFeGNlcHRpb24gdGhyb3duIGlmIHRoZSBjb2xsYXRvciBmb3IgCisgICAgICogICAgICAgICAgICB0aGUgc3BlY2lmaWVkIGxvY2FsZSBpcyBub3QgYSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHRoaXMocGF0dGVybiwgdGFyZ2V0LCAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKSwKKyAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGFuZCAKKyAgICAgKiBicmVhayBpdGVyYXRvciBydWxlcyBkZWZpbmVkIGluIHRoZSBkZWZhdWx0IGxvY2FsZSB0byBzZWFyY2ggZm9yIAorICAgICAqIGFyZ3VtZW50IHBhdHRlcm4gaW4gdGhlIGFyZ3VtZW50IHRhcmdldCB0ZXh0LiAKKyAgICAgKiBTZWUgc3VwZXIgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSB1c2Ugb2YgdGhlIHRhcmdldCAKKyAgICAgKiB0ZXh0IGFuZCBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRleHQgdG8gbG9vayBmb3IuCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgdGV4dCB0byBzZWFyY2ggZm9yIHBhdHRlcm4uIAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAuIENsYXNzQ2FzdEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlIGNvbGxhdG9yIGZvciAKKyAgICAgKiAgICAgICAgICAgIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3QgYSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdTZWFyY2goU3RyaW5nIHBhdHRlcm4sIFN0cmluZyB0YXJnZXQpIAorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGFyZ2V0KSwKKyAgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSwKKyAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogR2V0cyB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBmb3IgdGhlIGxhbmd1YWdlIHJ1bGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSBTdHJpbmdTZWFyY2ggZGVwZW5kcyBvbiB0aGUgcmV0dXJuZWQgUnVsZUJhc2VkQ29sbGF0b3IsIGFueSAKKyAgICAgKiBjaGFuZ2VzIHRvIHRoZSBSdWxlQmFzZWRDb2xsYXRvciByZXN1bHQgc2hvdWxkIGZvbGxvdyB3aXRoIGEgY2FsbCB0byAKKyAgICAgKiBlaXRoZXIgU3RyaW5nU2VhcmNoLnJlc2V0KCkgb3IgCisgICAgICogU3RyaW5nU2VhcmNoLnNldENvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yKSB0byBlbnN1cmUgdGhlIGNvcnJlY3QgCisgICAgICogc2VhcmNoIGJlaGF2aW91ci4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiBSdWxlQmFzZWRDb2xsYXRvciB1c2VkIGJ5IHRoaXMgU3RyaW5nU2VhcmNoCisgICAgICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBzZWUgI3NldENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZENvbGxhdG9yIGdldENvbGxhdG9yKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9jb2xsYXRvcl87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBhdHRlcm4gZm9yIHdoaWNoIFN0cmluZ1NlYXJjaCBpcyBzZWFyY2hpbmcgZm9yLgorICAgICAqIEByZXR1cm4gdGhlIHBhdHRlcm4gc2VhcmNoZWQgZm9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQYXR0ZXJuKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9wYXR0ZXJuXy50YXJnZXRUZXh0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCB3aGVyZSB0aGUgaXRlcmF0b3IgaXMgY3VycmVudGx5IAorICAgICAqIHBvc2l0aW9uZWQgYXQuIAorICAgICAqIElmIHRoZSBpdGVyYXRpb24gaGFzIGdvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dCBvciBwYXN0IAorICAgICAqIHRoZSBiZWdpbm5pbmcgZm9yIGEgYmFja3dhcmRzIHNlYXJjaCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCB3aGVyZSB0aGUgaXRlcmF0b3IgaXMgY3VycmVudGx5IAorICAgICAqICAgICAgICAgcG9zaXRpb25lZCBhdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSAKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKGlzT3V0T2ZCb3VuZHMobV90ZXh0QmVnaW5PZmZzZXRfLCBtX3RleHRMaW1pdE9mZnNldF8sIHJlc3VsdCkpIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciBjYW5vbmljYWwgbWF0Y2hlcyAob3B0aW9uIDEsIGFzIGRlc2NyaWJlZCBpbiB0aGUgCisgICAgICogY2xhc3MgZG9jdW1lbnRhdGlvbikgaXMgc2V0LgorICAgICAqIFNlZSBzZXRDYW5vbmljYWwoYm9vbGVhbikgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHNlZSAjc2V0Q2Fub25pY2FsCisgICAgICogQHJldHVybiB0cnVlIGlmIGNhbm9uaWNhbCBtYXRjaGVzIGlzIHNldCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNDYW5vbmljYWwoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lzQ2Fub25pY2FsTWF0Y2hfOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgc2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHRvIGJlIHVzZWQgZm9yIGxhbmd1YWdlLXNwZWNpZmljIHNlYXJjaGluZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgY2F1c2VzIGludGVybmFsIGRhdGEgc3VjaCBhcyBCb3llci1Nb29yZSBzaGlmdCB0YWJsZXMKKyAgICAgKiB0byBiZSByZWNhbGN1bGF0ZWQsIGJ1dCB0aGUgaXRlcmF0b3IncyBwb3NpdGlvbiBpcyB1bmNoYW5nZWQuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0byB1c2UgZm9yIHRoaXMgU3RyaW5nU2VhcmNoCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gY29sbGF0b3IgaXMgbnVsbAorICAgICAqIEBzZWUgI2dldENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAgICAgaWYgKGNvbGxhdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvbGxhdG9yIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fY2VNYXNrXyA9IGdldE1hc2sobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfZ2V0QXR0cmlidXRlIHJldHVybnMgVUNPTF9ERUZBVUxUCisgICAgICAgIGluaXRpYWxpemUoKTsKKyAgICAgICAgbV9jb2xFSXRlcl8uc2V0Q29sbGF0b3IobV9jb2xsYXRvcl8pOworICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0Q29sbGF0b3IobV9jb2xsYXRvcl8pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXQgdGhlIHBhdHRlcm4gdG8gc2VhcmNoIGZvci4gIAorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCBjYXVzZXMgaW50ZXJuYWwgZGF0YSBzdWNoIGFzIEJveWVyLU1vb3JlIHNoaWZ0IHRhYmxlcworICAgICAqIHRvIGJlIHJlY2FsY3VsYXRlZCwgYnV0IHRoZSBpdGVyYXRvcidzIHBvc2l0aW9uIGlzIHVuY2hhbmdlZC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHBhdHRlcm4gZm9yIHNlYXJjaGluZworICAgICAqIEBzZWUgI2dldFBhdHRlcm4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgcGF0dGVybiBpcyBudWxsIG9yIG9mCisgICAgICogICAgICAgICAgICAgICBsZW5ndGggMAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIAorICAgIHsKKyAgICAgICAgaWYgKHBhdHRlcm4gPT0gbnVsbCB8fCBwYXR0ZXJuLmxlbmd0aCgpIDw9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJQYXR0ZXJuIHRvIHNlYXJjaCBmb3IgY2FuIG5vdCBiZSBudWxsIG9yIG9mIGxlbmd0aCAwIik7CisgICAgICAgIH0KKyAgICAgICAgbV9wYXR0ZXJuXy50YXJnZXRUZXh0ID0gcGF0dGVybjsKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgICogU2V0IHRoZSB0YXJnZXQgdGV4dCB0byBiZSBzZWFyY2hlZC4gVGV4dCBpdGVyYXRpb24gd2lsbCBoZW5jZSBiZWdpbiBhdCAKKyAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgc3RyaW5nLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gCisgICAgICogcmUtdXNlIGFuIGl0ZXJhdG9yIHRvIHNlYXJjaCB3aXRoaW4gYSBkaWZmZXJlbnQgYm9keSBvZiB0ZXh0LgorICAgICAqIEBwYXJhbSB0ZXh0IG5ldyB0ZXh0IGl0ZXJhdG9yIHRvIGxvb2sgZm9yIG1hdGNoLCAKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0ZXh0IGlzIG51bGwgb3IgaGFzCisgICAgICogICAgICAgICAgICAwIGxlbmd0aAorICAgICAqIEBzZWUgI2dldFRhcmdldAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRhcmdldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0KQorICAgIHsKKyAgICAgICAgc3VwZXIuc2V0VGFyZ2V0KHRleHQpOworICAgICAgICBtX3RleHRCZWdpbk9mZnNldF8gPSB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgbV90ZXh0TGltaXRPZmZzZXRfID0gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRUZXh0KHRhcmdldFRleHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiBpbiB0aGUgdGFyZ2V0IHRleHQgd2hpY2ggdGhlIG5leHQgc2VhcmNoIHdpbGwgc3RhcnQgCisgICAgICogZnJvbSB0byB0aGUgYXJndW1lbnQuIFRoaXMgbWV0aG9kIGNsZWFycyBhbGwgcHJldmlvdXMgc3RhdGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCB0YWtlcyB0aGUgYXJndW1lbnQgcG9zaXRpb24gYW5kIHNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSAKKyAgICAgKiB0YXJnZXQgdGV4dCBhY2NvcmRpbmdseSwgd2l0aG91dCBjaGVja2luZyBpZiBwb3NpdGlvbiBpcyBwb2ludGluZyB0byBhIAorICAgICAqIHZhbGlkIHN0YXJ0aW5nIHBvaW50IHRvIGJlZ2luIHNlYXJjaGluZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VhcmNoIHBvc2l0aW9ucyB0aGF0IG1heSByZW5kZXIgaW5jb3JyZWN0IHJlc3VsdHMgYXJlIGhpZ2hsaWdodGVkIGluIAorICAgICAqIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gaW5kZXggdG8gc3RhcnQgbmV4dCBzZWFyY2ggZnJvbS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIGFyZ3VtZW50IHBvc2l0aW9uIGlzIG91dAorICAgICAqICAgICAgICAgICAgb2YgdGhlIHRhcmdldCB0ZXh0IHJhbmdlLgorICAgICAqIEBzZWUgI2dldEluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgc3VwZXIuc2V0SW5kZXgocG9zaXRpb24pOworICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChwb3NpdGlvbik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldCB0aGUgY2Fub25pY2FsIG1hdGNoIG1vZGUuIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICAgICAqIFRoZSBkZWZhdWx0IHNldHRpbmcgZm9yIHRoaXMgcHJvcGVydHkgaXMgZmFsc2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBhbGxvd0Nhbm9uaWNhbCBmbGFnIGluZGljYXRvciBpZiBjYW5vbmljYWwgbWF0Y2hlcyBhcmUgYWxsb3dlZAorICAgICAqIEBzZWUgI2lzQ2Fub25pY2FsCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2Fub25pY2FsKGJvb2xlYW4gYWxsb3dDYW5vbmljYWwpCisgICAgeworICAgICAgICBtX2lzQ2Fub25pY2FsTWF0Y2hfID0gYWxsb3dDYW5vbmljYWw7CisgICAgICAgIGlmIChtX2lzQ2Fub25pY2FsTWF0Y2hfID09IHRydWUpIHsKKyAgICAgICAgICAgIGlmIChtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5kZWxldGUoMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1pc2NlbGxhbmVvdXMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKiAKKyAgICAgKiA8cD4KKyAgICAgKiBSZXNldHMgdGhlIHNlYXJjaCBpdGVyYXRpb24uIEFsbCBwcm9wZXJ0aWVzIHdpbGwgYmUgcmVzZXQgdG8gdGhlIAorICAgICAqIGRlZmF1bHQgdmFsdWUuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlYXJjaCB3aWxsIGJlZ2luIGF0IHRoZSBzdGFydCBvZiB0aGUgdGFyZ2V0IHRleHQgaWYgYSBmb3J3YXJkIGl0ZXJhdGlvbiAKKyAgICAgKiBpcyBpbml0aWF0ZWQgYmVmb3JlIGEgYmFja3dhcmRzIGl0ZXJhdGlvbi4gT3RoZXJ3aXNlIGlmIGEgCisgICAgICogYmFja3dhcmRzIGl0ZXJhdGlvbiBpcyBpbml0aWF0ZWQgYmVmb3JlIGEgZm9yd2FyZHMgaXRlcmF0aW9uLCB0aGUgc2VhcmNoIAorICAgICAqIHdpbGwgYmVnaW4gYXQgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIENhbm9uaWNhbCBtYXRjaCBvcHRpb24gd2lsbCBiZSByZXNldCB0byBmYWxzZSwgaWUgYW4gZXhhY3QgbWF0Y2guCisgICAgICogPC9wPgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIC8vIHJlc2V0IGlzIHNldHRpbmcgdGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiBzdHJpbmcgc2VhcmNoLCAKKyAgICAgICAgLy8gaGVuY2UgYWxsIGF0dHJpYnV0ZXMgaW4gdGhlIGNvbGxhdG9yIHNob3VsZCBiZSByZXRyaWV2ZWQgd2l0aG91dCBhbnkgCisgICAgICAgIC8vIHByb2JsZW1zCisgICAgICAgIHN1cGVyLnJlc2V0KCk7CisgICAgICAgIG1faXNDYW5vbmljYWxNYXRjaF8gPSBmYWxzZTsKKyAgICAgICAgbV9jZU1hc2tfID0gZ2V0TWFzayhtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpKTsKKyAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9nZXRBdHRyaWJ1dGUgcmV0dXJucyBVQ09MX0RFRkFVTFQKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisgICAgICAgIG1fY29sRUl0ZXJfLnJlc2V0KCk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisgICAgfQorCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb25jcmV0ZSBtZXRob2QgdG8gcHJvdmlkZSB0aGUgbWVjaGFuaXNtIAorICAgICAqIGZvciBmaW5kaW5nIHRoZSBuZXh0IDxiPmZvcndhcmRzPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGl0cyB1c2UuCisgICAgICogPC9wPiAgCisgICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCBhdCB3aGljaCB0aGUgZm9yd2FyZHMgc2VhcmNoIAorICAgICAqICAgICAgICBzaG91bGQgYmVnaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgZm9yd2FyZHMgbWF0Y2ggaWYgZm91bmQsIERPTkUgCisgICAgICogICAgICAgICBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNoYW5kbGVQcmV2aW91cyhpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlTmV4dChpbnQgc3RhcnQpCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA9PSAwKSB7CisgICAgICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgICAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUgJiYgc3RhcnQgPT0gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fbWF0Y2hlZEluZGV4XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICBjaGFyIGNoID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgICAgICAvLyBjaCBjYW4gbmV2ZXIgYmUgZG9uZSwgaXQgaXMgaGFuZGxlZCBieSBuZXh0KCkKKyAgICAgICAgICAgIGNoYXIgY2gyID0gdGFyZ2V0VGV4dC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoY2gyID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOyAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gyKSkgeworICAgICAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtYXRjaExlbmd0aCA8PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCBoYXZlIHJldmVyc2VkIGRpcmVjdGlvbiBhZnRlciB3ZSByZWFjaGVkIHRoZSBzdGFydAorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB0YXJnZXQgdGV4dAorICAgICAgICAgICAgICAgIC8vIHNlZSBTZWFyY2hJdGVyYXRvciBuZXh0KCksIGl0IGNoZWNrcyB0aGUgYm91bmRzIGFuZCByZXR1cm5zCisgICAgICAgICAgICAgICAgLy8gaWYgaXQgZXhjZWVkcyB0aGUgcmFuZ2UuIEl0IGRvZXMgbm90IGFsbG93IHNldHRpbmcgb2YKKyAgICAgICAgICAgICAgICAvLyBtX21hdGNoZWRJbmRleAorICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PSBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvciBib3VuZGFyeSBjaGVjayBwdXJwb3Nlcy4gdGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBuZXh0IG1hdGNoIHdpbGwgbm90IHByZWNlZWQgdGhlIGN1cnJlbnQgb2Zmc2V0CisgICAgICAgICAgICAgICAgICAgIC8vIG5vdGUgc2VhcmNoLT5tYXRjaGVkSW5kZXggd2lsbCBhbHdheXMgYmUgc2V0IHRvIHNvbWV0aGluZworICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgY29kZQorICAgICAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBzdGFydCAtIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYmVsb3cKKyAgICAgICAgICAgIGlmIChtX2lzQ2Fub25pY2FsTWF0Y2hfKSB7CisgICAgICAgICAgICAgICAgLy8gY2FuJ3QgdXNlIGV4YWN0IGhlcmUgc2luY2UgZXh0cmEgYWNjZW50cyBhcmUgYWxsb3dlZC4KKyAgICAgICAgICAgICAgICBoYW5kbGVOZXh0Q2Fub25pY2FsKHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGhhbmRsZU5leHRFeGFjdChzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fbWF0Y2hlZEluZGV4XyA9PSBET05FKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fdGV4dExpbWl0T2Zmc2V0Xyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fbWF0Y2hlZEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fbWF0Y2hlZEluZGV4XzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29uY3JldGUgbWV0aG9kIHRvIHByb3ZpZGUgdGhlIG1lY2hhbmlzbSAKKyAgICAgKiBmb3IgZmluZGluZyB0aGUgbmV4dCA8Yj5iYWNrd2FyZHM8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4KKyAgICAgKiBTZWUgc3VwZXIgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgaXRzIHVzZS4KKyAgICAgKiA8L3A+ICAKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBiYWNrd2FyZHMgc2VhcmNoIAorICAgICAqICAgICAgICBzaG91bGQgYmVnaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgYmFja3dhcmRzIG1hdGNoIGlmIGZvdW5kLCBET05FIAorICAgICAqICAgICAgICAgb3RoZXJ3aXNlCisgICAgICogQHNlZSAjaGFuZGxlTmV4dChpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlUHJldmlvdXMoaW50IHN0YXJ0KQorICAgIHsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gPT0gMCkgeworICAgICAgICAgICAgbWF0Y2hMZW5ndGggPSAwOworICAgICAgICAgICAgLy8gc3RhcnQgY2FuIG5ldmVyIGJlIERPTkUgb3IgMCwgaXQgaXMgaGFuZGxlZCBpbiBwcmV2aW91cworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICBjaGFyIGNoID0gdGFyZ2V0VGV4dC5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKGNoID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtYXRjaExlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCBoYXZlIHJldmVyc2VkIGRpcmVjdGlvbiBhZnRlciB3ZSByZWFjaGVkIHRoZSBlbmQKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgdGFyZ2V0IHRleHQKKyAgICAgICAgICAgICAgICAvLyBzZWUgU2VhcmNoSXRlcmF0b3IgbmV4dCgpLCBpdCBjaGVja3MgdGhlIGJvdW5kcyBhbmQgcmV0dXJucworICAgICAgICAgICAgICAgIC8vIGlmIGl0IGV4Y2VlZHMgdGhlIHJhbmdlLiBJdCBkb2VzIG5vdCBhbGxvdyBzZXR0aW5nIG9mCisgICAgICAgICAgICAgICAgLy8gbV9tYXRjaGVkSW5kZXgKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1faXNDYW5vbmljYWxNYXRjaF8pIHsKKyAgICAgICAgICAgICAgICAvLyBjYW4ndCB1c2UgZXhhY3QgaGVyZSBzaW5jZSBleHRyYSBhY2NlbnRzIGFyZSBhbGxvd2VkLgorICAgICAgICAgICAgICAgIGhhbmRsZVByZXZpb3VzQ2Fub25pY2FsKHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGhhbmRsZVByZXZpb3VzRXhhY3Qoc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fbWF0Y2hlZEluZGV4XyA9PSBET05FKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fdGV4dEJlZ2luT2Zmc2V0Xyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fbWF0Y2hlZEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fbWF0Y2hlZEluZGV4XzsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIHN0YXRpYyBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBQYXR0ZXJuIAorICAgIHsKKyAgICAgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXR0ZXJuIHN0cmluZworICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyB0YXJnZXRUZXh0OworICAgICAgICAvKioKKyAgICAgICAgICogQXJyYXkgY29udGFpbmluZyB0aGUgY29sbGF0aW9uIGVsZW1lbnRzIG9mIHRhcmdldFRleHQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9DRV9bXTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBjb2xsYXRpb24gZWxlbWVudHMgaW4gbV9DRV8KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9DRUxlbmd0aF87IAorICAgICAgICAvKioKKyAgICAgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgdGFyZ2V0VGV4dCBzdGFydHMgd2l0aCBhbiBhY2NlbnQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1faGFzUHJlZml4QWNjZW50c187CisgICAgICAgIC8qKgorICAgICAgICAgKiBGbGFnIGluZGljYXRvciBpZiB0YXJnZXRUZXh0IGVuZHMgd2l0aCBhbiBhY2NlbnQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1faGFzU3VmZml4QWNjZW50c187CisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNoaWZ0IGZvciBCb3llciBNb29yZQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX2RlZmF1bHRTaGlmdFNpemVfOworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2hpZnQgZm9yIEJveWVyIE1vb3JlLCBkZXBlbmRpbmcgb24gdGhlCisgICAgICAgICAqIHNvdXJjZSB0ZXh0IHRvIHNlYXJjaAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGNoYXIgbV9zaGlmdF9bXTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNoaWZ0IGJhY2t3YXJkcyBmb3IgQm95ZXIgTW9vcmUsIGRlcGVuZGluZyAKKyAgICAgICAgICogb24gdGhlIHNvdXJjZSB0ZXh0IHRvIHNlYXJjaAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGNoYXIgbV9iYWNrU2hpZnRfW107CisgICAgICAgIAorICAgICAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yIAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXRUZXh0ID0gcGF0dGVybjsKKyAgICAgICAgICAgIG1fQ0VfID0gbmV3IGludFtJTklUSUFMX0FSUkFZX1NJWkVfXTsgICAgCisgICAgICAgICAgICBtX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgICBtX2hhc1ByZWZpeEFjY2VudHNfID0gZmFsc2U7CisgICAgICAgICAgICBtX2hhc1N1ZmZpeEFjY2VudHNfID0gZmFsc2U7CisgICAgICAgICAgICBtX2RlZmF1bHRTaGlmdFNpemVfID0gMTsgICAgICAgIAorICAgICAgICAgICAgbV9zaGlmdF8gPSBuZXcgY2hhcltNQVhfVEFCTEVfU0laRV9dOworICAgICAgICAgICAgbV9iYWNrU2hpZnRfID0gbmV3IGNoYXJbTUFYX1RBQkxFX1NJWkVfXTsKKyAgICAgICAgfQorICAgIH07CisKKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIHRhcmdldCB0ZXh0IGJlZ2luIG9mZnNldC4gRWFjaCB0YXJnZXRUZXh0IGhhcyBhIHZhbGlkIGNvbnRpZ3VvdXMgcmVnaW9uIAorICAgICAqIHRvIGl0ZXJhdGUgYW5kIHRoaXMgZGF0YSBtZW1iZXIgaXMgdGhlIG9mZnNldCB0byB0aGUgZmlyc3Qgc3VjaAorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgcmVnaW9uLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdGV4dEJlZ2luT2Zmc2V0XzsKKyAgICAvKioKKyAgICAgKiB0YXJnZXQgdGV4dCBsaW1pdCBvZmZzZXQuIEVhY2ggdGFyZ2V0VGV4dCBoYXMgYSB2YWxpZCBjb250aWd1b3VzIHJlZ2lvbiAKKyAgICAgKiB0byBpdGVyYXRlIGFuZCB0aGlzIGRhdGEgbWVtYmVyIGlzIHRoZSBvZmZzZXQgdG8gMSBhZnRlciB0aGUgbGFzdCBzdWNoCisgICAgICogY2hhcmFjdGVyIGluIHRoZSByZWdpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV90ZXh0TGltaXRPZmZzZXRfOworICAgIC8qKgorICAgICAqIFVwb24gY29tcGxldGlvbiBvZiBhIHNlYXJjaCwgbV9tYXRjaEluZGV4XyB3aWxsIHN0b3JlIHN0YXJ0aW5nIG9mZnNldCBpbgorICAgICAqIG1fdGV4dCBmb3IgdGhlIG1hdGNoLiBUaGUgVmFsdWUgRE9ORSBpcyB0aGUgZGVmYXVsdCB2YWx1ZS4gCisgICAgICogSWYgd2UgYXJlIG5vdCBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dCBhbmQgCisgICAgICogbV9tYXRjaGVkSW5kZXhfIGlzIERPTkUgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gZmluZCBhbnkgbW9yZSBtYXRjaGVzIGluIAorICAgICAqIHRoYXQgcGFydGljdWxhciBkaXJlY3Rpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX21hdGNoZWRJbmRleF87IAorICAgIC8qKgorICAgICAqIEN1cnJlbnQgcGF0dGVybiB0byBzZWFyY2ggZm9yCisgICAgICovCisgICAgcHJpdmF0ZSBQYXR0ZXJuIG1fcGF0dGVybl87CisgICAgLyoqCisgICAgICogQ29sbGF0b3Igd2hvc2UgcnVsZXMgYXJlIHVzZWQgdG8gcGVyZm9ybSB0aGUgc2VhcmNoCisgICAgICovCisgICAgcHJpdmF0ZSBSdWxlQmFzZWRDb2xsYXRvciBtX2NvbGxhdG9yXzsKKyAgICAvKiogCisgICAgICogVGhlIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGZvciB0aGUgdGV4dCBzb3VyY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV9jb2xFSXRlcl87CisgICAgLyoqIAorICAgICAqIFV0aWxpdHkgY29sbGF0aW9uIGVsZW1lbnQsIHVzZWQgdGhyb3VnaG91dCBwcm9ncmFtIGZvciB0ZW1wb3JhcnkgCisgICAgICogaXRlcmF0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fdXRpbENvbEVJdGVyXzsKKyAgICAvKioKKyAgICAgKiBUaGUgbWFzayB1c2VkIG9uIHRoZSBjb2xsYXRpb24gZWxlbWVudHMgdG8gcmV0cmlldmUgdGhlIHZhbGlkIHN0cmVuZ3RoCisgICAgICogd2VpZ2h0IAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY2VNYXNrXzsKKyAgICAvKioKKyAgICAgKiBCdWZmZXIgc3RvcmluZyBhY2NlbnRzIGR1cmluZyBhIGNhbm9uaWNhbCBzZWFyY2gKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfOworICAgIC8qKgorICAgICAqIEJ1ZmZlciBzdG9yaW5nIGFjY2VudHMgZHVyaW5nIGEgY2Fub25pY2FsIHNlYXJjaAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c187CisgICAgLyoqCisgICAgICogRmxhZyB0byBpbmRpY2F0ZSBpZiBjYW5vbmljYWwgc2VhcmNoIGlzIHRvIGJlIGRvbmUuCisgICAgICogRS5nIGxvb2tpbmcgZm9yICJhXHUwMzAwIiBpbiAiYVx1MDMxOFx1MDMwMCIgd2lsbCB5aWVsZCB0aGUgbWF0Y2ggYXQgMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0Nhbm9uaWNhbE1hdGNoXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSBzaGlmdCB0YWJsZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1RBQkxFX1NJWkVfID0gMjU3OyAKKyAgICAvKioKKyAgICAgKiBJbml0aWFsIGFycmF5IHNpemUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5JVElBTF9BUlJBWV9TSVpFXyA9IDI1NjsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IG1hc2sKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VDT05EX0xBU1RfQllURV9TSElGVF8gPSA4OworICAgIC8qKgorICAgICAqIFV0aWxpdHkgbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweGZmOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgYnVmZmVyIGZvciByZXR1cm4gdmFsdWVzIGFuZCB0ZW1wb3Jhcnkgc3RvcmFnZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ1ZmZlcl9bXSA9IG5ldyBpbnRbMl07CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSGFzaCBhIGNvbGxhdGlvbiBlbGVtZW50IGZyb20gaXRzIGZ1bGwgc2l6ZSAoMzIgYml0cykgZG93biBpbnRvIGEKKyAgICAgKiB2YWx1ZSB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIGluZGV4IGludG8gdGhlIHNoaWZ0IHRhYmxlcy4gIFJpZ2h0CisgICAgICogbm93IHdlIGRvIGEgbW9kdWx1cyBieSB0aGUgc2l6ZSBvZiB0aGUgaGFzaCB0YWJsZS4KKyAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIGNvbGxhcHNlZCB2ZXJzaW9uIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBoYXNoKGludCBjZSkgCisgICAgeworICAgICAgICAvLyB0aGUgb2xkIHZhbHVlIFVDT0xfUFJJTUFSWU9SREVSKGNlKSAlIE1BWF9UQUJMRV9TSVpFXyBkb2VzIG5vdCB3b3JrCisgICAgICAgIC8vIHdlbGwgd2l0aCB0aGUgbmV3IGNvbGxhdGlvbiB3aGVyZSBtb3N0IG9mIHRoZSBsYXRpbiAxIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gYXJlIG9mIHRoZSB2YWx1ZSB4eDAwMHh4eC4gdGhlaXIgaGFzaGVzIHdpbGwgbW9zdCBvZiB0aGUgdGltZSBiZSAwCisgICAgICAgIC8vIHRvIGJlIGRpc2N1c3NlZCBvbiB0aGUgaGFzaCBhbGdvLgorICAgICAgICByZXR1cm4gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihjZSkgJSBNQVhfVEFCTEVfU0laRV87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZjZCB2YWx1ZSBmb3IgYSBjaGFyYWN0ZXIgYXQgdGhlIGFyZ3VtZW50IGluZGV4LgorICAgICAqIFRoaXMgbWV0aG9kIHRha2VzIGludG8gYWNjb3VudHMgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycy4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGNoYW5nZXMgdGhlIG9mZnNldCBpbiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBzdHIgVVRGMTYgc3RyaW5nIHdoZXJlIGNoYXJhY3RlciBmb3IgZmNkIHJldHJpZXZhbCByZXNpZGVzCisgICAgICogQHBhcmFtIG9mZnNldCBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdob3NlIGZjZCBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIGZjZCB2YWx1ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgZ2V0RkNEKENoYXJhY3Rlckl0ZXJhdG9yIHN0ciwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIHN0ci5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBjaGFyIGNoID0gc3RyLmN1cnJlbnQoKTsKKyAgICAgICAgY2hhciByZXN1bHQgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgIAorICAgICAgICBpZiAoKHJlc3VsdCAhPSAwKSAmJiAoc3RyLmdldEVuZEluZGV4KCkgIT0gb2Zmc2V0ICsgMSkgJiYgCisgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBjaCA9IHN0ci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZjZCB2YWx1ZSBmb3IgYSBjaGFyYWN0ZXIgYXQgdGhlIGFyZ3VtZW50IGluZGV4LgorICAgICAqIFRoaXMgbWV0aG9kIHRha2VzIGludG8gYWNjb3VudHMgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc3RyIFVURjE2IHN0cmluZyB3aGVyZSBjaGFyYWN0ZXIgZm9yIGZjZCByZXRyaWV2YWwgcmVzaWRlcworICAgICAqIEBwYXJhbSBvZmZzZXQgcG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3aG9zZSBmY2QgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiBmY2QgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGdldEZDRChTdHJpbmcgc3RyLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgY2hhciBjaCA9IHN0ci5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgY2hhciByZXN1bHQgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgIAorICAgICAgICBpZiAoKHJlc3VsdCAhPSAwKSAmJiAoc3RyLmxlbmd0aCgpICE9IG9mZnNldCArIDEpICYmIAorICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgY2ggPSBzdHIuY2hhckF0KG9mZnNldCArIDEpOworICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihyZXN1bHQsIGNoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIG1vZGlmaWVkIGNvbGxhdGlvbiBlbGVtZW50cyB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2xsYXRpb24gCisgICAgKiBhdHRyaWJ1dGVzCisgICAgKiBAcGFyYW0gY2UgCisgICAgKiBAcmV0dXJuIHRoZSBtb2RpZmllZCBjb2xsYXRpb24gZWxlbWVudAorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0Q0UoaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gbm90ZSBmb3IgdGVydGlhcnkgd2UgY2FuJ3QgdXNlIHRoZSBjb2xsYXRvci0+dGVydGlhcnlNYXNrLCB0aGF0CisgICAgICAgIC8vIGlzIGEgcHJlcHJvY2Vzc2VkIG1hc2sgdGhhdCB0YWtlcyBpbnRvIGFjY291bnQgY2FzZSBvcHRpb25zLiBzaW5jZQorICAgICAgICAvLyB3ZSBhcmUgb25seSBjb25jZXJuZWQgd2l0aCBleGFjdCBtYXRjaGVzLCB3ZSBkb24ndCBuZWVkIHRoYXQuCisgICAgICAgIGNlICY9IG1fY2VNYXNrXzsKKyAgICAgICAgCisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpKSB7CisgICAgICAgICAgICAvLyBhbHRlcm5hdGUgaGFuZGxpbmcgaGVyZSwgc2luY2Ugb25seSB0aGUgMTYgbW9zdCBzaWduaWZpY2FudCAKKyAgICAgICAgICAgIC8vIGRpZ2l0cyBpcyBvbmx5IHVzZWQsIHdlIGNhbiBzYWZlbHkgZG8gYSBjb21wYXJlIHdpdGhvdXQgbWFza2luZworICAgICAgICAgICAgLy8gaWYgdGhlIGNlIGlzIGEgdmFyaWFibGUsIHdlIG1hc2sgYW5kIGdldCBvbmx5IHRoZSBwcmltYXJ5IHZhbHVlcworICAgICAgICAgICAgLy8gbm8gc2hpZnRpbmcgdG8gcXVhcnRlbmFyeSBpcyByZXF1aXJlZCBzaW5jZSBhbGwgcHJpbWFyeSB2YWx1ZXMKKyAgICAgICAgICAgIC8vIGxlc3MgdGhhbiB2YXJpYWJsZXRvcCB3aWxsIG5lZWQgdG8gYmUgbWFza2VkIG9mZiBhbnl3YXkuCisgICAgICAgICAgICBpZiAoKG1fY29sbGF0b3JfLm1fdmFyaWFibGVUb3BWYWx1ZV8gIDw8IDE2KSA+IGNlKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY29sbGF0b3JfLmdldFN0cmVuZ3RoKCkgPT0gQ29sbGF0b3IuUVVBVEVSTkFSWSkgeworICAgICAgICAgICAgICAgICAgICBjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoY2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgIGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIGNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBcHBlbmRzIGEgaW50IHRvIGEgaW50IGFycmF5LCBpbmNyZWFzaW5nIHRoZSBzaXplIG9mIHRoZSBhcnJheSB3aGVuIAorICAgICAqIHdlIGFyZSBvdXQgb2Ygc3BhY2UuCisgICAgICogQHBhcmFtIG9mZnNldCBpbiBhcnJheSB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gdmFsdWUgdG8gYXBwZW5kCisgICAgICogQHBhcmFtIGFycmF5IHRvIGFwcGVuZCB0bworICAgICAqIEByZXR1cm4gdGhlIGFycmF5IGFwcGVuZGVkIHRvLCB0aGlzIGNvdWxkIGJlIGEgbmV3IGFuZCBiaWdnZXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBhcHBlbmQoaW50IG9mZnNldCwgaW50IHZhbHVlLCBpbnQgYXJyYXlbXSkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPj0gYXJyYXkubGVuZ3RoKSB7CisgICAgICAgICAgICBpbnQgdGVtcFtdID0gbmV3IGludFtvZmZzZXQgKyBJTklUSUFMX0FSUkFZX1NJWkVfXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYXJyYXksIDAsIHRlbXAsIDAsIGFycmF5Lmxlbmd0aCk7CisgICAgICAgICAgICBhcnJheSA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgYXJyYXlbb2Zmc2V0XSA9IHZhbHVlOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemluZyB0aGUgY2UgdGFibGUgZm9yIGEgcGF0dGVybi4gU3RvcmVzIG5vbi1pZ25vcmFibGUgY29sbGF0aW9uIAorICAgICAqIGtleXMuIFRhYmxlIHNpemUgd2lsbCBiZSBlc3RpbWF0ZWQgYnkgdGhlIHNpemUgb2YgdGhlIHBhdHRlcm4gdGV4dC4gCisgICAgICogVGFibGUgZXhwYW5zaW9uIHdpbGwgYmUgcGVyZm9ybSBhcyB3ZSBnbyBhbG9uZy4gQWRkaW5nIDEgdG8gZW5zdXJlIHRoYXQgCisgICAgICogdGhlIHRhYmxlIHNpemUgZGVmaW5pdGVseSBpbmNyZWFzZXMuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBhIHN1Y2Nlc3MuCisgICAgICogQHJldHVybiB0b3RhbCBudW1iZXIgb2YgZXhwYW5zaW9ucyAKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBpbml0aWFsaXplUGF0dGVybkNFVGFibGUoKQorICAgIHsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobV9wYXR0ZXJuXy50YXJnZXRUZXh0KTsKKyAgICAgICAgCisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAKKyAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGludCBuZXdjZSA9IGdldENFKGNlKTsKKyAgICAgICAgICAgIGlmIChuZXdjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFXyA9IGFwcGVuZChvZmZzZXQsIG5ld2NlLCBtX3BhdHRlcm5fLm1fQ0VfKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKys7ICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgKz0gbV91dGlsQ29sRUl0ZXJfLmdldE1heEV4cGFuc2lvbihjZSkgLSAxOworICAgICAgICAgICAgY2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICB9CisgICAgCisgICAgICAgIG1fcGF0dGVybl8ubV9DRV8gPSBhcHBlbmQob2Zmc2V0LCAwLCBtX3BhdHRlcm5fLm1fQ0VfKTsKKyAgICAgICAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA9IG9mZnNldDsKKyAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIHBhdHRlcm4gc3RydWN0LgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2Vzcy4KKyAgICAgKiBAcmV0dXJuIGV4cGFuc2lvbnNpemUgdGhlIHRvdGFsIGV4cGFuc2lvbiBzaXplIG9mIHRoZSBwYXR0ZXJuCisgICAgICovIAorICAgIHByaXZhdGUgZmluYWwgaW50IGluaXRpYWxpemVQYXR0ZXJuKCkKKyAgICB7CisgICAgICAgIG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXyA9IChnZXRGQ0QobV9wYXR0ZXJuXy50YXJnZXRUZXh0LCAwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKSAhPSAwOworICAgICAgICBtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18gPSAoZ2V0RkNEKG1fcGF0dGVybl8udGFyZ2V0VGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy50YXJnZXRUZXh0Lmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwOworICAgICAgICAvLyBzaW5jZSBpbnRpYWxpemVQYXR0ZXJuIGlzIGFuIGludGVybmFsIG1ldGhvZCBzdGF0dXMgaXMgYSBzdWNjZXNzLgorICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZVBhdHRlcm5DRVRhYmxlKCk7ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemluZyBzaGlmdCB0YWJsZXMsIHdpdGggdGhlIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIElmIGEgY29ycmVzcG9uZGluZyBkZWZhdWx0IHZhbHVlIGlzIDAsIHRoZSBzaGlmdCB0YWJsZSBpcyBub3Qgc2V0LgorICAgICAqIEBwYXJhbSBzaGlmdCB0YWJsZSBmb3IgZm9yd2FyZHMgc2hpZnQgCisgICAgICogQHBhcmFtIGJhY2tzaGlmdCB0YWJsZSBmb3IgYmFja3dhcmRzIHNoaWZ0CisgICAgICogQHBhcmFtIGNldGFibGUgdGFibGUgY29udGFpbmluZyBwYXR0ZXJuIGNlCisgICAgICogQHBhcmFtIGNlc2l6ZSBzaXplIG9mIHRoZSBwYXR0ZXJuIGNlcworICAgICAqIEBwYXJhbSBleHBhbnNpb25zaXplIHRvdGFsIHNpemUgb2YgdGhlIGV4cGFuc2lvbnMKKyAgICAgKiBAcGFyYW0gZGVmYXVsdGZvcndhcmQgdGhlIGRlZmF1bHQgZm9yd2FyZCB2YWx1ZQorICAgICAqIEBwYXJhbSBkZWZhdWx0YmFja3dhcmQgdGhlIGRlZmF1bHQgYmFja3dhcmQgdmFsdWUKKyAgICAgKi8KKyAgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHNldFNoaWZ0VGFibGUoY2hhciBzaGlmdFtdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGJhY2tzaGlmdFtdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2V0YWJsZVtdLCBpbnQgY2VzaXplLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBhbnNpb25zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZGVmYXVsdGZvcndhcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRlZmF1bHRiYWNrd2FyZCkKKyAgICB7CisgICAgICAgIC8vIGVzdGltYXRlIHRoZSB2YWx1ZSB0byBzaGlmdC4gdG8gZG8gdGhhdCB3ZSBlc3RpbWF0ZSB0aGUgc21hbGxlc3QgCisgICAgICAgIC8vIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGdpdmUgdGhlIHJlbGV2YW50IGNlcywgaWUgYXBwcm94aW1hdGVseQorICAgICAgICAvLyB0aGUgbnVtYmVyIG9mIGNlcyBtaW51cyB0aGVpciBleHBhbnNpb24sIHNpbmNlIGV4cGFuc2lvbnMgY2FuIGNvbWUgCisgICAgICAgIC8vIGZyb20gYSBjaGFyYWN0ZXIuCisgICAgICAgIGZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPCBNQVhfVEFCTEVfU0laRV87IGNvdW50ICsrKSB7CisgICAgICAgICAgICBzaGlmdFtjb3VudF0gPSBkZWZhdWx0Zm9yd2FyZDsKKyAgICAgICAgfQorICAgICAgICBjZXNpemUgLS07IC8vIGRvd24gdG8gdGhlIGxhc3QgaW5kZXgKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGNlc2l6ZTsgY291bnQgKyspIHsKKyAgICAgICAgICAgIC8vIG51bWJlciBvZiBjZXMgZnJvbSByaWdodCBvZiBhcnJheSB0byB0aGUgY291bnQKKyAgICAgICAgICAgIGludCB0ZW1wID0gZGVmYXVsdGZvcndhcmQgLSBjb3VudCAtIDE7CisgICAgICAgICAgICBzaGlmdFtoYXNoKGNldGFibGVbY291bnRdKV0gPSB0ZW1wID4gMSA/ICgoY2hhcil0ZW1wKSA6IDE7CisgICAgICAgIH0KKyAgICAgICAgc2hpZnRbaGFzaChjZXRhYmxlW2Nlc2l6ZV0pXSA9IDE7CisgICAgICAgIC8vIGZvciBpZ25vcmFibGVzIHdlIGp1c3Qgc2hpZnQgYnkgb25lLiBzZWUgdGVzdCBleGFtcGxlcy4KKyAgICAgICAgc2hpZnRbaGFzaCgwKV0gPSAxOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IE1BWF9UQUJMRV9TSVpFXzsgY291bnQgKyspIHsKKyAgICAgICAgICAgIGJhY2tzaGlmdFtjb3VudF0gPSBkZWZhdWx0YmFja3dhcmQ7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgY291bnQgPSBjZXNpemU7IGNvdW50ID4gMDsgY291bnQgLS0pIHsKKyAgICAgICAgICAgIC8vIHRoZSBvcmlnaW5hbCB2YWx1ZSBjb3VudCBkb2VzIG5vdCBzZWVtIHRvIHdvcmsKKyAgICAgICAgICAgIGJhY2tzaGlmdFtoYXNoKGNldGFibGVbY291bnRdKV0gPSAoY2hhcikoY291bnQgPiBleHBhbnNpb25zaXplID8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtIGV4cGFuc2lvbnNpemUgOiAxKTsKKyAgICAgICAgfQorICAgICAgICBiYWNrc2hpZnRbaGFzaChjZXRhYmxlWzBdKV0gPSAxOworICAgICAgICBiYWNrc2hpZnRbaGFzaCgwKV0gPSAxOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5CdWlsZGluZyBvZiB0aGUgcGF0dGVybiBjb2xsYXRpb24gZWxlbWVudCBsaXN0IGFuZCB0aGUgQm95ZXIgTW9vcmUgCisgICAgICogU3RyaW5nU2VhcmNoIHRhYmxlLjwvcD4KKyAgICAgKiA8cD5UaGUgY2Fub25pY2FsIG1hdGNoIHdpbGwgb25seSBiZSBwZXJmb3JtZWQgYWZ0ZXIgdGhlIGRlZmF1bHQgbWF0Y2ggCisgICAgICogZmFpbHMuPC9wPgorICAgICAqIDxwPkZvciBib3RoIGNhc2VzIHdlIG5lZWQgdG8gcmVtZW1iZXIgdGhlIHNpemUgb2YgdGhlIGNvbXBvc2VkIGFuZCAKKyAgICAgKiBkZWNvbXBvc2VkIHZlcnNpb25zIG9mIHRoZSBzdHJpbmcuIFNpbmNlIHRoZSBCb3llci1Nb29yZSBzaGlmdCAKKyAgICAgKiBjYWxjdWxhdGlvbnMgc2hpZnRzIGJ5IGEgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQgYW5kIHRyaWVzIHRvIAorICAgICAqIG1hdGNoIHRoZSBwYXR0ZXJuIGZyb20gdGhhdCBvZmZzZXQsIHRoZSBzaGlmdCB2YWx1ZSBjYW4gbm90IGJlIHRvbyBsYXJnZSAKKyAgICAgKiBpbiBjYXNlIHdlIG1pc3Mgc29tZSBjaGFyYWN0ZXJzLiBUbyBjaG9vc2UgYSByaWdodCBzaGlmdCBzaXplLCB3ZSAKKyAgICAgKiBlc3RpbWF0ZSB0aGUgTkZDIGZvcm0gb2YgdGhlIGFuZCB1c2UgaXRzIHNpemUgYXMgYSBzaGlmdCBndWlkZS4gVGhlIE5GQyAKKyAgICAgKiBmb3JtIHNob3VsZCBiZSB0aGUgc21hbGwgcG9zc2libGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBhdHRlcm4uIEFueXdheXMsIAorICAgICAqIHdlJ2xsIGVyciBvbiB0aGUgc21hbGxlciBzaGlmdCBzaXplLiBIZW5jZSB0aGUgY2FsY3VsYXRpb24gZm9yIAorICAgICAqIG1pbmxlbmd0aC4gQ2Fub25pY2FsIG1hdGNoIHdpbGwgYmUgcGVyZm9ybWVkIHNsaWdodGx5IGRpZmZlcmVudGx5LiBXZSdsbCAKKyAgICAgKiBzcGxpdCB0aGUgcGF0dGVybiBpbnRvIDMgcGFydHMsIHRoZSBwcmVmaXggYWNjZW50cyAoUEEpLCB0aGUgbWlkZGxlIAorICAgICAqIHN0cmluZyBib3VuZGVkIGJ5IHRoZSBmaXJzdCBhbmQgbGFzdCBiYXNlIGNoYXJhY3RlciAoTVMpLCB0aGUgZW5kaW5nIAorICAgICAqIGFjY2VudHMgKEVBKS4gTWF0Y2hlcyB3aWxsIGJlIGRvbmUgb24gTVMgZmlyc3QsIGFuZCBvbmx5IHdoZW4gd2UgbWF0Y2ggCisgICAgICogTVMgdGhlbiBzb21lIHByb2Nlc3Npbmcgd2lsbCBiZSByZXF1aXJlZCBmb3IgdGhlIHByZWZpeCBhbmQgZW5kIGFjY2VudHMgCisgICAgICogaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgbWF0Y2ggUEEgYW5kIEVBLiBIZW5jZSB0aGUgZGVmYXVsdCBzaGlmdCAKKyAgICAgKiB2YWx1ZXMgZm9yIHRoZSBjYW5vbmljYWwgbWF0Y2ggd2lsbCB0YWtlIHRoZSBzaXplIG9mIGVpdGhlciBlbmQncyBhY2NlbnQgCisgICAgICogaW50byBjb25zaWRlcmF0aW9uLiBGb3J3YXJkcyBzZWFyY2ggd2lsbCB0YWtlIHRoZSBlbmQgYWNjZW50cyBpbnRvIAorICAgICAqIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBkZWZhdWx0IHNoaWZ0IHZhbHVlcyBhbmQgdGhlIGJhY2t3YXJkcyBzZWFyY2ggd2lsbCAKKyAgICAgKiB0YWtlIHRoZSBwcmVmaXggYWNjZW50cyBpbnRvIGNvbnNpZGVyYXRpb24uPC9wPgorICAgICAqIDxwPklmIHBhdHRlcm4gaGFzIG5vIG5vbi1pZ25vcmFibGUgY2UsIHdlIHJldHVybiBhIGlsbGVnYWwgYXJndW1lbnQgCisgICAgICogZXJyb3IuPC9wPgorICAgICAqLyAKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgaW5pdGlhbGl6ZSgpCisgICAgeworICAgICAgICBpbnQgZXhwYW5kbGVuZ3RoICA9IGluaXRpYWxpemVQYXR0ZXJuKCk7ICAgCisgICAgICAgIGlmIChtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfID4gMCkgeworICAgICAgICAgICAgY2hhciBtaW5sZW5ndGggPSAoY2hhcikobV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA+IGV4cGFuZGxlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gZXhwYW5kbGVuZ3RoIDogMSk7CisgICAgICAgICAgICBtX3BhdHRlcm5fLm1fZGVmYXVsdFNoaWZ0U2l6ZV8gPSBtaW5sZW5ndGg7CisgICAgICAgICAgICBzZXRTaGlmdFRhYmxlKG1fcGF0dGVybl8ubV9zaGlmdF8sIG1fcGF0dGVybl8ubV9iYWNrU2hpZnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFXywgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGxlbmd0aCwgbWlubGVuZ3RoLCBtaW5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgc2VhcmNoIHRleHQgYm91bmRlZCBieSB0aGUgb2Zmc2V0IHN0YXJ0IGFuZCBlbmQgaXMgCisgICAgICogb25lIG9yIG1vcmUgd2hvbGUgdW5pdHMgb2YgdGV4dCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBicmVha2l0ZXJhdG9yIGluIAorICAgICAqIFN0cmluZ1NlYXJjaC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGFyZ2V0IHRleHQgc3RhcnQgb2Zmc2V0CisgICAgICogQHBhcmFtIGVuZCB0YXJnZXQgdGV4dCBlbmQgb2Zmc2V0CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzQnJlYWtVbml0KGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICBpZiAoYnJlYWtJdGVyYXRvciAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgc3RhcnRpbmRleCA9IGJyZWFrSXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgICAgIGludCBlbmRpbmRleCAgID0gYnJlYWtJdGVyYXRvci5sYXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG91dC1vZi1yYW5nZSBpbmRleGVzIGFyZSBuZXZlciBib3VuZGFyeSBwb3NpdGlvbnMKKyAgICAgICAgICAgIGlmIChzdGFydCA8IHN0YXJ0aW5kZXggfHwgc3RhcnQgPiBlbmRpbmRleCB8fCBlbmQgPCBzdGFydGluZGV4IAorICAgICAgICAgICAgICAgIHx8IGVuZCA+IGVuZGluZGV4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBjYW4gdXNlIGZvbGxvd2luZygpIG9uIHRoZSBwb3NpdGlvbiBiZWZvcmUgdGhlIAorICAgICAgICAgICAgLy8gc3BlY2lmaWVkIG9uZSBhbmQgcmV0dXJuIHRydWUgb2YgdGhlIHBvc2l0aW9uIHdlIGdldCBiYWNrIGlzIHRoZSAKKyAgICAgICAgICAgIC8vIG9uZSB0aGUgdXNlciBzcGVjaWZpZWQKKyAgICAgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gKHN0YXJ0ID09IHN0YXJ0aW5kZXggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBicmVha0l0ZXJhdG9yLmZvbGxvd2luZyhzdGFydCAtIDEpID09IHN0YXJ0KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGVuZCA9PSBlbmRpbmRleCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBicmVha0l0ZXJhdG9yLmZvbGxvd2luZyhlbmQgLSAxKSA9PSBlbmQpOworICAgICAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGVzIHRoZSBpbmRpdmlkdWFsIGNlcworICAgICAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KAorICAgICAgICAgICAgICAgICAgICBuZXcgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHRhcmdldFRleHQpLCBzdGFydCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisgICAgICAgICAgICAgICAgICAgICBjb3VudCArKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX3V0aWxDb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IG5leHRjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvbEVJdGVyXy5nZXRPZmZzZXQoKSA9PSBlbmQgCisgICAgICAgICAgICAgICAgICAgICAgICYmIGdldENFKG5leHRjZSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBuZXh0Y2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOyAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG5leHRjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAmJiBtX3V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgPT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGV4dHJhIGNvbGxhdGlvbiBlbGVtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBtYXRjaAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGluZyB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvZmZzZXQgaWYgY3VycmVudCBvZmZzZXQgaXMgYW4gYWNjZW50LCAKKyAgICAgKiBvciB0aGUgY3VycmVudCBvZmZzZXQgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGNvbnRhaW5zIGEgYmFzZSBjaGFyYWN0ZXIuIAorICAgICAqIGFjY2VudHMgdGhlIGZvbGxvd2luZyBiYXNlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHBhcmFtIHRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgY3VycmVudCBvZmZzZXQKKyAgICAgKiBAcGFyYW0gdGV4dGxlbmd0aCBsZW5ndGggb2YgdGV4dCBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyIG9yIHRoZSBjdXJyZW50IG9mZnNldAorICAgICAqICAgICAgICAgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGNvbnRhaW5zIGEgYmFzZSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0TmV4dEJhc2VPZmZzZXQoQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKHRleHRvZmZzZXQgPCB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHdoaWxlICh0ZXh0LmdldEluZGV4KCkgPCB0ZXh0LmdldEVuZEluZGV4KCkpIHsgCisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGV4dCwgdGV4dG9mZnNldCArKykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRleHQuZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvZmZzZXQgZGVwZW5kaW5nIG9uIHRoZSBzdHJpbmcgc2VhcmNoIAorICAgICAqIHBhdHRlcm4gZGF0YQorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9uZSBvZmZzZXQgYXdheSBmcm9tIHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAqICAgICAgICAgICAgICAgICAgIHRvIHNlYXJjaCBmb3IuCisgICAgICogQHJldHVybiBzdGFydCBpbmRleCBvZiB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvciB0aGUgY3VycmVudCBvZmZzZXQKKyAgICAgKiAgICAgICAgIGlmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyBjb250YWlucyBhIGJhc2UgY2hhcmFjdGVyLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldE5leHRCYXNlT2Zmc2V0KGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyAKKyAgICAgICAgICAgICYmIHRleHRvZmZzZXQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGV4dG9mZnNldCk7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXh0b2Zmc2V0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTaGlmdGluZyB0aGUgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgcG9zaXRpb24gZm9yd2FyZCB0byBwcmVwYXJlIGZvcgorICAgICAqIGEgZm9sbG93aW5nIG1hdGNoLiBJZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaXMgYSB1bnNhZmUgY2hhcmFjdGVyLCB3ZSdsbCAKKyAgICAgKiBvbmx5IHNoaWZ0IGJ5IDEgdG8gY2FwdHVyZSBjb250cmFjdGlvbnMsIG5vcm1hbGl6YXRpb24gZXRjLgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2Vzcy4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBzdGFydCB0ZXh0IHBvc2l0aW9uIHRvIGRvIHNlYXJjaAorICAgICAqIEBwYXJhbSBjZSB0aGUgdGV4dCBjZSB3aGljaCBmYWlsZWQgdGhlIG1hdGNoLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuY2VpbmRleCBpbmRleCBvZiB0aGUgY2Ugd2l0aGluIHRoZSBwYXR0ZXJuIGNlIGJ1ZmZlciB3aGljaAorICAgICAqICAgICAgICBmYWlsZWQgdGhlIG1hdGNoCisgICAgICogQHJldHVybiBmaW5hbCBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzaGlmdEZvcndhcmQoaW50IHRleHRvZmZzZXQsIGludCBjZSwgaW50IHBhdHRlcm5jZWluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgeworICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaW50IHNoaWZ0ID0gbV9wYXR0ZXJuXy5tX3NoaWZ0X1toYXNoKGNlKV07CisgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGFkanVzdCBmb3IgY2hhcmFjdGVycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSAKKyAgICAgICAgICAgIC8vIHN1YnN0cmluZyBmb3IgbWF0Y2hpbmcgdGhhdCBmYWlsZWQuCisgICAgICAgICAgICBpbnQgYWRqdXN0ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIHBhdHRlcm5jZWluZGV4OworICAgICAgICAgICAgaWYgKGFkanVzdCA+IDEgJiYgc2hpZnQgPj0gYWRqdXN0KSB7CisgICAgICAgICAgICAgICAgc2hpZnQgLT0gYWRqdXN0IC0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgKz0gc2hpZnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ICs9IG1fcGF0dGVybl8ubV9kZWZhdWx0U2hpZnRTaXplXzsKKyAgICAgICAgfQorICAgICAgICAgCisgICAgICAgIHRleHRvZmZzZXQgPSBnZXROZXh0QmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgLy8gY2hlY2sgZm9yIHVuc2FmZSBjaGFyYWN0ZXJzCisgICAgICAgIC8vICogaWYgaXQgaXMgdGhlIHN0YXJ0IG9yIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uOiB0byBiZSBkb25lIGFmdGVyIAorICAgICAgICAvLyAgIGEgaW5pdGlhbCBtYXRjaCBpcyBmb3VuZAorICAgICAgICAvLyAqIHRoYWkgb3IgbGFvIGJhc2UgY29uc29uYW50IGNoYXJhY3Rlcjogc2ltaWxhciB0byBjb250cmFjdGlvbgorICAgICAgICAvLyAqIGhpZ2ggc3Vycm9nYXRlIGNoYXJhY3Rlcjogc2ltaWxhciB0byBjb250cmFjdGlvbgorICAgICAgICAvLyAqIG5leHQgY2hhcmFjdGVyIGlzIGEgYWNjZW50OiBzaGlmdCB0byB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlcgorICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBuZXh0IHNhZmUgcG9pbnQgaW4gdGV4dC4KKyAgICAgKiBpZS4gbm90IHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiwgc3dhcHBhYmxlIGNoYXJhY3RlcnMgb3IgCisgICAgICogc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gZW5kIG9mZnNldCBpbiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG9mZnNldCB0byB0aGUgbmV4dCBzYWZlIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldE5leHRTYWZlT2Zmc2V0KGludCB0ZXh0b2Zmc2V0LCBpbnQgZW5kKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IHRleHRvZmZzZXQ7IC8vIGZpcnN0IGNvbnRyYWN0aW9uIGNoYXJhY3RlcgorICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIHdoaWxlIChyZXN1bHQgIT0gZW5kICYmIAorICAgICAgICAgICAgbV9jb2xsYXRvcl8uaXNVbnNhZmUodGFyZ2V0VGV4dC5jdXJyZW50KCkpKSB7CisgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsgCisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBUaGlzIGNoZWNrcyBmb3IgYWNjZW50cyBpbiB0aGUgcG90ZW50aWFsIG1hdGNoIHN0YXJ0ZWQgd2l0aCBhIGNvbXBvc2l0ZSAKKyAgICAgKiBjaGFyYWN0ZXIuCisgICAgICogVGhpcyBpcyByZWFsbHkgcGFpbmZ1bC4uLiB3ZSBoYXZlIHRvIGNoZWNrIHRoYXQgY29tcG9zaXRlIGNoYXJhY3RlciBkbyAKKyAgICAgKiBub3QgaGF2ZSBhbnkgZXh0cmEgYWNjZW50cy4gV2UgaGF2ZSB0byBub3JtYWxpemUgdGhlIHBvdGVudGlhbCBtYXRjaCBhbmQgCisgICAgICogZmluZCB0aGUgaW1tZWRpYXRlIGRlY29tcG9zZWQgY2hhcmFjdGVyIGJlZm9yZSB0aGUgbWF0Y2guCisgICAgICogVGhlIGZpcnN0IGNvbXBvc2l0ZSBjaGFyYWN0ZXIgd291bGQgaGF2ZSBiZWVuIHRha2VuIGNhcmUgb2YgYnkgdGhlIGZjZCAKKyAgICAgKiBjaGVja3MgaW4gY2hlY2tGb3J3YXJkRXhhY3RNYXRjaC4KKyAgICAgKiBUaGlzIGlzIHRoZSBzbG93IHBhdGggYWZ0ZXIgdGhlIGZjZCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFuZCAKKyAgICAgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgaGFzIGJlZW4gY2hlY2tlZCBieSBjaGVja0ZvcndhcmRFeGFjdE1hdGNoIGFuZCB3ZSAKKyAgICAgKiBkZXRlcm1pbmUgdGhhdCB0aGUgcG90ZW50aWFsIG1hdGNoIGhhcyBleHRyYSBub24taWdub3JhYmxlIHByZWNlZGluZworICAgICAqIGNlcy4KKyAgICAgKiBFLmcuIGxvb2tpbmcgZm9yIFx1MDMwMSBhY3V0ZSBpbiBcdTAxRkEgQSByaW5nIGFib3ZlIGFuZCBhY3V0ZSwgCisgICAgICogY2hlY2tFeHRyYU1hdGNoQWNjZW50IHNob3VsZCBmYWlsIHNpbmNlIHRoZXJlIGlzIGEgbWlkZGxlIHJpbmcgaW4gCisgICAgICogXHUwMUZBIE5vdGUgaGVyZSB0aGF0IGFjY2VudHMgY2hlY2tpbmcgYXJlIHNsb3cgYW5kIGNhdXRpb25lZCBpbiB0aGUgQVBJIAorICAgICAqIGRvY3MuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBhIHN1Y2Nlc3MsIGNhbGxlciBzaG91bGQgY2hlY2sgCisgICAgICogc3RhdHVzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kCisgICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IG9mIHRoZSBwb3RlbnRpYWwgdW5mcmllbmRseSBjb21wb3NpdGUgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIGVuZCBpbmRleCBvZiB0aGUgcG90ZW50aWFsIHVuZnJpZW5kbHkgY29tcG9zaXRlIGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBub24taWdub3JhYmxlIGFjY2VudHMgYmVmb3JlIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgKiAgICAgICAgICAgICAgb2YgdGhlIG1hdGNoLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrRXh0cmFNYXRjaEFjY2VudHMoaW50IHN0YXJ0LCBpbnQgZW5kKQorICAgIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQubmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgYXJlIG9ubHkgY29uY2VybmVkIHdpdGggdGhlIGZpcnN0IGNvbXBvc2l0ZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBnZXRTdHJpbmcodGFyZ2V0VGV4dCwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgICAgIGludCBzYWZlb2Zmc2V0ID0gZ2V0TmV4dFNhZmVPZmZzZXQoc3RhcnQsIGVuZCk7CisgICAgICAgICAgICAgICAgaWYgKHNhZmVvZmZzZXQgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIHNhZmVvZmZzZXQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyLnN1YnN0cmluZygwLCBzYWZlb2Zmc2V0IC0gc3RhcnQpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoZGVjb21wKTsKKyAgICAgICAgICAgICAgICBpbnQgZmlyc3RjZSA9IG1fcGF0dGVybl8ubV9DRV9bMF07CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpZ25vcmFibGUgPSB0cnVlOworICAgICAgICAgICAgICAgIGludCBjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IGZpcnN0Y2UpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gbV91dGlsQ29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2UgIT0gZmlyc3RjZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yYWJsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KG9mZnNldCk7IC8vIGJhY2sgdXAgMSB0byB0aGUgCisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnByZXZpb3VzKCk7ICAgICAgICAgICAgIC8vIHJpZ2h0IG9mZnNldAorICAgICAgICAgICAgICAgIG9mZnNldCA9IG1fdXRpbENvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAhaWdub3JhYmxlICYmIChVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5jaGFyQXQoZGVjb21wLCBvZmZzZXQpKSAhPSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFVzZWQgYnkgZXhhY3QgbWF0Y2hlcywgY2hlY2tzIGlmIHRoZXJlIGFyZSBhY2NlbnRzIGJlZm9yZSB0aGUgbWF0Y2guIAorICAgICogVGhpcyBpcyByZWFsbHkgcGFpbmZ1bC4uLiB3ZSBoYXZlIHRvIGNoZWNrIHRoYXQgY29tcG9zaXRlIGNoYXJhY3RlcnMgYXQKKyAgICAqIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2hlcyBoYXZlIHRvIG5vdCBoYXZlIGFueSBleHRyYSBhY2NlbnRzLiAKKyAgICAqIFdlIGNoZWNrIHRoZSBGQ0Qgb2YgdGhlIGNoYXJhY3RlciBmaXJzdCwgaWYgaXQgc3RhcnRzIHdpdGggYW4gYWNjZW50IGFuZCAKKyAgICAqIHRoZSBmaXJzdCBwYXR0ZXJuIGNlIGRvZXMgbm90IG1hdGNoIHRoZSBmaXJzdCBjZSBvZiB0aGUgY2hhcmFjdGVyLCB3ZSAKKyAgICAqIGJhaWwuCisgICAgKiBPdGhlcndpc2Ugd2UgdHJ5IG5vcm1hbGl6aW5nIHRoZSBmaXJzdCBjb21wb3NpdGUgCisgICAgKiBjaGFyYWN0ZXIgYW5kIGZpbmQgdGhlIGltbWVkaWF0ZSBkZWNvbXBvc2VkIGNoYXJhY3RlciBiZWZvcmUgdGhlIG1hdGNoIHRvIAorICAgICogc2VlIGlmIGl0IGlzIGFuIG5vbi1pZ25vcmFibGUgYWNjZW50LgorICAgICogTm93IG5vcm1hbGl6aW5nIHRoZSBmaXJzdCBjb21wb3NpdGUgY2hhcmFjdGVyIGlzIGVub3VnaCBiZWNhdXNlIHdlIGVuc3VyZSAKKyAgICAqIHRoYXQgd2hlbiB0aGUgbWF0Y2ggaXMgcGFzc2VkIGluIGhlcmUgd2l0aCBleHRyYSBiZWdpbm5pbmcgY2VzLCB0aGUgCisgICAgKiBmaXJzdCBvciBsYXN0IGNlIHRoYXQgbWF0Y2ggaGFzIHRvIG9jY3VyIHdpdGhpbiB0aGUgZmlyc3QgY2hhcmFjdGVyLgorICAgICogRS5nLiBsb29raW5nIGZvciBcdTAzMDEgYWN1dGUgaW4gXHUwMUZBIEEgcmluZyBhYm92ZSBhbmQgYWN1dGUsIAorICAgICogY2hlY2tFeHRyYU1hdGNoQWNjZW50IHNob3VsZCBmYWlsIHNpbmNlIHRoZXJlIGlzIGEgbWlkZGxlIHJpbmcgaW4gXHUwMUZBCisgICAgKiBOb3RlIGhlcmUgdGhhdCBhY2NlbnRzIGNoZWNraW5nIGFyZSBzbG93IGFuZCBjYXV0aW9uZWQgaW4gdGhlIEFQSSBkb2NzLgorICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCAKKyAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIGFjY2VudHMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIG1hdGNoLCAKKyAgICAqICAgICAgICAgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaGFzQWNjZW50c0JlZm9yZU1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAvLyB3ZSBoYXZlIGJlZW4gaXRlcmF0aW5nIGZvcndhcmRzIHByZXZpb3VzbHkKKyAgICAgICAgICAgIGJvb2xlYW4gaWdub3JhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGludCBmaXJzdGNlID0gbV9wYXR0ZXJuXy5tX0NFX1swXTsKKyAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHN0YXJ0KTsKKyAgICAgICAgICAgIGludCBjZSAgPSBnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgd2hpbGUgKGNlICE9IGZpcnN0Y2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBpZ25vcmFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpZ25vcmFibGUgJiYgbV9jb2xFSXRlcl8uaXNJbkJ1ZmZlcigpKSB7CisgICAgICAgICAgICAgICAgLy8gd2l0aGluIG5vcm1hbGl6YXRpb24gYnVmZmVyLCBkaXNjb250aWd1b3VzIGhhbmRsZWQgaGVyZQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gd2l0aGluIHRleHQKKyAgICAgICAgICAgIGJvb2xlYW4gYWNjZW50ID0gKGdldEZDRCh0YXJnZXRUZXh0LCBzdGFydCkgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IDA7IAorICAgICAgICAgICAgaWYgKCFhY2NlbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2tFeHRyYU1hdGNoQWNjZW50cyhzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghaWdub3JhYmxlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnQgPiBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgdGFyZ2V0VGV4dC5nZXRJbmRleCgpKSAmIExBU1RfQllURV9NQVNLXykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgY2UgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IGV4YWN0IG1hdGNoZXMsIGNoZWNrcyBpZiB0aGVyZSBhcmUgYWNjZW50cyBib3VuZGluZyB0aGUgbWF0Y2guCisgICAgICogTm90ZSB0aGlzIGlzIHRoZSBpbml0aWFsIGJvdW5kYXJ5IGNoZWNrLiBJZiB0aGUgcG90ZW50aWFsIG1hdGNoCisgICAgICogc3RhcnRzIG9yIGVuZHMgd2l0aCBjb21wb3NpdGUgY2hhcmFjdGVycywgdGhlIGFjY2VudHMgaW4gdGhvc2UKKyAgICAgKiBjaGFyYWN0ZXJzIHdpbGwgYmUgZGV0ZXJtaW5lZCBsYXRlci4KKyAgICAgKiBOb3QgZG9pbmcgYmFja3dhcmRzIGl0ZXJhdGlvbiBoZXJlLCBzaW5jZSBkaXNjb250aWd1b3MgY29udHJhY3Rpb24gZm9yIAorICAgICAqIGJhY2t3YXJkcyBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciwgdXNlIHVwIHRvbyBtYW55IGNoYXJhY3RlcnMuCisgICAgICogRS5nLiBsb29raW5nIGZvciBcdTAzMEEgcmluZyBpbiBcdTAxRkEgQSByaW5nIGFib3ZlIGFuZCBhY3V0ZSwgCisgICAgICogc2hvdWxkIGZhaWwgc2luY2UgdGhlcmUgaXMgYSBhY3V0ZSBhdCB0aGUgZW5kIG9mIFx1MDFGQQorICAgICAqIE5vdGUgaGVyZSB0aGF0IGFjY2VudHMgY2hlY2tpbmcgYXJlIHNsb3cgYW5kIGNhdXRpb25lZCBpbiB0aGUgQVBJIGRvY3MuCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBtYXRjaAorICAgICAqIEBwYXJhbSBlbmQgZW5kIG9mZnNldCBvZiB0aGUgbWF0Y2gKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIGFjY2VudHMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIG1hdGNoLCAKKyAgICAgKiAgICAgICAgIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBoYXNBY2NlbnRzQWZ0ZXJNYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworICAgICAgICAgICAgaWYgKGVuZCA+IG1fdGV4dEJlZ2luT2Zmc2V0XyAKKyAgICAgICAgICAgICAgICAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VGV4dC5nZXRJbmRleCgpID4gbV90ZXh0QmVnaW5PZmZzZXRfICYmCisgICAgICAgICAgICAgICAgICAgICFVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IGZpcnN0Y2UgID0gbV9wYXR0ZXJuXy5tX0NFX1swXTsKKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSkgIT0gZmlyc3RjZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSkgCisgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSA8PSBlbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIGVuZCkgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgICAgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIENoZWNrcyBpZiB0aGUgb2Zmc2V0IHJ1bnMgb3V0IG9mIHRoZSB0ZXh0IHN0cmluZyByYW5nZQorICAgICogQHBhcmFtIHRleHRzdGFydCBvZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgcmFuZ2UKKyAgICAqIEBwYXJhbSB0ZXh0bGltaXQgbGltaXQgb2Zmc2V0IG9mIHRoZSB0ZXh0IHN0cmluZyByYW5nZQorICAgICogQHBhcmFtIG9mZnNldCB0byB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgb2Zmc2V0IGlzIG91dCBvZiBib3VuZHMsIGZhbHNlIG90aGVyd2lzZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc091dE9mQm91bmRzKGludCB0ZXh0c3RhcnQsIGludCB0ZXh0bGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiBvZmZzZXQgPCB0ZXh0c3RhcnQgfHwgb2Zmc2V0ID4gdGV4dGxpbWl0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgZm9yIGlkZW50aWNhbCBtYXRjaAorICAgICAqIEBwYXJhbSBzdHJzcmNoIHN0cmluZyBzZWFyY2ggZGF0YQorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgcG9zc2libGUgbWF0Y2gKKyAgICAgKiBAcGFyYW0gZW5kIG9mZnNldCBvZiBwb3NzaWJsZSBtYXRjaAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpZGVudGljYWwgbWF0Y2ggaXMgZm91bmQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tJZGVudGljYWwoaW50IHN0YXJ0LCBpbnQgZW5kKSAKKyAgICB7CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLklERU5USUNBTCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHRleHRzdHIgPSBnZXRTdHJpbmcodGFyZ2V0VGV4dCwgc3RhcnQsIGVuZCAtIHN0YXJ0KTsKKyAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayh0ZXh0c3RyLCBOb3JtYWxpemVyLk5GRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICB0ZXh0c3RyID0gTm9ybWFsaXplci5kZWNvbXBvc2UodGV4dHN0ciwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBwYXR0ZXJuc3RyID0gbV9wYXR0ZXJuXy50YXJnZXRUZXh0OworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHBhdHRlcm5zdHIsIE5vcm1hbGl6ZXIuTkZELDApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIHBhdHRlcm5zdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShwYXR0ZXJuc3RyLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHRzdHIuZXF1YWxzKHBhdHRlcm5zdHIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgdG8gc2VlIGlmIHRoZSBtYXRjaCBpcyByZXBlYXRlZAorICAgICAqIEBwYXJhbSBzdGFydCBuZXcgbWF0Y2ggc3RhcnQgaW5kZXgKKyAgICAgKiBAcGFyYW0gbGltaXQgbmV3IG1hdGNoIGxpbWl0IGluZGV4CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0aGUgbWF0Y2ggaXMgcmVwZWF0ZWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja1JlcGVhdGVkTWF0Y2goaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZW5kID0gbGltaXQgLSAxOyAvLyBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbWF0Y2gKKyAgICAgICAgaW50IGxhc3RtYXRjaGVuZCA9IG1fbWF0Y2hlZEluZGV4XyArIG1hdGNoTGVuZ3RoIC0gMTsgCisgICAgICAgIGlmICghaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICByZXR1cm4gKHN0YXJ0ID49IG1fbWF0Y2hlZEluZGV4XyAmJiBzdGFydCA8PSBsYXN0bWF0Y2hlbmQpIAorICAgICAgICAgICAgICAgICAgICB8fCAoZW5kID49IG1fbWF0Y2hlZEluZGV4XyAmJiBlbmQgPD0gbGFzdG1hdGNoZW5kKQorICAgICAgICAgICAgICAgICAgICB8fCAoc3RhcnQgPD0gbV9tYXRjaGVkSW5kZXhfICYmIGVuZCA+PSBsYXN0bWF0Y2hlbmQpOworICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGFydCA8PSBtX21hdGNoZWRJbmRleF8gJiYgZW5kID49IGxhc3RtYXRjaGVuZDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIG1hdGNoIGZvciBjb250cmFjdGlvbi4gCisgICAgICogSWYgdGhlIG1hdGNoIGVuZHMgd2l0aCBhIHBhcnRpYWwgY29udHJhY3Rpb24gd2UgZmFpbC4KKyAgICAgKiBJZiB0aGUgbWF0Y2ggc3RhcnRzIHRvbyBmYXIgb2ZmIChiZWNhdXNlIG9mIGJhY2t3YXJkcyBpdGVyYXRpb24pIHdlIHRyeSAKKyAgICAgKiB0byBjaGlwIG9mZiB0aGUgZXh0cmEgY2hhcmFjdGVycyBkZXBlbmRpbmcgb24gd2hldGhlciBhIGJyZWFraXRlcmF0b3IgCisgICAgICogaGFzIGJlZW4gdXNlZC4KKyAgICAgKiBUZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgc3RhcnQgYW5kIGVuZC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgbWF0Y2ggcGFzc2VzIHRoZSBjb250cmFjdGlvbiB0ZXN0LCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrTmV4dEV4YWN0Q29udHJhY3Rpb25NYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgLy8gVGhpcyBwYXJ0IGNoZWNrcyBpZiBlaXRoZXIgZW5kcyBvZiB0aGUgbWF0Y2ggY29udGFpbnMgcG90ZW50aWFsIAorICAgICAgICAvLyBjb250cmFjdGlvbi4gSWYgc28gd2UnbGwgaGF2ZSB0byBpdGVyYXRlIHRocm91Z2ggdGhlbQorICAgICAgICBjaGFyIGVuZGNoYXIgPSAwOworICAgICAgICBpZiAoZW5kIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICBlbmRjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBwb3N0c3RhcnRjaGFyID0gMDsKKyAgICAgICAgaWYgKHN0YXJ0ICsgMSA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCArIDEpOworICAgICAgICAgICAgcG9zdHN0YXJ0Y2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlbmRjaGFyKSAKKyAgICAgICAgICAgIHx8IG1fY29sbGF0b3JfLmlzVW5zYWZlKHBvc3RzdGFydGNoYXIpKSB7CisgICAgICAgICAgICAvLyBleHBhbnNpb24gcHJlZml4LCB3aGF0J3MgbGVmdCB0byBpdGVyYXRlCisgICAgICAgICAgICBpbnQgYnVmZmVyZWRDRU9mZnNldCA9IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNCdWZmZXJlZENFID0gYnVmZmVyZWRDRU9mZnNldCA+IDA7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisgICAgICAgICAgICBpbnQgdGVtcCA9IHN0YXJ0OworICAgICAgICAgICAgd2hpbGUgKGJ1ZmZlcmVkQ0VPZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHJlZHVuZGFudCBjZSwgY2F1c2VkIGJ5IHNldE9mZnNldC4KKyAgICAgICAgICAgICAgICAvLyBzaW5jZSBiYWNrd2FyZCBjb250cmFjdGlvbi9leHBhbnNpb24gbWF5IGhhdmUgZXh0cmEgY2VzIGlmIAorICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIsIGhhc0FjY2VudHNCZWZvcmVNYXRjaCAKKyAgICAgICAgICAgICAgICAvLyB3b3VsZCBoYXZlIHRha2VuIGNhcmUgb2YgaXQuCisgICAgICAgICAgICAgICAgLy8gRS5nLiB0aGUgY2hhcmFjdGVyIFx1MDFGQSB3aWxsIGhhdmUgYW4gZXhwYW5zaW9uIG9mIDMsIGJ1dCAKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgb25seSBsb29raW5nIGZvciBhY3V0ZSBhbmQgcmluZyBcdTAzMEEgYW5kIFx1MDMwMSwgCisgICAgICAgICAgICAgICAgLy8gd2UnbGwgaGF2ZSB0byBza2lwIHRoZSBmaXJzdCBjZSBpbiB0aGUgZXhwYW5zaW9uIGJ1ZmZlci4KKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wICA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXJlZENFT2Zmc2V0IC0tOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaGFzQnVmZmVyZWRDRSAmJiBjb3VudCA9PSAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCAgID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NvdW50XSkgeworICAgICAgICAgICAgICAgICAgICBlbmQgKys7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IGdldE5leHRCYXNlT2Zmc2V0KGVuZCk7ICAKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgYW5kIHNldHMgdGhlIG1hdGNoIGluZm9ybWF0aW9uIGlmIGZvdW5kLgorICAgICAqIENoZWNrcyAKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiB0aGUgcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IHJlcGVhdCB0aGUgcHJldmlvdXMgbWF0Y2gKKyAgICAgKiA8bGk+IGJvdW5kYXJpZXMgYXJlIGNvcnJlY3QKKyAgICAgKiA8bGk+IGV4YWN0IG1hdGNoZXMgaGFzIG5vIGV4dHJhIGFjY2VudHMKKyAgICAgKiA8bGk+IGlkZW50aWNhbCBtYXRjaGVzYgorICAgICAqIDxsaT4gcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IGVuZCBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24KKyAgICAgKiA8L3VsPgorICAgICAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuCisgICAgICogVGhlIHJlc3VsdCBtX21hdGNoSW5kZXhfIGFuZCBtX21hdGNoTGVuZ3RoXyB3aWxsIGJlIHNldCB0byB0aGUgdHJ1bmNhdGVkCisgICAgICogbW9yZSBmaXR0aW5nIHJlc3VsdCB2YWx1ZS4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgZm9yIHN0b3JpbmcgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja05leHRFeGFjdE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7ICAgICAgICAKKyAgICAgICAgaWYgKCFjaGVja05leHRFeGFjdENvbnRyYWN0aW9uTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICAvLyByZXR1cm5zIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0CisgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gbV91dGlsQnVmZmVyX1sxXTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdGFydCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzFdOworICAgICAgICAvLyB0aGlzIHRvdGFsbHkgbWF0Y2hlcywgaG93ZXZlciB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHJlcGVhdGluZworICAgICAgICBpZiAoIWlzQnJlYWtVbml0KHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8IGNoZWNrUmVwZWF0ZWRNYXRjaChzdGFydCwgdGV4dG9mZnNldCkgCisgICAgICAgICAgICB8fCBoYXNBY2NlbnRzQmVmb3JlTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpIAorICAgICAgICAgICAgfHwgIWNoZWNrSWRlbnRpY2FsKHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8IGhhc0FjY2VudHNBZnRlck1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgdGV4dG9mZnNldCArKzsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBnZXROZXh0QmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsgIAorICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvLyB0b3RhbGx5IG1hdGNoLCB3ZSB3aWxsIGdldCByaWQgb2YgdGhlIGVuZGluZyBpZ25vcmFibGVzLgorICAgICAgICBtX21hdGNoZWRJbmRleF8gID0gc3RhcnQ7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gdGV4dG9mZnNldCAtIHN0YXJ0OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBwcmV2aW91cyBiYXNlIGNoYXJhY3RlciBvZmZzZXQsIG9yIHRoZSBjdXJyZW50IG9mZnNldCBpZiB0aGUgCisgICAgKiBjdXJyZW50IGNoYXJhY3RlciBpcyBhIGJhc2UgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIHRleHQgdG8gd29yayBvbgorICAgICogQHBhcmFtIHRleHRvZmZzZXQgb25lIG9mZnNldCBhZnRlciB0aGUgY3VycmVudCBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGJhc2UgY2hhcmFjdGVyIG9yIHRoZSAKKyAgICAqICAgICAgICAgICAgIGZpcnN0IGNvbXBvc2VkIGNoYXJhY3RlciB3aXRoIGFjY2VudHMKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFByZXZpb3VzQmFzZU9mZnNldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpZiAodGV4dG9mZnNldCA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgICAgICB0ZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5nZXRJbmRleCgpICE9IHRleHQuZ2V0QmVnaW5JbmRleCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAhVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgPSB0ZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgY2hhciBmY2QgPSBnZXRGQ0QodGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKChmY2QgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChmY2QgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0ZXh0b2Zmc2V0ID09IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV90ZXh0QmVnaW5PZmZzZXRfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBpbmRleGVzIG9mIHRoZSBhY2NlbnRzIHRoYXQgYXJlIG5vdCBibG9ja2VkIGluIHRoZSBhcmd1bWVudAorICAgICogYWNjZW50IGFycmF5CisgICAgKiBAcGFyYW0gYWNjZW50cyBhY2NlbnRzIGluIG5mZC4KKyAgICAqIEBwYXJhbSBhY2NlbnRzaW5kZXggYXJyYXkgdG8gc3RvcmUgdGhlIGluZGV4ZXMgb2YgYWNjZW50cyBpbiBhY2NlbnRzIHRoYXQgCisgICAgKiAgICAgICAgIGFyZSBub3QgYmxvY2tlZAorICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHBvcHVsYXRlZCBhY2NlbnRzaW5kZXgKKyAgICAqLworICAgIHByaXZhdGUgaW50IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KFN0cmluZ0J1ZmZlciBhY2NlbnRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWNjZW50c2luZGV4W10pCisgICAgeworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBpbnQgbGVuZ3RoID0gYWNjZW50cy5sZW5ndGgoKTsKKyAgICAgICAgaW50IGNjbGFzcyA9IDA7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHsKKyAgICAgICAgICAgIGludCBjb2RlcG9pbnQgPSBVVEYxNi5jaGFyQXQoYWNjZW50cywgaW5kZXgpOworICAgICAgICAgICAgaW50IHRlbXBjbGFzcyA9IFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY29kZXBvaW50KTsKKyAgICAgICAgICAgIGlmICh0ZW1wY2xhc3MgIT0gY2NsYXNzKSB7CisgICAgICAgICAgICAgICAgY2NsYXNzID0gdGVtcGNsYXNzOworICAgICAgICAgICAgICAgIGFjY2VudHNpbmRleFtyZXN1bHRdID0gaW5kZXg7CisgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYWNjZW50c2luZGV4W3Jlc3VsdF0gPSBsZW5ndGg7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kcyAzIFN0cmluZ0J1ZmZlci9DaGFyYWN0ZXJJdGVyYXRvciB0b2dldGhlciBpbnRvIGEgZGVzdGluYXRpb24gCisgICAgICogc3RyaW5nIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gc291cmNlMSBzdHJpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHNvdXJjZTIgY2hhcmFjdGVyIGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHN0YXJ0MiBzdGFydCBvZiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9yIHRvIG1lcmdlCisgICAgICogQHBhcmFtIGVuZDIgZW5kIG9mIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IgdG8gbWVyZ2UKKyAgICAgKiBAcGFyYW0gc291cmNlMyBzdHJpbmcgYnVmZmVyCisgICAgICogQHJldHVybiBhcHBlbmRlZCBzdHJpbmcgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIG1lcmdlKFN0cmluZ0J1ZmZlciBzb3VyY2UxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQyLCBpbnQgZW5kMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UzKSAKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7ICAgIAorICAgICAgICBpZiAoc291cmNlMSAhPSBudWxsICYmIHNvdXJjZTEubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgLy8gamRrIDEuMy4xIGRvZXMgbm90IGhhdmUgYXBwZW5kKFN0cmluZ0J1ZmZlcikgeWV0CisgICAgICAgICAgICBpZihjb20uaWJtLmljdS5pbXBsLklDVURlYnVnLmlzSkRLMTRPckhpZ2hlcil7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2UxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlMS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzb3VyY2UyLnNldEluZGV4KHN0YXJ0Mik7CisgICAgICAgIHdoaWxlIChzb3VyY2UyLmdldEluZGV4KCkgPCBlbmQyKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTIuY3VycmVudCgpKTsKKyAgICAgICAgICAgIHNvdXJjZTIubmV4dCgpOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UzICE9IG51bGwgJiYgc291cmNlMy5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBqZGsgMS4zLjEgZG9lcyBub3QgaGF2ZSBhcHBlbmQoU3RyaW5nQnVmZmVyKSB5ZXQKKyAgICAgICAgICAgIGlmKGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWcuaXNKREsxNE9ySGlnaGVyKXsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTMpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2UzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUnVubmluZyB0aHJvdWdoIGEgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgdG8gc2VlIGlmIHRoZSBjb250ZW50cyAKKyAgICAqIG1hdGNoZXMgcGF0dGVybiBpbiBzdHJpbmcgc2VhcmNoIGRhdGEKKyAgICAqIEBwYXJhbSBjb2xlaXRlciBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciB0byB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgYSBtYXRjaCBpZiBmb3VuZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tDb2xsYXRpb25NYXRjaChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sZWl0ZXIpCisgICAgeworICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfOworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgd2hpbGUgKHBhdHRlcm5jZWluZGV4ID4gMCkgeworICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UoY29sZWl0ZXIubmV4dCgpKTsKKyAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggLS07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYXJyYW5nZXMgdGhlIGZyb250IGFjY2VudHMgdG8gdHJ5IG1hdGNoaW5nLgorICAgICAqIFByZWZpeCBhY2NlbnRzIGluIHRoZSB0ZXh0IHdpbGwgYmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgY29tYmluaW5nIAorICAgICAqIGNsYXNzIGFuZCB0aGUgZ3JvdXBzIHdpbGwgYmUgbWl4ZWQgYW5kIG1hdGNoZWQgdG8gdHJ5IGZpbmQgdGhlIHBlcmZlY3QgCisgICAgICogbWF0Y2ggd2l0aCB0aGUgcGF0dGVybi4KKyAgICAgKiBTbyBmb3IgaW5zdGFuY2UgbG9va2luZyBmb3IgIlx1MDMwMSIgaW4gIlx1MDMwQVx1MDMwMVx1MDMyNSIKKyAgICAgKiBzdGVwIDE6IHNwbGl0ICJcdTAzMEFcdTAzMDEiIGludG8gNiBvdGhlciB0eXBlIG9mIHBvdGVudGlhbCBhY2NlbnQgCisgICAgICogICAgICAgICAgICBzdWJzdHJpbmdzICJcdTAzMEEiLCAiXHUwMzAxIiwgIlx1MDMyNSIsICJcdTAzMEFcdTAzMDEiLCAKKyAgICAgKiAgICAgICAgICAgICJcdTAzMEFcdTAzMjUiLCAiXHUwMzAxXHUwMzI1Ii4KKyAgICAgKiBzdGVwIDI6IGNoZWNrIGlmIGFueSBvZiB0aGUgZ2VuZXJhdGVkIHN1YnN0cmluZ3MgbWF0Y2hlcyB0aGUgcGF0dGVybi4KKyAgICAgKiBJbnRlcm5hbCBtZXRob2QsIHN0YXR1cyBpcyBhc3N1bWVkIHRvIGJlIHN1Y2Nlc3MsIGNhbGxlciBoYXMgdG8gY2hlY2sgCisgICAgICogc3RhdHVzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBvZmZzZXQgb2YgdGhlIGFjY2VudHMgdG8gc3RhcnQgc2VhcmNoaW5nCisgICAgICogQHBhcmFtIGVuZCBzdGFydCBvZiB0aGUgbGFzdCBhY2NlbnQgc2V0CisgICAgICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBzdGFydGluZworICAgICAqICAgICAgICAgb2Zmc2V0IG9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBwcmVjZWRpbmcgCisgICAgICogICAgICAgICAgICBhY2NlbnRzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGRvTmV4dENhbm9uaWNhbFByZWZpeE1hdGNoKGludCBzdGFydCwgaW50IGVuZCkKKyAgICB7CisgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHN0YXJ0KSAmIExBU1RfQllURV9NQVNLXykgPT0gMCkgeworICAgICAgICAgICAgLy8gZGllLi4uIGZhaWxlZCBhdCBhIGJhc2UgY2hhcmFjdGVyCisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdGFydCA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsgLy8gaW5kZXggY2hhbmdlZCBieSBmY2QKKyAgICAgICAgaW50IG9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHN0YXJ0KTsKKyAgICAgICAgc3RhcnQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQoc3RhcnQpOworICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgYWNjZW50cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIGFjY2VudHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCBzdGFydCwgb2Zmc2V0IC0gc3RhcnQpOworICAgICAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGFjY2VudHN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgYWNjZW50c3RyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoYWNjZW50c3RyLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgYWNjZW50cy5hcHBlbmQoYWNjZW50c3RyKTsKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOyAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisgICAgICAgIGludCBjb3VudCA9ICgyIDw8IChhY2NlbnRzaXplIC0gMSkpIC0gMTsgIAorICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICAvLyBjb3B5IHRoZSBiYXNlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgaW50IGsgPSAwOworICAgICAgICAgICAgZm9yICg7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChrKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBmb3JtaW5nIGFsbCBwb3NzaWJsZSBjYW5vbmljYWwgcmVhcnJhbmdlbWVudCBieSBkcm9wcGluZworICAgICAgICAgICAgLy8gc2V0cyBvZiBhY2NlbnRzCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBhY2NlbnRzaXplIC0gMTsgaSArKykgeworICAgICAgICAgICAgICAgIGludCBtYXNrID0gMSA8PCAoYWNjZW50c2l6ZSAtIGkgLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICYgbWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gYWNjZW50c2luZGV4W2ldOyBqIDwgYWNjZW50c2luZGV4W2kgKyAxXTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqICsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChqKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbWF0Y2ggPSBtZXJnZShtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dCwgb2Zmc2V0LCBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcuCisgICAgICAgICAgICAvLyBydW4gdGhlIGNvbGxhdG9yIGl0ZXJhdG9yIHRocm91Z2ggdGhpcyBtYXRjaAorICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobWF0Y2gudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoY2hlY2tDb2xsYXRpb25NYXRjaChtX3V0aWxDb2xFSXRlcl8pKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBzYWZlIHBvaW50IGluIHRleHQgYmVmb3JlIHRleHRvZmZzZXQuCisgICAgKiBpZS4gbm90IHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiwgc3dhcHBhYmxlIGNoYXJhY3RlcnMgb3IgCisgICAgKiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMuCisgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IGluIHN0cmluZworICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHN0cmluZworICAgICogQHJldHVybiBvZmZzZXQgdG8gdGhlIHByZXZpb3VzIHNhZmUgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRQcmV2aW91c1NhZmVPZmZzZXQoaW50IHN0YXJ0LCBpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSB0ZXh0b2Zmc2V0OyAvLyBmaXJzdCBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdCA+PSBzdGFydCAmJiBtX2NvbGxhdG9yXy5pc1Vuc2FmZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICByZXN1bHQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCAhPSBzdGFydCkgeworICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNvbnRyYWN0aW9uIGNoYXJhY3RlciBpcyBjb25zaWRlciB1bnNhZmUgaGVyZQorICAgICAgICAgICAgcmVzdWx0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOyAvLyBvcmlnaW5hbGx5IHJlc3VsdCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OyAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUYWtlIHRoZSByZWFycmFuZ2VkIGVuZCBhY2NlbnRzIGFuZCB0cmllcyBtYXRjaGluZy4gSWYgbWF0Y2ggZmFpbGVkIGF0CisgICAgICogYSBzZXBlcmF0ZSBwcmVjZWRpbmcgc2V0IG9mIGFjY2VudHMgKHNlcGVyYXRlZCBmcm9tIHRoZSByZWFycmFuZ2VkIG9uIGJ5CisgICAgICogYXQgbGVhc3QgYSBiYXNlIGNoYXJhY3RlcikgdGhlbiB3ZSByZWFycmFuZ2UgdGhlIHByZWNlZGluZyBhY2NlbnRzIGFuZCAKKyAgICAgKiB0cmllcyBtYXRjaGluZyBhZ2Fpbi4KKyAgICAgKiBXZSBhbGxvdyBza2lwcGluZyBvZiB0aGUgZW5kcyBvZiB0aGUgYWNjZW50IHNldCBpZiB0aGUgY2VzIGRvIG5vdCBtYXRjaC4gCisgICAgICogSG93ZXZlciBpZiB0aGUgZmFpbHVyZSBpcyBmb3VuZCBiZWZvcmUgdGhlIGFjY2VudCBzZXQsIGl0IGZhaWxzLgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKyAgICAgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSByZWFycmFuZ2VkIGFjY2VudAorICAgICAqIEByZXR1cm4gRE9ORSBpZiBhIG1hdGNoIGlzIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgc3RhcnRpbmcKKyAgICAgKiAgICAgICAgIG9mZnNldCBvZiB0aGUgbWF0Y2guIE5vdGUgdGhpcyBzdGFydCBpbmNsdWRlcyBhbGwgcHJlY2VkaW5nIAorICAgICAqICAgICAgICAgYWNjZW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkb05leHRDYW5vbmljYWxTdWZmaXhNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBzYWZlbGVuZ3RoID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNhZmV0ZXh0OworICAgICAgICBpbnQgc2FmZW9mZnNldCA9IG1fdGV4dEJlZ2luT2Zmc2V0XzsgCisgICAgICAgIAorICAgICAgICBpZiAodGV4dG9mZnNldCAhPSBtX3RleHRCZWdpbk9mZnNldF8gCisgICAgICAgICAgICAmJiBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpID4gMAorICAgICAgICAgICAgJiYgbV9jb2xsYXRvcl8uaXNVbnNhZmUobV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5jaGFyQXQoMCkpKSB7CisgICAgICAgICAgICBzYWZlb2Zmc2V0ICAgICA9IGdldFByZXZpb3VzU2FmZU9mZnNldChtX3RleHRCZWdpbk9mZnNldF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRvZmZzZXQpOworICAgICAgICAgICAgc2FmZWxlbmd0aCAgICAgPSB0ZXh0b2Zmc2V0IC0gc2FmZW9mZnNldDsKKyAgICAgICAgICAgIHNhZmV0ZXh0ICAgICAgID0gbWVyZ2UobnVsbCwgdGFyZ2V0VGV4dCwgc2FmZW9mZnNldCwgdGV4dG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2FmZXRleHQgPSBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyID0gbV91dGlsQ29sRUl0ZXJfOworICAgICAgICBjb2xlaXRlci5zZXRUZXh0KHNhZmV0ZXh0LnRvU3RyaW5nKCkpOworICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiBsb29wIGJlbG93CisgICAgCisgICAgICAgIGludCBjZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIDE7CisgICAgICAgIGJvb2xlYW4gaXNTYWZlID0gdHJ1ZTsgLy8gaW5kaWNhdGlvbiBmbGFnIGZvciBwb3NpdGlvbiBpbiBzYWZlIHpvbmUKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChjZWluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGludCB0ZXh0Y2UgPSBjb2xlaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKHRleHRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBwYXNzZWQgdGhlIHNhZmUgYnVmZmVyCisgICAgICAgICAgICAgICAgaWYgKGNvbGVpdGVyID09IG1fY29sRUl0ZXJfKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2xlaXRlciA9IG1fY29sRUl0ZXJfOworICAgICAgICAgICAgICAgIGlmIChzYWZldGV4dCAhPSBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgICAgIHNhZmV0ZXh0LmRlbGV0ZSgwLCBzYWZldGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGVpdGVyLnNldEV4YWN0T2Zmc2V0KHNhZmVvZmZzZXQpOworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGF0IHRoZSBzdGFydCBvZiB0aGUgbG9vcAorICAgICAgICAgICAgICAgIGlzU2FmZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dGNlID0gZ2V0Q0UodGV4dGNlKTsKKyAgICAgICAgICAgIGlmICh0ZXh0Y2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSAKKyAgICAgICAgICAgICAgICAmJiB0ZXh0Y2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjZWluZGV4XSkgeworICAgICAgICAgICAgICAgIC8vIGRvIHRoZSBiZWdpbm5pbmcgc3R1ZmYKKyAgICAgICAgICAgICAgICBpbnQgZmFpbGVkb2Zmc2V0ID0gY29sZWl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgaWYgKGlzU2FmZSAmJiBmYWlsZWRvZmZzZXQgPj0gc2FmZWxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBhbGFzLi4uIG5vIGhvcGUuIGZhaWxlZCBhdCByZWFycmFuZ2VkIGFjY2VudCBzZXQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNTYWZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWRvZmZzZXQgKz0gc2FmZW9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IHJlYXJyYW5naW5nIHRoZSBmcm9udCBhY2NlbnRzCisgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBkb05leHRDYW5vbmljYWxQcmVmaXhNYXRjaChmYWlsZWRvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9zZXRPZmZzZXQgZG9lcyBub3RoaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRleHRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgY2VpbmRleCAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBzZXQgb2Zmc2V0IGhlcmUKKyAgICAgICAgaWYgKGlzU2FmZSkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGVpdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgLy8gc2V0cyB0aGUgdGV4dCBpdGVyYXRvciB3aXRoIHRoZSBjb3JyZWN0IGV4cGFuc2lvbiBhbmQgb2Zmc2V0CisgICAgICAgICAgICBpbnQgbGVmdG92ZXJjZXMgPSBjb2xlaXRlci5tX0NFQnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gc2FmZWxlbmd0aCkgeyAKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHNhZmVvZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworICAgICAgICAgICAgbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPSBsZWZ0b3ZlcmNlczsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjb2xlaXRlci5nZXRPZmZzZXQoKTsgICAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUcnlpbmcgb3V0IHRoZSBzdWJzdHJpbmcgYW5kIHNlZXMgaWYgaXQgY2FuIGJlIGEgY2Fub25pY2FsIG1hdGNoLgorICAgICAqIFRoaXMgd2lsbCB0cnkgbm9ybWFsaXppbmcgdGhlIGVuZCBhY2NlbnRzIGFuZCBhcnJhbmdpbmcgdGhlbSBpbnRvIAorICAgICAqIGNhbm9uaWNhbCBlcXVpdmFsZW50cyBhbmQgY2hlY2sgdGhlaXIgY29ycmVzcG9uZGluZyBjZXMgd2l0aCB0aGUgcGF0dGVybiAKKyAgICAgKiBjZS4KKyAgICAgKiBTdWZmaXggYWNjZW50cyBpbiB0aGUgdGV4dCB3aWxsIGJlIGdyb3VwZWQgYWNjb3JkaW5nIHRvIHRoZWlyIGNvbWJpbmluZyAKKyAgICAgKiBjbGFzcyBhbmQgdGhlIGdyb3VwcyB3aWxsIGJlIG1peGVkIGFuZCBtYXRjaGVkIHRvIHRyeSBmaW5kIHRoZSBwZXJmZWN0IAorICAgICAqIG1hdGNoIHdpdGggdGhlIHBhdHRlcm4uCisgICAgICogU28gZm9yIGluc3RhbmNlIGxvb2tpbmcgZm9yICJcdTAzMDEiIGluICJcdTAzMEFcdTAzMDFcdTAzMjUiCisgICAgICogc3RlcCAxOiBzcGxpdCAiXHUwMzBBXHUwMzAxIiBpbnRvIDYgb3RoZXIgdHlwZSBvZiBwb3RlbnRpYWwgYWNjZW50IAorICAgICAqICAgICAgICAgc3Vic3RyaW5ncworICAgICAqICAgICAgICAgIlx1MDMwQSIsICJcdTAzMDEiLCAiXHUwMzI1IiwgIlx1MDMwQVx1MDMwMSIsICJcdTAzMEFcdTAzMjUiLCAKKyAgICAgKiAgICAgICAgICJcdTAzMDFcdTAzMjUiLgorICAgICAqIHN0ZXAgMjogY2hlY2sgaWYgYW55IG9mIHRoZSBnZW5lcmF0ZWQgc3Vic3RyaW5ncyBtYXRjaGVzIHRoZSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IGVuZCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQgdGhhdCBlbmRzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgdGhlIGFjY2VudHMgdG8gYmUgcmVhcnJhbmdlZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBkb05leHRDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSAKKyAgICAgICAgICAgICYmIHRhcmdldFRleHQuZ2V0SW5kZXgoKSA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeyAKKyAgICAgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZG9OZXh0Q2Fub25pY2FsUHJlZml4TWF0Y2gob2Zmc2V0LCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmICghbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFjY2VudHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIG9mZnNldCB0byB0aGUgbGFzdCBiYXNlIGNoYXJhY3RlciBpbiBzdWJzdHJpbmcgdG8gc2VhcmNoCisgICAgICAgIGludCBiYXNlb2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworICAgICAgICBTdHJpbmcgYWNjZW50c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIGJhc2VvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgLSBiYXNlb2Zmc2V0KTsKKyAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhhY2NlbnRzdHIsIE5vcm1hbGl6ZXIuTkZELDApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIGFjY2VudHN0ciA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGFjY2VudHN0ciwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGFjY2VudHMuYXBwZW5kKGFjY2VudHN0cik7CisgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGluIGxvb3AgYmVsb3cKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOworICAgICAgICBpbnQgc2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisgICAgCisgICAgICAgIC8vIDIgcG93ZXIgbiAtIDEgcGx1cyB0aGUgZnVsbCBzZXQgb2YgYWNjZW50cworICAgICAgICBpbnQgIGNvdW50ID0gKDIgPDwgKHNpemUgLSAxKSkgLSAxOyAgCisgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uZGVsZXRlKDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgLy8gY29weSB0aGUgYmFzZSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGFjY2VudHNpbmRleFswXTsgayArKykgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGspKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGZvcm1pbmcgYWxsIHBvc3NpYmxlIGNhbm9uaWNhbCByZWFycmFuZ2VtZW50IGJ5IGRyb3BwaW5nCisgICAgICAgICAgICAvLyBzZXRzIG9mIGFjY2VudHMKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHNpemUgLSAxOyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IG1hc2sgPSAxIDw8IChzaXplIC0gaSAtIDEpOworICAgICAgICAgICAgICAgIGlmICgoY291bnQgJiBtYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBhY2NlbnRzaW5kZXhbaV07IGogPCBhY2NlbnRzaW5kZXhbaSArIDFdOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGopKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldCA9IGRvTmV4dENhbm9uaWNhbFN1ZmZpeE1hdGNoKGJhc2VvZmZzZXQpOworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIG1hdGNoIGZvdW5kCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHByZXZpb3VzIGJhc2UgY2hhcmFjdGVyIG9mZnNldCBkZXBlbmRpbmcgb24gdGhlIHN0cmluZyBzZWFyY2ggCisgICAgICogcGF0dGVybiBkYXRhCisgICAgICogQHBhcmFtIHN0cnNyY2ggc3RyaW5nIHNlYXJjaCBkYXRhCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgY3VycmVudCBvZmZzZXQsIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBhZnRlciB0aGlzIGJhc2UgY2hhcmFjdGVyIG9yIAorICAgICAqICAgICAgICAgICAgIGl0c2VsZiBpZiBpdCBpcyBhIGNvbXBvc2VkIGNoYXJhY3RlciB3aXRoIGFjY2VudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRQcmV2aW91c0Jhc2VPZmZzZXQoaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfICYmIHRleHRvZmZzZXQgPiBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgb2Zmc2V0KSA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHRvZmZzZXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBtYXRjaCBmb3IgY29udHJhY3Rpb24uIAorICAgICAqIElmIHRoZSBtYXRjaCBlbmRzIHdpdGggYSBwYXJ0aWFsIGNvbnRyYWN0aW9uIHdlIGZhaWwuCisgICAgICogSWYgdGhlIG1hdGNoIHN0YXJ0cyB0b28gZmFyIG9mZiAoYmVjYXVzZSBvZiBiYWNrd2FyZHMgaXRlcmF0aW9uKSB3ZSB0cnkgCisgICAgICogdG8gY2hpcCBvZmYgdGhlIGV4dHJhIGNoYXJhY3RlcnMuCisgICAgICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWwgYnVmZmVyIGZvciByZXR1cm4gdmFsdWVzIG9mIHRoZSBtb2RpZmllZCBzdGFydAorICAgICAqIGFuZCBlbmQuCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHJldHVybiB0cnVlIGlmIG1hdGNoIHBhc3NlcyB0aGUgY29udHJhY3Rpb24gdGVzdCwgZmFsc2Ugb3RoZXJ3aXNlLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tOZXh0Q2Fub25pY2FsQ29udHJhY3Rpb25NYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgLy8gVGhpcyBwYXJ0IGNoZWNrcyBpZiBlaXRoZXIgZW5kcyBvZiB0aGUgbWF0Y2ggY29udGFpbnMgcG90ZW50aWFsIAorICAgICAgICAvLyBjb250cmFjdGlvbi4gSWYgc28gd2UnbGwgaGF2ZSB0byBpdGVyYXRlIHRocm91Z2ggdGhlbQorICAgICAgICBjaGFyIHNjaGFyID0gMDsKKyAgICAgICAgY2hhciBlY2hhciA9IDA7CisgICAgICAgIGlmIChlbmQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKyAgICAgICAgICAgIGVjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisgICAgICAgICAgICBzY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlY2hhcikgfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICBpbnQgZXhwYW5zaW9uICA9IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNFeHBhbnNpb24gPSBleHBhbnNpb24gPiAwOworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoc3RhcnQpOworICAgICAgICAgICAgaW50IHRlbXAgPSBzdGFydDsKKyAgICAgICAgICAgIHdoaWxlIChleHBhbnNpb24gPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHJlZHVuZGFudCBjZSwgY2F1c2VkIGJ5IHNldE9mZnNldC4KKyAgICAgICAgICAgICAgICAvLyBzaW5jZSBiYWNrd2FyZCBjb250cmFjdGlvbi9leHBhbnNpb24gbWF5IGhhdmUgZXh0cmEgY2VzIGlmIAorICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIsIGhhc0FjY2VudHNCZWZvcmVNYXRjaCAKKyAgICAgICAgICAgICAgICAvLyB3b3VsZCBoYXZlIHRha2VuIGNhcmUgb2YgaXQuCisgICAgICAgICAgICAgICAgLy8gRS5nLiB0aGUgY2hhcmFjdGVyIFx1MDFGQSB3aWxsIGhhdmUgYW4gZXhwYW5zaW9uIG9mIDMsIGJ1dCAKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgb25seSBsb29raW5nIGZvciBhY3V0ZSBhbmQgcmluZyBcdTAzMEEgYW5kIFx1MDMwMSwgCisgICAgICAgICAgICAgICAgLy8gd2UnbGwgaGF2ZSB0byBza2lwIHRoZSBmaXJzdCBjZSBpbiB0aGUgZXhwYW5zaW9uIGJ1ZmZlci4KKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wICA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBleHBhbnNpb24gLS07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUgKGNvdW50IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXykgeworICAgICAgICAgICAgICAgIGludCBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYmVsb3csIG5vdGUgdGhhdCBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlCisgICAgICAgICAgICAgICAgLy8gdWNvbF9uZXh0IHJldHVybnMgVUNPTF9OVUxMT1JERVIKKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGhhc0V4cGFuc2lvbiAmJiBjb3VudCA9PSAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCAmJiBjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFjY2VudHMgbWF5IGhhdmUgZXh0cmEgc3RhcnRpbmcgY2VzLCB0aGlzIG9jY3VycyB3aGVuIGEgCisgICAgICAgICAgICAgICAgICAgIC8vIHB1cmUgYWNjZW50IHBhdHRlcm4gaXMgbWF0Y2hlZCB3aXRob3V0IHJlYXJyYW5nZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCBcdTAzMjVcdTAzMDAgYW5kIGxvb2tpbmcgZm9yIFx1MDMwMAorICAgICAgICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSBtX3BhdHRlcm5fLm1fQ0VfWzBdOyAKKyAgICAgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgc3RhcnQpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gZXhwZWN0ZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSA8PSBlbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCArKzsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gZ2V0TmV4dEJhc2VPZmZzZXQoZW5kKTsgIAorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKyAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGFuZCBzZXRzIHRoZSBtYXRjaCBpbmZvcm1hdGlvbiBpZiBmb3VuZC4KKyAgICAgKiBDaGVja3MgCisgICAgICogPHVsPgorICAgICAqIDxsaT4gdGhlIHBvdGVudGlhbCBtYXRjaCBkb2VzIG5vdCByZXBlYXQgdGhlIHByZXZpb3VzIG1hdGNoCisgICAgICogPGxpPiBib3VuZGFyaWVzIGFyZSBjb3JyZWN0CisgICAgICogPGxpPiBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgZW5kIGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorICAgICAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXMKKyAgICAgKiA8L3VsPgorICAgICAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuCisgICAgICogVGhlIHJlc3VsdCBtX21hdGNoSW5kZXhfIGFuZCBtX21hdGNoTGVuZ3RoXyB3aWxsIGJlIHNldCB0byB0aGUgdHJ1bmNhdGVkCisgICAgICogbW9yZSBmaXR0aW5nIHJlc3VsdCB2YWx1ZS4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgZm9yIHN0b3JpbmcgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja05leHRDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIC8vIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFydCBhbmQgZW5kcyBhcmUgbm90IGNvbXBvc2l0ZSBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGlmIHdlIGhhdmUgYSBjYW5vbmljYWwgYWNjZW50IG1hdGNoCisgICAgICAgIGlmICgobV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIAorICAgICAgICAgICAgICAgICYmIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCkgfHwgCisgICAgICAgICAgICAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfIAorICAgICAgICAgICAgICAgICYmIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCkpIHsKKyAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IGdldFByZXZpb3VzQmFzZU9mZnNldChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSk7CisgICAgICAgICAgICBtYXRjaExlbmd0aCA9IHRleHRvZmZzZXQgLSBtX21hdGNoZWRJbmRleF87CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgc3RhcnQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKCFjaGVja05leHRDYW5vbmljYWxDb250cmFjdGlvbk1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0CisgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gbV91dGlsQnVmZmVyX1sxXTsgCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgc3RhcnQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1sxXTsKKyAgICAgICAgc3RhcnQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQoc3RhcnQpOworICAgICAgICAvLyB0aGlzIHRvdGFsbHkgbWF0Y2hlcywgaG93ZXZlciB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHJlcGVhdGluZworICAgICAgICBpZiAoY2hlY2tSZXBlYXRlZE1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8ICFpc0JyZWFrVW5pdChzdGFydCwgdGV4dG9mZnNldCkgCisgICAgICAgICAgICB8fCAhY2hlY2tJZGVudGljYWwoc3RhcnQsIHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ICsrOworICAgICAgICAgICAgdGV4dG9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyAgPSBzdGFydDsKKyAgICAgICAgbWF0Y2hMZW5ndGggPSB0ZXh0b2Zmc2V0IC0gc3RhcnQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTaGlmdGluZyB0aGUgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgcG9zaXRpb24gZm9yd2FyZCB0byBwcmVwYXJlIGZvcgorICAgICAqIGEgcHJlY2VkaW5nIG1hdGNoLiBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIGEgdW5zYWZlIGNoYXJhY3Rlciwgd2UnbGwgCisgICAgICogb25seSBzaGlmdCBieSAxIHRvIGNhcHR1cmUgY29udHJhY3Rpb25zLCBub3JtYWxpemF0aW9uIGV0Yy4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBzdGFydCB0ZXh0IHBvc2l0aW9uIHRvIGRvIHNlYXJjaAorICAgICAqIEBwYXJhbSBjZSB0aGUgdGV4dCBjZSB3aGljaCBmYWlsZWQgdGhlIG1hdGNoLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuY2VpbmRleCBpbmRleCBvZiB0aGUgY2Ugd2l0aGluIHRoZSBwYXR0ZXJuIGNlIGJ1ZmZlciB3aGljaAorICAgICAqICAgICAgICBmYWlsZWQgdGhlIG1hdGNoCisgICAgICogQHJldHVybiBmaW5hbCBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByZXZlcnNlU2hpZnQoaW50IHRleHRvZmZzZXQsIGludCBjZSwgaW50IHBhdHRlcm5jZWluZGV4KQorICAgIHsgICAgICAgICAKKyAgICAgICAgaWYgKGlzT3ZlcmxhcHBpbmcoKSkgeworICAgICAgICAgICAgaWYgKHRleHRvZmZzZXQgIT0gbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgLT0gbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBpbnQgc2hpZnQgPSBtX3BhdHRlcm5fLm1fYmFja1NoaWZ0X1toYXNoKGNlKV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBhZGp1c3QgZm9yIGNoYXJhY3RlcnMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc3Vic3RyaW5nIAorICAgICAgICAgICAgICAgIC8vIGZvciBtYXRjaGluZyB0aGF0IGZhaWxlZC4KKyAgICAgICAgICAgICAgICBpbnQgYWRqdXN0ID0gcGF0dGVybmNlaW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKGFkanVzdCA+IDEgJiYgc2hpZnQgPiBhZGp1c3QpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQgLT0gYWRqdXN0IC0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCAtPSBzaGlmdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgLT0gbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgdGV4dG9mZnNldCA9IGdldFByZXZpb3VzQmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIHRleHRvZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIG1hdGNoIGZvciBjb250cmFjdGlvbi4gCisgICAgICogSWYgdGhlIG1hdGNoIHN0YXJ0cyB3aXRoIGEgcGFydGlhbCBjb250cmFjdGlvbiB3ZSBmYWlsLgorICAgICAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciB0byByZXR1cm4gdGhlIG1vZGlmaWVkIHN0YXJ0IGFuZCBlbmQuCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHJldHVybiB0cnVlIGlmIG1hdGNoIHBhc3NlcyB0aGUgY29udHJhY3Rpb24gdGVzdCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja1ByZXZpb3VzRXhhY3RDb250cmFjdGlvbk1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisgICAgICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisgICAgICAgIGNoYXIgZWNoYXIgPSAwOworICAgICAgICBpZiAoZW5kIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICBlY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGNoYXIgc2NoYXIgPSAwOworICAgICAgICBpZiAoc3RhcnQgKyAxIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisgICAgICAgICAgICBzY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlY2hhcikgfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICAvLyBleHBhbnNpb24gc3VmZml4LCB3aGF0J3MgbGVmdCB0byBpdGVyYXRlCisgICAgICAgICAgICBpbnQgZXhwYW5zaW9uID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlclNpemVfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNFeHBhbnNpb24gPSBleHBhbnNpb24gPiAwOworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoZW5kKTsKKyAgICAgICAgICAgIGludCB0ZW1wID0gZW5kOworICAgICAgICAgICAgd2hpbGUgKGV4cGFuc2lvbiA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgcmVkdW5kYW50IGNlCisgICAgICAgICAgICAgICAgLy8gc2luY2UgZm9yd2FyZCBjb250cmFjdGlvbi9leHBhbnNpb24gbWF5IGhhdmUgZXh0cmEgY2VzCisgICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIGluIHRoZSBub3JtYWxpemF0aW9uIGJ1ZmZlciwgaGFzQWNjZW50c0JlZm9yZU1hdGNoCisgICAgICAgICAgICAgICAgLy8gd291bGQgaGF2ZSB0YWtlbiBjYXJlIG9mIGl0LgorICAgICAgICAgICAgICAgIC8vIEUuZy4gdGhlIGNoYXJhY3RlciBcdTAxRkEgd2lsbCBoYXZlIGFuIGV4cGFuc2lvbiBvZiAzLCBidXQgaWYKKyAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgb25seSBsb29raW5nIGZvciBBIHJpbmcgQVx1MDMwQSwgd2UnbGwgaGF2ZSB0byBza2lwIHRoZSAKKyAgICAgICAgICAgICAgICAvLyBsYXN0IGNlIGluIHRoZSBleHBhbnNpb24gYnVmZmVyCisgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBlbmQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGV4cGFuc2lvbiAtLTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGludCBjb3VudCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisgICAgICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ucHJldmlvdXMoKSk7CisgICAgICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYmVsb3csIG5vdGUgdGhhdCBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlCisgICAgICAgICAgICAgICAgLy8gdWNvbF9wcmV2aW91cyByZXR1cm5zIFVDT0xfTlVMTE9SREVSCisgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChoYXNFeHBhbnNpb24gJiYgY291bnQgPT0gMCAKKyAgICAgICAgICAgICAgICAgICAgJiYgbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBlbmQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NvdW50IC0gMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgLS07CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgYW5kIHNldHMgdGhlIG1hdGNoIGluZm9ybWF0aW9uIGlmIGZvdW5kLgorICAgICAqIENoZWNrcyAKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiB0aGUgY3VycmVudCBtYXRjaCBkb2VzIG5vdCByZXBlYXQgdGhlIGxhc3QgbWF0Y2gKKyAgICAgKiA8bGk+IGJvdW5kYXJpZXMgYXJlIGNvcnJlY3QKKyAgICAgKiA8bGk+IGV4YWN0IG1hdGNoZXMgaGFzIG5vIGV4dHJhIGFjY2VudHMKKyAgICAgKiA8bGk+IGlkZW50aWNhbCBtYXRjaGVzCisgICAgICogPC91bD4KKyAgICAgKiBPdGhlcndpc2UgdGhlIG9mZnNldCB3aWxsIGJlIHNoaWZ0ZWQgdG8gdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIuCisgICAgICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWxpdHkgYnVmZmVyIHRvIHN0b3JlIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0LgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiB0aGUgY29sbGF0aW9uIGVsZW1lbnQgdGV4dC4gdGhlIHJldHVybmVkIHZhbHVlCisgICAgICogICAgICAgIHdpbGwgYmUgdGhlIHRydW5jYXRlZCBzdGFydCBvZmZzZXQgb2YgdGhlIG1hdGNoIG9yIHRoZSBuZXcgc3RhcnQgCisgICAgICogICAgICAgIHNlYXJjaCBvZmZzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrUHJldmlvdXNFeGFjdE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmRzIGFyZSBub3QgY29tcG9zaXRlIGNoYXJhY3RlcnMKKyAgICAgICAgaW50IGVuZCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOyAgICAgICAgCisgICAgICAgIGlmICghY2hlY2tQcmV2aW91c0V4YWN0Q29udHJhY3Rpb25NYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIGVuZCA9IG1fdXRpbEJ1ZmZlcl9bMV07CisgICAgICAgICAgICAKKyAgICAgICAgLy8gdGhpcyB0b3RhbGx5IG1hdGNoZXMsIGhvd2V2ZXIgd2UgbmVlZCB0byBjaGVjayBpZiBpdCBpcyByZXBlYXRpbmcKKyAgICAgICAgLy8gdGhlIG9sZCBtYXRjaAorICAgICAgICBpZiAoY2hlY2tSZXBlYXRlZE1hdGNoKHRleHRvZmZzZXQsIGVuZCkgCisgICAgICAgICAgICB8fCAhaXNCcmVha1VuaXQodGV4dG9mZnNldCwgZW5kKSAKKyAgICAgICAgICAgIHx8IGhhc0FjY2VudHNCZWZvcmVNYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpIAorICAgICAgICAgICAgfHwgIWNoZWNrSWRlbnRpY2FsKHRleHRvZmZzZXQsIGVuZCkgCisgICAgICAgICAgICB8fCBoYXNBY2NlbnRzQWZ0ZXJNYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpKSB7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0IC0tOworICAgICAgICAgICAgdGV4dG9mZnNldCA9IGdldFByZXZpb3VzQmFzZU9mZnNldCh0YXJnZXRUZXh0LCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRleHRvZmZzZXQ7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gZW5kIC0gdGV4dG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhcnJhbmdlcyB0aGUgZW5kIGFjY2VudHMgdG8gdHJ5IG1hdGNoaW5nLgorICAgICAqIFN1ZmZpeCBhY2NlbnRzIGluIHRoZSB0ZXh0IHdpbGwgYmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgY29tYmluaW5nIAorICAgICAqIGNsYXNzIGFuZCB0aGUgZ3JvdXBzIHdpbGwgYmUgbWl4ZWQgYW5kIG1hdGNoZWQgdG8gdHJ5IGZpbmQgdGhlIHBlcmZlY3QgCisgICAgICogbWF0Y2ggd2l0aCB0aGUgcGF0dGVybi4KKyAgICAgKiBTbyBmb3IgaW5zdGFuY2UgbG9va2luZyBmb3IgIlx1MDMwMSIgaW4gIlx1MDMwQVx1MDMwMVx1MDMyNSIKKyAgICAgKiBzdGVwIDE6IHNwbGl0ICJcdTAzMEFcdTAzMDEiIGludG8gNiBvdGhlciB0eXBlIG9mIHBvdGVudGlhbCBhY2NlbnQgCisgICAgICogICAgICAgICAgICAgc3Vic3RyaW5ncworICAgICAqICAgICAgICAgIlx1MDMwQSIsICJcdTAzMDEiLCAiXHUwMzI1IiwgIlx1MDMwQVx1MDMwMSIsICJcdTAzMEFcdTAzMjUiLCAKKyAgICAgKiAgICAgICAgICJcdTAzMDFcdTAzMjUiLgorICAgICAqIHN0ZXAgMjogY2hlY2sgaWYgYW55IG9mIHRoZSBnZW5lcmF0ZWQgc3Vic3RyaW5ncyBtYXRjaGVzIHRoZSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgdGhlIGZpcnN0IGJhc2UgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIGVuZCBzdGFydCBvZiB0aGUgbGFzdCBhY2NlbnQgc2V0CisgICAgICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBlbmRpbmcKKyAgICAgKiAgICAgICAgIG9mZnNldCBvZiB0aGUgbWF0Y2guIE5vdGUgdGhpcyBzdGFydCBpbmNsdWRlcyBhbGwgZm9sbG93aW5nIAorICAgICAqICAgICAgICAgYWNjZW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkb1ByZXZpb3VzQ2Fub25pY2FsU3VmZml4TWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKQorICAgIHsKKyAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpIAorICAgICAgICAgICAgJiYgdGFyZ2V0VGV4dC5nZXRJbmRleCgpID4gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisgICAgICAgICAgICBpZiAoIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5uZXh0KCk7CisgICAgICAgICAgICB9IAorICAgICAgICB9CisgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRhcmdldFRleHQuZ2V0SW5kZXgoKSkgJiBMQVNUX0JZVEVfTUFTS18pID09IDApIHsKKyAgICAgICAgICAgIC8vIGRpZS4uLiBmYWlsZWQgYXQgYSBiYXNlIGNoYXJhY3RlcgorICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgZW5kID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgZW5kKTsKKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFjY2VudHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBvZmZzZXQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGFyZ2V0VGV4dCwgZW5kKTsKKyAgICAgICAgLy8gbm9ybWFsaXppbmcgdGhlIG9mZmVuc2l2ZSBzdHJpbmcKKyAgICAgICAgU3RyaW5nIGFjY2VudHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCBvZmZzZXQsIGVuZCAtIG9mZnNldCk7CisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soYWNjZW50c3RyLCBOb3JtYWxpemVyLk5GRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICBhY2NlbnRzdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShhY2NlbnRzdHIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBhY2NlbnRzLmFwcGVuZChhY2NlbnRzdHIpOyAgICAKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOyAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisgICAgICAgIGludCBjb3VudCA9ICgyIDw8IChhY2NlbnRzaXplIC0gMSkpIC0gMTsgIAorICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGJhc2UgY2hhcmFjdGVycworICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKyAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZm9ybWluZyBhbGwgcG9zc2libGUgY2Fub25pY2FsIHJlYXJyYW5nZW1lbnQgYnkgZHJvcHBpbmcKKyAgICAgICAgICAgIC8vIHNldHMgb2YgYWNjZW50cworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gYWNjZW50c2l6ZSAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgbWFzayA9IDEgPDwgKGFjY2VudHNpemUgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgaWYgKChjb3VudCAmIG1hc2spICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGFjY2VudHNpbmRleFtpXTsgaiA8IGFjY2VudHNpbmRleFtpICsgMV07IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG1hdGNoID0gbWVyZ2UobV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXywgdGFyZ2V0VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKTsKKyAgICAgICAgICAgIC8vIHJ1biB0aGUgY29sbGF0b3IgaXRlcmF0b3IgdGhyb3VnaCB0aGlzIG1hdGNoCisgICAgICAgICAgICAvLyBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1hdGNoLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGNoZWNrQ29sbGF0aW9uTWF0Y2gobV91dGlsQ29sRUl0ZXJfKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBlbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGFrZSB0aGUgcmVhcnJhbmdlZCBzdGFydCBhY2NlbnRzIGFuZCB0cmllcyBtYXRjaGluZy4gSWYgbWF0Y2ggZmFpbGVkIGF0CisgICAgICogYSBzZXBlcmF0ZSBmb2xsb3dpbmcgc2V0IG9mIGFjY2VudHMgKHNlcGVyYXRlZCBmcm9tIHRoZSByZWFycmFuZ2VkIG9uIGJ5CisgICAgICogYXQgbGVhc3QgYSBiYXNlIGNoYXJhY3RlcikgdGhlbiB3ZSByZWFycmFuZ2UgdGhlIHByZWNlZGluZyBhY2NlbnRzIGFuZCAKKyAgICAgKiB0cmllcyBtYXRjaGluZyBhZ2Fpbi4KKyAgICAgKiBXZSBhbGxvdyBza2lwcGluZyBvZiB0aGUgZW5kcyBvZiB0aGUgYWNjZW50IHNldCBpZiB0aGUgY2VzIGRvIG5vdCBtYXRjaC4gCisgICAgICogSG93ZXZlciBpZiB0aGUgZmFpbHVyZSBpcyBmb3VuZCBiZWZvcmUgdGhlIGFjY2VudCBzZXQsIGl0IGZhaWxzLgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKyAgICAgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2YgdGhlIGVuZHMgb2YgdGhlIHJlYXJyYW5nZWQgYWNjZW50CisgICAgICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBlbmRpbmcgb2Zmc2V0IAorICAgICAqICAgICAgICAgICAgIG9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBmb2xsb3dpbmcgYWNjZW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkb1ByZXZpb3VzQ2Fub25pY2FsUHJlZml4TWF0Y2goaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgIC8vIGludCBzYWZlbGVuZ3RoID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNhZmV0ZXh0OworICAgICAgICBpbnQgc2FmZW9mZnNldCA9IHRleHRvZmZzZXQ7CisgICAgCisgICAgICAgIGlmICh0ZXh0b2Zmc2V0ID4gbV90ZXh0QmVnaW5PZmZzZXRfCisgICAgICAgICAgICAmJiBtX2NvbGxhdG9yXy5pc1Vuc2FmZShtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkgLSAxKSkpIHsKKyAgICAgICAgICAgIHNhZmVvZmZzZXQgPSBnZXROZXh0U2FmZU9mZnNldCh0ZXh0b2Zmc2V0LCBtX3RleHRMaW1pdE9mZnNldF8pOworICAgICAgICAgICAgLy9zYWZlbGVuZ3RoID0gc2FmZW9mZnNldCAtIHRleHRvZmZzZXQ7CisgICAgICAgICAgICBzYWZldGV4dCA9IG1lcmdlKG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18sIHRhcmdldFRleHQsIHRleHRvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlb2Zmc2V0LCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHNhZmV0ZXh0ID0gbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXzsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlLCB1Y29sX3NldFRleHQgZG9lcyBub3RoaW5nCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlciA9IG1fdXRpbENvbEVJdGVyXzsKKyAgICAgICAgY29sZWl0ZXIuc2V0VGV4dChzYWZldGV4dC50b1N0cmluZygpKTsKKyAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgaW4gbG9vcCBiZWxvdworICAgICAgICAKKyAgICAgICAgaW50IGNlaW5kZXggPSAwOworICAgICAgICBib29sZWFuIGlzU2FmZSA9IHRydWU7IC8vIHNhZmUgem9uZSBpbmRpY2F0aW9uIGZsYWcgZm9yIHBvc2l0aW9uCisgICAgICAgIGludCBwcmVmaXhsZW5ndGggPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmxlbmd0aCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGNlaW5kZXggPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisgICAgICAgICAgICBpbnQgdGV4dGNlID0gY29sZWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKHRleHRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBwYXNzZWQgdGhlIHNhZmUgYnVmZmVyCisgICAgICAgICAgICAgICAgaWYgKGNvbGVpdGVyID09IG1fY29sRUl0ZXJfKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc2FmZXRleHQgIT0gbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgICAgICAgICBzYWZldGV4dC5kZWxldGUoMCwgc2FmZXRleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2xlaXRlciA9IG1fY29sRUl0ZXJfOworICAgICAgICAgICAgICAgIGNvbGVpdGVyLnNldEV4YWN0T2Zmc2V0KHNhZmVvZmZzZXQpOworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGF0IHRoZSBzdGFydCBvZiB0aGUgbG9vcAorICAgICAgICAgICAgICAgIGlzU2FmZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dGNlID0gZ2V0Q0UodGV4dGNlKTsKKyAgICAgICAgICAgIGlmICh0ZXh0Y2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSAKKyAgICAgICAgICAgICAgICAmJiB0ZXh0Y2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjZWluZGV4XSkgeworICAgICAgICAgICAgICAgIC8vIGRvIHRoZSBiZWdpbm5pbmcgc3R1ZmYKKyAgICAgICAgICAgICAgICBpbnQgZmFpbGVkb2Zmc2V0ID0gY29sZWl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgaWYgKGlzU2FmZSAmJiBmYWlsZWRvZmZzZXQgPD0gcHJlZml4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFsYXMuLi4gbm8gaG9wZS4gZmFpbGVkIGF0IHJlYXJyYW5nZWQgYWNjZW50IHNldAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1NhZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxlZG9mZnNldCA9IHNhZmVvZmZzZXQgLSBmYWlsZWRvZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2FmZXRleHQgIT0gbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmV0ZXh0LmRlbGV0ZSgwLCBzYWZldGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIHRyeSByZWFycmFuZ2luZyB0aGUgZW5kIGFjY2VudHMKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGRvUHJldmlvdXNDYW5vbmljYWxTdWZmaXhNYXRjaCh0ZXh0b2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWRvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0T2Zmc2V0IGRvZXMgbm90aGluZworICAgICAgICAgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXh0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1tjZWluZGV4XSkgeworICAgICAgICAgICAgICAgIGNlaW5kZXggKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gc2V0IG9mZnNldCBoZXJlCisgICAgICAgIGlmIChpc1NhZmUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjb2xlaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgIC8vIHNldHMgdGhlIHRleHQgaXRlcmF0b3IgaGVyZSB3aXRoIHRoZSBjb3JyZWN0IGV4cGFuc2lvbiBhbmQgb2Zmc2V0CisgICAgICAgICAgICBpbnQgbGVmdG92ZXJjZXMgPSBjb2xlaXRlci5tX0NFQnVmZmVyU2l6ZV8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGNvbGVpdGVyLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgaWYgKHJlc3VsdCA8PSBwcmVmaXhsZW5ndGgpIHsgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRleHRvZmZzZXQgKyAoc2FmZW9mZnNldCAtIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworICAgICAgICAgICAgbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBsZWZ0b3ZlcmNlczsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjb2xlaXRlci5nZXRPZmZzZXQoKTsgICAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUcnlpbmcgb3V0IHRoZSBzdWJzdHJpbmcgYW5kIHNlZXMgaWYgaXQgY2FuIGJlIGEgY2Fub25pY2FsIG1hdGNoLgorICAgICAqIFRoaXMgd2lsbCB0cnkgbm9ybWFsaXppbmcgdGhlIHN0YXJ0aW5nIGFjY2VudHMgYW5kIGFycmFuZ2luZyB0aGVtIGludG8gCisgICAgICogY2Fub25pY2FsIGVxdWl2YWxlbnRzIGFuZCBjaGVjayB0aGVpciBjb3JyZXNwb25kaW5nIGNlcyB3aXRoIHRoZSBwYXR0ZXJuIAorICAgICAqIGNlLgorICAgICAqIFByZWZpeCBhY2NlbnRzIGluIHRoZSB0ZXh0IHdpbGwgYmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgY29tYmluaW5nIAorICAgICAqIGNsYXNzIGFuZCB0aGUgZ3JvdXBzIHdpbGwgYmUgbWl4ZWQgYW5kIG1hdGNoZWQgdG8gdHJ5IGZpbmQgdGhlIHBlcmZlY3QgCisgICAgICogbWF0Y2ggd2l0aCB0aGUgcGF0dGVybi4KKyAgICAgKiBTbyBmb3IgaW5zdGFuY2UgbG9va2luZyBmb3IgIlx1MDMwMSIgaW4gIlx1MDMwQVx1MDMwMVx1MDMyNSIKKyAgICAgKiBzdGVwIDE6IHNwbGl0ICJcdTAzMEFcdTAzMDEiIGludG8gNiBvdGhlciB0eXBlIG9mIHBvdGVudGlhbCBhY2NlbnQgCisgICAgICogICAgICAgICAgICBzdWJzdHJpbmdzCisgICAgICogICAgICAgICAiXHUwMzBBIiwgIlx1MDMwMSIsICJcdTAzMjUiLCAiXHUwMzBBXHUwMzAxIiwgIlx1MDMwQVx1MDMyNSIsIAorICAgICAqICAgICAgICAgIlx1MDMwMVx1MDMyNSIuCisgICAgICogc3RlcCAyOiBjaGVjayBpZiBhbnkgb2YgdGhlIGdlbmVyYXRlZCBzdWJzdHJpbmdzIG1hdGNoZXMgdGhlIHBhdHRlcm4uCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgc3RhcnQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0IHRoYXQgc3RhcnRzIAorICAgICAqICAgICAgICAgICAgICAgICAgIHdpdGggdGhlIGFjY2VudHMgdG8gYmUgcmVhcnJhbmdlZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBkb1ByZXZpb3VzQ2Fub25pY2FsTWF0Y2goaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0ID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRleHRvZmZzZXQpID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZG9QcmV2aW91c0Nhbm9uaWNhbFN1ZmZpeE1hdGNoKHRleHRvZmZzZXQsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoIW1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBhY2NlbnRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvLyBvZmZzZXQgdG8gdGhlIGxhc3QgYmFzZSBjaGFyYWN0ZXIgaW4gc3Vic3RyaW5nIHRvIHNlYXJjaAorICAgICAgICBpbnQgYmFzZW9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworICAgICAgICBTdHJpbmcgdGV4dHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCB0ZXh0b2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlb2Zmc2V0IC0gdGV4dG9mZnNldCk7CisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sodGV4dHN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgdGV4dHN0ciA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHRleHRzdHIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBhY2NlbnRzLmFwcGVuZCh0ZXh0c3RyKTsKKyAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgaW4gbG9vcAorICAgICAgICAgICAgCisgICAgICAgIGludCBhY2NlbnRzaW5kZXhbXSA9IG5ldyBpbnRbSU5JVElBTF9BUlJBWV9TSVpFX107CisgICAgICAgIGludCBzaXplID0gZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoYWNjZW50cywgYWNjZW50c2luZGV4KTsKKyAgICAKKyAgICAgICAgLy8gMiBwb3dlciBuIC0gMSBwbHVzIHRoZSBmdWxsIHNldCBvZiBhY2NlbnRzCisgICAgICAgIGludCBjb3VudCA9ICgyIDw8IChzaXplIC0gMSkpIC0gMTsgIAorICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGJhc2UgY2hhcmFjdGVycworICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChrKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBmb3JtaW5nIGFsbCBwb3NzaWJsZSBjYW5vbmljYWwgcmVhcnJhbmdlbWVudCBieSBkcm9wcGluZworICAgICAgICAgICAgLy8gc2V0cyBvZiBhY2NlbnRzCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplIC0gMTsgaSArKykgeworICAgICAgICAgICAgICAgIGludCBtYXNrID0gMSA8PCAoc2l6ZSAtIGkgLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICYgbWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gYWNjZW50c2luZGV4W2ldOyBqIDwgYWNjZW50c2luZGV4W2kgKyAxXTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0ID0gZG9QcmV2aW91c0Nhbm9uaWNhbFByZWZpeE1hdGNoKGJhc2VvZmZzZXQpOworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIG1hdGNoIGZvdW5kCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBtYXRjaCBmb3IgY29udHJhY3Rpb24uIAorICAgICAqIElmIHRoZSBtYXRjaCBzdGFydHMgd2l0aCBhIHBhcnRpYWwgY29udHJhY3Rpb24gd2UgZmFpbC4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgdG8gcmV0dXJuIHRoZSBtb2RpZmllZCBzdGFydCBhbmQgZW5kLgorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKyAgICAgKiBAcGFyYW0gZW5kIG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBtYXRjaCBwYXNzZXMgdGhlIGNvbnRyYWN0aW9uIHRlc3QsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tQcmV2aW91c0Nhbm9uaWNhbENvbnRyYWN0aW9uTWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKSAKKyAgICB7CisgICAgICAgIGludCB0ZW1wID0gZW5kOworICAgICAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisgICAgICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisgICAgICAgIGNoYXIgZWNoYXIgPSAwOworICAgICAgICBjaGFyIHNjaGFyID0gMDsKKyAgICAgICAgaWYgKGVuZCA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworICAgICAgICAgICAgZWNoYXIgPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgKyAxIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisgICAgICAgICAgICBzY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlY2hhcikgfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICBpbnQgZXhwYW5zaW9uID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlclNpemVfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNFeHBhbnNpb24gPSBleHBhbnNpb24gPiAwOworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoZW5kKTsKKyAgICAgICAgICAgIHdoaWxlIChleHBhbnNpb24gPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHJlZHVuZGFudCBjZQorICAgICAgICAgICAgICAgIC8vIHNpbmNlIGZvcndhcmQgY29udHJhY3Rpb24vZXhwYW5zaW9uIG1heSBoYXZlIGV4dHJhIGNlcworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIsIGhhc0FjY2VudHNCZWZvcmVNYXRjaAorICAgICAgICAgICAgICAgIC8vIHdvdWxkIGhhdmUgdGFrZW4gY2FyZSBvZiBpdC4KKyAgICAgICAgICAgICAgICAvLyBFLmcuIHRoZSBjaGFyYWN0ZXIgXHUwMUZBIHdpbGwgaGF2ZSBhbiBleHBhbnNpb24gb2YgMywgYnV0IAorICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIEEgcmluZyBBXHUwMzBBLCB3ZSdsbCBoYXZlIHRvIAorICAgICAgICAgICAgICAgIC8vIHNraXAgdGhlIGxhc3QgY2UgaW4gdGhlIGV4cGFuc2lvbiBidWZmZXIKKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXhwYW5zaW9uIC0tOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaW50IGNvdW50ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5wcmV2aW91cygpKTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBiZWxvdywgbm90ZSB0aGF0IGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUKKyAgICAgICAgICAgICAgICAvLyBwcmV2aW91cygpIHJldHVybnMgTlVMTE9SREVSCisgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChoYXNFeHBhbnNpb24gJiYgY291bnQgPT0gMCAKKyAgICAgICAgICAgICAgICAgICAgJiYgbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBlbmQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIAorICAgICAgICAgICAgICAgICAgICAmJiBjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW21fcGF0dGVybl8ubV9DRUxlbmd0aF8gLSAxXSkgeworICAgICAgICAgICAgICAgICAgICAvLyBhY2NlbnRzIG1heSBoYXZlIGV4dHJhIHN0YXJ0aW5nIGNlcywgdGhpcyBvY2N1cnMgd2hlbiBhIAorICAgICAgICAgICAgICAgICAgICAvLyBwdXJlIGFjY2VudCBwYXR0ZXJuIGlzIG1hdGNoZWQgd2l0aG91dCByZWFycmFuZ2VtZW50CisgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZCA9IG1fcGF0dGVybl8ubV9DRV9bbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIDFdOworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRUZXh0LmdldEluZGV4KCkgPiBtX3RleHRCZWdpbk9mZnNldF8gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbmQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIGVuZCkgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ucHJldmlvdXMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gZXhwZWN0ZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpIDw9IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5wcmV2aW91cygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjb3VudCAtIDFdKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0IC0tOworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGdldFByZXZpb3VzQmFzZU9mZnNldChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGFuZCBzZXRzIHRoZSBtYXRjaCBpbmZvcm1hdGlvbiBpZiBmb3VuZC4KKyAgICAgKiBDaGVja3MgCisgICAgICogPHVsPgorICAgICAqIDxsaT4gdGhlIHBvdGVudGlhbCBtYXRjaCBkb2VzIG5vdCByZXBlYXQgdGhlIHByZXZpb3VzIG1hdGNoCisgICAgICogPGxpPiBib3VuZGFyaWVzIGFyZSBjb3JyZWN0CisgICAgICogPGxpPiBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgZW5kIGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorICAgICAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXMKKyAgICAgKiA8L3VsPgorICAgICAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuCisgICAgICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWxpdHkgYnVmZmVyIGZvciBzdG9yaW5nIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0LgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiB0aGUgY29sbGF0aW9uIGVsZW1lbnQgdGV4dC4gdGhlIHJldHVybmVkIAorICAgICAqICAgICAgICAgICAgIHZhbHVlIHdpbGwgYmUgdGhlIHRydW5jYXRlZCBzdGFydCBvZmZzZXQgb2YgdGhlIG1hdGNoIG9yIHRoZSAKKyAgICAgKiAgICAgICAgICAgICBuZXcgc3RhcnQgc2VhcmNoIG9mZnNldC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG1hdGNoIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tQcmV2aW91c0Nhbm9uaWNhbE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmRzIGFyZSBub3QgY29tcG9zaXRlIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIGNhbm9uaWNhbCBhY2NlbnQgbWF0Y2gKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyAKKyAgICAgICAgICAgICYmIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCAKKyAgICAgICAgICAgIHx8IG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXyAKKyAgICAgICAgICAgICYmIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gZ2V0TmV4dEJhc2VPZmZzZXQobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBlbmQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKCFjaGVja1ByZXZpb3VzQ2Fub25pY2FsQ29udHJhY3Rpb25NYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpKSB7CisgICAgICAgICAgICAvLyBzdG9yaW5nIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIGVuZCA9IG1fdXRpbEJ1ZmZlcl9bMV07CisgICAgICAgIGVuZCA9IGdldE5leHRCYXNlT2Zmc2V0KGVuZCk7CisgICAgICAgIC8vIHRoaXMgdG90YWxseSBtYXRjaGVzLCBob3dldmVyIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgcmVwZWF0aW5nCisgICAgICAgIGlmIChjaGVja1JlcGVhdGVkTWF0Y2godGV4dG9mZnNldCwgZW5kKSAKKyAgICAgICAgICAgIHx8ICFpc0JyZWFrVW5pdCh0ZXh0b2Zmc2V0LCBlbmQpIAorICAgICAgICAgICAgfHwgIWNoZWNrSWRlbnRpY2FsKHRleHRvZmZzZXQsIGVuZCkpIHsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgLS07CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRleHRvZmZzZXQpOworICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRleHRvZmZzZXQ7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gZW5kIC0gdGV4dG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1ldGhvZCB0aGF0IGRvZXMgdGhlIG5leHQgZXhhY3QgbWF0Y2gKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB0byBzdGFydCBzaGlmdGluZyBmcm9tIGFuZCBwZXJmb3JtaW5nIHRoZSAKKyAgICAgKiAgICAgICAgbmV4dCBleGFjdCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVOZXh0RXhhY3QoaW50IHN0YXJ0KQorICAgIHsKKyAgICAgICAgaW50IHRleHRvZmZzZXQgPSBzaGlmdEZvcndhcmQoc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKTsKKyAgICAgICAgaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgd2hpbGUgKHRleHRvZmZzZXQgPD0gbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gLSAxOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGxhc3RjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgLy8gZmluZGluZyB0aGUgbGFzdCBwYXR0ZXJuIGNlIG1hdGNoLCBpbWFnaW5lIGNvbXBvc2l0ZSAKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiBmb3IgZXhhbXBsZTogc2VhcmNoIGZvciBwYXR0ZXJuIEEgaW4gdGV4dCBcdTAwQzAKKyAgICAgICAgICAgICAgICAvLyB3ZSdsbCBoYXZlIHRvIHNraXAgXHUwMzAwIHRoZSBncmF2ZSBmaXJzdCBiZWZvcmUgd2UgZ2V0IHRvIEEKKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFICYmIAorICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5pc0luQnVmZmVyKCkpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgZm9yIHRoZSB0ZXh0IFx1MDMxNVx1MDMwMCB0aGF0IHJlcXVpcmVzIAorICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemF0aW9uIGFuZCBwYXR0ZXJuIFx1MDMwMCwgd2hlcmUgXHUwMzE1IGlzIGlnbm9yYWJsZQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICB8fCBsYXN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBsYXN0Y2UgPSB0YXJnZXRjZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bcGF0dGVybmNlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBjZSBjYW4gYmUgYSBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPD0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB3aGlsZSAoZm91bmQgJiYgcGF0dGVybmNlaW5kZXggPiAwKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggLS07CisgICAgICAgICAgICAgICAgZm91bmQgPSBmb3VuZCAmJiB0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XTsgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZCh0ZXh0b2Zmc2V0LCBsYXN0Y2UsIHBhdHRlcm5jZWluZGV4KTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBhdCBsb29wLgorICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNoZWNrTmV4dEV4YWN0TWF0Y2godGV4dG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiB1Y29sX3NldE9mZnNldAorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB9CisgICAgICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgdGhhdCBkb2VzIHRoZSBuZXh0IGNhbm9uaWNhbCBtYXRjaAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHRvIHN0YXJ0IHNoaWZ0aW5nIGZyb20gYW5kIHBlcmZvcm1pbmcgdGhlIAorICAgICAqICAgICAgICBuZXh0IGNhbm9uaWNhbCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVOZXh0Q2Fub25pY2FsKGludCBzdGFydCkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gaGFzUGF0dGVybkFjY2VudHMgPSAKKyAgICAgICAgICAgbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIHx8IG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXzsKKyAgICAgICAgICAgICAgCisgICAgICAgIC8vIHNoaWZ0aW5nIGl0IGNoZWNrIGZvciBzZXR0aW5nIG9mZnNldAorICAgICAgICAvLyBpZiBzZXRPZmZzZXQgaXMgY2FsbGVkIHByZXZpb3VzbHkgb3IgdGhlcmUgd2FzIG5vIHByZXZpb3VzIG1hdGNoLCB3ZQorICAgICAgICAvLyBsZWF2ZSB0aGUgb2Zmc2V0IGFzIGl0IGlzLgorICAgICAgICBpbnQgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZChzdGFydCwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyk7CisgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0ZXh0b2Zmc2V0IDw9IG1fdGV4dExpbWl0T2Zmc2V0XykKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQodGV4dG9mZnNldCk7CisgICAgICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gMTsKKyAgICAgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBsYXN0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIGZpbmRpbmcgdGhlIGxhc3QgcGF0dGVybiBjZSBtYXRjaCwgaW1hZ2luZSBjb21wb3NpdGUgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIC8vIGZvciBleGFtcGxlOiBzZWFyY2ggZm9yIHBhdHRlcm4gQSBpbiB0ZXh0IFx1MDBDMAorICAgICAgICAgICAgICAgIC8vIHdlJ2xsIGhhdmUgdG8gc2tpcCBcdTAzMDAgdGhlIGdyYXZlIGZpcnN0IGJlZm9yZSB3ZSBnZXQgdG8gQQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RjZSA9IHRhcmdldGNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNlIGNhbiBiZSBhIGNvbnRyYWN0aW9uCisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGZvdW5kICYmIHBhdHRlcm5jZWluZGV4ID4gMCkgeworICAgICAgICAgICAgICAgIHRhcmdldGNlICAgID0gbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgICAgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4IC0tOworICAgICAgICAgICAgICAgIGZvdW5kID0gZm91bmQgJiYgdGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF07IAorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gaW5pdGlhbGl6aW5nIHRoZSByZWFycmFuZ2VkIGFjY2VudCBhcnJheQorICAgICAgICAgICAgaWYgKGhhc1BhdHRlcm5BY2NlbnRzICYmICFmb3VuZCkgeworICAgICAgICAgICAgICAgIGZvdW5kID0gZG9OZXh0Q2Fub25pY2FsTWF0Y2godGV4dG9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZCh0ZXh0b2Zmc2V0LCBsYXN0Y2UsIHBhdHRlcm5jZWluZGV4KTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBhdCBsb29wCisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2hlY2tOZXh0Q2Fub25pY2FsTWF0Y2godGV4dG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1swXTsKKyAgICAgICAgfQorICAgICAgICBzZXRNYXRjaE5vdEZvdW5kKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1ldGhvZCB0aGF0IGRvZXMgdGhlIHByZXZpb3VzIGV4YWN0IG1hdGNoCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgdG8gc3RhcnQgc2hpZnRpbmcgZnJvbSBhbmQgcGVyZm9ybWluZyB0aGUgCisgICAgICogICAgICAgIHByZXZpb3VzIGV4YWN0IG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZVByZXZpb3VzRXhhY3QoaW50IHN0YXJ0KQorICAgIHsKKyAgICAgICAgaW50IHRleHRvZmZzZXQgPSByZXZlcnNlU2hpZnQoc3RhcnQsIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKTsKKyAgICAgICAgd2hpbGUgKHRleHRvZmZzZXQgPj0gbV90ZXh0QmVnaW5PZmZzZXRfKQorICAgICAgICB7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IDE7CisgICAgICAgICAgICBpbnQgdGFyZ2V0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGZpcnN0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIGZpbmRpbmcgdGhlIGZpcnN0IHBhdHRlcm4gY2UgbWF0Y2gsIGltYWdpbmUgY29tcG9zaXRlIAorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMuIGZvciBleGFtcGxlOiBzZWFyY2ggZm9yIHBhdHRlcm4gXHUwMzAwIGluIHRleHQgCisgICAgICAgICAgICAgICAgLy8gXHUwMEMwLCB3ZSdsbCBoYXZlIHRvIHNraXAgQSBmaXJzdCBiZWZvcmUgd2UgZ2V0IHRvIAorICAgICAgICAgICAgICAgIC8vIFx1MDMwMCB0aGUgZ3JhdmUgYWNjZW50CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgIHx8IGZpcnN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdGNlID0gdGFyZ2V0Y2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0gICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1swXSkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPT0gLTEgCisgICAgICAgICAgICAgICAgICAgIHx8IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2tpbmcgZm9yIGFjY2VudHMgaW4gY29tcG9zaXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB0YXJnZXRjZSA9IGZpcnN0Y2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChmb3VuZCAmJiBwYXR0ZXJuY2VpbmRleCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGZvdW5kID0gZm91bmQgJiYgdGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF07IAorICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ICsrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgPSByZXZlcnNlU2hpZnQodGV4dG9mZnNldCwgdGFyZ2V0Y2UsIHBhdHRlcm5jZWluZGV4KTsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjaGVja1ByZXZpb3VzRXhhY3RNYXRjaCh0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB9CisgICAgICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTWV0aG9kIHRoYXQgZG9lcyB0aGUgcHJldmlvdXMgY2Fub25pY2FsIG1hdGNoCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgdG8gc3RhcnQgc2hpZnRpbmcgZnJvbSBhbmQgcGVyZm9ybWluZyB0aGUgCisgICAgICogICAgICAgIHByZXZpb3VzIGNhbm9uaWNhbCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVQcmV2aW91c0Nhbm9uaWNhbChpbnQgc3RhcnQpCisgICAgeworICAgICAgICBib29sZWFuIGhhc1BhdHRlcm5BY2NlbnRzID0gCisgICAgICAgICAgIG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyB8fCBtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c187CisgICAgICAgICAgICAgIAorICAgICAgICAvLyBzaGlmdGluZyBpdCBjaGVjayBmb3Igc2V0dGluZyBvZmZzZXQKKyAgICAgICAgLy8gaWYgc2V0T2Zmc2V0IGlzIGNhbGxlZCBwcmV2aW91c2x5IG9yIHRoZXJlIHdhcyBubyBwcmV2aW91cyBtYXRjaCwgd2UKKyAgICAgICAgLy8gbGVhdmUgdGhlIG9mZnNldCBhcyBpdCBpcy4KKyAgICAgICAgaW50IHRleHRvZmZzZXQgPSByZXZlcnNlU2hpZnQoc3RhcnQsIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyk7CisgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0ZXh0b2Zmc2V0ID49IG1fdGV4dEJlZ2luT2Zmc2V0XykKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQodGV4dG9mZnNldCk7CisgICAgICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSAxOworICAgICAgICAgICAgaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBmaXJzdGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyBmaW5kaW5nIHRoZSBmaXJzdCBwYXR0ZXJuIGNlIG1hdGNoLCBpbWFnaW5lIGNvbXBvc2l0ZSAKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiBmb3IgZXhhbXBsZTogc2VhcmNoIGZvciBwYXR0ZXJuIFx1MDMwMCBpbiB0ZXh0IAorICAgICAgICAgICAgICAgIC8vIFx1MDBDMCwgd2UnbGwgaGF2ZSB0byBza2lwIEEgZmlyc3QgYmVmb3JlIHdlIGdldCB0byAKKyAgICAgICAgICAgICAgICAvLyBcdTAzMDAgdGhlIGdyYXZlIGFjY2VudAorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICB8fCBmaXJzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RjZSA9IHRhcmdldGNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1swXSkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgY2UgY2FuIGJlIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfID09IC0xIAorICAgICAgICAgICAgICAgICAgICB8fCBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlclNpemVfKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNraW5nIGZvciBhY2NlbnRzIGluIGNvbXBvc2l0ZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgdGFyZ2V0Y2UgPSBmaXJzdGNlOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoZm91bmQgJiYgcGF0dGVybmNlaW5kZXggPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBmb3VuZCA9IGZvdW5kICYmIHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bcGF0dGVybmNlaW5kZXhdOyAKKyAgICAgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCArKzsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGluaXRpYWxpemluZyB0aGUgcmVhcnJhbmdlZCBhY2NlbnQgYXJyYXkKKyAgICAgICAgICAgIGlmIChoYXNQYXR0ZXJuQWNjZW50cyAmJiAhZm91bmQpIHsKKyAgICAgICAgICAgICAgICBmb3VuZCA9IGRvUHJldmlvdXNDYW5vbmljYWxNYXRjaCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gcmV2ZXJzZVNoaWZ0KHRleHRvZmZzZXQsIHRhcmdldGNlLCBwYXR0ZXJuY2VpbmRleCk7CisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggPSAwOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKGNoZWNrUHJldmlvdXNDYW5vbmljYWxNYXRjaCh0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB9CisgICAgICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIHN1YnN0cmluZyBvdXQgb2YgYSBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBwYXJhbSB0ZXh0IENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHBhcmFtIHN0YXJ0IHN0YXJ0IG9mZnNldAorICAgICAqIEBwYXJhbSBsZW5ndGggb2Ygc3Vic3RyaW5nCisgICAgICogQHJldHVybiBzdWJzdHJpbmcgZnJvbSB0ZXh0IHN0YXJ0aW5nIGF0IHN0YXJ0IGFuZCBsZW5ndGggbGVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGdldFN0cmluZyhDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0LCBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihsZW5ndGgpOworICAgICAgICBpbnQgb2Zmc2V0ID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICB0ZXh0LnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodGV4dC5jdXJyZW50KCkpOworICAgICAgICAgICAgdGV4dC5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgdGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHRpbmcgdGhlIG1hc2sgZm9yIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqIEBwYXJhbSBzdHJlbmd0aCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICogQHJldHVybiBjb2xsYXRpb24gZWxlbWVudCBtYXNrCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldE1hc2soaW50IHN0cmVuZ3RoKSAKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc3RyZW5ndGgpIAorICAgICAgICB7CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlBSSU1BUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlNFQ09OREFSWToKKyAgICAgICAgICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU0VDT05EQVJZX01BU0tfIAorICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5DRV9URVJUSUFSWV9NQVNLXyAKKyAgICAgICAgICAgICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfTUFTS18gCisgICAgICAgICAgICAgICAgICAgICAgIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIG1hdGNoIG5vdCBmb3VuZCAKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0TWF0Y2hOb3RGb3VuZCgpIAorICAgIHsKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgcmVzZXRzIHRoZSBtYXRjaCByZXN1bHQgcmVnYXJkbGVzcyBvZiB0aGUgZXJyb3Igc3RhdHVzLgorICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICBzZXRNYXRjaExlbmd0aCgwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TeW1ib2xUYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3ltYm9sVGFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMmYyMjhjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3ltYm9sVGFibGUuamF2YQpAQCAtMCwwICsxLDg2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworCisvKioKKyAqIEFuIGludGVyZmFjZSB0aGF0IGRlZmluZXMgYm90aCBsb29rdXAgcHJvdG9jb2wgYW5kIHBhcnNpbmcgb2YKKyAqIHN5bWJvbGljIG5hbWVzLgorICogCisgKiA8cD5UaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IFVuaWNvZGVTZXQgdG8gcmVzb2x2ZSAkVmFyaWFibGUgc3R5bGUKKyAqIHJlZmVyZW5jZXMgdGhhdCBhcHBlYXIgaW4gc2V0IHBhdHRlcm5zLiAgUkJCSSBhbmQgVHJhbnNsaXRlcmF0aW9uCisgKiBib3RoIGluZGVwZW5kZW50bHkgaW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlLgorICoKKyAqIDxwPkEgc3ltYm9sIHRhYmxlIG1haW50YWlucyB0d28ga2luZHMgb2YgbWFwcGluZ3MuICBUaGUgZmlyc3QgaXMKKyAqIGJldHdlZW4gc3ltYm9saWMgbmFtZXMgYW5kIHRoZWlyIHZhbHVlcy4gIEZvciBleGFtcGxlLCBpZiB0aGUKKyAqIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgInN0YXJ0IiBpcyBzZXQgdG8gdGhlIHZhbHVlICJhbHBoYSIKKyAqIChwZXJoYXBzLCB0aG91Z2ggbm90IG5lY2Vzc2FyaWx5LCB0aHJvdWdoIGFuIGV4cHJlc3Npb24gc3VjaCBhcworICogIiRzdGFydD1hbHBoYSIpLCB0aGVuIHRoZSBjYWxsIGxvb2t1cCgic3RhcnQiKSB3aWxsIHJldHVybiB0aGUKKyAqIGNoYXJbXSBhcnJheSBbJ2EnLCAnbCcsICdwJywgJ2gnLCAnYSddLgorICoKKyAqIDxwPlRoZSBzZWNvbmQga2luZCBvZiBtYXBwaW5nIGlzIGJldHdlZW4gY2hhcmFjdGVyIHZhbHVlcyBhbmQKKyAqIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMuICBUaGlzIGlzIHVzZWQgYnkgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgKiB3aGljaCB1c2VzIGNoYXJhY3RlcnMgaW4gdGhlIHByaXZhdGUgdXNlIGFyZWEgdG8gcmVwcmVzZW50IG9iamVjdHMKKyAqIHN1Y2ggYXMgVW5pY29kZVNldHMuICBJZiBVK0UwMTUgaXMgbWFwcGVkIHRvIHRoZSBVbmljb2RlU2V0IFthLXpdLAorICogdGhlbiBsb29rdXBNYXRjaGVyKDB4RTAxNSkgd2lsbCByZXR1cm4gdGhlIFVuaWNvZGVTZXQgW2Etel0uCisgKgorICogPHA+RmluYWxseSwgYSBzeW1ib2wgdGFibGUgZGVmaW5lcyBwYXJzaW5nIGJlaGF2aW9yIGZvciBzeW1ib2xpYworICogbmFtZXMuICBBbGwgc3ltYm9saWMgbmFtZXMgc3RhcnQgd2l0aCB0aGUgU1lNQk9MX1JFRiBjaGFyYWN0ZXIuCisgKiBXaGVuIGEgcGFyc2VyIGVuY291bnRlcnMgdGhpcyBjaGFyYWN0ZXIsIGl0IGNhbGxzIHBhcnNlUmVmZXJlbmNlKCkKKyAqIHdpdGggdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgU1lNQk9MX1JFRi4gIFRoZSBzeW1ib2wKKyAqIHRhYmxlIHBhcnNlcyB0aGUgbmFtZSwgaWYgdGhlcmUgaXMgb25lLCBhbmQgcmV0dXJucyBpdC4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGludGVyZmFjZSBTeW1ib2xUYWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIHByZWNlZGluZyBhIHN5bWJvbCByZWZlcmVuY2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBTWU1CT0xfUkVGID0gJyQnOworCisgICAgLyoqCisgICAgICogTG9va3VwIHRoZSBjaGFyYWN0ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN0cmluZyBhbmQgcmV0dXJuIGl0LgorICAgICAqIFJldHVybiA8dHQ+bnVsbDwvdHQ+IGlmIG5vIHN1Y2ggbmFtZSBleGlzdHMuICBUaGUgcmVzdWx0YW50CisgICAgICogYXJyYXkgbWF5IGhhdmUgbGVuZ3RoIHplcm8uCisgICAgICogQHBhcmFtIHMgdGhlIHN5bWJvbGljIG5hbWUgdG8gbG9va3VwCisgICAgICogQHJldHVybiBhIGNoYXIgYXJyYXkgY29udGFpbmluZyB0aGUgbmFtZSdzIHZhbHVlLCBvciBudWxsIGlmCisgICAgICogdGhlcmUgaXMgbm8gbWFwcGluZyBmb3Igcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBjaGFyW10gbG9va3VwKFN0cmluZyBzKTsKKworICAgIC8qKgorICAgICAqIExvb2t1cCB0aGUgVW5pY29kZU1hdGNoZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBjaGFyYWN0ZXIsIGFuZAorICAgICAqIHJldHVybiBpdC4gIFJldHVybiA8dHQ+bnVsbDwvdHQ+IGlmIG5vdCBmb3VuZC4KKyAgICAgKiBAcGFyYW0gY2ggYSAzMi1iaXQgY29kZSBwb2ludCBmcm9tIDAgdG8gMHgxMEZGRkYgaW5jbHVzaXZlLgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGVNYXRjaGVyIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4KKyAgICAgKiBjaGFyYWN0ZXIsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gbWFwcGluZyBmb3IgY2guCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpOworCisgICAgLyoqCisgICAgICogUGFyc2UgYSBzeW1ib2wgcmVmZXJlbmNlIG5hbWUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nLCBzdGFydGluZworICAgICAqIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4gIElmIG5vIHZhbGlkIHN5bWJvbCByZWZlcmVuY2UgbmFtZSBpcworICAgICAqIGZvdW5kLCByZXR1cm4gbnVsbCBhbmQgbGVhdmUgcG9zIHVuY2hhbmdlZC4gIFRoYXQgaXMsIGlmIHRoZQorICAgICAqIGNoYXJhY3RlciBhdCBwb3MgY2Fubm90IHN0YXJ0IGEgbmFtZSwgb3IgaWYgcG9zIGlzIGF0IG9yIGFmdGVyCisgICAgICogdGV4dC5sZW5ndGgoKSwgdGhlbiByZXR1cm4gbnVsbC4gIFRoaXMgaW5kaWNhdGVzIGFuIGlzb2xhdGVkCisgICAgICogU1lNQk9MX1JFRiBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gcGFyc2UgZm9yIHRoZSBuYW1lCisgICAgICogQHBhcmFtIHBvcyBvbiBlbnRyeSwgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UuCisgICAgICogVGhpcyBpcyB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgU1lNQk9MX1JFRiBjaGFyYWN0ZXIuICBPbgorICAgICAqIGV4aXQsIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLiAgSWYgdGhlIHBhcnNlCisgICAgICogZmFpbGVkLCBwb3MgaXMgdW5jaGFuZ2VkIG9uIGV4aXQuCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gYmUgcGFyc2VkLgorICAgICAqIEByZXR1cm4gdGhlIHBhcnNlZCBuYW1lLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHZhbGlkIHN5bWJvbGljCisgICAgICogbmFtZSBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgU3RyaW5nIHBhcnNlUmVmZXJlbmNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcywgaW50IGxpbWl0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UaXRsZWNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4OWVmZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UaXRsZWNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgY29udmVydHMgYWxsIGxldHRlcnMgKGFzIGRlZmluZWQgYnkKKyAqIDxjb2RlPlVDaGFyYWN0ZXIuaXNMZXR0ZXIoKTwvY29kZT4pIHRvIGxvd2VyIGNhc2UsIGV4Y2VwdCBmb3IgdGhvc2UKKyAqIGxldHRlcnMgcHJlY2VkZWQgYnkgbm9uLWxldHRlcnMuICBUaGUgbGF0dGVyIGFyZSBjb252ZXJ0ZWQgdG8gdGl0bGUKKyAqIGNhc2UgdXNpbmcgPGNvZGU+VUNoYXJhY3Rlci50b1RpdGxlQ2FzZSgpPC9jb2RlPi4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJBbnktVGl0bGUiOworCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICByZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJUaXRsZSIsICJMb3dlciIsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFVMb2NhbGUgbG9jYWxlOworCisgICAgcHJpdmF0ZSBVQ2FzZVByb3BzIGNzcDsKKyAgICBwcml2YXRlIFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yIGl0ZXI7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgcmVzdWx0OworICAgIHByaXZhdGUgaW50W10gbG9jQ2FjaGU7CisKKyAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICAgICAgbG9jYWxlID0gbG9jOworICAgICAgICAvLyBOZWVkIHRvIGxvb2sgYmFjayAyIGNoYXJhY3RlcnMgaW4gdGhlIGNhc2Ugb2YgImNhbid0IgorICAgICAgICBzZXRNYXhpbXVtQ29udGV4dExlbmd0aCgyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNzcD1VQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjc3A9bnVsbDsKKyAgICAgICAgfQorICAgICAgICBpdGVyPW5ldyBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcigpOworICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIGxvY0NhY2hlID0gbmV3IGludFsxXTsKKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAvLyBUT0RPIHJlaW1wbGVtZW50LCBzZWUgdXN0cmNhc2UuYworICAgICAgICAvLyB1c2luZyBhIHJlYWwgd29yZCBicmVhayBpdGVyYXRvcgorICAgICAgICAvLyAgIGluc3RlYWQgb2YganVzdCBsb29raW5nIGZvciBhIHRyYW5zaXRpb24gYmV0d2VlbiBjYXNlZCBhbmQgdW5jYXNlZCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGNhbGwgQ2FzZU1hcFRyYW5zbGl0ZXJhdG9yOjpoYW5kbGVUcmFuc2xpdGVyYXRlKCkgZm9yIGxvd2VyY2FzaW5nPyAoc2V0IGZNYXApCisgICAgICAgIC8vIG5lZWRzIHRvIHRha2UgaXNJbmNyZW1lbnRhbCBpbnRvIGFjY291bnQgYmVjYXVzZSBjYXNlIG1hcHBpbmdzIGFyZSBjb250ZXh0LXNlbnNpdGl2ZQorICAgICAgICAvLyAgIGFsc28gZGV0ZWN0IHdoZW4gbG93ZXJjYXNpbmcgZnVuY3Rpb24gZGlkIG5vdCBmaW5pc2ggYmVjYXVzZSBvZiBjb250ZXh0CisKKyAgICAgICAgaWYgKG9mZnNldHMuc3RhcnQgPj0gb2Zmc2V0cy5saW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gY2FzZSB0eXBlOiA+MCBjYXNlZCAoVUNhc2VQcm9wcy5MT1dFUiBldGMuKSAgPT0wIHVuY2FzZWQgIDwwIGNhc2UtaWdub3JhYmxlCisgICAgICAgIGludCB0eXBlOworCisgICAgICAgIC8vIE91ciBtb2RlOyB3ZSBhcmUgZWl0aGVyIGNvbnZlcnRpbmcgbGV0dGVyIHRvVGl0bGUgb3IKKyAgICAgICAgLy8gdG9Mb3dlci4KKyAgICAgICAgYm9vbGVhbiBkb1RpdGxlID0gdHJ1ZTsKKworICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSBwcmVjZWRpbmcgY29udGV4dCBvZiBjYXNlZCBjYXNlLWlnbm9yYWJsZSosCisgICAgICAgIC8vIGluIHdoaWNoIGNhc2Ugd2Ugd2FudCB0byBzdGFydCBpbiB0b0xvd2VyIG1vZGUuICBJZiB0aGUKKyAgICAgICAgLy8gcHJpb3IgY29udGV4dCBpcyBhbnl0aGluZyBlbHNlIChpbmNsdWRpbmcgZW1wdHkpIHRoZW4gc3RhcnQKKyAgICAgICAgLy8gaW4gdG9UaXRsZSBtb2RlLgorICAgICAgICBpbnQgYywgc3RhcnQ7CisgICAgICAgIGZvciAoc3RhcnQgPSBvZmZzZXRzLnN0YXJ0IC0gMTsgc3RhcnQgPj0gb2Zmc2V0cy5jb250ZXh0U3RhcnQ7IHN0YXJ0IC09IFVURjE2LmdldENoYXJDb3VudChjKSkgeworICAgICAgICAgICAgYyA9IHRleHQuY2hhcjMyQXQoc3RhcnQpOworICAgICAgICAgICAgdHlwZT1jc3AuZ2V0VHlwZU9ySWdub3JhYmxlKGMpOworICAgICAgICAgICAgaWYodHlwZT4wKSB7IC8vIGNhc2VkCisgICAgICAgICAgICAgICAgZG9UaXRsZT1mYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gZWxzZSBpZih0eXBlPT0wKSB7IC8vIHVuY2FzZWQgYnV0IG5vdCBpZ25vcmFibGUKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVsc2UgKHR5cGU8MCkgY2FzZS1pZ25vcmFibGU6IGNvbnRpbnVlCisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoaW5ncyBhZnRlciBhIGNhc2VkIGNoYXJhY3RlciB0b0xvd2VyOyB0aGluZ3MKKyAgICAgICAgLy8gYWZ0ZXIgYSB1bmNhc2VkLCBub24tY2FzZS1pZ25vcmFibGUgY2hhcmFjdGVyIHRvVGl0bGUuICBDYXNlLWlnbm9yYWJsZQorICAgICAgICAvLyBjaGFyYWN0ZXJzIGFyZSBjb3BpZWQgZGlyZWN0bHkgYW5kIGRvIG5vdCBjaGFuZ2UgdGhlIG1vZGUuCisKKyAgICAgICAgaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICBpdGVyLnNldEluZGV4KG9mZnNldHMuc3RhcnQpOworICAgICAgICBpdGVyLnNldExpbWl0KG9mZnNldHMubGltaXQpOworICAgICAgICBpdGVyLnNldENvbnRleHRMaW1pdHMob2Zmc2V0cy5jb250ZXh0U3RhcnQsIG9mZnNldHMuY29udGV4dExpbWl0KTsKKworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworCisgICAgICAgIC8vIFdhbGsgdGhyb3VnaCBvcmlnaW5hbCBzdHJpbmcKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBjYXNlIGNoYW5nZSwgbW9kaWZ5IGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gcmVwbGFjZWFibGUKKyAgICAgICAgaW50IGRlbHRhOworCisgICAgICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCkgeworICAgICAgICAgICAgdHlwZT1jc3AuZ2V0VHlwZU9ySWdub3JhYmxlKGMpOworICAgICAgICAgICAgaWYodHlwZT49MCkgeyAvLyBub3QgY2FzZS1pZ25vcmFibGUKKyAgICAgICAgICAgICAgICBpZihkb1RpdGxlKSB7CisgICAgICAgICAgICAgICAgICAgIGM9Y3NwLnRvRnVsbFRpdGxlKGMsIGl0ZXIsIHJlc3VsdCwgbG9jYWxlLCBsb2NDYWNoZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYz1jc3AudG9GdWxsTG93ZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZG9UaXRsZSA9IHR5cGU9PTA7IC8vIGRvVGl0bGU9aXNVbmNhc2VkCisKKyAgICAgICAgICAgICAgICBpZihpdGVyLmRpZFJlYWNoTGltaXQoKSAmJiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb24gdHJpZWQgdG8gbG9vayBiZXlvbmQgdGhlIGNvbnRleHQgbGltaXQKKyAgICAgICAgICAgICAgICAgICAgLy8gd2FpdCBmb3IgbW9yZSBpbnB1dAorICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnN0YXJ0PWl0ZXIuZ2V0Q2FzZU1hcENQU3RhcnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIGRlY29kZSB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgbWFwcGVkIHRvIGl0c2VsZiwgbm8gY2hhbmdlICovCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHJlcGxhY2UgYnkgdGhlIG1hcHBpbmcgc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcmVwbGFjZSBieSBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShVVEYxNi52YWx1ZU9mKGMpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZihkZWx0YSE9MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzExYmYzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKy8vaW1wb3J0IGphdmEudXRpbC4qOworCithYnN0cmFjdCBjbGFzcyBUcmFuc2Zvcm1UcmFuc2xpdGVyYXRvciB7CisgICAgLy8gQ3VycmVudGx5IHVudXNlZAorfQorCisvLy8qKgorLy8gKiBBbiBhYnN0cmFjdCBjbGFzcyBmb3IgdHJhbnNsaXRlcmF0b3JzIGJhc2VkIG9uIGEgdHJhbnNmb3JtCisvLyAqIG9wZXJhdGlvbi4gIFRvIGNyZWF0ZSBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaW1wbGVtZW50cyBhCisvLyAqIHRyYW5zZm9ybWF0aW9uLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiB0aGlzIGNsYXNzIGFuZCBpbXBsZW1lbnQgdGhlCisvLyAqIGFic3RyYWN0IDxjb2RlPnRyYW5zZm9ybSgpPC9jb2RlPiBhbmQgPGNvZGU+aGFzVHJhbnNmb3JtKCk8L2NvZGU+CisvLyAqIG1ldGhvZHMuCisvLyAqIEBhdXRob3IgQWxhbiBMaXUKKy8vICovCisvL2Fic3RyYWN0IGNsYXNzIFRyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworLy8KKy8vICAgIC8qKgorLy8gICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLiAgRm9yIHVzZSBieSBzdWJjbGFzc2VzLgorLy8gICAgICovCisvLyAgICBwcm90ZWN0ZWQgVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IoU3RyaW5nIGlkLCBVbmljb2RlRmlsdGVyIGYpIHsKKy8vICAgICAgICBzdXBlcihpZCwgZik7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKy8vICAgICAqLworLy8gICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisvLworLy8gICAgICAgIGludCBzdGFydDsKKy8vICAgICAgICBmb3IgKHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDsgc3RhcnQgPCBvZmZzZXRzLmxpbWl0OyArK3N0YXJ0KSB7CisvLyAgICAgICAgICAgIC8vIFNjYW4gZm9yIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdGhhdCBpcyAhPSBpdHMgdHJhbnNmb3JtLgorLy8gICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm9uZSwgd2UgZmFsbCBvdXQgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KKy8vICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoc3RhcnQpOworLy8gICAgICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKGMpKSB7CisvLyAgICAgICAgICAgICAgICAvLyBUaGVyZSBpcyBhIHRyYW5zZm9ybWluZyBjaGFyYWN0ZXIgYXQgc3RhcnQuICBCcmVhaworLy8gICAgICAgICAgICAgICAgLy8gdXAgdGhlIHJlbWFpbmluZyBzdHJpbmcsIGZyb20gc3RhcnQgdG8KKy8vICAgICAgICAgICAgICAgIC8vIG9mZnNldHMubGltaXQsIGludG8gc2VnbWVudHMgb2YgdW5maWx0ZXJlZCBhbmQKKy8vICAgICAgICAgICAgICAgIC8vIGZpbHRlcmVkIGNoYXJhY3RlcnMuICBPbmx5IHRyYW5zZm9ybSB0aGUgdW5maWx0ZXJlZAorLy8gICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4gIEFzIGFsd2F5cywgbWluaW1pemUgdGhlIG51bWJlciBvZgorLy8gICAgICAgICAgICAgICAgLy8gY2FsbHMgdG8gUmVwbGFjZWFibGUucmVwbGFjZSgpLgorLy8KKy8vICAgICAgICAgICAgICAgIGludCBsZW4gPSBvZmZzZXRzLmxpbWl0IC0gc3RhcnQ7CisvLyAgICAgICAgICAgICAgICAvLyBhc3NlcnQobGVuID49IDEpOworLy8gICAgICAgICAgICAgICAgCisvLyAgICAgICAgICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbbGVuXTsKKy8vICAgICAgICAgICAgICAgIHRleHQuZ2V0Q2hhcnMoc3RhcnQsIG9mZnNldHMubGltaXQsIGJ1ZiwgMCk7CisvLworLy8gICAgICAgICAgICAgICAgaW50IHNlZ1N0YXJ0ID0gMDsKKy8vICAgICAgICAgICAgICAgIGludCBzZWdMaW1pdDsKKy8vICAgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdCA9IGdldEZpbHRlcigpOworLy8KKy8vICAgICAgICAgICAgICAgIC8vIGxlbkRlbHRhIGlzIHRoZSBhY2N1bXVsYXRlZCBsZW5ndGggZGlmZmVyZW5jZSBmb3IKKy8vICAgICAgICAgICAgICAgIC8vIGFsbCB0cmFuc2Zvcm1lZCBzZWdtZW50cy4gIEl0IGlzIG5ldyBsZW5ndGggLSBvbGQKKy8vICAgICAgICAgICAgICAgIC8vIGxlbmd0aC4KKy8vICAgICAgICAgICAgICAgIGludCBsZW5EZWx0YSA9IDA7CisvLworLy8gICAgICAgICAgICAgICAgLy8gU2V0IHNlZ1N0YXJ0LCBzZWdMaW1pdCB0byB0aGUgdW5maWx0ZXJlZCBzZWdtZW50CisvLyAgICAgICAgICAgICAgICAvLyBzdGFydGluZyB3aXRoIHN0YXJ0LiAgSWYgdGhlIGZpbHRlciBpcyBudWxsLCB0aGVuCisvLyAgICAgICAgICAgICAgICAvLyBzZWdTdGFydC9MaW1pdCB3aWxsIGJlIHNldCB0byB0aGUgd2hvbGUgc3RyaW5nLAorLy8gICAgICAgICAgICAgICAgLy8gdGhhdCBpcywgMC9sZW4uCisvLyAgICAgICAgICAgICAgICBkbyB7CisvLyAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHNlZ0xpbWl0IHRvIHRoZSBmaXJzdCBmaWx0ZXJlZCBjaGFyIGF0IG9yCisvLyAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgc2VnU3RhcnQuCisvLyAgICAgICAgICAgICAgICAgICAgc2VnTGltaXQgPSBsZW47CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBzZWdMaW1pdCA9IHNlZ1N0YXJ0OworLy8gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VnTGltaXQgPCBsZW4gJiYgZmlsdC5jb250YWlucyhidWZbc2VnTGltaXRdKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2VnTGltaXQ7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICB9CisvLworLy8gICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgdW5maWx0ZXJlZCBjaGFycyBiZXR3ZWVuIHNlZ1N0YXJ0CisvLyAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHNlZ0xpbWl0LgorLy8gICAgICAgICAgICAgICAgICAgIGludCBzZWdMZW4gPSBzZWdMaW1pdCAtIHNlZ1N0YXJ0OworLy8gICAgICAgICAgICAgICAgICAgIGlmIChzZWdMZW4gIT0gMCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3U3RyID0gdHJhbnNmb3JtKAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZyhidWYsIHNlZ1N0YXJ0LCBzZWdMZW4pKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0LCBzdGFydCArIHNlZ0xlbiwgbmV3U3RyKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gbmV3U3RyLmxlbmd0aCgpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBsZW5EZWx0YSArPSBuZXdTdHIubGVuZ3RoKCkgLSBzZWdMZW47CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8KKy8vICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2VnU3RhcnQgdG8gdGhlIGZpcnN0IHVuZmlsdGVyZWQgY2hhciBhdCBvcgorLy8gICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIHNlZ0xpbWl0LgorLy8gICAgICAgICAgICAgICAgICAgIHNlZ1N0YXJ0ID0gc2VnTGltaXQ7CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VnU3RhcnQgPCBsZW4gJiYgIWZpbHQuY29udGFpbnMoYnVmW3NlZ1N0YXJ0XSkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2VnU3RhcnQ7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gc2VnU3RhcnQgLSBzZWdMaW1pdDsKKy8vCisvLyAgICAgICAgICAgICAgICB9IHdoaWxlIChzZWdTdGFydCA8IGxlbik7CisvLyAgICAgICAgICAgICAgICAKKy8vICAgICAgICAgICAgICAgIG9mZnNldHMubGltaXQgKz0gbGVuRGVsdGE7CisvLyAgICAgICAgICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBsZW5EZWx0YTsKKy8vICAgICAgICAgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworLy8gICAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIC8vIGFzc2VydChzdGFydCA9PSBvZmZzZXRzLmxpbWl0KTsKKy8vICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gc3RhcnQ7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB3aGV0aGVyIGEKKy8vICAgICAqIGdpdmVuIGNoYXJhY3RlciBoYXMgYSB0cmFuc2Zvcm0gdGhhdCBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgorLy8gICAgICogVGhpcyBpcyBhcHByb3hpbWF0ZWx5IGVxdWl2YWxlbnQgdG8gPGNvZGU+YyAhPQorLy8gICAgICogdHJhbnNmb3JtKFN0cmluZy52YWx1ZU9mKGMpKTwvY29kZT4sIHdoZXJlCisvLyAgICAgKiA8Y29kZT5TdHJpbmcudmFsdWVPZihjKTwvY29kZT4gcmV0dXJucyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorLy8gICAgICogc2luZ2xlIGNoYXJhY3RlciAobm90IGludGVnZXIpIDxjb2RlPmM8L2NvZGU+LiAgU3ViY2xhc3NlcyB0aGF0CisvLyAgICAgKiB0cmFuc2Zvcm0gYWxsIHRoZWlyIGlucHV0IGNhbiBzaW1wbHkgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+LgorLy8gICAgICovCisvLyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYm9vbGVhbiBoYXNUcmFuc2Zvcm0oaW50IGMpOworLy8KKy8vICAgIC8qKgorLy8gICAgICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCB0byB0cmFuc2Zvcm0gYSBzdHJpbmcuCisvLyAgICAgKi8KKy8vICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgdHJhbnNmb3JtKFN0cmluZyBzKTsKKy8vfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFkOWE3YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlLmphdmEKQEAgLTAsMCArMSw1NzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRpb24gcnVsZSB1c2VkIGJ5CisgKiA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4uCisgKiA8Y29kZT5UcmFuc2xpdGVyYXRpb25SdWxlPC9jb2RlPiBpcyBhbiBpbW11dGFibGUgb2JqZWN0LgorICoKKyAqIDxwPkEgcnVsZSBjb25zaXN0cyBvZiBhbiBpbnB1dCBwYXR0ZXJuIGFuZCBhbiBvdXRwdXQgc3RyaW5nLiAgV2hlbgorICogdGhlIGlucHV0IHBhdHRlcm4gaXMgbWF0Y2hlZCwgdGhlIG91dHB1dCBzdHJpbmcgaXMgZW1pdHRlZC4gIFRoZQorICogaW5wdXQgcGF0dGVybiBjb25zaXN0cyBvZiB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyB3aGljaCBhcmUgbWF0Y2hlZAorICogZXhhY3RseSAodGhlIGtleSkgYW5kIG9wdGlvbmFsIGNvbnRleHQuICBDb250ZXh0IG11c3QgbWF0Y2ggaWYgaXQKKyAqIGlzIHNwZWNpZmllZC4gIENvbnRleHQgbWF5IGJlIHNwZWNpZmllZCBiZWZvcmUgdGhlIGtleSwgYWZ0ZXIgdGhlCisgKiBrZXksIG9yIGJvdGguICBUaGUga2V5LCBwcmVjZWRpbmcgY29udGV4dCwgYW5kIGZvbGxvd2luZyBjb250ZXh0CisgKiBtYXkgY29udGFpbiB2YXJpYWJsZXMuICBWYXJpYWJsZXMgcmVwcmVzZW50IGEgc2V0IG9mIFVuaWNvZGUKKyAqIGNoYXJhY3RlcnMsIHN1Y2ggYXMgdGhlIGxldHRlcnMgPGk+YTwvaT4gdGhyb3VnaCA8aT56PC9pPi4KKyAqIFZhcmlhYmxlcyBhcmUgZGV0ZWN0ZWQgYnkgbG9va2luZyB1cCBlYWNoIGNoYXJhY3RlciBpbiBhIHN1cHBsaWVkCisgKiB2YXJpYWJsZSBsaXN0IHRvIHNlZSBpZiBpdCBoYXMgYmVlbiBzbyBkZWZpbmVkLgorICoKKyAqIDxwPkEgcnVsZSBtYXkgY29udGFpbiBzZWdtZW50cyBpbiBpdHMgaW5wdXQgc3RyaW5nIGFuZCBzZWdtZW50CisgKiByZWZlcmVuY2VzIGluIGl0cyBvdXRwdXQgc3RyaW5nLiAgQSBzZWdtZW50IGlzIGEgc3Vic3RyaW5nIG9mIHRoZQorICogaW5wdXQgcGF0dGVybiwgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCBhbmQgbGltaXQuICBUaGUgc2VnbWVudCBtYXkKKyAqIGJlIGluIHRoZSBwcmVjZWRpbmcgb3IgZm9sbG93aW5nIGNvbnRleHQuICBJdCBtYXkgbm90IHNwYW4gYQorICogY29udGV4dCBib3VuZGFyeS4gIEEgc2VnbWVudCByZWZlcmVuY2UgaXMgYSBzcGVjaWFsIGNoYXJhY3RlciBpbgorICogdGhlIG91dHB1dCBzdHJpbmcgdGhhdCBjYXVzZXMgYSBzZWdtZW50IG9mIHRoZSBpbnB1dCBzdHJpbmcgKG5vdAorICogdGhlIGlucHV0IHBhdHRlcm4pIHRvIGJlIGNvcGllZCB0byB0aGUgb3V0cHV0IHN0cmluZy4gIFRoZSByYW5nZSBvZgorICogc3BlY2lhbCBjaGFyYWN0ZXJzIHRoYXQgcmVwcmVzZW50IHNlZ21lbnQgcmVmZXJlbmNlcyBpcyBkZWZpbmVkIGJ5CisgKiBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhLgorICoKKyAqIDxwPkV4YW1wbGU6IFRoZSBydWxlICIoW2Etel0pIC4gKFswLTldKSA+ICQyIC4gJDEiIHdpbGwgY2hhbmdlIHRoZSBpbnB1dAorICogc3RyaW5nICJhYmMuMTIzIiB0byAiYWIxLmMyMyIuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBUcmFuc2xpdGVyYXRpb25SdWxlIHsKKworICAgIC8vIFRPRE8gRWxpbWluYXRlIHRoZSBwYXR0ZXJuIGFuZCBrZXlMZW5ndGggZGF0YSBtZW1iZXJzLiAgVGhleQorICAgIC8vIGFyZSB1c2VkIG9ubHkgYnkgbWFza3MoKSBhbmQgZ2V0SW5kZXhWYWx1ZSgpIHdoaWNoIGFyZSBjYWxsZWQKKyAgICAvLyBvbmx5IGR1cmluZyBidWlsZCB0aW1lLCBub3QgZHVyaW5nIHJ1bi10aW1lLiAgUGVyaGFwcyB0aGVzZQorICAgIC8vIG1ldGhvZHMgYW5kIHBhdHRlcm4va2V5TGVuZ3RoIGNhbiBiZSBpc29sYXRlZCBpbnRvIGEgc2VwYXJhdGUKKyAgICAvLyBvYmplY3QuCisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF0Y2ggdGhhdCBtdXN0IG9jY3VyIGJlZm9yZSB0aGUga2V5LCBvciBudWxsIGlmIHRoZXJlIGlzIG5vCisgICAgICogcHJlY2VkaW5nIGNvbnRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdNYXRjaGVyIGFudGVDb250ZXh0OworCisgICAgLyoqCisgICAgICogVGhlIG1hdGNoZXIgb2JqZWN0IGZvciB0aGUga2V5LiAgSWYgbnVsbCwgdGhlbiB0aGUga2V5IGlzIGVtcHR5LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nTWF0Y2hlciBrZXk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF0Y2ggdGhhdCBtdXN0IG9jY3VyIGFmdGVyIHRoZSBrZXksIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8KKyAgICAgKiBmb2xsb3dpbmcgY29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ01hdGNoZXIgcG9zdENvbnRleHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgb2JqZWN0IHRoYXQgcGVyZm9ybXMgdGhlIHJlcGxhY2VtZW50IGlmIHRoZSBrZXksCisgICAgICogYW50ZUNvbnRleHQsIGFuZCBwb3N0Q29udGV4dCBhcmUgbWF0Y2hlZC4gIE5ldmVyIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBVbmljb2RlUmVwbGFjZXIgb3V0cHV0OworCisgICAgLyoqCisgICAgICogVGhlIHN0cmluZyB0aGF0IG11c3QgYmUgbWF0Y2hlZCwgY29uc2lzdGluZyBvZiB0aGUgYW50ZUNvbnRleHQsIGtleSwKKyAgICAgKiBhbmQgcG9zdENvbnRleHQsIGNvbmNhdGVuYXRlZCB0b2dldGhlciwgaW4gdGhhdCBvcmRlci4gIFNvbWUgY29tcG9uZW50cworICAgICAqIG1heSBiZSBlbXB0eSAoemVybyBsZW5ndGgpLgorICAgICAqIEBzZWUgYW50ZUNvbnRleHRMZW5ndGgKKyAgICAgKiBAc2VlIGtleUxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBBbiBhcnJheSBvZiBtYXRjaGVyIG9iamVjdHMgY29ycmVzcG9uZGluZyB0byB0aGUgaW5wdXQgcGF0dGVybgorICAgICAqIHNlZ21lbnRzLiAgSWYgdGhlcmUgYXJlIG5vIHNlZ21lbnRzIHRoaXMgaXMgbnVsbC4gIE4uQi4gVGhpcyBpcworICAgICAqIGEgVW5pY29kZU1hdGNoZXIgZm9yIGdlbmVyYWxpdHksIGJ1dCBpbiBwcmFjdGljZSBpdCBpcyBhbHdheXMgYQorICAgICAqIFN0cmluZ01hdGNoZXIuICBJbiB0aGUgZnV0dXJlIHdlIG1heSBnZW5lcmFsaXplIHRoaXMsIGJ1dCBmb3IKKyAgICAgKiBub3cgd2Ugc29tZXRpbWVzIGNhc3QgZG93biB0byBTdHJpbmdNYXRjaGVyLgorICAgICAqLworICAgIFVuaWNvZGVNYXRjaGVyW10gc2VnbWVudHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgdGhhdCBtdXN0IG1hdGNoIGJlZm9yZSB0aGUga2V5LiAgSWYKKyAgICAgKiB6ZXJvLCB0aGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHJlcXVpcmVtZW50IGJlZm9yZSB0aGUga2V5LgorICAgICAqIFN1YnN0cmluZyBbMCxhbnRlQ29udGV4dExlbmd0aCkgb2YgcGF0dGVybiBpcyB0aGUgYW50ZUNvbnRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYW50ZUNvbnRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBrZXkuICBTdWJzdHJpbmcgW2FudGVDb250ZXh0TGVuZ3RoLAorICAgICAqIGFudGVDb250ZXh0TGVuZ3RoICsga2V5TGVuZ3RoKSBpcyB0aGUga2V5LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGtleUxlbmd0aDsKKworICAgIC8qKgorICAgICAqIE1pc2NlbGxhbmVvdXMgYXR0cmlidXRlcy4KKyAgICAgKi8KKyAgICBieXRlIGZsYWdzOworCisgICAgLyoqCisgICAgICogRmxhZyBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQU5DSE9SX1NUQVJUID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IEFOQ0hPUl9FTkQgICA9IDI7CisKKyAgICAvKioKKyAgICAgKiBBbiBhbGlhcyBwb2ludGVyIHRvIHRoZSBkYXRhIGZvciB0aGlzIHJ1bGUuICBUaGUgZGF0YSBwcm92aWRlcworICAgICAqIGxvb2t1cCBzZXJ2aWNlcyBmb3IgbWF0Y2hlcnMgYW5kIHNlZ21lbnRzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhOworCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAxLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgcnVsZSB3aXRoIHRoZSBnaXZlbiBpbnB1dCwgb3V0cHV0IHRleHQsIGFuZCBvdGhlcgorICAgICAqIGF0dHJpYnV0ZXMuICBBIGN1cnNvciBwb3NpdGlvbiBtYXkgYmUgc3BlY2lmaWVkIGZvciB0aGUgb3V0cHV0IHRleHQuCisgICAgICogQHBhcmFtIGlucHV0IGlucHV0IHN0cmluZywgaW5jbHVkaW5nIGtleSBhbmQgb3B0aW9uYWwgYW50ZSBhbmQKKyAgICAgKiBwb3N0IGNvbnRleHQKKyAgICAgKiBAcGFyYW0gYW50ZUNvbnRleHRQb3Mgb2Zmc2V0IGludG8gaW5wdXQgdG8gZW5kIG9mIGFudGUgY29udGV4dCwgb3IgLTEgaWYKKyAgICAgKiBub25lLiAgTXVzdCBiZSA8PSBpbnB1dC5sZW5ndGgoKSBpZiBub3QgLTEuCisgICAgICogQHBhcmFtIHBvc3RDb250ZXh0UG9zIG9mZnNldCBpbnRvIGlucHV0IHRvIHN0YXJ0IG9mIHBvc3QgY29udGV4dCwgb3IgLTEKKyAgICAgKiBpZiBub25lLiAgTXVzdCBiZSA8PSBpbnB1dC5sZW5ndGgoKSBpZiBub3QgLTEsIGFuZCBtdXN0IGJlID49CisgICAgICogYW50ZUNvbnRleHRQb3MuCisgICAgICogQHBhcmFtIG91dHB1dCBvdXRwdXQgc3RyaW5nCisgICAgICogQHBhcmFtIGN1cnNvclBvcyBvZmZzZXQgaW50byBvdXRwdXQgYXQgd2hpY2ggY3Vyc29yIGlzIGxvY2F0ZWQsIG9yIC0xIGlmCisgICAgICogbm9uZS4gIElmIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHRoZSBjdXJzb3IgaXMgcGxhY2VkIGFmdGVyIHRoZQorICAgICAqIDxjb2RlPm91dHB1dDwvY29kZT47IHRoYXQgaXMsIC0xIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8Y29kZT5vdXRwdXQubGVuZ3RoKCk8L2NvZGU+LiAgSWYgZ3JlYXRlciB0aGFuCisgICAgICogPGNvZGU+b3V0cHV0Lmxlbmd0aCgpPC9jb2RlPiB0aGVuIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICAgICogQHBhcmFtIGN1cnNvck9mZnNldCBhbiBvZmZzZXQgdG8gYmUgYWRkZWQgdG8gY3Vyc29yUG9zIHRvIHBvc2l0aW9uIHRoZQorICAgICAqIGN1cnNvciBlaXRoZXIgaW4gdGhlIGFudGUgY29udGV4dCwgaWYgPCAwLCBvciBpbiB0aGUgcG9zdCBjb250ZXh0LCBpZiA+CisgICAgICogMC4gIEZvciBleGFtcGxlLCB0aGUgcnVsZSAiYWJje2RlZn0gPiB8IEBAQCB4eXo7IiBjaGFuZ2VzICJkZWYiIHRvCisgICAgICogInh5eiIgYW5kIG1vdmVzIHRoZSBjdXJzb3IgdG8gYmVmb3JlICJhIi4gIEl0IHdvdWxkIGhhdmUgYSBjdXJzb3JPZmZzZXQKKyAgICAgKiBvZiAtMy4KKyAgICAgKiBAcGFyYW0gc2VncyBhcnJheSBvZiBVbmljb2RlTWF0Y2hlciBjb3JyZXNwb25kaW5nIHRvIGlucHV0IHBhdHRlcm4KKyAgICAgKiBzZWdtZW50cywgb3IgbnVsbCBpZiB0aGVyZSBhcmUgbm9uZQorICAgICAqIEBwYXJhbSBhbmNob3JTdGFydCB0cnVlIGlmIHRoZSB0aGUgcnVsZSBpcyBhbmNob3JlZCBvbiB0aGUgbGVmdCB0bworICAgICAqIHRoZSBjb250ZXh0IHN0YXJ0CisgICAgICogQHBhcmFtIGFuY2hvckVuZCB0cnVlIGlmIHRoZSBydWxlIGlzIGFuY2hvcmVkIG9uIHRoZSByaWdodCB0byB0aGUKKyAgICAgKiBjb250ZXh0IGxpbWl0CisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGUoU3RyaW5nIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbnRlQ29udGV4dFBvcywgaW50IHBvc3RDb250ZXh0UG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnNvclBvcywgaW50IGN1cnNvck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlcltdIHNlZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbmNob3JTdGFydCwgYm9vbGVhbiBhbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIGRhdGEgPSB0aGVEYXRhOworCisgICAgICAgIC8vIERvIHJhbmdlIGNoZWNrcyBvbmx5IHdoZW4gd2FycmFudGVkIHRvIHNhdmUgdGltZQorICAgICAgICBpZiAoYW50ZUNvbnRleHRQb3MgPCAwKSB7CisgICAgICAgICAgICBhbnRlQ29udGV4dExlbmd0aCA9IDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoYW50ZUNvbnRleHRQb3MgPiBpbnB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgYW50ZSBjb250ZXh0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhbnRlQ29udGV4dExlbmd0aCA9IGFudGVDb250ZXh0UG9zOworICAgICAgICB9CisgICAgICAgIGlmIChwb3N0Q29udGV4dFBvcyA8IDApIHsKKyAgICAgICAgICAgIGtleUxlbmd0aCA9IGlucHV0Lmxlbmd0aCgpIC0gYW50ZUNvbnRleHRMZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocG9zdENvbnRleHRQb3MgPCBhbnRlQ29udGV4dExlbmd0aCB8fAorICAgICAgICAgICAgICAgIHBvc3RDb250ZXh0UG9zID4gaW5wdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHBvc3QgY29udGV4dCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAga2V5TGVuZ3RoID0gcG9zdENvbnRleHRQb3MgLSBhbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY3Vyc29yUG9zIDwgMCkgeworICAgICAgICAgICAgY3Vyc29yUG9zID0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICB9IGVsc2UgaWYgKGN1cnNvclBvcyA+IG91dHB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjdXJzb3IgcG9zaXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGRvbid0IHZhbGlkYXRlIHRoZSBzZWdtZW50cyBhcnJheS4gIFRoZSBjYWxsZXIgbXVzdAorICAgICAgICAvLyBndWFyYW50ZWUgdGhhdCB0aGUgc2VnbWVudHMgYXJlIHdlbGwtZm9ybWVkICh0aGF0IGlzLCB0aGF0CisgICAgICAgIC8vIGFsbCAkbiByZWZlcmVuY2VzIGluIHRoZSBvdXRwdXQgcmVmZXIgdG8gaW5kaWNlcyBvZiB0aGlzCisgICAgICAgIC8vIGFycmF5LCBhbmQgdGhhdCBubyBhcnJheSBlbGVtZW50cyBhcmUgbnVsbCkuCisgICAgICAgIHRoaXMuc2VnbWVudHMgPSBzZWdzOworCisgICAgICAgIHBhdHRlcm4gPSBpbnB1dDsKKyAgICAgICAgZmxhZ3MgPSAwOworICAgICAgICBpZiAoYW5jaG9yU3RhcnQpIHsKKyAgICAgICAgICAgIGZsYWdzIHw9IEFOQ0hPUl9TVEFSVDsKKyAgICAgICAgfQorICAgICAgICBpZiAoYW5jaG9yRW5kKSB7CisgICAgICAgICAgICBmbGFncyB8PSBBTkNIT1JfRU5EOworICAgICAgICB9CisKKyAgICAgICAgYW50ZUNvbnRleHQgPSBudWxsOworICAgICAgICBpZiAoYW50ZUNvbnRleHRMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBhbnRlQ29udGV4dCA9IG5ldyBTdHJpbmdNYXRjaGVyKHBhdHRlcm4uc3Vic3RyaW5nKDAsIGFudGVDb250ZXh0TGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgZGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBrZXkgPSBudWxsOworICAgICAgICBpZiAoa2V5TGVuZ3RoID4gMCkgeworICAgICAgICAgICAga2V5ID0gbmV3IFN0cmluZ01hdGNoZXIocGF0dGVybi5zdWJzdHJpbmcoYW50ZUNvbnRleHRMZW5ndGgsIGFudGVDb250ZXh0TGVuZ3RoICsga2V5TGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGRhdGEpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHBvc3RDb250ZXh0TGVuZ3RoID0gcGF0dGVybi5sZW5ndGgoKSAtIGtleUxlbmd0aCAtIGFudGVDb250ZXh0TGVuZ3RoOworICAgICAgICBwb3N0Q29udGV4dCA9IG51bGw7CisgICAgICAgIGlmIChwb3N0Q29udGV4dExlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHBvc3RDb250ZXh0ID0gbmV3IFN0cmluZ01hdGNoZXIocGF0dGVybi5zdWJzdHJpbmcoYW50ZUNvbnRleHRMZW5ndGggKyBrZXlMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBkYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMub3V0cHV0ID0gbmV3IFN0cmluZ1JlcGxhY2VyKG91dHB1dCwgY3Vyc29yUG9zICsgY3Vyc29yT2Zmc2V0LCBkYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHByZWNlZGluZyBjb250ZXh0IGxlbmd0aC4gIFRoaXMgbWV0aG9kIGlzIG5lZWRlZCB0bworICAgICAqIHN1cHBvcnQgdGhlIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBtZXRob2QKKyAgICAgKiA8Y29kZT5nZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFudGVDb250ZXh0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gYW50ZUNvbnRleHRMZW5ndGggKyAoKChmbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgPyAxIDogMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgbWV0aG9kLiAgUmV0dXJucyA4LWJpdCBpbmRleCB2YWx1ZSBmb3IgdGhpcyBydWxlLgorICAgICAqIFRoaXMgaXMgdGhlIGxvdyBieXRlIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGtleSwKKyAgICAgKiB1bmxlc3MgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUga2V5IGlzIGEgc2V0LiAgSWYgaXQncyBhCisgICAgICogc2V0LCBvciBvdGhlcndpc2UgY2FuIG1hdGNoIG11bHRpcGxlIGtleXMsIHRoZSBpbmRleCB2YWx1ZSBpcyAtMS4KKyAgICAgKi8KKyAgICBmaW5hbCBpbnQgZ2V0SW5kZXhWYWx1ZSgpIHsKKyAgICAgICAgaWYgKGFudGVDb250ZXh0TGVuZ3RoID09IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIEEgcGF0dGVybiB3aXRoIGp1c3QgYW50ZSBjb250ZXh0IHtzdWNoIGFzIGZvbyk+YmFyfSBjYW4KKyAgICAgICAgICAgIC8vIG1hdGNoIGFueSBrZXkuCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgYW50ZUNvbnRleHRMZW5ndGgpOworICAgICAgICByZXR1cm4gZGF0YS5sb29rdXBNYXRjaGVyKGMpID09IG51bGwgPyAoYyAmIDB4RkYpIDogLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgbWV0aG9kLiAgUmV0dXJucyB0cnVlIGlmIHRoaXMgcnVsZSBtYXRjaGVzIHRoZSBnaXZlbgorICAgICAqIGluZGV4IHZhbHVlLiAgVGhlIGluZGV4IHZhbHVlIGlzIGFuIDgtYml0IGludGVnZXIsIDAuLjI1NSwKKyAgICAgKiByZXByZXNlbnRpbmcgdGhlIGxvdyBieXRlIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGtleS4KKyAgICAgKiBJdCBtYXRjaGVzIHRoaXMgcnVsZSBpZiBpdCBtYXRjaGVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlCisgICAgICoga2V5LCBvciBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBrZXkgaXMgYSBzZXQsIGFuZCB0aGUgc2V0CisgICAgICogY29udGFpbnMgYW55IGNoYXJhY3RlciB3aXRoIGEgbG93IGJ5dGUgZXF1YWwgdG8gdGhlIGluZGV4CisgICAgICogdmFsdWUuICBJZiB0aGUgcnVsZSBjb250YWlucyBvbmx5IGFudGUgY29udGV4dCwgYXMgaW4gZm9vKT5iYXIsCisgICAgICogdGhlbiBpdCB3aWxsIG1hdGNoIGFueSBrZXkuCisgICAgICovCisgICAgZmluYWwgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUga2V5LCBvciBpZiB0aGVyZSBpcyBub25lLCB0byB0aGUgcG9zdENvbnRleHQuCisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5laXRoZXIgdGhlbiB3ZSBtYXRjaCBhbnkga2V5OyByZXR1cm4gdHJ1ZS4KKyAgICAgICAgVW5pY29kZU1hdGNoZXIgbSA9IChrZXkgIT0gbnVsbCkgPyBrZXkgOiBwb3N0Q29udGV4dDsKKyAgICAgICAgcmV0dXJuIChtICE9IG51bGwpID8gbS5tYXRjaGVzSW5kZXhWYWx1ZSh2KSA6IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBydWxlIG1hc2tzIGFub3RoZXIgcnVsZS4gIElmIHIxIG1hc2tzIHIyIHRoZW4KKyAgICAgKiByMSBtYXRjaGVzIGFueSBpbnB1dCBzdHJpbmcgdGhhdCByMiBtYXRjaGVzLiAgSWYgcjEgbWFza3MgcjIgYW5kIHIyIG1hc2tzCisgICAgICogcjEgdGhlbiByMSA9PSByMi4gIEV4YW1wbGVzOiAiYT54IiBtYXNrcyAiYWI+eSIuICAiYT54IiBtYXNrcyAiYVtiXT55Ii4KKyAgICAgKiAiW2NdYT54IiBtYXNrcyAiW2RjXWE+eSIuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbWFza3MoVHJhbnNsaXRlcmF0aW9uUnVsZSByMikgeworICAgICAgICAvKiBSdWxlIHIxIG1hc2tzIHJ1bGUgcjIgaWYgdGhlIHN0cmluZyBmb3JtZWQgb2YgdGhlCisgICAgICAgICAqIGFudGVjb250ZXh0LCBrZXksIGFuZCBwb3N0Y29udGV4dCBvdmVybGFwcyBpbiB0aGUgZm9sbG93aW5nCisgICAgICAgICAqIHdheToKKyAgICAgICAgICoKKyAgICAgICAgICogcjE6ICAgICAgYWFra2twcHBwCisgICAgICAgICAqIHIyOiAgICAgYWFha2tra2twcHBwCisgICAgICAgICAqICAgICAgICAgICAgXgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc3RyaW5ncyBtdXN0IGJlIGFsaWduZWQgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUKKyAgICAgICAgICoga2V5LiAgVGhlIGxlbmd0aCBvZiByMSB0byB0aGUgbGVmdCBvZiB0aGUgYWxpZ25tZW50IHBvaW50CisgICAgICAgICAqIG11c3QgYmUgPD0gdGhlIGxlbmd0aCBvZiByMiB0byB0aGUgbGVmdDsgZGl0dG8gZm9yIHRoZQorICAgICAgICAgKiByaWdodC4gIFRoZSBjaGFyYWN0ZXJzIG9mIHIxIG11c3QgZXF1YWwgKG9yIGJlIGEgc3VwZXJzZXQKKyAgICAgICAgICogb2YpIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgb2YgcjIuICBUaGUgc3VwZXJzZXQKKyAgICAgICAgICogb3BlcmF0aW9uIHNob3VsZCBiZSBwZXJmb3JtZWQgdG8gY2hlY2sgZm9yIFVuaWNvZGVTZXQKKyAgICAgICAgICogbWFza2luZy4KKyAgICAgICAgICoKKyAgICAgICAgICogQW5jaG9yczogIFR3byBwYXR0ZXJucyB0aGF0IGRpZmZlciBvbmx5IGluIGFuY2hvcnMgb25seQorICAgICAgICAgKiBtYXNrIG9uZSBhbm90aGVyIGlmIHRoZXkgYXJlIGV4YWN0bHkgZXF1YWwsIGFuZCByMiBoYXMKKyAgICAgICAgICogYWxsIHRoZSBhbmNob3JzIHIxIGhhcyAob3B0aW9uYWxseSwgcGx1cyBzb21lKS4gIEhlcmUgWQorICAgICAgICAgKiBtZWFucyB0aGUgcm93IG1hc2tzIHRoZSBjb2x1bW4sIE4gbWVhbnMgaXQgZG9lc24ndC4KKyAgICAgICAgICoKKyAgICAgICAgICogICAgICAgICBhYiAgIF5hYiAgICBhYiQgIF5hYiQKKyAgICAgICAgICogICBhYiAgICBZICAgICBZICAgICBZICAgICBZCisgICAgICAgICAqICBeYWIgICAgTiAgICAgWSAgICAgTiAgICAgWQorICAgICAgICAgKiAgIGFiJCAgIE4gICAgIE4gICAgIFkgICAgIFkKKyAgICAgICAgICogIF5hYiQgICBOICAgICBOICAgICBOICAgICBZCisgICAgICAgICAqCisgICAgICAgICAqIFBvc3QgY29udGV4dDoge2F9YiBtYXNrcyBhYiwgYnV0IG5vdCB2aWNlIHZlcnNhLCBzaW5jZSB7YX1iCisgICAgICAgICAqIG1hdGNoZXMgZXZlcnl0aGluZyBhYiBtYXRjaGVzLCBhbmQge2F9YiBtYXRjaGVzIHt8YXx9YiBidXQgYWIKKyAgICAgICAgICogZG9lcyBub3QuICBQcmUgY29udGV4dCBpcyBkaWZmZXJlbnQgKGF7Yn0gZG9lcyBub3QgYWxpZ24gd2l0aAorICAgICAgICAgKiBhYikuCisgICAgICAgICAqLworCisgICAgICAgIC8qIExJTUlUQVRJT04gb2YgdGhlIGN1cnJlbnQgbWFzayBhbGdvcml0aG06IFNvbWUgcnVsZQorICAgICAgICAgKiBtYXNraW5ncyBhcmUgY3VycmVudGx5IG5vdCBkZXRlY3RlZC4gIEZvciBleGFtcGxlLAorICAgICAgICAgKiAie0x1fV1hPngiIG1hc2tzICJBXWE+eSIuICBUaGlzIGNhbiBiZSBhZGRlZCBsYXRlci4gVE9ETworICAgICAgICAgKi8KKworICAgICAgICBpbnQgbGVuID0gcGF0dGVybi5sZW5ndGgoKTsKKyAgICAgICAgaW50IGxlZnQgPSBhbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgaW50IGxlZnQyID0gcjIuYW50ZUNvbnRleHRMZW5ndGg7CisgICAgICAgIGludCByaWdodCA9IHBhdHRlcm4ubGVuZ3RoKCkgLSBsZWZ0OworICAgICAgICBpbnQgcmlnaHQyID0gcjIucGF0dGVybi5sZW5ndGgoKSAtIGxlZnQyOworCisgICAgICAgIC8vIFRPRE8gQ2xlYW4gdGhpcyB1cCAtLSBzb21lIGxvZ2ljIG1pZ2h0IGJlIGNvbWJpbmFibGUgd2l0aCB0aGUKKyAgICAgICAgLy8gbmV4dCBzdGF0ZW1lbnQuCisKKyAgICAgICAgLy8gVGVzdCBmb3IgYW5jaG9yIG1hc2tpbmcKKyAgICAgICAgaWYgKGxlZnQgPT0gbGVmdDIgJiYgcmlnaHQgPT0gcmlnaHQyICYmCisgICAgICAgICAgICBrZXlMZW5ndGggPD0gcjIua2V5TGVuZ3RoICYmCisgICAgICAgICAgICByMi5wYXR0ZXJuLnJlZ2lvbk1hdGNoZXMoMCwgcGF0dGVybiwgMCwgbGVuKSkgeworICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBib29sZWFuIGxvZ2ljIGltcGxlbWVudHMgdGhlIHRhYmxlIGFib3ZlCisgICAgICAgICAgICByZXR1cm4gKGZsYWdzID09IHIyLmZsYWdzKSB8fAorICAgICAgICAgICAgICAgICghKChmbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgJiYgISgoZmxhZ3MgJiBBTkNIT1JfRU5EKSAhPSAwKSkgfHwKKyAgICAgICAgICAgICAgICAoKChyMi5mbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgJiYgKChyMi5mbGFncyAmIEFOQ0hPUl9FTkQpICE9IDApKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBsZWZ0IDw9IGxlZnQyICYmCisgICAgICAgICAgICAocmlnaHQgPCByaWdodDIgfHwKKyAgICAgICAgICAgICAocmlnaHQgPT0gcmlnaHQyICYmIGtleUxlbmd0aCA8PSByMi5rZXlMZW5ndGgpKSAmJgorICAgICAgICAgICAgcjIucGF0dGVybi5yZWdpb25NYXRjaGVzKGxlZnQyIC0gbGVmdCwgcGF0dGVybiwgMCwgbGVuKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IHBvc0JlZm9yZShSZXBsYWNlYWJsZSBzdHIsIGludCBwb3MpIHsKKyAgICAgICAgcmV0dXJuIChwb3MgPiAwKSA/CisgICAgICAgICAgICBwb3MgLSBVVEYxNi5nZXRDaGFyQ291bnQoc3RyLmNoYXIzMkF0KHBvcy0xKSkgOgorICAgICAgICAgICAgcG9zIC0gMTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IHBvc0FmdGVyKFJlcGxhY2VhYmxlIHN0ciwgaW50IHBvcykgeworICAgICAgICByZXR1cm4gKHBvcyA+PSAwICYmIHBvcyA8IHN0ci5sZW5ndGgoKSkgPworICAgICAgICAgICAgcG9zICsgVVRGMTYuZ2V0Q2hhckNvdW50KHN0ci5jaGFyMzJBdChwb3MpKSA6CisgICAgICAgICAgICBwb3MgKyAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgYSBtYXRjaCBhbmQgcmVwbGFjZW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiAgUmV0dXJuCisgICAgICogdGhlIGRlZ3JlZSBvZiBtYXRjaCBiZXR3ZWVuIHRoaXMgcnVsZSBhbmQgdGhlIGdpdmVuIHRleHQuICBUaGUKKyAgICAgKiBkZWdyZWUgb2YgbWF0Y2ggbWF5IGJlIG1pc21hdGNoLCBhIHBhcnRpYWwgbWF0Y2gsIG9yIGEgZnVsbAorICAgICAqIG1hdGNoLiAgQSBtaXNtYXRjaCBtZWFucyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIG9mIHRoZSB0ZXh0CisgICAgICogZG9lcyBub3QgbWF0Y2ggdGhlIGNvbnRleHQgb3Iga2V5LiAgQSBwYXJ0aWFsIG1hdGNoIG1lYW5zIHNvbWUKKyAgICAgKiBjb250ZXh0IGFuZCBrZXkgY2hhcmFjdGVycyBtYXRjaCwgYnV0IHRoZSB0ZXh0IGlzIG5vdCBsb25nCisgICAgICogZW5vdWdoIHRvIG1hdGNoIGFsbCBvZiB0aGVtLiAgQSBmdWxsIG1hdGNoIG1lYW5zIGFsbCBjb250ZXh0CisgICAgICogYW5kIGtleSBjaGFyYWN0ZXJzIG1hdGNoLgorICAgICAqCisgICAgICogSWYgYSBmdWxsIG1hdGNoIGlzIG9idGFpbmVkLCBwZXJmb3JtIGEgcmVwbGFjZW1lbnQsIHVwZGF0ZSBwb3MsCisgICAgICogYW5kIHJldHVybiBVX01BVENILiAgT3RoZXJ3aXNlIGJvdGggdGV4dCBhbmQgcG9zIGFyZSB1bmNoYW5nZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dAorICAgICAqIEBwYXJhbSBwb3MgdGhlIHBvc2l0aW9uIGluZGljZXMKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGVzdCBmb3IgcGFydGlhbCBtYXRjaGVzIHRoYXQgbWF5CisgICAgICogYmUgY29tcGxldGVkIGJ5IGFkZGl0aW9uYWwgdGV4dCBpbnNlcnRlZCBhdCBwb3MubGltaXQuCisgICAgICogQHJldHVybiBvbmUgb2YgPGNvZGU+VV9NSVNNQVRDSDwvY29kZT4sCisgICAgICogPGNvZGU+VV9QQVJUSUFMX01BVENIPC9jb2RlPiwgb3IgPGNvZGU+VV9NQVRDSDwvY29kZT4uICBJZgorICAgICAqIGluY3JlbWVudGFsIGlzIEZBTFNFIHRoZW4gVV9QQVJUSUFMX01BVENIIHdpbGwgbm90IGJlIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hBbmRSZXBsYWNlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLy8gTWF0Y2hpbmcgYW5kIHJlcGxhY2luZyBhcmUgZG9uZSBpbiBvbmUgbWV0aG9kIGJlY2F1c2UgdGhlCisgICAgICAgIC8vIHJlcGxhY2VtZW50IG9wZXJhdGlvbiBuZWVkcyBpbmZvcm1hdGlvbiBvYnRhaW5lZCBkdXJpbmcgdGhlCisgICAgICAgIC8vIG1hdGNoLiAgQW5vdGhlciB3YXkgdG8gZG8gdGhpcyBpcyB0byBoYXZlIHRoZSBtYXRjaCBtZXRob2QKKyAgICAgICAgLy8gY3JlYXRlIGEgbWF0Y2ggcmVzdWx0IHN0cnVjdCB3aXRoIHJlbGV2YW50IG9mZnNldHMsIGFuZCB0byBwYXNzCisgICAgICAgIC8vIHRoaXMgaW50byB0aGUgcmVwbGFjZSBtZXRob2QuCisKKyAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNQVRDSCA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAgICAvLyBSZXNldCBzZWdtZW50IG1hdGNoIGRhdGEKKyAgICAgICAgaWYgKHNlZ21lbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZWdtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICgoU3RyaW5nTWF0Y2hlcikgc2VnbWVudHNbaV0pLnJlc2V0TWF0Y2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBrZXlMaW1pdDsKKyAgICAgICAgaW50W10gaW50UmVmID0gbmV3IGludFsxXTsKKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQW50ZSBDb250ZXh0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8vIEEgbWlzbWF0Y2ggaW4gdGhlIGFudGUgY29udGV4dCwgb3Igd2l0aCB0aGUgc3RhcnQgYW5jaG9yLAorICAgICAgICAvLyBpcyBhbiBvdXRyaWdodCBVX01JU01BVENIIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSBhcmUKKyAgICAgICAgLy8gaW5jcmVtZW50YWwgb3Igbm90LgorICAgICAgICBpbnQgb1RleHQ7IC8vIG9mZnNldCBpbnRvICd0ZXh0JworICAgICAgICBpbnQgbWluT1RleHQ7CisKKyAgICAgICAgLy8gTm90ZSAoMSk6IFdlIHByb2Nlc3MgdGV4dCBpbiAxNi1iaXQgY29kZSB1bml0cywgcmF0aGVyIHRoYW4KKyAgICAgICAgLy8gMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyB3b3JrcyBiZWNhdXNlIHN0YW5kLWlucyBhcmUKKyAgICAgICAgLy8gYWx3YXlzIGluIHRoZSBCTVAgYW5kIGJlY2F1c2Ugd2UgYXJlIGRvaW5nIGEgbGl0ZXJhbCBtYXRjaAorICAgICAgICAvLyBvcGVyYXRpb24sIHdoaWNoIGNhbiBiZSBkb25lIDE2LWJpdHMgYXQgYSB0aW1lLgorCisgICAgICAgIGludCBhbnRlTGltaXQgPSBwb3NCZWZvcmUodGV4dCwgcG9zLmNvbnRleHRTdGFydCk7CisKKyAgICAgICAgaW50IG1hdGNoOworCisgICAgICAgIC8vIFN0YXJ0IHJldmVyc2UgbWF0Y2ggYXQgY2hhciBiZWZvcmUgcG9zLnN0YXJ0CisgICAgICAgIGludFJlZlswXSA9IHBvc0JlZm9yZSh0ZXh0LCBwb3Muc3RhcnQpOworCisgICAgICAgIGlmIChhbnRlQ29udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBtYXRjaCA9IGFudGVDb250ZXh0Lm1hdGNoZXModGV4dCwgaW50UmVmLCBhbnRlTGltaXQsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChtYXRjaCAhPSBVbmljb2RlTWF0Y2hlci5VX01BVENIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfTUlTTUFUQ0g7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBvVGV4dCA9IGludFJlZlswXTsKKworICAgICAgICBtaW5PVGV4dCA9IHBvc0FmdGVyKHRleHQsIG9UZXh0KTsKKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RhcnQgQW5jaG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGlmICgoKGZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSAmJiBvVGV4dCAhPSBhbnRlTGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBVbmljb2RlTWF0Y2hlci5VX01JU01BVENIOworICAgICAgICB9CisKKyAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0gS2V5IGFuZCBQb3N0IENvbnRleHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBpbnRSZWZbMF0gPSBwb3Muc3RhcnQ7CisKKyAgICAgICAgaWYgKGtleSAhPSBudWxsKSB7CisgICAgICAgICAgICBtYXRjaCA9IGtleS5tYXRjaGVzKHRleHQsIGludFJlZiwgcG9zLmxpbWl0LCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICBpZiAobWF0Y2ggIT0gVW5pY29kZU1hdGNoZXIuVV9NQVRDSCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGtleUxpbWl0ID0gaW50UmVmWzBdOworCisgICAgICAgIGlmIChwb3N0Q29udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwgJiYga2V5TGltaXQgPT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIGtleSBtYXRjaGVzIGp1c3QgYmVmb3JlIHBvcy5saW1pdCwgYW5kIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgLy8gYSBwb3N0Q29udGV4dC4gIFNpbmNlIHdlIGFyZSBpbiBpbmNyZW1lbnRhbCBtb2RlLAorICAgICAgICAgICAgICAgIC8vIHdlIG11c3QgYXNzdW1lIG1vcmUgY2hhcmFjdGVycyBtYXkgYmUgaW5zZXJ0ZWQgYXQKKyAgICAgICAgICAgICAgICAvLyBwb3MubGltaXQgLS0gdGhpcyBpcyBhIHBhcnRpYWwgbWF0Y2guCisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWF0Y2ggPSBwb3N0Q29udGV4dC5tYXRjaGVzKHRleHQsIGludFJlZiwgcG9zLmNvbnRleHRMaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgaWYgKG1hdGNoICE9IFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBvVGV4dCA9IGludFJlZlswXTsKKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0b3AgQW5jaG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGlmICgoKGZsYWdzICYgQU5DSE9SX0VORCkpICE9IDApIHsKKyAgICAgICAgICAgIGlmIChvVGV4dCAhPSBwb3MuY29udGV4dExpbWl0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfTUlTTUFUQ0g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9QQVJUSUFMX01BVENIOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IFJFUExBQ0UgPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAgICAvLyBXZSBoYXZlIGEgZnVsbCBtYXRjaC4gIFRoZSBrZXkgaXMgYmV0d2VlbiBwb3Muc3RhcnQgYW5kCisgICAgICAgIC8vIGtleUxpbWl0LgorCisgICAgICAgIGludCBuZXdMZW5ndGggPSBvdXRwdXQucmVwbGFjZSh0ZXh0LCBwb3Muc3RhcnQsIGtleUxpbWl0LCBpbnRSZWYpOworICAgICAgICBpbnQgbGVuRGVsdGEgPSBuZXdMZW5ndGggLSAoa2V5TGltaXQgLSBwb3Muc3RhcnQpOworICAgICAgICBpbnQgbmV3U3RhcnQgPSBpbnRSZWZbMF07CisKKyAgICAgICAgb1RleHQgKz0gbGVuRGVsdGE7CisgICAgICAgIHBvcy5saW1pdCArPSBsZW5EZWx0YTsKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCArPSBsZW5EZWx0YTsKKyAgICAgICAgLy8gUmVzdHJpY3QgbmV3IHZhbHVlIG9mIHN0YXJ0IHRvIFttaW5PVGV4dCwgbWluKG9UZXh0LCBwb3MubGltaXQpXS4KKyAgICAgICAgcG9zLnN0YXJ0ID0gTWF0aC5tYXgobWluT1RleHQsIE1hdGgubWluKE1hdGgubWluKG9UZXh0LCBwb3MubGltaXQpLCBuZXdTdGFydCkpOworICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9NQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBzb3VyY2Ugc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGlzIHJ1bGUuICBBcHBlbmQgaXQgdG8gdGhlCisgICAgICogZ2l2ZW4gc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9SdWxlKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAvLyBpbnQgaTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBBY2N1bXVsYXRlIHNwZWNpYWwgY2hhcmFjdGVycyAoYW5kIG5vbi1zcGVjaWFscyBmb2xsb3dpbmcgdGhlbSkKKyAgICAgICAgLy8gaW50byBxdW90ZUJ1Zi4gIEFwcGVuZCBxdW90ZUJ1Ziwgd2l0aGluIHNpbmdsZSBxdW90ZXMsIHdoZW4KKyAgICAgICAgLy8gYSBub24tcXVvdGVkIGVsZW1lbnQgbXVzdCBiZSBpbnNlcnRlZC4KKyAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIERvIG5vdCBlbWl0IHRoZSBicmFjZXMgJ3snICd9JyBhcm91bmQgdGhlIHBhdHRlcm4gaWYgdGhlcmUKKyAgICAgICAgLy8gaXMgbmVpdGhlciBhbnRlQ29udGV4dCBub3IgcG9zdENvbnRleHQuCisgICAgICAgIGJvb2xlYW4gZW1pdEJyYWNlcyA9CisgICAgICAgICAgICAoYW50ZUNvbnRleHQgIT0gbnVsbCkgfHwgKHBvc3RDb250ZXh0ICE9IG51bGwpOworCisgICAgICAgIC8vIEVtaXQgc3RhcnQgYW5jaG9yCisgICAgICAgIGlmICgoZmxhZ3MgJiBBTkNIT1JfU1RBUlQpICE9IDApIHsKKyAgICAgICAgICAgIHJ1bGUuYXBwZW5kKCdeJyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBFbWl0IHRoZSBpbnB1dCBwYXR0ZXJuCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIGFudGVDb250ZXh0LCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIGlmIChlbWl0QnJhY2VzKSB7CisgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAneycsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIH0KKworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBrZXksIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgaWYgKGVtaXRCcmFjZXMpIHsKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd9JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIHBvc3RDb250ZXh0LCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIC8vIEVtaXQgZW5kIGFuY2hvcgorICAgICAgICBpZiAoKGZsYWdzICYgQU5DSE9SX0VORCkgIT0gMCkgeworICAgICAgICAgICAgcnVsZS5hcHBlbmQoJyQnKTsKKyAgICAgICAgfQorCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICIgPiAiLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIC8vIEVtaXQgdGhlIG91dHB1dCBwYXR0ZXJuCisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgb3V0cHV0LnRvUmVwbGFjZXJQYXR0ZXJuKGVzY2FwZVVucHJpbnRhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJzsnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIHJldHVybiBydWxlLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICd7JyArIHRvUnVsZSh0cnVlKSArICd9JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1vZGlmaWVkIGJ5IHRoaXMgcnVsZQorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKi8KKyAgICB2b2lkIGFkZFNvdXJjZVNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIGludCBsaW1pdCA9IGFudGVDb250ZXh0TGVuZ3RoICsga2V5TGVuZ3RoOworICAgICAgICBmb3IgKGludCBpPWFudGVDb250ZXh0TGVuZ3RoOyBpPGxpbWl0OyApIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdChwYXR0ZXJuLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG1hdGNoZXIgPSBkYXRhLmxvb2t1cE1hdGNoZXIoY2gpOworICAgICAgICAgICAgaWYgKG1hdGNoZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRvVW5pb25Uby5hZGQoY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtYXRjaGVyLmFkZE1hdGNoU2V0VG8odG9VbmlvblRvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZW1pdHRlZCBieSB0aGlzIHJ1bGUKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICovCisgICAgdm9pZCBhZGRUYXJnZXRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBvdXRwdXQuYWRkUmVwbGFjZW1lbnRTZXRUbyh0b1VuaW9uVG8pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdGlvblJ1bGVTZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdGlvblJ1bGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNDgzZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZVNldC5qYXZhCkBAIC0wLDAgKzEsMjU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5RXh0ZW5zaW9uczsKKworLyoqCisgKiBBIHNldCBvZiBydWxlcyBmb3IgYSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4uICBUaGlzIHNldCBlbmNvZGVzCisgKiB0aGUgdHJhbnNsaXRlcmF0aW9uIGluIG9uZSBkaXJlY3Rpb24gZnJvbSBvbmUgc2V0IG9mIGNoYXJhY3RlcnMgb3Igc2hvcnQKKyAqIHN0cmluZ3MgdG8gYW5vdGhlci4gIEEgPGNvZGU+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2NvZGU+IGNvbnNpc3RzIG9mIHVwIHRvCisgKiB0d28gc3VjaCBzZXRzLCBvbmUgZm9yIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiwgYW5kIG9uZSBmb3IgdGhlIHJldmVyc2UuCisgKgorICogPHA+QSA8Y29kZT5UcmFuc2xpdGVyYXRpb25SdWxlU2V0PC9jb2RlPiBoYXMgb25lIGltcG9ydGFudCBvcGVyYXRpb24sIHRoYXQgb2YKKyAqIGZpbmRpbmcgYSBtYXRjaGluZyBydWxlIGF0IGEgZ2l2ZW4gcG9pbnQgaW4gdGhlIHRleHQuICBUaGlzIGlzIGFjY29tcGxpc2hlZAorICogYnkgdGhlIDxjb2RlPmZpbmRNYXRjaCgpPC9jb2RlPiBtZXRob2QuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBUcmFuc2xpdGVyYXRpb25SdWxlU2V0IHsKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgcnVsZXMsIGluIHRoZSBvcmRlciBhZGRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFZlY3RvciBydWxlVmVjdG9yOworCisgICAgLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSBsb25nZXN0IHByZWNlZGluZyBjb250ZXh0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWF4Q29udGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIFNvcnRlZCBhbmQgaW5kZXhlZCB0YWJsZSBvZiBydWxlcy4gIFRoaXMgaXMgY3JlYXRlZCBieSBmcmVlemUoKSBmcm9tCisgICAgICogdGhlIHJ1bGVzIGluIHJ1bGVWZWN0b3IuICBydWxlcy5sZW5ndGggPj0gcnVsZVZlY3Rvci5zaXplKCksIGFuZCB0aGUKKyAgICAgKiByZWZlcmVuY2VzIGluIHJ1bGVzW10gYXJlIGFsaWFzZXMgb2YgdGhlIHJlZmVyZW5jZXMgaW4gcnVsZVZlY3Rvci4KKyAgICAgKiBBIHNpbmdsZSBydWxlIGluIHJ1bGVWZWN0b3IgaXMgbGlzdGVkIG9uZSBvciBtb3JlIHRpbWVzIGluIHJ1bGVzW10uCisgICAgICovCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRpb25SdWxlW10gcnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBJbmRleCB0YWJsZS4gIEZvciB0ZXh0IGhhdmluZyBhIGZpcnN0IGNoYXJhY3RlciBjLCBjb21wdXRlIHggPSBjJjB4RkYuCisgICAgICogTm93IHVzZSBydWxlc1tpbmRleFt4XS4uaW5kZXhbeCsxXS0xXS4gIFRoaXMgaW5kZXggdGFibGUgaXMgY3JlYXRlZCBieQorICAgICAqIGZyZWV6ZSgpLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gaW5kZXg7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAxLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgZW1wdHkgcnVsZSBzZXQuCisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQoKSB7CisgICAgICAgIHJ1bGVWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1heENvbnRleHRMZW5ndGggPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSBjb250ZXh0IGxlbmd0aC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3QgcHJlY2VkaW5nIGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG1heENvbnRleHRMZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgcnVsZSB0byB0aGlzIHNldC4gIFJ1bGVzIGFyZSBhZGRlZCBpbiBvcmRlciwgYW5kIG9yZGVyIGlzCisgICAgICogc2lnbmlmaWNhbnQuCisgICAgICogQHBhcmFtIHJ1bGUgdGhlIHJ1bGUgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkUnVsZShUcmFuc2xpdGVyYXRpb25SdWxlIHJ1bGUpIHsKKyAgICAgICAgcnVsZVZlY3Rvci5hZGRFbGVtZW50KHJ1bGUpOworICAgICAgICBpbnQgbGVuOworICAgICAgICBpZiAoKGxlbiA9IHJ1bGUuZ2V0QW50ZUNvbnRleHRMZW5ndGgoKSkgPiBtYXhDb250ZXh0TGVuZ3RoKSB7CisgICAgICAgICAgICBtYXhDb250ZXh0TGVuZ3RoID0gbGVuOworICAgICAgICB9CisKKyAgICAgICAgcnVsZXMgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb3NlIHRoaXMgcnVsZSBzZXQgdG8gZnVydGhlciBhZGRpdGlvbnMsIGNoZWNrIGl0IGZvciBtYXNrZWQgcnVsZXMsCisgICAgICogYW5kIGluZGV4IGl0IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHNvbWUgcnVsZXMgYXJlIG1hc2tlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZyZWV6ZSgpIHsKKyAgICAgICAgLyogQ29uc3RydWN0IHRoZSBydWxlIGFycmF5IGFuZCBpbmRleCB0YWJsZS4gIFdlIHJlb3JkZXIgdGhlCisgICAgICAgICAqIHJ1bGVzIGJ5IHNvcnRpbmcgdGhlbSBpbnRvIDI1NiBiaW5zLiAgRWFjaCBiaW4gY29udGFpbnMgYWxsCisgICAgICAgICAqIHJ1bGVzIG1hdGNoaW5nIHRoZSBpbmRleCB2YWx1ZSBmb3IgdGhhdCBiaW4uICBBIHJ1bGUKKyAgICAgICAgICogbWF0Y2hlcyBhbiBpbmRleCB2YWx1ZSBpZiBzdHJpbmcgd2hvc2UgZmlyc3Qga2V5IGNoYXJhY3RlcgorICAgICAgICAgKiBoYXMgYSBsb3cgYnl0ZSBlcXVhbCB0byB0aGUgaW5kZXggdmFsdWUgY2FuIG1hdGNoIHRoZSBydWxlLgorICAgICAgICAgKgorICAgICAgICAgKiBFYWNoIGJpbiBjb250YWlucyB6ZXJvIG9yIG1vcmUgcnVsZXMsIGluIHRoZSBzYW1lIG9yZGVyCisgICAgICAgICAqIHRoZXkgd2VyZSBmb3VuZCBvcmlnaW5hbGx5LiAgSG93ZXZlciwgdGhlIHRvdGFsIHJ1bGVzIGluCisgICAgICAgICAqIHRoZSBiaW5zIG1heSBleGNlZWQgdGhlIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgdmVjdG9yLAorICAgICAgICAgKiBzaW5jZSBydWxlcyB0aGF0IGhhdmUgYSB2YXJpYWJsZSBhcyB0aGVpciBmaXJzdCBrZXkKKyAgICAgICAgICogY2hhcmFjdGVyIHdpbGwgZ2VuZXJhbGx5IGZhbGwgaW50byBtb3JlIHRoYW4gb25lIGJpbi4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhhdCBpcywgZWFjaCBiaW4gY29udGFpbnMgYWxsIHJ1bGVzIHRoYXQgZWl0aGVyIGhhdmUgdGhhdAorICAgICAgICAgKiBmaXJzdCBpbmRleCB2YWx1ZSBhcyB0aGVpciBmaXJzdCBrZXkgY2hhcmFjdGVyLCBvciBoYXZlCisgICAgICAgICAqIGEgc2V0IGNvbnRhaW5pbmcgdGhlIGluZGV4IHZhbHVlIGFzIHRoZWlyIGZpcnN0IGNoYXJhY3Rlci4KKyAgICAgICAgICovCisgICAgICAgIGludCBuID0gcnVsZVZlY3Rvci5zaXplKCk7CisgICAgICAgIGluZGV4ID0gbmV3IGludFsyNTddOyAvLyBbc2ljXQorICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoMipuKTsgLy8gaGV1cmlzdGljOyBhZGp1c3QgYXMgbmVlZGVkCisKKyAgICAgICAgLyogUHJlY29tcHV0ZSB0aGUgaW5kZXggdmFsdWVzLiAgVGhpcyBzYXZlcyBhIExPVCBvZiB0aW1lLgorICAgICAgICAgKi8KKyAgICAgICAgaW50W10gaW5kZXhWYWx1ZSA9IG5ldyBpbnRbbl07CisgICAgICAgIGZvciAoaW50IGo9MDsgajxuOyArK2opIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgciA9IChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgIGluZGV4VmFsdWVbal0gPSByLmdldEluZGV4VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCB4PTA7IHg8MjU2OyArK3gpIHsKKyAgICAgICAgICAgIGluZGV4W3hdID0gdi5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bjsgKytqKSB7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4VmFsdWVbal0gPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXhWYWx1ZVtqXSA9PSB4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2LmFkZEVsZW1lbnQocnVsZVZlY3Rvci5lbGVtZW50QXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGluZGV4VmFsdWUgaXMgPCAwLCB0aGVuIHRoZSBmaXJzdCBrZXkgY2hhcmFjdGVyIGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGEgc2V0LCBhbmQgd2UgbXVzdCB1c2UgdGhlIG1vcmUgdGltZS1jb25zdW1pbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hlc0luZGV4VmFsdWUgY2hlY2suICBJbiBwcmFjdGljZSB0aGlzIGhhcHBlbnMKKyAgICAgICAgICAgICAgICAgICAgLy8gcmFyZWx5LCBzbyB3ZSBzZWxkb20gdHJlYWQgdGhpcyBjb2RlIHBhdGguCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgciA9IChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHIubWF0Y2hlc0luZGV4VmFsdWUoeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYuYWRkRWxlbWVudChyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbmRleFsyNTZdID0gdi5zaXplKCk7CisKKyAgICAgICAgLyogRnJlZXplIHRoaW5ncyBpbnRvIGFuIGFycmF5LgorICAgICAgICAgKi8KKyAgICAgICAgcnVsZXMgPSBuZXcgVHJhbnNsaXRlcmF0aW9uUnVsZVt2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocnVsZXMpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBlcnJvcnMgPSBudWxsOworCisgICAgICAgIC8qIENoZWNrIGZvciBtYXNraW5nLiAgVGhpcyBpcyBNVUNIIGZhc3RlciB0aGFuIG91ciBvbGQgY2hlY2ssCisgICAgICAgICAqIHdoaWNoIHdhcyBlYWNoIHJ1bGUgYWdhaW5zdCBlYWNoIGZvbGxvd2luZyBydWxlLCBzaW5jZSB3ZQorICAgICAgICAgKiBvbmx5IGhhdmUgdG8gY2hlY2sgZm9yIG1hc2tpbmcgd2l0aGluIGVhY2ggYmluIG5vdy4gIEl0J3MKKyAgICAgICAgICogMjU2Kk8objJeMikgaW5zdGVhZCBvZiBPKG4xXjIpLCB3aGVyZSBuMSBpcyB0aGUgdG90YWwgcnVsZQorICAgICAgICAgKiBjb3VudCwgYW5kIG4yIGlzIHRoZSBwZXItYmluIHJ1bGUgY291bnQuICBCdXQgbjI8PG4xLCBzbworICAgICAgICAgKiBpdCdzIGEgYmlnIHdpbi4KKyAgICAgICAgICovCisgICAgICAgIGZvciAoaW50IHg9MDsgeDwyNTY7ICsreCkgeworICAgICAgICAgICAgZm9yIChpbnQgaj1pbmRleFt4XTsgajxpbmRleFt4KzFdLTE7ICsraikgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgcjEgPSBydWxlc1tqXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrPWorMTsgazxpbmRleFt4KzFdOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByMiA9IHJ1bGVzW2tdOworICAgICAgICAgICAgICAgICAgICBpZiAocjEubWFza3MocjIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoIlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJSdWxlICIgKyByMSArICIgbWFza3MgIiArIHIyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcnJvcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihlcnJvcnMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIHRoZSBnaXZlbiB0ZXh0IHdpdGggdGhlIGdpdmVuIFVUcmFuc1Bvc2l0aW9uCisgICAgICogaW5kaWNlcy4gIFJldHVybiBUUlVFIGlmIHRoZSB0cmFuc2xpdGVyYXRpb24gc2hvdWxkIGNvbnRpbnVlCisgICAgICogb3IgRkFMU0UgaWYgaXQgc2hvdWxkIGhhbHQgKGJlY2F1c2Ugb2YgYSBVX1BBUlRJQUxfTUFUQ0ggbWF0Y2gpLgorICAgICAqIE5vdGUgdGhhdCBGQUxTRSBpcyBvbmx5IGV2ZXIgcmV0dXJuZWQgaWYgaXNJbmNyZW1lbnRhbCBpcyBUUlVFLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGVkCisgICAgICogQHBhcmFtIHBvcyB0aGUgcG9zaXRpb24gaW5kaWNlcywgd2hpY2ggd2lsbCBiZSB1cGRhdGVkCisgICAgICogQHBhcmFtIGluY3JlbWVudGFsIGlmIFRSVUUsIGFzc3VtZSBuZXcgdGV4dCBtYXkgYmUgaW5zZXJ0ZWQKKyAgICAgKiBhdCBpbmRleC5saW1pdCwgYW5kIHJldHVybiBGQUxTRSBpZiB0aHJlIGlzIGEgcGFydGlhbCBtYXRjaC4KKyAgICAgKiBAcmV0dXJuIFRSVUUgdW5sZXNzIGEgVV9QQVJUSUFMX01BVENIIGhhcyBiZWVuIG9idGFpbmVkLAorICAgICAqIGluZGljYXRpbmcgdGhhdCB0cmFuc2xpdGVyYXRpb24gc2hvdWxkIHN0b3AgdW50aWwgbW9yZSB0ZXh0CisgICAgICogYXJyaXZlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGludCBpbmRleEJ5dGUgPSB0ZXh0LmNoYXIzMkF0KHBvcy5zdGFydCkgJiAweEZGOworICAgICAgICBmb3IgKGludCBpPWluZGV4W2luZGV4Qnl0ZV07IGk8aW5kZXhbaW5kZXhCeXRlKzFdOyArK2kpIHsKKyAgICAgICAgICAgIGludCBtID0gcnVsZXNbaV0ubWF0Y2hBbmRSZXBsYWNlKHRleHQsIHBvcywgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgc3dpdGNoIChtKSB7CisgICAgICAgICAgICBjYXNlIFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0g6CisgICAgICAgICAgICAgICAgaWYgKFRyYW5zbGl0ZXJhdG9yLkRFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoaW5jcmVtZW50YWwgPyAiUnVsZS5pOiBtYXRjaCAiOiJSdWxlOiBtYXRjaCAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXS50b1J1bGUodHJ1ZSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGV4dCwgcG9zKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgY2FzZSBVbmljb2RlTWF0Y2hlci5VX1BBUlRJQUxfTUFUQ0g6CisgICAgICAgICAgICAgICAgaWYgKFRyYW5zbGl0ZXJhdG9yLkRFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoaW5jcmVtZW50YWwgPyAiUnVsZS5pOiBwYXJ0aWFsIG1hdGNoICI6IlJ1bGU6IHBhcnRpYWwgbWF0Y2ggIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0udG9SdWxlKHRydWUpICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIHBvcykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gTm8gbWF0Y2ggb3IgcGFydGlhbCBtYXRjaCBmcm9tIGFueSBydWxlCisgICAgICAgIHBvcy5zdGFydCArPSBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChwb3Muc3RhcnQpKTsKKyAgICAgICAgaWYgKFRyYW5zbGl0ZXJhdG9yLkRFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKGluY3JlbWVudGFsID8gIlJ1bGUuaTogbm8gbWF0Y2ggPT4gIjoiUnVsZTogbm8gbWF0Y2ggPT4gIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIHBvcykpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBydWxlIHN0cmluZ3MgdGhhdCByZXByZXNlbnRzIHRoaXMgcnVsZSBzZXQuCisgICAgICovCisgICAgU3RyaW5nIHRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50IGNvdW50ID0gcnVsZVZlY3Rvci5zaXplKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlU291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcnVsZVNvdXJjZS5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRpb25SdWxlIHIgPQorICAgICAgICAgICAgICAgIChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIHJ1bGVTb3VyY2UuYXBwZW5kKHIudG9SdWxlKGVzY2FwZVVucHJpbnRhYmxlKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVTb3VyY2UudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCAoZ2V0VGFyZ2V0PWZhbHNlKQorICAgICAqIG9yIGVtaXR0ZWQgKGdldFRhcmdldD10cnVlKSBieSB0aGlzIHNldC4KKyAgICAgKi8KKyAgICBVbmljb2RlU2V0IGdldFNvdXJjZVRhcmdldFNldChib29sZWFuIGdldFRhcmdldCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBjb3VudCA9IHJ1bGVWZWN0b3Iuc2l6ZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByID0KKyAgICAgICAgICAgICAgICAoVHJhbnNsaXRlcmF0aW9uUnVsZSkgcnVsZVZlY3Rvci5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAoZ2V0VGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgci5hZGRUYXJnZXRTZXRUbyhzZXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByLmFkZFNvdXJjZVNldFRvKHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YjAzZGJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDE5MDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHlFeHRlbnNpb25zOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FzZUluc2Vuc2l0aXZlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBpcyBhbiBhYnN0cmFjdCBjbGFzcyB0aGF0CisgKiB0cmFuc2xpdGVyYXRlcyB0ZXh0IGZyb20gb25lIGZvcm1hdCB0byBhbm90aGVyLiAgVGhlIG1vc3QgY29tbW9uCisgKiBraW5kIG9mIHRyYW5zbGl0ZXJhdG9yIGlzIGEgc2NyaXB0LCBvciBhbHBoYWJldCwgdHJhbnNsaXRlcmF0b3IuCisgKiBGb3IgZXhhbXBsZSwgYSBSdXNzaWFuIHRvIExhdGluIHRyYW5zbGl0ZXJhdG9yIGNoYW5nZXMgUnVzc2lhbiB0ZXh0CisgKiB3cml0dGVuIGluIEN5cmlsbGljIGNoYXJhY3RlcnMgdG8gcGhvbmV0aWNhbGx5IGVxdWl2YWxlbnQgTGF0aW4KKyAqIGNoYXJhY3RlcnMuICBJdCBkb2VzIG5vdCA8ZW0+dHJhbnNsYXRlPC9lbT4gUnVzc2lhbiB0byBFbmdsaXNoIQorICogVHJhbnNsaXRlcmF0aW9uLCB1bmxpa2UgdHJhbnNsYXRpb24sIG9wZXJhdGVzIG9uIGNoYXJhY3RlcnMsIHdpdGhvdXQKKyAqIHJlZmVyZW5jZSB0byB0aGUgbWVhbmluZ3Mgb2Ygd29yZHMgYW5kIHNlbnRlbmNlcy4KKyAqCisgKiA8cD5BbHRob3VnaCBzY3JpcHQgY29udmVyc2lvbiBpcyBpdHMgbW9zdCBjb21tb24gdXNlLCBhCisgKiB0cmFuc2xpdGVyYXRvciBjYW4gYWN0dWFsbHkgcGVyZm9ybSBhIG1vcmUgZ2VuZXJhbCBjbGFzcyBvZiB0YXNrcy4KKyAqIEluIGZhY3QsIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBkZWZpbmVzIGEgdmVyeSBnZW5lcmFsIEFQSQorICogd2hpY2ggc3BlY2lmaWVzIG9ubHkgdGhhdCBhIHNlZ21lbnQgb2YgdGhlIGlucHV0IHRleHQgaXMgcmVwbGFjZWQKKyAqIGJ5IG5ldyB0ZXh0LiAgVGhlIHBhcnRpY3VsYXJzIG9mIHRoaXMgY29udmVyc2lvbiBhcmUgZGV0ZXJtaW5lZAorICogZW50aXJlbHkgYnkgc3ViY2xhc3NlcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4uCisgKgorICogPHA+PGI+VHJhbnNsaXRlcmF0b3JzIGFyZSBzdGF0ZWxlc3M8L2I+CisgKgorICogPHA+PGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdHMgYXJlIDxlbT5zdGF0ZWxlc3M8L2VtPjsgdGhleQorICogcmV0YWluIG5vIGluZm9ybWF0aW9uIGJldHdlZW4gY2FsbHMgdG8KKyAqIDxjb2RlPnRyYW5zbGl0ZXJhdGUoKTwvY29kZT4uICBBcyBhIHJlc3VsdCwgdGhyZWFkcyBtYXkgc2hhcmUKKyAqIHRyYW5zbGl0ZXJhdG9ycyB3aXRob3V0IHN5bmNocm9uaXppbmcgdGhlbS4gIFRoaXMgbWlnaHQgc2VlbSB0bworICogbGltaXQgdGhlIGNvbXBsZXhpdHkgb2YgdGhlIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24uICBJbgorICogcHJhY3RpY2UsIHN1YmNsYXNzZXMgcGVyZm9ybSBjb21wbGV4IHRyYW5zbGl0ZXJhdGlvbnMgYnkgZGVsYXlpbmcKKyAqIHRoZSByZXBsYWNlbWVudCBvZiB0ZXh0IHVudGlsIGl0IGlzIGtub3duIHRoYXQgbm8gb3RoZXIKKyAqIHJlcGxhY2VtZW50cyBhcmUgcG9zc2libGUuICBJbiBvdGhlciB3b3JkcywgYWx0aG91Z2ggdGhlCisgKiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0cyBhcmUgc3RhdGVsZXNzLCB0aGUgc291cmNlIHRleHQKKyAqIGl0c2VsZiBlbWJvZGllcyBhbGwgdGhlIG5lZWRlZCBpbmZvcm1hdGlvbiwgYW5kIGRlbGF5ZWQgb3BlcmF0aW9uCisgKiBhbGxvd3MgYXJiaXRyYXJ5IGNvbXBsZXhpdHkuCisgKgorICogPHA+PGI+QmF0Y2ggdHJhbnNsaXRlcmF0aW9uPC9iPgorICoKKyAqIDxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gcGVyZm9ybSB0cmFuc2xpdGVyYXRpb24gaXMgYWxsIGF0IG9uY2UsIG9uIGEKKyAqIHN0cmluZyBvZiBleGlzdGluZyB0ZXh0LiAgVGhpcyBpcyByZWZlcnJlZCB0byBhcyA8ZW0+YmF0Y2g8L2VtPgorICogdHJhbnNsaXRlcmF0aW9uLiAgRm9yIGV4YW1wbGUsIGdpdmVuIGEgc3RyaW5nIDxjb2RlPmlucHV0PC9jb2RlPgorICogYW5kIGEgdHJhbnNsaXRlcmF0b3IgPGNvZGU+dDwvY29kZT4sIHRoZSBjYWxsCisgKgorICogPGJsb2NrcXVvdGU+PGNvZGU+U3RyaW5nIHJlc3VsdCA9IHQudHJhbnNsaXRlcmF0ZShpbnB1dCk7CisgKiA8L2NvZGU+PC9ibG9ja3F1b3RlPgorICoKKyAqIHdpbGwgdHJhbnNsaXRlcmF0ZSBpdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQuICBPdGhlciBtZXRob2RzIGFsbG93CisgKiB0aGUgY2xpZW50IHRvIHNwZWNpZnkgYSBzdWJzdHJpbmcgdG8gYmUgdHJhbnNsaXRlcmF0ZWQgYW5kIHRvIHVzZQorICoge0BsaW5rIFJlcGxhY2VhYmxlfSBvYmplY3RzIGluc3RlYWQgb2Ygc3RyaW5ncywgaW4gb3JkZXIgdG8KKyAqIHByZXNlcnZlIG91dC1vZi1iYW5kIGluZm9ybWF0aW9uIChzdWNoIGFzIHRleHQgc3R5bGVzKS4KKyAqCisgKiA8cD48Yj5LZXlib2FyZCB0cmFuc2xpdGVyYXRpb248L2I+CisgKgorICogPHA+U29tZXdoYXQgbW9yZSBpbnZvbHZlZCBpcyA8ZW0+a2V5Ym9hcmQ8L2VtPiwgb3IgaW5jcmVtZW50YWwKKyAqIHRyYW5zbGl0ZXJhdGlvbi4gIFRoaXMgaXMgdGhlIHRyYW5zbGl0ZXJhdGlvbiBvZiB0ZXh0IHRoYXQgaXMKKyAqIGFycml2aW5nIGZyb20gc29tZSBzb3VyY2UgKHR5cGljYWxseSB0aGUgdXNlcidzIGtleWJvYXJkKSBvbmUKKyAqIGNoYXJhY3RlciBhdCBhIHRpbWUsIG9yIGluIHNvbWUgb3RoZXIgcGllY2VtZWFsIGZhc2hpb24uCisgKgorICogPHA+SW4ga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uLCBhIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBidWZmZXIKKyAqIHN0b3JlcyB0aGUgdGV4dC4gIEFzIHRleHQgaXMgaW5zZXJ0ZWQsIGFzIG11Y2ggYXMgcG9zc2libGUgaXMKKyAqIHRyYW5zbGl0ZXJhdGVkIG9uIHRoZSBmbHkuICBUaGlzIG1lYW5zIGEgR1VJIHRoYXQgZGlzcGxheXMgdGhlCisgKiBjb250ZW50cyBvZiB0aGUgYnVmZmVyIG1heSBzaG93IHRleHQgYmVpbmcgbW9kaWZpZWQgYXMgZWFjaCBuZXcKKyAqIGNoYXJhY3RlciBhcnJpdmVzLgorICoKKyAqIDxwPkNvbnNpZGVyIHRoZSBzaW1wbGUgPGNvZGU+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2NvZGU+OgorICoKKyAqIDxibG9ja3F1b3RlPjxjb2RlPgorICogdGgmZ3Q7e3RoZXRhfTxicj4KKyAqIHQmZ3Q7e3RhdX0KKyAqIDwvY29kZT48L2Jsb2NrcXVvdGU+CisgKgorICogV2hlbiB0aGUgdXNlciB0eXBlcyAndCcsIG5vdGhpbmcgd2lsbCBoYXBwZW4sIHNpbmNlIHRoZQorICogdHJhbnNsaXRlcmF0b3IgaXMgd2FpdGluZyB0byBzZWUgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzICdoJy4gIFRvCisgKiByZW1lZHkgdGhpcywgd2UgaW50cm9kdWNlIHRoZSBub3Rpb24gb2YgYSBjdXJzb3IsIG1hcmtlZCBieSBhICd8JworICogaW4gdGhlIG91dHB1dCBzdHJpbmc6CisgKgorICogPGJsb2NrcXVvdGU+PGNvZGU+CisgKiB0Jmd0O3x7dGF1fTxicj4KKyAqIHt0YXV9aCZndDt7dGhldGF9CisgKiA8L2NvZGU+PC9ibG9ja3F1b3RlPgorICoKKyAqIE5vdyB3aGVuIHRoZSB1c2VyIHR5cGVzICd0JywgdGF1IGFwcGVhcnMsIGFuZCBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAqIGlzICdoJywgdGhlIHRhdSBjaGFuZ2VzIHRvIGEgdGhldGEuICBUaGlzIGlzIGFjY29tcGxpc2hlZCBieQorICogbWFpbnRhaW5pbmcgYSBjdXJzb3IgcG9zaXRpb24gKGluZGVwZW5kZW50IG9mIHRoZSBpbnNlcnRpb24gcG9pbnQsCisgKiBhbmQgaW52aXNpYmxlIGluIHRoZSBHVUkpIGFjcm9zcyBjYWxscyB0bworICogPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4gIFR5cGljYWxseSwgdGhlIGN1cnNvciB3aWxsCisgKiBiZSBjb2luY2lkZW50IHdpdGggdGhlIGluc2VydGlvbiBwb2ludCwgYnV0IGluIGEgY2FzZSBsaWtlIHRoZSBvbmUKKyAqIGFib3ZlLCBpdCB3aWxsIHByZWNlZGUgdGhlIGluc2VydGlvbiBwb2ludC4KKyAqCisgKiA8cD5LZXlib2FyZCB0cmFuc2xpdGVyYXRpb24gbWV0aG9kcyBtYWludGFpbiBhIHNldCBvZiB0aHJlZSBpbmRpY2VzCisgKiB0aGF0IGFyZSB1cGRhdGVkIHdpdGggZWFjaCBjYWxsIHRvCisgKiA8Y29kZT50cmFuc2xpdGVyYXRlKCk8L2NvZGU+LCBpbmNsdWRpbmcgdGhlIGN1cnNvciwgc3RhcnQsCisgKiBhbmQgbGltaXQuICBUaGVzZSBpbmRpY2VzIGFyZSBjaGFuZ2VkIGJ5IHRoZSBtZXRob2QsIGFuZCB0aGV5IGFyZQorICogcGFzc2VkIGluIGFuZCBvdXQgdmlhIGEgUG9zaXRpb24gb2JqZWN0LiBUaGUgPGNvZGU+c3RhcnQ8L2NvZGU+IGluZGV4CisgKiBtYXJrcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdWJzdHJpbmcgdGhhdCB0aGUgdHJhbnNsaXRlcmF0b3Igd2lsbAorICogbG9vayBhdC4gIEl0IGlzIGFkdmFuY2VkIGFzIHRleHQgYmVjb21lcyBjb21taXR0ZWQgKGJ1dCBpdCBpcyBub3QKKyAqIHRoZSBjb21taXR0ZWQgaW5kZXg7IHRoYXQncyB0aGUgPGNvZGU+Y3Vyc29yPC9jb2RlPikuICBUaGUKKyAqIDxjb2RlPmN1cnNvcjwvY29kZT4gaW5kZXgsIGRlc2NyaWJlZCBhYm92ZSwgbWFya3MgdGhlIHBvaW50IGF0CisgKiB3aGljaCB0aGUgdHJhbnNsaXRlcmF0b3IgbGFzdCBzdG9wcGVkLCBlaXRoZXIgYmVjYXVzZSBpdCByZWFjaGVkCisgKiB0aGUgZW5kLCBvciBiZWNhdXNlIGl0IHJlcXVpcmVkIG1vcmUgY2hhcmFjdGVycyB0byBkaXNhbWJpZ3VhdGUKKyAqIGJldHdlZW4gcG9zc2libGUgaW5wdXRzLiAgVGhlIDxjb2RlPmN1cnNvcjwvY29kZT4gY2FuIGFsc28gYmUKKyAqIGV4cGxpY2l0bHkgc2V0IGJ5IHJ1bGVzIGluIGEgPGNvZGU+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2NvZGU+LgorICogQW55IGNoYXJhY3RlcnMgYmVmb3JlIHRoZSA8Y29kZT5jdXJzb3I8L2NvZGU+IGluZGV4IGFyZSBmcm96ZW47CisgKiBmdXR1cmUga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uIGNhbGxzIHdpdGhpbiB0aGlzIGlucHV0IHNlcXVlbmNlCisgKiB3aWxsIG5vdCBjaGFuZ2UgdGhlbS4gIE5ldyB0ZXh0IGlzIGluc2VydGVkIGF0IHRoZQorICogPGNvZGU+bGltaXQ8L2NvZGU+IGluZGV4LCB3aGljaCBtYXJrcyB0aGUgZW5kIG9mIHRoZSBzdWJzdHJpbmcgdGhhdAorICogdGhlIHRyYW5zbGl0ZXJhdG9yIGxvb2tzIGF0LgorICoKKyAqIDxwPkJlY2F1c2Uga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uIGFzc3VtZXMgdGhhdCBtb3JlIGNoYXJhY3RlcnMKKyAqIGFyZSB0byBhcnJpdmUsIGl0IGlzIGNvbnNlcnZhdGl2ZSBpbiBpdHMgb3BlcmF0aW9uLiAgSXQgb25seQorICogdHJhbnNsaXRlcmF0ZXMgd2hlbiBpdCBjYW4gZG8gc28gdW5hbWJpZ3VvdXNseS4gIE90aGVyd2lzZSBpdCB3YWl0cworICogZm9yIG1vcmUgY2hhcmFjdGVycyB0byBhcnJpdmUuICBXaGVuIHRoZSBjbGllbnQgY29kZSBrbm93cyB0aGF0IG5vCisgKiBtb3JlIGNoYXJhY3RlcnMgYXJlIGZvcnRoY29taW5nLCBwZXJoYXBzIGJlY2F1c2UgdGhlIHVzZXIgaGFzCisgKiBwZXJmb3JtZWQgc29tZSBpbnB1dCB0ZXJtaW5hdGlvbiBvcGVyYXRpb24sIHRoZW4gaXQgc2hvdWxkIGNhbGwKKyAqIDxjb2RlPmZpbmlzaFRyYW5zbGl0ZXJhdGlvbigpPC9jb2RlPiB0byBjb21wbGV0ZSBhbnkKKyAqIHBlbmRpbmcgdHJhbnNsaXRlcmF0aW9ucy4KKyAqCisgKiA8cD48Yj5JbnZlcnNlczwvYj4KKyAqCisgKiA8cD5QYWlycyBvZiB0cmFuc2xpdGVyYXRvcnMgbWF5IGJlIGludmVyc2VzIG9mIG9uZSBhbm90aGVyLiAgRm9yCisgKiBleGFtcGxlLCBpZiB0cmFuc2xpdGVyYXRvciA8Yj5BPC9iPiB0cmFuc2xpdGVyYXRlcyBjaGFyYWN0ZXJzIGJ5CisgKiBpbmNyZW1lbnRpbmcgdGhlaXIgVW5pY29kZSB2YWx1ZSAoc28gImFiYyIgLT4gImRlZiIpLCBhbmQKKyAqIHRyYW5zbGl0ZXJhdG9yIDxiPkI8L2I+IGRlY3JlbWVudHMgY2hhcmFjdGVyIHZhbHVlcywgdGhlbiA8Yj5BPC9iPgorICogaXMgYW4gaW52ZXJzZSBvZiA8Yj5CPC9iPiBhbmQgdmljZSB2ZXJzYS4gIElmIHdlIGNvbXBvc2UgPGI+QTwvYj4KKyAqIHdpdGggPGI+QjwvYj4gaW4gYSBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciwgdGhlIHJlc3VsdCBpcyB0aGUKKyAqIGluZGVudGl0eSB0cmFuc2xpdGVyYXRvciwgdGhhdCBpcywgYSB0cmFuc2xpdGVyYXRvciB0aGF0IGRvZXMgbm90CisgKiBjaGFuZ2UgaXRzIGlucHV0IHRleHQuCisgKgorICogVGhlIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBtZXRob2QgPGNvZGU+Z2V0SW52ZXJzZSgpPC9jb2RlPgorICogcmV0dXJucyBhIHRyYW5zbGl0ZXJhdG9yJ3MgaW52ZXJzZSwgaWYgb25lIGV4aXN0cywgb3IKKyAqIDxjb2RlPm51bGw8L2NvZGU+IG90aGVyd2lzZS4gIEhvd2V2ZXIsIHRoZSByZXN1bHQgb2YKKyAqIDxjb2RlPmdldEludmVyc2UoKTwvY29kZT4gdXN1YWxseSB3aWxsIDxlbT5ub3Q8L2VtPiBiZSBhIHRydWUKKyAqIG1hdGhlbWF0aWNhbCBpbnZlcnNlLiAgVGhpcyBpcyBiZWNhdXNlIHRydWUgaW52ZXJzZSB0cmFuc2xpdGVyYXRvcnMKKyAqIGFyZSBkaWZmaWN1bHQgdG8gZm9ybXVsYXRlLiAgRm9yIGV4YW1wbGUsIGNvbnNpZGVyIHR3bworICogdHJhbnNsaXRlcmF0b3JzOiA8Yj5BQjwvYj4sIHdoaWNoIHRyYW5zbGl0ZXJhdGVzIHRoZSBjaGFyYWN0ZXIgJ0EnCisgKiB0byAnQicsIGFuZCA8Yj5CQTwvYj4sIHdoaWNoIHRyYW5zbGl0ZXJhdGVzICdCJyB0byAnQScuICBJdCBtaWdodAorICogc2VlbSB0aGF0IHRoZXNlIGFyZSBleGFjdCBpbnZlcnNlcywgc2luY2UKKyAqCisgKiA8YmxvY2txdW90ZT4iQSIgeCA8Yj5BQjwvYj4gLT4gIkIiPGJyPgorICogIkIiIHggPGI+QkE8L2I+IC0+ICJBIjwvYmxvY2txdW90ZT4KKyAqCisgKiB3aGVyZSAneCcgcmVwcmVzZW50cyB0cmFuc2xpdGVyYXRpb24uICBIb3dldmVyLAorICoKKyAqIDxibG9ja3F1b3RlPiJBQkNEIiB4IDxiPkFCPC9iPiAtPiAiQkJDRCI8YnI+CisgKiAiQkJDRCIgeCA8Yj5CQTwvYj4gLT4gIkFBQ0QiPC9ibG9ja3F1b3RlPgorICoKKyAqIHNvIDxiPkFCPC9iPiBjb21wb3NlZCB3aXRoIDxiPkJBPC9iPiBpcyBub3QgdGhlCisgKiBpZGVudGl0eS4gTm9uZXRoZWxlc3MsIDxiPkJBPC9iPiBtYXkgYmUgdXNlZnVsbHkgY29uc2lkZXJlZCB0byBiZQorICogPGI+QUI8L2I+J3MgaW52ZXJzZSwgYW5kIGl0IGlzIG9uIHRoaXMgYmFzaXMgdGhhdAorICogPGI+QUI8L2I+PGNvZGU+LmdldEludmVyc2UoKTwvY29kZT4gY291bGQgbGVnaXRpbWF0ZWx5IHJldHVybgorICogPGI+QkE8L2I+LgorICoKKyAqIDxwPjxiPklEcyBhbmQgZGlzcGxheSBuYW1lczwvYj4KKyAqCisgKiA8cD5BIHRyYW5zbGl0ZXJhdG9yIGlzIGRlc2lnbmF0ZWQgYnkgYSBzaG9ydCBpZGVudGlmaWVyIHN0cmluZyBvcgorICogPGVtPklEPC9lbT4uICBJRHMgZm9sbG93IHRoZSBmb3JtYXQgPGVtPnNvdXJjZS1kZXN0aW5hdGlvbjwvZW0+LAorICogd2hlcmUgPGVtPnNvdXJjZTwvZW0+IGRlc2NyaWJlcyB0aGUgZW50aXR5IGJlaW5nIHJlcGxhY2VkLCBhbmQKKyAqIDxlbT5kZXN0aW5hdGlvbjwvZW0+IGRlc2NyaWJlcyB0aGUgZW50aXR5IHJlcGxhY2luZworICogPGVtPnNvdXJjZTwvZW0+LiAgVGhlIGVudGl0aWVzIG1heSBiZSB0aGUgbmFtZXMgb2Ygc2NyaXB0cywKKyAqIHBhcnRpY3VsYXIgc2VxdWVuY2VzIG9mIGNoYXJhY3RlcnMsIG9yIHdoYXRldmVyIGVsc2UgaXQgaXMgdGhhdCB0aGUKKyAqIHRyYW5zbGl0ZXJhdG9yIGNvbnZlcnRzIHRvIG9yIGZyb20uICBGb3IgZXhhbXBsZSwgYSB0cmFuc2xpdGVyYXRvcgorICogZnJvbSBSdXNzaWFuIHRvIExhdGluIG1pZ2h0IGJlIG5hbWVkICJSdXNzaWFuLUxhdGluIi4gIEEKKyAqIHRyYW5zbGl0ZXJhdG9yIGZyb20ga2V5Ym9hcmQgZXNjYXBlIHNlcXVlbmNlcyB0byBMYXRpbi0xIGNoYXJhY3RlcnMKKyAqIG1pZ2h0IGJlIG5hbWVkICJLZXlib2FyZEVzY2FwZS1MYXRpbjEiLiAgQnkgY29udmVudGlvbiwgc3lzdGVtCisgKiBlbnRpdHkgbmFtZXMgYXJlIGluIEVuZ2xpc2gsIHdpdGggdGhlIGluaXRpYWwgbGV0dGVycyBvZiB3b3JkcworICogY2FwaXRhbGl6ZWQ7IHVzZXIgZW50aXR5IG5hbWVzIG1heSBmb2xsb3cgYW55IGZvcm1hdCBzbyBsb25nIGFzCisgKiB0aGV5IGRvIG5vdCBjb250YWluIGRhc2hlcy4KKyAqCisgKiA8cD5JbiBhZGRpdGlvbiB0byBwcm9ncmFtbWF0aWMgSURzLCB0cmFuc2xpdGVyYXRvciBvYmplY3RzIGhhdmUKKyAqIGRpc3BsYXkgbmFtZXMgZm9yIHByZXNlbnRhdGlvbiBpbiB1c2VyIGludGVyZmFjZXMsIHJldHVybmVkIGJ5CisgKiB7QGxpbmsgI2dldERpc3BsYXlOYW1lfS4KKyAqCisgKiA8cD48Yj5GYWN0b3J5IG1ldGhvZHMgYW5kIHJlZ2lzdHJhdGlvbjwvYj4KKyAqCisgKiA8cD5JbiBnZW5lcmFsLCBjbGllbnQgY29kZSBzaG91bGQgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZAorICogPGNvZGU+Z2V0SW5zdGFuY2UoKTwvY29kZT4gdG8gb2J0YWluIGFuIGluc3RhbmNlIG9mIGEKKyAqIHRyYW5zbGl0ZXJhdG9yIGdpdmVuIGl0cyBJRC4gIFZhbGlkIElEcyBtYXkgYmUgZW51bWVyYXRlZCB1c2luZworICogPGNvZGU+Z2V0QXZhaWxhYmxlSURzKCk8L2NvZGU+LiAgU2luY2UgdHJhbnNsaXRlcmF0b3JzIGFyZQorICogc3RhdGVsZXNzLCBtdWx0aXBsZSBjYWxscyB0byA8Y29kZT5nZXRJbnN0YW5jZSgpPC9jb2RlPiB3aXRoIHRoZQorICogc2FtZSBJRCB3aWxsIHJldHVybiB0aGUgc2FtZSBvYmplY3QuCisgKgorICogPHA+SW4gYWRkaXRpb24gdG8gdGhlIHN5c3RlbSB0cmFuc2xpdGVyYXRvcnMgcmVnaXN0ZXJlZCBhdCBzdGFydHVwLAorICogdXNlciB0cmFuc2xpdGVyYXRvcnMgbWF5IGJlIHJlZ2lzdGVyZWQgYnkgY2FsbGluZworICogPGNvZGU+cmVnaXN0ZXJJbnN0YW5jZSgpPC9jb2RlPiBhdCBydW4gdGltZS4gIFRvIHJlZ2lzdGVyIGEKKyAqIHRyYW5zbGl0ZXJhdG9yIHN1YmNsYXNzIHdpdGhvdXQgaW5zdGFudGlhdGluZyBpdCAodW50aWwgaXQgaXMKKyAqIG5lZWRlZCksIHVzZXJzIG1heSBjYWxsIDxjb2RlPnJlZ2lzdGVyQ2xhc3MoKTwvY29kZT4uCisgKgorICogPHA+PGI+Q29tcG9zZWQgdHJhbnNsaXRlcmF0b3JzPC9iPgorICoKKyAqIDxwPkluIGFkZGl0aW9uIHRvIGJ1aWx0LWluIHN5c3RlbSB0cmFuc2xpdGVyYXRvcnMgbGlrZQorICogIkxhdGluLUdyZWVrIiwgdGhlcmUgYXJlIGFsc28gYnVpbHQtaW4gPGVtPmNvbXBvc2VkPC9lbT4KKyAqIHRyYW5zbGl0ZXJhdG9ycy4gIFRoZXNlIGFyZSBpbXBsZW1lbnRlZCBieSBjb21wb3NpbmcgdHdvIG9yIG1vcmUKKyAqIGNvbXBvbmVudCB0cmFuc2xpdGVyYXRvcnMuICBGb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBzY3JpcHRzICJBIiwKKyAqICJCIiwgIkMiLCBhbmQgIkQiLCBhbmQgd2Ugd2FudCB0byB0cmFuc2xpdGVyYXRlIGJldHdlZW4gYWxsIHBhaXJzCisgKiBvZiB0aGVtLCB0aGVuIHdlIG5lZWQgdG8gd3JpdGUgMTIgdHJhbnNsaXRlcmF0b3JzOiAiQS1CIiwgIkEtQyIsCisgKiAiQS1EIiwgIkItQSIsLi4uLCAiRC1BIiwgIkQtQiIsICJELUMiLiAgSWYgaXQgaXMgcG9zc2libGUgdG8KKyAqIGNvbnZlcnQgYWxsIHNjcmlwdHMgdG8gYW4gaW50ZXJtZWRpYXRlIHNjcmlwdCAiTSIsIHRoZW4gaW5zdGVhZCBvZgorICogd3JpdGluZyAxMiBydWxlIHNldHMsIHdlIG9ubHkgbmVlZCB0byB3cml0ZSA4OiAiQX5NIiwgIkJ+TSIsICJDfk0iLAorICogIkR+TSIsICJNfkEiLCAiTX5CIiwgIk1+QyIsICJNfkQiLiAgKFRoaXMgbWlnaHQgbm90IHNlZW0gbGlrZSBhIGJpZworICogd2luLCBidXQgaXQncyByZWFsbHkgMjxlbT5uPC9lbT4gdnMuIDxlbT5uPC9lbT48c3VwPjI8L3N1cD4gLQorICogPGVtPm48L2VtPiwgc28gYXMgPGVtPm48L2VtPiBnZXRzIGxhcmdlciB0aGUgZ2FpbiBiZWNvbWVzCisgKiBzaWduaWZpY2FudC4gIFdpdGggOSBzY3JpcHRzLCBpdCdzIDE4IHZzLiA3MiBydWxlIHNldHMsIGEgYmlnCisgKiBkaWZmZXJlbmNlLikgIE5vdGUgdGhlIHVzZSBvZiAifiIgcmF0aGVyIHRoYW4gIi0iIGZvciB0aGUgc2NyaXB0CisgKiBzZXBhcmF0b3IgaGVyZTsgdGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgZ2l2ZW4gdHJhbnNsaXRlcmF0b3IgaXMKKyAqIGludGVuZGVkIHRvIGJlIGNvbXBvc2VkIHdpdGggb3RoZXJzLCByYXRoZXIgdGhhbiBiZSB1c2VkIGFzIGlzLgorICoKKyAqIDxwPkNvbXBvc2VkIHRyYW5zbGl0ZXJhdG9ycyBjYW4gYmUgaW5zdGFudGlhdGVkIGFzIHVzdWFsLiAgRm9yCisgKiBleGFtcGxlLCB0aGUgc3lzdGVtIHRyYW5zbGl0ZXJhdG9yICJEZXZhbmFnYXJpLUd1amFyYXRpIiBpcyBhCisgKiBjb21wb3NlZCB0cmFuc2xpdGVyYXRvciBidWlsdCBpbnRlcm5hbGx5IGFzCisgKiAiRGV2YW5hZ2FyaX5JbnRlckluZGljO0ludGVySW5kaWN+R3VqYXJhdGkiLiAgV2hlbiB0aGlzCisgKiB0cmFuc2xpdGVyYXRvciBpcyBpbnN0YW50aWF0ZWQsIGl0IGFwcGVhcnMgZXh0ZXJuYWxseSB0byBiZSBhCisgKiBzdGFuZGFyZCB0cmFuc2xpdGVyYXRvciAoZS5nLiwgZ2V0SUQoKSByZXR1cm5zCisgKiAiRGV2YW5hZ2FyaS1HdWphcmF0aSIpLgorICoKKyAqIDxwPjxiPlN1YmNsYXNzaW5nPC9iPgorICoKKyAqIDxwPlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhlIGFic3RyYWN0IG1ldGhvZAorICogPGNvZGU+aGFuZGxlVHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4gIDxwPlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlCisgKiB0aGUgPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPiBtZXRob2QgdGFraW5nIGEKKyAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBhbmQgdGhlIDxjb2RlPnRyYW5zbGl0ZXJhdGUoKTwvY29kZT4KKyAqIG1ldGhvZCB0YWtpbmcgYSA8Y29kZT5TdHJpbmc8L2NvZGU+IGFuZCA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+CisgKiBpZiB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlc2UgbWV0aG9kcyBjYW4gYmUgaW1wcm92ZWQgb3ZlciB0aGUKKyAqIHBlcmZvcm1hbmNlIG9idGFpbmVkIGJ5IHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBpbiB0aGlzIGNsYXNzLgorICoKKyAqIDxwPkNvcHlyaWdodCAmY29weTsgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHJhbnNsaXRlcmF0b3IgeworICAgIC8qKgorICAgICAqIERpcmVjdGlvbiBjb25zdGFudCBpbmRpY2F0aW5nIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiBpbiBhIHRyYW5zbGl0ZXJhdG9yLAorICAgICAqIGUuZy4sIHRoZSBmb3J3YXJkIHJ1bGVzIG9mIGEgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuICBBbiAiQS1CIgorICAgICAqIHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIEEgdG8gQiB3aGVuIG9wZXJhdGluZyBpbiB0aGUgZm9yd2FyZAorICAgICAqIGRpcmVjdGlvbiwgYW5kIEIgdG8gQSB3aGVuIG9wZXJhdGluZyBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9SV0FSRCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBEaXJlY3Rpb24gY29uc3RhbnQgaW5kaWNhdGluZyB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24gaW4gYSB0cmFuc2xpdGVyYXRvciwKKyAgICAgKiBlLmcuLCB0aGUgcmV2ZXJzZSBydWxlcyBvZiBhIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLiAgQW4gIkEtQiIKKyAgICAgKiB0cmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRlcyBBIHRvIEIgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIGZvcndhcmQKKyAgICAgKiBkaXJlY3Rpb24sIGFuZCBCIHRvIEEgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFVkVSU0UgPSAxOworCisgICAgLyoqCisgICAgICogUG9zaXRpb24gc3RydWN0dXJlIGZvciBpbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24uICBUaGlzIGRhdGEKKyAgICAgKiBzdHJ1Y3R1cmUgZGVmaW5lcyB0d28gc3Vic3RyaW5ncyBvZiB0aGUgdGV4dCBiZWluZworICAgICAqIHRyYW5zbGl0ZXJhdGVkLiAgVGhlIGZpcnN0IHJlZ2lvbiwgW2NvbnRleHRTdGFydCwKKyAgICAgKiBjb250ZXh0TGltaXQpLCBkZWZpbmVzIHdoYXQgY2hhcmFjdGVycyB0aGUgdHJhbnNsaXRlcmF0b3Igd2lsbAorICAgICAqIHJlYWQgYXMgY29udGV4dC4gIFRoZSBzZWNvbmQgcmVnaW9uLCBbc3RhcnQsIGxpbWl0KSwgZGVmaW5lcworICAgICAqIHdoYXQgY2hhcmFjdGVycyB3aWxsIGFjdHVhbGx5IGJlIHRyYW5zbGl0ZXJhdGVkLiAgVGhlIHNlY29uZAorICAgICAqIHJlZ2lvbiBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIGZpcnN0LgorICAgICAqCisgICAgICogPHA+QWZ0ZXIgYSB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uLCBzb21lIG9mIHRoZSBpbmRpY2VzIGluIHRoaXMKKyAgICAgKiBzdHJ1Y3R1cmUgd2lsbCBiZSBtb2RpZmllZC4gIFNlZSB0aGUgZmllbGQgZGVzY3JpcHRpb25zIGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiA8cD5jb250ZXh0U3RhcnQgPD0gc3RhcnQgPD0gbGltaXQgPD0gY29udGV4dExpbWl0CisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBBbGwgaW5kZXggdmFsdWVzIGluIHRoaXMgc3RydWN0dXJlIG11c3QgYmUgYXQgY29kZSBwb2ludAorICAgICAqIGJvdW5kYXJpZXMuICBUaGF0IGlzLCBub25lIG9mIHRoZW0gbWF5IG9jY3VyIGJldHdlZW4gdHdvIGNvZGUgdW5pdHMKKyAgICAgKiBvZiBhIHN1cnJvZ2F0ZSBwYWlyLiAgSWYgYW55IGluZGV4IGRvZXMgc3BsaXQgYSBzdXJyb2dhdGUgcGFpciwKKyAgICAgKiByZXN1bHRzIGFyZSB1bnNwZWNpZmllZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFBvc2l0aW9uIHsKKworICAgICAgICAvKioKKyAgICAgICAgICogQmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmUsIG9mIHRoZSBjb250ZXh0IHRvIGJlIGNvbnNpZGVyZWQgZm9yCisgICAgICAgICAqIGEgdHJhbnNsaXRlcmF0aW9uIG9wZXJhdGlvbi4gIFRoZSB0cmFuc2xpdGVyYXRvciB3aWxsIGlnbm9yZQorICAgICAgICAgKiBhbnl0aGluZyBiZWZvcmUgdGhpcyBpbmRleC4gIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMgcGFyYW1ldGVyCisgICAgICAgICAqIGlzIHVwZGF0ZWQgYnkgYSB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uIHRvIHJlZmxlY3QgdGhlIG1heGltdW0KKyAgICAgICAgICogYW1vdW50IG9mIGFudGVjb250ZXh0IG5lZWRlZCBieSBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgY29udGV4dFN0YXJ0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZSwgb2YgdGhlIGNvbnRleHQgdG8gYmUgY29uc2lkZXJlZCBmb3IgYQorICAgICAgICAgKiB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uLiAgVGhlIHRyYW5zbGl0ZXJhdG9yIHdpbGwgaWdub3JlCisgICAgICAgICAqIGFueXRoaW5nIGF0IG9yIGFmdGVyIHRoaXMgaW5kZXguICBJTlBVVC9PVVRQVVQgcGFyYW1ldGVyOiBUaGlzCisgICAgICAgICAqIHBhcmFtZXRlciBpcyB1cGRhdGVkIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiB0aGUgbGVuZ3RoIG9mIHRoZQorICAgICAgICAgKiB0ZXh0LCBidXQgcG9pbnRzIHRvIHRoZSBzYW1lIGxvZ2ljYWwgcG9zaXRpb24gaW4gdGhlIHRleHQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBjb250ZXh0TGltaXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlLCBvZiB0aGUgdGV4dCB0byBiZSB0cmFuc2xpdGVyYXRkLgorICAgICAgICAgKiBJTlBVVC9PVVRQVVQgcGFyYW1ldGVyOiBUaGlzIHBhcmFtZXRlciBpcyBhZHZhbmNlZCBwYXN0CisgICAgICAgICAqIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiB0cmFuc2xpdGVyYXRlZCBieSBhCisgICAgICAgICAqIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24uCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzdGFydDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRW5kaW5nIGluZGV4LCBleGNsdXNpdmUsIG9mIHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGQuCisgICAgICAgICAqIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMgcGFyYW1ldGVyIGlzIHVwZGF0ZWQgdG8gcmVmbGVjdAorICAgICAgICAgKiBjaGFuZ2VzIGluIHRoZSBsZW5ndGggb2YgdGhlIHRleHQsIGJ1dCBwb2ludHMgdG8gdGhlIHNhbWUKKyAgICAgICAgICogbG9naWNhbCBwb3NpdGlvbiBpbiB0aGUgdGV4dC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGxpbWl0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGEgUG9zaXRpb24gb2JqZWN0IHdpdGggc3RhcnQsIGxpbWl0LAorICAgICAgICAgKiBjb250ZXh0U3RhcnQsIGFuZCBjb250ZXh0TGltaXQgYWxsIGVxdWFsIHRvIHplcm8uCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFBvc2l0aW9uKCkgeworICAgICAgICAgICAgdGhpcygwLCAwLCAwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGEgUG9zaXRpb24gb2JqZWN0IHdpdGggdGhlIGdpdmVuIHN0YXJ0LAorICAgICAgICAgKiBjb250ZXh0U3RhcnQsIGFuZCBjb250ZXh0TGltaXQuICBUaGUgbGltaXQgaXMgc2V0IHRvIHRoZQorICAgICAgICAgKiBjb250ZXh0TGltaXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFBvc2l0aW9uKGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0TGltaXQsIGludCBzdGFydCkgeworICAgICAgICAgICAgdGhpcyhjb250ZXh0U3RhcnQsIGNvbnRleHRMaW1pdCwgc3RhcnQsIGNvbnRleHRMaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIFBvc2l0aW9uIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBzdGFydCwgbGltaXQsCisgICAgICAgICAqIGNvbnRleHRTdGFydCwgYW5kIGNvbnRleHRMaW1pdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUG9zaXRpb24oaW50IGNvbnRleHRTdGFydCwgaW50IGNvbnRleHRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICB0aGlzLmNvbnRleHRTdGFydCA9IGNvbnRleHRTdGFydDsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dExpbWl0ID0gY29udGV4dExpbWl0OworICAgICAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBQb3NpdGlvbiBvYmplY3QgdGhhdCBpcyBhIGNvcHkgb2YgYW5vdGhlci4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUG9zaXRpb24oUG9zaXRpb24gcG9zKSB7CisgICAgICAgICAgICBzZXQocG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb3BpZXMgdGhlIGluZGljZXMgb2YgdGhpcyBwb3NpdGlvbiBmcm9tIGFub3RoZXIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0KFBvc2l0aW9uIHBvcykgeworICAgICAgICAgICAgY29udGV4dFN0YXJ0ID0gcG9zLmNvbnRleHRTdGFydDsKKyAgICAgICAgICAgIGNvbnRleHRMaW1pdCA9IHBvcy5jb250ZXh0TGltaXQ7CisgICAgICAgICAgICBzdGFydCA9IHBvcy5zdGFydDsKKyAgICAgICAgICAgIGxpbWl0ID0gcG9zLmxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIFBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiBvYmplY3QuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBQb3NpdGlvbikgeworICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvcyA9IChQb3NpdGlvbikgb2JqOworICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0U3RhcnQgPT0gcG9zLmNvbnRleHRTdGFydCAmJgorICAgICAgICAgICAgICAgICAgICBjb250ZXh0TGltaXQgPT0gcG9zLmNvbnRleHRMaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICBzdGFydCA9PSBwb3Muc3RhcnQgJiYKKyAgICAgICAgICAgICAgICAgICAgbGltaXQgPT0gcG9zLmxpbWl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBQb3NpdGlvbi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuICJbY3M9IiArIGNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgcz0iICsgc3RhcnQKKyAgICAgICAgICAgICAgICArICIsIGw9IiArIGxpbWl0CisgICAgICAgICAgICAgICAgKyAiLCBjbD0iICsgY29udGV4dExpbWl0CisgICAgICAgICAgICAgICAgKyAiXSI7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hlY2sgYWxsIGJvdW5kcy4gIElmIHRoZXkgYXJlIGludmFsaWQsIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICogQHBhcmFtIGxlbmd0aCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgdGhpcyBvYmplY3QgYXBwbGllcyB0bworICAgICAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbnkgaW5kaWNlcyBhcmUgb3V0CisgICAgICAgICAqIG9mIGJvdW5kcworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCB2b2lkIHZhbGlkYXRlKGludCBsZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChjb250ZXh0U3RhcnQgPCAwIHx8CisgICAgICAgICAgICAgICAgc3RhcnQgPCBjb250ZXh0U3RhcnQgfHwKKyAgICAgICAgICAgICAgICBsaW1pdCA8IHN0YXJ0IHx8CisgICAgICAgICAgICAgICAgY29udGV4dExpbWl0IDwgbGltaXQgfHwKKyAgICAgICAgICAgICAgICBsZW5ndGggPCBjb250ZXh0TGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIFBvc2l0aW9uIHtjcz0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRTdGFydCArICIsIHM9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArICIsIGw9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCArICIsIGNsPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dExpbWl0ICsgIn0sIGxlbj0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9ncmFtbWF0aWMgbmFtZSwgZS5nLiwgIkxhdGluLUFyYWJpYyIuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgSUQ7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHRyYW5zbGl0ZXJhdG9yJ3MgZmlsdGVyLiAgQW55IGNoYXJhY3RlciBmb3Igd2hpY2gKKyAgICAgKiA8dHQ+ZmlsdGVyLmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zIDx0dD5mYWxzZTwvdHQ+IHdpbGwgbm90IGJlCisgICAgICogYWx0ZXJlZCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgSWYgPHR0PmZpbHRlcjwvdHQ+IGlzCisgICAgICogPHR0Pm51bGw8L3R0PiB0aGVuIG5vIGZpbHRlcmluZyBpcyBhcHBsaWVkLgorICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZUZpbHRlciBmaWx0ZXI7CisKKyAgICBwcml2YXRlIGludCBtYXhpbXVtQ29udGV4dExlbmd0aCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gdHJhbnNsaXRlcmF0b3IgcmVnaXN0cnkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSByZWdpc3RyeTsKKworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBkaXNwbGF5TmFtZUNhY2hlOworCisgICAgLyoqCisgICAgICogUHJlZml4IGZvciByZXNvdXJjZSBidW5kbGUga2V5IGZvciB0aGUgZGlzcGxheSBuYW1lIGZvciBhCisgICAgICogdHJhbnNsaXRlcmF0b3IuICBUaGUgSUQgaXMgYXBwZW5kZWQgdG8gdGhpcyB0byBmb3JtIHRoZSBrZXkuCisgICAgICogVGhlIHJlc291cmNlIGJ1bmRsZSB2YWx1ZSBzaG91bGQgYmUgYSBTdHJpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJCX0RJU1BMQVlfTkFNRV9QUkVGSVggPSAiJVRyYW5zbGl0JSUiOworCisgICAgLyoqCisgICAgICogUHJlZml4IGZvciByZXNvdXJjZSBidW5kbGUga2V5IGZvciB0aGUgZGlzcGxheSBuYW1lIGZvciBhCisgICAgICogdHJhbnNsaXRlcmF0b3IgU0NSSVBULiAgVGhlIElEIGlzIGFwcGVuZGVkIHRvIHRoaXMgdG8gZm9ybSB0aGUga2V5LgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgdmFsdWUgc2hvdWxkIGJlIGEgU3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSQl9TQ1JJUFRfRElTUExBWV9OQU1FX1BSRUZJWCA9ICIlVHJhbnNsaXQlIjsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIGJ1bmRsZSBrZXkgZm9yIGRpc3BsYXkgbmFtZSBwYXR0ZXJuLgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgdmFsdWUgc2hvdWxkIGJlIGEgU3RyaW5nIGZvcm1pbmcgYQorICAgICAqIE1lc3NhZ2VGb3JtYXQgcGF0dGVybiwgZS5nLjoKKyAgICAgKiAiezAsY2hvaWNlLDAjfDEjezF9IFRyYW5zbGl0ZXJhdG9yfDIjezF9IHRvIHsyfSBUcmFuc2xpdGVyYXRvcn0iLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSQl9ESVNQTEFZX05BTUVfUEFUVEVSTiA9ICJUcmFuc2xpdGVyYXRvck5hbWVQYXR0ZXJuIjsKKworICAgIC8qKgorICAgICAqIERlbGltaXRlciBiZXR3ZWVuIGVsZW1lbnRzIGluIGEgY29tcG91bmQgSUQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgSURfREVMSU0gPSAnOyc7CisKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgYmVmb3JlIHRhcmdldCBpbiBhbiBJRC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBJRF9TRVAgPSAnLSc7CisKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgYmVmb3JlIHZhcmlhbnQgaW4gYW4gSUQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgVkFSSUFOVF9TRVAgPSAnLyc7CisKKyAgICAvKioKKyAgICAgKiBUbyBlbmFibGUgZGVidWdnaW5nIG91dHB1dCBpbiB0aGUgVHJhbnNsaXRlcmF0b3IgY29tcG9uZW50LCBzZXQKKyAgICAgKiBERUJVRyB0byB0cnVlLgorICAgICAqCisgICAgICogTi5CLiBNYWtlIHN1cmUgdG8gcmVjb21waWxlIGFsbCBvZiB0aGUgY29tLmlibS5pY3UudGV4dCBwYWNrYWdlCisgICAgICogYWZ0ZXIgY2hhbmdpbmcgdGhpcy4gIEVhc2llc3Qgd2F5IHRvIGRvIHRoaXMgaXMgJ2FudCBjbGVhbgorICAgICAqIGNvcmUnICgnYW50JyB3aWxsIE5PVCBwaWNrIHVwIHRoZSBkZXBlbmRlbmN5IGF1dG9tYXRpY2FsbHkpLgorICAgICAqCisgICAgICogPDxUaGlzIGdlbmVyYXRlcyBhIGxvdCBvZiBvdXRwdXQuPj4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogQHBhcmFtIElEIHRoZSBzdHJpbmcgaWRlbnRpZmllciBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvcgorICAgICAqIEBwYXJhbSBmaWx0ZXIgdGhlIGZpbHRlci4gIEFueSBjaGFyYWN0ZXIgZm9yIHdoaWNoCisgICAgICogPHR0PmZpbHRlci5jb250YWlucygpPC90dD4gcmV0dXJucyA8dHQ+ZmFsc2U8L3R0PiB3aWxsIG5vdCBiZQorICAgICAqIGFsdGVyZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4gIElmIDx0dD5maWx0ZXI8L3R0PiBpcworICAgICAqIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgaXMgYXBwbGllZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBpZiAoSUQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5JRCA9IElEOworICAgICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyBhIHNlZ21lbnQgb2YgYSBzdHJpbmcsIHdpdGggb3B0aW9uYWwgZmlsdGVyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSB0ZXh0Lmxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgbGltaXQgaW5kZXguICBUaGUgdGV4dCBwcmV2aW91c2x5IG9jY3VweWluZyA8Y29kZT5bc3RhcnQsCisgICAgICogbGltaXQpPC9jb2RlPiBoYXMgYmVlbiB0cmFuc2xpdGVyYXRlZCwgcG9zc2libHkgdG8gYSBzdHJpbmcgb2YgYSBkaWZmZXJlbnQKKyAgICAgKiBsZW5ndGgsIGF0IDxjb2RlPltzdGFydCwgPC9jb2RlPjxlbT5uZXctbGltaXQ8L2VtPjxjb2RlPik8L2NvZGU+LCB3aGVyZQorICAgICAqIDxlbT5uZXctbGltaXQ8L2VtPiBpcyB0aGUgcmV0dXJuIHZhbHVlLiBJZiB0aGUgaW5wdXQgb2Zmc2V0cyBhcmUgb3V0IG9mIGJvdW5kcywKKyAgICAgKiB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgLTEgYW5kIHRoZSBpbnB1dCBzdHJpbmcgcmVtYWlucyB1bmNoYW5nZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIGlmIChzdGFydCA8IDAgfHwKKyAgICAgICAgICAgIGxpbWl0IDwgc3RhcnQgfHwKKyAgICAgICAgICAgIHRleHQubGVuZ3RoKCkgPCBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgUG9zaXRpb24gcG9zID0gbmV3IFBvc2l0aW9uKHN0YXJ0LCBsaW1pdCwgc3RhcnQpOworICAgICAgICBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgcG9zLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBwb3MubGltaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZXMgYW4gZW50aXJlIHN0cmluZyBpbiBwbGFjZS4gQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQpIHsKKyAgICAgICAgdHJhbnNsaXRlcmF0ZSh0ZXh0LCAwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIGFuIGVudGlyZSBzdHJpbmcgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4gQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZAorICAgICAqIEByZXR1cm4gVGhlIHRyYW5zbGl0ZXJhdGVkIHRleHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIHRyYW5zbGl0ZXJhdGUoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcmVzdWx0ID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHRleHQpOworICAgICAgICB0cmFuc2xpdGVyYXRlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyB0aGUgcG9ydGlvbiBvZiB0aGUgdGV4dCBidWZmZXIgdGhhdCBjYW4gYmUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCB1bmFtYmlndW9zbHkgYWZ0ZXIgbmV3IHRleHQgaGFzIGJlZW4gaW5zZXJ0ZWQsCisgICAgICogdHlwaWNhbGx5IGFzIGEgcmVzdWx0IG9mIGEga2V5Ym9hcmQgZXZlbnQuICBUaGUgbmV3IHRleHQgaW4KKyAgICAgKiA8Y29kZT5pbnNlcnRpb248L2NvZGU+IHdpbGwgYmUgaW5zZXJ0ZWQgaW50byA8Y29kZT50ZXh0PC9jb2RlPgorICAgICAqIGF0IDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4sIGFkdmFuY2luZworICAgICAqIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4gYnkgPGNvZGU+aW5zZXJ0aW9uLmxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBUaGVuIHRoZSB0cmFuc2xpdGVyYXRvciB3aWxsIHRyeSB0byB0cmFuc2xpdGVyYXRlIGNoYXJhY3RlcnMgb2YKKyAgICAgKiA8Y29kZT50ZXh0PC9jb2RlPiBiZXR3ZWVuIDxjb2RlPmluZGV4LnN0YXJ0PC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+LiAgQ2hhcmFjdGVycyBiZWZvcmUKKyAgICAgKiA8Y29kZT5pbmRleC5zdGFydDwvY29kZT4gd2lsbCBub3QgYmUgY2hhbmdlZC4KKyAgICAgKgorICAgICAqIDxwPlVwb24gcmV0dXJuLCB2YWx1ZXMgaW4gPGNvZGU+aW5kZXg8L2NvZGU+IHdpbGwgYmUgdXBkYXRlZC4KKyAgICAgKiA8Y29kZT5pbmRleC5jb250ZXh0U3RhcnQ8L2NvZGU+IHdpbGwgYmUgYWR2YW5jZWQgdG8gdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIHRoYXQgZnV0dXJlIGNhbGxzIHRvIHRoaXMgbWV0aG9kIHdpbGwgcmVhZC4KKyAgICAgKiA8Y29kZT5pbmRleC5zdGFydDwvY29kZT4gYW5kIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4gd2lsbAorICAgICAqIGJlIGFkanVzdGVkIHRvIGRlbGltaXQgdGhlIHJhbmdlIG9mIHRleHQgdGhhdCBmdXR1cmUgY2FsbHMgdG8KKyAgICAgKiB0aGlzIG1ldGhvZCBtYXkgY2hhbmdlLgorICAgICAqCisgICAgICogPHA+VHlwaWNhbCB1c2FnZSBvZiB0aGlzIG1ldGhvZCBiZWdpbnMgd2l0aCBhbiBpbml0aWFsIGNhbGwKKyAgICAgKiB3aXRoIDxjb2RlPmluZGV4LmNvbnRleHRTdGFydDwvY29kZT4gYW5kIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4KKyAgICAgKiBzZXQgdG8gaW5kaWNhdGUgdGhlIHBvcnRpb24gb2YgPGNvZGU+dGV4dDwvY29kZT4gdG8gYmUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCwgYW5kIDxjb2RlPmluZGV4LnN0YXJ0ID09IGluZGV4LmNvbnRleHRTdGFydDwvY29kZT4uCisgICAgICogVGhlcmVhZnRlciwgPGNvZGU+aW5kZXg8L2NvZGU+IGNhbiBiZSB1c2VkIHdpdGhvdXQKKyAgICAgKiBtb2RpZmljYXRpb24gaW4gZnV0dXJlIGNhbGxzLCBwcm92aWRlZCB0aGF0IGFsbCBjaGFuZ2VzIHRvCisgICAgICogPGNvZGU+dGV4dDwvY29kZT4gYXJlIG1hZGUgdmlhIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogPHA+VGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0IGZ1dHVyZSBjYWxscyBtYXkgYmUgbWFkZSB0aGF0IHdpbGwKKyAgICAgKiBpbnNlcnQgbmV3IHRleHQgaW50byB0aGUgYnVmZmVyLiAgQXMgYSByZXN1bHQsIGl0IG9ubHkgcGVyZm9ybXMKKyAgICAgKiB1bmFtYmlndW91cyB0cmFuc2xpdGVyYXRpb25zLiAgQWZ0ZXIgdGhlIGxhc3QgY2FsbCB0byB0aGlzCisgICAgICogbWV0aG9kLCB0aGVyZSBtYXkgYmUgdW50cmFuc2xpdGVyYXRlZCB0ZXh0IHRoYXQgaXMgd2FpdGluZyBmb3IKKyAgICAgKiBtb3JlIGlucHV0IHRvIHJlc29sdmUgYW4gYW1iaWd1aXR5LiAgSW4gb3JkZXIgdG8gcGVyZm9ybSB0aGVzZQorICAgICAqIHBlbmRpbmcgdHJhbnNsaXRlcmF0aW9ucywgY2xpZW50cyBzaG91bGQgY2FsbCB7QGxpbmsKKyAgICAgKiAjZmluaXNoVHJhbnNsaXRlcmF0aW9ufSBhZnRlciB0aGUgbGFzdCBjYWxsIHRvIHRoaXMKKyAgICAgKiBtZXRob2QgaGFzIGJlZW4gbWFkZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBidWZmZXIgaG9sZGluZyB0cmFuc2xpdGVyYXRlZCBhbmQgdW50cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIHRleHQsIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBjdXJzb3IsIGFuZCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gaW5zZXJ0aW9uIHRleHQgdG8gYmUgaW5zZXJ0ZWQgYW5kIHBvc3NpYmx5CisgICAgICogdHJhbnNsaXRlcmF0ZWQgaW50byB0aGUgdHJhbnNsYXRpb24gYnVmZmVyIGF0CisgICAgICogPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPi4gIElmIDxjb2RlPm51bGw8L2NvZGU+IHRoZW4gbm8gdGV4dAorICAgICAqIGlzIGluc2VydGVkLgorICAgICAqIEBzZWUgI2hhbmRsZVRyYW5zbGl0ZXJhdGUKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5pbmRleDwvY29kZT4KKyAgICAgKiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpbnNlcnRpb24pIHsKKyAgICAgICAgaW5kZXgudmFsaWRhdGUodGV4dC5sZW5ndGgoKSk7CisKKy8vICAgICAgICBpbnQgb3JpZ2luYWxTdGFydCA9IGluZGV4LmNvbnRleHRTdGFydDsKKyAgICAgICAgaWYgKGluc2VydGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoaW5kZXgubGltaXQsIGluZGV4LmxpbWl0LCBpbnNlcnRpb24pOworICAgICAgICAgICAgaW5kZXgubGltaXQgKz0gaW5zZXJ0aW9uLmxlbmd0aCgpOworICAgICAgICAgICAgaW5kZXguY29udGV4dExpbWl0ICs9IGluc2VydGlvbi5sZW5ndGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleC5saW1pdCA+IDAgJiYKKyAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0ZXh0LmNoYXJBdChpbmRleC5saW1pdCAtIDEpKSkgeworICAgICAgICAgICAgLy8gT29wcywgdGhlcmUgaXMgYSBkYW5nbGluZyBsZWFkIHN1cnJvZ2F0ZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGJyZWFrIG1vc3QgdHJhbnNsaXRlcmF0b3JzLCBzaW5jZSB0aGV5IHdpbGwKKyAgICAgICAgICAgIC8vIGFzc3VtZSBpdCBpcyBwYXJ0IG9mIGEgcGFpci4gIERvbid0IHRyYW5zbGl0ZXJhdGUgdW50aWwKKyAgICAgICAgICAgIC8vIG1vcmUgdGV4dCBjb21lcyBpbi4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgdHJ1ZSwgdHJ1ZSk7CisKKy8vIFRPRE8KKy8vIFRoaXMgZG9lc24ndCB3b3JrIG9uY2Ugd2UgYWRkIHF1YW50aWZpZXIgc3VwcG9ydC4gIE5lZWQgdG8gcmV3cml0ZQorLy8gdGhpcyBjb2RlIHRvIHN1cHBvcnQgcXVhbnRpZmllcnMgYW5kICd1c2UgbWF4aW11bSBiYWNrdXAgPG4+OycuCisvLworLy8gICAgICAgIGluZGV4LmNvbnRleHRTdGFydCA9IE1hdGgubWF4KGluZGV4LnN0YXJ0IC0gZ2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyB0aGUgcG9ydGlvbiBvZiB0aGUgdGV4dCBidWZmZXIgdGhhdCBjYW4gYmUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCB1bmFtYmlndW9zbHkgYWZ0ZXIgYSBuZXcgY2hhcmFjdGVyIGhhcyBiZWVuCisgICAgICogaW5zZXJ0ZWQsIHR5cGljYWxseSBhcyBhIHJlc3VsdCBvZiBhIGtleWJvYXJkIGV2ZW50LiAgVGhpcyBpcyBhCisgICAgICogY29udmVuaWVuY2UgbWV0aG9kOyBzZWUge0BsaW5rICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLAorICAgICAqIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uLCBTdHJpbmcpfSBmb3IgZGV0YWlscy4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kCisgICAgICogdW50cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIHRleHQsIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBjdXJzb3IsIGFuZCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gaW5zZXJ0aW9uIHRleHQgdG8gYmUgaW5zZXJ0ZWQgYW5kIHBvc3NpYmx5CisgICAgICogdHJhbnNsaXRlcmF0ZWQgaW50byB0aGUgdHJhbnNsYXRpb24gYnVmZmVyIGF0CisgICAgICogPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPi4KKyAgICAgKiBAc2VlICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLCBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiwgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXJ0aW9uKSB7CisgICAgICAgIHRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIFVURjE2LnZhbHVlT2YoaW5zZXJ0aW9uKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZXMgdGhlIHBvcnRpb24gb2YgdGhlIHRleHQgYnVmZmVyIHRoYXQgY2FuIGJlCisgICAgICogdHJhbnNsaXRlcmF0ZWQgdW5hbWJpZ3Vvc2x5LiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZDsgc2VlCisgICAgICoge0BsaW5rICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLCBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiwKKyAgICAgKiBTdHJpbmcpfSBmb3IgZGV0YWlscy4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kCisgICAgICogdW50cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIHRleHQsIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBjdXJzb3IsIGFuZCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKiBAc2VlICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLCBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiwgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gaW5kZXgpIHsKKyAgICAgICAgdHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluaXNoZXMgYW55IHBlbmRpbmcgdHJhbnNsaXRlcmF0aW9ucyB0aGF0IHdlcmUgd2FpdGluZyBmb3IKKyAgICAgKiBtb3JlIGNoYXJhY3RlcnMuICBDbGllbnRzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIGFzIHRoZSBsYXN0CisgICAgICogY2FsbCBhZnRlciBhIHNlcXVlbmNlIG9mIG9uZSBvciBtb3JlIGNhbGxzIHRvCisgICAgICogPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kCisgICAgICogdW50cmFuc2xpdGVyYXRlZCB0ZXh0LgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgYXJyYXkgb2YgaW5kaWNlcyBwcmV2aW91c2x5IHBhc3NlZCB0byB7QGxpbmsKKyAgICAgKiAjdHJhbnNsaXRlcmF0ZX0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBmaW5pc2hUcmFuc2xpdGVyYXRpb24oUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgpIHsKKyAgICAgICAgaW5kZXgudmFsaWRhdGUodGV4dC5sZW5ndGgoKSk7CisgICAgICAgIGZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgZmFsc2UsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFic3RyYWN0IG1ldGhvZCB0aGF0IGNvbmNyZXRlIHN1YmNsYXNzZXMgZGVmaW5lIHRvIGltcGxlbWVudAorICAgICAqIHRoZWlyIHRyYW5zbGl0ZXJhdGlvbiBhbGdvcml0aG0uICBUaGlzIG1ldGhvZCBoYW5kbGVzIGJvdGgKKyAgICAgKiBpbmNyZW1lbnRhbCBhbmQgbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbi4gIExldAorICAgICAqIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+IHJlZmVyIHRvIHRoZSB2YWx1ZSBvZgorICAgICAqIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gdXBvbiBlbnRyeS4KKyAgICAgKgorICAgICAqIDx1bD4KKyAgICAgKiAgPGxpPklmIDxjb2RlPmluY3JlbWVudGFsPC9jb2RlPiBpcyBmYWxzZSwgdGhlbiB0aGlzIG1ldGhvZAorICAgICAqICBzaG91bGQgdHJhbnNsaXRlcmF0ZSBhbGwgY2hhcmFjdGVycyBiZXR3ZWVuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gYW5kIDxjb2RlPnBvcy5saW1pdDwvY29kZT4uIFVwb24gcmV0dXJuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gbXVzdCA9PSA8Y29kZT4gcG9zLmxpbWl0PC9jb2RlPi48L2xpPgorICAgICAqCisgICAgICogIDxsaT5JZiA8Y29kZT5pbmNyZW1lbnRhbDwvY29kZT4gaXMgdHJ1ZSwgdGhlbiB0aGlzIG1ldGhvZAorICAgICAqICBzaG91bGQgdHJhbnNsaXRlcmF0ZSBhbGwgY2hhcmFjdGVycyBiZXR3ZWVuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gYW5kIDxjb2RlPnBvcy5saW1pdDwvY29kZT4gdGhhdCBjYW4gYmUKKyAgICAgKiAgdW5hbWJpZ3VvdXNseSB0cmFuc2xpdGVyYXRlZCwgcmVnYXJkbGVzcyBvZiBmdXR1cmUgaW5zZXJ0aW9ucworICAgICAqICBvZiB0ZXh0IGF0IDxjb2RlPnBvcy5saW1pdDwvY29kZT4uICBVcG9uIHJldHVybiwKKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBzaG91bGQgYmUgaW4gdGhlIHJhbmdlCisgICAgICogIFs8Y29kZT5vcmlnaW5hbFN0YXJ0PC9jb2RlPiwgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPikuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gc2hvdWxkIGJlIHBvc2l0aW9uZWQgc3VjaCB0aGF0CisgICAgICogIGNoYXJhY3RlcnMgWzxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+LCA8Y29kZT4KKyAgICAgKiAgcG9zLnN0YXJ0PC9jb2RlPikgd2lsbCBub3QgYmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ5IHRoaXMKKyAgICAgKiAgdHJhbnNsaXRlcmF0b3IgYW5kIGNoYXJhY3RlcnMgWzxjb2RlPnBvcy5zdGFydDwvY29kZT4sCisgICAgICogIDxjb2RlPnBvcy5saW1pdDwvY29kZT4pIGFyZSB1bmNoYW5nZWQuPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogPHA+SW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIHNob3VsZCBhbHNvIG9iZXkgdGhlCisgICAgICogZm9sbG93aW5nIGludmFyaWFudHM6PC9wPgorICAgICAqCisgICAgICogPHVsPgorICAgICAqICA8bGk+IDxjb2RlPnBvcy5saW1pdDwvY29kZT4gYW5kIDxjb2RlPnBvcy5jb250ZXh0TGltaXQ8L2NvZGU+CisgICAgICogIHNob3VsZCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKiAgYmV0d2VlbiA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IGFuZCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+LiBUaGUKKyAgICAgKiAgZGlmZmVyZW5jZSA8Y29kZT4gcG9zLmNvbnRleHRMaW1pdCAtIHBvcy5saW1pdDwvY29kZT4gc2hvdWxkCisgICAgICogIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+PGNvZGU+cG9zLmNvbnRleHRTdGFydDwvY29kZT4gc2hvdWxkIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+VXBvbiByZXR1cm4sIG5laXRoZXIgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBub3IKKyAgICAgKiAgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiBzaG91bGQgYmUgbGVzcyB0aGFuCisgICAgICogIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+LjwvbGk+CisgICAgICoKKyAgICAgKiAgPGxpPlRleHQgYmVmb3JlIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+IGFuZCB0ZXh0IGFmdGVyCisgICAgICogIDxjb2RlPnBvcy5saW1pdDwvY29kZT4gc2hvdWxkIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+VGV4dCBiZWZvcmUgPGNvZGU+cG9zLmNvbnRleHRTdGFydDwvY29kZT4gYW5kIHRleHQgYWZ0ZXIKKyAgICAgKiAgPGNvZGU+IHBvcy5jb250ZXh0TGltaXQ8L2NvZGU+IHNob3VsZCBiZSBpZ25vcmVkLjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgbWF5IHNhZmVseSBhc3N1bWUgdGhhdCBhbGwgY2hhcmFjdGVycyBpbgorICAgICAqIFs8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+LCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+KSBhcmUgZmlsdGVyZWQuCisgICAgICogSW4gb3RoZXIgd29yZHMsIHRoZSBmaWx0ZXIgaGFzIGFscmVhZHkgYmVlbiBhcHBsaWVkIGJ5IHRoZSB0aW1lCisgICAgICogdGhpcyBtZXRob2QgaXMgY2FsbGVkLiAgU2VlCisgICAgICogPGNvZGU+ZmlsdGVyZWRUcmFuc2xpdGVyYXRlKCk8L2NvZGU+LgorICAgICAqCisgICAgICogPHA+VGhpcyBtZXRob2QgaXMgPGI+bm90PC9iPiBmb3IgcHVibGljIGNvbnN1bXB0aW9uLiAgQ2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kIGRpcmVjdGx5IHdpbGwgdHJhbnNsaXRlcmF0ZQorICAgICAqIFs8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+LCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+KSB3aXRob3V0CisgICAgICogYXBwbHlpbmcgdGhlIGZpbHRlci4gRW5kIHVzZXIgY29kZSBzaG91bGQgY2FsbCA8Y29kZT4KKyAgICAgKiB0cmFuc2xpdGVyYXRlKCk8L2NvZGU+IGluc3RlYWQgb2YgdGhpcyBtZXRob2QuIFN1YmNsYXNzIGNvZGUKKyAgICAgKiBzaG91bGQgY2FsbCA8Y29kZT5maWx0ZXJlZFRyYW5zbGl0ZXJhdGUoKTwvY29kZT4gaW5zdGVhZCBvZgorICAgICAqIHRoaXMgbWV0aG9kLjxwPgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ1ZmZlciBob2xkaW5nIHRyYW5zbGl0ZXJhdGVkIGFuZAorICAgICAqIHVudHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAqCisgICAgICogQHBhcmFtIHBvcyB0aGUgaW5kaWNlcyBpbmRpY2F0aW5nIHRoZSBzdGFydCwgbGltaXQsIGNvbnRleHQKKyAgICAgKiBzdGFydCwgYW5kIGNvbnRleHQgbGltaXQgb2YgdGhlIHRleHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgdHJ1ZSwgYXNzdW1lIG1vcmUgdGV4dCBtYXkgYmUgaW5zZXJ0ZWQgYXQKKyAgICAgKiA8Y29kZT5wb3MubGltaXQ8L2NvZGU+IGFuZCBhY3QgYWNjb3JkaW5nbHkuICBPdGhlcndpc2UsCisgICAgICogdHJhbnNsaXRlcmF0ZSBhbGwgdGV4dCBiZXR3ZWVuIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gYW5kCisgICAgICogPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiBhbmQgbW92ZSA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IHVwIHRvCisgICAgICogPGNvZGU+cG9zLmxpbWl0PC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZWUgI3RyYW5zbGl0ZXJhdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaW5jcmVtZW50YWwpOworCisgICAgLyoqCisgICAgICogVG9wLWxldmVsIHRyYW5zbGl0ZXJhdGlvbiBtZXRob2QsIGhhbmRsaW5nIGZpbHRlcmluZywgaW5jcmVtZW50YWwgYW5kCisgICAgICogbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbiwgYW5kIHJvbGxiYWNrLiAgQWxsIHRyYW5zbGl0ZXJhdGlvbgorICAgICAqIHB1YmxpYyBBUEkgbWV0aG9kcyBldmVudHVhbGx5IGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBhIHJvbGxiYWNrIGFyZ3VtZW50CisgICAgICogb2YgVFJVRS4gIE90aGVyIGVudGl0aWVzIG1heSBjYWxsIHRoaXMgbWV0aG9kIGJ1dCByb2xsYmFjayBzaG91bGQgYmUKKyAgICAgKiBGQUxTRS4KKyAgICAgKgorICAgICAqIDxwPklmIHRoaXMgdHJhbnNsaXRlcmF0b3IgaGFzIGEgZmlsdGVyLCBicmVhayB1cCB0aGUgaW5wdXQgdGV4dCBpbnRvIHJ1bnMKKyAgICAgKiBvZiB1bmZpbHRlcmVkIGNoYXJhY3RlcnMuICBQYXNzIGVhY2ggcnVuIHRvCisgICAgICogPHN1YmNsYXNzPi5oYW5kbGVUcmFuc2xpdGVyYXRlKCkuCisgICAgICoKKyAgICAgKiA8cD5JbiBpbmNyZW1lbnRhbCBtb2RlLCBpZiByb2xsYmFjayBpcyBUUlVFLCBwZXJmb3JtIGEgc3BlY2lhbAorICAgICAqIGluY3JlbWVudGFsIHByb2NlZHVyZSBpbiB3aGljaCBzZXZlcmFsIHBhc3NlcyBhcmUgbWFkZSBvdmVyIHRoZSBpbnB1dAorICAgICAqIHRleHQsIGFkZGluZyBvbmUgY2hhcmFjdGVyIGF0IGEgdGltZSwgYW5kIGNvbW1pdHRpbmcgc3VjY2Vzc2Z1bAorICAgICAqIHRyYW5zbGl0ZXJhdGlvbnMgYXMgdGhleSBvY2N1ci4gIFVuc3VjY2Vzc2Z1bCB0cmFuc2xpdGVyYXRpb25zIGFyZSByb2xsZWQKKyAgICAgKiBiYWNrIGFuZCByZXRyaWVkIHdpdGggYWRkaXRpb25hbCBjaGFyYWN0ZXJzIHRvIGdpdmUgY29ycmVjdCByZXN1bHRzLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHBvc2l0aW9uIGluZGljZXMKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgbW9yZSBjaGFyYWN0ZXJzIG1heSBiZSBpbnNlcnRlZAorICAgICAqIGF0IGluZGV4LmxpbWl0LCBhbmQgcG9zdHBvbmUgcHJvY2Vzc2luZyB0byBhY2NvbW9kYXRlIGZ1dHVyZSBpbmNvbWluZworICAgICAqIGNoYXJhY3RlcnMKKyAgICAgKiBAcGFyYW0gcm9sbGJhY2sgaWYgVFJVRSBhbmQgaWYgaW5jcmVtZW50YWwgaXMgVFJVRSwgdGhlbiBwZXJmb3JtIHNwZWNpYWwKKyAgICAgKiBpbmNyZW1lbnRhbCBwcm9jZXNzaW5nLCBhcyBkZXNjcmliZWQgYWJvdmUsIGFuZCB1bmRvIHBhcnRpYWwKKyAgICAgKiB0cmFuc2xpdGVyYXRpb25zIHdoZXJlIG5lY2Vzc2FyeS4gIElmIGluY3JlbWVudGFsIGlzIEZBTFNFIHRoZW4gdGhpcworICAgICAqIHBhcmFtZXRlciBpcyBpZ25vcmVkLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcm9sbGJhY2spIHsKKyAgICAgICAgLy8gU2hvcnQgY2lyY3VpdCBwYXRoIGZvciB0cmFuc2xpdGVyYXRvcnMgd2l0aCBubyBmaWx0ZXIgaW4KKyAgICAgICAgLy8gbm9uLWluY3JlbWVudGFsIG1vZGUuCisgICAgICAgIGlmIChmaWx0ZXIgPT0gbnVsbCAmJiAhcm9sbGJhY2spIHsKKyAgICAgICAgICAgIGhhbmRsZVRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBUaGlzIG1ldGhvZCBwcm9jZXNzZXMgdGV4dCBpbiB0d28gZ3JvdXBpbmdzOgorICAgICAgICAvLworICAgICAgICAvLyBSVU5TIC0tIEEgcnVuIGlzIGEgY29udGlndW91cyBncm91cCBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBjb250YWluZWQKKyAgICAgICAgLy8gaW4gdGhlIGZpbHRlciBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvciAoZmlsdGVyLmNvbnRhaW5zKGNoKSA9PSB0cnVlKS4KKyAgICAgICAgLy8gVGV4dCBvdXRzaWRlIG9mIHJ1bnMgbWF5IGFwcGVhciBhcyBjb250ZXh0IGJ1dCBpdCBpcyBub3QgbW9kaWZpZWQuCisgICAgICAgIC8vIFRoZSBzdGFydCBhbmQgbGltaXQgUG9zaXRpb24gdmFsdWVzIGFyZSBuYXJyb3dlZCB0byBlYWNoIHJ1bi4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gUEFTU0VTIChpbmNyZW1lbnRhbCBvbmx5KSAtLSBUbyBtYWtlIGluY3JlbWVudGFsIG1vZGUgd29yayBjb3JyZWN0bHksCisgICAgICAgIC8vIGVhY2ggcnVuIGlzIGJyb2tlbiB1cCBpbnRvIG4gcGFzc2VzLCB3aGVyZSBuIGlzIHRoZSBsZW5ndGggKGluIGNvZGUKKyAgICAgICAgLy8gcG9pbnRzKSBvZiB0aGUgcnVuLiAgRWFjaCBwYXNzIGNvbnRhaW5zIHRoZSBmaXJzdCBuIGNoYXJhY3RlcnMuICBJZiBhCisgICAgICAgIC8vIHBhc3MgaXMgY29tcGxldGVseSB0cmFuc2xpdGVyYXRlZCwgaXQgaXMgY29tbWl0dGVkLCBhbmQgZnVydGhlciBwYXNzZXMKKyAgICAgICAgLy8gaW5jbHVkZSBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBjb21taXR0ZWQgdGV4dC4gIElmIGEgcGFzcyBpcyBibG9ja2VkLAorICAgICAgICAvLyBhbmQgZG9lcyBub3QgdHJhbnNsaXRlcmF0ZSBjb21wbGV0ZWx5LCB0aGVuIHRoaXMgbWV0aG9kIHJvbGxzIGJhY2sKKyAgICAgICAgLy8gdGhlIGNoYW5nZXMgbWFkZSBkdXJpbmcgdGhlIHBhc3MsIGV4dGVuZHMgdGhlIHBhc3MgYnkgb25lIGNvZGUgcG9pbnQsCisgICAgICAgIC8vIGFuZCB0cmllcyBhZ2Fpbi4KKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLy8gZ2xvYmFsTGltaXQgaXMgdGhlIGxpbWl0IHZhbHVlIGZvciB0aGUgZW50aXJlIG9wZXJhdGlvbi4gIFdlCisgICAgICAgIC8vIHNldCBpbmRleC5saW1pdCB0byB0aGUgZW5kIG9mIGVhY2ggdW5maWx0ZXJlZCBydW4gYmVmb3JlCisgICAgICAgIC8vIGNhbGxpbmcgaGFuZGxlVHJhbnNsaXRlcmF0ZSgpLCBzbyB3ZSBuZWVkIHRvIG1haW50YWluIHRoZSByZWFsCisgICAgICAgIC8vIHZhbHVlIG9mIGluZGV4LmxpbWl0IGhlcmUuICBBZnRlciBlYWNoIHRyYW5zbGl0ZXJhdGlvbiwgd2UKKyAgICAgICAgLy8gdXBkYXRlIGdsb2JhbExpbWl0IGZvciBpbnNlcnRpb25zIG9yIGRlbGV0aW9ucyB0aGF0IGhhdmUKKyAgICAgICAgLy8gaGFwcGVuZWQuCisgICAgICAgIGludCBnbG9iYWxMaW1pdCA9IGluZGV4LmxpbWl0OworCisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgbm9uLW51bGwgZmlsdGVyLCB0aGVuIGJyZWFrIHRoZSBpbnB1dCB0ZXh0IHVwLiAgU2F5IHRoZQorICAgICAgICAvLyBpbnB1dCB0ZXh0IGhhcyB0aGUgZm9ybToKKyAgICAgICAgLy8gICB4eHhhYmN4eGRlZnh4CisgICAgICAgIC8vIHdoZXJlICd4JyByZXByZXNlbnRzIGEgZmlsdGVyZWQgY2hhcmFjdGVyIChmaWx0ZXIuY29udGFpbnMoJ3gnKSA9PQorICAgICAgICAvLyBmYWxzZSkuICBUaGVuIHdlIGJyZWFrIHRoaXMgdXAgaW50bzoKKyAgICAgICAgLy8gICB4eHhhYmMgeHhkZWYgeHgKKyAgICAgICAgLy8gRWFjaCBwYXNzIHRocm91Z2ggdGhlIGxvb3AgY29uc3VtZXMgYSBydW4gb2YgZmlsdGVyZWQKKyAgICAgICAgLy8gY2hhcmFjdGVycyAod2hpY2ggYXJlIGlnbm9yZWQpIGFuZCBhIHN1YnNlcXVlbnQgcnVuIG9mCisgICAgICAgIC8vIHVuZmlsdGVyZWQgY2hhcmFjdGVycyAod2hpY2ggYXJlIHRyYW5zbGl0ZXJhdGVkKS4KKworICAgICAgICBTdHJpbmdCdWZmZXIgbG9nID0gbnVsbDsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKDs7KSB7CisKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIE5hcnJvdyB0aGUgcmFuZ2UgdG8gYmUgdHJhbnNsaXRlcmF0ZWQgdG8gdGhlIGZpcnN0IHJ1bgorICAgICAgICAgICAgICAgIC8vIG9mIHVuZmlsdGVyZWQgY2hhcmFjdGVycyBhdCBvciBhZnRlciBpbmRleC5zdGFydC4KKworICAgICAgICAgICAgICAgIC8vIEFkdmFuY2UgcGFzdCBmaWx0ZXJlZCBjaGFycworICAgICAgICAgICAgICAgIGludCBjOworICAgICAgICAgICAgICAgIHdoaWxlIChpbmRleC5zdGFydCA8IGdsb2JhbExpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgICAgICFmaWx0ZXIuY29udGFpbnMoYz10ZXh0LmNoYXIzMkF0KGluZGV4LnN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXguc3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGVuZCBvZiB0aGlzIHJ1biBvZiB1bmZpbHRlcmVkIGNoYXJzCisgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgPSBpbmRleC5zdGFydDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaW5kZXgubGltaXQgPCBnbG9iYWxMaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuY29udGFpbnMoYz10ZXh0LmNoYXIzMkF0KGluZGV4LmxpbWl0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB1bmZpbHRlcmVkIHJ1biBpcyBlbXB0eS4gIFRoaXMgb25seQorICAgICAgICAgICAgLy8gaGFwcGVucyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgd2hlbiBhbGwgdGhlIHJlbWFpbmluZworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgPT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSXMgdGhpcyBydW4gaW5jcmVtZW50YWw/ICBJZiB0aGVyZSBpcyBhZGRpdGlvbmFsCisgICAgICAgICAgICAvLyBmaWx0ZXJlZCB0ZXh0IChpZiBsaW1pdCA8IGdsb2JhbExpbWl0KSB0aGVuIHdlIHBhc3MgaW4KKyAgICAgICAgICAgIC8vIGFuIGluY3JlbWVudGFsIHZhbHVlIG9mIEZBTFNFIHRvIGZvcmNlIHRoZSBzdWJjbGFzcyB0bworICAgICAgICAgICAgLy8gY29tcGxldGUgdGhlIHRyYW5zbGl0ZXJhdGlvbiBmb3IgdGhpcyBydW4uCisgICAgICAgICAgICBib29sZWFuIGlzSW5jcmVtZW50YWxSdW4gPQorICAgICAgICAgICAgICAgIChpbmRleC5saW1pdCA8IGdsb2JhbExpbWl0ID8gZmFsc2UgOiBpbmNyZW1lbnRhbCk7CisKKyAgICAgICAgICAgIGludCBkZWx0YTsKKworICAgICAgICAgICAgLy8gSW1wbGVtZW50IHJvbGxiYWNrLiAgVG8gdW5kZXJzdGFuZCB0aGUgbmVlZCBmb3Igcm9sbGJhY2ssCisgICAgICAgICAgICAvLyBjb25zaWRlciB0aGUgZm9sbG93aW5nIHRyYW5zbGl0ZXJhdG9yOgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAidCIgaXMgImEgPiBBOyIKKyAgICAgICAgICAgIC8vICAidSIgaXMgIkEgPiBiOyIKKyAgICAgICAgICAgIC8vICAidiIgaXMgYSBjb21wb3VuZCBvZiAidDsgTkZEOyB1IiB3aXRoIGEgZmlsdGVyIFs6TGw6XQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdyBhcHBseSAidiIgdG8gdGhlIGlucHV0IHRleHQgImEiLiAgVGhlIHJlc3VsdCBpcyAiYiIuICBCdXQgaWYKKyAgICAgICAgICAgIC8vIHRoZSB0cmFuc2xpdGVyYXRpb24gaXMgZG9uZSBpbmNyZW1lbnRhbGx5LCB0aGVuIHRoZSBORkQgaG9sZHMKKyAgICAgICAgICAgIC8vIHRoaW5ncyB1cCBhZnRlciAidCIgaGFzIGFscmVhZHkgdHJhbnNmb3JtZWQgImEiIHRvICJBIi4gIFdoZW4KKyAgICAgICAgICAgIC8vIGZpbmlzaFRyYW5zbGl0ZXJhdGUoKSBpcyBjYWxsZWQsICJBIiBpcyBfbm90XyBwcm9jZXNzZWQgYmVjYXVzZQorICAgICAgICAgICAgLy8gaXQgZ2V0cyBleGNsdWRlZCBieSB0aGUgWzpMbDpdIGZpbHRlciwgYW5kIHRoZSBlbmQgcmVzdWx0IGlzICJBIgorICAgICAgICAgICAgLy8gLS0gaW5jb3JyZWN0LiAgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgZmlsdGVyIGlzIGFwcGxpZWQgdG8gYQorICAgICAgICAgICAgLy8gcGFydGlhbGx5LXRyYW5zbGl0ZXJhdGVkIHJlc3VsdCwgd2hlbiB3ZSBvbmx5IHdhbnQgaXQgdG8gYXBwbHkgdG8KKyAgICAgICAgICAgIC8vIGlucHV0IHRleHQuICBBbHRob3VnaCB0aGlzIGV4YW1wbGUgZGVzY3JpYmVzIGEgY29tcG91bmQKKyAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdG9yIGNvbnRhaW5pbmcgTkZEIGFuZCBhIHNwZWNpZmljIGZpbHRlciwgaXQgY2FuCisgICAgICAgICAgICAvLyBoYXBwZW4gd2l0aCBhbnkgdHJhbnNsaXRlcmF0b3Igd2hpY2ggZG9lcyBhIHBhcnRpYWwKKyAgICAgICAgICAgIC8vIHRyYW5zZm9ybWF0aW9uIGluIGluY3JlbWVudGFsIG1vZGUgaW50byBjaGFyYWN0ZXJzIG91dHNpZGUgaXRzCisgICAgICAgICAgICAvLyBmaWx0ZXIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gVG8gaGFuZGxlIHRoaXMsIHdoZW4gaW4gaW5jcmVtZW50YWwgbW9kZSB3ZSBzdXBwbHkgY2hhcmFjdGVycyB0bworICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIGluIHNldmVyYWwgcGFzc2VzLiAgRWFjaCBwYXNzIGFkZHMgb25lIG1vcmUKKyAgICAgICAgICAgIC8vIGlucHV0IGNoYXJhY3RlciB0byB0aGUgaW5wdXQgdGV4dC4gIFRoYXQgaXMsIGZvciBpbnB1dCAiQUJDRCIsIHdlCisgICAgICAgICAgICAvLyBmaXJzdCB0cnkgIkEiLCB0aGVuICJBQiIsIHRoZW4gIkFCQyIsIGFuZCBmaW5hbGx5ICJBQkNEIi4gIElmIGF0CisgICAgICAgICAgICAvLyBhbnkgcG9pbnQgd2UgYmxvY2sgKHVwb24gcmV0dXJuLCBzdGFydCA8IGxpbWl0KSB0aGVuIHdlIHJvbGwKKyAgICAgICAgICAgIC8vIGJhY2suICBJZiBhdCBhbnkgcG9pbnQgd2UgY29tcGxldGUgdGhlIHJ1biAodXBvbiByZXR1cm4gc3RhcnQgPT0KKyAgICAgICAgICAgIC8vIGxpbWl0KSB0aGVuIHdlIGNvbW1pdCB0aGF0IHJ1bi4KKworICAgICAgICAgICAgaWYgKHJvbGxiYWNrICYmIGlzSW5jcmVtZW50YWxSdW4pIHsKKworICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbHRlcmVkVHJhbnNsaXRlcmF0ZXsiK2dldElEKCkrIn1pOiBJTj0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIGluZGV4KSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IHJ1blN0YXJ0ID0gaW5kZXguc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IHJ1bkxpbWl0ID0gaW5kZXgubGltaXQ7CisgICAgICAgICAgICAgICAgaW50IHJ1bkxlbmd0aCA9ICBydW5MaW1pdCAtIHJ1blN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gTWFrZSBhIHJvbGxiYWNrIGNvcHkgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nCisgICAgICAgICAgICAgICAgaW50IHJvbGxiYWNrT3JpZ2luID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0ZXh0LmNvcHkocnVuU3RhcnQsIHJ1bkxpbWl0LCByb2xsYmFja09yaWdpbik7CisKKyAgICAgICAgICAgICAgICAvLyBWYXJpYWJsZXMgcmVmbGVjdGluZyB0aGUgY29tbWl0bWVudCBvZiBjb21wbGV0ZWx5CisgICAgICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0ZWQgdGV4dC4gIHBhc3NTdGFydCBpcyB0aGUgcnVuU3RhcnQsIGFkdmFuY2VkCisgICAgICAgICAgICAgICAgLy8gcGFzdCBjb21taXR0ZWQgdGV4dC4gIHJvbGxiYWNrU3RhcnQgaXMgdGhlIHJvbGxiYWNrT3JpZ2luLAorICAgICAgICAgICAgICAgIC8vIGFkdmFuY2VkIHBhc3Qgcm9sbGJhY2sgdGV4dCB0aGF0IGNvcnJlc3BvbmRzIHRvIGNvbW1pdHRlZAorICAgICAgICAgICAgICAgIC8vIHRleHQuCisgICAgICAgICAgICAgICAgaW50IHBhc3NTdGFydCA9IHJ1blN0YXJ0OworICAgICAgICAgICAgICAgIGludCByb2xsYmFja1N0YXJ0ID0gcm9sbGJhY2tPcmlnaW47CisKKyAgICAgICAgICAgICAgICAvLyBUaGUgbGltaXQgZm9yIGVhY2ggcGFzczsgd2UgYWR2YW5jZSBieSBvbmUgY29kZSBwb2ludCB3aXRoCisgICAgICAgICAgICAgICAgLy8gZWFjaCBpdGVyYXRpb24uCisgICAgICAgICAgICAgICAgaW50IHBhc3NMaW1pdCA9IGluZGV4LnN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gVG90YWwgbGVuZ3RoLCBpbiAxNi1iaXQgY29kZSB1bml0cywgb2YgdW5jb21taXR0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBsZW5ndGggdG8gYmUgcm9sbGVkIGJhY2suCisgICAgICAgICAgICAgICAgaW50IHVuY29tbWl0dGVkTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgIC8vIFRvdGFsIGRlbHRhIChjaGFuZ2UgaW4gbGVuZ3RoKSBmb3IgYWxsIHBhc3NlcworICAgICAgICAgICAgICAgIGludCB0b3RhbERlbHRhID0gMDsKKworICAgICAgICAgICAgICAgIC8vIFBBU1MgTUFJTiBMT09QIC0tIFN0YXJ0IHdpdGggYSBzaW5nbGUgY2hhcmFjdGVyLCBhbmQgZXh0ZW5kCisgICAgICAgICAgICAgICAgLy8gdGhlIHRleHQgYnkgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUuICBSb2xsIGJhY2sgcGFydGlhbAorICAgICAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGlvbnMgYW5kIGNvbW1pdCBjb21wbGV0ZSB0cmFuc2xpdGVyYXRpb25zLgorICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTGVuZ3RoIG9mIGFkZGl0aW9uYWwgY29kZSBwb2ludCwgZWl0aGVyIG9uZSBvciB0d28KKyAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJMZW5ndGggPQorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQocGFzc0xpbWl0KSk7CisgICAgICAgICAgICAgICAgICAgIHBhc3NMaW1pdCArPSBjaGFyTGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBpZiAocGFzc0xpbWl0ID4gcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHVuY29tbWl0dGVkTGVuZ3RoICs9IGNoYXJMZW5ndGg7CisKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgPSBwYXNzTGltaXQ7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifWk6ICIpOworICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBEZWxlZ2F0ZSB0byBzdWJjbGFzcyBmb3IgYWN0dWFsIHRyYW5zbGl0ZXJhdGlvbi4gIFVwb24KKyAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuLCBzdGFydCB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgYWZ0ZXIgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGVkIHRleHQsIGFuZCBsaW1pdCBhbmQgY29udGV4dExpbWl0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgICAgLy8gYWRqdXN0ZWQgZm9yIGxlbmd0aCBjaGFuZ2VzLgorICAgICAgICAgICAgICAgICAgICBoYW5kbGVUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCB0cnVlKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIiA9PiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBpbmRleC5saW1pdCAtIHBhc3NMaW1pdDsgLy8gY2hhbmdlIGluIGxlbmd0aAorCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZhaWxlZCB0byBjb21wbGV0ZWx5IHRyYW5zbGl0ZXJhdGUgdGhpcyBwYXNzLgorICAgICAgICAgICAgICAgICAgICAvLyBSb2xsIGJhY2sgdGhlIHRleHQuICBJbmRpY2VzIHJlbWFpbiB1bmNoYW5nZWQ7IHJlc2V0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZW0gd2hlcmUgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgIT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIHJvbGxiYWNrU3RhcnQsIGFkanVzdGVkIGZvciBsZW5ndGggY2hhbmdlcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBkZWxldGlvbiBvZiBwYXJ0aWFsbHkgdHJhbnNsaXRlcmF0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBycyA9IHJvbGxiYWNrU3RhcnQgKyBkZWx0YSAtIChpbmRleC5saW1pdCAtIHBhc3NTdGFydCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgcGFydGlhbGx5IHRyYW5zbGl0ZXJhdGVkIHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShwYXNzU3RhcnQsIGluZGV4LmxpbWl0LCAiIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvcHkgdGhlIHJvbGxiYWNrIHRleHQgYmFjaworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5jb3B5KHJzLCBycyArIHVuY29tbWl0dGVkTGVuZ3RoLCBwYXNzU3RhcnQpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIGluZGljZXMgdG8gdGhlaXIgb3JpZ2luYWwgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleC5zdGFydCA9IHBhc3NTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LmxpbWl0ID0gcGFzc0xpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXguY29udGV4dExpbWl0IC09IGRlbHRhOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgKFJPTExCQUNLKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgZGlkIGNvbXBsZXRlbHkgdHJhbnNsaXRlcmF0ZSB0aGlzIHBhc3MuICBVcGRhdGUgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1pdCBpbmRpY2VzIHRvIHJlY29yZCBob3cgZmFyIHdlIGdvdC4gIEFkanVzdCBpbmRpY2VzCisgICAgICAgICAgICAgICAgICAgIC8vIGZvciBsZW5ndGggY2hhbmdlLgorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdGhlIHBhc3MgaW5kaWNlcyBwYXN0IHRoZSBjb21taXR0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NTdGFydCA9IHBhc3NMaW1pdCA9IGluZGV4LnN0YXJ0OworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgdGhlIHJvbGxiYWNrU3RhcnQgZm9yIGxlbmd0aCBjaGFuZ2VzIGFuZCBtb3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBwYXN0IHRoZSBjb21taXR0ZWQgdGV4dC4gIEFsbCBjaGFyYWN0ZXJzIHdlJ3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzZWQgdG8gdGhpcyBwb2ludCBhcmUgY29tbWl0dGVkIG5vdywgc28gemVybworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0IHRoZSB1bmNvbW1pdHRlZExlbmd0aC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGxiYWNrU3RhcnQgKz0gZGVsdGEgKyB1bmNvbW1pdHRlZExlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuY29tbWl0dGVkTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IGluZGljZXMgZm9yIGxlbmd0aCBjaGFuZ2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgcnVuTGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbERlbHRhICs9IGRlbHRhOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEFkanVzdCBvdmVyYWxsIGxpbWl0IGFuZCByb2xsYmFja09yaWdpbiBmb3IgaW5zZXJ0aW9ucyBhbmQKKyAgICAgICAgICAgICAgICAvLyBkZWxldGlvbnMuICBEb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGNvbnRleHRMaW1pdCBiZWNhdXNlCisgICAgICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIG1haW50YWlucyB0aGF0LgorICAgICAgICAgICAgICAgIHJvbGxiYWNrT3JpZ2luICs9IHRvdGFsRGVsdGE7CisgICAgICAgICAgICAgICAgZ2xvYmFsTGltaXQgKz0gdG90YWxEZWx0YTsKKworICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgcm9sbGJhY2sgY29weQorICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShyb2xsYmFja09yaWdpbiwgcm9sbGJhY2tPcmlnaW4gKyBydW5MZW5ndGgsICIiKTsKKworICAgICAgICAgICAgICAgIC8vIE1vdmUgc3RhcnQgcGFzdCBjb21taXR0ZWQgdGV4dAorICAgICAgICAgICAgICAgIGluZGV4LnN0YXJ0ID0gcGFzc1N0YXJ0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEZWxlZ2F0ZSB0byBzdWJjbGFzcyBmb3IgYWN0dWFsIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifTogIik7CisgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IGluZGV4LmxpbWl0OworICAgICAgICAgICAgICAgIGhhbmRsZVRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGlzSW5jcmVtZW50YWxSdW4pOworICAgICAgICAgICAgICAgIGRlbHRhID0gaW5kZXgubGltaXQgLSBsaW1pdDsgLy8gY2hhbmdlIGluIGxlbmd0aAorCisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIiA9PiAiKTsKKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gSW4gYSBwcm9wZXJseSB3cml0dGVuIHRyYW5zbGl0ZXJhdG9yLCBzdGFydCA9PSBsaW1pdCBhZnRlcgorICAgICAgICAgICAgICAgIC8vIGhhbmRsZVRyYW5zbGl0ZXJhdGUoKSByZXR1cm5zIHdoZW4gaW5jcmVtZW50YWwgaXMgZmFsc2UuCisgICAgICAgICAgICAgICAgLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgdGhlIHN1YmNsYXNzIGRvZXNuJ3QgZG8gdGhpcywgYW5kIHRocm93CisgICAgICAgICAgICAgICAgLy8gYW4gZXhjZXB0aW9uLiAgKEp1c3QgcGlubmluZyBzdGFydCB0byBsaW1pdCBpcyBhIGJhZCBpZGVhLAorICAgICAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2hhdCdzIHByb2JhYmx5IGhhcHBlbmluZyBpcyB0aGF0IHRoZSBzdWJjbGFzcworICAgICAgICAgICAgICAgIC8vIGlzbid0IHRyYW5zbGl0ZXJhdGluZyBhbGwgdGhlIHdheSB0byB0aGUgZW5kLCBhbmQgaXQgc2hvdWxkCisgICAgICAgICAgICAgICAgLy8gaW4gbm9uLWluY3JlbWVudGFsIG1vZGUuKQorICAgICAgICAgICAgICAgIGlmICghaXNJbmNyZW1lbnRhbFJ1biAmJiBpbmRleC5zdGFydCAhPSBpbmRleC5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRVJST1I6IEluY29tcGxldGUgbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbiBieSAiICsgZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG92ZXJhbGwgbGltaXQgZm9yIGluc2VydGlvbnMvZGVsZXRpb25zLiAgRG9uJ3QgbmVlZAorICAgICAgICAgICAgICAgIC8vIHRvIHdvcnJ5IGFib3V0IGNvbnRleHRMaW1pdCBiZWNhdXNlIGhhbmRsZVRyYW5zbGl0ZXJhdGUoKQorICAgICAgICAgICAgICAgIC8vIG1haW50YWlucyB0aGF0LgorICAgICAgICAgICAgICAgIGdsb2JhbExpbWl0ICs9IGRlbHRhOworCisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZpbHRlciA9PSBudWxsIHx8IGlzSW5jcmVtZW50YWxSdW4pIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSWYgd2UgZGlkIGNvbXBsZXRlbHkgdHJhbnNsaXRlcmF0ZSB0aGlzCisgICAgICAgICAgICAvLyBydW4sIHRoZW4gcmVwZWF0IHdpdGggdGhlIG5leHQgdW5maWx0ZXJlZCBydW4uCisgICAgICAgIH0KKworICAgICAgICAvLyBTdGFydCBpcyB2YWxpZCB3aGVyZSBpdCBpcy4gIExpbWl0IG5lZWRzIHRvIGJlIHB1dCBiYWNrIHdoZXJlCisgICAgICAgIC8vIGl0IHdhcywgbW9kdWxvIGFkanVzdG1lbnRzIGZvciBkZWxldGlvbnMvaW5zZXJ0aW9ucy4KKyAgICAgICAgaW5kZXgubGltaXQgPSBnbG9iYWxMaW1pdDsKKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifTogT1VUPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIGluZGV4KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIGEgc3Vic3RyaW5nIG9mIHRleHQsIGFzIHNwZWNpZmllZCBieSBpbmRleCwgdGFraW5nIGZpbHRlcnMKKyAgICAgKiBpbnRvIGFjY291bnQuICBUaGlzIG1ldGhvZCBpcyBmb3Igc3ViY2xhc3NlcyB0aGF0IG5lZWQgdG8gZGVsZWdhdGUgdG8KKyAgICAgKiBhbm90aGVyIHRyYW5zbGl0ZXJhdG9yLCBzdWNoIGFzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHBvc2l0aW9uIGluZGljZXMKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgbW9yZSBjaGFyYWN0ZXJzIG1heSBiZSBpbnNlcnRlZAorICAgICAqIGF0IGluZGV4LmxpbWl0LCBhbmQgcG9zdHBvbmUgcHJvY2Vzc2luZyB0byBhY2NvbW9kYXRlIGZ1dHVyZSBpbmNvbWluZworICAgICAqIGNoYXJhY3RlcnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBpbmNyZW1lbnRhbCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBjb250ZXh0IHJlcXVpcmVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogVGhpcyBpcyA8ZW0+cHJlY2VkaW5nPC9lbT4gY29udGV4dC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHplcm8sIGJ1dAorICAgICAqIHN1YmNsYXNzZXMgY2FuIGNoYW5nZSB0aGlzIGJ5IGNhbGxpbmcgPGNvZGU+c2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKTwvY29kZT4uCisgICAgICogRm9yIGV4YW1wbGUsIGlmIGEgdHJhbnNsaXRlcmF0b3IgdHJhbnNsYXRlcyAiZGRkIiAod2hlcmUKKyAgICAgKiBkIGlzIGFueSBkaWdpdCkgdG8gIjU1NSIgd2hlbiBwcmVjZWRlZCBieSAiKGRkZCkiLCB0aGVuIHRoZSBwcmVjZWRpbmcKKyAgICAgKiBjb250ZXh0IGxlbmd0aCBpcyA1LCB0aGUgbGVuZ3RoIG9mICIoZGRkKSIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwcmVjZWRpbmcgY29udGV4dCBjaGFyYWN0ZXJzIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBuZWVkcyB0byBleGFtaW5lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1Db250ZXh0TGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byB1c2UgdG8gc2V0IHRoZSBtYXhpbXVtIGNvbnRleHQgbGVuZ3RoLgorICAgICAqIEBzZWUgI2dldE1heGltdW1Db250ZXh0TGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgoaW50IGEpIHsKKyAgICAgICAgaWYgKGEgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvbnRleHQgbGVuZ3RoICIgKyBhKTsKKyAgICAgICAgfQorICAgICAgICBtYXhpbXVtQ29udGV4dExlbmd0aCA9IGE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIElmIHRoaXMgaWRlbnRpZmllciBpcyBwYXNzZWQgdG8gPGNvZGU+Z2V0SW5zdGFuY2UoKTwvY29kZT4sIGl0CisgICAgICogd2lsbCByZXR1cm4gdGhpcyBvYmplY3QsIGlmIGl0IGhhcyBiZWVuIHJlZ2lzdGVyZWQuCisgICAgICogQHNlZSAjcmVnaXN0ZXJDbGFzcworICAgICAqIEBzZWUgI2dldEF2YWlsYWJsZUlEcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0SUQoKSB7CisgICAgICAgIHJldHVybiBJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgT25seQorICAgICAqIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBzZXRJRChTdHJpbmcgaWQpIHsKKyAgICAgICAgSUQgPSBpZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvciB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvcgorICAgICAqIGRpc3BsYXkgdG8gdGhlIHVzZXIgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgU2VlIHtAbGluaworICAgICAqICNnZXREaXNwbGF5TmFtZShTdHJpbmcsTG9jYWxlKX0gZm9yIGRldGFpbHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIElEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShJRCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yCisgICAgICogZGlzcGxheSB0byB0aGUgdXNlciBpbiB0aGUgZ2l2ZW4gbG9jYWxlLiAgVGhpcyBuYW1lIGlzIHRha2VuCisgICAgICogZnJvbSB0aGUgbG9jYWxlIHJlc291cmNlIGRhdGEgaW4gdGhlIHN0YW5kYXJkIG1hbm5lciBvZiB0aGUKKyAgICAgKiA8Y29kZT5qYXZhLnRleHQ8L2NvZGU+IHBhY2thZ2UuCisgICAgICoKKyAgICAgKiA8cD5JZiBubyBsb2NhbGl6ZWQgbmFtZXMgZXhpc3QgaW4gdGhlIHN5c3RlbSByZXNvdXJjZSBidW5kbGVzLAorICAgICAqIGEgbmFtZSBpcyBzeW50aGVzaXplZCB1c2luZyBhIGxvY2FsaXplZAorICAgICAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IHBhdHRlcm4gZnJvbSB0aGUgcmVzb3VyY2UgZGF0YS4gIFRoZQorICAgICAqIGFyZ3VtZW50cyB0byB0aGlzIHBhdHRlcm4gYXJlIGFuIGludGVnZXIgZm9sbG93ZWQgYnkgb25lIG9yIHR3bworICAgICAqIHN0cmluZ3MuICBUaGUgaW50ZWdlciBpcyB0aGUgbnVtYmVyIG9mIHN0cmluZ3MsIGVpdGhlciAxIG9yIDIuCisgICAgICogVGhlIHN0cmluZ3MgYXJlIGZvcm1lZCBieSBzcGxpdHRpbmcgdGhlIElEIGZvciB0aGlzCisgICAgICogdHJhbnNsaXRlcmF0b3IgYXQgdGhlIGZpcnN0ICctJy4gIElmIHRoZXJlIGlzIG5vICctJywgdGhlbiB0aGUKKyAgICAgKiBlbnRpcmUgSUQgZm9ybXMgdGhlIG9ubHkgc3RyaW5nLgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgTG9jYWxlIGluIHdoaWNoIHRoZSBkaXNwbGF5IG5hbWUgc2hvdWxkIGJlCisgICAgICogbG9jYWxpemVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoaWQsIFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IKKyAgICAgKiBkaXNwbGF5IHRvIHRoZSB1c2VyIGluIHRoZSBnaXZlbiBsb2NhbGUuICBUaGlzIG5hbWUgaXMgdGFrZW4KKyAgICAgKiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSBpbiB0aGUgc3RhbmRhcmQgbWFubmVyIG9mIHRoZQorICAgICAqIDxjb2RlPmphdmEudGV4dDwvY29kZT4gcGFja2FnZS4KKyAgICAgKgorICAgICAqIDxwPklmIG5vIGxvY2FsaXplZCBuYW1lcyBleGlzdCBpbiB0aGUgc3lzdGVtIHJlc291cmNlIGJ1bmRsZXMsCisgICAgICogYSBuYW1lIGlzIHN5bnRoZXNpemVkIHVzaW5nIGEgbG9jYWxpemVkCisgICAgICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcGF0dGVybiBmcm9tIHRoZSByZXNvdXJjZSBkYXRhLiAgVGhlCisgICAgICogYXJndW1lbnRzIHRvIHRoaXMgcGF0dGVybiBhcmUgYW4gaW50ZWdlciBmb2xsb3dlZCBieSBvbmUgb3IgdHdvCisgICAgICogc3RyaW5ncy4gIFRoZSBpbnRlZ2VyIGlzIHRoZSBudW1iZXIgb2Ygc3RyaW5ncywgZWl0aGVyIDEgb3IgMi4KKyAgICAgKiBUaGUgc3RyaW5ncyBhcmUgZm9ybWVkIGJ5IHNwbGl0dGluZyB0aGUgSUQgZm9yIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBhdCB0aGUgZmlyc3QgJy0nLiAgSWYgdGhlcmUgaXMgbm8gJy0nLCB0aGVuIHRoZQorICAgICAqIGVudGlyZSBJRCBmb3JtcyB0aGUgb25seSBzdHJpbmcuCisgICAgICogQHBhcmFtIGluTG9jYWxlIHRoZSBVTG9jYWxlIGluIHdoaWNoIHRoZSBkaXNwbGF5IG5hbWUgc2hvdWxkIGJlCisgICAgICogbG9jYWxpemVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBpbkxvY2FsZSkgeworCisgICAgICAgIC8vIFJlc291cmNlIGJ1bmRsZSBjb250YWluaW5nIGRpc3BsYXkgbmFtZSBrZXlzIGFuZCB0aGUKKyAgICAgICAgLy8gUkJfUlVMRV9CQVNFRF9JRFMgYXJyYXkuCisgICAgICAgIC8vCisgICAgICAgIC8vSWYgd2UgZXZlciBpbnRlZ3JhdGUgdGhpcyB3aXRoIHRoZSBTdW4gSkRLLCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICAgIC8vIHJvb3Qgd2lsbCBjaGFuZ2UgdG8gc3VuLnRleHQucmVzb3VyY2VzLkxvY2FsZUVsZW1lbnRzCisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9UUkFOU0xJVF9CQVNFX05BTUUsIGluTG9jYWxlKTsKKworICAgICAgICAvLyBOb3JtYWxpemUgdGhlIElECisgICAgICAgIFN0cmluZyBzdHZbXSA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuSUR0b1NUVihpZCk7CisgICAgICAgIGlmIChzdHYgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gTm8gdGFyZ2V0OyBtYWxmb3JtZWQgaWQKKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgSUQgPSBzdHZbMF0gKyAnLScgKyBzdHZbMV07CisgICAgICAgIGlmIChzdHZbMl0gIT0gbnVsbCAmJiBzdHZbMl0ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBJRCA9IElEICsgJy8nICsgc3R2WzJdOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXNlIHRoZSByZWdpc3RlcmVkIGRpc3BsYXkgbmFtZSwgaWYgYW55CisgICAgICAgIFN0cmluZyBuID0gKFN0cmluZykgZGlzcGxheU5hbWVDYWNoZS5nZXQobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhJRCkpOworICAgICAgICBpZiAobiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVzZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBlbnRpcmUgdHJhbnNsaXRlcmF0b3IsIGlmIGl0CisgICAgICAgIC8vIGV4aXN0cy4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBidW5kbGUuZ2V0U3RyaW5nKFJCX0RJU1BMQVlfTkFNRV9QUkVGSVggKyBJRCk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7fQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIGZvcm1hdHRlciBmaXJzdDsgaWYgZ2V0U3RyaW5nKCkgZmFpbHMKKyAgICAgICAgICAgIC8vIHdlJ2xsIGV4aXQgdGhlIHRyeSBibG9jaworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlLmdldFN0cmluZyhSQl9ESVNQTEFZX05BTUVfUEFUVEVSTikpOworICAgICAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBhcmd1bWVudCBhcnJheQorICAgICAgICAgICAgT2JqZWN0W10gYXJncyA9IG5ldyBPYmplY3RbXSB7IG5ldyBJbnRlZ2VyKDIpLCBzdHZbMF0sIHN0dlsxXSB9OworCisgICAgICAgICAgICAvLyBVc2UgZGlzcGxheSBuYW1lcyBmb3IgdGhlIHNjcmlwdHMsIGlmIHRoZXkgZXhpc3QKKyAgICAgICAgICAgIGZvciAoaW50IGo9MTsgajw9MjsgKytqKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYXJnc1tqXSA9IGJ1bmRsZS5nZXRTdHJpbmcoUkJfU0NSSVBUX0RJU1BMQVlfTkFNRV9QUkVGSVggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nKSBhcmdzW2pdKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRm9ybWF0IGl0IHVzaW5nIHRoZSBwYXR0ZXJuIGluIHRoZSByZXNvdXJjZQorICAgICAgICAgICAgcmV0dXJuIChzdHZbMl0ubGVuZ3RoKCkgPiAwKSA/CisgICAgICAgICAgICAgICAgKGZvcm1hdC5mb3JtYXQoYXJncykgKyAnLycgKyBzdHZbMl0pIDoKKyAgICAgICAgICAgICAgICBmb3JtYXQuZm9ybWF0KGFyZ3MpOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZTIpIHt9CisKKyAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCByZWFjaCB0aGlzIHBvaW50IHVubGVzcyB0aGVyZSBpcyBzb21ldGhpbmcKKyAgICAgICAgLy8gd3Jvbmcgd2l0aCB0aGUgYnVpbGQgb3IgdGhlIFJCX0RJU1BMQVlfTkFNRV9QQVRURVJOIGhhcworICAgICAgICAvLyBiZWVuIGRlbGV0ZWQgZnJvbSB0aGUgcm9vdCBSQl9MT0NBTEVfRUxFTUVOVFMgcmVzb3VyY2UuCisgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZmlsdGVyIHVzZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvciwgb3IgPHR0Pm51bGw8L3R0PgorICAgICAqIGlmIHRoaXMgdHJhbnNsaXRlcmF0b3IgdXNlcyBubyBmaWx0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVGaWx0ZXIgZ2V0RmlsdGVyKCkgeworICAgICAgICByZXR1cm4gZmlsdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoYW5nZXMgdGhlIGZpbHRlciB1c2VkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBJZiB0aGUgZmlsdGVyCisgICAgICogaXMgc2V0IHRvIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgd2lsbCBvY2N1ci4KKyAgICAgKgorICAgICAqIDxwPkNhbGxlcnMgbXVzdCB0YWtlIGNhcmUgaWYgYSB0cmFuc2xpdGVyYXRvciBpcyBpbiB1c2UgYnkKKyAgICAgKiBtdWx0aXBsZSB0aHJlYWRzLiAgVGhlIGZpbHRlciBzaG91bGQgbm90IGJlIGNoYW5nZWQgYnkgb25lCisgICAgICogdGhyZWFkIHdoaWxlIGFub3RoZXIgdGhyZWFkIG1heSBiZSB0cmFuc2xpdGVyYXRpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RmlsdGVyKFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGl0cyBJRC4KKyAgICAgKiBUaGUgSUQgbXVzdCBiZSBlaXRoZXIgYSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3IgSUQgb3IgYSBJRCByZWdpc3RlcmVkCisgICAgICogdXNpbmcgPGNvZGU+cmVnaXN0ZXJDbGFzcygpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBJRCBhIHZhbGlkIElELCBhcyBlbnVtZXJhdGVkIGJ5IDxjb2RlPmdldEF2YWlsYWJsZUlEcygpPC9jb2RlPgorICAgICAqIEByZXR1cm4gQSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IHdpdGggdGhlIGdpdmVuIElECisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIElEIGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKElELCBGT1JXQVJEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBpdHMgSUQuCisgICAgICogVGhlIElEIG11c3QgYmUgZWl0aGVyIGEgc3lzdGVtIHRyYW5zbGl0ZXJhdG9yIElEIG9yIGEgSUQgcmVnaXN0ZXJlZAorICAgICAqIHVzaW5nIDxjb2RlPnJlZ2lzdGVyQ2xhc3MoKTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgYSB2YWxpZCBJRCwgYXMgZW51bWVyYXRlZCBieSA8Y29kZT5nZXRBdmFpbGFibGVJRHMoKTwvY29kZT4KKyAgICAgKiBAcGFyYW0gZGlyIGVpdGhlciBGT1JXQVJEIG9yIFJFVkVSU0UuICBJZiBSRVZFUlNFIHRoZW4gdGhlCisgICAgICogaW52ZXJzZSBvZiB0aGUgZ2l2ZW4gSUQgaXMgaW5zdGFudGlhdGVkLgorICAgICAqIEByZXR1cm4gQSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IHdpdGggdGhlIGdpdmVuIElECisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIElEIGlzIGludmFsaWQuCisgICAgICogQHNlZSAjcmVnaXN0ZXJDbGFzcworICAgICAqIEBzZWUgI2dldEF2YWlsYWJsZUlEcworICAgICAqIEBzZWUgI2dldElECisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklEID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBWZWN0b3IgbGlzdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgVW5pY29kZVNldFtdIGdsb2JhbEZpbHRlciA9IG5ldyBVbmljb2RlU2V0WzFdOworICAgICAgICBpZiAoIVRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VDb21wb3VuZElEKElELCBkaXIsIGNhbm9uSUQsIGxpc3QsIGdsb2JhbEZpbHRlcikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgSUQgIiArIElEKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuaW5zdGFudGlhdGVMaXN0KGxpc3QpOworCisgICAgICAgIC8vIGFzc2VydChsaXN0LnNpemUoKSA+IDApOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKyAgICAgICAgaWYgKGxpc3Quc2l6ZSgpID4gMSB8fCBVdGlsaXR5LmluZGV4T2YoY2Fub25JRCwgIjsiKSA+PSAwKSB7CisgICAgICAgICAgICAvLyBbTk9URTogSWYgaXQncyBhIGNvbXBvdW5kSUQsIHdlIGluc3RhbnRpYXRlIGEgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBldmVuIGlmIGl0IG9ubHkKKyAgICAgICAgICAgIC8vIGhhcyBvbmUgY2hpbGQgdHJhbnNsaXRlcmF0b3IuICBUaGlzIGlzIHNvIHRoYXQgdG9SdWxlcygpIHdpbGwgcmV0dXJuIHRoZSByaWdodCB0aGluZworICAgICAgICAgICAgLy8gKHdpdGhvdXQgYW55IGluYWN0aXZlIElEKSwgYnV0IG91ciBtYWluIElEIHN0aWxsIGNvbWVzIG91dCBjb3JyZWN0LiAgVGhhdCBpcywgaWYgd2UKKyAgICAgICAgICAgIC8vIGluc3RhbnRpYXRlICIoTG93ZXIpO0xhdGluLUdyZWVrOyIsIHdlIHdhbnQgdGhlIHJ1bGVzIHRvIGNvbWUgb3V0IGFzICI6OkxhdGluLUdyZWVrOyIKKyAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZSBJRCBpcyAiKExvd2VyKTtMYXRpbi1HcmVlazsiLgorICAgICAgICAgICAgdCA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKGxpc3QpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdCA9IChUcmFuc2xpdGVyYXRvcilsaXN0LmVsZW1lbnRBdCgwKTsKKyAgICAgICAgfQorCisgICAgICAgIHQuc2V0SUQoY2Fub25JRC50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGdsb2JhbEZpbHRlclswXSAhPSBudWxsKSB7CisgICAgICAgICAgICB0LnNldEZpbHRlcihnbG9iYWxGaWx0ZXJbMF0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRyYW5zbGl0ZXJhdG9yIGZyb20gYSBiYXNpYyBJRC4gIFRoaXMgaXMgYW4gSUQKKyAgICAgKiBjb250YWluaW5nIG9ubHkgdGhlIGZvcndhcmQgZGlyZWN0aW9uIHNvdXJjZSwgdGFyZ2V0LCBhbmQKKyAgICAgKiB2YXJpYW50LgorICAgICAqIEBwYXJhbSBpZCBhIGJhc2ljIElEIG9mIHRoZSBmb3JtIFMtVCBvciBTLVQvVi4KKyAgICAgKiBAcGFyYW0gY2Fub25JRCBjYW5vbmljYWwgSUQgdG8gYXBwbHkgdG8gdGhlIHJlc3VsdCwgb3IKKyAgICAgKiBudWxsIHRvIGxlYXZlIHRoZSBJRCB1bmNoYW5nZWQKKyAgICAgKiBAcmV0dXJuIGEgbmV3bHkgY3JlYXRlZCBUcmFuc2xpdGVyYXRvciBvciBudWxsIGlmIHRoZSBJRCBpcworICAgICAqIGludmFsaWQuCisgICAgICovCisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIGdldEJhc2ljSW5zdGFuY2UoU3RyaW5nIGlkLCBTdHJpbmcgY2Fub25JRCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IHJlZ2lzdHJ5LmdldChpZCwgcyk7CisgICAgICAgIGlmIChzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIC8vIGFzc2VydCh0PT0wKTsKKyAgICAgICAgICAgIC8vIEluc3RhbnRpYXRlIGFuIGFsaWFzCisgICAgICAgICAgICB0ID0gZ2V0SW5zdGFuY2Uocy50b1N0cmluZygpLCBGT1JXQVJEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodCAhPSBudWxsICYmIGNhbm9uSUQgIT0gbnVsbCkgeworICAgICAgICAgICAgdC5zZXRJRChjYW5vbklEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdCBjb25zdHJ1Y3RlZCBmcm9tCisgICAgICogdGhlIGdpdmVuIHJ1bGUgc3RyaW5nLiAgVGhpcyB3aWxsIGJlIGEgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgICAgICogaWYgdGhlIHJ1bGUgc3RyaW5nIGNvbnRhaW5zIG9ubHkgcnVsZXMsIG9yIGEKKyAgICAgKiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yLCBpZiBpdCBjb250YWlucyBJRCBibG9ja3MsIG9yIGEKKyAgICAgKiBOdWxsVHJhbnNsaXRlcmF0b3IsIGlmIGl0IGNvbnRhaW5zIElEIGJsb2NrcyB3aGljaCBwYXJzZSBhcworICAgICAqIGVtcHR5IGZvciB0aGUgZ2l2ZW4gZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgY3JlYXRlRnJvbVJ1bGVzKFN0cmluZyBJRCwgU3RyaW5nIHJ1bGVzLCBpbnQgZGlyKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlciA9IG5ldyBUcmFuc2xpdGVyYXRvclBhcnNlcigpOworICAgICAgICBwYXJzZXIucGFyc2UocnVsZXMsIGRpcik7CisKKyAgICAgICAgLy8gTk9URTogVGhlIGxvZ2ljIGhlcmUgbWF0Y2hlcyB0aGF0IGluIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuCisgICAgICAgIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMCAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdCA9IG5ldyBOdWxsVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMCAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMSkgeworICAgICAgICAgICAgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcihJRCwgKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEpcGFyc2VyLmRhdGFWZWN0b3IuZ2V0KDApLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMSAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgLy8gaWRCbG9jaywgbm8gZGF0YSAtLSB0aGlzIGlzIGFuIGFsaWFzLiAgVGhlIElEIGhhcworICAgICAgICAgICAgLy8gYmVlbiBtdW5nZWQgZnJvbSByZXZlcnNlIGludG8gZm9yd2FyZCBtb2RlLCBpZgorICAgICAgICAgICAgLy8gbmVjZXNzYXJ5LCBzbyBpbnN0YW50aWF0ZSB0aGUgSUQgaW4gdGhlIGZvcndhcmQKKyAgICAgICAgICAgIC8vIGRpcmVjdGlvbi4KKyAgICAgICAgICAgIGlmIChwYXJzZXIuY29tcG91bmRGaWx0ZXIgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB0ID0gZ2V0SW5zdGFuY2UocGFyc2VyLmNvbXBvdW5kRmlsdGVyLnRvUGF0dGVybihmYWxzZSkgKyAiOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKFN0cmluZylwYXJzZXIuaWRCbG9ja1ZlY3Rvci5nZXQoMCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHQgPSBnZXRJbnN0YW5jZSgoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisKKworICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHQuc2V0SUQoSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVmVjdG9yIHRyYW5zbGl0ZXJhdG9ycyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIGludCBwYXNzTnVtYmVyID0gMTsKKworICAgICAgICAgICAgaW50IGxpbWl0ID0gTWF0aC5tYXgocGFyc2VyLmlkQmxvY2tWZWN0b3Iuc2l6ZSgpLCBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkQmxvY2sgPSAoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlkQmxvY2subGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ZW1wID0gZ2V0SW5zdGFuY2UoaWRCbG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0ZW1wIGluc3RhbmNlb2YgTnVsbFRyYW5zbGl0ZXJhdG9yKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xpdGVyYXRvcnMuYWRkKGdldEluc3RhbmNlKGlkQmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA8IHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGEgPSAoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSlwYXJzZXIuZGF0YVZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ZXJhdG9ycy5hZGQobmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCIlUGFzcyIgKyBwYXNzTnVtYmVyKyssIGRhdGEsIG51bGwpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHQgPSBuZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdGVyYXRvcnMsIHBhc3NOdW1iZXIgLSAxKTsKKyAgICAgICAgICAgIHQuc2V0SUQoSUQpOworICAgICAgICAgICAgaWYgKHBhcnNlci5jb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIocGFyc2VyLmNvbXBvdW5kRmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBydWxlIHN0cmluZyBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgdHJ1ZSwgdGhlbiB1bnByaW50YWJsZSBjaGFyYWN0ZXJzCisgICAgICogd2lsbCBiZSBjb252ZXJ0ZWQgdG8gZXNjYXBlIGZvcm0gYmFja3NsYXNoLSd1JyBvcgorICAgICAqIGJhY2tzbGFzaC0nVScuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgcmV0dXJuIGJhc2VUb1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcnVsZSBzdHJpbmcgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuICBUaGlzIGlzCisgICAgICogYSBub24tb3ZlcnJpZGVhYmxlIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gdGhhdCBzdWJjbGFzc2VzCisgICAgICogbWF5IGNhbGwuICBJdCBzaW1wbHkgbXVuZ2VzIHRoZSBJRCBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdCwKKyAgICAgKiB0aGF0IGlzLCAiZm9vIiA9PiAiOjpmb28iLgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiB0cnVlLCB0aGVuIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAgKiB3aWxsIGJlIGNvbnZlcnRlZCB0byBlc2NhcGUgZm9ybSBiYWNrc2xhc2gtJ3UnIG9yCisgICAgICogYmFja3NsYXNoLSdVJy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIGJhc2VUb1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgLy8gVGhlIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gb2YgdG9SdWxlcyBtdW5nZXMgdGhlIElEIGludG8KKyAgICAgICAgLy8gdGhlIGNvcnJlY3QgZm9ybWF0LiAgVGhhdCBpczogZm9vID0+IDo6Zm9vCisgICAgICAgIC8vIEtFRVAgaW4gc3luYyB3aXRoIHJidF9wYXJzCisgICAgICAgIGlmIChlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGVzU291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nIGlkID0gZ2V0SUQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxpZC5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChpZCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKCFVdGlsaXR5LmVzY2FwZVVucHJpbnRhYmxlKHJ1bGVzU291cmNlLCBjKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocnVsZXNTb3VyY2UsIGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ1bGVzU291cmNlLmluc2VydCgwLCAiOjoiKTsKKyAgICAgICAgICAgIHJ1bGVzU291cmNlLmFwcGVuZChJRF9ERUxJTSk7CisgICAgICAgICAgICByZXR1cm4gcnVsZXNTb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIjo6IiArIGdldElEKCkgKyBJRF9ERUxJTTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGVsZW1lbnRzIHRoYXQgbWFrZSB1cCB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgRm9yCisgICAgICogZXhhbXBsZSwgaWYgdGhlIHRyYW5zbGl0ZXJhdG9yICJORkQ7SmFtby1MYXRpbjtMYXRpbi1HcmVlayIKKyAgICAgKiB3ZXJlIGNyZWF0ZWQsIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2Qgd291bGQgYmUgYW4gYXJyYXkKKyAgICAgKiBvZiB0aGUgdGhyZWUgdHJhbnNsaXRlcmF0b3Igb2JqZWN0cyB0aGF0IG1ha2UgdXAgdGhhdAorICAgICAqIHRyYW5zbGl0ZXJhdG9yOiBbTkZELCBKYW1vLUxhdGluLCBMYXRpbi1HcmVla10uCisgICAgICoKKyAgICAgKiA8cD5JZiB0aGlzIHRyYW5zbGl0ZXJhdG9yIGlzIG5vdCBjb21wb3NlZCBvZiBvdGhlcgorICAgICAqIHRyYW5zbGl0ZXJhdG9ycywgdGhlbiB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBhcnJheSBvZgorICAgICAqIGxlbmd0aCBvbmUgY29udGFpbmluZyBhIHJlZmVyZW5jZSB0byB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2Ygb25lIG9yIG1vcmUgdHJhbnNsaXRlcmF0b3JzIHRoYXQgbWFrZSB1cAorICAgICAqIHRoaXMgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JbXSBnZXRFbGVtZW50cygpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmVzdWx0W107CisgICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQ29tcG91bmRUcmFuc2xpdGVyYXRvcikgeworICAgICAgICAgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjcGQgPSAoQ29tcG91bmRUcmFuc2xpdGVyYXRvcikgdGhpczsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBUcmFuc2xpdGVyYXRvcltjcGQuZ2V0Q291bnQoKV07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8cmVzdWx0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0W2ldID0gY3BkLmdldFRyYW5zbGl0ZXJhdG9yKGkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFRyYW5zbGl0ZXJhdG9yW10geyB0aGlzIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbW9kaWZpZWQgaW4gdGhlCisgICAgICogaW5wdXQgdGV4dCBieSB0aGlzIFRyYW5zbGl0ZXJhdG9yLiAgVGhpcyBpbmNvcnBvcmF0ZXMgdGhpcworICAgICAqIG9iamVjdCdzIGN1cnJlbnQgZmlsdGVyOyBpZiB0aGUgZmlsdGVyIGlzIGNoYW5nZWQsIHRoZSByZXR1cm4KKyAgICAgKiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIHdpbGwgY2hhbmdlLiAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICAgKiByZXR1cm5zIGFuIGVtcHR5IHNldC4gIFNvbWUgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUge0BsaW5rCisgICAgICogI2hhbmRsZUdldFNvdXJjZVNldH0gdG8gcmV0dXJuIGEgbW9yZSBwcmVjaXNlIHJlc3VsdC4gIFRoZQorICAgICAqIHJldHVybiByZXN1bHQgaXMgYXBwcm94aW1hdGUgaW4gYW55IGNhc2UgYW5kIGlzIGludGVuZGVkIGZvcgorICAgICAqIHVzZSBieSB0ZXN0cywgdG9vbHMsIG9yIHV0aWxpdGllcy4KKyAgICAgKiBAc2VlICNnZXRUYXJnZXRTZXQKKyAgICAgKiBAc2VlICNoYW5kbGVHZXRTb3VyY2VTZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gaGFuZGxlR2V0U291cmNlU2V0KCk7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgVW5pY29kZVNldCBmaWx0ZXJTZXQ7CisgICAgICAgICAgICAvLyBNb3N0LCBidXQgbm90IGFsbCBmaWx0ZXJzIHdpbGwgYmUgVW5pY29kZVNldHMuICBPcHRpbWl6ZSBmb3IKKyAgICAgICAgICAgIC8vIHRoZSBoaWdoLXJ1bm5lciBjYXNlLgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmaWx0ZXJTZXQgPSAoVW5pY29kZVNldCkgZmlsdGVyOworICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBmaWx0ZXJTZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgICAgIGZpbHRlci5hZGRNYXRjaFNldFRvKGZpbHRlclNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXQucmV0YWluQWxsKGZpbHRlclNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGcmFtZXdvcmsgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQKKyAgICAgKiBtYXkgYmUgbW9kaWZpZWQgaW4gdGhlIGlucHV0IHRleHQgYnkgdGhpcyBUcmFuc2xpdGVyYXRvciwKKyAgICAgKiBpZ25vcmluZyB0aGUgZWZmZWN0IG9mIHRoaXMgb2JqZWN0J3MgZmlsdGVyLiAgVGhlIGJhc2UgY2xhc3MKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBlbXB0eSBzZXQuICBTdWJjbGFzc2VzIHRoYXQgd2lzaCB0bworICAgICAqIGltcGxlbWVudCB0aGlzIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB0aGF0IHRoaXMgdHJhbnNsaXRlcmF0b3IgbWF5CisgICAgICogbW9kaWZ5LiAgVGhlIHNldCBtYXkgYmUgbW9kaWZpZWQsIHNvIHN1YmNsYXNzZXMgc2hvdWxkIHJldHVybiBhCisgICAgICogbmV3bHktY3JlYXRlZCBvYmplY3QuCisgICAgICogQHNlZSAjZ2V0U291cmNlU2V0CisgICAgICogQHNlZSAjZ2V0VGFyZ2V0U2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXQgaGFuZGxlR2V0U291cmNlU2V0KCkgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZ2VuZXJhdGVkIGFzCisgICAgICogcmVwbGFjZW1lbnQgdGV4dCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgVGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBlbXB0eSBzZXQuICBTb21lIHN1YmNsYXNzZXMgbWF5CisgICAgICogb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmV0dXJuIGEgbW9yZSBwcmVjaXNlIHJlc3VsdC4gIFRoZQorICAgICAqIHJldHVybiByZXN1bHQgaXMgYXBwcm94aW1hdGUgaW4gYW55IGNhc2UgYW5kIGlzIGludGVuZGVkIGZvcgorICAgICAqIHVzZSBieSB0ZXN0cywgdG9vbHMsIG9yIHV0aWxpdGllcyByZXF1aXJpbmcgc3VjaAorICAgICAqIG1ldGEtaW5mb3JtYXRpb24uCisgICAgICogQHNlZSAjZ2V0VGFyZ2V0U2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0VGFyZ2V0U2V0KCkgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgdHJhbnNsaXRlcmF0b3IncyBpbnZlcnNlLiAgU2VlIHRoZSBjbGFzcworICAgICAqIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuICBUaGlzIGltcGxlbWVudGF0aW9uIHNpbXBseSBpbnZlcnRzCisgICAgICogdGhlIHR3byBlbnRpdGllcyBpbiB0aGUgSUQgYW5kIGF0dGVtcHRzIHRvIHJldHJpZXZlIHRoZQorICAgICAqIHJlc3VsdGluZyB0cmFuc2xpdGVyYXRvci4gIFRoYXQgaXMsIGlmIDxjb2RlPmdldElEKCk8L2NvZGU+CisgICAgICogcmV0dXJucyAiQS1CIiwgdGhlbiB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiB0aGUgcmVzdWx0IG9mCisgICAgICogPGNvZGU+Z2V0SW5zdGFuY2UoIkItQSIpPC9jb2RlPiwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhhdAorICAgICAqIGNhbGwgZmFpbHMuCisgICAgICoKKyAgICAgKiA8cD5TdWJjbGFzc2VzIHdpdGgga25vd2xlZGdlIG9mIHRoZWlyIGludmVyc2UgbWF5IHdpc2ggdG8KKyAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSB0cmFuc2xpdGVyYXRvciB0aGF0IGlzIGFuIGludmVyc2UsIG5vdCBuZWNlc3NhcmlseQorICAgICAqIGV4YWN0LCBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBubyBzdWNoCisgICAgICogdHJhbnNsaXRlcmF0b3IgaXMgcmVnaXN0ZXJlZC4KKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIGdldEludmVyc2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShJRCwgUkVWRVJTRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIGEgc3ViY2xhc3Mgb2YgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IHdpdGggdGhlCisgICAgICogc3lzdGVtLiAgVGhpcyBzdWJjbGFzcyBtdXN0IGhhdmUgYSBwdWJsaWMgY29uc3RydWN0b3IgdGFraW5nIG5vCisgICAgICogYXJndW1lbnRzLiAgV2hlbiB0aGF0IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCwgdGhlIHJlc3VsdGluZworICAgICAqIG9iamVjdCBtdXN0IHJldHVybiB0aGUgPGNvZGU+SUQ8L2NvZGU+IHBhc3NlZCB0byB0aGlzIG1ldGhvZCBpZgorICAgICAqIGl0cyA8Y29kZT5nZXRJRCgpPC9jb2RlPiBtZXRob2QgaXMgY2FsbGVkLgorICAgICAqCisgICAgICogQHBhcmFtIElEIHRoZSByZXN1bHQgb2YgPGNvZGU+Z2V0SUQoKTwvY29kZT4gZm9yIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvcgorICAgICAqIEBwYXJhbSB0cmFuc0NsYXNzIGEgc3ViY2xhc3Mgb2YgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+CisgICAgICogQHNlZSAjdW5yZWdpc3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlckNsYXNzKFN0cmluZyBJRCwgQ2xhc3MgdHJhbnNDbGFzcywgU3RyaW5nIGRpc3BsYXlOYW1lKSB7CisgICAgICAgIHJlZ2lzdHJ5LnB1dChJRCwgdHJhbnNDbGFzcywgdHJ1ZSk7CisgICAgICAgIGlmIChkaXNwbGF5TmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBkaXNwbGF5TmFtZUNhY2hlLnB1dChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKSwgZGlzcGxheU5hbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBmYWN0b3J5IG9iamVjdCB3aXRoIHRoZSBnaXZlbiBJRC4gIFRoZSBmYWN0b3J5CisgICAgICogbWV0aG9kIHNob3VsZCByZXR1cm4gYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBJRCB0aGUgSUQgb2YgdGhpcyB0cmFuc2xpdGVyYXRvcgorICAgICAqIEBwYXJhbSBmYWN0b3J5IHRoZSBmYWN0b3J5IG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoU3RyaW5nIElELCBGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KElELCBmYWN0b3J5LCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIFRyYW5zbGl0ZXJhdG9yIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBJRC4KKyAgICAgKiBAcGFyYW0gdHJhbnMgdGhlIFRyYW5zbGl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3Rlckluc3RhbmNlKFRyYW5zbGl0ZXJhdG9yIHRyYW5zKSB7CisgICAgICAgIHJlZ2lzdHJ5LnB1dCh0cmFucy5nZXRJRCgpLCB0cmFucywgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBUcmFuc2xpdGVyYXRvciBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gSUQuCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHRyYW5zIHRoZSBUcmFuc2xpdGVyYXRvciBvYmplY3QKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3Rlckluc3RhbmNlKFRyYW5zbGl0ZXJhdG9yIHRyYW5zLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KHRyYW5zLmdldElEKCksIHRyYW5zLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhcyBhbiBhbGlhcyBvZiBhbm90aGVyIElELiAgSW5zdGFudGlhdGluZworICAgICAqIGFsaWFzIElEIHByb2R1Y2VzIHRoZSBzYW1lIHJlc3VsdCBhcyBpbnN0YW50aWF0aW5nIHRoZSBvcmlnaW5hbCBJRC4KKyAgICAgKiBUaGlzIGlzIGdlbmVyYWxseSB1c2VkIHRvIGNyZWF0ZSBzaG9ydCBhbGlhc2VzIG9mIGNvbXBvdW5kIElEcy4KKyAgICAgKiBAcGFyYW0gYWxpYXNJRCBUaGUgbmV3IElEIGJlaW5nIHJlZ2lzdGVyZWQuCisgICAgICogQHBhcmFtIHJlYWxJRCBUaGUgZXhpc3RpbmcgSUQgdGhhdCB0aGUgbmV3IElEIHNob3VsZCBiZSBhbiBhbGlhcyBvZi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4xCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQWxpYXMoU3RyaW5nIGFsaWFzSUQsIFN0cmluZyByZWFsSUQpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KGFsaWFzSUQsIHJlYWxJRCwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgdHdvIHRhcmdldHMgYXMgYmVpbmcgaW52ZXJzZXMgb2Ygb25lIGFub3RoZXIuICBGb3IKKyAgICAgKiBleGFtcGxlLCBjYWxsaW5nIHJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIk5GQyIsICJORkQiLCB0cnVlKSBjYXVzZXMKKyAgICAgKiBUcmFuc2xpdGVyYXRvciB0byBmb3JtIHRoZSBmb2xsb3dpbmcgaW52ZXJzZSByZWxhdGlvbnNoaXBzOgorICAgICAqCisgICAgICogPHByZT5ORkMgPT4gTkZECisgICAgICogQW55LU5GQyA9PiBBbnktTkZECisgICAgICogTkZEID0+IE5GQworICAgICAqIEFueS1ORkQgPT4gQW55LU5GQzwvcHJlPgorICAgICAqCisgICAgICogKFdpdGhvdXQgdGhlIHNwZWNpYWwgaW52ZXJzZSByZWdpc3RyYXRpb24sIHRoZSBpbnZlcnNlIG9mIE5GQworICAgICAqIHdvdWxkIGJlIE5GQy1BbnkuKSAgTm90ZSB0aGF0IE5GRCBpcyBzaG9ydGhhbmQgZm9yIEFueS1ORkQsIGJ1dAorICAgICAqIHRoYXQgdGhlIHByZXNlbmNlIG9yIGFic2VuY2Ugb2YgIkFueS0iIGlzIHByZXNlcnZlZC4KKyAgICAgKgorICAgICAqIDxwPlRoZSByZWxhdGlvbnNoaXAgaXMgc3ltbWV0cmljYWw7IHJlZ2lzdGVyaW5nIChhLCBiKSBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVnaXN0ZXJpbmcgKGIsIGEpLgorICAgICAqCisgICAgICogPHA+VGhlIHJlbGV2YW50IElEcyBtdXN0IHN0aWxsIGJlIHJlZ2lzdGVyZWQgc2VwYXJhdGVseSBhcworICAgICAqIGZhY3RvcmllcyBvciBjbGFzc2VzLgorICAgICAqCisgICAgICogPHA+T25seSB0aGUgdGFyZ2V0cyBhcmUgc3BlY2lmaWVkLiAgU3BlY2lhbCBpbnZlcnNlcyBhbHdheXMKKyAgICAgKiBoYXZlIHRoZSBmb3JtIEFueS1UYXJnZXQxIDw9PiBBbnktVGFyZ2V0Mi4gIFRoZSB0YXJnZXQgc2hvdWxkCisgICAgICogaGF2ZSBjYW5vbmljYWwgY2FzaW5nICh0aGUgY2FzaW5nIGRlc2lyZWQgdG8gYmUgcHJvZHVjZWQgd2hlbgorICAgICAqIGFuIGludmVyc2UgaXMgZm9ybWVkKSBhbmQgc2hvdWxkIGNvbnRhaW4gbm8gd2hpdGVzcGFjZSBvciBvdGhlcgorICAgICAqIGV4dHJhbmVvdXMgY2hhcmFjdGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBhZ2FpbnN0IHdoaWNoIHRvIHJlZ2lzdGVyIHRoZSBpbnZlcnNlCisgICAgICogQHBhcmFtIGludmVyc2VUYXJnZXQgdGhlIGludmVyc2Ugb2YgdGFyZ2V0LCB0aGF0IGlzCisgICAgICogQW55LXRhcmdldC5nZXRJbnZlcnNlKCkgPT4gQW55LWludmVyc2VUYXJnZXQKKyAgICAgKiBAcGFyYW0gYmlkaXJlY3Rpb25hbCBpZiB0cnVlLCByZWdpc3RlciB0aGUgcmV2ZXJzZSByZWxhdGlvbgorICAgICAqIGFzIHdlbGwsIHRoYXQgaXMsIEFueS1pbnZlcnNlVGFyZ2V0LmdldEludmVyc2UoKSA9PiBBbnktdGFyZ2V0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZShTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGludmVyc2VUYXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGJpZGlyZWN0aW9uYWwpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKHRhcmdldCwgaW52ZXJzZVRhcmdldCwgYmlkaXJlY3Rpb25hbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlcnMgYSB0cmFuc2xpdGVyYXRvciBvciBjbGFzcy4gIFRoaXMgbWF5IGJlIGVpdGhlcgorICAgICAqIGEgc3lzdGVtIHRyYW5zbGl0ZXJhdG9yIG9yIGEgdXNlciB0cmFuc2xpdGVyYXRvciBvciBjbGFzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBJRCB0aGUgSUQgb2YgdGhlIHRyYW5zbGl0ZXJhdG9yIG9yIGNsYXNzCisgICAgICogQHNlZSAjcmVnaXN0ZXJDbGFzcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyKFN0cmluZyBJRCkgeworICAgICAgICBkaXNwbGF5TmFtZUNhY2hlLnJlbW92ZShuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKSk7CisgICAgICAgIHJlZ2lzdHJ5LnJlbW92ZShJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSBwcm9ncmFtbWF0aWMgbmFtZXMgb2YgcmVnaXN0ZXJlZAorICAgICAqIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3RzLiAgVGhpcyBpbmNsdWRlcyBib3RoIHN5c3RlbQorICAgICAqIHRyYW5zbGl0ZXJhdG9ycyBhbmQgdXNlciB0cmFuc2xpdGVyYXRvcnMgcmVnaXN0ZXJlZCB1c2luZworICAgICAqIDxjb2RlPnJlZ2lzdGVyQ2xhc3MoKTwvY29kZT4uICBUaGUgZW51bWVyYXRlZCBuYW1lcyBtYXkgYmUKKyAgICAgKiBwYXNzZWQgdG8gPGNvZGU+Z2V0SW5zdGFuY2UoKTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFuIDxjb2RlPkVudW1lcmF0aW9uPC9jb2RlPiBvdmVyIDxjb2RlPlN0cmluZzwvY29kZT4gb2JqZWN0cworICAgICAqIEBzZWUgI2dldEluc3RhbmNlCisgICAgICogQHNlZSAjcmVnaXN0ZXJDbGFzcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICByZXR1cm4gcmVnaXN0cnkuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSBzb3VyY2UgbmFtZXMgb2YgcmVnaXN0ZXJlZAorICAgICAqIHRyYW5zbGl0ZXJhdG9ycy4gIFNvdXJjZSBuYW1lcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogZ2V0QXZhaWxhYmxlVGFyZ2V0cygpIHRvIG9idGFpbiBhdmFpbGFibGUgdGFyZ2V0cyBmb3IgZWFjaAorICAgICAqIHNvdXJjZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZVNvdXJjZXMoKSB7CisgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRBdmFpbGFibGVTb3VyY2VzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSB0YXJnZXQgbmFtZXMgb2YgcmVnaXN0ZXJlZAorICAgICAqIHRyYW5zbGl0ZXJhdG9ycyBoYXZpbmcgYSBnaXZlbiBzb3VyY2UgbmFtZS4gIFRhcmdldCBuYW1lcyBtYXkKKyAgICAgKiBiZSBwYXNzZWQgdG8gZ2V0QXZhaWxhYmxlVmFyaWFudHMoKSB0byBvYnRhaW4gYXZhaWxhYmxlCisgICAgICogdmFyaWFudHMgZm9yIGVhY2ggc291cmNlIGFuZCB0YXJnZXQgcGFpci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZVRhcmdldHMoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gcmVnaXN0cnkuZ2V0QXZhaWxhYmxlVGFyZ2V0cyhzb3VyY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB0aGUgdmFyaWFudCBuYW1lcyBvZiByZWdpc3RlcmVkCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGhhdmluZyBhIGdpdmVuIHNvdXJjZSBuYW1lIGFuZCB0YXJnZXQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZVZhcmlhbnRzKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTkRFWCA9ICJpbmRleCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJCX1JVTEVfQkFTRURfSURTID0iUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3JJRHMiOworICAgIHN0YXRpYyB7CisgICAgICAgIHJlZ2lzdHJ5ID0gbmV3IFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnkoKTsKKworICAgICAgICAvLyBUaGUgZGlzcGxheSBuYW1lIGNhY2hlIHN0YXJ0cyBvdXQgZW1wdHkKKyAgICAgICAgZGlzcGxheU5hbWVDYWNoZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgLyogVGhlIGZvbGxvd2luZyBjb2RlIHBhcnNlcyB0aGUgaW5kZXggdGFibGUgbG9jYXRlZCBpbgorICAgICAgICAgKiBpY3UvZGF0YS90cmFuc2xpdC9yb290LnR4dC4gIFRoZSBpbmRleCBpcyBhbiBuIHggNCB0YWJsZQorICAgICAgICAgKiB0aGF0IGZvbGxvd3MgdGhpcyBmb3JtYXQ6CisgICAgICAgICAqICA8aWQ+eworICAgICAgICAgKiAgICAgIGZpbGV7CisgICAgICAgICAqICAgICAgICAgIHJlc291cmNleyI8cmVzb3VyY2U+In0KKyAgICAgICAgICogICAgICAgICAgZGlyZWN0aW9ueyI8ZGlyZWN0aW9uPiJ9CisgICAgICAgICAqICAgICAgfQorICAgICAgICAgKiAgfQorICAgICAgICAgKiAgPGlkPnsKKyAgICAgICAgICogICAgICBpbnRlcm5hbHsKKyAgICAgICAgICogICAgICAgICAgcmVzb3VyY2V7IjxyZXNvdXJjZT4ifQorICAgICAgICAgKiAgICAgICAgICBkaXJlY3Rpb257IjxkaXJlY3Rpb24ifQorICAgICAgICAgKiAgICAgICB9CisgICAgICAgICAqICB9CisgICAgICAgICAqICA8aWQ+eworICAgICAgICAgKiAgICAgIGFsaWFzeyI8Z2V0SW5zdGFuY2VBcmcifQorICAgICAgICAgKiAgfQorICAgICAgICAgKiA8aWQ+IGlzIHRoZSBJRCBvZiB0aGUgc3lzdGVtIHRyYW5zbGl0ZXJhdG9yIGJlaW5nIGRlZmluZWQuICBUaGVzZQorICAgICAgICAgKiBhcmUgcHVibGljIElEcyBlbnVtZXJhdGVkIGJ5IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZUlEcygpLAorICAgICAgICAgKiB1bmxlc3MgdGhlIHNlY29uZCBmaWVsZCBpcyAiaW50ZXJuYWwiLgorICAgICAgICAgKiAKKyAgICAgICAgICogPHJlc291cmNlPiBpcyBhIFJlc291cmNlUmVhZGVyIHJlc291cmNlIG5hbWUuICBDdXJyZW50bHkgdGhlc2UgcmVmZXIKKyAgICAgICAgICogdG8gZmlsZSBuYW1lcyB1bmRlciBjb20vaWJtL3RleHQvcmVzb3VyY2VzLiAgVGhpcyBzdHJpbmcgaXMgcGFzc2VkCisgICAgICAgICAqIGRpcmVjdGx5IHRvIFJlc291cmNlUmVhZGVyLCB0b2dldGhlciB3aXRoIDxlbmNvZGluZz4uCisgICAgICAgICAqIAorICAgICAgICAgKiA8ZGlyZWN0aW9uPiBpcyBlaXRoZXIgIkZPUldBUkQiIG9yICJSRVZFUlNFIi4KKyAgICAgICAgICogCisgICAgICAgICAqIDxnZXRJbnN0YW5jZUFyZz4gaXMgYSBzdHJpbmcgdG8gYmUgcGFzc2VkIGRpcmVjdGx5IHRvCisgICAgICAgICAqIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCkuICBUaGUgcmV0dXJuZWQgVHJhbnNsaXRlcmF0b3Igb2JqZWN0CisgICAgICAgICAqIHRoZW4gaGFzIGl0cyBJRCBjaGFuZ2VkIHRvIDxpZD4gYW5kIGlzIHJldHVybmVkLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZXh0cmEgYmxhbmsgZmllbGQgb24gImFsaWFzIiBsaW5lcyBpcyB0byBtYWtlIHRoZSBhcnJheSBzcXVhcmUuCisgICAgICAgICAqLworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUsIHRyYW5zSURzLCBjb2xCdW5kOworICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9UUkFOU0xJVF9CQVNFX05BTUUsIElOREVYKTsKKyAgICAgICAgdHJhbnNJRHMgPSBidW5kbGUuZ2V0KFJCX1JVTEVfQkFTRURfSURTKTsKKworICAgICAgICBpbnQgcm93LCBtYXhSb3dzOworICAgICAgICBtYXhSb3dzID0gdHJhbnNJRHMuZ2V0U2l6ZSgpOworICAgICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IG1heFJvd3M7IHJvdysrKSB7CisgICAgICAgICAgICBjb2xCdW5kID0gdHJhbnNJRHMuZ2V0KHJvdyk7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBjb2xCdW5kLmdldEtleSgpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzID0gY29sQnVuZC5nZXQoMCk7CisgICAgICAgICAgICBTdHJpbmcgdHlwZSA9IHJlcy5nZXRLZXkoKTsKKyAgICAgICAgICAgIGlmICh0eXBlLmVxdWFscygiZmlsZSIpIHx8IHR5cGUuZXF1YWxzKCJpbnRlcm5hbCIpKSB7CisgICAgICAgICAgICAgICAgLy8gUmVzdCBvZiBsaW5lIGlzIDxyZXNvdXJjZT46PGVuY29kaW5nPjo8ZGlyZWN0aW9uPgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIHBvcyAgICAgICBjb2xvbiAgICAgIGMyCisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc1N0cmluZyA9IHJlcy5nZXRTdHJpbmcoInJlc291cmNlIik7CisgICAgICAgICAgICAgICAgaW50IGRpcjsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGlyZWN0aW9uID0gcmVzLmdldFN0cmluZygiZGlyZWN0aW9uIik7CisgICAgICAgICAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24uY2hhckF0KDApKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnRic6CisgICAgICAgICAgICAgICAgICAgIGRpciA9IEZPUldBUkQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgICAgICAgICAgICBkaXIgPSBSRVZFUlNFOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ2FuJ3QgcGFyc2UgZGlyZWN0aW9uOiAiICsgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVnaXN0cnkucHV0KElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNTdHJpbmcsIC8vIHJlc291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVVEYtMTYiLCAvLyBlbmNvZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0eXBlLmVxdWFscygiaW50ZXJuYWwiKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUuZXF1YWxzKCJhbGlhcyIpKSB7CisgICAgICAgICAgICAgICAgLy8nYWxpYXMnOyByb3dbMl09Y3JlYXRlSW5zdGFuY2UgYXJndW1lbnQKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzU3RyaW5nID0gcmVzLmdldFN0cmluZygpOworICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnB1dChJRCwgcmVzU3RyaW5nLCB0cnVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVW5rbm93biB0eXBlCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlVua25vdyB0eXBlOiAiICsgdHlwZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZWdpc3RlclNwZWNpYWxJbnZlcnNlKE51bGxUcmFuc2xpdGVyYXRvci5TSE9SVF9JRCwgTnVsbFRyYW5zbGl0ZXJhdG9yLlNIT1JUX0lELCBmYWxzZSk7CisKKyAgICAgICAgLy8gUmVnaXN0ZXIgbm9uLXJ1bGUtYmFzZWQgdHJhbnNsaXRlcmF0b3JzCisgICAgICAgIHJlZ2lzdGVyQ2xhc3MoTnVsbFRyYW5zbGl0ZXJhdG9yLl9JRCwKKyAgICAgICAgICAgICAgICAgICAgICBOdWxsVHJhbnNsaXRlcmF0b3IuY2xhc3MsIG51bGwpOworICAgICAgICBSZW1vdmVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBFc2NhcGVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgQnJlYWtUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBBbnlUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOyAvLyBkbyB0aGlzIGxhc3QhCisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGZhY3RvcnkgaW50ZXJmYWNlIGZvciB0cmFuc2xpdGVyYXRvcnMuICBUcmFuc2xpdGVyYXRvcgorICAgICAqIHN1YmNsYXNzZXMgY2FuIHJlZ2lzdGVyIGZhY3Rvcnkgb2JqZWN0cyBmb3IgSURzIHVzaW5nIHRoZQorICAgICAqIHJlZ2lzdGVyRmFjdG9yeSgpIG1ldGhvZCBvZiBUcmFuc2xpdGVyYXRvci4gIFdoZW4gaW52b2tlZCwgdGhlCisgICAgICogZmFjdG9yeSBvYmplY3Qgd2lsbCBiZSBwYXNzZWQgdGhlIElEIGJlaW5nIGluc3RhbnRpYXRlZC4gIFRoaXMKKyAgICAgKiBtYWtlcyBpdCBwb3NzaWJsZSB0byByZWdpc3RlciBvbmUgZmFjdG9yeSBtZXRob2QgdG8gbW9yZSB0aGFuCisgICAgICogb25lIElELCBvciBmb3IgYSBmYWN0b3J5IG1ldGhvZCB0byBwYXJhbWV0ZXJpemUgaXRzIHJlc3VsdAorICAgICAqIGJhc2VkIG9uIHRoZSB2YXJpYW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIEZhY3RvcnkgeworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgdHJhbnNsaXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBJRC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9ySURQYXJzZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9ySURQYXJzZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZmQxNzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5qYXZhCkBAIC0wLDAgKzEsNzcyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqICAgYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMS8xNC8yMDAyICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FzZUluc2Vuc2l0aXZlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogUGFyc2luZyBjb21wb25lbnQgZm9yIHRyYW5zbGl0ZXJhdG9yIElEcy4gIFRoaXMgY2xhc3MgY29udGFpbnMgb25seQorICogc3RhdGljIG1lbWJlcnM7IGl0IGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQuICBNZXRob2RzIGluIHRoaXMgY2xhc3MKKyAqIHBhcnNlIHZhcmlvdXMgSUQgZm9ybWF0cywgaW5jbHVkaW5nIHRoZSBmb2xsb3dpbmc6CisgKgorICogQSBiYXNpYyBJRCwgd2hpY2ggY29udGFpbnMgc291cmNlLCB0YXJnZXQsIGFuZCB2YXJpYW50LCBidXQgbm8KKyAqIGZpbHRlciBhbmQgbm8gZXhwbGljaXQgaW52ZXJzZS4gIEV4YW1wbGVzIGluY2x1ZGUKKyAqICJMYXRpbi1HcmVlay9VTkdFR04iIGFuZCAiTnVsbCIuCisgKgorICogQSBzaW5nbGUgSUQsIHdoaWNoIGlzIGEgYmFzaWMgSUQgcGx1cyBvcHRpb25hbCBmaWx0ZXIgYW5kIG9wdGlvbmFsCisgKiBleHBsaWNpdCBpbnZlcnNlLiAgRXhhbXBsZXMgaW5jbHVkZSAiW2EtekEtWl0gTGF0aW4tR3JlZWsiIGFuZAorICogIkxvd2VyIChVcHBlcikiLgorICoKKyAqIEEgY29tcG91bmQgSUQsIHdoaWNoIGlzIGEgc2VxdWVuY2Ugb2Ygb25lIG9yIG1vcmUgc2luZ2xlIElEcywKKyAqIHNlcGFyYXRlZCBieSBzZW1pY29sb25zLCB3aXRoIG9wdGlvbmFsIGZvcndhcmQgYW5kIHJldmVyc2UgZ2xvYmFsCisgKiBmaWx0ZXJzLiAgVGhlIGdsb2JhbCBmaWx0ZXJzIGFyZSBVbmljb2RlU2V0IHBhdHRlcm5zIHByZXBlbmRlZCBvcgorICogYXBwZW5kZWQgdG8gdGhlIElEcywgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMuICBBbiBhcHBlbmRlZCBmaWx0ZXIKKyAqIG11c3QgYmUgZW5jbG9zZWQgaW4gcGFyZW50aGVzZXMgYW5kIGFwcGxpZXMgaW4gdGhlIHJldmVyc2UKKyAqIGRpcmVjdGlvbi4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBJRF9ERUxJTSA9ICc7JzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgVEFSR0VUX1NFUCA9ICctJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgVkFSSUFOVF9TRVAgPSAnLyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIE9QRU5fUkVWID0gJygnOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDTE9TRV9SRVYgPSAnKSc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQU5ZID0gIkFueSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9SV0FSRCA9IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkVWRVJTRSA9IFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0U7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNodGFibGUgU1BFQ0lBTF9JTlZFUlNFUyA9IG5ldyBIYXNodGFibGUoKTsKKworICAgIC8qKgorICAgICAqIEEgc3RydWN0dXJlIGNvbnRhaW5pbmcgdGhlIHBhcnNlZCBkYXRhIG9mIGEgZmlsdGVyZWQgSUQsIHRoYXQKKyAgICAgKiBpcywgYSBiYXNpYyBJRCBvcHRpb25hbGx5IHdpdGggYSBmaWx0ZXIuCisgICAgICoKKyAgICAgKiAnc291cmNlJyBhbmQgJ3RhcmdldCcgd2lsbCBhbHdheXMgYmUgbm9uLW51bGwuICBUaGUgJ3ZhcmlhbnQnCisgICAgICogd2lsbCBiZSBub24tbnVsbCBvbmx5IGlmIGEgbm9uLWVtcHR5IHZhcmlhbnQgd2FzIHBhcnNlZC4KKyAgICAgKgorICAgICAqICdzYXdTb3VyY2UnIGlzIHRydWUgaWYgdGhlcmUgd2FzIGFuIGV4cGxpY2l0IHNvdXJjZSBpbiB0aGUKKyAgICAgKiBwYXJzZWQgaWQuICBJZiB0aGVyZSB3YXMgbm8gZXhwbGljaXQgc291cmNlLCB0aGVuIGFuIGltcGxpZWQKKyAgICAgKiBzb3VyY2Ugb2YgQU5ZIGlzIHJldHVybmVkIGFuZCAnc2F3U291cmNlJyBpcyBzZXQgdG8gZmFsc2UuCisgICAgICogCisgICAgICogJ2ZpbHRlcicgaXMgdGhlIHBhcnNlZCBmaWx0ZXIgcGF0dGVybiwgb3IgbnVsbCBpZiB0aGVyZSB3YXMgbm8KKyAgICAgKiBmaWx0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU3BlY3MgeworICAgICAgICBwdWJsaWMgU3RyaW5nIHNvdXJjZTsgLy8gbm90IG51bGwKKyAgICAgICAgcHVibGljIFN0cmluZyB0YXJnZXQ7IC8vIG5vdCBudWxsCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdmFyaWFudDsgLy8gbWF5IGJlIG51bGwKKyAgICAgICAgcHVibGljIFN0cmluZyBmaWx0ZXI7IC8vIG1heSBiZSBudWxsCisgICAgICAgIHB1YmxpYyBib29sZWFuIHNhd1NvdXJjZTsKKyAgICAgICAgU3BlY3MoU3RyaW5nIHMsIFN0cmluZyB0LCBTdHJpbmcgdiwgYm9vbGVhbiBzYXdTLCBTdHJpbmcgZikgeworICAgICAgICAgICAgc291cmNlID0gczsKKyAgICAgICAgICAgIHRhcmdldCA9IHQ7CisgICAgICAgICAgICB2YXJpYW50ID0gdjsKKyAgICAgICAgICAgIHNhd1NvdXJjZSA9IHNhd1M7CisgICAgICAgICAgICBmaWx0ZXIgPSBmOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgY2Fub25pY2FsaXplZCBkYXRhIG9mIGEgZmlsdGVyZWQgSUQsCisgICAgICogdGhhdCBpcywgYSBiYXNpYyBJRCBvcHRpb25hbGx5IHdpdGggYSBmaWx0ZXIuCisgICAgICoKKyAgICAgKiAnY2Fub25JRCcgaXMgYWx3YXlzIG5vbi1udWxsLiAgSXQgbWF5IGJlIHRoZSBlbXB0eSBzdHJpbmcgIiIuCisgICAgICogSXQgaXMgdGhlIGlkIHRoYXQgc2hvdWxkIGJlIGFzc2lnbmVkIHRvIHRoZSBjcmVhdGVkCisgICAgICogdHJhbnNsaXRlcmF0b3IuICBJdCBfY2Fubm90XyBiZSBpbnN0YW50aWF0ZWQgZGlyZWN0bHkuCisgICAgICoKKyAgICAgKiAnYmFzaWNJRCcgaXMgYWx3YXlzIG5vbi1udWxsIGFuZCBub24tZW1wdHkuICBJdCBpcyBhbHdheXMgb2YKKyAgICAgKiB0aGUgZm9ybSBTLVQgb3IgUy1UL1YuICBJdCBpcyBkZXNpZ25lZCB0byBiZSBmZWQgdG8gbG93LWxldmVsCisgICAgICogaW5zdGFudGlhdGlvbiBjb2RlIHRoYXQgb25seSB1bmRlcnN0YW5kcyB0aGVzZSB0d28gZm9ybWF0cy4KKyAgICAgKgorICAgICAqICdmaWx0ZXInIG1heSBiZSBudWxsLCBpZiB0aGVyZSBpcyBub25lLCBvciBub24tbnVsbCBhbmQKKyAgICAgKiBub24tZW1wdHkuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFNpbmdsZUlEIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBjYW5vbklEOworICAgICAgICBwdWJsaWMgU3RyaW5nIGJhc2ljSUQ7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZmlsdGVyOworICAgICAgICBTaW5nbGVJRChTdHJpbmcgYywgU3RyaW5nIGIsIFN0cmluZyBmKSB7CisgICAgICAgICAgICBjYW5vbklEID0gYzsKKyAgICAgICAgICAgIGJhc2ljSUQgPSBiOworICAgICAgICAgICAgZmlsdGVyID0gZjsKKyAgICAgICAgfQorICAgICAgICBTaW5nbGVJRChTdHJpbmcgYywgU3RyaW5nIGIpIHsKKyAgICAgICAgICAgIHRoaXMoYywgYiwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworICAgICAgICAgICAgaWYgKGJhc2ljSUQgPT0gbnVsbCB8fCBiYXNpY0lELmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0QmFzaWNJbnN0YW5jZSgiQW55LU51bGwiLCBjYW5vbklEKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEJhc2ljSW5zdGFuY2UoYmFzaWNJRCwgY2Fub25JRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHQuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KGZpbHRlcikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBmaWx0ZXIgSUQsIHRoYXQgaXMsIGFuIElEIG9mIHRoZSBnZW5lcmFsIGZvcm0KKyAgICAgKiAiW2YxXSBzMS10MS92MSIsIHdpdGggdGhlIGZpbHRlcnMgb3B0aW9uYWwsIGFuZCB0aGUgdmFyaWFudHMgb3B0aW9uYWwuCisgICAgICogQHBhcmFtIGlkIHRoZSBpZCB0byBiZSBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgdGhlIHBvc2l0aW9uIG9mCisgICAgICogdGhlIGZpcnN0IGNoYXJhY3RlciB0byBwYXJzZS4gIE9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyCisgICAgICogdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIGEgU2luZ2xlSUQgb2JqZWN0IG9yIG51bGwgaWYgdGhlIHBhcnNlIGZhaWxzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTaW5nbGVJRCBwYXJzZUZpbHRlcklEKFN0cmluZyBpZCwgaW50W10gcG9zKSB7CisKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zWzBdOworICAgICAgICBTcGVjcyBzcGVjcyA9IHBhcnNlRmlsdGVySUQoaWQsIHBvcywgdHJ1ZSk7CisgICAgICAgIGlmIChzcGVjcyA9PSBudWxsKSB7CisgICAgICAgICAgICBwb3NbMF0gPSBzdGFydDsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gQXNzZW1ibGUgcmV0dXJuIHJlc3VsdHMKKyAgICAgICAgU2luZ2xlSUQgc2luZ2xlID0gc3BlY3NUb0lEKHNwZWNzLCBGT1JXQVJEKTsKKyAgICAgICAgc2luZ2xlLmZpbHRlciA9IHNwZWNzLmZpbHRlcjsKKyAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHNpbmdsZSBJRCwgdGhhdCBpcywgYW4gSUQgb2YgdGhlIGdlbmVyYWwgZm9ybQorICAgICAqICJbZjFdIHMxLXQxL3YxIChbZjJdIHMyLXQzL3YyKSIsIHdpdGggdGhlIHBhcmVudGhlc2l6ZWQgZWxlbWVudAorICAgICAqIG9wdGlvbmFsLCB0aGUgZmlsdGVycyBvcHRpb25hbCwgYW5kIHRoZSB2YXJpYW50cyBvcHRpb25hbC4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHRvIGJlIHBhcnNlZAorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gb2YKKyAgICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHBhcnNlLiAgT24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIKKyAgICAgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkaXIgdGhlIGRpcmVjdGlvbi4gIElmIHRoZSBkaXJlY3Rpb24gaXMgUkVWRVJTRSB0aGVuIHRoZQorICAgICAqIFNpbmdsZUlEIGlzIGNvbnN0cnVjdGVkIGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24uCisgICAgICogQHJldHVybiBhIFNpbmdsZUlEIG9iamVjdCBvciBudWxsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTaW5nbGVJRCBwYXJzZVNpbmdsZUlEKFN0cmluZyBpZCwgaW50W10gcG9zLCBpbnQgZGlyKSB7CisKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zWzBdOworCisgICAgICAgIC8vIFRoZSBJRCB3aWxsIGJlIG9mIHRoZSBmb3JtIEEsIEEoKSwgQShCKSwgb3IgKEIpLCB3aGVyZQorICAgICAgICAvLyBBIGFuZCBCIGFyZSBmaWx0ZXIgSURzLgorICAgICAgICBTcGVjcyBzcGVjc0EgPSBudWxsOworICAgICAgICBTcGVjcyBzcGVjc0IgPSBudWxsOworICAgICAgICBib29sZWFuIHNhd1BhcmVuID0gZmFsc2U7CisKKyAgICAgICAgLy8gT24gdGhlIGZpcnN0IHBhc3MsIGxvb2sgZm9yIChCKSBvciAoKS4gIElmIHRoaXMgZmFpbHMsIHRoZW4KKyAgICAgICAgLy8gb24gdGhlIHNlY29uZCBwYXNzLCBsb29rIGZvciBBLCBBKEIpLCBvciBBKCkuCisgICAgICAgIGZvciAoaW50IHBhc3M9MTsgcGFzczw9MjsgKytwYXNzKSB7CisgICAgICAgICAgICBpZiAocGFzcyA9PSAyKSB7CisgICAgICAgICAgICAgICAgc3BlY3NBID0gcGFyc2VGaWx0ZXJJRChpZCwgcG9zLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoc3BlY3NBID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVdGlsaXR5LnBhcnNlQ2hhcihpZCwgcG9zLCBPUEVOX1JFVikpIHsKKyAgICAgICAgICAgICAgICBzYXdQYXJlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCFVdGlsaXR5LnBhcnNlQ2hhcihpZCwgcG9zLCBDTE9TRV9SRVYpKSB7CisgICAgICAgICAgICAgICAgICAgIHNwZWNzQiA9IHBhcnNlRmlsdGVySUQoaWQsIHBvcywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIC8vIE11c3QgY2xvc2Ugd2l0aCBhICcpJworICAgICAgICAgICAgICAgICAgICBpZiAoc3BlY3NCID09IG51bGwgfHwgIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIENMT1NFX1JFVikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBc3NlbWJsZSByZXR1cm4gcmVzdWx0cworICAgICAgICBTaW5nbGVJRCBzaW5nbGU7CisgICAgICAgIGlmIChzYXdQYXJlbikgeworICAgICAgICAgICAgaWYgKGRpciA9PSBGT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgc2luZ2xlID0gc3BlY3NUb0lEKHNwZWNzQSwgRk9SV0FSRCk7CisgICAgICAgICAgICAgICAgc2luZ2xlLmNhbm9uSUQgPSBzaW5nbGUuY2Fub25JRCArCisgICAgICAgICAgICAgICAgICAgIE9QRU5fUkVWICsgc3BlY3NUb0lEKHNwZWNzQiwgRk9SV0FSRCkuY2Fub25JRCArIENMT1NFX1JFVjsKKyAgICAgICAgICAgICAgICBpZiAoc3BlY3NBICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgc2luZ2xlLmZpbHRlciA9IHNwZWNzQS5maWx0ZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NCLCBGT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBzaW5nbGUuY2Fub25JRCA9IHNpbmdsZS5jYW5vbklEICsKKyAgICAgICAgICAgICAgICAgICAgT1BFTl9SRVYgKyBzcGVjc1RvSUQoc3BlY3NBLCBGT1JXQVJEKS5jYW5vbklEICsgQ0xPU0VfUkVWOworICAgICAgICAgICAgICAgIGlmIChzcGVjc0IgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3NCLmZpbHRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBhc3NlcnQoc3BlY3NBICE9IG51bGwpOworICAgICAgICAgICAgaWYgKGRpciA9PSBGT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgc2luZ2xlID0gc3BlY3NUb0lEKHNwZWNzQSwgRk9SV0FSRCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNpbmdsZSA9IHNwZWNzVG9TcGVjaWFsSW52ZXJzZShzcGVjc0EpOworICAgICAgICAgICAgICAgIGlmIChzaW5nbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NBLCBSRVZFUlNFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3NBLmZpbHRlcjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBnbG9iYWwgZmlsdGVyIG9mIHRoZSBmb3JtICJbZl0iIG9yICIoW2ZdKSIsIGRlcGVuZGluZworICAgICAqIG9uICd3aXRoUGFyZW5zJy4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIHBhdHRlcm4gdGhlIHBhcnNlCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBvZgorICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UuICBPbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlcgorICAgICAqIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuCisgICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSB3aXRoUGFyZW5zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBlbnRyeSwgaWYKKyAgICAgKiB3aXRoUGFyZW5zWzBdIGlzIDAsIHRoZW4gcGFyZW5zIGFyZSBkaXNhbGxvd2VkLiAgSWYgaXQgaXMgMSwKKyAgICAgKiB0aGVuIHBhcmVucyBhcmUgcmVxdWlyZXMuICBJZiBpdCBpcyAtMSwgdGhlbiBwYXJlbnMgYXJlCisgICAgICogb3B0aW9uYWwsIGFuZCB0aGUgcmV0dXJuIHJlc3VsdCB3aWxsIGJlIHNldCB0byAwIG9yIDEuCisgICAgICogQHBhcmFtIGNhbm9uSUQgT1VUUFVUIHBhcmFtZXRlci4gIFRoZSBwYXR0ZXJuIGZvciB0aGUgZmlsdGVyCisgICAgICogYWRkZWQgdG8gdGhlIGNhbm9uSUQsIGVpdGhlciBhdCB0aGUgZW5kLCBpZiBkaXIgaXMgRk9SV0FSRCwgb3IKKyAgICAgKiBhdCB0aGUgc3RhcnQsIGlmIGRpciBpcyBSRVZFUlNFLiAgVGhlIHBhdHRlcm4gd2lsbCBiZSBlbmNsb3NlZAorICAgICAqIGluIHBhcmVudGhlc2VzIGlmIGFwcHJvcHJpYXRlLCBhbmQgd2lsbCBiZSBzdWZmaXhlZCB3aXRoIGFuCisgICAgICogSURfREVMSU0gY2hhcmFjdGVyLiAgTWF5IGJlIG51bGwuCisgICAgICogQHJldHVybiBhIFVuaWNvZGVTZXQgb2JqZWN0IG9yIG51bGwuICBBIG5vbi1udWxsIHJlc3VsdHMKKyAgICAgKiBpbmRpY2F0ZXMgYSBzdWNjZXNzZnVsIHBhcnNlLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGZpbHRlcgorICAgICAqIGFwcGxpZXMgdG8gdGhlIGdpdmVuIGRpcmVjdGlvbi4gIFRoZSBjYWxsZXIgc2hvdWxkIGRpc2NhcmQgaXQKKyAgICAgKiBpZiB3aXRoUGFyZW5zICE9IChkaXIgPT0gUkVWRVJTRSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IHBhcnNlR2xvYmFsRmlsdGVyKFN0cmluZyBpZCwgaW50W10gcG9zLCBpbnQgZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSB3aXRoUGFyZW5zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgY2Fub25JRCkgeworICAgICAgICBVbmljb2RlU2V0IGZpbHRlciA9IG51bGw7CisgICAgICAgIGludCBzdGFydCA9IHBvc1swXTsKKworICAgICAgICBpZiAod2l0aFBhcmVuc1swXSA9PSAtMSkgeworICAgICAgICAgICAgd2l0aFBhcmVuc1swXSA9IFV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIE9QRU5fUkVWKSA/IDEgOiAwOworICAgICAgICB9IGVsc2UgaWYgKHdpdGhQYXJlbnNbMF0gPT0gMSkgeworICAgICAgICAgICAgaWYgKCFVdGlsaXR5LnBhcnNlQ2hhcihpZCwgcG9zLCBPUEVOX1JFVikpIHsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVXRpbGl0eS5za2lwV2hpdGVzcGFjZShpZCwgcG9zKTsKKworICAgICAgICBpZiAoVW5pY29kZVNldC5yZXNlbWJsZXNQYXR0ZXJuKGlkLCBwb3NbMF0pKSB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihwb3NbMF0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmaWx0ZXIgPSBuZXcgVW5pY29kZVNldChpZCwgcHBvcywgbnVsbCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGlkLnN1YnN0cmluZyhwb3NbMF0sIHBwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICBwb3NbMF0gPSBwcG9zLmdldEluZGV4KCk7CisKKyAgICAgICAgICAgIGlmICh3aXRoUGFyZW5zWzBdID09IDEgJiYgIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIENMT1NFX1JFVikpIHsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uLCBhcHBlbmQgdGhlIHBhdHRlcm4gdG8gdGhlCisgICAgICAgICAgICAvLyBjYW5vbklELiAgSW4gdGhlIHJldmVyc2UsIGluc2VydCBpdCBhdCB6ZXJvLCBhbmQgaW52ZXJ0CisgICAgICAgICAgICAvLyB0aGUgcHJlc2VuY2Ugb2YgcGFyZW5zICgiQSIgPC0+ICIoQSkiKS4KKyAgICAgICAgICAgIGlmIChjYW5vbklEICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhQYXJlbnNbMF0gPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IFN0cmluZy52YWx1ZU9mKE9QRU5fUkVWKSArIHBhdHRlcm4gKyBDTE9TRV9SRVY7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2Fub25JRC5hcHBlbmQocGF0dGVybiArIElEX0RFTElNKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAod2l0aFBhcmVuc1swXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gU3RyaW5nLnZhbHVlT2YoT1BFTl9SRVYpICsgcGF0dGVybiArIENMT1NFX1JFVjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYW5vbklELmluc2VydCgwLCBwYXR0ZXJuICsgSURfREVMSU0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmaWx0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBjb21wb3VuZCBJRCwgY29uc2lzdGluZyBvZiBhbiBvcHRpb25hbCBmb3J3YXJkIGdsb2JhbAorICAgICAqIGZpbHRlciwgYSBzZXBhcmF0b3IsIG9uZSBvciBtb3JlIHNpbmdsZSBJRHMgZGVsaW1pdGVkIGJ5CisgICAgICogc2VwYXJhdG9ycywgYW4gYW4gb3B0aW9uYWwgcmV2ZXJzZSBnbG9iYWwgZmlsdGVyLiAgVGhlCisgICAgICogc2VwYXJhdG9yIGlzIGEgc2VtaWNvbG9uLiAgVGhlIGdsb2JhbCBmaWx0ZXJzIGFyZSBVbmljb2RlU2V0CisgICAgICogcGF0dGVybnMuICBUaGUgcmV2ZXJzZSBnbG9iYWwgZmlsdGVyIG11c3QgYmUgZW5jbG9zZWQgaW4KKyAgICAgKiBwYXJlbnRoZXNlcy4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIHBhdHRlcm4gdGhlIHBhcnNlCisgICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBjYW5vbklEIE9VVFBVVCBwYXJhbWV0ZXIgdGhhdCByZWNlaXZlcyB0aGUgY2Fub25pY2FsIElELAorICAgICAqIGNvbnNpc3Rpbmcgb2YgY2Fub25pY2FsIElEcyBmb3IgYWxsIGVsZW1lbnRzLCBhcyByZXR1cm5lZCBieQorICAgICAqIHBhcnNlU2luZ2xlSUQoKSwgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMuICBQcmV2aW91cyBjb250ZW50cworICAgICAqIGFyZSBkaXNjYXJkZWQuCisgICAgICogQHBhcmFtIGxpc3QgT1VUUFVUIHBhcmFtZXRlciB0aGF0IHJlY2VpdmVzIGEgbGlzdCBvZiBTaW5nbGVJRAorICAgICAqIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBwYXJzZWQgSURzLiAgUHJldmlvdXMgY29udGVudHMgYXJlCisgICAgICogZGlzY2FyZGVkLgorICAgICAqIEBwYXJhbSBnbG9iYWxGaWx0ZXIgT1VUUFVUIHBhcmFtZXRlciB0aGF0IHJlY2VpdmVzIGEgcG9pbnRlciB0bworICAgICAqIGEgbmV3bHkgY3JlYXRlZCBnbG9iYWwgZmlsdGVyIGZvciB0aGlzIElEIGluIHRoaXMgZGlyZWN0aW9uLCBvcgorICAgICAqIG51bGwgaWYgdGhlcmUgaXMgbm9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhcnNlIHN1Y2NlZWRzLCB0aGF0IGlzLCBpZiB0aGUgZW50aXJlCisgICAgICogaWQgaXMgY29uc3VtZWQgd2l0aG91dCBzeW50YXggZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHBhcnNlQ29tcG91bmRJRChTdHJpbmcgaWQsIGludCBkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgY2Fub25JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldFtdIGdsb2JhbEZpbHRlcikgeworICAgICAgICBpbnRbXSBwb3MgPSBuZXcgaW50W10geyAwIH07CisgICAgICAgIGludFtdIHdpdGhQYXJlbnMgPSBuZXcgaW50WzFdOworICAgICAgICBsaXN0LnJlbW92ZUFsbEVsZW1lbnRzKCk7CisgICAgICAgIFVuaWNvZGVTZXQgZmlsdGVyOworICAgICAgICBnbG9iYWxGaWx0ZXJbMF0gPSBudWxsOworICAgICAgICBjYW5vbklELnNldExlbmd0aCgwKTsKKworICAgICAgICAvLyBQYXJzZSBsZWFkaW5nIGdsb2JhbCBmaWx0ZXIsIGlmIGFueQorICAgICAgICB3aXRoUGFyZW5zWzBdID0gMDsgLy8gcGFyZW5zIGRpc2FsbG93ZWQKKyAgICAgICAgZmlsdGVyID0gcGFyc2VHbG9iYWxGaWx0ZXIoaWQsIHBvcywgZGlyLCB3aXRoUGFyZW5zLCBjYW5vbklEKTsKKyAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIElEX0RFTElNKSkgeworICAgICAgICAgICAgICAgIC8vIE5vdCBhIGdsb2JhbCBmaWx0ZXI7IGJhY2t1cCBhbmQgcmVzdW1lCisgICAgICAgICAgICAgICAgY2Fub25JRC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgIGdsb2JhbEZpbHRlclswXSA9IGZpbHRlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gc2F3RGVsaW1pdGVyID0gdHJ1ZTsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgU2luZ2xlSUQgc2luZ2xlID0gcGFyc2VTaW5nbGVJRChpZCwgcG9zLCBkaXIpOworICAgICAgICAgICAgaWYgKHNpbmdsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBsaXN0LmFkZEVsZW1lbnQoc2luZ2xlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGlzdC5pbnNlcnRFbGVtZW50QXQoc2luZ2xlLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgSURfREVMSU0pKSB7CisgICAgICAgICAgICAgICAgc2F3RGVsaW1pdGVyID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobGlzdC5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGNhbm9uaWNhbCBJRAorICAgICAgICBmb3IgKGludCBpPTA7IGk8bGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgU2luZ2xlSUQgc2luZ2xlID0gKFNpbmdsZUlEKSBsaXN0LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGNhbm9uSUQuYXBwZW5kKHNpbmdsZS5jYW5vbklEKTsKKyAgICAgICAgICAgIGlmIChpICE9IChsaXN0LnNpemUoKS0xKSkgeworICAgICAgICAgICAgICAgIGNhbm9uSUQuYXBwZW5kKElEX0RFTElNKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFBhcnNlIHRyYWlsaW5nIGdsb2JhbCBmaWx0ZXIsIGlmIGFueSwgYW5kIG9ubHkgaWYgd2Ugc2F3CisgICAgICAgIC8vIGEgdHJhaWxpbmcgZGVsaW1pdGVyIGFmdGVyIHRoZSBJRHMuCisgICAgICAgIGlmIChzYXdEZWxpbWl0ZXIpIHsKKyAgICAgICAgICAgIHdpdGhQYXJlbnNbMF0gPSAxOyAvLyBwYXJlbnMgcmVxdWlyZWQKKyAgICAgICAgICAgIGZpbHRlciA9IHBhcnNlR2xvYmFsRmlsdGVyKGlkLCBwb3MsIGRpciwgd2l0aFBhcmVucywgY2Fub25JRCk7CisgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCByZXF1aXJlIHRyYWlsaW5nICc7JywgYnV0IHBhcnNlIGl0IGlmIHByZXNlbnQKKyAgICAgICAgICAgICAgICBVdGlsaXR5LnBhcnNlQ2hhcihpZCwgcG9zLCBJRF9ERUxJTSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRpciA9PSBSRVZFUlNFKSB7CisgICAgICAgICAgICAgICAgICAgIGdsb2JhbEZpbHRlclswXSA9IGZpbHRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFpbGluZyB1bnBhcnNlZCB0ZXh0IGlzIGEgc3ludGF4IGVycm9yCisgICAgICAgIFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UoaWQsIHBvc1swXSk7CisgICAgICAgIGlmIChwb3NbMF0gIT0gaWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgdGhlIGVsZW1lbnRzIG9mIHRoZSAnbGlzdCcgdmVjdG9yLCB3aGljaCBhcmUgU2luZ2xlSUQKKyAgICAgKiBvYmplY3RzLCBpbnRvIGFjdHVhbCBUcmFuc2xpdGVyYXRvciBvYmplY3RzLiAgSW4gdGhlIGNvdXJzZSBvZgorICAgICAqIHRoaXMsIHNvbWUgKG9yIGFsbCkgZW50cmllcyBtYXkgYmUgcmVtb3ZlZC4gIElmIGFsbCBlbnRyaWVzCisgICAgICogYXJlIHJlbW92ZWQsIHRoZSBOdWxsIHRyYW5zbGl0ZXJhdG9yIHdpbGwgYmUgYWRkZWQuCisgICAgICoKKyAgICAgKiBEZWxldGUgZW50cmllcyB3aXRoIGVtcHR5IGJhc2ljSURzOyB0aGVzZSBhcmUgZ2VuZXJhdGVkIGJ5CisgICAgICogZWxlbWVudHMgbGlrZSAiKEEpIiBpbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24sIG9yICJBKCkiIGluCisgICAgICogdGhlIHJldmVyc2UuICBUSElTIE1BWSBSRVNVTFQgSU4gQU4gRU1QVFkgVkVDVE9SLiAgQ29udmVydAorICAgICAqIFNpbmdsZUlEIGVudHJpZXMgdG8gYWN0dWFsIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsaXN0IHZlY3RvciBvZiBTaW5nbGVJRCBvYmplY3RzLiAgT24gZXhpdCwgdmVjdG9yCisgICAgICogb2Ygb25lIG9yIG1vcmUgVHJhbnNsaXRlcmF0b3JzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBpbnN0YW50aWF0ZUxpc3QoVmVjdG9yIGxpc3QpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPD1saXN0LnNpemUoKTsgKSB7IC8vIFtzaWNdOiBpPD1saXN0LnNpemUoKQorICAgICAgICAgICAgLy8gV2UgcnVuIHRoZSBsb29wIHRvbyBsb25nIGJ5IG9uZSwgc28gd2UgY2FuCisgICAgICAgICAgICAvLyBkbyBhbiBpbnNlcnQgYWZ0ZXIgdGhlIGxhc3QgZWxlbWVudAorICAgICAgICAgICAgaWYgKGk9PWxpc3Quc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFNpbmdsZUlEIHNpbmdsZSA9IChTaW5nbGVJRCkgbGlzdC5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAoc2luZ2xlLmJhc2ljSUQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGxpc3QucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ID0gc2luZ2xlLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIAl0ID0gc2luZ2xlLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgSUQgIiArIHNpbmdsZS5jYW5vbklEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGlzdC5zZXRFbGVtZW50QXQodCwgaSk7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBbiBlbXB0eSBsaXN0IGlzIGVxdWl2YWxlbnQgdG8gYSBOdWxsIHRyYW5zbGl0ZXJhdG9yLgorICAgICAgICBpZiAobGlzdC5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEJhc2ljSW5zdGFuY2UoIkFueS1OdWxsIiwgbnVsbCk7CisgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gU2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludGVybmFsIGVycm9yOyBjYW5ub3QgaW5zdGFudGlhdGUgQW55LU51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpc3QuYWRkRWxlbWVudCh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIElEIGludG8gcGllY2VzLiAgVGFrZSBJRHMgb2YgdGhlIGZvcm0gVCwgVC9WLCBTLVQsCisgICAgICogUy1UL1YsIG9yIFMvVi1ULiAgSWYgdGhlIHNvdXJjZSBpcyBtaXNzaW5nLCByZXR1cm4gYSBzb3VyY2Ugb2YKKyAgICAgKiBBTlkuCisgICAgICogQHBhcmFtIGlkIHRoZSBpZCBzdHJpbmcsIGluIGFueSBvZiBzZXZlcmFsIGZvcm1zCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiA0IHN0cmluZ3M6IHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50LCBhbmQKKyAgICAgKiBpc1NvdXJjZVByZXNlbnQuICBJZiB0aGUgc291cmNlIGlzIG5vdCBwcmVzZW50LCBBTlkgd2lsbCBiZQorICAgICAqIGdpdmVuIGFzIHRoZSBzb3VyY2UsIGFuZCBpc1NvdXJjZVByZXNlbnQgd2lsbCBiZSBudWxsLiAgT3RoZXJ3aXNlCisgICAgICogaXNTb3VyY2VQcmVzZW50IHdpbGwgYmUgbm9uLW51bGwuICBUaGUgdGFyZ2V0IG1heSBiZSBlbXB0eSBpZiB0aGUKKyAgICAgKiBpZCBpcyBub3Qgd2VsbC1mb3JtZWQuICBUaGUgdmFyaWFudCBtYXkgYmUgZW1wdHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBJRHRvU1RWKFN0cmluZyBpZCkgeworICAgICAgICBTdHJpbmcgc291cmNlID0gQU5ZOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBzZXAgPSBpZC5pbmRleE9mKFRBUkdFVF9TRVApOworICAgICAgICBpbnQgdmFyID0gaWQuaW5kZXhPZihWQVJJQU5UX1NFUCk7CisgICAgICAgIGlmICh2YXIgPCAwKSB7CisgICAgICAgICAgICB2YXIgPSBpZC5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIGlzU291cmNlUHJlc2VudCA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKHNlcCA8IDApIHsKKyAgICAgICAgICAgIC8vIEZvcm06IFQvViBvciBUIChvciAvVikKKyAgICAgICAgICAgIHRhcmdldCA9IGlkLnN1YnN0cmluZygwLCB2YXIpOworICAgICAgICAgICAgdmFyaWFudCA9IGlkLnN1YnN0cmluZyh2YXIpOworICAgICAgICB9IGVsc2UgaWYgKHNlcCA8IHZhcikgeworICAgICAgICAgICAgLy8gRm9ybTogUy1UL1Ygb3IgUy1UIChvciAtVC9WIG9yIC1UKQorICAgICAgICAgICAgaWYgKHNlcCA+IDApIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBpZC5zdWJzdHJpbmcoMCwgc2VwKTsKKyAgICAgICAgICAgICAgaXNTb3VyY2VQcmVzZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRhcmdldCA9IGlkLnN1YnN0cmluZygrK3NlcCwgdmFyKTsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBpZC5zdWJzdHJpbmcodmFyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZvcm06IChTL1YtVCBvciAvVi1UKQorICAgICAgICAgICAgaWYgKHZhciA+IDApIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBpZC5zdWJzdHJpbmcoMCwgdmFyKTsKKyAgICAgICAgICAgICAgICBpc1NvdXJjZVByZXNlbnQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyaWFudCA9IGlkLnN1YnN0cmluZyh2YXIsIHNlcCsrKTsKKyAgICAgICAgICAgIHRhcmdldCA9IGlkLnN1YnN0cmluZyhzZXApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gdmFyaWFudC5zdWJzdHJpbmcoMSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nW10geyBzb3VyY2UsIHRhcmdldCwgdmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU291cmNlUHJlc2VudCA/ICIiIDogbnVsbCB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIHNvdXJjZSwgdGFyZ2V0LCBhbmQgdmFyaWFudCBzdHJpbmdzLCBjb25jYXRlbmF0ZSB0aGVtIGludG8gYQorICAgICAqIGZ1bGwgSUQuICBJZiB0aGUgc291cmNlIGlzIGVtcHR5LCB0aGVuICJBbnkiIHdpbGwgYmUgdXNlZCBmb3IgdGhlCisgICAgICogc291cmNlLCBzbyB0aGUgSUQgd2lsbCBhbHdheXMgYmUgb2YgdGhlIGZvcm0gcy10L3Ygb3Igcy10LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFNUVnRvSUQoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgaWQgPSBuZXcgU3RyaW5nQnVmZmVyKHNvdXJjZSk7CisgICAgICAgIGlmIChpZC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBpZC5hcHBlbmQoQU5ZKTsKKyAgICAgICAgfQorICAgICAgICBpZC5hcHBlbmQoVEFSR0VUX1NFUCkuYXBwZW5kKHRhcmdldCk7CisgICAgICAgIGlmICh2YXJpYW50ICE9IG51bGwgJiYgdmFyaWFudC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBpZC5hcHBlbmQoVkFSSUFOVF9TRVApLmFwcGVuZCh2YXJpYW50KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaWQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciB0d28gdGFyZ2V0cyBhcyBiZWluZyBpbnZlcnNlcyBvZiBvbmUgYW5vdGhlci4gIEZvcgorICAgICAqIGV4YW1wbGUsIGNhbGxpbmcgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiTkZDIiwgIk5GRCIsIHRydWUpIGNhdXNlcworICAgICAqIFRyYW5zbGl0ZXJhdG9yIHRvIGZvcm0gdGhlIGZvbGxvd2luZyBpbnZlcnNlIHJlbGF0aW9uc2hpcHM6CisgICAgICoKKyAgICAgKiA8cHJlPk5GQyA9PiBORkQKKyAgICAgKiBBbnktTkZDID0+IEFueS1ORkQKKyAgICAgKiBORkQgPT4gTkZDCisgICAgICogQW55LU5GRCA9PiBBbnktTkZDPC9wcmU+CisgICAgICoKKyAgICAgKiAoV2l0aG91dCB0aGUgc3BlY2lhbCBpbnZlcnNlIHJlZ2lzdHJhdGlvbiwgdGhlIGludmVyc2Ugb2YgTkZDCisgICAgICogd291bGQgYmUgTkZDLUFueS4pICBOb3RlIHRoYXQgTkZEIGlzIHNob3J0aGFuZCBmb3IgQW55LU5GRCwgYnV0CisgICAgICogdGhhdCB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiAiQW55LSIgaXMgcHJlc2VydmVkLgorICAgICAqCisgICAgICogPHA+VGhlIHJlbGF0aW9uc2hpcCBpcyBzeW1tZXRyaWNhbDsgcmVnaXN0ZXJpbmcgKGEsIGIpIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZWdpc3RlcmluZyAoYiwgYSkuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmVsZXZhbnQgSURzIG11c3Qgc3RpbGwgYmUgcmVnaXN0ZXJlZCBzZXBhcmF0ZWx5IGFzCisgICAgICogZmFjdG9yaWVzIG9yIGNsYXNzZXMuCisgICAgICoKKyAgICAgKiA8cD5Pbmx5IHRoZSB0YXJnZXRzIGFyZSBzcGVjaWZpZWQuICBTcGVjaWFsIGludmVyc2VzIGFsd2F5cworICAgICAqIGhhdmUgdGhlIGZvcm0gQW55LVRhcmdldDEgPD0+IEFueS1UYXJnZXQyLiAgVGhlIHRhcmdldCBzaG91bGQKKyAgICAgKiBoYXZlIGNhbm9uaWNhbCBjYXNpbmcgKHRoZSBjYXNpbmcgZGVzaXJlZCB0byBiZSBwcm9kdWNlZCB3aGVuCisgICAgICogYW4gaW52ZXJzZSBpcyBmb3JtZWQpIGFuZCBzaG91bGQgY29udGFpbiBubyB3aGl0ZXNwYWNlIG9yIG90aGVyCisgICAgICogZXh0cmFuZW91cyBjaGFyYWN0ZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IGFnYWluc3Qgd2hpY2ggdG8gcmVnaXN0ZXIgdGhlIGludmVyc2UKKyAgICAgKiBAcGFyYW0gaW52ZXJzZVRhcmdldCB0aGUgaW52ZXJzZSBvZiB0YXJnZXQsIHRoYXQgaXMKKyAgICAgKiBBbnktdGFyZ2V0LmdldEludmVyc2UoKSA9PiBBbnktaW52ZXJzZVRhcmdldAorICAgICAqIEBwYXJhbSBiaWRpcmVjdGlvbmFsIGlmIHRydWUsIHJlZ2lzdGVyIHRoZSByZXZlcnNlIHJlbGF0aW9uCisgICAgICogYXMgd2VsbCwgdGhhdCBpcywgQW55LWludmVyc2VUYXJnZXQuZ2V0SW52ZXJzZSgpID0+IEFueS10YXJnZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZShTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpbnZlcnNlVGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYmlkaXJlY3Rpb25hbCkgeworICAgICAgICBTUEVDSUFMX0lOVkVSU0VTLnB1dChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHRhcmdldCksIGludmVyc2VUYXJnZXQpOworICAgICAgICBpZiAoYmlkaXJlY3Rpb25hbCAmJiAhdGFyZ2V0LmVxdWFsc0lnbm9yZUNhc2UoaW52ZXJzZVRhcmdldCkpIHsKKyAgICAgICAgICAgIFNQRUNJQUxfSU5WRVJTRVMucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoaW52ZXJzZVRhcmdldCksIHRhcmdldCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcml2YXRlIGltcGxlbWVudGF0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbiBJRCBpbnRvIGNvbXBvbmVudCBwaWVjZXMuICBUYWtlIElEcyBvZiB0aGUgZm9ybSBULAorICAgICAqIFQvViwgUy1ULCBTLVQvViwgb3IgUy9WLVQuICBJZiB0aGUgc291cmNlIGlzIG1pc3NpbmcsIHJldHVybiBhCisgICAgICogc291cmNlIG9mIEFOWS4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHN0cmluZywgaW4gYW55IG9mIHNldmVyYWwgZm9ybXMKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgcG9zWzBdIGlzIHRoZQorICAgICAqIG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHBhcnNlIGluIGlkLiAgT24gb3V0cHV0LAorICAgICAqIHBvc1swXSBpcyB0aGUgb2Zmc2V0IGFmdGVyIHRoZSBsYXN0IHBhcnNlZCBjaGFyYWN0ZXIuICBJZiB0aGUKKyAgICAgKiBwYXJzZSBmYWlsZWQsIHBvc1swXSB3aWxsIGJlIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gYWxsb3dGaWx0ZXIgaWYgdHJ1ZSwgYSBVbmljb2RlU2V0IHBhdHRlcm4gaXMgYWxsb3dlZAorICAgICAqIGF0IGFueSBsb2NhdGlvbiBiZXR3ZWVuIHNwZWNzIG9yIGRlbGltaXRlcnMsIGFuZCBpcyByZXR1cm5lZAorICAgICAqIGFzIHRoZSBmaWZ0aCBzdHJpbmcgaW4gdGhlIGFycmF5LgorICAgICAqIEByZXR1cm4gYSBTcGVjcyBvYmplY3QsIG9yIG51bGwgaWYgdGhlIHBhcnNlIGZhaWxlZC4gIElmCisgICAgICogbmVpdGhlciBzb3VyY2Ugbm9yIHRhcmdldCB3YXMgc2VlbiBpbiB0aGUgcGFyc2VkIGlkLCB0aGVuIHRoZQorICAgICAqIHBhcnNlIGZhaWxzLiAgSWYgYWxsb3dGaWx0ZXIgaXMgdHJ1ZSwgdGhlbiB0aGUgcGFyc2VkIGZpbHRlcgorICAgICAqIHBhdHRlcm4gaXMgcmV0dXJuZWQgaW4gdGhlIFNwZWNzIG9iamVjdCwgb3RoZXJ3aXNlIHRoZSByZXR1cm5lZAorICAgICAqIGZpbHRlciByZWZlcmVuY2UgaXMgbnVsbC4gIElmIHRoZSBwYXJzZSBmYWlscyBmb3IgYW55IHJlYXNvbgorICAgICAqIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3BlY3MgcGFyc2VGaWx0ZXJJRChTdHJpbmcgaWQsIGludFtdIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWxsb3dGaWx0ZXIpIHsKKyAgICAgICAgU3RyaW5nIGZpcnN0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG51bGw7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSBudWxsOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9IG51bGw7CisgICAgICAgIFN0cmluZyBmaWx0ZXIgPSBudWxsOworICAgICAgICBjaGFyIGRlbGltaXRlciA9IDA7CisgICAgICAgIGludCBzcGVjQ291bnQgPSAwOworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisKKyAgICAgICAgLy8gVGhpcyBsb29wIHBhcnNlcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aGluZ3Mgd2l0aCBlYWNoCisgICAgICAgIC8vIHBhc3M6IGEgZmlsdGVyLCBhIGRlbGltaXRlciBjaGFyYWN0ZXIgKGVpdGhlciAnLScgb3IgJy8nKSwKKyAgICAgICAgLy8gb3IgYSBzcGVjIChzb3VyY2UsIHRhcmdldCwgb3IgdmFyaWFudCkuCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UoaWQsIHBvcyk7CisgICAgICAgICAgICBpZiAocG9zWzBdID09IGlkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFBhcnNlIGZpbHRlcnMKKyAgICAgICAgICAgIGlmIChhbGxvd0ZpbHRlciAmJiBmaWx0ZXIgPT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQucmVzZW1ibGVzUGF0dGVybihpZCwgcG9zWzBdKSkgeworCisgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcG9zID0gbmV3IFBhcnNlUG9zaXRpb24ocG9zWzBdKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KGlkLCBwcG9zLCBudWxsKTsKKyAgICAgICAgICAgICAgICBmaWx0ZXIgPSBpZC5zdWJzdHJpbmcocG9zWzBdLCBwcG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgIHBvc1swXSA9IHBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGRlbGltaXRlciA9PSAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gaWQuY2hhckF0KHBvc1swXSk7CisgICAgICAgICAgICAgICAgaWYgKChjID09IFRBUkdFVF9TRVAgJiYgdGFyZ2V0ID09IG51bGwpIHx8CisgICAgICAgICAgICAgICAgICAgIChjID09IFZBUklBTlRfU0VQICYmIHZhcmlhbnQgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyID0gYzsKKyAgICAgICAgICAgICAgICAgICAgKytwb3NbMF07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2UgYXJlIGFib3V0IHRvIHRyeSB0byBwYXJzZSBhIHNwZWMgd2l0aCBubyBkZWxpbWl0ZXIKKyAgICAgICAgICAgIC8vIHdoZW4gd2UgY2FuIG5vIGxvbmdlciBkbyBzbyAod2UgY2FuIG9ubHkgZG8gc28gYXQgdGhlCisgICAgICAgICAgICAvLyBzdGFydCk7IGJyZWFrLgorICAgICAgICAgICAgaWYgKGRlbGltaXRlciA9PSAwICYmIHNwZWNDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHNwZWMgPSBVdGlsaXR5LnBhcnNlVW5pY29kZUlkZW50aWZpZXIoaWQsIHBvcyk7CisgICAgICAgICAgICBpZiAoc3BlYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGlmIHRoZXJlIHdhcyBhIHRyYWlsaW5nIGRlbGltaXRlciwgd2UKKyAgICAgICAgICAgICAgICAvLyBjb25zdW1lIGl0LiAgU28gRm9vLSwgRm9vLywgRm9vLUJhci8sIGFuZCBGb28vQmFyLQorICAgICAgICAgICAgICAgIC8vIGFyZSBsZWdhbC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChkZWxpbWl0ZXIpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBmaXJzdCA9IHNwZWM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRBUkdFVF9TRVA6CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gc3BlYzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVkFSSUFOVF9TRVA6CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IHNwZWM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK3NwZWNDb3VudDsKKyAgICAgICAgICAgIGRlbGltaXRlciA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyBBIHNwZWMgd2l0aCBubyBwcmlvciBjaGFyYWN0ZXIgaXMgZWl0aGVyIHNvdXJjZSBvciB0YXJnZXQsCisgICAgICAgIC8vIGRlcGVuZGluZyBvbiB3aGV0aGVyIGFuIGV4cGxpY2l0ICItdGFyZ2V0IiB3YXMgc2Vlbi4KKyAgICAgICAgaWYgKGZpcnN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRhcmdldCA9IGZpcnN0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE11c3QgaGF2ZSBlaXRoZXIgc291cmNlIG9yIHRhcmdldAorICAgICAgICBpZiAoc291cmNlID09IG51bGwgJiYgdGFyZ2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBFbXB0eSBzb3VyY2Ugb3IgdGFyZ2V0IGRlZmF1bHRzIHRvIEFOWQorICAgICAgICBib29sZWFuIHNhd1NvdXJjZSA9IHRydWU7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgc291cmNlID0gQU5ZOworICAgICAgICAgICAgc2F3U291cmNlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhcmdldCA9PSBudWxsKSB7CisgICAgICAgICAgICB0YXJnZXQgPSBBTlk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IFNwZWNzKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50LCBzYXdTb3VyY2UsIGZpbHRlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW5zIGEgU3BlYyBvYmplY3QsIGNvbnZlcnQgaXQgdG8gYSBTaW5nbGVJRCBvYmplY3QuICBUaGUKKyAgICAgKiBTcGVjIG9iamVjdCBpcyBhIG1vcmUgdW5wcm9jZXNzZWQgcGFyc2UgcmVzdWx0LiAgVGhlIFNpbmdsZUlECisgICAgICogb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGNhbm9uaWNhbCBhbmQgYmFzaWMgSURzLgorICAgICAqIEByZXR1cm4gYSBTaW5nbGVJRDsgbmV2ZXIgcmV0dXJucyBudWxsLiAgUmV0dXJuZWQgb2JqZWN0IGFsd2F5cworICAgICAqIGhhcyAnZmlsdGVyJyBmaWVsZCBvZiBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNpbmdsZUlEIHNwZWNzVG9JRChTcGVjcyBzcGVjcywgaW50IGRpcikgeworICAgICAgICBTdHJpbmcgY2Fub25JRCA9ICIiOworICAgICAgICBTdHJpbmcgYmFzaWNJRCA9ICIiOworICAgICAgICBTdHJpbmcgYmFzaWNQcmVmaXggPSAiIjsKKyAgICAgICAgaWYgKHNwZWNzICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3BlY3Muc2F3U291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3Muc291cmNlKS5hcHBlbmQoVEFSR0VUX1NFUCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYmFzaWNQcmVmaXggPSBzcGVjcy5zb3VyY2UgKyBUQVJHRVRfU0VQOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHNwZWNzLnRhcmdldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3MudGFyZ2V0KS5hcHBlbmQoVEFSR0VUX1NFUCkuYXBwZW5kKHNwZWNzLnNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3BlY3MudmFyaWFudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChWQVJJQU5UX1NFUCkuYXBwZW5kKHNwZWNzLnZhcmlhbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYmFzaWNJRCA9IGJhc2ljUHJlZml4ICsgYnVmLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoc3BlY3MuZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KDAsIHNwZWNzLmZpbHRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYW5vbklEID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVJRChjYW5vbklELCBiYXNpY0lEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIFNwZWNzIG9iamVjdCwgcmV0dXJuIGEgU2luZ2xlSUQgcmVwcmVzZW50aW5nIHRoZQorICAgICAqIHNwZWNpYWwgaW52ZXJzZSBvZiB0aGF0IElELiAgSWYgdGhlcmUgaXMgbm8gc3BlY2lhbCBpbnZlcnNlCisgICAgICogdGhlbiByZXR1cm4gbnVsbC4KKyAgICAgKiBAcmV0dXJuIGEgU2luZ2xlSUQgb3IgbnVsbC4gIFJldHVybmVkIG9iamVjdCBhbHdheXMgaGFzCisgICAgICogJ2ZpbHRlcicgZmllbGQgb2YgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTaW5nbGVJRCBzcGVjc1RvU3BlY2lhbEludmVyc2UoU3BlY3Mgc3BlY3MpIHsKKyAgICAgICAgaWYgKCFzcGVjcy5zb3VyY2UuZXF1YWxzSWdub3JlQ2FzZShBTlkpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgaW52ZXJzZVRhcmdldCA9IChTdHJpbmcpIFNQRUNJQUxfSU5WRVJTRVMuZ2V0KAorICAgICAgICAgICAgbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhzcGVjcy50YXJnZXQpKTsKKyAgICAgICAgaWYgKGludmVyc2VUYXJnZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIElEIGNvbnRhaW5lZCAiQW55LSIgdGhlbiBtYWtlIHRoZQorICAgICAgICAgICAgLy8gc3BlY2lhbCBpbnZlcnNlICJBbnktRm9vIjsgb3RoZXJ3aXNlIG1ha2UgaXQgIkZvbyIuCisgICAgICAgICAgICAvLyBTbyAiQW55LU5GQyIgPT4gIkFueS1ORkQiIGJ1dCAiTkZDIiA9PiAiTkZEIi4KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpZiAoc3BlY3MuZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHNwZWNzLmZpbHRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3BlY3Muc2F3U291cmNlKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChBTlkpLmFwcGVuZChUQVJHRVRfU0VQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaW52ZXJzZVRhcmdldCk7CisKKyAgICAgICAgICAgIFN0cmluZyBiYXNpY0lEID0gQU5ZICsgVEFSR0VUX1NFUCArIGludmVyc2VUYXJnZXQ7CisKKyAgICAgICAgICAgIGlmIChzcGVjcy52YXJpYW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFZBUklBTlRfU0VQKS5hcHBlbmQoc3BlY3MudmFyaWFudCk7CisgICAgICAgICAgICAgICAgYmFzaWNJRCA9IGJhc2ljSUQgKyBWQVJJQU5UX1NFUCArIHNwZWNzLnZhcmlhbnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IFNpbmdsZUlEKGJ1Zi50b1N0cmluZygpLCBiYXNpY0lEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvclBhcnNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JQYXJzZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MjNlZjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JQYXJzZXIuamF2YQpAQCAtMCwwICsxLDE1NDEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworY2xhc3MgVHJhbnNsaXRlcmF0b3JQYXJzZXIgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQVUJMSUMgZGF0YSBtZW1iZXIuCisgICAgICogQSBWZWN0b3Igb2YgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBvYmplY3RzLCBvbmUgZm9yIGVhY2ggZGlzY3JldGUgZ3JvdXAKKyAgICAgKiBvZiBydWxlcyBpbiB0aGUgcnVsZSBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgVmVjdG9yIGRhdGFWZWN0b3I7CisKKyAgICAvKioKKyAgICAgKiBQVUJMSUMgZGF0YSBtZW1iZXIuCisgICAgICogQSBWZWN0b3Igb2YgU3RyaW5ncyBjb250YWluaW5nIGFsbCBvZiB0aGUgSUQgYmxvY2tzIGluIHRoZSBydWxlIHNldAorICAgICAqLworICAgIHB1YmxpYyBWZWN0b3IgaWRCbG9ja1ZlY3RvcjsKKworICAgIC8qKgorICAgICAqIFRoZSBjdXJyZW50IGRhdGEgb2JqZWN0IGZvciB3aGljaCB3ZSBhcmUgcGFyc2luZyBydWxlcworICAgICAqLworICAgIHByaXZhdGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBjdXJEYXRhOworCisgICAgLyoqCisgICAgICogUFVCTElDIGRhdGEgbWVtYmVyIGNvbnRhaW5pbmcgdGhlIHBhcnNlZCBjb21wb3VuZCBmaWx0ZXIsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wb3VuZEZpbHRlcjsKKworCisgICAgcHJpdmF0ZSBpbnQgZGlyZWN0aW9uOworCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHN5bWJvbCB0YWJsZSB1c2VkIGR1cmluZyBwYXJzaW5nLgorICAgICAqLworICAgIHByaXZhdGUgUGFyc2VEYXRhIHBhcnNlRGF0YTsKKworICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSB2ZWN0b3Igb2Ygc2V0IHZhcmlhYmxlcy4gIFdoZW4gcGFyc2luZyBpcyBjb21wbGV0ZSwgdGhpcworICAgICAqIGlzIGNvcGllZCBpbnRvIHRoZSBhcnJheSBkYXRhLnZhcmlhYmxlcy4gIEFzIHdpdGggZGF0YS52YXJpYWJsZXMsCisgICAgICogZWxlbWVudCAwIGNvcnJlc3BvbmRzIHRvIGNoYXJhY3RlciBkYXRhLnZhcmlhYmxlc0Jhc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBWZWN0b3IgdmFyaWFibGVzVmVjdG9yOworCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHRhYmxlIG9mIHZhcmlhYmxlIG5hbWVzLiAgV2hlbiBwYXJzaW5nIGlzIGNvbXBsZXRlLCB0aGlzIGlzCisgICAgICogY29waWVkIGludG8gZGF0YS52YXJpYWJsZU5hbWVzLgorICAgICAqLworICAgIHByaXZhdGUgSGFzaHRhYmxlIHZhcmlhYmxlTmFtZXM7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgb2Ygc3RhbmRpbnMgZm9yIHNlZ21lbnRzLiAgVXNlZCBkdXJpbmcgdGhlIHBhcnNpbmcgb2YgYSBzaW5nbGUKKyAgICAgKiBydWxlLiAgc2VnbWVudFN0YW5kaW5zLmNoYXJBdCgwKSBpcyB0aGUgc3RhbmRpbiBmb3IgIiQxIiBhbmQgY29ycmVzcG9uZHMKKyAgICAgKiB0byBTdHJpbmdNYXRjaGVyIG9iamVjdCBzZWdtZW50T2JqZWN0cy5lbGVtZW50QXQoMCksIGV0Yy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBzZWdtZW50U3RhbmRpbnM7CisKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgU3RyaW5nTWF0Y2hlciBvYmplY3RzIGZvciBzZWdtZW50cy4gIFVzZWQgZHVyaW5nIHRoZQorICAgICAqIHBhcnNpbmcgb2YgYSBzaW5nbGUgcnVsZS4gIAorICAgICAqIHNlZ21lbnRTdGFuZGlucy5jaGFyQXQoMCkgaXMgdGhlIHN0YW5kaW4gZm9yICIkMSIgYW5kIGNvcnJlc3BvbmRzCisgICAgICogdG8gU3RyaW5nTWF0Y2hlciBvYmplY3Qgc2VnbWVudE9iamVjdHMuZWxlbWVudEF0KDApLCBldGMuCisgICAgICovCisgICAgcHJpdmF0ZSBWZWN0b3Igc2VnbWVudE9iamVjdHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmV4dCBhdmFpbGFibGUgc3RhbmQtaW4gZm9yIHZhcmlhYmxlcy4gIFRoaXMgc3RhcnRzIGF0IHNvbWUgcG9pbnQgaW4KKyAgICAgKiB0aGUgcHJpdmF0ZSB1c2UgYXJlYSAoZGlzY292ZXJlZCBkeW5hbWljYWxseSkgYW5kIGluY3JlbWVudHMgdXAgdG93YXJkCisgICAgICogPGNvZGU+dmFyaWFibGVMaW1pdDwvY29kZT4uICBBdCBhbnkgcG9pbnQgZHVyaW5nIHBhcnNpbmcsIGF2YWlsYWJsZQorICAgICAqIHZhcmlhYmxlcyBhcmUgPGNvZGU+dmFyaWFibGVOZXh0Li52YXJpYWJsZUxpbWl0LTE8L2NvZGU+LgorICAgICAqLworICAgIHByaXZhdGUgY2hhciB2YXJpYWJsZU5leHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGFzdCBhdmFpbGFibGUgc3RhbmQtaW4gZm9yIHZhcmlhYmxlcy4gIFRoaXMgaXMgZGlzY292ZXJlZAorICAgICAqIGR5bmFtaWNhbGx5LiAgQXQgYW55IHBvaW50IGR1cmluZyBwYXJzaW5nLCBhdmFpbGFibGUgdmFyaWFibGVzIGFyZQorICAgICAqIDxjb2RlPnZhcmlhYmxlTmV4dC4udmFyaWFibGVMaW1pdC0xPC9jb2RlPi4gIER1cmluZyB2YXJpYWJsZSBkZWZpbml0aW9uCisgICAgICogd2UgdXNlIHRoZSBzcGVjaWFsIHZhbHVlIHZhcmlhYmxlTGltaXQtMSBhcyBhIHBsYWNlaG9sZGVyLgorICAgICAqLworICAgIHByaXZhdGUgY2hhciB2YXJpYWJsZUxpbWl0OworCisgICAgLyoqCisgICAgICogV2hlbiB3ZSBlbmNvdW50ZXIgYW4gdW5kZWZpbmVkIHZhcmlhYmxlLCB3ZSBkbyBub3QgaW1tZWRpYXRlbHkgc2lnbmFsCisgICAgICogYW4gZXJyb3IsIGluIGNhc2Ugd2UgYXJlIGRlZmluaW5nIHRoaXMgdmFyaWFibGUsIGUuZy4sICIkYSA9IFthLXpdOyIuCisgICAgICogSW5zdGVhZCwgd2Ugc2F2ZSB0aGUgbmFtZSBvZiB0aGUgdW5kZWZpbmVkIHZhcmlhYmxlLCBhbmQgc3Vic3RpdHV0ZQorICAgICAqIGluIHRoZSBwbGFjZWhvbGRlciBjaGFyIHZhcmlhYmxlTGltaXQgLSAxLCBhbmQgZGVjcmVtZW50CisgICAgICogdmFyaWFibGVMaW1pdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB1bmRlZmluZWRWYXJpYWJsZU5hbWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhbmQtaW4gY2hhcmFjdGVyIGZvciB0aGUgJ2RvdCcgc2V0LCByZXByZXNlbnRlZCBieSAnLicgaW4KKyAgICAgKiBwYXR0ZXJucy4gIFRoaXMgaXMgYWxsb2NhdGVkIHRoZSBmaXJzdCB0aW1lIGl0IGlzIG5lZWRlZCwgYW5kCisgICAgICogcmV1c2VkIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZG90U3RhbmRJbiA9IC0xOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBJbmRpY2F0b3IgZm9yIElEIGJsb2NrcworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJRF9UT0tFTiA9ICI6OiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElEX1RPS0VOX0xFTiA9IDI7CisKKy8qCisocmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHBhbnNpb24pCisgICAgLy8gbWFya2VycyBmb3IgYmVnaW5uaW5nIGFuZCBlbmQgb2YgcnVsZSBncm91cHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkVHSU5fVE9LRU4gPSAiQkVHSU4iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBFTkRfVE9LRU4gPSAiRU5EIjsKKyovCisKKyAgICAvLyBPcGVyYXRvcnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFZBUklBQkxFX0RFRl9PUCAgID0gJz0nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRk9SV0FSRF9SVUxFX09QICAgPSAnPic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBSRVZFUlNFX1JVTEVfT1AgICA9ICc8JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEZXRFJFVl9SVUxFX09QICAgID0gJ34nOyAvLyBpbnRlcm5hbCByZXAgb2YgPD4gb3AKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVSQVRPUlMgPSAiPT48XHUyMTkwXHUyMTkyXHUyMTk0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEFMRl9FTkRFUlMgPSAiPT48XHUyMTkwXHUyMTkyXHUyMTk0OyI7CisKKyAgICAvLyBPdGhlciBzcGVjaWFsIGNoYXJhY3RlcnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFFVT1RFICAgICAgICAgICAgICAgPSAnXCcnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRVNDQVBFICAgICAgICAgICAgICA9ICdcXCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFTkRfT0ZfUlVMRSAgICAgICAgID0gJzsnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUlVMRV9DT01NRU5UX0NIQVIgICA9ICcjJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ09OVEVYVF9BTlRFICAgICAgICA9ICd7JzsgLy8gYW50ZXtrZXkKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENPTlRFWFRfUE9TVCAgICAgICAgPSAnfSc7IC8vIGtleX1wb3N0CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDVVJTT1JfUE9TICAgICAgICAgID0gJ3wnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1VSU09SX09GRlNFVCAgICAgICA9ICdAJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFOQ0hPUl9TVEFSVCAgICAgICAgPSAnXic7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtMRUVORV9TVEFSICAgICAgICAgPSAnKic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBPTkVfT1JfTU9SRSAgICAgICAgID0gJysnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgWkVST19PUl9PTkUgICAgICAgICA9ICc/JzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRE9UICAgICAgICAgICAgICAgICA9ICcuJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRE9UX1NFVCAgICAgICAgICAgPSAiW15bOlpwOl1bOlpsOl1cXHJcXG4kXSI7CisKKyAgICAvLyBCeSBkZWZpbml0aW9uLCB0aGUgQU5DSE9SX0VORCBzcGVjaWFsIGNoYXJhY3RlciBpcyBhCisgICAgLy8gdHJhaWxpbmcgU3ltYm9sVGFibGUuU1lNQk9MX1JFRiBjaGFyYWN0ZXIuCisgICAgLy8gcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTkNIT1JfRU5EICAgICAgID0gJyQnOworCisgICAgLy8gU2VnbWVudHMgb2YgdGhlIGlucHV0IHN0cmluZyBhcmUgZGVsaW1pdGVkIGJ5ICIoIiBhbmQgIikiLiAgSW4gdGhlCisgICAgLy8gb3V0cHV0IHN0cmluZyB0aGVzZSBzZWdtZW50cyBhcmUgcmVmZXJlbmNlZCBhcyAiJDEiLCAiJDIiLCBldGMuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTRUdNRU5UX09QRU4gICAgICAgID0gJygnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgU0VHTUVOVF9DTE9TRSAgICAgICA9ICcpJzsKKworICAgIC8vIEEgZnVuY3Rpb24gaXMgZGVub3RlZCAmU291cmNlLVRhcmdldC9WYXJpYW50KHRleHQpCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBGVU5DVElPTiAgICAgICAgICAgID0gJyYnOworCisgICAgLy8gQWxpYXNlcyBmb3Igc29tZSBvZiB0aGUgc3ludGF4IGNoYXJhY3RlcnMuIFRoZXNlIGFyZSBwcm92aWRlZCBzbworICAgIC8vIHRyYW5zbGl0ZXJhdGlvbiBydWxlcyBjYW4gYmUgZXhwcmVzc2VkIGluIFhNTCB3aXRob3V0IGNsYXNoaW5nIHdpdGgKKyAgICAvLyBYTUwgc3ludGF4IGNoYXJhY3RlcnMgJzwnLCAnPicsIGFuZCAnJicuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTFRfUkVWRVJTRV9SVUxFX09QID0gJ1x1MjE5MCc7IC8vIExlZnQgQXJyb3cKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFMVF9GT1JXQVJEX1JVTEVfT1AgPSAnXHUyMTkyJzsgLy8gUmlnaHQgQXJyb3cKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFMVF9GV0RSRVZfUlVMRV9PUCAgPSAnXHUyMTk0JzsgLy8gTGVmdCBSaWdodCBBcnJvdworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQUxUX0ZVTkNUSU9OICAgICAgICA9ICdcdTIyMDYnOyAvLyBJbmNyZW1lbnQgKH5HcmVlayBDYXBpdGFsIERlbHRhKQorICAgIAorICAgIC8vIFNwZWNpYWwgY2hhcmFjdGVycyBkaXNhbGxvd2VkIGF0IHRoZSB0b3AgbGV2ZWwKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElMTEVHQUxfVE9QID0gbmV3IFVuaWNvZGVTZXQoIltcXCldIik7CisKKyAgICAvLyBTcGVjaWFsIGNoYXJhY3RlcnMgZGlzYWxsb3dlZCB3aXRoaW4gYSBzZWdtZW50CisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBJTExFR0FMX1NFRyA9IG5ldyBVbmljb2RlU2V0KCJbXFx7XFx9XFx8XFxAXSIpOworCisgICAgLy8gU3BlY2lhbCBjaGFyYWN0ZXJzIGRpc2FsbG93ZWQgd2l0aGluIGEgZnVuY3Rpb24gYXJndW1lbnQKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElMTEVHQUxfRlVOQyA9IG5ldyBVbmljb2RlU2V0KCJbXFxeXFwoXFwuXFwqXFwrXFw/XFx7XFx9XFx8XFxAXSIpOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgUGFyc2VEYXRhCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFN5bWJvbFRhYmxlIGludGVyZmFjZS4gIEl0IGlzIHVzZWQKKyAgICAgKiBkdXJpbmcgcGFyc2luZyB0byBnaXZlIFVuaWNvZGVTZXQgYWNjZXNzIHRvIHZhcmlhYmxlcyB0aGF0CisgICAgICogaGF2ZSBiZWVuIGRlZmluZWQgc28gZmFyLiAgTm90ZSB0aGF0IGl0IHVzZXMgdmFyaWFibGVzVmVjdG9yLAorICAgICAqIF9ub3RfIGRhdGEudmFyaWFibGVzLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgUGFyc2VEYXRhIGltcGxlbWVudHMgU3ltYm9sVGFibGUgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbXBsZW1lbnQgU3ltYm9sVGFibGUgQVBJLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXJbXSBsb29rdXAoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcltdKSB2YXJpYWJsZU5hbWVzLmdldChuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbXBsZW1lbnQgU3ltYm9sVGFibGUgQVBJLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVNYXRjaGVyIGxvb2t1cE1hdGNoZXIoaW50IGNoKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2Fubm90IHVzZSBkYXRhLmxvb2t1cCgpIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAvLyBzZXQgYXJyYXkgaGFzIG5vdCBiZWVuIGNvbnN0cnVjdGVkIHlldC4KKyAgICAgICAgICAgIGludCBpID0gY2ggLSBjdXJEYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgICAgICBpZiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXNWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChVbmljb2RlTWF0Y2hlcikgdmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEltcGxlbWVudCBTeW1ib2xUYWJsZSBBUEkuICBQYXJzZSBvdXQgYSBzeW1ib2wgcmVmZXJlbmNlCisgICAgICAgICAqIG5hbWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHBhcnNlUmVmZXJlbmNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGludCBpID0gc3RhcnQ7CisgICAgICAgICAgICB3aGlsZSAoaSA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKChpPT1zdGFydCAmJiAhQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChjKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgIUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPT0gc3RhcnQpIHsgLy8gTm8gdmFsaWQgbmFtZSBjaGFycworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zLnNldEluZGV4KGkpOworICAgICAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIGEgbWF0Y2hlciBzdGFuZGluIG9yIGEgcGxhaW4KKyAgICAgICAgICogY2hhcmFjdGVyIChub24gc3RhbmRpbikuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc01hdGNoZXIoaW50IGNoKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2Fubm90IHVzZSBkYXRhLmxvb2t1cCgpIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAvLyBzZXQgYXJyYXkgaGFzIG5vdCBiZWVuIGNvbnN0cnVjdGVkIHlldC4KKyAgICAgICAgICAgIGludCBpID0gY2ggLSBjdXJEYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgICAgICBpZiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXNWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaSkgaW5zdGFuY2VvZiBVbmljb2RlTWF0Y2hlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgYSByZXBsYWNlciBzdGFuZGluIG9yIGEgcGxhaW4KKyAgICAgICAgICogY2hhcmFjdGVyIChub24gc3RhbmRpbikuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlcGxhY2VyKGludCBjaCkgeworICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbm5vdCB1c2UgZGF0YS5sb29rdXAoKSBiZWNhdXNlIHRoZQorICAgICAgICAgICAgLy8gc2V0IGFycmF5IGhhcyBub3QgYmVlbiBjb25zdHJ1Y3RlZCB5ZXQuCisgICAgICAgICAgICBpbnQgaSA9IGNoIC0gY3VyRGF0YS52YXJpYWJsZXNCYXNlOworICAgICAgICAgICAgaWYgKGkgPj0gMCAmJiBpIDwgdmFyaWFibGVzVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZXNWZWN0b3IuZWxlbWVudEF0KGkpIGluc3RhbmNlb2YgVW5pY29kZVJlcGxhY2VyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzc2VzIFJ1bGVCb2R5LCBSdWxlQXJyYXksIGFuZCBSdWxlUmVhZGVyCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBIHByaXZhdGUgYWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBpbnRlcmZhY2UgdG8gcnVsZQorICAgICAqIHNvdXJjZSBjb2RlIHRoYXQgaXMgYnJva2VuIHVwIGludG8gbGluZXMuICBIYW5kbGVzIHRoZQorICAgICAqIGZvbGRpbmcgb2YgbGluZXMgdGVybWluYXRlZCBieSBhIGJhY2tzbGFzaC4gIFRoaXMgZm9sZGluZworICAgICAqIGlzIGxpbWl0ZWQ7IGl0IGRvZXMgbm90IGFjY291bnQgZm9yIGNvbW1lbnRzLCBxdW90ZXMsIG9yCisgICAgICogZXNjYXBlcywgc28gaXRzIHVzZSB0byBiZSBsaW1pdGVkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGFic3RyYWN0IGNsYXNzIFJ1bGVCb2R5IHsKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0cmlldmUgdGhlIG5leHQgbGluZSBvZiB0aGUgc291cmNlLCBvciByZXR1cm4gbnVsbCBpZgorICAgICAgICAgKiBub25lLiAgRm9sZHMgbGluZXMgdGVybWluYXRlZCBieSBhIGJhY2tzbGFzaCBpbnRvIHRoZQorICAgICAgICAgKiBuZXh0IGxpbmUsIHdpdGhvdXQgcmVnYXJkIGZvciBjb21tZW50cywgcXVvdGVzLCBvcgorICAgICAgICAgKiBlc2NhcGVzLgorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIG5leHRMaW5lKCkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBoYW5kbGVOZXh0TGluZSgpOworICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIHMubGVuZ3RoKCkgPiAwICYmCisgICAgICAgICAgICAgICAgcy5jaGFyQXQocy5sZW5ndGgoKSAtIDEpID09ICdcXCcpIHsKKworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBiID0gbmV3IFN0cmluZ0J1ZmZlcihzKTsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGIuZGVsZXRlQ2hhckF0KGIubGVuZ3RoKCktMSk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBoYW5kbGVOZXh0TGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiLmFwcGVuZChzKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChzLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIHMuY2hhckF0KHMubGVuZ3RoKCkgLSAxKSA9PSAnXFwnKTsKKworICAgICAgICAgICAgICAgIHMgPSBiLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXNldCB0byB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc291cmNlLgorICAgICAgICAgKi8KKyAgICAgICAgYWJzdHJhY3Qgdm9pZCByZXNldCgpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTdWJjbGFzcyBtZXRob2QgdG8gcmV0dXJuIHRoZSBuZXh0IGxpbmUgb2YgdGhlIHNvdXJjZS4KKyAgICAgICAgICovCisgICAgICAgIGFic3RyYWN0IFN0cmluZyBoYW5kbGVOZXh0TGluZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1bGVCb2R5IHN1YmNsYXNzIGZvciBhIFN0cmluZ1tdIGFycmF5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFJ1bGVBcnJheSBleHRlbmRzIFJ1bGVCb2R5IHsKKyAgICAgICAgU3RyaW5nW10gYXJyYXk7CisgICAgICAgIGludCBpOworICAgICAgICBwdWJsaWMgUnVsZUFycmF5KFN0cmluZ1tdIGFycmF5KSB7IHRoaXMuYXJyYXkgPSBhcnJheTsgaSA9IDA7IH0KKyAgICAgICAgcHVibGljIFN0cmluZyBoYW5kbGVOZXh0TGluZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAoaSA8IGFycmF5Lmxlbmd0aCkgPyBhcnJheVtpKytdIDogbnVsbDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGkgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBSdWxlQm9keSBzdWJjbGFzcyBmb3IgYSBSZXNvdXJjZVJlYWRlci4KKyAgICAgKi8KKy8qICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFJ1bGVSZWFkZXIgZXh0ZW5kcyBSdWxlQm9keSB7CisgICAgICAgIFJlc291cmNlUmVhZGVyIHJlYWRlcjsKKyAgICAgICAgcHVibGljIFJ1bGVSZWFkZXIoUmVzb3VyY2VSZWFkZXIgcmVhZGVyKSB7IHRoaXMucmVhZGVyID0gcmVhZGVyOyB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgaGFuZGxlTmV4dExpbmUoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEuaW8uSU9FeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgcmVhZGVyLnJlc2V0KCk7CisgICAgICAgIH0KKyAgICB9Ki8KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzIFJ1bGVIYWxmCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIHJlcHJlc2VudGluZyBvbmUgc2lkZSBvZiBhIHJ1bGUuICBUaGlzIGNsYXNzIGtub3dzIGhvdyB0bworICAgICAqIHBhcnNlIGhhbGYgb2YgYSBydWxlLiAgSXQgaXMgdGlnaHRseSBjb3VwbGVkIHRvIHRoZSBtZXRob2QKKyAgICAgKiBUcmFuc2xpdGVyYXRvclBhcnNlci5wYXJzZVJ1bGUoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBSdWxlSGFsZiB7CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0ZXh0OworCisgICAgICAgIHB1YmxpYyBpbnQgY3Vyc29yID0gLTE7IC8vIHBvc2l0aW9uIG9mIGN1cnNvciBpbiB0ZXh0CisgICAgICAgIHB1YmxpYyBpbnQgYW50ZSA9IC0xOyAgIC8vIHBvc2l0aW9uIG9mIGFudGUgY29udGV4dCBtYXJrZXIgJ3snIGluIHRleHQKKyAgICAgICAgcHVibGljIGludCBwb3N0ID0gLTE7ICAgLy8gcG9zaXRpb24gb2YgcG9zdCBjb250ZXh0IG1hcmtlciAnfScgaW4gdGV4dAorCisgICAgICAgIC8vIFJlY29yZCB0aGUgb2Zmc2V0IHRvIHRoZSBjdXJzb3IgZWl0aGVyIHRvIHRoZSBsZWZ0IG9yIHRvIHRoZQorICAgICAgICAvLyByaWdodCBvZiB0aGUga2V5LiAgVGhpcyBpcyBpbmRpY2F0ZWQgYnkgY2hhcmFjdGVycyBvbiB0aGUgb3V0cHV0CisgICAgICAgIC8vIHNpZGUgdGhhdCBhbGxvdyB0aGUgY3Vyc29yIHRvIGJlIHBvc2l0aW9uZWQgYXJiaXRyYXJpbHkgd2l0aGluCisgICAgICAgIC8vIHRoZSBtYXRjaGluZyB0ZXh0LiAgRm9yIGV4YW1wbGUsIGFiY3tkZWZ9ID4gfCBAQEAgeHl6OyBjaGFuZ2VzCisgICAgICAgIC8vIGRlZiB0byB4eXogYW5kIG1vdmVzIHRoZSBjdXJzb3IgdG8gYmVmb3JlIGFiYy4gIE9mZnNldCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIG11c3QgYmUgYXQgdGhlIHN0YXJ0IG9yIGVuZCwgYW5kIHRoZXkgY2Fubm90IG1vdmUgdGhlIGN1cnNvciBwYXN0CisgICAgICAgIC8vIHRoZSBhbnRlLSBvciBwb3N0Y29udGV4dCB0ZXh0LiAgUGxhY2Vob2xkZXJzIGFyZSBvbmx5IHZhbGlkIGluCisgICAgICAgIC8vIG91dHB1dCB0ZXh0LiAgVGhlIGxlbmd0aCBvZiB0aGUgYW50ZSBhbmQgcG9zdCBjb250ZXh0IGlzCisgICAgICAgIC8vIGRldGVybWluZWQgYXQgcnVudGltZSwgYmVjYXVzZSBvZiBzdXBwbGVtZW50YWxzIGFuZCBxdWFudGlmaWVycy4KKyAgICAgICAgcHVibGljIGludCBjdXJzb3JPZmZzZXQgPSAwOyAvLyBvbmx5IG5vbnplcm8gb24gb3V0cHV0IHNpZGUKKworICAgICAgICAvLyBQb3NpdGlvbiBvZiBmaXJzdCBDVVJTT1JfT0ZGU0VUIG9uIF9yaWdodF8uICBUaGlzIHdpbGwgYmUgLTEKKyAgICAgICAgLy8gZm9yIHxALCAtMiBmb3IgfEBALCBldGMuLCBhbmQgMSBmb3IgQHwsIDIgZm9yIEBAfCwgZXRjLgorICAgICAgICBwcml2YXRlIGludCBjdXJzb3JPZmZzZXRQb3MgPSAwOworCisgICAgICAgIHB1YmxpYyBib29sZWFuIGFuY2hvclN0YXJ0ID0gZmFsc2U7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFuY2hvckVuZCAgID0gZmFsc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBzZWdtZW50IG51bWJlciBmcm9tIDEuLm4gb2YgdGhlIG5leHQgJygnIHdlIHNlZQorICAgICAgICAgKiBkdXJpbmcgcGFyc2luZzsgMS1iYXNlZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG5leHRTZWdtZW50TnVtYmVyID0gMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2Ugb25lIHNpZGUgb2YgYSBydWxlLCBzdG9wcGluZyBhdCBlaXRoZXIgdGhlIGxpbWl0LAorICAgICAgICAgKiB0aGUgRU5EX09GX1JVTEUgY2hhcmFjdGVyLCBvciBhbiBvcGVyYXRvci4KKyAgICAgICAgICogQHJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIHRlcm1pbmF0aW5nIGNoYXJhY3Rlciwgb3IKKyAgICAgICAgICogaWYgbGltaXQgd2FzIHJlYWNoZWQsIGxpbWl0CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHBhcnNlKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgcG9zID0gcGFyc2VTZWN0aW9uKHJ1bGUsIHBvcywgbGltaXQsIHBhcnNlciwgYnVmLCBJTExFR0FMX1RPUCwgZmFsc2UpOworICAgICAgICAgICAgdGV4dCA9IGJ1Zi50b1N0cmluZygpOworCisgICAgICAgICAgICBpZiAoY3Vyc29yT2Zmc2V0ID4gMCAmJiBjdXJzb3IgIT0gY3Vyc29yT2Zmc2V0UG9zKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCAiICsgQ1VSU09SX1BPUywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBhcnNlIGEgc2VjdGlvbiBvZiBvbmUgc2lkZSBvZiBhIHJ1bGUsIHN0b3BwaW5nIGF0IGVpdGhlcgorICAgICAgICAgKiB0aGUgbGltaXQsIHRoZSBFTkRfT0ZfUlVMRSBjaGFyYWN0ZXIsIGFuIG9wZXJhdG9yLCBvciBhCisgICAgICAgICAqIHNlZ21lbnQgY2xvc2UgY2hhcmFjdGVyLiAgVGhpcyBtZXRob2QgcGFyc2VzIGJvdGggYQorICAgICAgICAgKiB0b3AtbGV2ZWwgcnVsZSBoYWxmIGFuZCBhIHNlZ21lbnQgd2l0aGluIHN1Y2ggYSBydWxlIGhhbGYuCisgICAgICAgICAqIEl0IGNhbGxzIGl0c2VsZiByZWN1cnNpdmVseSB0byBwYXJzZSBzZWdtZW50cyBhbmQgbmVzdGVkCisgICAgICAgICAqIHNlZ21lbnRzLgorICAgICAgICAgKiBAcGFyYW0gYnVmIGJ1ZmZlciBpbnRvIHdoaWNoIHRvIGFjY3VtdWxhdGUgdGhlIHJ1bGUgcGF0dGVybgorICAgICAgICAgKiBjaGFyYWN0ZXJzLCBlaXRoZXIgbGl0ZXJhbCBjaGFyYWN0ZXJzIGZyb20gdGhlIHJ1bGUgb3IKKyAgICAgICAgICogc3RhbmRpbnMgZm9yIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMgaW5jbHVkaW5nIHNlZ21lbnRzLgorICAgICAgICAgKiBAcGFyYW0gaWxsZWdhbCB0aGUgc2V0IG9mIHNwZWNpYWwgY2hhcmFjdGVycyB0aGF0IGlzIGlsbGVnYWwgZHVyaW5nCisgICAgICAgICAqIHRoaXMgcGFyc2UuCisgICAgICAgICAqIEBwYXJhbSBpc1NlZ21lbnQgaWYgdHJ1ZSwgdGhlbiB3ZSd2ZSBhbHJlYWR5IHNlZW4gYSAnKCcgYW5kCisgICAgICAgICAqIHBvcyBvbiBlbnRyeSBwb2ludHMgcmlnaHQgYWZ0ZXIgaXQuICBBY2N1bXVsYXRlIGV2ZXJ5dGhpbmcKKyAgICAgICAgICogdXAgdG8gdGhlIGNsb3NpbmcgJyknLCBwdXQgaXQgaW4gYSBzZWdtZW50IG1hdGNoZXIgb2JqZWN0LAorICAgICAgICAgKiBnZW5lcmF0ZSBhIHN0YW5kaW4gZm9yIGl0LCBhbmQgYWRkIHRoZSBzdGFuZGluIHRvIGJ1Zi4gIEFzCisgICAgICAgICAqIGEgc2lkZSBlZmZlY3QsIHVwZGF0ZSB0aGUgc2VnbWVudHMgdmVjdG9yIHdpdGggYSByZWZlcmVuY2UKKyAgICAgICAgICogdG8gdGhlIHNlZ21lbnQgbWF0Y2hlci4gIFRoaXMgd29ya3MgcmVjdXJzaXZlbHkgZm9yIG5lc3RlZAorICAgICAgICAgKiBzZWdtZW50cy4gIElmIGlzU2VnbWVudCBpcyBmYWxzZSwganVzdCBhY2N1bXVsYXRlCisgICAgICAgICAqIGNoYXJhY3RlcnMgaW50byBidWYuCisgICAgICAgICAqIEByZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIG9yCisgICAgICAgICAqIGlmIGxpbWl0IHdhcyByZWFjaGVkLCBsaW1pdAorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VTZWN0aW9uKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBpbGxlZ2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1NlZ21lbnQpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHBvczsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBudWxsOworICAgICAgICAgICAgaW50IHF1b3RlU3RhcnQgPSAtMTsgLy8gTW9zdCByZWNlbnQgJ3NpbmdsZSBxdW90ZWQgc3RyaW5nJworICAgICAgICAgICAgaW50IHF1b3RlTGltaXQgPSAtMTsKKyAgICAgICAgICAgIGludCB2YXJTdGFydCA9IC0xOyAvLyBNb3N0IHJlY2VudCAkdmFyaWFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgIGludCB2YXJMaW1pdCA9IC0xOworICAgICAgICAgICAgaW50W10gaXJlZiA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBpbnQgYnVmU3RhcnQgPSBidWYubGVuZ3RoKCk7CisKKyAgICAgICAgbWFpbjoKKyAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIC8vIFNpbmNlIGFsbCBzeW50YXggY2hhcmFjdGVycyBhcmUgaW4gdGhlIEJNUCwgZmV0Y2hpbmcKKyAgICAgICAgICAgICAgICAvLyAxNi1iaXQgY29kZSB1bml0cyBzdWZmaWNlcyBoZXJlLgorICAgICAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhBTEZfRU5ERVJTIGlzIGFsbCBjaGFycyB0aGF0IGVuZCBhIHJ1bGUgaGFsZjogIjw+PTsiCisgICAgICAgICAgICAgICAgaWYgKEhBTEZfRU5ERVJTLmluZGV4T2YoYykgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZWdtZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5jbG9zZWQgc2VnbWVudCIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYW5jaG9yRW5kKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRleHQgYWZ0ZXIgYSBwcmVzdW1lZCBlbmQgYW5jaG9yIGlzIGEgc3ludGF4IGVycgorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIHZhcmlhYmxlIHJlZmVyZW5jZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVuaWNvZGVTZXQucmVzZW1ibGVzUGF0dGVybihydWxlLCBwb3MtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBwID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHAuc2V0SW5kZXgocG9zLTEpOyAvLyBCYWNrdXAgdG8gb3BlbmluZyAnWycKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIucGFyc2VTZXQocnVsZSwgcHApKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gcHAuZ2V0SW5kZXgoKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGVzY2FwZXMKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlRyYWlsaW5nIGJhY2tzbGFzaCIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpcmVmWzBdID0gcG9zOworICAgICAgICAgICAgICAgICAgICBpbnQgZXNjYXBlZCA9IFV0aWxpdHkudW5lc2NhcGVBdChydWxlLCBpcmVmKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gaXJlZlswXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVzY2FwZWQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNYWxmb3JtZWQgZXNjYXBlIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBhcnNlci5jaGVja1ZhcmlhYmxlUmFuZ2UoZXNjYXBlZCwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlc2NhcGVkKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBxdW90ZWQgbWF0dGVyCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGlxID0gcnVsZS5pbmRleE9mKFFVT1RFLCBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXEgPT0gcG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOyAvLyBQYXJzZSBbJyddIG91dHNpZGUgcXVvdGVzIGFzIFsnXQorICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGlzIGxvb3AgcGlja3MgdXAgYSBydW4gb2YgcXVvdGVkIHRleHQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBmb3JtICdhYWFhJyBlYWNoIHRpbWUgdGhyb3VnaC4gIElmIHRoaXMgcnVuCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBoYXNuJ3QgcmVhbGx5IGVuZGVkICgnYWFhYScnYmJiYicpIHRoZW4gaXQga2VlcHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGxvb3BpbmcsIGVhY2ggdGltZSBhZGRpbmcgb24gYSBuZXcgcnVuLiAgV2hlbiBpdAorICAgICAgICAgICAgICAgICAgICAgICAgICogcmVhY2hlcyB0aGUgZmluYWwgcXVvdGUgaXQgYnJlYWtzLgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZVN0YXJ0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpcSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVudGVybWluYXRlZCBxdW90ZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChydWxlLnN1YnN0cmluZyhwb3MsIGlxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXErMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgbGltaXQgJiYgcnVsZS5jaGFyQXQocG9zKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlIFsnJ10gaW5zaWRlIHF1b3RlcyBhcyBbJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXEgPSBydWxlLmluZGV4T2YoUVVPVEUsIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb250aW51ZSBsb29waW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVMaW1pdCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpcT1xdW90ZVN0YXJ0OyBpcTxxdW90ZUxpbWl0OyArK2lxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmNoZWNrVmFyaWFibGVSYW5nZShidWYuY2hhckF0KGlxKSwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHBhcnNlci5jaGVja1ZhcmlhYmxlUmFuZ2UoYywgcnVsZSwgc3RhcnQpOworCisgICAgICAgICAgICAgICAgaWYgKGlsbGVnYWwuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIklsbGVnYWwgY2hhcmFjdGVyICciICsgYyArICdcJycsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIHdpdGhpbiBhbmQgb3V0IG9mIHNlZ21lbnRzCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBjYXNlIEFOQ0hPUl9TVEFSVDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA9PSAwICYmICFhbmNob3JTdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yU3RhcnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCBhbmNob3Igc3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU0VHTUVOVF9PUEVOOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidWZTZWdTdGFydCBpcyB0aGUgb2Zmc2V0IGluIGJ1ZiB0byB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBvZiB0aGUgc2VnbWVudCB3ZSBhcmUgcGFyc2luZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBidWZTZWdTdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHNlZ21lbnQgbnVtYmVyIG5vdywgc2luY2UgbmV4dFNlZ21lbnROdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgaW5jcmVtZW50ZWQgZHVyaW5nIHRoZSBjYWxsIHRvIHBhcnNlU2VjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG5lc3RlZCBzZWdtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZWdtZW50TnVtYmVyID0gbmV4dFNlZ21lbnROdW1iZXIrKzsgLy8gMS1iYXNlZAorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSB0aGUgc2VnbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcGFyc2VTZWN0aW9uKHJ1bGUsIHBvcywgbGltaXQsIHBhcnNlciwgYnVmLCBJTExFR0FMX1NFRywgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFmdGVyIHBhcnNpbmcgYSBzZWdtZW50LCB0aGUgcmVsZXZhbnQgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGJ1Ziwgc3RhcnRpbmcgYXQgb2Zmc2V0IGJ1ZlNlZ1N0YXJ0LiAgRXh0cmFjdCB0aGVtCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRvIGEgc3RyaW5nIG1hdGNoZXIsIGFuZCByZXBsYWNlIHRoZW0gd2l0aCBhCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGFuZGluIGZvciB0aGF0IG1hdGNoZXIuCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdNYXRjaGVyIG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdNYXRjaGVyKGJ1Zi5zdWJzdHJpbmcoYnVmU2VnU3RhcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnROdW1iZXIsIHBhcnNlci5jdXJEYXRhKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIGFuZCBhc3NvY2lhdGUgb2JqZWN0IGFuZCBzZWdtZW50IG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLnNldFNlZ21lbnRPYmplY3Qoc2VnbWVudE51bWJlciwgbSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKGJ1ZlNlZ1N0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocGFyc2VyLmdldFNlZ21lbnRTdGFuZGluKHNlZ21lbnROdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEZVTkNUSU9OOgorICAgICAgICAgICAgICAgIGNhc2UgQUxUX0ZVTkNUSU9OOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpcmVmWzBdID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TaW5nbGVJRCBzaW5nbGUgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLnBhcnNlRmlsdGVySUQocnVsZSwgaXJlZik7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBjaGFyYWN0ZXIgTVVTVCBiZSBhIHNlZ21lbnQgb3BlbgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpbmdsZSA9PSBudWxsIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVV0aWxpdHkucGFyc2VDaGFyKHJ1bGUsIGlyZWYsIFNFR01FTlRfT1BFTikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiSW52YWxpZCBmdW5jdGlvbiIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IHNpbmdsZS5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJJbnZhbGlkIGZ1bmN0aW9uIElEIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidWZTZWdTdGFydCBpcyB0aGUgb2Zmc2V0IGluIGJ1ZiB0byB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBvZiB0aGUgc2VnbWVudCB3ZSBhcmUgcGFyc2luZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBidWZTZWdTdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgdGhlIHNlZ21lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBhcnNlU2VjdGlvbihydWxlLCBpcmVmWzBdLCBsaW1pdCwgcGFyc2VyLCBidWYsIElMTEVHQUxfRlVOQywgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFmdGVyIHBhcnNpbmcgYSBzZWdtZW50LCB0aGUgcmVsZXZhbnQgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGJ1Ziwgc3RhcnRpbmcgYXQgb2Zmc2V0IGJ1ZlNlZ1N0YXJ0LgorICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25SZXBsYWNlciByID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRnVuY3Rpb25SZXBsYWNlcih0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nUmVwbGFjZXIoYnVmLnN1YnN0cmluZyhidWZTZWdTdGFydCksIHBhcnNlci5jdXJEYXRhKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGJ1ZmZlciBjb250ZW50cyB3aXRoIGEgc3RhbmQtaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoYnVmU2VnU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIuZ2VuZXJhdGVTdGFuZEluRm9yKHIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFRhYmxlLlNZTUJPTF9SRUY6CisgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSB2YXJpYWJsZSByZWZlcmVuY2VzIGFuZCBzZWdtZW50IHJlZmVyZW5jZXMgIiQxIiAuLiAiJDkiCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgdmFyaWFibGUgcmVmZXJlbmNlIG11c3QgYmUgZm9sbG93ZWQgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5IGEgVW5pY29kZSBpZGVudGlmaWVyIHN0YXJ0IGFuZCB6ZXJvIG9yIG1vcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuaWNvZGUgaWRlbnRpZmllciBwYXJ0IGNoYXJhY3RlcnMsIG9yIGJ5IGEgZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEuLjkgaWYgaXQgaXMgYSBzZWdtZW50IHJlZmVyZW5jZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHZhcmlhYmxlIHJlZiBjaGFyYWN0ZXIgYXQgdGhlIGVuZCBhY3RzIGFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW4gYW5jaG9yIHRvIHRoZSBjb250ZXh0IGxpbWl0LCBhcyBpbiBwZXJsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSAiJDEiICIkMiIgLi4gIiQ5IiAuLiAobm8gdXBwZXIgbGltaXQpCisgICAgICAgICAgICAgICAgICAgICAgICBjID0gcnVsZS5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByID0gVUNoYXJhY3Rlci5kaWdpdChjLCAxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA+PSAxICYmIHIgPD0gOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlyZWZbMF0gPSBwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IFV0aWxpdHkucGFyc2VOdW1iZXIocnVsZSwgaXJlZiwgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5kZWZpbmVkIHNlZ21lbnQgcmVmZXJlbmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpcmVmWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocGFyc2VyLmdldFNlZ21lbnRTdGFuZGluKHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBwID09IG51bGwpIHsgLy8gTGF6eSBjcmVhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAuc2V0SW5kZXgocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHBhcnNlci5wYXJzZURhdGEuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUmVmZXJlbmNlKHJ1bGUsIHBwLCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoZSAnJCcgd2FzIG5vdCBmb2xsb3dlZCBieSBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIG5hbWUuICBUcnkgdG8gaW50ZXJwcmV0IGl0IGFzIGFuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZCBhbmNob3IgdGhlbi4gIElmIHRoaXMgYWxzbyBkb2Vzbid0IHdvcmsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKGlmIHdlIHNlZSBhIGZvbGxvd2luZyBjaGFyYWN0ZXIpIHRoZW4gc2lnbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuIGVycm9yLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcHAuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgdmFyaWFibGUgZGVmaW5pdGlvbiBzdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB0aGUgTEhTIHZhcmlhYmxlIHdpbGwgYmUgdW5kZWZpbmVkLiAgSW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGNhc2UgYXBwZW5kVmFyaWFibGVEZWYoKSB3aWxsIGFwcGVuZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIHBsYWNlaG9sZGVyIGNoYXIgdmFyaWFibGVMaW1pdC0xLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhclN0YXJ0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5hcHBlbmRWYXJpYWJsZURlZihuYW1lLCBidWYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhckxpbWl0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRE9UOgorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZXREb3RTdGFuZEluKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEtMRUVORV9TVEFSOgorICAgICAgICAgICAgICAgIGNhc2UgT05FX09SX01PUkU6CisgICAgICAgICAgICAgICAgY2FzZSBaRVJPX09SX09ORToKKyAgICAgICAgICAgICAgICAgICAgLy8gUXVhbnRpZmllcnMuICBXZSBoYW5kbGUgc2luZ2xlIGNoYXJhY3RlcnMsIHF1b3RlZCBzdHJpbmdzLAorICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSByZWZlcmVuY2VzLCBhbmQgc2VnbWVudHMuCisgICAgICAgICAgICAgICAgICAgIC8vICBhKyAgICAgIG1hdGNoZXMgIGFhYQorICAgICAgICAgICAgICAgICAgICAvLyAgJ2ZvbycrICBtYXRjaGVzICBmb29mb29mb28KKyAgICAgICAgICAgICAgICAgICAgLy8gICR2KyAgICAgbWF0Y2hlcyAgeHl4eXh5IGlmICR2ID09IHh5CisgICAgICAgICAgICAgICAgICAgIC8vICAoc2VnKSsgIG1hdGNoZXMgIHNlZ3NlZ3NlZworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZWdtZW50ICYmIGJ1Zi5sZW5ndGgoKSA9PSBidWZTdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSAqLysgaW1tZWRpYXRlbHkgZm9sbG93cyAnKCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkIHF1YW50aWZpZXIiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IAorIAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHFzdGFydCwgcWxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlICovKyBmb2xsb3dzIGFuIGlzb2xhdGVkIGNoYXJhY3RlciBvciBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3IgdmFyaWFibGUgcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID09IHF1b3RlTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgKi8rIGZvbGxvd3MgYSAncXVvdGVkIHN0cmluZycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxc3RhcnQgPSBxdW90ZVN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFsaW1pdCA9IHF1b3RlTGltaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJ1Zi5sZW5ndGgoKSA9PSB2YXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSAqLysgZm9sbG93cyBhICR2YXJpYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFzdGFydCA9IHZhclN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFsaW1pdCA9IHZhckxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgKi8rIGZvbGxvd3MgYSBzaW5nbGUgY2hhcmFjdGVyLCBwb3NzaWJseQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgc2VnbWVudCBzdGFuZGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXN0YXJ0ID0gYnVmLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxbGltaXQgPSBxc3RhcnQgKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtOworCQkJCQkJdHJ5IHsKKwkJCQkJCQltID0gbmV3IFN0cmluZ01hdGNoZXIoYnVmLnRvU3RyaW5nKCksIHFzdGFydCwgcWxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHBhcnNlci5jdXJEYXRhKTsKKwkJCQkJCX0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworCQkJCQkJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkZhaWx1cmUgaW4gcnVsZTogIiArIHJ1bGUuc3Vic3RyaW5nKHBvcywgbGltaXQpKTsKKwkJCQkJCX0KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW4gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heCA9IFF1YW50aWZpZXIuTUFYOworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9ORV9PUl9NT1JFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFpFUk9fT1JfT05FOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlIEtMRUVORV9TVEFSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIGRvIG5vdGhpbmcgLS0gbWluLCBtYXggYWxyZWFkeSBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBuZXcgUXVhbnRpZmllcihtLCBtaW4sIG1heCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKHFzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZW5lcmF0ZVN0YW5kSW5Gb3IobSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIE9OTFkgV0lUSElOIHNlZ21lbnRzCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBjYXNlIFNFR01FTlRfQ0xPU0U6CisgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydChpc1NlZ21lbnQpOworICAgICAgICAgICAgICAgICAgICAvLyBXZSdyZSBkb25lIHBhcnNpbmcgYSBzZWdtZW50LgorICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIE9OTFkgT1VUU0lERSBzZWdtZW50cworICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgY2FzZSBDT05URVhUX0FOVEU6CisgICAgICAgICAgICAgICAgICAgIGlmIChhbnRlID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNdWx0aXBsZSBhbnRlIGNvbnRleHRzIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFudGUgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ09OVEVYVF9QT1NUOgorICAgICAgICAgICAgICAgICAgICBpZiAocG9zdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTXVsdGlwbGUgcG9zdCBjb250ZXh0cyIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwb3N0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUlNPUl9QT1M6CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3IgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk11bHRpcGxlIGN1cnNvcnMiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUlNPUl9PRkZTRVQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3JPZmZzZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNwbGFjZWQgIiArIGMsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC0tY3Vyc29yT2Zmc2V0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvck9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgIT0gY3Vyc29yT2Zmc2V0UG9zIHx8IGN1cnNvciA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCAiICsgYywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytjdXJzb3JPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yID09IDAgJiYgYnVmLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JPZmZzZXQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvck9mZnNldFBvcyA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JPZmZzZXQgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkICIgKyBjLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIC8vIE5vbi1zcGVjaWFsIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIC8vIERpc2FsbG93IHVucXVvdGVkIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbMC05QS1aYS16XQorICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgcHJpbnRhYmxlIEFTQ0lJIHJhbmdlLiAgVGhlc2UgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXJ2ZWQgZm9yIHBvc3NpYmxlIGZ1dHVyZSB1c2UuCisgICAgICAgICAgICAgICAgICAgIGlmIChjID49IDB4MDAyMSAmJiBjIDw9IDB4MDA3RSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgISgoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbnF1b3RlZCAiICsgYywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmVtb3ZlIGNvbnRleHQuCisgICAgICAgICAqLworICAgICAgICB2b2lkIHJlbW92ZUNvbnRleHQoKSB7CisgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoYW50ZSA8IDAgPyAwIDogYW50ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0IDwgMCA/IHRleHQubGVuZ3RoKCkgOiBwb3N0KTsKKyAgICAgICAgICAgIGFudGUgPSBwb3N0ID0gLTE7CisgICAgICAgICAgICBhbmNob3JTdGFydCA9IGFuY2hvckVuZCA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgaGFsZiBsb29rcyBsaWtlIHZhbGlkIG91dHB1dCwgdGhhdCBpcywgZG9lcyBub3QKKyAgICAgICAgICogY29udGFpbiBxdWFudGlmaWVycyBvciBvdGhlciBzcGVjaWFsIGlucHV0LW9ubHkgZWxlbWVudHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkT3V0cHV0KFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlcikgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRleHQubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmICghcGFyc2VyLnBhcnNlRGF0YS5pc1JlcGxhY2VyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGhhbGYgbG9va3MgbGlrZSB2YWxpZCBpbnB1dCwgdGhhdCBpcywgZG9lcyBub3QKKyAgICAgICAgICogY29udGFpbiBmdW5jdGlvbnMgb3Igb3RoZXIgc3BlY2lhbCBvdXRwdXQtb25seSBlbGVtZW50cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzVmFsaWRJbnB1dChUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXh0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlci5wYXJzZURhdGEuaXNNYXRjaGVyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFBVQkxJQyBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JQYXJzZXIoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBzZXQgb2YgcnVsZXMuICBBZnRlciB0aGUgcGFyc2UgY29tcGxldGVzLCBleGFtaW5lIHRoZSBwdWJsaWMKKyAgICAgKiBkYXRhIG1lbWJlcnMgZm9yIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2UoU3RyaW5nIHJ1bGVzLCBpbnQgZGlyZWN0aW9uKSB7CisgICAgICAgIHBhcnNlUnVsZXMobmV3IFJ1bGVBcnJheShuZXcgU3RyaW5nW10geyBydWxlcyB9KSwgZGlyZWN0aW9uKTsKKyAgICB9CisgICAKKyAgICAvKgorICAgICAqIFBhcnNlIGEgc2V0IG9mIHJ1bGVzLiAgQWZ0ZXIgdGhlIHBhcnNlIGNvbXBsZXRlcywgZXhhbWluZSB0aGUgcHVibGljCisgICAgICogZGF0YSBtZW1iZXJzIGZvciByZXN1bHRzLgorICAgICAqLworLyogICAgcHVibGljIHZvaWQgcGFyc2UoUmVzb3VyY2VSZWFkZXIgcnVsZXMsIGludCBkaXJlY3Rpb24pIHsKKyAgICAgICAgcGFyc2VSdWxlcyhuZXcgUnVsZVJlYWRlcihydWxlcyksIGRpcmVjdGlvbik7CisgICAgfSovCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQUklWQVRFIG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIGFycmF5IG9mIHplcm8gb3IgbW9yZSBydWxlcy4gIFRoZSBzdHJpbmdzIGluIHRoZSBhcnJheSBhcmUKKyAgICAgKiB0cmVhdGVkIGFzIGlmIHRoZXkgd2VyZSBjb25jYXRlbmF0ZWQgdG9nZXRoZXIsIHdpdGggcnVsZSB0ZXJtaW5hdG9ycworICAgICAqIGluc2VydGVkIGJldHdlZW4gYXJyYXkgZWxlbWVudHMgaWYgbm90IHByZXNlbnQgYWxyZWFkeS4KKyAgICAgKgorICAgICAqIEFueSBwcmV2aW91cyBydWxlcyBhcmUgZGlzY2FyZGVkLiAgVHlwaWNhbGx5IHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBleGFjdGx5CisgICAgICogb25jZSwgZHVyaW5nIGNvbnN0cnVjdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSBtZW1iZXIgdGhpcy5kYXRhIHdpbGwgYmUgc2V0IHRvIG51bGwgaWYgdGhlcmUgYXJlIG5vIHJ1bGVzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgaXMgYSBzeW50YXggZXJyb3IgaW4gdGhlCisgICAgICogcnVsZXMKKyAgICAgKi8KKyAgICB2b2lkIHBhcnNlUnVsZXMoUnVsZUJvZHkgcnVsZUFycmF5LCBpbnQgZGlyKSB7CisgICAgICAgIGJvb2xlYW4gcGFyc2luZ0lEcyA9IHRydWU7CisgICAgICAgIGludCBydWxlQ291bnQgPSAwOworCisgICAgICAgIGRhdGFWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGlkQmxvY2tWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGN1ckRhdGEgPSBudWxsOworICAgICAgICBkaXJlY3Rpb24gPSBkaXI7CisgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gbnVsbDsKKyAgICAgICAgdmFyaWFibGVzVmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICB2YXJpYWJsZU5hbWVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBwYXJzZURhdGEgPSBuZXcgUGFyc2VEYXRhKCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVycm9ycyA9IG51bGw7CisgICAgICAgIGludCBlcnJvckNvdW50ID0gMDsKKworICAgICAgICBydWxlQXJyYXkucmVzZXQoKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgaWRCbG9ja1Jlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBUaGUgY29tcG91bmQgZmlsdGVyIG9mZnNldCBpcyBhbiBpbmRleCBpbnRvIGlkQmxvY2tSZXN1bHQuCisgICAgICAgIC8vIElmIGl0IGlzIDAsIHRoZW4gdGhlIGNvbXBvdW5kIGZpbHRlciBvY2N1cnJlZCBhdCB0aGUgc3RhcnQsCisgICAgICAgIC8vIGFuZCBpdCBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBfc3RhcnRfIG9mIHRoZSBjb21wb3VuZCBmaWx0ZXIKKyAgICAgICAgLy8gcGF0dGVybi4gIE90aGVyd2lzZSBpdCBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBfbGltaXRfIG9mIHRoZQorICAgICAgICAvLyBjb21wb3VuZCBmaWx0ZXIgcGF0dGVybiB3aXRoaW4gaWRCbG9ja1Jlc3VsdC4KKyAgICAgICAgdGhpcy5jb21wb3VuZEZpbHRlciA9IG51bGw7CisgICAgICAgIGludCBjb21wb3VuZEZpbHRlck9mZnNldCA9IC0xOworCisgICAgbWFpbjoKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSBydWxlQXJyYXkubmV4dExpbmUoKTsKKyAgICAgICAgICAgIGlmIChydWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICAgICAgaW50IGxpbWl0ID0gcnVsZS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFNraXAgbGluZXMgc3RhcnRpbmcgd2l0aCB0aGUgY29tbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBSVUxFX0NPTU1FTlRfQ0hBUikgeworICAgICAgICAgICAgICAgICAgICBwb3MgPSBydWxlLmluZGV4T2YoIlxuIiwgcG9zKSArIDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIE5vICJcbiIgZm91bmQ7IHJlc3Qgb2YgcnVsZSBpcyBhIGNvbW1uZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRWl0aGVyIGZhbGwgb3V0IG9yIHJlc3RhcnQgd2l0aCBuZXh0IGxpbmUKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBza2lwIGVtcHR5IHJ1bGVzCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRU5EX09GX1JVTEUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gT2Z0ZW4gYSBydWxlIGZpbGUgY29udGFpbnMgbXVsdGlwbGUgZXJyb3JzLiAgSXQncworICAgICAgICAgICAgICAgIC8vIGNvbnZlbmllbnQgdG8gdGhlIHJ1bGUgYXV0aG9yIGlmIHRoZXNlIGFyZSBhbGwgcmVwb3J0ZWQKKyAgICAgICAgICAgICAgICAvLyBhdCBvbmNlLiAgV2Uga2VlcCBwYXJzaW5nIHJ1bGVzIGV2ZW4gYWZ0ZXIgYSBmYWlsdXJlLCB1cAorICAgICAgICAgICAgICAgIC8vIHRvIGEgc3BlY2lmaWVkIGxpbWl0LCBhbmQgcmVwb3J0IGFsbCBlcnJvcnMgYXQgb25jZS4KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICArK3J1bGVDb3VudDsKKworICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBmb3VuZCB0aGUgc3RhcnQgb2YgYSBydWxlIG9yIElELiAgYyBpcyBpdHMgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLCBhbmQgcG9zIHBvaW50cyBwYXN0IGMuCisgICAgICAgICAgICAgICAgICAgIC0tcG9zOworICAgICAgICAgICAgICAgICAgICAvLyBMb29rIGZvciBhbiBJRCB0b2tlbi4gIE11c3QgaGF2ZSBhdCBsZWFzdCBJRF9UT0tFTl9MRU4gKyAxCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJzIGxlZnQuCisgICAgICAgICAgICAgICAgICAgIGlmICgocG9zICsgSURfVE9LRU5fTEVOICsgMSkgPD0gbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLnJlZ2lvbk1hdGNoZXMocG9zLCBJRF9UT0tFTiwgMCwgSURfVE9LRU5fTEVOKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zICs9IElEX1RPS0VOX0xFTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBydWxlLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpICYmIHBvcyA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBwID0gbmV3IGludFtdIHsgcG9zIH07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyc2luZ0lEcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJEYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5hZGQoY3VyRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFWZWN0b3IuaW5zZXJ0RWxlbWVudEF0KGN1ckRhdGEsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2luZ0lEcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU2luZ2xlSUQgaWQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VTaW5nbGVJRCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUsIHAsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocFswXSAhPSBwb3MgJiYgVXRpbGl0eS5wYXJzZUNoYXIocnVsZSwgcCwgRU5EX09GX1JVTEUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3VjY2Vzc2Z1bCA6OklEIHBhcnNlLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tSZXN1bHQuYXBwZW5kKGlkLmNhbm9uSUQpLmFwcGVuZChFTkRfT0ZfUlVMRSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRCbG9ja1Jlc3VsdC5pbnNlcnQoMCwgaWQuY2Fub25JRCArIEVORF9PRl9SVUxFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ291bGRuJ3QgcGFyc2UgYW4gSUQuICBUcnkgdG8gcGFyc2UgYSBnbG9iYWwgZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gd2l0aFBhcmVucyA9IG5ldyBpbnRbXSB7IC0xIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBmID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZUdsb2JhbEZpbHRlcihydWxlLCBwLCBkaXJlY3Rpb24sIHdpdGhQYXJlbnMsIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmICE9IG51bGwgJiYgVXRpbGl0eS5wYXJzZUNoYXIocnVsZSwgcCwgRU5EX09GX1JVTEUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2l0aFBhcmVuc1swXSA9PSAwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBvdW5kRmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNdWx0aXBsZSBjb21wb3VuZCBmaWx0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk11bHRpcGxlIGdsb2JhbCBmaWx0ZXJzIiwgcnVsZSwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyT2Zmc2V0ID0gcnVsZUNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIDo6aWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FuIGJlIHBhcnNlZCBhcyBuZWl0aGVyIGFuIElEIG5vciBhIGdsb2JhbCBmaWx0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludmFsaWQgOjpJRCIsIHJ1bGUsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwWzBdOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNpbmdJRHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IuYWRkKGlkQmxvY2tSZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZEJsb2NrVmVjdG9yLmluc2VydEVsZW1lbnRBdChpZEJsb2NrUmVzdWx0LnRvU3RyaW5nKCksIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tSZXN1bHQuZGVsZXRlKDAsIGlkQmxvY2tSZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNpbmdJRHMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIHJ1bGVzIHVzZSBwYXJ0IG9mIHRoZSBwcml2YXRlIHVzZSBhcmVhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRTAwMC4uRjhGRiBmb3IgdmFyaWFibGVzIGFuZCBvdGhlciBzdGFuZC1pbnMuICBDdXJyZW50bHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmFuZ2UgRjAwMC4uRjhGRiBpcyB0eXBpY2FsbHkgc3VmZmljaWVudC4gIFRoZSAndXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgcmFuZ2UnIHByYWdtYSBhbGxvd3MgcnVsZSBzZXRzIHRvIG1vZGlmeSB0aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFZhcmlhYmxlUmFuZ2UoMHhGMDAwLCAweEY4RkYpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzZW1ibGVzUHJhZ21hKHJ1bGUsIHBvcywgbGltaXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBwcCA9IHBhcnNlUHJhZ21hKHJ1bGUsIHBvcywgbGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcHAgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbnJlY29nbml6ZWQgcHJhZ21hIiwgcnVsZSwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcHBwOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgYSBydWxlCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBhcnNlUnVsZShydWxlLCBwb3MsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID09IDMwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJcbk1vcmUgdGhhbiAzMCBlcnJvcnM7IGZ1cnRoZXIgbWVzc2FnZXMgc3F1ZWxjaGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gbmV3IFN0cmluZ0J1ZmZlcihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJcbiIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytlcnJvckNvdW50OworICAgICAgICAgICAgICAgICAgICBwb3MgPSBydWxlRW5kKHJ1bGUsIHBvcywgbGltaXQpICsgMTsgLy8gKzEgYWR2YW5jZXMgcGFzdCAnOycKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBhcnNpbmdJRHMgJiYgaWRCbG9ja1Jlc3VsdC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCkKKyAgICAgICAgICAgICAgICBpZEJsb2NrVmVjdG9yLmFkZChpZEJsb2NrUmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IuaW5zZXJ0RWxlbWVudEF0KGlkQmxvY2tSZXN1bHQudG9TdHJpbmcoKSwgMCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXBhcnNpbmdJRHMgJiYgY3VyRGF0YSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpCisgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5hZGQoY3VyRGF0YSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5pbnNlcnRFbGVtZW50QXQoY3VyRGF0YSwgMCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBzZXQgdmVjdG9yIHRvIGFuIGFycmF5CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YVZlY3Rvci5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhID0gKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEpZGF0YVZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICBkYXRhLnZhcmlhYmxlcyA9IG5ldyBPYmplY3RbdmFyaWFibGVzVmVjdG9yLnNpemUoKV07CisgICAgICAgICAgICB2YXJpYWJsZXNWZWN0b3IuY29weUludG8oZGF0YS52YXJpYWJsZXMpOworICAgICAgICAgICAgZGF0YS52YXJpYWJsZU5hbWVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgZGF0YS52YXJpYWJsZU5hbWVzLnB1dEFsbCh2YXJpYWJsZU5hbWVzKTsKKyAgICAgICAgfQorICAgICAgICB2YXJpYWJsZXNWZWN0b3IgPSBudWxsOworCisgICAgICAgIC8vIERvIG1vcmUgc3ludGF4IGNoZWNraW5nIGFuZCBpbmRleCB0aGUgcnVsZXMKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChjb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCAmJgorICAgICAgICAgICAgICAgICAgICAgY29tcG91bmRGaWx0ZXJPZmZzZXQgIT0gMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5SRVZFUlNFICYmCisgICAgICAgICAgICAgICAgICAgICBjb21wb3VuZEZpbHRlck9mZnNldCAhPSBydWxlQ291bnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvbXBvdW5kIGZpbHRlcnMgbWlzcGxhY2VkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGFWZWN0b3Iuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGEgPSAoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSlkYXRhVmVjdG9yLmdldChpKTsKKyAgICAgICAgICAgICAgICBkYXRhLnJ1bGVTZXQuZnJlZXplKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAxICYmICgoU3RyaW5nKWlkQmxvY2tWZWN0b3IuZ2V0KDApKS5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IucmVtb3ZlKDApOworCisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSBuZXcgU3RyaW5nQnVmZmVyKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiXG4iKS5hcHBlbmQoZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGVycm9ycyAhPSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGVycm9ycy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1BSU4gUEFSU0VSLiAgUGFyc2UgdGhlIG5leHQgcnVsZSBpbiB0aGUgZ2l2ZW4gcnVsZSBzdHJpbmcsIHN0YXJ0aW5nCisgICAgICogYXQgcG9zLiAgUmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLiAgRG8gbm90CisgICAgICogcGFyc2UgY2hhcmFjdGVycyBhdCBvciBhZnRlciBsaW1pdC4KKyAgICAgKgorICAgICAqIEltcG9ydGFudDogIFRoZSBjaGFyYWN0ZXIgYXQgcG9zIG11c3QgYmUgYSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIKKyAgICAgKiB0aGF0IGlzIG5vdCB0aGUgY29tbWVudCBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBoYW5kbGVzIHF1b3RpbmcsIGVzY2FwaW5nLCBhbmQgd2hpdGVzcGFjZSByZW1vdmFsLiAgSXQKKyAgICAgKiBwYXJzZXMgdGhlIGVuZC1vZi1ydWxlIGNoYXJhY3Rlci4gIEl0IHJlY29nbml6ZXMgY29udGV4dCBhbmQgY3Vyc29yCisgICAgICogaW5kaWNhdG9ycy4gIE9uY2UgaXQgZG9lcyBhIGxleGljYWwgYnJlYWtkb3duIG9mIHRoZSBydWxlIGF0IHBvcywgaXQKKyAgICAgKiBjcmVhdGVzIGEgcnVsZSBvYmplY3QgYW5kIGFkZHMgaXQgdG8gb3VyIHJ1bGUgbGlzdC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaW5uZXIgY2xhc3MgUnVsZUhhbGYuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcGFyc2VSdWxlKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgLy8gTG9jYXRlIHRoZSBsZWZ0IHNpZGUsIG9wZXJhdG9yLCBhbmQgcmlnaHQgc2lkZQorICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgIGNoYXIgb3BlcmF0b3IgPSAwOworCisgICAgICAgIC8vIFNldCB1cCBzZWdtZW50cyBkYXRhCisgICAgICAgIHNlZ21lbnRTdGFuZGlucyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc2VnbWVudE9iamVjdHMgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgUnVsZUhhbGYgbGVmdCAgPSBuZXcgUnVsZUhhbGYoKTsKKyAgICAgICAgUnVsZUhhbGYgcmlnaHQgPSBuZXcgUnVsZUhhbGYoKTsKKworICAgICAgICB1bmRlZmluZWRWYXJpYWJsZU5hbWUgPSBudWxsOworICAgICAgICBwb3MgPSBsZWZ0LnBhcnNlKHJ1bGUsIHBvcywgbGltaXQsIHRoaXMpOworCisgICAgICAgIGlmIChwb3MgPT0gbGltaXQgfHwKKyAgICAgICAgICAgIE9QRVJBVE9SUy5pbmRleE9mKG9wZXJhdG9yID0gcnVsZS5jaGFyQXQoLS1wb3MpKSA8IDApIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJObyBvcGVyYXRvciBwb3M9IiArIHBvcywgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgICsrcG9zOworCisgICAgICAgIC8vIEZvdW5kIGFuIG9wZXJhdG9yIGNoYXIuICBDaGVjayBmb3IgZm9yd2FyZC1yZXZlcnNlIG9wZXJhdG9yLgorICAgICAgICBpZiAob3BlcmF0b3IgPT0gUkVWRVJTRV9SVUxFX09QICYmCisgICAgICAgICAgICAocG9zIDwgbGltaXQgJiYgcnVsZS5jaGFyQXQocG9zKSA9PSBGT1JXQVJEX1JVTEVfT1ApKSB7CisgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIG9wZXJhdG9yID0gRldEUkVWX1JVTEVfT1A7CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFuc2xhdGUgYWx0ZXJuYXRlIG9wIGNoYXJhY3RlcnMuCisgICAgICAgIHN3aXRjaCAob3BlcmF0b3IpIHsKKyAgICAgICAgY2FzZSBBTFRfRk9SV0FSRF9SVUxFX09QOgorICAgICAgICAgICAgb3BlcmF0b3IgPSBGT1JXQVJEX1JVTEVfT1A7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBTFRfUkVWRVJTRV9SVUxFX09QOgorICAgICAgICAgICAgb3BlcmF0b3IgPSBSRVZFUlNFX1JVTEVfT1A7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBTFRfRldEUkVWX1JVTEVfT1A6CisgICAgICAgICAgICBvcGVyYXRvciA9IEZXRFJFVl9SVUxFX09QOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBwb3MgPSByaWdodC5wYXJzZShydWxlLCBwb3MsIGxpbWl0LCB0aGlzKTsKKworICAgICAgICBpZiAocG9zIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGlmIChydWxlLmNoYXJBdCgtLXBvcykgPT0gRU5EX09GX1JVTEUpIHsKKyAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gUnVsZUhhbGYgcGFyc2VyIG11c3QgaGF2ZSB0ZXJtaW5hdGVkIGF0IGFuIG9wZXJhdG9yCisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVucXVvdGVkIG9wZXJhdG9yIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wZXJhdG9yID09IFZBUklBQkxFX0RFRl9PUCkgeworICAgICAgICAgICAgLy8gTEhTIGlzIHRoZSBuYW1lLiAgUkhTIGlzIGEgc2luZ2xlIGNoYXJhY3RlciwgZWl0aGVyIGEgbGl0ZXJhbAorICAgICAgICAgICAgLy8gb3IgYSBzZXQgKGFscmVhZHkgcGFyc2VkKS4gIElmIFJIUyBpcyBsb25nZXIgdGhhbiBvbmUKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlciwgaXQgaXMgZWl0aGVyIGEgbXVsdGktY2hhcmFjdGVyIHN0cmluZywgb3IgbXVsdGlwbGUKKyAgICAgICAgICAgIC8vIHNldHMsIG9yIGEgbWl4dHVyZSBvZiBjaGFycyBhbmQgc2V0cyAtLSBzeW50YXggZXJyb3IuCisKKyAgICAgICAgICAgIC8vIFdlIGV4cGVjdCB0byBzZWUgYSBzaW5nbGUgdW5kZWZpbmVkIHZhcmlhYmxlICh0aGUgb25lIGJlaW5nCisgICAgICAgICAgICAvLyBkZWZpbmVkKS4KKyAgICAgICAgICAgIGlmICh1bmRlZmluZWRWYXJpYWJsZU5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNzaW5nICckJyBvciBkdXBsaWNhdGUgZGVmaW5pdGlvbiIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZWZ0LnRleHQubGVuZ3RoKCkgIT0gMSB8fCBsZWZ0LnRleHQuY2hhckF0KDApICE9IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIExIUyIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZWZ0LmFuY2hvclN0YXJ0IHx8IGxlZnQuYW5jaG9yRW5kIHx8CisgICAgICAgICAgICAgICAgcmlnaHQuYW5jaG9yU3RhcnQgfHwgcmlnaHQuYW5jaG9yRW5kKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1hbGZvcm1lZCB2YXJpYWJsZSBkZWYiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBXZSBhbGxvdyBhbnl0aGluZyBvbiB0aGUgcmlnaHQsIGluY2x1ZGluZyBhbiBlbXB0eSBzdHJpbmcuCisgICAgICAgICAgICBpbnQgbiA9IHJpZ2h0LnRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBjaGFyW10gdmFsdWUgPSBuZXcgY2hhcltuXTsKKyAgICAgICAgICAgIHJpZ2h0LnRleHQuZ2V0Q2hhcnMoMCwgbiwgdmFsdWUsIDApOworICAgICAgICAgICAgdmFyaWFibGVOYW1lcy5wdXQodW5kZWZpbmVkVmFyaWFibGVOYW1lLCB2YWx1ZSk7CisKKyAgICAgICAgICAgICsrdmFyaWFibGVMaW1pdDsKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhIHZhcmlhYmxlIGRlZmluaXRpb24gcnVsZSwgd2Ugc2hvdWxkbid0IGhhdmUKKyAgICAgICAgLy8gYW55IHVuZGVmaW5lZCB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgaWYgKHVuZGVmaW5lZFZhcmlhYmxlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5kZWZpbmVkIHZhcmlhYmxlICQiICsgdW5kZWZpbmVkVmFyaWFibGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVmVyaWZ5IHNlZ21lbnRzCisgICAgICAgIGlmIChzZWdtZW50U3RhbmRpbnMubGVuZ3RoKCkgPiBzZWdtZW50T2JqZWN0cy5zaXplKCkpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbmRlZmluZWQgc2VnbWVudCByZWZlcmVuY2UiLCBydWxlLCBzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNlZ21lbnRTdGFuZGlucy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmNoYXJBdChpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludGVybmFsIGVycm9yIiwgcnVsZSwgc3RhcnQpOyAvLyB3aWxsIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZWdtZW50T2JqZWN0cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLmVsZW1lbnRBdChpKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludGVybmFsIGVycm9yIiwgcnVsZSwgc3RhcnQpOyAvLyB3aWxsIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlIGRpcmVjdGlvbiB3ZSB3YW50IGRvZXNuJ3QgbWF0Y2ggdGhlIHJ1bGUKKyAgICAgICAgLy8gZGlyZWN0aW9uLCBkbyBub3RoaW5nLgorICAgICAgICBpZiAob3BlcmF0b3IgIT0gRldEUkVWX1JVTEVfT1AgJiYKKyAgICAgICAgICAgICgoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpICE9IChvcGVyYXRvciA9PSBGT1JXQVJEX1JVTEVfT1ApKSkgeworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgcnVsZSBpbnRvIGEgZm9yd2FyZCBydWxlIGJ5IHN3YXBwaW5nIHRoZQorICAgICAgICAvLyBzaWRlcyBpZiBuZWNlc3NhcnkuCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSkgeworICAgICAgICAgICAgUnVsZUhhbGYgdGVtcCA9IGxlZnQ7CisgICAgICAgICAgICBsZWZ0ID0gcmlnaHQ7CisgICAgICAgICAgICByaWdodCA9IHRlbXA7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZW1vdmUgbm9uLWFwcGxpY2FibGUgZWxlbWVudHMgaW4gZm9yd2FyZC1yZXZlcnNlCisgICAgICAgIC8vIHJ1bGVzLiAgQmlkaXJlY3Rpb25hbCBydWxlcyBpZ25vcmUgZWxlbWVudHMgdGhhdCBkbyBub3QKKyAgICAgICAgLy8gYXBwbHkuCisgICAgICAgIGlmIChvcGVyYXRvciA9PSBGV0RSRVZfUlVMRV9PUCkgeworICAgICAgICAgICAgcmlnaHQucmVtb3ZlQ29udGV4dCgpOworICAgICAgICAgICAgbGVmdC5jdXJzb3IgPSAtMTsKKyAgICAgICAgICAgIGxlZnQuY3Vyc29yT2Zmc2V0ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vcm1hbGl6ZSBjb250ZXh0CisgICAgICAgIGlmIChsZWZ0LmFudGUgPCAwKSB7CisgICAgICAgICAgICBsZWZ0LmFudGUgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChsZWZ0LnBvc3QgPCAwKSB7CisgICAgICAgICAgICBsZWZ0LnBvc3QgPSBsZWZ0LnRleHQubGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb250ZXh0IGlzIG9ubHkgYWxsb3dlZCBvbiB0aGUgaW5wdXQgc2lkZS4gIEN1cnNvcnMgYXJlIG9ubHkKKyAgICAgICAgLy8gYWxsb3dlZCBvbiB0aGUgb3V0cHV0IHNpZGUuICBTZWdtZW50IGRlbGltaXRlcnMgY2FuIG9ubHkgYXBwZWFyCisgICAgICAgIC8vIG9uIHRoZSBsZWZ0LCBhbmQgcmVmZXJlbmNlcyBvbiB0aGUgcmlnaHQuICBDdXJzb3Igb2Zmc2V0CisgICAgICAgIC8vIGNhbm5vdCBhcHBlYXIgd2l0aG91dCBhbiBleHBsaWNpdCBjdXJzb3IuICBDdXJzb3Igb2Zmc2V0CisgICAgICAgIC8vIGNhbm5vdCBwbGFjZSB0aGUgY3Vyc29yIG91dHNpZGUgdGhlIGxpbWl0cyBvZiB0aGUgY29udGV4dC4KKyAgICAgICAgLy8gQW5jaG9ycyBhcmUgb25seSBhbGxvd2VkIG9uIHRoZSBpbnB1dCBzaWRlLgorICAgICAgICBpZiAocmlnaHQuYW50ZSA+PSAwIHx8IHJpZ2h0LnBvc3QgPj0gMCB8fCBsZWZ0LmN1cnNvciA+PSAwIHx8CisgICAgICAgICAgICAocmlnaHQuY3Vyc29yT2Zmc2V0ICE9IDAgJiYgcmlnaHQuY3Vyc29yIDwgMCkgfHwKKyAgICAgICAgICAgIC8vIC0gVGhlIGZvbGxvd2luZyB0d28gY2hlY2tzIHdlcmUgdXNlZCB0byBlbnN1cmUgdGhhdCB0aGUKKyAgICAgICAgICAgIC8vIC0gdGhlIGN1cnNvciBvZmZzZXQgc3RheWVkIHdpdGhpbiB0aGUgYW50ZS0gb3IgcG9zdGNvbnRleHQuCisgICAgICAgICAgICAvLyAtIEhvd2V2ZXIsIHdpdGggdGhlIGFkZGl0aW9uIG9mIHF1YW50aWZpZXJzLCB3ZSBoYXZlIHRvCisgICAgICAgICAgICAvLyAtIGFsbG93IGFyYml0cmFyeSBjdXJzb3Igb2Zmc2V0cyBhbmQgZG8gcnVudGltZSBjaGVja2luZy4KKyAgICAgICAgICAgIC8vKHJpZ2h0LmN1cnNvck9mZnNldCA+IChsZWZ0LnRleHQubGVuZ3RoKCkgLSBsZWZ0LnBvc3QpKSB8fAorICAgICAgICAgICAgLy8oLXJpZ2h0LmN1cnNvck9mZnNldCA+IGxlZnQuYW50ZSkgfHwKKyAgICAgICAgICAgIHJpZ2h0LmFuY2hvclN0YXJ0IHx8IHJpZ2h0LmFuY2hvckVuZCB8fAorICAgICAgICAgICAgIWxlZnQuaXNWYWxpZElucHV0KHRoaXMpIHx8ICFyaWdodC5pc1ZhbGlkT3V0cHV0KHRoaXMpIHx8CisgICAgICAgICAgICBsZWZ0LmFudGUgPiBsZWZ0LnBvc3QpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJNYWxmb3JtZWQgcnVsZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZsYXR0ZW4gc2VnbWVudCBvYmplY3RzIHZlY3RvciB0byBhbiBhcnJheQorICAgICAgICBVbmljb2RlTWF0Y2hlcltdIHNlZ21lbnRzQXJyYXkgPSBudWxsOworICAgICAgICBpZiAoc2VnbWVudE9iamVjdHMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgc2VnbWVudHNBcnJheSA9IG5ldyBVbmljb2RlTWF0Y2hlcltzZWdtZW50T2JqZWN0cy5zaXplKCldOworICAgICAgICAgICAgc2VnbWVudE9iamVjdHMudG9BcnJheShzZWdtZW50c0FycmF5KTsKKyAgICAgICAgfQorCisgICAgICAgIGN1ckRhdGEucnVsZVNldC5hZGRSdWxlKG5ldyBUcmFuc2xpdGVyYXRpb25SdWxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQudGV4dCwgbGVmdC5hbnRlLCBsZWZ0LnBvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQudGV4dCwgcmlnaHQuY3Vyc29yLCByaWdodC5jdXJzb3JPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LmFuY2hvclN0YXJ0LCBsZWZ0LmFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhKSk7CisKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHZhcmlhYmxlIHJhbmdlIHRvIFtzdGFydCwgZW5kXSAoaW5jbHVzaXZlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0VmFyaWFibGVSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0ID4gZW5kIHx8IHN0YXJ0IDwgMCB8fCBlbmQgPiAweEZGRkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgdmFyaWFibGUgcmFuZ2UgIiArIHN0YXJ0ICsgIiwgIiArIGVuZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGN1ckRhdGEudmFyaWFibGVzQmFzZSA9IChjaGFyKSBzdGFydDsgLy8gZmlyc3QgcHJpdmF0ZSB1c2UKKworICAgICAgICBpZiAoZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdmFyaWFibGVOZXh0ID0gKGNoYXIpIHN0YXJ0OworICAgICAgICAgICAgdmFyaWFibGVMaW1pdCA9IChjaGFyKSAoZW5kICsgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBc3NlcnQgdGhhdCB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIE5PVCB3aXRoaW4gdGhlIHZhcmlhYmxlIHJhbmdlLgorICAgICAqIElmIGl0IGlzLCBzaWduYWwgYW4gZXJyb3IuICBUaGlzIGlzIG5lY2Nlc2FyeSB0byBlbnN1cmUgdGhhdCB0aGUKKyAgICAgKiB2YXJpYWJsZSByYW5nZSBkb2VzIG5vdCBvdmVybGFwIGNoYXJhY3RlcnMgdXNlZCBpbiBhIHJ1bGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrVmFyaWFibGVSYW5nZShpbnQgY2gsIFN0cmluZyBydWxlLCBpbnQgc3RhcnQpIHsKKyAgICAgICAgaWYgKGNoID49IGN1ckRhdGEudmFyaWFibGVzQmFzZSAmJiBjaCA8IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJWYXJpYWJsZSByYW5nZSBjaGFyYWN0ZXIgaW4gcnVsZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIChUaGUgZm9sbG93aW5nIG1ldGhvZCBpcyBwYXJ0IG9mIGFuIHVuaW1wbGVtZW50ZWQgZmVhdHVyZS4KKyAgICAvLyBSZW1vdmUgdGhpcyBjbG92ZXIgcHJhZ21hIGFmdGVyIHRoZSBmZWF0dXJlIGlzIGltcGxlbWVudGVkLgorICAgIC8vIDIwMDMtMDYtMTEgSUNVIDIuNiBBbGFuKQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1heGltdW0gYmFja3VwIHRvICdiYWNrdXAnLCBpbiByZXNwb25zZSB0byBhIHByYWdtYQorICAgICAqIHN0YXRlbWVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcHJhZ21hTWF4aW11bUJhY2t1cChpbnQgYmFja3VwKSB7CisgICAgICAgIC8vVE9ETyBGaW5pc2gKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidXNlIG1heGltdW0gYmFja3VwIHByYWdtYSBub3QgaW1wbGVtZW50ZWQgeWV0Iik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8gKFRoZSBmb2xsb3dpbmcgbWV0aG9kIGlzIHBhcnQgb2YgYW4gdW5pbXBsZW1lbnRlZCBmZWF0dXJlLgorICAgIC8vIFJlbW92ZSB0aGlzIGNsb3ZlciBwcmFnbWEgYWZ0ZXIgdGhlIGZlYXR1cmUgaXMgaW1wbGVtZW50ZWQuCisgICAgLy8gMjAwMy0wNi0xMSBJQ1UgMi42IEFsYW4pCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIEJlZ2luIG5vcm1hbGl6aW5nIGFsbCBydWxlcyB1c2luZyB0aGUgZ2l2ZW4gbW9kZSwgaW4gcmVzcG9uc2UKKyAgICAgKiB0byBhIHByYWdtYSBzdGF0ZW1lbnQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTW9kZSBtb2RlKSB7CisgICAgICAgIC8vVE9ETyBGaW5pc2gKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidXNlIG5vcm1hbGl6ZSBydWxlcyBwcmFnbWEgbm90IGltcGxlbWVudGVkIHlldCIpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBydWxlIGxvb2tzIGxpa2UgYSBwcmFnbWEuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1ByYWdtYShTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgIC8vIE11c3Qgc3RhcnQgd2l0aCAvdXNlXHMvaQorICAgICAgICByZXR1cm4gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgInVzZSAiLCBudWxsKSA+PSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcHJhZ21hLiAgVGhpcyBtZXRob2QgYXNzdW1lcyByZXNlbWJsZXNQcmFnbWEoKSBoYXMKKyAgICAgKiBhbHJlYWR5IHJldHVybmVkIHRydWUuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqIEByZXR1cm4gdGhlIHBvc2l0aW9uIGluZGV4IGFmdGVyIHRoZSBmaW5hbCAnOycgb2YgdGhlIHByYWdtYSwKKyAgICAgKiBvciAtMSBvbiBmYWlsdXJlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHBhcnNlUHJhZ21hKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgaW50W10gYXJyYXkgPSBuZXcgaW50WzJdOworCisgICAgICAgIC8vIHJlc2VtYmxlc1ByYWdtYSgpIGhhcyBhbHJlYWR5IHJldHVybmVkIHRydWUsIHNvIHdlCisgICAgICAgIC8vIGtub3cgdGhhdCBwb3MgcG9pbnRzIHRvIC91c2Vccy9pOyB3ZSBjYW4gc2tpcCA0IGNoYXJhY3RlcnMKKyAgICAgICAgLy8gaW1tZWRpYXRlbHkKKyAgICAgICAgcG9zICs9IDQ7CisgICAgICAgIAorICAgICAgICAvLyBIZXJlIGFyZSB0aGUgcHJhZ21hcyB3ZSByZWNvZ25pemU6CisgICAgICAgIC8vIHVzZSB2YXJpYWJsZSByYW5nZSAweEUwMDAgMHhFRkZGOworICAgICAgICAvLyB1c2UgbWF4aW11bSBiYWNrdXAgMTY7CisgICAgICAgIC8vIHVzZSBuZmQgcnVsZXM7CisgICAgICAgIGludCBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn52YXJpYWJsZSByYW5nZSAjICN+OyIsIGFycmF5KTsKKyAgICAgICAgaWYgKHAgPj0gMCkgeworICAgICAgICAgICAgc2V0VmFyaWFibGVSYW5nZShhcnJheVswXSwgYXJyYXlbMV0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5tYXhpbXVtIGJhY2t1cCAjfjsiLCBhcnJheSk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU1heGltdW1CYWNrdXAoYXJyYXlbMF0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5uZmQgcnVsZXN+OyIsIG51bGwpOworICAgICAgICBpZiAocCA+PSAwKSB7CisgICAgICAgICAgICBwcmFnbWFOb3JtYWxpemVSdWxlcyhOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgfQorCisgICAgICAgIHAgPSBVdGlsaXR5LnBhcnNlUGF0dGVybihydWxlLCBwb3MsIGxpbWl0LCAifm5mYyBydWxlc347IiwgbnVsbCk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3ludGF4IGVycm9yOiB1bmFibGUgdG8gcGFyc2UgcHJhZ21hCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvdyBhbiBleGNlcHRpb24gaW5kaWNhdGluZyBhIHN5bnRheCBlcnJvci4gIFNlYXJjaCB0aGUgcnVsZSBzdHJpbmcKKyAgICAgKiBmb3IgdGhlIHByb2JhYmxlIGVuZCBvZiB0aGUgcnVsZS4gIE9mIGNvdXJzZSwgaWYgdGhlIGVycm9yIGlzIHRoYXQKKyAgICAgKiB0aGUgZW5kIG9mIHJ1bGUgbWFya2VyIGlzIG1pc3NpbmcsIHRoZW4gdGhlIHJ1bGUgZW5kIHdpbGwgbm90IGJlIGZvdW5kLgorICAgICAqIEluIGFueSBjYXNlIHRoZSBydWxlIHN0YXJ0IHdpbGwgYmUgY29ycmVjdGx5IHJlcG9ydGVkLgorICAgICAqIEBwYXJhbSBtc2cgZXJyb3IgZGVzY3JpcHRpb24KKyAgICAgKiBAcGFyYW0gcnVsZSBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSBzdGFydCBwb3NpdGlvbiBvZiBmaXJzdCBjaGFyYWN0ZXIgb2YgY3VycmVudCBydWxlCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHZvaWQgc3ludGF4RXJyb3IoU3RyaW5nIG1zZywgU3RyaW5nIHJ1bGUsIGludCBzdGFydCkgeworICAgICAgICBpbnQgZW5kID0gcnVsZUVuZChydWxlLCBzdGFydCwgcnVsZS5sZW5ndGgoKSk7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnICsgIiBpbiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHJ1bGUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKSArICciJyk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBydWxlRW5kKFN0cmluZyBydWxlLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpbnQgZW5kID0gVXRpbGl0eS5xdW90ZWRJbmRleE9mKHJ1bGUsIHN0YXJ0LCBsaW1pdCwgIjsiKTsKKyAgICAgICAgaWYgKGVuZCA8IDApIHsKKyAgICAgICAgICAgIGVuZCA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBlbmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBVbmljb2RlU2V0IG91dCwgc3RvcmUgaXQsIGFuZCByZXR1cm4gdGhlIHN0YW5kLWluIGNoYXJhY3RlcgorICAgICAqIHVzZWQgdG8gcmVwcmVzZW50IGl0LgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgY2hhciBwYXJzZVNldChTdHJpbmcgcnVsZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChydWxlLCBwb3MsIHBhcnNlRGF0YSk7CisgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlByaXZhdGUgdXNlIHZhcmlhYmxlcyBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBzZXQuY29tcGFjdCgpOworICAgICAgICByZXR1cm4gZ2VuZXJhdGVTdGFuZEluRm9yKHNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYW5kIHJldHVybiBhIHN0YW5kLWluIGZvciBhIG5ldyBVbmljb2RlTWF0Y2hlciBvciBVbmljb2RlUmVwbGFjZXIuCisgICAgICogU3RvcmUgdGhlIG9iamVjdC4KKyAgICAgKi8KKyAgICBjaGFyIGdlbmVyYXRlU3RhbmRJbkZvcihPYmplY3Qgb2JqKSB7CisgICAgICAgIC8vIGFzc2VydChvYmogIT0gbnVsbCk7CisKKyAgICAgICAgLy8gTG9vayB1cCBwcmV2aW91cyBzdGFuZC1pbiwgaWYgYW55LiAgVGhpcyBpcyBhIHNob3J0IGxpc3QKKyAgICAgICAgLy8gKHR5cGljYWwgbiBpcyAwLCAxLCBvciAyKTsgbGluZWFyIHNlYXJjaCBpcyBvcHRpbWFsLgorICAgICAgICBmb3IgKGludCBpPTA7IGk8dmFyaWFibGVzVmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAodmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKSA9PSBvYmopIHsgLy8gW3NpY10gcG9pbnRlciBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKSAoY3VyRGF0YS52YXJpYWJsZXNCYXNlICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFyaWFibGVOZXh0ID49IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChvYmopOworICAgICAgICByZXR1cm4gdmFyaWFibGVOZXh0Kys7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZGluIGZvciBzZWdtZW50IHNlZyAoMS1iYXNlZCkuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0U2VnbWVudFN0YW5kaW4oaW50IHNlZykgeworICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmxlbmd0aCgpIDwgc2VnKSB7CisgICAgICAgICAgICBzZWdtZW50U3RhbmRpbnMuc2V0TGVuZ3RoKHNlZyk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjID0gc2VnbWVudFN0YW5kaW5zLmNoYXJBdChzZWctMSk7CisgICAgICAgIGlmIChjID09IDApIHsKKyAgICAgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSB2YXJpYWJsZU5leHQrKzsKKyAgICAgICAgICAgIC8vIFNldCBhIHBsYWNlaG9sZGVyIGluIHRoZSBtYXN0ZXIgdmFyaWFibGVzIHZlY3RvciB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgIC8vIGZpbGxlZCBpbiBsYXRlciBieSBzZXRTZWdtZW50T2JqZWN0KCkuICBXZSBrbm93IHRoYXQgd2Ugd2lsbCBnZXQKKyAgICAgICAgICAgIC8vIGNhbGxlZCBmaXJzdCBiZWNhdXNlIHNldFNlZ21lbnRPYmplY3QoKSB3aWxsIGNhbGwgdXMuCisgICAgICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChudWxsKTsKKyAgICAgICAgICAgIHNlZ21lbnRTdGFuZGlucy5zZXRDaGFyQXQoc2VnLTEsIGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG9iamVjdCBmb3Igc2VnbWVudCBzZWcgKDEtYmFzZWQpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlZ21lbnRPYmplY3QoaW50IHNlZywgU3RyaW5nTWF0Y2hlciBvYmopIHsKKyAgICAgICAgLy8gU2luY2Ugd2UgY2FsbCBwYXJzZVNlY3Rpb24oKSByZWN1cnNpdmVseSwgbmVzdGVkCisgICAgICAgIC8vIHNlZ21lbnRzIHdpbGwgcmVzdWx0IGluIHNlZ21lbnQgaSsxIGdldHRpbmcgcGFyc2VkCisgICAgICAgIC8vIGFuZCBzdG9yZWQgYmVmb3JlIHNlZ21lbnQgaTsgYmUgY2FyZWZ1bCB3aXRoIHRoZQorICAgICAgICAvLyB2ZWN0b3IgaGFuZGxpbmcgaGVyZS4KKyAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLnNpemUoKSA8IHNlZykgeworICAgICAgICAgICAgc2VnbWVudE9iamVjdHMuc2V0U2l6ZShzZWcpOworICAgICAgICB9CisgICAgICAgIGludCBpbmRleCA9IGdldFNlZ21lbnRTdGFuZGluKHNlZykgLSBjdXJEYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgIGlmIChzZWdtZW50T2JqZWN0cy5lbGVtZW50QXQoc2VnLTEpICE9IG51bGwgfHwKKyAgICAgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaW5kZXgpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7IC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgfQorICAgICAgICBzZWdtZW50T2JqZWN0cy5zZXRFbGVtZW50QXQob2JqLCBzZWctMSk7CisgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5zZXRFbGVtZW50QXQob2JqLCBpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZC1pbiBmb3IgdGhlIGRvdCBzZXQuICBJdCBpcyBhbGxvY2F0ZWQgdGhlIGZpcnN0CisgICAgICogdGltZSBhbmQgcmV1c2VkIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgY2hhciBnZXREb3RTdGFuZEluKCkgeworICAgICAgICBpZiAoZG90U3RhbmRJbiA9PSAtMSkgeworICAgICAgICAgICAgZG90U3RhbmRJbiA9IGdlbmVyYXRlU3RhbmRJbkZvcihuZXcgVW5pY29kZVNldChET1RfU0VUKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjaGFyKSBkb3RTdGFuZEluOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIHZhcmlhYmxlIG5hbWUgdG8gdGhlIGdpdmVuCisgICAgICogU3RyaW5nQnVmZmVyLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBuYW1lIGlzIHVua25vd24uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZFZhcmlhYmxlRGVmKFN0cmluZyBuYW1lLCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGNoYXJbXSBjaCA9IChjaGFyW10pIHZhcmlhYmxlTmFtZXMuZ2V0KG5hbWUpOworICAgICAgICBpZiAoY2ggPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gV2UgYWxsb3cgb25lIHVuZGVmaW5lZCB2YXJpYWJsZSBzbyB0aGF0IHZhcmlhYmxlIGRlZmluaXRpb24KKyAgICAgICAgICAgIC8vIHN0YXRlbWVudHMgd29yay4gIEZvciB0aGUgZmlyc3QgdW5kZWZpbmVkIHZhcmlhYmxlIHdlIHJldHVybgorICAgICAgICAgICAgLy8gdGhlIHNwZWNpYWwgcGxhY2Vob2xkZXIgdmFyaWFibGVMaW1pdC0xLCBhbmQgc2F2ZSB0aGUgdmFyaWFibGUKKyAgICAgICAgICAgIC8vIG5hbWUuCisgICAgICAgICAgICBpZiAodW5kZWZpbmVkVmFyaWFibGVOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB1bmRlZmluZWRWYXJpYWJsZU5hbWUgPSBuYW1lOworICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiUHJpdmF0ZSB1c2UgdmFyaWFibGVzIGV4aGF1c3RlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSAtLXZhcmlhYmxlTGltaXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbmRlZmluZWQgdmFyaWFibGUgJCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGNoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzg0MTdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JSZWdpc3RyeS5qYXZhCkBAIC0wLDAgKzEsODkzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwOC8xOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhc2VJbnNlbnNpdGl2ZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworY2xhc3MgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSB7CisKKyAgICAvLyBjaGFyIGNvbnN0YW50cworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgTE9DQUxFX1NFUCAgPSAnXyc7CisKKyAgICAvLyBTdHJpbmcgY29uc3RhbnRzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5PX1ZBUklBTlQgPSAiIjsgLy8gZW1wdHkgc3RyaW5nCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWSA9ICJBbnkiOworCisgICAgLyoqCisgICAgICogRHluYW1pYyByZWdpc3RyeSBtYXBwaW5nIGZ1bGwgSURzIHRvIEVudHJ5IG9iamVjdHMuICBUaGlzCisgICAgICogY29udGFpbnMgYm90aCBwdWJsaWMgYW5kIGludGVybmFsIGVudGl0aWVzLiAgVGhlIHZpc2liaWxpdHkgaXMKKyAgICAgKiBjb250cm9sbGVkIGJ5IHdoZXRoZXIgYW4gZW50cnkgaXMgbGlzdGVkIGluIGF2YWlsYWJsZUlEcyBhbmQKKyAgICAgKiBzcGVjREFHIG9yIG5vdC4KKyAgICAgKgorICAgICAqIEtleXMgYXJlIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzLgorICAgICAqIFZhbHVlcyBhcmUgb2JqZWN0cyBvZiBjbGFzcyBDbGFzcyAoc3ViY2xhc3Mgb2YgVHJhbnNsaXRlcmF0b3IpLAorICAgICAqIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEsIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnksIG9yIG9uZQorICAgICAqIG9mIHRoZSBlbnRyeSBjbGFzc2VzIGRlZmluZWQgaGVyZSAoQWxpYXNFbnRyeSBvciBSZXNvdXJjZUVudHJ5KS4KKyAgICAgKi8KKyAgICBwcml2YXRlIEhhc2h0YWJsZSByZWdpc3RyeTsKKworICAgIC8qKgorICAgICAqIERBRyBvZiB2aXNpYmxlIElEcyBieSBzcGVjLiAgSGFzaHRhYmxlOiBzb3VyY2UgPT4gKEhhc2h0YWJsZToKKyAgICAgKiB0YXJnZXQgPT4gKFZlY3RvcjogdmFyaWFudCkpIFRoZSBWZWN0b3Igb2YgdmFyaWFudHMgaXMgbmV2ZXIKKyAgICAgKiBlbXB0eS4gIEZvciBhIHNvdXJjZS10YXJnZXQgd2l0aCBubyB2YXJpYW50LCB0aGUgc3BlY2lhbAorICAgICAqIHZhcmlhbnQgTk9fVkFSSUFOVCAodGhlIGVtcHR5IHN0cmluZykgaXMgc3RvcmVkIGluIHNsb3QgemVybyBvZgorICAgICAqIHRoZSBVVmVjdG9yLgorICAgICAqCisgICAgICogS2V5cyBhcmUgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIG9iamVjdHMuCisgICAgICogVmFsdWVzIGFyZSBIYXNodGFibGUgb2YgKENhc2VJbnNlbnNpdGl2ZVN0cmluZyAtPiBWZWN0b3Igb2YKKyAgICAgKiBDYXNlSW5zZW5zaXRpdmVTdHJpbmcpCisgICAgICovCisgICAgcHJpdmF0ZSBIYXNodGFibGUgc3BlY0RBRzsKKworICAgIC8qKgorICAgICAqIFZlY3RvciBvZiBwdWJsaWMgZnVsbCBJRHMgKENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFZlY3RvciBhdmFpbGFibGVJRHM7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBTcGVjCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBIFNwZWMgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyBlaXRoZXIgYSBzb3VyY2Ugb3IgYSB0YXJnZXQuICBJbiBtb3JlCisgICAgICogZ2VuZXJhbCB0ZXJtcywgaXQgbWF5IGFsc28gc3BlY2lmeSBhIHZhcmlhbnQsIGJ1dCB3ZSBvbmx5IHVzZSB0aGUKKyAgICAgKiBTcGVjIGNsYXNzIGZvciBzb3VyY2VzIGFuZCB0YXJnZXRzLgorICAgICAqCisgICAgICogQSBTcGVjIG1heSBiZSBhIGxvY2FsZSBvciBhIHNjcmlwdC4gIElmIGl0IGlzIGEgbG9jYWxlLCBpdCBoYXMgYQorICAgICAqIGZhbGxiYWNrIGNoYWluIHRoYXQgZ29lcyB4eF9ZWV9aWlogLT4geHhfWVkgLT4geHggLT4gc3Nzcywgd2hlcmUKKyAgICAgKiBzc3NzIGlzIHRoZSBzY3JpcHQgbWFwcGluZyBvZiB4eF9ZWV9aWlouICBUaGUgU3BlYyBBUEkgbWV0aG9kcworICAgICAqIGhhc0ZhbGxiYWNrKCksIG5leHQoKSwgYW5kIHJlc2V0KCkgaXRlcmF0ZSBvdmVyIHRoaXMgZmFsbGJhY2sKKyAgICAgKiBzZXF1ZW5jZS4KKyAgICAgKgorICAgICAqIFRoZSBTcGVjIGNsYXNzIGNhbm9uaWNhbGl6ZXMgaXRzZWxmLCBzbyB0aGUgbG9jYWxlIGlzIHB1dCBpbnRvCisgICAgICogY2Fub25pY2FsIGZvcm0sIG9yIHRoZSBzY3JpcHQgaXMgdHJhbnNmb3JtZWQgZnJvbSBhbiBhYmJyZXZpYXRpb24KKyAgICAgKiB0byBhIGZ1bGwgbmFtZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgU3BlYyB7CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgdG9wOyAgICAgICAgLy8gdG9wIHNwZWMKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc3BlYzsgICAgICAgLy8gY3VycmVudCBzcGVjCisgICAgICAgIHByaXZhdGUgU3RyaW5nIG5leHRTcGVjOyAgIC8vIG5leHQgc3BlYworICAgICAgICBwcml2YXRlIFN0cmluZyBzY3JpcHROYW1lOyAvLyBzY3JpcHQgbmFtZSBlcXVpdmFsZW50IG9mIHRvcCwgaWYgIT0gdG9wCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1NwZWNMb2NhbGU7IC8vIFRSVUUgaWYgc3BlYyBpcyBhIGxvY2FsZQorICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNOZXh0TG9jYWxlOyAvLyBUUlVFIGlmIG5leHRTcGVjIGlzIGEgbG9jYWxlCisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgcmVzOworCisgICAgICAgIHB1YmxpYyBTcGVjKFN0cmluZyB0aGVTcGVjKSB7CisgICAgICAgICAgICB0b3AgPSB0aGVTcGVjOworICAgICAgICAgICAgc3BlYyA9IG51bGw7CisgICAgICAgICAgICBzY3JpcHROYW1lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAvLyBDYW5vbmljYWxpemUgc2NyaXB0IG5hbWUuICBJZiB0b3AgaXMgYSBzY3JpcHQgbmFtZSB0aGVuCisgICAgICAgICAgICAgICAgLy8gc2NyaXB0ICE9IFVTY3JpcHQuSU5WQUxJRF9DT0RFLgorICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldENvZGVGcm9tTmFtZSh0b3ApOworCisgICAgICAgICAgICAgICAgLy8gQ2Fub25pY2FsaXplIHNjcmlwdCBuYW1lIC1vci0gZG8gbG9jYWxlLT5zY3JpcHQgbWFwcGluZworICAgICAgICAgICAgICAgIGludFtdIHMgPSBVU2NyaXB0LmdldENvZGUodG9wKTsKKyAgICAgICAgICAgICAgICBpZiAocyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBVU2NyaXB0LmdldE5hbWUoc1swXSk7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzY3JpcHQgbmFtZSBpcyB0aGUgc2FtZSBhcyB0b3AgdGhlbiBpdCdzIHJlZHVuZGFudAorICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0TmFtZS5lcXVhbHNJZ25vcmVDYXNlKHRvcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmVzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvLyBJZiAndG9wJyBpcyBub3QgYSBzY3JpcHQgbmFtZSwgdHJ5IGEgbG9jYWxlIGxvb2t1cAorICAgICAgICAgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5JTlZBTElEX0NPREUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIHRvcGxvYyA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUodG9wKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzICA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX1RSQU5TTElUX0JBU0VfTkFNRSx0b3Bsb2MpOworICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ290IHRoZSBidW5kbGUgd2Ugd2FudGVkOyBvdGhlcndpc2UsIGRvbid0IHVzZSBpdAorICAgICAgICAgICAgICAgICAgICBpZiAocmVzIT1udWxsICYmIExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKHJlcy5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKSwgdG9wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgc2NyaXB0TmFtZSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhc3NlcnQoc3BlYyAhPSB0b3ApOworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc0ZhbGxiYWNrKCkgeworICAgICAgICAgICAgcmV0dXJuIG5leHRTcGVjICE9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGlmIChzcGVjICE9IHRvcCkgeyAvLyBbc2ljXSBwb2ludGVyIGNvbXBhcmlzb24KKyAgICAgICAgICAgICAgICBzcGVjID0gdG9wOworICAgICAgICAgICAgICAgIGlzU3BlY0xvY2FsZSA9IChyZXMgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgc2V0dXBOZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0dXBOZXh0KCkgeworICAgICAgICAgICAgaXNOZXh0TG9jYWxlID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoaXNTcGVjTG9jYWxlKSB7CisgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzcGVjOworICAgICAgICAgICAgICAgIGludCBpID0gbmV4dFNwZWMubGFzdEluZGV4T2YoTE9DQUxFX1NFUCk7CisgICAgICAgICAgICAgICAgLy8gSWYgaSA9PSAwIHRoZW4gd2UgaGF2ZSBfRk9PLCBzbyB3ZSBmYWxsIHRocm91Z2gKKyAgICAgICAgICAgICAgICAvLyB0byB0aGUgc2NyaXB0TmFtZS4KKyAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzcGVjLnN1YnN0cmluZygwLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaXNOZXh0TG9jYWxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXh0U3BlYyA9IHNjcmlwdE5hbWU7IC8vIHNjcmlwdE5hbWUgbWF5IGJlIG51bGwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBzY3JpcHQsIHdoaWNoIG1heSBiZSBudWxsCisgICAgICAgICAgICAgICAgaWYgKG5leHRTcGVjICE9IHNjcmlwdE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzY3JpcHROYW1lOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRTcGVjID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm90b2NvbDoKKyAgICAgICAgLy8gZm9yKFN0cmluZyYgcyhzcGVjLmdldCgpKTsKKyAgICAgICAgLy8gICAgIHNwZWMuaGFzRmFsbGJhY2soKTsgcyhzcGVjLm5leHQoKSkpIHsgLi4uCisKKyAgICAgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICAgICAgc3BlYyA9IG5leHRTcGVjOworICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gaXNOZXh0TG9jYWxlOworICAgICAgICAgICAgc2V0dXBOZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gc3BlYzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KCkgeworICAgICAgICAgICAgcmV0dXJuIHNwZWM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0xvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBpc1NwZWNMb2NhbGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBSZXNvdXJjZUJ1bmRsZSBmb3IgdGhpcyBzcGVjLCBhdCB0aGUgY3VycmVudAorICAgICAgICAgKiBsZXZlbCBvZiBpdGVyYXRpb24uICBUaGUgbGV2ZWwgb2YgaXRlcmF0aW9uIGdvZXMgZnJvbQorICAgICAgICAgKiBhYV9CQl9DQ0MgdG8gYWFfQkIgdG8gYWEuICBJZiB0aGUgYnVuZGxlIGRvZXMgbm90CisgICAgICAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaXRlcmF0aW9uLCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogSWYgaXNMb2NhbGUoKSBpcyBmYWxzZSwgYWx3YXlzIHJldHVybiBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFJlc291cmNlQnVuZGxlIGdldEJ1bmRsZSgpIHsKKyAgICAgICAgICAgIGlmIChyZXMgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIHJlcy5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKS5lcXVhbHMoc3BlYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFRvcCgpIHsKKyAgICAgICAgICAgIHJldHVybiB0b3A7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFbnRyeSBjbGFzc2VzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBzdGF0aWMgY2xhc3MgUmVzb3VyY2VFbnRyeSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVzb3VyY2U7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZW5jb2Rpbmc7CisgICAgICAgIHB1YmxpYyBpbnQgZGlyZWN0aW9uOworICAgICAgICBwdWJsaWMgUmVzb3VyY2VFbnRyeShTdHJpbmcgbiwgU3RyaW5nIGVuYywgaW50IGQpIHsKKyAgICAgICAgICAgIHJlc291cmNlID0gbjsKKyAgICAgICAgICAgIGVuY29kaW5nID0gZW5jOworICAgICAgICAgICAgZGlyZWN0aW9uID0gZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEFuIGVudHJ5IHJlcHJlc2VudGluZyBhIHJ1bGUgaW4gYSBsb2NhbGUgcmVzb3VyY2UgYnVuZGxlCisgICAgc3RhdGljIGNsYXNzIExvY2FsZUVudHJ5IHsKKyAgICAgICAgcHVibGljIFN0cmluZyBydWxlOworICAgICAgICBwdWJsaWMgaW50IGRpcmVjdGlvbjsKKyAgICAgICAgcHVibGljIExvY2FsZUVudHJ5KFN0cmluZyByLCBpbnQgZCkgeworICAgICAgICAgICAgcnVsZSA9IHI7CisgICAgICAgICAgICBkaXJlY3Rpb24gPSBkOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEFsaWFzRW50cnkgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGFsaWFzOworICAgICAgICBwdWJsaWMgQWxpYXNFbnRyeShTdHJpbmcgYSkgeworICAgICAgICAgICAgYWxpYXMgPSBhOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENvbXBvdW5kUkJURW50cnkgeworICAgICAgICBwcml2YXRlIFN0cmluZyBJRDsKKyAgICAgICAgcHJpdmF0ZSBWZWN0b3IgaWRCbG9ja1ZlY3RvcjsKKyAgICAgICAgcHJpdmF0ZSBWZWN0b3IgZGF0YVZlY3RvcjsKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGNvbXBvdW5kRmlsdGVyOworCisgICAgICAgIHB1YmxpYyBDb21wb3VuZFJCVEVudHJ5KFN0cmluZyB0aGVJRCwgVmVjdG9yIHRoZUlEQmxvY2tWZWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciB0aGVEYXRhVmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRoZUNvbXBvdW5kRmlsdGVyKSB7CisgICAgICAgICAgICBJRCA9IHRoZUlEOworICAgICAgICAgICAgaWRCbG9ja1ZlY3RvciA9IHRoZUlEQmxvY2tWZWN0b3I7CisgICAgICAgICAgICBkYXRhVmVjdG9yID0gdGhlRGF0YVZlY3RvcjsKKyAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gdGhlQ29tcG91bmRGaWx0ZXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgICAgICBWZWN0b3IgdHJhbnNsaXRlcmF0b3JzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgaW50IHBhc3NOdW1iZXIgPSAxOworCisgICAgICAgICAgICBpbnQgbGltaXQgPSBNYXRoLm1heChpZEJsb2NrVmVjdG9yLnNpemUoKSwgZGF0YVZlY3Rvci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBpZEJsb2NrVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWRCbG9jayA9IChTdHJpbmcpaWRCbG9ja1ZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpZEJsb2NrLmxlbmd0aCgpID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ZXJhdG9ycy5hZGQoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWRCbG9jaykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA8IGRhdGFWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSA9IChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKWRhdGFWZWN0b3IuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICB0cmFuc2xpdGVyYXRvcnMuYWRkKG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiJVBhc3MiICsgcGFzc051bWJlcisrLCBkYXRhLCBudWxsKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IodHJhbnNsaXRlcmF0b3JzLCBwYXNzTnVtYmVyIC0gMSk7CisgICAgICAgICAgICB0LnNldElEKElEKTsKKyAgICAgICAgICAgIGlmIChjb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIoY29tcG91bmRGaWx0ZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5OiBCYXNpYyBwdWJsaWMgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSgpIHsKKyAgICAgICAgcmVnaXN0cnkgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIHNwZWNEQUcgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGF2YWlsYWJsZUlEcyA9IG5ldyBWZWN0b3IoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHNpbXBsZSBJRCAoZm9yd2FyZCBkaXJlY3Rpb24sIG5vIGlubGluZSBmaWx0ZXIsIG5vdAorICAgICAqIGNvbXBvdW5kKSBhdHRlbXB0IHRvIGluc3RhbnRpYXRlIGl0IGZyb20gdGhlIHJlZ2lzdHJ5LiAgUmV0dXJuCisgICAgICogMCBvbiBmYWlsdXJlLgorICAgICAqCisgICAgICogUmV0dXJuIGEgbm9uLWVtcHR5IGFsaWFzUmV0dXJuIHZhbHVlIGlmIHRoZSBJRCBwb2ludHMgdG8gYW4gYWxpYXMuCisgICAgICogV2UgY2Fubm90IGluc3RhbnRpYXRlIGl0IG91cnNlbHZlcyBiZWNhdXNlIHRoZSBhbGlhcyBtYXkgY29udGFpbgorICAgICAqIGZpbHRlcnMgb3IgY29tcG91bmRzLCB3aGljaCB3ZSBkbyBub3QgdW5kZXJzdGFuZC4gIENhbGxlciBzaG91bGQKKyAgICAgKiBtYWtlIGFsaWFzUmV0dXJuIGVtcHR5IGJlZm9yZSBjYWxsaW5nLgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFsaWFzUmV0dXJuKSB7CisgICAgICAgIE9iamVjdFtdIGVudHJ5ID0gZmluZChJRCk7CisgICAgICAgIHJldHVybiAoZW50cnkgPT0gbnVsbCkgPyBudWxsCisgICAgICAgICAgICA6IGluc3RhbnRpYXRlRW50cnkoSUQsIGVudHJ5LCBhbGlhc1JldHVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjbGFzcy4gIFRoaXMgYWRkcyBhbiBlbnRyeSB0byB0aGUKKyAgICAgKiBkeW5hbWljIHN0b3JlLCBvciByZXBsYWNlcyBhbiBleGlzdGluZyBlbnRyeS4gIEFueSBlbnRyeSBpbiB0aGUKKyAgICAgKiB1bmRlcmx5aW5nIHN0YXRpYyBsb2NhbGUgcmVzb3VyY2Ugc3RvcmUgaXMgbWFza2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgIENsYXNzIHRyYW5zbGl0ZXJhdG9yU3ViY2xhc3MsCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCB0cmFuc2xpdGVyYXRvclN1YmNsYXNzLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIuICBUaGlzIGFkZHMgYW4KKyAgICAgKiBlbnRyeSB0byB0aGUgZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkKKyAgICAgKiBlbnRyeSBpbiB0aGUgdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IGZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCBmYWN0b3J5LCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSByZXNvdXJjZSBuYW1lLiAgVGhpcyBhZGRzIGFuIGVudHJ5IHRvIHRoZQorICAgICAqIGR5bmFtaWMgc3RvcmUsIG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGVudHJ5LiAgQW55IGVudHJ5IGluIHRoZQorICAgICAqIHVuZGVybHlpbmcgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcyBtYXNrZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc291cmNlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICBpbnQgZGlyLAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgbmV3IFJlc291cmNlRW50cnkocmVzb3VyY2VOYW1lLCBlbmNvZGluZywgZGlyKSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gSUQgYW5kIGFuIGFsaWFzIElELiAgVGhpcyBhZGRzIGFuIGVudHJ5IHRvIHRoZQorICAgICAqIGR5bmFtaWMgc3RvcmUsIG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGVudHJ5LiAgQW55IGVudHJ5IGluIHRoZQorICAgICAqIHVuZGVybHlpbmcgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcyBtYXNrZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFsaWFzLAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgbmV3IEFsaWFzRW50cnkoYWxpYXMpLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSBUcmFuc2xpdGVyYXRvciBvYmplY3QuICBUaGlzIGFkZHMgYW4gZW50cnkKKyAgICAgKiB0byB0aGUgZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkgZW50cnkKKyAgICAgKiBpbiB0aGUgdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucywKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHJlZ2lzdGVyRW50cnkoSUQsIHRyYW5zLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGFuIElELiAgVGhpcyByZW1vdmVzIGFuIGVudHJ5IGZyb20gdGhlIGR5bmFtaWMgc3RvcmUKKyAgICAgKiBpZiB0aGVyZSBpcyBvbmUuICBUaGUgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcworICAgICAqIHVuYWZmZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlKFN0cmluZyBJRCkgeworICAgICAgICBTdHJpbmdbXSBzdHYgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLklEdG9TVFYoSUQpOworICAgICAgICAvLyBPbmx5IG5lZWQgdG8gZG8gdGhpcyBpZiBJRC5pbmRleE9mKCctJykgPCAwCisgICAgICAgIFN0cmluZyBpZCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzdHZbMF0sIHN0dlsxXSwgc3R2WzJdKTsKKyAgICAgICAgcmVnaXN0cnkucmVtb3ZlKG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoaWQpKTsKKyAgICAgICAgcmVtb3ZlU1RWKHN0dlswXSwgc3R2WzFdLCBzdHZbMl0pOworICAgICAgICBhdmFpbGFibGVJRHMucmVtb3ZlRWxlbWVudChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKGlkKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeTogUHVibGljIElEIGFuZCBzcGVjIG1hbmFnZW1lbnQKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFuIGludGVybmFsIGNsYXNzIHRoYXQgYWRhcHRzIGFuIGVudW1lcmF0aW9uIG92ZXIKKyAgICAgKiBDYXNlSW5zZW5zaXRpdmVTdHJpbmdzIHRvIGFuIGVudW1lcmF0aW9uIG92ZXIgU3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJREVudW1lcmF0aW9uIGltcGxlbWVudHMgRW51bWVyYXRpb24geworICAgICAgICBFbnVtZXJhdGlvbiBlbjsKKworICAgICAgICBwdWJsaWMgSURFbnVtZXJhdGlvbihFbnVtZXJhdGlvbiBlKSB7CisgICAgICAgICAgICBlbiA9IGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNNb3JlRWxlbWVudHMoKSB7CisgICAgICAgICAgICByZXR1cm4gZW4gIT0gbnVsbCAmJiBlbi5oYXNNb3JlRWxlbWVudHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gKChDYXNlSW5zZW5zaXRpdmVTdHJpbmcpIGVuLm5leHRFbGVtZW50KCkpLmdldFN0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSBwcm9ncmFtbWF0aWMgbmFtZXMgb2YgdmlzaWJsZQorICAgICAqIHJlZ2lzdGVyZWQgdHJhbnNsaXRlcmF0b3JzLgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICAvLyBTaW5jZSB0aGUgY2FjaGUgY29udGFpbnMgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIG9iamVjdHMsIGJ1dAorICAgICAgICAvLyB0aGUgY2FsbGVyIGV4cGVjdHMgU3RyaW5ncywgd2UgaGF2ZSB0byB1c2UgYW4gaW50ZXJtZWRpYXJ5LgorICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24oYXZhaWxhYmxlSURzLmVsZW1lbnRzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciBhbGwgdmlzaWJsZSBzb3VyY2UgbmFtZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFuIDxjb2RlPkVudW1lcmF0aW9uPC9jb2RlPiBvdmVyIDxjb2RlPlN0cmluZzwvY29kZT4gb2JqZWN0cworICAgICAqLworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRBdmFpbGFibGVTb3VyY2VzKCkgeworICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24oc3BlY0RBRy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB2aXNpYmxlIHRhcmdldCBuYW1lcyBmb3IgdGhlIGdpdmVuCisgICAgICogc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVGFyZ2V0cyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXNyYyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoc291cmNlKTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSURFbnVtZXJhdGlvbihudWxsKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24odGFyZ2V0cy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB2aXNpYmxlIHZhcmlhbnQgbmFtZXMgZm9yIHRoZSBnaXZlbgorICAgICAqIHNvdXJjZSBhbmQgdGFyZ2V0LgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVmFyaWFudHMoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXRyZyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSURFbnVtZXJhdGlvbihudWxsKTsKKyAgICAgICAgfQorICAgICAgICBWZWN0b3IgdmFyaWFudHMgPSAoVmVjdG9yKSB0YXJnZXRzLmdldChjaXRyZyk7CisgICAgICAgIGlmICh2YXJpYW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24obnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBJREVudW1lcmF0aW9uKHZhcmlhbnRzLmVsZW1lbnRzKCkpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnk6IGludGVybmFsCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuICBDYWxscyA2LWFyZyByZWdpc3RlckVudHJ5KCkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlZ2lzdGVyRW50cnkoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBzb3VyY2U7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHMgPSBBTlk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIElEID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgcywgdGFyZ2V0LCB2YXJpYW50LCBlbnRyeSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAgQ2FsbHMgNi1hcmcgcmVnaXN0ZXJFbnRyeSgpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWdpc3RlckVudHJ5KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIFN0cmluZ1tdIHN0diA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuSUR0b1NUVihJRCk7CisgICAgICAgIC8vIE9ubHkgbmVlZCB0byBkbyB0aGlzIGlmIElELmluZGV4T2YoJy0nKSA8IDAKKyAgICAgICAgU3RyaW5nIGlkID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKHN0dlswXSwgc3R2WzFdLCBzdHZbMl0pOworICAgICAgICByZWdpc3RlckVudHJ5KGlkLCBzdHZbMF0sIHN0dlsxXSwgc3R2WzJdLCBlbnRyeSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gZW50cnkgb2JqZWN0IChhZG9wdGVkKSB3aXRoIHRoZSBnaXZlbiBJRCwgc291cmNlLAorICAgICAqIHRhcmdldCwgYW5kIHZhcmlhbnQgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVnaXN0ZXJFbnRyeShTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpSUQgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKTsKKworICAgICAgICAvLyBTdG9yZSB0aGUgZW50cnkgd2l0aGluIGFuIGFycmF5IHNvIGl0IGNhbiBiZSBtb2RpZmllZCBsYXRlcgorICAgICAgICBpZiAoIShlbnRyeSBpbnN0YW5jZW9mIE9iamVjdFtdKSkgeworICAgICAgICAgICAgZW50cnkgPSBuZXcgT2JqZWN0W10geyBlbnRyeSB9OworICAgICAgICB9CisKKyAgICAgICAgcmVnaXN0cnkucHV0KGNpSUQsIGVudHJ5KTsKKyAgICAgICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgICAgIHJlZ2lzdGVyU1RWKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgICAgIGlmICghYXZhaWxhYmxlSURzLmNvbnRhaW5zKGNpSUQpKSB7CisgICAgICAgICAgICAgICAgYXZhaWxhYmxlSURzLmFkZEVsZW1lbnQoY2lJRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZW1vdmVTVFYoc291cmNlLCB0YXJnZXQsIHZhcmlhbnQpOworICAgICAgICAgICAgYXZhaWxhYmxlSURzLnJlbW92ZUVsZW1lbnQoY2lJRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIHNvdXJjZS10YXJnZXQvdmFyaWFudCBpbiB0aGUgc3BlY0RBRy4gIFZhcmlhbnQgbWF5IGJlCisgICAgICogZW1wdHksIGJ1dCBzb3VyY2UgYW5kIHRhcmdldCBtdXN0IG5vdCBiZS4gIElmIHZhcmlhbnQgaXMgZW1wdHkgdGhlbgorICAgICAqIHRoZSBzcGVjaWFsIHZhcmlhbnQgTk9fVkFSSUFOVCBpcyBzdG9yZWQgaW4gc2xvdCB6ZXJvIG9mIHRoZQorICAgICAqIFVWZWN0b3Igb2YgdmFyaWFudHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlZ2lzdGVyU1RWKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIC8vIGFzc2VydChzb3VyY2UubGVuZ3RoKCkgPiAwKTsKKyAgICAgICAgLy8gYXNzZXJ0KHRhcmdldC5sZW5ndGgoKSA+IDApOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXRyZyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpdmFyID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyh2YXJpYW50KTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHRhcmdldHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBzcGVjREFHLnB1dChjaXNyYywgdGFyZ2V0cyk7CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9yIHZhcmlhbnRzID0gKFZlY3RvcikgdGFyZ2V0cy5nZXQoY2l0cmcpOworICAgICAgICBpZiAodmFyaWFudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgdmFyaWFudHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICB0YXJnZXRzLnB1dChjaXRyZywgdmFyaWFudHMpOworICAgICAgICB9CisgICAgICAgIC8vIGFzc2VydChOT19WQVJJQU5UID09ICIiKTsKKyAgICAgICAgLy8gV2UgYWRkIHRoZSB2YXJpYW50IHN0cmluZy4gIElmIGl0IGlzIHRoZSBzcGVjaWFsICJubyB2YXJpYW50IgorICAgICAgICAvLyBzdHJpbmcsIHRoYXQgaXMsIHRoZSBlbXB0eSBzdHJpbmcsIHdlIGFkZCBpdCBhdCBwb3NpdGlvbiB6ZXJvLgorICAgICAgICBpZiAoIXZhcmlhbnRzLmNvbnRhaW5zKGNpdmFyKSkgeworICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgdmFyaWFudHMuYWRkRWxlbWVudChjaXZhcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhcmlhbnRzLmluc2VydEVsZW1lbnRBdChjaXZhciwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgZnJvbSB0aGUgc3BlY0RBRy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVtb3ZlU1RWKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNvdXJjZS5sZW5ndGgoKSA+IDApOworICAgICAgICAvLyBhc3NlcnQodGFyZ2V0Lmxlbmd0aCgpID4gMCk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXNyYyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoc291cmNlKTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpdHJnID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyh0YXJnZXQpOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2l2YXIgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHZhcmlhbnQpOworICAgICAgICBIYXNodGFibGUgdGFyZ2V0cyA9IChIYXNodGFibGUpIHNwZWNEQUcuZ2V0KGNpc3JjKTsKKyAgICAgICAgaWYgKHRhcmdldHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuIGZvciB2YWxpZCBzLXQvdgorICAgICAgICB9CisgICAgICAgIFZlY3RvciB2YXJpYW50cyA9IChWZWN0b3IpIHRhcmdldHMuZ2V0KGNpdHJnKTsKKyAgICAgICAgaWYgKHZhcmlhbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiBmb3IgdmFsaWQgcy10L3YKKyAgICAgICAgfQorICAgICAgICB2YXJpYW50cy5yZW1vdmVFbGVtZW50KGNpdmFyKTsKKyAgICAgICAgaWYgKHZhcmlhbnRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXRzLnJlbW92ZShjaXRyZyk7IC8vIHNob3VsZCBkZWxldGUgdmFyaWFudHMKKyAgICAgICAgICAgIGlmICh0YXJnZXRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3BlY0RBRy5yZW1vdmUoY2lzcmMpOyAvLyBzaG91bGQgZGVsZXRlIHRhcmdldHMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gZmluZCBhIHNvdXJjZS10YXJnZXQvdmFyaWFudCBpbiB0aGUgZHluYW1pYyByZWdpc3RyeQorICAgICAqIHN0b3JlLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkR5bmFtaWNTdG9yZShTcGVjIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZyBJRCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzcmMuZ2V0KCksIHRyZy5nZXQoKSwgdmFyaWFudCk7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJbkR5bmFtaWNTdG9yZToiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChPYmplY3RbXSkgcmVnaXN0cnkuZ2V0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgaW4gdGhlIHN0YXRpYyBsb2NhbGUKKyAgICAgKiByZXNvdXJjZSBzdG9yZS4gIERvIG5vdCBwZXJmb3JtIGZhbGxiYWNrLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIE9uIHN1Y2Nlc3MsIGNyZWF0ZSBhIG5ldyBlbnRyeSBvYmplY3QsIHJlZ2lzdGVyIGl0IGluIHRoZSBkeW5hbWljCisgICAgICogc3RvcmUsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIGl0LCBidXQgZG8gbm90IG1ha2UgaXQgcHVibGljIC0tCisgICAgICoganVzdCBiZWNhdXNlIHNvbWVvbmUgcmVxdWVzdGVkIHNvbWV0aGluZywgd2UgZG8gbm90IGV4cGFuZCB0aGUKKyAgICAgKiBhdmFpbGFibGUgSUQgbGlzdCAob3Igc3BlYyBEQUcpLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZEluU3RhdGljU3RvcmUoU3BlYyBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLlNUVnRvSUQoc3JjLmdldCgpLCB0cmcuZ2V0KCksIHZhcmlhbnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJblN0YXRpY1N0b3JlOiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEKTsKKyAgICAgICAgfQorICAgICAgICBPYmplY3RbXSBlbnRyeSA9IG51bGw7CisgICAgICAgIGlmIChzcmMuaXNMb2NhbGUoKSkgeworICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5CdW5kbGUoc3JjLCB0cmcsIHZhcmlhbnQsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGVsc2UgaWYgKHRyZy5pc0xvY2FsZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9IGZpbmRJbkJ1bmRsZSh0cmcsIHNyYywgdmFyaWFudCwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBmb3VuZCBhbiBlbnRyeSwgc3RvcmUgaXQgaW4gdGhlIEhhc2h0YWJsZSBmb3IgbmV4dAorICAgICAgICAvLyB0aW1lLgorICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVnaXN0ZXJFbnRyeShzcmMuZ2V0VG9wKCksIHRyZy5nZXRUb3AoKSwgdmFyaWFudCwgZW50cnksIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYW4gZW50cnkgaW4gYSBzaW5nbGUgcmVzb3VyY2UgYnVuZGxlLiAgVGhpcyBpcworICAgICAqIGEgb25lLXNpZGVkIGxvb2t1cC4gIGZpbmRJblN0YXRpY1N0b3JlKCkgcGVyZm9ybXMgdXAgdG8gdHdvIHN1Y2gKKyAgICAgKiBsb29rdXBzLCBvbmUgZm9yIHRoZSBzb3VyY2UsIGFuZCBvbmUgZm9yIHRoZSB0YXJnZXQuCisgICAgICoKKyAgICAgKiBEbyBub3QgcGVyZm9ybSBmYWxsYmFjay4gIFJldHVybiAwIG9uIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBPbiBzdWNjZXNzLCBjcmVhdGUgYSBuZXcgRW50cnkgb2JqZWN0LCBwb3B1bGF0ZSBpdCwgYW5kIHJldHVybiBpdC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkJ1bmRsZShTcGVjIHNwZWNUb09wZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyBzcGVjVG9GaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNwZWNUb09wZW4uaXNMb2NhbGUoKSk7CisgICAgICAgIFJlc291cmNlQnVuZGxlIHJlcyA9IHNwZWNUb09wZW4uZ2V0QnVuZGxlKCk7CisKKyAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIGJ1bmRsZSdzIGxvY2FsZSBkb2VzIG5vdCBtYXRjaAorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaXRlcmF0aW9uIGZvciB0aGUgc3BlYy4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgcGFzcz0wOyBwYXNzPDI7ICsrcGFzcykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRhZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIC8vIEZpcnN0IHRyeSBlaXRoZXIgVHJhbnNsaXRlcmF0b3JUb194eHggb3IKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVGcm9tX3h4eCwgdGhlbiB0cnkgdGhlIGJpZGlyZWN0aW9uYWwKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVfeHh4LiAgVGhpcyBwcmVjZWRlbmNlIG9yZGVyIGlzIGFyYml0cmFyeQorICAgICAgICAgICAgLy8gYnV0IG11c3QgYmUgY29uc2lzdGVudCBhbmQgZG9jdW1lbnRlZC4KKyAgICAgICAgICAgIGlmIChwYXNzID09IDApIHsKKyAgICAgICAgICAgICAgICB0YWcuYXBwZW5kKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFuc2xpdGVyYXRlVG8iIDogIlRyYW5zbGl0ZXJhdGVGcm9tIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRhZy5hcHBlbmQoIlRyYW5zbGl0ZXJhdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRhZy5hcHBlbmQoc3BlY1RvRmluZC5nZXQoKS50b1VwcGVyQ2FzZSgpKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgVHJhbnNsaXRlcmF0ZSpfeHh4IHJlc291cmNlIGlzIGFuIGFycmF5IG9mCisgICAgICAgICAgICAgICAgLy8gc3RyaW5ncyBvZiB0aGUgZm9ybWF0IHsgPHYwPiwgPHIwPiwgLi4uIH0uICBFYWNoCisgICAgICAgICAgICAgICAgLy8gPHZpPiBpcyBhIHZhcmlhbnQgbmFtZSwgYW5kIGVhY2ggPHJpPiBpcyBhIHJ1bGUuCisgICAgICAgICAgICAgICAgU3RyaW5nW10gc3VicmVzID0gcmVzLmdldFN0cmluZ0FycmF5KHRhZy50b1N0cmluZygpKTsKKworICAgICAgICAgICAgICAgIC8vIGFzc2VydChzdWJyZXMgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgLy8gYXNzZXJ0KHN1YnJlcy5sZW5ndGggJSAyID09IDApOworICAgICAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPHN1YnJlcy5sZW5ndGg7IGkrPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VicmVzW2ldLmVxdWFsc0lnbm9yZUNhc2UodmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChpIDwgc3VicmVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGEgbWF0Y2gsIG9yIHRoZXJlIGlzIG5vIHZhcmlhbnQgYW5kIGkgPT0gMC4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzdWNjZWVkZWQgaW4gbG9hZGluZyBhIHN0cmluZyBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBsb2NhbGUgcmVzb3VyY2VzLiAgUmV0dXJuIHRoZSBydWxlIHN0cmluZyB3aGljaAorICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGl0c2VsZiBiZWNvbWUgdGhlIHJlZ2lzdHJ5IGVudHJ5LgorCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBkaXJlY3Rpb24gaXMgYWx3YXlzIGZvcndhcmQgZm9yIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRlVG9feHh4IGFuZCBUcmFuc2xpdGVyYXRlRnJvbV94eHgKKyAgICAgICAgICAgICAgICAgICAgLy8gaXRlbXM7IHRob3NlIGFyZSB1bmlkaXJlY3Rpb25hbCBmb3J3YXJkIHJ1bGVzLgorICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGJpZGlyZWN0aW9uYWwgVHJhbnNsaXRlcmF0ZV94eHggaXRlbXMsCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkaXJlY3Rpb24gaXMgdGhlIHZhbHVlIHBhc3NlZCBpbiB0byB0aGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgICBpbnQgZGlyID0gKHBhc3MgPT0gMCkgPyBUcmFuc2xpdGVyYXRvci5GT1JXQVJEIDogZGlyZWN0aW9uOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmV3IExvY2FsZUVudHJ5KHN1YnJlc1tpKzFdLCBkaXIpIH07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtaXNzaW5nIHJlc291cmNlOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSB3ZSBoYWQgYSBtaXNzaW5nIHJlc291cmNlIGV4Y2VwdGlvbiBvciB3ZQorICAgICAgICAvLyBmYWlsZWQgdG8gZmluZCBhIGRlc2lyZWQgdmFyaWFudC4KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAgQ2FsbHMgMy1hcmcgZmluZCgpLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZChTdHJpbmcgSUQpIHsKKyAgICAgICAgU3RyaW5nW10gc3R2ID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5JRHRvU1RWKElEKTsKKyAgICAgICAgcmV0dXJuIGZpbmQoc3R2WzBdLCBzdHZbMV0sIHN0dlsyXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVG9wLWxldmVsIGZpbmQgbWV0aG9kLiAgQXR0ZW1wdCB0byBmaW5kIGEgc291cmNlLXRhcmdldC92YXJpYW50IGluCisgICAgICogZWl0aGVyIHRoZSBkeW5hbWljIG9yIHRoZSBzdGF0aWMgKGxvY2FsZSByZXNvdXJjZSkgc3RvcmUuICBQZXJmb3JtCisgICAgICogZmFsbGJhY2suCisgICAgICoKKyAgICAgKiBMb29rdXAgc2VxdWVuY2UgZm9yIHNzX1NTX1NTUy10dF9UVF9UVFQvdjoKKyAgICAgKgorICAgICAqICAgc3NfU1NfU1NTLXR0X1RUX1RUVC92IC0tIGluIGhhc2h0YWJsZQorICAgICAqICAgc3NfU1NfU1NTLXR0X1RUX1RUVC92IC0tIGluIHNzX1NTX1NTUyAobm8gZmFsbGJhY2spCisgICAgICoKKyAgICAgKiAgICAgcmVwZWF0IHdpdGggdCA9IHR0X1RUX1RUVCwgdHRfVFQsIHR0LCBhbmQgdHNjcmlwdAorICAgICAqCisgICAgICogICAgIHNzX1NTX1NTUy10LyoKKyAgICAgKiAgICAgc3NfU1MtdC8qCisgICAgICogICAgIHNzLXQvKgorICAgICAqICAgICBzc2NyaXB0LXQvKgorICAgICAqCisgICAgICogSGVyZSAqIG1hdGNoZXMgdGhlIGZpcnN0IHZhcmlhbnQgbGlzdGVkLgorICAgICAqCisgICAgICogQ2FsbGVyIGRvZXMgTk9UIG93biByZXR1cm5lZCBvYmplY3QuICBSZXR1cm4gMCBvbiBmYWlsdXJlLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZChTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCkgeworCisgICAgICAgIFNwZWMgc3JjID0gbmV3IFNwZWMoc291cmNlKTsKKyAgICAgICAgU3BlYyB0cmcgPSBuZXcgU3BlYyh0YXJnZXQpOworICAgICAgICBPYmplY3RbXSBlbnRyeSA9IG51bGw7CisKKyAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgIT0gMCkgeworCisgICAgICAgICAgICAvLyBTZWVrIGV4YWN0IG1hdGNoIGluIGhhc2h0YWJsZQorICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5EeW5hbWljU3RvcmUoc3JjLCB0cmcsIHZhcmlhbnQpOworICAgICAgICAgICAgaWYgKGVudHJ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFNlZWsgZXhhY3QgbWF0Y2ggaW4gbG9jYWxlIHJlc291cmNlcworICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5TdGF0aWNTdG9yZShzcmMsIHRyZywgdmFyaWFudCk7CisgICAgICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIHNyYy5yZXNldCgpOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIFNlZWsgbWF0Y2ggaW4gaGFzaHRhYmxlCisgICAgICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5EeW5hbWljU3RvcmUoc3JjLCB0cmcsIE5PX1ZBUklBTlQpOworICAgICAgICAgICAgICAgIGlmIChlbnRyeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBTZWVrIG1hdGNoIGluIGxvY2FsZSByZXNvdXJjZXMKKyAgICAgICAgICAgICAgICBlbnRyeSA9IGZpbmRJblN0YXRpY1N0b3JlKHNyYywgdHJnLCBOT19WQVJJQU5UKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghc3JjLmhhc0ZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNyYy5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRyZy5oYXNGYWxsYmFjaygpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cmcubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYW4gRW50cnkgb2JqZWN0LCBpbnN0YW50aWF0ZSBpdC4gIENhbGxlciBvd25zIHJlc3VsdC4gIFJldHVybgorICAgICAqIDAgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIFJldHVybiBhIG5vbi1lbXB0eSBhbGlhc1JldHVybiB2YWx1ZSBpZiB0aGUgSUQgcG9pbnRzIHRvIGFuIGFsaWFzLgorICAgICAqIFdlIGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBvdXJzZWx2ZXMgYmVjYXVzZSB0aGUgYWxpYXMgbWF5IGNvbnRhaW4KKyAgICAgKiBmaWx0ZXJzIG9yIGNvbXBvdW5kcywgd2hpY2ggd2UgZG8gbm90IHVuZGVyc3RhbmQuICBDYWxsZXIgc2hvdWxkCisgICAgICogbWFrZSBhbGlhc1JldHVybiBlbXB0eSBiZWZvcmUgY2FsbGluZy4KKyAgICAgKgorICAgICAqIFRoZSBlbnRyeSBvYmplY3QgaXMgYXNzdW1lZCB0byByZXNpZGUgaW4gdGhlIGR5bmFtaWMgc3RvcmUuICBJdCBtYXkgYmUKKyAgICAgKiBtb2RpZmllZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIGluc3RhbnRpYXRlRW50cnkoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBlbnRyeVdyYXBwZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBhbGlhc1JldHVybikgeworICAgICAgICAvLyBXZSBhY3R1YWxseSBtb2RpZnkgdGhlIGVudHJ5IG9iamVjdCBpbiBzb21lIGNhc2VzLiAgSWYgaXQKKyAgICAgICAgLy8gaXMgYSBzdHJpbmcsIHdlIG1heSBwYXJ0aWFsbHkgcGFyc2UgaXQgYW5kIHR1cm4gaXQgaW50byBhCisgICAgICAgIC8vIG1vcmUgcHJvY2Vzc2VkIHByZWN1cnNvci4gIFRoaXMgbWFrZXMgdGhlIG5leHQKKyAgICAgICAgLy8gaW5zdGFudGlhdGlvbiBmYXN0ZXIgYW5kIGFsbG93cyBzaGFyaW5nIG9mIGltbXV0YWJsZQorICAgICAgICAvLyBjb21wb25lbnRzIGxpa2UgdGhlIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgb2JqZWN0cy4KKyAgICAgICAgLy8gRm9yIHRoaXMgcmVhc29uLCB0aGUgZW50cnkgb2JqZWN0IGlzIGFuIE9iamVjdFtdIG9mIGxlbmd0aAorICAgICAgICAvLyAxLgorCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIE9iamVjdCBlbnRyeSA9IGVudHJ5V3JhcHBlclswXTsKKworICAgICAgICAgICAgaWYgKGVudHJ5IGluc3RhbmNlb2YgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSkgeworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSA9IChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKSBlbnRyeTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKElELCBkYXRhLCBudWxsKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkgaW5zdGFuY2VvZiBDbGFzcykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoVHJhbnNsaXRlcmF0b3IpICgoQ2xhc3MpIGVudHJ5KS5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZTIpIHt9CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgQWxpYXNFbnRyeSkgeworICAgICAgICAgICAgICAgIGFsaWFzUmV0dXJuLmFwcGVuZCgoKEFsaWFzRW50cnkpIGVudHJ5KS5hbGlhcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkpIGVudHJ5KS5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgQ29tcG91bmRSQlRFbnRyeSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKENvbXBvdW5kUkJURW50cnkpIGVudHJ5KS5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeSBpbnN0YW5jZW9mIFRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgZW50cnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgZW50cnkgdHlwZSBtdXN0IGJlIGVpdGhlciBSVUxFU19GT1JXQVJEIG9yCisgICAgICAgICAgICAvLyBSVUxFU19SRVZFUlNFLiAgV2UgcHJvY2VzcyB0aGUgcnVsZSBkYXRhIGludG8gYQorICAgICAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3JSdWxlRGF0YSBvYmplY3QsIGFuZCBwb3NzaWJseSBhbHNvIGludG8gYW4KKyAgICAgICAgICAgIC8vIC5pZCBoZWFkZXIgYW5kL29yIGZvb3Rlci4gIFRoZW4gd2UgbW9kaWZ5IHRoZSByZWdpc3RyeSB3aXRoCisgICAgICAgICAgICAvLyB0aGUgcGFyc2VkIGRhdGEgYW5kIHJldHJ5LgorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIgPSBuZXcgVHJhbnNsaXRlcmF0b3JQYXJzZXIoKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJlc291cmNlRW50cnkgcmUgPSAoUmVzb3VyY2VFbnRyeSkgZW50cnk7CisgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlKHJlLnJlc291cmNlLCByZS5kaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBwdWxsIGEgcnVsZSBmcm9tIGEgbG9jYWxlIHJlc291cmNlIGJ1bmRsZSBpdCB3aWxsCisgICAgICAgICAgICAgICAgLy8gYmUgYSBMb2NhbGVFbnRyeS4KKyAgICAgICAgICAgICAgICBMb2NhbGVFbnRyeSBsZSA9IChMb2NhbGVFbnRyeSkgZW50cnk7CisgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlKGxlLnJ1bGUsIGxlLmRpcmVjdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlc2V0IGVudHJ5IHRvIHNvbWV0aGluZyB0aGF0IHdlIHByb2Nlc3MgYXQgdGhlCisgICAgICAgICAgICAvLyB0b3Agb2YgdGhlIGxvb3AsIHRoZW4gbG9vcCBiYWNrIHRvIHRoZSB0b3AuICBBcyBsb25nIGFzIHdlCisgICAgICAgICAgICAvLyBkbyB0aGlzLCB3ZSBvbmx5IGxvb3AgdGhyb3VnaCB0d2ljZSBhdCBtb3N0LgorICAgICAgICAgICAgLy8gTk9URTogVGhlIGxvZ2ljIGhlcmUgbWF0Y2hlcyB0aGF0IGluCisgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoKS4KKyAgICAgICAgICAgIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMCAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIE5vIGlkQmxvY2ssIG5vIGRhdGEgLS0gdGhpcyBpcyBqdXN0IGFuCisgICAgICAgICAgICAgICAgLy8gYWxpYXMgZm9yIE51bGwKKyAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQWxpYXNFbnRyeShOdWxsVHJhbnNsaXRlcmF0b3IuX0lEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAwICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgLy8gTm8gaWRCbG9jaywgZGF0YSAhPSAwIC0tIHRoaXMgaXMgYW4KKyAgICAgICAgICAgICAgICAvLyBvcmRpbmFyeSBSQlRfREFUQQorICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IHBhcnNlci5kYXRhVmVjdG9yLmdldCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAxICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWRCbG9jaywgbm8gZGF0YSAtLSB0aGlzIGlzIGFuIGFsaWFzLiAgVGhlIElEIGhhcworICAgICAgICAgICAgICAgIC8vIGJlZW4gbXVuZ2VkIGZyb20gcmV2ZXJzZSBpbnRvIGZvcndhcmQgbW9kZSwgaWYKKyAgICAgICAgICAgICAgICAvLyBuZWNlc3NhcnksIHNvIGluc3RhbnRpYXRlIHRoZSBJRCBpbiB0aGUgZm9yd2FyZAorICAgICAgICAgICAgICAgIC8vIGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAocGFyc2VyLmNvbXBvdW5kRmlsdGVyICE9IG51bGwpCisgICAgICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IG5ldyBBbGlhc0VudHJ5KHBhcnNlci5jb21wb3VuZEZpbHRlci50b1BhdHRlcm4oZmFsc2UpICsgIjsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQWxpYXNFbnRyeSgoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQ29tcG91bmRSQlRFbnRyeShJRCwgcGFyc2VyLmlkQmxvY2tWZWN0b3IsIHBhcnNlci5kYXRhVmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmNvbXBvdW5kRmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwODUzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNDA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJBcnJheUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworCisvKioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbiBvbiB0ZXh0IG9iamVjdHMuVGhpcyBpcyBhbiAKKyAqIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uIGFuZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IAorICogb2JqZWN0LiBGb3J3YXJkIGl0ZXJhdGlvbiBpcyBkb25lIHdpdGggcG9zdC1pbmNyZW1lbnQgYW5kIGJhY2t3YXJkIGl0ZXJhdGlvbiAKKyAqIGlzIGRvbmUgd2l0aCBwcmUtZGVjcmVtZW50IHNlbWFudGljcywgd2hpbGUgdGhlIAorICogPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBpbnRlcmZhY2UgbWV0aG9kcyBwcm92aWRlZCBmb3J3YXJkIAorICogaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBwcmUtZGVjcmVtZW50IAorICogc2VtYW50aWNzLiBUaGlzIEFQSSBpcyBtb3JlIGVmZmljaWVudCBmb3IgZm9yd2FyZCBpdGVyYXRpb24gb3ZlciBjb2RlIHBvaW50cy4KKyAqIFRoZSBvdGhlciBtYWpvciBkaWZmZXJlbmNlIGlzIHRoYXQgdGhpcyBBUEkgY2FuIGRvIGJvdGggY29kZSB1bml0IGFuZCBjb2RlIHBvaW50IAorICogaXRlcmF0aW9uLCA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGNhbiBvbmx5IGl0ZXJhdGUgb3ZlciAKKyAqIGNvZGUgdW5pdHMgYW5kIGlzIGxpbWl0ZWQgdG8gQk1QICgwIC0gMHhGRkZGKQorICogQGF1dGhvciBSYW0KKyAqIEBzdGFibGUgSUNVIDIuNAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVUNoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgQ2xvbmVhYmxlLFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogUHJvdGVjdGVkIGRlZmF1bHQgY29uc3RydWN0b3IgZm9yIHRoZSBzdWJjbGFzc2VzCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJJdGVyYXRvcigpeworICAgIH0KKyAgICAKKyAgICAvLyBzdGF0aWMgZmluYWwgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlVDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGEgCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIGEgdmFsaWQgc291cmNlIGFzIGEgPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IG9iamVjdAorICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoUmVwbGFjZWFibGUgc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VUNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gYSAKKyAgICAgKiBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIFVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgYXJndW1lbnQgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlckl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBzb3VyY2UpeworICAgICAgICByZXR1cm4gbmV3IFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHNvdXJjZSBhbiBhcnJheSBvZiBVVEYtMTYgY29kZSB1bml0cworICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoY2hhcltdIHNvdXJjZSl7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShzb3VyY2UsMCxzb3VyY2UubGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlVDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGEgCisgICAgICogc291cmNlIGNoYXJhY3RlciBhcnJheS4KKyAgICAgKiBAcGFyYW0gc291cmNlIGFuIGFycmF5IG9mIFVURi0xNiBjb2RlIHVuaXRzCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJJdGVyYXRvciBnZXRJbnN0YW5jZShjaGFyW10gc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCl7CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJBcnJheUl0ZXJhdG9yKHNvdXJjZSxzdGFydCxsaW1pdCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIHNvdXJjZSBTdHJpbmdCdWZmZXIuCisgICAgICogQHBhcmFtIHNvdXJjZSBhbiBzdHJpbmcgYnVmZmVyIG9mIFVURi0xNiBjb2RlIHVuaXRzCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJJdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmdCdWZmZXIgc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYSB2YWxpZCBDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QuCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoc291cmNlKTsKKyAgICB9CisgICAgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBmb3IKKyAgICAgKiB0aGUgdW5kZXJseWluZyB0ZXh0IG9mIHRoaXMgaXRlcmF0b3IuICBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMKKyAgICAgKiBpbmRlcGVuZGVudCBvZiB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0Q2hhcmFjdGVySXRlcmF0b3IoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHRoaXMpOworICAgIH0gICAgCisgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgYXQgdGhlIGN1cnJlbnQgaW5kZXguICBJZiBpbmRleCBpcyBvdXQKKyAgICAgKiBvZiByYW5nZSwgcmV0dXJucyBET05FLiAgSW5kZXggaXMgbm90IGNoYW5nZWQuCisgICAgICogQHJldHVybiBjdXJyZW50IGNvZGUgdW5pdAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY3VycmVudCgpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvZGVwb2ludCBhdCB0aGUgY3VycmVudCBpbmRleC4KKyAgICAgKiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBpbnZhbGlkLCBET05FIGlzIHJldHVybmVkLgorICAgICAqIElmIHRoZSBjdXJyZW50IGluZGV4IHBvaW50cyB0byBhIGxlYWQgc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgYSBmb2xsb3dpbmcKKyAgICAgKiB0cmFpbCBzdXJyb2dhdGUsIHRoZW4gdGhlIGNvZGUgcG9pbnQgaXMgcmV0dXJuZWQuICBPdGhlcndpc2UsIHRoZSBjb2RlCisgICAgICogdW5pdCBhdCBpbmRleCBpcyByZXR1cm5lZC4gIEluZGV4IGlzIG5vdCBjaGFuZ2VkLiAKKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50Q29kZVBvaW50KCl7CisgICAgICAgIGludCBjaCA9IGN1cnJlbnQoKTsKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSl7CisgICAgICAgICAgICAvLyBhZHZhbmNlIHRoZSBpbmRleCB0byBnZXQgdGhlCisgICAgICAgICAgICAvLyBuZXh0IGNvZGUgcG9pbnQKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIC8vIGR1ZSB0byBwb3N0IGluY3JlbWVudCBzZW1hbnRpY3MKKyAgICAgICAgICAgIC8vIGN1cnJlbnQoKSBhZnRlciBuZXh0KCkgYWN0dWFsbHkKKyAgICAgICAgICAgIC8vIHJldHVybnMgdGhlIGNoYXIgd2Ugd2FudAorICAgICAgICAgICAgaW50IGNoMiA9IGN1cnJlbnQoKTsKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgc2hvdWxkIG5ldmVyIGNoYW5nZQorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgaW5kZXggc28gYmFjayBvZmYKKyAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgYSBzdXJyb2dhdGUgcGFpciAKKyAgICAgICAgICAgICAgICAvLyByZXR1cm4gdGhlIGNvZGVwb2ludAorICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaCwoY2hhciljaDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICogQHJldHVybiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExlbmd0aCgpOworCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBpbmRleCBpbiB0ZXh0LgorICAgICAqIEByZXR1cm4gY3VycmVudCBpbmRleCBpbiB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0SW5kZXgoKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGMTYgY29kZSB1bml0IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dAorICAgICAqIGNvZGUgdW5pdCAocG9zdC1pbmNyZW1lbnQgc2VtYW50aWNzKS4gIElmIGluZGV4IGlzIG91dCBvZgorICAgICAqIHJhbmdlLCBET05FIGlzIHJldHVybmVkLCBhbmQgdGhlIGl0ZXJhdG9yIGlzIHJlc2V0IHRvIHRoZSBsaW1pdAorICAgICAqIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgVVRGMTYgY29kZSB1bml0LCBvciBET05FIGlmIHRoZSBpbmRleCBpcyBhdCB0aGUgbGltaXQKKyAgICAgKiAgICAgICAgIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBuZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dCBjb2RlCisgICAgICogcG9pbnQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBkb2VzIG5vdCBwb2ludCB0byBhCisgICAgICogdmFsaWQgc3Vycm9nYXRlIHBhaXIsIHRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcworICAgICAqIDxjb2RlPm5leHQoKTxjb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMgaW5jcmVtZW50ZWQgcGFzdAorICAgICAqIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5IHRoZSBwYWlyCisgICAgICogaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlcG9pbnQgaW4gdGV4dCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQKKyAgICAgKiAgICAgICAgIHRoZSBsaW1pdCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENvZGVQb2ludCgpeworICAgICAgICBpbnQgY2gxID0gbmV4dCgpOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gxKSl7CisgICAgICAgICAgICBpbnQgY2gyID0gbmV4dCgpOworICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDIpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpY2gxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaDIpOworICAgICAgICAgICAgfWVsc2UgaWYgKGNoMiAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgLy8gdW5tYXRjaGVkIHN1cnJvZ2F0ZSBzbyBiYWNrIG91dAorICAgICAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNyZW1lbnQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlCisgICAgICogdGV4dCwgYW5kIHJldHVybiBpdCAocHJlLWRlY3JlbWVudCBzZW1hbnRpY3MpLiAgSWYgdGhlCisgICAgICogcmVzdWx0aW5nIGluZGV4IGlzIGxlc3MgdGhhbiAwLCB0aGUgaW5kZXggaXMgcmVzZXQgdG8gMCBhbmQKKyAgICAgKiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgdGV4dCwgb3IgRE9ORSBpZiB0aGUgbmV3CisgICAgICogICAgICAgICBpbmRleCBpcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBwcmV2aW91cygpOworCisgICAgCisgICAgLyoqCisgICAgICogUmV0cmVhdCB0byB0aGUgc3RhcnQgb2YgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIHRleHQsCisgICAgICogYW5kIHJldHVybiBpdCAocHJlLWRlY3JlbWVudCBzZW1hbnRpY3MpLiAgSWYgdGhlIGluZGV4IGlzIG5vdAorICAgICAqIHByZWNlZWRlZCBieSBhIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyLCB0aGUgYmVoYXZpb3IgaXMgdGhlIHNhbWUKKyAgICAgKiBhcyA8Y29kZT5wcmV2aW91cygpPC9jb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMKKyAgICAgKiBkZWNyZW1lbnRlZCB0byB0aGUgc3RhcnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLCBhbmQgdGhlIGNvZGUKKyAgICAgKiBwb2ludCByZXByZXNlbnRlZCBieSB0aGUgcGFpciBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSBuZXcKKyAgICAgKiAgICAgICAgIGluZGV4IGlzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40ICAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzQ29kZVBvaW50KCl7CisgICAgICAgIGludCBjaDEgPSBwcmV2aW91cygpOworICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMSkpeworICAgICAgICAgICAgaW50IGNoMiA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKWNoMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpY2gxKTsKKyAgICAgICAgICAgIH1lbHNlIGlmIChjaDIgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgIC8vdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSBzbyBiYWNrIG91dAorICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0gICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2gxOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGluZGV4IHRvIHRoZSBzcGVjaWZpZWQgaW5kZXggaW4gdGhlIHRleHQuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBpbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0SW5kZXgoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaW5kZXggdG8gdGhlIGxpbWl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRvTGltaXQoKSB7CisgICAgICAgIHNldEluZGV4KGdldExlbmd0aCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpbmRleCB0byB0aGUgc3RhcnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VG9TdGFydCgpIHsKKyAgICAgICAgc2V0SW5kZXgoMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbHMgdGhlIGJ1ZmZlciB3aXRoIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBvZiB0aGUgaXRlcmF0b3IKKyAgICAgKiBJZiB0aGUgYnVmZmVyIGNhcGFjaXR5IGlzIG5vdCBlbm91Z2ggYSBleGNlcHRpb24gaXMgdGhyb3duLiBUaGUgY2FwYWNpdHkKKyAgICAgKiBvZiB0aGUgZmlsbCBpbiBidWZmZXIgc2hvdWxkIGF0IGxlYXN0IGJlIGVxdWFsIHRvIGxlbmd0aCBvZiB0ZXh0IGluIHRoZSAKKyAgICAgKiBpdGVyYXRvciBvYnRhaW5lZCBieSBjYWxsaW5nIDxjb2RlPmdldExlbmd0aCgpPC9jb2RlKS4KKyAgICAgKiA8Yj5Vc2FnZTo8L2I+CisgICAgICogCisgICAgICogPGNvZGU+CisgICAgICogPHByZT4KKyAgICAgKiAgICAgICAgIFVDaGFjdGVySXRlcmF0b3IgaXRlciA9IG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGV4dCk7CisgICAgICogICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICogICAgICAgICBpdGVyLmdldFRleHQoYnVmKTsKKyAgICAgKiAgICAgICAgIAorICAgICAqICAgICAgICAgT1IKKyAgICAgKiAgICAgICAgIGNoYXJbXSBidWY9IG5ldyBjaGFyWzFdOworICAgICAqICAgICAgICAgaW50IGxlbiA9IDA7CisgICAgICogICAgICAgICBmb3IoOzspeworICAgICAqICAgICAgICAgICAgIHRyeXsKKyAgICAgKiAgICAgICAgICAgICAgICAgbGVuID0gaXRlci5nZXRUZXh0KGJ1Zik7CisgICAgICogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAqICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAqICAgICAgICAgICAgICAgICBidWYgPSBuZXcgY2hhcltpdGVyLmdldExlbmd0aCgpXTsKKyAgICAgKiAgICAgICAgICAgICB9CisgICAgICogICAgICAgICB9CisgICAgICogPC9wcmU+CisgICAgICogPC9jb2RlPgorICAgICAqICAgICAgICAgICAgIAorICAgICAqIEBwYXJhbSBmaWxsSW4gYW4gYXJyYXkgb2YgY2hhcnMgdG8gZmlsbCB3aXRoIHRoZSB1bmRlcmx5aW5nIFVURi0xNiBjb2RlIAorICAgICAqICAgICAgICAgdW5pdHMuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSBhcnJheSB0byBzdGFydCBwdXR0aW5nIHRoZSBkYXRhLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGFkZGVkIHRvIGZpbGxJbiwgYXMgYSBjb252ZW5pZW5jZQorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kcyBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm90IGVub3VnaAorICAgICAqICAgICAgICAgICAgcm9vbSBhZnRlciBvZmZzZXQgaW4gdGhlIGFycmF5LCBvciBpZiBvZmZzZXQgPCAwLgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpOyAKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciA8Y29kZT5nZXRUZXh0KGNoYXJbXSwgaW50KT4vY29kZT4gdGhhdCBwcm92aWRlcworICAgICAqIGFuIG9mZnNldCBvZiAwLgorICAgICAqIEBwYXJhbSBmaWxsSW4gYW4gYXJyYXkgb2YgY2hhcnMgdG8gZmlsbCB3aXRoIHRoZSB1bmRlcmx5aW5nIFVURi0xNiBjb2RlIAorICAgICAqICAgICAgICAgdW5pdHMuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvZGUgdW5pdHMgYWRkZWQgdG8gZmlsbEluLCBhcyBhIGNvbnZlbmllbmNlCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzIGV4Y2VwdGlvbiBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCisgICAgICogICAgICAgICAgICByb29tIGluIHRoZSBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluKSB7CisgICAgICAgIHJldHVybiBnZXRUZXh0KGZpbGxJbiwgMCk7CisgICAgfQorICAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciByZXR1cm5pbmcgdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlIGFzIGFzIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlIGluIHRoZSBpdGVyYXRvciBhcyBhIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGV4dCgpIHsKKyAgICAgICAgY2hhcltdIHRleHQgPSBuZXcgY2hhcltnZXRMZW5ndGgoKV07CisgICAgICAgIGdldFRleHQodGV4dCk7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHRleHQpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBieSB0aGUgbnVtYmVyIG9mIGNvZGUgdW5pdHMKKyAgICAgKiBzcGVjaWZpZWQsIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIGRlcGVuZGluZyBvbiB0aGUgc2lnbgorICAgICAqIG9mIGRlbHRhIChwb3NpdGl2ZSBvciBuZWdhdGl2ZSByZXNwZWN0aXZlbHkpLiAgSWYgdGhlIHJlc3VsdGluZworICAgICAqIGluZGV4IHdvdWxkIGJlIGxlc3MgdGhhbiB6ZXJvLCB0aGUgaW5kZXggaXMgc2V0IHRvIHplcm8sIGFuZCBpZgorICAgICAqIHRoZSByZXN1bHRpbmcgaW5kZXggd291bGQgYmUgZ3JlYXRlciB0aGFuIGxpbWl0LCB0aGUgaW5kZXggaXMKKyAgICAgKiBzZXQgdG8gbGltaXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIHRvIG1vdmUgdGhlIGN1cnJlbnQKKyAgICAgKiAgICAgICAgICAgICAgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgbmV3IGluZGV4LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBpbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1vdmVJbmRleChpbnQgZGVsdGEpIHsKKyAgICAgICAgaW50IHggPSBNYXRoLm1heCgwLCBNYXRoLm1pbihnZXRJbmRleCgpICsgZGVsdGEsIGdldExlbmd0aCgpKSk7CisgICAgICAgIHNldEluZGV4KHgpOworICAgICAgICByZXR1cm4geDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBieSB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzCisgICAgICogc3BlY2lmaWVkLCBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCBkZXBlbmRpbmcgb24gdGhlIHNpZ24gb2YKKyAgICAgKiBkZWx0YSAocG9zaXRpdmUgb3IgbmVnYXRpdmUgcmVzcGVjdGl2ZWx5KS4gSWYgdGhlIGN1cnJlbnQgaW5kZXgKKyAgICAgKiBpcyBhdCBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGVuIHRoZSBmaXJzdCBhZGp1c3RtZW50IGlzIGJ5IGNvZGUKKyAgICAgKiB1bml0LCBhbmQgdGhlIHJlbWFpbmluZyBhZGp1c3RtZW50cyBhcmUgYnkgY29kZSBwb2ludHMuICBJZiB0aGUKKyAgICAgKiByZXN1bHRpbmcgaW5kZXggd291bGQgYmUgbGVzcyB0aGFuIHplcm8sIHRoZSBpbmRleCBpcyBzZXQgdG8KKyAgICAgKiB6ZXJvLCBhbmQgaWYgdGhlIHJlc3VsdGluZyBpbmRleCB3b3VsZCBiZSBncmVhdGVyIHRoYW4gbGltaXQsCisgICAgICogdGhlIGluZGV4IGlzIHNldCB0byBsaW1pdC4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIHRvIG1vdmUgdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgbmV3IGluZGV4ICAKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFuIGludmFsaWQgZGVsdGEgaXMgCisgICAgICogICAgICAgICAgICBzdXBwbGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbW92ZUNvZGVQb2ludEluZGV4KGludCBkZWx0YSl7CisgICAgICAgIGlmKGRlbHRhPjApeworICAgICAgICAgICAgd2hpbGUoZGVsdGE+MCAmJiBuZXh0Q29kZVBvaW50KCkgIT0gRE9ORSl7ZGVsdGEtLTt9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgd2hpbGUoZGVsdGE8MCAmJiBwcmV2aW91c0NvZGVQb2ludCgpICE9IERPTkUpe2RlbHRhKys7fQorICAgICAgICB9CisgICAgICAgIGlmKGRlbHRhIT0wKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvciwgaW5kZXBlbmRlbnQgZnJvbSBvdGhlciBpdGVyYXRvcnMuCisgICAgICogSWYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNsb25lIHRoZSBpdGVyYXRvciwgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gY29weSBvZiB0aGlzIGl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHRocm93cyBDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgfSAgIAorICAgIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9VRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTczMGI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEFuIGFic3RyYWN0IGNsYXNzIHRoYXQgZXh0ZW5kcyB7QGxpbmsgamF2YS50ZXh0LkZvcm1hdH0gdG8gcHJvdmlkZQorICogYWRkaXRpb25hbCBJQ1UgcHJvdG9jb2wsIHNwZWNpZmljYWxseSwgdGhlIDx0dD5nZXRMb2NhbGUoKTwvdHQ+CisgKiBBUEkuICBBbGwgSUNVIGZvcm1hdCBjbGFzc2VzIGFyZSBzdWJjbGFzc2VzIG9mIHRoaXMgY2xhc3MuCisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAqIEBhdXRob3Igd2VpdgorICogQGF1dGhvciBBbGFuIExpdQorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVUZvcm1hdCBleHRlbmRzIEZvcm1hdCB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTQ5NjQzOTA1MTU4NDAxNjQ0MTZMOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUZvcm1hdCgpIHt9CisKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmFlMDBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogSW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25seSBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGludGVyZmFjZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dhcmRzIGl0ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBzdHJlYW1zIHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisgKiBub3JtYWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNvZGUgY29kZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFsdWVzCisgKiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIDxjb2RlPmludDwvY29kZT4gZm9yIHRoZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9mIGEgZ2l2ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJzdXJyb2dhdGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29kZSB1bml0cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5IGRldGVybWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBtYXkgYmUgZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICogb3IgaXQgbWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGFuCisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUgdW5pdHMuCisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2ludCBhY2Nlc3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgcHJvdmlkZXMgbmV4dCgpIHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHRDb2RlUG9pbnQoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4dENvZGVQb2ludCgpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHRDb2RlUG9pbnQoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0Q29kZVBvaW50KCkuPC9wPgorICoKKyAqIFVzYWdlOgorICogPGNvZGU+IAorICogIHB1YmxpYyB2b2lkIGZ1bmN0aW9uMShVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIGl0KSB7CisgKiAgICAgaW50IGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dCgpKSE9VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiA8L2NvZGU+CisgKiA8L3A+CisgKiBAc3RhYmxlIElDVSAyLjQKKyAqCisgKi8KKworcHVibGljIGludGVyZmFjZSBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAgIAorICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kcyBvZiB0aGUgVVRGMTYgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGMTYgY29kZSB1bml0IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dAorICAgICAqIGNvZGUgdW5pdCAocG9zdC1pbmNyZW1lbnQgc2VtYW50aWNzKS4gIElmIGluZGV4IGlzIG91dCBvZgorICAgICAqIHJhbmdlLCBET05FIGlzIHJldHVybmVkLCBhbmQgdGhlIGl0ZXJhdG9yIGlzIHJlc2V0IHRvIHRoZSBsaW1pdAorICAgICAqIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgVVRGMTYgY29kZSB1bml0LCBvciBET05FIGlmIHRoZSBpbmRleCBpcyBhdCB0aGUgbGltaXQKKyAgICAgKiAgICAgICAgIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dCBjb2RlCisgICAgICogcG9pbnQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBkb2VzIG5vdCBwb2ludCB0byBhCisgICAgICogdmFsaWQgc3Vycm9nYXRlIHBhaXIsIHRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcworICAgICAqIDxjb2RlPm5leHQoKTxjb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMgaW5jcmVtZW50ZWQgcGFzdAorICAgICAqIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5IHRoZSBwYWlyCisgICAgICogaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlcG9pbnQgaW4gdGV4dCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQKKyAgICAgKiAgICAgICAgIHRoZSBsaW1pdCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENvZGVQb2ludCgpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNzk1YmY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YQpAQCAtMCwwICsxLDI4NTUgQEAKKy8vIyNoZWFkZXIKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKKworLyoqCisgKiA8cD5TdGFuZGFsb25lIHV0aWxpdHkgY2xhc3MgcHJvdmlkaW5nIFVURjE2IGNoYXJhY3RlciBjb252ZXJzaW9ucyBhbmQKKyAqIGluZGV4aW5nIGNvbnZlcnNpb25zLjwvcD4KKyAqIDxwPkNvZGUgdGhhdCB1c2VzIHN0cmluZ3MgYWxvbmUgcmFyZWx5IG5lZWQgbW9kaWZpY2F0aW9uLgorICogQnkgZGVzaWduLCBVVEYtMTYgZG9lcyBub3QgYWxsb3cgb3ZlcmxhcCwgc28gc2VhcmNoaW5nIGZvciBzdHJpbmdzIGlzIGEgc2FmZQorICogb3BlcmF0aW9uLiBTaW1pbGFybHksIGNvbmNhdGVuYXRpb24gaXMgYWx3YXlzIHNhZmUuIFN1YnN0cmluZ2luZyBpcyBzYWZlIGlmCisgKiB0aGUgc3RhcnQgYW5kIGVuZCBhcmUgYm90aCBvbiBVVEYtMzIgYm91bmRhcmllcy4gSW4gbm9ybWFsIGNvZGUsIHRoZSB2YWx1ZXMKKyAqIGZvciBzdGFydCBhbmQgZW5kIGFyZSBvbiB0aG9zZSBib3VuZGFyaWVzLCBzaW5jZSB0aGV5IGFyb3NlIGZyb20gb3BlcmF0aW9ucworICogbGlrZSBzZWFyY2hpbmcuIElmIG5vdCwgdGhlIG5lYXJlc3QgVVRGLTMyIGJvdW5kYXJpZXMgY2FuIGJlIGRldGVybWluZWQKKyAqIHVzaW5nIDxjb2RlPmJvdW5kcygpPC9jb2RlPi48L3A+CisgKiA8c3Ryb25nPkV4YW1wbGVzOjwvc3Ryb25nPgorICogPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlcyBpbGx1c3RyYXRlIHVzZSBvZiBzb21lIG9mIHRoZXNlIG1ldGhvZHMuCisgKiA8cHJlPgorICogLy8gaXRlcmF0aW9uIGZvcndhcmRzOiBPcmlnaW5hbAorICogZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBzLmxlbmd0aCgpOyArK2kpIHsKKyAqICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqCisgKiAvLyBpdGVyYXRpb24gZm9yd2FyZHM6IENoYW5nZXMgZm9yIFVURi0zMgorICogaW50IGNoOworICogZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBzLmxlbmd0aCgpOyBpKz1VVEYxNi5nZXRDaGFyQ291bnQoY2gpKSB7CisgKiAgICAgY2ggPSBVVEYxNi5jaGFyQXQocyxpKTsKKyAqICAgICBkb1NvbWV0aGluZ1dpdGgoY2gpOworICogfQorICoKKyAqIC8vIGl0ZXJhdGlvbiBiYWNrd2FyZHM6IE9yaWdpbmFsCisgKiBmb3IgKGludCBpID0gcy5sZW5ndGgoKSAtMTsgaSA+PSAwOyAtLWkpIHsKKyAqICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqCisgKiAvLyBpdGVyYXRpb24gYmFja3dhcmRzOiBDaGFuZ2VzIGZvciBVVEYtMzIKKyAqIGludCBjaDsKKyAqIGZvciAoaW50IGkgPSBzLmxlbmd0aCgpIC0xOyBpID4gMDsgaS09VVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICogICAgIGNoID0gVVRGMTYuY2hhckF0KHMsaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPHN0cm9uZz5Ob3Rlczo8L3N0cm9uZz4KKyAqIDx1bD4KKyAqICAgPGxpPgorICogICA8c3Ryb25nPk5hbWluZzo8L3N0cm9uZz4gRm9yIGNsYXJpdHksIEhpZ2ggYW5kIExvdyBzdXJyb2dhdGVzIGFyZSBjYWxsZWQKKyAqICAgPGNvZGU+TGVhZDwvY29kZT4gYW5kIDxjb2RlPlRyYWlsPC9jb2RlPiBpbiB0aGUgQVBJLCB3aGljaCBnaXZlcyBhIGJldHRlcgorICogICBzZW5zZSBvZiB0aGVpciBvcmRlcmluZyBpbiBhIHN0cmluZy4gPGNvZGU+b2Zmc2V0MTY8L2NvZGU+IGFuZAorICogICA8Y29kZT5vZmZzZXQzMjwvY29kZT4gYXJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggb2Zmc2V0cyB0byBVVEYtMTYKKyAqICAgYm91bmRhcmllcyB2cyBvZmZzZXRzIHRvIFVURi0zMiBib3VuZGFyaWVzLiA8Y29kZT5pbnQgY2hhcjMyPC9jb2RlPiBpcworICogICB1c2VkIHRvIGNvbnRhaW4gVVRGLTMyIGNoYXJhY3RlcnMsIGFzIG9wcG9zZWQgdG8gPGNvZGU+Y2hhcjE2PC9jb2RlPiwKKyAqICAgd2hpY2ggaXMgYSBVVEYtMTYgY29kZSB1bml0LgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgIDxzdHJvbmc+Um91bmR0cmlwcGluZyBPZmZzZXRzOjwvc3Ryb25nPiBZb3UgY2FuIGFsd2F5cyByb3VuZHRyaXAgZnJvbSBhCisgKiAgIFVURi0zMiBvZmZzZXQgdG8gYSBVVEYtMTYgb2Zmc2V0IGFuZCBiYWNrLiBCZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluCisgKiAgIHN0cnVjdHVyZSwgeW91IGNhbiByb3VuZHRyaXAgZnJvbSBhIFVURi0xNiBvZmZzZXQgdG8gYSBVVEYtMzIgb2Zmc2V0IGFuZAorICogICBiYWNrIGlmIGFuZCBvbmx5IGlmIDxjb2RlPmJvdW5kcyhzdHJpbmcsIG9mZnNldDE2KSAhPSBUUkFJTDwvY29kZT4uCisgKiAgIDwvbGk+CisgKiAgIDxsaT4KKyAqICAgIDxzdHJvbmc+RXhjZXB0aW9uczo8L3N0cm9uZz4gVGhlIGVycm9yIGNoZWNraW5nIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uCisgKiAgIGlmIGluZGljZXMgYXJlIG91dCBvZiBib3VuZHMuIE90aGVyIHRoYW4gdGhhbiB0aGF0LCBhbGwgbWV0aG9kcyB3aWxsCisgKiAgIGJlaGF2ZSByZWFzb25hYmx5LCBldmVuIGlmIHVubWF0Y2hlZCBzdXJyb2dhdGVzIG9yIG91dC1vZi1ib3VuZHMgVVRGLTMyCisgKiAgIHZhbHVlcyBhcmUgcHJlc2VudC4gPGNvZGU+VUNoYXJhY3Rlci5pc0xlZ2FsKCk8L2NvZGU+IGNhbiBiZSB1c2VkIHRvIGNoZWNrCisgKiAgIGZvciB2YWxpZGl0eSBpZiBkZXNpcmVkLgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgIDxzdHJvbmc+VW5tYXRjaGVkIFN1cnJvZ2F0ZXM6PC9zdHJvbmc+IElmIHRoZSBzdHJpbmcgY29udGFpbnMgdW5tYXRjaGVkCisgKiAgIHN1cnJvZ2F0ZXMsIHRoZW4gdGhlc2UgYXJlIGNvdW50ZWQgYXMgb25lIFVURi0zMiB2YWx1ZS4gVGhpcyBtYXRjaGVzCisgKiAgIHRoZWlyIGl0ZXJhdGlvbiBiZWhhdmlvciwgd2hpY2ggaXMgdml0YWwuIEl0IGFsc28gbWF0Y2hlcyBjb21tb24gZGlzcGxheQorICogICBwcmFjdGljZSBhcyBtaXNzaW5nIGdseXBocyAoc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIFNlY3Rpb24gNS40LCA1LjUpLgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgICAgPHN0cm9uZz5PcHRpbWl6YXRpb246PC9zdHJvbmc+IFRoZSBtZXRob2QgaW1wbGVtZW50YXRpb25zIG1heSBuZWVkCisgKiAgICAgb3B0aW1pemF0aW9uIGlmIHRoZSBjb21waWxlciBkb2Vzbid0IGZvbGQgc3RhdGljIGZpbmFsIG1ldGhvZHMuIFNpbmNlCisgKiAgICAgc3Vycm9nYXRlIHBhaXJzIHdpbGwgZm9ybSBhbiBleGNlZWRpbmcgc21hbGwgcGVyY2VudGFnZSBvZiBhbGwgdGhlIHRleHQKKyAqICAgICBpbiB0aGUgd29ybGQsIHRoZSBzaW5nbGV0b24gY2FzZSBzaG91bGQgYWx3YXlzIGJlIG9wdGltaXplZCBmb3IuCisgKiAgIDwvbGk+CisgKiA8L3VsPgorICogQGF1dGhvciBNYXJrIERhdmlzLCB3aXRoIGhlbHAgZnJvbSBNYXJrdXMgU2NoZXJlcgorICogQHN0YWJsZSBJQ1UgMi4xCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVURjE2Cit7CisgICAgLy8gcHVibGljIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGluIDxjb2RlPjxhIGhyZWY9IiNib3VuZHMoamF2YS5sYW5nLlN0cmluZywgaW50KSI+CisgICAgICogYm91bmRzKCk8L2E+PC9jb2RlPi4KKyAgICAgKiBUaGVzZSB2YWx1ZXMgYXJlIGNob3NlbiBzcGVjaWZpY2FsbHkgc28gdGhhdCBpdCBhY3R1YWxseSByZXByZXNlbnRzCisgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBbb2Zmc2V0MTYgLSAodmFsdWUgPj4gMiksIG9mZnNldDE2ICsgKHZhbHVlICYgMyldCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lOR0xFX0NIQVJfQk9VTkRBUlkgPSAxLAorICAgICAgICBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA9IDIsCisgICAgICAgIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA9IDU7CisgICAgLyoqCisgICAgICogVGhlIGxvd2VzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09ERVBPSU5UX01JTl9WQUxVRSA9IDA7CisgICAgLyoqCisgICAgICogVGhlIGhpZ2hlc3QgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlIChzY2FsYXIgdmFsdWUpIGFjY29yZGluZyB0byB0aGUKKyAgICAgKiBVbmljb2RlIFN0YW5kYXJkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPREVQT0lOVF9NQVhfVkFMVUUgPSAweDEwZmZmZjsKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICA9IDB4MTAwMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA9IDB4RDgwMDsKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgPSAweERDMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSA9IDB4REJGRjsKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgPSAweERGRkY7CisgICAgLyoqCisgICAgICogU3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfTUlOX1ZBTFVFID0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFOworICAgIC8qKgorICAgICAqIE1heGltdW0gc3Vycm9nYXRlIHZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX01BWF9WQUxVRSA9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUU7CisKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIFByZXZlbnQgaW5zdGFuY2UgZnJvbSBiZWluZyBjcmVhdGVkLgorICAgICAqLworICAgIHByaXZhdGUgVVRGMTYoKQorICAgIHsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgLy8gcHVibGljIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj4KKyAgICAgKiBVQ2hhcmFjdGVyLmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKHNpbmdsZSA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gX2NoYXJBdChzb3VyY2UsIG9mZnNldDE2LCBzaW5nbGUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBfY2hhckF0KFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNiwgY2hhciBzaW5nbGUpCisgICAgeworICAgICAgICBpZiAoc2luZ2xlID4gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikgeworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICBpZiAodHJhaWwgPj0gVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICB0cmFpbCA8PSBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKyAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbGVhZCA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj4KKyAgICAgKiBVQ2hhcmFjdGVyLmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoQ2hhclNlcXVlbmNlIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKHNpbmdsZSA8IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gX2NoYXJBdChzb3VyY2UsIG9mZnNldDE2LCBzaW5nbGUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBfY2hhckF0KENoYXJTZXF1ZW5jZSBzb3VyY2UsIGludCBvZmZzZXQxNiwgY2hhciBzaW5nbGUpCisgICAgeworICAgICAgICBpZiAoc2luZ2xlID4gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikgeworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICBpZiAodHJhaWwgPj0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICB0cmFpbCA8PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKyAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbGVhZCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICAqIDwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGLTE2IGNoYXJzIHN0cmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGLTE2IG9mZnNldCB0byB0aGUgc3RhcnQgb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIFVURi0zMiB2YWx1ZSBmb3IgdGhlIFVURi0zMiB2YWx1ZSB0aGF0IGNvbnRhaW5zIHRoZSBjaGFyIGF0CisgICAgICogICAgICAgICBvZmZzZXQxNi4gVGhlIGJvdW5kYXJpZXMgb2YgdGhhdCBjb2RlcG9pbnQgYXJlIHRoZSBzYW1lIGFzIGluCisgICAgICogICAgICAgICA8Y29kZT5ib3VuZHMzMigpPC9jb2RlPi4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIG91dCBvZgorICAgICAqICAgICAgICAgICAgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNoYXJBdChTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPCAwIHx8IG9mZnNldDE2ID49IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKCFpc1N1cnJvZ2F0ZShzaW5nbGUpKSB7CisgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCB0aGUgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHkgaW4gdXNhZ2UsIGFuZCBiZWNhdXNlIHRoZSBmcmVxdWVuY3kgb2YgcGFpcnMgaXMKKyAgICAgICAgLy8gbG93LCBsb29rIGJvdGggZGlyZWN0aW9ucy4KKworICAgICAgICBpZiAoc2luZ2xlIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICArKyBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpICE9IG9mZnNldDE2KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KHNpbmdsZSwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGlzIGEgdHJhaWwgc3Vycm9nYXRlIHNvCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUobGVhZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwgc2luZ2xlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gc2luZ2xlOyAvLyByZXR1cm4gdW5tYXRjaGVkIHN1cnJvZ2F0ZQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdWJzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICAqIDwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAcmV0dXJuIFVURi0zMiB2YWx1ZSBmb3IgdGhlIFVURi0zMiB2YWx1ZSB0aGF0IGNvbnRhaW5zIHRoZSBjaGFyIGF0CisgICAgICogICAgICAgICBvZmZzZXQxNi4gVGhlIGJvdW5kYXJpZXMgb2YgdGhhdCBjb2RlcG9pbnQgYXJlIHRoZSBzYW1lIGFzIGluCisgICAgICogICAgICAgICA8Y29kZT5ib3VuZHMzMigpPC9jb2RlPi4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIG5vdCB3aXRoaW4KKyAgICAgKiAgICAgICAgICAgIHRoZSByYW5nZSBvZiBzdGFydCBhbmQgbGltaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgc3RhcnQgfHwgb2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICBpZiAoIWlzU3Vycm9nYXRlKHNpbmdsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBpbiB1c2FnZSwgYW5kIGJlY2F1c2UgdGhlIGZyZXF1ZW5jeSBvZiBwYWlycyBpcworICAgICAgICAvLyBsb3csIGxvb2sgYm90aCBkaXJlY3Rpb25zLgorICAgICAgICBpZiAoc2luZ2xlIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgb2Zmc2V0MTYgKys7CisgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hhciB0cmFpbCA9IHNvdXJjZVtvZmZzZXQxNl07CisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoc2luZ2xlLCB0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSwgc28KKyAgICAgICAgICAgIGlmIChvZmZzZXQxNiA9PSBzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgIGNoYXIgbGVhZCA9IHNvdXJjZVtvZmZzZXQxNl07CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGxlYWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorCisgICAgLyoqCisgICAgICogRXh0cmFjdCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgZnJvbSBhIHN0cmluZy4KKyAgICAgKiBVc2VkIHdoZW4gaXRlcmF0aW5nIGZvcndhcmRzIG9yIGJhY2t3YXJkcyAod2l0aAorICAgICAqIDxjb2RlPlVURjE2LmdldENoYXJDb3VudCgpPC9jb2RlPiwgYXMgd2VsbCBhcyByYW5kb20gYWNjZXNzLiBJZiBhCisgICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPlVDaGFyYWN0ZXIuaXNMZWdhbCgpCisgICAgICogPC9hPjwvY29kZT4gb24gdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgKiBJZiB0aGUgY2hhciByZXRyaWV2ZWQgaXMgcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBpdHMgc3VwcGxlbWVudGFyeQorICAgICAqIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkLiBJZiBhIGNvbXBsZXRlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGlzCisgICAgICogbm90IGZvdW5kIHRoZSBpbmNvbXBsZXRlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYtMTYgY2hhcnMgc3RyaW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gVVRGLTMyIHZhbHVlIGZvciB0aGUgVVRGLTMyIHZhbHVlIHRoYXQgY29udGFpbnMgdGhlIGNoYXIgYXQKKyAgICAgKiAgICAgICAgIG9mZnNldDE2LiBUaGUgYm91bmRhcmllcyBvZiB0aGF0IGNvZGVwb2ludCBhcmUgdGhlIHNhbWUgYXMgaW4KKyAgICAgKiAgICAgICAgIDxjb2RlPmJvdW5kczMyKCk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mCisgICAgICogICAgICAgICAgICBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KFJlcGxhY2VhYmxlIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBvZmZzZXQxNiA+PSBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgc2luZ2xlID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgIGlmICghaXNTdXJyb2dhdGUoc2luZ2xlKSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKysgb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLS0gb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSBzbworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsIHNpbmdsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpbmdsZTsgLy8gcmV0dXJuIHVubWF0Y2hlZCBzdXJyb2dhdGUKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGhvdyBtYW55IGNoYXJzIHRoaXMgY2hhcjMyIHJlcXVpcmVzLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSA8Y29kZT4KKyAgICAgKiA8YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbgorICAgICAqIGNoYXIzMiBiZWZvcmUgY2FsbGluZy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyIHRoZSBpbnB1dCBjb2RlcG9pbnQuCisgICAgICogQHJldHVybiAyIGlmIGlzIGluIHN1cHBsZW1lbnRhcnkgc3BhY2UsIG90aGVyd2lzZSAxLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJDb3VudChpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBib3VuZGFyaWVzIGFyb3VuZCB0aGUgY2hhciBhdCBvZmZzZXQxNi4KKyAgICAgKiBVc2VkIGZvciByYW5kb20gYWNjZXNzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCB0byBhbmFseXNlCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIDx1bD4KKyAgICAgKiAgICAgICAgICAgPGxpPiBTSU5HTEVfQ0hBUl9CT1VOREFSWSA6IGEgc2luZ2xlIGNoYXI7IHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYsIG9mZnNldDE2KzFdCisgICAgICogICAgICAgICAgIDxsaT4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNjsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYsIG9mZnNldDE2ICsgMl0KKyAgICAgKiAgICAgICAgICAgPGxpPiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTYgLSAxOyB0aGUgYm91bmRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMV0KKyAgICAgKiAgICAgICAgIDwvdWw+CisgICAgICogICAgICAgICBGb3IgYml0LXR3aWRkbGVycywgdGhlIHJldHVybiB2YWx1ZXMgZm9yIHRoZXNlIGFyZSBjaG9zZW4gc28KKyAgICAgKiAgICAgICAgIHRoYXQgdGhlIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieToKKyAgICAgKiAgICAgICAgIFtvZmZzZXQxNiAtICh2YWx1ZSA+PiAyKSwgb2Zmc2V0MTYgKyAodmFsdWUgJiAzKV0uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDE2IGlzIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgYm91bmRzKFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIGNoYXIgY2ggPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKGlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoKysgb2Zmc2V0MTYgPCBzb3VyY2UubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpc1RyYWlsU3Vycm9nYXRlKGNoKSwgc28KKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCAmJiBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBTSU5HTEVfQ0hBUl9CT1VOREFSWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBib3VuZGFyaWVzIGFyb3VuZCB0aGUgY2hhciBhdCBvZmZzZXQxNi4gVXNlZAorICAgICAqIGZvciByYW5kb20gYWNjZXNzLgorICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIGJ1ZmZlciB0byBhbmFseXNlCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IG9mZnNldAorICAgICAqIEByZXR1cm4KKyAgICAgKiAgICAgPHVsPgorICAgICAqICAgICA8bGk+IFNJTkdMRV9DSEFSX0JPVU5EQVJZIDogYSBzaW5nbGUgY2hhcjsgdGhlIGJvdW5kcyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2LCBvZmZzZXQxNiArIDFdCisgICAgICogICAgIDxsaT4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNjsgdGhlIGJvdW5kcyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyXQorICAgICAqICAgICA8bGk+IFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtIDE7IHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxXQorICAgICAqICAgICA8L3VsPgorICAgICAqIEZvciBiaXQtdHdpZGRsZXJzLCB0aGUgcmV0dXJuIHZhbHVlcyBmb3IgdGhlc2UgYXJlIGNob3NlbiBzbyB0aGF0IHRoZQorICAgICAqIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieToKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2IC0gKHZhbHVlID4+IDIpLCBvZmZzZXQxNiArICh2YWx1ZSAmIDMpXS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBib3VuZHMoU3RyaW5nQnVmZmVyIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmICgrKyBvZmZzZXQxNiA8IHNvdXJjZS5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlzVHJhaWxTdXJyb2dhdGUoY2gpLCBzbworICAgICAgICAgICAgICAgIC0tIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQxNiA+PSAwICYmCisgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNJTkdMRV9DSEFSX0JPVU5EQVJZOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGJvdW5kYXJpZXMgYXJvdW5kIHRoZSBjaGFyIGF0IG9mZnNldDE2LiBVc2VkCisgICAgICogZm9yIHJhbmRvbSBhY2Nlc3MuIE5vdGUgdGhhdCB0aGUgYm91bmRhcmllcyBhcmUgZGV0ZXJtaW5lZCB3aXRoIHJlc3BlY3QKKyAgICAgKiB0byB0aGUgc3ViYXJyYXksIGhlbmNlIHRoZSBjaGFyIGFycmF5IHsweEQ4MDAsIDB4REMwMH0gaGFzIHRoZSByZXN1bHQKKyAgICAgKiBTSU5HTEVfQ0hBUl9CT1VOREFSWSBmb3Igc3RhcnQgPSBvZmZzZXQxNiA9IDAgYW5kIGxpbWl0ID0gMS4KKyAgICAgKiBAcGFyYW0gc291cmNlIGNoYXIgYXJyYXkgdG8gYW5hbHlzZQorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYxNiBvZmZzZXQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAcmV0dXJuCisgICAgICogICAgIDx1bD4KKyAgICAgKiAgICAgICAgIDxsaT4gU0lOR0xFX0NIQVJfQk9VTkRBUlkgOiBhIHNpbmdsZSBjaGFyOyB0aGUgYm91bmRzIGFyZQorICAgICAqICAgICAgICAgPGxpPiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTY7IHRoZSBib3VuZHMgYXJlIFtvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyXQorICAgICAqICAgICAgICAgPGxpPiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICBvZmZzZXQxNiAtIDE7IHRoZSBib3VuZHMgYXJlIFtvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMV0KKyAgICAgKiAgICAgPC91bD4KKyAgICAgKiBGb3IgYml0LXR3aWRkbGVycywgdGhlIGJvdW5kYXJ5IHZhbHVlcyBmb3IgdGhlc2UgYXJlIGNob3NlbiBzbyB0aGF0IHRoZQorICAgICAqIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieTogW29mZnNldDE2IC0gKGJvdW5kdmFsdWUgPj4gMiksIG9mZnNldDE2CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoYm91bmR2YWx1ZSAmIDMpXS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgbm90IHdpdGhpbiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2Ugb2Ygc3RhcnQgYW5kIGxpbWl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGJvdW5kcyhjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgb2Zmc2V0MTYgKz0gc3RhcnQ7CisgICAgICAgIGlmIChvZmZzZXQxNiA8IHN0YXJ0IHx8IG9mZnNldDE2ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICBjaGFyIGNoID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgaWYgKGlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICArKyBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPCBsaW1pdCAmJiBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZVtvZmZzZXQxNl0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsgLy8gaXNUcmFpbFN1cnJvZ2F0ZShjaCksIHNvCisgICAgICAgICAgICAgICAgLS0gb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IHN0YXJ0ICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2Vbb2Zmc2V0MTZdKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU0lOR0xFX0NIQVJfQk9VTkRBUlk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb2RlIHZhbHVlIGlzIGEgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSBzdXJyb2dhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3Vycm9nYXRlKGNoYXIgY2hhcjE2KQorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYKKyAgICAgICAgICAgIGNoYXIxNiA8PSBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGEgdHJhaWwgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVHJhaWxTdXJyb2dhdGUoY2hhciBjaGFyMTYpCisgICAgeworICAgICAgICByZXR1cm4gKFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgPD0gY2hhcjE2ICYmCisgICAgICAgICAgICAgICAgY2hhcjE2IDw9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGEgbGVhZCBzdXJyb2dhdGUuCisgICAgICogQHBhcmFtIGNoYXIxNiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIGxlYWQgc3Vycm9nYXRlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGVhZFN1cnJvZ2F0ZShjaGFyIGNoYXIxNikKKyAgICB7CisgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgPD0gY2hhcjE2ICYmCisgICAgICAgICAgICBjaGFyMTYgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+CisgICAgICogb24gY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSBjaGFyMzIgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIGxlYWQgc3Vycm9nYXRlIGlmIHRoZSBnZXRDaGFyQ291bnQoY2gpIGlzIDI7IDxicj4KKyAgICAgKiAgICAgICAgIGFuZCAwIG90aGVyd2lzZSAobm90ZTogMCBpcyBub3QgYSB2YWxpZCBsZWFkIHN1cnJvZ2F0ZSkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjaGFyIGdldExlYWRTdXJyb2dhdGUoaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcikoTEVBRF9TVVJST0dBVEVfT0ZGU0VUXyArCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyMzIgPj4gTEVBRF9TVVJST0dBVEVfU0hJRlRfKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0cmFpbCBzdXJyb2dhdGUuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGNvZGU+PGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4KKyAgICAgKiBvbiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgICogQHBhcmFtIGNoYXIzMiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdGhlIHRyYWlsIHN1cnJvZ2F0ZSBpZiB0aGUgZ2V0Q2hhckNvdW50KGNoKSBpcyAyOyA8YnI+b3RoZXJ3aXNlCisgICAgICogICAgICAgICB0aGUgY2hhcmFjdGVyIGl0c2VsZgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBnZXRUcmFpbFN1cnJvZ2F0ZShpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIChjaGFyKShUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIzMiAmIFRSQUlMX1NVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIChjaGFyKWNoYXIzMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgY29ycmVzcG9uZGluZyB0byBTdHJpbmcudmFsdWVPZihjaGFyKS4gUmV0dXJucyBhIG9uZQorICAgICAqIG9yIHR3byBjaGFyIHN0cmluZyBjb250YWluaW5nIHRoZSBVVEYtMzIgdmFsdWUgaW4gVVRGMTYgZm9ybWF0LiBJZiBhCisgICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uCisgICAgICogY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSBjaGFyMzIgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHN0cmluZyB2YWx1ZSBvZiBjaGFyMzIgaW4gVVRGMTYgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIGNoYXIzMiBpcyBhIGludmFsaWQKKyAgICAgKiAgICAgICAgICAgIGNvZGVwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0b1N0cmluZyhjaGFyMzIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIFN0cmluZy52YWx1ZU9mKGNvZGVwb2ludCBhdAorICAgICAqIG9mZnNldDE2KS4KKyAgICAgKiBSZXR1cm5zIGEgb25lIG9yIHR3byBjaGFyIHN0cmluZyBjb250YWluaW5nIHRoZSBVVEYtMzIgdmFsdWUgaW4gVVRGMTYKKyAgICAgKiBmb3JtYXQuIElmIG9mZnNldDE2IGluZGV4ZXMgYSBzdXJyb2dhdGUgY2hhcmFjdGVyLCB0aGUgd2hvbGUKKyAgICAgKiBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludCB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZQorICAgICAqIGNvZGVwb2ludCBhdCBvZmZzZXQxNiBiZWZvcmUgY2FsbGluZy4KKyAgICAgKiBUaGUgcmVzdWx0IHJldHVybmVkIHdpbGwgYmUgYSBuZXdseSBjcmVhdGVkIFN0cmluZyBvYnRhaW5lZCBieSBjYWxsaW5nCisgICAgICogc291cmNlLnN1YnN0cmluZyguLikgd2l0aCB0aGUgYXBwcm9wcmlhdGUgaW5kZXhlcy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBpbnB1dCBzdHJpbmcuCisgICAgICogQHBhcmFtIG9mZnNldDE2IHRoZSBVVEYxNiBpbmRleCB0byB0aGUgY29kZXBvaW50IGluIHNvdXJjZQorICAgICAqIEByZXR1cm4gc3RyaW5nIHZhbHVlIG9mIGNoYXIzMiBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHNvdXJjZSwgb2Zmc2V0MTYpKSB7CisgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyKTsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMSk7CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2LCBvZmZzZXQxNiArIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiBTdHJpbmdCdWZmZXIudmFsdWVPZihjb2RlcG9pbnQgYXQgb2Zmc2V0MTYpLgorICAgICAqIFJldHVybnMgYSBvbmUgb3IgdHdvIGNoYXIgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVURi0zMiB2YWx1ZSBpbiBVVEYxNgorICAgICAqIGZvcm1hdC4gSWYgb2Zmc2V0MTYgaW5kZXhlcyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIsIHRoZSB3aG9sZQorICAgICAqIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gdGhlCisgICAgICogY29kZXBvaW50IGF0IG9mZnNldDE2IGJlZm9yZSBjYWxsaW5nLgorICAgICAqIFRoZSByZXN1bHQgcmV0dXJuZWQgd2lsbCBiZSBhIG5ld2x5IGNyZWF0ZWQgU3RyaW5nIG9idGFpbmVkIGJ5IGNhbGxpbmcKKyAgICAgKiBzb3VyY2Uuc3Vic3RyaW5nKC4uKSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBpbmRleGVzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIGlucHV0IHN0cmluZyBidWZmZXIuCisgICAgICogQHBhcmFtIG9mZnNldDE2IHRoZSBVVEYxNiBpbmRleCB0byB0aGUgY29kZXBvaW50IGluIHNvdXJjZQorICAgICAqIEByZXR1cm4gc3RyaW5nIHZhbHVlIG9mIGNoYXIzMiBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKFN0cmluZ0J1ZmZlciBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHNvdXJjZSwgb2Zmc2V0MTYpKSB7CisgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyKTsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMSk7CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2LCBvZmZzZXQxNiArIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqIFJldHVybnMgYSBvbmUgb3IgdHdvIGNoYXIgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVURi0zMiB2YWx1ZSBpbiBVVEYxNgorICAgICAqIGZvcm1hdC4gSWYgb2Zmc2V0MTYgaW5kZXhlcyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIsIHRoZSB3aG9sZQorICAgICAqIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50IHdpbGwgYmUgcmV0dXJuZWQsIGV4Y2VwdCB3aGVuIGVpdGhlciB0aGUKKyAgICAgKiBsZWFkaW5nIG9yIHRyYWlsaW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgbGllcyBvdXQgb2YgdGhlIHNwZWNpZmllZAorICAgICAqIHN1YmFycmF5LiBJbiB0aGUgbGF0dGVyIGNhc2UsIG9ubHkgdGhlIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgd2l0aGluCisgICAgICogYm91bmRzIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gdGhlCisgICAgICogY29kZXBvaW50IGF0IG9mZnNldDE2IGJlZm9yZSBjYWxsaW5nLgorICAgICAqIFRoZSByZXN1bHQgcmV0dXJuZWQgd2lsbCBiZSBhIG5ld2x5IGNyZWF0ZWQgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICogcmVsZXZhbnQgY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBpbnB1dCBjaGFyIGFycmF5LgorICAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBpbmRleCBvZiB0aGUgc3ViYXJyYXkKKyAgICAgKiBAcGFyYW0gbGltaXQgZW5kIGluZGV4IG9mIHRoZSBzdWJhcnJheQorICAgICAqIEBwYXJhbSBvZmZzZXQxNiB0aGUgVVRGMTYgaW5kZXggdG8gdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UgcmVsYXRpdmUgdG8KKyAgICAgKiAgICAgICAgc3RhcnQKKyAgICAgKiBAcmV0dXJuIHN0cmluZyB2YWx1ZSBvZiBjaGFyMzIgaW4gVVRGMTYgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsdWVPZihjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHNvdXJjZSwgc3RhcnQsIGxpbWl0LCBvZmZzZXQxNikpIHsKKyAgICAgICAgY2FzZSBMRUFEX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHNvdXJjZSwgc3RhcnQgKyBvZmZzZXQxNiwgMik7CisgICAgICAgIGNhc2UgVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoc291cmNlLCBzdGFydCArIG9mZnNldDE2IC0gMSwgMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoc291cmNlLCBzdGFydCArIG9mZnNldDE2LCAxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMTYgb2Zmc2V0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBVVEYtMzIgb2Zmc2V0LgorICAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICAqIGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIFVURi0xNiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MzIgVVRGLTMyIG9mZnNldAorICAgICAqIEByZXR1cm4gVVRGLTE2IG9mZnNldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQzMiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQzMikKKyAgICB7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGludCBzaXplID0gc291cmNlLmxlbmd0aCgpLAorICAgICAgICAgICAgcmVzdWx0ID0gMCwKKyAgICAgICAgICAgIGNvdW50ID0gb2Zmc2V0MzI7CisgICAgICAgIGlmIChvZmZzZXQzMiA8IDAgfHwgb2Zmc2V0MzIgPiBzaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBzaXplKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMTYgb2Zmc2V0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBVVEYtMzIgb2Zmc2V0LgorICAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICAqIGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIFVURi0xNiBzdHJpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldDMyIFVURi0zMiBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIFVURi0xNiBvZmZzZXQKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MzIgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBmaW5kT2Zmc2V0RnJvbUNvZGVQb2ludChTdHJpbmdCdWZmZXIgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQzMikKKyAgICB7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGludCBzaXplID0gc291cmNlLmxlbmd0aCgpLAorICAgICAgICAgICAgcmVzdWx0ID0gMCwKKyAgICAgICAgICAgIGNvdW50ID0gb2Zmc2V0MzI7CisgICAgICAgIGlmIChvZmZzZXQzMiA8IDAgfHwgb2Zmc2V0MzIgPiBzaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBzaXplKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMTYgb2Zmc2V0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBVVEYtMzIgb2Zmc2V0LgorICAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICAqIGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIFVURi0xNiBjaGFyIGFycmF5IHdob3NlIHN1YnN0cmluZyBpcyB0byBiZSBhbmFseXNlZAorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgdGhlIHN1YnN0cmluZyB0byBiZSBhbmFseXNlZAorICAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgb2YgdGhlIHN1YnN0cmluZyB0byBiZSBhbmFseXNlZAorICAgICAqIEBwYXJhbSBvZmZzZXQzMiBVVEYtMzIgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQHJldHVybiBVVEYtMTYgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDMyIGlzIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZmluZE9mZnNldEZyb21Db2RlUG9pbnQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwgaW50IG9mZnNldDMyKQorICAgIHsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IHJlc3VsdCA9IHN0YXJ0LAorICAgICAgICAgICAgY291bnQgPSBvZmZzZXQzMjsKKyAgICAgICAgaWYgKG9mZnNldDMyID4gbGltaXQgLSBzdGFydCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IGxpbWl0ICYmIGNvdW50ID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtyZXN1bHRdOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBsaW1pdCkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2VbcmVzdWx0ICsgMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0IC0gc3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGLTMyIG9mZnNldCBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXJzdCBVVEYtMzIgYm91bmRhcnkgYXQKKyAgICAgKiBvciBhZnRlciB0aGUgZ2l2ZW4gVVRGLTE2IG9mZnNldC4gVXNlZCBmb3IgcmFuZG9tIGFjY2Vzcy4gU2VlIHRoZQorICAgICAqIDxhIG5hbWU9Il90b3BfIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4gZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuPGJyPgorICAgICAqIDxpPk5vdGU6IElmIHRoZSBVVEYtMTYgb2Zmc2V0IGlzIGludG8gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyLAorICAgICAqIHRoZW4gdGhlIFVURi0zMiBvZmZzZXQgb2YgdGhlIDxzdHJvbmc+bGVhZDwvc3Ryb25nPiBvZiB0aGUgcGFpciBpcworICAgICAqIHJldHVybmVkLgorICAgICAqIDwvaT4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBmaW5kIHRoZSBVVEYtMzIgbGVuZ3RoIG9mIGEgc3RyaW5nLCB1c2U6CisgICAgICogICA8cHJlPgorICAgICAqICAgICBsZW4zMiA9IGNvdW50Q29kZVBvaW50KHNvdXJjZSwgc291cmNlLmxlbmd0aCgpKTsKKyAgICAgKiAgIDwvcHJlPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgdG8gYW5hbHlzZQorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IDwgc291cmNlIHRleHQgbGVuZ3RoLgorICAgICAqIEByZXR1cm4gVVRGLTMyIG9mZnNldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBvZmZzZXQxNiA+IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0MTY7ICsrIGkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIGlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsgICAgICAgICAgIC8vIGNvdW50IHZhbGlkIHRyYWlsIGFzIHplcm8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gaXNMZWFkU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IG90aGVycyBhcyAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAob2Zmc2V0MTYgPT0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gZW5kIG9mIHNvdXJjZSBiZWluZyB0aGUgbGVzcyBzaWduaWZpY2FudCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgICAgIC8vIHNoaWZ0IHJlc3VsdCBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgKGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSkgeworICAgICAgICAgICAgcmVzdWx0IC0tOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdAorICAgICAqIHRoZSBnaXZlbiBVVEYtMTYgb2Zmc2V0LiBVc2VkIGZvciByYW5kb20gYWNjZXNzLiBTZWUgdGhlCisgICAgICogPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPiBmb3Igbm90ZXMgb24gcm91bmR0cmlwcGluZy48YnI+CisgICAgICogPGk+Tm90ZTogSWYgdGhlIFVURi0xNiBvZmZzZXQgaXMgaW50byB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIsCisgICAgICogdGhlbiB0aGUgVVRGLTMyIG9mZnNldCBvZiB0aGUgPHN0cm9uZz5sZWFkPC9zdHJvbmc+IG9mIHRoZSBwYWlyIGlzCisgICAgICogcmV0dXJuZWQuCisgICAgICogPC9pPgorICAgICAqIDxwPgorICAgICAqIFRvIGZpbmQgdGhlIFVURi0zMiBsZW5ndGggb2YgYSBzdHJpbmcsIHVzZToKKyAgICAgKiAgIDxwcmU+CisgICAgICogICAgIGxlbjMyID0gY291bnRDb2RlUG9pbnQoc291cmNlKTsKKyAgICAgKiAgIDwvcHJlPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgdG8gYW5hbHlzZQorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IDwgc291cmNlIHRleHQgbGVuZ3RoLgorICAgICAqIEByZXR1cm4gVVRGLTMyIG9mZnNldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoU3RyaW5nQnVmZmVyIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBvZmZzZXQxNiA+IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0MTY7ICsrIGkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIGlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsgICAgICAgICAgIC8vIGNvdW50IHZhbGlkIHRyYWlsIGFzIHplcm8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gaXNMZWFkU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IG90aGVycyBhcyAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAob2Zmc2V0MTYgPT0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gZW5kIG9mIHNvdXJjZSBiZWluZyB0aGUgbGVzcyBzaWduaWZpY2FudCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgICAgIC8vIHNoaWZ0IHJlc3VsdCBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgKGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgLS07CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdAorICAgICAqIHRoZSBnaXZlbiBVVEYtMTYgb2Zmc2V0LiBVc2VkIGZvciByYW5kb20gYWNjZXNzLiBTZWUgdGhlCisgICAgICogPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPiBmb3Igbm90ZXMgb24gcm91bmR0cmlwcGluZy48YnI+CisgICAgICogPGk+Tm90ZTogSWYgdGhlIFVURi0xNiBvZmZzZXQgaXMgaW50byB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIsCisgICAgICogdGhlbiB0aGUgVVRGLTMyIG9mZnNldCBvZiB0aGUgPHN0cm9uZz5sZWFkPC9zdHJvbmc+IG9mIHRoZSBwYWlyIGlzCisgICAgICogcmV0dXJuZWQuCisgICAgICogPC9pPgorICAgICAqIDxwPgorICAgICAqIFRvIGZpbmQgdGhlIFVURi0zMiBsZW5ndGggb2YgYSBzdWJzdHJpbmcsIHVzZToKKyAgICAgKiAgIDxwcmU+CisgICAgICogICAgIGxlbjMyID0gY291bnRDb2RlUG9pbnQoc291cmNlLCBzdGFydCwgbGltaXQpOworICAgICAqICAgPC9wcmU+CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCB0byBhbmFseXNlCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiByZWxhdGl2ZSB0byBzdGFydAorICAgICAqIEByZXR1cm4gVVRGLTMyIG9mZnNldCByZWxhdGl2ZSB0byBzdGFydAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBub3Qgd2l0aGluIHRoZQorICAgICAqICAgICAgICAgICAgcmFuZ2Ugb2Ygc3RhcnQgYW5kIGxpbWl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBjaGFyIGNoOworICAgICAgICBib29sZWFuIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBvZmZzZXQxNjsgKysgaSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpXTsKKyAgICAgICAgICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiBpc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7IC8vIGNvdW50IHZhbGlkIHRyYWlsIGFzIHplcm8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gaXNMZWFkU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IG90aGVycyBhcyAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAob2Zmc2V0MTYgPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBlbmQgb2Ygc291cmNlIGJlaW5nIHRoZSBsZXNzIHNpZ25pZmljYW50IHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAgICAgLy8gc2hpZnQgcmVzdWx0IGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiAoaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2Vbb2Zmc2V0MTZdKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdCAtLTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgc2luZ2xlIFVURi0zMiB2YWx1ZSB0byB0aGUgZW5kIG9mIGEgU3RyaW5nQnVmZmVyLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uCisgICAgICogY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIGJ1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gY2hhcjMyIHZhbHVlIHRvIGFwcGVuZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIFN0cmluZ0J1ZmZlcgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGNoYXIzMiBkb2VzIG5vdCBsaWUKKyAgICAgKiAgICAgICAgICAgIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdGhlIFVuaWNvZGUgY29kZXBvaW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGFwcGVuZChTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgZm9yIGlycmVndWxhciB2YWx1ZXMKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBjb2RlcG9pbnQ6ICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoYXIzMikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gV3JpdGUgdGhlIFVURi0xNiB2YWx1ZXMKKyAgICAgICAgaWYgKGNoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGdldExlYWRTdXJyb2dhdGUoY2hhcjMyKSk7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChnZXRUcmFpbFN1cnJvZ2F0ZShjaGFyMzIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKChjaGFyKWNoYXIzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciBKREsgMS41IEFQSXMuICBBcHBlbmQgdGhlIGNvZGUgcG9pbnQgdG8gdGhlIGJ1ZmZlciBhbmQgcmV0dXJuIHRoZSBidWZmZXIKKyAgICAgKiBhcyBhIGNvbnZlbmllbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgYnVmZmVyIHRvIGFwcGVuZCB0bworICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBhcHBlbmQKKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIFN0cmluZ0J1ZmZlcgorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGNwIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBhcHBlbmRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHRhcmdldCwgaW50IGNwKSB7CisgICAgICAgIHJldHVybiBhcHBlbmQodGFyZ2V0LCBjcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhIGNvZGVwb2ludCB0byBvZmZzZXQxNiBwb3NpdGlvbiBvZiB0aGUgYXJndW1lbnQgY2hhciBhcnJheS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IGNoYXIgYXJyYXkgdG8gYmUgYXBwZW5kIHdpdGggdGhlIG5ldyBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGxpbWl0IFVURjE2IG9mZnNldCB3aGljaCB0aGUgY29kZXBvaW50IHdpbGwgYmUgYXBwZW5kZWQuCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlIHBvaW50IHRvIGJlIGFwcGVuZGVkCisgICAgICogQHJldHVybiBvZmZzZXQgYWZ0ZXIgY2hhcjMyIGluIHRoZSBhcnJheS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlcmUgaXMgbm90IGVub3VnaAorICAgICAqICAgICAgICAgICAgc3BhY2UgZm9yIHRoZSBhcHBlbmQsIG9yIHdoZW4gY2hhcjMyIGRvZXMgbm90IGxpZSB3aXRoaW4KKyAgICAgKiAgICAgICAgICAgIHRoZSByYW5nZSBvZiB0aGUgVW5pY29kZSBjb2RlcG9pbnRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGFwcGVuZChjaGFyW10gdGFyZ2V0LCBpbnQgbGltaXQsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICAvLyBDaGVjayBmb3IgaXJyZWd1bGFyIHZhbHVlcworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIFdyaXRlIHRoZSBVVEYtMTYgdmFsdWVzCisgICAgICAgIGlmIChjaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGFyZ2V0W2xpbWl0ICsrXSA9IGdldExlYWRTdXJyb2dhdGUoY2hhcjMyKTsKKyAgICAgICAgICAgICAgICB0YXJnZXRbbGltaXQgKytdID0gZ2V0VHJhaWxTdXJyb2dhdGUoY2hhcjMyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXRbbGltaXQgKytdID0gKGNoYXIpY2hhcjMyOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW1pdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIFVURjE2IFN0cmluZworICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgc3RyaW5nCisgICAgICogQHJldHVybiBudW1iZXIgb2YgY29kZXBvaW50IGluIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50Q29kZVBvaW50KFN0cmluZyBzb3VyY2UpCisgICAgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwgfHwgc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmaW5kQ29kZVBvaW50T2Zmc2V0KHNvdXJjZSwgc291cmNlLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIFVURjE2IFN0cmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IHN0cmluZyBidWZmZXIKKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiBjb2RlcG9pbnQgaW4gc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCB8fCBzb3VyY2UubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpbmRDb2RlUG9pbnRPZmZzZXQoc291cmNlLCBzb3VyY2UubGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBjb2RlcG9pbnRzIGluIGEgVVRGMTYgY2hhciBhcnJheSBzdWJzdHJpbmcKKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGNoYXIgYXJyYXkKKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiBjb2RlcG9pbnQgaW4gdGhlIHN1YnN0cmluZworICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBzdGFydCBhbmQgbGltaXQgYXJlIG5vdCB2YWxpZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudENvZGVQb2ludChjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCB8fCBzb3VyY2UubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmaW5kQ29kZVBvaW50T2Zmc2V0KHNvdXJjZSwgc3RhcnQsIGxpbWl0LCBsaW1pdCAtIHN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBjb2RlIHBvaW50IGludG8gYSBVVEYxNiBwb3NpdGlvbi4KKyAgICAgKiBBZGp1c3RzIHRhcmdldCBhY2NvcmRpbmcgaWYgd2UgYXJlIHJlcGxhY2luZyBhIG5vbi1zdXBwbGVtZW50YXJ5CisgICAgICogY29kZXBvaW50IHdpdGggYSBzdXBwbGVtZW50YXJ5IGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IHBvc2l0aW9uIHRvIGluc2VydCBpbnRvCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlIHBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENoYXJBdChTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgY2hhciBzaW5nbGUgPSB0YXJnZXQuY2hhckF0KG9mZnNldDE2KTsKKworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoc2luZ2xlKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIGxlYWQgY2hhciBmb3VuZAorICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc2luZ2xlKSAmJiAodGFyZ2V0Lmxlbmd0aCgpID4gb2Zmc2V0MTYgKyAxKQorICAgICAgICAgICAgICAgICAgICAmJiBpc1RyYWlsU3Vycm9nYXRlKHRhcmdldC5jaGFyQXQob2Zmc2V0MTYgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIHRyYWlsIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSAmJiAob2Zmc2V0MTYgPiAwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHRhcmdldC5jaGFyQXQob2Zmc2V0MTYgLTEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHRhcmdldC5yZXBsYWNlKG9mZnNldDE2LCBvZmZzZXQxNiArIGNvdW50LCB2YWx1ZU9mKGNoYXIzMikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIGNvZGUgcG9pbnQgaW50byBhIFVURjE2IHBvc2l0aW9uIGluIGEgY2hhciBhcnJheS4KKyAgICAgKiBBZGp1c3RzIHRhcmdldCBhY2NvcmRpbmcgaWYgd2UgYXJlIHJlcGxhY2luZyBhIG5vbi1zdXBwbGVtZW50YXJ5CisgICAgICogY29kZXBvaW50IHdpdGggYSBzdXBwbGVtZW50YXJ5IGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0YXJnZXQgY2hhciBhcnJheQorICAgICAqIEBwYXJhbSBsaW1pdCBudW1iZXJzIG9mIHZhbGlkIGNoYXJzIGluIHRhcmdldCwgZGlmZmVyZW50IGZyb20KKyAgICAgKiAgICAgICAgdGFyZ2V0Lmxlbmd0aC4gbGltaXQgY291bnRzIHRoZSBudW1iZXIgb2YgY2hhcnMgaW4gdGFyZ2V0CisgICAgICogICAgICAgIHRoYXQgcmVwcmVzZW50cyBhIHN0cmluZywgbm90IHRoZSBzaXplIG9mIGFycmF5IHRhcmdldC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gaW5zZXJ0IGludG8KKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIG5ldyBudW1iZXIgb2YgY2hhcnMgaW4gdGFyZ2V0IHRoYXQgcmVwcmVzZW50cyBhIHN0cmluZworICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBzZXRDaGFyQXQoY2hhciB0YXJnZXRbXSwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgIGNoYXIgc2luZ2xlID0gdGFyZ2V0W29mZnNldDE2XTsKKworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoc2luZ2xlKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIGxlYWQgY2hhciBmb3VuZAorICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc2luZ2xlKSAmJiAodGFyZ2V0Lmxlbmd0aCA+IG9mZnNldDE2ICsgMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXRbb2Zmc2V0MTYgKyAxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIHRyYWlsIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSAmJiAob2Zmc2V0MTYgPiAwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHRhcmdldFtvZmZzZXQxNiAtMV0pKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2IC0tOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgc3RyID0gdmFsdWVPZihjaGFyMzIpOworICAgICAgICBpbnQgcmVzdWx0ID0gbGltaXQ7CisgICAgICAgIGludCBzdHJsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIHRhcmdldFtvZmZzZXQxNl0gPSBzdHIuY2hhckF0KDApOworICAgICAgICBpZiAoY291bnQgPT0gc3RybGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgeworICAgICAgICAgICAgICAgIHRhcmdldFtvZmZzZXQxNiArIDFdID0gc3RyLmNoYXJBdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IGV4YWN0IG1hdGNoIGluIHNwYWNlLCB3ZSdsbCBoYXZlIHRvIGRvIHNvbWUKKyAgICAgICAgICAgIC8vIHNoaWZ0aW5nCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhcmdldCwgb2Zmc2V0MTYgKyBjb3VudCwgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiArIHN0cmxlbmd0aCwgbGltaXQgLSAob2Zmc2V0MTYgKyBjb3VudCkpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgc3RybGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLy8gY2hhcjMyIGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgdHJ5aW5nIHRvIHNxdWVlemUgaW50bworICAgICAgICAgICAgICAgIC8vIGEgbm9uLXN1cHBsZW1lbnRhcnkgc3BhY2UKKyAgICAgICAgICAgICAgICB0YXJnZXRbb2Zmc2V0MTYgKyAxXSA9IHN0ci5jaGFyQXQoMSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPCB0YXJnZXQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFtyZXN1bHRdID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBjaGFyMzIgaXMgYSBub24tc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgdHJ5aW5nIHRvIGZpbGwKKyAgICAgICAgICAgICAgICAvLyBpbnRvIGEgc3VwcGxlbWVudGFyeSBzcGFjZQorICAgICAgICAgICAgICAgIHJlc3VsdCAtLTsKKyAgICAgICAgICAgICAgICB0YXJnZXRbcmVzdWx0XSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaGlmdHMgb2Zmc2V0MTYgYnkgdGhlIGFyZ3VtZW50IG51bWJlciBvZiBjb2RlcG9pbnRzCisgICAgICogQHBhcmFtIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gc2hpZnQKKyAgICAgKiBAcGFyYW0gc2hpZnQzMiBudW1iZXIgb2YgY29kZXBvaW50cyB0byBzaGlmdAorICAgICAqIEByZXR1cm4gbmV3IHNoaWZ0ZWQgb2Zmc2V0MTYKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGhlIG5ldyBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNoaWZ0MzIpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gb2Zmc2V0MTY7CisgICAgICAgIGludCBzaXplID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGlmIChvZmZzZXQxNjwwIHx8IG9mZnNldDE2PnNpemUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2hpZnQzMiA+IDAgKSB7CisgICAgICAgICAgICBpZiAoc2hpZnQzMiArIG9mZnNldDE2ID4gc2l6ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ID0gc2hpZnQzMjsKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPCBzaXplICYmIGNvdW50ID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAoKHJlc3VsdCArIDEpIDwgc2l6ZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAob2Zmc2V0MTYgKyBzaGlmdDMyIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoY291bnQ9LXNoaWZ0MzI7IGNvdW50PjA7IGNvdW50LS0pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQtLTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0PDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiByZXN1bHQ+MCAmJiBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQtMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHNoaWZ0MzIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2hpZnRzIG9mZnNldDE2IGJ5IHRoZSBhcmd1bWVudCBudW1iZXIgb2YgY29kZXBvaW50cworICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYxNiBwb3NpdGlvbiB0byBzaGlmdAorICAgICAqIEBwYXJhbSBzaGlmdDMyIG51bWJlciBvZiBjb2RlcG9pbnRzIHRvIHNoaWZ0CisgICAgICogQHJldHVybiBuZXcgc2hpZnRlZCBvZmZzZXQxNgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgbmV3IG9mZnNldDE2IGlzIG91dCBvZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbW92ZUNvZGVQb2ludE9mZnNldChTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2hpZnQzMikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBvZmZzZXQxNjsKKyAgICAgICAgaW50IHNpemUgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCBjb3VudDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaWYgKG9mZnNldDE2PDAgfHwgb2Zmc2V0MTY+c2l6ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGlmIChzaGlmdDMyID4gMCApIHsKKyAgICAgICAgICAgIGlmIChzaGlmdDMyICsgb2Zmc2V0MTYgPiBzaXplKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgPSBzaGlmdDMyOworICAgICAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBzaXplKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCArIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChvZmZzZXQxNiArIHNoaWZ0MzIgPCAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChjb3VudD0tc2hpZnQzMjsgY291bnQ+MDsgY291bnQtLSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ8MCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoY2gpICYmIHJlc3VsdD4wICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdC0xKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSAgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oc2hpZnQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaGlmdHMgb2Zmc2V0MTYgYnkgdGhlIGFyZ3VtZW50IG51bWJlciBvZiBjb2RlcG9pbnRzIHdpdGhpbiBhIHN1YmFycmF5LgorICAgICAqIEBwYXJhbSBzb3VyY2UgY2hhciBhcnJheQorICAgICAqIEBwYXJhbSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgc3ViYXJyYXkgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIGxpbWl0IHBvc2l0aW9uIG9mIHRoZSBzdWJhcnJheSB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gc2hpZnQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAcGFyYW0gc2hpZnQzMiBudW1iZXIgb2YgY29kZXBvaW50cyB0byBzaGlmdAorICAgICAqIEByZXR1cm4gbmV3IHNoaWZ0ZWQgb2Zmc2V0MTYgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGhlIG5ldyBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcyB3aXRoIHJlc3BlY3QgdG8gdGhlIHN1YmFycmF5IG9yIHRoZSBzdWJhcnJheSBib3VuZHMKKyAgICAgKiAgICAgICAgICAgIGFyZSBvdXQgb2YgcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbW92ZUNvZGVQb2ludE9mZnNldChjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQxNiwgaW50IHNoaWZ0MzIpCisgICAgeworICAgICAgICBpbnQgICAgICAgICBzaXplID0gc291cmNlLmxlbmd0aDsKKyAgICAgICAgaW50ICAgICAgICAgY291bnQ7CisgICAgICAgIGNoYXIgICAgICAgIGNoOworICAgICAgICBpbnQgICAgICAgICByZXN1bHQgPSBvZmZzZXQxNiArIHN0YXJ0OworICAgICAgICBpZiAoc3RhcnQ8MCB8fCBsaW1pdDxzdGFydCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oc3RhcnQpOworICAgICAgICB9CisgICAgICAgIGlmIChsaW1pdD5zaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihsaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9mZnNldDE2PDAgfHwgcmVzdWx0PmxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNoaWZ0MzIgPiAwICkgeworICAgICAgICAgICAgaWYgKHNoaWZ0MzIgKyByZXN1bHQgPiBzaXplKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ID0gc2hpZnQzMjsKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPCBsaW1pdCAmJiBjb3VudCA+IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbcmVzdWx0XTsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAocmVzdWx0KzEgPCBsaW1pdCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW3Jlc3VsdCsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0ICsgc2hpZnQzMiA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoY291bnQ9LXNoaWZ0MzI7IGNvdW50PjA7IGNvdW50LS0pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQtLTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0PHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtyZXN1bHRdOworICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiByZXN1bHQ+c3RhcnQgJiYgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZVtyZXN1bHQtMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHNoaWZ0MzIpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdCAtPSBzdGFydDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnNlcnRzIGNoYXIzMiBjb2RlcG9pbnQgaW50byB0YXJnZXQgYXQgdGhlIGFyZ3VtZW50IG9mZnNldDE2LgorICAgICAqIElmIHRoZSBvZmZzZXQxNiBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQsIGNoYXIzMgorICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50LgorICAgICAqIFRoZSBsZW5ndGggb2YgdGFyZ2V0IGluY3JlYXNlcyBieSBvbmUgaWYgY29kZXBvaW50IGlzIG5vbi1zdXBwbGVtZW50YXJ5LAorICAgICAqIDIgb3RoZXJ3aXNlLgorICAgICAqIDxwPgorICAgICAqIFRoZSBvdmVyYWxsIGVmZmVjdCBpcyBleGFjdGx5IGFzIGlmIHRoZSBhcmd1bWVudCB3ZXJlIGNvbnZlcnRlZCB0byBhCisgICAgICogc3RyaW5nIGJ5IHRoZSBtZXRob2QgdmFsdWVPZihjaGFyKSBhbmQgdGhlIGNoYXJhY3RlcnMgaW4gdGhhdCBzdHJpbmcKKyAgICAgKiB3ZXJlIHRoZW4gaW5zZXJ0ZWQgaW50byB0YXJnZXQgYXQgdGhlIHBvc2l0aW9uIGluZGljYXRlZCBieSBvZmZzZXQxNi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIG9mZnNldCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLCBhbmQgbGVzcyB0aGFuCisgICAgICogb3IgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiBzb3VyY2UuCisgICAgICogQHBhcmFtIHRhcmdldCBzdHJpbmcgYnVmZmVyIHRvIGluc2VydCB0bworICAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggY2hhcjMyIHdpbGwgYmUgaW5zZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBiZSBpbnNlcnRlZAorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGFyZ2V0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBpbnZhbGlkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGluc2VydChTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gdmFsdWVPZihjaGFyMzIpOworICAgICAgICBpZiAob2Zmc2V0MTYgIT0gdGFyZ2V0Lmxlbmd0aCgpICYmCisgICAgICAgICAgICBib3VuZHModGFyZ2V0LCBvZmZzZXQxNikgPT0gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZKSB7CisgICAgICAgICAgICBvZmZzZXQxNiArKzsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQuaW5zZXJ0KG9mZnNldDE2LCBzdHIpOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEluc2VydHMgY2hhcjMyIGNvZGVwb2ludCBpbnRvIHRhcmdldCBhdCB0aGUgYXJndW1lbnQgb2Zmc2V0MTYuCisgICAgICogSWYgdGhlIG9mZnNldDE2IGlzIGluIHRoZSBtaWRkbGUgb2YgYSBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludCwgY2hhcjMyCisgICAgICogd2lsbCBiZSBpbnNlcnRlZCBhZnRlciB0aGUgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQuCisgICAgICogTGltaXQgaW5jcmVhc2VzIGJ5IG9uZSBpZiBjb2RlcG9pbnQgaXMgbm9uLXN1cHBsZW1lbnRhcnksIDIgb3RoZXJ3aXNlLgorICAgICAqIDxwPgorICAgICAqIFRoZSBvdmVyYWxsIGVmZmVjdCBpcyBleGFjdGx5IGFzIGlmIHRoZSBhcmd1bWVudCB3ZXJlIGNvbnZlcnRlZCB0byBhCisgICAgICogc3RyaW5nIGJ5IHRoZSBtZXRob2QgdmFsdWVPZihjaGFyKSBhbmQgdGhlIGNoYXJhY3RlcnMgaW4gdGhhdCBzdHJpbmcKKyAgICAgKiB3ZXJlIHRoZW4gaW5zZXJ0ZWQgaW50byB0YXJnZXQgYXQgdGhlIHBvc2l0aW9uIGluZGljYXRlZCBieSBvZmZzZXQxNi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIG9mZnNldCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLCBhbmQgbGVzcyB0aGFuCisgICAgICogb3IgZXF1YWwgdG8gdGhlIGxpbWl0LgorICAgICAqIEBwYXJhbSB0YXJnZXQgY2hhciBhcnJheSB0byBpbnNlcnQgdG8KKyAgICAgKiBAcGFyYW0gbGltaXQgZW5kIGluZGV4IG9mIHRoZSBjaGFyIGFycmF5LCBsaW1pdCA8PSB0YXJnZXQubGVuZ3RoCisgICAgICogQHBhcmFtIG9mZnNldDE2IG9mZnNldCB3aGljaCBjaGFyMzIgd2lsbCBiZSBpbnNlcnRlZCBpbgorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIGJlIGluc2VydGVkCisgICAgICogQHJldHVybiBuZXcgbGltaXQgc2l6ZQorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgaW52YWxpZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBpbnNlcnQoY2hhciB0YXJnZXRbXSwgaW50IGxpbWl0LCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gdmFsdWVPZihjaGFyMzIpOworICAgICAgICBpZiAob2Zmc2V0MTYgIT0gbGltaXQgJiYKKyAgICAgICAgICAgIGJvdW5kcyh0YXJnZXQsIDAsIGxpbWl0LCBvZmZzZXQxNikgPT0gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZKSB7CisgICAgICAgICAgICBvZmZzZXQxNiArKzsKKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGxpbWl0ICsgc2l6ZSA+IHRhcmdldC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYgKyBzaXplKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhcmdldCwgb2Zmc2V0MTYsIHRhcmdldCwgb2Zmc2V0MTYgKyBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IC0gb2Zmc2V0MTYpOworICAgICAgICB0YXJnZXRbb2Zmc2V0MTZdID0gc3RyLmNoYXJBdCgwKTsKKyAgICAgICAgaWYgKHNpemUgPT0gMikgeworICAgICAgICAgICAgdGFyZ2V0W29mZnNldDE2ICsgMV0gPSBzdHIuY2hhckF0KDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW1pdCArIHNpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgY29kZXBvaW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyB0YXJnZXQKKyAgICAgKiAoc2hvcnRlbmluZyB0YXJnZXQgYnkgMSBjaGFyYWN0ZXIgaWYgdGhlIGNvZGVwb2ludCBpcyBhCisgICAgICogbm9uLXN1cHBsZW1lbnRhcnksIDIgb3RoZXJ3aXNlKS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZyBidWZmZXIgdG8gcmVtb3ZlIGNvZGVwb2ludCBmcm9tCisgICAgICogQHBhcmFtIG9mZnNldDE2IG9mZnNldCB3aGljaCB0aGUgY29kZXBvaW50IHdpbGwgYmUgcmVtb3ZlZAorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGFyZ2V0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBpbnZhbGlkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGRlbGV0ZShTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICBzd2l0Y2ggKGJvdW5kcyh0YXJnZXQsIG9mZnNldDE2KSkgeworICAgICAgICBjYXNlIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOgorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIG9mZnNldDE2IC0tOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0LmRlbGV0ZShvZmZzZXQxNiwgb2Zmc2V0MTYgKyBjb3VudCk7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgY29kZXBvaW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyB0YXJnZXQKKyAgICAgKiAoc2hvcnRlbmluZyB0YXJnZXQgYnkgMSBjaGFyYWN0ZXIgaWYgdGhlIGNvZGVwb2ludCBpcyBhCisgICAgICogbm9uLXN1cHBsZW1lbnRhcnksIDIgb3RoZXJ3aXNlKS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZyBidWZmZXIgdG8gcmVtb3ZlIGNvZGVwb2ludCBmcm9tCisgICAgICogQHBhcmFtIGxpbWl0IGVuZCBpbmRleCBvZiB0aGUgY2hhciBhcnJheSwgbGltaXQgPD0gdGFyZ2V0Lmxlbmd0aAorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggdGhlIGNvZGVwb2ludCB3aWxsIGJlIHJlbW92ZWQKKyAgICAgKiBAcmV0dXJuIGEgbmV3IGxpbWl0IHNpemUKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZGVsZXRlKGNoYXIgdGFyZ2V0W10sIGludCBsaW1pdCwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgc3dpdGNoIChib3VuZHModGFyZ2V0LCAwLCBsaW1pdCwgb2Zmc2V0MTYpKSB7CisgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgb2Zmc2V0MTYgLS07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhcmdldCwgb2Zmc2V0MTYgKyBjb3VudCwgdGFyZ2V0LCBvZmZzZXQxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCAtIChvZmZzZXQxNiArIGNvdW50KSk7CisgICAgICAgIHRhcmdldFtsaW1pdCAtIGNvdW50XSA9IDA7CisgICAgICAgIHJldHVybiBsaW1pdCAtIGNvdW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludC4gSS5lLiwgdGhlIHNtYWxsZXN0CisgICAgICogaW5kZXggPGNvZGU+aTwvY29kZT4gc3VjaCB0aGF0IDxjb2RlPlVURjE2LmNoYXJBdChzb3VyY2UsIGkpID09CisgICAgICogY2hhcjMyPC9jb2RlPiBpcyB0cnVlLgorICAgICAqIDxwPklmIG5vIHN1Y2ggY2hhcmFjdGVyIG9jY3VycyBpbiB0aGlzIHN0cmluZywgdGhlbiAtMSBpcyByZXR1cm5lZC48L3A+CisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiYyIsICdhJykgcmV0dXJucyAwPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4MTAwMDApIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDApIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHRoZQorICAgICAqICAgICAgICAgYXJndW1lbnQgVW5pY29kZSBzdHJpbmcsIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwKKyAgICAgICAgICAgIGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyMzIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBibXAKKyAgICAgICAgaWYgKGNoYXIzMiA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fAorICAgICAgICAgICAgKGNoYXIzMiA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICBjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICB9CisgICAgICAgIC8vIHN1cnJvZ2F0ZQorICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaGFyMzIpICYmCisgICAgICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgU3RyaW5nIGNoYXIzMnN0ciA9IHRvU3RyaW5nKGNoYXIzMik7CisgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihjaGFyMzJzdHIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IHN0cmluZyBzdHIuIFRoaXMgbWV0aG9kIGlzCisgICAgICogaW1wbGVtZW50ZWQgYmFzZWQgb24gY29kZXBvaW50cywgaGVuY2UgYSAibGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyICsKKyAgICAgKiB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIiBpcyB0cmVhdGVkIGFzIG9uZSBlbnRpdHkuZQorICAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhCisgICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluCisgICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzCisgICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAgKiBTZWUgZXhhbXBsZSBiZWxvdy4KKyAgICAgKiA8cD5JZiBubyBzdWNoIHN0cmluZyBzdHIgb2NjdXJzIGluIHRoaXMgc291cmNlLCB0aGVuIC0xIGlzIHJldHVybmVkLgorICAgICAqIDwvcD4gPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiYyIsICJhYiIpIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIikgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDAiKSByZXR1cm5zIC0xPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gc3RyIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0byBzZWFyY2ggZm9yCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiB0aGUKKyAgICAgKiAgICAgICAgIGFyZ3VtZW50IFVuaWNvZGUgc3RyaW5nLCBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCBzdHJMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgZW5kcworICAgICAgICBpZiAoIWlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYKKyAgICAgICAgICAgICFpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihzdHIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCAgICA9IHNvdXJjZS5pbmRleE9mKHN0cik7CisgICAgICAgIGludCByZXN1bHRFbmQgPSByZXN1bHQgKyBzdHJMZW5ndGg7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYKKyAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0RW5kICsgMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdEVuZCArIDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGlzIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJiByZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdEVuZCArIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YKKyAgICAgKiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50LiBJLmUuLCB0aGUgc21hbGxlc3QKKyAgICAgKiBpbmRleCBpIHN1Y2ggdGhhdDogPGJyPgorICAgICAqIChVVEYxNi5jaGFyQXQoc291cmNlLCBpKSA9PSBjaGFyMzIgJiYgaSA+PSBmcm9tSW5kZXgpIGlzIHRydWUuCisgICAgICogPHA+SWYgbm8gc3VjaCBjaGFyYWN0ZXIgb2NjdXJzIGluIHRoaXMgc3RyaW5nLCB0aGVuIC0xIGlzIHJldHVybmVkLjwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBFeGFtcGxlczo8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjIiwgJ2EnLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4MTAwMDAsIDEpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDAsIDEpIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcGFyYW0gZnJvbUluZGV4IHRoZSBpbmRleCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiB0aGUKKyAgICAgKiAgICAgICAgIGFyZ3VtZW50IFVuaWNvZGUgc3RyaW5nIGF0IG9yIGFmdGVyIGZyb21JbmRleCwgb3IgLTEgaWYgdGhlCisgICAgICogICAgICAgICBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBpbnQgY2hhcjMyLCBpbnQgZnJvbUluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IGNoYXIzMiBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBub24tc3Vycm9nYXRlIGJtcAorICAgICAgICBpZiAoY2hhcjMyIDwgTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIHx8CisgICAgICAgICAgICAoY2hhcjMyID4gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSAmJgorICAgICAgICAgICAgIGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5pbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmluZGV4T2YoKGNoYXIpY2hhcjMyLCBmcm9tSW5kZXgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaGFyMzIpICYmCisgICAgICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgU3RyaW5nIGNoYXIzMnN0ciA9IHRvU3RyaW5nKGNoYXIzMik7CisgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihjaGFyMzJzdHIsIGZyb21JbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YKKyAgICAgKiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgc3RyaW5nIHN0ci4gVGhpcyBtZXRob2QgaXMKKyAgICAgKiBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhICJsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgKworICAgICAqIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIiIGlzIHRyZWF0ZWQgYXMgb25lIGVudGl0eS5lCisgICAgICogSGVuY2UgaWYgdGhlIHN0ciBzdGFydHMgd2l0aCB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIGF0IGluZGV4IDAsIGEKKyAgICAgKiBzb3VyY2Ugd2l0aCBhIGxlYWRpbmcgYSBzdXJyb2dhdGUgY2hhcmFjdGVyIGJlZm9yZSBzdHIgZm91bmQgYXQgaW4KKyAgICAgKiBzb3VyY2Ugd2lsbCBub3QgaGF2ZSBhIHZhbGlkIG1hdGNoLiBWaWNlIHZlcnNhIGZvciBsZWFkIHN1cnJvZ2F0ZXMKKyAgICAgKiB0aGF0IGVuZHMgc3RyLgorICAgICAqIFNlZSBleGFtcGxlIGJlbG93LgorICAgICAqIDxwPklmIG5vIHN1Y2ggc3RyaW5nIHN0ciBvY2N1cnMgaW4gdGhpcyBzb3VyY2UsIHRoZW4gLTEgaXMgcmV0dXJuZWQuCisgICAgICogPC9wPiA8cD4KKyAgICAgKiBFeGFtcGxlczo8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjIiwgImFiIiwgMCkgcmV0dXJucyAwPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDBcdWRjMDAiLCAwKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsIDIpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgMCkgcmV0dXJucyAtMTxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIHN0ciBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdG8gc2VhcmNoIGZvcgorICAgICAqIEBwYXJhbSBmcm9tSW5kZXggdGhlIGluZGV4IHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHRoZQorICAgICAqICAgICAgICAgYXJndW1lbnQgVW5pY29kZSBzdHJpbmcsIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBTdHJpbmcgc3RyLCBpbnQgZnJvbUluZGV4KQorICAgIHsKKyAgICAgICAgaW50IHN0ckxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBlbmRzCisgICAgICAgIGlmICghaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJgorICAgICAgICAgICAgIWlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5pbmRleE9mKHN0ciwgZnJvbUluZGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UuaW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIGludCByZXN1bHRFbmQgPSByZXN1bHQgKyBzdHJMZW5ndGg7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYKKyAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0RW5kKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0RW5kICsgMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjaGVjayBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggaXMgYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0RW5kICsgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCB3aXRoaW4gdGhlIGFyZ3VtZW50IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyBvZgorICAgICAqIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludC4gSS5lLiwgdGhlIGluZGV4IHJldHVybmVkCisgICAgICogaXMgdGhlIGxhcmdlc3QgdmFsdWUgaSBzdWNoIHRoYXQ6IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpID09IGNoYXIzMgorICAgICAqIGlzIHRydWUuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmMiLCAnYScpIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHgxMDAwMCkgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDApIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIDxwPnNvdXJjZSBpcyBzZWFyY2hlZCBiYWNrd2FyZHMgc3RhcnRpbmcgYXQgdGhlIGxhc3QgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBzZWFyY2ggZm9yCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHNvdXJjZSwKKyAgICAgKiAgICAgICAgIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nIHNvdXJjZSwgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPCBDT0RFUE9JTlRfTUlOX1ZBTFVFIHx8IGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyMzIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBibXAKKyAgICAgICAgaWYgKGNoYXIzMiA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fAorICAgICAgICAgICAgKGNoYXIzMiA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICBjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UubGFzdEluZGV4T2YoKGNoYXIpY2hhcjMyKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMik7CisgICAgICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoYXIzMikgJiYKKyAgICAgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmCisgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0IC0gMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXBwbGVtZW50YXJ5CisgICAgICAgIFN0cmluZyBjaGFyMzJzdHIgPSB0b1N0cmluZyhjaGFyMzIpOworICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKGNoYXIzMnN0cik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YKKyAgICAgKiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcgc3RyLiBUaGlzIG1ldGhvZCBpcworICAgICAqIGltcGxlbWVudGVkIGJhc2VkIG9uIGNvZGVwb2ludHMsIGhlbmNlIGEgImxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciArCisgICAgICogdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciIgaXMgdHJlYXRlZCBhcyBvbmUgZW50aXR5LmUKKyAgICAgKiBIZW5jZSBpZiB0aGUgc3RyIHN0YXJ0cyB3aXRoIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYXQgaW5kZXggMCwgYQorICAgICAqIHNvdXJjZSB3aXRoIGEgbGVhZGluZyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYmVmb3JlIHN0ciBmb3VuZCBhdCBpbgorICAgICAqIHNvdXJjZSB3aWxsIG5vdCBoYXZlIGEgdmFsaWQgbWF0Y2guIFZpY2UgdmVyc2EgZm9yIGxlYWQgc3Vycm9nYXRlcworICAgICAqIHRoYXQgZW5kcyBzdHIuCisgICAgICogU2VlIGV4YW1wbGUgYmVsb3cuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmMiLCAiYSIpIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMCIpIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIDxwPnNvdXJjZSBpcyBzZWFyY2hlZCBiYWNrd2FyZHMgc3RhcnRpbmcgYXQgdGhlIGxhc3QgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gc3RyIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0byBzZWFyY2ggZm9yCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHNvdXJjZSwKKyAgICAgKiAgICAgICAgIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCBzdHJMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgZW5kcworICAgICAgICBpZiAoIWlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYKKyAgICAgICAgICAgICFpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UubGFzdEluZGV4T2Yoc3RyKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UubGFzdEluZGV4T2Yoc3RyKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAvLyBjaGVjayBsYXN0IGNoYXJhY3RlcgorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSAmJgorICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyBzdHJMZW5ndGggKyAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGlzIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJiByZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50LCB3aGVyZSB0aGUgcmVzdWx0IGlzIGxlc3MKKyAgICAgKiB0aGFuIG9yIGVxdWFscyB0byBmcm9tSW5kZXguPC9wPgorICAgICAqIDxwPlRoaXMgbWV0aG9kIGlzIGltcGxlbWVudGVkIGJhc2VkIG9uIGNvZGVwb2ludHMsIGhlbmNlIGEgc2luZ2xlCisgICAgICogc3Vycm9nYXRlIGNoYXJhY3RlciB3aWxsIG5vdCBtYXRjaCBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiA8cD5zb3VyY2UgaXMgc2VhcmNoZWQgYmFja3dhcmRzIHN0YXJ0aW5nIGF0IHRoZSBsYXN0IGNoYXJhY3RlciBzdGFydGluZworICAgICAqIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguPC9wPgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgJ2MnLCAyKSByZXR1cm5zIDI8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiYyIsICdjJywgMSkgcmV0dXJucyAtMTxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHgxMDAwMCwgNSkgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweDEwMDAwLCAzKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4ZDgwMCkgcmV0dXJucyAtMTxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlcG9pbnQgdG8gc2VhcmNoIGZvcgorICAgICAqIEBwYXJhbSBmcm9tSW5kZXggdGhlIGluZGV4IHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbS4gVGhlcmUgaXMgbm8KKyAgICAgKiAgICAgICAgICAgICAgICAgIHJlc3RyaWN0aW9uIG9uIHRoZSB2YWx1ZSBvZiBmcm9tSW5kZXguIElmIGl0IGlzCisgICAgICogICAgICAgICAgICAgICAgICBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGl0IGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgaWYgaXQgd2VyZSBlcXVhbCB0byBvbmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoaXMgc3RyaW5nOiB0aGlzIGVudGlyZQorICAgICAqICAgICAgICAgICAgICAgICAgc3RyaW5nIG1heSBiZSBzZWFyY2hlZC4gSWYgaXQgaXMgbmVnYXRpdmUsIGl0IGhhcworICAgICAqICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgZWZmZWN0IGFzIGlmIGl0IHdlcmUgLTE6IC0xIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UsCisgICAgICogICAgICAgICBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhc3RJbmRleE9mKFN0cmluZyBzb3VyY2UsIGludCBjaGFyMzIsIGludCBmcm9tSW5kZXgpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgYm1wCisgICAgICAgIGlmIChjaGFyMzIgPCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgfHwKKyAgICAgICAgICAgIChjaGFyMzIgPiBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmCisgICAgICAgICAgICAgY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcjMyKSAmJgorICAgICAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCArIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBjaGFyMzIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCAmJgorICAgICAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgU3RyaW5nIGNoYXIzMnN0ciA9IHRvU3RyaW5nKGNoYXIzMik7CisgICAgICAgIHJldHVybiBzb3VyY2UubGFzdEluZGV4T2YoY2hhcjMyc3RyLCBmcm9tSW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgc3RyaW5nIHN0ciwgd2hlcmUgdGhlIHJlc3VsdCBpcyBsZXNzCisgICAgICogdGhhbiBvciBlcXVhbHMgdG8gZnJvbUluZGV4LjwvcD4KKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhCisgICAgICogImxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciArIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIiIGlzIHRyZWF0ZWQgYXMgb25lCisgICAgICogZW50aXR5LgorICAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhCisgICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluCisgICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzCisgICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAgKiA8L3A+CisgICAgICogU2VlIGV4YW1wbGUgYmVsb3cuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmMiLCAiYyIsIDIpIHJldHVybnMgMjxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgImMiLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIiwgNSkgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIiwgMykgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgNCkgcmV0dXJucyAtMTxicj4KKyAgICAgKiA8L3A+CisgICAgICogPHA+c291cmNlIGlzIHNlYXJjaGVkIGJhY2t3YXJkcyBzdGFydGluZyBhdCB0aGUgbGFzdCBjaGFyYWN0ZXIuPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBzdHIgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcGFyYW0gZnJvbUluZGV4IHRoZSBpbmRleCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uIFRoZXJlIGlzIG5vCisgICAgICogICAgICAgICAgICAgICAgICByZXN0cmljdGlvbiBvbiB0aGUgdmFsdWUgb2YgZnJvbUluZGV4LiBJZiBpdCBpcworICAgICAqICAgICAgICAgICAgICAgICAgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmcsCisgICAgICogICAgICAgICAgICAgICAgICBpdCBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIGlmIGl0IHdlcmUgZXF1YWwgdG8gb25lCisgICAgICogICAgICAgICAgICAgICAgICBsZXNzIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZzogdGhpcyBlbnRpcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHN0cmluZyBtYXkgYmUgc2VhcmNoZWQuIElmIGl0IGlzIG5lZ2F0aXZlLCBpdCBoYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGVmZmVjdCBhcyBpZiBpdCB3ZXJlIC0xOiAtMSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlLAorICAgICAqICAgICAgICAgb3IgLTEgaWYgdGhlIGNvZGVwb2ludCBkb2VzIG5vdCBvY2N1ci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBsYXN0SW5kZXhPZihTdHJpbmcgc291cmNlLCBTdHJpbmcgc3RyLCBpbnQgZnJvbUluZGV4KQorICAgIHsKKyAgICAgICAgaW50IHN0ckxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBlbmRzCisgICAgICAgIGlmICghaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJgorICAgICAgICAgICAgIWlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ICAgID0gc291cmNlLmxhc3RJbmRleE9mKHN0ciwgZnJvbUluZGV4KTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAvLyBjaGVjayBsYXN0IGNoYXJhY3RlcgorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSAmJgorICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyBzdHJMZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0IC0gMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjaGVjayBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggaXMgYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgcmVzdWx0aW5nIGZyb20gcmVwbGFjaW5nIGFsbAorICAgICAqIG9jY3VycmVuY2VzIG9mIG9sZENoYXIzMiBpbiBzb3VyY2Ugd2l0aCBuZXdDaGFyMzIuCisgICAgICogSWYgdGhlIGNoYXJhY3RlciBvbGRDaGFyMzIgZG9lcyBub3Qgb2NjdXIgaW4gdGhlIFVURjE2IGZvcm1hdCBVbmljb2RlCisgICAgICogc3RyaW5nIHNvdXJjZSwgdGhlbiBzb3VyY2Ugd2lsbCBiZSByZXR1cm5lZC4gT3RoZXJ3aXNlLCBhIG5ldyBTdHJpbmcKKyAgICAgKiBvYmplY3QgaXMgY3JlYXRlZCB0aGF0IHJlcHJlc2VudHMgYSBjb2RlcG9pbnQgc2VxdWVuY2UgaWRlbnRpY2FsIHRvIHRoZQorICAgICAqIGNvZGVwb2ludCBzZXF1ZW5jZSByZXByZXNlbnRlZCBieSBzb3VyY2UsIGV4Y2VwdCB0aGF0IGV2ZXJ5IG9jY3VycmVuY2UKKyAgICAgKiBvZiBvbGRDaGFyMzIgaXMgcmVwbGFjZWQgYnkgYW4gb2NjdXJyZW5jZSBvZiBuZXdDaGFyMzIuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6IDxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJtZXNxdWl0ZSBpbiB5b3VyIGNlbGxhciIsICdlJywgJ28nKTs8YnI+CisgICAgICogICAgICAgIHJldHVybnMgIm1vc3F1aXRvIGluIHlvdXIgY29sbGFyIjxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJKb25MIiwgJ3EnLCAneCcpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAiSm9uTCIgKG5vIGNoYW5nZSk8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgMHgxMDAwMCwgJyEnKTsKKyAgICAgKiA8YnI+ICAgcmV0dXJucyAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgISI8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgMHhkODAwLCAnIScpOworICAgICAqIDxicj4gICByZXR1cm5zICJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBcdWQ4MDBcdWRjMDAiPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB3aGljaCB0aGUgY29kZXBvaW50CisgICAgICogICAgICAgICAgICAgICByZXBsYWNlbWVudHMgd2lsbCBiZSBiYXNlZCBvbi4KKyAgICAgKiBAcGFyYW0gb2xkQ2hhcjMyIG5vbi16ZXJvIG9sZCBjb2RlcG9pbnQgdG8gYmUgcmVwbGFjZWQuCisgICAgICogQHBhcmFtIG5ld0NoYXIzMiB0aGUgbmV3IGNvZGVwb2ludCB0byByZXBsYWNlIG9sZENoYXIzMgorICAgICAqIEByZXR1cm4gbmV3IFN0cmluZyBkZXJpdmVkIGZyb20gc291cmNlIGJ5IHJlcGxhY2luZyBldmVyeSBvY2N1cnJlbmNlCisgICAgICogICAgICAgICBvZiBvbGRDaGFyMzIgd2l0aCBuZXdDaGFyMzIsIHVubGVzcyB3aGVuIG5vIG9sZENoYXIzMiBpcyBmb3VuZAorICAgICAqICAgICAgICAgaW4gc291cmNlIHRoZW4gc291cmNlIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBpbnQgb2xkQ2hhcjMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0NoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChvbGRDaGFyMzIgPD0gMCB8fCBvbGRDaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgb2xkQ2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIGlmIChuZXdDaGFyMzIgPD0gMCB8fCBuZXdDaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgbmV3Q2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGluZGV4ICAgICA9IGluZGV4T2Yoc291cmNlLCBvbGRDaGFyMzIpOworICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nICAgICAgIG5ld0NoYXIzMlN0ciAgICA9IHRvU3RyaW5nKG5ld0NoYXIzMik7CisgICAgICAgIGludCAgICAgICAgICBvbGRDaGFyMzJTaXplICAgPSAxOworICAgICAgICBpbnQgICAgICAgICAgbmV3Q2hhcjMyU2l6ZSAgID0gbmV3Q2hhcjMyU3RyLmxlbmd0aCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzb3VyY2UpOworICAgICAgICBpbnQgICAgICAgICAgcmVzdWx0SW5kZXggICAgID0gaW5kZXg7CisKKyAgICAgICAgaWYgKG9sZENoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgb2xkQ2hhcjMyU2l6ZSA9IDI7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoaW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgIGludCBlbmRSZXN1bHRJbmRleCAgPSByZXN1bHRJbmRleCArIG9sZENoYXIzMlNpemU7CisgICAgICAgICAgICByZXN1bHQucmVwbGFjZShyZXN1bHRJbmRleCwgZW5kUmVzdWx0SW5kZXgsIG5ld0NoYXIzMlN0cik7CisgICAgICAgICAgICBpbnQgbGFzdEVuZEluZGV4ICAgID0gaW5kZXggKyBvbGRDaGFyMzJTaXplOworICAgICAgICAgICAgaW5kZXggICAgICAgPSBpbmRleE9mKHNvdXJjZSwgb2xkQ2hhcjMyLCBsYXN0RW5kSW5kZXgpOworICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gbmV3Q2hhcjMyU2l6ZSArIGluZGV4IC0gbGFzdEVuZEluZGV4OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyByZXN1bHRpbmcgZnJvbSByZXBsYWNpbmcgYWxsCisgICAgICogb2NjdXJyZW5jZXMgb2Ygb2xkU3RyIGluIHNvdXJjZSB3aXRoIG5ld1N0ci4KKyAgICAgKiBJZiB0aGUgc3RyaW5nIG9sZFN0ciBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgVVRGMTYgZm9ybWF0IFVuaWNvZGUKKyAgICAgKiBzdHJpbmcgc291cmNlLCB0aGVuIHNvdXJjZSB3aWxsIGJlIHJldHVybmVkLiBPdGhlcndpc2UsIGEgbmV3IFN0cmluZworICAgICAqIG9iamVjdCBpcyBjcmVhdGVkIHRoYXQgcmVwcmVzZW50cyBhIGNvZGVwb2ludCBzZXF1ZW5jZSBpZGVudGljYWwgdG8gdGhlCisgICAgICogY29kZXBvaW50IHNlcXVlbmNlIHJlcHJlc2VudGVkIGJ5IHNvdXJjZSwgZXhjZXB0IHRoYXQgZXZlcnkgb2NjdXJyZW5jZQorICAgICAqIG9mIG9sZFN0ciBpcyByZXBsYWNlZCBieSBhbiBvY2N1cnJlbmNlIG9mIG5ld1N0ci4KKyAgICAgKiA8cD4KKyAgICAgKiBFeGFtcGxlczogPGJyPgorICAgICAqIFVURjE2LnJlcGxhY2UoIm1lc3F1aXRlIGluIHlvdXIgY2VsbGFyIiwgImUiLCAibyIpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAibW9zcXVpdG8gaW4geW91ciBjb2xsYXIiPGJyPgorICAgICAqIFVURjE2LnJlcGxhY2UoIm1lc3F1aXRlIGluIHlvdXIgY2VsbGFyIiwgIm1lc3F1aXRlIiwgImNhdCIpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAiY2F0IGluIHlvdXIgY2VsbGFyIjxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJKb25MIiwgInEiLCAieCIpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAiSm9uTCIgKG5vIGNoYW5nZSk8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsCisgICAgICogICAgICAgICAgICAgICAnIScpOworICAgICAqIDxicj4gICByZXR1cm5zICJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciAhIjxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgJyEnKTsKKyAgICAgKiA8YnI+ICAgcmV0dXJucyAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIjxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgd2hpY2ggdGhlCisgICAgICogICAgICAgICAgICAgICByZXBsYWNlbWVudHMgd2lsbCBiZSBiYXNlZCBvbi4KKyAgICAgKiBAcGFyYW0gb2xkU3RyIG5vbi16ZXJvLWxlbmd0aCBzdHJpbmcgdG8gYmUgcmVwbGFjZWQuCisgICAgICogQHBhcmFtIG5ld1N0ciB0aGUgbmV3IHN0cmluZyB0byByZXBsYWNlIG9sZFN0cgorICAgICAqIEByZXR1cm4gbmV3IFN0cmluZyBkZXJpdmVkIGZyb20gc291cmNlIGJ5IHJlcGxhY2luZyBldmVyeSBvY2N1cnJlbmNlCisgICAgICogICAgICAgICBvZiBvbGRTdHIgd2l0aCBuZXdTdHIuICBXaGVuIG5vIG9sZFN0ciBpcyBmb3VuZAorICAgICAqICAgICAgICAgaW4gc291cmNlLCB0aGVuIHNvdXJjZSB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIG9sZFN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdTdHIpCisgICAgeworICAgICAgICBpbnQgaW5kZXggICAgID0gaW5kZXhPZihzb3VyY2UsIG9sZFN0cik7CisgICAgICAgIGlmIChpbmRleCA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgICAgICAgICAgb2xkU3RyU2l6ZSAgID0gb2xkU3RyLmxlbmd0aCgpOworICAgICAgICBpbnQgICAgICAgICAgbmV3U3RyU2l6ZSAgID0gbmV3U3RyLmxlbmd0aCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcihzb3VyY2UpOworICAgICAgICBpbnQgICAgICAgICAgcmVzdWx0SW5kZXggICAgID0gaW5kZXg7CisKKyAgICAgICAgd2hpbGUgKGluZGV4ICE9IC0xKSB7CisgICAgICAgICAgICBpbnQgZW5kUmVzdWx0SW5kZXggID0gcmVzdWx0SW5kZXggKyBvbGRTdHJTaXplOworICAgICAgICAgICAgcmVzdWx0LnJlcGxhY2UocmVzdWx0SW5kZXgsIGVuZFJlc3VsdEluZGV4LCBuZXdTdHIpOworICAgICAgICAgICAgaW50IGxhc3RFbmRJbmRleCAgICA9IGluZGV4ICsgb2xkU3RyU2l6ZTsKKyAgICAgICAgICAgIGluZGV4ICAgICAgID0gaW5kZXhPZihzb3VyY2UsIG9sZFN0ciwgbGFzdEVuZEluZGV4KTsKKyAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IG5ld1N0clNpemUgKyBpbmRleCAtIGxhc3RFbmRJbmRleDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV2ZXJzZXMgYSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgYW5kIHJlcGxhY2VzIHNvdXJjZSdzIGNvbnRlbnQKKyAgICAgKiB3aXRoIGl0LgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgcmV2ZXJzZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBjb3JyZWN0bHksIGluc3RlYWQgb2YKKyAgICAgKiBibGluZGx5IHJldmVyc2luZyBldmVyeSBjaGFyYWN0ZXIuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LnJldmVyc2UobmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgKiAgICAgICAgICAgICAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIFx1ZDgwMFx1ZGMwMFx1ZDgwMVx1ZGMwMSIpKTxicj4KKyAgICAgKiByZXR1cm5zICJcdWQ4MDFcdWRjMDFcdWQ4MDBcdWRjMDAgc3JldGNhcmFoYyB5cmF0bmVtZWxwcHVTIi4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgU3RyaW5nQnVmZmVyIHRoYXQgY29udGFpbnMgVVRGMTYgZm9ybWF0CisgICAgICogICAgICAgIFVuaWNvZGUgc3RyaW5nIHRvIGJlIHJldmVyc2VkCisgICAgICogQHJldHVybiBhIG1vZGlmaWVkIHNvdXJjZSB3aXRoIHJldmVyc2VkIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciByZXZlcnNlKFN0cmluZ0J1ZmZlciBzb3VyY2UpCisgICAgeworICAgIGludCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIobGVuZ3RoKTsKKyAgICBmb3IgKGludCBpID0gbGVuZ3RoOyBpLS0gPiAwOykgeworICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoY2gpICYmIGkgPiAwKSB7CisgICAgICAgIGNoYXIgY2gyID0gc291cmNlLmNoYXJBdChpLTEpOworICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoMikpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2gyKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2gpOworICAgICAgICAgICAgLS1pOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiB0aGUgc3RyaW5nIGNvbnRhaW5zIG1vcmUgVW5pY29kZSBjb2RlIHBvaW50cyB0aGFuIGEgY2VydGFpbgorICAgICAqIG51bWJlci4gVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGNvdW50aW5nIGFsbCBjb2RlIHBvaW50cyBpbiB0aGUKKyAgICAgKiBlbnRpcmUgc3RyaW5nIGFuZCBjb21wYXJpbmcgdGhhdCBudW1iZXIgd2l0aCBhIHRocmVzaG9sZC4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1heSBub3QgbmVlZCB0byBzY2FuIHRoZSBzdHJpbmcgYXQgYWxsIGlmIHRoZSBsZW5ndGggaXMKKyAgICAgKiB3aXRoaW4gYSBjZXJ0YWluIHJhbmdlLCBhbmQgbmV2ZXIgbmVlZHMgdG8gY291bnQgbW9yZSB0aGFuICdudW1iZXIgKyAxJworICAgICAqIGNvZGUgcG9pbnRzLiBMb2dpY2FsbHkgZXF1aXZhbGVudCB0byAoY291bnRDb2RlUG9pbnQocykgPiBudW1iZXIpLiBBCisgICAgICogVW5pY29kZSBjb2RlIHBvaW50IG1heSBvY2N1cHkgZWl0aGVyIG9uZSBvciB0d28gY29kZSB1bml0cy4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBpbnB1dCBzdHJpbmcuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSBzdHJpbmcgaXMgY29tcGFyZWQKKyAgICAgKiAgICAgICAgICAgICAgIGFnYWluc3QgdGhlICdudW1iZXInIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdmFsdWUgZm9yIHdoZXRoZXIgdGhlIHN0cmluZyBjb250YWlucyBtb3JlIFVuaWNvZGUgY29kZQorICAgICAqICAgICAgICAgcG9pbnRzIHRoYW4gJ251bWJlcicuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc01vcmVDb2RlUG9pbnRzVGhhbihTdHJpbmcgc291cmNlLCBpbnQgbnVtYmVyKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGludCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoKCk7CisKKyAgICAgICAgLy8gbGVuZ3RoID49IDAga25vd24KKyAgICAgICAgLy8gc291cmNlIGNvbnRhaW5zIGF0IGxlYXN0IChsZW5ndGggKyAxKSAvIDIgY29kZSBwb2ludHM6IDw9IDIKKyAgICAgICAgLy8gY2hhcnMgcGVyIGNwCisgICAgICAgIGlmICgoKGxlbmd0aCArIDEpID4+IDEpID4gbnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGlmIHNvdXJjZSBkb2VzIG5vdCBldmVuIGNvbnRhaW4gZW5vdWdoIGNoYXJzCisgICAgICAgIGludCBtYXhzdXBwbGVtZW50YXJ5ID0gbGVuZ3RoIC0gbnVtYmVyOworICAgICAgICBpZiAobWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyB0aGVyZSBhcmUgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlciBtb3JlIGNoYXJzIHRoYW4KKyAgICAgICAgLy8gYXNrZWQtZm9yIGNvZGUgcG9pbnRzCisKKyAgICAgICAgLy8gY291bnQgY29kZSBwb2ludHMgdW50aWwgdGhleSBleGNlZWQgYW5kIGFsc28gY2hlY2sgdGhhdCB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gbW9yZSB0aGFuIG1heHN1cHBsZW1lbnRhcnkgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoY2hhciBwYWlycykKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChudW1iZXIgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0ICsrKSkgJiYgc3RhcnQgIT0gbGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICBpZiAoLS0gbWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRvbyBtYW55IHBhaXJzIC0gdG9vIGZldyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIHN1Yi1yYW5nZSBvZiBjaGFyIGFycmF5LCBmcm9tIGFyZ3VtZW50IHN0YXJ0IHRvIGxpbWl0LAorICAgICAqIGNvbnRhaW5zIG1vcmUgVW5pY29kZSBjb2RlIHBvaW50cyB0aGFuIGEgY2VydGFpbgorICAgICAqIG51bWJlci4gVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGNvdW50aW5nIGFsbCBjb2RlIHBvaW50cyBpbiB0aGUKKyAgICAgKiBlbnRpcmUgY2hhciBhcnJheSByYW5nZSBhbmQgY29tcGFyaW5nIHRoYXQgbnVtYmVyIHdpdGggYSB0aHJlc2hvbGQuCisgICAgICogVGhpcyBmdW5jdGlvbiBtYXkgbm90IG5lZWQgdG8gc2NhbiB0aGUgY2hhciBhcnJheSBhdCBhbGwgaWYgc3RhcnQgYW5kCisgICAgICogbGltaXQgaXMgd2l0aGluIGEgY2VydGFpbiByYW5nZSwgYW5kIG5ldmVyIG5lZWRzIHRvIGNvdW50IG1vcmUgdGhhbgorICAgICAqICdudW1iZXIgKyAxJyBjb2RlIHBvaW50cy4KKyAgICAgKiBMb2dpY2FsbHkgZXF1aXZhbGVudCB0byAoY291bnRDb2RlUG9pbnQoc291cmNlLCBzdGFydCwgbGltaXQpID4gbnVtYmVyKS4KKyAgICAgKiBBIFVuaWNvZGUgY29kZSBwb2ludCBtYXkgb2NjdXB5IGVpdGhlciBvbmUgb3IgdHdvIGNvZGUgdW5pdHMuCisgICAgICogQHBhcmFtIHNvdXJjZSBhcnJheSBvZiBVVEYtMTYgY2hhcnMKKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHN0cmluZyBpcyBjb21wYXJlZAorICAgICAqICAgICAgICAgICAgICAgYWdhaW5zdCB0aGUgJ251bWJlcicgcGFyYW1ldGVyLgorICAgICAqIEByZXR1cm4gYm9vbGVhbiB2YWx1ZSBmb3Igd2hldGhlciB0aGUgc3RyaW5nIGNvbnRhaW5zIG1vcmUgVW5pY29kZSBjb2RlCisgICAgICogICAgICAgICBwb2ludHMgdGhhbiAnbnVtYmVyJy4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIHdoZW4gbGltaXQgJmx0OyBzdGFydAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNNb3JlQ29kZVBvaW50c1RoYW4oY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LCBpbnQgbnVtYmVyKQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHN0YXJ0IDwgMCB8fCBsaW1pdCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0YXJ0IGFuZCBsaW1pdCBpbmRleGVzIHNob3VsZCBiZSBub24tbmVnYXRpdmUgYW5kIHN0YXJ0IDw9IGxpbWl0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gbGVuZ3RoID49IDAga25vd24KKyAgICAgICAgLy8gc291cmNlIGNvbnRhaW5zIGF0IGxlYXN0IChsZW5ndGggKyAxKSAvIDIgY29kZSBwb2ludHM6IDw9IDIKKyAgICAgICAgLy8gY2hhcnMgcGVyIGNwCisgICAgICAgIGlmICgoKGxlbmd0aCArIDEpID4+IDEpID4gbnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGlmIHNvdXJjZSBkb2VzIG5vdCBldmVuIGNvbnRhaW4gZW5vdWdoIGNoYXJzCisgICAgICAgIGludCBtYXhzdXBwbGVtZW50YXJ5ID0gbGVuZ3RoIC0gbnVtYmVyOworICAgICAgICBpZiAobWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyB0aGVyZSBhcmUgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlciBtb3JlIGNoYXJzIHRoYW4KKyAgICAgICAgLy8gYXNrZWQtZm9yIGNvZGUgcG9pbnRzCisKKyAgICAgICAgLy8gY291bnQgY29kZSBwb2ludHMgdW50aWwgdGhleSBleGNlZWQgYW5kIGFsc28gY2hlY2sgdGhhdCB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gbW9yZSB0aGFuIG1heHN1cHBsZW1lbnRhcnkgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoY2hhciBwYWlycykKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChudW1iZXIgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2Vbc3RhcnQgKytdKSAmJiBzdGFydCAhPSBsaW1pdAorICAgICAgICAgICAgICAgICYmIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW3N0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICBpZiAoLS0gbWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRvbyBtYW55IHBhaXJzIC0gdG9vIGZldyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIHN0cmluZyBidWZmZXIgY29udGFpbnMgbW9yZSBVbmljb2RlIGNvZGUgcG9pbnRzIHRoYW4gYQorICAgICAqIGNlcnRhaW4gbnVtYmVyLiBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gY291bnRpbmcgYWxsIGNvZGUgcG9pbnRzIGluCisgICAgICogdGhlIGVudGlyZSBzdHJpbmcgYnVmZmVyIGFuZCBjb21wYXJpbmcgdGhhdCBudW1iZXIgd2l0aCBhIHRocmVzaG9sZC4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1heSBub3QgbmVlZCB0byBzY2FuIHRoZSBzdHJpbmcgYnVmZmVyIGF0IGFsbCBpZiB0aGUKKyAgICAgKiBsZW5ndGggaXMgd2l0aGluIGEgY2VydGFpbiByYW5nZSwgYW5kIG5ldmVyIG5lZWRzIHRvIGNvdW50IG1vcmUgdGhhbgorICAgICAqICdudW1iZXIgKyAxJyBjb2RlIHBvaW50cy4gTG9naWNhbGx5IGVxdWl2YWxlbnQgdG8KKyAgICAgKiAoY291bnRDb2RlUG9pbnQocykgPiBudW1iZXIpLiBBIFVuaWNvZGUgY29kZSBwb2ludCBtYXkgb2NjdXB5IGVpdGhlciBvbmUKKyAgICAgKiBvciB0d28gY29kZSB1bml0cy4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBpbnB1dCBzdHJpbmcgYnVmZmVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgc3RyaW5nIGJ1ZmZlciBpcyBjb21wYXJlZAorICAgICAqICAgICAgICAgICAgICAgYWdhaW5zdCB0aGUgJ251bWJlcicgcGFyYW1ldGVyLgorICAgICAqIEByZXR1cm4gYm9vbGVhbiB2YWx1ZSBmb3Igd2hldGhlciB0aGUgc3RyaW5nIGJ1ZmZlciBjb250YWlucyBtb3JlCisgICAgICogICAgICAgICBVbmljb2RlIGNvZGUgcG9pbnRzIHRoYW4gJ251bWJlcicuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc01vcmVDb2RlUG9pbnRzVGhhbihTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgbnVtYmVyKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGludCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoKCk7CisKKyAgICAgICAgLy8gbGVuZ3RoID49IDAga25vd24KKyAgICAgICAgLy8gc291cmNlIGNvbnRhaW5zIGF0IGxlYXN0IChsZW5ndGggKyAxKSAvIDIgY29kZSBwb2ludHM6IDw9IDIKKyAgICAgICAgLy8gY2hhcnMgcGVyIGNwCisgICAgICAgIGlmICgoKGxlbmd0aCArIDEpID4+IDEpID4gbnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGlmIHNvdXJjZSBkb2VzIG5vdCBldmVuIGNvbnRhaW4gZW5vdWdoIGNoYXJzCisgICAgICAgIGludCBtYXhzdXBwbGVtZW50YXJ5ID0gbGVuZ3RoIC0gbnVtYmVyOworICAgICAgICBpZiAobWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyB0aGVyZSBhcmUgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlciBtb3JlIGNoYXJzIHRoYW4KKyAgICAgICAgLy8gYXNrZWQtZm9yIGNvZGUgcG9pbnRzCisKKyAgICAgICAgLy8gY291bnQgY29kZSBwb2ludHMgdW50aWwgdGhleSBleGNlZWQgYW5kIGFsc28gY2hlY2sgdGhhdCB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gbW9yZSB0aGFuIG1heHN1cHBsZW1lbnRhcnkgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoY2hhciBwYWlycykKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChudW1iZXIgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0ICsrKSkgJiYgc3RhcnQgIT0gbGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICBpZiAoLS0gbWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRvbyBtYW55IHBhaXJzIC0gdG9vIGZldyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgSkRLIDEuNSBBUEkuICBDcmVhdGUgYSBTdHJpbmcgZnJvbSBhbiBhcnJheSBvZiBjb2RlUG9pbnRzLgorICAgICAqIEBwYXJhbSBjb2RlUG9pbnRzIHRoZSBjb2RlIGFycmF5CisgICAgICogQHBhcmFtIG9mZnNldCAgICAgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IGluIHRoZSBjb2RlIHBvaW50IGFycmF5CisgICAgICogQHBhcmFtIGNvdW50ICAgICAgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cworICAgICAqIEByZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2RlIHBvaW50cyBiZXR3ZWVuIG9mZnNldCBhbmQgY291bnQKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBpbnZhbGlkIGNvZGUgcG9pbnQgaXMgZW5jb3VudGVyZWQKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gIGlmIHRoZSBvZmZzZXQgb3IgY291bnQgYXJlIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbmV3U3RyaW5nKGludFtdIGNvZGVQb2ludHMsIGludCBvZmZzZXQsIGludCBjb3VudCkgeworICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIGNoYXJzID0gbmV3IGNoYXJbY291bnRdOworICAgICAgICBpbnQgdyA9IDA7CisgICAgICAgIGZvciAoaW50IHIgPSBvZmZzZXQsIGUgPSBvZmZzZXQgKyBjb3VudDsgciA8IGU7ICsrcikgeworICAgICAgICAgICAgaW50IGNwID0gY29kZVBvaW50c1tyXTsKKyAgICAgICAgICAgIGlmIChjcCA8IDAgfHwgY3AgPiAweDEwZmZmZikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwIDwgMHgwMTAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzW3ddID0gKGNoYXIpY3A7CisgICAgICAgICAgICAgICAgICAgICAgICB3Kys7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyc1t3XSA9IChjaGFyKShMRUFEX1NVUlJPR0FURV9PRkZTRVRfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCA+PiBMRUFEX1NVUlJPR0FURV9TSElGVF8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzW3crMV0gPSAoY2hhcikoVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCAmIFRSQUlMX1NVUlJPR0FURV9NQVNLXykpOworICAgICAgICAgICAgICAgICAgICAgICAgdyArPSAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbmV3bGVuID0gKGludCkoTWF0aC5jZWlsKChkb3VibGUpY29kZVBvaW50cy5sZW5ndGggKiAodysyKSAvIChyLW9mZnNldCsxKSkpOworICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGVtcCA9IG5ldyBjaGFyW25ld2xlbl07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2hhcnMsIDAsIHRlbXAsIDAsIHcpOworICAgICAgICAgICAgICAgICAgICBjaGFycyA9IHRlbXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGNoYXJzLCAwLCB3KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5VVEYxNiBzdHJpbmcgY29tcGFyYXRvciBjbGFzcy4KKyAgICAgKiBBbGxvd3MgVVRGMTYgc3RyaW5nIGNvbXBhcmlzb24gdG8gYmUgZG9uZSB3aXRoIHRoZSB2YXJpb3VzIG1vZGVzPC9wPgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IENvZGUgcG9pbnQgY29tcGFyaXNvbiBvciBjb2RlIHVuaXQgY29tcGFyaXNvbgorICAgICAqIDxsaT4gQ2FzZSBzZW5zaXRpdmUgY29tcGFyaXNvbiwgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uIG9yIGNhc2UKKyAgICAgKiAgICAgIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24gd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBjaGFyYWN0ZXIgJ2knLgorICAgICAqIDwvdWw+CisgICAgICogPHA+VGhlIGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGNvbXBhcmlzb24gZGlmZmVyIG9ubHkgd2hlbiBjb21wYXJpbmcKKyAgICAgKiBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzICgmIzkyO3UxMDAwMC4uJiM5Mjt1MTBmZmZmKSB0byBCTVAgY29kZSBwb2ludHMKKyAgICAgKiBuZWFyIHRoZSBlbmQgb2YgdGhlIEJNUCAoaS5lLiwgJiM5Mjt1ZTAwMC4uJiM5Mjt1ZmZmZikuIEluIGNvZGUgdW5pdAorICAgICAqIGNvbXBhcmlzb24sIGhpZ2ggQk1QIGNvZGUgcG9pbnRzIHNvcnQgYWZ0ZXIgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIGJlY2F1c2UgdGhleSBhcmUgc3RvcmVkIGFzIHBhaXJzIG9mIHN1cnJvZ2F0ZXMgd2hpY2ggYXJlIGF0CisgICAgICogJiM5Mjt1ZDgwMC4uJiM5Mjt1ZGZmZi48L3A+CisgICAgICogQHNlZSAjRk9MRF9DQVNFX0RFRkFVTFQKKyAgICAgKiBAc2VlICNGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFN0cmluZ0NvbXBhcmF0b3IgaW1wbGVtZW50cyBqYXZhLnV0aWwuQ29tcGFyYXRvcgorICAgIHsKKyAgICAgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRoYXQgZG9lcyBjb2RlIHVuaXQgY29tcGFyaXNvbiBhbmQgY2FzZQorICAgICAgICAgKiBzZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nQ29tcGFyYXRvcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMoZmFsc2UsIGZhbHNlLCBGT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCBkb2VzIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGFyZ3VtZW50IG9wdGlvbnMuCisgICAgICAgICAqIEBwYXJhbSBjb2RlcG9pbnRjb21wYXJlIGZsYWcgdG8gaW5kaWNhdGUgdHJ1ZSBmb3IgY29kZSBwb2ludAorICAgICAgICAgKiAgICAgICAgY29tcGFyaXNvbiBvciBmYWxzZSBmb3IgY29kZSB1bml0IGNvbXBhcmlzb24uCisgICAgICAgICAqIEBwYXJhbSBpZ25vcmVjYXNlIGZhbHNlIGZvciBjYXNlIHNlbnNpdGl2ZSBjb21wYXJpc29uLCB0cnVlIGZvcgorICAgICAgICAgKiAgICAgICAgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAqIEBwYXJhbSBmb2xkY2FzZW9wdGlvbiBGT0xEX0NBU0VfREVGQVVMVCBvcgorICAgICAgICAgKiAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLiBUaGlzIG9wdGlvbiBpcyB1c2VkIG9ubHkgd2hlbgorICAgICAgICAgKiAgICAgICAgaWdub3JlY2FzZSBpcyBzZXQgdG8gdHJ1ZS4gSWYgaWdub3JlY2FzZSBpcyBmYWxzZSwgdGhpcyBvcHRpb24KKyAgICAgICAgICogICAgICAgIGlzIGlnbm9yZWQuCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBmb2xkY2FzZW9wdGlvbiBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nQ29tcGFyYXRvcihib29sZWFuIGNvZGVwb2ludGNvbXBhcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaWdub3JlY2FzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZvbGRjYXNlb3B0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBzZXRDb2RlUG9pbnRDb21wYXJlKGNvZGVwb2ludGNvbXBhcmUpOworICAgICAgICAgICAgbV9pZ25vcmVDYXNlXyA9IGlnbm9yZWNhc2U7CisgICAgICAgICAgICBpZiAoZm9sZGNhc2VvcHRpb24gPCBGT0xEX0NBU0VfREVGQVVMVAorICAgICAgICAgICAgICAgIHx8IGZvbGRjYXNlb3B0aW9uID4gRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmb2xkIGNhc2Ugb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2ZvbGRDYXNlXyA9IGZvbGRjYXNlb3B0aW9uOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiA8cD5PcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZyBjb21wYXJpc29uOjwvcD4KKyAgICAgICAgICogPHA+Q29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLCBzdHJpbmdzIGFyZSBmb2xkZWQgdXNpbmcgZGVmYXVsdAorICAgICAgICAgKiBtYXBwaW5ncyBkZWZpbmVkIGluIFVuaWNvZGUgZGF0YSBmaWxlIENhc2VGb2xkaW5nLnR4dCwgYmVmb3JlCisgICAgICAgICAqIGNvbXBhcmlzb24uCisgICAgICAgICAqIDwvcD4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfREVGQVVMVCA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiA8cD5PcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZyBjb21wYXJpc29uOjwvcD4KKyAgICAgICAgICogPHA+Q29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLCBzdHJpbmdzIGFyZSBmb2xkZWQgdXNpbmcgbW9kaWZpZWQKKyAgICAgICAgICogbWFwcGluZ3MgZGVmaW5lZCBpbiBVbmljb2RlIGRhdGEgZmlsZSBDYXNlRm9sZGluZy50eHQsIGJlZm9yZQorICAgICAgICAgKiBjb21wYXJpc29uLgorICAgICAgICAgKiA8L3A+CisgICAgICAgICAqIDxwPlRoZSBtb2RpZmllZCBzZXQgb2YgbWFwcGluZ3MgaXMgcHJvdmlkZWQgaW4gYSBVbmljb2RlIGRhdGEgZmlsZQorICAgICAgICAgKiBDYXNlRm9sZGluZy50eHQgdG8gaGFuZGxlIGRvdHRlZCBJIGFuZCBkb3RsZXNzIGkgYXBwcm9wcmlhdGVseSBmb3IKKyAgICAgICAgICogVHVya2ljIGxhbmd1YWdlcyAodHIsIGF6KS48L3A+CisgICAgICAgICAqIDxwPkJlZm9yZSBVbmljb2RlIDMuMiwgQ2FzZUZvbGRpbmcudHh0IGNvbnRhaW5zIG1hcHBpbmdzIG1hcmtlZCB3aXRoCisgICAgICAgICAqICdJJyB0aGF0IGFyZSB0byBiZSBpbmNsdWRlZCBmb3IgZGVmYXVsdCBtYXBwaW5ncyBhbmQgZXhjbHVkZWQgZm9yCisgICAgICAgICAqIHRoZSBUdXJraWMtc3BlY2lmaWMgbWFwcGluZ3MuPC9wPgorICAgICAgICAgKiA8cD5Vbmljb2RlIDMuMiBDYXNlRm9sZGluZy50eHQgaW5zdGVhZCBjb250YWlucyBtYXBwaW5ncyBtYXJrZWQgd2l0aAorICAgICAgICAgKiAnVCcgdGhhdCBhcmUgdG8gYmUgZXhjbHVkZWQgZm9yIGRlZmF1bHQgbWFwcGluZ3MgYW5kIGluY2x1ZGVkIGZvcgorICAgICAgICAgKiB0aGUgVHVya2ljLXNwZWNpZmljIG1hcHBpbmdzLjwvcD4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSAxOworCisgICAgICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvLyBwdWJsaWMgc2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIGNvbXBhcmlzb24gbW9kZSB0byBjb2RlIHBvaW50IGNvbXBhcmUgaWYgZmxhZyBpcyB0cnVlLgorICAgICAgICAgKiBPdGhlcndpc2UgY29tcGFyaXNvbiBtb2RlIGlzIHNldCB0byBjb2RlIHVuaXQgY29tcGFyZQorICAgICAgICAgKiBAcGFyYW0gZmxhZyB0cnVlIGZvciBjb2RlIHBvaW50IGNvbXBhcmUsIGZhbHNlIGZvciBjb2RlIHVuaXQgY29tcGFyZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldENvZGVQb2ludENvbXBhcmUoYm9vbGVhbiBmbGFnKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmxhZykgeworICAgICAgICAgICAgICAgIG1fY29kZVBvaW50Q29tcGFyZV8gPSBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29kZVBvaW50Q29tcGFyZV8gPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIENvbXBhcmF0b3IgdG8gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIG1vZGUgaWYgYXJndW1lbnQKKyAgICAgICAgICogaXMgdHJ1ZSwgb3RoZXJ3aXNlIGNhc2Ugc2Vuc2l0aXZlIGNvbXBhcmlzb24gbW9kZSBpZiBzZXQgdG8gZmFsc2UuCisgICAgICAgICAqIEBwYXJhbSBpZ25vcmVjYXNlIHRydWUgZm9yIGNhc2UtaW5zaXRpdmUgY29tcGFyaXNvbiwgZmFsc2UgZm9yCisgICAgICAgICAqICAgICAgICBjYXNlIHNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAqIEBwYXJhbSBmb2xkY2FzZW9wdGlvbiBGT0xEX0NBU0VfREVGQVVMVCBvcgorICAgICAgICAgKiAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLiBUaGlzIG9wdGlvbiBpcyB1c2VkIG9ubHkgd2hlbgorICAgICAgICAgKiAgICAgICAgaWdub3JlY2FzZSBpcyBzZXQgdG8gdHJ1ZS4gSWYgaWdub3JlY2FzZSBpcyBmYWxzZSwgdGhpcyBvcHRpb24KKyAgICAgICAgICogICAgICAgIGlzIGlnbm9yZWQuCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldElnbm9yZUNhc2UoYm9vbGVhbiBpZ25vcmVjYXNlLCBpbnQgZm9sZGNhc2VvcHRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faWdub3JlQ2FzZV8gPSBpZ25vcmVjYXNlOworICAgICAgICAgICAgaWYgKGZvbGRjYXNlb3B0aW9uIDwgRk9MRF9DQVNFX0RFRkFVTFQKKyAgICAgICAgICAgICAgICB8fCBmb2xkY2FzZW9wdGlvbiA+IEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZm9sZCBjYXNlIG9wdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9mb2xkQ2FzZV8gPSBmb2xkY2FzZW9wdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hlY2tzIGlmIHRoZSBjb21wYXJpc29uIG1vZGUgaXMgY29kZSBwb2ludCBjb21wYXJlLgorICAgICAgICAgKiBAcmV0dXJuIHRydWUgZm9yIGNvZGUgcG9pbnQgY29tcGFyZSwgZmFsc2UgZm9yIGNvZGUgdW5pdCBjb21wYXJlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZ2V0Q29kZVBvaW50Q29tcGFyZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2NvZGVQb2ludENvbXBhcmVfID09IE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoZWNrcyBpZiBDb21wYXJhdG9yIGlzIGluIHRoZSBjYXNlIGluc2Vuc2l0aXZlIG1vZGUuCisgICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBDb21wYXJhdG9yIHBlcmZvcm1zIGNhc2UgaW5zZW5zaXRpdmUgY29tcGFyaXNvbiwKKyAgICAgICAgICogICAgICAgICBmYWxzZSBvdGhlcndpc2UKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBnZXRJZ25vcmVDYXNlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1faWdub3JlQ2FzZV87CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogR2V0cyB0aGUgZm9sZCBjYXNlIG9wdGlvbnMgc2V0IGluIENvbXBhcmF0b3IgdG8gYmUgdXNlZCB3aXRoIGNhc2UKKyAgICAgICAgICogaW5zZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgICogQHJldHVybiBlaXRoZXIgRk9MRF9DQVNFX0RFRkFVTFQgb3IgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SWdub3JlQ2FzZU9wdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2ZvbGRDYXNlXzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZSB0d28gc3RyaW5ncyBkZXBlbmRpbmcgb24gdGhlIG9wdGlvbnMgc2VsZWN0ZWQgZHVyaW5nCisgICAgICAgICAqIGNvbnN0cnVjdGlvbi4KKyAgICAgICAgICogQHBhcmFtIGEgZmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgICAgICogQHBhcmFtIGIgc2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICAgICAqIEByZXR1cm4gMCByZXR1cm5lZCBpZiBhID09IGIuIElmIGEgPCBiLCBhIG5lZ2F0aXZlIHZhbHVlIGlzIHJldHVybmVkLgorICAgICAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiBhID4gYiwgYSBwb3NpdGl2ZSB2YWx1ZSBpcyByZXR1cm5lZC4KKyAgICAgICAgICogQGV4Y2VwdGlvbiBDbGFzc0Nhc3RFeGNlcHRpb24gdGhyb3duIHdoZW4gZWl0aGVyIGEgb3IgYiBpcyBub3QgYQorICAgICAgICAgKiAgICAgICAgICAgIFN0cmluZyBvYmplY3QKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3RyMSA9IChTdHJpbmcpYTsKKyAgICAgICAgICAgIFN0cmluZyBzdHIyID0gKFN0cmluZyliOworCisgICAgICAgICAgICBpZiAoc3RyMSA9PSBzdHIyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyMSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cjIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobV9pZ25vcmVDYXNlXykgeworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKHN0cjEsIHN0cjIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlU2Vuc2l0aXZlKHN0cjEsIHN0cjIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvZGUgdW5pdCBjb21wYXJpc29uIGZsYWcuIFRydWUgaWYgY29kZSB1bml0IGNvbXBhcmlzb24gaXMgcmVxdWlyZWQuCisgICAgICAgICAqIEZhbHNlIGlmIGNvZGUgcG9pbnQgY29tcGFyaXNvbiBpcyByZXF1aXJlZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fY29kZVBvaW50Q29tcGFyZV87CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvbGQgY2FzZSBjb21wYXJpc29uIG9wdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fZm9sZENhc2VfOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBGbGFnIGluZGljYXRvciBpZiBpZ25vcmUgY2FzZSBpcyB0byBiZSB1c2VkIGR1cmluZyBjb21wYXJpc29uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbV9pZ25vcmVDYXNlXzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29kZSBwb2ludCBvcmRlciBvZmZzZXQgZm9yIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09ERV9QT0lOVF9DT01QQVJFX1NVUlJPR0FURV9PRkZTRVRfID0gMHgyODAwOworCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb21wYXJlcyBjYXNlIGluc2Vuc2l0aXZlLiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgb2YgSUNVNEMsIHRvIG1ha2UKKyAgICAgICAgICogbWFpbnRhaW5lbmNlIGxpZmUgZWFzaWVyLgorICAgICAgICAgKiBAcGFyYW0gczEgZmlyc3Qgc3RyaW5nIHRvIGNvbXBhcmUKKyAgICAgICAgICogQHBhcmFtIHMyIHNlY29uZCBzdHJpbmcgdG8gY29tcGFyZQorICAgICAgICAgKiBAcmV0dXJuIC0xIGlzIHMxICZsdDsgczIsIDAgaWYgZXF1YWxzLAorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShTdHJpbmcgczEsIFN0cmluZyBzMikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZChzMSwgczIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZm9sZENhc2VfIHwgbV9jb2RlUG9pbnRDb21wYXJlXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZXMgY2FzZSBzZW5zaXRpdmUuIFRoaXMgaXMgYSBkaXJlY3QgcG9ydCBvZiBJQ1U0QywgdG8gbWFrZQorICAgICAgICAgKiBtYWludGFpbmVuY2UgbGlmZSBlYXNpZXIuCisgICAgICAgICAqIEBwYXJhbSBzMSBmaXJzdCBzdHJpbmcgdG8gY29tcGFyZQorICAgICAgICAgKiBAcGFyYW0gczIgc2Vjb25kIHN0cmluZyB0byBjb21wYXJlCisgICAgICAgICAqIEByZXR1cm4gLTEgaXMgczEgJmx0OyBzMiwgMCBpZiBlcXVhbHMsCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBjb21wYXJlQ2FzZVNlbnNpdGl2ZShTdHJpbmcgczEsIFN0cmluZyBzMikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gY29tcGFyZSBpZGVudGljYWwgcHJlZml4ZXMgLSB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIGZpeGVkIHVwCisgICAgICAgICAgICAvLyBsaW1pdDEgPSBzdGFydDEgKyBtaW4obGVuZ2h0MSwgbGVuZ3RoMikKKyAgICAgICAgICAgIGludCBsZW5ndGgxID0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgbGVuZ3RoMiA9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IG1pbmxlbmd0aCA9IGxlbmd0aDE7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIGlmIChsZW5ndGgxIDwgbGVuZ3RoMikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobGVuZ3RoMSA+IGxlbmd0aDIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAxOworICAgICAgICAgICAgICAgIG1pbmxlbmd0aCA9IGxlbmd0aDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNoYXIgYzEgPSAwOworICAgICAgICAgICAgY2hhciBjMiA9IDA7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgbWlubGVuZ3RoOyBpbmRleCArKykgeworICAgICAgICAgICAgICAgIGMxID0gczEuY2hhckF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBjMiA9IHMyLmNoYXJBdChpbmRleCk7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgcHNldWRvLWxpbWl0CisgICAgICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGluZGV4ID09IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2xlYW4gY29kZXBvaW50Y29tcGFyZQorICAgICAgICAgICAgICAgID0gbV9jb2RlUG9pbnRDb21wYXJlXyA9PSBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUjsKKyAgICAgICAgICAgIC8vIGlmIGJvdGggdmFsdWVzIGFyZSBpbiBvciBhYm92ZSB0aGUgc3Vycm9nYXRlIHJhbmdlLCBmaXggdGhlbSB1cAorICAgICAgICAgICAgaWYgKGMxID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgICAgICYmIGMyID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJiBjb2RlcG9pbnRjb21wYXJlKSB7CisgICAgICAgICAgICAgICAgLy8gc3VidHJhY3QgMHgyODAwIGZyb20gQk1QIGNvZGUgcG9pbnRzIHRvIG1ha2UgdGhlbSBzbWFsbGVyCisgICAgICAgICAgICAgICAgLy8gdGhhbiBzdXBwbGVtZW50YXJ5IG9uZXMKKyAgICAgICAgICAgICAgICBpZiAoKGMxIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSAmJiAoaW5kZXggKyAxKSAhPSBsZW5ndGgxCisgICAgICAgICAgICAgICAgICAgICAmJiBpc1RyYWlsU3Vycm9nYXRlKHMxLmNoYXJBdChpbmRleCArIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgKGlzVHJhaWxTdXJyb2dhdGUoYzEpICYmIGluZGV4ICE9IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGlzTGVhZFN1cnJvZ2F0ZShzMS5jaGFyQXQoaW5kZXggLSAxKSkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIG1ha2UKKyAgICAgICAgICAgICAgICAgICAgLy8gPCBkODAwCisgICAgICAgICAgICAgICAgICAgIGMxIC09IENPREVfUE9JTlRfQ09NUEFSRV9TVVJST0dBVEVfT0ZGU0VUXzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKGMyIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAgICAgICAgICAgICAgICAgJiYgKGluZGV4ICsgMSkgIT0gbGVuZ3RoMgorICAgICAgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZShzMi5jaGFyQXQoaW5kZXggKyAxKSkpIHx8CisgICAgICAgICAgICAgICAgICAgIChpc1RyYWlsU3Vycm9nYXRlKGMyKSAmJiBpbmRleCAhPSAwCisgICAgICAgICAgICAgICAgICAgICAmJiBpc0xlYWRTdXJyb2dhdGUoczIuY2hhckF0KGluZGV4IC0gMSkpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSBtYWtlIDxkODAwCisgICAgICAgICAgICAgICAgICAgIGMyIC09IENPREVfUE9JTlRfQ09NUEFSRV9TVVJST0dBVEVfT0ZGU0VUXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG5vdyBjMSBhbmQgYzIgYXJlIGluIFVURi0zMi1jb21wYXRpYmxlIG9yZGVyCisgICAgICAgICAgICByZXR1cm4gYzEgLSBjMjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNoaWZ0IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSB0byBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX1NISUZUXyA9IDEwOworCisgICAgLyoqCisgICAgICogTWFzayB0byByZXRyaWV2ZSB0aGUgc2lnbmlmaWNhbnQgdmFsdWUgZnJvbSBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BU0tfICAgICA9IDB4M0ZGOworCisgICAgLyoqCisgICAgICogVmFsdWUgdGhhdCBhbGwgbGVhZCBzdXJyb2dhdGUgc3RhcnRzIHdpdGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfT0ZGU0VUXyA9CisgICAgICAgIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAtCisgICAgICAgIChTVVBQTEVNRU5UQVJZX01JTl9WQUxVRQorICAgICAgICAgPj4gTEVBRF9TVVJST0dBVEVfU0hJRlRfKTsKKworICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkNvbnZlcnRzIGFyZ3VtZW50IGNvZGUgcG9pbnQgYW5kIHJldHVybnMgYSBTdHJpbmcgb2JqZWN0IHJlcHJlc2VudGluZworICAgICAqIHRoZSBjb2RlIHBvaW50J3MgdmFsdWUgaW4gVVRGMTYgZm9ybWF0LjwvcD4KKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBkb2VzIG5vdCBjaGVjayBmb3IgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb2RlcG9pbnQsIHRoZQorICAgICAqIHJlc3VsdHMgYXJlIG5vdCBndWFyYW50ZWVkIGlmIGEgaW52YWxpZCBjb2RlcG9pbnQgaXMgcGFzc2VkIGFzCisgICAgICogYXJndW1lbnQuPC9wPgorICAgICAqIDxwPlRoZSByZXN1bHQgaXMgYSBzdHJpbmcgd2hvc2UgbGVuZ3RoIGlzIDEgZm9yIG5vbi1zdXBwbGVtZW50YXJ5IGNvZGUKKyAgICAgKiBwb2ludHMsIDIgb3RoZXJ3aXNlLjwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nLnZhbHVlT2YoKGNoYXIpY2gpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0VHJhaWxTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VbmVzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9VbmVzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjkxNGQxZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuZXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDI1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMTkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgY29udmVydHMgVW5pY29kZSBlc2NhcGUgZm9ybXMgdG8gdGhlCisgKiBjaGFyYWN0ZXJzIHRoZXkgcmVwcmVzZW50LiAgRXNjYXBlIGZvcm1zIGhhdmUgYSBwcmVmaXgsIGEgc3VmZml4LCBhCisgKiByYWRpeCwgYW5kIG1pbmltdW0gYW5kIG1heGltdW0gZGlnaXQgY291bnRzLgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgcGFja2FnZSBwcml2YXRlLiAgSXQgcmVnaXN0ZXJzIHNldmVyYWwgc3RhbmRhcmQKKyAqIHZhcmlhbnRzIHdpdGggdGhlIHN5c3RlbSB3aGljaCBhcmUgdGhlbiBhY2Nlc3NlZCB2aWEgdGhlaXIgSURzLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgVW5lc2NhcGVUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIFRoZSBlbmNvZGVkIHBhdHRlcm4gc3BlY2lmaWNhdGlvbi4gIFRoZSBwYXR0ZXJuIGNvbnNpc3RzIG9mCisgICAgICogemVybyBvciBtb3JlIGZvcm1zLiAgRWFjaCBmb3JtIGNvbnNpc3RzIG9mIGEgcHJlZml4LCBzdWZmaXgsCisgICAgICogcmFkaXgsIG1pbmltdW0gZGlnaXQgY291bnQsIGFuZCBtYXhpbXVtIGRpZ2l0IGNvdW50LiAgVGhlc2UKKyAgICAgKiB2YWx1ZXMgYXJlIHN0b3JlZCBhcyBhIGZpdmUgY2hhcmFjdGVyIGhlYWRlci4gIFRoYXQgaXMsIHRoZWlyCisgICAgICogbnVtZXJpYyB2YWx1ZXMgYXJlIGNhc3QgdG8gMTYtYml0IGNoYXJhY3RlcnMgYW5kIHN0b3JlZCBpbiB0aGUKKyAgICAgKiBzdHJpbmcuICBGb2xsb3dpbmcgdGhlc2UgZml2ZSBjaGFyYWN0ZXJzLCB0aGUgcHJlZml4CisgICAgICogY2hhcmFjdGVycywgdGhlbiBzdWZmaXggY2hhcmFjdGVycyBhcmUgc3RvcmVkLiAgRWFjaCBmb3JtIHRodXMKKyAgICAgKiB0YWtlcyBuKzUgY2hhcmFjdGVycywgd2hlcmUgbiBpcyB0aGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBwcmVmaXgKKyAgICAgKiBhbmQgc3VmZml4LiAgVGhlIGVuZCBpcyBtYXJrZWQgYnkgYSBoZWFkZXIgb2YgbGVuZ3RoIG9uZQorICAgICAqIGNvbnNpc3Rpbmcgb2YgdGhlIGNoYXJhY3RlciBFTkQuCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHNwZWNbXTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgY2hhcmFjdGVyIG1hcmtpbmcgdGhlIGVuZCBvZiB0aGUgc3BlY1tdIGFycmF5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRU5EID0gMHhGRkZGOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHN0YW5kYXJkIHZhcmlhbnRzIHdpdGggdGhlIHN5c3RlbS4gIENhbGxlZCBieQorICAgICAqIFRyYW5zbGl0ZXJhdG9yIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgLy8gVW5pY29kZTogIlUrMTBGRkZGIiBoZXgsIG1pbj00LCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvVW5pY29kZSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9Vbmljb2RlIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA2LCAnVScsICcrJywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gSmF2YTogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9KYXZhIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJIZXgtQW55L0phdmEiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMCwgMTYsIDQsIDQsICdcXCcsICd1JywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gQzogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00OyBcXFUwMDEwRkZGRiBoZXgsIG1pbj04LCBtYXg9OAorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvQyIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9DIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA0LCAnXFwnLCAndScsCisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA4LCA4LCAnXFwnLCAnVScsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFhNTDogIiYjeDEwRkZGRjsiIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9YTUwiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IoIkhleC1BbnkvWE1MIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDMsIDEsIDE2LCAxLCA2LCAnJicsICcjJywgJ3gnLCAnOycsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBYTUwxMDogIiYxMTE0MTExOyIgZGVjLCBtaW49MSwgbWF4PTcgKG5vdCByZWFsbHkgIkhleC1BbnkiKQorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvWE1MMTAiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IoIkhleC1BbnkvWE1MMTAiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMSwgMTAsIDEsIDcsICcmJywgJyMnLCAnOycsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBQZXJsOiAiXFx4ezI2M0F9IiBoZXgsIG1pbj0xLCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvUGVybCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9QZXJsIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDMsIDEsIDE2LCAxLCA2LCAnXFwnLCAneCcsICd7JywgJ30nLAorICAgICAgICAgICAgICAgICAgICBFTkQKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gQWxsOiBKYXZhLCBDLCBQZXJsLCBYTUwsIFhNTDEwLCBVbmljb2RlCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueSIsIG5ldyBjaGFyW10geworICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgNCwgNiwgJ1UnLCAnKycsICAgICAgICAgICAgLy8gVW5pY29kZQorICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgNCwgNCwgJ1xcJywgJ3UnLCAgICAgICAgICAgLy8gSmF2YQorICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgOCwgOCwgJ1xcJywgJ1UnLCAgICAgICAgICAgLy8gQyAoc3Vycm9nYXRlcykKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICcmJywgJyMnLCAneCcsICc7JywgIC8vIFhNTAorICAgICAgICAgICAgICAgICAgICAyLCAxLCAxMCwgMSwgNywgJyYnLCAnIycsICc7JywgICAgICAgLy8gWE1MMTAKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICdcXCcsICd4JywgJ3snLCAnfScsIC8vIFBlcmwKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3Rvci4gIFRha2VzIHRoZSBlbmNvZGVkIHNwZWMgYXJyYXkuCisgICAgICovCisgICAgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGNoYXIgc3BlY1tdKSB7CisgICAgICAgIHN1cGVyKElELCBudWxsKTsKKyAgICAgICAgdGhpcy5zcGVjID0gc3BlYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3Muc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IHBvcy5saW1pdDsKKyAgICAgICAgaW50IGksIGosIGlwYXQ7CisKKyAgICAgIGxvb3A6CisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAvLyBMb29wIG92ZXIgdGhlIGZvcm1zIGluIHNwZWNbXS4gIEV4aXQgdGhpcyBsb29wIHdoZW4gd2UKKyAgICAgICAgICAgIC8vIG1hdGNoIG9uZSBvZiB0aGUgc3BlY3MuICBFeGl0IHRoZSBvdXRlciBsb29wIGlmIGEKKyAgICAgICAgICAgIC8vIHBhcnRpYWwgbWF0Y2ggaXMgZGV0ZWN0ZWQgYW5kIGlzSW5jcmVtZW50YWwgaXMgdHJ1ZS4KKyAgICAgICAgICAgIGZvciAoaj0wLCBpcGF0PTA7IHNwZWNbaXBhdF0gIT0gRU5EOyArK2opIHsKKworICAgICAgICAgICAgICAgIC8vIFJlYWQgdGhlIGhlYWRlcgorICAgICAgICAgICAgICAgIGludCBwcmVmaXhMZW4gPSBzcGVjW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IHN1ZmZpeExlbiA9IHNwZWNbaXBhdCsrXTsKKyAgICAgICAgICAgICAgICBpbnQgcmFkaXggICAgID0gc3BlY1tpcGF0KytdOworICAgICAgICAgICAgICAgIGludCBtaW5EaWdpdHMgPSBzcGVjW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IG1heERpZ2l0cyA9IHNwZWNbaXBhdCsrXTsKKworICAgICAgICAgICAgICAgIC8vIHMgaXMgYSBjb3B5IG9mIHN0YXJ0IHRoYXQgaXMgYWR2YW5jZWQgb3ZlciB0aGUKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIGFzIHdlIHBhcnNlIHRoZW0uCisgICAgICAgICAgICAgICAgaW50IHMgPSBzdGFydDsKKyAgICAgICAgICAgICAgICBib29sZWFuIG1hdGNoID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPHByZWZpeExlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IG1hdGNoZWQgYSBjaGFyYWN0ZXIuICBUaGlzIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBwYXJ0aWFsIG1hdGNoLCBzbyB3ZSByZXR1cm4gaWYgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBtb2RlLiAgSW4gbm9uLWluY3JlbWVudGFsIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ28gdG8gdGhlIG5leHQgc3BlYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHMrKyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IHNwZWNbaXBhdCArIGldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHUgPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXRDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHBhcnRpYWwgbWF0Y2ggaW4gaW5jcmVtZW50YWwgbW9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+IHN0YXJ0ICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2ggPSB0ZXh0LmNoYXIzMkF0KHMpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0ID0gVUNoYXJhY3Rlci5kaWdpdChjaCwgcmFkaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcyArPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgdSA9ICh1ICogcmFkaXgpICsgZGlnaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytkaWdpdENvdW50ID09IG1heERpZ2l0cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSAoZGlnaXRDb3VudCA+PSBtaW5EaWdpdHMpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8c3VmZml4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgcGFydGlhbCBtYXRjaCBpbiBpbmNyZW1lbnRhbCBtb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+IHN0YXJ0ICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHMrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gc3BlY1tpcGF0ICsgcHJlZml4TGVuICsgaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIGEgbWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYudmFsdWVPZih1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2Uoc3RhcnQsIHMsIHN0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLT0gcyAtIHN0YXJ0IC0gc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYnJlYWsgc3RhdGVtZW50IGxlYXZlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29wIHRoYXQgaXMgdHJhdmVyc2luZyB0aGUgZm9ybXMgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjW10uICBXZSB0aGVuIHBhcnNlIHRoZSBuZXh0IGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaXBhdCArPSBwcmVmaXhMZW4gKyBzdWZmaXhMZW47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQoc3RhcnQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBvcy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBwb3MubGltaXQ7CisgICAgICAgIHBvcy5saW1pdCA9IGxpbWl0OworICAgICAgICBwb3Muc3RhcnQgPSBzdGFydDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44Mjg1MzVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDEwMDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorKiBBIGNvbXByZXNzaW9uIGVuZ2luZSBpbXBsZW1lbnRpbmcgdGhlIFN0YW5kYXJkIENvbXByZXNzaW9uIFNjaGVtZQorKiBmb3IgVW5pY29kZSAoU0NTVSkgYXMgb3V0bGluZWQgaW4gPEEKKyogSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5Vbmljb2RlIFRlY2huaWNhbAorKiBSZXBvcnQgIzY8L0E+LgorKgorKiA8UD5UaGUgU0NTVSB3b3JrcyBieSB1c2luZyBkeW5hbWljYWxseSBwb3NpdGlvbmVkIDxFTT53aW5kb3dzPC9FTT4KKyogY29uc2lzdGluZyBvZiAxMjggY29uc2VjdXRpdmUgY2hhcmFjdGVycyBpbiBVbmljb2RlLiAgRHVyaW5nIGNvbXByZXNzaW9uLCAKKyogY2hhcmFjdGVycyB3aXRoaW4gYSB3aW5kb3cgYXJlIGVuY29kZWQgaW4gdGhlIGNvbXByZXNzZWQgc3RyZWFtIGFzIHRoZSBieXRlcyAKKyogPFRUPjB4N0YgLSAweEZGPC9UVD4uIFRoZSBTQ1NVIHByb3ZpZGVzIHRyYW5zcGFyZW5jeSBmb3IgdGhlIGNoYXJhY3RlcnMgCisqIChieXRlcykgYmV0d2VlbiA8VFQ+VSswMDAwIC0gVSswMEZGPC9UVD4uICBUaGUgU0NTVSBhcHByb3hpbWF0ZXMgdGhlIAorKiBzdG9yYWdlIHNpemUgb2YgdHJhZGl0aW9uYWwgY2hhcmFjdGVyIHNldHMsIGZvciBleGFtcGxlIDEgYnl0ZSBwZXIKKyogY2hhcmFjdGVyIGZvciBBU0NJSSBvciBMYXRpbi0xIHRleHQsIGFuZCAyIGJ5dGVzIHBlciBjaGFyYWN0ZXIgZm9yIENKSworKiBpZGVvZ3JhcGhzLjwvUD4KKyoKKyogPFA+PFNUUk9ORz5VU0FHRTwvU1RST05HPjwvUD4KKyoKKyogPFA+VGhlIHN0YXRpYyBtZXRob2RzIG9uIDxUVD5Vbmljb2RlQ29tcHJlc3NvcjwvVFQ+IG1heSBiZSB1c2VkIGluIGEKKyogc3RyYWlnaHRmb3J3YXJkIG1hbm5lciB0byBjb21wcmVzcyBzaW1wbGUgc3RyaW5nczo8L1A+CisqCisqIDxQUkU+CisqICBTdHJpbmcgcyA9IC4uLiA7IC8vIGdldCBzdHJpbmcgZnJvbSBzb21ld2hlcmUKKyogIGJ5dGUgW10gY29tcHJlc3NlZCA9IFVuaWNvZGVDb21wcmVzc29yLmNvbXByZXNzKHMpOworKiA8L1BSRT4KKyoKKyogPFA+VGhlIHN0YXRpYyBtZXRob2RzIGhhdmUgYSBmYWlybHkgbGFyZ2UgbWVtb3J5IGZvb3RwcmludC4KKyogRm9yIGZpbmVyLWdyYWluZWQgY29udHJvbCBvdmVyIG1lbW9yeSB1c2FnZSwgCisqIDxUVD5Vbmljb2RlQ29tcHJlc3NvcjwvVFQ+IG9mZmVycyBtb3JlIHBvd2VyZnVsIEFQSXMgYWxsb3dpbmcKKyogaXRlcmF0aXZlIGNvbXByZXNzaW9uOjwvUD4KKyoKKyogPFBSRT4KKyogIC8vIENvbXByZXNzIGFuIGFycmF5ICJjaGFycyIgb2YgbGVuZ3RoICJsZW4iIHVzaW5nIGEgYnVmZmVyIG9mIDUxMiBieXRlcworKiAgLy8gdG8gdGhlIE91dHB1dFN0cmVhbSAib3V0IgorKgorKiAgVW5pY29kZUNvbXByZXNzb3IgbXlDb21wcmVzc29yICAgICAgICAgPSBuZXcgVW5pY29kZUNvbXByZXNzb3IoKTsKKyogIGZpbmFsIHN0YXRpYyBpbnQgIEJVRlNJWkUgICAgICAgICAgICAgID0gNTEyOworKiAgYnl0ZSBbXSAgICAgICAgICAgYnl0ZUJ1ZmZlciAgICAgICAgICAgPSBuZXcgYnl0ZSBbIEJVRlNJWkUgXTsKKyogIGludCAgICAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiAgICAgICAgID0gMDsKKyogIGludCBbXSAgICAgICAgICAgIHVuaWNoYXJzUmVhZCAgICAgICAgID0gbmV3IGludCBbMV07CisqICBpbnQgICAgICAgICAgICAgICB0b3RhbENoYXJzQ29tcHJlc3NlZCA9IDA7CisqICBpbnQgICAgICAgICAgICAgICB0b3RhbEJ5dGVzV3JpdHRlbiAgICA9IDA7CisqCisqICBkbyB7CisqICAgIC8vIGRvIHRoZSBjb21wcmVzc2lvbgorKiAgICBieXRlc1dyaXR0ZW4gPSBteUNvbXByZXNzb3IuY29tcHJlc3MoY2hhcnMsIHRvdGFsQ2hhcnNDb21wcmVzc2VkLCAKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiwgdW5pY2hhcnNSZWFkLAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlciwgMCwgQlVGU0laRSk7CisqCisqICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSBjdXJyZW50IHNldCBvZiBieXRlcworKiAgICBvdXQud3JpdGUoYnl0ZUJ1ZmZlciwgMCwgYnl0ZXNXcml0dGVuKTsKKyoKKyogICAgLy8gdXBkYXRlIHRoZSBuby4gb2YgY2hhcmFjdGVycyBjb21wcmVzc2VkCisqICAgIHRvdGFsQ2hhcnNDb21wcmVzc2VkICs9IHVuaWNoYXJzUmVhZFswXTsKKyoKKyogICAgLy8gdXBkYXRlIHRoZSBuby4gb2YgYnl0ZXMgd3JpdHRlbgorKiAgICB0b3RhbEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisqCisqICB9IHdoaWxlKHRvdGFsQ2hhcnNDb21wcmVzc2VkIDwgbGVuKTsKKyoKKyogIG15Q29tcHJlc3Nvci5yZXNldCgpOyAvLyByZXVzZSBjb21wcmVzc29yCisqIDwvUFJFPgorKgorKiBAc2VlIFVuaWNvZGVEZWNvbXByZXNzb3IKKyoKKyogQGF1dGhvciBTdGVwaGVuIEYuIEJvb3RoCisqIEBzdGFibGUgSUNVIDIuNAorKi8KKworLyoKKyoKKyogQ09NUFJFU1NJT04gU1RSQVRFR1kKKyoKKyogU2luZ2xlIEJ5dGUgTW9kZQorKgorKiBUaGVyZSBhcmUgdGhyZWUgcmVsZXZhbnQgY2FzZXMuCisqIElmIHRoZSBjaGFyYWN0ZXIgaXMgaW4gdGhlIGN1cnJlbnQgd2luZG93IG9yIGlzIExhdGluLTEgKFUrMDAwMCwKKyogVSswMDA5LCBVKzAwMEEsIFUrMDAwRCwgVSswMDIwIC0gVSswMDdGKSwgdGhlIGNoYXJhY3RlciBpcyBwbGFjZWQKKyogZGlyZWN0bHkgaW4gdGhlIHN0cmVhbSBhcyBhIHNpbmdsZSBieXRlLgorKgorKiAgMS4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93LgorKiAgMi4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gdW5kZWZpbmVkIHdpbmRvdy4KKyogIDMuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIHVuY29tcHJlc3NpYmxlIFVuaWNvZGUgKFUrMzQwMCAtIFUrREZGRikuCisqIAorKiAgMS4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93CisqICAgIEEuIExvb2sgYWhlYWQgdHdvIGNoYXJhY3RlcnMKKyogICAgQi4gSWYgYm90aCBmb2xsb3dpbmcgY2hhcmFjdGVycyBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50IGNoYXJhY3RlciwgCisqICAgICAgIHN3aXRjaCB0byBkZWZpbmVkIHdpbmRvdworKiAgICBDLiBJZiBvbmx5IG5leHQgY2hhcmFjdGVyIGlzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgcXVvdGUgZGVmaW5lZCB3aW5kb3cKKyogICAgRC4gSWYgbmVpdGhlciBvZiBmb2xsb3dpbmcgY2hhcmFjdGVycyBpcyBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50LCAKKyogICAgICAgcXVvdGUgZGVmaW5lZCB3aW5kb3cKKyogICAKKyogIDIuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIGluIHVuZGVmaW5lZCB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCB0d28gY2hhcmFjdGVycworKiAgICBCLiBJZiBib3RoIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgZGVmaW5lIG5ldyB3aW5kb3cKKyogICAgQy4gSWYgb25seSBuZXh0IGNoYXJhY3RlciBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50IGNoYXJhY3RlciwgCisqICAgICAgIHN3aXRjaCB0byBVbmljb2RlIG1vZGUKKyogICAgICAgTk9URTogVGhpcyBjb3N0cyB1cyBvbmUgZXh0cmEgYnl0ZS4gIEhvd2V2ZXIsIAorKiAgICAgICAgc2luY2Ugd2UgaGF2ZSBhIGxpbWl0ZWQgbnVtYmVyIG9mIHdpbmRvd3MgdG8gd29yayB3aXRoLCBpdCBpcyAKKyogICAgICAgIGFzc3VtZWQgdGhlIGNvc3Qgd2lsbCBwYXkgb2ZmIGxhdGVyIGluIHNhdmluZ3MgZnJvbSBhIHdpbmRvdyB3aXRoCisqICAgICAgICBtb3JlIGNoYXJhY3RlcnMgaW4gaXQuCisqICAgIEQuIElmIG5laXRoZXIgb2YgZm9sbG93aW5nIGNoYXJhY3RlcnMgaW4gc2FtZSB3aW5kb3cgYXMgY3VycmVudCwgCisqICAgICAgIHN3aXRjaCB0byBVbmljb2RlIG1vZGUuICBBbHRlcm5hdGl2ZSB0byBhYm92ZToganVzdCBxdW90ZSAKKyogICAgICAgVW5pY29kZSAoc2FtZSBieXRlIGNvc3QpCisqICAgCisqICAzLiBDdXJyZW50IGNoYXJhY3RlciBpcyB1bmNvbXByZXNzaWJsZSBVbmljb2RlIChVKzM0MDAgLSBVK0RGRkYpCisqICAgIEEuIExvb2sgYWhlYWQgb25lIGNoYXJhY3RlcgorKiAgICBCLiBJZiBuZXh0IGNoYXJhY3RlciBpbiBub24tY29tcHJlc3NpYmxlIHJlZ2lvbiwgc3dpdGNoIHRvIAorKiAgICAgICBVbmljb2RlIG1vZGUKKyogICAgQy4gSWYgbmV4dCBjaGFyYWN0ZXIgbm90IGluIG5vbi1jb21wcmVzc2libGUgcmVnaW9uLCBxdW90ZSBVbmljb2RlCisqICAgCisqCisqIFRoZSBmb2xsb3dpbmcgY2hhcnQgaWxsdXN0cmF0ZXMgdGhlIGJ5dGVzIHJlcXVpcmVkIGZvciBlbmNvZGluZyBjaGFyYWN0ZXJzCisqIGluIGVhY2ggcG9zc2libGUgd2F5CisqCisqIAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0lOR0xFIEJZVEUgTU9ERQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3RlcnMgaW4gYSByb3cgd2l0aCBzYW1lIGluZGV4CisqICAgICAgICAgICAgICAgdGFnIGVuY291bnRlcmVkICAgICAgICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQKKyogICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogICAgICAgICAgICAgICBub25lIChpbiBjdXJyZW50IHdpbmRvdykgICAgMSAgICAgICAyICAgICAgIDMgICAgICAgNAorKgorKiAgICAgICAgICAgICAgIHF1b3RlIFVuaWNvZGUgICAgICAgICAgICAgICAzICAgICAgIDYgICAgICAgOSAgICAgICAxMgorKgorKiAgIHdpbmRvdyBub3QgIHN3aXRjaCB0byBVbmljb2RlICAgICAgICAgICAzICAgICAgIDUgICAgICAgNyAgICAgICA5ICAgICBieXRlCisqICAgZGVmaW5lZCAgICAgZGVmaW5lIHdpbmRvdyAgICAgICAgICAgICAgIDMgICAgICAgNCAgICAgICA1ICAgICAgIDYgICAgIGNvc3QKKyogICAgICAKKyogICB3aW5kb3cgICAgICBzd2l0Y2ggdG8gd2luZG93ICAgICAgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNQorKiAgIGRlZmluZWQgICAgIHF1b3RlIHdpbmRvdyAgICAgICAgICAgICAgICAyICAgICAgIDQgICAgICAgNiAgICAgICA4CisqCisqICBVbmljb2RlIE1vZGUKKyoKKyogVGhlcmUgYXJlIHR3byByZWxldmFudCBjYXNlcy4KKyogSWYgdGhlIGNoYXJhY3RlciBpcyBpbiB0aGUgbm9uLWNvbXByZXNzaWJsZSByZWdpb24KKyogKFUrMzQwMCAtIFUrREZGRiksIHRoZSBjaGFyYWN0ZXIgaXMgc2ltcGx5IHdyaXR0ZW4gdG8gdGhlCisqIHN0cmVhbSBhcyBhIHBhaXIgb2YgYnl0ZXMuCisqCisqIDEuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIGluIGRlZmluZWQsIGluYWN0aXZlIHdpbmRvdy4KKyogMi4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gdW5kZWZpbmVkIHdpbmRvdy4KKyoKKyogIDEuQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93CisqICAgIEEuIExvb2sgYWhlYWQgb25lIGNoYXJhY3RlcgorKiAgICBCLiBJZiBuZXh0IGNoYXJhY3RlciBoYXMgc2FtZSBpbmRleCBhcyBjdXJyZW50IGNoYXJhY3RlciwgCisqICAgICAgIHN3aXRjaCB0byBkZWZpbmVkIHdpbmRvdyAoYW5kIHN3aXRjaCB0byBzaW5nbGUtYnl0ZSBtb2RlKQorKiAgICBDLiBJZiBub3QsIGp1c3QgcHV0IGJ5dGVzIGluIHN0cmVhbQorKiAgIAorKiAgCisqICAyLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiB1bmRlZmluZWQgd2luZG93CisqICAgIEEuIExvb2sgYWhlYWQgdHdvIGNoYXJhY3RlcnMKKyogICAgQi4gSWYgYm90aCBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50IGNoYXJhY3RlciwgZGVmaW5lIHdpbmRvdyAKKyogICAgICAgKGFuZCBzd2l0Y2ggdG8gc2luZ2xlLWJ5dGUgbW9kZSkKKyogICAgQy4gSWYgb25seSBuZXh0IGNoYXJhY3RlciBpbiBzYW1lIHdpbmRvdywganVzdCBwdXQgYnl0ZXMgaW4gc3RyZWFtCisqICAgICAgICBOT1RFOiBUaGlzIGNvc3RzIHVzIG9uZSBleHRyYSBieXRlLiAgSG93ZXZlciwgCisqICAgICAgICBzaW5jZSB3ZSBoYXZlIGEgbGltaXRlZCBudW1iZXIgb2Ygd2luZG93cyB0byB3b3JrIHdpdGgsIGl0IGlzIAorKiAgICAgICAgYXNzdW1lZCB0aGUgY29zdCB3aWxsIHBheSBvZmYgbGF0ZXIgaW4gc2F2aW5ncyBmcm9tIGEgd2luZG93IHdpdGggCisqICAgICAgICBtb3JlIGNoYXJhY3RlcnMgaW4gaXQuCisqICAgIEQuIElmIG5laXRoZXIgaW4gc2FtZSB3aW5kb3csIHB1dCBieXRlcyBpbiBzdHJlYW0KKyogICAKKyoKKyogVGhlIGZvbGxvd2luZyBjaGFydCBpbGx1c3RyYXRlcyB0aGUgYnl0ZXMgcmVxdWlyZWQgZm9yIGVuY29kaW5nIGNoYXJhY3RlcnMKKyogaW4gZWFjaCBwb3NzaWJsZSB3YXkKKyoKKyogCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklDT0RFIE1PREUKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXJzIGluIGEgcm93IHdpdGggc2FtZSBpbmRleAorKiAgICAgICAgICAgICAgIHRhZyBlbmNvdW50ZXJlZCAgICAgICAgICAgICAxICAgICAgIDIgICAgICAgMyAgICAgICA0CisqICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAgICAgICAgICAgIDIgICAgICAgNCAgICAgICA2ICAgICAgIDgKKyoKKyogICAgICAgICAgICAgICBxdW90ZSBVbmljb2RlICAgICAgICAgICAgICAgMyAgICAgICA2ICAgICAgIDkgICAgICAgMTIKKyoKKyogICB3aW5kb3cgbm90ICBkZWZpbmUgd2luZG93ICAgICAgICAgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNiAgICAgYnl0ZQorKiAgIGRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3N0CisqICAgd2luZG93ICAgICAgc3dpdGNoIHRvIHdpbmRvdyAgICAgICAgICAgIDIgICAgICAgMyAgICAgICA0ICAgICAgIDUKKyogICBkZWZpbmVkCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVuaWNvZGVDb21wcmVzc29yIGltcGxlbWVudHMgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDbGFzcyB2YXJpYWJsZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKiogRm9yIHF1aWNrIGlkZW50aWZpY2F0aW9uIG9mIGEgYnl0ZSBhcyBhIHNpbmdsZS1ieXRlIG1vZGUgdGFnICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzU2luZ2xlVGFnVGFibGUgPSB7CisgICAgICAgIC8vIHRhYmxlIGdlbmVyYXRlZCBieSBDb21wcmVzc2lvblRhYmxlR2VuZXJhdG9yCisgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwKKyAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsCisgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlICAgCisgICAgfTsKKworICAgIC8qKiBGb3IgcXVpY2sgaWRlbnRpZmljYXRpb24gb2YgYSBieXRlIGFzIGEgdW5pY29kZSBtb2RlIHRhZyAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gW10gc1VuaWNvZGVUYWdUYWJsZSA9IHsKKyAgICAgICAgLy8gdGFibGUgZ2VuZXJhdGVkIGJ5IENvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IKKyAgICAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLAorICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsCisgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlIAorICAgIH07CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gSW5zdGFuY2UgdmFyaWFibGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIAorICAgIC8qKiBBbGlhcyB0byBjdXJyZW50IGR5bmFtaWMgd2luZG93ICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZkN1cnJlbnRXaW5kb3cgICA9IDA7CisKKyAgICAvKiogRHluYW1pYyBjb21wcmVzc2lvbiB3aW5kb3cgb2Zmc2V0cyAqLworICAgIHByaXZhdGUgaW50IFtdICAgIGZPZmZzZXRzICAgICAgICAgPSBuZXcgaW50IFsgTlVNV0lORE9XUyBdOworCisgICAgLyoqIEN1cnJlbnQgY29tcHJlc3Npb24gbW9kZSAqLworICAgIHByaXZhdGUgaW50ICAgICAgIGZNb2RlICAgICAgICAgICAgPSBTSU5HTEVCWVRFTU9ERTsKKworICAgIC8qKiBLZWVwcyBjb3VudCBvZiB0aW1lcyBjaGFyYWN0ZXIgaW5kaWNlcyBhcmUgZW5jb3VudGVyZWQgKi8KKyAgICBwcml2YXRlIGludCBbXSAgICBmSW5kZXhDb3VudCAgICAgID0gbmV3IGludCBbIE1BWElOREVYICsgMSBdOworCisgICAgLyoqIFRoZSB0aW1lIHN0YW1wcyBpbmRpY2F0ZSB3aGVuIGEgd2luZG93IHdhcyBsYXN0IGRlZmluZWQgKi8KKyAgICBwcml2YXRlIGludCBbXSAgICBmVGltZVN0YW1wcyAgICAgID0gbmV3IGludCBbIE5VTVdJTkRPV1MgXTsKKyAgICAKKyAgICAvKiogVGhlIGN1cnJlbnQgdGltZSBzdGFtcCAqLworICAgIHByaXZhdGUgaW50ICAgICAgIGZUaW1lU3RhbXAgICAgICAgPSAwOworICAgIAorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVW5pY29kZUNvbXByZXNzb3IuCisgICAgICogU2V0cyBhbGwgd2luZG93cyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiBAc2VlICNyZXNldAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlQ29tcHJlc3NvcigpCisgICAgeworICAgIHJlc2V0KCk7ICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIHRvIGRlZmF1bHRzCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHJlc3MgYSBzdHJpbmcgaW50byBhIGJ5dGUgYXJyYXkuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgc3RyaW5nIHRvIGNvbXByZXNzLgorICAgICAqIEByZXR1cm4gQSBieXRlIGFycmF5IGNvbnRhaW5pbmcgdGhlIGNvbXByZXNzZWQgY2hhcmFjdGVycy4KKyAgICAgKiBAc2VlICNjb21wcmVzcyhjaGFyIFtdLCBpbnQsIGludCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgW10gY29tcHJlc3MoU3RyaW5nIGJ1ZmZlcikKKyAgICB7CisgICAgcmV0dXJuIGNvbXByZXNzKGJ1ZmZlci50b0NoYXJBcnJheSgpLCAwLCBidWZmZXIubGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXByZXNzIGEgVW5pY29kZSBjaGFyYWN0ZXIgYXJyYXkgaW50byBhIGJ5dGUgYXJyYXkuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgY2hhcmFjdGVyIGJ1ZmZlciB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIgcnVuIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBsaW1pdCBUaGUgbGltaXQgb2YgdGhlIGNoYXJhY3RlciBydW4gdG8gY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIGJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgY29tcHJlc3NlZCBjaGFyYWN0ZXJzLgorICAgICAqIEBzZWUgI2NvbXByZXNzKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgW10gY29tcHJlc3MoY2hhciBbXSBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkKKyAgICB7CisgICAgVW5pY29kZUNvbXByZXNzb3IgY29tcCA9IG5ldyBVbmljb2RlQ29tcHJlc3NvcigpOworCisgICAgLy8gdXNlIGEgYnVmZmVyIHRoYXQgd2Uga25vdyB3aWxsIG5ldmVyIG92ZXJmbG93CisgICAgLy8gaW4gdGhlIHdvcnN0IGNhc2UsIGVhY2ggY2hhcmFjdGVyIHdpbGwgdGFrZSAzIGJ5dGVzCisgICAgLy8gdG8gZW5jb2RlOiBVUVUsIGhpYnl0ZSwgbG9ieXRlLiAgSW4gdGhpcyBjYXNlLCB0aGUKKyAgICAvLyBjb21wcmVzc2VkIGRhdGEgd2lsbCBsb29rIGxpa2U6IFNDVSwgVVFVLCBoaWJ5dGUsIGxvYnl0ZSwgLi4uCisgICAgLy8gYnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgNCBieXRlcyBpbiBzaXplCisgICAgaW50IGxlbiA9IE1hdGgubWF4KDQsIDMgKiAobGltaXQgLSBzdGFydCkgKyAxKTsKKyAgICBieXRlIFtdIHRlbXAgPSBuZXcgYnl0ZSBbbGVuXTsKKworICAgIGludCBieXRlQ291bnQgPSBjb21wLmNvbXByZXNzKGJ1ZmZlciwgc3RhcnQsIGxpbWl0LCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICB0ZW1wLCAwLCBsZW4pOworCisgICAgYnl0ZSBbXSByZXN1bHQgPSBuZXcgYnl0ZSBbYnl0ZUNvdW50XTsKKyAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXAsIDAsIHJlc3VsdCwgMCwgYnl0ZUNvdW50KTsKKyAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXByZXNzIGEgVW5pY29kZSBjaGFyYWN0ZXIgYXJyYXkgaW50byBhIGJ5dGUgYXJyYXkuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgb25seSBjb25zdW1lIGlucHV0IHRoYXQgY2FuIGJlIGNvbXBsZXRlbHkKKyAgICAgKiBvdXRwdXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlciBUaGUgY2hhcmFjdGVyIGJ1ZmZlciB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlclN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgY2hhcmFjdGVyIHJ1biB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlckxpbWl0IFRoZSBsaW1pdCBvZiB0aGUgY2hhcmFjdGVyIHJ1biB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gY2hhcnNSZWFkIEEgb25lLWVsZW1lbnQgYXJyYXkuICBJZiBub3QgbnVsbCwgb24gcmV0dXJuIAorICAgICAqIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyByZWFkIGZyb20gY2hhckJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlciBBIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBjb21wcmVzc2VkIGRhdGEuICBUaGlzIAorICAgICAqIGJ1ZmZlciBtdXN0IGJlIGF0IG1pbmltdW0gZm91ciBieXRlcyBpbiBzaXplLgorICAgICAqIEBwYXJhbSBieXRlQnVmZmVyU3RhcnQgVGhlIHN0YXJ0aW5nIG9mZnNldCB0byB3aGljaCB0byB3cml0ZSAKKyAgICAgKiBjb21wcmVzc2VkIGRhdGEuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJMaW1pdCBUaGUgbGltaXRpbmcgb2Zmc2V0IGZvciB3cml0aW5nIGNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byBieXRlQnVmZmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcHJlc3MoY2hhciBbXSAgICAgY2hhckJ1ZmZlciwKKyAgICAgICAgICAgIGludCAgICAgICAgIGNoYXJCdWZmZXJTdGFydCwKKyAgICAgICAgICAgIGludCAgICAgICAgIGNoYXJCdWZmZXJMaW1pdCwKKyAgICAgICAgICAgIGludCBbXSAgICAgIGNoYXJzUmVhZCwKKyAgICAgICAgICAgIGJ5dGUgW10gICAgIGJ5dGVCdWZmZXIsCisgICAgICAgICAgICBpbnQgICAgICAgICBieXRlQnVmZmVyU3RhcnQsCisgICAgICAgICAgICBpbnQgICAgICAgICBieXRlQnVmZmVyTGltaXQpCisgICAgeworICAgICAgICAvLyB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgdGFyZ2V0IGJ5dGUgYnVmZmVyCisgICAgaW50ICAgICBieXRlUG9zICAgICAgID0gYnl0ZUJ1ZmZlclN0YXJ0OworICAgIAorICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBzb3VyY2UgdW5pY29kZSBjaGFyYWN0ZXIgYnVmZmVyCisgICAgaW50ICAgICB1Y1BvcyAgICAgICAgID0gY2hhckJ1ZmZlclN0YXJ0OworICAgIAorICAgIC8vIHRoZSBjdXJyZW50IHVuaWNvZGUgY2hhcmFjdGVyIGZyb20gdGhlIHNvdXJjZSBidWZmZXIKKyAgICBpbnQgICAgIGN1clVDICAgICAgICAgPSBJTlZBTElEQ0hBUjsKKyAgICAKKyAgICAvLyB0aGUgaW5kZXggZm9yIHRoZSBjdXJyZW50IGNoYXJhY3RlcgorICAgICAgICBpbnQgICAgIGN1ckluZGV4ICAgICAgPSAtMTsKKyAgICAgICAgCisgICAgLy8gbG9vayBhaGVhZAorICAgIGludCAgICAgbmV4dFVDICAgICAgICA9IElOVkFMSURDSEFSOworICAgIGludCAgICAgZm9yd2FyZFVDICAgICA9IElOVkFMSURDSEFSOworICAgIAorICAgICAgICAvLyB0ZW1wb3JhcnkgZm9yIHdpbmRvdyBzZWFyY2hpbmcKKyAgICBpbnQgICAgIHdoaWNoV2luZG93ICAgPSAwOworICAgIAorICAgIC8vIGhpZ2ggYW5kIGxvdyBieXRlcyBvZiB0aGUgY3VycmVudCB1bmljb2RlIGNoYXJhY3RlcgorICAgIGludCAgICAgaGlCeXRlICAgICAgICA9IDA7CisgICAgaW50ICAgICBsb0J5dGUgICAgICAgID0gMDsKKworCisgICAgLy8gYnl0ZUJ1ZmZlciBtdXN0IGJlIGF0IGxlYXN0IDQgYnl0ZXMgaW4gc2l6ZQorICAgIGlmKGJ5dGVCdWZmZXIubGVuZ3RoIDwgNCB8fCAoYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZUJ1ZmZlclN0YXJ0KSA8IDQpCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJ5dGVCdWZmZXIubGVuZ3RoIDwgNCIpOworCisgICAgbWFpbkxvb3A6CisgICAgd2hpbGUodWNQb3MgPCBjaGFyQnVmZmVyTGltaXQgJiYgYnl0ZVBvcyA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICBzd2l0Y2goZk1vZGUpIHsKKyAgICAgICAgLy8gbWFpbiBzaW5nbGUgYnl0ZSBtb2RlIGNvbXByZXNzaW9uIGxvb3AKKyAgICAgICAgY2FzZSBTSU5HTEVCWVRFTU9ERToKKyAgICAgICAgc2luZ2xlQnl0ZU1vZGVMb29wOgorICAgICAgICB3aGlsZSh1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCAmJiBieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgIC8vIGdldCBjdXJyZW50IGNoYXIKKyAgICAgICAgY3VyVUMgPSBjaGFyQnVmZmVyW3VjUG9zKytdOworCisgICAgICAgIC8vIGdldCBuZXh0IGNoYXIKKyAgICAgICAgaWYodWNQb3MgPCBjaGFyQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgbmV4dFVDID0gY2hhckJ1ZmZlclt1Y1Bvc107CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5leHRVQyA9IElOVkFMSURDSEFSOworICAgICAgICAKKyAgICAgICAgLy8gY2hhcnMgbGVzcyB0aGFuIDB4MDA4MCAoZXhjbHVkaW5nIHRhZ3MpIGdvIHN0cmFpZ2h0CisgICAgICAgIC8vIGluIHN0cmVhbQorICAgICAgICBpZihjdXJVQyA8IDB4MDA4MCkgeworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNoZWNrIGFuZCBtYWtlIHN1cmUgd2UgZG9uJ3QKKyAgICAgICAgICAgIC8vIGFjY2lkZW50YWxseSB3cml0ZSBhIHNpbmdsZSBieXRlIG1vZGUgdGFnIHRvCisgICAgICAgICAgICAvLyB0aGUgc3RyZWFtIHVubGVzcyBpdCdzIHF1b3RlZAorICAgICAgICAgICAgaWYoc1NpbmdsZVRhZ1RhYmxlW2xvQnl0ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgdGhlIGJ5dGUgaXMgbGVzcyB0aGFuIDB4ODAsIFNRVU9URTAKKyAgICAgICAgICAgIC8vIHdpbGwgdXNlIHN0YXRpYyB3aW5kb3cgMCwgb3IgQVNDSUkKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTUVVPVEUwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGNoYXIgYmVsb25ncyB0byBjdXJyZW50IHdpbmRvdywgY29udmVydCBpdAorICAgICAgICAvLyB0byBhIGJ5dGUgYnkgYWRkaW5nIHRoZSBnZW5lcmljIGNvbXByZXNzaW9uIG9mZnNldAorICAgICAgICAvLyBhbmQgc3VidHJhY3RpbmcgdGhlIHdpbmRvdydzIG9mZnNldAorICAgICAgICBlbHNlIGlmKGluRHluYW1pY1dpbmRvdyhjdXJVQywgZkN1cnJlbnRXaW5kb3cpICkgeworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIAorICAgICAgICAgICAgKGN1clVDIC0gZk9mZnNldHNbIGZDdXJyZW50V2luZG93IF0gCisgICAgICAgICAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGlmIGNoYXIgaXMgbm90IGluIGNvbXByZXNzaWJsZSByYW5nZSwgZWl0aGVyIHN3aXRjaCB0byBvcgorICAgICAgICAvLyBxdW90ZSBmcm9tIHVuaWNvZGUKKyAgICAgICAgZWxzZSBpZiggISBpc0NvbXByZXNzaWJsZShjdXJVQykgKSB7CisgICAgICAgICAgICAvLyBvbmx5IGNoZWNrIG5leHQgY2hhcmFjdGVyIGlmIGl0IGlzIHZhbGlkCisgICAgICAgICAgICBpZihuZXh0VUMgIT0gSU5WQUxJRENIQVIgJiYgaXNDb21wcmVzc2libGUobmV4dFVDKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYWxsIHRocmVlIGJ5dGVzIGlmIG5vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgU1FVT1RFVTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAoY3VyVUMgPj4+IDgpOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIChjdXJVQyAmIDB4RkYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgZm91ciBieXRlcyBpZiBub3QsIHJld2luZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDMpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgU0NIQU5HRVU7CisKKyAgICAgICAgICAgIGhpQnl0ZSA9IGN1clVDID4+PiA4OworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICBpZihzVW5pY29kZVRhZ1RhYmxlW2hpQnl0ZV0pCisgICAgICAgICAgICAgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdICAgPSAoYnl0ZSkgVVFVT1RFVTsgICAgCisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZk1vZGUgPSBVTklDT0RFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHNpbmdsZUJ5dGVNb2RlTG9vcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBjaGFyIGlzIGluIGEgY3VycmVudGx5IGRlZmluZWQgZHluYW1pYworICAgICAgICAvLyB3aW5kb3csIGZpZ3VyZSBvdXQgd2hpY2ggb25lLCBhbmQgZWl0aGVyIHN3aXRjaCB0bworICAgICAgICAvLyBpdCBvciBxdW90ZSBmcm9tIGl0CisgICAgICAgIGVsc2UgaWYoKHdoaWNoV2luZG93ID0gZmluZER5bmFtaWNXaW5kb3coY3VyVUMpKSAKKyAgICAgICAgICAgICE9IElOVkFMSURXSU5ET1cgKSB7CisgICAgICAgICAgICAvLyBsb29rIGFoZWFkCisgICAgICAgICAgICBpZiggKHVjUG9zICsgMSkgPCBjaGFyQnVmZmVyTGltaXQgKQorICAgICAgICAgICAgZm9yd2FyZFVDID0gY2hhckJ1ZmZlclt1Y1BvcyArIDFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZm9yd2FyZFVDID0gSU5WQUxJRENIQVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGFsbCB0aHJlZSBjaGFycyBpbiBzYW1lIHdpbmRvdywgc3dpdGNoIHRvIHRoYXQKKyAgICAgICAgICAgIC8vIHdpbmRvdyBpbkR5bmFtaWNXaW5kb3cgd2lsbCByZXR1cm4gZmFsc2UgZm9yCisgICAgICAgICAgICAvLyBJTlZBTElEQ0hBUgorICAgICAgICAgICAgaWYoaW5EeW5hbWljV2luZG93KG5leHRVQywgd2hpY2hXaW5kb3cpIAorICAgICAgICAgICAgICAgJiYgaW5EeW5hbWljV2luZG93KGZvcndhcmRVQywgd2hpY2hXaW5kb3cpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkoU0NIQU5HRTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAgICAgKGN1clVDIC0gZk9mZnNldHNbd2hpY2hXaW5kb3ddIAorICAgICAgICAgICAgICAgICArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKyAgICAgICAgICAgIGZUaW1lU3RhbXBzIFsgd2hpY2hXaW5kb3cgXSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gd2hpY2hXaW5kb3c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGVpdGhlciBvbmx5IG5leHQgY2hhciBvciBuZWl0aGVyIGluIHNhbWUKKyAgICAgICAgICAgIC8vIHdpbmRvdywgc28gcXVvdGUKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYm90aCBieXRlcyBpZiBub3QsIHJld2luZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgKFNRVU9URTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAgICAgKGN1clVDIC0gZk9mZnNldHNbd2hpY2hXaW5kb3ddIAorICAgICAgICAgICAgICAgICArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGEgc3RhdGljIHdpbmRvdyBpcyBkZWZpbmVkLCBhbmQgdGhlIGZvbGxvd2luZworICAgICAgICAvLyBjaGFyYWN0ZXIgaXMgbm90IGluIHRoYXQgc3RhdGljIHdpbmRvdywgcXVvdGUgZnJvbQorICAgICAgICAvLyB0aGUgc3RhdGljIHdpbmRvdyBOb3RlOiB0byBxdW90ZSBmcm9tIGEgc3RhdGljCisgICAgICAgIC8vIHdpbmRvdywgZG9uJ3QgYWRkIDB4ODAKKyAgICAgICAgZWxzZSBpZigod2hpY2hXaW5kb3cgPSBmaW5kU3RhdGljV2luZG93KGN1clVDKSkgCisgICAgICAgICAgICAhPSBJTlZBTElEV0lORE9XIAorICAgICAgICAgICAgJiYgISBpblN0YXRpY1dpbmRvdyhuZXh0VUMsIHdoaWNoV2luZG93KSApIHsKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBib3RoCisgICAgICAgICAgICAvLyBieXRlcyBpZiBub3QsIHJld2luZCB0aGUgc291cmNlIHN0cmVhbSBhbmQKKyAgICAgICAgICAgIC8vIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgKFNRVU9URTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAoY3VyVUMgLSBzT2Zmc2V0c1t3aGljaFdpbmRvd10pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpZiBhIHdpbmRvdyBpcyBub3QgZGVmaW5lZCwgZGVjaWRlIGlmIHdlIHdhbnQgdG8KKyAgICAgICAgLy8gZGVmaW5lIGEgbmV3IG9uZSBvciBzd2l0Y2ggdG8gdW5pY29kZSBtb2RlCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIGluZGV4IGZvciBjdXJyZW50IGNoYXIgKGNoYXIgaXMgY29tcHJlc3NpYmxlKQorICAgICAgICAgICAgY3VySW5kZXggPSBtYWtlSW5kZXgoY3VyVUMpOworICAgICAgICAgICAgZkluZGV4Q291bnRbY3VySW5kZXhdKys7CisKKyAgICAgICAgICAgIC8vIGxvb2sgYWhlYWQKKyAgICAgICAgICAgIGlmKCh1Y1BvcyArIDEpIDwgY2hhckJ1ZmZlckxpbWl0KQorICAgICAgICAgICAgZm9yd2FyZFVDID0gY2hhckJ1ZmZlclt1Y1BvcyArIDFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZm9yd2FyZFVDID0gSU5WQUxJRENIQVI7CisKKyAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgZW5jb3VudGVyZWQgdGhpcyBpbmRleCBhdCBsZWFzdCBvbmNlCisgICAgICAgICAgICAvLyBiZWZvcmUsIGRlZmluZSBhIG5ldyB3aW5kb3cKKyAgICAgICAgICAgIC8vIE9SCisgICAgICAgICAgICAvLyB0aHJlZSBjaGFycyBpbiBhIHJvdyB3aXRoIHNhbWUgaW5kZXgsIGRlZmluZSBhCisgICAgICAgICAgICAvLyBuZXcgd2luZG93IChtYWtlSW5kZXggd2lsbCByZXR1cm4gUkVTRVJWRURJTkRFWAorICAgICAgICAgICAgLy8gZm9yIElOVkFMSURDSEFSKQorICAgICAgICAgICAgaWYoKGZJbmRleENvdW50W2N1ckluZGV4XSA+IDEpIHx8CisgICAgICAgICAgICAgICAoY3VySW5kZXggPT0gbWFrZUluZGV4KG5leHRVQykgCisgICAgICAgICAgICAmJiBjdXJJbmRleCA9PSBtYWtlSW5kZXgoZm9yd2FyZFVDKSkpIHsKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBhbGwKKyAgICAgICAgICAgIC8vIHRocmVlIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2UKKyAgICAgICAgICAgIC8vIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZiggKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgLy8gZ2V0IGxlYXN0IHJlY2VudGx5IGRlZmluZWQgd2luZG93CisgICAgICAgICAgICB3aGljaFdpbmRvdyA9IGdldExSRGVmaW5lZFdpbmRvdygpOworCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkoU0RFRklORTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgY3VySW5kZXg7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAgICAgKGN1clVDIC0gc09mZnNldFRhYmxlW2N1ckluZGV4XSAKKyAgICAgICAgICAgICAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisKKyAgICAgICAgICAgIGZPZmZzZXRzW3doaWNoV2luZG93XSA9IHNPZmZzZXRUYWJsZVtjdXJJbmRleF07CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IHdoaWNoV2luZG93OworICAgICAgICAgICAgZlRpbWVTdGFtcHMgW3doaWNoV2luZG93XSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb25seSB0d28gY2hhcnMgaW4gYSByb3cgd2l0aCBzYW1lIGluZGV4LCBzbworICAgICAgICAgICAgLy8gc3dpdGNoIHRvIHVuaWNvZGUgbW9kZSAobWFrZUluZGV4IHdpbGwgcmV0dXJuCisgICAgICAgICAgICAvLyBSRVNFUlZFRElOREVYIGZvciBJTlZBTElEQ0hBUikKKyAgICAgICAgICAgIC8vIE9SCisgICAgICAgICAgICAvLyB0aHJlZSBjaGFycyBoYXZlIGRpZmZlcmVudCBpbmRpY2VzLCBzbyBzd2l0Y2gKKyAgICAgICAgICAgIC8vIHRvIHVuaWNvZGUgbW9kZQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8gd3JpdGUgYWxsCisgICAgICAgICAgICAvLyBmb3VyIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtCisgICAgICAgICAgICAvLyBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDMpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgU0NIQU5HRVU7CisKKyAgICAgICAgICAgIGhpQnl0ZSA9IGN1clVDID4+PiA4OworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICBpZihzVW5pY29kZVRhZ1RhYmxlW2hpQnl0ZV0pCisgICAgICAgICAgICAgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7IAorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgaGlCeXRlOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKworICAgICAgICAgICAgZk1vZGUgPSBVTklDT0RFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHNpbmdsZUJ5dGVNb2RlTG9vcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgVU5JQ09ERU1PREU6CisgICAgICAgIC8vIG1haW4gdW5pY29kZSBtb2RlIGNvbXByZXNzaW9uIGxvb3AKKyAgICAgICAgdW5pY29kZU1vZGVMb29wOgorICAgICAgICB3aGlsZSh1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCAmJiBieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgIC8vIGdldCBjdXJyZW50IGNoYXIKKyAgICAgICAgY3VyVUMgPSBjaGFyQnVmZmVyW3VjUG9zKytdOyAgICAKKworICAgICAgICAvLyBnZXQgbmV4dCBjaGFyCisgICAgICAgIGlmKCB1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCApCisgICAgICAgICAgICBuZXh0VUMgPSBjaGFyQnVmZmVyW3VjUG9zXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV4dFVDID0gSU5WQUxJRENIQVI7CisKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSB0d28gdW5jb21wcmVzc2libGUgY2hhcnMgaW4gYSByb3csCisgICAgICAgIC8vIHB1dCB0aGUgY3VycmVudCBjaGFyJ3MgYnl0ZXMgaW4gdGhlIHN0cmVhbQorICAgICAgICBpZiggISBpc0NvbXByZXNzaWJsZShjdXJVQykgCisgICAgICAgICAgICB8fCAobmV4dFVDICE9IElOVkFMSURDSEFSICYmICEgaXNDb21wcmVzc2libGUobmV4dFVDKSkpIHsKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGhpQnl0ZSA9IGN1clVDID4+PiA4OworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICBpZihzVW5pY29kZVRhZ1RhYmxlWyBoaUJ5dGUgXSkKKyAgICAgICAgICAgIC8vIGFkZCBxdW90ZSBVbmljb2RlIHRhZworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgaGlCeXRlOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gYnl0ZXMgbGVzcyB0aGFuIDB4ODAgY2FuIGdvIHN0cmFpZ2h0IGluIHRoZSBzdHJlYW0sCisgICAgICAgIC8vIGJ1dCBpbiBzaW5nbGUtYnl0ZSBtb2RlCisgICAgICAgIGVsc2UgaWYoY3VyVUMgPCAweDAwODApIHsKKyAgICAgICAgICAgIGxvQnl0ZSA9IGN1clVDICYgMHhGRjsKKworICAgICAgICAgICAgLy8gaWYgdHdvIGNoYXJzIGluIGEgcm93IGJlbG93IDB4ODAgYW5kIHRoZQorICAgICAgICAgICAgLy8gY3VycmVudCBjaGFyIGlzIG5vdCBhIHNpbmdsZS1ieXRlIG1vZGUgdGFnLAorICAgICAgICAgICAgLy8gc3dpdGNoIHRvIHNpbmdsZS1ieXRlIG1vZGUKKyAgICAgICAgICAgIGlmKG5leHRVQyAhPSBJTlZBTElEQ0hBUiAKKyAgICAgICAgICAgICAgICYmIG5leHRVQyA8IDB4MDA4MCAmJiAhIHNTaW5nbGVUYWdUYWJsZVsgbG9CeXRlIF0gKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICAvLyB1c2UgdGhlIGxhc3QtYWN0aXZlIHdpbmRvdworICAgICAgICAgICAgd2hpY2hXaW5kb3cgPSBmQ3VycmVudFdpbmRvdzsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShVQ0hBTkdFMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisKKyAgICAgICAgICAgIC8vZkN1cnJlbnRXaW5kb3cgPSAwOworICAgICAgICAgICAgZlRpbWVTdGFtcHMgW3doaWNoV2luZG93XSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIGZNb2RlID0gU0lOR0xFQllURU1PREU7CisgICAgICAgICAgICBicmVhayB1bmljb2RlTW9kZUxvb3A7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwganVzdCB3cml0ZSB0aGUgYnl0ZXMgdG8gdGhlIHN0cmVhbQorICAgICAgICAgICAgLy8gKHRoaXMgd2lsbCBjb3ZlciB0aGUgY2FzZSBvZiBvbmx5IDEgY2hhciBsZXNzIHRoYW4gMHg4MAorICAgICAgICAgICAgLy8gYW5kIHNpbmdsZS1ieXRlIG1vZGUgdGFncykKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYm90aCBieXRlcyBpZiBub3QsIHJld2luZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICAvLyBzaW5jZSB0aGUgY2hhcmFjdGVyIGlzIGxlc3MgdGhhbiAweDgwLCB0aGUKKyAgICAgICAgICAgIC8vIGhpZ2ggYnl0ZSBpcyBhbHdheXMgMHgwMCAtIG5vIG5lZWQgZm9yCisgICAgICAgICAgICAvLyAoY3VyVUMgPj4+IDgpCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgMHgwMDsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaWd1cmUgb3V0IGlmIHRoZSBjdXJyZW50IGNoYXIgaXMgaW4gYSBkZWZpbmVkIHdpbmRvdworICAgICAgICBlbHNlIGlmKCh3aGljaFdpbmRvdyA9IGZpbmREeW5hbWljV2luZG93KGN1clVDKSkgCisgICAgICAgICAgICAhPSBJTlZBTElEV0lORE9XICkgeworICAgICAgICAgICAgLy8gaWYgdHdvIGNoYXJzIGluIGEgcm93IGluIHRoZSBzYW1lIHdpbmRvdywKKyAgICAgICAgICAgIC8vIHN3aXRjaCB0byB0aGF0IHdpbmRvdyBhbmQgZ28gdG8gc2luZ2xlLWJ5dGUgbW9kZQorICAgICAgICAgICAgLy8gaW5EeW5hbWljV2luZG93IHdpbGwgcmV0dXJuIGZhbHNlIGZvciBJTlZBTElEQ0hBUgorICAgICAgICAgICAgaWYoaW5EeW5hbWljV2luZG93KG5leHRVQywgd2hpY2hXaW5kb3cpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShVQ0hBTkdFMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKyAgICAgICAgICAgICAgICAoY3VyVUMgLSBmT2Zmc2V0c1t3aGljaFdpbmRvd10gCisgICAgICAgICAgICAgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworCisgICAgICAgICAgICBmVGltZVN0YW1wcyBbIHdoaWNoV2luZG93IF0gPSArK2ZUaW1lU3RhbXA7CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IHdoaWNoV2luZG93OworICAgICAgICAgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBqdXN0IHF1b3RlIHRoZSB1bmljb2RlIGZvciB0aGUgY2hhcgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIGlmKHNVbmljb2RlVGFnVGFibGVbIGhpQnl0ZSBdKQorICAgICAgICAgICAgICAgIC8vIGFkZCBxdW90ZSBVbmljb2RlIHRhZworICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBVUVVPVEVVOworCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgaGlCeXRlOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gY2hhciBpcyBub3QgaW4gYSBkZWZpbmVkIHdpbmRvdworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGRldGVybWluZSBpbmRleCBmb3IgY3VycmVudCBjaGFyIChjaGFyIGlzIGNvbXByZXNzaWJsZSkKKyAgICAgICAgICAgIGN1ckluZGV4ID0gbWFrZUluZGV4KGN1clVDKTsKKyAgICAgICAgICAgIGZJbmRleENvdW50W2N1ckluZGV4XSsrOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBsb29rIGFoZWFkCisgICAgICAgICAgICBpZiggKHVjUG9zICsgMSkgPCBjaGFyQnVmZmVyTGltaXQgKQorICAgICAgICAgICAgZm9yd2FyZFVDID0gY2hhckJ1ZmZlclt1Y1BvcyArIDFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZm9yd2FyZFVDID0gSU5WQUxJRENIQVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgZW5jb3VudGVyZWQgdGhpcyBpbmRleCBhdCBsZWFzdCBvbmNlCisgICAgICAgICAgICAvLyBiZWZvcmUsIGRlZmluZSBhIG5ldyB3aW5kb3cgZm9yIGl0IHRoYXQgaGFzbid0CisgICAgICAgICAgICAvLyBwcmV2aW91c2x5IGJlZW4gcmVkZWZpbmVkCisgICAgICAgICAgICAvLyBPUgorICAgICAgICAgICAgLy8gaWYgdGhyZWUgY2hhcnMgaW4gYSByb3cgd2l0aCB0aGUgc2FtZSBpbmRleCwKKyAgICAgICAgICAgIC8vIGRlZmluZSBhIG5ldyB3aW5kb3cgKG1ha2VJbmRleCB3aWxsIHJldHVybgorICAgICAgICAgICAgLy8gUkVTRVJWRURJTkRFWCBmb3IgSU5WQUxJRENIQVIpCisgICAgICAgICAgICBpZigoZkluZGV4Q291bnRbY3VySW5kZXhdID4gMSkgfHwKKyAgICAgICAgICAgICAgIChjdXJJbmRleCA9PSBtYWtlSW5kZXgobmV4dFVDKSAKKyAgICAgICAgICAgICYmIGN1ckluZGV4ID09IG1ha2VJbmRleChmb3J3YXJkVUMpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYWxsIHRocmVlIGJ5dGVzIGlmIG5vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMikgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIC8vIGdldCBsZWFzdCByZWNlbnRseSBkZWZpbmVkIHdpbmRvdworICAgICAgICAgICAgd2hpY2hXaW5kb3cgPSBnZXRMUkRlZmluZWRXaW5kb3coKTsKKworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpKFVERUZJTkUwICsgd2hpY2hXaW5kb3cpOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGN1ckluZGV4OworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIAorICAgICAgICAgICAgICAgIChjdXJVQyAtIHNPZmZzZXRUYWJsZVtjdXJJbmRleF0gCisgICAgICAgICAgICAgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmT2Zmc2V0c1t3aGljaFdpbmRvd10gPSBzT2Zmc2V0VGFibGVbY3VySW5kZXhdOworICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSB3aGljaFdpbmRvdzsKKyAgICAgICAgICAgIGZUaW1lU3RhbXBzIFt3aGljaFdpbmRvd10gPSArK2ZUaW1lU3RhbXA7CisgICAgICAgICAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBvdGhlcndpc2UganVzdCBxdW90ZSB0aGUgdW5pY29kZSwgYW5kIHNhdmUgb3VyCisgICAgICAgICAgICAvLyB3aW5kb3dzIGZvciBsb25nZXIgcnVucworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIGlmKHNVbmljb2RlVGFnVGFibGVbIGhpQnl0ZSBdKQorICAgICAgICAgICAgICAgIC8vIGFkZCBxdW90ZSBVbmljb2RlIHRhZworICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBVUVVPVEVVOyAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfSAgLy8gZW5kIHN3aXRjaAorICAgIH0KKyAgICAKKyAgICAgICAgLy8gZmlsbCBpbiBvdXRwdXQgcGFyYW1ldGVyCisgICAgaWYoY2hhcnNSZWFkICE9IG51bGwpCisgICAgICAgIGNoYXJzUmVhZCBbMF0gPSAodWNQb3MgLSBjaGFyQnVmZmVyU3RhcnQpOworICAgICAgICAKKyAgICAgICAgLy8gcmV0dXJuICMgb2YgYnl0ZXMgd3JpdHRlbgorICAgICAgICByZXR1cm4gKGJ5dGVQb3MgLSBieXRlQnVmZmVyU3RhcnQpOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBSZXNldCB0aGUgY29tcHJlc3NvciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgIGludCBpOworCisgICAgICAgIC8vIHJlc2V0IGR5bmFtaWMgd2luZG93cworICAgICAgICBmT2Zmc2V0c1swXSA9IDB4MDA4MDsgICAgLy8gTGF0aW4tMQorICAgICAgICBmT2Zmc2V0c1sxXSA9IDB4MDBDMDsgICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50ICsgTGF0aW4gRXh0ZW5kZWQtQQorICAgICAgICBmT2Zmc2V0c1syXSA9IDB4MDQwMDsgICAgLy8gQ3lyaWxsaWMKKyAgICAgICAgZk9mZnNldHNbM10gPSAweDA2MDA7ICAgIC8vIEFyYWJpYworICAgICAgICBmT2Zmc2V0c1s0XSA9IDB4MDkwMDsgICAgLy8gRGV2YW5hZ2FyaQorICAgICAgICBmT2Zmc2V0c1s1XSA9IDB4MzA0MDsgICAgLy8gSGlyYWdhbmEKKyAgICAgICAgZk9mZnNldHNbNl0gPSAweDMwQTA7ICAgIC8vIEthdGFrYW5hCisgICAgICAgIGZPZmZzZXRzWzddID0gMHhGRjAwOyAgICAvLyBGdWxsd2lkdGggQVNDSUkKKworCisgICAgICAgIC8vIHJlc2V0IHRpbWUgc3RhbXBzCisgICAgICAgIGZvcihpID0gMDsgaSA8IE5VTVdJTkRPV1M7IGkrKykgeworICAgICAgICAgICAgZlRpbWVTdGFtcHNbaV0gICAgICAgICAgPSAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVzZXQgY291bnQgb2Ygc2VlbiBpbmRpY2VzCisgICAgICAgIGZvcihpID0gMDsgaSA8PSBNQVhJTkRFWDsgaSsrICkgeworICAgICAgICAgICAgZkluZGV4Q291bnRbaV0gPSAwOworICAgICAgICB9CisKKyAgICAgICAgZlRpbWVTdGFtcCAgICAgID0gMDsgICAgICAgICAgICAgICAgLy8gUmVzZXQgY3VycmVudCB0aW1lIHN0YW1wCisgICAgICAgIGZDdXJyZW50V2luZG93ICA9IDA7ICAgICAgICAgICAgICAgIC8vIE1ha2UgY3VycmVudCB3aW5kb3cgTGF0aW4tMQorICAgICAgICBmTW9kZSAgICAgICAgICAgPSBTSU5HTEVCWVRFTU9ERTsgICAvLyBBbHdheXMgc3RhcnQgaW4gc2luZ2xlLWJ5dGUgbW9kZQorICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBEZXRlcm1pbmUgdGhlIGluZGV4IGZvciBhIGNoYXJhY3RlcgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGUgaW5kZXggdmFsdWUgZm9yIGEgY2hhcmFjdGVyLgorICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZnVuY3Rpb24sIHJlZmVyIHRvIHRhYmxlIFgtMworICAgICAqIDxBIEhSRUY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyNiI+VVRSNjwvQT4uCisgICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciBpbiBxdWVzdGlvbi4KKyAgICAgKiBAcmV0dXJuIEFuIGluZGV4IGZvciBjCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1ha2VJbmRleChpbnQgYykKKyAgICB7CisgICAgICAgIC8vIGNoZWNrIHRoZSBwcmVkZWZpbmVkIGluZGljZXMKKyAgICAgICAgaWYoYyA+PSAweDAwQzAgJiYgYyA8IDB4MDE0MCkKKyAgICAgICAgICAgIHJldHVybiBMQVRJTklOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHgwMjUwICYmIGMgPCAweDAyRDApCisgICAgICAgICAgICByZXR1cm4gSVBBRVhURU5TSU9OSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDAzNzAgJiYgYyA8IDB4MDNGMCkKKyAgICAgICAgICAgIHJldHVybiBHUkVFS0lOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHgwNTMwICYmIGMgPCAweDA1OTApCisgICAgICAgICAgICByZXR1cm4gQVJNRU5JQU5JTkRFWDsKKyAgICAgICAgZWxzZSBpZihjID49IDB4MzA0MCAmJiBjIDwgMHgzMEEwKQorICAgICAgICAgICAgcmV0dXJuIEhJUkFHQU5BSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDMwQTAgJiYgYyA8IDB4MzEyMCkKKyAgICAgICAgICAgIHJldHVybiBLQVRBS0FOQUlOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHhGRjYwICYmIGMgPCAweEZGOUYpCisgICAgICAgICAgICByZXR1cm4gSEFMRldJRFRIS0FUQUtBTkFJTkRFWDsKKworICAgICAgICAvLyBjYWxjdWxhdGUgaW5kZXgKKyAgICAgICAgZWxzZSBpZihjID49IDB4MDA4MCAmJiBjIDwgMHgzNDAwKQorICAgICAgICAgICAgcmV0dXJuIChjIC8gMHg4MCkgJiAweEZGOworICAgICAgICBlbHNlIGlmKGMgPj0gMHhFMDAwICYmIGMgPD0gMHhGRkZGKQorICAgICAgICAgICAgcmV0dXJuICgoYyAtIDB4QUMwMCkgLyAweDgwKSAmIDB4RkY7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBSRVNFUlZFRElOREVYOworICAgICAgICB9CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENoZWNrIGlmIGEgZ2l2ZW4gY2hhcmFjdGVyIGZpdHMgaW4gYSB3aW5kb3cKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAqIERldGVybWluZSBpZiBhIGNoYXJhY3RlciBpcyBpbiBhIGR5bmFtaWMgd2luZG93LgorICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciB0byB0ZXN0CisgICAgKiBAcGFyYW0gd2hpY2hXaW5kb3cgVGhlIGR5bmFtaWMgd2luZG93IHRoZSB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgPFRUPmM8L1RUPiB3aWxsIGZpdCBpbiA8VFQ+d2hpY2hXaW5kb3c8L1RUPiwgCisgICAgKiBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaW5EeW5hbWljV2luZG93KGludCBjLCAKKyAgICAgICAgICAgICAgICAgICAgaW50IHdoaWNoV2luZG93KQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjID49IGZPZmZzZXRzW3doaWNoV2luZG93XSAKKyAgICAgICAgJiYgYyA8IChmT2Zmc2V0c1t3aGljaFdpbmRvd10gKyAweDgwKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGluIGEgc3RhdGljIHdpbmRvdy4KKyAgICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgdG8gdGVzdAorICAgICogQHBhcmFtIHdoaWNoV2luZG93IFRoZSBzdGF0aWMgd2luZG93IHRoZSB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgPFRUPmM8L1RUPiB3aWxsIGZpdCBpbiA8VFQ+d2hpY2hXaW5kb3c8L1RUPiwgCisgICAgKiBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGluU3RhdGljV2luZG93KGludCBjLCAKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgd2hpY2hXaW5kb3cpCisgICAgeworICAgICAgICByZXR1cm4gKGMgPj0gc09mZnNldHNbd2hpY2hXaW5kb3ddCisgICAgICAgICYmIGMgPCAoc09mZnNldHNbd2hpY2hXaW5kb3ddICsgMHg4MCkpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDaGVjayBpZiBhIGdpdmVuIGNoYXJhY3RlciBpcyBjb21wcmVzc2libGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAqIERldGVybWluZSBpZiBhIGNoYXJhY3RlciBpcyBjb21wcmVzc2libGUuCisgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIHRvIHRlc3QuCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIDxUVD5jPC9UVD4gaXMgY29tcHJlc3NpYmxlLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzQ29tcHJlc3NpYmxlKGludCBjKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjIDwgMHgzNDAwIHx8IGMgPj0gMHhFMDAwKTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2hlY2sgaWYgYSB3aW5kb3cgaXMgZGVmaW5lZCBmb3IgYSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBkeW5hbWljIHdpbmRvdyBmb3IgYSBjZXJ0YWluIGNoYXJhY3RlciBpcyBkZWZpbmVkCisgICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciBpbiBxdWVzdGlvbgorICAgICAqIEByZXR1cm4gVGhlIGR5bmFtaWMgd2luZG93IGNvbnRhaW5pbmcgPFRUPmM8L1RUPiwgb3IgCisgICAgICogSU5WQUxJRFdJTkRPVyBpZiBub3QgZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBmaW5kRHluYW1pY1dpbmRvdyhpbnQgYykKKyAgICB7CisgICAgLy8gc3VwcG9zZWRseSBmYXN0ZXIgdG8gY291bnQgZG93bgorICAgICAgICAvL2ZvcihpbnQgaSA9IDA7IGkgPCBOVU1XSU5ET1dTOyBpKyspIHsKKyAgICBmb3IoaW50IGkgPSBOVU1XSU5ET1dTIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYoaW5EeW5hbWljV2luZG93KGMsIGkpKSB7CisgICAgICAgICsrZlRpbWVTdGFtcHNbaV07CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gSU5WQUxJRFdJTkRPVzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBzdGF0aWMgd2luZG93IGZvciBhIGNlcnRhaW4gY2hhcmFjdGVyIGlzIGRlZmluZWQKKyAgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBUaGUgc3RhdGljIHdpbmRvdyBjb250YWluaW5nIDxUVD5jPC9UVD4sIG9yIAorICAgICAqIElOVkFMSURXSU5ET1cgaWYgbm90IGRlZmluZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRTdGF0aWNXaW5kb3coaW50IGMpCisgICAgeworICAgIC8vIHN1cHBvc2VkbHkgZmFzdGVyIHRvIGNvdW50IGRvd24KKyAgICAgICAgLy9mb3IoaW50IGkgPSAwOyBpIDwgTlVNU1RBVElDV0lORE9XUzsgaSsrKSB7CisgICAgZm9yKGludCBpID0gTlVNU1RBVElDV0lORE9XUyAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmKGluU3RhdGljV2luZG93KGMsIGkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgICAgIHJldHVybiBJTlZBTElEV0lORE9XOworICAgIH0KKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gRmluZCB0aGUgbGVhc3QtcmVjZW50bHkgdXNlZCB3aW5kb3cKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKiogRmluZCB0aGUgbGVhc3QtcmVjZW50bHkgZGVmaW5lZCB3aW5kb3cgKi8KKyAgICBwcml2YXRlIGludCBnZXRMUkRlZmluZWRXaW5kb3coKQorICAgIHsKKyAgICAgICAgaW50IGxlYXN0UlUgICAgICAgICA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICBpbnQgd2hpY2hXaW5kb3cgICAgID0gSU5WQUxJRFdJTkRPVzsKKworICAgICAgICAvLyBmaW5kIGxlYXN0IHJlY2VudGx5IHVzZWQgd2luZG93CisgICAgICAgIC8vIHN1cHBvc2VkbHkgZmFzdGVyIHRvIGNvdW50IGRvd24KKyAgICAgICAgLy9mb3IoIGludCBpID0gMDsgaSA8IE5VTVdJTkRPV1M7IGkrKyApIHsKKyAgICAgICAgZm9yKGludCBpID0gTlVNV0lORE9XUyAtIDE7IGkgPj0gMDsgLS1pICkgeworICAgICAgICAgICAgaWYoIGZUaW1lU3RhbXBzW2ldIDwgbGVhc3RSVSApIHsKKyAgICAgICAgICAgICAgICBsZWFzdFJVICAgPSBmVGltZVN0YW1wc1tpXTsKKyAgICAgICAgICAgICAgICB3aGljaFdpbmRvdyAgPSBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHdoaWNoV2luZG93OworICAgIH0KKyAgICAKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRGVjb21wcmVzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRGVjb21wcmVzc29yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNkMDdlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDU2MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyogQSBkZWNvbXByZXNzaW9uIGVuZ2luZSBpbXBsZW1lbnRpbmcgdGhlIFN0YW5kYXJkIENvbXByZXNzaW9uIFNjaGVtZQorKiBmb3IgVW5pY29kZSAoU0NTVSkgYXMgb3V0bGluZWQgaW4gPEEKKyogSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5Vbmljb2RlIFRlY2huaWNhbAorKiBSZXBvcnQgIzY8L0E+LgorKgorKiA8UD48U1RST05HPlVTQUdFPC9TVFJPTkc+PC9QPgorKgorKiA8UD5UaGUgc3RhdGljIG1ldGhvZHMgb24gPFRUPlVuaWNvZGVEZWNvbXByZXNzb3I8L1RUPiBtYXkgYmUgdXNlZCBpbiBhCisqIHN0cmFpZ2h0Zm9yd2FyZCBtYW5uZXIgdG8gZGVjb21wcmVzcyBzaW1wbGUgc3RyaW5nczo8L1A+CisqCisqIDxQUkU+CisqICBieXRlIFtdIGNvbXByZXNzZWQgPSAuLi4gOyAvLyBnZXQgY29tcHJlc3NlZCBieXRlcyBmcm9tIHNvbWV3aGVyZQorKiAgU3RyaW5nIHJlc3VsdCA9IFVuaWNvZGVEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhjb21wcmVzc2VkKTsKKyogPC9QUkU+CisqCisqIDxQPlRoZSBzdGF0aWMgbWV0aG9kcyBoYXZlIGEgZmFpcmx5IGxhcmdlIG1lbW9yeSBmb290cHJpbnQuCisqIEZvciBmaW5lci1ncmFpbmVkIGNvbnRyb2wgb3ZlciBtZW1vcnkgdXNhZ2UsIAorKiA8VFQ+VW5pY29kZURlY29tcHJlc3NvcjwvVFQ+IG9mZmVycyBtb3JlIHBvd2VyZnVsIEFQSXMgYWxsb3dpbmcKKyogaXRlcmF0aXZlIGRlY29tcHJlc3Npb246PC9QPgorKgorKiA8UFJFPgorKiAgLy8gRGVjb21wcmVzcyBhbiBhcnJheSAiYnl0ZXMiIG9mIGxlbmd0aCAibGVuIiB1c2luZyBhIGJ1ZmZlciBvZiA1MTIgY2hhcnMKKyogIC8vIHRvIHRoZSBXcml0ZXIgIm91dCIKKyoKKyogIFVuaWNvZGVEZWNvbXByZXNzb3IgbXlEZWNvbXByZXNzb3IgICAgICAgICA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisqICBmaW5hbCBzdGF0aWMgaW50ICAgIEJVRlNJWkUgICAgICAgICAgICAgICAgPSA1MTI7CisqICBjaGFyIFtdICAgICAgICAgICAgIGNoYXJCdWZmZXIgICAgICAgICAgICAgPSBuZXcgY2hhciBbIEJVRlNJWkUgXTsKKyogIGludCAgICAgICAgICAgICAgICAgY2hhcnNXcml0dGVuICAgICAgICAgICA9IDA7CisqICBpbnQgW10gICAgICAgICAgICAgIGJ5dGVzUmVhZCAgICAgICAgICAgICAgPSBuZXcgaW50IFsxXTsKKyogIGludCAgICAgICAgICAgICAgICAgdG90YWxCeXRlc0RlY29tcHJlc3NlZCA9IDA7CisqICBpbnQgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnNXcml0dGVuICAgICAgPSAwOworKgorKiAgZG8geworKiAgICAvLyBkbyB0aGUgZGVjb21wcmVzc2lvbgorKiAgICBjaGFyc1dyaXR0ZW4gPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGJ5dGVzLCB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkLCAKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4sIGJ5dGVzUmVhZCwKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLCAwLCBCVUZTSVpFKTsKKyoKKyogICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIGN1cnJlbnQgc2V0IG9mIGNoYXJzCisqICAgIG91dC53cml0ZShjaGFyQnVmZmVyLCAwLCBjaGFyc1dyaXR0ZW4pOworKgorKiAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyBkZWNvbXByZXNzZWQKKyogICAgdG90YWxCeXRlc0RlY29tcHJlc3NlZCArPSBieXRlc1JlYWRbMF07CisqCisqICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGNoYXJzIHdyaXR0ZW4KKyogICAgdG90YWxDaGFyc1dyaXR0ZW4gKz0gY2hhcnNXcml0dGVuOworKgorKiAgfSB3aGlsZSh0b3RhbEJ5dGVzRGVjb21wcmVzc2VkIDwgbGVuKTsKKyoKKyogIG15RGVjb21wcmVzc29yLnJlc2V0KCk7IC8vIHJldXNlIGRlY29tcHJlc3NvcgorKiA8L1BSRT4KKyoKKyogPFA+RGVjb21wcmVzc2lvbiBpcyBwZXJmb3JtZWQgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZCBzZXQgZm9ydGggaW4gCisqIDxBIEhSRUY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyNiI+VW5pY29kZSBUZWNobmljYWwgCisqIFJlcG9ydCAjNjwvQT48L1A+CisqCisqIEBzZWUgVW5pY29kZUNvbXByZXNzb3IKKyoKKyogQGF1dGhvciBTdGVwaGVuIEYuIEJvb3RoCisqIEBzdGFibGUgSUNVIDIuNAorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVbmljb2RlRGVjb21wcmVzc29yIGltcGxlbWVudHMgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbnN0YW5jZSB2YXJpYWJsZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqIEFsaWFzIHRvIGN1cnJlbnQgZHluYW1pYyB3aW5kb3cgKi8KKyAgICBwcml2YXRlIGludCAgICAgICBmQ3VycmVudFdpbmRvdyAgID0gMDsKKworICAgIC8qKiBEeW5hbWljIGNvbXByZXNzaW9uIHdpbmRvdyBvZmZzZXRzICovCisgICAgcHJpdmF0ZSBpbnQgW10gICAgZk9mZnNldHMgICAgICAgICA9IG5ldyBpbnQgWyBOVU1XSU5ET1dTIF07CisKKyAgICAvKiogQ3VycmVudCBjb21wcmVzc2lvbiBtb2RlICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZk1vZGUgICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOworCisgICAgLyoqIFNpemUgb2Ygb3VyIGludGVybmFsIGJ1ZmZlciAqLworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBCVUZTSVpFICAgPSAzOworCisgICAgLyoqIEludGVybmFsIGJ1ZmZlciBmb3Igc2F2aW5nIHN0YXRlICovCisgICAgcHJpdmF0ZSBieXRlIFtdICAgZkJ1ZmZlciAgICAgICAgICA9IG5ldyBieXRlIFtCVUZTSVpFXTsKKworICAgIC8qKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBpbiBvdXIgaW50ZXJuYWwgYnVmZmVyICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZkJ1ZmZlckxlbmd0aCAgICA9IDA7CisgICAgCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVbmljb2RlRGVjb21wcmVzc29yLgorICAgICAqIFNldHMgYWxsIHdpbmRvd3MgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCisgICAgICogQHNlZSAjcmVzZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZURlY29tcHJlc3NvcigpCisgICAgeworICAgIHJlc2V0KCk7ICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIHRvIGRlZmF1bHRzCisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBieXRlIGFycmF5IHRvIGRlY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIFN0cmluZyBjb250YWluaW5nIHRoZSBkZWNvbXByZXNzZWQgY2hhcmFjdGVycy4KKyAgICAgKiBAc2VlICNkZWNvbXByZXNzKGJ5dGUgW10sIGludCwgaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcHJlc3MoYnl0ZSBbXSBidWZmZXIpCisgICAgeworICAgIGNoYXIgW10gYnVmID0gZGVjb21wcmVzcyhidWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1Zik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFVuaWNvZGUgY2hhcmFjdGVyIGFycmF5LgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSBieXRlIHJ1biB0byBkZWNvbXByZXNzLgorICAgICAqIEBwYXJhbSBsaW1pdCBUaGUgbGltaXQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIGNoYXJhY3RlciBhcnJheSBjb250YWluaW5nIHRoZSBkZWNvbXByZXNzZWQgYnl0ZXMuCisgICAgICogQHNlZSAjZGVjb21wcmVzcyhieXRlIFtdKQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBbXSBkZWNvbXByZXNzKGJ5dGUgW10gYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0KQorICAgIHsKKyAgICBVbmljb2RlRGVjb21wcmVzc29yIGNvbXAgPSBuZXcgVW5pY29kZURlY29tcHJlc3NvcigpOworCisgICAgLy8gdXNlIGEgYnVmZmVyIHdlIGtub3cgd2lsbCBuZXZlciBvdmVyZmxvdworICAgIC8vIGluIHRoZSB3b3JzdCBjYXNlLCBlYWNoIGJ5dGUgd2lsbCBkZWNvbXByZXNzCisgICAgLy8gdG8gYSBzdXJyb2dhdGUgcGFpciAoYnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgMiBjaGFycykKKyAgICBpbnQgbGVuID0gTWF0aC5tYXgoMiwgMiAqIChsaW1pdCAtIHN0YXJ0KSk7CisgICAgY2hhciBbXSB0ZW1wID0gbmV3IGNoYXIgW2xlbl07CisKKyAgICBpbnQgY2hhckNvdW50ID0gY29tcC5kZWNvbXByZXNzKGJ1ZmZlciwgc3RhcnQsIGxpbWl0LCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgdGVtcCwgMCwgbGVuKTsKKworICAgIGNoYXIgW10gcmVzdWx0ID0gbmV3IGNoYXIgW2NoYXJDb3VudF07CisgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCByZXN1bHQsIDAsIGNoYXJDb3VudCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFVuaWNvZGUgY2hhcmFjdGVyIGFycmF5LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGVpdGhlciBjb21wbGV0ZWx5IGZpbGwgdGhlIG91dHB1dCBidWZmZXIsIAorICAgICAqIG9yIGNvbnN1bWUgdGhlIGVudGlyZSBpbnB1dC4gIAorICAgICAqCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXIgVGhlIGJ5dGUgYnVmZmVyIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJTdGFydCBUaGUgc3RhcnQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJMaW1pdCBUaGUgbGltaXQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVzUmVhZCBBIG9uZS1lbGVtZW50IGFycmF5LiAgSWYgbm90IG51bGwsIG9uIHJldHVybgorICAgICAqIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBmcm9tIGJ5dGVCdWZmZXIuCisgICAgICogQHBhcmFtIGNoYXJCdWZmZXIgQSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgZGVjb21wcmVzc2VkIGRhdGEuIAorICAgICAqIFRoaXMgYnVmZmVyIG11c3QgYmUgYXQgbWluaW11bSB0d28gY2hhcmFjdGVycyBpbiBzaXplLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyU3RhcnQgVGhlIHN0YXJ0aW5nIG9mZnNldCB0byB3aGljaCB0byB3cml0ZSAKKyAgICAgKiBkZWNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlckxpbWl0IFRoZSBsaW1pdGluZyBvZmZzZXQgZm9yIHdyaXRpbmcgCisgICAgICogZGVjb21wcmVzc2VkIGRhdGEuCisgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFjdGVycyB3cml0dGVuIHRvIGNoYXJCdWZmZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGludCBkZWNvbXByZXNzKGJ5dGUgW10gICAgYnl0ZUJ1ZmZlciwKKyAgICAgICAgICAgICAgaW50ICAgICAgICBieXRlQnVmZmVyU3RhcnQsCisgICAgICAgICAgICAgIGludCAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0LAorICAgICAgICAgICAgICBpbnQgW10gICAgIGJ5dGVzUmVhZCwKKyAgICAgICAgICAgICAgY2hhciBbXSAgICBjaGFyQnVmZmVyLAorICAgICAgICAgICAgICBpbnQgICAgICAgIGNoYXJCdWZmZXJTdGFydCwKKyAgICAgICAgICAgICAgaW50ICAgICAgICBjaGFyQnVmZmVyTGltaXQpCisgICAgeworICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBzb3VyY2UgYnl0ZSBidWZmZXIKKyAgICBpbnQgYnl0ZVBvcyAgICAgID0gYnl0ZUJ1ZmZlclN0YXJ0OworICAgIAorICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSB0YXJnZXQgY2hhciBidWZmZXIKKyAgICBpbnQgdWNQb3MgICAgICAgID0gY2hhckJ1ZmZlclN0YXJ0OworICAgICAgICAKKyAgICAgICAgLy8gdGhlIGN1cnJlbnQgYnl0ZSBmcm9tIHRoZSBzb3VyY2UgYnVmZmVyCisgICAgaW50IGFCeXRlICAgICAgICA9IDB4MDA7CisKKworICAgIC8vIGNoYXJCdWZmZXIgbXVzdCBiZSBhdCBsZWFzdCAyIGNoYXJzIGluIHNpemUKKyAgICBpZihjaGFyQnVmZmVyLmxlbmd0aCA8IDIgfHwgKGNoYXJCdWZmZXJMaW1pdCAtIGNoYXJCdWZmZXJTdGFydCkgPCAyKQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjaGFyQnVmZmVyLmxlbmd0aCA8IDIiKTsKKyAgICAKKyAgICAvLyBpZiBvdXIgaW50ZXJuYWwgYnVmZmVyIGlzbid0IGVtcHR5LCBmbHVzaCBpdHMgY29udGVudHMKKyAgICAvLyB0byB0aGUgb3V0cHV0IGJ1ZmZlciBiZWZvcmUgZG9pbmcgYW55IG1vcmUgZGVjb21wcmVzc2lvbgorICAgIGlmKGZCdWZmZXJMZW5ndGggPiAwKSB7CisKKyAgICAgICAgaW50IG5ld0J5dGVzID0gMDsKKworICAgICAgICAvLyBmaWxsIHRoZSBidWZmZXIgY29tcGxldGVseSwgdG8gZ3VhcmFudGVlIG9uZSBmdWxsIGNoYXJhY3RlcgorICAgICAgICBpZihmQnVmZmVyTGVuZ3RoICE9IEJVRlNJWkUpIHsKKyAgICAgICAgbmV3Qnl0ZXMgPSBmQnVmZmVyLmxlbmd0aCAtIGZCdWZmZXJMZW5ndGg7CisKKyAgICAgICAgLy8gdmVyaWZ5IHRoZXJlIGFyZSBuZXdCeXRlcyBieXRlcyBpbiBieXRlQnVmZmVyCisgICAgICAgIGlmKGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVCdWZmZXJTdGFydCA8IG5ld0J5dGVzKQorICAgICAgICAgICAgbmV3Qnl0ZXMgPSBieXRlQnVmZmVyTGltaXQgLSBieXRlQnVmZmVyU3RhcnQ7CisKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlQnVmZmVyU3RhcnQsIAorICAgICAgICAgICAgICAgICBmQnVmZmVyLCBmQnVmZmVyTGVuZ3RoLCBuZXdCeXRlcyk7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXNldCBidWZmZXIgbGVuZ3RoIHRvIDAgYmVmb3JlIHJlY3Vyc2l2ZSBjYWxsCisgICAgICAgIGZCdWZmZXJMZW5ndGggPSAwOworCisgICAgICAgIC8vIGNhbGwgc2VsZiByZWN1cnNpdmVseSB0byBkZWNvbXByZXNzIHRoZSBidWZmZXIKKyAgICAgICAgaW50IGNvdW50ID0gZGVjb21wcmVzcyhmQnVmZmVyLCAwLCBmQnVmZmVyLmxlbmd0aCwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLCBjaGFyQnVmZmVyU3RhcnQsIAorICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXJMaW1pdCk7CisKKyAgICAgICAgLy8gdXBkYXRlIHRoZSBwb3NpdGlvbnMgaW50byB0aGUgYXJyYXlzCisgICAgICAgIHVjUG9zICs9IGNvdW50OworICAgICAgICBieXRlUG9zICs9IG5ld0J5dGVzOworICAgIH0KKworICAgICAgICAvLyB0aGUgbWFpbiBkZWNvbXByZXNzaW9uIGxvb3AKKyAgICBtYWluTG9vcDoKKyAgICB3aGlsZShieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0KSB7CisgICAgICAgIHN3aXRjaChmTW9kZSkgeyAgCisgICAgICAgIGNhc2UgU0lOR0xFQllURU1PREU6CisgICAgICAgIC8vIHNpbmdsZS1ieXRlIG1vZGUgZGVjb21wcmVzc2lvbiBsb29wCisgICAgICAgIHNpbmdsZUJ5dGVNb2RlTG9vcDoKKyAgICAgICAgd2hpbGUoYnl0ZVBvcyA8IGJ5dGVCdWZmZXJMaW1pdCAmJiB1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCkgeworICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisgICAgICAgIHN3aXRjaChhQnl0ZSkgeworICAgICAgICAgICAgLy8gQWxsIGJ5dGVzIGZyb20gMHg4MCB0aHJvdWdoIDB4RkYgYXJlIHJlbWFwcGVkCisgICAgICAgICAgICAvLyB0byBjaGFycyBvciBzdXJyb2dhdGUgcGFpcnMgYWNjb3JkaW5nIHRvIHRoZQorICAgICAgICAgICAgLy8gY3VycmVudGx5IGFjdGl2ZSB3aW5kb3cKKyAgICAgICAgY2FzZSAweDgwOiBjYXNlIDB4ODE6IGNhc2UgMHg4MjogY2FzZSAweDgzOiBjYXNlIDB4ODQ6IAorICAgICAgICBjYXNlIDB4ODU6IGNhc2UgMHg4NjogY2FzZSAweDg3OiBjYXNlIDB4ODg6IGNhc2UgMHg4OToKKyAgICAgICAgY2FzZSAweDhBOiBjYXNlIDB4OEI6IGNhc2UgMHg4QzogY2FzZSAweDhEOiBjYXNlIDB4OEU6CisgICAgICAgIGNhc2UgMHg4RjogY2FzZSAweDkwOiBjYXNlIDB4OTE6IGNhc2UgMHg5MjogY2FzZSAweDkzOgorICAgICAgICBjYXNlIDB4OTQ6IGNhc2UgMHg5NTogY2FzZSAweDk2OiBjYXNlIDB4OTc6IGNhc2UgMHg5ODoKKyAgICAgICAgY2FzZSAweDk5OiBjYXNlIDB4OUE6IGNhc2UgMHg5QjogY2FzZSAweDlDOiBjYXNlIDB4OUQ6CisgICAgICAgIGNhc2UgMHg5RTogY2FzZSAweDlGOiBjYXNlIDB4QTA6IGNhc2UgMHhBMTogY2FzZSAweEEyOgorICAgICAgICBjYXNlIDB4QTM6IGNhc2UgMHhBNDogY2FzZSAweEE1OiBjYXNlIDB4QTY6IGNhc2UgMHhBNzoKKyAgICAgICAgY2FzZSAweEE4OiBjYXNlIDB4QTk6IGNhc2UgMHhBQTogY2FzZSAweEFCOiBjYXNlIDB4QUM6CisgICAgICAgIGNhc2UgMHhBRDogY2FzZSAweEFFOiBjYXNlIDB4QUY6IGNhc2UgMHhCMDogY2FzZSAweEIxOgorICAgICAgICBjYXNlIDB4QjI6IGNhc2UgMHhCMzogY2FzZSAweEI0OiBjYXNlIDB4QjU6IGNhc2UgMHhCNjoKKyAgICAgICAgY2FzZSAweEI3OiBjYXNlIDB4Qjg6IGNhc2UgMHhCOTogY2FzZSAweEJBOiBjYXNlIDB4QkI6CisgICAgICAgIGNhc2UgMHhCQzogY2FzZSAweEJEOiBjYXNlIDB4QkU6IGNhc2UgMHhCRjogY2FzZSAweEMwOgorICAgICAgICBjYXNlIDB4QzE6IGNhc2UgMHhDMjogY2FzZSAweEMzOiBjYXNlIDB4QzQ6IGNhc2UgMHhDNToKKyAgICAgICAgY2FzZSAweEM2OiBjYXNlIDB4Qzc6IGNhc2UgMHhDODogY2FzZSAweEM5OiBjYXNlIDB4Q0E6CisgICAgICAgIGNhc2UgMHhDQjogY2FzZSAweENDOiBjYXNlIDB4Q0Q6IGNhc2UgMHhDRTogY2FzZSAweENGOgorICAgICAgICBjYXNlIDB4RDA6IGNhc2UgMHhEMTogY2FzZSAweEQyOiBjYXNlIDB4RDM6IGNhc2UgMHhENDoKKyAgICAgICAgY2FzZSAweEQ1OiBjYXNlIDB4RDY6IGNhc2UgMHhENzogY2FzZSAweEQ4OiBjYXNlIDB4RDk6CisgICAgICAgIGNhc2UgMHhEQTogY2FzZSAweERCOiBjYXNlIDB4REM6IGNhc2UgMHhERDogY2FzZSAweERFOgorICAgICAgICBjYXNlIDB4REY6IGNhc2UgMHhFMDogY2FzZSAweEUxOiBjYXNlIDB4RTI6IGNhc2UgMHhFMzoKKyAgICAgICAgY2FzZSAweEU0OiBjYXNlIDB4RTU6IGNhc2UgMHhFNjogY2FzZSAweEU3OiBjYXNlIDB4RTg6CisgICAgICAgIGNhc2UgMHhFOTogY2FzZSAweEVBOiBjYXNlIDB4RUI6IGNhc2UgMHhFQzogY2FzZSAweEVEOgorICAgICAgICBjYXNlIDB4RUU6IGNhc2UgMHhFRjogY2FzZSAweEYwOiBjYXNlIDB4RjE6IGNhc2UgMHhGMjoKKyAgICAgICAgY2FzZSAweEYzOiBjYXNlIDB4RjQ6IGNhc2UgMHhGNTogY2FzZSAweEY2OiBjYXNlIDB4Rjc6CisgICAgICAgIGNhc2UgMHhGODogY2FzZSAweEY5OiBjYXNlIDB4RkE6IGNhc2UgMHhGQjogY2FzZSAweEZDOgorICAgICAgICBjYXNlIDB4RkQ6IGNhc2UgMHhGRTogY2FzZSAweEZGOiAKKyAgICAgICAgICAgIC8vIEZvciBvZmZzZXRzIDw9IDB4RkZGRiwgY29udmVydCB0byBhIHNpbmdsZSBjaGFyCisgICAgICAgICAgICAvLyBieSBhZGRpbmcgdGhlIHdpbmRvdydzIG9mZnNldCBhbmQgc3VidHJhY3RpbmcKKyAgICAgICAgICAgIC8vIHRoZSBnZW5lcmljIGNvbXByZXNzaW9uIG9mZnNldAorICAgICAgICAgICAgaWYoZk9mZnNldHNbIGZDdXJyZW50V2luZG93IF0gPD0gMHhGRkZGKSB7CisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIAorICAgICAgICAgICAgICAgIChhQnl0ZSArIGZPZmZzZXRzWyBmQ3VycmVudFdpbmRvdyBdIAorICAgICAgICAgICAgICAgICAtIENPTVBSRVNTSU9OT0ZGU0VUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEZvciBvZmZzZXRzID4gMHgxMDAwMCwgY29udmVydCB0byBhIHN1cnJvZ2F0ZSBwYWlyIGJ5IAorICAgICAgICAgICAgLy8gbm9ybUJhc2UgPSB3aW5kb3cncyBvZmZzZXQgLSAweDEwMDAwCisgICAgICAgICAgICAvLyBoaWdoIHN1cnIuID0gMHhEODAwICsgKG5vcm1CYXNlID4+IDEwKQorICAgICAgICAgICAgLy8gbG93ICBzdXJyLiA9IDB4REMwMCArIChub3JtQmFzZSAmIDB4M0ZGKSArIChieXRlICYgMHg3RikKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlCisgICAgICAgICAgICAvLyBib3RoIGNoYXJhY3RlcnMgCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKHVjUG9zICsgMSkgPj0gY2hhckJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbm9ybWFsaXplZEJhc2UgPSBmT2Zmc2V0c1sgZkN1cnJlbnRXaW5kb3cgXSAKKyAgICAgICAgICAgICAgICAtIDB4MTAwMDA7CisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIAorICAgICAgICAgICAgICAgICgweEQ4MDAgKyAobm9ybWFsaXplZEJhc2UgPj4gMTApKTsKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAgICAgKDB4REMwMCArIChub3JtYWxpemVkQmFzZSAmIDB4M0ZGKSsoYUJ5dGUgJiAweDdGKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gYnl0ZXMgZnJvbSAweDIwIHRocm91Z2ggMHg3RiBhcmUgdHJlYXRlZCBhcyBBU0NJSSBhbmQKKyAgICAgICAgICAgIC8vIGFyZSByZW1hcHBlZCB0byBjaGFycyBieSBwYWRkaW5nIHRoZSBoaWdoIGJ5dGUKKyAgICAgICAgICAgIC8vICh0aGlzIGlzIHRoZSBzYW1lIGFzIHF1b3RpbmcgZnJvbSBzdGF0aWMgd2luZG93IDApCisgICAgICAgICAgICAvLyBOVUwgKDB4MDApLCBIVCAoMHgwOSksIENSICgweDBBKSwgTEYgKDB4MEQpIAorICAgICAgICAgICAgLy8gYXJlIHRyZWF0ZWQgYXMgQVNDSUkgYXMgd2VsbAorICAgICAgICBjYXNlIDB4MDA6IGNhc2UgMHgwOTogY2FzZSAweDBBOiBjYXNlIDB4MEQ6CisgICAgICAgIGNhc2UgMHgyMDogY2FzZSAweDIxOiBjYXNlIDB4MjI6IGNhc2UgMHgyMzogY2FzZSAweDI0OgorICAgICAgICBjYXNlIDB4MjU6IGNhc2UgMHgyNjogY2FzZSAweDI3OiBjYXNlIDB4Mjg6IGNhc2UgMHgyOToKKyAgICAgICAgY2FzZSAweDJBOiBjYXNlIDB4MkI6IGNhc2UgMHgyQzogY2FzZSAweDJEOiBjYXNlIDB4MkU6CisgICAgICAgIGNhc2UgMHgyRjogY2FzZSAweDMwOiBjYXNlIDB4MzE6IGNhc2UgMHgzMjogY2FzZSAweDMzOgorICAgICAgICBjYXNlIDB4MzQ6IGNhc2UgMHgzNTogY2FzZSAweDM2OiBjYXNlIDB4Mzc6IGNhc2UgMHgzODoKKyAgICAgICAgY2FzZSAweDM5OiBjYXNlIDB4M0E6IGNhc2UgMHgzQjogY2FzZSAweDNDOiBjYXNlIDB4M0Q6CisgICAgICAgIGNhc2UgMHgzRTogY2FzZSAweDNGOiBjYXNlIDB4NDA6IGNhc2UgMHg0MTogY2FzZSAweDQyOgorICAgICAgICBjYXNlIDB4NDM6IGNhc2UgMHg0NDogY2FzZSAweDQ1OiBjYXNlIDB4NDY6IGNhc2UgMHg0NzoKKyAgICAgICAgY2FzZSAweDQ4OiBjYXNlIDB4NDk6IGNhc2UgMHg0QTogY2FzZSAweDRCOiBjYXNlIDB4NEM6CisgICAgICAgIGNhc2UgMHg0RDogY2FzZSAweDRFOiBjYXNlIDB4NEY6IGNhc2UgMHg1MDogY2FzZSAweDUxOgorICAgICAgICBjYXNlIDB4NTI6IGNhc2UgMHg1MzogY2FzZSAweDU0OiBjYXNlIDB4NTU6IGNhc2UgMHg1NjoKKyAgICAgICAgY2FzZSAweDU3OiBjYXNlIDB4NTg6IGNhc2UgMHg1OTogY2FzZSAweDVBOiBjYXNlIDB4NUI6CisgICAgICAgIGNhc2UgMHg1QzogY2FzZSAweDVEOiBjYXNlIDB4NUU6IGNhc2UgMHg1RjogY2FzZSAweDYwOgorICAgICAgICBjYXNlIDB4NjE6IGNhc2UgMHg2MjogY2FzZSAweDYzOiBjYXNlIDB4NjQ6IGNhc2UgMHg2NToKKyAgICAgICAgY2FzZSAweDY2OiBjYXNlIDB4Njc6IGNhc2UgMHg2ODogY2FzZSAweDY5OiBjYXNlIDB4NkE6CisgICAgICAgIGNhc2UgMHg2QjogY2FzZSAweDZDOiBjYXNlIDB4NkQ6IGNhc2UgMHg2RTogY2FzZSAweDZGOgorICAgICAgICBjYXNlIDB4NzA6IGNhc2UgMHg3MTogY2FzZSAweDcyOiBjYXNlIDB4NzM6IGNhc2UgMHg3NDoKKyAgICAgICAgY2FzZSAweDc1OiBjYXNlIDB4NzY6IGNhc2UgMHg3NzogY2FzZSAweDc4OiBjYXNlIDB4Nzk6CisgICAgICAgIGNhc2UgMHg3QTogY2FzZSAweDdCOiBjYXNlIDB4N0M6IGNhc2UgMHg3RDogY2FzZSAweDdFOgorICAgICAgICBjYXNlIDB4N0Y6IAorICAgICAgICAgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSBhQnl0ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBxdW90ZSB1bmljb2RlCisgICAgICAgIGNhc2UgU1FVT1RFVToKKyAgICAgICAgICAgIC8vIHZlcmlmeSB3ZSBoYXZlIHR3byBieXRlcyBmb2xsb3dpbmcgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0ICkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgYUJ5dGUgPSBieXRlQnVmZmVyW2J5dGVQb3MrK107CisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpCisgICAgICAgICAgICAoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gc3dpdGNoIHRvIFVuaWNvZGUgbW9kZQorICAgICAgICBjYXNlIFNDSEFOR0VVOgorICAgICAgICAgICAgZk1vZGUgPSBVTklDT0RFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHNpbmdsZUJ5dGVNb2RlTG9vcDsKKyAgICAgICAgICAgIC8vYnJlYWs7CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgcXVvdGUgdGFncworICAgICAgICBjYXNlIFNRVU9URTA6IGNhc2UgU1FVT1RFMTogY2FzZSBTUVVPVEUyOiBjYXNlIFNRVU9URTM6CisgICAgICAgIGNhc2UgU1FVT1RFNDogY2FzZSBTUVVPVEU1OiBjYXNlIFNRVU9URTY6IGNhc2UgU1FVT1RFNzoKKyAgICAgICAgICAgIC8vIHZlcmlmeSB0aGVyZSBpcyBhIGJ5dGUgZm9sbG93aW5nIHRoZSB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgdGhlIGJ5dGUgaXMgaW4gdGhlIHJhbmdlIDB4MDAgLSAweDdGLCB1c2UKKyAgICAgICAgICAgIC8vIHN0YXRpYyB3aW5kb3cgbiBvdGhlcndpc2UsIHVzZSBkeW5hbWljIHdpbmRvdyBuCisgICAgICAgICAgICBpbnQgZEJ5dGUgPSBieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGOworICAgICAgICAgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSAKKyAgICAgICAgICAgIChkQnl0ZSsgKGRCeXRlID49IDB4MDAgJiYgZEJ5dGUgPCAweDgwIAorICAgICAgICAgICAgICAgICA/IHNPZmZzZXRzW2FCeXRlIC0gU1FVT1RFMF0gCisgICAgICAgICAgICAgICAgIDogKGZPZmZzZXRzW2FCeXRlIC0gU1FVT1RFMF0gCisgICAgICAgICAgICAgICAgICAgIC0gQ09NUFJFU1NJT05PRkZTRVQpKSk7IAorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgY2hhbmdlIHRhZ3MKKyAgICAgICAgY2FzZSBTQ0hBTkdFMDogY2FzZSBTQ0hBTkdFMTogY2FzZSBTQ0hBTkdFMjogY2FzZSBTQ0hBTkdFMzoKKyAgICAgICAgY2FzZSBTQ0hBTkdFNDogY2FzZSBTQ0hBTkdFNTogY2FzZSBTQ0hBTkdFNjogY2FzZSBTQ0hBTkdFNzoKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gYUJ5dGUgLSBTQ0hBTkdFMDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisgICAgICAgIGNhc2UgU0RFRklORTA6IGNhc2UgU0RFRklORTE6IGNhc2UgU0RFRklORTI6IGNhc2UgU0RFRklORTM6CisgICAgICAgIGNhc2UgU0RFRklORTQ6IGNhc2UgU0RFRklORTU6IGNhc2UgU0RFRklORTY6IGNhc2UgU0RFRklORTc6CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhlcmUgaXMgYSBieXRlIGZvbGxvd2luZyB0aGUgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoYnl0ZVBvcyA+PSBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgIC0tYnl0ZVBvczsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFNERUZJTkUwOworICAgICAgICAgICAgZk9mZnNldHNbZkN1cnJlbnRXaW5kb3ddID0gCisgICAgICAgICAgICBzT2Zmc2V0VGFibGVbYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRl07CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gaGFuZGxlIGRlZmluZSBleHRlbmRlZCB0YWcKKyAgICAgICAgY2FzZSBTREVGSU5FWDoKKyAgICAgICAgICAgIC8vIHZlcmlmeSB3ZSBoYXZlIHR3byBieXRlcyBmb2xsb3dpbmcgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IChhQnl0ZSAmIDB4RTApID4+IDU7CisgICAgICAgICAgICBmT2Zmc2V0c1tmQ3VycmVudFdpbmRvd10gPSAweDEwMDAwICsgCisgICAgICAgICAgICAoMHg4MCAqICgoKGFCeXRlICYgMHgxRikgPDwgOCkgCisgICAgICAgICAgICAgICAgIHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHJlc2VydmVkLCBzaG91bGRuJ3QgaGFwcGVuCisgICAgICAgIGNhc2UgU1JFU0VSVkVEOgorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgfSAvLyBlbmQgc3dpdGNoCisgICAgICAgIH0gLy8gZW5kIHdoaWxlCisgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgVU5JQ09ERU1PREU6CisgICAgICAgIC8vIHVuaWNvZGUgbW9kZSBkZWNvbXByZXNzaW9uIGxvb3AKKyAgICAgICAgdW5pY29kZU1vZGVMb29wOgorICAgICAgICB3aGlsZShieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0KSB7CisgICAgICAgIGFCeXRlID0gYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRjsKKyAgICAgICAgc3dpdGNoKGFCeXRlKSB7CisgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisgICAgICAgIGNhc2UgVURFRklORTA6IGNhc2UgVURFRklORTE6IGNhc2UgVURFRklORTI6IGNhc2UgVURFRklORTM6CisgICAgICAgIGNhc2UgVURFRklORTQ6IGNhc2UgVURFRklORTU6IGNhc2UgVURFRklORTY6IGNhc2UgVURFRklORTc6CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhlcmUgaXMgYSBieXRlIGZvbGxvd2luZyB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCApIHsKKyAgICAgICAgICAgIC0tYnl0ZVBvczsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gYUJ5dGUgLSBVREVGSU5FMDsKKyAgICAgICAgICAgIGZPZmZzZXRzW2ZDdXJyZW50V2luZG93XSA9IAorICAgICAgICAgICAgc09mZnNldFRhYmxlW2J5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkZdOworICAgICAgICAgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKyAgICAgICAgICAgIC8vYnJlYWs7CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBkZWZpbmUgZXh0ZW5kZWQgdGFnCisgICAgICAgIGNhc2UgVURFRklORVg6CisgICAgICAgICAgICAvLyB2ZXJpZnkgd2UgaGF2ZSB0d28gYnl0ZXMgZm9sbG93aW5nIHRhZworICAgICAgICAgICAgLy8gaWYgbm90LCBzYXZlIHN0YXRlIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0ICkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IChhQnl0ZSAmIDB4RTApID4+IDU7CisgICAgICAgICAgICBmT2Zmc2V0c1tmQ3VycmVudFdpbmRvd10gPSAweDEwMDAwICsgCisgICAgICAgICAgICAoMHg4MCAqICgoKGFCeXRlICYgMHgxRikgPDwgOCkgCisgICAgICAgICAgICAgICAgIHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKSk7CisgICAgICAgICAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworICAgICAgICAgICAgLy9icmVhazsKKworICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBjaGFuZ2UgdGFncworICAgICAgICBjYXNlIFVDSEFOR0UwOiBjYXNlIFVDSEFOR0UxOiBjYXNlIFVDSEFOR0UyOiBjYXNlIFVDSEFOR0UzOgorICAgICAgICBjYXNlIFVDSEFOR0U0OiBjYXNlIFVDSEFOR0U1OiBjYXNlIFVDSEFOR0U2OiBjYXNlIFVDSEFOR0U3OgorICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFVDSEFOR0UwOworICAgICAgICAgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKyAgICAgICAgICAgIC8vYnJlYWs7CisKKyAgICAgICAgICAgIC8vIHF1b3RlIHVuaWNvZGUKKyAgICAgICAgY2FzZSBVUVVPVEVVOgorICAgICAgICAgICAgLy8gdmVyaWZ5IHdlIGhhdmUgdHdvIGJ5dGVzIGZvbGxvd2luZyB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCAgLSAxKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXTsKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gdmVyaWZ5IHRoZXJlIGlzIGEgYnl0ZSBmb2xsb3dpbmcgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoYnl0ZVBvcyA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICB9IC8vIGVuZCBzd2l0Y2gKKyAgICAgICAgfSAvLyBlbmQgd2hpbGUKKyAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAgICB9IC8vIGVuZCBzd2l0Y2goIGZNb2RlICkKKyAgICB9IC8vIGVuZCB3aGlsZQorCisgICAgICAgIC8vIGZpbGwgaW4gb3V0cHV0IHBhcmFtZXRlcgorICAgIGlmKGJ5dGVzUmVhZCAhPSBudWxsKQorICAgICAgICBieXRlc1JlYWQgWzBdID0gKGJ5dGVQb3MgLSBieXRlQnVmZmVyU3RhcnQpOworCisgICAgICAgIC8vIHJldHVybiAjIG9mIGNoYXJzIHdyaXR0ZW4KKyAgICByZXR1cm4gKHVjUG9zIC0gY2hhckJ1ZmZlclN0YXJ0KTsKKyAgICB9CisKKyAgICAvKiogCisgICAgICogUmVzZXQgdGhlIGRlY29tcHJlc3NvciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgLy8gcmVzZXQgZHluYW1pYyB3aW5kb3dzCisgICAgICAgIGZPZmZzZXRzWzBdID0gMHgwMDgwOyAgICAvLyBMYXRpbi0xCisgICAgICAgIGZPZmZzZXRzWzFdID0gMHgwMEMwOyAgICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQgKyBMYXRpbiBFeHRlbmRlZC1BCisgICAgICAgIGZPZmZzZXRzWzJdID0gMHgwNDAwOyAgICAvLyBDeXJpbGxpYworICAgICAgICBmT2Zmc2V0c1szXSA9IDB4MDYwMDsgICAgLy8gQXJhYmljCisgICAgICAgIGZPZmZzZXRzWzRdID0gMHgwOTAwOyAgICAvLyBEZXZhbmFnYXJpCisgICAgICAgIGZPZmZzZXRzWzVdID0gMHgzMDQwOyAgICAvLyBIaXJhZ2FuYQorICAgICAgICBmT2Zmc2V0c1s2XSA9IDB4MzBBMDsgICAgLy8gS2F0YWthbmEKKyAgICAgICAgZk9mZnNldHNbN10gPSAweEZGMDA7ICAgIC8vIEZ1bGx3aWR0aCBBU0NJSQorCisKKyAgICAgICAgZkN1cnJlbnRXaW5kb3cgID0gMDsgICAgICAgICAgICAgICAgLy8gTWFrZSBjdXJyZW50IHdpbmRvdyBMYXRpbi0xCisgICAgICAgIGZNb2RlICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOyAgIC8vIEFsd2F5cyBzdGFydCBpbiBzaW5nbGUtYnl0ZSBtb2RlCisgICAgZkJ1ZmZlckxlbmd0aCAgID0gMDsgICAgICAgICAgICAgICAgLy8gRW1wdHkgYnVmZmVyCisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzUyYjVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPGNvZGU+VW5pY29kZUZpbHRlcjwvY29kZT4gZGVmaW5lcyBhIHByb3RvY29sIGZvciBzZWxlY3RpbmcgYQorICogc3Vic2V0IG9mIHRoZSBmdWxsIHJhbmdlIChVKzAwMDAgdG8gVStGRkZGKSBvZiBVbmljb2RlIGNoYXJhY3RlcnMuCisgKiBDdXJyZW50bHksIGZpbHRlcnMgYXJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBjbGFzc2VzIGxpa2Uge0BsaW5rCisgKiBUcmFuc2xpdGVyYXRvcn0gdG8gb25seSBwcm9jZXNzIHNlbGVjdGVkIGNoYXJhY3RlcnMgdGhyb3VnaCBhCisgKiB0cmFuc2Zvcm1hdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVW5pY29kZUZpbHRlciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgPHR0PnRydWU8L3R0PiBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBpbiB0aGUgc2VsZWN0ZWQKKyAgICAgKiBzdWJzZXQuICBJbiBvdGhlciB3b3JkcywgaWYgYSBjaGFyYWN0ZXIgaXMgPGI+dG8gYmUKKyAgICAgKiBmaWx0ZXJlZDwvYj4sIHRoZW4gPHR0PmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zCisgICAgICogPGI+PHR0PmZhbHNlPC90dD48L2I+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGNvbnRhaW5zKGludCBjKTsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXI6Om1hdGNoZXMoKSBmb3IgVW5pY29kZQorICAgICAqIGZpbHRlcnMuICBNYXRjaGVzIGEgc2luZ2xlIDE2LWJpdCBjb2RlIHVuaXQgYXQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaWYgKG9mZnNldFswXSA8IGxpbWl0ICYmCisgICAgICAgICAgICBjb250YWlucyhjID0gdGV4dC5jaGFyMzJBdChvZmZzZXRbMF0pKSkgeworICAgICAgICAgICAgb2Zmc2V0WzBdICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIHJldHVybiBVX01BVENIOworICAgICAgICB9CisgICAgICAgIGlmIChvZmZzZXRbMF0gPiBsaW1pdCAmJgorICAgICAgICAgICAgY29udGFpbnMoYyA9IHRleHQuY2hhcjMyQXQob2Zmc2V0WzBdKSkpIHsKKyAgICAgICAgICAgIC8vIEJhY2t1cCBvZmZzZXQgYnkgMSwgdW5sZXNzIHRoZSBwcmVjZWRpbmcgY2hhcmFjdGVyIGlzIGEKKyAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZSBwYWlyIC0tIHRoZW4gYmFja3VwIGJ5IDIgKGtlZXAgb2Zmc2V0IHBvaW50aW5nIGF0CisgICAgICAgICAgICAvLyB0aGUgbGVhZCBzdXJyb2dhdGUpLgorICAgICAgICAgICAgLS1vZmZzZXRbMF07CisgICAgICAgICAgICBpZiAob2Zmc2V0WzBdID49IDApIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRbMF0gLT0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQob2Zmc2V0WzBdKSkgLSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluY3JlbWVudGFsICYmIG9mZnNldFswXSA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIFVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVV9NSVNNQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAoVGhpcyBzaG91bGQgbm90IGJlIGhlcmU7IGl0IGlzIGRlY2xhcmVkIHRvIG1ha2UgQ2hlY2tUYWdzCisgICAgICogaGFwcHkuICBKYXZhIGluc2VydHMgYSBzeW50aGV0aWMgY29uc3RydWN0b3IgYW5kIENoZWNrVGFncworICAgICAqIGNhbid0IHRlbGwgdGhhdCBpdCdzIHN5bnRoZXRpYy4pCisgICAgICoKKyAgICAgKiBUT0RPIFJlbW92ZSB0aGlzIHdoZW4gdGhlIEpESyBwcm9wZXJ0eSBpbXBsZW1lbnRzIE1lbWJlckRvYy5pc1N5bnRoZXRpYworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBVbmljb2RlRmlsdGVyKCkge30KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVNYXRjaGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTWF0Y2hlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4MjM1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTWF0Y2hlci5qYXZhCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxjb2RlPlVuaWNvZGVNYXRjaGVyPC9jb2RlPiBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yIG9iamVjdHMgdGhhdCBjYW4KKyAqIG1hdGNoIGEgcmFuZ2Ugb2YgY2hhcmFjdGVycyBpbiBhIFJlcGxhY2VhYmxlIHN0cmluZy4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgaW50ZXJmYWNlIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IHJldHVybmVkIGJ5IDxjb2RlPm1hdGNoZXMoKTwvY29kZT4gaW5kaWNhdGluZyBhCisgICAgICogbWlzbWF0Y2ggYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhpcyBtYXRjaGVyLiAgVGhlIHRleHQgY29udGFpbnMKKyAgICAgKiBhIGNoYXJhY3RlciB3aGljaCBkb2VzIG5vdCBtYXRjaCwgb3IgdGhlIHRleHQgZG9lcyBub3QgY29udGFpbgorICAgICAqIGFsbCBkZXNpcmVkIGNoYXJhY3RlcnMgZm9yIGEgbm9uLWluY3JlbWVudGFsIG1hdGNoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVfTUlTTUFUQ0ggPSAwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmV0dXJuZWQgYnkgPGNvZGU+bWF0Y2hlcygpPC9jb2RlPiBpbmRpY2F0aW5nIGEKKyAgICAgKiBwYXJ0aWFsIG1hdGNoIGJldHdlZW4gdGhlIHRleHQgYW5kIHRoaXMgbWF0Y2hlci4gIFRoaXMgdmFsdWUgaXMKKyAgICAgKiBvbmx5IHJldHVybmVkIGZvciBpbmNyZW1lbnRhbCBtYXRjaCBvcGVyYXRpb25zLiAgQWxsIGNoYXJhY3RlcnMKKyAgICAgKiBvZiB0aGUgdGV4dCBtYXRjaCwgYnV0IG1vcmUgY2hhcmFjdGVycyBhcmUgcmVxdWlyZWQgZm9yIGEKKyAgICAgKiBjb21wbGV0ZSBtYXRjaC4gIEFsdGVybmF0aXZlbHksIGZvciB2YXJpYWJsZS1sZW5ndGggbWF0Y2hlcnMsCisgICAgICogYWxsIGNoYXJhY3RlcnMgb2YgdGhlIHRleHQgbWF0Y2gsIGFuZCBpZiBtb3JlIGNoYXJhY3RlcnMgd2VyZQorICAgICAqIHN1cHBsaWVkIGF0IGxpbWl0LCB0aGV5IG1pZ2h0IGFsc28gbWF0Y2guCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVV9QQVJUSUFMX01BVENIID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IHJldHVybmVkIGJ5IDxjb2RlPm1hdGNoZXMoKTwvY29kZT4gaW5kaWNhdGluZyBhCisgICAgICogY29tcGxldGUgbWF0Y2ggYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhpcyBtYXRjaGVyLiAgRm9yIGFuCisgICAgICogaW5jcmVtZW50YWwgdmFyaWFibGUtbGVuZ3RoIG1hdGNoLCB0aGlzIHZhbHVlIGlzIHJldHVybmVkIGlmCisgICAgICogdGhlIGdpdmVuIHRleHQgbWF0Y2hlcywgYW5kIGl0IGlzIGtub3duIHRoYXQgYWRkaXRpb25hbAorICAgICAqIGNoYXJhY3RlcnMgd291bGQgbm90IGFsdGVyIHRoZSBleHRlbnQgb2YgdGhlIG1hdGNoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVfTUFUQ0ggPSAyOworCisgICAgLyoqCisgICAgICogVGhlIGNoYXJhY3RlciBhdCBpbmRleCBpLCB3aGVyZSBpIDwgY29udGV4dFN0YXJ0IHx8IGkgPj0gY29udGV4dExpbWl0LAorICAgICAqIGlzIEVUSEVSLiAgVGhpcyBhbGxvd3MgZXhwbGljaXQgbWF0Y2hpbmcgYnkgcnVsZXMgYW5kIFVuaWNvZGVTZXRzCisgICAgICogb2YgdGV4dCBvdXRzaWRlIHRoZSBjb250ZXh0LiAgSW4gdHJhZGl0aW9uYWwgdGVybXMsIHRoaXMgYWxsb3dzIGFuY2hvcmluZworICAgICAqIGF0IHRoZSBzdGFydCBhbmQvb3IgZW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjaGFyIEVUSEVSID0gJ1x1RkZGRic7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBVTWF0Y2hEZWdyZWUgdmFsdWUgaW5kaWNhdGluZyB0aGUgZGVncmVlIG9mIG1hdGNoIGZvcgorICAgICAqIHRoZSBnaXZlbiB0ZXh0IGF0IHRoZSBnaXZlbiBvZmZzZXQuICBaZXJvLCBvbmUsIG9yIG1vcmUKKyAgICAgKiBjaGFyYWN0ZXJzIG1heSBiZSBtYXRjaGVkLgorICAgICAqCisgICAgICogTWF0Y2hpbmcgaW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uIGlzIGluZGljYXRlZCBieSBsaW1pdCA+CisgICAgICogb2Zmc2V0LiAgQ2hhcmFjdGVycyBmcm9tIG9mZnNldCBmb3J3YXJkcyB0byBsaW1pdC0xIHdpbGwgYmUKKyAgICAgKiBjb25zaWRlcmVkIGZvciBtYXRjaGluZy4KKyAgICAgKgorICAgICAqIE1hdGNoaW5nIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiBpcyBpbmRpY2F0ZWQgYnkgbGltaXQgPAorICAgICAqIG9mZnNldC4gIENoYXJhY3RlcnMgZnJvbSBvZmZzZXQgYmFja3dhcmRzIHRvIGxpbWl0KzEgd2lsbCBiZQorICAgICAqIGNvbnNpZGVyZWQgZm9yIG1hdGNoaW5nLgorICAgICAqCisgICAgICogSWYgbGltaXQgPT0gb2Zmc2V0IHRoZW4gdGhlIG9ubHkgbWF0Y2ggcG9zc2libGUgaXMgYSB6ZXJvCisgICAgICogY2hhcmFjdGVyIG1hdGNoICh3aGljaCBzdWJjbGFzc2VzIG1heSBpbXBsZW1lbnQgaWYgZGVzaXJlZCkuCisgICAgICoKKyAgICAgKiBJZiBVX01BVENIIGlzIHJldHVybmVkLCB0aGVuIGFzIGEgc2lkZSBlZmZlY3QsIGFkdmFuY2UgdGhlCisgICAgICogb2Zmc2V0IHBhcmFtZXRlciB0byB0aGUgbGltaXQgb2YgdGhlIG1hdGNoZWQgc3Vic3RyaW5nLiAgSW4gdGhlCisgICAgICogZm9yd2FyZCBkaXJlY3Rpb24sIHRoaXMgd2lsbCBiZSB0aGUgaW5kZXggb2YgdGhlIGxhc3QgbWF0Y2hlZAorICAgICAqIGNoYXJhY3RlciBwbHVzIG9uZS4gIEluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiwgdGhpcyB3aWxsIGJlIHRoZQorICAgICAqIGluZGV4IG9mIHRoZSBsYXN0IG1hdGNoZWQgY2hhcmFjdGVyIG1pbnVzIG9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG9uIGlucHV0LCB0aGUgaW5kZXggaW50byB0ZXh0IGF0IHdoaWNoIHRvIGJlZ2luCisgICAgICogbWF0Y2hpbmcuICBPbiBvdXRwdXQsIHRoZSBsaW1pdCBvZiB0aGUgbWF0Y2hlZCB0ZXh0LiAgVGhlCisgICAgICogbnVtYmVyIG9mIG1hdGNoZWQgY2hhcmFjdGVycyBpcyB0aGUgb3V0cHV0IHZhbHVlIG9mIG9mZnNldAorICAgICAqIG1pbnVzIHRoZSBpbnB1dCB2YWx1ZS4gIE9mZnNldCBzaG91bGQgYWx3YXlzIHBvaW50IHRvIHRoZQorICAgICAqIEhJR0ggU1VSUk9HQVRFIChsZWFkaW5nIGNvZGUgdW5pdCkgb2YgYSBwYWlyIG9mIHN1cnJvZ2F0ZXMsCisgICAgICogYm90aCBvbiBlbnRyeSBhbmQgdXBvbiByZXR1cm4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBpbmRleCBvZiB0ZXh0IHRvIGJlIG1hdGNoZWQuICBHcmVhdGVyCisgICAgICogdGhhbiBvZmZzZXQgZm9yIGEgZm9yd2FyZCBkaXJlY3Rpb24gbWF0Y2gsIGxlc3MgdGhhbiBvZmZzZXQgZm9yCisgICAgICogYSBiYWNrd2FyZCBkaXJlY3Rpb24gbWF0Y2guICBUaGUgbGFzdCBjaGFyYWN0ZXIgdG8gYmUKKyAgICAgKiBjb25zaWRlcmVkIGZvciBtYXRjaGluZyB3aWxsIGJlIHRleHQuY2hhckF0KGxpbWl0LTEpIGluIHRoZQorICAgICAqIGZvcndhcmQgZGlyZWN0aW9uIG9yIHRleHQuY2hhckF0KGxpbWl0KzEpIGluIHRoZSBiYWNrd2FyZAorICAgICAqIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgZnVydGhlciBjaGFyYWN0ZXJzIG1heQorICAgICAqIGJlIGluc2VydGVkIGF0IGxpbWl0IGFuZCBjaGVjayBmb3IgcGFydGlhbCBtYXRjaGluZy4gIE90aGVyd2lzZQorICAgICAqIGFzc3VtZSB0aGUgdGV4dCBhcyBnaXZlbiBpcyBjb21wbGV0ZS4KKyAgICAgKiBAcmV0dXJuIGEgbWF0Y2ggZGVncmVlIHZhbHVlIGluZGljYXRpbmcgYSBmdWxsIG1hdGNoLCBhIHBhcnRpYWwKKyAgICAgKiBtYXRjaCwgb3IgYSBtaXNtYXRjaC4gIElmIGluY3JlbWVudGFsIGlzIEZBTFNFIHRoZW4KKyAgICAgKiBVX1BBUlRJQUxfTUFUQ0ggc2hvdWxkIG5ldmVyIGJlIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbWF0Y2hlci4gIElmIHRoZSByZXN1bHQgb2YKKyAgICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXJzZXIsIGl0CisgICAgICogd2lsbCBwcm9kdWNlIGFub3RoZXIgbWF0Y2hlciB0aGF0IGlzIGVxdWFsIHRvIHRoaXMgb25lLgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiBUUlVFIHRoZW4gY29udmVydCB1bnByaW50YWJsZQorICAgICAqIGNoYXJhY3RlciB0byB0aGVpciBoZXggZXNjYXBlIHJlcHJlc2VudGF0aW9ucywgXFx1eHh4eCBvcgorICAgICAqIFxcVXh4eHh4eHh4LiAgVW5wcmludGFibGUgY2hhcmFjdGVycyBhcmUgdGhvc2Ugb3RoZXIgdGhhbgorICAgICAqIFUrMDAwQSwgVSswMDIwLi5VKzAwN0UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIFRSVUUgaWYgdGhpcyBtYXRjaGVyIHdpbGwgbWF0Y2ggYSBjaGFyYWN0ZXIgYywgd2hlcmUgYworICAgICAqICYgMHhGRiA9PSB2LCBhdCBvZmZzZXQsIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiAod2l0aCBsaW1pdCA+CisgICAgICogb2Zmc2V0KS4gIFRoaXMgaXMgdXNlZCBieSA8dHQ+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L3R0PiBmb3IKKyAgICAgKiBpbmRleGluZy4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6ICBUaGlzIEFQSSB1c2VzIGFuIGludCBldmVuIHRob3VnaCB0aGUgdmFsdWUgd2lsbCBiZQorICAgICAqIHJlc3RyaWN0ZWQgdG8gOCBiaXRzIGluIG9yZGVyIHRvIGF2b2lkIGNvbXBsaWNhdGlvbnMgd2l0aAorICAgICAqIHNpZ25lZG5lc3MgKGJ5dGVzIGNvbnZlcnQgdG8gaW50cyBpbiB0aGUgcmFuZ2UgLTEyOC4uMTI3KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdik7CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1hdGNoZWQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIHNvdXJjZSBjaGFyYWN0ZXJzCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25Ubyk7Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjBmZTQ5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IHBlcmZvcm1zIGNoYXJhY3RlciB0byBuYW1lIG1hcHBpbmcuCisgKiBJdCBnZW5lcmF0ZXMgdGhlIFBlcmwgc3ludGF4IFxOe25hbWV9LgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBVbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBfSUQgPSAiQW55LU5hbWUiOworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVOX0RFTElNID0gIlxcTnsiOworICAgIHN0YXRpYyBmaW5hbCBjaGFyIENMT1NFX0RFTElNID0gJ30nOworICAgIHN0YXRpYyBmaW5hbCBpbnQgT1BFTl9ERUxJTV9MRU4gPSAzOworCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IobnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvcihVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihfSUQsIGZpbHRlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCBjdXJzb3IgPSBvZmZzZXRzLnN0YXJ0OworICAgICAgICBpbnQgbGltaXQgPSBvZmZzZXRzLmxpbWl0OworICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc3RyLmFwcGVuZChPUEVOX0RFTElNKTsKKyAgICAgICAgaW50IGxlbjsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoY3Vyc29yIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjID0gdGV4dC5jaGFyMzJBdChjdXJzb3IpOworICAgICAgICAgICAgaWYgKChuYW1lPVVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKGMpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3RyLnNldExlbmd0aChPUEVOX0RFTElNX0xFTik7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChuYW1lKS5hcHBlbmQoQ0xPU0VfREVMSU0pOworCisgICAgICAgICAgICAgICAgaW50IGNsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGN1cnNvciwgY3Vyc29yK2NsZW4sIHN0ci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsZW4gPSBzdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgY3Vyc29yICs9IGxlbjsgLy8gYWR2YW5jZSBjdXJzb3IgYnkgMSBhbmQgYWRqdXN0IGZvciBuZXcgdGV4dAorICAgICAgICAgICAgICAgIGxpbWl0ICs9IGxlbi1jbGVuOyAvLyBjaGFuZ2UgaW4gbGVuZ3RoCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICsrY3Vyc29yOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBvZmZzZXRzLmxpbWl0OworICAgICAgICBvZmZzZXRzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVJlcGxhY2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlUmVwbGFjZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OWM0YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVJlcGxhY2VyLmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAxLzE0LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxjb2RlPlVuaWNvZGVSZXBsYWNlcjwvY29kZT4gZGVmaW5lcyBhIHByb3RvY29sIGZvciBvYmplY3RzIHRoYXQKKyAqIHJlcGxhY2UgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGluIGEgUmVwbGFjZWFibGUgc3RyaW5nIHdpdGggb3V0cHV0CisgKiB0ZXh0LiAgVGhlIHJlcGxhY2VtZW50IGlzIGRvbmUgdmlhIHRoZSBSZXBsYWNlYWJsZSBBUEkgc28gYXMgdG8KKyAqIHByZXNlcnZlIG91dC1vZi1iYW5kIGRhdGEuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2ludGVyZmFjZSBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogUmVwbGFjZSBjaGFyYWN0ZXJzIGluICd0ZXh0JyBmcm9tICdzdGFydCcgdG8gJ2xpbWl0JyB3aXRoIHRoZQorICAgICAqIG91dHB1dCB0ZXh0IG9mIHRoaXMgb2JqZWN0LiAgVXBkYXRlIHRoZSAnY3Vyc29yJyBwYXJhbWV0ZXIgdG8KKyAgICAgKiBnaXZlIHRoZSBjdXJzb3IgcG9zaXRpb24gYW5kIHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZQorICAgICAqIHJlcGxhY2VtZW50IHRleHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBiZSBtYXRjaGVkCisgICAgICogQHBhcmFtIHN0YXJ0IGluY2x1c2l2ZSBzdGFydCBpbmRleCBvZiB0ZXh0IHRvIGJlIHJlcGxhY2VkCisgICAgICogQHBhcmFtIGxpbWl0IGV4Y2x1c2l2ZSBlbmQgaW5kZXggb2YgdGV4dCB0byBiZSByZXBsYWNlZDsKKyAgICAgKiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBzdGFydAorICAgICAqIEBwYXJhbSBjdXJzb3Igb3V0cHV0IHBhcmFtZXRlciBmb3IgdGhlIGN1cnNvciBwb3NpdGlvbi4KKyAgICAgKiBOb3QgYWxsIHJlcGxhY2VyIG9iamVjdHMgd2lsbCB1cGRhdGUgdGhpcywgYnV0IGluIGEgY29tcGxldGUKKyAgICAgKiB0cmVlIG9mIHJlcGxhY2VyIG9iamVjdHMsIHJlcHJlc2VudGluZyB0aGUgZW50aXJlIG91dHB1dCBzaWRlCisgICAgICogb2YgYSB0cmFuc2xpdGVyYXRpb24gcnVsZSwgYXQgbGVhc3Qgb25lIG11c3QgdXBkYXRlIGl0LgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiAxNi1iaXQgY29kZSB1bml0cyBpbiB0aGUgdGV4dCByZXBsYWNpbmcKKyAgICAgKiB0aGUgY2hhcmFjdGVycyBhdCBvZmZzZXRzIHN0YXJ0Li4obGltaXQtMSkgaW4gdGV4dAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyByZXBsYWNlci4gIElmIHRoZQorICAgICAqIHJlc3VsdCBvZiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIHRoZSBhcHByb3ByaWF0ZQorICAgICAqIHBhcnNlciwgdHlwaWNhbGx5IFRyYW5zbGl0ZXJhdG9yUGFyc2VyLCBpdCB3aWxsIHByb2R1Y2UgYW5vdGhlcgorICAgICAqIHJlcGxhY2VyIHRoYXQgaXMgZXF1YWwgdG8gdGhpcyBvbmUuCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIFRSVUUgdGhlbiBjb252ZXJ0IHVucHJpbnRhYmxlCisgICAgICogY2hhcmFjdGVyIHRvIHRoZWlyIGhleCBlc2NhcGUgcmVwcmVzZW50YXRpb25zLCBcXHV4eHh4IG9yCisgICAgICogXFxVeHh4eHh4eHguICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGJ5CisgICAgICogVXRpbGl0eS5pc1VucHJpbnRhYmxlKCkuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyB0b1JlcGxhY2VyUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgb3V0cHV0IGJ5IHRoaXMgb2JqZWN0CisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSB0b1VuaW9uVG8gdGhlIHNldCBpbnRvIHdoaWNoIHRvIHVuaW9uIHRoZSBvdXRwdXQgY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZFJlcGxhY2VtZW50U2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pOworfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwMzMwNWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEKQEAgLTAsMCArMSwzNzYyIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ29sbGVjdGlvblV0aWxpdGllczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVCaURpUHJvcHM7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVByb3BlcnR5QWxpYXNlczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlNvcnRlZFNldFJlbGF0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuUnVsZUNoYXJhY3Rlckl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5GcmVlemFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKKworLyoqCisgKiBBIG11dGFibGUgc2V0IG9mIFVuaWNvZGUgY2hhcmFjdGVycyBhbmQgbXVsdGljaGFyYWN0ZXIgc3RyaW5ncy4gIE9iamVjdHMgb2YgdGhpcyBjbGFzcworICogcmVwcmVzZW50IDxlbT5jaGFyYWN0ZXIgY2xhc3NlczwvZW0+IHVzZWQgaW4gcmVndWxhciBleHByZXNzaW9ucy4KKyAqIEEgY2hhcmFjdGVyIHNwZWNpZmllcyBhIHN1YnNldCBvZiBVbmljb2RlIGNvZGUgcG9pbnRzLiAgTGVnYWwKKyAqIGNvZGUgcG9pbnRzIGFyZSBVKzAwMDAgdG8gVSsxMEZGRkYsIGluY2x1c2l2ZS4KKyAqCisgKiA8cD5UaGUgVW5pY29kZVNldCBjbGFzcyBpcyBub3QgZGVzaWduZWQgdG8gYmUgc3ViY2xhc3NlZC4KKyAqCisgKiA8cD48Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBzdXBwb3J0cyB0d28gQVBJcy4gVGhlIGZpcnN0IGlzIHRoZQorICogPGVtPm9wZXJhbmQ8L2VtPiBBUEkgdGhhdCBhbGxvd3MgdGhlIGNhbGxlciB0byBtb2RpZnkgdGhlIHZhbHVlIG9mCisgKiBhIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IG9iamVjdC4gSXQgY29uZm9ybXMgdG8gSmF2YSAyJ3MKKyAqIDxjb2RlPmphdmEudXRpbC5TZXQ8L2NvZGU+IGludGVyZmFjZSwgYWx0aG91Z2gKKyAqIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IGRvZXMgbm90IGFjdHVhbGx5IGltcGxlbWVudCB0aGF0CisgKiBpbnRlcmZhY2UuIEFsbCBtZXRob2RzIG9mIDxjb2RlPlNldDwvY29kZT4gYXJlIHN1cHBvcnRlZCwgd2l0aCB0aGUKKyAqIG1vZGlmaWNhdGlvbiB0aGF0IHRoZXkgdGFrZSBhIGNoYXJhY3RlciByYW5nZSBvciBzaW5nbGUgY2hhcmFjdGVyCisgKiBpbnN0ZWFkIG9mIGFuIDxjb2RlPk9iamVjdDwvY29kZT4sIGFuZCB0aGV5IHRha2UgYQorICogPGNvZGU+VW5pY29kZVNldDwvY29kZT4gaW5zdGVhZCBvZiBhIDxjb2RlPkNvbGxlY3Rpb248L2NvZGU+LiAgVGhlCisgKiBvcGVyYW5kIEFQSSBtYXkgYmUgdGhvdWdodCBvZiBpbiB0ZXJtcyBvZiBib29sZWFuIGxvZ2ljOiBhIGJvb2xlYW4KKyAqIE9SIGlzIGltcGxlbWVudGVkIGJ5IDxjb2RlPmFkZDwvY29kZT4sIGEgYm9vbGVhbiBBTkQgaXMgaW1wbGVtZW50ZWQKKyAqIGJ5IDxjb2RlPnJldGFpbjwvY29kZT4sIGEgYm9vbGVhbiBYT1IgaXMgaW1wbGVtZW50ZWQgYnkKKyAqIDxjb2RlPmNvbXBsZW1lbnQ8L2NvZGU+IHRha2luZyBhbiBhcmd1bWVudCwgYW5kIGEgYm9vbGVhbiBOT1QgaXMKKyAqIGltcGxlbWVudGVkIGJ5IDxjb2RlPmNvbXBsZW1lbnQ8L2NvZGU+IHdpdGggbm8gYXJndW1lbnQuICBJbiB0ZXJtcworICogb2YgdHJhZGl0aW9uYWwgc2V0IHRoZW9yeSBmdW5jdGlvbiBuYW1lcywgPGNvZGU+YWRkPC9jb2RlPiBpcyBhCisgKiB1bmlvbiwgPGNvZGU+cmV0YWluPC9jb2RlPiBpcyBhbiBpbnRlcnNlY3Rpb24sIDxjb2RlPnJlbW92ZTwvY29kZT4KKyAqIGlzIGFuIGFzeW1tZXRyaWMgZGlmZmVyZW5jZSwgYW5kIDxjb2RlPmNvbXBsZW1lbnQ8L2NvZGU+IHdpdGggbm8KKyAqIGFyZ3VtZW50IGlzIGEgc2V0IGNvbXBsZW1lbnQgd2l0aCByZXNwZWN0IHRvIHRoZSBzdXBlcnNldCByYW5nZQorICogPGNvZGU+TUlOX1ZBTFVFLU1BWF9WQUxVRTwvY29kZT4KKyAqCisgKiA8cD5UaGUgc2Vjb25kIEFQSSBpcyB0aGUKKyAqIDxjb2RlPmFwcGx5UGF0dGVybigpPC9jb2RlPi88Y29kZT50b1BhdHRlcm4oKTwvY29kZT4gQVBJIGZyb20gdGhlCisgKiA8Y29kZT5qYXZhLnRleHQuRm9ybWF0PC9jb2RlPi1kZXJpdmVkIGNsYXNzZXMuICBVbmxpa2UgdGhlCisgKiBtZXRob2RzIHRoYXQgYWRkIGNoYXJhY3RlcnMsIGFkZCBjYXRlZ29yaWVzLCBhbmQgY29udHJvbCB0aGUgbG9naWMKKyAqIG9mIHRoZSBzZXQsIHRoZSBtZXRob2QgPGNvZGU+YXBwbHlQYXR0ZXJuKCk8L2NvZGU+IHNldHMgYWxsCisgKiBhdHRyaWJ1dGVzIG9mIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4gYXQgb25jZSwgYmFzZWQgb24gYQorICogc3RyaW5nIHBhdHRlcm4uCisgKgorICogPHA+PGI+UGF0dGVybiBzeW50YXg8L2I+PC9wPgorICoKKyAqIFBhdHRlcm5zIGFyZSBhY2NlcHRlZCBieSB0aGUgY29uc3RydWN0b3JzIGFuZCB0aGUKKyAqIDxjb2RlPmFwcGx5UGF0dGVybigpPC9jb2RlPiBtZXRob2RzIGFuZCByZXR1cm5lZCBieSB0aGUKKyAqIDxjb2RlPnRvUGF0dGVybigpPC9jb2RlPiBtZXRob2QuICBUaGVzZSBwYXR0ZXJucyBmb2xsb3cgYSBzeW50YXgKKyAqIHNpbWlsYXIgdG8gdGhhdCBlbXBsb3llZCBieSB2ZXJzaW9uIDggcmVndWxhciBleHByZXNzaW9uIGNoYXJhY3RlcgorICogY2xhc3Nlcy4gIEhlcmUgYXJlIHNvbWUgc2ltcGxlIGV4YW1wbGVzOgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8dGFibGU+CisgKiAgICAgPHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxjb2RlPltdPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPk5vIGNoYXJhY3RlcnM8L3RkPgorICogICAgIDwvdHI+PHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxjb2RlPlthXTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5UaGUgY2hhcmFjdGVyICdhJzwvdGQ+CisgKiAgICAgPC90cj48dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W2FlXTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5UaGUgY2hhcmFjdGVycyAnYScgYW5kICdlJzwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W2EtZV08L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIGNoYXJhY3RlcnMgJ2EnIHRocm91Z2ggJ2UnIGluY2x1c2l2ZSwgaW4gVW5pY29kZSBjb2RlCisgKiAgICAgICBwb2ludCBvcmRlcjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W1xcdTRFMDFdPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBjaGFyYWN0ZXIgVSs0RTAxPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48Y29kZT5bYXthYn17YWN9XTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5UaGUgY2hhcmFjdGVyICdhJyBhbmQgdGhlIG11bHRpY2hhcmFjdGVyIHN0cmluZ3MgJnF1b3Q7YWImcXVvdDsgYW5kCisgKiAgICAgICAmcXVvdDthYyZxdW90OzwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W1xwe0x1fV08L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+QWxsIGNoYXJhY3RlcnMgaW4gdGhlIGdlbmVyYWwgY2F0ZWdvcnkgVXBwZXJjYXNlIExldHRlcjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBBbnkgY2hhcmFjdGVyIG1heSBiZSBwcmVjZWRlZCBieSBhIGJhY2tzbGFzaCBpbiBvcmRlciB0byByZW1vdmUgYW55IHNwZWNpYWwKKyAqIG1lYW5pbmcuICBXaGl0ZSBzcGFjZSBjaGFyYWN0ZXJzLCBhcyBkZWZpbmVkIGJ5IFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCksIGFyZQorICogaWdub3JlZCwgdW5sZXNzIHRoZXkgYXJlIGVzY2FwZWQuCisgKgorICogPHA+UHJvcGVydHkgcGF0dGVybnMgc3BlY2lmeSBhIHNldCBvZiBjaGFyYWN0ZXJzIGhhdmluZyBhIGNlcnRhaW4KKyAqIHByb3BlcnR5IGFzIGRlZmluZWQgYnkgdGhlIFVuaWNvZGUgc3RhbmRhcmQuICBCb3RoIHRoZSBQT1NJWC1saWtlCisgKiAiWzpMdTpdIiBhbmQgdGhlIFBlcmwtbGlrZSBzeW50YXggIlxwe0x1fSIgYXJlIHJlY29nbml6ZWQuICBGb3IgYQorICogY29tcGxldGUgbGlzdCBvZiBzdXBwb3J0ZWQgcHJvcGVydHkgcGF0dGVybnMsIHNlZSB0aGUgVXNlcidzIEd1aWRlCisgKiBmb3IgVW5pY29kZVNldCBhdAorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3VuaWNvZGVTZXQuaHRtbCI+CisgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvdW5pY29kZVNldC5odG1sPC9hPi4KKyAqIEFjdHVhbCBkZXRlcm1pbmF0aW9uIG9mIHByb3BlcnR5IGRhdGEgaXMgZGVmaW5lZCBieSB0aGUgdW5kZXJseWluZworICogVW5pY29kZSBkYXRhYmFzZSBhcyBpbXBsZW1lbnRlZCBieSBVQ2hhcmFjdGVyLgorICoKKyAqIDxwPlBhdHRlcm5zIHNwZWNpZnkgaW5kaXZpZHVhbCBjaGFyYWN0ZXJzLCByYW5nZXMgb2YgY2hhcmFjdGVycywgYW5kCisgKiBVbmljb2RlIHByb3BlcnR5IHNldHMuICBXaGVuIGVsZW1lbnRzIGFyZSBjb25jYXRlbmF0ZWQsIHRoZXkKKyAqIHNwZWNpZnkgdGhlaXIgdW5pb24uICBUbyBjb21wbGVtZW50IGEgc2V0LCBwbGFjZSBhICdeJyBpbW1lZGlhdGVseQorICogYWZ0ZXIgdGhlIG9wZW5pbmcgJ1snLiAgUHJvcGVydHkgcGF0dGVybnMgYXJlIGludmVydGVkIGJ5IG1vZGlmeWluZworICogdGhlaXIgZGVsaW1pdGVyczsgIls6XmZvb10iIGFuZCAiXFB7Zm9vfSIuICBJbiBhbnkgb3RoZXIgbG9jYXRpb24sCisgKiAnXicgaGFzIG5vIHNwZWNpYWwgbWVhbmluZy4KKyAqCisgKiA8cD5SYW5nZXMgYXJlIGluZGljYXRlZCBieSBwbGFjaW5nIHR3byBhICctJyBiZXR3ZWVuIHR3bworICogY2hhcmFjdGVycywgYXMgaW4gImEteiIuICBUaGlzIHNwZWNpZmllcyB0aGUgcmFuZ2Ugb2YgYWxsCisgKiBjaGFyYWN0ZXJzIGZyb20gdGhlIGxlZnQgdG8gdGhlIHJpZ2h0LCBpbiBVbmljb2RlIG9yZGVyLiAgSWYgdGhlCisgKiBsZWZ0IGNoYXJhY3RlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlCisgKiByaWdodCBjaGFyYWN0ZXIgaXQgaXMgYSBzeW50YXggZXJyb3IuICBJZiBhICctJyBvY2N1cnMgYXMgdGhlIGZpcnN0CisgKiBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIG9wZW5pbmcgJ1snIG9yICdbXicsIG9yIGlmIGl0IG9jY3VycyBhcyB0aGUKKyAqIGxhc3QgY2hhcmFjdGVyIGJlZm9yZSB0aGUgY2xvc2luZyAnXScsIHRoZW4gaXQgaXMgdGFrZW4gYXMgYQorICogbGl0ZXJhbC4gIFRodXMgIlthXFwtYl0iLCAiWy1hYl0iLCBhbmQgIlthYi1dIiBhbGwgaW5kaWNhdGUgdGhlIHNhbWUKKyAqIHNldCBvZiB0aHJlZSBjaGFyYWN0ZXJzLCAnYScsICdiJywgYW5kICctJy4KKyAqCisgKiA8cD5TZXRzIG1heSBiZSBpbnRlcnNlY3RlZCB1c2luZyB0aGUgJyYnIG9wZXJhdG9yIG9yIHRoZSBhc3ltbWV0cmljCisgKiBzZXQgZGlmZmVyZW5jZSBtYXkgYmUgdGFrZW4gdXNpbmcgdGhlICctJyBvcGVyYXRvciwgZm9yIGV4YW1wbGUsCisgKiAiW1s6TDpdJltcXHUwMDAwLVxcdTBGRkZdXSIgaW5kaWNhdGVzIHRoZSBzZXQgb2YgYWxsIFVuaWNvZGUgbGV0dGVycworICogd2l0aCB2YWx1ZXMgbGVzcyB0aGFuIDQwOTYuICBPcGVyYXRvcnMgKCcmJyBhbmQgJ3wnKSBoYXZlIGVxdWFsCisgKiBwcmVjZWRlbmNlIGFuZCBiaW5kIGxlZnQtdG8tcmlnaHQuICBUaHVzCisgKiAiW1s6TDpdLVthLXpdLVtcXHUwMTAwLVxcdTAxRkZdXSIgaXMgZXF1aXZhbGVudCB0bworICogIltbWzpMOl0tW2Etel1dLVtcXHUwMTAwLVxcdTAxRkZdXSIuICBUaGlzIG9ubHkgcmVhbGx5IG1hdHRlcnMgZm9yCisgKiBkaWZmZXJlbmNlOyBpbnRlcnNlY3Rpb24gaXMgY29tbXV0YXRpdmUuCisgKgorICogPHRhYmxlPgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bYV08L2NvZGU+PHRkPlRoZSBzZXQgY29udGFpbmluZyAnYScKKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W2Etel08L2NvZGU+PHRkPlRoZSBzZXQgY29udGFpbmluZyAnYScKKyAqIHRocm91Z2ggJ3onIGFuZCBhbGwgbGV0dGVycyBpbiBiZXR3ZWVuLCBpbiBVbmljb2RlIG9yZGVyCisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPlteYS16XTwvY29kZT48dGQ+VGhlIHNldCBjb250YWluaW5nCisgKiBhbGwgY2hhcmFjdGVycyBidXQgJ2EnIHRocm91Z2ggJ3onLAorICogdGhhdCBpcywgVSswMDAwIHRocm91Z2ggJ2EnLTEgYW5kICd6JysxIHRocm91Z2ggVSsxMEZGRkYKKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W1s8ZW0+cGF0MTwvZW0+XVs8ZW0+cGF0MjwvZW0+XV08L2NvZGU+CisgKiA8dGQ+VGhlIHVuaW9uIG9mIHNldHMgc3BlY2lmaWVkIGJ5IDxlbT5wYXQxPC9lbT4gYW5kIDxlbT5wYXQyPC9lbT4KKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W1s8ZW0+cGF0MTwvZW0+XSZbPGVtPnBhdDI8L2VtPl1dPC9jb2RlPgorICogPHRkPlRoZSBpbnRlcnNlY3Rpb24gb2Ygc2V0cyBzcGVjaWZpZWQgYnkgPGVtPnBhdDE8L2VtPiBhbmQgPGVtPnBhdDI8L2VtPgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bWzxlbT5wYXQxPC9lbT5dLVs8ZW0+cGF0MjwvZW0+XV08L2NvZGU+CisgKiA8dGQ+VGhlIGFzeW1tZXRyaWMgZGlmZmVyZW5jZSBvZiBzZXRzIHNwZWNpZmllZCBieSA8ZW0+cGF0MTwvZW0+IGFuZAorICogPGVtPnBhdDI8L2VtPgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bOkx1Ol0gb3IgXHB7THV9PC9jb2RlPgorICogPHRkPlRoZSBzZXQgb2YgY2hhcmFjdGVycyBoYXZpbmcgdGhlIHNwZWNpZmllZAorICogVW5pY29kZSBwcm9wZXJ0eTsgaW4KKyAqIHRoaXMgY2FzZSwgVW5pY29kZSB1cHBlcmNhc2UgbGV0dGVycworICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bOl5MdTpdIG9yIFxQe0x1fTwvY29kZT4KKyAqIDx0ZD5UaGUgc2V0IG9mIGNoYXJhY3RlcnMgPGVtPm5vdDwvZW0+IGhhdmluZyB0aGUgZ2l2ZW4KKyAqIFVuaWNvZGUgcHJvcGVydHkKKyAqIDwvdGFibGU+CisgKgorICogPHA+PGI+V2FybmluZzwvYj46IHlvdSBjYW5ub3QgYWRkIGFuIGVtcHR5IHN0cmluZyAoIiIpIHRvIGEgVW5pY29kZVNldC48L3A+CisgKgorICogPHA+PGI+Rm9ybWFsIHN5bnRheDwvYj48L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDx0YWJsZT4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPnBhdHRlcm4gOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPignWycgJ14nPyBpdGVtKiAnXScpIHwKKyAqICAgICAgIHByb3BlcnR5PC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPml0ZW0gOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPmNoYXIgfCAoY2hhciAnLScgY2hhcikgfCBwYXR0ZXJuLWV4cHI8YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+cGF0dGVybi1leHByIDo9Jm5ic3A7IDwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj48Y29kZT5wYXR0ZXJuIHwgcGF0dGVybi1leHByIHBhdHRlcm4gfAorICogICAgICAgcGF0dGVybi1leHByIG9wIHBhdHRlcm48YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+b3AgOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPicmYW1wOycgfCAnLSc8YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+c3BlY2lhbCA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGNvZGU+J1snIHwgJ10nIHwgJy0nPGJyPgorICogICAgICAgPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPmNoYXIgOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5hbnkgY2hhcmFjdGVyIHRoYXQgaXMgbm90PC9lbT48Y29kZT4gc3BlY2lhbDxicj4KKyAqICAgICAgIHwgKCdcXCcgPC9jb2RlPjxlbT5hbnkgY2hhcmFjdGVyPC9lbT48Y29kZT4pPGJyPgorICogICAgICAgfCAoJyYjOTI7dScgaGV4IGhleCBoZXggaGV4KTxicj4KKyAqICAgICAgIDwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249InJpZ2h0Ij48Y29kZT5oZXggOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5hbnkgY2hhcmFjdGVyIGZvciB3aGljaAorICogICAgICAgPC9lbT48Y29kZT5DaGFyYWN0ZXIuZGlnaXQoYywgMTYpPC9jb2RlPjxlbT4KKyAqICAgICAgIHJldHVybnMgYSBub24tbmVnYXRpdmUgcmVzdWx0PC9lbT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249InJpZ2h0Ij48Y29kZT5wcm9wZXJ0eSA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmEgVW5pY29kZSBwcm9wZXJ0eSBzZXQgcGF0dGVybjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqICAgPGJyPgorICogICA8dGFibGUgYm9yZGVyPSIxIj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQ+TGVnZW5kOiA8dGFibGU+CisgKiAgICAgICAgIDx0cj4KKyAqICAgICAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIj48Y29kZT5hIDo9IGI8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgd2lkdGg9IjIwIiB2YWxpZ249InRvcCI+Jm5ic3A7IDwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48Y29kZT5hPC9jb2RlPiBtYXkgYmUgcmVwbGFjZWQgYnkgPGNvZGU+YjwvY29kZT4gPC90ZD4KKyAqICAgICAgICAgPC90cj4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmE/PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+emVybyBvciBvbmUgaW5zdGFuY2Ugb2YgPGNvZGU+YTwvY29kZT48YnI+CisgKiAgICAgICAgICAgPC90ZD4KKyAqICAgICAgICAgPC90cj4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmEqPC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+b25lIG9yIG1vcmUgaW5zdGFuY2VzIG9mIDxjb2RlPmE8L2NvZGU+PGJyPgorICogICAgICAgICAgIDwvdGQ+CisgKiAgICAgICAgIDwvdHI+CisgKiAgICAgICAgIDx0cj4KKyAqICAgICAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIj48Y29kZT5hIHwgYjwvY29kZT48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPmVpdGhlciA8Y29kZT5hPC9jb2RlPiBvciA8Y29kZT5iPC9jb2RlPjxicj4KKyAqICAgICAgICAgICA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgICA8dHI+CisgKiAgICAgICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCI+PGNvZGU+J2EnPC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+dGhlIGxpdGVyYWwgc3RyaW5nIGJldHdlZW4gdGhlIHF1b3RlcyA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgPC90YWJsZT4KKyAqICAgICAgIDwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIDxwPlRvIGl0ZXJhdGUgb3ZlciBjb250ZW50cyBvZiBVbmljb2RlU2V0LCB1c2UgVW5pY29kZVNldEl0ZXJhdG9yIGNsYXNzLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBVbmljb2RlU2V0SXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIFVuaWNvZGVTZXQgZXh0ZW5kcyBVbmljb2RlRmlsdGVyIGltcGxlbWVudHMgRnJlZXphYmxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT1cgPSAweDAwMDAwMDsgLy8gTE9XIDw9IGFsbCB2YWxpZCB2YWx1ZXMuIFpFUk8gZm9yIGNvZGVwb2ludHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSElHSCA9IDB4MTEwMDAwOyAvLyBISUdIID4gYWxsIHZhbGlkIHZhbHVlcy4gMTAwMDAgZm9yIGNvZGUgdW5pdHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMTAwMDAgZm9yIGNvZGVwb2ludHMKKworICAgIC8qKgorICAgICAqIE1pbmltdW0gdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgVW5pY29kZVNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fVkFMVUUgPSBMT1c7CisKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIFVuaWNvZGVTZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1ZBTFVFID0gSElHSCAtIDE7CisKKyAgICBwcml2YXRlIGludCBsZW47ICAgICAgLy8gbGVuZ3RoIHVzZWQ7IGxpc3QgbWF5IGJlIGxvbmdlciB0byBtaW5pbWl6ZSByZWFsbG9jcworICAgIHByaXZhdGUgaW50W10gbGlzdDsgICAvLyBNVVNUIGJlIHRlcm1pbmF0ZWQgd2l0aCBISUdICisgICAgcHJpdmF0ZSBpbnRbXSByYW5nZUxpc3Q7IC8vIGludGVybmFsIGJ1ZmZlcgorICAgIHByaXZhdGUgaW50W10gYnVmZmVyOyAvLyBpbnRlcm5hbCBidWZmZXIKKworICAgIC8vIE5PVEU6IG5vcm1hbGx5IHRoZSBmaWVsZCBzaG91bGQgYmUgb2YgdHlwZSBTb3J0ZWRTZXQ7IGJ1dCB0aGF0IGlzIG1pc3NpbmcgYSBwdWJsaWMgY2xvbmUhIQorICAgIC8vIGlzIG5vdCBwcml2YXRlIHNvIHRoYXQgVW5pY29kZVNldEl0ZXJhdG9yIGNhbiBnZXQgYWNjZXNzCisgICAgVHJlZVNldCBzdHJpbmdzID0gbmV3IFRyZWVTZXQoKTsKKworICAgIC8qKgorICAgICAqIFRoZSBwYXR0ZXJuIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0LiAgVGhpcyBtYXkgbm90IGJlIHRoZQorICAgICAqIG1vc3QgZWNvbm9taWNhbCBwYXR0ZXJuLiAgSXQgaXMgdGhlIHBhdHRlcm4gc3VwcGxpZWQgdG8KKyAgICAgKiBhcHBseVBhdHRlcm4oKSwgd2l0aCB2YXJpYWJsZXMgc3Vic3RpdHV0ZWQgYW5kIHdoaXRlc3BhY2UKKyAgICAgKiByZW1vdmVkLiAgRm9yIHNldHMgY29uc3RydWN0ZWQgd2l0aG91dCBhcHBseVBhdHRlcm4oKSwgb3IKKyAgICAgKiBtb2RpZmllZCB1c2luZyB0aGUgbm9uLXBhdHRlcm4gQVBJLCB0aGlzIHN0cmluZyB3aWxsIGJlIG51bGwsCisgICAgICogaW5kaWNhdGluZyB0aGF0IHRvUGF0dGVybigpIG11c3QgZ2VuZXJhdGUgYSBwYXR0ZXJuCisgICAgICogcmVwcmVzZW50YXRpb24gZnJvbSB0aGUgaW52ZXJzaW9uIGxpc3QuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0ID0gbnVsbDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFSVF9FWFRSQSA9IDE2OyAgICAgICAgIC8vIGluaXRpYWwgc3RvcmFnZS4gTXVzdCBiZSA+PSAwCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdST1dfRVhUUkEgPSBTVEFSVF9FWFRSQTsgLy8gZXh0cmEgYW1vdW50IGZvciBncm93dGguIE11c3QgYmUgPj0gMAorCisgICAgLy8gU3BlY2lhbCBwcm9wZXJ0eSBzZXQgSURzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWV9JRCAgID0gIkFOWSI7ICAgLy8gW1x1MDAwMC1cVTAwMTBGRkZGXQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBU0NJSV9JRCA9ICJBU0NJSSI7IC8vIFtcdTAwMDAtXHUwMDdGXQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBU1NJR05FRCA9ICJBc3NpZ25lZCI7IC8vIFs6XkNuOl0KKworICAgIC8qKgorICAgICAqIEEgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIF9leGNlcHRfIHRoZSBzZWNvbmQgdGhyb3VnaCBsYXN0IGNoYXJhY3RlcnMgb2YKKyAgICAgKiBjZXJ0YWluIHJhbmdlcy4gIFRoZXNlIHJhbmdlcyBhcmUgcmFuZ2VzIG9mIGNoYXJhY3RlcnMgd2hvc2UKKyAgICAgKiBwcm9wZXJ0aWVzIGFyZSBhbGwgZXhhY3RseSBhbGlrZSwgZS5nLiBDSksgSWRlb2dyYXBocyBmcm9tCisgICAgICogVSs0RTAwIHRvIFUrOUZBNS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElOQ0xVU0lPTlNbXSA9IG51bGw7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGVtcHR5IHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCgpIHsKKyAgICAgICAgbGlzdCA9IG5ldyBpbnRbMSArIFNUQVJUX0VYVFJBXTsKKyAgICAgICAgbGlzdFtsZW4rK10gPSBISUdIOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjb3B5IG9mIGFuIGV4aXN0aW5nIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChVbmljb2RlU2V0IG90aGVyKSB7CisgICAgICAgIHNldChvdGhlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiByYW5nZS4gSWYgPGNvZGU+ZW5kID4KKyAgICAgKiBzdGFydDwvY29kZT4gdGhlbiBhbiBlbXB0eSBzZXQgaXMgY3JlYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgY29tcGxlbWVudChzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4uICBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuICBXaGl0ZXNwYWNlIGlzIGlnbm9yZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gY29udGFpbnMKKyAgICAgKiBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBJR05PUkVfU1BBQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBpZ25vcmVXaGl0ZXNwYWNlIGlmIHRydWUsIGlnbm9yZSBjaGFyYWN0ZXJzIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgcmV0dXJucyB0cnVlCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zCisgICAgICogYSBzeW50YXggZXJyb3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIGJvb2xlYW4gaWdub3JlV2hpdGVzcGFjZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBpZ25vcmVXaGl0ZXNwYWNlID8gSUdOT1JFX1NQQUNFIDogMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNldCBmcm9tIHRoZSBnaXZlbiBwYXR0ZXJuLiAgU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbgorICAgICAqIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgc3RyaW5nIHNwZWNpZnlpbmcgd2hhdCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgc2V0CisgICAgICogQHBhcmFtIG9wdGlvbnMgYSBiaXRtYXNrIGluZGljYXRpbmcgd2hpY2ggb3B0aW9ucyB0byBhcHBseS4KKyAgICAgKiBWYWxpZCBvcHRpb25zIGFyZSBJR05PUkVfU1BBQ0UgYW5kIENBU0UuCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zCisgICAgICogYSBzeW50YXggZXJyb3IuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIGludCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIG9wdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBwb3Mgb24gaW5wdXQsIHRoZSBwb3NpdGlvbiBpbiBwYXR0ZXJuIGF0IHdoaWNoIHRvIHN0YXJ0IHBhcnNpbmcuCisgICAgICogT24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gc3ltYm9scyBhIHN5bWJvbCB0YWJsZSBtYXBwaW5nIHZhcmlhYmxlcyB0byBjaGFyW10gYXJyYXlzCisgICAgICogYW5kIGNoYXJzIHRvIFVuaWNvZGVTZXRzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIFBhcnNlUG9zaXRpb24gcG9zLCBTeW1ib2xUYWJsZSBzeW1ib2xzKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIHBvcywgc3ltYm9scywgSUdOT1JFX1NQQUNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4uICBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAcGFyYW0gcG9zIG9uIGlucHV0LCB0aGUgcG9zaXRpb24gaW4gcGF0dGVybiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nLgorICAgICAqIE9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuCisgICAgICogQHBhcmFtIHN5bWJvbHMgYSBzeW1ib2wgdGFibGUgbWFwcGluZyB2YXJpYWJsZXMgdG8gY2hhcltdIGFycmF5cworICAgICAqIGFuZCBjaGFycyB0byBVbmljb2RlU2V0cworICAgICAqIEBwYXJhbSBvcHRpb25zIGEgYml0bWFzayBpbmRpY2F0aW5nIHdoaWNoIG9wdGlvbnMgdG8gYXBwbHkuCisgICAgICogVmFsaWQgb3B0aW9ucyBhcmUgSUdOT1JFX1NQQUNFIGFuZCBDQVNFLgorICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybgorICAgICAqIGNvbnRhaW5zIGEgc3ludGF4IGVycm9yLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIFBhcnNlUG9zaXRpb24gcG9zLCBTeW1ib2xUYWJsZSBzeW1ib2xzLCBpbnQgb3B0aW9ucykgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBwb3MsIHN5bWJvbHMsIG9wdGlvbnMpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IHNldCB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCh0aGlzKTsKKyAgICAgICAgcmVzdWx0LmZyb3plbiA9IHRoaXMuZnJvemVuOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgdGhpcyBvYmplY3QgcmVwcmVzZW50IHRoZSByYW5nZSA8Y29kZT5zdGFydCAtIGVuZDwvY29kZT4uCisgICAgICogSWYgPGNvZGU+ZW5kID4gc3RhcnQ8L2NvZGU+IHRoZW4gdGhpcyBvYmplY3QgaXMgc2V0IHRvIGFuCisgICAgICogYW4gZW1wdHkgcmFuZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBzZXQsIGluY2x1c2l2ZQorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHNldCwgaW5jbHVzaXZlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgc2V0KGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBjbGVhcigpOworICAgICAgICBjb21wbGVtZW50KHN0YXJ0LCBlbmQpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHRoaXMgb2JqZWN0IHJlcHJlc2VudCB0aGUgc2FtZSBzZXQgYXMgPGNvZGU+b3RoZXI8L2NvZGU+LgorICAgICAqIEBwYXJhbSBvdGhlciBhIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IHdob3NlIHZhbHVlIHdpbGwgYmUKKyAgICAgKiBjb3BpZWQgdG8gdGhpcyBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBzZXQoVW5pY29kZVNldCBvdGhlcikgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBsaXN0ID0gKGludFtdKSBvdGhlci5saXN0LmNsb25lKCk7CisgICAgICAgIGxlbiA9IG90aGVyLmxlbjsKKyAgICAgICAgcGF0ID0gb3RoZXIucGF0OworICAgICAgICBzdHJpbmdzID0gKFRyZWVTZXQpb3RoZXIuc3RyaW5ncy5jbG9uZSgpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyB0aGlzIHNldCB0byByZXByZXNlbnQgdGhlIHNldCBzcGVjaWZpZWQgYnkgdGhlIGdpdmVuIHBhdHRlcm4uCisgICAgICogU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBXaGl0ZXNwYWNlIGlzIGlnbm9yZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4KKyAgICAgKiBjb250YWlucyBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgcmV0dXJuIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBJR05PUkVfU1BBQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIHJlcHJlc2VudCB0aGUgc2V0IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gcGF0dGVybiwKKyAgICAgKiBvcHRpb25hbGx5IGlnbm9yaW5nIHdoaXRlc3BhY2UuCisgICAgICogU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBpZ25vcmVXaGl0ZXNwYWNlIGlmIHRydWUgdGhlbiBjaGFyYWN0ZXJzIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgcmV0dXJucyB0cnVlIGFyZSBpZ25vcmVkCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBib29sZWFuIGlnbm9yZVdoaXRlc3BhY2UpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgcmV0dXJuIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBpZ25vcmVXaGl0ZXNwYWNlID8gSUdOT1JFX1NQQUNFIDogMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZpZXMgdGhpcyBzZXQgdG8gcmVwcmVzZW50IHRoZSBzZXQgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBwYXR0ZXJuLAorICAgICAqIG9wdGlvbmFsbHkgaWdub3Jpbmcgd2hpdGVzcGFjZS4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgc3RyaW5nIHNwZWNpZnlpbmcgd2hhdCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgc2V0CisgICAgICogQHBhcmFtIG9wdGlvbnMgYSBiaXRtYXNrIGluZGljYXRpbmcgd2hpY2ggb3B0aW9ucyB0byBhcHBseS4KKyAgICAgKiBWYWxpZCBvcHRpb25zIGFyZSBJR05PUkVfU1BBQ0UgYW5kIENBU0UuCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBpbnQgb3B0aW9ucykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXR1cm4gYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIG9wdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBwb3NpdGlvbiwgaW4gdGhlIGdpdmVuIHBhdHRlcm4sIGFwcGVhcnMKKyAgICAgKiB0byBiZSB0aGUgc3RhcnQgb2YgYSBVbmljb2RlU2V0IHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1BhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIGludCBwb3MpIHsKKyAgICAgICAgcmV0dXJuICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcykgPT0gJ1snKSB8fAorICAgICAgICAgICAgcmVzZW1ibGVzUHJvcGVydHlQYXR0ZXJuKHBhdHRlcm4sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSA8Y29kZT50b1BhdHRlcm4oKTwvY29kZT4gcmVwcmVzZW50YXRpb24gb2YgYQorICAgICAqIHN0cmluZyB0byB0aGUgZ2l2ZW4gPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIF9hcHBlbmRUb1BhdChTdHJpbmdCdWZmZXIgYnVmLCBTdHJpbmcgcywgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGkpKSB7CisgICAgICAgICAgICBfYXBwZW5kVG9QYXQoYnVmLCBVVEYxNi5jaGFyQXQocywgaSksIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgPGNvZGU+dG9QYXR0ZXJuKCk8L2NvZGU+IHJlcHJlc2VudGF0aW9uIG9mIGEKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlIGdpdmVuIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBfYXBwZW5kVG9QYXQoU3RyaW5nQnVmZmVyIGJ1ZiwgaW50IGMsIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgaWYgKGVzY2FwZVVucHJpbnRhYmxlICYmIFV0aWxpdHkuaXNVbnByaW50YWJsZShjKSkgeworICAgICAgICAgICAgLy8gVXNlIGhleCBlc2NhcGUgbm90YXRpb24gKDxiYWNrc2xhc2g+dXh4eHggb3IgPGJhY2tzbGFzaD5VeHh4eHh4eHgpIGZvciBhbnl0aGluZworICAgICAgICAgICAgLy8gdW5wcmludGFibGUKKyAgICAgICAgICAgIGlmIChVdGlsaXR5LmVzY2FwZVVucHJpbnRhYmxlKGJ1ZiwgYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gT2theSB0byBsZXQgJzonIHBhc3MgdGhyb3VnaAorICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAnWyc6IC8vIFNFVF9PUEVOOgorICAgICAgICBjYXNlICddJzogLy8gU0VUX0NMT1NFOgorICAgICAgICBjYXNlICctJzogLy8gSFlQSEVOOgorICAgICAgICBjYXNlICdeJzogLy8gQ09NUExFTUVOVDoKKyAgICAgICAgY2FzZSAnJic6IC8vIElOVEVSU0VDVElPTjoKKyAgICAgICAgY2FzZSAnXFwnOiAvL0JBQ0tTTEFTSDoKKyAgICAgICAgY2FzZSAneyc6CisgICAgICAgIGNhc2UgJ30nOgorICAgICAgICBjYXNlICckJzoKKyAgICAgICAgY2FzZSAnOic6CisgICAgICAgICAgICBidWYuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBFc2NhcGUgd2hpdGVzcGFjZQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQuICBJZiB0aGUgcmVzdWx0IG9mCisgICAgICogY2FsbGluZyB0aGlzIGZ1bmN0aW9uIGlzIHBhc3NlZCB0byBhIFVuaWNvZGVTZXQgY29uc3RydWN0b3IsIGl0CisgICAgICogd2lsbCBwcm9kdWNlIGFub3RoZXIgc2V0IHRoYXQgaXMgZXF1YWwgdG8gdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICByZXR1cm4gX3RvUGF0dGVybihyZXN1bHQsIGVzY2FwZVVucHJpbnRhYmxlKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNldCB0byByZXN1bHQuICBUaGlzIHdpbGwgYmUKKyAgICAgKiBhIGNsZWFuZWQgdmVyc2lvbiBvZiB0aGUgc3RyaW5nIHBhc3NlZCB0byBhcHBseVBhdHRlcm4oKSwgaWYgdGhlcmUKKyAgICAgKiBpcyBvbmUuICBPdGhlcndpc2UgaXQgd2lsbCBiZSBnZW5lcmF0ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgX3RvUGF0dGVybihTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBpZiAocGF0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgaW50IGJhY2tzbGFzaENvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPHBhdC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocGF0LCBpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoZXNjYXBlVW5wcmludGFibGUgJiYgVXRpbGl0eS5pc1VucHJpbnRhYmxlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1bnByaW50YWJsZSBjaGFyYWN0ZXIgaXMgcHJlY2VkZWQgYnkgYW4gb2RkCisgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBiYWNrc2xhc2hlcywgdGhlbiBpdCBoYXMgYmVlbiBlc2NhcGVkLgorICAgICAgICAgICAgICAgICAgICAvLyBCZWZvcmUgdW5lc2NhcGluZyBpdCwgd2UgZGVsZXRlIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAgICAvLyBiYWNrc2xhc2guCisgICAgICAgICAgICAgICAgICAgIGlmICgoYmFja3NsYXNoQ291bnQgJSAyKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKHJlc3VsdC5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUocmVzdWx0LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgYmFja3NsYXNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2JhY2tzbGFzaENvdW50OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYmFja3NsYXNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBfZ2VuZXJhdGVQYXR0ZXJuKHJlc3VsdCwgZXNjYXBlVW5wcmludGFibGUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGFuZCBhcHBlbmQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgdG8gcmVzdWx0LgorICAgICAqIFRoaXMgZG9lcyBub3QgdXNlIHRoaXMucGF0LCB0aGUgY2xlYW5lZCB1cCBjb3B5IG9mIHRoZSBzdHJpbmcKKyAgICAgKiBwYXNzZWQgdG8gYXBwbHlQYXR0ZXJuKCkuCisgICAgICogQHBhcmFtIHJlc3VsdCB0aGUgYnVmZmVyIGludG8gd2hpY2ggdG8gZ2VuZXJhdGUgdGhlIHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgZXNjYXBlIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMgaWYgdHJ1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgX2dlbmVyYXRlUGF0dGVybihTdHJpbmdCdWZmZXIgcmVzdWx0LCBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIHJldHVybiBfZ2VuZXJhdGVQYXR0ZXJuKHJlc3VsdCwgZXNjYXBlVW5wcmludGFibGUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGFuZCBhcHBlbmQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgdG8gcmVzdWx0LgorICAgICAqIFRoaXMgZG9lcyBub3QgdXNlIHRoaXMucGF0LCB0aGUgY2xlYW5lZCB1cCBjb3B5IG9mIHRoZSBzdHJpbmcKKyAgICAgKiBwYXNzZWQgdG8gYXBwbHlQYXR0ZXJuKCkuCisgICAgICogQHBhcmFtIGluY2x1ZGVTdHJpbmdzIGlmIGZhbHNlLCBkb2Vzbid0IGluY2x1ZGUgdGhlIHN0cmluZ3MuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBfZ2VuZXJhdGVQYXR0ZXJuKFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsIGJvb2xlYW4gaW5jbHVkZVN0cmluZ3MpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnWycpOworCisvLyAgICAgIC8vIENoZWNrIGFnYWluc3QgdGhlIHByZWRlZmluZWQgY2F0ZWdvcmllcy4gIFdlIGltcGxpY2l0bHkgYnVpbGQKKy8vICAgICAgLy8gdXAgQUxMIGNhdGVnb3J5IHNldHMgdGhlIGZpcnN0IHRpbWUgdG9QYXR0ZXJuKCkgaXMgY2FsbGVkLgorLy8gICAgICBmb3IgKGludCBjYXQ9MDsgY2F0PENBVEVHT1JZX0NPVU5UOyArK2NhdCkgeworLy8gICAgICAgICAgaWYgKHRoaXMuZXF1YWxzKGdldENhdGVnb3J5U2V0KGNhdCkpKSB7CisvLyAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnOicpOworLy8gICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0FURUdPUllfTkFNRVMuc3Vic3RyaW5nKGNhdCoyLCBjYXQqMisyKSk7CisvLyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIjpdIik7CisvLyAgICAgICAgICB9CisvLyAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSBnZXRSYW5nZUNvdW50KCk7CisKKyAgICAgICAgLy8gSWYgdGhlIHNldCBjb250YWlucyBhdCBsZWFzdCAyIGludGVydmFscyBhbmQgaW5jbHVkZXMgYm90aAorICAgICAgICAvLyBNSU5fVkFMVUUgYW5kIE1BWF9WQUxVRSwgdGhlbiB0aGUgaW52ZXJzZSByZXByZXNlbnRhdGlvbiB3aWxsCisgICAgICAgIC8vIGJlIG1vcmUgZWNvbm9taWNhbC4KKyAgICAgICAgaWYgKGNvdW50ID4gMSAmJgorICAgICAgICAgICAgZ2V0UmFuZ2VTdGFydCgwKSA9PSBNSU5fVkFMVUUgJiYKKyAgICAgICAgICAgIGdldFJhbmdlRW5kKGNvdW50LTEpID09IE1BWF9WQUxVRSkgeworCisgICAgICAgICAgICAvLyBFbWl0IHRoZSBpbnZlcnNlCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdeJyk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGdldFJhbmdlRW5kKGktMSkrMTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gZ2V0UmFuZ2VTdGFydChpKS0xOworICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIHN0YXJ0LCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0KzEpICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLScpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIGVuZCwgZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIERlZmF1bHQ7IGVtaXQgdGhlIHJhbmdlcyBhcyBwYWlycworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICAgICAgaW50IGVuZCA9IGdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIHN0YXJ0LCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0KzEpICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLScpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIGVuZCwgZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmNsdWRlU3RyaW5ncyAmJiBzdHJpbmdzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3snKTsKKyAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocmVzdWx0LCAoU3RyaW5nKSBpdC5uZXh0KCksIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoJ10nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQgKGl0cyBjYXJkaW5hbGl0eSkKKyAgICAgKiBOb3RlIHRoYW4gdGhlIGVsZW1lbnRzIG9mIGEgc2V0IG1heSBpbmNsdWRlIGJvdGggaW5kaXZpZHVhbAorICAgICAqIGNvZGVwb2ludHMgYW5kIHN0cmluZ3MuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQgKGl0cyBjYXJkaW5hbGl0eSkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBzaXplKCkgeworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIGludCBjb3VudCA9IGdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBuICs9IGdldFJhbmdlRW5kKGkpIC0gZ2V0UmFuZ2VTdGFydChpKSArIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG4gKyBzdHJpbmdzLnNpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgbm8gZWxlbWVudHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgbm8gZWxlbWVudHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKyAgICAgICAgcmV0dXJuIGxlbiA9PSAxICYmIHN0cmluZ3Muc2l6ZSgpID09IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIgQVBJLiAgUmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+IGlmCisgICAgICogdGhpcyBzZXQgY29udGFpbnMgYW55IGNoYXJhY3RlciB3aG9zZSBsb3cgYnl0ZSBpcyB0aGUgZ2l2ZW4KKyAgICAgKiB2YWx1ZS4gIFRoaXMgaXMgdXNlZCBieSA8dHQ+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L3R0PiBmb3IKKyAgICAgKiBpbmRleGluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICAvKiBUaGUgaW5kZXggdmFsdWUgdiwgaW4gdGhlIHJhbmdlIFswLDI1NV0sIGlzIGNvbnRhaW5lZCBpbiB0aGlzIHNldCBpZgorICAgICAgICAgKiBpdCBpcyBjb250YWluZWQgaW4gYW55IHBhaXIgb2YgdGhpcyBzZXQuICBQYWlycyBlaXRoZXIgaGF2ZSB0aGUgaGlnaAorICAgICAgICAgKiBieXRlcyBlcXVhbCwgb3IgdW5lcXVhbC4gIElmIHRoZSBoaWdoIGJ5dGVzIGFyZSBlcXVhbCwgdGhlbiB3ZSBoYXZlCisgICAgICAgICAqIGFheHguLmFheXksIHdoZXJlIGFhIGlzIHRoZSBoaWdoIGJ5dGUuICBUaGVuIHYgaXMgY29udGFpbmVkIGlmIHh4IDw9CisgICAgICAgICAqIHYgPD0geXkuICBJZiB0aGUgaGlnaCBieXRlcyBhcmUgdW5lcXVhbCB3ZSBoYXZlIGFheHguLmJieXksIGJiPmFhLgorICAgICAgICAgKiBUaGVuIHYgaXMgY29udGFpbmVkIGlmIHh4IDw9IHYgfHwgdiA8PSB5eS4gIChUaGlzIGlzIGlkZW50aWNhbCB0byB0aGUKKyAgICAgICAgICogdGltZSB6b25lIG1vbnRoIGNvbnRhaW5tZW50IGxvZ2ljLikKKyAgICAgICAgICovCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxnZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgaW50IGxvdyA9IGdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBpbnQgaGlnaCA9IGdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgaWYgKChsb3cgJiB+MHhGRikgPT0gKGhpZ2ggJiB+MHhGRikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKGxvdyAmIDB4RkYpIDw9IHYgJiYgdiA8PSAoaGlnaCAmIDB4RkYpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGxvdyAmIDB4RkYpIDw9IHYgfHwgdiA8PSAoaGlnaCAmIDB4RkYpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIC8vaWYgKHMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vICAgIC8vIEVtcHR5IHN0cmluZ3MgbWF0Y2ggZXZlcnl0aGluZworICAgICAgICAgICAgICAgIC8vICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgIC8vIGFzc2VydChzLmxlbmd0aCgpICE9IDApOyAvLyBXZSBlbmZvcmNlIHRoaXMgZWxzZXdoZXJlCisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocywgMCk7CisgICAgICAgICAgICAgICAgaWYgKChjICYgMHhGRikgPT0gdikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIFVuaWNvZGVNYXRjaGVyLm1hdGNoZXMoKS4gIEFsd2F5cyBtYXRjaGVzIHRoZQorICAgICAqIGxvbmdlc3QgcG9zc2libGUgbXVsdGljaGFyIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1hdGNoZXMoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKworICAgICAgICBpZiAob2Zmc2V0WzBdID09IGxpbWl0KSB7CisgICAgICAgICAgICAvLyBTdHJpbmdzLCBpZiBhbnksIGhhdmUgbGVuZ3RoICE9IDAsIHNvIHdlIGRvbid0IHdvcnJ5CisgICAgICAgICAgICAvLyBhYm91dCB0aGVtIGhlcmUuICBJZiB3ZSBldmVyIGFsbG93IHplcm8tbGVuZ3RoIHN0cmluZ3MKKyAgICAgICAgICAgIC8vIHdlIG11Y2ggY2hlY2sgZm9yIHRoZW0gaGVyZS4KKyAgICAgICAgICAgIGlmIChjb250YWlucyhVbmljb2RlTWF0Y2hlci5FVEhFUikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5jcmVtZW50YWwgPyBVX1BBUlRJQUxfTUFUQ0ggOiBVX01BVENIOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVV9NSVNNQVRDSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHJpbmdzLnNpemUoKSAhPSAwKSB7IC8vIHRyeSBzdHJpbmdzIGZpcnN0CisKKyAgICAgICAgICAgICAgICAvLyBtaWdodCBzZXBhcmF0ZSBmb3J3YXJkIGFuZCBiYWNrd2FyZCBsb29wcyBsYXRlcgorICAgICAgICAgICAgICAgIC8vIGZvciBub3cgdGhleSBhcmUgY29tYmluZWQKKworICAgICAgICAgICAgICAgIC8vIFRPRE8gSW1wcm92ZSBlZmZpY2llbmN5IG9mIHRoaXMsIGF0IGxlYXN0IGluIHRoZSBmb3J3YXJkCisgICAgICAgICAgICAgICAgLy8gZGlyZWN0aW9uLCBpZiBub3QgaW4gYm90aC4gIEluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiB3ZQorICAgICAgICAgICAgICAgIC8vIGNhbiBhc3N1bWUgdGhlIHN0cmluZ3MgYXJlIHNvcnRlZC4KKworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gZm9yd2FyZCA9IG9mZnNldFswXSA8IGxpbWl0OworCisgICAgICAgICAgICAgICAgLy8gZmlyc3RDaGFyIGlzIHRoZSBsZWZ0bW9zdCBjaGFyIHRvIG1hdGNoIGluIHRoZQorICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgZGlyZWN0aW9uIG9yIHRoZSByaWdodG1vc3QgY2hhciB0byBtYXRjaCBpbgorICAgICAgICAgICAgICAgIC8vIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICBjaGFyIGZpcnN0Q2hhciA9IHRleHQuY2hhckF0KG9mZnNldFswXSk7CisKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgc3RyaW5ncyB0aGF0IGNhbiBtYXRjaCB3ZQorICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgbG9uZ2VzdCBtYXRjaC4KKyAgICAgICAgICAgICAgICBpbnQgaGlnaFdhdGVyTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gKFN0cmluZykgaXQubmV4dCgpOworCisgICAgICAgICAgICAgICAgICAgIC8vaWYgKHRyaWFsLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgcmV0dXJuIFVfTUFUQ0g7IC8vIG51bGwtc3RyaW5nIGFsd2F5cyBtYXRjaGVzCisgICAgICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQodHJpYWwubGVuZ3RoKCkgIT0gMCk7IC8vIFdlIGVuc3VyZSB0aGlzIGVsc2V3aGVyZQorCisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRyaWFsLmNoYXJBdChmb3J3YXJkID8gMCA6IHRyaWFsLmxlbmd0aCgpIC0gMSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RyaW5ncyBhcmUgc29ydGVkLCBzbyB3ZSBjYW4gb3B0aW1pemUgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgZGlyZWN0aW9uLgorICAgICAgICAgICAgICAgICAgICBpZiAoZm9yd2FyZCAmJiBjID4gZmlyc3RDaGFyKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gZmlyc3RDaGFyKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gbWF0Y2hSZXN0KHRleHQsIG9mZnNldFswXSwgbGltaXQsIHRyaWFsKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhMZW4gPSBmb3J3YXJkID8gbGltaXQtb2Zmc2V0WzBdIDogb2Zmc2V0WzBdLWxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbiA9PSBtYXhMZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHN1Y2Nlc3NmdWxseSBtYXRjaGVkIGJ1dCBvbmx5IHVwIHRvIGxpbWl0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAobGVuID09IHRyaWFsLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHN1Y2Nlc3NmdWxseSBtYXRjaGVkIHRoZSB3aG9sZSBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuID4gaGlnaFdhdGVyTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaFdhdGVyTGVuZ3RoID0gbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uIHdlIGtub3cgc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJlIHNvcnRlZCBzbyB3ZSBjYW4gYmFpbCBlYXJseS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3J3YXJkICYmIGxlbiA8IGhpZ2hXYXRlckxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBjaGVja2VkIGFsbCBzdHJpbmdzIHdpdGhvdXQgYSBwYXJ0aWFsIG1hdGNoLgorICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgZnVsbCBtYXRjaGVzLCByZXR1cm4gdGhlIGxvbmdlc3Qgb25lLgorICAgICAgICAgICAgICAgIGlmIChoaWdoV2F0ZXJMZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRbMF0gKz0gZm9yd2FyZCA/IGhpZ2hXYXRlckxlbmd0aCA6IC1oaWdoV2F0ZXJMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01BVENIOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdXBlci5tYXRjaGVzKHRleHQsIG9mZnNldCwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvbmdlc3QgbWF0Y2ggZm9yIHMgaW4gdGV4dCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogSWYgbGltaXQgPiBzdGFydCB0aGVuIG1hdGNoIGZvcndhcmQgZnJvbSBzdGFydCsxIHRvIGxpbWl0CisgICAgICogbWF0Y2hpbmcgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IHMuY2hhckF0KDApLiAgSWYgbGltaXQgPCBzdGFydCwKKyAgICAgKiBnbyBiYWNrd2FyZCBzdGFydGluZyBmcm9tIHN0YXJ0LTEgbWF0Y2hpbmcgYWxsIGNoYXJhY3RlcnMKKyAgICAgKiBleGNlcHQgcy5jaGFyQXQocy5sZW5ndGgoKS0xKS4gIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCB0aGUKKyAgICAgKiBmaXJzdCBjaGFyYWN0ZXIsIHRleHQuY2hhckF0KHN0YXJ0KSwgbWF0Y2hlcyBzLCBzbyBpdCBkb2VzIG5vdAorICAgICAqIGNoZWNrIGl0LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIG1hdGNoCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gbWF0Y2guICBJbiB0aGUgZm9yd2FyZAorICAgICAqIGRpcmVjdGlvbiwgdGV4dC5jaGFyQXQoc3RhcnQpIGlzIG1hdGNoZWQgYWdhaW5zdCBzLmNoYXJBdCgwKS4KKyAgICAgKiBJbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24sIGl0IGlzIG1hdGNoZWQgYWdhaW5zdAorICAgICAqIHMuY2hhckF0KHMubGVuZ3RoKCktMSkuCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZmZzZXQgZm9yIG1hdGNoaW5nLCBlaXRoZXIgbGFzdCsxIGluCisgICAgICogdGhlIGZvcndhcmQgZGlyZWN0aW9uLCBvciBsYXN0LTEgaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLAorICAgICAqIHdoZXJlIGxhc3QgaXMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IGNoYXJhY3RlciB0byBtYXRjaC4KKyAgICAgKiBAcmV0dXJuIElmIHBhcnQgb2YgcyBtYXRjaGVzIHVwIHRvIHRoZSBsaW1pdCwgcmV0dXJuIHxsaW1pdCAtCisgICAgICogc3RhcnR8LiAgSWYgYWxsIG9mIHMgbWF0Y2hlcyBiZWZvcmUgcmVhY2hpbmcgdGhlIGxpbWl0LCByZXR1cm4KKyAgICAgKiBzLmxlbmd0aCgpLiAgSWYgdGhlcmUgaXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHMgYW5kIHRleHQsIHJldHVybgorICAgICAqIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWF0Y2hSZXN0IChSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IG1heExlbjsKKyAgICAgICAgaW50IHNsZW4gPSBzLmxlbmd0aCgpOworICAgICAgICBpZiAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgbWF4TGVuID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgICAgIGlmIChtYXhMZW4gPiBzbGVuKSBtYXhMZW4gPSBzbGVuOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtYXhMZW47ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh0ZXh0LmNoYXJBdChzdGFydCArIGkpICE9IHMuY2hhckF0KGkpKSByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1heExlbiA9IHN0YXJ0IC0gbGltaXQ7CisgICAgICAgICAgICBpZiAobWF4TGVuID4gc2xlbikgbWF4TGVuID0gc2xlbjsKKyAgICAgICAgICAgIC0tc2xlbjsgLy8gPD0+IHNsZW4gPSBzLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbWF4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQXQoc3RhcnQgLSBpKSAhPSBzLmNoYXJBdChzbGVuIC0gaSkpIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXhMZW47CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIFRlc3RzIHdoZXRoZXIgdGhlIHRleHQgbWF0Y2hlcyBhdCB0aGUgb2Zmc2V0LiBJZiBzbywgcmV0dXJucyB0aGUgZW5kIG9mIHRoZSBsb25nZXN0IHN1YnN0cmluZyB0aGF0IGl0IG1hdGNoZXMuIElmIG5vdCwgcmV0dXJucyAtMS4gRm9yIG5vdywgYW4gaW50ZXJuYWwgcm91dGluZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1hdGNoZXNBdChDaGFyU2VxdWVuY2UgdGV4dCwgaW50IG9mZnNldCkgeworICAgICAgICBpbnQgbGVuID0gLTE7CisgICAgICAgIHN0cmluZ3M6CisgICAgICAgIGlmIChzdHJpbmdzLnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICBjaGFyIGZpcnN0Q2hhciA9IHRleHQuY2hhckF0KG9mZnNldCk7CisgICAgICAgICAgICBTdHJpbmcgdHJpYWwgPSBudWxsOworICAgICAgICAgICAgLy8gZmluZCB0aGUgZmlyc3Qgc3RyaW5nIHN0YXJ0aW5nIHdpdGggZmlyc3RDaGFyCisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHN0cmluZ3MuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICB0cmlhbCA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBjaGFyIGZpcnN0U3RyaW5nQ2hhciA9IHRyaWFsLmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RTdHJpbmdDaGFyIDwgZmlyc3RDaGFyKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RTdHJpbmdDaGFyID4gZmlyc3RDaGFyKSBicmVhayBzdHJpbmdzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gbm93IGtlZXAgY2hlY2tpbmcgc3RyaW5nIHVudGlsIHdlIGdldCB0aGUgbG9uZ2VzdCBvbmUKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXBMZW4gPSBDb2xsZWN0aW9uVXRpbGl0aWVzLm1hdGNoZXNBdCh0ZXh0LCBvZmZzZXQsIHRyaWFsKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuID4gdGVtcExlbikgYnJlYWsgc3RyaW5nczsKKyAgICAgICAgICAgICAgICBsZW4gPSB0ZW1wTGVuOworICAgICAgICAgICAgICAgIGlmICghaXQuaGFzTmV4dCgpKSBicmVhazsKKyAgICAgICAgICAgICAgICB0cmlhbCA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAobGVuIDwgMikgeworICAgICAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHRleHQsIG9mZnNldCk7CisgICAgICAgICAgICBpZiAoY29udGFpbnMoY3ApKSB7CisgICAgICAgICAgICAgICAgbGVuID0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2Zmc2V0K2xlbjsKKyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIgQVBJLiAgVW5pb24gdGhlIHNldCBvZiBhbGwKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1hdGNoZWQgYnkgdGhpcyBvYmplY3QgaW50byB0aGUgZ2l2ZW4KKyAgICAgKiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIHNvdXJjZSBjaGFyYWN0ZXJzCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICB0b1VuaW9uVG8uYWRkQWxsKHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIgd2l0aGluIHRoaXMgc2V0LCB3aGVyZQorICAgICAqIHRoZSBzZXQgaXMgb3JkZXJlZCBieSBhc2NlbmRpbmcgY29kZSBwb2ludC4gIElmIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBpcyBub3QgaW4gdGhpcyBzZXQsIHJldHVybiAtMS4gIFRoZSBpbnZlcnNlIG9mIHRoaXMgbWV0aG9kIGlzCisgICAgICogPGNvZGU+Y2hhckF0KCk8L2NvZGU+LgorICAgICAqIEByZXR1cm4gYW4gaW5kZXggZnJvbSAwLi5zaXplKCktMSwgb3IgLTEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGluZGV4T2YoaW50IGMpIHsKKyAgICAgICAgaWYgKGMgPCBNSU5fVkFMVUUgfHwgYyA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGMsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gbGlzdFtpKytdOworICAgICAgICAgICAgaWYgKGMgPCBzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsaW1pdCA9IGxpc3RbaSsrXTsKKyAgICAgICAgICAgIGlmIChjIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbiArIGMgLSBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG4gKz0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGUgZ2l2ZW4gaW5kZXggd2l0aGluIHRoaXMgc2V0LCB3aGVyZQorICAgICAqIHRoZSBzZXQgaXMgb3JkZXJlZCBieSBhc2NlbmRpbmcgY29kZSBwb2ludC4gIElmIHRoZSBpbmRleCBpcworICAgICAqIG91dCBvZiByYW5nZSwgcmV0dXJuIC0xLiAgVGhlIGludmVyc2Ugb2YgdGhpcyBtZXRob2QgaXMKKyAgICAgKiA8Y29kZT5pbmRleE9mKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBpbmRleCBhbiBpbmRleCBmcm9tIDAuLnNpemUoKS0xCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBnaXZlbiBpbmRleCwgb3IgLTEuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBjaGFyQXQoaW50IGluZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CisgICAgICAgICAgICAvLyBsZW4yIGlzIHRoZSBsYXJnZXN0IGV2ZW4gaW50ZWdlciA8PSBsZW4sIHRoYXQgaXMsIGl0IGlzIGxlbgorICAgICAgICAgICAgLy8gZm9yIGV2ZW4gdmFsdWVzIGFuZCBsZW4tMSBmb3Igb2RkIHZhbHVlcy4gIFdpdGggb2RkIHZhbHVlcworICAgICAgICAgICAgLy8gdGhlIGxhc3QgZW50cnkgaXMgVU5JQ09ERVNFVF9ISUdILgorICAgICAgICAgICAgaW50IGxlbjIgPSBsZW4gJiB+MTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGxlbjI7KSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gbGlzdFtpKytdOworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IGxpc3RbaSsrXSAtIHN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGFydCArIGluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmRleCAtPSBjb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyB0aGUgc3BlY2lmaWVkIHJhbmdlIHRvIHRoaXMgc2V0IGlmIGl0IGlzIG5vdCBhbHJlYWR5CisgICAgICogcHJlc2VudC4gIElmIHRoaXMgc2V0IGFscmVhZHkgY29udGFpbnMgdGhlIHNwZWNpZmllZCByYW5nZSwKKyAgICAgKiB0aGUgY2FsbCBsZWF2ZXMgdGhpcyBzZXQgdW5jaGFuZ2VkLiAgSWYgPGNvZGU+ZW5kID4gc3RhcnQ8L2NvZGU+CisgICAgICogdGhlbiBhbiBlbXB0eSByYW5nZSBpcyBhZGRlZCwgbGVhdmluZyB0aGUgc2V0IHVuY2hhbmdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgYWRkZWQKKyAgICAgKiB0byB0aGlzIHNldC4KKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIGFkZGVkCisgICAgICogdG8gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYWRkKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXR1cm4gYWRkX3VuY2hlY2tlZChzdGFydCwgZW5kKTsKKyAgICB9CisgICAgCisgICAgLy8gZm9yIGludGVybmFsIHVzZSwgYWZ0ZXIgY2hlY2tGcm96ZW4gaGFzIGJlZW4gY2FsbGVkCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGFkZF91bmNoZWNrZWQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPCBlbmQpIHsKKyAgICAgICAgICAgIGFkZChyYW5nZShzdGFydCwgZW5kKSwgMiwgMCk7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQgPT0gZW5kKSB7CisgICAgICAgICAgICBhZGQoc3RhcnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworLy8gICAgLyoqCisvLyAgICAgKiBGb3JtYXQgb3V0IHRoZSBpbnZlcnNpb24gbGlzdCBhcyBhIHN0cmluZywgZm9yIGRlYnVnZ2luZy4gIFVuY29tbWVudCB3aGVuCisvLyAgICAgKiBuZWVkZWQuCisvLyAgICAgKi8KKy8vICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZHVtcCgpIHsKKy8vICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiWyIpOworLy8gICAgICAgIGZvciAoaW50IGk9MDsgaTxsZW47ICsraSkgeworLy8gICAgICAgICAgICBpZiAoaSAhPSAwKSBidWYuYXBwZW5kKCIsICIpOworLy8gICAgICAgICAgICBpbnQgYyA9IGxpc3RbaV07CisvLyAgICAgICAgICAgIC8vaWYgKGMgPD0gMHg3RiAmJiBjICE9ICdcbicgJiYgYyAhPSAnXHInICYmIGMgIT0gJ1x0JyAmJiBjICE9ICcgJykgeworLy8gICAgICAgICAgICAvLyAgICBidWYuYXBwZW5kKChjaGFyKSBjKTsKKy8vICAgICAgICAgICAgLy99IGVsc2UgeworLy8gICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiVSsiKS5hcHBlbmQoVXRpbGl0eS5oZXgoYywgKGM8MHgxMDAwMCk/NDo2KSk7CisvLyAgICAgICAgICAgIC8vfQorLy8gICAgICAgIH0KKy8vICAgICAgICBidWYuYXBwZW5kKCJdIik7CisvLyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworLy8gICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciB0byB0aGlzIHNldCBpZiBpdCBpcyBub3QgYWxyZWFkeQorICAgICAqIHByZXNlbnQuICBJZiB0aGlzIHNldCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyLAorICAgICAqIHRoZSBjYWxsIGxlYXZlcyB0aGlzIHNldCB1bmNoYW5nZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgYWRkKGludCBjKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIHJldHVybiBhZGRfdW5jaGVja2VkKGMpOworICAgIH0KKyAgICAKKyAgICAvLyBmb3IgaW50ZXJuYWwgdXNlIG9ubHksIGFmdGVyIGNoZWNrRnJvemVuIGhhcyBiZWVuIGNhbGxlZAorICAgIHByaXZhdGUgZmluYWwgVW5pY29kZVNldCBhZGRfdW5jaGVja2VkKGludCBjKSB7CisgICAgICAgIGlmIChjIDwgTUlOX1ZBTFVFIHx8IGMgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChjLCA2KSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5kIHNtYWxsZXN0IGkgc3VjaCB0aGF0IGMgPCBsaXN0W2ldCisgICAgICAgIC8vIGlmIG9kZCwgdGhlbiBpdCBpcyBJTiB0aGUgc2V0CisgICAgICAgIC8vIGlmIGV2ZW4sIHRoZW4gaXQgaXMgT1VUIG9mIHRoZSBzZXQKKyAgICAgICAgaW50IGkgPSBmaW5kQ29kZVBvaW50KGMpOworCisgICAgICAgIC8vIGFscmVhZHkgaW4gc2V0PworICAgICAgICBpZiAoKGkgJiAxKSAhPSAwKSByZXR1cm4gdGhpczsKKworICAgICAgICAvLyBISUdIIGlzIDB4MTEwMDAwCisgICAgICAgIC8vIGFzc2VydChsaXN0W2xlbi0xXSA9PSBISUdIKTsKKworICAgICAgICAvLyBlbXB0eSA9IFtISUdIXQorICAgICAgICAvLyBbc3RhcnRfMCwgbGltaXRfMCwgc3RhcnRfMSwgbGltaXRfMSwgSElHSF0KKworICAgICAgICAvLyBbLi4uLCBzdGFydF9rLTEsIGxpbWl0X2stMSwgc3RhcnRfaywgbGltaXRfaywgLi4uLCBISUdIXQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFtpXQorCisgICAgICAgIC8vIGkgPT0gMCBtZWFucyBjIGlzIGJlZm9yZSB0aGUgZmlyc3QgcmFuZ2UKKworICAgICAgICBpZiAoYyA9PSBsaXN0W2ldLTEpIHsKKyAgICAgICAgICAgIC8vIGMgaXMgYmVmb3JlIHN0YXJ0IG9mIG5leHQgcmFuZ2UKKyAgICAgICAgICAgIGxpc3RbaV0gPSBjOworICAgICAgICAgICAgLy8gaWYgd2UgdG91Y2hlZCB0aGUgSElHSCBtYXJrLCB0aGVuIGFkZCBhIG5ldyBvbmUKKyAgICAgICAgICAgIGlmIChjID09IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIGVuc3VyZUNhcGFjaXR5KGxlbisxKTsKKyAgICAgICAgICAgICAgICBsaXN0W2xlbisrXSA9IEhJR0g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA+IDAgJiYgYyA9PSBsaXN0W2ktMV0pIHsKKyAgICAgICAgICAgICAgICAvLyBjb2xsYXBzZSBhZGphY2VudCByYW5nZXMKKworICAgICAgICAgICAgICAgIC8vIFsuLi4sIHN0YXJ0X2stMSwgYywgYywgbGltaXRfaywgLi4uLCBISUdIXQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgbGlzdFtpXQorICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgaSsxLCBsaXN0LCBpLTEsIGxlbi1pLTEpOworICAgICAgICAgICAgICAgIGxlbiAtPSAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzZSBpZiAoaSA+IDAgJiYgYyA9PSBsaXN0W2ktMV0pIHsKKyAgICAgICAgICAgIC8vIGMgaXMgYWZ0ZXIgZW5kIG9mIHByaW9yIHJhbmdlCisgICAgICAgICAgICBsaXN0W2ktMV0rKzsKKyAgICAgICAgICAgIC8vIG5vIG5lZWQgdG8gY2hjZWsgZm9yIGNvbGxhcHNlIGhlcmUKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoZSBuZXcgY2hhciBpcyBub3QgYWRqYWNlbnQgdG8KKyAgICAgICAgICAgIC8vIGFueSBleGlzdGluZyByYW5nZXMsIGFuZCBpdCBpcyBub3QgMTBGRkZGLgorCisKKyAgICAgICAgICAgIC8vIFsuLi4sIHN0YXJ0X2stMSwgbGltaXRfay0xLCBzdGFydF9rLCBsaW1pdF9rLCAuLi4sIEhJR0hdCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RbaV0KKworICAgICAgICAgICAgLy8gWy4uLiwgc3RhcnRfay0xLCBsaW1pdF9rLTEsIGMsIGMrMSwgc3RhcnRfaywgbGltaXRfaywgLi4uLCBISUdIXQorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0W2ldCisKKyAgICAgICAgICAgIC8vIERvbid0IHVzZSBlbnN1cmVDYXBhY2l0eSgpIHRvIHNhdmUgb24gY29weWluZy4KKyAgICAgICAgICAgIC8vIE5PVEU6IFRoaXMgaGFzIG5vIG1lYXN1cmFibGUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlLAorICAgICAgICAgICAgLy8gYnV0IGl0IG1pZ2h0IGhlbHAgaW4gc29tZSB1c2FnZSBwYXR0ZXJucy4KKyAgICAgICAgICAgIGlmIChsZW4rMiA+IGxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbbGVuICsgMiArIEdST1dfRVhUUkFdOworICAgICAgICAgICAgICAgIGlmIChpICE9IDApIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgMCwgdGVtcCwgMCwgaSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCBpLCB0ZW1wLCBpKzIsIGxlbi1pKTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gdGVtcDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCBpLCBsaXN0LCBpKzIsIGxlbi1pKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGlzdFtpXSA9IGM7CisgICAgICAgICAgICBsaXN0W2krMV0gPSBjKzE7CisgICAgICAgICAgICBsZW4gKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgdGhlIHNwZWNpZmllZCBtdWx0aWNoYXJhY3RlciB0byB0aGlzIHNldCBpZiBpdCBpcyBub3QgYWxyZWFkeQorICAgICAqIHByZXNlbnQuICBJZiB0aGlzIHNldCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBtdWx0aWNoYXJhY3RlciwKKyAgICAgKiB0aGUgY2FsbCBsZWF2ZXMgdGhpcyBzZXQgdW5jaGFuZ2VkLgorICAgICAqIFRodXMgImNoIiA9PiB7ImNoIn0KKyAgICAgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGFkZChTdHJpbmcgcykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpbnQgY3AgPSBnZXRTaW5nbGVDUChzKTsKKyAgICAgICAgaWYgKGNwIDwgMCkgeworICAgICAgICAgICAgc3RyaW5ncy5hZGQocyk7CisgICAgICAgICAgICBwYXQgPSBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChjcCwgY3ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgdGhlIHBhdHRlcm4gdXNlZCB0byBjcmVhdGUgdGhpcyBzZXQsIGlmIHRoZXJlIHdhcyBvbmUuIFRoZSBlZmZlY3QKKyAgICAgKiBvZiB0aGlzIGlzIHRoYXQgdGhlIG5leHQgdGltZSB0aGF0IHRvU3RyaW5nKCkgb3IgdG9QYXR0ZXJuKCkgaXMgY2FsbGVkLAorICAgICAqIHRoZSBwYXR0ZXJuIHdpbGwgYmUgY29uc3RydWN0ZWQuIFRodXM6CisgICAgICogPHByZT4KKyAgICAgKiBTeXN0ZW0ub3V0LnByaW50bG4obmV3IFVuaWNvZGVTZXQoJnF1b3Q7Wzp3aGl0ZXNwYWNlOl0mcXVvdDspKTsKKyAgICAgKiBTeXN0ZW0ub3V0LnByaW50bG4obmV3IFVuaWNvZGVTZXQoJnF1b3Q7Wzp3aGl0ZXNwYWNlOl0mcXVvdDspLmNsZWFyUGF0dGVybigpKTsKKyAgICAgKiA8L3ByZT4KKyAgICAgKiBwcm9kdWNlczoKKyAgICAgKiA8cHJlPgorICAgICAqIFs6d2hpdGVzcGFjZTpdCisgICAgICogW1xcdTAwMDktXFx1MDA4NVxcdTAwQTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwXQorICAgICAqIDwvcHJlPgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0CisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgY2xlYXJQYXR0ZXJuKCkgeworICAgICAgcGF0ID0gbnVsbDsKKyAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gYSBjb2RlIHBvaW50IElGIHRoZSBzdHJpbmcgY29uc2lzdHMgb2YgYSBzaW5nbGUgb25lLgorICAgICAqIG90aGVyd2lzZSByZXR1cm5zIC0xLgorICAgICAqIEBwYXJhbSBzdHJpbmcgdG8gdGVzdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTaW5nbGVDUChTdHJpbmcgcykgeworICAgICAgICBpZiAocy5sZW5ndGgoKSA8IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbid0IHVzZSB6ZXJvLWxlbmd0aCBzdHJpbmdzIGluIFVuaWNvZGVTZXQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDIpIHJldHVybiAtMTsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMSkgcmV0dXJuIHMuY2hhckF0KDApOworCisgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIGxlbiA9IDIKKyAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHMsIDApOworICAgICAgICBpZiAoY3AgPiAweEZGRkYpIHsgLy8gaXMgc3Vycm9nYXRlIHBhaXIKKyAgICAgICAgICAgIHJldHVybiBjcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBlYWNoIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nIHRvIHRoZSBzZXQuIFRodXMgImNoIiA9PiB7ImMiLCAiaCJ9CisgICAgICogSWYgdGhpcyBzZXQgYWxyZWFkeSBhbnkgcGFydGljdWxhciBjaGFyYWN0ZXIsIGl0IGhhcyBubyBlZmZlY3Qgb24gdGhhdCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHMgdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBhZGRBbGwoU3RyaW5nIHMpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBhZGRfdW5jaGVja2VkKGNwLCBjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0YWlucyBFQUNIIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nLiBOb3RlOiAiY2giID09IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbkFsbChTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gcmV0YWluQWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnQgRUFDSCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZy4gTm90ZTogImNoIiA9PSB7ImMiLCAiaCJ9CisgICAgICogSWYgdGhpcyBzZXQgYWxyZWFkeSBhbnkgcGFydGljdWxhciBjaGFyYWN0ZXIsIGl0IGhhcyBubyBlZmZlY3Qgb24gdGhhdCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHMgdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBjb21wbGVtZW50QWxsKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBjb21wbGVtZW50QWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBFQUNIIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nLiBOb3RlOiAiY2giID09IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZUFsbChTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gcmVtb3ZlQWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2VzIGEgc2V0IGZyb20gYSBtdWx0aWNoYXJhY3RlciBzdHJpbmcuIFRodXMgImNoIiA9PiB7ImNoIn0KKyAgICAgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgZnJvbShTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoKS5hZGQocyk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBNYWtlcyBhIHNldCBmcm9tIGVhY2ggb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZy4gVGh1cyAiY2giID0+IHsiYyIsICJoIn0KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiBjaGFyYWN0ZXJzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGZyb21BbGwoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KCkuYWRkQWxsKHMpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0YWluIG9ubHkgdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0IHRoYXQgYXJlIGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcmFuZ2UuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4gdGhlbiBhbiBlbXB0eSByYW5nZSBpcworICAgICAqIHJldGFpbmVkLCBsZWF2aW5nIHRoZSBzZXQgZW1wdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJldGFpbmVkCisgICAgICogdG8gdGhpcyBzZXQuCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSByZXRhaW5lZAorICAgICAqIHRvIHRoaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHJldGFpbihpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8PSBlbmQpIHsKKyAgICAgICAgICAgIHJldGFpbihyYW5nZShzdGFydCwgZW5kKSwgMiwgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjbGVhcigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldGFpbiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBmcm9tIHRoaXMgc2V0IGlmIGl0IGlzIHByZXNlbnQuCisgICAgICogVXBvbiByZXR1cm4gdGhpcyBzZXQgd2lsbCBiZSBlbXB0eSBpZiBpdCBkaWQgbm90IGNvbnRhaW4gYywgb3IKKyAgICAgKiB3aWxsIG9ubHkgY29udGFpbiBjIGlmIGl0IGRpZCBjb250YWluIGMuCisgICAgICogQHBhcmFtIGMgdGhlIGNoYXJhY3RlciB0byBiZSByZXRhaW5lZAorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbihpbnQgYykgeworICAgICAgICByZXR1cm4gcmV0YWluKGMsIGMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldGFpbiB0aGUgc3BlY2lmaWVkIHN0cmluZyBpbiB0aGlzIHNldCBpZiBpdCBpcyBwcmVzZW50LgorICAgICAqIFVwb24gcmV0dXJuIHRoaXMgc2V0IHdpbGwgYmUgZW1wdHkgaWYgaXQgZGlkIG5vdCBjb250YWluIHMsIG9yCisgICAgICogd2lsbCBvbmx5IGNvbnRhaW4gcyBpZiBpdCBkaWQgY29udGFpbiBzLgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gYmUgcmV0YWluZWQKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCByZXRhaW4oU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNJbiA9IHN0cmluZ3MuY29udGFpbnMocyk7CisgICAgICAgICAgICBpZiAoaXNJbiAmJiBzaXplKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgIHN0cmluZ3MuYWRkKHMpOworICAgICAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldGFpbihjcCwgY3ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCByYW5nZSBmcm9tIHRoaXMgc2V0IGlmIGl0IGlzIHByZXNlbnQuCisgICAgICogVGhlIHNldCB3aWxsIG5vdCBjb250YWluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb25jZSB0aGUgY2FsbAorICAgICAqIHJldHVybnMuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4gdGhlbiBhbiBlbXB0eSByYW5nZSBpcworICAgICAqIHJlbW92ZWQsIGxlYXZpbmcgdGhlIHNldCB1bmNoYW5nZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJlbW92ZWQKKyAgICAgKiBmcm9tIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmVtb3ZlZAorICAgICAqIGZyb20gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgcmVtb3ZlKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAoc3RhcnQgPCBNSU5fVkFMVUUgfHwgc3RhcnQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChzdGFydCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmQgPCBNSU5fVkFMVUUgfHwgZW5kID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoZW5kLCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDw9IGVuZCkgeworICAgICAgICAgICAgcmV0YWluKHJhbmdlKHN0YXJ0LCBlbmQpLCAyLCAyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIGZyb20gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBUaGUgc2V0IHdpbGwgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgb25jZSB0aGUgY2FsbAorICAgICAqIHJldHVybnMuCisgICAgICogQHBhcmFtIGMgdGhlIGNoYXJhY3RlciB0byBiZSByZW1vdmVkCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmVtb3ZlKGludCBjKSB7CisgICAgICAgIHJldHVybiByZW1vdmUoYywgYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIHN0cmluZyBmcm9tIHRoaXMgc2V0IGlmIGl0IGlzIHByZXNlbnQuCisgICAgICogVGhlIHNldCB3aWxsIG5vdCBjb250YWluIHRoZSBzcGVjaWZpZWQgc3RyaW5nIG9uY2UgdGhlIGNhbGwKKyAgICAgKiByZXR1cm5zLgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gYmUgcmVtb3ZlZAorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZShTdHJpbmcgcykgeworICAgICAgICBpbnQgY3AgPSBnZXRTaW5nbGVDUChzKTsKKyAgICAgICAgaWYgKGNwIDwgMCkgeworICAgICAgICAgICAgc3RyaW5ncy5yZW1vdmUocyk7CisgICAgICAgICAgICBwYXQgPSBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVtb3ZlKGNwLCBjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGxlbWVudHMgdGhlIHNwZWNpZmllZCByYW5nZSBpbiB0aGlzIHNldC4gIEFueSBjaGFyYWN0ZXIgaW4KKyAgICAgKiB0aGUgcmFuZ2Ugd2lsbCBiZSByZW1vdmVkIGlmIGl0IGlzIGluIHRoaXMgc2V0LCBvciB3aWxsIGJlCisgICAgICogYWRkZWQgaWYgaXQgaXMgbm90IGluIHRoaXMgc2V0LiAgSWYgPGNvZGU+ZW5kID4gc3RhcnQ8L2NvZGU+CisgICAgICogdGhlbiBhbiBlbXB0eSByYW5nZSBpcyBjb21wbGVtZW50ZWQsIGxlYXZpbmcgdGhlIHNldCB1bmNoYW5nZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJlbW92ZWQKKyAgICAgKiBmcm9tIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmVtb3ZlZAorICAgICAqIGZyb20gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcGxlbWVudChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8PSBlbmQpIHsKKyAgICAgICAgICAgIHhvcihyYW5nZShzdGFydCwgZW5kKSwgMiwgMCk7CisgICAgICAgIH0KKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGxlbWVudHMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgaW4gdGhpcyBzZXQuICBUaGUgY2hhcmFjdGVyCisgICAgICogd2lsbCBiZSByZW1vdmVkIGlmIGl0IGlzIGluIHRoaXMgc2V0LCBvciB3aWxsIGJlIGFkZGVkIGlmIGl0IGlzCisgICAgICogbm90IGluIHRoaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGNvbXBsZW1lbnQoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBsZW1lbnQoYywgYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPGNvZGU+Y29tcGxlbWVudChNSU5fVkFMVUUsIE1BWF9WQUxVRSk8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGNvbXBsZW1lbnQoKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGlmIChsaXN0WzBdID09IExPVykgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCAxLCBsaXN0LCAwLCBsZW4tMSk7CisgICAgICAgICAgICAtLWxlbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVuc3VyZUNhcGFjaXR5KGxlbisxKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgMCwgbGlzdCwgMSwgbGVuKTsKKyAgICAgICAgICAgIGxpc3RbMF0gPSBMT1c7CisgICAgICAgICAgICArK2xlbjsKKyAgICAgICAgfQorICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wbGVtZW50IHRoZSBzcGVjaWZpZWQgc3RyaW5nIGluIHRoaXMgc2V0LgorICAgICAqIFRoZSBzZXQgd2lsbCBub3QgY29udGFpbiB0aGUgc3BlY2lmaWVkIHN0cmluZyBvbmNlIHRoZSBjYWxsCisgICAgICogcmV0dXJucy4KKyAgICAgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc3RyaW5nIHRvIGNvbXBsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBjb21wbGVtZW50KFN0cmluZyBzKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGludCBjcCA9IGdldFNpbmdsZUNQKHMpOworICAgICAgICBpZiAoY3AgPCAwKSB7CisgICAgICAgICAgICBpZiAoc3RyaW5ncy5jb250YWlucyhzKSkgc3RyaW5ncy5yZW1vdmUocyk7CisgICAgICAgICAgICBlbHNlIHN0cmluZ3MuYWRkKHMpOworICAgICAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvbXBsZW1lbnQoY3AsIGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gYyBjaGFyYWN0ZXIgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgIGlmIChjIDwgTUlOX1ZBTFVFIHx8IGMgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChjLCA2KSk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAvLyBTZXQgaSB0byB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IGl0ZW0gZ3JlYXRlciB0aGFuIGNoCisgICAgICAgIC8vIFdlIGtub3cgd2Ugd2lsbCB0ZXJtaW5hdGUgd2l0aG91dCBsZW5ndGggdGVzdCEKKyAgICAgICAgaW50IGkgPSAtMTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChjIDwgbGlzdFsrK2ldKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIGludCBpID0gZmluZENvZGVQb2ludChjKTsKKworICAgICAgICByZXR1cm4gKChpICYgMSkgIT0gMCk7IC8vIHJldHVybiB0cnVlIGlmIG9kZAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNtYWxsZXN0IHZhbHVlIGkgc3VjaCB0aGF0IGMgPCBsaXN0W2ldLiAgQ2FsbGVyCisgICAgICogbXVzdCBlbnN1cmUgdGhhdCBjIGlzIGEgbGVnYWwgdmFsdWUgb3IgdGhpcyBtZXRob2Qgd2lsbCBlbnRlcgorICAgICAqIGFuIGluZmluaXRlIGxvb3AuICBUaGlzIG1ldGhvZCBwZXJmb3JtcyBhIGJpbmFyeSBzZWFyY2guCisgICAgICogQHBhcmFtIGMgYSBjaGFyYWN0ZXIgaW4gdGhlIHJhbmdlIE1JTl9WQUxVRS4uTUFYX1ZBTFVFCisgICAgICogaW5jbHVzaXZlCisgICAgICogQHJldHVybiB0aGUgc21hbGxlc3QgaW50ZWdlciBpIGluIHRoZSByYW5nZSAwLi5sZW4tMSwKKyAgICAgKiBpbmNsdXNpdmUsIHN1Y2ggdGhhdCBjIDwgbGlzdFtpXQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGZpbmRDb2RlUG9pbnQoaW50IGMpIHsKKyAgICAgICAgLyogRXhhbXBsZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZENvZGVQb2ludChjKQorICAgICAgICAgICBzZXQgICAgICAgICAgICAgIGxpc3RbXSAgICAgICAgIGM9MCAxIDMgNCA3IDgKKyAgICAgICAgICAgPT09ICAgICAgICAgICAgICA9PT09PT09PT09PT09PSAgID09PT09PT09PT09CisgICAgICAgICAgIFtdICAgICAgICAgICAgICAgWzExMDAwMF0gICAgICAgICAwIDAgMCAwIDAgMAorICAgICAgICAgICBbXHUwMDAwLVx1MDAwM10gIFswLCA0LCAxMTAwMDBdICAgMSAxIDEgMiAyIDIKKyAgICAgICAgICAgW1x1MDAwNC1cdTAwMDddICBbNCwgOCwgMTEwMDAwXSAgIDAgMCAwIDEgMSAyCisgICAgICAgICAgIFs6YWxsOl0gICAgICAgICAgWzAsIDExMDAwMF0gICAgICAxIDEgMSAxIDEgMQorICAgICAgICAgKi8KKworICAgICAgICAvLyBSZXR1cm4gdGhlIHNtYWxsZXN0IGkgc3VjaCB0aGF0IGMgPCBsaXN0W2ldLiAgQXNzdW1lCisgICAgICAgIC8vIGxpc3RbbGVuIC0gMV0gPT0gSElHSCBhbmQgdGhhdCBjIGlzIGxlZ2FsICgwLi5ISUdILTEpLgorICAgICAgICBpZiAoYyA8IGxpc3RbMF0pIHJldHVybiAwOworICAgICAgICAvLyBIaWdoIHJ1bm5lciB0ZXN0LiAgYyBpcyBvZnRlbiBhZnRlciB0aGUgbGFzdCByYW5nZSwgc28gYW4KKyAgICAgICAgLy8gaW5pdGlhbCBjaGVjayBmb3IgdGhpcyBjb25kaXRpb24gcGF5cyBvZmYuCisgICAgICAgIGlmIChsZW4gPj0gMiAmJiBjID49IGxpc3RbbGVuLTJdKSByZXR1cm4gbGVuLTE7CisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCBoaSA9IGxlbiAtIDE7CisgICAgICAgIC8vIGludmFyaWFudDogYyA+PSBsaXN0W2xvXQorICAgICAgICAvLyBpbnZhcmlhbnQ6IGMgPCBsaXN0W2hpXQorICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpbnQgaSA9IChsbyArIGhpKSA+Pj4gMTsKKyAgICAgICAgICAgIGlmIChpID09IGxvKSByZXR1cm4gaGk7CisgICAgICAgICAgICBpZiAoYyA8IGxpc3RbaV0pIHsKKyAgICAgICAgICAgICAgICBoaSA9IGk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAvLyBVbnJvbGxlZCBiaW5hcnkgc2VhcmNoCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICBwcml2YXRlIGludCB2YWxpZExlbiA9IC0xOyAvLyB2YWxpZGF0ZWQgdmFsdWUgb2YgbGVuCisvLyAgICBwcml2YXRlIGludCB0b3BPZkxvdzsKKy8vICAgIHByaXZhdGUgaW50IHRvcE9mSGlnaDsKKy8vICAgIHByaXZhdGUgaW50IHBvd2VyOworLy8gICAgcHJpdmF0ZSBpbnQgZGVsdGFTdGFydDsKKy8vCisvLyAgICBwcml2YXRlIHZvaWQgdmFsaWRhdGUoKSB7CisvLyAgICAgICAgaWYgKGxlbiA8PSAxKSB7CisvLyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImxpc3QubGVuPT0iICsgbGVuICsgIjsgbXVzdCBiZSA+MSIpOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLy8gZmluZCBncmVhdGVzdCBwb3dlciBvZiAyIGxlc3MgdGhhbiBvciBlcXVhbCB0byBsZW4KKy8vICAgICAgICBmb3IgKHBvd2VyID0gZXhwMi5sZW5ndGgtMTsgcG93ZXIgPiAwICYmIGV4cDJbcG93ZXJdID4gbGVuOyBwb3dlci0tKSB7fQorLy8KKy8vICAgICAgICAvLyBhc3NlcnQoZXhwMltwb3dlcl0gPD0gbGVuKTsKKy8vCisvLyAgICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBzdGFydGluZyBwb2ludHMKKy8vICAgICAgICB0b3BPZkxvdyA9IGV4cDJbcG93ZXJdIC0gMTsKKy8vICAgICAgICB0b3BPZkhpZ2ggPSBsZW4gLSAxOworLy8gICAgICAgIGRlbHRhU3RhcnQgPSBleHAyW3Bvd2VyLTFdOworLy8gICAgICAgIHZhbGlkTGVuID0gbGVuOworLy8gICAgfQorLy8KKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBleHAyW10gPSB7CisvLyAgICAgICAgMHgxLCAweDIsIDB4NCwgMHg4LAorLy8gICAgICAgIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsCisvLyAgICAgICAgMHgxMDAsIDB4MjAwLCAweDQwMCwgMHg4MDAsCisvLyAgICAgICAgMHgxMDAwLCAweDIwMDAsIDB4NDAwMCwgMHg4MDAwLAorLy8gICAgICAgIDB4MTAwMDAsIDB4MjAwMDAsIDB4NDAwMDAsIDB4ODAwMDAsCisvLyAgICAgICAgMHgxMDAwMDAsIDB4MjAwMDAwLCAweDQwMDAwMCwgMHg4MDAwMDAsCisvLyAgICAgICAgMHgxMDAwMDAwLCAweDIwMDAwMDAsIDB4NDAwMDAwMCwgMHg4MDAwMDAwLAorLy8gICAgICAgIDB4MTAwMDAwMDAsIDB4MjAwMDAwMDAgLy8gLCAweDQwMDAwMDAwIC8vIG5vIHVuc2lnbmVkIGludCBpbiBKYXZhCisvLyAgICB9OworLy8KKy8vICAgIC8qKgorLy8gICAgICogVW5yb2xsZWQgbG93ZXN0IGluZGV4IEdULgorLy8gICAgICovCisvLyAgICBwcml2YXRlIGZpbmFsIGludCBsZWFzdEluZGV4R1QoaW50IHNlYXJjaFZhbHVlKSB7CisvLworLy8gICAgICAgIGlmIChsZW4gIT0gdmFsaWRMZW4pIHsKKy8vICAgICAgICAgICAgaWYgKGxlbiA9PSAxKSByZXR1cm4gMDsKKy8vICAgICAgICAgICAgdmFsaWRhdGUoKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgaW50IHRlbXA7CisvLworLy8gICAgICAgIC8vIHNldCB1cCBpbml0aWFsIHJhbmdlIHRvIHNlYXJjaC4gRWFjaCBzdWJyYW5nZSBpcyBhIHBvd2VyIG9mIHR3byBpbiBsZW5ndGgKKy8vICAgICAgICBpbnQgaGlnaCA9IHNlYXJjaFZhbHVlIDwgbGlzdFt0b3BPZkxvd10gPyB0b3BPZkxvdyA6IHRvcE9mSGlnaDsKKy8vCisvLyAgICAgICAgLy8gQ29tcGxldGVseSB1bnJvbGxlZCBiaW5hcnkgc2VhcmNoLCBmb2xoaWdoaW5nICJQcm9ncmFtbWluZyBQZWFybHMiCisvLyAgICAgICAgLy8gRWFjaCBjYXNlIGRlbGliZXJhdGVseSBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0CisvLyAgICAgICAgLy8gTG9naWNhbGx5LCBsaXN0Wy0xXSA8IGFsbF9zZWFyY2hfdmFsdWVzICYmIGxpc3RbY291bnRdID4gYWxsX3NlYXJjaF92YWx1ZXMKKy8vICAgICAgICAvLyBhbHRob3VnaCB0aGUgdmFsdWVzIC0xIGFuZCBjb3VudCBhcmUgbmV2ZXIgYWN0dWFsbHkgdG91Y2hlZC4KKy8vCisvLyAgICAgICAgLy8gVGhlIGJvdW5kcyBhdCBlYWNoIHBvaW50IGFyZSBsb3cgJiBoaWdoLAorLy8gICAgICAgIC8vIHdoZXJlIGxvdyA9PSBoaWdoIC0gZGVsdGEqMgorLy8gICAgICAgIC8vIHNvIGhpZ2ggLSBkZWx0YSBpcyB0aGUgbWlkcG9pbnQKKy8vCisvLyAgICAgICAgLy8gVGhlIGludmFyaWFudCBBRlRFUiBlYWNoIGxpbmUgaXMgdGhhdCBsaXN0W2xvd10gPCBzZWFyY2hWYWx1ZSA8PSBsaXN0W2hpZ2hdCisvLworLy8gICAgICAgIHN3aXRjaCAocG93ZXIpIHsKKy8vICAgICAgICAvL2Nhc2UgMzE6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtMHg0MDAwMDAwMF0pIGhpZ2ggPSB0ZW1wOyAvLyBubyB1bnNpZ25lZCBpbnQgaW4gSmF2YQorLy8gICAgICAgIGNhc2UgMzA6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtMHgyMDAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMjk6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtMHgxMDAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlIDI4OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDgwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDI3OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDQwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDI2OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDIwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDI1OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDEwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vCisvLyAgICAgICAgY2FzZSAyNDogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4ODAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAyMzogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4NDAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAyMjogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4MjAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAyMTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4MTAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLworLy8gICAgICAgIGNhc2UgMjA6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHg4MDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTk6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHg0MDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTg6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHgyMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTc6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHgxMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlIDE2OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDgwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDE1OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDQwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDE0OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDIwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDEzOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDEwMDBdKSBoaWdoID0gdGVtcDsKKy8vCisvLyAgICAgICAgY2FzZSAxMjogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4ODAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAxMTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4NDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAxMDogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4MjAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAgOTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4MTAwXSkgaGlnaCA9IHRlbXA7CisvLworLy8gICAgICAgIGNhc2UgIDg6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHg4MF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDc6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHg0MF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDY6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHgyMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDU6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHgxMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlICA0OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDhdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlICAzOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDRdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlICAyOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDJdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlICAxOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDFdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIHJldHVybiBoaWdoOworLy8gICAgfQorLy8KKy8vICAgIC8vIEZvciBkZWJ1Z2dpbmcgb25seQorLy8gICAgcHVibGljIGludCBsZW4oKSB7CisvLyAgICAgICAgcmV0dXJuIGxlbjsKKy8vICAgIH0KKy8vCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIGV2ZXJ5IGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBnaXZlbiByYW5nZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIC8vaW50IGkgPSAtMTsKKyAgICAgICAgLy93aGlsZSAodHJ1ZSkgeworICAgICAgICAvLyAgICBpZiAoc3RhcnQgPCBsaXN0WysraV0pIGJyZWFrOworICAgICAgICAvL30KKyAgICAgICAgaW50IGkgPSBmaW5kQ29kZVBvaW50KHN0YXJ0KTsKKyAgICAgICAgcmV0dXJuICgoaSAmIDEpICE9IDAgJiYgZW5kIDwgbGlzdFtpXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+IGlmIHRoaXMgc2V0IGNvbnRhaW5zIHRoZSBnaXZlbgorICAgICAqIG11bHRpY2hhcmFjdGVyIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIHNwZWNpZmllZCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWlucyhTdHJpbmcgcykgeworCisgICAgICAgIGludCBjcCA9IGdldFNpbmdsZUNQKHMpOworICAgICAgICBpZiAoY3AgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gc3RyaW5ncy5jb250YWlucyhzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjb250YWlucyhjcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgYWxsIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzCisgICAgICogb2YgdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gYyBzZXQgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zQWxsKFVuaWNvZGVTZXQgYikgeworICAgICAgLy8gVGhlIHNwZWNpZmllZCBzZXQgaXMgYSBzdWJzZXQgaWYgYWxsIG9mIGl0cyBwYWlycyBhcmUgY29udGFpbmVkIGluCisgICAgICAvLyB0aGlzIHNldC4gVGhpcyBpbXBsZW1lbnRhdGlvbiBhY2Nlc3NlcyB0aGUgbGlzdHMgZGlyZWN0bHkgZm9yIHNwZWVkLgorICAgICAgLy8gVE9ETzogdGhpcyBjb3VsZCBiZSBmYXN0ZXIgaWYgc2l6ZSgpIHdlcmUgY2FjaGVkLiBCdXQgdGhhdCB3b3VsZCBhZmZlY3QgYnVpbGRpbmcgc3BlZWQKKyAgICAgIC8vIHNvIGl0IG5lZWRzIGludmVzdGlnYXRpb24uCisgICAgICBpbnRbXSBsaXN0QiA9IGIubGlzdDsKKyAgICAgIGJvb2xlYW4gbmVlZEEgPSB0cnVlOworICAgICAgYm9vbGVhbiBuZWVkQiA9IHRydWU7CisgICAgICBpbnQgYVB0ciA9IDA7CisgICAgICBpbnQgYlB0ciA9IDA7CisgICAgICBpbnQgYUxlbiA9IGxlbiAtIDE7CisgICAgICBpbnQgYkxlbiA9IGIubGVuIC0gMTsKKyAgICAgIGludCBzdGFydEEgPSAwLCBzdGFydEIgPSAwLCBsaW1pdEEgPSAwLCBsaW1pdEIgPSAwOworICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgLy8gZG91YmxlIGl0ZXJhdGlvbnMgYXJlIHN1Y2ggYSBwYWluLi4uCisgICAgICAgIGlmIChuZWVkQSkgeworICAgICAgICAgIGlmIChhUHRyID49IGFMZW4pIHsKKyAgICAgICAgICAgIC8vIHJhbiBvdXQgb2YgQS4gSWYgQiBpcyBhbHNvIGV4aGF1c3RlZCwgdGhlbiBicmVhazsKKyAgICAgICAgICAgIGlmIChuZWVkQiAmJiBiUHRyID49IGJMZW4pIHsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICAgIHN0YXJ0QSA9IGxpc3RbYVB0cisrXTsKKyAgICAgICAgICBsaW1pdEEgPSBsaXN0W2FQdHIrK107CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5lZWRCKSB7CisgICAgICAgICAgaWYgKGJQdHIgPj0gYkxlbikgeworICAgICAgICAgICAgLy8gcmFuIG91dCBvZiBCLiBTaW5jZSB3ZSBnb3QgdGhpcyBmYXIsIHdlIGhhdmUgYW4gQSBhbmQgd2UgYXJlIG9rIHNvIGZhcgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIHN0YXJ0QiA9IGxpc3RCW2JQdHIrK107CisgICAgICAgICAgbGltaXRCID0gbGlzdEJbYlB0cisrXTsKKyAgICAgICAgfQorICAgICAgICAvLyBpZiBCIGRvZXNuJ3Qgb3ZlcmxhcCBhbmQgaXMgZ3JlYXRlciB0aGFuIEEsIGdldCBuZXcgQQorICAgICAgICBpZiAoc3RhcnRCID49IGxpbWl0QSkgeworICAgICAgICAgIG5lZWRBID0gdHJ1ZTsKKyAgICAgICAgICBuZWVkQiA9IGZhbHNlOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIC8vIGlmIEIgaXMgd2hvbHkgY29udGFpbmVkIGluIEEsIHRoZW4gZ2V0IGEgbmV3IEIKKyAgICAgICAgaWYgKHN0YXJ0QiA+PSBzdGFydEEgJiYgbGltaXRCIDw9IGxpbWl0QSkgeworICAgICAgICAgIG5lZWRBID0gZmFsc2U7CisgICAgICAgICAgbmVlZEIgPSB0cnVlOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIC8vIGFsbCBvdGhlciBjb21iaW5hdGlvbnMgbWVhbiB3ZSBmYWlsCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKworICAgICAgaWYgKCFzdHJpbmdzLmNvbnRhaW5zQWxsKGIuc3RyaW5ncykpIHJldHVybiBmYWxzZTsKKyAgICAgIHJldHVybiB0cnVlOworICB9CisKKy8vICAgIC8qKgorLy8gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIGFsbCB0aGUgY2hhcmFjdGVycyBhbmQgc3RyaW5ncworLy8gICAgICogb2YgdGhlIGdpdmVuIHNldC4KKy8vICAgICAqIEBwYXJhbSBjIHNldCB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorLy8gICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKy8vICAgICAqIEBzdGFibGUgSUNVIDIuMAorLy8gICAgICovCisvLyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0FsbE9sZChVbmljb2RlU2V0IGMpIHsKKy8vICAgICAgICAvLyBUaGUgc3BlY2lmaWVkIHNldCBpcyBhIHN1YnNldCBpZiBhbGwgb2YgaXRzIHBhaXJzIGFyZSBjb250YWluZWQgaW4KKy8vICAgICAgICAvLyB0aGlzIHNldC4gIEl0J3MgcG9zc2libGUgdG8gY29kZSB0aGlzIG1vcmUgZWZmaWNpZW50bHkgaW4gdGVybXMgb2YKKy8vICAgICAgICAvLyBkaXJlY3QgbWFuaXB1bGF0aW9uIG9mIHRoZSBpbnZlcnNpb24gbGlzdHMgaWYgdGhlIG5lZWQgYXJpc2VzLgorLy8gICAgICAgIGludCBuID0gYy5nZXRSYW5nZUNvdW50KCk7CisvLyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworLy8gICAgICAgICAgICBpZiAoIWNvbnRhaW5zKGMuZ2V0UmFuZ2VTdGFydChpKSwgYy5nZXRSYW5nZUVuZChpKSkpIHsKKy8vICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgICAgICBpZiAoIXN0cmluZ3MuY29udGFpbnNBbGwoYy5zdHJpbmdzKSkgcmV0dXJuIGZhbHNlOworLy8gICAgICAgIHJldHVybiB0cnVlOworLy8gICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGEgcGFydGl0aW9uIG9mIHRoZSBzdHJpbmcgc3VjaCB0aGF0IHRoaXMgc2V0IGNvbnRhaW5zIGVhY2ggb2YgdGhlIHBhcnRpdGlvbmVkIHN0cmluZ3MuCisgICAgICogRm9yIGV4YW1wbGUsIGZvciB0aGUgVW5pY29kZSBzZXQgW2F7YmN9e2NkfV08YnI+CisgICAgICogY29udGFpbnNBbGwgaXMgdHJ1ZSBmb3IgZWFjaCBvZjogImEiLCAiYmMiLCAiImNkYmNhIjxicj4KKyAgICAgKiBjb250YWluc0FsbCBpcyBmYWxzZSBmb3IgZWFjaCBvZjogImFjYiIsICJiY2RhIiwgImJjeCI8YnI+CisgICAgICogQHBhcmFtIHMgc3RyaW5nIGNvbnRhaW5pbmcgY2hhcmFjdGVycyB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zQWxsKFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgaWYgKCFjb250YWlucyhjcCkpICB7CisgICAgICAgICAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbnNBbGwocywgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVjdXJzaXZlIHJvdXRpbmUgY2FsbGVkIGlmIHdlIGZhaWwgdG8gZmluZCBhIG1hdGNoIGluIGNvbnRhaW5zQWxsLCBhbmQgdGhlcmUgYXJlIHN0cmluZ3MKKyAgICAgKiBAcGFyYW0gcyBzb3VyY2Ugc3RyaW5nCisgICAgICogQHBhcmFtIGkgcG9pbnQgdG8gbWF0Y2ggdG8gdGhlIGVuZCBvbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBvaworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjb250YWluc0FsbChTdHJpbmcgcywgaW50IGkpIHsKKyAgICAgICAgaWYgKGkgPj0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaW50ICBjcD0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICBpZiAoY29udGFpbnMoY3ApICYmIGNvbnRhaW5zQWxsKHMsIGkrVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBJdGVyYXRvciBpdCA9IHN0cmluZ3MuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHNldFN0ciA9IChTdHJpbmcpaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKHMuc3RhcnRzV2l0aChzZXRTdHIsIGkpICYmICBjb250YWluc0FsbChzLCBpK3NldFN0ci5sZW5ndGgoKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gcmVnZXggcGF0dGVybiBlcXVpdmFsZW50IHRvIHRoaXMgVW5pY29kZVNldAorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UmVnZXhFcXVpdmFsZW50KCkgeworICAgICAgICBpZiAoc3RyaW5ncy5zaXplKCkgPT0gMCkgcmV0dXJuIHRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCIoPzoiKTsKKyAgICAgICAgX2dlbmVyYXRlUGF0dGVybihyZXN1bHQsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3wnKTsKKyAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIChTdHJpbmcpIGl0Lm5leHQoKSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIikiKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogb2YgdGhlIGdpdmVuIHJhbmdlLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zTm9uZShpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIGludCBpID0gLTE7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPCBsaXN0WysraV0pIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoKGkgJiAxKSA9PSAwICYmIGVuZCA8IGxpc3RbaV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBub25lIG9mIHRoZSBjaGFyYWN0ZXJzIG9yIHN0cmluZ3MgaW4gdGhpcyBVbmljb2RlU2V0IGFwcGVhcnMgaW4gdGhlIHN0cmluZy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBVbmljb2RlIHNldCBbYXtiY317Y2R9XTxicj4KKyAgICAgKiBjb250YWluc05vbmUgaXMgdHJ1ZSBmb3I6ICJ4eSIsICJjYiI8YnI+CisgICAgICogY29udGFpbnNOb25lIGlzIGZhbHNlIGZvcjogImEiLCAiYmMiLCAiYmNkIjxicj4KKyAgICAgKiBAcGFyYW0gYyBzZXQgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zTm9uZShVbmljb2RlU2V0IGIpIHsKKyAgICAgIC8vIFRoZSBzcGVjaWZpZWQgc2V0IGlzIGEgc3Vic2V0IGlmIHNvbWUgb2YgaXRzIHBhaXJzIG92ZXJsYXAgd2l0aCBzb21lIG9mIHRoaXMgc2V0J3MgcGFpcnMuCisgICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGFjY2Vzc2VzIHRoZSBsaXN0cyBkaXJlY3RseSBmb3Igc3BlZWQuCisgICAgICBpbnRbXSBsaXN0QiA9IGIubGlzdDsKKyAgICAgIGJvb2xlYW4gbmVlZEEgPSB0cnVlOworICAgICAgYm9vbGVhbiBuZWVkQiA9IHRydWU7CisgICAgICBpbnQgYVB0ciA9IDA7CisgICAgICBpbnQgYlB0ciA9IDA7CisgICAgICBpbnQgYUxlbiA9IGxlbiAtIDE7CisgICAgICBpbnQgYkxlbiA9IGIubGVuIC0gMTsKKyAgICAgIGludCBzdGFydEEgPSAwLCBzdGFydEIgPSAwLCBsaW1pdEEgPSAwLCBsaW1pdEIgPSAwOworICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgLy8gZG91YmxlIGl0ZXJhdGlvbnMgYXJlIHN1Y2ggYSBwYWluLi4uCisgICAgICAgIGlmIChuZWVkQSkgeworICAgICAgICAgIGlmIChhUHRyID49IGFMZW4pIHsKKyAgICAgICAgICAgIC8vIHJhbiBvdXQgb2YgQTogYnJlYWsgc28gd2UgdGVzdCBzdHJpbmdzCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgICAgc3RhcnRBID0gbGlzdFthUHRyKytdOworICAgICAgICAgIGxpbWl0QSA9IGxpc3RbYVB0cisrXTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmVlZEIpIHsKKyAgICAgICAgICBpZiAoYlB0ciA+PSBiTGVuKSB7CisgICAgICAgICAgICAvLyByYW4gb3V0IG9mIEI6IGJyZWFrIHNvIHdlIHRlc3Qgc3RyaW5ncworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIHN0YXJ0QiA9IGxpc3RCW2JQdHIrK107CisgICAgICAgICAgbGltaXRCID0gbGlzdEJbYlB0cisrXTsKKyAgICAgICAgfQorICAgICAgICAvLyBpZiBCIGlzIGhpZ2hlciB0aGFuIGFueSBwYXJ0IG9mIEEsIGdldCBuZXcgQQorICAgICAgICBpZiAoc3RhcnRCID49IGxpbWl0QSkgeworICAgICAgICAgIG5lZWRBID0gdHJ1ZTsKKyAgICAgICAgICBuZWVkQiA9IGZhbHNlOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIC8vIGlmIEEgaXMgaGlnaGVyIHRoYW4gYW55IHBhcnQgb2YgQiwgZ2V0IG5ldyBCCisgICAgICAgIGlmIChzdGFydEEgPj0gbGltaXRCKSB7CisgICAgICAgICAgbmVlZEEgPSBmYWxzZTsKKyAgICAgICAgICBuZWVkQiA9IHRydWU7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gYWxsIG90aGVyIGNvbWJpbmF0aW9ucyBtZWFuIHdlIGZhaWwKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorCisgICAgICBpZiAoIVNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKHN0cmluZ3MsIFNvcnRlZFNldFJlbGF0aW9uLkRJU0pPSU5ULCBiLnN0cmluZ3MpKSByZXR1cm4gZmFsc2U7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisvLyAgICAvKioKKy8vICAgICAqIFJldHVybnMgdHJ1ZSBpZiBub25lIG9mIHRoZSBjaGFyYWN0ZXJzIG9yIHN0cmluZ3MgaW4gdGhpcyBVbmljb2RlU2V0IGFwcGVhcnMgaW4gdGhlIHN0cmluZy4KKy8vICAgICAqIEZvciBleGFtcGxlLCBmb3IgdGhlIFVuaWNvZGUgc2V0IFthe2JjfXtjZH1dPGJyPgorLy8gICAgICogY29udGFpbnNOb25lIGlzIHRydWUgZm9yOiAieHkiLCAiY2IiPGJyPgorLy8gICAgICogY29udGFpbnNOb25lIGlzIGZhbHNlIGZvcjogImEiLCAiYmMiLCAiYmNkIjxicj4KKy8vICAgICAqIEBwYXJhbSBjIHNldCB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorLy8gICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKy8vICAgICAqIEBzdGFibGUgSUNVIDIuMAorLy8gICAgICovCisvLyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc05vbmVPbGQoVW5pY29kZVNldCBjKSB7CisvLyAgICAgICAgLy8gVGhlIHNwZWNpZmllZCBzZXQgaXMgYSBzdWJzZXQgaWYgYWxsIG9mIGl0cyBwYWlycyBhcmUgY29udGFpbmVkIGluCisvLyAgICAgICAgLy8gdGhpcyBzZXQuICBJdCdzIHBvc3NpYmxlIHRvIGNvZGUgdGhpcyBtb3JlIGVmZmljaWVudGx5IGluIHRlcm1zIG9mCisvLyAgICAgICAgLy8gZGlyZWN0IG1hbmlwdWxhdGlvbiBvZiB0aGUgaW52ZXJzaW9uIGxpc3RzIGlmIHRoZSBuZWVkIGFyaXNlcy4KKy8vICAgICAgICBpbnQgbiA9IGMuZ2V0UmFuZ2VDb3VudCgpOworLy8gICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKy8vICAgICAgICAgICAgaWYgKCFjb250YWluc05vbmUoYy5nZXRSYW5nZVN0YXJ0KGkpLCBjLmdldFJhbmdlRW5kKGkpKSkgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGlmICghU29ydGVkU2V0UmVsYXRpb24uaGFzUmVsYXRpb24oc3RyaW5ncywgU29ydGVkU2V0UmVsYXRpb24uRElTSk9JTlQsIGMuc3RyaW5ncykpIHJldHVybiBmYWxzZTsKKy8vICAgICAgICByZXR1cm4gdHJ1ZTsKKy8vICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgY29udGFpbmluZyBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc05vbmUoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoY29udGFpbnMoY3ApKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpID09IDApIHJldHVybiB0cnVlOworICAgICAgICAvLyBkbyBhIGxhc3QgY2hlY2sgdG8gbWFrZSBzdXJlIG5vIHN0cmluZ3MgYXJlIGluLgorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgIAlTdHJpbmcgaXRlbSA9IChTdHJpbmcpaXQubmV4dCgpOworICAgICAgICAJaWYgKHMuaW5kZXhPZihpdGVtKSA+PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogaW4gdGhlIGdpdmVuIHJhbmdlLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWluc1NvbWUoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHJldHVybiAhY29udGFpbnNOb25lKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBvbmUgb3IgbW9yZSBvZiB0aGUgY2hhcmFjdGVycworICAgICAqIGFuZCBzdHJpbmdzIG9mIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHMgc2V0IHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gY29udGFpbnNTb21lKFVuaWNvZGVTZXQgcykgeworICAgICAgICByZXR1cm4gIWNvbnRhaW5zTm9uZShzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqIEBwYXJhbSBzIHN0cmluZyBjb250YWluaW5nIGNoYXJhY3RlcnMgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWluc1NvbWUoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuICFjb250YWluc05vbmUocyk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIHNwZWNpZmllZCBzZXQgdG8gdGhpcyBzZXQgaWYKKyAgICAgKiB0aGV5J3JlIG5vdCBhbHJlYWR5IHByZXNlbnQuICBUaGlzIG9wZXJhdGlvbiBlZmZlY3RpdmVseQorICAgICAqIG1vZGlmaWVzIHRoaXMgc2V0IHNvIHRoYXQgaXRzIHZhbHVlIGlzIHRoZSA8aT51bmlvbjwvaT4gb2YgdGhlIHR3bworICAgICAqIHNldHMuICBUaGUgYmVoYXZpb3Igb2YgdGhpcyBvcGVyYXRpb24gaXMgdW5zcGVjaWZpZWQgaWYgdGhlIHNwZWNpZmllZAorICAgICAqIGNvbGxlY3Rpb24gaXMgbW9kaWZpZWQgd2hpbGUgdGhlIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjIHNldCB3aG9zZSBlbGVtZW50cyBhcmUgdG8gYmUgYWRkZWQgdG8gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYWRkQWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBhZGQoYy5saXN0LCBjLmxlbiwgMCk7CisgICAgICAgIHN0cmluZ3MuYWRkQWxsKGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldGFpbnMgb25seSB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgdGhhdCBhcmUgY29udGFpbmVkIGluIHRoZQorICAgICAqIHNwZWNpZmllZCBzZXQuICBJbiBvdGhlciB3b3JkcywgcmVtb3ZlcyBmcm9tIHRoaXMgc2V0IGFsbCBvZgorICAgICAqIGl0cyBlbGVtZW50cyB0aGF0IGFyZSBub3QgY29udGFpbmVkIGluIHRoZSBzcGVjaWZpZWQgc2V0LiAgVGhpcworICAgICAqIG9wZXJhdGlvbiBlZmZlY3RpdmVseSBtb2RpZmllcyB0aGlzIHNldCBzbyB0aGF0IGl0cyB2YWx1ZSBpcworICAgICAqIHRoZSA8aT5pbnRlcnNlY3Rpb248L2k+IG9mIHRoZSB0d28gc2V0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjIHNldCB0aGF0IGRlZmluZXMgd2hpY2ggZWxlbWVudHMgdGhpcyBzZXQgd2lsbCByZXRhaW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgcmV0YWluQWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXRhaW4oYy5saXN0LCBjLmxlbiwgMCk7CisgICAgICAgIHN0cmluZ3MucmV0YWluQWxsKGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgZnJvbSB0aGlzIHNldCBhbGwgb2YgaXRzIGVsZW1lbnRzIHRoYXQgYXJlIGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgc2V0LiAgVGhpcyBvcGVyYXRpb24gZWZmZWN0aXZlbHkgbW9kaWZpZXMgdGhpcworICAgICAqIHNldCBzbyB0aGF0IGl0cyB2YWx1ZSBpcyB0aGUgPGk+YXN5bW1ldHJpYyBzZXQgZGlmZmVyZW5jZTwvaT4gb2YKKyAgICAgKiB0aGUgdHdvIHNldHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgdGhhdCBkZWZpbmVzIHdoaWNoIGVsZW1lbnRzIHdpbGwgYmUgcmVtb3ZlZCBmcm9tCisgICAgICogICAgICAgICAgdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgcmVtb3ZlQWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXRhaW4oYy5saXN0LCBjLmxlbiwgMik7CisgICAgICAgIHN0cmluZ3MucmVtb3ZlQWxsKGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnRzIGluIHRoaXMgc2V0IGFsbCBlbGVtZW50cyBjb250YWluZWQgaW4gdGhlIHNwZWNpZmllZAorICAgICAqIHNldC4gIEFueSBjaGFyYWN0ZXIgaW4gdGhlIG90aGVyIHNldCB3aWxsIGJlIHJlbW92ZWQgaWYgaXQgaXMKKyAgICAgKiBpbiB0aGlzIHNldCwgb3Igd2lsbCBiZSBhZGRlZCBpZiBpdCBpcyBub3QgaW4gdGhpcyBzZXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgdGhhdCBkZWZpbmVzIHdoaWNoIGVsZW1lbnRzIHdpbGwgYmUgY29tcGxlbWVudGVkIGZyb20KKyAgICAgKiAgICAgICAgICB0aGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wbGVtZW50QWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICB4b3IoYy5saXN0LCBjLmxlbiwgMCk7CisgICAgICAgIFNvcnRlZFNldFJlbGF0aW9uLmRvT3BlcmF0aW9uKHN0cmluZ3MsIFNvcnRlZFNldFJlbGF0aW9uLkNPTVBMRU1FTlRBTEwsIGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYWxsIG9mIHRoZSBlbGVtZW50cyBmcm9tIHRoaXMgc2V0LiAgVGhpcyBzZXQgd2lsbCBiZQorICAgICAqIGVtcHR5IGFmdGVyIHRoaXMgY2FsbCByZXR1cm5zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGNsZWFyKCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBsaXN0WzBdID0gSElHSDsKKyAgICAgICAgbGVuID0gMTsKKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgc3RyaW5ncy5jbGVhcigpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRpb24gbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJhbmdlcyBjb250YWluZWQgaW4KKyAgICAgKiB0aGlzIHNldC4KKyAgICAgKiBAc2VlICNnZXRSYW5nZVN0YXJ0CisgICAgICogQHNlZSAjZ2V0UmFuZ2VFbmQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhbmdlQ291bnQoKSB7CisgICAgICAgIHJldHVybiBsZW4vMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRpb24gbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZQorICAgICAqIHNwZWNpZmllZCByYW5nZSBvZiB0aGlzIHNldC4KKyAgICAgKiBAZXhjZXB0aW9uIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBpbmRleCBpcyBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIDxjb2RlPjAuLmdldFJhbmdlQ291bnQoKS0xPC9jb2RlPgorICAgICAqIEBzZWUgI2dldFJhbmdlQ291bnQKKyAgICAgKiBAc2VlICNnZXRSYW5nZUVuZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmFuZ2VTdGFydChpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIGxpc3RbaW5kZXgqMl07CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0aW9uIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZQorICAgICAqIHNwZWNpZmllZCByYW5nZSBvZiB0aGlzIHNldC4KKyAgICAgKiBAZXhjZXB0aW9uIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBpbmRleCBpcyBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIDxjb2RlPjAuLmdldFJhbmdlQ291bnQoKS0xPC9jb2RlPgorICAgICAqIEBzZWUgI2dldFJhbmdlU3RhcnQKKyAgICAgKiBAc2VlICNnZXRSYW5nZUVuZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmFuZ2VFbmQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiAobGlzdFtpbmRleCoyICsgMV0gLSAxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFsbG9jYXRlIHRoaXMgb2JqZWN0cyBpbnRlcm5hbCBzdHJ1Y3R1cmVzIHRvIHRha2UgdXAgdGhlIGxlYXN0CisgICAgICogcG9zc2libGUgc3BhY2UsIHdpdGhvdXQgY2hhbmdpbmcgdGhpcyBvYmplY3QncyB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wYWN0KCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAobGVuICE9IGxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFtsZW5dOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCAwLCB0ZW1wLCAwLCBsZW4pOworICAgICAgICAgICAgbGlzdCA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgcmFuZ2VMaXN0ID0gbnVsbDsKKyAgICAgICAgYnVmZmVyID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHNwZWNpZmllZCBvYmplY3Qgd2l0aCB0aGlzIHNldCBmb3IgZXF1YWxpdHkuICBSZXR1cm5zCisgICAgICogPHR0PnRydWU8L3R0PiBpZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBpcyBhbHNvIGEgc2V0LCB0aGUgdHdvIHNldHMKKyAgICAgKiBoYXZlIHRoZSBzYW1lIHNpemUsIGFuZCBldmVyeSBtZW1iZXIgb2YgdGhlIHNwZWNpZmllZCBzZXQgaXMKKyAgICAgKiBjb250YWluZWQgaW4gdGhpcyBzZXQgKG9yIGVxdWl2YWxlbnRseSwgZXZlcnkgbWVtYmVyIG9mIHRoaXMgc2V0IGlzCisgICAgICogY29udGFpbmVkIGluIHRoZSBzcGVjaWZpZWQgc2V0KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvIE9iamVjdCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIDx0dD50cnVlPC90dD4gaWYgdGhlIHNwZWNpZmllZCBPYmplY3QgaXMgZXF1YWwgdG8gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IHRoYXQgPSAoVW5pY29kZVNldCkgbzsKKyAgICAgICAgICAgIGlmIChsZW4gIT0gdGhhdC5sZW4pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobGlzdFtpXSAhPSB0aGF0Lmxpc3RbaV0pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3RyaW5ncy5lcXVhbHModGhhdC5zdHJpbmdzKSkgcmV0dXJuIGZhbHNlOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhhc2ggY29kZSB2YWx1ZSBmb3IgdGhpcyBzZXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgc2V0LgorICAgICAqIEBzZWUgamF2YS5sYW5nLk9iamVjdCNoYXNoQ29kZSgpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IGxlbjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgcmVzdWx0ICo9IDEwMDAwMDM7CisgICAgICAgICAgICByZXN1bHQgKz0gbGlzdFtpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHByb2dyYW1tZXItcmVhZGFibGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiB0b1BhdHRlcm4odHJ1ZSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW1wbGVtZW50YXRpb246IFBhdHRlcm4gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBnaXZlbiBwYXR0ZXJuLCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uICBUaGUgY2hhcmFjdGVyCisgICAgICogYXQgcGF0dGVybi5jaGFyQXQocG9zLmdldEluZGV4KCkpIG11c3QgYmUgJ1snLCBvciB0aGUgcGFyc2UgZmFpbHMuCisgICAgICogUGFyc2luZyBjb250aW51ZXMgdW50aWwgdGhlIGNvcnJlc3BvbmRpbmcgY2xvc2luZyAnXScuICBJZiBhIHN5bnRheCBlcnJvcgorICAgICAqIGlzIGVuY291bnRlcmVkIGJldHdlZW4gdGhlIG9wZW5pbmcgYW5kIGNsb3NpbmcgYnJhY2UsIHRoZSBwYXJzZSBmYWlscy4KKyAgICAgKiBVcG9uIHJldHVybiBmcm9tIGEgc3VjY2Vzc2Z1bCBwYXJzZSwgdGhlIFBhcnNlUG9zaXRpb24gaXMgdXBkYXRlZCB0bworICAgICAqIHBvaW50IHRvIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBjbG9zaW5nICddJywgYW5kIGFuIGludmVyc2lvbgorICAgICAqIGxpc3QgZm9yIHRoZSBwYXJzZWQgcGF0dGVybiBpcyByZXR1cm5lZC4gIFRoaXMgbWV0aG9kCisgICAgICogY2FsbHMgaXRzZWxmIHJlY3Vyc2l2ZWx5IHRvIHBhcnNlIGVtYmVkZGVkIHN1YnBhdHRlcm5zLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHN0cmluZyBjb250YWluaW5nIHRoZSBwYXR0ZXJuIHRvIGJlIHBhcnNlZC4gIFRoZQorICAgICAqIHBvcnRpb24gb2YgdGhlIHN0cmluZyBmcm9tIHBvcy5nZXRJbmRleCgpLCB3aGljaCBtdXN0IGJlIGEgJ1snLCB0byB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIGNsb3NpbmcgJ10nLCBpcyBwYXJzZWQuCisgICAgICogQHBhcmFtIHBvcyB1cG9uIGVudHJ5LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gYmVpbmcgcGFyc2luZy4gIFRoZQorICAgICAqIGNoYXJhY3RlciBhdCBwYXR0ZXJuLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgbXVzdCBiZSBhICdbJy4gIFVwb24gcmV0dXJuCisgICAgICogZnJvbSBhIHN1Y2Nlc3NmdWwgcGFyc2UsIHBvcy5nZXRJbmRleCgpIGlzIGVpdGhlciB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZQorICAgICAqIGNsb3NpbmcgJ10nIG9mIHRoZSBwYXJzZWQgcGF0dGVybiwgb3IgcGF0dGVybi5sZW5ndGgoKSBpZiB0aGUgY2xvc2luZyAnXScKKyAgICAgKiBpcyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIEByZXR1cm4gYW4gaW52ZXJzaW9uIGxpc3QgZm9yIHRoZSBwYXJzZWQgc3Vic3RyaW5nCisgICAgICogb2YgPGNvZGU+cGF0dGVybjwvY29kZT4KKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhcnNlIGZhaWxzLgorICAgICAqLworICAgIFVuaWNvZGVTZXQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbFRhYmxlIHN5bWJvbHMsCisgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKworICAgICAgICAvLyBOZWVkIHRvIGJ1aWxkIHRoZSBwYXR0ZXJuIGluIGEgdGVtcG9yYXJ5IHN0cmluZyBiZWNhdXNlCisgICAgICAgIC8vIF9hcHBseVBhdHRlcm4gY2FsbHMgYWRkKCkgZXRjLiwgd2hpY2ggc2V0IHBhdCB0byBlbXB0eS4KKyAgICAgICAgYm9vbGVhbiBwYXJzZVBvc2l0aW9uV2FzTnVsbCA9IHBvcyA9PSBudWxsOworICAgICAgICBpZiAocGFyc2VQb3NpdGlvbldhc051bGwpIHsKKyAgICAgICAgICAgIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlYnVpbHRQYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBjaGFycyA9CisgICAgICAgICAgICBuZXcgUnVsZUNoYXJhY3Rlckl0ZXJhdG9yKHBhdHRlcm4sIHN5bWJvbHMsIHBvcyk7CisgICAgICAgIGFwcGx5UGF0dGVybihjaGFycywgc3ltYm9scywgcmVidWlsdFBhdCwgb3B0aW9ucyk7CisgICAgICAgIGlmIChjaGFycy5pblZhcmlhYmxlKCkpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiRXh0cmEgY2hhcnMgaW4gdmFyaWFibGUgdmFsdWUiKTsKKyAgICAgICAgfQorICAgICAgICBwYXQgPSByZWJ1aWx0UGF0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uV2FzTnVsbCkgeworICAgICAgICAgICAgaW50IGkgPSBwb3MuZ2V0SW5kZXgoKTsKKworICAgICAgICAgICAgLy8gU2tpcCBvdmVyIHRyYWlsaW5nIHdoaXRlc3BhY2UKKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIElHTk9SRV9TUEFDRSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGkgPSBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKHBhdHRlcm4sIGkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSAhPSBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUGFyc2Ugb2YgXCIiICsgcGF0dGVybiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgZmFpbGVkIGF0ICIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSB0aGUgcGF0dGVybiBmcm9tIHRoZSBnaXZlbiBSdWxlQ2hhcmFjdGVySXRlcmF0b3IuICBUaGUKKyAgICAgKiBpdGVyYXRvciBpcyBhZHZhbmNlZCBvdmVyIHRoZSBwYXJzZWQgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gY2hhcnMgaXRlcmF0b3Igb3ZlciB0aGUgcGF0dGVybiBjaGFyYWN0ZXJzLiAgVXBvbiByZXR1cm4KKyAgICAgKiBpdCB3aWxsIGJlIGFkdmFuY2VkIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHBhcnNlZAorICAgICAqIHBhdHRlcm4sIG9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiBpZiBhbGwgY2hhcmFjdGVycyBhcmUKKyAgICAgKiBwYXJzZWQuCisgICAgICogQHBhcmFtIHN5bWJvbHMgc3ltYm9sIHRhYmxlIHRvIHVzZSB0byBwYXJzZSBhbmQgZGVyZWZlcmVuY2UKKyAgICAgKiB2YXJpYWJsZXMsIG9yIG51bGwgaWYgbm9uZS4KKyAgICAgKiBAcGFyYW0gcmVidWlsdFBhdCB0aGUgcGF0dGVybiB0aGF0IHdhcyBwYXJzZWQsIHJlYnVpbHQgb3IKKyAgICAgKiBjb3BpZWQgZnJvbSB0aGUgaW5wdXQgcGF0dGVybiwgYXMgYXBwcm9wcmlhdGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgYSBiaXQgbWFzayBvZiB6ZXJvIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgKiBJR05PUkVfU1BBQ0UsIENBU0UuCisgICAgICovCisgICAgdm9pZCBhcHBseVBhdHRlcm4oUnVsZUNoYXJhY3Rlckl0ZXJhdG9yIGNoYXJzLCBTeW1ib2xUYWJsZSBzeW1ib2xzLAorICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZWJ1aWx0UGF0LCBpbnQgb3B0aW9ucykgeworCisgICAgICAgIC8vIFN5bnRheCBjaGFyYWN0ZXJzOiBbIF0gXiAtICYgeyB9CisKKyAgICAgICAgLy8gUmVjb2duaXplZCBzcGVjaWFsIGZvcm1zIGZvciBjaGFycywgc2V0czogYy1jIHMtcyBzJnMKKworICAgICAgICBpbnQgb3B0cyA9IFJ1bGVDaGFyYWN0ZXJJdGVyYXRvci5QQVJTRV9WQVJJQUJMRVMgfAorICAgICAgICAgICAgICAgICAgIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvci5QQVJTRV9FU0NBUEVTOworICAgICAgICBpZiAoKG9wdGlvbnMgJiBJR05PUkVfU1BBQ0UpICE9IDApIHsKKyAgICAgICAgICAgIG9wdHMgfD0gUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLlNLSVBfV0hJVEVTUEFDRTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ0J1ZmZlciBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCksIGJ1ZiA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gdXNlUGF0ID0gZmFsc2U7CisgICAgICAgIFVuaWNvZGVTZXQgc2NyYXRjaCA9IG51bGw7CisgICAgICAgIE9iamVjdCBiYWNrdXAgPSBudWxsOworCisgICAgICAgIC8vIG1vZGU6IDA9YmVmb3JlIFssIDE9YmV0d2VlbiBbLi4uXSwgMj1hZnRlciBdCisgICAgICAgIC8vIGxhc3RJdGVtOiAwPW5vbmUsIDE9Y2hhciwgMj1zZXQKKyAgICAgICAgaW50IGxhc3RJdGVtID0gMCwgbGFzdENoYXIgPSAwLCBtb2RlID0gMDsKKyAgICAgICAgY2hhciBvcCA9IDA7CisKKyAgICAgICAgYm9vbGVhbiBpbnZlcnQgPSBmYWxzZTsKKworICAgICAgICBjbGVhcigpOworCisgICAgICAgIHdoaWxlIChtb2RlICE9IDIgJiYgIWNoYXJzLmF0RW5kKCkpIHsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgIC8vIERlYnVnZ2luZyBhc3NlcnRpb24KKyAgICAgICAgICAgICAgICBpZiAoISgobGFzdEl0ZW0gPT0gMCAmJiBvcCA9PSAwKSB8fAorICAgICAgICAgICAgICAgICAgICAgIChsYXN0SXRlbSA9PSAxICYmIChvcCA9PSAwIHx8IG9wID09ICctJykpIHx8CisgICAgICAgICAgICAgICAgICAgICAgKGxhc3RJdGVtID09IDIgJiYgKG9wID09IDAgfHwgb3AgPT0gJy0nIHx8IG9wID09ICcmJykpKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgYyA9IDA7CisgICAgICAgICAgICBib29sZWFuIGxpdGVyYWwgPSBmYWxzZTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgbmVzdGVkID0gbnVsbDsKKworICAgICAgICAgICAgLy8gLS0tLS0tLS0gQ2hlY2sgZm9yIHByb3BlcnR5IHBhdHRlcm4KKworICAgICAgICAgICAgLy8gc2V0TW9kZTogMD1ub25lLCAxPXVuaWNvZGVzZXQsIDI9cHJvcGVydHlwYXQsIDM9cHJlcGFyc2VkCisgICAgICAgICAgICBpbnQgc2V0TW9kZSA9IDA7CisgICAgICAgICAgICBpZiAocmVzZW1ibGVzUHJvcGVydHlQYXR0ZXJuKGNoYXJzLCBvcHRzKSkgeworICAgICAgICAgICAgICAgIHNldE1vZGUgPSAyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAtLS0tLS0tLSBQYXJzZSAnWycgb2Ygb3BlbmluZyBkZWxpbWl0ZXIgT1IgbmVzdGVkIHNldC4KKyAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgbmVzdGVkIHNldCwgdXNlIGBzZXRNb2RlJyB0byBkZWZpbmUgaG93CisgICAgICAgICAgICAvLyB0aGUgc2V0IHNob3VsZCBiZSBwYXJzZWQuICBJZiB0aGUgJ1snIGlzIHBhcnQgb2YgdGhlCisgICAgICAgICAgICAvLyBvcGVuaW5nIGRlbGltaXRlciBmb3IgdGhpcyBwYXR0ZXJuLCBwYXJzZSBzcGVjaWFsCisgICAgICAgICAgICAvLyBzdHJpbmdzICJbIiwgIlteIiwgIlstIiwgYW5kICJbXi0iLiAgQ2hlY2sgZm9yIHN0YW5kLWluCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHJlcHJlc2VudGluZyBhIG5lc3RlZCBzZXQgaW4gdGhlIHN5bWJvbAorICAgICAgICAgICAgLy8gdGFibGUuCisKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFByZXBhcmUgdG8gYmFja3VwIGlmIG5lY2Vzc2FyeQorICAgICAgICAgICAgICAgIGJhY2t1cCA9IGNoYXJzLmdldFBvcyhiYWNrdXApOworICAgICAgICAgICAgICAgIGMgPSBjaGFycy5uZXh0KG9wdHMpOworICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKworICAgICAgICAgICAgICAgIGlmIChjID09ICdbJyAmJiAhbGl0ZXJhbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFycy5zZXRQb3MoYmFja3VwKTsgLy8gYmFja3VwCisgICAgICAgICAgICAgICAgICAgICAgICBzZXRNb2RlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBvcGVuaW5nICdbJyBkZWxpbWl0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZCgnWycpOworICAgICAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gY2hhcnMuZ2V0UG9zKGJhY2t1cCk7IC8vIHByZXBhcmUgdG8gYmFja3VwCisgICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdeJyAmJiAhbGl0ZXJhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmVydCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZCgnXicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IGNoYXJzLmdldFBvcyhiYWNrdXApOyAvLyBwcmVwYXJlIHRvIGJhY2t1cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjaGFycy5uZXh0KG9wdHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBoYW5kbGUgc3BlY2lhbCBsZWFkaW5nICctJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSByZXN0YXJ0IGxvb3AgZm9yIG5lc3RlZCBbXSwgXHB7fSwgZXRjLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGhhbmRsZSBsaXRlcmFsICctJyBiZWxvdworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFycy5zZXRQb3MoYmFja3VwKTsgLy8gYmFja3VwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN5bWJvbHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbSA9IHN5bWJvbHMubG9va3VwTWF0Y2hlcihjKTsgLy8gbWF5IGJlIG51bGwKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgPSAoVW5pY29kZVNldCkgbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZSA9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJTeW50YXggZXJyb3IiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAtLS0tLS0tLSBIYW5kbGUgYSBuZXN0ZWQgc2V0LiAgVGhpcyBlaXRoZXIgaXMgaW5saW5lIGluCisgICAgICAgICAgICAvLyB0aGUgcGF0dGVybiBvciByZXByZXNlbnRlZCBieSBhIHN0YW5kLWluIHRoYXQgaGFzCisgICAgICAgICAgICAvLyBwcmV2aW91c2x5IGJlZW4gcGFyc2VkIGFuZCB3YXMgbG9va2VkIHVwIGluIHRoZSBzeW1ib2wKKyAgICAgICAgICAgIC8vIHRhYmxlLgorCisgICAgICAgICAgICBpZiAoc2V0TW9kZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiQ2hhciBleHBlY3RlZCBhZnRlciBvcGVyYXRvciIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFkZF91bmNoZWNrZWQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSBvcCA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG9wID09ICctJyB8fCBvcCA9PSAnJicpIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZChvcCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5lc3RlZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzY3JhdGNoID09IG51bGwpIHNjcmF0Y2ggPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgPSBzY3JhdGNoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldE1vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIG5lc3RlZC5hcHBseVBhdHRlcm4oY2hhcnMsIHN5bWJvbHMsIHBhdCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgY2hhcnMuc2tpcElnbm9yZWQob3B0cyk7CisgICAgICAgICAgICAgICAgICAgIG5lc3RlZC5hcHBseVByb3BlcnR5UGF0dGVybihjaGFycywgcGF0LCBzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiAvLyBgbmVzdGVkJyBhbHJlYWR5IHBhcnNlZAorICAgICAgICAgICAgICAgICAgICBuZXN0ZWQuX3RvUGF0dGVybihwYXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdXNlUGF0ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRW50aXJlIHBhdHRlcm4gaXMgYSBjYXRlZ29yeTsgbGVhdmUgcGFyc2UgbG9vcAorICAgICAgICAgICAgICAgICAgICBzZXQobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN3aXRjaCAob3ApIHsKKyAgICAgICAgICAgICAgICBjYXNlICctJzoKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQWxsKG5lc3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAgICAgICAgICAgICByZXRhaW5BbGwobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICBhZGRBbGwobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb3AgPSAwOworICAgICAgICAgICAgICAgIGxhc3RJdGVtID0gMjsKKworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobW9kZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJNaXNzaW5nICdbJyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAtLS0tLS0tLSBQYXJzZSBzcGVjaWFsIChzeW50YXgpIGNoYXJhY3RlcnMuICBJZiB0aGUKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgY2hhcmFjdGVyIGlzIG5vdCBzcGVjaWFsLCBvciBpZiBpdCBpcyBlc2NhcGVkLAorICAgICAgICAgICAgLy8gdGhlbiBmYWxsIHRocm91Z2ggYW5kIGhhbmRsZSBpdCBiZWxvdy4KKworICAgICAgICAgICAgaWYgKCFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnXSc6CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKGxhc3RDaGFyLCBsYXN0Q2hhcik7CisgICAgICAgICAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocGF0LCBsYXN0Q2hhciwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIFRyZWF0IGZpbmFsIHRyYWlsaW5nICctJyBhcyBhIGxpdGVyYWwKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09ICctJykgeworICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChvcCwgb3ApOworICAgICAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZChvcCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3AgPT0gJyYnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIlRyYWlsaW5nICcmJyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoJ10nKTsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGNhc2UgJy0nOgorICAgICAgICAgICAgICAgICAgICBpZiAob3AgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcCA9IChjaGFyKSBjOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmVhdCBmaW5hbCB0cmFpbGluZyAnLScgYXMgYSBsaXRlcmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChjLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsID0gY2hhcnMuaXNFc2NhcGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ10nICYmICFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoIi1dIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICInLScgbm90IGFmdGVyIGNoYXIgb3Igc2V0Iik7CisgICAgICAgICAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAyICYmIG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wID0gKGNoYXIpIGM7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIicmJyBub3QgYWZ0ZXIgc2V0Iik7CisgICAgICAgICAgICAgICAgY2FzZSAnXic6CisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiJ14nIG5vdCBhZnRlciAnWyciKTsKKyAgICAgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiTWlzc2luZyBvcGVyYW5kIGFmdGVyIG9wZXJhdG9yIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZF91bmNoZWNrZWQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGxhc3RDaGFyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSAwOworICAgICAgICAgICAgICAgICAgICBpZiAoYnVmID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWNoYXJzLmF0RW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjaGFycy5uZXh0KG9wdHMpOworICAgICAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbCA9IGNoYXJzLmlzRXNjYXBlZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ30nICYmICFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2sgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA8IDEgfHwgIW9rKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkludmFsaWQgbXVsdGljaGFyYWN0ZXIgc3RyaW5nIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBuZXcgc3RyaW5nLiBBZGQgaXQgdG8gc2V0IGFuZCBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkcm9wIHRocm91Z2ggdG8gdGhlIGZ1cnRoZXIKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2Vzc2luZworICAgICAgICAgICAgICAgICAgICBhZGQoYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBwYXQuYXBwZW5kKCd7Jyk7CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGJ1Zi50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoJ30nKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xUYWJsZS5TWU1CT0xfUkVGOgorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHN5bWJvbHMgIG5vc3ltYm9scworICAgICAgICAgICAgICAgICAgICAvLyBbYS0kXSAgIGVycm9yICAgIGVycm9yIChhbWJpZ3VvdXMpCisgICAgICAgICAgICAgICAgICAgIC8vIFthJF0gICAgYW5jaG9yICAgYW5jaG9yCisgICAgICAgICAgICAgICAgICAgIC8vIFthLSR4XSAgdmFyICJ4IiogbGl0ZXJhbCAnJCcKKyAgICAgICAgICAgICAgICAgICAgLy8gW2EtJC5dICBlcnJvciAgICBsaXRlcmFsICckJworICAgICAgICAgICAgICAgICAgICAvLyAqV2Ugd29uJ3QgZ2V0IGhlcmUgaW4gdGhlIGNhc2Ugb2YgdmFyICJ4IgorICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSBjaGFycy5nZXRQb3MoYmFja3VwKTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IGNoYXJzLm5leHQob3B0cyk7CisgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbmNob3IgPSAoYyA9PSAnXScgJiYgIWxpdGVyYWwpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3ltYm9scyA9PSBudWxsICYmICFhbmNob3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBTeW1ib2xUYWJsZS5TWU1CT0xfUkVGOworICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMuc2V0UG9zKGJhY2t1cCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gbGl0ZXJhbCAnJCcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoYW5jaG9yICYmIG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChsYXN0Q2hhciwgbGFzdENoYXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGxhc3RDaGFyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKFVuaWNvZGVNYXRjaGVyLkVUSEVSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzZVBhdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXQuYXBwZW5kKFN5bWJvbFRhYmxlLlNZTUJPTF9SRUYpLmFwcGVuZCgnXScpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIlVucXVvdGVkICckJyIpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLS0tLS0tLS0gUGFyc2UgbGl0ZXJhbCBjaGFyYWN0ZXJzLiAgVGhpcyBpbmNsdWRlcyBib3RoCisgICAgICAgICAgICAvLyBlc2NhcGVkIGNoYXJzICgiXHU0RTAxIikgYW5kIG5vbi1zeW50YXggY2hhcmFjdGVycworICAgICAgICAgICAgLy8gKCJhIikuCisKKyAgICAgICAgICAgIHN3aXRjaCAobGFzdEl0ZW0pIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IDE7CisgICAgICAgICAgICAgICAgbGFzdENoYXIgPSBjOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGlmIChvcCA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDaGFyID49IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGFsbG93IHJlZHVuZGFudCAoYS1hKSBvciBlbXB0eSAoYi1hKSByYW5nZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBhcmUgbW9zdCBsaWtlbHkgdHlwb3MuCisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKGxhc3RDaGFyLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZChvcCk7CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGMsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSBvcCA9IDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChsYXN0Q2hhciwgbGFzdENoYXIpOworICAgICAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocGF0LCBsYXN0Q2hhciwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBsYXN0Q2hhciA9IGM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGlmIChvcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiU2V0IGV4cGVjdGVkIGFmdGVyIG9wZXJhdG9yIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RDaGFyID0gYzsKKyAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IDE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobW9kZSAhPSAyKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIk1pc3NpbmcgJ10nIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFycy5za2lwSWdub3JlZChvcHRzKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSGFuZGxlIGdsb2JhbCBmbGFncyAoaW52ZXJ0LCBjYXNlIGluc2Vuc2l0aXZpdHkpLiAgSWYgdGhpcworICAgICAgICAgKiBwYXR0ZXJuIHNob3VsZCBiZSBjb21waWxlZCBjYXNlLWluc2Vuc2l0aXZlLCB0aGVuIHdlIG5lZWQKKyAgICAgICAgICogdG8gY2xvc2Ugb3ZlciBjYXNlIEJFRk9SRSBDT01QTEVNRU5USU5HLiAgVGhpcyBtYWtlcworICAgICAgICAgKiBwYXR0ZXJucyBsaWtlIC9bXmFiY10vaSB3b3JrLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0FTRSkgIT0gMCkgeworICAgICAgICAgICAgY2xvc2VPdmVyKENBU0UpOworICAgICAgICB9CisgICAgICAgIGlmIChpbnZlcnQpIHsKKyAgICAgICAgICAgIGNvbXBsZW1lbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVzZSB0aGUgcmVidWlsdCBwYXR0ZXJuIChwYXQpIG9ubHkgaWYgbmVjZXNzYXJ5LiAgUHJlZmVyIHRoZQorICAgICAgICAvLyBnZW5lcmF0ZWQgcGF0dGVybi4KKyAgICAgICAgaWYgKHVzZVBhdCkgeworICAgICAgICAgICAgcmVidWlsdFBhdC5hcHBlbmQocGF0LnRvU3RyaW5nKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgX2dlbmVyYXRlUGF0dGVybihyZWJ1aWx0UGF0LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHN5bnRheEVycm9yKFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBjaGFycywgU3RyaW5nIG1zZykgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJFcnJvcjogIiArIG1zZyArICIgYXQgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjaGFycy50b1N0cmluZygpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyInKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGNvbnRlbnRzIG9mIHRoZSBVbmljb2RlU2V0IChhcyBzdHJpbmdzKSBpbnRvIGEgY29sbGVjdGlvbi4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IGNvbGxlY3Rpb24gdG8gYWRkIGludG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRBbGxUbyhDb2xsZWN0aW9uIHRhcmdldCkgeworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHRoaXMpOworICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICB0YXJnZXQuYWRkKGl0LmdldFN0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCB0aGUgY29udGVudHMgb2YgdGhlIGNvbGxlY3Rpb24gKGFzIHN0cmluZ3MpIGludG8gdGhpcyBVbmljb2RlU2V0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIGNvbGxlY3Rpb24gdG8gYWRkCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkQWxsKENvbGxlY3Rpb24gc291cmNlKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gc291cmNlLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGFkZChpdC5uZXh0KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbXBsZW1lbnRhdGlvbjogVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHZvaWQgZW5zdXJlQ2FwYWNpdHkoaW50IG5ld0xlbikgeworICAgICAgICBpZiAobmV3TGVuIDw9IGxpc3QubGVuZ3RoKSByZXR1cm47CisgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W25ld0xlbiArIEdST1dfRVhUUkFdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxpc3QsIDAsIHRlbXAsIDAsIGxlbik7CisgICAgICAgIGxpc3QgPSB0ZW1wOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlbnN1cmVCdWZmZXJDYXBhY2l0eShpbnQgbmV3TGVuKSB7CisgICAgICAgIGlmIChidWZmZXIgIT0gbnVsbCAmJiBuZXdMZW4gPD0gYnVmZmVyLmxlbmd0aCkgcmV0dXJuOworICAgICAgICBidWZmZXIgPSBuZXcgaW50W25ld0xlbiArIEdST1dfRVhUUkFdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFzc3VtZXMgc3RhcnQgPD0gZW5kLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gcmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChyYW5nZUxpc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgcmFuZ2VMaXN0ID0gbmV3IGludFtdIHsgc3RhcnQsIGVuZCsxLCBISUdIIH07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByYW5nZUxpc3RbMF0gPSBzdGFydDsKKyAgICAgICAgICAgIHJhbmdlTGlzdFsxXSA9IGVuZCsxOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUxpc3Q7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW1wbGVtZW50YXRpb246IEZ1bmRhbWVudGFsIG9wZXJhdGlvbnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHBvbGFyaXR5ID0gMCwgMyBpcyBub3JtYWw6IHggeG9yIHkKKyAgICAvLyBwb2xhcml0eSA9IDEsIDI6IHggeG9yIH55ID09IHggPT09IHkKKworICAgIHByaXZhdGUgVW5pY29kZVNldCB4b3IoaW50W10gb3RoZXIsIGludCBvdGhlckxlbiwgaW50IHBvbGFyaXR5KSB7CisgICAgICAgIGVuc3VyZUJ1ZmZlckNhcGFjaXR5KGxlbiArIG90aGVyTGVuKTsKKyAgICAgICAgaW50IGkgPSAwLCBqID0gMCwgayA9IDA7CisgICAgICAgIGludCBhID0gbGlzdFtpKytdOworICAgICAgICBpbnQgYjsKKyAgICAgICAgaWYgKHBvbGFyaXR5ID09IDEgfHwgcG9sYXJpdHkgPT0gMikgeworICAgICAgICAgICAgYiA9IExPVzsKKyAgICAgICAgICAgIGlmIChvdGhlcltqXSA9PSBMT1cpIHsgLy8gc2tpcCBiYXNlIGlmIGFscmVhZHkgTE9XCisgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOworICAgICAgICB9CisgICAgICAgIC8vIHNpbXBsZXN0IG9mIGFsbCB0aGUgcm91dGluZXMKKyAgICAgICAgLy8gc29ydCB0aGUgdmFsdWVzLCBkaXNjYXJkaW5nIGlkZW50aWNhbHMhCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoYSA8IGIpIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7CisgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107CisgICAgICAgICAgICB9IGVsc2UgaWYgKGEgIT0gSElHSCkgeyAvLyBhdCB0aGlzIHBvaW50LCBhID09IGIKKyAgICAgICAgICAgICAgICAvLyBkaXNjYXJkIGJvdGggdmFsdWVzIQorICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107CisgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBET05FIQorICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gSElHSDsKKyAgICAgICAgICAgICAgICBsZW4gPSBrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHN3YXAgbGlzdCBhbmQgYnVmZmVyCisgICAgICAgIGludFtdIHRlbXAgPSBsaXN0OworICAgICAgICBsaXN0ID0gYnVmZmVyOworICAgICAgICBidWZmZXIgPSB0ZW1wOworICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvLyBwb2xhcml0eSA9IDAgaXMgbm9ybWFsOiB4IHVuaW9uIHkKKyAgICAvLyBwb2xhcml0eSA9IDI6IHggdW5pb24gfnkKKyAgICAvLyBwb2xhcml0eSA9IDE6IH54IHVuaW9uIHkKKyAgICAvLyBwb2xhcml0eSA9IDM6IH54IHVuaW9uIH55CisKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgYWRkKGludFtdIG90aGVyLCBpbnQgb3RoZXJMZW4sIGludCBwb2xhcml0eSkgeworICAgICAgICBlbnN1cmVCdWZmZXJDYXBhY2l0eShsZW4gKyBvdGhlckxlbik7CisgICAgICAgIGludCBpID0gMCwgaiA9IDAsIGsgPSAwOworICAgICAgICBpbnQgYSA9IGxpc3RbaSsrXTsKKyAgICAgICAgaW50IGIgPSBvdGhlcltqKytdOworICAgICAgICAvLyBjaGFuZ2UgZnJvbSB4b3IgaXMgdGhhdCB3ZSBoYXZlIHRvIGNoZWNrIG92ZXJsYXBwaW5nIHBhaXJzCisgICAgICAgIC8vIHBvbGFyaXR5IGJpdCAxIG1lYW5zIGEgaXMgc2Vjb25kLCBiaXQgMiBtZWFucyBiIGlzLgorICAgICAgICBtYWluOgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgc3dpdGNoIChwb2xhcml0eSkgeworICAgICAgICAgICAgICBjYXNlIDA6IC8vIGJvdGggZmlyc3Q7IHRha2UgbG93ZXIgaWYgdW5lcXVhbAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgLy8gQmFjayB1cCBvdmVyIG92ZXJsYXBwaW5nIHJhbmdlcyBpbiBidWZmZXJbXQorICAgICAgICAgICAgICAgICAgICBpZiAoayA+IDAgJiYgYSA8PSBidWZmZXJbay0xXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGljayBsYXR0ZXIgZW5kIHZhbHVlIGluIGJ1ZmZlcltdIHZzLiBsaXN0W10KKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBtYXgobGlzdFtpXSwgYnVmZmVyWy0ta10pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gb3ZlcmxhcAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaSsrOyAvLyBDb21tb24gaWYvZWxzZSBjb2RlIGZhY3RvcmVkIG91dAorICAgICAgICAgICAgICAgICAgICBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGlmIChrID4gMCAmJiBiIDw9IGJ1ZmZlcltrLTFdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gbWF4KG90aGVyW2pdLCBidWZmZXJbLS1rXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbal07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgICAgICBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgdGFrZSBhLCBkcm9wIGIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzeW1tZXRyaWNhbDsgaXQgZG9lc24ndCBtYXR0ZXIgaWYKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgYmFja3RyYWNrIHdpdGggYSBvciBiLiAtIGxpdQorICAgICAgICAgICAgICAgICAgICBpZiAoayA+IDAgJiYgYSA8PSBidWZmZXJbay0xXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IG1heChsaXN0W2ldLCBidWZmZXJbLS1rXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvdmVybGFwCisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgIHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAzOiAvLyBib3RoIHNlY29uZDsgdGFrZSBoaWdoZXIgaWYgdW5lcXVhbCwgYW5kIGRyb3Agb3RoZXIKKyAgICAgICAgICAgICAgICBpZiAoYiA8PSBhKSB7IC8vIHRha2UgYQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGlmIChiID09IEhJR0gpIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsgICAvLyBmYWN0b3JlZCBjb21tb24gY29kZQorICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDE6IC8vIGEgc2Vjb25kLCBiIGZpcnN0OyBpZiBiIDwgYSwgb3ZlcmxhcAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyBubyBvdmVybGFwLCB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gT1ZFUkxBUCwgZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgZHJvcCBib3RoIQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMjogLy8gYSBmaXJzdCwgYiBzZWNvbmQ7IGlmIGEgPCBiLCBvdmVybGFwCisgICAgICAgICAgICAgICAgaWYgKGIgPCBhKSB7IC8vIG5vIG92ZXJsYXAsIHRha2UgYgorICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7IGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSAgaWYgKGEgPCBiKSB7IC8vIE9WRVJMQVAsIGRyb3AgYQorICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgZHJvcCBib3RoIQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyW2srK10gPSBISUdIOyAgICAvLyB0ZXJtaW5hdGUKKyAgICAgICAgbGVuID0gazsKKyAgICAgICAgLy8gc3dhcCBsaXN0IGFuZCBidWZmZXIKKyAgICAgICAgaW50W10gdGVtcCA9IGxpc3Q7CisgICAgICAgIGxpc3QgPSBidWZmZXI7CisgICAgICAgIGJ1ZmZlciA9IHRlbXA7CisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8vIHBvbGFyaXR5ID0gMCBpcyBub3JtYWw6IHggaW50ZXJzZWN0IHkKKyAgICAvLyBwb2xhcml0eSA9IDI6IHggaW50ZXJzZWN0IH55ID09IHNldC1taW51cworICAgIC8vIHBvbGFyaXR5ID0gMTogfnggaW50ZXJzZWN0IHkKKyAgICAvLyBwb2xhcml0eSA9IDM6IH54IGludGVyc2VjdCB+eQorCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IHJldGFpbihpbnRbXSBvdGhlciwgaW50IG90aGVyTGVuLCBpbnQgcG9sYXJpdHkpIHsKKyAgICAgICAgZW5zdXJlQnVmZmVyQ2FwYWNpdHkobGVuICsgb3RoZXJMZW4pOworICAgICAgICBpbnQgaSA9IDAsIGogPSAwLCBrID0gMDsKKyAgICAgICAgaW50IGEgPSBsaXN0W2krK107CisgICAgICAgIGludCBiID0gb3RoZXJbaisrXTsKKyAgICAgICAgLy8gY2hhbmdlIGZyb20geG9yIGlzIHRoYXQgd2UgaGF2ZSB0byBjaGVjayBvdmVybGFwcGluZyBwYWlycworICAgICAgICAvLyBwb2xhcml0eSBiaXQgMSBtZWFucyBhIGlzIHNlY29uZCwgYml0IDIgbWVhbnMgYiBpcy4KKyAgICAgICAgbWFpbjoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN3aXRjaCAocG9sYXJpdHkpIHsKKyAgICAgICAgICAgICAgY2FzZSAwOiAvLyBib3RoIGZpcnN0OyBkcm9wIHRoZSBzbWFsbGVyCisgICAgICAgICAgICAgICAgaWYgKGEgPCBiKSB7IC8vIGRyb3AgYQorICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgdGFrZSBvbmUsIGRyb3Agb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMzogLy8gYm90aCBzZWNvbmQ7IHRha2UgbG93ZXIgaWYgdW5lcXVhbAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYjsgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gYSA9PSBiLCB0YWtlIG9uZSwgZHJvcCBvdGhlcgorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7IGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAxOiAvLyBhIHNlY29uZCwgYiBmaXJzdDsKKyAgICAgICAgICAgICAgICBpZiAoYSA8IGIpIHsgLy8gTk8gT1ZFUkxBUCwgZHJvcCBhCisgICAgICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChiIDwgYSkgeyAvLyBPVkVSTEFQLCB0YWtlIGIKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBiOyBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDI6IC8vIGEgZmlyc3QsIGIgc2Vjb25kOyBpZiBhIDwgYiwgb3ZlcmxhcAorICAgICAgICAgICAgICAgIGlmIChiIDwgYSkgeyAvLyBubyBvdmVybGFwLCBkcm9wIGIKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlICBpZiAoYSA8IGIpIHsgLy8gT1ZFUkxBUCwgdGFrZSBhCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYTsgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1ZmZlcltrKytdID0gSElHSDsgICAgLy8gdGVybWluYXRlCisgICAgICAgIGxlbiA9IGs7CisgICAgICAgIC8vIHN3YXAgbGlzdCBhbmQgYnVmZmVyCisgICAgICAgIGludFtdIHRlbXAgPSBsaXN0OworICAgICAgICBsaXN0ID0gYnVmZmVyOworICAgICAgICBidWZmZXIgPSB0ZW1wOworICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4KGludCBhLCBpbnQgYikgeworICAgICAgICByZXR1cm4gKGEgPiBiKSA/IGEgOiBiOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEdlbmVyaWMgZmlsdGVyLWJhc2VkIHNjYW5uaW5nIGNvZGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGludGVyZmFjZSBGaWx0ZXIgeworICAgICAgICBib29sZWFuIGNvbnRhaW5zKGludCBjb2RlUG9pbnQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE51bWVyaWNWYWx1ZUZpbHRlciBpbXBsZW1lbnRzIEZpbHRlciB7CisgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgTnVtZXJpY1ZhbHVlRmlsdGVyKGRvdWJsZSB2YWx1ZSkgeyB0aGlzLnZhbHVlID0gdmFsdWU7IH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGNoKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGNoKSA9PSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEdlbmVyYWxDYXRlZ29yeU1hc2tGaWx0ZXIgaW1wbGVtZW50cyBGaWx0ZXIgeworICAgICAgICBpbnQgbWFzazsKKyAgICAgICAgR2VuZXJhbENhdGVnb3J5TWFza0ZpbHRlcihpbnQgbWFzaykgeyB0aGlzLm1hc2sgPSBtYXNrOyB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjaCkgeworICAgICAgICAgICAgcmV0dXJuICgoMSA8PCBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpKSAmIG1hc2spICE9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJbnRQcm9wZXJ0eUZpbHRlciBpbXBsZW1lbnRzIEZpbHRlciB7CisgICAgICAgIGludCBwcm9wOworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIEludFByb3BlcnR5RmlsdGVyKGludCBwcm9wLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHRoaXMucHJvcCA9IHByb3A7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGNoKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNoLCBwcm9wKSA9PSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZlcnNpb25JbmZvIGZvciB1bmFzc2lnbmVkIGNoYXJhY3RlcnMKKyAgICBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gTk9fVkVSU0lPTiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDAsIDAsIDAsIDApOworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVmVyc2lvbkZpbHRlciBpbXBsZW1lbnRzIEZpbHRlciB7CisgICAgICAgIFZlcnNpb25JbmZvIHZlcnNpb247CisgICAgICAgIFZlcnNpb25GaWx0ZXIoVmVyc2lvbkluZm8gdmVyc2lvbikgeyB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uOyB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjaCkgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdiA9IFVDaGFyYWN0ZXIuZ2V0QWdlKGNoKTsKKyAgICAgICAgICAgIC8vIFJlZmVyZW5jZSBjb21wYXJpc29uIG9rOyBWZXJzaW9uSW5mbyBjYWNoZXMgYW5kIHJldXNlcworICAgICAgICAgICAgLy8gdW5pcXVlIG9iamVjdHMuCisgICAgICAgICAgICByZXR1cm4gdiAhPSBOT19WRVJTSU9OICYmCisgICAgICAgICAgICAgICAgICAgdi5jb21wYXJlVG8odmVyc2lvbikgPD0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHN5bmNocm9uaXplZCBVbmljb2RlU2V0IGdldEluY2x1c2lvbnMoaW50IHNyYykgeworICAgICAgICBpZiAoSU5DTFVTSU9OUyA9PSBudWxsKSB7CisgICAgICAgICAgICBJTkNMVVNJT05TID0gbmV3IFVuaWNvZGVTZXRbVUNoYXJhY3RlclByb3BlcnR5LlNSQ19DT1VOVF07CisgICAgICAgIH0KKyAgICAgICAgaWYoSU5DTFVTSU9OU1tzcmNdID09IG51bGwpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgaW5jbCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBzd2l0Y2goc3JjKSB7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0hBUjoKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS5hZGRQcm9wZXJ0eVN0YXJ0cyhpbmNsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlclByb3BlcnR5LlNSQ19QUk9QU1ZFQzoKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS51cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMoaW5jbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0hBUl9BTkRfUFJPUFNWRUM6CisgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkuYWRkUHJvcGVydHlTdGFydHMoaW5jbCk7CisgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkudXByb3BzdmVjX2FkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0hTVDoKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS51aHN0X2FkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX05PUk06CisgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuYWRkUHJvcGVydHlTdGFydHMoaW5jbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0FTRToKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpLmFkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQklESToKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVQmlEaVByb3BzLmdldFNpbmdsZXRvbigpLmFkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlVuaWNvZGVTZXQuZ2V0SW5jbHVzaW9ucyh1bmtub3duIHNyYyAiK3NyYysiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSU5DTFVTSU9OU1tzcmNdID0gaW5jbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSU5DTFVTSU9OU1tzcmNdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgZmlsdGVyLWJhc2VkIHNjYW5uaW5nIGNvZGUgZm9yIFVDRCBwcm9wZXJ0eSBVbmljb2RlU2V0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgYXBwbHlGaWx0ZXIoRmlsdGVyIGZpbHRlciwgaW50IHNyYykgeworICAgICAgICAvLyBXYWxrIHRocm91Z2ggYWxsIFVuaWNvZGUgY2hhcmFjdGVycywgbm90aW5nIHRoZSBzdGFydAorICAgICAgICAvLyBhbmQgZW5kIG9mIGVhY2ggcmFuZ2UgZm9yIHdoaWNoIGZpbHRlci5jb250YWluKGMpIGlzCisgICAgICAgIC8vIHRydWUuICBBZGQgZWFjaCByYW5nZSB0byBhIHNldC4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gVG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgdXNlIHRoZSBJTkNMVVNJT05TIHNldCwgd2hpY2gKKyAgICAgICAgLy8gZW5jb2RlcyBpbmZvcm1hdGlvbiBhYm91dCBjaGFyYWN0ZXIgcmFuZ2VzIHRoYXQgYXJlIGtub3duCisgICAgICAgIC8vIHRvIGhhdmUgaWRlbnRpY2FsIHByb3BlcnRpZXMsIHN1Y2ggYXMgdGhlIENKSyBJZGVvZ3JhcGhzCisgICAgICAgIC8vIGZyb20gVSs0RTAwIHRvIFUrOUZBNS4gIElOQ0xVU0lPTlMgY29udGFpbnMgYWxsIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gZXhjZXB0IHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHN1Y2ggcmFuZ2VzLgorICAgICAgICAvLworICAgICAgICAvLyBUT0RPIFdoZXJlIHBvc3NpYmxlLCBpbnN0ZWFkIG9mIHNjYW5uaW5nIG92ZXIgY29kZSBwb2ludHMsCisgICAgICAgIC8vIHVzZSBpbnRlcm5hbCBwcm9wZXJ0eSBkYXRhIHRvIGluaXRpYWxpemUgVW5pY29kZVNldHMgZm9yCisgICAgICAgIC8vIHRob3NlIHByb3BlcnRpZXMuICBTY2FubmluZyBjb2RlIHBvaW50cyBpcyBzbG93LgorCisgICAgICAgIGNsZWFyKCk7CisKKyAgICAgICAgaW50IHN0YXJ0SGFzUHJvcGVydHkgPSAtMTsKKyAgICAgICAgVW5pY29kZVNldCBpbmNsdXNpb25zID0gZ2V0SW5jbHVzaW9ucyhzcmMpOworICAgICAgICBpbnQgbGltaXRSYW5nZSA9IGluY2x1c2lvbnMuZ2V0UmFuZ2VDb3VudCgpOworCisgICAgICAgIGZvciAoaW50IGo9MDsgajxsaW1pdFJhbmdlOyArK2opIHsKKyAgICAgICAgICAgIC8vIGdldCBjdXJyZW50IHJhbmdlCisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpbmNsdXNpb25zLmdldFJhbmdlU3RhcnQoaik7CisgICAgICAgICAgICBpbnQgZW5kID0gaW5jbHVzaW9ucy5nZXRSYW5nZUVuZChqKTsKKworICAgICAgICAgICAgLy8gZm9yIGFsbCB0aGUgY29kZSBwb2ludHMgaW4gdGhlIHJhbmdlLCBwcm9jZXNzCisgICAgICAgICAgICBmb3IgKGludCBjaCA9IHN0YXJ0OyBjaCA8PSBlbmQ7ICsrY2gpIHsKKyAgICAgICAgICAgICAgICAvLyBvbmx5IGFkZCB0byB0aGUgdW5pY29kZXNldCBvbiBpbmZsZWN0aW9uIHBvaW50cyAtLQorICAgICAgICAgICAgICAgIC8vIHdoZXJlIHRoZSBoYXNQcm9wZXJ0eSB2YWx1ZSBjaGFuZ2VzIHRvIGZhbHNlCisgICAgICAgICAgICAgICAgaWYgKGZpbHRlci5jb250YWlucyhjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0SGFzUHJvcGVydHkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEhhc1Byb3BlcnR5ID0gY2g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0SGFzUHJvcGVydHkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKHN0YXJ0SGFzUHJvcGVydHksIGNoLTEpOworICAgICAgICAgICAgICAgICAgICBzdGFydEhhc1Byb3BlcnR5ID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChzdGFydEhhc1Byb3BlcnR5ID49IDApIHsKKyAgICAgICAgICAgIGFkZF91bmNoZWNrZWQoc3RhcnRIYXNQcm9wZXJ0eSwgMHgxMEZGRkYpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcnVsZSB3aGl0ZSBzcGFjZSBhbmQgY29tcHJlc3MKKyAgICAgKiBpbnRlcm5hbCBydWxlIHdoaXRlIHNwYWNlIHRvIGEgc2luZ2xlIHNwYWNlIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIEBzZWUgVUNoYXJhY3RlclByb3BlcnR5I2lzUnVsZVdoaXRlU3BhY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgbXVuZ2VDaGFyTmFtZShTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzb3VyY2UubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHNvdXJjZSwgaSk7CisgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA9PSAwIHx8CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5jaGFyQXQoYnVmLmxlbmd0aCgpIC0gMSkgPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCA9ICcgJzsgLy8gY29udmVydCB0byAnICcKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGNoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IDAgJiYKKyAgICAgICAgICAgIGJ1Zi5jaGFyQXQoYnVmLmxlbmd0aCgpIC0gMSkgPT0gJyAnKSB7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKGJ1Zi5sZW5ndGgoKSAtIDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcm9wZXJ0eSBzZXQgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyB0aGlzIHNldCB0byBjb250YWluIHRob3NlIGNvZGUgcG9pbnRzIHdoaWNoIGhhdmUgdGhlCisgICAgICogZ2l2ZW4gdmFsdWUgZm9yIHRoZSBnaXZlbiBiaW5hcnkgb3IgZW51bWVyYXRlZCBwcm9wZXJ0eSwgYXMKKyAgICAgKiByZXR1cm5lZCBieSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUuICBQcmlvciBjb250ZW50cyBvZgorICAgICAqIHRoaXMgc2V0IGFyZSBsb3N0LgorICAgICAqCisgICAgICogQHBhcmFtIHByb3AgYSBwcm9wZXJ0eSBpbiB0aGUgcmFuZ2UKKyAgICAgKiBVUHJvcGVydHkuQklOX1NUQVJULi5VUHJvcGVydHkuQklOX0xJTUlULTEgb3IKKyAgICAgKiBVUHJvcGVydHkuSU5UX1NUQVJULi5VUHJvcGVydHkuSU5UX0xJTUlULTEgb3IuCisgICAgICogVVByb3BlcnR5Lk1BU0tfU1RBUlQuLlVQcm9wZXJ0eS5NQVNLX0xJTUlULTEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UKKyAgICAgKiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUocHJvcCkuLgorICAgICAqIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShwcm9wKSwgd2l0aCBvbmUgZXhjZXB0aW9uLgorICAgICAqIElmIHByb3AgaXMgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSywgdGhlbiB2YWx1ZSBzaG91bGQgbm90IGJlCisgICAgICogYSBVQ2hhcmFjdGVyLmdldFR5cGUoKSByZXN1bHQsIGJ1dCByYXRoZXIgYSBtYXNrIHZhbHVlIHByb2R1Y2VkCisgICAgICogYnkgbG9naWNhbGx5IE9SaW5nICgxIDw8IFVDaGFyYWN0ZXIuZ2V0VHlwZSgpKSB2YWx1ZXMgdG9nZXRoZXIuCisgICAgICogVGhpcyBhbGxvd3MgZ3JvdXBlZCBjYXRlZ29yaWVzIHN1Y2ggYXMgWzpMOl0gdG8gYmUgcmVwcmVzZW50ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoaXMgc2V0CisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhcHBseUludFByb3BlcnR5VmFsdWUoaW50IHByb3AsIGludCB2YWx1ZSkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAocHJvcCA9PSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSB7CisgICAgICAgICAgICBhcHBseUZpbHRlcihuZXcgR2VuZXJhbENhdGVnb3J5TWFza0ZpbHRlcih2YWx1ZSksIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0hBUik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhcHBseUZpbHRlcihuZXcgSW50UHJvcGVydHlGaWx0ZXIocHJvcCwgdmFsdWUpLCBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS5nZXRTb3VyY2UocHJvcCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworCisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyB0aGlzIHNldCB0byBjb250YWluIHRob3NlIGNvZGUgcG9pbnRzIHdoaWNoIGhhdmUgdGhlCisgICAgICogZ2l2ZW4gdmFsdWUgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eS4gIFByaW9yIGNvbnRlbnRzIG9mIHRoaXMKKyAgICAgKiBzZXQgYXJlIGxvc3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlBbGlhcyBhIHByb3BlcnR5IGFsaWFzLCBlaXRoZXIgc2hvcnQgb3IgbG9uZy4KKyAgICAgKiBUaGUgbmFtZSBpcyBtYXRjaGVkIGxvb3NlbHkuICBTZWUgUHJvcGVydHlBbGlhc2VzLnR4dCBmb3IgbmFtZXMKKyAgICAgKiBhbmQgYSBkZXNjcmlwdGlvbiBvZiBsb29zZSBtYXRjaGluZy4gIElmIHRoZSB2YWx1ZSBzdHJpbmcgaXMKKyAgICAgKiBlbXB0eSwgdGhlbiB0aGlzIHN0cmluZyBpcyBpbnRlcnByZXRlZCBhcyBlaXRoZXIgYQorICAgICAqIEdlbmVyYWxfQ2F0ZWdvcnkgdmFsdWUgYWxpYXMsIGEgU2NyaXB0IHZhbHVlIGFsaWFzLCBhIGJpbmFyeQorICAgICAqIHByb3BlcnR5IGFsaWFzLCBvciBhIHNwZWNpYWwgSUQuICBTcGVjaWFsIElEcyBhcmUgbWF0Y2hlZAorICAgICAqIGxvb3NlbHkgYW5kIGNvcnJlc3BvbmQgdG8gdGhlIGZvbGxvd2luZyBzZXRzOgorICAgICAqCisgICAgICogIkFOWSIgPSBbXHUwMDAwLVxVMDAxMEZGRkZdLAorICAgICAqICJBU0NJSSIgPSBbXHUwMDAwLVx1MDA3Rl0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWVBbGlhcyBhIHZhbHVlIGFsaWFzLCBlaXRoZXIgc2hvcnQgb3IgbG9uZy4gIFRoZQorICAgICAqIG5hbWUgaXMgbWF0Y2hlZCBsb29zZWx5LiAgU2VlIFByb3BlcnR5VmFsdWVBbGlhc2VzLnR4dCBmb3IKKyAgICAgKiBuYW1lcyBhbmQgYSBkZXNjcmlwdGlvbiBvZiBsb29zZSBtYXRjaGluZy4gIEluIGFkZGl0aW9uIHRvCisgICAgICogYWxpYXNlcyBsaXN0ZWQsIG51bWVyaWMgdmFsdWVzIGFuZCBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzZXMKKyAgICAgKiBtYXkgYmUgZXhwcmVzc2VkIG51bWVyaWNhbGx5LCBlLmcuLCAoIm52IiwgIjAuNSIpIG9yICgiY2NjIiwKKyAgICAgKiAiMjIwIikuICBUaGUgdmFsdWUgc3RyaW5nIG1heSBhbHNvIGJlIGVtcHR5LgorICAgICAqCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzIHNldAorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQcm9wZXJ0eUFsaWFzKFN0cmluZyBwcm9wZXJ0eUFsaWFzLCBTdHJpbmcgdmFsdWVBbGlhcykgeworICAgICAgICByZXR1cm4gYXBwbHlQcm9wZXJ0eUFsaWFzKHByb3BlcnR5QWxpYXMsIHZhbHVlQWxpYXMsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIGNvbnRhaW4gdGhvc2UgY29kZSBwb2ludHMgd2hpY2ggaGF2ZSB0aGUKKyAgICAgKiBnaXZlbiB2YWx1ZSBmb3IgdGhlIGdpdmVuIHByb3BlcnR5LiAgUHJpb3IgY29udGVudHMgb2YgdGhpcworICAgICAqIHNldCBhcmUgbG9zdC4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHlBbGlhcworICAgICAqIEBwYXJhbSB2YWx1ZUFsaWFzCisgICAgICogQHBhcmFtIHN5bWJvbHMgaWYgbm90IG51bGwsIHRoZW4gc3ltYm9scyBhcmUgZmlyc3QgY2FsbGVkIHRvIHNlZSBpZiBhIHByb3BlcnR5CisgICAgICogaXMgYXZhaWxhYmxlLiBJZiB0cnVlLCB0aGVuIGV2ZXJ5dGhpbmcgZWxzZSBpcyBza2lwcGVkLgorICAgICAqIEByZXR1cm4gdGhpcyBzZXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGFwcGx5UHJvcGVydHlBbGlhcyhTdHJpbmcgcHJvcGVydHlBbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQWxpYXMsIFN5bWJvbFRhYmxlIHN5bWJvbHMpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaW50IHA7CisgICAgICAgIGludCB2OworICAgICAgICBib29sZWFuIG11c3ROb3RCZUVtcHR5ID0gZmFsc2UsIGludmVydCA9IGZhbHNlOworCisgICAgICAgIGlmIChzeW1ib2xzICE9IG51bGwKKyAgICAgICAgICAgICAgICAmJiAoc3ltYm9scyBpbnN0YW5jZW9mIFhTeW1ib2xUYWJsZSkKKyAgICAgICAgICAgICAgICAmJiAoKFhTeW1ib2xUYWJsZSlzeW1ib2xzKS5hcHBseVByb3BlcnR5QWxpYXMocHJvcGVydHlBbGlhcywgdmFsdWVBbGlhcywgdGhpcykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2YWx1ZUFsaWFzLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgcCA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlFbnVtKHByb3BlcnR5QWxpYXMpOworCisgICAgICAgICAgICAvLyBUcmVhdCBnYyBhcyBnY20KKyAgICAgICAgICAgIGlmIChwID09IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZKSB7CisgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0s7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgocCA+PSBVUHJvcGVydHkuQklOQVJZX1NUQVJUICYmIHAgPCBVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB8fAorICAgICAgICAgICAgICAgIChwID49IFVQcm9wZXJ0eS5JTlRfU1RBUlQgJiYgcCA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHx8CisgICAgICAgICAgICAgICAgKHAgPj0gVVByb3BlcnR5Lk1BU0tfU1RBUlQgJiYgcCA8IFVQcm9wZXJ0eS5NQVNLX0xJTUlUKSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHYgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKHAsIHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBudW1lcmljIENDQworICAgICAgICAgICAgICAgICAgICBpZiAocCA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgcCA9PSBVUHJvcGVydHkuTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBwID09IFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2ID0gSW50ZWdlci5wYXJzZUludChVdGlsaXR5LmRlbGV0ZVJ1bGVXaGl0ZVNwYWNlKHZhbHVlQWxpYXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSByZXN1bHRhbnQgc2V0IGlzIGVtcHR5IHRoZW4gdGhlIG51bWVyaWMgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhcyBpbnZhbGlkLgorICAgICAgICAgICAgICAgICAgICAgICAgLy9tdXN0Tm90QmVFbXB0eSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbGQgY29kZSB3YXMgd3Jvbmc7IGFueXRoaW5nIGJldHdlZW4gMCBhbmQgMjU1IGlzIHZhbGlkIGV2ZW4gaWYgdW51c2VkLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgPCAwIHx8IHYgPiAyNTUpIHRocm93IGU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgICAgIHN3aXRjaCAocCkgeworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVkFMVUU6CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB2YWx1ZSA9IERvdWJsZS5wYXJzZURvdWJsZShVdGlsaXR5LmRlbGV0ZVJ1bGVXaGl0ZVNwYWNlKHZhbHVlQWxpYXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5RmlsdGVyKG5ldyBOdW1lcmljVmFsdWVGaWx0ZXIodmFsdWUpLCBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0NIQVIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OQU1FOgorICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBNdXN0IG11bmdlIG5hbWUsIHNpbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVQ2hhcmFjdGVyLmNoYXJGcm9tTmFtZSgpIGRvZXMgbm90IGRvCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAnbG9vc2UnIG1hdGNoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJ1ZiA9IG11bmdlQ2hhck5hbWUodmFsdWVBbGlhcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwID09IFVQcm9wZXJ0eS5OQU1FKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDaGFyRnJvbUV4dGVuZGVkTmFtZShidWYpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldENoYXJGcm9tTmFtZTFfMChidWYpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjaGFyYWN0ZXIgbmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZF91bmNoZWNrZWQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5BR0U6CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE11c3QgbXVuZ2UgbmFtZSwgc2luY2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKCkgZG9lcyBub3QgZG8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICdsb29zZScgbWF0Y2hpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uSW5mbyB2ZXJzaW9uID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UobXVuZ2VDaGFyTmFtZSh2YWx1ZUFsaWFzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBseUZpbHRlcihuZXcgVmVyc2lvbkZpbHRlcih2ZXJzaW9uKSwgVUNoYXJhY3RlclByb3BlcnR5LlNSQ19QUk9QU1ZFQyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHAgaXMgYSBub24tYmluYXJ5LCBub24tZW51bWVyYXRlZCBwcm9wZXJ0eSB0aGF0IHdlCisgICAgICAgICAgICAgICAgLy8gZG9uJ3Qgc3VwcG9ydCAoeWV0KS4KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbnN1cHBvcnRlZCBwcm9wZXJ0eSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyB2YWx1ZUFsaWFzIGlzIGVtcHR5LiAgSW50ZXJwcmV0IGFzIEdlbmVyYWwgQ2F0ZWdvcnksIFNjcmlwdCwKKyAgICAgICAgICAgIC8vIEJpbmFyeSBwcm9wZXJ0eSwgb3IgQU5ZIG9yIEFTQ0lJLiAgVXBvbiBzdWNjZXNzLCBwIGFuZCB2IHdpbGwKKyAgICAgICAgICAgIC8vIGJlIHNldC4KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0s7CisgICAgICAgICAgICAgICAgdiA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocCwgcHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHAgPSBVUHJvcGVydHkuU0NSSVBUOworICAgICAgICAgICAgICAgICAgICB2ID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlRW51bShwLCBwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5RW51bShwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwID0gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHAgPj0gVVByb3BlcnR5LkJJTkFSWV9TVEFSVCAmJiBwIDwgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdiA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDAgPT0gVVByb3BlcnR5QWxpYXNlcy5jb21wYXJlKEFOWV9JRCwgcHJvcGVydHlBbGlhcykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoTUlOX1ZBTFVFLCBNQVhfVkFMVUUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgwID09IFVQcm9wZXJ0eUFsaWFzZXMuY29tcGFyZShBU0NJSV9JRCwgcHJvcGVydHlBbGlhcykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoMCwgMHg3Rik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKDAgPT0gVVByb3BlcnR5QWxpYXNlcy5jb21wYXJlKEFTU0lHTkVELCBwcm9wZXJ0eUFsaWFzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFs6QXNzaWduZWQ6XT1bOl5DbjpdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0s7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9ICgxPDxVQ2hhcmFjdGVyLlVOQVNTSUdORUQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmVydCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByb3BlcnR5IG5hbWUgd2FzIG5ldmVyIG1hdGNoZWQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwcm9wZXJ0eSBhbGlhczogIiArIHByb3BlcnR5QWxpYXMgKyAiPSIgKyB2YWx1ZUFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIHByb3BlcnkgbmFtZSwgYnV0IGl0IGlzbid0IGJpbmFyeSwgc28gdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IGJlIHN1cHBsaWVkLgorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTWlzc2luZyBwcm9wZXJ0eSB2YWx1ZSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXBwbHlJbnRQcm9wZXJ0eVZhbHVlKHAsIHYpOworICAgICAgICBpZihpbnZlcnQpIHsKKyAgICAgICAgICAgIGNvbXBsZW1lbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtdXN0Tm90QmVFbXB0eSAmJiBpc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIG11c3ROb3RCZUVtcHR5IGlzIHNldCB0byB0cnVlIGlmIGFuIGVtcHR5IHNldCBpbmRpY2F0ZXMKKyAgICAgICAgICAgIC8vIGludmFsaWQgaW5wdXQuCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHByb3BlcnR5IHZhbHVlIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcm9wZXJ0eSBzZXQgcGF0dGVybnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBwb3NpdGlvbiwgaW4gdGhlIGdpdmVuIHBhdHRlcm4sIGFwcGVhcnMKKyAgICAgKiB0byBiZSB0aGUgc3RhcnQgb2YgYSBwcm9wZXJ0eSBzZXQgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1Byb3BlcnR5UGF0dGVybihTdHJpbmcgcGF0dGVybiwgaW50IHBvcykgeworICAgICAgICAvLyBQYXR0ZXJucyBhcmUgYXQgbGVhc3QgNSBjaGFyYWN0ZXJzIGxvbmcKKyAgICAgICAgaWYgKChwb3MrNSkgPiBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBMb29rIGZvciBhbiBvcGVuaW5nIFs6LCBbOl4sIFxwLCBvciBcUAorICAgICAgICByZXR1cm4gcGF0dGVybi5yZWdpb25NYXRjaGVzKHBvcywgIls6IiwgMCwgMikgfHwKKyAgICAgICAgICAgIHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyh0cnVlLCBwb3MsICJcXHAiLCAwLCAyKSB8fAorICAgICAgICAgICAgcGF0dGVybi5yZWdpb25NYXRjaGVzKHBvcywgIlxcTiIsIDAsIDIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBpdGVyYXRvciBhcHBlYXJzIHRvIHBvaW50IGF0IGEKKyAgICAgKiBwcm9wZXJ0eSBwYXR0ZXJuLiAgUmVnYXJkbGVzcyBvZiB0aGUgcmVzdWx0LCByZXR1cm4gd2l0aCB0aGUKKyAgICAgKiBpdGVyYXRvciB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIGNoYXJzIGl0ZXJhdG9yIG92ZXIgdGhlIHBhdHRlcm4gY2hhcmFjdGVycy4gIFVwb24gcmV0dXJuCisgICAgICogaXQgd2lsbCBiZSB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIGl0ZXJPcHRzIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBvcHRpb25zCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiByZXNlbWJsZXNQcm9wZXJ0eVBhdHRlcm4oUnVsZUNoYXJhY3Rlckl0ZXJhdG9yIGNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyT3B0cykgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICBpdGVyT3B0cyAmPSB+UnVsZUNoYXJhY3Rlckl0ZXJhdG9yLlBBUlNFX0VTQ0FQRVM7CisgICAgICAgIE9iamVjdCBwb3MgPSBjaGFycy5nZXRQb3MobnVsbCk7CisgICAgICAgIGludCBjID0gY2hhcnMubmV4dChpdGVyT3B0cyk7CisgICAgICAgIGlmIChjID09ICdbJyB8fCBjID09ICdcXCcpIHsKKyAgICAgICAgICAgIGludCBkID0gY2hhcnMubmV4dChpdGVyT3B0cyAmIH5SdWxlQ2hhcmFjdGVySXRlcmF0b3IuU0tJUF9XSElURVNQQUNFKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IChjID09ICdbJykgPyAoZCA9PSAnOicpIDoKKyAgICAgICAgICAgICAgICAgICAgIChkID09ICdOJyB8fCBkID09ICdwJyB8fCBkID09ICdQJyk7CisgICAgICAgIH0KKyAgICAgICAgY2hhcnMuc2V0UG9zKHBvcyk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgdGhlIGdpdmVuIHByb3BlcnR5IHBhdHRlcm4gYXQgdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBzeW1ib2xzIFRPRE8KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgYXBwbHlQcm9wZXJ0eVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIFBhcnNlUG9zaXRpb24gcHBvcywgU3ltYm9sVGFibGUgc3ltYm9scykgeworICAgICAgICBpbnQgcG9zID0gcHBvcy5nZXRJbmRleCgpOworCisgICAgICAgIC8vIE9uIGVudHJ5LCBwcG9zIHNob3VsZCBwb2ludCB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CisKKyAgICAgICAgLy8gTWluaW11bSBsZW5ndGggaXMgNSBjaGFyYWN0ZXJzLCBlLmcuIFxwe0x9CisgICAgICAgIGlmICgocG9zKzUpID4gcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHBvc2l4ID0gZmFsc2U7IC8vIHRydWUgZm9yIFs6cGF0Ol0sIGZhbHNlIGZvciBccHtwYXR9IFxQe3BhdH0gXE57cGF0fQorICAgICAgICBib29sZWFuIGlzTmFtZSA9IGZhbHNlOyAvLyB0cnVlIGZvciBcTntwYXR9LCBvL3cgZmFsc2UKKyAgICAgICAgYm9vbGVhbiBpbnZlcnQgPSBmYWxzZTsKKworICAgICAgICAvLyBMb29rIGZvciBhbiBvcGVuaW5nIFs6LCBbOl4sIFxwLCBvciBcUAorICAgICAgICBpZiAocGF0dGVybi5yZWdpb25NYXRjaGVzKHBvcywgIls6IiwgMCwgMikpIHsKKyAgICAgICAgICAgIHBvc2l4ID0gdHJ1ZTsKKyAgICAgICAgICAgIHBvcyA9IFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UocGF0dGVybiwgcG9zKzIpOworICAgICAgICAgICAgaWYgKHBvcyA8IHBhdHRlcm4ubGVuZ3RoKCkgJiYgcGF0dGVybi5jaGFyQXQocG9zKSA9PSAnXicpIHsKKyAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICBpbnZlcnQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyh0cnVlLCBwb3MsICJcXHAiLCAwLCAyKSB8fAorICAgICAgICAgICAgICAgICAgIHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyhwb3MsICJcXE4iLCAwLCAyKSkgeworICAgICAgICAgICAgY2hhciBjID0gcGF0dGVybi5jaGFyQXQocG9zKzEpOworICAgICAgICAgICAgaW52ZXJ0ID0gKGMgPT0gJ1AnKTsKKyAgICAgICAgICAgIGlzTmFtZSA9IChjID09ICdOJyk7CisgICAgICAgICAgICBwb3MgPSBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKHBhdHRlcm4sIHBvcysyKTsKKyAgICAgICAgICAgIGlmIChwb3MgPT0gcGF0dGVybi5sZW5ndGgoKSB8fCBwYXR0ZXJuLmNoYXJBdChwb3MrKykgIT0gJ3snKSB7CisgICAgICAgICAgICAgICAgLy8gU3ludGF4IGVycm9yOyAiXHAiIG9yICJcUCIgbm90IGZvbGxvd2VkIGJ5ICJ7IgorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3BlbiBkZWxpbWl0ZXIgbm90IHNlZW4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gTG9vayBmb3IgdGhlIG1hdGNoaW5nIGNsb3NlIGRlbGltaXRlciwgZWl0aGVyIDpdIG9yIH0KKyAgICAgICAgaW50IGNsb3NlID0gcGF0dGVybi5pbmRleE9mKHBvc2l4ID8gIjpdIiA6ICJ9IiwgcG9zKTsKKyAgICAgICAgaWYgKGNsb3NlIDwgMCkgeworICAgICAgICAgICAgLy8gU3ludGF4IGVycm9yOyBjbG9zZSBkZWxpbWl0ZXIgbWlzc2luZworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBMb29rIGZvciBhbiAnPScgc2lnbi4gIElmIHRoaXMgaXMgcHJlc2VudCwgd2Ugd2lsbCBwYXJzZSBhCisgICAgICAgIC8vIG1lZGl1bSBccHtnYz1DZn0gb3IgbG9uZyBccHtHZW5lcmFsQ2F0ZWdvcnk9Rm9ybWF0fQorICAgICAgICAvLyBwYXR0ZXJuLgorICAgICAgICBpbnQgZXF1YWxzID0gcGF0dGVybi5pbmRleE9mKCc9JywgcG9zKTsKKyAgICAgICAgU3RyaW5nIHByb3BOYW1lLCB2YWx1ZU5hbWU7CisgICAgICAgIGlmIChlcXVhbHMgPj0gMCAmJiBlcXVhbHMgPCBjbG9zZSAmJiAhaXNOYW1lKSB7CisgICAgICAgICAgICAvLyBFcXVhbHMgc2VlbjsgcGFyc2UgbWVkaXVtL2xvbmcgcGF0dGVybgorICAgICAgICAgICAgcHJvcE5hbWUgPSBwYXR0ZXJuLnN1YnN0cmluZyhwb3MsIGVxdWFscyk7CisgICAgICAgICAgICB2YWx1ZU5hbWUgPSBwYXR0ZXJuLnN1YnN0cmluZyhlcXVhbHMrMSwgY2xvc2UpOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVyZSBubyAnPScgaXMgc2VlbiwgYW5kIFxOe30KKyAgICAgICAgICAgIHByb3BOYW1lID0gcGF0dGVybi5zdWJzdHJpbmcocG9zLCBjbG9zZSk7CisgICAgICAgICAgICB2YWx1ZU5hbWUgPSAiIjsKKworICAgICAgICAgICAgLy8gSGFuZGxlIFxOe25hbWV9CisgICAgICAgICAgICBpZiAoaXNOYW1lKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGxpdHRsZSBpbmVmZmljaWVudCBzaW5jZSBpdCBtZWFucyB3ZSBoYXZlIHRvCisgICAgICAgICAgICAgICAgLy8gcGFyc2UgIm5hIiBiYWNrIHRvIFVQcm9wZXJ0eS5OQU1FIGV2ZW4gdGhvdWdoIHdlIGFscmVhZHkKKyAgICAgICAgICAgICAgICAvLyBrbm93IGl0J3MgVVByb3BlcnR5Lk5BTUUuICBJZiB3ZSByZWZhY3RvciB0aGUgQVBJIHRvCisgICAgICAgICAgICAgICAgLy8gc3VwcG9ydCBhcmdzIG9mIChpbnQsIFN0cmluZykgdGhlbiB3ZSBjYW4gcmVtb3ZlCisgICAgICAgICAgICAgICAgLy8gIm5hIiBhbmQgbWFrZSB0aGlzIGEgbGl0dGxlIG1vcmUgZWZmaWNpZW50LgorICAgICAgICAgICAgICAgIHZhbHVlTmFtZSA9IHByb3BOYW1lOworICAgICAgICAgICAgICAgIHByb3BOYW1lID0gIm5hIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGFwcGx5UHJvcGVydHlBbGlhcyhwcm9wTmFtZSwgdmFsdWVOYW1lLCBzeW1ib2xzKTsKKworICAgICAgICBpZiAoaW52ZXJ0KSB7CisgICAgICAgICAgICBjb21wbGVtZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBNb3ZlIHRvIHRoZSBsaW1pdCBwb3NpdGlvbiBhZnRlciB0aGUgY2xvc2UgZGVsaW1pdGVyCisgICAgICAgIHBwb3Muc2V0SW5kZXgoY2xvc2UgKyAocG9zaXggPyAyIDogMSkpOworCisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcHJvcGVydHkgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gY2hhcnMgaXRlcmF0b3Igb3ZlciB0aGUgcGF0dGVybiBjaGFyYWN0ZXJzLiAgVXBvbiByZXR1cm4KKyAgICAgKiBpdCB3aWxsIGJlIGFkdmFuY2VkIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHBhcnNlZAorICAgICAqIHBhdHRlcm4sIG9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiBpZiBhbGwgY2hhcmFjdGVycyBhcmUKKyAgICAgKiBwYXJzZWQuCisgICAgICogQHBhcmFtIHJlYnVpbHRQYXQgdGhlIHBhdHRlcm4gdGhhdCB3YXMgcGFyc2VkLCByZWJ1aWx0IG9yCisgICAgICogY29waWVkIGZyb20gdGhlIGlucHV0IHBhdHRlcm4sIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEBwYXJhbSBzeW1ib2xzIFRPRE8KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYXBwbHlQcm9wZXJ0eVBhdHRlcm4oUnVsZUNoYXJhY3Rlckl0ZXJhdG9yIGNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVidWlsdFBhdCwgU3ltYm9sVGFibGUgc3ltYm9scykgeworICAgICAgICBTdHJpbmcgcGF0ID0gY2hhcnMubG9va2FoZWFkKCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIGFwcGx5UHJvcGVydHlQYXR0ZXJuKHBhdCwgcG9zLCBzeW1ib2xzKTsKKyAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiSW52YWxpZCBwcm9wZXJ0eSBwYXR0ZXJuIik7CisgICAgICAgIH0KKyAgICAgICAgY2hhcnMuanVtcGFoZWFkKHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgcmVidWlsdFBhdC5hcHBlbmQocGF0LnN1YnN0cmluZygwLCBwb3MuZ2V0SW5kZXgoKSkpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENhc2UgZm9sZGluZyBBUEkKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgZm9yIGNvbnN0cnVjdG9yIGFuZCBhcHBseVBhdHRlcm4oKSBpbmRpY2F0aW5nIHRoYXQKKyAgICAgKiB3aGl0ZSBzcGFjZSBzaG91bGQgYmUgaWdub3JlZC4gIElmIHNldCwgaWdub3JlIGNoYXJhY3RlcnMgZm9yCisgICAgICogd2hpY2ggVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoKSByZXR1cm5zIHRydWUsCisgICAgICogdW5sZXNzIHRoZXkgYXJlIHF1b3RlZCBvciBlc2NhcGVkLiAgVGhpcyBtYXkgYmUgT1JlZCB0b2dldGhlcgorICAgICAqIHdpdGggb3RoZXIgc2VsZWN0b3JzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElHTk9SRV9TUEFDRSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIGZvciBjb25zdHJ1Y3RvciwgYXBwbHlQYXR0ZXJuKCksIGFuZCBjbG9zZU92ZXIoKQorICAgICAqIGluZGljYXRpbmcgbGV0dGVyIGNhc2UuICBUaGlzIG1heSBiZSBPUmVkIHRvZ2V0aGVyIHdpdGggb3RoZXIKKyAgICAgKiBzZWxlY3RvcnMuCisgICAgICoKKyAgICAgKiBFbmFibGUgY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZy4gIEUuZy4sICJbYWJdIiB3aXRoIHRoaXMgZmxhZworICAgICAqIHdpbGwgbWF0Y2ggJ2EnLCAnQScsICdiJywgYW5kICdCJy4gICJbXmFiXSIgd2l0aCB0aGlzIGZsYWcgd2lsbAorICAgICAqIG1hdGNoIGFsbCBleGNlcHQgJ2EnLCAnQScsICdiJywgYW5kICdCJy4gVGhpcyBwZXJmb3JtcyBhIGZ1bGwKKyAgICAgKiBjbG9zdXJlIG92ZXIgY2FzZSBtYXBwaW5ncywgZS5nLiBVKzAxN0YgZm9yIHMuCisgICAgICoKKyAgICAgKiBUaGUgcmVzdWx0aW5nIHNldCBpcyBhIHN1cGVyc2V0IG9mIHRoZSBpbnB1dCBmb3IgdGhlIGNvZGUgcG9pbnRzIGJ1dAorICAgICAqIG5vdCBmb3IgdGhlIHN0cmluZ3MuCisgICAgICogSXQgcGVyZm9ybXMgYSBjYXNlIG1hcHBpbmcgY2xvc3VyZSBvZiB0aGUgY29kZSBwb2ludHMgYW5kIGFkZHMKKyAgICAgKiBmdWxsIGNhc2UgZm9sZGluZyBzdHJpbmdzIGZvciB0aGUgY29kZSBwb2ludHMsIGFuZCByZWR1Y2VzIHN0cmluZ3Mgb2YKKyAgICAgKiB0aGUgb3JpZ2luYWwgc2V0IHRvIHRoZWlyIGZ1bGwgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnRzLgorICAgICAqCisgICAgICogVGhpcyBpcyBkZXNpZ25lZCBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGVzLCBmb3IgZXhhbXBsZQorICAgICAqIGluIHJlZ3VsYXIgZXhwcmVzc2lvbnMuIFRoZSBmdWxsIGNvZGUgcG9pbnQgY2FzZSBjbG9zdXJlIGFsbG93cyBjaGVja2luZyBvZgorICAgICAqIGFuIGlucHV0IGNoYXJhY3RlciBkaXJlY3RseSBhZ2FpbnN0IHRoZSBjbG9zdXJlIHNldC4KKyAgICAgKiBTdHJpbmdzIGFyZSBtYXRjaGVkIGJ5IGNvbXBhcmluZyB0aGUgY2FzZS1mb2xkZWQgZm9ybSBmcm9tIHRoZSBjbG9zdXJlCisgICAgICogc2V0IHdpdGggYW4gaW5jcmVtZW50YWwgY2FzZSBmb2xkaW5nIG9mIHRoZSBzdHJpbmcgaW4gcXVlc3Rpb24uCisgICAgICoKKyAgICAgKiBUaGUgY2xvc3VyZSBzZXQgd2lsbCBhbHNvIGNvbnRhaW4gc2luZ2xlIGNvZGUgcG9pbnRzIGlmIHRoZSBvcmlnaW5hbAorICAgICAqIHNldCBjb250YWluZWQgY2FzZS1lcXVpdmFsZW50IHN0cmluZ3MgKGxpa2UgVSswMERGIGZvciAic3MiIG9yICJTcyIgZXRjLikuCisgICAgICogVGhpcyBpcyBub3QgbmVjZXNzYXJ5ICh0aGF0IGlzLCByZWR1bmRhbnQpIGZvciB0aGUgYWJvdmUgbWF0Y2hpbmcgbWV0aG9kCisgICAgICogYnV0IHJlc3VsdHMgaW4gdGhlIHNhbWUgY2xvc3VyZSBzZXRzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgb3JpZ2luYWwKKyAgICAgKiBzZXQgY29udGFpbmVkIHRoZSBjb2RlIHBvaW50IG9yIGEgc3RyaW5nLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FTRSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBBbGlhcyBmb3IgVW5pY29kZVNldC5DQVNFLCBmb3IgZWFzZSBvZiBwb3J0aW5nIGZyb20gQysrIHdoZXJlIElDVTRDCisgICAgICogYWxzbyBoYXMgYm90aCBVU0VUX0NBU0UgYW5kIFVTRVRfQ0FTRV9JTlNFTlNJVElWRSAoc2VlIHVzZXQuaCkuCisgICAgICogQHNlZSAjQ0FTRQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FTRV9JTlNFTlNJVElWRSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIGZvciBjb25zdHJ1Y3RvciwgYXBwbHlQYXR0ZXJuKCksIGFuZCBjbG9zZU92ZXIoKQorICAgICAqIGluZGljYXRpbmcgbGV0dGVyIGNhc2UuICBUaGlzIG1heSBiZSBPUmVkIHRvZ2V0aGVyIHdpdGggb3RoZXIKKyAgICAgKiBzZWxlY3RvcnMuCisgICAgICoKKyAgICAgKiBFbmFibGUgY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZy4gIEUuZy4sICJbYWJdIiB3aXRoIHRoaXMgZmxhZworICAgICAqIHdpbGwgbWF0Y2ggJ2EnLCAnQScsICdiJywgYW5kICdCJy4gICJbXmFiXSIgd2l0aCB0aGlzIGZsYWcgd2lsbAorICAgICAqIG1hdGNoIGFsbCBleGNlcHQgJ2EnLCAnQScsICdiJywgYW5kICdCJy4gVGhpcyBhZGRzIHRoZSBsb3dlci0sCisgICAgICogdGl0bGUtLCBhbmQgdXBwZXJjYXNlIG1hcHBpbmdzIGFzIHdlbGwgYXMgdGhlIGNhc2UgZm9sZGluZworICAgICAqIG9mIGVhY2ggZXhpc3RpbmcgZWxlbWVudCBpbiB0aGUgc2V0LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUREX0NBU0VfTUFQUElOR1MgPSA0OworCisgICAgLy8gIGFkZCB0aGUgcmVzdWx0IG9mIGEgZnVsbCBjYXNlIG1hcHBpbmcgdG8gdGhlIHNldAorICAgIC8vICB1c2Ugc3RyIGFzIGEgdGVtcG9yYXJ5IHN0cmluZyB0byBhdm9pZCBjb25zdHJ1Y3Rpbmcgb25lCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBhZGRDYXNlTWFwcGluZyhVbmljb2RlU2V0IHNldCwgaW50IHJlc3VsdCwgU3RyaW5nQnVmZmVyIGZ1bGwpIHsKKyAgICAgICAgaWYocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIGlmKHJlc3VsdCA+IFVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAvLyBhZGQgYSBzaW5nbGUtY29kZSBwb2ludCBjYXNlIG1hcHBpbmcKKyAgICAgICAgICAgICAgICBzZXQuYWRkKHJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFkZCBhIHN0cmluZyBjYXNlIG1hcHBpbmcgZnJvbSBmdWxsIHdpdGggbGVuZ3RoIHJlc3VsdAorICAgICAgICAgICAgICAgIHNldC5hZGQoZnVsbC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBmdWxsLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyByZXN1bHQgPCAwOiB0aGUgY29kZSBwb2ludCBtYXBwZWQgdG8gaXRzZWxmLCBubyBuZWVkIHRvIGFkZCBpdAorICAgICAgICAvLyBzZWUgVUNhc2VQcm9wcworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb3NlIHRoaXMgc2V0IG92ZXIgdGhlIGdpdmVuIGF0dHJpYnV0ZS4gIEZvciB0aGUgYXR0cmlidXRlCisgICAgICogQ0FTRSwgdGhlIHJlc3VsdCBpcyB0byBtb2RpZnkgdGhpcyBzZXQgc28gdGhhdDoKKyAgICAgKgorICAgICAqIDEuIEZvciBlYWNoIGNoYXJhY3RlciBvciBzdHJpbmcgJ2EnIGluIHRoaXMgc2V0LCBhbGwgc3RyaW5ncworICAgICAqICdiJyBzdWNoIHRoYXQgZm9sZENhc2UoYSkgPT0gZm9sZENhc2UoYikgYXJlIGFkZGVkIHRvIHRoaXMgc2V0LgorICAgICAqIChGb3IgbW9zdCAnYScgdGhhdCBhcmUgc2luZ2xlIGNoYXJhY3RlcnMsICdiJyB3aWxsIGhhdmUKKyAgICAgKiBiLmxlbmd0aCgpID09IDEuKQorICAgICAqCisgICAgICogMi4gRm9yIGVhY2ggc3RyaW5nICdlJyBpbiB0aGUgcmVzdWx0aW5nIHNldCwgaWYgZSAhPQorICAgICAqIGZvbGRDYXNlKGUpLCAnZScgd2lsbCBiZSByZW1vdmVkLgorICAgICAqCisgICAgICogRXhhbXBsZTogW2FxXHUwMERGe0JjfXtiQ317Rml9XSA9PiBbYUFxUVx1MDBERlx1RkIwMXtzc317YmN9e2ZpfV0KKyAgICAgKgorICAgICAqIChIZXJlIGZvbGRDYXNlKHgpIHJlZmVycyB0byB0aGUgb3BlcmF0aW9uCisgICAgICogVUNoYXJhY3Rlci5mb2xkQ2FzZSh4LCB0cnVlKSwgYW5kIGEgPT0gYiBhY3R1YWxseSBkZW5vdGVzCisgICAgICogYS5lcXVhbHMoYiksIG5vdCBwb2ludGVyIGNvbXBhcmlzb24uKQorICAgICAqCisgICAgICogQHBhcmFtIGF0dHJpYnV0ZSBiaXRtYXNrIGZvciBhdHRyaWJ1dGVzIHRvIGNsb3NlIG92ZXIuCisgICAgICogQ3VycmVudGx5IG9ubHkgdGhlIENBU0UgYml0IGlzIHN1cHBvcnRlZC4gIEFueSB1bmRlZmluZWQgYml0cworICAgICAqIGFyZSBpZ25vcmVkLgorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcyBzZXQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY2xvc2VPdmVyKGludCBhdHRyaWJ1dGUpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaWYgKChhdHRyaWJ1dGUgJiAoQ0FTRSB8IEFERF9DQVNFX01BUFBJTkdTKSkgIT0gMCkgeworICAgICAgICAgICAgVUNhc2VQcm9wcyBjc3A7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNzcCA9IFVDYXNlUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgICAgICB9IGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZm9sZFNldCA9IG5ldyBVbmljb2RlU2V0KHRoaXMpOworICAgICAgICAgICAgVUxvY2FsZSByb290ID0gVUxvY2FsZS5ST09UOworCisgICAgICAgICAgICAvLyBzdGFydCB3aXRoIGlucHV0IHNldCB0byBndWFyYW50ZWUgaW5jbHVzaW9uCisgICAgICAgICAgICAvLyBDQVNFOiByZW1vdmUgc3RyaW5ncyBiZWNhdXNlIHRoZSBzdHJpbmdzIHdpbGwgYWN0dWFsbHkgYmUgcmVkdWNlZCAoZm9sZGVkKTsKKyAgICAgICAgICAgIC8vICAgICAgIHRoZXJlZm9yZSwgc3RhcnQgd2l0aCBubyBzdHJpbmdzIGFuZCBhZGQgb25seSB0aG9zZSBuZWVkZWQKKyAgICAgICAgICAgIGlmKChhdHRyaWJ1dGUgJiBDQVNFKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZm9sZFNldC5zdHJpbmdzLmNsZWFyKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBuID0gZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBmdWxsID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IGxvY0NhY2hlW10gPSBuZXcgaW50WzFdOworCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kICAgPSBnZXRSYW5nZUVuZChpKTsKKworICAgICAgICAgICAgICAgIGlmKChhdHRyaWJ1dGUgJiBDQVNFKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZ1bGwgY2FzZSBjbG9zdXJlCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGNwPXN0YXJ0OyBjcDw9ZW5kOyArK2NwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjc3AuYWRkQ2FzZUNsb3N1cmUoY3AsIGZvbGRTZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGNhc2UgbWFwcGluZ3MKKyAgICAgICAgICAgICAgICAgICAgLy8gKGRvZXMgbm90IGFkZCBsb25nIHMgZm9yIHJlZ3VsYXIgcywgb3IgS2VsdmluIGZvciBrLCBmb3IgZXhhbXBsZSkKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgY3A9c3RhcnQ7IGNwPD1lbmQ7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNzcC50b0Z1bGxMb3dlcihjcCwgbnVsbCwgZnVsbCwgcm9vdCwgbG9jQ2FjaGUpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ2FzZU1hcHBpbmcoZm9sZFNldCwgcmVzdWx0LCBmdWxsKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY3NwLnRvRnVsbFRpdGxlKGNwLCBudWxsLCBmdWxsLCByb290LCBsb2NDYWNoZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRDYXNlTWFwcGluZyhmb2xkU2V0LCByZXN1bHQsIGZ1bGwpOworCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjc3AudG9GdWxsVXBwZXIoY3AsIG51bGwsIGZ1bGwsIHJvb3QsIGxvY0NhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZENhc2VNYXBwaW5nKGZvbGRTZXQsIHJlc3VsdCwgZnVsbCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNzcC50b0Z1bGxGb2xkaW5nKGNwLCBmdWxsLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZENhc2VNYXBwaW5nKGZvbGRTZXQsIHJlc3VsdCwgZnVsbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXN0cmluZ3MuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0cjsKKyAgICAgICAgICAgICAgICBpZiAoKGF0dHJpYnV0ZSAmIENBU0UpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoKFN0cmluZylpdC5uZXh0KCksIDApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWNzcC5hZGRTdHJpbmdDYXNlQ2xvc3VyZShzdHIsIGZvbGRTZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sZFNldC5hZGQoc3RyKTsgLy8gZG9lcyBub3QgbWFwIHRvIGNvZGUgcG9pbnRzOiBhZGQgdGhlIGZvbGRlZCBzdHJpbmcgaXRzZWxmCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2Uocm9vdCk7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSAoU3RyaW5nKWl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRTZXQuYWRkKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2Uocm9vdCwgc3RyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb2xkU2V0LmFkZChVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKHJvb3QsIHN0ciwgYmkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRTZXQuYWRkKFVDaGFyYWN0ZXIudG9VcHBlckNhc2Uocm9vdCwgc3RyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb2xkU2V0LmFkZChVQ2hhcmFjdGVyLmZvbGRDYXNlKHN0ciwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc2V0KGZvbGRTZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGNsYXNzIGZvciBjdXN0b21pemluZyBVbmljb2RlU2V0IHBhcnNpbmcgb2YgcHJvcGVydGllcy4KKyAgICAgKiBUT0RPOiBleHRlbmQgdG8gYWxsb3cgY3VzdG9taXppbmcgb2YgY29kZXBvaW50IHJhbmdlcworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqIEBhdXRob3IgbWVkYXZpcworICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBzdGF0aWMgY2xhc3MgWFN5bWJvbFRhYmxlIGltcGxlbWVudHMgU3ltYm9sVGFibGUgeworICAgICAgICAvKioKKyAgICAgICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvcgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgWFN5bWJvbFRhYmxlKCl7fQorICAgICAgICAvKioKKyAgICAJICogQGludGVybmFsCisgICAgCSAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgIAkgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVNYXRjaGVyIGxvb2t1cE1hdGNoZXIoaW50IGkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgCS8qKgorICAgIAkgKiBAaW50ZXJuYWwKKyAgICAJICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgCSAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBhcHBseVByb3BlcnR5QWxpYXMoU3RyaW5nIHByb3BlcnR5TmFtZSwgU3RyaW5nIHByb3BlcnR5VmFsdWUsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAJLyoqCisgICAgCSAqIEBpbnRlcm5hbAorICAgIAkgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAJICovCisgICAgICAgIHB1YmxpYyBjaGFyW10gbG9va3VwKFN0cmluZyBzKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIAkvKioKKyAgICAJICogQGludGVybmFsCisgICAgCSAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgIAkgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBwYXJzZVJlZmVyZW5jZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MsIGludCBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gZnJvemVuOworICAgIAorICAgIC8qKgorICAgICAqIElzIHRoaXMgZnJvemVuLCBhY2NvcmRpbmcgdG8gdGhlIEZyZWV6YWJsZSBpbnRlcmZhY2U/CisgICAgICogQHJldHVybiB2YWx1ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRnJvemVuKCkgeworICAgICAgICByZXR1cm4gZnJvemVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyZWV6ZSB0aGlzIGNsYXNzLCBhY2NvcmRpbmcgdG8gdGhlIEZyZWV6YWJsZSBpbnRlcmZhY2UuCisgICAgICogQHJldHVybiB0aGlzCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBmcmVlemUoKSB7CisgICAgICAgIGZyb3plbiA9IHRydWU7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDbG9uZSBhIHRoYXdlZCB2ZXJzaW9uIG9mIHRoaXMgY2xhc3MsIGFjY29yZGluZyB0byB0aGUgRnJlZXphYmxlIGludGVyZmFjZS4KKyAgICAgKiBAcmV0dXJuIHRoaXMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lQXNUaGF3ZWQoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gKFVuaWNvZGVTZXQpIGNsb25lKCk7CisgICAgICAgIHJlc3VsdC5mcm96ZW4gPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLy8gaW50ZXJuYWwgZnVuY3Rpb24KKyAgICBwcml2YXRlIHZvaWQgY2hlY2tGcm96ZW4oKSB7CisgICAgICAgIGlmIChmcm96ZW4pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgZnJvemVuIG9iamVjdCIpOworICAgICAgICB9CisgICAgfQorfQorLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQ3OTdjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjUzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIGNvbnRlbnRzIG9mIGEgVW5pY29kZVNldC4gIEl0CisgKiBpdGVyYXRlcyBvdmVyIGVpdGhlciBjb2RlIHBvaW50cyBvciBjb2RlIHBvaW50IHJhbmdlcy4gIEFmdGVyIGFsbAorICogY29kZSBwb2ludHMgb3IgcmFuZ2VzIGhhdmUgYmVlbiByZXR1cm5lZCwgaXQgcmV0dXJucyB0aGUKKyAqIG11bHRpY2hhcmFjdGVyIHN0cmluZ3Mgb2YgdGhlIFVuaWNvZFNldCwgaWYgYW55LgorICoKKyAqIDxwPlRvIGl0ZXJhdGUgb3ZlciBjb2RlIHBvaW50cywgdXNlIGEgbG9vcCBsaWtlIHRoaXM6CisgKiA8cHJlPgorICogVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICogd2hpbGUgKHNldC5uZXh0KCkpIHsKKyAqICAgaWYgKHNldC5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICogICAgIHByb2Nlc3NDb2RlcG9pbnQoc2V0LmNvZGVwb2ludCk7CisgKiAgIH0gZWxzZSB7CisgKiAgICAgcHJvY2Vzc1N0cmluZyhzZXQuc3RyaW5nKTsKKyAqICAgfQorICogfQorICogPC9wcmU+CisgKgorICogPHA+VG8gaXRlcmF0ZSBvdmVyIGNvZGUgcG9pbnQgcmFuZ2VzLCB1c2UgYSBsb29wIGxpa2UgdGhpczoKKyAqIDxwcmU+CisgKiBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgKiB3aGlsZSAoc2V0Lm5leHRSYW5nZSgpKSB7CisgKiAgIGlmIChzZXQuY29kZXBvaW50ICE9IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAqICAgICBwcm9jZXNzQ29kZXBvaW50UmFuZ2Uoc2V0LmNvZGVwb2ludCwgc2V0LmNvZGVwb2ludEVuZCk7CisgKiAgIH0gZWxzZSB7CisgKiAgICAgcHJvY2Vzc1N0cmluZyhzZXQuc3RyaW5nKTsKKyAqICAgfQorICogfQorICogPC9wcmU+CisgKiBAYXV0aG9yIE0uIERhdmlzCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFVuaWNvZGVTZXRJdGVyYXRvciB7CisgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgPHR0PmNvZGVwb2ludDwvdHQ+IGlmIHRoZSBpdGVyYXRvciBwb2ludHMgdG8gYSBzdHJpbmcuCisgICAgICogSWYgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlbiBleGFtaW5lCisgICAgICogPHR0PnN0cmluZzwvdHQ+IGZvciB0aGUgY3VycmVudCBpdGVyYXRpb24gcmVzdWx0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IElTX1NUUklORyA9IC0xOworICAgIAorICAgIC8qKgorICAgICAqIEN1cnJlbnQgY29kZSBwb2ludCwgb3IgdGhlIHNwZWNpYWwgdmFsdWUgPHR0PklTX1NUUklORzwvdHQ+LCBpZgorICAgICAqIHRoZSBpdGVyYXRvciBwb2ludHMgdG8gYSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBjb2RlcG9pbnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGl0ZXJhdGluZyBvdmVyIHJhbmdlcyB1c2luZyA8dHQ+bmV4dFJhbmdlKCk8L3R0PiwKKyAgICAgKiA8dHQ+Y29kZXBvaW50RW5kPC90dD4gY29udGFpbnMgdGhlIGluY2x1c2l2ZSBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBpZiA8dHQ+Y29kZXBvaW50ICE9IElTX1NUUklORzwvdHQ+LiAgSWYKKyAgICAgKiBpdGVyYXRpbmcgb3ZlciBjb2RlIHBvaW50cyB1c2luZyA8dHQ+bmV4dCgpPC90dD4sIG9yIGlmCisgICAgICogPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlbiB0aGUgdmFsdWUgb2YKKyAgICAgKiA8dHQ+Y29kZXBvaW50RW5kPC90dD4gaXMgdW5kZWZpbmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29kZXBvaW50RW5kOworCisgICAgLyoqCisgICAgICogSWYgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlbiA8dHQ+c3RyaW5nPC90dD4gcG9pbnRzCisgICAgICogdG8gdGhlIGN1cnJlbnQgc3RyaW5nLiAgSWYgPHR0PmNvZGVwb2ludCAhPSBJU19TVFJJTkc8L3R0PiwgdGhlCisgICAgICogdmFsdWUgb2YgPHR0PnN0cmluZzwvdHQ+IGlzIHVuZGVmaW5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHN0cmluZzsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gaXRlcmF0ZSBvdmVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXRJdGVyYXRvcihVbmljb2RlU2V0IHNldCkgeworICAgICAgICByZXNldChzZXQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgbm90aGluZy4gIDx0dD5uZXh0KCk8L3R0PiBhbmQKKyAgICAgKiA8dHQ+bmV4dFJhbmdlKCk8L3R0PiByZXR1cm4gZmFsc2UuIFRoaXMgaXMgYSBjb252ZW5pZW5jZQorICAgICAqIGNvbnN0cnVjdG9yIGFsbG93aW5nIHRoZSB0YXJnZXQgdG8gYmUgc2V0IGxhdGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0SXRlcmF0b3IoKSB7CisgICAgICAgIHJlc2V0KG5ldyBVbmljb2RlU2V0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSBzZXQsIGVpdGhlciBhIHNpbmdsZSBjb2RlIHBvaW50CisgICAgICogb3IgYSBzdHJpbmcuICBJZiB0aGVyZSBhcmUgbm8gbW9yZSBlbGVtZW50cyBpbiB0aGUgc2V0LCByZXR1cm4KKyAgICAgKiBmYWxzZS4gIElmIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4sIHRoZSB2YWx1ZSBpcyBhCisgICAgICogc3RyaW5nIGluIHRoZSA8dHQ+c3RyaW5nPC90dD4gZmllbGQuICBPdGhlcndpc2UgdGhlIHZhbHVlIGlzIGEKKyAgICAgKiBzaW5nbGUgY29kZSBwb2ludCBpbiB0aGUgPHR0PmNvZGVwb2ludDwvdHQ+IGZpZWxkLgorICAgICAqIAorICAgICAqIDxwPlRoZSBvcmRlciBvZiBpdGVyYXRpb24gaXMgYWxsIGNvZGUgcG9pbnRzIGluIHNvcnRlZCBvcmRlciwKKyAgICAgKiBmb2xsb3dlZCBieSBhbGwgc3RyaW5ncyBzb3J0ZWQgb3JkZXIuICA8dHQ+Y29kZXBvaW50RW5kPC90dD4gaXMKKyAgICAgKiB1bmRlZmluZWQgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4gIDx0dD5zdHJpbmc8L3R0PiBpcworICAgICAqIHVuZGVmaW5lZCB1bmxlc3MgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0Pi4gIERvIG5vdCBtaXgKKyAgICAgKiBjYWxscyB0byA8dHQ+bmV4dCgpPC90dD4gYW5kIDx0dD5uZXh0UmFuZ2UoKTwvdHQ+IHdpdGhvdXQKKyAgICAgKiBjYWxsaW5nIDx0dD5yZXNldCgpPC90dD4gYmV0d2VlbiB0aGVtLiAgVGhlIHJlc3VsdHMgb2YgZG9pbmcgc28KKyAgICAgKiBhcmUgdW5kZWZpbmVkLgorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1lbnQgaW4gdGhlIHNldCBhbmQgdGhpcworICAgICAqIG9iamVjdCBjb250YWlucyB0aGUgZWxlbWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBuZXh0KCkgeworICAgICAgICBpZiAobmV4dEVsZW1lbnQgPD0gZW5kRWxlbWVudCkgeworICAgICAgICAgICAgY29kZXBvaW50ID0gY29kZXBvaW50RW5kID0gbmV4dEVsZW1lbnQrKzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChyYW5nZSA8IGVuZFJhbmdlKSB7CisgICAgICAgICAgICBsb2FkUmFuZ2UoKytyYW5nZSk7CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBjb2RlcG9pbnRFbmQgPSBuZXh0RWxlbWVudCsrOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHN0cmluZ0l0ZXJhdG9yID09IG51bGwgaWZmIHRoZXJlIGFyZSBubyBzdHJpbmcgZWxlbWVudHMgcmVtYWluaW5nCisgICAgICAgIAorICAgICAgICBpZiAoc3RyaW5nSXRlcmF0b3IgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBjb2RlcG9pbnQgPSBJU19TVFJJTkc7IC8vIHNpZ25hbCB0aGF0IHZhbHVlIGlzIGFjdHVhbGx5IGEgc3RyaW5nCisgICAgICAgIHN0cmluZyA9IChTdHJpbmcpc3RyaW5nSXRlcmF0b3IubmV4dCgpOworICAgICAgICBpZiAoIXN0cmluZ0l0ZXJhdG9yLmhhc05leHQoKSkgc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgc2V0LCBlaXRoZXIgYSBjb2RlIHBvaW50IHJhbmdlCisgICAgICogb3IgYSBzdHJpbmcuICBJZiB0aGVyZSBhcmUgbm8gbW9yZSBlbGVtZW50cyBpbiB0aGUgc2V0LCByZXR1cm4KKyAgICAgKiBmYWxzZS4gIElmIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4sIHRoZSB2YWx1ZSBpcyBhCisgICAgICogc3RyaW5nIGluIHRoZSA8dHQ+c3RyaW5nPC90dD4gZmllbGQuICBPdGhlcndpc2UgdGhlIHZhbHVlIGlzIGEKKyAgICAgKiByYW5nZSBvZiBvbmUgb3IgbW9yZSBjb2RlIHBvaW50cyBmcm9tIDx0dD5jb2RlcG9pbnQ8L3R0PiB0bworICAgICAqIDx0dD5jb2RlcG9pbnRlRW5kPC90dD4gaW5jbHVzaXZlLgorICAgICAqIAorICAgICAqIDxwPlRoZSBvcmRlciBvZiBpdGVyYXRpb24gaXMgYWxsIGNvZGUgcG9pbnRzIHJhbmdlcyBpbiBzb3J0ZWQKKyAgICAgKiBvcmRlciwgZm9sbG93ZWQgYnkgYWxsIHN0cmluZ3Mgc29ydGVkIG9yZGVyLiAgUmFuZ2VzIGFyZQorICAgICAqIGRpc2pvaW50IGFuZCBub24tY29udGlndW91cy4gIDx0dD5zdHJpbmc8L3R0PiBpcyB1bmRlZmluZWQKKyAgICAgKiB1bmxlc3MgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0Pi4gIERvIG5vdCBtaXggY2FsbHMgdG8KKyAgICAgKiA8dHQ+bmV4dCgpPC90dD4gYW5kIDx0dD5uZXh0UmFuZ2UoKTwvdHQ+IHdpdGhvdXQgY2FsbGluZworICAgICAqIDx0dD5yZXNldCgpPC90dD4gYmV0d2VlbiB0aGVtLiAgVGhlIHJlc3VsdHMgb2YgZG9pbmcgc28gYXJlCisgICAgICogdW5kZWZpbmVkLgorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1lbnQgaW4gdGhlIHNldCBhbmQgdGhpcworICAgICAqIG9iamVjdCBjb250YWlucyB0aGUgZWxlbWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBuZXh0UmFuZ2UoKSB7CisgICAgICAgIGlmIChuZXh0RWxlbWVudCA8PSBlbmRFbGVtZW50KSB7CisgICAgICAgICAgICBjb2RlcG9pbnRFbmQgPSBlbmRFbGVtZW50OworICAgICAgICAgICAgY29kZXBvaW50ID0gbmV4dEVsZW1lbnQ7CisgICAgICAgICAgICBuZXh0RWxlbWVudCA9IGVuZEVsZW1lbnQrMTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChyYW5nZSA8IGVuZFJhbmdlKSB7CisgICAgICAgICAgICBsb2FkUmFuZ2UoKytyYW5nZSk7CisgICAgICAgICAgICBjb2RlcG9pbnRFbmQgPSBlbmRFbGVtZW50OworICAgICAgICAgICAgY29kZXBvaW50ID0gbmV4dEVsZW1lbnQ7CisgICAgICAgICAgICBuZXh0RWxlbWVudCA9IGVuZEVsZW1lbnQrMTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzdHJpbmdJdGVyYXRvciA9PSBudWxsIGlmZiB0aGVyZSBhcmUgbm8gc3RyaW5nIGVsZW1lbnRzIHJlbWFpbmluZworICAgICAgICAKKyAgICAgICAgaWYgKHN0cmluZ0l0ZXJhdG9yID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29kZXBvaW50ID0gSVNfU1RSSU5HOyAvLyBzaWduYWwgdGhhdCB2YWx1ZSBpcyBhY3R1YWxseSBhIHN0cmluZworICAgICAgICBzdHJpbmcgPSAoU3RyaW5nKXN0cmluZ0l0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgaWYgKCFzdHJpbmdJdGVyYXRvci5oYXNOZXh0KCkpIHN0cmluZ0l0ZXJhdG9yID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgaXRlcmF0b3IgdG8gdmlzaXQgdGhlIGVsZW1lbnRzIG9mIHRoZSBnaXZlbiBzZXQgYW5kCisgICAgICogcmVzZXRzIGl0IHRvIHRoZSBzdGFydCBvZiB0aGF0IHNldC4gIFRoZSBpdGVyYXRvciBpcyB2YWxpZCBvbmx5CisgICAgICogc28gbG9uZyBhcyA8dHQ+c2V0PC90dD4gaXMgdmFsaWQuCisgICAgICogQHBhcmFtIHNldCB0aGUgc2V0IHRvIGl0ZXJhdGUgb3Zlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldChVbmljb2RlU2V0IHNldCkgeworICAgICAgICB0aGlzLnNldCA9IHNldDsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGlzIGl0ZXJhdG9yIHRvIHRoZSBzdGFydCBvZiB0aGUgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICBlbmRSYW5nZSA9IHNldC5nZXRSYW5nZUNvdW50KCkgLSAxOworICAgICAgICByYW5nZSA9IDA7CisgICAgICAgIGVuZEVsZW1lbnQgPSAtMTsKKyAgICAgICAgbmV4dEVsZW1lbnQgPSAwOyAgICAgICAgICAgIAorICAgICAgICBpZiAoZW5kUmFuZ2UgPj0gMCkgeworICAgICAgICAgICAgbG9hZFJhbmdlKHJhbmdlKTsKKyAgICAgICAgfQorICAgICAgICBzdHJpbmdJdGVyYXRvciA9IG51bGw7CisgICAgICAgIGlmIChzZXQuc3RyaW5ncyAhPSBudWxsKSB7CisgICAgICAgICAgICBzdHJpbmdJdGVyYXRvciA9IHNldC5zdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBpZiAoIXN0cmluZ0l0ZXJhdG9yLmhhc05leHQoKSkgc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgc3RyaW5nIGZyb20gdGhlIGl0ZXJhdG9yLiBPbmx5IHVzZSBhZnRlciBjYWxsaW5nIG5leHQoKSwgbm90IG5leHRSYW5nZSgpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKCkgeworICAgICAgICBpZiAoY29kZXBvaW50ICE9IElTX1NUUklORykgeworICAgICAgICAgICAgcmV0dXJuIFVURjE2LnZhbHVlT2YoY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RyaW5nOworICAgIH0KKyAgICAKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PSBQUklWQVRFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgc2V0OworICAgIHByaXZhdGUgaW50IGVuZFJhbmdlID0gMDsKKyAgICBwcml2YXRlIGludCByYW5nZSA9IDA7CisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBlbmRFbGVtZW50OworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbmV4dEVsZW1lbnQ7CisgICAgcHJpdmF0ZSBJdGVyYXRvciBzdHJpbmdJdGVyYXRvciA9IG51bGw7CisgICAgCisgICAgLyoqCisgICAgICogSW52YXJpYW50OiBzdHJpbmdJdGVyYXRvciBpcyBudWxsIHdoZW4gdGhlcmUgYXJlIG5vIChtb3JlKSBzdHJpbmdzIHJlbWFpbmluZworICAgICAqLworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgbG9hZFJhbmdlKGludCByYW5nZSkgeworICAgICAgICBuZXh0RWxlbWVudCA9IHNldC5nZXRSYW5nZVN0YXJ0KHJhbmdlKTsKKyAgICAgICAgZW5kRWxlbWVudCA9IHNldC5nZXRSYW5nZUVuZChyYW5nZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzA4NWRkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSB0b1VwcGVyKCkKKyAqIGNhc2UgbWFwcGluZy4KKyAqLworY2xhc3MgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIGFjY2Vzc2libGUgSUQuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBfSUQgPSAiQW55LVVwcGVyIjsKKyAgICAvLyBUT0RPOiBBZGQgdmFyaWFudHMgZm9yIHRyLCBheiwgbHQsIGRlZmF1bHQgPSBkZWZhdWx0IGxvY2FsZQorCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwcml2YXRlIFVMb2NhbGUgbG9jYWxlOworCisgICAgcHJpdmF0ZSBVQ2FzZVByb3BzIGNzcDsKKyAgICBwcml2YXRlIFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yIGl0ZXI7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgcmVzdWx0OworICAgIHByaXZhdGUgaW50W10gbG9jQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yKFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHN1cGVyKF9JRCwgbnVsbCk7CisgICAgICAgIGxvY2FsZSA9IGxvYzsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNzcD1VQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjc3A9bnVsbDsKKyAgICAgICAgfQorICAgICAgICBpdGVyPW5ldyBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcigpOworICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIGxvY0NhY2hlID0gbmV3IGludFsxXTsKKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICBpZihjc3A9PW51bGwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmKG9mZnNldHMuc3RhcnQgPj0gb2Zmc2V0cy5saW1pdCkgeworICAgICAgICByZXR1cm47CisgICAgfSAKKworICAgIGl0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgIGludCBjLCBkZWx0YTsKKworICAgIC8vIFdhbGsgdGhyb3VnaCBvcmlnaW5hbCBzdHJpbmcKKyAgICAvLyBJZiB0aGVyZSBpcyBhIGNhc2UgY2hhbmdlLCBtb2RpZnkgY29ycmVzcG9uZGluZyBwb3NpdGlvbiBpbiByZXBsYWNlYWJsZQorCisgICAgaXRlci5zZXRJbmRleChvZmZzZXRzLnN0YXJ0KTsKKyAgICBpdGVyLnNldExpbWl0KG9mZnNldHMubGltaXQpOworICAgIGl0ZXIuc2V0Q29udGV4dExpbWl0cyhvZmZzZXRzLmNvbnRleHRTdGFydCwgb2Zmc2V0cy5jb250ZXh0TGltaXQpOworICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCkgeworICAgICAgICBjPWNzcC50b0Z1bGxVcHBlcihjLCBpdGVyLCByZXN1bHQsIGxvY2FsZSwgbG9jQ2FjaGUpOworCisgICAgICAgIGlmKGl0ZXIuZGlkUmVhY2hMaW1pdCgpICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgIC8vIHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb24gdHJpZWQgdG8gbG9vayBiZXlvbmQgdGhlIGNvbnRleHQgbGltaXQKKyAgICAgICAgICAgIC8vIHdhaXQgZm9yIG1vcmUgaW5wdXQKKyAgICAgICAgICAgIG9mZnNldHMuc3RhcnQ9aXRlci5nZXRDYXNlTWFwQ1BTdGFydCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgKi8KKyAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAvKiBjIG1hcHBlZCB0byBpdHNlbGYsIG5vIGNoYW5nZSAqLworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAvKiByZXBsYWNlIGJ5IHRoZSBtYXBwaW5nIHN0cmluZyAqLworICAgICAgICAgICAgZGVsdGE9aXRlci5yZXBsYWNlKHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiByZXBsYWNlIGJ5IHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICBkZWx0YT1pdGVyLnJlcGxhY2UoVVRGMTYudmFsdWVPZihjKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKGRlbHRhIT0wKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0cy5saW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvdGV4dC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmJkMDcwZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitFeHRlbnNpb25zIGFuZCBlbmhhbmNlbWVudHMgdG8gamF2YS50ZXh0IHRvIHN1cHBvcnQgdW5pY29kZSB0cmFuc2Zvcm1zLCBVbmljb2RlU2V0LCBzdXJyb2dhdGUgY2hhciB1dGlsaXRpZXMsIFVDQSBjb2xsYXRpb24sIG5vcm1hbGl6YXRpb24sIGJyZWFrIGl0ZXJhdGlvbiAocnVsZSBhbmQgZGljdGlvbmFyeSBiYXNlZCksIGVuaGFuY2VkIG51bWJlciBmb3JtYXQsIGludGVybmF0aW9uYWwgc3RyaW5nIHNlYXJjaGluZywgYW5kIGFyYWJpYyBzaGFwaW5nLjwvcD4KKworPHVsPgorPGxpPlVuaWNvZGUgVHJhbnNmb3JtcyAoVHJhbnNsaXRlcmF0aW9uKSBjb252ZXJ0IGJldHdlZW4gZGlmZmVyZW50IHJlcHJlc2VudGF0aW9ucyBvZiB1bmljb2RlIHRleHQuPC9saT4KKzxsaT5Vbmljb2RlU2V0IHByb3ZpZGVzIHNldCBvcGVyYXRpb25zIG9uIHVuaWNvZGUgY2hhcmFjdGVycyBhbmQgc3RyaW5ncywgYW5kIGFyZSByZXByZXNlbnRhYmxlIGFzIGNvbXBhY3QgZXhwcmVzc2lvbnMuPC9saT4KKzxsaT5TdXJyb2dhdGUgY2hhcmFjdGVyIHV0aWxpdGllcyAoVVRGMTYpIHByb3ZpZGVzIGluZGV4aW5nIGFuZCBzdWJzdHJpbmcgb3BlcmF0aW9ucyBvbiB0ZXh0IGNvbnRhaW5pbmcgc3Vycm9nYXRlcy48L2xpPgorPGxpPlVDQSBjb2xsYXRpb24gaW1wbGVtZW50cyB0aGUgY3VycmVudCBVbmljb2RlIENvbGxhdGlvbiBBbGdvcml0aG0uICBEYXRhIGZvciBtYW55IGxvY2FsZS1zcGVjaWZpYyBjb2xsYXRpb25zIGlzIHByb3ZpZGVkLjwvbGk+Cis8bGk+Tm9ybWFsaXphdGlvbiBzdXBwb3J0cyBzdGFuZGFyZCBVbmljb2RlIG5vcm1hbGl6YXRpb24gZm9ybXMgYXMgd2VsbCBhcyBGQ0QuPC9saT4KKzxsaT5CcmVhayBpdGVyYXRpb24gc3VwcG9ydHMgY2hhcmFjdGVyLCB3b3JkLCBsaW5lLCBzZW50ZW5jZXMsIGFuZCB0aXRsZSBjYXNlIGJyZWFrcy48L2xpPgorPGxpPkVuaGFuY2VkIG51bWJlciBmb3JtYXQgdG8gJ3NwZWxsIG91dCcgbnVtYmVycywgcGFkZGluZyBhbmQgcm91bmRpbmcgY29udHJvbC48L2xpPgorPGxpPkludGVybmF0aW9uYWxseSBzZW5zaXRpdmUgc3RyaW5nIHNlYXJjaGluZywgdXNlcyBjb2xsYXRpb24uPC9saT4KKzxsaT5BcmFiaWMgc2hhcGluZyBjb252ZXJ0cyBiZXR3ZWVuIHNoYXBlZCBhbmQgdW5zaGFwZWQgYXJhYmljIGNoYXJhY3RlcnMgYW5kIGRpZ2l0cy48L2xpPgorPC91bD4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0J1ZGRoaXN0Q2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0J1ZGRoaXN0Q2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMzU3ZDI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsMjY1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gaXMgYSBzdWJjbGFzcyBvZiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIHRoYXQgbnVtYmVycyB5ZWFycyBzaW5jZSB0aGUgYmlydGggb2YgdGhlIEJ1ZGRoYS4gIFRoaXMgaXMgdGhlIGNpdmlsIGNhbGVuZGFyCisgKiBpbiBzb21lIHByZWRvbWluYW50bHkgQnVkZGhpc3QgY291bnRyaWVzIHN1Y2ggYXMgVGhhaWxhbmQsIGFuZCBpdCBpcyB1c2VkIGZvcgorICogcmVsaWdpb3VzIHB1cnBvc2VzIGVsc2V3aGVyZS4KKyAqIDxwPgorICogVGhlIEJ1ZGRoaXN0IGNhbGVuZGFyIGlzIGlkZW50aWNhbCB0byB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGluIGFsbCByZXNwZWN0cworICogZXhjZXB0IGZvciB0aGUgeWVhciBhbmQgZXJhLiAgWWVhcnMgYXJlIG51bWJlcmVkIHNpbmNlIHRoZSBiaXJ0aCBvZiB0aGUKKyAqIEJ1ZGRoYSBpbiA1NDMgQkMgKEdyZWdvcmlhbiksIHNvIHRoYXQgMSBBRCAoR3JlZ29yaWFuKSBpcyBlcXVpdmFsZW50IHRvIDU0NAorICogQkUgKEJ1ZGRoaXN0IEVyYSkgYW5kIDE5OTggQUQgaXMgMjU0MSBCRS4KKyAqIDxwPgorICogVGhlIEJ1ZGRoaXN0IENhbGVuZGFyIGhhcyBvbmx5IG9uZSBhbGxvd2FibGUgZXJhOiA8Y29kZT5CRTwvY29kZT4uICBJZiB0aGUKKyAqIGNhbGVuZGFyIGlzIG5vdCBpbiBsZW5pZW50IG1vZGUgKHNlZSA8Y29kZT5zZXRMZW5pZW50PC9jb2RlPiksIGRhdGVzIGJlZm9yZQorICogMS8xLzEgQkUgYXJlIHJlamVjdGVkIHdpdGggYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPi4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHN1YmNsYXNzZWQuPC9wPgorICogPHA+CisgKiBCdWRkaGlzdENhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWJ1ZGRoaXN0IjwvY29kZT4uPC9wPgorICogCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICoKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIEJ1ZGRoaXN0Q2FsZW5kYXIgZXh0ZW5kcyBHcmVnb3JpYW5DYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjU4MzAwNTI3ODEzMjM4MDYzMUw7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIHRoZSBCdWRkaGlzdCBFcmEuICBUaGlzIGlzIHRoZSBvbmx5IGFsbG93YWJsZSA8Y29kZT5FUkE8L2NvZGU+CisgICAgICogdmFsdWUgZm9yIHRoZSBCdWRkaGlzdCBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNFUkEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCRSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IHVzaW5nIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihEYXRlIGRhdGUpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBzZXRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoeWVhciwgbW9udGgsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBCdWRkaGlzdENhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1pbnV0ZSAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIHNlY29uZCAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICB7CisgICAgICAgIHN1cGVyKHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIHNlY29uZCk7CisgICAgfQorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaGUgb25seSBwcmFjdGljYWwgZGlmZmVyZW5jZSBmcm9tIGEgR3JlZ29yaWFuIGNhbGVuZGFyIGlzIHRoYXQgeWVhcnMKKyAgICAvLyBhcmUgbnVtYmVyZWQgc2luY2UgdGhlIGJpcnRoIG9mIHRoZSBCdWRkaGEuICBBIGNvdXBsZSBvZiBvdmVycmlkZXMgd2lsbAorICAgIC8vIHRha2UgY2FyZSBvZiB0aGF0Li4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIFN0YXJ0cyBpbiAtNTQzIEFELCBpZSA1NDQgQkMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQlVEREhJU1RfRVJBX1NUQVJUID0gLTU0MzsKKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAgICAKKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIGlmIChuZXdlckZpZWxkKEVYVEVOREVEX1lFQVIsIFlFQVIpID09IEVYVEVOREVEX1lFQVIpIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSLCAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIElnbm9yZSB0aGUgZXJhLCBhcyB0aGVyZSBpcyBvbmx5IG9uZQorICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB5ZWFyOworICAgIH0KKworICAgIC8vIFJldHVybiBKRCBvZiBzdGFydCBvZiBnaXZlbiBtb250aC95ZWFyCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovICAgIAorICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsIGJvb2xlYW4gdXNlTW9udGgpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGV5ZWFyICsgQlVEREhJU1RfRVJBX1NUQVJULCBtb250aCwgdXNlTW9udGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgc3VwZXIuaGFuZGxlQ29tcHV0ZUZpZWxkcyhqdWxpYW5EYXkpOworICAgICAgICBpbnQgeSA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIpIC0gQlVEREhJU1RfRVJBX1NUQVJUOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5KTsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVJBLCAwKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgR3JlZ29yaWFuQ2FsZW5kYXIuICBUaGVyZSBpcyBvbmx5IG9uZSBCdWRkaGlzdCBFUkEuICBXZQorICAgICAqIHNob3VsZCByZWFsbHkgaGFuZGxlIFlFQVIsIFlFQVJfV09ZLCBhbmQgRVhURU5ERURfWUVBUiBoZXJlIHRvbyB0bworICAgICAqIGltcGxlbWVudCB0aGUgMS4uNTAwMDAwMCByYW5nZSwgYnV0IGl0J3Mgbm90IGNyaXRpY2FsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIGlmIChmaWVsZCA9PSBFUkEpIHsKKyAgICAgICAgICAgIHJldHVybiBCRTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VwZXIuaGFuZGxlR2V0TGltaXQoZmllbGQsIGxpbWl0VHlwZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBDYWxlbmRhciB0eXBlLgorICAgICAqIEByZXR1cm4gdHlwZSBvZiBjYWxlbmRhciAoZ3JlZ29yaWFuLCBldGMuKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImJ1ZGRoaXN0IjsKKyAgICB9CisKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5OworICAgIHB1YmxpYyBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkoKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSBuZXcgQ2FsZW5kYXJGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQnVkZGhpc3RDYWxlbmRhcih0eiwgbG9jKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGZhY3RvcnlOYW1lKCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkJ1ZGRoaXN0IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnl0ZUFycmF5V3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnl0ZUFycmF5V3JhcHBlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NGJiNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9CeXRlQXJyYXlXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwyOTcgQEAKKy8vIyNoZWFkZXIKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKKy8vI2Vsc2UKKy8vIyNpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5CeXRlQnVmZmVyOworLy8jZW5kaWYKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogPHA+CisgKiBBIHNpbXBsZSB1dGlsaXR5IGNsYXNzIHRvIHdyYXAgYSBieXRlIGFycmF5LgorICogPC9wPgorICogPHA+CisgKiBHZW5lcmFsbHkgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IG9iamVjdCBpbnRvIGEgbWV0aG9kLiBUaGUgbWV0aG9kIHRha2VzCisgKiByZXNwb25zaWJpbGl0eSBvZiB3cml0aW5nIGludG8gdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgYW5kIGluY3JlYXNpbmcgaXRzCisgKiBzaXplIHdoZW4gbmVjZXNzYXJ5LgorICogPC9wPiAKKyAqIEBhdXRob3Igc3luIHdlZQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBjbGFzcyBCeXRlQXJyYXlXcmFwcGVyIGltcGxlbWVudHMgQ29tcGFyYWJsZQoreworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBieXRlIGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBieXRlW10gYnl0ZXM7CisKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IHVzZWQuIAorICAgICAqIERpZmZlcmVudCBmcm9tIGJ5dGVzLmxlbmd0aCwgc2l6ZSB3aWxsIGJlICZsdDs9IGJ5dGVzLmxlbmd0aC4gCisgICAgICogU2VtYW50aWNzIG9mIHNpemUgaXMgc2ltaWxhciB0byBqYXZhLnV0aWwuVmVjdG9yLnNpemUoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNpemU7CisgICAgCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqIAorICAgICAqIENvbnN0cnVjdCBhIG5ldyBCeXRlQXJyYXlXcmFwcGVyIHdpdGggbm8gZGF0YS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnl0ZUFycmF5V3JhcHBlcigpIHsKKyAgICAgICAgLy8gbGVhdmUgYnl0ZXMgbnVsbCwgZG9uJ3QgYWxsb2NhdGUgdHdpY2UKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgQnl0ZUFycmF5V3JhcHBlciBmcm9tIGEgYnl0ZSBhcnJheSBhbmQgc2l6ZQorICAgICAqIEBwYXJhbSBieXRlc1RvQWRvcHQgdGhlIGJ5dGUgYXJyYXkgdG8gYWRvcHQKKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbGVuZ3RoIG9mIHZhbGlkIGRhdGEgaW4gdGhlIGJ5dGUgYXJyYXkKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgYnl0ZXNUb0Fkb3B0ID09IG51bGwgYW5kIHNpemUgIT0gMCwgb3IKKyAgICAgKiBzaXplIDwgMCwgb3Igc2l6ZSA+IGJ5dGVzVG9BZG9wdC5sZW5ndGguCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnl0ZUFycmF5V3JhcHBlcihieXRlW10gYnl0ZXNUb0Fkb3B0LCBpbnQgc2l6ZSkgeworICAgICAgICBpZiAoKGJ5dGVzVG9BZG9wdCA9PSBudWxsICYmIHNpemUgIT0gMCkgfHwgc2l6ZSA8IDAgfHwgc2l6ZSA+IGJ5dGVzVG9BZG9wdC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJpbGxlZ2FsIHNpemU6ICIgKyBzaXplKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmJ5dGVzID0gYnl0ZXNUb0Fkb3B0OworICAgICAgICB0aGlzLnNpemUgPSBzaXplOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBCeXRlQXJyYXlXcmFwcGVyIGZyb20gdGhlIGNvbnRlbnRzIG9mIGEgQnl0ZUJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBCeXRlQnVmZmVyIGZyb20gd2hpY2ggdG8gZ2V0IHRoZSBkYXRhLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEJ5dGVBcnJheVdyYXBwZXIoQnl0ZUJ1ZmZlciBzb3VyY2UpIHsKKyAgICAgICAgc2l6ZSA9IHNvdXJjZS5saW1pdCgpOworICAgICAgICBieXRlcyA9IG5ldyBieXRlW3NpemVdOworICAgICAgICBzb3VyY2UuZ2V0KGJ5dGVzLDAsc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGZyb20gQnl0ZUJ1ZmZlcgorICAgICAqIEBwYXJhbSBieXRlQnVmZmVyCisgICAgcHVibGljIEJ5dGVBcnJheVdyYXBwZXIoQnl0ZUFycmF5V3JhcHBlciBzb3VyY2UpIHsKKyAgICAgICAgc2l6ZSA9IHNvdXJjZS5zaXplOworICAgICAgICBieXRlcyA9IG5ldyBieXRlW3NpemVdOworICAgICAgICBjb3B5Qnl0ZXMoc291cmNlLmJ5dGVzLCAwLCBieXRlcywgMCwgc2l6ZSk7CisgICAgfQorICAgICAqLworCisgICAgLyoqCisgICAgICogY3JlYXRlIGZyb20gYnl0ZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gc3JjCisgICAgICogQHBhcmFtIHN0YXJ0CisgICAgICogQHBhcmFtIGxpbWl0CisgICAgcHVibGljIEJ5dGVBcnJheVdyYXBwZXIoYnl0ZVtdIHNyYywgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgc2l6ZSA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGJ5dGVzID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIGNvcHlCeXRlcyhzcmMsIHN0YXJ0LCBieXRlcywgMCwgc2l6ZSk7CisgICAgfQorICAgICAqLworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgaXMgYXQgbGVhc3Qgb2YgbGVuZ3RoIGNhcGFjaXR5LiAgICAgCisgICAgICogSWYgdGhlIGJ5dGUgYXJyYXkgaXMgbnVsbCBvciBpdHMgbGVuZ3RoIGlzIGxlc3MgdGhhbiBjYXBhY2l0eSwgYSBuZXcgCisgICAgICogYnl0ZSBhcnJheSBvZiBsZW5ndGggY2FwYWNpdHkgd2lsbCBiZSBhbGxvY2F0ZWQuICAKKyAgICAgKiBUaGUgY29udGVudHMgb2YgdGhlIGFycmF5IChiZXR3ZWVuIDAgYW5kIHNpemUpIHJlbWFpbiB1bmNoYW5nZWQuIAorICAgICAqIEBwYXJhbSBjYXBhY2l0eSBtaW5pbXVtIGxlbmd0aCBvZiBpbnRlcm5hbCBieXRlIGFycmF5LgorICAgICAqIEByZXR1cm4gdGhpcyBCeXRlQXJyYXlXcmFwcGVyCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnl0ZUFycmF5V3JhcHBlciBlbnN1cmVDYXBhY2l0eShpbnQgY2FwYWNpdHkpIAorICAgIHsKKyAgICAgICAgaWYgKGJ5dGVzID09IG51bGwgfHwgYnl0ZXMubGVuZ3RoIDwgY2FwYWNpdHkpIHsKKyAgICAgICAgICAgIGJ5dGVbXSBuZXdieXRlcyA9IG5ldyBieXRlW2NhcGFjaXR5XTsKKyAgICAgICAgICAgIGNvcHlCeXRlcyhieXRlcywgMCwgbmV3Ynl0ZXMsIDAsIHNpemUpOworICAgICAgICAgICAgYnl0ZXMgPSBuZXdieXRlczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IGZyb20gb2Zmc2V0IDAgdG8gKGxpbWl0IC0gc3RhcnQpIHdpdGggdGhlIAorICAgICAqIGNvbnRlbnRzIG9mIHNyYyBmcm9tIG9mZnNldCBzdGFydCB0byBsaW1pdC4gSWYgdGhlIGJ5dGUgYXJyYXkgaXMgbnVsbCBvciBpdHMgbGVuZ3RoIGlzIGxlc3MgdGhhbiBjYXBhY2l0eSwgYSBuZXcgCisgICAgICogYnl0ZSBhcnJheSBvZiBsZW5ndGggKGxpbWl0IC0gc3RhcnQpIHdpbGwgYmUgYWxsb2NhdGVkLiAgCisgICAgICogVGhpcyByZXNldHMgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgdG8gKGxpbWl0IC0gc3RhcnQpLgorICAgICAqIEBwYXJhbSBzcmMgc291cmNlIGJ5dGUgYXJyYXkgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIHN0YXJ0IHN0YXJ0IG9mZnNldCBvZiBzcmMgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIGxpbWl0IGVuZCArIDEgb2Zmc2V0IG9mIHNyYyB0byBjb3B5IGZyb20KKyAgICAgKiBAcmV0dXJuIHRoaXMgQnl0ZUFycmF5V3JhcHBlcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIEJ5dGVBcnJheVdyYXBwZXIgc2V0KGJ5dGVbXSBzcmMsIGludCBzdGFydCwgaW50IGxpbWl0KSAKKyAgICB7CisgICAgICAgIHNpemUgPSAwOworICAgICAgICBhcHBlbmQoc3JjLCBzdGFydCwgbGltaXQpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwdWJsaWMgZmluYWwgQnl0ZUFycmF5V3JhcHBlciBnZXQoYnl0ZVtdIHRhcmdldCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIAorICAgIHsKKyAgICAgICAgaW50IGxlbiA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGlmIChsZW4gPiBzaXplKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJsaW1pdCB0b28gbG9uZyIpOworICAgICAgICBjb3B5Qnl0ZXMoYnl0ZXMsIDAsIHRhcmdldCwgc3RhcnQsIGxlbik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogQXBwZW5kcyB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSBmcm9tIG9mZnNldCBzaXplIHdpdGggdGhlIAorICAgICAqIGNvbnRlbnRzIG9mIHNyYyBmcm9tIG9mZnNldCBzdGFydCB0byBsaW1pdC4gVGhpcyBpbmNyZWFzZXMgdGhlIHNpemUgb2YKKyAgICAgKiB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB0byAoc2l6ZSArIGxpbWl0IC0gc3RhcnQpLgorICAgICAqIEBwYXJhbSBzcmMgc291cmNlIGJ5dGUgYXJyYXkgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIHN0YXJ0IHN0YXJ0IG9mZnNldCBvZiBzcmMgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIGxpbWl0IGVuZCArIDEgb2Zmc2V0IG9mIHNyYyB0byBjb3B5IGZyb20KKyAgICAgKiBAcmV0dXJuIHRoaXMgQnl0ZUFycmF5V3JhcHBlcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIEJ5dGVBcnJheVdyYXBwZXIgYXBwZW5kKGJ5dGVbXSBzcmMsIGludCBzdGFydCwgaW50IGxpbWl0KSAKKyAgICB7CisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBlbnN1cmVDYXBhY2l0eShzaXplICsgbGVuKTsKKyAgICAgICAgY29weUJ5dGVzKHNyYywgc3RhcnQsIGJ5dGVzLCBzaXplLCBsZW4pOworICAgICAgICBzaXplICs9IGxlbjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoKKyAgICBwdWJsaWMgZmluYWwgQnl0ZUFycmF5V3JhcHBlciBhcHBlbmQoQnl0ZUFycmF5V3JhcHBlciBvdGhlcikgCisgICAgeworICAgICAgICByZXR1cm4gYXBwZW5kKG90aGVyLmJ5dGVzLCAwLCBvdGhlci5zaXplKTsKKyAgICB9CisgICAgKi8KKworICAgIC8qKgorICAgICAqIFJlbGVhc2VzIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IHRvIHRoZSBjYWxsZXIsIHJlc2V0cyB0aGUgaW50ZXJuYWwKKyAgICAgKiBieXRlIGFycmF5IHRvIG51bGwgYW5kIGl0cyBzaXplIHRvIDAuCisgICAgICogQHJldHVybiBpbnRlcm5hbCBieXRlIGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBieXRlW10gcmVsZWFzZUJ5dGVzKCkKKyAgICB7CisgICAgICAgIGJ5dGUgcmVzdWx0W10gPSBieXRlczsKKyAgICAgICAgYnl0ZXMgPSBudWxsOworICAgICAgICBzaXplID0gMDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLy8gQm9pbGVycGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgc3RyaW5nIHZhbHVlIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHQuYXBwZW5kKCIgIik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFV0aWxpdHkuaGV4KGJ5dGVzW2ldJjB4RkYsMikpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgYnl0ZXMgaW4gZWFjaCB3cmFwcGVyIGFyZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIG9iamVjdCB0byBjb21wYXJlIHRvLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdHdvIG9iamVjdHMgYXJlIGVxdWFsLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICBpZiAodGhpcyA9PSBvdGhlcikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChvdGhlciA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyIHRoYXQgPSAoQnl0ZUFycmF5V3JhcHBlcilvdGhlcjsKKyAgICAgICAgICAgIGlmIChzaXplICE9IHRoYXQuc2l6ZSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnl0ZXNbaV0gIT0gdGhhdC5ieXRlc1tpXSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaGNvZGUuCisgICAgICogQHJldHVybiB0aGUgaGFzaGNvZGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpbnQgcmVzdWx0ID0gYnl0ZXMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0ID0gMzcqcmVzdWx0ICsgYnl0ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgb2JqZWN0IHRvIGFub3RoZXIgQnl0ZUFycmF5V3JhcHBlciwgd2hpY2ggbXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIG9iamVjdCB0byBjb21wYXJlIHRvLgorICAgICAqIEByZXR1cm4gYSB2YWx1ZSA8MCwgMCwgb3IgPjAgYXMgdGhpcyBjb21wYXJlcyBsZXNzIHRoYW4sIGVxdWFsIHRvLCBvcgorICAgICAqIGdyZWF0ZXIgdGhhbiBvdGhlci4KKyAgICAgKiBAdGhyb3dzIENsYXNzQ2FzdEV4Y2VwdGlvbiBpZiB0aGUgb3RoZXIgb2JqZWN0IGlzIG5vdCBhIEJ5dGVBcnJheVdyYXBwZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvdGhlcikgeworICAgICAgICBpZiAodGhpcyA9PSBvdGhlcikgcmV0dXJuIDA7CisgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIgdGhhdCA9IChCeXRlQXJyYXlXcmFwcGVyKSBvdGhlcjsKKyAgICAgICAgaW50IG1pblNpemUgPSBzaXplIDwgdGhhdC5zaXplID8gc2l6ZSA6IHRoYXQuc2l6ZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtaW5TaXplOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChieXRlc1tpXSAhPSB0aGF0LmJ5dGVzW2ldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChieXRlc1tpXSAmIDB4RkYpIC0gKHRoYXQuYnl0ZXNbaV0gJiAweEZGKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2l6ZSAtIHRoYXQuc2l6ZTsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ29waWVzIHRoZSBjb250ZW50cyBvZiBzcmMgYnl0ZSBhcnJheSBmcm9tIG9mZnNldCBzcmNvZmYgdG8gdGhlIAorICAgICAqIHRhcmdldCBvZiB0Z3QgYnl0ZSBhcnJheSBhdCB0aGUgb2Zmc2V0IHRndG9mZi4KKyAgICAgKiBAcGFyYW0gc3JjIHNvdXJjZSBieXRlIGFycmF5IHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSBzcmNvZmYgc3RhcnQgb2Zmc2V0IG9mIHNyYyB0byBjb3B5IGZyb20KKyAgICAgKiBAcGFyYW0gdGd0IHRhcmdldCBieXRlIGFycmF5IHRvIGNvcHkgdG8KKyAgICAgKiBAcGFyYW0gdGd0b2ZmIHN0YXJ0IG9mZnNldCBvZiB0Z3QgdG8gY29weSB0bworICAgICAqIEBwYXJhbSBsZW5ndGggc2l6ZSBvZiBjb250ZW50cyB0byBjb3B5CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBjb3B5Qnl0ZXMoYnl0ZVtdIHNyYywgaW50IHNyY29mZiwgYnl0ZVtdIHRndCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGd0b2ZmLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIGlmIChsZW5ndGggPCA2NCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHNyY29mZiwgbiA9IHRndG9mZjsgLS0gbGVuZ3RoID49IDA7ICsrIGksICsrIG4pIHsKKyAgICAgICAgICAgICAgICB0Z3Rbbl0gPSBzcmNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMsIHNyY29mZiwgdGd0LCB0Z3RvZmYsIGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9ICAgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DRUNhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DRUNhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwNzA1MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NFQ2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDMwMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQmFzZSBjbGFzcyBmb3IgRXRoaW9waWNDYWxlbmRhciBhbmQgQ29wdGljQ2FsZW5kYXIuCisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgQ0VDYWxlbmRhciBleHRlbmRzIENhbGVuZGFyIHsKKyAgICAvLyBqZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtOTk5NTQ3NjIzMDY2NDE0MjcxTDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7MCwgMCwgMSwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgLy8gRVJBCisgICAgICAgIHsxLCAxLCA1ODI4OTYzLCA1ODM4MjcwICAgICAgICAgICAgICB9LCAvLyBZRUFSCisgICAgICAgIHswLCAwLCAxMywgMTMgICAgICAgICAgICAgICAgICAgICAgICB9LCAvLyBNT05USAorICAgICAgICB7MSwgMSwgNTIsIDUzICAgICAgICAgICAgICAgICAgICAgICAgfSwgLy8gV0VFS19PRl9ZRUFSCisgICAgICAgIHswLCAwLCAxLCA2ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAvLyBXRUVLX09GX01PTlRICisgICAgICAgIHsxLCAxLCA1LCAzMCAgICAgICAgICAgICAgICAgICAgICAgICB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgezEsIDEsIDM2NSwgMzY2ICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIERBWV9PRl9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfV0VFSworICAgICAgICB7LTEsIC0xLCA0LCA2ICAgICAgICAgICAgICAgICAgICAgICAgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEFNX1BNCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlOVVRFCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBaT05FX09GRlNFVAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRFNUX09GRlNFVAorICAgICAgICB7LTU4MzgyNzAsIC01ODM4MjcwLCA1ODI4OTY0LCA1ODM4MjcxfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERPV19MT0NBTAorICAgICAgICB7LTU4MzgyNjksIC01ODM4MjY5LCA1ODI4OTYzLCA1ODM4MjcwfSwgLy8gRVhURU5ERURfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkRTX0lOX0RBWQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXVtdIGNlTU9OVEhfQ09VTlQgPSB7CisgICAgICAgIC8vbGVuIGxlbjIgc3QgIHN0MgorICAgICAgICB7MzAsIDMwLCAgIDAsICAgMH0sIC8vIE1lc2tlcmVtCisgICAgICAgIHszMCwgMzAsICAzMCwgIDMwfSwgLy8gVGVrZW10IAorICAgICAgICB7MzAsIDMwLCAgNjAsICA2MH0sIC8vIEhlZGFyIAorICAgICAgICB7MzAsIDMwLCAgOTAsICA5MH0sIC8vIFRhaHNhcyAKKyAgICAgICAgezMwLCAzMCwgMTIwLCAxMjB9LCAvLyBUZXIgCisgICAgICAgIHszMCwgMzAsIDE1MCwgMTUwfSwgLy8gWWVrYXRpdAorICAgICAgICB7MzAsIDMwLCAxODAsIDE4MH0sIC8vIE1lZ2FiaXQKKyAgICAgICAgezMwLCAzMCwgMjEwLCAyMTB9LCAvLyBNaWF6aWEKKyAgICAgICAgezMwLCAzMCwgMjQwLCAyNDR9LCAvLyBHZW5ib3QKKyAgICAgICAgezMwLCAzMCwgMjcwLCAyNzB9LCAvLyBTZW5lIAorICAgICAgICB7MzAsIDMwLCAzMDAsIDMwMH0sIC8vIEhhbWxlIAorICAgICAgICB7MzAsIDMwLCAzMzAsIDMzMH0sIC8vIE5laGFzc2UgCisgICAgICAgIHsgNSwgIDYsIDM2MCwgMzYwfSAgLy8gUHdhZ21lCisgICAgICAgIC8vIGxlbiAgbGVuZ3RoIG9mIG1vbnRoCisgICAgICAgIC8vIGxlbjIgbGVuZ3RoIG9mIG1vbnRoIGluIGEgbGVhcCB5ZWFyCisgICAgICAgIC8vIHN0ICAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBzdGFydCBvZiBtb250aAorICAgICAgICAvLyBzdDIgIGRheXMgaW4geWVhciBiZWZvcmUgbW9udGggaW4gbGVhcCB5ZWFyCisgICAgfTsKKyAgICAKKyAgICAvLyBUaGUgQ29wdGljIGFuZCBFdGhpb3BpYyBjYWxlbmRhcnMgZGlmZmVyIG9ubHkgaW4gdGhlaXIgZXBvY2hzLgorICAgIC8vIFdlIGhhbmRsZSB0aGlzIGJ5IHNldHRpbmcgdGhlIGpkT2Zmc2V0IHRvIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KKyAgICAvLyB0aGUgSnVsaWFuIGFuZCBDb3B0aWMgb3IgRXRoaW9waWMgZXBvY2guCisgICAgLy8gVGhpcyB2YWx1ZSBpcyBzZXQgaW4gdGhlIGNsYXNzIGluaXRpYWxpemF0aW9uIHBoYXNlIG9mIHRoZSB0d28KKyAgICAvLyBzdWJjbGFzc2VzLCBDb3B0aWNDYWxlbmRhciBhbmQgRXRoaW9waWNDYWxlbmRhcgorICAgIHByb3RlY3RlZCBpbnQgamRFcG9jaE9mZnNldCAgPSAtMTsKKyAgICAKKworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGRlZmF1bHQgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcigpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgdGhpcyh6b25lLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBUaXNocmkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoeWVhciwgbW9udGgsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgVGlzaHJpLgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjSE9VUl9PRl9EQVkgSE9VUl9PRl9EQVl9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1pbnV0ZSAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldCh5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYWxlbmRhciBzeXN0ZW0gQ29udmVyc3Rpb24gbWV0aG9kcy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1c2VNb250aCkgeworICAgICAgICByZXR1cm4gY2VUb0pEKGV5ZWFyLCBlbW9udGgsIDAsIGpkRXBvY2hPZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUikgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIDEpOyAvLyBEZWZhdWx0IHRvIHllYXIgMQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIDEpOyAvLyBEZWZhdWx0IHRvIHllYXIgMQorICAgICAgICB9CisgICAgICAgIHJldHVybiB5ZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBJbnRlZ2VyW10gZGF0ZSA9IGdldERhdGVGcm9tSkQoanVsaWFuRGF5LCBqZEVwb2NoT2Zmc2V0KTsKKyAgICAgICAgaW50IF95ZWFyICA9IGRhdGVbMF0uaW50VmFsdWUoKTsKKyAgICAgICAgaW50IF9tb250aCA9IGRhdGVbMV0uaW50VmFsdWUoKTsKKyAgICAgICAgaW50IF9kYXkgICA9IGRhdGVbMl0uaW50VmFsdWUoKTsKKyAgICAgICAgaW50IGNleWVhciA9IDA7CisKKyAgICAgICAgLy8gRG8gd2Ugd2FudCB0byB1c2UgRXRoaW9waWNDYWxlbmRhci5BQSwgLkFNIGhlcmU/CisgICAgICAgIGludCBlcmEgPSBHcmVnb3JpYW5DYWxlbmRhci5BRDsKKyAgICAgICAgaWYgKF95ZWFyIDwgMCkgeyAvLyBkbGY6IHRoaXMgaXMgd2hhdCB0aGUgdGVzdCBzYXlzIHRvIGRvCisgICAgICAgICAgICBlcmEgICA9IEdyZWdvcmlhbkNhbGVuZGFyLkJDOworICAgICAgICAgICAgY2V5ZWFyID0gMSAtIF95ZWFyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2V5ZWFyID0gX3llYXI7CisgICAgICAgIH0KKworICAgICAgICBpbnRlcm5hbFNldChNT05USCwgX21vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBfZGF5KTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsICgzMCAqIF9tb250aCkgKyBfZGF5KTsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVhURU5ERURfWUVBUiwgY2V5ZWFyKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVJBLCBlcmEpOworICAgICAgICBpbnRlcm5hbFNldChZRUFSLCBfeWVhcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2VUb0pEKGxvbmcgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGpkRXBvY2hPZmZzZXQpIHsKKworICAgICAgICAvLyBKdWxpYW48LT5FdGhpb3BpYyBhbGdvcml0aG1zIGZyb206CisgICAgICAgIC8vICJDYWxlbmRhcnMgaW4gRXRoaW9waWEiLCBCZXJoYW51IEJleWVuZSwgTWFuZnJlZCBLdWRsZWssIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZQorICAgICAgICAvLyBvZiBFdGhpb3BpYW4gU3R1ZGllcyBYViwgSGFtYnVyZywgMjAwMworCisgICAgICAgIHJldHVybiAoaW50KSAoCisgICAgICAgICAgICAoamRFcG9jaE9mZnNldCszNjUpICAgICAvLyBkaWZmZXJlbmNlIGZyb20gSnVsaWFuIGVwb2NoIHRvIDEsMSwxCisgICAgICAgICAgICArIDM2NSAqICh5ZWFyIC0gMSkgICAgICAvLyBudW1iZXIgb2YgZGF5cyBmcm9tIHllYXJzCisgICAgICAgICAgICArIHF1b3RpZW50KHllYXIsIDQpICAgICAvLyBleHRyYSBkYXkgb2YgbGVhcCB5ZWFyCisgICAgICAgICAgICArIDMwICogKG1vbnRoICsgMSkgICAgICAvLyBudW1iZXIgb2YgZGF5cyBmcm9tIG1vbnRocworICAgICAgICAgICAgKyBkYXRlICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGRheXMgZm9yIHByZXNlbnQgbW9udGgKKyAgICAgICAgICAgIC0gMzEgICAgICAgICAgICAgICAgICAgIC8vIHNsYWNrPworICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEludGVnZXJbXSBnZXREYXRlRnJvbUpEKGludCBqdWxpYW5EYXksIGludCBqZEVwb2NoT2Zmc2V0KSB7CisgICAgICAgIC8vIDE0NjEgaXMgdGhlIG51bWJlciBvZiBkYXlzIGluIDQgeWVhcnMKKyAgICAgICAgbG9uZyByNCA9IG1vZChqdWxpYW5EYXkgLSBqZEVwb2NoT2Zmc2V0LCAxNDYxKTsgLy8gbnVtYmVyIG9mIGRheXMgd2l0aGluIGEgNCB5ZWFyIHBlcmlvZAorICAgICAgICBsb25nICBuID0gbW9kKHI0LCAzNjUpICsgMzY1ICogcXVvdGllbnQocjQsIDE0NjApOyAgLy8gZGF5cyBpbiBwcmVzZW50IHllYXIKKworICAgICAgICBsb25nIGFwcmltZSA9IDQgICAvLyBudW1iZXIgb2YgeWVhcnMgaW4gdGhlIGxlYXAgeWVhciBjeWNsZQorICAgICAgICAgICAgKiBxdW90aWVudChqdWxpYW5EYXkgLSBqZEVwb2NoT2Zmc2V0LCAxNDYxKSAgLy8gbnVtYmVyIG9mIDQgeWVhciBwZXJpb2RzIGJldHdlZW4gZXBvY2hzPworICAgICAgICAgICAgKyBxdW90aWVudChyNCwgMzY1KSAgIC8vIG51bWJlciBvZiByZWd1bGFyIHllYXJzPworICAgICAgICAgICAgLSBxdW90aWVudChyNCwgMTQ2MCkgIC8vIG51bWJlciBvZiA0IHllYXIgcGVyaW9kcz8KKyAgICAgICAgICAgIC0gMTsKKworICAgICAgICBpbnQgX3llYXIgICA9IChpbnQpIChhcHJpbWUgKyAxKTsKKyAgICAgICAgaW50IF9tb250aCAgPSAoaW50KSAocXVvdGllbnQobiwgMzApKTsKKyAgICAgICAgaW50IF9kYXkgICAgPSBtb2QobiwgMzApICsgMTsKKworICAgICAgICByZXR1cm4gbmV3IEludGVnZXJbXXsgbmV3IEludGVnZXIoX3llYXIpLCBuZXcgSW50ZWdlcihfbW9udGgpLCBuZXcgSW50ZWdlcihfZGF5KSB9OworICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBUaGVzZSB1dGlsaXR5IGZ1bmN0aW9ucyBjYW4gYmUgcmVwbGFjZWQgYnkgZXF1aXZhbGVudCAKKyAgICAgKiBmdW5jdGlvbnMgZnJvbSBJQ1UgaWYgYXZhaWxhYmxlLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgbW9kKGxvbmcgaSwgaW50IGopIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIChpIC0gKGxvbmcpIGogKiBxdW90aWVudChpLCBqKSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpbnQgcXVvdGllbnQobG9uZyBpLCBpbnQgaikgeworICAgICAgICByZXR1cm4gKGludCkgTWF0aC5mbG9vcigoZG91YmxlKSBpIC8gaik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzQ0YTI2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw1MjIxIEBACisvKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNhbGVuZGFyRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Db3B0aWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkV0aGlvcGljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworLyoqCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgY29udmVydGluZyBiZXR3ZWVuCisgKiBhIDxjb2RlPkRhdGU8L2NvZGU+IG9iamVjdCBhbmQgYSBzZXQgb2YgaW50ZWdlciBmaWVsZHMgc3VjaCBhcworICogPGNvZGU+WUVBUjwvY29kZT4sIDxjb2RlPk1PTlRIPC9jb2RlPiwgPGNvZGU+REFZPC9jb2RlPiwgPGNvZGU+SE9VUjwvY29kZT4sCisgKiBhbmQgc28gb24uIChBIDxjb2RlPkRhdGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRzIGEgc3BlY2lmaWMgaW5zdGFudCBpbgorICogdGltZSB3aXRoIG1pbGxpc2Vjb25kIHByZWNpc2lvbi4gU2VlCisgKiB7QGxpbmsgRGF0ZX0KKyAqIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgPGNvZGU+RGF0ZTwvY29kZT4gY2xhc3MuKQorICoKKyAqIDxwPjxiPk5vdGU6PC9iPiAgVGhpcyBjbGFzcyBpcyBzaW1pbGFyLCBidXQgbm90IGlkZW50aWNhbCwgdG8gdGhlIGNsYXNzCisgKiA8Y29kZT5qYXZhLnV0aWwuQ2FsZW5kYXI8L2NvZGU+LiAgQ2hhbmdlcyBhcmUgZGV0YWlsZWQgYmVsb3cuCisgKgorICogPHA+CisgKiBTdWJjbGFzc2VzIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpbnRlcnByZXQgYSA8Y29kZT5EYXRlPC9jb2RlPgorICogYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiBhIHNwZWNpZmljIGNhbGVuZGFyIHN5c3RlbS4gIElDVTRKIGNvbnRhaW5zCisgKiBzZXZlcmFsIHN1YmNsYXNzZXMgaW1wbGVtZW50aW5nIGRpZmZlcmVudCBpbnRlcm5hdGlvbmFsIGNhbGVuZGFyIHN5c3RlbXMuCisgKgorICogPHA+CisgKiBMaWtlIG90aGVyIGxvY2FsZS1zZW5zaXRpdmUgY2xhc3NlcywgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHByb3ZpZGVzIGEKKyAqIGNsYXNzIG1ldGhvZCwgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+LCBmb3IgZ2V0dGluZyBhIGdlbmVyYWxseSB1c2VmdWwKKyAqIG9iamVjdCBvZiB0aGlzIHR5cGUuIDxjb2RlPkNhbGVuZGFyPC9jb2RlPidzIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiBtZXRob2QKKyAqIHJldHVybnMgYSBjYWxlbmRhciBvZiBhIHR5cGUgYXBwcm9wcmlhdGUgdG8gdGhlIGxvY2FsZSwgd2hvc2UKKyAqIHRpbWUgZmllbGRzIGhhdmUgYmVlbiBpbml0aWFsaXplZCB3aXRoIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWU6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+Q2FsZW5kYXIgcmlnaHROb3cgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+V2hlbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+IGlzIHVzZWQgYnkgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+LCBpdHMKKyAqICc8Y29kZT5jYWxlbmRhcjwvY29kZT4nIHRhZyBhbmQgdmFsdWUgYXJlIHJldHJpZXZlZCBpZiBwcmVzZW50LiAgSWYgYSByZWNvZ25pemVkCisgKiB2YWx1ZSBpcyBzdXBwbGllZCwgYSBjYWxlbmRhciBpcyBwcm92aWRlZCBhbmQgY29uZmlndXJlZCBhcyBhcHByb3ByaWF0ZS4KKyAqIEN1cnJlbnRseSByZWNvZ25pemVkIHRhZ3MgYXJlICJidWRkaGlzdCIsICJjaGluZXNlIiwgImNvcHRpYyIsICJldGhpb3BpYyIsIAorICogImdyZWdvcmlhbiIsICJoZWJyZXciLCAiaXNsYW1pYyIsICJpc2xhbWljLWNpdmlsIiwgYW5kICJqYXBhbmVzZSIuICBGb3IKKyAqIGV4YW1wbGU6IDxibG9ja3F1b3RlPgorICogPHByZT5DYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSgiZW5fVVNAY2FsZW5kYXI9amFwYW5lc2UiKSk7PC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+IHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIG9mIEphcGFuZXNlQ2FsZW5kYXIgKHVzaW5nIGVuX1VTIGNvbnZlbnRpb25zIGZvcgorICogbWluaW11bSBkYXlzIGluIGZpcnN0IHdlZWssIHN0YXJ0IGRheSBvZiB3ZWVrLCBldCBjZXRlcmEpLgorICoKKyAqIDxwPkEgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdCBjYW4gcHJvZHVjZSBhbGwgdGhlIHRpbWUgZmllbGQgdmFsdWVzCisgKiBuZWVkZWQgdG8gaW1wbGVtZW50IHRoZSBkYXRlLXRpbWUgZm9ybWF0dGluZyBmb3IgYSBwYXJ0aWN1bGFyIGxhbmd1YWdlIGFuZAorICogY2FsZW5kYXIgc3R5bGUgKGZvciBleGFtcGxlLCBKYXBhbmVzZS1HcmVnb3JpYW4sIEphcGFuZXNlLVRyYWRpdGlvbmFsKS4KKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBkZWZpbmVzIHRoZSByYW5nZSBvZiB2YWx1ZXMgcmV0dXJuZWQgYnkgY2VydGFpbiBmaWVsZHMsCisgKiBhcyB3ZWxsIGFzIHRoZWlyIG1lYW5pbmcuICBGb3IgZXhhbXBsZSwgdGhlIGZpcnN0IG1vbnRoIG9mIHRoZSB5ZWFyIGhhcyB2YWx1ZQorICogPGNvZGU+TU9OVEg8L2NvZGU+ID09IDxjb2RlPkpBTlVBUlk8L2NvZGU+IGZvciBhbGwgY2FsZW5kYXJzLiAgT3RoZXIgdmFsdWVzCisgKiBhcmUgZGVmaW5lZCBieSB0aGUgY29uY3JldGUgc3ViY2xhc3MsIHN1Y2ggYXMgPGNvZGU+RVJBPC9jb2RlPiBhbmQKKyAqIDxjb2RlPllFQVI8L2NvZGU+LiAgU2VlIGluZGl2aWR1YWwgZmllbGQgZG9jdW1lbnRhdGlvbiBhbmQgc3ViY2xhc3MKKyAqIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgKgorICogPHA+V2hlbiBhIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyA8ZW0+bGVuaWVudDwvZW0+LCBpdCBhY2NlcHRzIGEgd2lkZXIgcmFuZ2UKKyAqIG9mIGZpZWxkIHZhbHVlcyB0aGFuIGl0IHByb2R1Y2VzLiAgRm9yIGV4YW1wbGUsIGEgbGVuaWVudAorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGludGVycHJldHMgPGNvZGU+TU9OVEg8L2NvZGU+ID09CisgKiA8Y29kZT5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiA9PSAzMiBhcyBGZWJydWFyeSAxLiAgQQorICogbm9uLWxlbmllbnQgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBnaXZlbgorICogb3V0LW9mLXJhbmdlIGZpZWxkIHNldHRpbmdzLiAgV2hlbiBjYWxlbmRhcnMgcmVjb21wdXRlIGZpZWxkIHZhbHVlcyBmb3IKKyAqIHJldHVybiBieSA8Y29kZT5nZXQoKTwvY29kZT4sIHRoZXkgbm9ybWFsaXplIHRoZW0uICBGb3IgZXhhbXBsZSwgYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGFsd2F5cyBwcm9kdWNlcyA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+CisgKiB2YWx1ZXMgYmV0d2VlbiAxIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aC4KKyAqCisgKiA8cD48Y29kZT5DYWxlbmRhcjwvY29kZT4gZGVmaW5lcyBhIGxvY2FsZS1zcGVjaWZpYyBzZXZlbiBkYXkgd2VlayB1c2luZyB0d28KKyAqIHBhcmFtZXRlcnM6IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgYW5kIHRoZSBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlaworICogKGZyb20gMSB0byA3KS4gIFRoZXNlIG51bWJlcnMgYXJlIHRha2VuIGZyb20gdGhlIGxvY2FsZSByZXNvdXJjZSBkYXRhIHdoZW4gYQorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIGNvbnN0cnVjdGVkLiAgVGhleSBtYXkgYWxzbyBiZSBzcGVjaWZpZWQgZXhwbGljaXRseQorICogdGhyb3VnaCB0aGUgQVBJLgorICoKKyAqIDxwPldoZW4gc2V0dGluZyBvciBnZXR0aW5nIHRoZSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvcgorICogPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmaWVsZHMsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBtdXN0IGRldGVybWluZSB0aGUKKyAqIGZpcnN0IHdlZWsgb2YgdGhlIG1vbnRoIG9yIHllYXIgYXMgYSByZWZlcmVuY2UgcG9pbnQuICBUaGUgZmlyc3Qgd2VlayBvZiBhCisgKiBtb250aCBvciB5ZWFyIGlzIGRlZmluZWQgYXMgdGhlIGVhcmxpZXN0IHNldmVuIGRheSBwZXJpb2QgYmVnaW5uaW5nIG9uCisgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQgY29udGFpbmluZyBhdCBsZWFzdAorICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiBkYXlzIG9mIHRoYXQgbW9udGggb3IgeWVhci4gIFdlZWtzCisgKiBudW1iZXJlZCAuLi4sIC0xLCAwIHByZWNlZGUgdGhlIGZpcnN0IHdlZWs7IHdlZWtzIG51bWJlcmVkIDIsIDMsLi4uIGZvbGxvdworICogaXQuICBOb3RlIHRoYXQgdGhlIG5vcm1hbGl6ZWQgbnVtYmVyaW5nIHJldHVybmVkIGJ5IDxjb2RlPmdldCgpPC9jb2RlPiBtYXkgYmUKKyAqIGRpZmZlcmVudC4gIEZvciBleGFtcGxlLCBhIHNwZWNpZmljIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBzdWJjbGFzcyBtYXkKKyAqIGRlc2lnbmF0ZSB0aGUgd2VlayBiZWZvcmUgd2VlayAxIG9mIGEgeWVhciBhcyB3ZWVrIDxlbT5uPC9lbT4gb2YgdGhlIHByZXZpb3VzCisgKiB5ZWFyLgorICoKKyAqIDxwPiBXaGVuIGNvbXB1dGluZyBhIDxjb2RlPkRhdGU8L2NvZGU+IGZyb20gdGltZSBmaWVsZHMsIHR3byBzcGVjaWFsCisgKiBjaXJjdW1zdGFuY2VzIG1heSBhcmlzZTogdGhlcmUgbWF5IGJlIGluc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBjb21wdXRlIHRoZQorICogPGNvZGU+RGF0ZTwvY29kZT4gKHN1Y2ggYXMgb25seSB5ZWFyIGFuZCBtb250aCBidXQgbm8gZGF5IGluIHRoZSBtb250aCksIG9yCisgKiB0aGVyZSBtYXkgYmUgaW5jb25zaXN0ZW50IGluZm9ybWF0aW9uIChzdWNoIGFzICJUdWVzZGF5LCBKdWx5IDE1LCAxOTk2IiAtLQorICogSnVseSAxNSwgMTk5NiBpcyBhY3R1YWxseSBhIE1vbmRheSkuCisgKgorICogPHA+CisgKiA8c3Ryb25nPkluc3VmZmljaWVudCBpbmZvcm1hdGlvbi48L3N0cm9uZz4gVGhlIGNhbGVuZGFyIHdpbGwgdXNlIGRlZmF1bHQKKyAqIGluZm9ybWF0aW9uIHRvIHNwZWNpZnkgdGhlIG1pc3NpbmcgZmllbGRzLiBUaGlzIG1heSB2YXJ5IGJ5IGNhbGVuZGFyOyBmb3IKKyAqIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIHRoZSBkZWZhdWx0IGZvciBhIGZpZWxkIGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlCisgKiBzdGFydCBvZiB0aGUgZXBvY2g6IGkuZS4sIFlFQVIgPSAxOTcwLCBNT05USCA9IEpBTlVBUlksIERBVEUgPSAxLCBldGMuCisgKgorICogPHA+CisgKiA8c3Ryb25nPkluY29uc2lzdGVudCBpbmZvcm1hdGlvbi48L3N0cm9uZz4gSWYgZmllbGRzIGNvbmZsaWN0LCB0aGUgY2FsZW5kYXIKKyAqIHdpbGwgZ2l2ZSBwcmVmZXJlbmNlIHRvIGZpZWxkcyBzZXQgbW9yZSByZWNlbnRseS4gRm9yIGV4YW1wbGUsIHdoZW4KKyAqIGRldGVybWluaW5nIHRoZSBkYXksIHRoZSBjYWxlbmRhciB3aWxsIGxvb2sgZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nCisgKiBjb21iaW5hdGlvbnMgb2YgZmllbGRzLiAgVGhlIG1vc3QgcmVjZW50IGNvbWJpbmF0aW9uLCBhcyBkZXRlcm1pbmVkIGJ5IHRoZQorICogbW9zdCByZWNlbnRseSBzZXQgc2luZ2xlIGZpZWxkLCB3aWxsIGJlIHVzZWQuCisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogTU9OVEggKyBEQVlfT0ZfTU9OVEgKKyAqIE1PTlRIICsgV0VFS19PRl9NT05USCArIERBWV9PRl9XRUVLCisgKiBNT05USCArIERBWV9PRl9XRUVLX0lOX01PTlRIICsgREFZX09GX1dFRUsKKyAqIERBWV9PRl9ZRUFSCisgKiBEQVlfT0ZfV0VFSyArIFdFRUtfT0ZfWUVBUjwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZvciB0aGUgdGltZSBvZiBkYXk6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogSE9VUl9PRl9EQVkKKyAqIEFNX1BNICsgSE9VUjwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBmb3Igc29tZSBub24tR3JlZ29yaWFuIGNhbGVuZGFycywgZGlmZmVyZW50CisgKiBmaWVsZHMgbWF5IGJlIG5lY2Vzc2FyeSBmb3IgY29tcGxldGUgZGlzYW1iaWd1YXRpb24uIEZvciBleGFtcGxlLCBhIGZ1bGwKKyAqIHNwZWNpZmljYXRpb24gb2YgdGhlIGhpc3RvcmlhbCBBcmFiaWMgYXN0cm9ub21pY2FsIGNhbGVuZGFyIHJlcXVpcmVzIHllYXIsCisgKiBtb250aCwgZGF5LW9mLW1vbnRoIDxlbT5hbmQ8L2VtPiBkYXktb2Ytd2VlayBpbiBzb21lIGNhc2VzLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGVyZSBhcmUgY2VydGFpbiBwb3NzaWJsZSBhbWJpZ3VpdGllcyBpbgorICogaW50ZXJwcmV0YXRpb24gb2YgY2VydGFpbiBzaW5ndWxhciB0aW1lcywgd2hpY2ggYXJlIHJlc29sdmVkIGluIHRoZQorICogZm9sbG93aW5nIHdheXM6CisgKiA8b2w+CisgKiAgICAgPGxpPiAyNDowMDowMCAiYmVsb25ncyIgdG8gdGhlIGZvbGxvd2luZyBkYXkuIFRoYXQgaXMsCisgKiAgICAgICAgICAyMzo1OSBvbiBEZWMgMzEsIDE5NjkgJmx0OyAyNDowMCBvbiBKYW4gMSwgMTk3MCAmbHQ7IDI0OjAxOjAwIG9uIEphbiAxLCAxOTcwCisgKgorICogICAgIDxsaT4gQWx0aG91Z2ggaGlzdG9yaWNhbGx5IG5vdCBwcmVjaXNlLCBtaWRuaWdodCBhbHNvIGJlbG9uZ3MgdG8gImFtIiwKKyAqICAgICAgICAgIGFuZCBub29uIGJlbG9uZ3MgdG8gInBtIiwgc28gb24gdGhlIHNhbWUgZGF5LAorICogICAgICAgICAgMTI6MDAgYW0gKG1pZG5pZ2h0KSAmbHQ7IDEyOjAxIGFtLCBhbmQgMTI6MDAgcG0gKG5vb24pICZsdDsgMTI6MDEgcG0KKyAqIDwvb2w+CisgKgorICogPHA+CisgKiBUaGUgZGF0ZSBvciB0aW1lIGZvcm1hdCBzdHJpbmdzIGFyZSBub3QgcGFydCBvZiB0aGUgZGVmaW5pdGlvbiBvZiBhCisgKiBjYWxlbmRhciwgYXMgdGhvc2UgbXVzdCBiZSBtb2RpZmlhYmxlIG9yIG92ZXJyaWRhYmxlIGJ5IHRoZSB1c2VyIGF0CisgKiBydW50aW1lLiBVc2Uge0BsaW5rIERhdGVGb3JtYXR9CisgKiB0byBmb3JtYXQgZGF0ZXMuCisgKgorICogPHA+PHN0cm9uZz5GaWVsZCBtYW5pcHVsYXRpb24gbWV0aG9kczwvc3Ryb25nPjwvcD4KKyAqCisgKiA8cD48Y29kZT5DYWxlbmRhcjwvY29kZT4gZmllbGRzIGNhbiBiZSBjaGFuZ2VkIHVzaW5nIHRocmVlIG1ldGhvZHM6CisgKiA8Y29kZT5zZXQoKTwvY29kZT4sIDxjb2RlPmFkZCgpPC9jb2RlPiwgYW5kIDxjb2RlPnJvbGwoKTwvY29kZT4uPC9wPgorICoKKyAqIDxwPjxzdHJvbmc+PGNvZGU+c2V0KGYsIHZhbHVlKTwvY29kZT48L3N0cm9uZz4gY2hhbmdlcyBmaWVsZAorICogPGNvZGU+ZjwvY29kZT4gdG8gPGNvZGU+dmFsdWU8L2NvZGU+LiAgSW4gYWRkaXRpb24sIGl0IHNldHMgYW4KKyAqIGludGVybmFsIG1lbWJlciB2YXJpYWJsZSB0byBpbmRpY2F0ZSB0aGF0IGZpZWxkIDxjb2RlPmY8L2NvZGU+IGhhcworICogYmVlbiBjaGFuZ2VkLiBBbHRob3VnaCBmaWVsZCA8Y29kZT5mPC9jb2RlPiBpcyBjaGFuZ2VkIGltbWVkaWF0ZWx5LAorICogdGhlIGNhbGVuZGFyJ3MgbWlsbGlzZWNvbmRzIGlzIG5vdCByZWNvbXB1dGVkIHVudGlsIHRoZSBuZXh0IGNhbGwgdG8KKyAqIDxjb2RlPmdldCgpPC9jb2RlPiwgPGNvZGU+Z2V0VGltZSgpPC9jb2RlPiwgb3IKKyAqIDxjb2RlPmdldFRpbWVJbk1pbGxpcygpPC9jb2RlPiBpcyBtYWRlLiBUaHVzLCBtdWx0aXBsZSBjYWxscyB0bworICogPGNvZGU+c2V0KCk8L2NvZGU+IGRvIG5vdCB0cmlnZ2VyIG11bHRpcGxlLCB1bm5lY2Vzc2FyeQorICogY29tcHV0YXRpb25zLiBBcyBhIHJlc3VsdCBvZiBjaGFuZ2luZyBhIGZpZWxkIHVzaW5nCisgKiA8Y29kZT5zZXQoKTwvY29kZT4sIG90aGVyIGZpZWxkcyBtYXkgYWxzbyBjaGFuZ2UsIGRlcGVuZGluZyBvbiB0aGUKKyAqIGZpZWxkLCB0aGUgZmllbGQgdmFsdWUsIGFuZCB0aGUgY2FsZW5kYXIgc3lzdGVtLiBJbiBhZGRpdGlvbiwKKyAqIDxjb2RlPmdldChmKTwvY29kZT4gd2lsbCBub3QgbmVjZXNzYXJpbHkgcmV0dXJuIDxjb2RlPnZhbHVlPC9jb2RlPgorICogYWZ0ZXIgdGhlIGZpZWxkcyBoYXZlIGJlZW4gcmVjb21wdXRlZC4gVGhlIHNwZWNpZmljcyBhcmUgZGV0ZXJtaW5lZCBieQorICogdGhlIGNvbmNyZXRlIGNhbGVuZGFyIGNsYXNzLjwvcD4KKyAqCisgKiA8cD48ZW0+RXhhbXBsZTwvZW0+OiBDb25zaWRlciBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogb3JpZ2luYWxseSBzZXQgdG8gQXVndXN0IDMxLCAxOTk5LiBDYWxsaW5nIDxjb2RlPnNldChDYWxlbmRhci5NT05USCwKKyAqIENhbGVuZGFyLlNFUFRFTUJFUik8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIFNlcHRlbWJlciAzMSwKKyAqIDE5OTkuIFRoaXMgaXMgYSB0ZW1wb3JhcnkgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gdGhhdCByZXNvbHZlcyB0bworICogT2N0b2JlciAxLCAxOTk5IGlmIDxjb2RlPmdldFRpbWUoKTwvY29kZT5pcyB0aGVuIGNhbGxlZC4gSG93ZXZlciwgYQorICogY2FsbCB0byA8Y29kZT5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAzMCk8L2NvZGU+IGJlZm9yZSB0aGUgY2FsbCB0bworICogPGNvZGU+Z2V0VGltZSgpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0byBTZXB0ZW1iZXIgMzAsIDE5OTksIHNpbmNlCisgKiBubyByZWNvbXB1dGF0aW9uIG9jY3VycyBhZnRlciA8Y29kZT5zZXQoKTwvY29kZT4gaXRzZWxmLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPjxjb2RlPmFkZChmLCBkZWx0YSk8L2NvZGU+PC9zdHJvbmc+IGFkZHMgPGNvZGU+ZGVsdGE8L2NvZGU+CisgKiB0byBmaWVsZCA8Y29kZT5mPC9jb2RlPi4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPnNldChmLAorICogZ2V0KGYpICsgZGVsdGEpPC9jb2RlPiB3aXRoIHR3byBhZGp1c3RtZW50czo8L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDxwPjxzdHJvbmc+QWRkIHJ1bGUgMTwvc3Ryb25nPi4gVGhlIHZhbHVlIG9mIGZpZWxkIDxjb2RlPmY8L2NvZGU+CisgKiAgIGFmdGVyIHRoZSBjYWxsIG1pbnVzIHRoZSB2YWx1ZSBvZiBmaWVsZCA8Y29kZT5mPC9jb2RlPiBiZWZvcmUgdGhlCisgKiAgIGNhbGwgaXMgPGNvZGU+ZGVsdGE8L2NvZGU+LCBtb2R1bG8gYW55IG92ZXJmbG93IHRoYXQgaGFzIG9jY3VycmVkIGluCisgKiAgIGZpZWxkIDxjb2RlPmY8L2NvZGU+LiBPdmVyZmxvdyBvY2N1cnMgd2hlbiBhIGZpZWxkIHZhbHVlIGV4Y2VlZHMgaXRzCisgKiAgIHJhbmdlIGFuZCwgYXMgYSByZXN1bHQsIHRoZSBuZXh0IGxhcmdlciBmaWVsZCBpcyBpbmNyZW1lbnRlZCBvcgorICogICBkZWNyZW1lbnRlZCBhbmQgdGhlIGZpZWxkIHZhbHVlIGlzIGFkanVzdGVkIGJhY2sgaW50byBpdHMgcmFuZ2UuPC9wPgorICoKKyAqICAgPHA+PHN0cm9uZz5BZGQgcnVsZSAyPC9zdHJvbmc+LiBJZiBhIHNtYWxsZXIgZmllbGQgaXMgZXhwZWN0ZWQgdG8gYmUKKyAqICAgaW52YXJpYW50LCBidXQgJm5ic3A7IGl0IGlzIGltcG9zc2libGUgZm9yIGl0IHRvIGJlIGVxdWFsIHRvIGl0cworICogICBwcmlvciB2YWx1ZSBiZWNhdXNlIG9mIGNoYW5nZXMgaW4gaXRzIG1pbmltdW0gb3IgbWF4aW11bSBhZnRlciBmaWVsZAorICogICA8Y29kZT5mPC9jb2RlPiBpcyBjaGFuZ2VkLCB0aGVuIGl0cyB2YWx1ZSBpcyBhZGp1c3RlZCB0byBiZSBhcyBjbG9zZQorICogICBhcyBwb3NzaWJsZSB0byBpdHMgZXhwZWN0ZWQgdmFsdWUuIEEgc21hbGxlciBmaWVsZCByZXByZXNlbnRzIGEKKyAqICAgc21hbGxlciB1bml0IG9mIHRpbWUuIDxjb2RlPkhPVVI8L2NvZGU+IGlzIGEgc21hbGxlciBmaWVsZCB0aGFuCisgKiAgIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4uIE5vIGFkanVzdG1lbnQgaXMgbWFkZSB0byBzbWFsbGVyIGZpZWxkcworICogICB0aGF0IGFyZSBub3QgZXhwZWN0ZWQgdG8gYmUgaW52YXJpYW50LiBUaGUgY2FsZW5kYXIgc3lzdGVtCisgKiAgIGRldGVybWluZXMgd2hhdCBmaWVsZHMgYXJlIGV4cGVjdGVkIHRvIGJlIGludmFyaWFudC48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+SW4gYWRkaXRpb24sIHVubGlrZSA8Y29kZT5zZXQoKTwvY29kZT4sIDxjb2RlPmFkZCgpPC9jb2RlPiBmb3JjZXMKKyAqIGFuIGltbWVkaWF0ZSByZWNvbXB1dGF0aW9uIG9mIHRoZSBjYWxlbmRhcidzIG1pbGxpc2Vjb25kcyBhbmQgYWxsCisgKiBmaWVsZHMuPC9wPgorICoKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBBdWd1c3QgMzEsIDE5OTkuIENhbGxpbmcgPGNvZGU+YWRkKENhbGVuZGFyLk1PTlRILAorICogMTMpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0byBTZXB0ZW1iZXIgMzAsIDIwMDAuIDxzdHJvbmc+QWRkIHJ1bGUKKyAqIDE8L3N0cm9uZz4gc2V0cyB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIHRvIFNlcHRlbWJlciwgc2luY2UKKyAqIGFkZGluZyAxMyBtb250aHMgdG8gQXVndXN0IGdpdmVzIFNlcHRlbWJlciBvZiB0aGUgbmV4dCB5ZWFyLiBTaW5jZQorICogPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBjYW5ub3QgYmUgMzEgaW4gU2VwdGVtYmVyIGluIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiwgPHN0cm9uZz5hZGQgcnVsZSAyPC9zdHJvbmc+IHNldHMgdGhlCisgKiA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IHRvIDMwLCB0aGUgY2xvc2VzdCBwb3NzaWJsZSB2YWx1ZS4gQWx0aG91Z2gKKyAqIGl0IGlzIGEgc21hbGxlciBmaWVsZCwgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGlzIG5vdCBhZGp1c3RlZCBieQorICogcnVsZSAyLCBzaW5jZSBpdCBpcyBleHBlY3RlZCB0byBjaGFuZ2Ugd2hlbiB0aGUgbW9udGggY2hhbmdlcyBpbiBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uPC9wPgorICoKKyAqIDxwPjxzdHJvbmc+PGNvZGU+cm9sbChmLCBkZWx0YSk8L2NvZGU+PC9zdHJvbmc+IGFkZHMKKyAqIDxjb2RlPmRlbHRhPC9jb2RlPiB0byBmaWVsZCA8Y29kZT5mPC9jb2RlPiB3aXRob3V0IGNoYW5naW5nIGxhcmdlcgorICogZmllbGRzLiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5hZGQoZiwgZGVsdGEpPC9jb2RlPiB3aXRoCisgKiB0aGUgZm9sbG93aW5nIGFkanVzdG1lbnQ6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48c3Ryb25nPlJvbGwgcnVsZTwvc3Ryb25nPi4gTGFyZ2VyIGZpZWxkcyBhcmUgdW5jaGFuZ2VkIGFmdGVyIHRoZQorICogICBjYWxsLiBBIGxhcmdlciBmaWVsZCByZXByZXNlbnRzIGEgbGFyZ2VyIHVuaXQgb2YKKyAqICAgdGltZS4gPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBpcyBhIGxhcmdlciBmaWVsZCB0aGFuCisgKiAgIDxjb2RlPkhPVVI8L2NvZGU+LjwvcD4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD48ZW0+RXhhbXBsZTwvZW0+OiBDb25zaWRlciBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogb3JpZ2luYWxseSBzZXQgdG8gQXVndXN0IDMxLCAxOTk5LiBDYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuTU9OVEgsCisgKiA4KTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gQXByaWwgMzAsIDxzdHJvbmc+MTk5OTwvc3Ryb25nPi4gIEFkZAorICogcnVsZSAxIHNldHMgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCB0byBBcHJpbC4gVXNpbmcgYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LCB0aGUgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBjYW5ub3QKKyAqIGJlIDMxIGluIHRoZSBtb250aCBBcHJpbC4gQWRkIHJ1bGUgMiBzZXRzIGl0IHRvIHRoZSBjbG9zZXN0IHBvc3NpYmxlCisgKiB2YWx1ZSwgMzAuIEZpbmFsbHksIHRoZSA8c3Ryb25nPnJvbGwgcnVsZTwvc3Ryb25nPiBtYWludGFpbnMgdGhlCisgKiA8Y29kZT5ZRUFSPC9jb2RlPiBmaWVsZCB2YWx1ZSBvZiAxOTk5LjwvcD4KKyAqCisgKiA8cD48ZW0+RXhhbXBsZTwvZW0+OiBDb25zaWRlciBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogb3JpZ2luYWxseSBzZXQgdG8gU3VuZGF5IEp1bmUgNiwgMTk5OS4gQ2FsbGluZworICogPGNvZGU+cm9sbChDYWxlbmRhci5XRUVLX09GX01PTlRILCAtMSk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvCisgKiBUdWVzZGF5IEp1bmUgMSwgMTk5OSwgd2hlcmVhcyBjYWxsaW5nCisgKiA8Y29kZT5hZGQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgLTEpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0bworICogU3VuZGF5IE1heSAzMCwgMTk5OS4gVGhpcyBpcyBiZWNhdXNlIHRoZSByb2xsIHJ1bGUgaW1wb3NlcyBhbgorICogYWRkaXRpb25hbCBjb25zdHJhaW50OiBUaGUgPGNvZGU+TU9OVEg8L2NvZGU+IG11c3Qgbm90IGNoYW5nZSB3aGVuIHRoZQorICogPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gaXMgcm9sbGVkLiBUYWtlbiB0b2dldGhlciB3aXRoIGFkZCBydWxlIDEsCisgKiB0aGUgcmVzdWx0YW50IGRhdGUgbXVzdCBiZSBiZXR3ZWVuIFR1ZXNkYXkgSnVuZSAxIGFuZCBTYXR1cmRheSBKdW5lCisgKiA1LiBBY2NvcmRpbmcgdG8gYWRkIHJ1bGUgMiwgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiwgYW4gaW52YXJpYW50CisgKiB3aGVuIGNoYW5naW5nIHRoZSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiwgaXMgc2V0IHRvIFR1ZXNkYXksIHRoZQorICogY2xvc2VzdCBwb3NzaWJsZSB2YWx1ZSB0byBTdW5kYXkgKHdoZXJlIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZQorICogd2VlaykuPC9wPgorICoKKyAqIDxwPjxzdHJvbmc+VXNhZ2UgbW9kZWw8L3N0cm9uZz4uIFRvIG1vdGl2YXRlIHRoZSBiZWhhdmlvciBvZgorICogPGNvZGU+YWRkKCk8L2NvZGU+IGFuZCA8Y29kZT5yb2xsKCk8L2NvZGU+LCBjb25zaWRlciBhIHVzZXIgaW50ZXJmYWNlCisgKiBjb21wb25lbnQgd2l0aCBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGZvciB0aGUgbW9udGgsIGRheSwgYW5kCisgKiB5ZWFyLCBhbmQgYW4gdW5kZXJseWluZyA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uIElmIHRoZQorICogaW50ZXJmYWNlIHJlYWRzIEphbnVhcnkgMzEsIDE5OTkgYW5kIHRoZSB1c2VyIHByZXNzZXMgdGhlIG1vbnRoCisgKiBpbmNyZW1lbnQgYnV0dG9uLCB3aGF0IHNob3VsZCBpdCByZWFkPyBJZiB0aGUgdW5kZXJseWluZworICogaW1wbGVtZW50YXRpb24gdXNlcyA8Y29kZT5zZXQoKTwvY29kZT4sIGl0IG1pZ2h0IHJlYWQgTWFyY2ggMywgMTk5OS4gQQorICogYmV0dGVyIHJlc3VsdCB3b3VsZCBiZSBGZWJydWFyeSAyOCwgMTk5OS4gRnVydGhlcm1vcmUsIGlmIHRoZSB1c2VyCisgKiBwcmVzc2VzIHRoZSBtb250aCBpbmNyZW1lbnQgYnV0dG9uIGFnYWluLCBpdCBzaG91bGQgcmVhZCBNYXJjaCAzMSwKKyAqIDE5OTksIG5vdCBNYXJjaCAyOCwgMTk5OS4gQnkgc2F2aW5nIHRoZSBvcmlnaW5hbCBkYXRlIGFuZCB1c2luZyBlaXRoZXIKKyAqIDxjb2RlPmFkZCgpPC9jb2RlPiBvciA8Y29kZT5yb2xsKCk8L2NvZGU+LCBkZXBlbmRpbmcgb24gd2hldGhlciBsYXJnZXIKKyAqIGZpZWxkcyBzaG91bGQgYmUgYWZmZWN0ZWQsIHRoZSB1c2VyIGludGVyZmFjZSBjYW4gYmVoYXZlIGFzIG1vc3QgdXNlcnMKKyAqIHdpbGwgaW50dWl0aXZlbHkgZXhwZWN0LjwvcD4KKyAqCisgKiA8cD48Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIHtAbGluayAjcm9sbCByb2xsfSBhbmQge0BsaW5rICNhZGQgYWRkfSByYXRoZXIKKyAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAqCisgKiA8cD48YmlnPjxiaWc+PGI+Q2FsZW5kYXIgQXJjaGl0ZWN0dXJlIGluIElDVTRKPC9iPjwvYmlnPjwvYmlnPjwvcD4KKyAqCisgKiA8cD5SZWNlbnRseSB0aGUgaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGhhcyBjaGFuZ2VkCisgKiBzaWduaWZpY2FudGx5IGluIG9yZGVyIHRvIGJldHRlciBzdXBwb3J0IHN1YmNsYXNzaW5nLiBUaGUgb3JpZ2luYWwKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBjbGFzcyB3YXMgZGVzaWduZWQgdG8gc3VwcG9ydCBzdWJjbGFzc2luZywgYnV0CisgKiBpdCBoYWQgb25seSBvbmUgaW1wbGVtZW50ZWQgc3ViY2xhc3MsIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPi4KKyAqIFdpdGggdGhlIGltcGxlbWVudGF0aW9uIG9mIHNldmVyYWwgbmV3IGNhbGVuZGFyIHN1YmNsYXNzZXMsIGluY2x1ZGluZworICogdGhlIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+LCA8Y29kZT5DaGluZXNlQ2FsZW5kYXI8L2NvZGU+LAorICogPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+LCA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+LCBhbmQKKyAqIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+LCB0aGUgc3ViY2xhc3NpbmcgQVBJIGhhcyBiZWVuIHJld29ya2VkCisgKiB0aG9yb3VnaGx5LiBUaGlzIHNlY3Rpb24gZGV0YWlscyB0aGUgbmV3IHN1YmNsYXNzaW5nIEFQSSBhbmQgb3RoZXIKKyAqIHdheXMgaW4gd2hpY2ggPGNvZGU+Y29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjwvY29kZT4gZGlmZmVycyBmcm9tCisgKiA8Y29kZT5qYXZhLnV0aWwuQ2FsZW5kYXI8L2NvZGU+LgorICogPC9wPgorICoKKyAqIDxwPjxiaWc+PGI+Q2hhbmdlczwvYj48L2JpZz48L3A+CisgKgorICogPHA+T3ZlcnZpZXcgb2YgY2hhbmdlcyBiZXR3ZWVuIHRoZSBjbGFzc2ljIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogYXJjaGl0ZWN0dXJlIGFuZCB0aGUgbmV3IGFyY2hpdGVjdHVyZS4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+VGhlIDxjb2RlPmZpZWxkc1tdPC9jb2RlPiBhcnJheSBpcyA8Y29kZT5wcml2YXRlPC9jb2RlPiBub3cKKyAqICAgICBpbnN0ZWFkIG9mIDxjb2RlPnByb3RlY3RlZDwvY29kZT4uICBTdWJjbGFzc2VzIG11c3QgYWNjZXNzIGl0CisgKiAgICAgdXNpbmcgdGhlIG1ldGhvZHMge0BsaW5rICNpbnRlcm5hbFNldH0gYW5kCisgKiAgICAge0BsaW5rICNpbnRlcm5hbEdldH0uICA8Yj5Nb3RpdmF0aW9uOjwvYj4gU3ViY2xhc3NlcyBzaG91bGQKKyAqICAgICBub3QgZGlyZWN0bHkgYWNjZXNzIGRhdGEgbWVtYmVycy48L2xpPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT50aW1lPC9jb2RlPiBsb25nIHdvcmQgaXMgPGNvZGU+cHJpdmF0ZTwvY29kZT4gbm93CisgKiAgICAgaW5zdGVhZCBvZiA8Y29kZT5wcm90ZWN0ZWQ8L2NvZGU+LiAgU3ViY2xhc3NlcyBtYXkgYWNjZXNzIGl0IHVzaW5nCisgKiAgICAgdGhlIG1ldGhvZCB7QGxpbmsgI2ludGVybmFsR2V0VGltZUluTWlsbGlzfSwgd2hpY2ggZG9lcyBub3QKKyAqICAgICBwcm92b2tlIGFuIHVwZGF0ZS4gPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMgc2hvdWxkIG5vdAorICogICAgIGRpcmVjdGx5IGFjY2VzcyBkYXRhIG1lbWJlcnMuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgc2NvcGUgb2YgcmVzcG9uc2liaWxpdHkgb2Ygc3ViY2xhc3NlcyBoYXMgYmVlbiBkcmFzdGljYWxseQorICogICAgIHJlZHVjZWQuIEFzIG11Y2ggZnVuY3Rpb25hbGl0eSBhcyBwb3NzaWJsZSBpcyBpbXBsZW1lbnRlZCBpbiB0aGUKKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gYmFzZSBjbGFzcy4gQXMgYSByZXN1bHQsIGl0IGlzIG11Y2ggZWFzaWVyCisgKiAgICAgdG8gc3ViY2xhc3MgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiA8Yj5Nb3RpdmF0aW9uOjwvYj4gU3ViY2xhc3NlcworICogICAgIHNob3VsZCBub3QgaGF2ZSB0byByZWltcGxlbWVudCBjb21tb24gY29kZS4gQ2VydGFpbiBiZWhhdmlvcnMgYXJlCisgKiAgICAgY29tbW9uIGFjcm9zcyBjYWxlbmRhciBzeXN0ZW1zOiBUaGUgZGVmaW5pdGlvbiBhbmQgYmVoYXZpb3Igb2YKKyAqICAgICB3ZWVrLXJlbGF0ZWQgZmllbGRzIGFuZCB0aW1lIGZpZWxkcywgdGhlIGFyaXRobWV0aWMKKyAqICAgICAoe0BsaW5rICNhZGQoaW50LCBpbnQpIGFkZH0gYW5kIHtAbGluayAjcm9sbChpbnQsIGludCkgcm9sbH0pIGJlaGF2aW9yIG9mIG1hbnkKKyAqICAgICBmaWVsZHMsIGFuZCB0aGUgZmllbGQgdmFsaWRhdGlvbiBzeXN0ZW0uPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgc3ViY2xhc3NpbmcgQVBJIGhhcyBiZWVuIGNvbXBsZXRlbHkgcmVkZXNpZ25lZC48L2xpPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gYmFzZSBjbGFzcyBjb250YWlucyBzb21lIEdyZWdvcmlhbgorICogICAgIGNhbGVuZGFyIGFsZ29yaXRobWljIHN1cHBvcnQgdGhhdCBzdWJjbGFzc2VzIGNhbiB1c2UgKHNwZWNpZmljYWxseQorICogICAgIGluIHtAbGluayAjaGFuZGxlQ29tcHV0ZUZpZWxkc30pLiAgU3ViY2xhc3NlcyBjYW4gdXNlIHRoZQorICogICAgIG1ldGhvZHMgPGNvZGU+Z2V0R3JlZ29yaWFuWHh4KCk8L2NvZGU+IHRvIG9idGFpbiBwcmVjb21wdXRlZAorICogICAgIHZhbHVlcy4gPGI+TW90aXZhdGlvbjo8L2I+IFRoaXMgaXMgcmVxdWlyZWQgYnkgYWxsCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHN1YmNsYXNzZXMgaW4gb3JkZXIgdG8gaW1wbGVtZW50IGNvbnNpc3RlbnQKKyAqICAgICB0aW1lIHpvbmUgYmVoYXZpb3IsIGFuZCBHcmVnb3JpYW4tZGVyaXZlZCBzeXN0ZW1zIGNhbiB1c2UgdGhlCisgKiAgICAgYWxyZWFkeSBjb21wdXRlZCBkYXRhLjwvbGk+CisgKgorICogICA8bGk+VGhlIDxjb2RlPkZJRUxEX0NPVU5UPC9jb2RlPiBjb25zdGFudCBoYXMgYmVlbiByZW1vdmVkLiBVc2UKKyAqICAgICB7QGxpbmsgI2dldEZpZWxkQ291bnR9LiAgSW4gYWRkaXRpb24sIGZyYW1ld29yayBBUEkgaGFzIGJlZW4KKyAqICAgICBhZGRlZCB0byBhbGxvdyBzdWJjbGFzc2VzIHRvIGRlZmluZSBhZGRpdGlvbmFsIGZpZWxkcy4KKyAqICAgICA8Yj5Nb3RpdmF0aW9uOiA8L2I+VGhlIG51bWJlciBvZiBmaWVsZHMgaXMgbm90IGNvbnN0YW50IGFjcm9zcworICogICAgIGNhbGVuZGFyIHN5c3RlbXMuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgcmFuZ2Ugb2YgaGFuZGxlZCBkYXRlcyBoYXMgYmVlbiBuYXJyb3dlZCBmcm9tICsvLQorICogICAgIH4zMDAsMDAwLDAwMCB5ZWFycyB0byArLy0gfjUsMDAwLDAwMCB5ZWFycy4gSW4gcHJhY3RpY2FsIHRlcm1zCisgKiAgICAgdGhpcyBzaG91bGQgbm90IGFmZmVjdCBjbGllbnRzLiBIb3dldmVyLCBpdCBkb2VzIG1lYW4gdGhhdCBjbGllbnQKKyAqICAgICBjb2RlIGNhbm5vdCBiZSBndWFyYW50ZWVkIHdlbGwtYmVoYXZlZCByZXN1bHRzIHdpdGggZGF0ZXMgc3VjaCBhcworICogICAgIDxjb2RlPkRhdGUoTG9uZy5NSU5fVkFMVUUpPC9jb2RlPiBvcgorICogICAgIDxjb2RlPkRhdGUoTG9uZy5NQVhfVkFMVUUpPC9jb2RlPi4gSW5zdGVhZCwgdGhlCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGNvbnN0YW50cyB7QGxpbmsgI01JTl9EQVRFfSwKKyAqICAgICB7QGxpbmsgI01BWF9EQVRFfSwge0BsaW5rICNNSU5fTUlMTElTfSwKKyAqICAgICB7QGxpbmsgI01BWF9NSUxMSVN9LCB7QGxpbmsgI01JTl9KVUxJQU59LCBhbmQKKyAqICAgICB7QGxpbmsgI01BWF9KVUxJQU59IHNob3VsZCBiZSB1c2VkLiA8Yj5Nb3RpdmF0aW9uOjwvYj4gV2l0aAorICogICAgIHRoZSBhZGRpdGlvbiBvZiB0aGUge0BsaW5rICNKVUxJQU5fREFZfSBmaWVsZCwgSnVsaWFuIGRheQorICogICAgIG51bWJlcnMgbXVzdCBiZSByZXN0cmljdGVkIHRvIGEgMzItYml0IDxjb2RlPmludDwvY29kZT4uICBUaGlzCisgKiAgICAgcmVzdHJpY3RzIHRoZSBvdmVyYWxsIHN1cHBvcnRlZCByYW5nZS4gRnVydGhlcm1vcmUsIHJlc3RyaWN0aW5nCisgKiAgICAgdGhlIHN1cHBvcnRlZCByYW5nZSBzaW1wbGlmaWVzIHRoZSBjb21wdXRhdGlvbnMgYnkgcmVtb3ZpbmcKKyAqICAgICBzcGVjaWFsIGNhc2UgY29kZSB0aGF0IHdhcyB1c2VkIHRvIGFjY29tb2RhdGUgYXJpdGhtZXRpYyBvdmVyZmxvdworICogICAgIGF0IG1pbGxpcyBuZWFyIDxjb2RlPkxvbmcuTUlOX1ZBTFVFPC9jb2RlPiBhbmQKKyAqICAgICA8Y29kZT5Mb25nLk1BWF9WQUxVRTwvY29kZT4uPC9saT4KKyAqCisgKiAgIDxsaT5OZXcgZmllbGRzIGFyZSBpbXBsZW1lbnRlZDoge0BsaW5rICNKVUxJQU5fREFZfSBkZWZpbmVzCisgKiAgICAgc2luZ2xlLWZpZWxkIHNwZWNpZmljYXRpb24gb2YgdGhlCisgKiAgICAgZGF0ZS4ge0BsaW5rICNNSUxMSVNFQ09ORFNfSU5fREFZfSBkZWZpbmVzIGEgc2luZ2xlLWZpZWxkCisgKiAgICAgc3BlY2lmaWNhdGlvbiBvZiB0aGUgd2FsbCB0aW1lLiB7QGxpbmsgI0RPV19MT0NBTH0gYW5kCisgKiAgICAge0BsaW5rICNZRUFSX1dPWX0gaW1wbGVtZW50IGxvY2FsaXplZCBkYXktb2Ytd2VlayBhbmQKKyAqICAgICB3ZWVrLW9mLXllYXIgYmVoYXZpb3IuPC9saT4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIGNhbiBhY2Nlc3MgbWlsbGlzZWNvbmQgY29uc3RhbnRzCisgKiAgICAge0BsaW5rICNPTkVfU0VDT05EfSwge0BsaW5rICNPTkVfTUlOVVRFfSwKKyAqICAgICB7QGxpbmsgI09ORV9IT1VSfSwge0BsaW5rICNPTkVfREFZfSwgYW5kCisgKiAgICAge0BsaW5rICNPTkVfV0VFS30gZGVmaW5lZCBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uPC9saT4KKyAqCisgKiAgIDxsaT5OZXcgQVBJIGhhcyBiZWVuIGFkZGVkIHRvIHN1cG9ydCBjYWxlbmRhci1zcGVjaWZpYyBzdWJjbGFzc2VzCisgKiAgICAgb2YgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4uPC9saT4KKyAqCisgKiAgIDxsaT5TZXZlcmFsIHN1YmNsYXNzZXMgaGF2ZSBiZWVuIGltcGxlbWVudGVkLCByZXByZXNlbnRpbmcKKyAqICAgICB2YXJpb3VzIGludGVybmF0aW9uYWwgY2FsZW5kYXIgc3lzdGVtcy48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGJpZz48Yj5TdWJjbGFzcyBBUEk8L2I+PC9iaWc+PC9wPgorICoKKyAqIDxwPlRoZSBvcmlnaW5hbCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gQVBJIHdhcyBiYXNlZCBvbiB0aGUgZXhwZXJpZW5jZQorICogb2YgaW1wbGVtZW50aW5nIGEgb25seSBhIHNpbmdsZSBzdWJjbGFzcywKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPi4gQXMgYSByZXN1bHQsIGFsbCBvZiB0aGUgc3ViY2xhc3NpbmcKKyAqIGtpbmtzIGhhZCBub3QgYmVlbiB3b3JrZWQgb3V0LiBUaGUgbmV3IHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbgorICogcmVmaW5lZCBiYXNlZCBvbiBzZXZlcmFsIGltcGxlbWVudGVkIHN1YmNsYXNzZXMuIFRoaXMgaW5jbHVkZXMgbWV0aG9kcworICogdGhhdCBtdXN0IGJlIG92ZXJyaWRkZW4gYW5kIG1ldGhvZHMgZm9yIHN1YmNsYXNzZXMgdG8gY2FsbC4gU3ViY2xhc3NlcworICogbm8gbG9uZ2VyIGhhdmUgZGlyZWN0IGFjY2VzcyB0byA8Y29kZT5maWVsZHM8L2NvZGU+IGFuZAorICogPGNvZGU+c3RhbXA8L2NvZGU+LiBJbnN0ZWFkLCB0aGV5IGhhdmUgbmV3IEFQSSB0byBhY2Nlc3MKKyAqIHRoZXNlLiBTdWJjbGFzc2VzIGFyZSBhYmxlIHRvIGFsbG9jYXRlIHRoZSA8Y29kZT5maWVsZHM8L2NvZGU+IGFycmF5CisgKiB0aHJvdWdoIGEgcHJvdGVjdGVkIGZyYW1ld29yayBtZXRob2Q7IHRoaXMgYWxsb3dzIHN1YmNsYXNzZXMgdG8KKyAqIHNwZWNpZnkgYWRkaXRpb25hbCBmaWVsZHMuIDwvcD4KKyAqCisgKiA8cD5Nb3JlIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gbW92ZWQgaW50byB0aGUgYmFzZSBjbGFzcy4gVGhlIGJhc2UKKyAqIGNsYXNzIG5vdyBjb250YWlucyBtdWNoIG9mIHRoZSBjb21wdXRhdGlvbmFsIG1hY2hpbmVyeSB0byBzdXBwb3J0IHRoZQorICogR3JlZ29yaWFuIGNhbGVuZGFyLiBUaGlzIGlzIGJhc2VkIG9uIHR3byB0aGluZ3M6ICgxKSBNYW55IGNhbGVuZGFycworICogYXJlIGJhc2VkIG9uIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgKHN1Y2ggYXMgdGhlIEJ1ZGRoaXN0IGFuZCBKYXBhbmVzZQorICogaW1wZXJpYWwgY2FsZW5kYXJzKS4gKDIpIDxlbT5BbGw8L2VtPiBjYWxlbmRhcnMgcmVxdWlyZSBiYXNpYworICogR3JlZ29yaWFuIHN1cHBvcnQgaW4gb3JkZXIgdG8gaGFuZGxlIHRpbWV6b25lIGNvbXB1dGF0aW9ucy4gPC9wPgorICoKKyAqIDxwPkNvbW1vbiBjb21wdXRhdGlvbnMgaGF2ZSBiZWVuIG1vdmVkIGludG8KKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gU3ViY2xhc3NlcyBubyBsb25nZXIgY29tcHV0ZSB0aGUgd2VlayByZWxhdGVkCisgKiBmaWVsZHMgYW5kIHRoZSB0aW1lIHJlbGF0ZWQgZmllbGRzLiBUaGVzZSBhcmUgY29tbW9ubHkgaGFuZGxlZCBmb3IgYWxsCisgKiBjYWxlbmRhcnMgYnkgdGhlIGJhc2UgY2xhc3MuIDwvcD4KKyAqCisgKiA8cD48Yj5TdWJjbGFzcyBjb21wdXRhdGlvbiBvZiB0aW1lIDx0dD49Jmd0OzwvdHQ+IGZpZWxkczwvYj4KKyAqCisgKiA8cD5UaGUge0BsaW5rICNFUkF9LCB7QGxpbmsgI1lFQVJ9LAorICoge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwge0BsaW5rICNNT05USH0sCisgKiB7QGxpbmsgI0RBWV9PRl9NT05USH0sIGFuZCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSBmaWVsZHMgYXJlCisgKiBjb21wdXRlZCBieSB0aGUgc3ViY2xhc3MsIGJhc2VkIG9uIHRoZSBKdWxpYW4gZGF5LiBBbGwgb3RoZXIgZmllbGRzCisgKiBhcmUgY29tcHV0ZWQgYnkgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVDb21wdXRlRmllbGRzfQorICogICAgIHRvIGNvbXB1dGUgdGhlIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwKKyAqICAgICB7QGxpbmsgI0RBWV9PRl9NT05USH0sIGFuZCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSBmaWVsZHMsCisgKiAgICAgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoZSB7QGxpbmsgI0pVTElBTl9EQVl9IGZpZWxkLiBJZiB0aGVyZQorICogICAgIGFyZSBjYWxlbmRhci1zcGVjaWZpYyBmaWVsZHMgbm90IGRlZmluZWQgYnkgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LAorICogICAgIHRoZXkgbXVzdCBhbHNvIGJlIGNvbXB1dGVkLiBUaGVzZSBhcmUgdGhlIG9ubHkgZmllbGRzIHRoYXQgdGhlCisgKiAgICAgc3ViY2xhc3Mgc2hvdWxkIGNvbXB1dGUuIEFsbCBvdGhlciBmaWVsZHMgYXJlIGNvbXB1dGVkIGJ5IHRoZSBiYXNlCisgKiAgICAgY2xhc3MsIHNvIHRpbWUgYW5kIHdlZWsgZmllbGRzIGJlaGF2ZSBpbiBhIGNvbnNpc3RlbnQgd2F5IGFjcm9zcworICogICAgIGFsbCBjYWxlbmRhcnMuIFRoZSBkZWZhdWx0IHZlcnNpb24gb2YgdGhpcyBtZXRob2QgaW4KKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50cyBhIHByb2xlcHRpYyBHcmVnb3JpYW4KKyAqICAgICBjYWxlbmRhci4gV2l0aGluIHRoaXMgbWV0aG9kLCBzdWJjbGFzc2VzIG1heSBjYWxsCisgKiAgICAgPGNvZGU+Z2V0R3JlZ29yaWFuWHh4KCk8L2NvZGU+IHRvIG9idGFpbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyCisgKiAgICAgbW9udGgsIGRheSBvZiBtb250aCwgYW5kIGV4dGVuZGVkIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48Yj5TdWJjbGFzcyBjb21wdXRhdGlvbiBvZiBmaWVsZHMgPHR0Pj0mZ3Q7PC90dD4gdGltZTwvYj4KKyAqCisgKiA8cD5UaGUgaW50ZXJwcmV0YXRpb24gb2YgbW9zdCBmaWVsZCB2YWx1ZXMgaXMgaGFuZGxlZCBlbnRpcmVseSBieQorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gZGV0ZXJtaW5lcyB3aGljaCBmaWVsZHMKKyAqIGFyZSBzZXQsIHdoaWNoIGFyZSBub3QsIHdoaWNoIGFyZSBzZXQgbW9yZSByZWNlbnRseSwgYW5kIHNvIG9uLiBJbgorICogYWRkaXRpb24sIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYW5kbGVzIHRoZSBjb21wdXRhdGlvbiBvZiB0aGUgdGltZQorICogZnJvbSB0aGUgdGltZSBmaWVsZHMgYW5kIGhhbmRsZXMgdGhlIHdlZWstcmVsYXRlZCBmaWVsZHMuIFRoZSBvbmx5CisgKiB0aGluZyB0aGUgc3ViY2xhc3MgbXVzdCBkbyBpcyBkZXRlcm1pbmUgdGhlIGV4dGVuZGVkIHllYXIsIGJhc2VkIG9uCisgKiB0aGUgeWVhciBmaWVsZHMsIGFuZCB0aGVuLCBnaXZlbiBhbiBleHRlbmRlZCB5ZWFyIGFuZCBhIG1vbnRoLCBpdCBtdXN0CisgKiByZXR1cm4gYSBKdWxpYW4gZGF5IG51bWJlci4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0RXh0ZW5kZWRZZWFyfQorICogICAgIHRvIHJldHVybiB0aGUgZXh0ZW5kZWQgeWVhciBmb3IgdGhpcyBjYWxlbmRhciBzeXN0ZW0sIGJhc2VkIG9uIHRoZQorICogICAgIHtAbGluayAjWUVBUn0sIHtAbGluayAjRVhURU5ERURfWUVBUn0sIGFuZCBhbnkgZmllbGRzIHRoYXQKKyAqICAgICB0aGUgY2FsZW5kYXIgc3lzdGVtIHVzZXMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gYSB5ZWFyLCBzdWNoIGFzCisgKiAgICAge0BsaW5rICNFUkF9LjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnR9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlcgorICogICAgIGFzc29jaWF0ZWQgd2l0aCBhIG1vbnRoIGFuZCBleHRlbmRlZCB5ZWFyLiBUaGlzIGlzIHRoZSBKdWxpYW4gZGF5CisgKiAgICAgbnVtYmVyIG9mIHRoZSBkYXkgYmVmb3JlIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoLiBUaGUgbW9udGgKKyAqICAgICBudW1iZXIgaXMgemVyby1iYXNlZC4gVGhpcyBjb21wdXRhdGlvbiBzaG91bGQgbm90IGRlcGVuZCBvbiBhbnkKKyAqICAgICBmaWVsZCB2YWx1ZXMuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiPk90aGVyIG1ldGhvZHM8L2I+CisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldE1vbnRoTGVuZ3RofQorICogICAgIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYQorICogICAgIGdpdmVuIG1vbnRoIG9mIGEgZ2l2ZW4gZXh0ZW5kZWQgeWVhci4gVGhlIG1vbnRoIG51bWJlciwgYXMgYWx3YXlzLAorICogICAgIGlzIHplcm8tYmFzZWQuPC9saT4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRZZWFyTGVuZ3RofQorICogICAgIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuCisgKiAgICAgZXh0ZW5kZWQgeWVhci4gVGhpcyBtZXRob2QgaXMgdXNlZCBieQorICogICAgIDx0dD5jb21wdXRlV2Vla0ZpZWxkczwvdHQ+IHRvIGNvbXB1dGUgdGhlCisgKiAgICAge0BsaW5rICNXRUVLX09GX1lFQVJ9IGFuZCB7QGxpbmsgI1lFQVJfV09ZfSBmaWVsZHMuPC9saT4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRMaW1pdH0KKyAqICAgICB0byByZXR1cm4gdGhlIHtAbGluayAjTUlOSU1VTX0sCisgKiAgICAge0BsaW5rICNHUkVBVEVTVF9NSU5JTVVNfSwge0BsaW5rICNMRUFTVF9NQVhJTVVNfSwgb3IKKyAqICAgICB7QGxpbmsgI01BWElNVU19IG9mIGEgZmllbGQsIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YKKyAqICAgICA8Y29kZT5saW1pdFR5cGU8L2NvZGU+LiBUaGlzIG1ldGhvZCBvbmx5IG5lZWRzIHRvIGhhbmRsZSB0aGUKKyAqICAgICBmaWVsZHMge0BsaW5rICNFUkF9LCB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwKKyAqICAgICB7QGxpbmsgI1dFRUtfT0ZfWUVBUn0sIHtAbGluayAjV0VFS19PRl9NT05USH0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSwKKyAqICAgICB7QGxpbmsgI0RBWV9PRl9XRUVLX0lOX01PTlRIfSwge0BsaW5rICNZRUFSX1dPWX0sIGFuZAorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0uICBPdGhlciBmaWVsZHMgYXJlIGludmFyaWFudCAod2l0aAorICogICAgIHJlc3BlY3QgdG8gY2FsZW5kYXIgc3lzdGVtKSBhbmQgYXJlIGhhbmRsZWQgYnkgdGhlIGJhc2UKKyAqICAgICBjbGFzcy48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHtAbGluayAjdmFsaWRhdGVGaWVsZH0KKyAqICAgICB0byBjaGVjayBhbnkgc3ViY2xhc3Mtc3BlY2lmaWMgZmllbGRzLiBJZiB0aGUKKyAqICAgICBmaWVsZCdzIHZhbHVlIGlzIG91dCBvZiByYW5nZSwgdGhlIG1ldGhvZCBzaG91bGQgdGhyb3cgYW4KKyAqICAgICA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+LiBUaGUgbWV0aG9kIG1heSBjYWxsCisgKiAgICAgPGNvZGU+c3VwZXIudmFsaWRhdGVGaWVsZChmaWVsZCk8L2NvZGU+IHRvIGhhbmRsZSBmaWVsZHMgaW4gYQorICogICAgIGdlbmVyaWMgd2F5LCB0aGF0IGlzLCB0byBjb21wYXJlIHRoZW0gdG8gdGhlIHJhbmdlCisgKiAgICAgPGNvZGU+Z2V0TWluaW11bShmaWVsZCk8L2NvZGU+Li48Y29kZT5nZXRNYXhpbXVtKGZpZWxkKTwvY29kZT4uPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZQorICogICAgIHtAbGluayAjaGFuZGxlQ3JlYXRlRmllbGRzfSB0byBjcmVhdGUgYW4gPGNvZGU+aW50W108L2NvZGU+CisgKiAgICAgYXJyYXkgbGFyZ2UgZW5vdWdoIHRvIGhvbGQgdGhlIGNhbGVuZGFyJ3MgZmllbGRzLiBUaGlzIGlzIG9ubHkKKyAqICAgICBuZWNlc3NhcnkgaWYgdGhlIGNhbGVuZGFyIGRlZmluZXMgYWRkaXRpb25hbCBmaWVsZHMgYmV5b25kIHRob3NlCisgKiAgICAgZGVmaW5lZCBieSA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBtdXN0IGJlCisgKiAgICAgYXQgbGVhc3Qge0BsaW5rICNCQVNFX0ZJRUxEX0NPVU5UfSBhbmQgbm8gbW9yZSB0aGFuCisgKiAgICAge0BsaW5rICNNQVhfRklFTERfQ09VTlR9LjwvbGk+CisgKgorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKyAqICAgICB7QGxpbmsgI2hhbmRsZUdldERhdGVGb3JtYXR9IHRvIGNyZWF0ZSBhCisgKiAgICAgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4gVGhpcyBpcyBvbmx5CisgKiAgICAgcmVxdWlyZWQgaWYgYSBjYWxlbmRhciBzdWJjbGFzcyByZWRlZmluZXMgdGhlIHVzZSBvZiBhIGZpZWxkIChmb3IKKyAqICAgICBleGFtcGxlLCBjaGFuZ2VzIHRoZSB7QGxpbmsgI0VSQX0gZmllbGQgZnJvbSBhIHN5bWJvbGljIGZpZWxkCisgKiAgICAgdG8gYSBudW1lcmljIG9uZSkgb3IgZGVmaW5lcyBhbiBhZGRpdGlvbmFsIGZpZWxkLjwvbGk+CisgKgorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUge0BsaW5rICNyb2xsIHJvbGx9IGFuZAorICogICAgIHtAbGluayAjYWRkIGFkZH0gdG8gaGFuZGxlIGZpZWxkcyB0aGF0IGFyZSBkaXNjb250aW51b3VzLiBGb3IKKyAqICAgICBleGFtcGxlLCBpbiB0aGUgSGVicmV3IGNhbGVuZGFyIHRoZSBtb250aCAmcXVvdDtBZGFyIEkmcXVvdDsgb25seQorICogICAgIG9jY3VycyBpbiBsZWFwIHllYXJzOyBpbiBvdGhlciB5ZWFycyB0aGUgY2FsZW5kYXIganVtcHMgZnJvbQorICogICAgIFNoZXZhdCAobW9udGggIzQpIHRvIEFkYXIgKG1vbnRoICM2KS4gVGhlIHtAbGluaworICogICAgIEhlYnJld0NhbGVuZGFyI2FkZCBIZWJyZXdDYWxlbmRhci5hZGR9IGFuZCB7QGxpbmsKKyAqICAgICBIZWJyZXdDYWxlbmRhciNyb2xsIEhlYnJld0NhbGVuZGFyLnJvbGx9IG1ldGhvZHMgdGFrZSB0aGlzIGludG8KKyAqICAgICBhY2NvdW50LCBzbyB0aGF0IGFkZGluZyAxIG1vbnRoIHRvIFNoZXZhdCBnaXZlcyB0aGUgcHJvcGVyIHJlc3VsdAorICogICAgIChBZGFyKSBpbiBhIG5vbi1sZWFwIHllYXIuIFRoZSBwcm90ZWN0ZWQgdXRpbGl0eSBtZXRob2Qge0BsaW5rCisgKiAgICAgI3BpbkZpZWxkIHBpbkZpZWxkfSBpcyBvZnRlbiB1c2VmdWwgd2hlbiBpbXBsZW1lbnRpbmcgdGhlc2UgdHdvCisgKiAgICAgbWV0aG9kcy4gPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiaWc+PGI+Tm9ybWFsaXplZCBiZWhhdmlvcjwvYj48L2JpZz4KKyAqCisgKiA8cD5UaGUgYmVoYXZpb3Igb2YgY2VydGFpbiBmaWVsZHMgaGFzIGJlZW4gbWFkZSBjb25zaXN0ZW50IGFjcm9zcyBhbGwKKyAqIGNhbGVuZGFyIHN5c3RlbXMgYW5kIGltcGxlbWVudGVkIGluIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+VGltZSBpcyBub3JtYWxpemVkLiBFdmVuIHRob3VnaCBzb21lIGNhbGVuZGFyIHN5c3RlbXMgdHJhbnNpdGlvbgorICogICAgIGJldHdlZW4gZGF5cyBhdCBzdW5zZXQgb3IgYXQgb3RoZXIgdGltZXMsIGFsbCBJQ1U0SiBjYWxlbmRhcnMKKyAqICAgICB0cmFuc2l0aW9uIGJldHdlZW4gZGF5cyBhdCA8ZW0+bG9jYWwgem9uZSBtaWRuaWdodDwvZW0+LiAgVGhpcworICogICAgIGFsbG93cyBJQ1U0SiB0byBjZW50cmFsaXplIHRoZSB0aW1lIGNvbXB1dGF0aW9ucyBpbgorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBhbmQgdG8gbWFpbnRhaW4gYmFzaWMgY29ycmVwc29uZGVuY2VzCisgKiAgICAgYmV0d2VlbiBjYWxlbmRhciBzeXN0ZW1zLiBBZmZlY3RlZCBmaWVsZHM6IHtAbGluayAjQU1fUE19LAorICogICAgIHtAbGluayAjSE9VUn0sIHtAbGluayAjSE9VUl9PRl9EQVl9LCB7QGxpbmsgI01JTlVURX0sCisgKiAgICAge0BsaW5rICNTRUNPTkR9LCB7QGxpbmsgI01JTExJU0VDT05EfSwKKyAqICAgICB7QGxpbmsgI1pPTkVfT0ZGU0VUfSwgYW5kIHtAbGluayAjRFNUX09GRlNFVH0uPC9saT4KKyAqCisgKiAgIDxsaT5EU1QgYmVoYXZpb3IgaXMgbm9ybWFsaXplZC4gRGF5bGlnaHQgc2F2aW5ncyB0aW1lIGJlaGF2aW9yIGlzCisgKiAgICAgY29tcHV0ZWQgdGhlIHNhbWUgZm9yIGFsbCBjYWxlbmRhciBzeXN0ZW1zLCBhbmQgZGVwZW5kcyBvbiB0aGUKKyAqICAgICB2YWx1ZSBvZiBzZXZlcmFsIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBmaWVsZHM6IHRoZQorICogICAgIHtAbGluayAjWUVBUn0sIHtAbGluayAjTU9OVEh9LCBhbmQKKyAqICAgICB7QGxpbmsgI0RBWV9PRl9NT05USH0uIEFzIGEgcmVzdWx0LCA8Y29kZT5DYWxlbmRhcjwvY29kZT4KKyAqICAgICBhbHdheXMgY29tcHV0ZXMgdGhlc2UgZmllbGRzLCBldmVuIGZvciBub24tR3JlZ29yaWFuIGNhbGVuZGFyCisgKiAgICAgc3lzdGVtcy4gVGhlc2UgZmllbGRzIGFyZSBhdmFpbGFibGUgdG8gc3ViY2xhc3Nlcy48L2xpPgorICoKKyAqICAgPGxpPldlZWtzIGFyZSBub3JtYWxpemVkLiBBbHRob3VnaCBsb2NhbGVzIGRlZmluZSB0aGUgd2VlaworICogICAgIGRpZmZlcmVudGx5LCBpbiB0ZXJtcyBvZiB0aGUgZGF5IG9uIHdoaWNoIGl0IHN0YXJ0cywgYW5kIHRoZQorICogICAgIGRlc2lnbmF0aW9uIG9mIHdlZWsgbnVtYmVyIG9uZSBvZiBhIG1vbnRoIG9yIHllYXIsIHRoZXkgYWxsIHVzZSBhCisgKiAgICAgY29tbW9uIG1lY2hhbmlzbS4gRnVydGhlcm1vcmUsIHRoZSBkYXkgb2YgdGhlIHdlZWsgaGFzIGEgc2ltcGxlCisgKiAgICAgYW5kIGNvbnNpc3RlbnQgZGVmaW5pdGlvbiB0aHJvdWdob3V0IGhpc3RvcnkuIEZvciBleGFtcGxlLAorICogICAgIGFsdGhvdWdoIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW50cm9kdWNlZCBhIGRpc2NvbnRpbnVpdHkgd2hlbgorICogICAgIGZpcnN0IGluc3RpdHV0ZWQsIHRoZSBkYXkgb2Ygd2VlayB3YXMgbm90IGRpc3J1cHRlZC4gRm9yIHRoaXMKKyAqICAgICByZWFzb24sIHRoZSBmaWVsZHMge0BsaW5rICNEQVlfT0ZfV0VFS30sIDxjb2RlPldFRUtfT0ZfWUVBUiwKKyAqICAgICBXRUVLX09GX01PTlRIPC9jb2RlPiwge0BsaW5rICNEQVlfT0ZfV0VFS19JTl9NT05USH0sCisgKiAgICAge0BsaW5rICNET1dfTE9DQUx9LCB7QGxpbmsgI1lFQVJfV09ZfSBhcmUgYWxsIGNvbXB1dGVkIGluCisgKiAgICAgYSBjb25zaXN0ZW50IHdheSBpbiB0aGUgYmFzZSBjbGFzcywgYmFzZWQgb24gdGhlCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwge0BsaW5rICNEQVlfT0ZfWUVBUn0sCisgKiAgICAge0BsaW5rICNNT05USH0sIGFuZCB7QGxpbmsgI0RBWV9PRl9NT05USH0sIHdoaWNoIGFyZQorICogICAgIGNvbXB1dGVkIGJ5IHRoZSBzdWJjbGFzcy48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGJpZz48Yj5TdXBwb3J0ZWQgcmFuZ2U8L2I+PC9iaWc+CisgKgorICogPHA+VGhlIGFsbG93YWJsZSByYW5nZSBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaGFzIGJlZW4KKyAqIG5hcnJvd2VkLiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gdXNlZCB0byBhdHRlbXB0IHRvIHN1cHBvcnQKKyAqIHRoZSByYW5nZSBvZiBkYXRlcyB3aXRoIG1pbGxpc2Vjb25kIHZhbHVlcyBmcm9tCisgKiA8Y29kZT5Mb25nLk1JTl9WQUxVRTwvY29kZT4gdG8gPGNvZGU+TG9uZy5NQVhfVkFMVUU8L2NvZGU+LiBUaGlzCisgKiBpbnRyb2R1Y2VkIGF3a3dhcmQgY29uc3RydWN0aW9ucyAoaGFja3MpIHdoaWNoIHNsb3dlZCBkb3duCisgKiBwZXJmb3JtYW5jZS4gSXQgYWxzbyBpbnRyb2R1Y2VkIG5vbi11bmlmb3JtIGJlaGF2aW9yIGF0IHRoZQorICogYm91bmRhcmllcy4gVGhlIG5ldyA8Y29kZT5DYWxlbmRhcjwvY29kZT4gcHJvdG9jb2wgc3BlY2lmaWVzIHRoZQorICogbWF4aW11bSByYW5nZSBvZiBzdXBwb3J0YWJsZSBkYXRlcyBhcyB0aG9zZSBoYXZpbmcgSnVsaWFuIGRheSBudW1iZXJzCisgKiBvZiA8Y29kZT4tMHg3RjAwMDAwMDwvY29kZT4gdG8gPGNvZGU+KzB4N0YwMDAwMDA8L2NvZGU+LiBUaGlzCisgKiBjb3JyZXNwb25kcyB0byB5ZWFycyBmcm9tIH41LDAwMCwwMDAgQkNFIHRvIH41LDAwMCwwMDAgQ0UuIFByb2dyYW1tZXJzCisgKiBzaG91bGQgdXNlIHRoZSBjb25zdGFudHMge0BsaW5rICNNSU5fREFURX0gKG9yCisgKiB7QGxpbmsgI01JTl9NSUxMSVN9IG9yIHtAbGluayAjTUlOX0pVTElBTn0pIGFuZAorICoge0BsaW5rICNNQVhfREFURX0gKG9yIHtAbGluayAjTUFYX01JTExJU30gb3IKKyAqIHtAbGluayAjTUFYX0pVTElBTn0pIGluIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiB0byBzcGVjaWZ5IGFuCisgKiBleHRyZW1lbHkgZWFybHkgb3IgZXh0cmVtZWx5IGxhdGUgZGF0ZS48L3A+CisgKgorICogPHA+PGJpZz48Yj5HZW5lcmFsIG5vdGVzPC9iPjwvYmlnPgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5DYWxlbmRhcnMgaW1wbGVtZW50YXRpb25zIGFyZSA8ZW0+cHJvbGVwdGljPC9lbT4uIEZvciBleGFtcGxlLAorICogICAgIGV2ZW4gdGhvdWdoIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgd2FzIG5vdCBpbnN0aXR1dGVkIHVudGlsIHRoZQorICogICAgIDE2dGggY2VudHVyeSwgdGhlIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBjbGFzcyBzdXBwb3J0cworICogICAgIGRhdGVzIGJlZm9yZSB0aGUgaGlzdG9yaWNhbCBvbnNldCBvZiB0aGUgY2FsZW5kYXIgYnkgZXh0ZW5kaW5nIHRoZQorICogICAgIGNhbGVuZGFyIHN5c3RlbSBiYWNrd2FyZCBpbiB0aW1lLiBTaW1pbGFybHksIHRoZQorICogICAgIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBleHRlbmRzIGJhY2t3YXJkIGJlZm9yZSB0aGUgc3RhcnQgb2YKKyAqICAgICBpdHMgZXBvY2ggaW50byB6ZXJvIGFuZCBuZWdhdGl2ZSB5ZWFycy4gU3ViY2xhc3NlcyBkbyBub3QgdGhyb3cKKyAqICAgICBleGNlcHRpb25zIGJlY2F1c2UgYSBkYXRlIHByZWNlZGVzIHRoZSBoaXN0b3JpY2FsIHN0YXJ0IG9mIGEKKyAqICAgICBjYWxlbmRhciBzeXN0ZW0uIEluc3RlYWQsIHRoZXkgaW1wbGVtZW50CisgKiAgICAge0BsaW5rICNoYW5kbGVHZXRMaW1pdH0gdG8gcmV0dXJuIGFwcHJvcHJpYXRlIGxpbWl0cyBvbgorICogICAgIHtAbGluayAjWUVBUn0sIHtAbGluayAjRVJBfSwgZXRjLiBmaWVsZHMuIFRoZW4sIGlmIHRoZQorICogICAgIGNhbGVuZGFyIGlzIHNldCB0byBub3QgYmUgbGVuaWVudCwgb3V0LW9mLXJhbmdlIGZpZWxkIHZhbHVlcyB3aWxsCisgKiAgICAgdHJpZ2dlciBhbiBleGNlcHRpb24uPC9saT4KKyAqCisgKiAgIDxsaT5DYWxlbmRhciBzeXN0ZW0gc3ViY2xhc3NlcyBjb21wdXRlIGEgPGVtPmV4dGVuZGVkCisgKiAgICAgeWVhcjwvZW0+LiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUge0BsaW5rICNZRUFSfSBmaWVsZCBpbiB0aGF0CisgKiAgICAgaXQgcmFuZ2VzIG92ZXIgYWxsIGludGVnZXIgdmFsdWVzLCBpbmNsdWRpbmcgemVybyBhbmQgbmVnYXRpdmUKKyAqICAgICB2YWx1ZXMsIGFuZCBpdCBlbmNhcHN1bGF0ZXMgdGhlIGluZm9ybWF0aW9uIG9mIHRoZQorICogICAgIHtAbGluayAjWUVBUn0gZmllbGQgYW5kIGFsbCBsYXJnZXIgZmllbGRzLiAgVGh1cywgZm9yIHRoZQorICogICAgIEdyZWdvcmlhbiBjYWxlbmRhciwgdGhlIHtAbGluayAjRVhURU5ERURfWUVBUn0gaXMgY29tcHV0ZWQgYXMKKyAqICAgICA8Y29kZT5FUkE9PUFEID8gWUVBUiA6IDEtWUVBUjwvY29kZT4uIEFub3RoZXIgZXhhbXBsZSBpcyB0aGUgTWF5YW4KKyAqICAgICBsb25nIGNvdW50LCB3aGljaCBoYXMgeWVhcnMgKDxjb2RlPktVTjwvY29kZT4pIGFuZCBuZXN0ZWQgY3ljbGVzCisgKiAgICAgb2YgeWVhcnMgKDxjb2RlPktBVFVOPC9jb2RlPiBhbmQgPGNvZGU+QkFLVFVOPC9jb2RlPikuIFRoZSBNYXlhbgorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0gaXMgY29tcHV0ZWQgYXMgPGNvZGU+VFVOICsgMjAgKiAoS0FUVU4KKyAqICAgICArIDIwICogQkFLVFVOKTwvY29kZT4uIFRoZSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gYmFzZSBjbGFzcyB1c2VzCisgKiAgICAgdGhlIHtAbGluayAjRVhURU5ERURfWUVBUn0gZmllbGQgdG8gY29tcHV0ZSB0aGUgd2Vlay1yZWxhdGVkCisgKiAgICAgZmllbGRzLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiBAc2VlICAgICAgICAgIERhdGUKKyAqIEBzZWUgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgVGltZVpvbmUKKyAqIEBzZWUgICAgICAgICAgRGF0ZUZvcm1hdAorICogQGF1dGhvciBNYXJrIERhdmlzLCBEYXZpZCBHb2xkc21pdGgsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUsIExhdXJhIFdlcm5lcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBDYWxlbmRhciBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSwgQ2xvbmVhYmxlLCBDb21wYXJhYmxlIHsKKworICAgIC8vIERhdGEgZmxvdyBpbiBDYWxlbmRhcgorICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gVGhlIGN1cnJlbnQgdGltZSBpcyByZXByZXNlbnRlZCBpbiB0d28gd2F5cyBieSBDYWxlbmRhcjogYXMgVVRDCisgICAgLy8gbWlsbGlzZWNvbmRzIGZyb20gdGhlIGVwb2NoIHN0YXJ0ICgxIEphbnVhcnkgMTk3MCAwOjAwIFVUQyksIGFuZCBhcyBsb2NhbAorICAgIC8vIGZpZWxkcyBzdWNoIGFzIE1PTlRILCBIT1VSLCBBTV9QTSwgZXRjLiAgSXQgaXMgcG9zc2libGUgdG8gY29tcHV0ZSB0aGUKKyAgICAvLyBtaWxsaXMgZnJvbSB0aGUgZmllbGRzLCBhbmQgdmljZSB2ZXJzYS4gIFRoZSBkYXRhIG5lZWRlZCB0byBkbyB0aGlzCisgICAgLy8gY29udmVyc2lvbiBpcyBlbmNhcHN1bGF0ZWQgYnkgYSBUaW1lWm9uZSBvYmplY3Qgb3duZWQgYnkgdGhlIENhbGVuZGFyLgorICAgIC8vIFRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBUaW1lWm9uZSBvYmplY3QgbWF5IGFsc28gYmUgb3ZlcnJpZGRlbiBpZiB0aGUKKyAgICAvLyB1c2VyIHNldHMgdGhlIFpPTkVfT0ZGU0VUIGFuZC9vciBEU1RfT0ZGU0VUIGZpZWxkcyBkaXJlY3RseS4gVGhlIGNsYXNzCisgICAgLy8ga2VlcHMgdHJhY2sgb2Ygd2hhdCBpbmZvcm1hdGlvbiB3YXMgbW9zdCByZWNlbnRseSBzZXQgYnkgdGhlIGNhbGxlciwgYW5kCisgICAgLy8gdXNlcyB0aGF0IHRvIGNvbXB1dGUgYW55IG90aGVyIGluZm9ybWF0aW9uIGFzIG5lZWRlZC4KKworICAgIC8vIElmIHRoZSB1c2VyIHNldHMgdGhlIGZpZWxkcyB1c2luZyBzZXQoKSwgdGhlIGRhdGEgZmxvdyBpcyBhcyBmb2xsb3dzLgorICAgIC8vIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIENhbGVuZGFyIHN1YmNsYXNzJ3MgY29tcHV0ZVRpbWUoKSBtZXRob2QuCisgICAgLy8gRHVyaW5nIHRoaXMgcHJvY2VzcywgY2VydGFpbiBmaWVsZHMgbWF5IGJlIGlnbm9yZWQuICBUaGUgZGlzYW1iaWd1YXRpb24KKyAgICAvLyBhbGdvcml0aG0gZm9yIHJlc29sdmluZyB3aGljaCBmaWVsZHMgdG8gcGF5IGF0dGVudGlvbiB0byBpcyBkZXNjcmliZWQKKyAgICAvLyBhYm92ZS4KKworICAgIC8vICAgbG9jYWwgZmllbGRzIChZRUFSLCBNT05USCwgREFURSwgSE9VUiwgTUlOVVRFLCBldGMuKQorICAgIC8vICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgIHwgVXNpbmcgQ2FsZW5kYXItc3BlY2lmaWMgYWxnb3JpdGhtCisgICAgLy8gICAgICAgICAgIFYKKyAgICAvLyAgIGxvY2FsIHN0YW5kYXJkIG1pbGxpcworICAgIC8vICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgIHwgVXNpbmcgVGltZVpvbmUgb3IgdXNlci1zZXQgWk9ORV9PRkZTRVQgLyBEU1RfT0ZGU0VUCisgICAgLy8gICAgICAgICAgIFYKKyAgICAvLyAgIFVUQyBtaWxsaXMgKGluIHRpbWUgZGF0YSBtZW1iZXIpCisKKyAgICAvLyBJZiB0aGUgdXNlciBzZXRzIHRoZSBVVEMgbWlsbGlzIHVzaW5nIHNldFRpbWUoKSwgdGhlIGRhdGEgZmxvdyBpcyBhcworICAgIC8vIGZvbGxvd3MuICBUaGlzIGlzIGltcGxlbWVudGVkIGJ5IHRoZSBDYWxlbmRhciBzdWJjbGFzcydzIGNvbXB1dGVGaWVsZHMoKQorICAgIC8vIG1ldGhvZC4KKworICAgIC8vICAgVVRDIG1pbGxpcyAoaW4gdGltZSBkYXRhIG1lbWJlcikKKyAgICAvLyAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICB8IFVzaW5nIFRpbWVab25lIGdldE9mZnNldCgpCisgICAgLy8gICAgICAgICAgIFYKKyAgICAvLyAgIGxvY2FsIHN0YW5kYXJkIG1pbGxpcworICAgIC8vICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgIHwgVXNpbmcgQ2FsZW5kYXItc3BlY2lmaWMgYWxnb3JpdGhtCisgICAgLy8gICAgICAgICAgIFYKKyAgICAvLyAgIGxvY2FsIGZpZWxkcyAoWUVBUiwgTU9OVEgsIERBVEUsIEhPVVIsIE1JTlVURSwgZXRjLikKKworICAgIC8vIEluIGdlbmVyYWwsIGEgcm91bmQgdHJpcCBmcm9tIGZpZWxkcywgdGhyb3VnaCBsb2NhbCBhbmQgVVRDIG1pbGxpcywgYW5kCisgICAgLy8gYmFjayBvdXQgdG8gZmllbGRzIGlzIG1hZGUgd2hlbiBuZWNlc3NhcnkuICBUaGlzIGlzIGltcGxlbWVudGVkIGJ5IHRoZQorICAgIC8vIGNvbXBsZXRlKCkgbWV0aG9kLiAgUmVzb2x2aW5nIGEgcGFydGlhbCBzZXQgb2YgZmllbGRzIGludG8gYSBVVEMgbWlsbGlzCisgICAgLy8gdmFsdWUgYWxsb3dzIGFsbCByZW1haW5pbmcgZmllbGRzIHRvIGJlIGdlbmVyYXRlZCBmcm9tIHRoYXQgdmFsdWUuICBJZgorICAgIC8vIHRoZSBDYWxlbmRhciBpcyBsZW5pZW50LCB0aGUgZmllbGRzIGFyZSBhbHNvIHJlbm9ybWFsaXplZCB0byBzdGFuZGFyZAorICAgIC8vIHJhbmdlcyB3aGVuIHRoZXkgYXJlIHJlZ2VuZXJhdGVkLgorCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZXJhLCBlLmcuLCBBRCBvciBCQyBpbiB0aGUgSnVsaWFuIGNhbGVuZGFyLiBUaGlzIGlzIGEgY2FsZW5kYXItc3BlY2lmaWMKKyAgICAgKiB2YWx1ZTsgc2VlIHN1YmNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQHNlZSBHcmVnb3JpYW5DYWxlbmRhciNBRAorICAgICAqIEBzZWUgR3JlZ29yaWFuQ2FsZW5kYXIjQkMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBFUkEgPSAwOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogeWVhci4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljIHZhbHVlOyBzZWUgc3ViY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSID0gMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIG1vbnRoLiBUaGlzIGlzIGEgY2FsZW5kYXItc3BlY2lmaWMgdmFsdWUuIFRoZSBmaXJzdCBtb250aCBvZiB0aGUgeWVhciBpcworICAgICAqIDxjb2RlPkpBTlVBUlk8L2NvZGU+OyB0aGUgbGFzdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbW9udGhzIGluIGEgeWVhci4KKyAgICAgKiBAc2VlICNKQU5VQVJZCisgICAgICogQHNlZSAjRkVCUlVBUlkKKyAgICAgKiBAc2VlICNNQVJDSAorICAgICAqIEBzZWUgI0FQUklMCisgICAgICogQHNlZSAjTUFZCisgICAgICogQHNlZSAjSlVORQorICAgICAqIEBzZWUgI0pVTFkKKyAgICAgKiBAc2VlICNBVUdVU1QKKyAgICAgKiBAc2VlICNTRVBURU1CRVIKKyAgICAgKiBAc2VlICNPQ1RPQkVSCisgICAgICogQHNlZSAjTk9WRU1CRVIKKyAgICAgKiBAc2VlICNERUNFTUJFUgorICAgICAqIEBzZWUgI1VOREVDSU1CRVIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05USCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiB3ZWVrIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgeWVhci4gIFRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLCBhcworICAgICAqIGRlZmluZWQgYnkgPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiwgaGFzIHZhbHVlIDEuICBTdWJjbGFzc2VzIGRlZmluZQorICAgICAqIHRoZSB2YWx1ZSBvZiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+IGZvciBkYXlzIGJlZm9yZSB0aGUgZmlyc3Qgd2VlayBvZgorICAgICAqIHRoZSB5ZWFyLgorICAgICAqIEBzZWUgI2dldEZpcnN0RGF5T2ZXZWVrCisgICAgICogQHNlZSAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRUtfT0ZfWUVBUiA9IDM7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiB3ZWVrIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGguICBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgbW9udGgsIGFzCisgICAgICogZGVmaW5lZCBieSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LCBoYXMgdmFsdWUgMS4gIFN1YmNsYXNzZXMgZGVmaW5lCisgICAgICogdGhlIHZhbHVlIG9mIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGZvciBkYXlzIGJlZm9yZSB0aGUgZmlyc3Qgd2VlayBvZgorICAgICAqIHRoZSBtb250aC4KKyAgICAgKiBAc2VlICNnZXRGaXJzdERheU9mV2VlaworICAgICAqIEBzZWUgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX01PTlRIID0gNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGRheSBvZiB0aGUgbW9udGguIFRoaXMgaXMgYSBzeW5vbnltIGZvciA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+LgorICAgICAqIFRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGhhcyB2YWx1ZSAxLgorICAgICAqIEBzZWUgI0RBWV9PRl9NT05USAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEUgPSA1OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZGF5IG9mIHRoZSBtb250aC4gVGhpcyBpcyBhIHN5bm9ueW0gZm9yIDxjb2RlPkRBVEU8L2NvZGU+LgorICAgICAqIFRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGhhcyB2YWx1ZSAxLgorICAgICAqIEBzZWUgI0RBVEUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfTU9OVEggPSA1OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlIGRheQorICAgICAqIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgeWVhci4gIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHllYXIgaGFzIHZhbHVlIDEuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1lFQVIgPSA2OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlIGRheQorICAgICAqIG9mIHRoZSB3ZWVrLiAgVGhpcyBmaWVsZCB0YWtlcyB2YWx1ZXMgPGNvZGU+U1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5NT05EQVk8L2NvZGU+LCA8Y29kZT5UVUVTREFZPC9jb2RlPiwgPGNvZGU+V0VETkVTREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5USFVSU0RBWTwvY29kZT4sIDxjb2RlPkZSSURBWTwvY29kZT4sIGFuZCA8Y29kZT5TQVRVUkRBWTwvY29kZT4uCisgICAgICogQHNlZSAjU1VOREFZCisgICAgICogQHNlZSAjTU9OREFZCisgICAgICogQHNlZSAjVFVFU0RBWQorICAgICAqIEBzZWUgI1dFRE5FU0RBWQorICAgICAqIEBzZWUgI1RIVVJTREFZCisgICAgICogQHNlZSAjRlJJREFZCisgICAgICogQHNlZSAjU0FUVVJEQVkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfV0VFSyA9IDc7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBvcmRpbmFsIG51bWJlciBvZiB0aGUgZGF5IG9mIHRoZSB3ZWVrIHdpdGhpbiB0aGUgY3VycmVudCBtb250aC4gVG9nZXRoZXIKKyAgICAgKiB3aXRoIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQsIHRoaXMgdW5pcXVlbHkgc3BlY2lmaWVzIGEgZGF5CisgICAgICogd2l0aGluIGEgbW9udGguICBVbmxpa2UgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gYW5kCisgICAgICogPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiwgdGhpcyBmaWVsZCdzIHZhbHVlIGRvZXMgPGVtPm5vdDwvZW0+IGRlcGVuZCBvbgorICAgICAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IG9yCisgICAgICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPi4gIDxjb2RlPkRBWV9PRl9NT05USCAxPC9jb2RlPgorICAgICAqIHRocm91Z2ggPGNvZGU+NzwvY29kZT4gYWx3YXlzIGNvcnJlc3BvbmQgdG8gPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgKiAxPC9jb2RlPjsgPGNvZGU+ODwvY29kZT4gdGhyb3VnaCA8Y29kZT4xNTwvY29kZT4gY29ycmVzcG9uZCB0bworICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIDI8L2NvZGU+LCBhbmQgc28gb24uCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggMDwvY29kZT4gaW5kaWNhdGVzIHRoZSB3ZWVrIGJlZm9yZQorICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIDE8L2NvZGU+LiAgTmVnYXRpdmUgdmFsdWVzIGNvdW50IGJhY2sgZnJvbSB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG1vbnRoLCBzbyB0aGUgbGFzdCBTdW5kYXkgb2YgYSBtb250aCBpcyBzcGVjaWZpZWQgYXMKKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFSyA9IFNVTkRBWSwgREFZX09GX1dFRUtfSU5fTU9OVEggPSAtMTwvY29kZT4uICBCZWNhdXNlCisgICAgICogbmVnYXRpdmUgdmFsdWVzIGNvdW50IGJhY2t3YXJkIHRoZXkgd2lsbCB1c3VhbGx5IGJlIGFsaWduZWQgZGlmZmVyZW50bHkKKyAgICAgKiB3aXRoaW4gdGhlIG1vbnRoIHRoYW4gcG9zaXRpdmUgdmFsdWVzLiAgRm9yIGV4YW1wbGUsIGlmIGEgbW9udGggaGFzIDMxCisgICAgICogZGF5cywgPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggLTE8L2NvZGU+IHdpbGwgb3ZlcmxhcAorICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIDU8L2NvZGU+IGFuZCB0aGUgZW5kIG9mIDxjb2RlPjQ8L2NvZGU+LgorICAgICAqIEBzZWUgI0RBWV9PRl9XRUVLCisgICAgICogQHNlZSAjV0VFS19PRl9NT05USAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0lOX01PTlRIID0gODsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogd2hldGhlciB0aGUgPGNvZGU+SE9VUjwvY29kZT4gaXMgYmVmb3JlIG9yIGFmdGVyIG5vb24uCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gaXMgPGNvZGU+UE08L2NvZGU+LgorICAgICAqIEBzZWUgI0FNCisgICAgICogQHNlZSAjUE0KKyAgICAgKiBAc2VlICNIT1VSCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU1fUE0gPSA5OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogaG91ciBvZiB0aGUgbW9ybmluZyBvciBhZnRlcm5vb24uIDxjb2RlPkhPVVI8L2NvZGU+IGlzIHVzZWQgZm9yIHRoZSAxMi1ob3VyCisgICAgICogY2xvY2suCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5IT1VSPC9jb2RlPiBpcyAxMC4KKyAgICAgKiBAc2VlICNBTV9QTQorICAgICAqIEBzZWUgI0hPVVJfT0ZfREFZCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUiA9IDEwOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogaG91ciBvZiB0aGUgZGF5LiA8Y29kZT5IT1VSX09GX0RBWTwvY29kZT4gaXMgdXNlZCBmb3IgdGhlIDI0LWhvdXIgY2xvY2suCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5IT1VSX09GX0RBWTwvY29kZT4gaXMgMjIuCisgICAgICogQHNlZSAjSE9VUgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVJfT0ZfREFZID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtaW51dGUgd2l0aGluIHRoZSBob3VyLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+TUlOVVRFPC9jb2RlPiBpcyA0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURSA9IDEyOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogc2Vjb25kIHdpdGhpbiB0aGUgbWludXRlLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+U0VDT05EPC9jb2RlPiBpcyAxNS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRUNPTkQgPSAxMzsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIG1pbGxpc2Vjb25kIHdpdGhpbiB0aGUgc2Vjb25kLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+TUlMTElTRUNPTkQ8L2NvZGU+IGlzIDI1MC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSUxMSVNFQ09ORCA9IDE0OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogcmF3IG9mZnNldCBmcm9tIEdNVCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWk9ORV9PRkZTRVQgPSAxNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGRheWxpZ2h0IHNhdmluZ3Mgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEU1RfT0ZGU0VUID0gMTY7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgZXh0ZW5kZWQgeWVhciBjb3JyZXNwb25kaW5nIHRvIHRoZQorICAgICAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZmllbGQuICBUaGlzIG1heSBiZSBvbmUgZ3JlYXRlciBvciBsZXNzCisgICAgICogdGhhbiB0aGUgdmFsdWUgb2YgPGNvZGU+RVhURU5ERURfWUVBUjwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUVBUl9XT1kgPSAxNzsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBsb2NhbGl6ZWQgZGF5IG9mIHdlZWsuICBUaGlzIHdpbGwgYmUgYSB2YWx1ZSBmcm9tIDEKKyAgICAgKiB0byA3IGluY2x1c2l2ZSwgd2l0aCAxIGJlaW5nIHRoZSBsb2NhbGl6ZWQgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPV19MT0NBTCA9IDE4OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGV4dGVuZGVkIHllYXIuICBUaGlzIGlzIGEgc2luZ2xlIG51bWJlciBkZXNpZ25hdGluZworICAgICAqIHRoZSB5ZWFyIG9mIHRoaXMgY2FsZW5kYXIgc3lzdGVtLCBlbmNvbXBhc3NpbmcgYWxsIHN1cHJhLXllYXIKKyAgICAgKiBmaWVsZHMuICBGb3IgZXhhbXBsZSwgZm9yIHRoZSBKdWxpYW4gY2FsZW5kYXIgc3lzdGVtLCB5ZWFyIG51bWJlcnMKKyAgICAgKiBhcmUgcG9zaXRpdmUsIHdpdGggYW4gZXJhIG9mIEJDRSBvciBDRS4gIEFuIGV4dGVuZGVkIHllYXIgdmFsdWUgZm9yCisgICAgICogdGhlIEp1bGlhbiBjYWxlbmRhciBzeXN0ZW0gYXNzaWducyBwb3NpdGl2ZSB2YWx1ZXMgdG8gQ0UgeWVhcnMgYW5kCisgICAgICogbmVnYXRpdmUgdmFsdWVzIHRvIEJDRSB5ZWFycywgd2l0aCAxIEJDRSBiZWluZyB5ZWFyIDAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ERURfWUVBUiA9IDE5OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIG1vZGlmaWVkIEp1bGlhbiBkYXkgbnVtYmVyLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbQorICAgICAqIHRoZSBjb252ZW50aW9uYWwgSnVsaWFuIGRheSBudW1iZXIgaW4gdHdvIHJlZ2FyZHMuICBGaXJzdCwgaXQKKyAgICAgKiBkZW1hcmNhdGVzIGRheXMgYXQgbG9jYWwgem9uZSBtaWRuaWdodCwgcmF0aGVyIHRoYW4gbm9vbiBHTVQuCisgICAgICogU2Vjb25kLCBpdCBpcyBhIGxvY2FsIG51bWJlcjsgdGhhdCBpcywgaXQgZGVwZW5kcyBvbiB0aGUgbG9jYWwgdGltZQorICAgICAqIHpvbmUuICBJdCBjYW4gYmUgdGhvdWdodCBvZiBhcyBhIHNpbmdsZSBudW1iZXIgdGhhdCBlbmNvbXBhc3NlcyBhbGwKKyAgICAgKiB0aGUgZGF0ZS1yZWxhdGVkIGZpZWxkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKVUxJQU5fREFZID0gMjA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbWlsbGlzZWNvbmRzIGluIHRoZSBkYXkuICBUaGlzIHJhbmdlcyBmcm9tIDAgdG8KKyAgICAgKiAyMzo1OTo1OS45OTkgKHJlZ2FyZGxlc3Mgb2YgRFNUKS4gIFRoaXMgZmllbGQgYmVoYXZlcworICAgICAqIDxlbT5leGFjdGx5PC9lbT4gbGlrZSBhIGNvbXBvc2l0ZSBvZiBhbGwgdGltZS1yZWxhdGVkIGZpZWxkcywgbm90CisgICAgICogaW5jbHVkaW5nIHRoZSB6b25lIGZpZWxkcy4gIEFzIHN1Y2gsIGl0IGFsc28gcmVmbGVjdHMKKyAgICAgKiBkaXNjb250aW51aXRpZXMgb2YgdGhvc2UgZmllbGRzIG9uIERTVCB0cmFuc2l0aW9uIGRheXMuICBPbiBhIGRheSBvZgorICAgICAqIERTVCBvbnNldCwgaXQgd2lsbCBqdW1wIGZvcndhcmQuICBPbiBhIGRheSBvZiBEU1QgY2Vzc2F0aW9uLCBpdCB3aWxsCisgICAgICoganVtcCBiYWNrd2FyZC4gIFRoaXMgcmVmbGVjdHMgdGhlIGZhY3QgdGhhdCBpcyBtdXN0IGJlIGNvbWJpbmVkIHdpdGgKKyAgICAgKiB0aGUgRFNUX09GRlNFVCBmaWVsZCB0byBvYnRhaW4gYSB1bmlxdWUgbG9jYWwgdGltZSB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSUxMSVNFQ09ORFNfSU5fREFZID0gMjE7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGZpZWxkcyBkZWZpbmVkIGJ5IHRoaXMgY2xhc3MuICBTdWJjbGFzc2VzIG1heSBkZWZpbmUKKyAgICAgKiBhZGRpdGlvbiBmaWVsZHMgc3RhcnRpbmcgd2l0aCB0aGlzIG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCQVNFX0ZJRUxEX0NPVU5UID0gMjI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZmllbGRzIHBvc3NpYmxlLiAgU3ViY2xhc3NlcyBtdXN0IG5vdCBkZWZpbmUKKyAgICAgKiBtb3JlIHRvdGFsIGZpZWxkcyB0aGFuIHRoaXMgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWF9GSUVMRF9DT1VOVCA9IDMyOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogU3VuZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNVTkRBWSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBNb25kYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OREFZID0gMjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFR1ZXNkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVFVFU0RBWSA9IDM7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBXZWRuZXNkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VETkVTREFZID0gNDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFRodXJzZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRIVVJTREFZID0gNTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIEZyaWRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBGUklEQVkgPSA2OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogU2F0dXJkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0FUVVJEQVkgPSA3OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGZpcnN0IG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpBTlVBUlkgPSAwOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNlY29uZCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBGRUJSVUFSWSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdGhpcmQgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUFSQ0ggPSAyOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGZvdXJ0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBUFJJTCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZmlmdGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUFZID0gNDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzaXh0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBKVU5FID0gNTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZXZlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpVTFkgPSA2OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVpZ2h0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBVUdVU1QgPSA3OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIG5pbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFUFRFTUJFUiA9IDg7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdGVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgT0NUT0JFUiA9IDk7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZWxldmVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTk9WRU1CRVIgPSAxMDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0d2VsZnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFQ0VNQkVSID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdGhpcnRlZW50aCBtb250aCBvZiB0aGUgeWVhci4gQWx0aG91Z2ggPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgICAgICogZG9lcyBub3QgdXNlIHRoaXMgdmFsdWUsIGx1bmFyIGNhbGVuZGFycyBkby4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBVTkRFQ0lNQkVSID0gMTI7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+QU1fUE08L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogcGVyaW9kIG9mIHRoZSBkYXkgZnJvbSBtaWRuaWdodCB0byBqdXN0IGJlZm9yZSBub29uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFNID0gMDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBwZXJpb2Qgb2YgdGhlIGRheSBmcm9tIG5vb24gdG8ganVzdCBiZWZvcmUgbWlkbmlnaHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUE0gPSAxOworCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogd2Vla2RheS4KKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0RBWSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiB3ZWVrZW5kIGRheS4KKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0VORCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiBkYXkgdGhhdCBzdGFydHMgYXMgYSB3ZWVrZGF5IGFuZCB0cmFuc2l0aW9ucyB0byB0aGUgd2Vla2VuZC4KKyAgICAgKiBDYWxsIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkgdG8gZ2V0IHRoZSBwb2ludCBvZiB0cmFuc2l0aW9uLgorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLRU5EX09OU0VUID0gMjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgdG8gaW5kaWNhdGUgYQorICAgICAqIGRheSB0aGF0IHN0YXJ0cyBhcyB0aGUgd2Vla2VuZCBhbmQgdHJhbnNpdGlvbnMgdG8gYSB3ZWVrZGF5LgorICAgICAqIENhbGwgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSB0byBnZXQgdGhlIHBvaW50IG9mIHRyYW5zaXRpb24uCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtFTkRfQ0VBU0UgPSAzOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIHNlY29uZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX1NFQ09ORCA9IDEwMDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgbWludXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfTUlOVVRFID0gNjAqT05FX1NFQ09ORDsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBob3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfSE9VUiAgID0gNjAqT05FX01JTlVURTsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBkYXkuICBBbHRob3VnaCBPTkVfREFZIGFuZAorICAgICAqIE9ORV9XRUVLIGNhbiBmaXQgaW50byBpbnRzLCB0aGV5IG11c3QgYmUgbG9uZ3MgaW4gb3JkZXIgdG8gcHJldmVudAorICAgICAqIGFyaXRobWV0aWMgb3ZlcmZsb3cgd2hlbiBwZXJmb3JtaW5nIChidWcgNDE3MzUxNikuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9EQVkgICAgPSAyNCpPTkVfSE9VUjsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSB3ZWVrLiAgQWx0aG91Z2ggT05FX0RBWSBhbmQKKyAgICAgKiBPTkVfV0VFSyBjYW4gZml0IGludG8gaW50cywgdGhleSBtdXN0IGJlIGxvbmdzIGluIG9yZGVyIHRvIHByZXZlbnQKKyAgICAgKiBhcml0aG1ldGljIG92ZXJmbG93IHdoZW4gcGVyZm9ybWluZyAoYnVnIDQxNzM1MTYpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBPTkVfV0VFSyAgID0gNypPTkVfREFZOworCisgICAgLyoqCisgICAgICogVGhlIEp1bGlhbiBkYXkgb2YgdGhlIEdyZWdvcmlhbiBlcG9jaCwgdGhhdCBpcywgSmFudWFyeSAxLCAxIG9uIHRoZQorICAgICAqIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBKQU5fMV8xX0pVTElBTl9EQVkgPSAxNzIxNDI2OworCisgICAgLyoqCisgICAgICogVGhlIEp1bGlhbiBkYXkgb2YgdGhlIGVwb2NoLCB0aGF0IGlzLCBKYW51YXJ5IDEsIDE5NzAgb24gdGhlCisgICAgICogR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVQT0NIX0pVTElBTl9EQVkgICA9IDI0NDA1ODg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgSnVsaWFuIGRheS4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxjb2RlPk1JTl9NSUxMSVM8L2NvZGU+IGFuZCA8Y29kZT5NSU5fREFURTwvY29kZT4uCisgICAgICogQHNlZSAjSlVMSUFOX0RBWQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1JTl9KVUxJQU4gPSAtMHg3RjAwMDAwMDsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIHN1cHBvcnRlZCBlcG9jaCBtaWxsaXNlY29uZHMuICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NSU5fSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUlOX0RBVEU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBNSU5fTUlMTElTID0gLTE4NDMwMzkwMjUyODAwMDAwMEw7CisKKyAgICAvLyBHZXQgYXJvdW5kIGJ1ZyBpbiBqaWtlcyAxLjEyIGZvciBub3cuICBMYXRlciwgdXNlOgorICAgIC8vcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE1JTl9NSUxMSVMgPSAoTUlOX0pVTElBTiAtIEVQT0NIX0pVTElBTl9EQVkpICogT05FX0RBWTsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIHN1cHBvcnRlZCA8Y29kZT5EYXRlPC9jb2RlPi4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudAorICAgICAqIHRvIDxjb2RlPk1JTl9KVUxJQU48L2NvZGU+IGFuZCA8Y29kZT5NSU5fTUlMTElTPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIERhdGUgTUlOX0RBVEUgPSBuZXcgRGF0ZShNSU5fTUlMTElTKTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCBKdWxpYW4gZGF5LiAgVGhpcyB2YWx1ZSBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPGNvZGU+TUFYX01JTExJUzwvY29kZT4gYW5kIDxjb2RlPk1BWF9EQVRFPC9jb2RlPi4KKyAgICAgKiBAc2VlICNKVUxJQU5fREFZCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0pVTElBTiA9ICsweDdGMDAwMDAwOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gc3VwcG9ydGVkIGVwb2NoIG1pbGxpc2Vjb25kcy4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudAorICAgICAqIHRvIDxjb2RlPk1BWF9KVUxJQU48L2NvZGU+IGFuZCA8Y29kZT5NQVhfREFURTwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE1BWF9NSUxMSVMgPSAoTUFYX0pVTElBTiAtIEVQT0NIX0pVTElBTl9EQVkpICogT05FX0RBWTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCA8Y29kZT5EYXRlPC9jb2RlPi4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudAorICAgICAqIHRvIDxjb2RlPk1BWF9KVUxJQU48L2NvZGU+IGFuZCA8Y29kZT5NQVhfTUlMTElTPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIERhdGUgTUFYX0RBVEUgPSBuZXcgRGF0ZShNQVhfTUlMTElTKTsKKworICAgIC8vIEludGVybmFsIG5vdGVzOgorICAgIC8vIENhbGVuZGFyIGNvbnRhaW5zIHR3byBraW5kcyBvZiB0aW1lIHJlcHJlc2VudGF0aW9uczogY3VycmVudCAidGltZSIgaW4KKyAgICAvLyBtaWxsaXNlY29uZHMsIGFuZCBhIHNldCBvZiB0aW1lICJmaWVsZHMiIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCB0aW1lLgorICAgIC8vIFRoZSB0d28gcmVwcmVzZW50YXRpb25zIGFyZSB1c3VhbGx5IGluIHN5bmMsIGJ1dCBjYW4gZ2V0IG91dCBvZiBzeW5jCisgICAgLy8gYXMgZm9sbG93cy4KKyAgICAvLyAxLiBJbml0aWFsbHksIG5vIGZpZWxkcyBhcmUgc2V0LCBhbmQgdGhlIHRpbWUgaXMgaW52YWxpZC4KKyAgICAvLyAyLiBJZiB0aGUgdGltZSBpcyBzZXQsIGFsbCBmaWVsZHMgYXJlIGNvbXB1dGVkIGFuZCBpbiBzeW5jLgorICAgIC8vIDMuIElmIGEgc2luZ2xlIGZpZWxkIGlzIHNldCwgdGhlIHRpbWUgaXMgaW52YWxpZC4KKyAgICAvLyBSZWNvbXB1dGF0aW9uIG9mIHRoZSB0aW1lIGFuZCBmaWVsZHMgaGFwcGVucyB3aGVuIHRoZSBvYmplY3QgbmVlZHMKKyAgICAvLyB0byByZXR1cm4gYSByZXN1bHQgdG8gdGhlIHVzZXIsIG9yIHVzZSBhIHJlc3VsdCBmb3IgYSBjb21wdXRhdGlvbi4KKworICAgIC8qKgorICAgICAqIFRoZSBmaWVsZCB2YWx1ZXMgZm9yIHRoZSBjdXJyZW50bHkgc2V0IHRpbWUgZm9yIHRoaXMgY2FsZW5kYXIuCisgICAgICogVGhpcyBpcyBhbiBhcnJheSBvZiBhdCBsZWFzdCA8Y29kZT5CQVNFX0ZJRUxEX0NPVU5UPC9jb2RlPiBpbnRlZ2Vycy4KKyAgICAgKiBAc2VlICNoYW5kbGVDcmVhdGVGaWVsZHMKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50ICAgICAgICAgICBmaWVsZHNbXTsKKworICAgIC8qKgorICAgICAqIFBzZXVkby10aW1lLXN0YW1wcyB3aGljaCBzcGVjaWZ5IHdoZW4gZWFjaCBmaWVsZCB3YXMgc2V0LiBUaGVyZQorICAgICAqIGFyZSB0d28gc3BlY2lhbCB2YWx1ZXMsIFVOU0VUIGFuZCBJTlRFUk5BTExZX1NFVC4gVmFsdWVzIGZyb20KKyAgICAgKiBNSU5JTVVNX1VTRVJfU0VUIHRvIEludGVnZXIuTUFYX1ZBTFVFIGFyZSBsZWdhbCB1c2VyIHNldCB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50ICAgICAgICAgICBzdGFtcFtdOworCisgICAgLyoqCisgICAgICogVGhlIGN1cnJlbnRseSBzZXQgdGltZSBmb3IgdGhpcyBjYWxlbmRhciwgZXhwcmVzc2VkIGluIG1pbGxpc2Vjb25kcyBhZnRlcgorICAgICAqIEphbnVhcnkgMSwgMTk3MCwgMDowMDowMCBHTVQuCisgICAgICogQHNlZSA8dHQ+aXNUaW1lU2V0PC90dD4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nICAgICAgICAgIHRpbWU7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHRoZW4gdGhlIHZhbHVlIG9mIDxjb2RlPnRpbWU8L2NvZGU+IGlzIHZhbGlkLgorICAgICAqIFRoZSB0aW1lIGlzIG1hZGUgaW52YWxpZCBieSBhIGNoYW5nZSB0byBhbiBpdGVtIG9mIDxjb2RlPmZpZWxkW108L2NvZGU+LgorICAgICAqIEBzZWUgI3RpbWUKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiAgICAgICBpc1RpbWVTZXQ7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIDxjb2RlPmZpZWxkc1tdPC9jb2RlPiBhcmUgaW4gc3luYyB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IHRpbWUuCisgICAgICogSWYgZmFsc2UsIHRoZW4gdGhlIG5leHQgYXR0ZW1wdCB0byBnZXQgdGhlIHZhbHVlIG9mIGEgZmllbGQgd2lsbAorICAgICAqIGZvcmNlIGEgcmVjb21wdXRhdGlvbiBvZiBhbGwgZmllbGRzIGZyb20gdGhlIGN1cnJlbnQgdmFsdWUgb2YKKyAgICAgKiA8Y29kZT50aW1lPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiAgICAgICBhcmVGaWVsZHNTZXQ7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIGFsbCBmaWVsZHMgaGF2ZSBiZWVuIHNldC4gIFRoaXMgaXMgb25seSBmYWxzZSBpbiBhIGZldworICAgICAqIHNpdHVhdGlvbnM6IEluIGEgbmV3bHkgY3JlYXRlZCwgcGFydGlhbGx5IGNvbnN0cnVjdGVkIG9iamVjdC4gIEFmdGVyCisgICAgICogYSBjYWxsIHRvIGNsZWFyKCkuICBJbiBhbiBvYmplY3QganVzdCByZWFkIGZyb20gYSBzdHJlYW0gdXNpbmcKKyAgICAgKiByZWFkT2JqZWN0KCkuICBPbmNlIGNvbXB1dGVGaWVsZHMoKSBoYXMgYmVlbiBjYWxsZWQgdGhpcyBpcyBzZXQgdG8KKyAgICAgKiB0cnVlIGFuZCBzdGF5cyB0cnVlIHVudGlsIG9uZSBvZiB0aGUgYWJvdmUgc2l0dWF0aW9ucyByZWN1cnMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gICAgICAgYXJlQWxsRmllbGRzU2V0OworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiBhbGwgZmllbGRzIGhhdmUgYmVlbiB2aXJ0dWFsbHkgc2V0LCBidXQgaGF2ZSBub3QgeWV0IGJlZW4KKyAgICAgKiBjb21wdXRlZC4gIFRoaXMgb2NjdXJzIG9ubHkgaW4gc2V0VGltZUluTWlsbGlzKCkuICBBIGNhbGVuZGFyIHNldAorICAgICAqIHRvIHRoaXMgc3RhdGUgd2lsbCBjb21wdXRlIGFsbCBmaWVsZHMgZnJvbSB0aGUgdGltZSBpZiBpdCBiZWNvbWVzCisgICAgICogbmVjZXNzYXJ5LCBidXQgb3RoZXJ3aXNlIHdpbGwgZGVsYXkgc3VjaCBjb21wdXRhdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGFyZUZpZWxkc1ZpcnR1YWxseVNldDsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhpcyBjYWxlbmRhciBhbGxvd3Mgb3V0LW9mLXJhbmdlIGZpZWxkIHZhbHVlcyBkdXJpbmcgY29tcHV0YXRpb24KKyAgICAgKiBvZiA8Y29kZT50aW1lPC9jb2RlPiBmcm9tIDxjb2RlPmZpZWxkc1tdPC9jb2RlPi4KKyAgICAgKiBAc2VlICNzZXRMZW5pZW50CisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgIGxlbmllbnQgPSB0cnVlOworCisgICAgLyoqCisgICAgICogVGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2VkIGJ5IHRoaXMgY2FsZW5kYXIuIDwvY29kZT5DYWxlbmRhcjwvY29kZT4KKyAgICAgKiB1c2VzIHRoZSB0aW1lIHpvbmUgZGF0YSB0byB0cmFuc2xhdGUgYmV0d2VlbiBsb2NhbGUgYW5kIEdNVCB0aW1lLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFRpbWVab25lICAgICAgICB6b25lOworCisgICAgLyoqCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlaywgd2l0aCBwb3NzaWJsZSB2YWx1ZXMgPGNvZGU+U1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5NT05EQVk8L2NvZGU+LCBldGMuICBUaGlzIGlzIGEgbG9jYWxlLWRlcGVuZGVudCB2YWx1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgZmlyc3REYXlPZldlZWs7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJzdCB3ZWVrIGluIGEgbW9udGggb3IgeWVhciwKKyAgICAgKiB3aXRoIHBvc3NpYmxlIHZhbHVlcyBmcm9tIDEgdG8gNy4gIFRoaXMgaXMgYSBsb2NhbGUtZGVwZW5kZW50IHZhbHVlLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICBtaW5pbWFsRGF5c0luRmlyc3RXZWVrOworCisgICAgLyoqCisgICAgICogRmlyc3QgZGF5IG9mIHRoZSB3ZWVrZW5kIGluIHRoaXMgY2FsZW5kYXIncyBsb2NhbGUuICBNdXN0IGJlIGluCisgICAgICogdGhlIHJhbmdlIFNVTkRBWS4uLlNBVFVSREFZICgxLi43KS4gIFRoZSB3ZWVrZW5kIHN0YXJ0cyBhdAorICAgICAqIHdlZWtlbmRPbnNldE1pbGxpcyBtaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgb24gdGhhdCBkYXkgb2YKKyAgICAgKiB0aGUgd2Vlay4gIFRoaXMgdmFsdWUgaXMgdGFrZW4gZnJvbSBsb2NhbGUgcmVzb3VyY2UgZGF0YS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB3ZWVrZW5kT25zZXQ7CisKKyAgICAvKioKKyAgICAgKiBNaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgYXQgd2hpY2ggdGhlIHdlZWtlbmQgc3RhcnRzIG9uIHRoZQorICAgICAqIGRheSBvZiB0aGUgd2VlayB3ZWVrZW5kT25zZXQuICBUaW1lcyB0aGF0IGFyZSBncmVhdGVyIHRoYW4gb3IKKyAgICAgKiBlcXVhbCB0byB3ZWVrZW5kT25zZXRNaWxsaXMgYXJlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgd2Vla2VuZC4KKyAgICAgKiBNdXN0IGJlIGluIHRoZSByYW5nZSAwLi4yNCo2MCo2MCoxMDAwLTEuICBUaGlzIHZhbHVlIGlzIHRha2VuCisgICAgICogZnJvbSBsb2NhbGUgcmVzb3VyY2UgZGF0YS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB3ZWVrZW5kT25zZXRNaWxsaXM7CisKKyAgICAvKioKKyAgICAgKiBEYXkgb2YgdGhlIHdlZWsgd2hlbiB0aGUgd2Vla2VuZCBzdG9wcyBpbiB0aGlzIGNhbGVuZGFyJ3MKKyAgICAgKiBsb2NhbGUuICBNdXN0IGJlIGluIHRoZSByYW5nZSBTVU5EQVkuLi5TQVRVUkRBWSAoMS4uNykuICBUaGUKKyAgICAgKiB3ZWVrZW5kIHN0b3BzIGF0IHdlZWtlbmRDZWFzZU1pbGxpcyBtaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQKKyAgICAgKiBvbiB0aGF0IGRheSBvZiB0aGUgd2Vlay4gIFRoaXMgdmFsdWUgaXMgdGFrZW4gZnJvbSBsb2NhbGUKKyAgICAgKiByZXNvdXJjZSBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHdlZWtlbmRDZWFzZTsKKworICAgIC8qKgorICAgICAqIE1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodCBhdCB3aGljaCB0aGUgd2Vla2VuZCBzdG9wcyBvbiB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIHdlZWsgd2Vla2VuZENlYXNlLiAgVGltZXMgdGhhdCBhcmUgZ3JlYXRlciB0aGFuIG9yCisgICAgICogZXF1YWwgdG8gd2Vla2VuZENlYXNlTWlsbGlzIGFyZSBjb25zaWRlcmVkIG5vdCB0byBiZSB0aGUKKyAgICAgKiB3ZWVrZW5kLiAgTXVzdCBiZSBpbiB0aGUgcmFuZ2UgMC4uMjQqNjAqNjAqMTAwMC0xLiAgVGhpcyB2YWx1ZQorICAgICAqIGlzIHRha2VuIGZyb20gbG9jYWxlIHJlc291cmNlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgd2Vla2VuZENlYXNlTWlsbGlzOworCisgICAgLyoqCisgICAgICogQ2FjaGUgdG8gaG9sZCB0aGUgZmlyc3REYXlPZldlZWsgYW5kIG1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBvZiBhIExvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBIYXNodGFibGUgY2FjaGVkTG9jYWxlRGF0YSA9IG5ldyBIYXNodGFibGUoMyk7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgdGltZSBzdGFtcCA8Y29kZT5zdGFtcFtdPC9jb2RlPiBpbmRpY2F0aW5nIHRoYXQKKyAgICAgKiBhIGZpZWxkIGhhcyBub3QgYmVlbiBzZXQgc2luY2UgdGhlIGxhc3QgY2FsbCB0byA8Y29kZT5jbGVhcigpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNJTlRFUk5BTExZX1NFVAorICAgICAqIEBzZWUgI01JTklNVU1fVVNFUl9TVEFNUAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFVOU0VUID0gMDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSB0aW1lIHN0YW1wIDxjb2RlPnN0YW1wW108L2NvZGU+IGluZGljYXRpbmcgdGhhdCBhIGZpZWxkCisgICAgICogaGFzIGJlZW4gc2V0IHZpYSBjb21wdXRhdGlvbnMgZnJvbSB0aGUgdGltZSBvciBmcm9tIG90aGVyIGZpZWxkcy4KKyAgICAgKiBAc2VlICNVTlNFVAorICAgICAqIEBzZWUgI01JTklNVU1fVVNFUl9TVEFNUAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IElOVEVSTkFMTFlfU0VUID0gMTsKKworICAgIC8qKgorICAgICAqIElmIHRoZSB0aW1lIHN0YW1wIDxjb2RlPnN0YW1wW108L2NvZGU+IGhhcyBhIHZhbHVlIGdyZWF0ZXIgdGhhbiBvcgorICAgICAqIGVxdWFsIHRvIDxjb2RlPk1JTklNVU1fVVNFUl9TRVQ8L2NvZGU+IHRoZW4gaXQgaGFzIGJlZW4gc2V0IGJ5IHRoZQorICAgICAqIHVzZXIgdmlhIGEgY2FsbCB0byA8Y29kZT5zZXQoKTwvY29kZT4uCisgICAgICogQHNlZSAjVU5TRVQKKyAgICAgKiBAc2VlICNJTlRFUk5BTExZX1NFVAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1JTklNVU1fVVNFUl9TVEFNUCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmV4dCBhdmFpbGFibGUgdmFsdWUgZm9yIDxjb2RlPnN0YW1wW108L2NvZGU+LCBhbiBpbnRlcm5hbCBhcnJheS4KKyAgICAgKiBUaGlzIGFjdHVhbGx5IHNob3VsZCBub3QgYmUgd3JpdHRlbiBvdXQgdG8gdGhlIHN0cmVhbSwgYW5kIHdpbGwgcHJvYmFibHkKKyAgICAgKiBiZSByZW1vdmVkIGZyb20gdGhlIHN0cmVhbSBpbiB0aGUgbmVhciBmdXR1cmUuICBJbiB0aGUgbWVhbnRpbWUsCisgICAgICogYSB2YWx1ZSBvZiA8Y29kZT5NSU5JTVVNX1VTRVJfU1RBTVA8L2NvZGU+IHNob3VsZCBiZSB1c2VkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgICAgICAgbmV4dFN0YW1wID0gTUlOSU1VTV9VU0VSX1NUQU1QOworCisgICAgLy8gdGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgIC8vIC0gMCAoZGVmYXVsdCkgZm9yIHZlcnNpb24gdXAgdG8gSkRLIDEuMS41CisgICAgLy8gLSAxIGZvciB2ZXJzaW9uIGZyb20gSkRLIDEuMS42LCB3aGljaCB3cml0ZXMgYSBjb3JyZWN0ICd0aW1lJyB2YWx1ZQorICAgIC8vICAgICBhcyB3ZWxsIGFzIGNvbXBhdGlibGUgdmFsdWVzIGZvciBvdGhlciBmaWVsZHMuICBUaGlzIGlzIGEKKyAgICAvLyAgICAgdHJhbnNpdGlvbmFsIGZvcm1hdC4KKyAgICAvLyAtIDIgKG5vdCBpbXBsZW1lbnRlZCB5ZXQpIGEgZnV0dXJlIHZlcnNpb24sIGluIHdoaWNoIGZpZWxkc1tdLAorICAgIC8vICAgICBhcmVGaWVsZHNTZXQsIGFuZCBpc1RpbWVTZXQgYmVjb21lIHRyYW5zaWVudCwgYW5kIGlzU2V0W10gaXMKKyAgICAvLyAgICAgcmVtb3ZlZC4gSW4gSkRLIDEuMS42IHdlIHdyaXRlIGEgZm9ybWF0IGNvbXBhdGlibGUgd2l0aCB2ZXJzaW9uIDIuCisgICAgLy8gc3RhdGljIGZpbmFsIGludCAgICAgICAgY3VycmVudFNlcmlhbFZlcnNpb24gPSAxOworCisgICAgLyoqCisgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIHNlcmlhbGl6ZWQgZGF0YSBvbiB0aGUgc3RyZWFtLiAgUG9zc2libGUgdmFsdWVzOgorICAgICAqIDxkbD4KKyAgICAgKiA8ZHQ+PGI+MDwvYj4gb3Igbm90IHByZXNlbnQgb24gc3RyZWFtPC9kdD4KKyAgICAgKiA8ZGQ+CisgICAgICogSkRLIDEuMS41IG9yIGVhcmxpZXIuCisgICAgICogPC9kZD4KKyAgICAgKiA8ZHQ+PGI+MTwvYj48L2R0PgorICAgICAqIDxkZD4KKyAgICAgKiBKREsgMS4xLjYgb3IgbGF0ZXIuICBXcml0ZXMgYSBjb3JyZWN0ICd0aW1lJyB2YWx1ZQorICAgICAqIGFzIHdlbGwgYXMgY29tcGF0aWJsZSB2YWx1ZXMgZm9yIG90aGVyIGZpZWxkcy4gIFRoaXMgaXMgYQorICAgICAqIHRyYW5zaXRpb25hbCBmb3JtYXQuCisgICAgICogPC9kZD4KKyAgICAgKiA8L2RsPgorICAgICAqIFdoZW4gc3RyZWFtaW5nIG91dCB0aGlzIGNsYXNzLCB0aGUgbW9zdCByZWNlbnQgZm9ybWF0CisgICAgICogYW5kIHRoZSBoaWdoZXN0IGFsbG93YWJsZSA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+CisgICAgICogaXMgd3JpdHRlbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEpESzEuMS42CisgICAgICovCisgICAgLy8gcHJpdmF0ZSBpbnQgICAgICAgICAgICAgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisKKyAgICAvLyBQcm9jbGFpbSBzZXJpYWxpemF0aW9uIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xCisgICAgLy8gc3RhdGljIGZpbmFsIGxvbmcgICAgICAgc2VyaWFsVmVyc2lvblVJRCA9IC0xODA3NTQ3NTA1ODIxNTkwNjQyTDsKKyAgICAKKyAgICAvLyBoYXZlbid0IGJlZW4gY29tcGF0aWJsZSBmb3IgYXdoaWxlLCBubyBsb25nZXIgdHJ5CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNjIyMjY0NjEwNDg4ODc5MDk4OUw7CisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIGZvciBpbnRlcm5hbFNldCgpIGRlZmluaW5nIHdoaWNoIGZpZWxkcyBtYXkgbGVnYWxseSBiZSBzZXQKKyAgICAgKiBieSBzdWJjbGFzc2VzLiAgQW55IGF0dGVtcHQgdG8gc2V0IGEgZmllbGQgbm90IGluIHRoaXMgYml0bWFzaworICAgICAqIHJlc3VsdHMgaW4gYW4gZXhjZXB0aW9uLCBiZWNhdXNlIHN1Y2ggZmllbGRzIG11c3QgYmUgc2V0IGJ5IHRoZSBiYXNlCisgICAgICogY2xhc3MuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGludGVybmFsU2V0TWFzazsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4geWVhciwgYXMgY29tcHV0ZWQgYnkgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpIGFuZAorICAgICAqIHJldHVybmVkIGJ5IGdldEdyZWdvcmlhblllYXIoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZ3JlZ29yaWFuWWVhcjsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4gbW9udGgsIGFzIGNvbXB1dGVkIGJ5IGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKSBhbmQKKyAgICAgKiByZXR1cm5lZCBieSBnZXRHcmVnb3JpYW5Nb250aCgpLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBncmVnb3JpYW5Nb250aDsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4gZGF5IG9mIHRoZSB5ZWFyLCBhcyBjb21wdXRlZCBieQorICAgICAqIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKSBhbmQgcmV0dXJuZWQgYnkgZ2V0R3JlZ29yaWFuRGF5T2ZZZWFyKCkuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGdyZWdvcmlhbkRheU9mWWVhcjsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4gZGF5IG9mIHRoZSBtb250aCwgYXMgY29tcHV0ZWQgYnkKKyAgICAgKiBjb21wdXRlR3JlZ29yaWFuRmllbGRzKCkgYW5kIHJldHVybmVkIGJ5IGdldEdyZWdvcmlhbkRheU9mTW9udGgoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZ3JlZ29yaWFuRGF5T2ZNb250aDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBDYWxlbmRhciB3aXRoIHRoZSBkZWZhdWx0IHRpbWUgem9uZQorICAgICAqIGFuZCBsb2NhbGUuCisgICAgICogQHNlZSAgICAgVGltZVpvbmUjZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBDYWxlbmRhcigpCisgICAgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjYWxlbmRhciB3aXRoIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIHRpbWUgem9uZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIENhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcyh6b25lLCBVTG9jYWxlLmZvckxvY2FsZShhTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHRoaXMuem9uZSA9IHpvbmU7CisgICAgICAgIHNldFdlZWtEYXRhKGxvY2FsZSk7CisgICAgICAgIGluaXRJbnRlcm5hbCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbml0SW50ZXJuYWwoKQorICAgIHsKKyAgICAgICAgLy8gQWxsb2NhdGUgZmllbGRzIHRocm91Z2ggdGhlIGZyYW1ld29yayBtZXRob2QuICBTdWJjbGFzc2VzCisgICAgICAgIC8vIG1heSBvdmVycmlkZSB0aGlzIHRvIGRlZmluZSBhZGRpdGlvbmFsIGZpZWxkcy4KKyAgICAgICAgZmllbGRzID0gaGFuZGxlQ3JlYXRlRmllbGRzKCk7CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgLy8gdG9kbzogZml4LCBkaWZmaWN1bHQgdG8gdGVzdCB3aXRob3V0IHN1YmNsYXNzaW5nCisgICAgICAgIGlmIChmaWVsZHMgPT0gbnVsbCB8fCBmaWVsZHMubGVuZ3RoIDwgQkFTRV9GSUVMRF9DT1VOVCB8fAorICAgICAgICAgICAgZmllbGRzLmxlbmd0aCA+IE1BWF9GSUVMRF9DT1VOVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiSW52YWxpZCBmaWVsZHNbXSIpOworICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICBzdGFtcCA9IG5ldyBpbnRbZmllbGRzLmxlbmd0aF07CisgICAgICAgIGludCBtYXNrID0gKDEgPDwgRVJBKSB8CisgICAgICAgICAgICAoMSA8PCBZRUFSKSB8CisgICAgICAgICAgICAoMSA8PCBNT05USCkgfAorICAgICAgICAgICAgKDEgPDwgREFZX09GX01PTlRIKSB8CisgICAgICAgICAgICAoMSA8PCBEQVlfT0ZfWUVBUikgfAorICAgICAgICAgICAgKDEgPDwgRVhURU5ERURfWUVBUik7CisgICAgICAgIGZvciAoaW50IGk9QkFTRV9GSUVMRF9DT1VOVDsgaTxmaWVsZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG1hc2sgfD0gKDEgPDwgaSk7CisgICAgICAgIH0KKyAgICAgICAgaW50ZXJuYWxTZXRNYXNrID0gbWFzazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgdXNpbmcgdGhlIGRlZmF1bHQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgdXNpbmcgdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2Uoem9uZSwgVUxvY2FsZS5nZXREZWZhdWx0KCksIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZm9yTG9jYWxlKGFMb2NhbGUpLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgdXNpbmcgdGhlIGRlZmF1bHQgdGltZSB6b25lIGFuZCBzcGVjaWZpZWQgbG9jYWxlLiAgCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFRpbWVab25lLmdldERlZmF1bHQoKSwgbG9jYWxlLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZSh6b25lLCBVTG9jYWxlLmZvckxvY2FsZShhTG9jYWxlKSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZSh6b25lLCBsb2NhbGUsIG51bGwpOworICAgIH0KKworICAgIC8vID09PT0gRmFjdG9yeSBTdHVmZiA9PT09CisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIFJldHVybiBhIGNhbGVuZGFyIG9mIGZvciB0aGUgVGltZVpvbmUgYW5kIGxvY2FsZS4gIElmIGZhY3RvcnlOYW1lIGlzCisgICAgICogbm90IG51bGwsIGxvb2tzIGluIHRoZSBjb2xsZWN0aW9uIG9mIENhbGVuZGFyRmFjdG9yaWVzIGZvciBhIG1hdGNoCisgICAgICogYW5kIHVzZXMgdGhhdCBmYWN0b3J5IHRvIGluc3RhbnRpYXRlIHRoZSBjYWxlbmRhci4gIE90aGVyd2lzZSwgaXQKKyAgICAgKiB1c2VzIHRoZSBkZWZhdWx0IGZhY3RvcnkgdGhhdCBoYXMgYmVlbiByZWdpc3RlcmVkIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBwcm90b3R5cGUKKyAgICAgKi8KKyAgICAvKiBwdWJsaWMgKi8gc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmYWN0b3J5TmFtZSkKKyAgICB7CisgICAgICAgIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5ID0gbnVsbDsKKyAgICAgICAgaWYgKGZhY3RvcnlOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSAoQ2FsZW5kYXJGYWN0b3J5KWdldEZhY3RvcnlNYXAoKS5nZXQoZmFjdG9yeU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZVtdIGFjdHVhbFJldHVybiA9IG5ldyBVTG9jYWxlWzFdOworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsICYmIHNlcnZpY2UgIT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IChDYWxlbmRhckZhY3Rvcnkpc2VydmljZS5nZXQobG9jYWxlLCBhY3R1YWxSZXR1cm4pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgaW50IGNhbFR5cGUgPSBnZXRDYWxlbmRhclR5cGUobG9jYWxlKTsKKyAgICAgICAgICAgIHN3aXRjaCAoY2FsVHlwZSkgeworICAgICAgICAgICAgY2FzZSBCVURESElTVDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhc2UgQ0hJTkVTRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENoaW5lc2VDYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgY2FzZSBDT1BUSUM6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDb3B0aWNDYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgY2FzZSBFVEhJT1BJQzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEV0aGlvcGljQ2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhc2UgR1JFR09SSUFOOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhc2UgSEVCUkVXOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSGVicmV3Q2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhc2UgSVNMQU1JQzoKKyAgICAgICAgICAgIGNhc2UgSVNMQU1JQ19DSVZJTDogeworICAgICAgICAgICAgICAgIElzbGFtaWNDYWxlbmRhciByZXN1bHQgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldENpdmlsKGNhbFR5cGUgPT0gSVNMQU1JQ19DSVZJTCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgSkFQQU5FU0U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBKYXBhbmVzZUNhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIENhbGVuZGFyIHJlc3VsdCA9IGZhY3RvcnkuY3JlYXRlKHpvbmUsIGxvY2FsZSk7CisKKyAgICAgICAgICAgIC8vIFRPRE86IGdldCB0aGUgYWN0dWFsL3ZhbGlkIGxvY2FsZSBwcm9wZXJseQorICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gYWN0dWFsUmV0dXJuWzBdOworICAgICAgICAgICAgcmVzdWx0LnNldExvY2FsZSh1bG9jLCB1bG9jKTsKKworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQlVEREhJU1QgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSElORVNFID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09QVElDID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVRISU9QSUMgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHUkVHT1JJQU4gPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUJSRVcgPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJU0xBTUlDID0gNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVNMQU1JQ19DSVZJTCA9IDc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpBUEFORVNFID0gODsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNhbFR5cGVzID0geworICAgICAgICAiYnVkZGhpc3QiLCAiY2hpbmVzZSIsICJjb3B0aWMiLCAiZXRoaW9waWMiLCAiZ3JlZ29yaWFuIiwgImhlYnJldyIsIAorICAgICAgICAiaXNsYW1pYyIsICJpc2xhbWljLWNpdmlsIiwgImphcGFuZXNlIiwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldENhbGVuZGFyVHlwZShVTG9jYWxlIGwpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBsLmdldEtleXdvcmRWYWx1ZSgiY2FsZW5kYXIiKTsKKyAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgbCA9IElDVVJlc291cmNlQnVuZGxlLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KAorICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJjYWxlbmRhciIsICJjYWxlbmRhciIsIGwsIG51bGwpOworICAgICAgICAgICAgcyA9IGwuZ2V0S2V5d29yZFZhbHVlKCJjYWxlbmRhciIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRDYWxlbmRhclR5cGUocyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldENhbGVuZGFyVHlwZShTdHJpbmcgcykgeworICAgICAgICBpZiAocyAhPSBudWxsKSB7CisgICAgICAgICAgICBzID0gcy50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxUeXBlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChzLmVxdWFscyhjYWxUeXBlc1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBHUkVHT1JJQU47CisgICAgfQorCisgICAgLy8vQ0xPVkVSOk9OCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpCisgICAgeworICAgICAgICByZXR1cm4gc2VydmljZSA9PSBudWxsCisgICAgICAgICAgICA/IElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSkKKyAgICAgICAgICAgIDogc2VydmljZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UgPT0gbnVsbAorICAgICAgICAgICAgPyBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKQorICAgICAgICAgICAgOiBzZXJ2aWNlLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIE1hcCBmYWN0b3J5TWFwOworICAgIHByaXZhdGUgc3RhdGljIE1hcCBnZXRGYWN0b3J5TWFwKCkgeworICAgICAgICBpZiAoZmFjdG9yeU1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbSA9IG5ldyBIYXNoTWFwKDUpOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIGFkZEZhY3RvcnkobSwgQnVkZGhpc3RDYWxlbmRhci5mYWN0b3J5KCkpOworICAgICAgICAgICAgYWRkRmFjdG9yeShtLCBDaGluZXNlQ2FsZW5kYXIuZmFjdG9yeSgpKTsKKyAgICAgICAgICAgIGFkZEZhY3RvcnkobSwgR3JlZ29yaWFuQ2FsZW5kYXIuZmFjdG9yeSgpKTsKKyAgICAgICAgICAgIGFkZEZhY3RvcnkobSwgSGVicmV3Q2FsZW5kYXIuZmFjdG9yeSgpKTsKKyAgICAgICAgICAgIGFkZEZhY3RvcnkobSwgSXNsYW1pY0NhbGVuZGFyLmZhY3RvcnkoKSk7CisgICAgICAgICAgICBhZGRGYWN0b3J5KG0sIEphcGFuZXNlQ2FsZW5kYXIuZmFjdG9yeSgpKTsKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBmYWN0b3J5TWFwID0gbTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yeU1hcDsKKyAgICB9CisKKy8vIE5ldmVyIHVzZWQgLS0gd2h5IGlzIHRoaXMgaGVyZT8gQWxhbiAyMDAzLTA1CisvLyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZEZhY3RvcnkoTWFwIG0sIENhbGVuZGFyRmFjdG9yeSBmKSB7CisvLyAgICAgICAgbS5wdXQoZi5mYWN0b3J5TmFtZSgpLCBmKTsKKy8vICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHNldCBvZiBhbGwgdGhlIHJlZ2lzdGVyZWQgY2FsZW5kYXIgZmFjdG9yeSBuYW1lcy4KKyAgICAgKiBAcHJvdG90eXBlCisgICAgICovCisgICAgLyogcHVibGljICovIHN0YXRpYyBTZXQgZ2V0Q2FsZW5kYXJGYWN0b3J5TmFtZXMoKSB7CisgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQoZ2V0RmFjdG9yeU1hcCgpLmtleVNldCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBDYWxlbmRhckZhY3RvcnkuICBnZXRJbnN0YW5jZShUaW1lWm9uZSwgVUxvY2FsZSwgU3RyaW5nKSB3aWxsCisgICAgICogdHJ5IHRvIGxvY2F0ZSBhIHJlZ2lzdGVyZWQgZmFjdG9yaWVzIG1hdGNoaW5nIHRoZSBmYWN0b3J5TmFtZS4gIE9ubHkgcmVnaXN0ZXJlZAorICAgICAqIGZhY3RvcmllcyB3aWxsIGJlIGZvdW5kLgorICAgICAqIEBwcm90b3R5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmFjdG9yeShDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJGYWN0b3J5IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBnZXRGYWN0b3J5TWFwKCkucHV0KGZhY3RvcnkuZmFjdG9yeU5hbWUoKSwgZmFjdG9yeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgcmVnaXN0ZXIoQ2FsZW5kYXJGYWN0b3J5LCBVTG9jYWxlLCBib29sZWFuKTsKKyAgICAgKiBAcHJvdG90eXBlCisgICAgICovCisgICAgLyogcHVibGljICovIHN0YXRpYyBPYmplY3QgcmVnaXN0ZXIoQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnksIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiByZWdpc3RlcihmYWN0b3J5LCBsb2NhbGUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVycyBhIGRlZmF1bHQgQ2FsZW5kYXJGYWN0b3J5IGZvciB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBmYWN0b3J5IGhhcyBub3QgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQgd2l0aAorICAgICAqIHJlZ2lzdGVyRmFjdG9yeSwgaXQgd2lsbCBiZS4KKyAgICAgKiBAcHJvdG90eXBlCisgICAgICovCisgICAgLyogcHVibGljICovIHN0YXRpYyBPYmplY3QgcmVnaXN0ZXIoQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnksIFVMb2NhbGUgbG9jYWxlLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2FsZW5kYXIgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIHJlZ2lzdGVyRmFjdG9yeShmYWN0b3J5KTsKKyAgICAgICAgcmV0dXJuIGdldFNlcnZpY2UoKS5yZWdpc3Rlck9iamVjdChmYWN0b3J5LCBsb2NhbGUsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgdGhlIENhbGVuZGFyRmFjdG9yeSBhc3NvY2lhdGVkIHdpdGggdGhpcyBrZXkKKyAgICAgKiAob2J0YWluZWQgZnJvbSByZWdpc3RlcikuCisgICAgICogQHByb3RvdHlwZQorICAgICAqLworICAgIC8qIHB1YmxpYyAqLyBzdGF0aWMgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCByZWdpc3RyeUtleSkgeworICAgICAgICByZXR1cm4gc2VydmljZSA9PSBudWxsCisgICAgICAgICAgICA/IGZhbHNlCisgICAgICAgICAgICA6IHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoKEZhY3RvcnkpcmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElDVUxvY2FsZVNlcnZpY2Ugc2VydmljZSA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgSUNVTG9jYWxlU2VydmljZSBnZXRTZXJ2aWNlKCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKENhbGVuZGFyLmNsYXNzKSB7CisgICAgICAgICAgICBpZiAoc2VydmljZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2VydmljZSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCJDYWxlbmRhciIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAvLyA9PT09IEVuZCBvZiBmYWN0b3J5IFN0dWZmID09PT0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIERhdGUgZ2V0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCBnZXRUaW1lSW5NaWxsaXMoKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZSB3aXRoIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IENhbGxpbmcgPGNvZGU+c2V0VGltZSgpPC9jb2RlPiB3aXRoCisgICAgICogPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+IG9yIDxjb2RlPkRhdGUoTG9uZy5NSU5fVkFMVUUpPC9jb2RlPgorICAgICAqIG1heSB5aWVsZCBpbmNvcnJlY3QgZmllbGQgdmFsdWVzIGZyb20gPGNvZGU+Z2V0KCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldFRpbWUoRGF0ZSBkYXRlKSB7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyggZGF0ZS5nZXRUaW1lKCkgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgYXMgYSBsb25nLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgdGltZSBhcyBVVEMgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGVwb2NoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFRpbWVJbk1pbGxpcygpIHsKKyAgICAgICAgaWYgKCFpc1RpbWVTZXQpIHVwZGF0ZVRpbWUoKTsKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCB0aW1lIGZyb20gdGhlIGdpdmVuIGxvbmcgdmFsdWUuCisgICAgICogQHBhcmFtIG1pbGxpcyB0aGUgbmV3IHRpbWUgaW4gVVRDIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBlcG9jaC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUaW1lSW5NaWxsaXMoIGxvbmcgbWlsbGlzICkgeworICAgICAgICBpZiAobWlsbGlzID4gTUFYX01JTExJUykgeworICAgICAgICAgICAgbWlsbGlzID0gTUFYX01JTExJUzsKKyAgICAgICAgfSBlbHNlIGlmIChtaWxsaXMgPCBNSU5fTUlMTElTKSB7CisgICAgICAgICAgICBtaWxsaXMgPSBNSU5fTUlMTElTOworICAgICAgICB9CisgICAgICAgIHRpbWUgPSBtaWxsaXM7CisgICAgICAgIGFyZUZpZWxkc1NldCA9IGFyZUFsbEZpZWxkc1NldCA9IGZhbHNlOworICAgICAgICBpc1RpbWVTZXQgPSBhcmVGaWVsZHNWaXJ0dWFsbHlTZXQgPSB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciBhIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldChpbnQgZmllbGQpCisgICAgeworICAgICAgICBjb21wbGV0ZSgpOworICAgICAgICByZXR1cm4gZmllbGRzW2ZpZWxkXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiB0aW1lIGZpZWxkLiAgVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QKKyAgICAgKiBmb3Igc3ViY2xhc3NlcyB0aGF0IGRvZXMgPGVtPm5vdDwvZW0+IHRyaWdnZXIgYW55IGNhbGN1bGF0aW9ucy4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgaW50ZXJuYWxHZXQoaW50IGZpZWxkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpZWxkc1tmaWVsZF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiB0aW1lIGZpZWxkLCBvciByZXR1cm4gdGhlIGdpdmVuIGRlZmF1bHQKKyAgICAgKiB2YWx1ZSBpZiB0aGUgZmllbGQgaXMgbm90IHNldC4gIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kIGZvcgorICAgICAqIHN1YmNsYXNzZXMgdGhhdCBkb2VzIDxlbT5ub3Q8L2VtPiB0cmlnZ2VyIGFueSBjYWxjdWxhdGlvbnMuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdmFsdWUgdG8gcmV0dXJuIGlmIGZpZWxkIGlzIG5vdCBzZXQKKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQgb2YgZGVmYXVsdFZhbHVlIGlmIHRoZQorICAgICAqIGZpZWxkIGlzIHVuc2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBpbnRlcm5hbEdldChpbnQgZmllbGQsIGludCBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIChzdGFtcFtmaWVsZF0gPiBVTlNFVCkgPyBmaWVsZHNbZmllbGRdIDogZGVmYXVsdFZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgZmllbGQgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUgc2V0IGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IGZpZWxkLCBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoYXJlRmllbGRzVmlydHVhbGx5U2V0KSB7CisgICAgICAgICAgICBjb21wdXRlRmllbGRzKCk7CisgICAgICAgIH0KKyAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHZhbHVlOworICAgICAgICBzdGFtcFtmaWVsZF0gPSBuZXh0U3RhbXArKzsKKyAgICAgICAgaXNUaW1lU2V0ID0gYXJlRmllbGRzU2V0ID0gYXJlRmllbGRzVmlydHVhbGx5U2V0ID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdmFsdWVzIGZvciB0aGUgZmllbGRzIHllYXIsIG1vbnRoLCBhbmQgZGF0ZS4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkKKyAgICB7CisgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHNldChEQVRFLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIGFuZCBtaW51dGUuCisgICAgICogUHJldmlvdXMgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBhcmUgcmV0YWluZWQuICBJZiB0aGlzIGlzIG5vdCBkZXNpcmVkLAorICAgICAqIGNhbGwgPGNvZGU+Y2xlYXI8L2NvZGU+IGZpcnN0LgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gaG91ciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIEhPVVJfT0ZfREFZIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1pbnV0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1JTlVURSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUpCisgICAgeworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdmFsdWVzIGZvciB0aGUgZmllbGRzIHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIGFuZCBzZWNvbmQuCisgICAgICogUHJldmlvdXMgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBhcmUgcmV0YWluZWQuICBJZiB0aGlzIGlzIG5vdCBkZXNpcmVkLAorICAgICAqIGNhbGwgPGNvZGU+Y2xlYXI8L2NvZGU+IGZpcnN0LgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gaG91ciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIEhPVVJfT0ZfREFZIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1pbnV0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1JTlVURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBzZWNvbmQgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBTRUNPTkQgdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgICAgICBzZXQoSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICBzZXQoTUlOVVRFLCBtaW51dGUpOworICAgICAgICBzZXQoU0VDT05ELCBzZWNvbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgdmFsdWVzIG9mIGFsbCB0aGUgdGltZSBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGZpZWxkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZmllbGRzW2ldID0gc3RhbXBbaV0gPSAwOyAvLyBVTlNFVCA9PSAwCisgICAgICAgIH0KKyAgICAgICAgaXNUaW1lU2V0ID0gYXJlRmllbGRzU2V0ID0gYXJlQWxsRmllbGRzU2V0ID0gYXJlRmllbGRzVmlydHVhbGx5U2V0ID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXJzIHRoZSB2YWx1ZSBpbiB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIHRpbWUgZmllbGQgdG8gYmUgY2xlYXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBjbGVhcihpbnQgZmllbGQpCisgICAgeworICAgICAgICBpZiAoYXJlRmllbGRzVmlydHVhbGx5U2V0KSB7CisgICAgICAgICAgICBjb21wdXRlRmllbGRzKCk7CisgICAgICAgIH0KKyAgICAgICAgZmllbGRzW2ZpZWxkXSA9IDA7CisgICAgICAgIHN0YW1wW2ZpZWxkXSA9IFVOU0VUOworICAgICAgICBpc1RpbWVTZXQgPSBhcmVGaWVsZHNTZXQgPSBhcmVBbGxGaWVsZHNTZXQgPSBhcmVGaWVsZHNWaXJ0dWFsbHlTZXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiB0aW1lIGZpZWxkIGhhcyBhIHZhbHVlIHNldC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHRpbWUgZmllbGQgaGFzIGEgdmFsdWUgc2V0OyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNTZXQoaW50IGZpZWxkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZUZpZWxkc1ZpcnR1YWxseVNldCB8fCAoc3RhbXBbZmllbGRdICE9IFVOU0VUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiBhbnkgdW5zZXQgZmllbGRzIGluIHRoZSB0aW1lIGZpZWxkIGxpc3QuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY29tcGxldGUoKQorICAgIHsKKyAgICAgICAgaWYgKCFpc1RpbWVTZXQpIHVwZGF0ZVRpbWUoKTsKKyAgICAgICAgaWYgKCFhcmVGaWVsZHNTZXQpIHsKKyAgICAgICAgICAgIGNvbXB1dGVGaWVsZHMoKTsgLy8gZmlsbHMgaW4gdW5zZXQgZmllbGRzCisgICAgICAgICAgICBhcmVGaWVsZHNTZXQgPSB0cnVlOworICAgICAgICAgICAgYXJlQWxsRmllbGRzU2V0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoaXMgY2FsZW5kYXIgdG8gdGhlIHNwZWNpZmllZCBvYmplY3QuCisgICAgICogVGhlIHJlc3VsdCBpcyA8Y29kZT50cnVlPC9jb2RlPiBpZiBhbmQgb25seSBpZiB0aGUgYXJndW1lbnQgaXMKKyAgICAgKiBub3QgPGNvZGU+bnVsbDwvY29kZT4gYW5kIGlzIGEgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdCB0aGF0CisgICAgICogcmVwcmVzZW50cyB0aGUgc2FtZSBjYWxlbmRhciBhcyB0aGlzIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSB3aXRoLgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG9iamVjdHMgYXJlIHRoZSBzYW1lOworICAgICAqIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBDYWxlbmRhciB0aGF0ID0gKENhbGVuZGFyKSBvYmo7CisKKyAgICAgICAgcmV0dXJuIGlzRXF1aXZhbGVudFRvKHRoYXQpICYmCisgICAgICAgICAgICBnZXRUaW1lSW5NaWxsaXMoKSA9PSB0aGF0LmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBDYWxlbmRhciBvYmplY3QgaXMgZXF1aXZhbGVudCB0byB0aGlzCisgICAgICogb25lLiAgQW4gZXF1aXZhbGVudCBDYWxlbmRhciB3aWxsIGJlaGF2ZSBleGFjdGx5IGFzIHRoaXMgb25lCisgICAgICogZG9lcywgYnV0IGl0IG1heSBiZSBzZXQgdG8gYSBkaWZmZXJlbnQgdGltZS4gIEJ5IGNvbnRyYXN0LCBmb3IKKyAgICAgKiB0aGUgZXF1YWxzKCkgbWV0aG9kIHRvIHJldHVybiB0cnVlLCB0aGUgb3RoZXIgQ2FsZW5kYXIgbXVzdAorICAgICAqIGJlIHNldCB0byB0aGUgc2FtZSB0aW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIHRoZSBDYWxlbmRhciB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMgQ2FsZW5kYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VxdWl2YWxlbnRUbyhDYWxlbmRhciBvdGhlcikgeworICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzcygpID09IG90aGVyLmdldENsYXNzKCkgJiYKKyAgICAgICAgICAgIGlzTGVuaWVudCgpID09IG90aGVyLmlzTGVuaWVudCgpICYmCisgICAgICAgICAgICBnZXRGaXJzdERheU9mV2VlaygpID09IG90aGVyLmdldEZpcnN0RGF5T2ZXZWVrKCkgJiYKKyAgICAgICAgICAgIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSA9PSBvdGhlci5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgJiYKKyAgICAgICAgICAgIGdldFRpbWVab25lKCkuZXF1YWxzKG90aGVyLmdldFRpbWVab25lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHJldHVybiBhIGhhc2ggY29kZSB2YWx1ZSBmb3IgdGhpcyBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgLyogRG9uJ3QgaW5jbHVkZSB0aGUgdGltZSBiZWNhdXNlIChhKSB3ZSBkb24ndCB3YW50IHRoZSBoYXNoIHZhbHVlIHRvCisgICAgICAgICAqIG1vdmUgYXJvdW5kIGp1c3QgYmVjYXVzZSBhIGNhbGVuZGFyIGlzIHNldCB0byBkaWZmZXJlbnQgdGltZXMsIGFuZAorICAgICAgICAgKiAoYikgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgdGltZSBjb21wdXRhdGlvbiBqdXN0IHRvIGdldCBhIGhhc2guCisgICAgICAgICAqIE5vdGUgdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IGZvciB1bmVxdWFsIG9iamVjdHMgdG8gYWx3YXlzIGhhdmUKKyAgICAgICAgICogdW5lcXVhbCBoYXNoZXMsIGJ1dCBlcXVhbCBvYmplY3RzIG11c3QgaGF2ZSBlcXVhbCBoYXNoZXMuICAqLworICAgICAgICByZXR1cm4gKGxlbmllbnQgPyAxIDogMCkKKyAgICAgICAgICAgIHwgKGZpcnN0RGF5T2ZXZWVrIDw8IDEpCisgICAgICAgICAgICB8IChtaW5pbWFsRGF5c0luRmlyc3RXZWVrIDw8IDQpCisgICAgICAgICAgICB8ICh6b25lLmhhc2hDb2RlKCkgPDwgNyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHRoZSBtb21lbnQgdGhpcworICAgICAqIGNhbGVuZGFyIGlzIHNldCB0byBhbmQgdGhlIG1vbWVudCB0aGUgZ2l2ZW4gY2FsZW5kYXIgb3IgRGF0ZSBvYmplY3QKKyAgICAgKiBpcyBzZXQgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGNvbXBhcmUoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgbG9uZyB0aGF0TXM7CisgICAgICAgIGlmICh0aGF0IGluc3RhbmNlb2YgQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgIHRoYXRNcyA9ICgoQ2FsZW5kYXIpdGhhdCkuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIH0gZWxzZSBpZiAodGhhdCBpbnN0YW5jZW9mIERhdGUpIHsKKyAgICAgICAgICAgIHRoYXRNcyA9ICgoRGF0ZSl0aGF0KS5nZXRUaW1lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHRoYXQgKyAiaXMgbm90IGEgQ2FsZW5kYXIgb3IgRGF0ZSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRUaW1lSW5NaWxsaXMoKSAtIHRoYXRNczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgdGltZSBmaWVsZCByZWNvcmRzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gY29tcGFyaW5nIHJlc3VsdCBvZiBjb252ZXJzaW9uIHRvIFVUQy4KKyAgICAgKiBAcGFyYW0gd2hlbiB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCB0aW1lIG9mIHRoaXMgQ2FsZW5kYXIgaXMgYmVmb3JlCisgICAgICogdGhlIHRpbWUgb2YgQ2FsZW5kYXIgd2hlbjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGJlZm9yZShPYmplY3Qgd2hlbikgeworICAgICAgICByZXR1cm4gY29tcGFyZSh3aGVuKSA8IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWUgZmllbGQgcmVjb3Jkcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNvbXBhcmluZyByZXN1bHQgb2YgY29udmVyc2lvbiB0byBVVEMuCisgICAgICogQHBhcmFtIHdoZW4gdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIENhbGVuZGFyIGlzIGFmdGVyCisgICAgICogdGhlIHRpbWUgb2YgQ2FsZW5kYXIgd2hlbjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGFmdGVyKE9iamVjdCB3aGVuKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKHdoZW4pID4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1heGltdW0gdmFsdWUgdGhhdCB0aGlzIGZpZWxkIGNvdWxkIGhhdmUsIGdpdmVuIHRoZQorICAgICAqIGN1cnJlbnQgZGF0ZS4gIEZvciBleGFtcGxlLCB3aXRoIHRoZSBHcmVnb3JpYW4gZGF0ZSBGZWJydWFyeSAzLCAxOTk3CisgICAgICogYW5kIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkLCB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBpcyAyODsgZm9yIEZlYnJ1YXJ5IDMsIDE5OTYgaXQgaXMgMjkuCisgICAgICoKKyAgICAgKiA8cD5UaGUgYWN0dWFsIG1heGltdW0gY29tcHV0YXRpb24gaWdub3JlcyBzbWFsbGVyIGZpZWxkcyBhbmQgdGhlCisgICAgICogY3VycmVudCB2YWx1ZSBvZiBsaWtlLXNpemVkIGZpZWxkcy4gIEZvciBleGFtcGxlLCB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBvZiB0aGUgREFZX09GX1lFQVIgb3IgTU9OVEggZGVwZW5kcyBvbmx5IG9uIHRoZSB5ZWFyIGFuZCBzdXByYS15ZWFyCisgICAgICogZmllbGRzLiAgVGhlIGFjdHVhbCBtYXhpbXVtIG9mIHRoZSBEQVlfT0ZfTU9OVEggZGVwZW5kcywgaW4KKyAgICAgKiBhZGRpdGlvbiwgb24gdGhlIE1PTlRIIGZpZWxkIGFuZCBhbnkgb3RoZXIgZmllbGRzIGF0IHRoYXQKKyAgICAgKiBncmFudWxhcml0eSAoc3VjaCBhcyBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkuICBUaGUKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USCBmaWVsZCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIGN1cnJlbnQKKyAgICAgKiBEQVlfT0ZfV0VFSzsgaXQgcmV0dXJucyB0aGUgbWF4aW11bSBmb3IgYW55IGRheSBvZiB3ZWVrIGluIHRoZQorICAgICAqIGN1cnJlbnQgbW9udGguICBMaWtld2lzZSBmb3IgdGhlIFdFRUtfT0ZfTU9OVEggYW5kIFdFRUtfT0ZfWUVBUgorICAgICAqIGZpZWxkcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgd2hvc2UgbWF4aW11bSBpcyBkZXNpcmVkCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSBvZiB0aGUgZ2l2ZW4gZmllbGQgZm9yIHRoZSBjdXJyZW50IGRhdGUgb2YgdGhpcyBjYWxlbmRhcgorICAgICAqIEBzZWUgI2dldE1heGltdW0KKyAgICAgKiBAc2VlICNnZXRMZWFzdE1heGltdW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFjdHVhbE1heGltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIGludCByZXN1bHQ7CisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9NT05USDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSAoQ2FsZW5kYXIpIGNsb25lKCk7CisgICAgICAgICAgICAgICAgY2FsLnByZXBhcmVHZXRBY3R1YWwoZmllbGQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVHZXRNb250aExlbmd0aChjYWwuZ2V0KEVYVEVOREVEX1lFQVIpLCBjYWwuZ2V0KE1PTlRIKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERBWV9PRl9ZRUFSOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IChDYWxlbmRhcikgY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBjYWwucHJlcGFyZUdldEFjdHVhbChmaWVsZCwgZmFsc2UpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGhhbmRsZUdldFllYXJMZW5ndGgoY2FsLmdldChFWFRFTkRFRF9ZRUFSKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBaT05FX09GRlNFVDoKKyAgICAgICAgY2FzZSBEU1RfT0ZGU0VUOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EU19JTl9EQVk6CisgICAgICAgICAgICAvLyBUaGVzZSBmaWVsZHMgYWxsIGhhdmUgZml4ZWQgbWluaW1hL21heGltYQorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0TWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gRm9yIGFsbCBvdGhlciBmaWVsZHMsIGRvIGl0IHRoZSBoYXJkIHdheS4uLi4KKyAgICAgICAgICAgIHJlc3VsdCA9IGdldEFjdHVhbEhlbHBlcihmaWVsZCwgZ2V0TGVhc3RNYXhpbXVtKGZpZWxkKSwgZ2V0TWF4aW11bShmaWVsZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1pbmltdW0gdmFsdWUgdGhhdCB0aGlzIGZpZWxkIGNvdWxkIGhhdmUsIGdpdmVuIHRoZSBjdXJyZW50IGRhdGUuCisgICAgICogRm9yIG1vc3QgZmllbGRzLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHtAbGluayAjZ2V0TWluaW11bSBnZXRNaW5pbXVtfQorICAgICAqIGFuZCB7QGxpbmsgI2dldEdyZWF0ZXN0TWluaW11bSBnZXRHcmVhdGVzdE1pbmltdW19LiAgSG93ZXZlciwgc29tZSBmaWVsZHMsCisgICAgICogZXNwZWNpYWxseSB0aG9zZSByZWxhdGVkIHRvIHdlZWsgbnVtYmVyLCBhcmUgbW9yZSBjb21wbGljYXRlZC4KKyAgICAgKiA8cD4KKyAgICAgKiBGb3IgZXhhbXBsZSwgYXNzdW1lIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfQorICAgICAqIHJldHVybnMgNCBhbmQge0BsaW5rICNnZXRGaXJzdERheU9mV2VlayBnZXRGaXJzdERheU9mV2Vla30gcmV0dXJucyBTVU5EQVkuCisgICAgICogSWYgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggaXMgU3VuZGF5LCBNb25kYXksIFR1ZXNkYXksIG9yIFdlZG5lc2RheQorICAgICAqIHRoZXJlIHdpbGwgYmUgZm91ciBvciBtb3JlIGRheXMgaW4gdGhlIGZpcnN0IHdlZWssIHNvIGl0IHdpbGwgYmUgd2VlayBudW1iZXIgMSwKKyAgICAgKiBhbmQgPGNvZGU+Z2V0QWN0dWFsTWluaW11bShXRUVLX09GX01PTlRIKTwvY29kZT4gd2lsbCByZXR1cm4gMS4gIEhvd2V2ZXIsCisgICAgICogaWYgdGhlIGZpcnN0IG9mIHRoZSBtb250aCBpcyBhIFRodXJzZGF5LCBGcmlkYXksIG9yIFNhdHVyZGF5LCB0aGVyZSBhcmUKKyAgICAgKiA8ZW0+bm90PC9lbT4gZm91ciBkYXlzIGluIHRoYXQgd2Vlaywgc28gaXQgaXMgd2VlayBudW1iZXIgMCwgYW5kCisgICAgICogPGNvZGU+Z2V0QWN0dWFsTWluaW11bShXRUVLX09GX01PTlRIKTwvY29kZT4gd2lsbCByZXR1cm4gMC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGZpZWxkIHdob3NlIGFjdHVhbCBtaW5pbXVtIHZhbHVlIGlzIGRlc2lyZWQuCisgICAgICogQHJldHVybiB0aGUgbWluaW11bSBvZiB0aGUgZ2l2ZW4gZmllbGQgZm9yIHRoZSBjdXJyZW50IGRhdGUgb2YgdGhpcyBjYWxlbmRhcgorICAgICAqCisgICAgICogQHNlZSAjZ2V0TWluaW11bQorICAgICAqIEBzZWUgI2dldEdyZWF0ZXN0TWluaW11bQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgaW50IHJlc3VsdDsKKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgREFZX09GX1dFRUs6CisgICAgICAgIGNhc2UgQU1fUE06CisgICAgICAgIGNhc2UgSE9VUjoKKyAgICAgICAgY2FzZSBIT1VSX09GX0RBWToKKyAgICAgICAgY2FzZSBNSU5VVEU6CisgICAgICAgIGNhc2UgU0VDT05EOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EOgorICAgICAgICBjYXNlIFpPTkVfT0ZGU0VUOgorICAgICAgICBjYXNlIERTVF9PRkZTRVQ6CisgICAgICAgIGNhc2UgRE9XX0xPQ0FMOgorICAgICAgICBjYXNlIEpVTElBTl9EQVk6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkRTX0lOX0RBWToKKyAgICAgICAgICAgIC8vIFRoZXNlIGZpZWxkcyBhbGwgaGF2ZSBmaXhlZCBtaW5pbWEvbWF4aW1hCisgICAgICAgICAgICByZXN1bHQgPSBnZXRNaW5pbXVtKGZpZWxkKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBGb3IgYWxsIG90aGVyIGZpZWxkcywgZG8gaXQgdGhlIGhhcmQgd2F5Li4uLgorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0QWN0dWFsSGVscGVyKGZpZWxkLCBnZXRHcmVhdGVzdE1pbmltdW0oZmllbGQpLCBnZXRNaW5pbXVtKGZpZWxkKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFByZXBhcmUgdGhpcyBjYWxlbmRhciBmb3IgY29tcHV0aW5nIHRoZSBhY3R1YWwgbWluaW11bSBvciBtYXhpbXVtLgorICAgICAqIFRoaXMgbWV0aG9kIG1vZGlmaWVzIHRoaXMgY2FsZW5kYXIncyBmaWVsZHM7IGl0IGlzIGNhbGxlZCBvbiBhCisgICAgICogdGVtcG9yYXJ5IGNhbGVuZGFyLgorICAgICAqCisgICAgICogPHA+UmF0aW9uYWxlOiBUaGUgc2VtYW50aWNzIG9mIGdldEFjdHVhbFh4eCgpIGlzIHRvIHJldHVybiB0aGUKKyAgICAgKiBtYXhpbXVtIG9yIG1pbmltdW0gdmFsdWUgdGhhdCB0aGUgZ2l2ZW4gZmllbGQgY2FuIHRha2UsIHRha2luZyBpbnRvCisgICAgICogYWNjb3VudCBvdGhlciByZWxldmFudCBmaWVsZHMuICBJbiBnZW5lcmFsIHRoZXNlIG90aGVyIGZpZWxkcyBhcmUKKyAgICAgKiBsYXJnZXIgZmllbGRzLiAgRm9yIGV4YW1wbGUsIHdoZW4gY29tcHV0aW5nIHRoZSBhY3R1YWwgbWF4aW11bQorICAgICAqIERBWV9PRl9NT05USCwgdGhlIGN1cnJlbnQgdmFsdWUgb2YgREFZX09GX01PTlRIIGl0c2VsZiBpcyBpZ25vcmVkLAorICAgICAqIGFzIGlzIHRoZSB2YWx1ZSBvZiBhbnkgZmllbGQgc21hbGxlci4KKyAgICAgKgorICAgICAqIDxwPlRoZSB0aW1lIGZpZWxkcyBhbGwgaGF2ZSBmaXhlZCBtaW5pbWEgYW5kIG1heGltYSwgc28gd2UgZG9uJ3QKKyAgICAgKiBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZW0uICBUaGlzIGFsc28gbGV0cyB1cyBzZXQgdGhlCisgICAgICogTUlMTElTRUNPTkRTX0lOX0RBWSB0byB6ZXJvIHRvIGVyYXNlIGFueSBlZmZlY3RzIHRoZSB0aW1lIGZpZWxkcworICAgICAqIG1pZ2h0IGhhdmUgd2hlbiBjb21wdXRpbmcgZGF0ZSBmaWVsZHMuCisgICAgICoKKyAgICAgKiA8cD5EQVlfT0ZfV0VFSyBpcyBhZGp1c3RlZCBzcGVjaWFsbHkgZm9yIHRoZSBXRUVLX09GX01PTlRIIGFuZAorICAgICAqIFdFRUtfT0ZfWUVBUiBmaWVsZHMgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgY29tcHV0ZWQgY29ycmVjdGx5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHByZXBhcmVHZXRBY3R1YWwoaW50IGZpZWxkLCBib29sZWFuIGlzTWluaW11bSkgeworICAgICAgICBzZXQoTUlMTElTRUNPTkRTX0lOX0RBWSwgMCk7CisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIFlFQVI6CisgICAgICAgIGNhc2UgWUVBUl9XT1k6CisgICAgICAgIGNhc2UgRVhURU5ERURfWUVBUjoKKyAgICAgICAgICAgIHNldChEQVlfT0ZfWUVBUiwgZ2V0R3JlYXRlc3RNaW5pbXVtKERBWV9PRl9ZRUFSKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgc2V0KERBWV9PRl9NT05USCwgZ2V0R3JlYXRlc3RNaW5pbXVtKERBWV9PRl9NT05USCkpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFS19JTl9NT05USDoKKyAgICAgICAgICAgIC8vIEZvciBkb3dpbSwgdGhlIG1heGltdW0gb2NjdXJzIGZvciB0aGUgRE9XIG9mIHRoZSBmaXJzdCBvZiB0aGUKKyAgICAgICAgICAgIC8vIG1vbnRoLgorICAgICAgICAgICAgc2V0KERBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICBzZXQoREFZX09GX1dFRUssIGdldChEQVlfT0ZfV0VFSykpOyAvLyBNYWtlIHRoaXMgdXNlciBzZXQKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0VFS19PRl9NT05USDoKKyAgICAgICAgY2FzZSBXRUVLX09GX1lFQVI6CisgICAgICAgICAgICAvLyBJZiB3ZSdyZSBjb3VudGluZyB3ZWVrcywgc2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsgdG8gZWl0aGVyIHRoZQorICAgICAgICAgICAgLy8gZmlyc3Qgb3IgbGFzdCBsb2NhbGl6ZWQgRE9XLiAgV2Uga25vdyB0aGUgbGFzdCB3ZWVrIG9mIGEgbW9udGgKKyAgICAgICAgICAgIC8vIG9yIHllYXIgd2lsbCBjb250YWluIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIGFuZCB0aGF0IHRoZQorICAgICAgICAgICAgLy8gZmlyc3Qgd2VlayB3aWxsIGNvbnRhaW4gdGhlIGxhc3QgRE9XLgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBkb3cgPSBmaXJzdERheU9mV2VlazsKKyAgICAgICAgICAgICAgICBpZiAoaXNNaW5pbXVtKSB7CisgICAgICAgICAgICAgICAgICAgIGRvdyA9IChkb3cgKyA2KSAlIDc7IC8vIHNldCB0byBsYXN0IERPVworICAgICAgICAgICAgICAgICAgICBpZiAoZG93IDwgU1VOREFZKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb3cgKz0gNzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoREFZX09GX1dFRUssIGRvdyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvIHRoaXMgbGFzdCB0byBnaXZlIGl0IHRoZSBuZXdlc3QgdGltZSBzdGFtcAorICAgICAgICBzZXQoZmllbGQsIGdldEdyZWF0ZXN0TWluaW11bShmaWVsZCkpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGdldEFjdHVhbEhlbHBlcihpbnQgZmllbGQsIGludCBzdGFydFZhbHVlLCBpbnQgZW5kVmFsdWUpIHsKKworICAgICAgICBpZiAoc3RhcnRWYWx1ZSA9PSBlbmRWYWx1ZSkgeworICAgICAgICAgICAgLy8gaWYgd2Uga25vdyB0aGF0IHRoZSBtYXhpbXVtIHZhbHVlIGlzIGFsd2F5cyB0aGUgc2FtZSwganVzdCByZXR1cm4gaXQKKyAgICAgICAgICAgIHJldHVybiBzdGFydFZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGRlbHRhID0gKGVuZFZhbHVlID4gc3RhcnRWYWx1ZSkgPyAxIDogLTE7CisKKyAgICAgICAgLy8gY2xvbmUgdGhlIGNhbGVuZGFyIHNvIHdlIGRvbid0IG1lc3Mgd2l0aCB0aGUgcmVhbCBvbmUsIGFuZCBzZXQgaXQgdG8KKyAgICAgICAgLy8gYWNjZXB0IGFueXRoaW5nIGZvciB0aGUgZmllbGQgdmFsdWVzCisgICAgICAgIENhbGVuZGFyIHdvcmsgPSAoQ2FsZW5kYXIpIGNsb25lKCk7CisgICAgICAgIHdvcmsuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgd29yay5wcmVwYXJlR2V0QWN0dWFsKGZpZWxkLCBkZWx0YSA8IDApOworCisgICAgICAgIC8vIG5vdyB0cnkgZWFjaCB2YWx1ZSBmcm9tIHRoZSBzdGFydCB0byB0aGUgZW5kIG9uZSBieSBvbmUgdW50aWwKKyAgICAgICAgLy8gd2UgZ2V0IGEgdmFsdWUgdGhhdCBub3JtYWxpemVzIHRvIGFub3RoZXIgdmFsdWUuICBUaGUgbGFzdCB2YWx1ZSB0aGF0CisgICAgICAgIC8vIG5vcm1hbGl6ZXMgdG8gaXRzZWxmIGlzIHRoZSBhY3R1YWwgbWF4aW11bSBmb3IgdGhlIGN1cnJlbnQgZGF0ZQorICAgICAgICBpbnQgcmVzdWx0ID0gc3RhcnRWYWx1ZTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgd29yay5zZXQoZmllbGQsIHN0YXJ0VmFsdWUpOworICAgICAgICAgICAgaWYgKHdvcmsuZ2V0KGZpZWxkKSAhPSBzdGFydFZhbHVlKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHN0YXJ0VmFsdWU7CisgICAgICAgICAgICAgICAgc3RhcnRWYWx1ZSArPSBkZWx0YTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAocmVzdWx0ICE9IGVuZFZhbHVlKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGxzICh1cC9kb3duKSBhIHNpbmdsZSB1bml0IG9mIHRpbWUgb24gdGhlIGdpdmVuIGZpZWxkLiAgSWYgdGhlCisgICAgICogZmllbGQgaXMgcm9sbGVkIHBhc3QgaXRzIG1heGltdW0gYWxsb3dhYmxlIHZhbHVlLCBpdCB3aWxsICJ3cmFwIiBiYWNrCisgICAgICogdG8gaXRzIG1pbmltdW0gYW5kIGNvbnRpbnVlIHJvbGxpbmcuIEZvcgorICAgICAqIGV4YW1wbGUsIHRvIHJvbGwgdGhlIGN1cnJlbnQgZGF0ZSB1cCBieSBvbmUgZGF5LCB5b3UgY2FuIGNhbGw6CisgICAgICogPHA+CisgICAgICogPGNvZGU+cm9sbCh7QGxpbmsgI0RBVEV9LCB0cnVlKTwvY29kZT4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gdGhlIHtAbGluayAjWUVBUn0gZmllbGQsIGl0IHdpbGwgcm9sbCB0aGUgeWVhcgorICAgICAqIHZhbHVlIGluIHRoZSByYW5nZSBiZXR3ZWVuIDEgYW5kIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBjYWxsaW5nCisgICAgICoge0BsaW5rICNnZXRNYXhpbXVtIGdldE1heGltdW19KHtAbGluayAjWUVBUn0pLgorICAgICAqIDxwPgorICAgICAqIFdoZW4gcm9sbGluZyBvbiBjZXJ0YWluIGZpZWxkcywgdGhlIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgbWF5IGNvbmZsaWN0IGFuZAorICAgICAqIG5lZWQgdG8gYmUgY2hhbmdlZC4gIEZvciBleGFtcGxlLCB3aGVuIHJvbGxpbmcgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZAorICAgICAqIGZvciB0aGUgR3JlZ29yaWFuIGRhdGUgMS8zMS85NiB1cHdhcmQsIHRoZSA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgMi8yOS85NiByYXRoZXIgdGhhbiB0aGUgaW52YWxpZAorICAgICAqIDIvMzEvOTYuCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IENhbGxpbmcgPHR0PnJvbGwoZmllbGQsIHRydWUpPC90dD4gTiB0aW1lcyBpcyA8ZW0+bm90PC9lbT4KKyAgICAgKiBuZWNlc3NhcmlseSBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPHR0PnJvbGwoZmllbGQsIE4pPC90dD4uICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbWFnaW5lIHRoYXQgeW91IHN0YXJ0IHdpdGggdGhlIGRhdGUgR3JlZ29yaWFuIGRhdGUgSmFudWFyeSAzMSwgMTk5NS4gIElmIHlvdSBjYWxsCisgICAgICogPHR0PnJvbGwoQ2FsZW5kYXIuTU9OVEgsIDIpPC90dD4sIHRoZSByZXN1bHQgd2lsbCBiZSBNYXJjaCAzMSwgMTk5NS4KKyAgICAgKiBCdXQgaWYgeW91IGNhbGwgPHR0PnJvbGwoQ2FsZW5kYXIuTU9OVEgsIHRydWUpPC90dD4sIHRoZSByZXN1bHQgd2lsbCBiZQorICAgICAqIEZlYnJ1YXJ5IDI4LCAxOTk1LiAgQ2FsbGluZyBpdCBvbmUgbW9yZSB0aW1lIHdpbGwgZ2l2ZSBNYXJjaCAyOCwgMTk5NSwgd2hpY2gKKyAgICAgKiBpcyB1c3VhbGx5IG5vdCB0aGUgZGVzaXJlZCByZXN1bHQuCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSA8dHQ+cm9sbDwvdHQ+IGFuZCA8dHQ+YWRkPC90dD4gcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAgICAgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgICAgICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgICAgICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAgICAgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBjYWxlbmRhciBmaWVsZCB0byByb2xsLgorICAgICAqCisgICAgICogQHBhcmFtIHVwICAgIGluZGljYXRlcyBpZiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCB0aW1lIGZpZWxkIGlzIHRvIGJlCisgICAgICogICAgICAgICAgICAgIHJvbGxlZCB1cCBvciByb2xsZWQgZG93bi4gVXNlIDxjb2RlPnRydWU8L2NvZGU+IGlmIHJvbGxpbmcgdXAsCisgICAgICogICAgICAgICAgICAgIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICogQHNlZSAjcm9sbChpbnQsIGludCkKKyAgICAgKiBAc2VlICNhZGQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByb2xsKGludCBmaWVsZCwgYm9vbGVhbiB1cCkKKyAgICB7CisgICAgICAgIHJvbGwoZmllbGQsIHVwID8gKzEgOiAtMSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUm9sbHMgKHVwL2Rvd24pIGEgc3BlY2lmaWVkIGFtb3VudCB0aW1lIG9uIHRoZSBnaXZlbiBmaWVsZC4gIEZvcgorICAgICAqIGV4YW1wbGUsIHRvIHJvbGwgdGhlIGN1cnJlbnQgZGF0ZSB1cCBieSB0aHJlZSBkYXlzLCB5b3UgY2FuIGNhbGwKKyAgICAgKiA8Y29kZT5yb2xsKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4gIElmIHRoZQorICAgICAqIGZpZWxkIGlzIHJvbGxlZCBwYXN0IGl0cyBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSwgaXQgd2lsbCAid3JhcCIgYmFjaworICAgICAqIHRvIGl0cyBtaW5pbXVtIGFuZCBjb250aW51ZSByb2xsaW5nLgorICAgICAqIEZvciBleGFtcGxlLCBjYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMTApPC9jb2RlPgorICAgICAqIG9uIGEgR3JlZ29yaWFuIGNhbGVuZGFyIHNldCB0byA0LzI1Lzk2IHdpbGwgcmVzdWx0IGluIHRoZSBkYXRlIDQvNS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgR3JlZ29yaWFuIGRhdGUgMS8zMS85NiBieSArMSwgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgPGNvZGU+Y29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgaXMgYWJsZSB0byByb2xsCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+cm9sbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSA8dHQ+cm9sbDwvdHQ+IGFuZCA8dHQ+YWRkPC90dD4gcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAgICAgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgICAgICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgICAgICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAgICAgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPnJvbGw8L2NvZGU+IGFzc3VtZXMgdGhhdCB0aGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICogZmllbGQgaXMgY29udGludW91cyBiZXR3ZWVuIGl0cyBtaW5pbXVtIGFuZCBtYXhpbXVtLCB3aGljaCBhcmUgZm91bmQgYnkKKyAgICAgKiBjYWxsaW5nIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LgorICAgICAqIEZvciBtb3N0IHN1Y2ggZmllbGRzLCBzaW1wbGUgYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBhbmQgbW9kdWx1cyBvcGVyYXRpb25zCisgICAgICogYXJlIHN1ZmZpY2llbnQgdG8gcGVyZm9ybSB0aGUgcm9sbC4gIEZvciB3ZWVrLXJlbGF0ZWQgZmllbGRzLAorICAgICAqIHRoZSByZXN1bHRzIG9mIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IGFuZAorICAgICAqIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfSBhcmUgYWxzbyBuZWNlc3NhcnkuCisgICAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhlc2UgdHdvIG1ldGhvZHMgaWYgdGhlaXIgdmFsdWVzIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgaGF2ZSBmaWVsZHMgZm9yIHdoaWNoIHRoZSBhc3N1bXB0aW9uIG9mIGNvbnRpbnVpdHkgYnJlYWtzCisgICAgICogZG93biBtdXN0IG92ZXJpZGUgPGNvZGU+cm9sbDwvY29kZT4gdG8gaGFuZGxlIHRob3NlIGZpZWxkcyBzcGVjaWFsbHkuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICJBZGFyIEkiCisgICAgICogb25seSBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAgICAgKiBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuICBUaGUKKyAgICAgKiB7QGxpbmsgSGVicmV3Q2FsZW5kYXIjcm9sbCBIZWJyZXdDYWxlbmRhci5yb2xsfSBtZXRob2QgdGFrZXMgdGhpcyBpbnRvIGFjY291bnQsCisgICAgICogc28gdGhhdCByb2xsaW5nIHRoZSBtb250aCBvZiBTaGV2YXQgYnkgb25lIGdpdmVzIHRoZSBwcm9wZXIgcmVzdWx0IChBZGFyKSBpbiBhCisgICAgICogbm9uLWxlYXAgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSBjYWxlbmRhciBmaWVsZCB0byByb2xsLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgZmllbGQgc2hvdWxkIGJlIHJvbGxlZC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyb2xsKGludCwgYm9vbGVhbikKKyAgICAgKiBAc2VlICNhZGQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByb2xsKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworCisgICAgICAgIGlmIChhbW91bnQgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOyAvLyBOb3RoaW5nIHRvIGRvCisgICAgICAgIH0KKworICAgICAgICBjb21wbGV0ZSgpOworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBEQVlfT0ZfTU9OVEg6CisgICAgICAgIGNhc2UgQU1fUE06CisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORFNfSU5fREFZOgorICAgICAgICBjYXNlIEVSQToKKyAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc3RhbmRhcmQgcm9sbCBpbnN0cnVjdGlvbnMuICBUaGVzZSB3b3JrIGZvciBhbGwKKyAgICAgICAgICAgIC8vIHNpbXBsZSBjYXNlcywgdGhhdCBpcywgY2FzZXMgaW4gd2hpY2ggdGhlIGxpbWl0cyBhcmUgZml4ZWQsIHN1Y2gKKyAgICAgICAgICAgIC8vIGFzIHRoZSBob3VyLCB0aGUgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZSBlcmEuCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1pbiA9IGdldEFjdHVhbE1pbmltdW0oZmllbGQpOworICAgICAgICAgICAgICAgIGludCBtYXggPSBnZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpbnQgZ2FwID0gbWF4IC0gbWluICsgMTsKKworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IGludGVybmFsR2V0KGZpZWxkKSArIGFtb3VudDsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICh2YWx1ZSAtIG1pbikgJSBnYXA7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSBnYXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhbHVlICs9IG1pbjsKKworICAgICAgICAgICAgICAgIHNldChmaWVsZCwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgICAgICAvLyBSb2xsaW5nIHRoZSBob3VyIGlzIGRpZmZpY3VsdCBvbiB0aGUgT05TRVQgYW5kIENFQVNFIGRheXMgb2YKKyAgICAgICAgICAgIC8vIGRheWxpZ2h0IHNhdmluZ3MuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGNoYW5nZSBvY2N1cnMgYXQKKyAgICAgICAgICAgIC8vIDIgQU0sIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBwcm9ncmVzc2lvbjoKKyAgICAgICAgICAgIC8vIE9OU0VUOiAxMiBTdGQgLT4gMSBTdGQgLT4gMyBEc3QgLT4gNCBEc3QKKyAgICAgICAgICAgIC8vIENFQVNFOiAxMiBEc3QgLT4gMSBEc3QgLT4gMSBTdGQgLT4gMiBTdGQKKyAgICAgICAgICAgIC8vIFRvIGdldCBhcm91bmQgdGhpcyBwcm9ibGVtIHdlIGRvbid0IHVzZSBmaWVsZHM7IHdlIG1hbmlwdWxhdGUKKyAgICAgICAgICAgIC8vIHRoZSB0aW1lIGluIG1pbGxpcyBkaXJlY3RseS4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBBc3N1bWUgbWluID09IDAgaW4gY2FsY3VsYXRpb25zIGJlbG93CisgICAgICAgICAgICAgICAgbG9uZyBzdGFydCA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGludCBvbGRIb3VyID0gaW50ZXJuYWxHZXQoZmllbGQpOworICAgICAgICAgICAgICAgIGludCBtYXggPSBnZXRNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpbnQgbmV3SG91ciA9IChvbGRIb3VyICsgYW1vdW50KSAlIChtYXggKyAxKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3SG91ciA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3SG91ciArPSBtYXggKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnQgKyBPTkVfSE9VUiAqIChuZXdIb3VyIC0gb2xkSG91cikpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgLy8gUm9sbGluZyB0aGUgbW9udGggaW52b2x2ZXMgYm90aCBwaW5uaW5nIHRoZSBmaW5hbCB2YWx1ZQorICAgICAgICAgICAgLy8gYW5kIGFkanVzdGluZyB0aGUgREFZX09GX01PTlRIIGlmIG5lY2Vzc2FyeS4gIFdlIG9ubHkgYWRqdXN0IHRoZQorICAgICAgICAgICAgLy8gREFZX09GX01PTlRIIGlmLCBhZnRlciB1cGRhdGluZyB0aGUgTU9OVEggZmllbGQsIGl0IGlzIGlsbGVnYWwuCisgICAgICAgICAgICAvLyBFLmcuLCA8amFuMzE+LnJvbGwoTU9OVEgsIDEpIC0+IDxmZWIyOD4gb3IgPGZlYjI5Pi4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gZ2V0QWN0dWFsTWF4aW11bShNT05USCk7CisgICAgICAgICAgICAgICAgaW50IG1vbiA9IChpbnRlcm5hbEdldChNT05USCkgKyBhbW91bnQpICUgKG1heCsxKTsKKworICAgICAgICAgICAgICAgIGlmIChtb24gPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1vbiArPSAobWF4ICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChNT05USCwgbW9uKTsKKworICAgICAgICAgICAgICAgIC8vIEtlZXAgdGhlIGRheSBvZiBtb250aCBpbiByYW5nZS4gIFdlIGRvbid0IHdhbnQgdG8gc3BpbGwgb3ZlcgorICAgICAgICAgICAgICAgIC8vIGludG8gdGhlIG5leHQgbW9udGg7IGUuZy4sIHdlIGRvbid0IHdhbnQgamFuMzEgKyAxIG1vIC0+IGZlYjMxIC0+CisgICAgICAgICAgICAgICAgLy8gbWFyMy4KKyAgICAgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlIFlFQVI6CisgICAgICAgIGNhc2UgWUVBUl9XT1k6CisgICAgICAgIGNhc2UgRVhURU5ERURfWUVBUjoKKyAgICAgICAgICAgIC8vIFJvbGxpbmcgdGhlIHllYXIgY2FuIGludm9sdmUgcGlubmluZyB0aGUgREFZX09GX01PTlRILgorICAgICAgICAgICAgc2V0KGZpZWxkLCBpbnRlcm5hbEdldChmaWVsZCkgKyBhbW91bnQpOworICAgICAgICAgICAgcGluRmllbGQoTU9OVEgpOworICAgICAgICAgICAgcGluRmllbGQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdFRUtfT0ZfTU9OVEg6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0cmlja3ksIGJlY2F1c2UgZHVyaW5nIHRoZSByb2xsIHdlIG1heSBoYXZlIHRvIHNoaWZ0CisgICAgICAgICAgICAgICAgLy8gdG8gYSBkaWZmZXJlbnQgZGF5IG9mIHRoZSB3ZWVrLiAgRm9yIGV4YW1wbGU6CisKKyAgICAgICAgICAgICAgICAvLyAgICBzICBtICB0ICB3ICByICBmICBzCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgMSAgMiAgMyAgNCAgNQorICAgICAgICAgICAgICAgIC8vICAgIDYgIDcgIDggIDkgMTAgMTEgMTIKKworICAgICAgICAgICAgICAgIC8vIFdoZW4gcm9sbGluZyBmcm9tIHRoZSA2dGggb3IgN3RoIGJhY2sgb25lIHdlZWssIHdlIGdvIHRvIHRoZQorICAgICAgICAgICAgICAgIC8vIDFzdCAoYXNzdW1pbmcgdGhhdCB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrIGNvdW50cykuICBUaGUgc2FtZQorICAgICAgICAgICAgICAgIC8vIHRoaW5nIGhhcHBlbnMgYXQgdGhlIGVuZCBvZiB0aGUgbW9udGguCisKKyAgICAgICAgICAgICAgICAvLyBUaGUgb3RoZXIgdHJpY2t5IHRoaW5nIGlzIHRoYXQgd2UgaGF2ZSB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrIGFjdHVhbGx5IGNvdW50cyBvciBub3QsIGJhc2VkIG9uIHRoZQorICAgICAgICAgICAgICAgIC8vIG1pbmltYWwgZmlyc3QgZGF5cyBpbiB0aGUgd2Vlay4gIEFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUKKyAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGZpcnN0IGRheSBvZiB0aGUgd2VlayB0byBkZWxpbmVhdGUgdGhlIHdlZWsKKyAgICAgICAgICAgICAgICAvLyBib3VuZGFyaWVzLgorCisgICAgICAgICAgICAgICAgLy8gSGVyZSdzIG91ciBhbGdvcml0aG0uICBGaXJzdCwgd2UgZmluZCB0aGUgcmVhbCBib3VuZGFyaWVzIG9mCisgICAgICAgICAgICAgICAgLy8gdGhlIG1vbnRoLiAgVGhlbiB3ZSBkaXNjYXJkIHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsgaWYgaXQKKyAgICAgICAgICAgICAgICAvLyBkb2Vzbid0IGNvdW50IGluIHRoaXMgbG9jYWxlLiAgVGhlbiB3ZSBmaWxsIGluIHRoZSBlbmRzIHdpdGgKKyAgICAgICAgICAgICAgICAvLyBwaGFudG9tIGRheXMsIHNvIHRoYXQgdGhlIGZpcnN0IHBhcnRpYWwgd2VlayBhbmQgdGhlIGxhc3QKKyAgICAgICAgICAgICAgICAvLyBwYXJ0aWFsIHdlZWsgYXJlIGZ1bGwgd2Vla3MuICBXZSB0aGVuIGhhdmUgYSBuaWNlIHNxdWFyZQorICAgICAgICAgICAgICAgIC8vIGJsb2NrIG9mIHdlZWtzLiAgV2UgZG8gdGhlIHVzdWFsIHJvbGxpbmcgd2l0aGluIHRoaXMgYmxvY2ssCisgICAgICAgICAgICAgICAgLy8gYXMgaXMgZG9uZSBlbHNld2hlcmUgaW4gdGhpcyBtZXRob2QuICBJZiB3ZSB3aW5kIHVwIG9uIG9uZSBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBwaGFudG9tIGRheXMgdGhhdCB3ZSBhZGRlZCwgd2UgcmVjb2duaXplIHRoaXMgYW5kIHBpbiB0bworICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBvciB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLiAgRWFzeSwgZWg/CisKKyAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemUgdGhlIERBWV9PRl9XRUVLIHNvIHRoYXQgMCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBsb2NhbGUuICBXZSBoYXZlIGRvdyBpbiAwLi42LgorICAgICAgICAgICAgICAgIGludCBkb3cgPSBpbnRlcm5hbEdldChEQVlfT0ZfV0VFSykgLSBnZXRGaXJzdERheU9mV2VlaygpOworICAgICAgICAgICAgICAgIGlmIChkb3cgPCAwKSBkb3cgKz0gNzsKKworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGRheSBvZiB0aGUgd2VlayAobm9ybWFsaXplZCBmb3IgbG9jYWxlKSBmb3IgdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIG1vbnRoLgorICAgICAgICAgICAgICAgIGludCBmZG0gPSAoZG93IC0gaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSArIDEpICUgNzsKKyAgICAgICAgICAgICAgICBpZiAoZmRtIDwgMCkgZmRtICs9IDc7CisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IGRheSBvZiB0aGUgZmlyc3QgZnVsbCB3ZWVrIG9mIHRoZSBtb250aCwKKyAgICAgICAgICAgICAgICAvLyBpbmNsdWRpbmcgcGhhbnRvbSBkYXlzLCBpZiBhbnkuICBGaWd1cmUgb3V0IGlmIHRoZSBmaXJzdCB3ZWVrCisgICAgICAgICAgICAgICAgLy8gY291bnRzIG9yIG5vdDsgaWYgaXQgY291bnRzLCB0aGVuIGZpbGwgaW4gcGhhbnRvbSBkYXlzLiAgSWYKKyAgICAgICAgICAgICAgICAvLyBub3QsIGFkdmFuY2UgdG8gdGhlIGZpcnN0IHJlYWwgZnVsbCB3ZWVrIChza2lwIHRoZSBwYXJ0aWFsIHdlZWspLgorICAgICAgICAgICAgICAgIGludCBzdGFydDsKKyAgICAgICAgICAgICAgICBpZiAoKDcgLSBmZG0pIDwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKQorICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDggLSBmZG07IC8vIFNraXAgdGhlIGZpcnN0IHBhcnRpYWwgd2VlaworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSAxIC0gZmRtOyAvLyBUaGlzIG1heSBiZSB6ZXJvIG9yIG5lZ2F0aXZlCisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGRheSBvZiB0aGUgd2VlayAobm9ybWFsaXplZCBmb3IgbG9jYWxlKSBmb3IgdGhlIGxhc3QKKyAgICAgICAgICAgICAgICAvLyBkYXkgb2YgdGhlIG1vbnRoLgorICAgICAgICAgICAgICAgIGludCBtb250aExlbiA9IGdldEFjdHVhbE1heGltdW0oREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgbGRtID0gKG1vbnRoTGVuIC0gaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSArIGRvdykgJSA3OworICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgbW9udGhMZW4gPj0gREFZX09GX01PTlRIIHNvIHdlIHNraXAgdGhlICs9IDcgc3RlcCBoZXJlLgorCisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBsaW1pdCBkYXkgZm9yIHRoZSBibG9ja2VkLW9mZiByZWN0YW5ndWxhciBtb250aDsgdGhhdAorICAgICAgICAgICAgICAgIC8vIGlzLCB0aGUgZGF5IHdoaWNoIGlzIG9uZSBwYXN0IHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGgsCisgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIG1vbnRoIGhhcyBhbHJlYWR5IGJlZW4gZmlsbGVkIGluIHdpdGggcGhhbnRvbSBkYXlzCisgICAgICAgICAgICAgICAgLy8gdG8gZmlsbCBvdXQgdGhlIGxhc3Qgd2Vlay4gIFRoaXMgZGF5IGhhcyBhIG5vcm1hbGl6ZWQgRE9XIG9mIDAuCisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gbW9udGhMZW4gKyA3IC0gbGRtOworCisgICAgICAgICAgICAgICAgLy8gTm93IHJvbGwgYmV0d2VlbiBzdGFydCBhbmQgKGxpbWl0IC0gMSkuCisgICAgICAgICAgICAgICAgaW50IGdhcCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IGRheV9vZl9tb250aCA9IChpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpICsgYW1vdW50KjcgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQpICUgZ2FwOworICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfbW9udGggPCAwKSBkYXlfb2ZfbW9udGggKz0gZ2FwOworICAgICAgICAgICAgICAgIGRheV9vZl9tb250aCArPSBzdGFydDsKKworICAgICAgICAgICAgICAgIC8vIEZpbmFsbHksIHBpbiB0byB0aGUgcmVhbCBzdGFydCBhbmQgZW5kIG9mIHRoZSBtb250aC4KKyAgICAgICAgICAgICAgICBpZiAoZGF5X29mX21vbnRoIDwgMSkgZGF5X29mX21vbnRoID0gMTsKKyAgICAgICAgICAgICAgICBpZiAoZGF5X29mX21vbnRoID4gbW9udGhMZW4pIGRheV9vZl9tb250aCA9IG1vbnRoTGVuOworCisgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBEQVlfT0ZfTU9OVEguICBXZSByZWx5IG9uIHRoZSBmYWN0IHRoYXQgdGhpcyBmaWVsZAorICAgICAgICAgICAgICAgIC8vIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBldmVyeXRoaW5nIGVsc2UgKHNpbmNlIGFsbCBvdGhlciBmaWVsZHMKKyAgICAgICAgICAgICAgICAvLyBhcmUgYWxzbyBzZXQgYXQgdGhpcyBwb2ludCkuICBJZiB0aGlzIGZhY3QgY2hhbmdlcyAoaWYgdGhlCisgICAgICAgICAgICAgICAgLy8gZGlzYW1iaWd1YXRpb24gYWxnb3JpdGhtIGNoYW5nZXMpIHRoZW4gd2Ugd2lsbCBoYXZlIHRvIHVuc2V0CisgICAgICAgICAgICAgICAgLy8gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcyBoZXJlIHNvIHRoYXQgREFZX09GX01PTlRIIGlzIGF0dGVuZGVkCisgICAgICAgICAgICAgICAgLy8gdG8uCisgICAgICAgICAgICAgICAgc2V0KERBWV9PRl9NT05USCwgZGF5X29mX21vbnRoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgV0VFS19PRl9ZRUFSOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgZm9sbG93cyB0aGUgb3V0bGluZSBvZiBXRUVLX09GX01PTlRILCBleGNlcHQgaXQgYXBwbGllcworICAgICAgICAgICAgICAgIC8vIHRvIHRoZSB3aG9sZSB5ZWFyLiAgUGxlYXNlIHNlZSB0aGUgY29tbWVudCBmb3IgV0VFS19PRl9NT05USAorICAgICAgICAgICAgICAgIC8vIGZvciBnZW5lcmFsIG5vdGVzLgorCisgICAgICAgICAgICAgICAgLy8gTm9ybWFsaXplIHRoZSBEQVlfT0ZfV0VFSyBzbyB0aGF0IDAgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaworICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgbG9jYWxlLiAgV2UgaGF2ZSBkb3cgaW4gMC4uNi4KKyAgICAgICAgICAgICAgICBpbnQgZG93ID0gaW50ZXJuYWxHZXQoREFZX09GX1dFRUspIC0gZ2V0Rmlyc3REYXlPZldlZWsoKTsKKyAgICAgICAgICAgICAgICBpZiAoZG93IDwgMCkgZG93ICs9IDc7CisKKyAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBkYXkgb2YgdGhlIHdlZWsgKG5vcm1hbGl6ZWQgZm9yIGxvY2FsZSkgZm9yIHRoZSBmaXJzdAorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB5ZWFyLgorICAgICAgICAgICAgICAgIGludCBmZHkgPSAoZG93IC0gaW50ZXJuYWxHZXQoREFZX09GX1lFQVIpICsgMSkgJSA3OworICAgICAgICAgICAgICAgIGlmIChmZHkgPCAwKSBmZHkgKz0gNzsKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSBmaXJzdCBmdWxsIHdlZWsgb2YgdGhlIHllYXIsCisgICAgICAgICAgICAgICAgLy8gaW5jbHVkaW5nIHBoYW50b20gZGF5cywgaWYgYW55LiAgRmlndXJlIG91dCBpZiB0aGUgZmlyc3Qgd2VlaworICAgICAgICAgICAgICAgIC8vIGNvdW50cyBvciBub3Q7IGlmIGl0IGNvdW50cywgdGhlbiBmaWxsIGluIHBoYW50b20gZGF5cy4gIElmCisgICAgICAgICAgICAgICAgLy8gbm90LCBhZHZhbmNlIHRvIHRoZSBmaXJzdCByZWFsIGZ1bGwgd2VlayAoc2tpcCB0aGUgcGFydGlhbCB3ZWVrKS4KKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKCg3IC0gZmR5KSA8IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSA4IC0gZmR5OyAvLyBTa2lwIHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gMSAtIGZkeTsgLy8gVGhpcyBtYXkgYmUgemVybyBvciBuZWdhdGl2ZQorCisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsgKG5vcm1hbGl6ZWQgZm9yIGxvY2FsZSkgZm9yIHRoZSBsYXN0CisgICAgICAgICAgICAgICAgLy8gZGF5IG9mIHRoZSB5ZWFyLgorICAgICAgICAgICAgICAgIGludCB5ZWFyTGVuID0gZ2V0QWN0dWFsTWF4aW11bShEQVlfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgaW50IGxkeSA9ICh5ZWFyTGVuIC0gaW50ZXJuYWxHZXQoREFZX09GX1lFQVIpICsgZG93KSAlIDc7CisgICAgICAgICAgICAgICAgLy8gV2Uga25vdyB5ZWFyTGVuID49IERBWV9PRl9ZRUFSIHNvIHdlIHNraXAgdGhlICs9IDcgc3RlcCBoZXJlLgorCisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBsaW1pdCBkYXkgZm9yIHRoZSBibG9ja2VkLW9mZiByZWN0YW5ndWxhciB5ZWFyOyB0aGF0CisgICAgICAgICAgICAgICAgLy8gaXMsIHRoZSBkYXkgd2hpY2ggaXMgb25lIHBhc3QgdGhlIGxhc3QgZGF5IG9mIHRoZSB5ZWFyLAorICAgICAgICAgICAgICAgIC8vIGFmdGVyIHRoZSB5ZWFyIGhhcyBhbHJlYWR5IGJlZW4gZmlsbGVkIGluIHdpdGggcGhhbnRvbSBkYXlzCisgICAgICAgICAgICAgICAgLy8gdG8gZmlsbCBvdXQgdGhlIGxhc3Qgd2Vlay4gIFRoaXMgZGF5IGhhcyBhIG5vcm1hbGl6ZWQgRE9XIG9mIDAuCisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0geWVhckxlbiArIDcgLSBsZHk7CisKKyAgICAgICAgICAgICAgICAvLyBOb3cgcm9sbCBiZXR3ZWVuIHN0YXJ0IGFuZCAobGltaXQgLSAxKS4KKyAgICAgICAgICAgICAgICBpbnQgZ2FwID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgICAgICAgICBpbnQgZGF5X29mX3llYXIgPSAoaW50ZXJuYWxHZXQoREFZX09GX1lFQVIpICsgYW1vdW50KjcgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQpICUgZ2FwOworICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfeWVhciA8IDApIGRheV9vZl95ZWFyICs9IGdhcDsKKyAgICAgICAgICAgICAgICBkYXlfb2ZfeWVhciArPSBzdGFydDsKKworICAgICAgICAgICAgICAgIC8vIEZpbmFsbHksIHBpbiB0byB0aGUgcmVhbCBzdGFydCBhbmQgZW5kIG9mIHRoZSBtb250aC4KKyAgICAgICAgICAgICAgICBpZiAoZGF5X29mX3llYXIgPCAxKSBkYXlfb2ZfeWVhciA9IDE7CisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl95ZWFyID4geWVhckxlbikgZGF5X29mX3llYXIgPSB5ZWFyTGVuOworCisgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHllYXIgYW5kIGRheSBvZiB5ZWFyIGFyZSBhdHRlbmRlZCB0byBieQorICAgICAgICAgICAgICAgIC8vIGNsZWFyaW5nIG90aGVyIGZpZWxkcyB3aGljaCB3b3VsZCBub3JtYWxseSB0YWtlIHByZWNlZGVuY2UuCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRpc2FtYmlndWF0aW9uIGFsZ29yaXRobSBpcyBjaGFuZ2VkLCB0aGlzIHNlY3Rpb24gd2lsbAorICAgICAgICAgICAgICAgIC8vIGhhdmUgdG8gYmUgdXBkYXRlZCBhcyB3ZWxsLgorICAgICAgICAgICAgICAgIHNldChEQVlfT0ZfWUVBUiwgZGF5X29mX3llYXIpOworICAgICAgICAgICAgICAgIGNsZWFyKE1PTlRIKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgREFZX09GX1lFQVI6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gUm9sbCB0aGUgZGF5IG9mIHllYXIgdXNpbmcgbWlsbGlzLiAgQ29tcHV0ZSB0aGUgbWlsbGlzIGZvcgorICAgICAgICAgICAgICAgIC8vIHRoZSBzdGFydCBvZiB0aGUgeWVhciwgYW5kIGdldCB0aGUgbGVuZ3RoIG9mIHRoZSB5ZWFyLgorICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSBhbW91bnQgKiBPTkVfREFZOyAvLyBTY2FsZSB1cCBmcm9tIGRheXMgdG8gbWlsbGlzCisgICAgICAgICAgICAgICAgbG9uZyBtaW4yID0gdGltZSAtIChpbnRlcm5hbEdldChEQVlfT0ZfWUVBUikgLSAxKSAqIE9ORV9EQVk7CisgICAgICAgICAgICAgICAgaW50IHllYXJMZW5ndGggPSBnZXRBY3R1YWxNYXhpbXVtKERBWV9PRl9ZRUFSKTsKKyAgICAgICAgICAgICAgICB0aW1lID0gKHRpbWUgKyBkZWx0YSAtIG1pbjIpICUgKHllYXJMZW5ndGgqT05FX0RBWSk7CisgICAgICAgICAgICAgICAgaWYgKHRpbWUgPCAwKSB0aW1lICs9IHllYXJMZW5ndGgqT05FX0RBWTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGltZSArIG1pbjIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFSzoKKyAgICAgICAgY2FzZSBET1dfTE9DQUw6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gUm9sbCB0aGUgZGF5IG9mIHdlZWsgdXNpbmcgbWlsbGlzLiAgQ29tcHV0ZSB0aGUgbWlsbGlzIGZvcgorICAgICAgICAgICAgICAgIC8vIHRoZSBzdGFydCBvZiB0aGUgd2VlaywgdXNpbmcgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIHNldHRpbmcuCisgICAgICAgICAgICAgICAgLy8gUmVzdHJpY3QgdGhlIG1pbGxpcyB0byBbc3RhcnQsIHN0YXJ0KzdkYXlzKS4KKyAgICAgICAgICAgICAgICBsb25nIGRlbHRhID0gYW1vdW50ICogT05FX0RBWTsgLy8gU2NhbGUgdXAgZnJvbSBkYXlzIHRvIG1pbGxpcworICAgICAgICAgICAgICAgIC8vIENvbXB1dGUgdGhlIG51bWJlciBvZiBkYXlzIGJlZm9yZSB0aGUgY3VycmVudCBkYXkgaW4gdGhpcworICAgICAgICAgICAgICAgIC8vIHdlZWsuICBUaGlzIHdpbGwgYmUgYSB2YWx1ZSAwLi42LgorICAgICAgICAgICAgICAgIGludCBsZWFkRGF5cyA9IGludGVybmFsR2V0KGZpZWxkKTsKKyAgICAgICAgICAgICAgICBsZWFkRGF5cyAtPSAoZmllbGQgPT0gREFZX09GX1dFRUspID8gZ2V0Rmlyc3REYXlPZldlZWsoKSA6IDE7CisgICAgICAgICAgICAgICAgaWYgKGxlYWREYXlzIDwgMCkgbGVhZERheXMgKz0gNzsKKyAgICAgICAgICAgICAgICBsb25nIG1pbjIgPSB0aW1lIC0gbGVhZERheXMgKiBPTkVfREFZOworICAgICAgICAgICAgICAgIHRpbWUgPSAodGltZSArIGRlbHRhIC0gbWluMikgJSBPTkVfV0VFSzsKKyAgICAgICAgICAgICAgICBpZiAodGltZSA8IDApIHRpbWUgKz0gT05FX1dFRUs7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHRpbWUgKyBtaW4yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgREFZX09GX1dFRUtfSU5fTU9OVEg6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gUm9sbCB0aGUgZGF5IG9mIHdlZWsgaW4gdGhlIG1vbnRoIHVzaW5nIG1pbGxpcy4gIERldGVybWluZQorICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaW4gdGhlIG1vbnRoLCBhbmQgdGhlbiB0aGUgbGFzdCwKKyAgICAgICAgICAgICAgICAvLyBhbmQgdGhlbiByb2xsIHdpdGhpbiB0aGF0IHJhbmdlLgorICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSBhbW91bnQgKiBPTkVfV0VFSzsgLy8gU2NhbGUgdXAgZnJvbSB3ZWVrcyB0byBtaWxsaXMKKyAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBudW1iZXIgb2Ygc2FtZSBkYXlzIG9mIHRoZSB3ZWVrIGJlZm9yZSB0aGlzIG9uZQorICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgbW9udGguCisgICAgICAgICAgICAgICAgaW50IHByZVdlZWtzID0gKGludGVybmFsR2V0KERBWV9PRl9NT05USCkgLSAxKSAvIDc7CisgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgbnVtYmVyIG9mIHNhbWUgZGF5cyBvZiB0aGUgd2VlayBhZnRlciB0aGlzIG9uZQorICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgbW9udGguCisgICAgICAgICAgICAgICAgaW50IHBvc3RXZWVrcyA9IChnZXRBY3R1YWxNYXhpbXVtKERBWV9PRl9NT05USCkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSkgLyA3OworICAgICAgICAgICAgICAgIC8vIEZyb20gdGhlc2UgY29tcHV0ZSB0aGUgbWluIGFuZCBnYXAgbWlsbGlzIGZvciByb2xsaW5nLgorICAgICAgICAgICAgICAgIGxvbmcgbWluMiA9IHRpbWUgLSBwcmVXZWVrcyAqIE9ORV9XRUVLOworICAgICAgICAgICAgICAgIGxvbmcgZ2FwMiA9IE9ORV9XRUVLICogKHByZVdlZWtzICsgcG9zdFdlZWtzICsgMSk7IC8vIE11c3QgYWRkIDEhCisgICAgICAgICAgICAgICAgLy8gUm9sbCB3aXRoaW4gdGhpcyByYW5nZQorICAgICAgICAgICAgICAgIHRpbWUgPSAodGltZSArIGRlbHRhIC0gbWluMikgJSBnYXAyOworICAgICAgICAgICAgICAgIGlmICh0aW1lIDwgMCkgdGltZSArPSBnYXAyOworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0aW1lICsgbWluMik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIEpVTElBTl9EQVk6CisgICAgICAgICAgICBzZXQoZmllbGQsIGludGVybmFsR2V0KGZpZWxkKSArIGFtb3VudCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBPdGhlciBmaWVsZHMgY2Fubm90IGJlIHJvbGxlZCBieSB0aGlzIG1ldGhvZAorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FsZW5kYXIucm9sbCgiICsgZmllbGROYW1lKGZpZWxkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhIHNpZ25lZCBhbW91bnQgdG8gYSBzcGVjaWZpZWQgZmllbGQsIHVzaW5nIHRoaXMgY2FsZW5kYXIncyBydWxlcy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdG8gYWRkIHRocmVlIGRheXMgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+YWRkKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGFkZGluZyB0byBjZXJ0YWluIGZpZWxkcywgdGhlIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgbWF5IGNvbmZsaWN0IGFuZAorICAgICAqIG5lZWQgdG8gYmUgY2hhbmdlZC4gIEZvciBleGFtcGxlLCB3aGVuIGFkZGluZyBvbmUgdG8gdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkCisgICAgICogZm9yIHRoZSBHcmVnb3JpYW4gZGF0ZSAxLzMxLzk2LCB0aGUge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzIDIvMjkvOTYgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAyLzMxLzk2LgorICAgICAqIDxwPgorICAgICAqIFRoZSA8Y29kZT5jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZCBpcyBhYmxlIHRvIGFkZCB0bworICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LiAgU3ViY2xhc3NlcyBtYXksIG9mIGNvdXJzZSwgYWRkIHN1cHBvcnQgZm9yCisgICAgICogYWRkaXRpb25hbCBmaWVsZHMgaW4gdGhlaXIgb3ZlcnJpZGVzIG9mIDxjb2RlPmFkZDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSA8dHQ+cm9sbDwvdHQ+IGFuZCA8dHQ+YWRkPC90dD4gcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAgICAgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgICAgICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgICAgICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAgICAgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPmFkZDwvY29kZT4gYXNzdW1lcyB0aGF0IHRoZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgKiBmaWVsZCBpcyBjb250aW51b3VzIGJldHdlZW4gaXRzIG1pbmltdW0gYW5kIG1heGltdW0sIHdoaWNoIGFyZSBmb3VuZCBieQorICAgICAqIGNhbGxpbmcge0BsaW5rICNnZXRBY3R1YWxNaW5pbXVtIGdldEFjdHVhbE1pbmltdW19IGFuZAorICAgICAqIHtAbGluayAjZ2V0QWN0dWFsTWF4aW11bSBnZXRBY3R1YWxNYXhpbXVtfS4KKyAgICAgKiBGb3Igc3VjaCBmaWVsZHMsIHNpbXBsZSBhcml0aG1ldGljIG9wZXJhdGlvbnMgYXJlIHN1ZmZpY2llbnQgdG8KKyAgICAgKiBwZXJmb3JtIHRoZSBhZGQuCisgICAgICogPHA+CisgICAgICogU3ViY2xhc3NlcyB0aGF0IGhhdmUgZmllbGRzIGZvciB3aGljaCB0aGlzIGFzc3VtcHRpb24gb2YgY29udGludWl0eSBicmVha3MKKyAgICAgKiBkb3duIG11c3Qgb3ZlcmlkZSA8Y29kZT5hZGQ8L2NvZGU+IHRvIGhhbmRsZSB0aG9zZSBmaWVsZHMgc3BlY2lhbGx5LgorICAgICAqIEZvciBleGFtcGxlLCBpbiB0aGUgSGVicmV3IGNhbGVuZGFyIHRoZSBtb250aCAiQWRhciBJIgorICAgICAqIG9ubHkgb2NjdXJzIGluIGxlYXAgeWVhcnM7IGluIG90aGVyIHllYXJzIHRoZSBjYWxlbmRhciBqdW1wcyBmcm9tCisgICAgICogU2hldmF0IChtb250aCAjNCkgdG8gQWRhciAobW9udGggIzYpLiAgVGhlCisgICAgICoge0BsaW5rIEhlYnJld0NhbGVuZGFyI2FkZCBIZWJyZXdDYWxlbmRhci5hZGR9IG1ldGhvZCB0YWtlcyB0aGlzIGludG8gYWNjb3VudCwKKyAgICAgKiBzbyB0aGF0IGFkZGluZyBvbmUgbW9udGgKKyAgICAgKiB0byBhIGRhdGUgaW4gU2hldmF0IGdpdmVzIHRoZSBwcm9wZXIgcmVzdWx0IChBZGFyKSBpbiBhIG5vbi1sZWFwIHllYXIuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgdG8gYWRkIHRvIHRoZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyb2xsKGludCwgaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKworICAgICAgICBpZiAoYW1vdW50ID09IDApIHsKKyAgICAgICAgICAgIHJldHVybjsgICAvLyBEbyBub3RoaW5nIQorICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgaGFuZGxlIG1vc3QgZmllbGRzIGluIHRoZSBzYW1lIHdheS4gIFRoZSBhbGdvcml0aG0gaXMgdG8gYWRkCisgICAgICAgIC8vIGEgY29tcHV0ZWQgYW1vdW50IG9mIG1pbGxpcyB0byB0aGUgY3VycmVudCBtaWxsaXMuICBUaGUgb25seQorICAgICAgICAvLyB3cmlua2xlIGlzIHdpdGggRFNUIC0tIGZvciBzb21lIGZpZWxkcywgbGlrZSB0aGUgREFZX09GX01PTlRILAorICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRoZSBIT1VSIHRvIHNoaWZ0IGR1ZSB0byBjaGFuZ2VzIGluIERTVC4gIElmIHRoZQorICAgICAgICAvLyByZXN1bHQgb2YgdGhlIGFkZCBvcGVyYXRpb24gaXMgdG8gbW92ZSBmcm9tIERTVCB0byBTdGFuZGFyZCwgb3IKKyAgICAgICAgLy8gdmljZSB2ZXJzYSwgd2UgbmVlZCB0byBhZGp1c3QgYnkgYW4gaG91ciBmb3J3YXJkIG9yIGJhY2ssCisgICAgICAgIC8vIHJlc3BlY3RpdmVseS4gIEZvciBzdWNoIGZpZWxkcyB3ZSBzZXQga2VlcEhvdXJJbnZhcmlhbnQgdG8gdHJ1ZS4KKworICAgICAgICAvLyBXZSBvbmx5IGFkanVzdCB0aGUgRFNUIGZvciBmaWVsZHMgbGFyZ2VyIHRoYW4gYW4gaG91ci4gIEZvcgorICAgICAgICAvLyBmaWVsZHMgc21hbGxlciB0aGFuIGFuIGhvdXIsIHdlIGNhbm5vdCBhZGp1c3QgZm9yIERTVCB3aXRob3V0CisgICAgICAgIC8vIGNhdXNpbmcgcHJvYmxlbXMuICBmb3IgaW5zdGFuY2UsIGlmIHlvdSBhZGQgb25lIGhvdXIgdG8gQXByaWwgNSwKKyAgICAgICAgLy8gMTk5OCwgMTowMCBBTSwgaW4gUFNULCB0aGUgdGltZSBiZWNvbWVzICIyOjAwIEFNIFBEVCIgKGFuCisgICAgICAgIC8vIGlsbGVnYWwgdmFsdWUpLCBidXQgdGhlbiB0aGUgYWRqdXN0bWVudCBzZWVzIHRoZSBjaGFuZ2UgYW5kCisgICAgICAgIC8vIGNvbXBlbnNhdGVzIGJ5IHN1YnRyYWN0aW5nIGFuIGhvdXIuICBBcyBhIHJlc3VsdCB0aGUgdGltZQorICAgICAgICAvLyBkb2Vzbid0IGFkdmFuY2UgYXQgYWxsLgorCisgICAgICAgIC8vIEZvciBzb21lIGZpZWxkcyBsYXJnZXIgdGhhbiBhIGRheSwgc3VjaCBhcyBhIE1PTlRILCB3ZSBwaW4gdGhlCisgICAgICAgIC8vIERBWV9PRl9NT05USC4gIFRoaXMgYWxsb3dzIDxNYXJjaCAzMT4uYWRkKE1PTlRILCAxKSB0byBiZQorICAgICAgICAvLyA8QXByaWwgMzA+LCByYXRoZXIgdGhhbiA8QXByaWwgMzE+ID0+IDxNYXkgMT4uCisKKyAgICAgICAgbG9uZyBkZWx0YSA9IGFtb3VudDsgLy8gZGVsdGEgaW4gbXMKKyAgICAgICAgYm9vbGVhbiBrZWVwSG91ckludmFyaWFudCA9IHRydWU7CisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIEVSQToKKyAgICAgICAgICAgIHNldChmaWVsZCwgZ2V0KGZpZWxkKSArIGFtb3VudCk7CisgICAgICAgICAgICBwaW5GaWVsZChFUkEpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgWUVBUjoKKyAgICAgICAgY2FzZSBFWFRFTkRFRF9ZRUFSOgorICAgICAgICBjYXNlIFlFQVJfV09ZOgorICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgc2V0KGZpZWxkLCBnZXQoZmllbGQpICsgYW1vdW50KTsKKyAgICAgICAgICAgIHBpbkZpZWxkKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBXRUVLX09GX1lFQVI6CisgICAgICAgIGNhc2UgV0VFS19PRl9NT05USDoKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFS19JTl9NT05USDoKKyAgICAgICAgICAgIGRlbHRhICo9IE9ORV9XRUVLOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBBTV9QTToKKyAgICAgICAgICAgIGRlbHRhICo9IDEyICogT05FX0hPVVI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERBWV9PRl9NT05USDoKKyAgICAgICAgY2FzZSBEQVlfT0ZfWUVBUjoKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFSzoKKyAgICAgICAgY2FzZSBET1dfTE9DQUw6CisgICAgICAgIGNhc2UgSlVMSUFOX0RBWToKKyAgICAgICAgICAgIGRlbHRhICo9IE9ORV9EQVk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIEhPVVJfT0ZfREFZOgorICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgICAgICBkZWx0YSAqPSBPTkVfSE9VUjsKKyAgICAgICAgICAgIGtlZXBIb3VySW52YXJpYW50ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1JTlVURToKKyAgICAgICAgICAgIGRlbHRhICo9IE9ORV9NSU5VVEU7CisgICAgICAgICAgICBrZWVwSG91ckludmFyaWFudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBTRUNPTkQ6CisgICAgICAgICAgICBkZWx0YSAqPSBPTkVfU0VDT05EOworICAgICAgICAgICAga2VlcEhvdXJJbnZhcmlhbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTUlMTElTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkRTX0lOX0RBWToKKyAgICAgICAgICAgIGtlZXBIb3VySW52YXJpYW50ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FsZW5kYXIuYWRkKCIgKyBmaWVsZE5hbWUoZmllbGQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgbm90IHN1cHBvcnRlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW4gb3JkZXIgdG8ga2VlcCB0aGUgaG91ciBpbnZhcmlhbnQgKGZvciBmaWVsZHMgd2hlcmUgdGhpcyBpcworICAgICAgICAvLyBhcHByb3ByaWF0ZSksIHJlY29yZCB0aGUgRFNUX09GRlNFVCBiZWZvcmUgYW5kIGFmdGVyIHRoZSBhZGQoKQorICAgICAgICAvLyBvcGVyYXRpb24uICBJZiBpdCBoYXMgY2hhbmdlZCwgdGhlbiBhZGp1c3QgdGhlIG1pbGxpcyB0bworICAgICAgICAvLyBjb21wZW5zYXRlLgorICAgICAgICBpbnQgZHN0ID0gMDsKKyAgICAgICAgaW50IGhvdXIgPSAwOworICAgICAgICBpZiAoa2VlcEhvdXJJbnZhcmlhbnQpIHsKKyAgICAgICAgICAgIGRzdCA9IGdldChEU1RfT0ZGU0VUKTsKKyAgICAgICAgICAgIGhvdXIgPSBpbnRlcm5hbEdldChIT1VSX09GX0RBWSk7CisgICAgICAgIH0KKworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoZ2V0VGltZUluTWlsbGlzKCkgKyBkZWx0YSk7CisKKyAgICAgICAgaWYgKGtlZXBIb3VySW52YXJpYW50KSB7CisgICAgICAgICAgICBkc3QgLT0gZ2V0KERTVF9PRkZTRVQpOworICAgICAgICAgICAgaWYgKGRzdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBkb25lIGFuIGhvdXItaW52YXJpYW50IGFkanVzdG1lbnQgYnV0IHRoZQorICAgICAgICAgICAgICAgIC8vIERTVCBvZmZzZXQgaGFzIGFsdGVyZWQuICBXZSBhZGp1c3QgbWlsbGlzIHRvIGtlZXAKKyAgICAgICAgICAgICAgICAvLyB0aGUgaG91ciBjb25zdGFudC4gIEluIGNhc2VzIHN1Y2ggYXMgbWlkbmlnaHQgYWZ0ZXIKKyAgICAgICAgICAgICAgICAvLyBhIERTVCBjaGFuZ2Ugd2hpY2ggb2NjdXJzIGF0IG1pZG5pZ2h0LCB0aGVyZSBpcyB0aGUKKyAgICAgICAgICAgICAgICAvLyBkYW5nZXIgb2YgYWRqdXN0aW5nIGludG8gYSBkaWZmZXJlbnQgZGF5LiAgVG8gYXZvaWQKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHdlIG1ha2UgdGhlIGFkanVzdG1lbnQgb25seSBpZiBpdCBhY3R1YWxseQorICAgICAgICAgICAgICAgIC8vIG1haW50YWlucyB0aGUgaG91ci4KKyAgICAgICAgICAgICAgICBsb25nIHQgPSB0aW1lOworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0aW1lICsgZHN0KTsKKyAgICAgICAgICAgICAgICBpZiAoZ2V0KEhPVVJfT0ZfREFZKSAhPSBob3VyKSB7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBjYWxlbmRhciBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgY2FsZW5kYXIgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSB0aW1lcyAoaW4gbWlsbGlzKSByZXByZXNlbnRlZCBieSB0d28KKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gb2JqZWN0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IHRoZSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gdG8gY29tcGFyZSB0byB0aGlzLgorICAgICAqIEByZXR1cm4gPGNvZGU+MDwvY29kZT4gaWYgdGhlIHRpbWUgcmVwcmVzZW50ZWQgYnkgCisgICAgICogdGhpcyA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgZXF1YWwgdG8gdGhlIHRpbWUgcmVwcmVzZW50ZWQgCisgICAgICogYnkgdGhhdCA8Y29kZT5DYWxlbmRhcjwvY29kZT4sIGEgdmFsdWUgbGVzcyB0aGFuIAorICAgICAqIDxjb2RlPjA8L2NvZGU+IGlmIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoaXMgaXMgYmVmb3JlCisgICAgICogdGhlIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhhdCwgYW5kIGEgdmFsdWUgZ3JlYXRlciB0aGFuCisgICAgICogPGNvZGU+MDwvY29kZT4gaWYgdGhlIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhpcworICAgICAqIGlzIGFmdGVyIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoYXQuCisgICAgICogQHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiB0aGF0IAorICAgICAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBudWxsLgorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSB0aW1lIG9mIHRoYXQgCisgICAgICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGNhbid0IGJlIG9idGFpbmVkIGJlY2F1c2Ugb2YgaW52YWxpZAorICAgICAqIGNhbGVuZGFyIHZhbHVlcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKENhbGVuZGFyIHRoYXQpIHsKKyAgICAgICAgbG9uZyB2ID0gZ2V0VGltZUluTWlsbGlzKCkgLSB0aGF0LmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICByZXR1cm4gdiA8IDAgPyAtMSA6ICh2ID4gMCA/IDEgOiAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgY29tcGFyYWJsZSBBUEkgYXMgYSBjb252ZW5pZW5jZSBvdmVycmlkZSBvZgorICAgICAqIHtAbGluayAjY29tcGFyZVRvKENhbGVuZGFyKX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgdGhhdCkgeworICAgICAgICByZXR1cm4gY29tcGFyZVRvKChDYWxlbmRhcil0aGF0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcmZhY2UgZm9yIGNyZWF0aW5nIGN1c3RvbiBEYXRlRm9ybWF0cyBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIENhbGVuZGFycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4KKyAgICAgKiBTdWJjbGFzc2VzIHdpc2hpbmcgdG8gc3BlY2lhbGl6ZSB0aGlzIGJlaGF2aW9yIHNob3VsZCBvdmVycmlkZQorICAgICAqIDxjb2RlPmhhbmRsZUdldERhdGVGb3JtYXQoKTwvY29kZT4KKyAgICAgKiBAc2VlICNoYW5kbGVHZXREYXRlRm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVGb3JtYXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gZm9ybWF0SGVscGVyKHRoaXMsIFVMb2NhbGUuZm9yTG9jYWxlKGxvYyksIGRhdGVTdHlsZSwgdGltZVN0eWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyLgorICAgICAqIFN1YmNsYXNzZXMgd2lzaGluZyB0byBzcGVjaWFsaXplIHRoaXMgYmVoYXZpb3Igc2hvdWxkIG92ZXJyaWRlCisgICAgICogPGNvZGU+aGFuZGxlR2V0RGF0ZUZvcm1hdCgpPC9jb2RlPgorICAgICAqIEBzZWUgI2hhbmRsZUdldERhdGVGb3JtYXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiBmb3JtYXRIZWxwZXIodGhpcywgbG9jLCBkYXRlU3R5bGUsIHRpbWVTdHlsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4KKyAgICAgKiBUaGlzIGlzIGEgZnJhbWV3b3JrIG1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4gIFRoaXMgbWV0aG9kCisgICAgICogaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSBjYWxlbmRhci1zcGVjaWZpYyBEYXRlRm9ybWF0IGFuZAorICAgICAqIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdHMgYXMgbmVlZGVkLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuLCBzcGVjaWZpYyB0byB0aGUgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4KKyAgICAgKiBzdWJjbGFzcworICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIHN5bWJvbHMgc2hvdWxkIGJlIGRyYXduCisgICAgICogQHJldHVybiBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0ZUZvcm1hdCBoYW5kbGVHZXREYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVHZXREYXRlRm9ybWF0KHBhdHRlcm4sIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogVGhpcyBpcyBhIGZyYW1ld29yayBtZXRob2QgZm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuICBUaGlzIG1ldGhvZAorICAgICAqIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgY2FsZW5kYXItc3BlY2lmaWMgRGF0ZUZvcm1hdCBhbmQKKyAgICAgKiBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3RzIGFzIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiwgc3BlY2lmaWMgdG8gdGhlIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+CisgICAgICogc3ViY2xhc3MKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBzeW1ib2xzIHNob3VsZCBiZSBkcmF3bgorICAgICAqIEByZXR1cm4gYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0ZUZvcm1hdCBoYW5kbGVHZXREYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKHRoaXMsIGxvY2FsZSk7CisgICAgICAgIHJldHVybiBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBzeW1ib2xzLCBsb2NhbGUpOworICAgIH0KKworICAgIHN0YXRpYyBwcml2YXRlIERhdGVGb3JtYXQgZm9ybWF0SGVscGVyKENhbGVuZGFyIGNhbCwgVUxvY2FsZSBsb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUpCisgICAgeworICAgICAgICAvLyBTZWUgaWYgdGhlcmUgYXJlIGFueSBjdXN0b20gcmVzb3VyY2VzIGZvciB0aGlzIGNhbGVuZGFyCisgICAgICAgIC8vIElmIG5vdCwganVzdCB1c2UgdGhlIGRlZmF1bHQgRGF0ZUZvcm1hdAorICAgICAgICBEYXRlRm9ybWF0IHJlc3VsdCA9IG51bGw7CisgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENhbGVuZGFyRGF0YSBjYWxEYXRhID0gbmV3IENhbGVuZGFyRGF0YShsb2MsIGNhbC5nZXRUeXBlKCkpOworICAgICAgICAgICAgICAgU3RyaW5nW10gcGF0dGVybnMgPSBjYWxEYXRhLmdldCgiRGF0ZVRpbWVQYXR0ZXJucyIpLmdldFN0cmluZ0FycmF5KCk7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKCh0aW1lU3R5bGUgPj0gMCkgJiYgKGRhdGVTdHlsZSA+PSAwKSkgeworICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBkYXRlVGltZUFyZ3MgPSB7IHBhdHRlcm5zW3RpbWVTdHlsZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybnNbZGF0ZVN0eWxlICsgNF0gfTsKKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm5zWzhdLCBkYXRlVGltZUFyZ3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0aW1lU3R5bGUgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybnNbdGltZVN0eWxlXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0ZVN0eWxlID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm5zW2RhdGVTdHlsZSArIDRdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTm8gZGF0ZSBvciB0aW1lIHN0eWxlIHNwZWNpZmllZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjYWwuaGFuZGxlR2V0RGF0ZUZvcm1hdChwYXR0ZXJuLCBsb2MpOworICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyAhISEgbmVlZCBkYXRlZm9ybWF0IHN1YmNsYXNzIGFwcHJvcHJpYXRlIHRvIGNhbGVuZGFyIHR5cGUgaGVyZSEKKyAgICAgICAgICAgICAgICAvLyBObyBjdXN0b20gcGF0dGVybnMKKyAgICAgICAgICAgICAgICAvLyAhISEgbm90ZTogcG9zc2libGUgY2lyY3VsYXJpdHkgaGVyZSwgaWYgZ2V0RGF0ZVRpbWVJbnN0YW5jZSBjYWxscyB1cyBiZWNhdXNlIG9mCisgICAgICAgICAgICAgICAgLy8gbG9jIHNwZWNpZnlpbmcgYSBjYWxlbmRhci4KKyAgICAgICAgICAgICAgICByZXN1bHQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvYyk7CisKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGNhbCwgbG9jKTsKKyAgICAgICAgICAgICAgICAoKFNpbXBsZURhdGVGb3JtYXQpIHJlc3VsdCkuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoc3ltYm9scyk7IC8vIGFsaXUKKyAgICAgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHJvdGVjdGVkIHV0aWxpdHkgbWV0aG9kcyBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMuICBUaGVzZSBhcmUgdmVyeSBoYW5keQorICAgIC8vIGZvciBpbXBsZW1lbnRpbmcgYWRkLCByb2xsLCBhbmQgY29tcHV0ZUZpZWxkcy4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFkanVzdCB0aGUgc3BlY2lmaWVkIGZpZWxkIHNvIHRoYXQgaXQgaXMgd2l0aGluCisgICAgICogdGhlIGFsbG93YWJsZSByYW5nZSBmb3IgdGhlIGRhdGUgdG8gd2hpY2ggdGhpcyBjYWxlbmRhciBpcyBzZXQuCisgICAgICogRm9yIGV4YW1wbGUsIGluIGEgR3JlZ29yaWFuIGNhbGVuZGFyIHBpbm5pbmcgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0KKyAgICAgKiBmaWVsZCBmb3IgYSBjYWxlbmRhciBzZXQgdG8gQXByaWwgMzEgd291bGQgY2F1c2UgaXQgdG8gYmUgc2V0CisgICAgICogdG8gQXByaWwgMzAuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPgorICAgICAqIDxicj4KKyAgICAgKiBUaGlzIHV0aWxpdHkgbWV0aG9kIGlzIGludGVuZGVkIGZvciB1c2UgYnkgc3ViY2xhc3NlcyB0aGF0IG5lZWQgdG8gaW1wbGVtZW50CisgICAgICogdGhlaXIgb3duIG92ZXJyaWRlcyBvZiB7QGxpbmsgI3JvbGwgcm9sbH0gYW5kIHtAbGluayAjYWRkIGFkZH0uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+CisgICAgICogPGNvZGU+cGluRmllbGQ8L2NvZGU+IGlzIGltcGxlbWVudGVkIGluIHRlcm1zIG9mCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNaW5pbXVtIGdldEFjdHVhbE1pbmltdW19CisgICAgICogYW5kIHtAbGluayAjZ2V0QWN0dWFsTWF4aW11bSBnZXRBY3R1YWxNYXhpbXVtfS4gIElmIGVpdGhlciBvZiB0aG9zZSBtZXRob2RzIHVzZXMKKyAgICAgKiBhIHNsb3csIGl0ZXJhdGl2ZSBhbGdvcml0aG0gZm9yIGEgcGFydGljdWxhciBmaWVsZCwgaXQgd291bGQgYmUKKyAgICAgKiB1bndpc2UgdG8gYXR0ZW1wdCB0byBjYWxsIDxjb2RlPnBpbkZpZWxkPC9jb2RlPiBmb3IgdGhhdCBmaWVsZC4gIElmIHlvdQorICAgICAqIHJlYWxseSBkbyBuZWVkIHRvIGRvIHNvLCB5b3Ugc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGRvCisgICAgICogc29tZXRoaW5nIG1vcmUgZWZmaWNpZW50IGZvciB0aGF0IGZpZWxkLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCBUaGUgY2FsZW5kYXIgZmllbGQgd2hvc2UgdmFsdWUgc2hvdWxkIGJlIHBpbm5lZC4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldEFjdHVhbE1pbmltdW0KKyAgICAgKiBAc2VlICNnZXRBY3R1YWxNYXhpbXVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcGluRmllbGQoaW50IGZpZWxkKSB7CisgICAgICAgIGludCBtYXggPSBnZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgaW50IG1pbiA9IGdldEFjdHVhbE1pbmltdW0oZmllbGQpOworCisgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID4gbWF4KSB7CisgICAgICAgICAgICBzZXQoZmllbGQsIG1heCk7CisgICAgICAgIH0gZWxzZSBpZiAoZmllbGRzW2ZpZWxkXSA8IG1pbikgeworICAgICAgICAgICAgc2V0KGZpZWxkLCBtaW4pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB3ZWVrIG51bWJlciBvZiBhIGRheSwgd2l0aGluIGEgcGVyaW9kLiBUaGlzIG1heSBiZSB0aGUgd2VlayBudW1iZXIgaW4KKyAgICAgKiBhIHllYXIgb3IgdGhlIHdlZWsgbnVtYmVyIGluIGEgbW9udGguIFVzdWFsbHkgdGhpcyB3aWxsIGJlIGEgdmFsdWUgPj0gMSwgYnV0IGlmCisgICAgICogc29tZSBpbml0aWFsIGRheXMgb2YgdGhlIHBlcmlvZCBhcmUgZXhjbHVkZWQgZnJvbSB3ZWVrIDEsIGJlY2F1c2UKKyAgICAgKiB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30gaXMgPiAxLCB0aGVuCisgICAgICogdGhlIHdlZWsgbnVtYmVyIHdpbGwgYmUgemVybyBmb3IgdGhvc2UKKyAgICAgKiBpbml0aWFsIGRheXMuIFRoaXMgbWV0aG9kIHJlcXVpcmVzIHRoZSBkYXkgbnVtYmVyIGFuZCBkYXkgb2Ygd2VlayBmb3Igc29tZQorICAgICAqIGtub3duIGRhdGUgaW4gdGhlIHBlcmlvZCBpbiBvcmRlciB0byBkZXRlcm1pbmUgdGhlIGRheSBvZiB3ZWVrCisgICAgICogb24gdGhlIGRlc2lyZWQgZGF5LgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj4KKyAgICAgKiA8YnI+CisgICAgICogVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBzdWJjbGFzc2VzIGluIGltcGxlbWVudGluZyB0aGVpcgorICAgICAqIHtAbGluayAjY29tcHV0ZVRpbWUgY29tcHV0ZVRpbWV9IGFuZC9vciB7QGxpbmsgI2NvbXB1dGVGaWVsZHMgY29tcHV0ZUZpZWxkc30gbWV0aG9kcy4KKyAgICAgKiBJdCBpcyBvZnRlbiB1c2VmdWwgaW4ge0BsaW5rICNnZXRBY3R1YWxNaW5pbXVtIGdldEFjdHVhbE1pbmltdW19IGFuZAorICAgICAqIHtAbGluayAjZ2V0QWN0dWFsTWF4aW11bSBnZXRBY3R1YWxNYXhpbXVtfSBhcyB3ZWxsLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgdmFyaWFudCBpcyBoYW5keSBmb3IgY29tcHV0aW5nIHRoZSB3ZWVrIG51bWJlciBvZiBzb21lIG90aGVyCisgICAgICogZGF5IG9mIGEgcGVyaW9kIChvZnRlbiB0aGUgZmlyc3Qgb3IgbGFzdCBkYXkgb2YgdGhlIHBlcmlvZCkgd2hlbiBpdHMgZGF5CisgICAgICogb2YgdGhlIHdlZWsgaXMgbm90IGtub3duIGJ1dCB0aGUgZGF5IG51bWJlciBhbmQgZGF5IG9mIHdlZWsgZm9yIHNvbWUgb3RoZXIKKyAgICAgKiBkYXkgaW4gdGhlIHBlcmlvZCAoZS5nLiB0aGUgY3VycmVudCBkYXRlKSA8ZW0+aXM8L2VtPiBrbm93bi4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZGVzaXJlZERheSAgICBUaGUge0BsaW5rICNEQVlfT0ZfWUVBUiBEQVlfT0ZfWUVBUn0gb3IKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSB3aG9zZSB3ZWVrIG51bWJlciBpcyBkZXNpcmVkLgorICAgICAqICAgICAgICAgICAgICBTaG91bGQgYmUgMSBmb3IgdGhlIGZpcnN0IGRheSBvZiB0aGUgcGVyaW9kLgorICAgICAqCisgICAgICogQHBhcmFtIGRheU9mUGVyaW9kICAgVGhlIHtAbGluayAjREFZX09GX1lFQVIgREFZX09GX1lFQVJ9CisgICAgICogICAgICAgICAgICAgIG9yIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZm9yIGEgZGF5IGluIHRoZSBwZXJpb2Qgd2hvc2UKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rICNEQVlfT0ZfV0VFSyBEQVlfT0ZfV0VFS30gaXMgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAqICAgICAgICAgICAgICA8Y29kZT5kYXlPZldlZWs8L2NvZGU+IHBhcmFtZXRlci4KKyAgICAgKiAgICAgICAgICAgICAgU2hvdWxkIGJlIDEgZm9yIGZpcnN0IGRheSBvZiBwZXJpb2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICBUaGUge0BsaW5rICNEQVlfT0ZfV0VFSyBEQVlfT0ZfV0VFS30gZm9yIHRoZSBkYXkKKyAgICAgKiAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyB0byB0aGUgPGNvZGU+ZGF5T2ZQZXJpb2Q8L2NvZGU+IHBhcmFtZXRlci4KKyAgICAgKiAgICAgICAgICAgICAgMS1iYXNlZCB3aXRoIDE9U3VuZGF5LgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSB3ZWVrIG51bWJlciAob25lLWJhc2VkKSwgb3IgemVybyBpZiB0aGUgZGF5IGZhbGxzIGJlZm9yZQorICAgICAqICAgICAgICAgICAgICB0aGUgZmlyc3Qgd2VlayBiZWNhdXNlCisgICAgICogICAgICAgICAgICAgIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfQorICAgICAqICAgICAgICAgICAgICBpcyBtb3JlIHRoYW4gb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgd2Vla051bWJlcihpbnQgZGVzaXJlZERheSwgaW50IGRheU9mUGVyaW9kLCBpbnQgZGF5T2ZXZWVrKQorICAgIHsKKyAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgcGVyaW9kCisgICAgICAgIC8vIGluIHF1ZXN0aW9uIChlaXRoZXIgYSB5ZWFyIG9yIGEgbW9udGgpLiAgWmVybyByZXByZXNlbnRzIHRoZQorICAgICAgICAvLyBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgb24gdGhpcyBjYWxlbmRhci4KKyAgICAgICAgaW50IHBlcmlvZFN0YXJ0RGF5T2ZXZWVrID0gKGRheU9mV2VlayAtIGdldEZpcnN0RGF5T2ZXZWVrKCkgLSBkYXlPZlBlcmlvZCArIDEpICUgNzsKKyAgICAgICAgaWYgKHBlcmlvZFN0YXJ0RGF5T2ZXZWVrIDwgMCkgcGVyaW9kU3RhcnREYXlPZldlZWsgKz0gNzsKKworICAgICAgICAvLyBDb21wdXRlIHRoZSB3ZWVrIG51bWJlci4gIEluaXRpYWxseSwgaWdub3JlIHRoZSBmaXJzdCB3ZWVrLCB3aGljaAorICAgICAgICAvLyBtYXkgYmUgZnJhY3Rpb25hbCAob3IgbWF5IG5vdCBiZSkuICBXZSBhZGQgcGVyaW9kU3RhcnREYXlPZldlZWsgaW4KKyAgICAgICAgLy8gb3JkZXIgdG8gZmlsbCBvdXQgdGhlIGZpcnN0IHdlZWssIGlmIGl0IGlzIGZyYWN0aW9uYWwuCisgICAgICAgIGludCB3ZWVrTm8gPSAoZGVzaXJlZERheSArIHBlcmlvZFN0YXJ0RGF5T2ZXZWVrIC0gMSkvNzsKKworICAgICAgICAvLyBJZiB0aGUgZmlyc3Qgd2VlayBpcyBsb25nIGVub3VnaCwgdGhlbiBjb3VudCBpdC4gIElmCisgICAgICAgIC8vIHRoZSBtaW5pbWFsIGRheXMgaW4gdGhlIGZpcnN0IHdlZWsgaXMgb25lLCBvciBpZiB0aGUgcGVyaW9kIHN0YXJ0CisgICAgICAgIC8vIGlzIHplcm8sIHdlIGFsd2F5cyBpbmNyZW1lbnQgd2Vla05vLgorICAgICAgICBpZiAoKDcgLSBwZXJpb2RTdGFydERheU9mV2VlaykgPj0gZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKSArK3dlZWtObzsKKworICAgICAgICByZXR1cm4gd2Vla05vOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgd2VlayBudW1iZXIgb2YgYSBkYXksIHdpdGhpbiBhIHBlcmlvZC4gVGhpcyBtYXkgYmUgdGhlIHdlZWsgbnVtYmVyIGluCisgICAgICogYSB5ZWFyLCBvciB0aGUgd2VlayBudW1iZXIgaW4gYSBtb250aC4gVXN1YWxseSB0aGlzIHdpbGwgYmUgYSB2YWx1ZSA+PSAxLCBidXQgaWYKKyAgICAgKiBzb21lIGluaXRpYWwgZGF5cyBvZiB0aGUgcGVyaW9kIGFyZSBleGNsdWRlZCBmcm9tIHdlZWsgMSwgYmVjYXVzZQorICAgICAqIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfSBpcyA+IDEsCisgICAgICogdGhlbiB0aGUgd2VlayBudW1iZXIgd2lsbCBiZSB6ZXJvIGZvciB0aG9zZQorICAgICAqIGluaXRpYWwgZGF5cy4gVGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGRheSBvZiB3ZWVrIGZvciB0aGUgZ2l2ZW4gZGF0ZSBpbiBvcmRlciB0bworICAgICAqIGRldGVybWluZSB0aGUgcmVzdWx0LgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj4KKyAgICAgKiA8YnI+CisgICAgICogVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBzdWJjbGFzc2VzIGluIGltcGxlbWVudGluZyB0aGVpcgorICAgICAqIHtAbGluayAjY29tcHV0ZVRpbWUgY29tcHV0ZVRpbWV9IGFuZC9vciB7QGxpbmsgI2NvbXB1dGVGaWVsZHMgY29tcHV0ZUZpZWxkc30gbWV0aG9kcy4KKyAgICAgKiBJdCBpcyBvZnRlbiB1c2VmdWwgaW4ge0BsaW5rICNnZXRBY3R1YWxNaW5pbXVtIGdldEFjdHVhbE1pbmltdW19IGFuZAorICAgICAqIHtAbGluayAjZ2V0QWN0dWFsTWF4aW11bSBnZXRBY3R1YWxNYXhpbXVtfSBhcyB3ZWxsLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBkYXlPZlBlcmlvZCAgIFRoZSB7QGxpbmsgI0RBWV9PRl9ZRUFSIERBWV9PRl9ZRUFSfSBvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gd2hvc2Ugd2VlayBudW1iZXIgaXMgZGVzaXJlZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBTaG91bGQgYmUgMSBmb3IgdGhlIGZpcnN0IGRheSBvZiB0aGUgcGVyaW9kLgorICAgICAqCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgICAgVGhlIHtAbGluayAjREFZX09GX1dFRUsgREFZX09GX1dFRUt9IGZvciB0aGUgZGF5CisgICAgICogICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyB0byB0aGUgPGNvZGU+ZGF5T2ZQZXJpb2Q8L2NvZGU+IHBhcmFtZXRlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAxLWJhc2VkIHdpdGggMT1TdW5kYXkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIHdlZWsgbnVtYmVyIChvbmUtYmFzZWQpLCBvciB6ZXJvIGlmIHRoZSBkYXkgZmFsbHMgYmVmb3JlCisgICAgICogICAgICAgICAgICAgIHRoZSBmaXJzdCB3ZWVrIGJlY2F1c2UKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWt9CisgICAgICogICAgICAgICAgICAgIGlzIG1vcmUgdGhhbiBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCB3ZWVrTnVtYmVyKGludCBkYXlPZlBlcmlvZCwgaW50IGRheU9mV2VlaykKKyAgICB7CisgICAgICAgIHJldHVybiB3ZWVrTnVtYmVyKGRheU9mUGVyaW9kLCBkYXlPZlBlcmlvZCwgZGF5T2ZXZWVrKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFtORVddCisgICAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGdpdmVuIHRpbWUgYW5kIHRoZSB0aW1lIHRoaXMKKyAgICAgKiBjYWxlbmRhciBvYmplY3QgaXMgc2V0IHRvLiAgSWYgdGhpcyBjYWxlbmRhciBpcyBzZXQKKyAgICAgKiA8ZW0+YmVmb3JlPC9lbT4gdGhlIGdpdmVuIHRpbWUsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlCisgICAgICogcG9zaXRpdmUuICBJZiB0aGlzIGNhbGVuZGFyIGlzIHNldCA8ZW0+YWZ0ZXI8L2VtPiB0aGUgZ2l2ZW4KKyAgICAgKiB0aW1lLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBuZWdhdGl2ZS4gIFRoZQorICAgICAqIDxjb2RlPmZpZWxkPC9jb2RlPiBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB1bml0cyBvZiB0aGUgcmV0dXJuCisgICAgICogdmFsdWUuICBGb3IgZXhhbXBsZSwgaWYgPGNvZGU+ZmllbGREaWZmZXJlbmNlKHdoZW4sCisgICAgICogQ2FsZW5kYXIuTU9OVEgpPC9jb2RlPiByZXR1cm5zIDMsIHRoZW4gdGhpcyBjYWxlbmRhciBpcyBzZXQgdG8KKyAgICAgKiAzIG1vbnRocyBiZWZvcmUgPGNvZGU+d2hlbjwvY29kZT4sIGFuZCBwb3NzaWJseSBzb21lIGFkZGl0aW9uYWwKKyAgICAgKiB0aW1lIGxlc3MgdGhhbiBvbmUgbW9udGguCisgICAgICoKKyAgICAgKiA8cD5BcyBhIHNpZGUgZWZmZWN0IG9mIHRoaXMgY2FsbCwgdGhpcyBjYWxlbmRhciBpcyBhZHZhbmNlZAorICAgICAqIHRvd2FyZCA8Y29kZT53aGVuPC9jb2RlPiBieSB0aGUgZ2l2ZW4gYW1vdW50LiAgVGhhdCBpcywgY2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgY2FsbGluZyA8Y29kZT5hZGQoZmllbGQsCisgICAgICogbik8L2NvZGU+LCB3aGVyZSA8Y29kZT5uPC9jb2RlPiBpcyB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAqCisgICAgICogPHA+VXNhZ2U6IFRvIHVzZSB0aGlzIG1ldGhvZCwgY2FsbCBpdCBmaXJzdCB3aXRoIHRoZSBsYXJnZXN0CisgICAgICogZmllbGQgb2YgaW50ZXJlc3QsIHRoZW4gd2l0aCBwcm9ncmVzc2l2ZWx5IHNtYWxsZXIgZmllbGRzLiAgRm9yCisgICAgICogZXhhbXBsZToKKyAgICAgKgorICAgICAqIDxwcmU+CisgICAgICogaW50IHkgPSBjYWwuZmllbGREaWZmZXJlbmNlKHdoZW4sIENhbGVuZGFyLllFQVIpOworICAgICAqIGludCBtID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5NT05USCk7CisgICAgICogaW50IGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKHdoZW4sIENhbGVuZGFyLkRBVEUpOzwvcHJlPgorICAgICAqCisgICAgICogY29tcHV0ZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiA8Y29kZT5jYWw8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPndoZW48L2NvZGU+IGluIHllYXJzLCBtb250aHMsIGFuZCBkYXlzLgorICAgICAqCisgICAgICogPHA+Tm90ZTogPGNvZGU+ZmllbGREaWZmZXJlbmNlKCk8L2NvZGU+IGlzCisgICAgICogPGVtPmFzeW1tZXRyaWNhbDwvZW0+LiAgVGhhdCBpcywgaW4gdGhlIGZvbGxvd2luZyBjb2RlOgorICAgICAqCisgICAgICogPHByZT4KKyAgICAgKiBjYWwuc2V0VGltZShkYXRlMSk7CisgICAgICogaW50IG0xID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkMSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLkRBVEUpOworICAgICAqIGNhbC5zZXRUaW1lKGRhdGUyKTsKKyAgICAgKiBpbnQgbTIgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUxLCBDYWxlbmRhci5NT05USCk7CisgICAgICogaW50IGQyID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMSwgQ2FsZW5kYXIuREFURSk7PC9wcmU+CisgICAgICoKKyAgICAgKiBvbmUgbWlnaHQgZXhwZWN0IHRoYXQgPGNvZGU+bTEgPT0gLW0yICYmIGQxID09IC1kMjwvY29kZT4uCisgICAgICogSG93ZXZlciwgdGhpcyBpcyBub3QgZ2VuZXJhbGx5IHRoZSBjYXNlLCBiZWNhdXNlIG9mCisgICAgICogaXJyZWd1bGFyaXRpZXMgaW4gdGhlIHVuZGVybHlpbmcgY2FsZW5kYXIgc3lzdGVtIChlLmcuLCB0aGUKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIgaGFzIGEgdmFyeWluZyBudW1iZXIgb2YgZGF5cyBwZXIgbW9udGgpLgorICAgICAqCisgICAgICogQHBhcmFtIHdoZW4gdGhlIGRhdGUgdG8gY29tcGFyZSB0aGlzIGNhbGVuZGFyJ3MgdGltZSB0bworICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgaW4gd2hpY2ggdG8gY29tcHV0ZSB0aGUgcmVzdWx0CisgICAgICogQHJldHVybiB0aGUgZGlmZmVyZW5jZSwgZWl0aGVyIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLCBiZXR3ZWVuCisgICAgICogdGhpcyBjYWxlbmRhcidzIHRpbWUgYW5kIDxjb2RlPndoZW48L2NvZGU+LCBpbiB0ZXJtcyBvZgorICAgICAqIDxjb2RlPmZpZWxkPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpZWxkRGlmZmVyZW5jZShEYXRlIHdoZW4sIGludCBmaWVsZCkgeworICAgICAgICBpbnQgbWluID0gMDsKKyAgICAgICAgbG9uZyBzdGFydE1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIGxvbmcgdGFyZ2V0TXMgPSB3aGVuLmdldFRpbWUoKTsKKyAgICAgICAgLy8gQWx3YXlzIGFkZCBmcm9tIHRoZSBzdGFydCBtaWxsaXMuICBUaGlzIGFjY29tb2RhdGVzCisgICAgICAgIC8vIG9wZXJhdGlvbnMgbGlrZSBhZGRpbmcgeWVhcnMgZnJvbSBGZWJydWFyeSAyOSwgMjAwMCB1cCB0bworICAgICAgICAvLyBGZWJydWFyeSAyOSwgMjAwNC4gIElmIDEsIDEsIDEsIDEgaXMgYWRkZWQgdG8gdGhlIHllYXIKKyAgICAgICAgLy8gZmllbGQsIHRoZSBET00gZ2V0cyBwaW5uZWQgdG8gMjggYW5kIHN0YXlzIHRoZXJlLCBnaXZpbmcgYW4KKyAgICAgICAgLy8gaW5jb3JyZWN0IERPTSBkaWZmZXJlbmNlIG9mIDEuICBXZSBoYXZlIHRvIGFkZCAxLCByZXNldCwgMiwKKyAgICAgICAgLy8gcmVzZXQsIDMsIHJlc2V0LCA0LgorICAgICAgICBpZiAoc3RhcnRNcyA8IHRhcmdldE1zKSB7CisgICAgICAgICAgICBpbnQgbWF4ID0gMTsKKyAgICAgICAgICAgIC8vIEZpbmQgYSB2YWx1ZSB0aGF0IGlzIHRvbyBsYXJnZQorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIG1heCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF4OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXggPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWVsZCBkaWZmZXJlbmNlIHRvbyBsYXJnZSB0byBmaXQgaW50byBpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBEbyBhIGJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgdCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCB0KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSB0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1pbiA9IHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0TXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyB3b3JrcywgYW5kIG1ha2VzIHRoZSBjb2RlIHNtYWxsZXIsIGJ1dCBjb3N0cworICAgICAgICAgICAgICAgIC8vIGFuIGV4dHJhIG9iamVjdCBjcmVhdGlvbiBhbmQgYW4gZXh0cmEgY291cGxlIGN5Y2xlcworICAgICAgICAgICAgICAgIC8vIG9mIGNhbGVuZGFyIGNvbXB1dGF0aW9uLgorICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0YXJnZXRNcyk7CisgICAgICAgICAgICAgICAgbWluID0gLWZpZWxkRGlmZmVyZW5jZShuZXcgRGF0ZShzdGFydE1zKSwgZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG1heCA9IC0xOworICAgICAgICAgICAgLy8gRmluZCBhIHZhbHVlIHRoYXQgaXMgdG9vIHNtYWxsCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgbWF4KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtcyA8IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1heCA8PD0gMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1heCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWVsZCBkaWZmZXJlbmNlIHRvbyBsYXJnZSB0byBmaXQgaW50byBpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBEbyBhIGJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIHdoaWxlICgobWluIC0gbWF4KSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgdCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCB0KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSB0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1pbiA9IHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFNldCBjYWxlbmRhciB0byBlbmQgcG9pbnQKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICBhZGQoZmllbGQsIG1pbik7CisgICAgICAgIHJldHVybiBtaW47CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIHRpbWUgem9uZSB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUaW1lWm9uZShUaW1lWm9uZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHpvbmUgPSB2YWx1ZTsKKyAgICAgICAgLyogUmVjb21wdXRlIHRoZSBmaWVsZHMgZnJvbSB0aGUgdGltZSB1c2luZyB0aGUgbmV3IHpvbmUuICBUaGlzIGFsc28KKyAgICAgICAgICogd29ya3MgaWYgaXNUaW1lU2V0IGlzIGZhbHNlIChhZnRlciBhIGNhbGwgdG8gc2V0KCkpLiAgSW4gdGhhdCBjYXNlCisgICAgICAgICAqIHRoZSB0aW1lIHdpbGwgYmUgY29tcHV0ZWQgZnJvbSB0aGUgZmllbGRzIHVzaW5nIHRoZSBuZXcgem9uZSwgdGhlbgorICAgICAgICAgKiB0aGUgZmllbGRzIHdpbGwgZ2V0IHJlY29tcHV0ZWQgZnJvbSB0aGF0LiAgQ29uc2lkZXIgdGhlIHNlcXVlbmNlIG9mCisgICAgICAgICAqIGNhbGxzOiBjYWwuc2V0VGltZVpvbmUoRVNUKTsgY2FsLnNldChIT1VSLCAxKTsgY2FsLnNldFRpbWVab25lKFBTVCkuCisgICAgICAgICAqIElzIGNhbCBzZXQgdG8gMSBvJ2Nsb2NrIEVTVCBvciAxIG8nY2xvY2sgUFNUPyAgQW5zd2VyOiBQU1QuICBNb3JlCisgICAgICAgICAqIGdlbmVyYWxseSwgYSBjYWxsIHRvIHNldFRpbWVab25lKCkgYWZmZWN0cyBjYWxscyB0byBzZXQoKSBCRUZPUkUgQU5ECisgICAgICAgICAqIEFGVEVSIGl0IHVwIHRvIHRoZSBuZXh0IGNhbGwgdG8gY29tcGxldGUoKS4KKyAgICAgICAgICovCisgICAgICAgIGFyZUZpZWxkc1NldCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lIHpvbmUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSBnZXRUaW1lWm9uZSgpCisgICAgeworICAgICAgICByZXR1cm4gem9uZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IGRhdGUvdGltZSBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBsZW5pZW50LiAgV2l0aAorICAgICAqIGxlbmllbnQgaW50ZXJwcmV0YXRpb24sIGEgZGF0ZSBzdWNoIGFzICJGZWJydWFyeSA5NDIsIDE5OTYiIHdpbGwgYmUKKyAgICAgKiB0cmVhdGVkIGFzIGJlaW5nIGVxdWl2YWxlbnQgdG8gdGhlIDk0MXN0IGRheSBhZnRlciBGZWJydWFyeSAxLCAxOTk2LgorICAgICAqIFdpdGggc3RyaWN0IGludGVycHJldGF0aW9uLCBzdWNoIGRhdGVzIHdpbGwgY2F1c2UgYW4gZXhjZXB0aW9uIHRvIGJlCisgICAgICogdGhyb3duLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I3NldExlbmllbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMZW5pZW50KGJvb2xlYW4gbGVuaWVudCkKKyAgICB7CisgICAgICAgIHRoaXMubGVuaWVudCA9IGxlbmllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVsbCB3aGV0aGVyIGRhdGUvdGltZSBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBsZW5pZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVuaWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gbGVuaWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoYXQgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBpczsgZS5nLiwgU3VuZGF5IGluIFVTLAorICAgICAqIE1vbmRheSBpbiBGcmFuY2UuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBnaXZlbiBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Rmlyc3REYXlPZldlZWsoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGZpcnN0RGF5T2ZXZWVrICE9IHZhbHVlKSB7CisgICAgICAgICAgICBpZiAodmFsdWUgPCBTVU5EQVkgfHwgdmFsdWUgPiBTQVRVUkRBWSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZGF5IG9mIHdlZWsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrID0gdmFsdWU7CisgICAgICAgICAgICBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgd2hhdCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGlzOyBlLmcuLCBTdW5kYXkgaW4gVVMsCisgICAgICogTW9uZGF5IGluIEZyYW5jZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdERheU9mV2VlaygpCisgICAgeworICAgICAgICByZXR1cm4gZmlyc3REYXlPZldlZWs7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGF0IHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIgYXJlLgorICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgZmlyc3Qgd2VlayBpcyBkZWZpbmVkIGFzIG9uZSB0aGF0IGNvbnRhaW5zIHRoZSBmaXJzdAorICAgICAqIGRheSBvZiB0aGUgZmlyc3QgbW9udGggb2YgYSB5ZWFyLCBjYWxsIHRoZSBtZXRob2Qgd2l0aCB2YWx1ZSAxLiBJZiBpdAorICAgICAqIG11c3QgYmUgYSBmdWxsIHdlZWssIHVzZSB2YWx1ZSA3LgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gbWluaW1hbCBkYXlzIHJlcXVpcmVkIGluIHRoZSBmaXJzdCB3ZWVrCisgICAgICogb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhpbnQgdmFsdWUpCisgICAgeworICAgICAgICAvLyBWYWx1ZXMgbGVzcyB0aGFuIDEgaGF2ZSB0aGUgc2FtZSBlZmZlY3QgYXMgMTsgdmFsdWVzIGdyZWF0ZXIKKyAgICAgICAgLy8gdGhhbiA3IGhhdmUgdGhlIHNhbWUgZWZmZWN0IGFzIDcuIEhvd2V2ZXIsIHdlIG5vcm1hbGl6ZSB2YWx1ZXMKKyAgICAgICAgLy8gc28gb3BlcmF0b3I9PSBhbmQgc28gZm9ydGggd29yay4KKyAgICAgICAgaWYgKHZhbHVlIDwgMSkgeworICAgICAgICAgICAgdmFsdWUgPSAxOworICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID4gNykgeworICAgICAgICAgICAgdmFsdWUgPSA3OworICAgICAgICB9CisgICAgICAgIGlmIChtaW5pbWFsRGF5c0luRmlyc3RXZWVrICE9IHZhbHVlKSB7CisgICAgICAgICAgICBtaW5pbWFsRGF5c0luRmlyc3RXZWVrID0gdmFsdWU7CisgICAgICAgICAgICBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgd2hhdCB0aGUgbWluaW1hbCBkYXlzIHJlcXVpcmVkIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyIGFyZTsKKyAgICAgKiBlLmcuLCBpZiB0aGUgZmlyc3Qgd2VlayBpcyBkZWZpbmVkIGFzIG9uZSB0aGF0IGNvbnRhaW5zIHRoZSBmaXJzdCBkYXkKKyAgICAgKiBvZiB0aGUgZmlyc3QgbW9udGggb2YgYSB5ZWFyLCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIHJldHVybnMgMS4gSWYKKyAgICAgKiB0aGUgbWluaW1hbCBkYXlzIHJlcXVpcmVkIG11c3QgYmUgYSBmdWxsIHdlZWssIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiByZXR1cm5zIDcuCisgICAgICogQHJldHVybiB0aGUgbWluaW1hbCBkYXlzIHJlcXVpcmVkIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpCisgICAgeworICAgICAgICByZXR1cm4gbWluaW1hbERheXNJbkZpcnN0V2VlazsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRTW11bXSA9IHsKKyAgICAgICAgLy8gICAgTWluaW11bSAgR3JlYXRlc3QgbWluICAgICAgTGVhc3QgbWF4ICAgR3JlYXRlc3QgbWF4CisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRVJBCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gV0VFS19PRl9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9NT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9ZRUFSCisgICAgICAgIHsgICAgICAgICAgIDEsICAgICAgICAgICAgMSwgICAgICAgICAgICAgNywgICAgICAgICAgICAgNyAgfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgIDEsICAgICAgICAgICAgIDEgIH0sIC8vIEFNX1BNCisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgICAgICAgICAgICAxMSwgICAgICAgICAgICAxMSAgfSwgLy8gSE9VUgorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgMjMsICAgICAgICAgICAgMjMgIH0sIC8vIEhPVVJfT0ZfREFZCisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgICAgICAgICAgICA1OSwgICAgICAgICAgICA1OSAgfSwgLy8gTUlOVVRFCisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgICAgICAgICAgICA1OSwgICAgICAgICAgICA1OSAgfSwgLy8gU0VDT05ECisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgICAgICAgICAgIDk5OSwgICAgICAgICAgIDk5OSAgfSwgLy8gTUlMTElTRUNPTkQKKyAgICAgICAgey0xMipPTkVfSE9VUiwgLTEyKk9ORV9IT1VSLCAgIDEyKk9ORV9IT1VSLCAgIDEyKk9ORV9IT1VSICB9LCAvLyBaT05FX09GRlNFVAorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgIDEqT05FX0hPVVIsICAgIDEqT05FX0hPVVIgIH0sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBZRUFSX1dPWQorICAgICAgICB7ICAgICAgICAgICAxLCAgICAgICAgICAgIDEsICAgICAgICAgICAgIDcsICAgICAgICAgICAgIDcgIH0sIC8vIERPV19MT0NBTAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgeyAtMHg3RjAwMDAwMCwgIC0weDdGMDAwMDAwLCAgICAweDdGMDAwMDAwLCAgICAweDdGMDAwMDAwICB9LCAvLyBKVUxJQU5fREFZCisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgMjQqT05FX0hPVVItMSwgMjQqT05FX0hPVVItMSAgfSwgLy8gTUlMTElTRUNPTkRTX0lOX0RBWQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzcyBBUEkgZm9yIGRlZmluaW5nIGxpbWl0cyBvZiBkaWZmZXJlbnQgdHlwZXMuCisgICAgICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCB0byByZXR1cm4gbGltaXRzIGZvciB0aGUKKyAgICAgKiBmb2xsb3dpbmcgZmllbGRzOgorICAgICAqCisgICAgICogPHByZT5FUkEKKyAgICAgKiBZRUFSCisgICAgICogTU9OVEgKKyAgICAgKiBXRUVLX09GX1lFQVIKKyAgICAgKiBXRUVLX09GX01PTlRICisgICAgICogREFZX09GX01PTlRICisgICAgICogREFZX09GX1lFQVIKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAqIFlFQVJfV09ZCisgICAgICogRVhURU5ERURfWUVBUjwvcHJlPgorICAgICAqCisgICAgICogQHBhcmFtIGZpZWxkIG9uZSBvZiB0aGUgYWJvdmUgZmllbGQgbnVtYmVycworICAgICAqIEBwYXJhbSBsaW1pdFR5cGUgb25lIG9mIDxjb2RlPk1JTklNVU08L2NvZGU+LCA8Y29kZT5HUkVBVEVTVF9NSU5JTVVNPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5MRUFTVF9NQVhJTVVNPC9jb2RlPiwgb3IgPGNvZGU+TUFYSU1VTTwvY29kZT4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaW1pdCBmb3IgYSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGZpZWxkLCBmcm9tIDAuLjwvY29kZT5nZXRGaWVsZENvdW50KCktMTwvY29kZT4KKyAgICAgKiBAcGFyYW0gbGltaXRUeXBlIHRoZSB0eXBlIHNwZWNpZmllciBmb3IgdGhlIGxpbWl0CisgICAgICogQHNlZSAjTUlOSU1VTQorICAgICAqIEBzZWUgI0dSRUFURVNUX01JTklNVU0KKyAgICAgKiBAc2VlICNMRUFTVF9NQVhJTVVNCisgICAgICogQHNlZSAjTUFYSU1VTQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFSzoKKyAgICAgICAgY2FzZSBBTV9QTToKKyAgICAgICAgY2FzZSBIT1VSOgorICAgICAgICBjYXNlIEhPVVJfT0ZfREFZOgorICAgICAgICBjYXNlIE1JTlVURToKKyAgICAgICAgY2FzZSBTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkQ6CisgICAgICAgIGNhc2UgWk9ORV9PRkZTRVQ6CisgICAgICAgIGNhc2UgRFNUX09GRlNFVDoKKyAgICAgICAgY2FzZSBET1dfTE9DQUw6CisgICAgICAgIGNhc2UgSlVMSUFOX0RBWToKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORFNfSU5fREFZOgorICAgICAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFuZGxlR2V0TGltaXQoZmllbGQsIGxpbWl0VHlwZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTGltaXQgdHlwZSBmb3IgPGNvZGU+Z2V0TGltaXQoKTwvY29kZT4gYW5kIDxjb2RlPmhhbmRsZUdldExpbWl0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbWluaW11bSB2YWx1ZSB0aGF0IGEgZmllbGQgY2FuIHRha2UgKGxlYXN0IG1pbmltdW0pLgorICAgICAqIEBzZWUgI2dldExpbWl0CisgICAgICogQHNlZSAjaGFuZGxlR2V0TGltaXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSU5JTVVNID0gMDsKKworICAgIC8qKgorICAgICAqIExpbWl0IHR5cGUgZm9yIDxjb2RlPmdldExpbWl0KCk8L2NvZGU+IGFuZCA8Y29kZT5oYW5kbGVHZXRMaW1pdCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGdyZWF0ZXN0IG1pbmltdW0gdmFsdWUgdGhhdCBhIGZpZWxkIGNhbiB0YWtlLgorICAgICAqIEBzZWUgI2dldExpbWl0CisgICAgICogQHNlZSAjaGFuZGxlR2V0TGltaXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBHUkVBVEVTVF9NSU5JTVVNID0gMTsKKworICAgIC8qKgorICAgICAqIExpbWl0IHR5cGUgZm9yIDxjb2RlPmdldExpbWl0KCk8L2NvZGU+IGFuZCA8Y29kZT5oYW5kbGVHZXRMaW1pdCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGxlYXN0IG1heGltdW0gdmFsdWUgdGhhdCBhIGZpZWxkIGNhbiB0YWtlLgorICAgICAqIEBzZWUgI2dldExpbWl0CisgICAgICogQHNlZSAjaGFuZGxlR2V0TGltaXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBMRUFTVF9NQVhJTVVNID0gMjsKKworICAgIC8qKgorICAgICAqIExpbWl0IHR5cGUgZm9yIDxjb2RlPmdldExpbWl0KCk8L2NvZGU+IGFuZCA8Y29kZT5oYW5kbGVHZXRMaW1pdCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIG1heGltdW0gdmFsdWUgdGhhdCBhIGZpZWxkIGNhbiB0YWtlIChncmVhdGVzdCBtYXhpbXVtKS4KKyAgICAgKiBAc2VlICNnZXRMaW1pdAorICAgICAqIEBzZWUgI2hhbmRsZUdldExpbWl0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYSU1VTSA9IDM7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBlLmcuLCBmb3IgR3JlZ29yaWFuIERBWV9PRl9NT05USCwgMS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZ2V0TGltaXQoZmllbGQsIE1JTklNVU0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1heGltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIGUuZy4gZm9yIEdyZWdvcmlhbiBEQVlfT0ZfTU9OVEgsIDMxLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE1heGltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBnZXRMaW1pdChmaWVsZCwgTUFYSU1VTSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaGlnaGVzdCBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gZmllbGQgaWYgdmFyaWVzLgorICAgICAqIE90aGVyd2lzZSBzYW1lIGFzIGdldE1pbmltdW0oKS4gRm9yIEdyZWdvcmlhbiwgbm8gZGlmZmVyZW5jZS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgaGlnaGVzdCBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEdyZWF0ZXN0TWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldExpbWl0KGZpZWxkLCBHUkVBVEVTVF9NSU5JTVVNKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsb3dlc3QgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkIGlmIHZhcmllcy4KKyAgICAgKiBPdGhlcndpc2Ugc2FtZSBhcyBnZXRNYXhpbXVtKCkuIGUuZy4sIGZvciBHcmVnb3JpYW4gREFZX09GX01PTlRILCAyOC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbG93ZXN0IG1heGltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TGVhc3RNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZ2V0TGltaXQoZmllbGQsIExFQVNUX01BWElNVU0pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFdlZWtlbmQgc3VwcG9ydCAtLSBkZXRlcm1pbmluZyB3aGljaCBkYXlzIG9mIHRoZSB3ZWVrIGFyZSB0aGUgd2Vla2VuZAorICAgIC8vIGluIGEgZ2l2ZW4gbG9jYWxlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gZGF5IG9mIHRoZSB3ZWVrIGlzIGEgd2Vla2RheSwgYQorICAgICAqIHdlZWtlbmQgZGF5LCBvciBhIGRheSB0aGF0IHRyYW5zaXRpb25zIGZyb20gb25lIHRvIHRoZSBvdGhlciwKKyAgICAgKiBpbiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gIElmIGEgdHJhbnNpdGlvbiBvY2N1cnMgYXQgbWlkbmlnaHQsCisgICAgICogdGhlbiB0aGUgZGF5cyBiZWZvcmUgYW5kIGFmdGVyIHRoZSB0cmFuc2l0aW9uIHdpbGwgaGF2ZSB0aGUKKyAgICAgKiB0eXBlIFdFRUtEQVkgb3IgV0VFS0VORC4gIElmIGEgdHJhbnNpdGlvbiBvY2N1cnMgYXQgYSB0aW1lCisgICAgICogb3RoZXIgdGhhbiBtaWRuaWdodCwgdGhlbiB0aGUgZGF5IG9mIHRoZSB0cmFuc2l0aW9uIHdpbGwgaGF2ZQorICAgICAqIHRoZSB0eXBlIFdFRUtFTkRfT05TRVQgb3IgV0VFS0VORF9DRUFTRS4gIEluIHRoaXMgY2FzZSwgdGhlCisgICAgICogbWV0aG9kIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkgd2lsbCByZXR1cm4gdGhlIHBvaW50IG9mCisgICAgICogdHJhbnNpdGlvbi4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIGVpdGhlciBTVU5EQVksIE1PTkRBWSwgVFVFU0RBWSwgV0VETkVTREFZLAorICAgICAqIFRIVVJTREFZLCBGUklEQVksIG9yIFNBVFVSREFZCisgICAgICogQHJldHVybiBlaXRoZXIgV0VFS0RBWSwgV0VFS0VORCwgV0VFS0VORF9PTlNFVCwgb3IKKyAgICAgKiBXRUVLRU5EX0NFQVNFCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgZGF5T2ZXZWVrIGlzIG5vdAorICAgICAqIGJldHdlZW4gU1VOREFZIGFuZCBTQVRVUkRBWSwgaW5jbHVzaXZlCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldFdlZWtlbmRUcmFuc2l0aW9uCisgICAgICogQHNlZSAjaXNXZWVrZW5kKERhdGUpCisgICAgICogQHNlZSAjaXNXZWVrZW5kKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgeworICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgU1VOREFZIHx8IGRheU9mV2VlayA+IFNBVFVSREFZKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGRheSBvZiB3ZWVrIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHdlZWtlbmRPbnNldCA8IHdlZWtlbmRDZWFzZSkgeworICAgICAgICAgICAgaWYgKGRheU9mV2VlayA8IHdlZWtlbmRPbnNldCB8fCBkYXlPZldlZWsgPiB3ZWVrZW5kQ2Vhc2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gV0VFS0RBWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPiB3ZWVrZW5kQ2Vhc2UgJiYgZGF5T2ZXZWVrIDwgd2Vla2VuZE9uc2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdFRUtEQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRheU9mV2VlayA9PSB3ZWVrZW5kT25zZXQpIHsKKyAgICAgICAgICAgIHJldHVybiAod2Vla2VuZE9uc2V0TWlsbGlzID09IDApID8gV0VFS0VORCA6IFdFRUtFTkRfT05TRVQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRheU9mV2VlayA9PSB3ZWVrZW5kQ2Vhc2UpIHsKKyAgICAgICAgICAgIHJldHVybiAod2Vla2VuZENlYXNlTWlsbGlzID09IDApID8gV0VFS0RBWSA6IFdFRUtFTkRfQ0VBU0U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFdFRUtFTkQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0aW1lIGR1cmluZyB0aGUgZGF5IGF0IHdoaWNoIHRoZSB3ZWVrZW5kIGJlZ2lucyBvciBlbmQgaW4KKyAgICAgKiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gIElmIGdldERheU9mV2Vla1R5cGUoZGF5T2ZXZWVrKSA9PQorICAgICAqIFdFRUtFTkRfT05TRVQgcmV0dXJuIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSB3ZWVrZW5kIGJlZ2lucy4gIElmCisgICAgICogZ2V0RGF5T2ZXZWVrVHlwZShkYXlPZldlZWspID09IFdFRUtFTkRfQ0VBU0UgcmV0dXJuIHRoZSB0aW1lIGF0CisgICAgICogd2hpY2ggdGhlIHdlZWtlbmQgZW5kcy4gIElmIGdldERheU9mV2Vla1R5cGUoZGF5T2ZXZWVrKSBoYXMgc29tZQorICAgICAqIG90aGVyIHZhbHVlLCB0aGVuIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIGVpdGhlciBTVU5EQVksIE1PTkRBWSwgVFVFU0RBWSwgV0VETkVTREFZLAorICAgICAqIFRIVVJTREFZLCBGUklEQVksIG9yIFNBVFVSREFZCisgICAgICogQHJldHVybiB0aGUgbWlsbGlzZWNvbmRzIGFmdGVyIG1pZG5pZ2h0IGF0IHdoaWNoIHRoZQorICAgICAqIHdlZWtlbmQgYmVnaW5zIG9yIGVuZHMKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBkYXlPZldlZWsgaXMgbm90CisgICAgICogV0VFS0VORF9PTlNFVCBvciBXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzZWUgI2lzV2Vla2VuZChEYXRlKQorICAgICAqIEBzZWUgI2lzV2Vla2VuZCgpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRXZWVrZW5kVHJhbnNpdGlvbihpbnQgZGF5T2ZXZWVrKSB7CisgICAgICAgIGlmIChkYXlPZldlZWsgPT0gd2Vla2VuZE9uc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gd2Vla2VuZE9uc2V0TWlsbGlzOworICAgICAgICB9IGVsc2UgaWYgKGRheU9mV2VlayA9PSB3ZWVrZW5kQ2Vhc2UpIHsKKyAgICAgICAgICAgIHJldHVybiB3ZWVrZW5kQ2Vhc2VNaWxsaXM7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTm90IHdlZWtlbmQgdHJhbnNpdGlvbiBkYXkiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZSBpcyBpbiB0aGUgd2Vla2VuZCBpbgorICAgICAqIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgRXF1aXZhbGVudCB0byBjYWxsaW5nIHNldFRpbWUoKSBmb2xsb3dlZAorICAgICAqIGJ5IGlzV2Vla2VuZCgpLiAgTm90ZTogVGhpcyBtZXRob2QgY2hhbmdlcyB0aGUgdGltZSB0aGlzCisgICAgICogY2FsZW5kYXIgaXMgc2V0IHRvLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBkYXRlIGFuZCB0aW1lCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lIGlzIHBhcnQgb2YgdGhlCisgICAgICogd2Vla2VuZAorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc2VlICNnZXRXZWVrZW5kVHJhbnNpdGlvbgorICAgICAqIEBzZWUgI2lzV2Vla2VuZCgpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNXZWVrZW5kKERhdGUgZGF0ZSkgeworICAgICAgICBzZXRUaW1lKGRhdGUpOworICAgICAgICByZXR1cm4gaXNXZWVrZW5kKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBpcyBpbiB0aGUKKyAgICAgKiB3ZWVrZW5kIGluIHRoaXMgY2FsZW5kYXIgc3lzdGVtLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZSBpcyBwYXJ0IG9mIHRoZQorICAgICAqIHdlZWtlbmQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1dlZWtlbmQoKSB7CisgICAgICAgIGludCBkb3cgPSAgZ2V0KERBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IGRvd3QgPSBnZXREYXlPZldlZWtUeXBlKGRvdyk7CisgICAgICAgIHN3aXRjaCAoZG93dCkgeworICAgICAgICBjYXNlIFdFRUtEQVk6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgV0VFS0VORDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OiAvLyBUaGF0IGlzLCBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UKKyAgICAgICAgICAgIC8vIFVzZSBpbnRlcm5hbEdldCgpIGJlY2F1c2UgdGhlIGFib3ZlIGNhbGwgdG8gZ2V0KCkgcG9wdWxhdGVkCisgICAgICAgICAgICAvLyBhbGwgZmllbGRzLgorICAgICAgICAgICAgLy8gW05vdGU6IFRoZXJlIHNob3VsZCBiZSBhIGJldHRlciB3YXkgdG8gZ2V0IG1pbGxpcyBpbiBkYXkuCisgICAgICAgICAgICAvLyAgRm9yIElDVTRKLCBzdWJtaXQgcmVxdWVzdCBmb3IgYSBNSUxMSVNfSU5fREFZIGZpZWxkCisgICAgICAgICAgICAvLyAgYW5kIGEgREFZX05VTUJFUiBmaWVsZCAoY291bGQgYmUgSnVsaWFuIGRheSAjKS4gLSBhbGl1XQorICAgICAgICAgICAgaW50IG1pbGxpc0luRGF5ID0gaW50ZXJuYWxHZXQoTUlMTElTRUNPTkQpICsgMTAwMCAqIChpbnRlcm5hbEdldChTRUNPTkQpICsKKyAgICAgICAgICAgICAgICA2MCAqIChpbnRlcm5hbEdldChNSU5VVEUpICsgNjAgKiBpbnRlcm5hbEdldChIT1VSX09GX0RBWSkpKTsKKyAgICAgICAgICAgIGludCB0cmFuc2l0aW9uID0gZ2V0V2Vla2VuZFRyYW5zaXRpb24oZG93KTsKKyAgICAgICAgICAgIHJldHVybiAoZG93dCA9PSBXRUVLRU5EX09OU0VUKQorICAgICAgICAgICAgICAgID8gKG1pbGxpc0luRGF5ID49IHRyYW5zaXRpb24pCisgICAgICAgICAgICAgICAgOiAobWlsbGlzSW5EYXkgPCAgdHJhbnNpdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgLy8gKFdlIGNhbiBuZXZlciByZWFjaCB0aGlzIHBvaW50LikKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFbmQgb2Ygd2Vla2VuZCBzdXBwb3J0CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2FsZW5kYXIgb3RoZXIgPSAoQ2FsZW5kYXIpIHN1cGVyLmNsb25lKCk7CisKKyAgICAgICAgICAgIG90aGVyLmZpZWxkcyA9IG5ldyBpbnRbZmllbGRzLmxlbmd0aF07CisgICAgICAgICAgICBvdGhlci5zdGFtcCA9IG5ldyBpbnRbZmllbGRzLmxlbmd0aF07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRoaXMuZmllbGRzLCAwLCBvdGhlci5maWVsZHMsIDAsIGZpZWxkcy5sZW5ndGgpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0aGlzLnN0YW1wLCAwLCBvdGhlci5zdGFtcCwgMCwgZmllbGRzLmxlbmd0aCk7CisKKyAgICAgICAgICAgIG90aGVyLnpvbmUgPSAoVGltZVpvbmUpIHpvbmUuY2xvbmUoKTsKKyAgICAgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gdGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBzaW5jZSB3ZSBhcmUgQ2xvbmVhYmxlCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjYWxlbmRhci4gVGhpcyBtZXRob2QKKyAgICAgKiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIG9ubHkgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgYW5kIHRoZQorICAgICAqIGZvcm1hdCBvZiB0aGUgcmV0dXJuZWQgc3RyaW5nIG1heSB2YXJ5IGJldHdlZW4gaW1wbGVtZW50YXRpb25zLgorICAgICAqIFRoZSByZXR1cm5lZCBzdHJpbmcgbWF5IGJlIGVtcHR5IGJ1dCBtYXkgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICAgICAqCisgICAgICogQHJldHVybiAgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWZmZXIuYXBwZW5kKGdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiW3RpbWU9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoaXNUaW1lU2V0ID8gU3RyaW5nLnZhbHVlT2YodGltZSkgOiAiPyIpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsYXJlRmllbGRzU2V0PSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKGFyZUZpZWxkc1NldCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIixhcmVBbGxGaWVsZHNTZXQ9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoYXJlQWxsRmllbGRzU2V0KTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLGxlbmllbnQ9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQobGVuaWVudCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIix6b25lPSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKHpvbmUpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsZmlyc3REYXlPZldlZWs9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoZmlyc3REYXlPZldlZWspOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsbWluaW1hbERheXNJbkZpcnN0V2Vlaz0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChtaW5pbWFsRGF5c0luRmlyc3RXZWVrKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGZpZWxkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnLCcpLmFwcGVuZChGSUVMRF9OQU1FW2ldKS5hcHBlbmQoJz0nKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoaXNTZXQoaSkgPyBTdHJpbmcudmFsdWVPZihmaWVsZHNbaV0pIDogIj8iKTsKKyAgICAgICAgfQorICAgICAgICBidWZmZXIuYXBwZW5kKCddJyk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PXByaXZhdGVzPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgY2xhc3MgdGhhdCBob2xkcyBjYWNoZWQgbG9jYWxlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgV2Vla0RhdGEgeworICAgICAgICBwdWJsaWMgaW50IGZpcnN0RGF5T2ZXZWVrOworICAgICAgICBwdWJsaWMgaW50IG1pbmltYWxEYXlzSW5GaXJzdFdlZWs7CisgICAgICAgIHB1YmxpYyBpbnQgd2Vla2VuZE9uc2V0OworICAgICAgICBwdWJsaWMgaW50IHdlZWtlbmRPbnNldE1pbGxpczsKKyAgICAgICAgcHVibGljIGludCB3ZWVrZW5kQ2Vhc2U7CisgICAgICAgIHB1YmxpYyBpbnQgd2Vla2VuZENlYXNlTWlsbGlzOworICAgICAgICBwdWJsaWMgVUxvY2FsZSBhY3R1YWxMb2NhbGU7CisgICAgICAgIHB1YmxpYyBXZWVrRGF0YShpbnQgZmRvdywgaW50IG1kaWZ3LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdlZWtlbmRPbnNldCwgaW50IHdlZWtlbmRPbnNldE1pbGxpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB3ZWVrZW5kQ2Vhc2UsIGludCB3ZWVrZW5kQ2Vhc2VNaWxsaXMsCisgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGFjdHVhbExvYykgeworICAgICAgICAgICAgdGhpcy5maXJzdERheU9mV2VlayA9IGZkb3c7CisgICAgICAgICAgICB0aGlzLm1pbmltYWxEYXlzSW5GaXJzdFdlZWsgPSBtZGlmdzsKKyAgICAgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlID0gYWN0dWFsTG9jOworICAgICAgICAgICAgdGhpcy53ZWVrZW5kT25zZXQgPSB3ZWVrZW5kT25zZXQ7CisgICAgICAgICAgICB0aGlzLndlZWtlbmRPbnNldE1pbGxpcyA9IHdlZWtlbmRPbnNldE1pbGxpczsKKyAgICAgICAgICAgIHRoaXMud2Vla2VuZENlYXNlID0gd2Vla2VuZENlYXNlOworICAgICAgICAgICAgdGhpcy53ZWVrZW5kQ2Vhc2VNaWxsaXMgPSB3ZWVrZW5kQ2Vhc2VNaWxsaXM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgY2FsZW5kYXIgdG8gY29udGFpbiB3ZWVrIGFuZCB3ZWVrZW5kIGRhdGEgZm9yIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0V2Vla0RhdGEoVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICAvKiB0cnkgdG8gZ2V0IHRoZSBMb2NhbGUgZGF0YSBmcm9tIHRoZSBjYWNoZSAqLworICAgICAgICBXZWVrRGF0YSBkYXRhID0gKFdlZWtEYXRhKSBjYWNoZWRMb2NhbGVEYXRhLmdldChsb2NhbGUpOworICAgICAgICAKKyAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkgeyAgLyogY2FjaGUgbWlzcyAqLworCisgICAgICAgICAgICBDYWxlbmRhckRhdGEgY2FsRGF0YSA9IG5ldyBDYWxlbmRhckRhdGEobG9jYWxlLCBnZXRUeXBlKCkpOworICAgICAgICAgICAgaW50W10gZGF0ZVRpbWVFbGVtZW50cyA9IGNhbERhdGEuZ2V0KCJEYXRlVGltZUVsZW1lbnRzIikuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBpbnRbXSB3ZWVrZW5kID0gY2FsRGF0YS5nZXQoIndlZWtlbmQiKS5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgICAgIGRhdGEgPSBuZXcgV2Vla0RhdGEoZGF0ZVRpbWVFbGVtZW50c1swXSxkYXRlVGltZUVsZW1lbnRzWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZW5kWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZW5kWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZW5kWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZW5kWzNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxEYXRhLmdldFVMb2NhbGUoKSk7CisgICAgICAgICAgICAvKiBjYWNoZSB1cGRhdGUgKi8KKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGxvY2FsZSwgZGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0Rmlyc3REYXlPZldlZWsoZGF0YS5maXJzdERheU9mV2Vlayk7CisgICAgICAgIHNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoZGF0YS5taW5pbWFsRGF5c0luRmlyc3RXZWVrKTsKKyAgICAgICAgd2Vla2VuZE9uc2V0ICAgICAgID0gZGF0YS53ZWVrZW5kT25zZXQ7CisgICAgICAgIHdlZWtlbmRPbnNldE1pbGxpcyA9IGRhdGEud2Vla2VuZE9uc2V0TWlsbGlzOworICAgICAgICB3ZWVrZW5kQ2Vhc2UgICAgICAgPSBkYXRhLndlZWtlbmRDZWFzZTsKKyAgICAgICAgd2Vla2VuZENlYXNlTWlsbGlzID0gZGF0YS53ZWVrZW5kQ2Vhc2VNaWxsaXM7CisKKyAgICAgICAgLy8gVE9ETzogZGV0ZXJtaW5lIHRoZSBhY3R1YWwvdmFsaWQgbG9jYWxlCisgICAgICAgIFVMb2NhbGUgdWxvYyA9IGRhdGEuYWN0dWFsTG9jYWxlOworICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVjb21wdXRlIHRoZSB0aW1lIGFuZCB1cGRhdGUgdGhlIHN0YXR1cyBmaWVsZHMgaXNUaW1lU2V0CisgICAgICogYW5kIGFyZUZpZWxkc1NldC4gIENhbGxlcnMgc2hvdWxkIGNoZWNrIGlzVGltZVNldCBhbmQgb25seQorICAgICAqIGNhbGwgdGhpcyBtZXRob2QgaWYgaXNUaW1lU2V0IGlzIGZhbHNlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVUaW1lKCkgeworICAgICAgICBjb21wdXRlVGltZSgpOworICAgICAgICAvLyBJZiB3ZSBhcmUgbGVuaWVudCwgd2UgbmVlZCB0byByZWNvbXB1dGUgdGhlIGZpZWxkcyB0byBub3JtYWxpemUKKyAgICAgICAgLy8gdGhlIHZhbHVlcy4gIEFsc28sIGlmIHdlIGhhdmVuJ3Qgc2V0IGFsbCB0aGUgZmllbGRzIHlldCAoaS5lLiwKKyAgICAgICAgLy8gaW4gYSBuZXdseS1jcmVhdGVkIG9iamVjdCksIHdlIG5lZWQgdG8gZmlsbCBpbiB0aGUgZmllbGRzLiBbTElVXQorICAgICAgICBpZiAoaXNMZW5pZW50KCkgfHwgIWFyZUFsbEZpZWxkc1NldCkgYXJlRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIGlzVGltZVNldCA9IHRydWU7CisgICAgICAgIGFyZUZpZWxkc1ZpcnR1YWxseVNldCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdGhlIHN0YXRlIG9mIHRoaXMgb2JqZWN0IHRvIGEgc3RyZWFtIChpLmUuLCBzZXJpYWxpemUgaXQpLgorICAgICAqCisgICAgICogSWRlYWxseSwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHdvdWxkIG9ubHkgd3JpdGUgb3V0IGl0cyBzdGF0ZSBkYXRhIGFuZAorICAgICAqIHRoZSBjdXJyZW50IHRpbWUsIGFuZCBub3Qgd3JpdGUgYW55IGZpZWxkIGRhdGEgb3V0LCBzdWNoIGFzCisgICAgICogPGNvZGU+ZmllbGRzW108L2NvZGU+LCA8Y29kZT5pc1RpbWVTZXQ8L2NvZGU+LCA8Y29kZT5hcmVGaWVsZHNTZXQ8L2NvZGU+LAorICAgICAqIGFuZCA8Y29kZT5pc1NldFtdPC9jb2RlPi4gIDxjb2RlPm5leHRTdGFtcDwvY29kZT4gYWxzbyBzaG91bGQgbm90IGJlIHBhcnQKKyAgICAgKiBvZiB0aGUgcGVyc2lzdGVudCBzdGF0ZS4gVW5mb3J0dW5hdGVseSwgdGhpcyBkaWRuJ3QgaGFwcGVuIGJlZm9yZSBKREsgMS4xCisgICAgICogc2hpcHBlZC4gVG8gYmUgY29tcGF0aWJsZSB3aXRoIEpESyAxLjEsIHdlIHdpbGwgYWx3YXlzIGhhdmUgdG8gd3JpdGUgb3V0CisgICAgICogdGhlIGZpZWxkIHZhbHVlcyBhbmQgc3RhdGUgZmxhZ3MuICBIb3dldmVyLCA8Y29kZT5uZXh0U3RhbXA8L2NvZGU+IGNhbiBiZQorICAgICAqIHJlbW92ZWQgZnJvbSB0aGUgc2VyaWFsaXphdGlvbiBzdHJlYW07IHRoaXMgd2lsbCBwcm9iYWJseSBoYXBwZW4gaW4gdGhlCisgICAgICogbmVhciBmdXR1cmUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KE9iamVjdE91dHB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIFRyeSB0byBjb21wdXRlIHRoZSB0aW1lIGNvcnJlY3RseSwgZm9yIHRoZSBmdXR1cmUgKHN0cmVhbQorICAgICAgICAvLyB2ZXJzaW9uIDIpIGluIHdoaWNoIHdlIGRvbid0IHdyaXRlIG91dCBmaWVsZHNbXSBvciBpc1NldFtdLgorICAgICAgICBpZiAoIWlzVGltZVNldCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB1cGRhdGVUaW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHt9CisgICAgICAgIH0KKworICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIDEuMSBGQ1Mgb2JqZWN0LgorICAgICAgICBzdHJlYW0uZGVmYXVsdFdyaXRlT2JqZWN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVjb25zdGl0dXRlIHRoaXMgb2JqZWN0IGZyb20gYSBzdHJlYW0gKGkuZS4sIGRlc2VyaWFsaXplIGl0KS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisKKyAgICAgICAgaW5pdEludGVybmFsKCk7CisKKyAgICAgICAgaXNUaW1lU2V0ID0gdHJ1ZTsKKyAgICAgICAgYXJlRmllbGRzU2V0ID0gYXJlQWxsRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIG5leHRTdGFtcCA9IE1JTklNVU1fVVNFUl9TVEFNUDsKKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRpbWUgLT4gRmllbGRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgY3VycmVudCBtaWxsaXNlY29uZCB0aW1lIHZhbHVlIDxjb2RlPnRpbWU8L2NvZGU+IHRvCisgICAgICogZmllbGQgdmFsdWVzIGluIDxjb2RlPmZpZWxkc1tdPC9jb2RlPi4gIFRoaXMgc3luY2hyb25pemVzIHRoZSB0aW1lCisgICAgICogZmllbGQgdmFsdWVzIHdpdGggYSBuZXcgdGltZSB0aGF0IGlzIHNldCBmb3IgdGhlIGNhbGVuZGFyLiAgVGhlIHRpbWUKKyAgICAgKiBpcyA8ZW0+bm90PC9lbT4gcmVjb21wdXRlZCBmaXJzdDsgdG8gcmVjb21wdXRlIHRoZSB0aW1lLCB0aGVuIHRoZQorICAgICAqIGZpZWxkcywgY2FsbCB0aGUgPGNvZGU+Y29tcGxldGU8L2NvZGU+IG1ldGhvZC4KKyAgICAgKiBAc2VlICNjb21wbGV0ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNvbXB1dGVGaWVsZHMoKSB7CisgICAgICAgIGludCBvZmZzZXRzW10gPSBuZXcgaW50WzJdOworICAgICAgICBnZXRUaW1lWm9uZSgpLmdldE9mZnNldCh0aW1lLCBmYWxzZSwgb2Zmc2V0cyk7CisgICAgICAgIGxvbmcgbG9jYWxNaWxsaXMgPSB0aW1lICsgb2Zmc2V0c1swXSArIG9mZnNldHNbMV07CisKKyAgICAgICAgLy8gTWFyayBmaWVsZHMgYXMgc2V0LiAgRG8gdGhpcyBiZWZvcmUgY2FsbGluZyBoYW5kbGVDb21wdXRlRmllbGRzKCkuCisgICAgICAgIGludCBtYXNrID0gaW50ZXJuYWxTZXRNYXNrOworICAgICAgICBmb3IgKGludCBpPTA7IGk8ZmllbGRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoKG1hc2sgJiAxKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3RhbXBbaV0gPSBJTlRFUk5BTExZX1NFVDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhbXBbaV0gPSBVTlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1hc2sgPj49IDE7CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSB1c2VkIHRvIGNoZWNrIGZvciBhbmQgY29ycmVjdCBleHRyZW1lIG1pbGxpcyB2YWx1ZXMgKG5lYXIKKyAgICAgICAgLy8gTG9uZy5NSU5fVkFMVUUgb3IgTG9uZy5NQVhfVkFMVUUpIGhlcmUuICBTdWNoIHZhbHVlcyB3b3VsZCBjYXVzZQorICAgICAgICAvLyBvdmVyZmxvd3MgZnJvbSBwb3NpdGl2ZSB0byBuZWdhdGl2ZSAob3IgdmljZSB2ZXJzYSkgYW5kIGhhZCB0bworICAgICAgICAvLyBiZSBtYW51YWxseSB0d2Vha2VkLiAgV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIHdlCisgICAgICAgIC8vIGhhdmUgbGltaXRlZCB0aGUgcmFuZ2Ugb2Ygc3VwcG9ydGVkIGRhdGVzIHRvIHRob3NlIHRoYXQgaGF2ZSBhCisgICAgICAgIC8vIEp1bGlhbiBkYXkgdGhhdCBmaXRzIGludG8gYW4gaW50LiAgVGhpcyBhbGxvd3MgdXMgdG8gaW1wbGVtZW50IGEKKyAgICAgICAgLy8gSlVMSUFOX0RBWSBmaWVsZCBhbmQgYWxzbyByZW1vdmVzIHNvbWUgaW5lbGVnYW50IGNvZGUuIC0gTGl1CisgICAgICAgIC8vIDExLzYvMDAKKworICAgICAgICBsb25nIGRheXMgPSBmbG9vckRpdmlkZShsb2NhbE1pbGxpcywgT05FX0RBWSk7CisKKyAgICAgICAgZmllbGRzW0pVTElBTl9EQVldID0gKGludCkgZGF5cyArIEVQT0NIX0pVTElBTl9EQVk7CisKKyAgICAgICAgLy8gSW4gc29tZSBjYXNlcyB3ZSB3aWxsIGhhdmUgdG8gY2FsbCB0aGlzIG1ldGhvZCBhZ2FpbiBiZWxvdyB0bworICAgICAgICAvLyBhZGp1c3QgZm9yIERTVCBwdXNoaW5nIHVzIGludG8gdGhlIG5leHQgSnVsaWFuIGRheS4KKyAgICAgICAgY29tcHV0ZUdyZWdvcmlhbkFuZERPV0ZpZWxkcyhmaWVsZHNbSlVMSUFOX0RBWV0pOworCisgICAgICAgIC8vIENhbGwgZnJhbWV3b3JrIG1ldGhvZCB0byBoYXZlIHN1YmNsYXNzIGNvbXB1dGUgaXRzIGZpZWxkcy4KKyAgICAgICAgLy8gVGhlc2UgbXVzdCBpbmNsdWRlLCBhdCBhIG1pbmltdW0sIE1PTlRILCBEQVlfT0ZfTU9OVEgsCisgICAgICAgIC8vIEVYVEVOREVEX1lFQVIsIFlFQVIsIERBWV9PRl9ZRUFSLiAgVGhpcyBtZXRob2Qgd2lsbCBjYWxsIGludGVybmFsU2V0KCksCisgICAgICAgIC8vIHdoaWNoIHdpbGwgdXBkYXRlIHN0YW1wW10uCisgICAgICAgIGhhbmRsZUNvbXB1dGVGaWVsZHMoZmllbGRzW0pVTElBTl9EQVldKTsKKworICAgICAgICAvLyBDb21wdXRlIHdlZWstcmVsYXRlZCBmaWVsZHMsIGJhc2VkIG9uIHRoZSBzdWJjbGFzcy1jb21wdXRlZAorICAgICAgICAvLyBmaWVsZHMgY29tcHV0ZWQgYnkgaGFuZGxlQ29tcHV0ZUZpZWxkcygpLgorICAgICAgICBjb21wdXRlV2Vla0ZpZWxkcygpOworCisgICAgICAgIC8vIENvbXB1dGUgdGltZS1yZWxhdGVkIGZpZWxkcy4gIFRoZXNlIGFyZSBpbmRlcGVudCBvZiB0aGUgZGF0ZSBhbmQKKyAgICAgICAgLy8gb2YgdGhlIHN1YmNsYXNzIGFsZ29yaXRobS4gIFRoZXkgZGVwZW5kIG9ubHkgb24gdGhlIGxvY2FsIHpvbmUKKyAgICAgICAgLy8gd2FsbCBtaWxsaXNlY29uZHMgaW4gZGF5LgorICAgICAgICBpbnQgbWlsbGlzSW5EYXkgPSAoaW50KSAobG9jYWxNaWxsaXMgLSAoZGF5cyAqIE9ORV9EQVkpKTsKKyAgICAgICAgZmllbGRzW01JTExJU0VDT05EU19JTl9EQVldID0gbWlsbGlzSW5EYXk7CisgICAgICAgIGZpZWxkc1tNSUxMSVNFQ09ORF0gPSBtaWxsaXNJbkRheSAlIDEwMDA7CisgICAgICAgIG1pbGxpc0luRGF5IC89IDEwMDA7CisgICAgICAgIGZpZWxkc1tTRUNPTkRdID0gbWlsbGlzSW5EYXkgJSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgLz0gNjA7CisgICAgICAgIGZpZWxkc1tNSU5VVEVdID0gbWlsbGlzSW5EYXkgJSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgLz0gNjA7CisgICAgICAgIGZpZWxkc1tIT1VSX09GX0RBWV0gPSBtaWxsaXNJbkRheTsKKyAgICAgICAgZmllbGRzW0FNX1BNXSA9IG1pbGxpc0luRGF5IC8gMTI7IC8vIEFzc3VtZSBBTSA9PSAwCisgICAgICAgIGZpZWxkc1tIT1VSXSA9IG1pbGxpc0luRGF5ICUgMTI7CisgICAgICAgIGZpZWxkc1taT05FX09GRlNFVF0gPSBvZmZzZXRzWzBdOworICAgICAgICBmaWVsZHNbRFNUX09GRlNFVF0gPSBvZmZzZXRzWzFdOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB5ZWFyLCBtb250aCwgYW5kIGRheSBvZiBtb250aCBmcm9tCisgICAgICogdGhlIGdpdmVuIEp1bGlhbiBkYXkuICBUaGVzZSB2YWx1ZXMgYXJlIG5vdCBzdG9yZWQgaW4gZmllbGRzLCBidXQgaW4KKyAgICAgKiBtZW1iZXIgdmFyaWFibGVzIGdyZWdvcmlhblh4eC4gIEFsc28gY29tcHV0ZSB0aGUgREFZX09GX1dFRUsgYW5kCisgICAgICogRE9XX0xPQ0FMIGZpZWxkcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgY29tcHV0ZUdyZWdvcmlhbkFuZERPV0ZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoanVsaWFuRGF5KTsKKworICAgICAgICAvLyBDb21wdXRlIGRheSBvZiB3ZWVrOiBKRCAwID0gTW9uZGF5CisgICAgICAgIGludCBkb3cgPSBmaWVsZHNbREFZX09GX1dFRUtdID0ganVsaWFuRGF5VG9EYXlPZldlZWsoanVsaWFuRGF5KTsKKworICAgICAgICAvLyBDYWxjdWxhdGUgMS1iYXNlZCBsb2NhbGl6ZWQgZGF5IG9mIHdlZWsKKyAgICAgICAgaW50IGRvd0xvY2FsID0gZG93IC0gZ2V0Rmlyc3REYXlPZldlZWsoKSArIDE7CisgICAgICAgIGlmIChkb3dMb2NhbCA8IDEpIHsKKyAgICAgICAgICAgIGRvd0xvY2FsICs9IDc7CisgICAgICAgIH0KKyAgICAgICAgZmllbGRzW0RPV19MT0NBTF0gPSBkb3dMb2NhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgeWVhciwgbW9udGgsIGFuZCBkYXkgb2YgbW9udGggZnJvbSB0aGUKKyAgICAgKiBKdWxpYW4gZGF5LiAgVGhlc2UgdmFsdWVzIGFyZSBub3Qgc3RvcmVkIGluIGZpZWxkcywgYnV0IGluIG1lbWJlcgorICAgICAqIHZhcmlhYmxlcyBncmVnb3JpYW5YeHguICBUaGV5IGFyZSB1c2VkIGZvciB0aW1lIHpvbmUgY29tcHV0YXRpb25zIGFuZCBieQorICAgICAqIHN1YmNsYXNzZXMgdGhhdCBhcmUgR3JlZ29yaWFuIGRlcml2YXRpdmVzLiAgU3ViY2xhc3NlcyBtYXkgY2FsbCB0aGlzCisgICAgICogbWV0aG9kIHRvIHBlcmZvcm0gYSBHcmVnb3JpYW4gY2FsZW5kYXIgbWlsbGlzLT5maWVsZHMgY29tcHV0YXRpb24uCisgICAgICogVG8gcGVyZm9ybSBhIEdyZWdvcmlhbiBjYWxlbmRhciBmaWVsZHMtPm1pbGxpcyBjb21wdXRhdGlvbiwgY2FsbAorICAgICAqIGNvbXB1dGVHcmVnb3JpYW5Nb250aFN0YXJ0KCkuCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbk1vbnRoU3RhcnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBjb21wdXRlR3JlZ29yaWFuRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZlllYXI7CisKKyAgICAgICAgLy8gVGhlIEdyZWdvcmlhbiBlcG9jaCBkYXkgaXMgemVybyBmb3IgTW9uZGF5IEphbnVhcnkgMSwgeWVhciAxLgorICAgICAgICBsb25nIGdyZWdvcmlhbkVwb2NoRGF5ID0ganVsaWFuRGF5IC0gSkFOXzFfMV9KVUxJQU5fREFZOworCisgICAgICAgIC8vIEhlcmUgd2UgY29udmVydCBmcm9tIHRoZSBkYXkgbnVtYmVyIHRvIHRoZSBtdWx0aXBsZSByYWRpeAorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4gIFdlIHVzZSA0MDAteWVhciwgMTAwLXllYXIsIGFuZCA0LXllYXIgY3ljbGVzLgorICAgICAgICAvLyBGb3IgZXhhbXBsZSwgdGhlIDQteWVhciBjeWNsZSBoYXMgNCB5ZWFycyArIDEgbGVhcCBkYXk7IGdpdmluZworICAgICAgICAvLyAxNDYxID09IDM2NSo0ICsgMSBkYXlzLgorICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgbjQwMCA9IGZsb29yRGl2aWRlKGdyZWdvcmlhbkVwb2NoRGF5LCAxNDYwOTcsIHJlbSk7IC8vIDQwMC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBpbnQgbjEwMCA9IGZsb29yRGl2aWRlKHJlbVswXSwgMzY1MjQsIHJlbSk7IC8vIDEwMC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBpbnQgbjQgPSBmbG9vckRpdmlkZShyZW1bMF0sIDE0NjEsIHJlbSk7IC8vIDQteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG4xID0gZmxvb3JEaXZpZGUocmVtWzBdLCAzNjUsIHJlbSk7CisgICAgICAgIHllYXIgPSA0MDAqbjQwMCArIDEwMCpuMTAwICsgNCpuNCArIG4xOworICAgICAgICBkYXlPZlllYXIgPSByZW1bMF07IC8vIHplcm8tYmFzZWQgZGF5IG9mIHllYXIKKyAgICAgICAgaWYgKG4xMDAgPT0gNCB8fCBuMSA9PSA0KSB7CisgICAgICAgICAgICBkYXlPZlllYXIgPSAzNjU7IC8vIERlYyAzMSBhdCBlbmQgb2YgNC0gb3IgNDAwLXlyIGN5Y2xlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICArK3llYXI7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzTGVhcCA9ICgoeWVhciYweDMpID09IDApICYmIC8vIGVxdWl2LiB0byAoeWVhciU0ID09IDApCisgICAgICAgICAgICAoeWVhciUxMDAgIT0gMCB8fCB5ZWFyJTQwMCA9PSAwKTsKKworICAgICAgICBpbnQgY29ycmVjdGlvbiA9IDA7CisgICAgICAgIGludCBtYXJjaDEgPSBpc0xlYXAgPyA2MCA6IDU5OyAvLyB6ZXJvLWJhc2VkIERPWSBmb3IgTWFyY2ggMQorICAgICAgICBpZiAoZGF5T2ZZZWFyID49IG1hcmNoMSkgY29ycmVjdGlvbiA9IGlzTGVhcCA/IDEgOiAyOworICAgICAgICBtb250aCA9ICgxMiAqIChkYXlPZlllYXIgKyBjb3JyZWN0aW9uKSArIDYpIC8gMzY3OyAvLyB6ZXJvLWJhc2VkIG1vbnRoCisgICAgICAgIGRheU9mTW9udGggPSBkYXlPZlllYXIgLQorICAgICAgICAgICAgR1JFR09SSUFOX01PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXA/MzoyXSArIDE7IC8vIG9uZS1iYXNlZCBET00KKworICAgICAgICBncmVnb3JpYW5ZZWFyID0geWVhcjsKKyAgICAgICAgZ3JlZ29yaWFuTW9udGggPSBtb250aDsgLy8gMC1iYXNlZCBhbHJlYWR5CisgICAgICAgIGdyZWdvcmlhbkRheU9mTW9udGggPSBkYXlPZk1vbnRoOyAvLyAxLWJhc2VkIGFscmVhZHkKKyAgICAgICAgZ3JlZ29yaWFuRGF5T2ZZZWFyID0gZGF5T2ZZZWFyICsgMTsgLy8gQ29udmVydCBmcm9tIDAtYmFzZWQgdG8gMS1iYXNlZAorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIGZpZWxkcyBXRUVLX09GX1lFQVIsIFlFQVJfV09ZLCBXRUVLX09GX01PTlRILAorICAgICAqIERBWV9PRl9XRUVLX0lOX01PTlRILCBhbmQgRE9XX0xPQ0FMIGZyb20gRVhURU5ERURfWUVBUiwgWUVBUiwKKyAgICAgKiBEQVlfT0ZfV0VFSywgYW5kIERBWV9PRl9ZRUFSLiAgVGhlIGxhdHRlciBmaWVsZHMgYXJlIGNvbXB1dGVkIGJ5IHRoZQorICAgICAqIHN1YmNsYXNzIGJhc2VkIG9uIHRoZSBjYWxlbmRhciBzeXN0ZW0uCisgICAgICoKKyAgICAgKiA8cD5UaGUgWUVBUl9XT1kgZmllbGQgaXMgY29tcHV0ZWQgc2ltcGxpc3RpY2FsbHkuICBJdCBpcyBlcXVhbCB0byBZRUFSCisgICAgICogbW9zdCBvZiB0aGUgdGltZSwgYnV0IGF0IHRoZSB5ZWFyIGJvdW5kYXJ5IGl0IG1heSBiZSBhZGp1c3RlZCB0byBZRUFSLTEKKyAgICAgKiBvciBZRUFSKzEgdG8gcmVmbGVjdCB0aGUgb3ZlcmxhcCBvZiBhIHdlZWsgaW50byBhbiBhZGphY2VudCB5ZWFyLiAgSW4KKyAgICAgKiB0aGlzIGNhc2UsIGEgc2ltcGxlIGluY3JlbWVudCBvciBkZWNyZW1lbnQgaXMgcGVyZm9ybWVkIG9uIFlFQVIsIGV2ZW4KKyAgICAgKiB0aG91Z2ggdGhpcyBtYXkgeWllbGQgYW4gaW52YWxpZCBZRUFSIHZhbHVlLiAgRm9yIGluc3RhbmNlLCBpZiB0aGUgWUVBUgorICAgICAqIGlzIHBhcnQgb2YgYSBjYWxlbmRhciBzeXN0ZW0gd2l0aCBhbiBOLXllYXIgY3ljbGUgZmllbGQgQ1lDTEUsIHRoZW4KKyAgICAgKiBpbmNyZW1lbnRpbmcgdGhlIFlFQVIgbWF5IGludm9sdmUgaW5jcmVtZW50aW5nIENZQ0xFIGFuZCBzZXR0aW5nIFlFQVIKKyAgICAgKiBiYWNrIHRvIDAgb3IgMS4gIFRoaXMgaXMgbm90IGhhbmRsZWQgYnkgdGhpcyBjb2RlLCBhbmQgaW4gZmFjdCBjYW5ub3QgYmUKKyAgICAgKiBzaW1wbHkgaGFuZGxlZCB3aXRob3V0IGhhdmluZyBzdWJjbGFzc2VzIGRlZmluZSBhbiBlbnRpcmUgcGFyYWxsZWwgc2V0IG9mCisgICAgICogZmllbGRzIGZvciBmaWVsZHMgbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gYSB5ZWFyLiAgVGhpcyBhZGRpdGlvbmFsCisgICAgICogY29tcGxleGl0eSBpcyBub3Qgd2FycmFudGVkLCBzaW5jZSB0aGUgaW50ZW50aW9uIG9mIHRoZSBZRUFSX1dPWSBmaWVsZCBpcworICAgICAqIHRvIHN1cHBvcnQgSVNPIDg2MDEgbm90YXRpb24sIHNvIGl0IHdpbGwgdHlwaWNhbGx5IGJlIHVzZWQgd2l0aCBhCisgICAgICogcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciwgd2hpY2ggaGFzIG5vIGZpZWxkIGxhcmdlciB0aGFuIGEgeWVhci4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgY29tcHV0ZVdlZWtGaWVsZHMoKSB7CisgICAgICAgIGludCBleWVhciA9IGZpZWxkc1tFWFRFTkRFRF9ZRUFSXTsKKyAgICAgICAgaW50IHllYXIgPSBmaWVsZHNbWUVBUl07CisgICAgICAgIGludCBkYXlPZldlZWsgPSBmaWVsZHNbREFZX09GX1dFRUtdOworICAgICAgICBpbnQgZGF5T2ZZZWFyID0gZmllbGRzW0RBWV9PRl9ZRUFSXTsKKworICAgICAgICAvLyBXRUVLX09GX1lFQVIgc3RhcnQKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgd2VlayBvZiB0aGUgeWVhci4gIEZvciB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB2YWxpZCB3ZWVrCisgICAgICAgIC8vIG51bWJlcnMgcnVuIGZyb20gMSB0byA1MiBvciA1MywgZGVwZW5kaW5nIG9uIHRoZSB5ZWFyLCB0aGUgZmlyc3QgZGF5CisgICAgICAgIC8vIG9mIHRoZSB3ZWVrLCBhbmQgdGhlIG1pbmltYWwgZGF5cyBpbiB0aGUgZmlyc3Qgd2Vlay4gIEZvciBvdGhlcgorICAgICAgICAvLyBjYWxlbmRhcnMsIHRoZSB2YWxpZCByYW5nZSBtYXkgYmUgZGlmZmVyZW50IC0tIGl0IGRlcGVuZHMgb24gdGhlIHllYXIKKyAgICAgICAgLy8gbGVuZ3RoLiAgRGF5cyBhdCB0aGUgc3RhcnQgb2YgdGhlIHllYXIgbWF5IGZhbGwgaW50byB0aGUgbGFzdCB3ZWVrIG9mCisgICAgICAgIC8vIHRoZSBwcmV2aW91cyB5ZWFyOyBkYXlzIGF0IHRoZSBlbmQgb2YgdGhlIHllYXIgbWF5IGZhbGwgaW50byB0aGUKKyAgICAgICAgLy8gZmlyc3Qgd2VlayBvZiB0aGUgbmV4dCB5ZWFyLiAgQVNTVU1FIHRoYXQgdGhlIHllYXIgbGVuZ3RoIGlzIGxlc3MgdGhhbgorICAgICAgICAvLyA3MDAwIGRheXMuCisgICAgICAgIGludCB5ZWFyT2ZXZWVrT2ZZZWFyID0geWVhcjsKKyAgICAgICAgaW50IHJlbERvdyA9IChkYXlPZldlZWsgKyA3IC0gZ2V0Rmlyc3REYXlPZldlZWsoKSkgJSA3OyAvLyAwLi42CisgICAgICAgIGludCByZWxEb3dKYW4xID0gKGRheU9mV2VlayAtIGRheU9mWWVhciArIDcwMDEgLSBnZXRGaXJzdERheU9mV2VlaygpKSAlIDc7IC8vIDAuLjYKKyAgICAgICAgaW50IHdveSA9IChkYXlPZlllYXIgLSAxICsgcmVsRG93SmFuMSkgLyA3OyAvLyAwLi41MworICAgICAgICBpZiAoKDcgLSByZWxEb3dKYW4xKSA+PSBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpIHsKKyAgICAgICAgICAgICsrd295OworICAgICAgICB9CisKKyAgICAgICAgLy8gQWRqdXN0IGZvciB3ZWVrcyBhdCB0aGUgeWVhciBlbmQgdGhhdCBvdmVybGFwIGludG8gdGhlIHByZXZpb3VzIG9yCisgICAgICAgIC8vIG5leHQgY2FsZW5kYXIgeWVhci4KKyAgICAgICAgaWYgKHdveSA9PSAwKSB7CisgICAgICAgICAgICAvLyBXZSBhcmUgdGhlIGxhc3Qgd2VlayBvZiB0aGUgcHJldmlvdXMgeWVhci4KKyAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBhcmUgaW4gdGhlIGxhc3Qgd2VlazsgaWYgc28sIHdlIG5lZWQKKyAgICAgICAgICAgIC8vIHRvIGhhbmRsZSB0aGUgY2FzZSBpbiB3aGljaCB3ZSBhcmUgdGhlIGZpcnN0IHdlZWsgb2YgdGhlCisgICAgICAgICAgICAvLyBuZXh0IHllYXIuCisKKyAgICAgICAgICAgIGludCBwcmV2RG95ID0gZGF5T2ZZZWFyICsgaGFuZGxlR2V0WWVhckxlbmd0aChleWVhciAtIDEpOworICAgICAgICAgICAgd295ID0gd2Vla051bWJlcihwcmV2RG95LCBkYXlPZldlZWspOworICAgICAgICAgICAgeWVhck9mV2Vla09mWWVhci0tOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGxhc3REb3kgPSBoYW5kbGVHZXRZZWFyTGVuZ3RoKGV5ZWFyKTsKKyAgICAgICAgICAgIC8vIEZhc3QgY2hlY2s6IEZvciBpdCB0byBiZSB3ZWVrIDEgb2YgdGhlIG5leHQgeWVhciwgdGhlIERPWQorICAgICAgICAgICAgLy8gbXVzdCBiZSBvbiBvciBhZnRlciBMLTUsIHdoZXJlIEwgaXMgeWVhckxlbmd0aCgpLCB0aGVuIGl0CisgICAgICAgICAgICAvLyBjYW5ub3QgcG9zc2libHkgYmUgd2VlayAxIG9mIHRoZSBuZXh0IHllYXI6CisgICAgICAgICAgICAvLyAgICAgICAgICBMLTUgICAgICAgICAgICAgICAgICBMCisgICAgICAgICAgICAvLyBkb3k6IDM1OSAzNjAgMzYxIDM2MiAzNjMgMzY0IDM2NSAwMDEKKyAgICAgICAgICAgIC8vIGRvdzogICAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3CisgICAgICAgICAgICBpZiAoZGF5T2ZZZWFyID49IChsYXN0RG95IC0gNSkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGFzdFJlbERvdyA9IChyZWxEb3cgKyBsYXN0RG95IC0gZGF5T2ZZZWFyKSAlIDc7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RSZWxEb3cgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RSZWxEb3cgKz0gNzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCgoNiAtIGxhc3RSZWxEb3cpID49IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKChkYXlPZlllYXIgKyA3IC0gcmVsRG93KSA+IGxhc3REb3kpKSB7CisgICAgICAgICAgICAgICAgICAgIHdveSA9IDE7CisgICAgICAgICAgICAgICAgICAgIHllYXJPZldlZWtPZlllYXIrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZmllbGRzW1dFRUtfT0ZfWUVBUl0gPSB3b3k7CisgICAgICAgIGZpZWxkc1tZRUFSX1dPWV0gPSB5ZWFyT2ZXZWVrT2ZZZWFyOworICAgICAgICAvLyBXRUVLX09GX1lFQVIgZW5kCisKKyAgICAgICAgaW50IGRheU9mTW9udGggPSBmaWVsZHNbREFZX09GX01PTlRIXTsKKyAgICAgICAgZmllbGRzW1dFRUtfT0ZfTU9OVEhdID0gd2Vla051bWJlcihkYXlPZk1vbnRoLCBkYXlPZldlZWspOworICAgICAgICBmaWVsZHNbREFZX09GX1dFRUtfSU5fTU9OVEhdID0gKGRheU9mTW9udGgtMSkgLyA3ICsgMTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBGaWVsZHMgLT4gVGltZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVmFsdWUgdG8gT1IgYWdhaW5zdCByZXNvbHZlIHRhYmxlIGZpZWxkIHZhbHVlcyBmb3IgcmVtYXBwaW5nLgorICAgICAqIEBzZWUgI3Jlc29sdmVGaWVsZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBSRVNPTFZFX1JFTUFQID0gMzI7CisgICAgLy8gQSBwb3dlciBvZiAyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBNQVhfRklFTERfQ09VTlQKKworICAgIC8vIERlZmF1bHQgdGFibGUgZm9yIGRheSBpbiB5ZWFyCisgICAgc3RhdGljIGZpbmFsIGludFtdW11bXSBEQVRFX1BSRUNFREVOQ0UgPSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHsgREFZX09GX01PTlRIIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUtfSU5fTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfTU9OVEgsIERPV19MT0NBTCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IERBWV9PRl9ZRUFSIH0sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfTU9OVEggfSwKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUtfSU5fTU9OVEggfSwKKyAgICAgICAgICAgIHsgUkVTT0xWRV9SRU1BUCB8IERBWV9PRl9XRUVLX0lOX01PTlRILCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBSRVNPTFZFX1JFTUFQIHwgREFZX09GX1dFRUtfSU5fTU9OVEgsIERPV19MT0NBTCB9LAorICAgICAgICB9LAorICAgIH07CisKKyAgICBzdGF0aWMgZmluYWwgaW50W11bXVtdIERPV19QUkVDRURFTkNFID0geworICAgICAgICB7CisgICAgICAgICAgICB7IERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IERPV19MT0NBTCB9LAorICAgICAgICB9LAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHByZWNlZGVuY2UgdGFibGUsIHJldHVybiB0aGUgbmV3ZXN0IGZpZWxkIGNvbWJpbmF0aW9uIGluCisgICAgICogdGhlIHRhYmxlLCBvciAtMSBpZiBub25lIGlzIGZvdW5kLgorICAgICAqCisgICAgICogPHA+VGhlIHByZWNlZGVuY2UgdGFibGUgaXMgYSAzLWRpbWVuc2lvbmFsIGFycmF5IG9mIGludGVnZXJzLiAgSXQKKyAgICAgKiBtYXkgYmUgdGhvdWdodCBvZiBhcyBhbiBhcnJheSBvZiBncm91cHMuICBFYWNoIGdyb3VwIGlzIGFuIGFycmF5IG9mCisgICAgICogbGluZXMuICBFYWNoIGxpbmUgaXMgYW4gYXJyYXkgb2YgZmllbGQgbnVtYmVycy4gIFdpdGhpbiBhIGxpbmUsIGlmCisgICAgICogYWxsIGZpZWxkcyBhcmUgc2V0LCB0aGVuIHRoZSB0aW1lIHN0YW1wIG9mIHRoZSBsaW5lIGlzIHRha2VuIHRvIGJlCisgICAgICogdGhlIHN0YW1wIG9mIHRoZSBtb3N0IHJlY2VudGx5IHNldCBmaWVsZC4gIElmIGFueSBmaWVsZCBvZiBhIGxpbmUgaXMKKyAgICAgKiB1bnNldCwgdGhlbiB0aGUgbGluZSBmYWlscyB0byBtYXRjaC4gIFdpdGhpbiBhIGdyb3VwLCB0aGUgbGluZSB3aXRoCisgICAgICogdGhlIG5ld2VzdCB0aW1lIHN0YW1wIGlzIHNlbGVjdGVkLiAgVGhlIGZpcnN0IGZpZWxkIG9mIHRoZSBsaW5lIGlzCisgICAgICogcmV0dXJuZWQgdG8gaW5kaWNhdGUgd2hpY2ggbGluZSBtYXRjaGVkLgorICAgICAqCisgICAgICogPHA+SW4gc29tZSBjYXNlcywgaXQgbWF5IGJlIGRlc2lyYWJsZSB0byBtYXAgYSBsaW5lIHRvIGZpZWxkIHRoYXQKKyAgICAgKiB3aG9zZSBzdGFtcCBpcyBOT1QgZXhhbWluZWQuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGJlc3QgZmllbGQgaXMKKyAgICAgKiBEQVlfT0ZfV0VFSyB0aGVuIHRoZSBEQVlfT0ZfV0VFS19JTl9NT05USCBhbGdvcml0aG0gbWF5IGJlIHVzZWQuICBJbgorICAgICAqIG9yZGVyIHRvIGRvIHRoaXMsIGluc2VydCB0aGUgdmFsdWUgPGNvZGU+UkVNQVBfUkVTT0xWRSB8IEY8L2NvZGU+IGF0CisgICAgICogdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLCB3aGVyZSA8Y29kZT5GPC9jb2RlPiBpcyB0aGUgZGVzaXJlZCByZXR1cm4KKyAgICAgKiBmaWVsZCB2YWx1ZS4gIFRoaXMgZmllbGQgd2lsbCBOT1QgYmUgZXhhbWluZWQ7IGl0IG9ubHkgZGV0ZXJtaW5lcworICAgICAqIHRoZSByZXR1cm4gdmFsdWUgaWYgdGhlIG90aGVyIGZpZWxkcyBpbiB0aGUgbGluZSBhcmUgdGhlIG5ld2VzdC4KKyAgICAgKgorICAgICAqIDxwPklmIGFsbCBsaW5lcyBvZiBhIGdyb3VwIGNvbnRhaW4gYXQgbGVhc3Qgb25lIHVuc2V0IGZpZWxkLCB0aGVuIG5vCisgICAgICogbGluZSB3aWxsIG1hdGNoLCBhbmQgdGhlIGdyb3VwIGFzIGEgd2hvbGUgd2lsbCBmYWlsIHRvIG1hdGNoLiAgSW4KKyAgICAgKiB0aGF0IGNhc2UsIHRoZSBuZXh0IGdyb3VwIHdpbGwgYmUgcHJvY2Vzc2VkLiAgSWYgYWxsIGdyb3VwcyBmYWlsIHRvCisgICAgICogbWF0Y2gsIHRoZW4gLTEgaXMgcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCByZXNvbHZlRmllbGRzKGludFtdW11bXSBwcmVjZWRlbmNlVGFibGUpIHsKKyAgICAgICAgaW50IGJlc3RGaWVsZCA9IC0xOworICAgICAgICBmb3IgKGludCBnPTA7IGc8cHJlY2VkZW5jZVRhYmxlLmxlbmd0aCAmJiBiZXN0RmllbGQgPCAwOyArK2cpIHsKKyAgICAgICAgICAgIGludFtdW10gZ3JvdXAgPSBwcmVjZWRlbmNlVGFibGVbZ107CisgICAgICAgICAgICBpbnQgYmVzdFN0YW1wID0gVU5TRVQ7CisgICAgICAgIGxpbmVzSW5Hcm91cDoKKyAgICAgICAgICAgIGZvciAoaW50IGw9MDsgbDxncm91cC5sZW5ndGg7ICsrbCkgeworICAgICAgICAgICAgICAgIGludFtdIGxpbmU9IGdyb3VwW2xdOworICAgICAgICAgICAgICAgIGludCBsaW5lU3RhbXAgPSBVTlNFVDsKKyAgICAgICAgICAgICAgICAvLyBTa2lwIG92ZXIgZmlyc3QgZW50cnkgaWYgaXQgaXMgbmVnYXRpdmUKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPShsaW5lWzBdPj1SRVNPTFZFX1JFTUFQKT8xOjA7IGk8bGluZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcyA9IHN0YW1wW2xpbmVbaV1dOworICAgICAgICAgICAgICAgICAgICAvLyBJZiBhbnkgZmllbGQgaXMgdW5zZXQgdGhlbiBkb24ndCB1c2UgdGhpcyBsaW5lCisgICAgICAgICAgICAgICAgICAgIGlmIChzID09IFVOU0VUKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBsaW5lc0luR3JvdXA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lU3RhbXAgPSBNYXRoLm1heChsaW5lU3RhbXAsIHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFJlY29yZCBuZXcgbWF4aW11bSBzdGFtcCAmIGZpZWxkIG5vLgorICAgICAgICAgICAgICAgIGlmIChsaW5lU3RhbXAgPiBiZXN0U3RhbXApIHsKKyAgICAgICAgICAgICAgICAgICAgYmVzdFN0YW1wID0gbGluZVN0YW1wOworICAgICAgICAgICAgICAgICAgICBiZXN0RmllbGQgPSBsaW5lWzBdOyAvLyBGaXJzdCBmaWVsZCByZWZlcnMgdG8gZW50aXJlIGxpbmUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChiZXN0RmllbGQ+PVJFU09MVkVfUkVNQVApPyhiZXN0RmllbGQmKFJFU09MVkVfUkVNQVAtMSkpOmJlc3RGaWVsZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5ld2VzdCBzdGFtcCBvZiBhIGdpdmVuIHJhbmdlIG9mIGZpZWxkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG5ld2VzdFN0YW1wKGludCBmaXJzdCwgaW50IGxhc3QsIGludCBiZXN0U3RhbXBTb0ZhcikgeworICAgICAgICBpbnQgYmVzdFN0YW1wID0gYmVzdFN0YW1wU29GYXI7CisgICAgICAgIGZvciAoaW50IGk9Zmlyc3Q7IGk8PWxhc3Q7ICsraSkgeworICAgICAgICAgICAgaWYgKHN0YW1wW2ldID4gYmVzdFN0YW1wKSB7CisgICAgICAgICAgICAgICAgYmVzdFN0YW1wID0gc3RhbXBbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJlc3RTdGFtcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRpbWVzdGFtcCBvZiBhIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0U3RhbXAoaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBzdGFtcFtmaWVsZF07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaWVsZCB0aGF0IGlzIG5ld2VyLCBlaXRoZXIgZGVmYXVsdEZpZWxkLCBvcgorICAgICAqIGFsdGVybmF0ZUZpZWxkLiAgSWYgbmVpdGhlciBpcyBuZXdlciBvciBuZWl0aGVyIGlzIHNldCwgcmV0dXJuIGRlZmF1bHRGaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG5ld2VyRmllbGQoaW50IGRlZmF1bHRGaWVsZCwgaW50IGFsdGVybmF0ZUZpZWxkKSB7CisgICAgICAgIGlmIChzdGFtcFthbHRlcm5hdGVGaWVsZF0gPiBzdGFtcFtkZWZhdWx0RmllbGRdKSB7CisgICAgICAgICAgICByZXR1cm4gYWx0ZXJuYXRlRmllbGQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlZmF1bHRGaWVsZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbnN1cmUgdGhhdCBlYWNoIGZpZWxkIGlzIHdpdGhpbiBpdHMgdmFsaWQgcmFuZ2UgYnkgY2FsbGluZyB7QGxpbmsKKyAgICAgKiAjdmFsaWRhdGVGaWVsZChpbnQpfSBvbiBlYWNoIGZpZWxkIHRoYXQgaGFzIGJlZW4gc2V0LiAgVGhpcyBtZXRob2QKKyAgICAgKiBzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgdGhpcyBjYWxlbmRhciBpcyBub3QgbGVuaWVudC4KKyAgICAgKiBAc2VlICNpc0xlbmllbnQKKyAgICAgKiBAc2VlICN2YWxpZGF0ZUZpZWxkKGludCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUZpZWxkcygpIHsKKyAgICAgICAgZm9yIChpbnQgZmllbGQgPSAwOyBmaWVsZCA8IGZpZWxkcy5sZW5ndGg7IGZpZWxkKyspIHsKKyAgICAgICAgICAgIGlmIChpc1NldChmaWVsZCkpIHsKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZhbGlkYXRlIGEgc2luZ2xlIGZpZWxkIG9mIHRoaXMgY2FsZW5kYXIuICBTdWJjbGFzc2VzIHNob3VsZAorICAgICAqIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHZhbGlkYXRlIGFueSBjYWxlbmRhci1zcGVjaWZpYyBmaWVsZHMuCisgICAgICogR2VuZXJpYyBmaWVsZHMgY2FuIGJlIGhhbmRsZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci52YWxpZGF0ZUZpZWxkKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI3ZhbGlkYXRlRmllbGQoaW50LCBpbnQsIGludCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUZpZWxkKGludCBmaWVsZCkgeworICAgICAgICBpbnQgeTsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9NT05USDoKKyAgICAgICAgICAgIHkgPSBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKTsKKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIDEsIGhhbmRsZUdldE1vbnRoTGVuZ3RoKHksIGludGVybmFsR2V0KE1PTlRIKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgREFZX09GX1lFQVI6CisgICAgICAgICAgICB5ID0gaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZpZWxkLCAxLCBoYW5kbGVHZXRZZWFyTGVuZ3RoKHkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERBWV9PRl9XRUVLX0lOX01PTlRIOgorICAgICAgICAgICAgaWYgKGludGVybmFsR2V0KGZpZWxkKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiREFZX09GX1dFRUtfSU5fTU9OVEggY2Fubm90IGJlIHplcm8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIGdldE1pbmltdW0oZmllbGQpLCBnZXRNYXhpbXVtKGZpZWxkKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIGdldE1pbmltdW0oZmllbGQpLCBnZXRNYXhpbXVtKGZpZWxkKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZhbGlkYXRlIGEgc2luZ2xlIGZpZWxkIG9mIHRoaXMgY2FsZW5kYXIgZ2l2ZW4gaXRzIG1pbmltdW0gYW5kCisgICAgICogbWF4aW11bSBhbGxvd2VkIHZhbHVlLiAgSWYgdGhlIGZpZWxkIGlzIG91dCBvZiByYW5nZSwgdGhyb3cgYQorICAgICAqIGRlc2NyaXB0aXZlIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4uICBTdWJjbGFzc2VzIG1heQorICAgICAqIHVzZSB0aGlzIG1ldGhvZCBpbiB0aGVpciBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsKKyAgICAgKiAjdmFsaWRhdGVGaWVsZChpbnQpfS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB2YWxpZGF0ZUZpZWxkKGludCBmaWVsZCwgaW50IG1pbiwgaW50IG1heCkgeworICAgICAgICBpbnQgdmFsdWUgPSBmaWVsZHNbZmllbGRdOworICAgICAgICBpZiAodmFsdWUgPCBtaW4gfHwgdmFsdWUgPiBtYXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oZmllbGROYW1lKGZpZWxkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc9JyArIHZhbHVlICsgIiwgdmFsaWQgcmFuZ2U9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiArICIuLiIgKyBtYXgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIGN1cnJlbnQgZmllbGQgdmFsdWVzIGluIDxjb2RlPmZpZWxkc1tdPC9jb2RlPiB0byB0aGUKKyAgICAgKiBtaWxsaXNlY29uZCB0aW1lIHZhbHVlIDxjb2RlPnRpbWU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgcHJvdGVjdGVkIHZvaWQgY29tcHV0ZVRpbWUoKSB7CisgICAgICAgIGlmICghaXNMZW5pZW50KCkpIHsKKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGRzKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21wdXRlIHRoZSBKdWxpYW4gZGF5CisgICAgICAgIGludCBqdWxpYW5EYXkgPSBjb21wdXRlSnVsaWFuRGF5KCk7CisKKyAgICAgICAgbG9uZyBtaWxsaXMgPSBqdWxpYW5EYXlUb01pbGxpcyhqdWxpYW5EYXkpOworCisgICAgICAgIGludCBtaWxsaXNJbkRheTsKKworICAgICAgICAvLyBXZSBvbmx5IHVzZSBNSUxMSVNFQ09ORFNfSU5fREFZIGlmIGl0IGhhcyBiZWVuIHNldCBieSB0aGUgdXNlci4KKyAgICAgICAgLy8gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSBmb3IgdGhlIGNhbGxlciB0byBzZXQgdGhlIGNhbGVuZGFyIHRvIGEKKyAgICAgICAgLy8gdGltZSBhbmQgY2FsbCBjbGVhcihNT05USCkgdG8gcmVzZXQgdGhlIE1PTlRIIHRvIEphbnVhcnkuICBUaGlzCisgICAgICAgIC8vIGlzIGxlZ2FjeSBiZWhhdmlvci4gIFdpdGhvdXQgdGhpcywgY2xlYXIoTU9OVEgpIGhhcyBubyBlZmZlY3QsCisgICAgICAgIC8vIHNpbmNlIHRoZSBpbnRlcm5hbGx5IHNldCBKVUxJQU5fREFZIGlzIHVzZWQuCisgICAgICAgIGlmIChzdGFtcFtNSUxMSVNFQ09ORFNfSU5fREFZXSA+PSBNSU5JTVVNX1VTRVJfU1RBTVAgJiYKKyAgICAgICAgICAgIG5ld2VzdFN0YW1wKEFNX1BNLCBNSUxMSVNFQ09ORCwgVU5TRVQpIDw9IHN0YW1wW01JTExJU0VDT05EU19JTl9EQVldKSB7CisgICAgICAgICAgICBtaWxsaXNJbkRheSA9IGludGVybmFsR2V0KE1JTExJU0VDT05EU19JTl9EQVkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWlsbGlzSW5EYXkgPSBjb21wdXRlTWlsbGlzSW5EYXkoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbXB1dGUgdGhlIHRpbWUgem9uZSBvZmZzZXQgYW5kIERTVCBvZmZzZXQuICBUaGVyZSBhcmUgdHdvIHBvdGVudGlhbAorICAgICAgICAvLyBhbWJpZ3VpdGllcyBoZXJlLiAgV2UnbGwgYXNzdW1lIGEgMjowMCBhbSAod2FsbCB0aW1lKSBzd2l0Y2hvdmVyIHRpbWUKKyAgICAgICAgLy8gZm9yIGRpc2N1c3Npb24gcHVycG9zZXMgaGVyZS4KKyAgICAgICAgLy8gMS4gVGhlIHRyYW5zaXRpb24gaW50byBEU1QuICBIZXJlLCBhIGRlc2lnbmF0ZWQgdGltZSBvZiAyOjAwIGFtIC0gMjo1OSBhbQorICAgICAgICAvLyAgICBjYW4gYmUgaW4gc3RhbmRhcmQgb3IgaW4gRFNUIGRlcGVuZGluZy4gIEhvd2V2ZXIsIDI6MDAgYW0gaXMgYW4gaW52YWxpZAorICAgICAgICAvLyAgICByZXByZXNlbnRhdGlvbiAodGhlIHJlcHJlc2VudGF0aW9uIGp1bXBzIGZyb20gMTo1OTo1OSBhbSBTdGQgdG8gMzowMDowMCBhbSBEU1QpLgorICAgICAgICAvLyAgICBXZSBhc3N1bWUgc3RhbmRhcmQgdGltZS4KKyAgICAgICAgLy8gMi4gVGhlIHRyYW5zaXRpb24gb3V0IG9mIERTVC4gIEhlcmUsIGEgZGVzaWduYXRlZCB0aW1lIG9mIDE6MDAgYW0gLSAxOjU5IGFtCisgICAgICAgIC8vICAgIGNhbiBiZSBpbiBzdGFuZGFyZCBvciBEU1QuICBCb3RoIGFyZSB2YWxpZCByZXByZXNlbnRhdGlvbnMgKHRoZSByZXAKKyAgICAgICAgLy8gICAganVtcHMgZnJvbSAxOjU5OjU5IERTVCB0byAxOjAwOjAwIFN0ZCkuCisgICAgICAgIC8vICAgIEFnYWluLCB3ZSBhc3N1bWUgc3RhbmRhcmQgdGltZS4KKyAgICAgICAgLy8gV2UgdXNlIHRoZSBUaW1lWm9uZSBvYmplY3QsIHVubGVzcyB0aGUgdXNlciBoYXMgZXhwbGljaXRseSBzZXQgdGhlIFpPTkVfT0ZGU0VUCisgICAgICAgIC8vIG9yIERTVF9PRkZTRVQgZmllbGRzOyB0aGVuIHdlIHVzZSB0aG9zZSBmaWVsZHMuCisgICAgICAgIGlmIChzdGFtcFtaT05FX09GRlNFVF0gPj0gTUlOSU1VTV9VU0VSX1NUQU1QIHx8CisgICAgICAgICAgICBzdGFtcFtEU1RfT0ZGU0VUXSA+PSBNSU5JTVVNX1VTRVJfU1RBTVApIHsKKyAgICAgICAgICAgIG1pbGxpc0luRGF5IC09IGludGVybmFsR2V0KFpPTkVfT0ZGU0VUKSArIGludGVybmFsR2V0KERTVF9PRkZTRVQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWlsbGlzSW5EYXkgLT0gY29tcHV0ZVpvbmVPZmZzZXQobWlsbGlzLCBtaWxsaXNJbkRheSk7CisgICAgICAgIH0KKworICAgICAgICB0aW1lID0gbWlsbGlzICsgbWlsbGlzSW5EYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgbWlsbGlzZWNvbmRzIGluIHRoZSBkYXkgZnJvbSB0aGUgZmllbGRzLiAgVGhpcyBpcyBhCisgICAgICogdmFsdWUgZnJvbSAwIHRvIDIzOjU5OjU5Ljk5OSBpbmNsdXNpdmUsIHVubGVzcyBmaWVsZHMgYXJlIG91dCBvZgorICAgICAqIHJhbmdlLCBpbiB3aGljaCBjYXNlIGl0IGNhbiBiZSBhbiBhcmJpdHJhcnkgdmFsdWUuICBUaGlzIHZhbHVlCisgICAgICogcmVmbGVjdHMgbG9jYWwgem9uZSB3YWxsIHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjb21wdXRlTWlsbGlzSW5EYXkoKSB7CisgICAgICAgIC8vIERvIHRoZSB0aW1lIHBvcnRpb24gb2YgdGhlIGNvbnZlcnNpb24uCisKKyAgICAgICAgaW50IG1pbGxpc0luRGF5ID0gMDsKKworICAgICAgICAvLyBGaW5kIHRoZSBiZXN0IHNldCBvZiBmaWVsZHMgc3BlY2lmeWluZyB0aGUgdGltZSBvZiBkYXkuICBUaGVyZQorICAgICAgICAvLyBhcmUgb25seSB0d28gcG9zc2liaWxpdGllcyBoZXJlOyB0aGUgSE9VUl9PRl9EQVkgb3IgdGhlCisgICAgICAgIC8vIEFNX1BNIGFuZCB0aGUgSE9VUi4KKyAgICAgICAgaW50IGhvdXJPZkRheVN0YW1wID0gc3RhbXBbSE9VUl9PRl9EQVldOworICAgICAgICBpbnQgaG91clN0YW1wID0gTWF0aC5tYXgoc3RhbXBbSE9VUl0sIHN0YW1wW0FNX1BNXSk7CisgICAgICAgIGludCBiZXN0U3RhbXAgPSAoaG91clN0YW1wID4gaG91ck9mRGF5U3RhbXApID8gaG91clN0YW1wIDogaG91ck9mRGF5U3RhbXA7CisKKyAgICAgICAgLy8gSG91cnMKKyAgICAgICAgaWYgKGJlc3RTdGFtcCAhPSBVTlNFVCkgeworICAgICAgICAgICAgaWYgKGJlc3RTdGFtcCA9PSBob3VyT2ZEYXlTdGFtcCkgeworICAgICAgICAgICAgICAgIC8vIERvbid0IG5vcm1hbGl6ZSBoZXJlOyBsZXQgb3ZlcmZsb3cgYnVtcCBpbnRvIHRoZSBuZXh0IHBlcmlvZC4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBob3cgd2UgaGFuZGxlIG90aGVyIGZpZWxkcy4KKyAgICAgICAgICAgICAgICBtaWxsaXNJbkRheSArPSBpbnRlcm5hbEdldChIT1VSX09GX0RBWSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIERvbid0IG5vcm1hbGl6ZSBoZXJlOyBsZXQgb3ZlcmZsb3cgYnVtcCBpbnRvIHRoZSBuZXh0IHBlcmlvZC4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBob3cgd2UgaGFuZGxlIG90aGVyIGZpZWxkcy4KKyAgICAgICAgICAgICAgICBtaWxsaXNJbkRheSArPSBpbnRlcm5hbEdldChIT1VSKTsKKyAgICAgICAgICAgICAgICBtaWxsaXNJbkRheSArPSAxMiAqIGludGVybmFsR2V0KEFNX1BNKTsgLy8gRGVmYXVsdCB3b3JrcyBmb3IgdW5zZXQgQU1fUE0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIHVzZSB0aGUgZmFjdCB0aGF0IHVuc2V0ID09IDA7IHdlIHN0YXJ0IHdpdGggbWlsbGlzSW5EYXkKKyAgICAgICAgLy8gPT0gSE9VUl9PRl9EQVkuCisgICAgICAgIG1pbGxpc0luRGF5ICo9IDYwOworICAgICAgICBtaWxsaXNJbkRheSArPSBpbnRlcm5hbEdldChNSU5VVEUpOyAvLyBub3cgaGF2ZSBtaW51dGVzCisgICAgICAgIG1pbGxpc0luRGF5ICo9IDYwOworICAgICAgICBtaWxsaXNJbkRheSArPSBpbnRlcm5hbEdldChTRUNPTkQpOyAvLyBub3cgaGF2ZSBzZWNvbmRzCisgICAgICAgIG1pbGxpc0luRGF5ICo9IDEwMDA7CisgICAgICAgIG1pbGxpc0luRGF5ICs9IGludGVybmFsR2V0KE1JTExJU0VDT05EKTsgLy8gbm93IGhhdmUgbWlsbGlzCisKKyAgICAgICAgcmV0dXJuIG1pbGxpc0luRGF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGNhbiBhc3N1bWUgRVhURU5ERURfWUVBUiBoYXMgYmVlbiBzZXQuCisgICAgICogQHBhcmFtIG1pbGxpcyBtaWxsaXNlY29uZHMgb2YgdGhlIGRhdGUgZmllbGRzIChsb2NhbCBtaWRuaWdodCBtaWxsaXMpCisgICAgICogQHBhcmFtIG1pbGxpc0luRGF5IG1pbGxpc2Vjb25kcyBvZiB0aGUgdGltZSBmaWVsZHM7IG1heSBiZSBvdXQKKyAgICAgKiBvciByYW5nZS4KKyAgICAgKiBAcmV0dXJuIHRvdGFsIHpvbmUgb2Zmc2V0IChyYXcgKyBEU1QpIGZvciB0aGUgZ2l2ZW4gbW9tZW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjb21wdXRlWm9uZU9mZnNldChsb25nIG1pbGxpcywgaW50IG1pbGxpc0luRGF5KSB7CisgICAgICAgIGludCBvZmZzZXRzW10gPSBuZXcgaW50WzJdOworICAgICAgICB6b25lLmdldE9mZnNldChtaWxsaXMgKyBtaWxsaXNJbkRheSwgdHJ1ZSwgb2Zmc2V0cyk7CisgICAgICAgIHJldHVybiBvZmZzZXRzWzBdICsgb2Zmc2V0c1sxXTsKKworICAgICAgICAvLyBOb3RlOiBCZWNhdXNlIHdlIHBhc3MgaW4gd2FsbCBtaWxsaXNJbkRheSwgcmF0aGVyIHRoYW4KKyAgICAgICAgLy8gc3RhbmRhcmQgbWlsbGlzSW5EYXksIHdlIGludGVycHJldCAiMTowMCBhbSIgb24gdGhlIGRheQorICAgICAgICAvLyBvZiBjZXNzYXRpb24gb2YgRFNUIGFzICIxOjAwIGFtIFN0ZCIgKGFzc3VtaW5nIHRoZSB0aW1lCisgICAgICAgIC8vIG9mIGNlc3NhdGlvbiBpcyAyOjAwIGFtKS4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBKdWxpYW4gZGF5IG51bWJlciBhcyBzcGVjaWZpZWQgYnkgdGhpcyBjYWxlbmRhcidzIGZpZWxkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNvbXB1dGVKdWxpYW5EYXkoKSB7CisKKyAgICAgICAgLy8gV2Ugd2FudCB0byBzZWUgaWYgYW55IG9mIHRoZSBkYXRlIGZpZWxkcyBpcyBuZXdlciB0aGFuIHRoZQorICAgICAgICAvLyBKVUxJQU5fREFZLiAgSWYgbm90LCB0aGVuIHdlIHVzZSBKVUxJQU5fREFZLiAgSWYgc28sIHRoZW4gd2UgZG8KKyAgICAgICAgLy8gdGhlIG5vcm1hbCByZXNvbHV0aW9uLiAgV2Ugb25seSB1c2UgSlVMSUFOX0RBWSBpZiBpdCBoYXMgYmVlbgorICAgICAgICAvLyBzZXQgYnkgdGhlIHVzZXIuICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgY2FsbGVyIHRvIHNldAorICAgICAgICAvLyB0aGUgY2FsZW5kYXIgdG8gYSB0aW1lIGFuZCBjYWxsIGNsZWFyKE1PTlRIKSB0byByZXNldCB0aGUgTU9OVEgKKyAgICAgICAgLy8gdG8gSmFudWFyeS4gIFRoaXMgaXMgbGVnYWN5IGJlaGF2aW9yLiAgV2l0aG91dCB0aGlzLAorICAgICAgICAvLyBjbGVhcihNT05USCkgaGFzIG5vIGVmZmVjdCwgc2luY2UgdGhlIGludGVybmFsbHkgc2V0IEpVTElBTl9EQVkKKyAgICAgICAgLy8gaXMgdXNlZC4KKyAgICAgICAgaWYgKHN0YW1wW0pVTElBTl9EQVldID49IE1JTklNVU1fVVNFUl9TVEFNUCkgeworICAgICAgICAgICAgaW50IGJlc3RTdGFtcCA9IG5ld2VzdFN0YW1wKEVSQSwgREFZX09GX1dFRUtfSU5fTU9OVEgsIFVOU0VUKTsKKyAgICAgICAgICAgIGJlc3RTdGFtcCA9IG5ld2VzdFN0YW1wKFlFQVJfV09ZLCBFWFRFTkRFRF9ZRUFSLCBiZXN0U3RhbXApOworICAgICAgICAgICAgaWYgKGJlc3RTdGFtcCA8PSBzdGFtcFtKVUxJQU5fREFZXSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEdldChKVUxJQU5fREFZKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBiZXN0RmllbGQgPSByZXNvbHZlRmllbGRzKGdldEZpZWxkUmVzb2x1dGlvblRhYmxlKCkpOworICAgICAgICBpZiAoYmVzdEZpZWxkIDwgMCkgeworICAgICAgICAgICAgYmVzdEZpZWxkID0gREFZX09GX01PTlRIOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoYmVzdEZpZWxkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpZWxkIHJlc29sdXRpb24gYXJyYXkgZm9yIHRoaXMgY2FsZW5kYXIuICBDYWxlbmRhcnMgdGhhdAorICAgICAqIGRlZmluZSBhZGRpdGlvbmFsIGZpZWxkcyBvciBjaGFuZ2UgdGhlIHNlbWFudGljcyBvZiBleGlzdGluZyBmaWVsZHMKKyAgICAgKiBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWRqdXN0IHRoZSBmaWVsZCByZXNvbHV0aW9uIHNlbWFudGljcworICAgICAqIGFjY29yZGluZ2x5LiAgT3RoZXIgc3ViY2xhc3NlcyBzaG91bGQgbm90IG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3Jlc29sdmVGaWVsZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50W11bXVtdIGdldEZpZWxkUmVzb2x1dGlvblRhYmxlKCkgeworICAgICAgICByZXR1cm4gREFURV9QUkVDRURFTkNFOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mIHRoZQorICAgICAqIGdpdmVuIG1vbnRoIGluIHRoZSBnaXZlbiBleHRlbmRlZCB5ZWFyLiAgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUKKyAgICAgKiB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgdGhlaXIgY2FsZW5kYXIgc3lzdGVtLgorICAgICAqIEBwYXJhbSBleWVhciB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgemVyby1iYXNlZCBtb250aCwgb3IgMCBpZiB1c2VNb250aCBpcyBmYWxzZQorICAgICAqIEBwYXJhbSB1c2VNb250aCBpZiBmYWxzZSwgY29tcHV0ZSB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mCisgICAgICogdGhlIGdpdmVuIHllYXIsIG90aGVyd2lzZSwgY29tcHV0ZSB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mCisgICAgICogdGhlIGdpdmVuIG1vbnRoCisgICAgICogQHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0CisgICAgICogZGF5IG9mIHRoZSBnaXZlbiBtb250aCBhbmQgeWVhcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGFic3RyYWN0IHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVzZU1vbnRoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZXh0ZW5kZWQgeWVhciBkZWZpbmVkIGJ5IHRoZSBjdXJyZW50IGZpZWxkcy4gIFRoaXMgd2lsbAorICAgICAqIHVzZSB0aGUgRVhURU5ERURfWUVBUiBmaWVsZCBvciB0aGUgWUVBUiBhbmQgc3VwcmEteWVhciBmaWVsZHMgKHN1Y2gKKyAgICAgKiBhcyBFUkEpIHNwZWNpZmljIHRvIHRoZSBjYWxlbmRhciBzeXN0ZW0sIGRlcGVuZGluZyBvbiB3aGljaCBzZXQgb2YKKyAgICAgKiBmaWVsZHMgaXMgbmV3ZXIuCisgICAgICogQHJldHVybiB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGFic3RyYWN0IHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisKKyAgICAvLyAoVGhlIGZvbGxvd2luZyBtZXRob2QgaXMgbm90IGNhbGxlZCBiZWNhdXNlIGFsbCBleGlzdGluZyBzdWJjbGFzc2VzCisgICAgLy8gb3ZlcnJpZGUgaXQuICAyMDAzLTA2LTExIElDVSAyLjYgQWxhbikKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4gbW9udGggb2YgdGhlIGdpdmVuIGV4dGVuZGVkCisgICAgICogeWVhciBvZiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMKKyAgICAgKiBtZXRob2QgaWYgdGhleSBjYW4gcHJvdmlkZSBhIG1vcmUgY29ycmVjdCBvciBtb3JlIGVmZmljaWVudAorICAgICAqIGltcGxlbWVudGF0aW9uIHRoYW4gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaW4gQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRNb250aExlbmd0aChpbnQgZXh0ZW5kZWRZZWFyLCBpbnQgbW9udGgpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGV4dGVuZGVkWWVhciwgbW9udGgrMSwgdHJ1ZSkgLQorICAgICAgICAgICAgICAgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXh0ZW5kZWRZZWFyLCBtb250aCwgdHJ1ZSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4gZXh0ZW5kZWQgeWVhciBvZiB0aGlzCisgICAgICogY2FsZW5kYXIgc3lzdGVtLiAgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaWYgdGhleSBjYW4KKyAgICAgKiBwcm92aWRlIGEgbW9yZSBjb3JyZWN0IG9yIG1vcmUgZWZmaWNpZW50IGltcGxlbWVudGF0aW9uIHRoYW4gdGhlCisgICAgICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldFllYXJMZW5ndGgoaW50IGV5ZWFyKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVDb21wdXRlTW9udGhTdGFydChleWVhcisxLCAwLCBmYWxzZSkgLQorICAgICAgICAgICAgICAgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXllYXIsIDAsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgdXNlIGFkZGl0aW9uYWwgZmllbGRzIGJleW9uZCB0aG9zZSBkZWZpbmVkIGluCisgICAgICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXR1cm4gYW4KKyAgICAgKiA8Y29kZT5pbnRbXTwvY29kZT4gYXJyYXkgb2YgdGhlIGFwcHJvcHJpYXRlIGxlbmd0aC4gIFRoZSBsZW5ndGgKKyAgICAgKiBtdXN0IGJlIGF0IGxlYXN0IDxjb2RlPkJBU0VfRklFTERfQ09VTlQ8L2NvZGU+IGFuZCBubyBtb3JlIHRoYW4KKyAgICAgKiA8Y29kZT5NQVhfRklFTERfQ09VTlQ8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnRbXSBoYW5kbGVDcmVhdGVGaWVsZHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgaW50W0JBU0VfRklFTERfQ09VTlRdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzLiAKKyAgICAgKiBDYWxsZWQgYnkgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheS4gIFJldHVybnMgdGhlIGRlZmF1bHQgbW9udGggKDAtYmFzZWQpIGZvciB0aGUgeWVhciwKKyAgICAgKiB0YWtpbmcgeWVhciBhbmQgZXJhIGludG8gYWNjb3VudC4gIERlZmF1bHRzIHRvIDAgKEpBTlVBUlkpIGZvciBHcmVnb3JpYW4uCisgICAgICogQHBhcmFtIGV4dGVuZGVkWWVhciB0aGUgZXh0ZW5kZWRZZWFyLCBhcyByZXR1cm5lZCBieSBoYW5kbGVHZXRFeHRlbmRlZFllYXIKKyAgICAgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IG1vbnRoCisgICAgICogQHByb3Zpc2lvbmFsIElDVSAzLjYKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBzZWUgI01PTlRICisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXREZWZhdWx0TW9udGhJblllYXIoaW50IGV4dGVuZGVkWWVhcikgeworICAgICAgICByZXR1cm4gQ2FsZW5kYXIuSkFOVUFSWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzLiAKKyAgICAgKiBDYWxsZWQgYnkgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheS4gIFJldHVybnMgdGhlIGRlZmF1bHQgZGF5ICgxLWJhc2VkKSBmb3IgdGhlIG1vbnRoLAorICAgICAqIHRha2luZyBjdXJyZW50bHktc2V0IHllYXIgYW5kIGVyYSBpbnRvIGFjY291bnQuICBEZWZhdWx0cyB0byAxIGZvciBHcmVnb3JpYW4uCisgICAgICogQHBhcmFtIGV4dGVuZGVkWWVhciB0aGUgZXh0ZW5kZWRZZWFyLCBhcyByZXR1cm5lZCBieSBoYW5kbGVHZXRFeHRlbmRlZFllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIG1vbnRoLCBhcyByZXR1cm5lZCBieSBnZXREZWZhdWx0TW9udGhJblllYXIKKyAgICAgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGRheSBvZiB0aGUgbW9udGgKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBJQ1UgMy42CisgICAgICogQHNlZSAjREFZX09GX01PTlRICisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXREZWZhdWx0RGF5SW5Nb250aChpbnQgZXh0ZW5kZWRZZWFyLCBpbnQgbW9udGgpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzLiAgVGhpcyBtZXRob2QgY2FsbHMKKyAgICAgKiBoYW5kbGVHZXRNb250aExlbmd0aCgpIHRvIG9idGFpbiB0aGUgY2FsZW5kYXItc3BlY2lmaWMgbW9udGgKKyAgICAgKiBsZW5ndGguCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlSnVsaWFuRGF5KGludCBiZXN0RmllbGQpIHsKKworICAgICAgICBib29sZWFuIHVzZU1vbnRoID0gKGJlc3RGaWVsZCA9PSBEQVlfT0ZfTU9OVEggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0RmllbGQgPT0gV0VFS19PRl9NT05USCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RGaWVsZCA9PSBEQVlfT0ZfV0VFS19JTl9NT05USCk7CisKKyAgICAgICAgaW50IHllYXIgPSBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVhURU5ERURfWUVBUiwgeWVhcik7CisKKyAgICAgICAgaW50IG1vbnRoID0gdXNlTW9udGggPyBpbnRlcm5hbEdldChNT05USCwgZ2V0RGVmYXVsdE1vbnRoSW5ZZWFyKHllYXIpKSA6IDA7CisgICAgICAgIAorICAgICAgICBpbnQgZG9tID0gaW50ZXJuYWxHZXQoREFZX09GX01PTlRILCBnZXREZWZhdWx0RGF5SW5Nb250aCh5ZWFyLCBtb250aCkpOworICAgICAgICAKKyAgICAgICAgLy8gR2V0IHRoZSBKdWxpYW4gZGF5IG9mIHRoZSBkYXkgQkVGT1JFIHRoZSBzdGFydCBvZiB0aGlzIHllYXIuCisgICAgICAgIC8vIElmIHVzZU1vbnRoIGlzIHRydWUsIGdldCB0aGUgZGF5IGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIG1vbnRoLgorICAgICAgICBpbnQganVsaWFuRGF5ID0gaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoeWVhciwgbW9udGgsIHVzZU1vbnRoKTsKKworICAgICAgICBpZiAoYmVzdEZpZWxkID09IERBWV9PRl9NT05USCkgeworICAgICAgICAgICAgaWYoaXNTZXQoREFZX09GX01PTlRIKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBqdWxpYW5EYXkgKyBpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgsIGdldERlZmF1bHREYXlJbk1vbnRoKHllYXIsIG1vbnRoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBqdWxpYW5EYXkgKyBnZXREZWZhdWx0RGF5SW5Nb250aCh5ZWFyLCBtb250aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYmVzdEZpZWxkID09IERBWV9PRl9ZRUFSKSB7CisgICAgICAgICAgICByZXR1cm4ganVsaWFuRGF5ICsgaW50ZXJuYWxHZXQoREFZX09GX1lFQVIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGZpcnN0RGF5T2ZXZWVrID0gZ2V0Rmlyc3REYXlPZldlZWsoKTsgLy8gTG9jYWxpemVkIGZkdworCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQganVsaWFuRGF5IGlzIHRoZSAwLWJhc2VkIGRheSBCRUZPUkUgdGhlIGZpcnN0IGRheSBvZgorICAgICAgICAvLyBKYW51YXJ5IDEsIHllYXIgMSBvZiB0aGUgZ2l2ZW4gY2FsZW5kYXIuICBJZiBqdWxpYW5EYXkgPT0gMCwgaXQKKyAgICAgICAgLy8gc3BlY2lmaWVzIChKYW4uIDEsIDEpIC0gMSwgaW4gd2hhdGV2ZXIgY2FsZW5kYXIgd2UgYXJlIHVzaW5nIChKdWxpYW4KKyAgICAgICAgLy8gb3IgR3JlZ29yaWFuKS4KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIG5lZWQgdG8gcHJvY2VzcyB0aGUgV0VFS19PRl9NT05USCBvcgorICAgICAgICAvLyBXRUVLX09GX1lFQVIsIHdoaWNoIGFyZSBzaW1pbGFyLCBvciB0aGUgREFZX09GX1dFRUtfSU5fTU9OVEguCisgICAgICAgIC8vIEZpcnN0LCBwZXJmb3JtIGluaXRpYWwgc2hhcmVkIGNvbXB1dGF0aW9ucy4gIFRoZXNlIGxvY2F0ZSB0aGUKKyAgICAgICAgLy8gZmlyc3Qgd2VlayBvZiB0aGUgcGVyaW9kLgorCisgICAgICAgIC8vIEdldCB0aGUgMC1iYXNlZCBsb2NhbGl6ZWQgRE9XIG9mIGRheSBvbmUgb2YgdGhlIG1vbnRoIG9yIHllYXIuCisgICAgICAgIC8vIFZhbGlkIHJhbmdlIDAuLjYuCisgICAgICAgIGludCBmaXJzdCA9IGp1bGlhbkRheVRvRGF5T2ZXZWVrKGp1bGlhbkRheSArIDEpIC0gZmlyc3REYXlPZldlZWs7CisgICAgICAgIGlmIChmaXJzdCA8IDApIHsKKyAgICAgICAgICAgIGZpcnN0ICs9IDc7CisgICAgICAgIH0KKworICAgICAgICAvLyBHZXQgemVyby1iYXNlZCBsb2NhbGl6ZWQgRE9XLCB2YWxpZCByYW5nZSAwLi42LiAgVGhpcyBpcyB0aGUgRE9XCisgICAgICAgIC8vIHdlIGFyZSBsb29raW5nIGZvci4KKyAgICAgICAgaW50IGRvd0xvY2FsID0gMDsKKyAgICAgICAgc3dpdGNoIChyZXNvbHZlRmllbGRzKERPV19QUkVDRURFTkNFKSkgeworICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICAgICAgZG93TG9jYWwgPSBpbnRlcm5hbEdldChEQVlfT0ZfV0VFSykgLSBmaXJzdERheU9mV2VlazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgICAgIGRvd0xvY2FsID0gaW50ZXJuYWxHZXQoRE9XX0xPQ0FMKSAtIDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkb3dMb2NhbCA9IGRvd0xvY2FsICUgNzsKKyAgICAgICAgaWYgKGRvd0xvY2FsIDwgMCkgeworICAgICAgICAgICAgZG93TG9jYWwgKz0gNzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHRhcmdldCBET1cgKGRvd0xvY2FsKSBpbiB0aGUgbW9udGggb3IgeWVhci4KKyAgICAgICAgLy8gQWN0dWFsbHksIGl0IG1heSBiZSBqdXN0IGJlZm9yZSB0aGUgZmlyc3Qgb2YgdGhlIG1vbnRoIG9yIHllYXIuCisgICAgICAgIC8vIEl0IHdpbGwgYmUgYW4gaW50ZWdlciBmcm9tIC01Li43LgorICAgICAgICBpbnQgZGF0ZSA9IDEgLSBmaXJzdCArIGRvd0xvY2FsOworCisgICAgICAgIGlmIChiZXN0RmllbGQgPT0gREFZX09GX1dFRUtfSU5fTU9OVEgpIHsKKworICAgICAgICAgICAgLy8gQWRqdXN0IHRoZSB0YXJnZXQgRE9XIHRvIGJlIGluIHRoZSBtb250aCBvciB5ZWFyLgorICAgICAgICAgICAgaWYgKGRhdGUgPCAxKSB7CisgICAgICAgICAgICAgICAgZGF0ZSArPSA3OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUaGUgb25seSB0cmlja2luZXNzIG9jY3VycyBpZiB0aGUgZGF5LW9mLXdlZWstaW4tbW9udGggaXMKKyAgICAgICAgICAgIC8vIG5lZ2F0aXZlLgorICAgICAgICAgICAgaW50IGRpbSA9IGludGVybmFsR2V0KERBWV9PRl9XRUVLX0lOX01PTlRILCAxKTsKKyAgICAgICAgICAgIGlmIChkaW0gPj0gMCkgeworICAgICAgICAgICAgICAgIGRhdGUgKz0gNyooZGltIC0gMSk7CisKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gTW92ZSBkYXRlIHRvIHRoZSBsYXN0IG9mIHRoaXMgZGF5LW9mLXdlZWsgaW4gdGhpcyBtb250aCwKKyAgICAgICAgICAgICAgICAvLyB0aGVuIGJhY2sgdXAgYXMgbmVlZGVkLiAgSWYgZGltPT0tMSwgd2UgZG9uJ3QgYmFjayB1cCBhdAorICAgICAgICAgICAgICAgIC8vIGFsbC4gIElmIGRpbT09LTIsIHdlIGJhY2sgdXAgb25jZSwgZXRjLiAgRG9uJ3QgYmFjayB1cAorICAgICAgICAgICAgICAgIC8vIHBhc3QgdGhlIGZpcnN0IG9mIHRoZSBnaXZlbiBkYXktb2Ytd2VlayBpbiB0aGlzIG1vbnRoLgorICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBoYW5kbGUgLTIsIC0zLCBldGMuIGNvcnJlY3RseSwgZXZlbiB0aG91Z2gKKyAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgPCAtMSBhcmUgdGVjaG5pY2FsbHkgZGlzYWxsb3dlZC4KKyAgICAgICAgICAgICAgICBpbnQgbSA9IGludGVybmFsR2V0KE1PTlRILCBKQU5VQVJZKTsKKyAgICAgICAgICAgICAgICBpbnQgbW9udGhMZW5ndGggPSBoYW5kbGVHZXRNb250aExlbmd0aCh5ZWFyLCBtKTsKKyAgICAgICAgICAgICAgICBkYXRlICs9ICgobW9udGhMZW5ndGggLSBkYXRlKSAvIDcgKyBkaW0gKyAxKSAqIDc7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBhc3NlcnQoYmVzdEZpZWxkID09IFdFRUtfT0ZfTU9OVEggfHwgYmVzdEZpZWxkID09IFdFRUtfT0ZfWUVBUikKKworICAgICAgICAgICAgLy8gQWRqdXN0IGZvciBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlaworICAgICAgICAgICAgaWYgKCg3IC0gZmlyc3QpIDwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKSB7CisgICAgICAgICAgICAgICAgZGF0ZSArPSA3OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBOb3cgYWRqdXN0IGZvciB0aGUgd2VlayBudW1iZXIuCisgICAgICAgICAgICBkYXRlICs9IDcgKiAoaW50ZXJuYWxHZXQoYmVzdEZpZWxkKSAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGp1bGlhbkRheSArIGRhdGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgSnVsaWFuIGRheSBvZiBhIG1vbnRoIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICogU3ViY2xhc3NlcyBtYXkgY2FsbCB0aGlzIG1ldGhvZCB0byBwZXJmb3JtIGEgR3JlZ29yaWFuIGNhbGVuZGFyCisgICAgICogZmllbGRzLT5taWxsaXMgY29tcHV0YXRpb24uICBUbyBwZXJmb3JtIGEgR3JlZ29yaWFuIGNhbGVuZGFyCisgICAgICogbWlsbGlzLT5maWVsZHMgY29tcHV0YXRpb24sIGNhbGwgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpLgorICAgICAqIEBwYXJhbSB5ZWFyIGV4dGVuZGVkIEdyZWdvcmlhbiB5ZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHplcm8tYmFzZWQgR3JlZ29yaWFuIG1vbnRoCisgICAgICogQHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0CisgICAgICogZGF5IG9mIHRoZSBnaXZlbiBtb250aCBpbiB0aGUgZ2l2ZW4gZXh0ZW5kZWQgeWVhcgorICAgICAqIEBzZWUgI2NvbXB1dGVHcmVnb3JpYW5GaWVsZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNvbXB1dGVHcmVnb3JpYW5Nb250aFN0YXJ0KGludCB5ZWFyLCBpbnQgbW9udGgpIHsKKworICAgICAgICAvLyBJZiB0aGUgbW9udGggaXMgb3V0IG9mIHJhbmdlLCBhZGp1c3QgaXQgaW50byByYW5nZSwgYW5kCisgICAgICAgIC8vIG1vZGlmeSB0aGUgZXh0ZW5kZWQgeWVhciB2YWx1ZSBhY2NvcmRpbmdseS4KKyAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKSB7CisgICAgICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICAgICAgeWVhciArPSBmbG9vckRpdmlkZShtb250aCwgMTIsIHJlbSk7CisgICAgICAgICAgICBtb250aCA9IHJlbVswXTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNMZWFwID0gKHllYXIlNCA9PSAwKSAmJiAoKHllYXIlMTAwICE9IDApIHx8ICh5ZWFyJTQwMCA9PSAwKSk7CisgICAgICAgIGludCB5ID0geWVhciAtIDE7CisgICAgICAgIC8vIFRoaXMgY29tcHV0YXRpb24gaXMgYWN0dWFsbHkgLi4uICsgKEpBTl8xXzFfSlVMSUFOX0RBWSAtIDMpICsgMi4KKyAgICAgICAgLy8gQWRkIDIgYmVjYXVzZSBHcmVnb3JpYW4gY2FsZW5kYXIgc3RhcnRzIDIgZGF5cyBhZnRlciBKdWxpYW4KKyAgICAgICAgLy8gY2FsZW5kYXIuCisgICAgICAgIGludCBqdWxpYW5EYXkgPSAzNjUqeSArIGZsb29yRGl2aWRlKHksIDQpIC0gZmxvb3JEaXZpZGUoeSwgMTAwKSArCisgICAgICAgICAgICBmbG9vckRpdmlkZSh5LCA0MDApICsgSkFOXzFfMV9KVUxJQU5fREFZIC0gMTsKKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGp1bGlhbkRheSBpbmRpY2F0ZXMgdGhlIGRheSBCRUZPUkUgdGhlIGZpcnN0IGRheQorICAgICAgICAvLyBvZiBKYW51YXJ5IDEsIDxleWVhcj4gb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgICAgaWYgKG1vbnRoICE9IDApIHsKKyAgICAgICAgICAgIGp1bGlhbkRheSArPSBHUkVHT1JJQU5fTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcD8zOjJdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGp1bGlhbkRheTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdWJjbGFzcyBBUEkKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gKFRoZSBmb2xsb3dpbmcgbWV0aG9kIGlzIG5vdCBjYWxsZWQgYmVjYXVzZSBhbGwgZXhpc3Rpbmcgc3ViY2xhc3NlcworICAgIC8vIG92ZXJyaWRlIGl0LiAgMjAwMy0wNi0xMSBJQ1UgMi42IEFsYW4pCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGNvbXB1dGUgc2V2ZXJhbCBmaWVsZHMKKyAgICAgKiBzcGVjaWZpYyB0byBlYWNoIGNhbGVuZGFyIHN5c3RlbS4gIFRoZXNlIGFyZToKKyAgICAgKgorICAgICAqIDx1bD48bGk+RVJBCisgICAgICogPGxpPllFQVIKKyAgICAgKiA8bGk+TU9OVEgKKyAgICAgKiA8bGk+REFZX09GX01PTlRICisgICAgICogPGxpPkRBWV9PRl9ZRUFSCisgICAgICogPGxpPkVYVEVOREVEX1lFQVI8L3VsPgorICAgICAqCisgICAgICogU3ViY2xhc3NlcyBjYW4gcmVmZXIgdG8gdGhlIERBWV9PRl9XRUVLIGFuZCBET1dfTE9DQUwgZmllbGRzLCB3aGljaAorICAgICAqIHdpbGwgYmUgc2V0IHdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkLiAgU3ViY2xhc3NlcyBjYW4gYWxzbyBjYWxsCisgICAgICogdGhlIGdldEdyZWdvcmlhblh4eCgpIG1ldGhvZHMgdG8gb2J0YWluIEdyZWdvcmlhbiBjYWxlbmRhcgorICAgICAqIGVxdWl2YWxlbnRzIGZvciB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4KKyAgICAgKgorICAgICAqIDxwPkluIGFkZGl0aW9uLCBzdWJjbGFzc2VzIHNob3VsZCBjb21wdXRlIGFueSBzdWJjbGFzcy1zcGVjaWZpYworICAgICAqIGZpZWxkcywgdGhhdCBpcywgZmllbGRzIGZyb20gQkFTRV9GSUVMRF9DT1VOVCB0bworICAgICAqIGdldEZpZWxkQ291bnQoKSAtIDEuCisgICAgICoKKyAgICAgKiA8cD5UaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50cworICAgICAqIGEgcHVyZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBpbnRlcm5hbFNldChNT05USCwgZ2V0R3JlZ29yaWFuTW9udGgoKSk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9NT05USCwgZ2V0R3JlZ29yaWFuRGF5T2ZNb250aCgpKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGdldEdyZWdvcmlhbkRheU9mWWVhcigpKTsKKyAgICAgICAgaW50IGV5ZWFyID0gZ2V0R3JlZ29yaWFuWWVhcigpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCBleWVhcik7CisgICAgICAgIGludCBlcmEgPSBHcmVnb3JpYW5DYWxlbmRhci5BRDsKKyAgICAgICAgaWYgKGV5ZWFyIDwgMSkgeworICAgICAgICAgICAgZXJhID0gR3JlZ29yaWFuQ2FsZW5kYXIuQkM7CisgICAgICAgICAgICBleWVhciA9IDEgLSBleWVhcjsKKyAgICAgICAgfQorICAgICAgICBpbnRlcm5hbFNldChFUkEsIGVyYSk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIGV5ZWFyKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdWJjbGFzcyBBUEkKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBjYWxsCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIgb24gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBhcyBjb21wdXRlZCBieQorICAgICAqIDxjb2RlPmNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKTwvY29kZT4uCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbkZpZWxkcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0R3JlZ29yaWFuWWVhcigpIHsKKyAgICAgICAgcmV0dXJuIGdyZWdvcmlhblllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb250aCAoMC1iYXNlZCkgb24gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBhcyBjb21wdXRlZCBieQorICAgICAqIDxjb2RlPmNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKTwvY29kZT4uCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbkZpZWxkcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0R3JlZ29yaWFuTW9udGgoKSB7CisgICAgICAgIHJldHVybiBncmVnb3JpYW5Nb250aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRheSBvZiB5ZWFyICgxLWJhc2VkKSBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGFzCisgICAgICogY29tcHV0ZWQgYnkgPGNvZGU+Y29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuRmllbGRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRHcmVnb3JpYW5EYXlPZlllYXIoKSB7CisgICAgICAgIHJldHVybiBncmVnb3JpYW5EYXlPZlllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgb2YgbW9udGggKDEtYmFzZWQpIG9uIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgYXMKKyAgICAgKiBjb21wdXRlZCBieSA8Y29kZT5jb21wdXRlR3JlZ29yaWFuRmllbGRzKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI2NvbXB1dGVHcmVnb3JpYW5GaWVsZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEdyZWdvcmlhbkRheU9mTW9udGgoKSB7CisgICAgICAgIHJldHVybiBncmVnb3JpYW5EYXlPZk1vbnRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGZpZWxkcyBkZWZpbmVkIGJ5IHRoaXMgY2FsZW5kYXIuICBWYWxpZCBmaWVsZAorICAgICAqIGFyZ3VtZW50cyB0byA8Y29kZT5zZXQoKTwvY29kZT4gYW5kIDxjb2RlPmdldCgpPC9jb2RlPiBhcmUKKyAgICAgKiA8Y29kZT4wLi5nZXRGaWVsZENvdW50KCktMTwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRGaWVsZENvdW50KCkgeworICAgICAgICByZXR1cm4gZmllbGRzLmxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBmaWVsZCB0byBhIHZhbHVlLiAgU3ViY2xhc3NlcyBzaG91bGQgdXNlIHRoaXMgbWV0aG9kIHdoZW4KKyAgICAgKiBjb21wdXRpbmcgZmllbGRzLiAgSXQgc2V0cyB0aGUgdGltZSBzdGFtcCBpbiB0aGUKKyAgICAgKiA8Y29kZT5zdGFtcFtdPC9jb2RlPiBhcnJheSB0byA8Y29kZT5JTlRFUk5BTExZX1NFVDwvY29kZT4uICBJZiBhCisgICAgICogZmllbGQgdGhhdCBtYXkgbm90IGJlIHNldCBieSBzdWJjbGFzc2VzIGlzIHBhc3NlZCBpbiwgYW4KKyAgICAgKiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4gIFRoaXMgcHJldmVudHMKKyAgICAgKiBzdWJjbGFzc2VzIGZyb20gbW9kaWZ5aW5nIGZpZWxkcyB0aGF0IGFyZSBpbnRlbmRlZCB0byBiZQorICAgICAqIGNhbGVuZGFyLXN5c3RlbSBpbnZhcmlhbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgaW50ZXJuYWxTZXQoaW50IGZpZWxkLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgaWYgKCgoMSA8PCBmaWVsZCkgJiBpbnRlcm5hbFNldE1hc2spID09IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlN1YmNsYXNzIGNhbm5vdCBzZXQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZShmaWVsZCkpOworICAgICAgICB9CisgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB2YWx1ZTsKKyAgICAgICAgc3RhbXBbZmllbGRdID0gSU5URVJOQUxMWV9TRVQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W11bXSBHUkVHT1JJQU5fTU9OVEhfQ09VTlQgPSB7CisgICAgICAgIC8vbGVuIGxlbjIgICBzdCAgc3QyCisgICAgICAgIHsgIDMxLCAgMzEsICAgMCwgICAwIH0sIC8vIEphbgorICAgICAgICB7ICAyOCwgIDI5LCAgMzEsICAzMSB9LCAvLyBGZWIKKyAgICAgICAgeyAgMzEsICAzMSwgIDU5LCAgNjAgfSwgLy8gTWFyCisgICAgICAgIHsgIDMwLCAgMzAsICA5MCwgIDkxIH0sIC8vIEFwcgorICAgICAgICB7ICAzMSwgIDMxLCAxMjAsIDEyMSB9LCAvLyBNYXkKKyAgICAgICAgeyAgMzAsICAzMCwgMTUxLCAxNTIgfSwgLy8gSnVuCisgICAgICAgIHsgIDMxLCAgMzEsIDE4MSwgMTgyIH0sIC8vIEp1bAorICAgICAgICB7ICAzMSwgIDMxLCAyMTIsIDIxMyB9LCAvLyBBdWcKKyAgICAgICAgeyAgMzAsICAzMCwgMjQzLCAyNDQgfSwgLy8gU2VwCisgICAgICAgIHsgIDMxLCAgMzEsIDI3MywgMjc0IH0sIC8vIE9jdAorICAgICAgICB7ICAzMCwgIDMwLCAzMDQsIDMwNSB9LCAvLyBOb3YKKyAgICAgICAgeyAgMzEsICAzMSwgMzM0LCAzMzUgfSAgLy8gRGVjCisgICAgICAgIC8vIGxlbiAgbGVuZ3RoIG9mIG1vbnRoCisgICAgICAgIC8vIGxlbjIgbGVuZ3RoIG9mIG1vbnRoIGluIGEgbGVhcCB5ZWFyCisgICAgICAgIC8vIHN0ICAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBzdGFydCBvZiBtb250aAorICAgICAgICAvLyBzdDIgIGRheXMgaW4geWVhciBiZWZvcmUgbW9udGggaW4gbGVhcCB5ZWFyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXIuIFJldHVybnMgdHJ1ZSBpZiB0aGUKKyAgICAgKiBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSBnaXZlbiB5ZWFyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhcjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0dyZWdvcmlhbkxlYXBZZWFyKGludCB5ZWFyKSB7CisgICAgICAgIHJldHVybiAoeWVhciU0ID09IDApICYmICgoeWVhciUxMDAgIT0gMCkgfHwgKHllYXIlNDAwID09IDApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiBhIG1vbnRoIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICogQHBhcmFtIHkgdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBAcGFyYW0gbSB0aGUgMC1iYXNlZCBtb250aCBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4gbW9udGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBncmVnb3JpYW5Nb250aExlbmd0aChpbnQgeSwgaW50IG0pIHsKKyAgICAgICAgcmV0dXJuIEdSRUdPUklBTl9NT05USF9DT1VOVFttXVtpc0dyZWdvcmlhbkxlYXBZZWFyKHkpPzE6MF07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgYSBwcmV2aW91cyBtb250aCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSB5IHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHBhcmFtIG0gdGhlIDAtYmFzZWQgbW9udGggbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIG1vbnRoIHByZXZpb3VzIHRvIHRoZSBnaXZlbiBtb250aAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGdyZWdvcmlhblByZXZpb3VzTW9udGhMZW5ndGgoaW50IHksIGludCBtKSB7CisgICAgICAgIHJldHVybiAobSA+IDApID8gZ3JlZ29yaWFuTW9udGhMZW5ndGgoeSwgbS0xKSA6IDMxOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZSB0d28gbG9uZyBpbnRlZ2VycywgcmV0dXJuaW5nIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogPHA+CisgICAgICogVW5saWtlIHRoZSBidWlsdC1pbiBkaXZpc2lvbiwgdGhpcyBpcyBtYXRoZW1hdGljYWxseSB3ZWxsLWJlaGF2ZWQuCisgICAgICogRS5nLiwgPGNvZGU+LTEvNDwvY29kZT4gPT4gMAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEuCisgICAgICogQHBhcmFtIG51bWVyYXRvciB0aGUgbnVtZXJhdG9yCisgICAgICogQHBhcmFtIGRlbm9taW5hdG9yIGEgZGl2aXNvciB3aGljaCBtdXN0IGJlID4gMAorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgZmxvb3JEaXZpZGUobG9uZyBudW1lcmF0b3IsIGxvbmcgZGVub21pbmF0b3IpIHsKKyAgICAgICAgLy8gV2UgZG8gdGhpcyBjb21wdXRhdGlvbiBpbiBvcmRlciB0byBoYW5kbGUKKyAgICAgICAgLy8gYSBudW1lcmF0b3Igb2YgTG9uZy5NSU5fVkFMVUUgY29ycmVjdGx5CisgICAgICAgIHJldHVybiAobnVtZXJhdG9yID49IDApID8KKyAgICAgICAgICAgIG51bWVyYXRvciAvIGRlbm9taW5hdG9yIDoKKyAgICAgICAgICAgICgobnVtZXJhdG9yICsgMSkgLyBkZW5vbWluYXRvcikgLSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZSB0d28gaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgZmxvb3JEaXZpZGUoaW50IG51bWVyYXRvciwgaW50IGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIEludGVnZXIuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudCwgYW5kCisgICAgICogdGhlIG1vZHVsdXMgcmVtYWluZGVyLgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAgYW5kIDxjb2RlPi0xJTQ8L2NvZGU+ID0+IC0xLAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEgd2l0aCA8Y29kZT5yZW1haW5kZXJbMF08L2NvZGU+ID0+IDMuCisgICAgICogQHBhcmFtIG51bWVyYXRvciB0aGUgbnVtZXJhdG9yCisgICAgICogQHBhcmFtIGRlbm9taW5hdG9yIGEgZGl2aXNvciB3aGljaCBtdXN0IGJlID4gMAorICAgICAqIEBwYXJhbSByZW1haW5kZXIgYW4gYXJyYXkgb2YgYXQgbGVhc3Qgb25lIGVsZW1lbnQgaW4gd2hpY2ggdGhlIHZhbHVlCisgICAgICogPGNvZGU+bnVtZXJhdG9yIG1vZCBkZW5vbWluYXRvcjwvY29kZT4gaXMgcmV0dXJuZWQuIFVubGlrZSA8Y29kZT5udW1lcmF0b3IKKyAgICAgKiAlIGRlbm9taW5hdG9yPC9jb2RlPiwgdGhpcyB3aWxsIGFsd2F5cyBiZSBub24tbmVnYXRpdmUuCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGZsb29yRGl2aWRlKGludCBudW1lcmF0b3IsIGludCBkZW5vbWluYXRvciwgaW50W10gcmVtYWluZGVyKSB7CisgICAgICAgIGlmIChudW1lcmF0b3IgPj0gMCkgeworICAgICAgICAgICAgcmVtYWluZGVyWzBdID0gbnVtZXJhdG9yICUgZGVub21pbmF0b3I7CisgICAgICAgICAgICByZXR1cm4gbnVtZXJhdG9yIC8gZGVub21pbmF0b3I7CisgICAgICAgIH0KKyAgICBpbnQgcXVvdGllbnQgPSAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICAgICAgcmVtYWluZGVyWzBdID0gbnVtZXJhdG9yIC0gKHF1b3RpZW50ICogZGVub21pbmF0b3IpOworICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlIHR3byBpbnRlZ2VycywgcmV0dXJuaW5nIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQsIGFuZAorICAgICAqIHRoZSBtb2R1bHVzIHJlbWFpbmRlci4KKyAgICAgKiA8cD4KKyAgICAgKiBVbmxpa2UgdGhlIGJ1aWx0LWluIGRpdmlzaW9uLCB0aGlzIGlzIG1hdGhlbWF0aWNhbGx5IHdlbGwtYmVoYXZlZC4KKyAgICAgKiBFLmcuLCA8Y29kZT4tMS80PC9jb2RlPiA9PiAwIGFuZCA8Y29kZT4tMSU0PC9jb2RlPiA9PiAtMSwKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xIHdpdGggPGNvZGU+cmVtYWluZGVyWzBdPC9jb2RlPiA9PiAzLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcGFyYW0gcmVtYWluZGVyIGFuIGFycmF5IG9mIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIHdoaWNoIHRoZSB2YWx1ZQorICAgICAqIDxjb2RlPm51bWVyYXRvciBtb2QgZGVub21pbmF0b3I8L2NvZGU+IGlzIHJldHVybmVkLiBVbmxpa2UgPGNvZGU+bnVtZXJhdG9yCisgICAgICogJSBkZW5vbWluYXRvcjwvY29kZT4sIHRoaXMgd2lsbCBhbHdheXMgYmUgbm9uLW5lZ2F0aXZlLgorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBmbG9vckRpdmlkZShsb25nIG51bWVyYXRvciwgaW50IGRlbm9taW5hdG9yLCBpbnRbXSByZW1haW5kZXIpIHsKKyAgICAgICAgaWYgKG51bWVyYXRvciA+PSAwKSB7CisgICAgICAgICAgICByZW1haW5kZXJbMF0gPSAoaW50KShudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CisgICAgICAgICAgICByZXR1cm4gKGludCkobnVtZXJhdG9yIC8gZGVub21pbmF0b3IpOworICAgICAgICB9CisgICAgICAgIGludCBxdW90aWVudCA9IChpbnQpKCgobnVtZXJhdG9yICsgMSkgLyBkZW5vbWluYXRvcikgLSAxKTsKKyAgICAgICAgcmVtYWluZGVyWzBdID0gKGludCkobnVtZXJhdG9yIC0gKHF1b3RpZW50ICogZGVub21pbmF0b3IpKTsKKyAgICAgICAgcmV0dXJuIHF1b3RpZW50OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICJEQVlfT0ZfTU9OVEgiLCAiREFZX09GX1lFQVIiLCAiREFZX09GX1dFRUsiLAorICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgIkRTVF9PRkZTRVQiLCAiWUVBUl9XT1kiLCAiRE9XX0xPQ0FMIiwgIkVYVEVOREVEX1lFQVIiLAorICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIG5hbWUgZm9yIGEgZmllbGQsIGZvciBkZWJ1Z2dpbmcgYW5kIGV4Y2VwdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBmaWVsZE5hbWUoaW50IGZpZWxkKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gRklFTERfTkFNRVtmaWVsZF07CisgICAgICAgIH0gY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gIkZpZWxkICIgKyBmaWVsZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRpbWUgYXMgbWlsbGlzZWNvbmRzIHRvIEp1bGlhbiBkYXkuCisgICAgICogQHBhcmFtIG1pbGxpcyB0aGUgZ2l2ZW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEByZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1RvSnVsaWFuRGF5KGxvbmcgbWlsbGlzKSB7CisgICAgICAgIHJldHVybiAoaW50KSAoRVBPQ0hfSlVMSUFOX0RBWSArIGZsb29yRGl2aWRlKG1pbGxpcywgT05FX0RBWSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIEp1bGlhbiBkYXkgdG8gdGltZSBhcyBtaWxsaXNlY29uZHMuCisgICAgICogQHBhcmFtIGp1bGlhbiB0aGUgZ2l2ZW4gSnVsaWFuIGRheSBudW1iZXIuCisgICAgICogQHJldHVybiB0aW1lIGFzIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcganVsaWFuRGF5VG9NaWxsaXMoaW50IGp1bGlhbikgeworICAgICAgICByZXR1cm4gKGp1bGlhbiAtIEVQT0NIX0pVTElBTl9EQVkpICogT05FX0RBWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRheSBvZiB3ZWVrLCBmcm9tIFNVTkRBWSB0byBTQVRVUkRBWSwgZ2l2ZW4gYSBKdWxpYW4gZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGp1bGlhbkRheVRvRGF5T2ZXZWVrKGludCBqdWxpYW4pIHsKKyAgICAgICAgLy8gSWYganVsaWFuIGlzIG5lZ2F0aXZlLCB0aGVuIGp1bGlhbiU3IHdpbGwgYmUgbmVnYXRpdmUsIHNvIHdlIGFkanVzdAorICAgICAgICAvLyBhY2NvcmRpbmdseS4gIEp1bGlhbiBkYXkgMCBpcyBNb25kYXkuCisgICAgICAgIGludCBkYXlPZldlZWsgPSAoanVsaWFuICsgTU9OREFZKSAlIDc7CisgICAgICAgIGlmIChkYXlPZldlZWsgPCBTVU5EQVkpIHsKKyAgICAgICAgICAgIGRheU9mV2VlayArPSA3OworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXlPZldlZWs7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IG1pbGxpc2Vjb25kcyB3aXRob3V0IHJlY29tcHV0aW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBsb25nIGludGVybmFsR2V0VGltZUluTWlsbGlzKCkgeworICAgICAgICByZXR1cm4gdGltZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogTm90ZSwgaW4gMy4wIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gJ2dyZWdvcmlhbicgaW4gQ2FsZW5kYXIgdG8gZW11bGF0ZSBsZWdhY3kgYmVoYXZpb3IKKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImdyZWdvcmlhbiI7CisgICAgfQorICAgIAorICAgIC8vIC0tLS0tLS0tIEJFR0lOIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbG9jYWxlIHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoaXMgb2JqZWN0LCBvciBudWxsLgorICAgICAqIFRoaXMgbWF5IG1heSBkaWZmZXIgZnJvbSB0aGUgbG9jYWxlIHJlcXVlc3RlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoaXMgb2JqZWN0J3MgY3JlYXRpb24uICBGb3IgZXhhbXBsZSwgaWYgYW4gb2JqZWN0IGlzIGNyZWF0ZWQKKyAgICAgKiBmb3IgbG9jYWxlIDx0dD5lbl9VU19DQUxJRk9STklBPC90dD4sIHRoZSBhY3R1YWwgZGF0YSBtYXkgYmUKKyAgICAgKiBkcmF3biBmcm9tIDx0dD5lbjwvdHQ+ICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLCBhbmQKKyAgICAgKiA8dHQ+ZW5fVVM8L3R0PiBtYXkgYmUgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIHRoYXQgZXhpc3RzICh0aGUKKyAgICAgKiA8aT52YWxpZDwvaT4gbG9jYWxlKS4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVIDMuMDsgSUNVIDIuOAorICAgICAqIGNvbnRhaW5zIGEgcGFydGlhbCBwcmV2aWV3IGltcGxlbWVudGF0aW9uLiAgVGhlICogPGk+YWN0dWFsPC9pPgorICAgICAqIGxvY2FsZSBpcyByZXR1cm5lZCBjb3JyZWN0bHksIGJ1dCB0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSBpcworICAgICAqIG5vdCwgaW4gbW9zdCBjYXNlcy4KKyAgICAgKiBAcGFyYW0gdHlwZSB0eXBlIG9mIGluZm9ybWF0aW9uIHJlcXVlc3RlZCwgZWl0aGVyIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEV9IG9yIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFfS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgYnkgPGk+dHlwZTwvaT4sIG9yIG51bGwgaWYKKyAgICAgKiB0aGlzIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVUxvY2FsZSBnZXRMb2NhbGUoVUxvY2FsZS5UeXBlIHR5cGUpIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVUxvY2FsZS5BQ1RVQUxfTE9DQUxFID8KKyAgICAgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlIDogdGhpcy52YWxpZExvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gY3JlYXRlIHRoaXMKKyAgICAgKiBvYmplY3QuICBJZiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YSwKKyAgICAgKiBib3RoIGFyZ3VtZW50cyBzaG91bGQgYmUgc2V0IHRvIG51bGwuICBPdGhlcndpc2UsIG5laXRoZXIKKyAgICAgKiBzaG91bGQgYmUgbnVsbC4gIFRoZSBhY3R1YWwgbG9jYWxlIG11c3QgYmUgYXQgdGhlIHNhbWUgbGV2ZWwgb3IKKyAgICAgKiBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4gIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkCisgICAgICogZm9yIHVzZSBieSBmYWN0b3JpZXMgb3Igb3RoZXIgZW50aXRpZXMgdGhhdCBjcmVhdGUgb2JqZWN0cyBvZgorICAgICAqIHRoaXMgY2xhc3MuCisgICAgICogQHBhcmFtIHZhbGlkIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZQorICAgICAqIGRhdGEsIG9yIG51bGwKKyAgICAgKiBAcGFyYW0gYWN0dWFsIHRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMKKyAgICAgKiBvYmplY3QsIG9yIG51bGwKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldExvY2FsZShVTG9jYWxlIHZhbGlkLCBVTG9jYWxlIGFjdHVhbCkgeworICAgICAgICAvLyBDaGFuZ2UgdGhlIGZvbGxvd2luZyB0byBhbiBhc3NlcnRpb24gbGF0ZXIKKyAgICAgICAgaWYgKCh2YWxpZCA9PSBudWxsKSAhPSAoYWN0dWFsID09IG51bGwpKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICAvLyBBbm90aGVyIGNoZWNrIHdlIGNvdWxkIGRvIGlzIHRoYXQgdGhlIGFjdHVhbCBsb2NhbGUgaXMgYXQKKyAgICAgICAgLy8gdGhlIHNhbWUgbGV2ZWwgb3IgbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuCisgICAgICAgIHRoaXMudmFsaWRMb2NhbGUgPSB2YWxpZDsKKyAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgPSBhY3R1YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlIGRhdGEsIG9yIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdmFsaWRMb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwgb3IKKyAgICAgKiBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIGFjdHVhbExvY2FsZTsKKworICAgIC8vIC0tLS0tLS0tIEVORCBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyRmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXJGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ2NTJhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyRmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsMTggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKy8qKgorICogQHByb3RvdHlwZQorICovCitpbnRlcmZhY2UgQ2FsZW5kYXJGYWN0b3J5IHsKKyAgICBwdWJsaWMgQ2FsZW5kYXIgY3JlYXRlKFRpbWVab25lIHR6LCBVTG9jYWxlIGxvYyk7CisgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpOworfQorICAgICAgICAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0Nhc2VJbnNlbnNpdGl2ZVN0cmluZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODU2ZjQ4YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0Nhc2VJbnNlbnNpdGl2ZVN0cmluZy5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIEEgc3RyaW5nIHVzZWQgYXMgYSBrZXkgaW4gamF2YS51dGlsLkhhc2h0YWJsZSBhbmQgb3RoZXIKKyAqIGNvbGxlY3Rpb25zLiAgSXQgcmV0YWlucyBjYXNlIGluZm9ybWF0aW9uLCBidXQgaXRzIGVxdWFscygpIGFuZAorICogaGFzaENvZGUoKSBtZXRob2RzIGlnbm9yZSBjYXNlLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgeworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHN0cmluZzsKKworICAgIHByaXZhdGUgaW50IGhhc2ggPSAwOworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gQ2FzZUluc2VudGl2ZVN0cmluZyBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nCisgICAgICogQHBhcmFtIHMgVGhlIHN0cmluZyB0byBjb25zdHJ1Y3QgdGhpcyBvYmplY3QgZnJvbSAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKFN0cmluZyBzKSB7CisgICAgICAgIHN0cmluZyA9IHM7CisgICAgfQorICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIHVuZGVybHlpbmcgc3RyaW5nIAorICAgICAqIEByZXR1cm4gU3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhlIG9iamVjdCB3aXRoIHRoaXMgCisgICAgICogQHBhcmFtIG8gT2JqZWN0IHRvIGNvbXBhcmUgdGhpcyBvYmplY3Qgd2l0aCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmcuZXF1YWxzSWdub3JlQ2FzZSgoKENhc2VJbnNlbnNpdGl2ZVN0cmluZylvKS5zdHJpbmcpOworICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nLmVxdWFsc0lnbm9yZUNhc2UoKFN0cmluZylvKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoYXNoQ29kZSBvZiB0aGlzIG9iamVjdAorICAgICAqIEByZXR1cm4gaW50IGhhc2hjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaWYgKGhhc2ggPT0gMCkgeworICAgICAgICAgICAgaGFzaCA9IFVDaGFyYWN0ZXIuZm9sZENhc2Uoc3RyaW5nLCB0cnVlKS5oYXNoQ29kZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYXNoOworICAgIH0KKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgc3VwZXJjbGFzcyBtZXRob2QKKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgIAlyZXR1cm4gc3RyaW5nOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NoaW5lc2VDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2hpbmVzZUNhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGUxNDJjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NoaW5lc2VDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsODcwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJBc3Ryb25vbWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJDYWNoZTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkNoaW5lc2VDYWxlbmRhcjwvY29kZT4gaXMgYSBjb25jcmV0ZSBzdWJjbGFzcyBvZiB7QGxpbmsgQ2FsZW5kYXJ9CisgKiB0aGF0IGltcGxlbWVudHMgYSB0cmFkaXRpb25hbCBDaGluZXNlIGNhbGVuZGFyLiAgVGhlIHRyYWRpdGlvbmFsIENoaW5lc2UKKyAqIGNhbGVuZGFyIGlzIGEgbHVuaXNvbGFyIGNhbGVuZGFyOiBFYWNoIG1vbnRoIHN0YXJ0cyBvbiBhIG5ldyBtb29uLCBhbmQKKyAqIHRoZSBtb250aHMgYXJlIG51bWJlcmVkIGFjY29yZGluZyB0byBzb2xhciBldmVudHMsIHNwZWNpZmljYWxseSwgdG8KKyAqIGd1YXJhbnRlZSB0aGF0IG1vbnRoIDExIGFsd2F5cyBjb250YWlucyB0aGUgd2ludGVyIHNvbHN0aWNlLiAgSW4gb3JkZXIKKyAqIHRvIGFjY29tcGxpc2ggdGhpcywgbGVhcCBtb250aHMgYXJlIGluc2VydGVkIGluIGNlcnRhaW4geWVhcnMuICBMZWFwCisgKiBtb250aHMgYXJlIG51bWJlcmVkIHRoZSBzYW1lIGFzIHRoZSBtb250aCB0aGV5IGZvbGxvdy4gIFRoZSBkZWNpc2lvbiBvZgorICogd2hpY2ggbW9udGggaXMgYSBsZWFwIG1vbnRoIGRlcGVuZHMgb24gdGhlIHJlbGF0aXZlIG1vdmVtZW50cyBvZiB0aGUgc3VuCisgKiBhbmQgbW9vbi4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGRlZmluZXMgb25lIGFkZGl0aW9uIGZpZWxkIGJleW9uZCB0aG9zZSBkZWZpbmVkIGJ5CisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT46IFRoZSA8Y29kZT5JU19MRUFQX01PTlRIPC9jb2RlPiBmaWVsZCB0YWtlcyB0aGUKKyAqIHZhbHVlIG9mIDAgZm9yIG5vcm1hbCBtb250aHMsIG9yIDEgZm9yIGxlYXAgbW9udGhzLgorICoKKyAqIDxwPkFsbCBhc3Ryb25vbWljYWwgY29tcHV0YXRpb25zIGFyZSBwZXJmb3JtZWQgd2l0aCByZXNwZWN0IHRvIGEgdGltZQorICogem9uZSBvZiBHTVQrODowMCBhbmQgYSBsb25naXR1ZGUgb2YgMTIwIGRlZ3JlZXMgZWFzdC4gIEFsdGhvdWdoIHNvbWUKKyAqIGNhbGVuZGFycyBpbXBsZW1lbnQgYSBoaXN0b3JpY2FsbHkgbW9yZSBhY2N1cmF0ZSBjb252ZW50aW9uIG9mIHVzaW5nCisgKiBCZWlqaW5nJ3MgbG9jYWwgbG9uZ2l0dWRlICgxMTYgZGVncmVlcyAyNSBtaW51dGVzIGVhc3QpIGFuZCB0aW1lIHpvbmUKKyAqIChHTVQrNzo0NTo0MCkgZm9yIGRhdGVzIGJlZm9yZSAxOTI5LCB3ZSBkbyBub3QgaW1wbGVtZW50IHRoaXMgaGVyZS4KKyAqCisgKiA8cD5ZZWFycyBhcmUgY291bnRlZCBpbiB0d28gZGlmZmVyZW50IHdheXMgaW4gdGhlIENoaW5lc2UgY2FsZW5kYXIuICBUaGUKKyAqIGZpcnN0IG1ldGhvZCBpcyBieSBzZXF1ZW50aWFsIG51bWJlcmluZyBmcm9tIHRoZSA2MXN0IHllYXIgb2YgdGhlIHJlaWduCisgKiBvZiBIdWFuZyBEaSwgMjYzNyBCQ0UsIHdoaWNoIGlzIGRlc2lnbmF0ZWQgeWVhciAxIG9uIHRoZSBDaGluZXNlCisgKiBjYWxlbmRhci4gIFRoZSBzZWNvbmQgbWV0aG9kIHVzZXMgNjAteWVhciBjeWNsZXMgZnJvbSB0aGUgc2FtZSBzdGFydGluZworICogcG9pbnQsIHdoaWNoIGlzIGRlc2lnbmF0ZWQgeWVhciAxIG9mIGN5Y2xlIDEuICBJbiB0aGlzIGNsYXNzLCB0aGUKKyAqIDxjb2RlPkVYVEVOREVEX1lFQVI8L2NvZGU+IGZpZWxkIGNvbnRhaW5zIHRoZSBzZXF1ZW50aWFsIHllYXIgY291bnQuCisgKiBUaGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCBjb250YWlucyB0aGUgY3ljbGUgbnVtYmVyLCBhbmQgdGhlCisgKiA8Y29kZT5ZRUFSPC9jb2RlPiBmaWVsZCBjb250YWlucyB0aGUgeWVhciBvZiB0aGUgY3ljbGUsIGEgdmFsdWUgYmV0d2VlbgorICogMSBhbmQgNjAuCisgKgorICogPHA+VGhlcmUgaXMgc29tZSB2YXJpYXRpb24gaW4gd2hhdCBpcyBjb25zaWRlcmVkIHRoZSBzdGFydGluZyBwb2ludCBvZgorICogdGhlIGNhbGVuZGFyLCB3aXRoIHNvbWUgc291cmNlcyBzdGFydGluZyBpbiB0aGUgZmlyc3QgeWVhciBvZiB0aGUgcmVpZ24KKyAqIG9mIEh1YW5nIERpLCByYXRoZXIgdGhhbiB0aGUgNjFzdC4gIFRoaXMgZ2l2ZXMgY29udGludW91cyB5ZWFyIG51bWJlcnMKKyAqIDYwIHllYXJzIGdyZWF0ZXIgYW5kIGN5Y2xlIG51bWJlcnMgb25lIGdyZWF0ZXIgdGhhbiB3aGF0IHRoaXMgY2xhc3MKKyAqIGltcGxlbWVudHMuCisgKgorICogPHA+QmVjYXVzZSA8Y29kZT5DaGluZXNlQ2FsZW5kYXI8L2NvZGU+IGRlZmluZXMgYW4gYWRkaXRpb25hbCBmaWVsZCBhbmQKKyAqIHJlZGVmaW5lcyB0aGUgd2F5IHRoZSA8Y29kZT5FUkE8L2NvZGU+IGZpZWxkIGlzIHVzZWQsIGl0IHJlcXVpcmVzIGEgbmV3CisgKiBmb3JtYXQgY2xhc3MsIDxjb2RlPkNoaW5lc2VEYXRlRm9ybWF0PC9jb2RlPi4gIEFzIGFsd2F5cywgdXNlIHRoZQorICogbWV0aG9kcyA8Y29kZT5EYXRlRm9ybWF0LmdldFh4eEluc3RhbmNlKENhbGVuZGFyIGNhbCwuLi4pPC9jb2RlPiB0bworICogb2J0YWluIGEgZm9ybWF0dGVyIGZvciB0aGlzIGNhbGVuZGFyLgorICoKKyAqIDxwPlJlZmVyZW5jZXM6PHVsPgorICogCisgKiA8bGk+RGVyc2hvd2l0eiBhbmQgUmVpbmdvbGQsIDxpPkNhbGVuZHJpY2FsIENhbGN1bGF0aW9uczwvaT4sCisgKiBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcywgMTk5NzwvbGk+CisgKiAKKyAqIDxsaT5IZWxtZXIgQXNsYWtzZW4ncworICogPGEgaHJlZj0iaHR0cDovL3d3dy5tYXRoLm51cy5lZHUuc2cvYXNsYWtzZW4vY2FsZW5kYXIvY2hpbmVzZS5zaHRtbCI+CisgKiBDaGluZXNlIENhbGVuZGFyIHBhZ2U8L2E+PC9saT4KKyAqCisgKiA8bGk+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudG9uZGVyaW5nLmRrL2NsYXVzL2NhbGVuZGFyLmh0bWwiPgorICogQ2FsZW5kYXIgRkFRPC9hPjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD4KKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSBzdWJjbGFzc2VkLjwvcD4KKyAqIDxwPgorICogQ2hpbmVzZUNhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWNoaW5lc2UiPC9jb2RlPi48L3A+CisgKgorICogQHNlZSBjb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0CisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgQ2hpbmVzZUNhbGVuZGFyIGV4dGVuZHMgQ2FsZW5kYXIgeworICAgIC8vIGpkazEuNC4yIHNlcmlhbHZlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDczMTIxMTA3NTE5NDA5Mjk0MjBMOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBEZXZlbG9wZXIgTm90ZXMKKyAgICAvLyAKKyAgICAvLyBUaW1lIGlzIHJlcHJlc2VudGVkIGFzIGEgc2NhbGFyIGluIHR3byB3YXlzIGluIHRoaXMgY2xhc3MuICBPbmUgaXMKKyAgICAvLyB0aGUgdXN1YWwgVVRDIGVwb2NoIG1pbGxpcywgdGhhdCBpcywgbWlsbGlzZWNvbmRzIGFmdGVyIEphbnVhcnkgMSwKKyAgICAvLyAxOTcwIEdyZWdvcmlhbiwgMDowMDowMC4wMDAgVVRDLiAgVGhlIG90aGVyIGlzIGluIHRlcm1zIG9mICdsb2NhbAorICAgIC8vIGRheXMuJyAgVGhpcyBpcyB0aGUgbnVtYmVyIG9mIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIEdyZWdvcmlhbiwKKyAgICAvLyBsb2NhbCB0byBCZWlqaW5nLCBDaGluYSAoc2luY2UgYWxsIGNvbXB1dGF0aW9ucyBvZiB0aGUgQ2hpbmVzZQorICAgIC8vIGNhbGVuZGFyIGFyZSBkb25lIGluIEJlaWppbmcpLiAgVGhhdCBpcywgMCByZXByZXNlbnRzIEphbnVhcnkgMSwKKyAgICAvLyAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaS4gIENvbnZlcnNpb24gb2YgbG9jYWwgZGF5cyB0byBhbmQgZnJvbQorICAgIC8vIHN0YW5kYXJkIGVwb2NoIG1pbGxpc2Vjb25kcyBpcyBhY2NvbXBsaXNoZWQgYnkgdGhlIGRheXNUb01pbGxpcygpCisgICAgLy8gYW5kIG1pbGxpc1RvRGF5cygpIG1ldGhvZHMuCisgICAgLy8gCisgICAgLy8gU2V2ZXJhbCBtZXRob2RzIHVzZSBjYWNoZXMgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4gIENhY2hlcyBhcmUgYXQKKyAgICAvLyB0aGUgb2JqZWN0LCBub3QgY2xhc3MgbGV2ZWwsIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdHlwaWNhbAorICAgIC8vIHVzYWdlIHdpbGwgYmUgdG8gaGF2ZSBvbmUgaW5zdGFuY2Ugb2YgQ2hpbmVzZUNhbGVuZGFyIGF0IGEgdGltZS4KKyAKKyAgICAvKioKKyAgICAgKiBXZSBoYXZlIG9uZSBpbnN0YW5jZSBwZXIgb2JqZWN0LCBhbmQgd2UgZG9uJ3Qgc3luY2hyb25pemUgaXQgYmVjYXVzZQorICAgICAqIENhbGVuZGFyIGRvZXNuJ3Qgc3VwcG9ydCBtdWx0aXRocmVhZGVkIGV4ZWN1dGlvbiBpbiB0aGUgZmlyc3QgcGxhY2UuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworCisgICAgLyoqCisgICAgICogQ2FjaGUgdGhhdCBtYXBzIEdyZWdvcmlhbiB5ZWFyIHRvIGxvY2FsIGRheXMgb2Ygd2ludGVyIHNvbHN0aWNlLgorICAgICAqIEBzZWUgI3dpbnRlclNvbHN0aWNlCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQ2FsZW5kYXJDYWNoZSB3aW50ZXJTb2xzdGljZUNhY2hlID0gbmV3IENhbGVuZGFyQ2FjaGUoKTsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRoYXQgbWFwcyBHcmVnb3JpYW4geWVhciB0byBsb2NhbCBkYXlzIG9mIENoaW5lc2UgbmV3IHllYXIuCisgICAgICogQHNlZSAjbmV3WWVhcgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENhbGVuZGFyQ2FjaGUgbmV3WWVhckNhY2hlID0gbmV3IENhbGVuZGFyQ2FjaGUoKTsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhlIGN1cnJlbnQgeWVhciBpcyBhIGxlYXAgeWVhci4gIFVwZGF0ZWQgd2l0aCBlYWNoIHRpbWUgdG8KKyAgICAgKiBmaWVsZHMgcmVzb2x1dGlvbi4KKyAgICAgKiBAc2VlICNjb21wdXRlQ2hpbmVzZUZpZWxkcworICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gaXNMZWFwWWVhcjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2UgY2FsZW5kYXIgd2l0aCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZUNhbGVuZGFyKCkgeworICAgICAgICBzdXBlcigpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2UgY2FsZW5kYXIgd2l0aCB0aGUgZ2l2ZW4gdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGltZSB6b25lIGZvciB0aGlzIGNhbGVuZGFyCisgICAgICogQHBhcmFtIGxvY2FsZSBsb2NhbGUgZm9yIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZUNhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlIGNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRpbWUgem9uZSBmb3IgdGhpcyBjYWxlbmRhcgorICAgICAqIEBwYXJhbSBsb2NhbGUgdWxvY2FsZSBmb3IgdGhpcyBjYWxlbmRhcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHVibGljIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBjdXJyZW50IG1vbnRoIGlzIGEgbGVhcCBtb250aC4KKyAgICAgKiBTaG91bGQgaGF2ZSBhIHZhbHVlIG9mIDAgZm9yIG5vbi1sZWFwIG1vbnRocywgYW5kIDEgZm9yIGxlYXAgbW9udGhzLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IElTX0xFQVBfTU9OVEggPSBCQVNFX0ZJRUxEX0NPVU5UOworCisgICAgLyoqCisgICAgICogQ291bnQgb2YgZmllbGRzIGluIHRoaXMgY2xhc3MuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJRUxEX0NPVU5UID0gSVNfTEVBUF9NT05USCArIDE7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENhbGVuZGFyIGZyYW1ld29yaworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBhbGxvY2F0ZSBvdXIgYWRkaXRpb25hbCBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50W10gaGFuZGxlQ3JlYXRlRmllbGRzKCkgeworICAgICAgICByZXR1cm4gbmV3IGludFtGSUVMRF9DT1VOVF07CisgICAgfQorCisgICAgLyoqCisgICAgICogQXJyYXkgZGVmaW5pbmcgdGhlIGxpbWl0cyBvZiBmaWVsZCB2YWx1ZXMgZm9yIHRoaXMgY2xhc3MuICBGaWVsZAorICAgICAqIGxpbWl0cyB3aGljaCBhcmUgaW52YXJpYW50IHdpdGggcmVzcGVjdCB0byBjYWxlbmRhciBzeXN0ZW0gYW5kCisgICAgICogZGVmaW5lZCBieSBDYWxlbmRhciBhcmUgbGVmdCBibGFuay4KKyAgICAgKgorICAgICAqIE5vdGVzOgorICAgICAqCisgICAgICogRVJBIDUwMDAwMDAgLyA2MCA9IDgzMzMzLgorICAgICAqCisgICAgICogTU9OVEggVGhlcmUgYXJlIDEyIG9yIDEzIGx1bmFyIG1vbnRocyBpbiBhIHllYXIuICBIb3dldmVyLCB3ZSBhbHdheXMKKyAgICAgKiBudW1iZXIgdGhlbSAwLi4xMSwgd2l0aCBhbiBpbnRlcmNhbGF0ZWQsIGlkZW50aWNhbGx5IG51bWJlcmVkIGxlYXAKKyAgICAgKiBtb250aCwgd2hlbiBuZWNlc3NhcnkuCisgICAgICoKKyAgICAgKiBEQVlfT0ZfWUVBUiBJbiBhIG5vbi1sZWFwIHllYXIgdGhlcmUgYXJlIDM1MywgMzU0LCBvciAzNTUgZGF5cy4gIEluCisgICAgICogYSBsZWFwIHllYXIgdGhlcmUgYXJlIDM4MywgMzg0LCBvciAzODUgZGF5cy4KKyAgICAgKgorICAgICAqIFdFRUtfT0ZfWUVBUiBUaGUgbGVhc3QgbWF4aW11bSBvY2N1cnMgaWYgdGhlcmUgYXJlIDM1MyBkYXlzIGluIHRoZQorICAgICAqIHllYXIsIGFuZCB0aGUgZmlyc3QgNiBhcmUgdGhlIGxhc3Qgd2VlayBvZiB0aGUgcHJldmlvdXMgeWVhci4gIFRoZW4KKyAgICAgKiB3ZSBoYXZlIDQ5IGZ1bGwgd2Vla3MgYW5kIDQgZGF5cyBpbiB0aGUgbGFzdCB3ZWVrOiA2ICsgNDkqNyArIDQgPQorICAgICAqIDM1My4gIFNvIHRoZSBsZWFzdCBtYXhpbXVtIGlzIDUwLiAgVGhlIG1heGltdW0gb2NjdXJzIGlmIHRoZXJlIGFyZQorICAgICAqIDM4NSBkYXlzIGluIHRoZSB5ZWFyLCBhbmQgV09ZIDEgZXh0ZW5kcyA2IGRheXMgaW50byB0aGUgcHJpb3IgeWVhci4KKyAgICAgKiBUaGVuIHRoZXJlIGFyZSA1NCBmdWxsIHdlZWtzLCBhbmQgNiBkYXlzIGluIHRoZSBsYXN0IHdlZWs6IDEgKyA1NCo3CisgICAgICogKyA2ID0gMzg1LiAgVGhlIDYgZGF5cyBvZiB0aGUgbGFzdCB3ZWVrIHdpbGwgZmFsbCBpbnRvIFdPWSAxIG9mIHRoZQorICAgICAqIG5leHQgeWVhci4gIE1heGltdW0gaXMgNTUuCisgICAgICoKKyAgICAgKiBXRUVLX09GX01PTlRIIEluIGEgMjkgZGF5IG1vbnRoLCBpZiB0aGUgZmlyc3QgNyBkYXlzIG1ha2UgdXAgd2VlayAxCisgICAgICogdGhhdCBsZWF2ZXMgMyBmdWxsIHdlZWtzIGFuZCAxIGRheSBhdCB0aGUgZW5kLiAgVGhlIGxlYXN0IG1heGltdW0gaXMKKyAgICAgKiB0aHVzIDUuICBJbiBhIDMwIGRheXMgbW9udGgsIGlmIHRoZSBwcmV2aW91cyA2IGRheXMgYmVsb25nIFdPTSAxIG9mCisgICAgICogdGhpcyBtb250aCwgd2UgaGF2ZSA0IGZ1bGwgd2Vla3MgYW5kIDEgZGF5cyBhdCB0aGUgZW5kICh3aGljaAorICAgICAqIHRlY2huaWNhbGx5IHdpbGwgYmUgV09NIDEgb2YgdGhlIG5leHQgbW9udGgsIGJ1dCB3aWxsIGJlIHJlcG9ydGVkIGJ5CisgICAgICogdGltZS0+ZmllbGRzIGFuZCBoZW5jZSBieSBnZXRBY3R1YWxNYXhpbXVtIGFzIFdPTSA2IG9mIHRoaXMgbW9udGgpLgorICAgICAqIE1heGltdW0gaXMgNi4KKyAgICAgKgorICAgICAqIERBWV9PRl9XRUVLX0lOX01PTlRIIEluIGEgMjkgb3IgMzAgZGF5IG1vbnRoLCB0aGVyZSBhcmUgNCBmdWxsIHdlZWtzCisgICAgICogcGx1cyAxIG9yIDIgZGF5cyBhdCB0aGUgZW5kLCBzbyB0aGUgbWF4aW11bSBpcyBhbHdheXMgNS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRTW11bXSA9IHsKKyAgICAgICAgLy8gTWluaW11bSAgR3JlYXRlc3QgICAgTGVhc3QgIE1heGltdW0KKyAgICAgICAgLy8gICAgICAgICAgIE1pbmltdW0gIE1heGltdW0KKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgODMzMzMsICAgODMzMzMgfSwgLy8gRVJBCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDcwLCAgICAgIDcwIH0sIC8vIFlFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgMTEsICAgICAgMTEgfSwgLy8gTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgNTAsICAgICAgNTUgfSwgLy8gV0VFS19PRl9ZRUFSCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgICA1LCAgICAgICA2IH0sIC8vIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgMjksICAgICAgMzAgfSwgLy8gREFZX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgMzUzLCAgICAgMzg1IH0sIC8vIERBWV9PRl9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9XRUVLCisgICAgICAgIHsgICAgICAgLTEsICAgICAgIC0xLCAgICAgICA1LCAgICAgICA1IH0sIC8vIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEFNX1BNCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUl9PRl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlOVVRFCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBaT05FX09GRlNFVAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEU1RfT0ZGU0VUCisgICAgICAgIHsgLTUwMDAwMDEsIC01MDAwMDAxLCA1MDAwMDAxLCA1MDAwMDAxIH0sIC8vIFlFQVJfV09ZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERPV19MT0NBTAorICAgICAgICB7IC01MDAwMDAwLCAtNTAwMDAwMCwgNTAwMDAwMCwgNTAwMDAwMCB9LCAvLyBFWFRFTkRFRF9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEpVTElBTl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkRTX0lOX0RBWQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgMSwgICAgICAgMSB9LCAvLyBJU19MRUFQX01PTlRICisgICAgfTsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIHJldHVybiB0aGUgbGltaXQgdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudCBhYnN0cmFjdCBDYWxlbmRhciBtZXRob2QgdG8gcmV0dXJuIHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogZGVmaW5lZCBieSB0aGUgY3VycmVudCBmaWVsZHMuICBUaGlzIHdpbGwgdXNlIGVpdGhlciB0aGUgRVJBIGFuZAorICAgICAqIFlFQVIgZmllbGQgYXMgdGhlIGN5Y2xlIGFuZCB5ZWFyLW9mLWN5Y2xlLCBvciB0aGUgRVhURU5ERURfWUVBUgorICAgICAqIGZpZWxkIGFzIHRoZSBjb250aW51b3VzIHllYXIgY291bnQsIGRlcGVuZGluZyBvbiB3aGljaCBpcyBuZXdlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIGlmIChuZXdlc3RTdGFtcChFUkEsIFlFQVIsIFVOU0VUKSA8PSBnZXRTdGFtcChFWFRFTkRFRF9ZRUFSKSkgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIDEpOyAvLyBEZWZhdWx0IHRvIHllYXIgMQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGN5Y2xlID0gaW50ZXJuYWxHZXQoRVJBLCAxKSAtIDE7IC8vIDAtYmFzZWQgY3ljbGUKKyAgICAgICAgICAgIHllYXIgPSBjeWNsZSAqIDYwICsgaW50ZXJuYWxHZXQoWUVBUiwgMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgbWV0aG9kIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuCisgICAgICogZXh0ZW5kZWQgeWVhciBhbmQgbW9udGguCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCBhbHNvIHJlYWRzIHRoZSBJU19MRUFQX01PTlRIIGZpZWxkIHRvIGRldGVybWluZQorICAgICAqIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBtb250aCBpcyBhIGxlYXAgbW9udGguCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRNb250aExlbmd0aChpbnQgZXh0ZW5kZWRZZWFyLCBpbnQgbW9udGgpIHsKKyAgICAgICAgaW50IHRoaXNTdGFydCA9IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGV4dGVuZGVkWWVhciwgbW9udGgsIHRydWUpIC0KKyAgICAgICAgICAgIEVQT0NIX0pVTElBTl9EQVkgKyAxOyAvLyBKdWxpYW4gZGF5IC0+IGxvY2FsIGRheXMKKyAgICAgICAgaW50IG5leHRTdGFydCA9IG5ld01vb25OZWFyKHRoaXNTdGFydCArIFNZTk9ESUNfR0FQLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIG5leHRTdGFydCAtIHRoaXNTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGcmFtZXdvcmsgbWV0aG9kIHRvIGNyZWF0ZSBhIGNhbGVuZGFyLXNwZWNpZmljIERhdGVGb3JtYXQgb2JqZWN0CisgICAgICogdXNpbmcgdGhlIHRoZSBnaXZlbiBwYXR0ZXJuLiAgVGhpcyBtZXRob2QgaXMgcmVzcG9uc2libGUgZm9yCisgICAgICogY3JlYXRpbmcgdGhlIGNhbGVuZGFyLSBzcGVjaWZpYyBEYXRlRm9ybWF0IGFuZCBEYXRlRm9ybWF0U3ltYm9scworICAgICAqIG9iamVjdHMgYXMgbmVlZGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0IGhhbmRsZUdldERhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hpbmVzZURhdGVGb3JtYXQocGF0dGVybiwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCByZXNvbHV0aW9uIHRhYmxlIHRoYXQgaW5jb3Jwb3JhdGVzIElTX0xFQVBfTU9OVEguCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludFtdW11bXSBDSElORVNFX0RBVEVfUFJFQ0VERU5DRSA9IHsKKyAgICAgICAgeworICAgICAgICAgICAgeyBEQVlfT0ZfTU9OVEggfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSLCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBXRUVLX09GX01PTlRILCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSLCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IERBWV9PRl9XRUVLX0lOX01PTlRILCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1lFQVIgfSwKKyAgICAgICAgICAgIHsgUkVTT0xWRV9SRU1BUCB8IERBWV9PRl9NT05USCwgSVNfTEVBUF9NT05USCB9LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiB9LAorICAgICAgICAgICAgeyBXRUVLX09GX01PTlRIIH0sCisgICAgICAgICAgICB7IERBWV9PRl9XRUVLX0lOX01PTlRIIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfV0VFS19JTl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgUkVTT0xWRV9SRU1BUCB8IERBWV9PRl9XRUVLX0lOX01PTlRILCBET1dfTE9DQUwgfSwKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gYWRkIElTX0xFQVBfTU9OVEggdG8gdGhlIGZpZWxkIHJlc29sdXRpb24KKyAgICAgKiB0YWJsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50W11bXVtdIGdldEZpZWxkUmVzb2x1dGlvblRhYmxlKCkgeworICAgICAgICByZXR1cm4gQ0hJTkVTRV9EQVRFX1BSRUNFREVOQ0U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRqdXN0IHRoaXMgY2FsZW5kYXIgdG8gYmUgZGVsdGEgbW9udGhzIGJlZm9yZSBvciBhZnRlciBhIGdpdmVuCisgICAgICogc3RhcnQgcG9zaXRpb24sIHBpbm5pbmcgdGhlIGRheSBvZiBtb250aCBpZiBuZWNlc3NhcnkuICBUaGUgc3RhcnQKKyAgICAgKiBwb3NpdGlvbiBpcyBnaXZlbiBhcyBhIGxvY2FsIGRheXMgbnVtYmVyIGZvciB0aGUgc3RhcnQgb2YgdGhlIG1vbnRoCisgICAgICogYW5kIGEgZGF5LW9mLW1vbnRoLiAgVXNlZCBieSBhZGQoKSBhbmQgcm9sbCgpLgorICAgICAqIEBwYXJhbSBuZXdNb29uIHRoZSBsb2NhbCBkYXlzIG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIG9mIHRoZQorICAgICAqIHN0YXJ0IHBvc2l0aW9uIChkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkpCisgICAgICogQHBhcmFtIGRvbSB0aGUgMS1iYXNlZCBkYXktb2YtbW9udGggb2YgdGhlIHN0YXJ0IHBvc2l0aW9uCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBudW1iZXIgb2YgbW9udGhzIHRvIG1vdmUgZm9yd2FyZCBvciBiYWNrd2FyZCBmcm9tCisgICAgICogdGhlIHN0YXJ0IHBvc2l0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIG9mZnNldE1vbnRoKGludCBuZXdNb29uLCBpbnQgZG9tLCBpbnQgZGVsdGEpIHsKKyAgICAgICAgLy8gTW92ZSB0byB0aGUgbWlkZGxlIG9mIHRoZSBtb250aCBiZWZvcmUgb3VyIHRhcmdldCBtb250aC4KKyAgICAgICAgbmV3TW9vbiArPSAoaW50KSAoQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEggKiAoZGVsdGEgLSAwLjUpKTsKKworICAgICAgICAvLyBTZWFyY2ggZm9yd2FyZCB0byB0aGUgdGFyZ2V0IG1vbnRoJ3MgbmV3IG1vb24KKyAgICAgICAgbmV3TW9vbiA9IG5ld01vb25OZWFyKG5ld01vb24sIHRydWUpOworCisgICAgICAgIC8vIEZpbmQgdGhlIHRhcmdldCBkb20KKyAgICAgICAgaW50IGpkID0gbmV3TW9vbiArIEVQT0NIX0pVTElBTl9EQVkgLSAxICsgZG9tOworCisgICAgICAgIC8vIFBpbiB0aGUgZG9tLiAgSW4gdGhpcyBjYWxlbmRhciBhbGwgbW9udGhzIGFyZSAyOSBvciAzMCBkYXlzCisgICAgICAgIC8vIHNvIHBpbm5pbmcganVzdCBtZWFucyBoYW5kbGluZyBkb20gMzAuCisgICAgICAgIGlmIChkb20gPiAyOSkgeworICAgICAgICAgICAgc2V0KEpVTElBTl9EQVksIGpkLTEpOworICAgICAgICAgICAgLy8gVE9ETyBGaXggdGhpcy4gIFdlIHJlYWxseSBzaG91bGRuJ3QgZXZlciBoYXZlIHRvCisgICAgICAgICAgICAvLyBleHBsaWNpdGx5IGNhbGwgY29tcGxldGUoKS4gIFRoaXMgaXMgZWl0aGVyIGEgYnVnIGluCisgICAgICAgICAgICAvLyB0aGlzIG1ldGhvZCwgaW4gQ2hpbmVzZUNhbGVuZGFyLCBvciBpbgorICAgICAgICAgICAgLy8gQ2FsZW5kYXIuZ2V0QWN0dWFsTWF4aW11bSgpLiAgSSBzdXNwZWN0IHRoZSBsYXN0LgorICAgICAgICAgICAgY29tcGxldGUoKTsKKyAgICAgICAgICAgIGlmIChnZXRBY3R1YWxNYXhpbXVtKERBWV9PRl9NT05USCkgPj0gZG9tKSB7CisgICAgICAgICAgICAgICAgc2V0KEpVTElBTl9EQVksIGpkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldChKVUxJQU5fREFZLCBqZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBoYW5kbGUgbGVhcCBtb250aHMgcHJvcGVybHkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICBpZiAoYW1vdW50ICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgZG9tID0gZ2V0KERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgaW50IGRheSA9IGdldChKVUxJQU5fREFZKSAtIEVQT0NIX0pVTElBTl9EQVk7IC8vIEdldCBsb2NhbCBkYXkKKyAgICAgICAgICAgICAgICBpbnQgbW9vbiA9IGRheSAtIGRvbSArIDE7IC8vIE5ldyBtb29uIAorICAgICAgICAgICAgICAgIG9mZnNldE1vbnRoKG1vb24sIGRvbSwgYW1vdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIuYWRkKGZpZWxkLCBhbW91bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBoYW5kbGUgbGVhcCBtb250aHMgcHJvcGVybHkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgaWYgKGFtb3VudCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IGRvbSA9IGdldChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGludCBkYXkgPSBnZXQoSlVMSUFOX0RBWSkgLSBFUE9DSF9KVUxJQU5fREFZOyAvLyBHZXQgbG9jYWwgZGF5CisgICAgICAgICAgICAgICAgaW50IG1vb24gPSBkYXkgLSBkb20gKyAxOyAvLyBOZXcgbW9vbiAoc3RhcnQgb2YgdGhpcyBtb250aCkKKworICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhyb3VnaG91dCB0aGUgZm9sbG93aW5nOiAgTW9udGhzIDEyIGFuZCAxIGFyZSBuZXZlcgorICAgICAgICAgICAgICAgIC8vIGZvbGxvd2VkIGJ5IGEgbGVhcCBtb250aCAoRCZSIHAuIDE4NSkuCisKKyAgICAgICAgICAgICAgICAvLyBDb21wdXRlIHRoZSBhZGp1c3RlZCBtb250aCBudW1iZXIgbS4gIFRoaXMgaXMgemVyby1iYXNlZAorICAgICAgICAgICAgICAgIC8vIHZhbHVlIGZyb20gMC4uMTEgaW4gYSBub24tbGVhcCB5ZWFyLCBhbmQgZnJvbSAwLi4xMiBpbiBhCisgICAgICAgICAgICAgICAgLy8gbGVhcCB5ZWFyLgorICAgICAgICAgICAgICAgIGludCBtID0gZ2V0KE1PTlRIKTsgLy8gMC1iYXNlZCBtb250aAorICAgICAgICAgICAgICAgIGlmIChpc0xlYXBZZWFyKSB7IC8vIChtZW1iZXIgdmFyaWFibGUpCisgICAgICAgICAgICAgICAgICAgIGlmIChnZXQoSVNfTEVBUF9NT05USCkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKyttOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGEgcHJpb3IgbGVhcCBtb250aC4gIChJbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvbGxvd2luZywgbW9udGggMCBpcyB0aGUgZmlyc3QgbW9udGggb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB5ZWFyLikgIE1vbnRoIDAgaXMgbmV2ZXIgZm9sbG93ZWQgYnkgYSBsZWFwCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb250aCwgYW5kIHdlIGtub3cgbW9udGggbSBpcyBub3QgYSBsZWFwIG1vbnRoLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9vbjEgd2lsbCBiZSB0aGUgc3RhcnQgb2YgbW9udGggMCBpZiB0aGVyZSBpcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gbGVhcCBtb250aCBiZXR3ZWVuIG1vbnRoIDAgYW5kIG1vbnRoIG07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgaXQgd2lsbCBiZSB0aGUgc3RhcnQgb2YgbW9udGggMS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb29uMSA9IG1vb24gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIChDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USCAqIChtIC0gMC41KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtb29uMSA9IG5ld01vb25OZWFyKG1vb24xLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0xlYXBNb250aEJldHdlZW4obW9vbjEsIG1vb24pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyttOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gTm93IGRvIHRoZSBzdGFuZGFyZCByb2xsIGNvbXB1dGF0aW9uIG9uIG0sIHdpdGggdGhlCisgICAgICAgICAgICAgICAgLy8gYWxsb3dlZCByYW5nZSBvZiAwLi5uLTEsIHdoZXJlIG4gaXMgMTIgb3IgMTMuCisgICAgICAgICAgICAgICAgaW50IG4gPSBpc0xlYXBZZWFyID8gMTMgOiAxMjsgLy8gTW9udGhzIGluIHRoaXMgeWVhcgorICAgICAgICAgICAgICAgIGludCBuZXdNID0gKG0gKyBhbW91bnQpICUgbjsKKyAgICAgICAgICAgICAgICBpZiAobmV3TSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3TSArPSBuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChuZXdNICE9IG0pIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TW9udGgobW9vbiwgZG9tLCBuZXdNIC0gbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5yb2xsKGZpZWxkLCBhbW91bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcyBhbmQgY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIAorICAgIC8qKgorICAgICAqIFRoZSBzdGFydCB5ZWFyIG9mIHRoZSBDaGluZXNlIGNhbGVuZGFyLCB0aGUgNjFzdCB5ZWFyIG9mIHRoZSByZWlnbgorICAgICAqIG9mIEh1YW5nIERpLiAgU29tZSBzb3VyY2VzIHVzZSB0aGUgZmlyc3QgeWVhciBvZiBoaXMgcmVpZ24sCisgICAgICogcmVzdWx0aW5nIGluIEVYVEVOREVEX1lFQVIgdmFsdWVzIDYwIHllYXJzIGdyZWF0ZXIgYW5kIEVSQSAoY3ljbGUpCisgICAgICogdmFsdWVzIG9uZSBncmVhdGVyLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSElORVNFX0VQT0NIX1lFQVIgPSAtMjYzNjsgLy8gR3JlZ29yaWFuIHllYXIKKworICAgIC8qKgorICAgICAqIFRoZSBvZmZzZXQgZnJvbSBHTVQgaW4gbWlsbGlzZWNvbmRzIGF0IHdoaWNoIHdlIHBlcmZvcm0gYXN0cm9ub21pY2FsCisgICAgICogY29tcHV0YXRpb25zLiAgU29tZSBzb3VyY2VzIHVzZSBhIGRpZmZlcmVudCBoaXN0b3JpY2FsbHkgYWNjdXJhdGUKKyAgICAgKiBvZmZzZXQgb2YgR01UKzc6NDU6NDAgZm9yIHllYXJzIGJlZm9yZSAxOTI5OyB3ZSBkbyBub3QgZG8gdGhpcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIENISU5BX09GRlNFVCA9IDgqT05FX0hPVVI7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gdGhlIGxvY2FsIGRheXMgb2YgYSBuZXcgbW9vbiB0bworICAgICAqIGdldCBjbG9zZSB0byB0aGUgbmV4dCBvciBwcmlvciBuZXcgbW9vbiwgYnV0IG5vdCBjcm9zcyBpdC4gIE11c3QgYmUKKyAgICAgKiA+PSAxIGFuZCA8IENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRILgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTWU5PRElDX0dBUCA9IDI1OworCisgICAgLyoqCisgICAgICogQ29udmVydCBsb2NhbCBkYXlzIHRvIFVUQyBlcG9jaCBtaWxsaXNlY29uZHMuCisgICAgICogQHBhcmFtIGRheXMgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICogQHJldHVybiBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgR01UCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBkYXlzVG9NaWxsaXMoaW50IGRheXMpIHsKKyAgICAgICAgcmV0dXJuIChkYXlzICogT05FX0RBWSkgLSBDSElOQV9PRkZTRVQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBVVEMgZXBvY2ggbWlsbGlzZWNvbmRzIHRvIGxvY2FsIGRheXMuCisgICAgICogQHBhcmFtIG1pbGxpcyBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgR01UCisgICAgICogQHJldHVybiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzVG9EYXlzKGxvbmcgbWlsbGlzKSB7CisgICAgICAgIHJldHVybiAoaW50KSBmbG9vckRpdmlkZShtaWxsaXMgKyBDSElOQV9PRkZTRVQsIE9ORV9EQVkpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQXN0cm9ub21pY2FsIGNvbXB1dGF0aW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtYWpvciBzb2xhciB0ZXJtIG9uIG9yIGFmdGVyIERlY2VtYmVyIDE1IG9mIHRoZSBnaXZlbgorICAgICAqIEdyZWdvcmlhbiB5ZWFyLCB0aGF0IGlzLCB0aGUgd2ludGVyIHNvbHN0aWNlIG9mIHRoZSBnaXZlbiB5ZWFyLgorICAgICAqIENvbXB1dGF0aW9ucyBhcmUgcmVsYXRpdmUgdG8gQXNpYS9TaGFuZ2hhaSB0aW1lIHpvbmUuCisgICAgICogQHBhcmFtIGd5ZWFyIGEgR3JlZ29yaWFuIHllYXIKKyAgICAgKiBAcmV0dXJuIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiB0aGUKKyAgICAgKiB3aW50ZXIgc29sc3RpY2Ugb2YgdGhlIGdpdmVuIHllYXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB3aW50ZXJTb2xzdGljZShpbnQgZ3llYXIpIHsKKworICAgICAgICBsb25nIGNhY2hlVmFsdWUgPSB3aW50ZXJTb2xzdGljZUNhY2hlLmdldChneWVhcik7CisKKyAgICAgICAgaWYgKGNhY2hlVmFsdWUgPT0gQ2FsZW5kYXJDYWNoZS5FTVBUWSkgeworICAgICAgICAgICAgLy8gSW4gYm9va3MgRGVjZW1iZXIgMTUgaXMgdXNlZCwgYnV0IGl0IGZhaWxzIGZvciBzb21lIHllYXJzCisgICAgICAgICAgICAvLyB1c2luZyBvdXIgYWxnb3JpdGhtcywgZS5nLjogMTI5OCAxMzkxIDE0OTIgMTU1MyAxNTYwLiAgVGhhdAorICAgICAgICAgICAgLy8gaXMsIHdpbnRlclNvbHN0aWNlKDEyOTgpIHN0YXJ0cyBzZWFyY2ggYXQgRGVjIDE0IDA4OjAwOjAwCisgICAgICAgICAgICAvLyBQU1QgMTI5OCB3aXRoIGEgZmluYWwgcmVzdWx0IG9mIERlYyAxNCAxMDozMTo1OSBQU1QgMTI5OS4KKyAgICAgICAgICAgIGxvbmcgbXMgPSBkYXlzVG9NaWxsaXMoY29tcHV0ZUdyZWdvcmlhbk1vbnRoU3RhcnQoZ3llYXIsIERFQ0VNQkVSKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgLSBFUE9DSF9KVUxJQU5fREFZKTsKKyAgICAgICAgICAgIGFzdHJvLnNldFRpbWUobXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXaW50ZXIgc29sc3RpY2UgaXMgMjcwIGRlZ3JlZXMgc29sYXIgbG9uZ2l0dWRlIGFrYSBEb25nemhpCisgICAgICAgICAgICBsb25nIHNvbGFyTG9uZyA9IGFzdHJvLmdldFN1blRpbWUoQ2FsZW5kYXJBc3Ryb25vbWVyLldJTlRFUl9TT0xTVElDRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgIGNhY2hlVmFsdWUgPSBtaWxsaXNUb0RheXMoc29sYXJMb25nKTsKKyAgICAgICAgICAgIHdpbnRlclNvbHN0aWNlQ2FjaGUucHV0KGd5ZWFyLCBjYWNoZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGludCkgY2FjaGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNsb3Nlc3QgbmV3IG1vb24gdG8gdGhlIGdpdmVuIGRhdGUsIHNlYXJjaGluZyBlaXRoZXIKKyAgICAgKiBmb3J3YXJkIG9yIGJhY2t3YXJkIGluIHRpbWUuCisgICAgICogQHBhcmFtIGRheXMgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICogQHBhcmFtIGFmdGVyIGlmIHRydWUsIHNlYXJjaCBmb3IgYSBuZXcgbW9vbiBvbiBvciBhZnRlciB0aGUgZ2l2ZW4KKyAgICAgKiBkYXRlOyBvdGhlcndpc2UsIHNlYXJjaCBmb3IgYSBuZXcgbW9vbiBiZWZvcmUgaXQKKyAgICAgKiBAcmV0dXJuIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiB0aGUgbmVhcmVzdAorICAgICAqIG5ldyBtb29uIGFmdGVyIG9yIGJlZm9yZSA8Y29kZT5kYXlzPC9jb2RlPgorICAgICAqLworICAgIHByaXZhdGUgaW50IG5ld01vb25OZWFyKGludCBkYXlzLCBib29sZWFuIGFmdGVyKSB7CisgICAgICAgIAorICAgICAgICBhc3Ryby5zZXRUaW1lKGRheXNUb01pbGxpcyhkYXlzKSk7CisgICAgICAgIGxvbmcgbmV3TW9vbiA9IGFzdHJvLmdldE1vb25UaW1lKENhbGVuZGFyQXN0cm9ub21lci5ORVdfTU9PTiwgYWZ0ZXIpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG1pbGxpc1RvRGF5cyhuZXdNb29uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5lYXJlc3QgaW50ZWdlciBudW1iZXIgb2Ygc3lub2RpYyBtb250aHMgYmV0d2VlbgorICAgICAqIHR3byBkYXRlcy4KKyAgICAgKiBAcGFyYW0gZGF5MSBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkKKyAgICAgKiBAcGFyYW0gZGF5MiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkKKyAgICAgKiBAcmV0dXJuIHRoZSBuZWFyZXN0IGludGVnZXIgbnVtYmVyIG9mIG1vbnRocyBiZXR3ZWVuIGRheTEgYW5kIGRheTIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzeW5vZGljTW9udGhzQmV0d2VlbihpbnQgZGF5MSwgaW50IGRheTIpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIE1hdGgucm91bmQoKGRheTIgLSBkYXkxKSAvIENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1ham9yIHNvbGFyIHRlcm0gb24gb3IgYmVmb3JlIGEgZ2l2ZW4gZGF0ZS4gIFRoaXMKKyAgICAgKiB3aWxsIGJlIGFuIGludGVnZXIgZnJvbSAxLi4xMiwgd2l0aCAxIGNvcnJlc3BvbmRpbmcgdG8gMzMwIGRlZ3JlZXMsCisgICAgICogMiB0byAwIGRlZ3JlZXMsIDMgdG8gMzAgZGVncmVlcywuLi4sIGFuZCAxMiB0byAzMDAgZGVncmVlcy4KKyAgICAgKiBAcGFyYW0gZGF5cyBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtYWpvclNvbGFyVGVybShpbnQgZGF5cykgeworICAgICAgICAKKyAgICAgICAgYXN0cm8uc2V0VGltZShkYXlzVG9NaWxsaXMoZGF5cykpOworCisgICAgICAgIC8vIENvbXB1dGUgKGZsb29yKHNvbGFyTG9uZ2l0dWRlIC8gKHBpLzYpKSArIDIpICUgMTIKKyAgICAgICAgaW50IHRlcm0gPSAoKGludCkgTWF0aC5mbG9vcig2ICogYXN0cm8uZ2V0U3VuTG9uZ2l0dWRlKCkgLyBNYXRoLlBJKSArIDIpICUgMTI7CisgICAgICAgIGlmICh0ZXJtIDwgMSkgeworICAgICAgICAgICAgdGVybSArPSAxMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGVybTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gbW9udGggbGFja3MgYSBtYWpvciBzb2xhciB0ZXJtLgorICAgICAqIEBwYXJhbSBuZXdNb29uIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiBhIG5ldworICAgICAqIG1vb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaGFzTm9NYWpvclNvbGFyVGVybShpbnQgbmV3TW9vbikgeworICAgICAgICAKKyAgICAgICAgaW50IG1zdCA9IG1ham9yU29sYXJUZXJtKG5ld01vb24pOworICAgICAgICBpbnQgbm1uID0gbmV3TW9vbk5lYXIobmV3TW9vbiArIFNZTk9ESUNfR0FQLCB0cnVlKTsKKyAgICAgICAgaW50IG1zdHQgPSBtYWpvclNvbGFyVGVybShubW4pOworICAgICAgICByZXR1cm4gbXN0ID09IG1zdHQ7CisgICAgICAgIC8qCisgICAgICAgIHJldHVybiBtYWpvclNvbGFyVGVybShuZXdNb29uKSA9PQorICAgICAgICAgICAgbWFqb3JTb2xhclRlcm0obmV3TW9vbk5lYXIobmV3TW9vbiArIFNZTk9ESUNfR0FQLCB0cnVlKSk7CisgICAgICAgICovCisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaW1lIHRvIGZpZWxkcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBsZWFwIG1vbnRoIG9uIG9yIGFmdGVyIG1vbnRoIG5ld01vb24xIGFuZAorICAgICAqIGF0IG9yIGJlZm9yZSBtb250aCBuZXdNb29uMi4KKyAgICAgKiBAcGFyYW0gbmV3TW9vbjEgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIGEKKyAgICAgKiBuZXcgbW9vbgorICAgICAqIEBwYXJhbSBuZXdNb29uMiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgYQorICAgICAqIG5ldyBtb29uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzTGVhcE1vbnRoQmV0d2VlbihpbnQgbmV3TW9vbjEsIGludCBuZXdNb29uMikgeworCisgICAgICAgIC8vIFRoaXMgaXMgb25seSBuZWVkZWQgdG8gZGVidWcgdGhlIHRpbWVPZkFuZ2xlIGRpdmVyZ2VuY2UgYnVnLgorICAgICAgICAvLyBSZW1vdmUgdGhpcyBsYXRlci4gTGl1IDExLzkvMDAKKyAgICAgICAgLy8gREVCVUcKKyAgICAgICAgaWYgKHN5bm9kaWNNb250aHNCZXR3ZWVuKG5ld01vb24xLCBuZXdNb29uMikgPj0gNTApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImlzTGVhcE1vbnRoQmV0d2VlbigiICsgbmV3TW9vbjEgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiICsgbmV3TW9vbjIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKTogSW52YWxpZCBwYXJhbWV0ZXJzIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKG5ld01vb24yID49IG5ld01vb24xKSAmJgorICAgICAgICAgICAgKGlzTGVhcE1vbnRoQmV0d2VlbihuZXdNb29uMSwgbmV3TW9vbk5lYXIobmV3TW9vbjIgLSBTWU5PRElDX0dBUCwgZmFsc2UpKSB8fAorICAgICAgICAgICAgIGhhc05vTWFqb3JTb2xhclRlcm0obmV3TW9vbjIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBjb21wdXRlIHNldmVyYWwgZmllbGRzIHNwZWNpZmljIHRvIHRoZSBDaGluZXNlCisgICAgICogY2FsZW5kYXIgc3lzdGVtLiAgVGhlc2UgYXJlOgorICAgICAqCisgICAgICogPHVsPjxsaT5FUkEKKyAgICAgKiA8bGk+WUVBUgorICAgICAqIDxsaT5NT05USAorICAgICAqIDxsaT5EQVlfT0ZfTU9OVEgKKyAgICAgKiA8bGk+REFZX09GX1lFQVIKKyAgICAgKiA8bGk+RVhURU5ERURfWUVBUjwvdWw+CisgICAgICogCisgICAgICogVGhlIERBWV9PRl9XRUVLIGFuZCBET1dfTE9DQUwgZmllbGRzIGFyZSBhbHJlYWR5IHNldCB3aGVuIHRoaXMKKyAgICAgKiBtZXRob2QgaXMgY2FsbGVkLiAgVGhlIGdldEdyZWdvcmlhblh4eCgpIG1ldGhvZHMgcmV0dXJuIEdyZWdvcmlhbgorICAgICAqIGNhbGVuZGFyIGVxdWl2YWxlbnRzIGZvciB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4KKyAgICAgKgorICAgICAqIDxwPkNvbXB1dGUgdGhlIENoaW5lc2VDYWxlbmRhci1zcGVjaWZpYyBmaWVsZCBJU19MRUFQX01PTlRILgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworCisgICAgICAgIGNvbXB1dGVDaGluZXNlRmllbGRzKGp1bGlhbkRheSAtIEVQT0NIX0pVTElBTl9EQVksIC8vIGxvY2FsIGRheXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0R3JlZ29yaWFuWWVhcigpLCBnZXRHcmVnb3JpYW5Nb250aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsgLy8gc2V0IGFsbCBmaWVsZHMKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGZpZWxkcyBmb3IgdGhlIENoaW5lc2UgY2FsZW5kYXIgc3lzdGVtLiAgVGhpcyBtZXRob2QgY2FuCisgICAgICogZWl0aGVyIHNldCBhbGwgcmVsZXZhbnQgZmllbGRzLCBhcyByZXF1aXJlZCBieQorICAgICAqIDxjb2RlPmhhbmRsZUNvbXB1dGVGaWVsZHMoKTwvY29kZT4sIG9yIGl0IGNhbiBqdXN0IHNldCB0aGUgTU9OVEggYW5kCisgICAgICogSVNfTEVBUF9NT05USCBmaWVsZHMsIGFzIHJlcXVpcmVkIGJ5CisgICAgICogPGNvZGU+aGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoKTwvY29kZT4uCisgICAgICoKKyAgICAgKiA8cD5BcyBhIHNpZGUgZWZmZWN0LCB0aGlzIG1ldGhvZCBzZXRzIHtAbGluayAjaXNMZWFwWWVhcn0uCisgICAgICogQHBhcmFtIGRheXMgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIHRoZQorICAgICAqIGRhdGUgdG8gY29tcHV0ZSBmaWVsZHMgZm9yCisgICAgICogQHBhcmFtIGd5ZWFyIHRoZSBHcmVnb3JpYW4geWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIEBwYXJhbSBnbW9udGggdGhlIEdyZWdvcmlhbiBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIEBwYXJhbSBzZXRBbGxGaWVsZHMgaWYgdHJ1ZSwgc2V0IHRoZSBFWFRFTkRFRF9ZRUFSLCBFUkEsIFlFQVIsCisgICAgICogREFZX09GX01PTlRILCBhbmQgREFZX09GX1lFQVIgZmllbGRzLiAgSW4gZWl0aGVyIGNhc2Ugc2V0IHRoZSBNT05USAorICAgICAqIGFuZCBJU19MRUFQX01PTlRIIGZpZWxkcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29tcHV0ZUNoaW5lc2VGaWVsZHMoaW50IGRheXMsIGludCBneWVhciwgaW50IGdtb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzZXRBbGxGaWVsZHMpIHsKKworICAgICAgICAvLyBGaW5kIHRoZSB3aW50ZXIgc29sc3RpY2VzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRhcmdldCBkYXRlLgorICAgICAgICAvLyBUaGVzZSBkZWZpbmUgdGhlIGJvdW5kYXJpZXMgb2YgdGhpcyBDaGluZXNlIHllYXIsIHNwZWNpZmljYWxseSwKKyAgICAgICAgLy8gdGhlIHBvc2l0aW9uIG9mIG1vbnRoIDExLCB3aGljaCBhbHdheXMgY29udGFpbnMgdGhlIHNvbHN0aWNlLgorICAgICAgICAvLyBXZSB3YW50IHNvbHN0aWNlQmVmb3JlIDw9IGRhdGUgPCBzb2xzdGljZUFmdGVyLgorICAgICAgICBpbnQgc29sc3RpY2VCZWZvcmU7CisgICAgICAgIGludCBzb2xzdGljZUFmdGVyID0gd2ludGVyU29sc3RpY2UoZ3llYXIpOworICAgICAgICBpZiAoZGF5cyA8IHNvbHN0aWNlQWZ0ZXIpIHsKKyAgICAgICAgICAgIHNvbHN0aWNlQmVmb3JlID0gd2ludGVyU29sc3RpY2UoZ3llYXIgLSAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNvbHN0aWNlQmVmb3JlID0gc29sc3RpY2VBZnRlcjsKKyAgICAgICAgICAgIHNvbHN0aWNlQWZ0ZXIgPSB3aW50ZXJTb2xzdGljZShneWVhciArIDEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgc3RhcnQgb2YgdGhlIG1vbnRoIGFmdGVyIG1vbnRoIDExLiAgVGhpcyB3aWxsIGJlIGVpdGhlcgorICAgICAgICAvLyB0aGUgcHJpb3IgbW9udGggMTIgb3IgbGVhcCBtb250aCAxMSAodmVyeSByYXJlKS4gIEFsc28gZmluZCB0aGUKKyAgICAgICAgLy8gc3RhcnQgb2YgdGhlIGZvbGxvd2luZyBtb250aCAxMS4KKyAgICAgICAgaW50IGZpcnN0TW9vbiA9IG5ld01vb25OZWFyKHNvbHN0aWNlQmVmb3JlICsgMSwgdHJ1ZSk7CisgICAgICAgIGludCBsYXN0TW9vbiA9IG5ld01vb25OZWFyKHNvbHN0aWNlQWZ0ZXIgKyAxLCBmYWxzZSk7CisgICAgICAgIGludCB0aGlzTW9vbiA9IG5ld01vb25OZWFyKGRheXMgKyAxLCBmYWxzZSk7IC8vIFN0YXJ0IG9mIHRoaXMgbW9udGgKKyAgICAgICAgLy8gTm90ZTogaXNMZWFwWWVhciBpcyBhIG1lbWJlciB2YXJpYWJsZQorICAgICAgICBpc0xlYXBZZWFyID0gc3lub2RpY01vbnRoc0JldHdlZW4oZmlyc3RNb29uLCBsYXN0TW9vbikgPT0gMTI7CisKKyAgICAgICAgaW50IG1vbnRoID0gc3lub2RpY01vbnRoc0JldHdlZW4oZmlyc3RNb29uLCB0aGlzTW9vbik7CisgICAgICAgIGlmIChpc0xlYXBZZWFyICYmIGlzTGVhcE1vbnRoQmV0d2VlbihmaXJzdE1vb24sIHRoaXNNb29uKSkgeworICAgICAgICAgICAgbW9udGgtLTsKKyAgICAgICAgfQorICAgICAgICBpZiAobW9udGggPCAxKSB7CisgICAgICAgICAgICBtb250aCArPSAxMjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNMZWFwTW9udGggPSBpc0xlYXBZZWFyICYmCisgICAgICAgICAgICBoYXNOb01ham9yU29sYXJUZXJtKHRoaXNNb29uKSAmJgorICAgICAgICAgICAgIWlzTGVhcE1vbnRoQmV0d2VlbihmaXJzdE1vb24sIG5ld01vb25OZWFyKHRoaXNNb29uIC0gU1lOT0RJQ19HQVAsIGZhbHNlKSk7CisKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoLTEpOyAvLyBDb252ZXJ0IGZyb20gMS1iYXNlZCB0byAwLWJhc2VkCisgICAgICAgIGludGVybmFsU2V0KElTX0xFQVBfTU9OVEgsIGlzTGVhcE1vbnRoPzE6MCk7CisKKyAgICAgICAgaWYgKHNldEFsbEZpZWxkcykgeworCisgICAgICAgICAgICBpbnQgeWVhciA9IGd5ZWFyIC0gQ0hJTkVTRV9FUE9DSF9ZRUFSOworICAgICAgICAgICAgaWYgKG1vbnRoIDwgMTEgfHwKKyAgICAgICAgICAgICAgICBnbW9udGggPj0gSlVMWSkgeworICAgICAgICAgICAgICAgIHllYXIrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBkYXlPZk1vbnRoID0gZGF5cyAtIHRoaXNNb29uICsgMTsKKworICAgICAgICAgICAgaW50ZXJuYWxTZXQoRVhURU5ERURfWUVBUiwgeWVhcik7CisKKyAgICAgICAgICAgIC8vIDAtPjAsNjAgIDEtPjEsMSAgNjAtPjEsNjAgIDYxLT4yLDEgIGV0Yy4KKyAgICAgICAgICAgIGludFtdIHllYXJPZkN5Y2xlID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGludCBjeWNsZSA9IGZsb29yRGl2aWRlKHllYXItMSwgNjAsIHllYXJPZkN5Y2xlKTsKKyAgICAgICAgICAgIGludGVybmFsU2V0KEVSQSwgY3ljbGUrMSk7CisgICAgICAgICAgICBpbnRlcm5hbFNldChZRUFSLCB5ZWFyT2ZDeWNsZVswXSsxKTsKKworICAgICAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKworICAgICAgICAgICAgLy8gRGF5cyB3aWxsIGJlIGJlZm9yZSB0aGUgZmlyc3QgbmV3IHllYXIgd2UgY29tcHV0ZSBpZiB0aGlzCisgICAgICAgICAgICAvLyBkYXRlIGlzIGluIG1vbnRoIDExLCBsZWFwIDExLCAxMi4gIFRoZXJlIGlzIG5ldmVyIGEgbGVhcCAxMi4KKyAgICAgICAgICAgIC8vIE5ldyB5ZWFyIGNvbXB1dGF0aW9ucyBhcmUgY2FjaGVkIHNvIHRoaXMgc2hvdWxkIGJlIGNoZWFwIGluCisgICAgICAgICAgICAvLyB0aGUgbG9uZyBydW4uCisgICAgICAgICAgICBpbnQgbmV3WWVhciA9IG5ld1llYXIoZ3llYXIpOworICAgICAgICAgICAgaWYgKGRheXMgPCBuZXdZZWFyKSB7CisgICAgICAgICAgICAgICAgbmV3WWVhciA9IG5ld1llYXIoZ3llYXItMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfWUVBUiwgZGF5cyAtIG5ld1llYXIgKyAxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRmllbGRzIHRvIHRpbWUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgQ2hpbmVzZSBuZXcgeWVhciBvZiB0aGUgZ2l2ZW4gR3JlZ29yaWFuIHllYXIuCisgICAgICogQHBhcmFtIGd5ZWFyIGEgR3JlZ29yaWFuIHllYXIKKyAgICAgKiBAcmV0dXJuIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiB0aGUKKyAgICAgKiBDaGluZXNlIG5ldyB5ZWFyIG9mIHRoZSBnaXZlbiB5ZWFyICh0aGlzIHdpbGwgYmUgYSBuZXcgbW9vbikKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXdZZWFyKGludCBneWVhcikgeworCisgICAgICAgIGxvbmcgY2FjaGVWYWx1ZSA9IG5ld1llYXJDYWNoZS5nZXQoZ3llYXIpOworCisgICAgICAgIGlmIChjYWNoZVZhbHVlID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpIHsKKworICAgICAgICAgICAgaW50IHNvbHN0aWNlQmVmb3JlPSB3aW50ZXJTb2xzdGljZShneWVhciAtIDEpOworICAgICAgICAgICAgaW50IHNvbHN0aWNlQWZ0ZXIgPSB3aW50ZXJTb2xzdGljZShneWVhcik7CisgICAgICAgICAgICBpbnQgbmV3TW9vbjEgPSBuZXdNb29uTmVhcihzb2xzdGljZUJlZm9yZSArIDEsIHRydWUpOworICAgICAgICAgICAgaW50IG5ld01vb24yID0gbmV3TW9vbk5lYXIobmV3TW9vbjEgKyBTWU5PRElDX0dBUCwgdHJ1ZSk7CisgICAgICAgICAgICBpbnQgbmV3TW9vbjExID0gbmV3TW9vbk5lYXIoc29sc3RpY2VBZnRlciArIDEsIGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN5bm9kaWNNb250aHNCZXR3ZWVuKG5ld01vb24xLCBuZXdNb29uMTEpID09IDEyICYmCisgICAgICAgICAgICAgICAgKGhhc05vTWFqb3JTb2xhclRlcm0obmV3TW9vbjEpIHx8IGhhc05vTWFqb3JTb2xhclRlcm0obmV3TW9vbjIpKSkgeworICAgICAgICAgICAgICAgIGNhY2hlVmFsdWUgPSBuZXdNb29uTmVhcihuZXdNb29uMiArIFNZTk9ESUNfR0FQLCB0cnVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FjaGVWYWx1ZSA9IG5ld01vb24yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBuZXdZZWFyQ2FjaGUucHV0KGd5ZWFyLCBjYWNoZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGludCkgY2FjaGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyIG9mIGRheSBiZWZvcmUgdGhlIGZpcnN0IGRheSBvZiB0aGUKKyAgICAgKiBnaXZlbiBtb250aCBpbiB0aGUgZ2l2ZW4gZXh0ZW5kZWQgeWVhci4KKyAgICAgKiAKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCByZWFkcyB0aGUgSVNfTEVBUF9NT05USCBmaWVsZCB0byBkZXRlcm1pbmUKKyAgICAgKiB3aGV0aGVyIHRoZSBnaXZlbiBtb250aCBpcyBhIGxlYXAgbW9udGguCisgICAgICogQHBhcmFtIGV5ZWFyIHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB6ZXJvLWJhc2VkIG1vbnRoLiAgVGhlIG1vbnRoIGlzIGFsc28gZGV0ZXJtaW5lZAorICAgICAqIGJ5IHJlYWRpbmcgdGhlIElTX0xFQVBfTU9OVEggZmllbGQuCisgICAgICogQHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0CisgICAgICogZGF5IG9mIHRoZSBnaXZlbiBtb250aCBhbmQgeWVhcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsIGJvb2xlYW4gdXNlTW9udGgpIHsKKworICAgICAgICAvLyBJZiB0aGUgbW9udGggaXMgb3V0IG9mIHJhbmdlLCBhZGp1c3QgaXQgaW50byByYW5nZSwgYW5kCisgICAgICAgIC8vIG1vZGlmeSB0aGUgZXh0ZW5kZWQgeWVhciB2YWx1ZSBhY2NvcmRpbmdseS4KKyAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKSB7CisgICAgICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICAgICAgZXllYXIgKz0gZmxvb3JEaXZpZGUobW9udGgsIDEyLCByZW0pOworICAgICAgICAgICAgbW9udGggPSByZW1bMF07CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ3llYXIgPSBleWVhciArIENISU5FU0VfRVBPQ0hfWUVBUiAtIDE7IC8vIEdyZWdvcmlhbiB5ZWFyCisgICAgICAgIGludCBuZXdZZWFyID0gbmV3WWVhcihneWVhcik7CisgICAgICAgIGludCBuZXdNb29uID0gbmV3TW9vbk5lYXIobmV3WWVhciArIG1vbnRoICogMjksIHRydWUpOworICAgICAgICAKKyAgICAgICAgaW50IGp1bGlhbkRheSA9IG5ld01vb24gKyBFUE9DSF9KVUxJQU5fREFZOworCisgICAgICAgIC8vIFNhdmUgZmllbGRzIGZvciBsYXRlciByZXN0b3JhdGlvbgorICAgICAgICBpbnQgc2F2ZU1vbnRoID0gaW50ZXJuYWxHZXQoTU9OVEgpOworICAgICAgICBpbnQgc2F2ZUlzTGVhcE1vbnRoID0gaW50ZXJuYWxHZXQoSVNfTEVBUF9NT05USCk7CisKKyAgICAgICAgLy8gSWdub3JlIElTX0xFQVBfTU9OVEggZmllbGQgaWYgdXNlTW9udGggaXMgZmFsc2UKKyAgICAgICAgaW50IGlzTGVhcE1vbnRoID0gdXNlTW9udGggPyBzYXZlSXNMZWFwTW9udGggOiAwOworCisgICAgICAgIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoanVsaWFuRGF5KTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoaXMgd2lsbCBtb2RpZnkgdGhlIE1PTlRIIGFuZCBJU19MRUFQX01PTlRIIGZpZWxkcyAob25seSkKKyAgICAgICAgY29tcHV0ZUNoaW5lc2VGaWVsZHMobmV3TW9vbiwgZ2V0R3JlZ29yaWFuWWVhcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRHcmVnb3JpYW5Nb250aCgpLCBmYWxzZSk7ICAgICAgICAKKworICAgICAgICBpZiAobW9udGggIT0gaW50ZXJuYWxHZXQoTU9OVEgpIHx8CisgICAgICAgICAgICBpc0xlYXBNb250aCAhPSBpbnRlcm5hbEdldChJU19MRUFQX01PTlRIKSkgeworICAgICAgICAgICAgbmV3TW9vbiA9IG5ld01vb25OZWFyKG5ld01vb24gKyBTWU5PRElDX0dBUCwgdHJ1ZSk7CisgICAgICAgICAgICBqdWxpYW5EYXkgPSBuZXdNb29uICsgRVBPQ0hfSlVMSUFOX0RBWTsKKyAgICAgICAgfQorCisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBzYXZlTW9udGgpOworICAgICAgICBpbnRlcm5hbFNldChJU19MRUFQX01PTlRILCBzYXZlSXNMZWFwTW9udGgpOworCisgICAgICAgIHJldHVybiBqdWxpYW5EYXkgLSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBDYWxlbmRhciB0eXBlLgorICAgICAqIEByZXR1cm4gdHlwZSBvZiBjYWxlbmRhciAoZ3JlZ29yaWFuLCBldGMuKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImNoaW5lc2UiOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIHJlYWRPYmplY3QuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAKKyAgICAgICAgLyogc2V0IHVwIHRoZSB0cmFuc2llbnQgY2FjaGVzLi4uICovCisgICAgICAgIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgICAgICB3aW50ZXJTb2xzdGljZUNhY2hlID0gbmV3IENhbGVuZGFyQ2FjaGUoKTsKKyAgICAgICAgbmV3WWVhckNhY2hlID0gbmV3IENhbGVuZGFyQ2FjaGUoKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeTsKKyAgICBwdWJsaWMgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5KCkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICBmYWN0b3J5ID0gbmV3IENhbGVuZGFyRmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgQ2FsZW5kYXIgY3JlYXRlKFRpbWVab25lIHR6LCBVTG9jYWxlIGxvYykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENoaW5lc2VDYWxlbmRhcih0eiwgbG9jKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGZhY3RvcnlOYW1lKCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNoaW5lc2UiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Db21wYWN0Qnl0ZUFycmF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Db21wYWN0Qnl0ZUFycmF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTQ3MTFlZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RCeXRlQXJyYXkuamF2YQpAQCAtMCwwICsxLDM4NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogY2xhc3MgQ29tcGFjdEFUeXBlQXJyYXkgOiB1c2Ugb25seSBvbiBwcmltaXRpdmUgZGF0YSB0eXBlcworICogUHJvdmlkZXMgYSBjb21wYWN0IHdheSB0byBzdG9yZSBpbmZvcm1hdGlvbiB0aGF0IGlzIGluZGV4ZWQgYnkgVW5pY29kZQorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuVGhpcworICogaXMgdmVyeSB1c2VmdWwgd2hlbiB5b3UgaGF2ZSBhIGJsb2NrIG9mIFVuaWNvZGUgZGF0YSB0aGF0IGNvbnRhaW5zCisgKiBzaWduaWZpY2FudCB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlCisgKiBhcHBsaWNhdGlvbiBvciB3aGVuIHlvdSBoYXZlIGEgbG90IG9mIHJlZHVuZGFuY2UsIHN1Y2ggYXMgd2hlcmUgYWxsIDIxLDAwMAorICogSGFuIGlkZW9ncmFwaHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gIEhvd2V2ZXIsIGxvb2t1cCBpcyBtdWNoIGZhc3RlciB0aGFuIGEKKyAqIGhhc2ggdGFibGUuCisgKiBBIGNvbXBhY3QgYXJyYXkgb2YgYW55IHByaW1pdGl2ZSBkYXRhIHR5cGUgc2VydmVzIHR3byBwdXJwb3NlczoKKyAqIDxVTCB0eXBlID0gcm91bmQ+CisgKiAgICAgPExJPkZhc3QgYWNjZXNzIG9mIHRoZSBpbmRleGVkIHZhbHVlcy4KKyAqICAgICA8TEk+U21hbGxlciBtZW1vcnkgZm9vdHByaW50LgorICogPC9VTD4KKyAqIEEgY29tcGFjdCBhcnJheSBpcyBjb21wb3NlZCBvZiBhIGluZGV4IGFycmF5IGFuZCB2YWx1ZSBhcnJheS4gIFRoZSBpbmRleAorICogYXJyYXkgY29udGFpbnMgdGhlIGluZGljaWVzIG9mIFVuaWNvZGUgY2hhcmFjdGVycyB0byB0aGUgdmFsdWUgYXJyYXkuCisgKgorICogQHNlZSAgICAgICAgICAgICAgICBDb21wYWN0Q2hhckFycmF5CisgKiBAYXV0aG9yICAgICAgICAgICAgIEhlbGVuYSBTaGloCisgKiBAaW50ZXJuYWwKKyAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29tcGFjdEJ5dGVBcnJheSBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljICBmaW5hbCBpbnQgVU5JQ09ERUNPVU5UID02NTUzNjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgZm9yIENvbXBhY3RCeXRlQXJyYXksIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZQorICAgICAqIGNvbXBhY3QgYXJyYXkgaXMgMC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdEJ5dGVBcnJheSgpCisgICAgeworICAgICAgICB0aGlzKChieXRlKTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZvciBDb21wYWN0Qnl0ZUFycmF5LgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoYnl0ZSBkZWZhdWx0VmFsdWUpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgdmFsdWVzID0gbmV3IGJ5dGVbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgaW5kaWNlcyA9IG5ldyBjaGFyW0lOREVYQ09VTlRdOworICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgaGFzaGVzW2ldID0gMDsKKyAgICAgICAgfQorICAgICAgICBpc0NvbXBhY3QgPSBmYWxzZTsKKworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdEJ5dGVBcnJheS4KKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlcyB0aGUgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoY2hhciBpbmRleEFycmF5W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBuZXdWYWx1ZXNbXSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaW5kZXhBcnJheS5sZW5ndGggIT0gSU5ERVhDT1VOVCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBJTkRFWENPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgaW5kZXggPSBpbmRleEFycmF5W2ldOworICAgICAgICAgICAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBuZXdWYWx1ZXMubGVuZ3RoK0JMT0NLQ09VTlQpKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIH0KKyAgICAgICAgaW5kaWNlcyA9IGluZGV4QXJyYXk7CisgICAgICAgIHZhbHVlcyA9IG5ld1ZhbHVlczsKKyAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdEJ5dGVBcnJheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleEFycmF5IHRoZSBSTEUtZW5jb2RlZCBpbmRpY2llcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKiBAcGFyYW0gdmFsdWVBcnJheSB0aGUgUkxFLWVuY29kZWQgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGluZGV4IG9yIHZhbHVlIGFycmF5IGlzCisgICAgICogICAgICAgICAgdGhlIHdyb25nIHNpemUuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoU3RyaW5nIGluZGV4QXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQXJyYXkpCisgICAgeworICAgICAgICB0aGlzKCBVdGlsaXR5LlJMRVN0cmluZ1RvQ2hhckFycmF5KGluZGV4QXJyYXkpLAorICAgICAgICAgICAgICBVdGlsaXR5LlJMRVN0cmluZ1RvQnl0ZUFycmF5KHZhbHVlQXJyYXkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG1hcHBlZCB2YWx1ZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgY2hhcmFjdGVyIHRvIGdldCB0aGUgbWFwcGVkIHZhbHVlIHdpdGgKKyAgICAgKiBAcmV0dXJuIHRoZSBtYXBwZWQgdmFsdWUgb2YgdGhlIGdpdmVuIGNoYXJhY3RlcgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBieXRlIGVsZW1lbnRBdChjaGFyIGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuICh2YWx1ZXNbKGluZGljZXNbaW5kZXggPj4gQkxPQ0tTSElGVF0gJiAweEZGRkYpCisgICAgICAgICAgICAgICAgICAgICAgICsgKGluZGV4ICYgQkxPQ0tNQVNLKV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIG5ldyB2YWx1ZSBmb3IgYSBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBTZXQgYXV0b21hdGljYWxseSBleHBhbmRzIHRoZSBhcnJheSBpZiBpdCBpcyBjb21wYWN0ZWQuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBjaGFyYWN0ZXIgdG8gc2V0IHRoZSBtYXBwZWQgdmFsdWUgd2l0aAorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIGluZGV4LCBieXRlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGlzQ29tcGFjdCkKKyAgICAgICAgICAgIGV4cGFuZCgpOworICAgICAgICB2YWx1ZXNbKGludClpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgdG91Y2hCbG9jayhpbmRleCA+PiBCTE9DS1NISUZULCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5ldyB2YWx1ZXMgZm9yIGEgcmFuZ2Ugb2YgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmRpbmcgb2Zmc2V0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIHN0YXJ0LCBjaGFyIGVuZCwgYnl0ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gdmFsdWU7CisgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhY3QgdGhlIGFycmF5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbXBhY3QoKSB7CisgICAgICAgIGNvbXBhY3QoZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3QgdGhlIGFycmF5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbXBhY3QoYm9vbGVhbiBleGhhdXN0aXZlKQorICAgIHsKKyAgICAgICAgaWYgKCFpc0NvbXBhY3QpIHsKKyAgICAgICAgICAgIGludCBsaW1pdENvbXBhY3RlZCA9IDA7CisgICAgICAgICAgICBpbnQgaUJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgY2hhciBpVW50b3VjaGVkID0gMHhGRkZGOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGljZXMubGVuZ3RoOyArK2ksIGlCbG9ja1N0YXJ0ICs9IEJMT0NLQ09VTlQpIHsKKyAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gMHhGRkZGOworICAgICAgICAgICAgICAgIGJvb2xlYW4gdG91Y2hlZCA9IGJsb2NrVG91Y2hlZChpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWQgJiYgaVVudG91Y2hlZCAhPSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm8gdmFsdWVzIGluIHRoaXMgYmxvY2sgd2VyZSBzZXQsIHdlIGNhbiBqdXN0IHNldCBpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5kZXggdG8gYmUgdGhlIHNhbWUgYXMgc29tZSBvdGhlciBibG9jayB3aXRoIG5vIHZhbHVlcworICAgICAgICAgICAgICAgICAgICAvLyBzZXQsIGFzc3VtaW5nIHdlJ3ZlIHNlZW4gb25lIHlldC4KKyAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IGlVbnRvdWNoZWQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGpCbG9ja1N0YXJ0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbGltaXRDb21wYWN0ZWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytqLCBqQmxvY2tTdGFydCArPSBCTE9DS0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzaGVzW2ldID09IGhhc2hlc1tqXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVJlZ2lvbk1hdGNoZXModmFsdWVzLCBpQmxvY2tTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLCBqQmxvY2tTdGFydCwgQkxPQ0tDT1VOVCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpakJsb2NrU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGljZXNbaV0gPT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkaWRuJ3QgbWF0Y2gsIHNvIGNvcHkgJiB1cGRhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodmFsdWVzLCBpQmxvY2tTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsIGpCbG9ja1N0YXJ0LCBCTE9DS0NPVU5UKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcilqQmxvY2tTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hlc1tqXSA9IGhhc2hlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbGltaXRDb21wYWN0ZWQ7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdG91Y2hlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHVudG91Y2hlZCBibG9jayB3ZSd2ZSBzZWVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbWVtYmVyIGl0cyBpbmRleC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVW50b3VjaGVkID0gKGNoYXIpakJsb2NrU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB3ZSBhcmUgZG9uZSBjb21wYWN0aW5nLCBzbyBub3cgbWFrZSB0aGUgYXJyYXkgc2hvcnRlcgorICAgICAgICAgICAgaW50IG5ld1NpemUgPSBsaW1pdENvbXBhY3RlZCpCTE9DS0NPVU5UOworICAgICAgICAgICAgYnl0ZVtdIHJlc3VsdCA9IG5ldyBieXRlW25ld1NpemVdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh2YWx1ZXMsIDAsIHJlc3VsdCwgMCwgbmV3U2l6ZSk7CisgICAgICAgICAgICB2YWx1ZXMgPSByZXN1bHQ7CisgICAgICAgICAgICBpc0NvbXBhY3QgPSB0cnVlOworICAgICAgICAgICAgaGFzaGVzID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gYXJyYXlzIG9mIGRvdWJsZXMuCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqLworICAgIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhieXRlW10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKKyAgICB7CisgICAgICAgIGludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKyAgICAgICAgaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gIT0gdGFyZ2V0W2kgKyBkZWx0YV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtZW1iZXIgdGhhdCBhIHNwZWNpZmllZCBibG9jayB3YXMgInRvdWNoZWQiLCBpLmUuIGhhZCBhIHZhbHVlIHNldC4KKyAgICAgKiBVbnRvdWNoZWQgYmxvY2tzIGNhbiBiZSBza2lwcGVkIHdoZW4gY29tcGFjdGluZyB0aGUgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgdG91Y2hCbG9jayhpbnQgaSwgaW50IHZhbHVlKSB7CisgICAgICAgIGhhc2hlc1tpXSA9IChoYXNoZXNbaV0gKyAodmFsdWU8PDEpKSB8IDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUXVlcnkgd2hldGhlciBhIHNwZWNpZmllZCBibG9jayB3YXMgInRvdWNoZWQiLCBpLmUuIGhhZCBhIHZhbHVlIHNldC4KKyAgICAgKiBVbnRvdWNoZWQgYmxvY2tzIGNhbiBiZSBza2lwcGVkIHdoZW4gY29tcGFjdGluZyB0aGUgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gYmxvY2tUb3VjaGVkKGludCBpKSB7CisgICAgICAgIHJldHVybiBoYXNoZXNbaV0gIT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuICBEbyBub3QgbW9kaWZ5IHRoZSByZXN1bHQsIHRoZSBiZWhhdmlvciBvZgorICAgICAqIG1vZGlmaWVkIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhcltdIGdldEluZGV4QXJyYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGluZGljZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZSBvbmx5LiAgRG8gbm90IG1vZGlmeSB0aGUgcmVzdWx0LCB0aGUgYmVoYXZpb3Igb2YKKyAgICAgKiBtb2RpZmllZCByZXN1bHRzIGFyZSB1bmRlZmluZWQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGJ5dGVbXSBnZXRWYWx1ZUFycmF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENvbXBhY3RCeXRlQXJyYXkgb3RoZXIgPSAoQ29tcGFjdEJ5dGVBcnJheSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLnZhbHVlcyA9IChieXRlW10pdmFsdWVzLmNsb25lKCk7CisgICAgICAgICAgICBvdGhlci5pbmRpY2VzID0gKGNoYXJbXSlpbmRpY2VzLmNsb25lKCk7CisgICAgICAgICAgICBpZiAoaGFzaGVzICE9IG51bGwpIG90aGVyLmhhc2hlcyA9IChpbnRbXSloYXNoZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIGVxdWFsaXR5IG9mIHR3byBjb21wYWN0IGFycmF5IG9iamVjdHMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgY29tcGFjdCBhcnJheSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCBjb21wYWN0IGFycmF5IG9iamVjdCBpcyB0aGUgc2FtZQorICAgICAqIGFzIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdCBvYmo7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSAgICAgICAgICAgICAgICAgICAgICAvLyBxdWljayBjaGVjaworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSAgICAgICAgIC8vIHNhbWUgY2xhc3M/CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIENvbXBhY3RCeXRlQXJyYXkgb3RoZXIgPSAoQ29tcGFjdEJ5dGVBcnJheSkgb2JqOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgaSsrKSB7CisgICAgICAgICAgICAvLyBjb3VsZCBiZSBzcGVkIHVwIGxhdGVyCisgICAgICAgICAgICBpZiAoZWxlbWVudEF0KChjaGFyKWkpICE9IG90aGVyLmVsZW1lbnRBdCgoY2hhcilpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7IC8vIHdlIG1hZGUgaXQgdGhyb3VnaCB0aGUgZ3VhbnRsZXQuCisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdAorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgaW5jcmVtZW50ID0gTWF0aC5taW4oMywgdmFsdWVzLmxlbmd0aC8xNik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzcgKyB2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHByaXZhdGUKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRXhwYW5kaW5nIHRha2VzIHRoZSBhcnJheSBiYWNrIHRvIGEgNjU1MzYgZWxlbWVudCBhcnJheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kKCkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBieXRlW10gIHRlbXBBcnJheTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG5ldyBpbnRbSU5ERVhDT1VOVF07CisgICAgICAgICAgICB0ZW1wQXJyYXkgPSBuZXcgYnl0ZVtVTklDT0RFQ09VTlRdOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgKytpKSB7CisgICAgICAgICAgICAgICAgYnl0ZSB2YWx1ZSA9IGVsZW1lbnRBdCgoY2hhcilpKTsKKyAgICAgICAgICAgICAgICB0ZW1wQXJyYXlbaV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IElOREVYQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcikoaTw8QkxPQ0tTSElGVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZXMgPSBudWxsOworICAgICAgICAgICAgdmFsdWVzID0gdGVtcEFycmF5OworICAgICAgICAgICAgaXNDb21wYWN0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLU0hJRlQgPTc7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBCTE9DS0NPVU5UID0oMTw8QkxPQ0tTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBJTkRFWFNISUZUID0oMTYtQkxPQ0tTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBJTkRFWENPVU5UID0oMTw8SU5ERVhTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBCTE9DS01BU0sgPSBCTE9DS0NPVU5UIC0gMTsKKworICAgIHByaXZhdGUgYnl0ZVtdIHZhbHVlczsKKyAgICBwcml2YXRlIGNoYXIgaW5kaWNlc1tdOworICAgIHByaXZhdGUgaW50W10gaGFzaGVzOworICAgIHByaXZhdGUgYm9vbGVhbiBpc0NvbXBhY3Q7CisgICAgYnl0ZSBkZWZhdWx0VmFsdWU7Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdENoYXJBcnJheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdENoYXJBcnJheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyODZkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Db21wYWN0Q2hhckFycmF5LmphdmEKQEAgLTAsMCArMSw0MTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBjbGFzcyBDb21wYWN0QVR5cGVBcnJheSA6IHVzZSBvbmx5IG9uIHByaW1pdGl2ZSBkYXRhIHR5cGVzCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlCisgKiB2YWx1ZXMsIHN1Y2ggYXMgY2hhcmFjdGVyIHByb3BlcnRpZXMsIHR5cGVzLCBrZXlib2FyZCB2YWx1ZXMsIGV0Yy5UaGlzCisgKiBpcyB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMKKyAqIHNpZ25pZmljYW50IHZhbHVlcyB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgVW5pY29kZSBkYXRhIGlzIHVudXNlZCBpbiB0aGUKKyAqIGFwcGxpY2F0aW9uIG9yIHdoZW4geW91IGhhdmUgYSBsb3Qgb2YgcmVkdW5kYW5jZSwgc3VjaCBhcyB3aGVyZSBhbGwgMjEsMDAwCisgKiBIYW4gaWRlb2dyYXBocyBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYQorICogaGFzaCB0YWJsZS4KKyAqIEEgY29tcGFjdCBhcnJheSBvZiBhbnkgcHJpbWl0aXZlIGRhdGEgdHlwZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzOgorICogPFVMIHR5cGUgPSByb3VuZD4KKyAqICAgICA8TEk+RmFzdCBhY2Nlc3Mgb2YgdGhlIGluZGV4ZWQgdmFsdWVzLgorICogICAgIDxMST5TbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCisgKiA8L1VMPgorICogQSBjb21wYWN0IGFycmF5IGlzIGNvbXBvc2VkIG9mIGEgaW5kZXggYXJyYXkgYW5kIHZhbHVlIGFycmF5LiAgVGhlIGluZGV4CisgKiBhcnJheSBjb250YWlucyB0aGUgaW5kaWNpZXMgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHRvIHRoZSB2YWx1ZSBhcnJheS4KKyAqIEBzZWUgICAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheQorICogQGF1dGhvciAgICAgICAgICAgICBIZWxlbmEgU2hpaAorICogQGludGVybmFsCisgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbXBhY3RDaGFyQXJyYXkgaW1wbGVtZW50cyBDbG9uZWFibGUgeworCisgICAgLyoqCisgICAgICogVGhlIHRvdGFsIG51bWJlciBvZiBVbmljb2RlIGNoYXJhY3RlcnMuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyAgZmluYWwgaW50IFVOSUNPREVDT1VOVCA9IDY1NTM2OworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvciBmb3IgQ29tcGFjdENoYXJBcnJheSwgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlCisgICAgICogY29tcGFjdCBhcnJheSBpcyAwLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBDb21wYWN0Q2hhckFycmF5KCkKKyAgICB7CisgICAgICAgIHRoaXMoKGNoYXIpMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZm9yIENvbXBhY3RDaGFyQXJyYXkuCisgICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdENoYXJBcnJheShjaGFyIGRlZmF1bHRWYWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICB2YWx1ZXMgPSBuZXcgY2hhcltVTklDT0RFQ09VTlRdOworICAgICAgICBpbmRpY2VzID0gbmV3IGNoYXJbSU5ERVhDT1VOVF07CisgICAgICAgIGhhc2hlcyA9IG5ldyBpbnRbSU5ERVhDT1VOVF07CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBVTklDT0RFQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gZGVmYXVsdFZhbHVlOworICAgICAgICB9CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBJTkRFWENPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcikoaTw8QkxPQ0tTSElGVCk7CisgICAgICAgICAgICBoYXNoZXNbaV0gPSAwOworICAgICAgICB9CisgICAgICAgIGlzQ29tcGFjdCA9IGZhbHNlOworCisgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZvciBDb21wYWN0Q2hhckFycmF5LgorICAgICAqIEBwYXJhbSBpbmRleEFycmF5IHRoZSBpbmRpY2llcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWVzIHRoZSB2YWx1ZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gSWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdENoYXJBcnJheShjaGFyIGluZGV4QXJyYXlbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBuZXdWYWx1ZXNbXSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaW5kZXhBcnJheS5sZW5ndGggIT0gSU5ERVhDT1VOVCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBJTkRFWENPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgaW5kZXggPSBpbmRleEFycmF5W2ldOworICAgICAgICAgICAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBuZXdWYWx1ZXMubGVuZ3RoK0JMT0NLQ09VTlQpKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIH0KKyAgICAgICAgaW5kaWNlcyA9IGluZGV4QXJyYXk7CisgICAgICAgIHZhbHVlcyA9IG5ld1ZhbHVlczsKKyAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdENoYXJBcnJheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleEFycmF5IHRoZSBSTEUtZW5jb2RlZCBpbmRpY2llcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKiBAcGFyYW0gdmFsdWVBcnJheSB0aGUgUkxFLWVuY29kZWQgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGluZGV4IG9yIHZhbHVlIGFycmF5IGlzCisgICAgICogICAgICAgICAgdGhlIHdyb25nIHNpemUuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RDaGFyQXJyYXkoU3RyaW5nIGluZGV4QXJyYXksCisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQXJyYXkpCisgICAgeworICAgICAgICB0aGlzKCBVdGlsaXR5LlJMRVN0cmluZ1RvQ2hhckFycmF5KGluZGV4QXJyYXkpLAorICAgICAgICAgICAgICBVdGlsaXR5LlJMRVN0cmluZ1RvQ2hhckFycmF5KHZhbHVlQXJyYXkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG1hcHBlZCB2YWx1ZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgY2hhcmFjdGVyIHRvIGdldCB0aGUgbWFwcGVkIHZhbHVlIHdpdGgKKyAgICAgKiBAcmV0dXJuIHRoZSBtYXBwZWQgdmFsdWUgb2YgdGhlIGdpdmVuIGNoYXJhY3RlcgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGVsZW1lbnRBdChjaGFyIGluZGV4KQorICAgIHsKKyAgICBpbnQgaXggPSAoaW5kaWNlc1tpbmRleCA+PiBCTE9DS1NISUZUXSAmIDB4RkZGRikKKyAgICAgICAgKyAoaW5kZXggJiBCTE9DS01BU0spOworICAgIHJldHVybiBpeCA+PSB2YWx1ZXMubGVuZ3RoID8gZGVmYXVsdFZhbHVlIDogdmFsdWVzW2l4XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBuZXcgdmFsdWUgZm9yIGEgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICogU2V0IGF1dG9tYXRpY2FsbHkgZXhwYW5kcyB0aGUgYXJyYXkgaWYgaXQgaXMgY29tcGFjdGVkLgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgY2hhcmFjdGVyIHRvIHNldCB0aGUgbWFwcGVkIHZhbHVlIHdpdGgKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyBtYXBwZWQgdmFsdWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFbGVtZW50QXQoY2hhciBpbmRleCwgY2hhciB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChpc0NvbXBhY3QpCisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgIHZhbHVlc1soaW50KWluZGV4XSA9IHZhbHVlOworICAgICAgICB0b3VjaEJsb2NrKGluZGV4ID4+IEJMT0NLU0hJRlQsIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgbmV3IHZhbHVlcyBmb3IgYSByYW5nZSBvZiBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnRpbmcgb2Zmc2V0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZGluZyBvZmZzZXQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgbWFwcGVkIHZhbHVlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RWxlbWVudEF0KGNoYXIgc3RhcnQsIGNoYXIgZW5kLCBjaGFyIHZhbHVlKQorICAgIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGlmIChpc0NvbXBhY3QpIHsKKyAgICAgICAgICAgIGV4cGFuZCgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDw9IGVuZDsgKytpKSB7CisgICAgICAgICAgICB2YWx1ZXNbaV0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHRvdWNoQmxvY2soaSA+PiBCTE9DS1NISUZULCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogQ29tcGFjdCB0aGUgYXJyYXkKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wYWN0KCkgeworICAgICAgICBjb21wYWN0KHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3QgdGhlIGFycmF5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbXBhY3QoYm9vbGVhbiBleGhhdXN0aXZlKQorICAgIHsKKyAgICAgICAgaWYgKCFpc0NvbXBhY3QpIHsKKyAgICAgICAgICAgIGludCBpQmxvY2tTdGFydCA9IDA7CisgICAgICAgICAgICBjaGFyIGlVbnRvdWNoZWQgPSAweEZGRkY7CisgICAgICAgICAgICBpbnQgbmV3U2l6ZSA9IDA7CisKKyAgICAgICAgICAgIGNoYXJbXSB0YXJnZXQgPSBleGhhdXN0aXZlID8gbmV3IGNoYXJbVU5JQ09ERUNPVU5UXSA6IHZhbHVlczsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRpY2VzLmxlbmd0aDsgKytpLCBpQmxvY2tTdGFydCArPSBCTE9DS0NPVU5UKSB7CisgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IDB4RkZGRjsKKyAgICAgICAgICAgICAgICBib29sZWFuIHRvdWNoZWQgPSBibG9ja1RvdWNoZWQoaSk7CisgICAgICAgICAgICAgICAgaWYgKCF0b3VjaGVkICYmIGlVbnRvdWNoZWQgIT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIG5vIHZhbHVlcyBpbiB0aGlzIGJsb2NrIHdlcmUgc2V0LCB3ZSBjYW4ganVzdCBzZXQgaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIGluZGV4IHRvIGJlIHRoZSBzYW1lIGFzIHNvbWUgb3RoZXIgYmxvY2sgd2l0aCBubyB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0LCBhc3N1bWluZyB3ZSd2ZSBzZWVuIG9uZSB5ZXQuCisgICAgICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSBpVW50b3VjaGVkOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBqQmxvY2tTdGFydCA9IDA7CisgICAgICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB3ZSBjYW4gZmluZCBhIHByZXZpb3VzbHkgY29tcGFjdGVkIGJsb2NrIHRoYXQncyBpZGVudGljYWwKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyArK2osIGpCbG9ja1N0YXJ0ICs9IEJMT0NLQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNoZXNbaV0gPT0gaGFzaGVzW2pdICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5UmVnaW9uTWF0Y2hlcyh2YWx1ZXMsIGlCbG9ja1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLCBqQmxvY2tTdGFydCwgQkxPQ0tDT1VOVCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gaW5kaWNlc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoaW5kaWNlc1tpXSA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0OyAgIC8vIFdoZXJlIHRvIGNvcHkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleGhhdXN0aXZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIHdlIGNhbiBmaW5kIHNvbWUgb3ZlcmxhcCB3aXRoIGFub3RoZXIgYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0ID0gRmluZE92ZXJsYXBwaW5nUG9zaXRpb24oaUJsb2NrU3RhcnQsIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NpemUpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBKdXN0IGNvcHkgdG8gdGhlIGVuZDsgaXQncyBxdWlja2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCA9IG5ld1NpemU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBkZXN0ICsgQkxPQ0tDT1VOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW1pdCA+IG5ld1NpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gbmV3U2l6ZTsgaiA8IGxpbWl0OyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2pdID0gdmFsdWVzW2lCbG9ja1N0YXJ0ICsgaiAtIGRlc3RdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTaXplID0gbGltaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpZGVzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdG91Y2hlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHVudG91Y2hlZCBibG9jayB3ZSd2ZSBzZWVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbWVtYmVyIGl0cyBpbmRleC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVW50b3VjaGVkID0gKGNoYXIpakJsb2NrU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB3ZSBhcmUgZG9uZSBjb21wYWN0aW5nLCBzbyBub3cgbWFrZSB0aGUgYXJyYXkgc2hvcnRlcgorICAgICAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyW25ld1NpemVdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YXJnZXQsIDAsIHJlc3VsdCwgMCwgbmV3U2l6ZSk7CisgICAgICAgICAgICB2YWx1ZXMgPSByZXN1bHQ7CisgICAgICAgICAgICBpc0NvbXBhY3QgPSB0cnVlOworICAgICAgICAgICAgaGFzaGVzID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IEZpbmRPdmVybGFwcGluZ1Bvc2l0aW9uKGludCBzdGFydCwgY2hhcltdIHRlbXBWYWx1ZXMsIGludCB0ZW1wQ291bnQpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBpbnQgY3VycmVudENvdW50ID0gQkxPQ0tDT1VOVDsKKyAgICAgICAgICAgIGlmIChpICsgQkxPQ0tDT1VOVCA+IHRlbXBDb3VudCkgeworICAgICAgICAgICAgICAgIGN1cnJlbnRDb3VudCA9IHRlbXBDb3VudCAtIGk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXJyYXlSZWdpb25NYXRjaGVzKHZhbHVlcywgc3RhcnQsIHRlbXBWYWx1ZXMsIGksIGN1cnJlbnRDb3VudCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlbXBDb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGFycmF5cyBvZiBkb3VibGVzLgorICAgICAqIEBwYXJhbSBsZW4gdGhlIGxlbmd0aCB0byBjb21wYXJlLgorICAgICAqIFRoZSBzdGFydCBpbmRpY2VzIGFuZCBzdGFydCtsZW4gbXVzdCBiZSB2YWxpZC4KKyAgICAgKi8KKyAgICBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoY2hhcltdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc291cmNlW2ldICE9IHRhcmdldFtpICsgZGVsdGFdKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbWVtYmVyIHRoYXQgYSBzcGVjaWZpZWQgYmxvY2sgd2FzICJ0b3VjaGVkIiwgaS5lLiBoYWQgYSB2YWx1ZSBzZXQuCisgICAgICogVW50b3VjaGVkIGJsb2NrcyBjYW4gYmUgc2tpcHBlZCB3aGVuIGNvbXBhY3RpbmcgdGhlIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHRvdWNoQmxvY2soaW50IGksIGludCB2YWx1ZSkgeworICAgICAgICBoYXNoZXNbaV0gPSAoaGFzaGVzW2ldICsgKHZhbHVlPDwxKSkgfCAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJ5IHdoZXRoZXIgYSBzcGVjaWZpZWQgYmxvY2sgd2FzICJ0b3VjaGVkIiwgaS5lLiBoYWQgYSB2YWx1ZSBzZXQuCisgICAgICogVW50b3VjaGVkIGJsb2NrcyBjYW4gYmUgc2tpcHBlZCB3aGVuIGNvbXBhY3RpbmcgdGhlIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGJsb2NrVG91Y2hlZChpbnQgaSkgeworICAgICAgICByZXR1cm4gaGFzaGVzW2ldICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZSBvbmx5LiAgRG8gbm90IG1vZGlmeSB0aGUgcmVzdWx0LCB0aGUgYmVoYXZpb3Igb2YKKyAgICAgKiBtb2RpZmllZCByZXN1bHRzIGFyZSB1bmRlZmluZWQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGNoYXJbXSBnZXRJbmRleEFycmF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbmRpY2VzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBpbnRlcm5hbCB1c2Ugb25seS4gIERvIG5vdCBtb2RpZnkgdGhlIHJlc3VsdCwgdGhlIGJlaGF2aW9yIG9mCisgICAgICogbW9kaWZpZWQgcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBjaGFyW10gZ2V0VmFsdWVBcnJheSgpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDb21wYWN0Q2hhckFycmF5IG90aGVyID0gKENvbXBhY3RDaGFyQXJyYXkpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICBvdGhlci52YWx1ZXMgPSAoY2hhcltdKXZhbHVlcy5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIuaW5kaWNlcyA9IChjaGFyW10paW5kaWNlcy5jbG9uZSgpOworICAgICAgICAgICAgaWYgKGhhc2hlcyAhPSBudWxsKSBvdGhlci5oYXNoZXMgPSAoaW50W10paGFzaGVzLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gY29tcGFjdCBhcnJheSBvYmplY3RzLgorICAgICAqIEBwYXJhbSBvYmogdGhlIGNvbXBhY3QgYXJyYXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgY29tcGFjdCBhcnJheSBvYmplY3QgaXMgdGhlIHNhbWUKKyAgICAgKiBhcyB0aGUgY29tcGFjdCBhcnJheSBvYmplY3Qgb2JqOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgICAgICAgICAgICAgICAgICAgICAgLy8gcXVpY2sgY2hlY2sKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgICAgICAgICAvLyBzYW1lIGNsYXNzPworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBDb21wYWN0Q2hhckFycmF5IG90aGVyID0gKENvbXBhY3RDaGFyQXJyYXkpIG9iajsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBVTklDT0RFQ09VTlQ7IGkrKykgeworICAgICAgICAgICAgLy8gY291bGQgYmUgc3BlZCB1cCBsYXRlcgorICAgICAgICAgICAgaWYgKGVsZW1lbnRBdCgoY2hhcilpKSAhPSBvdGhlci5lbGVtZW50QXQoKGNoYXIpaSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOyAvLyB3ZSBtYWRlIGl0IHRocm91Z2ggdGhlIGd1YW50bGV0LgorICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyB0aGUgaGFzaCBjb2RlIGZvciB0aGUgY29tcGFjdCBhcnJheSBvYmplY3QKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IGluY3JlbWVudCA9IE1hdGgubWluKDMsIHZhbHVlcy5sZW5ndGgvMTYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrPSBpbmNyZW1lbnQpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDM3ICsgdmFsdWVzW2ldOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHByaXZhdGUKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRXhwYW5kaW5nIHRha2VzIHRoZSBhcnJheSBiYWNrIHRvIGEgNjU1MzYgZWxlbWVudCBhcnJheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kKCkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBjaGFyW10gdGVtcEFycmF5OworICAgICAgICAgICAgaGFzaGVzID0gbmV3IGludFtJTkRFWENPVU5UXTsKKyAgICAgICAgICAgIHRlbXBBcnJheSA9IG5ldyBjaGFyW1VOSUNPREVDT1VOVF07CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0ZW1wQXJyYXlbaV0gPSBlbGVtZW50QXQoKGNoYXIpaSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IChjaGFyKShpPDxCTE9DS1NISUZUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlcyA9IG51bGw7CisgICAgICAgICAgICB2YWx1ZXMgPSB0ZW1wQXJyYXk7CisgICAgICAgICAgICBpc0NvbXBhY3QgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljICBmaW5hbCBpbnQgQkxPQ0tTSElGVCA9IDU7IC8vIE5vcm1hbGl6ZXJCdWlsZGVyIG5lZWRzIC0gbGl1CisgICAgc3RhdGljICBmaW5hbCBpbnQgQkxPQ0tDT1VOVCA9KDE8PEJMT0NLU0hJRlQpOworICAgIHN0YXRpYyAgZmluYWwgaW50IElOREVYU0hJRlQgPSgxNi1CTE9DS1NISUZUKTsKKyAgICBzdGF0aWMgIGZpbmFsIGludCBJTkRFWENPVU5UID0oMTw8SU5ERVhTSElGVCk7CisgICAgc3RhdGljICBmaW5hbCBpbnQgQkxPQ0tNQVNLID0gQkxPQ0tDT1VOVCAtIDE7CisKKyAgICBwcml2YXRlIGNoYXIgdmFsdWVzW107CisgICAgcHJpdmF0ZSBjaGFyIGluZGljZXNbXTsKKyAgICBwcml2YXRlIGludFtdIGhhc2hlczsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDb21wYWN0OworICAgIGNoYXIgZGVmYXVsdFZhbHVlOworfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvcHRpY0NhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Db3B0aWNDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlODdhYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Db3B0aWNDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsMjk5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBJbXBsZW1lbnQgdGhlIENvcHRpYyBjYWxlbmRhciBzeXN0ZW0uCisgKiA8cD4KKyAqIENvcHRpY0NhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWNvcHRpYyI8L2NvZGU+LjwvcD4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBkcmFmdCBJQ1UgMy40CisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvcHRpY0NhbGVuZGFyIGV4dGVuZHMgQ0VDYWxlbmRhciAKK3sKKyAgICAvLyBqZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA1OTAzODE4NzUxODQ2NzQyOTExTDsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2M5XHUwM2JmXHUwM2IzXHUwM2M0L1x1MDYyYVx1ZmVlZVx1ZmU5NywKKyAgICAgKiB0aGUgMXN0IG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT1VUID0gMDsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2EwXHUwM2IxXHUwM2JmXHUwM2MwXHUwM2I5L1x1ZmVlYVx1ZmU5MVx1ZmU4ZVx1ZmU5MSwKKyAgICAgKiB0aGUgMm5kIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQUJBID0gMTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwMzkxXHUwM2I4XHUwM2JmXHUwM2MxL1x1MDYzMVx1ZmVlZVx1ZmU5N1x1ZmU4ZVx1ZmVlYiwKKyAgICAgKiB0aGUgM3JkIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQVRPUiA9IDI7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNhN1x1MDNiZlx1MDNiOVx1MDNiMVx1MDNiYS9cdWZlZGFcdWZlZWNcdWZlZjRcdWZlZGIsCisgICAgICogdGhlIDR0aCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lBSEsgPSAzOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTRcdTAzYzlcdTAzYjJcdTAzYjkvXHUwNjM3XHVmZWVlXHVmZTkyXHVmZWViLAorICAgICAqIHRoZSA1dGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRPQkEgPSA0OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzOWNcdTAzYjVcdTAzZTNcdTAzYjlcdTAzYzEvXHVmZWFlXHVmZWY0XHVmZWI4XHVmZWUzXHUwNjIzLAorICAgICAqIHRoZSA2dGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFNU0hJUiA9IDU7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNhMFx1MDNiMVx1MDNjMVx1MDNiNVx1MDNiY1x1MDNlOVx1MDNiMVx1MDNjNC9cdTA2MmFcdWZlOGVcdWZlZWNcdWZlZTNcdWZlYWVcdWZlOTEsCisgICAgICogdGhlIDd0aCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFSQU1IQVQgPSA2OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTZcdTAzYjFcdTAzYzFcdTAzYmNcdTAzYmZcdTAzYjhcdTAzYjkvXHUwNjQ3XHUwNjJmXHVmZWVlXHVmZWUzXHVmZWFlXHVmZTkxLCAKKyAgICAgKiB0aGUgOHRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVJBTU9VREEgPSA3OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTBcdTAzYjFcdTAzZTNcdTAzYjFcdTAzYmQvXHVmZWIyXHVmZWU4XHVmZWI4XHVmZTkxLCAKKyAgICAgKiB0aGUgOXRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVNIQU5TID0gODsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2EwXHUwM2IxXHUwM2M5XHUwM2JkXHUwM2I5L1x1ZmVlYVx1ZmVlN1x1MDYyNFx1ZmVlZVx1ZmU5MSwgCisgICAgICogdGhlIDEwdGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBT05BID0gOTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwMzk1XHUwM2MwXHUwM2I3XHUwM2MwL1x1ZmU5MFx1ZmVmNFx1ZmU5MVx1MDYyMywgCisgICAgICogdGhlIDExdGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVQRVAgPSAxMDsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwMzljXHUwM2I1XHUwM2YyXHUwM2M5XHUwM2MxXHUwM2I3L1x1MDY0OVx1ZmVhZVx1ZmViNFx1ZmVlMywgCisgICAgICogdGhlIDEydGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FU1JBID0gMTE7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNhMFx1MDNiOVx1MDNiYVx1MDNiZlx1MDNiM1x1MDNlYlx1MDNiOSAKKyAgICAgKiBcdTAzYmNcdTAzYjFcdTAzYjJcdTAzYmZcdTAzYzQvXHVmZWFlXHVmZWY0XHVmZWQwXHVmZWJjXHVmZWRmXHUwNjI3IAorICAgICAqIFx1ZmVhZVx1ZmVlY1x1ZmViOFx1ZmVkZlx1MDYyNywgCisgICAgICogdGhlIDEzdGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5BU0lFID0gMTI7CisgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKRF9FUE9DSF9PRkZTRVQgID0gMTgyNDY2NTsKKworICAgIC8vIGluaXQgYmFzZSBjbGFzcyB2YWx1ZSwgY29tbW9uIHRvIGFsbCBjb25zdHJ1Y3RvcnMKKyAgICB7CisgICAgICAgIGpkRXBvY2hPZmZzZXQgPSBKRF9FUE9DSF9PRkZTRVQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGRlZmF1bHQgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IHVzaW5nIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgc3VwZXIoem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGljdSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBpY3UgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgVG91dC4KKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIHN1cGVyKHllYXIsIG1vbnRoLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICBzdXBlcihkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgVG91dC4KKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gc2Vjb25kICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1NFQ09ORCBTRUNPTkR9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpIHsKKyAgICAgICAgc3VwZXIoeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFuIENvcHRpYyB5ZWFyLCBtb250aCwgYW5kIGRheSB0byBhIEp1bGlhbiBkYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciB0aGUgeWVhcgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgbW9udGgKKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF5CisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvcHRpY1RvSkQobG9uZyB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIHJldHVybiBjZVRvSkQoeWVhciwgbW9udGgsIGRhdGUsIEpEX0VQT0NIX09GRlNFVCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy40CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnRlZ2VyW10gZ2V0RGF0ZUZyb21KRChpbnQganVsaWFuRGF5KSB7CisgICAgICAgIHJldHVybiBnZXREYXRlRnJvbUpEKGp1bGlhbkRheSwgSkRfRVBPQ0hfT0ZGU0VUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJjb3B0aWMiOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3kuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmYjZkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5LmphdmEKQEAgLTAsMCArMSw3NTYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS50ZXh0LkNob2ljZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURlYnVnOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworCisvKioKKyAqIEEgY2xhc3MgZW5jYXBzdWxhdGluZyBhIGN1cnJlbmN5LCBhcyBkZWZpbmVkIGJ5IElTTyA0MjE3LiAgQQorICogPHR0PkN1cnJlbmN5PC90dD4gb2JqZWN0IGNhbiBiZSBjcmVhdGVkIGdpdmVuIGEgPHR0PkxvY2FsZTwvdHQ+IG9yCisgKiBnaXZlbiBhbiBJU08gNDIxNyBjb2RlLiAgT25jZSBjcmVhdGVkLCB0aGUgPHR0PkN1cnJlbmN5PC90dD4gb2JqZWN0CisgKiBjYW4gcmV0dXJuIHZhcmlvdXMgZGF0YSBuZWNlc3NhcnkgdG8gaXRzIHByb3BlciBkaXNwbGF5OgorICoKKyAqIDx1bD48bGk+QSBkaXNwbGF5IHN5bWJvbCwgZm9yIGEgc3BlY2lmaWMgbG9jYWxlCisgKiA8bGk+VGhlIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gZGlzcGxheQorICogPGxpPkEgcm91bmRpbmcgaW5jcmVtZW50CisgKiA8L3VsPgorICoKKyAqIFRoZSA8dHQ+RGVjaW1hbEZvcm1hdDwvdHQ+IGNsYXNzIHVzZXMgdGhlc2UgZGF0YSB0byBkaXNwbGF5CisgKiBjdXJyZW5jaWVzLgorICoKKyAqIDxwPk5vdGU6IFRoaXMgY2xhc3MgZGVsaWJlcmF0ZWx5IHJlc2VtYmxlcworICogPHR0PmphdmEudXRpbC5DdXJyZW5jeTwvdHQ+IGJ1dCBpdCBoYXMgYSBjb21wbGV0ZWx5IGluZGVwZW5kZW50CisgKiBpbXBsZW1lbnRhdGlvbiwgYW5kIGFkZHMgZmVhdHVyZXMgbm90IHByZXNlbnQgaW4gdGhlIEpESy4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMgorICovCitwdWJsaWMgY2xhc3MgQ3VycmVuY3kgZXh0ZW5kcyBNZWFzdXJlVW5pdCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisgICAgLy8gdXNpbmcgc2VyaWFsdmVyIGZyb20gamRrMS40LjJfMDUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNTgzOTk3Mzg1NTU1NDc1MDQ4NEw7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoImN1cnJlbmN5Iik7CisgICAgLyoqCisgICAgICogSVNPIDQyMTcgMy1sZXR0ZXIgY29kZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpc29Db2RlOworCisgICAgLyoqCisgICAgICogU2VsZWN0b3IgZm9yIGdldE5hbWUoKSBpbmRpY2F0aW5nIGEgc3ltYm9saWMgbmFtZSBmb3IgYQorICAgICAqIGN1cnJlbmN5LCBzdWNoIGFzICIkIiBmb3IgVVNELgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZTUJPTF9OQU1FID0gMDsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGZvciB1Y3Vycl9nZXROYW1lIGluZGljYXRpbmcgdGhlIGxvbmcgbmFtZSBmb3IgYQorICAgICAqIGN1cnJlbmN5LCBzdWNoIGFzICJVUyBEb2xsYXIiIGZvciBVU0QuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9OR19OQU1FID0gMTsKKworICAgIC8vIGJlZ2luIHJlZ2lzdHJ5IHN0dWZmCisKKyAgICAvLyBzaGltIGZvciBzZXJ2aWNlIGNvZGUKKyAgICAvKiBwYWNrYWdlICovIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBTZXJ2aWNlU2hpbSB7CisgICAgICAgIGFic3RyYWN0IFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBhYnN0cmFjdCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGFic3RyYWN0IEN1cnJlbmN5IGNyZWF0ZUluc3RhbmNlKFVMb2NhbGUgbCk7CisgICAgICAgIGFic3RyYWN0IE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEN1cnJlbmN5IGMsIFVMb2NhbGUgbCk7CisgICAgICAgIGFic3RyYWN0IGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgZik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU2VydmljZVNoaW0gc2hpbTsKKyAgICBwcml2YXRlIHN0YXRpYyBTZXJ2aWNlU2hpbSBnZXRTaGltKCkgeworICAgICAgICAvLyBOb3RlOiB0aGlzIGluc3RhbnRpYXRpb24gaXMgc2FmZSBvbiBsb29zZS1tZW1vcnktbW9kZWwgY29uZmlndXJhdGlvbnMKKyAgICAgICAgLy8gZGVzcGl0ZSBsYWNrIG9mIHN5bmNocm9uaXphdGlvbiwgc2luY2UgdGhlIHNoaW0gaW5zdGFuY2UgaGFzIG5vIHN0YXRlLS0KKyAgICAgICAgLy8gaXQncyBhbGwgaW4gdGhlIGNsYXNzIGluaXQuICBUaGUgd29yc3QgcHJvYmxlbSBpcyB3ZSBtaWdodCBpbnN0YW50aWF0ZQorICAgICAgICAvLyB0d28gc2hpbSBpbnN0YW5jZXMsIGJ1dCB0aGV5J2xsIHNoYXJlIHRoZSBzYW1lIHN0YXRlIHNvIHRoYXQncyBvay4KKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSBDbGFzcy5mb3JOYW1lKCJjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5U2VydmljZVNoaW0iKTsKKyAgICAgICAgICAgICAgICBzaGltID0gKFNlcnZpY2VTaGltKWNscy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYoREVCVUcpeworICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNoaW07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgY3VycmVuY3kgaW4gdGhlIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbmN5IG9iamVjdCBmb3IgdGhpcyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEN1cnJlbmN5IGdldEluc3RhbmNlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGN1cnJlbmN5IGluIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ3VycmVuY3kgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICBTdHJpbmcgY3VycmVuY3kgPSBsb2NhbGUuZ2V0S2V5d29yZFZhbHVlKCJjdXJyZW5jeSIpOworICAgIGlmIChjdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShjdXJyZW5jeSk7CisgICAgfQorCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVDdXJyZW5jeShsb2NhbGUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNoaW0uY3JlYXRlSW5zdGFuY2UobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnN0YW50aWF0ZSBhIGN1cnJlbmN5IGZyb20gYSByZXNvdXJjZSBidW5kbGUgZm91bmQgaW4gTG9jYWxlIGxvYy4KKyAgICAgKi8KKyAgICAvKiBwYWNrYWdlICovIHN0YXRpYyBDdXJyZW5jeSBjcmVhdGVDdXJyZW5jeShVTG9jYWxlIGxvYykgeworICAgICAgICAvLyBUT0RPOiBjaGVjaywgdGhpcyBtdW5naW5nIG1pZ2h0IG5vdCBiZSByZXF1aXJlZCBmb3IgVUxvY2FsZQorICAgICAgICBTdHJpbmcgY291bnRyeSA9IGxvYy5nZXRDb3VudHJ5KCk7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gbG9jLmdldFZhcmlhbnQoKTsKKyAgICAgICAgaWYgKHZhcmlhbnQuZXF1YWxzKCJQUkVFVVJPIikgfHwgdmFyaWFudC5lcXVhbHMoIkVVUk8iKSkgeworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkgKyAnXycgKyB2YXJpYW50OworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwiQ3VycmVuY3lEYXRhIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgaWYoYnVuZGxlPT1udWxsKXsKKyAgICAgICAgICAgIC8vdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigpCisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY20gPSBidW5kbGUuZ2V0KCJDdXJyZW5jeU1hcCIpOworCisgICAgICAgIC8vIERvIGEgbGluZWFyIHNlYXJjaAorICAgICAgICBTdHJpbmcgY3VycmlzbyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjdXJyaXNvID0gY20uZ2V0U3RyaW5nKGNvdW50cnkpOworICAgICAgICAgICAgaWYgKGN1cnJpc28gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3koY3Vycmlzbyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIC8vIGEgZGVwcmVjYXRlZCBJU08gY29kZSBtYXkgaGF2ZSBiZWVuIHBhc3NlZAorICAgICAgICAgICAgICAgIC8vIHRyeSB0byBnZXQgdGhlIGN1cnJlbnQgY291bnRyeSBjb2RlCisgICAgICAgICAgICAgICAgU3RyaW5nIHJlcCA9IFVMb2NhbGUuZ2V0Q3VycmVudENvdW50cnlJRChjb3VudHJ5KTsKKyAgICAgICAgICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJERUJVRzogb2xkSUQ6ICIrY291bnRyeSArIiBuZXdJRDoiICtyZXApOworICAgICAgICAgICAgICAgIC8vIGhlcmUgcG9pbnRlciBjb21wYXJpc29uIGlzIHZhbGlkIHNpbmNlIGdldEN1cnJlbnRDb3VudHJ5SUQKKyAgICAgICAgICAgICAgICAvLyB3aWxsIHJldHVybiB0aGUgaW5wdXQgc3RyaW5nIGlmIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisgICAgICAgICAgICAgICAgaWYocmVwICE9IGNvdW50cnkpeworICAgICAgICAgICAgICAgICAgICBjdXJyaXNvID0gY20uZ2V0U3RyaW5nKHJlcCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyaXNvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3koY3Vycmlzbyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIC8vZG8gbm90aGluZworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAvKgorICAgICAgICBmb3IgKGludCBpPTA7IGk8Y20ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChjb3VudHJ5LmVxdWFscygoU3RyaW5nKSBjbVtpXVswXSkpIHsKKyAgICAgICAgICAgICAgICBjdXJyaXNvID0gKFN0cmluZykgY21baV1bMV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBDdXJyZW5jeSBjdXJyID0gbnVsbDsKKyAgICAgICAgaWYgKGN1cnJpc28gIT0gbnVsbCkgeworCisgICAgICAgICAgICBjdXJyID0gbmV3IEN1cnJlbmN5KGN1cnJpc28pOworCisgICAgICAgICAgICAvLyBUT0RPOiBEZXRlcm1pbmUgdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUgY29ycmVjdGx5LgorICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gYnVuZGxlLmdldFVMb2NhbGUoKTsKKyAgICAgICAgICAgIGN1cnIuc2V0TG9jYWxlKHVsb2MsIHVsb2MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjdXJyOworICAgICAgICAqLworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBvYmplY3QgZ2l2ZW4gYW4gSVNPIDQyMTcgMy1sZXR0ZXIgY29kZS4KKyAgICAgKiBAcGFyYW0gdGhlSVNPQ29kZSB0aGUgaXNvIGNvZGUKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW5jeSBmb3IgdGhpcyBpc28gY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ3VycmVuY3kgZ2V0SW5zdGFuY2UoU3RyaW5nIHRoZUlTT0NvZGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDdXJyZW5jeSh0aGVJU09Db2RlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBuZXcgY3VycmVuY3kgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuICBUaGUgcmV0dXJuZWQgb2JqZWN0CisgICAgICogaXMgYSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgY3VycmVuY3kgb2JqZWN0LgorICAgICAqIEBwYXJhbSBjdXJyZW5jeSB0aGUgY3VycmVuY3kgdG8gcmVnaXN0ZXIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSB1bG9jYWxlIHVuZGVyIHdoaWNoIHRvIHJlZ2lzdGVyIHRoZSBjdXJyZW5jeQorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgY3VycmVuY3kKKyAgICAgKiBAc2VlICN1bnJlZ2lzdGVyCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEN1cnJlbmN5IGN1cnJlbmN5LCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLnJlZ2lzdGVySW5zdGFuY2UoY3VycmVuY3ksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciB0aGUgY3VycmVuY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5IChvYnRhaW5lZCBmcm9tCisgICAgICogcmVnaXN0ZXJJbnN0YW5jZSkuCisgICAgICogQHBhcmFtIHJlZ2lzdHJ5S2V5IHRoZSByZWdpc3RyeSBrZXkgcmV0dXJuZWQgZnJvbSByZWdpc3Rlckluc3RhbmNlCisgICAgICogQHNlZSAjcmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCByZWdpc3RyeUtleSkgeworICAgICAgICBpZiAocmVnaXN0cnlLZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVnaXN0cnlLZXkgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbS51bnJlZ2lzdGVyKHJlZ2lzdHJ5S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgdGhlIGxvY2FsZXMgZm9yIHdoaWNoIGEgY3VycmVuY3kKKyAgICAgKiBpcyBkZWZpbmVkLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBzaGltLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBhcnJheSBvZiB0aGUgdWxvY2FsZXMgZm9yIHdoaWNoIGEgY3VycmVuY3kKKyAgICAgKiBpcyBkZWZpbmVkLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIGF2YWlsYWJsZSB1bG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc2hpbS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZW5kIHJlZ2lzdHJ5IHN0dWZmCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBoYXNoY29kZSBmb3IgdGhpcyBjdXJyZW5jeS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gaXNvQ29kZS5oYXNoQ29kZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHJocyBpcyBhIEN1cnJlbmN5IGluc3RhbmNlLAorICAgICAqIGlzIG5vbi1udWxsLCBhbmQgaGFzIHRoZSBzYW1lIGN1cnJlbmN5IGNvZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKyAgICAgICAgaWYgKHJocyA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChyaHMgPT0gdGhpcykgcmV0dXJuIHRydWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDdXJyZW5jeSBjID0gKEN1cnJlbmN5KSByaHM7CisgICAgICAgICAgICByZXR1cm4gaXNvQ29kZS5lcXVhbHMoYy5pc29Db2RlKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIElTTyA0MjE3IDMtbGV0dGVyIGNvZGUgZm9yIHRoaXMgY3VycmVuY3kgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q3VycmVuY3lDb2RlKCkgeworICAgICAgICByZXR1cm4gaXNvQ29kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBhbmQgY29tcGF0aWJpbGl0eSBvdmVycmlkZSBvZiBnZXROYW1lIHRoYXQKKyAgICAgKiByZXF1ZXN0cyB0aGUgc3ltYm9sIG5hbWUuCisgICAgICogQHNlZSAjZ2V0TmFtZQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTeW1ib2woKSB7CisJcmV0dXJuIGdldFN5bWJvbChVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgYW5kIGNvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgZ2V0TmFtZSB0aGF0CisgICAgICogcmVxdWVzdHMgdGhlIHN5bWJvbCBuYW1lLgorICAgICAqIEBwYXJhbSBsb2MgdGhlIExvY2FsZSBmb3IgdGhlIHN5bWJvbAorICAgICAqIEBzZWUgI2dldE5hbWUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3ltYm9sKExvY2FsZSBsb2MpIHsKKwlyZXR1cm4gZ2V0U3ltYm9sKFVMb2NhbGUuZm9yTG9jYWxlKGxvYykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGFuZCBjb21wYXRpYmlsaXR5IG92ZXJyaWRlIG9mIGdldE5hbWUgdGhhdAorICAgICAqIHJlcXVlc3RzIHRoZSBzeW1ib2wgbmFtZS4KKyAgICAgKiBAcGFyYW0gdWxvYyB0aGUgVUxvY2FsZSBmb3IgdGhlIHN5bWJvbAorICAgICAqIEBzZWUgI2dldE5hbWUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3ltYm9sKFVMb2NhbGUgdWxvYykgeworCXJldHVybiBnZXROYW1lKHVsb2MsIFNZTUJPTF9OQU1FLCBuZXcgYm9vbGVhblsxXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZ2l2ZW4gY3VycmVuY3kgaW4gdGhlCisgICAgICogZ2l2ZW4gbG9jYWxlLiAgRm9yIGV4YW1wbGUsIHRoZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBVU0QKKyAgICAgKiBjdXJyZW5jeSBvYmplY3QgaW4gdGhlIGVuX1VTIGxvY2FsZSBpcyAiJCIuCisgICAgICogQHBhcmFtIGxvY2FsZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSBjdXJyZW5jeQorICAgICAqIEBwYXJhbSBuYW1lU3R5bGUgc2VsZWN0b3IgZm9yIHdoaWNoIGtpbmQgb2YgbmFtZSB0byByZXR1cm4KKyAgICAgKiBAcGFyYW0gaXNDaG9pY2VGb3JtYXQgZmlsbC1pbjsgaXNDaG9pY2VGb3JtYXRbMF0gaXMgc2V0IHRvIHRydWUKKyAgICAgKiBpZiB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgYSBDaG9pY2VGb3JtYXQgcGF0dGVybjsgb3RoZXJ3aXNlIGl0CisgICAgICogaXMgc2V0IHRvIGZhbHNlCisgICAgICogQHJldHVybiBkaXNwbGF5IHN0cmluZyBmb3IgdGhpcyBjdXJyZW5jeS4gIElmIHRoZSByZXNvdXJjZSBkYXRhCisgICAgICogY29udGFpbnMgbm8gZW50cnkgZm9yIHRoaXMgY3VycmVuY3ksIHRoZW4gdGhlIElTTyA0MjE3IGNvZGUgaXMKKyAgICAgKiByZXR1cm5lZC4gIElmIGlzQ2hvaWNlRm9ybWF0WzBdIGlzIHRydWUsIHRoZW4gdGhlIHJlc3VsdCBpcyBhCisgICAgICogQ2hvaWNlRm9ybWF0IHBhdHRlcm4uICBPdGhlcndpc2UgaXQgaXMgYSBzdGF0aWMgc3RyaW5nLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKExvY2FsZSBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5bXSBpc0Nob2ljZUZvcm1hdCkgeworCXJldHVybiBnZXROYW1lKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIG5hbWVTdHlsZSwgaXNDaG9pY2VGb3JtYXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGdpdmVuIGN1cnJlbmN5IGluIHRoZQorICAgICAqIGdpdmVuIGxvY2FsZS4gIEZvciBleGFtcGxlLCB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgVVNECisgICAgICogY3VycmVuY3kgb2JqZWN0IGluIHRoZSBlbl9VUyBsb2NhbGUgaXMgIiQiLgorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBAcGFyYW0gbmFtZVN0eWxlIHNlbGVjdG9yIGZvciB3aGljaCBraW5kIG9mIG5hbWUgdG8gcmV0dXJuCisgICAgICogQHBhcmFtIGlzQ2hvaWNlRm9ybWF0IGZpbGwtaW47IGlzQ2hvaWNlRm9ybWF0WzBdIGlzIHNldCB0byB0cnVlCisgICAgICogaWYgdGhlIHJldHVybmVkIHZhbHVlIGlzIGEgQ2hvaWNlRm9ybWF0IHBhdHRlcm47IG90aGVyd2lzZSBpdAorICAgICAqIGlzIHNldCB0byBmYWxzZQorICAgICAqIEByZXR1cm4gZGlzcGxheSBzdHJpbmcgZm9yIHRoaXMgY3VycmVuY3kuICBJZiB0aGUgcmVzb3VyY2UgZGF0YQorICAgICAqIGNvbnRhaW5zIG5vIGVudHJ5IGZvciB0aGlzIGN1cnJlbmN5LCB0aGVuIHRoZSBJU08gNDIxNyBjb2RlIGlzCisgICAgICogcmV0dXJuZWQuICBJZiBpc0Nob2ljZUZvcm1hdFswXSBpcyB0cnVlLCB0aGVuIHRoZSByZXN1bHQgaXMgYQorICAgICAqIENob2ljZUZvcm1hdCBwYXR0ZXJuLiAgT3RoZXJ3aXNlIGl0IGlzIGEgc3RhdGljIHN0cmluZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShVTG9jYWxlIGxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hbWVTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbltdIGlzQ2hvaWNlRm9ybWF0KSB7CisKKyAgICAgICAgLy8gTG9vayB1cCB0aGUgQ3VycmVuY2llcyByZXNvdXJjZSBmb3IgdGhlIGdpdmVuIGxvY2FsZS4gIFRoZQorICAgICAgICAvLyBDdXJyZW5jaWVzIGxvY2FsZSBkYXRhIGxvb2tzIGxpa2UgdGhpczoKKyAgICAgICAgLy98ZW4geworICAgICAgICAvL3wgIEN1cnJlbmNpZXMgeworICAgICAgICAvL3wgICAgVVNEIHsgIlVTJCIsICJVUyBEb2xsYXIiIH0KKyAgICAgICAgLy98ICAgIENIRiB7ICJTdyBGIiwgIlN3aXNzIEZyYW5jIiB9CisgICAgICAgIC8vfCAgICBJTlIgeyAiPTAjUnN8MSNSZXwxPFJzIiwgIj0wI1J1cGVlc3wxI1J1cGVlfDE8UnVwZWVzIiB9CisgICAgICAgIC8vfCAgICAvLy4uLgorICAgICAgICAvL3wgIH0KKyAgICAgICAgLy98fQorCisgICAgICAgIGlmIChuYW1lU3R5bGUgPCAwIHx8IG5hbWVTdHlsZSA+IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBzID0gbnVsbDsKKworICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLGxvY2FsZSk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW5jaWVzID0gcmIuZ2V0KCJDdXJyZW5jaWVzIik7CisKKyAgICAgICAgICAgIC8vIEZldGNoIHJlc291cmNlIHdpdGggbXVsdGktbGV2ZWwgcmVzb3VyY2UgaW5oZXJpdGFuY2UgZmFsbGJhY2sKKyAgICAgICAgICAgIHMgPSBjdXJyZW5jaWVzLmdldFdpdGhGYWxsYmFjayhpc29Db2RlKS5nZXRTdHJpbmcobmFtZVN0eWxlKTsKKyAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy9UT0RPIHdoYXQgc2hvdWxkIGJlIGRvbmUgaGVyZT8KKyAgICAgICAgfQorCisgICAgICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIGEgQ2hvaWNlRm9ybWF0IHBhdHRlcm4uICBPbmUgbGVhZGluZyBtYXJrCisgICAgICAgIC8vIGluZGljYXRlcyBhIENob2ljZUZvcm1hdC4gIFR3byBpbmRpY2F0ZXMgYSBzdGF0aWMgc3RyaW5nIHRoYXQKKyAgICAgICAgLy8gc3RhcnRzIHdpdGggYSBtYXJrLiAgSW4gZWl0aGVyIGNhc2UsIHRoZSBmaXJzdCBtYXJrIGlzIGlnbm9yZWQsCisgICAgICAgIC8vIGlmIHByZXNlbnQuICBNYXJrcyBpbiB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIGhhdmUgbm8gc3BlY2lhbAorICAgICAgICAvLyBtZWFuaW5nLgorICAgICAgICBpc0Nob2ljZUZvcm1hdFswXSA9IGZhbHNlOworICAgICAgICBpZiAocyAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgaT0wOworICAgICAgICAgICAgd2hpbGUgKGkgPCBzLmxlbmd0aCgpICYmIHMuY2hhckF0KGkpID09ICc9JyAmJiBpIDwgMikgeworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlzQ2hvaWNlRm9ybWF0WzBdPSAoaSA9PSAxKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBTa2lwIG92ZXIgZmlyc3QgbWFyaworICAgICAgICAgICAgICAgIHMgPSBzLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgd2UgZmFpbCB0byBmaW5kIGEgbWF0Y2gsIHVzZSB0aGUgSVNPIDQyMTcgY29kZQorICAgICAgICByZXR1cm4gaXNvQ29kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBnaXZlbiBzdHJpbmcgYXMgYSBjdXJyZW5jeSwgZWl0aGVyIGFzIGEKKyAgICAgKiBkaXNwbGF5IG5hbWUgaW4gdGhlIGdpdmVuIGxvY2FsZSwgb3IgYXMgYSAzLWxldHRlciBJU08gNDIxNworICAgICAqIGNvZGUuICBJZiBtdWx0aXBsZSBkaXNwbGF5IG5hbWVzIG1hdGNoLCB0aGVuIHRoZSBsb25nZXN0IG9uZSBpcworICAgICAqIHNlbGVjdGVkLiAgSWYgYm90aCBhIGRpc3BsYXkgbmFtZSBhbmQgYSAzLWxldHRlciBJU08gY29kZQorICAgICAqIG1hdGNoLCB0aGVuIHRoZSBkaXNwbGF5IG5hbWUgaXMgcHJlZmVycmVkLCB1bmxlc3MgaXQncyBsZW5ndGgKKyAgICAgKiBpcyBsZXNzIHRoYW4gMy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgZGlzcGxheSBuYW1lcyB0byBtYXRjaAorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBvcyBpbnB1dC1vdXRwdXQgcG9zaXRpb247IG9uIGlucHV0LCB0aGUgcG9zaXRpb24gd2l0aGluCisgICAgICogdGV4dCB0byBtYXRjaDsgbXVzdCBoYXZlIDAgPD0gcG9zLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpOworICAgICAqIG9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IG1hdGNoZWQgY2hhcmFjdGVyLiBJZgorICAgICAqIHRoZSBwYXJzZSBmYWlscywgdGhlIHBvc2l0aW9uIGluIHVuY2hhbmdlZCB1cG9uIG91dHB1dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBJU08gNDIxNyBjb2RlLCBhcyBhIHN0cmluZywgb2YgdGhlIGJlc3QgbWF0Y2gsIG9yCisgICAgICogbnVsbCBpZiB0aGVyZSBpcyBubyBtYXRjaAorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcGFyc2UoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcykgeworCisgICAgICAgIC8vIFRPRE86IFRoZXJlIGlzIGEgc2xpZ2h0IHByb2JsZW0gd2l0aCB0aGUgcHNldWRvLW11bHRpLWxldmVsCisgICAgICAgIC8vIGZhbGxiYWNrIGltcGxlbWVudGVkIGhlcmUuICBNb3JlLXNwZWNpZmljIGxvY2FsZXMgZG9uJ3QKKyAgICAgICAgLy8gcHJvcGVybHkgc2hpZWxkIGR1cGxpY2F0ZSBlbnRyaWVzIGluIGxlc3Mtc3BlY2lmaWMgbG9jYWxlcy4KKyAgICAgICAgLy8gVGhpcyBwcm9ibGVtIHdpbGwgZ28gYXdheSB3aGVuIHJlYWwgbXVsdGktbGV2ZWwgZmFsbGJhY2sgaXMKKyAgICAgICAgLy8gaW1wbGVtZW50ZWQuICBXZSBjb3VsZCBhbHNvIGZpeCB0aGlzIGJ5IHJlY29yZGluZyAoaW4gYQorICAgICAgICAvLyBoYXNoKSB3aGljaCBjb2RlcyBhcmUgdXNlZCBhdCBlYWNoIGxldmVsIG9mIGZhbGxiYWNrLCBidXQKKyAgICAgICAgLy8gdGhpcyBkb2Vzbid0IHNlZW0gd2FycmFudGVkLgorCisgICAgICAgIGludCBzdGFydCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICBTdHJpbmcgZnJhZ21lbnQgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCk7CisKKyAgICAgICAgU3RyaW5nIGlzbyA9IG51bGw7CisgICAgICAgIGludCBtYXggPSAwOworCisgICAgICAgIC8vIExvb2sgdXAgdGhlIEN1cnJlbmNpZXMgcmVzb3VyY2UgZm9yIHRoZSBnaXZlbiBsb2NhbGUuICBUaGUKKyAgICAgICAgLy8gQ3VycmVuY2llcyBsb2NhbGUgZGF0YSBsb29rcyBsaWtlIHRoaXM6CisgICAgICAgIC8vfGVuIHsKKyAgICAgICAgLy98ICBDdXJyZW5jaWVzIHsKKyAgICAgICAgLy98ICAgIFVTRCB7ICJVUyQiLCAiVVMgRG9sbGFyIiB9CisgICAgICAgIC8vfCAgICBDSEYgeyAiU3cgRiIsICJTd2lzcyBGcmFuYyIgfQorICAgICAgICAvL3wgICAgSU5SIHsgIj0wI1JzfDEjUmV8MTxScyIsICI9MCNSdXBlZXN8MSNSdXBlZXwxPFJ1cGVlcyIgfQorICAgICAgICAvL3wgICAgLy8uLi4KKyAgICAgICAgLy98ICB9CisgICAgICAgIC8vfH0KKworICAgICAgICAvLyBJbiB0aGUgZnV0dXJlLCByZXNvdXJjZSBidW5kbGVzIG1heSBpbXBsZW1lbnQgbXVsdGktbGV2ZWwKKyAgICAgICAgLy8gZmFsbGJhY2suICBUaGF0IGlzLCBpZiBhIGN1cnJlbmN5IGlzIG5vdCBmb3VuZCBpbiB0aGUgZW5fVVMKKyAgICAgICAgLy8gQ3VycmVuY2llcyBkYXRhLCB0aGVuIHRoZSBlbiBDdXJyZW5jaWVzIGRhdGEgd2lsbCBiZSBzZWFyY2hlZC4KKyAgICAgICAgLy8gQ3VycmVudGx5LCBpZiBhIEN1cnJlbmNpZXMgZGF0dW0gZXhpc3RzIGluIGVuX1VTIGFuZCBlbiwgdGhlCisgICAgICAgIC8vIGVuX1VTIGVudHJ5IGhpZGVzIHRoYXQgaW4gZW4uCisKKyAgICAgICAgLy8gV2Ugd2FudCBtdWx0aS1sZXZlbCBmYWxsYmFjayBmb3IgdGhpcyByZXNvdXJjZSwgc28gd2UgaW1wbGVtZW50CisgICAgICAgIC8vIGl0IG1hbnVhbGx5LgorCisgICAgICAgIC8vIE11bHRpLWxldmVsIHJlc291cmNlIGluaGVyaXRhbmNlIGZhbGxiYWNrIGxvb3AKKworICAgICAgICB3aGlsZSAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLGxvY2FsZSk7CisgICAgICAgICAgICAvLyBXZSBjYW4ndCBjYXN0IHRoaXMgdG8gU3RyaW5nW11bXTsgdGhlIGNhc3QgaGFzIHRvIGhhcHBlbiBsYXRlcgorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGN1cnJlbmNpZXMgPSByYi5nZXQoIkN1cnJlbmNpZXMiKTsKKyAgICAgICAgICAgICAgICAvLyBEbyBhIGxpbmVhciBzZWFyY2gKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y3VycmVuY2llcy5nZXRTaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAvL1N0cmluZyBuYW1lID0gKChTdHJpbmdbXSkgY3VycmVuY2llc1tpXVsxXSlbMF07CisgICAgICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGl0ZW0gPSBjdXJyZW5jaWVzLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBpdGVtLmdldFN0cmluZygwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPCAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgemVyby1sZW5ndGggbmFtZXMgLS0gbGF0ZXIsIGNoYW5nZSB0aGlzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHplcm8tbGVuZ3RoIGlzIHVzZWQgdG8gbWVhbiBzb21ldGhpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lLmNoYXJBdCgwKSA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gMCAmJiBuYW1lLmNoYXJBdCgwKSAhPSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaG9pY2VGb3JtYXQgY2hvaWNlID0gbmV3IENob2ljZUZvcm1hdChuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgbiA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlLnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IHBvcy5nZXRJbmRleCgpIC0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IG1heCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc28gPSBpdGVtLmdldEtleSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSBsZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPiBtYXggJiYgZnJhZ21lbnQuc3RhcnRzV2l0aChuYW1lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNvID0gaXRlbS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9IG5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHt9CisKKyAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5nZXRGYWxsYmFjaygpOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgMS4gTG9vayBhdCB0aGUgQ3VycmVuY2llcyBhcnJheSBmcm9tIHRoZSBsb2NhbGUKKyAgICAgICAgICAgIDFhLiBJdGVyYXRlIHRocm91Z2ggaXQsIGFuZCBjaGVjayBlYWNoIHJvdyB0byBzZWUgaWYgcm93WzFdIG1hdGNoZXMKKyAgICAgICAgICAgICAgICAxYTEuIElmIHJvd1sxXSBpcyBhIHBhdHRlcm4sIHVzZSBDaG9pY2VGb3JtYXQgdG8gYXR0ZW1wdCBhIHBhcnNlCisgICAgICAgICAgICAxYi4gVXBvbiBhIG1hdGNoLCByZXR1cm4gdGhlIElTTyBjb2RlIHN0b3JlZCBhdCByb3dbMF0KKyAgICAgICAgMi4gSWYgdGhlcmUgaXMgbm8gbWF0Y2gsIGZhbGwgYmFjayB0byAiZW4iIGFuZCB0cnkgYWdhaW4KKyAgICAgICAgMy4gSWYgdGhlcmUgaXMgbm8gbWF0Y2gsIGZhbGwgYmFjayB0byByb290IGFuZCB0cnkgYWdhaW4KKyAgICAgICAgNC4gSWYgc3RpbGwgbm8gbWF0Y2gsIHBhcnNlIDMtbGV0dGVyIElTTyB7dGhpcyBjb2RlIGlzIHByb2JhYmx5IHVuY2hhbmdlZH0uCisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKFVSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW5jaWVzID0gcmIuZ2V0KCJDdXJyZW5jaWVzIik7CisgICAgICAgICovCisgICAgICAgIC8vIElmIGRpc3BsYXkgbmFtZSBwYXJzZSBmYWlscyBvciBpZiBpdCBtYXRjaGVzIGZld2VyIHRoYW4gMworICAgICAgICAvLyBjaGFyYWN0ZXJzLCB0cnkgdG8gcGFyc2UgMy1sZXR0ZXIgSVNPLiAgRG8gdGhpcyBhZnRlciB0aGUKKyAgICAgICAgLy8gZGlzcGxheSBuYW1lIHByb2Nlc3Npbmcgc28gMy1sZXR0ZXIgZGlzcGxheSBuYW1lcyBhcmUKKyAgICAgICAgLy8gcHJlZmVycmVkLiAgQ29uc2lkZXIgL1tBLVpdezN9LyB0byBiZSB2YWxpZCBJU08sIGFuZCBwYXJzZQorICAgICAgICAvLyBpdCBtYW51YWxseS0tVW5pY29kZVNldC9yZWdleCBhcmUgdG9vIHNsb3cgYW5kIGhlYXZ5LgorICAgICAgICBpZiAobWF4IDwgMyAmJiAodGV4dC5sZW5ndGgoKSAtIHN0YXJ0KSA+PSAzKSB7CisgICAgICAgICAgICBib29sZWFuIHZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazwzOyArK2spIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGV4dC5jaGFyQXQoc3RhcnQgKyBrKTsgLy8gMTYtYml0IG9rCisgICAgICAgICAgICAgICAgaWYgKGNoIDwgJ0EnIHx8IGNoID4gJ1onKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh2YWxpZCkgeworICAgICAgICAgICAgICAgIGlzbyA9IHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBzdGFydCszKTsKKyAgICAgICAgICAgICAgICBtYXggPSAzOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcG9zLnNldEluZGV4KHN0YXJ0ICsgbWF4KTsKKyAgICAgICAgcmV0dXJuIGlzbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdGhhdCBzaG91bGQKKyAgICAgKiBiZSBkaXNwbGF5ZWQgZm9yIHRoaXMgY3VycmVuY3kuCisgICAgICogQHJldHVybiBhIG5vbi1uZWdhdGl2ZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGJlCisgICAgICogZGlzcGxheWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGludCBnZXREZWZhdWx0RnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiAoZmluZERhdGEoKSlbMF07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcm91bmRpbmcgaW5jcmVtZW50IGZvciB0aGlzIGN1cnJlbmN5LCBvciAwLjAgaWYgbm8KKyAgICAgKiByb3VuZGluZyBpcyBkb25lIGJ5IHRoaXMgY3VycmVuY3kuCisgICAgICogQHJldHVybiB0aGUgbm9uLW5lZ2F0aXZlIHJvdW5kaW5nIGluY3JlbWVudCwgb3IgMC4wIGlmIG5vbmUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldFJvdW5kaW5nSW5jcmVtZW50KCkgeworICAgICAgICBpbnRbXSBkYXRhID0gZmluZERhdGEoKTsKKworICAgICAgICBpbnQgZGF0YTEgPSBkYXRhWzFdOyAvLyByb3VuZGluZyBpbmNyZW1lbnQKKworICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyByb3VuZGluZyByZXR1cm4gMC4wIHRvIGluZGljYXRlIG5vIHJvdW5kaW5nLgorICAgICAgICAvLyBUaGlzIGlzIHRoZSBoaWdoLXJ1bm5lciBjYXNlLCBieSBmYXIuCisgICAgICAgIGlmIChkYXRhMSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMC4wOworICAgICAgICB9CisKKyAgICAgICAgaW50IGRhdGEwID0gZGF0YVswXTsgLy8gZnJhY3Rpb24gZGlnaXRzCisKKyAgICAgICAgLy8gSWYgdGhlIG1ldGEgZGF0YSBpcyBpbnZhbGlkLCByZXR1cm4gMC4wIHRvIGluZGljYXRlIG5vIHJvdW5kaW5nLgorICAgICAgICBpZiAoZGF0YTAgPCAwIHx8IGRhdGEwID49IFBPVzEwLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIDAuMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJldHVybiBkYXRhWzFdIC8gMTBeKGRhdGFbMF0pLiAgVGhlIG9ubHkgYWN0dWFsIHJvdW5kaW5nIGRhdGEsCisgICAgICAgIC8vIGFzIG9mIHRoaXMgd3JpdGluZywgaXMgQ0hGIHsgMiwgMjUgfS4KKyAgICAgICAgcmV0dXJuIChkb3VibGUpIGRhdGExIC8gUE9XMTBbZGF0YTBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIElTTyA0MjE3IGNvZGUgZm9yIHRoaXMgY3VycmVuY3kuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGlzb0NvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGN1cnJlbmN5IG9iamVjdCBmb3IgdGhlIGdpdmVuIElTTyA0MjE3IDMtbGV0dGVyCisgICAgICogY29kZS4gIFRoaXMgY29uc3RydWN0b3IgYXNzdW1lcyB0aGF0IHRoZSBjb2RlIGlzIHZhbGlkLgorICAgICAqIAorICAgICAqIEBwYXJhbSB0aGVJU09Db2RlIFRoZSBpc28gY29kZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgY3VycmVuY3kuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ3VycmVuY3koU3RyaW5nIHRoZUlTT0NvZGUpIHsKKyAgICAgICAgaXNvQ29kZSA9IHRoZUlTT0NvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgZnVuY3Rpb24gdG8gbG9vayB1cCBjdXJyZW5jeSBkYXRhLiAgUmVzdWx0IGlzIGFuIGFycmF5IG9mCisgICAgICogdHdvIEludGVnZXJzLiAgVGhlIGZpcnN0IGlzIHRoZSBmcmFjdGlvbiBkaWdpdHMuICBUaGUgc2Vjb25kIGlzIHRoZQorICAgICAqIHJvdW5kaW5nIGluY3JlbWVudCwgb3IgMCBpZiBub25lLiAgVGhlIHJvdW5kaW5nIGluY3JlbWVudCBpcyBpbgorICAgICAqIHVuaXRzIG9mIDEwXigtZnJhY3Rpb25fZGlnaXRzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIGZpbmREYXRhKCkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBHZXQgQ3VycmVuY3lNZXRhIHJlc291cmNlIG91dCBvZiByb290IGxvY2FsZSBmaWxlLiAgW1RoaXMgbWF5CisgICAgICAgICAgICAvLyBtb3ZlIG91dCBvZiB0aGUgcm9vdCBsb2NhbGUgZmlsZSBsYXRlcjsgaWYgaXQgZG9lcywgdXBkYXRlIHRoaXMKKyAgICAgICAgICAgIC8vIGNvZGUuXQorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcm9vdCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCJDdXJyZW5jeURhdGEiLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVuY3lNZXRhID0gcm9vdC5nZXQoIkN1cnJlbmN5TWV0YSIpOworCisgICAgICAgICAgICAvL0ludGVnZXJbXSBpID0gbnVsbDsKKyAgICAgICAgICAgIC8vaW50IGRlZmF1bHRQb3MgPSAtMTsKKyAgICAgICAgICAgIGludFtdIGkgPSBjdXJyZW5jeU1ldGEuZ2V0KGlzb0NvZGUpLmdldEludFZlY3RvcigpOworCisgICAgICAgICAgICAvLyBEbyBhIGxpbmVhciBzZWFyY2ggZm9yIGlzb0NvZGUuICBBdCB0aGUgc2FtZSB0aW1lLAorICAgICAgICAgICAgLy8gcmVjb3JkIHRoZSBwb3NpdGlvbiBvZiB0aGUgREVGQVVMVCBtZXRhIGRhdGEuICBJZiB0aGUKKyAgICAgICAgICAgIC8vIG1ldGEgZGF0YSBiZWNvbWVzIGxhcmdlLCBtYWtlIHRoaXMgZmFzdGVyLgorICAgICAgICAgICAgLypmb3IgKGludCBqPTA7IGo8Y3VycmVuY3lNZXRhLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0W10gcm93ID0gY3VycmVuY3lNZXRhW2pdOworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gKFN0cmluZykgcm93WzBdOworICAgICAgICAgICAgICAgIGludCBjID0gaXNvQ29kZS5jb21wYXJlVG9JZ25vcmVDYXNlKHMpOworICAgICAgICAgICAgICAgIGlmIChjID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaSA9IChJbnRlZ2VyW10pIHJvd1sxXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgiREVGQVVMVCIuZXF1YWxzSWdub3JlQ2FzZShzKSkgeworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UG9zID0gajsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGMgPCAwICYmIGRlZmF1bHRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKGkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGkgPSBjdXJyZW5jeU1ldGEuZ2V0KCJERUZBVUxUIikuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpICE9IG51bGwgJiYgaS5sZW5ndGggPj0gMikgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkge30KKworICAgICAgICAvLyBDb25maWcvYnVpbGQgZXJyb3I7IHJldHVybiBoYXJkLWNvZGVkIGRlZmF1bHRzCisgICAgICAgIHJldHVybiBMQVNUX1JFU09SVF9EQVRBOworICAgIH0KKworICAgIC8vIERlZmF1bHQgY3VycmVuY3kgbWV0YSBkYXRhIG9mIGxhc3QgcmVzb3J0LiAgV2UgdHJ5IHRvIHVzZSB0aGUKKyAgICAvLyBkZWZhdWx0cyBlbmNvZGVkIGluIHRoZSBtZXRhIGRhdGEgcmVzb3VyY2UgYnVuZGxlLiAgSWYgdGhlcmUgaXMgYQorICAgIC8vIGNvbmZpZ3VyYXRpb24vYnVpbGQgZXJyb3IgYW5kIHRoZXNlIGFyZSBub3QgYXZhaWxhYmxlLCB3ZSB1c2UgdGhlc2UKKyAgICAvLyBoYXJkLWNvZGVkIGRlZmF1bHRzICh3aGljaCBzaG91bGQgYmUgaWRlbnRpY2FsKS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBMQVNUX1JFU09SVF9EQVRBID0gbmV3IGludFtdIHsgMiwgMCB9OworCisgICAgLy8gUE9XMTBbaV0gPSAxMF5pCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gUE9XMTAgPSB7IDEsIDEwLCAxMDAsIDEwMDAsIDEwMDAwLCAxMDAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAsIDEwMDAwMDAwLCAxMDAwMDAwMDAsIDEwMDAwMDAwMDAgfTsKKworICAgIC8vIC0tLS0tLS0tIEJFR0lOIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbG9jYWxlIHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoaXMgb2JqZWN0LCBvciBudWxsLgorICAgICAqIFRoaXMgbWF5IG1heSBkaWZmZXIgZnJvbSB0aGUgbG9jYWxlIHJlcXVlc3RlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoaXMgb2JqZWN0J3MgY3JlYXRpb24uICBGb3IgZXhhbXBsZSwgaWYgYW4gb2JqZWN0IGlzIGNyZWF0ZWQKKyAgICAgKiBmb3IgbG9jYWxlIDx0dD5lbl9VU19DQUxJRk9STklBPC90dD4sIHRoZSBhY3R1YWwgZGF0YSBtYXkgYmUKKyAgICAgKiBkcmF3biBmcm9tIDx0dD5lbjwvdHQ+ICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLCBhbmQKKyAgICAgKiA8dHQ+ZW5fVVM8L3R0PiBtYXkgYmUgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIHRoYXQgZXhpc3RzICh0aGUKKyAgICAgKiA8aT52YWxpZDwvaT4gbG9jYWxlKS4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgYmUgb2Jzb2xldGVkLiAgVGhlIGltcGxlbWVudGF0aW9uIGlzCisgICAgICogbm8gbG9uZ2VyIGxvY2FsZS1zcGVjaWZpYyBhbmQgc28gdGhlcmUgaXMgbm8gbG9uZ2VyIGEgdmFsaWQgb3IKKyAgICAgKiBhY3R1YWwgbG9jYWxlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQ3VycmVuY3kgb2JqZWN0LiAgVW50aWwKKyAgICAgKiBpdCBpcyByZW1vdmVkLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiB0aGUgcm9vdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHR5cGUgdHlwZSBvZiBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQsIGVpdGhlciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFfSBvciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRX0uCisgICAgICogQHJldHVybiB0aGUgaW5mb3JtYXRpb24gc3BlY2lmaWVkIGJ5IDxpPnR5cGU8L2k+LCBvciBudWxsIGlmCisgICAgICogdGhpcyBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBvYnNvbGV0ZSBJQ1UgMy4yIHRvIGJlIHJlbW92ZWQKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBvYnNvbGV0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVUxvY2FsZSBnZXRMb2NhbGUoVUxvY2FsZS5UeXBlIHR5cGUpIHsKKwlyZXR1cm4gVUxvY2FsZS5ST09UOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5QW1vdW50LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeUFtb3VudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3NjU3YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeUFtb3VudC5qYXZhCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDEyLCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5sYW5nLk51bWJlcjsKKworLyoqCisgKiBBbiBhbW91bnQgb2YgY3VycmVuY3ksIGNvbnNpc3Rpbmcgb2YgYSBOdW1iZXIgYW5kIGEgQ3VycmVuY3kuCisgKiBDdXJyZW5jeUFtb3VudCBvYmplY3RzIGFyZSBpbW11dGFibGUuCisgKgorICogQHNlZSBqYXZhLmxhbmcuTnVtYmVyCisgKiBAc2VlIEN1cnJlbmN5CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAzLjAKKyAqLworcHVibGljIGNsYXNzIEN1cnJlbmN5QW1vdW50IGV4dGVuZHMgTWVhc3VyZSB7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBvYmplY3QgZ2l2ZW4gYSBudW1iZXIgYW5kIGEgY3VycmVuY3kuCisgICAgICogQHBhcmFtIG51bWJlciB0aGUgbnVtYmVyCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBDdXJyZW5jeUFtb3VudChOdW1iZXIgbnVtYmVyLCBDdXJyZW5jeSBjdXJyZW5jeSkgeworICAgICAgICBzdXBlcihudW1iZXIsIGN1cnJlbmN5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IG9iamVjdCBnaXZlbiBhIGRvdWJsZSB2YWx1ZSBhbmQgYSBjdXJyZW5jeS4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIGEgZG91YmxlIHZhbHVlCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBDdXJyZW5jeUFtb3VudChkb3VibGUgbnVtYmVyLCBDdXJyZW5jeSBjdXJyZW5jeSkgeworICAgICAgICBzdXBlcihuZXcgRG91YmxlKG51bWJlciksIGN1cnJlbmN5KTsKKyAgICB9ICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbmN5IG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QncyBDdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBDdXJyZW5jeSBnZXRDdXJyZW5jeSgpIHsKKyAgICAgICAgcmV0dXJuIChDdXJyZW5jeSkgZ2V0VW5pdCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5U2VydmljZVNoaW0uamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5U2VydmljZVNoaW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDU4Y2IzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3lTZXJ2aWNlU2hpbS5qYXZhCkBAIC0wLDAgKzEsNzUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworCisvKioKKyAqIFRoaXMgaXMgYSBwYWNrYWdlLWFjY2VzcyBpbXBsZW1lbnRhdGlvbiBvZiByZWdpc3RyYXRpb24gZm9yCisgKiBjdXJyZW5jeS4gIFRoZSBzaGltIGlzIGluc3RhbnRpYXRlZCBieSByZWZsZWN0aW9uIGluIEN1cnJlbmN5LCBhbGwKKyAqIGRlcGVuZGVuY2llcyBvbiBJQ1VTZXJ2aWNlIGFyZSBsb2NhdGVkIGluIHRoaXMgZmlsZS4gVGhpcyBzdHJ1Y3R1cmUKKyAqIGlzIHRvIGFsbG93IElDVTRKIHRvIGJlIGJ1aWx0IHdpdGhvdXQgc2VydmljZSByZWdpc3RyYXRpb24gc3VwcG9ydC4gIAorICovCitmaW5hbCBjbGFzcyBDdXJyZW5jeVNlcnZpY2VTaGltIGV4dGVuZHMgQ3VycmVuY3kuU2VydmljZVNoaW0geworICAgIAorICAgIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorCisgICAgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorCisgICAgQ3VycmVuY3kgY3JlYXRlSW5zdGFuY2UoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgLy8gVE9ETzogY29udmVydCB0byBVTG9jYWxlIHdoZW4gc2VydmljZSBzd2l0Y2hlcyBvdmVyCisKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeS5jcmVhdGVDdXJyZW5jeShsb2MpOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGVbXSBhY3R1YWxMb2MgPSBuZXcgVUxvY2FsZVsxXTsKKyAgICBDdXJyZW5jeSBjdXJyID0gKEN1cnJlbmN5KXNlcnZpY2UuZ2V0KGxvYywgYWN0dWFsTG9jKTsKKyAgICAgICAgVUxvY2FsZSB1bG9jID0gYWN0dWFsTG9jWzBdOworICAgICAgICBjdXJyLnNldExvY2FsZSh1bG9jLCB1bG9jKTsgLy8gc2VydmljZXMgbWFrZSBubyBkaXN0aW5jdGlvbiBiZXR3ZWVuIGFjdHVhbCAmIHZhbGlkCisgICAgICAgIHJldHVybiBjdXJyOworICAgIH0KKworICAgIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEN1cnJlbmN5IGN1cnJlbmN5LCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gc2VydmljZS5yZWdpc3Rlck9iamVjdChjdXJyZW5jeSwgbG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCByZWdpc3RyeUtleSkgeworICAgICAgICByZXR1cm4gc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeSgoRmFjdG9yeSlyZWdpc3RyeUtleSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ0ZTZXJ2aWNlIGV4dGVuZHMgSUNVTG9jYWxlU2VydmljZSB7CisgICAgICAgIENGU2VydmljZSgpIHsKKyAgICAgICAgICAgIHN1cGVyKCJDdXJyZW5jeSIpOworCisgICAgICAgICAgICBjbGFzcyBDdXJyZW5jeUZhY3RvcnkgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlQ3JlYXRlKFVMb2NhbGUgbG9jLCBpbnQga2luZCwgSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeS5jcmVhdGVDdXJyZW5jeShsb2MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVnaXN0ZXJGYWN0b3J5KG5ldyBDdXJyZW5jeUZhY3RvcnkoKSk7CisgICAgICAgICAgICBtYXJrRGVmYXVsdCgpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBJQ1VMb2NhbGVTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgQ0ZTZXJ2aWNlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9EYXRlUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRGF0ZVJ1bGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzQyY2IzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRGF0ZVJ1bGUuamF2YQpAQCAtMCwwICsxLDc3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworLyoqCisgKiBEYXRlUnVsZSBpcyBhbiBpbnRlcmZhY2UgZm9yIGNhbGN1bGF0aW5nIHRoZSBkYXRlIG9mIGFuIGV2ZW50LgorICogSXQgc3VwcG9ydHMgYm90aCByZWN1cnJpbmcgZXZlbnRzIGFuZCB0aG9zZSB3aGljaCBvY2N1ciBvbmx5IG9uY2UuCisgKiBEYXRlUnVsZSBpcyB1c2VmdWwgZm9yIHN0b3JpbmcgaW5mb3JtYXRpb24gYWJvdXQgaG9saWRheXMsCisgKiBEYXlsaWdodCBTYXZpbmdzIFRpbWUgcnVsZXMsIGFuZCBvdGhlciBldmVudHMgc3VjaCBhcyBtZWV0aW5ncy4KKyAqCisgKiBAc2VlIFNpbXBsZURhdGVSdWxlCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgRGF0ZVJ1bGUKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhlIGV2ZW50IHJlcHJlc2VudGVkIGJ5IHRoaXMgcnVsZQorICAgICAqIHRoYXQgaXMgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIG9uIG9yIGFmdGVyIHRoZSBzdGFydCBkYXRlLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RCZXR3ZWVuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgRGF0ZSAgICBmaXJzdEFmdGVyKERhdGUgc3RhcnQpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSBldmVudCByZXByZXNlbnRlZCBieSB0aGlzIHJ1bGUKKyAgICAgKiB0aGF0IGlzIG9uIG9yIGFmdGVyIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuCisgICAgICogZW5kIGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBlbmQgICBPbmx5IG9jY3VycmFuY2VzIGJlZm9yZSB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEFmdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgRGF0ZSAgICBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgb24gdGhlIGdpdmVuIGRhdGUuICBUaGlzIGRvZXMKKyAgICAgKiA8ZW0+bm90PC9lbT4gdGFrZSB0aW1lIG9mIGRheSBpbnRvIGFjY291bnQ7IGluc3RlYWQgaXQgY2hlY2tzCisgICAgICogd2hldGhlciB0aGlzIGV2ZW50IGFuZCB0aGUgZ2l2ZW4gZGF0ZSBhcmUgb24gdGhlIHNhbWUgZGF5LgorICAgICAqIFRoaXMgaXMgdXNlZnVsIGZvciBhcHBsaWNhdGlvbnMgc3VjaCBhcyBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4KKyAgICAgKiBkYXkgaXMgYSBob2xpZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgIFRoZSBkYXRlIHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gICAgICB0cnVlIGlmIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpOworCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciB0aGlzIGV2ZW50IG9jY3VycyBhdCBsZWFzdCBvbmNlIGJldHdlZW4gdGhlIHR3bworICAgICAqIGRhdGVzIGdpdmVuLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKTsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9FYXN0ZXJIb2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9FYXN0ZXJIb2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWYxNGUyMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0Vhc3RlckhvbGlkYXkuamF2YQpAQCAtMCwwICsxLDI4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogQSBIb2xpZGF5IHN1YmNsYXNzIHdoaWNoIHJlcHJlc2VudHMgaG9saWRheXMgdGhhdCBvY2N1cgorICogYSBmaXhlZCBudW1iZXIgb2YgZGF5cyBiZWZvcmUgb3IgYWZ0ZXIgRWFzdGVyLiAgU3VwcG9ydHMgYm90aCB0aGUKKyAqIFdlc3Rlcm4gYW5kIE9ydGhvZG94IG1ldGhvZHMgZm9yIGNhbGN1bGF0aW5nIEVhc3Rlci4KKyAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW5BbGwpCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIEVhc3RlckhvbGlkYXkgZXh0ZW5kcyBIb2xpZGF5Cit7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgaG9saWRheSB0aGF0IGZhbGxzIG9uIEVhc3RlciBTdW5kYXkgZXZlcnkgeWVhcgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFYXN0ZXJIb2xpZGF5KFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgbmV3IEVhc3RlclJ1bGUoMCwgZmFsc2UpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBob2xpZGF5IHRoYXQgZmFsbHMgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgYmVmb3JlCisgICAgICogb3IgYWZ0ZXIgRWFzdGVyIFN1bmRheSBlYWNoIHllYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5c0FmdGVyIFRoZSBudW1iZXIgb2YgZGF5cyBiZWZvcmUgKC0pIG9yIGFmdGVyICgrKSBFYXN0ZXIKKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFRoZSBuYW1lIG9mIHRoZSBob2xpZGF5CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRWFzdGVySG9saWRheShpbnQgZGF5c0FmdGVyLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBFYXN0ZXJSdWxlKGRheXNBZnRlciwgZmFsc2UpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBob2xpZGF5IHRoYXQgZmFsbHMgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgYmVmb3JlCisgICAgICogb3IgYWZ0ZXIgRWFzdGVyIFN1bmRheSBlYWNoIHllYXIsIHVzaW5nIGVpdGhlciB0aGUgV2VzdGVybgorICAgICAqIG9yIE9ydGhvZG94IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGRheXNBZnRlciBUaGUgbnVtYmVyIG9mIGRheXMgYmVmb3JlICgtKSBvciBhZnRlciAoKykgRWFzdGVyCisgICAgICogQHBhcmFtIG9ydGhvZG94ICBVc2UgdGhlIE9ydGhvZG94IGNhbGVuZGFyPworICAgICAqIEBwYXJhbSBuYW1lICAgICAgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFYXN0ZXJIb2xpZGF5KGludCBkYXlzQWZ0ZXIsIGJvb2xlYW4gb3J0aG9kb3gsIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgbmV3IEVhc3RlclJ1bGUoZGF5c0FmdGVyLCBvcnRob2RveCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNocm92ZSBUdWVzZGF5LCBha2EgTWFyZGkgR3JhcywgNDggZGF5cyBiZWZvcmUgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgU0hST1ZFX1RVRVNEQVkgID0gbmV3IEVhc3RlckhvbGlkYXkoLTQ4LCAgICAiU2hyb3ZlIFR1ZXNkYXkiKTsKKworICAgIC8qKgorICAgICAqIEFzaCBXZWRuZXNkYXksIHN0YXJ0IG9mIExlbnQsIDQ3IGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IEFTSF9XRURORVNEQVkgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KC00NywgICAgIkFzaCBXZWRuZXNkYXkiKTsKKworICAgIC8qKgorICAgICAqIFBhbG0gU3VuZGF5LCA3IGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IFBBTE1fU1VOREFZICAgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCAtNywgICAgIlBhbG0gU3VuZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBNYXVuZHkgVGh1cnNkYXksIDMgZGF5cyBiZWZvcmUgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgTUFVTkRZX1RIVVJTREFZID0gbmV3IEVhc3RlckhvbGlkYXkoIC0zLCAgICAiTWF1bmR5IFRodXJzZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBHb29kIEZyaWRheSwgMiBkYXlzIGJlZm9yZSBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBHT09EX0ZSSURBWSAgICAgPSBuZXcgRWFzdGVySG9saWRheSggLTIsICAgICJHb29kIEZyaWRheSIpOworCisgICAgLyoqCisgICAgICogRWFzdGVyIFN1bmRheQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IEVBU1RFUl9TVU5EQVkgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCAgMCwgICAgIkVhc3RlciBTdW5kYXkiKTsKKworICAgIC8qKgorICAgICAqIEVhc3RlciBNb25kYXksIDEgZGF5IGFmdGVyIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IEVBU1RFUl9NT05EQVkgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCAgMSwgICAgIkVhc3RlciBNb25kYXkiKTsKKworICAgIC8qKgorICAgICAqIEFzY2Vuc2lvbiwgMzkgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBBU0NFTlNJT04gICAgICAgPSBuZXcgRWFzdGVySG9saWRheSggMzksICAgICJBc2NlbnNpb24iKTsKKworICAgIC8qKgorICAgICAqIFBlbnRlY29zdCAoYWthIFdoaXQgU3VuZGF5KSwgNDkgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBQRU5URUNPU1QgICAgICAgPSBuZXcgRWFzdGVySG9saWRheSggNDksICAgICJQZW50ZWNvc3QiKTsKKworICAgIC8qKgorICAgICAqIFdoaXQgU3VuZGF5IChha2EgUGVudGVjb3N0KSwgNDkgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBXSElUX1NVTkRBWSAgICAgPSBuZXcgRWFzdGVySG9saWRheSggNDksICAgICJXaGl0IFN1bmRheSIpOworCisgICAgLyoqCisgICAgICogV2hpdCBNb25kYXksIDUwIGRheXMgYWZ0ZXIgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgV0hJVF9NT05EQVkgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIDUwLCAgICAiV2hpdCBNb25kYXkiKTsKKworICAgIC8qKgorICAgICAqIENvcnB1cyBDaHJpc3RpLCA2MCBkYXlzIGFmdGVyIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IENPUlBVU19DSFJJU1RJICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCA2MCwgICAgIkNvcnB1cyBDaHJpc3RpIik7Cit9CisKK2NsYXNzIEVhc3RlclJ1bGUgaW1wbGVtZW50cyBEYXRlUnVsZSB7CisgICAgcHVibGljIEVhc3RlclJ1bGUoaW50IGRheXNBZnRlckVhc3RlciwgYm9vbGVhbiBpc09ydGhvZG94KSB7CisgICAgICAgIHRoaXMuZGF5c0FmdGVyRWFzdGVyID0gZGF5c0FmdGVyRWFzdGVyOworICAgICAgICBpZiAoaXNPcnRob2RveCkgeworICAgICAgICAgICAgb3J0aG9kb3guc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgICAgICBjYWxlbmRhciA9IG9ydGhvZG94OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoaXMgcnVsZSBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QWZ0ZXIoRGF0ZSBzdGFydCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb0ZpcnN0QmV0d2VlbihzdGFydCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoaXMgcnVsZSBvbiBvciBhZnRlcgorICAgICAqIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuIGVuZCBkYXRlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb0ZpcnN0QmV0d2VlbihzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gRGF0ZSBpcyBvbiB0aGUgc2FtZSBkYXkgYXMgRWFzdGVyCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpCisgICAgeworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsZW5kYXIpIHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICBpbnQgZGF5T2ZZZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKworICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShjb21wdXRlSW5ZZWFyKGNhbGVuZGFyLmdldFRpbWUoKSwgY2FsZW5kYXIpKTsKKworICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgPT0gZGF5T2ZZZWFyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgRWFzdGVyIG9jY3VycyBiZXR3ZWVuIHRoZSB0d28gZGF0ZXMgZ2l2ZW4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICByZXR1cm4gZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpICE9IG51bGw7IC8vIFRPRE86IG9wdGltaXplPworICAgIH0KKworICAgIHByaXZhdGUgRGF0ZSBkb0ZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkb0ZpcnN0QmV0d2Vlbjogc3RhcnQgICA9ICIgKyBzdGFydC50b1N0cmluZygpKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImRvRmlyc3RCZXR3ZWVuOiBlbmQgICAgID0gIiArIGVuZC50b1N0cmluZygpKTsKKworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsZW5kYXIpIHsKKyAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hlbiB0aGlzIGhvbGlkYXkgbGFuZHMgaW4gdGhlIGdpdmVuIHllYXIKKyAgICAgICAgICAgIERhdGUgcmVzdWx0ID0gY29tcHV0ZUluWWVhcihzdGFydCwgY2FsZW5kYXIpOworCisgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgIHJlc3VsdCAgPSAiICsgcmVzdWx0LnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAvLyBXZSBtaWdodCBoYXZlIGdvdHRlbiBhIGRhdGUgdGhhdCdzIGluIHRoZSBzYW1lIHllYXIgYXMgInN0YXJ0IiwgYnV0CisgICAgICAgICAgICAvLyBlYXJsaWVyIGluIHRoZSB5ZWFyLiAgSWYgc28sIGdvIHRvIG5leHQgeWVhcgorICAgICAgICAgICAgaWYgKHJlc3VsdC5iZWZvcmUoc3RhcnQpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoc3RhcnQpOworICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsgICAgLy8gSkRLIDEuMS4yIGJ1ZyB3b3JrYXJvdW5kCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLllFQVIsIDEpOworCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICBSZXN1bHQgYmVmb3JlIHN0YXJ0LCBnb2luZyB0byBuZXh0IHllYXI6ICIKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXIuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUluWWVhcihjYWxlbmRhci5nZXRUaW1lKCksIGNhbGVuZGFyKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgIHJlc3VsdCAgPSAiICsgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZW5kICE9IG51bGwgJiYgcmVzdWx0LmFmdGVyKGVuZCkpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0IGFmdGVyIGVuZCwgcmV0dXJuaW5nIG51bGwiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBtb250aCBhbmQgZGF0ZSBvbiB3aGljaCB0aGlzIGhvbGlkYXkgZmFsbHMgaW4gdGhlIHllYXIKKyAgICAgKiBjb250YWluaW5nIHRoZSBkYXRlICJkYXRlIi4gIEZpcnN0IGZpZ3VyZSBvdXQgd2hpY2ggZGF0ZSBFYXN0ZXIKKyAgICAgKiBsYW5kcyBvbiBpbiB0aGlzIHllYXIsIGFuZCB0aGVuIGFkZCB0aGUgb2Zmc2V0IGZvciB0aGlzIGhvbGlkYXkgdG8gZ2V0CisgICAgICogdGhlIHJpZ2h0IGRhdGUuCisgICAgICogPHA+CisgICAgICogVGhlIGFsZ29yaXRobSBoZXJlIGlzIHRha2VuIGZyb20gdGhlCisgICAgICogPGEgaHJlZj0iaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2NhbGVuZGFycy9mYXEvIj5DYWxlbmRhciBGQVE8L2E+LgorICAgICAqLworICAgIHByaXZhdGUgRGF0ZSBjb21wdXRlSW5ZZWFyKERhdGUgZGF0ZSwgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgaWYgKGNhbCA9PSBudWxsKSBjYWwgPSBjYWxlbmRhcjsKKworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsKSB7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKworICAgICAgICAgICAgaW50IHllYXIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IGcgPSB5ZWFyICUgMTk7ICAvLyAiR29sZGVuIE51bWJlciIgb2YgeWVhciAtIDEKKyAgICAgICAgICAgIGludCBpID0gMDsgICAgICAgICAgLy8gIyBvZiBkYXlzIGZyb20gMy8yMSB0byB0aGUgUGFzY2hhbCBmdWxsIG1vb24KKyAgICAgICAgICAgIGludCBqID0gMDsgICAgICAgICAgLy8gV2Vla2RheSAoMC1iYXNlZCkgb2YgUGFzY2hhbCBmdWxsIG1vb24KKworICAgICAgICAgICAgaWYgKGNhbC5nZXRUaW1lKCkuYWZ0ZXIoIGNhbC5nZXRHcmVnb3JpYW5DaGFuZ2UoKSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gV2UncmUgcGFzdCB0aGUgR3JlZ29yaWFuIHN3aXRjaG92ZXIsIHNvIHVzZSB0aGUgR3JlZ29yaWFuIHJ1bGVzLgorICAgICAgICAgICAgICAgIGludCBjID0geWVhciAvIDEwMDsKKyAgICAgICAgICAgICAgICBpbnQgaCA9IChjIC0gYy80IC0gKDgqYysxMykvMjUgKyAxOSpnICsgMTUpICUgMzA7CisgICAgICAgICAgICAgICAgaSA9IGggLSAoaC8yOCkqKDEgLSAoaC8yOCkqKDI5LyhoKzEpKSooKDIxLWcpLzExKSk7CisgICAgICAgICAgICAgICAgaiA9ICh5ZWFyICsgeWVhci80ICsgaSArIDIgLSBjICsgYy80KSAlIDc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBvbGQgSnVsaWFuIHJ1bGVzLgorICAgICAgICAgICAgICAgIGkgPSAoMTkqZyArIDE1KSAlIDMwOworICAgICAgICAgICAgICAgIGogPSAoeWVhciArIHllYXIvNCArIGkpICUgNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsID0gaSAtIGo7CisgICAgICAgICAgICBpbnQgbSA9IDMgKyAobCs0MCkvNDQ7ICAgICAgICAgICAgICAvLyAxLWJhc2VkIG1vbnRoIGluIHdoaWNoIEVhc3RlciBmYWxscworICAgICAgICAgICAgaW50IGQgPSBsICsgMjggLSAzMSoobS80KTsgICAgICAgICAgLy8gRGF0ZSBvZiBFYXN0ZXIgd2l0aGluIHRoYXQgbW9udGgKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVSQSwgR3JlZ29yaWFuQ2FsZW5kYXIuQUQpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIG0tMSk7ICAgICAgIC8vIDAtYmFzZWQKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFURSwgZCk7CisgICAgICAgICAgICBjYWwuZ2V0VGltZSgpOyAgICAgICAgICAgICAgICAgICAgICAvLyBKREsgMS4xLjIgYnVnIHdvcmthcm91bmQKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgZGF5c0FmdGVyRWFzdGVyKTsKKworICAgICAgICAgICAgcmV0dXJuIGNhbC5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBHcmVnb3JpYW5DYWxlbmRhciBncmVnb3JpYW4gPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoLyogbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSAqLyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgb3J0aG9kb3ggPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoLyogbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSAqLyk7CisKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgIGRheXNBZnRlckVhc3RlcjsKKyAgICBwcml2YXRlIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gZ3JlZ29yaWFuOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRXRoaW9waWNDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRXRoaW9waWNDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NDgyZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9FdGhpb3BpY0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSwzMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEltcGxlbWVudCB0aGUgRXRoaW9waWMgY2FsZW5kYXIgc3lzdGVtLgorICogPHA+CisgKiBFdGhpb3BpY0NhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWV0aGlvcGljIjwvY29kZT4uPC9wPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQGRyYWZ0IElDVSAzLjQKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgRXRoaW9waWNDYWxlbmRhciBleHRlbmRzIENFQ2FsZW5kYXIgCit7CisgICAgLy9qZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMjQzODQ5NTc3MTMzOTMxNTYwOEw7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTIxOFx1MTIzNVx1MTJhOFx1MTIyOFx1MTIxZCwgdGhlIDFzdCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVNLRVJFTSA9IDA7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTMyNVx1MTI0NVx1MTIxZFx1MTI3NSwgdGhlIDJuZCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURUtFTVQgPSAxOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyODVcdTEyZjNcdTEyMmQsIHRoZSAzcmQgbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVEQVIgPSAyOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyNzNcdTEyODVcdTEyMjNcdTEyMjUsIHRoZSA0dGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFIU0FTID0gMzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMzI1XHUxMjJkLCB0aGUgNXRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUiA9IDQ7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTJlOFx1MTJhYlx1MTI3Mlx1MTI3NSwgdGhlIDZ0aCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUtBVElUID0gNTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMjE4XHUxMzBiXHUxMjYyXHUxMjc1LCB0aGUgN3RoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FR0FCSVQgPSA2OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyMWFcdTEyZWJcdTEyZGRcdTEyZWIsIHRoZSA4dGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlBWklBID0gNzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMzBkXHUxMjk1XHUxMjY2XHUxMjc1LCB0aGUgOXRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFTkJPVCA9IDg7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTIzMFx1MTI5NCwgdGhlIDEwdGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VORSA9IDk7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTIxMFx1MTIxZFx1MTIwYywgdGhlIDExdGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFNTEUgPSAxMDsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMjkwXHUxMjEwXHUxMjM0LCB0aGUgMTJ0aCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORUhBU1NFID0gMTE7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTMzM1x1MTMwOVx1MTIxY1x1MTI5NSwgdGhlIDEzdGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFHVU1FTiA9IDEyOworIAorICAgIC8vIFVwIHVudGlsIHRoZSBlbmQgb2YgdGhlIDE5dGggY2VudHVyeSB0aGUgcHJldmFpbGFudCBjb252ZW50aW9uIHdhcyB0bworICAgIC8vIHJlZmVyZW5jZSB0aGUgRXRoaW9waWMgQ2FsZW5kYXIgZnJvbSB0aGUgY3JlYXRpb24gb2YgdGhlIHdvcmxkLCAKKyAgICAvLyBcdTEyZDNcdTEyMThcdTEyNzBcdTEzNjFcdTEyZDNcdTEyMDhcdTEyMWQKKyAgICAvLyAoQW1ldGUgQWxlbSA1NTAwIEJDKS4gIEFzIEV0aGlvcGlhIG1vZGVybml6ZWQgdGhlIHJlZmVyZW5jZSBlcG9jaCBmcm9tCisgICAgLy8gdGhlIGJpcnRoIG9mIENocmlzdCAoXHUxMmQzXHUxMjE4XHUxMjcwXHUxMzYxXHUxMjFkXHUxMjE1XHUxMjI4XHUxMjc1KSAKKyAgICAvLyBiZWdhbiB0byBkaXNwbGFjZSB0aGUgY3JlYXRpb24gb2YgdGhlCisgICAgLy8gd29ybGQgcmVmZXJlbmNlIHBvaW50LiAgSG93ZXZlciwgeWVhcnMgYmVmb3JlIHRoZSBiaXJ0aCBvZiBDaHJpc3QgYXJlCisgICAgLy8gc3RpbGwgcmVmZXJlbmNlZCBpbiB0aGUgY3JlYXRpb24gb2YgdGhlIHdvcmxkIHN5c3RlbS4gICAKKyAgICAvLyBUaHVzIC0xMDAgXHUxMmQzL1x1MTIxZAorICAgIC8vIHdvdWxkIGJlIHJlbmRlcmVkIGFzIDU0MDAgIFx1MTJkMy9cdTEyZDMuCisgICAgLy8KKyAgICAvLyBUaGUgY3JlYXRpb24gb2YgdGhlIHdvcmxkIGluIEV0aGlvcGljIGNhbm5vbiB3YXMgCisgICAgLy8gTWVza2VyZW0gMSwgLTU1MDAgIFx1MTJkMy9cdTEyMWQgMDA6MDA6MDAKKyAgICAvLyBhcHBseWluZyB0aGUgYmlydGggb2YgQ2hyaXN0IHJlZmVyZW5jZSBhbmQgRXRoaW9waWFuIHRpbWUgY29udmVudGlvbnMuICBUaGlzIGlzCisgICAgLy8gNiBob3VycyBsZXNzIHRoYW4gdGhlIEp1bGlhbiBlcG9jaCByZWZlcmVuY2UgcG9pbnQgKG5vb24pLiAgSW4gR3JlZ29yaWFuCisgICAgLy8gdGhlIGRhdGUgYW5kIHRpbWUgd2FzIEp1bHkgMTh0aCAtNTQ5MyBCQyAwNjowMCBBTS4KKwkKKyAgICAvLyBKdWxpYW4gRGF5cyByZWxhdGl2ZSB0byB0aGUgCisgICAgLy8gXHUxMmQzXHUxMjE4XHUxMjcwXHUxMzYxXHUxMjFkXHUxMjE1XHUxMjI4XHUxMjc1IGVwb2NoCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpEX0VQT0NIX09GRlNFVF9BTUVURV9BTEVNID0gLTI4NTAxOTsKKworICAgIC8vIEp1bGlhbiBEYXlzIHJlbGF0aXZlIHRvIHRoZSAKKyAgICAvLyBcdTEyZDNcdTEyMThcdTEyNzBcdTEzNjFcdTEyZDNcdTEyMDhcdTEyMWQgZXBvY2gKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVCA9IDE3MjM4NTY7CisKKyAgICAvLyBpbml0aWFsaXplIGJhc2UgY2xhc3MgY29uc3RhbnQsIGNvbW1vbiB0byBhbGwgY29uc3RydWN0b3JzCisgICAgeworICAgIAlqZEVwb2NoT2Zmc2V0ID0gSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcigpIHsKKyAgICAJc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcihhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBpY3UgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBpY3UgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIE1lc2tlcmVtLgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgIAlzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkV0aGlvcGljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgCXN1cGVyKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIE1lc2tlcmVtLgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjSE9VUl9PRl9EQVkgSE9VUl9PRl9EQVl9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1pbnV0ZSAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgIAlzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYW4gRXRoaW9waWMgeWVhciwgbW9udGgsIGFuZCBkYXkgdG8gYSBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgdGhlIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIG1vbnRoCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRheQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBFdGhpb3BpY1RvSkQobG9uZyB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgCXJldHVybiBjZVRvSkQoeWVhciwgbW9udGgsIGRhdGUsIEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW50ZWdlcltdIGdldERhdGVGcm9tSkQoaW50IGp1bGlhbkRheSkgeworICAgIAlyZXR1cm4gZ2V0RGF0ZUZyb21KRChqdWxpYW5EYXksIEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgQWxlbSBvciBNaWhyZXQgZXJhLgorICAgICAqCisgICAgICogQHBhcmFtIG9uT2ZmIFNldCBBbWV0ZSBBbGVtIGVyYSBpZiB0cnVlLCBvdGhlcndpc2Ugc2V0IEFtZXRlIE1paHJldCBlcmEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFtZXRlQWxlbUVyYShib29sZWFuIG9uT2ZmKSB7CisgICAgCXRoaXMuamRFcG9jaE9mZnNldCA9IG9uT2ZmIAorCSAgICA/IEpEX0VQT0NIX09GRlNFVF9BTUVURV9BTEVNIAorCSAgICA6IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgY2FsZW5kYXIgaXMgc2V0IHRvIHRoZSBBbWV0ZSBBbGVtIGVyYS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzZXQgdG8gdGhlIEFtZXRlIEFsZW0gZXJhLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0FtZXRlQWxlbUVyYSgpIHsKKyAgICAJcmV0dXJuIHRoaXMuamRFcG9jaE9mZnNldCA9PSBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfQUxFTTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJldGhpb3BpYyI7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9GcmVlemFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0ZyZWV6YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MjlmNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9GcmVlemFibGUuamF2YQpAQCAtMCwwICsxLDMzNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogPHByZT4KKyAqICBEUkFGVAorICogIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiA8L3ByZT4KKyAqIAorICogUHJvdmlkZXMgYSBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIGNvbnRyb2xsaW5nIGFjY2Vzcywgd2l0aG91dCByZXF1aXJpbmcgdGhhdAorICogYSBjbGFzcyBiZSBpbW11dGFibGUuIE9uY2UgbG9ja2VkLCBhbiBvYmplY3QgY2FuIG5ldmVyIGJlIHVubG9ja2VkLCBzbyBpdCBpcworICogdGhyZWFkLXNhZmUgZnJvbSB0aGF0IHBvaW50IG9ud2FyZC4gVGhlIGltcGxlbWVudGF0aW9uIG9mIGJvdGggbWV0aG9kcyBtdXN0CisgKiBiZSBzeW5jaHJvbml6ZWQuIE9uY2UgdGhlIG9iamVjdCBoYXMgYmVlbiBsb2NrZWQsIGl0IG11c3QgZ3VhcmFudGVlIHRoYXQgbm8KKyAqIGNoYW5nZXMgY2FuIGJlIG1hZGUgdG8gaXQuIEFueSBhdHRlbXB0IHRvIGFsdGVyIGl0IG11c3QgcmFpc2UgYW4KKyAqIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGV4Y2VwdGlvbi4gVGhpcyBtZWFucyB0aGF0IHdoZW4gdGhlIG9iamVjdAorICogcmV0dXJucyBpbnRlcm5hbCBvYmplY3RzLCBvciBpZiBhbnlvbmUgaGFzIHJlZmVyZW5jZXMgdG8gdGhvc2UgaW50ZXJuYWwKKyAqIG9iamVjdHMsIHRoYXQgdGhvc2UgaW50ZXJuYWwgb2JqZWN0cyBtdXN0IGVpdGhlciBiZSBpbW11dGFibGUsIG9yIG11c3QgYWxzbworICogcmFpc2UgZXhjZXB0aW9ucyBpZiBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlbSBpcyBtYWRlLiBPZiBjb3Vyc2UsIHRoZSBvYmplY3QKKyAqIGNhbiByZXR1cm4gY2xvbmVzIG9mIGludGVybmFsIG9iamVjdHMsIHNpbmNlIHRob3NlIGFyZSBzYWZlLgorICogPGgyPkJhY2tncm91bmQ8L2gyPgorICogPHA+CisgKiBUaGVyZSBhcmUgb2Z0ZW4gdGltZXMgd2hlbiB5b3UgbmVlZCBvYmplY3RzIHRvIGJlIG9iamVjdHMgJ3NhZmUnLCBzbyB0aGF0CisgKiB0aGV5IGNhbid0IGJlIG1vZGlmaWVkLiBFeGFtcGxlcyBhcmUgd2hlbiBvYmplY3RzIG5lZWQgdG8gYmUgdGhyZWFkLXNhZmUsIG9yCisgKiBpbiB3cml0aW5nIHJvYnVzdCBjb2RlLCBvciBpbiBjYWNoZXMuIElmIHlvdSBhcmUgb25seSBjcmVhdGluZyB5b3VyIG93bgorICogb2JqZWN0cywgeW91IGNhbiBndWFyYW50ZWUgdGhpcywgb2YgY291cnNlIC0tIGJ1dCBvbmx5IGlmIHlvdSBkb24ndCBtYWtlIGEKKyAqIG1pc3Rha2UuIElmIHlvdSBoYXZlIG9iamVjdHMgaGFuZGVkIGludG8geW91LCBvciBhcmUgY3JlYXRpbmcgb2JqZWN0cyB1c2luZworICogb3RoZXJzIGhhbmRlZCBpbnRvIHlvdSwgaXQgaXMgYSBkaWZmZXJlbnQgc3RvcnkuIEl0IGFsbCBjb21lcyBkb3duIHRvIHdoZXRoZXIKKyAqIHlvdSB3YW50IHRvIHRha2UgdGhlIEJsYW5jaGUgRHVib2lzIGFwcHJvYWNoICgmcXVvdDtkZXBlbmQgb24gdGhlIGtpbmRuZXNzIG9mCisgKiBzdHJhbmdlcnMmcXVvdDspIG9yIHRoZSBBbmR5IEdyb3ZlIGFwcHJvYWNoICgmcXVvdDtPbmx5IHRoZSBQYXJhbm9pZAorICogU3Vydml2ZSZxdW90OykuCisgKiA8L3A+CisgKiA8cD4KKyAqIEZvciBleGFtcGxlLCBzdXBwb3NlIHdlIGhhdmUgYSBzaW1wbGUgY2xhc3M6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiBwdWJsaWMgY2xhc3MgQSB7CisgKiAgICAgIHByb3RlY3RlZCBDb2xsZWN0aW9uIGI7CisgKiAKKyAqICAgICAgcHJvdGVjdGVkIENvbGxlY3Rpb24gYzsKKyAqIAorICogICAgICBwdWJsaWMgQ29sbGVjdGlvbiBnZXRfYigpIHsKKyAqICAgICAgICAgICAgICByZXR1cm4gYjsKKyAqICAgICAgfQorICogCisgKiAgICAgIHB1YmxpYyBDb2xsZWN0aW9uIGdldF9jKCkgeworICogICAgICAgICAgICAgIHJldHVybiBjOworICogICAgICB9CisgKiAKKyAqICAgICAgcHVibGljIEEoQ29sbGVjdGlvbiBuZXdfYiwgQ29sbGVjdGlvbiBuZXdfYykgeworICogICAgICAgICAgICAgIGIgPSBuZXdfYjsKKyAqICAgICAgICAgICAgICBjID0gbmV3X2M7CisgKiAgICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIFNpbmNlIHRoZSBjbGFzcyBkb2Vzbid0IGhhdmUgYW55IHNldHRlcnMsIHNvbWVvbmUgbWlnaHQgdGhpbmsgdGhhdCBpdCBpcworICogaW1tdXRhYmxlLiBZb3Uga25vdyB3aGVyZSB0aGlzIGlzIGxlYWRpbmcsIG9mIGNvdXJzZTsgdGhpcyBjbGFzcyBpcyB1bnNhZmUgaW4KKyAqIGEgbnVtYmVyIG9mIHdheXMuIFRoZSBmb2xsb3dpbmcgaWxsdXN0cmF0ZXMgdGhhdC4KKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqICBwdWJsaWMgdGVzdDEoU3VwcG9zZWRseUltbXV0YWJsZUNsYXNzIHgsIFNhZmVTdG9yYWdlIHkpIHsKKyAqICAgJmx0O2ZvbnQgY29sb3I9JnF1b3Q7IzAwMDBGRiZxdW90OyZndDsgICAgJmx0O2ImZ3Q7Ly8gdW5zYWZlIGdldHRlciZsdDsvYiZndDsKKyAqICAgJmx0Oy9mb250Jmd0OyAgICBBIGEgPSB4LmdldEEoKTsKKyAqICAgQ29sbGVjdGlvbiBjb2wgPSBhLmdldF9iKCk7CisgKiAgIGNvbC5hZGQoc29tZXRoaW5nKTsmbHQ7Zm9udCBjb2xvcj0mcXVvdDsjMDAwMEZGJnF1b3Q7Jmd0OyAvLyBhIGhhcyBub3cgYmVlbiBjaGFuZ2VkLCBhbmQgeCB0b28KKyAqICAgJmx0Oy9mb250Jmd0OworICogICAmbHQ7Zm9udCBjb2xvcj0mcXVvdDsjMDAwMEZGJnF1b3Q7Jmd0OyZsdDtiJmd0Oy8vIHVuc2FmZSBjb25zdHJ1Y3RvciZsdDsvYiZndDsmbHQ7L2ZvbnQmZ3Q7CisgKiAgIGEgPSBuZXcgQShjb2wsIGNvbCk7CisgKiAgIHkuc3RvcmUoYSk7CisgKiAgIGNvbC5hZGQoc29tZXRoaW5nKTsmbHQ7Zm9udCBjb2xvcj0mcXVvdDsjMDAwMEZGJnF1b3Q7Jmd0OyAvLyBhIGhhcyBub3cgYmVlbiBjaGFuZ2VkLCBhbmQgeSB0b28KKyAqICAKKyAqICAgJmx0Oy9mb250Jmd0O30KKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIFRoZXJlIGFyZSBhIGZldyBkaWZmZXJlbnQgdGVjaG5pcXVlcyBmb3IgaGF2aW5nIHNhZmUgY2xhc3Nlcy4KKyAqIDwvcD4KKyAqIDxvbD4KKyAqIDxsaT5Db25zdCBvYmplY3RzLiBJbiBDKyssIHlvdSBjYW4gZGVjbGFyZSBwYXJhbWV0ZXJzIGNvbnN0LjwvbGk+CisgKiA8bGk+SW1tdXRhYmxlIHdyYXBwZXJzLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBwdXQgYSBjb2xsZWN0aW9uIGluIGFuCisgKiBpbW11dGFibGUgd3JhcHBlci48L2xpPgorICogPGxpPkFsd2F5cy1JbW11dGFibGUgb2JqZWN0cy4gSmF2YSB1c2VzIHRoaXMgYXBwcm9hY2gsIHdpdGggYSBmZXcKKyAqIHZhcmlhdGlvbnMuIEV4YW1wbGVzOgorICogPG9sPgorICogPGxpPlNpbXBsZS4gT25jZSBhIENvbG9yIGlzIGNyZWF0ZWQgKGVnIGZyb20gUiwgRywgYW5kIEIgaW50ZWdlcnMpIGl0IGlzCisgKiBpbW11dGFibGUuPC9saT4KKyAqIDxsaT5CdWlsZGVyIENsYXNzLiBUaGVyZSBpcyBhIHNlcGFyYXRlICdidWlsZGVyJyBjbGFzcy4gRm9yIGV4YW1wbGUsCisgKiBtb2RpZmlhYmxlIFN0cmluZ3MgYXJlIGNyZWF0ZWQgdXNpbmcgU3RyaW5nQnVmZmVyICh3aGljaCBkb2Vzbid0IGhhdmUgdGhlCisgKiBmdWxsIFN0cmluZyBBUEkgYXZhaWxhYmxlKS4gT25jZSB5b3Ugd2FudCBhbiBpbW11dGFibGUgZm9ybSwgeW91IGNyZWF0ZSBvbmUKKyAqIHdpdGggdG9TdHJpbmcoKS48L2xpPgorICogPGxpPlByaW1pdGl2ZXMuIFRoZXNlIGFyZSBhbHdheXMgc2FmZSwgc2luY2UgdGhleSBhcmUgY29waWVkIG9uIGlucHV0L291dHB1dAorICogZnJvbSBtZXRob2RzLjwvbGk+CisgKiA8L29sPgorICogPC9saT4KKyAqIDxsaT5DbG9uaW5nLiBXaGVyZSB5b3UgbmVlZCBhbiBvYmplY3QgdG8gYmUgc2FmZSwgeW91IGNsb25lIGl0LjwvbGk+CisgKiA8L29sPgorICogPHA+CisgKiBUaGVyZSBhcmUgYWR2YW50YWdlcyBhbmQgZGlzYWR2YW50YWdlcyBvZiBlYWNoIG9mIHRoZXNlLgorICogPC9wPgorICogPG9sPgorICogPGxpPkNvbnN0IHByb3ZpZGVzIGEgY2VydGFpbiBsZXZlbCBvZiBwcm90ZWN0aW9uLCBidXQgc2luY2UgY29uc3QgY2FuIGJlIGFuZAorICogaXMgb2Z0ZW4gY2FzdCBhd2F5LCBpdCBvbmx5IHByb3RlY3RzIGFnYWluc3QgbW9zdCBpbmFkdmVydGVudCBtaXN0YWtlcy4gSXQKKyAqIGFsc28gb2ZmZXJzIG5vIHRocmVhZGluZyBwcm90ZWN0aW9uLCBzaW5jZSBhbnlvbmUgd2hvIGhhcyBhIHBvaW50ZXIgdG8gdGhlCisgKiAodW5jb25zdCkgb2JqZWN0IGluIGFub3RoZXIgdGhyZWFkIGNhbiBtZXNzIHlvdSB1cC48L2xpPgorICogPGxpPkltbXV0YWJsZSB3cmFwcGVycyBhcmUgc2FmZXIgdGhhbiBjb25zdCBpbiB0aGF0IHRoZSBjb25zdG5lc3MgY2FuJ3QgYmUKKyAqIGNhc3QgYXdheS4gQnV0IG90aGVyIHRoYW4gdGhhdCB0aGV5IGhhdmUgYWxsIHRoZSBzYW1lIHByb2JsZW1zOiBub3Qgc2FmZSBpZgorICogc29tZW9uZSBlbHNlIGtlZXBzIGhvbGQgb2YgdGhlIG9yaWdpbmFsIG9iamVjdCwgb3IgaWYgYW55IG9mIHRoZSBvYmplY3RzCisgKiByZXR1cm5lZCBieSB0aGUgY2xhc3MgYXJlIG11dGFibGUuPC9saT4KKyAqIDxsaT5BbHdheXMtSW1tdXRhYmxlIE9iamVjdHMgYXJlIHNhZmUsIGJ1dCB1c2FnZSBjYW4gcmVxdWlyZSBleGNlc3NpdmUKKyAqIG9iamVjdCBjcmVhdGlvbi48L2xpPgorICogPGxpPkNsb25pbmcgaXMgb25seSBzYWZlIGlmIHRoZSBvYmplY3QgdHJ1bHkgaGFzIGEgJ3NhZmUnIGNsb25lOyBkZWZpbmVkIGFzCisgKiBvbmUgdGhhdCA8aT5lbnN1cmVzIHRoYXQgbm8gY2hhbmdlIHRvIHRoZSBjbG9uZSBhZmZlY3RzIHRoZSBvcmlnaW5hbDwvaT4uCisgKiBVbmZvcnR1bmF0ZWx5LCBtYW55IG9iamVjdHMgZG9uJ3QgaGF2ZSBhICdzYWZlJyBjbG9uZSwgYW5kIGFsd2F5cyBjbG9uaW5nIGNhbgorICogcmVxdWlyZSBleGNlc3NpdmUgb2JqZWN0IGNyZWF0aW9uLjwvbGk+CisgKiA8L29sPgorICogPGgyPkZyZWV6YWJsZSBNb2RlbDwvaDI+CisgKiA8cD4KKyAqIFRoZSA8Y29kZT5GcmVlemFibGU8L2NvZGU+IG1vZGVsIHN1cHBsZW1lbnRzIHRoZXNlIGNob2ljZXMgYnkgZ2l2aW5nIHlvdQorICogdGhlIGFiaWxpdHkgdG8gYnVpbGQgdXAgYW4gb2JqZWN0IGJ5IGNhbGxpbmcgdmFyaW91cyBtZXRob2RzLCB0aGVuIHdoZW4gaXQgaXMKKyAqIGluIGEgZmluYWwgc3RhdGUsIHlvdSBjYW4gPGk+bWFrZTwvaT4gaXQgaW1tdXRhYmxlLiBPbmNlIGltbXV0YWJsZSwgYW4KKyAqIG9iamVjdCBjYW5ub3QgPGk+ZXZlciA8L2k+YmUgbW9kaWZpZWQsIGFuZCBpcyBjb21wbGV0ZWx5IHRocmVhZC1zYWZlOiB0aGF0CisgKiBpcywgbXVsdGlwbGUgdGhyZWFkcyBjYW4gaGF2ZSByZWZlcmVuY2VzIHRvIGl0IHdpdGhvdXQgYW55IHN5bmNocm9uaXphdGlvbi4KKyAqIElmIHNvbWVvbmUgbmVlZHMgYSBtdXRhYmxlIHZlcnNpb24gb2YgYW4gb2JqZWN0LCB0aGV5IGNhbiB1c2UKKyAqIDxjb2RlPmNsb25lQXNUaGF3ZWQoKTwvY29kZT4sIGFuZCBtb2RpZnkgdGhlIGNvcHkuIFRoaXMgcHJvdmlkZXMgYSBzaW1wbGUsCisgKiBlZmZlY3RpdmUgbWVjaGFuaXNtIGZvciBzYWZlIGNsYXNzZXMgaW4gY2lyY3Vtc3RhbmNlcyB3aGVyZSB0aGUgYWx0ZXJuYXRpdmVzCisgKiBhcmUgaW5zdWZmaWNpZW50IG9yIGNsdW1zeS4gKElmIGFuIG9iamVjdCBpcyBzaGFyZWQgYmVmb3JlIGl0IGlzIGltbXV0YWJsZSwKKyAqIHRoZW4gaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIGVhY2ggdGhyZWFkIHRvIG11dGV4IGl0cyB1c2FnZSAoYXMgd2l0aAorICogb3RoZXIgb2JqZWN0cykuKQorICogPC9wPgorICogPHA+CisgKiBIZXJlIGlzIHdoYXQgbmVlZHMgdG8gYmUgZG9uZSB0byBpbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UsIGRlcGVuZGluZyBvbiB0aGUKKyAqIHR5cGUgb2YgdGhlIG9iamVjdC4KKyAqIDwvcD4KKyAqIDxoMz48Yj5JbW11dGFibGUgT2JqZWN0czwvYj48L2gzPgorICogPHA+CisgKiBUaGVzZSBhcmUgdGhlIGVhc2llc3QuIFlvdSBqdXN0IHVzZSB0aGUgaW50ZXJmYWNlIHRvIHJlZmxlY3QgdGhhdCwgYnkgYWRkaW5nCisgKiB0aGUgZm9sbG93aW5nOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogIHB1YmxpYyBjbGFzcyBBIGltcGxlbWVudHMgRnJlZXphYmxlIHsKKyAqICAgLi4uCisgKiAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzRnJvemVuKCkge3JldHVybiB0cnVlO30KKyAqICAgcHVibGljIGZpbmFsIE9iamVjdCBmcmVlemUoKSB7cmV0dXJuIHRoaXM7fQorICogICBwdWJsaWMgZmluYWwgT2JqZWN0IGNsb25lQXNUaGF3ZWQoKSB7IHJldHVybiB0aGlzOyB9CisgKiAgIH0KKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIFRoZXNlIGNhbiBiZSBmaW5hbCBtZXRob2RzIGJlY2F1c2Ugc3ViY2xhc3NlcyBvZiBpbW11dGFibGUgb2JqZWN0cyBtdXN0CisgKiB0aGVtc2VsdmVzIGJlIGltbXV0YWJsZS4gKE5vdGU6IDxjb2RlPmZyZWV6ZTwvY29kZT4gaXMgcmV0dXJuaW5nCisgKiA8Y29kZT50aGlzPC9jb2RlPiBmb3IgY2hhaW5pbmcuKQorICogPC9wPgorICogPGgzPjxiPk11dGFibGUgT2JqZWN0czwvYj48L2gzPgorICogPHA+CisgKiBBZGQgYSBwcm90ZWN0ZWQgJ2ZsYWdnaW5nJyBmaWVsZDoKKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqIHByb3RlY3RlZCBib29sZWFuIGltbXV0YWJsZTsKKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIEFkZCB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0Zyb3plbigpIHsKKyAqICAgICAgcmV0dXJuIGZyb3plbjsKKyAqIH07CisgKiAKKyAqIHB1YmxpYyBPYmplY3QgZnJlZXplKCkgeworICogICAgICBmcm96ZW4gPSB0cnVlOworICogICAgICByZXR1cm4gdGhpczsKKyAqIH0KKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIEFkZCBhIDxjb2RlPmNsb25lQXNUaGF3ZWQoKTwvY29kZT4gbWV0aG9kIGZvbGxvd2luZyB0aGUgbm9ybWFsIHBhdHRlcm4gZm9yCisgKiA8Y29kZT5jbG9uZSgpPC9jb2RlPiwgZXhjZXB0IHRoYXQgPGNvZGU+ZnJvemVuPWZhbHNlPC9jb2RlPiBpbiB0aGUgbmV3CisgKiBjbG9uZS4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhlbiB0YWtlIHRoZSBzZXR0ZXJzICh0aGF0IGlzLCBhbnkgbWV0aG9kIHRoYXQgY2FuIGNoYW5nZSB0aGUgaW50ZXJuYWwgc3RhdGUKKyAqIG9mIHRoZSBvYmplY3QpLCBhbmQgYWRkIHRoZSBmb2xsb3dpbmcgYXMgdGhlIGZpcnN0IHN0YXRlbWVudDoKKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqIGlmIChpc0Zyb3plbigpKSB7CisgKiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigmcXVvdDtBdHRlbXB0IHRvIG1vZGlmeSBmcm96ZW4gb2JqZWN0JnF1b3Q7KTsKKyAqIH0KKyAqIDwvcHJlPgorICogCisgKiA8aDQ+PGI+U3ViY2xhc3Npbmc8L2I+PC9oND4KKyAqIDxwPgorICogQW55IHN1YmNsYXNzIG9mIGEgPGNvZGU+RnJlZXphYmxlPC9jb2RlPiB3aWxsIGp1c3QgdXNlIGl0cyBzdXBlcmNsYXNzJ3MKKyAqIGZsYWdnaW5nIGZpZWxkLiBJdCBtdXN0IG92ZXJyaWRlIDxjb2RlPmZyZWV6ZSgpPC9jb2RlPiBhbmQKKyAqIDxjb2RlPmNsb25lQXNUaGF3ZWQoKTwvY29kZT4gdG8gY2FsbCB0aGUgc3VwZXJjbGFzcywgYnV0IG5vcm1hbGx5IGRvZXMgbm90CisgKiBvdmVycmlkZSA8Y29kZT5pc0Zyb3plbigpPC9jb2RlPi4gSXQgbXVzdCB0aGVuIGp1c3QgcGF5IGF0dGVudGlvbiB0byBpdHMKKyAqIG93biBnZXR0ZXJzLCBzZXR0ZXJzIGFuZCBmaWVsZHMuCisgKiA8L3A+CisgKiA8aDQ+PGI+SW50ZXJuYWwgQ2FjaGVzPC9iPjwvaDQ+CisgKiA8cD4KKyAqIEludGVybmFsIGNhY2hlcyBhcmUgY2FzZXMgd2hlcmUgdGhlIG9iamVjdCBpcyBsb2dpY2FsbHkgdW5tb2RpZmllZCwgYnV0CisgKiBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgb2JqZWN0IGNoYW5nZXMuIEZvciBleGFtcGxlLCB0aGVyZSBhcmUgY29uc3QgQysrCisgKiBmdW5jdGlvbnMgdGhhdCBjYXN0IGF3YXkgdGhlIGNvbnN0IG9uIHRoZSAmcXVvdDt0aGlzJnF1b3Q7IHBvaW50ZXIgaW4gb3JkZXIKKyAqIHRvIG1vZGlmeSBhbiBvYmplY3QgY2FjaGUuIFRoZXNlIGNhc2VzIGFyZSBoYW5kbGVkIGJ5IG11dGV4aW5nIHRoZSBpbnRlcm5hbAorICogY2FjaGUgdG8gZW5zdXJlIHRocmVhZC1zYWZldHkuIEZvciBleGFtcGxlLCBzdXBwb3NlIHRoYXQgVW5pY29kZVNldCBoYWQgYW4KKyAqIGludGVybmFsIG1hcmtlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGFjY2Vzc2VkLiBJbiB0aGlzIGNhc2UsIHRoZSBmaWVsZCBpcworICogbm90IGV4dGVybmFsbHkgdmlzaWJsZSwgc28gdGhlIG9ubHkgdGhpbmcgeW91IG5lZWQgdG8gZG8gaXMgdG8gc3luY2hyb25pemUKKyAqIHRoZSBmaWVsZCBmb3IgdGhyZWFkIHNhZmV0eS4KKyAqIDwvcD4KKyAqIDxoND5VbnNhZmUgSW50ZXJuYWwgQWNjZXNzPC9oND4KKyAqIDxwPgorICogSW50ZXJuYWwgZmllbGRzIGFyZSBjYWxsZWQgPGk+c2FmZTwvaT4gaWYgdGhleSBhcmUgZWl0aGVyCisgKiA8Y29kZT5mcm96ZW48L2NvZGU+IG9yIGltbXV0YWJsZSAoc3VjaCBhcyBTdHJpbmcgb3IgcHJpbWl0aXZlcykuIElmIHlvdSd2ZQorICogbmV2ZXIgYWxsb3dlZCBpbnRlcm5hbCBhY2Nlc3MgdG8gdGhlc2UsIHRoZW4geW91IGFyZSBhbGwgZG9uZS4gRm9yIGV4YW1wbGUsCisgKiBjb252ZXJ0aW5nIFVuaWNvZGVTZXQgdG8gYmUgPGNvZGU+RnJlZXphYmxlPC9jb2RlPiBpcyBqdXN0IGFjY29tcGxpc2hlZAorICogd2l0aCB0aGUgYWJvdmUgc3RlcHMuIEJ1dCByZW1lbWJlciB0aGF0IHlvdSA8aT48Yj5oYXZlPC9iPjwvaT4gYWxsb3dlZAorICogYWNjZXNzIHRvIHVuc2FmZSBpbnRlcm5hbHMgaWYgeW91IGhhdmUgYW55IGNvZGUgbGlrZSB0aGUgZm9sbG93aW5nLCBpbiBhCisgKiBnZXR0ZXIsIHNldHRlciwgb3IgY29uc3RydWN0b3I6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiBDb2xsZWN0aW9uIGdldFN0dWZmKCkgeworICogICAgICByZXR1cm4gc3R1ZmY7CisgKiB9IC8vIGNhbGxlciBjb3VsZCBrZWVwIHJlZmVyZW5jZSAmYW1wOyBtb2RpZnkKKyAqIAorICogdm9pZCBzZXRTdHVmZihDb2xsZWN0aW9uIHgpIHsKKyAqICAgICAgc3R1ZmYgPSB4OworICogfSAvLyBjYWxsZXIgY291bGQga2VlcCByZWZlcmVuY2UgJmFtcDsgbW9kaWZ5CisgKiAKKyAqIE15Q2xhc3MoQ29sbGVjdGlvbiB4KSB7CisgKiAgICAgIHN0dWZmID0geDsKKyAqIH0gLy8gY2FsbGVyIGNvdWxkIGtlZXAgcmVmZXJlbmNlICZhbXA7IG1vZGlmeQorICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogVGhlc2UgYWxzbyBpbGx1c3RyYXRlZCBpbiB0aGUgY29kZSBzYW1wbGUgaW4gPGI+QmFja2dyb3VuZDwvYj4gYWJvdmUuCisgKiA8L3A+CisgKiA8cD4KKyAqIFRvIGRlYWwgd2l0aCB1bnNhZmUgaW50ZXJuYWxzLCB0aGUgc2ltcGxlc3QgY291cnNlIG9mIGFjdGlvbiBpcyB0byBkbyB0aGUKKyAqIHdvcmsgaW4gdGhlIDxjb2RlPgorIGZyZWV6ZSgpPC9jb2RlPiBmdW5jdGlvbi4gSnVzdCBtYWtlIGFsbCBvZiB5b3VyIGludGVybmFsCisgKiBmaWVsZHMgZnJvemVuLCBhbmQgc2V0IHRoZSBmcm96ZW4gZmxhZy4gQW55IHN1YnNlcXVlbnQgZ2V0dGVyL3NldHRlciB3aWxsCisgKiB3b3JrIHByb3Blcmx5LiBIZXJlIGlzIGFuIGV4YW1wbGU6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiBwdWJsaWMgT2JqZWN0IGZyZWV6ZSgpIHsKKyAqICAgICAgaWYgKCFmcm96ZW4pIHsKKyAqICAgICAgICAgICAgICBmb28uZnJlZXplKCk7CisgKiAgICAgICAgICAgICAgZnJvemVuID0gdHJ1ZTsKKyAqICAgICAgfQorICogICAgICByZXR1cm4gdGhpczsKKyAqIH0KKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIElmIHRoZSBmaWVsZCBpcyBhIDxjb2RlPkNvbGxlY3Rpb248L2NvZGU+IG9yIDxjb2RlPk1hcDwvY29kZT4sIHRoZW4gdG8KKyAqIG1ha2UgaXQgZnJvemVuIHlvdSBoYXZlIHR3byBjaG9pY2VzLiBJZiB5b3UgaGF2ZSBuZXZlciBhbGxvd2VkIGFjY2VzcyB0byB0aGUKKyAqIGNvbGxlY3Rpb24gZnJvbSBvdXRzaWRlIHlvdXIgb2JqZWN0LCB0aGVuIGp1c3Qgd3JhcCBpdCB0byBwcmV2ZW50IGZ1dHVyZQorICogbW9kaWZpY2F0aW9uLgorICogPC9wPgorICogCisgKiA8cHJlPgorICogem9uZV90b19jb3VudHJ5ID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTWFwKHpvbmVfdG9fY291bnRyeSk7CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBJZiB5b3UgaGF2ZSA8aT5ldmVyPC9pPiBhbGxvd2VkIGFjY2VzcywgdGhlbiBkbyBhIDxjb2RlPmNsb25lKCk8L2NvZGU+CisgKiBiZWZvcmUgd3JhcHBpbmcgaXQuCisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiB6b25lX3RvX2NvdW50cnkgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVNYXAoem9uZV90b19jb3VudHJ5LmNsb25lKCkpOworICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogSWYgYSBjb2xsZWN0aW9uIDxpPihvciBhbnkgb3RoZXIgY29udGFpbmVyIG9mIG9iamVjdHMpPC9pPiBpdHNlbGYgY2FuCisgKiBjb250YWluIG11dGFibGUgb2JqZWN0cywgdGhlbiBmb3IgYSBzYWZlIGNsb25lIHlvdSBuZWVkIHRvIHJlY3Vyc2UgdGhyb3VnaCBpdAorICogdG8gbWFrZSB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaW1tdXRhYmxlLiBUaGUgcmVjdXJzaW5nIGNvZGUgc2hvdWxkIHBpY2sgdGhlCisgKiBtb3N0IHNwZWNpZmljIGNvbGxlY3Rpb24gYXZhaWxhYmxlLCB0byBhdm9pZCB0aGUgbmVjZXNzaXR5IG9mIGxhdGVyCisgKiBkb3duY2FzaW5nLgorICogPC9wPgorICogPGJsb2NrcXVvdGU+CisgKiA8cD4KKyAqIDxiPk5vdGU6IDwvYj5BbiBhbm5veWluZyBmbGF3IGluIEphdmEgaXMgdGhhdCB0aGUgZ2VuZXJpYyBjb2xsZWN0aW9ucywgbGlrZQorICogPGNvZGU+TWFwPC9jb2RlPiBvciA8Y29kZT5TZXQ8L2NvZGU+LCBkb24ndCBoYXZlIGEgPGNvZGU+Y2xvbmUoKTwvY29kZT4KKyAqIG9wZXJhdGlvbi4gV2hlbiB5b3UgZG9uJ3Qga25vdyB0aGUgdHlwZSBvZiB0aGUgY29sbGVjdGlvbiwgdGhlIHNpbXBsZXN0CisgKiBjb3Vyc2UgaXMgdG8ganVzdCBjcmVhdGUgYSBuZXcgY29sbGVjdGlvbjoKKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqIHpvbmVfdG9fY291bnRyeSA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZU1hcChuZXcgSGFzaE1hcCh6b25lX3RvX2NvdW50cnkpKTsKKyAqIDwvcHJlPgorICogCisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICovCitwdWJsaWMgaW50ZXJmYWNlIEZyZWV6YWJsZSBleHRlbmRzIENsb25lYWJsZSB7CisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBvYmplY3QgaGFzIGJlZW4gbG9ja2VkIG9yIG5vdC4KKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRnJvemVuKCk7CisKKyAgICAvKioKKyAgICAgKiBMb2NrcyB0aGUgb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG9iamVjdCBpdHNlbGYuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGZyZWV6ZSgpOworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgZm9yIHRoZSBjbG9uZSBvcGVyYXRpb24uIEFueSBjbG9uZSBpcyBpbml0aWFsbHkgdW5sb2NrZWQuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lQXNUaGF3ZWQoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUwMGIwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5qYXZhCkBAIC0wLDAgKzEsMTU0MyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQml0U2V0OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKKy8vI2VuZGlmCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuWm9uZU1ldGE7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKKworLyoqCisgKiBUaGlzIGNvbnZlbmllbmNlIGNsYXNzIHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBidW5kbGluZyB0b2dldGhlciBkaWZmZXJlbnQKKyAqIGdsb2JhbGl6YXRpb24gcHJlZmVyZW5jZXMuIEl0IGluY2x1ZGVzOgorICogPHVsPgorICogPGxpPkEgbGlzdCBvZiBsb2NhbGVzL2xhbmd1YWdlcyBpbiBwcmVmZXJlbmNlIG9yZGVyPC9saT4KKyAqIDxsaT5BIHRlcnJpdG9yeTwvbGk+CisgKiA8bGk+QSBjdXJyZW5jeTwvbGk+CisgKiA8bGk+QSB0aW1lem9uZTwvbGk+CisgKiA8bGk+QSBjYWxlbmRhcjwvbGk+CisgKiA8bGk+QSBjb2xsYXRvciAoZm9yIGxhbmd1YWdlLXNlbnNpdGl2ZSBzb3J0aW5nLCBzZWFyY2hpbmcsIGFuZCBtYXRjaGluZykuPC9saT4KKyAqIDxsaT5FeHBsaWNpdCBvdmVycmlkZXMgZm9yIGRhdGUvdGltZSBmb3JtYXRzLCBldGMuPC9saT4KKyAqIDwvdWw+CisgKiBUaGUgY2xhc3Mgd2lsbCBoZXVyaXN0aWNhbGx5IGNvbXB1dGUgaW1wbGljaXQsIGhldXJpc3RpYyB2YWx1ZXMgZm9yIHRoZSBhYm92ZQorICogYmFzZWQgb24gYXZhaWxhYmxlIGRhdGEgaWYgZXhwbGljaXQgdmFsdWVzIGFyZSBub3Qgc3VwcGxpZWQuIFRoZXNlIGltcGxpY2l0CisgKiB2YWx1ZXMgY2FuIGJlIHByZXNlbnRlZCB0byB1c2VycyBmb3IgY29uZmlybWF0aW9uLCBvciByZXBsYWNlbWVudCBpZiB0aGUKKyAqIHZhbHVlcyBhcmUgaW5jb3JyZWN0LgorICogPHA+CisgKiBUbyByZXNldCBhbnkgZXhwbGljaXQgZmllbGQgc28gdGhhdCBpdCB3aWxsIGdldCBoZXVyaXN0aWMgdmFsdWVzLCBwYXNzIGluCisgKiBudWxsLiBGb3IgZXhhbXBsZSwgbXlQcmVmZXJlbmNlcy5zZXRMb2NhbGUobnVsbCk7CisgKiA8cD4KKyAqIEFsbCBvZiB0aGUgaGV1cmlzdGljcyBjYW4gYmUgY3VzdG9taXplZCBieSBzdWJjbGFzc2VzLCBieSBvdmVycmlkaW5nCisgKiBnZXRUZXJyaXRvcnkoKSwgZ3Vlc3NDb2xsYXRvcigpLCBldGMuCisgKiA8cD4KKyAqIFRoZSBjbGFzcyBhbHNvIHN1cHBsaWVzIGRpc3BsYXkgbmFtZXMgZm9yIGxhbmd1YWdlcywgc2NyaXB0cywgdGVycml0b3JpZXMsCisgKiBjdXJyZW5jaWVzLCB0aW1lem9uZXMsIGV0Yy4gVGhlc2UgYXJlIGNvbXB1dGVkIGFjY29yZGluZyB0byB0aGUKKyAqIGxvY2FsZS9sYW5ndWFnZSBwcmVmZXJlbmNlIGxpc3QuIFRodXMsIGlmIHRoZSBwcmVmZXJlbmNlIGlzIEJyZXRvbjsgRnJlbmNoOworICogRW5nbGlzaCwgdGhlbiB0aGUgZGlzcGxheSBuYW1lIGZvciBhIGxhbmd1YWdlIHdpbGwgYmUgcmV0dXJuZWQgaW4gQnJldG9uIGlmCisgKiBhdmFpbGFibGUsIG90aGVyd2lzZSBpbiBGcmVuY2ggaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgaW4gRW5nbGlzaC4KKyAqIDxwPgorICogVGhlIGNvZGVzIHVzZWQgdG8gcmVmZXJlbmNlIHRlcnJpdG9yeSwgY3VycmVuY3ksIGV0Yy4gYXJlIGFzIGRlZmluZWQgZWxzZXdoZXJlCisgKiBpbiBJQ1UsIGFuZCBhcmUgdGFrZW4gZnJvbSBDTERSICh3aGljaCByZWZsZWN0cyBSRkMgMzA2NmJpcyB1c2FnZSwgSVNPIDQyMTcsCisgKiBhbmQgdGhlIFRaIFRpbWV6b25lIGRhdGFiYXNlIGlkZW50aWZpZXJzKS4KKyAqIDxwPgorICogPGI+VGhpcyBpcyBhdCBhIHByb3RvdHlwZSBzdGFnZSwgYW5kIGhhcyBub3QgaW5jb3Jwb3JhdGVkIGFsbCB0aGUgZGVzaWduCisgKiBjaGFuZ2VzIHRoYXQgd2Ugd291bGQgbGlrZSB5ZXQ7IGZ1cnRoZXIgZmVlZGJhY2sgaXMgd2VsY29tZS48L2I+PC9wPgorICogPHA+CisgKiBUT0RPOjx1bD4KKyAqIDxsaT5BZGQgSG9saWRheXM8L2xpPgorICogPGxpPkFkZCBjb252ZW5pZW5jZSB0byBnZXQvdGFrZSBMb2NhbGUgYXMgd2VsbCBhcyBVTG9jYWxlLjwvbGk+CisgKiA8bGk+QWRkIExlbmllbnQgZGF0ZXRpbWUgZm9ybWF0dGluZyB3aGVuIHRoYXQgaXMgYXZhaWxhYmxlLjwvbGk+CisgKiA8bGk+U2hvdWxkIHRoaXMgYmUgc2VyaWFsaXphYmxlPzwvbGk+CisgKiA8bGk+T3RoZXIgdXRpbGl0aWVzPzwvbGk+CisgKiA8L3VsPgorICogTm90ZToKKyAqIDx1bD4KKyAqIDxsaT50byBnZXQgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaywgdXNlIHRoZSBjYWxlbmRhciArCisgKiBkaXNwbGF5IG5hbWVzLjwvbGk+CisgKiA8bGk+dG8gZ2V0IHRoZSB3b3JrIGRheXMsIGFzayB0aGUgY2FsZW5kYXIgKHdoZW4gdGhhdCBpcyBhdmFpbGFibGUpLjwvbGk+CisgKiA8bGk+dG8gZ2V0IHBhcGVyc2l6ZSAvIG1lYXN1cmVtZW50IHN5c3RlbS9iaWRpLW9yaWVudGF0aW9uLCBhc2sgdGhlIGxvY2FsZQorICogKHdoZW4gdGhhdCBpcyBhdmFpbGFibGUgdGhlcmUpPC9saT4KKyAqIDxsaT50byBnZXQgdGhlIGZpZWxkIG9yZGVyIGluIGEgZGF0ZSwgYW5kIHdoZXRoZXIgYSB0aW1lIGlzIDI0aG91ciBvciBub3QsCisgKiBhc2sgdGhlIERhdGVGb3JtYXQgKHdoZW4gdGhhdCBpcyBhdmFpbGFibGUgdGhlcmUpPC9saT4KKyAqIDxsaT5pdCB3aWxsIHN1cHBvcnQgSE9TVCBsb2NhbGUgd2hlbiBpdCBiZWNvbWVzIGF2YWlsYWJsZSAoaXQgaXMgYSBzcGVjaWFsCisgKiBsb2NhbGUgdGhhdCB3aWxsIGFzayB0aGUgc2VydmljZXMgdG8gdXNlIHRoZSBob3N0IHBsYXRmb3JtJ3MgdmFsdWVzKS48L2xpPgorICogPC91bD4KKyAqCisgKiBAZHJhZnQgSUNVIDMuNgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgaW1wbGVtZW50cyBGcmVlemFibGUgeworICAgIAorICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKXt9CisgICAgLyoqCisgICAgICogTnVtYmVyIEZvcm1hdCB0eXBlcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgIE5GX05VTUJFUiA9IDAsICAgICAgLy8gTnVtYmVyRm9ybWF0Lk5VTUJFUlNUWUxFCisgICAgICAgIE5GX0NVUlJFTkNZID0gMSwgICAgLy8gTnVtYmVyRm9ybWF0LkNVUlJFTkNZU1RZTEUKKyAgICAgICAgTkZfUEVSQ0VOVCA9IDIsICAgICAvLyBOdW1iZXJGb3JtYXQuUEVSQ0VOVFNUWUxFCisgICAgICAgIE5GX1NDSUVOVElGSUMgPSAzLCAgLy8gTnVtYmVyRm9ybWF0LlNDSUVOVElGSUNTVFlMRQorICAgICAgICBORl9JTlRFR0VSID0gNDsgICAgIC8vIE51bWJlckZvcm1hdC5JTlRFR0VSU1RZTEUKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBORl9MSU1JVCA9IE5GX0lOVEVHRVIgKyAxOworCisgICAgLyoqCisgICAgICogRGF0ZSBGb3JtYXQgdHlwZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIERGX0ZVTEwgPSBEYXRlRm9ybWF0LkZVTEwsICAgICAgLy8gMAorICAgICAgICBERl9MT05HID0gRGF0ZUZvcm1hdC5MT05HLCAgICAgIC8vIDEKKyAgICAgICAgREZfTUVESVVNID0gRGF0ZUZvcm1hdC5NRURJVU0sICAvLyAyCisgICAgICAgIERGX1NIT1JUID0gRGF0ZUZvcm1hdC5TSE9SVCwgICAgLy8gMworICAgICAgICBERl9OT05FID0gNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERl9MSU1JVCA9IERGX05PTkUgKyAxOworCisgICAgLyoqCisgICAgICogRm9yIHNlbGVjdGluZyBhIGNob2ljZSBvZiBkaXNwbGF5IG5hbWVzCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludAorICAgICAgICBJRF9MT0NBTEUgPSAwLAorICAgICAgICBJRF9MQU5HVUFHRSA9IDEsCisgICAgICAgIElEX1NDUklQVCA9IDIsCisgICAgICAgIElEX1RFUlJJVE9SWSA9IDMsCisgICAgICAgIElEX1ZBUklBTlQgPSA0LCAKKyAgICAgICAgSURfS0VZV09SRCA9IDUsCisgICAgICAgIElEX0tFWVdPUkRfVkFMVUUgPSA2LAorICAgICAgICBJRF9DVVJSRU5DWSA9IDcsCisgICAgICAgIElEX0NVUlJFTkNZX1NZTUJPTCA9IDgsCisgICAgICAgIElEX1RJTUVaT05FID0gOTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRF9MSU1JVCA9IElEX1RJTUVaT05FICsgMTsKKworICAgIC8qKgorICAgICAqIEJyZWFrIGl0ZXJhdG9yIHR5cGVzCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIEJJX0NIQVJBQ1RFUiA9IEJyZWFrSXRlcmF0b3IuS0lORF9DSEFSQUNURVIsICAgIC8vIDAKKyAgICAgICAgQklfV09SRCA9IEJyZWFrSXRlcmF0b3IuS0lORF9XT1JELCAgICAgICAgICAgICAgLy8gMQorICAgICAgICBCSV9MSU5FID0gQnJlYWtJdGVyYXRvci5LSU5EX0xJTkUsICAgICAgICAgICAgICAvLyAyCisgICAgICAgIEJJX1NFTlRFTkNFID0gQnJlYWtJdGVyYXRvci5LSU5EX1NFTlRFTkNFLCAgICAgIC8vIDMKKyAgICAgICAgQklfVElUTEUgPSBCcmVha0l0ZXJhdG9yLktJTkRfVElUTEU7ICAgICAgICAgICAgLy8gNAorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJX0xJTUlUID0gQklfVElUTEUgKyAxOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3QuIElmIG90aGVyIGluZm9ybWF0aW9uIGlzCisgICAgICogbm90ICh5ZXQpIGF2YWlsYWJsZSwgdGhpcyBpcyB1c2VkIHRvIHRvIHByb2R1Y2UgYSBkZWZhdWx0IHZhbHVlCisgICAgICogZm9yIHRoZSBhcHByb3ByaWF0ZSB0ZXJyaXRvcnksIGN1cnJlbmN5LCB0aW1lem9uZSwgZXRjLiAgVGhlCisgICAgICogdXNlciBzaG91bGQgYmUgZ2l2ZW4gdGhlIG9wcG9ydHVuaXR5IHRvIGNvcnJlY3QgdGhvc2UgZGVmYXVsdHMKKyAgICAgKiBpbiBjYXNlIHRoZXkgYXJlIGluY29ycmVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaW5wdXRMb2NhbGVzIGxpc3Qgb2YgbG9jYWxlcyBpbiBwcmlvcml0eSBvcmRlciwgZWcgeyJiZSIsICJmciJ9IAorICAgICAqICAgICBmb3IgQnJldG9uIGZpcnN0LCB0aGVuIEZyZW5jaCBpZiB0aGF0IGZhaWxzLgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldExvY2FsZXMoTGlzdCBpbnB1dExvY2FsZXMpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIGxvY2FsZXMgPSBwcm9jZXNzTG9jYWxlcyhpbnB1dExvY2FsZXMpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBjb3B5IG9mIHRoZSBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkgbGlzdAorICAgICAqIAorICAgICAqIEByZXR1cm4gYSBjb3B5IG9mIHRoZSBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkgbGlzdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBMaXN0IGdldExvY2FsZXMoKSB7CisgICAgICAgIExpc3QgcmVzdWx0OworICAgICAgICBpZiAobG9jYWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBndWVzc0xvY2FsZXMoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsgCisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKGxvY2FsZXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIGxvY2FsZXMgaW4gcHJpb3JpdHkgb3JkZXIKKyAgICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4ICgwLi5uKSBvZiB0aGUgZGVzaXJlZCBpdGVtLgorICAgICAqIEByZXR1cm4gZGVzaXJlZCBpdGVtLiBudWxsIGlmIGluZGV4IGlzIG91dCBvZiByYW5nZQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0TG9jYWxlKGludCBpbmRleCkgeworICAgICAgICBMaXN0IGxjbHMgPSBsb2NhbGVzOworICAgICAgICBpZiAobGNscyA9PSBudWxsKSB7CisgICAgICAgICAgICBsY2xzID0gZ3Vlc3NMb2NhbGVzKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBsY2xzLnNpemUoKSkgeworICAgICAgICAgICAgcmV0dXJuIChVTG9jYWxlKWxjbHMuZ2V0KGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSByb3V0aW5lIGZvciBzZXR0aW5nIHRoZSBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkKKyAgICAgKiBsaXN0IGZyb20gYW4gYXJyYXkuCisgICAgICogCisgICAgICogQHNlZSAjc2V0TG9jYWxlcyhMaXN0IGxvY2FsZXMpCisgICAgICogQHBhcmFtIHVMb2NhbGVzIGxpc3Qgb2YgbG9jYWxlcyBpbiBhbiBhcnJheQorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldExvY2FsZXMoVUxvY2FsZVtdIHVMb2NhbGVzKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0TG9jYWxlcyhBcnJheXMuYXNMaXN0KHVMb2NhbGVzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugcm91dGluZSBmb3Igc2V0dGluZyB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5CisgICAgICogbGlzdCBmcm9tIGEgc2luZ2xlIGxvY2FsZS9sYW5ndWFnZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNzZXRMb2NhbGVzKExpc3QgbG9jYWxlcykKKyAgICAgKiBAcGFyYW0gdUxvY2FsZSBzaW5nbGUgbG9jYWxlCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0TG9jYWxlKFVMb2NhbGUgdUxvY2FsZSkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldExvY2FsZXMobmV3IFVMb2NhbGVbXXt1TG9jYWxlfSk7CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHJvdXRpbmUgZm9yIHNldHRpbmcgdGhlIGxvY2FsZSBwcmlvcml0eSBsaXN0IGZyb20KKyAgICAgKiBhbiBBY2NlcHQtTGFuZ3VhZ2Ugc3RyaW5nLgorICAgICAqIEBzZWUgI3NldExvY2FsZXMoTGlzdCBsb2NhbGVzKQorICAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZVN0cmluZyBBY2NlcHQtTGFuZ3VhZ2UgbGlzdCwgYXMgZGVmaW5lZCBieSAKKyAgICAgKiAgICAgU2VjdGlvbiAxNC40IG9mIHRoZSBSRkMgMjYxNiAoSFRUUCAxLjEpCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0TG9jYWxlcyhTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VTdHJpbmcpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgICAgQWNjZXB0LUxhbmd1YWdlID0gIkFjY2VwdC1MYW5ndWFnZSIgIjoiIDEjKCBsYW5ndWFnZS1yYW5nZSBbICI7IiAicSIgIj0iIHF2YWx1ZSBdICkKKyAgICAgICAgICB4IG1hdGNoZXMgeC0uLi4KKyAgICAgICAgKi8KKyAgICAgICAgLy8gcmVvcmRlcnMgaW4gcXVhbGl0eSBvcmRlcgorICAgICAgICAvLyBkb24ndCBjYXJlIHRoYXQgaXQgaXMgbm90IHZlcnkgZWZmaWNpZW50IHJpZ2h0IG5vdworICAgICAgICBNYXRjaGVyIGFjY2VwdE1hdGNoZXIgPSBQYXR0ZXJuLmNvbXBpbGUoIlxccyooWy1fYS16QS1aXSspKDtxPShbLjAtOV0rKSk/XFxzKiIpLm1hdGNoZXIoIiIpOworICAgICAgICBNYXAgcmVvcmRlciA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIFN0cmluZ1tdIHBpZWNlcyA9IGFjY2VwdExhbmd1YWdlU3RyaW5nLnNwbGl0KCIsIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBpZWNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgRG91YmxlIHFWYWx1ZSA9IG5ldyBEb3VibGUoMSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmICghYWNjZXB0TWF0Y2hlci5yZXNldChwaWVjZXNbaV0pLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBxVmFsdWVTdHJpbmcgPSBhY2NlcHRNYXRjaGVyLmdyb3VwKDMpOworICAgICAgICAgICAgICAgIGlmIChxVmFsdWVTdHJpbmcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBxVmFsdWUgPSBuZXcgRG91YmxlKERvdWJsZS5wYXJzZURvdWJsZShxVmFsdWVTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImVsZW1lbnQgJyIgKyBwaWVjZXNbaV0gKyAKKyAgICAgICAgICAgICAgICAgICAgIicgaXMgbm90IG9mIHRoZSBmb3JtICc8bG9jYWxlPns7cT08bnVtYmVyPn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIExpc3QgaXRlbXMgPSAoTGlzdClyZW9yZGVyLmdldChxVmFsdWUpOworICAgICAgICAgICAgaWYgKGl0ZW1zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZW9yZGVyLnB1dChxVmFsdWUsIGl0ZW1zID0gbmV3IExpbmtlZExpc3QoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdGVtcy5hZGQoMCwgYWNjZXB0TWF0Y2hlci5ncm91cCgxKSk7IC8vIHJldmVyc2Ugb3JkZXIsIHdpbGwgcmV2ZXJzZSBhZ2FpbgorICAgICAgICB9CisgICAgICAgIC8vIG5vdyByZWFkIG91dCBpbiByZXZlcnNlIG9yZGVyCisgICAgICAgIExpc3QgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gcmVvcmRlci5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gaXQubmV4dCgpOworICAgICAgICAgICAgTGlzdCBpdGVtcyA9IChMaXN0KXJlb3JkZXIuZ2V0KGtleSk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0MiA9IGl0ZW1zLml0ZXJhdG9yKCk7IGl0Mi5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCgwLCBuZXcgVUxvY2FsZSgoU3RyaW5nKWl0Mi5uZXh0KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0TG9jYWxlcyhyZXN1bHQpOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBnZXQgYSBSZXNvdXJjZUJ1bmRsZSBpbnN0YW5jZSB1c2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lIGJhc2VkIG9uIHRoZSBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkgbGlzdAorICAgICAqIHN0b3JlZCBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiAgCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSwgYSBmdWxseSBxdWFsaWZpZWQKKyAgICAgKiBjbGFzcyBuYW1lCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlIGJhc2VkIG9uIHRoZQorICAgICAqIGxhbmd1YWdlL2xvY2FsZSBwcmlvcml0eSBsaXN0IHN0b3JlZCBpbiB0aGlzIG9iamVjdAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFJlc291cmNlQnVuZGxlIGdldFJlc291cmNlQnVuZGxlKFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICByZXR1cm4gZ2V0UmVzb3VyY2VCdW5kbGUoYmFzZU5hbWUsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGdldCBhIFJlc291cmNlQnVuZGxlIGluc3RhbmNlIHVzaW5nCisgICAgICogdGhlIHNwZWNpZmllZCBiYXNlIG5hbWUgYW5kIGNsYXNzIGxvYWRlciBiYXNlZCBvbiB0aGUgbGFuZ3VhZ2UvbG9jYWxlCisgICAgICogcHJpb3JpdHkgbGlzdCBzdG9yZWQgaW4gdGhpcyBvYmplY3QuCisgICAgICogIAorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkCisgICAgICogY2xhc3MgbmFtZQorICAgICAqIEBwYXJhbSBsb2FkZXIgdGhlIGNsYXNzIG9iamVjdCBmcm9tIHdoaWNoIHRvIGxvYWQgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZSBiYXNlZCBvbiB0aGUKKyAgICAgKiBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkgbGlzdCBzdG9yZWQgaW4gdGhpcyBvYmplY3QKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsIENsYXNzTG9hZGVyIGxvYWRlcikgeworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgdXJiID0gbnVsbDsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGNhbmRpZGF0ZSA9IG51bGw7CisgICAgICAgIFN0cmluZyBhY3R1YWxMb2NhbGVOYW1lID0gbnVsbDsKKyAgICAgICAgTGlzdCBmYWxsYmFja3MgPSBnZXRMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmFsbGJhY2tzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9ICgoVUxvY2FsZSlmYWxsYmFja3MuZ2V0KGkpKS50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGFjdHVhbExvY2FsZU5hbWUgIT0gbnVsbCAmJiBsb2NhbGVOYW1lLmVxdWFscyhhY3R1YWxMb2NhbGVOYW1lKSkgeworICAgICAgICAgICAgICAgIC8vIEFjdHVhbCBsb2NhbGUgbmFtZSBpbiB0aGUgcHJldmlvdXMgcm91bmQgbWF5IGV4YWN0bHkgbWF0Y2hlcworICAgICAgICAgICAgICAgIC8vIHdpdGggdGhlIG5leHQgZmFsbGJhY2sgbG9jYWxlCisgICAgICAgICAgICAgICAgdXJiID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAobG9hZGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgbG9hZGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGFjdHVhbExvY2FsZU5hbWUgPSBjYW5kaWRhdGUuZ2V0VUxvY2FsZSgpLmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFjdHVhbExvY2FsZU5hbWUuZXF1YWxzKGxvY2FsZU5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1cmIgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAodXJiID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIHRoZSBhdmFpbGFibGUgYnVuZGxlIGFzIHRoZSBsYXN0IHJlc29ydAorICAgICAgICAgICAgICAgICAgICAgICAgdXJiID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG1yZSkgeworICAgICAgICAgICAgICAgIGFjdHVhbExvY2FsZU5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh1cmIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ2FuJ3QgZmluZCBidW5kbGUgZm9yIGJhc2UgbmFtZSAiCisgICAgICAgICAgICAgICAgICAgICsgYmFzZU5hbWUsIGJhc2VOYW1lLCAiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVyYjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGVycml0b3J5LCB3aGljaCBpcyBhIHZhbGlkIHRlcnJpdG9yeSBhY2NvcmRpbmcgdG8gZm9yCisgICAgICogUkZDIDMwNjYgKG9yIHN1Y2Nlc3NvcikuICBJZiBub3Qgb3RoZXJ3aXNlIHNldCwgZGVmYXVsdAorICAgICAqIGN1cnJlbmN5IGFuZCB0aW1lem9uZSB2YWx1ZXMgd2lsbCBiZSBzZXQgZnJvbSB0aGlzLiAgVGhlIHVzZXIKKyAgICAgKiBzaG91bGQgYmUgZ2l2ZW4gdGhlIG9wcG9ydHVuaXR5IHRvIGNvcnJlY3QgdGhvc2UgZGVmYXVsdHMgaW4KKyAgICAgKiBjYXNlIHRoZXkgYXJlIGluY29ycmVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGVycml0b3J5IGNvZGUKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRUZXJyaXRvcnkoU3RyaW5nIHRlcnJpdG9yeSkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy50ZXJyaXRvcnkgPSB0ZXJyaXRvcnk7IC8vIGltbXV0YWJsZSwgc28gZG9uJ3QgbmVlZCB0byBjbG9uZQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0ZXJyaXRvcnkgc2V0dGluZy4gSWYgaXQgd2Fzbid0IGV4cGxpY2l0bHkgc2V0LCBpdCBpcworICAgICAqIGNvbXB1dGVkIGZyb20gdGhlIGdlbmVyYWwgbG9jYWxlIHNldHRpbmcuCisgICAgICogCisgICAgICogQHJldHVybiB0ZXJyaXRvcnkgY29kZSwgZXhwbGljaXQgb3IgaW1wbGljaXQuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRlcnJpdG9yeSgpIHsKKyAgICAgICAgaWYgKHRlcnJpdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ3Vlc3NUZXJyaXRvcnkoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGVycml0b3J5OyAvLyBpbW11dGFibGUsIHNvIGRvbid0IG5lZWQgdG8gY2xvbmUKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW5jeSBjb2RlLiBJZiB0aGlzIGhhcyBub3QgYmVlbiBzZXQsIHVzZXMgZGVmYXVsdCBmb3IgdGVycml0b3J5LgorICAgICAqIAorICAgICAqIEBwYXJhbSBjdXJyZW5jeSBWYWxpZCBJU08gNDIxNyBjdXJyZW5jeSBjb2RlLgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldEN1cnJlbmN5KEN1cnJlbmN5IGN1cnJlbmN5KSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmN1cnJlbmN5ID0gY3VycmVuY3k7IC8vIGltbXV0YWJsZSwgc28gZG9uJ3QgbmVlZCB0byBjbG9uZQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBjb3B5IG9mIHRoZSBjdXJyZW5jeSBjb21wdXRlZCBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzLgorICAgICAqIAorICAgICAqIEByZXR1cm4gY3VycmVuY3kgY29kZSwgZXhwbGljaXQgb3IgaW1wbGljaXQuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3kgZ2V0Q3VycmVuY3koKSB7CisgICAgICAgIGlmIChjdXJyZW5jeSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ3Vlc3NDdXJyZW5jeSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjdXJyZW5jeTsgLy8gaW1tdXRhYmxlLCBzbyBkb24ndCBoYXZlIHRvIGNsb25lCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY2FsZW5kYXIuIElmIHRoaXMgaGFzIG5vdCBiZWVuIHNldCwgdXNlcyBkZWZhdWx0IGZvciB0ZXJyaXRvcnkuCisgICAgICogCisgICAgICogQHBhcmFtIGNhbGVuZGFyIGFyYml0cmFyeSBjYWxlbmRhcgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldENhbGVuZGFyKENhbGVuZGFyIGNhbGVuZGFyKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmNhbGVuZGFyID0gKENhbGVuZGFyKSBjYWxlbmRhci5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIGNvcHkgb2YgdGhlIGNhbGVuZGFyIGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MuIAorICAgICAqIAorICAgICAqIEByZXR1cm4gY2FsZW5kYXIgZXhwbGljaXQgb3IgaW1wbGljaXQuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXIoKSB7CisgICAgICAgIGlmIChjYWxlbmRhciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ3Vlc3NDYWxlbmRhcigpOworICAgICAgICB9CisgICAgICAgIENhbGVuZGFyIHRlbXAgPSAoQ2FsZW5kYXIpIGNhbGVuZGFyLmNsb25lKCk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICAgICAgdGVtcC5zZXRUaW1lWm9uZShnZXRUaW1lWm9uZSgpKTsKKyAgICAgICAgdGVtcC5zZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgICAgICByZXR1cm4gdGVtcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lem9uZSBJRC4gIElmIHRoaXMgaGFzIG5vdCBiZWVuIHNldCwgdXNlcyBkZWZhdWx0IGZvciB0ZXJyaXRvcnkuCisgICAgICogCisgICAgICogQHBhcmFtIHRpbWV6b25lIGEgdmFsaWQgVFpJRCAoc2VlIFVUUyMzNSkuCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0VGltZVpvbmUoVGltZVpvbmUgdGltZXpvbmUpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGltZXpvbmUgPSAoVGltZVpvbmUpIHRpbWV6b25lLmNsb25lKCk7IC8vIGNsb25lIGZvciBzYWZldHk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgdGltZXpvbmUuIEl0IHdhcyBlaXRoZXIgZXhwbGljaXRseSBzZXQsIG9yIGlzCisgICAgICogaGV1cmlzdGljYWxseSBjb21wdXRlZCBmcm9tIG90aGVyIHNldHRpbmdzLgorICAgICAqIAorICAgICAqIEByZXR1cm4gdGltZXpvbmUsIGVpdGhlciBpbXBsaWNpdGx5IG9yIGV4cGxpY2l0bHkgc2V0CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKSB7CisgICAgICAgIGlmICh0aW1lem9uZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ3Vlc3NUaW1lWm9uZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVGltZVpvbmUpIHRpbWV6b25lLmNsb25lKCk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBjb3B5IG9mIHRoZSBjb2xsYXRvciBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzLiAKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIGNvbGxhdG9yIGV4cGxpY2l0IG9yIGltcGxpY2l0LgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvbGxhdG9yIGdldENvbGxhdG9yKCkgeworICAgICAgICBpZiAoY29sbGF0b3IgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGd1ZXNzQ29sbGF0b3IoKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIChDb2xsYXRvcikgY29sbGF0b3IuY2xvbmUoKTsgIC8vIGNsb25lIGZvciBzYWZldHkKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiRXJyb3IgaW4gY2xvbmluZyBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhwbGljaXRseSBzZXQgdGhlIGNvbGxhdG9yIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRDb2xsYXRvcihDb2xsYXRvciBjb2xsYXRvcikgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRoaXMuY29sbGF0b3IgPSAoQ29sbGF0b3IpIGNvbGxhdG9yLmNsb25lKCk7IC8vIGNsb25lIGZvciBzYWZldHkgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkVycm9yIGluIGNsb25pbmcgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBjb3B5IG9mIHRoZSBicmVhayBpdGVyYXRvciBmb3IgdGhlIHNwZWNpZmllZCB0eXBlIGFjY29yZGluZyB0byB0aGUKKyAgICAgKiBzZXR0aW5ncy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdHlwZQorICAgICAqICAgICAgICAgIGJyZWFrIHR5cGUgLSBCSV9DSEFSQUNURVIgb3IgQklfV09SRCwgQklfTElORSwgQklfU0VOVEVOQ0UsIEJJX1RJVExFCisgICAgICogQHJldHVybiBicmVhayBpdGVyYXRvciBleHBsaWNpdCBvciBpbXBsaWNpdAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEJyZWFrSXRlcmF0b3IgZ2V0QnJlYWtJdGVyYXRvcihpbnQgdHlwZSkgeworICAgICAgICBpZiAodHlwZSA8IEJJX0NIQVJBQ1RFUiB8fCB0eXBlID49IEJJX0xJTUlUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGJyZWFrIGl0ZXJhdG9yIHR5cGUiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnJlYWtJdGVyYXRvcnMgPT0gbnVsbCB8fCBicmVha0l0ZXJhdG9yc1t0eXBlXSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ3Vlc3NCcmVha0l0ZXJhdG9yKHR5cGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoQnJlYWtJdGVyYXRvcikgYnJlYWtJdGVyYXRvcnNbdHlwZV0uY2xvbmUoKTsgLy8gY2xvbmUgZm9yIHNhZmV0eQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4cGxpY2l0bHkgc2V0IHRoZSBicmVhayBpdGVyYXRvciBmb3IgdGhpcyBvYmplY3QuCisgICAgICogCisgICAgICogQHBhcmFtIHR5cGUKKyAgICAgKiAgICAgICAgICBicmVhayB0eXBlIC0gQklfQ0hBUkFDVEVSIG9yIEJJX1dPUkQsIEJJX0xJTkUsIEJJX1NFTlRFTkNFLCBCSV9USVRMRQorICAgICAqIEBwYXJhbSBpdGVyYXRvciBhIGJyZWFrIGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0QnJlYWtJdGVyYXRvcihpbnQgdHlwZSwgQnJlYWtJdGVyYXRvciBpdGVyYXRvcikgeworICAgICAgICBpZiAodHlwZSA8IEJJX0NIQVJBQ1RFUiB8fCB0eXBlID49IEJJX0xJTUlUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGJyZWFrIGl0ZXJhdG9yIHR5cGUiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3JzID09IG51bGwpCisgICAgICAgICAgICBicmVha0l0ZXJhdG9ycyA9IG5ldyBCcmVha0l0ZXJhdG9yW0JJX0xJTUlUXTsKKyAgICAgICAgYnJlYWtJdGVyYXRvcnNbdHlwZV0gPSAoQnJlYWtJdGVyYXRvcikgaXRlcmF0b3IuY2xvbmUoKTsgLy8gY2xvbmUgZm9yIHNhZmV0eQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGRpc3BsYXkgbmFtZSBmb3IgYW4gSUQ6IGxhbmd1YWdlLCBzY3JpcHQsIHRlcnJpdG9yeSwgY3VycmVuY3ksIHRpbWV6b25lLi4uCisgICAgICogVXNlcyB0aGUgbGFuZ3VhZ2UgcHJpb3JpdHkgbGlzdCB0byBkbyBzby4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaWQgbGFuZ3VhZ2UgY29kZSwgc2NyaXB0IGNvZGUsIC4uLgorICAgICAqIEBwYXJhbSB0eXBlIHNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgSUQ6IElEX0xBTkdVQUdFLCBldGMuCisgICAgICogQHJldHVybiB0aGUgZGlzcGxheSBuYW1lCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgaW50IHR5cGUpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGlkOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gZ2V0TG9jYWxlcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gKFVMb2NhbGUpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmICghaXNBdmFpbGFibGVMb2NhbGUobG9jYWxlLCBUWVBFX0dFTkVSSUMpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgSURfTE9DQUxFOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuZ2V0RGlzcGxheU5hbWUoaWQsIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9MQU5HVUFHRToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShpZCwgbG9jYWxlKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElEX1NDUklQVDoKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoInVuZC0iICsgaWQsIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9URVJSSVRPUlk6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgidW5kLSIgKyBpZCwgbG9jYWxlKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElEX1ZBUklBTlQ6CisgICAgICAgICAgICAgICAgLy8gVE9ETyBmaXggdmFyaWFudCBwYXJzaW5nCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudCgidW5kLVFRLSIgKyBpZCwgbG9jYWxlKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElEX0tFWVdPUkQ6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZChpZCwgbG9jYWxlKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElEX0tFWVdPUkRfVkFMVUU6CisgICAgICAgICAgICAgICAgU3RyaW5nW10gcGFydHMgPSBuZXcgU3RyaW5nWzJdOworICAgICAgICAgICAgICAgIFV0aWxpdHkuc3BsaXQoaWQsJz0nLHBhcnRzKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoInVuZEAiK2lkLCBwYXJ0c1swXSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAvLyBUT0RPIGZpeCB0byB0ZWxsIHdoZW4gc3VjY2Vzc2Z1bAorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXF1YWxzKHBhcnRzWzFdKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElEX0NVUlJFTkNZX1NZTUJPTDoKKyAgICAgICAgICAgIGNhc2UgSURfQ1VSUkVOQ1k6CisgICAgICAgICAgICAgICAgQ3VycmVuY3kgdGVtcCA9IG5ldyBDdXJyZW5jeShpZCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID10ZW1wLmdldE5hbWUobG9jYWxlLCB0eXBlPT1JRF9DVVJSRU5DWSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEN1cnJlbmN5LkxPTkdfTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEN1cnJlbmN5LlNZTUJPTF9OQU1FLCBuZXcgYm9vbGVhblsxXSk7CisgICAgICAgICAgICAgICAgLy8gVE9ETzogaGF2ZSBtZXRob2QgdGhhdCBkb2Vzbid0IHRha2UgcGFyYW1ldGVyLiBBZGQKKyAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiB0byBkZXRlcm1pbmUgd2hldGhlciBzdHJpbmcgaXMgY2hvaWNlCisgICAgICAgICAgICAgICAgLy8gZm9ybWF0LiAgCisgICAgICAgICAgICAgICAgLy8gVE9ETzogaGF2ZSBtZXRob2QgdGhhdCBkb2Vzbid0IHJlcXVpcmUgdXMKKyAgICAgICAgICAgICAgICAvLyB0byBjcmVhdGUgYSBjdXJyZW5jeQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9USU1FWk9ORToKKyAgICAgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGR0ZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ2dnZ2Iixsb2NhbGUpOworICAgICAgICAgICAgICAgIGR0Zi5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZShpZCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGR0Zi5mb3JtYXQobmV3IERhdGUoKSk7CisgICAgICAgICAgICAgICAgLy8gVE9ETywgaGF2ZSBtZXRob2QgdGhhdCBkb2Vzbid0IHJlcXVpcmUgdXMgdG8gY3JlYXRlIGEgdGltZXpvbmUKKyAgICAgICAgICAgICAgICAvLyBmaXggb3RoZXIgaGFja3MKKyAgICAgICAgICAgICAgICAvLyBoYWNrIGZvciBjb3VsZG4ndCBtYXRjaAorICAgICAgICAgICAgICAgIC8vIG5vdGUsIGNvbXBpbGluZyB3aXRoIEZPVU5EQVRJT04gb21pdHMgdGhpcyBjaGVjayBmb3Igbm93CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgIGlmIChiYWRUaW1lWm9uZS5yZXNldChyZXN1bHQpLm1hdGNoZXMoKSkgY29udGludWU7CisvLyNlbmRpZgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbmtub3duIHR5cGU6ICIgKyB0eXBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVE9ETyBuZWVkIGJldHRlciB3YXkgb2Ygc2VlaW5nIGlmIHdlIGZlbGwgYmFjayB0byByb290ISEKKyAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBub3Qgd29yayBhdCBhbGwgZm9yIGxvdHMgb2Ygc3R1ZmYKKyAgICAgICAgICAgIGlmICghaWQuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvLyBUT0RPIHJlbW92ZSBuZWVkIGZvciB0aGlzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWF0Y2hlciBiYWRUaW1lWm9uZSA9IFBhdHRlcm4uY29tcGlsZSgiW0EtWl17Mn18LipcXHNcXChbQS1aXXsyfVxcKSIpLm1hdGNoZXIoIiIpOworLy8jZW5kaWYKKworCisgICAgLyoqCisgICAgICogU2V0IGFuIGV4cGxpY2l0IGRhdGUgZm9ybWF0LiBPdmVycmlkZXMgdGhlIGxvY2FsZSBwcmlvcml0eSBsaXN0IGZvcgorICAgICAqIGEgcGFydGljdWxhciBjb21iaW5hdGlvbiBvZiBkYXRlU3R5bGUgYW5kIHRpbWVTdHlsZS4gREZfTk9ORSBzaG91bGQKKyAgICAgKiBiZSB1c2VkIGlmIGZvciB0aGUgc3R5bGUsIHdoZXJlIG9ubHkgdGhlIGRhdGUgb3IgdGltZSBmb3JtYXQgaW5kaXZpZHVhbGx5CisgICAgICogaXMgYmVpbmcgc2V0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgREZfRlVMTCwgREZfTE9ORywgREZfTUVESVVNLCBERl9TSE9SVCBvciBERl9OT05FCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBERl9GVUxMLCBERl9MT05HLCBERl9NRURJVU0sIERGX1NIT1JUIG9yIERGX05PTkUKKyAgICAgKiBAcGFyYW0gZm9ybWF0IFRoZSBkYXRlIGZvcm1hdAorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldERhdGVGb3JtYXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgRGF0ZUZvcm1hdCBmb3JtYXQpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChkYXRlRm9ybWF0cyA9PSBudWxsKSB7CisgICAgICAgICAgICBkYXRlRm9ybWF0cyA9IG5ldyBEYXRlRm9ybWF0W0RGX0xJTUlUXVtERl9MSU1JVF07CisgICAgICAgIH0KKyAgICAgICAgZGF0ZUZvcm1hdHNbZGF0ZVN0eWxlXVt0aW1lU3R5bGVdID0gKERhdGVGb3JtYXQpIGZvcm1hdC5jbG9uZSgpOyAvLyBmb3Igc2FmZXR5CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBkYXRlIGZvcm1hdCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc2V0dGluZ3MuIElmIHRoZXJlCisgICAgICogaXMgYW4gZXhwbGljaXQgKG5vbi1udWxsKSBkYXRlL3RpbWUgZm9ybWF0IHNldCwgYSBjb3B5IG9mIHRoYXQKKyAgICAgKiBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlLCB0aGUgbGFuZ3VhZ2UgcHJpb3JpdHkgbGlzdCBpcyB1c2VkLgorICAgICAqIERGX05PTkUgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdHlsZSwgd2hlcmUgb25seSB0aGUgZGF0ZSBvcgorICAgICAqIHRpbWUgZm9ybWF0IGluZGl2aWR1YWxseSBpcyBiZWluZyBnb3R0ZW4uCisgICAgICogCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBERl9GVUxMLCBERl9MT05HLCBERl9NRURJVU0sIERGX1NIT1JUIG9yIERGX05PTkUKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIERGX0ZVTEwsIERGX0xPTkcsIERGX01FRElVTSwgREZfU0hPUlQgb3IgREZfTk9ORQorICAgICAqIEByZXR1cm4gYSBEYXRlRm9ybWF0LCBhY2NvcmRpbmcgdG8gdGhlIGFib3ZlIGRlc2NyaXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgaWYgKGRhdGVTdHlsZSA9PSBERl9OT05FICYmIHRpbWVTdHlsZSA9PSBERl9OT05FCisgICAgICAgICAgICAgICAgfHwgZGF0ZVN0eWxlIDwgMCB8fCBkYXRlU3R5bGUgPj0gREZfTElNSVQKKyAgICAgICAgICAgICAgICB8fCB0aW1lU3R5bGUgPCAwIHx8IHRpbWVTdHlsZSA+PSBERl9MSU1JVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBkYXRlIGZvcm1hdCBzdHlsZSBhcmd1bWVudHMiKTsKKyAgICAgICAgfQorICAgICAgICBEYXRlRm9ybWF0IHJlc3VsdCA9IG51bGw7CisgICAgICAgIGlmIChkYXRlRm9ybWF0cyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBkYXRlRm9ybWF0c1tkYXRlU3R5bGVdW3RpbWVTdHlsZV07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSAoRGF0ZUZvcm1hdCkgcmVzdWx0LmNsb25lKCk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICAgICAgICAgIC8vIE5vdCBzdXJlIG92ZXJyaWRpbmcgY29uZmlndXJhdGlvbiBpcyB3aGF0IHdlIHJlYWxseSB3YW50Li4uCisgICAgICAgICAgICByZXN1bHQuc2V0VGltZVpvbmUoZ2V0VGltZVpvbmUoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBndWVzc0RhdGVGb3JtYXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIG51bWJlciBmb3JtYXQgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHNldHRpbmdzLiAgSWYKKyAgICAgKiB0aGVyZSBpcyBhbiBleHBsaWNpdCAobm9uLW51bGwpIG51bWJlciBmb3JtYXQgc2V0LCBhIGNvcHkgb2YKKyAgICAgKiB0aGF0IGlzIHJldHVybmVkLiAgT3RoZXJ3aXNlLCB0aGUgbGFuZ3VhZ2UgcHJpb3JpdHkgbGlzdCBpcworICAgICAqIHVzZWQuCisgICAgICogCisgICAgICogQHBhcmFtIHN0eWxlIE5GX05VTUJFUiwgTkZfQ1VSUkVOQ1ksIE5GX1BFUkNFTlQsIE5GX1NDSUVOVElGSUMsIE5GX0lOVEVHRVIKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVyRm9ybWF0KGludCBzdHlsZSkgeworICAgICAgICBpZiAoc3R5bGUgPCAwIHx8IHN0eWxlID49IE5GX0xJTUlUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIG51bWJlciBmb3JtYXQgdHlwZSIpOworICAgICAgICB9CisgICAgICAgIE51bWJlckZvcm1hdCByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAobnVtYmVyRm9ybWF0cyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBudW1iZXJGb3JtYXRzW3N0eWxlXTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IChOdW1iZXJGb3JtYXQpIHJlc3VsdC5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5IChsYXRlciBvcHRpbWl6ZSkKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGd1ZXNzTnVtYmVyRm9ybWF0KHN0eWxlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgYSBudW1iZXIgZm9ybWF0IGV4cGxpY2l0bHkuIE92ZXJyaWRlcyB0aGUgZ2VuZXJhbCBsb2NhbGUgc2V0dGluZ3MuCisgICAgICogCisgICAgICogQHBhcmFtIHN0eWxlIE5GX05VTUJFUiwgTkZfQ1VSUkVOQ1ksIE5GX1BFUkNFTlQsIE5GX1NDSUVOVElGSUMsIE5GX0lOVEVHRVIKKyAgICAgKiBAcGFyYW0gZm9ybWF0IFRoZSBudW1iZXIgZm9ybWF0CisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0TnVtYmVyRm9ybWF0KGludCBzdHlsZSwgTnVtYmVyRm9ybWF0IGZvcm1hdCkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bWJlckZvcm1hdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgbnVtYmVyRm9ybWF0cyA9IG5ldyBOdW1iZXJGb3JtYXRbTkZfTElNSVRdOworICAgICAgICB9CisgICAgICAgIG51bWJlckZvcm1hdHNbc3R5bGVdID0gKE51bWJlckZvcm1hdCkgZm9ybWF0LmNsb25lKCk7IC8vIGZvciBzYWZldHkKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzdG9yZSB0aGUgb2JqZWN0IHRvIHRoZSBpbml0aWFsIHN0YXRlLgorICAgICAqIAorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHJlc2V0KCkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgbG9jYWxlcyA9IG51bGw7CisgICAgICAgIHRlcnJpdG9yeSA9IG51bGw7CisgICAgICAgIGNhbGVuZGFyID0gbnVsbDsKKyAgICAgICAgY29sbGF0b3IgPSBudWxsOworICAgICAgICBicmVha0l0ZXJhdG9ycyA9IG51bGw7CisgICAgICAgIHRpbWV6b25lID0gbnVsbDsKKyAgICAgICAgY3VycmVuY3kgPSBudWxsOworICAgICAgICBkYXRlRm9ybWF0cyA9IG51bGw7CisgICAgICAgIG51bWJlckZvcm1hdHMgPSBudWxsOworICAgICAgICBpbXBsaWNpdExvY2FsZXMgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIGEgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3Qgc3BlY2lmaWVkIHZpYSA8Y29kZT5zZXRMb2NhbGVzPC9jb2RlPi4KKyAgICAgKiBUaGUgaW5wdXQgbG9jYWxlIGxpc3QgbWF5IGJlIGV4cGFuZGVkIG9yIHJlLW9yZGVyZWQgdG8gcmVwcmVzZW50IHRoZSBwcmlvcml0aXplZAorICAgICAqIGxhbmd1YWdlL2xvY2FsZSBvcmRlciBhY3R1YWxseSB1c2VkIGJ5IHRoaXMgb2JqZWN0IGJ5IHRoZSBhbGdvcml0aG0gZXhhcGxhaW5lZAorICAgICAqIGJlbG93LgorICAgICAqIDxicj4KKyAgICAgKiA8YnI+CisgICAgICogPGI+U3RlcCAxPC9iPjogTW92ZSBsYXRlciBvY2N1cmVuY2Ugb2YgbW9yZSBzcGVjaWZpYyBsb2NhbGUgYmVmb3JlIGVhbGllciBvY2N1cmVuY2Ugb2YgbGVzcworICAgICAqIHNwZWNpZmljIGxvY2FsZS4KKyAgICAgKiA8YnI+CisgICAgICogQmVmb3JlOiBlbiwgZnJfRlIsIGVuX1VTLCBlbl9HQgorICAgICAqIDxicj4KKyAgICAgKiBBZnRlcjogZW5fVVMsIGVuX0dCLCBlbiwgZnJfRlIKKyAgICAgKiA8YnI+CisgICAgICogPGJyPgorICAgICAqIDxiPlN0ZXAgMjwvYj46IEFwcGVuZCBhIGZhbGxiYWNrIGxvY2FsZSB0byBlYWNoIGxvY2FsZS4KKyAgICAgKiA8YnI+CisgICAgICogQmVmb3JlOiBlbl9VUywgZW5fR0IsIGVuLCBmcl9GUgorICAgICAqIDxicj4KKyAgICAgKiBBZnRlcjogZW5fVVMsIGVuLCBlbl9HQiwgZW4sIGVuLCBmcl9GUiwgZnIKKyAgICAgKiA8YnI+CisgICAgICogPGJyPgorICAgICAqIDxiPlN0ZXAgMzwvYj46IFJlbW92ZSBlYWxpZXIgb2NjdXJlbmNlIG9mIGR1cGxpY2F0ZWQgbG9jYWxlIGVudHJpZXMuCisgICAgICogPGJyPgorICAgICAqIEJlZm9yZTogZW5fVVMsIGVuLCBlbl9HQiwgZW4sIGVuLCBmcl9GUiwgZnIKKyAgICAgKiA8YnI+CisgICAgICogQWZ0ZXI6IGVuX1VTLCBlbl9HQiwgZW4sIGZyX0ZSLCBmcgorICAgICAqIDxicj4gCisgICAgICogPGJyPgorICAgICAqIFRoZSBmaW5hbCBsb2NhbGUgbGlzdCBpcyB1c2VkIHRvIHByb2R1Y2UgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgYXBwcm9wcmlhdGUgdGVycml0b3J5LAorICAgICAqIGN1cnJlbmN5LCB0aW1lem9uZSwgZXRjLiAgVGhlIGxpc3QgYWxzbyByZXByZXNlbnRzIHRoZSBsb29rdXAgb3JkZXIgdXNlZCBpbgorICAgICAqIDxjb2RlPmdldFJlc291cmNlQnVuZGxlPC9jb2RlPiBmb3IgdGhpcyBvYmplY3QuICBBIHN1YmNsYXNzIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZAorICAgICAqIHRvIGN1c3RvbWl6ZSB0aGUgYWxnb3JpdGhtIHVzZWQgZm9yIHBvcHVsYXRpbmcgdGhlIGxvY2FsZSBsaXN0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbnB1dExvY2FsZXMgVGhlIGxpc3Qgb2YgaW5wdXQgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIExpc3QgcHJvY2Vzc0xvY2FsZXMoTGlzdCBpbnB1dExvY2FsZXMpIHsKKyAgICAgICAgTGlzdCByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIC8qCisgICAgICAgICAqIFN0ZXAgMTogUmVsb2NhdGUgbGF0ZXIgb2NjdXJlbmNlIG9mIG1vcmUgc3BlY2lmaWMgbG9jYWxlCisgICAgICAgICAqIGJlZm9yZSBlYXJsaWVyIG9jY3VyZW5jZSBvZiBsZXNzIHNwZWNpZmljIGxvY2FsZS4KKyAgICAgICAgICoKKyAgICAgICAgICogRXhhbXBsZToKKyAgICAgICAgICogICBCZWZvcmUgLSBlbl9VUywgZnJfRlIsIHpoLCBlbl9VU19Cb3N0b24sIHpoX1RXLCB6aF9IYW50LCBmcl9DQQorICAgICAgICAgKiAgIEFmdGVyICAtIGVuX1VTX0Jvc3RvbiwgZW5fVVMsIGZyX0ZSLCB6aF9UVywgemhfSGFudCwgemgsIGZyX0NBCisgICAgICAgICAqLworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlucHV0TG9jYWxlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gKFVMb2NhbGUpaW5wdXRMb2NhbGVzLmdldChpKTsKKworICAgICAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gdWxvYy5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgU3RyaW5nIHNjcmlwdCA9IHVsb2MuZ2V0U2NyaXB0KCk7CisgICAgICAgICAgICBTdHJpbmcgY291bnRyeSA9IHVsb2MuZ2V0Q291bnRyeSgpOworICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSB1bG9jLmdldFZhcmlhbnQoKTsKKworICAgICAgICAgICAgYm9vbGVhbiBiSW5zZXJ0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcmVzdWx0LnNpemUoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBsb2NhbGUgaXMgbW9yZSBzcGVjaWZpYworICAgICAgICAgICAgICAgIC8vIHRoYW4gZXhpc3RpbmcgbG9jYWxlIGVudHJpZXMgYWxyZWFkeSBpbnNlcnRlZAorICAgICAgICAgICAgICAgIC8vIGluIHRoZSBkZXN0aW5hdGlvbiBsaXN0CisgICAgICAgICAgICAgICAgVUxvY2FsZSB1ID0gKFVMb2NhbGUpcmVzdWx0LmdldChqKTsKKyAgICAgICAgICAgICAgICBpZiAoIXUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMobGFuZ3VhZ2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IHUuZ2V0U2NyaXB0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGMgPSB1LmdldENvdW50cnkoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdiA9IHUuZ2V0VmFyaWFudCgpOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHMoc2NyaXB0KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwICYmIGMubGVuZ3RoKCkgPT0gMCAmJiB2Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoaiwgdWxvYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBiSW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocy5sZW5ndGgoKSA9PSAwICYmIGMuZXF1YWxzKGNvdW50cnkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNlZSB6aF9IYW50X0hLIGJlZm9yZSB6aF9ISworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChqLCB1bG9jKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJJbnNlcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0Lmxlbmd0aCgpID09IDAgJiYgY291bnRyeS5sZW5ndGgoKSA+IDAgJiYgYy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNlZSB6aF9ISyBiZWZvcmUgemhfSGFudAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChqLCB1bG9jKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJJbnNlcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFjLmVxdWFscyhjb3VudHJ5KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYy5sZW5ndGgoKSA9PSAwICYmIHYubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChqLCB1bG9jKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJJbnNlcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXYuZXF1YWxzKHZhcmlhbnQpICYmIHYubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGosIHVsb2MpOworICAgICAgICAgICAgICAgICAgICBiSW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWJJbnNlcnRlZCkgeworICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGxvY2FsZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh1bG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRPRE86IExvY2FsZSBhbGlhc2VzIG1pZ2h0IGJlIHJlc29sdmVkIGhlcmUKKyAgICAgICAgLy8gRm9yIGV4YW1wbGUsIHpoX0hhbnRfVFcgPSB6aF9UVworCisgICAgICAgIC8qCisgICAgICAgICAqIFN0ZXAgMjogQXBwZW5kIGZhbGxiYWNrIGxvY2FsZXMgZm9yIGVhY2ggZW50cnkKKyAgICAgICAgICoKKyAgICAgICAgICogRXhhbXBsZToKKyAgICAgICAgICogICBCZWZvcmUgLSBlbl9VU19Cb3N0b24sIGVuX1VTLCBmcl9GUiwgemhfVFcsIHpoX0hhbnQsIHpoLCBmcl9DQQorICAgICAgICAgKiAgIEFmdGVyICAtIGVuX1VTX0Jvc3RvbiwgZW5fVVMsIGVuLCBlbl9VUywgZW4sIGZyX0ZSLCBmciwKKyAgICAgICAgICogICAgICAgICAgICB6aF9UVywgem4sIHpoX0hhbnQsIHpoLCB6aCwgZnJfQ0EsIGZyCisgICAgICAgICAqLworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICB3aGlsZSAoaW5kZXggPCByZXN1bHQuc2l6ZSgpKSB7CisgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSAoVUxvY2FsZSlyZXN1bHQuZ2V0KGluZGV4KTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgdWxvYyA9IHVsb2MuZ2V0RmFsbGJhY2soKTsKKyAgICAgICAgICAgICAgICBpZiAodWxvYy5nZXRMYW5ndWFnZSgpLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChpbmRleCwgdWxvYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleCsrOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogU3RlcCAzOiBSZW1vdmUgZWFybGllciBvY2N1cmVuY2Ugb2YgZHVwbGljYXRlZCBsb2NhbGVzCisgICAgICAgICAqIAorICAgICAgICAgKiBFeGFtcGxlOgorICAgICAgICAgKiAgIEJlZm9yZSAtIGVuX1VTX0Jvc3RvbiwgZW5fVVMsIGVuLCBlbl9VUywgZW4sIGZyX0ZSLCBmciwKKyAgICAgICAgICogICAgICAgICAgICB6aF9UVywgem4sIHpoX0hhbnQsIHpoLCB6aCwgZnJfQ0EsIGZyCisgICAgICAgICAqICAgQWZ0ZXIgIC0gZW5fVVNfQm9zdG9uLCBlbl9VUywgZW4sIGZyX0ZSLCB6aF9UVywgemhfSGFudCwKKyAgICAgICAgICogICAgICAgICAgICB6aCwgZnJfQ0EsIGZyCisgICAgICAgICAqLworICAgICAgICBpbmRleCA9IDA7CisgICAgICAgIHdoaWxlIChpbmRleCA8IHJlc3VsdC5zaXplKCkgLSAxKSB7CisgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSAoVUxvY2FsZSlyZXN1bHQuZ2V0KGluZGV4KTsKKyAgICAgICAgICAgIGJvb2xlYW4gYlJlbW92ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBpbmRleCArIDE7IGkgPCByZXN1bHQuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAodWxvYy5lcXVhbHMoKFVMb2NhbGUpcmVzdWx0LmdldChpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGVhbGllciBvbmUKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJlbW92ZShpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGJSZW1vdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFiUmVtb3ZlZCkgeworICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzLgorICAgICAqIDxiPkl0IE1VU1QgcmV0dXJuIGEgJ3NhZmUnIHZhbHVlLAorICAgICAqIG9uZSB3aG9zZSBtb2RpZmljYXRpb24gd2lsbCBub3QgYWZmZWN0IHRoaXMgb2JqZWN0LjwvYj4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlCisgICAgICogQHBhcmFtIHRpbWVTdHlsZQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVGb3JtYXQgZ3Vlc3NEYXRlRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCByZXN1bHQ7CisgICAgICAgIFVMb2NhbGUgZGZMb2NhbGUgPSBnZXRBdmFpbGFibGVMb2NhbGUoVFlQRV9EQVRFRk9STUFUKTsKKyAgICAgICAgaWYgKGRmTG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgCWRmTG9jYWxlID0gVUxvY2FsZS5ST09UOworICAgICAgICB9CisgICAgICAgIGlmICh0aW1lU3R5bGUgPT0gREZfTk9ORSkgeworICAgICAgICAgICAgcmVzdWx0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoZ2V0Q2FsZW5kYXIoKSwgZGF0ZVN0eWxlLCBkZkxvY2FsZSk7CisgICAgICAgIH0gZWxzZSBpZiAoZGF0ZVN0eWxlID09IERGX05PTkUpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGdldENhbGVuZGFyKCksIHRpbWVTdHlsZSwgZGZMb2NhbGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGdldENhbGVuZGFyKCksIGRhdGVTdHlsZSwgdGltZVN0eWxlLCBkZkxvY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzLgorICAgICAqIDxiPkl0IE1VU1QgcmV0dXJuIGEgJ3NhZmUnIHZhbHVlLAorICAgICAqIG9uZSB3aG9zZSBtb2RpZmljYXRpb24gd2lsbCBub3QgYWZmZWN0IHRoaXMgb2JqZWN0LjwvYj4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3R5bGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBOdW1iZXJGb3JtYXQgZ3Vlc3NOdW1iZXJGb3JtYXQoaW50IHN0eWxlKSB7CisgICAgICAgIE51bWJlckZvcm1hdCByZXN1bHQ7CisgICAgICAgIFVMb2NhbGUgbmZMb2NhbGUgPSBnZXRBdmFpbGFibGVMb2NhbGUoVFlQRV9OVU1CRVJGT1JNQVQpOworICAgICAgICBpZiAobmZMb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAJbmZMb2NhbGUgPSBVTG9jYWxlLlJPT1Q7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChzdHlsZSkgeworICAgICAgICBjYXNlIE5GX05VTUJFUjoKKyAgICAgICAgICAgIHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShuZkxvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBORl9TQ0lFTlRJRklDOgorICAgICAgICAgICAgcmVzdWx0ID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShuZkxvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBORl9JTlRFR0VSOgorICAgICAgICAgICAgcmVzdWx0ID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShuZkxvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBORl9QRVJDRU5UOgorICAgICAgICAgICAgcmVzdWx0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShuZkxvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBORl9DVVJSRU5DWToKKyAgICAgICAgICAgIHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKG5mTG9jYWxlKTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRDdXJyZW5jeShnZXRDdXJyZW5jeSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVW5rbm93biBudW1iZXIgZm9ybWF0IHN0eWxlIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzLgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBndWVzc1RlcnJpdG9yeSgpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdDsKKyAgICAgICAgLy8gcGFzcyB0aHJvdWdoIGxvY2FsZXMgdG8gc2VlIGlmIHRoZXJlIGlzIGEgdGVycml0b3J5LgorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gZ2V0TG9jYWxlcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gKFVMb2NhbGUpaXQubmV4dCgpOworICAgICAgICAgICAgcmVzdWx0ID0gbG9jYWxlLmdldENvdW50cnkoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gaWYgbm90LCBndWVzcyBmcm9tIHRoZSBmaXJzdCBsYW5ndWFnZSB0YWcsIG9yIG1heWJlIGZyb20KKyAgICAgICAgLy8gaW50ZXJzZWN0aW9uIG9mIGxhbmd1YWdlcywgZWcgbmwgKyBmciA9PiBCRQorICAgICAgICAvLyBUT0RPOiBmaXggdXNpbmcgcmVhbCBkYXRhCisgICAgICAgIC8vIGZvciBub3csIGp1c3QgdXNlIGZpeGVkIHZhbHVlcworICAgICAgICBVTG9jYWxlIGZpcnN0TG9jYWxlID0gZ2V0TG9jYWxlKDApOworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBmaXJzdExvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgc2NyaXB0ID0gZmlyc3RMb2NhbGUuZ2V0U2NyaXB0KCk7CisgICAgICAgIHJlc3VsdCA9IG51bGw7CisgICAgICAgIGlmIChzY3JpcHQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gKFN0cmluZykgbGFuZ3VhZ2VfdGVycml0b3J5X2hhY2tfbWFwLmdldChsYW5ndWFnZSArICJfIiArIHNjcmlwdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSAoU3RyaW5nKSBsYW5ndWFnZV90ZXJyaXRvcnlfaGFja19tYXAuZ2V0KGxhbmd1YWdlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9ICJVUyI7IC8vIG5lZWQgKnNvbWUqIGRlZmF1bHQKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MKKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBDdXJyZW5jeSBndWVzc0N1cnJlbmN5KCkgeworICAgICAgICByZXR1cm4gQ3VycmVuY3kuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUoInVuZC0iICsgZ2V0VGVycml0b3J5KCkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzCisgICAgICogPGI+SXQgTVVTVCByZXR1cm4gYSAnc2FmZScgdmFsdWUsCisgICAgICogb25lIHdob3NlIG1vZGlmaWNhdGlvbiB3aWxsIG5vdCBhZmZlY3QgdGhpcyBvYmplY3QuPC9iPgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIExpc3QgZ3Vlc3NMb2NhbGVzKCkgeworICAgICAgICBpZiAoaW1wbGljaXRMb2NhbGVzID09IG51bGwpIHsKKyAgICAgICAgICAgIExpc3QgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgICAgIHJlc3VsdC5hZGQoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgaW1wbGljaXRMb2NhbGVzID0gcHJvY2Vzc0xvY2FsZXMocmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW1wbGljaXRMb2NhbGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MuCisgICAgICogPGI+SXQgTVVTVCByZXR1cm4gYSAnc2FmZScgdmFsdWUsCisgICAgICogb25lIHdob3NlIG1vZGlmaWNhdGlvbiB3aWxsIG5vdCBhZmZlY3QgdGhpcyBvYmplY3QuPC9iPgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIENvbGxhdG9yIGd1ZXNzQ29sbGF0b3IoKSB7CisgICAgCVVMb2NhbGUgY29sbExvY2FsZSA9IGdldEF2YWlsYWJsZUxvY2FsZShUWVBFX0NPTExBVE9SKTsKKyAgICAJaWYgKGNvbGxMb2NhbGUgPT0gbnVsbCkgeworICAgIAkJY29sbExvY2FsZSA9IFVMb2NhbGUuUk9PVDsKKyAgICAJfQorICAgIAlyZXR1cm4gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoY29sbExvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHVzZSBkaWZmZXJlbnQgaGV1cmlzdGljcy4KKyAgICAgKiA8Yj5JdCBNVVNUIHJldHVybiBhICdzYWZlJyB2YWx1ZSwKKyAgICAgKiBvbmUgd2hvc2UgbW9kaWZpY2F0aW9uIHdpbGwgbm90IGFmZmVjdCB0aGlzIG9iamVjdC48L2I+CisgICAgICogCisgICAgICogQHBhcmFtIHR5cGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBCcmVha0l0ZXJhdG9yIGd1ZXNzQnJlYWtJdGVyYXRvcihpbnQgdHlwZSkgeworICAgICAgICBCcmVha0l0ZXJhdG9yIGJpdHIgPSBudWxsOworICAgICAgICBVTG9jYWxlIGJya0xvY2FsZSA9IGdldEF2YWlsYWJsZUxvY2FsZShUWVBFX0JSRUFLSVRFUkFUT1IpOworICAgICAgICBpZiAoYnJrTG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgCWJya0xvY2FsZSA9IFVMb2NhbGUuUk9PVDsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBCSV9DSEFSQUNURVI6CisgICAgICAgICAgICBiaXRyID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShicmtMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQklfVElUTEU6CisgICAgICAgICAgICBiaXRyID0gQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKGJya0xvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCSV9XT1JEOgorICAgICAgICAgICAgYml0ciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKGJya0xvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCSV9MSU5FOgorICAgICAgICAgICAgYml0ciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKGJya0xvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCSV9TRU5URU5DRToKKyAgICAgICAgICAgIGJpdHIgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoYnJrTG9jYWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVW5rbm93biBicmVhayBpdGVyYXRvciB0eXBlIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJpdHI7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHVzZSBkaWZmZXJlbnQgaGV1cmlzdGljcy4KKyAgICAgKiA8Yj5JdCBNVVNUIHJldHVybiBhICdzYWZlJyB2YWx1ZSwKKyAgICAgKiBvbmUgd2hvc2UgbW9kaWZpY2F0aW9uIHdpbGwgbm90IGFmZmVjdCB0aGlzIG9iamVjdC48L2I+CisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVGltZVpvbmUgZ3Vlc3NUaW1lWm9uZSgpIHsKKyAgICAgICAgLy8gVE9ETyBmaXggdXNpbmcgcmVhbCBkYXRhCisgICAgICAgIC8vIGZvciBzaW5nbGUtem9uZSBjb3VudHJpZXMsIHBpY2sgdGhhdCB6b25lCisgICAgICAgIC8vIGZvciBvdGhlcnMsIHBpY2sgdGhlIG1vc3QgcG9wdWxvdXMgem9uZQorICAgICAgICAvLyBmb3Igbm93LCBqdXN0IHVzZSBmaXhlZCB2YWx1ZQorICAgICAgICAvLyBOT1RFOiBpbiBhIGZldyBjYXNlcyBjYW4gZG8gYmV0dGVyIGJ5IGxvb2tpbmcgYXQgbGFuZ3VhZ2UuIAorICAgICAgICAvLyBFZyBoYXcrVVMgc2hvdWxkIGdvIHRvIFBhY2lmaWMvSG9ub2x1bHUKKyAgICAgICAgLy8gZnIrQ0Egc2hvdWxkIGdvIHRvIEFtZXJpY2EvTW9udHJlYWwKKyAgICAgICAgU3RyaW5nIHRpbWV6b25lU3RyaW5nID0gKFN0cmluZykgdGVycml0b3J5X3R6aWRfaGFja19tYXAuZ2V0KGdldFRlcnJpdG9yeSgpKTsKKyAgICAgICAgaWYgKHRpbWV6b25lU3RyaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGF0dGVtcHQgPSBab25lTWV0YS5nZXRBdmFpbGFibGVJRHMoZ2V0VGVycml0b3J5KCkpOworICAgICAgICAgICAgaWYgKGF0dGVtcHQubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICB0aW1lem9uZVN0cmluZyA9ICJFdGMvR01UIjsgLy8gZ290dGEgZG8gc29tZXRoaW5nCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgICAgIC8vIHRoaXMgYWxsIG5lZWRzIHRvIGJlIGZpeGVkIHRvIHVzZSByZWFsIGRhdGEuIEJ1dCBmb3Igbm93LCBkbyBzbGlnaHRseSBiZXR0ZXIgYnkgc2tpcHBpbmcgY3J1ZnQKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXR0ZW1wdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ZW1wdFtpXS5pbmRleE9mKCIvIikgPj0gMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpID4gYXR0ZW1wdC5sZW5ndGgpIGkgPSAwOworICAgICAgICAgICAgICAgIHRpbWV6b25lU3RyaW5nID0gYXR0ZW1wdFtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVGltZVpvbmUuZ2V0VGltZVpvbmUodGltZXpvbmVTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MuCisgICAgICogPGI+SXQgTVVTVCByZXR1cm4gYSAnc2FmZScgdmFsdWUsCisgICAgICogb25lIHdob3NlIG1vZGlmaWNhdGlvbiB3aWxsIG5vdCBhZmZlY3QgdGhpcyBvYmplY3QuPC9iPgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIENhbGVuZGFyIGd1ZXNzQ2FsZW5kYXIoKSB7CisgICAgCVVMb2NhbGUgY2FsTG9jYWxlID0gZ2V0QXZhaWxhYmxlTG9jYWxlKFRZUEVfQ0FMRU5EQVIpOworICAgIAlpZiAoY2FsTG9jYWxlID09IG51bGwpIHsKKyAgICAJCWNhbExvY2FsZSA9IFVMb2NhbGUuVVM7CisgICAgCX0KKyAgICAJcmV0dXJuIENhbGVuZGFyLmdldEluc3RhbmNlKGdldFRpbWVab25lKCksIGNhbExvY2FsZSk7CisgICAgfQorICAgIAorICAgIC8vIFBSSVZBVEVTCisgICAgCisgICAgcHJpdmF0ZSBMaXN0IGxvY2FsZXM7CisgICAgcHJpdmF0ZSBTdHJpbmcgdGVycml0b3J5OworICAgIHByaXZhdGUgQ3VycmVuY3kgY3VycmVuY3k7CisgICAgcHJpdmF0ZSBUaW1lWm9uZSB0aW1lem9uZTsKKyAgICBwcml2YXRlIENhbGVuZGFyIGNhbGVuZGFyOworICAgIHByaXZhdGUgQ29sbGF0b3IgY29sbGF0b3I7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yW10gYnJlYWtJdGVyYXRvcnM7CisgICAgcHJpdmF0ZSBEYXRlRm9ybWF0W11bXSBkYXRlRm9ybWF0czsKKyAgICBwcml2YXRlIE51bWJlckZvcm1hdFtdIG51bWJlckZvcm1hdHM7CisgICAgcHJpdmF0ZSBMaXN0IGltcGxpY2l0TG9jYWxlczsKKyAgICAKKyAgICB7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisKKyAgICBwcml2YXRlIFVMb2NhbGUgZ2V0QXZhaWxhYmxlTG9jYWxlKGludCB0eXBlKSB7CisgICAgCUxpc3QgbG9jcyA9IGdldExvY2FsZXMoKTsKKyAgICAJVUxvY2FsZSByZXN1bHQgPSBudWxsOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxvY3Muc2l6ZSgpOyBpKyspIHsKKyAgICAJCVVMb2NhbGUgbCA9IChVTG9jYWxlKWxvY3MuZ2V0KGkpOworICAgICAgICAgICAgaWYgKGlzQXZhaWxhYmxlTG9jYWxlKGwsIHR5cGUpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAJfQorICAgIAlyZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpc0F2YWlsYWJsZUxvY2FsZShVTG9jYWxlIGxvYywgaW50IHR5cGUpIHsKKyAgICAgICAgQml0U2V0IGJpdHMgPSAoQml0U2V0KWF2YWlsYWJsZV9sb2NhbGVzLmdldChsb2MpOworICAgICAgICBpZiAoYml0cyAhPSBudWxsICYmIGJpdHMuZ2V0KHR5cGUpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBBdmFpbGFibGUgbG9jYWxlcyBmb3Igc2VydmljZSB0eXBlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2hNYXAgYXZhaWxhYmxlX2xvY2FsZXMgPSBuZXcgSGFzaE1hcCgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludAorICAgICAgICBUWVBFX0dFTkVSSUMgPSAwLAorICAgIAlUWVBFX0NBTEVOREFSID0gMSwKKyAgICAJVFlQRV9EQVRFRk9STUFUPSAyLAorICAgIAlUWVBFX05VTUJFUkZPUk1BVCA9IDMsCisgICAgCVRZUEVfQ09MTEFUT1IgPSA0LAorICAgIAlUWVBFX0JSRUFLSVRFUkFUT1IgPSA1LAorICAgIAlUWVBFX0xJTUlUID0gVFlQRV9CUkVBS0lURVJBVE9SICsgMTsKKyAgICAJCisgICAgc3RhdGljIHsKKyAgICAgICAgQml0U2V0IGJpdHM7CisgICAgCVVMb2NhbGVbXSBhbGxMb2NhbGVzID0gVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgYWxsTG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgIAkJYml0cyA9IG5ldyBCaXRTZXQoVFlQRV9MSU1JVCk7CisgICAgCQlhdmFpbGFibGVfbG9jYWxlcy5wdXQoYWxsTG9jYWxlc1tpXSwgYml0cyk7CisgICAgICAgICAgICBiaXRzLnNldChUWVBFX0dFTkVSSUMpOworICAgIAl9CisKKyAgICAJVUxvY2FsZVtdIGNhbExvY2FsZXMgPSBDYWxlbmRhci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGNhbExvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAJCWJpdHMgPSAoQml0U2V0KWF2YWlsYWJsZV9sb2NhbGVzLmdldChjYWxMb2NhbGVzW2ldKTsKKyAgICAJCWlmIChiaXRzID09IG51bGwpIHsKKyAgICAgICAgCQliaXRzID0gbmV3IEJpdFNldChUWVBFX0xJTUlUKTsKKyAgICAgICAgCQlhdmFpbGFibGVfbG9jYWxlcy5wdXQoYWxsTG9jYWxlc1tpXSwgYml0cyk7CisgICAgCQl9CisgICAgCQliaXRzLnNldChUWVBFX0NBTEVOREFSKTsKKyAgICAJfQorCisgICAgCVVMb2NhbGVbXSBkYXRlTG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRlTG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgIAkJYml0cyA9IChCaXRTZXQpYXZhaWxhYmxlX2xvY2FsZXMuZ2V0KGRhdGVMb2NhbGVzW2ldKTsKKyAgICAJCWlmIChiaXRzID09IG51bGwpIHsKKyAgICAgICAgCQliaXRzID0gbmV3IEJpdFNldChUWVBFX0xJTUlUKTsKKyAgICAgICAgCQlhdmFpbGFibGVfbG9jYWxlcy5wdXQoYWxsTG9jYWxlc1tpXSwgYml0cyk7CisgICAgCQl9CisgICAgCQliaXRzLnNldChUWVBFX0RBVEVGT1JNQVQpOworICAgIAl9CisKKyAgICAJVUxvY2FsZVtdIG51bUxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Mb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgCQliaXRzID0gKEJpdFNldClhdmFpbGFibGVfbG9jYWxlcy5nZXQobnVtTG9jYWxlc1tpXSk7CisgICAgCQlpZiAoYml0cyA9PSBudWxsKSB7CisgICAgICAgIAkJYml0cyA9IG5ldyBCaXRTZXQoVFlQRV9MSU1JVCk7CisgICAgICAgIAkJYXZhaWxhYmxlX2xvY2FsZXMucHV0KGFsbExvY2FsZXNbaV0sIGJpdHMpOworICAgIAkJfQorICAgIAkJYml0cy5zZXQoVFlQRV9OVU1CRVJGT1JNQVQpOworICAgIAl9CisKKyAgICAJVUxvY2FsZVtdIGNvbGxMb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBjb2xsTG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgIAkJYml0cyA9IChCaXRTZXQpYXZhaWxhYmxlX2xvY2FsZXMuZ2V0KGNvbGxMb2NhbGVzW2ldKTsKKyAgICAJCWlmIChiaXRzID09IG51bGwpIHsKKyAgICAgICAgCQliaXRzID0gbmV3IEJpdFNldChUWVBFX0xJTUlUKTsKKyAgICAgICAgCQlhdmFpbGFibGVfbG9jYWxlcy5wdXQoYWxsTG9jYWxlc1tpXSwgYml0cyk7CisgICAgCQl9CisgICAgCQliaXRzLnNldChUWVBFX0NPTExBVE9SKTsKKyAgICAJfQorCisgICAgCVVMb2NhbGVbXSBicmtMb2NhbGVzID0gQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGJya0xvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAJCWJpdHMgPSAoQml0U2V0KWF2YWlsYWJsZV9sb2NhbGVzLmdldChicmtMb2NhbGVzW2ldKTsKKyAgICAJCWJpdHMuc2V0KFRZUEVfQlJFQUtJVEVSQVRPUik7CisgICAgCX0KKyAgICB9CisKKyAgICAvKiogV0FSTklORzogQWxsIG9mIHRoaXMgZGF0YSBpcyB0ZW1wb3JhcnksIHVudGlsIHdlIHN0YXJ0IGltcG9ydGluZyBmcm9tIENMRFIhISEKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBNYXAgbGFuZ3VhZ2VfdGVycml0b3J5X2hhY2tfbWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrID0geworICAgICAgICB7ImFmIiwgIlpBIn0sCisgICAgICAgIHsiYW0iLCAiRVQifSwKKyAgICAgICAgeyJhciIsICJTQSJ9LAorICAgICAgICB7ImFzIiwgIklOIn0sCisgICAgICAgIHsiYXkiLCAiUEUifSwKKyAgICAgICAgeyJheiIsICJBWiJ9LAorICAgICAgICB7ImJhbCIsICJQSyJ9LAorICAgICAgICB7ImJlIiwgIkJZIn0sCisgICAgICAgIHsiYmciLCAiQkcifSwKKyAgICAgICAgeyJibiIsICJJTiJ9LAorICAgICAgICB7ImJzIiwgIkJBIn0sCisgICAgICAgIHsiY2EiLCAiRVMifSwKKyAgICAgICAgeyJjaCIsICJNUCJ9LAorICAgICAgICB7ImNwZSIsICJTTCJ9LAorICAgICAgICB7ImNzIiwgIkNaIn0sCisgICAgICAgIHsiY3kiLCAiR0IifSwKKyAgICAgICAgeyJkYSIsICJESyJ9LAorICAgICAgICB7ImRlIiwgIkRFIn0sCisgICAgICAgIHsiZHYiLCAiTVYifSwKKyAgICAgICAgeyJkeiIsICJCVCJ9LAorICAgICAgICB7ImVsIiwgIkdSIn0sCisgICAgICAgIHsiZW4iLCAiVVMifSwKKyAgICAgICAgeyJlcyIsICJFUyJ9LAorICAgICAgICB7ImV0IiwgIkVFIn0sCisgICAgICAgIHsiZXUiLCAiRVMifSwKKyAgICAgICAgeyJmYSIsICJJUiJ9LAorICAgICAgICB7ImZpIiwgIkZJIn0sCisgICAgICAgIHsiZmlsIiwgIlBIIn0sCisgICAgICAgIHsiZmoiLCAiRkoifSwKKyAgICAgICAgeyJmbyIsICJGTyJ9LAorICAgICAgICB7ImZyIiwgIkZSIn0sCisgICAgICAgIHsiZ2EiLCAiSUUifSwKKyAgICAgICAgeyJnZCIsICJHQiJ9LAorICAgICAgICB7ImdsIiwgIkVTIn0sCisgICAgICAgIHsiZ24iLCAiUFkifSwKKyAgICAgICAgeyJndSIsICJJTiJ9LAorICAgICAgICB7Imd2IiwgIkdCIn0sCisgICAgICAgIHsiaGEiLCAiTkcifSwKKyAgICAgICAgeyJoZSIsICJJTCJ9LAorICAgICAgICB7ImhpIiwgIklOIn0sCisgICAgICAgIHsiaG8iLCAiUEcifSwKKyAgICAgICAgeyJociIsICJIUiJ9LAorICAgICAgICB7Imh0IiwgIkhUIn0sCisgICAgICAgIHsiaHUiLCAiSFUifSwKKyAgICAgICAgeyJoeSIsICJBTSJ9LAorICAgICAgICB7ImlkIiwgIklEIn0sCisgICAgICAgIHsiaXMiLCAiSVMifSwKKyAgICAgICAgeyJpdCIsICJJVCJ9LAorICAgICAgICB7ImphIiwgIkpQIn0sCisgICAgICAgIHsia2EiLCAiR0UifSwKKyAgICAgICAgeyJrayIsICJLWiJ9LAorICAgICAgICB7ImtsIiwgIkdMIn0sCisgICAgICAgIHsia20iLCAiS0gifSwKKyAgICAgICAgeyJrbiIsICJJTiJ9LAorICAgICAgICB7ImtvIiwgIktSIn0sCisgICAgICAgIHsia29rIiwgIklOIn0sCisgICAgICAgIHsia3MiLCAiSU4ifSwKKyAgICAgICAgeyJrdSIsICJUUiJ9LAorICAgICAgICB7Imt5IiwgIktHIn0sCisgICAgICAgIHsibGEiLCAiVkEifSwKKyAgICAgICAgeyJsYiIsICJMVSJ9LAorICAgICAgICB7ImxuIiwgIkNHIn0sCisgICAgICAgIHsibG8iLCAiTEEifSwKKyAgICAgICAgeyJsdCIsICJMVCJ9LAorICAgICAgICB7Imx2IiwgIkxWIn0sCisgICAgICAgIHsibWFpIiwgIklOIn0sCisgICAgICAgIHsibWVuIiwgIkdOIn0sCisgICAgICAgIHsibWciLCAiTUcifSwKKyAgICAgICAgeyJtaCIsICJNSCJ9LAorICAgICAgICB7Im1rIiwgIk1LIn0sCisgICAgICAgIHsibWwiLCAiSU4ifSwKKyAgICAgICAgeyJtbiIsICJNTiJ9LAorICAgICAgICB7Im1uaSIsICJJTiJ9LAorICAgICAgICB7Im1vIiwgIk1EIn0sCisgICAgICAgIHsibXIiLCAiSU4ifSwKKyAgICAgICAgeyJtcyIsICJNWSJ9LAorICAgICAgICB7Im10IiwgIk1UIn0sCisgICAgICAgIHsibXkiLCAiTU0ifSwKKyAgICAgICAgeyJuYSIsICJOUiJ9LAorICAgICAgICB7Im5iIiwgIk5PIn0sCisgICAgICAgIHsibmQiLCAiWkEifSwKKyAgICAgICAgeyJuZSIsICJOUCJ9LAorICAgICAgICB7Im5pdSIsICJOVSJ9LAorICAgICAgICB7Im5sIiwgIk5MIn0sCisgICAgICAgIHsibm4iLCAiTk8ifSwKKyAgICAgICAgeyJubyIsICJOTyJ9LAorICAgICAgICB7Im5yIiwgIlpBIn0sCisgICAgICAgIHsibnNvIiwgIlpBIn0sCisgICAgICAgIHsibnkiLCAiTVcifSwKKyAgICAgICAgeyJvbSIsICJLRSJ9LAorICAgICAgICB7Im9yIiwgIklOIn0sCisgICAgICAgIHsicGEiLCAiSU4ifSwKKyAgICAgICAgeyJwYXUiLCAiUFcifSwKKyAgICAgICAgeyJwbCIsICJQTCJ9LAorICAgICAgICB7InBzIiwgIlBLIn0sCisgICAgICAgIHsicHQiLCAiQlIifSwKKyAgICAgICAgeyJxdSIsICJQRSJ9LAorICAgICAgICB7InJuIiwgIkJJIn0sCisgICAgICAgIHsicm8iLCAiUk8ifSwKKyAgICAgICAgeyJydSIsICJSVSJ9LAorICAgICAgICB7InJ3IiwgIlJXIn0sCisgICAgICAgIHsic2QiLCAiSU4ifSwKKyAgICAgICAgeyJzZyIsICJDRiJ9LAorICAgICAgICB7InNpIiwgIkxLIn0sCisgICAgICAgIHsic2siLCAiU0sifSwKKyAgICAgICAgeyJzbCIsICJTSSJ9LAorICAgICAgICB7InNtIiwgIldTIn0sCisgICAgICAgIHsic28iLCAiREoifSwKKyAgICAgICAgeyJzcSIsICJDUyJ9LAorICAgICAgICB7InNyIiwgIkNTIn0sCisgICAgICAgIHsic3MiLCAiWkEifSwKKyAgICAgICAgeyJzdCIsICJaQSJ9LAorICAgICAgICB7InN2IiwgIlNFIn0sCisgICAgICAgIHsic3ciLCAiS0UifSwKKyAgICAgICAgeyJ0YSIsICJJTiJ9LAorICAgICAgICB7InRlIiwgIklOIn0sCisgICAgICAgIHsidGVtIiwgIlNMIn0sCisgICAgICAgIHsidGV0IiwgIlRMIn0sCisgICAgICAgIHsidGgiLCAiVEgifSwKKyAgICAgICAgeyJ0aSIsICJFVCJ9LAorICAgICAgICB7InRnIiwgIlRKIn0sCisgICAgICAgIHsidGsiLCAiVE0ifSwKKyAgICAgICAgeyJ0a2wiLCAiVEsifSwKKyAgICAgICAgeyJ0dmwiLCAiVFYifSwKKyAgICAgICAgeyJ0bCIsICJQSCJ9LAorICAgICAgICB7InRuIiwgIlpBIn0sCisgICAgICAgIHsidG8iLCAiVE8ifSwKKyAgICAgICAgeyJ0cGkiLCAiUEcifSwKKyAgICAgICAgeyJ0ciIsICJUUiJ9LAorICAgICAgICB7InRzIiwgIlpBIn0sCisgICAgICAgIHsidWsiLCAiVUEifSwKKyAgICAgICAgeyJ1ciIsICJJTiJ9LAorICAgICAgICB7InV6IiwgIlVaIn0sCisgICAgICAgIHsidmUiLCAiWkEifSwKKyAgICAgICAgeyJ2aSIsICJWTiJ9LAorICAgICAgICB7IndvIiwgIlNOIn0sCisgICAgICAgIHsieGgiLCAiWkEifSwKKyAgICAgICAgeyJ6aCIsICJDTiJ9LAorICAgICAgICB7InpoX0hhbnQiLCAiVFcifSwKKyAgICAgICAgeyJ6dSIsICJaQSJ9LAorICAgICAgICB7ImFhIiwgIkVUIn0sCisgICAgICAgIHsiYnluIiwgIkVSIn0sCisgICAgICAgIHsiZW8iLCAiREUifSwKKyAgICAgICAgeyJnZXoiLCAiRVQifSwKKyAgICAgICAgeyJoYXciLCAiVVMifSwKKyAgICAgICAgeyJpdSIsICJDQSJ9LAorICAgICAgICB7Imt3IiwgIkdCIn0sCisgICAgICAgIHsic2EiLCAiSU4ifSwKKyAgICAgICAgeyJzaCIsICJIUiJ9LAorICAgICAgICB7InNpZCIsICJFVCJ9LAorICAgICAgICB7InN5ciIsICJTWSJ9LAorICAgICAgICB7InRpZyIsICJFUiJ9LAorICAgICAgICB7InR0IiwgIlJVIn0sCisgICAgICAgIHsid2FsIiwgIkVUIn0sICB9OworICAgIHN0YXRpYyB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGFuZ3VhZ2VfdGVycml0b3J5X2hhY2subGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrX21hcC5wdXQobGFuZ3VhZ2VfdGVycml0b3J5X2hhY2tbaV1bMF0sbGFuZ3VhZ2VfdGVycml0b3J5X2hhY2tbaV1bMV0pOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIE1hcCB0ZXJyaXRvcnlfdHppZF9oYWNrX21hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gdGVycml0b3J5X3R6aWRfaGFjayA9IHsKKyAgICAgICAgeyJBUSIsICJBbnRhcmN0aWNhL01jTXVyZG8ifSwKKyAgICAgICAgeyJBUiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyJ9LAorICAgICAgICB7IkFVIiwgIkF1c3RyYWxpYS9TeWRuZXkifSwKKyAgICAgICAgeyJCUiIsICJBbWVyaWNhL1Nhb19QYXVsbyJ9LAorICAgICAgICB7IkNBIiwgIkFtZXJpY2EvVG9yb250byJ9LAorICAgICAgICB7IkNEIiwgIkFmcmljYS9LaW5zaGFzYSJ9LAorICAgICAgICB7IkNMIiwgIkFtZXJpY2EvU2FudGlhZ28ifSwKKyAgICAgICAgeyJDTiIsICJBc2lhL1NoYW5naGFpIn0sCisgICAgICAgIHsiRUMiLCAiQW1lcmljYS9HdWF5YXF1aWwifSwKKyAgICAgICAgeyJFUyIsICJFdXJvcGUvTWFkcmlkIn0sCisgICAgICAgIHsiR0IiLCAiRXVyb3BlL0xvbmRvbiJ9LAorICAgICAgICB7IkdMIiwgIkFtZXJpY2EvR29kdGhhYiJ9LAorICAgICAgICB7IklEIiwgIkFzaWEvSmFrYXJ0YSJ9LAorICAgICAgICB7Ik1MIiwgIkFmcmljYS9CYW1ha28ifSwKKyAgICAgICAgeyJNWCIsICJBbWVyaWNhL01leGljb19DaXR5In0sCisgICAgICAgIHsiTVkiLCAiQXNpYS9LdWFsYV9MdW1wdXIifSwKKyAgICAgICAgeyJOWiIsICJQYWNpZmljL0F1Y2tsYW5kIn0sCisgICAgICAgIHsiUFQiLCAiRXVyb3BlL0xpc2JvbiJ9LAorICAgICAgICB7IlJVIiwgIkV1cm9wZS9Nb3Njb3cifSwKKyAgICAgICAgeyJVQSIsICJFdXJvcGUvS2lldiJ9LAorICAgICAgICB7IlVTIiwgIkFtZXJpY2EvTmV3X1lvcmsifSwKKyAgICAgICAgeyJVWiIsICJBc2lhL1Rhc2hrZW50In0sCisgICAgICAgIHsiUEYiLCAiUGFjaWZpYy9UYWhpdGkifSwKKyAgICAgICAgeyJGTSIsICJQYWNpZmljL0tvc3JhZSJ9LAorICAgICAgICB7IktJIiwgIlBhY2lmaWMvVGFyYXdhIn0sCisgICAgICAgIHsiS1oiLCAiQXNpYS9BbG1hdHkifSwKKyAgICAgICAgeyJNSCIsICJQYWNpZmljL01hanVybyJ9LAorICAgICAgICB7Ik1OIiwgIkFzaWEvVWxhYW5iYWF0YXIifSwKKyAgICAgICAgeyJTSiIsICJBcmN0aWMvTG9uZ3llYXJieWVuIn0sCisgICAgICAgIHsiVU0iLCAiUGFjaWZpYy9NaWR3YXkifSwgICAKKyAgICB9OworICAgIHN0YXRpYyB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVycml0b3J5X3R6aWRfaGFjay5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGVycml0b3J5X3R6aWRfaGFja19tYXAucHV0KHRlcnJpdG9yeV90emlkX2hhY2tbaV1bMF0sdGVycml0b3J5X3R6aWRfaGFja1tpXVsxXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBGcmVlemFibGUgaW1wbG1lbnRhdGlvbgorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBmcm96ZW47CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRnJvemVuKCkgeworICAgICAgICByZXR1cm4gZnJvemVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBmcmVlemUoKSB7CisgICAgICAgIGZyb3plbiA9IHRydWU7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZUFzVGhhd2VkKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHJlc3VsdCA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpIGNsb25lKCk7CisgICAgICAgICAgICByZXN1bHQuZnJvemVuID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyB3aWxsIGFsd2F5cyB3b3JrCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvR3JlZ29yaWFuQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjI4ZjllYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw5MDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YKKyAqIHtAbGluayBDYWxlbmRhcn0KKyAqIGFuZCBwcm92aWRlcyB0aGUgc3RhbmRhcmQgY2FsZW5kYXIgdXNlZCBieSBtb3N0IG9mIHRoZSB3b3JsZC4KKyAqCisgKiA8cD4KKyAqIFRoZSBzdGFuZGFyZCAoR3JlZ29yaWFuKSBjYWxlbmRhciBoYXMgMiBlcmFzLCBCQyBhbmQgQUQuCisgKgorICogPHA+CisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgYSBzaW5nbGUgZGlzY29udGludWl0eSwgd2hpY2ggY29ycmVzcG9uZHMgYnkKKyAqIGRlZmF1bHQgdG8gdGhlIGRhdGUgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB3YXMgaW5zdGl0dXRlZCAoT2N0b2JlciAxNSwgMTU4MgorICogaW4gc29tZSBjb3VudHJpZXMsIGxhdGVyIGluIG90aGVycykuICBUaGUgY3V0b3ZlciBkYXRlIG1heSBiZSBjaGFuZ2VkIGJ5IHRoZQorICogY2FsbGVyIGJ5IGNhbGxpbmcgPGNvZGU+c2V0R3JlZ29yaWFuQ2hhbmdlKCk8L2NvZGU+LgorICoKKyAqIDxwPgorICogSGlzdG9yaWNhbGx5LCBpbiB0aG9zZSBjb3VudHJpZXMgd2hpY2ggYWRvcHRlZCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGZpcnN0LAorICogT2N0b2JlciA0LCAxNTgyIHdhcyB0aHVzIGZvbGxvd2VkIGJ5IE9jdG9iZXIgMTUsIDE1ODIuIFRoaXMgY2FsZW5kYXIgbW9kZWxzCisgKiB0aGlzIGNvcnJlY3RseS4gIEJlZm9yZSB0aGUgR3JlZ29yaWFuIGN1dG92ZXIsIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogaW1wbGVtZW50cyB0aGUgSnVsaWFuIGNhbGVuZGFyLiAgVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBHcmVnb3JpYW4KKyAqIGFuZCB0aGUgSnVsaWFuIGNhbGVuZGFyIGlzIHRoZSBsZWFwIHllYXIgcnVsZS4gVGhlIEp1bGlhbiBjYWxlbmRhciBzcGVjaWZpZXMKKyAqIGxlYXAgeWVhcnMgZXZlcnkgZm91ciB5ZWFycywgd2hlcmVhcyB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIG9taXRzIGNlbnR1cnkKKyAqIHllYXJzIHdoaWNoIGFyZSBub3QgZGl2aXNpYmxlIGJ5IDQwMC4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRzIDxlbT5wcm9sZXB0aWM8L2VtPiBHcmVnb3JpYW4gYW5kCisgKiBKdWxpYW4gY2FsZW5kYXJzLiBUaGF0IGlzLCBkYXRlcyBhcmUgY29tcHV0ZWQgYnkgZXh0cmFwb2xhdGluZyB0aGUgY3VycmVudAorICogcnVsZXMgaW5kZWZpbml0ZWx5IGZhciBiYWNrd2FyZCBhbmQgZm9yd2FyZCBpbiB0aW1lLiBBcyBhIHJlc3VsdCwKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBtYXkgYmUgdXNlZCBmb3IgYWxsIHllYXJzIHRvIGdlbmVyYXRlCisgKiBtZWFuaW5nZnVsIGFuZCBjb25zaXN0ZW50IHJlc3VsdHMuIEhvd2V2ZXIsIGRhdGVzIG9idGFpbmVkIHVzaW5nCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gYXJlIGhpc3RvcmljYWxseSBhY2N1cmF0ZSBvbmx5IGZyb20gTWFyY2ggMSwgNAorICogQUQgb253YXJkLCB3aGVuIG1vZGVybiBKdWxpYW4gY2FsZW5kYXIgcnVsZXMgd2VyZSBhZG9wdGVkLiAgQmVmb3JlIHRoaXMgZGF0ZSwKKyAqIGxlYXAgeWVhciBydWxlcyB3ZXJlIGFwcGxpZWQgaXJyZWd1bGFybHksIGFuZCBiZWZvcmUgNDUgQkMgdGhlIEp1bGlhbgorICogY2FsZW5kYXIgZGlkIG5vdCBldmVuIGV4aXN0LgorICoKKyAqIDxwPgorICogUHJpb3IgdG8gdGhlIGluc3RpdHV0aW9uIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIE5ldyBZZWFyJ3MgRGF5IHdhcworICogTWFyY2ggMjUuIFRvIGF2b2lkIGNvbmZ1c2lvbiwgdGhpcyBjYWxlbmRhciBhbHdheXMgdXNlcyBKYW51YXJ5IDEuIEEgbWFudWFsCisgKiBhZGp1c3RtZW50IG1heSBiZSBtYWRlIGlmIGRlc2lyZWQgZm9yIGRhdGVzIHRoYXQgYXJlIHByaW9yIHRvIHRoZSBHcmVnb3JpYW4KKyAqIGNoYW5nZW92ZXIgYW5kIHdoaWNoIGZhbGwgYmV0d2VlbiBKYW51YXJ5IDEgYW5kIE1hcmNoIDI0LgorICoKKyAqIDxwPlZhbHVlcyBjYWxjdWxhdGVkIGZvciB0aGUgPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmaWVsZCByYW5nZSBmcm9tIDEgdG8KKyAqIDUzLiAgV2VlayAxIGZvciBhIHllYXIgaXMgdGhlIGVhcmxpZXN0IHNldmVuIGRheSBwZXJpb2Qgc3RhcnRpbmcgb24KKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IHRoYXQgY29udGFpbnMgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gZGF5cyBmcm9tIHRoYXQgeWVhci4gIEl0IHRodXMKKyAqIGRlcGVuZHMgb24gdGhlIHZhbHVlcyBvZiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LAorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4sIGFuZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIEphbnVhcnkgMS4KKyAqIFdlZWtzIGJldHdlZW4gd2VlayAxIG9mIG9uZSB5ZWFyIGFuZCB3ZWVrIDEgb2YgdGhlIGZvbGxvd2luZyB5ZWFyIGFyZQorICogbnVtYmVyZWQgc2VxdWVudGlhbGx5IGZyb20gMiB0byA1MiBvciA1MyAoYXMgbmVlZGVkKS4KKworICogPHA+Rm9yIGV4YW1wbGUsIEphbnVhcnkgMSwgMTk5OCB3YXMgYSBUaHVyc2RheS4gIElmCisgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBpcyA8Y29kZT5NT05EQVk8L2NvZGU+IGFuZAorICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiBpcyA0ICh0aGVzZSBhcmUgdGhlIHZhbHVlcworICogcmVmbGVjdGluZyBJU08gODYwMSBhbmQgbWFueSBuYXRpb25hbCBzdGFuZGFyZHMpLCB0aGVuIHdlZWsgMSBvZiAxOTk4IHN0YXJ0cworICogb24gRGVjZW1iZXIgMjksIDE5OTcsIGFuZCBlbmRzIG9uIEphbnVhcnkgNCwgMTk5OC4gIElmLCBob3dldmVyLAorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gaXMgPGNvZGU+U1VOREFZPC9jb2RlPiwgdGhlbiB3ZWVrIDEgb2YgMTk5OAorICogc3RhcnRzIG9uIEphbnVhcnkgNCwgMTk5OCwgYW5kIGVuZHMgb24gSmFudWFyeSAxMCwgMTk5ODsgdGhlIGZpcnN0IHRocmVlIGRheXMKKyAqIG9mIDE5OTggdGhlbiBhcmUgcGFydCBvZiB3ZWVrIDUzIG9mIDE5OTcuCisgKgorICogPHA+VmFsdWVzIGNhbGN1bGF0ZWQgZm9yIHRoZSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBmaWVsZCByYW5nZSBmcm9tIDAgb3IKKyAqIDEgdG8gNCBvciA1LiAgV2VlayAxIG9mIGEgbW9udGggKHRoZSBkYXlzIHdpdGggPGNvZGU+V0VFS19PRl9NT05USCA9CisgKiAxPC9jb2RlPikgaXMgdGhlIGVhcmxpZXN0IHNldCBvZiBhdCBsZWFzdAorICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiBjb250aWd1b3VzIGRheXMgaW4gdGhhdCBtb250aCwKKyAqIGVuZGluZyBvbiB0aGUgZGF5IGJlZm9yZSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPi4gIFVubGlrZQorICogd2VlayAxIG9mIGEgeWVhciwgd2VlayAxIG9mIGEgbW9udGggbWF5IGJlIHNob3J0ZXIgdGhhbiA3IGRheXMsIG5lZWQKKyAqIG5vdCBzdGFydCBvbiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiwgYW5kIHdpbGwgbm90IGluY2x1ZGUgZGF5cyBvZgorICogdGhlIHByZXZpb3VzIG1vbnRoLiAgRGF5cyBvZiBhIG1vbnRoIGJlZm9yZSB3ZWVrIDEgaGF2ZSBhCisgKiA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAwLgorICoKKyAqIDxwPkZvciBleGFtcGxlLCBpZiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBpcyA8Y29kZT5TVU5EQVk8L2NvZGU+CisgKiBhbmQgPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiBpcyA0LCB0aGVuIHRoZSBmaXJzdCB3ZWVrIG9mCisgKiBKYW51YXJ5IDE5OTggaXMgU3VuZGF5LCBKYW51YXJ5IDQgdGhyb3VnaCBTYXR1cmRheSwgSmFudWFyeSAxMC4gIFRoZXNlIGRheXMKKyAqIGhhdmUgYSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAxLiAgVGh1cnNkYXksIEphbnVhcnkgMSB0aHJvdWdoCisgKiBTYXR1cmRheSwgSmFudWFyeSAzIGhhdmUgYSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAwLiAgSWYKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gaXMgY2hhbmdlZCB0byAzLCB0aGVuIEphbnVhcnkgMQorICogdGhyb3VnaCBKYW51YXJ5IDMgaGF2ZSBhIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IG9mIDEuCisgKgorICogPHA+CisgKiA8c3Ryb25nPkV4YW1wbGU6PC9zdHJvbmc+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBnZXQgdGhlIHN1cHBvcnRlZCBpZHMgZm9yIEdNVC0wODowMCAoUGFjaWZpYyBTdGFuZGFyZCBUaW1lKQorICogU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKC04ICogNjAgKiA2MCAqIDEwMDApOworICogLy8gaWYgbm8gaWRzIHdlcmUgcmV0dXJuZWQsIHNvbWV0aGluZyBpcyB3cm9uZy4gZ2V0IG91dC4KKyAqIGlmIChpZHMubGVuZ3RoID09IDApCisgKiAgICAgU3lzdGVtLmV4aXQoMCk7CisgKgorICogIC8vIGJlZ2luIG91dHB1dAorICogU3lzdGVtLm91dC5wcmludGxuKCJDdXJyZW50IFRpbWUiKTsKKyAqCisgKiAvLyBjcmVhdGUgYSBQYWNpZmljIFN0YW5kYXJkIFRpbWUgdGltZSB6b25lCisgKiBTaW1wbGVUaW1lWm9uZSBwZHQgPSBuZXcgU2ltcGxlVGltZVpvbmUoLTggKiA2MCAqIDYwICogMTAwMCwgaWRzWzBdKTsKKyAqCisgKiAvLyBzZXQgdXAgcnVsZXMgZm9yIGRheWxpZ2h0IHNhdmluZ3MgdGltZQorICogcGR0LnNldFN0YXJ0UnVsZShDYWxlbmRhci5BUFJJTCwgMSwgQ2FsZW5kYXIuU1VOREFZLCAyICogNjAgKiA2MCAqIDEwMDApOworICogcGR0LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgLTEsIENhbGVuZGFyLlNVTkRBWSwgMiAqIDYwICogNjAgKiAxMDAwKTsKKyAqCisgKiAvLyBjcmVhdGUgYSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIHRoZSBQYWNpZmljIERheWxpZ2h0IHRpbWUgem9uZQorICogLy8gYW5kIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUKKyAqIENhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHBkdCk7CisgKiBEYXRlIHRyaWFsVGltZSA9IG5ldyBEYXRlKCk7CisgKiBjYWxlbmRhci5zZXRUaW1lKHRyaWFsVGltZSk7CisgKgorICogLy8gcHJpbnQgb3V0IGEgYnVuY2ggb2YgaW50ZXJlc3RpbmcgdGhpbmdzCisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkVSQTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiV0VFS19PRl9NT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFURSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9ZRUFSOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLX0lOX01PTlRIOiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQU1fUE06ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuQU1fUE0pKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSE9VUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVJfT0ZfREFZOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1JTlVURTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSU5VVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSUxMSVNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJaT05FX09GRlNFVDogIgorICogICAgICAgICAgICAgICAgICAgICsgKGNhbGVuZGFyLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRTVF9PRkZTRVQ6ICIKKyAqICAgICAgICAgICAgICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7CisKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQ3VycmVudCBUaW1lLCB3aXRoIGhvdXIgcmVzZXQgdG8gMyIpOworICogY2FsZW5kYXIuY2xlYXIoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOyAvLyBzbyBkb2Vzbid0IG92ZXJyaWRlCisgKiBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuSE9VUiwgMyk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkVSQTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiV0VFS19PRl9NT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFURSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9ZRUFSOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLX0lOX01PTlRIOiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQU1fUE06ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuQU1fUE0pKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSE9VUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVJfT0ZfREFZOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1JTlVURTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSU5VVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSUxMSVNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJaT05FX09GRlNFVDogIgorICogICAgICAgICsgKGNhbGVuZGFyLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vIGluIGhvdXJzCisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRTVF9PRkZTRVQ6ICIKKyAqICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vIGluIGhvdXJzPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8cD4KKyAqIEdyZWdvcmlhbkNhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWdyZWdvcmlhbiI8L2NvZGU+LjwvcD4KKworICogQHNlZSAgICAgICAgICBDYWxlbmRhcgorICogQHNlZSAgICAgICAgICBUaW1lWm9uZQorICogQGF1dGhvciBEYXZpZCBHb2xkc21pdGgsIE1hcmsgRGF2aXMsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgR3JlZ29yaWFuQ2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gOTE5OTM4ODY5NDM1MTA2MjEzN0w7CisKKyAgICAvKgorICAgICAqIEltcGxlbWVudGF0aW9uIE5vdGVzCisgICAgICoKKyAgICAgKiBUaGUgSnVsaWFuIGRheSBudW1iZXIsIGFzIHVzZWQgaGVyZSwgaXMgYSBtb2RpZmllZCBudW1iZXIgd2hpY2ggaGFzIGl0cworICAgICAqIG9uc2V0IGF0IG1pZG5pZ2h0LCByYXRoZXIgdGhhbiBub29uLgorICAgICAqCisgICAgICogVGhlIGVwb2NoIGlzIHRoZSBudW1iZXIgb2YgZGF5cyBvciBtaWxsaXNlY29uZHMgZnJvbSBzb21lIGRlZmluZWQKKyAgICAgKiBzdGFydGluZyBwb2ludC4gVGhlIGVwb2NoIGZvciBqYXZhLnV0aWwuRGF0ZSBpcyB1c2VkIGhlcmU7IHRoYXQgaXMsCisgICAgICogbWlsbGlzZWNvbmRzIGZyb20gSmFudWFyeSAxLCAxOTcwIChHcmVnb3JpYW4pLCBtaWRuaWdodCBVVEMuICBPdGhlcgorICAgICAqIGVwb2NocyB3aGljaCBhcmUgdXNlZCBhcmUgSmFudWFyeSAxLCB5ZWFyIDEgKEdyZWdvcmlhbiksIHdoaWNoIGlzIGRheSAxCisgICAgICogb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgYW5kIERlY2VtYmVyIDMwLCB5ZWFyIDAgKEdyZWdvcmlhbiksIHdoaWNoIGlzCisgICAgICogZGF5IDEgb2YgdGhlIEp1bGlhbiBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIFdlIGltcGxlbWVudCB0aGUgcHJvbGVwdGljIEp1bGlhbiBhbmQgR3JlZ29yaWFuIGNhbGVuZGFycy4gIFRoaXMgbWVhbnMgd2UKKyAgICAgKiBpbXBsZW1lbnQgdGhlIG1vZGVybiBkZWZpbml0aW9uIG9mIHRoZSBjYWxlbmRhciBldmVuIHRob3VnaCB0aGUKKyAgICAgKiBoaXN0b3JpY2FsIHVzYWdlIGRpZmZlcnMuICBGb3IgZXhhbXBsZSwgaWYgdGhlIEdyZWdvcmlhbiBjaGFuZ2UgaXMgc2V0CisgICAgICogdG8gbmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpLCB3ZSBoYXZlIGEgcHVyZSBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2gKKyAgICAgKiBsYWJlbHMgZGF0ZXMgcHJlY2VkaW5nIHRoZSBpbnZlbnRpb24gb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBpbiAxNTgyIGFzCisgICAgICogaWYgdGhlIGNhbGVuZGFyIGV4aXN0ZWQgdGhlbi4KKyAgICAgKgorICAgICAqIExpa2V3aXNlLCB3aXRoIHRoZSBKdWxpYW4gY2FsZW5kYXIsIHdlIGFzc3VtZSBhIGNvbnNpc3RlbnQgNC15ZWFyIGxlYXAKKyAgICAgKiBydWxlLCBldmVuIHRob3VnaCB0aGUgaGlzdG9yaWNhbCBwYXR0ZXJuIG9mIGxlYXAgeWVhcnMgaXMgaXJyZWd1bGFyLAorICAgICAqIGJlaW5nIGV2ZXJ5IDMgeWVhcnMgZnJvbSA0NSBCQyB0aHJvdWdoIDkgQkMsIHRoZW4gZXZlcnkgNCB5ZWFycyBmcm9tIDggQUQKKyAgICAgKiBvbndhcmRzLCB3aXRoIG5vIGxlYXAgeWVhcnMgaW4tYmV0d2Vlbi4gIFRodXMgZGF0ZSBjb21wdXRhdGlvbnMgYW5kCisgICAgICogZnVuY3Rpb25zIHN1Y2ggYXMgaXNMZWFwWWVhcigpIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgaGlzdG9yaWNhbGx5CisgICAgICogYWNjdXJhdGUuCisgICAgICoKKyAgICAgKiBHaXZlbiB0aGF0IG1pbGxpc2Vjb25kcyBhcmUgYSBsb25nLCBkYXkgbnVtYmVycyBzdWNoIGFzIEp1bGlhbiBkYXkKKyAgICAgKiBudW1iZXJzLCBHcmVnb3JpYW4gb3IgSnVsaWFuIGNhbGVuZGFyIGRheXMsIG9yIGVwb2NoIGRheXMsIGFyZSBhbHNvCisgICAgICogbG9uZ3MuIFllYXJzIGNhbiBmaXQgaW50byBhbiBpbnQuCisgICAgICovCisKKy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQ2xhc3MgVmFyaWFibGVzCisvLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5FUkE8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiB0aGUgcGVyaW9kIGJlZm9yZSB0aGUgY29tbW9uIGVyYSAoYmVmb3JlIENocmlzdCksIGFsc28ga25vd24gYXMgQkNFLgorICAgICAqIFRoZSBzZXF1ZW5jZSBvZiB5ZWFycyBhdCB0aGUgdHJhbnNpdGlvbiBmcm9tIDxjb2RlPkJDPC9jb2RlPiB0byA8Y29kZT5BRDwvY29kZT4gaXMKKyAgICAgKiAuLi4sIDIgQkMsIDEgQkMsIDEgQUQsIDIgQUQsLi4uCisgICAgICogQHNlZSBDYWxlbmRhciNFUkEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogdGhlIGNvbW1vbiBlcmEgKEFubm8gRG9taW5pKSwgYWxzbyBrbm93biBhcyBDRS4KKyAgICAgKiBUaGUgc2VxdWVuY2Ugb2YgeWVhcnMgYXQgdGhlIHRyYW5zaXRpb24gZnJvbSA8Y29kZT5CQzwvY29kZT4gdG8gPGNvZGU+QUQ8L2NvZGU+IGlzCisgICAgICogLi4uLCAyIEJDLCAxIEJDLCAxIEFELCAyIEFELC4uLgorICAgICAqIEBzZWUgQ2FsZW5kYXIjRVJBCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUQgPSAxOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVQT0NIX1lFQVIgPSAxOTcwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W11bXSBNT05USF9DT1VOVCA9IHsKKyAgICAgICAgLy9sZW4gbGVuMiAgIHN0ICBzdDIKKyAgICAgICAgeyAgMzEsICAzMSwgICAwLCAgIDAgfSwgLy8gSmFuCisgICAgICAgIHsgIDI4LCAgMjksICAzMSwgIDMxIH0sIC8vIEZlYgorICAgICAgICB7ICAzMSwgIDMxLCAgNTksICA2MCB9LCAvLyBNYXIKKyAgICAgICAgeyAgMzAsICAzMCwgIDkwLCAgOTEgfSwgLy8gQXByCisgICAgICAgIHsgIDMxLCAgMzEsIDEyMCwgMTIxIH0sIC8vIE1heQorICAgICAgICB7ICAzMCwgIDMwLCAxNTEsIDE1MiB9LCAvLyBKdW4KKyAgICAgICAgeyAgMzEsICAzMSwgMTgxLCAxODIgfSwgLy8gSnVsCisgICAgICAgIHsgIDMxLCAgMzEsIDIxMiwgMjEzIH0sIC8vIEF1ZworICAgICAgICB7ICAzMCwgIDMwLCAyNDMsIDI0NCB9LCAvLyBTZXAKKyAgICAgICAgeyAgMzEsICAzMSwgMjczLCAyNzQgfSwgLy8gT2N0CisgICAgICAgIHsgIDMwLCAgMzAsIDMwNCwgMzA1IH0sIC8vIE5vdgorICAgICAgICB7ICAzMSwgIDMxLCAzMzQsIDMzNSB9ICAvLyBEZWMKKyAgICAgICAgLy8gbGVuICBsZW5ndGggb2YgbW9udGgKKyAgICAgICAgLy8gbGVuMiBsZW5ndGggb2YgbW9udGggaW4gYSBsZWFwIHllYXIKKyAgICAgICAgLy8gc3QgICBkYXlzIGluIHllYXIgYmVmb3JlIHN0YXJ0IG9mIG1vbnRoCisgICAgICAgIC8vIHN0MiAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBtb250aCBpbiBsZWFwIHllYXIKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIE9sZCB5ZWFyIGxpbWl0cyB3ZXJlIGxlYXN0IG1heCAyOTIyNjkwNTQsIG1heCAyOTIyNzg5OTQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vIE1pbmltdW0gIEdyZWF0ZXN0ICAgIExlYXN0ICBNYXhpbXVtCisgICAgICAgIC8vICAgICAgICAgICBNaW5pbXVtICBNYXhpbXVtCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICAxLCAgICAgICAxIH0sIC8vIEVSQQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgNTgyODk2MywgNTgzODI3MCB9LCAvLyBZRUFSCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgIDExLCAgICAgIDExIH0sIC8vIE1PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDUyLCAgICAgIDUzIH0sIC8vIFdFRUtfT0ZfWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgNCwgICAgICAgNiB9LCAvLyBXRUVLX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDI4LCAgICAgIDMxIH0sIC8vIERBWV9PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgIDM2NSwgICAgIDM2NiB9LCAvLyBEQVlfT0ZfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfV0VFSworICAgICAgICB7ICAgICAgIC0xLCAgICAgICAtMSwgICAgICAgNCwgICAgICAgNiB9LCAvLyBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBBTV9QTQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVJfT0ZfREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTlVURQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWk9ORV9PRkZTRVQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRFNUX09GRlNFVAorICAgICAgICB7IC01ODM4MjcwLCAtNTgzODI3MCwgNTgyODk2NCwgNTgzODI3MSB9LCAvLyBZRUFSX1dPWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBET1dfTE9DQUwKKyAgICAgICAgeyAtNTgzODI2OSwgLTU4MzgyNjksIDU4Mjg5NjMsIDU4MzgyNzAgfSwgLy8gRVhURU5ERURfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBKVUxJQU5fREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05EU19JTl9EQVkKKyAgICB9OworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICB9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gSW5zdGFuY2UgVmFyaWFibGVzCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIFRoZSBwb2ludCBhdCB3aGljaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHJ1bGVzIGFyZSB1c2VkLCBtZWFzdXJlZCBpbgorICAgICAqIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBzdGFuZGFyZCBlcG9jaC4gIERlZmF1bHQgaXMgT2N0b2JlciAxNSwgMTU4MgorICAgICAqIChHcmVnb3JpYW4pIDAwOjAwOjAwIFVUQyBvciAtMTIyMTkyOTI4MDAwMDBMLiAgRm9yIHRoaXMgdmFsdWUsIE9jdG9iZXIgNCwKKyAgICAgKiAxNTgyIChKdWxpYW4pIGlzIGZvbGxvd2VkIGJ5IE9jdG9iZXIgMTUsIDE1ODIgKEdyZWdvcmlhbikuICBUaGlzCisgICAgICogY29ycmVzcG9uZHMgdG8gSnVsaWFuIGRheSBudW1iZXIgMjI5OTE2MS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGdyZWdvcmlhbkN1dG92ZXIgPSAtMTIyMTkyOTI4MDAwMDBMOworCisgICAgLyoqCisgICAgICogSnVsaWFuIGRheSBudW1iZXIgb2YgdGhlIEdyZWdvcmlhbiBjdXRvdmVyLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBjdXRvdmVySnVsaWFuRGF5ID0gMjI5OTE2MTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgeWVhciBvZiB0aGUgZ3JlZ29yaWFuQ3V0b3Zlciwgd2l0aCAwIHJlcHJlc2VudGluZworICAgICAqIDEgQkMsIC0xIHJlcHJlc2VudGluZyAyIEJDLCBldGMuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gMTU4MjsKKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheSgpIGFuZCBoYW5kbGVDb21wdXRlTW9udGhTdGFydCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHRyYW5zaWVudCBwcm90ZWN0ZWQgYm9vbGVhbiBpc0dyZWdvcmlhbjsKKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheSgpIGFuZCBoYW5kbGVDb21wdXRlTW9udGhTdGFydCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHRyYW5zaWVudCBwcm90ZWN0ZWQgYm9vbGVhbiBpbnZlcnRHcmVnb3JpYW47CisKKy8vLy8vLy8vLy8vLy8vLworLy8gQ29uc3RydWN0b3JzCisvLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IEdyZWdvcmlhbkNhbGVuZGFyIHVzaW5nIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKCkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHRoaXMoem9uZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHNldChFUkEsIEFEKTsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZAorICAgICAqIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQKKyAgICAgKiBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgc2V0KEVSQSwgQUQpOworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGhvdXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBIT1VSX09GX0RBWSB0aW1lIGZpZWxkCisgICAgICogaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtaW51dGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNSU5VVEUgdGltZSBmaWVsZAorICAgICAqIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gc2Vjb25kIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgU0VDT05EIHRpbWUgZmllbGQKKyAgICAgKiBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgc2V0KEVSQSwgQUQpOworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHNldChTRUNPTkQsIHNlY29uZCk7CisgICAgfQorCisvLy8vLy8vLy8vLy8vLy8vLworLy8gUHVibGljIG1ldGhvZHMKKy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBHcmVnb3JpYW5DYWxlbmRhciBjaGFuZ2UgZGF0ZS4gVGhpcyBpcyB0aGUgcG9pbnQgd2hlbiB0aGUgc3dpdGNoCisgICAgICogZnJvbSBKdWxpYW4gZGF0ZXMgdG8gR3JlZ29yaWFuIGRhdGVzIG9jY3VycmVkLiBEZWZhdWx0IGlzIE9jdG9iZXIgMTUsCisgICAgICogMTU4Mi4gUHJldmlvdXMgdG8gdGhpcywgZGF0ZXMgd2lsbCBiZSBpbiB0aGUgSnVsaWFuIGNhbGVuZGFyLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBhIHB1cmUgSnVsaWFuIGNhbGVuZGFyLCBzZXQgdGhlIGNoYW5nZSBkYXRlIHRvCisgICAgICogPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+LiAgVG8gb2J0YWluIGEgcHVyZSBHcmVnb3JpYW4gY2FsZW5kYXIsCisgICAgICogc2V0IHRoZSBjaGFuZ2UgZGF0ZSB0byA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZ2l2ZW4gR3JlZ29yaWFuIGN1dG92ZXIgZGF0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcmVnb3JpYW5DaGFuZ2UoRGF0ZSBkYXRlKSB7CisgICAgICAgIGdyZWdvcmlhbkN1dG92ZXIgPSBkYXRlLmdldFRpbWUoKTsKKworICAgICAgICAvLyBJZiB0aGUgY3V0b3ZlciBoYXMgYW4gZXh0cmVtZSB2YWx1ZSwgdGhlbiBjcmVhdGUgYSBwdXJlCisgICAgICAgIC8vIEdyZWdvcmlhbiBvciBwdXJlIEp1bGlhbiBjYWxlbmRhciBieSBnaXZpbmcgdGhlIGN1dG92ZXIgeWVhciBhbmQKKyAgICAgICAgLy8gSkQgZXh0cmVtZSB2YWx1ZXMuCisgICAgICAgIGlmIChncmVnb3JpYW5DdXRvdmVyIDw9IE1JTl9NSUxMSVMpIHsKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gY3V0b3Zlckp1bGlhbkRheSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICB9IGVsc2UgaWYgKGdyZWdvcmlhbkN1dG92ZXIgPj0gTUFYX01JTExJUykgeworICAgICAgICAgICAgZ3JlZ29yaWFuQ3V0b3ZlclllYXIgPSBjdXRvdmVySnVsaWFuRGF5ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBQcmVjb21wdXRlIHR3byBpbnRlcm5hbCB2YXJpYWJsZXMgd2hpY2ggd2UgdXNlIHRvIGRvIHRoZSBhY3R1YWwKKyAgICAgICAgICAgIC8vIGN1dG92ZXIgY29tcHV0YXRpb25zLiAgVGhlc2UgYXJlIHRoZSBKdWxpYW4gZGF5IG9mIHRoZSBjdXRvdmVyCisgICAgICAgICAgICAvLyBhbmQgdGhlIGN1dG92ZXIgeWVhci4KKyAgICAgICAgICAgIGN1dG92ZXJKdWxpYW5EYXkgPSAoaW50KSBmbG9vckRpdmlkZShncmVnb3JpYW5DdXRvdmVyLCBPTkVfREFZKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29udmVydCBjdXRvdmVyIG1pbGxpcyB0byBleHRlbmRlZCB5ZWFyCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoZ2V0VGltZVpvbmUoKSk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gY2FsLmdldChFWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIEdyZWdvcmlhbiBDYWxlbmRhciBjaGFuZ2UgZGF0ZS4gIFRoaXMgaXMgdGhlIHBvaW50IHdoZW4gdGhlCisgICAgICogc3dpdGNoIGZyb20gSnVsaWFuIGRhdGVzIHRvIEdyZWdvcmlhbiBkYXRlcyBvY2N1cnJlZC4gRGVmYXVsdCBpcworICAgICAqIE9jdG9iZXIgMTUsIDE1ODIuIFByZXZpb3VzIHRvIHRoaXMsIGRhdGVzIHdpbGwgYmUgaW4gdGhlIEp1bGlhbgorICAgICAqIGNhbGVuZGFyLgorICAgICAqIEByZXR1cm4gdGhlIEdyZWdvcmlhbiBjdXRvdmVyIGRhdGUgZm9yIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIERhdGUgZ2V0R3JlZ29yaWFuQ2hhbmdlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUoZ3JlZ29yaWFuQ3V0b3Zlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhci4gUmV0dXJucyB0cnVlIGlmIHRoZQorICAgICAqIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXIuCisgICAgICogQHBhcmFtIHllYXIgdGhlIGdpdmVuIHllYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNMZWFwWWVhcihpbnQgeWVhcikgeworICAgICAgICByZXR1cm4geWVhciA+PSBncmVnb3JpYW5DdXRvdmVyWWVhciA/CisgICAgICAgICAgICAoKHllYXIlNCA9PSAwKSAmJiAoKHllYXIlMTAwICE9IDApIHx8ICh5ZWFyJTQwMCA9PSAwKSkpIDogLy8gR3JlZ29yaWFuCisgICAgICAgICAgICAoeWVhciU0ID09IDApOyAvLyBKdWxpYW4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIENhbGVuZGFyIG9iamVjdCBpcyBlcXVpdmFsZW50IHRvIHRoaXMKKyAgICAgKiBvbmUuICBDYWxlbmRhciBvdmVycmlkZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyICAgCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFcXVpdmFsZW50VG8oQ2FsZW5kYXIgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmlzRXF1aXZhbGVudFRvKG90aGVyKSAmJgorICAgICAgICAgICAgZ3JlZ29yaWFuQ3V0b3ZlciA9PSAoKEdyZWdvcmlhbkNhbGVuZGFyKW90aGVyKS5ncmVnb3JpYW5DdXRvdmVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGhhc2hDb2RlLgorICAgICAqIEdlbmVyYXRlcyB0aGUgaGFzaCBjb2RlIGZvciB0aGUgR3JlZ29yaWFuQ2FsZW5kYXIgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhc2hDb2RlKCkgXiAoaW50KWdyZWdvcmlhbkN1dG92ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUm9sbCBhIGZpZWxkIGJ5IGEgc2lnbmVkIGFtb3VudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByb2xsKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBXRUVLX09GX1lFQVI6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVW5saWtlIFdFRUtfT0ZfTU9OVEgsIFdFRUtfT0ZfWUVBUiBuZXZlciBzaGlmdHMgdGhlIGRheSBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyB3ZWVrLiAgQWxzbywgcm9sbGluZyB0aGUgd2VlayBvZiB0aGUgeWVhciBjYW4gaGF2ZSBzZWVtaW5nbHkKKyAgICAgICAgICAgICAgICAvLyBzdHJhbmdlIGVmZmVjdHMgc2ltcGx5IGJlY2F1c2UgdGhlIHllYXIgb2YgdGhlIHdlZWsgb2YgeWVhcgorICAgICAgICAgICAgICAgIC8vIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgY2FsZW5kYXIgeWVhci4gIEZvciBleGFtcGxlLCB0aGUKKyAgICAgICAgICAgICAgICAvLyBkYXRlIERlYyAyOCwgMTk5NyBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMSBvZiAxOTk4IChpZgorICAgICAgICAgICAgICAgIC8vIHdlZWtzIHN0YXJ0IG9uIFN1bmRheSBhbmQgdGhlIG1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrIGlzCisgICAgICAgICAgICAgICAgLy8gPD0gMykuCisgICAgICAgICAgICAgICAgaW50IHdveSA9IGdldChXRUVLX09GX1lFQVIpOworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgSVNPIHllYXIsIHdoaWNoIG1hdGNoZXMgdGhlIHdlZWsgb2YgeWVhci4gIFRoaXMKKyAgICAgICAgICAgICAgICAvLyBtYXkgYmUgb25lIHllYXIgYmVmb3JlIG9yIGFmdGVyIHRoZSBjYWxlbmRhciB5ZWFyLgorICAgICAgICAgICAgICAgIGludCBpc29ZZWFyID0gZ2V0KFlFQVJfV09ZKTsKKyAgICAgICAgICAgICAgICBpbnQgaXNvRG95ID0gaW50ZXJuYWxHZXQoREFZX09GX1lFQVIpOworICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbEdldChNT05USCkgPT0gQ2FsZW5kYXIuSkFOVUFSWSkgeworICAgICAgICAgICAgICAgICAgICBpZiAod295ID49IDUyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpc29Eb3kgKz0gaGFuZGxlR2V0WWVhckxlbmd0aChpc29ZZWFyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3b3kgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNvRG95IC09IGhhbmRsZUdldFllYXJMZW5ndGgoaXNvWWVhciAtIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdveSArPSBhbW91bnQ7CisgICAgICAgICAgICAgICAgLy8gRG8gZmFzdCBjaGVja3MgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY29tcHV0YXRpb246CisgICAgICAgICAgICAgICAgaWYgKHdveSA8IDEgfHwgd295ID4gNTIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBsYXN0IHdlZWsgb2YgdGhlIElTTyB5ZWFyLgorICAgICAgICAgICAgICAgICAgICAvLyBXZSBkbyB0aGlzIHVzaW5nIHRoZSBzdGFuZGFyZCBmb3JtdWxhIHdlIHVzZQorICAgICAgICAgICAgICAgICAgICAvLyBldmVyeXdoZXJlIGluIHRoaXMgZmlsZS4gIElmIHdlIGNhbiBzZWUgdGhhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gZGF5cyBhdCB0aGUgZW5kIG9mIHRoZSB5ZWFyIGFyZSBnb2luZyB0byBmYWxsIGludG8KKyAgICAgICAgICAgICAgICAgICAgLy8gd2VlayAxIG9mIHRoZSBuZXh0IHllYXIsIHdlIGRyb3AgdGhlIGxhc3Qgd2VlayBieQorICAgICAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdGluZyA3IGZyb20gdGhlIGxhc3QgZGF5IG9mIHRoZSB5ZWFyLgorICAgICAgICAgICAgICAgICAgICBpbnQgbGFzdERveSA9IGhhbmRsZUdldFllYXJMZW5ndGgoaXNvWWVhcik7CisgICAgICAgICAgICAgICAgICAgIGludCBsYXN0UmVsRG93ID0gKGxhc3REb3kgLSBpc29Eb3kgKyBpbnRlcm5hbEdldChEQVlfT0ZfV0VFSykgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRGaXJzdERheU9mV2VlaygpKSAlIDc7CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0UmVsRG93IDwgMCkgbGFzdFJlbERvdyArPSA3OworICAgICAgICAgICAgICAgICAgICBpZiAoKDYgLSBsYXN0UmVsRG93KSA+PSBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpIGxhc3REb3kgLT0gNzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxhc3RXb3kgPSB3ZWVrTnVtYmVyKGxhc3REb3ksIGxhc3RSZWxEb3cgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgd295ID0gKCh3b3kgKyBsYXN0V295IC0gMSkgJSBsYXN0V295KSArIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChXRUVLX09GX1lFQVIsIHdveSk7CisgICAgICAgICAgICAgICAgc2V0KFlFQVIsIGlzb1llYXIpOyAvLyBXaHkgbm90IFlFQVJfV09ZPyAtIEFsYW4gMTEvNi8wMAorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWluaW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZS4KKyAgICAgKiBGb3IgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgdGhpcyBpcyB0aGUgc2FtZSBhcyBnZXRNaW5pbXVtKCkgYW5kIGdldEdyZWF0ZXN0TWluaW11bSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldE1pbmltdW0oZmllbGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgd2l0aCB0aGUgZGF0ZSAiRmViIDMsIDE5OTciIGFuZCB0aGUgREFZX09GX01PTlRIIGZpZWxkLCB0aGUgYWN0dWFsCisgICAgICogbWF4aW11bSB3b3VsZCBiZSAyODsgZm9yICJGZWIgMywgMTk5NiIgaXQgcyAyOS4gIFNpbWlsYXJseSBmb3IgYSBIZWJyZXcgY2FsZW5kYXIsCisgICAgICogZm9yIHNvbWUgeWVhcnMgdGhlIGFjdHVhbCBtYXhpbXVtIGZvciBNT05USCBpcyAxMiwgYW5kIGZvciBvdGhlcnMgMTMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBY3R1YWxNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICAvKiBJdCBpcyBhIGtub3duIGxpbWl0YXRpb24gdGhhdCB0aGUgY29kZSBoZXJlIChhbmQgaW4gZ2V0QWN0dWFsTWluaW11bSkKKyAgICAgICAgICogd29uJ3QgYmVoYXZlIHByb3Blcmx5IGF0IHRoZSBleHRyZW1lIGxpbWl0cyBvZiBHcmVnb3JpYW5DYWxlbmRhcidzCisgICAgICAgICAqIHJlcHJlc2VudGFibGUgcmFuZ2UgKGV4Y2VwdCBmb3IgdGhlIGNvZGUgdGhhdCBoYW5kbGVzIHRoZSBZRUFSCisgICAgICAgICAqIGZpZWxkKS4gIFRoYXQncyBiZWNhdXNlIHRoZSBlbmRzIG9mIHRoZSByZXByZXNlbnRhYmxlIHJhbmdlIGFyZSBhdAorICAgICAgICAgKiBvZGQgc3BvdHMgaW4gdGhlIHllYXIuICBGb3IgY2FsZW5kYXJzIHdpdGggdGhlIGRlZmF1bHQgR3JlZ29yaWFuCisgICAgICAgICAqIGN1dG92ZXIsIHRoZXNlIGxpbWl0cyBhcmUgU3VuIERlYyAwMiAxNjo0NzowNCBHTVQgMjkyMjY5MDU1IEJDIHRvIFN1bgorICAgICAgICAgKiBBdWcgMTcgMDc6MTI6NTUgR01UIDI5MjI3ODk5NCBBRCwgc29tZXdoYXQgZGlmZmVyZW50IGZvciBub24tR01UCisgICAgICAgICAqIHpvbmVzLiAgQXMgYSByZXN1bHQsIGlmIHRoZSBjYWxlbmRhciBpcyBzZXQgdG8gQXVnIDEgMjkyMjc4OTk0IEFELAorICAgICAgICAgKiB0aGUgYWN0dWFsIG1heGltdW0gb2YgREFZX09GX01PTlRIIGlzIDE3LCBub3QgMzAuICBJZiB0aGUgZGF0ZSBpcyBNYXIKKyAgICAgICAgICogMzEgaW4gdGhhdCB5ZWFyLCB0aGUgYWN0dWFsIG1heGltdW0gbW9udGggbWlnaHQgYmUgSnVsLCB3aGVyZWFzIGlzCisgICAgICAgICAqIHRoZSBkYXRlIGlzIE1hciAxNSwgdGhlIGFjdHVhbCBtYXhpbXVtIG1pZ2h0IGJlIEF1ZyAtLSBkZXBlbmRpbmcgb24KKyAgICAgICAgICogdGhlIHByZWNpc2Ugc2VtYW50aWNzIHRoYXQgYXJlIGRlc2lyZWQuICBTaW1pbGFyIGNvbnNpZGVyYXRpb25zCisgICAgICAgICAqIGFmZmVjdCBhbGwgZmllbGRzLiAgTm9uZXRoZWxlc3MsIHRoaXMgZWZmZWN0IGlzIHN1ZmZpY2llbnRseSBhcmNhbmUKKyAgICAgICAgICogdGhhdCB3ZSBwZXJtaXQgaXQsIHJhdGhlciB0aGFuIGNvbXBsaWNhdGluZyB0aGUgY29kZSB0byBoYW5kbGUgc3VjaAorICAgICAgICAgKiBpbnRyaWNhY2llcy4gLSBsaXUgOC8yMC85OAorCisgICAgICAgICAqIFVQREFURTogTm8gbG9uZ2VyIHRydWUsIHNpbmNlIHdlIGhhdmUgcHVsbGVkIGluIHRoZSBsaW1pdCB2YWx1ZXMgb24KKyAgICAgICAgICogdGhlIHllYXIuIC0gTGl1IDExLzYvMDAgKi8KKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICAgICAgLyogVGhlIHllYXIgY29tcHV0YXRpb24gaXMgbm8gZGlmZmVyZW50LCBpbiBwcmluY2lwbGUsIGZyb20gdGhlCisgICAgICAgICAgICAgKiBvdGhlcnMsIGhvd2V2ZXIsIHRoZSByYW5nZSBvZiBwb3NzaWJsZSBtYXhpbWEgaXMgbGFyZ2UuICBJbgorICAgICAgICAgICAgICogYWRkaXRpb24sIHRoZSB3YXkgd2Uga25vdyB3ZSd2ZSBleGNlZWRlZCB0aGUgcmFuZ2UgaXMgZGlmZmVyZW50LgorICAgICAgICAgICAgICogRm9yIHRoZXNlIHJlYXNvbnMsIHdlIHVzZSB0aGUgc3BlY2lhbCBjYXNlIGNvZGUgYmVsb3cgdG8gaGFuZGxlCisgICAgICAgICAgICAgKiB0aGlzIGZpZWxkLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFRoZSBhY3R1YWwgbWF4aW1hIGZvciBZRUFSIGRlcGVuZCBvbiB0aGUgdHlwZSBvZiBjYWxlbmRhcjoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiAgICAgR3JlZ29yaWFuID0gTWF5IDE3LCAyOTIyNzUwNTYgQkMgLSBBdWcgMTcsIDI5MjI3ODk5NCBBRAorICAgICAgICAgICAgICogICAgIEp1bGlhbiAgICA9IERlYyAgMiwgMjkyMjY5MDU1IEJDIC0gSmFuICAzLCAyOTIyNzI5OTMgQUQKKyAgICAgICAgICAgICAqICAgICBIeWJyaWQgICAgPSBEZWMgIDIsIDI5MjI2OTA1NSBCQyAtIEF1ZyAxNywgMjkyMjc4OTk0IEFECisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogV2Uga25vdyB3ZSd2ZSBleGNlZWRlZCB0aGUgbWF4aW11bSB3aGVuIGVpdGhlciB0aGUgbW9udGgsIGRhdGUsCisgICAgICAgICAgICAgKiB0aW1lLCBvciBlcmEgY2hhbmdlcyBpbiByZXNwb25zZSB0byBzZXR0aW5nIHRoZSB5ZWFyLiAgV2UgZG9uJ3QKKyAgICAgICAgICAgICAqIGNoZWNrIGZvciBtb250aCwgZGF0ZSwgYW5kIHRpbWUgaGVyZSBiZWNhdXNlIHRoZSB5ZWFyIGFuZCBlcmEgYXJlCisgICAgICAgICAgICAgKiBzdWZmaWNpZW50IHRvIGRldGVjdCBhbiBpbnZhbGlkIHllYXIgc2V0dGluZy4gIE5PVEU6IElmIGNvZGUgaXMKKyAgICAgICAgICAgICAqIGFkZGVkIHRvIGNoZWNrIHRoZSBtb250aCBhbmQgZGF0ZSBpbiB0aGUgZnV0dXJlIGZvciBzb21lIHJlYXNvbiwKKyAgICAgICAgICAgICAqIEZlYiAyOSBtdXN0IGJlIGFsbG93ZWQgdG8gc2hpZnQgdG8gTWFyIDEgd2hlbiBzZXR0aW5nIHRoZSB5ZWFyLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gKENhbGVuZGFyKSBjbG9uZSgpOworICAgICAgICAgICAgICAgIGNhbC5zZXRMZW5pZW50KHRydWUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBlcmEgPSBjYWwuZ2V0KEVSQSk7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgICAgIC8qIFBlcmZvcm0gYSBiaW5hcnkgc2VhcmNoLCB3aXRoIHRoZSBpbnZhcmlhbnQgdGhhdCBsb3dHb29kIGlzIGEKKyAgICAgICAgICAgICAgICAgKiB2YWxpZCB5ZWFyLCBhbmQgaGlnaEJhZCBpcyBhbiBvdXQgb2YgcmFuZ2UgeWVhci4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpbnQgbG93R29vZCA9IExJTUlUU1tZRUFSXVsxXTsKKyAgICAgICAgICAgICAgICBpbnQgaGlnaEJhZCA9IExJTUlUU1tZRUFSXVsyXSsxOworICAgICAgICAgICAgICAgIHdoaWxlICgobG93R29vZCArIDEpIDwgaGlnaEJhZCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgeSA9IChsb3dHb29kICsgaGlnaEJhZCkgLyAyOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KFlFQVIsIHkpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChZRUFSKSA9PSB5ICYmIGNhbC5nZXQoRVJBKSA9PSBlcmEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvd0dvb2QgPSB5OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaGlnaEJhZCA9IHk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsgLy8gUmVzdG9yZSBvcmlnaW5hbCBmaWVsZHMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gbG93R29vZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgICAgICB9CisgICAgfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBQcm9wb3NlZCBwdWJsaWMgQVBJCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCB0aW1lIGZvciB0aGlzIENhbGVuZGFyIGlzIGluIERheWxpZ250CisgICAgICogU2F2aW5ncyBUaW1lLgorICAgICAqCisgICAgICogTm90ZSAtLSBNQUtFIFRISVMgUFVCTElDIEFUIFRIRSBORVhUIEFQSSBDSEFOR0UuICBQT1NTSUJMWSBERVBSRUNBVEUKKyAgICAgKiBBTkQgUkVNT1ZFIFRpbWVab25lLmluRGF5bGlnaHRUaW1lKCkuCisgICAgICovCisgICAgYm9vbGVhbiBpbkRheWxpZ2h0VGltZSgpIHsKKyAgICAgICAgaWYgKCFnZXRUaW1lWm9uZSgpLnVzZURheWxpZ2h0VGltZSgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvbXBsZXRlKCk7IC8vIEZvcmNlIHVwZGF0ZSBvZiBEU1RfT0ZGU0VUIGZpZWxkCisgICAgICAgIHJldHVybiBpbnRlcm5hbEdldChEU1RfT0ZGU0VUKSAhPSAwOworICAgIH0KKworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENhbGVuZGFyIGZyYW1ld29yaworLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworICAgICAgICByZXR1cm4gTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcFllYXIoZXh0ZW5kZWRZZWFyKT8xOjBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0WWVhckxlbmd0aChpbnQgZXllYXIpIHsKKyAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIoZXllYXIpID8gMzY2IDogMzY1OworICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIFRpbWUgPT4gRmllbGRzIGNvbXB1dGF0aW9uCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcyBzcGVjaWZpYyB0byB0aGUgaHlicmlkCisgICAgICogR3JlZ29yaWFuLUp1bGlhbiBjYWxlbmRhciBzeXN0ZW0uICBUaGVzZSBhcmU6CisgICAgICoKKyAgICAgKiA8dWw+PGxpPkVSQQorICAgICAqIDxsaT5ZRUFSCisgICAgICogPGxpPk1PTlRICisgICAgICogPGxpPkRBWV9PRl9NT05USAorICAgICAqIDxsaT5EQVlfT0ZfWUVBUgorICAgICAqIDxsaT5FWFRFTkRFRF9ZRUFSPC91bD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgaW50IGV5ZWFyLCBtb250aCwgZGF5T2ZNb250aCwgZGF5T2ZZZWFyOworCisgICAgICAgIGlmIChqdWxpYW5EYXkgPj0gY3V0b3Zlckp1bGlhbkRheSkgeworICAgICAgICAgICAgbW9udGggPSBnZXRHcmVnb3JpYW5Nb250aCgpOworICAgICAgICAgICAgZGF5T2ZNb250aCA9IGdldEdyZWdvcmlhbkRheU9mTW9udGgoKTsKKyAgICAgICAgICAgIGRheU9mWWVhciA9IGdldEdyZWdvcmlhbkRheU9mWWVhcigpOworICAgICAgICAgICAgZXllYXIgPSBnZXRHcmVnb3JpYW5ZZWFyKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgSnVsaWFuIGVwb2NoIGRheSAobm90IHRoZSBzYW1lIGFzIEp1bGlhbiBEYXkpCisgICAgICAgICAgICAvLyBpcyB6ZXJvIG9uIFNhdHVyZGF5IERlY2VtYmVyIDMwLCAwIChHcmVnb3JpYW4pLgorICAgICAgICAgICAgbG9uZyBqdWxpYW5FcG9jaERheSA9IGp1bGlhbkRheSAtIChKQU5fMV8xX0pVTElBTl9EQVkgLSAyKTsKKyAgICAgICAgICAgIGV5ZWFyID0gKGludCkgZmxvb3JEaXZpZGUoNCpqdWxpYW5FcG9jaERheSArIDE0NjQsIDE0NjEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDb21wdXRlIHRoZSBKdWxpYW4gY2FsZW5kYXIgZGF5IG51bWJlciBmb3IgSmFudWFyeSAxLCBleWVhcgorICAgICAgICAgICAgbG9uZyBqYW51YXJ5MSA9IDM2NSooZXllYXItMSkgKyBmbG9vckRpdmlkZShleWVhci0xLCA0KTsKKyAgICAgICAgICAgIGRheU9mWWVhciA9IChpbnQpKGp1bGlhbkVwb2NoRGF5IC0gamFudWFyeTEpOyAvLyAwLWJhc2VkCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEp1bGlhbiBsZWFwIHllYXJzIG9jY3VycmVkIGhpc3RvcmljYWxseSBldmVyeSA0IHllYXJzIHN0YXJ0aW5nCisgICAgICAgICAgICAvLyB3aXRoIDggQUQuICBCZWZvcmUgOCBBRCB0aGUgc3BhY2luZyBpcyBpcnJlZ3VsYXI7IGV2ZXJ5IDMgeWVhcnMKKyAgICAgICAgICAgIC8vIGZyb20gNDUgQkMgdG8gOSBCQywgYW5kIHRoZW4gbm9uZSB1bnRpbCA4IEFELiAgSG93ZXZlciwgd2UgZG9uJ3QKKyAgICAgICAgICAgIC8vIGltcGxlbWVudCB0aGlzIGhpc3RvcmljYWwgZGV0YWlsOyBpbnN0ZWFkLCB3ZSBpbXBsZW1lbnQgdGhlCisgICAgICAgICAgICAvLyBjb21wdXRhdGluYWxseSBjbGVhbmVyIHByb2xlcHRpYyBjYWxlbmRhciwgd2hpY2ggYXNzdW1lcworICAgICAgICAgICAgLy8gY29uc2lzdGVudCA0LXllYXIgY3ljbGVzIHRocm91Z2hvdXQgdGltZS4KKyAgICAgICAgICAgIGJvb2xlYW4gaXNMZWFwID0gKChleWVhciYweDMpID09IDApOyAvLyBlcXVpdi4gdG8gKGV5ZWFyJTQgPT0gMCkKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29tbW9uIEp1bGlhbi9HcmVnb3JpYW4gY2FsY3VsYXRpb24KKyAgICAgICAgICAgIGludCBjb3JyZWN0aW9uID0gMDsKKyAgICAgICAgICAgIGludCBtYXJjaDEgPSBpc0xlYXAgPyA2MCA6IDU5OyAvLyB6ZXJvLWJhc2VkIERPWSBmb3IgTWFyY2ggMQorICAgICAgICAgICAgaWYgKGRheU9mWWVhciA+PSBtYXJjaDEpIHsKKyAgICAgICAgICAgICAgICBjb3JyZWN0aW9uID0gaXNMZWFwID8gMSA6IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtb250aCA9ICgxMiAqIChkYXlPZlllYXIgKyBjb3JyZWN0aW9uKSArIDYpIC8gMzY3OyAvLyB6ZXJvLWJhc2VkIG1vbnRoCisgICAgICAgICAgICBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0gTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcD8zOjJdICsgMTsgLy8gb25lLWJhc2VkIERPTQorICAgICAgICAgICAgKytkYXlPZlllYXI7CisgICAgICAgIH0KKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheU9mWWVhcik7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIGV5ZWFyKTsKKyAgICAgICAgaW50IGVyYSA9IEFEOworICAgICAgICBpZiAoZXllYXIgPCAxKSB7CisgICAgICAgICAgICBlcmEgPSBCQzsKKyAgICAgICAgICAgIGV5ZWFyID0gMSAtIGV5ZWFyOworICAgICAgICB9CisgICAgICAgIGludGVybmFsU2V0KEVSQSwgZXJhKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgZXllYXIpOworICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEZpZWxkcyA9PiBUaW1lIGNvbXB1dGF0aW9uCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgRVBPQ0hfWUVBUik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgeWVhciBkZWZhdWx0cyB0byB0aGUgZXBvY2ggc3RhcnQsIHRoZSBlcmEgdG8gQUQKKyAgICAgICAgICAgIGludCBlcmEgPSBpbnRlcm5hbEdldChFUkEsIEFEKTsKKyAgICAgICAgICAgIGlmIChlcmEgPT0gQkMpIHsKKyAgICAgICAgICAgICAgICB5ZWFyID0gMSAtIGludGVybmFsR2V0KFlFQVIsIDEpOyAvLyBDb252ZXJ0IHRvIGV4dGVuZGVkIHllYXIKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIEVQT0NIX1lFQVIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB5ZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShpbnQgYmVzdEZpZWxkKSB7CisKKyAgICAgICAgaW52ZXJ0R3JlZ29yaWFuID0gZmFsc2U7CisKKyAgICAgICAgaW50IGpkID0gc3VwZXIuaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShiZXN0RmllbGQpOworCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2hlY2sgaGFuZGxlcyBwb3J0aW9ucyBvZiB0aGUgY3V0b3ZlciB5ZWFyIEJFRk9SRSB0aGUKKyAgICAgICAgLy8gY3V0b3ZlciBpdHNlbGYgaGFwcGVucy4KKyAgICAgICAgaWYgKGlzR3JlZ29yaWFuICE9IChqZCA+PSBjdXRvdmVySnVsaWFuRGF5KSkgeworICAgICAgICAgICAgaW52ZXJ0R3JlZ29yaWFuID0gdHJ1ZTsKKyAgICAgICAgICAgIGpkID0gc3VwZXIuaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShiZXN0RmllbGQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gamQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIEpEIG9mIHN0YXJ0IG9mIGdpdmVuIG1vbnRoL3llYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7CisKKyAgICAgICAgLy8gSWYgdGhlIG1vbnRoIGlzIG91dCBvZiByYW5nZSwgYWRqdXN0IGl0IGludG8gcmFuZ2UsIGFuZAorICAgICAgICAvLyBtb2RpZnkgdGhlIGV4dGVuZGVkIHllYXIgdmFsdWUgYWNjb3JkaW5nbHkuCisgICAgICAgIGlmIChtb250aCA8IDAgfHwgbW9udGggPiAxMSkgeworICAgICAgICAgICAgaW50W10gcmVtID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGV5ZWFyICs9IGZsb29yRGl2aWRlKG1vbnRoLCAxMiwgcmVtKTsKKyAgICAgICAgICAgIG1vbnRoID0gcmVtWzBdOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSBleWVhciU0ID09IDA7CisgICAgICAgIGludCB5ID0gZXllYXIgLSAxOworICAgICAgICBpbnQganVsaWFuRGF5ID0gMzY1KnkgKyBmbG9vckRpdmlkZSh5LCA0KSArIChKQU5fMV8xX0pVTElBTl9EQVkgLSAzKTsKKworICAgICAgICBpc0dyZWdvcmlhbiA9IChleWVhciA+PSBncmVnb3JpYW5DdXRvdmVyWWVhcik7CisgICAgICAgIGlmIChpbnZlcnRHcmVnb3JpYW4pIHsKKyAgICAgICAgICAgIGlzR3JlZ29yaWFuID0gIWlzR3JlZ29yaWFuOworICAgICAgICB9CisgICAgICAgIGlmIChpc0dyZWdvcmlhbikgeworICAgICAgICAgICAgaXNMZWFwID0gaXNMZWFwICYmICgoZXllYXIlMTAwICE9IDApIHx8IChleWVhciU0MDAgPT0gMCkpOworICAgICAgICAgICAgLy8gQWRkIDIgYmVjYXVzZSBHcmVnb3JpYW4gY2FsZW5kYXIgc3RhcnRzIDIgZGF5cyBhZnRlcgorICAgICAgICAgICAgLy8gSnVsaWFuIGNhbGVuZGFyCisgICAgICAgICAgICBqdWxpYW5EYXkgKz0gZmxvb3JEaXZpZGUoeSwgNDAwKSAtIGZsb29yRGl2aWRlKHksIDEwMCkgKyAyOworICAgICAgICB9CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBqdWxpYW5EYXkgaW5kaWNhdGVzIHRoZSBkYXkgQkVGT1JFIHRoZSBmaXJzdAorICAgICAgICAvLyBkYXkgb2YgSmFudWFyeSAxLCA8ZXllYXI+IG9mIGVpdGhlciB0aGUgSnVsaWFuIG9yIEdyZWdvcmlhbgorICAgICAgICAvLyBjYWxlbmRhci4KKworICAgICAgICBpZiAobW9udGggIT0gMCkgeworICAgICAgICAgICAganVsaWFuRGF5ICs9IE1PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXA/MzoyXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBqdWxpYW5EYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiZ3JlZ29yaWFuIjsKKyAgICB9CisKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5OworICAgIHB1YmxpYyBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkoKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSBuZXcgQ2FsZW5kYXJGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHosIGxvYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJHcmVnb3JpYW4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OWI2NjM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDg2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJDYWNoZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCB0aGF0IGltcGxlbWVudHMgdGhlIHRyYWRpdGlvbmFsIEhlYnJldyBjYWxlbmRhci4KKyAqIFRoaXMgaXMgdGhlIGNpdmlsIGNhbGVuZGFyIGluIElzcmFlbCBhbmQgdGhlIGxpdHVyZ2ljYWwgY2FsZW5kYXIKKyAqIG9mIHRoZSBKZXdpc2ggZmFpdGggd29ybGR3aWRlLgorICogPHA+CisgKiBUaGUgSGVicmV3IGNhbGVuZGFyIGlzIGx1bmlzb2xhciBhbmQgdGh1cyBoYXMgYSBudW1iZXIgb2YgaW50ZXJlc3RpbmcKKyAqIHByb3BlcnRpZXMgdGhhdCBkaXN0aW5ndWlzaCBpdCBmcm9tIHRoZSBHcmVnb3JpYW4uICBNb250aHMgc3RhcnQKKyAqIG9uIHRoZSBkYXkgb2YgKGFuIGFyaXRobWV0aWMgYXBwcm94aW1hdGlvbiBvZikgZWFjaCBuZXcgbW9vbi4gIFNpbmNlIHRoZQorICogc29sYXIgeWVhciAoYXBwcm94aW1hdGVseSAzNjUuMjQgZGF5cykgaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUgb2YKKyAqIHRoZSBsdW5hciBtb250aCAoYXBwcm94aW1hdGVseSAyOS41MyBkYXlzKSBhbiBleHRyYSAibGVhcCBtb250aCIgaXMKKyAqIGluc2VydGVkIGluIDcgb3V0IG9mIGV2ZXJ5IDE5IHllYXJzLiAgVG8gbWFrZSBtYXR0ZXJzIGV2ZW4gbW9yZQorICogaW50ZXJlc3RpbmcsIHRoZSBzdGFydCBvZiBhIHllYXIgY2FuIGJlIGRlbGF5ZWQgYnkgdXAgdG8gdGhyZWUgZGF5cworICogaW4gb3JkZXIgdG8gcHJldmVudCBjZXJ0YWluIGhvbGlkYXlzIGZyb20gZmFsbGluZyBvbiB0aGUgU2FiYmF0aCBhbmQKKyAqIHRvIHByZXZlbnQgY2VydGFpbiBpbGxlZ2FsIHllYXIgbGVuZ3Rocy4gIEZpbmFsbHksIHRoZSBsZW5ndGhzIG9mIGNlcnRhaW4KKyAqIG1vbnRocyBjYW4gdmFyeSBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSB5ZWFyLgorICogPHA+CisgKiBUaGUgbGVhcCBtb250aCBpcyBrbm93biBhcyAiQWRhciAxIiBhbmQgaXMgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUKKyAqIG1vbnRocyBvZiBTaGV2YXQgYW5kIEFkYXIgaW4gbGVhcCB5ZWFycy4gIFNpbmNlIHRoZSBsZWFwIG1vbnRoIGRvZXMKKyAqIG5vdCBjb21lIGF0IHRoZSBlbmQgb2YgdGhlIHllYXIsIGNhbGN1bGF0aW9ucyBpbnZvbHZpbmcKKyAqIG1vbnRoIG51bWJlcnMgYXJlIHBhcnRpY3VsYXJseSBjb21wbGV4LiAgVXNlcnMgb2YgdGhpcyBjbGFzcyBzaG91bGQKKyAqIG1ha2Ugc3VyZSB0byB1c2UgdGhlIHtAbGluayAjcm9sbCByb2xsfSBhbmQge0BsaW5rICNhZGQgYWRkfSBtZXRob2RzCisgKiByYXRoZXIgdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gZGF0ZSBhcml0aG1ldGljIGJ5IG1hbmlwdWxhdGluZworICogdGhlIGZpZWxkcyBkaXJlY3RseS4KKyAqIDxwPgorICogPGI+Tm90ZTo8L2I+IEluIHRoZSB0cmFkaXRpb25hbCBIZWJyZXcgY2FsZW5kYXIsIGRheXMgc3RhcnQgYXQgc3Vuc2V0LgorICogSG93ZXZlciwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgdGltZSBmaWVsZHMgaW4gdGhpcyBjbGFzcworICogc3luY2hyb25pemVkIHdpdGggdGhvc2Ugb2YgdGhlIG90aGVyIGNhbGVuZGFycyBhbmQgd2l0aCBsb2NhbCBjbG9jayB0aW1lLAorICogd2UgdHJlYXQgZGF5cyBhbmQgbW9udGhzIGFzIGJlZ2lubmluZyBhdCBtaWRuaWdodCwKKyAqIHJvdWdobHkgNiBob3VycyBhZnRlciB0aGUgY29ycmVzcG9uZGluZyBzdW5zZXQuCisgKiA8cD4KKyAqIElmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBydWxlcyBiZWhpbmQgdGhlIEhlYnJldworICogY2FsZW5kYXIsIHNlZSBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWZlcmVuY2VzOgorICogPHVsPgorICogPGxpPiI8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvQVNJTi8wNTIxNTY0NzQzIj5DYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnM8L2E+IiwKKyAqICAgICAgYnkgTmFjaHVtIERlcnNob3dpdHogJiBFZHdhcmQgUmVpbmdvbGQsIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAxOTk3LCBwYWdlcyA4NS05MS4KKyAqCisgKiA8bGk+SGVicmV3IENhbGVuZGFyIFNjaWVuY2UgYW5kIE15dGhzLAorICogICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lmdlb2NpdGllcy5jb20vQXRoZW5zLzE1ODQvIj4KKyAqICAgICAgaHR0cDovL3d3dy5nZW9jaXRpZXMuY29tL0F0aGVucy8xNTg0LzwvYT4KKyAqCisgKiA8bGk+VGhlIENhbGVuZGFyIEZBUSwKKyAqICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2NhbGVuZGFycy9mYXEvIj4KKyAqICAgICAgaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2NhbGVuZGFycy9mYXEvPC9hPgorICogPC91bD4KKyAqCisgKiA8cD4KKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSBzdWJjbGFzc2VkLjwvcD4KKyAqIDxwPgorICogSGVicmV3Q2FsZW5kYXIgdXN1YWxseSBzaG91bGQgYmUgaW5zdGFudGlhdGVkIHVzaW5nIAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjZ2V0SW5zdGFuY2UoVUxvY2FsZSl9IHBhc3NpbmcgaW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPgorICogd2l0aCB0aGUgdGFnIDxjb2RlPiJAY2FsZW5kYXI9aGVicmV3IjwvY29kZT4uPC9wPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgSGVicmV3Q2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTE5NTI1MjQ1NjA1ODg4MjU4MTZMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTctMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVG9ucyBvJyBDb25zdGFudHMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBUaXNocmksIHRoZSAxc3QgbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElTSFJJID0gMDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBIZXNodmFuLCB0aGUgMm5kIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFU0hWQU4gPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEtpc2xldiwgdGhlIDNyZCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSVNMRVYgPSAyOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFRldmV0LCB0aGUgNHRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVkVUID0gMzsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBTaGV2YXQsIHRoZSA1dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hFVkFUID0gNDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBBZGFyIEksIHRoZSA2dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyCisgICAgICogKHByZXNlbnQgaW4gbGVhcCB5ZWFycyBvbmx5KS4gSW4gbm9uLWxlYXAgeWVhcnMsIHRoZSBjYWxlbmRhcgorICAgICAqIGp1bXBzIGZyb20gU2hldmF0ICg1dGggbW9udGgpIHRvIEFkYXIgKDd0aCBtb250aCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUl8xID0gNTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIEFkYXIsIHRoZSA3dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUiA9IDY7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgTmlzYW4sIHRoZSA4dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTklTQU4gPSA3OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEl5YXIsIHRoZSA5dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVlBUiA9IDg7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgU2l2YW4sIHRoZSAxMHRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJVkFOID0gOTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBUYW1tdXosIHRoZSAxMXRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBTVVaID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgQXYsIHRoZSAxMnRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFWID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgRWx1bCwgdGhlIDEzdGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUxVTCA9IDEyOworCisgICAgLyoqCisgICAgICogVGhlIGFic29sdXRlIGRhdGUsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSAxLzEvMTk3MCBBRCwgR3JlZ29yaWFuLAorICAgICAqIG9mIHRoZSBzdGFydCBvZiB0aGUgSGVicmV3IGNhbGVuZGFyLiAgSW4gb3JkZXIgdG8ga2VlcCB0aGlzIGNhbGVuZGFyJ3MKKyAgICAgKiB0aW1lIG9mIGRheSBpbiBzeW5jIHdpdGggdGhhdCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB3ZSB1c2UKKyAgICAgKiBtaWRuaWdodCwgcmF0aGVyIHRoYW4gc3Vuc2V0IHRoZSBkYXkgYmVmb3JlLgorICAgICAqLworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBFUE9DSF9NSUxMSVMgPSAtMTgwNzk5ODYyNDAwMDAwTDsgLy8gMS8xLzEgSFkKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgMCwgICAgICAgMCB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsIDUwMDAwMDAsIDUwMDAwMDAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMiwgICAgICAxMiB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MSwgICAgICA1NiB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDUsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOSwgICAgICAzMCB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNTMsICAgICAzODUgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDQsICAgICAgIDYgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTAwMDAwMSwgLTUwMDAwMDEsIDUwMDAwMDEsIDUwMDAwMDEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTUwMDAwMDAsIC01MDAwMDAwLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBsZW5ndGhzIG9mIHRoZSBIZWJyZXcgbW9udGhzLiAgVGhpcyBpcyBjb21wbGljYXRlZCwgYmVjYXVzZSB0aGVyZQorICAgICAqIGFyZSB0aHJlZSBkaWZmZXJlbnQgdHlwZXMgb2YgeWVhcnMsIG9yIHNpeCBpZiB5b3UgY291bnQgbGVhcCB5ZWFycy4KKyAgICAgKiBEdWUgdG8gdGhlIHJ1bGVzIGZvciBwb3N0cG9uaW5nIHRoZSBzdGFydCBvZiB0aGUgeWVhciB0byBhdm9pZCBoYXZpbmcKKyAgICAgKiBjZXJ0YWluIGhvbGlkYXlzIGZhbGwgb24gdGhlIHNhYmJhdGgsIHRoZSB5ZWFyIGNhbiBlbmQgdXAgYmVpbmcgdGhyZWUKKyAgICAgKiBkaWZmZXJlbnQgbGVuZ3RocywgY2FsbGVkICJkZWZpY2llbnQiLCAibm9ybWFsIiwgYW5kICJjb21wbGV0ZSIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1PTlRIX0xFTkdUSFtdW10gPSB7CisgICAgICAgIC8vIERlZmljaWVudCAgTm9ybWFsICAgICBDb21wbGV0ZQorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL1Rpc2hyaQorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL0hlc2h2YW4KKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9LaXNsZXYKKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9UZXZldAorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL1NoZXZhdAorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL0FkYXIgSSAobGVhcCB5ZWFycyBvbmx5KQorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL0FkYXIKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9OaXNhbgorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL0l5YXIKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9TaXZhbgorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL1RhbW11egorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL0F2CisgICAgICAgIHsgICAyOSwgICAgICAgICAyOSwgICAgICAgICAyOSAgICAgfSwgICAgICAgICAgIC8vRWx1bAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VtdWxhdGl2ZSAjIG9mIGRheXMgdG8gdGhlIGVuZCBvZiBlYWNoIG1vbnRoIGluIGEgbm9uLWxlYXAgeWVhcgorICAgICAqIEFsdGhvdWdoIHRoaXMgY2FuIGJlIGNhbGN1bGF0ZWQgZnJvbSB0aGUgTU9OVEhfTEVOR1RIIHRhYmxlLAorICAgICAqIGtlZXBpbmcgaXQgYXJvdW5kIHNlcGFyYXRlbHkgbWFrZXMgc29tZSBjYWxjdWxhdGlvbnMgYSBsb3QgZmFzdGVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1PTlRIX1NUQVJUW11bXSA9IHsKKyAgICAgICAgLy8gRGVmaWNpZW50ICBOb3JtYWwgICAgIENvbXBsZXRlCisgICAgICAgIHsgICAgMCwgICAgICAgICAgMCwgICAgICAgICAgMCAgfSwgICAgICAgICAgLy8gKHBsYWNlaG9sZGVyKQorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgIH0sICAgICAgICAgIC8vIFRpc2hyaQorICAgICAgICB7ICAgNTksICAgICAgICAgNTksICAgICAgICAgNjAgIH0sICAgICAgICAgIC8vIEhlc2h2YW4KKyAgICAgICAgeyAgIDg4LCAgICAgICAgIDg5LCAgICAgICAgIDkwICB9LCAgICAgICAgICAvLyBLaXNsZXYKKyAgICAgICAgeyAgMTE3LCAgICAgICAgMTE4LCAgICAgICAgMTE5ICB9LCAgICAgICAgICAvLyBUZXZldAorICAgICAgICB7ICAxNDcsICAgICAgICAxNDgsICAgICAgICAxNDkgIH0sICAgICAgICAgIC8vIFNoZXZhdAorICAgICAgICB7ICAxNDcsICAgICAgICAxNDgsICAgICAgICAxNDkgIH0sICAgICAgICAgIC8vIChBZGFyIEkgcGxhY2Vob2xkZXIpCisgICAgICAgIHsgIDE3NiwgICAgICAgIDE3NywgICAgICAgIDE3OCAgfSwgICAgICAgICAgLy8gQWRhcgorICAgICAgICB7ICAyMDYsICAgICAgICAyMDcsICAgICAgICAyMDggIH0sICAgICAgICAgIC8vIE5pc2FuCisgICAgICAgIHsgIDIzNSwgICAgICAgIDIzNiwgICAgICAgIDIzNyAgfSwgICAgICAgICAgLy8gSXlhcgorICAgICAgICB7ICAyNjUsICAgICAgICAyNjYsICAgICAgICAyNjcgIH0sICAgICAgICAgIC8vIFNpdmFuCisgICAgICAgIHsgIDI5NCwgICAgICAgIDI5NSwgICAgICAgIDI5NiAgfSwgICAgICAgICAgLy8gVGFtbXV6CisgICAgICAgIHsgIDMyNCwgICAgICAgIDMyNSwgICAgICAgIDMyNiAgfSwgICAgICAgICAgLy8gQXYKKyAgICAgICAgeyAgMzUzLCAgICAgICAgMzU0LCAgICAgICAgMzU1ICB9LCAgICAgICAgICAvLyBFbHVsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBjdW11bGF0aXZlICMgb2YgZGF5cyB0byB0aGUgZW5kIG9mIGVhY2ggbW9udGggaW4gYSBsZWFwIHllYXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBUF9NT05USF9TVEFSVFtdW10gPSB7CisgICAgICAgIC8vIERlZmljaWVudCAgTm9ybWFsICAgICBDb21wbGV0ZQorICAgICAgICB7ICAgIDAsICAgICAgICAgIDAsICAgICAgICAgIDAgIH0sICAgICAgICAgIC8vIChwbGFjZWhvbGRlcikKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICB9LCAgICAgICAgICAvLyBUaXNocmkKKyAgICAgICAgeyAgIDU5LCAgICAgICAgIDU5LCAgICAgICAgIDYwICB9LCAgICAgICAgICAvLyBIZXNodmFuCisgICAgICAgIHsgICA4OCwgICAgICAgICA4OSwgICAgICAgICA5MCAgfSwgICAgICAgICAgLy8gS2lzbGV2CisgICAgICAgIHsgIDExNywgICAgICAgIDExOCwgICAgICAgIDExOSAgfSwgICAgICAgICAgLy8gVGV2ZXQKKyAgICAgICAgeyAgMTQ3LCAgICAgICAgMTQ4LCAgICAgICAgMTQ5ICB9LCAgICAgICAgICAvLyBTaGV2YXQKKyAgICAgICAgeyAgMTc3LCAgICAgICAgMTc4LCAgICAgICAgMTc5ICB9LCAgICAgICAgICAvLyBBZGFyIEkKKyAgICAgICAgeyAgMjA2LCAgICAgICAgMjA3LCAgICAgICAgMjA4ICB9LCAgICAgICAgICAvLyBBZGFyIElJCisgICAgICAgIHsgIDIzNiwgICAgICAgIDIzNywgICAgICAgIDIzOCAgfSwgICAgICAgICAgLy8gTmlzYW4KKyAgICAgICAgeyAgMjY1LCAgICAgICAgMjY2LCAgICAgICAgMjY3ICB9LCAgICAgICAgICAvLyBJeWFyCisgICAgICAgIHsgIDI5NSwgICAgICAgIDI5NiwgICAgICAgIDI5NyAgfSwgICAgICAgICAgLy8gU2l2YW4KKyAgICAgICAgeyAgMzI0LCAgICAgICAgMzI1LCAgICAgICAgMzI2ICB9LCAgICAgICAgICAvLyBUYW1tdXoKKyAgICAgICAgeyAgMzU0LCAgICAgICAgMzU1LCAgICAgICAgMzU2ICB9LCAgICAgICAgICAvLyBBdgorICAgICAgICB7ICAzODMsICAgICAgICAzODQsICAgICAgICAzODUgIH0sICAgICAgICAgIC8vIEVsdWwKKyAgICB9OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRGF0YSBNZW1iZXJzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckNhY2hlIGNhY2hlID0gbmV3IENhbGVuZGFyQ2FjaGUoKTsKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdDYWxlbmRhcigpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzKHpvbmUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBUaXNocmkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KFlFQVIsIHllYXIpOworICAgICAgICB0aGlzLnNldChNT05USCwgbW9udGgpOworICAgICAgICB0aGlzLnNldChEQVRFLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgVGlzaHJpLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1pbnV0ZSAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIHNlY29uZCAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHRoaXMuc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHRoaXMuc2V0KERBVEUsIGRhdGUpOworICAgICAgICB0aGlzLnNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHRoaXMuc2V0KE1JTlVURSwgbWludXRlKTsKKyAgICAgICAgdGhpcy5zZXQoU0VDT05ELCBzZWNvbmQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFJvbGxpbmcgYW5kIGFkZGluZyBmdW5jdGlvbnMgb3ZlcnJpZGRlbiBmcm9tIENhbGVuZGFyCisgICAgLy8KKyAgICAvLyBUaGVzZSBtZXRob2RzIGNhbGwgdGhyb3VnaCB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiBJQk1DYWxlbmRhcgorICAgIC8vIGZvciBtb3N0IG9mIHRoZSBmaWVsZHMgYW5kIG9ubHkgaGFuZGxlIHRoZSB1bnVzdWFsIG9uZXMgdGhlbXNlbHZlcy4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFkZCBhIHNpZ25lZCBhbW91bnQgdG8gYSBzcGVjaWZpZWQgZmllbGQsIHVzaW5nIHRoaXMgY2FsZW5kYXIncyBydWxlcy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdG8gYWRkIHRocmVlIGRheXMgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+YWRkKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4gCisgICAgICogPHA+CisgICAgICogV2hlbiBhZGRpbmcgdG8gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiBhZGRpbmcgb25lIHRvIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgZGF0ZSAiMzAgQXYgNTc1OCIsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgIjI5IEVsdWwgNTc1OCIgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAiMzAgRWx1bCA1NzU4Ii4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBhYmxlIHRvIGFkZCB0bworICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2Uge0BsaW5rICNyb2xsIHJvbGx9IGFuZCBhZGQgcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5IZWJyZXdDYWxlbmRhcjwvdHQ+LiAgU2luY2UgdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkIGJlaGF2ZXMKKyAgICAgKiBkaXNjb250aW51b3VzbHkgaW4gbm9uLWxlYXAgeWVhcnMsIHNpbXBsZSBhcml0aG1ldGljIGNhbiBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIGZpZWxkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBhbW91bnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IGp1c3QgZG8gYSBzZXQoTU9OVEgsIGdldChNT05USCkgKyBhbW91bnQpLiAgVGhlCisgICAgICAgICAgICAgICAgLy8gcmVhc29uIGlzIEFEQVJfMS4gIFN1cHBvc2UgYW1vdW50IGlzICsyIGFuZCB3ZSBsYW5kIGluCisgICAgICAgICAgICAgICAgLy8gQURBUl8xIC0tIHRoZW4gd2UgaGF2ZSB0byBidW1wIHRvIEFEQVJfMiBha2EgQURBUi4gIEJ1dAorICAgICAgICAgICAgICAgIC8vIGlmIGFtb3VudCBpcyAtMiBhbmQgd2UgbGFuZCBpbiBBREFSXzEsIHRoZW4gd2UgaGF2ZSB0bworICAgICAgICAgICAgICAgIC8vIGJ1bXAgdGhlIG90aGVyIHdheSAtLSBkb3duIHRvIFNIRVZBVC4gIC0gQWxhbiAxMS8wMAorICAgICAgICAgICAgICAgIGludCBtb250aCA9IGdldChNT05USCk7CisgICAgICAgICAgICAgICAgaW50IHllYXIgPSBnZXQoWUVBUik7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBhY3Jvc3NBZGFyMTsKKyAgICAgICAgICAgICAgICBpZiAoYW1vdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICBhY3Jvc3NBZGFyMSA9IChtb250aCA8IEFEQVJfMSk7IC8vIHN0YXJ0ZWQgYmVmb3JlIEFEQVJfMT8KKyAgICAgICAgICAgICAgICAgICAgbW9udGggKz0gYW1vdW50OworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNyb3NzQWRhcjEgJiYgbW9udGg+PUFEQVJfMSAmJiAhaXNMZWFwWWVhcih5ZWFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrbW9udGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9udGggPD0gRUxVTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbW9udGggLT0gRUxVTCsxOworICAgICAgICAgICAgICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICAgICAgICAgICAgICAgICAgYWNyb3NzQWRhcjEgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWNyb3NzQWRhcjEgPSAobW9udGggPiBBREFSXzEpOyAvLyBzdGFydGVkIGFmdGVyIEFEQVJfMT8KKyAgICAgICAgICAgICAgICAgICAgbW9udGggKz0gYW1vdW50OworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNyb3NzQWRhcjEgJiYgbW9udGg8PUFEQVJfMSAmJiAhaXNMZWFwWWVhcih5ZWFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tbW9udGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9udGggPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbW9udGggKz0gRUxVTCsxOworICAgICAgICAgICAgICAgICAgICAgICAgLS15ZWFyOworICAgICAgICAgICAgICAgICAgICAgICAgYWNyb3NzQWRhcjEgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICAgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5hZGQoZmllbGQsIGFtb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGxzICh1cC9kb3duKSBhIHNwZWNpZmllZCBhbW91bnQgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgdGhyZWUgZGF5cywgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+cm9sbChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4gIAorICAgICAqIEZvciBleGFtcGxlLCBjYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMTApPC9jb2RlPgorICAgICAqIG9uIGEgSGVicmV3IGNhbGVuZGFyIHNldCB0byAiMjUgQXYgNTc1OCIgd2lsbCByZXN1bHQgaW4gdGhlIGRhdGUgIjUgQXYgNTc1OCIuCisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gcm9sbGluZyB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiB1cHdhcmQgYnkgb25lIGZvciB0aGUgZGF0ZSAiMzAgQXYgNTc1OCIsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgIjI5IEVsdWwgNTc1OCIgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAiMzAgRWx1bCIuCisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgaXMgYWJsZSB0byByb2xsCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+cm9sbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSByb2xsIGFuZCB7QGxpbmsgI2FkZCBhZGR9IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+SGVicmV3Q2FsZW5kYXI8L3R0Pi4gIFNpbmNlIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZCBiZWhhdmVzCisgICAgICogZGlzY29udGludW91c2x5IGluIG5vbi1sZWFwIHllYXJzLCBzaW1wbGUgYXJpdGhtZXRpYyBjYW4gZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIGZpZWxkIHNob3VsZCBiZSByb2xsZWQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1vbnRoID0gZ2V0KE1PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhciA9IGdldChZRUFSKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sZWFuIGxlYXBZZWFyID0gaXNMZWFwWWVhcih5ZWFyKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhckxlbmd0aCA9IG1vbnRoc0luWWVhcih5ZWFyKTsKKyAgICAgICAgICAgICAgICBpbnQgbmV3TW9udGggPSBtb250aCArIChhbW91bnQgJSB5ZWFyTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIElmIGl0J3Mgbm90IGEgbGVhcCB5ZWFyIGFuZCB3ZSdyZSByb2xsaW5nIHBhc3QgdGhlIG1pc3NpbmcgbW9udGgKKyAgICAgICAgICAgICAgICAvLyBvZiBBREFSXzEsIHdlIG5lZWQgdG8gcm9sbCBhbiBleHRyYSBtb250aCB0byBtYWtlIHVwIGZvciBpdC4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGlmICghbGVhcFllYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFtb3VudCA+IDAgJiYgbW9udGggPCBBREFSXzEgJiYgbmV3TW9udGggPj0gQURBUl8xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdNb250aCsrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFtb3VudCA8IDAgJiYgbW9udGggPiBBREFSXzEgJiYgbmV3TW9udGggPD0gQURBUl8xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdNb250aC0tOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChNT05USCwgKG5ld01vbnRoICsgMTMpICUgMTMpOworICAgICAgICAgICAgICAgIHBpbkZpZWxkKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gSGVicmV3IGRhdGUgY2FsY3VsYXRpb25zIGFyZSBwZXJmb3JtZWQgaW4gdGVybXMgb2YgZGF5cywgaG91cnMsIGFuZAorICAgIC8vICJwYXJ0cyIgKG9yIGhhbGFraW0pLCB3aGljaCBhcmUgMS8xMDgwIG9mIGFuIGhvdXIsIG9yIDMgMS8zIHNlY29uZHMuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBIT1VSX1BBUlRTID0gMTA4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIERBWV9QQVJUUyAgPSAyNCpIT1VSX1BBUlRTOworICAgIAorICAgIC8vIEFuIGFwcHJveGltYXRlIHZhbHVlIGZvciB0aGUgbGVuZ3RoIG9mIGEgbHVuYXIgbW9udGguCisgICAgLy8gSXQgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGFwcHJveGltYXRlIHllYXIgYW5kIG1vbnRoIG9mIGEgZ2l2ZW4KKyAgICAvLyBhYnNvbHV0ZSBkYXRlLgorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGludCAgTU9OVEhfREFZUyA9IDI5OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgTU9OVEhfRlJBQ1QgPSAxMipIT1VSX1BBUlRTICsgNzkzOworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgTU9OVEhfUEFSVFMgPSBNT05USF9EQVlTKkRBWV9QQVJUUyArIE1PTlRIX0ZSQUNUOworICAgIAorICAgIC8vIFRoZSB0aW1lIG9mIHRoZSBuZXcgbW9vbiAoaW4gcGFydHMpIG9uIDEgVGlzaHJpLCB5ZWFyIDEgKHRoZSBlcG9jaCkKKyAgICAvLyBjb3VudGluZyBmcm9tIG5vb24gb24gdGhlIGRheSBiZWZvcmUuICBCQUhBUkFEIGlzIGFuIGFiYnJldmlhdGlvbiBvZgorICAgIC8vIEJldCAoTW9uZGF5KSwgSGV5ICg1IGhvdXJzIGZyb20gc3Vuc2V0KSwgUmVzaC1EYWxlZCAoMjA0KS4KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIEJBSEFSQUQgPSAxMSpIT1VSX1BBUlRTICsgMjA0OworCisgICAgLyoqCisgICAgICogRmluZHMgdGhlIGRheSAjIG9mIHRoZSBmaXJzdCBkYXkgaW4gdGhlIGdpdmVuIEhlYnJldyB5ZWFyLgorICAgICAqIFRvIGRvIHRoaXMsIHdlIHdhbnQgdG8gY2FsY3VsYXRlIHRoZSB0aW1lIG9mIHRoZSBUaXNocmkgMSBuZXcgbW9vbgorICAgICAqIGluIHRoYXQgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgYWxnb3JpdGhtIGhlcmUgaXMgc2ltaWxhciB0byBvbmVzIGRlc2NyaWJlZCBpbiBhIG51bWJlciBvZgorICAgICAqIHJlZmVyZW5jZXMsIGluY2x1ZGluZzoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiJDYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnMiLCBieSBOYWNodW0gRGVyc2hvd2l0eiAmIEVkd2FyZCBSZWluZ29sZCwKKyAgICAgKiAgICAgQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MsIDE5OTcsIHBhZ2VzIDg1LTkxLgorICAgICAqCisgICAgICogPGxpPkhlYnJldyBDYWxlbmRhciBTY2llbmNlIGFuZCBNeXRocywKKyAgICAgKiAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5nZW9jaXRpZXMuY29tL0F0aGVucy8xNTg0LyI+CisgICAgICogICAgIGh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvbS9BdGhlbnMvMTU4NC88L2E+CisgICAgICoKKyAgICAgKiA8bGk+VGhlIENhbGVuZGFyIEZBUSwKKyAgICAgKiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZmFxcy5vcmcvZmFxcy9jYWxlbmRhcnMvZmFxLyI+CisgICAgICogICAgICBodHRwOi8vd3d3LmZhcXMub3JnL2ZhcXMvY2FsZW5kYXJzL2ZhcS88L2E+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIHN0YXJ0T2ZZZWFyKGludCB5ZWFyKQorICAgIHsKKyAgICAgICAgbG9uZyBkYXkgPSBjYWNoZS5nZXQoeWVhcik7CisgICAgICAgIAorICAgICAgICBpZiAoZGF5ID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpIHsKKyAgICAgICAgICAgIGludCBtb250aHMgPSAoMjM1ICogeWVhciAtIDIzNCkgLyAxOTsgICAgICAgICAgIC8vICMgb2YgbW9udGhzIGJlZm9yZSB5ZWFyCisKKyAgICAgICAgICAgIGxvbmcgZnJhYyA9IG1vbnRocyAqIE1PTlRIX0ZSQUNUICsgQkFIQVJBRDsgICAgIC8vIEZyYWN0aW9uYWwgcGFydCBvZiBkYXkgIworICAgICAgICAgICAgZGF5ICA9IG1vbnRocyAqIDI5ICsgKGZyYWMgLyBEQVlfUEFSVFMpOyAgICAgICAgLy8gV2hvbGUgIyBwYXJ0IG9mIGNhbGN1bGF0aW9uCisgICAgICAgICAgICBmcmFjID0gZnJhYyAlIERBWV9QQVJUUzsgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaW1lIG9mIGRheQorCisgICAgICAgICAgICBpbnQgd2QgPSAoaW50KShkYXkgJSA3KTsgICAgICAgICAgICAgICAgICAgICAgICAvLyBEYXkgb2Ygd2VlayAoMCA9PSBNb25kYXkpCisKKyAgICAgICAgICAgIGlmICh3ZCA9PSAyIHx8IHdkID09IDQgfHwgd2QgPT0gNikgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSAxc3QgaXMgb24gU3VuLCBXZWQsIG9yIEZyaSwgcG9zdHBvbmUgdG8gdGhlIG5leHQgZGF5CisgICAgICAgICAgICAgICAgZGF5ICs9IDE7CisgICAgICAgICAgICAgICAgd2QgPSAoaW50KShkYXkgJSA3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh3ZCA9PSAxICYmIGZyYWMgPiAxNSpIT1VSX1BBUlRTKzIwNCAmJiAhaXNMZWFwWWVhcih5ZWFyKSApIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbmV3IG1vb24gZmFsbHMgYWZ0ZXIgMzoxMToyMGFtICgxNWgyMDRwIGZyb20gdGhlIHByZXZpb3VzIG5vb24pCisgICAgICAgICAgICAgICAgLy8gb24gYSBUdWVzZGF5IGFuZCBpdCBpcyBub3QgYSBsZWFwIHllYXIsIHBvc3Rwb25lIGJ5IDIgZGF5cy4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIDM1Ni1kYXkgeWVhcnMuCisgICAgICAgICAgICAgICAgZGF5ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh3ZCA9PSAwICYmIGZyYWMgPiAyMSpIT1VSX1BBUlRTKzU4OSAmJiBpc0xlYXBZZWFyKHllYXItMSkgKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5ldyBtb29uIGZhbGxzIGFmdGVyIDk6MzI6NDMgMS8zYW0gKDIxaDU4OXAgZnJvbSB5ZXN0ZXJkYXkgbm9vbikKKyAgICAgICAgICAgICAgICAvLyBvbiBhIE1vbmRheSBhbmQgKmxhc3QqIHllYXIgd2FzIGEgbGVhcCB5ZWFyLCBwb3N0cG9uZSBieSAxIGRheS4KKyAgICAgICAgICAgICAgICAvLyBQcmV2ZW50cyAzODItZGF5IHllYXJzLgorICAgICAgICAgICAgICAgIGRheSArPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FjaGUucHV0KHllYXIsIGRheSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRheTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEZpbmQgdGhlIGRheSBvZiB0aGUgd2VlayBmb3IgYSBnaXZlbiBkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXkgICBUaGUgIyBvZiBkYXlzIHNpbmNlIHRoZSBzdGFydCBvZiB0aGUgSGVicmV3IGNhbGVuZGFyLAorICAgICAqICAgICAgICAgICAgICAxLWJhc2VkIChpLmUuIDEvMS8xIEFNIGlzIGRheSAxKS4KKyAgICAgKi8KKyAgICAvKnByaXZhdGUgc3RhdGljIGludCBhYnNvbHV0ZURheVRvRGF5T2ZXZWVrKGxvbmcgZGF5KQorICAgIHsKKyAgICAgICAgLy8gV2Uga25vdyB0aGF0IDEvMS8xIEFNIGlzIGEgTW9uZGF5LCB3aGljaCBtYWtlcyB0aGUgbWF0aCBlYXN5Li4uCisgICAgICAgIHJldHVybiAoaW50KShkYXkgJSA3KSArIDE7CisgICAgfSovCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0aGUgdHlwZSBvZiBhIGdpdmVuIHllYXIuCisgICAgICogIDAgICAiRGVmaWNpZW50IiB5ZWFyIHdpdGggMzUzIG9yIDM4MyBkYXlzCisgICAgICogIDEgICAiTm9ybWFsIiAgICB5ZWFyIHdpdGggMzU0IG9yIDM4NCBkYXlzCisgICAgICogIDIgICAiQ29tcGxldGUiICB5ZWFyIHdpdGggMzU1IG9yIDM4NSBkYXlzCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgeWVhclR5cGUoaW50IHllYXIpCisgICAgeworICAgICAgICBpbnQgeWVhckxlbmd0aCA9IGhhbmRsZUdldFllYXJMZW5ndGgoeWVhcik7CisKKyAgICAgICAgaWYgKHllYXJMZW5ndGggPiAzODApIHsKKyAgICAgICAgICAgeWVhckxlbmd0aCAtPSAzMDsgICAgICAgIC8vIFN1YnRyYWN0IGxlbmd0aCBvZiBsZWFwIG1vbnRoLgorICAgICAgICB9CisKKyAgICAgICAgaW50IHR5cGUgPSAwOworCisgICAgICAgIHN3aXRjaCAoeWVhckxlbmd0aCkgeworICAgICAgICAgICAgY2FzZSAzNTM6CisgICAgICAgICAgICAgICAgdHlwZSA9IDA7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAzNTQ6CisgICAgICAgICAgICAgICAgdHlwZSA9IDE7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAzNTU6CisgICAgICAgICAgICAgICAgdHlwZSA9IDI7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHllYXIgbGVuZ3RoICIgKyB5ZWFyTGVuZ3RoICsgIiBpbiB5ZWFyICIgKyB5ZWFyKTsKKworICAgICAgICB9CisgICAgICAgIHJldHVybiB0eXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIGEgZ2l2ZW4gSGVicmV3IHllYXIgaXMgYSBsZWFwIHllYXIKKyAgICAgKgorICAgICAqIFRoZSBydWxlIGhlcmUgaXMgdGhhdCBpZiAoeWVhciAlIDE5KSA9PSAwLCAzLCA2LCA4LCAxMSwgMTQsIG9yIDE3LgorICAgICAqIFRoZSBmb3JtdWxhIGJlbG93IHBlcmZvcm1zIHRoZSBzYW1lIHRlc3QsIGJlbGlldmUgaXQgb3Igbm90LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNMZWFwWWVhcihpbnQgeWVhcikgeworICAgICAgICAvL3JldHVybiAoeWVhciAqIDEyICsgMTcpICUgMTkgPj0gMTI7CisgICAgICAgIGludCB4ID0gKHllYXIqMTIgKyAxNykgJSAxOTsKKyAgICAgICAgcmV0dXJuIHggPj0gKCh4IDwgMCkgPyAtNyA6IDEyKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbW9udGhzSW5ZZWFyKGludCB5ZWFyKSB7CisgICAgICAgIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMTMgOiAxMjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYWxlbmRhciBmcmFtZXdvcmsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBnaXZlbiBtb250aCBpbiB0aGUgZ2l2ZW4geWVhcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TW9udGhMZW5ndGgoaW50IGV4dGVuZGVkWWVhciwgaW50IG1vbnRoKSB7CisKKyAgICAgICAgc3dpdGNoIChtb250aCkgeworICAgICAgICAgICAgY2FzZSBIRVNIVkFOOgorICAgICAgICAgICAgY2FzZSBLSVNMRVY6CisgICAgICAgICAgICAgICAgLy8gVGhlc2UgdHdvIG1vbnRoIGxlbmd0aHMgY2FuIHZhcnkKKyAgICAgICAgICAgICAgICByZXR1cm4gTU9OVEhfTEVOR1RIW21vbnRoXVt5ZWFyVHlwZShleHRlbmRlZFllYXIpXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLy8gVGhlIHJlc3QgYXJlIGEgZml4ZWQgbGVuZ3RoCisgICAgICAgICAgICAgICAgcmV0dXJuIE1PTlRIX0xFTkdUSFttb250aF1bMF07CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4gSGVicmV3IHllYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldFllYXJMZW5ndGgoaW50IGV5ZWFyKSB7CisgICAgICAgIHJldHVybiAoaW50KShzdGFydE9mWWVhcihleWVhcisxKSAtIHN0YXJ0T2ZZZWFyKGV5ZWFyKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gbWlsbGlzZWNvbmRzIHRvIGZpZWxkIHZhbHVlcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcworICAgICAqIHNwZWNpZmljIHRvIGVhY2ggY2FsZW5kYXIgc3lzdGVtLiAgVGhlc2UgYXJlOgorICAgICAqCisgICAgICogPHVsPjxsaT5FUkEKKyAgICAgKiA8bGk+WUVBUgorICAgICAqIDxsaT5NT05USAorICAgICAqIDxsaT5EQVlfT0ZfTU9OVEgKKyAgICAgKiA8bGk+REFZX09GX1lFQVIKKyAgICAgKiA8bGk+RVhURU5ERURfWUVBUjwvdWw+CisgICAgICogCisgICAgICogU3ViY2xhc3NlcyBjYW4gcmVmZXIgdG8gdGhlIERBWV9PRl9XRUVLIGFuZCBET1dfTE9DQUwgZmllbGRzLAorICAgICAqIHdoaWNoIHdpbGwgYmUgc2V0IHdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkLiAgU3ViY2xhc3NlcyBjYW4KKyAgICAgKiBhbHNvIGNhbGwgdGhlIGdldEdyZWdvcmlhblh4eCgpIG1ldGhvZHMgdG8gb2J0YWluIEdyZWdvcmlhbgorICAgICAqIGNhbGVuZGFyIGVxdWl2YWxlbnRzIGZvciB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4KKyAgICAgKgorICAgICAqIDxwPkluIGFkZGl0aW9uLCBzdWJjbGFzc2VzIHNob3VsZCBjb21wdXRlIGFueSBzdWJjbGFzcy1zcGVjaWZpYworICAgICAqIGZpZWxkcywgdGhhdCBpcywgZmllbGRzIGZyb20gQkFTRV9GSUVMRF9DT1VOVCB0bworICAgICAqIGdldEZpZWxkQ291bnQoKSAtIDEuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIGxvbmcgZCA9IGp1bGlhbkRheSAtIDM0Nzk5NzsKKyAgICAgICAgbG9uZyBtID0gKGQgKiBEQVlfUEFSVFMpIC8gTU9OVEhfUEFSVFM7ICAgICAgICAgLy8gTW9udGhzIChhcHByb3gpCisgICAgICAgIGludCB5ZWFyID0gKGludCkoKDE5ICogbSArIDIzNCkgLyAyMzUpICsgMTsgICAgIC8vIFllYXJzIChhcHByb3gpCisgICAgICAgIGxvbmcgeXMgID0gc3RhcnRPZlllYXIoeWVhcik7ICAgICAgICAgICAgICAgICAgIC8vIDFzdCBkYXkgb2YgeWVhcgorICAgICAgICBpbnQgZGF5T2ZZZWFyID0gKGludCkoZCAtIHlzKTsKKworICAgICAgICAvLyBCZWNhdXNlIG9mIHRoZSBwb3N0cG9uZW1lbnQgcnVsZXMsIGl0J3MgcG9zc2libGUgdG8gZ3Vlc3Mgd3JvbmcuICBGaXggaXQuCisgICAgICAgIHdoaWxlIChkYXlPZlllYXIgPCAxKSB7CisgICAgICAgICAgICB5ZWFyLS07CisgICAgICAgICAgICB5cyAgPSBzdGFydE9mWWVhcih5ZWFyKTsKKyAgICAgICAgICAgIGRheU9mWWVhciA9IChpbnQpKGQgLSB5cyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgZmlndXJlIG91dCB3aGljaCBtb250aCB3ZSdyZSBpbiwgYW5kIHRoZSBkYXRlIHdpdGhpbiB0aGF0IG1vbnRoCisgICAgICAgIGludCB5ZWFyVHlwZSA9IHllYXJUeXBlKHllYXIpOworICAgICAgICBpbnQgbW9udGhTdGFydFtdW10gPSBpc0xlYXBZZWFyKHllYXIpID8gTEVBUF9NT05USF9TVEFSVCA6IE1PTlRIX1NUQVJUOworCisgICAgICAgIGludCBtb250aCA9IDA7CisgICAgICAgIHdoaWxlIChkYXlPZlllYXIgPiBtb250aFN0YXJ0W21vbnRoXVt5ZWFyVHlwZV0pIHsKKyAgICAgICAgICAgIG1vbnRoKys7CisgICAgICAgIH0KKyAgICAgICAgbW9udGgtLTsKKyAgICAgICAgaW50IGRheU9mTW9udGggPSBkYXlPZlllYXIgLSBtb250aFN0YXJ0W21vbnRoXVt5ZWFyVHlwZV07CisKKyAgICAgICAgaW50ZXJuYWxTZXQoRVJBLCAwKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgeWVhcik7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIHllYXIpOworICAgICAgICBpbnRlcm5hbFNldChNT05USCwgbW9udGgpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfTU9OVEgsIGRheU9mTW9udGgpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfWUVBUiwgZGF5T2ZZZWFyKTsgICAgICAgCisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gZmllbGQgdmFsdWVzIHRvIG1pbGxpc2Vjb25kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIEpEIG9mIHN0YXJ0IG9mIGdpdmVuIG1vbnRoL3llYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworCisgICAgICAgIC8vIFJlc29sdmUgb3V0LW9mLXJhbmdlIG1vbnRocy4gIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvCisgICAgICAgIC8vIG9idGFpbiB0aGUgY29ycmVjdCB5ZWFyLiAgV2UgY29ycmVjdCB0bworICAgICAgICAvLyBhIDEyLSBvciAxMy1tb250aCB5ZWFyIChhZGQvc3VidHJhY3QgMTIgb3IgMTMsIGRlcGVuZGluZworICAgICAgICAvLyBvbiB0aGUgeWVhcikgYnV0IHNpbmNlIHdlIF9hbHdheXNfIG51bWJlciBmcm9tIDAuLjEyLCBhbmQKKyAgICAgICAgLy8gdGhlIGxlYXAgeWVhciBkZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IG1vbnRoIDUgKEFkYXIgMSkKKyAgICAgICAgLy8gaXMgcHJlc2VudCwgd2UgYWxsb3cgMC4uMTIgaW4gYW55IGdpdmVuIHllYXIuCisgICAgICAgIHdoaWxlIChtb250aCA8IDApIHsKKyAgICAgICAgICAgIG1vbnRoICs9IG1vbnRoc0luWWVhcigtLWV5ZWFyKTsKKyAgICAgICAgfQorICAgICAgICAvLyBDYXJlZnVsOiBhbGxvdyAwLi4xMiBpbiBhbGwgeWVhcnMKKyAgICAgICAgd2hpbGUgKG1vbnRoID4gMTIpIHsKKyAgICAgICAgICAgIG1vbnRoIC09IG1vbnRoc0luWWVhcihleWVhcisrKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgZGF5ID0gc3RhcnRPZlllYXIoZXllYXIpOworCisgICAgICAgIGlmIChtb250aCAhPSAwKSB7CisgICAgICAgICAgICBpZiAoaXNMZWFwWWVhcihleWVhcikpIHsKKyAgICAgICAgICAgICAgICBkYXkgKz0gTEVBUF9NT05USF9TVEFSVFttb250aF1beWVhclR5cGUoZXllYXIpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGF5ICs9IE1PTlRIX1NUQVJUW21vbnRoXVt5ZWFyVHlwZShleWVhcildOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIChpbnQpIChkYXkgKyAzNDc5OTcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBDYWxlbmRhciB0eXBlLgorICAgICAqIEByZXR1cm4gdHlwZSBvZiBjYWxlbmRhciAoZ3JlZ29yaWFuLCBldGMuKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImhlYnJldyI7CisgICAgfQorCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeTsKKyAgICBwdWJsaWMgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5KCkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICBmYWN0b3J5ID0gbmV3IENhbGVuZGFyRmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgQ2FsZW5kYXIgY3JlYXRlKFRpbWVab25lIHR6LCBVTG9jYWxlIGxvYykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEhlYnJld0NhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSGVicmV3IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3SG9saWRheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3SG9saWRheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxZmZmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdIb2xpZGF5LmphdmEKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworLyoqCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBIZWJyZXdIb2xpZGF5IGV4dGVuZHMgSG9saWRheQoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhlYnJld0NhbGVuZGFyIGdDYWxlbmRhciA9IG5ldyBIZWJyZXdDYWxlbmRhcigpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgaG9saWRheSBkZWZpbmVkIGluIHJlZmVyZW5jZSB0byB0aGUgSGVicmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdIb2xpZGF5KGludCBtb250aCwgaW50IGRhdGUsIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgdGhpcyhtb250aCwgZGF0ZSwgMSwgbmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3SG9saWRheShpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgbGVuZ3RoLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF0ZSwgZ0NhbGVuZGFyKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgUk9TSF9IQVNIQU5BSCAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAgMSwgIDIsICAiUm9zaCBIYXNoYW5haCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgR0VEQUxJQUggICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAgMywgICAgICAiRmFzdCBvZiBHZWRhbGlhaCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgWU9NX0tJUFBVUiAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAxMCwgICAgICAiWW9tIEtpcHB1ciIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgU1VLS09UICAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAxNSwgIDYsICAiU3Vra290Iik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBIT1NIQU5BSF9SQUJCQUggPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksIDIxLCAgICAgICJIb3NoYW5haCBSYWJiYWgiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFNIRU1JTklfQVRaRVJFVCA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgMjIsICAgICAgIlNoZW1pbmkgQXR6ZXJldCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgU0lNQ0hBVF9UT1JBSCAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAyMywgICAgICAiU2ltY2hhdCBUb3JhaCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgSEFOVUtLQUggICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuS0lTTEVWLCAyNSwgICAgICAiSGFudWtrYWgiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFRFVkVUXzEwICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRFVkVULCAgMTAsICAgICAgIkZhc3Qgb2YgVGV2ZXQgMTAiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFRVX0JTSEVWQVQgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlNIRVZBVCwgMTUsICAgICAgIlR1IEInU2hldmF0Iik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBFU1RIRVIgICAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5BREFSLCAgIDEzLCAgICAgICJGYXN0IG9mIEVzdGhlciIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgUFVSSU0gICAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQURBUiwgICAxNCwgICAgICAiUHVyaW0iKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFNIVVNIQU5fUFVSSU0gICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLkFEQVIsICAgMTUsICAgICAgIlNodXNoYW4gUHVyaW0iKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFBBU1NPVkVSICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLk5JU0FOLCAgMTUsICA4LCAgIlBhc3NvdmVyIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBZT01fSEFTSE9BSCAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5OSVNBTiwgIDI3LCAgICAgICJZb20gSGFzaG9haCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgWU9NX0hBWklLQVJPTiAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuSVlBUiwgICAgNCwgICAgICAiWW9tIEhhemlrYXJvbiIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgWU9NX0hBQVRaTUFVVCAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuSVlBUiwgICAgNSwgICAgICAiWW9tIEhhJ0F0em1hdXQiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFBFU0FDSF9TSEVJTkkgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLklZQVIsICAgMTQsICAgICAgIlBlc2FjaCBTaGVpbmkiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IExBR19CT01FUiAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLklZQVIsICAgMTgsICAgICAgIkxhYiBCJ09tZXIiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFlPTV9ZRVJVU0hBTEFZSU0gPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5JWUFSLCAgIDI4LCAgICAgICJZb20gWWVydXNoYWxheWltIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBTSEFWVU9UICAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5TSVZBTiwgICA2LCAgMiwgICJTaGF2dW90Iik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBUQU1NVVpfMTcgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5UQU1VWiwgIDE3LCAgICAgICJGYXN0IG9mIFRhbW11eiAxNyIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgVElTSEFfQkFWICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQVYsICAgICAgOSwgICAgICAiRmFzdCBvZiBUaXNoYSBCJ0F2Iik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBTRUxJSE9UICAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5FTFVMLCAgIDIxLCAgICAgICJTZWxpaG90Iik7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Ib2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Ib2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWNhNzUxMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0hvbGlkYXkuamF2YQpAQCAtMCwwICsxLDIwOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBBbiBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYSBob2xpZGF5LgorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgSG9saWRheSBpbXBsZW1lbnRzIERhdGVSdWxlCit7CisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhvbGlkYXlbXSBnZXRIb2xpZGF5cygpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SG9saWRheXMoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIb2xpZGF5W10gZ2V0SG9saWRheXMoTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRIb2xpZGF5cyhVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSG9saWRheVtdIGdldEhvbGlkYXlzKFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgSG9saWRheVtdIHJlc3VsdCA9IG5vSG9saWRheXM7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiSG9saWRheUJ1bmRsZSIsIGxvY2FsZSk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IChIb2xpZGF5W10pIGJ1bmRsZS5nZXRPYmplY3QoImhvbGlkYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhpcyBob2xpZGF5IG9uIG9yIGFmdGVyIHRoZSBnaXZlbiBkYXRlCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBob2xpZGF5cyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgaG9saWRheSBvY2N1cnMsIG9yIG51bGwgaWYgaXQKKyAgICAgKiAgICAgICAgICAgICAgZG9lcyBub3Qgb2NjdXIgb24gb3IgYWZ0ZXIgdGhlIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEJldHdlZW4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QWZ0ZXIoRGF0ZSBzdGFydCkgeworICAgICAgICByZXR1cm4gcnVsZS5maXJzdEFmdGVyKHN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhpcyBob2xpZGF5IHRoYXQgaXMgb24gb3IgYWZ0ZXIKKyAgICAgKiB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZSBhbmQgYmVmb3JlIHRoZSBnaXZlbiBlbmQgZGF0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBPbmx5IG9jY3VycmFuY2VzIG9uIG9yIGFmdGVyIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGVuZCAgIE9ubHkgb2NjdXJyYW5jZXMgYmVmb3JlIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIGRhdGUgb24gd2hpY2ggdGhpcyBldmVudCBvY2N1cnMsIG9yIG51bGwgaWYgaXQKKyAgICAgKiAgICAgICAgICAgICAgZG9lcyBub3Qgb2NjdXIgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBkYXRlcy4KKyAgICAgKgorICAgICAqIEBzZWUgI2ZpcnN0QWZ0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkgeworICAgICAgICByZXR1cm4gcnVsZS5maXJzdEJldHdlZW4oc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIHdoZXRoZXIgdGhpcyBob2xpZGF5IGZhbGxzIG9uIHRoZSBnaXZlbiBkYXRlLiAgVGhpcyBkb2VzCisgICAgICogPGVtPm5vdDwvZW0+IHRha2UgdGltZSBvZiBkYXkgaW50byBhY2NvdW50OyBpbnN0ZWFkIGl0IGNoZWNrcworICAgICAqIHdoZXRoZXIgdGhlIGhvbGlkYXkgYW5kIHRoZSBnaXZlbiBkYXRlIGFyZSBvbiB0aGUgc2FtZSBkYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgVGhlIGRhdGUgdG8gY2hlY2suCisgICAgICogQHJldHVybiAgICAgIHRydWUgaWYgdGhpcyBob2xpZGF5IG9jY3VycyBvbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzT24oRGF0ZSBkYXRlKSB7CisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiLmlzT24oIiArIGRhdGUudG9TdHJpbmcoKSArICIpOiIpOworICAgICAgICByZXR1cm4gcnVsZS5pc09uKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHdoZXRoZXIgdGhpcyBob2xpZGF5IG9jY3VycyBhdCBsZWFzdCBvbmNlIGJldHdlZW4gdGhlIHR3bworICAgICAqIGRhdGVzIGdpdmVuLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKSB7CisgICAgICAgIHJldHVybiBydWxlLmlzQmV0d2VlbihzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgSG9saWRheSBvYmplY3QuICBUaGlzIGlzIGZvciB1c2UgYnkgc3ViY2xhc3NlcyBvbmx5LgorICAgICAqIFRoaXMgY29uc3RydWN0cyBhIG5ldyBob2xpZGF5IHdpdGggdGhlIGdpdmVuIG5hbWUgYW5kIGRhdGUgcnVsZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSAgVGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5LiAgVGhlIGdldERpc3BsYXlOYW1lIG1ldGhvZAorICAgICAqICAgICAgICAgICAgICB1c2VzIHRoaXMgc3RyaW5nIGFzIGEga2V5IHRvIGxvb2sgdXAgdGhlIGhvbGlkYXkncyBuYW1lIGEKKyAgICAgKiAgICAgICAgICAgICAgcmVzb3VyY2UgYnVuZGxlIG9iamVjdCBuYW1lZCBIb2xpZGF5QnVuZGxlLgorICAgICAqCisgICAgICogQHBhcmFtIHJ1bGUgIFRoZSBkYXRlIHJ1bGVzIHVzZWQgZm9yIGRldGVybWluaW5nIHdoZW4gdGhpcyBob2xpZGF5CisgICAgICogICAgICAgICAgICAgIGZhbGxzLiAgSG9saWRheSdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEYXRlUnVsZSBpbnRlZmFjZQorICAgICAqICAgICAgICAgICAgICBzaW1wbHkgZGVsZWdhdGVzIHRvIHRoaXMgRGF0ZVJ1bGUgb2JqZWN0LgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIEhvbGlkYXkoU3RyaW5nIG5hbWUsIERhdGVSdWxlIHJ1bGUpCisgICAgeworICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB0aGlzLnJ1bGUgPSBydWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5IGluIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoaXMgb2JqZWN0J3MgY29uc3RydWN0b3IgaXMgdXNlZAorICAgICAqIGFzIGEga2V5IHRvIGxvb2sgdXAgdGhlIGhvbGlkYXkncyBsb2NhbGl6ZWQgbmFtZSBpbiBhIFJlc291cmNlQnVuZGxlIG9iamVjdAorICAgICAqIG5hbWVkIEhvbGlkYXlCdW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2UgaW4gd2hpY2ggdGhlIG5hbWUgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5IGluIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoaXMgb2JqZWN0J3MgY29uc3RydWN0b3IgaXMgdXNlZAorICAgICAqIGFzIGEga2V5IHRvIGxvb2sgdXAgdGhlIGhvbGlkYXkncyBsb2NhbGl6ZWQgbmFtZSBpbiBhIFJlc291cmNlQnVuZGxlIG9iamVjdAorICAgICAqIG5hbWVkIEhvbGlkYXlCdW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2UgaW4gd2hpY2ggdGhlIG5hbWUgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICBTdHJpbmcgbmFtZSA9IHRoaXMubmFtZTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJIb2xpZGF5QnVuZGxlIiwgbG9jYWxlKTsKKyAgICAgICAgICAgIG5hbWUgPSBidW5kbGUuZ2V0U3RyaW5nKG5hbWUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlVzaW5nIGRlZmF1bHQgZGlzcGxheSBuYW1lIGZvciAiICsgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZVJ1bGUgZ2V0UnVsZSgpIHsKKyAgICAgICAgcmV0dXJuIHJ1bGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSdWxlKERhdGVSdWxlIHJ1bGUpIHsKKyAgICAgICAgdGhpcy5ydWxlID0gcnVsZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyAgICAgIG5hbWU7CisgICAgcHJpdmF0ZSBEYXRlUnVsZSAgICBydWxlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgSG9saWRheVtdIG5vSG9saWRheXMgPSB7fTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0lzbGFtaWNDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVkZmVmOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0lzbGFtaWNDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsNjcwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckFzdHJvbm9tZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckNhY2hlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCB0aGF0IGltcGxlbWVudHMgdGhlIElzbGFtaWMgY2l2aWwgYW5kIHJlbGlnaW91cyBjYWxlbmRhcnMuICBJdAorICogaXMgdXNlZCBhcyB0aGUgY2l2aWwgY2FsZW5kYXIgaW4gbW9zdCBvZiB0aGUgQXJhYiB3b3JsZCBhbmQgdGhlCisgKiBsaXR1cmdpY2FsIGNhbGVuZGFyIG9mIHRoZSBJc2xhbWljIGZhaXRoIHdvcmxkd2lkZS4gIFRoaXMgY2FsZW5kYXIKKyAqIGlzIGFsc28ga25vd24gYXMgdGhlICJIaWpyaSIgY2FsZW5kYXIsIHNpbmNlIGl0IHN0YXJ0cyBhdCB0aGUgdGltZQorICogb2YgTW9oYW1tZWQncyBlbWlncmF0aW9uIChvciAiaGlqcmEiKSB0byBNZWRpbmFoIG9uIFRodXJzZGF5LCAKKyAqIEp1bHkgMTUsIDYyMiBBRCAoSnVsaWFuKS4KKyAqIDxwPgorICogVGhlIElzbGFtaWMgY2FsZW5kYXIgaXMgc3RyaWN0bHkgbHVuYXIsIGFuZCB0aHVzIGFuIElzbGFtaWMgeWVhciBvZiB0d2VsdmUKKyAqIGx1bmFyIG1vbnRocyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBzb2xhciB5ZWFyIHVzZWQgYnkgbW9zdCBvdGhlcgorICogY2FsZW5kYXIgc3lzdGVtcywgaW5jbHVkaW5nIHRoZSBHcmVnb3JpYW4uICBBbiBJc2xhbWljIHllYXIgaXMsIG9uIGF2ZXJhZ2UsCisgKiBhYm91dCAzNTQgZGF5cyBsb25nLCBzbyBlYWNoIHN1Y2Nlc3NpdmUgSXNsYW1pYyB5ZWFyIHN0YXJ0cyBhYm91dCAxMSBkYXlzCisgKiBlYXJsaWVyIGluIHRoZSBjb3JyZXNwb25kaW5nIEdyZWdvcmlhbiB5ZWFyLgorICogPHA+CisgKiBFYWNoIG1vbnRoIG9mIHRoZSBjYWxlbmRhciBzdGFydHMgd2hlbiB0aGUgbmV3IG1vb24ncyBjcmVzY2VudCBpcyB2aXNpYmxlCisgKiBhdCBzdW5zZXQuICBIb3dldmVyLCBpbiBvcmRlciB0byBrZWVwIHRoZSB0aW1lIGZpZWxkcyBpbiB0aGlzIGNsYXNzCisgKiBzeW5jaHJvbml6ZWQgd2l0aCB0aG9zZSBvZiB0aGUgb3RoZXIgY2FsZW5kYXJzIGFuZCB3aXRoIGxvY2FsIGNsb2NrIHRpbWUsCisgKiB3ZSB0cmVhdCBkYXlzIGFuZCBtb250aHMgYXMgYmVnaW5uaW5nIGF0IG1pZG5pZ2h0LAorICogcm91Z2hseSA2IGhvdXJzIGFmdGVyIHRoZSBjb3JyZXNwb25kaW5nIHN1bnNldC4KKyAqIDxwPgorICogVGhlcmUgYXJlIHR3byBtYWluIHZhcmlhbnRzIG9mIHRoZSBJc2xhbWljIGNhbGVuZGFyIGluIGV4aXN0ZW5jZS4gIFRoZSBmaXJzdAorICogaXMgdGhlIDxlbT5jaXZpbDwvZW0+IGNhbGVuZGFyLCB3aGljaCB1c2VzIGEgZml4ZWQgY3ljbGUgb2YgYWx0ZXJuYXRpbmcgMjktCisgKiBhbmQgMzAtZGF5IG1vbnRocywgd2l0aCBhIGxlYXAgZGF5IGFkZGVkIHRvIHRoZSBsYXN0IG1vbnRoIG9mIDExIG91dCBvZgorICogZXZlcnkgMzAgeWVhcnMuICBUaGlzIGNhbGVuZGFyIGlzIGVhc2lseSBjYWxjdWxhdGVkIGFuZCB0aHVzIHByZWRpY3RhYmxlIGluCisgKiBhZHZhbmNlLCBzbyBpdCBpcyB1c2VkIGFzIHRoZSBjaXZpbCBjYWxlbmRhciBpbiBhIG51bWJlciBvZiBBcmFiIGNvdW50cmllcy4KKyAqIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgYSBuZXdseS1jcmVhdGVkIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4KKyAqIG9iamVjdC4KKyAqIDxwPgorICogVGhlIElzbGFtaWMgPGVtPnJlbGlnaW91czwvZW0+IGNhbGVuZGFyLCBob3dldmVyLCBpcyBiYXNlZCBvbiB0aGUgPGVtPm9ic2VydmF0aW9uPC9lbT4KKyAqIG9mIHRoZSBjcmVzY2VudCBtb29uLiAgSXQgaXMgdGh1cyBhZmZlY3RlZCBieSB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdGhlCisgKiBvYnNlcnZhdGlvbnMgYXJlIG1hZGUsIHNlYXNvbmFsIHZhcmlhdGlvbnMgaW4gdGhlIHRpbWUgb2Ygc3Vuc2V0LCB0aGUKKyAqIGVjY2VudHJpY2l0aWVzIG9mIHRoZSBtb29uJ3Mgb3JiaXQsIGFuZCBldmVuIHRoZSB3ZWF0aGVyIGF0IHRoZSBvYnNlcnZhdGlvbgorICogc2l0ZS4gIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBjYWxjdWxhdGUgaW4gYWR2YW5jZSwgYW5kIGl0IGNhdXNlcyB0aGUKKyAqIHN0YXJ0IG9mIGEgbW9udGggaW4gdGhlIHJlbGlnaW91cyBjYWxlbmRhciB0byBkaWZmZXIgZnJvbSB0aGUgY2l2aWwgY2FsZW5kYXIKKyAqIGJ5IHVwIHRvIHRocmVlIGRheXMuCisgKiA8cD4KKyAqIFVzaW5nIGFzdHJvbm9taWNhbCBjYWxjdWxhdGlvbnMgZm9yIHRoZSBwb3NpdGlvbiBvZiB0aGUgc3VuIGFuZCBtb29uLCB0aGUKKyAqIG1vb24ncyBpbGx1bWluYXRpb24sIGFuZCBvdGhlciBmYWN0b3JzLCBpdCBpcyBwb3NzaWJsZSB0byBkZXRlcm1pbmUgdGhlIHN0YXJ0CisgKiBvZiBhIGx1bmFyIG1vbnRoIHdpdGggYSBmYWlybHkgaGlnaCBkZWdyZWUgb2YgY2VydGFpbnR5LiAgSG93ZXZlciwgdGhlc2UKKyAqIGNhbGN1bGF0aW9ucyBhcmUgZXh0cmVtZWx5IGNvbXBsaWNhdGVkIGFuZCB0aHVzIHNsb3csIHNvIG1vc3QgYWxnb3JpdGhtcywKKyAqIGluY2x1ZGluZyB0aGUgb25lIHVzZWQgaGVyZSwgYXJlIG9ubHkgYXBwcm94aW1hdGlvbnMgb2YgdGhlIHRydWUgYXN0cm9uaWNhbAorICogY2FsY3VsYXRpb25zLiAgQXQgcHJlc2VudCwgdGhlIGFwcHJveGltYXRpb25zIHVzZWQgaW4gdGhpcyBjbGFzcyBhcmUgZmFpcmx5CisgKiBzaW1wbGlzdGljOyB0aGV5IHdpbGwgYmUgaW1wcm92ZWQgaW4gbGF0ZXIgdmVyc2lvbnMgb2YgdGhlIGNvZGUuCisgKiA8cD4KKyAqIFRoZSB7QGxpbmsgI3NldENpdmlsIHNldENpdmlsfSBtZXRob2QgZGV0ZXJtaW5lcworICogd2hpY2ggYXBwcm9hY2ggaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHN0YXJ0IG9mIGEgbW9udGguICBCeSBkZWZhdWx0LCB0aGUKKyAqIGZpeGVkLWN5Y2xlIGNpdmlsIGNhbGVuZGFyIGlzIHVzZWQuICBIb3dldmVyLCBpZiA8Y29kZT5zZXRDaXZpbChmYWxzZSk8L2NvZGU+CisgKiBpcyBjYWxsZWQsIGFuIGFwcHJveGltYXRpb24gb2YgdGhlIHRydWUgbHVuYXIgY2FsZW5kYXIgd2lsbCBiZSB1c2VkLgorICogPHA+CisgKiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgc3ViY2xhc3NlZC48L3A+CisgKiA8cD4KKyAqIElzbGFtaWNDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1pc2xhbWljIjwvY29kZT4gb3IgPGNvZGU+IkBjYWxlbmRhcj1pc2xhbWljLWNpdmlsIjwvY29kZT4uPC9wPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgSXNsYW1pY0NhbGVuZGFyIGV4dGVuZHMgQ2FsZW5kYXIgeworICAgIC8vIGpkazEuNC4yIHNlcmlhbHZlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC02MjUzMzY1NDc0MDczODY5MzI1TDsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk3LTE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBNdWhhcnJhbSwgdGhlIDFzdCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTVVIQVJSQU0gPSAwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFNhZmFyLCB0aGUgMm5kIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQUZBUiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgUmFiaScgYWwtYXd3YWwgKG9yIFJhYmknIEkpLCB0aGUgM3JkIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUJJXzEgPSAyOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFJhYmknIGFsLXRoYW5pIG9yIChSYWJpJyBJSSksIHRoZSA0dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBQklfMiA9IDM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgSnVtYWRhIGFsLWF3d2FsIG9yIChKdW1hZGEgSSksIHRoZSA1dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTUFEQV8xID0gNDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBKdW1hZGEgYWwtdGhhbmkgb3IgKEp1bWFkYSBJSSksIHRoZSA2dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTUFEQV8yID0gNTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBSYWphYiwgdGhlIDd0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFKQUIgPSA2OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFNoYSdiYW4sIHRoZSA4dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIQUJBTiA9IDc7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgUmFtYWRhbiwgdGhlIDl0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFNQURBTiA9IDg7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgU2hhd3dhbCwgdGhlIDEwdGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIQVdXQUwgPSA5OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIERodSBhbC1RaSdkYWgsIHRoZSAxMXRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESFVfQUxfUUlEQUggPSAxMDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBEaHUgYWwtSGlqamFoLCB0aGUgMTJ0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREhVX0FMX0hJSkpBSCA9IDExOworCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIEhJSlJBX01JTExJUyA9IC00MjUyMTU4NzIwMDAwMEw7ICAgIC8vIDcvMTYvNjIyIEFEIDAwOjAwCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKCkKKyAgICB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihUaW1lWm9uZSB6b25lKQorICAgIHsKKyAgICAgICAgdGhpcyh6b25lLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihEYXRlIGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0VGltZShkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiAgICAgICAgICAgICAgTm90ZSB0aGF0IHRoZSBtb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBNdWhhcnJhbS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5NT05USCwgbW9udGgpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5EQVRFLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqICAgICAgICAgICAgICBOb3RlIHRoYXQgdGhlIG1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIE11aGFycmFtLgorICAgICAqIEBwYXJhbSBkYXRlICB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gaG91ciAgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkCisgICAgICogICAgICAgICAgICAgIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkCisgICAgICogICAgICAgICAgICAgIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gc2Vjb25kIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkCisgICAgICogICAgICAgICAgICAgIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuREFURSwgZGF0ZSk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCBob3VyKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuTUlOVVRFLCBtaW51dGUpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5TRUNPTkQsIHNlY29uZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgb2JqZWN0IHVzZXMgdGhlIGZpeGVkLWN5Y2xlIElzbGFtaWMgY2l2aWwgY2FsZW5kYXIKKyAgICAgKiBvciBhbiBhcHByb3hpbWF0aW9uIG9mIHRoZSByZWxpZ2lvdXMsIGFzdHJvbm9taWNhbCBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBiZUNpdmlsICAgPGNvZGU+dHJ1ZTwvY29kZT4gdG8gdXNlIHRoZSBjaXZpbCBjYWxlbmRhciwKKyAgICAgKiAgICAgICAgICAgICAgICAgIDxjb2RlPmZhbHNlPC9jb2RlPiB0byB1c2UgdGhlIGFzdHJvbm9taWNhbCBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDaXZpbChib29sZWFuIGJlQ2l2aWwpCisgICAgeworICAgICAgICBpZiAoY2l2aWwgIT0gYmVDaXZpbCkgeworICAgICAgICAgICAgLy8gVGhlIGZpZWxkcyBvZiB0aGUgY2FsZW5kYXIgd2lsbCBiZWNvbWUgaW52YWxpZCwgYmVjYXVzZSB0aGUgY2FsZW5kYXIKKyAgICAgICAgICAgIC8vIHJ1bGVzIGFyZSBkaWZmZXJlbnQKKyAgICAgICAgICAgIGxvbmcgbSA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgY2l2aWwgPSBiZUNpdmlsOworICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhtKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgb2JqZWN0IGlzIHVzaW5nIHRoZSBmaXhlZC1jeWNsZSBjaXZpbAorICAgICAqIGNhbGVuZGFyLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgdXNpbmcgdGhlIHJlbGlnaW91cywgYXN0cm9ub21pY2FsCisgICAgICogY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNDaXZpbCgpIHsKKyAgICAgICAgcmV0dXJuIGNpdmlsOworICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBNaW5pbXVtIC8gTWF4aW11bSBhY2Nlc3MgZnVuY3Rpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRTW11bXSA9IHsKKyAgICAgICAgLy8gTWluaW11bSAgR3JlYXRlc3QgICAgTGVhc3QgIE1heGltdW0KKyAgICAgICAgLy8gICAgICAgICAgIE1pbmltdW0gIE1heGltdW0KKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDAsICAgICAgIDAgfSwgLy8gRVJBCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIFlFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgMTEsICAgICAgMTEgfSwgLy8gTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgNTEsICAgICAgNTIgfSwgLy8gV0VFS19PRl9ZRUFSCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICA1LCAgICAgICA2IH0sIC8vIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgMjksICAgICAgMzAgfSwgLy8gREFZX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgMzU0LCAgICAgMzU1IH0sIC8vIERBWV9PRl9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9XRUVLCisgICAgICAgIHsgICAgICAgLTEsICAgICAgIC0xLCAgICAgICA0LCAgICAgICA1IH0sIC8vIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEFNX1BNCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUl9PRl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlOVVRFCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBaT05FX09GRlNFVAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEU1RfT0ZGU0VUCisgICAgICAgIHsgLTUwMDAwMDEsIC01MDAwMDAxLCA1MDAwMDAxLCA1MDAwMDAxIH0sIC8vIFlFQVJfV09ZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERPV19MT0NBTAorICAgICAgICB7IC01MDAwMDAwLCAtNTAwMDAwMCwgNTAwMDAwMCwgNTAwMDAwMCB9LCAvLyBFWFRFTkRFRF9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEpVTElBTl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkRTX0lOX0RBWQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzc29ydGVkIGNhbGN1bGF0aW9uIHV0aWxpdGllcworICAgIC8vCisKKy8vIFVudXNlZCBjb2RlIC0gQWxhbiAyMDAzLTA1CisvLyAgICAvKioKKy8vICAgICAqIEZpbmQgdGhlIGRheSBvZiB0aGUgd2VlayBmb3IgYSBnaXZlbiBkYXkKKy8vICAgICAqCisvLyAgICAgKiBAcGFyYW0gZGF5ICAgVGhlICMgb2YgZGF5cyBzaW5jZSB0aGUgc3RhcnQgb2YgdGhlIElzbGFtaWMgY2FsZW5kYXIuCisvLyAgICAgKi8KKy8vICAgIC8vIHByaXZhdGUgYW5kIHVuY2FsbGVkLCBwZXJoYXBzIG5vdCB1c2VkIHlldD8KKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBhYnNvbHV0ZURheVRvRGF5T2ZXZWVrKGxvbmcgZGF5KQorLy8gICAgeworLy8gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGF5IG9mIHRoZSB3ZWVrLgorLy8gICAgICAgIC8vIFRoaXMgcmVsaWVzIG9uIHRoZSBmYWN0IHRoYXQgdGhlIGVwb2NoIHdhcyBhIFRodXJzZGF5LgorLy8gICAgICAgIGludCBkYXlPZldlZWsgPSAoaW50KShkYXkgKyBUSFVSU0RBWSkgJSA3ICsgU1VOREFZOworLy8gICAgICAgIGlmIChkYXlPZldlZWsgPCAwKSB7CisvLyAgICAgICAgICAgIGRheU9mV2VlayArPSA3OworLy8gICAgICAgIH0KKy8vICAgICAgICByZXR1cm4gZGF5T2ZXZWVrOworLy8gICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYSB5ZWFyIGlzIGEgbGVhcCB5ZWFyIGluIHRoZSBJc2xhbWljIGNpdmlsIGNhbGVuZGFyCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYm9vbGVhbiBjaXZpbExlYXBZZWFyKGludCB5ZWFyKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgxNCArIDExICogeWVhcikgJSAzMCA8IDExOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgIyBvbiB3aGljaCB0aGUgZ2l2ZW4geWVhciBzdGFydHMuICBEYXlzIGFyZSBjb3VudGVkCisgICAgICogZnJvbSB0aGUgSGlqcmkgZXBvY2gsIG9yaWdpbiAwLgorICAgICAqLworICAgIHByaXZhdGUgbG9uZyB5ZWFyU3RhcnQoaW50IHllYXIpIHsKKyAgICAgICAgaWYgKGNpdmlsKSB7CisgICAgICAgICAgICByZXR1cm4gKHllYXItMSkqMzU0ICsgKGxvbmcpTWF0aC5mbG9vcigoMysxMSp5ZWFyKS8zMC4wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlTW9udGhTdGFydCgxMiooeWVhci0xKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgIyBvbiB3aGljaCB0aGUgZ2l2ZW4gbW9udGggc3RhcnRzLiAgRGF5cyBhcmUgY291bnRlZAorICAgICAqIGZyb20gdGhlIEhpanJpIGVwb2NoLCBvcmlnaW4gMC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgaGlqcmkgeWVhcgorICAgICAqIEBwYXJhbSBtb250aCAgVGhlIGhpanJpIG1vbnRoLCAwLWJhc2VkCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIG1vbnRoU3RhcnQoaW50IHllYXIsIGludCBtb250aCkgeworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIHJldHVybiAobG9uZylNYXRoLmNlaWwoMjkuNSptb250aCkKKyAgICAgICAgICAgICAgICAgICAgKyAoeWVhci0xKSozNTQgKyAobG9uZylNYXRoLmZsb29yKCgzKzExKnllYXIpLzMwLjApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRydWVNb250aFN0YXJ0KDEyKih5ZWFyLTEpICsgbW9udGgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIGRheSBudW1iZXIgb24gd2hpY2ggYSBwYXJ0aWN1bGFyIG1vbnRoIG9mIHRoZSB0cnVlL2x1bmFyCisgICAgICogSXNsYW1pYyBjYWxlbmRhciBzdGFydHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIGluIHF1ZXN0aW9uLCBvcmlnaW4gMCBmcm9tIHRoZSBIaWpyaSBlcG9jaAorICAgICAqCisgICAgICogQHJldHVybiBUaGUgZGF5IG51bWJlciBvbiB3aGljaCB0aGUgZ2l2ZW4gbW9udGggc3RhcnRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgdHJ1ZU1vbnRoU3RhcnQobG9uZyBtb250aCkKKyAgICB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBjYWNoZS5nZXQobW9udGgpOworCisgICAgICAgIGlmIChzdGFydCA9PSBDYWxlbmRhckNhY2hlLkVNUFRZKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBNYWtlIGEgZ3Vlc3MgYXQgd2hlbiB0aGUgbW9udGggc3RhcnRlZCwgdXNpbmcgdGhlIGF2ZXJhZ2UgbGVuZ3RoCisgICAgICAgICAgICBsb25nIG9yaWdpbiA9IEhJSlJBX01JTExJUyAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKGxvbmcpTWF0aC5mbG9vcihtb250aCAqIENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIIC0gMSkgKiBPTkVfREFZOworCisgICAgICAgICAgICBkb3VibGUgYWdlID0gbW9vbkFnZShvcmlnaW4pOworCisgICAgICAgICAgICBpZiAobW9vbkFnZShvcmlnaW4pID49IDApIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgbW9udGggaGFzIGFscmVhZHkgc3RhcnRlZAorICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luIC09IE9ORV9EQVk7CisgICAgICAgICAgICAgICAgICAgIGFnZSA9IG1vb25BZ2Uob3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChhZ2UgPj0gMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBQcmVjZWRpbmcgbW9udGggaGFzIG5vdCBlbmRlZCB5ZXQuCisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gKz0gT05FX0RBWTsKKyAgICAgICAgICAgICAgICAgICAgYWdlID0gbW9vbkFnZShvcmlnaW4pOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKGFnZSA8IDApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGFydCA9IChvcmlnaW4gLSBISUpSQV9NSUxMSVMpIC8gT05FX0RBWSArIDE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhY2hlLnB1dChtb250aCwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlICJhZ2UiIG9mIHRoZSBtb29uIGF0IHRoZSBnaXZlbiB0aW1lOyB0aGlzIGlzIHRoZSBkaWZmZXJlbmNlCisgICAgICogaW4gZWNsaXB0aWMgbGF0aXR1ZGUgYmV0d2VlbiB0aGUgbW9vbiBhbmQgdGhlIHN1bi4gIFRoaXMgbWV0aG9kIHNpbXBseQorICAgICAqIGNhbGxzIENhbGVuZGFyQXN0cm9ub21lci5tb29uQWdlLCBjb252ZXJ0cyB0byBkZWdyZWVzLCAKKyAgICAgKiBhbmQgYWRqdXN0cyB0aGUgcmVzdWx0dG8gYmUgaW4gdGhlIHJhbmdlIFstMTgwLCAxODBdLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWUgIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBtb29uJ3MgYWdlIGlzIGRlc2lyZWQsCisgICAgICogICAgICAgICAgICAgIGluIG1pbGxpcyBzaW5jZSAxLzEvMTk3MC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25BZ2UobG9uZyB0aW1lKQorICAgIHsKKyAgICAgICAgZG91YmxlIGFnZSA9IDA7CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQoYXN0cm8pIHsKKyAgICAgICAgICAgIGFzdHJvLnNldFRpbWUodGltZSk7CisgICAgICAgICAgICBhZ2UgPSBhc3Ryby5nZXRNb29uQWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ29udmVydCB0byBkZWdyZWVzIGFuZCBub3JtYWxpemUuLi4KKyAgICAgICAgYWdlID0gYWdlICogMTgwIC8gTWF0aC5QSTsKKyAgICAgICAgaWYgKGFnZSA+IDE4MCkgeworICAgICAgICAgICAgYWdlID0gYWdlIC0gMzYwOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGFnZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcm5hbCBkYXRhLi4uLgorICAgIC8vCisgICAgCisgICAgLy8gQW5kIGFuIEFzdHJvbm9tZXIgb2JqZWN0IGZvciB0aGUgbW9vbiBhZ2UgY2FsY3VsYXRpb25zCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyQ2FjaGUgY2FjaGUgPSBuZXcgQ2FsZW5kYXJDYWNoZSgpOworICAgIAorICAgIC8qKgorICAgICAqIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgb2JqZWN0IHVzZXMgdGhlIGZpeGVkLWN5Y2xlIElzbGFtaWMgY2l2aWwgY2FsZW5kYXIsCisgICAgICogYW5kIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBhcHByb3hpbWF0ZXMgdGhlIHRydWUgcmVsaWdpb3VzIGNhbGVuZGFyIHVzaW5nCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBmb3IgdGhlIHRpbWUgb2YgdGhlIG5ldyBtb29uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaXZpbCA9IHRydWU7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYWxlbmRhciBmcmFtZXdvcmsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIChpbiBkYXlzKSBvZiB0aGUgZ2l2ZW4gbW9udGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXh0ZW5kZWRZZWFyICBUaGUgaGlqcmkgeWVhcgorICAgICAqIEBwYXJhbSBtb250aCBUaGUgaGlqcmkgbW9udGgsIDAtYmFzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworCisgICAgICAgIGludCBsZW5ndGggPSAwOworICAgICAgICAKKyAgICAgICAgaWYgKGNpdmlsKSB7CisgICAgICAgICAgICBsZW5ndGggPSAyOSArIChtb250aCsxKSAlIDI7CisgICAgICAgICAgICBpZiAobW9udGggPT0gREhVX0FMX0hJSkpBSCAmJiBjaXZpbExlYXBZZWFyKGV4dGVuZGVkWWVhcikpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGgrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1vbnRoID0gMTIqKGV4dGVuZGVkWWVhci0xKSArIG1vbnRoOworICAgICAgICAgICAgbGVuZ3RoID0gKGludCkoIHRydWVNb250aFN0YXJ0KG1vbnRoKzEpIC0gdHJ1ZU1vbnRoU3RhcnQobW9udGgpICk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBJc2xhbWljIHllYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldFllYXJMZW5ndGgoaW50IGV4dGVuZGVkWWVhcikgeworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIHJldHVybiAzNTQgKyAoY2l2aWxMZWFwWWVhcihleHRlbmRlZFllYXIpID8gMSA6IDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IG1vbnRoID0gMTIqKGV4dGVuZGVkWWVhci0xKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSh0cnVlTW9udGhTdGFydChtb250aCArIDEyKSAtIHRydWVNb250aFN0YXJ0KG1vbnRoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gZmllbGQgdmFsdWVzIHRvIG1pbGxpc2Vjb25kcy4uLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFJldHVybiBKRCBvZiBzdGFydCBvZiBnaXZlbiBtb250aC95ZWFyCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworICAgICAgICByZXR1cm4gKGludCkgbW9udGhTdGFydChleWVhciwgbW9udGgpICsgMTk0ODQzOTsKKyAgICB9ICAgIAorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gbWlsbGlzZWNvbmRzIHRvIGZpZWxkIHZhbHVlcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcyBzcGVjaWZpYyB0byB0aGUgSXNsYW1pYworICAgICAqIGNhbGVuZGFyIHN5c3RlbS4gIFRoZXNlIGFyZToKKyAgICAgKgorICAgICAqIDx1bD48bGk+RVJBCisgICAgICogPGxpPllFQVIKKyAgICAgKiA8bGk+TU9OVEgKKyAgICAgKiA8bGk+REFZX09GX01PTlRICisgICAgICogPGxpPkRBWV9PRl9ZRUFSCisgICAgICogPGxpPkVYVEVOREVEX1lFQVI8L3VsPgorICAgICAqIAorICAgICAqIFRoZSBEQVlfT0ZfV0VFSyBhbmQgRE9XX0xPQ0FMIGZpZWxkcyBhcmUgYWxyZWFkeSBzZXQgd2hlbiB0aGlzCisgICAgICogbWV0aG9kIGlzIGNhbGxlZC4gVGhlIGdldEdyZWdvcmlhblh4eCgpIG1ldGhvZHMgcmV0dXJuIEdyZWdvcmlhbgorICAgICAqIGNhbGVuZGFyIGVxdWl2YWxlbnRzIGZvciB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZlllYXI7CisgICAgICAgIGxvbmcgbW9udGhTdGFydDsKKyAgICAgICAgbG9uZyBkYXlzID0ganVsaWFuRGF5IC0gMTk0ODQ0MDsKKworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIC8vIFVzZSB0aGUgY2l2aWwgY2FsZW5kYXIgYXBwcm94aW1hdGlvbiwgd2hpY2ggaXMganVzdCBhcml0aG1ldGljCisgICAgICAgICAgICB5ZWFyICA9IChpbnQpTWF0aC5mbG9vciggKDMwICogZGF5cyArIDEwNjQ2KSAvIDEwNjMxLjAgKTsKKyAgICAgICAgICAgIG1vbnRoID0gKGludClNYXRoLmNlaWwoKGRheXMgLSAyOSAtIHllYXJTdGFydCh5ZWFyKSkgLyAyOS41ICk7CisgICAgICAgICAgICBtb250aCA9IE1hdGgubWluKG1vbnRoLCAxMSk7CisgICAgICAgICAgICBtb250aFN0YXJ0ID0gbW9udGhTdGFydCh5ZWFyLCBtb250aCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBHdWVzcyBhdCB0aGUgbnVtYmVyIG9mIGVsYXBzZWQgZnVsbCBtb250aHMgc2luY2UgdGhlIGVwb2NoCisgICAgICAgICAgICBpbnQgbW9udGhzID0gKGludClNYXRoLmZsb29yKGRheXMgLyBDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USCk7CisKKyAgICAgICAgICAgIG1vbnRoU3RhcnQgPSAobG9uZylNYXRoLmZsb29yKG1vbnRocyAqIENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIIC0gMSk7CisKKyAgICAgICAgICAgIGlmICggZGF5cyAtIG1vbnRoU3RhcnQgPj0gMjggJiYgbW9vbkFnZShpbnRlcm5hbEdldFRpbWVJbk1pbGxpcygpKSA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBuZWFyIHRoZSBlbmQgb2YgdGhlIG1vbnRoLCBhc3N1bWUgbmV4dCBtb250aCBhbmQgc2VhcmNoIGJhY2t3YXJkcworICAgICAgICAgICAgICAgIG1vbnRocysrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGaW5kIG91dCB0aGUgbGFzdCB0aW1lIHRoYXQgdGhlIG5ldyBtb29uIHdhcyBhY3R1YWxseSB2aXNpYmxlIGF0IHRoaXMgbG9uZ2l0dWRlCisgICAgICAgICAgICAvLyBUaGlzIHJldHVybnMgbWlkbmlnaHQgdGhlIG5pZ2h0IHRoYXQgdGhlIG1vb24gd2FzIHZpc2libGUgYXQgc3Vuc2V0LgorICAgICAgICAgICAgd2hpbGUgKChtb250aFN0YXJ0ID0gdHJ1ZU1vbnRoU3RhcnQobW9udGhzKSkgPiBkYXlzKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgaXQgd2FzIGFmdGVyIHRoZSBkYXRlIGluIHF1ZXN0aW9uLCBiYWNrIHVwIGEgbW9udGggYW5kIHRyeSBhZ2FpbgorICAgICAgICAgICAgICAgIG1vbnRocy0tOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB5ZWFyID0gbW9udGhzIC8gMTIgKyAxOworICAgICAgICAgICAgbW9udGggPSBtb250aHMgJSAxMjsKKyAgICAgICAgfQorCisgICAgICAgIGRheU9mTW9udGggPSAoaW50KShkYXlzIC0gbW9udGhTdGFydCh5ZWFyLCBtb250aCkpICsgMTsKKworICAgICAgICAvLyBOb3cgZmlndXJlIG91dCB0aGUgZGF5IG9mIHRoZSB5ZWFyLgorICAgICAgICBkYXlPZlllYXIgPSAoaW50KShkYXlzIC0gbW9udGhTdGFydCh5ZWFyLCAwKSArIDEpOworCisgICAgICAgIGludGVybmFsU2V0KEVSQSwgMCk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5ZWFyKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheU9mWWVhcik7ICAgICAgIAorICAgIH0gICAgCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJpc2xhbWljIjsKKyAgICB9CisKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5OworICAgIHB1YmxpYyBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkoKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSBuZXcgQ2FsZW5kYXJGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNsYW1pY0NhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSXNsYW1pYyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZTY3Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSmFwYW5lc2VDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsNjczIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCBudW1iZXJzIHllYXJzIGFuZCBlcmFzIGJhc2VkIG9uIHRoZSByZWlnbnMgb2YgdGhlIEphcGFuZXNlIGVtcGVyb3JzLgorICogVGhlIEphcGFuZXNlIGNhbGVuZGFyIGlzIGlkZW50aWNhbCB0byB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGluIGFsbCByZXNwZWN0cworICogZXhjZXB0IGZvciB0aGUgeWVhciBhbmQgZXJhLiAgVGhlIGFzY2Vuc2lvbiBvZiBlYWNoICBlbXBlcm9yIHRvIHRoZSB0aHJvbmUKKyAqIGJlZ2lucyBhIG5ldyBlcmEsIGFuZCB0aGUgeWVhcnMgb2YgdGhhdCBlcmEgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIHdpdGggdGhlCisgKiB5ZWFyIG9mIGFzY2Vuc2lvbiBhcyB5ZWFyIDEuCisgKiA8cD4KKyAqIE5vdGUgdGhhdCBpbiB0aGUgeWVhciBvZiBhbiBpbXBlcmlhbCBhc2NlbnNpb24sIHRoZXJlIGFyZSB0d28gcG9zc2libGUgc2V0cworICogb2YgeWVhciBhbmQgZXJhIHZhbHVlczogdGhhdCBmb3IgdGhlIG9sZCBlcmEgYW5kIGZvciB0aGUgbmV3LiAgRm9yIGV4YW1wbGUsIGEKKyAqIG5ldyBlcmEgYmVnYW4gb24gSmFudWFyeSA3LCAxOTg5IEFELiAgU3RyaWN0bHkgc3BlYWtpbmcsIHRoZSBmaXJzdCBzaXggZGF5cworICogb2YgdGhhdCB5ZWFyIHdlcmUgaW4gdGhlIFNob3dhIGVyYSwgZS5nLiAiSmFudWFyeSA2LCA2NCBTaG93YSIsIHdoaWxlIHRoZSByZXN0CisgKiBvZiB0aGUgeWVhciB3YXMgaW4gdGhlIEhlaXNlaSBlcmEsIGUuZy4gIkphbnVhcnkgNywgMSBIZWlzZWkiLiAgVGhpcyBjbGFzcworICogaGFuZGxlcyB0aGlzIGRpc3RpbmN0aW9uIGNvcnJlY3RseSB3aGVuIGNvbXB1dGluZyBkYXRlcy4gIEhvd2V2ZXIsIGluIGxlbmllbnQKKyAqIG1vZGUgZWl0aGVyIGZvcm0gb2YgZGF0ZSBpcyBhY2NlcHRhYmxlIGFzIGlucHV0LiAKKyAqIDxwPgorICogSW4gbW9kZXJuIHRpbWVzLCBlcmFzIGhhdmUgc3RhcnRlZCBvbiBKYW51YXJ5IDgsIDE4NjggQUQsIEdyZWdvcmlhbiAoTWVpamkpLAorICogSnVseSAzMCwgMTkxMiAoVGFpc2hvKSwgRGVjZW1iZXIgMjUsIDE5MjYgKFNob3dhKSwgYW5kIEphbnVhcnkgNywgMTk4OSAoSGVpc2VpKS4gIENvbnN0YW50cworICogZm9yIHRoZXNlIGVyYXMsIHN1aXRhYmxlIGZvciB1c2UgaW4gdGhlIDxjb2RlPkVSQTwvY29kZT4gZmllbGQsIGFyZSBwcm92aWRlZAorICogaW4gdGhpcyBjbGFzcy4gIE5vdGUgdGhhdCB0aGUgPGVtPm51bWJlcjwvZW0+IHVzZWQgZm9yIGVhY2ggZXJhIGlzIG1vcmUgb3IKKyAqIGxlc3MgYXJiaXRyYXJ5LiAgQ3VycmVudGx5LCB0aGUgZXJhIHN0YXJ0aW5nIGluIDEwNTMgQUQgaXMgZXJhICMwOyBob3dldmVyIHRoaXMKKyAqIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSBhcyB3ZSBhZGQgbW9yZSBoaXN0b3JpY2FsIGRhdGEuICBVc2UgdGhlIHByZWRlZmluZWQKKyAqIGNvbnN0YW50cyByYXRoZXIgdGhhbiB1c2luZyBhY3R1YWwsIGFic29sdXRlIG51bWJlcnMuCisgKiA8cD4KKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSBzdWJjbGFzc2VkLjwvcD4KKyAqIDxwPgorICogSmFwYW5lc2VDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1qYXBhbmVzZSI8L2NvZGU+LjwvcD4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICoKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIEphcGFuZXNlQ2FsZW5kYXIgZXh0ZW5kcyBHcmVnb3JpYW5DYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTI5NzcxODk5MDI2MDM3MDQ2OTFMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGRlZmF1bHQgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIHNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGVyYSAgICAgICBUaGUgaW1wZXJpYWwgZXJhIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjRVJBIEVSQX0gZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBFcmFzIGFyZSBudW1iZXJlZCBzdGFydGluZyB3aXRoIHRoZSBUZW5raSBlcmEsIHdoaWNoCisgICAgICogICAgICAgICAgICAgICAgICBiZWdhbiBpbiAxMDUzIEFEIEdyZWdvcmlhbiwgYXMgZXJhIHplcm8uICBSZWNlbnQKKyAgICAgKiAgICAgICAgICAgICAgICAgIGVyYXMgY2FuIGJlIHNwZWNpZmllZCB1c2luZyB0aGUgY29uc3RhbnRzCisgICAgICogICAgICAgICAgICAgICAgICB7QGxpbmsgI01FSUpJfSAod2hpY2ggc3RhcnRlZCBpbiAxODY4IEFEKSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIHtAbGluayAjVEFJU0hPfSAoMTkxMiBBRCksCisgICAgICogICAgICAgICAgICAgICAgICB7QGxpbmsgI1NIT1dBfSAoMTkyNiBBRCksIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAge0BsaW5rICNIRUlTRUl9ICgxOTg5IEFEKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSBmaWVsZCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGluIHRlcm1zIG9mIHRoZSBlcmEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3MgREFURSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgICAgIHNldChFUkEsIGVyYSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IGZpZWxkLAorICAgICAqICAgICAgICAgICAgICAgICAgaW4gdGhlIGVyYSBIZWlzZWksIHRoZSBtb3N0IGN1cnJlbnQgYXQgdGhlIHRpbWUgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgY2xhc3Mgd2FzIGxhc3QgdXBkYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoeWVhciwgbW9udGgsIGRhdGUpOworICAgICAgICBzZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLAorICAgICAqICAgICAgICAgICAgICAgICAgaW4gdGhlIGVyYSBIZWlzZWksIHRoZSBtb3N0IGN1cnJlbnQgYXQgdGhlIHRpbWUgb2YgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgd3JpdGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgICAgICBzZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIGlmIChuZXdlckZpZWxkKEVYVEVOREVEX1lFQVIsIFlFQVIpID09IEVYVEVOREVEX1lFQVIgJiYKKyAgICAgICAgICAgIG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgRVJBKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBleHRlbmRlZCB5ZWFyIGlzIGEgZ3JlZ29yaWFuIHllYXIsIHdoZXJlIDEgPSAxQUQsICAwID0gMUJDLCAtMSA9IDJCQywgZXRjIAorICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIDEpICAgICAgICAgICAgICAgICAgICAgICAvLyBwaW4gdG8gbWluaW11bSBvZiB5ZWFyIDEgKGZpcnN0IHllYXIpCisgICAgICAgICAgICAgICAgICAgICsgRVJBU1tpbnRlcm5hbEdldChFUkEsIENVUlJFTlRfRVJBKSAqIDNdIC8vIGFkZCBncmVnb3JpYW4gc3RhcnRpbmcgeWVhcgorICAgICAgICAgICAgICAgICAgICAtIDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvbmUgYmVjYXVzZSB5ZWFyIHN0YXJ0cyBhdCAxCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENhbGxlZCBieSBoYW5kbGVDb21wdXRlSnVsaWFuRGF5LiAgUmV0dXJucyB0aGUgZGVmYXVsdCBtb250aCAoMC1iYXNlZCkgZm9yIHRoZSB5ZWFyLAorICAgICAqIHRha2luZyB5ZWFyIGFuZCBlcmEgaW50byBhY2NvdW50LiAgRGVmYXVsdHMgdG8gMCAoSkFOVUFSWSkgZm9yIEdyZWdvcmlhbi4KKyAgICAgKiBAcGFyYW0gZXh0ZW5kZWRZZWFyIHRoZSBleHRlbmRlZFllYXIsIGFzIHJldHVybmVkIGJ5IGhhbmRsZUdldEV4dGVuZGVkWWVhcgorICAgICAqIEByZXR1cm4gdGhlIGRlZmF1bHQgbW9udGgKKyAgICAgKiBAcHJvdmlzaW9uYWwgSUNVIDMuNgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHNlZSAjTU9OVEgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGdldERlZmF1bHRNb250aEluWWVhcihpbnQgZXh0ZW5kZWRZZWFyKQorICAgIHsKKyAgICAgIGludCBlcmEgPSBpbnRlcm5hbEdldChFUkEsIENVUlJFTlRfRVJBKTsKKyAgICAgIC8vY29tcHV0ZUZpZWxkcyhzdGF0dXMpOyAvLyBObyBuZWVkIHRvIGNvbXB1dGUgZmllbGRzIGhlcmUgLSBleHBlY3QgdGhlIGNhbGxlciBhbHJlYWR5IGRpZCBzby4KKworICAgICAgLy8gRmluZCBvdXQgaWYgd2UgYXJlIGF0IHRoZSBlZGdlIG9mIGFuIGVyYQorICAgICAgaWYoZXh0ZW5kZWRZZWFyID09IEVSQVNbZXJhKjNdKSB7CisgICAgICAgIHJldHVybiBFUkFTWyhlcmEqMykrMV0gLy8gbW9udGguLgorICAgICAgICAgICAgLTE7IC8vIHJldHVybiAwLWJhc2VkIG1vbnRoCisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0RGVmYXVsdE1vbnRoSW5ZZWFyKGV4dGVuZGVkWWVhcik7CisgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkuICBSZXR1cm5zIHRoZSBkZWZhdWx0IGRheSAoMS1iYXNlZCkgZm9yIHRoZSBtb250aCwKKyAgICAgKiB0YWtpbmcgY3VycmVudGx5LXNldCB5ZWFyIGFuZCBlcmEgaW50byBhY2NvdW50LiAgRGVmYXVsdHMgdG8gMSBmb3IgR3JlZ29yaWFuLgorICAgICAqIEBwYXJhbSBleHRlbmRlZFllYXIgdGhlIGV4dGVuZGVkWWVhciwgYXMgcmV0dXJuZWQgYnkgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBtb250aCwgYXMgcmV0dXJuZWQgYnkgZ2V0RGVmYXVsdE1vbnRoSW5ZZWFyCisgICAgICogQHJldHVybiB0aGUgZGVmYXVsdCBkYXkgb2YgdGhlIG1vbnRoCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgSUNVIDMuNgorICAgICAqIEBzZWUgI0RBWV9PRl9NT05USAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0RGVmYXVsdERheUluTW9udGgoaW50IGV4dGVuZGVkWWVhciwgaW50IG1vbnRoKSB7CisgICAgICBpbnQgZXJhID0gaW50ZXJuYWxHZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgICAgICAgCisgICAgICBpZihleHRlbmRlZFllYXIgPT0gRVJBU1tlcmEqM10pIHsgLy8gaWYgaXQgaXMgeWVhciAxLi4KKyAgICAgICAgaWYobW9udGggPT0gKChFUkFTWyhlcmEqMykrMV0pLTEpKSB7IC8vIGlmIGl0IGlzIHRoZSBlbXBlcm9yJ3MgZmlyc3QgbW9udGguLiAKKyAgICAgICAgICByZXR1cm4gRVJBU1soZXJhKjMpKzJdOyAvLyByZXR1cm4gdGhlIERfT19NIG9mIGFjZXNzaW9uCisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgcmV0dXJuIHN1cGVyLmdldERlZmF1bHREYXlJbk1vbnRoKGV4dGVuZGVkWWVhciwgbW9udGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBzdXBlci5oYW5kbGVDb21wdXRlRmllbGRzKGp1bGlhbkRheSk7CisgICAgICAgIGludCB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUik7CisKKyAgICAgICAgaW50IGxvdyA9IDA7CisKKyAgICAgICAgLy8gU2hvcnQgY2lyY3VpdCBmb3IgcmVjZW50IHllYXJzLiAgTW9zdCBtb2Rlcm4gY29tcHV0YXRpb25zIHdpbGwKKyAgICAgICAgLy8gb2NjdXIgaW4gdGhlIGN1cnJlbnQgZXJhIGFuZCB3b24ndCByZXF1aXJlIHRoZSBiaW5hcnkgc2VhcmNoLgorICAgICAgICAvLyBOb3RlIHRoYXQgaWYgdGhlIHllYXIgaXMgPT0gdGhlIGN1cnJlbnQgZXJhIHllYXIsIHRoZW4gd2UgdXNlCisgICAgICAgIC8vIHRoZSBiaW5hcnkgc2VhcmNoIHRvIGhhbmRsZSB0aGUgbW9udGgvZG9tIGNvbXBhcmlzb24uCisgICAgICAgIGlmICh5ZWFyID4gRVJBU1tFUkFTLmxlbmd0aCAtIDNdKSB7CisgICAgICAgICAgICBsb3cgPSBDVVJSRU5UX0VSQTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIGludCBoaWdoID0gRVJBUy5sZW5ndGggLyAzOworICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChsb3cgPCBoaWdoIC0gMSkgeworICAgICAgICAgICAgICAgIGludCBpID0gKGxvdyArIGhpZ2gpIC8gMjsKKyAgICAgICAgICAgICAgICBpbnQgZGlmZiA9IHllYXIgLSBFUkFTW2kqM107CisKKyAgICAgICAgICAgICAgICAvLyBJZiB5ZWFycyBhcmUgdGhlIHNhbWUsIHRoZW4gY29tcGFyZSB0aGUgbW9udGhzLCBhbmQgaWYgdGhvc2UKKyAgICAgICAgICAgICAgICAvLyBhcmUgdGhlIHNhbWUsIGNvbXBhcmUgZGF5cyBvZiBtb250aC4gIEluIHRoZSBFUkFTIGFycmF5CisgICAgICAgICAgICAgICAgLy8gbW9udGhzIGFyZSAxLWJhc2VkIGZvciBlYXNpZXIgbWFpbnRlbmFuY2UuCisgICAgICAgICAgICAgICAgaWYgKGRpZmYgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBkaWZmID0gaW50ZXJuYWxHZXQoTU9OVEgpIC0gKEVSQVNbaSozICsgMV0gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZmYgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGlmZiA9IGludGVybmFsR2V0KERBWV9PRl9NT05USCkgLSBFUkFTW2kqMyArIDJdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkaWZmID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbG93ID0gaTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBoaWdoID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgd2UndmUgZm91bmQgdGhlIGxhc3QgZXJhIHRoYXQgc3RhcnRzIGJlZm9yZSB0aGlzIGRhdGUsIHNvCisgICAgICAgIC8vIGFkanVzdCB0aGUgeWVhciB0byBjb3VudCBmcm9tIHRoZSBzdGFydCBvZiB0aGF0IGVyYS4gIE5vdGUgdGhhdAorICAgICAgICAvLyBhbGwgZGF0ZXMgYmVmb3JlIHRoZSBmaXJzdCBlcmEgd2lsbCBmYWxsIGludG8gdGhlIGZpcnN0IGVyYSBieQorICAgICAgICAvLyB0aGUgYWxnb3JpdGhtLgorICAgICAgICBpbnRlcm5hbFNldChFUkEsIGxvdyk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXIgLSBFUkFTW2xvdyozXSArIDEpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIEVSQVMgPSB7CisgICAgLy8gIEdyZWdvcmlhbiBkYXRlIG9mIGVhY2ggZW1wZXJvcidzIGFzY2Vuc2lvbgorICAgIC8vICBZZWFycyBhcmUgQUQsIG1vbnRocyBhcmUgMS1iYXNlZC4KKyAgICAvLyAgWWVhciAgTW9udGggRGF5CisgICAgICAgICA2NDUsICAgIDYsIDE5LCAgICAgLy8gVGFpa2EKKyAgICAgICAgIDY1MCwgICAgMiwgMTUsICAgICAvLyBIYWt1Y2hpCisgICAgICAgICA2NzIsICAgIDEsICAxLCAgICAgLy8gSGFrdWhvCisgICAgICAgICA2ODYsICAgIDcsIDIwLCAgICAgLy8gU2h1Y2hvCisgICAgICAgICA3MDEsICAgIDMsIDIxLCAgICAgLy8gVGFpaG8KKyAgICAgICAgIDcwNCwgICAgNSwgMTAsICAgICAvLyBLZWl1bgorICAgICAgICAgNzA4LCAgICAxLCAxMSwgICAgIC8vIFdhZG8KKyAgICAgICAgIDcxNSwgICAgOSwgIDIsICAgICAvLyBSZWlraQorICAgICAgICAgNzE3LCAgIDExLCAxNywgICAgIC8vIFlvcm8KKyAgICAgICAgIDcyNCwgICAgMiwgIDQsICAgICAvLyBKaW5raQorICAgICAgICAgNzI5LCAgICA4LCAgNSwgICAgIC8vIFRlbXB5bworICAgICAgICAgNzQ5LCAgICA0LCAxNCwgICAgIC8vIFRlbXB5by1rYW1wbworICAgICAgICAgNzQ5LCAgICA3LCAgMiwgICAgIC8vIFRlbXB5by1zaG9obworICAgICAgICAgNzU3LCAgICA4LCAxOCwgICAgIC8vIFRlbXB5by1ob2ppCisgICAgICAgICA3NjUsICAgIDEsICA3LCAgICAgLy8gVGVtcGhvLWppbmdvCisgICAgICAgICA3NjcsICAgIDgsIDE2LCAgICAgLy8gSmluZ28ta2VpdW4KKyAgICAgICAgIDc3MCwgICAxMCwgIDEsICAgICAvLyBIb2tpCisgICAgICAgICA3ODEsICAgIDEsICAxLCAgICAgLy8gVGVuLW8KKyAgICAgICAgIDc4MiwgICAgOCwgMTksICAgICAvLyBFbnJ5YWt1CisgICAgICAgICA4MDYsICAgIDUsIDE4LCAgICAgLy8gRGFpZG8KKyAgICAgICAgIDgxMCwgICAgOSwgMTksICAgICAvLyBLb25pbgorICAgICAgICAgODI0LCAgICAxLCAgNSwgICAgIC8vIFRlbmNobworICAgICAgICAgODM0LCAgICAxLCAgMywgICAgIC8vIFNob3dhCisgICAgICAgICA4NDgsICAgIDYsIDEzLCAgICAgLy8gS2FqbworICAgICAgICAgODUxLCAgICA0LCAyOCwgICAgIC8vIE5pbmp1CisgICAgICAgICA4NTQsICAgMTEsIDMwLCAgICAgLy8gU2Fpa28KKyAgICAgICAgIDg1NywgICAgMiwgMjEsICAgICAvLyBUZW5uYW4KKyAgICAgICAgIDg1OSwgICAgNCwgMTUsICAgICAvLyBKb2dhbgorICAgICAgICAgODc3LCAgICA0LCAxNiwgICAgIC8vIEdlbmtlaQorICAgICAgICAgODg1LCAgICAyLCAyMSwgICAgIC8vIE5pbm5hCisgICAgICAgICA4ODksICAgIDQsIDI3LCAgICAgLy8gS2FtcHlvCisgICAgICAgICA4OTgsICAgIDQsIDI2LCAgICAgLy8gU2hvdGFpCisgICAgICAgICA5MDEsICAgIDcsIDE1LCAgICAgLy8gRW5naQorICAgICAgICAgOTIzLCAgICA0LCAxMSwgICAgIC8vIEVuY2hvCisgICAgICAgICA5MzEsICAgIDQsIDI2LCAgICAgLy8gU2hvaGVpCisgICAgICAgICA5MzgsICAgIDUsIDIyLCAgICAgLy8gVGVuZ3lvCisgICAgICAgICA5NDcsICAgIDQsIDIyLCAgICAgLy8gVGVucnlha3UKKyAgICAgICAgIDk1NywgICAxMCwgMjcsICAgICAvLyBUZW50b2t1CisgICAgICAgICA5NjEsICAgIDIsIDE2LCAgICAgLy8gT3dhCisgICAgICAgICA5NjQsICAgIDcsIDEwLCAgICAgLy8gS29obworICAgICAgICAgOTY4LCAgICA4LCAxMywgICAgIC8vIEFubmEKKyAgICAgICAgIDk3MCwgICAgMywgMjUsICAgICAvLyBUZW5yb2t1CisgICAgICAgICA5NzMsICAgMTIsIDIwLCAgICAgLy8gVGVuLWVuCisgICAgICAgICA5NzYsICAgIDcsIDEzLCAgICAgLy8gSm9nZW4KKyAgICAgICAgIDk3OCwgICAxMSwgMjksICAgICAvLyBUZW5nZW4KKyAgICAgICAgIDk4MywgICAgNCwgMTUsICAgICAvLyBFaWthbgorICAgICAgICAgOTg1LCAgICA0LCAyNywgICAgIC8vIEthbm5hCisgICAgICAgICA5ODcsICAgIDQsICA1LCAgICAgLy8gRWktZW4KKyAgICAgICAgIDk4OSwgICAgOCwgIDgsICAgICAvLyBFaXNvCisgICAgICAgICA5OTAsICAgMTEsICA3LCAgICAgLy8gU2hvcnlha3UKKyAgICAgICAgIDk5NSwgICAgMiwgMjIsICAgICAvLyBDaG90b2t1CisgICAgICAgICA5OTksICAgIDEsIDEzLCAgICAgLy8gQ2hvaG8KKyAgICAgICAgMTAwNCwgICAgNywgMjAsICAgICAvLyBLYW5rbworICAgICAgICAxMDEyLCAgIDEyLCAyNSwgICAgIC8vIENob3dhCisgICAgICAgIDEwMTcsICAgIDQsIDIzLCAgICAgLy8gS2FubmluCisgICAgICAgIDEwMjEsICAgIDIsICAyLCAgICAgLy8gSmlhbgorICAgICAgICAxMDI0LCAgICA3LCAxMywgICAgIC8vIE1hbmp1CisgICAgICAgIDEwMjgsICAgIDcsIDI1LCAgICAgLy8gQ2hvZ2VuCisgICAgICAgIDEwMzcsICAgIDQsIDIxLCAgICAgLy8gQ2hvcnlha3UKKyAgICAgICAgMTA0MCwgICAxMSwgMTAsICAgICAvLyBDaG9reXUKKyAgICAgICAgMTA0NCwgICAxMSwgMjQsICAgICAvLyBLYW50b2t1CisgICAgICAgIDEwNDYsICAgIDQsIDE0LCAgICAgLy8gRWlzaG8KKyAgICAgICAgMTA1MywgICAgMSwgMTEsICAgICAvLyBUZW5naQorICAgICAgICAxMDU4LCAgICA4LCAyOSwgICAgIC8vIEtvaGVpCisgICAgICAgIDEwNjUsICAgIDgsICAyLCAgICAgLy8gSmlyeWFrdQorICAgICAgICAxMDY5LCAgICA0LCAxMywgICAgIC8vIEVua3l1CisgICAgICAgIDEwNzQsICAgIDgsIDIzLCAgICAgLy8gU2hvaG8KKyAgICAgICAgMTA3NywgICAxMSwgMTcsICAgICAvLyBTaG9yeWFrdQorICAgICAgICAxMDgxLCAgICAyLCAxMCwgICAgIC8vIEVpaG8KKyAgICAgICAgMTA4NCwgICAgMiwgIDcsICAgICAvLyBPdG9rdQorICAgICAgICAxMDg3LCAgICA0LCAgNywgICAgIC8vIEthbmppCisgICAgICAgIDEwOTQsICAgMTIsIDE1LCAgICAgLy8gS2FobworICAgICAgICAxMDk2LCAgIDEyLCAxNywgICAgIC8vIEVpY2hvCisgICAgICAgIDEwOTcsICAgMTEsIDIxLCAgICAgLy8gU2hvdG9rdQorICAgICAgICAxMDk5LCAgICA4LCAyOCwgICAgIC8vIEtvd2EKKyAgICAgICAgMTEwNCwgICAgMiwgMTAsICAgICAvLyBDaG9qaQorICAgICAgICAxMTA2LCAgICA0LCAgOSwgICAgIC8vIEthc2hvCisgICAgICAgIDExMDgsICAgIDgsICAzLCAgICAgLy8gVGVubmluCisgICAgICAgIDExMTAsICAgIDcsIDEzLCAgICAgLy8gVGVuLWVpCisgICAgICAgIDExMTMsICAgIDcsIDEzLCAgICAgLy8gRWlreXUKKyAgICAgICAgMTExOCwgICAgNCwgIDMsICAgICAvLyBHZW4tZWkKKyAgICAgICAgMTEyMCwgICAgNCwgMTAsICAgICAvLyBIb2FuCisgICAgICAgIDExMjQsICAgIDQsICAzLCAgICAgLy8gVGVuamkKKyAgICAgICAgMTEyNiwgICAgMSwgMjIsICAgICAvLyBEYWlqaQorICAgICAgICAxMTMxLCAgICAxLCAyOSwgICAgIC8vIFRlbnNobworICAgICAgICAxMTMyLCAgICA4LCAxMSwgICAgIC8vIENob3NobworICAgICAgICAxMTM1LCAgICA0LCAyNywgICAgIC8vIEhvZW4KKyAgICAgICAgMTE0MSwgICAgNywgMTAsICAgICAvLyBFaWppCisgICAgICAgIDExNDIsICAgIDQsIDI4LCAgICAgLy8gS29qaQorICAgICAgICAxMTQ0LCAgICAyLCAyMywgICAgIC8vIFRlbnlvCisgICAgICAgIDExNDUsICAgIDcsIDIyLCAgICAgLy8gS3l1YW4KKyAgICAgICAgMTE1MSwgICAgMSwgMjYsICAgICAvLyBOaW5wZWkKKyAgICAgICAgMTE1NCwgICAxMCwgMjgsICAgICAvLyBLeXVqdQorICAgICAgICAxMTU2LCAgICA0LCAyNywgICAgIC8vIEhvZ2VuCisgICAgICAgIDExNTksICAgIDQsIDIwLCAgICAgLy8gSGVpamkKKyAgICAgICAgMTE2MCwgICAgMSwgMTAsICAgICAvLyBFaXJ5YWt1CisgICAgICAgIDExNjEsICAgIDksICA0LCAgICAgLy8gT2hvCisgICAgICAgIDExNjMsICAgIDMsIDI5LCAgICAgLy8gQ2hva2FuCisgICAgICAgIDExNjUsICAgIDYsICA1LCAgICAgLy8gRWltYW4KKyAgICAgICAgMTE2NiwgICAgOCwgMjcsICAgICAvLyBOaW4tYW4KKyAgICAgICAgMTE2OSwgICAgNCwgIDgsICAgICAvLyBLYW8KKyAgICAgICAgMTE3MSwgICAgNCwgMjEsICAgICAvLyBTaG9hbgorICAgICAgICAxMTc1LCAgICA3LCAyOCwgICAgIC8vIEFuZ2VuCisgICAgICAgIDExNzcsICAgIDgsICA0LCAgICAgLy8gSmlzaG8KKyAgICAgICAgMTE4MSwgICAgNywgMTQsICAgICAvLyBZb3dhCisgICAgICAgIDExODIsICAgIDUsIDI3LCAgICAgLy8gSnVlaQorICAgICAgICAxMTg0LCAgICA0LCAxNiwgICAgIC8vIEdlbnJ5dWt1CisgICAgICAgIDExODUsICAgIDgsIDE0LCAgICAgLy8gQnVuamkKKyAgICAgICAgMTE5MCwgICAgNCwgMTEsICAgICAvLyBLZW5reXUKKyAgICAgICAgMTE5OSwgICAgNCwgMjcsICAgICAvLyBTaG9qaQorICAgICAgICAxMjAxLCAgICAyLCAxMywgICAgIC8vIEtlbm5pbgorICAgICAgICAxMjA0LCAgICAyLCAyMCwgICAgIC8vIEdlbmt5dQorICAgICAgICAxMjA2LCAgICA0LCAyNywgICAgIC8vIEtlbi1laQorICAgICAgICAxMjA3LCAgIDEwLCAyNSwgICAgIC8vIFNob2dlbgorICAgICAgICAxMjExLCAgICAzLCAgOSwgICAgIC8vIEtlbnJ5YWt1CisgICAgICAgIDEyMTMsICAgMTIsICA2LCAgICAgLy8gS2VucG8KKyAgICAgICAgMTIxOSwgICAgNCwgMTIsICAgICAvLyBTaG9reXUKKyAgICAgICAgMTIyMiwgICAgNCwgMTMsICAgICAvLyBKb28KKyAgICAgICAgMTIyNCwgICAxMSwgMjAsICAgICAvLyBHZW5uaW4KKyAgICAgICAgMTIyNSwgICAgNCwgMjAsICAgICAvLyBLYXJva3UKKyAgICAgICAgMTIyNywgICAxMiwgMTAsICAgICAvLyBBbnRlaQorICAgICAgICAxMjI5LCAgICAzLCAgNSwgICAgIC8vIEthbmtpCisgICAgICAgIDEyMzIsICAgIDQsICAyLCAgICAgLy8gSm9laQorICAgICAgICAxMjMzLCAgICA0LCAxNSwgICAgIC8vIFRlbXB1a3UKKyAgICAgICAgMTIzNCwgICAxMSwgIDUsICAgICAvLyBCdW5yeWFrdQorICAgICAgICAxMjM1LCAgICA5LCAxOSwgICAgIC8vIEthdGVpCisgICAgICAgIDEyMzgsICAgMTEsIDIzLCAgICAgLy8gUnlha3VuaW4KKyAgICAgICAgMTIzOSwgICAgMiwgIDcsICAgICAvLyBFbi1vCisgICAgICAgIDEyNDAsICAgIDcsIDE2LCAgICAgLy8gTmluamkKKyAgICAgICAgMTI0MywgICAgMiwgMjYsICAgICAvLyBLYW5nZW4KKyAgICAgICAgMTI0NywgICAgMiwgMjgsICAgICAvLyBIb2ppCisgICAgICAgIDEyNDksICAgIDMsIDE4LCAgICAgLy8gS2VuY2hvCisgICAgICAgIDEyNTYsICAgMTAsICA1LCAgICAgLy8gS29nZW4KKyAgICAgICAgMTI1NywgICAgMywgMTQsICAgICAvLyBTaG9rYQorICAgICAgICAxMjU5LCAgICAzLCAyNiwgICAgIC8vIFNob2dlbgorICAgICAgICAxMjYwLCAgICA0LCAxMywgICAgIC8vIEJ1bi1vCisgICAgICAgIDEyNjEsICAgIDIsIDIwLCAgICAgLy8gS29jaG8KKyAgICAgICAgMTI2NCwgICAgMiwgMjgsICAgICAvLyBCdW4tZWkKKyAgICAgICAgMTI3NSwgICAgNCwgMjUsICAgICAvLyBLZW5qaQorICAgICAgICAxMjc4LCAgICAyLCAyOSwgICAgIC8vIEtvYW4KKyAgICAgICAgMTI4OCwgICAgNCwgMjgsICAgICAvLyBTaG9vCisgICAgICAgIDEyOTMsICAgIDgsIDU1LCAgICAgLy8gRWluaW4KKyAgICAgICAgMTI5OSwgICAgNCwgMjUsICAgICAvLyBTaG9hbgorICAgICAgICAxMzAyLCAgIDExLCAyMSwgICAgIC8vIEtlbmdlbgorICAgICAgICAxMzAzLCAgICA4LCAgNSwgICAgIC8vIEthZ2VuCisgICAgICAgIDEzMDYsICAgMTIsIDE0LCAgICAgLy8gVG9rdWppCisgICAgICAgIDEzMDgsICAgMTAsICA5LCAgICAgLy8gRW5rZWkKKyAgICAgICAgMTMxMSwgICAgNCwgMjgsICAgICAvLyBPY2hvCisgICAgICAgIDEzMTIsICAgIDMsIDIwLCAgICAgLy8gU2hvd2EKKyAgICAgICAgMTMxNywgICAgMiwgIDMsICAgICAvLyBCdW5wbworICAgICAgICAxMzE5LCAgICA0LCAyOCwgICAgIC8vIEdlbm8KKyAgICAgICAgMTMyMSwgICAgMiwgMjMsICAgICAvLyBHZW5reW8KKyAgICAgICAgMTMyNCwgICAxMiwgIDksICAgICAvLyBTaG9jaHUKKyAgICAgICAgMTMyNiwgICAgNCwgMjYsICAgICAvLyBLYXJla2kKKyAgICAgICAgMTMyOSwgICAgOCwgMjksICAgICAvLyBHZW50b2t1CisgICAgICAgIDEzMzEsICAgIDgsICA5LCAgICAgLy8gR2Vua28KKyAgICAgICAgMTMzNCwgICAgMSwgMjksICAgICAvLyBLZW1tdQorICAgICAgICAxMzM2LCAgICAyLCAyOSwgICAgIC8vIEVuZ2VuCisgICAgICAgIDEzNDAsICAgIDQsIDI4LCAgICAgLy8gS29rb2t1CisgICAgICAgIDEzNDYsICAgMTIsICA4LCAgICAgLy8gU2hvaGVpCisgICAgICAgIDEzNzAsICAgIDcsIDI0LCAgICAgLy8gS2VudG9rdQorICAgICAgICAxMzcyLCAgICA0LCAgMSwgICAgIC8vIEJ1bmNoXHUwMTY5CisgICAgICAgIDEzNzUsICAgIDUsIDI3LCAgICAgLy8gVGVuanUKKyAgICAgICAgMTM3OSwgICAgMywgMjIsICAgICAvLyBLb3J5YWt1CisgICAgICAgIDEzODEsICAgIDIsIDEwLCAgICAgLy8gS293YQorICAgICAgICAxMzg0LCAgICA0LCAyOCwgICAgIC8vIEdlbmNoXHUwMTY5CisgICAgICAgIDEzODQsICAgIDIsIDI3LCAgICAgLy8gTWVpdG9rdQorICAgICAgICAxMzg3LCAgICA4LCAyMywgICAgIC8vIEtha2VpCisgICAgICAgIDEzODksICAgIDIsICA5LCAgICAgLy8gS29vCisgICAgICAgIDEzOTAsICAgIDMsIDI2LCAgICAgLy8gTWVpdG9rdQorICAgICAgICAxMzk0LCAgICA3LCAgNSwgICAgIC8vIE9laQorICAgICAgICAxNDI4LCAgICA0LCAyNywgICAgIC8vIFNob2NobworICAgICAgICAxNDI5LCAgICA5LCAgNSwgICAgIC8vIEVpa3lvCisgICAgICAgIDE0NDEsICAgIDIsIDE3LCAgICAgLy8gS2FraXRzdQorICAgICAgICAxNDQ0LCAgICAyLCAgNSwgICAgIC8vIEJ1bi1hbgorICAgICAgICAxNDQ5LCAgICA3LCAyOCwgICAgIC8vIEhvdG9rdQorICAgICAgICAxNDUyLCAgICA3LCAyNSwgICAgIC8vIEt5b3Rva3UKKyAgICAgICAgMTQ1NSwgICAgNywgMjUsICAgICAvLyBLb3NobworICAgICAgICAxNDU3LCAgICA5LCAyOCwgICAgIC8vIENob3Jva3UKKyAgICAgICAgMTQ2MCwgICAxMiwgMjEsICAgICAvLyBLYW5zaG8KKyAgICAgICAgMTQ2NiwgICAgMiwgMjgsICAgICAvLyBCdW5zaG8KKyAgICAgICAgMTQ2NywgICAgMywgIDMsICAgICAvLyBPbmluCisgICAgICAgIDE0NjksICAgIDQsIDI4LCAgICAgLy8gQnVubWVpCisgICAgICAgIDE0ODcsICAgIDcsIDI5LCAgICAgLy8gQ2hva3lvCisgICAgICAgIDE0ODksICAgIDgsIDIxLCAgICAgLy8gRW50b2t1CisgICAgICAgIDE0OTIsICAgIDcsIDE5LCAgICAgLy8gTWVpbworICAgICAgICAxNTAxLCAgICAyLCAyOSwgICAgIC8vIEJ1bmtpCisgICAgICAgIDE1MDQsICAgIDIsIDMwLCAgICAgLy8gRWlzaG8KKyAgICAgICAgMTUyMSwgICAgOCwgMjMsICAgICAvLyBUYWllaQorICAgICAgICAxNTI4LCAgICA4LCAyMCwgICAgIC8vIEt5b3Jva3UKKyAgICAgICAgMTUzMiwgICAgNywgMjksICAgICAvLyBUZW5tb24KKyAgICAgICAgMTU1NSwgICAxMCwgMjMsICAgICAvLyBLb2ppCisgICAgICAgIDE1NTgsICAgIDIsIDI4LCAgICAgLy8gRWlyb2t1CisgICAgICAgIDE1NzAsICAgIDQsIDIzLCAgICAgLy8gR2Vua2kKKyAgICAgICAgMTU3MywgICAgNywgMjgsICAgICAvLyBUZW5zaG8KKyAgICAgICAgMTU5MiwgICAxMiwgIDgsICAgICAvLyBCdW5yb2t1CisgICAgICAgIDE1OTYsICAgMTAsIDI3LCAgICAgLy8gS2VpY2hvCisgICAgICAgIDE2MTUsICAgIDcsIDEzLCAgICAgLy8gR2Vud2EKKyAgICAgICAgMTYyNCwgICAgMiwgMzAsICAgICAvLyBLYW4tZWkKKyAgICAgICAgMTY0NCwgICAxMiwgMTYsICAgICAvLyBTaG9obworICAgICAgICAxNjQ4LCAgICAyLCAxNSwgICAgIC8vIEtlaWFuCisgICAgICAgIDE2NTIsICAgIDksIDE4LCAgICAgLy8gU2hvbworICAgICAgICAxNjU1LCAgICA0LCAxMywgICAgIC8vIE1laXJ5YWt1CisgICAgICAgIDE2NTgsICAgIDcsIDIzLCAgICAgLy8gTWFuamkKKyAgICAgICAgMTY2MSwgICAgNCwgMjUsICAgICAvLyBLYW5idW4KKyAgICAgICAgMTY3MywgICAgOSwgMjEsICAgICAvLyBFbnBvCisgICAgICAgIDE2ODEsICAgIDksIDI5LCAgICAgLy8gVGVud2EKKyAgICAgICAgMTY4NCwgICAgMiwgMjEsICAgICAvLyBKb2t5bworICAgICAgICAxNjg4LCAgICA5LCAzMCwgICAgIC8vIEdlbnJva3UKKyAgICAgICAgMTcwNCwgICAgMywgMTMsICAgICAvLyBIb2VpCisgICAgICAgIDE3MTEsICAgIDQsIDI1LCAgICAgLy8gU2hvdG9rdQorICAgICAgICAxNzE2LCAgICA2LCAyMiwgICAgIC8vIEt5b2hvCisgICAgICAgIDE3MzYsICAgIDQsIDI4LCAgICAgLy8gR2VuYnVuCisgICAgICAgIDE3NDEsICAgIDIsIDI3LCAgICAgLy8gS2FucG8KKyAgICAgICAgMTc0NCwgICAgMiwgMjEsICAgICAvLyBFbmt5bworICAgICAgICAxNzQ4LCAgICA3LCAxMiwgICAgIC8vIEthbi1lbgorICAgICAgICAxNzUxLCAgIDEwLCAyNywgICAgIC8vIEhvcnlha3UKKyAgICAgICAgMTc2NCwgICAgNiwgIDIsICAgICAvLyBNZWl3YQorICAgICAgICAxNzcyLCAgIDExLCAxNiwgICAgIC8vIEFuLWVpCisgICAgICAgIDE3ODEsICAgIDQsICAyLCAgICAgLy8gVGVubWVpCisgICAgICAgIDE3ODksICAgIDEsIDI1LCAgICAgLy8gS2Fuc2VpCisgICAgICAgIDE4MDEsICAgIDIsICA1LCAgICAgLy8gS3lvd2EKKyAgICAgICAgMTgwNCwgICAgMiwgMTEsICAgICAvLyBCdW5rYQorICAgICAgICAxODE4LCAgICA0LCAyMiwgICAgIC8vIEJ1bnNlaQorICAgICAgICAxODMwLCAgIDEyLCAxMCwgICAgIC8vIFRlbnBvCisgICAgICAgIDE4NDQsICAgMTIsICAyLCAgICAgLy8gS29rYQorICAgICAgICAxODQ4LCAgICAyLCAyOCwgICAgIC8vIEthZWkKKyAgICAgICAgMTg1NCwgICAxMSwgMjcsICAgICAvLyBBbnNlaQorICAgICAgICAxODYwLCAgICAzLCAxOCwgICAgIC8vIE1hbi1lbgorICAgICAgICAxODYxLCAgICAyLCAxOSwgICAgIC8vIEJ1bmt5dQorICAgICAgICAxODY0LCAgICAyLCAyMCwgICAgIC8vIEdlbmppCisgICAgICAgIDE4NjUsICAgIDQsICA3LCAgICAgLy8gS2VpbworICAgICAgICAxODY4LCAgICA5LCAgOCwgICAgIC8vIE1laWppCisgICAgICAgIDE5MTIsICAgIDcsIDMwLCAgICAgLy8gVGFpc2hvCisgICAgICAgIDE5MjYsICAgMTIsIDI1LCAgICAgLy8gU2hvd2EKKyAgICAgICAgMTk4OSwgICAgMSwgIDgsICAgICAvLyBIZWlzZWkKKyAgICB9OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHVibGljIGNvbnN0YW50cyBmb3Igc29tZSBvZiB0aGUgcmVjZW50IGVyYXMgdGhhdCBmb2xrcyBtaWdodCB1c2UuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIENvbnN0YW50IGZvciB0aGUgY3VycmVudCBlcmEuICBUaGlzIG11c3QgYmUgcmVndWxhcmx5IHVwZGF0ZWQuCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgQ1VSUkVOVF9FUkEgPSAoRVJBUy5sZW5ndGggLyAzKSAtIDE7CisgICAgCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciB0aGUgZXJhIHN0YXJ0aW5nIG9uIFNlcHQuIDgsIDE4NjggQUQuCisgICAgICogQHN0YWJsZSAgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBNRUlKSSA9IENVUlJFTlRfRVJBIC0gMzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIGVyYSBzdGFydGluZyBvbiBKdWx5IDMwLCAxOTEyIEFELiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgVEFJU0hPID0gQ1VSUkVOVF9FUkEgLSAyOworICAgIAorICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIGVyYSBzdGFydGluZyBvbiBEZWMuIDI1LCAxOTI2IEFELiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgU0hPV0EgPSBDVVJSRU5UX0VSQSAtIDE7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIHRoZSBlcmEgc3RhcnRpbmcgb24gSmFuLiA3LCAxOTg5IEFELiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgSEVJU0VJID0gQ1VSUkVOVF9FUkE7CisKKyAgICAvKioKKyAgICAgKiBQYXJ0aWFsIGxpbWl0cyB0YWJsZSBmb3IgbGltaXRzIHRoYXQgZGlmZmVyIGZyb20gR3JlZ29yaWFuQ2FsZW5kYXIncy4KKyAgICAgKiBUaGUgWUVBUiBtYXggbGltaXRzIGFyZSBmaWxsZWQgaW4gdGhlIGZpcnN0IHRpbWUgdGhleSBhcmUgbmVlZGVkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICAgICAgTGVhc3QgICAgICBNYXhpbXVtCisgICAgICAgIC8vICAgICAgICAgICBNaW5pbXVtICAgICAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgQ1VSUkVOVF9FUkEsIENVUlJFTlRfRVJBIH0sIC8vIEVSQQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAgICAgIDAsICAgICAgICAgICAwIH0sIC8vIFlFQVIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBZRUFSX0xJTUlUX0tOT1dOID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBHcmVnb3JpYW5DYWxlbmRhci4gIFdlIHNob3VsZCByZWFsbHkgaGFuZGxlIFlFQVJfV09ZIGFuZAorICAgICAqIEVYVEVOREVEX1lFQVIgaGVyZSB0b28gdG8gaW1wbGVtZW50IHRoZSAxLi41MDAwMDAwIHJhbmdlLCBidXQgaXQncworICAgICAqIG5vdCBjcml0aWNhbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgRVJBOgorICAgICAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICAgICAgaWYgKCFZRUFSX0xJTUlUX0tOT1dOKSB7CisgICAgICAgICAgICAgICAgaW50IG1pbiA9IEVSQVNbM10gLSBFUkFTWzBdOworICAgICAgICAgICAgICAgIGludCBtYXggPSBtaW47CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT02OyBpPEVSQVMubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkID0gRVJBU1tpXSAtIEVSQVNbaS0zXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGQgPCBtaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IGQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGQgPiBtYXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9IGQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgTElNSVRTW2ZpZWxkXVtMRUFTVF9NQVhJTVVNXSA9ICsrbWluOyAvLyAxLWJhc2VkCisgICAgICAgICAgICAgICAgTElNSVRTW2ZpZWxkXVtNQVhJTVVNXSA9ICsrbWF4OyAvLyAxLWJhc2VkCisKKyAgICAgICAgICAgICAgICBZRUFSX0xJTUlUX0tOT1dOPXRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZUdldExpbWl0KGZpZWxkLCBsaW1pdFR5cGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiamFwYW5lc2UiOworICAgIH0KKworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3Rvcnk7CisgICAgcHVibGljIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSgpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBDYWxlbmRhckZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBKYXBhbmVzZUNhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSmFwYW5lc2UiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Mb2NhbGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Mb2NhbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlNjYxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0xvY2FsZURhdGEuamF2YQpAQCAtMCwwICsxLDMxNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyAqIEEgY2xhc3MgZm9yIGFjY2Vzc2luZyBtaXNjZWxsZW5lb3VzIGRhdGEgaW4gdGhlIGxvY2FsZSBidW5kbGVzCisgKiBAYXV0aG9yIHJhbQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBMb2NhbGVEYXRhIHsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVhFTVBMQVJfQ0hBUlMgICAgICA9ICJFeGVtcGxhckNoYXJhY3RlcnMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBNRUFTVVJFTUVOVF9TWVNURU0gID0gIk1lYXN1cmVtZW50U3lzdGVtIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFQRVJfU0laRSAgICAgICAgICA9ICJQYXBlclNpemUiOworICAgIHByaXZhdGUgYm9vbGVhbiBub1N1YnN0aXR1dGU7CisgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGU7CisKKyAgICAvKioKKyAgICAgKiBFWFR5cGUgZm9yIHtAbGluayAjZ2V0RXhlbXBsYXJTZXQoaW50LCBpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVTX1NUQU5EQVJEID0gMDsKKworICAgIC8qKgorICAgICAqIEVYVHlwZSBmb3Ige0BsaW5rICNnZXRFeGVtcGxhclNldChpbnQsIGludCl9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVNfQVVYSUxJQVJZID0gMTsKKworICAgIC8qKgorICAgICAqIENvdW50IG9mIEVYVHlwZXMgZm9yIHtAbGluayAjZ2V0RXhlbXBsYXJTZXQoaW50LCBpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVTX0NPVU5UID0gMjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgdHlwZSBmb3Ige0BsaW5rICNnZXREZWxpbWl0ZXIoaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVU9UQVRJT05fU1RBUlQgPSAwOworCisgICAgLyoqCisgICAgICogRGVsaW1pdGVyIHR5cGUgZm9yIHtAbGluayAjZ2V0RGVsaW1pdGVyKGludCl9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX0VORCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgdHlwZSBmb3Ige0BsaW5rICNnZXREZWxpbWl0ZXIoaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTFRfUVVPVEFUSU9OX1NUQVJUID0gMjsKKworICAgIC8qKgorICAgICAqIERlbGltaXRlciB0eXBlIGZvciB7QGxpbmsgI2dldERlbGltaXRlcihpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMVF9RVU9UQVRJT05fRU5EID0gMzsKKworICAgIC8qKgorICAgICAqIENvdW50IG9mIGRlbGltaXRlciB0eXBlcyBmb3Ige0BsaW5rICNnZXREZWxpbWl0ZXIoaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUxJTUlURVJfQ09VTlQgPSA0OworCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGRlZmF1bHQgY29uc3RydWN0aW9uCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgTG9jYWxlRGF0YSgpe30KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBleGVtcGxhciBjaGFyYWN0ZXJzIGZvciBhIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgICAgTG9jYWxlIGZvciB3aGljaCB0aGUgZXhlbXBsYXIgY2hhcmFjdGVyIHNldAorICAgICAqICAgICAgICAgICAgICAgICAgaXMgdG8gYmUgcmV0cmlldmVkLgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQml0bWFzayBmb3Igb3B0aW9ucyB0byBhcHBseSB0byB0aGUgZXhlbXBsYXIgcGF0dGVybi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFNwZWNpZnkgemVybyB0byByZXRyaWV2ZSB0aGUgZXhlbXBsYXIgc2V0IGFzIGl0IGlzCisgICAgICogICAgICAgICAgICAgICAgICBkZWZpbmVkIGluIHRoZSBsb2NhbGUgZGF0YS4gIFNwZWNpZnkKKyAgICAgKiAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQuQ0FTRSB0byByZXRyaWV2ZSBhIGNhc2UtZm9sZGVkIGV4ZW1wbGFyCisgICAgICogICAgICAgICAgICAgICAgICBzZXQuICBTZWUge0BsaW5rIFVuaWNvZGVTZXQjYXBwbHlQYXR0ZXJuKFN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGludCl9IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdmFsaWQgb3B0aW9ucy4gIFRoZQorICAgICAqICAgICAgICAgICAgICAgICAgSUdOT1JFX1NQQUNFIGJpdCBpcyBhbHdheXMgc2V0LCByZWdhcmRsZXNzIG9mIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgdmFsdWUgb2YgJ29wdGlvbnMnLgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIHNldCBvZiBleGVtcGxhciBjaGFyYWN0ZXJzIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBnZXRFeGVtcGxhclNldChVTG9jYWxlIGxvY2FsZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGJ1bmRsZS5nZXRTdHJpbmcoRVhFTVBMQVJfQ0hBUlMpOworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQocGF0dGVybiwgVW5pY29kZVNldC5JR05PUkVfU1BBQ0UgfCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2V0IG9mIGV4ZW1wbGFyIGNoYXJhY3RlcnMgZm9yIGEgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBCaXRtYXNrIGZvciBvcHRpb25zIHRvIGFwcGx5IHRvIHRoZSBleGVtcGxhciBwYXR0ZXJuLgorICAgICAqICAgICAgICAgICAgICAgICAgU3BlY2lmeSB6ZXJvIHRvIHJldHJpZXZlIHRoZSBleGVtcGxhciBzZXQgYXMgaXQgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gdGhlIGxvY2FsZSBkYXRhLiAgU3BlY2lmeQorICAgICAqICAgICAgICAgICAgICAgICAgVW5pY29kZVNldC5DQVNFIHRvIHJldHJpZXZlIGEgY2FzZS1mb2xkZWQgZXhlbXBsYXIKKyAgICAgKiAgICAgICAgICAgICAgICAgIHNldC4gIFNlZSB7QGxpbmsgVW5pY29kZVNldCNhcHBseVBhdHRlcm4oU3RyaW5nLAorICAgICAqICAgICAgICAgICAgICAgICAgaW50KX0gZm9yIGEgY29tcGxldGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zLiAgVGhlCisgICAgICogICAgICAgICAgICAgICAgICBJR05PUkVfU1BBQ0UgYml0IGlzIGFsd2F5cyBzZXQsIHJlZ2FyZGxlc3Mgb2YgdGhlCisgICAgICogICAgICAgICAgICAgICAgICB2YWx1ZSBvZiAnb3B0aW9ucycuCisgICAgICogQHBhcmFtIGV4dHlwZSAgICAgIFRoZSB0eXBlIG9mIGV4ZW1wbGFyIHNldCB0byBiZSByZXRyaWV2ZWQsCisgICAgICogICAgICAgICAgICAgICAgICBFU19TVEFOREFSRCBvciBFU19BVVhJTElBUlkKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBzZXQgb2YgZXhlbXBsYXIgY2hhcmFjdGVycyBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldEV4ZW1wbGFyU2V0KGludCBvcHRpb25zLCBpbnQgZXh0eXBlKSB7CisgICAgICAgIFN0cmluZyBbXSBleGVtcGxhclNldFR5cGVzID0geyAiRXhlbXBsYXJDaGFyYWN0ZXJzIiwgIkF1eEV4ZW1wbGFyQ2hhcmFjdGVycyIgfTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3RyaW5nQnVuZGxlID0gYnVuZGxlLmdldChleGVtcGxhclNldFR5cGVzW2V4dHlwZV0pOworICAgIAorICAgICAgICAgICAgaWYgKCBub1N1YnN0aXR1dGUgJiYgKHN0cmluZ0J1bmRsZS5nZXRMb2FkaW5nU3RhdHVzKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSApCisgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAKKyAgICAgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldChzdHJpbmdCdW5kbGUuZ2V0U3RyaW5nKCksIFVuaWNvZGVTZXQuSUdOT1JFX1NQQUNFIHwgb3B0aW9ucyk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXh0eXBlPT1Mb2NhbGVEYXRhLkVTX0FVWElMSUFSWSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIExvY2FsZURhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgVUxvY2FsZSBzcGVjaWZpZWQgaW4gbG9jYWxlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIExvY2FsZSB3aXRoIHRoaWNoIHRoZSBsb2NhbGUgZGF0YSBvYmplY3QgaXMgYXNzb2NpYXRlZC4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgbG9jYWxlIGRhdGEgb2JqZWN0LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVEYXRhIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgTG9jYWxlRGF0YSBsZCA9IG5ldyBMb2NhbGVEYXRhKCk7CisgICAgICAgbGQuYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUgKTsKKyAgICAgICBsZC5ub1N1YnN0aXR1dGUgPSBmYWxzZTsKKyAgICAgICByZXR1cm4gbGQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgTG9jYWxlRGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBBIGxvY2FsZSBkYXRhIG9iamVjdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlRGF0YSBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICByZXR1cm4gTG9jYWxlRGF0YS5nZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgIm5vIHN1YnN0aXR1dGUiIGJlaGF2aW9yIG9mIHRoaXMgbG9jYWxlIGRhdGEgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHNldHRpbmcJVmFsdWUgZm9yIHRoZSBubyBzdWJzdGl0dXRlIGJlaGF2aW9yLiAgSWYgVFJVRSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIG1ldGhvZHMgb2YgdGhpcyBsb2NhbGUgZGF0YSBvYmplY3Qgd2lsbCByZXR1cm4KKyAgICAgKiAgICAgICAgICAgICAgICAgIGFuIGVycm9yIHdoZW4gbm8gZGF0YSBpcyBhdmFpbGFibGUgZm9yIHRoYXQgbWV0aG9kLAorICAgICAqICAgICAgICAgICAgICAgICAgZ2l2ZW4gdGhlIGxvY2FsZSBJRCBzdXBwbGllZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROb1N1YnN0aXR1dGUoYm9vbGVhbiBzZXR0aW5nKSB7CisgICAgICAgbm9TdWJzdGl0dXRlID0gc2V0dGluZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSAibm8gc3Vic3RpdHV0ZSIgYmVoYXZpb3Igb2YgdGhpcyBsb2NhbGUgZGF0YSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFZhbHVlIGZvciB0aGUgbm8gc3Vic3RpdHV0ZSBiZWhhdmlvci4gIElmIFRSVUUsCisgICAgICogICAgICAgICAgICAgICAgICBtZXRob2RzIG9mIHRoaXMgbG9jYWxlIGRhdGEgb2JqZWN0IHdpbGwgcmV0dXJuCisgICAgICogICAgICAgICAgICAgICAgICBhbiBlcnJvciB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlIGZvciB0aGF0IG1ldGhvZCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGdpdmVuIHRoZSBsb2NhbGUgSUQgc3VwcGxpZWQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0Tm9TdWJzdGl0dXRlKCkgeworICAgICAgIHJldHVybiBub1N1YnN0aXR1dGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGEgZGVsaW1pdGVyIHN0cmluZyBmcm9tIHRoZSBsb2NhbGUgZGF0YS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlICAgICAgVGhlIHR5cGUgb2YgZGVsaW1pdGVyIHN0cmluZyBkZXNpcmVkLiAgQ3VycmVudGx5LAorICAgICAqICAgICAgICAgICAgICAgICAgdGhlIHZhbGlkIGNob2ljZXMgYXJlIFFVT1RBVElPTl9TVEFSVCwgUVVPVEFUSU9OX0VORCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEFMVF9RVU9UQVRJT05fU1RBUlQsIG9yIEFMVF9RVU9UQVRJT05fRU5ELgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGRlc2lyZWQgZGVsaW1pdGVyIHN0cmluZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVsaW1pdGVyKGludCB0eXBlKSB7CisgICAgICAgIFN0cmluZyBbXSBkZWxpbWl0ZXJUeXBlcyA9IHsgInF1b3RhdGlvblN0YXJ0IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInF1b3RhdGlvbkVuZCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHRlcm5hdGVRdW90YXRpb25TdGFydCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHRlcm5hdGVRdW90YXRpb25FbmQiIH07CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3RyaW5nQnVuZGxlID0gYnVuZGxlLmdldCgiZGVsaW1pdGVycyIpLmdldChkZWxpbWl0ZXJUeXBlc1t0eXBlXSk7CisKKyAgICAgICAgaWYgKCBub1N1YnN0aXR1dGUgJiYgKHN0cmluZ0J1bmRsZS5nZXRMb2FkaW5nU3RhdHVzKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSApCisgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nIChzdHJpbmdCdW5kbGUuZ2V0U3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVudW1lcmF0aW9uIGZvciByZXByZXNlbnRpbmcgdGhlIG1lYXN1cmVtZW50IHN5c3RlbXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBNZWFzdXJlbWVudFN5c3RlbXsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBNZWFzdXJlbWVudCBzeXN0ZW0gc3BlY2lmaWVkIGJ5IExlIFN5c3QmI3gwMEU4O21lIEludGVybmF0aW9uYWwgZCdVbml0JiN4MDBFOTtzIChTSSkKKyAgICAgICAgICogb3RoZXJ3aXNlIGtub3duIGFzIE1ldHJpYyBzeXN0ZW0uIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTWVhc3VyZW1lbnRTeXN0ZW0gU0kgPSBuZXcgTWVhc3VyZW1lbnRTeXN0ZW0oMCk7CisgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogTWVhc3VyZW1lbnQgc3lzdGVtIGZvbGxvd2VkIGluIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EuIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1lYXN1cmVtZW50U3lzdGVtIFVTID0gbmV3IE1lYXN1cmVtZW50U3lzdGVtKDEpOworICAgIAorICAgICAgICBwcml2YXRlIGludCBzeXN0ZW1JRDsKKyAgICAgICAgcHJpdmF0ZSBNZWFzdXJlbWVudFN5c3RlbShpbnQgaWQpeworICAgICAgICAgICAgc3lzdGVtSUQgPSBpZDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBlcXVhbHMoaW50IGlkKXsKKyAgICAgICAgICAgIHJldHVybiBzeXN0ZW1JRCA9PSBpZDsKKyAgICAgICAgfQorICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1lYXN1cmVtZW50IHN5c3RlbSB1c2VkIGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5IHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgICAgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIG1lYXN1cmVtZW50IHN5c3RlbSB0byBiZSByZXRyaWV2ZWQuCisgICAgICogQHJldHVybiBNZWFzdXJlbWVudFN5c3RlbSB0aGUgbWVhc3VyZW1lbnQgc3lzdGVtIHVzZWQgaW4gdGhlIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1lYXN1cmVtZW50U3lzdGVtIGdldE1lYXN1cmVtZW50U3lzdGVtKFVMb2NhbGUgbG9jYWxlKXsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzeXNCdW5kbGUgPSBidW5kbGUuZ2V0KE1FQVNVUkVNRU5UX1NZU1RFTSk7CisgICAgICAgIAorICAgICAgICBpbnQgc3lzdGVtID0gc3lzQnVuZGxlLmdldEludCgpOworICAgICAgICBpZihNZWFzdXJlbWVudFN5c3RlbS5VUy5lcXVhbHMoc3lzdGVtKSl7CisgICAgICAgICAgICByZXR1cm4gTWVhc3VyZW1lbnRTeXN0ZW0uVVM7CisgICAgICAgIH0KKyAgICAgICAgaWYoTWVhc3VyZW1lbnRTeXN0ZW0uU0kuZXF1YWxzKHN5c3RlbSkpeworICAgICAgICAgICAgcmV0dXJuIE1lYXN1cmVtZW50U3lzdGVtLlNJOworICAgICAgICB9CisgICAgICAgIC8vIHJldHVybiBudWxsIGlmIHRoZSBvYmplY3QgaXMgbnVsbCBvciBpcyBub3QgYW4gaW5zdGFuY2UKKyAgICAgICAgLy8gb2YgaW50ZWdlciBpbmRpY2F0aW5nIGFuIGVycm9yCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvZiBsZXR0ZXIgaGVhZCAKKyAgICAgKiB1c2VkIGluIHRoZSBjb3VudHJ5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBQYXBlclNpemV7CisgICAgICAgIHByaXZhdGUgaW50IGhlaWdodDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgd2lkdGg7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFBhcGVyU2l6ZShpbnQgaCwgaW50IHcpeworICAgICAgICAgICAgaGVpZ2h0ID0gaDsKKyAgICAgICAgICAgIHdpZHRoID0gdzsKKyAgICAgICAgfQorICAgICAgICAvKiogCisgICAgICAgICAqIFJldHJ1bnMgdGhlIGhlaWdodCBvZiB0aGUgcGFwZXIKKyAgICAgICAgICogQHJldHVybiB0aGUgaGVpZ2h0IAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SGVpZ2h0KCl7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSB3aWR0aCBvZiBodGUgcGFwZXIKKyAgICAgICAgICogQHJldHVybiB0aGUgd2lkdGgKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldFdpZHRoKCl7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiBwYXBlciB1c2VkIGluIHRoZSBsb2NhbGUuIFRoZSBwYXBlciBzaXplcyByZXR1cm5lZCBhcmUgYWx3YXlzIGluIAorICAgICAqIDxlbT4gbWlsbGktbWV0ZXJzPGVtPi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBtZWFzdXJlbWVudCBzeXN0ZW0gdG8gYmUgcmV0cmlldmVkLiAKKyAgICAgKiBAcmV0dXJuIFRoZSBwYXBlciBzaXplIHVzZWQgaW4gdGhlIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUGFwZXJTaXplIGdldFBhcGVyU2l6ZShVTG9jYWxlIGxvY2FsZSl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgb2JqID0gYnVuZGxlLmdldChQQVBFUl9TSVpFKTsKKyAgICAgICAgaW50W10gc2l6ZSA9IG9iai5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQYXBlclNpemUoc2l6ZVswXSwgc2l6ZVsxXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNWMzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9NZWFzdXJlLmphdmEKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDIwLCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5sYW5nLk51bWJlcjsKKworLyoqCisgKiBBbiBhbW91bnQgb2YgYSBzcGVjaWZpZWQgdW5pdCwgY29uc2lzdGluZyBvZiBhIE51bWJlciBhbmQgYSBVbml0LgorICogRm9yIGV4YW1wbGUsIGEgbGVuZ3RoIG1lYXN1cmUgY29uc2lzdHMgb2YgYSBOdW1iZXIgYW5kIGEgbGVuZ3RoCisgKiB1bml0LCBzdWNoIGFzIGZlZXQgb3IgbWV0ZXJzLiAgVGhpcyBpcyBhbiBhYnN0cmFjdCBjbGFzcy4KKyAqIFN1YmNsYXNzZXMgc3BlY2lmeSBhIGNvbmNyZXRlIFVuaXQgdHlwZS4KKyAqCisgKiA8cD5NZWFzdXJlIG9iamVjdHMgYXJlIHBhcnNlZCBhbmQgZm9ybWF0dGVkIGJ5IHN1YmNsYXNzZXMgb2YKKyAqIE1lYXN1cmVGb3JtYXQuCisgKgorICogPHA+TWVhc3VyZSBvYmplY3RzIGFyZSBpbW11dGFibGUuCisgKgorICogQHNlZSBqYXZhLmxhbmcuTnVtYmVyCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuTWVhc3VyZVVuaXQKKyAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5NZWFzdXJlRm9ybWF0CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAzLjAKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lYXN1cmUgeworICAgIAorICAgIHByaXZhdGUgTnVtYmVyIG51bWJlcjsKKworICAgIHByaXZhdGUgTWVhc3VyZVVuaXQgdW5pdDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgb2JqZWN0IGdpdmVuIGEgbnVtYmVyIGFuZCBhIHVuaXQuCisgICAgICogQHBhcmFtIG51bWJlciB0aGUgbnVtYmVyCisgICAgICogQHBhcmFtIHVuaXQgdGhlIHVuaXQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTWVhc3VyZShOdW1iZXIgbnVtYmVyLCBNZWFzdXJlVW5pdCB1bml0KSB7CisgICAgICAgIGlmIChudW1iZXIgPT0gbnVsbCB8fCB1bml0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMubnVtYmVyID0gbnVtYmVyOworICAgICAgICB0aGlzLnVuaXQgPSB1bml0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBlcXVhbCB0byB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAob2JqID09IHRoaXMpIHJldHVybiB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTWVhc3VyZSBtID0gKE1lYXN1cmUpIG9iajsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXIuZXF1YWxzKG0ubnVtYmVyKSAmJiB1bml0LmVxdWFscyhtLnVuaXQpOworICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGhhc2hjb2RlIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgMzItYml0IGhhc2gKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyLmhhc2hDb2RlKCkgXiB1bml0Lmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGNvbnNpc3Rpbmcgb2YgdGhlIElTTyBjdXJyZW5jeQorICAgICAqIGNvZGUgdG9nZXRoZXIgd2l0aCB0aGUgbnVtZXJpYyBhbW91bnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyLnRvU3RyaW5nKCkgKyAnICcgKyB1bml0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0J3MgTnVtYmVyCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE51bWJlciBnZXROdW1iZXIoKSB7CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdW5pdCBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0J3MgVW5pdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBNZWFzdXJlVW5pdCBnZXRVbml0KCkgeworICAgICAgICByZXR1cm4gdW5pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9NZWFzdXJlVW5pdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZVVuaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWI4Yzk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZVVuaXQuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBBcHJpbCAyMCwgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworLyoqCisgKiBBIHVuaXQgc3VjaCBhcyBsZW5ndGgsIG1hc3MsIHZvbHVtZSwgY3VycmVuY3ksIGV0Yy4gIEEgdW5pdCBpcworICogY291cGxlZCB3aXRoIGEgbnVtZXJpYyBhbW91bnQgdG8gcHJvZHVjZSBhIE1lYXN1cmUuCisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLk1lYXN1cmUKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDMuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWVhc3VyZVVuaXQgeworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBNZWFzdXJlVW5pdCgpIHt9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvT3ZlcmxheUJ1bmRsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvT3ZlcmxheUJ1bmRsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlYTU0MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9PdmVybGF5QnVuZGxlLmphdmEKQEAgLTAsMCArMSwxNzMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQSBSZXNvdXJjZUJ1bmRsZSB0aGF0IG92ZXJsYXlzIG9uZSBoaWVyYXJjaHkgYXRvcCBhbm90aGVyLiAgVGhpcyBpcworICogYmVzdCBleHBsYWluZWQgYnkgZXhhbXBsZS4gIFN1cHBvc2Ugb25lIHdhbnRzIHRvIHVzZSB0aGUKKyAqIHJlc291cmNlIGhpYXJhcmNoeSAoaW4gSkRLIDEuMiBhbmQgMS4zLCBidXQgbm90IDEuNCkgYXQgCisgKiAiamF2YS50ZXh0LnJlc291cmNlcy5Mb2NhbGVFbGVtZW50cyIsIGJ1dCBvbmUgd2FudHMgdG8gdXNlCisgKiBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlICJOdW1iZXJQYXR0ZXJucyIgcmVzb3VyY2UgaW4gdGhlCisgKiBmcl9GUiBsb2NhbGUuICBPbmUgd2F5IHRvIGRvIHRoaXMgaXMgdG8gYWRkIHNwZWNpYWwgY2FzZSBjb2RlCisgKiB0byB0aGUgbG9va3VwIG9wZXJhdGlvbiB0byBjaGVjayBmb3IgZnJfRlIgYW5kIHRoZSBrZXkKKyAqICJOdW1iZXJQYXR0ZXJucyIsIGFuZCBpbiB0aGF0IGNhc2UsIGxvYWQgdXAgY3VzdG9tIGRhdGEuICBIb3dldmVyLAorICogdGhpcyBiZWNvbWVzIHVud2llbGR5IGFuZCBwbGFjZXMgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKyAqIGVmZmVjdGl2ZSByZXNvdXJjZSBoaWVyYXJjaHkgaW50byB0aGUgY29kZS4KKyAqCisgKiBUaGUgT3ZlcmxheUJ1bmRsZSBzb2x2ZXMgdGhpcyBwcm9ibGVtIGJ5IGxheWVyaW5nIGFub3RoZXIKKyAqIGhpZXJhcmNoeSwgZS5nLCAiY29tLmFjbWUucmVzb3VyY2VzLkxvY2FsZUVsZW1lbnRzIiwgb24gdG9wIG9mIGEKKyAqIGJhc2UgaGllcmFyY2h5LiAgV2hlbiBhIHJlc291cmNlIGlzIHJlcXVlc3RlZCwgaXQgaXMgZmlyc3Qgc291Z2h0CisgKiBpbiB0aGUgb3ZlcmxheSBoaWVyYXJjaHksIGFuZCBpZiBub3QgZm91bmQgdGhlcmUsIGl0IGlzIHNvdWdodCBpbgorICogdGhlIGJhc2UgaGllcmFyY2h5LiAgTXVsdGlwbGUgb3ZlcmxheXMgYXJlIHN1cHBvcnRlZCwgYnV0IGluCisgKiBwcmFjdGljZSBvbmUgaXMgdXN1YWxseSBzdWZmaWNpZW50LgorICogCisgKiBUaGUgT3ZlcmxheUJ1bmRsZSBhbHNvIGFkZHJlc3NlcyB0aGUgcHJvYmxlbSBvZiBjb3VudHJ5LW9yaWVudGVkCisgKiBkYXRhLiAgVG8gc3BlY2lmeSB0aGUgZGVmYXVsdCBkYXRhIGZvciBhIGxhbmd1YWdlLCBvbmUganVzdCBzZXRzCisgKiB0aGUgbGFuZ3VhZ2UgcmVzb3VyY2UgYnVuZGxlIGRhdGEuICBIb3dldmVyLCBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0CisgKiBkYXRhIGZvciBhIGNvdW50cnkgdXNpbmcgdGhlIHN0YW5kYXJkIFJlc291cmNlQnVuZGxlIG1lY2hhbmlzbSBpcworICogaW1wb3NzaWJsZS4gIFRoZSBPdmVybGF5QnVuZGxlIHJlY29nbml6ZXMgIndpbGRjYXJkIiBsb2NhbGVzIHdpdGgKKyAqIHRoZSBzcGVjaWFsIGxhbmd1YWdlIGNvZGUgInh4Ii4gIFdoZW4gbG9va2luZyB1cCBkYXRhIGZvciBhIGxvY2FsZQorICogd2l0aCBhIG5vbi1lbXB0eSBjb3VudHJ5LCBpZiBhbiBleGFjdCBsb2NhbGUgbWF0Y2ggY2Fubm90IGJlIGZvdW5kLAorICogdGhlIE92ZXJsYXlCdW5kbGUgbG9va3MgZm9yIGRhdGEgaW4gdGhlIGxvY2FsZSB4eF9ZWSwgd2hlcmUgWVkgaXMKKyAqIHRoZSBjb3VudHJ5IGJlaW5nIHNvdWdodC4gIFRoaXMgZWZmZWN0aXZlbHkgYWRkcyBhbm90aGVyIGVudHJ5IGluCisgKiB0aGUgZmFsbGJhY2sgc2VxdWVuY2UgZm9yIGEgbG9jYWxlIGFhX0JCOiBhYV9CQiwgeHhfQkIsIGFhLCByb290LgorICogV2lsZGNhcmQgbG9jYWxlcyBhcmUgbm90IGltcGxlbWVudGVkIGZvciB0aGUgYmFzZSBoaWVyYXJjaHksIG9ubHkKKyAqIGZvciBvdmVybGF5cy4KKyAqCisgKiBUaGUgT3ZlcmxheUJ1bmRsZSBpcyBpbXBsZW1lbnRlZCBhcyBhbiBhcnJheSBvZiBuIFJlc291cmNlQnVuZGxlCisgKiBiYXNlIG5hbWVzLiAgVGhlIGJhc2UgbmFtZXMgYXJlIHNlYXJjaGVkIGZyb20gMCB0byBuLTEuICBCYXNlIG5hbWUKKyAqIG4tMSBpcyBzcGVjaWFsOyBpdCBpcyB0aGUgYmFzZSBoaWVyYXJjaHkuICBUaGlzIHNob3VsZCBiZSBhCisgKiB3ZWxsLXBvcHVsYXRlZCBoaWVyYXJjaHkgd2l0aCBtb3N0IG9mIHRoZSBkZWZhdWx0IGRhdGEsIHR5cGljYWxseSwKKyAqIHRoZSBpY3Ugb3Igc3VuIGNvcmUgaGllcmFyY2hpZXMuICBUaGUgYmFzZSBoaWVyYXJjaHkgaXMKKyAqIHRyZWF0ZWQgZGlmZmVyZW50bHkgZnJvbSB0aGUgb3ZlcmxheXMgYWJvdmUgaXQuICBJdCBkb2VzIG5vdCBnZXQKKyAqIHdpbGRjYXJkIHJlc29sdXRpb24sIGFuZCB0aGUgZ2V0S2V5cygpIGZyYW1ld29yayBtZXRob2QgaXMKKyAqIGRlbGVnYXRlZCB0byB0aGUgYmFzZSBoaWVyYXJjaHkgYnVuZGxlLgorICoKKyAqIFVzYWdlOiBJbnN0YW50aWF0ZSBhbiBPdmVybGF5QnVuZGxlIGRpcmVjdGx5IChub3QgdmlhIGEgZmFjdG9yeQorICogbWV0aG9kIGFzIGluIFJlc291cmNlQnVuZGxlKS4gIEluc3RlYWQgb2Ygc3BlY2lmeWluZyBhIHNpbmdsZSBiYXNlCisgKiBuYW1lLCBwYXNzIGl0IGFuIGFycmF5IG9mIDIgb3IgbW9yZSBiYXNlIG5hbWVzLiAgQWZ0ZXIgdGhhdCwgdXNlIGl0CisgKiBleGFjdGx5IGFzIHlvdSB3b3VsZCB1c2UgUmVzb3VyY2VCdW5kbGUuCisgKgorICogQHNlZSBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBpbnRlcm5hbAorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVGhpcyBjbGFzcyBtYXkgYmUgcmVtb3ZlZCBvciBtb2RpZmllZC4KKyAqLworLy8gcHJlcGFyZSB0byBkZXByZWNhdGUgaW4gbmV4dCByZWxlYXNlCisvLy9DTE9WRVI6T0ZGCitwdWJsaWMgY2xhc3MgT3ZlcmxheUJ1bmRsZSBleHRlbmRzIFJlc291cmNlQnVuZGxlIHsKKworICAgIC8qKgorICAgICAqIFRoZSBhcnJheSBvZiBiYXNlIG5hbWVzLCB3aXRoIHRoZSBsZW5ndGgtMSBlbnRyeSBiZWluZyB0aGUgYmFzZQorICAgICAqIGhpZXJhcmNoeSwgdHlwaWNhbGx5ICJzdW4udGV4dC5yZXNvdXJjZXMuTG9jYWxlRWxlbWVudHMiLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gYmFzZU5hbWVzOworCisgICAgLyoqCisgICAgICogVGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlOworCisgICAgLyoqCisgICAgICogTG9hZGVkIGJ1bmRsZXMuICBUaGVzZSB3aWxsIGJlIG51bGwgdW50aWwgdGhleSBhcmUgbG9hZGVkIG9uCisgICAgICogZGVtYW5kLgorICAgICAqLworICAgIHByaXZhdGUgUmVzb3VyY2VCdW5kbGVbXSBidW5kbGVzOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIG92ZXJsYXkgYnVuZGxlIGdpdmVuIGEgc2VxdWVuY2Ugb2YgYmFzZSBuYW1lcyBhbmQKKyAgICAgKiBhIGxvY2FsZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBUaGlzIGNsYXNzIG1heSBiZSByZW1vdmVkIG9yIG1vZGlmaWVkLgorICAgICAqLworICAgIHB1YmxpYyBPdmVybGF5QnVuZGxlKFN0cmluZ1tdIGJhc2VOYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMuYmFzZU5hbWVzID0gYmFzZU5hbWVzOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgYnVuZGxlcyA9IG5ldyBSZXNvdXJjZUJ1bmRsZVtiYXNlTmFtZXMubGVuZ3RoXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZUJ1bmRsZSBmcmFtZXdvcmsgbWV0aG9kLiAgRGVsZWdhdGVzIHRvCisgICAgICogYnVuZGxlc1tpXS5nZXRPYmplY3QoKS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBUaGlzIGNsYXNzIG1heSBiZSByZW1vdmVkIG9yIG1vZGlmaWVkLgorICAgICAqLyAKKyAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlR2V0T2JqZWN0KFN0cmluZyBrZXkpIAorICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKworICAgICAgICBPYmplY3QgbyA9IG51bGw7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGJ1bmRsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxvYWQoaSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG8gPSBidW5kbGVzW2ldLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBidW5kbGVzLmxlbmd0aC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzb3VyY2VCdW5kbGUgZnJhbWV3b3JrIG1ldGhvZC4gIERlbGVnYXRlcyB0bworICAgICAqIGJ1bmRsZXNbYnVuZGxlcy5sZW5ndGgtMV0uZ2V0S2V5cygpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFRoaXMgY2xhc3MgbWF5IGJlIHJlbW92ZWQgb3IgbW9kaWZpZWQuCisgICAgICovCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEtleXMoKSB7CisgICAgICAgIC8vIFJldHVybiB0aGUgZW51bWVyYXRpb24gb2YgdGhlIGxhc3QgYnVuZGxlLCB3aGljaCBpcyB0aGUgYmFzZQorICAgICAgICAvLyBvZiBvdXIgaGllcmFyY2h5IHN0YWNrLgorICAgICAgICBpbnQgaSA9IGJ1bmRsZXMubGVuZ3RoIC0gMTsKKyAgICAgICAgbG9hZChpKTsKKyAgICAgICAgcmV0dXJuIGJ1bmRsZXNbaV0uZ2V0S2V5cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIExvYWQgdGhlIGktdGggYnVuZGxlIGFuZCBpbXBsZW1lbnQgd2lsZGNhcmQgcmVzb2x1dGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbG9hZChpbnQgaSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGJ1bmRsZXNbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgYm9vbGVhbiB0cnlXaWxkY2FyZCA9IGZhbHNlOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBidW5kbGVzW2ldID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKGJhc2VOYW1lc1tpXSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZiAoYnVuZGxlc1tpXS5nZXRMb2NhbGUoKS5lcXVhbHMobG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsb2NhbGUuZ2V0Q291bnRyeSgpLmxlbmd0aCgpICE9IDAgJiYgaSAhPSBidW5kbGVzLmxlbmd0aC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeVdpbGRjYXJkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChpID09IGJ1bmRsZXMubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5V2lsZGNhcmQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRyeVdpbGRjYXJkKSB7CisgICAgICAgICAgICAgICAgTG9jYWxlIHdpbGRjYXJkID0gbmV3IExvY2FsZSgieHgiLCBsb2NhbGUuZ2V0Q291bnRyeSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLmdldFZhcmlhbnQoKSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlc1tpXSA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZShiYXNlTmFtZXNbaV0sIHdpbGRjYXJkKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYnVuZGxlc1tpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VEYXRlUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VEYXRlUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5M2Y0MzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZURhdGVSdWxlLmphdmEKQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogSW1wbGVtZW50YXRpb24gb2YgRGF0ZVJ1bGUgdGhhdCB0YWtlcyBhIHJhbmdlLgorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgY2xhc3MgUmFuZ2VEYXRlUnVsZSBpbXBsZW1lbnRzIERhdGVSdWxlIHsKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSYW5nZURhdGVSdWxlKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIC8vIFJhbmdlIGlzIGEgcGFja2FnZS1wcml2YXRlIGNsYXNzIHNvIHRoaXMgc2hvdWxkIGJlIHBhY2thZ2UtcHJpdmF0ZSB0b28sIHByb2JhYmx5CisvLyAgICBwdWJsaWMgUmFuZ2VEYXRlUnVsZShSYW5nZVtdIHJhbmdlcykKKy8vICAgIHsKKy8vICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7IGkrKykgeworLy8gICAgICAgICAgICB0aGlzLnJhbmdlcy5hZGRFbGVtZW50KHJhbmdlc1tpXSk7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGQoRGF0ZVJ1bGUgcnVsZSkgeworICAgICAgICBhZGQobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpLCBydWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChEYXRlIHN0YXJ0LCBEYXRlUnVsZSBydWxlKSB7CisgICAgICAgIC8vIFRPRE86IEluc2VydCBpbiB0aGUgcmlnaHQgcGxhY2UKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJBZGQ6ICIgKyBzdGFydC50b1N0cmluZygpKTsKKyAgICAgICAgcmFuZ2VzLmFkZEVsZW1lbnQobmV3IFJhbmdlKHN0YXJ0LCBydWxlKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEFmdGVyKERhdGUgc3RhcnQpIHsKKyAgICAgICAgLy8gRmluZCB0aGUgcmFuZ2UgdGhhdCBJIHNob3VsZCBsb29rIGF0CisgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXgoc3RhcnQpOworICAgICAgICBpZiAoaW5kZXggPT0gcmFuZ2VzLnNpemUoKSkgeworICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICB9CisgICAgICAgIERhdGUgcmVzdWx0ID0gbnVsbDsKKworICAgICAgICBSYW5nZSByID0gcmFuZ2VBdChpbmRleCk7CisgICAgICAgIFJhbmdlIGUgPSByYW5nZUF0KGluZGV4KzEpOworCisgICAgICAgIGlmIChyICE9IG51bGwgJiYgci5ydWxlICE9IG51bGwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByLnJ1bGUuZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlLnN0YXJ0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gci5ydWxlLmZpcnN0QWZ0ZXIoc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpIHsKKyAgICAgICAgaWYgKGVuZCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmlyc3RBZnRlcihzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEZpbmQgdGhlIHJhbmdlIHRoYXQgSSBzaG91bGQgbG9vayBhdAorICAgICAgICBpbnQgaW5kZXggPSBzdGFydEluZGV4KHN0YXJ0KTsKKyAgICAgICAgRGF0ZSByZXN1bHQgPSBudWxsOworCisgICAgICAgIFJhbmdlIG5leHQgPSByYW5nZUF0KGluZGV4KTsKKworICAgICAgICB3aGlsZSAocmVzdWx0ID09IG51bGwgJiYgbmV4dCAhPSBudWxsICYmICFuZXh0LnN0YXJ0LmFmdGVyKGVuZCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJhbmdlIHIgPSBuZXh0OworICAgICAgICAgICAgbmV4dCA9IHJhbmdlQXQoaW5kZXgrMSk7CisKKyAgICAgICAgICAgIGlmIChyLnJ1bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIERhdGUgZSA9IChuZXh0ICE9IG51bGwgJiYgIW5leHQuc3RhcnQuYWZ0ZXIoZW5kKSkgPyBuZXh0LnN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGVuZDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByLnJ1bGUuZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpIHsKKyAgICAgICAgUmFuZ2UgciA9IHJhbmdlQXQoc3RhcnRJbmRleChkYXRlKSk7CisgICAgICAgIHJldHVybiByICE9IG51bGwgJiYgci5ydWxlICE9IG51bGwgJiYgci5ydWxlLmlzT24oZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciB0aGlzIGV2ZW50IG9jY3VycyBhdCBsZWFzdCBvbmNlIGJldHdlZW4gdGhlIHR3bworICAgICAqIGRhdGVzIGdpdmVuLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKSB7CisgICAgICAgIHJldHVybiBmaXJzdEJldHdlZW4oc3RhcnQsZW5kKSA9PSBudWxsOworICAgIH0KKworICAgIC8qCisgICAgICogZmluZCB0aGUgaW5kZXggb2YgdGhlIGxhc3QgcmFuZ2Ugd2hvc2Ugc3RhcnQgZGF0ZSBpcyBiZWZvcmUgInN0YXJ0IgorICAgICAqIHJldHVybnMgYW4gaW5kZXggPj0gcmFuZ2VzLnNpemUoKSBpZiB0aGVyZSBpcyBub25lCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc3RhcnRJbmRleChEYXRlIHN0YXJ0KSB7CisgICAgICAgIGludCBsYXN0SW5kZXggPSByYW5nZXMuc2l6ZSgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBSYW5nZSByID0gKFJhbmdlKSByYW5nZXMuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKHN0YXJ0LmJlZm9yZShyLnN0YXJ0KSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdEluZGV4ID0gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGFzdEluZGV4OworICAgIH0KKworICAgIHByaXZhdGUgUmFuZ2UgcmFuZ2VBdChpbnQgaW5kZXgpIHsKKyAgICAgICByZXR1cm4gKGluZGV4IDwgcmFuZ2VzLnNpemUoKSkgPyAoUmFuZ2UpIHJhbmdlcy5lbGVtZW50QXQoaW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKKyAgICB9CisKKyAgICBWZWN0b3IgcmFuZ2VzID0gbmV3IFZlY3RvcigyLDIpOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQcml2YXRlcworLy8KKworY2xhc3MgUmFuZ2UgeworICAgIHB1YmxpYyBSYW5nZShEYXRlIHN0YXJ0LCBEYXRlUnVsZSBydWxlKSB7CisgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGhpcy5ydWxlID0gcnVsZTsKKyAgICB9CisgICAgcHVibGljIERhdGUgICAgIHN0YXJ0OworICAgIHB1YmxpYyBEYXRlUnVsZSBydWxlOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1JhbmdlVmFsdWVJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI4NzQ0YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCisvKioKKyAqIDxwPkludGVyZmFjZSBmb3IgZW5hYmxpbmcgaXRlcmF0aW9uIG92ZXIgc2V0cyBvZiA8aW50IGluZGV4LCBpbnQgdmFsdWU+LCAKKyAqIHdoZXJlIGluZGV4IGlzIHRoZSBzb3J0ZWQgaW50ZWdlciBpbmRleCBpbiBhc2NlbmRpbmcgb3JkZXIgYW5kIHZhbHVlLCBpdHMgCisgKiBhc3NvY2lhdGVkIGludGVnZXIgdmFsdWUuPC9wPgorICogPHA+VGhlIHJlc3VsdCBmb3IgZWFjaCBpdGVyYXRpb24gaXMgdGhlIGNvbnNlY3V0aXZlIHJhbmdlIG9mIAorICogPGludCBpbmRleCwgaW50IHZhbHVlPiB3aXRoIHRoZSBzYW1lIHZhbHVlLiBSZXN1bHQgaXMgcmVwcmVzZW50ZWQgYnkgCisgKiA8c3RhcnQsIGxpbWl0LCB2YWx1ZT4gd2hlcmU8L3A+CisgKiA8dWw+CisgKiA8bGk+IHN0YXJ0IGlzIHRoZSBzdGFydGluZyBpbnRlZ2VyIG9mIHRoZSByZXN1bHQgcmFuZ2UKKyAqIDxsaT4gbGltaXQgaXMgMSBhZnRlciB0aGUgbWF4aW11bSBpbnRlZ2VyIHRoYXQgZm9sbG93cyBzdGFydCwgc3VjaCB0aGF0CisgKiAgICAgIGFsbCBpbnRlZ2VycyBiZXR3ZWVuIHN0YXJ0IGFuZCAobGltaXQgLSAxKSwgaW5jbHVzaXZlLCBoYXZlIHRoZSBzYW1lIAorICogICAgICBhc3NvY2lhdGVkIGludGVnZXIgdmFsdWUuCisgKiA8bGk+IHZhbHVlIGlzIHRoZSBpbnRlZ2VyIHZhbHVlIHRoYXQgYWxsIGludGVnZXJzIGZyb20gc3RhcnQgdG8gKGxpbWl0IC0gMSkgCisgKiAgICAgIHNoYXJlIGluIGNvbW1vbi4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIEhlbmNlIHZhbHVlKHN0YXJ0KSA9IHZhbHVlKHN0YXJ0ICsgMSkgPSAuLi4uID0gdmFsdWUoc3RhcnQgKyBuKSA9IC4uLi4gPQorICogdmFsdWUobGltaXQgLSAxKS4gSG93ZXZlciB2YWx1ZShzdGFydCAtMSkgIT0gdmFsdWUoc3RhcnQpIGFuZCAKKyAqIHZhbHVlKGxpbWl0KSAhPSB2YWx1ZShzdGFydCkuCisgKiA8L3A+CisgKiA8cD5Nb3N0IGltcGxlbWVudGF0aW9ucyB3aWxsIGJlIGNyZWF0ZWQgYnkgZmFjdG9yeSBtZXRob2RzLCBzdWNoIGFzIHRoZQorICogY2hhcmFjdGVyIHR5cGUgaXRlcmF0b3IgaW4gVUNoYXJhY3Rlci5nZXRUeXBlSXRlcmF0b3IuIFNlZSBleGFtcGxlIGJlbG93LgorICogPC9wPgorICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICogPHByZT4KKyAqIFJhbmdlVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0VHlwZUl0ZXJhdG9yKCk7CisgKiBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAqIHdoaWxlIChpdGVyYXRvci5uZXh0KHJlc3VsdCkpIHsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGNvZGVwb2ludCBcXHUiICsKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQubGltaXQgLSAxKSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgY2hhcmFjdGVyIHR5cGUgIiArIHJlc3VsdC52YWx1ZSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLworcHVibGljIGludGVyZmFjZSBSYW5nZVZhbHVlSXRlcmF0b3IKK3sKKyAgICAvLyBwdWJsaWMgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm4gcmVzdWx0IHdyYXBwZXIgZm9yIGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yLgorICAgICogU3RvcmVzIHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIGNvbnRpbm91cyByZXN1bHQgcmFuZ2UgYW5kIHRoZQorICAgICogY29tbW9uIHZhbHVlIGFsbCBpbnRlZ2VycyBiZXR3ZWVuIFtzdGFydCwgbGltaXQgLSAxXSBoYXMuCisgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAqLworICAgIHB1YmxpYyBjbGFzcyBFbGVtZW50CisgICAgeworICAgICAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBTdGFydGluZyBpbnRlZ2VyIG9mIHRoZSBjb250aW51b3VzIHJlc3VsdCByYW5nZSB0aGF0IGhhcyB0aGUgc2FtZSAKKyAgICAgICAgKiB2YWx1ZQorICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHN0YXJ0OworICAgICAgICAvKioKKyAgICAgICAgKiAoRW5kICsgMSkgaW50ZWdlciBvZiBjb250aW51b3VzIHJlc3VsdCByYW5nZSB0aGF0IGhhcyB0aGUgc2FtZSAKKyAgICAgICAgKiB2YWx1ZQorICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGxpbWl0OworICAgICAgICAvKioKKyAgICAgICAgKiBHZXRzIHRoZSBjb21tb24gdmFsdWUgb2YgdGhlIGNvbnRpbm91cyByZXN1bHQgcmFuZ2UKKyAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBpbnQgdmFsdWU7CisgICAgICAgIAorICAgICAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbXB0eSBkZWZhdWx0IGNvbnN0cnVjdG9yIHRvIG1ha2UgamF2YWRvYyBoYXBweQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBFbGVtZW50KCkgCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IG1heGltYWwgcmVzdWx0IHJhbmdlIHdpdGggYSBjb21tb24gdmFsdWUgYW5kIHJldHVybnMgCisgICAgKiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuPC9wPgorICAgICogPHA+SWYgdGhlIHJldHVybiBib29sZWFuIGlzIGEgZmFsc2UsIHRoZSBjb250ZW50cyBvZiBlbGVtZW50cyB3aWxsIG5vdAorICAgICogYmUgdXBkYXRlZC48L3A+CisgICAgKiBAcGFyYW0gZWxlbWVudCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHJhbmdlIGFuZCB2YWx1ZQorICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKiBAc2VlIEVsZW1lbnQKKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dChFbGVtZW50IGVsZW1lbnQpOworICAgIAorICAgIC8qKgorICAgICogUmVzZXRzIHRoZSBpdGVyYXRvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpdGVyYXRpb24uCisgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TVFpJbmZvLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TVFpJbmZvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM1MzQwZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NUWkluZm8uamF2YQpAQCAtMCwwICsxLDg4IEBACisvKgorICogICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworLyoqCisgKiBAaW50ZXJuYWwKKyAqLworZmluYWwgY2xhc3MgU1RaSW5mbyBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTc4NDk2MTIwMzc4NDIzNzAxNjhMOworCisgICAgdm9pZCBzZXRTdGFydChpbnQgc20sIGludCBzZHdtLCBpbnQgc2R3LCBpbnQgc3QsIGludCBzZG0sIGJvb2xlYW4gc2EpIHsKKyAgICAgICAgdGhpcy5zbSA9IHNtOworICAgICAgICB0aGlzLnNkd20gPSBzZHdtOworICAgICAgICB0aGlzLnNkdyA9IHNkdzsKKyAgICAgICAgdGhpcy5zdCA9IHN0OworICAgICAgICB0aGlzLnNkbSA9IHNkbTsKKyAgICAgICAgdGhpcy5zYSA9IHNhOworICAgIH0KKworICAgIHZvaWQgc2V0RW5kKGludCBlbSwgaW50IGVkd20sIGludCBlZHcsIGludCBldCwgaW50IGVkbSwgYm9vbGVhbiBlYSkgeworICAgICAgICB0aGlzLmVtID0gZW07CisgICAgICAgIHRoaXMuZWR3bSA9IGVkd207CisgICAgICAgIHRoaXMuZWR3ID0gZWR3OworICAgICAgICB0aGlzLmV0ID0gZXQ7CisgICAgICAgIHRoaXMuZWRtID0gZWRtOworICAgICAgICB0aGlzLmVhID0gZWE7CisgICAgfQorCisgICAgLyp2b2lkIGFwcGx5VG8oamF2YS51dGlsLlNpbXBsZVRpbWVab25lIHN0eikgeworICAgICAgICBpZiAoc3kgIT0gLTEpIHsKKyAgICAgICAgICAgIHN0ei5zZXRTdGFydFllYXIoc3kpOworICAgICAgICB9CisgICAgICAgIGlmIChzbSAhPSAtMSkgeworICAgICAgICAgICAgaWYgKHNkbSA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRTdGFydFJ1bGUoc20sIHNkd20sIHNkdywgc3QpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzZHcgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0U3RhcnRSdWxlKHNtLCBzZG0sIHN0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3R6LnNldFN0YXJ0UnVsZShzbSwgc2RtLCBzZHcsIHN0LCBzYSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVtICE9IC0xKSB7CisgICAgICAgICAgICBpZiAoZWRtID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldEVuZFJ1bGUoZW0sIGVkd20sIGVkdywgZXQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlZHcgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RW5kUnVsZShlbSwgZWRtLCBldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0ei5zZXRFbmRSdWxlKGVtLCBlZG0sIGVkdywgZXQsIGVhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0qLworICAgIAorICAgIHZvaWQgYXBwbHlUbyhjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lIHN0eikgeworICAgICAgICBpZiAoc3kgIT0gLTEpIHsKKyAgICAgICAgICAgIHN0ei5zZXRTdGFydFllYXIoc3kpOworICAgICAgICB9CisgICAgICAgIGlmIChzbSAhPSAtMSkgeworICAgICAgICAgICAgaWYgKHNkbSA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRTdGFydFJ1bGUoc20sIHNkd20sIHNkdywgc3QpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzZHcgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0U3RhcnRSdWxlKHNtLCBzZG0sIHN0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3R6LnNldFN0YXJ0UnVsZShzbSwgc2RtLCBzZHcsIHN0LCBzYSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVtICE9IC0xKSB7CisgICAgICAgICAgICBpZiAoZWRtID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldEVuZFJ1bGUoZW0sIGVkd20sIGVkdywgZXQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlZHcgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RW5kUnVsZShlbSwgZWRtLCBldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0ei5zZXRFbmRSdWxlKGVtLCBlZG0sIGVkdywgZXQsIGVhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpbnQgc3kgPSAtMTsKKyAgICBpbnQgc20gPSAtMSwgc2R3bSwgc2R3LCBzdCwgc2RtOworICAgIGJvb2xlYW4gc2E7CisgICAgaW50IGVtID0gLTEsIGVkd20sIGVkdywgZXQsIGVkbTsKKyAgICBib29sZWFuIGVhOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVEYXRlUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlRGF0ZVJ1bGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMWE3YzMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlRGF0ZVJ1bGUuamF2YQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogU2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIERhdGVSdWxlLgorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgY2xhc3MgU2ltcGxlRGF0ZVJ1bGUgaW1wbGVtZW50cyBEYXRlUnVsZQoreworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJ1bGUgZm9yIGEgZml4ZWQgZGF0ZSB3aXRoaW4gYSBtb250aAorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgpCisgICAgeworICAgICAgICB0aGlzLm1vbnRoICAgICAgPSBtb250aDsKKyAgICAgICAgdGhpcy5kYXlPZk1vbnRoID0gZGF5T2ZNb250aDsKKyAgICAgICAgdGhpcy5kYXlPZldlZWsgID0gMDsKKyAgICB9CisKKyAgICAvLyB0ZW1wb3JhcnkKKyAgICAvKiBwYWNrYWdlICovU2ltcGxlRGF0ZVJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgdGhpcy5tb250aCAgICAgID0gbW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZNb250aCA9IGRheU9mTW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZXZWVrICA9IDA7CisgICAgICAgIHRoaXMuY2FsZW5kYXIgICA9IGNhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBydWxlIGZvciBhIHdlZWtkYXkgd2l0aGluIGEgbW9udGgsIGUuZy4gdGhlIGZpcnN0IE1vbmRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzICgwLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBBIGRhdGUgd2l0aGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggdGhpcyBydWxlIG9jY3Vycy4KKyAgICAgKiBAcGFyYW0gYWZ0ZXIgICAgICAgICBJZiB0cnVlLCB0aGlzIHJ1bGUgc2VsZWN0cyB0aGUgZmlyc3QgZGF5T2ZXZWVrCisgICAgICogICAgICAgICAgICAgICAgICAgICAgb24gb3IgYWZ0ZXIgZGF5T2ZNb250aC4gIElmIGZhbHNlLCB0aGUgcnVsZSBzZWxlY3RzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGhlIGZpcnN0IGRheU9mV2VlayBvbiBvciBiZWZvcmUgZGF5T2ZNb250aC4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBib29sZWFuIGFmdGVyKQorICAgIHsKKyAgICAgICAgdGhpcy5tb250aCAgICAgID0gbW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZNb250aCA9IGRheU9mTW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZXZWVrICA9IGFmdGVyID8gZGF5T2ZXZWVrIDogLWRheU9mV2VlazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhlIGV2ZW50IHJlcHJlc2VudGVkIGJ5IHRoaXMgcnVsZQorICAgICAqIHRoYXQgaXMgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIG9uIG9yIGFmdGVyIHRoZSBzdGFydCBkYXRlLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RCZXR3ZWVuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEFmdGVyKERhdGUgc3RhcnQpCisgICAgeworICAgICAgICByZXR1cm4gZG9GaXJzdEJldHdlZW4oc3RhcnQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZXZlbnQgcmVwcmVzZW50ZWQgYnkgdGhpcyBydWxlCisgICAgICogdGhhdCBpcyBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZSBhbmQgYmVmb3JlIHRoZSBnaXZlbgorICAgICAqIGVuZCBkYXRlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IE9ubHkgb2NjdXJyYW5jZXMgb24gb3IgYWZ0ZXIgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gZW5kICAgT25seSBvY2N1cnJhbmNlcyBiZWZvcmUgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgZGF0ZSBvbiB3aGljaCB0aGlzIGV2ZW50IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIGRhdGVzLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RBZnRlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGUgZmlyc3RCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKQorICAgIHsKKyAgICAgICAgLy8gUGluIHRvIHRoZSBtaW4vbWF4IGRhdGVzIGZvciB0aGlzIHJ1bGUKKyAgICAgICAgcmV0dXJuIGRvRmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLiAgVGhpcyBkb2VzCisgICAgICogPGVtPm5vdDwvZW0+IHRha2UgdGltZSBvZiBkYXkgaW50byBhY2NvdW50OyBpbnN0ZWFkIGl0IGNoZWNrcworICAgICAqIHdoZXRoZXIgdGhpcyBldmVudCBhbmQgdGhlIGdpdmVuIGRhdGUgYXJlIG9uIHRoZSBzYW1lIGRheS4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHN1Y2ggYXMgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuCisgICAgICogZGF5IGlzIGEgaG9saWRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICBUaGUgZGF0ZSB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuICAgICAgdHJ1ZSBpZiB0aGlzIGV2ZW50IG9jY3VycyBvbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzT24oRGF0ZSBkYXRlKQorICAgIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IGNhbGVuZGFyOworCisgICAgICAgIHN5bmNocm9uaXplZChjKSB7CisgICAgICAgICAgICBjLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgICAgIGludCBkYXlPZlllYXIgPSBjLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUik7CisKKyAgICAgICAgICAgIGMuc2V0VGltZShjb21wdXRlSW5ZZWFyKGMuZ2V0KENhbGVuZGFyLllFQVIpLCBjKSk7CisKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgaXNPbjogZGF5T2ZZZWFyID0gIiArIGRheU9mWWVhcik7CisvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgICAgIGhvbGlkYXkgICA9ICIgKyBjLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworCisgICAgICAgICAgICByZXR1cm4gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpID09IGRheU9mWWVhcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgYXQgbGVhc3Qgb25jZSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgKiBkYXRlcyBnaXZlbi4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaXJzdEJldHdlZW4oc3RhcnQsIGVuZCkgIT0gbnVsbDsgLy8gVE9ETzogb3B0aW1pemU/CisgICAgfQorCisgICAgcHJpdmF0ZSBEYXRlIGRvRmlyc3RCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKQorICAgIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IGNhbGVuZGFyOworCisgICAgICAgIHN5bmNocm9uaXplZChjKSB7CisgICAgICAgICAgICBjLnNldFRpbWUoc3RhcnQpOworCisgICAgICAgICAgICBpbnQgeWVhciA9IGMuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IG1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuTU9OVEgpOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZSBpcyBlYXJsaWVyIGluIHRoZSB5ZWFyIHRoYW4gdGhlIHN0YXJ0IGRhdGUKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gZ28gdG8gdGhlIG5leHQgeWVhci4KKyAgICAgICAgICAgIGlmIChtb250aCA+IHRoaXMubW9udGgpIHsKKyAgICAgICAgICAgICAgICB5ZWFyKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hlbiB0aGUgcnVsZSBsYW5kcyBpbiB0aGUgZ2l2ZW4geWVhcgorICAgICAgICAgICAgRGF0ZSByZXN1bHQgPSBjb21wdXRlSW5ZZWFyKHllYXIsIGMpOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZSBpcyBpbiB0aGUgc2FtZSBtb250aCBhcyB0aGUgc3RhcnQgZGF0ZSwgaXQncyBwb3NzaWJsZQorICAgICAgICAgICAgLy8gdG8gZ2V0IGEgcmVzdWx0IHRoYXQncyBiZWZvcmUgdGhlIHN0YXJ0LiAgSWYgc28sIGdvIHRvIG5leHQgeWVhci4KKyAgICAgICAgICAgIGlmIChtb250aCA9PSB0aGlzLm1vbnRoICYmIHJlc3VsdC5iZWZvcmUoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUluWWVhcih5ZWFyKzEsIGMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZW5kICE9IG51bGwgJiYgcmVzdWx0LmFmdGVyKGVuZCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIERhdGUgY29tcHV0ZUluWWVhcihpbnQgeWVhciwgQ2FsZW5kYXIgYykKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChjKSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5FUkEsIGMuZ2V0TWF4aW11bShDYWxlbmRhci5FUkEpKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBVEUsIGRheU9mTW9udGgpOworCisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICBjb21wdXRlSW5ZZWFyOiBzdGFydCBhdCAiICsgYy5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgIT0gMCkgeworICAgICAgICAgICAgICAgIGMuc2V0VGltZShjLmdldFRpbWUoKSk7ICAgICAgICAvLyBKREsgMS4xLjIgd29ya2Fyb3VuZAorICAgICAgICAgICAgICAgIGludCB3ZWVrZGF5ID0gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICAgICAgd2Vla2RheSA9ICIgKyB3ZWVrZGF5KTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgICAgICBkYXlPZlllYXIgPSAiICsgYy5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpKTsKKworICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IDA7CisgICAgICAgICAgICAgICAgaWYgKGRheU9mV2VlayA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZ2l2ZW4gZGF5IG9mIHRoZSB3ZWVrCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIG9yIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGF0ZSBpbiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgICAgIGRlbHRhID0gKGRheU9mV2VlayAtIHdlZWtkYXkgKyA3KSAlIDc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSAoLWRheU9mV2VlaykKKyAgICAgICAgICAgICAgICAgICAgLy8gb24gb3IgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZGF0ZSBpbiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgICAgIGRlbHRhID0gLSgoZGF5T2ZXZWVrICsgd2Vla2RheSArIDcpICUgNyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIgICAgICAgICAgICAgICAgICAgIGFkZGluZyAiICsgZGVsdGEgKyAiIGRheXMiKTsKKyAgICAgICAgICAgICAgICBjLmFkZChDYWxlbmRhci5EQVRFLCBkZWx0YSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBjLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisvLyAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhcihDYWxlbmRhciBjKSB7CisvLyAgICAgICAgY2FsZW5kYXIgPSBjOworLy8gICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgZ0NhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisKKyAgICBwcml2YXRlIENhbGVuZGFyIGNhbGVuZGFyID0gZ0NhbGVuZGFyOworCisgICAgcHJpdmF0ZSBpbnQgICAgIG1vbnRoOworICAgIHByaXZhdGUgaW50ICAgICBkYXlPZk1vbnRoOworICAgIHByaXZhdGUgaW50ICAgICBkYXlPZldlZWs7Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlSG9saWRheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlSG9saWRheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0MTc2YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVIb2xpZGF5LmphdmEKQEAgLTAsMCArMSwyNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKKworLyoqCisgKiBBIGhvbGlkYXkgd2hvc2UgZGF0ZSBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYSBtb250aCwgZGF5LCBhbmQgb3B0aW9uYWxseSBkYXkgb2Ygd2VlaworICogaW4gdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAqCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBTaW1wbGVIb2xpZGF5IGV4dGVuZHMgSG9saWRheSB7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIG9iamVjdCByZXByZXNlbnRpbmcgYSBob2xpZGF5CisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3VycyAoMC1iYXNlZCkKKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBUaGUgZGF0ZSB3aXRoaW4gdGhlIG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lICBUaGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkuICBUaGlzIHN0cmluZyBpcyB1c2VkIGFzIGEga2V5CisgICAgICogICAgICAgICAgICAgIHRvIGxvb2sgdXAgdGhlIGhvbGlkYXkncyBuYW1lIGEgcmVzb3VyY2UgYnVuZGxlLgorICAgICAqICAgICAgICAgICAgICBJZiB0aGUgbmFtZSBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwKKyAgICAgKiAgICAgICAgICAgICAgZ2V0RGlzcGxheU5hbWUgd2lsbCByZXR1cm4gdGhpcyBzdHJpbmcgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBzZWUgSG9saWRheSNnZXREaXNwbGF5TmFtZShqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzICgwLWJhc2VkKQorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIHdpdGhpbiB0aGUgbW9udGggKDEtYmFzZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBIb2xpZGF5I2dldERpc3BsYXlOYW1lKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRZZWFyKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgcmFuZ2VSdWxlKHN0YXJ0WWVhciwgMCwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBvYmplY3QgcmVwcmVzZW50aW5nIGEgaG9saWRheQorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgaG9saWRheSBvY2N1cnMgKDAtYmFzZWQpCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgd2l0aGluIHRoZSBtb250aCAoMS1iYXNlZCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSAgVGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5LiAgVGhpcyBzdHJpbmcgaXMgdXNlZCBhcyBhIGtleQorICAgICAqICAgICAgICAgICAgICB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbmFtZSBhIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiAgICAgICAgICAgICAgSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kIGluIHRoZSByZXNvdXJjZSBidW5kbGUsCisgICAgICogICAgICAgICAgICAgIGdldERpc3BsYXlOYW1lIHdpbGwgcmV0dXJuIHRoaXMgc3RyaW5nIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAc2VlIEhvbGlkYXkjZ2V0RGlzcGxheU5hbWUoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVIb2xpZGF5KGludCBtb250aCwgaW50IGRheU9mTW9udGgsIFN0cmluZyBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFllYXIsIGludCBlbmRZZWFyKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgcmFuZ2VSdWxlKHN0YXJ0WWVhciwgZW5kWWVhciwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoKSkpOworICAgIH0KKworICAgIC8qKiAvLyBUT0RPOiByZW1vdmUKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3VycyAoMC1iYXNlZCkKKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoIEEgZGF0ZSB3aXRoaW4gdGhlIG1vbnRoICgxLWJhc2VkKS4gIFRoZQorICAgICAqICAgICAgaW50ZXJwcmV0YXRpb24gb2YgdGhpcyBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YKKyAgICAgKiAgICAgIDxjb2RlPmRheU9mV2VlazwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3Vycy4KKyAgICAgKiAgICAgIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBsZWdhbDogPHVsPgorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA9PSAwIC0gdXNlIGRheU9mTW9udGggb25seQorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA8IDAgIC0gdXNlIGxhc3QgLWRheU9mV2VlayBiZWZvcmUgb3Igb24gZGF5T2ZNb250aAorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA+IDAgIC0gdXNlIGZpcnN0IGRheU9mV2VlayBhZnRlciBvciBvbiBkYXlPZk1vbnRoCisgICAgICogICAgICA8L3VsPgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBIb2xpZGF5I2dldERpc3BsYXlOYW1lKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwID8gZGF5T2ZXZWVrIDogLSBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRZZWFyKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgcmFuZ2VSdWxlKHN0YXJ0WWVhciwgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCA/IGRheU9mV2VlayA6IC0gZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU9mV2VlayA+IDApKSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVIb2xpZGF5KGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssIFN0cmluZyBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0WWVhciwgaW50IGVuZFllYXIpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCByYW5nZVJ1bGUoc3RhcnRZZWFyLCBlbmRZZWFyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwID8gZGF5T2ZXZWVrIDogLSBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCkpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBEYXRlUnVsZSByYW5nZVJ1bGUoaW50IHN0YXJ0WWVhciwgaW50IGVuZFllYXIsIERhdGVSdWxlIHJ1bGUpCisgICAgeworICAgICAgICBpZiAoc3RhcnRZZWFyID09IDAgJiYgZW5kWWVhciA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcnVsZTsKKyAgICAgICAgfQorCisgICAgICAgIFJhbmdlRGF0ZVJ1bGUgcmFuZ2VSdWxlID0gbmV3IFJhbmdlRGF0ZVJ1bGUoKTsKKworICAgICAgICBpZiAoc3RhcnRZZWFyICE9IDApIHsKKyAgICAgICAgICAgIENhbGVuZGFyIHN0YXJ0ID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHN0YXJ0WWVhciwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgICAgICByYW5nZVJ1bGUuYWRkKHN0YXJ0LmdldFRpbWUoKSwgcnVsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByYW5nZVJ1bGUuYWRkKHJ1bGUpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmRZZWFyICE9IDApIHsKKyAgICAgICAgICAgIERhdGUgZW5kID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKGVuZFllYXIsIENhbGVuZGFyLkRFQ0VNQkVSLCAzMSkuZ2V0VGltZSgpOworICAgICAgICAgICAgcmFuZ2VSdWxlLmFkZChlbmQsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJhbmdlUnVsZTsKKyAgICB9CisKKyAgICAvKiBDb25zdGFudHMgZm9yIGhvbGlkYXlzIHRoYXQgYXJlIGNvbW1vbiB0aHJvdWdob3V0IHRoZSBXZXN0ZXJuCisgICAgICogYW5kIENocmlzdGlhbiB3b3JsZHMuLi4uICovCisKKyAgICAvKioKKyAgICAgKiBOZXcgWWVhcidzIERheSAtIEphbnVhcnkgMXN0CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgTkVXX1lFQVJTX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpBTlVBUlksICAgIDEsICAiTmV3IFllYXIncyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIEVwaXBoYW55LCBKYW51YXJ5IDZ0aAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IEVQSVBIQU5ZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAgNiwgICJFcGlwaGFueSIpOworCisgICAgLyoqCisgICAgICogTWF5IERheSwgTWF5IDFzdAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IE1BWV9EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAxLCAgIk1heSBEYXkiKTsKKworICAgIC8qKgorICAgICAqIEFzc3VtcHRpb24sIEF1Z3VzdCAxNXRoCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgQVNTVU1QVElPTiA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgICAgMTUsICAiQXNzdW1wdGlvbiIpOworCisgICAgLyoqCisgICAgICogQWxsIFNhaW50cycgRGF5LCBOb3ZlbWJlciAxc3QKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBBTExfU0FJTlRTX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDEsICAiQWxsIFNhaW50cycgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBBbGwgU291bHMnIERheSwgTm92ZW1iZXIgMXN0CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgQUxMX1NPVUxTX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDIsICAiQWxsIFNvdWxzJyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIEltbWFjdWxhdGUgQ29uY2VwdGlvbiwgRGVjZW1iZXIgOHRoCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgSU1NQUNVTEFURV9DT05DRVBUSU9OID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAgOCwgICJJbW1hY3VsYXRlIENvbmNlcHRpb24iKTsKKworICAgIC8qKgorICAgICAqIENocmlzdG1hcyBFdmUsIERlY2VtYmVyIDI0dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBDSFJJU1RNQVNfRVZFID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAyNCwgICJDaHJpc3RtYXMgRXZlIik7CisKKyAgICAvKioKKyAgICAgKiBDaHJpc3RtYXMsIERlY2VtYmVyIDI1dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBDSFJJU1RNQVMgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI1LCAgIkNocmlzdG1hcyIpOworCisgICAgLyoqCisgICAgICogQm94aW5nIERheSwgRGVjZW1iZXIgMjZ0aAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IEJPWElOR19EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI2LCAgIkJveGluZyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIFNhaW50IFN0ZXBoZW4ncyBEYXksIERlY2VtYmVyIDI2dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBTVF9TVEVQSEVOU19EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI2LCAgIlN0LiBTdGVwaGVuJ3MgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBOZXcgWWVhcidzIEV2ZSwgRGVjZW1iZXIgMzFzdAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IE5FV19ZRUFSU19FVkUgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDMxLCAgIk5ldyBZZWFyJ3MgRXZlIik7CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVUaW1lWm9uZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1OTJhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVUaW1lWm9uZS5qYXZhCkBAIC0wLDAgKzEsMTE1MiBAQAorIC8qCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuR3JlZ287CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogPGNvZGU+U2ltcGxlVGltZVpvbmU8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YgPGNvZGU+VGltZVpvbmU8L2NvZGU+CisgKiB0aGF0IHJlcHJlc2VudHMgYSB0aW1lIHpvbmUgZm9yIHVzZSB3aXRoIGEgR3JlZ29yaWFuIGNhbGVuZGFyLiBUaGlzCisgKiBjbGFzcyBkb2VzIG5vdCBoYW5kbGUgaGlzdG9yaWNhbCBjaGFuZ2VzLgorICoKKyAqIDxQPgorICogVXNlIGEgbmVnYXRpdmUgdmFsdWUgZm9yIDxjb2RlPmRheU9mV2Vla0luTW9udGg8L2NvZGU+IHRvIGluZGljYXRlIHRoYXQKKyAqIDxjb2RlPlNpbXBsZVRpbWVab25lPC9jb2RlPiBzaG91bGQgY291bnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBtb250aCBiYWNrd2FyZHMuCisgKiBGb3IgZXhhbXBsZSwgRGF5bGlnaHQgU2F2aW5ncyBUaW1lIGVuZHMgYXQgdGhlIGxhc3QKKyAqIChkYXlPZldlZWtJbk1vbnRoID0gLTEpIFN1bmRheSBpbiBPY3RvYmVyLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgKgorICogQHNlZSAgICAgIENhbGVuZGFyCisgKiBAc2VlICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICBUaW1lWm9uZQorICogQGF1dGhvciAgIERhdmlkIEdvbGRzbWl0aCwgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBTaW1wbGVUaW1lWm9uZSBleHRlbmRzIEpES1RpbWVab25lIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNzAzNDY3NjIzOTMxMTMyMjc2OUw7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgU2ltcGxlVGltZVpvbmUgd2l0aCB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IGZyb20gR01UCisgICAgICogYW5kIHRpbWUgem9uZSBJRC4gVGltZXpvbmUgSURzIGNhbiBiZSBvYnRhaW5lZCBmcm9tCisgICAgICogVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzLiBOb3JtYWxseSB5b3Ugc2hvdWxkIHVzZSBUaW1lWm9uZS5nZXREZWZhdWx0IHRvCisgICAgICogY29uc3RydWN0IGEgVGltZVpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmF3T2Zmc2V0ICBUaGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAcGFyYW0gSUQgICAgICAgICBUaGUgdGltZSB6b25lIElEIHdoaWNoIGlzIG9idGFpbmVkIGZyb20KKyAgICAgKiAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXQsIFN0cmluZyBJRCkgeworICAgICAgICAvL3RoaXMobmV3IGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZShyYXdPZmZzZXQsIElEKSwgSUQpOworICAgICAgICAvL3N1cGVyKElEKTsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgTUlMTElTX1BFUl9IT1VSKTsKKyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZVRpbWVab25lIHdpdGggdGhlIGdpdmVuIGJhc2UgdGltZSB6b25lIG9mZnNldCBmcm9tCisgICAgICogR01ULCB0aW1lIHpvbmUgSUQsIHRpbWUgdG8gc3RhcnQgYW5kIGVuZCB0aGUgZGF5bGlnaHQgdGltZS4gVGltZXpvbmUgSURzCisgICAgICogY2FuIGJlIG9idGFpbmVkIGZyb20gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzLiBOb3JtYWxseSB5b3Ugc2hvdWxkIHVzZQorICAgICAqIFRpbWVab25lLmdldERlZmF1bHQgdG8gY3JlYXRlIGEgVGltZVpvbmUuIEZvciBhIHRpbWUgem9uZSB0aGF0IGRvZXMgbm90CisgICAgICogdXNlIGRheWxpZ2h0IHNhdmluZyB0aW1lLCBkbyBub3QgdXNlIHRoaXMgY29uc3RydWN0b3I7IGluc3RlYWQgeW91IHNob3VsZAorICAgICAqIHVzZSBTaW1wbGVUaW1lWm9uZShyYXdPZmZzZXQsIElEKS4KKyAgICAgKgorICAgICAqIEJ5IGRlZmF1bHQsIHRoaXMgY29uc3RydWN0b3Igc3BlY2lmaWVzIGRheS1vZi13ZWVrLWluLW1vbnRoIHJ1bGVzLiBUaGF0CisgICAgICogaXMsIGlmIHRoZSBzdGFydERheSBpcyAxLCBhbmQgdGhlIHN0YXJ0RGF5T2ZXZWVrIGlzIFNVTkRBWSwgdGhlbiB0aGlzCisgICAgICogaW5kaWNhdGVzIHRoZSBmaXJzdCBTdW5kYXkgaW4gdGhlIHN0YXJ0TW9udGguIEEgc3RhcnREYXkgb2YgLTEgbGlrZXdpc2UKKyAgICAgKiBpbmRpY2F0ZXMgdGhlIGxhc3QgU3VuZGF5LiBIb3dldmVyLCBieSB1c2luZyBuZWdhdGl2ZSBvciB6ZXJvIHZhbHVlcyBmb3IKKyAgICAgKiBjZXJ0YWluIHBhcmFtZXRlcnMsIG90aGVyIHR5cGVzIG9mIHJ1bGVzIGNhbiBiZSBzcGVjaWZpZWQuCisgICAgICoKKyAgICAgKiBEYXkgb2YgbW9udGguIFRvIHNwZWNpZnkgYW4gZXhhY3QgZGF5IG9mIHRoZSBtb250aCwgc3VjaCBhcyBNYXJjaCAxLCBzZXQKKyAgICAgKiBzdGFydERheU9mV2VlayB0byB6ZXJvLgorICAgICAqCisgICAgICogRGF5IG9mIHdlZWsgYWZ0ZXIgZGF5IG9mIG1vbnRoLiBUbyBzcGVjaWZ5IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgKiBvY2N1cnJpbmcgb24gb3IgYWZ0ZXIgYW4gZXhhY3QgZGF5IG9mIHRoZSBtb250aCwgbWFrZSB0aGUgZGF5IG9mIHRoZSB3ZWVrCisgICAgICogbmVnYXRpdmUuIEZvciBleGFtcGxlLCBpZiBzdGFydERheSBpcyA1IGFuZCBzdGFydERheU9mV2VlayBpcyAtTU9OREFZLAorICAgICAqIHRoaXMgaW5kaWNhdGVzIHRoZSBmaXJzdCBNb25kYXkgb24gb3IgYWZ0ZXIgdGhlIDV0aCBkYXkgb2YgdGhlCisgICAgICogc3RhcnRNb250aC4KKyAgICAgKgorICAgICAqIERheSBvZiB3ZWVrIGJlZm9yZSBkYXkgb2YgbW9udGguIFRvIHNwZWNpZnkgdGhlIGxhc3QgZGF5IG9mIHRoZSB3ZWVrCisgICAgICogb2NjdXJyaW5nIG9uIG9yIGJlZm9yZSBhbiBleGFjdCBkYXkgb2YgdGhlIG1vbnRoLCBtYWtlIHRoZSBkYXkgb2YgdGhlCisgICAgICogd2VlayBhbmQgdGhlIGRheSBvZiB0aGUgbW9udGggbmVnYXRpdmUuIEZvciBleGFtcGxlLCBpZiBzdGFydERheSBpcyAtMjEKKyAgICAgKiBhbmQgc3RhcnREYXlPZldlZWsgaXMgLVdFRE5FU0RBWSwgdGhpcyBpbmRpY2F0ZXMgdGhlIGxhc3QgV2VkbmVzZGF5IG9uIG9yCisgICAgICogYmVmb3JlIHRoZSAyMXN0IG9mIHRoZSBzdGFydE1vbnRoLgorICAgICAqCisgICAgICogVGhlIGFib3ZlIGV4YW1wbGVzIHJlZmVyIHRvIHRoZSBzdGFydE1vbnRoLCBzdGFydERheSwgYW5kIHN0YXJ0RGF5T2ZXZWVrOworICAgICAqIHRoZSBzYW1lIGFwcGxpZXMgZm9yIHRoZSBlbmRNb250aCwgZW5kRGF5LCBhbmQgZW5kRGF5T2ZXZWVrLgorICAgICAqCisgICAgICogQHBhcmFtIHJhd09mZnNldCAgICAgICBUaGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAcGFyYW0gSUQgICAgICAgICAgICAgIFRoZSB0aW1lIHpvbmUgSUQgd2hpY2ggaXMgb2J0YWluZWQgZnJvbQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzLgorICAgICAqIEBwYXJhbSBzdGFydE1vbnRoICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgbW9udGguIE1vbnRoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAwLWJhc2VkLiBlZywgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gc3RhcnREYXkgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBkYXktb2Ytd2Vlay1pbi1tb250aC4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gc3RhcnREYXlPZldlZWsgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIGRheS1vZi13ZWVrLiBQbGVhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBzdGFydFRpbWUgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgdGltZSBpbiBsb2NhbCB3YWxsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICB0aW1lLCB3aGljaCBpcyBzdGFuZGFyZCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gZW5kTW9udGggICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIDAtYmFzZWQuIGVnLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBlbmREYXkgICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIGRheS1vZi13ZWVrLWluLW1vbnRoLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgUGxlYXNlIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBlbmREYXlPZldlZWsgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIGRheS1vZi13ZWVrLiBQbGVhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBlbmRUaW1lICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHRpbWUgaW4gbG9jYWwgd2FsbCB0aW1lLAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggaXMgZGF5bGlnaHQgdGltZSBpbiB0aGlzIGNhc2UuIFBsZWFzZSBzZWUgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXksIGRheU9mV2Vlaywgb3IgdGltZQorICAgICAqIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZSBmb3IgdGhlIHN0YXJ0IG9yIGVuZCBydWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXQsIFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0TW9udGgsIGludCBzdGFydERheSwgaW50IHN0YXJ0RGF5T2ZXZWVrLCBpbnQgc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kTW9udGgsIGludCBlbmREYXksIGludCBlbmREYXlPZldlZWssIGludCBlbmRUaW1lKSB7CisvKiAgICAgICAgdGhpcyhuZXcgamF2YS51dGlsLlNpbXBsZVRpbWVab25lKHJhd09mZnNldCwgSUQsIHN0YXJ0TW9udGgsIHN0YXJ0RGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnREYXlPZldlZWssIHN0YXJ0VGltZSwgZW5kTW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmREYXksIGVuZERheU9mV2VlaywgZW5kVGltZSksIElEKTsqLworICAgICAgIC8vIFNUWkluZm8geGluZm8gPSBnZXRTVFpJbmZvKCk7CisgICAgICAgLy8geGluZm8uc2V0U3RhcnQoc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrLCBzdGFydFRpbWUsIC0xLCBmYWxzZSk7CisgICAgICAgLy8geGluZm8uc2V0RW5kKGVuZE1vbnRoLCBlbmREYXksIGVuZERheU9mV2VlaywgZW5kVGltZSwgLTEsIGZhbHNlKTsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldCwKKyAgICAgICAgICAgICAgICBzdGFydE1vbnRoLCBzdGFydERheSwgc3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgc3RhcnRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgIGVuZFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICBNSUxMSVNfUEVSX0hPVVIpOworICAgICAgICBzdXBlci5zZXRJRChJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuICBUaGlzIGNvbnN0cnVjdG9yIGlzIGlkZW50aWNhbCB0byB0aGUgMTAtYXJndW1lbnQKKyAgICAgKiBjb25zdHJ1Y3RvciwgYnV0IGFsc28gdGFrZXMgYSBkc3RTYXZpbmdzIHBhcmFtZXRlci4KKyAgICAgKiBAcGFyYW0gZHN0U2F2aW5ncyAgIFRoZSBhbW91bnQgb2YgdGltZSBpbiBtcyBzYXZlZCBkdXJpbmcgRFNULgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5LCBkYXlPZldlZWssIG9yIHRpbWUKKyAgICAgKiBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UgZm9yIHRoZSBzdGFydCBvciBlbmQgcnVsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVUaW1lWm9uZShpbnQgcmF3T2Zmc2V0LCBTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydE1vbnRoLCBpbnQgc3RhcnREYXksIGludCBzdGFydERheU9mV2VlaywgaW50IHN0YXJ0VGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZE1vbnRoLCBpbnQgZW5kRGF5LCBpbnQgZW5kRGF5T2ZXZWVrLCBpbnQgZW5kVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRzdFNhdmluZ3MpIHsKKyAgICAgICAgLyp0aGlzKG5ldyBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUocmF3T2Zmc2V0LCBJRCwgc3RhcnRNb250aCwgc3RhcnREYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERheU9mV2Vlaywgc3RhcnRUaW1lLCBlbmRNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lLCBkc3RTYXZpbmdzKSwgSUQpOyovCisgICAgICAgIHRoaXMucmF3ID0gcmF3T2Zmc2V0OworICAgICAgICB0aGlzLmRzdCA9IGRzdFNhdmluZ3M7CisgICAgICAgIC8qCisgICAgICAgIFNUWkluZm8geGluZm8gPSBnZXRTVFpJbmZvKCk7CisgICAgICAgIHhpbmZvLnNldFN0YXJ0KHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBzdGFydERheU9mV2Vlaywgc3RhcnRUaW1lLCAtMSwgZmFsc2UpOworICAgICAgICB4aW5mby5zZXRFbmQoZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lLCAtMSwgZmFsc2UpOworICAgICAgICAqLworCisgICAgICAgIGNvbnN0cnVjdChyYXdPZmZzZXQsCisgICAgICAgICAgICAgICAgc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgIHN0YXJ0VGltZSwgV0FMTF9USU1FLAorICAgICAgICAgICAgICAgIGVuZE1vbnRoLCBlbmREYXksIGVuZERheU9mV2VlaywKKyAgICAgICAgICAgICAgICBlbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgZHN0U2F2aW5ncyk7IAorICAgICAgICBzdXBlci5zZXRJRChJRCk7CisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogU2V0IHRoZSByYXcgb2Zmc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgcmF3IG9mZnNldCBvZiB0aGUgdGltZSB6b25lCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykgeworICAgICAgICByYXcgPSBvZmZzZXRNaWxsaXM7CisgICAgfQorICAKKyAgICAvKioKKyAgICAgKiBnZXQgdGhlIHJhdyBvZmZzZXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSByYXcgb2Zmc2V0CisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhd09mZnNldCgpIHsKKyAgICAgICAgcmV0dXJuIHJhdzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHllYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFllYXIoaW50IHllYXIpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRTdGFydFllYXIoeWVhcik7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnN5ID0geWVhcjsKKyAgICAgICAgdGhpcy5zdGFydFllYXIgPSB5ZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgcnVsZS4gRm9yIGV4YW1wbGUsIERheWxpZ2h0IFNhdmluZ3MKKyAgICAgKiBUaW1lIHN0YXJ0cyBhdCB0aGUgZmlyc3QgU3VuZGF5IGluIEFwcmlsLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgc3RhcnQgcnVsZSBieSBjYWxsaW5nOgorICAgICAqIHNldFN0YXJ0UnVsZShUaW1lRmllbGRzLkFQUklMLCAxLCBUaW1lRmllbGRzLlNVTkRBWSwgMio2MCo2MCoxMDAwKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgMC1iYXNlZC4gZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGRheS1vZi13ZWVrLWluLW1vbnRoLiBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIGRheS1vZi13ZWVrLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGV4YW1wbGUuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHRpbWUgaW4gbG9jYWwgd2FsbAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLCB3aGljaCBpcyBzdGFuZGFyZCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwKKyAgICAgKiBkYXlPZldlZWssIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RhcnRSdWxlKGludCBtb250aCwgaW50IGRheU9mV2Vla0luTW9udGgsIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lKSB7CisgICAgICAgIC8vdW53cmFwU1RaKCkuc2V0U3RhcnRSdWxlKG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLCBkYXlPZldlZWssIHRpbWUpOworCisgICAgICAgIGdldFNUWkluZm8oKS5zZXRTdGFydChtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwgZGF5T2ZXZWVrLCB0aW1lLCAtMSwgZmFsc2UpOworICAgICAgICBzZXRTdGFydFJ1bGUobW9udGgsIGRheU9mV2Vla0luTW9udGgsIGRheU9mV2VlaywgdGltZSwgV0FMTF9USU1FKTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyBydWxlLiBGb3IgZXhhbXBsZSwgaW4gdGhlIFUuUy4sIERheWxpZ2h0IFNhdmluZ3MKKyAgICAgKiBUaW1lIHN0YXJ0cyBhdCB0aGUgZmlyc3QgU3VuZGF5IGluIEFwcmlsLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgc3RhcnQgcnVsZSBieSBjYWxsaW5nOgorICAgICAqIHNldFN0YXJ0UnVsZShUaW1lRmllbGRzLkFQUklMLCAxLCBUaW1lRmllbGRzLlNVTkRBWSwgMio2MCo2MCoxMDAwKTsKKyAgICAgKiBUaGUgZGF5T2ZXZWVrSW5Nb250aCBhbmQgZGF5T2ZXZWVrIHBhcmFtZXRlcnMgdG9nZXRoZXIgc3BlY2lmeSBob3cgdG8gY2FsY3VsYXRlCisgICAgICogdGhlIGV4YWN0IHN0YXJ0aW5nIGRhdGUuICBUaGVpciBleGFjdCBtZWFuaW5nIGRlcGVuZCBvbiB0aGVpciByZXNwZWN0aXZlIHNpZ25zLAorICAgICAqIGFsbG93aW5nIHZhcmlvdXMgdHlwZXMgb2YgcnVsZXMgdG8gYmUgY29uc3RydWN0ZWQsIGFzIGZvbGxvd3M6PHVsPgorICAgICAqICAgPGxpPklmIGJvdGggZGF5T2ZXZWVrSW5Nb250aCBhbmQgZGF5T2ZXZWVrIGFyZSBwb3NpdGl2ZSwgdGhleSBzcGVjaWZ5IHRoZQorICAgICAqICAgICAgIGRheSBvZiB3ZWVrIGluIHRoZSBtb250aCAoZS5nLiwgKDIsIFdFRE5FU0RBWSkgaXMgdGhlIHNlY29uZCBXZWRuZXNkYXkKKyAgICAgKiAgICAgICBvZiB0aGUgbW9udGgpLgorICAgICAqICAgPGxpPklmIGRheU9mV2VlayBpcyBwb3NpdGl2ZSBhbmQgZGF5T2ZXZWVrSW5Nb250aCBpcyBuZWdhdGl2ZSwgdGhleSBzcGVjaWZ5CisgICAgICogICAgICAgdGhlIGRheSBvZiB3ZWVrIGluIHRoZSBtb250aCBjb3VudGluZyBiYWNrd2FyZCBmcm9tIHRoZSBlbmQgb2YgdGhlIG1vbnRoLgorICAgICAqICAgICAgIChlLmcuLCAoLTEsIE1PTkRBWSkgaXMgdGhlIGxhc3QgTW9uZGF5IGluIHRoZSBtb250aCkKKyAgICAgKiAgIDxsaT5JZiBkYXlPZldlZWsgaXMgemVybyBhbmQgZGF5T2ZXZWVrSW5Nb250aCBpcyBwb3NpdGl2ZSwgZGF5T2ZXZWVrSW5Nb250aAorICAgICAqICAgICAgIHNwZWNpZmllcyB0aGUgZGF5IG9mIHRoZSBtb250aCwgcmVnYXJkbGVzcyBvZiB3aGF0IGRheSBvZiB0aGUgd2VlayBpdCBpcy4KKyAgICAgKiAgICAgICAoZS5nLiwgKDEwLCAwKSBpcyB0aGUgdGVudGggZGF5IG9mIHRoZSBtb250aCkKKyAgICAgKiAgIDxsaT5JZiBkYXlPZldlZWsgaXMgemVybyBhbmQgZGF5T2ZXZWVrSW5Nb250aCBpcyBuZWdhdGl2ZSwgZGF5T2ZXZWVrSW5Nb250aAorICAgICAqICAgICAgIHNwZWNpZmllcyB0aGUgZGF5IG9mIHRoZSBtb250aCBjb3VudGluZyBiYWNrd2FyZCBmcm9tIHRoZSBlbmQgb2YgdGhlCisgICAgICogICAgICAgbW9udGgsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBkYXkgb2YgdGhlIHdlZWsgaXQgaXMgKGUuZy4sICgtMiwgMCkgaXMgdGhlCisgICAgICogICAgICAgbmV4dC10by1sYXN0IGRheSBvZiB0aGUgbW9udGgpLgorICAgICAqICAgPGxpPklmIGRheU9mV2VlayBpcyBuZWdhdGl2ZSBhbmQgZGF5T2ZXZWVrSW5Nb250aCBpcyBwb3NpdGl2ZSwgdGhleSBzcGVjaWZ5IHRoZQorICAgICAqICAgICAgIGZpcnN0IHNwZWNpZmllZCBkYXkgb2YgdGhlIHdlZWsgb24gb3IgYWZ0ZXIgdGhlIHNwZWNmaWVkIGRheSBvZiB0aGUgbW9udGguCisgICAgICogICAgICAgKGUuZy4sICgxNSwgLVNVTkRBWSkgaXMgdGhlIGZpcnN0IFN1bmRheSBhZnRlciB0aGUgMTV0aCBvZiB0aGUgbW9udGgKKyAgICAgKiAgICAgICBbb3IgdGhlIDE1dGggaXRzZWxmIGlmIHRoZSAxNXRoIGlzIGEgU3VuZGF5XS4pCisgICAgICogICA8bGk+SWYgZGF5T2ZXZWVrIGFuZCBEYXlPZldlZWtJbk1vbnRoIGFyZSBib3RoIG5lZ2F0aXZlLCB0aGV5IHNwZWNpZnkgdGhlCisgICAgICogICAgICAgbGFzdCBzcGVjaWZpZWQgZGF5IG9mIHRoZSB3ZWVrIG9uIG9yIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGRheSBvZiB0aGUgbW9udGguCisgICAgICogICAgICAgKGUuZy4sICgtMjAsIC1UVUVTREFZKSBpcyB0aGUgbGFzdCBUdWVzZGF5IGJlZm9yZSB0aGUgMjB0aCBvZiB0aGUgbW9udGgKKyAgICAgKiAgICAgICBbb3IgdGhlIDIwdGggaXRzZWxmIGlmIHRoZSAyMHRoIGlzIGEgVHVlc2RheV0uKTwvdWw+CisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIG1vbnRoLiBNb250aCBpcyAwLWJhc2VkLgorICAgICAqIGVnLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXlPZldlZWtJbk1vbnRoIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nCisgICAgICogZGF5LW9mLXdlZWstaW4tbW9udGguIFBsZWFzZSBzZWUgdGhlIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIGRheS1vZi13ZWVrLiBQbGVhc2Ugc2VlCisgICAgICogdGhlIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gdGltZSB0aGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyB0aW1lLiBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIKKyAgICAgKiBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKi8KKyAgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFN0YXJ0UnVsZShpbnQgbW9udGgsIGludCBkYXlPZldlZWtJbk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBpbnQgdGltZSwgaW50IG1vZGUpCisgICAgeworICAgICAgICBzdGFydE1vbnRoICAgICA9ICBtb250aDsKKyAgICAgICAgc3RhcnREYXkgICAgICAgPSBkYXlPZldlZWtJbk1vbnRoOworICAgICAgICBzdGFydERheU9mV2VlayA9IGRheU9mV2VlazsKKyAgICAgICAgc3RhcnRUaW1lICAgICAgPSB0aW1lOworICAgICAgICBzdGFydFRpbWVNb2RlICA9IG1vZGU7CisgICAgICAgIGRlY29kZVN0YXJ0UnVsZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1Qgc3RhcnQgcnVsZSB0byBhIGZpeGVkIGRhdGUgd2l0aGluIGEgbW9udGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgVGhlIHRpbWUgb2YgdGhhdCBkYXkgKG51bWJlciBvZiBtaWxsaXMgYWZ0ZXIgbWlkbmlnaHQpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd2hlbiBEU1QgdGFrZXMgZWZmZWN0IGluIGxvY2FsIHdhbGwgdGltZSwgd2hpY2ggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZCB0aW1lIGluIHRoaXMgY2FzZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgbW9udGgsCisgICAgICogZGF5T2ZNb250aCwgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IHRpbWUpIHsKKyAgICAgICAvLyB1bndyYXBTVFooKS5zZXRTdGFydFJ1bGUobW9udGgsIGRheU9mTW9udGgsIHRpbWUpOworCisgICAgICAgIGdldFNUWkluZm8oKS5zZXRTdGFydChtb250aCwgLTEsIC0xLCB0aW1lLCBkYXlPZk1vbnRoLCBmYWxzZSk7CisgICAgICAgIHNldFN0YXJ0UnVsZShtb250aCwgZGF5T2ZNb250aCwgMCwgdGltZSwgV0FMTF9USU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1Qgc3RhcnQgcnVsZSB0byBhIHdlZWtkYXkgYmVmb3JlIG9yIGFmdGVyIGEgZ2l2ZSBkYXRlIHdpdGhpbgorICAgICAqIGEgbW9udGgsIGUuZy4sIHRoZSBmaXJzdCBNb25kYXkgb24gb3IgYWZ0ZXIgdGhlIDh0aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzICgwLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBBIGRhdGUgd2l0aGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggdGhpcyBydWxlIG9jY3Vycy4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICBUaGUgdGltZSBvZiB0aGF0IGRheSAobnVtYmVyIG9mIG1pbGxpcyBhZnRlciBtaWRuaWdodCkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3aGVuIERTVCB0YWtlcyBlZmZlY3QgaW4gbG9jYWwgd2FsbCB0aW1lLCB3aGljaCBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkIHRpbWUgaW4gdGhpcyBjYXNlLgorICAgICAqIEBwYXJhbSBhZnRlciAgICAgICAgIElmIHRydWUsIHRoaXMgcnVsZSBzZWxlY3RzIHRoZSBmaXJzdCBkYXlPZldlZWsgb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBvciBhZnRlciBkYXlPZk1vbnRoLiAgSWYgZmFsc2UsIHRoaXMgcnVsZSBzZWxlY3RzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxhc3QgZGF5T2ZXZWVrIG9uIG9yIGJlZm9yZSBkYXlPZk1vbnRoLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5T2ZNb250aCwKKyAgICAgKiBkYXlPZldlZWssIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RhcnRSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssIGludCB0aW1lLCBib29sZWFuIGFmdGVyKSB7CisgICAgICAgIC8vdW53cmFwU1RaKCkuc2V0U3RhcnRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZldlZWssIHRpbWUsIGFmdGVyKTsKKworICAgICAgICBnZXRTVFpJbmZvKCkuc2V0U3RhcnQobW9udGgsIC0xLCBkYXlPZldlZWssIHRpbWUsIGRheU9mTW9udGgsIGFmdGVyKTsKKyAgICAgICAgc2V0U3RhcnRSdWxlKG1vbnRoLCBhZnRlciA/IGRheU9mTW9udGggOiAtZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAtZGF5T2ZXZWVrLCB0aW1lLCBXQUxMX1RJTUUpOworCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgcnVsZS4gRm9yIGV4YW1wbGUsIERheWxpZ2h0IFNhdmluZ3MgVGltZQorICAgICAqIGVuZHMgYXQgdGhlIGxhc3QgKC0xKSBTdW5kYXkgaW4gT2N0b2JlciwgYXQgMiBBTSBpbiBzdGFuZGFyZCB0aW1lLgorICAgICAqIFRoZXJlZm9yZSwgeW91IGNhbiBzZXQgdGhlIGVuZCBydWxlIGJ5IGNhbGxpbmc6CisgICAgICogc2V0RW5kUnVsZShUaW1lRmllbGRzLk9DVE9CRVIsIC0xLCBUaW1lRmllbGRzLlNVTkRBWSwgMio2MCo2MCoxMDAwKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgbW9udGguIE1vbnRoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIDAtYmFzZWQuIGVnLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXlPZldlZWtJbk1vbnRoICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LW9mLXdlZWstaW4tbW9udGguIFBsZWFzZSBzZWUgdGhlIG1lbWJlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIGRheS1vZi13ZWVrLiBQbGVhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyB0aW1lIGluIGxvY2FsIHdhbGwgdGltZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggaXMgZGF5bGlnaHQgdGltZSBpbiB0aGlzIGNhc2UuIFBsZWFzZSBzZWUgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgbW9udGgsIGRheU9mV2Vla0luTW9udGgsCisgICAgICogZGF5T2ZXZWVrLCBvciB0aW1lIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVuZFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZXZWVrSW5Nb250aCwgaW50IGRheU9mV2VlaywgaW50IHRpbWUpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRFbmRSdWxlKG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLCBkYXlPZldlZWssIHRpbWUpOworCisgICAgICAgIGdldFNUWkluZm8oKS5zZXRFbmQobW9udGgsIGRheU9mV2Vla0luTW9udGgsIGRheU9mV2VlaywgdGltZSwgLTEsIGZhbHNlKTsKKyAgICAgICAgc2V0RW5kUnVsZShtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwgZGF5T2ZXZWVrLCB0aW1lLCBXQUxMX1RJTUUpOyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgRFNUIGVuZCBydWxlIHRvIGEgZml4ZWQgZGF0ZSB3aXRoaW4gYSBtb250aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzICgwLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBUaGUgZGF0ZSBpbiB0aGF0IG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICBUaGUgdGltZSBvZiB0aGF0IGRheSAobnVtYmVyIG9mIG1pbGxpcyBhZnRlciBtaWRuaWdodCkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3aGVuIERTVCBlbmRzIGluIGxvY2FsIHdhbGwgdGltZSwgd2hpY2ggaXMgZGF5bGlnaHQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aW1lIGluIHRoaXMgY2FzZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgbW9udGgsCisgICAgICogZGF5T2ZNb250aCwgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFbmRSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCB0aW1lKSB7CisgICAgICAgIC8vdW53cmFwU1RaKCkuc2V0RW5kUnVsZShtb250aCwgZGF5T2ZNb250aCwgdGltZSk7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldEVuZChtb250aCwgLTEsIC0xLCB0aW1lLCBkYXlPZk1vbnRoLCBmYWxzZSk7CisgICAgICAgIHNldEVuZFJ1bGUobW9udGgsIGRheU9mTW9udGgsIFdBTExfVElNRSwgdGltZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgRFNUIGVuZCBydWxlIHRvIGEgd2Vla2RheSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlIGRhdGUgd2l0aGluCisgICAgICogYSBtb250aCwgZS5nLiwgdGhlIGZpcnN0IE1vbmRheSBvbiBvciBhZnRlciB0aGUgOHRoLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIEEgZGF0ZSB3aXRoaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgICAgVGhlIGRheSBvZiB0aGUgd2VlayBvbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzLgorICAgICAqIEBwYXJhbSB0aW1lICAgICAgICAgIFRoZSB0aW1lIG9mIHRoYXQgZGF5IChudW1iZXIgb2YgbWlsbGlzIGFmdGVyIG1pZG5pZ2h0KQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdoZW4gRFNUIGVuZHMgaW4gbG9jYWwgd2FsbCB0aW1lLCB3aGljaCBpcyBkYXlsaWdodAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRpbWUgaW4gdGhpcyBjYXNlLgorICAgICAqIEBwYXJhbSBhZnRlciAgICAgICAgIElmIHRydWUsIHRoaXMgcnVsZSBzZWxlY3RzIHRoZSBmaXJzdCBkYXlPZldlZWsgb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBvciBhZnRlciBkYXlPZk1vbnRoLiAgSWYgZmFsc2UsIHRoaXMgcnVsZSBzZWxlY3RzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxhc3QgZGF5T2ZXZWVrIG9uIG9yIGJlZm9yZSBkYXlPZk1vbnRoLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5T2ZNb250aCwKKyAgICAgKiBkYXlPZldlZWssIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RW5kUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBpbnQgdGltZSwgYm9vbGVhbiBhZnRlcikgeworICAgICAgIC8vIHVud3JhcFNUWigpLnNldEVuZFJ1bGUobW9udGgsIGRheU9mTW9udGgsIGRheU9mV2VlaywgdGltZSwgYWZ0ZXIpOworCisgICAgICAgIGdldFNUWkluZm8oKS5zZXRFbmQobW9udGgsIC0xLCBkYXlPZldlZWssIHRpbWUsIGRheU9mTW9udGgsIGFmdGVyKTsKKyAgICAgICAgc2V0RW5kUnVsZShtb250aCwgZGF5T2ZNb250aCwgZGF5T2ZXZWVrLCB0aW1lLCBXQUxMX1RJTUUsIGFmdGVyKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIHNldEVuZFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGltZSwgaW50IG1vZGUsIGJvb2xlYW4gYWZ0ZXIpeworICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCBhZnRlciA/IGRheU9mTW9udGggOiAtZGF5T2ZNb250aCwgLWRheU9mV2VlaywgdGltZSwgbW9kZSk7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHJ1bGUuIEZvciBleGFtcGxlLCBpbiB0aGUgVS5TLiwgRGF5bGlnaHQKKyAgICAgKiBTYXZpbmdzIFRpbWUgZW5kcyBhdCB0aGUgbGFzdCAoLTEpIFN1bmRheSBpbiBPY3RvYmVyLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgZW5kIHJ1bGUgYnkgY2FsbGluZzoKKyAgICAgKiBzZXRFbmRSdWxlKFRpbWVGaWVsZHMuT0NUT0JFUiwgLTEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqIFZhcmlvdXMgb3RoZXIgdHlwZXMgb2YgcnVsZXMgY2FuIGJlIHNwZWNpZmllZCBieSBtYW5pcHVsYXRpbmcgdGhlIGRheU9mV2VlaworICAgICAqIGFuZCBkYXlPZldlZWtJbk1vbnRoIHBhcmFtZXRlcnMuICBGb3IgY29tcGxldGUgZGV0YWlscywgc2VlIHRoZSBkb2N1bWVudGF0aW9uCisgICAgICogZm9yIHNldFN0YXJ0UnVsZSgpLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgbW9udGguIE1vbnRoIGlzIDAtYmFzZWQuCisgICAgICogZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggdGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nCisgICAgICogZGF5LW9mLXdlZWstaW4tbW9udGguIFNlZSBzZXRTdGFydFJ1bGUoKSBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIHRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBkYXktb2Ytd2Vlay4gU2VlIHNldFN0YXJ0UnVsZSgpCisgICAgICogZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24uCisgICAgICogQHBhcmFtIHRpbWUgdGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHRpbWUuIFBsZWFzZSBzZWUgdGhlIG1lbWJlcgorICAgICAqIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRFbmRSdWxlKGludCBtb250aCwgaW50IGRheU9mV2Vla0luTW9udGgsIGludCBkYXlPZldlZWssIGludCB0aW1lLCBpbnQgbW9kZSl7CisgICAgICAgIGVuZE1vbnRoICAgICA9IG1vbnRoOworICAgICAgICBlbmREYXkgICAgICAgPSBkYXlPZldlZWtJbk1vbnRoOworICAgICAgICBlbmREYXlPZldlZWsgPSBkYXlPZldlZWs7CisgICAgICAgIGVuZFRpbWUgICAgICA9IHRpbWU7CisgICAgICAgIGVuZFRpbWVNb2RlICA9IG1vZGU7CisgICAgICAgIGRlY29kZUVuZFJ1bGUoKTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbXMgdGhhdCB0aGUgY2xvY2sgaXMgYWR2YW5jZWQgZHVyaW5nIERTVC4KKyAgICAgKiBAcGFyYW0gbWlsbGlzU2F2ZWREdXJpbmdEU1QgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhlIHRpbWUgaXMKKyAgICAgKiBhZHZhbmNlZCB3aXRoIHJlc3BlY3QgdG8gc3RhbmRhcmQgdGltZSB3aGVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIHJ1bGVzCisgICAgICogYXJlIGluIGVmZmVjdC4gQSBwb3NpdGl2ZSBudW1iZXIsIHR5cGljYWxseSBvbmUgaG91ciAoMzYwMDAwMCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RFNUU2F2aW5ncyhpbnQgbWlsbGlzU2F2ZWREdXJpbmdEU1QpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXREU1RTYXZpbmdzKG1pbGxpc1NhdmVkRHVyaW5nRFNUKTsKKyAgICAgICAgaWYgKG1pbGxpc1NhdmVkRHVyaW5nRFNUIDw9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBkc3QgPSBtaWxsaXNTYXZlZER1cmluZ0RTVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtcyB0aGF0IHRoZSBjbG9jayBpcyBhZHZhbmNlZCBkdXJpbmcgRFNULgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhlIHRpbWUgaXMKKyAgICAgKiBhZHZhbmNlZCB3aXRoIHJlc3BlY3QgdG8gc3RhbmRhcmQgdGltZSB3aGVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIHJ1bGVzCisgICAgICogYXJlIGluIGVmZmVjdC4gQSBwb3NpdGl2ZSBudW1iZXIsIHR5cGljYWxseSBvbmUgaG91ciAoMzYwMDAwMCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXREU1RTYXZpbmdzKCkgeworICAgICAgICByZXR1cm4gZHN0OworICAgIH0KKworICAgIC8qCisgICAgICogQ29uc3RydWN0cyBhIFNpbXBsZVRpbWVab25lIHRoYXQgd3JhcHMgdGhlIGdpdmVuCisgICAgICogamF2YS51dGlsLlNpbXBsZVRpbWVab25lLiAgRG8gbm90IGNhbGw7IHVzZSB0aGUgVGltZVpvbmUKKyAgICAgKiBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisvLyAgICBwdWJsaWMgU2ltcGxlVGltZVpvbmUoamF2YS51dGlsLlNpbXBsZVRpbWVab25lIHR6LCBTdHJpbmcgSUQpIHsKKy8vICAgICAgICBzdXBlcih0eik7CisvLyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworLy8gICAgICAgIGRzdCA9IHR6LmdldERTVFNhdmluZ3MoKTsKKy8vICAgICAgICByYXcgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKy8vICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUgdGhhdCB0aGlzIGNsYXNzIHdyYXBzLgorICAgICAqCisgICAgamF2YS51dGlsLlNpbXBsZVRpbWVab25lIHVud3JhcFNUWigpIHsKKyAgICAgICAgcmV0dXJuIChqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUpIHVud3JhcCgpOworICAgIH0KKyAgICAqLworICAgIC8vIG9uIEpESyAxLjQgYW5kIGxhdGVyLCBjYW4ndCBkZXNlcmlhbGl6ZSBhIFNpbXBsZVRpbWVab25lIGFzIGEgU2ltcGxlVGltZVpvbmUuLi4KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtIGluKSB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBpbi5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAvKgorICAgICAgICBTdHJpbmcgaWQgPSBnZXRJRCgpOworICAgICAgICBpZiAoaWQhPW51bGwgJiYgISh6b25lIGluc3RhbmNlb2YgamF2YS51dGlsLlNpbXBsZVRpbWVab25lICYmIHpvbmUuZ2V0SUQoKS5lcXVhbHMoaWQpKSkgeworICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCIqKiogcmVhZGp1c3QgIiArIHpvbmUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyB6b25lLmdldElEKCkgKyAiICoqKiIpOworICAgICAgICAgICAgamF2YS51dGlsLlNpbXBsZVRpbWVab25lIHN0eiA9IAorICAgICAgICAgICAgICAgIG5ldyBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUocmF3LCBpZCk7CisgICAgICAgICAgICBpZiAoZHN0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RFNUU2F2aW5ncyhkc3QpOworICAgICAgICAgICAgICAgIC8vIGlmIGl0IGlzIDAsIHRoZW4gdGhlcmUgc2hvdWxkbid0IGJlIHN0YXJ0L2VuZCBydWxlcyBhbmQgdGhlIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAvLyBiZWhhdmlvciBzaG91bGQgYmUgbm8gZHN0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh4aW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgeGluZm8uYXBwbHlUbyhzdHopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgem9uZUpESyA9IHN0ejsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAvKiBzZXQgYWxsIGluc3RhbmNlIHZhcmlhYmxlcyBpbiB0aGlzIG9iamVjdAorICAgICAgICAgKiB0byB0aGUgdmFsdWVzIGluIHpvbmUgCisgICAgICAgICAqLyAgICAgICAgICAgIAorICAgICAgICAgaWYgKHhpbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgICB4aW5mby5hcHBseVRvKHRoaXMpOworICAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdAorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIlNpbXBsZVRpbWVab25lOiAiICsgZ2V0SUQoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFNUWkluZm8gZ2V0U1RaSW5mbygpIHsKKyAgICAgICAgaWYgKHhpbmZvID09IG51bGwpIHsKKyAgICAgICAgICAgIHhpbmZvID0gbmV3IFNUWkluZm8oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geGluZm87CisgICAgfQorCisgICAgLy8gIFVzZSBvbmx5IGZvciBkZWNvZGVTdGFydFJ1bGUoKSBhbmQgZGVjb2RlRW5kUnVsZSgpIHdoZXJlIHRoZSB5ZWFyIGlzIG5vdAorICAgIC8vICBhdmFpbGFibGUuIFNldCBGZWJydWFyeSB0byAyOSBkYXlzIHRvIGFjY29tb2RhdGUgcnVsZXMgd2l0aCB0aGF0IGRhdGUKKyAgICAvLyAgYW5kIGRheS1vZi13ZWVrLW9uLW9yLWJlZm9yZS10aGF0LWRhdGUgbW9kZSAoRE9XX0xFX0RPTV9NT0RFKS4KKyAgICAvLyAgVGhlIGNvbXBhcmVUb1J1bGUoKSBtZXRob2QgYWRqdXN0cyB0byBGZWJydWFyeSAyOCBpbiBub24tbGVhcCB5ZWFycy4KKyAgICAvLworICAgIC8vICBGb3IgYWN0dWFsIGdldE9mZnNldCgpIGNhbGN1bGF0aW9ucywgdXNlIFRpbWVab25lOjptb250aExlbmd0aCgpIGFuZAorICAgIC8vICBUaW1lWm9uZTo6cHJldmlvdXNNb250aExlbmd0aCgpIHdoaWNoIHRha2UgbGVhcCB5ZWFycyBpbnRvIGFjY291bnQuCisgICAgLy8gIFdlIGhhbmRsZSBsZWFwIHllYXJzIGFzc3VtaW5nIGFsd2F5cworICAgIC8vICBHcmVnb3JpYW4sIHNpbmNlIHdlIGtub3cgdGhleSBkaWRuJ3QgaGF2ZSBkYXlsaWdodCB0aW1lIHdoZW4KKyAgICAvLyAgR3JlZ29yaWFuIGNhbGVuZGFyIHN0YXJ0ZWQuCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYnl0ZSBzdGF0aWNNb250aExlbmd0aFtdID0gezMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKworLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzKSAKKyAgICB7CisgICAgICAgIC8vIENoZWNrIHRoZSBtb250aCBiZWZvcmUgY2FsbGluZyBHcmVnby5tb250aExlbmd0aCgpLiBUaGlzCisgICAgICAgIC8vIGR1cGxpY2F0ZXMgdGhlIHRlc3QgdGhhdCBvY2N1cnMgaW4gdGhlIDctYXJndW1lbnQgZ2V0T2Zmc2V0KCksCisgICAgICAgIC8vIGhvd2V2ZXIsIHRoaXMgaXMgdW5hdm9pZGFibGUuIFdlIGRvbid0IG1pbmQgYmVjYXVzZSB0aGlzIG1ldGhvZCwgaW4KKyAgICAgICAgLy8gZmFjdCwgc2hvdWxkIG5vdCBiZSBjYWxsZWQ7IGludGVybmFsIGNvZGUgc2hvdWxkIGFsd2F5cyBjYWxsIHRoZQorICAgICAgICAvLyA3LWFyZ3VtZW50IGdldE9mZnNldCgpLCBhbmQgb3V0c2lkZSBjb2RlIHNob3VsZCB1c2UgQ2FsZW5kYXIuZ2V0KGludAorICAgICAgICAvLyBmaWVsZCkgd2l0aCBmaWVsZHMgWk9ORV9PRkZTRVQgYW5kIERTVF9PRkZTRVQuIFdlIGNhbid0IGdldCByaWQgb2YKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgYmVjYXVzZSBpdCdzIHB1YmxpYyBBUEkuIC0gbGl1IDgvMTAvOTgKKyAgICAgICAgaWYobW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBnZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpcywgR3JlZ28ubW9udGhMZW5ndGgoeWVhciwgbW9udGgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb250aExlbmd0aCkgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIG1vbnRoIGJlZm9yZSBjYWxsaW5nIEdyZWdvLm1vbnRoTGVuZ3RoKCkuIFRoaXMKKyAgICAgICAgLy8gZHVwbGljYXRlcyBhIHRlc3QgdGhhdCBvY2N1cnMgaW4gdGhlIDktYXJndW1lbnQgZ2V0T2Zmc2V0KCksCisgICAgICAgIC8vIGhvd2V2ZXIsIHRoaXMgaXMgdW5hdm9pZGFibGUuIFdlIGRvbid0IG1pbmQgYmVjYXVzZSB0aGlzIG1ldGhvZCwgaW4KKyAgICAgICAgLy8gZmFjdCwgc2hvdWxkIG5vdCBiZSBjYWxsZWQ7IGludGVybmFsIGNvZGUgc2hvdWxkIGFsd2F5cyBjYWxsIHRoZQorICAgICAgICAvLyA5LWFyZ3VtZW50IGdldE9mZnNldCgpLCBhbmQgb3V0c2lkZSBjb2RlIHNob3VsZCB1c2UgQ2FsZW5kYXIuZ2V0KGludAorICAgICAgICAvLyBmaWVsZCkgd2l0aCBmaWVsZHMgWk9ORV9PRkZTRVQgYW5kIERTVF9PRkZTRVQuIFdlIGNhbid0IGdldCByaWQgb2YKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgYmVjYXVzZSBpdCdzIHB1YmxpYyBBUEkuIC0gbGl1IDgvMTAvOTgKKyAgICAgICAgaWYobW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldE9mZnNldChlcmEsIHllYXIsIG1vbnRoLCBkYXksIGRheU9mV2VlaywgbWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgIEdyZWdvLm1vbnRoTGVuZ3RoKHllYXIsIG1vbnRoKSwgR3JlZ28ucHJldmlvdXNNb250aExlbmd0aCh5ZWFyLCBtb250aCkpOworICAgIH0KKworICAgIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssIGludCBtaWxsaXMsIAorICAgICAgICAgICAgICAgICAgaW50IG1vbnRoTGVuZ3RoLCBpbnQgcHJldk1vbnRoTGVuZ3RoICl7CisKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIC8qIFVzZSB0aGlzIHBhcmFtZXRlciBjaGVja2luZyBjb2RlIGZvciBub3JtYWwgb3BlcmF0aW9uLiAgT25seSBvbmUKKyAgICAgICAgICAgICAqIG9mIHRoZXNlIHR3byBibG9ja3Mgc2hvdWxkIGFjdHVhbGx5IGdldCBjb21waWxlZCBpbnRvIHRoZSBjbGFzcworICAgICAgICAgICAgICogZmlsZS4gICovCisgICAgICAgICAgICBpZiAoKGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCAmJiBlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpCisgICAgICAgICAgICAgICAgfHwgbW9udGggPCBDYWxlbmRhci5KQU5VQVJZCisgICAgICAgICAgICAgICAgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUgorICAgICAgICAgICAgICAgIHx8IGRheSA8IDEKKyAgICAgICAgICAgICAgICB8fCBkYXkgPiBtb250aExlbmd0aAorICAgICAgICAgICAgICAgIHx8IGRheU9mV2VlayA8IENhbGVuZGFyLlNVTkRBWQorICAgICAgICAgICAgICAgIHx8IGRheU9mV2VlayA+IENhbGVuZGFyLlNBVFVSREFZCisgICAgICAgICAgICAgICAgfHwgbWlsbGlzIDwgMAorICAgICAgICAgICAgICAgIHx8IG1pbGxpcyA+PSBNSUxMSVNfUEVSX0RBWQorICAgICAgICAgICAgICAgIHx8IG1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBtb250aExlbmd0aCA+IDMxCisgICAgICAgICAgICAgICAgfHwgcHJldk1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBwcmV2TW9udGhMZW5ndGggPiAzMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIFRoaXMgcGFyYW1ldGVyIGNoZWNraW5nIGNvZGUgaXMgYmV0dGVyIGZvciBkZWJ1Z2dpbmcsIGJ1dAorICAgICAgICAgICAgICogb3ZlcmtpbGwgZm9yIG5vcm1hbCBvcGVyYXRpb24uICBPbmx5IG9uZSBvZiB0aGVzZSB0d28gYmxvY2tzCisgICAgICAgICAgICAgKiBzaG91bGQgYWN0dWFsbHkgZ2V0IGNvbXBpbGVkIGludG8gdGhlIGNsYXNzIGZpbGUuICAqLworICAgICAgICAgICAgaWYgKGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCAmJiBlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGVyYSAiICsgZXJhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtb250aCA8IENhbGVuZGFyLkpBTlVBUlkKKyAgICAgICAgICAgICAgICB8fCBtb250aCA+IENhbGVuZGFyLkRFQ0VNQkVSKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBtb250aCAiICsgbW9udGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRheSA8IDEKKyAgICAgICAgICAgICAgICB8fCBkYXkgPiBtb250aExlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZGF5ICIgKyBkYXkrIiBtYXggbW9udGggbGVuOiAiK21vbnRoTGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPCBDYWxlbmRhci5TVU5EQVkKKyAgICAgICAgICAgICAgICB8fCBkYXlPZldlZWsgPiBDYWxlbmRhci5TQVRVUkRBWSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZGF5IG9mIHdlZWsgIiArIGRheU9mV2Vlayk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWlsbGlzIDwgMAorICAgICAgICAgICAgICAgIHx8IG1pbGxpcyA+PSBNSUxMSVNfUEVSX0RBWSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbWlsbGlzICIgKyBtaWxsaXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBtb250aExlbmd0aCA+IDMxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBtb250aCBsZW5ndGggIiArIG1vbnRoTGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcmV2TW9udGhMZW5ndGggPCAyOAorICAgICAgICAgICAgICAgIHx8IHByZXZNb250aExlbmd0aCA+IDMxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBwcmV2aW91cyBtb250aCBsZW5ndGggIiArIHByZXZNb250aExlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gcmF3OworCisgICAgICAgIC8vIEJhaWwgb3V0IGlmIHdlIGFyZSBiZWZvcmUgdGhlIG9uc2V0IG9mIGRheWxpZ2h0IHNhdmluZ3MgdGltZQorICAgICAgICBpZiAoIXVzZURheWxpZ2h0IHx8IHllYXIgPCBzdGFydFllYXIgfHwgZXJhICE9IEdyZWdvcmlhbkNhbGVuZGFyLkFEKSByZXR1cm4gcmVzdWx0OworCisgICAgICAgIC8vIENoZWNrIGZvciBzb3V0aGVybiBoZW1pc3BoZXJlLiAgV2UgYXNzdW1lIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmQKKyAgICAgICAgLy8gbW9udGggYXJlIGRpZmZlcmVudC4KKyAgICAgICAgYm9vbGVhbiBzb3V0aGVybiA9IChzdGFydE1vbnRoID4gZW5kTW9udGgpOworCisgICAgICAgIC8vIENvbXBhcmUgdGhlIGRhdGUgdG8gdGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgcnVsZXMuKzEgPSBkYXRlPnJ1bGUsIC0xCisgICAgICAgIC8vID0gZGF0ZTxydWxlLCAwID0gZGF0ZT09cnVsZS4KKyAgICAgICAgaW50IHN0YXJ0Q29tcGFyZSA9IGNvbXBhcmVUb1J1bGUobW9udGgsIG1vbnRoTGVuZ3RoLCBwcmV2TW9udGhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgPT0gVVRDX1RJTUUgPyAtcmF3IDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRNb2RlLCBzdGFydE1vbnRoLCBzdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnREYXksIHN0YXJ0VGltZSk7CisgICAgICAgIGludCBlbmRDb21wYXJlID0gMDsKKworICAgICAgICAvKiBXZSBkb24ndCBhbHdheXMgaGF2ZSB0byBjb21wdXRlIGVuZENvbXBhcmUuICBGb3IgbWFueSBpbnN0YW5jZXMsCisgICAgICAgICAqIHN0YXJ0Q29tcGFyZSBpcyBlbm91Z2ggdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBpbiBEU1Qgb3Igbm90LiAgSW4gdGhlCisgICAgICAgICAqIG5vcnRoZXJuIGhlbWlzcGhlcmUsIGlmIHdlIGFyZSBiZWZvcmUgdGhlIHN0YXJ0IHJ1bGUsIHdlIGNhbid0IGhhdmUKKyAgICAgICAgICogRFNULiAgSW4gdGhlIHNvdXRoZXJuIGhlbWlzcGhlcmUsIGlmIHdlIGFyZSBhZnRlciB0aGUgc3RhcnQgcnVsZSwgd2UKKyAgICAgICAgICogbXVzdCBoYXZlIERTVC4gIFRoaXMgaXMgcmVmbGVjdGVkIGluIHRoZSB3YXkgdGhlIG5leHQgaWYgc3RhdGVtZW50CisgICAgICAgICAqIChub3QgdGhlIG9uZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcpIHNob3J0IGNpcmN1aXRzLiAqLworICAgICAgICBpZiAoc291dGhlcm4gIT0gKHN0YXJ0Q29tcGFyZSA+PSAwKSkgeworICAgICAgICAgICAgLyogRm9yIHRoZSBlbmRpbmcgcnVsZSBjb21wYXJpc29uLCB3ZSBhZGQgdGhlIGRzdFNhdmluZ3MgdG8gdGhlIG1pbGxpcworICAgICAgICAgICAgICogcGFzc2VkIGluIHRvIGNvbnZlcnQgdGhlbSBmcm9tIHN0YW5kYXJkIHRvIHdhbGwgdGltZS4gIFdlIHRoZW4gbXVzdAorICAgICAgICAgICAgICogbm9ybWFsaXplIHRoZSBtaWxsaXMgdG8gdGhlIHJhbmdlIDAuLm1pbGxpc1BlckRheS0xLiAqLworICAgICAgICAgICAgZW5kQ29tcGFyZSA9IGNvbXBhcmVUb1J1bGUobW9udGgsIG1vbnRoTGVuZ3RoLCBwcmV2TW9udGhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXksIGRheU9mV2VlaywgbWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZU1vZGUgPT0gV0FMTF9USU1FID8gZHN0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kVGltZU1vZGUgPT0gVVRDX1RJTUUgPyAtcmF3IDogMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRNb2RlLCBlbmRNb250aCwgZW5kRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF5LCBlbmRUaW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGZvciBib3RoIHRoZSBub3J0aGVybiBhbmQgc291dGhlcm4gaGVtaXNwaGVyZSBjYXNlcy4gIFdlCisgICAgICAgIC8vIGFzc3VtZSB0aGF0IGluIHRoZSBub3J0aGVybiBoZW1pc3BoZXJlLCB0aGUgc3RhcnQgcnVsZSBpcyBiZWZvcmUgdGhlCisgICAgICAgIC8vIGVuZCBydWxlIHdpdGhpbiB0aGUgY2FsZW5kYXIgeWVhciwgYW5kIHZpY2UgdmVyc2EgZm9yIHRoZSBzb3V0aGVybgorICAgICAgICAvLyBoZW1pc3BoZXJlLgorICAgICAgICBpZiAoKCFzb3V0aGVybiAmJiAoc3RhcnRDb21wYXJlID49IDAgJiYgZW5kQ29tcGFyZSA8IDApKSB8fAorICAgICAgICAgICAgKHNvdXRoZXJuICYmIChzdGFydENvbXBhcmUgPj0gMCB8fCBlbmRDb21wYXJlIDwgMCkpKQorICAgICAgICAgICAgcmVzdWx0ICs9IGRzdDsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworLy8gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgRE9NX01PREUgPSAxLAorICAgICAgICBET1dfSU5fTU9OVEhfTU9ERT0yLAorICAgICAgICBET1dfR0VfRE9NX01PREU9MywKKyAgICAgICAgRE9XX0xFX0RPTV9NT0RFPTQ7CisKKyAgICAvKioKKyAgICAgKiBUaW1lTW9kZSBpcyB1c2VkLCB0b2dldGhlciB3aXRoIGEgbWlsbGlzZWNvbmQgb2Zmc2V0IGFmdGVyCisgICAgICogbWlkbmlnaHQsIHRvIHNwZWNpZnkgYSBydWxlIHRyYW5zaXRpb24gdGltZS4gIE1vc3QgcnVsZXMKKyAgICAgKiB0cmFuc2l0aW9uIGF0IGEgbG9jYWwgd2FsbCB0aW1lLCB0aGF0IGlzLCBhY2NvcmRpbmcgdG8gdGhlCisgICAgICogY3VycmVudCB0aW1lIGluIGVmZmVjdCwgZWl0aGVyIHN0YW5kYXJkLCBvciBEU1QuICBIb3dldmVyLCBzb21lCisgICAgICogcnVsZXMgdHJhbnNpdGlvbiBhdCBsb2NhbCBzdGFuZGFyZCB0aW1lLCBhbmQgc29tZSBhdCBhIHNwZWNpZmljCisgICAgICogVVRDIHRpbWUuICBBbHRob3VnaCBpdCBtaWdodCBzZWVtIHRoYXQgYWxsIHRpbWVzIGNvdWxkIGJlCisgICAgICogY29udmVydGVkIHRvIHdhbGwgdGltZSwgdGh1cyBlbGltaW5hdGluZyB0aGUgbmVlZCBmb3IgdGhpcworICAgICAqIHBhcmFtZXRlciwgdGhpcyBpcyBub3QgdGhlIGNhc2UuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdBTExfVElNRSA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFOREFSRF9USU1FID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVUQ19USU1FID0gMjsKKworICAgIC8qKgorICAgICAqIENvbXBhcmUgYSBnaXZlbiBkYXRlIGluIHRoZSB5ZWFyIHRvIGEgcnVsZS4gUmV0dXJuIDEsIDAsIG9yIC0xLCBkZXBlbmRpbmcKKyAgICAgKiBvbiB3aGV0aGVyIHRoZSBkYXRlIGlzIGFmdGVyLCBlcXVhbCB0bywgb3IgYmVmb3JlIHRoZSBydWxlIGRhdGUuIFRoZQorICAgICAqIG1pbGxpcyBhcmUgY29tcGFyZWQgZGlyZWN0bHkgYWdhaW5zdCB0aGUgcnVsZU1pbGxpcywgc28gYW55CisgICAgICogc3RhbmRhcmQtZGF5bGlnaHQgYWRqdXN0bWVudHMgbXVzdCBiZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAxIGlmIHRoZSBkYXRlIGlzIGFmdGVyIHRoZSBydWxlIGRhdGUsIC0xIGlmIHRoZSBkYXRlIGlzIGJlZm9yZQorICAgICAqICAgICAgICAgIHRoZSBydWxlIGRhdGUsIG9yIDAgaWYgdGhlIGRhdGUgaXMgZXF1YWwgdG8gdGhlIHJ1bGUgZGF0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjb21wYXJlVG9SdWxlKGludCBtb250aCwgaW50IG1vbnRoTGVuLCBpbnQgcHJldk1vbnRoTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssIGludCBtaWxsaXMsIGludCBtaWxsaXNEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcnVsZU1vZGUsIGludCBydWxlTW9udGgsIGludCBydWxlRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBydWxlRGF5LCBpbnQgcnVsZU1pbGxpcykKKyAgICB7CisgICAgICAgIC8vIE1ha2UgYWRqdXN0bWVudHMgZm9yIHN0YXJ0VGltZU1vZGUgYW5kIGVuZFRpbWVNb2RlCisgICAgICAgIAorICAgICAgICBtaWxsaXMgKz0gbWlsbGlzRGVsdGE7CisgICAgICAgIAorICAgICAgICB3aGlsZSAobWlsbGlzID49IE1JTExJU19QRVJfREFZKSB7CisgICAgICAgICAgICBtaWxsaXMgLT0gTUlMTElTX1BFUl9EQVk7CisgICAgICAgICAgICArK2RheU9mTW9udGg7CisgICAgICAgICAgICBkYXlPZldlZWsgPSAxICsgKGRheU9mV2VlayAlIDcpOyAvLyBkYXlPZldlZWsgaXMgb25lLWJhc2VkCisgICAgICAgICAgICBpZiAoZGF5T2ZNb250aCA+IG1vbnRoTGVuKSB7CisgICAgICAgICAgICAgICAgZGF5T2ZNb250aCA9IDE7CisgICAgICAgICAgICAgICAgLyogV2hlbiBpbmNyZW1lbnRpbmcgdGhlIG1vbnRoLCBpdCBpcyBkZXNpcmFibGUgdG8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgKiBmcm9tIERFQ0VNQkVSIHRvIERFQ0VNQkVSKzEsIHNpbmNlIHdlIHVzZSB0aGUgcmVzdWx0IHRvCisgICAgICAgICAgICAgICAgICogY29tcGFyZSBhZ2FpbnN0IGEgcmVhbCBtb250aC4gV3JhcGFyb3VuZCBvZiB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgICAgKiBsZWFkcyB0byBidWcgNDE3MzYwNC4gKi8KKyAgICAgICAgICAgICAgICArK21vbnRoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlIChtaWxsaXMgPCAwKSB7CisgICAgICAgICAgICBtaWxsaXMgKz0gTUlMTElTX1BFUl9EQVk7CisgICAgICAgICAgICAtLWRheU9mTW9udGg7CisgICAgICAgICAgICBkYXlPZldlZWsgPSAxICsgKChkYXlPZldlZWsrNSkgJSA3KTsgLy8gZGF5T2ZXZWVrIGlzIG9uZS1iYXNlZAorICAgICAgICAgICAgaWYgKGRheU9mTW9udGggPCAxKSB7CisgICAgICAgICAgICAgICAgZGF5T2ZNb250aCA9IHByZXZNb250aExlbjsKKyAgICAgICAgICAgICAgICAtLW1vbnRoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobW9udGggPCBydWxlTW9udGgpIHJldHVybiAtMTsKKyAgICAgICAgZWxzZSBpZiAobW9udGggPiBydWxlTW9udGgpIHJldHVybiAxOworCisgICAgICAgIGludCBydWxlRGF5T2ZNb250aCA9IDA7CisKKyAgICAgICAgLy8gQWRqdXN0IHRoZSBydWxlRGF5IHRvIHRoZSBtb250aExlbiwgZm9yIG5vbi1sZWFwIHllYXIgRmVicnVhcnkgMjkgcnVsZSBkYXlzLgorICAgICAgICBpZiAocnVsZURheSA+IG1vbnRoTGVuKSB7CisgICAgICAgICAgICBydWxlRGF5ID0gbW9udGhMZW47CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKHJ1bGVNb2RlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgRE9NX01PREU6CisgICAgICAgICAgICBydWxlRGF5T2ZNb250aCA9IHJ1bGVEYXk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfSU5fTU9OVEhfTU9ERToKKyAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSBydWxlRGF5IGlzIHRoZSBkYXktb2Ytd2Vlay1pbi1tb250aAorICAgICAgICAgICAgaWYgKHJ1bGVEYXkgPiAwKQorICAgICAgICAgICAgICAgIHJ1bGVEYXlPZk1vbnRoID0gMSArIChydWxlRGF5IC0gMSkgKiA3ICsKKyAgICAgICAgICAgICAgICAgICAgKDcgKyBydWxlRGF5T2ZXZWVrIC0gKGRheU9mV2VlayAtIGRheU9mTW9udGggKyAxKSkgJSA3OworICAgICAgICAgICAgZWxzZSAvLyBBc3N1bWUgcnVsZURheSA8IDAgaGVyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJ1bGVEYXlPZk1vbnRoID0gbW9udGhMZW4gKyAocnVsZURheSArIDEpICogNyAtCisgICAgICAgICAgICAgICAgICAgICg3ICsgKGRheU9mV2VlayArIG1vbnRoTGVuIC0gZGF5T2ZNb250aCkgLSBydWxlRGF5T2ZXZWVrKSAlIDc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfR0VfRE9NX01PREU6CisgICAgICAgICAgICBydWxlRGF5T2ZNb250aCA9IHJ1bGVEYXkgKworICAgICAgICAgICAgICAgICg0OSArIHJ1bGVEYXlPZldlZWsgLSBydWxlRGF5IC0gZGF5T2ZXZWVrICsgZGF5T2ZNb250aCkgJSA3OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9XX0xFX0RPTV9NT0RFOgorICAgICAgICAgICAgcnVsZURheU9mTW9udGggPSBydWxlRGF5IC0KKyAgICAgICAgICAgICAgICAoNDkgLSBydWxlRGF5T2ZXZWVrICsgcnVsZURheSArIGRheU9mV2VlayAtIGRheU9mTW9udGgpICUgNzsKKyAgICAgICAgICAgIC8vIE5vdGUgYXQgdGhpcyBwb2ludCBydWxlRGF5T2ZNb250aCBtYXkgYmUgPDEsIGFsdGhvdWdoIGl0IHdpbGwKKyAgICAgICAgICAgIC8vIGJlID49MSBmb3Igd2VsbC1mb3JtZWQgcnVsZXMuCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXlPZk1vbnRoIDwgcnVsZURheU9mTW9udGgpIHJldHVybiAtMTsKKyAgICAgICAgZWxzZSBpZiAoZGF5T2ZNb250aCA+IHJ1bGVEYXlPZk1vbnRoKSByZXR1cm4gMTsKKworICAgICAgICBpZiAobWlsbGlzIDwgcnVsZU1pbGxpcyl7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9ZWxzZSBpZiAobWlsbGlzID4gcnVsZU1pbGxpcyl7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZGF0YSBuZWVkZWQgZm9yIHN0cmVhbWluZyBtdXRhdGVkIFNpbXBsZVRpbWVab25lcyBpbiBKREsxNAorICAgIHByaXZhdGUgaW50IHJhdzsvLyB0aGUgVGltZVpvbmUncyByYXcgR01UIG9mZnNldCAKKyAgICBwcml2YXRlIGludCBkc3QgPSAzNjAwMDAwOworICAgIHByaXZhdGUgU1RaSW5mbyB4aW5mbyA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrOyAgIC8vIHRoZSBtb250aCwgZGF5LCBET1csIGFuZCB0aW1lIERTVCBzdGFydHMKKyAgICBwcml2YXRlIGludCBzdGFydFRpbWU7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRUaW1lTW9kZSwgZW5kVGltZU1vZGU7IC8vIE1vZGUgZm9yIHN0YXJ0VGltZSwgZW5kVGltZTsgc2VlIFRpbWVNb2RlCisgICAgcHJpdmF0ZSBpbnQgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrOyAvLyB0aGUgbW9udGgsIGRheSwgRE9XLCBhbmQgdGltZSBEU1QgZW5kcworICAgIHByaXZhdGUgaW50IGVuZFRpbWU7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRZZWFyOyAgLy8gdGhlIHllYXIgdGhlc2UgRFNUIHJ1bGVzIHRvb2sgZWZmZWN0IAorICAgIHByaXZhdGUgYm9vbGVhbiB1c2VEYXlsaWdodDsgLy8gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyBUaW1lWm9uZSB1c2VzIERTVAorICAgIHByaXZhdGUgaW50IHN0YXJ0TW9kZSwgZW5kTW9kZTsgICAvLyBmbGFncyBpbmRpY2F0aW5nIHdoYXQga2luZCBvZiBydWxlcyB0aGUgRFNUIHJ1bGVzIGFyZQorICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCl7CisgICAgICAgIHJldHVybiB1c2VEYXlsaWdodDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0aGlzKTsKKyAgICAgICAgZ2Muc2V0VGltZShkYXRlKTsKKyAgICAgICAgcmV0dXJuIGdjLmluRGF5bGlnaHRUaW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlVGltZVpvbmUoaW50IHJhdywgIFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0TW9udGgsIGludCBzdGFydERheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0RGF5T2ZXZWVrLCBpbnQgc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZE1vbnRoLCBpbnQgZW5kRGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kRGF5T2ZXZWVrLCBpbnQgZW5kVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZFRpbWVNb2RlLGludCBkc3QpeworICAgICAgICAvKnRoaXMobmV3IGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZShyYXdPZmZzZXRHTVQsIElELCBzYXZpbmdzU3RhcnRNb250aCwgc2F2aW5nc1N0YXJ0RGF5LAorICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydERheU9mV2Vlaywgc2F2aW5nc1N0YXJ0VGltZSwgc2F2aW5nc0VuZE1vbnRoLAorICAgICAgICAgICAgICAgIHNhdmluZ3NFbmREYXksIHNhdmluZ3NFbmREYXlPZldlZWssIHNhdmluZ3NFbmRUaW1lLCBzYXZpbmdzRFNUKSwgSUQpOyovCisgICAgICAgIGNvbnN0cnVjdChyYXcsCisgICAgICAgICAgICAgICAgICBzdGFydE1vbnRoLCBzdGFydERheSwgc3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBzdGFydFRpbWUsIHN0YXJ0VGltZU1vZGUsCisgICAgICAgICAgICAgICAgICBlbmRNb250aCwgZW5kRGF5LCBlbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBlbmRUaW1lLCBlbmRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgIGRzdCk7CisgICAgfQorCisvLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoKKyAgICBTaW1wbGVUaW1lWm9uZShpbnQgcmF3T2Zmc2V0R01ULCBTdHJpbmcgSUQsCisgICAgICAgIGludCBzYXZpbmdzU3RhcnRNb250aCwgaW50IHNhdmluZ3NTdGFydERheSwKKyAgICAgICAgaW50IHNhdmluZ3NTdGFydERheU9mV2VlaywgaW50IHNhdmluZ3NTdGFydFRpbWUsCisgICAgICAgIGludCBzYXZpbmdzRW5kTW9udGgsIGludCBzYXZpbmdzRW5kRGF5LAorICAgICAgICBpbnQgc2F2aW5nc0VuZERheU9mV2VlaywgaW50IHNhdmluZ3NFbmRUaW1lKQorICAgIHsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldEdNVCwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydE1vbnRoLCBzYXZpbmdzU3RhcnREYXksIHNhdmluZ3NTdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRNb250aCwgc2F2aW5nc0VuZERheSwgc2F2aW5nc0VuZERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5NSUxMSVNfUEVSX0RBWSk7CisgICAgfQorKi8KKy8vICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvKgorICAgIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXRHTVQsIFN0cmluZyBJRCwKKyAgICAgICAgaW50IHNhdmluZ3NTdGFydE1vbnRoLCBpbnQgc2F2aW5nc1N0YXJ0RGF5LAorICAgICAgICBpbnQgc2F2aW5nc1N0YXJ0RGF5T2ZXZWVrLCBpbnQgc2F2aW5nc1N0YXJ0VGltZSwKKyAgICAgICAgaW50IHNhdmluZ3NFbmRNb250aCwgaW50IHNhdmluZ3NFbmREYXksCisgICAgICAgIGludCBzYXZpbmdzRW5kRGF5T2ZXZWVrLCBpbnQgc2F2aW5nc0VuZFRpbWUsCisgICAgICAgIGludCBzYXZpbmdzRFNUKQorICAgIHsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldEdNVCwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydE1vbnRoLCBzYXZpbmdzU3RhcnREYXksIHNhdmluZ3NTdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRNb250aCwgc2F2aW5nc0VuZERheSwgc2F2aW5nc0VuZERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgICBzYXZpbmdzRFNUKTsKKyAgICB9CisgICAgKi8KKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBjb25zdHJ1Y3Rpb24gbWV0aG9kLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb25zdHJ1Y3QoaW50IHJhdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydE1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0RGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0RGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0VGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFRpbWVNb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZE1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZERheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkc3QpIHsKKyAgICAgICAgdGhpcy5yYXcgICAgICAgICAgICA9IHJhdzsKKyAgICAgICAgdGhpcy5zdGFydE1vbnRoICAgICA9IHN0YXJ0TW9udGg7CisgICAgICAgIHRoaXMuc3RhcnREYXkgICAgICAgPSBzdGFydERheTsKKyAgICAgICAgdGhpcy5zdGFydERheU9mV2VlayA9IHN0YXJ0RGF5T2ZXZWVrOworICAgICAgICB0aGlzLnN0YXJ0VGltZSAgICAgID0gc3RhcnRUaW1lOworICAgICAgICB0aGlzLnN0YXJ0VGltZU1vZGUgID0gc3RhcnRUaW1lTW9kZTsKKyAgICAgICAgdGhpcy5lbmRNb250aCAgICAgICA9IGVuZE1vbnRoOworICAgICAgICB0aGlzLmVuZERheSAgICAgICAgID0gZW5kRGF5OworICAgICAgICB0aGlzLmVuZERheU9mV2VlayAgID0gZW5kRGF5T2ZXZWVrOworICAgICAgICB0aGlzLmVuZFRpbWUgICAgICAgID0gZW5kVGltZTsKKyAgICAgICAgdGhpcy5lbmRUaW1lTW9kZSAgICA9IGVuZFRpbWVNb2RlOworICAgICAgICB0aGlzLmRzdCAgICAgICAgICAgID0gZHN0OworICAgICAgICB0aGlzLnN0YXJ0WWVhciAgICAgID0gMDsKKyAgICAgICAgdGhpcy5zdGFydE1vZGUgICAgICA9IERPTV9NT0RFOworICAgICAgICB0aGlzLmVuZE1vZGUgICAgICAgID0gRE9NX01PREU7CisKKyAgICAgICAgZGVjb2RlUnVsZXMoKTsKKworICAgICAgICBpZiAoZHN0IDw9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZGVjb2RlUnVsZXMoKXsKKyAgICAgICAgZGVjb2RlU3RhcnRSdWxlKCk7CisgICAgICAgIGRlY29kZUVuZFJ1bGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGhlIHN0YXJ0IHJ1bGUgYW5kIHZhbGlkYXRlIHRoZSBwYXJhbWV0ZXJzLiAgVGhlIHBhcmFtZXRlcnMgYXJlCisgICAgICogZXhwZWN0ZWQgdG8gYmUgaW4gZW5jb2RlZCBmb3JtLCB3aGljaCByZXByZXNlbnRzIHRoZSB2YXJpb3VzIHJ1bGUgbW9kZXMKKyAgICAgKiBieSBuZWdhdGluZyBvciB6ZXJvaW5nIGNlcnRhaW4gdmFsdWVzLiAgUmVwcmVzZW50YXRpb24gZm9ybWF0cyBhcmU6CisgICAgICogPHA+CisgICAgICogPHByZT4KKyAgICAgKiAgICAgICAgICAgIERPV19JTl9NT05USCAgRE9NICAgIERPVz49RE9NICBET1c8PURPTSAgbm8gRFNUCisgICAgICogICAgICAgICAgICAtLS0tLS0tLS0tLS0gIC0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0tLS0tLS0KKyAgICAgKiBtb250aCAgICAgICAwLi4xMSAgICAgICAgc2FtZSAgICBzYW1lICAgICAgc2FtZSAgICAgZG9uJ3QgY2FyZQorICAgICAqIGRheSAgICAgICAgLTUuLjUgICAgICAgICAxLi4zMSAgIDEuLjMxICAgIC0xLi4tMzEgICAwCisgICAgICogZGF5T2ZXZWVrICAgMS4uNyAgICAgICAgIDAgICAgICAtMS4uLTcgICAgLTEuLi03ICAgIGRvbid0IGNhcmUKKyAgICAgKiB0aW1lICAgICAgICAwLi5PTkVEQVkgICAgc2FtZSAgICBzYW1lICAgICAgc2FtZSAgICAgZG9uJ3QgY2FyZQorICAgICAqIDwvcHJlPgorICAgICAqIFRoZSByYW5nZSBmb3IgbW9udGggZG9lcyBub3QgaW5jbHVkZSBVTkRFQ0lNQkVSIHNpbmNlIHRoaXMgY2xhc3MgaXMKKyAgICAgKiByZWFsbHkgc3BlY2lmaWMgdG8gR3JlZ29yaWFuQ2FsZW5kYXIsIHdoaWNoIGRvZXMgbm90IHVzZSB0aGF0IG1vbnRoLgorICAgICAqIFRoZSByYW5nZSBmb3IgdGltZSBpbmNsdWRlcyBPTkVEQVkgKHZzLiBlbmRpbmcgYXQgT05FREFZLTEpIGJlY2F1c2UgdGhlCisgICAgICogZW5kIHJ1bGUgaXMgYW4gZXhjbHVzaXZlIGxpbWl0IHBvaW50LiAgVGhhdCBpcywgdGhlIHJhbmdlIG9mIHRpbWVzIHRoYXQKKyAgICAgKiBhcmUgaW4gRFNUIGluY2x1ZGUgdGhvc2UgPj0gdGhlIHN0YXJ0IGFuZCA8IHRoZSBlbmQuICBGb3IgdGhpcyByZWFzb24sCisgICAgICogaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNwZWNpZnkgYW4gZW5kIG9mIE9ORURBWSBpbiBvcmRlciB0byBpbmNsdWRlIHRoZQorICAgICAqIGVudGlyZSBkYXkuICBBbHRob3VnaCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGltZSAwIG9mIHRoZSBmb2xsb3dpbmcgZGF5LAorICAgICAqIGl0J3Mgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoYXQsIGZvciBleGFtcGxlLCBvbiBEZWNlbWJlciAzMS4KKyAgICAgKiBXaGlsZSBhcmd1YWJseSB0aGUgc3RhcnQgcmFuZ2Ugc2hvdWxkIHN0aWxsIGJlIDAuLk9ORURBWS0xLCB3ZSBrZWVwCisgICAgICogdGhlIHN0YXJ0IGFuZCBlbmQgcmFuZ2VzIHRoZSBzYW1lIGZvciBjb25zaXN0ZW5jeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZGVjb2RlU3RhcnRSdWxlKCkgeworCisgICAgICAgIHVzZURheWxpZ2h0ID0gKGJvb2xlYW4pKChzdGFydERheSAhPSAwKSAmJiAoZW5kRGF5ICE9IDApID8gdHJ1ZSA6IGZhbHNlICApOworICAgICAgICBpZiAodXNlRGF5bGlnaHQgJiYgZHN0ID09IDApIHsKKyAgICAgICAgICAgIGRzdCA9IFRpbWVab25lLk1JTExJU19QRVJfREFZOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydERheSAhPSAwKSB7CisgICAgICAgICAgICBpZiAoc3RhcnRNb250aCA8IENhbGVuZGFyLkpBTlVBUlkgfHwgc3RhcnRNb250aCA+IENhbGVuZGFyLkRFQ0VNQkVSKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSA8IDAgfHwgc3RhcnRUaW1lID49IFRpbWVab25lLk1JTExJU19QRVJfREFZIHx8CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lTW9kZSA8IFdBTExfVElNRSB8fCBzdGFydFRpbWVNb2RlID4gVVRDX1RJTUUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnREYXlPZldlZWsgPT0gMCkgeworICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPTV9NT0RFOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXlPZldlZWsgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPV19JTl9NT05USF9NT0RFOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID0gKGludCktc3RhcnREYXlPZldlZWs7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydERheSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPV19HRV9ET01fTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5ID0gKGludCktc3RhcnREYXk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydE1vZGUgPSBET1dfTEVfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0RGF5T2ZXZWVrID4gQ2FsZW5kYXIuU0FUVVJEQVkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdGFydE1vZGUgPT0gRE9XX0lOX01PTlRIX01PREUpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXkgPCAtNSB8fCBzdGFydERheSA+IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnREYXkgPCAxIHx8IHN0YXJ0RGF5ID4gc3RhdGljTW9udGhMZW5ndGhbc3RhcnRNb250aF0pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGhlIGVuZCBydWxlIGFuZCB2YWxpZGF0ZSB0aGUgcGFyYW1ldGVycy4gIFRoaXMgbWV0aG9kIGlzIGV4YWN0bHkKKyAgICAgKiBhbmFsb2dvdXMgdG8gZGVjb2RlU3RhcnRSdWxlKCkuCisgICAgICogQHNlZSAjZGVjb2RlU3RhcnRSdWxlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRlY29kZUVuZFJ1bGUoKSB7CisgICAgICAgIHVzZURheWxpZ2h0ID0gKGJvb2xlYW4pKChzdGFydERheSAhPSAwKSAmJiAoZW5kRGF5ICE9IDApID8gdHJ1ZSA6IGZhbHNlKTsKKyAgICAgICAgaWYgKHVzZURheWxpZ2h0ICYmIGRzdCA9PSAwKSB7CisgICAgICAgICAgICBkc3QgPSBUaW1lWm9uZS5NSUxMSVNfUEVSX0RBWTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kRGF5ICE9IDApIHsKKyAgICAgICAgICAgIGlmIChlbmRNb250aCA8IENhbGVuZGFyLkpBTlVBUlkgfHwgZW5kTW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbmRUaW1lIDwgMCB8fCBlbmRUaW1lID4gVGltZVpvbmUuTUlMTElTX1BFUl9EQVkgfHwKKyAgICAgICAgICAgICAgICBlbmRUaW1lTW9kZSA8IFdBTExfVElNRSB8fCBlbmRUaW1lTW9kZSA+IFVUQ19USU1FKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA9PSAwKSB7CisgICAgICAgICAgICAgICAgZW5kTW9kZSA9IERPTV9NT0RFOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kRGF5T2ZXZWVrID4gMCkgeworICAgICAgICAgICAgICAgICAgICBlbmRNb2RlID0gRE9XX0lOX01PTlRIX01PREU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kRGF5T2ZXZWVrID0gKGludCktZW5kRGF5T2ZXZWVrOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kRGF5ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZW5kTW9kZSA9IERPV19HRV9ET01fTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheSA9IChpbnQpLWVuZERheTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vZGUgPSBET1dfTEVfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA+IENhbGVuZGFyLlNBVFVSREFZKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZW5kTW9kZSA9PSBET1dfSU5fTU9OVEhfTU9ERSkgeworICAgICAgICAgICAgICAgIGlmIChlbmREYXkgPCAtNSB8fCBlbmREYXkgPiA1KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVuZERheTwxIHx8IGVuZERheSA+IHN0YXRpY01vbnRoTGVuZ3RoW2VuZE1vbnRoXSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFNpbXBsZVRpbWVab25lIGVxdWl2YWxlbnQgdG8gdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgb2JqIGlzIGEgU2ltcGxlVGltZVpvbmUgZXF1aXZhbGVudCB0byB0aGlzCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKXsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdGhhdCA9IChTaW1wbGVUaW1lWm9uZSkgb2JqOworICAgICAgICByZXR1cm4gcmF3ICAgICA9PSB0aGF0LnJhdyAmJgorICAgICAgICAgICAgdXNlRGF5bGlnaHQgICAgID09IHRoYXQudXNlRGF5bGlnaHQgJiYKKyAgICAgICAgICAgIGlkRXF1YWxzKGdldElEKCksdGhhdC5nZXRJRCgpKSAmJgorICAgICAgICAgICAgKCF1c2VEYXlsaWdodAorICAgICAgICAgICAgIC8vIE9ubHkgY2hlY2sgcnVsZXMgaWYgdXNpbmcgRFNUCisgICAgICAgICAgICAgfHwgKGRzdCAgICAgICAgICAgID09IHRoYXQuZHN0ICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSAgICAgID09IHRoYXQuc3RhcnRNb2RlICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0TW9udGggICAgID09IHRoYXQuc3RhcnRNb250aCAmJgorICAgICAgICAgICAgICAgICBzdGFydERheSAgICAgICA9PSB0aGF0LnN0YXJ0RGF5ICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID09IHRoYXQuc3RhcnREYXlPZldlZWsgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnRUaW1lICAgICAgPT0gdGhhdC5zdGFydFRpbWUgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnRUaW1lTW9kZSAgPT0gdGhhdC5zdGFydFRpbWVNb2RlICYmCisgICAgICAgICAgICAgICAgIGVuZE1vZGUgICAgICAgID09IHRoYXQuZW5kTW9kZSAmJgorICAgICAgICAgICAgICAgICBlbmRNb250aCAgICAgICA9PSB0aGF0LmVuZE1vbnRoICYmCisgICAgICAgICAgICAgICAgIGVuZERheSAgICAgICAgID09IHRoYXQuZW5kRGF5ICYmCisgICAgICAgICAgICAgICAgIGVuZERheU9mV2VlayAgID09IHRoYXQuZW5kRGF5T2ZXZWVrICYmCisgICAgICAgICAgICAgICAgIGVuZFRpbWUgICAgICAgID09IHRoYXQuZW5kVGltZSAmJgorICAgICAgICAgICAgICAgICBlbmRUaW1lTW9kZSAgICA9PSB0aGF0LmVuZFRpbWVNb2RlICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0WWVhciAgICAgID09IHRoYXQuc3RhcnRZZWFyICkpOworCisgICAgfQorICAgIHByaXZhdGUgYm9vbGVhbiBpZEVxdWFscyhTdHJpbmcgaWQxLCBTdHJpbmcgaWQyKXsKKyAgICAgICAgaWYoaWQxPT1udWxsICYmIGlkMj09bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZihpZDEhPW51bGwgJiYgaWQyIT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiBpZDEuZXF1YWxzKGlkMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaCBjb2RlLgorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZQorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCl7CisgICAgICAgIGludCByZXQgPSAoaW50KSggc3VwZXIuaGFzaENvZGUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhdyBeIChyYXc+Pj44KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1c2VEYXlsaWdodD8wOjEpKTsKKyAgICAgICAgaWYoIXVzZURheWxpZ2h0KXsKKyAgICAgICAgICAgICAgICByZXQgKz0gKGludCkoZHN0IF4gKGRzdD4+PjEwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSBeIChzdGFydE1vZGU+Pj4xMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydE1vbnRoIF4gKHN0YXJ0TW9udGg+Pj4xMikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERheSBeIChzdGFydERheT4+PjEzKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrIF4gKHN0YXJ0RGF5T2ZXZWVrPj4+MTQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lIF4gKHN0YXJ0VGltZT4+PjE1KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgXiAoc3RhcnRUaW1lTW9kZT4+PjE2KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vZGUgXiAoZW5kTW9kZT4+PjE3KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vbnRoIF4gKGVuZE1vbnRoPj4+MTgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF5IF4gKGVuZERheT4+PjE5KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheU9mV2VlayBeIChlbmREYXlPZldlZWs+Pj4yMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lIF4gKGVuZFRpbWU+Pj4yMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lTW9kZSBeIChlbmRUaW1lTW9kZT4+PjIyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0WWVhciBeIChzdGFydFllYXI+Pj4yMykpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBjbG9uZSBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyB0aW1lIHpvbmUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgY2xvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoIHJhdywgZ2V0SUQoKSk7CisgICAgICAgIGNsb25lLnN0YXJ0TW9udGggICAgID0gc3RhcnRNb250aDsKKyAgICAgICAgY2xvbmUuc3RhcnREYXkgICAgICAgPSBzdGFydERheTsKKyAgICAgICAgY2xvbmUuc3RhcnREYXlPZldlZWsgPSBzdGFydERheU9mV2VlazsKKyAgICAgICAgY2xvbmUuc3RhcnRUaW1lICAgICAgPSBzdGFydFRpbWU7CisgICAgICAgIGNsb25lLnN0YXJ0VGltZU1vZGUgID0gc3RhcnRUaW1lTW9kZTsKKyAgICAgICAgY2xvbmUuZW5kTW9udGggICAgICAgPSBlbmRNb250aDsKKyAgICAgICAgY2xvbmUuZW5kRGF5ICAgICAgICAgPSBlbmREYXk7CisgICAgICAgIGNsb25lLmVuZERheU9mV2VlayAgID0gZW5kRGF5T2ZXZWVrOworICAgICAgICBjbG9uZS5lbmRUaW1lICAgICAgICA9IGVuZFRpbWU7CisgICAgICAgIGNsb25lLmVuZFRpbWVNb2RlICAgID0gZW5kVGltZU1vZGU7CisgICAgICAgIGNsb25lLmRzdCAgICAgICAgICAgID0gZHN0OworICAgICAgICBjbG9uZS5zdGFydFllYXIgICAgICA9IHN0YXJ0WWVhcjsKKyAgICAgICAgY2xvbmUuc3RhcnRNb2RlICAgICAgPSBzdGFydE1vZGU7CisgICAgICAgIGNsb25lLmVuZE1vZGUgICAgICAgID0gZW5kTW9kZTsKKyAgICAgICAgY2xvbmUudXNlRGF5bGlnaHQgICAgPSB1c2VEYXlsaWdodDsKKyAgICAgICAgcmV0dXJuIGNsb25lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aHIpIHsKKyAgICAgICAgaWYoIShvdGhyIGluc3RhbmNlb2YgU2ltcGxlVGltZVpvbmUpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgU2ltcGxlVGltZVpvbmUgb3RoZXIgPSAoU2ltcGxlVGltZVpvbmUpb3RocjsKKyAgICAgICAgcmV0dXJuIG90aGVyICE9IG51bGwgJiYKKyAgICAgICAgcmF3ICAgICA9PSBvdGhlci5yYXcgJiYKKyAgICAgICAgdXNlRGF5bGlnaHQgICAgID09IG90aGVyLnVzZURheWxpZ2h0ICYmCisgICAgICAgICghdXNlRGF5bGlnaHQKKyAgICAgICAgIC8vIE9ubHkgY2hlY2sgcnVsZXMgaWYgdXNpbmcgRFNUCisgICAgICAgICB8fCAoZHN0ICAgICA9PSBvdGhlci5kc3QgJiYKKyAgICAgICAgICAgICBzdGFydE1vZGUgICAgICA9PSBvdGhlci5zdGFydE1vZGUgJiYKKyAgICAgICAgICAgICBzdGFydE1vbnRoICAgICA9PSBvdGhlci5zdGFydE1vbnRoICYmCisgICAgICAgICAgICAgc3RhcnREYXkgICAgICAgPT0gb3RoZXIuc3RhcnREYXkgJiYKKyAgICAgICAgICAgICBzdGFydERheU9mV2VlayA9PSBvdGhlci5zdGFydERheU9mV2VlayAmJgorICAgICAgICAgICAgIHN0YXJ0VGltZSAgICAgID09IG90aGVyLnN0YXJ0VGltZSAmJgorICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgID09IG90aGVyLnN0YXJ0VGltZU1vZGUgJiYKKyAgICAgICAgICAgICBlbmRNb2RlICAgICAgICA9PSBvdGhlci5lbmRNb2RlICYmCisgICAgICAgICAgICAgZW5kTW9udGggICAgICAgPT0gb3RoZXIuZW5kTW9udGggJiYKKyAgICAgICAgICAgICBlbmREYXkgICAgICAgICA9PSBvdGhlci5lbmREYXkgJiYKKyAgICAgICAgICAgICBlbmREYXlPZldlZWsgICA9PSBvdGhlci5lbmREYXlPZldlZWsgJiYKKyAgICAgICAgICAgICBlbmRUaW1lICAgICAgICA9PSBvdGhlci5lbmRUaW1lICYmCisgICAgICAgICAgICAgZW5kVGltZU1vZGUgICAgPT0gb3RoZXIuZW5kVGltZU1vZGUgJiYKKyAgICAgICAgICAgICBzdGFydFllYXIgICAgICA9PSBvdGhlci5zdGFydFllYXIpKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1N0cmluZ1Rva2VuaXplci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU3RyaW5nVG9rZW5pemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNDNkYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1N0cmluZ1Rva2VuaXplci5qYXZhCkBAIC0wLDAgKzEsNjg4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTm9TdWNoRWxlbWVudEV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiA8cD5UaGUgc3RyaW5nIHRva2VuaXplciBjbGFzcyBhbGxvd3MgYW4gYXBwbGljYXRpb24gdG8gYnJlYWsgYSBzdHJpbmcgCisgKiBpbnRvIHRva2VucyBieSBwZXJmb3JtaW5nIGNvZGUgcG9pbnQgY29tcGFyaXNvbi4gCisgKiBUaGUgPGNvZGU+U3RyaW5nVG9rZW5pemVyPC9jb2RlPiBtZXRob2RzIGRvIG5vdCBkaXN0aW5ndWlzaCAKKyAqIGFtb25nIGlkZW50aWZpZXJzLCBudW1iZXJzLCBhbmQgcXVvdGVkIHN0cmluZ3MsIG5vciBkbyB0aGV5IHJlY29nbml6ZSAKKyAqIGFuZCBza2lwIGNvbW1lbnRzLjwvcD4KKyAqIDxwPgorICogVGhlIHNldCBvZiBkZWxpbWl0ZXJzICh0aGUgY29kZXBvaW50cyB0aGF0IHNlcGFyYXRlIHRva2VucykgbWF5IGJlIAorICogc3BlY2lmaWVkIGVpdGhlciBhdCBjcmVhdGlvbiB0aW1lIG9yIG9uIGEgcGVyLXRva2VuIGJhc2lzLiAKKyAqIDwvcD4KKyAqIDxwPgorICogQW4gaW5zdGFuY2Ugb2YgPGNvZGU+U3RyaW5nVG9rZW5pemVyPC9jb2RlPiBiZWhhdmVzIGluIG9uZSBvZiB0aHJlZSB3YXlzLCAKKyAqIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IHdhcyBjcmVhdGVkIHdpdGggdGhlIDxjb2RlPnJldHVybkRlbGltczwvY29kZT4gCisgKiBhbmQgPGNvZGU+Y29hbGVzY2VEZWxpbXM8L2NvZGU+CisgKiBmbGFncyBoYXZpbmcgdGhlIHZhbHVlIDxjb2RlPnRydWU8L2NvZGU+IG9yIDxjb2RlPmZhbHNlPC9jb2RlPjogCisgKiA8dWw+CisgKiA8bGk+SWYgcmV0dXJuRGVsaW1zIGlzIDxjb2RlPmZhbHNlPC9jb2RlPiwgZGVsaW1pdGVyIGNvZGUgcG9pbnRzIHNlcnZlIHRvIAorICogc2VwYXJhdGUgdG9rZW5zLiBBIHRva2VuIGlzIGEgbWF4aW1hbCBzZXF1ZW5jZSBvZiBjb25zZWN1dGl2ZSAKKyAqIGNvZGUgcG9pbnRzIHRoYXQgYXJlIG5vdCBkZWxpbWl0ZXJzLiAKKyAqIDxsaT5JZiByZXR1cm5EZWxpbXMgaXMgPGNvZGU+dHJ1ZTwvY29kZT4sIGRlbGltaXRlciBjb2RlIHBvaW50cyBhcmUgCisgKiB0aGVtc2VsdmVzIGNvbnNpZGVyZWQgdG8gYmUgdG9rZW5zLiBJbiB0aGlzIGNhc2UsIGlmIGNvYWxlc2NlRGVsaW1zIGlzCisgKiA8Y29kZT50cnVlPC9jb2RlPiwgc3VjaCB0b2tlbnMgd2lsbCBiZSB0aGUgbWF4aW1hbCBzZXF1ZW5jZSBvZiBjb25zZWN1dGl2ZQorICogY29kZSBwb2ludHMgdGhhdCA8ZW0+YXJlPC9lbT4gZGVsaW1pdGVycy4gIElmIGNvYWxlc2NlRGVsaW1zIGlzIGZhbHNlLAorICogYSB0b2tlbiB3aWxsIGJlIHJlY2VpdmVkIGZvciBlYWNoIGRlbGltaXRlciBjb2RlIHBvaW50LgorICogPC91bD4KKyAqIDxwPkEgdG9rZW4gaXMgdGh1cyBlaXRoZXIgb25lIAorICogZGVsaW1pdGVyIGNvZGUgcG9pbnQsIGEgbWF4aW1hbCBzZXF1ZW5jZSBvZiBjb25zZWN1dGl2ZSBjb2RlIHBvaW50cyB0aGF0CisgKiBhcmUgZGVsaW1pdGVycywgb3IgYSBtYXhpbWFsIHNlcXVlbmNlIG9mIGNvbnNlY3V0aXZlIGNvZGUgCisgKiBwb2ludHMgdGhhdCBhcmUgbm90IGRlbGltaXRlcnMuCisgKiA8L3A+CisgKiA8cD4KKyAqIEEgPHR0PlN0cmluZ1Rva2VuaXplcjwvdHQ+IG9iamVjdCBpbnRlcm5hbGx5IG1haW50YWlucyBhIGN1cnJlbnQgCisgKiBwb3NpdGlvbiB3aXRoaW4gdGhlIHN0cmluZyB0byBiZSB0b2tlbml6ZWQuIFNvbWUgb3BlcmF0aW9ucyBhZHZhbmNlIHRoaXMgCisgKiBjdXJyZW50IHBvc2l0aW9uIHBhc3QgdGhlIGNvZGUgcG9pbnQgcHJvY2Vzc2VkLgorICogPC9wPgorICogPHA+CisgKiBBIHRva2VuIGlzIHJldHVybmVkIGJ5IHRha2luZyBhIHN1YnN0cmluZyBvZiB0aGUgc3RyaW5nIHRoYXQgd2FzIHVzZWQgdG8gCisgKiBjcmVhdGUgdGhlIDx0dD5TdHJpbmdUb2tlbml6ZXI8L3R0PiBvYmplY3QuCisgKiA8L3A+CisgKiA8cD4KKyAqIEV4YW1wbGUgb2YgdGhlIHVzZSBvZiB0aGUgZGVmYXVsdCBkZWxpbWl0ZXIgdG9rZW5pemVyLgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoInRoaXMgaXMgYSB0ZXN0Iik7CisgKiB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgKiAgICAgcHJpbnRsbihzdC5uZXh0VG9rZW4oKSk7CisgKiAgICAgfQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBwcmludHMgdGhlIGZvbGxvd2luZyBvdXRwdXQ6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIHRoaXMKKyAqICAgICBpcworICogICAgIGEKKyAqICAgICB0ZXN0CisgKiA8L3ByZT48L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiA8cD4KKyAqIEV4YW1wbGUgb2YgdGhlIHVzZSBvZiB0aGUgdG9rZW5pemVyIHdpdGggdXNlciBzcGVjaWZpZWQgZGVsaW1pdGVyLgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKAorICogICAgICJ0aGlzIGlzIGEgdGVzdCB3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyAmIzkyO3VkODAwJiM5Mjt1ZDgwMCYjOTI7dWRjMDAmIzkyO3VkYzAwIiwKKyAqICAgICAgICAgIiAmIzkyO3VkODAwJiM5Mjt1ZGMwMCIpOworICogICAgIHdoaWxlIChzdC5oYXNNb3JlVG9rZW5zKCkpIHsKKyAqICAgICAgICAgcHJpbnRsbihzdC5uZXh0VG9rZW4oKSk7CisgKiAgICAgfQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBwcmludHMgdGhlIGZvbGxvd2luZyBvdXRwdXQ6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIHRoaXMKKyAqICAgICBpcworICogICAgIGEKKyAqICAgICB0ZXN0CisgKiAgICAgd2l0aAorICogICAgIHN1cHBsZW1lbnRhcnkKKyAqICAgICBjaGFyYWN0ZXJzCisgKiAgICAgJiM5Mjt1ZDgwMAorICogICAgICYjOTI7dWRjMDAKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIDwvcD4KKyAqIEBhdXRob3Igc3luIHdlZQorICogQHN0YWJsZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHJpbmdUb2tlbml6ZXIgaW1wbGVtZW50cyBFbnVtZXJhdGlvbiAKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIEFsbCAKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpbSBhcmd1bWVudCBhcmUgdGhlIGRlbGltaXRlcnMgZm9yIHNlcGFyYXRpbmcgCisgICAgICogdG9rZW5zLjwvcD4gCisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIGZhbHNlLCB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgYXJlIAorICAgICAqIHNraXBwZWQgYW5kIG9ubHkgc2VydmUgYXMgc2VwYXJhdG9ycyBiZXR3ZWVuIHRva2Vucy48L3A+CisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIHRydWUsIHRoZW4gdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIAorICAgICAqIGFyZSBhbHNvIHJldHVybmVkIGFzIHRva2Vucywgb25lIHBlciBkZWxpbWl0ZXIuCisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBzdHIgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0ciwgVW5pY29kZVNldCBkZWxpbSwgYm9vbGVhbiByZXR1cm5kZWxpbXMpCisgICAgeworICAgICAgICB0aGlzKHN0ciwgZGVsaW0sIHJldHVybmRlbGltcywgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNvbnN0cnVjdHMgYSBzdHJpbmcgdG9rZW5pemVyIGZvciB0aGUgc3BlY2lmaWVkIHN0cmluZy4gQWxsIAorICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIGRlbGltIGFyZ3VtZW50IGFyZSB0aGUgZGVsaW1pdGVycyBmb3Igc2VwYXJhdGluZyAKKyAgICAgKiB0b2tlbnMuPC9wPiAKKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgZmFsc2UsIHRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVycyBhcmUgCisgICAgICogc2tpcHBlZCBhbmQgb25seSBzZXJ2ZSBhcyBzZXBhcmF0b3JzIGJldHdlZW4gdG9rZW5zLjwvcD4KKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgdHJ1ZSwgdGhlbiB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgCisgICAgICogYXJlIGFsc28gcmV0dXJuZWQgYXMgdG9rZW5zLiAgSWYgY29hbGVzY2VkZWxpbXMgaXMgdHJ1ZSwgb25lIHRva2VuCisgICAgICogaXMgcmV0dXJuZWQgZm9yIGVhY2ggcnVuIG9mIGRlbGltaXRlciBjaGFyYWN0ZXJzLCBvdGhlcndpc2Ugb25lCisgICAgICogdG9rZW4gaXMgcmV0dXJuZWQgcGVyIGRlbGltaXRlci4gIFNpbmNlIHN1cnJvZ2F0ZSBwYWlycyBjYW4gYmUKKyAgICAgKiBkZWxpbWl0ZXJzLCB0aGUgcmV0dXJuZWQgdG9rZW4gbWlnaHQgYmUgdHdvIGNoYXJzIGluIGxlbmd0aC48L3A+CisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQHBhcmFtIGNvYWxlc2NlZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiBhIHJ1biBvZiAKKyAgICAgKiAgICAgICAgZGVsaW1pdGVycyBhcyBhIHNpbmdsZSB0b2tlbiBvciBhcyBvbmUgdG9rZW4gcGVyIGRlbGltaXRlci4gIAorICAgICAqICAgICAgICBUaGlzIG9ubHkgdGFrZXMgZWZmZWN0IGlmIHJldHVybmRlbGltcyBpcyB0cnVlLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNC4zCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBVbmljb2RlU2V0IGRlbGltLCBib29sZWFuIHJldHVybmRlbGltcywgYm9vbGVhbiBjb2FsZXNjZWRlbGltcykKKyAgICB7CisgICAgICAgIG1fc291cmNlXyA9IHN0cjsKKyAgICAgICAgbV9sZW5ndGhfID0gc3RyLmxlbmd0aCgpOworICAgICAgICBpZiAoZGVsaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IEVNUFRZX0RFTElNSVRFUl87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2RlbGltaXRlcnNfID0gZGVsaW07ICAgCisgICAgICAgIH0KKyAgICAgICAgbV9yZXR1cm5EZWxpbWl0ZXJzXyA9IHJldHVybmRlbGltczsKKyAgICAgICAgbV9jb2FsZXNjZURlbGltaXRlcnNfID0gY29hbGVzY2VkZWxpbXM7CisgICAgICAgIG1fdG9rZW5PZmZzZXRfID0gLTE7CisgICAgICAgIG1fdG9rZW5TaXplXyA9IC0xOworICAgICAgICBpZiAobV9sZW5ndGhfID09IDApIHsKKyAgICAgICAgICAgIC8vIHN0cmluZyBsZW5ndGggMCwgbm8gdG9rZW5zCisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIGlmICghcmV0dXJuZGVsaW1zKSB7CisgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IGdldE5leHROb25EZWxpbWl0ZXIoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiBUaGUgCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgZGVsaW0gYXJndW1lbnQgYXJlIHRoZSBkZWxpbWl0ZXJzIGZvciBzZXBhcmF0aW5nIAorICAgICAqIHRva2Vucy48L3A+IAorICAgICAqIDxwPkRlbGltaXRlciBjaGFyYWN0ZXJzIHRoZW1zZWx2ZXMgd2lsbCBub3QgYmUgdHJlYXRlZCBhcyB0b2tlbnMuPC9wPgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBVbmljb2RlU2V0IGRlbGltKQorICAgIHsKKyAgICAgICAgdGhpcyhzdHIsIGRlbGltLCBmYWxzZSwgZmFsc2UpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIEFsbCAKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpbSBhcmd1bWVudCBhcmUgdGhlIGRlbGltaXRlcnMgZm9yIHNlcGFyYXRpbmcgCisgICAgICogdG9rZW5zLjwvcD4gCisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIGZhbHNlLCB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgYXJlIAorICAgICAqIHNraXBwZWQgYW5kIG9ubHkgc2VydmUgYXMgc2VwYXJhdG9ycyBiZXR3ZWVuIHRva2Vucy48L3A+CisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIHRydWUsIHRoZW4gdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIAorICAgICAqIGFyZSBhbHNvIHJldHVybmVkIGFzIHRva2Vucywgb25lIHBlciBkZWxpbWl0ZXIuCisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBzdHIgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0ciwgU3RyaW5nIGRlbGltLCBib29sZWFuIHJldHVybmRlbGltcykKKyAgICB7CisgICAgICAgIHRoaXMoc3RyLCBkZWxpbSwgcmV0dXJuZGVsaW1zLCBmYWxzZSk7IC8vIGphdmEgZGVmYXVsdCBiZWhhdmlvcgorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNvbnN0cnVjdHMgYSBzdHJpbmcgdG9rZW5pemVyIGZvciB0aGUgc3BlY2lmaWVkIHN0cmluZy4gQWxsIAorICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIGRlbGltIGFyZ3VtZW50IGFyZSB0aGUgZGVsaW1pdGVycyBmb3Igc2VwYXJhdGluZyAKKyAgICAgKiB0b2tlbnMuPC9wPiAKKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgZmFsc2UsIHRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVycyBhcmUgCisgICAgICogc2tpcHBlZCBhbmQgb25seSBzZXJ2ZSBhcyBzZXBhcmF0b3JzIGJldHdlZW4gdG9rZW5zLjwvcD4KKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgdHJ1ZSwgdGhlbiB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgCisgICAgICogYXJlIGFsc28gcmV0dXJuZWQgYXMgdG9rZW5zLiAgSWYgY29hbGVzY2VkZWxpbXMgaXMgdHJ1ZSwgb25lIHRva2VuCisgICAgICogaXMgcmV0dXJuZWQgZm9yIGVhY2ggcnVuIG9mIGRlbGltaXRlciBjaGFyYWN0ZXJzLCBvdGhlcndpc2Ugb25lCisgICAgICogdG9rZW4gaXMgcmV0dXJuZWQgcGVyIGRlbGltaXRlci4gIFNpbmNlIHN1cnJvZ2F0ZSBwYWlycyBjYW4gYmUKKyAgICAgKiBkZWxpbWl0ZXJzLCB0aGUgcmV0dXJuZWQgdG9rZW4gbWlnaHQgYmUgdHdvIGNoYXJzIGluIGxlbmd0aC48L3A+CisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQHBhcmFtIGNvYWxlc2NlZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiBhIHJ1biBvZiAKKyAgICAgKiAgICAgICAgZGVsaW1pdGVycyBhcyBhIHNpbmdsZSB0b2tlbiBvciBhcyBvbmUgdG9rZW4gcGVyIGRlbGltaXRlci4gIAorICAgICAqICAgICAgICBUaGlzIG9ubHkgdGFrZXMgZWZmZWN0IGlmIHJldHVybmRlbGltcyBpcyB0cnVlLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNC4zCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBTdHJpbmcgZGVsaW0sIGJvb2xlYW4gcmV0dXJuZGVsaW1zLCBib29sZWFuIGNvYWxlc2NlZGVsaW1zKQorICAgIHsKKyAgICAgICAgLy8gZG9uJ3QgaWdub3JlIHdoaXRlc3BhY2UKKyAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IEVNUFRZX0RFTElNSVRFUl87CisgICAgICAgIGlmIChkZWxpbSAhPSBudWxsICYmIGRlbGltLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBtX2RlbGltaXRlcnNfLmFkZEFsbChkZWxpbSk7CisgICAgICAgICAgICBjaGVja0RlbGltaXRlcnMoKTsKKyAgICAgICAgfQorICAgICAgICBtX2NvYWxlc2NlRGVsaW1pdGVyc18gPSBjb2FsZXNjZWRlbGltczsKKyAgICAgICAgbV9zb3VyY2VfID0gc3RyOworICAgICAgICBtX2xlbmd0aF8gPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIG1fcmV0dXJuRGVsaW1pdGVyc18gPSByZXR1cm5kZWxpbXM7CisgICAgICAgIG1fdG9rZW5PZmZzZXRfID0gLTE7CisgICAgICAgIG1fdG9rZW5TaXplXyA9IC0xOworICAgICAgICBpZiAobV9sZW5ndGhfID09IDApIHsKKyAgICAgICAgICAgIC8vIHN0cmluZyBsZW5ndGggMCwgbm8gdG9rZW5zCisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIGlmICghcmV0dXJuZGVsaW1zKSB7CisgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IGdldE5leHROb25EZWxpbWl0ZXIoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiBUaGUgCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgZGVsaW0gYXJndW1lbnQgYXJlIHRoZSBkZWxpbWl0ZXJzIGZvciBzZXBhcmF0aW5nIAorICAgICAqIHRva2Vucy48L3A+IAorICAgICAqIDxwPkRlbGltaXRlciBjaGFyYWN0ZXJzIHRoZW1zZWx2ZXMgd2lsbCBub3QgYmUgdHJlYXRlZCBhcyB0b2tlbnMuPC9wPgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBTdHJpbmcgZGVsaW0pCisgICAgeworICAgICAgICAvLyBkb24ndCBpZ25vcmUgd2hpdGVzcGFjZQorICAgICAgICB0aGlzKHN0ciwgZGVsaW0sIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiAKKyAgICAgKiBUaGUgdG9rZW5pemVyIHVzZXMgdGhlIGRlZmF1bHQgZGVsaW1pdGVyIHNldCwgd2hpY2ggaXMgCisgICAgICogIiAmIzkyO3QmIzkyO24mIzkyO3ImIzkyO2YiOiAKKyAgICAgKiB0aGUgc3BhY2UgY2hhcmFjdGVyLCB0aGUgdGFiIGNoYXJhY3RlciwgdGhlIG5ld2xpbmUgY2hhcmFjdGVyLCB0aGUgCisgICAgICogY2FycmlhZ2UtcmV0dXJuIGNoYXJhY3RlciwgYW5kIHRoZSBmb3JtLWZlZWQgY2hhcmFjdGVyLjwvcD4gCisgICAgICogPHA+RGVsaW1pdGVyIGNoYXJhY3RlcnMgdGhlbXNlbHZlcyB3aWxsIG5vdCBiZSB0cmVhdGVkIGFzIHRva2Vucy48L3A+CisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyKSAKKyAgICB7CisgICAgICAgIHRoaXMoc3RyLCBERUZBVUxUX0RFTElNSVRFUlNfLCBmYWxzZSwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIGlmIHRoZXJlIGFyZSBtb3JlIHRva2VucyBhdmFpbGFibGUgZnJvbSB0aGlzIHRva2VuaXplcidzIAorICAgICAqIHN0cmluZy4gCisgICAgICogSWYgdGhpcyBtZXRob2QgcmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+LCB0aGVuIGEgc3Vic2VxdWVudCBjYWxsIHRvIAorICAgICAqIDx0dD5uZXh0VG9rZW48L3R0PiB3aXRoIG5vIGFyZ3VtZW50IHdpbGwgc3VjY2Vzc2Z1bGx5IHJldHVybiBhIHRva2VuLgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHRva2VuIAorICAgICAqICAgICAgICAgaW4gdGhlIHN0cmluZyBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbjsgPGNvZGU+ZmFsc2U8L2NvZGU+IAorICAgICAqICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc01vcmVUb2tlbnMoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX25leHRPZmZzZXRfID49IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgdG9rZW4gZnJvbSB0aGlzIHN0cmluZyB0b2tlbml6ZXIuCisgICAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiBmcm9tIHRoaXMgc3RyaW5nIHRva2VuaXplci4KKyAgICAgKiBAZXhjZXB0aW9uIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgYXJlIG5vIG1vcmUgdG9rZW5zIGluIAorICAgICAqICAgICAgICAgICAgdGhpcyB0b2tlbml6ZXIncyBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0VG9rZW4oKSAKKyAgICB7CisgICAgICAgIGlmIChtX3Rva2VuT2Zmc2V0XyA8IDApIHsKKyAgICAgICAgICAgIGlmIChtX25leHRPZmZzZXRfIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCJObyBtb3JlIHRva2VucyBpbiBTdHJpbmciKTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHByZS1jYWxjdWxhdGlvbnMgb2YgdG9rZW5zIG5vdCBkb25lCisgICAgICAgICAgICBpZiAobV9yZXR1cm5EZWxpbWl0ZXJzXykgeworICAgICAgICAgICAgICAgIGludCB0b2tlbmxpbWl0ID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChtX3NvdXJjZV8sIG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgIGJvb2xlYW4gY29udGFpbnMgPSBkZWxpbXMgPT0gbnVsbCAKKyAgICAgICAgICAgICAgICAgICAgPyBtX2RlbGltaXRlcnNfLmNvbnRhaW5zKGMpIAorICAgICAgICAgICAgICAgICAgICA6IGMgPCBkZWxpbXMubGVuZ3RoICYmIGRlbGltc1tjXTsKKyAgICAgICAgICAgICAgICBpZiAoY29udGFpbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX2NvYWxlc2NlRGVsaW1pdGVyc18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VubGltaXQgPSBnZXROZXh0Tm9uRGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VubGltaXQgPSBtX25leHRPZmZzZXRfICsgVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPT0gbV9sZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5saW1pdCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5saW1pdCA9IGdldE5leHREZWxpbWl0ZXIobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fc291cmNlXy5zdWJzdHJpbmcobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fbmV4dE9mZnNldF8sIHRva2VubGltaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gdG9rZW5saW1pdDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHRva2VubGltaXQgPSBnZXROZXh0RGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fc291cmNlXy5zdWJzdHJpbmcobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSB0b2tlbmxpbWl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9zb3VyY2VfLnN1YnN0cmluZyhtX25leHRPZmZzZXRfLCB0b2tlbmxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IGdldE5leHROb25EZWxpbWl0ZXIodG9rZW5saW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY291bnQgd2FzIGNhbGxlZCBiZWZvcmUgYW5kIHdlIGhhdmUgYWxsIHRoZSB0b2tlbnMKKyAgICAgICAgaWYgKG1fdG9rZW5PZmZzZXRfID49IG1fdG9rZW5TaXplXykgeworICAgICAgICAgICAgdGhyb3cgbmV3IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIk5vIG1vcmUgdG9rZW5zIGluIFN0cmluZyIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgIGlmIChtX3Rva2VuTGltaXRfW21fdG9rZW5PZmZzZXRfXSA+PSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fdG9rZW5TdGFydF9bbV90b2tlbk9mZnNldF9dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfW21fdG9rZW5PZmZzZXRfXSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fdG9rZW5TdGFydF9bbV90b2tlbk9mZnNldF9dKTsKKyAgICAgICAgfQorICAgICAgICBtX3Rva2VuT2Zmc2V0XyArKzsKKyAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IC0xOworICAgICAgICBpZiAobV90b2tlbk9mZnNldF8gPCBtX3Rva2VuU2l6ZV8pIHsKKyAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBtX3Rva2VuU3RhcnRfW21fdG9rZW5PZmZzZXRfXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IHRva2VuIGluIHRoaXMgc3RyaW5nIHRva2VuaXplcidzIHN0cmluZy4gRmlyc3QsIAorICAgICAqIHRoZSBzZXQgb2YgY2hhcmFjdGVycyBjb25zaWRlcmVkIHRvIGJlIGRlbGltaXRlcnMgYnkgdGhpcyAKKyAgICAgKiA8dHQ+U3RyaW5nVG9rZW5pemVyPC90dD4gb2JqZWN0IGlzIGNoYW5nZWQgdG8gYmUgdGhlIGNoYXJhY3RlcnMgaW4gCisgICAgICogdGhlIHN0cmluZyA8dHQ+ZGVsaW08L3R0Pi4gVGhlbiB0aGUgbmV4dCB0b2tlbiBpbiB0aGUgc3RyaW5nCisgICAgICogYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgcmV0dXJuZWQuIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIAorICAgICAqIGFkdmFuY2VkIGJleW9uZCB0aGUgcmVjb2duaXplZCB0b2tlbi4gIFRoZSBuZXcgZGVsaW1pdGVyIHNldCAKKyAgICAgKiByZW1haW5zIHRoZSBkZWZhdWx0IGFmdGVyIHRoaXMgY2FsbC4gCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBuZXcgZGVsaW1pdGVycy4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHRva2VuLCBhZnRlciBzd2l0Y2hpbmcgdG8gdGhlIG5ldyBkZWxpbWl0ZXIgc2V0LgorICAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMgaW4gCisgICAgICogICAgICAgICAgICB0aGlzIHRva2VuaXplcidzIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIG5leHRUb2tlbihTdHJpbmcgZGVsaW0pIAorICAgIHsKKyAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IEVNUFRZX0RFTElNSVRFUl87CisgICAgICAgIGlmIChkZWxpbSAhPSBudWxsICYmIGRlbGltLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBtX2RlbGltaXRlcnNfLmFkZEFsbChkZWxpbSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5leHRUb2tlbihtX2RlbGltaXRlcnNfKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCB0b2tlbiBpbiB0aGlzIHN0cmluZyB0b2tlbml6ZXIncyBzdHJpbmcuIEZpcnN0LCAKKyAgICAgKiB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgY29uc2lkZXJlZCB0byBiZSBkZWxpbWl0ZXJzIGJ5IHRoaXMgCisgICAgICogPHR0PlN0cmluZ1Rva2VuaXplcjwvdHQ+IG9iamVjdCBpcyBjaGFuZ2VkIHRvIGJlIHRoZSBjaGFyYWN0ZXJzIGluIAorICAgICAqIHRoZSBzdHJpbmcgPHR0PmRlbGltPC90dD4uIFRoZW4gdGhlIG5leHQgdG9rZW4gaW4gdGhlIHN0cmluZworICAgICAqIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHJldHVybmVkLiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyAKKyAgICAgKiBhZHZhbmNlZCBiZXlvbmQgdGhlIHJlY29nbml6ZWQgdG9rZW4uICBUaGUgbmV3IGRlbGltaXRlciBzZXQgCisgICAgICogcmVtYWlucyB0aGUgZGVmYXVsdCBhZnRlciB0aGlzIGNhbGwuIAorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgbmV3IGRlbGltaXRlcnMuCisgICAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiwgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBuZXcgZGVsaW1pdGVyIHNldC4KKyAgICAgKiBAZXhjZXB0aW9uIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgYXJlIG5vIG1vcmUgdG9rZW5zIGluIAorICAgICAqICAgICAgICAgICAgdGhpcyB0b2tlbml6ZXIncyBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0VG9rZW4oVW5pY29kZVNldCBkZWxpbSkgCisgICAgeworICAgICAgICBtX2RlbGltaXRlcnNfID0gZGVsaW07CisgICAgICAgIGNoZWNrRGVsaW1pdGVycygpOworICAgICAgICBtX3Rva2VuT2Zmc2V0XyA9IC0xOworICAgICAgICBtX3Rva2VuU2l6ZV8gPSAtMTsKKyAgICAgICAgaWYgKCFtX3JldHVybkRlbGltaXRlcnNfKSB7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gZ2V0TmV4dE5vbkRlbGltaXRlcihtX25leHRPZmZzZXRfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV4dFRva2VuKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPmhhc01vcmVUb2tlbnM8L2NvZGU+IG1ldGhvZC4gCisgICAgICogSXQgZXhpc3RzIHNvIHRoYXQgdGhpcyBjbGFzcyBjYW4gaW1wbGVtZW50IHRoZSAKKyAgICAgKiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gaW50ZXJmYWNlLiAKKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGFyZSBtb3JlIHRva2VuczsKKyAgICAgKiAgICAgICAgIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UuCisgICAgICogQHNlZSAjaGFzTW9yZVRva2VucygpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzTW9yZUVsZW1lbnRzKCkgCisgICAgeworICAgICAgICByZXR1cm4gaGFzTW9yZVRva2VucygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uZXh0VG9rZW48L2NvZGU+IG1ldGhvZCwgZXhjZXB0IAorICAgICAqIHRoYXQgaXRzIGRlY2xhcmVkIHJldHVybiB2YWx1ZSBpcyA8Y29kZT5PYmplY3Q8L2NvZGU+IHJhdGhlciB0aGFuIAorICAgICAqIDxjb2RlPlN0cmluZzwvY29kZT4uIEl0IGV4aXN0cyBzbyB0aGF0IHRoaXMgY2xhc3MgY2FuIGltcGxlbWVudCB0aGUgCisgICAgICogPGNvZGU+RW51bWVyYXRpb248L2NvZGU+IGludGVyZmFjZS4gCisgICAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiBpbiB0aGUgc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMgaW4gCisgICAgICogICAgICAgICAgICB0aGlzIHRva2VuaXplcidzIHN0cmluZy4KKyAgICAgKiBAc2VlICNuZXh0VG9rZW4oKQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXh0VG9rZW4oKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgdGhpcyB0b2tlbml6ZXIncyAKKyAgICAgKiA8Y29kZT5uZXh0VG9rZW48L2NvZGU+IG1ldGhvZCBjYW4gYmUgY2FsbGVkIGJlZm9yZSBpdCBnZW5lcmF0ZXMgYW4gCisgICAgICogZXhjZXB0aW9uLiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBub3QgYWR2YW5jZWQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIHRva2VucyByZW1haW5pbmcgaW4gdGhlIHN0cmluZyB1c2luZyB0aGUgCisgICAgICogICAgICAgICBjdXJyZW50IGRlbGltaXRlciBzZXQuCisgICAgICogQHNlZSAjbmV4dFRva2VuKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvdW50VG9rZW5zKCkgCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaWYgKGhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgaWYgKG1fdG9rZW5PZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV90b2tlblNpemVfIC0gbV90b2tlbk9mZnNldF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV90b2tlblN0YXJ0XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV90b2tlblN0YXJ0XyA9IG5ldyBpbnRbVE9LRU5fU0laRV9dOworICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF8gPSBuZXcgaW50W1RPS0VOX1NJWkVfXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpZiAobV90b2tlblN0YXJ0Xy5sZW5ndGggPT0gcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wdG9rZW5pbmRleFtdID0gbV90b2tlblN0YXJ0XzsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRlbXB0b2tlbnNpemVbXSA9IG1fdG9rZW5MaW1pdF87CisgICAgICAgICAgICAgICAgICAgIGludCBvcmlnaW5hbHNpemUgPSB0ZW1wdG9rZW5pbmRleC5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGludCBuZXdzaXplID0gb3JpZ2luYWxzaXplICsgVE9LRU5fU0laRV87CisgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5TdGFydF8gPSBuZXcgaW50W25ld3NpemVdOworICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfID0gbmV3IGludFtuZXdzaXplXTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wdG9rZW5pbmRleCwgMCwgbV90b2tlblN0YXJ0XywgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxzaXplKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wdG9rZW5zaXplLCAwLCBtX3Rva2VuTGltaXRfLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbHNpemUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3Rva2VuU3RhcnRfW3Jlc3VsdF0gPSBtX25leHRPZmZzZXRfOworICAgICAgICAgICAgICAgIGlmIChtX3JldHVybkRlbGltaXRlcnNfKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KG1fc291cmNlXywgbV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY29udGFpbnMgPSBkZWxpbXMgPT0gbnVsbCAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gbV9kZWxpbWl0ZXJzXy5jb250YWlucyhjKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIDogYyA8IGRlbGltcy5sZW5ndGggJiYgZGVsaW1zW2NdOworICAgICAgICAgICAgICAgICAgICBpZiAoY29udGFpbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2NvYWxlc2NlRGVsaW1pdGVyc18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfW3Jlc3VsdF0gPSBnZXROZXh0Tm9uRGVsaW1pdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcCA9IG1fbmV4dE9mZnNldF8gKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwID09IG1fbGVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF9bcmVzdWx0XSA9IHA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF9bcmVzdWx0XSA9IGdldE5leHREZWxpbWl0ZXIobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IG1fdG9rZW5MaW1pdF9bcmVzdWx0XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF9bcmVzdWx0XSA9IGdldE5leHREZWxpbWl0ZXIobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBnZXROZXh0Tm9uRGVsaW1pdGVyKG1fdG9rZW5MaW1pdF9bcmVzdWx0XSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0gd2hpbGUgKG1fbmV4dE9mZnNldF8gPj0gMCk7CisgICAgICAgICAgICBtX3Rva2VuT2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX3Rva2VuU2l6ZV8gPSByZXN1bHQ7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gbV90b2tlblN0YXJ0X1swXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ3VycmVudCBvZmZzZXQgdG8gdGhlIHRva2VuIGFycmF5LiBJZiB0aGUgYXJyYXkgdG9rZW4gaXMgbm90IHNldCB1cCB5ZXQsCisgICAgICogdGhpcyB2YWx1ZSBpcyBhIC0xCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV90b2tlbk9mZnNldF87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdG9rZW4gYXJyYXkuIElmIHRoZSBhcnJheSB0b2tlbiBpcyBub3Qgc2V0IHVwIHlldCwKKyAgICAgKiB0aGlzIHZhbHVlIGlzIGEgLTEKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Rva2VuU2l6ZV87CisgICAgLyoqCisgICAgICogQXJyYXkgb2YgcHJlLWNhbGN1bGF0ZWQgdG9rZW5zIHN0YXJ0IGluZGV4ZXMgaW4gc291cmNlIHN0cmluZyB0ZXJtaW5hdGVkIAorICAgICAqIGJ5IC0xLgorICAgICAqIFRoaXMgaXMgb25seSBzZXQgdXAgZHVyaW5nIGNvdW50VG9rZW5zKCkgYW5kIG9ubHkgc3RvcmVzIHRoZSByZW1haW5pbmcKKyAgICAgKiB0b2tlbnMsIG5vdCBhbGwgdG9rZW5zIGluY2x1ZGluZyBwYXJzZWQgb25lcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9rZW5TdGFydF9bXTsKKyAgICAvKioKKyAgICAgKiBBcnJheSBvZiBwcmUtY2FsY3VsYXRlZCB0b2tlbnMgbGltaXQgaW5kZXhlcyBpbiBzb3VyY2Ugc3RyaW5nLgorICAgICAqIFRoaXMgaXMgb25seSBzZXQgdXAgZHVyaW5nIGNvdW50VG9rZW5zKCkgYW5kIG9ubHkgc3RvcmVzIHRoZSByZW1haW5pbmcKKyAgICAgKiB0b2tlbnMsIG5vdCBhbGwgdG9rZW5zIGluY2x1ZGluZyBwYXJzZWQgb25lcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9rZW5MaW1pdF9bXTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlU2V0IGNvbnRhaW5pbmcgZGVsaW1pdGVycworICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZVNldCBtX2RlbGltaXRlcnNfOworICAgIC8qKgorICAgICAqIFN0cmluZyB0byBwYXJzZSBmb3IgdG9rZW5zCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbV9zb3VyY2VfOworICAgIC8qKgorICAgICAqIExlbmd0aCBvZiBtX3NvdXJjZV8KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2xlbmd0aF87CisgICAgLyoqCisgICAgICogQ3VycmVudCBwb3NpdGlvbiBpbiBzdHJpbmcgdG8gcGFyc2UgZm9yIHRva2VucworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbmV4dE9mZnNldF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgZGVsaW1pdGVycyBhcmUgdG8gYmUgdHJlYXRlZCBhcyB0b2tlbnMgdG9vCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1fcmV0dXJuRGVsaW1pdGVyc187CisKKyAgICAvKioKKyAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB0byBjb2FsZXNjZSBydW5zIG9mIGRlbGltaXRlcnMgaW50byBzaW5nbGUgdG9rZW5zCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1fY29hbGVzY2VEZWxpbWl0ZXJzXzsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgc2V0IG9mIGRlbGltaXRlcnMgJiM5Mjt0JiM5MjtuJiM5MjtyJiM5MjtmCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBERUZBVUxUX0RFTElNSVRFUlNfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIlsgXHRcblxyXGZdIiwgZmFsc2UpOworICAgIC8qKgorICAgICAqIEFycmF5IHNpemUgaW5jcmVtZW50cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9TSVpFXyA9IDEwMDsKKyAgICAvKioKKyAgICAgKiBBIGVtcHR5IGRlbGltaXRlciBVbmljb2RlU2V0LCB1c2VkIHdoZW4gdXNlciBzcGVjaWZpZWQgbnVsbCBkZWxpbWl0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBFTVBUWV9ERUxJTUlURVJfID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIG5leHQgZGVsaW1pdGVyIGFmdGVyIG9mZnNldAorICAgICAqIEBwYXJhbSBvZmZzZXQgdG8gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG9mZnNldCBvZiB0aGUgaW1tZWRpYXRlIG5leHQgZGVsaW1pdGVyLCBvdGhlcndpc2UgCisgICAgICogICAgICAgICAoLSBzb3VyY2Ugc3RyaW5nIGxlbmd0aCAtIDEpIGlmIHRoZXJlCisgICAgICogICAgICAgICBhcmUgbm8gbW9yZSBkZWxpbWl0ZXJzIGFmdGVyIG1fbmV4dE9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldE5leHREZWxpbWl0ZXIoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IG9mZnNldDsgCisgICAgICAgICAgICBpbnQgYyA9IDA7CisgICAgICAgICAgICBpZiAoZGVsaW1zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQobV9zb3VyY2VfLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9kZWxpbWl0ZXJzXy5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHJlc3VsdCA8IG1fbGVuZ3RoXyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChtX3NvdXJjZV8sIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgZGVsaW1zLmxlbmd0aCAmJiBkZWxpbXNbY10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChyZXN1bHQgPCBtX2xlbmd0aF8pOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCBtX2xlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMSAtIG1fbGVuZ3RoXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIG5leHQgbm9uLWRlbGltaXRlciBhZnRlciBtX25leHRPZmZzZXRfCisgICAgICogQHBhcmFtIG9mZnNldCB0byB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gb2Zmc2V0IG9mIHRoZSBpbW1lZGlhdGUgbmV4dCBub24tZGVsaW1pdGVyLCBvdGhlcndpc2UgCisgICAgICogICAgICAgICAoLSBzb3VyY2Ugc3RyaW5nIGxlbmd0aCAtIDEpIGlmIHRoZXJlCisgICAgICogICAgICAgICBhcmUgbm8gbW9yZSBkZWxpbWl0ZXJzIGFmdGVyIG1fbmV4dE9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldE5leHROb25EZWxpbWl0ZXIoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IG9mZnNldDsgCisgICAgICAgICAgICBpbnQgYyA9IDA7CisgICAgICAgICAgICBpZiAoZGVsaW1zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQobV9zb3VyY2VfLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW1fZGVsaW1pdGVyc18uY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChyZXN1bHQgPCBtX2xlbmd0aF8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQobV9zb3VyY2VfLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIShjIDwgZGVsaW1zLmxlbmd0aCAmJiBkZWxpbXNbY10pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocmVzdWx0IDwgbV9sZW5ndGhfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCBtX2xlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMSAtIG1fbGVuZ3RoXzsKKyAgICB9CisKKyAgICB2b2lkIGNoZWNrRGVsaW1pdGVycygpIHsKKyAgICAgICAgaWYgKG1fZGVsaW1pdGVyc18gPT0gbnVsbCB8fCBtX2RlbGltaXRlcnNfLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICBkZWxpbXMgPSBuZXcgYm9vbGVhblswXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBtYXhDaGFyID0gbV9kZWxpbWl0ZXJzXy5nZXRSYW5nZUVuZChtX2RlbGltaXRlcnNfLmdldFJhbmdlQ291bnQoKS0xKTsKKyAgICAgICAgICAgIGlmIChtYXhDaGFyIDwgMHg3ZikgeworICAgICAgICAgICAgICAgIGRlbGltcyA9IG5ldyBib29sZWFuW21heENoYXIrMV07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAsIGNoOyAtMSAhPSAoY2ggPSBtX2RlbGltaXRlcnNfLmNoYXJBdChpKSk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBkZWxpbXNbY2hdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlbGltcyA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBib29sZWFuW10gZGVsaW1zOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTQzZmMyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKQEAgLTAsMCArMSw3OTkgQEAKKy8qCisgKiBAKCMpVGltZVpvbmUuamF2YSAgICAxLjUxIDAwLzAxLzE5CisgKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5ab25lTWV0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CisKKy8qKgorICogPGNvZGU+VGltZVpvbmU8L2NvZGU+IHJlcHJlc2VudHMgYSB0aW1lIHpvbmUgb2Zmc2V0LCBhbmQgYWxzbyBmaWd1cmVzIG91dCBkYXlsaWdodAorICogc2F2aW5ncy4KKyAqCisgKiA8cD4KKyAqIFR5cGljYWxseSwgeW91IGdldCBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2luZyA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogd2hpY2ggY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBiYXNlZCBvbiB0aGUgdGltZSB6b25lIHdoZXJlIHRoZSBwcm9ncmFtCisgKiBpcyBydW5uaW5nLiBGb3IgZXhhbXBsZSwgZm9yIGEgcHJvZ3JhbSBydW5uaW5nIGluIEphcGFuLCA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3QgYmFzZWQgb24gSmFwYW5lc2UgU3RhbmRhcmQgVGltZS4KKyAqCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyBnZXQgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdXNpbmcgPGNvZGU+Z2V0VGltZVpvbmU8L2NvZGU+CisgKiBhbG9uZyB3aXRoIGEgdGltZSB6b25lIElELiBGb3IgaW5zdGFuY2UsIHRoZSB0aW1lIHpvbmUgSUQgZm9yIHRoZQorICogVS5TLiBQYWNpZmljIFRpbWUgem9uZSBpcyAiQW1lcmljYS9Mb3NfQW5nZWxlcyIuIFNvLCB5b3UgY2FuIGdldCBhCisgKiBVLlMuIFBhY2lmaWMgVGltZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gb2JqZWN0IHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFlvdSBjYW4gdXNlIDxjb2RlPmdldEF2YWlsYWJsZUlEczwvY29kZT4gbWV0aG9kIHRvIGl0ZXJhdGUgdGhyb3VnaAorICogYWxsIHRoZSBzdXBwb3J0ZWQgdGltZSB6b25lIElEcy4gWW91IGNhbiB0aGVuIGNob29zZSBhCisgKiBzdXBwb3J0ZWQgSUQgdG8gZ2V0IGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICogSWYgdGhlIHRpbWUgem9uZSB5b3Ugd2FudCBpcyBub3QgcmVwcmVzZW50ZWQgYnkgb25lIG9mIHRoZQorICogc3VwcG9ydGVkIElEcywgdGhlbiB5b3UgY2FuIGNyZWF0ZSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgd2l0aAorICogdGhlIGZvbGxvd2luZyBzeW50YXg6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogR01UWyt8LV1oaFtbOl1tbV0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgc3BlY2lmeSBHTVQrMTQ6MDAgYXMgYSBjdXN0b20KKyAqIHRpbWUgem9uZSBJRC4gIFRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdGhhdCBpcyByZXR1cm5lZAorICogd2hlbiB5b3Ugc3BlY2lmeSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgZG9lcyBub3QgaW5jbHVkZQorICogZGF5bGlnaHQgc2F2aW5ncyB0aW1lLgorICogPHA+CisgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEueCwgc29tZSBvdGhlciB0aHJlZS1sZXR0ZXIgdGltZSB6b25lIElEcworICogKHN1Y2ggYXMgIlBTVCIsICJDVFQiLCAiQVNUIikgYXJlIGFsc28gc3VwcG9ydGVkLiBIb3dldmVyLCA8c3Ryb25nPnRoZWlyCisgKiB1c2UgaXMgZGVwcmVjYXRlZDwvc3Ryb25nPiBiZWNhdXNlIHRoZSBzYW1lIGFiYnJldmlhdGlvbiBpcyBvZnRlbiB1c2VkCisgKiBmb3IgbXVsdGlwbGUgdGltZSB6b25lcyAoZm9yIGV4YW1wbGUsICJDU1QiIGNvdWxkIGJlIFUuUy4gIkNlbnRyYWwgU3RhbmRhcmQKKyAqIFRpbWUiIGFuZCAiQ2hpbmEgU3RhbmRhcmQgVGltZSIpLCBhbmQgdGhlIEphdmEgcGxhdGZvcm0gY2FuIHRoZW4gb25seQorICogcmVjb2duaXplIG9uZSBvZiB0aGVtLgorICoKKyAqCisgKiBAc2VlICAgICAgICAgIENhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIFNpbXBsZVRpbWVab25lCisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMsIERhdmlkIEdvbGRzbWl0aCwgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Fic3RyYWN0IHB1YmxpYyBjbGFzcyBUaW1lWm9uZSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSwgQ2xvbmVhYmxlIHsKKyAgICAvLyB1c2luZyBzZXJpYWx2ZXIgZnJvbSBqZGsxLjQuMl8wNQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03NDQ5NDIxMjgzMTgzMzc0NzFMOworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIChGb3IgaW52b2NhdGlvbiBieSBzdWJjbGFzcyBjb25zdHJ1Y3RvcnMsCisgICAgICogdHlwaWNhbGx5IGltcGxpY2l0LikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzdHlsZSBzcGVjaWZpZXIgZm9yIDxjb2RlPmdldERpc3BsYXlOYW1lKCk8L2NvZGU+IGluZGljYXRpbmcKKyAgICAgKiBhIHNob3J0IG5hbWUsIHN1Y2ggYXMgIlBTVC4iCisgICAgICogQHNlZSAjTE9ORworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIT1JUID0gMDsKKworICAgIC8qKgorICAgICAqIEEgc3R5bGUgc3BlY2lmaWVyIGZvciA8Y29kZT5nZXREaXNwbGF5TmFtZSgpPC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogYSBsb25nIG5hbWUsIHN1Y2ggYXMgIlBhY2lmaWMgU3RhbmRhcmQgVGltZS4iCisgICAgICogQHNlZSAjU0hPUlQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT05HICA9IDE7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlRfR0VORVJJQyA9IDI7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9OR19HRU5FUklDID0gMzsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRvIGhvbGQgdGhlIFNpbXBsZURhdGVGb3JtYXQgb2JqZWN0cyBmb3IgYSBMb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlIGNhY2hlZExvY2FsZURhdGEgPSBuZXcgSGFzaHRhYmxlKDMpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lIG9mZnNldCwgZm9yIGN1cnJlbnQgZGF0ZSwgbW9kaWZpZWQgaW4gY2FzZSBvZgorICAgICAqIGRheWxpZ2h0IHNhdmluZ3MuIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIGVyYSB0aGUgZXJhIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB5ZWFyIGluIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgbW9udGggaW4gdGhlIGdpdmVuIGRhdGUuCisgICAgICogTW9udGggaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5IHRoZSBkYXktaW4tbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayB0aGUgZGF5LW9mLXdlZWsgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIG1pbGxpc2Vjb25kcyB0aGUgbWlsbGlzIGluIGRheSBpbiA8ZW0+c3RhbmRhcmQ8L2VtPiBsb2NhbCB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIG9mZnNldCB0byBhZGQgKnRvKiBHTVQgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoaXMgdGltZSB6b25lIGZyb20gVVRDIGF0IHRoZSBzcGVjaWZpZWQKKyAgICAgKiBkYXRlLiBJZiBEYXlsaWdodCBTYXZpbmcgVGltZSBpcyBpbiBlZmZlY3QgYXQgdGhlIHNwZWNpZmllZAorICAgICAqIGRhdGUsIHRoZSBvZmZzZXQgdmFsdWUgaXMgYWRqdXN0ZWQgd2l0aCB0aGUgYW1vdW50IG9mIGRheWxpZ2h0CisgICAgICogc2F2aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgcmVwcmVzZW50ZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMDowMCBHTVQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gYWRkIHRvIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXIjWk9ORV9PRkZTRVQKKyAgICAgKiBAc2VlIENhbGVuZGFyI0RTVF9PRkZTRVQKKyAgICAgKiBAc2VlICNnZXRPZmZzZXQobG9uZywgYm9vbGVhbiwgaW50W10pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQobG9uZyBkYXRlKSB7CisJaW50W10gcmVzdWx0ID0gbmV3IGludFsyXTsKKwlnZXRPZmZzZXQoZGF0ZSwgZmFsc2UsIHJlc3VsdCk7CisJcmV0dXJuIHJlc3VsdFswXStyZXN1bHRbMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGltZSB6b25lIHJhdyBhbmQgR01UIG9mZnNldCBmb3IgdGhlIGdpdmVuIG1vbWVudAorICAgICAqIGluIHRpbWUuICBVcG9uIHJldHVybiwgbG9jYWwtbWlsbGlzID0gR01ULW1pbGxpcyArIHJhd09mZnNldCArCisgICAgICogZHN0T2Zmc2V0LiAgQWxsIGNvbXB1dGF0aW9ucyBhcmUgcGVyZm9ybWVkIGluIHRoZSBwcm9sZXB0aWMKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgVGltZVpvbmUKKyAgICAgKiBjbGFzcyBkZWxlZ2F0ZXMgdG8gdGhlIDgtYXJndW1lbnQgZ2V0T2Zmc2V0KCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSBtb21lbnQgaW4gdGltZSBmb3Igd2hpY2ggdG8gcmV0dXJuIG9mZnNldHMsIGluCisgICAgICogdW5pdHMgb2YgbWlsbGlzZWNvbmRzIGZyb20gSmFudWFyeSAxLCAxOTcwIDA6MDAgR01ULCBlaXRoZXIgR01UCisgICAgICogdGltZSBvciBsb2NhbCB3YWxsIHRpbWUsIGRlcGVuZGluZyBvbiBgbG9jYWwnLgorICAgICAqIEBwYXJhbSBsb2NhbCBpZiB0cnVlLCBgZGF0ZScgaXMgbG9jYWwgd2FsbCB0aW1lOyBvdGhlcndpc2UgaXQKKyAgICAgKiBpcyBpbiBHTVQgdGltZS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0cyBvdXRwdXQgcGFyYW1ldGVyIHRvIHJlY2VpdmUgdGhlIHJhdyBvZmZzZXQsIHRoYXQKKyAgICAgKiBpcywgdGhlIG9mZnNldCBub3QgaW5jbHVkaW5nIERTVCBhZGp1c3RtZW50cywgaW4gb2Zmc2V0c1swXSwKKyAgICAgKiBhbmQgdGhlIERTVCBvZmZzZXQsIHRoYXQgaXMsIHRoZSBvZmZzZXQgdG8gYmUgYWRkZWQgdG8KKyAgICAgKiBgcmF3T2Zmc2V0JyB0byBvYnRhaW4gdGhlIHRvdGFsIG9mZnNldCBiZXR3ZWVuIGxvY2FsIGFuZCBHTVQKKyAgICAgKiB0aW1lLCBpbiBvZmZzZXRzWzFdLiBJZiBEU1QgaXMgbm90IGluIGVmZmVjdCwgdGhlIERTVCBvZmZzZXQgaXMKKyAgICAgKiB6ZXJvOyBvdGhlcndpc2UgaXQgaXMgYSBwb3NpdGl2ZSB2YWx1ZSwgdHlwaWNhbGx5IG9uZSBob3VyLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0T2Zmc2V0KGxvbmcgZGF0ZSwgYm9vbGVhbiBsb2NhbCwgaW50W10gb2Zmc2V0cykgeworICAgICAgICBvZmZzZXRzWzBdID0gZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIAorICAgICAgICAvLyBDb252ZXJ0IHRvIGxvY2FsIHdhbGwgbWlsbGlzIGlmIG5lY2Vzc2FyeQorICAgICAgICBpZiAoIWxvY2FsKSB7CisgICAgICAgICAgICBkYXRlICs9IG9mZnNldHNbMF07IC8vIG5vdyBpbiBsb2NhbCBzdGFuZGFyZCBtaWxsaXMKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdoZW4gbG9jYWw9PUZBTFNFLCB3ZSBtaWdodCBoYXZlIHRvIHJlY29tcHV0ZS4gVGhpcyBsb29wIGlzCisgICAgICAgIC8vIGV4ZWN1dGVkIG9uY2UsIHVubGVzcyBhIHJlY29tcHV0YXRpb24gaXMgcmVxdWlyZWQ7IHRoZW4gaXQgaXMKKyAgICAgICAgLy8gZXhlY3V0ZWQgdHdpY2UuCisgICAgICAgIGZvciAoaW50IHBhc3M9MDsgOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIGludCBmaWVsZHNbXSA9IG5ldyBpbnRbNF07CisgICAgICAgICAgICBsb25nIGRheSA9IGZsb29yRGl2aWRlKGRhdGUsIE1JTExJU19QRVJfREFZLCBmaWVsZHMpOworICAgICAgICAgICAgaW50IG1pbGxpcyA9IGZpZWxkc1swXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcyhkYXksIGZpZWxkcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG9mZnNldHNbMV0gPSBnZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1swXSwgZmllbGRzWzFdLCBmaWVsZHNbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1szXSwgbWlsbGlzKSAtIG9mZnNldHNbMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFJlY29tcHV0ZSBpZiBsb2NhbD09RkFMU0UsIGRzdE9mZnNldCE9MCwgYW5kIGFkZGl0aW9uIG9mCisgICAgICAgICAgICAvLyB0aGUgZHN0T2Zmc2V0IHB1dHMgdXMgaW4gYSBkaWZmZXJlbnQgZGF5LgorICAgICAgICAgICAgaWYgKHBhc3MhPTAgfHwgbG9jYWwgfHwgb2Zmc2V0c1sxXT09MCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0ZSArPSBvZmZzZXRzWzFdOworICAgICAgICAgICAgaWYgKGZsb29yRGl2aWRlKGRhdGUsIE1JTExJU19QRVJfREFZKSA9PSBkYXkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGxvbmcgaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBhIG1ldGhvZCBpbiBDYWxlbmRhcjsgY2xlYW4gdXAgYW5kCisgICAgICogY29uc29saWRhdGUgaW4gSUNVIDMuMC4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqLworICAgIHN0YXRpYyBsb25nIGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBsb25nIGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIExvbmcuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudCwgYW5kCisgICAgICogdGhlIG1vZHVsdXMgcmVtYWluZGVyLgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAgYW5kIDxjb2RlPi0xJTQ8L2NvZGU+ID0+IC0xLAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEgd2l0aCA8Y29kZT5yZW1haW5kZXJbMF08L2NvZGU+ID0+IDMuCisgICAgICogVE9ETzogVGhpcyBkdXBsaWNhdGVzIGEgbWV0aG9kIGluIENhbGVuZGFyOyBjbGVhbiB1cCBhbmQKKyAgICAgKiBjb25zb2xpZGF0ZSBpbiBJQ1UgMy4wLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcGFyYW0gcmVtYWluZGVyIGFuIGFycmF5IG9mIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIHdoaWNoIHRoZSB2YWx1ZQorICAgICAqIDxjb2RlPm51bWVyYXRvciBtb2QgZGVub21pbmF0b3I8L2NvZGU+IGlzIHJldHVybmVkLiBVbmxpa2UgPGNvZGU+bnVtZXJhdG9yCisgICAgICogJSBkZW5vbWluYXRvcjwvY29kZT4sIHRoaXMgd2lsbCBhbHdheXMgYmUgbm9uLW5lZ2F0aXZlLgorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBpbnQgZGVub21pbmF0b3IsIGludFtdIHJlbWFpbmRlcikgeworICAgICAgICBpZiAobnVtZXJhdG9yID49IDApIHsKKyAgICAgICAgICAgIHJlbWFpbmRlclswXSA9IChpbnQpKG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KShudW1lcmF0b3IgLyBkZW5vbWluYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgaW50IHF1b3RpZW50ID0gKGludCkoKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDEpOworICAgICAgICByZW1haW5kZXJbMF0gPSAoaW50KShudW1lcmF0b3IgLSAocXVvdGllbnQgKiBkZW5vbWluYXRvcikpOworICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHllYXIsIG1vbnRoLCBhbmQgZGF5IG9mIG1vbnRoCisgICAgICogZnJvbSB0aGUgZXBvY2ggZGF5LCBhbmQgcmV0dXJuIHRoZW0gaW4gdGhlIGdpdmVuIGFycmF5LgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBhIG1ldGhvZCBpbiBDYWxlbmRhcjsgY2xlYW4gdXAgYW5kCisgICAgICogY29uc29saWRhdGUgaW4gSUNVIDMuMC4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBjb21wdXRlR3JlZ29yaWFuRmllbGRzKGxvbmcgZGF5LCBpbnQgZmllbGRzW10pIHsKKyAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZlllYXI7CisKKyAgICAgICAgLy8gQ29udmVydCBmcm9tIDE5NzAgQ0UgZXBvY2ggdG8gMSBDRSBlcG9jaCAoR3JlZ29yaWFuIGNhbGVuZGFyKQorICAgICAgICAvLyBKVUxJQU5fMV9DRSAgICA9IDE3MjE0MjY7IC8vIEphbnVhcnkgMSwgMSBDRSBHcmVnb3JpYW4KKyAgICAgICAgLy8gSlVMSUFOXzE5NzBfQ0UgPSAyNDQwNTg4OyAvLyBKYW51YXJ5IDEsIDE5NzAgQ0UgR3JlZ29yaWFuCisgICAgICAgIGRheSArPSAoMjQ0MDU4OCAtIDE3MjE0MjYpOworCisgICAgICAgIC8vIEhlcmUgd2UgY29udmVydCBmcm9tIHRoZSBkYXkgbnVtYmVyIHRvIHRoZSBtdWx0aXBsZSByYWRpeAorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4gIFdlIHVzZSA0MDAteWVhciwgMTAwLXllYXIsIGFuZCA0LXllYXIgY3ljbGVzLgorICAgICAgICAvLyBGb3IgZXhhbXBsZSwgdGhlIDQteWVhciBjeWNsZSBoYXMgNCB5ZWFycyArIDEgbGVhcCBkYXk7IGdpdmluZworICAgICAgICAvLyAxNDYxID09IDM2NSo0ICsgMSBkYXlzLgorICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgbjQwMCA9IGZsb29yRGl2aWRlKGRheSwgMTQ2MDk3LCByZW0pOyAvLyA0MDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG4xMDAgPSBmbG9vckRpdmlkZShyZW1bMF0sIDM2NTI0LCByZW0pOyAvLyAxMDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG40ID0gZmxvb3JEaXZpZGUocmVtWzBdLCAxNDYxLCByZW0pOyAvLyA0LXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuMSA9IGZsb29yRGl2aWRlKHJlbVswXSwgMzY1LCByZW0pOworICAgICAgICB5ZWFyID0gNDAwKm40MDAgKyAxMDAqbjEwMCArIDQqbjQgKyBuMTsKKyAgICAgICAgZGF5T2ZZZWFyID0gcmVtWzBdOyAvLyB6ZXJvLWJhc2VkIGRheSBvZiB5ZWFyCisgICAgICAgIGlmIChuMTAwID09IDQgfHwgbjEgPT0gNCkgeworICAgICAgICAgICAgZGF5T2ZZZWFyID0gMzY1OyAvLyBEZWMgMzEgYXQgZW5kIG9mIDQtIG9yIDQwMC15ciBjeWNsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSAoKHllYXImMHgzKSA9PSAwKSAmJiAvLyBlcXVpdi4gdG8gKHllYXIlNCA9PSAwKQorICAgICAgICAgICAgKHllYXIlMTAwICE9IDAgfHwgeWVhciU0MDAgPT0gMCk7CisKKyAgICAgICAgaW50IGNvcnJlY3Rpb24gPSAwOworICAgICAgICBpbnQgbWFyY2gxID0gaXNMZWFwID8gNjAgOiA1OTsgLy8gemVyby1iYXNlZCBET1kgZm9yIE1hcmNoIDEKKyAgICAgICAgaWYgKGRheU9mWWVhciA+PSBtYXJjaDEpIGNvcnJlY3Rpb24gPSBpc0xlYXAgPyAxIDogMjsKKyAgICAgICAgbW9udGggPSAoMTIgKiAoZGF5T2ZZZWFyICsgY29ycmVjdGlvbikgKyA2KSAvIDM2NzsgLy8gemVyby1iYXNlZCBtb250aAorICAgICAgICBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0KKyAgICAgICAgICAgIEdSRUdPUklBTl9NT05USF9DT1VOVFttb250aF1baXNMZWFwPzE6MF0gKyAxOyAvLyBvbmUtYmFzZWQgRE9NCisKKyAgICAgICAgLy8gSmFuIDEgMSBDRSBpcyBNb25kYXkKKyAgICAgICAgaW50IGRheU9mV2VlayA9IChpbnQpICgoZGF5ICsgQ2FsZW5kYXIuTU9OREFZKSAlIDcpOworICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgQ2FsZW5kYXIuU1VOREFZKSB7CisgICAgICAgICAgICBkYXlPZldlZWsgKz0gNzsKKyAgICAgICAgfQorCisgICAgICAgIGZpZWxkc1swXSA9IHllYXI7CisgICAgICAgIGZpZWxkc1sxXSA9IG1vbnRoOyAvLyAwLWJhc2VkIGFscmVhZHkKKyAgICAgICAgZmllbGRzWzJdID0gZGF5T2ZNb250aDsgLy8gMS1iYXNlZCBhbHJlYWR5CisgICAgICAgIGZpZWxkc1szXSA9IGRheU9mV2VlazsgLy8gMS1iYXNlZCBhbHJlYWR5CisgICAgICAgIC8vZmllbGRzWzRdID0gZGF5T2ZZZWFyICsgMTsgLy8gQ29udmVydCBmcm9tIDAtYmFzZWQgdG8gMS1iYXNlZAorICAgIH0KKworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYW4gaG91ci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX0hPVVIgPSA2MCo2MCoxMDAwOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGRheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX0RBWSA9IDI0Kk1JTExJU19QRVJfSE9VUjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGb3IgZWFjaCBtb250aCwgdGhlIGRheXMgaW4gYSBub24tbGVhcCB5ZWFyIGJlZm9yZSB0aGUgc3RhcnQKKyAgICAgKiB0aGUgb2YgbW9udGgsIGFuZCB0aGUgZGF5cyBpbiBhIGxlYXAgeWVhciBiZWZvcmUgdGhlIHN0YXJ0IG9mCisgICAgICogdGhlIG1vbnRoLgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBkYXRhIGluIENhbGVuZGFyLmphdmE7IGNsZWFuIHVwIGFuZAorICAgICAqIGNvbnNvbGlkYXRlIGluIElDVSAzLjAuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludFtdW10gR1JFR09SSUFOX01PTlRIX0NPVU5UID0geworICAgICAgICB7ICAgMCwgICAwIH0sIC8vIEphbgorICAgICAgICB7ICAzMSwgIDMxIH0sIC8vIEZlYgorICAgICAgICB7ICA1OSwgIDYwIH0sIC8vIE1hcgorICAgICAgICB7ICA5MCwgIDkxIH0sIC8vIEFwcgorICAgICAgICB7IDEyMCwgMTIxIH0sIC8vIE1heQorICAgICAgICB7IDE1MSwgMTUyIH0sIC8vIEp1bgorICAgICAgICB7IDE4MSwgMTgyIH0sIC8vIEp1bAorICAgICAgICB7IDIxMiwgMjEzIH0sIC8vIEF1ZworICAgICAgICB7IDI0MywgMjQ0IH0sIC8vIFNlcAorICAgICAgICB7IDI3MywgMjc0IH0sIC8vIE9jdAorICAgICAgICB7IDMwNCwgMzA1IH0sIC8vIE5vdgorICAgICAgICB7IDMzNCwgMzM1IH0gIC8vIERlYworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHVubW9kaWZpZWQgb2Zmc2V0LCBOT1QgbW9kaWZpZWQgaW4gY2FzZSBvZiBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgdW5tb2RpZmllZCBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkgeworICAgICAgICByZXR1cm4gSUQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIElELiBUaGlzIGRvZXMgbm90IGNoYW5nZSBhbnkgb3RoZXIgZGF0YSBpbgorICAgICAqIHRoZSB0aW1lIHpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBJRCB0aGUgbmV3IHRpbWUgem9uZSBJRC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgaWYgKElEID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMuSUQgPSBJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgZ2VuZXJpYyBuYW1lLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBfZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkdfR0VORVJJQywgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsb25nIGdlbmVyaWMgbmFtZS4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogYSBmYWxsYmFjayBiYXNlZCBvbiB0aGUgY291bnRyeSwgY2l0eSwgb3IgdGltZSB6b25lIGlkIHdpbGwgYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgbm90IHJlY29nbml6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBfZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkdfR0VORVJJQywgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgbmFtZSwgbm90IGluY2x1ZGluZyBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgdWxvY2FsZSBpZiB0aGUgZ2l2ZW4gdWxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIF9nZXREaXNwbGF5TmFtZShmYWxzZSwgTE9OR19HRU5FUklDLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogSWYgdGhlIGRpc3BsYXkgbmFtZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGUgbG9jYWxlLAorICAgICAqIHRoZW4gdGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyBpbiB0aGUgZm9ybWF0CisgICAgICogPGNvZGU+R01UWystXWhoOm1tPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF5bGlnaHQgaWYgdHJ1ZSwgcmV0dXJuIHRoZSBkYXlsaWdodCBzYXZpbmdzIG5hbWUuCisgICAgICogQHBhcmFtIHN0eWxlIGVpdGhlciA8Y29kZT5MT05HPC9jb2RlPiBvciA8Y29kZT5TSE9SVDwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoZGF5bGlnaHQsIHN0eWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShib29sZWFuIGRheWxpZ2h0LCBpbnQgc3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaWYgKHN0eWxlICE9IFNIT1JUICYmIHN0eWxlICE9IExPTkcpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3R5bGU6ICIgKyBzdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIF9nZXREaXNwbGF5TmFtZShkYXlsaWdodCwgc3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHB1YmxpYyB2ZXJzaW9uIG9mIHRoaXMgQVBJIG9ubHkgYWNjZXB0cyBMT05HL1NIT1JULCB0aGUKKyAgICAgKiBpbnRlcm5hbCB2ZXJzaW9uICh3aGljaCB0aGlzIGNhbGxzKSBhbHNvIGFjY2VwdHMgTE9OR19HRU5FUklDL1NIT1JUX0dFTkVSSUMuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgX2dldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLyogTk9URVM6CisgICAgICAgICAqICgxKSBXZSB1c2UgU2ltcGxlRGF0ZUZvcm1hdCBmb3Igc2ltcGxpY2l0eTsgd2UgY291bGQgZG8gdGhpcworICAgICAgICAgKiBtb3JlIGVmZmljaWVudGx5IGJ1dCBpdCB3b3VsZCBkdXBsaWNhdGUgdGhlIFNpbXBsZURhdGVGb3JtYXQgY29kZQorICAgICAgICAgKiBoZXJlLCB3aGljaCBpcyB1bmRlc2lyYWJsZS4KKyAgICAgICAgICogKDIpIEF0dGVtcHRzIHRvIG1vdmUgdGhlIGNvZGUgZnJvbSBTaW1wbGVEYXRlRm9ybWF0IHRvIGhlcmUgYWxzbyBydW4KKyAgICAgICAgICogYWdyb3VuZCBiZWNhdXNlIHRoaXMgcmVxdWlyZXMgU2ltcGxlRGF0ZUZvcm1hdCB0byBrZWVwIGEgTG9jYWxlCisgICAgICAgICAqIG9iamVjdCBhcm91bmQsIHdoaWNoIGl0IGN1cnJlbnRseSBkb2Vzbid0OyB0byBzeW50aGVzaXplIHN1Y2ggYQorICAgICAgICAgKiBsb2NhbGUgdXBvbiByZXN1cnJlY3Rpb247IGFuZCB0byBzb21laG93IGhhbmRsZSB0aGUgc3BlY2lhbCBjYXNlIG9mCisgICAgICAgICAqIGNvbnN0cnVjdGlvbiBmcm9tIGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0LgorICAgICAgICAgKi8KKworICAgICAgICAvLyBXZSBrZWVwIGEgY2FjaGUsIGluZGV4ZWQgYnkgbG9jYWxlLiAgVGhlIGNhY2hlIGNvbnRhaW5zIGEKKyAgICAgICAgLy8gU2ltcGxlRGF0ZUZvcm1hdCBvYmplY3QsIHdoaWNoIHdlIGNyZWF0ZSBvbiBkZW1hbmQuCisgICAgICAgIFNvZnRSZWZlcmVuY2UgZGF0YSA9IChTb2Z0UmVmZXJlbmNlKWNhY2hlZExvY2FsZURhdGEuZ2V0KGxvY2FsZSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0OworICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8CisgICAgICAgICAgICAoZm9ybWF0ID0gKFNpbXBsZURhdGVGb3JtYXQpZGF0YS5nZXQoKSkgPT0gbnVsbCkgeworICAgICAgICAgICAgZm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobnVsbCwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGxvY2FsZSwgbmV3IFNvZnRSZWZlcmVuY2UoZm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IFNpbXBsZVRpbWVab25lIGFzIGEgc3RhbmQtaW4gZm9yIHRoaXMgem9uZTsgdGhlIHN0YW5kLWluCisgICAgICAgIC8vIHdpbGwgaGF2ZSBubyBEU1QsIG9yIERTVCBkdXJpbmcgSmFudWFyeSwgYnV0IHRoZSBzYW1lIElEIGFuZCBvZmZzZXQsCisgICAgICAgIC8vIGFuZCBoZW5jZSB0aGUgc2FtZSBkaXNwbGF5IG5hbWUuICBXZSBkb24ndCBjYWNoZSB0aGVzZSBiZWNhdXNlCisgICAgICAgIC8vIHRoZXkncmUgc21hbGwgYW5kIGNoZWFwIHRvIGNyZWF0ZS4KKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHo7CisgICAgICAgIGlmIChkYXlsaWdodCAmJiB1c2VEYXlsaWdodFRpbWUoKSkgeworICAgICAgICAgICAgaW50IHNhdmluZ3MgPSBnZXREU1RTYXZpbmdzKCk7CisgICAgICAgICAgICB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZShnZXRSYXdPZmZzZXQoKSwgZ2V0SUQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkpBTlVBUlksIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5GRUJSVUFSWSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmluZ3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoZ2V0UmF3T2Zmc2V0KCksIGdldElEKCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHBhdHRlcm5zID0geyAieiIsICJ6enp6IiwgInYiLCAidnZ2diIgfTsKKyAgICAgICAgZm9ybWF0LmFwcGx5UGF0dGVybihwYXR0ZXJuc1tzdHlsZV0pOyAgICAgIAorICAgICAgICBmb3JtYXQuc2V0VGltZVpvbmUodHopOworICAgICAgICAvLyBGb3JtYXQgYSBkYXRlIGluIEphbnVhcnkuICBXZSB1c2UgdGhlIHZhbHVlIDEwKk9ORV9EQVkgPT0gSmFuIDExIDE5NzAKKyAgICAgICAgLy8gMDowMCBHTVQuCisgICAgICAgIHJldHVybiBmb3JtYXQuZm9ybWF0KG5ldyBEYXRlKDg2NDAwMDAwMEwpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSB0byBiZSBhZGRlZCB0byBsb2NhbCBzdGFuZGFyZCB0aW1lCisgICAgICogdG8gZ2V0IGxvY2FsIHdhbGwgY2xvY2sgdGltZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhbHdheXMgcmV0dXJucyAzNjAwMDAwIG1pbGxpc2Vjb25kcworICAgICAqIChpLmUuLCBvbmUgaG91cikgaWYgdGhpcyB0aW1lIHpvbmUgb2JzZXJ2ZXMgRGF5bGlnaHQgU2F2aW5nCisgICAgICogVGltZS4gT3RoZXJ3aXNlLCAwICh6ZXJvKSBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbiB1bmRlcmx5aW5nIFRpbWVab25lIGltcGxlbWVudGF0aW9uIHN1YmNsYXNzIHN1cHBvcnRzCisgICAgICogaGlzdG9yaWNhbCBEYXlsaWdodCBTYXZpbmcgVGltZSBjaGFuZ2VzLCB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogdGhlIGtub3duIGxhdGVzdCBkYXlsaWdodCBzYXZpbmcgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2Ygc2F2aW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXREU1RTYXZpbmdzKCkgeworICAgIAlpZiAodXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAJICAgIHJldHVybiAzNjAwMDAwOworICAgIAl9CisgICAgCXJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJpZXMgaWYgdGhpcyB0aW1lIHpvbmUgdXNlcyBkYXlsaWdodCBzYXZpbmdzIHRpbWUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lLAorICAgICAqIGZhbHNlLCBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCk7CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGluIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpbgorICAgICAqIHRoaXMgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBpbiBkYXlsaWdodCBzYXZpbmdzIHRpbWUsCisgICAgICogZmFsc2UsIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGZvciB0aGUgZ2l2ZW4gSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIGZvciBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiwgZWl0aGVyIGFuIGFiYnJldmlhdGlvbgorICAgICAqIHN1Y2ggYXMgIlBTVCIsIGEgZnVsbCBuYW1lIHN1Y2ggYXMgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCBvciBhIGN1c3RvbQorICAgICAqIElEIHN1Y2ggYXMgIkdNVC04OjAwIi4gTm90ZSB0aGF0IHRoZSBzdXBwb3J0IG9mIGFiYnJldmlhdGlvbnMgaXMKKyAgICAgKiBmb3IgSkRLIDEuMS54IGNvbXBhdGliaWxpdHkgb25seSBhbmQgZnVsbCBuYW1lcyBzaG91bGQgYmUgdXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHNwZWNpZmllZCA8Y29kZT5UaW1lWm9uZTwvY29kZT4sIG9yIHRoZSBHTVQgem9uZSBpZiB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBjYW5ub3QgYmUgdW5kZXJzdG9vZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBUaW1lWm9uZSBnZXRUaW1lWm9uZShTdHJpbmcgSUQpIHsKKyAgICAgICAgLyogV2UgZmlyc3QgdHJ5IHRvIGxvb2t1cCB0aGUgem9uZSBJRCBpbiBvdXIgc3lzdGVtIGxpc3QuICBJZiB0aGlzCisgICAgICAgICAqIGZhaWxzLCB3ZSB0cnkgdG8gcGFyc2UgaXQgYXMgYSBjdXN0b20gc3RyaW5nIEdNVFsrLV1oaDptbS4gIElmCisgICAgICAgICAqIGFsbCBlbHNlIGZhaWxzLCB3ZSByZXR1cm4gR01ULCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB0aGUKKyAgICAgICAgICogdXNlciB3YW50cywgYnV0IGF0IGxlYXN0IGlzIGEgZnVuY3Rpb25pbmcgVGltZVpvbmUgb2JqZWN0LgorICAgICAgICAgKgorICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIE5VTEwsIGJlY2F1c2UgdGhhdCB3b3VsZCBicmVhayBjb21wYXRpYmlsaXR5CisgICAgICAgICAqIHdpdGggdGhlIEpESy4KKyAgICAgICAgICovCisgICAgICAgIGlmKElEPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIFRpbWVab25lIHJlc3VsdCA9IFpvbmVNZXRhLmdldFN5c3RlbVRpbWVab25lKElEKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gWm9uZU1ldGEuZ2V0Q3VzdG9tVGltZVpvbmUoSUQpOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gWm9uZU1ldGEuZ2V0R01UKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBuZXcgU3RyaW5nIGFycmF5IGNvbnRhaW5pbmcgYWxsIHN5c3RlbSBUaW1lWm9uZSBJRHMKKyAgICAgKiB3aXRoIHRoZSBnaXZlbiByYXcgb2Zmc2V0IGZyb20gR01ULiAgVGhlc2UgSURzIG1heSBiZSBwYXNzZWQgdG8KKyAgICAgKiA8Y29kZT5nZXQoKTwvY29kZT4gdG8gY29uc3RydWN0IHRoZSBjb3JyZXNwb25kaW5nIFRpbWVab25lCisgICAgICogb2JqZWN0LgorICAgICAqIEBwYXJhbSByYXdPZmZzZXQgdGhlIG9mZnNldCBpbiBtaWxsaXNlY29uZHMgZnJvbSBHTVQKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyB3aXRoIHRoZSBnaXZlbgorICAgICAqIHJhdyBvZmZzZXQuICBJZiB0aGVyZSBhcmUgbm9uZSwgcmV0dXJuIGEgemVyby1sZW5ndGggYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoaW50IHJhd09mZnNldCkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKHJhd09mZnNldCk7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY291bnRyeS4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gY291bnRyeSBhIHR3by1sZXR0ZXIgSVNPIDMxNjYgY291bnRyeSBjb2RlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqIHRvIHJldHVybiB6b25lcyBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBjb3VudHJ5CisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBJRHMgZm9yIHN5c3RlbSBUaW1lWm9uZXMgaW4gdGhlIGdpdmVuCisgICAgICogY291bnRyeS4gIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm4gYSB6ZXJvLWxlbmd0aCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhTdHJpbmcgY291bnRyeSkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKGNvdW50cnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcy4KKyAgICAgKiBUaGVzZSBJRHMgKGFuZCBvbmx5IHRoZXNlIElEcykgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBJRHMgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwIHRoYXQKKyAgICAgKiBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQuICBBbiBlcXVpdmFsZW5jeSBncm91cCBjb250YWlucyB6b25lcworICAgICAqIHRoYXQgaGF2ZSB0aGUgc2FtZSBHTVQgb2Zmc2V0IGFuZCBydWxlcy4KKyAgICAgKgorICAgICAqIDxwPlRoZSByZXR1cm5lZCBjb3VudCBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQ7IGl0IGlzIGFsd2F5cyA+PSAxCisgICAgICogZm9yIHZhbGlkIElEcy4gIFRoZSBnaXZlbiBJRCBtdXN0IGJlIGEgc3lzdGVtIHRpbWUgem9uZS4gIElmIGl0CisgICAgICogaXMgbm90LCByZXR1cm5zIHplcm8uCisgICAgICogQHBhcmFtIGlkIGEgc3lzdGVtIHRpbWUgem9uZSBJRAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiB6b25lcyBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgY29udGFpbmluZworICAgICAqICdpZCcsIG9yIHplcm8gaWYgJ2lkJyBpcyBub3QgYSB2YWxpZCBzeXN0ZW0gSUQKKyAgICAgKiBAc2VlICNnZXRFcXVpdmFsZW50SUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudEVxdWl2YWxlbnRJRHMoU3RyaW5nIGlkKSB7CisgICAgICAgIHJldHVybiBab25lTWV0YS5jb3VudEVxdWl2YWxlbnRJRHMoaWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gSUQgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwIHRoYXQKKyAgICAgKiBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQuICBBbiBlcXVpdmFsZW5jeSBncm91cCBjb250YWlucyB6b25lcworICAgICAqIHRoYXQgaGF2ZSB0aGUgc2FtZSBHTVQgb2Zmc2V0IGFuZCBydWxlcy4KKyAgICAgKgorICAgICAqIDxwPlRoZSBnaXZlbiBpbmRleCBtdXN0IGJlIGluIHRoZSByYW5nZSAwLi5uLTEsIHdoZXJlIG4gaXMgdGhlCisgICAgICogdmFsdWUgcmV0dXJuZWQgYnkgPGNvZGU+Y291bnRFcXVpdmFsZW50SURzKGlkKTwvY29kZT4uICBGb3IKKyAgICAgKiBzb21lIHZhbHVlIG9mICdpbmRleCcsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlIGVxdWFsIHRvIHRoZQorICAgICAqIGdpdmVuIGlkLiAgSWYgdGhlIGdpdmVuIGlkIGlzIG5vdCBhIHZhbGlkIHN5c3RlbSB0aW1lIHpvbmUsIG9yCisgICAgICogaWYgJ2luZGV4JyBpcyBvdXQgb2YgcmFuZ2UsIHRoZW4gcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgICAgICogQHBhcmFtIGlkIGEgc3lzdGVtIHRpbWUgem9uZSBJRAorICAgICAqIEBwYXJhbSBpbmRleCBhIHZhbHVlIGZyb20gMCB0byBuLTEsIHdoZXJlIG4gaXMgdGhlIHZhbHVlCisgICAgICogcmV0dXJuZWQgYnkgPGNvZGU+Y291bnRFcXVpdmFsZW50SURzKGlkKTwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRoZSBJRCBvZiB0aGUgaW5kZXgtdGggem9uZSBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAKKyAgICAgKiBjb250YWluaW5nICdpZCcsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiAnaWQnIGlzIG5vdCBhIHZhbGlkCisgICAgICogc3lzdGVtIElEIG9yICdpbmRleCcgaXMgb3V0IG9mIHJhbmdlCisgICAgICogQHNlZSAjY291bnRFcXVpdmFsZW50SURzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RXF1aXZhbGVudElEKFN0cmluZyBpZCwgaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBab25lTWV0YS5nZXRFcXVpdmFsZW50SUQoaWQsIGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPiBmb3IgdGhpcyBob3N0LgorICAgICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+IAorICAgICAqIG1heSB2YXJ5IHdpdGggaW1wbGVtZW50YXRpb24uCisgICAgICogQHJldHVybiBhIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFRpbWVab25lIGdldERlZmF1bHQoKSB7CisgICAgICAgIGlmIChkZWZhdWx0Wm9uZSA9PSBudWxsKSB7CisgICAgICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgdGVtcD1qYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgZGVmYXVsdFpvbmUgPSBnZXRUaW1lWm9uZSh0ZW1wLmdldElEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVGltZVpvbmUpIGRlZmF1bHRab25lLmNsb25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHRoYXQgaXMKKyAgICAgKiByZXR1cm5lZCBieSB0aGUgPGNvZGU+Z2V0RGVmYXVsdDwvY29kZT4gbWV0aG9kLiAgSWYgPGNvZGU+em9uZTwvY29kZT4KKyAgICAgKiBpcyBudWxsLCByZXNldCB0aGUgZGVmYXVsdCB0byB0aGUgdmFsdWUgaXQgaGFkIG9yaWdpbmFsbHkgd2hlbiB0aGUKKyAgICAgKiBWTSBmaXJzdCBzdGFydGVkLgorICAgICAqIEBwYXJhbSB0eiB0aGUgbmV3IGRlZmF1bHQgdGltZSB6b25lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXREZWZhdWx0KFRpbWVab25lIHR6KSB7CisgICAgICAgIAorICAgICAgICBkZWZhdWx0Wm9uZSA9IHR6OworICAgICAgICAvLyBLZWVwIGphdmEudXRpbC5UaW1lWm9uZSBkZWZhdWx0IGluIHN5bmMgc28gamF2YS51dGlsLkRhdGUKKyAgICAgICAgLy8gY2FuIGludGVyb3BlcmF0ZSB3aXRoIGNvbS5pYm0uaWN1LnV0aWwgY2xhc3Nlcy4KKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka1pvbmUgPSBudWxsOworICAgICAgICBpZiAodHogIT0gbnVsbCkgeworICAgICAgICAgICAgamRrWm9uZSA9IFRpbWVab25lQWRhcHRlci53cmFwKHR6KTsKKyAgICAgICAgfQorICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChqZGtab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyB6b25lIGhhcyB0aGUgc2FtZSBydWxlIGFuZCBvZmZzZXQgYXMgYW5vdGhlciB6b25lLgorICAgICAqIFRoYXQgaXMsIGlmIHRoaXMgem9uZSBkaWZmZXJzIG9ubHkgaW4gSUQsIGlmIGF0IGFsbC4gIFJldHVybnMgZmFsc2UKKyAgICAgKiBpZiB0aGUgb3RoZXIgem9uZSBpcyBudWxsLgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvdGhlciB6b25lIGlzIG5vdCBudWxsIGFuZCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9uZSwKKyAgICAgKiB3aXRoIHRoZSBwb3NzaWJsZSBleGNlcHRpb24gb2YgdGhlIElECisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aGVyKSB7CisgICAgICAgIHJldHVybiBvdGhlciAhPSBudWxsICYmCisgICAgICAgICAgICBnZXRSYXdPZmZzZXQoKSA9PSBvdGhlci5nZXRSYXdPZmZzZXQoKSAmJgorICAgICAgICAgICAgdXNlRGF5bGlnaHRUaW1lKCkgPT0gb3RoZXIudXNlRGF5bGlnaHRUaW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSBvdGhlciA9IChUaW1lWm9uZSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLklEID0gSUQ7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFRpbWVab25lIHdpdGggdGhlIHNhbWUgY2xhc3MgYW5kIElEIGFzIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFRpbWVab25lIHdpdGggdGhlIHNhbWUgY2xhc3MgYW5kIElEIGFzIHRoaXMKKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKXsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIChJRC5lcXVhbHMoKChUaW1lWm9uZSlvYmopLklEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgICAJcmV0dXJuIElELmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBzdHJpbmcgaWRlbnRpZmllciBvZiB0aGlzIDxjb2RlPlRpbWVab25lPC9jb2RlPi4gIFRoaXMgaXMgYQorICAgICAqIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIHVzZWQgaW50ZXJuYWxseSB0byBsb29rIHVwIDxjb2RlPlRpbWVab25lPC9jb2RlPgorICAgICAqIG9iamVjdHMgZnJvbSB0aGUgc3lzdGVtIHRhYmxlIGFuZCBhbHNvIHRvIG1hcCB0aGVtIHRvIHRoZWlyIGxvY2FsaXplZAorICAgICAqIGRpc3BsYXkgbmFtZXMuICA8Y29kZT5JRDwvY29kZT4gdmFsdWVzIGFyZSB1bmlxdWUgaW4gdGhlIHN5c3RlbQorICAgICAqIHRhYmxlIGJ1dCBtYXkgbm90IGJlIGZvciBkeW5hbWljYWxseSBjcmVhdGVkIHpvbmVzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgICAgICAgICAgSUQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCB0aW1lIHpvbmUsIG9yIG51bGwgaWYgbm90IHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lWm9uZSAgZGVmYXVsdFpvbmUgPSBudWxsOworCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ1YjY3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1VMb2NhbGUuamF2YQpAQCAtMCwwICsxLDI4MzYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIEEgY2xhc3MgYW5hbG9nb3VzIHRvIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfSB0aGF0IHByb3ZpZGVzIGFkZGl0aW9uYWwKKyAqIHN1cHBvcnQgZm9yIElDVSBwcm90b2NvbC4gIEluIElDVSAzLjAgdGhpcyBjbGFzcyBpcyBlbmhhbmNlZCB0byBzdXBwb3J0CisgKiBSRkMgMzA2NiBsYW5ndWFnZSBpZGVudGlmaWVycy4KKyAqCisgKiA8cD5NYW55IGNsYXNzZXMgYW5kIHNlcnZpY2VzIGluIElDVSBmb2xsb3cgYSBmYWN0b3J5IGlkaW9tLCBpbgorICogd2hpY2ggYSBmYWN0b3J5IG1ldGhvZCBvciBvYmplY3QgcmVzcG9uZHMgdG8gYSBjbGllbnQgcmVxdWVzdCB3aXRoCisgKiBhbiBvYmplY3QuICBUaGUgcmVxdWVzdCBpbmNsdWRlcyBhIGxvY2FsZSAodGhlIDxpPnJlcXVlc3RlZDwvaT4KKyAqIGxvY2FsZSksIGFuZCB0aGUgcmV0dXJuZWQgb2JqZWN0IGlzIGNvbnN0cnVjdGVkIHVzaW5nIGRhdGEgZm9yIHRoYXQKKyAqIGxvY2FsZS4gIFRoZSBzeXN0ZW0gbWF5IGxhY2sgZGF0YSBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUsIGluCisgKiB3aGljaCBjYXNlIHRoZSBsb2NhbGUgZmFsbGJhY2sgbWVjaGFuaXNtIHdpbGwgYmUgaW52b2tlZCB1bnRpbCBhCisgKiBwb3B1bGF0ZWQgbG9jYWxlIGlzIGZvdW5kICh0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSkuICBGdXJ0aGVybW9yZSwKKyAqIGV2ZW4gd2hlbiBhIHBvcHVsYXRlZCBsb2NhbGUgaXMgZm91bmQgKHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlKSwKKyAqIGZ1cnRoZXIgZmFsbGJhY2sgbWF5IGJlIHJlcXVpcmVkIHRvIHJlYWNoIGEgbG9jYWxlIGNvbnRhaW5pbmcgdGhlCisgKiBzcGVjaWZpYyBkYXRhIHJlcXVpcmVkIGJ5IHRoZSBzZXJ2aWNlICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLgorICoKKyAqIDxwPlVMb2NhbGUgcGVyZm9ybXMgPGI+J25vcm1hbGl6YXRpb24nPC9iPiBhbmQgPGI+J2Nhbm9uaWNhbGl6YXRpb24nPC9iPiBvZiBsb2NhbGUgaWRzLgorICogTm9ybWFsaXphdGlvbiAnY2xlYW5zIHVwJyBJQ1UgbG9jYWxlIGlkcyBhcyBmb2xsb3dzOgorICogPHVsPgorICogPGxpPmxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGFuZCBrZXl3b3JkcyBhcmUgcHJvcGVybHkgY2FzZWQ8YnI+CisgKiAobG93ZXIsIHRpdGxlLCB1cHBlciwgdXBwZXIsIGFuZCBsb3dlciBjYXNlIHJlc3BlY3RpdmVseSk8L2xpPgorICogPGxpPmh5cGhlbnMgdXNlZCBhcyBzZXBhcmF0b3JzIGFyZSBjb252ZXJ0ZWQgdG8gdW5kZXJzY29yZXM8L2xpPgorICogPGxpPnRocmVlLWxldHRlciBsYW5ndWFnZSBhbmQgY291bnRyeSBpZHMgYXJlIGNvbnZlcnRlZCB0byB0d28tbGV0dGVyCisgKiBlcXVpdmFsZW50cyB3aGVyZSBhdmFpbGFibGU8L2xpPgorICogPGxpPnN1cnJvdW5kaW5nIHNwYWNlcyBhcmUgcmVtb3ZlZCBmcm9tIGtleXdvcmRzIGFuZCB2YWx1ZXM8L2xpPgorICogPGxpPmlmIHRoZXJlIGFyZSBtdWx0aXBsZSBrZXl3b3JkcywgdGhleSBhcmUgcHV0IGluIHNvcnRlZCBvcmRlcjwvbGk+CisgKiA8L3VsPgorICogQ2Fub25pY2FsaXphdGlvbiBhZGRpdGlvbmFsbHkgcGVyZm9ybXMgdGhlIGZvbGxvd2luZzoKKyAqIDx1bD4KKyAqIDxsaT5QT1NJWCBpZHMgYXJlIGNvbnZlcnRlZCB0byBJQ1UgZm9ybWF0IElEczwvbGk+CisgKiA8bGk+J2dyYW5kZmF0aGVyZWQnIDMwNjYgaWRzIGFyZSBjb252ZXJ0ZWQgdG8gSUNVIHN0YW5kYXJkIGZvcm08L2xpPgorICogPGxpPidQUkVFVVJPJyBhbmQgJ0VVUk8nIHZhcmlhbnRzIGFyZSBjb252ZXJ0ZWQgdG8gY3VycmVuY3kga2V5d29yZCBmb3JtLCB3aXRoIHRoZSBjdXJyZW5jeQorICogaWQgYXBwcm9wcmlhdGUgdG8gdGhlIGNvdW50cnkgb2YgdGhlIGxvY2FsZSAoZm9yIFBSRUVVUk8pIG9yIEVVUiAoZm9yIEVVUk8pLgorICogPC91bD4KKyAqIEFsbCBVTG9jYWxlIGNvbnN0cnVjdG9ycyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZSB0aGUgbG9jYWxlIGlkLiAgVG8gaGFuZGxlCisgKiBQT1NJWCBpZHMsIDxjb2RlPmNhbm9uaWNhbGl6ZTwvY29kZT4gY2FuIGJlIGNhbGxlZCB0byBjb252ZXJ0IHRoZSBpZAorICogdG8gY2Fub25pY2FsIGZvcm0sIG9yIHRoZSA8Y29kZT5jYW5vbmljYWxJbnN0YW5jZTwvY29kZT4gZmFjdG9yeSBtZXRob2QKKyAqIGNhbiBiZSBjYWxsZWQuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgcHJvdmlkZXMgc2VsZWN0b3JzIHtAbGluayAjVkFMSURfTE9DQUxFfSBhbmQge0BsaW5rCisgKiAjQUNUVUFMX0xPQ0FMRX0gaW50ZW5kZWQgZm9yIHVzZSBpbiBtZXRob2RzIG5hbWVkCisgKiA8dHQ+Z2V0TG9jYWxlKCk8L3R0Pi4gIFRoZXNlIG1ldGhvZHMgZXhpc3QgaW4gc2V2ZXJhbCBJQ1UgY2xhc3NlcywKKyAqIGluY2x1ZGluZyB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcn0sIHtAbGluaworICogY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeX0sIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlVGb3JtYXR9LAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sc30sIGFuZCB7QGxpbmsKKyAqIGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHN9IGFuZCB0aGVpciBzdWJjbGFzc2VzLCBpZgorICogYW55LiAgT25jZSBhbiBvYmplY3Qgb2Ygb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGJlZW4gY3JlYXRlZCwKKyAqIDx0dD5nZXRMb2NhbGUoKTwvdHQ+IG1heSBiZSBjYWxsZWQgb24gaXQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZCBhbmQKKyAqIGFjdHVhbCBsb2NhbGUgYXJyaXZlZCBhdCBkdXJpbmcgdGhlIG9iamVjdCdzIGNvbnN0cnVjdGlvbi4KKyAqCisgKiA8cD5Ob3RlOiBUaGUgPHR0PmdldExvY2FsZSgpPC90dD4gbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVCisgKiAzLjA7IElDVSAyLjggY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUKKyAqIDxpPmFjdHVhbDwvaT4gbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4KKyAqIGxvY2FsZSBpcyBub3QsIGluIG1vc3QgY2FzZXMuCisgKgorICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgKiBAYXV0aG9yIHdlaXYKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOCAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVMb2NhbGUgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworICAgIC8vIHVzaW5nIHNlcmlhbHZlciBmcm9tIGpkazEuNC4yXzA1CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMzcxNTE3NzY3MDM1MjMwOTIxN0w7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRU5HTElTSCA9IG5ldyBVTG9jYWxlKCJlbiIsIExvY2FsZS5FTkdMSVNIKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBGUkVOQ0ggPSBuZXcgVUxvY2FsZSgiZnIiLCBMb2NhbGUuRlJFTkNIKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBHRVJNQU4gPSBuZXcgVUxvY2FsZSgiZGUiLCBMb2NhbGUuR0VSTUFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBJVEFMSUFOID0gbmV3IFVMb2NhbGUoIml0IiwgTG9jYWxlLklUQUxJQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEpBUEFORVNFID0gbmV3IFVMb2NhbGUoImphIiwgTG9jYWxlLkpBUEFORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBLT1JFQU4gPSBuZXcgVUxvY2FsZSgia28iLCBMb2NhbGUuS09SRUFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDSElORVNFID0gbmV3IFVMb2NhbGUoInpoIiwgTG9jYWxlLkNISU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFNJTVBMSUZJRURfQ0hJTkVTRSA9IG5ldyBVTG9jYWxlKCJ6aF9IYW5zIiwgTG9jYWxlLkNISU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFRSQURJVElPTkFMX0NISU5FU0UgPSBuZXcgVUxvY2FsZSgiemhfSGFudCIsIExvY2FsZS5DSElORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBGUkFOQ0UgPSBuZXcgVUxvY2FsZSgiZnJfRlIiLCBMb2NhbGUuRlJBTkNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBHRVJNQU5ZID0gbmV3IFVMb2NhbGUoImRlX0RFIiwgTG9jYWxlLkdFUk1BTlkpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIElUQUxZID0gbmV3IFVMb2NhbGUoIml0X0lUIiwgTG9jYWxlLklUQUxZKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBKQVBBTiA9IG5ldyBVTG9jYWxlKCJqYV9KUCIsIExvY2FsZS5KQVBBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgS09SRUEgPSBuZXcgVUxvY2FsZSgia29fS1IiLCBMb2NhbGUuS09SRUEpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENISU5BID0gbmV3IFVMb2NhbGUoInpoX0hhbnNfQ04iLCBMb2NhbGUuQ0hJTkEpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFBSQyA9IENISU5BOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFRBSVdBTiA9IG5ldyBVTG9jYWxlKCJ6aF9IYW50X1RXIiwgTG9jYWxlLlRBSVdBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVUsgPSBuZXcgVUxvY2FsZSgiZW5fR0IiLCBMb2NhbGUuVUspOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFVTID0gbmV3IFVMb2NhbGUoImVuX1VTIiwgTG9jYWxlLlVTKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDQU5BREEgPSBuZXcgVUxvY2FsZSgiZW5fQ0EiLCBMb2NhbGUuQ0FOQURBKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDQU5BREFfRlJFTkNIID0gbmV3IFVMb2NhbGUoImZyX0NBIiwgTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworCisgICAgLyoqCisgICAgICogSGFuZHkgY29uc3RhbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVNUFRZX1NUUklORyA9ICIiOworCisgICAgLy8gVXNlZCBpbiBib3RoIFVMb2NhbGUgYW5kIElEUGFyc2VyLCBzbyBtb3ZlZCB1cCBoZXJlLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgVU5ERVJTQ09SRSAgICAgICAgICAgID0gJ18nOworCisgICAgLy8gZGVmYXVsdCBlbXB0eSBsb2NhbGUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgRU1QVFlfTE9DQUxFID0gbmV3IExvY2FsZSgiIiwgIiIpOworCisgICAgLyoqCisgICAgICogVGhlIHJvb3QgVUxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFJPT1QgPSBuZXcgVUxvY2FsZSgicm9vdCIsIEVNUFRZX0xPQ0FMRSk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaE1hcCBDQUNIRSA9IG5ldyBIYXNoTWFwKDIwKTsKKyAgICBzdGF0aWMgeworICAgICAgICBDQUNIRS5wdXQoRU1QVFlfTE9DQUxFLCBST09UKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5FTkdMSVNILCBFTkdMSVNIKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkVOQ0gsIEZSRU5DSCk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOLCBHRVJNQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLklUQUxJQU4sIElUQUxJQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkpBUEFORVNFLCBKQVBBTkVTRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuS09SRUFOLCBLT1JFQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNISU5FU0UsIENISU5FU0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlNJTVBMSUZJRURfQ0hJTkVTRSwgU0lNUExJRklFRF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLCBUUkFESVRJT05BTF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkFOQ0UsIEZSQU5DRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOWSwgR0VSTUFOWSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuSVRBTFksIElUQUxZKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5KQVBBTiwgSkFQQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLktPUkVBLCBLT1JFQSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuQ0hJTkEsIENISU5BKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UQUlXQU4sIFRBSVdBTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuVUssIFVLKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5VUywgVVMpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNBTkFEQSwgQ0FOQURBKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5DQU5BREFfRlJFTkNILCBDQU5BREFfRlJFTkNIKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0aGUgbG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IExvY2FsZSBsb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmF3IGxvY2FsZUlEIHRoYXQgd2Ugd2VyZSBwYXNzZWQgaW4uCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbG9jYWxlSUQ7CisKKyAgICAvKioKKyAgICAgKiBUYWJsZXMgdXNlZCBpbiBub3JtYWxpemluZyBwb3J0aW9ucyBvZiB0aGUgaWQuCisgICAgICovCisgICAgLyogdGFibGVzIHVwZGF0ZWQgcGVyIGh0dHA6Ly9sY3dlYi5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi8gCisgICAgICAgdG8gaW5jbHVkZSB0aGUgcmV2aXNpb25zIHVwIHRvIDIwMDEvNy8yNyAqQ1dCKi8KKyAgICAvKiBUaGUgMyBjaGFyYWN0ZXIgY29kZXMgYXJlIHRoZSB0ZXJtaW5vbG9neSBjb2RlcyBsaWtlIFJGQyAzMDY2LiAgCisgICAgICAgVGhpcyBpcyBjb21wYXRpYmxlIHdpdGggcHJpb3IgSUNVIGNvZGVzICovCisgICAgLyogImluIiAiaXciICJqaSIgImp3IiAmICJzaCIgaGF2ZSBiZWVuIHdpdGhkcmF3biBidXQgYXJlIHN0aWxsIGluIAorICAgICAgIHRoZSB0YWJsZSBidXQgbm93IGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlIGJlY2F1c2UgCisgICAgICAgMyBjaGFyYWN0ZXIgY29kZXMgYXJlIGR1cGxpY2F0ZXMuICBUaGlzIGF2b2lkcyBiYWQgc2VhcmNoZXMKKyAgICAgICBnb2luZyBmcm9tIDMgdG8gMiBjaGFyYWN0ZXIgY29kZXMuKi8KKyAgICAvKiBUaGUgcmFuZ2UgcWFhLXF0eiBpcyByZXNlcnZlZCBmb3IgbG9jYWwgdXNlLiAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2xhbmd1YWdlczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfcmVwbGFjZW1lbnRMYW5ndWFnZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlTGFuZ3VhZ2VzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9sYW5ndWFnZXMzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUxhbmd1YWdlczM7CisKKyAgICAvLyBBdm9pZCBpbml0aWFsaXppbmcgbGFuZ3VhZ2VzIHRhYmxlcyB1bmxlc3Mgd2UgaGF2ZSB0by4KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGluaXRMYW5ndWFnZVRhYmxlcygpIHsKKyAgICAgICAgaWYgKF9sYW5ndWFnZXMgPT0gbnVsbCkgeworCisgICAgICAgICAgICAvKiBUaGlzIGxpc3QgTVVTVCBiZSBpbiBzb3J0ZWQgb3JkZXIsIGFuZCBNVVNUIGNvbnRhaW4gdGhlIHR3by1sZXR0ZXIgY29kZXMKKyAgICAgICAgICAgICAgIGlmIG9uZSBleGlzdHMgb3RoZXJ3aXNlIHVzZSB0aGUgdGhyZWUgbGV0dGVyIGNvZGUgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBMYW5ndWFnZXMgPSB7CisgICAgICAgICAgICAgICAgImFhIiwgICJhYiIsICAiYWNlIiwgImFjaCIsICJhZGEiLCAiYWR5IiwgImFlIiwgICJhZiIsICAiYWZhIiwKKyAgICAgICAgICAgICAgICAiYWZoIiwgImFrIiwgICJha2siLCAiYWxlIiwgImFsZyIsICJhbSIsICAiYW4iLCAgImFuZyIsICJhcGEiLAorICAgICAgICAgICAgICAgICJhciIsICAiYXJjIiwgImFybiIsICJhcnAiLCAiYXJ0IiwgImFydyIsICJhcyIsICAiYXN0IiwKKyAgICAgICAgICAgICAgICAiYXRoIiwgImF1cyIsICJhdiIsICAiYXdhIiwgImF5IiwgICJheiIsICAiYmEiLCAgImJhZCIsCisgICAgICAgICAgICAgICAgImJhaSIsICJiYWwiLCAiYmFuIiwgImJhcyIsICJiYXQiLCAiYmUiLCAgImJlaiIsCisgICAgICAgICAgICAgICAgImJlbSIsICJiZXIiLCAiYmciLCAgImJoIiwgICJiaG8iLCAiYmkiLCAgImJpayIsICJiaW4iLAorICAgICAgICAgICAgICAgICJibGEiLCAiYm0iLCAgImJuIiwgICJibnQiLCAiYm8iLCAgImJyIiwgICJicmEiLCAiYnMiLAorICAgICAgICAgICAgICAgICJidGsiLCAiYnVhIiwgImJ1ZyIsICJieW4iLCAiY2EiLCAgImNhZCIsICJjYWkiLCAiY2FyIiwgImNhdSIsCisgICAgICAgICAgICAgICAgImNlIiwgICJjZWIiLCAiY2VsIiwgImNoIiwgICJjaGIiLCAiY2hnIiwgImNoayIsICJjaG0iLAorICAgICAgICAgICAgICAgICJjaG4iLCAiY2hvIiwgImNocCIsICJjaHIiLCAiY2h5IiwgImNtYyIsICJjbyIsICAiY29wIiwKKyAgICAgICAgICAgICAgICAiY3BlIiwgImNwZiIsICJjcHAiLCAiY3IiLCAgImNyaCIsICJjcnAiLCAiY3MiLCAgImNzYiIsICJjdSIsICAiY3VzIiwKKyAgICAgICAgICAgICAgICAiY3YiLCAgImN5IiwgICJkYSIsICAiZGFrIiwgImRhciIsICJkYXkiLCAiZGUiLCAgImRlbCIsICJkZW4iLAorICAgICAgICAgICAgICAgICJkZ3IiLCAiZGluIiwgImRvaSIsICJkcmEiLCAiZHNiIiwgImR1YSIsICJkdW0iLCAiZHYiLCAgImR5dSIsCisgICAgICAgICAgICAgICAgImR6IiwgICJlZSIsICAiZWZpIiwgImVneSIsICJla2EiLCAiZWwiLCAgImVseCIsICJlbiIsCisgICAgICAgICAgICAgICAgImVubSIsICJlbyIsICAiZXMiLCAgImV0IiwgICJldSIsICAiZXdvIiwgImZhIiwKKyAgICAgICAgICAgICAgICAiZmFuIiwgImZhdCIsICJmZiIsICAiZmkiLCAgImZpdSIsICJmaiIsICAiZm8iLCAgImZvbiIsCisgICAgICAgICAgICAgICAgImZyIiwgICJmcm0iLCAiZnJvIiwgImZ1ciIsICJmeSIsICAiZ2EiLCAgImdhYSIsICJnYXkiLAorICAgICAgICAgICAgICAgICJnYmEiLCAiZ2QiLCAgImdlbSIsICJnZXoiLCAiZ2lsIiwgImdsIiwgICJnbWgiLCAiZ24iLAorICAgICAgICAgICAgICAgICJnb2giLCAiZ29uIiwgImdvciIsICJnb3QiLCAiZ3JiIiwgImdyYyIsICJndSIsICAiZ3YiLAorICAgICAgICAgICAgICAgICJnd2kiLCAiaGEiLCAgImhhaSIsICJoYXciLCAiaGUiLCAgImhpIiwgICJoaWwiLCAiaGltIiwKKyAgICAgICAgICAgICAgICAiaGl0IiwgImhtbiIsICJobyIsICAiaHIiLCAgImhzYiIsICJodCIsICAiaHUiLCAgImh1cCIsICJoeSIsICAiaHoiLAorICAgICAgICAgICAgICAgICJpYSIsICAiaWJhIiwgImlkIiwgICJpZSIsICAiaWciLCAgImlpIiwgICJpam8iLCAiaWsiLAorICAgICAgICAgICAgICAgICJpbG8iLCAiaW5jIiwgImluZSIsICJpbmgiLCAiaW8iLCAgImlyYSIsICJpcm8iLCAiaXMiLCAgIml0IiwKKyAgICAgICAgICAgICAgICAiaXUiLCAgImphIiwgICJqYm8iLCAianByIiwgImpyYiIsICJqdiIsICAia2EiLCAgImthYSIsICJrYWIiLAorICAgICAgICAgICAgICAgICJrYWMiLCAia2FtIiwgImthciIsICJrYXciLCAia2JkIiwgImtnIiwgICJraGEiLCAia2hpIiwKKyAgICAgICAgICAgICAgICAia2hvIiwgImtpIiwgICJraiIsICAia2siLCAgImtsIiwgICJrbSIsICAia21iIiwgImtuIiwKKyAgICAgICAgICAgICAgICAia28iLCAgImtvayIsICJrb3MiLCAia3BlIiwgImtyIiwgICJrcmMiLCAia3JvIiwgImtydSIsICJrcyIsCisgICAgICAgICAgICAgICAgImt1IiwgICJrdW0iLCAia3V0IiwgImt2IiwgICJrdyIsICAia3kiLCAgImxhIiwgICJsYWQiLAorICAgICAgICAgICAgICAgICJsYWgiLCAibGFtIiwgImxiIiwgICJsZXoiLCAibGciLCAgImxpIiwgICJsbiIsICAibG8iLCAgImxvbCIsCisgICAgICAgICAgICAgICAgImxveiIsICJsdCIsICAibHUiLCAgImx1YSIsICJsdWkiLCAibHVuIiwgImx1byIsICJsdXMiLAorICAgICAgICAgICAgICAgICJsdiIsICAibWFkIiwgIm1hZyIsICJtYWkiLCAibWFrIiwgIm1hbiIsICJtYXAiLCAibWFzIiwKKyAgICAgICAgICAgICAgICAibWRmIiwgIm1kciIsICJtZW4iLCAibWciLCAgIm1nYSIsICJtaCIsICAibWkiLCAgIm1pYyIsICJtaW4iLAorICAgICAgICAgICAgICAgICJtaXMiLCAibWsiLCAgIm1raCIsICJtbCIsICAibW4iLCAgIm1uYyIsICJtbmkiLCAibW5vIiwKKyAgICAgICAgICAgICAgICAibW8iLCAgIm1vaCIsICJtb3MiLCAibXIiLCAgIm1zIiwgICJtdCIsICAibXVsIiwgIm11biIsCisgICAgICAgICAgICAgICAgIm11cyIsICJtd3IiLCAibXkiLCAgIm15biIsICJteXYiLCAibmEiLCAgIm5haCIsICJuYWkiLCAibmFwIiwKKyAgICAgICAgICAgICAgICAibmIiLCAgIm5kIiwgICJuZHMiLCAibmUiLCAgIm5ldyIsICJuZyIsICAibmlhIiwgIm5pYyIsCisgICAgICAgICAgICAgICAgIm5pdSIsICJubCIsICAibm4iLCAgIm5vIiwgICJub2ciLCAibm9uIiwgIm5yIiwgICJuc28iLCAibnViIiwKKyAgICAgICAgICAgICAgICAibnYiLCAgIm53YyIsICJueSIsICAibnltIiwgIm55biIsICJueW8iLCAibnppIiwgIm9jIiwgICJvaiIsCisgICAgICAgICAgICAgICAgIm9tIiwgICJvciIsICAib3MiLCAgIm9zYSIsICJvdGEiLCAib3RvIiwgInBhIiwgICJwYWEiLAorICAgICAgICAgICAgICAgICJwYWciLCAicGFsIiwgInBhbSIsICJwYXAiLCAicGF1IiwgInBlbyIsICJwaGkiLCAicGhuIiwKKyAgICAgICAgICAgICAgICAicGkiLCAgInBsIiwgICJwb24iLCAicHJhIiwgInBybyIsICJwcyIsICAicHQiLCAgInF1IiwKKyAgICAgICAgICAgICAgICAicmFqIiwgInJhcCIsICJyYXIiLCAicm0iLCAgInJuIiwgICJybyIsICAicm9hIiwgInJvbSIsCisgICAgICAgICAgICAgICAgInJ1IiwgICJydXAiLCAicnciLCAgInNhIiwgICJzYWQiLCAic2FoIiwgInNhaSIsICJzYWwiLCAic2FtIiwKKyAgICAgICAgICAgICAgICAic2FzIiwgInNhdCIsICJzYyIsICAic2NvIiwgInNkIiwgICJzZSIsICAic2VsIiwgInNlbSIsCisgICAgICAgICAgICAgICAgInNnIiwgICJzZ2EiLCAic2duIiwgInNobiIsICJzaSIsICAic2lkIiwgInNpbyIsICJzaXQiLAorICAgICAgICAgICAgICAgICJzayIsICAic2wiLCAgInNsYSIsICJzbSIsICAic21hIiwgInNtaSIsICJzbWoiLCAic21uIiwKKyAgICAgICAgICAgICAgICAic21zIiwgInNuIiwgICJzbmsiLCAic28iLCAgInNvZyIsICJzb24iLCAic3EiLCAgInNyIiwKKyAgICAgICAgICAgICAgICAic3JyIiwgInNzIiwgICJzc2EiLCAic3QiLCAgInN1IiwgICJzdWsiLCAic3VzIiwgInN1eCIsCisgICAgICAgICAgICAgICAgInN2IiwgICJzdyIsICAic3lyIiwgInRhIiwgICJ0YWkiLCAidGUiLCAgInRlbSIsICJ0ZXIiLAorICAgICAgICAgICAgICAgICJ0ZXQiLCAidGciLCAgInRoIiwgICJ0aSIsICAidGlnIiwgInRpdiIsICJ0ayIsICAidGtsIiwKKyAgICAgICAgICAgICAgICAidGwiLCAgInRsaCIsICJ0bGkiLCAidG1oIiwgInRuIiwgICJ0byIsICAidG9nIiwgInRwaSIsICJ0ciIsCisgICAgICAgICAgICAgICAgInRzIiwgICJ0c2kiLCAidHQiLCAgInR1bSIsICJ0dXAiLCAidHV0IiwgInR2bCIsICJ0dyIsCisgICAgICAgICAgICAgICAgInR5IiwgICJ0eXYiLCAidWRtIiwgInVnIiwgICJ1Z2EiLCAidWsiLCAgInVtYiIsICJ1bmQiLCAidXIiLAorICAgICAgICAgICAgICAgICJ1eiIsICAidmFpIiwgInZlIiwgICJ2aSIsICAidm8iLCAgInZvdCIsICJ3YSIsICAid2FrIiwKKyAgICAgICAgICAgICAgICAid2FsIiwgIndhciIsICJ3YXMiLCAid2VuIiwgIndvIiwgICJ4YWwiLCAieGgiLCAgInlhbyIsICJ5YXAiLAorICAgICAgICAgICAgICAgICJ5aSIsICAieW8iLCAgInlwayIsICJ6YSIsICAiemFwIiwgInplbiIsICJ6aCIsICAiem5kIiwKKyAgICAgICAgICAgICAgICAienUiLCAgInp1biIsIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nW10gdGVtcFJlcGxhY2VtZW50TGFuZ3VhZ2VzID0geworICAgICAgICAgICAgICAgICJpZCIsICJoZSIsICJ5aSIsICJqdiIsICJzciIsICJuYiIsLyogcmVwbGFjZW1lbnQgbGFuZ3VhZ2UgY29kZXMgKi8KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUxhbmd1YWdlcyA9IHsKKyAgICAgICAgICAgICAgICAiaW4iLCAiaXciLCAiamkiLCAianciLCAic2giLCAibm8iLCAgICAvKiBvYnNvbGV0ZSBsYW5ndWFnZSBjb2RlcyAqLyAgICAgICAgIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgY29udGFpbiBhIHRocmVlLWxldHRlciBjb2RlIGZvciBldmVyeSB0d28tbGV0dGVyIGNvZGUgaW4gdGhlCisgICAgICAgICAgICAgICBsaXN0IGFib3ZlLCBhbmQgdGhleSBNVVNUIG5lIGluIHRoZSBzYW1lIG9yZGVyIChpLmUuLCB0aGUgc2FtZSBsYW5ndWFnZSBtdXN0CisgICAgICAgICAgICAgICBiZSBpbiB0aGUgc2FtZSBwbGFjZSBpbiBib3RoIGxpc3RzKSEgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBMYW5ndWFnZXMzID0geworICAgICAgICAgICAgICAgIC8qImFhIiwgICJhYiIsICAiYWNlIiwgImFjaCIsICJhZGEiLCAiYWR5IiwgImFlIiwgICJhZiIsICAiYWZhIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYWFyIiwgImFiayIsICJhY2UiLCAiYWNoIiwgImFkYSIsICJhZHkiLCAiYXZlIiwgImFmciIsICJhZmEiLAorICAgICAgICAgICAgICAgIC8qImFmaCIsICJhayIsICAiYWtrIiwgImFsZSIsICJhbGciLCAiYW0iLCAgImFuIiwgICJhbmciLCAiYXBhIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYWZoIiwgImFrYSIsICJha2siLCAiYWxlIiwgImFsZyIsICJhbWgiLCAiYXJnIiwgImFuZyIsICJhcGEiLAorICAgICAgICAgICAgICAgIC8qImFyIiwgICJhcmMiLCAiYXJuIiwgImFycCIsICJhcnQiLCAiYXJ3IiwgImFzIiwgICJhc3QiLCAgICAqLworICAgICAgICAgICAgICAgICJhcmEiLCAiYXJjIiwgImFybiIsICJhcnAiLCAiYXJ0IiwgImFydyIsICJhc20iLCAiYXN0IiwKKyAgICAgICAgICAgICAgICAvKiJhdGgiLCAiYXVzIiwgImF2IiwgICJhd2EiLCAiYXkiLCAgImF6IiwgICJiYSIsICAiYmFkIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYXRoIiwgImF1cyIsICJhdmEiLCAiYXdhIiwgImF5bSIsICJhemUiLCAiYmFrIiwgImJhZCIsCisgICAgICAgICAgICAgICAgLyoiYmFpIiwgImJhbCIsICJiYW4iLCAiYmFzIiwgImJhdCIsICJiZSIsICAiYmVqIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYmFpIiwgImJhbCIsICJiYW4iLCAiYmFzIiwgImJhdCIsICJiZWwiLCAiYmVqIiwKKyAgICAgICAgICAgICAgICAvKiJiZW0iLCAiYmVyIiwgImJnIiwgICJiaCIsICAiYmhvIiwgImJpIiwgICJiaWsiLCAiYmluIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYmVtIiwgImJlciIsICJidWwiLCAiYmloIiwgImJobyIsICJiaXMiLCAiYmlrIiwgImJpbiIsCisgICAgICAgICAgICAgICAgLyoiYmxhIiwgImJtIiwgICJibiIsICAiYm50IiwgImJvIiwgICJiciIsICAiYnJhIiwgImJzIiwgICAgICovCisgICAgICAgICAgICAgICAgImJsYSIsICJiYW0iLCAgImJlbiIsICJibnQiLCAiYm9kIiwgImJyZSIsICJicmEiLCAiYm9zIiwKKyAgICAgICAgICAgICAgICAvKiJidGsiLCAiYnVhIiwgImJ1ZyIsICJieW4iLCAiY2EiLCAgImNhZCIsICJjYWkiLCAiY2FyIiwgImNhdSIsICAgICovCisgICAgICAgICAgICAgICAgImJ0ayIsICJidWEiLCAiYnVnIiwgImJ5biIsICJjYXQiLCAiY2FkIiwgImNhaSIsICJjYXIiLCAiY2F1IiwKKyAgICAgICAgICAgICAgICAvKiJjZSIsICAiY2ViIiwgImNlbCIsICJjaCIsICAiY2hiIiwgImNoZyIsICJjaGsiLCAiY2htIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY2hlIiwgImNlYiIsICJjZWwiLCAiY2hhIiwgImNoYiIsICJjaGciLCAiY2hrIiwgImNobSIsCisgICAgICAgICAgICAgICAgLyoiY2huIiwgImNobyIsICJjaHAiLCAiY2hyIiwgImNoeSIsICJjbWMiLCAiY28iLCAgImNvcCIsICAgICovCisgICAgICAgICAgICAgICAgImNobiIsICJjaG8iLCAiY2hwIiwgImNociIsICJjaHkiLCAiY21jIiwgImNvcyIsICJjb3AiLAorICAgICAgICAgICAgICAgIC8qImNwZSIsICJjcGYiLCAiY3BwIiwgImNyIiwgICJjcmgiLCAiY3JwIiwgImNzIiwgICJjc2IiLCAiY3UiLCAgImN1cyIsICAgICovCisgICAgICAgICAgICAgICAgImNwZSIsICJjcGYiLCAiY3BwIiwgImNyZSIsICJjcmgiLCAiY3JwIiwgImNlcyIsICJjc2IiLCAiY2h1IiwgImN1cyIsCisgICAgICAgICAgICAgICAgLyoiY3YiLCAgImN5IiwgICJkYSIsICAiZGFrIiwgImRhciIsICJkYXkiLCAiZGUiLCAgImRlbCIsICJkZW4iLCAgICAqLworICAgICAgICAgICAgICAgICJjaHYiLCAiY3ltIiwgImRhbiIsICJkYWsiLCAiZGFyIiwgImRheSIsICJkZXUiLCAiZGVsIiwgImRlbiIsCisgICAgICAgICAgICAgICAgLyoiZGdyIiwgImRpbiIsICJkb2kiLCAiZHJhIiwgImRzYiIsICJkdWEiLCAiZHVtIiwgImR2IiwgICJkeXUiLCAgICAqLworICAgICAgICAgICAgICAgICJkZ3IiLCAiZGluIiwgImRvaSIsICJkcmEiLCAiZHNiIiwgImR1YSIsICJkdW0iLCAiZGl2IiwgImR5dSIsCisgICAgICAgICAgICAgICAgLyoiZHoiLCAgImVlIiwgICJlZmkiLCAiZWd5IiwgImVrYSIsICJlbCIsICAiZWx4IiwgImVuIiwgICAgICovCisgICAgICAgICAgICAgICAgImR6byIsICJld2UiLCAiZWZpIiwgImVneSIsICJla2EiLCAiZWxsIiwgImVseCIsICJlbmciLAorICAgICAgICAgICAgICAgIC8qImVubSIsICJlbyIsICAiZXMiLCAgImV0IiwgICJldSIsICAiZXdvIiwgImZhIiwgICAgICovCisgICAgICAgICAgICAgICAgImVubSIsICJlcG8iLCAic3BhIiwgImVzdCIsICJldXMiLCAiZXdvIiwgImZhcyIsCisgICAgICAgICAgICAgICAgLyoiZmFuIiwgImZhdCIsICJmZiIsICAiZmkiLCAgImZpdSIsICJmaiIsICAiZm8iLCAgImZvbiIsICAgICovCisgICAgICAgICAgICAgICAgImZhbiIsICJmYXQiLCAiZnVsIiwgImZpbiIsICJmaXUiLCAiZmlqIiwgImZhbyIsICJmb24iLAorICAgICAgICAgICAgICAgIC8qImZyIiwgICJmcm0iLCAiZnJvIiwgImZ1ciIsICJmeSIsICAiZ2EiLCAgImdhYSIsICJnYXkiLCAgICAqLworICAgICAgICAgICAgICAgICJmcmEiLCAiZnJtIiwgImZybyIsICJmdXIiLCAiZnJ5IiwgImdsZSIsICJnYWEiLCAiZ2F5IiwKKyAgICAgICAgICAgICAgICAvKiJnYmEiLCAiZ2QiLCAgImdlbSIsICJnZXoiLCAiZ2lsIiwgImdsIiwgICJnbWgiLCAiZ24iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZ2JhIiwgImdsYSIsICJnZW0iLCAiZ2V6IiwgImdpbCIsICJnbGciLCAiZ21oIiwgImdybiIsCisgICAgICAgICAgICAgICAgLyoiZ29oIiwgImdvbiIsICJnb3IiLCAiZ290IiwgImdyYiIsICJncmMiLCAiZ3UiLCAgImd2IiwgICAgICovCisgICAgICAgICAgICAgICAgImdvaCIsICJnb24iLCAiZ29yIiwgImdvdCIsICJncmIiLCAiZ3JjIiwgImd1aiIsICJnbHYiLAorICAgICAgICAgICAgICAgIC8qImd3aSIsICJoYSIsICAiaGFpIiwgImhhdyIsICJoZSIsICAiaGkiLCAgImhpbCIsICJoaW0iLCAgICAqLworICAgICAgICAgICAgICAgICJnd2kiLCAiaGF1IiwgImhhaSIsICJoYXciLCAiaGViIiwgImhpbiIsICJoaWwiLCAiaGltIiwKKyAgICAgICAgICAgICAgICAvKiJoaXQiLCAiaG1uIiwgImhvIiwgICJociIsICAiaHNiIiwgImh0IiwgICJodSIsICAiaHVwIiwgImh5IiwgICJoeiIsICAgICAqLworICAgICAgICAgICAgICAgICJoaXQiLCAiaG1uIiwgImhtbyIsICJocnYiLCAiaHNiIiwgImhhdCIsICJodW4iLCAiaHVwIiwgImh5ZSIsICJoZXIiLAorICAgICAgICAgICAgICAgIC8qImlhIiwgICJpYmEiLCAiaWQiLCAgImllIiwgICJpZyIsICAiaWkiLCAgImlqbyIsICJpayIsICAgICAqLworICAgICAgICAgICAgICAgICJpbmEiLCAiaWJhIiwgImluZCIsICJpbGUiLCAiaWJvIiwgImlpaSIsICJpam8iLCAiaXBrIiwKKyAgICAgICAgICAgICAgICAvKiJpbG8iLCAiaW5jIiwgImluZSIsICJpbmgiLCAiaW8iLCAgImlyYSIsICJpcm8iLCAiaXMiLCAgIml0IiwgICAgICAqLworICAgICAgICAgICAgICAgICJpbG8iLCAiaW5jIiwgImluZSIsICJpbmgiLCAiaWRvIiwgImlyYSIsICJpcm8iLCAiaXNsIiwgIml0YSIsCisgICAgICAgICAgICAgICAgLyoiaXUiLCAgImphIiwgICJqYm8iLCAianByIiwgImpyYiIsICJqdiIsICAia2EiLCAgImthYSIsICJrYWIiLCAgICovCisgICAgICAgICAgICAgICAgImlrdSIsICJqcG4iLCAiamJvIiwgImpwciIsICJqcmIiLCAiamF3IiwgImthdCIsICJrYWEiLCAia2FiIiwKKyAgICAgICAgICAgICAgICAvKiJrYWMiLCAia2FtIiwgImthciIsICJrYXciLCAia2JkIiwgImtnIiwgICJraGEiLCAia2hpIiwgICAgKi8KKyAgICAgICAgICAgICAgICAia2FjIiwgImthbSIsICJrYXIiLCAia2F3IiwgImtiZCIsICJrb24iLCAia2hhIiwgImtoaSIsCisgICAgICAgICAgICAgICAgLyoia2hvIiwgImtpIiwgICJraiIsICAia2siLCAgImtsIiwgICJrbSIsICAia21iIiwgImtuIiwgICAgICovCisgICAgICAgICAgICAgICAgImtobyIsICJraWsiLCAia3VhIiwgImtheiIsICJrYWwiLCAia2htIiwgImttYiIsICJrYW4iLAorICAgICAgICAgICAgICAgIC8qImtvIiwgICJrb2siLCAia29zIiwgImtwZSIsICJrciIsICAia3JjIiwgImtybyIsICJrcnUiLCAia3MiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAia29yIiwgImtvayIsICJrb3MiLCAia3BlIiwgImthdSIsICJrcmMiLCAia3JvIiwgImtydSIsICJrYXMiLAorICAgICAgICAgICAgICAgIC8qImt1IiwgICJrdW0iLCAia3V0IiwgImt2IiwgICJrdyIsICAia3kiLCAgImxhIiwgICJsYWQiLCAgICAqLworICAgICAgICAgICAgICAgICJrdXIiLCAia3VtIiwgImt1dCIsICJrb20iLCAiY29yIiwgImtpciIsICJsYXQiLCAibGFkIiwKKyAgICAgICAgICAgICAgICAvKiJsYWgiLCAibGFtIiwgImxiIiwgICJsZXoiLCAibGciLCAgImxpIiwgICJsbiIsICAibG8iLCAgImxvbCIsICAgICovCisgICAgICAgICAgICAgICAgImxhaCIsICJsYW0iLCAibHR6IiwgImxleiIsICJsdWciLCAibGltIiwgImxpbiIsICJsYW8iLCAibG9sIiwKKyAgICAgICAgICAgICAgICAvKiJsb3oiLCAibHQiLCAgImx1IiwgICJsdWEiLCAibHVpIiwgImx1biIsICJsdW8iLCAibHVzIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibG96IiwgImxpdCIsICJsdWIiLCAibHVhIiwgImx1aSIsICJsdW4iLCAibHVvIiwgImx1cyIsCisgICAgICAgICAgICAgICAgLyoibHYiLCAgIm1hZCIsICJtYWciLCAibWFpIiwgIm1hayIsICJtYW4iLCAibWFwIiwgIm1hcyIsICAgICovCisgICAgICAgICAgICAgICAgImxhdiIsICJtYWQiLCAibWFnIiwgIm1haSIsICJtYWsiLCAibWFuIiwgIm1hcCIsICJtYXMiLAorICAgICAgICAgICAgICAgIC8qIm1kZiIsICJtZHIiLCAibWVuIiwgIm1nIiwgICJtZ2EiLCAibWgiLCAgIm1pIiwgICJtaWMiLCAibWluIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibWRmIiwgIm1kciIsICJtZW4iLCAibWxnIiwgIm1nYSIsICJtYWgiLCAibXJpIiwgIm1pYyIsICJtaW4iLAorICAgICAgICAgICAgICAgIC8qIm1pcyIsICJtayIsICAibWtoIiwgIm1sIiwgICJtbiIsICAibW5jIiwgIm1uaSIsICJtbm8iLCAgICAqLworICAgICAgICAgICAgICAgICJtaXMiLCAibWtkIiwgIm1raCIsICJtYWwiLCAibW9uIiwgIm1uYyIsICJtbmkiLCAibW5vIiwKKyAgICAgICAgICAgICAgICAvKiJtbyIsICAibW9oIiwgIm1vcyIsICJtciIsICAibXMiLCAgIm10IiwgICJtdWwiLCAibXVuIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibW9sIiwgIm1vaCIsICJtb3MiLCAibWFyIiwgIm1zYSIsICJtbHQiLCAibXVsIiwgIm11biIsCisgICAgICAgICAgICAgICAgLyoibXVzIiwgIm13ciIsICJteSIsICAibXluIiwgIm15diIsICJuYSIsICAibmFoIiwgIm5haSIsICJuYXAiLCAgICAqLworICAgICAgICAgICAgICAgICJtdXMiLCAibXdyIiwgIm15YSIsICJteW4iLCAibXl2IiwgIm5hdSIsICJuYWgiLCAibmFpIiwgIm5hcCIsCisgICAgICAgICAgICAgICAgLyoibmIiLCAgIm5kIiwgICJuZHMiLCAibmUiLCAgIm5ldyIsICJuZyIsICAibmlhIiwgIm5pYyIsICAgICovCisgICAgICAgICAgICAgICAgIm5vYiIsICJuZGUiLCAibmRzIiwgIm5lcCIsICJuZXciLCAibmRvIiwgIm5pYSIsICJuaWMiLAorICAgICAgICAgICAgICAgIC8qIm5pdSIsICJubCIsICAibm4iLCAgIm5vIiwgICJub2ciLCAibm9uIiwgIm5yIiwgICJuc28iLCAibnViIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibml1IiwgIm5sZCIsICJubm8iLCAibm9yIiwgIm5vZyIsICJub24iLCAibmJsIiwgIm5zbyIsICJudWIiLAorICAgICAgICAgICAgICAgIC8qIm52IiwgICJud2MiLCAibnkiLCAgIm55bSIsICJueW4iLCAibnlvIiwgIm56aSIsICJvYyIsICAib2oiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAibmF2IiwgIm53YyIsICJueWEiLCAibnltIiwgIm55biIsICJueW8iLCAibnppIiwgIm9jaSIsICJvamkiLAorICAgICAgICAgICAgICAgIC8qIm9tIiwgICJvciIsICAib3MiLCAgIm9zYSIsICJvdGEiLCAib3RvIiwgInBhIiwgICJwYWEiLCAgICAqLworICAgICAgICAgICAgICAgICJvcm0iLCAib3JpIiwgIm9zcyIsICJvc2EiLCAib3RhIiwgIm90byIsICJwYW4iLCAicGFhIiwKKyAgICAgICAgICAgICAgICAvKiJwYWciLCAicGFsIiwgInBhbSIsICJwYXAiLCAicGF1IiwgInBlbyIsICJwaGkiLCAicGhuIiwgICAgKi8KKyAgICAgICAgICAgICAgICAicGFnIiwgInBhbCIsICJwYW0iLCAicGFwIiwgInBhdSIsICJwZW8iLCAicGhpIiwgInBobiIsCisgICAgICAgICAgICAgICAgLyoicGkiLCAgInBsIiwgICJwb24iLCAicHJhIiwgInBybyIsICJwcyIsICAicHQiLCAgInF1IiwgICAgICovCisgICAgICAgICAgICAgICAgInBsaSIsICJwb2wiLCAicG9uIiwgInByYSIsICJwcm8iLCAicHVzIiwgInBvciIsICJxdWUiLAorICAgICAgICAgICAgICAgIC8qInJhaiIsICJyYXAiLCAicmFyIiwgInJtIiwgICJybiIsICAicm8iLCAgInJvYSIsICJyb20iLCAgICAqLworICAgICAgICAgICAgICAgICJyYWoiLCAicmFwIiwgInJhciIsICJyb2giLCAicnVuIiwgInJvbiIsICJyb2EiLCAicm9tIiwKKyAgICAgICAgICAgICAgICAvKiJydSIsICAicnVwIiwgInJ3IiwgICJzYSIsICAic2FkIiwgInNhaCIsICJzYWkiLCAic2FsIiwgInNhbSIsICAgICovCisgICAgICAgICAgICAgICAgInJ1cyIsICJydXAiLCAia2luIiwgInNhbiIsICJzYWQiLCAic2FoIiwgInNhaSIsICJzYWwiLCAic2FtIiwKKyAgICAgICAgICAgICAgICAvKiJzYXMiLCAic2F0IiwgInNjIiwgICJzY28iLCAic2QiLCAgInNlIiwgICJzZWwiLCAic2VtIiwgICAgKi8KKyAgICAgICAgICAgICAgICAic2FzIiwgInNhdCIsICJzcmQiLCAic2NvIiwgInNuZCIsICJzbWUiLCAic2VsIiwgInNlbSIsCisgICAgICAgICAgICAgICAgLyoic2ciLCAgInNnYSIsICJzZ24iLCAic2huIiwgInNpIiwgICJzaWQiLCAic2lvIiwgInNpdCIsICAgICovCisgICAgICAgICAgICAgICAgInNhZyIsICJzZ2EiLCAic2duIiwgInNobiIsICJzaW4iLCAic2lkIiwgInNpbyIsICJzaXQiLAorICAgICAgICAgICAgICAgIC8qInNrIiwgICJzbCIsICAic2xhIiwgInNtIiwgICJzbWEiLCAic21pIiwgInNtaiIsICJzbW4iLCAgICAqLworICAgICAgICAgICAgICAgICJzbGsiLCAic2x2IiwgInNsYSIsICJzbW8iLCAic21hIiwgInNtaSIsICJzbWoiLCAic21uIiwKKyAgICAgICAgICAgICAgICAvKiJzbXMiLCAic24iLCAgInNuayIsICJzbyIsICAic29nIiwgInNvbiIsICJzcSIsICAic3IiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAic21zIiwgInNuYSIsICJzbmsiLCAic29tIiwgInNvZyIsICJzb24iLCAic3FpIiwgInNycCIsCisgICAgICAgICAgICAgICAgLyoic3JyIiwgInNzIiwgICJzc2EiLCAic3QiLCAgInN1IiwgICJzdWsiLCAic3VzIiwgInN1eCIsICAgICovCisgICAgICAgICAgICAgICAgInNyciIsICJzc3ciLCAic3NhIiwgInNvdCIsICJzdW4iLCAic3VrIiwgInN1cyIsICJzdXgiLAorICAgICAgICAgICAgICAgIC8qInN2IiwgICJzdyIsICAic3lyIiwgInRhIiwgICJ0YWkiLCAidGUiLCAgInRlbSIsICJ0ZXIiLCAgICAqLworICAgICAgICAgICAgICAgICJzd2UiLCAic3dhIiwgInN5ciIsICJ0YW0iLCAidGFpIiwgInRlbCIsICJ0ZW0iLCAidGVyIiwKKyAgICAgICAgICAgICAgICAvKiJ0ZXQiLCAidGciLCAgInRoIiwgICJ0aSIsICAidGlnIiwgInRpdiIsICJ0ayIsICAidGtsIiwgICAgKi8KKyAgICAgICAgICAgICAgICAidGV0IiwgInRnayIsICJ0aGEiLCAidGlyIiwgInRpZyIsICJ0aXYiLCAidHVrIiwgInRrbCIsCisgICAgICAgICAgICAgICAgLyoidGwiLCAgInRsaCIsICJ0bGkiLCAidG1oIiwgInRuIiwgICJ0byIsICAidG9nIiwgInRwaSIsICJ0ciIsICAgICAqLworICAgICAgICAgICAgICAgICJ0Z2wiLCAidGxoIiwgInRsaSIsICJ0bWgiLCAidHNuIiwgInRvbiIsICJ0b2ciLCAidHBpIiwgInR1ciIsCisgICAgICAgICAgICAgICAgLyoidHMiLCAgInRzaSIsICJ0dCIsICAidHVtIiwgInR1cCIsICJ0dXQiLCAidHZsIiwgInR3IiwgICAgICovCisgICAgICAgICAgICAgICAgInRzbyIsICJ0c2kiLCAidGF0IiwgInR1bSIsICJ0dXAiLCAidHV0IiwgInR2bCIsICJ0d2kiLAorICAgICAgICAgICAgICAgIC8qInR5IiwgICJ0eXYiLCAidWRtIiwgInVnIiwgICJ1Z2EiLCAidWsiLCAgInVtYiIsICJ1bmQiLCAidXIiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAidGFoIiwgInR5diIsICJ1ZG0iLCAidWlnIiwgInVnYSIsICJ1a3IiLCAidW1iIiwgInVuZCIsICJ1cmQiLAorICAgICAgICAgICAgICAgIC8qInV6IiwgICJ2YWkiLCAidmUiLCAgInZpIiwgICJ2byIsICAidm90IiwgIndhIiwgICJ3YWsiLCAgICAqLworICAgICAgICAgICAgICAgICJ1emIiLCAidmFpIiwgInZlbiIsICJ2aWUiLCAidm9sIiwgInZvdCIsICJ3bG4iLCAid2FrIiwKKyAgICAgICAgICAgICAgICAvKiJ3YWwiLCAid2FyIiwgIndhcyIsICJ3ZW4iLCAid28iLCAgInhhbCIsICJ4aCIsICAieWFvIiwgInlhcCIsICAgICovCisgICAgICAgICAgICAgICAgIndhbCIsICJ3YXIiLCAid2FzIiwgIndlbiIsICJ3b2wiLCAieGFsIiwgInhobyIsICJ5YW8iLCAieWFwIiwKKyAgICAgICAgICAgICAgICAvKiJ5aSIsICAieW8iLCAgInlwayIsICJ6YSIsICAiemFwIiwgInplbiIsICJ6aCIsICAiem5kIiwgICAgKi8KKyAgICAgICAgICAgICAgICAieWlkIiwgInlvciIsICJ5cGsiLCAiemhhIiwgInphcCIsICJ6ZW4iLCAiemhvIiwgInpuZCIsCisgICAgICAgICAgICAgICAgLyoienUiLCAgInp1biIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgInp1bCIsICJ6dW4iLCAgCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiAiaW4iLCAgIml3IiwgICJqaSIsICAianciLCAgInNoIiwgKi8KKyAgICAgICAgICAgICAgICAiaW5kIiwgImhlYiIsICJ5aWQiLCAiamF3IiwgInNycCIsIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgaWYgKF9sYW5ndWFnZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBfbGFuZ3VhZ2VzID0gdGVtcExhbmd1YWdlczsKKyAgICAgICAgICAgICAgICAgICAgX3JlcGxhY2VtZW50TGFuZ3VhZ2VzID0gdGVtcFJlcGxhY2VtZW50TGFuZ3VhZ2VzOworICAgICAgICAgICAgICAgICAgICBfb2Jzb2xldGVMYW5ndWFnZXMgPSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXM7CisgICAgICAgICAgICAgICAgICAgIF9sYW5ndWFnZXMzID0gdGVtcExhbmd1YWdlczM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUxhbmd1YWdlczMgPSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXMzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9jb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2RlcHJlY2F0ZWRDb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX3JlcGxhY2VtZW50Q291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUNvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfY291bnRyaWVzMzsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVDb3VudHJpZXMzOyAgCisKKyAgICAvLyBBdm9pZCBpbml0aWFsaXppbmcgY291bnRyeSB0YWJsZXMgdW5sZXNzIHdlIGhhdmUgdG8uCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0Q291bnRyeVRhYmxlcygpIHsgICAgCisgICAgICAgIGlmIChfY291bnRyaWVzID09IG51bGwpIHsKKyAgICAgICAgICAgIC8qIFpSKFpBUikgaXMgbm93IENEKENPRCkgYW5kIEZYKEZYWCkgaXMgUFMoUFNFKSBhcyBwZXIKKyAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuZXZlcnR5cGUuY29tL3N0YW5kYXJkcy9pc28zMTY2L2lzbzMxNjYtMS1lbi5odG1sIAorICAgICAgICAgICAgICAgYWRkZWQgbmV3IGNvZGVzIGtlZXBpbmcgdGhlIG9sZCBvbmVzIGZvciBjb21wYXRpYmlsaXR5CisgICAgICAgICAgICAgICB1cGRhdGVkIHRvIGluY2x1ZGUgMTk5OS8xMi8wMyByZXZpc2lvbnMgKkNXQiovCisgICAgCisgICAgICAgICAgICAvKiBSTyhST00pIGlzIG5vdyBSTyhST1UpIGFjY29yZGluZyB0byAKKyAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hLzAzdXBkYXRlcy1vbi1pc28tMzE2Ni9ubHYzZS1yb3UuaHRtbAorICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGJlIGluIHNvcnRlZCBvcmRlciwgYW5kIE1VU1QgY29udGFpbiBvbmx5IHR3by1sZXR0ZXIgY29kZXMhICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wQ291bnRyaWVzID0geworICAgICAgICAgICAgICAgICJBRCIsICAiQUUiLCAgIkFGIiwgICJBRyIsICAiQUkiLCAgIkFMIiwgICJBTSIsICAiQU4iLAorICAgICAgICAgICAgICAgICJBTyIsICAiQVEiLCAgIkFSIiwgICJBUyIsICAiQVQiLCAgIkFVIiwgICJBVyIsICAiQVoiLAorICAgICAgICAgICAgICAgICJCQSIsICAiQkIiLCAgIkJEIiwgICJCRSIsICAiQkYiLCAgIkJHIiwgICJCSCIsICAiQkkiLAorICAgICAgICAgICAgICAgICJCSiIsICAiQk0iLCAgIkJOIiwgICJCTyIsICAiQlIiLCAgIkJTIiwgICJCVCIsICAiQlYiLAorICAgICAgICAgICAgICAgICJCVyIsICAiQlkiLCAgIkJaIiwgICJDQSIsICAiQ0MiLCAgIkNEIiwgICJDRiIsICAiQ0ciLAorICAgICAgICAgICAgICAgICJDSCIsICAiQ0kiLCAgIkNLIiwgICJDTCIsICAiQ00iLCAgIkNOIiwgICJDTyIsICAiQ1IiLAorICAgICAgICAgICAgICAgICJDVSIsICAiQ1YiLCAgIkNYIiwgICJDWSIsICAiQ1oiLCAgIkRFIiwgICJESiIsICAiREsiLAorICAgICAgICAgICAgICAgICJETSIsICAiRE8iLCAgIkRaIiwgICJFQyIsICAiRUUiLCAgIkVHIiwgICJFSCIsICAiRVIiLAorICAgICAgICAgICAgICAgICJFUyIsICAiRVQiLCAgIkZJIiwgICJGSiIsICAiRksiLCAgIkZNIiwgICJGTyIsICAiRlIiLAorICAgICAgICAgICAgICAgICJHQSIsICAiR0IiLCAgIkdEIiwgICJHRSIsICAiR0YiLCAgIkdIIiwgICJHSSIsICAiR0wiLAorICAgICAgICAgICAgICAgICJHTSIsICAiR04iLCAgIkdQIiwgICJHUSIsICAiR1IiLCAgIkdTIiwgICJHVCIsICAiR1UiLAorICAgICAgICAgICAgICAgICJHVyIsICAiR1kiLCAgIkhLIiwgICJITSIsICAiSE4iLCAgIkhSIiwgICJIVCIsICAiSFUiLAorICAgICAgICAgICAgICAgICJJRCIsICAiSUUiLCAgIklMIiwgICJJTiIsICAiSU8iLCAgIklRIiwgICJJUiIsICAiSVMiLAorICAgICAgICAgICAgICAgICJJVCIsICAiSk0iLCAgIkpPIiwgICJKUCIsICAiS0UiLCAgIktHIiwgICJLSCIsICAiS0kiLAorICAgICAgICAgICAgICAgICJLTSIsICAiS04iLCAgIktQIiwgICJLUiIsICAiS1ciLCAgIktZIiwgICJLWiIsICAiTEEiLAorICAgICAgICAgICAgICAgICJMQiIsICAiTEMiLCAgIkxJIiwgICJMSyIsICAiTFIiLCAgIkxTIiwgICJMVCIsICAiTFUiLAorICAgICAgICAgICAgICAgICJMViIsICAiTFkiLCAgIk1BIiwgICJNQyIsICAiTUQiLCAgIk1HIiwgICJNSCIsICAiTUsiLAorICAgICAgICAgICAgICAgICJNTCIsICAiTU0iLCAgIk1OIiwgICJNTyIsICAiTVAiLCAgIk1RIiwgICJNUiIsICAiTVMiLAorICAgICAgICAgICAgICAgICJNVCIsICAiTVUiLCAgIk1WIiwgICJNVyIsICAiTVgiLCAgIk1ZIiwgICJNWiIsICAiTkEiLAorICAgICAgICAgICAgICAgICJOQyIsICAiTkUiLCAgIk5GIiwgICJORyIsICAiTkkiLCAgIk5MIiwgICJOTyIsICAiTlAiLAorICAgICAgICAgICAgICAgICJOUiIsICAiTlUiLCAgIk5aIiwgICJPTSIsICAiUEEiLCAgIlBFIiwgICJQRiIsICAiUEciLAorICAgICAgICAgICAgICAgICJQSCIsICAiUEsiLCAgIlBMIiwgICJQTSIsICAiUE4iLCAgIlBSIiwgICJQUyIsICAiUFQiLAorICAgICAgICAgICAgICAgICJQVyIsICAiUFkiLCAgIlFBIiwgICJSRSIsICAiUk8iLCAgIlJVIiwgICJSVyIsICAiU0EiLAorICAgICAgICAgICAgICAgICJTQiIsICAiU0MiLCAgIlNEIiwgICJTRSIsICAiU0ciLCAgIlNIIiwgICJTSSIsICAiU0oiLAorICAgICAgICAgICAgICAgICJTSyIsICAiU0wiLCAgIlNNIiwgICJTTiIsICAiU08iLCAgIlNSIiwgICJTVCIsICAiU1YiLAorICAgICAgICAgICAgICAgICJTWSIsICAiU1oiLCAgIlRDIiwgICJURCIsICAiVEYiLCAgIlRHIiwgICJUSCIsICAiVEoiLAorICAgICAgICAgICAgICAgICJUSyIsICAiVEwiLCAgIlRNIiwgICJUTiIsICAiVE8iLCAgIlRSIiwgICJUVCIsICAiVFYiLAorICAgICAgICAgICAgICAgICJUVyIsICAiVFoiLCAgIlVBIiwgICJVRyIsICAiVU0iLCAgIlVTIiwgICJVWSIsICAiVVoiLAorICAgICAgICAgICAgICAgICJWQSIsICAiVkMiLCAgIlZFIiwgICJWRyIsICAiVkkiLCAgIlZOIiwgICJWVSIsICAiV0YiLAorICAgICAgICAgICAgICAgICJXUyIsICAiWUUiLCAgIllUIiwgICJZVSIsICAiWkEiLCAgIlpNIiwgICJaVyIsICAKKyAgICAgICAgICAgIH07CQorCisgICAgICAgICAgICAvKiB0aGlzIHRhYmxlIGlzIHVzZWQgZm9yIDMgbGV0dGVyIGNvZGVzICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wT2Jzb2xldGVDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAgIkZYIiwgICJSTyIsICAiVFAiLCAgIlpSIiwgIC8qIG9ic29sZXRlIGNvdW50cnkgY29kZXMgKi8gICAgICAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBEZXByZWNhdGVkQ291bnRyaWVzID0geworICAgICAgICAgICAgICAgIkJVIiwgIkRZIiwgIkZYIiwgIkhWIiwgIk5IIiwgIlJIIiwgIlRQIiwgIllVIiwgIlpSIiAvKiBkZXByZWNhdGVkIGNvdW50cnkgbGlzdCAqLworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBSZXBsYWNlbWVudENvdW50cmllcyA9IHsKKyAgICAgICAgICAgLyogICJCVSIsICJEWSIsICJGWCIsICJIViIsICJOSCIsICJSSCIsICJUUCIsICJZVSIsICJaUiIgKi8KKyAgICAgICAgICAgICAgICJNTSIsICJCSiIsICJGUiIsICJCRiIsICJWVSIsICJaVyIsICJUTCIsICJDUyIsICJDRCIsICAgLyogcmVwbGFjZW1lbnQgY291bnRyeSBjb2RlcyAqLyAgICAgIAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGNvbnRhaW4gYSB0aHJlZS1sZXR0ZXIgY29kZSBmb3IgZXZlcnkgdHdvLWxldHRlciBjb2RlIGluCisgICAgICAgICAgICAgICB0aGUgYWJvdmUgbGlzdCwgYW5kIHRoZXkgTVVTVCBiZSBsaXN0ZWQgaW4gdGhlIHNhbWUgb3JkZXIhICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wQ291bnRyaWVzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJBRCIsICAiQUUiLCAgIkFGIiwgICJBRyIsICAiQUkiLCAgIkFMIiwgICJBTSIsICAiQU4iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQU5EIiwgIkFSRSIsICJBRkciLCAiQVRHIiwgIkFJQSIsICJBTEIiLCAiQVJNIiwgIkFOVCIsCisgICAgICAgICAgICAgICAgLyoiQU8iLCAgIkFRIiwgICJBUiIsICAiQVMiLCAgIkFUIiwgICJBVSIsICAiQVciLCAgIkFaIiwgICAgICovCisgICAgICAgICAgICAgICAgIkFHTyIsICJBVEEiLCAiQVJHIiwgIkFTTSIsICJBVVQiLCAiQVVTIiwgIkFCVyIsICJBWkUiLAorICAgICAgICAgICAgICAgIC8qIkJBIiwgICJCQiIsICAiQkQiLCAgIkJFIiwgICJCRiIsICAiQkciLCAgIkJIIiwgICJCSSIsICAgICAqLworICAgICAgICAgICAgICAgICJCSUgiLCAiQlJCIiwgIkJHRCIsICJCRUwiLCAiQkZBIiwgIkJHUiIsICJCSFIiLCAiQkRJIiwKKyAgICAgICAgICAgICAgICAvKiJCSiIsICAiQk0iLCAgIkJOIiwgICJCTyIsICAiQlIiLCAgIkJTIiwgICJCVCIsICAiQlYiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQkVOIiwgIkJNVSIsICJCUk4iLCAiQk9MIiwgIkJSQSIsICJCSFMiLCAiQlROIiwgIkJWVCIsCisgICAgICAgICAgICAgICAgLyoiQlciLCAgIkJZIiwgICJCWiIsICAiQ0EiLCAgIkNDIiwgICJDRCIsICAiQ0YiLCAgIkNHIiwgICAgICovCisgICAgICAgICAgICAgICAgIkJXQSIsICJCTFIiLCAiQkxaIiwgIkNBTiIsICJDQ0siLCAiQ09EIiwgIkNBRiIsICJDT0ciLAorICAgICAgICAgICAgICAgIC8qIkNIIiwgICJDSSIsICAiQ0siLCAgIkNMIiwgICJDTSIsICAiQ04iLCAgIkNPIiwgICJDUiIsICAgICAqLworICAgICAgICAgICAgICAgICJDSEUiLCAiQ0lWIiwgIkNPSyIsICJDSEwiLCAiQ01SIiwgIkNITiIsICJDT0wiLCAiQ1JJIiwKKyAgICAgICAgICAgICAgICAvKiJDVSIsICAiQ1YiLCAgIkNYIiwgICJDWSIsICAiQ1oiLCAgIkRFIiwgICJESiIsICAiREsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQ1VCIiwgIkNQViIsICJDWFIiLCAiQ1lQIiwgIkNaRSIsICJERVUiLCAiREpJIiwgIkROSyIsCisgICAgICAgICAgICAgICAgLyoiRE0iLCAgIkRPIiwgICJEWiIsICAiRUMiLCAgIkVFIiwgICJFRyIsICAiRUgiLCAgIkVSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkRNQSIsICJET00iLCAiRFpBIiwgIkVDVSIsICJFU1QiLCAiRUdZIiwgIkVTSCIsICJFUkkiLAorICAgICAgICAgICAgICAgIC8qIkVTIiwgICJFVCIsICAiRkkiLCAgIkZKIiwgICJGSyIsICAiRk0iLCAgIkZPIiwgICJGUiIsICAgICAqLworICAgICAgICAgICAgICAgICJFU1AiLCAiRVRIIiwgIkZJTiIsICJGSkkiLCAiRkxLIiwgIkZTTSIsICJGUk8iLCAiRlJBIiwKKyAgICAgICAgICAgICAgICAvKiJHQSIsICAiR0IiLCAgIkdEIiwgICJHRSIsICAiR0YiLCAgIkdIIiwgICJHSSIsICAiR0wiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiR0FCIiwgIkdCUiIsICJHUkQiLCAiR0VPIiwgIkdVRiIsICJHSEEiLCAiR0lCIiwgIkdSTCIsCisgICAgICAgICAgICAgICAgLyoiR00iLCAgIkdOIiwgICJHUCIsICAiR1EiLCAgIkdSIiwgICJHUyIsICAiR1QiLCAgIkdVIiwgICAgICovCisgICAgICAgICAgICAgICAgIkdNQiIsICJHSU4iLCAiR0xQIiwgIkdOUSIsICJHUkMiLCAiU0dTIiwgIkdUTSIsICJHVU0iLAorICAgICAgICAgICAgICAgIC8qIkdXIiwgICJHWSIsICAiSEsiLCAgIkhNIiwgICJITiIsICAiSFIiLCAgIkhUIiwgICJIVSIsICAgICAqLworICAgICAgICAgICAgICAgICJHTkIiLCAiR1VZIiwgIkhLRyIsICJITUQiLCAiSE5EIiwgIkhSViIsICJIVEkiLCAiSFVOIiwKKyAgICAgICAgICAgICAgICAvKiJJRCIsICAiSUUiLCAgIklMIiwgICJJTiIsICAiSU8iLCAgIklRIiwgICJJUiIsICAiSVMiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiSUROIiwgIklSTCIsICJJU1IiLCAiSU5EIiwgIklPVCIsICJJUlEiLCAiSVJOIiwgIklTTCIsCisgICAgICAgICAgICAgICAgLyoiSVQiLCAgIkpNIiwgICJKTyIsICAiSlAiLCAgIktFIiwgICJLRyIsICAiS0giLCAgIktJIiwgICAgICovCisgICAgICAgICAgICAgICAgIklUQSIsICJKQU0iLCAiSk9SIiwgIkpQTiIsICJLRU4iLCAiS0daIiwgIktITSIsICJLSVIiLAorICAgICAgICAgICAgICAgIC8qIktNIiwgICJLTiIsICAiS1AiLCAgIktSIiwgICJLVyIsICAiS1kiLCAgIktaIiwgICJMQSIsICAgICAqLworICAgICAgICAgICAgICAgICJDT00iLCAiS05BIiwgIlBSSyIsICJLT1IiLCAiS1dUIiwgIkNZTSIsICJLQVoiLCAiTEFPIiwKKyAgICAgICAgICAgICAgICAvKiJMQiIsICAiTEMiLCAgIkxJIiwgICJMSyIsICAiTFIiLCAgIkxTIiwgICJMVCIsICAiTFUiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTEJOIiwgIkxDQSIsICJMSUUiLCAiTEtBIiwgIkxCUiIsICJMU08iLCAiTFRVIiwgIkxVWCIsCisgICAgICAgICAgICAgICAgLyoiTFYiLCAgIkxZIiwgICJNQSIsICAiTUMiLCAgIk1EIiwgICJNRyIsICAiTUgiLCAgIk1LIiwgICAgICovCisgICAgICAgICAgICAgICAgIkxWQSIsICJMQlkiLCAiTUFSIiwgIk1DTyIsICJNREEiLCAiTURHIiwgIk1ITCIsICJNS0QiLAorICAgICAgICAgICAgICAgIC8qIk1MIiwgICJNTSIsICAiTU4iLCAgIk1PIiwgICJNUCIsICAiTVEiLCAgIk1SIiwgICJNUyIsICAgICAqLworICAgICAgICAgICAgICAgICJNTEkiLCAiTU1SIiwgIk1ORyIsICJNQUMiLCAiTU5QIiwgIk1UUSIsICJNUlQiLCAiTVNSIiwKKyAgICAgICAgICAgICAgICAvKiJNVCIsICAiTVUiLCAgIk1WIiwgICJNVyIsICAiTVgiLCAgIk1ZIiwgICJNWiIsICAiTkEiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTUxUIiwgIk1VUyIsICJNRFYiLCAiTVdJIiwgIk1FWCIsICJNWVMiLCAiTU9aIiwgIk5BTSIsCisgICAgICAgICAgICAgICAgLyoiTkMiLCAgIk5FIiwgICJORiIsICAiTkciLCAgIk5JIiwgICJOTCIsICAiTk8iLCAgIk5QIiwgICAgICovCisgICAgICAgICAgICAgICAgIk5DTCIsICJORVIiLCAiTkZLIiwgIk5HQSIsICJOSUMiLCAiTkxEIiwgIk5PUiIsICJOUEwiLAorICAgICAgICAgICAgICAgIC8qIk5SIiwgICJOVSIsICAiTloiLCAgIk9NIiwgICJQQSIsICAiUEUiLCAgIlBGIiwgICJQRyIsICAgICAqLworICAgICAgICAgICAgICAgICJOUlUiLCAiTklVIiwgIk5aTCIsICJPTU4iLCAiUEFOIiwgIlBFUiIsICJQWUYiLCAiUE5HIiwKKyAgICAgICAgICAgICAgICAvKiJQSCIsICAiUEsiLCAgIlBMIiwgICJQTSIsICAiUE4iLCAgIlBSIiwgICJQUyIsICAiUFQiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiUEhMIiwgIlBBSyIsICJQT0wiLCAiU1BNIiwgIlBDTiIsICJQUkkiLCAiUFNFIiwgIlBSVCIsCisgICAgICAgICAgICAgICAgLyoiUFciLCAgIlBZIiwgICJRQSIsICAiUkUiLCAgIlJPIiwgICJSVSIsICAiUlciLCAgIlNBIiwgICAgICovCisgICAgICAgICAgICAgICAgIlBMVyIsICJQUlkiLCAiUUFUIiwgIlJFVSIsICJST1UiLCAiUlVTIiwgIlJXQSIsICJTQVUiLAorICAgICAgICAgICAgICAgIC8qIlNCIiwgICJTQyIsICAiU0QiLCAgIlNFIiwgICJTRyIsICAiU0giLCAgIlNJIiwgICJTSiIsICAgICAqLworICAgICAgICAgICAgICAgICJTTEIiLCAiU1lDIiwgIlNETiIsICJTV0UiLCAiU0dQIiwgIlNITiIsICJTVk4iLCAiU0pNIiwKKyAgICAgICAgICAgICAgICAvKiJTSyIsICAiU0wiLCAgIlNNIiwgICJTTiIsICAiU08iLCAgIlNSIiwgICJTVCIsICAiU1YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiU1ZLIiwgIlNMRSIsICJTTVIiLCAiU0VOIiwgIlNPTSIsICJTVVIiLCAiU1RQIiwgIlNMViIsCisgICAgICAgICAgICAgICAgLyoiU1kiLCAgIlNaIiwgICJUQyIsICAiVEQiLCAgIlRGIiwgICJURyIsICAiVEgiLCAgIlRKIiwgICAgICovCisgICAgICAgICAgICAgICAgIlNZUiIsICJTV1oiLCAiVENBIiwgIlRDRCIsICJBVEYiLCAiVEdPIiwgIlRIQSIsICJUSksiLAorICAgICAgICAgICAgICAgIC8qIlRLIiwgICJUTCIsICAiVE0iLCAgIlROIiwgICJUTyIsICAiVFIiLCAgIlRUIiwgICJUViIsICAgICAqLworICAgICAgICAgICAgICAgICJUS0wiLCAiVExTIiwgIlRLTSIsICJUVU4iLCAiVE9OIiwgIlRVUiIsICJUVE8iLCAiVFVWIiwKKyAgICAgICAgICAgICAgICAvKiJUVyIsICAiVFoiLCAgIlVBIiwgICJVRyIsICAiVU0iLCAgIlVTIiwgICJVWSIsICAiVVoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiVFdOIiwgIlRaQSIsICJVS1IiLCAiVUdBIiwgIlVNSSIsICJVU0EiLCAiVVJZIiwgIlVaQiIsCisgICAgICAgICAgICAgICAgLyoiVkEiLCAgIlZDIiwgICJWRSIsICAiVkciLCAgIlZJIiwgICJWTiIsICAiVlUiLCAgIldGIiwgICAgICovCisgICAgICAgICAgICAgICAgIlZBVCIsICJWQ1QiLCAiVkVOIiwgIlZHQiIsICJWSVIiLCAiVk5NIiwgIlZVVCIsICJXTEYiLAorICAgICAgICAgICAgICAgIC8qIldTIiwgICJZRSIsICAiWVQiLCAgIllVIiwgICJaQSIsICAiWk0iLCAgIlpXIiwgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICJXU00iLCAiWUVNIiwgIk1ZVCIsICJZVUciLCAiWkFGIiwgIlpNQiIsICJaV0UiLAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUNvdW50cmllczMgPSB7CisgICAgICAgICAgICAgICAgLyoiRlgiLCAgIlJPIiwgICJUUCIsICAiWlIiLCAgICovCisgICAgICAgICAgICAgICAgIkZYWCIsICJST00iLCAiVE1QIiwgIlpBUiIsICAgIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgaWYgKF9jb3VudHJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBfY291bnRyaWVzID0gdGVtcENvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX2RlcHJlY2F0ZWRDb3VudHJpZXMgPSB0ZW1wRGVwcmVjYXRlZENvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX3JlcGxhY2VtZW50Q291bnRyaWVzID0gdGVtcFJlcGxhY2VtZW50Q291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfb2Jzb2xldGVDb3VudHJpZXMgPSB0ZW1wT2Jzb2xldGVDb3VudHJpZXM7CisgICAgICAgICAgICAgICAgICAgIF9jb3VudHJpZXMzID0gdGVtcENvdW50cmllczM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUNvdW50cmllczMgPSB0ZW1wT2Jzb2xldGVDb3VudHJpZXMzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gX3ZhcmlhbnRzVG9LZXl3b3JkczsKKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdFZhcmlhbnRzVGFibGUoKSB7CisgICAgICAgIGlmIChfdmFyaWFudHNUb0tleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogVGhpcyB0YWJsZSBsaXN0cyBwYWlycyBvZiBsb2NhbGUgaWRzIGZvciBjYW5vbmljYWxpemF0aW9uLiAgVGhlCisgICAgICAgICAgICAgKiBUaGUgZmlyc3QgaXRlbSBpcyB0aGUgbm9ybWFsaXplZCBpZCwgdGhlIHNlY29uZCBpdGVtIGlzIHRoZQorICAgICAgICAgICAgICogY2Fub25pY2FsaXplZCBpZC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgU3RyaW5nW11bXSB0ZW1wVmFyaWFudHNUb0tleXdvcmRzID0geworLy8gICAgICAgICAgICAgIHsgRU1QVFlfU1RSSU5HLCAgICAgImVuX1VTX1BPU0lYIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJDIiwgICAgICAgICAgICAgICJlbl9VU19QT1NJWCIsIG51bGwsIG51bGwgfSwgLyogUE9TSVggbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImFydF9MT0pCQU4iLCAgICAgImpibyIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXpfQVpfQ1lSTCIsICAgICAiYXpfQ3lybF9BWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXpfQVpfTEFUTiIsICAgICAiYXpfTGF0bl9BWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiY2FfRVNfUFJFRVVSTyIsICAiY2FfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImNlbF9HQVVMSVNIIiwgICAgImNlbF9fR0FVTElTSCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZGVfMTkwMSIsICAgICAgICAiZGVfXzE5MDEiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImRlXzE5MDYiLCAgICAgICAgImRlX18xOTA2IiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJkZV9fUEhPTkVCT09LIiwgICJkZSIsICJjb2xsYXRpb24iLCAicGhvbmVib29rIiB9LAorICAgICAgICAgICAgICAgIHsgImRlX0FUX1BSRUVVUk8iLCAgImRlX0FUIiwgImN1cnJlbmN5IiwgIkFUUyIgfSwKKyAgICAgICAgICAgICAgICB7ICJkZV9ERV9QUkVFVVJPIiwgICJkZV9ERSIsICJjdXJyZW5jeSIsICJERU0iIH0sCisgICAgICAgICAgICAgICAgeyAiZGVfTFVfUFJFRVVSTyIsICAiZGVfTFUiLCAiY3VycmVuY3kiLCAiRVVSIiB9LAorICAgICAgICAgICAgICAgIHsgImVsX0dSX1BSRUVVUk8iLCAgImVsX0dSIiwgImN1cnJlbmN5IiwgIkdSRCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlbl9CT09OVCIsICAgICAgICJlbl9fQk9PTlQiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImVuX1NDT1VTRSIsICAgICAgImVuX19TQ09VU0UiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImVuX0JFX1BSRUVVUk8iLCAgImVuX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJlbl9JRV9QUkVFVVJPIiwgICJlbl9JRSIsICJjdXJyZW5jeSIsICJJRVAiIH0sCisgICAgICAgICAgICAgICAgeyAiZXNfX1RSQURJVElPTkFMIiwgImVzIiwgImNvbGxhdGlvbiIsICJ0cmFkaXRpb25hbCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlc19FU19QUkVFVVJPIiwgICJlc19FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiZXVfRVNfUFJFRVVSTyIsICAiZXVfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImZpX0ZJX1BSRUVVUk8iLCAgImZpX0ZJIiwgImN1cnJlbmN5IiwgIkZJTSIgfSwKKyAgICAgICAgICAgICAgICB7ICJmcl9CRV9QUkVFVVJPIiwgICJmcl9CRSIsICJjdXJyZW5jeSIsICJCRUYiIH0sCisgICAgICAgICAgICAgICAgeyAiZnJfRlJfUFJFRVVSTyIsICAiZnJfRlIiLCAiY3VycmVuY3kiLCAiRlJGIiB9LAorICAgICAgICAgICAgICAgIHsgImZyX0xVX1BSRUVVUk8iLCAgImZyX0xVIiwgImN1cnJlbmN5IiwgIkxVRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJnYV9JRV9QUkVFVVJPIiwgICJnYV9JRSIsICJjdXJyZW5jeSIsICJJRVAiIH0sCisgICAgICAgICAgICAgICAgeyAiZ2xfRVNfUFJFRVVSTyIsICAiZ2xfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImhpX19ESVJFQ1QiLCAgICAgImhpIiwgImNvbGxhdGlvbiIsICJkaXJlY3QiIH0sCisgICAgICAgICAgICAgICAgeyAiaXRfSVRfUFJFRVVSTyIsICAiaXRfSVQiLCAiY3VycmVuY3kiLCAiSVRMIiB9LAorICAgICAgICAgICAgICAgIHsgImphX0pQX1RSQURJVElPTkFMIiwgImphX0pQIiwgImNhbGVuZGFyIiwgImphcGFuZXNlIiB9LAorLy8gICAgICAgICAgICAgIHsgIm5iX05PX05ZIiwgICAgICAgIm5uX05PIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICAgICAgICAgIHsgIm5sX0JFX1BSRUVVUk8iLCAgIm5sX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJubF9OTF9QUkVFVVJPIiwgICJubF9OTCIsICJjdXJyZW5jeSIsICJOTEciIH0sCisgICAgICAgICAgICAgICAgeyAicHRfUFRfUFJFRVVSTyIsICAicHRfUFQiLCAiY3VycmVuY3kiLCAiUFRFIiB9LAorICAgICAgICAgICAgICAgIHsgInNsX1JPWkFKIiwgICAgICAgInNsX19ST1pBSiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfU1BfQ1lSTCIsICAgICAic3JfQ3lybF9DUyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfU1BfTEFUTiIsICAgICAic3JfTGF0bl9DUyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfWVVfQ1lSSUxMSUMiLCAic3JfQ3lybF9DUyIsIG51bGwsIG51bGwgfSwgLyogTGludXggbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInV6X1VaX0NZUklMTElDIiwgInV6X0N5cmxfVVoiLCBudWxsLCBudWxsIH0sIC8qIExpbnV4IG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ1el9VWl9DWVJMIiwgICAgICJ1el9DeXJsX1VaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ1el9VWl9MQVROIiwgICAgICJ1el9MYXRuX1VaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9DSFMiLCAgICAgICAgICJ6aF9IYW5zIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9DSFQiLCAgICAgICAgICJ6aF9IYW50IiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9HQU4iLCAgICAgICAgICJ6aF9fR0FOIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9HVU9ZVSIsICAgICAgICJ6aCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfSEFLS0EiLCAgICAgICAiemhfX0hBS0tBIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9NSU4iLCAgICAgICAgICJ6aF9fTUlOIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9NSU5fTkFOIiwgICAgICJ6aF9fTUlOTkFOIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9XVVUiLCAgICAgICAgICJ6aF9fV1VVIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9YSUFORyIsICAgICAgICJ6aF9fWElBTkciLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX1lVRSIsICAgICAgICAgInpoX19ZVUUiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInRoX1RIX1RSQURJVElPTkFMIiwgInRoX1RIIiwgImNhbGVuZGFyIiwgImJ1ZGRoaXN0IiB9LAorICAgICAgICAgICAgICAgIHsgInpoX1RXX1NUUk9LRSIsICAgInpoX1RXIiwgImNvbGxhdGlvbiIsICJzdHJva2UiIH0sCisgICAgICAgICAgICAgICAgeyAiemhfX1BJTllJTiIsICAgICAiemgiLCAiY29sbGF0aW9uIiwgInBpbnlpbiIgfQorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAoVUxvY2FsZS5jbGFzcykgeworICAgICAgICAgICAgICAgIGlmIChfdmFyaWFudHNUb0tleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgX3ZhcmlhbnRzVG9LZXl3b3JkcyA9IHRlbXBWYXJpYW50c1RvS2V5d29yZHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpdmF0ZSBjb25zdHJ1Y3RvciB1c2VkIGJ5IHN0YXRpYyBpbml0aWFsaXplcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlKFN0cmluZyBsb2NhbGVJRCwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzLmxvY2FsZUlEID0gbG9jYWxlSUQ7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFVMb2NhbGUgb2JqZWN0IGZyb20gYSB7QGxpbmsgamF2YS51dGlsLkxvY2FsZX0uCisgICAgICogQHBhcmFtIGxvYyBhIEpESyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUoTG9jYWxlIGxvYykgeworICAgICAgICB0aGlzLmxvY2FsZUlEID0gZ2V0TmFtZShsb2MudG9TdHJpbmcoKSk7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFVMb2NhbGUgb2JqZWN0IGZvciBhIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfS4KKyAgICAgKiBUaGUgVUxvY2FsZSBpcyBjYW5vbmljYWxpemVkLgorICAgICAqIEBwYXJhbSBsb2MgYSBKREsgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGZvckxvY2FsZShMb2NhbGUgbG9jKSB7CisgICAgICAgIGlmIChsb2MgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxvYy50b1N0cmluZygpLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBST09UOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gKFVMb2NhbGUpQ0FDSEUuZ2V0KGxvYyk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBkZWZhdWx0VUxvY2FsZSAhPSBudWxsICYmIGxvYyA9PSBkZWZhdWx0VUxvY2FsZS5sb2NhbGUpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGRlZmF1bHRVTG9jYWxlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFVMb2NhbGUobG9jLnRvU3RyaW5nKCksIGxvYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIGZyb20gYSBSRkMgMzA2NiBsb2NhbGUgSUQuIFRoZSBsb2NhbGUgSUQgY29uc2lzdHMKKyAgICAgKiBvZiBvcHRpb25hbCBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCBhbmQgdmFyaWFudCBmaWVsZHMgaW4gdGhhdCBvcmRlciwgCisgICAgICogc2VwYXJhdGVkIGJ5IHVuZGVyc2NvcmVzLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBrZXl3b3JkIGxpc3QuICBUaGUKKyAgICAgKiBzY3JpcHQsIGlmIHByZXNlbnQsIGlzIGZvdXIgY2hhcmFjdGVycyBsb25nLS0gdGhpcyBkaXN0aW5ndWlzaGVzIGl0CisgICAgICogZnJvbSBhIGNvdW50cnkgY29kZSwgd2hpY2ggaXMgdHdvIGNoYXJhY3RlcnMgbG9uZy4gIE90aGVyIGZpZWxkcworICAgICAqIGFyZSBkaXN0aW5ndWlzaGVkIGJ5IHBvc2l0aW9uIGFzIGluZGljYXRlZCBieSB0aGUgdW5kZXJzY29yZXMuICBUaGUKKyAgICAgKiBzdGFydCBvZiB0aGUga2V5d29yZCBsaXN0IGlzIGluZGljYXRlZCBieSAnQCcsIGFuZCBjb25zaXN0cyBvZiBvbmUKKyAgICAgKiBvciBtb3JlIGtleXdvcmQvdmFsdWUgcGFpcnMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGRvZXMgbm90IGNhbm9uaWNhbGl6ZSB0aGUgbG9jYWxlSUQuCisgICAgICogCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbG9jYWxlLCBlLmc6CisgICAgICogImVuX1VTIiwgInN5X0N5cmxfWVUiLCAiemhfX3BpbnlpbiIsICJlc19FU0BjdXJyZW5jeT1FVVIsY29sbGF0aW9uPXRyYWRpdGlvbmFsIgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAKKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGdldE5hbWUobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkIG9mIFVMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykgZm9yIAorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBqYXZhLnV0aWwuTG9jYWxlLgorICAgICAqIEBzZWUgI1VMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKwl0aGlzKGEsIGIsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFVMb2NhbGUgZnJvbSBhIGxvY2FsZUlEIGNvbnN0cnVjdGVkIGZyb20gdGhlIHRocmVlICdmaWVsZHMnIGEsIGIsIGFuZCBjLiAgVGhlc2UKKyAgICAgKiBmaWVsZHMgYXJlIGNvbmNhdGVuYXRlZCB1c2luZyB1bmRlcnNjb3JlcyB0byBmb3JtIGEgbG9jYWxlSUQgb2YKKyAgICAgKiB0aGUgZm9ybSBhX2JfYywgd2hpY2ggaXMgdGhlbiBoYW5kbGVkIGxpa2UgdGhlIGxvY2FsZUlEIHBhc3NlZAorICAgICAqIHRvIDxjb2RlPlVMb2NhbGUoU3RyaW5nIGxvY2FsZUlEKTwvY29kZT4uICAKKyAgICAgKgorICAgICAqIDxwPkphdmEgbG9jYWxlIHN0cmluZ3MgY29uc2lzdGluZyBvZiBsYW5ndWFnZSwgY291bnRyeSwgYW5kCisgICAgICogdmFyaWFudCB3aWxsIGJlIGhhbmRsZWQgYnkgdGhpcyBmb3JtLCBzaW5jZSB0aGUgY291bnRyeSBjb2RlCisgICAgICogKGJlaW5nIHNob3J0ZXIgdGhhbiBmb3VyIGxldHRlcnMgbG9uZykgd2lsbCBub3QgYmUgaW50ZXJwcmV0ZWQKKyAgICAgKiBhcyBhIHNjcmlwdCBjb2RlLiAgSWYgYSBzY3JpcHQgY29kZSBpcyBwcmVzZW50LCB0aGUgZmluYWwKKyAgICAgKiBhcmd1bWVudCAoJ2MnKSB3aWxsIGJlIGludGVycHJldGVkIGFzIHRoZSBjb3VudHJ5IGNvZGUuICBJdCBpcworICAgICAqIHJlY29tbWVuZGVkIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBvbmx5IGJlIHVzZWQgdG8gZWFzZSBwb3J0aW5nLAorICAgICAqIGFuZCB0aGF0IGNsaWVudHMgaW5zdGVhZCB1c2UgdGhlIHNpbmdsZS1hcmd1bWVudCBjb25zdHJ1Y3RvcgorICAgICAqIHdoZW4gY29uc3RydWN0aW5nIGEgVUxvY2FsZSBmcm9tIGEgbG9jYWxlSUQuCisgICAgICogQHBhcmFtIGEgZmlyc3QgY29tcG9uZW50IG9mIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAcGFyYW0gYiBzZWNvbmQgY29tcG9uZW50IG9mIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAcGFyYW0gYyB0aGlyZCBjb21wb25lbnQgb2YgdGhlIGxvY2FsZSBpZAorICAgICAqIEBzZWUgI1VMb2NhbGUoU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIsIFN0cmluZyBjKSB7CisgICAgICAgIGxvY2FsZUlEID0gZ2V0TmFtZShsc2N2VG9JRChhLCBiLCBjLCBFTVBUWV9TVFJJTkcpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVTG9jYWxlIGZyb20gdGhlIGlkIGJ5IGZpcnN0IGNhbm9uaWNhbGl6aW5nIHRoZSBpZC4KKyAgICAgKiBAcGFyYW0gbm9uQ2Fub25pY2FsSUQgdGhlIGxvY2FsZSBpZCB0byBjYW5vbmljYWxpemUKKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgY3JlYXRlZCBmcm9tIHRoZSBjYW5vbmljYWwgdmVyc2lvbiBvZiB0aGUgSUQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGNyZWF0ZUNhbm9uaWNhbChTdHJpbmcgbm9uQ2Fub25pY2FsSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKGNhbm9uaWNhbGl6ZShub25DYW5vbmljYWxJRCksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGxzY3ZUb0lEKFN0cmluZyBsYW5nLCBTdHJpbmcgc2NyaXB0LCBTdHJpbmcgY291bnRyeSwgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgCisgICAgICAgIGlmIChsYW5nICE9IG51bGwgJiYgbGFuZy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGFuZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNjcmlwdCAhPSBudWxsICYmIHNjcmlwdC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKHNjcmlwdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50cnkgIT0gbnVsbCAmJiBjb3VudHJ5Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY291bnRyeSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZhcmlhbnQgIT0gbnVsbCAmJiB2YXJpYW50Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgaWYgKGNvdW50cnkgPT0gbnVsbCB8fCBjb3VudHJ5Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmFyaWFudCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgdGhpcyBVTG9jYWxlIG9iamVjdCB0byBhIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfS4KKyAgICAgKiBAcmV0dXJuIGEgSkRLIGxvY2FsZSB0aGF0IGVpdGhlciBleGFjdGx5IHJlcHJlc2VudHMgdGhpcyBvYmplY3QKKyAgICAgKiBvciBpcyB0aGUgY2xvc2VzdCBhcHByb3hpbWF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgdG9Mb2NhbGUoKSB7CisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldExhbmd1YWdlU2NyaXB0Q291bnRyeVZhcmlhbnQoKTsKKyAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBMb2NhbGUobmFtZXNbMF0sIG5hbWVzWzJdLCBuYW1lc1szXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvY2FsZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogS2VlcCBvdXIgb3duIGRlZmF1bHQgVUxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlIGRlZmF1bHRVTG9jYWxlOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkZWZhdWx0IFVMb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBnZXREZWZhdWx0KCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGlmIChkZWZhdWx0VUxvY2FsZSA9PSBudWxsIHx8IGRlZmF1bHRVTG9jYWxlLnRvTG9jYWxlKCkgIT0gZGVmYXVsdExvY2FsZSkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRVTG9jYWxlID0gbmV3IFVMb2NhbGUoZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdFVMb2NhbGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0IFVMb2NhbGUuICBUaGlzIGFsc28gc2V0cyB0aGUgZGVmYXVsdCBMb2NhbGUuCisgICAgICogSWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdG8gdGhlCisgICAgICogdXNlci5sYW5ndWFnZSBwcm9wZXJ0eSwgYSBzZWN1cml0eSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24sCisgICAgICogYW5kIHRoZSBkZWZhdWx0IFVMb2NhbGUgd2lsbCByZW1haW4gdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgdGhlIG5ldyBkZWZhdWx0IGxvY2FsZQorICAgICAqIEB0aHJvd3MgU2VjdXJpdHlFeGNlcHRpb24KKyAgICAgKiAgICAgICAgaWYgYSBzZWN1cml0eSBtYW5hZ2VyIGV4aXN0cyBhbmQgaXRzCisgICAgICogICAgICAgIDxjb2RlPmNoZWNrUGVybWlzc2lvbjwvY29kZT4gbWV0aG9kIGRvZXNuJ3QgYWxsb3cgdGhlIG9wZXJhdGlvbi4KKyAgICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPm5ld0xvY2FsZTwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzZWUgU2VjdXJpdHlNYW5hZ2VyI2NoZWNrUGVybWlzc2lvbihqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24pCisgICAgICogQHNlZSBqYXZhLnV0aWwuUHJvcGVydHlQZXJtaXNzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIHZvaWQgc2V0RGVmYXVsdChVTG9jYWxlIG5ld0xvY2FsZSl7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG5ld0xvY2FsZS50b0xvY2FsZSgpKTsKKyAgICAgICAgZGVmYXVsdFVMb2NhbGUgPSBuZXdMb2NhbGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgaXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBMb2NhbGUtLSBpbiBhY3R1YWxpdHksIHNpbmNlIFVMb2NhbGUgaXMKKyAgICAgKiBpbW11dGFibGUsIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBjbG9uZSBpdCwgc28gdGhpcyBBUEkgcmV0dXJucyAndGhpcycuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaGFzaENvZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlELmhhc2hDb2RlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgb3RoZXIgb2JqZWN0IGlzIGFub3RoZXIgVUxvY2FsZSB3aXRoIHRoZQorICAgICAqIHNhbWUgZnVsbCBuYW1lLCBvciBpcyBhIFN0cmluZyBsb2NhbGVJRCB0aGF0IG1hdGNoZXMgdGhlIGZ1bGwgbmFtZS4KKyAgICAgKiBOb3RlIHRoYXQgc2luY2UgbmFtZXMgYXJlIG5vdCBjYW5vbmljYWxpemVkLCB0d28gVUxvY2FsZXMgdGhhdAorICAgICAqIGZ1bmN0aW9uIGlkZW50aWNhbGx5IG1pZ2h0IG5vdCBjb21wYXJlIGVxdWFsLgorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgTG9jYWxlIGlzIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRC5lcXVhbHMoKFN0cmluZylvYmopOyAgIAorICAgICAgICB9CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBVTG9jYWxlKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQuZXF1YWxzKCgoVUxvY2FsZSlvYmopLmxvY2FsZUlEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0YWxsZWQgbG9jYWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LgorICAgICAqIENhbiBiZSB1c2VkIHRvIGNyZWF0ZSBMb2NhbGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0SVNPQ291bnRyaWVzKCkgeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKV9jb3VudHJpZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBpbiBJU08gNjM5LgorICAgICAqIENhbiBiZSB1c2VkIHRvIGNyZWF0ZSBMb2NhbGVzLgorICAgICAqIFtOT1RFOiAgSVNPIDYzOSBpcyBub3QgYSBzdGFibGUgc3RhbmRhcmQtLSBzb21lIGxhbmd1YWdlcycgY29kZXMgaGF2ZSBjaGFuZ2VkLgorICAgICAqIFRoZSBsaXN0IHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbmNsdWRlcyBib3RoIHRoZSBuZXcgYW5kIHRoZSBvbGQgY29kZXMgZm9yIHRoZQorICAgICAqIGxhbmd1YWdlcyB3aG9zZSBjb2RlcyBoYXZlIGNoYW5nZWQuXQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0SVNPTGFuZ3VhZ2VzKCkgeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSlfbGFuZ3VhZ2VzLmNsb25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UgY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhIGxvd2VyY2FzZSBJU08gNjM5IGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUxhbmd1YWdlKCkKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5TGFuZ3VhZ2UoVUxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gZ2V0TGFuZ3VhZ2UobG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSBjb2RlIGZvciB0aGUgbG9jYWxlIElELAorICAgICAqIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhIGxvd2VyY2FzZSBJU08gNjM5IGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUxhbmd1YWdlKCkKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5TGFuZ3VhZ2UoVUxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0TGFuZ3VhZ2UoKTsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNjcmlwdCBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5U2NyaXB0KCkKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUpCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTY3JpcHQoKSB7CisgICAgICAgIHJldHVybiBnZXRTY3JpcHQobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNjcmlwdCBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5U2NyaXB0KCkKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUpCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0U2NyaXB0KFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY291bnRyeS9yZWdpb24gY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMi1sZXR0ZXIgY29kZS4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5Q291bnRyeSgpCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUNvdW50cnkoVUxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldENvdW50cnkoKSB7CisgICAgICAgIHJldHVybiBnZXRDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb3VudHJ5L3JlZ2lvbiBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAyLWxldHRlciBjb2RlLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRAorICAgICAqIEBzZWUgI2dldERpc3BsYXlDb3VudHJ5KCkKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5Q291bnRyeShVTG9jYWxlKQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldENvdW50cnkoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldENvdW50cnkoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFyaWFudCBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5VmFyaWFudCgpCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVZhcmlhbnQoVUxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFZhcmlhbnQoKSB7CisgICAgICAgIHJldHVybiBnZXRWYXJpYW50KGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YXJpYW50IGNvZGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlWYXJpYW50KCkKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5VmFyaWFudChVTG9jYWxlKQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFZhcmlhbnQoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFZhcmlhbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBmYWxsYmFjayBsb2NhbGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEZhbGxiYWNrKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RmFsbGJhY2tTdHJpbmcoZ2V0TmFtZShsb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZhbGxiYWNrIGxvY2FsZSBmb3IgdGhpcyBsb2NhbGUuICBJZiB0aGlzIGxvY2FsZSBpcyByb290LCByZXR1cm5zIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0RmFsbGJhY2soKSB7CisgICAgICAgIGlmIChsb2NhbGVJRC5sZW5ndGgoKSA9PSAwIHx8IGxvY2FsZUlELmNoYXJBdCgwKSA9PSAnQCcpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShnZXRGYWxsYmFja1N0cmluZyhsb2NhbGVJRCksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBnaXZlbiAoY2Fub25pY2FsKSBsb2NhbGUgaWQgbWludXMgdGhlIGxhc3QgcGFydCBiZWZvcmUgdGhlIHRhZ3MuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldEZhbGxiYWNrU3RyaW5nKFN0cmluZyBmYWxsYmFjaykgeworICAgICAgICBpbnQgbGltaXQgPSBmYWxsYmFjay5pbmRleE9mKCdAJyk7CisgICAgICAgIGlmIChsaW1pdCA9PSAtMSkgeworICAgICAgICAgICAgbGltaXQgPSBmYWxsYmFjay5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RhcnQgPSBmYWxsYmFjay5sYXN0SW5kZXhPZignXycsIGxpbWl0KTsKKyAgICAgICAgaWYgKHN0YXJ0ID09IC0xKSB7CisgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbGxiYWNrLnN1YnN0cmluZygwLCBzdGFydCkgKyBmYWxsYmFjay5zdWJzdHJpbmcobGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBiYXNlIG5hbWUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGJhc2UgbmFtZSBhcyBhIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICByZXR1cm4gZ2V0QmFzZU5hbWUobG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgYmFzZSBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSBJRCBhcyBhIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIGJhc2UgbmFtZSBhcyBhIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRCYXNlTmFtZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBpZiAobG9jYWxlSUQuaW5kZXhPZignQCcpID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0QmFzZU5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgZnVsbCBuYW1lIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RyaW5nIHRoZSBmdWxsIG5hbWUgb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlEOyAvLyBhbHdheXMgbm9ybWFsaXplZAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGVJRCBhcyBhIHN0cmluZworICAgICAqIEByZXR1cm4gU3RyaW5nIHRoZSBmdWxsIG5hbWUgb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBNYXAgY2FjaGUgPSAoTWFwKW5hbWVDYWNoZVJlZi5nZXQoKTsKKyAgICAgICAgaWYgKGNhY2hlID09IG51bGwpIHsKKyAgICAgICAgICAgIGNhY2hlID0gQ29sbGVjdGlvbnMuc3luY2hyb25pemVkTWFwKG5ldyBIYXNoTWFwKCkpOworICAgICAgICAgICAgbmFtZUNhY2hlUmVmID0gbmV3IFNvZnRSZWZlcmVuY2UoY2FjaGUpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZyljYWNoZS5nZXQobG9jYWxlSUQpOworICAgICAgICBpZiAobmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICBuYW1lID0gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXROYW1lKCk7CisgICAgICAgICAgICBjYWNoZS5wdXQobG9jYWxlSUQsIG5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIG5hbWVDYWNoZVJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKENvbGxlY3Rpb25zLnN5bmNocm9uaXplZE1hcChuZXcgSGFzaE1hcCgpKSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIga2V5d29yZHMgZm9yIHRoaXMgbG9jYWxlLiAgSWYgdGhlcmUgCisgICAgICogYXJlIG5vIGtleXdvcmRzLCByZXR1cm5zIG51bGwuCisgICAgICogQHJldHVybiBpdGVyYXRvciBvdmVyIGtleXdvcmRzLCBvciBudWxsIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoKSB7CisgICAgICAgIHJldHVybiBnZXRLZXl3b3Jkcyhsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIGtleXdvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4gIElmIHRoZXJlIAorICAgICAqIGFyZSBubyBrZXl3b3JkcywgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5d29yZHMgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUsIG9yIG51bGwKKyAgICAgKiBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJdGVyYXRvciBnZXRLZXl3b3JkcyhTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQgaW4gdGhpcyBsb2NhbGUuIElmIHRoZSBrZXl3b3JkIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIG51bGwuCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgZGVzaXJlZC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUga2V5d29yZCwgb3IgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUpeworICAgICAgICByZXR1cm4gZ2V0S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXl3b3JkTmFtZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuIElmIHRoZSBrZXl3b3JkIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIG51bGwuIAorICAgICAqIFRoZSBsb2NhbGUgbmFtZSBkb2VzIG5vdCBuZWVkIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgZGVzaXJlZC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyB0aGUgdmFsdWUgb2YgdGhlIGtleXdvcmQgYXMgYSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcga2V5d29yZE5hbWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGNsYXNzIHRvIHBhcnNlIGFuZCBub3JtYWxpemUgbG9jYWxlIGlkcyAoaW5jbHVkaW5nIFBPU0lYIHN0eWxlKQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIElEUGFyc2VyIHsKKyAgICAgICAgcHJpdmF0ZSBjaGFyW10gaWQ7CisgICAgICAgIHByaXZhdGUgaW50IGluZGV4OworICAgICAgICBwcml2YXRlIGNoYXJbXSBidWZmZXI7CisgICAgICAgIHByaXZhdGUgaW50IGJsZW47CisgICAgICAgIC8vIHVtLCBkb24ndCBoYW5kbGUgUE9TSVggaWRzIHVubGVzcyB3ZSByZXF1ZXN0IGl0LiAgd2h5IG5vdD8gIHdlbGwuLi4gYmVjYXVzZS4KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGNhbm9uaWNhbGl6ZTsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhZENvdW50cnk7CisKKyAgICAgICAgLy8gdXNlZCB3aGVuIGNhbm9uaWNhbGl6aW5nCisgICAgICAgIE1hcCBrZXl3b3JkczsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzaW5nIGNvbnN0YW50cy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgS0VZV09SRF9TRVBBUkFUT1IgICAgID0gJ0AnOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhZUEhFTiAgICAgICAgICAgICAgICA9ICctJzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBLRVlXT1JEX0FTU0lHTiAgICAgICAgPSAnPSc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ09NTUEgICAgICAgICAgICAgICAgID0gJywnOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIElURU1fU0VQQVJBVE9SICAgICAgICA9ICc7JzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBET1QgICAgICAgICAgICAgICAgICAgPSAnLic7CisKKyAgICAgICAgcHJpdmF0ZSBJRFBhcnNlcihTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgICAgIHRoaXMobG9jYWxlSUQsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSURQYXJzZXIoU3RyaW5nIGxvY2FsZUlELCBib29sZWFuIGNhbm9uaWNhbGl6ZSkgeworICAgICAgICAgICAgaWQgPSBsb2NhbGVJRC50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbaWQubGVuZ3RoICsgNV07CisgICAgICAgICAgICBibGVuID0gMDsKKyAgICAgICAgICAgIHRoaXMuY2Fub25pY2FsaXplID0gY2Fub25pY2FsaXplOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgaW5kZXggPSBibGVuID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHV0aWxpdGllcyBmb3Igd29ya2luZyBvbiB0ZXh0IGluIHRoZSBidWZmZXIKKworICAgICAgICAvKioKKyAgICAgICAgICogQXBwZW5kIGMgdG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBhcHBlbmQoY2hhciBjKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltibGVuXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPiA1MTIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIGlzIHNlcmlvdXNseSB3cm9uZywgbGV0IHRoaXMgZ28KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hhcltdIG5idWZmZXIgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoICogMl07CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIG5idWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworICAgICAgICAgICAgICAgIG5idWZmZXJbYmxlbl0gPSBjOworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG5idWZmZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2JsZW47CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgYWRkU2VwYXJhdG9yKCkgeworICAgICAgICAgICAgYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHRleHQgaW4gdGhlIGJ1ZmZlciBmcm9tIHN0YXJ0IHRvIGJsZW4gYXMgYSBTdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRTdHJpbmcoaW50IHN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gYmxlbikgeworICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWZmZXIsIHN0YXJ0LCBibGVuLXN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIHRvIHBvcywgdGhlbiBhcHBlbmQgdGhlIHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXQoaW50IHBvcywgU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIHRoaXMuYmxlbiA9IHBvczsgLy8gbm8gc2FmZXR5CisgICAgICAgICAgICBhcHBlbmQocyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQXBwZW5kIHRoZSBzdHJpbmcgdG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBhcHBlbmQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKHMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHV0aWxpdGllcyBmb3IgcGFyc2luZyB0ZXh0IG91dCBvZiB0aGUgaWQKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHRvIGluZGljYXRlIG5vIG1vcmUgdGV4dCBpcyBhdmFpbGFibGUgaW4gdGhlIGlkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBET05FID0gJ1x1ZmZmZic7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlciBhdCBpbmRleCBpbiB0aGUgaWQsIGFuZCBhZHZhbmNlIGluZGV4LiAgVGhlIHJldHVybmVkIGNoYXJhY3RlcgorICAgICAgICAgKiBpcyBET05FIGlmIGluZGV4IHdhcyBhdCB0aGUgbGltaXQgb2YgdGhlIGJ1ZmZlci4gIFRoZSBpbmRleCBpcyBhZHZhbmNlZCByZWdhcmRsZXNzCisgICAgICAgICAqIHNvIHRoYXQgZGVjcmVtZW50aW5nIHRoZSBpbmRleCB3aWxsIGFsd2F5cyAndW5nZXQnIHRoZSBsYXN0IGNoYXJhY3RlciByZXR1cm5lZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgY2hhciBuZXh0KCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IGlkLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gaWRbaW5kZXgrK107CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCB1bnRpbCB0aGUgbmV4dCB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvciwgYW5kIGxlYXZlIGl0IHRoZXJlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCkgeworICAgICAgICAgICAgd2hpbGUgKCFpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgYXQgaW5kZXggaW4gdGhlIGlkIGlzIGEgdGVybWluYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBhdFRlcm1pbmF0b3IoKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gaWQubGVuZ3RoIHx8IGlzVGVybWluYXRvcihpZFtpbmRleF0pOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYW4gaWQgc2VwYXJhdG9yICh1bmRlcnNjb3JlIG9yIGh5cGhlbikuCisgICAgICAgICAqLworLyogICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc0lEU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gVU5ERVJTQ09SRSB8fCBjID09IEhZUEhFTjsKKyAgICAgICAgfSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgdGVybWluYXRvciAoa2V5d29yZCBzZXBhcmF0b3IsIGRvdCwgb3IgRE9ORSkuCisgICAgICAgICAqIERvdCBpcyBhIHRlcm1pbmF0b3IgYmVjYXVzZSBvZiB0aGUgUE9TSVggZm9ybSwgd2hlcmUgZG90IHByZWNlZGVzIHRoZSBjb2RlcGFnZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1Rlcm1pbmF0b3IoY2hhciBjKSB7CisgICAgICAgICAgICAvLyBhbHdheXMgdGVybWluYXRlIGF0IERPVCwgZXZlbiBpZiBub3QgaGFuZGxpbmcgUE9TSVguICBJdCdzIGFuIGVycm9yLi4uCisgICAgICAgICAgICByZXR1cm4gYyA9PSBLRVlXT1JEX1NFUEFSQVRPUiB8fCBjID09IERPTkUgfHwgYyA9PSBET1Q7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gS0VZV09SRF9TRVBBUkFUT1IgfHwgYyA9PSBVTkRFUlNDT1JFIHx8IGMgPT0gSFlQSEVOIHx8IAorICAgICAgICAgICAgICAgIGMgPT0gRE9ORSB8fCBjID09IERPVDsgICAKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIgaGFzIGFuIGV4cGVyaW1lbnRhbCBvciBwcml2YXRlIGxhbmd1YWdlIAorICAgICAgICAgKiBwcmVmaXgsIHRoZSBwYXR0ZXJuICdbaXhJWF1bLV9dLicgc2hvd3MgdGhlIHN5bnRheCBjaGVja2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpIHsKKyAgICAgICAgICAgIGlmIChpZC5sZW5ndGggPiAyKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gaWRbMV07CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gSFlQSEVOIHx8IGMgPT0gVU5ERVJTQ09SRSkgeworICAgICAgICAgICAgICAgICAgICBjID0gaWRbMF07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjID09ICd4JyB8fCBjID09ICdYJyB8fCBjID09ICdpJyB8fCBjID09ICdJJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIGEgdmFsdWUgc2VwYXJhdG9yIG9jY3VycyBhdCBvciBhZnRlciBpbmRleC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBoYXZlS2V5d29yZEFzc2lnbigpIHsKKyAgICAgICAgICAgIC8vIGFzc3VtZSBpdCBpcyBzYWZlIHRvIHN0YXJ0IGZyb20gaW5kZXgKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBpbmRleDsgaSA8IGlkLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkW2ldID09IEtFWVdPUkRfQVNTSUdOKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgbGFuZ3VhZ2UsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgbGFuZ3VhZ2UgY29kZSBpbiBidWZmZXIuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgYXQgMCB3aGVuIHRoaXMgaXMgY2FsbGVkLiAgSW5kZXggaXMgbGVmdCBhdCBhIHRlcm1pbmF0b3Igb3IgaWQgCisgICAgICAgICAqIHNlcGFyYXRvci4gIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBsYW5ndWFnZSBjb2RlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZUxhbmd1YWdlKCkgeworICAgICAgICAgICAgaWYgKGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b0xvd2VyQ2FzZShpZFswXSkpOworICAgICAgICAgICAgICAgIGFwcGVuZChIWVBIRU4pOworICAgICAgICAgICAgICAgIGluZGV4ID0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICB3aGlsZSghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoYykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKworICAgICAgICAgICAgaWYgKGJsZW4gPT0gMykgeworICAgICAgICAgICAgICAgIGluaXRMYW5ndWFnZVRhYmxlcygpOworCisgICAgICAgICAgICAgICAgLyogY29udmVydCAzIGNoYXJhY3RlciBjb2RlIHRvIDIgY2hhcmFjdGVyIGNvZGUgaWYgcG9zc2libGUgKkNXQiovCisgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSBnZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfbGFuZ3VhZ2VzMywgbGFuZyk7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNldCgwLCBfbGFuZ3VhZ2VzW29mZnNldF0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVMYW5ndWFnZXMzLCBsYW5nKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQoMCwgX29ic29sZXRlTGFuZ3VhZ2VzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgbGFuZ3VhZ2UuICBJbmRleCBtdXN0IGJlIGF0IDAgd2hlbiB0aGlzIGlzIGNhbGxlZC4gIEluZGV4CisgICAgICAgICAqIGlzIGxlZnQgYXQgYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwTGFuZ3VhZ2UoKSB7CisgICAgICAgICAgICBpZiAoaGF2ZUV4cGVyaW1lbnRhbExhbmd1YWdlUHJlZml4KCkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBzY3JpcHQsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgc2NyaXB0IGluIGJ1ZmZlci4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFuZ3VhZ2UuCisgICAgICAgICAqIElmIHRoZSBpdGVtIGF0IHRoaXMgcG9zaXRpb24gaXMgbm90IGEgc2NyaXB0IChpcyBub3QgZm91ciBjaGFyYWN0ZXJzCisgICAgICAgICAqIGxvbmcpIGxlYXZlIGluZGV4IGFuZCBidWZmZXIgdW5jaGFuZ2VkLiAgT3RoZXJ3aXNlIGluZGV4IGlzIGxlZnQgYXQKKyAgICAgICAgICogYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4gIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBzY3JpcHQgY29kZQorICAgICAgICAgKiBpbiB0aGUgYnVmZmVyICh0aGlzIG1heSBiZSBlcXVhbCB0byB0aGUgYnVmZmVyIGxlbmd0aCwgaWYgdGhlcmUgaXMgbm8KKyAgICAgICAgICogc2NyaXB0KS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlU2NyaXB0KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgIGludCBvbGRJbmRleCA9IGluZGV4OyAvLyBzYXZlIG9yaWdpbmFsIGluZGV4CisgICAgICAgICAgICAgICAgKytpbmRleDsKKworICAgICAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsgLy8gZ2V0IGJlZm9yZSBhcHBlbmQgaHlwaGVuLCBpZiB3ZSB0cnVuY2F0ZSBldmVyeXRoaW5nIGlzIHVuZG9uZQorICAgICAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgICAgICB3aGlsZSghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYmxlbiA9PSBvbGRCbGVuKSB7IC8vIGZpcnN0IHBhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b1VwcGVyQ2FzZShjKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorCisgICAgICAgICAgICAgICAgLyogSWYgaXQncyBub3QgZXhhY3RseSA0IGNoYXJhY3RlcnMgbG9uZywgdGhlbiBpdCdzIG5vdCBhIHNjcmlwdC4gKi8KKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggLSBvbGRJbmRleCAhPSA1KSB7IC8vICsxIHRvIGFjY291bnQgZm9yIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG9sZEluZGV4OworICAgICAgICAgICAgICAgICAgICBibGVuID0gb2xkQmxlbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvbGRCbGVuKys7IC8vIGluZGV4IHBhc3QgaHlwaGVuLCBmb3IgY2xpZW50cyB3aG8gd2FudCB0byBleHRyYWN0IGp1c3QgdGhlIHNjcmlwdAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGJsZW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IHNjcmlwdC4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFuZ3VhZ2UgYW5kIElEU2VwYXJhdG9yLgorICAgICAgICAgKiBJZiB0aGUgaXRlbSBhdCB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIHNjcmlwdCAoaXMgbm90IGZvdXIgY2hhcmFjdGVycworICAgICAgICAgKiBsb25nKSBsZWF2ZSBpbmRleC4gIE90aGVyd2lzZSBpbmRleCBpcyBsZWZ0IGF0IGEgdGVybWluYXRvciBvcgorICAgICAgICAgKiBpZCBzZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcFNjcmlwdCgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgb2xkSW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICArK2luZGV4OworCisgICAgICAgICAgICAgICAgc2tpcFVudGlsVGVybWluYXRvck9ySURTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggLSBvbGRJbmRleCAhPSA1KSB7IC8vICsxIHRvIGFjY291bnQgZm9yIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG9sZEluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgY291bnRyeSwgYW5kIGFjY3VtdWxhdGUgbm9ybWFsaXplZCBjb3VudHJ5IGluIGJ1ZmZlci4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgc2NyaXB0IChpZiB0aGVyZSBpcyBvbmUsIGVsc2UgbGFuZ3VhZ2UpCisgICAgICAgICAqIGFuZCBJRFNlcGFyYXRvci4gIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGNvdW50cnkgY29kZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VDb3VudHJ5KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgICsraW5kZXg7CisKKyAgICAgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47CisgICAgICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgICAgIHdoaWxlICghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAob2xkQmxlbiA9PSBibGVuKSB7IC8vIGZpcnN0LCBhZGQgaHlwaGVuCisgICAgICAgICAgICAgICAgICAgICAgICBoYWRDb3VudHJ5ID0gdHJ1ZTsgLy8gd2UgaGF2ZSBhIGNvdW50cnksIGxldCB2YXJpYW50IHBhcnNpbmcga25vdworICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47IC8vIGluY3JlbWVudCBwYXN0IGh5cGhlbgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9VcHBlckNhc2UoYykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorCisgICAgICAgICAgICAgICAgaWYgKGJsZW4gLSBvbGRCbGVuID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5pdENvdW50cnlUYWJsZXMoKTsKKworICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IDMgY2hhcmFjdGVyIGNvZGUgdG8gMiBjaGFyYWN0ZXIgY29kZSBpZiBwb3NzaWJsZSAqQ1dCKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfY291bnRyaWVzMywgZ2V0U3RyaW5nKG9sZEJsZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQob2xkQmxlbiwgX2NvdW50cmllc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVDb3VudHJpZXMzLCBnZXRTdHJpbmcob2xkQmxlbikpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KG9sZEJsZW4sIF9vYnNvbGV0ZUNvdW50cmllc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gYmxlbjsKKyAgICAgICAgfQkgIAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgY291bnRyeS4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgc2NyaXB0IChpZiB0aGVyZSBpcyBvbmUsIGVsc2UgbGFuZ3VhZ2UpCisgICAgICAgICAqIGFuZCBJRFNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwQ291bnRyeSgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgICAgIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IHZhcmlhbnQsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgdmFyaWFudCBpbiBidWZmZXIuICBUaGlzIGlnbm9yZXMKKyAgICAgICAgICogdGhlIGNvZGVwYWdlIGluZm9ybWF0aW9uIGZyb20gUE9TSVggaWRzLiAgSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgY291bnRyeQorICAgICAgICAgKiBvciBzY3JpcHQuICBJbmRleCBpcyBsZWZ0IGF0IHRoZSBrZXl3b3JkIHNlcGFyYXRvciBvciBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgUmV0dXJuCisgICAgICAgICAqIHRoZSBzdGFydCBvZiB0aGUgdmFyaWFudCBjb2RlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqCisgICAgICAgICAqIEluIHN0YW5kYXJkIGZvcm0sIHdlIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybXM6CisgICAgICAgICAqIGxsX19WVlZWCisgICAgICAgICAqIGxsX0NDX1ZWVlYKKyAgICAgICAgICogbGxfU3Nzc19WVlZWCisgICAgICAgICAqIGxsX1Nzc3NfQ0NfVlZWVgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGFsc28gaGFuZGxlcyBQT1NJWCBpZHMsIHdoaWNoIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybXMgKHBwcHAgaXMgY29kZSBwYWdlIGlkKToKKyAgICAgICAgICogbGxfQ0MucHBwcCAgICAgICAgICAtLT4gbGxfQ0MKKyAgICAgICAgICogbGxfQ0MucHBwcEBWVlZWICAgICAtLT4gbGxfQ0NfVlZWVgorICAgICAgICAgKiBsbF9DQ0BWVlZWICAgICAgICAgIC0tPiBsbF9DQ19WVlZWCisgICAgICAgICAqCisgICAgICAgICAqIFdlIGlkZW50aWZ5IHRoaXMgdXNlIG9mICdAJyBpbiBQT1NJWCBpZHMgYnkgbG9va2luZyBmb3IgYW4gJz0nIGZvbGxvd2luZworICAgICAgICAgKiB0aGUgJ0AnLiAgSWYgdGhlcmUgaXMgb25lLCB3ZSBjb25zaWRlciAnQCcgdG8gc3RhcnQgYSBrZXl3b3JkIGxpc3QsIGluc3RlYWQgb2YKKyAgICAgICAgICogYmVpbmcgcGFydCBvZiBhIFBPU0lYIGlkLgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiAgc2luY2UgaXQgd2FzIGRlY2lkZWQgdGhhdCB3ZSB3YW50IGFuIG9wdGlvbiB0byBub3QgaGFuZGxlIFBPU0lYIGlkcywgdGhpcworICAgICAgICAgKiBiZWNvbWVzIGEgYml0IG1vcmUgY29tcGxleC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlVmFyaWFudCgpIHsKKyAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsKKworICAgICAgICAgICAgYm9vbGVhbiBzdGFydCA9IHRydWU7CisgICAgICAgICAgICBib29sZWFuIG5lZWRTZXBhcmF0b3IgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiBza2lwcGluZyA9IGZhbHNlOworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgd2hpbGUgKChjID0gbmV4dCgpKSAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRE9UKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHNraXBwaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gS0VZV09SRF9TRVBBUkFUT1IpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVLZXl3b3JkQXNzaWduKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNraXBwaW5nID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIG5lZWRTZXBhcmF0b3IgPSB0cnVlOyAvLyBhZGQgYW5vdGhlciB1bmRlcnNjb3JlIGlmIHdlIGhhdmUgbW9yZSB0ZXh0CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXNraXBwaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkU2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY09sZEJsZW4gPSBibGVuID09IG9sZEJsZW47IC8vIG5lZWQgdG8gc2tpcCBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgICAgICAgICBuZWVkU2VwYXJhdG9yID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jT2xkQmxlbiAmJiAhaGFkQ291bnRyeSkgeyAvLyBubyBjb3VudHJ5LCB3ZSdsbCBuZWVkIHR3bworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsgLy8gZm9yIHN1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY09sZEJsZW4pIHsgLy8gb25seSBmb3IgdGhlIGZpcnN0IHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjID0gQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSBIWVBIRU4gfHwgYyA9PSBDT01NQSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFVOREVSU0NPUkU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7IC8vIHVuZ2V0CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm8gbmVlZCBmb3Igc2tpcHZhcmlhbnQsIHRvIGdldCB0aGUga2V5d29yZHMgd2UnbGwganVzdCBzY2FuIGRpcmVjdGx5IGZvciAKKyAgICAgICAgLy8gdGhlIGtleXdvcmQgc2VwYXJhdG9yCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgbGFuZ3VhZ2UgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VMYW5ndWFnZSgpKTsKKyAgICAgICAgfQorICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIHNjcmlwdCBpZCwgb3IgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2NyaXB0KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHNraXBMYW5ndWFnZSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZVNjcmlwdCgpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogcmV0dXJuIHRoZSBub3JtYWxpemVkIGNvdW50cnkgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldENvdW50cnkoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgc2tpcExhbmd1YWdlKCk7CisgICAgICAgICAgICBza2lwU2NyaXB0KCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKHBhcnNlQ291bnRyeSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIHZhcmlhbnQgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhcmlhbnQoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgc2tpcExhbmd1YWdlKCk7CisgICAgICAgICAgICBza2lwU2NyaXB0KCk7CisgICAgICAgICAgICBza2lwQ291bnRyeSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZVZhcmlhbnQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgYW5kIHZhcmlhbnQgYXMgc2VwYXJhdGUgc3RyaW5ncy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRMYW5ndWFnZVNjcmlwdENvdW50cnlWYXJpYW50KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZUxhbmd1YWdlKCkpLAorICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZVNjcmlwdCgpKSwKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VDb3VudHJ5KCkpLAorICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZVZhcmlhbnQoKSkKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRCYXNlTmFtZShTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMuYmFzZU5hbWUgPSBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBhcnNlQmFzZU5hbWUoKSB7CisgICAgICAgICAgICBpZiAoYmFzZU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNldCgwLCBiYXNlTmFtZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgIHBhcnNlU2NyaXB0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VDb3VudHJ5KCk7CisgICAgICAgICAgICAgICAgcGFyc2VWYXJpYW50KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjYXRjaCB1bndhbnRlZCB0cmFpbGluZyB1bmRlcnNjb3JlIGFmdGVyIGNvdW50cnkgaWYgdGhlcmUgd2FzIG5vIHZhcmlhbnQKKyAgICAgICAgICAgICAgICBpZiAoYmxlbiA+IDEgJiYgYnVmZmVyW2JsZW4tMV0gPT0gVU5ERVJTQ09SRSkgeworICAgICAgICAgICAgICAgICAgICAtLWJsZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgYmFzZSBmb3JtIG9mIHRoZSBsb2NhbGUgaWQuICBUaGUgYmFzZQorICAgICAgICAgKiBmb3JtIGRvZXMgbm90IGluY2x1ZGUga2V5d29yZHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgaWYgKGJhc2VOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZUJhc2VOYW1lKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKDApOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgZnVsbCBmb3JtIG9mIHRoZSBsb2NhbGUgaWQuICBUaGUgZnVsbAorICAgICAgICAgKiBmb3JtIGluY2x1ZGVzIGtleXdvcmRzIGlmIHRoZXkgYXJlIHByZXNlbnQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICBwYXJzZUJhc2VOYW1lKCk7CisgICAgICAgICAgICBwYXJzZUtleXdvcmRzKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKDApOworICAgICAgICB9CisKKyAgICAgICAgLy8ga2V5d29yZCB1dGlsaXRpZXMKKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgd2UgaGF2ZSBrZXl3b3JkcywgYWR2YW5jZSBpbmRleCB0byB0aGUgc3RhcnQgb2YgdGhlIGtleXdvcmRzIGFuZCByZXR1cm4gdHJ1ZSwgCisgICAgICAgICAqIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gc2V0VG9LZXl3b3JkU3RhcnQoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gaW5kZXg7IGkgPCBpZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpZFtpXSA9PSBLRVlXT1JEX1NFUEFSQVRPUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2Fub25pY2FsaXplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gKytpOyBqIDwgaWQubGVuZ3RoOyArK2opIHsgLy8gaW5jcmVtZW50IGkgcGFzdCBzZXBhcmF0b3IgZm9yIHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZFtqXSA9PSBLRVlXT1JEX0FTU0lHTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBpZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRG9uZU9yS2V5d29yZEFzc2lnbihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IERPTkUgfHwgYyA9PSBLRVlXT1JEX0FTU0lHTjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNEb25lT3JJdGVtU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gRE9ORSB8fCBjID09IElURU1fU0VQQVJBVE9SOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0S2V5d29yZCgpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IGluZGV4OworICAgICAgICAgICAgd2hpbGUgKCFpc0RvbmVPcktleXdvcmRBc3NpZ24obmV4dCgpKSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGlkLCBzdGFydCwgaW5kZXgtc3RhcnQpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpbmRleDsKKyAgICAgICAgICAgIHdoaWxlICghaXNEb25lT3JJdGVtU2VwYXJhdG9yKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhpZCwgc3RhcnQsIGluZGV4LXN0YXJ0KS50cmltKCk7IC8vIGxlYXZlIGNhc2UgYWxvbmUKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBnZXRLZXlDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjb21wID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChTdHJpbmcpbGhzKS5jb21wYXJlVG8oKFN0cmluZylyaHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBjb21wOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBtYXAgb2YgdGhlIGtleXdvcmRzIGFuZCB2YWx1ZXMsIG9yIG51bGwgaWYgdGhlcmUgYXJlIG5vbmUuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIE1hcCBnZXRLZXl3b3JkTWFwKCkgeworICAgICAgICAgICAgaWYgKGtleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBUcmVlTWFwIG0gPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChzZXRUb0tleXdvcmRTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRyaW0gc3BhY2VzIGFuZCBjb252ZXJ0IHRvIGxvd2VyIGNhc2UsIGJvdGgga2V5d29yZHMgYW5kIHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IGdldEtleXdvcmQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gbmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gS0VZV09SRF9BU1NJR04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBtaXNzaW5nIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBtaXNzaW5nIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9IG5ldyBUcmVlTWFwKGdldEtleUNvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG0uY29udGFpbnNLZXkoa2V5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleSAnIiArIGtleSArICInIGFscmVhZHkgaGFzIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobmV4dCgpID09IElURU1fU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAga2V5d29yZHMgPSBtICE9IG51bGwgPyBtIDogQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4ga2V5d29yZHM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2UgdGhlIGtleXdvcmRzIGFuZCByZXR1cm4gc3RhcnQgb2YgdGhlIHN0cmluZyBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VLZXl3b3JkcygpIHsKKyAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsKKyAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgaWYgKCFtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBtLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGZpcnN0ID8gS0VZV09SRF9TRVBBUkFUT1IgOiBJVEVNX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKChTdHJpbmcpZS5nZXRLZXkoKSk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChLRVlXT1JEX0FTU0lHTik7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgoU3RyaW5nKWUuZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChibGVuICE9IG9sZEJsZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgKytvbGRCbGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5d29yZHMsIG9yIG51bGwgaWYgd2UgaGF2ZSBhbiBlbXB0eSBtYXAuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoKSB7CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIHJldHVybiBtLmlzRW1wdHkoKSA/IG51bGwgOiBtLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciBudWxsIGlmIHRoZSBrZXl3b3JkIGlzIG5vdAorICAgICAgICAgKiBwcmVzZW50LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lKSB7CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIHJldHVybiBtLmlzRW1wdHkoKSA/IG51bGwgOiAoU3RyaW5nKW0uZ2V0KGtleXdvcmROYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGtleXdvcmQgdmFsdWUgb25seSBpZiBpdCBpcyBub3QgYWxyZWFkeSBzZXQgdG8gc29tZXRoaW5nIGVsc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBkZWZhdWx0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBzZXRLZXl3b3JkVmFsdWUoa2V5d29yZE5hbWUsIHZhbHVlLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWVkIGtleXdvcmQsIG9yIHVuc2V0IGl0IGlmIHZhbHVlIGlzIG51bGwuICBJZgorICAgICAgICAgKiBrZXl3b3JkTmFtZSBpdHNlbGYgaXMgbnVsbCwgdW5zZXQgYWxsIGtleXdvcmRzLiAgSWYga2V5d29yZE5hbWUgaXMgbm90IG51bGwsCisgICAgICAgICAqIHZhbHVlIG11c3Qgbm90IGJlIG51bGwuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgICAgIHNldEtleXdvcmRWYWx1ZShrZXl3b3JkTmFtZSwgdmFsdWUsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciB1bnNldCBpdCBpZiB2YWx1ZSBpcyBudWxsLiAgSWYKKyAgICAgICAgICoga2V5d29yZE5hbWUgaXRzZWxmIGlzIG51bGwsIHVuc2V0IGFsbCBrZXl3b3Jkcy4gIElmIGtleXdvcmROYW1lIGlzIG5vdCBudWxsLAorICAgICAgICAgKiB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsLiAgSWYgcmVzZXQgaXMgdHJ1ZSwgaWdub3JlIGFueSBwcmV2aW91cyB2YWx1ZSBmb3IgCisgICAgICAgICAqIHRoZSBrZXl3b3JkLCBvdGhlcndpc2UgZG8gbm90IGNoYW5nZSB0aGUga2V5d29yZCAoaW5jbHVkaW5nIHJlbW92YWwgb2YKKyAgICAgICAgICogb25lIG9yIGFsbCBrZXl3b3JkcykuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlLCBib29sZWFuIHJlc2V0KSB7CisgICAgICAgICAgICBpZiAoa2V5d29yZE5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChyZXNldCkgeworICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwLCBpZ25vcmUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAga2V5d29yZHMgPSBDb2xsZWN0aW9ucy5FTVBUWV9NQVA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBrZXl3b3JkTmFtZSA9IGtleXdvcmROYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXl3b3JkTmFtZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleXdvcmQgbXVzdCBub3QgYmUgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgICAgIGlmIChtLmlzRW1wdHkoKSkgeyAvLyBpdCBpcyBFTVBUWV9NQVAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcmNlIG5ldyBtYXAKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gbmV3IFRyZWVNYXAoZ2V0S2V5Q29tcGFyYXRvcigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzLnB1dChrZXl3b3JkTmFtZSwgdmFsdWUudHJpbSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXNldCB8fCAhbS5jb250YWluc0tleShrZXl3b3JkTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5wdXQoa2V5d29yZE5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5yZW1vdmUoa2V5d29yZE5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIGxpbmVhciBzZWFyY2ggb2YgdGhlIHN0cmluZyBhcnJheS4gdGhlIGFycmF5cyBhcmUgdW5mb3J0dW5hdGVseSBvcmRlcmVkIGJ5IHRoZQorICAgICAqIHR3by1sZXR0ZXIgdGFyZ2V0IGNvZGUsIG5vdCB0aGUgdGhyZWUtbGV0dGVyIHNlYXJjaCBjb2RlLCB3aGljaCBzZWVtcyBiYWNrd2FyZHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRJbmRleChTdHJpbmdbXSBhcnJheSwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXQuZXF1YWxzKGFycmF5W2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9ICAgIAorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2Fub25pY2FsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIElELiAgVGhpcyBpcyB1c2VkIHRvIGNvbnZlcnQgUE9TSVgKKyAgICAgKiBhbmQgb3RoZXIgZ3JhbmRmYXRoZXJlZCBJRHMgdG8gc3RhbmRhcmQgSUNVIGZvcm0uCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAcmV0dXJuIHRoZSBjYW5vbmljYWxpemVkIGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsaXplKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIElEUGFyc2VyIHBhcnNlciA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCwgdHJ1ZSk7CisgICAgICAgIFN0cmluZyBiYXNlTmFtZSA9IHBhcnNlci5nZXRCYXNlTmFtZSgpOworICAgICAgICBib29sZWFuIGZvdW5kVmFyaWFudCA9IGZhbHNlOworICAgICAgCisgICAgICAgIC8vIGZvcm1lcmx5LCB3ZSBhbHdheXMgc2V0IHRvIGVuX1VTX1BPU0lYIGlmIHRoZSBiYXNlbmFtZSB3YXMgZW1wdHksIGJ1dAorICAgICAgICAvLyBub3cgd2UgcmVxdWlyZSB0aGF0IHRoZSBlbnRpcmUgaWQgYmUgZW1wdHksIHNvIHRoYXQgIkBmb289YmFyIgorICAgICAgICAvLyB3aWxsIHBhc3MgdGhyb3VnaCB1bmNoYW5nZWQuCisgICAgICAgIC8vIHtkbGZ9IEknZCByYXRoZXIga2VlcCAiIiB1bmNoYW5nZWQuCisgICAgICAgIGlmIChsb2NhbGVJRC5lcXVhbHMoIiIpKSB7CisgICAgICAgICAgICByZXR1cm4gIiI7CisvLyAgICAgICAgICAgICAgcmV0dXJuICJlbl9VU19QT1NJWCI7CisgICAgICAgIH0KKworICAgICAgICAvLyB3ZSBoYXZlIGFuIElEIGluIHRoZSBmb3JtIHh4X1l5eXlfWlpfS0tLS0sKKworICAgICAgICBpbml0VmFyaWFudHNUYWJsZSgpOworCisgICAgICAgIC8qIFNlZSBpZiB0aGlzIGlzIGFuIGFscmVhZHkga25vd24gbG9jYWxlICovCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgX3ZhcmlhbnRzVG9LZXl3b3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHNbaV1bMF0uZXF1YWxzKGJhc2VOYW1lKSkgeworICAgICAgICAgICAgICAgIGZvdW5kVmFyaWFudCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB2YWxzID0gX3ZhcmlhbnRzVG9LZXl3b3Jkc1tpXTsKKyAgICAgICAgICAgICAgICBwYXJzZXIuc2V0QmFzZU5hbWUodmFsc1sxXSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHNbMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZSh2YWxzWzJdLCB2YWxzWzNdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBjb252ZXJ0IHRoZSBFdXJvIHZhcmlhbnQgdG8gYXBwcm9wcmlhdGUgSUQgKi8KKyAgICAgICAgaWYgKCFmb3VuZFZhcmlhbnQpIHsKKyAgICAgICAgICAgIGludCBpZHggPSBiYXNlTmFtZS5pbmRleE9mKCJfRVVSTyIpOworICAgICAgICAgICAgaWYgKGlkeCA+IC0xKSB7CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKGJhc2VOYW1lLnN1YnN0cmluZygwLCBpZHgpKTsKKyAgICAgICAgICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZSgiY3VycmVuY3kiLCAiRVVSIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0b3RhbCBtb25kbyBoYWNrIGZvciBOb3J3ZWdpYW4sIGZvcnR1bmF0ZWx5IHRoZSBtYWluIE5ZIGNhc2UgaXMgaGFuZGxlZCBlYXJsaWVyICovCisgICAgICAgIGlmICghZm91bmRWYXJpYW50KSB7CisgICAgICAgICAgICBpZiAocGFyc2VyLmdldExhbmd1YWdlKCkuZXF1YWxzKCJuYiIpICYmIHBhcnNlci5nZXRWYXJpYW50KCkuZXF1YWxzKCJOWSIpKSB7CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKGxzY3ZUb0lEKCJubiIsIHBhcnNlci5nZXRTY3JpcHQoKSwgcGFyc2VyLmdldENvdW50cnkoKSwgbnVsbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBhcnNlci5nZXROYW1lKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdpdmVuIGEga2V5d29yZCBhbmQgYSB2YWx1ZSwgcmV0dXJuIGEgbmV3IGxvY2FsZSB3aXRoIGFuIHVwZGF0ZWQKKyAgICAgKiBrZXl3b3JkIGFuZCB2YWx1ZS4gIElmIGtleXdvcmQgaXMgbnVsbCwgdGhpcyByZW1vdmVzIGFsbCBrZXl3b3JkcyBmcm9tIHRoZSBsb2NhbGUgaWQuCisgICAgICogT3RoZXJ3aXNlLCBpZiB0aGUgdmFsdWUgaXMgbnVsbCwgdGhpcyByZW1vdmVzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGZyb20gdGhlCisgICAgICogbG9jYWxlIGlkLiAgT3RoZXJ3aXNlLCB0aGlzIGFkZHMvcmVwbGFjZXMgdGhlIHZhbHVlIGZvciB0aGlzIGtleXdvcmQgaW4gdGhlIGxvY2FsZSBpZC4KKyAgICAgKiBUaGUga2V5d29yZCBhbmQgdmFsdWUgbXVzdCBub3QgYmUgZW1wdHkuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYWRkL3JlbW92ZSwgb3IgbnVsbCB0byByZW1vdmUgYWxsIGtleXdvcmRzLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYWRkL3NldCwgb3IgbnVsbCB0byByZW1vdmUgdGhpcyBwYXJ0aWN1bGFyIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgdXBkYXRlZCBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZSBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoc2V0S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXl3b3JkLCB2YWx1ZSksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBsb2NhbGUgaWQsIGEga2V5d29yZCwgYW5kIGEgdmFsdWUsIHJldHVybiBhIG5ldyBsb2NhbGUgaWQgd2l0aCBhbiB1cGRhdGVkCisgICAgICoga2V5d29yZCBhbmQgdmFsdWUuICBJZiBrZXl3b3JkIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyBhbGwga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIGlkLgorICAgICAqIE90aGVyd2lzZSwgaWYgdGhlIHZhbHVlIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBmcm9tIHRoZQorICAgICAqIGxvY2FsZSBpZC4gIE90aGVyd2lzZSwgdGhpcyBhZGRzL3JlcGxhY2VzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGluIHRoZSBsb2NhbGUgaWQuCisgICAgICogVGhlIGtleXdvcmQgYW5kIHZhbHVlIG11c3Qgbm90IGJlIGVtcHR5LgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIGlkIHRvIG1vZGlmeQorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGFkZC9yZW1vdmUsIG9yIG51bGwgdG8gcmVtb3ZlIGFsbCBrZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGFkZC9zZXQsIG9yIG51bGwgdG8gcmVtb3ZlIHRoaXMgcGFydGljdWxhciBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIHVwZGF0ZWQgbG9jYWxlIGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpOworICAgICAgICBwYXJzZXIuc2V0S2V5d29yZFZhbHVlKGtleXdvcmQsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlci5nZXROYW1lKCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBHaXZlbiBhIGxvY2FsZSBpZCwgYSBrZXl3b3JkLCBhbmQgYSB2YWx1ZSwgcmV0dXJuIGEgbmV3IGxvY2FsZSBpZCB3aXRoIGFuIHVwZGF0ZWQKKyAgICAgKiBrZXl3b3JkIGFuZCB2YWx1ZSwgaWYgdGhlIGtleXdvcmQgZG9lcyBub3QgYWxyZWFkeSBoYXZlIGEgdmFsdWUuICBUaGUga2V5d29yZCBhbmQKKyAgICAgKiB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsIG9yIGVtcHR5LgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIGlkIHRvIG1vZGlmeQorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGFkZCwgaWYgbm90IGFscmVhZHkgcHJlc2VudAorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYWRkLCBpZiBub3QgYWxyZWFkeSBwcmVzZW50CisgICAgICogQHJldHVybiB0aGUgdXBkYXRlZCBsb2NhbGUgaWQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKy8qICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBkZWZhdWx0S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpOworICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZShrZXl3b3JkLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBwYXJzZXIuZ2V0TmFtZSgpOworICAgIH0qLworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UuICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgbGFuZ3VhZ2UsIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGEgbG93ZXJjYXNlIElTTyA2MzktMi9UIGxhbmd1YWdlIGNvZGUuCisgICAgICogVGhlIElTTyA2MzktMiBsYW5ndWFnZSBjb2RlcyBjYW4gYmUgZm91bmQgb24tbGluZSBhdAorICAgICAqICAgPGEgaHJlZj0iZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0Ij48Y29kZT5mdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQ8L2NvZGU+PC9hPgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElTTzNMYW5ndWFnZSgpeworICAgICAgICByZXR1cm4gZ2V0SVNPM0xhbmd1YWdlKGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBsYW5ndWFnZS4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBsYW5ndWFnZSwgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLiAgT3RoZXJ3aXNlLCByZXR1cm5zCisgICAgICogYSBsb3dlcmNhc2UgSVNPIDYzOS0yL1QgbGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBUaGUgSVNPIDYzOS0yIGxhbmd1YWdlIGNvZGVzIGNhbiBiZSBmb3VuZCBvbi1saW5lIGF0CisgICAgICogICA8YSBocmVmPSJmdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQiPjxjb2RlPmZ0cDovL2RrdXVnLmRrL2kxOG4vaXNvLTYzOS0yLnR4dDwvY29kZT48L2E+CisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTTzNMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShsb2NhbGVJRCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2xhbmd1YWdlcywgbGFuZ3VhZ2UpOworICAgICAgICBpZihvZmZzZXQ+PTApeworICAgICAgICAgICAgcmV0dXJuIF9sYW5ndWFnZXMzW29mZnNldF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlTGFuZ3VhZ2VzLCBsYW5ndWFnZSk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gX29ic29sZXRlTGFuZ3VhZ2VzM1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGlzIGxvY2FsZSdzIGNvdW50cnkvcmVnaW9uLiAgSWYgdGhlIGxvY2FsZQorICAgICAqIGRvZXNuJ3Qgc3BlY2lmeSBhIGNvdW50cnksIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAzLWxldHRlciBjb3VudHJ5IGNvZGUuCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgY291bnRyeSBhYmJyZXZpYXRpb24gaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJU08zQ291bnRyeSgpeworICAgICAgICByZXR1cm4gZ2V0SVNPM0NvdW50cnkobG9jYWxlSUQpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBjb3VudHJ5L3JlZ2lvbi4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBjb3VudHJ5LCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMy1sZXR0ZXIgY291bnRyeSBjb2RlLgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGNvdW50cnkgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTTzNDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBnZXRDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfY291bnRyaWVzLCBjb3VudHJ5KTsKKyAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgIHJldHVybiBfY291bnRyaWVzM1tvZmZzZXRdOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVDb3VudHJpZXMsIGNvdW50cnkpOworICAgICAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gX29ic29sZXRlQ291bnRyaWVzM1tvZmZzZXRdOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgfQorICAgIAorICAgIC8vIGRpc3BsYXkgbmFtZXMKKworICAgIC8qKgorICAgICAqIFV0aWxpdHkgdG8gZmV0Y2ggbG9jYWxlIGRpc3BsYXkgZGF0YSBmcm9tIHJlc291cmNlIGJ1bmRsZSB0YWJsZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldFRhYmxlU3RyaW5nKFN0cmluZyB0YWJsZU5hbWUsIFN0cmluZyBzdWJ0YWJsZU5hbWUsIFN0cmluZyBpdGVtLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIGlmIChpdGVtLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLgorICAgICAgICAgICAgICAgICAgZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgZGlzcGxheUxvY2FsZUlEKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VGFibGVTdHJpbmcodGFibGVOYW1lLCBzdWJ0YWJsZU5hbWUsIGl0ZW0sIGJ1bmRsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZ3RzdTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgdG8gZmV0Y2ggbG9jYWxlIGRpc3BsYXkgZGF0YSBmcm9tIHJlc291cmNlIGJ1bmRsZSB0YWJsZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldFRhYmxlU3RyaW5nKFN0cmluZyB0YWJsZU5hbWUsIFN0cmluZyBzdWJ0YWJsZU5hbWUsIFN0cmluZyBpdGVtLCBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUpIHsKKy8vICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJndHMgdGFibGU6ICIgKyB0YWJsZU5hbWUgKyAKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICIgc3VidGFibGU6ICIgKyBzdWJ0YWJsZU5hbWUgKworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIiBpdGVtOiAiICsgaXRlbSArCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAiIGJ1bmRsZTogIiArIGJ1bmRsZS5nZXRVTG9jYWxlKCkpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBjdXJyZW5jeQorICAgICAgICAgICAgICAgIGlmICgiY3VycmVuY3kiLmVxdWFscyhzdWJ0YWJsZU5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRhYmxlID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjaygiQ3VycmVuY2llcyIpOworICAgICAgICAgICAgICAgICAgICB0YWJsZSA9IHRhYmxlLmdldFdpdGhGYWxsYmFjayhpdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlLmdldFN0cmluZygxKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0YWJsZSA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2sodGFibGVOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJ0YWJsZU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlID0gdGFibGUuZ2V0V2l0aEZhbGxiYWNrKHN1YnRhYmxlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZihzdWJ0YWJsZU5hbWU9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF5IGJlIGEgZGVwcmVjYXRlZCBjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjdXJyZW50TmFtZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhYmxlTmFtZS5lcXVhbHMoIkNvdW50cmllcyIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROYW1lID0gZ2V0Q3VycmVudENvdW50cnlJRChpdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYodGFibGVOYW1lLmVxdWFscygiTGFuZ3VhZ2VzIikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE5hbWUgPSBnZXRDdXJyZW50TGFuZ3VhZ2VJRChpdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKGN1cnJlbnROYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7LyogZmFsbCB0aHJvdWdoKi99CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIGNhbid0IGZpZ3VyZSBvdXQgPy4uIHRyeSB0aGUgZmFsbGJhY2sgbWVjaGFuaXNtCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmFsbGJhY2tMb2NhbGUgPSB0YWJsZS5nZXRXaXRoRmFsbGJhY2soIkZhbGxiYWNrIikuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tMb2NhbGUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlID0gInJvb3QiOworICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJidW5kbGU6ICIgKyBidW5kbGUuZ2V0VUxvY2FsZSgpICsgIiBmYWxsYmFjazogIiArIGZhbGxiYWNrTG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZhbGxiYWNrTG9jYWxlLmVxdWFscyh0YWJsZS5nZXRVTG9jYWxlKCkubG9jYWxlSUQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZhbGxiYWNrIGZyb20gIiArIHRhYmxlLmdldFVMb2NhbGUoKSArICIgdG8gIiArIGZhbGxiYWNrTG9jYWxlICsgCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdCBidW5kbGUgIiArIGJ1bmRsZS5nZXRVTG9jYWxlKCkpOyAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZ3RzaTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbGFuZ3VhZ2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlMYW5ndWFnZUludGVybmFsKGxvY2FsZUlELCBnZXREZWZhdWx0KCkubG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TGFuZ3VhZ2UoVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TGFuZ3VhZ2VJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBsYW5ndWFnZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGxhbmd1YWdlIHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlMYW5ndWFnZUludGVybmFsKGxvY2FsZUlELCBnZXROYW1lKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBsYW5ndWFnZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGxhbmd1YWdlIHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbGFuZ3VhZ2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TGFuZ3VhZ2UoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlMYW5ndWFnZUludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CSAKKworICAgIHN0YXRpYyBTdHJpbmcgZ2V0Q3VycmVudENvdW50cnlJRChTdHJpbmcgb2xkSUQpeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9kZXByZWNhdGVkQ291bnRyaWVzLCBvbGRJRCk7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIF9yZXBsYWNlbWVudENvdW50cmllc1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvbGRJRDsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyBnZXRDdXJyZW50TGFuZ3VhZ2VJRChTdHJpbmcgb2xkSUQpeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVMYW5ndWFnZXMsIG9sZElEKTsKKyAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gX3JlcGxhY2VtZW50TGFuZ3VhZ2VzW29mZnNldF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9sZElEOyAgICAgICAgCisgICAgfQorCQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TGFuZ3VhZ2VJbnRlcm5hbChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nKCJMYW5ndWFnZXMiLCBudWxsLCBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldExhbmd1YWdlKCksIGRpc3BsYXlMb2NhbGVJRCk7CisgICAgfQorIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVNjcmlwdEludGVybmFsKGxvY2FsZUlELCBnZXREZWZhdWx0KCkubG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBzY3JpcHQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlTY3JpcHQoVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5U2NyaXB0SW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3Mgc2NyaXB0IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2Ugc2NyaXB0IHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBzY3JpcHQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVNjcmlwdEludGVybmFsKGxvY2FsZUlELCBnZXROYW1lKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHNjcmlwdCB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlTY3JpcHQoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlTY3JpcHRJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0SW50ZXJuYWwoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXRUYWJsZVN0cmluZygiU2NyaXB0cyIsIG51bGwsIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCksIGRpc3BsYXlMb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnkoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5Q291bnRyeUludGVybmFsKGxvY2FsZUlELCBnZXREZWZhdWx0KCkubG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGNvdW50cnkgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFVMb2NhbGUgZGlzcGxheUxvY2FsZSl7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5Q291bnRyeUludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBjb3VudHJ5IHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnkoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5Q291bnRyeUludGVybmFsKGxvY2FsZUlELCBnZXROYW1lKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBjb3VudHJ5IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgY291bnRyeSB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGNvdW50cnkgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeShTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUNvdW50cnlJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeUludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0VGFibGVTdHJpbmcoIkNvdW50cmllcyIsIG51bGwsICBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldENvdW50cnkoKSwgZGlzcGxheUxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFyaWFudCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5VmFyaWFudEludGVybmFsKGxvY2FsZUlELCBnZXREZWZhdWx0KCkubG9jYWxlSUQpOyAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyB2YXJpYW50IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFyaWFudCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5VmFyaWFudEludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSB2YXJpYW50IHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKXsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlWYXJpYW50SW50ZXJuYWwobG9jYWxlSUQsIGdldE5hbWUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyB2YXJpYW50IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgdmFyaWFudCB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudChTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVZhcmlhbnRJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudEludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0VGFibGVTdHJpbmcoIlZhcmlhbnRzIiwgbnVsbCwgbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRWYXJpYW50KCksIGRpc3BsYXlMb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGtleXdvcmQgbmFtZS4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkcygpCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nIGtleXdvcmQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkSW50ZXJuYWwoa2V5d29yZCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGtleXdvcmQgbmFtZS4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkcyhTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nIGtleXdvcmQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkSW50ZXJuYWwoa2V5d29yZCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUga2V5d29yZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQga2V5d29yZCBuYW1lLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZChTdHJpbmcga2V5d29yZCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5S2V5d29yZEludGVybmFsKGtleXdvcmQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRJbnRlcm5hbChTdHJpbmcga2V5d29yZCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0VGFibGVTdHJpbmcoIktleXMiLCBudWxsLCBrZXl3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpLCBkaXNwbGF5TG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YWx1ZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUtleXdvcmRWYWx1ZUludGVybmFsKGxvY2FsZUlELCBrZXl3b3JkLCBnZXREZWZhdWx0KCkubG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhbHVlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkVmFsdWVJbnRlcm5hbChsb2NhbGVJRCwga2V5d29yZCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgdmFsdWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2Uga2V5d29yZCB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhbHVlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5S2V5d29yZFZhbHVlSW50ZXJuYWwobG9jYWxlSUQsIGtleXdvcmQsIGdldE5hbWUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgdmFsdWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2Uga2V5d29yZCB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIHZhbHVlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YWx1ZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcga2V5d29yZCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5S2V5d29yZFZhbHVlSW50ZXJuYWwobG9jYWxlSUQsIGtleXdvcmQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZUludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAga2V5d29yZCA9IGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmQpOworICAgICAgICByZXR1cm4gZ2V0VGFibGVTdHJpbmcoIlR5cGVzIiwga2V5d29yZCwgdmFsdWUsIGRpc3BsYXlMb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUgbmFtZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChsb2NhbGVJRCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSBuYW1lIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbG9jYWxlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxvY2FsZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIElEIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSB3aG9zZSBuYW1lIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGxvY2FsZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIGdldE5hbWUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIElEIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSB3aG9zZSBuYW1lIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGxvY2FsZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZUludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICAvLyBsYW5nCisgICAgICAgIC8vIGxhbmcgKHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCwga2V5d29yZD12YWx1ZSwgLi4uKQorICAgICAgICAvLyBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGtleXdvcmQ9dmFsdWUsIC4uLgorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHRhYmxlTmFtZXMgPSB7ICJMYW5ndWFnZXMiLCAiU2NyaXB0cyIsICJDb3VudHJpZXMiLCAiVmFyaWFudHMiIH07CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBkaXNwbGF5TG9jYWxlSUQpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgSURQYXJzZXIgcGFyc2VyID0gbmV3IElEUGFyc2VyKGxvY2FsZUlEKTsKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBwYXJzZXIuZ2V0TGFuZ3VhZ2VTY3JpcHRDb3VudHJ5VmFyaWFudCgpOworCisgICAgICAgIGJvb2xlYW4gaGF2ZUxhbmd1YWdlID0gbmFtZXNbMF0ubGVuZ3RoKCkgPiAwOworICAgICAgICBib29sZWFuIG9wZW5QYXJlbiA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgbmFtZSA9IGdldFRhYmxlU3RyaW5nKHRhYmxlTmFtZXNbaV0sIG51bGwsIG5hbWUsIGJ1bmRsZSk7CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsgLy8gbmVlZCBhIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUxhbmd1YWdlICYgIW9wZW5QYXJlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5QYXJlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQobmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBNYXAgbSA9IHBhcnNlci5nZXRLZXl3b3JkTWFwKCk7CisgICAgICAgIGlmICghbS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGtleXMgPSBtLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChrZXlzLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlTGFuZ3VhZ2UgJiAhb3BlblBhcmVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgKCIpOworICAgICAgICAgICAgICAgICAgICAgICAgb3BlblBhcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgTWFwLkVudHJ5IGUgPSAoTWFwLkVudHJ5KWtleXMubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZ2V0VGFibGVTdHJpbmcoIktleXMiLCBudWxsLCBrZXksIGJ1bmRsZSkpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIj0iKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGdldFRhYmxlU3RyaW5nKCJUeXBlcyIsIGtleSwgdmFsLCBidW5kbGUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIikiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiogCisgICAgICogU2VsZWN0b3IgZm9yIDx0dD5nZXRMb2NhbGUoKTwvdHQ+IGluZGljYXRpbmcgdGhlIGxvY2FsZSBvZiB0aGUKKyAgICAgKiByZXNvdXJjZSBjb250YWluaW5nIHRoZSBkYXRhLiAgVGhpcyBpcyBhbHdheXMgYXQgb3IgYWJvdmUgdGhlCisgICAgICogdmFsaWQgbG9jYWxlLiAgSWYgdGhlIHZhbGlkIGxvY2FsZSBkb2VzIG5vdCBjb250YWluIHRoZQorICAgICAqIHNwZWNpZmljIGRhdGEgYmVpbmcgcmVxdWVzdGVkLCB0aGVuIHRoZSBhY3R1YWwgbG9jYWxlIHdpbGwgYmUKKyAgICAgKiBhYm92ZSB0aGUgdmFsaWQgbG9jYWxlLiAgSWYgdGhlIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20KKyAgICAgKiBsb2NhbGUgZGF0YSwgdGhlbiB0aGUgdmFsaWQgbG9jYWxlIGlzIDxpPm51bGw8L2k+LgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFR5cGUgQUNUVUFMX0xPQ0FMRSA9IG5ldyBUeXBlKDApOworIAorICAgIC8qKiAKKyAgICAgKiBTZWxlY3RvciBmb3IgPHR0PmdldExvY2FsZSgpPC90dD4gaW5kaWNhdGluZyB0aGUgbW9zdCBzcGVjaWZpYworICAgICAqIGxvY2FsZSBmb3Igd2hpY2ggYW55IGRhdGEgZXhpc3RzLiAgVGhpcyBpcyBhbHdheXMgYXQgb3IgYWJvdmUKKyAgICAgKiB0aGUgcmVxdWVzdGVkIGxvY2FsZSwgYW5kIGF0IG9yIGJlbG93IHRoZSBhY3R1YWwgbG9jYWxlLiAgSWYKKyAgICAgKiB0aGUgcmVxdWVzdGVkIGxvY2FsZSBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGFueSByZXNvdXJjZSBkYXRhLAorICAgICAqIHRoZW4gdGhlIHZhbGlkIGxvY2FsZSB3aWxsIGJlIGFib3ZlIHRoZSByZXF1ZXN0ZWQgbG9jYWxlLiAgSWYKKyAgICAgKiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YSwgdGhlbiB0aGUKKyAgICAgKiBhY3R1YWwgbG9jYWxlIGlzIDxpPm51bGw8L2k+LgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhlIHZhbGlkIGxvY2FsZSB3aWxsIGJlIHJldHVybmVkIGNvcnJlY3RseSBpbiBJQ1UKKyAgICAgKiAzLjAgb3IgbGF0ZXIuICBJbiBJQ1UgMi44LCBpdCBpcyBub3QgcmV0dXJuZWQgY29ycmVjdGx5LgorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW4pCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgVHlwZSBWQUxJRF9MT0NBTEUgPSBuZXcgVHlwZSgxKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBPcGFxdWUgc2VsZWN0b3IgZW51bSBmb3IgPHR0PmdldExvY2FsZSgpPC90dD4uCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFR5cGUgeworICAgICAgICBwcml2YXRlIGludCBsb2NhbGVUeXBlOworICAgICAgICBwcml2YXRlIFR5cGUoaW50IHR5cGUpIHsgbG9jYWxlVHlwZSA9IHR5cGU7IH0KKyAgICB9CisgICAgCisgICAgCisgIC8qKgorICAgICogQmFzZWQgb24gYSBIVFRQIGZvcm1hdHRlZCBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBpbiBIVFRQICJBY2NlcHQtTGFuZ3VhZ2U6IiBmb3JtYXQgb2YgYWNjZXB0YWJsZSBsb2NhbGVzCisgICAgKiBAcGFyYW0gYXZhaWxhYmxlTG9jYWxlcyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLiBPbmUgb2YgdGhlc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBmYWxsYmFjayBpZiBub24tbnVsbCwgYSAxLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyBhIGJvb2xlYW4gdG8gYmUgc2V0IHdpdGggdGhlIGZhbGxiYWNrIHN0YXR1cworICAgICogQHJldHVybiBvbmUgb2YgdGhlIGxvY2FsZXMgZnJvbSB0aGUgYXZhaWxhYmxlTG9jYWxlcyBsaXN0LCBvciBudWxsIGlmIG5vbmUgbWF0Y2gKKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAqLworCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGFjY2VwdExhbmd1YWdlKFN0cmluZyBhY2NlcHRMYW5ndWFnZUxpc3QsIFVMb2NhbGVbXSBhdmFpbGFibGVMb2NhbGVzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbltdIGZhbGxiYWNrKSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAgICAgKi8KKyAgICAgICAgY2xhc3MgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICAgICAgcHJpdmF0ZSBkb3VibGUgcTsKKyAgICAgICAgICAgIHByaXZhdGUgZG91YmxlIHNlcmlhbDsKKyAgICAgICAgICAgIHB1YmxpYyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKGRvdWJsZSB0aGVxLCBpbnQgdGhlc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgcSA9IHRoZXE7CisgICAgICAgICAgICAgICAgc2VyaWFsID0gdGhlc2VyaWFsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIG90aGVyID0gKFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEpIG87CisgICAgICAgICAgICAgICAgaWYocSA+IG90aGVyLnEpIHsgLy8gcmV2ZXJzZSAtIHRvIHNvcnQgaW4gZGVzY2VuZGluZyBvcmRlcgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHEgPCBvdGhlci5xKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzZXJpYWwgPCBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihzZXJpYWwgPiBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8vIHNhbWUgb2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gMXN0OiBwYXJzZSBvdXQgdGhlIGFjY2VwdExhbmd1YWdlTGlzdCBpbnRvIGFuIGFycmF5CisgICAgICAgIAorICAgICAgICBUcmVlTWFwIG1hcCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5sZW5ndGgoKTsKKyAgICAgICAgaW50IG47CisgICAgICAgIGZvcihuPTA7bjxsO24rKykgeworICAgICAgICAgICAgaW50IGl0ZW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignLCcsbik7CisgICAgICAgICAgICBpZihpdGVtRW5kID09IC0xKSB7CisgICAgICAgICAgICAgICAgaXRlbUVuZCA9IGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgcGFyYW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignOycsbik7CisgICAgICAgICAgICBkb3VibGUgcSA9IDEuMDsKKyAKKyAgICAgICAgICAgIGlmKChwYXJhbUVuZCAhPSAtMSkgJiYgKHBhcmFtRW5kIDwgaXRlbUVuZCkpIHsKKyAgICAgICAgICAgICAgICAvKiBzZW1pY29sb24gKDspIGlzIGNsb3NlciB0aGFuIGVuZCAoLCkgKi8KKyAgICAgICAgICAgICAgICBpbnQgdCA9IHBhcmFtRW5kICsgMTsKKyAgICAgICAgICAgICAgICB3aGlsZShVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSdxJykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KT09Jz0nKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LnN1YnN0cmluZyh0LGl0ZW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgcSA9IERvdWJsZS5wYXJzZURvdWJsZSh2YWwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBuZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgcSA9IDEuMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHEgPSAxLjA7IC8vZGVmYXVsdAorICAgICAgICAgICAgICAgIHBhcmFtRW5kID0gaXRlbUVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGxvYyA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcobixwYXJhbUVuZCkudHJpbSgpOworICAgICAgICAgICAgaW50IHNlcmlhbCA9IG1hcC5zaXplKCk7CisgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIGVudHJ5ID0gbmV3IFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEocSxzZXJpYWwpOworICAgICAgICAgICAgbWFwLnB1dChlbnRyeSwgbmV3IFVMb2NhbGUoY2Fub25pY2FsaXplKGxvYykpKTsgLy8gc29ydCBpbiByZXZlcnNlIG9yZGVyLi4gICAxLjAsIDAuOSwgMC44IC4uIGV0YworICAgICAgICAgICAgbiA9IGl0ZW1FbmQ7IC8vIGdldCBuZXh0IGl0ZW0uIChuKysgd2lsbCBza2lwIG92ZXIgZGVsaW1pdGVyKQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyAyLiBwdWxsIG91dCB0aGUgbWFwIAorICAgICAgICBVTG9jYWxlIGFjY2VwdExpc3RbXSA9IChVTG9jYWxlW10pbWFwLnZhbHVlcygpLnRvQXJyYXkobmV3IFVMb2NhbGVbbWFwLnNpemUoKV0pOworICAgICAgICAKKyAgICAgICAgLy8gMy4gY2FsbCB0aGUgcmVhbCBmdW5jdGlvbgorICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGlzdCwgYXZhaWxhYmxlTG9jYWxlcywgZmFsbGJhY2spOworICAgIH0KKyAgICAKKyAgIC8qKgorICAgICogQmFzZWQgb24gYSBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMKKyAgICAqIEBwYXJhbSBhdmFpbGFibGVMb2NhbGVzIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMuIE9uZSBvZiB0aGVzZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBhdmFpbGFibGVMb2NhbGVzIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgYWNjZXB0TGFuZ3VhZ2UoVUxvY2FsZVtdIGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZVtdCisgICAgYXZhaWxhYmxlTG9jYWxlcywgYm9vbGVhbltdIGZhbGxiYWNrKSB7CisgICAgICAgIC8vIGZhbGxiYWNrbGlzdAorICAgICAgICBpbnQgaSxqOworICAgICAgICBpZihmYWxsYmFjayAhPSBudWxsKSB7CisgICAgICAgICAgICBmYWxsYmFja1swXT10cnVlOworICAgICAgICB9CisgICAgICAgIGZvcihpPTA7aTxhY2NlcHRMYW5ndWFnZUxpc3QubGVuZ3RoO2krKykgeworICAgICAgICAgICAgVUxvY2FsZSBhTG9jYWxlID0gYWNjZXB0TGFuZ3VhZ2VMaXN0W2ldOworICAgICAgICAgICAgYm9vbGVhbltdIHNldEZhbGxiYWNrID0gZmFsbGJhY2s7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgZm9yKGo9MDtqPGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoO2orKykgeworICAgICAgICAgICAgICAgICAgICBpZihhdmFpbGFibGVMb2NhbGVzW2pdLmVxdWFscyhhTG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2V0RmFsbGJhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZhbGxiYWNrWzBdPWZhbHNlOyAvLyBmaXJzdCB0aW1lIHdpdGggdGhpcyBsb2NhbGUgLSBub3QgYSBmYWxsYmFjay4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2pdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIExvY2FsZSBsb2MgPSBhTG9jYWxlLnRvTG9jYWxlKCk7CisgICAgICAgICAgICAgICAgTG9jYWxlIHBhcmVudCA9IExvY2FsZVV0aWxpdHkuZmFsbGJhY2sobG9jKTsKKyAgICAgICAgICAgICAgICBpZihwYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhTG9jYWxlID0gbmV3IFVMb2NhbGUocGFyZW50KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhTG9jYWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0RmFsbGJhY2sgPSBudWxsOyAvLyBEbyBub3Qgc2V0IGZhbGxiYWNrIGluIGxhdGVyIGl0ZXJhdGlvbnMKKyAgICAgICAgICAgIH0gd2hpbGUgKGFMb2NhbGUgIT0gbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAvKioKKyAgICAqIEJhc2VkIG9uIGEgSFRUUCBmb3JtYXR0ZWQgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hvb3NlIGEgbG9jYWxlIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QgYXMgYXZhaWxhYmxlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBsaXN0IGluIEhUVFAgIkFjY2VwdC1MYW5ndWFnZToiIGZvcm1hdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMKKyAgICAqIEBwYXJhbSBmYWxsYmFjayBpZiBub24tbnVsbCwgYSAxLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyBhIGJvb2xlYW4gdG8gYmUgc2V0IHdpdGggdGhlIGZhbGxiYWNrIHN0YXR1cworICAgICogQHJldHVybiBvbmUgb2YgdGhlIGxvY2FsZXMgZnJvbSB0aGUgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCkgbGlzdCwgb3IgbnVsbCBpZiBub25lIG1hdGNoCisgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgcmV0dXJuIGFjY2VwdExhbmd1YWdlKGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCksCisgICAgICAgICAgICAgICAgCQkJCWZhbGxiYWNrKTsKKyAgICB9CisKKyAgIC8qKgorICAgICogQmFzZWQgb24gYW4gb3JkZXJlZCBhcnJheSBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hvb3NlIGEgbG9jYWxlIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QgYXMgYXZhaWxhYmxlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBvcmRlcmVkIGFycmF5IG9mIGFjY2VwdGFibGUgbG9jYWxlcyAocHJlZmVycmVkIGFyZSBsaXN0ZWQgZmlyc3QpCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgYWNjZXB0TGFuZ3VhZ2UoVUxvY2FsZVtdIGFjY2VwdExhbmd1YWdlTGlzdCwgYm9vbGVhbltdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKSB7CisgICAgICAgIHJldHVybiBhY2NlcHRMYW5ndWFnZShhY2NlcHRMYW5ndWFnZUxpc3QsIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpLAorCQkJCWZhbGxiYWNrKTsKKyAgICB9ICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlQnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9VUmVzb3VyY2VCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWI2YzJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSw1MDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5SZXNvdXJjZUJ1bmRsZVdyYXBwZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEgY29sbGVjdGlvbiBvZiByZXNvdXJjZSBpbmZvcm1hdGlvbiBwZXJ0YWluaW5nIHRvIGEgZ2l2ZW4KKyAqIGxvY2FsZS4gQSByZXNvdXJjZSBidW5kbGUgcHJvdmlkZXMgYSB3YXkgb2YgYWNjZXNzaW5nIGxvY2FsZS0gc3BlY2ZpYyBpbmZvcm1hdGlvbiBpbgorICogYSBkYXRhIGZpbGUuIFlvdSBjcmVhdGUgYSByZXNvdXJjZSBidW5kbGUgdGhhdCBtYW5hZ2VzIHRoZSByZXNvdXJjZXMgZm9yIGEgZ2l2ZW4KKyAqIGxvY2FsZSBhbmQgdGhlbiBhc2sgaXQgZm9yIGluZGl2aWR1YWwgcmVzb3VyY2VzLgorICogPFA+CisgKiBJbiBSZXNvdXJjZUJ1bmRsZSBjbGFzcywgYW4gb2JqZWN0IGlzIGNyZWF0ZWQgCisgKiBhbmQgdGhlIHN1YiBpdGVtcyBhcmUgZmV0Y2hlZCB1c2luZyBnZXRTdHJpbmcsIGdldE9iamVjdCBtZXRob2RzLiAKKyAqIEluIFVSZXNvdXJjZUJ1bmRsZSxlYWNoIGluZGl2aWR1YWwgZWxlbWVudCBvZiBhIHJlc291cmNlIGlzIGEgcmVzb3VyY2UgYnkgaXRzZWxmLgorICogCisgKiA8UD4KKyAqIFJlc291cmNlIGJ1bmRsZXMgaW4gSUNVIGFyZSBjdXJyZW50bHkgZGVmaW5lZCB1c2luZyB0ZXh0IGZpbGVzIHdoaWNoIGNvbmZvcm0gdG8gdGhlIGZvbGxvd2luZworICogPGEgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3VodG1sL2Rlc2lnbi9ibmZfcmIudHh0Ij5CTkYgZGVmaW5pdGlvbjwvYT4uCisgKiBNb3JlIG9uIHJlc291cmNlIGJ1bmRsZSBjb25jZXB0cyBhbmQgc3ludGF4IGNhbiBiZSBmb3VuZCBpbiB0aGUgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvUmVzb3VyY2VNYW5hZ2VtZW50Lmh0bWwiPlVzZXJzIEd1aWRlPC9hPi4KKyAqIDxQPgorICogCisgKiBUaGUgcGFja2FnaW5nIG9mIElDVSAqLnJlcyBmaWxlcyBjYW4gYmUgb2YgdHdvIHR5cGVzCisgKiBJQ1U0QzoKKyAqIDxwcmU+CisgKiAgICAgICByb290LnJlcworICogICAgICAgICB8CisgKiAgICAgIC0tLS0tLS0tCisgKiAgICAgfCAgICAgICAgfAorICogICBmci5yZXMgIGVuLnJlcworICogICAgIHwKKyAqICAgLS0tLS0tLS0KKyAqICB8ICAgICAgICB8CisgKiBmcl9DQS5yZXMgZnJfRlIucmVzICAgICAKKyAqIDwvcHJlPgorICogSkFWQS9KREs6CisgKiA8cHJlPgorICogICAgTG9jYWxlRWxlbWVudHMucmVzCisgKiAgICAgICAgIHwKKyAqICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgIHwgICAgICAgICAgICAgICAgICAgfAorICogTG9jYWxlRWxlbWVudHNfZnIucmVzICBMb2NhbGVFbGVtZW50c19lbi5yZXMKKyAqICAgICB8CisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogTG9jYWxlRWxlbWVudHNfZnJfQ0EucmVzICAgTG9jYWxlRWxlbWVudHNfZnJfRlIucmVzCisgKiA8L3ByZT4KKyAqIERlcGVuZGluZyBvbiB0aGUgb3JnYW5pemF0aW9uIG9mIHlvdXIgcmVzb3VyY2VzLCB0aGUgc3ludGF4IHRvIGdldEJ1bmRsZUluc3RhbmNlIHdpbGwgY2hhbmdlLgorICogVG8gb3BlbiBJQ1Ugc3R5bGUgb3JnYW5pemF0aW9uIHVzZToKKyAqIDxwcmU+CisgKiAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkdDMwYiIsICJlbl9VUyIpOworICogPC9wcmU+CisgKiBUbyBvcGVuIEphdmEvSkRLIHN0eWxlIG9yZ2FuaXphdGlvbiB1c2U6CisgKiA8cHJlPgorICogICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20uaWJtLmljdS5pbXBsLmRhdGEuTG9jYWxlRWxlbWVudHMiLCAiZW5fVVMiKTsKKyAqIDwvcHJlPgorICogQHN0YWJsZSBJQ1UgMy4wCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVVJlc291cmNlQnVuZGxlIGV4dGVuZHMgUmVzb3VyY2VCdW5kbGV7CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIHVzaW5nIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lIGFuZCBsb2NhbGUuCisgICAgICogSUNVX0RBVEFfQ0xBU1MgaXMgdXNlZCBhcyB0aGUgZGVmYXVsdCByb290LgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIHJlc291cmNlIGJ1bmRsZSBpcyBkZXNpcmVkCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgaWYgbm8gcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSBjYW4gYmUgZm91bmQKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKXsKKyAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSB1c2luZyB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSwgbG9jYWxlLCBhbmQgY2xhc3Mgcm9vdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIHJlc291cmNlIGJ1bmRsZSBpcyBkZXNpcmVkCisgICAgICogQHBhcmFtIHJvb3QgdGhlIGNsYXNzIG9iamVjdCBmcm9tIHdoaWNoIHRvIGxvYWQgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgIGlmIG5vIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIHNwZWNpZmllZCBiYXNlIG5hbWUgY2FuIGJlIGZvdW5kCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSwgQ2xhc3NMb2FkZXIgcm9vdCl7CisgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIHVzaW5nIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lLCBsb2NhbGUsIGFuZCBjbGFzcyByb290LgorICAgICAqCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSwgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZQorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgcmVzb3VyY2UgYnVuZGxlIGlzIGRlc2lyZWQKKyAgICAgKiBAcGFyYW0gcm9vdCB0aGUgY2xhc3Mgb2JqZWN0IGZyb20gd2hpY2ggdG8gbG9hZCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHBhcmFtIGRpc2FibGVGYWxsYmFjayBPcHRpb24gdG8gZGlzYWJsZSBsb2NhbGUgaW5oZXJpdGVuY2UuIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0cnVlIHRoZSBmYWxsYmFjayBjaGFpbiB3aWxsIG5vdCBiZSBidWlsdC4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqICAgICBpZiBubyByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lIGNhbiBiZSBmb3VuZAorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqIAorICAgICAqLyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lLCBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjayl7CisgICAgICAgIHJldHVybiBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTb2xlIGNvbnN0cnVjdG9yLiAgKEZvciBpbnZvY2F0aW9uIGJ5IHN1YmNsYXNzIGNvbnN0cnVjdG9ycywgdHlwaWNhbGx5CisgICAgICogaW1wbGljaXQuKSAgVGhpcyBpcyBwdWJsaWMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKYXZhLCB3aG9zZSBjb21waWxlcgorICAgICAqIHdpbGwgZ2VuZXJhdGUgcHVibGljIGRlZmF1bHQgY29uc3RydWN0b3JzIGZvciBhbiBhYnN0cmFjdCBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlKCkgeyAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVVJlc291cmNlQnVuZGxlIGZvciB0aGUgbG9jYWxlIHNwZWNpZmllZCwgZnJvbSB3aGljaCB1c2VycyBjYW4gZXh0cmFjdCByZXNvdXJjZXMgYnkgdXNpbmcKKyAgICAgKiB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGxvY2FsZSAgc3BlY2lmaWVzIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHdlIHdhbnQgdG8gb3BlbiB0aGUgcmVzb3VyY2UuCisgICAgICogICAgICAgICAgICAgICAgSWYgbnVsbCB0aGUgYnVuZGxlIGZvciBkZWZhdWx0IGxvY2FsZSBpcyBvcGVuZWQuICAgICAgICAgICAgICAKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlICAgICAgICAgICAgICAgCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpeworICAgICAgICBpZihsb2NhbGU9PW51bGwpeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7ICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUudG9TdHJpbmcoKSwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSICk7ICAgCisgICAgfQorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgc3BlY2lmaWVkIGJhc2UgbmFtZSwKKyAgICAgKiBmcm9tIHdoaWNoIHVzZXJzIGNhbiBleHRyYWN0IHJlc291cmNlcyBieSB1c2luZyB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGRlZmF1bHQgbG9jYWxlICAgICAgICAgICAgICAKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSl7CisgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZSggYmFzZU5hbWUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvU3RyaW5nKCksIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUiApOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVVJlc291cmNlQnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQgc3BlY2lmaWVkIGJhc2UgbmFtZSwKKyAgICAgKiBmcm9tIHdoaWNoIHVzZXJzIGNhbiBleHRyYWN0IHJlc291cmNlcyBieSB1c2luZyB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEBwYXJhbSBsb2NhbGUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLiAgCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIExvY2FsZSBsb2NhbGUpeworICAgICAgICByZXR1cm4gZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUsIGZyb20gd2hpY2ggdXNlcnMgY2FuIGV4dHJhY3QgcmVzb3VyY2VzIGJ5IHVzaW5nCisgICAgICogdGhlaXIgY29ycmVzcG9uZGluZyBrZXlzLgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZGF0YSBwYWNrYWdlLgorICAgICAqICAgICAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBkZWZhdWx0IElDVSBwYWNrYWdlIG5hbWUgaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZSAgICAgICAgICAgICAgIAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSwgVUxvY2FsZSBsb2NhbGUpeworICAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGUudG9TdHJpbmcoKSxJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOyAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGFuZCBzcGVjaWZpZWQgYmFzZSBuYW1lLAorICAgICAqIGZyb20gd2hpY2ggdXNlcnMgY2FuIGV4dHJhY3QgcmVzb3VyY2VzIGJ5IHVzaW5nIHRoZWlyIGNvcnJlc3BvbmRpbmcga2V5cy4KKyAgICAgKiBAcGFyYW0gYmFzZU5hbWUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLiAgICAgICAgICAgICAgCisgICAgICogQHBhcmFtIGxvY2FsZSAgc3BlY2lmaWVzIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHdlIHdhbnQgdG8gb3BlbiB0aGUgcmVzb3VyY2UuCisgICAgICogICAgICAgICAgICAgICAgSWYgbnVsbCB0aGUgYnVuZGxlIGZvciBkZWZhdWx0IGxvY2FsZSBpcyBvcGVuZWQuICAKKyAgICAgKiBAcGFyYW0gbG9hZGVyICB0aGUgbG9hZGVyIHRvIHVzZQorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZQorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBMb2NhbGUgbG9jYWxlLCBDbGFzc0xvYWRlciBsb2FkZXIpeworICAgICAgICByZXR1cm4gZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGxvYWRlcik7CisgICAgfQorICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFVSZXNvdXJjZUJ1bmRsZSwgZnJvbSB3aGljaCB1c2VycyBjYW4gZXh0cmFjdCByZXNvdXJjZXMgYnkgdXNpbmcKKyAgICAgKiB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBkYXRhIHBhY2thZ2UuCisgICAgICogICAgICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UgbmFtZSBpcyB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLgorICAgICAqIEBwYXJhbSBsb2FkZXIgIHRoZSBsb2FkZXIgdG8gdXNlCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlICAgICAgICAgICAgICAgCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFVMb2NhbGUgbG9jYWxlLCBDbGFzc0xvYWRlciBsb2FkZXIpeworICAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGUudG9TdHJpbmcoKSxsb2FkZXIpOyAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFJGQyAzMDY2IGNvbmZvcm1hbnQgbG9jYWxlIGlkIG9mIHRoaXMgcmVzb3VyY2UgYnVuZGxlLiAKKyAgICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCBhZnRlciBhIGNhbGwgdG8gZ2V0QnVuZGxlSW5zdGFuY2UoKSB0bworICAgICAqIGRldGVybWluZSB3aGV0aGVyIHRoZSByZXNvdXJjZSBidW5kbGUgcmV0dXJuZWQgcmVhbGx5CisgICAgICogY29ycmVzcG9uZHMgdG8gdGhlIHJlcXVlc3RlZCBsb2NhbGUgb3IgaXMgYSBmYWxsYmFjay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBvZiB0aGlzIHJlc291cmNlIGJ1bmRsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBVTG9jYWxlIGdldFVMb2NhbGUoKTsgCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG9jYWxlSUQKKyAgICAgKiBAcmV0dXJuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyBnZXRMb2NhbGVJRCgpOworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJhc2UgbmFtZSBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHJldHVybiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBiYXNlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgU3RyaW5nIGdldEJhc2VOYW1lKCk7CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcGFyZW50IGJ1bmRsZQorICAgICAqIEByZXR1cm4gVGhlIHBhcmVudCBidW5kbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpOworICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbG9jYWxlIG9mIHRoaXMgYnVuZGxlCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIG9mIHRoaXMgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKXsKKyAgICAgICAgcmV0dXJuIGdldFVMb2NhbGUoKS50b0xvY2FsZSgpOyAgIAorICAgIH0KKworICAgIC8vIENhY2hlIGZvciBSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0aW9uCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBCVU5ETEVfQ0FDSEU7CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZFRvQ2FjaGUoUmVzb3VyY2VDYWNoZUtleSBrZXksIFVSZXNvdXJjZUJ1bmRsZSBiKSB7CisgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgaWYgKEJVTkRMRV9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBtID0gKE1hcClCVU5ETEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBCVU5ETEVfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShtKTsKKyAgICAgICAgfQorICAgICAgICBtLnB1dChrZXksIGIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBhZGRUb0NhY2hlKENsYXNzTG9hZGVyIGNsLCBTdHJpbmcgZnVsbE5hbWUsIFVMb2NhbGUgZGVmYXVsdExvY2FsZSwgIFVSZXNvdXJjZUJ1bmRsZSBiKXsKKyAgICAgICAgY2FjaGVLZXkuc2V0S2V5VmFsdWVzKGNsLCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgIGFkZFRvQ2FjaGUoKFJlc291cmNlQ2FjaGVLZXkpY2FjaGVLZXkuY2xvbmUoKSwgYik7CisgICAgfQorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgVVJlc291cmNlQnVuZGxlIGxvYWRGcm9tQ2FjaGUoQ2xhc3NMb2FkZXIgY2wsIFN0cmluZyBmdWxsTmFtZSwgVUxvY2FsZSBkZWZhdWx0TG9jYWxlKXsKKyAgICAgICAgY2FjaGVLZXkuc2V0S2V5VmFsdWVzKGNsLCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgIHJldHVybiBsb2FkRnJvbUNhY2hlKGNhY2hlS2V5KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGxvYWRGcm9tQ2FjaGUoUmVzb3VyY2VDYWNoZUtleSBrZXkpIHsKKyAgICAgICAgaWYgKEJVTkRMRV9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbSA9IChNYXApQlVORExFX0NBQ0hFLmdldCgpOworICAgICAgICAgICAgaWYgKG0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoVVJlc291cmNlQnVuZGxlKW0uZ2V0KGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfSAgIAorICAgIAorICAgIC8qKgorICAgICAqIEtleSB1c2VkIGZvciBjYWNoZWQgcmVzb3VyY2UgYnVuZGxlcy4gIFRoZSBrZXkgY2hlY2tzCisgICAgICogdGhlIHJlc291cmNlIG5hbWUsIHRoZSBjbGFzcyByb290LCBhbmQgdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUgdG8gZGV0ZXJtaW5lIGlmIHRoZSByZXNvdXJjZSBpcyBhIG1hdGNoIHRvIHRoZQorICAgICAqIHJlcXVlc3RlZCBvbmUuIFRoZSByb290IG1heSBiZSBudWxsLCBidXQgdGhlCisgICAgICogc2VhcmNoTmFtZSBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlIG11c3QgaGF2ZSBhIG5vbi1udWxsIHZhbHVlLgorICAgICAqIE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgbWF5IGNoYW5nZSBvdmVyIHRpbWUsIGFuZAorICAgICAqIGxvb2t1cCBzaG91bGQgYWx3YXlzIGJlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGRlZmF1bHQKKyAgICAgKiBsb2NhbGUgKGlmIGF0IGFsbCkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgUmVzb3VyY2VDYWNoZUtleSBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisgICAgICAgIHByaXZhdGUgU29mdFJlZmVyZW5jZSBsb2FkZXJSZWY7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHNlYXJjaE5hbWU7CisgICAgICAgIHByaXZhdGUgVUxvY2FsZSBkZWZhdWx0TG9jYWxlOworICAgICAgICBwcml2YXRlIGludCBoYXNoQ29kZUNhY2hlOworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IG90aGVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbmFsIFJlc291cmNlQ2FjaGVLZXkgb3RoZXJFbnRyeSA9IChSZXNvdXJjZUNhY2hlS2V5KSBvdGhlcjsKKyAgICAgICAgICAgICAgICAvL3F1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGV5IGFyZSBub3QgZXF1YWwKKyAgICAgICAgICAgICAgICBpZiAoaGFzaENvZGVDYWNoZSAhPSBvdGhlckVudHJ5Lmhhc2hDb2RlQ2FjaGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2FyZSB0aGUgbmFtZXMgdGhlIHNhbWU/CisgICAgICAgICAgICAgICAgaWYgKCFzZWFyY2hOYW1lLmVxdWFscyhvdGhlckVudHJ5LnNlYXJjaE5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gYXJlIHRoZSBkZWZhdWx0IGxvY2FsZXMgdGhlIHNhbWU/CisgICAgICAgICAgICAgICAgaWYgKGRlZmF1bHRMb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJFbnRyeS5kZWZhdWx0TG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghZGVmYXVsdExvY2FsZS5lcXVhbHMob3RoZXJFbnRyeS5kZWZhdWx0TG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vYXJlIHJlZnMgKGJvdGggbm9uLW51bGwpIG9yIChib3RoIG51bGwpPworICAgICAgICAgICAgICAgIGlmIChsb2FkZXJSZWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXJFbnRyeS5sb2FkZXJSZWYgPT0gbnVsbDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG90aGVyRW50cnkubG9hZGVyUmVmICE9IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGxvYWRlclJlZi5nZXQoKSA9PSBvdGhlckVudHJ5LmxvYWRlclJlZi5nZXQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICByZXR1cm4gaGFzaENvZGVDYWNoZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL3RoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldEtleVZhbHVlcyhDbGFzc0xvYWRlciByb290LCBTdHJpbmcgc2VhcmNoTmFtZSwgVUxvY2FsZSBkZWZhdWx0TG9jYWxlKSB7CisgICAgICAgICAgICB0aGlzLnNlYXJjaE5hbWUgPSBzZWFyY2hOYW1lOworICAgICAgICAgICAgaGFzaENvZGVDYWNoZSA9IHNlYXJjaE5hbWUuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7CisgICAgICAgICAgICBpZiAoZGVmYXVsdExvY2FsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaGFzaENvZGVDYWNoZSBePSBkZWZhdWx0TG9jYWxlLmhhc2hDb2RlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocm9vdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhpcy5sb2FkZXJSZWYgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2FkZXJSZWYgPSBuZXcgU29mdFJlZmVyZW5jZShyb290KTsKKyAgICAgICAgICAgICAgICBoYXNoQ29kZUNhY2hlIF49IHJvb3QuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKnByaXZhdGUgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgICAgIHNldEtleVZhbHVlcyhudWxsLCAiIiwgbnVsbCk7CisgICAgICAgIH0qLworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBSZXNvdXJjZUNhY2hlS2V5IGNhY2hlS2V5ID0gbmV3IFJlc291cmNlQ2FjaGVLZXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJPT1RfTUlTU0lORyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJPT1RfSUNVID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUk9PVF9KQVZBID0gMjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIFJPT1RfQ0FDSEU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0Um9vdFR5cGUoU3RyaW5nIGJhc2VOYW1lLCBDbGFzc0xvYWRlciByb290KQorICAgIHsKKyAgICAgICAgTWFwIG0gPSBudWxsOworICAgICAgICBJbnRlZ2VyIHJvb3RUeXBlOworICAgICAgICAKKyAgICAgICAgaWYgKFJPT1RfQ0FDSEUgIT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IChNYXApIFJPT1RfQ0FDSEUuZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChtID09IG51bGwpIHsKKyAgICAgICAgICAgIG0gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgUk9PVF9DQUNIRSA9IG5ldyBTb2Z0UmVmZXJlbmNlKG0pOworICAgICAgICB9CisKKyAgICAgICAgcm9vdFR5cGUgPSAoSW50ZWdlcikgbS5nZXQoYmFzZU5hbWUpOworICAgICAgICAKKyAgICAgICAgaWYgKHJvb3RUeXBlID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyByb290TG9jYWxlID0gKGJhc2VOYW1lLmluZGV4T2YoJy4nKT09LTEpID8gInJvb3QiIDogIiI7CisgICAgICAgICAgICBpbnQgcnQgPSBST09UX01JU1NJTkc7IC8vIHZhbHVlIHNldCBvbiBzdWNjZXNzCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHJvb3RMb2NhbGUsIHJvb3QsIHRydWUpOworICAgICAgICAgICAgICAgIHJ0ID0gUk9PVF9JQ1U7IAorICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHJvb3RMb2NhbGUsIHJvb3QsIHRydWUpOworICAgICAgICAgICAgICAgICAgICBydCA9IFJPT1RfSkFWQTsKKyAgICAgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgICAvL3Rocm93IGF3YXkgdGhlIGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcm9vdFR5cGUgPSBuZXcgSW50ZWdlcihydCk7CisgICAgICAgICAgICBtLnB1dChiYXNlTmFtZSwgcm9vdFR5cGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcm9vdFR5cGUuaW50VmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzZXRSb290VHlwZShTdHJpbmcgYmFzZU5hbWUsIGludCByb290VHlwZSkKKyAgICB7CisgICAgICAgIEludGVnZXIgcnQgPSBuZXcgSW50ZWdlcihyb290VHlwZSk7CisgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChST09UX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIG0gPSAoTWFwKSBST09UX0NBQ0hFLmdldCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBST09UX0NBQ0hFID0gbmV3IFNvZnRSZWZlcmVuY2UobSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG0ucHV0KGJhc2VOYW1lLCBydCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExvYWRzIGEgbmV3IHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmUgYmFzZSBuYW1lLCBsb2NhbGUgYW5kIGNsYXNzIGxvYWRlci4KKyAgICAgKiBPcHRpb25hbGx5IHdpbGwgZGlzYWJsZSBsb2FkaW5nIG9mIGZhbGxiYWNrIGJ1bmRsZXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSwgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZQorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgcmVzb3VyY2UgYnVuZGxlIGlzIGRlc2lyZWQKKyAgICAgKiBAcGFyYW0gcm9vdCB0aGUgY2xhc3Mgb2JqZWN0IGZyb20gd2hpY2ggdG8gbG9hZCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHBhcmFtIGRpc2FibGVGYWxsYmFjayBkaXNhYmxlcyBsb2FkaW5nIG9mIGZhbGxiYWNrIGxvb2t1cCBjaGFpbgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgIGlmIG5vIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIHNwZWNpZmllZCBiYXNlIG5hbWUgY2FuIGJlIGZvdW5kCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgVVJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRlQnVuZGxlKAorICAgICAgICBTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lLCBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjaykKKyAgICB7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBiID0gbnVsbDsKKyAgICAgICAgaW50IHJvb3RUeXBlID0gZ2V0Um9vdFR5cGUoYmFzZU5hbWUsIHJvb3QpOworCisgICAgICAgIFVMb2NhbGUgZGVmYXVsdExvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChyb290VHlwZSkKKyAgICAgICAgeworICAgICAgICBjYXNlIFJPT1RfSUNVOgorICAgICAgICAgICAgaWYoZGlzYWJsZUZhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZ1bGxOYW1lID0gSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuZ2V0RnVsbE5hbWUoYmFzZU5hbWUsIGxvY2FsZU5hbWUpOyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FjaGVLZXkuc2V0S2V5VmFsdWVzKHJvb3QsIGZ1bGxOYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBiID0gbG9hZEZyb21DYWNoZShjYWNoZUtleSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBiID0gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5LnNldEtleVZhbHVlcyhyb290LCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGFkZFRvQ2FjaGUoY2FjaGVLZXksIGIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYiA9IElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gYjsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFJPT1RfSkFWQToKKyAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBiID0gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgc2V0Um9vdFR5cGUoYmFzZU5hbWUsIFJPT1RfSUNVKTsKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGIgPSBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgc2V0Um9vdFR5cGUoYmFzZU5hbWUsIFJPT1RfSkFWQSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBzZXRMb2FkaW5nU3RhdHVzKGludCBuZXdTdGF0dXMpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjI4MTBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwyOCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCisvKioKKyAqIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGUgcmVxdWVzdGVkIHJlc291cmNlIHR5cGUgCisgKiBpcyBub3QgdGhlIHNhbWUgdHlwZSBhcyB0aGUgYXZhaWxhYmxlIHJlc291cmNlCisgKiBAYXV0aG9yIHJhbQorICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24gZXh0ZW5kcyBSdW50aW1lRXhjZXB0aW9uIHsKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDEyODY1NjkwNjEwOTU0MzQ1NDFMOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0dWN0IHRoZSBleGNlcHRpb24gd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZQorICAgICAqIEBwYXJhbSBtc2cgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIHRoaXMgZXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbihTdHJpbmcgbXNnKXsKKyAgICAgICAgc3VwZXIobXNnKTsgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVW5pdmVyc2FsVGltZVNjYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Vbml2ZXJzYWxUaW1lU2NhbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTRjYWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVW5pdmVyc2FsVGltZVNjYWxlLmphdmEKQEAgLTAsMCArMSw2ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247CisKKy8qKiAKKyAqIFRoZXJlIGFyZSBxdWl0ZSBhIGZldyBkaWZmZXJlbnQgY29udmVudGlvbnMgZm9yIGJpbmFyeSBkYXRldGltZSwgZGVwZW5kaW5nIG9uIGRpZmZlcmVudAorICogcGxhdGZvcm1zIGFuZCBwcm90b2NvbHMuIFNvbWUgb2YgdGhlc2UgaGF2ZSBzZXZlcmUgZHJhd2JhY2tzLiBGb3IgZXhhbXBsZSwgcGVvcGxlIHVzaW5nCisgKiBVbml4IHRpbWUgKHNlY29uZHMgc2luY2UgSmFuIDEsIDE5NzAsIHVzdWFsbHkgaW4gYSAzMi1iaXQgaW50ZWdlcikKKyAqIHRoaW5rIHRoYXQgdGhleSBhcmUgc2FmZSB1bnRpbCBuZWFyIHRoZSB5ZWFyIDIwMzguCisgKiBCdXQgY2FzZXMgY2FuIGFuZCBkbyBhcmlzZSB3aGVyZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMgY2F1c2VzIHNlcmlvdXMgcHJvYmxlbXMuIENvbnNpZGVyCisgKiB0aGUgY29tcHV0YXRpb24gb2YgdGhlIGF2ZXJhZ2Ugb2YgdHdvIGRhdGV0aW1lcywgZm9yIGV4YW1wbGU6IGlmIG9uZSBjYWxjdWxhdGVzIHRoZW0gd2l0aAorICogPGNvZGU+YXZlcmFnZVRpbWUgPSAodGltZTEgKyB0aW1lMikvMjwvY29kZT4sIHRoZXJlIHdpbGwgYmUgb3ZlcmZsb3cgZXZlbiB3aXRoIGRhdGVzCisgKiBiZWdpbm5pbmcgaW4gMjAwNC4gTW9yZW92ZXIsIGV2ZW4gaWYgdGhlc2UgcHJvYmxlbXMgZG9uJ3Qgb2NjdXIsIHRoZXJlIGlzIHRoZSBpc3N1ZSBvZgorICogY29udmVyc2lvbiBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuIGRpZmZlcmVudCBzeXN0ZW1zLgorICoKKyAqIDxwPkJpbmFyeSBkYXRldGltZXMgZGlmZmVyIGluIGEgbnVtYmVyIG9mIHdheXM6IHRoZSBkYXRhdHlwZSwgdGhlIHVuaXQsCisgKiBhbmQgdGhlIGVwb2NoIChvcmlnaW4pLiBXZSByZWZlciB0byB0aGVzZSBhcyB0aW1lIHNjYWxlcy48L3A+CisgKgorICogPHA+SUNVIGltcGxlbWVudHMgYSB1bml2ZXJzYWwgdGltZSBzY2FsZSB0aGF0IGlzIHNpbWlsYXIgdG8gdGhlCisgKiAuTkVUIGZyYW1ld29yaydzIFN5c3RlbS5EYXRlVGltZS4gVGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlIGlzIGEKKyAqIDY0LWJpdCBpbnRlZ2VyIHRoYXQgaG9sZHMgdGlja3Mgc2luY2UgbWlkbmlnaHQsIEphbnVhcnkgMXN0LCAwMDAxLgorICogKE9uZSB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4pCisgKiBOZWdhdGl2ZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC4gVGhpcyBoYXMgZW5vdWdoIHJhbmdlIHRvIGd1YXJhbnRlZSB0aGF0CisgKiBjYWxjdWxhdGlvbnMgaW52b2x2aW5nIGRhdGVzIGFyb3VuZCB0aGUgcHJlc2VudCBhcmUgc2FmZS48L3A+CisgKgorICogPHA+VGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlIGFsd2F5cyBtZWFzdXJlcyB0aW1lIGFjY29yZGluZyB0byB0aGUKKyAqIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIuIFRoYXQgaXMsIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIncworICogbGVhcCB5ZWFyIHJ1bGVzIGFyZSB1c2VkIGZvciBhbGwgdGltZXMsIGV2ZW4gYmVmb3JlIDE1ODIgd2hlbiBpdCB3YXMKKyAqIGludHJvZHVjZWQuIChUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IElDVSBjYWxlbmRhciB3aGljaAorICogc3dpdGNoZXMgZnJvbSB0aGUgSnVsaWFuIHRvIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW4gMTU4Mi4KKyAqIFNlZSBHcmVnb3JpYW5DYWxlbmRhci5zZXRHcmVnb3JpYW5DaGFuZ2UoKSBhbmQgdWNhbF9zZXRHcmVnb3JpYW5DaGFuZ2UoKS4pPC9wPgorICoKKyAqIElDVSBwcm92aWRlcyBjb252ZXJzaW9uIGZ1bmN0aW9ucyB0byBhbmQgZnJvbSBhbGwgb3RoZXIgbWFqb3IgdGltZQorICogc2NhbGVzLCBhbGxvd2luZyBkYXRldGltZXMgaW4gYW55IHRpbWUgc2NhbGUgdG8gYmUgY29udmVydGVkIHRvIHRoZQorICogdW5pdmVyc2FsIHRpbWUgc2NhbGUsIHNhZmVseSBtYW5pcHVsYXRlZCwgYW5kIGNvbnZlcnRlZCBiYWNrIHRvIGFueSBvdGhlcgorICogZGF0ZXRpbWUgdGltZSBzY2FsZS48L3A+CisgKgorICogPHA+Rm9yIG1vcmUgZGV0YWlscyBhbmQgYmFja2dyb3VuZCwgc2VlIHRoZQorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3VuaXZlcnNhbFRpbWVTY2FsZS5odG1sIj5Vbml2ZXJzYWwgVGltZSBTY2FsZTwvYT4KKyAqIGNoYXB0ZXIgaW4gdGhlIElDVSBVc2VyIEd1aWRlLjwvcD4KKyAqCisgKiBAZHJhZnQgSUNVIDMuMgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVuaXZlcnNhbFRpbWVTY2FsZQoreworICAgIC8qKgorICAgICAqIFVzZWQgaW4gdGhlIEpESy4gRGF0YSBpcyBhIDxjb2RlPmxvbmc8L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBVkFfVElNRSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIFVuaXggc3lzdGVtcy4gRGF0YSBpcyBhbiA8Y29kZT5pbnQ8L2NvZGU+IG9yIGEgPGNvZGU+bG9uZzwvY29kZT4uIFZhbHVlCisgICAgICogaXMgc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSVhfVElNRSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSBJQ1U0Qy4gRGF0YSBpcyBhIDxjb2RlPmRvdWJsZTwvY29kZT4uIFZhbHVlCisgICAgICogaXMgbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUNVNENfVElNRSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIFdpbmRvd3MgZm9yIGZpbGUgdGltZXMuIERhdGEgaXMgYSA8Y29kZT5sb25nPC9jb2RlPi4gVmFsdWUKKyAgICAgKiBpcyB0aWNrcyAoMSB0aWNrID09IDEwMCBuYW5vc2Vjb25kcykgc2luY2UgSmFudWFyeSAxLCAxNjAxLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSU5ET1dTX0ZJTEVfVElNRSA9IDM7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSAuTkVUIGZyYW1ld29yaydzIDxjb2RlPlN5c3RlbS5EYXRlVGltZTwvY29kZT4gc3RydWN0dXJlLgorICAgICAqIERhdGEgaXMgYSA8Y29kZT5sb25nPC9jb2RlPi4gVmFsdWUgaXMgdGlja3MgKDEgdGljayA9PSAxMDAgbmFub3NlY29uZHMpIHNpbmNlIEphbnVhcnkgMSwgMDAwMS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9UTkVUX0RBVEVfVElNRSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIG9sZGVyIE1hY2ludG9zaCBzeXN0ZW1zLiBEYXRhIGlzIGFuIDxjb2RlPmludDwvY29kZT4uIFZhbHVlCisgICAgICogaXMgc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5MDQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BQ19PTERfVElNRSA9IDU7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSBKREsuIERhdGEgaXMgYSA8Y29kZT5kb3VibGU8L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDIwMDEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BQ19USU1FID0gNjsKKworICAgIC8qKgorICAgICAqIFVzZWQgaW4gRXhjZWwuIERhdGEgaXMgYSA8Y29kZT4/dW5rbm93bj88L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIGRheXMgc2luY2UgRGVjZW1iZXIgMzEsIDE4OTkuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYQ0VMX1RJTUUgPSA3OworCisgICAgLyoqCisgICAgICogVXNlZCBpbiBEQjIuIERhdGEgaXMgYSA8Y29kZT4/dW5rbm93bj88L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIGRheXMgc2luY2UgRGVjZW1iZXIgMzEsIDE4OTkuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERCMl9USU1FID0gODsKKworICAgIC8qKgorICAgICAqIERhdGEgaXMgYSA8Y29kZT5sb25nPC9jb2RlPi4gVmFsdWUgaXMgbWljcm9zZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MC4KKyAgICAgKiBTaW1pbGFyIHRvIFVuaXggdGltZSAobGluZWFyIHZhbHVlIGZyb20gMTk3MCkgYW5kIHN0cnVjdCB0aW1ldmFsCisgICAgICogKG1pY3Jvc2Vjb25kcyByZXNvbHV0aW9uKS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JWF9NSUNST1NFQ09ORFNfVElNRSA9IDk7CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgZmlyc3QgdW51c2VkIHRpbWUgc2NhbGUgdmFsdWUuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9TQ0FMRSA9IDEwOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgdW5pdHMgdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTklUU19WQUxVRSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBlcG9jaCBvZmZzZXQgdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVQT0NIX09GRlNFVF9WQUxVRSA9IDE7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBtaW5pbXVtIGZyb20gdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZST01fTUlOX1ZBTFVFID0gMjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29uc3RhbnQgdXNlZCB0byBzZWxlY3QgdGhlIG1heGltdW0gZnJvbSB2YWx1ZQorICAgICAqIGZvciBhIHRpbWUgc2NhbGUuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlJPTV9NQVhfVkFMVUUgPSAzOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgbWluaW11bSB0byB2YWx1ZQorICAgICAqIGZvciBhIHRpbWUgc2NhbGUuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVE9fTUlOX1ZBTFVFID0gNDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29uc3RhbnQgdXNlZCB0byBzZWxlY3QgdGhlIG1heGltdW0gdG8gdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRPX01BWF9WQUxVRSA9IDU7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBlcG9jaCBwbHVzIG9uZSB2YWx1ZQorICAgICAqIGZvciBhIHRpbWUgc2NhbGUuCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCB2YWx1ZS4gRE8gTk9UIFVTRSBJVC4gTWF5IG5vdAorICAgICAqIGFjdHVhbGx5IGJlIGVxdWFsIHRvIHRoZSBlcG9jaCBvZmZzZXQgdmFsdWUgcGx1cyBvbmUuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVBPQ0hfT0ZGU0VUX1BMVVNfMV9WQUxVRSA9IDY7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBlcG9jaCBvZmZzZXQgbWludXMgb25lIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBOT1RFOiBUaGlzIGlzIGFuIGludGVybmFsIHZhbHVlLiBETyBOT1QgVVNFIElULiBNYXkgbm90CisgICAgICogYWN0dWFsbHkgYmUgZXF1YWwgdG8gdGhlIGVwb2NoIG9mZnNldCB2YWx1ZSBtaW51cyBvbmUuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVQT0NIX09GRlNFVF9NSU5VU18xX1ZBTFVFID0gNzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29uc3RhbnQgdXNlZCB0byBzZWxlY3QgdGhlIHVuaXRzIHJvdW5kIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBOT1RFOiBUaGlzIGlzIGFuIGludGVybmFsIHZhbHVlLiBETyBOT1QgVVNFIElULgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTklUU19ST1VORF9WQUxVRSA9IDg7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBtaW5pbXVtIHNhZmUgcm91bmRpbmcgdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIE5PVEU6IFRoaXMgaXMgYW4gaW50ZXJuYWwgdmFsdWUuIERPIE5PVCBVU0UgSVQuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTl9ST1VORF9WQUxVRSA9IDk7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBtYXhpbXVtIHNhZmUgcm91bmRpbmcgdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIE5PVEU6IFRoaXMgaXMgYW4gaW50ZXJuYWwgdmFsdWUuIERPIE5PVCBVU0UgSVQuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9ST1VORF9WQUxVRSA9IDEwOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgdGltZSBzY2FsZSB2YWx1ZXMuCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCB2YWx1ZS4gRE8gTk9UIFVTRSBJVC4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1NDQUxFX1ZBTFVFID0gMTE7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyB0aWNrcyAgICAgICAgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWljcm9zZWNvbmRzID0gdGlja3MgKiAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbGxpc2Vjb25kcyA9IG1pY3Jvc2Vjb25kcyAqIDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZWNvbmRzICAgICAgPSBtaWxsaXNlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWludXRlcyAgICAgID0gc2Vjb25kcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgaG91cnMgICAgICAgID0gbWludXRlcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZGF5cyAgICAgICAgID0gaG91cnMgKiAyNDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGNsYXNzIGhvbGRzIHRoZSBkYXRhIHRoYXQgZGVzY3JpYmVzIGEgcGFydGljdWxhcgorICAgICAqIHRpbWUgc2NhbGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUaW1lU2NhbGVEYXRhCisgICAgeworICAgICAgICBUaW1lU2NhbGVEYXRhKGxvbmcgdGhlVW5pdHMsIGxvbmcgdGhlRXBvY2hPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGhlVG9NaW4sIGxvbmcgdGhlVG9NYXgsCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGhlRnJvbU1pbiwgbG9uZyB0aGVGcm9tTWF4KQorICAgICAgICB7CisgICAgICAgICAgICB1bml0cyAgICAgID0gdGhlVW5pdHM7CisgICAgICAgICAgICB1bml0c1JvdW5kID0gdGhlVW5pdHMgLyAyOworICAgICAgICAgICAgCisgICAgICAgICAgICBtaW5Sb3VuZCA9IExvbmcuTUlOX1ZBTFVFICsgdW5pdHNSb3VuZDsKKyAgICAgICAgICAgIG1heFJvdW5kID0gTG9uZy5NQVhfVkFMVUUgLSB1bml0c1JvdW5kOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBlcG9jaE9mZnNldCAgID0gdGhlRXBvY2hPZmZzZXQgLyB0aGVVbml0czsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHRoZVVuaXRzID09IDEpIHsKKyAgICAgICAgICAgICAgICBlcG9jaE9mZnNldFAxID0gZXBvY2hPZmZzZXRNMSA9IGVwb2NoT2Zmc2V0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcG9jaE9mZnNldFAxID0gZXBvY2hPZmZzZXQgKyAxOworICAgICAgICAgICAgICAgIGVwb2NoT2Zmc2V0TTEgPSBlcG9jaE9mZnNldCAtIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRvTWluID0gdGhlVG9NaW47CisgICAgICAgICAgICB0b01heCA9IHRoZVRvTWF4OworICAgICAgICAgICAgCisgICAgICAgICAgICBmcm9tTWluID0gdGhlRnJvbU1pbjsKKyAgICAgICAgICAgIGZyb21NYXggPSB0aGVGcm9tTWF4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb25nIHVuaXRzOworICAgICAgICBsb25nIGVwb2NoT2Zmc2V0OworICAgICAgICBsb25nIGZyb21NaW47CisgICAgICAgIGxvbmcgZnJvbU1heDsKKyAgICAgICAgbG9uZyB0b01pbjsKKyAgICAgICAgbG9uZyB0b01heDsKKyAgICAgICAgCisgICAgICAgIGxvbmcgZXBvY2hPZmZzZXRQMTsKKyAgICAgICAgbG9uZyBlcG9jaE9mZnNldE0xOworICAgICAgICBsb25nIHVuaXRzUm91bmQ7CisgICAgICAgIGxvbmcgbWluUm91bmQ7CisgICAgICAgIGxvbmcgbWF4Um91bmQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRpbWVTY2FsZURhdGFbXSB0aW1lU2NhbGVUYWJsZSA9IHsKKyAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEobWlsbGlzZWNvbmRzLCA2MjEzNTU5NjgwMDAwMDAwMDBMLCAtOTIyMzM3MjAzNjg1NDc3NDk5OUwsIDkyMjMzNzIwMzY4NTQ3NzQ5OTlMLCAtOTg0NDcyODAwNDg1NDc3TCwgICAgICAgICA4NjAyMDE2MDY4ODU0NzdMKSwgLy8gSkFWQV9USU1FCisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHNlY29uZHMsICAgICAgNjIxMzU1OTY4MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTk4NDQ3MjgwMDQ4NUwsICAgICAgICAgICAgICAgODYwMjAxNjA2ODg1TCksIC8vIFVOSVhfVElNRQorICAgICAgICBuZXcgVGltZVNjYWxlRGF0YShtaWxsaXNlY29uZHMsIDYyMTM1NTk2ODAwMDAwMDAwMEwsIC05MjIzMzcyMDM2ODU0Nzc0OTk5TCwgOTIyMzM3MjAzNjg1NDc3NDk5OUwsIC05ODQ0NzI4MDA0ODU0NzdMLCAgICAgICAgIDg2MDIwMTYwNjg4NTQ3N0wpLCAvLyBJQ1U0Q19USU1FCisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHRpY2tzLCAgICAgICAgNTA0OTExMjMyMDAwMDAwMDAwTCwgLTg3MTg0NjA4MDQ4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA4NzE4NDYwODA0ODU0Nzc1ODA3TCksIC8vIFdJTkRPV1NfRklMRV9USU1FCisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHRpY2tzLCAgICAgICAgMDAwMDAwMDAwMDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCksIC8vIERPVE5FVF9EQVRFX1RJTUUKKyAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEoc2Vjb25kcywgICAgICA2MDA1Mjc1MjAwMDAwMDAwMDBMLCAtOTIyMzM3MjAzNjg1NDc3NTgwOEwsIDkyMjMzNzIwMzY4NTQ3NzU4MDdMLCAtOTgyMzg5OTU1Njg1TCwgICAgICAgICAgICAgICA4NjIyODQ0NTE2ODVMKSwgLy8gTUFDX09MRF9USU1FCisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHNlY29uZHMsICAgICAgNjMxMTM5MDQwMDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTk4NTQ1MTEwNzY4NUwsICAgICAgICAgICAgICAgODU5MjIzMjk5Njg1TCksIC8vIE1BQ19USU1FCisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKGRheXMsICAgICAgICAgNTk5MjY1MjE2MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTExMzY4NzkzTCwgICAgICAgICAgICAgICAgICAgICAgICA5OTgxNjA1TCksIC8vIEVYQ0VMX1RJTUUKKyAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEoZGF5cywgICAgICAgICA1OTkyNjUyMTYwMDAwMDAwMDBMLCAtOTIyMzM3MjAzNjg1NDc3NTgwOEwsIDkyMjMzNzIwMzY4NTQ3NzU4MDdMLCAtMTEzNjg3OTNMLCAgICAgICAgICAgICAgICAgICAgICAgIDk5ODE2MDVMKSwgLy8gREIyX1RJTUUKKyAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEobWljcm9zZWNvbmRzLCA2MjEzNTU5NjgwMDAwMDAwMDBMLCAtOTIyMzM3MjAzNjg1NDc3NTgwNEwsIDkyMjMzNzIwMzY4NTQ3NzU4MDRMLCAtOTg0NDcyODAwNDg1NDc3NTgwTCwgICA4NjAyMDE2MDY4ODU0Nzc1ODBMKSAgLy8gVU5JWF9NSUNST1NFQ09ORFNfVElNRQorICAgIH07CisgICAgCisgICAgCisgICAgLyoKKyAgICAgKiBQcmV2ZW50IGNvbnN0cnVjdGlvbiBvZiB0aGlzIGNsYXNzLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIFVuaXZlcnNhbFRpbWVTY2FsZSgpCisgICAgeworICAgICAgICAvLyBub3RoaW5nIHRvIGRvCisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSA8Y29kZT5sb25nPC9jb2RlPiBkYXRldGltZSBmcm9tIHRoZSBnaXZlbiB0aW1lIHNjYWxlIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlclRpbWUgVGhlIDxjb2RlPmxvbmc8L2NvZGU+IGRhdGV0aW1lCisgICAgICogQHBhcmFtIHRpbWVTY2FsZSBUaGUgdGltZSBzY2FsZSB0byBjb252ZXJ0IGZyb20KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoZSBkYXRldGltZSBjb252ZXJ0ZWQgdG8gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgbG9uZyBmcm9tKGxvbmcgb3RoZXJUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZnJvbVJhbmdlQ2hlY2sob3RoZXJUaW1lLCB0aW1lU2NhbGUpOworICAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gKG90aGVyVGltZSArIGRhdGEuZXBvY2hPZmZzZXQpICogZGF0YS51bml0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgPGNvZGU+ZG91YmxlPC9jb2RlPiBkYXRldGltZSBmcm9tIHRoZSBnaXZlbiB0aW1lIHNjYWxlIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZS4KKyAgICAgKiBBbGwgY2FsY3VsYXRpb25zIGFyZSBkb25lIHVzaW5nIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGd1YXJhbnRlZSB0aGF0IHRoZSB2YWx1ZQorICAgICAqIGRvZXMgbm90IGdvIG91dCBvZiByYW5nZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlclRpbWUgVGhlIDxjb2RlPmRvdWJsZTwvY29kZT4gZGF0ZXRpbWUKKyAgICAgKiBAcGFyYW0gdGltZVNjYWxlIFRoZSB0aW1lIHNjYWxlIHRvIGNvbnZlcnQgZnJvbQorICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCaWdEZWNpbWFsIGJpZ0RlY2ltYWxGcm9tKGRvdWJsZSBvdGhlclRpbWUsIGludCB0aW1lU2NhbGUpCisgICAgeworICAgICAgICBUaW1lU2NhbGVEYXRhIGRhdGEgICAgID0gZ2V0VGltZVNjYWxlRGF0YSh0aW1lU2NhbGUpOworICAgICAgICBCaWdEZWNpbWFsIG90aGVyICAgICAgID0gbmV3IEJpZ0RlY2ltYWwoU3RyaW5nLnZhbHVlT2Yob3RoZXJUaW1lKSk7CisgICAgICAgIEJpZ0RlY2ltYWwgdW5pdHMgICAgICAgPSBuZXcgQmlnRGVjaW1hbChkYXRhLnVuaXRzKTsKKyAgICAgICAgQmlnRGVjaW1hbCBlcG9jaE9mZnNldCA9IG5ldyBCaWdEZWNpbWFsKGRhdGEuZXBvY2hPZmZzZXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG90aGVyLmFkZChlcG9jaE9mZnNldCkubXVsdGlwbHkodW5pdHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSA8Y29kZT5sb25nPC9jb2RlPiBkYXRldGltZSBmcm9tIHRoZSBnaXZlbiB0aW1lIHNjYWxlIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZS4KKyAgICAgKiBBbGwgY2FsY3VsYXRpb25zIGFyZSBkb25lIHVzaW5nIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGd1YXJhbnRlZSB0aGF0IHRoZSB2YWx1ZQorICAgICAqIGRvZXMgbm90IGdvIG91dCBvZiByYW5nZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlclRpbWUgVGhlIDxjb2RlPmxvbmc8L2NvZGU+IGRhdGV0aW1lCisgICAgICogQHBhcmFtIHRpbWVTY2FsZSBUaGUgdGltZSBzY2FsZSB0byBjb252ZXJ0IGZyb20KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoZSBkYXRldGltZSBjb252ZXJ0ZWQgdG8gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQmlnRGVjaW1hbCBiaWdEZWNpbWFsRnJvbShsb25nIG90aGVyVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSAgICAgPSBnZXRUaW1lU2NhbGVEYXRhKHRpbWVTY2FsZSk7CisgICAgICAgIEJpZ0RlY2ltYWwgb3RoZXIgICAgICAgPSBuZXcgQmlnRGVjaW1hbChvdGhlclRpbWUpOworICAgICAgICBCaWdEZWNpbWFsIHVuaXRzICAgICAgID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS51bml0cyk7CisgICAgICAgIEJpZ0RlY2ltYWwgZXBvY2hPZmZzZXQgPSBuZXcgQmlnRGVjaW1hbChkYXRhLmVwb2NoT2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBvdGhlci5hZGQoZXBvY2hPZmZzZXQpLm11bHRpcGx5KHVuaXRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZGF0ZXRpbWUgZnJvbSB0aGUgZ2l2ZW4gdGltZSBzY2FsZSB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUuCisgICAgICogQWxsIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB1c2luZyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUKKyAgICAgKiBkb2VzIG5vdCBnbyBvdXQgb2YgcmFuZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXJUaW1lIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBkYXRldGltZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCBmcm9tCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgYmlnRGVjaW1hbEZyb20oQmlnRGVjaW1hbCBvdGhlclRpbWUsIGludCB0aW1lU2NhbGUpCisgICAgeworICAgICAgICBUaW1lU2NhbGVEYXRhIGRhdGEgPSBnZXRUaW1lU2NhbGVEYXRhKHRpbWVTY2FsZSk7CisgICAgICAgIAorICAgICAgICBCaWdEZWNpbWFsIHVuaXRzID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS51bml0cyk7CisgICAgICAgIEJpZ0RlY2ltYWwgZXBvY2hPZmZzZXQgPSBuZXcgQmlnRGVjaW1hbChkYXRhLmVwb2NoT2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBvdGhlclRpbWUuYWRkKGVwb2NoT2Zmc2V0KS5tdWx0aXBseSh1bml0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGRhdGV0aW1lIGZyb20gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlIHN0b3JlZCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEKKyAgICAgKiA8Y29kZT5sb25nPC9jb2RlPiBpbiB0aGUgZ2l2ZW4gdGltZSBzY2FsZS4KKyAgICAgKgorICAgICAqIFNpbmNlIHRoaXMgY2FsY3VsYXRpb24gcmVxdWlyZXMgYSBkaXZpZGUsIHdlIG11c3Qgcm91bmQuIFRoZSBzdHJhaWdodCBmb3J3YXJkCisgICAgICogd2F5IHRvIHJvdW5kIGJ5IGFkZGluZyBoYWxmIG9mIHRoZSBkaXZpc29yIHdpbGwgcHVzaCB0aGUgc3VtIG91dCBvZiByYW5nZSBmb3IgdmFsdWVzCisgICAgICogd2l0aGluIGhhdmUgdGhlIGRpdmlzb3Igb2YgdGhlIGxpbWl0cyBvZiB0aGUgcHJlY2lzaW9uIG9mIGEgPGNvZGU+bG9uZzwvY29kZT4uIFRvIGdldCBhcm91bmQgdGhpcywgd2UgZG8KKyAgICAgKiB0aGUgcm91bmRpbmcgbGlrZSB0aGlzOgorICAgICAqIAorICAgICAqIDxwPjxjb2RlPgorICAgICAqICh1bml2ZXJzYWxUaW1lIC0gdW5pdHMgKyB1bml0cy8yKSAvIHVuaXRzICsgMQorICAgICAqIDwvY29kZT4KKyAgICAgKiAKKyAgICAgKiA8cD4KKyAgICAgKiAoaS5lLiB3ZSBzdWJ0cmFjdCB1bml0cyBmaXJzdCB0byBndWFyYW50ZWUgdGhhdCB3ZSdsbCBzdGlsbCBiZSBpbiByYW5nZSB3aGVuIHdlCisgICAgICogYWRkIDxjb2RlPnVuaXRzLzI8L2NvZGU+LiBXZSB0aGVuIG5lZWQgdG8gYWRkIG9uZSB0byB0aGUgcXVvdGVudCB0byBtYWtlIHVwIGZvciB0aGUgZXh0cmEgc3VidHJhY3Rpb24uCisgICAgICogVGhpcyBzaW1wbGlmaWVzIHRvOgorICAgICAqIAorICAgICAqIDxwPjxjb2RlPgorICAgICAqICh1bml2ZXJzYWxUaW1lIC0gdW5pdHMvMikgLyB1bml0cyAtIDEKKyAgICAgKiA8L2NvZGU+CisgICAgICogCisgICAgICogPHA+CisgICAgICogRm9yIG5lZ2F0aXZlIHZhbHVlcyB0byByb3VuZCBhd2F5IGZyb20gemVybywgd2UgbmVlZCB0byBmbGlwIHRoZSBzaWduczoKKyAgICAgKiAKKyAgICAgKiA8cD48Y29kZT4KKyAgICAgKiAodW5pdmVyc2FsVGltZSArIHVuaXRzLzIpIC8gdW5pdHMgKyAxCisgICAgICogPC9jb2RlPgorICAgICAqIAorICAgICAqIDxwPgorICAgICAqIFNpbmNlIHdlIGFsc28gbmVlZCB0byBzdWJ0cmFjdCB0aGUgZXBvY2hPZmZzZXQsIHdlIGZvbGQgdGhlIDxjb2RlPisvLSAxPC9jb2RlPgorICAgICAqIGludG8gdGhlIG9mZnNldCB2YWx1ZS4gKGkuZS4gPGNvZGU+ZXBvY2hPZmZzZXRQMTwvY29kZT4sIDxjb2RlPmVwb2NoT2Zmc2V0TTE8L2NvZGU+LikKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdW5pdmVyc2FsVGltZSBUaGUgZGF0ZXRpbWUgaW4gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlCisgICAgICogQHBhcmFtIHRpbWVTY2FsZSBUaGUgdGltZSBzY2FsZSB0byBjb252ZXJ0IHRvCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSBnaXZlbiB0aW1lIHNjYWxlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgbG9uZyB0b0xvbmcobG9uZyB1bml2ZXJzYWxUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gdG9SYW5nZUNoZWNrKHVuaXZlcnNhbFRpbWUsIHRpbWVTY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsVGltZSA8IDApIHsKKyAgICAgICAgICAgIGlmICh1bml2ZXJzYWxUaW1lIDwgZGF0YS5taW5Sb3VuZCkgeworICAgICAgICAgICAgICAgIHJldHVybiAodW5pdmVyc2FsVGltZSArIGRhdGEudW5pdHNSb3VuZCkgLyBkYXRhLnVuaXRzIC0gZGF0YS5lcG9jaE9mZnNldFAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gKHVuaXZlcnNhbFRpbWUgLSBkYXRhLnVuaXRzUm91bmQpIC8gZGF0YS51bml0cyAtIGRhdGEuZXBvY2hPZmZzZXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh1bml2ZXJzYWxUaW1lID4gZGF0YS5tYXhSb3VuZCkgeworICAgICAgICAgICAgcmV0dXJuICh1bml2ZXJzYWxUaW1lIC0gZGF0YS51bml0c1JvdW5kKSAvIGRhdGEudW5pdHMgLSBkYXRhLmVwb2NoT2Zmc2V0TTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAodW5pdmVyc2FsVGltZSArIGRhdGEudW5pdHNSb3VuZCkgLyBkYXRhLnVuaXRzIC0gZGF0YS5lcG9jaE9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGRhdGV0aW1lIGZyb20gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlIHRvIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaW4gdGhlIGdpdmVuIHRpbWUgc2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdW5pdmVyc2FsVGltZSBUaGUgZGF0ZXRpbWUgaW4gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlCisgICAgICogQHBhcmFtIHRpbWVTY2FsZSBUaGUgdGltZSBzY2FsZSB0byBjb252ZXJ0IHRvCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSBnaXZlbiB0aW1lIHNjYWxlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQmlnRGVjaW1hbCB0b0JpZ0RlY2ltYWwobG9uZyB1bml2ZXJzYWxUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhICAgICA9IGdldFRpbWVTY2FsZURhdGEodGltZVNjYWxlKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml2ZXJzYWwgICA9IG5ldyBCaWdEZWNpbWFsKHVuaXZlcnNhbFRpbWUpOworICAgICAgICBCaWdEZWNpbWFsIHVuaXRzICAgICAgID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS51bml0cyk7CisgICAgICAgIEJpZ0RlY2ltYWwgZXBvY2hPZmZzZXQgPSBuZXcgQmlnRGVjaW1hbChkYXRhLmVwb2NoT2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB1bml2ZXJzYWwuZGl2aWRlKHVuaXRzLCBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfVVApLnN1YnRyYWN0KGVwb2NoT2Zmc2V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGRhdGV0aW1lIGZyb20gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlIHRvIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaW4gdGhlIGdpdmVuIHRpbWUgc2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdW5pdmVyc2FsVGltZSBUaGUgZGF0ZXRpbWUgaW4gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlCisgICAgICogQHBhcmFtIHRpbWVTY2FsZSBUaGUgdGltZSBzY2FsZSB0byBjb252ZXJ0IHRvCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSBnaXZlbiB0aW1lIHNjYWxlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQmlnRGVjaW1hbCB0b0JpZ0RlY2ltYWwoQmlnRGVjaW1hbCB1bml2ZXJzYWxUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhICAgICA9IGdldFRpbWVTY2FsZURhdGEodGltZVNjYWxlKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyAgICAgICA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdW5pdmVyc2FsVGltZS5kaXZpZGUodW5pdHMsIEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUCkuc3VidHJhY3QoZXBvY2hPZmZzZXQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIDxjb2RlPlRpbWVTY2FsZURhdGE8L2NvZGU+IG9iamVjdCBmb3IgdGhlIGdpdmVuIHRpbWUKKyAgICAgKiBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc2NhbGUgLSB0aGUgdGltZSBzY2FsZQorICAgICAqIAorICAgICAqIEByZXR1cm4gdGhlIDxjb2RlPlRpbWVTY2FsZURhdGE8L2NvZGU+IG9iamVjdCBmb3IgdGhlIGdpdmVuIHRpbWUgc2NhbGUKKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lU2NhbGVEYXRhIGdldFRpbWVTY2FsZURhdGEoaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgaWYgKHNjYWxlIDwgMCB8fCBzY2FsZSA+PSBNQVhfU0NBTEUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInNjYWxlIG91dCBvZiByYW5nZTogIiArIHNjYWxlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRpbWVTY2FsZVRhYmxlW3NjYWxlXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgcGFydGljdWxhciB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzY2FsZSAtIHRoZSB0aW1lIHNjYWxlCisgICAgICogQHBhcmFtIHZhbHVlIC0gYSBjb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHZhbHVlIHRvIGdldAorICAgICAqIAorICAgICAqIEByZXR1cm4gLSB0aGUgdmFsdWUuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGxvbmcgZ2V0VGltZVNjYWxlVmFsdWUoaW50IHNjYWxlLCBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBUaW1lU2NhbGVEYXRhIGRhdGEgPSBnZXRUaW1lU2NhbGVEYXRhKHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAodmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBVTklUU19WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLnVuaXRzOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRVBPQ0hfT0ZGU0VUX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEuZXBvY2hPZmZzZXQ7CisgICAgICAgIAorICAgICAgICBjYXNlIEZST01fTUlOX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEuZnJvbU1pbjsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEZST01fTUFYX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEuZnJvbU1heDsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFRPX01JTl9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLnRvTWluOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVE9fTUFYX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEudG9NYXg7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFUE9DSF9PRkZTRVRfUExVU18xX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEuZXBvY2hPZmZzZXRQMTsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEVQT0NIX09GRlNFVF9NSU5VU18xX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEuZXBvY2hPZmZzZXRNMTsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOSVRTX1JPVU5EX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEudW5pdHNSb3VuZDsKKyAgICAgICAgCisgICAgICAgIGNhc2UgTUlOX1JPVU5EX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEubWluUm91bmQ7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBNQVhfUk9VTkRfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gZGF0YS5tYXhSb3VuZDsKKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidmFsdWUgb3V0IG9mIHJhbmdlOiAiICsgdmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFRpbWVTY2FsZURhdGEgdG9SYW5nZUNoZWNrKGxvbmcgdW5pdmVyc2FsVGltZSwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YShzY2FsZSk7CisgICAgICAgICAgCisgICAgICAgIGlmICh1bml2ZXJzYWxUaW1lID49IGRhdGEudG9NaW4gJiYgdW5pdmVyc2FsVGltZSA8PSBkYXRhLnRvTWF4KSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidW5pdmVyc2FsVGltZSBvdXQgb2YgcmFuZ2U6IiArIHVuaXZlcnNhbFRpbWUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lU2NhbGVEYXRhIGZyb21SYW5nZUNoZWNrKGxvbmcgb3RoZXJUaW1lLCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBUaW1lU2NhbGVEYXRhIGRhdGEgPSBnZXRUaW1lU2NhbGVEYXRhKHNjYWxlKTsKKyAgICAgICAgICAKKyAgICAgICAgaWYgKG90aGVyVGltZSA+PSBkYXRhLmZyb21NaW4gJiYgb3RoZXJUaW1lIDw9IGRhdGEuZnJvbU1heCkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm90aGVyVGltZSBvdXQgb2YgcmFuZ2U6IiArIG90aGVyVGltZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSB0aW1lIGluIHRoZSBVbml2ZXJzYWwgVGltZSBTY2FsZSBpbnRvIGFub3RoZXIgdGltZQorICAgICAqIHNjYWxlLiBUaGUgZGl2aXNpb24gdXNlZCB0byBkbyB0aGUgY29udmVyc2lvbiByb3VuZHMgZG93bi4KKyAgICAgKiAKKyAgICAgKiBOT1RFOiBUaGlzIGlzIGFuIGludGVybmFsIHJvdXRpbmUgdXNlZCBieSB0aGUgdG9vbCB0aGF0CisgICAgICogZ2VuZXJhdGVzIHRoZSB0byBhbmQgZnJvbSBsaW1pdHMuIFVzZSBpdCBhdCB5b3VyIG93biByaXNrLgorICAgICAqIAorICAgICAqIEBwYXJhbSB1bml2ZXJzYWxUaW1lIHRoZSB0aW1lIGluIHRoZSBVbml2ZXJzYWwgVGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgdGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCB0bworICAgICAqIEByZXR1cm4gdGhlIHRpbWUgaW4gdGhlIGdpdmVuIHRpbWUgc2NhbGUKKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsVHJ1bmMoQmlnRGVjaW1hbCB1bml2ZXJzYWxUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YSh0aW1lU2NhbGUpOworICAgICAgICBCaWdEZWNpbWFsIHVuaXRzID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS51bml0cyk7CisgICAgICAgIEJpZ0RlY2ltYWwgZXBvY2hPZmZzZXQgPSBuZXcgQmlnRGVjaW1hbChkYXRhLmVwb2NoT2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB1bml2ZXJzYWxUaW1lLmRpdmlkZSh1bml0cywgQmlnRGVjaW1hbC5ST1VORF9ET1dOKS5zdWJ0cmFjdChlcG9jaE9mZnNldCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmFsdWVJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmFsdWVJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhM2M3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9WYWx1ZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMDkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworLyoqCisgKiA8cD5JbnRlcmZhY2UgZm9yIGVuYWJsaW5nIGl0ZXJhdGlvbiBvdmVyIHNldHMgb2YgPGludCwgT2JqZWN0Piwgd2hlcmUKKyAqIGludCBpcyB0aGUgc29ydGVkIGludGVnZXIgaW5kZXggaW4gYXNjZW5kaW5nIG9yZGVyIGFuZCBPYmplY3QsIGl0cyAKKyAqIGFzc29jaWF0ZWQgdmFsdWUuPC9wPgorICogPHA+VGhlIFZhbHVlSXRlcmF0b3IgYWxsb3dzIGl0ZXJhdGlvbnMgb3ZlciBpbnRlZ2VyIGluZGV4ZXMgaW4gdGhlIHJhbmdlIAorICogb2YgSW50ZWdlci5NSU5fVkFMVUUgdG8gSW50ZWdlci5NQVhfVkFMVUUgaW5jbHVzaXZlLiBJbXBsZW1lbnRhdGlvbnMgb2YgCisgKiBWYWx1ZUl0ZXJhdG9yIHNob3VsZCBzcGVjaWZ5IHRoZWlyIG93biBtYXhpbXVtIHN1YnJhbmdlIHdpdGhpbiB0aGUgYWJvdmUgCisgKiByYW5nZSB0aGF0IGlzIG1lYW5pbmdmdWwgdG8gaXRzIGFwcGxpY2F0aW9ucy48L3A+CisgKiA8cD5Nb3N0IGltcGxlbWVudGF0aW9ucyB3aWxsIGJlIGNyZWF0ZWQgYnkgZmFjdG9yeSBtZXRob2RzLCBzdWNoIGFzIHRoZQorICogY2hhcmFjdGVyIG5hbWUgaXRlcmF0b3IgaW4gVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IuIFNlZSBleGFtcGxlIGJlbG93LgorICogPC9wPgorICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICogPHByZT4KKyAqIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldE5hbWVJdGVyYXRvcigpOworICogVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAqIGl0ZXJhdG9yLnNldFJhbmdlKFVDaGFyYWN0ZXIuTUlOX1ZBTFVFLCBVQ2hhcmFjdGVyLk1BWF9WQUxVRSk7CisgKiB3aGlsZSAoaXRlcmF0b3IubmV4dChyZXN1bHQpKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5pbnRlZ2VyKSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgY2hhcmFjdGVyIG5hbWUgIiArIChTdHJpbmcpcmVzdWx0LnZhbHVlKTsKKyAqIH0KKyAqIDwvcHJlPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzdGFibGUgSUNVIDIuNgorICovCitwdWJsaWMgaW50ZXJmYWNlIFZhbHVlSXRlcmF0b3IKK3sKKyAgICAvLyBwdWJsaWMgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5UaGUgcmV0dXJuIHJlc3VsdCBjb250YWluZXIgb2YgZWFjaCBpdGVyYXRpb24uIFN0b3JlcyB0aGUgbmV4dCAKKyAgICAqIGludGVnZXIgaW5kZXggYW5kIGl0cyBhc3NvY2lhdGVkIHZhbHVlIE9iamVjdC48L3A+IAorICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEVsZW1lbnQKKyAgICB7CisgICAgICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICogSW50ZWdlciBpbmRleCBvZiB0aGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBpbnRlZ2VyOworICAgICAgICAvKioKKyAgICAgICAgKiBHZXRzIHRoZSBPYmplY3QgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnRlZ2VyIGluZGV4LgorICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAqLyAKKyAgICAgICAgcHVibGljIE9iamVjdCB2YWx1ZTsKKyAgICAgICAgCisgICAgICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbXB0eSBkZWZhdWx0IGNvbnN0cnVjdG9yIHRvIG1ha2UgamF2YWRvYyBoYXBweQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBFbGVtZW50KCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPkdldHMgdGhlIG5leHQgcmVzdWx0IGZvciB0aGlzIGl0ZXJhdGlvbiBhbmQgcmV0dXJucyAKKyAgICAqIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS48L3A+CisgICAgKiA8cD5JZiB0aGUgcmV0dXJuIGJvb2xlYW4gaXMgYSBmYWxzZSwgdGhlIGNvbnRlbnRzIG9mIGVsZW1lbnRzIHdpbGwgbm90CisgICAgKiBiZSB1cGRhdGVkLjwvcD4KKyAgICAqIEBwYXJhbSBlbGVtZW50IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgaW5kZXggYW5kIHZhbHVlCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqIEBzZWUgRWxlbWVudAorICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBuZXh0KEVsZW1lbnQgZWxlbWVudCk7CisgICAgCisgICAgLyoqCisgICAgKiA8cD5SZXNldHMgdGhlIGl0ZXJhdG9yIHRvIHN0YXJ0IGl0ZXJhdGluZyBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4IAorICAgICogSW50ZWdlci5NSU5fVkFMVUUgb3IgWCBpZiBhIHNldFJhbmdlKFgsIFkpIGhhcyBiZWVuIGNhbGxlZCBwcmV2aW91c2x5LgorICAgICogPC9wPgorICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpOworICAgIAorICAgIC8qKgorICAgICAqIDxwPlJlc3RyaWN0cyB0aGUgcmFuZ2Ugb2YgaW50ZWdlcnMgdG8gaXRlcmF0ZSBhbmQgcmVzZXRzIHRoZSBpdGVyYXRpb24gCisgICAgICogdG8gYmVnaW4gYXQgdGhlIGluZGV4IGFyZ3VtZW50IHN0YXJ0LjwvcD4KKyAgICAgKiA8cD5JZiBzZXRSYW5nZShzdGFydCwgZW5kKSBpcyBub3QgcGVyZm9ybWVkIGJlZm9yZSBuZXh0KGVsZW1lbnQpIGlzIAorICAgICAqIGNhbGxlZCwgdGhlIGl0ZXJhdGlvbiB3aWxsIHN0YXJ0IGZyb20gdGhlIGludGVnZXIgaW5kZXggCisgICAgICogSW50ZWdlci5NSU5fVkFMVUUgYW5kIGVuZCBhdCBJbnRlZ2VyLk1BWF9WQUxVRS48L3A+CisgICAgICogPHA+CisgICAgICogSWYgdGhpcyByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIAorICAgICAqIGltcGxlbWVudGF0aW9uLCBuZXh0KGVsZW1lbnQpIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGludGVnZXIgaW4gdGhlIHJhbmdlIHRvIGl0ZXJhdGUKKyAgICAgKiBAcGFyYW0gbGltaXQgb25lIG1vcmUgdGhhbiB0aGUgbGFzdCBpbnRlZ2VyIGluIHRoZSByYW5nZSAKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhdHRlbXB0aW5nIHRvIHNldCBhbiAKKyAgICAgKiAgICAgICAgICAgIGlsbGVnYWwgcmFuZ2UuIEUuZyBsaW1pdCA8PSBzdGFydAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJhbmdlKGludCBzdGFydCwgaW50IGxpbWl0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZlcnNpb25JbmZvLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZWI5NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhCkBAIC0wLDAgKzEsNDc5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworLyoqCisgKiBDbGFzcyB0byBzdG9yZSB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIGZvcm0gbWFqb3IubWlub3IubWlsbGkubWljcm8uCisgKiBAYXV0aG9yIHN5bndlZQorICogQHN0YWJsZSBJQ1UgMi42CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBWZXJzaW9uSW5mbworeworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVW5pY29kZSAxLjAgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8xXzA7CisgICAgLyoqCisgICAgICogVW5pY29kZSAxLjAuMSB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzFfMF8xOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMS4xLjAgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8xXzFfMDsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDEuMS41IHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMV8xXzU7CisgICAgLyoqCisgICAgICogVW5pY29kZSAyLjAgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8yXzA7CisgICAgLyoqCisgICAgICogVW5pY29kZSAyLjEuMiB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzJfMV8yOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4xLjUgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8yXzFfNTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDIuMS44IHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMl8xXzg7CisgICAgLyoqCisgICAgICogVW5pY29kZSAyLjEuOSB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzJfMV85OworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMy4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfM18wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMy4wLjEgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8zXzBfMTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMS4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfM18xXzA7CisgICAgLyoqCisgICAgICogVW5pY29kZSAzLjEuMSB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMV8xOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMy4yIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfM18yOworCisgICAgLyoqCisgICAgICogVW5pY29kZSA0LjAgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV80XzA7CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDQuMC4xIHZlcnNpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV80XzBfMTsKKworICAgIC8qKgorICAgICAqIFVuaWNvZGUgNC4xIHZlcnNpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV80XzE7CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDUuMCB2ZXJzaW9uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNV8wOworCisgICAgLyoqCisgICAgICogSUNVNEogY3VycmVudCByZWxlYXNlIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIElDVV9WRVJTSU9OOworCisgICAgLyoqCisgICAgICogRGF0YSB2ZXJzaW9uIHN0cmluZyBmb3IgSUNVJ3MgaW50ZXJuYWwgZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9EQVRBX1ZFUlNJT04gPSAiMzZiIjsKKworICAgIC8qKgorICAgICAqIElDVTRKIGNvbGxhdG9yIHJ1bnRpbWUgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVUNPTF9SVU5USU1FX1ZFUlNJT047CisKKyAgICAvKioKKyAgICAgKiBJQ1U0SiBjb2xsYXRvciBidWlsZGVyIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVDT0xfQlVJTERFUl9WRVJTSU9OOworCisgICAgLyoqCisgICAgICogSUNVNEogY29sbGF0b3IgdGFpbG9yaW5ncyB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVQ09MX1RBSUxPUklOR1NfVkVSU0lPTjsKKworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogQHBhcmFtIHZlcnNpb24gdmVyc2lvbiBTdHJpbmcgaW4gdGhlIGZvcm1hdCBvZiAibWFqb3IubWlub3IubWlsbGkubWljcm8iCisgICAgICogICAgICAgICAgICAgICAgb3IgIm1ham9yLm1pbm9yLm1pbGxpIiBvciAibWFqb3IubWlub3IiIG9yICJtYWpvciIsCisgICAgICogICAgICAgICAgICAgICAgd2hlcmUgbWFqb3IsIG1pbm9yLCBtaWxsaSwgbWljcm8gYXJlIG5vbi1uZWdhdGl2ZSBudW1iZXJzCisgICAgICogICAgICAgICAgICAgICAgPD0gMjU1LiBJZiB0aGUgdHJhaWxpbmcgdmVyc2lvbiBudW1iZXJzIGFyZQorICAgICAqICAgICAgICAgICAgICAgIG5vdCBzcGVjaWZpZWQgdGhleSBhcmUgdGFrZW4gYXMgMHMuIEUuZy4gVmVyc2lvbiAiMy4xIiBpcworICAgICAqICAgICAgICAgICAgICAgIGVxdWl2YWxlbnQgdG8gIjMuMS4wLjAiLgorICAgICAqIEByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiB0aGUgYXJndW1lbnQgdmVyc2lvbgorICAgICAqICAgICAgICAgICAgICAgIGlzIG5vdCBpbiB0aGUgcmlnaHQgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRJbnN0YW5jZShTdHJpbmcgdmVyc2lvbikKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggID0gdmVyc2lvbi5sZW5ndGgoKTsKKyAgICAgICAgaW50IGFycmF5W10gPSB7MCwgMCwgMCwgMH07CisgICAgICAgIGludCBjb3VudCAgID0gMDsKKyAgICAgICAgaW50IGluZGV4ICAgPSAwOworCisgICAgICAgIHdoaWxlIChjb3VudCA8IDQgJiYgaW5kZXggPCBsZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHZlcnNpb24uY2hhckF0KGluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09ICcuJykgeworICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYyAtPSAnMCc7CisgICAgICAgICAgICAgICAgaWYgKGMgPCAwIHx8IGMgPiA5KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSU5WQUxJRF9WRVJTSU9OX05VTUJFUl8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcnJheVtjb3VudF0gKj0gMTA7CisgICAgICAgICAgICAgICAgYXJyYXlbY291bnRdICs9IGM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggIT0gbGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCB2ZXJzaW9uIG51bWJlcjogU3RyaW5nICciICsgdmVyc2lvbiArICInIGV4Y2VlZHMgdmVyc2lvbiBmb3JtYXQiKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChhcnJheVtpXSA8IDAgfHwgYXJyYXlbaV0gPiAyNTUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKElOVkFMSURfVkVSU0lPTl9OVU1CRVJfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShhcnJheVswXSwgYXJyYXlbMV0sIGFycmF5WzJdLCBhcnJheVszXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBWZXJzaW9uSW5mbyB3aXRoIHRoZSBhcmd1bWVudCB2ZXJzaW9uLgorICAgICAqIEBwYXJhbSBtYWpvciBtYWpvciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWlub3IgbWlub3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pbGxpIG1pbGxpIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaWNybyBtaWNybyB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiBlaXRoZXIgYXJndW1lbnRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlIG9yID4gMjU1CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRJbnN0YW5jZShpbnQgbWFqb3IsIGludCBtaW5vciwgaW50IG1pbGxpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pY3JvKQorICAgIHsKKyAgICAgICAgLy8gY2hlY2tzIGlmIGl0IGlzIGluIHRoZSBoYXNobWFwCisgICAgICAgIC8vIGVsc2UKKyAgICAgICAgaWYgKG1ham9yIDwgMCB8fCBtYWpvciA+IDI1NSB8fCBtaW5vciA8IDAgfHwgbWlub3IgPiAyNTUgfHwKKyAgICAgICAgICAgIG1pbGxpIDwgMCB8fCBtaWxsaSA+IDI1NSB8fCBtaWNybyA8IDAgfHwgbWljcm8gPiAyNTUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSU5WQUxJRF9WRVJTSU9OX05VTUJFUl8pOworICAgICAgICB9CisgICAgICAgIGludCAgICAgdmVyc2lvbiA9IGdldEludChtYWpvciwgbWlub3IsIG1pbGxpLCBtaWNybyk7CisgICAgICAgIEludGVnZXIga2V5ICAgICA9IG5ldyBJbnRlZ2VyKHZlcnNpb24pOworICAgICAgICBPYmplY3QgIHJlc3VsdCAgPSBNQVBfLmdldChrZXkpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBWZXJzaW9uSW5mbyh2ZXJzaW9uKTsKKyAgICAgICAgICAgIE1BUF8ucHV0KGtleSwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFZlcnNpb25JbmZvKXJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogRXF1aXZhbGVudCB0byBnZXRJbnN0YW5jZShtYWpvciwgbWlub3IsIG1pbGxpLCAwKS4KKyAgICAgKiBAcGFyYW0gbWFqb3IgbWFqb3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pbm9yIG1pbm9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaWxsaSBtaWxsaSB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiBlaXRoZXIgYXJndW1lbnRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlIG9yID4gMjU1CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRJbnN0YW5jZShpbnQgbWFqb3IsIGludCBtaW5vciwgaW50IG1pbGxpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKG1ham9yLCBtaW5vciwgbWlsbGksIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGdldEluc3RhbmNlKG1ham9yLCBtaW5vciwgMCwgMCkuCisgICAgICogQHBhcmFtIG1ham9yIG1ham9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaW5vciBtaW5vciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiBlaXRoZXIgYXJndW1lbnRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlIG9yID4gMjU1CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRJbnN0YW5jZShpbnQgbWFqb3IsIGludCBtaW5vcikKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShtYWpvciwgbWlub3IsIDAsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGdldEluc3RhbmNlKG1ham9yLCAwLCAwLCAwKS4KKyAgICAgKiBAcGFyYW0gbWFqb3IgbWFqb3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gZWl0aGVyIGFyZ3VtZW50cyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZSBvciA+IDI1NQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IG1ham9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKG1ham9yLCAwLCAwLCAwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZXJzaW9uSW5mbyBqYXZhVmVyc2lvbjsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gamF2YVZlcnNpb24oKSB7CisgICAgICAgIGlmIChqYXZhVmVyc2lvbiA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgiamF2YS52ZXJzaW9uIik7CisgICAgICAgICAgICAvLyBjbGVhbiBzdHJpbmcKKyAgICAgICAgICAgIC8vIHByZXNlcnZlIG9ubHkgZGlnaXRzLCBzZXBhcmF0ZWQgYnkgc2luZ2xlICcuJworICAgICAgICAgICAgLy8gaWdub3JlIG92ZXIgNCBkaWdpdCBzZXF1ZW5jZXMKKyAgICAgICAgICAgIC8vIGRvZXMgbm90IHRlc3QgPCAyNTUsIHZlcnkgb2RkLi4uCisKKyAgICAgICAgICAgIGNoYXJbXSBjaGFycyA9IHMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIGludCByID0gMCwgdyA9IDAsIGNvdW50ID0gMDsKKyAgICAgICAgICAgIGJvb2xlYW4gbnVtZXJpYyA9IGZhbHNlOyAvLyBpZ25vcmUgbGVhZGluZyBub24tbnVtZXJpY3MKKyAgICAgICAgICAgIHdoaWxlIChyIDwgY2hhcnMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gY2hhcnNbcisrXTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChudW1lcmljKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgZm91ciBkaWdpdCBzdHJpbmdzIGFsbG93ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWVyaWMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzW3crK10gPSAnLic7CisgICAgICAgICAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtZXJpYyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGNoYXJzW3crK10gPSBjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlICh3ID4gMCAmJiBjaGFyc1t3LTFdID09ICcuJykgeworICAgICAgICAgICAgICAgIC0tdzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHZzID0gbmV3IFN0cmluZyhjaGFycywgMCwgdyk7CisKKyAgICAgICAgICAgIGphdmFWZXJzaW9uID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UodnMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBqYXZhVmVyc2lvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBTdHJpbmcgcmVwcmVzZW50YXRpdmUgb2YgVmVyc2lvbkluZm8gaW4gdGhlIGZvcm1hdCBvZgorICAgICAqICJtYWpvci5taW5vci5taWxsaS5taWNybyIKKyAgICAgKiBAcmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGl2ZSBvZiBWZXJzaW9uSW5mbworICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoNyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0TWFqb3IoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJy4nKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRNaW5vcigpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnLicpOworICAgICAgICByZXN1bHQuYXBwZW5kKGdldE1pbGxpKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcuJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0TWljcm8oKSk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlcgorICAgICAqIEByZXR1cm4gdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYWpvcigpCisgICAgeworICAgICAgICByZXR1cm4gKG1fdmVyc2lvbl8gPj4gMjQpICYgTEFTVF9CWVRFX01BU0tfIDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlcgorICAgICAqIEByZXR1cm4gdGhlIG1pbm9yIHZlcnNpb24gbnVtYmVyCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5vcigpCisgICAgeworICAgICAgICByZXR1cm4gKG1fdmVyc2lvbl8gPj4gMTYpICYgTEFTVF9CWVRFX01BU0tfIDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaWxsaSB2ZXJzaW9uIG51bWJlcgorICAgICAqIEByZXR1cm4gdGhlIG1pbGxpIHZlcnNpb24gbnVtYmVyCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaWxsaSgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fdmVyc2lvbl8gPj4gOCkgJiBMQVNUX0JZVEVfTUFTS18gOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pY3JvIHZlcnNpb24gbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbWljcm8gdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pY3JvKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ZlcnNpb25fICYgTEFTVF9CWVRFX01BU0tfIDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhpcyB2ZXJzaW9uIGluZm9ybWF0aW9uIGlzIGVxdWFscyB0byB0aGUgYXJndW1lbnQgdmVyc2lvbgorICAgICAqIEBwYXJhbSBvdGhlciBvYmplY3QgdG8gYmUgY29tcGFyZWQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgb3RoZXIgaXMgZXF1YWxzIHRvIHRoaXMgb2JqZWN0J3MgdmVyc2lvbiBpbmZvcm1hdGlvbiwKKyAgICAgKiAgICAgICAgIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gb3RoZXIgPT0gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyBvdGhlciB3aXRoIHRoaXMgVmVyc2lvbkluZm8uCisgICAgICogQHBhcmFtIG90aGVyIFZlcnNpb25JbmZvIHRvIGJlIGNvbXBhcmVkCisgICAgICogQHJldHVybiAwIGlmIHRoZSBhcmd1bWVudCBpcyBhIFZlcnNpb25JbmZvIG9iamVjdCB0aGF0IGhhcyB2ZXJzaW9uCisgICAgICogICAgICAgICAgIGluZm9ybWF0aW9uIGVxdWFscyB0byB0aGlzIG9iamVjdC4KKyAgICAgKiAgICAgICAgICAgTGVzcyB0aGFuIDAgaWYgdGhlIGFyZ3VtZW50IGlzIGEgVmVyc2lvbkluZm8gb2JqZWN0IHRoYXQgaGFzCisgICAgICogICAgICAgICAgIHZlcnNpb24gaW5mb3JtYXRpb24gZ3JlYXRlciB0aGFuIHRoaXMgb2JqZWN0LgorICAgICAqICAgICAgICAgICBHcmVhdGVyIHRoYW4gMCBpZiB0aGUgYXJndW1lbnQgaXMgYSBWZXJzaW9uSW5mbyBvYmplY3QgdGhhdAorICAgICAqICAgICAgICAgICBoYXMgdmVyc2lvbiBpbmZvcm1hdGlvbiBsZXNzIHRoYW4gdGhpcyBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oVmVyc2lvbkluZm8gb3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gbV92ZXJzaW9uXyAtIG90aGVyLm1fdmVyc2lvbl87CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVmVyc2lvbiBudW1iZXIgc3RvcmVkIGFzIGEgYnl0ZSBmb3IgZWFjaCBvZiB0aGUgbWFqb3IsIG1pbm9yLCBtaWxsaSBhbmQKKyAgICAgKiBtaWNybyBudW1iZXJzIGluIHRoZSAzMiBiaXQgaW50LgorICAgICAqIE1vc3Qgc2lnbmlmaWNhbnQgZm9yIHRoZSBtYWpvciBhbmQgdGhlIGxlYXN0IHNpZ25pZmljYW50IGNvbnRhaW5zIHRoZQorICAgICAqIG1pY3JvIG51bWJlcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV92ZXJzaW9uXzsKKyAgICAvKioKKyAgICAgKiBNYXAgb2Ygc2luZ2xldG9ucworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2hNYXAgTUFQXyA9IG5ldyBIYXNoTWFwKCk7CisgICAgLyoqCisgICAgICogTGFzdCBieXRlIG1hc2sKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9CWVRFX01BU0tfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBFcnJvciBzdGF0ZW1lbnQgc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOVkFMSURfVkVSU0lPTl9OVU1CRVJfID0KKyAgICAgICAgIkludmFsaWQgdmVyc2lvbiBudW1iZXI6IFZlcnNpb24gbnVtYmVyIG1heSBiZSBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4gMjU1IjsKKworICAgIC8vIHN0YXRpYyBkZWNsYXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdmVyc2lvbnMgb25seSBhZnRlciBNQVBfIGhhcyBiZWVuIGNyZWF0ZWQKKyAgICAgKi8KKyAgICBzdGF0aWMgeworICAgICAgICBVTklDT0RFXzFfMCAgID0gZ2V0SW5zdGFuY2UoMSwgMCwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfMV8wXzEgPSBnZXRJbnN0YW5jZSgxLCAwLCAxLCAwKTsKKyAgICAgICAgVU5JQ09ERV8xXzFfMCA9IGdldEluc3RhbmNlKDEsIDEsIDAsIDApOworICAgICAgICBVTklDT0RFXzFfMV81ID0gZ2V0SW5zdGFuY2UoMSwgMSwgNSwgMCk7CisgICAgICAgIFVOSUNPREVfMl8wICAgPSBnZXRJbnN0YW5jZSgyLCAwLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV8yXzFfMiA9IGdldEluc3RhbmNlKDIsIDEsIDIsIDApOworICAgICAgICBVTklDT0RFXzJfMV81ID0gZ2V0SW5zdGFuY2UoMiwgMSwgNSwgMCk7CisgICAgICAgIFVOSUNPREVfMl8xXzggPSBnZXRJbnN0YW5jZSgyLCAxLCA4LCAwKTsKKyAgICAgICAgVU5JQ09ERV8yXzFfOSA9IGdldEluc3RhbmNlKDIsIDEsIDksIDApOworICAgICAgICBVTklDT0RFXzNfMCAgID0gZ2V0SW5zdGFuY2UoMywgMCwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfM18wXzEgPSBnZXRJbnN0YW5jZSgzLCAwLCAxLCAwKTsKKyAgICAgICAgVU5JQ09ERV8zXzFfMCA9IGdldEluc3RhbmNlKDMsIDEsIDAsIDApOworICAgICAgICBVTklDT0RFXzNfMV8xID0gZ2V0SW5zdGFuY2UoMywgMSwgMSwgMCk7CisgICAgICAgIFVOSUNPREVfM18yICAgPSBnZXRJbnN0YW5jZSgzLCAyLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV80XzAgICA9IGdldEluc3RhbmNlKDQsIDAsIDAsIDApOworICAgICAgICBVTklDT0RFXzRfMF8xID0gZ2V0SW5zdGFuY2UoNCwgMCwgMSwgMCk7CisgICAgICAgIFVOSUNPREVfNF8xICAgPSBnZXRJbnN0YW5jZSg0LCAxLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV81XzAgICA9IGdldEluc3RhbmNlKDQsIDEsIDAsIDApOworICAgICAgICBJQ1VfVkVSU0lPTiAgID0gZ2V0SW5zdGFuY2UoMywgNiwgMCwgMCk7CisgICAgICAgIFVDT0xfUlVOVElNRV9WRVJTSU9OID0gZ2V0SW5zdGFuY2UoNik7CisgICAgICAgIFVDT0xfQlVJTERFUl9WRVJTSU9OID0gZ2V0SW5zdGFuY2UoNyk7CisgICAgICAgIFVDT0xfVEFJTE9SSU5HU19WRVJTSU9OID0gZ2V0SW5zdGFuY2UoMSk7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3Igd2l0aCBpbnQKKyAgICAgKiBAcGFyYW0gY29tcGFjdHZlcnNpb24gYSAzMiBiaXQgaW50IHdpdGggZWFjaCBieXRlIHJlcHJlc2VudGluZyBhIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgVmVyc2lvbkluZm8oaW50IGNvbXBhY3R2ZXJzaW9uKQorICAgIHsKKyAgICAgICAgbV92ZXJzaW9uXyA9IGNvbXBhY3R2ZXJzaW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGludCBmcm9tIHRoZSB2ZXJzaW9uIG51bWJlcnMKKyAgICAgKiBAcGFyYW0gbWFqb3Igbm9uLW5lZ2F0aXZlIHZlcnNpb24gbnVtYmVyCisgICAgICogQHBhcmFtIG1pbm9yIG5vbi1uZWdhdGl2ZXZlcnNpb24gbnVtYmVyCisgICAgICogQHBhcmFtIG1pbGxpIG5vbi1uZWdhdGl2ZXZlcnNpb24gbnVtYmVyCisgICAgICogQHBhcmFtIG1pY3JvIG5vbi1uZWdhdGl2ZXZlcnNpb24gbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEludChpbnQgbWFqb3IsIGludCBtaW5vciwgaW50IG1pbGxpLCBpbnQgbWljcm8pCisgICAgeworICAgICAgICByZXR1cm4gKG1ham9yIDw8IDI0KSB8IChtaW5vciA8PCAxNikgfCAobWlsbGkgPDwgOCkgfCBtaWNybzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvdXRpbC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmRjMDZjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitJbnRlcm5hdGlvbmFsIGNhbGVuZGFycyBhbmQgb3RoZXIgdXRpbGl0eSBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL0F3dE1lbnVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51QnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdlNjQ5ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51QnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMjM2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51QmFyOworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC4qOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLkRpYWxvZ0l0ZW0uRGlhbG9nRmFjdG9yeTsKKworLy8gVE8gRE86ICBEb24ndCBoYXJkLWNvZGUgbWVudSBjb25maWd1cmF0aW9ucy4gIEluc3RlYWQsIHNwZWNpZnkgdGhlbSB3aXRoCisvLyBzdHJpbmdzIHNvbWVob3cuICBUaGlzIGlzIGFuIGltcHJvdmVtZW50IG92ZXIgd2hhdCB3ZSBoYWQsIGFuZCBpdCdsbCBkbworLy8gZm9yIG5vdy4KKworLyoqCisgKiBBd3RNZW51QnVpbGRlciBjcmVhdGVzIGEgc2V0IG9mIEFXVCBtZW51cyBmb3IgaW50ZXJhY3RpbmcKKyAqIHdpdGggYW4gTVRleHRQYW5lbC4gIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzIGNsYXNzIG1heSBhbGxvdworICogY2xpZW50cyB0byBjb250cm9sIHRoZSBtZW51IGNvbnRlbnRzLgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBBd3RNZW51QnVpbGRlciBleHRlbmRzIE1lbnVCdWlsZGVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF3dE1lbnVCdWlsZGVyIElOU1RBTkNFID0gbmV3IEF3dE1lbnVCdWlsZGVyKCk7CisgICAgCisgICAgLyoqCisgICAgICogSWQgZm9yIGFuIEVkaXQgbWVudS4gIFRoZSBFZGl0IG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5VbmRvPC9iPiAtIGludm9rZSB1bmRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5SZWRvPC9iPiAtIGludm9rZSByZWRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DdXQ8L2I+IC0gaW52b2tlIGN1dCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q29weTwvYj4gLSBpbnZva2UgY29weSgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+UGFzdGU8L2I+IC0gaW52b2tlIHBhc3RlKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DbGVhcjwvYj4gLSBpbnZva2UgY2xlYXIoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlNlbGVjdCBBbGw8L2I+IC0gaW52b2tlIHNlbGVjdEFsbCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVESVQgPSBNZW51QnVpbGRlci5FRElUOworICAgIC8qKgorICAgICAqIElkIGZvciB0aGUgcG9pbnQgc2l6ZXMgbWVudS4gIFRoZSBtZW51IGhhcyBpdGVtcyB0aGF0IHNldCB0aGUgc2l6ZSBvZiBhIGNoYXJhY3RlcgorICAgICAqIGluIGEgdHlwZWZhY2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0laRSA9IE1lbnVCdWlsZGVyLlNJWkU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgU3R5bGUgbWVudS4gIFRoZSBTdHlsZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+UGxhaW48L2I+IC0gcmVtb3ZlIDxjb2RlPldFSUdIVDwvY29kZT4sCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlBPU1RVUkU8L2NvZGU+LAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5VTkRFUkxJTkU8L2NvZGU+IGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5TVFJJS0VUSFJPVUdIPC9jb2RlPiBhdHRyaWJ1dGVzIGZyb20gdGhlCisgICAgICogY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Cb2xkPC9iPiAtIGFkZCA8Y29kZT57V0VJR0hULFdFSUdIVF9CT0xEfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5JdGFsaWM8L2I+IC0gYWRkIDxjb2RlPntQT1NUVVJFLFBPU1RVUkVfSVRBTElDfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5VbmRlcmxpbmU8L2I+IC0gYWRkIDxjb2RlPntVTkRFUkxJTkUsVU5ERVJMSU5FX09OfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5TdHJpa2V0aHJvdWdoPC9iPiAtIGFkZCA8Y29kZT57U1RSSUtFVEhST1VHSCxTVFJJS0VUSFJPVUdIX09OfTwvY29kZT4KKyAgICAgKiB0byB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb250Li4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSB0eXBlZmFjZSAoZm9udCBmYW1pbHkpIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb3JlY29sb3IuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIGZvcmVncm91bmQgY29sb3IgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkJhY2tjb2xvci4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFID0gTWVudUJ1aWxkZXIuU1RZTEU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgcGFyYWdyYXBoIGFsaWdubWVudCBtZW51LiAgVGhlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5MZWFkaW5nPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIExFQURJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5DZW50ZXI8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgQ0VOVEVSIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+VHJhaWxpbmc8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgVFJBSUxJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5KdXN0aWZpZWQ8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgZnVsbCBqdXN0aWZpY2F0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZMVVNIID0gTWVudUJ1aWxkZXIuRkxVU0g7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB0aGF0IHNldHMgdGhlIEtleVJlbWFwCisgICAgICogb24gYW4gTVRleHRQYW5lbC4gIFRoZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+RGVmYXVsdDwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gaWRlbnRpdHkgcmVtYXA8L2xpPgorICAgICAqIDxsaT48Yj5BcmFiaWM8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEFyYWJpYyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5IZWJyZXc8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEhlYnJldyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5Jc3JhZWwgTmlrdWQ8L2I+IC0gc2V0IEtleVJlbWFwIHRvIElzcmFlbCBOaWt1ZDwvbGk+CisgICAgICogPGxpPjxiPlRoYWkgS2V0bWFuZWU8L2I+IC0gc2V0IEtleVJlbWFwIHRvIFRoYWkgS2V0bWFuZWU8L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0VZTUFQID0gTWVudUJ1aWxkZXIuS0VZTUFQOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgdGhhdCBzZXRzCisgICAgICogdGhlIHByaW1hcnkgcnVuIGRpcmVjdGlvbiBmb3IgYSBwYXJhZ3JhcGguICBSdW4gZGlyZWN0aW9uIGNhbiBiZSBsZWZ0LXRvLXJpZ2h0LAorICAgICAqIHJpZ2h0LXRvLWxlZnQsIG9yIGNhbiB1c2UgdGhlIGRlZmF1bHQgcnVuIGRpcmVjdGlvbiBmcm9tIHRoZSBVbmljb2RlIGJpZGkgYWxnb3JpdGhtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJREkgPSBNZW51QnVpbGRlci5CSURJOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgd2l0aCBhbiA8Yj5BYm91dDwvYj4gaXRlbS4gIFdoZW4gc2VsZWN0ZWQsIAorICAgICAqIHRoZSBpdGVtIGRpc3BsYXlzIGEgRnJhbWUgY29udGFpbmluZyBzb21lCisgICAgICogc2VsZi1wcm9tb3Rpb25hbCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFCT1VUID0gTWVudUJ1aWxkZXIuQUJPVVQ7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGluc3RhbmNlIG9mIEF3dE1lbnVCdWlsZGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQXd0TWVudUJ1aWxkZXIgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gSU5TVEFOQ0U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTWVudUJhciBmTWVudUJhcjsKKyAgICAKKyAgICBwcml2YXRlIEF3dE1lbnVCdWlsZGVyKCkgeworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzdGFuZGFyZCBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVNZW51cyhNZW51QmFyIG1lbnVCYXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lKSB7CisgICAgICAgIAorICAgICAgICBjcmVhdGVNZW51cyhtZW51QmFyLCB0ZXh0UGFuZWwsIGZyYW1lLCBkZWZhdWx0TWVudXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKiBAcGFyYW0gbWVudXMgYW4gYXJyYXkgb2YgaW50ZWdlciBtZW51IGlkJ3MuICBFYWNoIGVsZW1lbnQgb2YgdGhlCisgICAgICogICBhcnJheSBtdXN0IGJlIG9uZSBvZiB0aGlzIGNsYXNzJ3MgbWVudSBpZCBjb25zdGFudHMuICBJZiBudWxsLAorICAgICAqICAgdGhlIGRlZmF1bHQgbWVudXMgYXJlIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoTWVudUJhciBtZW51QmFyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgaWYgKG1lbnVzID09IG51bGwpIHsKKyAgICAgICAgICAgIG1lbnVzID0gZGVmYXVsdE1lbnVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQgKE1JdGVtLkxPQ0spIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZk1lbnVCYXIgPSBtZW51QmFyOworICAgICAgICAgICAgZG9DcmVhdGVNZW51cyh0ZXh0UGFuZWwsIGZyYW1lLCBtZW51cyk7CisgICAgICAgICAgICBmTWVudUJhciA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQWRkTWVudShTdHJpbmcga2V5KSB7CisgICAgICAgIAorICAgICAgICBNZW51IG1lbnUgPSBuZXcgTWVudShSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKGtleSkpOworICAgICAgICBmTWVudUJhci5hZGQobWVudSk7CisgICAgICAgIE1JdGVtLnNldEl0ZW1GYWN0b3J5KG5ldyBBd3RNZW51RmFjdG9yeShtZW51KSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIERpYWxvZ0ZhY3RvcnkgY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeShmaW5hbCBTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0W10gdmFsdWVzKSB7CisgICAgICAgIAorICAgICAgICBmaW5hbCBGcmFtZSBkaWFsb2dQYXJlbnQgPSBmRGlhbG9nUGFyZW50OworCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsgICAgCisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0RGlhbG9nKGRpYWxvZ1BhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU51bWJlckRpYWxvZ0ZhY3RvcnkoZmluYWwgU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIEZyYW1lIGRpYWxvZ1BhcmVudCA9IGZEaWFsb2dQYXJlbnQ7CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBEaWFsb2dGYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWJlckRpYWxvZyhkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZUFib3V0RGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5BQk9VVF9USVRMRSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNZXNzYWdlRGlhbG9nKHRpdGxlLCBBYm91dFRleHQuZ2V0QWJvdXRUZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mN2Y4ZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkNoZWNrYm94TWVudUl0ZW07CitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51SXRlbTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51U2hvcnRjdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtLkl0ZW1GYWN0b3J5OworCitmaW5hbCBjbGFzcyBBd3RNZW51RmFjdG9yeSBpbXBsZW1lbnRzIEl0ZW1GYWN0b3J5IHsKKyAgICAgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIEF3dE1JdGVtIGV4dGVuZHMgTUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBNZW51SXRlbSBmSXRlbTsKKyAgICAgICAgCisgICAgICAgIEF3dE1JdGVtKE1lbnVJdGVtIGl0ZW0pIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkl0ZW0gPSBpdGVtOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGNoSXRlbSA9IChDaGVja2JveE1lbnVJdGVtKSBmSXRlbTsKKyAgICAgICAgICAgICAgICBjaEl0ZW0uYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQWNrIC0gaG93IGRvIHlvdSBkbyB0aGlzIGZyb20gaW5uZXIgY2xhc3Nlcz8/CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVNlbGVjdGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlci5oYW5kbGVTZWxlY3RlZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBzZXRTdGF0ZShib29sZWFuIGNoZWNrZWQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGl0ZW0gPSAoQ2hlY2tib3hNZW51SXRlbSkgZkl0ZW07CisgICAgICAgICAgICAgICAgaXRlbS5zZXRTdGF0ZShjaGVja2VkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGVyZm9ybSBzZXRDaGVja2VkIG9uIG5vbi1jaGVja2JveCBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBNZW51IGZNZW51OworICAgICAgICAKKyAgICBBd3RNZW51RmFjdG9yeShNZW51IG1lbnUpIHsKKyAgICAgICAgICAgIAorICAgICAgICBmTWVudSA9IG1lbnU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTUl0ZW0gaGFuZGxlQ3JlYXRlKE1lbnVJdGVtIGl0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGEgbWVudURhdGEpIHsKKworICAgICAgICBpZiAobWVudURhdGEuaGFzU2hvcnRjdXQoKSkgeworICAgICAgICAgICAgaXRlbS5zZXRTaG9ydGN1dChuZXcgTWVudVNob3J0Y3V0KG1lbnVEYXRhLmdldFNob3J0Y3V0Q2hhcigpKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgQXd0TUl0ZW0oaXRlbSk7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlSXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZShuZXcgTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKSwgbWVudURhdGEpOworICAgIH0gICAgICAgIAorCisgICAgcHVibGljIE1JdGVtIGNyZWF0ZUNoZWNrYm94SXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZShuZXcgQ2hlY2tib3hNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCkpLCBtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNyZWF0ZVNlcGFyYXRvcigpIHsKKyAgICAgICAgCisgICAgICAgIGZNZW51LmFkZChuZXcgTWVudUl0ZW0oIi0iKSk7CisgICAgfQorfQorICAgIApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTVRhYlJ1bGVyQ29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NVGFiUnVsZXJDb21wb25lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMWQyNzM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTVRhYlJ1bGVyQ29tcG9uZW50LmphdmEKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKKworLyoqCisgKiBNVGFiUnVsZXJDb21wb25lbnQgaXMgaW1wbGVtZW50ZWQgYnkgY29tcG9uZW50cyB3aGljaCBwcm92aWRlIGEgdGFiLXJ1bGVyCisgKiBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggYW4gTVRleHRQYW5lbC4KKyAqIDxwPgorICogVXNlcnMgaW50ZXJhY3Qgd2l0aCBNVGFiUnVsZXJDb21wb25lbnQgaW1wbGVtZW50YXRpb25zIGFzIGZvbGxvd3M6CisgKiA8dWw+CisgKiA8bGk+VGhlIGxlYWRpbmcgbWFyZ2luIGNhbiBiZSBzZXQgYnkgZHJhZ2dpbmcgdGhlIGJvdHRvbSBoYWxmCisgKiBvZiB0aGUgbGVmdG1vc3QgdHJpYW5nbGUuICBUaGUgZmlyc3QtbGluZSBpbmRlbnQgd2lsbCAic3RpY2siIHdpdGgKKyAqIHRoZSBsZWFkaW5nIG1hcmdpbi48L2xpPgorICogPGxpPlRoZSBmaXJzdC1saW5lIGluZGVudCBjYW4gYmUgc2V0IGJ5IGRyYWdnaW5nIHRoZSB0b3AgaGFsZiBvZiB0aGUKKyAqIGxlZnRtb3N0IHRyaWFuZ2xlLiAgVGhlIGZpcnN0LWxpbmUgaW5kZW50IGFwcGxpZXMgdG8gdGhlIGZpcnN0IGxpbmUgb2YKKyAqIGEgcGFyYWdyYXBoLjwvbGk+CisgKiA8bGk+VGhlIHRyYWlsaW5nIG1hcmdpbiBjYW4gYmUgc2V0IGJ5IGRyYWdnaW5nIHRoZSByaWdodG1vc3QgdHJpYW5nbGUuPC9saT4KKyAqIDxsaT5UYWJzIGNhbiBiZSBhZGRlZCB0byB0aGUgcnVsZXIgYnkgY2xpY2tpbmcgdGhlIG1vdXNlIG9uIHRoZSBydWxlciB3aXRoIHRoZQorICogY29udHJvbCBrZXkgcHJlc3NlZC4gIEZvdXIga2luZHMgb2YgdGFicyBhcmUgcHJvdmlkZWQ6ICBsZWFkaW5nLCB0cmFpbGluZywgY2VudGVyLAorICogYW5kIGRlY2ltYWwuICBUaGUgdHlwZSBvZiBhIHRhYiBjYW4gYmUgY2hhbmdlZCBieSBkb3VibGUtY2xpY2tpbmcgdGhlIHRhYi48L2xpPgorICogPGxpPlRhYnMgY2FuIGJlIHJlcG9zaXRpb25lZCBieSBkcmFnZ2luZyB0aGVtIHdpdGggdGhlIG1vdXNlLjwvbGk+CisgKiA8L3VsPgorICogPHA+CisgKiBNVGFiUnVsZXJDb21wb25lbnQncyBhcHBlYXJhbmNlIHdpbGwgcmVmbGVjdCB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiB0aGUKKyAqIGZpcnN0IHNlbGVjdGVkIHBhcmFncmFwaC4gIFN0eWxlIGNoYW5nZXMgcGVyZm9ybWVkIHdpdGggYW4gCisgKiBNVGFiUnVsZXJDb21wb25lbnQgd2lsbCBhcHBseSB0byBhbGwgc2VsZWN0ZWQgcGFyYWdyYXBocy4KKyAqLworcHVibGljIGludGVyZmFjZSBNVGFiUnVsZXJDb21wb25lbnQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sb3IgZ2V0QmFja0NvbG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFja0NvbG9yIHRoZSBuZXcgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QmFja0NvbG9yKENvbG9yIGJhY2tDb2xvcik7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciBnZXRSdWxlcigpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdExpbmVJbmRlbnQoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRyYWlsaW5nTWFyZ2luKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NZXNzYWdlRGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NZXNzYWdlRGlhbG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODY2MjE2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL01lc3NhZ2VEaWFsb2cuamF2YQpAQCAtMCwwICsxLDY1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuQ2FyZExheW91dDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworLyoqCisgKiBNZXNzYWdlRGlhbG9nIGlzIGEgc2ltcGxlIEZyYW1lIHdoaWNoIGRpc3BsYXlzIGEgc3R5bGVkCisgKiB0ZXh0IG1lc3NhZ2UgaW4gYSBUZXh0UGFuZWwuCisgKiBUaGUgdGV4dCBpbiB0aGUgbWVzc2FnZSBpcyBub3Qgc2VsZWN0YWJsZSBvciBlZGl0YWJsZS4KKyAqIEBzZWUgTUNvbnN0VGV4dAorICogQHNlZSBUZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1lc3NhZ2VEaWFsb2cgZXh0ZW5kcyBGcmFtZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICogQ3JlYXRlIGEgbmV3IE1lc3NhZ2VEaWFsb2cuCisgICAgKiBAcGFyYW0gdGl0bGUgdGhlIGRpYWxvZydzIHRpdGxlCisgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgdGV4dCB3aGljaCB3aWxsIGFwcGVhciBpbiB0aGUgZGlhbG9nCisgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZURpYWxvZyhTdHJpbmcgdGl0bGUsIE1Db25zdFRleHQgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRpdGxlKTsKKworICAgICAgICBzZXRMYXlvdXQobmV3IENhcmRMYXlvdXQoKSk7CisgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzID0gVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgICAgICBzZXR0aW5ncy5zZXRTY3JvbGxhYmxlKGZhbHNlKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0U2VsZWN0YWJsZShmYWxzZSk7CisgICAgICAgIFRleHRQYW5lbCBwYW5lbCA9IG5ldyBUZXh0UGFuZWwoc2V0dGluZ3MsIG1lc3NhZ2UsIG51bGwpOworCisgICAgICAgIHBhbmVsLnNldEJhY2tncm91bmQoQ29sb3IuYmxhY2spOworICAgICAgICBhZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0U2l6ZSg0NTAsMzIwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9OdW1iZXJEaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL051bWJlckRpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlZGFmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9OdW1iZXJEaWFsb2cuamF2YQpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LlRleHRGaWVsZDsKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CisKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTWVudUl0ZW1TZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuUmVzb3VyY2VVdGlsczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKKy8qKgorKiBTaW1wbGUgZGlhbG9nIHdoaWNoIGdldHMgYSBudW1iZXIsIGFuZCBzZW5kcyBhbiBhcHByb3ByaWF0ZSBjb21tYW5kCisqLworZmluYWwgY2xhc3MgTnVtYmVyRGlhbG9nIGV4dGVuZHMgRGlhbG9nIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgVGV4dEZpZWxkIGZJbnB1dCA9IG51bGw7CisgICAgcHJpdmF0ZSBCdXR0b24gZk9LQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIEJ1dHRvbiBmQ2FuY2VsQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgZmxvYXQgZk11bHRpcGxpZXI7IAorCisgICAgLyoqCisgICAgICogQHBhcmFtIG11bHRpcGxpZXIgdGhlIGZhY3RvciBieSB3aGljaCB0byBtdWx0aXBseSB0aGUgdXNlcidzCisgICAgICogICAgICAgIHNlbGVjdGlvbiBiZWZvcmUgY3JlYXRpbmcgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4gICBUaGlzCisgICAgICogICAgICAgIGlzIHVzZWZ1bCBmb3Igc3Vic2NyaXB0aW5nLgorICAgICAqLworICAgIE51bWJlckRpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgZmxvYXQgbXVsdGlwbGllcikgeworCisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgZk11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOworICAgICAgICBzZXRMYXlvdXQobmV3IGphdmEuYXd0LkdyaWRMYXlvdXQoMiwxKSk7CisKKyAgICAgICAgUGFuZWwgcGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCAxMCwgMTUpKTsKKyAgICAgICAgZklucHV0ID0gbmV3IFRleHRGaWVsZCg1KTsKKyAgICAgICAgcGFuZWwuYWRkKG5ldyBMYWJlbChtZXNzYWdlKSk7CisgICAgICAgIHBhbmVsLmFkZChmSW5wdXQpOworICAgICAgICBhZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBmQ2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT0spKTsKKyAgICAgICAgUGFuZWwgcCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBwLmFkZChmQ2FuY2VsQnV0dG9uKTsKKyAgICAgICAgcC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIHApOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZDYW5jZWxCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworCisgICAgICAgIGludCBudW0gPSAwOworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IGZJbnB1dC5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgbnVtID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UodGV4dCkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBzZW5kQWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgc2VuZEFjdGlvbihudW0pOworICAgICAgICB9CisKKyAgICAgICAgZGlzcG9zZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisKKyAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEFjdGlvbkV2ZW50ISIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSB0aGUgbnVtYmVyIHRoZSB1c2VyIHR5cGVkIGluCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihpbnQgbnVtYmVyKSB7CisgICAgICAgIGZsb2F0IG51bSA9IG51bWJlciAqIGZNdWx0aXBsaWVyOworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmxvYXQobnVtKSk7CisgICAgICAgIGlmIChmQ2hhcmFjdGVyID09IE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9PYmplY3REaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL09iamVjdERpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI5MTNhYTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9PYmplY3REaWFsb2cuamF2YQpAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NZW51SXRlbVNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCitpbXBvcnQgamF2YS5hd3QuRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5DaG9pY2U7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CitpbXBvcnQgamF2YS5hd3QuRmxvd0xheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKKworLyoqCisqIFNpbXBsZSBkaWFsb2cgd2hpY2ggZ2V0cyBhIGNvbG9yCisqLworZmluYWwgY2xhc3MgT2JqZWN0RGlhbG9nIGV4dGVuZHMgRGlhbG9nIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBmaW5hbCBNVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgZktleTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKworICAgIHByaXZhdGUgZmluYWwgQnV0dG9uIGZPS0J1dHRvbjsKKyAgICBwcml2YXRlIGZpbmFsIEJ1dHRvbiBmQ2FuY2VsQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgQ2hvaWNlIGZJdGVtczsKKyAgICBwcml2YXRlIGZpbmFsIEhhc2h0YWJsZSBmTmFtZVRvVmFsdWVNYXA7CisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3QgYSBuZXcgQ29sb3JEaWFsb2cuCisgICAgKiBAcGFyYW0gcGFyZW50IHRoZSBkaWFsb2cncyBwYXJlbnQgZnJhbWUKKyAgICAqIEBwYXJhbSB0aXRsZSB0aGUgZGlhbG9ncyB0aXRsZQorICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIG1lc3NhZ2UgZGlzcGxheWVkIG5leHQgdG8gdGhlIGlucHV0IGJveAorICAgICovCisgICAgT2JqZWN0RGlhbG9nKEZyYW1lIHBhcmVudCwgCisgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwgCisgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlLCAKKyAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgT2JqZWN0W10gdmFsdWVzKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdXBlcihwYXJlbnQsIHRpdGxlLCBmYWxzZSk7CisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBzZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMiwgMSkpOworCisgICAgICAgIFBhbmVsIHBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgMTAsIDEwKSk7CisgICAgICAgIGZJdGVtcyA9IG5ldyBDaG9pY2UoKTsKKworICAgICAgICBpZiAobmFtZXMubGVuZ3RoICE9IHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3QgaGF2ZSBzYW1lIG51bWJlciBvZiBuYW1lcyBhbmQgdmFsdWVzLiIpOworICAgICAgICB9CisKKyAgICAgICAgZk5hbWVUb1ZhbHVlTWFwID0gbmV3IEhhc2h0YWJsZShuYW1lcy5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZJdGVtcy5hZGQobmFtZXNbaV0pOworICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZk5hbWVUb1ZhbHVlTWFwLnB1dChuYW1lc1tpXSwgdmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBhbmVsLmFkZChuZXcgTGFiZWwobWVzc2FnZSkpOyAgICAgICAgCisgICAgICAgIHBhbmVsLmFkZChmSXRlbXMpOworICAgICAgICAKKyAgICAgICAgYWRkKCJOb3J0aCIsIHBhbmVsKTsKKworICAgICAgICBmQ2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT0spKTsKKyAgICAgICAgUGFuZWwgcCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBwLmFkZChmQ2FuY2VsQnV0dG9uKTsKKyAgICAgICAgcC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIHApOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZDYW5jZWxCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gZk5hbWVUb1ZhbHVlTWFwLmdldChmSXRlbXMuZ2V0U2VsZWN0ZWRJdGVtKCkpOworICAgICAgICAgICAgc2VuZEFjdGlvbih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZGlzcG9zZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisKKyAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEFjdGlvbkV2ZW50ISIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSBvYmogdGhlIHZhbHVlIG9iamVjdAorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNlbmRBY3Rpb24oT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihmS2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0ID0gbmV3IEF0dHJpYnV0ZVNldChmS2V5KTsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBNZW51SXRlbVNldC5DSEFSQUNURVIpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvVGFiUnVsZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RhYlJ1bGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDExYTFjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RhYlJ1bGVyLmphdmEKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuYXd0dWk7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5UYWJSdWxlckltcGw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKKworLyoqCisgKiBUYWJSdWxlciBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGFiUnVsZXJDb21wb25lbnQgaW4gYW4gQVdUIGNvbXBvbmVudC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRhYlJ1bGVyIGV4dGVuZHMgQ29tcG9uZW50IGltcGxlbWVudHMgTVRhYlJ1bGVyQ29tcG9uZW50IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGFiUnVsZXJJbXBsIGZJbXBsOworICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFzZWxpbmUgdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgcnVsZXIncyBiYXNlbGluZQorICAgICAqIEBwYXJhbSBvcmlnaW4gdGhlIHgtY29vcmRpbmF0ZSBpbiB0aGlzIENvbXBvbmVudCB3aGVyZQorICAgICAqICAgICB0aGUgbGVmdCBtYXJnaW4gYXBwZWFycworICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvLiAgVGhpcyBUYWJSdWxlcgorICAgICAqICAgICB3aWxsIHJlZmxlY3QgdGhlIE1UZXh0UGFuZWwncyBwYXJhZ3JhcGggc3R5bGVzLCBhbmQgdXBkYXRlCisgICAgICogICAgIHRoZSBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gbWFuaXB1bGF0ZWQuCisgICAgICovCisgICAgcHVibGljIFRhYlJ1bGVyKGludCBiYXNlbGluZSwgaW50IG9yaWdpbiwgTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsID0gbmV3IFRhYlJ1bGVySW1wbChiYXNlbGluZSwgb3JpZ2luLCB0ZXh0UGFuZWwsIHRoaXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZJbXBsLmxpc3RlblRvVGV4dFBhbmVsKHRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBDb2xvciBnZXRCYWNrQ29sb3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEJhY2tDb2xvcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFja0NvbG9yIHRoZSBuZXcgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QmFja0NvbG9yKENvbG9yIGJhY2tDb2xvcikgeworCisgICAgICAgIGZJbXBsLnNldEJhY2tDb2xvcihiYWNrQ29sb3IpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciBnZXRSdWxlcigpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRSdWxlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZWFkaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldExlYWRpbmdNYXJnaW4oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3RMaW5lSW5kZW50KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEZpcnN0TGluZUluZGVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFRyYWlsaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRyYWlsaW5nTWFyZ2luKCk7CisgICAgfQorICAgIAorICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlIENvbXBvbmVudCBtZXRob2RzIHdoaWNoIG5lZWQgdG8gYmUgZGVsZWdhdGVkIHRvCisgICAgLy8gdGhlIGltcGxlbWVudGF0aW9uOgorICAgIAorICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsLnBhaW50KGcpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWluaW11bVNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0TWluaW11bVNpemUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UZXh0RnJhbWUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RleHRGcmFtZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmMGI5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UZXh0RnJhbWUuamF2YQpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnVCYXI7CitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCisvKioKKyAqIFRleHRGcmFtZSBpcyBhIEZyYW1lIGNvbnRhaW5pbmcgYW4gZWRpdGFibGUgVGV4dFBhbmVsLCBhIHNldCBvZiBzdGFuZGFyZAorICogbWVudXMsIGFuZCBhIFRhYlJ1bGVyLiAgVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcy1pcywgYnV0IGlzCisgKiBwcmltYXJpbHkgaW50ZW5kZWQgdG8gYmUgYSBzaW1wbGUgZXhhbXBsZSBvZiBob3cgdG8gdXNlIHRoZSBvdGhlciBjbGFzc2VzCisgKiBpbiB0aGlzIHBhY2thZ2UuCisgKiBAc2VlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbAorICogQHNlZSBBd3RNZW51QnVpbGRlcgorICogQHNlZSBUYWJSdWxlcgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dEZyYW1lIGV4dGVuZHMgRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRleHRQYW5lbCBmVGV4dFBhbmVsOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRGcmFtZSB3aXRoIG5vIHRleHQgYW5kIG5vIHRpdGxlLgorICAgICAqLworICAgIHB1YmxpYyBUZXh0RnJhbWUoKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcigpOworICAgICAgICBpbml0KG51bGwsIFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0RnJhbWUgd2l0aCBubyB0ZXh0IGFuZCB0aGUgZ2l2ZW4gdGl0bGUuCisgICAgICogQHBhcmFtIHRpdGxlIHRoZSB0aXRsZSBvZiB0aGlzIEZyYW1lCisgICAgICovCisgICAgcHVibGljIFRleHRGcmFtZShTdHJpbmcgdGl0bGUpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgaW5pdChudWxsLCBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dEZyYW1lIHdpdGggdGhlIGdpdmVuIHRleHQgYW5kIHRpdGxlLCB3aG9zZQorICAgICAqIFRleHRQYW5lbCB3aWxsIHVzZSB0aGUgZ2l2ZW4gY2xpcGJvYXJkLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBpbml0aWFsIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIElmIG51bGwgdGhlCisgICAgICogICAgICBUZXh0UGFuZWwgd2lsbCBpbml0aWFsbHkgYmUgZW1wdHkKKyAgICAgKiBAcGFyYW0gdGl0bGUgdGhlIHRpdGxlIG9mIHRoaXMgRnJhbWUKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBDbGlwYm9hcmQgd2hpY2ggdGhlIFRleHRQYW5lbCB3aWxsIHVzZS4KKyAgICAgKiAgICAgIElmIG51bGwgdGhlIFRleHRQYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgQ2xpcGJvYXJkCisgICAgICovCisgICAgcHVibGljIFRleHRGcmFtZShNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgc3VwZXIodGl0bGUpOworICAgICAgICBpbml0KHRleHQsIGNsaXBib2FyZCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoTUNvbnN0VGV4dCB0ZXh0LCBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gbmV3IFRleHRQYW5lbCh0ZXh0LCBjbGlwYm9hcmQpOworCisgICAgICAgIFRhYlJ1bGVyIHRhYlJ1bGVyID0gbmV3IFRhYlJ1bGVyKDE0LCAxMCwgZlRleHRQYW5lbCk7CisKKyAgICAgICAgY3JlYXRlTWVudXMoKTsKKworICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgYWRkKGZUZXh0UGFuZWwsICJDZW50ZXIiKTsKKyAgICAgICAgYWRkKHRhYlJ1bGVyLCAiTm9ydGgiKTsKKyAgICAgICAgcGFjaygpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjcmVhdGVNZW51cygpIHsKKworICAgICAgICBNZW51QmFyIG1lbnVCYXIgPSBuZXcgTWVudUJhcigpOworCisgICAgICAgIEF3dE1lbnVCdWlsZGVyLmdldEluc3RhbmNlKCkuY3JlYXRlTWVudXMobWVudUJhciwgZlRleHRQYW5lbCwgdGhpcyk7CisKKyAgICAgICAgc2V0TWVudUJhcihtZW51QmFyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0UGFuZWwgaW4gdGhpcyBmcmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRleHRQYW5lbCBnZXRUZXh0UGFuZWwoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUZXh0UGFuZWw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgCisgICAgICAgIFRleHRGcmFtZSBmcmFtZSA9IG5ldyBUZXh0RnJhbWUoKTsKKyAgICAgICAgZnJhbWUuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGZyYW1lLnNldFNpemUoNTUwLCA3MDApOworICAgICAgICBmcmFtZS5zaG93KCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDE2ZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhLS0KKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLS0+Cis8aHRtbD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Byb3ZpZGVzIGNsYXNzZXMgZm9yIGJ1aWxkaW5nIGFuIEFXVC1iYXNlZCB1c2VyIGludGVyZmFjZSBmb3IgYSBUZXh0UGFuZWwuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dERvY3VtZW50V2luZG93LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dERvY3VtZW50V2luZG93LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjJmMjNhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RG9jdW1lbnRXaW5kb3cuamF2YQpAQCAtMCwwICsxLDM1NyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UYWJSdWxlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuYXd0dWkuQXd0TWVudUJ1aWxkZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnByaW50LlByaW50aW5nVXRpbHM7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuQnV0dG9uOworaW1wb3J0IGphdmEuYXd0LkRpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GaWxlRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkdyaWRMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51QmFyOworaW1wb3J0IGphdmEuYXd0LkxhYmVsOworaW1wb3J0IGphdmEuYXd0LlBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworCisvKioKKyAqIEF3dERvY3VtZW50V2luZG93IGlzIGEgRnJhbWUgY29udGFpbmluZyBhIFRleHRQYW5lbCwgd2l0aCBhIGRvY3VtZW50CisgKiBmb3Igc3RvcmluZyB0aGUgdGV4dCBpbiB0aGUgVGV4dFBhbmVsLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXd0RG9jdW1lbnRXaW5kb3cgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIERvY3VtZW50V2luZG93IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIFRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgRWRpdEFwcGxpY2F0aW9uIGZBcHBsaWNhdGlvbjsKKyAgICBwcml2YXRlIFRleHREb2N1bWVudCBmRG9jdW1lbnQ7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgQXd0RG9jdW1lbnRXaW5kb3cuCisgICAgICogQHBhcmFtIGFwcGxpY2F0aW9uIHRoZSBhcHBsaWNhdGlvbiB0aGF0IG93bnMgdGhpcyBkb2N1bWVudAorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UKKyAgICAgKiBAcGFyYW0gZG9jdW1lbnQgdGhlIGRvY3VtZW50IHRvIHNob3cgaW4gdGhpcyBBd3REb2N1bWVudFdpbmRvdworICAgICAqLworICAgIEF3dERvY3VtZW50V2luZG93KEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3MgdGV4dFBhbmVsU2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1c2VUYWJSdWxlciwKKyAgICAgICAgICAgICAgICAgICBUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRTdHlsZWRUZXh0LAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluVGV4dCwKKyAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworCisgICAgICAgIGZBcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uOworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG5ldyBUZXh0UGFuZWwodGV4dFBhbmVsU2V0dGluZ3MsIG51bGwsIGFwcGxpY2F0aW9uLmdldENsaXBib2FyZCgpKTsKKyAgICAgICAgaWYgKGxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICB9CisgICAgICAgIHNldERvY3VtZW50KGRvY3VtZW50KTsKKworICAgICAgICBhZGRNZW51QmFyKHN1cHBvcnRTdHlsZWRUZXh0LCBzdXBwb3J0UGxhaW5UZXh0LCBtZW51cyk7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICAgaWYgKHVzZVRhYlJ1bGVyKSB7CisgICAgICAgICAgICBUYWJSdWxlciB0YWJSdWxlciA9IG5ldyBUYWJSdWxlcigxNCwgMTAsIGZUZXh0UGFuZWwpOworICAgICAgICAgICAgYWRkKHRhYlJ1bGVyLCAiTm9ydGgiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYWRkKGZUZXh0UGFuZWwsICJDZW50ZXIiKTsKKyAgICAgICAgcGFjaygpOworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGRvQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFkZE1lbnVCYXIoYm9vbGVhbiBzdXBwb3J0U3R5bGVkVGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0UGxhaW5UZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG1lbnVzKSB7CisgICAgICAgIAorICAgICAgICBNZW51QmFyIG1lbnVCYXIgPSBuZXcgTWVudUJhcigpOworICAgICAgICBTdHJpbmcgbWVudVRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLkZJTEUpOworICAgICAgICBNZW51IG1lbnUgPSBuZXcgTWVudShtZW51VGl0bGUpOworICAgICAgICBuZXcgQXd0RmlsZU1lbnVNYW5hZ2VyKG1lbnUsIGZBcHBsaWNhdGlvbiwgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydFN0eWxlZFRleHQsIHN1cHBvcnRQbGFpblRleHQpOworICAgICAgICBtZW51QmFyLmFkZChtZW51KTsKKworICAgICAgICBBd3RNZW51QnVpbGRlci5nZXRJbnN0YW5jZSgpLmNyZWF0ZU1lbnVzKG1lbnVCYXIsIGZUZXh0UGFuZWwsIHRoaXMsIG1lbnVzKTsKKyAgICAgICAgc2V0TWVudUJhcihtZW51QmFyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgaXQgaXMgT0sgdG8gc2V0IHRoZSBkb2N1bWVudCB0ZXh0IGFuZCBmaWxlIHRvCisgICAgICogc29tZXRoaW5nIGRpZmZlcmVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2FuQ2hhbmdlRG9jdW1lbnRzKCkgeworCisgICAgICAgIC8vIElmIHRoZSB0ZXh0IGlzIG1vZGlmaWVkLCBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvCisgICAgICAgIC8vIHNhdmUgaXQuICBPdGhlcndpc2UgcmV0dXJuIHRydWUuCisKKyAgICAgICAgaWYgKGZEb2N1bWVudC5pc01vZGlmaWVkKCkpIHsKKyAgICAgICAgICAgIGJ5dGUgc2F2ZSA9IGFza1NhdmUodGhpcywgZ2V0VGl0bGUoKSk7CisgICAgICAgICAgICBpZiAoc2F2ZSA9PSBZRVMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9TYXZlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2F2ZSA9PSBOTzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldERvY3VtZW50KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIGZEb2N1bWVudCA9IGRvY3VtZW50OworICAgICAgICBmRG9jdW1lbnQuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBzZXRUaXRsZShmRG9jdW1lbnQuZ2V0VGl0bGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkb2N1bWVudCB0byBlbXB0eSB0ZXh0IHdpdGggbm8gYXNzb2NpYXRlZCBmaWxlLiAgSWYKKyAgICAgKiB0aGUgZG9jdW1lbnQgdGV4dCBpcyBub3Qgc2F2ZWQsIHByb21wdCB0aGUgdXNlciB0byBzYXZlIHRoZQorICAgICAqIHRoZSB0ZXh0IGZpcnN0LiAgSWYgdGhpcyBvcGVyYXRpb24gaXMgY2FuY2VsZWQsIHRoZSBkb2N1bWVudAorICAgICAqIGlzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb05ldygpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldERvY3VtZW50KGZBcHBsaWNhdGlvbi5jcmVhdGVOZXdEb2N1bWVudCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBmcm9tIHdoaWNoIHRvIGxvYWQgYSB0ZXh0IGRvY3VtZW50LgorICAgICAqIElmIHRoZSBjdXJyZW50IHRleHQgaXMgbm90IHNhdmVkLCBmaXJzdCBwcm9tcHQgdGhlIHVzZXIgdG8KKyAgICAgKiBzYXZlLiAgSWYgZWl0aGVyIG9wZXJhdGlvbiBpcyBjYW5jZWxlZCBvciBmYWlscywgdGhlIGRvY3VtZW50CisgICAgICogaXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvT3BlbigpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQgPSBmQXBwbGljYXRpb24ub3BlbkRvY3VtZW50KHRoaXMpOworCisgICAgICAgIGlmIChkb2N1bWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBpbiB3aGljaCB0byBzYXZlIHRoZSBkb2N1bWVudCB0ZXh0LgorICAgICAqIElmIHRoaXMgb3BlcmF0aW9uIGlzIG5vdCBjYW5jZWxlZCwgc2F2ZSB0aGUgdGV4dCBpbiB0aGUgZmlsZS4KKyAgICAgKiBUaGUgZmlsZSBiZWNvbWVzIHRoaXMgZG9jdW1lbnQncyBmaWxlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZUFzKGludCBmb3JtYXQpIHsKKworICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuU0FWRV9USVRMRSk7CisgICAgICAgIEZpbGUgZmlsZSA9IGdldEZpbGVGcm9tRGlhbG9nKGZEb2N1bWVudC5nZXRGaWxlKCksIHRpdGxlLCB0aGlzLCBGaWxlRGlhbG9nLlNBVkUpOworICAgICAgICAKKyAgICAgICAgaWYgKGZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmRG9jdW1lbnQuc2V0RmlsZShmaWxlKTsKKyAgICAgICAgc2V0VGl0bGUoZkRvY3VtZW50LmdldFRpdGxlKCkpOworCisgICAgICAgIGZEb2N1bWVudC5zZXRGb3JtYXQoZm9ybWF0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmRG9jdW1lbnQuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdGhlIHRleHQgaW4gdGhpcyBkb2N1bWVudC4gIElmIHRoZXJlIGlzIG5vIGZpbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhlIHRleHQsIHRoaXMgaXMgZXF1aXZhbGVudCB0byA8Y29kZT5kb1NhdmVBczwvY29kZT4uCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZSgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50LmdldEZpbGUoKSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZG9TYXZlQXMoZkRvY3VtZW50LmdldEZvcm1hdCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZEb2N1bWVudC5zYXZlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgd2luZG93LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvUHJpbnQoKSB7CisKKyAgICAgICAgUHJpbnRpbmdVdGlscy51c2VyUHJpbnRUZXh0KGZEb2N1bWVudC5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRpdGxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gY2xvc2UgdGhpcyB3aW5kb3cuICBJZiB0aGUgdGV4dCBoYXMgbm90IGJlZW4gc2F2ZWQsCisgICAgICogZ2l2ZSB0aGUgdXNlciBhIGNoYW5jZSB0byBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjbG9zaW5nIHRoZQorICAgICAqIHdpbmRvdy4gIElmIHRoZSB1c2VyIGNhbmNlbHMgdGhpcyBvcGVyYXRpb24sIHRoaXMgbWV0aG9kIHJldHVybnMKKyAgICAgKiBmYWxzZSBhbmQgdGhlIHdpbmRvdyBpcyBub3QgY2xvc2VkOyAgb3RoZXJ3aXNlIHRoaXMgbWV0aG9kCisgICAgICogcmV0dXJucyB0cnVlIGFuZCB0aGUgd2luZG93IGlzIGNsb3NlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb0Nsb3NlKCkgeworCisgICAgICAgIGlmIChjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBmQXBwbGljYXRpb24ucmVtb3ZlRG9jdW1lbnRXaW5kb3codGhpcyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgZmlsZSBmcm9tIGEgZGlhbG9nLiAgSWYgdGhlIHVzZXIgZG9lcyBub3QKKyAgICAgKiBzZWxlY3QgYSBmaWxlIGluIHRoZSBkaWFsb2cgdGhpcyBtZXRob2QgcmV0dXJucyBudWxsLgorICAgICAqIEBwYXJhbSBraW5kIGVpdGhlciBGaWxlRGlhbG9nLkxPQUQgb3IgRmlsZURpYWxvZy5TQVZFLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRmlsZSBnZXRGaWxlRnJvbURpYWxvZyhGaWxlIG9yaWdGaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGlhbG9nVGl0bGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtpbmQpIHsKKyAgICAgICAgCisgICAgICAgIEZpbGVEaWFsb2cgZGlhbG9nID0gbmV3IEZpbGVEaWFsb2cob3duZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQpOworICAgICAgICBpZiAob3JpZ0ZpbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgZGlhbG9nLnNldERpcmVjdG9yeShvcmlnRmlsZS5nZXRQYXJlbnQoKSk7CisgICAgICAgICAgICBkaWFsb2cuc2V0RmlsZShvcmlnRmlsZS5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgICAgIGRpYWxvZy5zaG93KCk7CisgICAgICAgIFN0cmluZyBmaWxlU3RyID0gZGlhbG9nLmdldEZpbGUoKTsKKyAgICAgICAgU3RyaW5nIGRpclN0ciA9IGRpYWxvZy5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgCisgICAgICAgIEZpbGUgZmlsZSA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoZmlsZVN0ciAhPSBudWxsKSB7CisgICAgICAgICAgICBmaWxlID0gbmV3IEZpbGUoZGlyU3RyLCBmaWxlU3RyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZpbGU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgWUVTID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE5PID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIENBTkNFTCA9IDI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBEaWFsb2dMaXN0ZW5lciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKworICAgICAgICBEaWFsb2cgZkRpYWxvZzsKKyAgICAgICAgQnV0dG9uIGZZZXMsIGZObywgZkNhbmNlbDsKKyAgICAgICAgYnl0ZSBmU3RhdGU7CisKKyAgICAgICAgRGlhbG9nTGlzdGVuZXIoRGlhbG9nIGRpYWxvZywKKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIHllcywKKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIG5vLAorICAgICAgICAgICAgICAgICAgICAgICBCdXR0b24gY2FuY2VsKSB7CisKKyAgICAgICAgICAgIGZEaWFsb2cgPSBkaWFsb2c7CisgICAgICAgICAgICBmWWVzID0geWVzOworICAgICAgICAgICAgZk5vID0gbm87CisgICAgICAgICAgICBmQ2FuY2VsID0gY2FuY2VsOworICAgICAgICAgICAgZlllcy5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGZOby5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGZDYW5jZWwuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBmU3RhdGUgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkgeworCisgICAgICAgICAgICBPYmplY3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCk7CisgICAgICAgICAgICBpZiAoc291cmNlID09IGZZZXMpIHsKKyAgICAgICAgICAgICAgICBmU3RhdGUgPSBZRVM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZk5vKSB7CisgICAgICAgICAgICAgICAgZlN0YXRlID0gTk87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNhbmNlbCkgeworICAgICAgICAgICAgICAgIGZTdGF0ZSA9IENBTkNFTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkRpYWxvZy5kaXNwb3NlKCk7CisgICAgICAgIH0KKworICAgICAgICBieXRlIGdldFN0YXRlKCkgeworCisgICAgICAgICAgICByZXR1cm4gZlN0YXRlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGlzcGxheSBhIGRpYWxvZyB0aGF0IGFza3Mgd2hldGhlciB0aGUgdXNlciB3YW50cyB0bworICAgICAqIHNhdmUgYSBkb2N1bWVudC4gIFBvc3NpYmxlIHJlcG9uc2VzIGFyZSBZZXMsIE5vLCBhbmQKKyAgICAgKiBDYW5jZWwuICBUaGUgcmV0dXJuZWQgdmFsdWUgaW5kaWNhdGVzIHdoaWNoIHJlc3BvbnNlCisgICAgICogd2FzIGNob3Nlbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBieXRlIGFza1NhdmUoRnJhbWUgcGFyZW50LCBTdHJpbmcgZmlsZU5hbWUpIHsKKworICAgICAgICBEaWFsb2cgZGlhbG9nID0gbmV3IERpYWxvZyhwYXJlbnQsIHRydWUpOworICAgICAgICBkaWFsb2cuc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDAsIDEpKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLlNBVkVfTVNHKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuLCBuZXcgT2JqZWN0W10ge2ZpbGVOYW1lfSk7CisgICAgICAgIGRpYWxvZy5hZGQobmV3IExhYmVsKHRleHQsIExhYmVsLkNFTlRFUikpOworICAgICAgICAKKyAgICAgICAgQnV0dG9uIHllcyA9IG5ldyBCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLllFUykpOworICAgICAgICBCdXR0b24gbm8gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5OTykpOworICAgICAgICBCdXR0b24gY2FuY2VsID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuQ0FOQ0VMKSk7CisKKyAgICAgICAgUGFuZWwgcGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuYWRkKHllcyk7CisgICAgICAgIHBhbmVsLmFkZChubyk7CisgICAgICAgIHBhbmVsLmFkZChjYW5jZWwpOworICAgICAgICBkaWFsb2cuYWRkKHBhbmVsKTsKKworICAgICAgICBEaWFsb2dMaXN0ZW5lciBsaXN0ZW5lciA9IG5ldyBEaWFsb2dMaXN0ZW5lcihkaWFsb2csIHllcywgbm8sIGNhbmNlbCk7CisKKyAgICAgICAgZGlhbG9nLnNldFNpemUoMjIwLCAxMzApOworICAgICAgICBkaWFsb2cuc2hvdygpOworCisgICAgICAgIHJldHVybiBsaXN0ZW5lci5nZXRTdGF0ZSgpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dEZpbGVNZW51TWFuYWdlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Bd3RGaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2Q4MDA1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RmlsZU1lbnVNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51SXRlbTsKKworZmluYWwgY2xhc3MgQXd0RmlsZU1lbnVNYW5hZ2VyIGV4dGVuZHMgRmlsZU1lbnVNYW5hZ2VyIHsKKworICAgIHByaXZhdGUgTWVudSBmTWVudTsKKyAgICAKKyAgICBwdWJsaWMgQXd0RmlsZU1lbnVNYW5hZ2VyKE1lbnUgbWVudSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFN0eWxlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdXBlcihhcHBsaWNhdGlvbiwgZG9jdW1lbnQpOworICAgICAgICAKKyAgICAgICAgZk1lbnUgPSBtZW51OworICAgICAgICBjcmVhdGVJdGVtcyhzdXBwb3J0U3R5bGVkRm9ybWF0LCBzdXBwb3J0UGxhaW5Gb3JtYXQpOworICAgICAgICBmTWVudSA9IG51bGw7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBPYmplY3QgYWRkTWVudUl0ZW0oU3RyaW5nIGtleSkgeworCisgICAgICAgIE1lbnVJdGVtIGl0ZW0gPSBSZXNvdXJjZVV0aWxzLmNyZWF0ZU1lbnVJdGVtKGtleSk7CisgICAgICAgIGl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGFkZFNlcGFyYXRvcigpIHsKKyAgICAKKyAgICAgICAgZk1lbnUuYWRkKG5ldyBNZW51SXRlbSgiLSIpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0NvZGVFZGl0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0NvZGVFZGl0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVkZjJlZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQ29kZUVkaXQuamF2YQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OworCitpbXBvcnQgamF2YS5pby5GaWxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsU2V0dGluZ3M7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5Bd3RNZW51QnVpbGRlcjsKKworcHVibGljIGNsYXNzIENvZGVFZGl0IGV4dGVuZHMgRWRpdEFwcGxpY2F0aW9uIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCBUZXh0UGFuZWxTZXR0aW5ncyBmU2V0dGluZ3M7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAwICYmIGFyZ3NbMF0uZXF1YWxzKCItc3dpbmciKSkgeworICAgICAgICAgICAgbmV3IGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vLlN3aW5nQ29kZUVkaXQoYXJncywxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG5ldyBDb2RlRWRpdChhcmdzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBDb2RlRWRpdChTdHJpbmdbXSBhcmdzLCBpbnQgc3RhcnQpIHsKKworICAgICAgICBzdXBlcihUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCksCisgICAgICAgICAgICAgIFRleHREb2N1bWVudC5QTEFJTl9URVhUKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCgxMikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuRkFNSUxZLCAiTW9ub3NwYWNlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZTZXR0aW5ncyA9IFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKTsKKyAgICAgICAgZlNldHRpbmdzLnNldFdyYXBzKGZhbHNlKTsKKyAgICAgICAgZlNldHRpbmdzLmFkZERlZmF1bHRWYWx1ZXMoZGVmYXVsdFN0eWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSBzdGFydCkgeworICAgICAgICAgICAgZG9OZXdXaW5kb3coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gb3BlbmVkQURvY3VtZW50ID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPXN0YXJ0OyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gbnVsbDsKKyAgICAgICAgICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0gVGV4dERvY3VtZW50LmNyZWF0ZUZyb21GaWxlKGZpbGUsIFRleHREb2N1bWVudC5QTEFJTl9URVhUKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZERvY3VtZW50KGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgb3BlbmVkQURvY3VtZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW9wZW5lZEFEb2N1bWVudCkgeworICAgICAgICAgICAgICAgIHF1aXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgRG9jdW1lbnRXaW5kb3cgY3JlYXRlRG9jdW1lbnRXaW5kb3coVGV4dERvY3VtZW50IGRvY3VtZW50KSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBBd3REb2N1bWVudFdpbmRvdyh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bnRheENvbG9yZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnRbXSBtZW51cyA9IHsgQXd0TWVudUJ1aWxkZXIuRURJVCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXd0TWVudUJ1aWxkZXIuQklESSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBd3RNZW51QnVpbGRlci5BQk9VVCB9OworCisgICAgcHVibGljIFRleHREb2N1bWVudCBvcGVuRG9jdW1lbnQoRnJhbWUgZGlhbG9nUGFyZW50KSB7CisgICAgCisgICAgICAgIFN0cmluZyB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5PUEVOX1RJVExFKTsKKyAgICAgICAgCisgICAgICAgIEZpbGUgZmlsZSA9IEF3dERvY3VtZW50V2luZG93LmdldEZpbGVGcm9tRGlhbG9nKG51bGwsIHRpdGxlLCBkaWFsb2dQYXJlbnQsIEZpbGVEaWFsb2cuTE9BRCk7CisgICAgICAgIGlmIChmaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudC5jcmVhdGVGcm9tRmlsZShmaWxlLCBUZXh0RG9jdW1lbnQuUExBSU5fVEVYVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0RvY3VtZW50V2luZG93LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0RvY3VtZW50V2luZG93LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmM2OWYwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRG9jdW1lbnRXaW5kb3cuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK3B1YmxpYyBpbnRlcmZhY2UgRG9jdW1lbnRXaW5kb3cgeworCisgICAgcHVibGljIHZvaWQgZG9OZXcoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkb09wZW4oKTsKKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBkb0Nsb3NlKCk7CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gZG9TYXZlKCk7CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gZG9TYXZlQXMoaW50IGZvcm1hdCk7CisgICAgCisgICAgcHVibGljIHZvaWQgZG9QcmludCgpOworICAgIAorICAgIHB1YmxpYyB2b2lkIHNldFNpemUoaW50IHdkLCBpbnQgaHQpOworICAgIAorICAgIHB1YmxpYyB2b2lkIHNob3coKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXRBcHBsaWNhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0QXBwbGljYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMzYzMGU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0QXBwbGljYXRpb24uamF2YQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIEVkaXRBcHBsaWNhdGlvbiB7CisKKyAgICBwcml2YXRlIENsaXBib2FyZCBmQ2xpcGJvYXJkOworICAgIHByaXZhdGUgaW50IGZEZWZhdWx0Rm9ybWF0OworICAgIHByaXZhdGUgVmVjdG9yIGZXaW5kb3dzID0gbmV3IFZlY3RvcigpOworICAgIHByaXZhdGUgaW50IGZVbnRpdGxlZENvdW50ID0gMDsKKyAgICAKKyAgICBwcm90ZWN0ZWQgRWRpdEFwcGxpY2F0aW9uKENsaXBib2FyZCBjbGlwYm9hcmQsIGludCBkZWZhdWx0Rm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBmQ2xpcGJvYXJkID0gY2xpcGJvYXJkOworICAgICAgICBmRGVmYXVsdEZvcm1hdCA9IGRlZmF1bHRGb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5ldyBkb2N1bWVudHMgYXJlIG5hbWVkICJVbnRpdGxlZCAxIiwgIlVudGl0bGVkIDIiLCBldGMuICBUaGlzCisgICAgICogbWV0aG9kIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIG5hbWUgZm9yIHRoZSBuZXh0IG5ldyBkb2N1bWVudC4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IG5ldyBkb2N1bWVudCBuYW1lCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0TmV4dE5ld05hbWUoKSB7CisKKyAgICAgICAgZlVudGl0bGVkQ291bnQgKz0gMTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuVU5USVRMRURfTVNHKTsKKyAgICAgICAgcmV0dXJuIE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117bmV3IEludGVnZXIoZlVudGl0bGVkQ291bnQpfSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCBDbGlwYm9hcmQgZ2V0Q2xpcGJvYXJkKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZDbGlwYm9hcmQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCk7CisgICAgCisgICAgcHVibGljIGFic3RyYWN0IFRleHREb2N1bWVudCBvcGVuRG9jdW1lbnQoRnJhbWUgZGlhbG9nUGFyZW50KTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgVGV4dERvY3VtZW50IGNyZWF0ZU5ld0RvY3VtZW50KCkgeworICAgIAorICAgICAgICBTdHJpbmcgbmFtZSA9IGdldE5leHROZXdOYW1lKCk7CisgICAgICAgIGludCBmb3JtYXQgPSBmRGVmYXVsdEZvcm1hdDsKKyAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudC5jcmVhdGVFbXB0eShuYW1lLCBmb3JtYXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBkb05ld1dpbmRvdygpIHsKKyAgICAgICAgCisgICAgICAgIGFkZERvY3VtZW50KFRleHREb2N1bWVudC5jcmVhdGVFbXB0eShnZXROZXh0TmV3TmFtZSgpLCBmRGVmYXVsdEZvcm1hdCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBhZGREb2N1bWVudChUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIERvY3VtZW50V2luZG93IHdpbmRvdyA9IGNyZWF0ZURvY3VtZW50V2luZG93KGRvY3VtZW50KTsKKworICAgICAgICB3aW5kb3cuc2V0U2l6ZSg1MDAsIDQwMCk7CisgICAgICAgIHdpbmRvdy5zaG93KCk7CisgICAgICAgIGZXaW5kb3dzLmFkZEVsZW1lbnQod2luZG93KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIGRvY3VtZW50IGZyb20gbGlzdCBvZiBkb2N1bWVudHMuICBRdWl0IGFwcGxpY2F0aW9uIGlmIGxpc3QKKyAgICAgKiBsZW5ndGggZmFsbHMgdG8gemVyby4KKyAgICAgKiBAcGFyYW0gd2luZG93IHdpbmRvdyBvZiB0aGUgZG9jdW1lbnQgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVtb3ZlRG9jdW1lbnRXaW5kb3coRG9jdW1lbnRXaW5kb3cgd2luZG93KSB7CisKKyAgICAgICAgZldpbmRvd3MucmVtb3ZlRWxlbWVudCh3aW5kb3cpOworICAgICAgICBpZiAoZldpbmRvd3MuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBxdWl0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHbyB0aHJvdWdoIGxpc3Qgb2YgZG9jdW1lbnRzIGFuZCBhdHRlbXB0IHRvIGNsb3NlIGVhY2ggZG9jdW1lbnQuCisgICAgICogSWYgYWxsIGRvY3VtZW50cyBjbG9zZSBzdWNjZXNzZnVsbHksIHRoZW4gZXhpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBkb0V4aXQoKSB7CisKKyAgICAgICAgLy8gQ2xvbmUgZldpbmRvd3Mgc2luY2UgaXQgY2FuIGdldCBtb2RpZmllZCB3aGlsZSBiZWluZyB0cmF2ZXJzZWQuCisgICAgICAgIFZlY3RvciB3aW5kb3dzID0gKFZlY3RvcikgZldpbmRvd3MuY2xvbmUoKTsKKworICAgICAgICBpbnQgc2l6ZSA9IHdpbmRvd3Muc2l6ZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgIERvY3VtZW50V2luZG93IHdpbmRvdyA9IChEb2N1bWVudFdpbmRvdykgd2luZG93cy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5kb0Nsb3NlKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBxdWl0IHdpbGwgYmUgY2FsbGVkIHdoZW4gbGFzdCBkb2N1bWVudCByZW1vdmVzIGl0c2VsZgorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGxlZCB3aGVuIGxhc3QgZG9jdW1lbnQgd2luZG93IGNsb3Nlcy4gIERlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICAgKiBjYWxscyBTeXN0ZW0uZXhpdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBxdWl0KCkgeworCisgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdERlbW8uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdERlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNTcyYWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0RGVtby5qYXZhCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBqYXZhLmF3dC5GaWxlRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworCisvKioKKyAqIEVkaXREZW1vIGlzIHRoZSBtYWluIGNsYXNzIGZvciBhIHNpbXBsZSwgbXVsdGlwbGUtZG9jdW1lbnQKKyAqIHN0eWxlZCB0ZXh0IGVkaXRvciwgYnVpbHQgd2l0aCB0aGUgY2xhc3NlcyBpbiB0aGUgdGV4dHBhbmVsCisgKiBhbmQgdGV4dGZyYW1lIHBhY2thZ2VzLgorICogPHA+CisgKiBUbyBydW4gRWRpdERlbW8sIHR5cGU6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogamF2YSBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8gW2ZpbGUxXSBbZmlsZTJdIFsuLi5dCisgKiA8L3ByZT48L2Jsb2NrcXVvdGU+CisgKiB3aGVyZSB0aGUgZmlsZW5hbWVzIGFyZSBmaWxlcyBzYXZlZCB3aXRoIHRoaXMgZGVtby4KKyAqLworcHVibGljIGNsYXNzIEVkaXREZW1vIGV4dGVuZHMgRWRpdEFwcGxpY2F0aW9uIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAwICYmIGFyZ3NbMF0uZXF1YWxzKCItc3dpbmciKSkgeworICAgICAgICAgICAgbmV3IGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vLlN3aW5nRWRpdERlbW8oYXJncywxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG5ldyBFZGl0RGVtbyhhcmdzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBFZGl0RGVtbyhTdHJpbmdbXSBhcmdzLCBpbnQgc3RhcnQpIHsKKworICAgICAgICBzdXBlcihUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCksIAorICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQuU1RZTEVEX1RFWFQpOworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSBzdGFydCkgeworICAgICAgICAgICAgZG9OZXdXaW5kb3coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gb3BlbmVkQURvY3VtZW50ID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPXN0YXJ0OyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnRGcm9tRmlsZShmaWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhZGREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgICAgIG9wZW5lZEFEb2N1bWVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFvcGVuZWRBRG9jdW1lbnQpIHsKKyAgICAgICAgICAgICAgICBxdWl0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBUZXh0RG9jdW1lbnQgZ2V0RG9jdW1lbnRGcm9tRmlsZShGaWxlIGZpbGUpIHsKKyAgICAKKyAgICAgICAgRXhjZXB0aW9uIGV4Y2VwdGlvbiA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudC5jcmVhdGVGcm9tRmlsZShmaWxlLCBUZXh0RG9jdW1lbnQuU1RZTEVEX1RFWFQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFN0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQuY3JlYXRlRnJvbUZpbGUoZmlsZSwgVGV4dERvY3VtZW50LlBMQUlOX1RFWFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gZTI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uIG9wZW5pbmcgZmlsZS4iKTsKKyAgICAgICAgZXhjZXB0aW9uLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEb2N1bWVudFdpbmRvdyBjcmVhdGVEb2N1bWVudFdpbmRvdyhUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgQXd0RG9jdW1lbnRXaW5kb3codGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBUZXh0RG9jdW1lbnQgb3BlbkRvY3VtZW50KEZyYW1lIGRpYWxvZ1BhcmVudCkgeworICAgIAorICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuT1BFTl9USVRMRSk7CisgICAgICAgIEZpbGUgZmlsZSA9IEF3dERvY3VtZW50V2luZG93LmdldEZpbGVGcm9tRGlhbG9nKG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVEaWFsb2cuTE9BRCk7CisgICAgICAgIGlmIChmaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXREb2N1bWVudEZyb21GaWxlKGZpbGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0b3JSZXNvdXJjZXMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdG9yUmVzb3VyY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDk1ZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXRvclJlc291cmNlcy5qYXZhCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCitwdWJsaWMgZmluYWwgY2xhc3MgRWRpdG9yUmVzb3VyY2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLy8gbWVudSBuYW1lcyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEUgPSAiRmlsZSI7CisKKyAgICAvLyBmaWxlIG1lbnUgaXRlbXMgLSB2YWx1ZXMgYXJlIE1lbnVEYXRhIGluc3RhbmNlcworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5FVyA9ICJOZXciOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5FV19XSU5ET1cgPSAiTmV3IFdpbmRvdyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFTiA9ICJPcGVuLi4uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFID0gIlNhdmUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfQVMgPSAiU2F2ZSBBcy4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0FWRV9BU19TVFlMRUQgPSAiU2F2ZSBBcyBTdHlsZWQgVGV4dC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0FWRV9BU19URVhUID0gIlNhdmUgQXMgUGxhaW4gVGV4dC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xPU0UgPSAiQ2xvc2UiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBSSU5UID0gIlByaW50IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFWElUID0gIkV4aXQiOworCisgICAgLy8gYnV0dG9uIGxhYmVscyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFlFUyA9ICJZZXMiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5PID0gIk5vIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDQU5DRUwgPSAiQ2FuY2VsIjsKKworICAgIC8vIG1lc3NhZ2Ugc3RyaW5ncyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfTVNHID0gIlNhdmUgezB9IGJlZm9yZSBjbG9zaW5nPyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5USVRMRURfTVNHID0gIlVudGl0bGVkIHswfSI7CisKKyAgICAvLyB3aW5kb3cgYW5kIGRpYWxvZyB0aXRsZXMgLSB2YWx1ZXMgYXJlIFN0cmluZ3MKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVOX1RJVExFID0gIk9wZW4gRG9jdW1lbnQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfVElUTEUgPSAiU2F2ZSBBcyI7CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCByZXR1cm5zIGEgdHdvLWVsZW1lbnQKKyAgICAgKiBPYmplY3QgYXJyYXkuICBUaGUgZmlyc3QgZWxlbWVudCBpcyBuYW1lLCB0aGUKKyAgICAgKiBzZWNvbmQgaXMgYSBNZW51RGF0YSBpbnN0YW5jZSB3aXRoIHRoZSBnaXZlbgorICAgICAqIHNob3J0Y3V0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VFbnRyeShTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBzaG9ydEN1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtleUNvZGUpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUsIHNob3J0Q3V0LCBrZXlDb2RlKSB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0aGF0IHJldHVybnMgYSB0d28tZWxlbWVudAorICAgICAqIE9iamVjdCBhcnJheS4gIFRoZSBmaXJzdCBlbGVtZW50IGlzIG5hbWUsIHRoZQorICAgICAqIHNlY29uZCBpcyBhIE1lbnVEYXRhIGluc3RhbmNlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VFbnRyeShTdHJpbmcgbmFtZSkgeworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10geyBuYW1lLCBuZXcgTWVudURhdGEobmFtZSkgfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCByZXR1cm5zIGEgdHdvLWVsZW1lbnQKKyAgICAgKiBPYmplY3QgYXJyYXkgaW4gd2hpY2ggYm90aCBlbGVtZW50cyBhcmUgb2JqLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGR1cGxpY2F0ZShPYmplY3Qgb2JqKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG9iaiwgb2JqIH07CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIGR1cGxpY2F0ZShGSUxFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShZRVMpLAorICAgICAgICAgICAgZHVwbGljYXRlKE5PKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShDQU5DRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNBVkVfTVNHKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTQVZFX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShPUEVOX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShVTlRJVExFRF9NU0cpLAorICAgICAgICAgICAgbWFrZUVudHJ5KE5FVywgJ24nLCBLZXlFdmVudC5WS19OKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShORVdfV0lORE9XKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShPUEVOLCAnbycsIEtleUV2ZW50LlZLX08pLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkUsICdzJywgS2V5RXZlbnQuVktfUyksCisgICAgICAgICAgICBtYWtlRW50cnkoU0FWRV9BUyksCisgICAgICAgICAgICBtYWtlRW50cnkoU0FWRV9BU19TVFlMRUQpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkVfQVNfVEVYVCksCisgICAgICAgICAgICBtYWtlRW50cnkoQ0xPU0UpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFBSSU5UKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShFWElUKSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0ZpbGVNZW51TWFuYWdlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9GaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNzBjZjAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9GaWxlTWVudU1hbmFnZXIuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBjcmVhdGVzIGEgRmlsZSBtZW51IGFuZCBtYW5hZ2VzIHVzZXIgaW50ZXJhY3Rpb25zCisgKiB3aXRoIHRoZSBtZW51LgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRmlsZU1lbnVNYW5hZ2VyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEVkaXRBcHBsaWNhdGlvbiBmQXBwbGljYXRpb247CisgICAgcHJpdmF0ZSBEb2N1bWVudFdpbmRvdyBmRG9jdW1lbnRXaW5kb3c7CisgICAgcHJpdmF0ZSBPYmplY3QgZk5ldywgZk5ld1dpbmRvdywgZk9wZW4sIGZTYXZlOworICAgIHByaXZhdGUgT2JqZWN0IGZTYXZlQXNTdHlsZWQsIGZTYXZlQXNUZXh0LCBmQ2xvc2UsIGZQcmludCwgZkV4aXQ7CisKKyAgICBwcm90ZWN0ZWQgRmlsZU1lbnVNYW5hZ2VyKEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCkgeworCisgICAgICAgIGZBcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uOworICAgICAgICBmRG9jdW1lbnRXaW5kb3cgPSBkb2N1bWVudDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgY3JlYXRlSXRlbXMoYm9vbGVhbiBzdXBwb3J0U3R5bGVkRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoIXN1cHBvcnRTdHlsZWRGb3JtYXQgJiYgIXN1cHBvcnRQbGFpbkZvcm1hdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTXVzdCBzdXBwb3J0IGF0IGxlYXN0IG9uZSBmb3JtYXQuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZOZXcgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuTkVXKTsKKyAgICAgICAgZk5ld1dpbmRvdyA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5ORVdfV0lORE9XKTsKKyAgICAgICAgCisgICAgICAgIGFkZFNlcGFyYXRvcigpOworCisgICAgICAgIGZPcGVuID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLk9QRU4pOworCisgICAgICAgIGZTYXZlID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkUpOworICAgICAgICAKKyAgICAgICAgaWYgKHN1cHBvcnRTdHlsZWRGb3JtYXQpIHsKKyAgICAgICAgICAgIGlmIChzdXBwb3J0UGxhaW5Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBmU2F2ZUFzU3R5bGVkID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkVfQVNfU1RZTEVEKTsKKyAgICAgICAgICAgICAgICBmU2F2ZUFzVGV4dCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTX1RFWFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZlNhdmVBc1N0eWxlZCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZTYXZlQXNUZXh0ID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkVfQVMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgZkNsb3NlID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLkNMT1NFKTsKKyAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgIGZQcmludCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5QUklOVCk7CisgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICBmRXhpdCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5FWElUKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IE9iamVjdCBhZGRNZW51SXRlbShTdHJpbmcga2V5KTsKKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGFkZFNlcGFyYXRvcigpOworICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkgeworCisgICAgICAgIE9iamVjdCBzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKTsKKworICAgICAgICBpZiAoc291cmNlID09IGZOZXcpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb05ldygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmTmV3V2luZG93KSB7CisgICAgICAgICAgICBmQXBwbGljYXRpb24uZG9OZXdXaW5kb3coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZk9wZW4pIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb09wZW4oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNsb3NlKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9DbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU2F2ZSkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvU2F2ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU2F2ZUFzU3R5bGVkKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9TYXZlQXMoVGV4dERvY3VtZW50LlNUWUxFRF9URVhUKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZlNhdmVBc1RleHQpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb1NhdmVBcyhUZXh0RG9jdW1lbnQuUExBSU5fVEVYVCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZQcmludCkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvUHJpbnQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkV4aXQpIHsKKyAgICAgICAgICAgIGZBcHBsaWNhdGlvbi5kb0V4aXQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBldmVudCBzb3VyY2U6ICIgKyBzb3VyY2UpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vTWVudURhdGEuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vTWVudURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZDM0NTljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9NZW51RGF0YS5qYXZhCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworcHVibGljIGZpbmFsIGNsYXNzIE1lbnVEYXRhIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBTdHJpbmcgZk5hbWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZIYXNTaG9ydGN1dDsKKyAgICBwcml2YXRlIGNoYXIgZlNob3J0Y3V0OworICAgIHByaXZhdGUgaW50IGZTaG9ydGN1dEtleUNvZGU7CisKKyAgICBwdWJsaWMgTWVudURhdGEoU3RyaW5nIG5hbWUpIHsKKworICAgICAgICBmTmFtZSA9IG5hbWU7CisgICAgICAgIGZIYXNTaG9ydGN1dCA9IGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBNZW51RGF0YShTdHJpbmcgbmFtZSwgY2hhciBjaCwgaW50IGtleUNvZGUpIHsKKworICAgICAgICBmTmFtZSA9IG5hbWU7CisgICAgICAgIGZIYXNTaG9ydGN1dCA9IHRydWU7CisgICAgICAgIGZTaG9ydGN1dCA9IGNoOworICAgICAgICBmU2hvcnRjdXRLZXlDb2RlID0ga2V5Q29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZOYW1lOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIGdldFNob3J0Y3V0KCkgeworCisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZTaG9ydGN1dDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRTaG9ydGN1dEtleUNvZGUoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmU2hvcnRjdXRLZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc1Nob3J0Y3V0KCkgeworCisgICAgICAgIHJldHVybiBmSGFzU2hvcnRjdXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vUmVzb3VyY2VVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9SZXNvdXJjZVV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzE3YTY2MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vUmVzb3VyY2VVdGlscy5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0Lk1lbnVJdGVtOworaW1wb3J0IGphdmEuYXd0Lk1lbnVTaG9ydGN1dDsKKworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFV0aWxpdHkgY2xhc3MgZm9yIGRlYWxpbmcgd2l0aCByZXNvdXJjZSBkYXRhLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUmVzb3VyY2VVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIEJVTkRMRTsKKyAgICBzdGF0aWMgeworICAgICAgICBTdHJpbmcgYnVuZGxlTmFtZSA9ICJjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdG9yUmVzb3VyY2VzIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJVTkRMRSA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZShidW5kbGVOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBsb2FkICIgKyBidW5kbGVOYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyAgRXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICBCVU5ETEUgPSBuZXcgRWRpdG9yUmVzb3VyY2VzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTdHJpbmcoU3RyaW5nIGtleSkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gQlVORExFLmdldFN0cmluZyhrZXkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4ga2V5OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBNZW51RGF0YSBnZXRNZW51RGF0YShTdHJpbmcga2V5KSB7CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gKE1lbnVEYXRhKSBCVU5ETEUuZ2V0T2JqZWN0KGtleSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWVudURhdGEoa2V5KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBNZW51SXRlbSBjcmVhdGVNZW51SXRlbShTdHJpbmcga2V5KSB7CisKKyAgICAgICAgTWVudURhdGEgbWVudURhdGEgPSBnZXRNZW51RGF0YShrZXkpOworCisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBNZW51U2hvcnRjdXQgc2hvcnRjdXQgPSBuZXcgTWVudVNob3J0Y3V0KG1lbnVEYXRhLmdldFNob3J0Y3V0KCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCksIHNob3J0Y3V0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1N5bnRheENvbG9yZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vU3ludGF4Q29sb3Jlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU4YWE4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1N5bnRheENvbG9yZXIuamF2YQpAQCAtMCwwICsxLDI4NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTktMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRleHRGcmFtZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LkNvbGxhdGlvbktleTsKK2ltcG9ydCBqYXZhLnRleHQuQ29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworLyoqCisgKiBTeW50YXhDb2xvcmVyIGlzIGEgVGV4dFBhbmVsTGlzdGVuZXIgdGhhdCBhcHBsaWVzIGEgc3R5bGUKKyAqIHRvIGEgc2V0IG9mIHdvcmRzIGluIHRoZSBUZXh0UGFuZWwuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBTeW50YXhDb2xvcmVyIGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQ29sb3JlciB7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICBwcml2YXRlIGludCBmU3RhcnQ7CisgICAgICAgIHByaXZhdGUgSGFzaHRhYmxlIGZTdHlsZU1hcDsKKyAgICAgICAgcHJpdmF0ZSBDb2xsYXRvciBmQ29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkJyZWFrSXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZlRleHQ7CisgICAgICAgIHByaXZhdGUgaW50IGZDdXJyZW50U3RhcnQ7CisgICAgICAgIHByaXZhdGUgaW50IGZDdXJyZW50TGltaXQ7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZDdXJyZW50U3R5bGU7CisgICAgICAgIAorICAgICAgICBDb2xvcmVyKEhhc2h0YWJsZSBzdHlsZXMpIHsKKworICAgICAgICAgICAgZlN0eWxlTWFwID0gbmV3IEhhc2h0YWJsZShzdHlsZXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gZSA9IHN0eWxlcy5rZXlzKCk7CisgICAgICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIGZTdHlsZU1hcC5wdXQoZkNvbGxhdG9yLmdldENvbGxhdGlvbktleShrKSwgc3R5bGVzLmdldChrKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgc2V0KENoYXJhY3Rlckl0ZXJhdG9yIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZTdGFydCA9IHN0YXJ0OworCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKGxpbWl0LXN0YXJ0KTsKKyAgICAgICAgICAgIGZvciAoY2hhciBjPXRleHQuc2V0SW5kZXgoc3RhcnQpOyB0ZXh0LmdldEluZGV4KCkgIT0gbGltaXQ7IGM9dGV4dC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dCA9IHNiLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBmQ3VycmVudFN0YXJ0ID0gZkN1cnJlbnRMaW1pdCA9IDA7CisgICAgICAgICAgICBmQ3VycmVudFN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZCcmVha0l0ZXIuc2V0VGV4dChmVGV4dCk7CisgICAgICAgICAgICBmQnJlYWtJdGVyLmZpcnN0KCk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBib29sZWFuIG5leHQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChmQ3VycmVudExpbWl0ID09IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZlRleHQgPSBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkN1cnJlbnRTdGFydCA9IGZDdXJyZW50TGltaXQ7CisgICAgICAgICAgICBmQ3VycmVudExpbWl0ID0gZkJyZWFrSXRlci5uZXh0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB3b3JkID0gZlRleHQuc3Vic3RyaW5nKGZDdXJyZW50U3RhcnQsIGZDdXJyZW50TGltaXQpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGNrID0gZkNvbGxhdG9yLmdldENvbGxhdGlvbktleSh3b3JkKTsKKyAgICAgICAgICAgIGZDdXJyZW50U3R5bGUgPSAoQXR0cmlidXRlTWFwKSBmU3R5bGVNYXAuZ2V0KGNrKTsKKyAgICAgICAgICAgIGlmIChmQ3VycmVudFN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmQ3VycmVudFN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ3VycmVudFN0YXJ0ICsgZlN0YXJ0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgY3VycmVudExpbWl0KCkgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50TGltaXQgKyBmU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEF0dHJpYnV0ZU1hcCBjdXJyZW50U3R5bGUoKSB7CisgICAgICAgICAgICByZXR1cm4gZkN1cnJlbnRTdHlsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBmQnJlYWtJdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICBwcml2YXRlIENvbG9yZXIgZkNvbG9yZXI7CisgICAgcHJpdmF0ZSBib29sZWFuIGZNb2RpZnlpbmcgPSBmYWxzZTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdEtleXdvcmRTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGZNb2RpZmllckNhY2hlOworICAgIAorICAgIHB1YmxpYyBTeW50YXhDb2xvcmVyKCkgeworICAgICAgICAKKyAgICAgICAgdGhpcyhudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN5bnRheENvbG9yZXIoTVRleHRQYW5lbCBwYW5lbCkgeworICAgICAgICAKKyAgICAgICAgSGFzaHRhYmxlIGh0ID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgICAgIC8vVW5jb21tZW50IHRoaXMgdG8gbWFrZSBrZXl3b3JkcyBhcHBlYXIgcmlnaHQtdG8tbGVmdCEKKyAgICAgICAgLy9mRGVmYXVsdEtleXdvcmRTdHlsZSA9IGZEZWZhdWx0S2V5d29yZFN0eWxlLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLkJJRElfRU1CRURESU5HLCAKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigtMSkpOworICAgICAgICAKKyAgICAgICAgZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBmRGVmYXVsdEtleXdvcmRTdHlsZS5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKTsKKyAgICAgICAgZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBmRGVmYXVsdEtleXdvcmRTdHlsZS5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IuYmx1ZSk7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBqYXZhV29yZHMgPSB7ImFic3RyYWN0IiAsICJib29sZWFuIiwgImJyZWFrIiwgImJ5dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5dmFsdWUiLCAiY2FzZSIsICJjYXN0IiwgImRlZmF1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvIiwgImRvdWJsZSIsICJlbHNlIiwgImV4dGVuZHMiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWxzZSIsICJmaW5hbCIsICJnb3RvIiwgImlmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbXBsZW1lbnRzIiwgImltcG9ydCIsICJpbm5lciIsICJpbnN0YW5jZW9mIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnQiLCAib3BlcmF0b3IiLCAib3V0ZXIiLCAicGFja2FnZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmF0ZSIsICJwcm90ZWN0ZWQiLCAicHVibGljIiwgInJlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN5bmNocm9uaXplZCIsICJ0aGlzIiwgInRocm93IiwgInRocm93cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNpZW50IiwgInRydWUiLCAidHJ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXRjaCIsICJjaGFyIiwgImNvbnN0IiwgImNvbnRpbnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaW5hbGx5IiwgImZsb2F0IiwgImZvciIsICJmdXR1cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdlbmVyaWMiLCAiaW50ZXJmYWNlIiwgImxvbmciLCAibmF0aXZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZXciLCAibnVsbCIsICJyZXR1cm4iLCAic2hvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXRpYyIsICJzdXBlciIsICJzd2l0Y2giLCAidmFyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2b2lkIiwgInZvbGF0aWxlIiwgIndoaWxlIiwgImNsYXNzIn07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgamF2YVdvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBodC5wdXQoamF2YVdvcmRzW2ldLCBmRGVmYXVsdEtleXdvcmRTdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZDb2xvcmVyID0gbmV3IENvbG9yZXIoaHQpOworICAgICAgICAKKyAgICAgICAgaWYgKHBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IHBhbmVsLmdldFRleHQoKTsKKyAgICAgICAgICAgIGNvbG9yUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSwgdGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpLCBwYW5lbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZNb2RpZmllckNhY2hlID0gbmV3IEhhc2h0YWJsZSgyKTsKKyAgICAgICAgZk1vZGlmaWVyQ2FjaGUucHV0KGZEZWZhdWx0S2V5d29yZFN0eWxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKGZEZWZhdWx0S2V5d29yZFN0eWxlKSk7CisgICAgICAgIGZNb2RpZmllckNhY2hlLnB1dChBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGUpIHsKKworICAgICAgICBpZiAoZk1vZGlmeWluZykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gKE1UZXh0UGFuZWwpIGUuZ2V0U291cmNlKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBNQ29uc3RUZXh0IHRleHQgPSBwYW5lbC5nZXRUZXh0KCk7CisgICAgICAgIGludCBzdGFydCA9IHRleHQuZGFtYWdlZFJhbmdlU3RhcnQoKTsKKyAgICAgICAgaW50IGxpbWl0ID0gdGV4dC5kYW1hZ2VkUmFuZ2VMaW1pdCgpOworICAgICAgICBpZiAoc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0SXRlciA9IHRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIGZCcmVha0l0ZXIuc2V0VGV4dCh0ZXh0SXRlcik7CisgICAgICAgIGlmIChzdGFydCA+IDApIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZkJyZWFrSXRlci5sYXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmQnJlYWtJdGVyLmZvbGxvd2luZyhzdGFydC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0ID0gZkJyZWFrSXRlci5wcmV2aW91cygpOworICAgICAgICB9CisgICAgICAgIGlmIChsaW1pdCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGZCcmVha0l0ZXIuZm9sbG93aW5nKGxpbWl0KTsKKyAgICAgICAgICAgIC8vaW50IGw7CisgICAgICAgICAgICBpZiAoKGZCcmVha0l0ZXIucHJldmlvdXMoKSkgPD0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICBsaW1pdCA9IGZCcmVha0l0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTW9kaWZ5aW5nID0gdHJ1ZTsKKyAgICAgICAgY29sb3JSYW5nZShzdGFydCwgbGltaXQsIHRleHRJdGVyLCBwYW5lbCk7CisgICAgICAgIGZNb2RpZnlpbmcgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNvbG9yUmFuZ2UoZmluYWwgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHRJdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGZDb2xvcmVyLnNldCh0ZXh0SXRlciwgc3RhcnQsIGxpbWl0KTsKKworICAgICAgICBNQ29uc3RUZXh0IG9sZFRleHQgPSBwYW5lbC5nZXRUZXh0KCk7CisgICAgICAgIE1UZXh0IG5ld1RleHQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGZDb2xvcmVyLm5leHQoKSkgeworCisgICAgICAgICAgICBpbnQgcmFuZ2VTdGFydCA9IGZDb2xvcmVyLmN1cnJlbnRTdGFydCgpOworICAgICAgICAgICAgaW50IHJhbmdlTGltaXQgPSBmQ29sb3Jlci5jdXJyZW50TGltaXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZkNvbG9yZXIuY3VycmVudFN0eWxlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvbGRUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocmFuZ2VTdGFydCkgPCByYW5nZUxpbWl0IHx8CisgICAgICAgICAgICAgICAgICAgIG9sZFRleHQuY2hhcmFjdGVyU3R5bGVBdChyYW5nZVN0YXJ0KSAhPSBzdHlsZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IGNzdGFydCA9IHJhbmdlU3RhcnQtc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IGNsaW1pdCA9IHJhbmdlTGltaXQtc3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKG5ld1RleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBuZXdUZXh0ID0gbmV3IFN0eWxlZFRleHQob2xkVGV4dCwgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2QgPSAoU3R5bGVNb2RpZmllcikgZk1vZGlmaWVyQ2FjaGUuZ2V0KHN0eWxlKTsKKyAgICAgICAgICAgICAgICBuZXdUZXh0Lm1vZGlmeUNoYXJhY3RlclN0eWxlcyhjc3RhcnQsIGNsaW1pdCwgbW9kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG5ld1RleHQgIT0gbnVsbCkgeworICAgICAgICAKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IHBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkTGltaXQgPSBwYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFuZWwucmVwbGFjZVJhbmdlKG5ld1RleHQsIHN0YXJ0LCBsaW1pdCk7ICAgICAgICAgICAgCisgICAgCisgICAgICAgICAgICBwYW5lbC5zZWxlY3Qob2xkU3RhcnQsIG9sZExpbWl0KTsKKyAgICAgICAgICAgIGlmIChvbGRTdGFydCA9PSBvbGRMaW1pdCkgeworICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kID0gKFN0eWxlTW9kaWZpZXIpIGZNb2RpZmllckNhY2hlLmdldChBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIAorICAgICAgICBUZXh0RnJhbWUgZiA9IG5ldyBUZXh0RnJhbWUoKTsKKyAgICAgICAgZi5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZi5zZXRTaXplKDQwMCwgMzAwKTsKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGYuZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIHBhbmVsLmFkZExpc3RlbmVyKG5ldyBTeW50YXhDb2xvcmVyKHBhbmVsKSk7CisgICAgICAgIGYuc2hvdygpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1RleHREb2N1bWVudC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9UZXh0RG9jdW1lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NWJlM2I5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9UZXh0RG9jdW1lbnQuamF2YQpAQCAtMCwwICsxLDM0OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5pby4qOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvKioKKyAqIEEgVGV4dERvY3VtZW50IGhhbmRsZXMgdGhlIGFzc29jaWF0aW9uIGJldHdlZW4gYSBmaWxlIG9uIGRpc2sKKyAqIGFuZCBhIFRleHRQYW5lbC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRleHREb2N1bWVudCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVUZfU0laRSA9IDEwMjQ7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZlRpdGxlOworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIEZpbGUgZkZpbGU7CisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWwgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBpc01vZGlmaWVkID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnQgZkZvcm1hdCA9IFNUWUxFRF9URVhUOworICAgIAorICAgIHByaXZhdGUgVGV4dERvY3VtZW50KFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmb3JtYXQpIHsKKyAgICAgICAgCisgICAgICAgIGZUaXRsZSA9IHRpdGxlOworICAgICAgICBmVGV4dCA9IHRleHQ7CisgICAgICAgIGZGaWxlID0gZmlsZTsKKyAgICAgICAgc2V0Rm9ybWF0KGZvcm1hdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFRF9URVhUID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQTEFJTl9URVhUID0gMTsKKyAgICAKKyAgICAvKiogCisgICAgICogUmV0dXJuIGEgbmV3IFRleHREb2N1bWVudCB3aXRoIG5vIGFzc29jaWF0ZWQgZmlsZSBhbmQKKyAgICAgKiBlbXB0eSB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dERvY3VtZW50IGNyZWF0ZUVtcHR5KFN0cmluZyB0aXRsZSwgaW50IGZvcm1hdCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBUZXh0RG9jdW1lbnQodGl0bGUsIG5ldyBTdHlsZWRUZXh0KCksIG51bGwsIGZvcm1hdCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIFRleHREb2N1bWVudCBjcmVhdGVkIGZyb20gdGhlIGNvbnRlbnRzIG9mIHRoZSBnaXZlbgorICAgICAqIGZpbGUuICBUaGlzIG1ldGhvZCBtYXkgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBmaWxlIGNhbm5vdAorICAgICAqIGJlIHJlYWQuICBJbiBwYXJ0aWN1bGFyLCBpZiB0aGUgZm9ybWF0IGlzIGdpdmVuIGFzIFNUWUxFRF9URVhUCisgICAgICogYnV0IHRoZSBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYSBzZXJpYWxpemVkIE1Db25zdFRleHQsIAorICAgICAqIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dERvY3VtZW50IGNyZWF0ZUZyb21GaWxlKEZpbGUgZmlsZSwgaW50IGZvcm1hdCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBpZiAoZm9ybWF0ICE9IFNUWUxFRF9URVhUICYmIGZvcm1hdCAhPSBQTEFJTl9URVhUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGZvcm1hdCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBNQ29uc3RUZXh0IHRleHQ7CisgICAgICAgIGlmIChmb3JtYXQgPT0gU1RZTEVEX1RFWFQpIHsKKyAgICAgICAgICAgIHRleHQgPSByZWFkTVRleHQoZmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXh0ID0gcmVhZE1UZXh0RnJvbVRleHRGaWxlKGZpbGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQgPSBuZXcgVGV4dERvY3VtZW50KGZpbGUuZ2V0TmFtZSgpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGRvY3VtZW50J3MgdGV4dCBkaWZmZXJzIGZyb20gdGhlIGNvbnRlbnRzCisgICAgICogb2YgaXRzIGZpbGUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpc01vZGlmaWVkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZUZXh0UGFuZWwuaXNNb2RpZmllZCgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgTVRleHRQYW5lbCB0aGF0IHdpbGwgYmUgdXNlZCB0byBlZGl0IHRoZSBkb2N1bWVudCdzCisgICAgICogdGV4dC4gIFRoZSBkb2N1bWVudCdzIHRleHQgYmVjb21lcyB0aGUgY29udGVudHMgb2YgdGhlCisgICAgICogTVRleHRQYW5lbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKworICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dCA9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpOworICAgICAgICAgICAgaXNNb2RpZmllZCA9IGZUZXh0UGFuZWwuaXNNb2RpZmllZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRUZXh0KGZUZXh0KTsKKyAgICAgICAgICAgIGZUZXh0ID0gbnVsbDsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0TW9kaWZpZWQoaXNNb2RpZmllZCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmNsZWFyQ29tbWFuZExvZygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBGaWxlIGdldEZpbGUoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmRmlsZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZG9jdW1lbnQncyBmaWxlLiAgVGhlIGRvY3VtZW50J3MgdGl0bGUgd2lsbAorICAgICAqIGNoYW5nZSB0byB0aGUgZmlsZSBuYW1lLiAgVGhlIGZpbGUgY2Fubm90IGJlIG51bGwuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RmlsZShGaWxlIGZpbGUpIHsKKyAgICAgICAgCisgICAgICAgIGZGaWxlID0gZmlsZTsKKyAgICAgICAgZlRpdGxlID0gZmlsZS5nZXROYW1lKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgZm9ybWF0IG9mIHRoaXMgZG9jdW1lbnQuICBUaGUgZm9ybWF0IGRldGVybWluZXMKKyAgICAgKiB3aGV0aGVyIHRoZSBkb2N1bWVudCB3aWxsIGJlIHdyaXR0ZW4gdG8gZmlsZXMgYXMgc3R5bGVkCisgICAgICogdGV4dCBvciBwbGFpbiBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdChpbnQgZm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoZm9ybWF0ICE9IFNUWUxFRF9URVhUICYmIGZvcm1hdCAhPSBQTEFJTl9URVhUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGZvcm1hdCIpOworICAgICAgICB9CisgICAgICAgIGZGb3JtYXQgPSBmb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZm9ybWF0IG9mIHRoaXMgZG9jdW1lbnQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXQoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkZvcm1hdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV3JpdGUgdGhlIGRvY3VtZW50J3MgdGV4dCB0byBpdHMgZmlsZS4gIElmIHRoZSBkb2N1bWVudCBkb2VzCisgICAgICogbm90IGhhdmUgYW4gYXNzb2NpYXRlZCBmaWxlIHRoZW4gdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNhdmVBcy4gIFRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiB0aGUgc2F2ZSBvcGVyYXRpb24gc3VjY2VlZHMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gc2F2ZSgpIHsKKworICAgICAgICBpZiAoZkZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkNhbid0IHNhdmUgd2l0aG91dCBhIGZpbGUuIik7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSBmRm9ybWF0PT1TVFlMRURfVEVYVD8gd3JpdGVNVGV4dChmRmlsZSwgdGV4dCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVQbGFpbk1UZXh0KGZGaWxlLCB0ZXh0KTsKKyAgICAgICAgaWYgKHN1Y2Nlc3MgJiYgZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybiB0aGlzIGRvY3VtZW50J3Mgc3R5bGVkIHRleHQuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dFBhbmVsLmdldFRleHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRpdGxlIG9mIHRoaXMgZG9jdW1lbnQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUaXRsZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmVGl0bGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRleHQgc2VyaWFsaXplZCBpbiB0aGUgZ2l2ZW4gZmlsZS4KKyAgICAgKiBJbiBjYXNlIG9mIGFuIGVycm9yIHJldHVybiBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE1Db25zdFRleHQgcmVhZE1UZXh0KEZpbGUgZmlsZSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGluU3RyZWFtID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpblN0cmVhbSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5TdHJlYW0pOworCisgICAgICAgICAgICByZXR1cm4gKE1Db25zdFRleHQpIG9ialN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBpZiAoaW5TdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGluU3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWQgdGhlIGdpdmVuIGZpbGUgYXMgYSBwbGFpbiB0ZXh0IGZpbGUsIGFuZCByZXR1cm4gaXRzCisgICAgICogY29udGVudHMgYXMgYW4gTUNvbnN0VGV4dC4gIFRoZSBjaGFyYWN0ZXIgYW5kIHBhcmFncmFwaCBzdHlsZXMgaW4gCisgICAgICogdGhlIHJldHVybmVkIHRleHQgd2lsbCBiZSBFTVBUWV9BVFRSSUJVVEVfTUFQLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE1Db25zdFRleHQgcmVhZE1UZXh0RnJvbVRleHRGaWxlKEZpbGUgZmlsZSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpbiA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW4gPSBuZXcgRmlsZVJlYWRlcihmaWxlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltCVUZfU0laRV07CisgICAgICAgICAgICBpbnQgcmVhZDsKKyAgICAgICAgICAgIHdoaWxlICgocmVhZD1pbi5yZWFkKGJ1ZiwgMCwgYnVmLmxlbmd0aCkpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGxlbiwgbGVuLCBidWYsIDAsIHJlYWQsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKGluICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gc2F2ZSB0aGUgZ2l2ZW4gdGV4dCBpbiB0aGUgZ2l2ZW4gZmlsZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHdyaXRlTVRleHQoRmlsZSBmaWxlLCBNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworICAgICAgICBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdXRTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKG91dFN0cmVhbSk7CisKKyAgICAgICAgICAgIG9ialN0cmVhbS53cml0ZU9iamVjdCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmIChvdXRTdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG91dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgaWYgKGVycm9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgZ2l2ZW4gTUNvbnN0VGV4dCB0byB0aGUgZ2l2ZW4gZmlsZSBhcyBwbGFpbiB0ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gd3JpdGVQbGFpbk1UZXh0KEZpbGUgZmlsZSwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKyAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG91dFN0cmVhbSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0U3RyZWFtID0gbmV3IEZpbGVXcml0ZXIoZmlsZSk7CisgICAgICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbQlVGX1NJWkVdOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IE1hdGgubWluKGxlbmd0aC1zdGFydCwgYnVmLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdGV4dC5leHRyYWN0Q2hhcnMoc3RhcnQsIHN0YXJ0K2NvdW50LCBidWYsIDApOworICAgICAgICAgICAgICAgIG91dFN0cmVhbS53cml0ZShidWYsIDAsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBzdGFydCArPSBjb3VudDsKKyAgICAgICAgICAgIH0gd2hpbGUgKHN0YXJ0IDwgbGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBpZiAob3V0U3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBvdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3Y2U4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+PCEtLSAgQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKworPHRpdGxlPkM6SUNVNEogLmxhbmcgUGFja2FnZSBPdmVydmlldzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPHA+UHJvdmlkZXMgRWRpdERlbW8sIGEgc2ltcGxlLCBtdWx0aXBsZS1kb2N1bWVudCBzdHlsZWQgdGV4dCBlZGl0b3IsIGJ1aWx0IHdpdGggdGhlIHJpY2h0ZXh0IGNsYXNzZXMgaW4gdGhlIHRleHRwYW5lbCBhbmQgdGV4dGZyYW1lIHBhY2thZ2VzLjwvcD4KKworPHA+VG8gcnVuIHRoZSBkZW1vLCB0eXBlOiAKKzx0dD48YmxvY2txdW90ZT4gIGphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0RGVtbyBbLXN3aW5nXSBbZmlsZV0qPC9ibG9ja3F1b3RlPgorSXQgd2lsbCB1c2UgYSBTd2luZyBHVUkgaWYgPGNvZGU+LXN3aW5nPC9jb2RlPiBpcyBwcmVzZW50LCBvdGhlcndpc2UgaXQgd2lsbCB1c2UgYW4gQVdUIEdVSS4gIE9uZSBvciBtb3JlIDxjb2RlPmZpbGU8L2NvZGU+IGFyZ3VtZW50cyBjYW4gYmUgcHJlc2VudCwgdGhlc2UgbXVzdCBiZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIHdpdGggdGhlIEVkaXREZW1vLiAgQSBzZXBhcmF0ZSB3aW5kb3cgd2lsbCBiZSBvcGVuZWQgZm9yIGVhY2ggZmlsZS48L3A+CisKKzxwPk90aGVyIGNsYXNzZXMgaW4gdGhpcyBwYWNrYWdlIGFyZSBzdXBwb3J0aW5nIGNsYXNzZXMgZm9yIHRoZSBFZGl0RGVtby48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGE3MjAxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YgpAQCAtMCwwICsxLDEzIEBACitNYWluLUNsYXNzOiBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8KK01hbmlmZXN0LVZlcnNpb246IDEuMAorU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIGZvciBKYXZhIFJpY2hFZGl0CitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDIuNgorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YSBSaWNoRWRpdAorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMi42CitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCisKK05hbWU6IGNvbS9pYm0vcmljaHRleHQKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9NQ29uc3RUZXh0UHJpbnRhYmxlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9NQ29uc3RUZXh0UHJpbnRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjJiYzEwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L01Db25zdFRleHRQcmludGFibGUuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5wcmludDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0Lk1Gb3JtYXR0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIFRoaXMgY2xhc3MncyBpbnRlcmZhY2UgaXMgdmVyeSBjbG9zZSB0byB0aGF0IG9mIHRoZSBKREsgMS4yIFByaW50YWJsZSAKKyAqIGludGVyZmFjZSwgYnV0IGNhbiBleGVjdXRlIG9uIEpESyAxLjEuICBPbiAxLjIsIHRoaXMgY2xhc3MgaXMgd3JhcHBlZAorICogaW4gYSByZWFsIFByaW50YWJsZS4gIE9uIDEuMSwgdGhlIFByaW50Q29udGV4dCBjbGFzcyB1c2VzIHRoaXMgY2xhc3MKKyAqIGFuZCBhIFByaW50Sm9iIGZvciBwcmludGluZy4KKyAqCisgKiBOb3RlIHRoYXQgdGhpcyBjbGFzcyBwYWdpbmF0ZXMgdGhlIHRleHQgaW4gdGhlIGZpcnN0IGNhbGwgdG8gcHJpbnQsCisgKiBvciB0byBnZXRQYWdlQ291bnQuCisgKiBBZnRlciBjb25zdHJ1Y3Rpb24sIGl0cyBwYWdlIHNpemUgaXMgZXNzZW50aWFsbHkgZml4ZWQuICBUaGlzIGlzIG5vdCAKKyAqIGFzIGZsZXhpYmxlIGFzIHRoZSAxLjIgY2xhc3NlcyBhbGxvdywgYnV0IGl0IHNob3VsZCBzdWZmaWNlLgorICovCitmaW5hbCBjbGFzcyBNQ29uc3RUZXh0UHJpbnRhYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IFBBR0VfRVhJU1RTID0gMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE5PX1NVQ0hfUEFHRSA9IDE7CisgICAgCisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0IGZUZXh0OworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZEZWZhdWx0U3R5bGVzOworICAgIHByaXZhdGUgUmVjdGFuZ2xlIGZQYWdlUmVjdDsKKyAgICAKKyAgICAvLyBJZiB0aGVzZSB0d28gZmllbGRzIGFyZSBudWxsIHRoZSB0ZXh0IGhhcyBub3QgYmVlbiBwYWdpbmF0ZWQuCisgICAgcHJpdmF0ZSBNRm9ybWF0dGVyIGZGb3JtYXR0ZXI7CisgICAgcHJpdmF0ZSBWZWN0b3IgZlBhZ2VTdGFydHM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gTUNvbnN0VGV4dFByaW50YWJsZSB0byBwcmludCB0aGUgZ2l2ZW4gdGV4dC4gIEVhY2ggcGFnZSB3aWxsIGZpdAorICAgICAqIGludG8gcGFnZVJlY3QuCisgICAgICovCisgICAgTUNvbnN0VGV4dFByaW50YWJsZShNQ29uc3RUZXh0IHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRTdHlsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgcGFnZVJlY3QpIHsKKworICAgICAgICBmVGV4dCA9IHRleHQ7CisgICAgICAgIGZEZWZhdWx0U3R5bGVzID0gZGVmYXVsdFN0eWxlczsKKyAgICAgICAgZlBhZ2VSZWN0ID0gbmV3IFJlY3RhbmdsZShwYWdlUmVjdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmF0KHRleHQubGVuZ3RoKCktMSk7CisgICAgICAgICAgICByZXR1cm4gY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHUyMDI5JzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwYWdpbmF0ZShHcmFwaGljcyBncmFwaGljcykgeworICAgICAgICAKKyAgICAgICAgaWYgKGZQYWdlU3RhcnRzID09IG51bGwpIHsKKworICAgICAgICAgICAgZkZvcm1hdHRlciA9IE1Gb3JtYXR0ZXIuY3JlYXRlRm9ybWF0dGVyKGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEZWZhdWx0U3R5bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZQYWdlUmVjdC53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzKTsKKyAKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuZm9ybWF0VG9IZWlnaHQoSW50ZWdlci5NQVhfVkFMVUUpOworICAgICAgICAgICAgZkZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKworICAgICAgICAgICAgZlBhZ2VTdGFydHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsaW5lQ291bnQgPSBmRm9ybWF0dGVyLmdldExpbmVDb3VudCgpOworICAgICAgICAgICAgaWYgKGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoZlRleHQpKSB7CisgICAgICAgICAgICAgICAgbGluZUNvdW50IC09IDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzdGFydExpbmUgPSAwOworICAgICAgICAgICAgZlBhZ2VTdGFydHMuYWRkRWxlbWVudChuZXcgSW50ZWdlcihzdGFydExpbmUpKTsKKyAgICAgICAgICAgIGludCBzdGFydEhlaWdodCA9IDA7CisgICAgICAgICAgICBmaW5hbCBpbnQgcGFnZUhlaWdodCA9IGZQYWdlUmVjdC5oZWlnaHQ7CisKKyAgICAgICAgICAgIHdoaWxlIChzdGFydExpbmUgPCBsaW5lQ291bnQpIHsKKworICAgICAgICAgICAgICAgIGludCBuZXh0U3RhcnQgPSBmRm9ybWF0dGVyLmxpbmVBdEhlaWdodChzdGFydEhlaWdodCArIHBhZ2VIZWlnaHQpOworICAgICAgICAgICAgICAgIGZQYWdlU3RhcnRzLmFkZEVsZW1lbnQobmV3IEludGVnZXIobmV4dFN0YXJ0KSk7CisgICAgICAgICAgICAgICAgc3RhcnRIZWlnaHQgPSBmRm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQobmV4dFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBzdGFydExpbmUgPSBuZXh0U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCB0aGUgZ2l2ZW4gcGFnZSBpbiB0aGUgZ2l2ZW4gZ3JhcGhpY3MuICBQYWdlIG51bWJlcnMgYXJlCisgICAgICogMC1iYXNlZC4gIFRoZSB0aGUgcmV0dXJuIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyCisgICAgICogdGhlIHBhZ2UgbnVtYmVyIGlzIHZhbGlkIChhcyBpbiBKREsgMS4yKS4gIFNpbmNlIHlvdSBjYW4gZ2V0IHRoZSBwYWdlIGNvdW50CisgICAgICogZGlyZWN0bHksIHRoZXJlJ3MgcmVhbGx5IG5vIGV4Y3VzZSBmb3IgcGFzc2luZyBpbiBhbiBpbnZhbGlkIHBhZ2UKKyAgICAgKiBpbmRleC4KKyAgICAgKiBAcGFyYW0gZ3JhcGhpY3MgdGhlIEdyYXBoaWNzIHRvIHByaW50IHRvCisgICAgICogQHBhcmFtIHBhZ2VOdW1iZXIgdGhlIDAtYmFzZWQgcGFnZSBudW1iZXIuICBTaG91bGQgYmUgbm9ubmVnYXRpdmUgYW5kCisgICAgICogbGVzcyB0aGFuIGdldFBhZ2VDb3VudCgpCisgICAgICogQHJldHVybiBQQUdFX0VYSVNUUyBpZiB0aGUgcGFnZSBudW1iZXIgaXMgdmFsaWQsIG9yIAorICAgICAqICAgICAgICAgTk9fU1VDSF9QQUdFIG90aGVyd2lzZQorICAgICAqLworICAgIGludCBwcmludChHcmFwaGljcyBncmFwaGljcywgaW50IHBhZ2VOdW1iZXIpIHsKKyAgICAgICAgCisgICAgICAgIHBhZ2luYXRlKGdyYXBoaWNzKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYWdlTnVtYmVyIDwgZ2V0UGFnZUNvdW50KGdyYXBoaWNzKSAmJiBwYWdlTnVtYmVyID49IDApIHsKKyAgICAgICAgICAgIGdyYXBoaWNzLnNldENvbG9yKENvbG9yLmJsYWNrKTsgLy8gd29ya2Fyb3VuZCBmb3IgMS4yIHByaW50aW5nIGJ1ZworICAgICAgICAgICAgaW50IHN0YXJ0TGluZSA9ICgoSW50ZWdlcilmUGFnZVN0YXJ0cy5lbGVtZW50QXQocGFnZU51bWJlcikpLmludFZhbHVlKCk7CisgICAgICAgICAgICBpbnQgbGltaXRMaW5lID0gKChJbnRlZ2VyKWZQYWdlU3RhcnRzLmVsZW1lbnRBdChwYWdlTnVtYmVyKzEpKS5pbnRWYWx1ZSgpOworCisgICAgICAgICAgICBpbnQgdG9wT2ZQYWdlID0gZkZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KHN0YXJ0TGluZSk7CisgICAgICAgICAgICBpbnQgcGFnZUhlaWdodCA9IGZGb3JtYXR0ZXIubGluZUdyYXBoaWNTdGFydChsaW1pdExpbmUpIC0gdG9wT2ZQYWdlOworCisgICAgICAgICAgICBQb2ludCBvcmlnaW4gPSBuZXcgUG9pbnQoZlBhZ2VSZWN0LngsIGZQYWdlUmVjdC55IC0gdG9wT2ZQYWdlKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBkcmF3UmVjdCA9IG5ldyBSZWN0YW5nbGUoZlBhZ2VSZWN0KTsKKyAgICAgICAgICAgIGRyYXdSZWN0LmhlaWdodCA9IHBhZ2VIZWlnaHQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuZHJhdyhncmFwaGljcywgZHJhd1JlY3QsIG9yaWdpbik7CisgICAgICAgICAgICByZXR1cm4gUEFHRV9FWElTVFM7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gTk9fU1VDSF9QQUdFOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuIGJlIHByaW50ZWQuCisgICAgICogQHBhcmFtIGdyYXBoaWNzIGEgR3JhcGhpY3MgaW5zdGFuY2UgcmVwcmVzZW50YXRpdmUgb2YgdGhvc2UgCisgICAgICogd2hpY2ggd2lsbCBiZSBwcmludGVkIGludG8KKyAgICAgKi8KKyAgICBpbnQgZ2V0UGFnZUNvdW50KEdyYXBoaWNzIGdyYXBoaWNzKSB7CisgICAgICAgIAorICAgICAgICBwYWdpbmF0ZShncmFwaGljcyk7CisgICAgICAgIHJldHVybiBmUGFnZVN0YXJ0cy5zaXplKCkgLSAxOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludENvbnRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L1ByaW50Q29udGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM4MWFmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludENvbnRleHQuamF2YQpAQCAtMCwwICsxLDc5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnByaW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgamF2YS5hd3QucHJpbnQuUGFnZUZvcm1hdDsKK2ltcG9ydCBqYXZhLmF3dC5wcmludC5QcmludGFibGU7CitpbXBvcnQgamF2YS5hd3QucHJpbnQuUHJpbnRlckpvYjsKK2ltcG9ydCBqYXZhLmF3dC5wcmludC5QcmludGVyRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBQcmludENvbnRleHQgaW1wbGVtZW50cyBQcmludGFibGUgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIE1Db25zdFRleHRQcmludGFibGUgZlByaW50YWJsZTsKKyAgICAKKyAgICBQcmludENvbnRleHQoTUNvbnN0VGV4dCB0ZXh0LCBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlcywgUGFnZUZvcm1hdCBwZikgeworICAgICAgICAKKyAgICAgICAgaW50IHdpZHRoID0gKGludCkgTWF0aC5yb3VuZChwZi5nZXRJbWFnZWFibGVXaWR0aCgpKTsKKyAgICAgICAgaW50IGhlaWdodCA9IChpbnQpIE1hdGgucm91bmQocGYuZ2V0SW1hZ2VhYmxlSGVpZ2h0KCkpOworICAgICAgICBpbnQgbGVmdCA9ICgoKGludClNYXRoLnJvdW5kKHBmLmdldFdpZHRoKCkpKSAtIHdpZHRoKSAvIDI7CisgICAgICAgIGludCB0b3AgPSAoKChpbnQpTWF0aC5yb3VuZChwZi5nZXRIZWlnaHQoKSkpIC0gaGVpZ2h0KSAvIDI7CisgICAgICAgIAorICAgICAgICBSZWN0YW5nbGUgcGFnZVJlY3QgPSBuZXcgUmVjdGFuZ2xlKGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgIGZQcmludGFibGUgPSBuZXcgTUNvbnN0VGV4dFByaW50YWJsZSh0ZXh0LCBkZWZhdWx0U3R5bGVzLCBwYWdlUmVjdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgcHJpbnQoR3JhcGhpY3MgZ3JhcGhpY3MsCisgICAgICAgICAgICAgICAgICAgICBQYWdlRm9ybWF0IGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgIGludCBwYWdlSW5kZXgpIHRocm93cyBQcmludGVyRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmYWxzZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBQcmludGVyRXhjZXB0aW9uKCJzYXZlIHRyZWVzIik7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGZQcmludGFibGUucHJpbnQoZ3JhcGhpY3MsIHBhZ2VJbmRleCkgPT0gTUNvbnN0VGV4dFByaW50YWJsZS5QQUdFX0VYSVNUUykgeworICAgICAgICAgICAgcmV0dXJuIFBBR0VfRVhJU1RTOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIE5PX1NVQ0hfUEFHRTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCB1c2VyUHJpbnRUZXh0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgam9iVGl0bGUpIHsKKworICAgICAgICBQcmludGVySm9iIGpvYiA9IFByaW50ZXJKb2IuZ2V0UHJpbnRlckpvYigpOworICAgICAgICBqb2Iuc2V0Sm9iTmFtZShqb2JUaXRsZSk7CisgICAgICAgIGlmIChqb2IucHJpbnREaWFsb2coKSkgeworICAgICAgICAgICAgam9iLnNldFByaW50YWJsZShuZXcgUHJpbnRDb250ZXh0KHRleHQsIGRlZmF1bHRTdHlsZXMsIGpvYi5kZWZhdWx0UGFnZSgpKSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGpvYi5wcmludCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goUHJpbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcmludGVyIGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRpbmdVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRpbmdVdGlscy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4NWQwODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludGluZ1V0aWxzLmphdmEKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5wcmludDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CisKKy8qKgorICogUHJpbnRpbmdVdGlscyBjb250YWlucyBhIHN0YXRpYyBtZXRob2QgZm9yIHByaW50aW5nIHN0eWxlZCB0ZXh0LgorICogQHNlZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUHJpbnRpbmdVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgLy8gS2VlcCBpdCBvdXQgb2YgSmF2YWRvYy4uLgorICAgIHByaXZhdGUgUHJpbnRpbmdVdGlscygpIHsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGdpdmVuIHRleHQuICBBIFByaW50IGRpYWxvZyBpcyBwcmVzZW50ZWQgdG8gdGhlIHVzZXI7CisgICAgICogdW5sZXNzIHRoZSB1c2VyIGNhbmNlbHMsIHRoZSB0ZXh0IGlzIHByaW50ZWQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gcHJpbnQKKyAgICAgKiBAcGFyYW0gZGVmYXVsdFN0eWxlcyBkZWZhdWx0IHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgYXR0cmlidXRlcworICAgICAqIEBwYXJhbSBmcmFtZSB0aGUgcGFyZW50IG9mIHRoZSBQcmludCBkaWFsb2cKKyAgICAgKiBAcGFyYW0gam9iVGl0bGUgdGhlIHRpdGxlIG9mIHRoZSBQcmludEpvYgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB1c2VyUHJpbnRUZXh0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgam9iVGl0bGUpIHsKKworICAgICAgICBQcmludENvbnRleHQudXNlclByaW50VGV4dCh0ZXh0LCBkZWZhdWx0U3R5bGVzLCBmcmFtZSwgam9iVGl0bGUpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDkwNmVkYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IS0tIAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCistLT4KKzxodG1sPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUHJvdmlkZXMgcHJpbnRpbmcgZm9yIHN0eWxlZCB0ZXh0LgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0NoYXJCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODdlZTNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVyLmphdmEKQEAgLTAsMCArMSwzNzcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKiogQW4gaW1wbGVtZW50YXRpb24gb2YgTUNoYXJCdWZmZXIgdGhhdCBzdG9yZXMgY2hhcnMgaW4gYW4gYXJyYXkgd2l0aCBhbiBpbnNlcnRpb24gZ2FwLiAqLworLyoKKyAgICBDaGFuZ2UgaGlzdG9yeQorICAgIDA3MjM5NiBqZiAgIC0gZml4ZWQgYSBidWcgaW4gcmVwbGFjZShpbnQsIGludCwgY2hhcltdLCBpbnQsIGludCkgc28gdGhhdCBpdCBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICBpbnNlcnRlZCBpbnRvIHRoZSBtaWRkbGUgb2YgdGhlIGJ1ZmZlci4KKyAgICAwODAyOTYgamYgICAtIGFkZGVkIHRpbWVzdGFtcC4gIFRoaXMgaXMgc3RyaWN0bHkgYSBkZWJ1Z2dpbmcgZGV2aWNlIHRvIGhlbHAgY2F0Y2gKKyAgICAgICAgICAgICAgICBzdGFsZSBpdGVyYXRvcnMuCisKKyAgICAwODIyOTYgamJyICBhZGRlZCBjaGVjayBmb3IgMC1sZW5ndGggaXRlcmF0b3IgaW4gcmVwbGFjZQorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworZmluYWwgY2xhc3MgQ2hhckJ1ZmZlcgorICAgIGV4dGVuZHMgTUNoYXJCdWZmZXIgaW1wbGVtZW50cyBFeHRlcm5hbGl6YWJsZQoreworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtHcm93U2l6ZSA9IDB4ODA7IC8vIHNtYWxsIHNpemUgZm9yIHRlc3RpbmcKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7IC8vIHZlcnNpb24gY29kZSBmb3Igc3RyZWFtaW5nCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDU2MzE3NDsKKworICB0cmFuc2llbnQgVmFsaWRhdGlvbiBmVmFsaWRhdGlvbiA9IG51bGw7CisgIHByaXZhdGUgY2hhcltdIGZBcnJheTsKKyAgdHJhbnNpZW50IHByaXZhdGUgaW50IGZBcnJheVNpemU7CisgIHRyYW5zaWVudCBwcml2YXRlIGludCBmR2FwOworCisgIC8qKiBDcmVhdGUgYW4gZW1wdHkgY2hhciBidWZmZXIuICovCisgIHB1YmxpYyBDaGFyQnVmZmVyKCkKKyAgeworICB9CisKKyAgLyoqIENyZWF0ZSBhIGNoYXIgYnVmZmVyIHRoYXQgY2FuIGhvbGQgYXQgbGVhc3QgY2FwYWNpdHkgY2hhcnMuICovCisKKyAgcHVibGljIENoYXJCdWZmZXIoaW50IGNhcGFjaXR5KQorICB7CisgICAgZkFycmF5ID0gYWxsb2NhdGUoY2FwYWNpdHkpOworICB9CisKKyAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgaWYgKGluLnJlYWRJbnQoKSAhPSBDVVJSRU5UX1ZFUlNJT04pIHsKKyAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgQ2hhckJ1ZmZlciIpOworICAgIH0KKworICAgIGZBcnJheSA9IChjaGFyW10pIGluLnJlYWRPYmplY3QoKTsKKyAgICBpZiAoZkFycmF5ICE9IG51bGwpIHsKKyAgICAgICAgZkFycmF5U2l6ZSA9IGZBcnJheS5sZW5ndGg7CisgICAgICAgIGZHYXAgPSBmQXJyYXlTaXplOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZkFycmF5U2l6ZSA9IDA7CisgICAgICAgIGZHYXAgPSAwOworICAgIH0KKyAgfQorCisgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgIGNvbXByZXNzKCk7CisgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgb3V0LndyaXRlT2JqZWN0KGZBcnJheSk7CisgIH0KKworICBwcml2YXRlIHZvaWQgaW52YWxpZGF0ZSgpIHsKKworICAgIGlmIChmVmFsaWRhdGlvbiAhPSBudWxsKSB7CisgICAgICAgIGZWYWxpZGF0aW9uLmludmFsaWRhdGUoKTsKKyAgICAgICAgZlZhbGlkYXRpb24gPSBudWxsOworICAgIH0KKyAgfQorCisgIC8vIG5vdCBUaHJlYWRTYWZlIC0gY291bGQgZW5kIHVwIHdpdGggdHdvIFZhbGlkYXRpb25zCisgIC8vIGJlaW5nIGdlbmVyYXRlZAorICBwcml2YXRlIFZhbGlkYXRpb24gZ2V0VmFsaWRhdGlvbigpIHsKKworICAgIGlmIChmVmFsaWRhdGlvbiA9PSBudWxsKSB7CisgICAgICAgIGZWYWxpZGF0aW9uID0gbmV3IFZhbGlkYXRpb24oKTsKKyAgICB9CisgICAgcmV0dXJuIGZWYWxpZGF0aW9uOworICB9CisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNCdWZmZXIuICovCisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNDaGFycy4KKyAgKiBUaGlzIGlzIHRoZSBjb3JlIHJvdXRpbmUgZm9yIG1hbmlwdWxhdGluZyB0aGUgYnVmZmVyLgorICAqLworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KQorICB7CisgICAgaW52YWxpZGF0ZSgpOworICAgIGludCBkc3RMZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgIGludCBzcmNMZW5ndGggPSBzcmNMaW1pdCAtIHNyY1N0YXJ0OworCisgICAgaWYgKGRzdExlbmd0aCA8IDAgfHwgc3JjTGVuZ3RoIDwgMCkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJyZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KSIpOworICAgIH0KKworICAgIGludCBnYXBBbGxvYyA9IDA7CisgICAgaWYgKHNyY0NoYXJzID09IG51bGwpIHsKKyAgICAgICAgZ2FwQWxsb2MgPSBzcmNMZW5ndGg7CisgICAgICAgIHNyY0xlbmd0aCA9IDA7CisgICAgfQorCisgICAgaW50IG5ld1NpemUgPSBmQXJyYXlTaXplIC0gZHN0TGVuZ3RoICsgc3JjTGVuZ3RoOworCisgICAgaWYgKGZBcnJheSA9PSBudWxsKSB7CisgICAgICAgIGlmIChzdGFydCAhPSAwIHx8IGxpbWl0ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5ld1NpemUgKyBnYXBBbGxvYyA+IDApIHsKKyAgICAgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKG5ld1NpemUgKyBnYXBBbGxvYyk7CisgICAgICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjQ2hhcnMsIHNyY1N0YXJ0LCBmQXJyYXksIDAsIHNyY0xlbmd0aCk7CisgICAgICAgICAgICAgICAgZkFycmF5U2l6ZSA9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgICAgICBmR2FwID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IG5ld0dhcCA9IHN0YXJ0ICsgc3JjTGVuZ3RoOworICAgICAgICBpbnQgZ2FwTGltaXQgPSBmQXJyYXkubGVuZ3RoIC0gZkFycmF5U2l6ZSArIGZHYXA7CisKKyAgICAgICAgaWYgKG5ld1NpemUgKyBnYXBBbGxvYyA+IGZBcnJheS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSB0ZW1wID0gYWxsb2NhdGUobmV3U2l6ZSArIGdhcEFsbG9jKTsKKworICAgICAgICAgICAgLy9tb3ZlIHN0dWZmIGF0IGJlZ2lubmluZyB0aGF0IHdlIGFyZW4ndCB3cml0aW5nIG92ZXIKKyAgICAgICAgICAgIGlmIChzdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICBhdCgwLCBzdGFydCwgdGVtcCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL21vdmUgc3R1ZmYgZnJvbSBzcmMgYXJyYXkgdGhhdCB3ZSBhcmUgY29weWluZworICAgICAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyY0NoYXJzLCBzcmNTdGFydCwgdGVtcCwgc3RhcnQsIHNyY0xlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL21vdmUgc3R1ZmYgYXQgZW5kIHRoYXQgd2UgYXJlbid0IGNvcHlpbmcgb3ZlcgorICAgICAgICAgICAgaWYgKGxpbWl0IDwgZkFycmF5U2l6ZSkgeworICAgICAgICAgICAgICAgIGF0KGxpbWl0LCBmQXJyYXlTaXplLCB0ZW1wLCB0ZW1wLmxlbmd0aCAtIG5ld1NpemUgKyBuZXdHYXApOworICAgICAgICAgICAgLy9jaGFuZ2UgNy0yMy05NgorICAgICAgICAgICAgLy8gICAgYXQobGltaXQsIGZBcnJheVNpemUgLSBsaW1pdCwgdGVtcCwgdGVtcC5sZW5ndGggLSBuZXdTaXplICsgbmV3R2FwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkFycmF5ID0gdGVtcDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA+IGZHYXApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgZ2FwTGltaXQsIGZBcnJheSwgZkdhcCwgc3RhcnQgLSBmR2FwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW1pdCA8IGZHYXApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgbGltaXQsIGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIG5ld1NpemUgKyBuZXdHYXAsIGZHYXAgLSBsaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjQ2hhcnMsIHNyY1N0YXJ0LCBmQXJyYXksIHN0YXJ0LCBzcmNMZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZkFycmF5U2l6ZSA9IG5ld1NpemU7CisgICAgICAgIGZHYXAgPSBuZXdHYXA7CisgICAgfQorICB9CisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNTdHJpbmcuICovCisKKyAgLyogVGhpcyBpbXBsZW1lbnRzIG9wdGltaXphdGlvbnMgZm9yIG51bGwgdGV4dCBvciBpbnNlcnRpbmcgdGV4dCB0aGF0IGZpdHMgYXQgdGhlIGdhcCwKKyAgICAgYW5kIGRlZmF1bHRzIHRvIGNhbGwgdGhlIGNvcmUgcmVwbGFjZSByb3V0aW5lIGlmIHRoZXNlIG9wdGltaXphdGlvbnMgZmFpbC4gKi8KKworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmcgc3JjU3RyaW5nLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKyAgICBpbnQgc3JjTGVuZ3RoID0gc3JjTGltaXQgLSBzcmNTdGFydDsKKworICAgIGlmIChmQXJyYXkgPT0gbnVsbCkgeworICAgICAgICBpZiAoc3RhcnQgIT0gMCB8fCBsaW1pdCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJyZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmcgc3JjU3RyaW5nLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgZkFycmF5ID0gYWxsb2NhdGUoc3JjTGVuZ3RoKTsKKyAgICAgICAgICAgIHNyY1N0cmluZy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgMCk7CisgICAgICAgICAgICBmQXJyYXlTaXplID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgZkdhcCA9IHNyY0xlbmd0aDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPj0gZkFycmF5U2l6ZSAtIGxlbmd0aCArIHNyY0xlbmd0aCkgeworICAgICAgICAgICAgaWYgKHNyY0xpbWl0ID4gMCkgeworICAgICAgICAgICAgICAgIHNyY1N0cmluZy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgZkdhcCk7CisgICAgICAgICAgICAgICAgZkdhcCArPSBzcmNMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmQXJyYXlTaXplICs9IHNyY0xlbmd0aCAtIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBzcmNTdHJpbmcgIT0gbnVsbCA/IHNyY1N0cmluZy50b0NoYXJBcnJheSgpIDogbnVsbCwgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKyAgICAgICAgfQorICAgIH0KKyAgfQorCisgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIE1Db25zdFRleHQgc3JjVGV4dCwgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpCisgIHsKKyAgICBpbnZhbGlkYXRlKCk7CisgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgaW50IHNyY0xlbmd0aCA9IHNyY0xpbWl0IC0gc3JjU3RhcnQ7CisKKyAgICBpZiAoZkFycmF5ID09IG51bGwpIHsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IDAgfHwgbGltaXQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHNyY1N0cmluZywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKHNyY0xlbmd0aCk7CisgICAgICAgICAgICBzcmNUZXh0LmV4dHJhY3RDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgMCk7CisgICAgICAgICAgICBmQXJyYXlTaXplID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgZkdhcCA9IHNyY0xlbmd0aDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPj0gZkFycmF5U2l6ZSAtIGxlbmd0aCArIHNyY0xlbmd0aCkgeworICAgICAgICAgICAgaWYgKHNyY0xpbWl0ID4gMCkgeworICAgICAgICAgICAgICAgIHNyY1RleHQuZXh0cmFjdENoYXJzKHNyY1N0YXJ0LCBzcmNMaW1pdCwgZkFycmF5LCBmR2FwKTsKKyAgICAgICAgICAgICAgICBmR2FwICs9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZBcnJheVNpemUgKz0gc3JjTGVuZ3RoIC0gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2hhcltdIHRlbXAgPSBzcmNMZW5ndGggPT0gMD8gbnVsbCA6IG5ldyBjaGFyW3NyY0xlbmd0aF07CisgICAgICAgICAgICBpZiAodGVtcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3JjVGV4dC5leHRyYWN0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCB0ZW1wLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCB0ZW1wLCAwLCBzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKiBSZXBsYWNlIHRoZSBjaGFycyBmcm9tIHN0YXJ0IHRvIGxpbWl0IHdpdGggc3JjQ2hhci4gKi8KKworICAvKiBUaGlzIGltcGxlbWVudHMgb3B0aW1pemF0aW9ucyBmb3IgbnVsbCB0ZXh0IG9yIHJlcGxhY2luZyBhIGNoYXJhY3RlciB0aGF0IGZpdHMgaW50byB0aGUgZ2FwLAorICAgICBhbmQgZGVmYXVsdHMgdG8gY2FsbCB0aGUgY29yZSByZXBsYWNlIHJvdXRpbmUgaWYgdGhlc2Ugb3B0aW1pemF0aW9ucyBmYWlsLiAqLworCisgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXIgc3JjQ2hhcikKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpZiAoZkFycmF5ID09IG51bGwpIHsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IDAgfHwgbGltaXQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhciBzcmNDaGFyKSIpOworICAgICAgICB9CisgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKDEpOworICAgICAgICBmQXJyYXlbMF0gPSBzcmNDaGFyOworICAgICAgICBmQXJyYXlTaXplID0gMTsKKyAgICAgICAgZkdhcCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPiBmQXJyYXlTaXplIC0gbGVuZ3RoKSB7CisgICAgICAgICAgICBmQXJyYXlbZkdhcF0gPSBzcmNDaGFyOworICAgICAgICAgICAgZkdhcCArPSAxOworICAgICAgICAgICAgZkFycmF5U2l6ZSArPSAxIC0gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVwbGFjZShzdGFydCwgbGltaXQsIG5ldyBjaGFyW10geyBzcmNDaGFyfSAsIDAsIDEpOworICAgICAgICB9CisgICAgfQorICB9CisKKyAgLyoqIFJldHVybiB0aGUgY2hhciBhdCBwb3MuICovCisKKyAgcHVibGljIGNoYXIgYXQoaW50IHBvcykKKyAgeworICAgIGlmIChwb3MgPCAwIHx8IHBvcyA+PSBmQXJyYXlTaXplKSB7CisgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgfQorICAgIHJldHVybiBwb3MgPCBmR2FwID8gZkFycmF5W3Bvc10gOiBmQXJyYXlbZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBwb3NdOworICB9CisKKyAgLyoqIENvcHkgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgdG8gZHN0IHN0YXJ0aW5nIGF0IGRzdFN0YXJ0LiAqLworCisgIHB1YmxpYyB2b2lkIGF0KGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpCisgIHsKKyAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKworICAgIGlmIChzdGFydCA8IDAgfHwgbGltaXQgPCBzdGFydCB8fCBsaW1pdCA+IGZBcnJheVNpemUpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgIH0KKworICAgIGlmIChsaW1pdCA8PSBmR2FwKSB7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZkFycmF5LCBzdGFydCwgZHN0LCBkc3RTdGFydCwgbGVuZ3RoKTsKKyAgICB9IGVsc2UgaWYgKHN0YXJ0ID49IGZHYXApIHsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIGZBcnJheS5sZW5ndGggLSBmQXJyYXlTaXplICsgc3RhcnQsIGRzdCwgZHN0U3RhcnQsIGxlbmd0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIHN0YXJ0LCBkc3QsIGRzdFN0YXJ0LCBmR2FwIC0gc3RhcnQpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBmR2FwLCBkc3QsIGRzdFN0YXJ0ICsgZkdhcCAtIHN0YXJ0LCBsaW1pdCAtIGZHYXApOworICAgIH0KKyAgfQorCisgIC8qKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjaGFycyBpbiB0aGUgYnVmZmVyLiAqLworCisgIHB1YmxpYyBmaW5hbCBpbnQgbGVuZ3RoKCkKKyAgeworICAgIHJldHVybiBmQXJyYXlTaXplOworICB9CisKKyAgLyoqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJzIHRoZSBidWZmZXIgY2FuIGhvbGQgYmVmb3JlIGl0IG11c3QgcmVhbGxvY2F0ZS4gKi8KKworICBwdWJsaWMgZmluYWwgaW50IGNhcGFjaXR5KCkKKyAgeworICAgIHJldHVybiBmQXJyYXkgIT0gbnVsbCA/IGZBcnJheS5sZW5ndGggOiAwOworICB9CisKKyAgLyoqIFJlc2VydmUgY2FwYWNpdHkgY2hhcnMgYXQgc3RhcnQuIFV0aWxpdHkgdG8gb3B0aW1pemUgYSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGF0IHN0YXJ0LiAqLworCisgIHB1YmxpYyB2b2lkIHJlc2VydmVDYXBhY2l0eShpbnQgc3RhcnQsIGludCBjYXBhY2l0eSkKKyAgeworICAgIHJlcGxhY2Uoc3RhcnQsIHN0YXJ0LCAoY2hhcltdKW51bGwsIDAsIGNhcGFjaXR5KTsKKyAgfQorCisgIC8qKiBNaW5pbWl6ZSB0aGUgc3RvcmFnZSB1c2VkIGJ5IHRoZSBidWZmZXIuICovCisKKyAgcHVibGljIHZvaWQgY29tcHJlc3MoKQorICB7CisgICAgaW52YWxpZGF0ZSgpOworICAgIGlmIChmQXJyYXlTaXplID09IDApIHsKKyAgICAgICAgZkFycmF5ID0gbnVsbDsKKyAgICAgICAgZkdhcCA9IDA7CisgICAgfSBlbHNlIGlmIChmQXJyYXlTaXplICE9IGZBcnJheS5sZW5ndGgpIHsKKyAgICAgICAgY2hhcltdIHRlbXAgPSBuZXcgY2hhcltmQXJyYXlTaXplXTsKKyAgICAgICAgYXQoMCwgZkFycmF5U2l6ZSwgdGVtcCwgMCk7CisgICAgICAgIGZBcnJheSA9IHRlbXA7CisgICAgICAgIGZHYXAgPSBmQXJyYXlTaXplOworICAgIH0KKyAgfQorCisgIC8qKiBEaXNwbGF5IHRoZSBidWZmZXIuICovCisKKyAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgIHsKKyAgICBpZiAoZkFycmF5ICE9IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoKQorICAgICAgICAuYXBwZW5kKCJsaW1pdDogIikuYXBwZW5kKGZBcnJheS5sZW5ndGgpCisgICAgICAgIC5hcHBlbmQoIiwgc2l6ZTogIikuYXBwZW5kKGZBcnJheVNpemUpCisgICAgICAgIC5hcHBlbmQoIiwgZ2FwOiAiKS5hcHBlbmQoZkdhcCkKKyAgICAgICAgLmFwcGVuZCgiLCAiKS5hcHBlbmQoZkFycmF5LCAwLCBmR2FwKQorICAgICAgICAuYXBwZW5kKGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBmR2FwLCBmQXJyYXlTaXplIC0gZkdhcCkKKyAgICAgICAgLnRvU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoIlRoZSBidWZmZXIgaXMgZW1wdHkuIik7CisgICAgfQorICB9CisKKyAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICBWYWxpZGF0aW9uIHZhbCA9IGdldFZhbGlkYXRpb24oKTsKKyAgICByZXR1cm4gbmV3IENoYXJCdWZmZXJJdGVyYXRvcihzdGFydCwgbGltaXQsIGZBcnJheSwgZkFycmF5U2l6ZSwgZkdhcCwgdmFsKTsKKyAgfQorCisgIC8qKiBUaGUgcmVzaXppbmcgYWxnb3JpdGhtLiBSZXR1cm4gYSB2YWx1ZSA+PSBtaW5TaXplLiAqLworCisgIHByb3RlY3RlZCBpbnQgYWxsb2NhdGlvbihpbnQgbWluU2l6ZSkKKyAgeworICAgIC8vICAgIHJldHVybiAobWluU2l6ZSArIGtHcm93U2l6ZSkgJiB+KGtHcm93U2l6ZSAtIDEpOworICAgIHJldHVybiBtaW5TaXplIDwga0dyb3dTaXplID8ga0dyb3dTaXplIDogKG1pblNpemUgKiAyICsga0dyb3dTaXplKSAmIH4oa0dyb3dTaXplIC0gMSk7CisgIH0KKworICAvKiogQWxsb2NhdGUgYSBuZXcgY2hhcmFjdGVyIGFycmF5IG9mIGxpbWl0ID49IG1pblNpemUuICovCisKKyAgcHJvdGVjdGVkIGNoYXJbXSBhbGxvY2F0ZShpbnQgbWluU2l6ZSkKKyAgeworICAgIHJldHVybiBuZXcgY2hhclthbGxvY2F0aW9uKG1pblNpemUpXTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTU4ZDA1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworZmluYWwgY2xhc3MgQ2hhckJ1ZmZlckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9uZWFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgaW50IGZSYW5nZVN0YXJ0OworICAgIHByaXZhdGUgaW50IGZSYW5nZUxpbWl0OworICAgIHByaXZhdGUgaW50IGZDdXJyZW50SW5kZXg7CisgICAgcHJpdmF0ZSBjaGFyIGZTdG9yYWdlW107CisgICAgcHJpdmF0ZSBpbnQgZkdhcDsKKyAgICBwcml2YXRlIGludCBmR2FwTGVuZ3RoOworICAgIHByaXZhdGUgVmFsaWRhdGlvbiBmVmFsaWRhdGlvbjsKKworICAgIENoYXJCdWZmZXJJdGVyYXRvcihpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHN0b3JhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBnYXAsCisgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRpb24gdmFsaWRhdGlvbikgeworCisgICAgICAgIGlmIChzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydCA+IGxpbWl0Iik7CisgICAgICAgIH0KKyAgICAgICAgZlJhbmdlU3RhcnQgPSBzdGFydDsKKyAgICAgICAgZlJhbmdlTGltaXQgPSBsaW1pdDsKKyAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZVN0YXJ0OworICAgICAgICBmU3RvcmFnZSA9IHN0b3JhZ2U7CisgICAgICAgIGZHYXAgPSBnYXA7CisgICAgICAgIGZHYXBMZW5ndGggPSAoc3RvcmFnZT09bnVsbD8gMCA6IHN0b3JhZ2UubGVuZ3RoKSAtIGxlbmd0aDsKKyAgICAgICAgZlZhbGlkYXRpb24gPSB2YWxpZGF0aW9uOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjaGVja1ZhbGlkYXRpb24oKSB7CisKKyAgICAgICAgaWYgKCFmVmFsaWRhdGlvbi5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmF0b3IgaXMgbm8gbG9uZ2VyIHZhbGlkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBmaXJzdCgpCisgICAgeworICAgICAgICByZXR1cm4gc2V0SW5kZXgoZlJhbmdlU3RhcnQpOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIGxhc3QoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNldEluZGV4KGZSYW5nZUxpbWl0IC0gMSk7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgY3VycmVudCgpCisgICAgeworICAgICAgICBjaGVja1ZhbGlkYXRpb24oKTsKKyAgICAgICAgaWYgKGZDdXJyZW50SW5kZXggPCBmUmFuZ2VTdGFydCB8fCBmQ3VycmVudEluZGV4ID49IGZSYW5nZUxpbWl0KQorICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIGludCBpID0gKGZDdXJyZW50SW5kZXggPCBmR2FwKSA/IGZDdXJyZW50SW5kZXggOiAoZkN1cnJlbnRJbmRleCArIGZHYXBMZW5ndGgpOworICAgICAgICByZXR1cm4gZlN0b3JhZ2VbaV07CisgICAgfQorCisgICAgcHVibGljIGNoYXIgbmV4dCgpCisgICAgeworICAgICAgICBjaGVja1ZhbGlkYXRpb24oKTsKKyAgICAgICAgZkN1cnJlbnRJbmRleCsrOworICAgICAgICBpZiAoZkN1cnJlbnRJbmRleCA+PSBmUmFuZ2VMaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZUxpbWl0OworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSAoZkN1cnJlbnRJbmRleCA8IGZHYXApID8gZkN1cnJlbnRJbmRleCA6IChmQ3VycmVudEluZGV4ICsgZkdhcExlbmd0aCk7CisgICAgICAgIHJldHVybiBmU3RvcmFnZVtpXTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpCisgICAgeworICAgICAgICBmQ3VycmVudEluZGV4LS07CisgICAgICAgIGlmIChmQ3VycmVudEluZGV4ID49IGZSYW5nZVN0YXJ0KQorICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZVN0YXJ0OworICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgaSkKKyAgICB7CisgICAgICAgIGlmIChpIDwgZlJhbmdlU3RhcnQgfHwgaSA+IGZSYW5nZUxpbWl0KQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwb3NpdGlvbiIpOworICAgICAgICBmQ3VycmVudEluZGV4ID0gaTsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSYW5nZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSYW5nZUxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZDdXJyZW50SW5kZXg7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9GYXN0SW50QmluYXJ5U2VhcmNoLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0Zhc3RJbnRCaW5hcnlTZWFyY2guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOTkzZTI5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvRmFzdEludEJpbmFyeVNlYXJjaC5qYXZhCkBAIC0wLDAgKzEsMTE1IEBACisvKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqLworCisvKgorICAgIDcvMjkvOTYKKyAgICAgICAgTW9kaWZpZWQgdG8gc2VhcmNoIHBvcnRpb25zIG9mIGFuIGludGVnZXIgYXJyYXkuICBTaG91bGQgYmUgcmV0ZXN0ZWQuCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworLyoqCisgKiBUaGlzIGNsYXNzIHNlYXJjaGVzIGEgc2VnbWVudCBvZiBhbiBhcnJheSBvZiBpbnRlZ2Vycy4gIFRoZSBzZWdtZW50CisgKiBtdXN0IGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgKGJ1dCB0aGlzIGNsYXNzIGRvZXMgbm90IHZlcmlmeSB0aGlzKS4KKyAqIEFsc28sIHRoaXMgY2xhc3MgYWxpYXNlcyB0aGUgYXJyYXk7ICBpZiB0aGUgYXJyYXkgaXMgbW9kaWZpZWQgbGF0ZXIgdGhlCisgKiBzZWFyY2ggcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICovCitmaW5hbCBjbGFzcyBGYXN0SW50QmluYXJ5U2VhcmNoCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGludCBkYXRhQXJyYXlbXTsKKyAgICBwcml2YXRlIGludCBhdXhTdGFydDsKKyAgICBwcml2YXRlIGludCBwb3dlcjsKKworICAgIHByaXZhdGUgaW50IGZGaXJzdEluZGV4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGV4cDJbXSA9IHsgMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4LCAyNTYsIDUxMiwgMTAyNCwgMjA0OCwgNDA5NiwgODE5MiwgMTYzODQsIDMyNzY4LCA2NTUzNiwgMTMxMDcyIH07CisKKyAgICBwdWJsaWMgRmFzdEludEJpbmFyeVNlYXJjaChpbnQgZGF0YVtdKQorICAgIHsKKyAgICAgICAgdGhpcyhkYXRhLCAwLCBkYXRhLmxlbmd0aCk7CisgICAgfQorCisgICAgcHVibGljIEZhc3RJbnRCaW5hcnlTZWFyY2goaW50IGRhdGFbXSwgaW50IGZpcnN0VmFsaWRJbmRleCwgaW50IHZhbGlkTGVuZ3RoKQorICAgIHsKKyAgICAgICAgc2V0RGF0YShkYXRhLCBmaXJzdFZhbGlkSW5kZXgsIHZhbGlkTGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0RGF0YShpbnQgZGF0YVtdKSB7CisgICAgICAgIAorICAgICAgICBzZXREYXRhKGRhdGEsIDAsIGRhdGEubGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0RGF0YShpbnQgZGF0YVtdLCBpbnQgZmlyc3RWYWxpZEluZGV4LCBpbnQgdmFsaWRMZW5ndGgpIHsKKworICAgICAgICBpZiAoZGF0YS5sZW5ndGggPCAxKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+PSBleHAyW2V4cDIubGVuZ3RoLTFdKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisKKyAgICAgICAgZGF0YUFycmF5ID0gZGF0YTsKKyAgICAgICAgZkZpcnN0SW5kZXggPSBmaXJzdFZhbGlkSW5kZXg7CisKKyAgICAgICAgZm9yIChwb3dlciA9IGV4cDIubGVuZ3RoLTE7IHBvd2VyID4gMCAmJiB2YWxpZExlbmd0aCA8IGV4cDJbcG93ZXJdOyBwb3dlci0tKSB7fQorCisgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIGFycmF5Lmxlbmd0aCA+PSAyXnBvd2VyCisKKyAgICAgICAgYXV4U3RhcnQgPSB2YWxpZExlbmd0aCAtIGV4cDJbcG93ZXJdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IGluIHRoZSBhcnJheSBvZiB0aGUgZmlyc3QgZWxlbWVudCB3aGljaCBpcyBhdCBsZWFzdAorICAgICAqIGFzIGxhcmdlIGFzIDx0dD52YWx1ZTwvdHQ+LiAgSWYgdmFsdWUgaXMgbGFyZ2VyIHRoYW4gdGhlIGxhcmdlc3QKKyAgICAgKiBlbGVtZW50IGluIHRoZSBhcnJheSB0aGUgbGFzdCB2YWxpZCBpbmRleCBpbiB0aGUgYXJyYXkgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIGludCBmaW5kSW5kZXgoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaW50IGluZGV4ID0gZXhwMltwb3dlcl0tMSArIGZGaXJzdEluZGV4OworICAgICAgICBpZiAodmFsdWUgPj0gZGF0YUFycmF5W2F1eFN0YXJ0ICsgZkZpcnN0SW5kZXhdKSB7CisgICAgICAgICAgICBpbmRleCArPSBhdXhTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIGluZGV4IGlzIHRoZSAidXBwZXIgbGltaXQiIG9mIHRoZSBzZWFyY2gKKworICAgICAgICBzd2l0Y2ggKHBvd2VyKSB7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNjU1MzZdKSBpbmRleCAtPSA2NTUzNjsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0zMjc2OF0pIGluZGV4IC09IDMyNzY4OworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTE2Mzg0XSkgaW5kZXggLT0gMTYzODQ7CisgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtODE5Ml0pIGluZGV4IC09IDgxOTI7CisgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNDA5Nl0pIGluZGV4IC09IDQwOTY7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMjA0OF0pIGluZGV4IC09IDIwNDg7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMTAyNF0pIGluZGV4IC09IDEwMjQ7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNTEyXSkgaW5kZXggLT0gNTEyOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMjU2XSkgaW5kZXggLT0gMjU2OworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMTI4XSkgaW5kZXggLT0gMTI4OworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNjRdKSBpbmRleCAtPSA2NDsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTMyXSkgaW5kZXggLT0gMzI7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0xNl0pIGluZGV4IC09IDE2OworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtOF0pIGluZGV4IC09IDg7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC00XSkgaW5kZXggLT0gNDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTJdKSBpbmRleCAtPSAyOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMV0pIGluZGV4IC09IDE7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleF0pIGluZGV4IC09IDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTUNoYXJCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTUNoYXJCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40M2FiZjcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ2hhckJ1ZmZlci5qYXZhCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKiBBIGR5bmFtaWMgY2hhcmFjdGVyIGFycmF5IG9wdGltaXplZCBmb3Igc2VxdWVuY2VzIG9mIGluc2VydAorICAgIG9yIGRlbGV0ZSBvcGVyYXRpb25zIGluIGEgbG9jYWwgcmVnaW9uLiAqLworCithYnN0cmFjdCBjbGFzcyBNQ2hhckJ1ZmZlcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpOworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHNyY1N0cmluZywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpOworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhciBzcmNDaGFyKTsKKyAgICBhYnN0cmFjdCBDaGFyYWN0ZXJJdGVyYXRvciBjcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCk7CisgICAgYWJzdHJhY3QgY2hhciBhdChpbnQgcG9zKTsKKyAgICBhYnN0cmFjdCB2b2lkIGF0KGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpOworCisgICAgYWJzdHJhY3QgaW50ICBsZW5ndGgoKTsKKworICAgIGFic3RyYWN0IGludCAgY2FwYWNpdHkoKTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlc2VydmVDYXBhY2l0eShpbnQgcG9zLCBpbnQgbGVuZ3RoKTsKKyAgICBhYnN0cmFjdCB2b2lkIGNvbXByZXNzKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01Db25zdFRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTUNvbnN0VGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwMThkMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01Db25zdFRleHQuamF2YQpAQCAtMCwwICsxLDMyMyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuRGF0YUZsYXZvcjsKKworLyoqCisgKiBNQ29uc3RUZXh0IGlzIGEgYmFzZSBjbGFzcyBmb3IgdGV4dCB3aXRoIG11bHRpcGxlIGNoYXJhY3RlciBhbmQKKyAqIHBhcmFncmFwaCBzdHlsZXMuICBUaGUgdGV4dCBpcyBhIHNlcXVlbmNlIG9mIFVuaWNvZGUgY2hhcmFjdGVycywKKyAqIHJlcHJlc2VudGVkIGJ5IDxjb2RlPmNoYXI8L2NvZGU+LiAgQ2hhcmFjdGVyIGFuZCBwYXJhZ3JhcGgKKyAqIHN0eWxlcyBhcmUgcmVwcmVzZW50ZWQgYnkgdGhlIDxjb2RlPkF0dHJpYnV0ZU1hcDwvY29kZT4gY2xhc3MuCisgKiA8cD4KKyAqIENoYXJhY3RlcnMgaW4gdGhlIHRleHQgYXJlIGFjY2Vzc2VkIHdpdGggYW4gaW50ZWdlciBpbmRleCB1c2luZyB0aGUKKyAqIDxjb2RlPmF0PC9jb2RlPiBtZXRob2QuCisgKiBWYWxpZCBpbmRpY2VzIGFyZSBiZXR3ZWVuIDAgYW5kIChsZW5ndGgtMSksIHdoZXJlIGxlbmd0aCBpcyB0aGUgbnVtYmVyCisgKiBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAgQWRkaXRpb25hbGx5LCB0aGUKKyAqIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQgbWF5IGJlIGFjY2Vzc2VkIHRocm91Z2ggYQorICogPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKyAqIDxwPgorICogRXZlcnkgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGhhcyBhIGNoYXJhY3RlciBzdHlsZSBhc3NvY2lhdGVkIHdpdGggaXQsCisgKiByZXByZXNlbnRlZCBieSB0aGUgPGNvZGU+QXR0cmlidXRlTWFwPC9jb2RlPiBjbGFzcy4gIFRoZSBjaGFyYWN0ZXIKKyAqIHN0eWxlIGZvciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0aGUKKyAqIDxjb2RlPmNoYXJhY3RlclN0eWxlQXQ8L2NvZGU+IG1ldGhvZC4KKyAqIDxwPgorICogRWFjaCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgaXMgY29udGFpbmVkIGluIGEgcGFyYWdyYXBoLiAgQSBwYXJhZ3JhcGgKKyAqIGlzIGEgcmFuZ2Ugb2YgdGV4dCBpbmNsdWRpbmcgYW5kIHRlcm1pbmF0ZWQgYnkgYQorICogcGFyYWdyYXBoIHNlcGFyYXRvciAoZWl0aGVyIDxjb2RlPlxuPC9jb2RlPiBvciA8Y29kZT5VKzIwMjk8L2NvZGU+KS4KKyAqIEV2ZXJ5CisgKiBwYXJhZ3JhcGggaGFzIGEgcGFyYWdyYXBoIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCBpdCwgcmVwcmVzZW50ZWQKKyAqIGJ5IHRoZSA8Y29kZT5BdHRyaWJ1dGVNYXA8L2NvZGU+IGNsYXNzLiAgUGFyYWdyYXBoIGJvdW5kYXJpZXMgYW5kCisgKiBzdHlsZXMgY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIE1Db25zdFRleHQuCisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgZG9lcyBub3QgaGF2ZSBtZXRob2RzIGZvciBtb2RpZnlpbmcgdGhlIHRleHQgb3Igc3R5bGVzLgorICogSG93ZXZlciwgc3ViY2xhc3NlcyBtYXkgYWRkIHRoaXMgY2FwYWJpbGl0eSwgc28gaXQgaXMgbm90IHNhZmUgdG8KKyAqIGFzc3VtZSB0aGF0IGFuIE1Db25zdFRleHQgaW5zdGFuY2UgaXMgaW1tdXRhYmxlLiAgSW4gcGFydGljdWxhciwKKyAqIHRoZSBNVGV4dCBjbGFzcyBhZGRzIG1vZGlmaWNhdGlvbiBwcm90b2NvbCB0byB0aGlzIGNsYXNzLiAgQ2xpZW50cworICogY2FuIGRldGVjdCB3aGV0aGVyIGFuIE1Db25zdFRleHQgaGFzIGNoYW5nZWQgYnkga2VlcGluZyB0cmFjayBvZiBpdHMKKyAqIHRpbWVzdGFtcC4KKyAqIDxwPgorICogQSBEYXRhRmxhdm9yIGZvciBjbGlwYm9hcmQgY29udGVudCBpcyBkZWZpbmVkIGluIHRoaXMgY2xhc3MuICBVc2luZworICogdGhpcyBEYXRhRmxhdm9yIGluc3VyZXMgdGhhdCBhbGwgY2xpZW50cyB3aWxsIHJlY29nbml6ZSBNQ29uc3RUZXh0CisgKiBjb250ZW50IG9uIHRoZSBjbGlwYm9hcmQuCisgKiBAc2VlIE1UZXh0CisgKiBAc2VlIEF0dHJpYnV0ZU1hcAorICogQHNlZSBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkRhdGFGbGF2b3IKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIE1Db25zdFRleHQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBUaGUgRGF0YUZsYXZvciBmb3IgTUNvbnN0VGV4dCBjbGlwYm9hcmQgY29udGVudC4gIFVzZWQgdG8KKyAgICAgKiBpbmRpY2F0ZSB0aGF0IGNsaXBib2FyZCBkYXRhIGhhcyBhbiBNQ29uc3RUZXh0IHJlcHJlc2VudGF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRGF0YUZsYXZvciBzdHlsZWRUZXh0Rmxhdm9yID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0YUZsYXZvcihNQ29uc3RUZXh0LmNsYXNzLCAiU3R5bGVkIFRleHQiKTsKKworICAgIHByb3RlY3RlZCBNQ29uc3RUZXh0KCkgeworICAgIH0KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQ0hBUkFDVEVSIEFDQ0VTUworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIFJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBjaGFyIGF0KGludCBwb3MpOworCisvKioKKyogQ29weSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KQorKiBpbnRvIHRoZSBhcnJheSA8Y29kZT5kc3Q8L2NvZGU+LCBiZWdpbm5pbmcgYXQgPGNvZGU+ZHN0U3RhcnQ8L2NvZGU+LgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gZHN0IGFycmF5IGluIHdoaWNoIHRvIGNvcHkgY2hhcmFjdGVycy4gIFRoZSBsZW5ndGggb2YgPGNvZGU+ZHN0PC9jb2RlPiBtdXN0IGJlIGF0IGxlYXN0CisqICg8Y29kZT5kc3RTdGFydCArIGxpbWl0IC0gc3RhcnQ8L2NvZGU+KS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZXh0cmFjdENoYXJzKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpOworCisvKioKKyogQ3JlYXRlIGFuIE1Db25zdFRleHQgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSByYW5nZQorKiBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pLgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHBhcmFtIGxpbWl0IG9mZnNldCBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEByZXR1cm4gYW4gTUNvbnN0VGV4dCBvYmplY3QgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSBnaXZlbiByYW5nZQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgTUNvbnN0VGV4dCBleHRyYWN0KGludCBzdGFydCwgaW50IGxpbWl0KTsKKworLyoqCisqIENyZWF0ZSBhIDxjb2RlPmphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciBhbGwKKyogb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzCisqIDxjb2RlPmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKDAsIGxlbmd0aCgpKTwvY29kZT4KKyogQHJldHVybiBhIDxjb2RlPmphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciBhbGwKKyogICAgICBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgdGV4dAorKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKDAsIGxlbmd0aCgpKTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlCisqIGdpdmVuIHJhbmdlIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuCisqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgaW5kZXggaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorKiBAcGFyYW0gbGltaXQgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisqIEByZXR1cm4gYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlCisqICAgICBnaXZlbiByYW5nZQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQpOworCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFNJWkUvQ0FQQUNJVFkKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8qKgorKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgTUNvbnN0VGV4dCBvYmplY3QuICBUaGUgbGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4KKyogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBNQ29uc3RUZXh0IG9iamVjdAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxlbmd0aCgpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBDaGFyYWN0ZXIgc3R5bGVzCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGNoYXJhY3RlciBzdHlsZSBydW4KKyogY29udGFpbmluZyBwb3MuICBBbGwgY2hhcmFjdGVycyBpbiBhIHN0eWxlIHJ1biBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcgorKiBzdHlsZS4KKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjaGFyYWN0ZXJTdHlsZVN0YXJ0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGNoYXJhY3RlciBzdHlsZSBydW4KKyogY29udGFpbmluZyBwb3MuICBBbGwgY2hhcmFjdGVycyBpbiBhIHN0eWxlIHJ1biBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcgorKiBzdHlsZS4KKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjaGFyYWN0ZXJTdHlsZUxpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHRoZSBzdHlsZSBhcHBsaWVkIHRvIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQXR0cmlidXRlTWFwIGNoYXJhY3RlclN0eWxlQXQoaW50IHBvcyk7CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFBBUkFHUkFQSCBCT1VOREFSSUVTCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcGFyYWdyYXBoU3RhcnQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBwYXJhZ3JhcGhMaW1pdChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiB0aGUgcGFyYWdyYXBoIHN0eWxlIGFwcGxpZWQgdG8gdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgcGFyYWdyYXBoIHN0eWxlIGluIGVmZmVjdCBhdCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGVBdChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiB0aGUgY3VycmVudCB0aW1lIHN0YW1wLiAgVGhlIHRpbWUgc3RhbXAgaXMKKyogaW5jcmVtZW50ZWQgd2hlbmV2ZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBNQ29uc3RUZXh0IGNoYW5nZXMuCisqIEByZXR1cm4gdGhlIGN1cnJlbnQgcGFyYWdyYXBoIHN0eWxlIHRpbWUgc3RhbXAKKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRUaW1lU3RhbXAoKTsKKworLyoqCisqIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UuICBJZiB0aGUgc3RhcnQgaXMgbm90IGxlc3MKKyogdGhhbiB0aGUgdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLCB0aGVuIHRoZSBkYW1hZ2VkIHJhbmdlCisqIGlzIGVtcHR5LgorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZQorKiBAc2VlICNkYW1hZ2VkUmFuZ2VMaW1pdAorKiBAc2VlIE1UZXh0I3Jlc2V0RGFtYWdlZFJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZGFtYWdlZFJhbmdlU3RhcnQoKTsKKworLyoqCisqIFJldHVybiB0aGUgbGltaXQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UuICBJZiB0aGUgc3RhcnQgaXMgbm90IGxlc3MKKyogdGhhbiB0aGUgdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLCB0aGVuIHRoZSBkYW1hZ2VkIHJhbmdlCisqIGlzIGVtcHR5LgorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZQorKiBAc2VlICNkYW1hZ2VkUmFuZ2VTdGFydAorKiBAc2VlIE1UZXh0I3Jlc2V0RGFtYWdlZFJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZGFtYWdlZFJhbmdlTGltaXQoKTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gRXF1YWxpdHkgYW5kIGhhc2hDb2RlCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogQ29tcGFyZSB0aGlzIHRvIGFub3RoZXIgT2JqZWN0IGZvciBlcXVhbGl0eS4gIFRoaXMgaXMKKyogZXF1YWwgdG8gcmhzIGlmIHJocyBpcyBhbiBNQ29uc3RUZXh0IHdoaWNoIGlzIGVxdWFsCisqIHRvIHRoaXMuCisqIEBwYXJhbSByaHMgT2JqZWN0IHRvIGNvbXBhcmUgdG8KKyogQHJldHVybiB0cnVlIGlmIHRoaXMgZXF1YWxzIDxjb2RlPnJoczwvY29kZT4KKyovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKworICAgICAgICBNQ29uc3RUZXh0IG90aGVyVGV4dDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgb3RoZXJUZXh0ID0gKE1Db25zdFRleHQpIHJoczsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGVxdWFscyhvdGhlclRleHQpOworICAgIH0KKworLyoqCisqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE1Db25zdFRleHQgZm9yIGVxdWFsaXR5LiAgVGhpcyBpcworKiBlcXVhbCB0byByaHMgaWYgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiByaHMgYXJlIHRoZQorKiBzYW1lIGFzIHRoaXMuICBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIGltcGxlbWVudGF0aW9uCisqIGZvciBlZmZpY2llbmN5LCBidXQgdGhleSBzaG91bGQgcHJlc2VydmUgdGhlc2Ugc2VtYW50aWNzLgorKiBEZXRlcm1pbmluZyB0aGF0IHR3byBNQ29uc3RUZXh0IGluc3RhbmNlcyBhcmUgZXF1YWwgbWF5IGJlCisqIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24sIHNpbmNlIGV2ZXJ5IGNoYXJhY3RlciBhbmQgc3R5bGUgbXVzdAorKiBiZSBjb21wYXJlZC4KKyogQHBhcmFtIHJocyBPYmplY3QgdG8gY29tcGFyZSB0bworKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBlcXVhbHMgPGNvZGU+cmhzPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoTUNvbnN0VGV4dCByaHMpIHsKKworICAgICAgICBpZiAocmhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyaHMgPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzaENvZGUoKSAhPSByaHMuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGxlbmd0aCgpOworICAgICAgICBpZiAobGVuZ3RoICE9IHJocy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpIDwgbGVuZ3RoICYmIGF0KGkpICE9IHJocy5hdChpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IHN0YXJ0ID0gMDsgc3RhcnQgPCBsZW5ndGg7KSB7CisgICAgICAgICAgICBpZiAoIWNoYXJhY3RlclN0eWxlQXQoc3RhcnQpLmVxdWFscyhyaHMuY2hhcmFjdGVyU3R5bGVBdChzdGFydCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbWl0ID0gY2hhcmFjdGVyU3R5bGVMaW1pdChzdGFydCk7CisgICAgICAgICAgICBpZiAobGltaXQgIT0gcmhzLmNoYXJhY3RlclN0eWxlTGltaXQoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IHN0YXJ0ID0gMDsgc3RhcnQgPCBsZW5ndGg7KSB7CisKKyAgICAgICAgICAgIGlmICghcGFyYWdyYXBoU3R5bGVBdChzdGFydCkuZXF1YWxzKHJocy5wYXJhZ3JhcGhTdHlsZUF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCA9IHBhcmFncmFwaExpbWl0KHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXJhZ3JhcGhTdHlsZUF0KGxlbmd0aCkuZXF1YWxzKHJocy5wYXJhZ3JhcGhTdHlsZUF0KGxlbmd0aCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaENvZGUgZm9yIHRoaXMgTUNvbnN0VGV4dC4gIEFuIGVtcHR5IE1Db25zdFRleHQKKyAgICAgKiBoYXMgaGFzaENvZGUgMDsgIGEgbm9uZW1wdHkgTUNvbnN0VGV4dCdzIGhhc2hDb2RlIGlzCisgICAgICogPGJsb2NrcXVvdGU+PHByZT4KKyAgICAgKiAgICAgICBhdCgwKSArCisgICAgICogICAgICAgYXQobGVuZ3RoLzIpKjMxXjEgKworICAgICAqICAgICAgIGF0KGxlbmd0aC0xKSozMV4yICsKKyAgICAgKiAgICAgICBjaGFyYWN0ZXJTdHlsZUF0KDApLmhhc2hDb2RlKCkqMzFeMyArCisgICAgICogICAgICAgcGFyYWdyYXBoU3R5bGVBdChsZW5ndGgtMSkuaGFzaENvZGUoKSozMV40CisgICAgICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICAgICAqIHdoZXJlIDxjb2RlPl48L2NvZGU+IGlzIGV4cG9uZW50aWF0aW9uIChub3QgYml0d2lzZSBYT1IpLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgaW50IGhhc2hDb2RlID0gMDsKKyAgICAgICAgaW50IGxlbmd0aCA9IGxlbmd0aCgpOworCisgICAgICAgIGlmIChsZW5ndGggPiAwKSB7CisgICAgICAgICAgICBoYXNoQ29kZSA9IHBhcmFncmFwaFN0eWxlQXQobGVuZ3RoLTEpLmhhc2hDb2RlKCk7CisgICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2hDb2RlKjMxICsgY2hhcmFjdGVyU3R5bGVBdCgwKS5oYXNoQ29kZSgpOworICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoQ29kZSozMSArIGF0KGxlbmd0aC0xKTsKKyAgICAgICAgICAgIGhhc2hDb2RlID0gaGFzaENvZGUqMzEgKyBhdChsZW5ndGgvMik7CisgICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2hDb2RlKjMxICsgYXQoMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaGFzaENvZGU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NUGFyYWdyYXBoQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01QYXJhZ3JhcGhCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYTkwMWUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NUGFyYWdyYXBoQnVmZmVyLmphdmEKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCithYnN0cmFjdCBjbGFzcyBNUGFyYWdyYXBoQnVmZmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworLyoqCisqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBhYnN0cmFjdCBpbnQgcGFyYWdyYXBoU3RhcnQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm5zIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDx0dD5wb3M8L3R0Pi4KKyovCisgICAgYWJzdHJhY3QgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8dHQ+cG9zPC90dD4uCisqLworICAgIGFic3RyYWN0IEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZUF0KGludCBvZmZzZXQpOworCisvKioKKyogUHJvY2VzcyBhIGNoYXJhY3RlciBpbnNlcnRpb24gYXQgb2Zmc2V0IDx0dD5zdGFydDwvdHQ+LgorKiBJZiBhIHBhcmFncmFwaCBicmVhayB3YXMgaW5zZXJ0ZWQsIHByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGUgYXQKKyogPHR0PnN0YXJ0PC90dD4gdG8gbmV3IHBhcmFncmFwaC4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBpbnNlcnRlZENoYXIpOworCisvKioKKyogUHJvY2VzcyBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGF0IG9mZnNldCA8dHQ+c3RhcnQ8L3R0Pi4KKyogRWFjaCBuZXcgcGFyYWdyYXBoIGdldHMgcGFyYWdyYXBoIHN0eWxlIGF0CisqIDx0dD5zdGFydDwvdHQ+LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGluc2VydFRleHQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3JjQ2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY0xpbWl0KTsKKworLyoqCisqIFByb2Nlc3MgZGVsZXRpb24gYnkgcmVtb3ZpbmcgcGFyYWdyYXBoIGJyZWFrcyBjb250YWluZWQgaW4KKyogZGVsZXRlZCByYW5nZS4gIFByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGVzIGJhY2t3YXJkLCBpZiBuZWNlc3NhcnkuCisqLworICAgIGFic3RyYWN0IHZvaWQgZGVsZXRlVGV4dChpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoKKyogUmVwbGFjZSBwYXJhZ3JhcGggYnJlYWtzL3N0eWxlcyBiZXR3ZWVuIHN0YXJ0IGFuZCBsaW1pdCB3aXRoIHBhcmFncmFwaCBicmVha3Mvc3R5bGVzCisqIGZyb20gPHR0PnNyY1RleHQ8L3R0Pi4KKyogQHBhcmFtIHN0YXJ0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBsaW1pdCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIHJlcGxhY2UKKyogQHBhcmFtIHNyY1RleHQgdGhlIHRleHQgZnJvbSB3aGljaCBuZXcgcGFyYWdyYXBocyBhcmUgdGFrZW4KKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gdG8gY29weQorKiBAcGFyYW0gc3JjTGltaXQgdGhlIGZpcnN0IGluZGV4IGFmdGVyIHRoZSByYW5nZSBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiB0byBjb3B5CisqLworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBzcmNUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoqCisqIFNldCB0aGUgc3R5bGUgb2YgYWxsIHBhcmFncmFwaHMgY29udGFpbmluZyBvZmZzZXRzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KSB0bworKiA8dHQ+c3R5bGU8L3R0Pi4KKyovCisgICAgYWJzdHJhY3QgYm9vbGVhbiBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRhbWFnZWRSYW5nZSk7CisKKy8qKgorKiBNaW5pbWl6ZSB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGNvbXByZXNzKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01TdHlsZUJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NU3R5bGVCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NjI5ZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NU3R5bGVCdWZmZXIuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoKKyAgICA4LzEvOTYKKyAgICAgICAgU3R5bGUgLT4gUmVzb2x2ZWRTdHlsZQorICAgIDgvNy85NiBqZgorICAgICAgICBhZGRlZCBjb3VudFN0eWxlcyBhbmQgZ2V0U3R5bGVzIHByb3RvY29sCisgICAgOC8xMy85NgorICAgICAgICBSZXNvbHZlZFN0eWxlLT5TdHlsZQorICAgIDgvMjIvOTYgamYKKyAgICAgICAgUmVtb3ZlZCB0aGUgc2V0SXRlcmF0b3IgbWV0aG9kcy4KKyovCisvKgorKiBNU3R5bGVCdWZmZXIgaXMgdGhlIGFic3RyYWN0IGludGVyZmFjZSBmb3IgYSBjbGFzcyB3aGljaCBtYWludGFpbnMKKyogc3R5bGUgcnVucyBpbiBhbiA8dHQ+TVRleHQ8L3R0Pi4gIEEgInN0eWxlIHJ1biIgY29uc2lzdHMgb2YgYQorKiBzdHlsZSBhbmQgdGhlIGludGVydmFsIG9uIHdoaWNoIHRoZSBzdHlsZSBhcHBsaWVzLgorKiA8cD4KKyogTVN0eWxlQnVmZmVyIGluY2x1ZGVzIG1ldGhvZHMgdG8gY2FsbCB3aGVuIHRleHQgaXMgaW5zZXJ0ZWQgaW50bworKiBvciBkZWxldGVkIGZyb20gdGhlIDx0dD5NVGV4dDwvdHQ+LiAgVGhlc2UgbWV0aG9kcyB1cGRhdGUgdGhlCisqIHN0eWxlIHJ1bnMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb21tb25seSBhY2NlcHRlZCBiZWhhdmlvciBmb3IKKyogc3R5bGUgcnVucy4KKyogPHA+CisqIEFkZGl0aW9uYWxseSwgTVN0eWxlQnVmZmVyIHByb3ZpZGVzIG1ldGhvZHMgZm9yIHJlcGxhY2luZyB0aGUgc3R5bGUgcnVucyBvbiBhCisqIHRleHQgcmFuZ2Ugd2l0aCBhbm90aGVyIHNldCBvZiBzdHlsZSBydW5zLiAgTVN0eWxlQnVmZmVyIGRvZXMgbm90IGRvIHN0eWxlICJjb21iaW5pbmciIChmb3IKKyogZXhhbXBsZSwgYWRkaW5nIHRoZSBib2xkIGF0dHJpYnV0ZSB0byB0ZXh0IHdoaWNoIGlzIGl0YWxpY2l6ZWQpOyAgY2xpZW50cyBhcmUKKyogcmVzcG9uc2libGUgZm9yIGNvbXB1dGluZyB0aGUgY29tYmluZWQgc3R5bGVzLCBhbmQgcGFzc2luZyB0aGVzZSBzdHlsZXMgaW50bworKiBNU3R5bGVCdWZmZXIuCisqIDxwPgorKiBNU3R5bGVCdWZmZXIgc3VwcGxpZXMgYSBtZXRob2QgZm9yIHJlcGxhY2luZyB0aGUgc3R5bGUgcnVucyBvbiBhIHRleHQgcmFuZ2Ugd2l0aCB0aGUgcnVucworKiByZXByZXNlbnRlZCBpbiBhbiA8dHQ+TVN0eWxlUnVuSXRlcmF0b3I8L3R0Pi4gIFRoaXMgaXMgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcGFzdGUKKyogb3BlcmF0aW9ucywgaW4gd2hpY2ggdGhlIHN0eWxlIHJ1bnMgb24gYSByYW5nZSBvZiB0ZXh0IGFyZSByZXBsYWNlZCBieSBzdHlsZSBydW5zCisqIGZyb20gYW4gZXh0ZXJuYWwgc291cmNlLgorKiA8cD4KKyoKKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgQXR0cmlidXRlTWFwCisqIEBzZWUgTVRleHQKKyovCithYnN0cmFjdCBjbGFzcyBNU3R5bGVCdWZmZXIKK3sKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisvKioKKyogUmVzcG9uZCB0byBhbiBpbnNlcnRpb24gaW4gdGhlIHRleHQuICBUaGUgbGVuZ3RoIG9mIHRoZSBsYXN0IHN0eWxlIHJ1biB3aGljaAorKiBiZWdpbnMgYmVmb3JlIDx0dD5zdGFydDwvdHQ+IGlzIGluY3JlYXNlZCBieSA8dHQ+bGltaXQtc3RhcnQ8L3R0Pi4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGluc2VydGlvbiBiZWdhbgorKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCB3aGVyZSB0aGUgaW5zZXJ0aW9uIGVuZGVkCisqLworICAgIGFic3RyYWN0IHZvaWQgaW5zZXJ0VGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qKgorKiBSZXNwb25kIHRvIGEgZGVsZXRpb24gaW4gdGhlIHRleHQuICBUaGUgbGFzdCBzdHlsZSBydW4gYmVmb3JlCisqIDx0dD5zdGFydDwvdHQ+IGlzIHRydW5jYXRlZCB0byBlbmQgYXQgPHR0PnN0YXJ0PC90dD4uICBUaGUKKyogc3R5bGUgcnVuIGNvbnRhaW5pbmcgKDx0dD5zdGFydDwvdHQ+Kzx0dD5sZW5ndGg8L3R0PikgaXMgc2V0IHRvIGJlZ2luCisqIGF0ICg8dHQ+c3RhcnQ8L3R0Pis8dHQ+bGVuZ3RoPC90dD4pLiAgUnVucyBpbiBiZXR3ZWVuIGFyZSBkZWxldGVkLgorKiBJZiB0aGUgZGVsZXRpb24gb2NjdXJzIGVudGlyZWx5IHdpdGhpbiBvbmUgc3R5bGUgcnVuLCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHlsZQorKiBydW4gaXMgcmVkdWNlZCBieSA8dHQ+bGVuZ3RoPC90dD4uCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBkZWxldGlvbiBiZWdhbgorKiBAcGFyYW0gbGVuZ3RoIHRoZSBvZmZzZXQgd2hlcmUgdGhlIGRlbGV0aW9uIGVuZGVkCisqLworICAgIGFic3RyYWN0IHZvaWQgZGVsZXRlVGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qCisqIFJlcGxhY2Ugc3R5bGUgcnVucyBiZXR3ZWVuIG9mZnNldHMgPHR0PnN0YXJ0PC90dD4gYW5kIDx0dD5saW1pdDwvdHQ+IHdpdGggc3R5bGVzIGluCisqIDx0dD5pdGVyPC90dD4uICBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIGEgInBhc3RlIiBvcGVyYXRpb24uCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSByZXBsYWNlbWVudCBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIHJlcGxhY2VtZW50IGVuZHMKKyogQHBhcmFtIGl0ZXIgYW4gPHR0Pk1TdHlsZVJ1bkl0ZXJhdG9yPC90dD4gY29udGFpbmluZyBzdHlsZSBydW5zIHdoaWNoIHdpbGwgcmVwbGFjZSBvbGQKKyogc3R5bGUgcnVucy4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHNyY1RleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKworICAgIGFic3RyYWN0IGludCBzdHlsZVN0YXJ0KGludCBwb3MpOworICAgIGFic3RyYWN0IGludCBzdHlsZUxpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHN0eWxlIGF0IGxvY2F0aW9uIDx0dD5wb3M8L3R0Pi4KKyogQHBhcmFtIHBvcyBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIGNoYXJhY3RlciBhdCA8dHQ+b2Zmc2V0PC90dD4KKyovCisgICAgYWJzdHJhY3QgQXR0cmlidXRlTWFwIHN0eWxlQXQoaW50IHBvcyk7CisKKy8qKgorICogUmV0dXJuIHRydWUgaWYgc3R5bGVzIHdlcmUgbW9kaWZpZWQuCisgKi8KKyAgICBhYnN0cmFjdCBib29sZWFuIG1vZGlmeVN0eWxlcyhpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoqCisqIE1pbmltaXplIHRoZSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgYnkgdGhpcyBvYmplY3QuCisqLworICAgIGFic3RyYWN0IHZvaWQgY29tcHJlc3MoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRhYlJ1bGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UYWJSdWxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM0MjFmNzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UYWJSdWxlci5qYXZhCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgcmVwcmVzZW50cyBhIHNlcXVlbmNlIG9mIFRhYlN0b3BzLCBvcmRlcmVkIGJ5IHBvc2l0aW9uLgorICogVGhlIGZpcnN0CisgKiBUYWJTdG9wIGluIHRoZSBydWxlciBjYW4gYmUgb2J0YWluZWQgd2l0aCB0aGUgPGNvZGU+Zmlyc3RUYWI8L2NvZGU+CisgKiBtZXRob2Q7ICBzdWJzZXF1ZW50IFRhYlN0b3BzIGFyZSBvYnRhaW5lZCB3aXRoIHRoZSA8Y29kZT5uZXh0VGFiPC9jb2RlPgorICogbWV0aG9kLgorICogPHA+CisgKiBJZiBhIFRhYlN0b3Agd2l0aCB0eXBlIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+IGlzIHJldHVybmVkLCBhbGwgdGFicworICogYWZ0ZXIgdGhhdCBUYWJTdG9wIHdpbGwgYWxzbyBoYXZlIHR5cGUgPGNvZGU+VGFiU3RvcC5rQXV0bzwvY29kZT4sIGFuZAorICogdGhlaXIgcG9zaXRpb25zIHdpbGwgYmUgbXVsdGlwbGVzIG9mIDxjb2RlPmF1dG9TcGFjaW5nPC9jb2RlPi4KKyAqIEBzZWUgVGFiU3RvcAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTVRhYlJ1bGVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gZmlyc3QgdGFiIGluIHRoZSBydWxlci4gIElmIGFuIGF1dG9UYWIsIGl0IGlzIGF0IHBvc2l0aW9uIHplcm8sIGFuZAorICAgICAqIGFsbCBzdWJzZXF1ZW50IHRhYnMgd2lsbCBiZSBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRhYlN0b3AgZmlyc3RUYWIoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgdGFiIGluIHRoZSBydWxlciB3aXRoIGZQb3NpdGlvbiA+IHBvc2l0aW9uLiAgSWYgaXQgaXMgYW4KKyAgICAgKiBhdXRvdGFiLCBpdCBpcyBhdCBhbiBpbmNyZW1lbnQgb2YgYXV0b1NwYWNpbmcsIGFuZCBhbGwgc3Vic2VxdWVudCB0YWJzIHdpbGwgYmUKKyAgICAgKiBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRhYlN0b3AgbmV4dFRhYihpbnQgcG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbnRlcnZhbCBmb3IgYXV0b3RhYnMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBhdXRvU3BhY2luZygpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgaGFzaENvZGUgZm9yIHRoaXMgcnVsZXIuICBUaGUgaGFzaENvZGUgaXMgdGhlCisgICAgICogaGFzaENvZGUgb2YgdGhlIGZpcnN0IHRhYiBtdWx0aXBsaWVkIGJ5IHRoZSBhdXRvU3BhY2luZworICAgICAqIGludGVydmFsLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZpcnN0VGFiKCkuaGFzaENvZGUoKSAqIGF1dG9TcGFjaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyB0YWIgcnVsZXIgY29udGFpbnMgdGhlIGdpdmVuIHRhYi4KKyAgICAgKiBAcGFyYW0gdGFiVG9UZXN0IHRoZSB0YWIgdG8gc2VhcmNoIGZvcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHRhYiBydWxlciBjb250YWlucyA8Y29kZT50YWJUb1Rlc3Q8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNUYWIoVGFiU3RvcCB0YWJUb1Rlc3QpIHsKKworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gZmlyc3RUYWIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYiA9IG5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpKSB7CisgICAgICAgICAgICBpZiAodGFiLmdldFBvc2l0aW9uKCkgPj0gdGFiVG9UZXN0LmdldFBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFiVG9UZXN0LmVxdWFscyh0YWIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHRhYiBydWxlciBpZGVudGljYWwgdG8gdGhpcyBydWxlciwgZXhjZXB0IHdpdGggdGhlCisgICAgICogZ2l2ZW4gdGFiIGFkZGVkLiAgVGhpcyBydWxlciBpcyBub3QgbW9kaWZpZWQuCisgICAgICogQHBhcmFtIHRhYlRvQWRkIHRoZSB0YWIgdG8gYWRkIHRvIHRoZSBuZXcgdGFiIHJ1bGVyCisgICAgICogQHJldHVybiBhbiBNVGFiUnVsZXIgcmVzdWx0aW5nIGZyb20gdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGFkZFRhYihUYWJTdG9wIHRhYlRvQWRkKSB7CisKKyAgICAgICAgcmV0dXJuIFN0YW5kYXJkVGFiUnVsZXIuYWRkVGFiVG9SdWxlcih0aGlzLCB0YWJUb0FkZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24gcmVtb3ZlZC4gIFRoaXMgcnVsZXIgaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiB0byByZW1vdmUgZnJvbSB0aGUgbmV3IHRhYiBydWxlcgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciByZW1vdmVUYWIoaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgcmV0dXJuIFN0YW5kYXJkVGFiUnVsZXIucmVtb3ZlVGFiRnJvbVJ1bGVyKHRoaXMsIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSB0YWIgcnVsZXIgaWRlbnRpY2FsIHRvIHRoaXMgcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCBwb3NpdGlvbiA8Y29kZT5mcm9tUG9zaXRpb248L2NvZGU+IG1vdmVkIHRvIHBvc2l0aW9uCisgICAgICogPGNvZGU+dG9Qb3NpdGlvbjwvY29kZT4uICBUaGlzIHJ1bGVyIGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gZnJvbVBvc2l0aW9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFiIHRvIG1vdmUKKyAgICAgKiBAcGFyYW0gdG9Qb3NpdGlvbiB0aGUgbmV3IHBvc2l0aW9uIG9mIHRoZSB0YWIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgbW92ZVRhYihpbnQgZnJvbVBvc2l0aW9uLCBpbnQgdG9Qb3NpdGlvbikgeworCisgICAgICAgIHJldHVybiBTdGFuZGFyZFRhYlJ1bGVyLm1vdmVUYWJPblJ1bGVyKHRoaXMsIGZyb21Qb3NpdGlvbiwgdG9Qb3NpdGlvbik7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2MzOWZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NVGV4dC5qYXZhCkBAIC0wLDAgKzEsMjQxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgQ2hhbmdlIGhpc3Rvcnk6CisKKyAgICAxMC8yOS85NiBqZWYgICAgc3BsaXQgdGhlIGNoYXJhY3RlciBhbmQgcGFyYWdyYXBoIHN0eWxlIGFjY2VzcyBmdW5jdGlvbnMKKyAgICA4LzE0Lzk2IHNmYiAgICAgZWxpbWluYXRlZCBTdHlsZVNoZWV0SXRlcmF0b3IKKyAgICA4LzIxLzk2IGplZiAgICAgICAgY29tcGxldGVkIGFic3RyYWN0IGludGVyZmFjZSAoY2hhbmdlZCBpdGVyYXRvciBjbGFzc2VzIGV0Yy4pCisgICAgMS8zMC85NyBydGcgICAgIGNsZWFuZWQgdXAgaW50ZXJmYWNlLCBicm91Z2h0IGluIGZ1bmN0aW9ucyBmcm9tIFNpbXBsZVRleHRWaWV3CisgICAgNy8zMS85OCBqYnIgc3dpdGNoZWQgZnJvbSBTdHlsZSB0byBBdHRyaWJ1dGVNYXAKKworKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgbXV0YWJsZSBleHRlbnNpb24gb2YgTUNvbnN0VGV4dC4gIEl0IGhhcyBtZXRob2RzIGZvcgorICogaW5zZXJ0aW5nLCBhcHBlbmRpbmcsIHJlcGxhY2luZywgYW5kIHJlbW92aW5nIHN0eWxlZCB0ZXh0LiAgQWRkaXRpb25hbGx5LAorICogaXQgaGFzIG1ldGhvZHMgZm9yIG1vZGlmeWluZyBwYXJhZ3JhcGggYW5kIGNoYXJhY3RlciBzdHlsZXMuCisgKiA8cD4KKyAqIFN0eWxlZCBjaGFyYWN0ZXJzIChmcm9tIGFub3RoZXIgPGNvZGU+TUNvbnN0VGV4dDwvY29kZT4gaW5zdGFuY2UpIGFkZGVkCisgKiB0byB0aGUgdGV4dCByZXRhaW4gdGhlaXIgb3JpZ2luYWwgY2hhcmFjdGVyIHN0eWxlcy4gIFRoZSBzdHlsZSBvZiBwbGFpbiBjaGFyYWN0ZXJzCisgKiAoc3BlY2lmaWVkIGFzIGEgPGNvZGU+Y2hhcjwvY29kZT4gb3IgPGNvZGU+Y2hhcltdPC9jb2RlPikgaXMgYWx3YXlzCisgKiBzcGVjaWZpZWQgZXhwbGljaXRseSB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIHRoZSB0ZXh0LiAgTVRleHQgZG9lcyBub3QgZG8KKyAqIGNoYXJhY3RlciBzdHlsZSAicHJvcGFnYXRpb24iLCB3aGVyZSB1bnN0eWxlZCBjaGFyYWN0ZXJzIHRha2Ugb24gdGhlCisgKiBzdHlsZSBvZiBwcmV2aW91cyBjaGFyYWN0ZXJzLiAgQ2xpZW50cyBjYW4gaW1wbGVtZW50IHRoaXMgYmVoYXZpb3IgYnkKKyAqIHNwZWNpZnlpbmcgdGhlIHN0eWxlcyB0byBwcm9wYWdhdGUuCisgKiA8cD4KKyAqIFdoZW4gdW5zdHlsZWQgY2hhcmFjdGVycyBhcmUgYWRkZWQgdG8gdGhlIHRleHQsIHRoZWlyIHBhcmFncmFwaCBzdHlsZQorICogaXMgdGhlIHBhcmFncmFwaCBzdHlsZSBpbiBlZmZlY3QgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgbmV3IGNoYXJhY3Rlci4KKyAqIElmIHRoZSBjaGFyYWN0ZXJzIGNvbnRhaW4gcGFyYWdyYXBoIHNlcGFyYXRvcnMsIHRoZW4gZXZlcnkgbmV3IHBhcmFncmFwaAorICogd2lsbCBoYXZlIHRoZSBzYW1lIHBhcmFncmFwaCBzdHlsZS4gIFdoZW4gc3R5bGVkIGNoYXJhY3RlcnMgYXJlIGFkZGVkCisgKiB0byB0aGUgdGV4dCwgdGhlaXIgcmVzdWx0aW5nIHBhcmFncmFwaCBzdHlsZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICogZm9sbG93aW5nIHJ1bGU6CisgKiA8YmxvY2txdW90ZT4KKyAqIFRoZSBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZSBuZXcgdGV4dAorICogYmVjb21lIHRoZSBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZSB0YXJnZXQgdGV4dCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZQorICogbGFzdCBwYXJhZ3JhcGggaW4gdGhlIG5ldyB0ZXh0LCB3aGljaCB0YWtlcyBvbiB0aGUgcGFyYWdyYXBoIHN0eWxlIGluCisgKiBlZmZlY3QgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGluc2VydGVkIHRleHQuCisgKiBJZiB0aGUgbmV3IHRleHQgaXMgYWRkZWQgYXQgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQsIHRoZSBuZXcgdGV4dCdzCisgKiBwYXJhZ3JhcGggc3R5bGVzIHRha2UgZWZmZWN0IGluIGFueSBwYXJhZ3JhcGggYWZmZWN0ZWQgYnkgdGhlIGFkZGl0aW9uLgorICogPC9ibG9ja3F1b3RlPgorICogRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhlcmUgaXMgYSBzaW5nbGUgcGFyYWdyYXBoIG9mIHRleHQgd2l0aCBzdHlsZSAnQScsCisgKiBkZWxpbWl0ZWQgd2l0aCBhIHBhcmFncmFwaCBzZXBhcmF0b3IgJ1AnOgorICogPGJsb2NrcXVvdGU+CisgKiBBQUFBQUFQCisgKiA8L2Jsb2NrcXVvdGU+CisgKiBTdXBwb3NlIHRoZSBmb2xsb3dpbmcgc3R5bGVkIHBhcmFncmFwaHMgYXJlIGluc2VydGVkIGludG8gdGhlIGFib3ZlIHRleHQKKyAqIGFmdGVyIHRoZSBmb3VydGggY2hhcmFjdGVyOgorICogPGJsb2NrcXVvdGU+CisgKiBCQkJCUENDQ1BEREQKKyAqIDwvYmxvY2txdW90ZT4KKyAqIFRoZW4gdGhlIG9yaWdpbmFsIHBhcmFncmFwaCBzdHlsZSBvZiBlYWNoIGNoYXJhY3RlciBpczoKKyAqIDxibG9ja3F1b3RlPgorICogQUFBQUJCQkJQQ0NDUEREREFBUAorICogPC9ibG9ja3F1b3RlPgorICogVGhlIHJlc3VsdGluZyBwYXJhZ3JhcGggc3R5bGVzIGFyZToKKyAqIDxibG9ja3F1b3RlPgorICogQkJCQkJCQkJQQ0NDUEFBQUFBUAorICogPC9ibG9ja3F1b3RlPgorICogU2ltaWxhcmx5LCBpZiBjaGFyYWN0ZXJzIGFyZSBkZWxldGVkLCB0aGUgcGFyYWdyYXBoIHN0eWxlIGltbWVkaWF0ZWx5CisgKiBhZnRlciB0aGUgZGVsZXRpb24gdGFrZXMgZWZmZWN0IG9uIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgZGVsZXRpb24uCisgKiBTbywgaWYgY2hhcmFjdGVycyA0LTE2IHdlcmUgZGVsZXRlZCBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIHBhcmFncmFwaAorICogc3R5bGVzIHdvdWxkIGJlOgorICogPGJsb2NrcXVvdGU+CisgKiBBQUFBQUFQCisgKiA8L2Jsb2NrcXVvdGU+CisgKiBUaGlzIHBhcmFncmFwaC1zdHlsZSBwcm9wYWdhdGlvbiBwb2xpY3kgaXMgc29tZXRpbWVzIHJlZmVycmVkIHRvIGFzIDxzdHJvbmc+CisgKiBmb2xsb3dpbmcgc3R5bGVzIHdpbjwvc3Ryb25nPiwgc2luY2Ugc3R5bGVzIGF0IHRoZSBlbmQgb2YgdGhlIHBhcmFncmFwaAorICogYmVjb21lIHRoZSBzdHlsZSBmb3IgdGhlIGVudGlyZSBwYXJhZ3JhcGguCisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgY2FuIGFjY3VtdWxhdGUgYSA8c3Ryb25nPmRhbWFnZWQgcmFuZ2U8L3N0cm9uZz4gLSBhbiBpbnRlcnZhbCBpbgorICogd2hpY2ggY2hhcmFjdGVycywgY2hhcmFjdGVyIHN0eWxlcywgb3IgcGFyYWdyYXBoIHN0eWxlcyBoYXZlIGNoYW5nZWQuICBUaGlzIGlzCisgKiB1c2VmdWwgZm9yIGNsaWVudHMgc3VjaCBhcyB0ZXh0IGVkaXRvcnMgd2hpY2ggcmVmb3JtYXQgYW5kIGRyYXcgdGV4dCBhZnRlcgorICogY2hhbmdlcy4gIFVzdWFsbHkgdGhlIGRhbWFnZWQgcmFuZ2UgaXMgZXhhY3RseSB0aGUgcmFuZ2Ugb2YgY2hhcmFjdGVycworICogb3BlcmF0ZWQgdXBvbjsgIGhvd2V2ZXIsIGxhcmdlciByYW5nZXMgbWF5IGJlIGRhbWFnZWQgaWYgcGFyYWdyYXBoIHN0eWxlcworICogY2hhbmdlLgorICogQHNlZSBTdHlsZU1vZGlmaWVyCisgKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIE1UZXh0IGV4dGVuZHMgTUNvbnN0VGV4dAoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJvdGVjdGVkIE1UZXh0KCkgeworICAgIH0KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTUFJTiBDSEFSQUNURVIgTU9ESUZJQ0FUSU9OIEZVTkNUSU9OUworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gaW4gdGhlIHJhbmdlIFs8Y29kZT5zcmNTdGFydDwvY29kZT4sIDxjb2RlPnNyY0xpbWl0PC9jb2RlPikuICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjVGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKiBAcGFyYW0gc3JjU3RhcnQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgd2lsbCBiZSBvYnRhaW5lZAorKiBAcGFyYW0gc3JjTGltaXQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGVuZAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHNyY1RleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4uICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQpOworCisvKioKKyogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGluIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiBpbiB0aGUgcmFuZ2UgWzxjb2RlPnNyY1N0YXJ0PC9jb2RlPiwgPGNvZGU+c3JjTGltaXQ8L2NvZGU+KS4gIE5ldyBjaGFyYWN0ZXJzIHRha2Ugb24gdGhlIHN0eWxlCisqIDxjb2RlPmNoYXJzU3R5bGU8L2NvZGU+LgorKiA8Y29kZT5zcmNDaGFyczwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhcnMgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCisqIEBwYXJhbSBzcmNTdGFydCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIHdpbGwgYmUgb2J0YWluZWQKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNDaGFyczwvY29kZT4gd2hlcmUgdGhlIG5ldyBjaGFyYWN0ZXJzIGVuZAorKiBAcGFyYW0gY2hhcnNTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIG5ldyBjaGFyYWN0ZXJzCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIEF0dHJpYnV0ZU1hcCBjaGFyc1N0eWxlKTsKKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVyIDxjb2RlPnNyY0NoYXI8L2NvZGU+LgorKiBUaGUgbmV3IGNoYXJhY3RlciB0YWtlcyBvbiB0aGUgc3R5bGUgPGNvZGU+Y2hhclN0eWxlPC9jb2RlPgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhciB0aGUgbmV3IGNoYXJhY3RlcgorKiBAcGFyYW0gY2hhclN0eWxlIHRoZSBzdHlsZSBvZiB0aGUgbmV3IGNoYXJhY3RlcgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyIHNyY0NoYXIsIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGUpOworCisvKioKKyogUmVwbGFjZSB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIHRoaXMgTVRleHQgKGJvdGggY2hhcmFjdGVycyBhbmQgc3R5bGVzKSB3aXRoCisqIHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPi4KKyogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVwbGFjZUFsbChNQ29uc3RUZXh0IHNyY1RleHQpOworCisvKioKKyogSW5zZXJ0IHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPiAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIGludG8gdGhpcworKiBNVGV4dCBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgVGhlIGNoYXJhY3RlciBvZmZzZXQgd2hlcmUgdGhlIG5ldyB0ZXh0IGlzIHRvIGJlIGluc2VydGVkLgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBpbnNlcnQuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgaW5zZXJ0KGludCBwb3MsIE1Db25zdFRleHQgc3JjVGV4dCk7CisKKy8qKgorKiBBcHBlbmQgdGhlIGNvbnRlbnRzIG9mIDxjb2RlPnNyY1RleHQ8L2NvZGU+IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgdG8gdGhlCisqIGVuZCBvZiB0aGlzIE1UZXh0LgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBhcHBlbmQuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYXBwZW5kKE1Db25zdFRleHQgc3JjVGV4dCk7CisKKy8qKgorKiBEZWxldGUgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIChhbmQgc3R5bGVzKS4KKyogQHBhcmFtIHN0YXJ0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGRlbGV0ZS4KKyogQHBhcmFtIGxpbWl0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSByYW5nZSB0byBkZWxldGUuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlKGludCBzdGFydCwgaW50IGxpbWl0KTsKKworLyoqCisqIERlbGV0ZSBhbGwgY2hhcmFjdGVycyBhbmQgc3R5bGVzLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmUoKTsKKworLyoqCisqIENyZWF0ZSBhbiBNVGV4dCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlCisqIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHJldHVybiBhbiBNQ29uc3RUZXh0IG9iamVjdCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIGdpdmVuIHJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBNVGV4dCBleHRyYWN0V3JpdGFibGUoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFNUT1JBR0UgTUFOQUdFTUVOVAorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyogTWluaW1pemUgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSB0aGUgTVRleHQgb2JqZWN0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjb21wcmVzcygpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTVFlMRSBNT0RJRklDQVRJT04KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisqIFNldCB0aGUgY2hhcmFjdGVyIHN0eWxlIG9mIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBNVGV4dCBvYmplY3QgdG8KKyogPGNvZGU+QXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA8L2NvZGU+LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVDaGFyYWN0ZXJTdHlsZXMoKTsKKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIGNoYXJhY3RlciBzdHlsZXMgZnJvbSBzdGFydCB0byBsaW1pdC4KKyogQHBhcmFtIG1vZGlmaWVyIHRoZSBtb2RpZmllciB0byBhcHBseSB0byB0aGUgcmFuZ2UuCisqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKTsKKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocworKiBjb250YWluaW5nIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFtzdGFydCwgbGltaXQpLgorKiBAcGFyYW0gbW9kaWZpZXIgdGhlIG1vZGlmaWVyIHRvIGFwcGx5IHRvIHRoZSByYW5nZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBEQU1BR0VEIFJBTkdFCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmVzZXQgdGhlIGRhbWFnZWQgcmFuZ2UgdG8gYW4gZW1wdHkgaW50ZXJ2YWwsIGFuZCBiZWdpbiBhY2N1bXVsYXRpbmcgdGhlIGRhbWFnZWQKKyogcmFuZ2UuICBUaGUgZGFtYWdlZCByYW5nZSBpbmNsdWRlcyBldmVyeSBpbmRleCB3aGVyZSBhIGNoYXJhY3RlciwgY2hhcmFjdGVyIHN0eWxlLAorKiBvciBwYXJhZ3JhcGggc3R5bGUgaGFzIGNoYW5nZWQuCisqIEBzZWUgI2RhbWFnZWRSYW5nZVN0YXJ0CisqIEBzZWUgI2RhbWFnZWRSYW5nZUxpbWl0CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlc2V0RGFtYWdlZFJhbmdlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1BhcmFncmFwaEJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9QYXJhZ3JhcGhCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNWNhZDk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9QYXJhZ3JhcGhCdWZmZXIuamF2YQpAQCAtMCwwICsxLDcxNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgUmlnaHQgbm93LCB5b3UgaGF2ZSB0byBjb25zdHJ1Y3QgdGhpcyBjbGFzcyB3aXRoIGEgY2hhckJ1ZmZlci4gIFRoYXQncyBwcmV0dHkgdWdseS4uLiAqLworCisvKgorICAgIDgvOC85NgorICAgICAgICBBZGRlZCByZXBsYWNlIG1ldGhvZCwgd2hpY2ggcmVhZHMgc3R5bGVzIGZyb20gYSBQYXJhZ3JhcGhJdGVyYXRvci4KKyAgICAgICAgQWxzbywgYWRkZWQgYSBjb25zdHJ1Y3RvciB3aGljaCB0YWtlcyBhIFBhcmFncmFwaEl0ZXJhdG9yLgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBmb3IgY29weS9wYXN0ZSBzdXBwb3J0LgorCisgICAgOC8yMi85NgorICAgICAgICBSZXBsYWNlIG1ldGhvZCAod2hpY2ggdGFrZXMgYW4gaXRlcmF0b3IgYXMgYW4gYXJndW1lbnQpIHRlc3RzIGZvciBhCisgICAgICAgIDAtbGVuZ3RoIGl0ZXJhdG9yLgorCisgICAgOS8zMC85NgorICAgICAgICB7amJyfSBtb2RpZmllZCBwYXJhZ3JhcGhMaW1pdCgpOworCisgICAgMTAvMjMvOTYKKyAgICAgICAgVGhpcyBjbGFzcyBub3cgbWFpbnRhaW5zIHBhcmFncmFwaCBzdHlsZXMuICBBbHNvIGhhcyBhIHRpbWVzdGFtcC4KKworICAgIDEwLzI1Lzk2CisgICAgICAgIEhvbGRzIG9uIHRvIFN0eWxlIGluc3RlYWQgb2YgU3R5bGUuCisKKyAgICA3LzMxLzk4IFN3aXRjaGVkIHRvIEF0dHJpYnV0ZU1hcAorCisqLworCisvKioKKyogVGhpcyBjbGFzcyBzdG9yZXMgb2Zmc2V0cyB3aGVyZSBwYXJhZ3JhcGggYnJlYWtzIG9jY3VyLCBhbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8KKyogZWFjaCBwYXJhZ3JhcGguCisqCisqIFRoZSBvZmZzZXRzIHdoZXJlIHBhcmFncmFwaCBicmVha3Mgb2NjdXIgYXJlIHN0b3JlZCBpbiBhIFJ1bkFycmF5IG9iamVjdC4gIFRoaXMgaXMKKyogbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwgYnV0IGl0IG1ha2VzIHNjYW5uaW5nIHRoZSB0ZXh0IGZvciBwYXJhZ3JhcGggYnJlYWtzIHVubmVjZXNzYXJ5LgorKiBIb3dldmVyLCBpdCBtYWtlcyBkZXRlcm1pbmluZyB3aGVyZSBwYXJhZ3JhcGhzIHN0YXJ0IGEgbGl0dGxlIGNvbmZ1c2luZy4gIElmIHRoZXJlIGlzIGEKKyogcGFyYWdyYXBoIGJyZWFrIGF0IG9mZnNldCBwLCB0aGVuIHRoZXJlIHdpbGwgYmUgYSBwYXJhZ3JhcGggc3RhcnQgYXQgb2Zmc2V0IHArMS4KKyogSWYgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGlzIGEgcGFyYWdyYXBoIGJyZWFrLCB0aGVyZSB3aWxsIGJlIGEgcnVuIGFycmF5IGVudHJ5CisqIGZvciB0aGF0IGNoYXJhY3RlciAoYW5kIGFsc28gYSBwYXJhZ3JhcGggc3R5bGUgZm9yIHRoYXQgcGFyYWdyYXBoLCBldmVuIHRob3VnaCB0aGUKKyogc3R5bGUgZG9lcyBub3QgYXBwbHkgdG8gYW55IHRleHQpLgorKgorKiBUaGUgc3R5bGUgb2YgdGhlIGZpcnN0IHBhcmFncmFwaCBpbiB0aGUgdGV4dCBpcyBpbiB0aGUgZkZpcnN0U3R5bGUgbWVtYmVyLiAgT3RoZXIKKyogcGFyYWdyYXBoIHN0eWxlcyBhcmUgc3RvcmVkIGluIHRoZSBmU3R5bGVUYWJsZSBhcnJheSwgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXI6ICB0aGUKKyogcGFyYWdyYXBoIHdpdGggYmVnaW5zIGF0IG9mZnNldCBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ldKzEgaGFzIHN0eWxlIGZTdHlsZVRhYmxlW2ldLgorKiBUaGUgc3R5bGUgdGFibGUncyAiZ2FwIHJhbmdlIiBpcyBrZXB0IGluIHN5bmMgd2l0aCB0aGUgUnVuQXJyYXkuCisqCisqIFRoaXMgY2xhc3MgcHJvcG9nYXRlcyBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZSAiTWljcm9zb2Z0IFdvcmQiIGZhc2hpb246ICBzdHlsZXMKKyogcHJvcG9nYXRlIGJhY2t3YXJkIGZyb20gcGFyYWdyYXBoIGJyZWFrcy4KKyoKKyogVGhpcyBjbGFzcyBtYWludGFpbnMgYSB0aW1lIHN0YW1wLCB3aGljaCBjaGFuZ2VzIGV2ZXJ5IHRpbWUgZXh0cmEgZm9ybWF0dGluZyAoZm9ybWF0dGluZworKiBvbiBhIHJhbmdlIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgc2VsZWN0aW9uKSBpcyBuZWVkZWQ7ICBmb3IgZXhhbXBsZSwgd2hlbiBhIHBhcmFncmFwaAorKiBicmVhayBpcyByZW1vdmVkLgorKi8KKworCitmaW5hbCBjbGFzcyBQYXJhZ3JhcGhCdWZmZXIgZXh0ZW5kcyBNUGFyYWdyYXBoQnVmZmVyIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0luaXRpYWxTaXplID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICBwcml2YXRlIFJ1bkFycmF5IGZSdW5BcnJheTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcFtdIGZTdHlsZVRhYmxlOworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZGaXJzdFN0eWxlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1BhcmFncmFwaEJyZWFrKGNoYXIgYykgeworCisgICAgICAgIHJldHVybiBjID09J1x1MjAyOScgfHwgYyA9PSAnXG4nOworICAgIH0KKworLyoqCisqIENvbnN0cnVjdCBhIG5ldyBwYXJhZ3JhcGggYnVmZmVyIGZyb20gdGhlIGNoYXJhY3RlcnMgaW4gPHR0PmNoYXJCdWZmZXI8L3R0Pi4KKyovCisgICAgUGFyYWdyYXBoQnVmZmVyKE1DaGFyQnVmZmVyIGNoYXJCdWZmZXIpIHsKKworICAgICAgICB0aGlzKGNoYXJCdWZmZXIubGVuZ3RoKCkpOworCisgICAgICAgIC8vIHNjYW4gdGV4dCBmb3IgcGFyYWdyYXBoIGJvdW5kYXJpZXMKKworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgcG9zPTA7IHBvcyA8IHRleHRMZW5ndGg7IHBvcysrKSB7CisKKyAgICAgICAgICAgIGlmIChpc1BhcmFncmFwaEJyZWFrKGNoYXJCdWZmZXIuYXQocG9zKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlKCk7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFsrK2ZSdW5BcnJheS5mUG9zRW5kXSA9IHBvczsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBmRmlyc3RTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisvKioKKyogUHJpdmF0ZSBjb25zdHJ1Y3Rvci4KKyovCisgICAgcHJpdmF0ZSBQYXJhZ3JhcGhCdWZmZXIoaW50IGluaXRpYWxMZW5ndGgpIHsKKworICAgICAgICBmUnVuQXJyYXkgPSBuZXcgUnVuQXJyYXkoa0luaXRpYWxTaXplLCBpbml0aWFsTGVuZ3RoKTsKKyAgICAgICAgZlN0eWxlVGFibGUgPSBuZXcgQXR0cmlidXRlTWFwW2ZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpXTsKKworICAgICAgICBmRmlyc3RTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vdGU6IHRoaXMgY29uc3RydWN0b3IgaXMgT05MWSBmb3IgdXNlIGJ5IHRoZSBTZXJpYWxpemF0aW9uCisgICAgICogbWVjaGFuaXNtLiAgSXQgZG9lcyBub3QgbGVhdmUgdGhpcyBvYmplY3QgaW4gYSB2YWxpZCBzdGF0ZSEKKyAgICAgKi8KKyAgICBwdWJsaWMgUGFyYWdyYXBoQnVmZmVyKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBjb21wcmVzcygpOworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZSdW5BcnJheSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmU3R5bGVUYWJsZSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmRmlyc3RTdHlsZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgUGFyYWdyYXBoQnVmZmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZlJ1bkFycmF5ID0gKFJ1bkFycmF5KSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gKEF0dHJpYnV0ZU1hcFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZGaXJzdFN0eWxlID0gKEF0dHJpYnV0ZU1hcCkgaW4ucmVhZE9iamVjdCgpOworICAgIH0KKworLyoqCisqIFNoaWZ0IHRhYmxlIHN1Y2ggdGhhdCB0aGUgbGFzdCBwb3NpdGl2ZSBydW4gc3RhcnRzIGJlZm9yZSBwb3MuCisqLworICAgIHByaXZhdGUgdm9pZCBzaGlmdFRhYmxlVG8oaW50IHBvcykgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKworICAgICAgICBmUnVuQXJyYXkuc2hpZnRUYWJsZVRvKHBvcyk7CisKKyAgICAgICAgaWYgKG9sZFBvc0VuZCA+IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgZlJ1bkFycmF5LmZQb3NFbmQrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBvc0VuZC1mUnVuQXJyYXkuZlBvc0VuZCk7CisgICAgICAgIGVsc2UgaWYgKG9sZE5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIG9sZE5lZ1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZSwgb2xkUG9zRW5kKzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQtb2xkTmVnU3RhcnQpOworICAgIH0KKworLyoqCisqIFVwZGF0ZSB0aGUgc3R5bGUgdGFibGUgdG8gcmVmbGVjdCBhIGNoYW5nZSBpbiB0aGUgUnVuQXJyYXkncyBzaXplLgorKi8KKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQXJyYXlSZXNpemUoaW50IG9sZE5lZ1N0YXJ0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlVGFibGVbXSA9IG5ldyBBdHRyaWJ1dGVNYXBbZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCldOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCAwLCBuZXdTdHlsZVRhYmxlLCAwLCBmUnVuQXJyYXkuZlBvc0VuZCsxKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgb2xkTmVnU3RhcnQsIG5ld1N0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsIChmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKS1mUnVuQXJyYXkuZk5lZ1N0YXJ0KSk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3U3R5bGVUYWJsZTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXByZXNzKCkgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGZSdW5BcnJheS5jb21wcmVzcygpOworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCAhPSBvbGROZWdTdGFydCkgeworICAgICAgICAgICAgaGFuZGxlQXJyYXlSZXNpemUob2xkTmVnU3RhcnQpOworICAgICAgICB9CisgICAgfQorCisvKioKKyogTWFrZSBtb3JlIHJvb20gaW4gcnVuL3N0eWxlIHRhYmxlcy4KKyovCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZFN0eWxlVGFibGUoKSB7CisKKyAgICAgICAgaW50IG9sZE5lZ1N0YXJ0ID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZlJ1bkFycmF5LmV4cGFuZFJ1blRhYmxlKCk7CisgICAgICAgIGhhbmRsZUFycmF5UmVzaXplKG9sZE5lZ1N0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBQcm9jZXNzIGEgY2hhcmFjdGVyIGluc2VydGlvbiBhdCBvZmZzZXQgPHR0PnN0YXJ0PC90dD4uCisqIElmIGEgcGFyYWdyYXBoIGJyZWFrIHdhcyBpbnNlcnRlZCwgcHJvcG9nYXRlIHBhcmFncmFwaCBzdHlsZSBhdAorKiA8dHQ+c3RhcnQ8L3R0PiB0byBuZXcgcGFyYWdyYXBoLgorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBpbnNlcnRlZENoYXIpIHsKKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayhpbnNlcnRlZENoYXIpKSB7CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGUoKTsKKyAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBzdGFydDsKKyAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9CisgICAgICAgICAgICAgICAgKGZSdW5BcnJheS5mUG9zRW5kID09IDApPyBmRmlyc3RTdHlsZSA6IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kLTFdOworICAgICAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vZlJ1bkFycmF5LmZDdXJUZXh0TGVuZ3RoKys7CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoMSk7CisgICAgfQorCisvKioKKyogUHJvY2VzcyBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGF0IG9mZnNldCA8dHQ+c3RhcnQ8L3R0Pi4KKyogRWFjaCBuZXcgcGFyYWdyYXBoIGdldHMgcGFyYWdyYXBoIHN0eWxlIGF0CisqIDx0dD5zdGFydDwvdHQ+LgorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBzcmNDaGFyc1tdLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkgeworCisgICAgICAgIHNoaWZ0VGFibGVUbyhzdGFydCk7CisKKyAgICAgICAgaW50IGFkanVzdCA9IHN0YXJ0IC0gc3JjU3RhcnQ7CisKKyAgICAgICAgZm9yIChpbnQgaT1zcmNTdGFydDsgIGkgPCBzcmNMaW1pdDsgaSsrKQorICAgICAgICAgICAgaWYgKGlzUGFyYWdyYXBoQnJlYWsoc3JjQ2hhcnNbaV0pKSB7CisgICAgICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kKzEgPj0gZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZSgpOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBhZGp1c3QgKyBpOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9CisgICAgICAgICAgICAgICAgICAgIChmUnVuQXJyYXkuZlBvc0VuZCA9PSAwKT8gZkZpcnN0U3R5bGUgOiBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZC0xXTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIC8vZlJ1bkFycmF5LmZDdXJUZXh0TGVuZ3RoICs9IChzcmNMaW1pdC1zcmNTdGFydCk7CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoc3JjTGltaXQtc3JjU3RhcnQpOworICAgIH0KKworLyoqCisqIFByb2Nlc3MgZGVsZXRpb24gYnkgcmVtb3ZpbmcgcGFyYWdyYXBoIGJyZWFrcyBjb250YWluZWQgaW4KKyogZGVsZXRlZCByYW5nZS4gIFByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGVzIGJhY2t3YXJkLCBpZiBuZWNlc3NhcnkuCisqLworICAgIHB1YmxpYyB2b2lkIGRlbGV0ZVRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludFtdIGRhbWFnZWRSYW5nZSkgeworCisgICAgICAgIGludCBsZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBpZiAobGVuZ3RoIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByYW5nZSIpOworICAgICAgICB9CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKGxpbWl0KTsKKworICAgICAgICBpbnQgbmV3RW5kID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHN0YXJ0LTEpOworCisgICAgICAgIGlmIChuZXdFbmQgIT0gZlJ1bkFycmF5LmZQb3NFbmQpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHByb3BTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXTsKKyAgICAgICAgICAgIGJvb2xlYW4gcHJvcG9nYXRlZDsKKworICAgICAgICAgICAgaWYgKG5ld0VuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgIHByb3BvZ2F0ZWQgPSAhcHJvcFN0eWxlLmVxdWFscyhmRmlyc3RTdHlsZSk7CisgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBwcm9wU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9wb2dhdGVkID0gIXByb3BTdHlsZS5lcXVhbHMoZlN0eWxlVGFibGVbbmV3RW5kXSk7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbbmV3RW5kXSA9IHByb3BTdHlsZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHByb3BvZ2F0ZWQpIHsKKyAgICAgICAgICAgICAgICBpbnQgcFN0YXJ0ID0gKG5ld0VuZD09LTEpPyAwIDogZlJ1bkFycmF5LmZSdW5TdGFydFtuZXdFbmRdICsgMTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihkYW1hZ2VkUmFuZ2VbMF0sIHBTdGFydCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZSdW5BcnJheS5mUG9zRW5kID0gbmV3RW5kOworICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aCgtbGVuZ3RoKTsKKworICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaFN0YXJ0KGludCBwb3MpIHsKKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKyAgICAgICAgaWYgKHJ1biA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pICsgMTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpIHsKKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKworICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuKys7CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgc3RhcnQgPSBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KHJ1bik7CisKKyAgICAgICAgcmV0dXJuIHN0YXJ0KzE7CisgICAgfQorCisvKioKKyogUmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8dHQ+cG9zPC90dD4uCisqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGVBdChpbnQgb2Zmc2V0KSB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhvZmZzZXQtMSk7CisgICAgICAgIGlmIChydW4gPCAwKQorICAgICAgICAgICAgcmV0dXJuIGZGaXJzdFN0eWxlOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlVGFibGVbcnVuXTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgcGFyYWdyYXBoIGl0ZXJhdG9yLgorKi8KKy8qCisgICAgcHVibGljIE1QYXJhZ3JhcGhJdGVyYXRvciBjcmVhdGVQYXJhZ3JhcGhJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIHJldHVybiBuZXcgUGFyYWdyYXBoSXRlcmF0b3Ioc3RhcnQsIGxpbWl0KTsKKyAgICB9CisqLworCisvKioKKyogQ2FsbGVkIGJ5IGl0ZXJhdG9yIHRvIGdldCBydW4gaW5mby4KKyovCisgICAgcHJpdmF0ZSB2b2lkIHNldEl0ZXJhdG9yKGludCBwb3MsIFBhcmFncmFwaEl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpZiAoKHBvcyA8IDApIHx8IChwb3MgPj0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkpIHsKKyAgICAgICAgICAgIGl0ZXIuc2V0KDAsIDAsIGtOb1J1biwgbnVsbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVuOworCisgICAgICAgIGlmIChwb3MgPiAwKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuID0gLTE7CisKKyAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihydW4sIGl0ZXIpOworICAgIH0KKworLyoqCisqIENhbGxlZCBieSBpdGVyYXRvciB0byBnZXQgcnVuIGluZm8uCisqLworICAgIHByaXZhdGUgdm9pZCBzZXRJdGVyYXRvclVzaW5nUnVuKGludCBydW4sIFBhcmFncmFwaEl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpbnQgbGFzdFZhbGlkUnVuID0gZlJ1bkFycmF5Lmxhc3RSdW4oKTsKKworICAgICAgICBpZiAocnVuIDwgLTEgfHwgcnVuID4gbGFzdFZhbGlkUnVuKSB7CisgICAgICAgICAgICBpdGVyLnNldCgwLCAwLCBrTm9SdW4sIG51bGwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCsxKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZSBpZiAocnVuID09IGZSdW5BcnJheS5mTmVnU3RhcnQtMSkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mUG9zRW5kOworCisgICAgICAgIGludCBydW5TdGFydDsKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlOworCisgICAgICAgIGlmIChydW4gPCAwKSB7CisgICAgICAgICAgICBydW5TdGFydCA9IDA7CisgICAgICAgICAgICBzdHlsZSA9IGZGaXJzdFN0eWxlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVuU3RhcnQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W3J1bl07CisgICAgICAgICAgICBzdHlsZSA9IGZTdHlsZVRhYmxlW3J1bl07CisgICAgICAgICAgICBpZiAocnVuU3RhcnQgPCAwKQorICAgICAgICAgICAgICAgIHJ1blN0YXJ0ICs9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBydW5TdGFydCsrOworICAgICAgICB9CisKKyAgICAgICAgaW50IG5leHRSdW47CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkKKyAgICAgICAgICAgIG5leHRSdW4gPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0UnVuID0gcnVuICsgMTsKKworICAgICAgICBpbnQgcnVuTGltaXQ7CisKKyAgICAgICAgaWYgKG5leHRSdW4gPj0gZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpCisgICAgICAgICAgICBydW5MaW1pdCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVuTGltaXQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W25leHRSdW5dOworICAgICAgICAgICAgaWYgKHJ1bkxpbWl0IDwgMCkKKyAgICAgICAgICAgICAgICBydW5MaW1pdCArPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgcnVuTGltaXQrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpdGVyLnNldChydW5TdGFydCwgcnVuTGltaXQsIHJ1biwgc3R5bGUpOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgcGFyYWdyYXBoIGJyZWFrcy9zdHlsZXMgYmV0d2VlbiBzdGFydCBhbmQgbGVuZ3RoIHdpdGggcGFyYWdyYXBoIGJyZWFrcy9zdHlsZXMKKyogZnJvbSA8dHQ+c3JjVGV4dDwvdHQ+LgorKiBAcGFyYW0gc3RhcnQgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIGxpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gcmVwbGFjZQorKiBAcGFyYW0gc3JjVGV4dCB0aGUgdGV4dCBmcm9tIHdoaWNoIG5ldyBwYXJhZ3JhcGhzIGFyZSB0YWtlbgorKiBAcGFyYW0gc3JjU3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiB0byBjb3B5CisqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZmlyc3QgaW5kZXggYWZ0ZXIgdGhlIHJhbmdlIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHRvIGNvcHkKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHNyY1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpIHsKKworICAgICAgICBmaW5hbCBpbnQgaW5zTGVuZ3RoID0gc3JjTGltaXQgLSBzcmNTdGFydDsKKyAgICAgICAgaWYgKGluc0xlbmd0aCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSIpOworICAgICAgICB9CisgICAgICAgIGZpbmFsIGludCBvcmlnTGVuZ3RoID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgZGVsZXRlVGV4dChzdGFydCwgbGltaXQsIGRhbWFnZWRSYW5nZSk7CisKKyAgICAgICAgaWYgKGluc0xlbmd0aCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZpbmFsIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKyAgICAgICAgQXR0cmlidXRlTWFwIG9yaWdTdHlsZTsKKyAgICAgICAgaWYgKGxpbWl0IDwgb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgb3JpZ1N0eWxlID0gKGZSdW5BcnJheS5mUG9zRW5kPj0wKT8gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdIDogZkZpcnN0U3R5bGU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvcmlnU3R5bGUgPSBzcmNUZXh0LnBhcmFncmFwaFN0eWxlQXQoc3JjTGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0ID0gc3JjU3RhcnQ7CisgICAgICAgIGludCBsYXN0UExpbWl0ID0gc3JjVGV4dC5wYXJhZ3JhcGhTdGFydChzcmNMaW1pdCk7CisgICAgICAgIGJvb2xlYW4gc2VwYXJhdG9yQXRFbmQgPSBsYXN0UExpbWl0ID4gc3JjU3RhcnQgJiYgaXNQYXJhZ3JhcGhCcmVhayhzcmNUZXh0LmF0KGxhc3RQTGltaXQtMSkpOworCisgICAgICAgIGlmIChsaW1pdCA9PSBvcmlnTGVuZ3RoICYmIGxhc3RQTGltaXQgPT0gcGFyYWdyYXBoU3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCA+IDApIHsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBvcmlnU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmRmlyc3RTdHlsZSA9IG9yaWdTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gZmlyc3RQYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgIHdoaWxlIChwYXJhZ3JhcGhTdGFydCA8IGxhc3RQTGltaXQpIHsKKworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IHNyY1RleHQucGFyYWdyYXBoU3R5bGVBdChwYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaExpbWl0ID0gc3JjVGV4dC5wYXJhZ3JhcGhMaW1pdChwYXJhZ3JhcGhTdGFydCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXN0eWxlLmVxdWFscyhmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBzdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFBhc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcFN0YXJ0ID0gZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0rMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihkYW1hZ2VkUmFuZ2VbMF0sIHBTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0eWxlLmVxdWFscyhmRmlyc3RTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBzdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gMDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmaXJzdFBhc3MgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGlmIChwYXJhZ3JhcGhMaW1pdCA8IGxhc3RQTGltaXQgfHwgc2VwYXJhdG9yQXRFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFsrK2ZSdW5BcnJheS5mUG9zRW5kXSA9IHBhcmFncmFwaExpbWl0IC0gMSArIHN0YXJ0IC0gc3JjU3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gcGFyYWdyYXBoTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgIT0gb2xkUG9zRW5kKSB7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gb3JpZ1N0eWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aChpbnNMZW5ndGgpOworICAgIH0KKworLyoqCisqIE1vZGlmeSB0aGUgc3R5bGUgb2YgYWxsIHBhcmFncmFwaHMgY29udGFpbmluZyBvZmZzZXRzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KSB0bworKiA8dHQ+c3R5bGU8L3R0Pi4KKyovCisgICAgcHVibGljIGJvb2xlYW4gbW9kaWZ5UGFyYWdyYXBoU3R5bGVzKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpICB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhzdGFydC0xKTsKKyAgICAgICAgaW50IGN1cnJlbnRQU3RhcnQ7CisgICAgICAgIGlmIChydW4gPT0gLTEpIHsKKyAgICAgICAgICAgIGN1cnJlbnRQU3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY3VycmVudFBTdGFydCA9IGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQocnVuKSArIDE7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG1vZGlmaWVkQW55d2hlcmUgPSBmYWxzZTsKKworICAgICAgICBmb3IgKDs7KSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHJ1biA8IDApIHsKKworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdTdHlsZSA9IG1vZGlmaWVyLm1vZGlmeVN0eWxlKGZGaXJzdFN0eWxlKTsKKworICAgICAgICAgICAgICAgIGlmICghbmV3U3R5bGUuZXF1YWxzKGZGaXJzdFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBmRmlyc3RTdHlsZSA9IG5ld1N0eWxlOworICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgbmV3U3R5bGUgPSBtb2RpZmllci5tb2RpZnlTdHlsZShmU3R5bGVUYWJsZVtydW5dKTsKKworICAgICAgICAgICAgICAgIGlmICghZlN0eWxlVGFibGVbcnVuXS5lcXVhbHMobmV3U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW3J1bl0gPSBuZXdTdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkgeworICAgICAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBydW4rKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IG5leHRQU3RhcnQ7CisgICAgICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgbmV4dFBTdGFydCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXh0UFN0YXJ0ID0gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pICsgMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7CisgICAgICAgICAgICAgICAgbW9kaWZpZWRBbnl3aGVyZSA9IHRydWU7CisgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gTWF0aC5taW4oZGFtYWdlZFJhbmdlWzBdLCBjdXJyZW50UFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMV0gPSBNYXRoLm1heChkYW1hZ2VkUmFuZ2VbMV0sIG5leHRQU3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGltaXQgPD0gbmV4dFBTdGFydCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBTdGFydCA9IG5leHRQU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbW9kaWZpZWRBbnl3aGVyZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGR1bXBQYXJhZ3JhcGhTdGFydHMoUGFyYWdyYXBoQnVmZmVyIHN0KSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmUnVuQXJyYXkuZlBvc0VuZD0iK3N0LmZSdW5BcnJheS5mUG9zRW5kKyIsIGZSdW5BcnJheS5mTmVnU3RhcnQ9IitzdC5mUnVuQXJyYXkuZk5lZ1N0YXJ0KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpPSIrc3QuZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkrIiwgZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKT0iK3N0LmZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpOworCisgICAgICAgIGludCBpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJQb3NpdGl2ZXM6ICIpOworICAgICAgICBmb3IgKGk9MDsgaTw9c3QuZlJ1bkFycmF5LmZQb3NFbmQ7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc3QuZlJ1bkFycmF5LmZSdW5TdGFydFtpXSsiICIpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIE5lZ2F0aXZlczogIik7CisgICAgICAgIGZvciAoaT1zdC5mUnVuQXJyYXkuZk5lZ1N0YXJ0OyBpPHN0LmZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHN0LmZSdW5BcnJheS5mUnVuU3RhcnRbaV0rIiAiKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga05vUnVuID0gLTQyOyAvLyBpdGVyYXRvciB1c2UKKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgUGFyYWdyYXBoSXRlcmF0b3IgLyppbXBsZW1lbnRzIE1QYXJhZ3JhcGhJdGVyYXRvciovCisgICAgeworICAgICAgICBQYXJhZ3JhcGhJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzZXQoc3RhcnQsIGxpbWl0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgZlN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICBmTGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHNldEl0ZXJhdG9yKGZTdGFydCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50UnVuICE9IGtOb1J1bjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIG5leHQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1bkxpbWl0IDwgZkxpbWl0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4rKzsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHByZXYoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1blN0YXJ0ID4gZlN0YXJ0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4tLTsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldChpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocG9zID49IGZTdGFydCAmJiBwb3MgPCBmTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvcihwb3MsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFBhcmFncmFwaEJ1ZmZlciBjYWxscyBiYWNrIG9uIHRoaXMgdG8gc2V0IGl0ZXJhdG9ycworICAgICAgICB2b2lkIHNldChpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGN1cnJlbnRSdW4sIEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgZlJ1blN0YXJ0ID0gc3RhcnQgPCBmU3RhcnQgPyBmU3RhcnQgOiBzdGFydDsKKyAgICAgICAgICAgIGZSdW5MaW1pdCA9IGxpbWl0ID4gZkxpbWl0ID8gZkxpbWl0IDogbGltaXQ7CisgICAgICAgICAgICBmQ3VycmVudFJ1biA9IGN1cnJlbnRSdW47CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGxpbWl0KQorICAgICAgICB7CisgICAgICAgICAgICByZXNldChzdGFydCwgbGltaXQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGZpcnN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZTdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBsYXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZMaW1pdCAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZVN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VMaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlTGVuZ3RoKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZMaW1pdCAtIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuU3RhcnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5MaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1bkxlbmd0aCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQgLSBmUnVuU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHN0eWxlKCkgeworCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmTGltaXQ7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5TdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJ1bkxpbWl0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudFJ1bjsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUnVuQXJyYXkuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUnVuQXJyYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNjI3OTc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9SdW5BcnJheS5qYXZhCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoqCisqIFRoaXMgY2xhc3MgbWFpbnRhaW5zIGludGVydmFscyB3aXRoaW4gYSBwaWVjZSBvZiB0ZXh0LiAgSW50ZXJ2YWwgYm91bmRhcmllcworKiBhcmUgc3RvcmVkIGluIHRoZSBmUnVuU3RhcnQgYXJyYXkuICBJbnRlcnZhbCBib3VuZGFyaWVzIG1heSBoYXZlIGEKKyogcG9zaXRpdmUgb3IgbmVnYXRpdmUgcmVwcmVzZW50YXRpb24uICBBIHBvc2l0aXZlIGJvdW5kYXJ5IGlzIGdpdmVuIGFzIGFuIG9mZnNldAorKiBmcm9tIDAuICBBIG5lZ2F0aXZlIGJvdW5kYXJ5IGlzIGdpdmVuIGFzIGEgbmVnYXRpdmUgb2Zmc2V0IGZyb20gdGhlIG5lZCBvZiB0aGUgdGV4dC4KKyogVGhlIFJ1bkFycmF5IHN0b3JlcyBwb3NpdGl2ZSBib3VuZGFyaWVzIGluIHRoZSBlbnRyaWVzIFswLCBmUG9zRW5kXSwgYW5kIG5lZ2F0aXZlCisqIGJvdW5kYXJpZXMgaW4gdGhlIGVudHJpZXMgW2ZOZWdTdGFydCwgZkxlbmd0aCkuICBOZXcgYm91bmRhcmllcyBtYXkgYmUgaW5zZXJ0ZWQgaW50bworKiB0aGUgdW5kZWZpbmVkIG1pZGRsZSBvZiB0aGUgUnVuQXJyYXkuICBJZiBmUG9zRW5kIDwgMCwgdGhlcmUgYXJlIG5vIHBvc2l0aXZlIGVudHJpZXMuCisqIElmIGZOZWdTdGFydCA+PSBmUnVuQXJyYXkubGVuZ3RoLCB0aGVyZSBhcmUgbm8gbmVnYXRpdmUgbmV0cmllcy4gIEl0J3MgcG9zc2libGUgdG8gaGF2ZQorKiBhIHJ1bmFycmF5IHdpdGggbmVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBlbnRyaWVzLgorKgorKiBBcyBhbiBleGFtcGxlIG9mIGhvdyB0aGUgUnVuQXJyYXkgd29ya3MsIGNvbnNpZGVyIGEgcGllY2Ugb2YgdGV4dCB3aXRoIDUgaW50ZXJ2YWxzLAorKiB3aGVyZSBlYWNoIGludGVydmFsIGlzIDMgY2hhcmFjdGVycyBpbiBsZW5ndGguICBUaGUgUnVuQXJyYXkgZm9yIHRoaXMgdGV4dCBjb3VsZAorKiBsb29rIGxpa2U6CisqICAgIGZDdXJUZXh0TGVuZ3RoID0gMTUsIGZQb3NFbmQgPSA1LCBmTmVnU3RhcnQgPSAxMCwKKyogICAgZlJ1blN0YXJ0ID0geyAwLCAzLCA2LCA5LCAxMiwgVSwgVSwgVSwgVSwgVSB9OworKiB3aGVyZSBVIGlzIGFuIHVuZGVmaW5lZCBhcnJheSBlbGVtZW50LgorCisqIEFuIGVxdWl2YWxlbnQgcmVwcmVzZW50YXRpb24gd291bGQgYmU6CisqICAgIGZDdXJUZXh0TGVuZ3RoID0gMTUsIGZQb3NFbmQgPSAzLCBmTmVnU3RhcnQgPSA4LAorKiAgICBmUnVuU3RhcnQgPSB7IDAsIDMsIDYsIFUsIFUsIFUsIFUsIFUsIC02LCAtMyB9OworKgorKiBUaGUgUnVuQXJyYXkgY2xhc3MgaXMgdXNlZCBpbiB0aGUgU3R5bGVCdWZmZXIgYW5kIHRoZSBQYXJhZ3JhcGhCdWZmZXIuICBJbiB0aGUgU3R5bGVCdWZmZXIsCisqIHRoZSBlbnRyaWVzIGluIGZSdW5TdGFydCBnaXZlIHRoZSBvZmZzZXRzIHdoZXJlIHN0eWxlIHJ1bnMgYmVnaW4uICBJbiB0aGUKKyogUGFyYWdyYXBoQnVmZmVyLCB0aGUgZlJ1blN0YXJ0IGVudHJpZXMgc3RvcmUgb2Zmc2V0cyBvZiBwYXJhZ3JhcGggYnJlYWtzLgorKgorKiBUaGlzIGNsYXNzIHByb3ZpZGVzIG1ldGhvZHMgZm9yIHNoaWZ0aW5nIHRoZSBydW4gdGFibGUgdG8gYSBwYXJ0aWN1bGFyIHBvc2l0aW9uLCBleHBhbmRpbmcgdGhlCisqIHJ1biB0YWJsZSwgYW5kIHJldHVybmluZyB0aGUgaW5kZXggb2YgdGhlIHJ1biBjb250YWluaW5nIGEgcGFydGljdWxhciBvZmZzZXQgaW4gdGhlIHRleHQuICBBbGwKKyogb3RoZXIgZnVuY3Rpb25hbGl0eSBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgUnVuQXJyYXkgY2xpZW50cy4KKyoKKyogUnVuQXJyYXkgdXNlcyBGYXN0SW50QmluYXJ5U2VhcmNoIGZvciBzZWFyY2hlcy4gIFRoZSBzZWFyY2hlcyBhcmUgY29uc3RydWN0ZWQgb24gZGVtYW5kIGluCisqIHRoZSBmaW5kUnVuQ29udGFpbmluZyBtZXRob2QuICBUaGUgc2VhcmNoZXMgYXJlIGludmFsaWRhdGVkIHdoZW4gdGhlIHJ1biBhcnJheSBpcyBzaGlmdGVkOworKiBob3dldmVyLCB0aGUgUnVuQXJyYXkgY2FuIGJlIG1vZGlmaWVkIGJ5IG90aGVyIGNsYXNzZXMuICBUaHVzLCBpZiBhbm90aGVyIGNsYXNzIG1vZGlmaWVzCisqIHRoZSBlbnRyaWVzIGluIGZSdW5BcnJheSwgb3IgbW9kaWZpZXMgZlBvc0VuZCBvciBmTmVnU3RhcnQsIGl0IGlzIHJlc3BvbnNpYmxlIGZvcgorKiBjYWxsaW5nIHJ1blN0YXJ0c0NoYW5nZWQuCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBSdW5BcnJheSBpbXBsZW1lbnRzIEV4dGVybmFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICBpbnRbXSBmUnVuU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkN1clRleHRMZW5ndGg7CisgICAgaW50IGZQb3NFbmQsIGZOZWdTdGFydDsKKyAgICAKKyAgICB0cmFuc2llbnQgcHJpdmF0ZSBGYXN0SW50QmluYXJ5U2VhcmNoIGZQb3NTZWFyY2g7CisgICAgdHJhbnNpZW50IHByaXZhdGUgYm9vbGVhbiBmUG9zU2VhcmNoVmFsaWQ7CisgICAgdHJhbnNpZW50IHByaXZhdGUgRmFzdEludEJpbmFyeVNlYXJjaCBmTmVnU2VhcmNoOworICAgIHRyYW5zaWVudCBwcml2YXRlIGJvb2xlYW4gZk5lZ1NlYXJjaFZhbGlkOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisKKyAgICBSdW5BcnJheShpbnQgaW5pdGlhbFNpemUsIGludCBjdXJUZXh0TGVuZ3RoKSB7CisKKyAgICAgICAgZlJ1blN0YXJ0ID0gbmV3IGludFtpbml0aWFsU2l6ZV07CisgICAgICAgIGZDdXJUZXh0TGVuZ3RoID0gY3VyVGV4dExlbmd0aDsKKyAgICAgICAgZlBvc0VuZCA9IC0xOworICAgICAgICBmTmVnU3RhcnQgPSBpbml0aWFsU2l6ZTsKKyAgICAgICAgCisgICAgICAgIGZQb3NTZWFyY2ggPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChmUnVuU3RhcnQsIDAsIDEpOworICAgICAgICBmTmVnU2VhcmNoID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2goZlJ1blN0YXJ0LCAwLCAxKTsKKyAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm90ZTogdGhpcyBjb25zdHJ1Y3RvciBpcyBPTkxZIGZvciB1c2UgYnkgdGhlIFNlcmlhbGl6YXRpb24KKyAgICAgKiBtZWNoYW5pc20uICBJdCBkb2VzIG5vdCBsZWF2ZSB0aGlzIG9iamVjdCBpbiBhIHZhbGlkIHN0YXRlIQorICAgICAqLworICAgIHB1YmxpYyBSdW5BcnJheSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmUnVuU3RhcnQpOworICAgICAgICBvdXQud3JpdGVJbnQoZkN1clRleHRMZW5ndGgpOworICAgICAgICBvdXQud3JpdGVJbnQoZlBvc0VuZCk7CisgICAgICAgIG91dC53cml0ZUludChmTmVnU3RhcnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgUnVuQXJyYXkiKTsKKyAgICAgICAgfQorICAgICAgICBmUnVuU3RhcnQgPSAoaW50W10pIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZkN1clRleHRMZW5ndGggPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGZQb3NFbmQgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGZOZWdTdGFydCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgCisgICAgICAgIGZQb3NTZWFyY2ggPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChmUnVuU3RhcnQsIDAsIDEpOworICAgICAgICBmTmVnU2VhcmNoID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2goZlJ1blN0YXJ0LCAwLCAxKTsKKyAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRDdXJUZXh0TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmQ3VyVGV4dExlbmd0aDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJUZXh0TGVuZ3RoKGludCBjdXJUZXh0TGVuZ3RoKSB7CisKKyAgICAgICAgZkN1clRleHRMZW5ndGggPSBjdXJUZXh0TGVuZ3RoOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZFRvQ3VyVGV4dExlbmd0aChpbnQgZGVsdGEpIHsKKworICAgICAgICBmQ3VyVGV4dExlbmd0aCArPSBkZWx0YTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBydW5TdGFydHNDaGFuZ2VkKCkgeworCisgICAgICAgIGZQb3NTZWFyY2hWYWxpZCA9IGZOZWdTZWFyY2hWYWxpZCA9IGZhbHNlOworICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHZhbGlkIHJ1bi4KKyovCisgICAgaW50IGxhc3RSdW4oKSB7CisKKyAgICAgICAgcmV0dXJuIChmTmVnU3RhcnQgPT0gZlJ1blN0YXJ0Lmxlbmd0aCk/IGZQb3NFbmQgOiBmUnVuU3RhcnQubGVuZ3RoLTE7CisgICAgfQorCisvKioKKyogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBydW4gYXJyYXkuICBSZXBsYWNlcyBvbGQgZkxlbmd0aCBtZW1iZXIuCisqLworICAgIGludCBnZXRBcnJheUxlbmd0aCgpIHsKKworICAgICAgICByZXR1cm4gZlJ1blN0YXJ0Lmxlbmd0aDsKKyAgICB9CisKKy8qKgorKiBTaGlmdHMgc3R5bGUgdGFibGUgc3VjaCB0aGF0IHRoZSBsYXN0IHBvc2l0aXZlIHJ1bgorKiBzdGFydHMgYmVmb3JlIHBvcy4KKyovCisgICAgdm9pZCBzaGlmdFRhYmxlVG8oaW50IHBvcykgeworCisgICAgICAgIGludCBvbGRQb3NFbmQgPSBmUG9zRW5kOworCisgICAgICAgIHdoaWxlIChmUG9zRW5kID49IDAgJiYgZlJ1blN0YXJ0W2ZQb3NFbmRdID49IHBvcykgeworCisgICAgICAgICAgICBmTmVnU3RhcnQtLTsKKyAgICAgICAgICAgIGZSdW5TdGFydFtmTmVnU3RhcnRdID0gZlJ1blN0YXJ0W2ZQb3NFbmRdIC0gZkN1clRleHRMZW5ndGg7CisgICAgICAgICAgICBmUG9zRW5kLS07CisKKyAgICAgICAgfQorCisgICAgICAgIHBvcyAtPSBmQ3VyVGV4dExlbmd0aDsKKworICAgICAgICB3aGlsZSAoZk5lZ1N0YXJ0PGZSdW5TdGFydC5sZW5ndGggJiYgZlJ1blN0YXJ0W2ZOZWdTdGFydF0gPCBwb3MpIHsKKworICAgICAgICAgICAgZlBvc0VuZCsrOworICAgICAgICAgICAgZlJ1blN0YXJ0W2ZQb3NFbmRdID0gZlJ1blN0YXJ0W2ZOZWdTdGFydF0gKyBmQ3VyVGV4dExlbmd0aDsKKyAgICAgICAgICAgIGZOZWdTdGFydCsrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9sZFBvc0VuZCAhPSBmUG9zRW5kKSB7CisgICAgICAgICAgICBmUG9zU2VhcmNoVmFsaWQgPSBmTmVnU2VhcmNoVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJldHVybnMgaW5kZXggb2Ygc3R5bGUgcnVuIGNvbnRhaW5pbmcgcG9zLiAgSWYgZmlyc3Qgc3R5bGUgcnVuIHN0YXJ0cyBiZWZvcmUKKyogcG9zLCAtMSBpcyByZXR1cm5lZC4gIElmIHBvcyBpcyBncmVhdGVyIHRoYW4gdGV4dCBsZW5ndGgsIGxhc3RydW4gaXMgcmV0dXJuZWQuCisqLworICAgIGludCBmaW5kUnVuQ29udGFpbmluZyhpbnQgcG9zKSB7CisKKyAgICAgICAgRmFzdEludEJpbmFyeVNlYXJjaCBzZWFyY2g7CisgICAgICAgIGZpbmFsIGludCBsZW5ndGggPSBmUnVuU3RhcnQubGVuZ3RoOworCisgICAgICAgIGlmIChmTmVnU3RhcnQgPCBsZW5ndGggJiYgKHBvcy1mQ3VyVGV4dExlbmd0aCA+PSBmUnVuU3RhcnRbZk5lZ1N0YXJ0XSkpIHsKKworICAgICAgICAgICAgcG9zIC09IGZDdXJUZXh0TGVuZ3RoOworCisgICAgICAgICAgICBpZiAoIWZOZWdTZWFyY2hWYWxpZCkgeworICAgICAgICAgICAgICAgIGZOZWdTZWFyY2guc2V0RGF0YShmUnVuU3RhcnQsIGZOZWdTdGFydCwgbGVuZ3RoLWZOZWdTdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggPSBmTmVnU2VhcmNoOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGZQb3NFbmQgPj0gMCkgeworCisgICAgICAgICAgICBpZiAoIWZQb3NTZWFyY2hWYWxpZCkgeworICAgICAgICAgICAgICAgIGZQb3NTZWFyY2guc2V0RGF0YShmUnVuU3RhcnQsIDAsIGZQb3NFbmQrMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggPSBmUG9zU2VhcmNoOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgICBpbnQgcnVuID0gc2VhcmNoLmZpbmRJbmRleChwb3MpOworCisgICAgICAgIHJldHVybiBydW47CisgICAgfQorCisgICAgaW50IGdldExvZ2ljYWxSdW5TdGFydChpbnQgcnVuKSB7CisKKyAgICAgICAgaWYgKHJ1biA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocnVuID09IGZSdW5TdGFydC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ3VyVGV4dExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChydW4gPD0gZlBvc0VuZCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmUnVuU3RhcnRbcnVuXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJ1biA+PSBmTmVnU3RhcnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0W3J1bl0gKyBmQ3VyVGV4dExlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcnVuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBJbmNyZWFzZXMgc2l6ZSBvZiBydW4gdGFibGUuICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRvdWJsZXMgdGhlIHJ1biB0YWJsZSdzIHNpemUuCisqLworICAgIHZvaWQgZXhwYW5kUnVuVGFibGUoKSB7CisKKyAgICAgICAgcmVzaXplUnVuVGFibGUoZlJ1blN0YXJ0Lmxlbmd0aCAqIDIpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgbWluaW11bSBudW1iZXIgb2YgZWxlbWVudHMgcG9zc2libGUgaW4gZlJ1blN0YXJ0LgorKi8KKyAgICBwcml2YXRlIGludCBnZXRNaW5TaXplKCkgeworCisgICAgICAgIHJldHVybiBNYXRoLm1heChmUG9zRW5kICsgKGZSdW5TdGFydC5sZW5ndGgtZk5lZ1N0YXJ0KSArIDEsIDEpOworICAgIH0KKworICAgIHZvaWQgY29tcHJlc3MoKSB7CisKKyAgICAgICAgaW50IG1pblNpemUgPSBnZXRNaW5TaXplKCk7CisgICAgICAgIGlmIChmUnVuU3RhcnQubGVuZ3RoID4gbWluU2l6ZSkgeworICAgICAgICAgICAgcmVzaXplUnVuVGFibGUobWluU2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVzaXplUnVuVGFibGUoaW50IG5ld1NpemUpIHsKKworICAgICAgICBpZiAobmV3U2l6ZSA8IGdldE1pblNpemUoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtYWtlIFJ1bkFycmF5IHRvbyBzbWFsbC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBvbGRMZW5ndGggPSBmUnVuU3RhcnQubGVuZ3RoOworCisgICAgICAgIGludCBuZXdSdW5TdGFydFtdID0gbmV3IGludFtuZXdTaXplXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmUnVuU3RhcnQsIDAsIG5ld1J1blN0YXJ0LCAwLCBmUG9zRW5kKzEpOworICAgICAgICBpbnQgbmV3TmVnU3RhcnQgPSBuZXdSdW5TdGFydC5sZW5ndGggLSAob2xkTGVuZ3RoLWZOZWdTdGFydCk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlJ1blN0YXJ0LCBmTmVnU3RhcnQsIG5ld1J1blN0YXJ0LCBuZXdOZWdTdGFydCwgKG9sZExlbmd0aC1mTmVnU3RhcnQpKTsKKworICAgICAgICBmTmVnU3RhcnQgPSBuZXdOZWdTdGFydDsKKyAgICAgICAgZlJ1blN0YXJ0ID0gbmV3UnVuU3RhcnQ7CisKKyAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdGFuZGFyZFRhYlJ1bGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0YW5kYXJkVGFiUnVsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTI4ZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdGFuZGFyZFRhYlJ1bGVyLmphdmEKQEAgLTAsMCArMSwzNzIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24gb2YgTVRhYlJ1bGVyLgorICogSXQgY2FuIGhhdmUgYSBmaW5pdGUgbnVtYmVyIG9mIGNsaWVudC1zcGVjaWZpZWQgVGFiU3RvcHMuICBBZnRlcgorICogdGhlIGNsaWVudC1zcGVjaWZpZWQgVGFiU3RvcHMsIGFsbCBUYWJTdG9wcyBoYXZlIHR5cGUKKyAqIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+IGFuZCBhcmUgYXQgdGhlIGF1dG9zcGFjZSBpbnRlcnZhbHMuCisgKiBAc2VlIFRhYlN0b3AKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN0YW5kYXJkVGFiUnVsZXIgZXh0ZW5kcyBNVGFiUnVsZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGFiU3RvcCBBVVRPX1pFUk8gPSBuZXcgVGFiU3RvcCgwLCBUYWJTdG9wLmtBdXRvKTsKKworICAgIHByaXZhdGUgVGFiU3RvcFtdIGZUYWJzID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBmQXV0b1NwYWNpbmcgPSAzNjsgLy8gZXZlcnkgMS8yIGluY2guCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdGFuZGFyZFRhYlJ1bGVyIHdpdGggb25seSBhdXRvIHRhYnMsIHdpdGggc3BhY2luZyBvZiAzNi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RhbmRhcmRUYWJSdWxlcigpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0YW5kYXJkVGFiUnVsZXIgd2l0aCBvbmx5IGF1dG8gdGFicywgd2l0aCB0aGUKKyAgICAgKiBnaXZlbiBhdXRvU3BhY2luZy4KKyAgICAgKiBAcGFyYW0gYXV0b1NwYWNpbmcgdGhlIGF1dG9TcGFjaW5nIGZvciB0aGlzIHRhYiBydWxlcgorICAgICAqLworICAgIHB1YmxpYyBTdGFuZGFyZFRhYlJ1bGVyKGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGZBdXRvU3BhY2luZyA9IGF1dG9TcGFjaW5nOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0YW5kYXJkVGFiUnVsZXIuICBUaGUgZmlyc3QgVGFiU3RvcHMgb24gdGhlIHJ1bGVyIHdpbGwgYmUKKyAgICAgKiB0aGUgVGFiU3RvcHMgaW4gdGhlIDxjb2RlPnRhYnM8L2NvZGU+IGFycmF5LiAgQWZ0ZXIgdGhlc2UgdGFicyBhbGwKKyAgICAgKiB0YWJzIGFyZSBhdXRvIHRhYnMuCisgICAgICogQHBhcmFtIHRhYnMgYW4gYXJyYXkgb2YgVGFiU3RvcHMuICBUaGUgVGFiU3RvcHMgaW4gdGhlIGFycmF5IG11c3QKKyAgICAgKiAgICBiZSBpbiBzdHJpY3RseSBpbmNyZWFzaW5nIG9yZGVyIChvZiBwb3NpdGlvbnMpLCBhbmQgY2Fubm90IGhhdmUKKyAgICAgKiAgICB0eXBlIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+LgorICAgICAqIEBwYXJhbSBhdXRvU3BhY2luZyB0aGUgYXV0b1NwYWNpbmcgaW50ZXJ2YWwgdG8gdXNlIGFmdGVyIHRoZSBsYXN0CisgICAgICogICAgY2xpZW50LXNwZWNpZmllZCB0YWIuCisgICAgICovCisgICAgcHVibGljIFN0YW5kYXJkVGFiUnVsZXIoVGFiU3RvcFtdIHRhYnMsIGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGlmICh0YWJzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHZhbGlkYXRlVGFiQXJyYXkodGFicyk7CisgICAgICAgICAgICBmVGFicyA9IChUYWJTdG9wW10pIHRhYnMuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUYWJzID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmQXV0b1NwYWNpbmcgPSBhdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKiogVGFicyBhcyBwcm92aWRlZCwgdGhlbiBhdXRvU3BhY2luZyBhZnRlciB0aGUgbGFzdCB0YWIgdG8gZXRlcm5pdHkuICBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuCisgICAgICAgIG11bmdpbmcgYSBydWxlciwgaXQgZG9lcyBubyB2YWxpZGF0aW9uIG9uIHRoZSB0YWJzIGluIHRoZSB2ZWN0b3IuIFZlY3RvciBtYXkgbm90IGJlIG51bGwuICovCisKKyAgICAvKnB1YmxpYyovIFN0YW5kYXJkVGFiUnVsZXIoVmVjdG9yIHYsIGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGZUYWJzID0gdGFiQXJyYXlGcm9tVmVjdG9yKHYpOworICAgICAgICBmQXV0b1NwYWNpbmcgPSBhdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKiogQ29uc3RydWN0IGZyb20gYW5vdGhlciBydWxlci4gTm8gdmFsaWRhdGlvbi4gUnVsZXIgbWF5IG5vdCBiZSBudWxsLiAqLworCisgICAgLypwdWJsaWMqLyBTdGFuZGFyZFRhYlJ1bGVyKE1UYWJSdWxlciBydWxlcikKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJydWxlciBtYXkgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZUYWJzID0gdGFiQXJyYXlGcm9tVmVjdG9yKHZlY3RvckZyb21UYWJSdWxlcihydWxlcikpOworICAgICAgICBmQXV0b1NwYWNpbmcgPSBydWxlci5hdXRvU3BhY2luZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZWRUZXh0OiAiICsgdmVyc2lvbik7CisgICAgICAgIH0KKyAgICAgICAgZlRhYnMgPSAoVGFiU3RvcFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZBdXRvU3BhY2luZyA9IGluLnJlYWRJbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmVGFicyk7CisgICAgICAgIG91dC53cml0ZUludChmQXV0b1NwYWNpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBmaXJzdCB0YWIgaW4gdGhlIHJ1bGVyLiAgSWYgYW4gYXV0b1RhYiwgaXQgaXMgYXQgcG9zaXRpb24gemVybywgYW5kCisgICAgICogYWxsIHN1YnNlcXVlbnQgdGFicyB3aWxsIGJlIGF1dG90YWJzIGF0IGF1dG9TcGFjaW5nIGludGVydmFscy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcCBmaXJzdFRhYigpCisgICAgeworICAgICAgICBpZiAoZlRhYnMgIT0gbnVsbCAmJiBmVGFicy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZlRhYnNbMF07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQVVUT19aRVJPOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgdGFiIGluIHRoZSBydWxlciB3aXRoIGZQb3NpdGlvbiA+IHBvc2l0aW9uLiAgSWYgaXQgaXMgYW4KKyAgICAgKiBhdXRvdGFiLCBpdCBpcyBhdCBhbiBpbmNyZW1lbnQgb2YgYXV0b1NwYWNpbmcsIGFuZCBhbGwgc3Vic2VxdWVudCB0YWJzIHdpbGwgYmUKKyAgICAgKiBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgVGFiU3RvcCByZXR1cm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiB0aGlzIHBhcmFtZXRlcgorICAgICAqLworICAgIHB1YmxpYyBUYWJTdG9wIG5leHRUYWIoaW50IHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGZUYWJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZlRhYnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPCBmVGFic1tpXS5nZXRQb3NpdGlvbigpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZlRhYnNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAocG9zaXRpb24gPj0gNDAwMCkgeyAvLyBkZWJ1Zzogc2FuaXR5IGNoZWNrCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImF1dG8gdGFiIHBhc3QgNDAwMCIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBUYWJTdG9wKCgocG9zaXRpb24gLyBmQXV0b1NwYWNpbmcpICsgMSkgKiBmQXV0b1NwYWNpbmcsIFRhYlN0b3Aua0F1dG8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJ2YWwgZm9yIGF1dG90YWJzLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgYXV0b1NwYWNpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZBdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBPYmplY3QuIFJldHVybnMgdHJ1ZSBpZiB0aGUgb2JqZWN0CisgICAgICogaXMgYW4gTVRhYlJ1bGVyIHdpdGggdGhlIHNhbWUgYXV0b1NwYWNpbmcgYW5kIHRhYnMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKQorICAgIHsKKyAgICAgICAgaWYgKG8gPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIE1UYWJSdWxlciByaHM7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByaHMgPSAoTVRhYlJ1bGVyKW87CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmQXV0b1NwYWNpbmcgIT0gcmhzLmF1dG9TcGFjaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgVGFiU3RvcCByaHNUYWIgPSByaHMuZmlyc3RUYWIoKTsKKworICAgICAgICBpZiAoZlRhYnMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmVGFicy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghZlRhYnNbaV0uZXF1YWxzKHJoc1RhYikpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgIHJoc1RhYiA9IHJocy5uZXh0VGFiKHJoc1RhYi5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByaHNUYWIuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGRlYnVnIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgdGFiIHJ1bGVyLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIiBhdXRvOiAiKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChJbnRlZ2VyLnRvU3RyaW5nKGZBdXRvU3BhY2luZykpOworCisgICAgICAgIGlmIChmVGFicyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZUYWJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChmVGFic1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiogVXRpbGl0eSB0byBjb252ZXJ0IGEgdmVjdG9yIG9mIHRhYnMgdG8gYW4gYXJyYXkuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBUYWJTdG9wW10gdGFiQXJyYXlGcm9tVmVjdG9yKFZlY3RvciB2KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gdi5zaXplKCk7CisgICAgICAgIFRhYlN0b3BbXSB0YWJzID0gbmV3IFRhYlN0b3BbY291bnRdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIHRhYnNbaV0gPSAoVGFiU3RvcCl2LmVsZW1lbnRBdChpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0YWJzOworICAgIH0KKworICAgIC8qKiBVdGlsaXR5IHRvIGNvbnZlcnQgYSBydWxlciB0byBhIHZlY3RvciBvZiB0YWJzLCBmb3IgbXVuZ2luZy4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciB2ZWN0b3JGcm9tVGFiUnVsZXIoTVRhYlJ1bGVyIHJ1bGVyKQorICAgIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGZvciAoVGFiU3RvcCB0YWIgPSBydWxlci5maXJzdFRhYigpOyB0YWIgIT0gbnVsbCAmJiB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87IHRhYiA9IHJ1bGVyLm5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpKSB7CisgICAgICAgICAgICB2LmFkZEVsZW1lbnQodGFiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIC8qKiBVdGlsaXR5IHRvIHZhbGlkYXRlIGFuIGFycmF5IG9mIHRhYnMuICBUaGUgYXJyYXkgbXVzdCBub3QgYmUgbnVsbCwgbXVzdCBub3QgY29udGFpbiBudWxsCisgICAgICAgIGVudHJpZXMsIG11c3Qgbm90IGJlIGtBdXRvLCBhbmQgcG9zaXRpb25zIG11c3QgaW4gaW5jcmVhc2luZyBvcmRlci4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdmFsaWRhdGVUYWJBcnJheShUYWJTdG9wW10gdGFicykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAodGFic1tpXS5nZXRUeXBlKCkgPT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbid0IGV4cGxpY2l0bHkgc3BlY2lmeSBhbiBhdXRvIHRhYi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBuZXh0cG9zID0gdGFic1tpXS5nZXRQb3NpdGlvbigpOworICAgICAgICAgICAgaWYgKG5leHRwb3MgPD0gcG9zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidGFiIHBvc2l0aW9ucyBtdXN0IGJlIGluIGluY3JlYXNpbmcgb3JkZXIuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgPSBuZXh0cG9zOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIGdpdmVuIHRhYiBhZGRlZC4KKyAgICAgKiBAcGFyYW0gcnVsZXIgdGhlIG9yaWdpbmFsIHJ1bGVyLiAgVGhlIE1UYWJSdWxlciB3aWxsIGJlIHRoZSBzYW1lIGFzCisgICAgICogICB0aGlzIGV4Y2VwdCBmb3IgdGhlIGFkZGl0aW9uYWwgdGFiLiAgPGNvZGU+cnVsZXI8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gdGFiVG9BZGQgdGhlIHRhYiB0byBhZGQgdG8gdGhlIG5ldyB0YWIgcnVsZXIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIE1UYWJSdWxlciBhZGRUYWJUb1J1bGVyKE1UYWJSdWxlciBydWxlciwgVGFiU3RvcCB0YWJUb0FkZCkKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsIHx8IHRhYlRvQWRkID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJydWxlciBhbmQgdGFiVG9BZGQgbWF5IG5vdCBiZSBudWxsIik7CisKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgYm9vbGVhbiBhZGRlZCA9IGZhbHNlOworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gcnVsZXIuZmlyc3RUYWIoKTsgdGFiLmdldFR5cGUoKSAhPSBUYWJTdG9wLmtBdXRvOyB0YWIgPSBydWxlci5uZXh0VGFiKHBvcykpIHsKKyAgICAgICAgICAgIHBvcyA9IHRhYi5nZXRQb3NpdGlvbigpOworCisgICAgICAgICAgICBpZiAoIWFkZGVkICYmIHBvcyA+PSB0YWJUb0FkZC5nZXRQb3NpdGlvbigpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSB0YWJUb0FkZC5nZXRQb3NpdGlvbigpKQorICAgICAgICAgICAgICAgICAgICB0YWIgPSBudWxsOworICAgICAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhYlRvQWRkKTsKKyAgICAgICAgICAgICAgICBhZGRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWIgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWIpOworICAgICAgICB9CisgICAgICAgIGlmICghYWRkZWQpCisgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWJUb0FkZCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIGdpdmVuIHRhYiByZW1vdmVkLgorICAgICAqIEBwYXJhbSBydWxlciB0aGUgb3JpZ2luYWwgcnVsZXIuICBUaGUgTVRhYlJ1bGVyIHdpbGwgYmUgdGhlIHNhbWUgYXMKKyAgICAgKiAgIHRoaXMgZXhjZXB0IGZvciB0aGUgcmVtb3ZlZCB0YWIuICA8Y29kZT5ydWxlcjwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiB0byByZW1vdmUgZnJvbSB0aGUgbmV3IHRhYiBydWxlcgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgTVRhYlJ1bGVyIHJlbW92ZVRhYkZyb21SdWxlcihNVGFiUnVsZXIgcnVsZXIsIGludCBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicnVsZXIgbWF5IG5vdCBiZSBudWxsIik7CisKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgYm9vbGVhbiByZW1vdmVkID0gZmFsc2U7CisgICAgICAgIGZvciAoVGFiU3RvcCB0YWIgPSBydWxlci5maXJzdFRhYigpOyB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87IHRhYiA9IHJ1bGVyLm5leHRUYWIocG9zKSkgeworICAgICAgICAgICAgcG9zID0gdGFiLmdldFBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIGlmICghcmVtb3ZlZCAmJiBwb3MgPj0gcG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zID09IHBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gc2tpcCB0aGlzIHRhYiBhbmQgY29udGludWUgd2l0aCB0aGUgcmVtYWluZGVyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOyAvLyB3ZSBkaWRuJ3QgcmVtb3ZlIGEgdGFiLCBidXQgc2tpcHBlZCBwb3NpdGlvbiwgc28gZG9uJ3QgYm90aGVyIHdpdGggdGhlIHJlc3QKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmVjdG9yLmFkZEVsZW1lbnQodGFiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXJlbW92ZWQpIC8vIG5vIGNoYW5nZQorICAgICAgICAgICAgcmV0dXJuIHJ1bGVyOworCisgICAgICAgIGlmICh2ZWN0b3Iuc2l6ZSgpID09IDApCisgICAgICAgICAgICByZXR1cm4gbmV3IFN0YW5kYXJkVGFiUnVsZXIocnVsZXIuYXV0b1NwYWNpbmcoKSk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCBwb3NpdGlvbiA8Y29kZT5mcm9tUG9zaXRpb248L2NvZGU+IG1vdmVkIHRvIHBvc2l0aW9uCisgICAgICogPGNvZGU+dG9Qb3NpdGlvbjwvY29kZT4uCisgICAgICogQHBhcmFtIHJ1bGVyIHRoZSBvcmlnaW5hbCBydWxlci4gIFRoZSBNVGFiUnVsZXIgd2lsbCBiZSB0aGUgc2FtZSBhcworICAgICAqICAgdGhpcyBleGNlcHQgZm9yIHRoZSBtb3ZlZCB0YWIuICA8Y29kZT5ydWxlcjwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBmcm9tUG9zaXRpb24gdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgdG8gbW92ZQorICAgICAqIEBwYXJhbSB0b1Bvc2l0aW9uIHRoZSBuZXcgcG9zaXRpb24gb2YgdGhlIHRhYgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgTVRhYlJ1bGVyIG1vdmVUYWJPblJ1bGVyKE1UYWJSdWxlciBydWxlciwgaW50IGZyb21Qb3NpdGlvbiwgaW50IHRvUG9zaXRpb24pCisgICAgeworICAgICAgICBpZiAocnVsZXIgPT0gbnVsbCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJ1bGVyIG1heSBub3QgYmUgbnVsbCIpOworCisgICAgICAgIFZlY3RvciB2ZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaW50IHBvcyA9IDA7CisgICAgICAgIGJvb2xlYW4gbW92ZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChUYWJTdG9wIHRhYiA9IHJ1bGVyLmZpcnN0VGFiKCk7IHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bzsgdGFiID0gcnVsZXIubmV4dFRhYihwb3MpKSB7CisgICAgICAgICAgICBwb3MgPSB0YWIuZ2V0UG9zaXRpb24oKTsKKworICAgICAgICAgICAgaWYgKCFtb3ZlZCAmJiBwb3MgPT0gZnJvbVBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHRhYiA9IG5ldyBUYWJTdG9wKHRvUG9zaXRpb24sIHRhYi5nZXRUeXBlKCkpOyAvLyBjb3B5IGl0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhYik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtb3ZlZCkgLy8gbm8gY2hhbmdlCisgICAgICAgICAgICByZXR1cm4gcnVsZXI7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQ1YWNhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVCdWZmZXIuamF2YQpAQCAtMCwwICsxLDY2OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgOC8yLzk2CisgICAgICAgIEFkZGVkIHNldEl0ZXJhdG9yVXNpbmdSdW4gbWV0aG9kCisKKyAgICA4LzUvOTYKKyAgICAgICAgTm8gbG9uZ2VyIGhhcyB0byBiZSBjb25zdHJ1Y3RlZCB3aXRoIGFuIE1UZXh0LgorCisgICAgOC84Lzk2CisgICAgICAgIEFkZGVkIHJlcGxhY2UgbWV0aG9kLCB3aGljaCByZWFkcyBzdHlsZXMgZnJvbSBhIFN0eWxlUnVuSXRlcmF0b3IuCisgICAgICAgIEFsc28sIGFkZGVkIGEgY29uc3RydWN0b3Igd2hpY2ggdGFrZXMgYSBTdHlsZVJ1bkl0ZXJhdG9yLgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBmb3IgY29weS9wYXN0ZSBzdXBwb3J0LgorICAgIDgvMTYvOTYKKyAgICAgICAgU3R5bGVCdWZmZXIgbm93IHRha2VzIE1Db25zdFRleHQgaW5zdGVhZCBvZiBNVGV4dCB3aGVyZSBwb3NzaWJsZS4KKworICAgIDEwLzIzLzk2CisgICAgICAgIFNvbWUgb2xkIGNvbW1lbnRlZC1vdXQgY29kZSByZW1vdmVkIGZvciBhZXN0aGV0aWMgcmVhc29ucy4KKworICAgIDcvMzEvOTggU3dpdGNoZWQgdG8gQXR0cmlidXRlTWFwCisqLworCisvKioKKyogU3R5bGVCdWZmZXIgaW1wbGVtZW50cyA8dHQ+TVN0eWxlQnVmZmVyPC90dD4uICBJdCBtYWludGFpbnMKKyogPHR0PkF0dHJpYnV0ZU1hcDwvdHQ+IG9iamVjdHMgdG8gYXBwbHkgdG8gdGhlIHRleHQgaW4gYW4gPHR0Pk1UZXh0PC90dD4gb2JqZWN0LAorKiBhbmQgdGhlCisqIGludGVydmFscyBvbiB3aGljaCB0aG9zZSBzdHlsZXMgYXBwbHkuCisqIDxwPgorKiBTdHlsZUJ1ZmZlciBzdG9yZXMgdGhlIGludGVydmFscyBvbiB3aGljaCBzdHlsZXMgYXBwbHkgaW4gYSA8dHQ+UnVuQXJyYXk8L3R0PgorKiBvYmplY3QgKHNlZSA8dHQ+UnVuQXJyYXk8L3R0PiBmb3IgbW9yZSBpbmZvcm1hdGlvbikuICBUaGUgc3R5bGVzIGFyZSBzdG9yZWQgaW4KKyogYW4gYXJyYXkgb2YgPHR0PkF0dHJpYnV0ZU1hcDwvdHQ+IG9iamVjdHMuCisqIDxwPgorKiA8dHQ+UnVuQXJyYXk8L3R0PiBtYWludGFpbnMgYW4gYXJyYXkgb2YgaW50ZWdlcnMgd2hpY2ggcmVwcmVzZW50IG9mZnNldHMgaW50byB0ZXh0LgorKiBUaGUgYXJyYXkgaGFzIGEgInBvc2l0aXZlIiByZWdpb24gaW4gd2hpY2ggb2Zmc2V0cyBhcmUgZ2l2ZW4gYXMgcG9zaXRpdmUgZGlzdGFuY2VzCisqIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LCBhbmQgYSAibmVnYXRpdmUiIHJlZ2lvbiBpbiB3aGljaCBvZmZzZXRzIGFyZSBnaXZlbiBhcworKiBuZWdhdGl2ZSBkaXN0YW5jZXMgZnJvbSB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgQmV0d2VlbiB0aGUgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHJlZ2lvbnMKKyogaXMgYSBnYXAsIGludG8gd2hpY2ggbmV3IG9mZnNldHMgbWF5IGJlIGluc2VydGVkLiAgVGhpcyBzdG9yYWdlIHNjaGVtZSBhbGxvd3MgZm9yCisqIGVmZmljaWVudCByZXNwb25zZSB0byBhIHNlcmllcyBvZiBlZGl0aW5nIG9wZXJhdGlvbnMgd2hpY2ggb2NjdXIgaW4gdGhlIHNhbWUgYXJlYSBvZiB0aGUKKyogdGV4dC4KKyogPHA+CisqIFN0eWxlQnVmZmVyIHVzZXMgdGhlIG9mZnNldHMgaW4gPHR0PlJ1bkFycmF5PC90dD4gYXMgdGhlIGJvdW5kYXJpZXMgb2Ygc3R5bGUgcnVucy4KKyogQSBzdHlsZSBydW4gYmVnaW5zIGF0IGVhY2ggb2Zmc2V0IGluIDx0dD5SdW5BcnJheTwvdHQ+LCBhbmQgZWFjaCBzdHlsZSBydW4gY29udGludWVzIHRvCisqIHRoZSBuZXh0IG9mZnNldC4gIFRoZSBzdHlsZSBhcnJheSBpcyBrZXB0IGluIHN5bmMgd2l0aCB0aGUgYXJyYXkgb2Ygb2Zmc2V0cyBpbiA8dHQ+UnVuQXJyYXk8L3R0PjsKKyogdGhhdCBpcywgdGhlIHN0eWxlIHdoaWNoIGJlZ2lucyBhdCBSdW5BcnJheVtpXSBpcyBzdG9yZWQgaW4gU3R5bGVBcnJheVtpXS4KKyogPHA+CisqIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgPHR0PlJ1bkFycmF5PC90dD4gaXMgYWx3YXlzIDAuCisqCisqIEBhdXRob3IgSm9obiBSYWxleQorKgorKiBAc2VlIEF0dHJpYnV0ZU1hcAorKiBAc2VlIE1UZXh0CisqIEBzZWUgUnVuQXJyYXkKKyovCisKK2ZpbmFsIGNsYXNzIFN0eWxlQnVmZmVyIGV4dGVuZHMgTVN0eWxlQnVmZmVyIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAqIENyZWF0ZXMgYSBuZXcgc3R5bGUgYnVmZmVyIHdpdGggbGVuZ3RoIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgPHR0PnRleHQ8L3R0PiwKKyAgICAqIGFuZCB3aXRoIGEgc2luZ2xlIHJ1biBvZiA8dHQ+ZGVmYXVsdFN0eWxlPC90dD4uCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyMjM1NjkzNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrSW5pdGlhbFNpemUgPSAxMDsKKyAgICBwcml2YXRlIFJ1bkFycmF5IGZSdW5BcnJheTsKKworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZVRhYmxlW107CisKKyAgICBTdHlsZUJ1ZmZlcihNQ29uc3RUZXh0IHRleHQsIEF0dHJpYnV0ZU1hcCBpbml0aWFsU3R5bGUpIHsKKworICAgICAgICB0aGlzKHRleHQubGVuZ3RoKCksIGluaXRpYWxTdHlsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDcmVhdGVzIGEgbmV3IHN0eWxlIGJ1ZmZlciB3aXRoIGxlbmd0aCA8dHQ+aW5pdGlhbExlbmd0aDwvdHQ+IGFuZCB3aXRoIGEKKyAgICAqIHNpbmdsZSBydW4gb2YgPHR0PmRlZmF1bHRTdHlsZTwvdHQ+LgorICAgICovCisKKyAgICBTdHlsZUJ1ZmZlcihpbnQgaW5pdGlhbExlbmd0aCwgQXR0cmlidXRlTWFwIGluaXRpYWxTdHlsZSkgeworCisgICAgICAgIGZSdW5BcnJheSA9IG5ldyBSdW5BcnJheShrSW5pdGlhbFNpemUsIGluaXRpYWxMZW5ndGgpOworICAgICAgICBmUnVuQXJyYXkuZlBvc0VuZCA9IDA7CisgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbMF0gPSAwOworCisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3IEF0dHJpYnV0ZU1hcFtrSW5pdGlhbFNpemVdOyAvLyBkbyBJIHJlYWxseSB3YW50IHRvIGRvIHRoaXM/Pz8KKworICAgICAgICBmU3R5bGVUYWJsZVswXSA9IGluaXRpYWxTdHlsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RlOiB0aGlzIGNvbnN0cnVjdG9yIGlzIE9OTFkgZm9yIHVzZSBieSB0aGUgU2VyaWFsaXphdGlvbgorICAgICAqIG1lY2hhbmlzbS4gIEl0IGRvZXMgbm90IGxlYXZlIHRoaXMgb2JqZWN0IGluIGEgdmFsaWQgc3RhdGUhCisgICAgICovCisgICAgcHVibGljIFN0eWxlQnVmZmVyKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBjb21wcmVzcygpOworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZSdW5BcnJheSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmU3R5bGVUYWJsZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgU3R5bGVCdWZmZXIiKTsKKyAgICAgICAgfQorICAgICAgICBmUnVuQXJyYXkgPSAoUnVuQXJyYXkpIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZlN0eWxlVGFibGUgPSAoQXR0cmlidXRlTWFwW10pIGluLnJlYWRPYmplY3QoKTsKKyAgICB9CisKKy8qKgorKiBTaGlmdCBzdHlsZSBhbmQgcnVuIHRhYmxlcyBzdWNoIHRoYXQgdGhlIGxhc3QgcG9zaXRpdmUgcnVuIGJlZ2lucyBiZWZvcmUgdGhlIGdpdmVuIHBvc2l0aW9uLgorKiBTaW5jZSB0aGVyZSBpcyBhbHdheXMgYSBydW4gc3RhcnQgYXQgMCwgdGhpcyBtZXRob2QgZW5zdXJlcyB0aGF0IHRoZSBmaXJzdCBydW4gd2lsbCBub3QgYmUgc2hpZnRlZC4KKyogVGhpcyBpcyBjYWxsZWQgYnk6IDx0dD5pbnNlcnRUZXh0PC90dD4gYW5kIDx0dD5kZWxldGVUZXh0PC90dD4uCisqIEBwYXJhbSBwb3MgYSBwb3NpdGlvbiBpbiB0aGUgdGV4dC4KKyovCisKKyAgICBwcml2YXRlIHZvaWQgc2hpZnRUYWJsZVRvKGludCBwb3MpIHsKKworICAgICAgICBpZiAocG9zID09IDApCisgICAgICAgICAgICBwb3MgPSAxOworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKworICAgICAgICBmUnVuQXJyYXkuc2hpZnRUYWJsZVRvKHBvcyk7CisKKyAgICAgICAgaWYgKG9sZFBvc0VuZCA+IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgZlJ1bkFycmF5LmZQb3NFbmQrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBvc0VuZC1mUnVuQXJyYXkuZlBvc0VuZCk7CisgICAgICAgIGVsc2UgaWYgKG9sZE5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIG9sZE5lZ1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZSwgb2xkUG9zRW5kKzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQtb2xkTmVnU3RhcnQpOworICAgIH0KKworLyoqCisqIFVwZGF0ZSB0aGUgc3R5bGUgdGFibGUgdG8gcmVmbGVjdCBhIGNoYW5nZSBpbiB0aGUgUnVuQXJyYXkncyBzaXplLgorKi8KKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQXJyYXlSZXNpemUoaW50IG9sZE5lZ1N0YXJ0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlVGFibGVbXSA9IG5ldyBBdHRyaWJ1dGVNYXBbZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCldOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCAwLCBuZXdTdHlsZVRhYmxlLCAwLCBmUnVuQXJyYXkuZlBvc0VuZCsxKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgb2xkTmVnU3RhcnQsIG5ld1N0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsIChmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKS1mUnVuQXJyYXkuZk5lZ1N0YXJ0KSk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3U3R5bGVUYWJsZTsKKyAgICB9CisKKy8qKgorKiBNaW5pbWl6ZSB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgdXNlZCBieSB0aGlzIG9iamVjdC4KKyovCisgICAgdm9pZCBjb21wcmVzcygpIHsKKworICAgICAgICBpbnQgb2xkTmVnU3RhcnQgPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBmUnVuQXJyYXkuY29tcHJlc3MoKTsKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgIT0gb2xkTmVnU3RhcnQpIHsKKyAgICAgICAgICAgIGhhbmRsZUFycmF5UmVzaXplKG9sZE5lZ1N0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIEluY3JlYXNlIHRoZSBzdG9yYWdlIGNhcGFjaXR5IG9mIHRoZSBzdHlsZSBhbmQgcnVuIHRhYmxlcyBpZiBubyByb29tIHJlbWFpbnMuCisqLworICAgIHByaXZhdGUgdm9pZCBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCkgeworCisgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCArIDEgPT0gZlJ1bkFycmF5LmZOZWdTdGFydCkgeworCisgICAgICAgICAgICBpbnQgb2xkTmVnU3RhcnQgPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICAgICAgZlJ1bkFycmF5LmV4cGFuZFJ1blRhYmxlKCk7CisgICAgICAgICAgICBoYW5kbGVBcnJheVJlc2l6ZShvbGROZWdTdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKy8qCisgICAgcHVibGljIE1TdHlsZVJ1bkl0ZXJhdG9yIGNyZWF0ZVN0eWxlUnVuSXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN0eWxlUnVuSXRlcmF0b3Ioc3RhcnQsIGxpbWl0KTsKKyAgICB9CisqLworLyoqCisqIFJlc3BvbmQgdG8gYW4gaW5zZXJ0aW9uIGluIHRoZSB0ZXh0LiAgVGhlIGxlbmd0aCBvZiB0aGUgbGFzdCBzdHlsZSBydW4gd2hpY2gKKyogYmVnaW5zIGJlZm9yZSA8dHQ+c3RhcnQ8L3R0PiBpcyBpbmNyZWFzZWQgYnkgPHR0Pmxlbmd0aDwvdHQ+LiAgVGhlIHJ1biB0YWJsZQorKiBpcyBzaGlmdGVkIHN1Y2ggdGhhdCB0aGUgcnVuIGludG8gd2hpY2ggdGV4dCB3YXMgaW5zZXJ0ZWQgaXMgdGhlIGxhc3QgcG9zaXRpdmUgcnVuLgorKiBUaGlzIGltcGxlbWVudGF0aW9uIGFzc3VtZXMgdGhhdCBhbGwgc3R5bGVzIHByb3BvZ2F0ZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGluc2VydGlvbiBiZWdhbgorKiBAcGFyYW0gbGVuZ3RoIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbnNlcnRlZAorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKHN0YXJ0KTsKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aChsaW1pdCAtIHN0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBSZXNwb25kIHRvIGEgZGVsZXRpb24gaW4gdGhlIHRleHQuICBUaGUgbGFzdCBzdHlsZSBydW4gYmVmb3JlCisqIDx0dD5zdGFydDwvdHQ+IGlzIHRydW5jYXRlZCB0byBlbmQgYXQgPHR0PnN0YXJ0PC90dD4uICBUaGUKKyogc3R5bGUgcnVuIGNvbnRhaW5pbmcgKDx0dD5zdGFydDwvdHQ+Kzx0dD5sZW5ndGg8L3R0PikgaXMgc2V0IHRvIGJlZ2luCisqIGF0ICg8dHQ+c3RhcnQ8L3R0Pis8dHQ+bGVuZ3RoPC90dD4pLiAgUnVucyBpbiBiZXR3ZWVuIGFyZSBkZWxldGVkLgorKiBJZiB0aGUgZGVsZXRpb24gb2NjdXJzIGVudGlyZWx5IHdpdGhpbiBvbmUgc3R5bGUgcnVuLCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHlsZQorKiBydW4gaXMgcmVkdWNlZCBieSA8dHQ+bGVuZ3RoPC90dD4uCisqIFRoaXMgaW1wbGVtZW50YXRpb24gYXNzdW1lcyB0aGF0IGFsbCBzdHlsZXMgcHJvcG9nYXRlLgorKiBUaGlzIG1ldGhvZCBzaGlmdHMgdGhlIHJ1biB0YWJsZSBzdWNoIHRoYXQgdGhlIHJ1biBpbiB3aGljaCB0aGUgZGVsZXRlIGJlZ2FuCisqIGlzIHRoZSBsYXN0IHBvc2l0aXZlIHJ1bi4gIE90aGVyIG1ldGhvZHMgZGVwZW5kIG9uIHRoaXMgInNpZGUgZWZmZWN0Ii4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGRlbGV0aW9uIGJlZ2FuCisqIEBwYXJhbSBsZW5ndGggdGhlIG9mZnNldCB3aGVyZSB0aGUgZGVsZXRpb24gc3RvcHBlZAorKi8KKyAgICBwdWJsaWMgdm9pZCBkZWxldGVUZXh0KGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisKKyAgICAgICAgLy8gQW4gb3B0aW1pemF0aW9uIC0gaWYgYSB3aG9sZSBydW4gd2Fzbid0IGRlbGV0ZWQgd2UgZG9uJ3QKKyAgICAgICAgLy8gbmVlZCB0byBjaGVjayBmb3IgcnVuIG1lcmdpbmcsIHdoaWNoIGNvdWxkIGJlIGV4cGVuc2l2ZS4KKyAgICAgICAgYm9vbGVhbiB3aG9sZVJ1bkRlbGV0ZWQgPSBmYWxzZTsKKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworCisgICAgICAgIGludCBmaXJzdFJ1bkxpbWl0ID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgPCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkKKyAgICAgICAgICAgIGZpcnN0UnVuTGltaXQgKz0gZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XTsKKworICAgICAgICBpZiAobGltaXQgPT0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkgeworICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydCA9IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGxpbWl0ID49IGZpcnN0UnVuTGltaXQpIHsKKworICAgICAgICAgICAgaW50IGVuZCA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhsaW1pdCk7CisgICAgICAgICAgICBpZiAoZW5kICE9IGZSdW5BcnJheS5mUG9zRW5kKSB7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtlbmRdID0gbGltaXQgLSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQgPSBlbmQ7CisgICAgICAgICAgICAgICAgd2hvbGVSdW5EZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0ICE9IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gMCAmJiBsaW1pdCA+PSBmaXJzdFJ1bkxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IHN0eWxlIHJ1biB3YXMgZGVsZXRlZDsgIG1vdmUgZmlyc3QgIm5lZ2F0aXZlIiBydW4gaW50bworICAgICAgICAgICAgICAgIC8vIGZpcnN0IHBvc2l0aW9uCisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbMF0gPSBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0KytdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAod2hvbGVSdW5EZWxldGVkKSB7CisgICAgICAgICAgICAgICAgaWYgKGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdLmVxdWFscyhmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0pKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG1lcmdlIHN0eWxlIHJ1bnMKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoLWxlbmd0aCk7CisKKyAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkluIGRlbGV0ZVRleHQ6ICBudW1iZXIgb2Ygc3R5bGUgcnVucyA9ICIgKyBudW1SdW5zKHRoaXMpKTsKKyAgICB9CisKKy8qKgorKiBBcnJhbmdlIHN0eWxlIHRhYmxlIHNvIHRoYXQgb2xkIHN0eWxlcyBpbiB0aGUgcHJvdmlkZWQgcmFuZ2UgYXJlIHJlbW92ZWQsIGFuZAorKiBuZXcgc3R5bGVzIGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBpbnNlcnRpb24gZ2FwLgorKiBBZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLCBuZXcgc3R5bGUgc3RhcnRzIGFuZCBzdHlsZXMgbWF5IGJlIHBsYWNlZAorKiBpbiB0aGUgaW5zZXJ0aW9uIGdhcHMgb2YgZlJ1bkFycmF5LmZTdHlsZVN0YXJ0IGFuZCBmU3R5bGVUYWJsZS4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBpbiB0aGUgdGV4dCB3aGVyZSBpbnNlcnRpb24gb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGluIHRoZSB0ZXh0IHdoZXJlIHByZXZpb3VzIHN0eWxlcyByZXN1bWUKKyovCisgICAgcHJpdmF0ZSB2b2lkIHByZXBhcmVTdHlsZUluc2VydChpbnQgc3RhcnQpIHsKKworICAgICAgICBpZiAoc3RhcnQgPT0gMCkgeworCisgICAgICAgICAgICAvLyBmUnVuQXJyYXkuZlBvc0VuZCBzaG91bGQgYmUgMCBpZiB3ZSdyZSBpbiB0aGlzIGJyYW5jaC4KKworICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkgPiAwKSB7CisKKyAgICAgICAgICAgICAgICAvKiBNb3ZlIGZpcnN0IGV4aXN0aW5nIHN0eWxlIHJ1biB0byBuZWdhdGl2ZSBlbmQgb2YgYnVmZmVyLgorICAgICAgICAgICAgICAgICAgIERvbid0IGRvIHRoaXMgaWYgbGVuZ3RoPT0wOyAgdGhhdCBpcywgaWYgdGhlcmUgaXMgbm8gcmVhbAorICAgICAgICAgICAgICAgICAgIHN0eWxlIHJ1biBhdCAwLgorICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydC0tOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdID0gZlN0eWxlVGFibGVbMF07CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XSA9IC1mUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmUnVuQXJyYXkuZlBvc0VuZCA9IC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAvLyBjb25zaXN0ZW5jeSBjaGVjazogc3RhcnQgc2hvdWxkIGJlIGluIGN1cnJlbnQgZ2FwCisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0gPj0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluY29uc2lzdGVudCBzdGF0ZSEgIFN0YXJ0IHNob3VsZCBiZSB3aXRoaW4gaW5zZXJ0aW9uIGdhcC4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGVuZE9mSW5zZXJ0aW9uR2FwID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlbmRPZkluc2VydGlvbkdhcCArPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mTmVnU3RhcnRdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZW5kT2ZJbnNlcnRpb25HYXAgPCBzdGFydCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW5jb25zaXN0ZW50IHN0YXRlISAgU3RhcnQgc2hvdWxkIGJlIHdpdGhpbiBpbnNlcnRpb24gZ2FwLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiBubyBicmVhayBhdCBzdGFydCAob24gbmVnYXRpdmUgZW5kIG9mIGJ1ZmZlcikgbWFrZSBvbmUKKworICAgICAgICAgICAgaWYgKGVuZE9mSW5zZXJ0aW9uR2FwICE9IHN0YXJ0KSB7CisKKyAgICAgICAgICAgICAgICAvLyBzcGxpdCBzdHlsZSBydW4gaW4gaW5zZXJ0aW9uIGdhcAorCisgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZUlmRnVsbCgpOworCisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydC0tOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdID0gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZOZWdTdGFydF0gPSBzdGFydCAtIGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigic3BsaXR0aW5nIHJ1bi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vZGlmeVN0eWxlcyhpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKSB7CisKKyAgICAgICAgaWYgKGxpbWl0ID09IHN0YXJ0KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworCisgICAgICAgIGludCBjdXJyZW50UnVuU3RhcnQgPSBzdGFydDsKKyAgICAgICAgQXR0cmlidXRlTWFwIG9sZFN0eWxlOworICAgICAgICBBdHRyaWJ1dGVNYXAgbWVyZ2VTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXTsKKworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCA8IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XStmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpID09IHN0YXJ0KSB7CisKKyAgICAgICAgICAgIG9sZFN0eWxlID0gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF07CisgICAgICAgICAgICArK2ZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvbGRTdHlsZSA9IG1lcmdlU3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG1vZGlmaWVkQW55d2hlcmUgPSBmYWxzZTsKKyAgICAgICAgZm9yKDs7KSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgLy8gcHVzaCBuZXcgc3R5bGUgaW50byBnYXAgb24gcG9zaXRpdmUgc2lkZQorICAgICAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlID0gbW9kaWZpZXIubW9kaWZ5U3R5bGUob2xkU3R5bGUpOworICAgICAgICAgICAgaWYgKGRhbWFnZWRSYW5nZSAhPSBudWxsICYmICFuZXdTdHlsZS5lcXVhbHMob2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSBtb2RpZmllZEFueXdoZXJlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihjdXJyZW50UnVuU3RhcnQsIGRhbWFnZWRSYW5nZVswXSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbmV3U3R5bGUuZXF1YWxzKG1lcmdlU3R5bGUpKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudFJ1blN0YXJ0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZUlmRnVsbCgpOworICAgICAgICAgICAgICAgICAgICArK2ZSdW5BcnJheS5mUG9zRW5kOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9IG5ld1N0eWxlOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZQb3NFbmRdID0gY3VycmVudFJ1blN0YXJ0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtZXJnZVN0eWxlID0gbmV3U3R5bGU7CisKKyAgICAgICAgICAgIGludCBuZXh0UnVuU3RhcnQgPSBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KGZSdW5BcnJheS5mTmVnU3RhcnQpOworCisgICAgICAgICAgICBpZiAobGltaXQgPiBuZXh0UnVuU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBvbGRTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdOworICAgICAgICAgICAgICAgIGN1cnJlbnRSdW5TdGFydCA9IG5leHRSdW5TdGFydDsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzFdID0gTWF0aC5tYXgoY3VycmVudFJ1blN0YXJ0LCBkYW1hZ2VkUmFuZ2VbMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2ZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobGltaXQgPCBuZXh0UnVuU3RhcnQgJiYgIW9sZFN0eWxlLmVxdWFscyhtZXJnZVN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCk7CisgICAgICAgICAgICAgICAgICAgICsrZlJ1bkFycmF5LmZQb3NFbmQ7CisgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9IG9sZFN0eWxlOworICAgICAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mUG9zRW5kXSA9IGxpbWl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzFdID0gTWF0aC5tYXgobGltaXQsIGRhbWFnZWRSYW5nZVsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbWVyZ2UgbGFzdCBydW4gaWYgbmVlZGVkCisgICAgICAgIGlmICgoZlJ1bkFycmF5LmZOZWdTdGFydCA8IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSAmJgorICAgICAgICAgICAgICAgICAgICAoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF0uZXF1YWxzKGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSkpKSB7CisgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0Kys7CisgICAgICAgIH0KKworICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworCisgICAgICAgIHJldHVybiBtb2RpZmllZEFueXdoZXJlOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgc3R5bGVTdGFydChpbnQgcG9zKSB7CisKKyAgICAgICAgaWYgKHBvcyA9PSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQoZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcykpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgc3R5bGVMaW1pdChpbnQgcG9zKSB7CisKKyAgICAgICAgaWYgKHBvcyA9PSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MpOworCisgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmZQb3NFbmQpIHsKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICArK3J1bjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KHJ1bik7CisgICAgfQorCisvKioKKyogUmV0dXJuIHN0eWxlIGF0IGxvY2F0aW9uIDx0dD5wb3M8L3R0Pi4KKyogQHBhcmFtIHBvcyBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIGNoYXJhY3RlciBhdCA8dHQ+b2Zmc2V0PC90dD4KKyovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBzdHlsZUF0KGludCBwb3MpIHsKKworICAgICAgICByZXR1cm4gZlN0eWxlVGFibGVbIGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MpIF07CisgICAgfQorCisvKgorKiBTZXQgcnVuIHN0YXJ0LCBydW4gbGVuZ3RoLCBhbmQgcnVuIHZhbHVlIGluIGFuIGl0ZXJhdG9yLiAgVGhpcyBtZXRob2QgaXMKKyogb25seSBjYWxsZWQgYnkgYSA8dHQ+U3R5bGVSdW5JdGVyYXRvcjwvdHQ+LgorKiBAcGFyYW0gcG9zIGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0LiAgVGhlIGl0ZXJhdG9yJ3MgcnVuIHN0YXJ0IGFuZCBydW4gbGltaXQgYXJlCisqIHNldCB0byB0aGUgcnVuIGNvbnRhaW5pbmcgPHR0PnBvczwvdHQ+LgorKiBAcGFyYW0gaXRlciB0aGUgaXRlcmF0b3IgdG8gc2V0CisqLworICAgIHZvaWQgc2V0SXRlcmF0b3IoaW50IHBvcywgU3R5bGVSdW5JdGVyYXRvciBpdGVyKSB7CisKKyAgICAgICAgaWYgKChwb3MgPCAwKSB8fCAocG9zID4gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkpIHsKKworICAgICAgICAgICAgaXRlci5zZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBydW4gPSBmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcocG9zKTsKKworICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKHJ1biwgaXRlcik7CisgICAgfQorCisvKioKKyogU2V0IHJ1biBzdGFydCwgcnVuIGxlbmd0aCwgYW5kIHJ1biB2YWx1ZSBpbiBhbiBpdGVyYXRvci4gIFRoaXMgbWV0aG9kIGlzCisqIG9ubHkgY2FsbGVkIGJ5IGEgPHR0PlN0eWxlUnVuSXRlcmF0b3I8L3R0Pi4KKyogQHBhcmFtIHJ1biB0aGUgaW5kZXggb2YgdGhlIHJ1biB0byB3aGljaCB0aGUgaXRlcmF0b3Igc2hvdWxkIGJlIHNldAorKiBAcGFyYW0gaXRlciB0aGUgaXRlcmF0b3IgdG8gc2V0CisqLworICAgIHByaXZhdGUgdm9pZCBzZXRJdGVyYXRvclVzaW5nUnVuKGludCBydW4sIFN0eWxlUnVuSXRlcmF0b3IgaXRlcikgeworCisgICAgICAgIGludCBsYXN0VmFsaWRSdW4gPSBmUnVuQXJyYXkubGFzdFJ1bigpOworCisgICAgICAgIGlmIChydW4gPCAwIHx8IHJ1biA+IGxhc3RWYWxpZFJ1bikgeworCisgICAgICAgICAgICBpdGVyLnNldChudWxsLCAwLCAwLCBrTm9SdW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCsxKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZSBpZiAocnVuID09IGZSdW5BcnJheS5mTmVnU3RhcnQtMSkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mUG9zRW5kOworCisgICAgICAgIGludCBydW5TdGFydCA9IGZSdW5BcnJheS5mUnVuU3RhcnRbcnVuXTsKKyAgICAgICAgaWYgKHJ1blN0YXJ0IDwgMCkKKyAgICAgICAgICAgIHJ1blN0YXJ0ICs9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlN0eWxlVGFibGVbcnVuXTsKKworICAgICAgICBpbnQgbmV4dFJ1bjsKKworICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgbmV4dFJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5leHRSdW4gPSBydW4gKyAxOworCisgICAgICAgIGludCBydW5MaW1pdDsKKworICAgICAgICBpZiAobmV4dFJ1biA+PSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkKKyAgICAgICAgICAgIHJ1bkxpbWl0ID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBydW5MaW1pdCA9IGZSdW5BcnJheS5mUnVuU3RhcnRbbmV4dFJ1bl07CisgICAgICAgICAgICBpZiAocnVuTGltaXQgPCAwKQorICAgICAgICAgICAgICAgIHJ1bkxpbWl0ICs9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigic2V0SXRlcmF0b3I6IHBvcz0iK3BvcysiLCBydW5TdGFydD0iK3J1blN0YXJ0KyIsIHJ1bkxpbWl0PSIrcnVuTGltaXQrCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIiwgcnVuPSIrcnVuKyIsIGZQb3NFbmQ9IitmUG9zRW5kKTsKKworICAgICAgICBpdGVyLnNldChzdHlsZSwgcnVuU3RhcnQsIHJ1bkxpbWl0LCBydW4pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIE1Db25zdFRleHQgc3JjVGV4dCwgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpCisgICAgeworICAgICAgICBkZWxldGVUZXh0KHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIGlmIChzcmNTdGFydCA9PSBzcmNMaW1pdCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcHJlcGFyZVN0eWxlSW5zZXJ0KHN0YXJ0KTsKKyAgICAgICAgZm9yIChpbnQgajIgPSBzcmNTdGFydDsgajIgPCBzcmNMaW1pdDsgajIgPSBzcmNUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQoajIpKQorICAgICAgICB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgYXR0cmlidXRlTWFwID0gc3JjVGV4dC5jaGFyYWN0ZXJTdHlsZUF0KGoyKTsKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCA8IDAgfHwgIWZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXS5lcXVhbHMoYXR0cmlidXRlTWFwKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCk7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZQb3NFbmQrKzsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mUG9zRW5kXSA9IGoyIC0gc3JjU3RhcnQgKyBzdGFydDsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBhdHRyaWJ1dGVNYXA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aChzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgPCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSAmJiBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XS5lcXVhbHMoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdKSkKKyAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQrKzsKKyAgICB9CisKKyAgICBwcml2YXRlICBzdGF0aWMgZmluYWwgaW50IGtOb1J1biA9IC00MjsgLy8gaXRlcmF0b3IgdXNlCisKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFN0eWxlUnVuSXRlcmF0b3IgLyppbXBsZW1lbnRzIE1TdHlsZVJ1bkl0ZXJhdG9yKi8geworCisgICAgICAgIFN0eWxlUnVuSXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlc2V0KHN0YXJ0LCBsaW1pdCwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBwb3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgZkxpbWl0ID0gbGltaXQ7CisgICAgICAgICAgICBzZXRJdGVyYXRvcihmU3RhcnQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNWYWxpZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGUgIT0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIG5leHQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1bkxpbWl0IDwgZkxpbWl0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4rKzsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHByZXYoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1blN0YXJ0ID4gZlN0YXJ0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4tLTsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldChpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocG9zID49IGZTdGFydCAmJiBwb3MgPCBmTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvcihwb3MsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0KEF0dHJpYnV0ZU1hcCBzdHlsZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBjdXJyZW50UnVuKQorICAgICAgICB7CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgICAgIGZDdXJyZW50UnVuID0gY3VycmVudFJ1bjsKKyAgICAgICAgICAgIGZSdW5TdGFydCA9IHN0YXJ0IDwgZlN0YXJ0ID8gZlN0YXJ0IDogc3RhcnQ7CisgICAgICAgICAgICBmUnVuTGltaXQgPSBsaW1pdCA+IGZMaW1pdCA/IGZMaW1pdCA6IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlc2V0KHN0YXJ0LCBsaW1pdCwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgZmlyc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBzZXQoZlN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGxhc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBzZXQoZkxpbWl0IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlU3RhcnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZUxpbWl0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZMaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VMZW5ndGgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZkxpbWl0IC0gZlN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBzdHlsZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1blN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5TdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuTGltaXQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5MZW5ndGgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkxpbWl0IC0gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmTGltaXQ7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJ1blN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmUnVuTGltaXQ7CisgICAgICAgIHByaXZhdGUgaW50IGZDdXJyZW50UnVuOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlTW9kaWZpZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVNb2RpZmllci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxNjAyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlTW9kaWZpZXIuamF2YQpAQCAtMCwwICsxLDE5MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKKworLyoqCisgKiBTdHlsZU1vZGlmaWVyIGlzIHRoZSBiYXNlIGNsYXNzIGZvciBvcGVyYXRpb25zIG9uIEF0dHJpYnV0ZU1hcC4gIFRvIGltcGxlbWVudAorICogYW4gb3BlcmF0aW9uIG9uIEF0dHJpYnV0ZU1hcCwgc3ViY2xhc3MgU3R5bGVNb2RpZmllciBhbmQgb3ZlcnJpZGUKKyAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4gIFN0eWxlTW9kaWZpZXJzIGFyZSB1c2VkIGJ5IE1UZXh0LgorICogPHA+CisgKiBGb3IgY29udmVuaWVuY2UsIHRoaXMgY2xhc3MgY29udGFpbnMgZmFjdG9yeSBtZXRob2RzIHdoaWNoIHdpbGwgY3JlYXRlIGEKKyAqIFN0eWxlTW9kaWZpZXIgZm9yCisgKiBjZXJ0YWluIGNvbW1vbiBvcGVyYXRpb25zOiBhdHRyaWJ1dGUgdW5pb24sIGF0dHJpYnV0ZSByZW1vdmFsLCBhbmQgQXR0cmlidXRlTWFwCisgKiByZXBsYWNlbWVudC4KKyAqIEBzZWUgQXR0cmlidXRlTWFwCisgKiBAc2VlIEF0dHJpYnV0ZVNldAorICogQHNlZSBNVGV4dAorICovCisvKgorICoge2picn0gU3R5bGVNb2RpZmllciBpcyBub3QgdGhlIGJlc3QgbmFtZSBmb3IgdGhpcyBjbGFzcyAtIHN0eWxlcyBhcmUgaW1tdXRhYmxlIGFuZCBuZXZlcgorICogcmVhbGx5IG1vZGlmaWVkLgorICovCitwdWJsaWMgY2xhc3MgU3R5bGVNb2RpZmllcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3R5bGVNb2RpZmllcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGlzIFN0eWxlTW9kaWZpZXIncyBvcGVyYXRpb24gb24gdGhlIGdpdmVuIHN0eWxlLgorICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24ganVzdCByZXR1cm5zIHRoZSBnaXZlbiBzdHlsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIEF0dHJpYnV0ZU1hcCB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24gb24KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIFN0eWxlTW9kaWZpZXIgd2hpY2ggc2ltcGx5IHJldHVybnMgdGhlIGdpdmVuIHN0eWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBJREVOVElUWSA9IG5ldyBTdHlsZU1vZGlmaWVyKCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiBpcworICAgICAqIDxjb2RlPnN0eWxlLmFkZEF0dHJpYnV0ZXMocyk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gcyB0aGUgQXR0cmlidXRlTWFwIHRvIHVuaW9uIHdpdGgKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlQWRkTW9kaWZpZXIoQXR0cmlidXRlTWFwIHMpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN0eWxlQWRkTW9kaWZpZXIocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllciB3aG9zZSBvcGVyYXRpb24gaXMKKyAgICAgKiA8Y29kZT5zdHlsZS5hZGRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gYWRkCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBhZGQKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlQWRkTW9kaWZpZXIoT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVBZGRNb2RpZmllcihrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiByZXR1cm5zIDxjb2RlPnM8L2NvZGU+LAorICAgICAqIGlnbm9yaW5nIHRoZSBwYXJhbWV0ZXIgdG8gPGNvZGU+bW9kaWZ5U3R5bGU8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzIHRoZSBBdHRyaWJ1dGVNYXAgd2hpY2ggd2lsbCByZXBsYWNlIGFueSBvdGhlciBBdHRyaWJ1dGVNYXAKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZVJlcGxhY2VNb2RpZmllcihzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiBpcworICAgICAqIDxjb2RlPnN0eWxlLnJlbW92ZUF0dHJpYnV0ZXMocyk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gcyB0aGUgQXR0cmlidXRlU2V0IG9mIGF0dHJpYnV0ZXMgdG8gcmVtb3ZlCisgICAgICogQHJldHVybiBhIFN0eWxlTW9kaWZpZXIgZm9yIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZVJlbW92ZU1vZGlmaWVyKEF0dHJpYnV0ZVNldCBzKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZVJlbW92ZU1vZGlmaWVyKHMpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBBdHRyaWJ1dGVBZGRNb2RpZmllciBleHRlbmRzIFN0eWxlTW9kaWZpZXIgeworCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZLZXk7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZWYWx1ZTsKKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlQWRkTW9kaWZpZXIoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgICAgICBmVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgICAgIHJldHVybiBzdHlsZS5hZGRBdHRyaWJ1dGUoZktleSwgZlZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGlzIHdpdGggdGhlIHN0eWxlcyB0byBhZGQuICBUaGVzZSBzdHlsZXMgd2lsbCBhZGQgdG8gYW5kIG92ZXJyaWRlIGFueSBhbHJlYWR5CisgICAgICogcHJlc2VudCBpbiB0aGUgc3R5bGUgcGFzc2VkIHRvIG1vZGlmeVN0eWxlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHlsZUFkZE1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworCisgICAgICAgIHB1YmxpYyBTdHlsZUFkZE1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdHlsZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3R5bGUuYWRkQXR0cmlidXRlcyhmU3R5bGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoaXMgd2l0aCB0aGUgc3R5bGVzIHRvIHJlcGxhY2UuICBBbGwgc3R5bGUgcnVucyB3aWxsIGhhdmUgb25seSB0aGVzZQorICAgICAqIHN0eWxlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgU3R5bGVSZXBsYWNlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyCisgICAgeworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGU7CisKKyAgICAgICAgcHVibGljIFN0eWxlUmVwbGFjZU1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdHlsZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFN0eWxlUmVtb3ZlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyIHsKKworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZVNldCBmUmVtb3ZlU2V0OworCisgICAgICAgIHB1YmxpYyBTdHlsZVJlbW92ZU1vZGlmaWVyKEF0dHJpYnV0ZVNldCByZW1vdmVTZXQpIHsKKworICAgICAgICAgICAgaWYgKHJlbW92ZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic2V0IGlzIG51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZSZW1vdmVTZXQgPSByZW1vdmVTZXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICByZXR1cm4gc3R5bGUucmVtb3ZlQXR0cmlidXRlcyhmUmVtb3ZlU2V0KTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVkVGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZWRUZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2RlNmY1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVkVGV4dC5qYXZhCkBAIC0wLDAgKzEsNjg0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGV4dCwgYSBtb2RpZnlhYmxlLCBzdHlsZWQgdGV4dAorICogc3RvcmFnZSBtb2RlbC4gIEFkZGl0aW9uYWxseSwgaXQgc3VwcG9ydHMgcGVyc2lzdGFuY2UgdGhyb3VnaCB0aGUKKyAqIEV4dGVybmFsaXphYmxlIGludGVyZmFjZS4KKyAqIEBzZWUgTVRleHQKKyAqLworCisvKgorICAgIDEwLzI4Lzk2IHtqZn0gLSBzcGxpdCB0aGUgY2hhcmFjdGVyIGFuZCBwYXJhZ3JhcGggc3R5bGUgYWNjZXNzIGFuZCBzZXR0ZXIgZnVuY3Rpb24gYXJvdW5kLi4uCisgICAgICAgICAgICBqdXN0IHRvIGtlZXAgdGhpbmdzIGludGVyZXN0aW5nLgorICAgIDgvNy85NiB7amZ9IC0gbW92ZWQgcGFyYWdyYXBoIGJyZWFrIGltcGxlbWVudGF0aW9uIGZyb20gQWJzdHJhY3RUZXh0IGludG8gU3R5bGUgdGV4dC4KKyAgICAgICAgICAgIC0gYWRkZWQgY291bnRTdHlsZXMsIGdldFN0eWxlcywgYW5kIFJlcGxhY2VTdHlsZXMgaW1wbGVtZW50YXRpb24uCisKKyAgICA4LzE0Lzk2IHNmYiAgZWxpbWluYXRlZCBTdHlsZVNoZWV0SXRlcmF0b3IKKworICAgIDgvMjkvOTYge2picn0gY2hhbmdlZCBpdGVyLWJhc2VkIHJlcGxhY2UgbWV0aG9kIC0gZG9lc24ndCBjYWxsIGF0KCkgdW5sZXNzIGl0IGlzIHNhZmUgdG8gZG8gc28KKyAgICAgICAgICAgIEFsc28sIGFkZGVkIGNoZWNrU3RhcnRBbmRMaW1pdCBmb3IgZGVidWdnaW5nCisKKyAgICA3LzMxLzk4IFN3aXRjaGVkIGZyb20gU3R5bGUgdG8gQXR0cmlidXRlTWFwCisKKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHlsZWRUZXh0IGV4dGVuZHMgTVRleHQgaW1wbGVtZW50cyBFeHRlcm5hbGl6YWJsZQoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICAvKiB1bmljb2RlIHN0b3JhZ2UgKi8KKyAgICBwcml2YXRlIE1DaGFyQnVmZmVyICAgICAgICAgZkNoYXJCdWZmZXI7CisgICAgLyogY2hhcmFjdGVyIHN0eWxlIHN0b3JhZ2UgKi8KKyAgICBwcml2YXRlIE1TdHlsZUJ1ZmZlciAgICAgICAgZlN0eWxlQnVmZmVyOworICAgIC8qIHBhcmFncmFwaCBzdHlsZSBzdG9yYWdlICovCisgICAgcHJpdmF0ZSBNUGFyYWdyYXBoQnVmZmVyICAgIGZQYXJhZ3JhcGhCdWZmZXI7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZlRpbWVTdGFtcCA9IDA7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50W10gZkRhbWFnZWRSYW5nZSA9IHsgSW50ZWdlci5NQVhfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci5NSU5fVkFMVUUgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEZvcmNlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyIHsKKworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGUgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKworICAgICAgICB2b2lkIHNldFN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBLZWVwIHRoaXMgYXJvdW5kIGZvcnVzZSBpbiByZXBsYWNlQ2hhclN0eWxlc1dpdGguICBPSyBzaW5jZQorICAgIC8vIHRoaXMgY2xhc3MgaXNuJ3QgdGhyZWFkc2FmZSBhbnl3YXkuCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRm9yY2VNb2RpZmllciBmb3JjZU1vZGlmaWVyID0gbnVsbDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ09OU1RSVUNUT1JTCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gZW1wdHkgdGV4dCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIFN0eWxlZFRleHQoKQorICAgIHsKKyAgICAgICAgdGhpcygwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gZW1wdHkgdGV4dCBvYmplY3QgcmVhZHkgdG8gaG9sZCBhdCBsZWFzdCBjYXBhY2l0eSBjaGFycy4KKyAgICAgKiBAcGFyYW0gY2FwYWNpdHkgdGhlIG1pbmltdW0gY2FwYWNpdHkgb2YgdGhlIGludGVybmFsIHRleHQgYnVmZmVyCisgICAgICovCisgICAgcHVibGljIFN0eWxlZFRleHQoaW50IGNhcGFjaXR5KQorICAgIHsKKyAgICAgICAgZkNoYXJCdWZmZXIgICAgICAgICA9IGNhcGFjaXR5PjA/IG5ldyBDaGFyQnVmZmVyKGNhcGFjaXR5KSA6IG5ldyBDaGFyQnVmZmVyKCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlciAgICAgICAgPSBuZXcgU3R5bGVCdWZmZXIodGhpcywgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyICAgID0gbmV3IFBhcmFncmFwaEJ1ZmZlcihmQ2hhckJ1ZmZlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgdGV4dCBvYmplY3Qgd2l0aCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLAorICAgICAqIGluIHRoZSBnaXZlbiBzdHlsZS4KKyAgICAgKiBAcGFyYW0gc3RyaW5nIHRoZSBpbml0aWFsIGNvbnRlbnRzCisgICAgICogQHBhcmFtIGluaXRpYWxTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIGluaXRpYWwgdGV4dAorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KFN0cmluZyBzdHJpbmcsIEF0dHJpYnV0ZU1hcCBpbml0aWFsU3R5bGUpCisgICAgeworICAgICAgICBmQ2hhckJ1ZmZlciA9IG5ldyBDaGFyQnVmZmVyKHN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIGZDaGFyQnVmZmVyLnJlcGxhY2UoMCwgMCwgc3RyaW5nLCAwLCBzdHJpbmcubGVuZ3RoKCkpOworCisgICAgICAgIGZTdHlsZUJ1ZmZlciA9IG5ldyBTdHlsZUJ1ZmZlcih0aGlzLCBpbml0aWFsU3R5bGUpOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyID0gbmV3IFBhcmFncmFwaEJ1ZmZlcihmQ2hhckJ1ZmZlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgdGV4dCBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gc291cmNlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgdG8gY29weQorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KE1Db25zdFRleHQgc291cmNlKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwZW5kKHNvdXJjZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRleHQgb2JqZWN0IGZyb20gYSBzdWJyYW5nZSBvZiB0aGUgZ2l2ZW4gc291cmNlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIHNyY1N0YXJ0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGNvcHkKKyAgICAgKiBAcGFyYW0gc3JjTGltaXQgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB0byBjb3B5CisgICAgICovCisgICAgcHVibGljIFN0eWxlZFRleHQoTUNvbnN0VGV4dCBzb3VyY2UsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgcmVwbGFjZSgwLCAwLCBzb3VyY2UsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVFeHRlcm5hbChPYmplY3RPdXRwdXQgb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIG91dC53cml0ZUludChDVVJSRU5UX1ZFUlNJT04pOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZkNoYXJCdWZmZXIpOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZlN0eWxlQnVmZmVyKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZQYXJhZ3JhcGhCdWZmZXIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZWRUZXh0OiAiICsgdmVyc2lvbik7CisgICAgICAgIH0KKyAgICAgICAgZkNoYXJCdWZmZXIgPSAoTUNoYXJCdWZmZXIpIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZlN0eWxlQnVmZmVyID0gKE1TdHlsZUJ1ZmZlcikgaW4ucmVhZE9iamVjdCgpOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyID0gKE1QYXJhZ3JhcGhCdWZmZXIpIGluLnJlYWRPYmplY3QoKTsKKworICAgICAgICByZXNldERhbWFnZWRSYW5nZSgpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTUNvbnN0VGV4dCBJTlRFUkZBQ0VTCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjaGFyYWN0ZXIgYWNjZXNzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIFJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBjaGFyIGF0KGludCBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gZkNoYXJCdWZmZXIuYXQocG9zKTsKKyAgICB9CisKKy8qKgorKiBDb3B5IHRoZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pCisqIGludG8gdGhlIGFycmF5IDxjb2RlPmRzdDwvY29kZT4sIGJlZ2lubmluZyBhdCA8Y29kZT5kc3RTdGFydDwvY29kZT4uCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIHdpbGwgYmUgY29waWVkIGludG8gdGhlIGFycmF5CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHdoaWNoIHdpbGwgYmUgY29waWVkIGludG8gdGhlIGFycmF5CisqIEBwYXJhbSBkc3QgYXJyYXkgaW4gd2hpY2ggdG8gY29weSBjaGFyYWN0ZXJzLiAgVGhlIGxlbmd0aCBvZiA8Y29kZT5kc3Q8L2NvZGU+IG11c3QgYmUgYXQgbGVhc3QKKyogKDxjb2RlPmRzdFN0YXJ0ICsgbGltaXQgLSBzdGFydDwvY29kZT4pLgorKi8KKyAgICBwdWJsaWMgdm9pZCBleHRyYWN0Q2hhcnMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBkc3QsIGludCBkc3RTdGFydCkKKyAgICB7CisgICAgICAgIGZDaGFyQnVmZmVyLmF0KHN0YXJ0LCBsaW1pdCwgZHN0LCBkc3RTdGFydCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gdGV4dCBtb2RlbCBjcmVhdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIENyZWF0ZSBhbiBNQ29uc3RUZXh0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UKKyogWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KS4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcmV0dXJuIGFuIE1Db25zdFRleHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgZ2l2ZW4gcmFuZ2UKKyovCisgICAgcHVibGljIE1Db25zdFRleHQgZXh0cmFjdChpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHJldHVybiBleHRyYWN0V3JpdGFibGUoc3RhcnQsIGxpbWl0KTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgYW4gTVRleHQgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSByYW5nZQorKiBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pLgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHBhcmFtIGxpbWl0IG9mZnNldCBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEByZXR1cm4gYW4gTUNvbnN0VGV4dCBvYmplY3QgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSBnaXZlbiByYW5nZQorKi8KKyAgICBwdWJsaWMgTVRleHQgZXh0cmFjdFdyaXRhYmxlKGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIHRleHQucmVwbGFjZSgwLCAwLCB0aGlzLCBzdGFydCwgbGltaXQpOworICAgICAgICB0ZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgIHJldHVybiB0ZXh0OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaXplL2NhcGFjaXR5CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBNQ29uc3RUZXh0IG9iamVjdC4gIFRoZSBsZW5ndGggaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LgorKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIE1Db25zdFRleHQgb2JqZWN0CisqLworICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmQ2hhckJ1ZmZlci5sZW5ndGgoKTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgYSA8Y29kZT5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGl0ZXJhdG9yJ3MgcmFuZ2UKKyogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgaXRlcmF0b3IncyByYW5nZQorKiBAcmV0dXJuIGEgdmFsaWQgPGNvZGU+Q2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlIHNwZWNpZmllZCByYW5nZQorKiBAc2VlIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcgorKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICByZXR1cm4gZkNoYXJCdWZmZXIuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3Ioc3RhcnQsIGxpbWl0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2hhcmFjdGVyIHN0eWxlcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bgorKiBjb250YWluaW5nIHBvcy4gIEFsbCBjaGFyYWN0ZXJzIGluIGEgc3R5bGUgcnVuIGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVyCisqIHN0eWxlLgorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IGNoYXJhY3RlclN0eWxlU3RhcnQoaW50IHBvcykgeworCisgICAgICAgIGNoZWNrUG9zKHBvcywgTEVTU19USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmU3R5bGVCdWZmZXIuc3R5bGVTdGFydChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVuCisqIGNvbnRhaW5pbmcgcG9zLiAgQWxsIGNoYXJhY3RlcnMgaW4gYSBzdHlsZSBydW4gaGF2ZSB0aGUgc2FtZSBjaGFyYWN0ZXIKKyogc3R5bGUuCisqIEByZXR1cm4gdGhlIHN0eWxlIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBpbnQgY2hhcmFjdGVyU3R5bGVMaW1pdChpbnQgcG9zKSB7CisKKyAgICAgICAgY2hlY2tQb3MocG9zLCBOT1RfR1JFQVRFUl9USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmU3R5bGVCdWZmZXIuc3R5bGVMaW1pdChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgc3R5bGUgYXBwbGllZCB0byB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBjaGFyYWN0ZXJTdHlsZUF0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZTdHlsZUJ1ZmZlci5zdHlsZUF0KHBvcyk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcmFncmFwaCBib3VuZGFyaWVzIGFuZCBzdHlsZXMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvKioKKyogUmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBpbnQgcGFyYWdyYXBoU3RhcnQoaW50IHBvcykKKyAgICB7CisgICAgICAgIGNoZWNrUG9zKHBvcywgTk9UX0dSRUFURVJfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlBhcmFncmFwaEJ1ZmZlci5wYXJhZ3JhcGhTdGFydChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZQYXJhZ3JhcGhCdWZmZXIucGFyYWdyYXBoTGltaXQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIHBhcmFncmFwaCBzdHlsZSBhcHBsaWVkIHRvIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHBhcmFncmFwaCBzdHlsZSBpbiBlZmZlY3QgYXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHBhcmFncmFwaFN0eWxlQXQoaW50IHBvcykKKyAgICB7CisgICAgICAgIGNoZWNrUG9zKHBvcywgTk9UX0dSRUFURVJfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlBhcmFncmFwaEJ1ZmZlci5wYXJhZ3JhcGhTdHlsZUF0KHBvcyk7CisgICAgfQorCisvKioKKyogUmV0dXJuIHRoZSBjdXJyZW50IHRpbWUgc3RhbXAuICBUaGUgdGltZSBzdGFtcCBpcworKiBpbmNyZW1lbnRlZCB3aGVuZXZlciB0aGUgY29udGVudHMgb2YgdGhlIE1Db25zdFRleHQgY2hhbmdlcy4KKyogQHJldHVybiB0aGUgY3VycmVudCBwYXJhZ3JhcGggc3R5bGUgdGltZSBzdGFtcAorKi8KKyAgICBwdWJsaWMgaW50IGdldFRpbWVTdGFtcCgpIHsKKworICAgICAgICByZXR1cm4gZlRpbWVTdGFtcDsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE1UZXh0IElOVEVSRkFDRVMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjaGFyYWN0ZXIgbW9kZmljYXRpb24gZnVuY3Rpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZURhbWFnZWRSYW5nZShpbnQgZGVsZXRlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsZXRlTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXJ0TGVuZ3RoKSB7CisKKyAgICAgICAgZkRhbWFnZWRSYW5nZVswXSA9IE1hdGgubWluKGZEYW1hZ2VkUmFuZ2VbMF0sIGRlbGV0ZVN0YXJ0KTsKKworICAgICAgICBpZiAoZkRhbWFnZWRSYW5nZVsxXSA+PSBkZWxldGVMaW1pdCkgeworICAgICAgICAgICAgaW50IGxlbmd0aENoYW5nZSA9IGluc2VydExlbmd0aCAtIChkZWxldGVMaW1pdC1kZWxldGVTdGFydCk7CisgICAgICAgICAgICBmRGFtYWdlZFJhbmdlWzFdICs9IGxlbmd0aENoYW5nZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMV0gPSBkZWxldGVTdGFydCArIGluc2VydExlbmd0aDsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gaW4gdGhlIHJhbmdlIFs8Y29kZT5zcmNTdGFydDwvY29kZT4sIDxjb2RlPnNyY0xpbWl0PC9jb2RlPikuICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKiBAcGFyYW0gc3JjU3RhcnQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgd2lsbCBiZSBvYnRhaW5lZAorKiBAcGFyYW0gc3JjTGltaXQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGVuZAorKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KQorICAgIHsKKyAgICAgICAgaWYgKHRleHQgPT0gdGhpcykgeworICAgICAgICAgICAgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KHRleHQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0ICYmIHNyY1N0YXJ0ID09IHNyY0xpbWl0KSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjaGVja1N0YXJ0TGltaXQoc3RhcnQsIGxpbWl0KTsKKworICAgICAgICB1cGRhdGVEYW1hZ2VkUmFuZ2Uoc3RhcnQsIGxpbWl0LCBzcmNMaW1pdC1zcmNTdGFydCk7CisKKyAgICAgICAgZkNoYXJCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlci5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCwgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCwgc3JjU3RhcnQsIHNyY0xpbWl0LCBmRGFtYWdlZFJhbmdlKTsKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4uICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICByZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCwgMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGluIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiBpbiB0aGUgcmFuZ2UgWzxjb2RlPnNyY1N0YXJ0PC9jb2RlPiwgPGNvZGU+c3JjTGltaXQ8L2NvZGU+KS4gIE5ldyBjaGFyYWN0ZXJzIHRha2Ugb24gdGhlIHN0eWxlCisqIDxjb2RlPmNoYXJzU3R5bGU8L2NvZGU+LgorKiA8Y29kZT5zcmNDaGFyczwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhcnMgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCisqIEBwYXJhbSBzcmNTdGFydCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIHdpbGwgYmUgb2J0YWluZWQKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNDaGFyczwvY29kZT4gd2hlcmUgdGhlIG5ldyBjaGFyYWN0ZXJzIGVuZAorKiBAcGFyYW0gY2hhcnNTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIG5ldyBjaGFyYWN0ZXJzCisqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIEF0dHJpYnV0ZU1hcCBjaGFyc1N0eWxlKQorICAgIHsKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0ICYmIHNyY1N0YXJ0ID09IHNyY0xpbWl0KSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB1cGRhdGVEYW1hZ2VkUmFuZ2Uoc3RhcnQsIGxpbWl0LCBzcmNMaW1pdC1zcmNTdGFydCk7CisKKyAgICAgICAgZkNoYXJCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHNyY0NoYXJzLCBzcmNTdGFydCwgc3JjTGltaXQpOworCisgICAgICAgIHJlcGxhY2VDaGFyU3R5bGVzV2l0aChzdGFydCwgbGltaXQsIHN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KSwgY2hhcnNTdHlsZSk7CisKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5kZWxldGVUZXh0KHN0YXJ0LCBsaW1pdCwgZkRhbWFnZWRSYW5nZSk7CisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuaW5zZXJ0VGV4dChzdGFydCwgc3JjQ2hhcnMsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZXBsYWNlQ2hhclN0eWxlc1dpdGgoaW50IHN0YXJ0LCBpbnQgb2xkTGltaXQsIGludCBuZXdMaW1pdCwgQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgaWYgKHN0YXJ0IDwgb2xkTGltaXQpIHsKKyAgICAgICAgICAgIGZTdHlsZUJ1ZmZlci5kZWxldGVUZXh0KHN0YXJ0LCBvbGRMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDwgbmV3TGltaXQpIHsKKyAgICAgICAgICAgIGlmIChmb3JjZU1vZGlmaWVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmb3JjZU1vZGlmaWVyID0gbmV3IEZvcmNlTW9kaWZpZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcmNlTW9kaWZpZXIuc2V0U3R5bGUoc3R5bGUpOworICAgICAgICAgICAgZlN0eWxlQnVmZmVyLmluc2VydFRleHQoc3RhcnQsIG5ld0xpbWl0KTsKKyAgICAgICAgICAgIGZTdHlsZUJ1ZmZlci5tb2RpZnlTdHlsZXMoc3RhcnQsIG5ld0xpbWl0LCBmb3JjZU1vZGlmaWVyLCBudWxsKTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVyIDxjb2RlPnNyY0NoYXI8L2NvZGU+LgorKiBUaGUgbmV3IGNoYXJhY3RlciB0YWtlcyBvbiB0aGUgc3R5bGUgPGNvZGU+Y2hhclN0eWxlPC9jb2RlPgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhciB0aGUgbmV3IGNoYXJhY3RlcgorKiBAcGFyYW0gY2hhclN0eWxlIHRoZSBzdHlsZSBvZiB0aGUgbmV3IGNoYXJhY3RlcgorKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyIHNyY0NoYXIsIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGUpCisgICAgeworICAgICAgICBjaGVja1N0YXJ0TGltaXQoc3RhcnQsIGxpbWl0KTsKKworICAgICAgICB1cGRhdGVEYW1hZ2VkUmFuZ2Uoc3RhcnQsIGxpbWl0LCAxKTsKKworICAgICAgICBmQ2hhckJ1ZmZlci5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgc3JjQ2hhcik7CisKKyAgICAgICAgcmVwbGFjZUNoYXJTdHlsZXNXaXRoKHN0YXJ0LCBsaW1pdCwgc3RhcnQgKyAxLCBjaGFyU3R5bGUpOworCisgICAgICAgIGlmIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICBmUGFyYWdyYXBoQnVmZmVyLmRlbGV0ZVRleHQoc3RhcnQsIGxpbWl0LCBmRGFtYWdlZFJhbmdlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuaW5zZXJ0VGV4dChzdGFydCwgc3JjQ2hhcik7CisKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGlzIE1UZXh0IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgd2l0aAorKiB0aGUgY29udGVudHMgb2YgPGNvZGU+c3JjVGV4dDwvY29kZT4uCisqIEBwYXJhbSBzcmNUZXh0IHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzCisqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VBbGwoTUNvbnN0VGV4dCBzcmNUZXh0KQorICAgIHsKKyAgICAgICAgcmVwbGFjZSgwLCBsZW5ndGgoKSwgc3JjVGV4dCwgMCwgc3JjVGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogSW5zZXJ0IHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPiAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIGludG8gdGhpcworKiBNVGV4dCBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgVGhlIGNoYXJhY3RlciBvZmZzZXQgd2hlcmUgdGhlIG5ldyB0ZXh0IGlzIHRvIGJlIGluc2VydGVkLgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBpbnNlcnQuCisqLworICAgIHB1YmxpYyB2b2lkIGluc2VydChpbnQgcG9zLCBNQ29uc3RUZXh0IHNyY1RleHQpCisgICAgeworICAgICAgICByZXBsYWNlKHBvcywgcG9zLCBzcmNUZXh0LCAwLCBzcmNUZXh0Lmxlbmd0aCgpKTsKKyAgICB9CisKKy8qKgorKiBBcHBlbmQgdGhlIGNvbnRlbnRzIG9mIDxjb2RlPnNyY1RleHQ8L2NvZGU+IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgdG8gdGhlCisqIGVuZCBvZiB0aGlzIE1UZXh0LgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBhcHBlbmQuCisqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IHNyY1RleHQpCisgICAgeworICAgICAgICByZXBsYWNlKGxlbmd0aCgpLCBsZW5ndGgoKSwgc3JjVGV4dCwgMCwgc3JjVGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogRGVsZXRlIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgY2hhcmFjdGVycyAoYW5kIHN0eWxlcykuCisqIEBwYXJhbSBzdGFydCBPZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBkZWxldGUuCisqIEBwYXJhbSBsaW1pdCBPZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgcmFuZ2UgdG8gZGVsZXRlLgorKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmUoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICByZXBsYWNlKHN0YXJ0LCBsaW1pdCwgKGNoYXJbXSludWxsLCAwLCAwLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgfQorCisvKioKKyogRGVsZXRlIGFsbCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMuICBBbHdheXMgaW5jcmVtZW50cyB0aW1lIHN0YW1wLgorKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmUoKQorICAgIHsKKyAgICAgICAgLy8gcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCByZXBsYWNlKCksIGp1c3QgcmVpbml0aWFsaXplIHRoZSBTdHlsZWRUZXh0LAorICAgICAgICAvLyBsZXR0aW5nIHRoZSBvbGQgZGF0YSBzdHJ1Y3R1cmVzIGZhbGwgb24gdGhlIGZsb29yCisgICAgICAgIGZDaGFyQnVmZmVyID0gbmV3IENoYXJCdWZmZXIoKTsKKyAgICAgICAgZlN0eWxlQnVmZmVyID0gbmV3IFN0eWxlQnVmZmVyKHRoaXMsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciA9IG5ldyBQYXJhZ3JhcGhCdWZmZXIoZkNoYXJCdWZmZXIpOworICAgICAgICBmVGltZVN0YW1wICs9IDE7CisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMF0gPSBmRGFtYWdlZFJhbmdlWzFdID0gMDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc3RvcmFnZSBtYW5hZ2VtZW50CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvKioKKyogTWluaW1pemUgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSB0aGUgTVRleHQgb2JqZWN0LgorKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wcmVzcygpIHsKKworICAgICAgICBmQ2hhckJ1ZmZlci5jb21wcmVzcygpOworICAgICAgICBmU3R5bGVCdWZmZXIuY29tcHJlc3MoKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5jb21wcmVzcygpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzdHlsZSBtb2RpZmljYXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8qKgorKiBTZXQgdGhlIHN0eWxlIG9mIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBNVGV4dCBvYmplY3QgdG8KKyogPGNvZGU+QXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA8L2NvZGU+LgorKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVDaGFyYWN0ZXJTdHlsZXMoKSB7CisKKyAgICAgICAgZlN0eWxlQnVmZmVyID0gbmV3IFN0eWxlQnVmZmVyKHRoaXMsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgICAgICBmRGFtYWdlZFJhbmdlWzBdID0gMDsKKyAgICAgICAgZkRhbWFnZWRSYW5nZVsxXSA9IGxlbmd0aCgpOworICAgIH0KKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIGNoYXJhY3RlciBzdHlsZXMgZnJvbSBzdGFydCB0byBsaW1pdC4KKyogQHBhcmFtIG1vZGlmaWVyIHRoZSBtb2RpZmllciB0byBhcHBseSB0byB0aGUgcmFuZ2UuCisqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmU3R5bGVCdWZmZXIubW9kaWZ5U3R5bGVzKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEYW1hZ2VkUmFuZ2UpOworICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocworKiBjb250YWluaW5nIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFtzdGFydCwgbGltaXQpLgorKiBAcGFyYW0gbW9kaWZpZXIgdGhlIG1vZGlmaWVyIHRvIGFwcGx5IHRvIHRoZSByYW5nZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKworICAgICAgICBjaGVja1N0YXJ0TGltaXQoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgYm9vbGVhbiBtb2RpZmllZCA9IGZQYXJhZ3JhcGhCdWZmZXIubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEYW1hZ2VkUmFuZ2UpOworICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlc2V0IHRoZSBkYW1hZ2VkIHJhbmdlIHRvIGFuIGVtcHR5IGludGVydmFsLCBhbmQgYmVnaW4gYWNjdW11bGF0aW5nIHRoZSBkYW1hZ2VkCisqIHJhbmdlLiAgVGhlIGRhbWFnZWQgcmFuZ2UgaW5jbHVkZXMgZXZlcnkgaW5kZXggd2hlcmUgYSBjaGFyYWN0ZXIsIGNoYXJhY3RlciBzdHlsZSwKKyogb3IgcGFyYWdyYXBoIHN0eWxlIGhhcyBjaGFuZ2VkLgorKiBAc2VlICNkYW1hZ2VkUmFuZ2VTdGFydAorKiBAc2VlICNkYW1hZ2VkUmFuZ2VMaW1pdAorKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldERhbWFnZWRSYW5nZSgpIHsKKworICAgICAgICBmRGFtYWdlZFJhbmdlWzBdID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMV0gPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLgorKiBJZiB0aGUgc3RhcnQgaXMKKyogPGNvZGU+SW50ZWdlci5NQVhfVkFMVUU8L2NvZGU+IGFuZCB0aGUgbGltaXQgaXMKKyogPGNvZGU+SW50ZWdlci5NSU5fVkFMVUU8L2NvZGU+LCB0aGVuIHRoZSBkYW1hZ2VkIHJhbmdlCisqIGlzIGVtcHR5LgorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZQorKiBAc2VlICNkYW1hZ2VkUmFuZ2VMaW1pdAorKiBAc2VlICNyZXNldERhbWFnZWRSYW5nZQorKi8KKyAgICBwdWJsaWMgaW50IGRhbWFnZWRSYW5nZVN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmRGFtYWdlZFJhbmdlWzBdOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgbGltaXQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UuCisqIElmIHRoZSBzdGFydCBpcworKiA8Y29kZT5JbnRlZ2VyLk1BWF9WQUxVRTwvY29kZT4gYW5kIHRoZSBsaW1pdCBpcworKiA8Y29kZT5JbnRlZ2VyLk1JTl9WQUxVRTwvY29kZT4sIHRoZW4gdGhlIGRhbWFnZWQgcmFuZ2UKKyogaXMgZW1wdHkuCisqIEByZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlCisqIEBzZWUgI2RhbWFnZWRSYW5nZVN0YXJ0CisqIEBzZWUgI3Jlc2V0RGFtYWdlZFJhbmdlCisqLworICAgIHB1YmxpYyBpbnQgZGFtYWdlZFJhbmdlTGltaXQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZEYW1hZ2VkUmFuZ2VbMV07CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgICAgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0iIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gYXQoaSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIElNUExFTUVOVEFUSU9OCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qIGNoZWNrIGEgcmFuZ2UgdG8gc2VlIGlmIGl0IGlzIHdlbGwgZm9ybWVkIGFuZCB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGUgdGV4dCAqLworICAgIHByaXZhdGUgdm9pZCBjaGVja1N0YXJ0TGltaXQoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICBpZiAoc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0IGlzIGxlc3MgdGhhbiBsaW1pdC4gc3RhcnQ6IitzdGFydCsiOyBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlN0YXJ0IGlzIGdyZWF0ZXIgdGhhbiBsaW1pdC4gc3RhcnQ6IitzdGFydCsiOyBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydCA8IDApIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCBpcyBuZWdhdGl2ZS4gc3RhcnQ6IitzdGFydCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTdGFydCBpcyBuZWdhdGl2ZS4gc3RhcnQ6IitzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobGltaXQgPiBsZW5ndGgoKSkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkxpbWl0IGlzIGdyZWF0ZXIgdGhhbiBsZW5ndGguICBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkxpbWl0IGlzIGdyZWF0ZXIgdGhhbiBsZW5ndGguICBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gTEVTU19USEFOX0xFTkdUSCA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gTk9UX0dSRUFURVJfVEhBTl9MRU5HVEggPSB0cnVlOworCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrUG9zKGludCBwb3MsIGJvb2xlYW4gZW5kQWxsb3dlZCkgeworCisgICAgICAgIGludCBsYXN0VmFsaWRQb3MgPSBsZW5ndGgoKTsKKyAgICAgICAgaWYgKGVuZEFsbG93ZWQgPT0gTEVTU19USEFOX0xFTkdUSCkgeworICAgICAgICAgICAgLS1sYXN0VmFsaWRQb3M7CisgICAgICAgIH0KKworICAgICAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBsYXN0VmFsaWRQb3MpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlBvc2l0aW9uIGlzIG91dCBvZiByYW5nZS4iKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVGFiU3RvcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UYWJTdG9wLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzY2YWU1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVGFiU3RvcC5qYXZhCkBAIC0wLDAgKzEsMTgzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBUYWJTdG9wIHJlcHJlc2VudHMgYSBwb3NpdGlvbiBvbiBhIHRhYiBydWxlci4gIEVhY2ggdGFiIHN0b3AgaGFzIGEKKyAqIHBvc2l0aW9uLCBnaXZpbmcgaXRzIGxvY2F0aW9uIG9uIHRoZSBydWxlciwgYW5kIG9uZSBvZiBzZXZlcmFsCisgKiB0eXBlcy4gIFRoZSB0eXBlIGRldGVybWluZXMgaG93IGEgc2VnbWVudCBjb250cm9sZWQgYnkgdGhpcyBUYWJTdG9wCisgKiBpcyBwb3NpdGlvbmVkIG9uIGEgbGluZToKKyAqIDx1bD4KKyAqIDxsaT48Y29kZT5rTGVhZGluZzwvY29kZT4gLSB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSBzZWdtZW50IGlzIGFsaWduZWQgdG8KKyAqICAgICB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uPC9saT4KKyAqIDxsaT48Y29kZT5rQ2VudGVyPC9jb2RlPiAtIHRoZSBzZWdtZW50IGlzIGNlbnRlcmVkIG9uIHRoaXMgVGFiU3RvcCdzCisgKiAgICAgcG9zaXRpb248L2xpPgorICogPGxpPjxjb2RlPmtUcmFpbGluZzwvY29kZT4gLSB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgc2VnbWVudCBpcyBhbGlnbmVkIHRvCisgKiAgICAgdGhlIFRhYlN0b3AncyBwb3NpdGlvbjwvbGk+CisgKiA8bGk+PGNvZGU+a0RlY2ltYWw8L2NvZGU+IC0gdGhlIGZpcnN0IGRlY2ltYWwgaW4gdGhlIHNlZ21lbnQgaXMgYWxpZ25lZCB0bworICogICAgIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb248L2xpPgorICogPGxpPjxjb2RlPmtBdXRvPC9jb2RlPiAtIHNlbWFudGljYWxseSB0aGUgc2FtZSBhcyA8Y29kZT5rTGVhZGluZzwvY29kZT4uCisgKiAgICAgVXNlZCBieSB0YWIgcnVsZXJzIHRvIGluZGljYXRlIHRoYXQgYWxsIHN1YnNlcXVlbnQgdGFiIHN0b3BzCisgKiAgICAgd2lsbCBiZSBhdCBhdXRvc3BhY2VkIGludGVydmFscy48L2xpPgorICogPC91bD4KKyAqIEBzZWUgTVRhYlJ1bGVyCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUYWJTdG9wIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBieXRlIGZUeXBlOyAgICAvLyBsZWZ0LCBjZW50ZXIsIHJpZ2h0LCBkZWNpbWFsCisgICAgcHJpdmF0ZSBpbnQgZlBvc2l0aW9uOyAvLyB0YWIgc3RvcCBwb3NpdGlvbiBmcm9tIGxpbmUgb3JpZ2luLgorCisgICAgLyoqCisgICAgICogQSBUYWJTdG9wIHdpdGggdGhpcyB0eXBlIGFsaWducyBpdHMgc2VnbWVudCdzIGxlYWRpbmcgZWRnZQorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIGtMZWFkaW5nID0gMDsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBjZW50ZXIKKyAgICAgKiB0byB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBrQ2VudGVyID0gMTsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyB0cmFpbGluZyBlZGdlCisgICAgICogdG8gdGhlIFRhYlN0b3AncyBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga1RyYWlsaW5nID0gMjsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBmaXJzdCBkZWNpbWFsCisgICAgICogdG8gdGhlIFRhYlN0b3AncyBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga0RlY2ltYWwgPSAzOworCisgICAgLyoqCisgICAgICogQSBUYWJTdG9wIHdpdGggdGhpcyB0eXBlIGFsaWducyBpdHMgc2VnbWVudCdzIGxlYWRpbmcgZWRnZQorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uICBBZnRlciBhIFRhYlN0b3Agb2YgdGhpcyB0eXBlLAorICAgICAqIGFsbCB0YWJzIGFyZSBhdCBhdXRvc3BhY2UgaW50ZXJ2YWxzLiAgVXN1YWxseSwgY2xpZW50cyB3aWxsCisgICAgICogbm90IGNvbnN0cnVjdCBUYWJTdG9wcyB3aXRoIHRoaXMgdHlwZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga0F1dG8gPSA0OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGFiU3RvcCB3aXRoIHBvc2l0aW9uIDAgYW5kIHR5cGUgPGNvZGU+a0xlYWRpbmc8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBUYWJTdG9wKCkgeworCisgICAgICAgdGhpcygwLCBrTGVhZGluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGFiU3RvcCB3aXRoIHRoZSBnaXZlbiBwb3NpdGlvbiBhbmQgdHlwZS4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIFRhYlN0b3AncyBwb3NpdGlvbgorICAgICAqIEBwYXJhbSB0eXBlIHRoZSBUYWJTdG9wJ3MgdHlwZS4gIE11c3QgYmUgb25lIG9mIGNvbnN0YW50cworICAgICAqICAgICAgaW4gdGhpcyBjbGFzcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcChpbnQgcG9zaXRpb24sIGJ5dGUgdHlwZSkgeworCisgICAgICAgIGlmICh0eXBlIDwga0xlYWRpbmcgfHwgdHlwZSA+IGtBdXRvKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHRhYiB0eXBlIik7CisgICAgICAgIH0KKworICAgICAgICBmUG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICAgICAgZlR5cGUgPSB0eXBlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBUYWJTdG9wLiIpOworICAgICAgICB9CisgICAgICAgIGZQb3NpdGlvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgZlR5cGUgPSBpbi5yZWFkQnl0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlSW50KGZQb3NpdGlvbik7CisgICAgICAgIG91dC53cml0ZUJ5dGUoZlR5cGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE9iamVjdC4gIFRhYlN0b3BzIGFyZSBlcXVhbCBpZgorICAgICAqIHRoZWlyIHBvc2l0aW9uIGFuZCB0eXBlIGFyZSB0aGUgc2FtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykKKyAgICB7CisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgVGFiU3RvcCByaHNUYWI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByaHNUYWIgPSAoVGFiU3RvcCkgcmhzOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZlR5cGUgPT0gcmhzVGFiLmZUeXBlICYmIGZQb3NpdGlvbiA9PSByaHNUYWIuZlBvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaCBjb2RlIGZvciB0aGlzIFRhYlN0b3AuICBUaGUgaGFzaCBjb2RlIGlzCisgICAgICogPGNvZGU+cG9zaXRpb24gPDwgdHlwZTwvY29kZT4uCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICByZXR1cm4gZlBvc2l0aW9uIDw8IGZUeXBlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgY2hhciB0eXBlQ2hhcjsKKyAgICAgICAgc3dpdGNoIChmVHlwZSkgeworICAgICAgICAgICAgY2FzZSBrTGVhZGluZzogdHlwZUNoYXIgPSAnTCc7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrQ2VudGVyOiB0eXBlQ2hhciA9ICdDJzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtUcmFpbGluZzogdHlwZUNoYXIgPSAnUic7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrRGVjaW1hbDogdHlwZUNoYXIgPSAnRCc7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrQXV0bzogdHlwZUNoYXIgPSAnQSc7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogdHlwZUNoYXIgPSAnPyc7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiVGFiU3RvcFsiICsgSW50ZWdlci50b1N0cmluZyhmUG9zaXRpb24pICsgdHlwZUNoYXIgKyAnXSc7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0eXBlIG9mIHRoaXMgVGFiU3RvcC4gIFdpbGwgYmUgb25lIG9mIHRoZSBjb25zdGFudHMKKyAgICAgKiBpbiB0aGlzIGNsYXNzLgorICAgICAqLworICAgIHB1YmxpYyBieXRlIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiBmVHlwZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHBvc2l0aW9uIG9mIHRoaXMgVGFiU3RvcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFBvc2l0aW9uKCkgeworICAgICAgICByZXR1cm4gZlBvc2l0aW9uOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UZXN0RmFzdEludEJpbmFyeVNlYXJjaC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UZXN0RmFzdEludEJpbmFyeVNlYXJjaC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExNWU4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1Rlc3RGYXN0SW50QmluYXJ5U2VhcmNoLmphdmEKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitmaW5hbCBjbGFzcyBUZXN0RmFzdEludEJpbmFyeVNlYXJjaCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBib29sZWFuIHJlc3VsdCA9IG5ldyBUZXN0RmFzdEludEJpbmFyeVNlYXJjaCgpLnRlc3QoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdD8gIlBBU1NFRCIgOiAiRkFJTEVEIik7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGVzdCgpIHsKKworICAgICAgICBib29sZWFuIHJlc3VsdCA9IHRydWU7CisgICAgICAgIGludFtdIHRlc3QgPSB7LTUsIC0zLCAwLCAyLCA1fTsKKyAgICAgICAgRmFzdEludEJpbmFyeVNlYXJjaCBmaWJzID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2godGVzdCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICBpbnQgYmVmb3JlQW55ID0gZmlicy5maW5kSW5kZXgoLTYpOworICAgICAgICAgICAgaWYgKGJlZm9yZUFueSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgYXRFbmQgPSBmaWJzLmZpbmRJbmRleCg1KTsKKyAgICAgICAgICAgIGlmIChhdEVuZCAhPSB0ZXN0Lmxlbmd0aC0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBhZnRlckFueSA9IGZpYnMuZmluZEluZGV4KDYpOworICAgICAgICAgICAgaWYgKGFmdGVyQW55ICE9IHRlc3QubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGV4YWN0bHkgPSBmaWJzLmZpbmRJbmRleCgtMyk7CisgICAgICAgICAgICBpZiAoZXhhY3RseSAhPSAxKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZpYnMgPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChuZXcgaW50W10gezIwLCA0MH0pOworICAgICAgICAgICAgZmlicy5zZXREYXRhKHRlc3QpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1ZhbGlkYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVmFsaWRhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwMWIwNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1ZhbGlkYXRpb24uamF2YQpAQCAtMCwwICsxLDM3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKKy8qKgorICogSXRlcmF0b3JzIHVzZSB0aGlzIGNsYXNzIHRvIGtlZXAgZnJvbSBnZXR0aW5nIG91dCBvZiBzeW5jIHdpdGgKKyAqIHRoZWlyIHVuZGVybHlpbmcgZGF0YS4gIFdoZW4gY3JlYXRlZCwgdGhlIGl0ZXJhdG9yIGdldHMgYQorICogVmFsaWRhdGlvbiBpbnN0YW5jZS4gIElmIHRoZSB1bmRlcmx5aW5nIGRhdGEgY2hhbmdlcywgdGhlIFZhbGlkYXRpb24KKyAqIGJlY29tZXMgaW52YWxpZC4gIFVzdWFsbHkgaXRlcmF0b3JzIHdpbGwgdGhyb3cgZXhjZXB0aW9ucyBpZiBhY2Nlc3NlZAorICogYWZ0ZXIgYmVjb21pbmcgaW52YWxpZC4KKyAqLworZmluYWwgY2xhc3MgVmFsaWRhdGlvbiB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgYm9vbGVhbiBmSXNWYWxpZCA9IHRydWU7CisKKyAgICBib29sZWFuIGlzVmFsaWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJc1ZhbGlkOworICAgIH0KKworICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsKKworICAgICAgICBmSXNWYWxpZCA9IGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjU5YmVkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhLS0gCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy0tPgorPGh0bWw+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitQcm92aWRlcyBzdHlsZWQgdGV4dCBzdG9yYWdlIGFuZCByZWxhdGVkIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdDb2RlRWRpdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nQ29kZUVkaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTVkY2EzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nQ29kZUVkaXQuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtbzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Db2RlRWRpdDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLlN5bnRheENvbG9yZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLlRleHREb2N1bWVudDsKKworcHVibGljIGNsYXNzIFN3aW5nQ29kZUVkaXQgZXh0ZW5kcyBDb2RlRWRpdCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgIAorICAgICAgICBuZXcgU3dpbmdDb2RlRWRpdChhcmdzLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN3aW5nQ29kZUVkaXQoU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisgICAgCisgICAgICAgIHN1cGVyKGFyZ3MsIHN0YXJ0KTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIHJldHVybiBuZXcgU3dpbmdEb2N1bWVudFdpbmRvdyh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3ludGF4Q29sb3JlcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudXMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdEb2N1bWVudFdpbmRvdy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRG9jdW1lbnRXaW5kb3cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjUwNjVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRG9jdW1lbnRXaW5kb3cuamF2YQpAQCAtMCwwICsxLDI3MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ2RlbW87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5KVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbFNldHRpbmdzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpLkpUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWkuU3dpbmdNZW51QnVpbGRlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQucHJpbnQuUHJpbnRpbmdVdGlsczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Bd3REb2N1bWVudFdpbmRvdzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXRBcHBsaWNhdGlvbjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdG9yUmVzb3VyY2VzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5SZXNvdXJjZVV0aWxzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5UZXh0RG9jdW1lbnQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudUJhcjsKK2ltcG9ydCBqYXZheC5zd2luZy5KT3B0aW9uUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5XaW5kb3dDb25zdGFudHM7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgamF2YS5pby5GaWxlOworCitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CisKKy8qKgorICogQXd0RG9jdW1lbnRXaW5kb3cgaXMgYSBGcmFtZSBjb250YWluaW5nIGEgVGV4dFBhbmVsLCB3aXRoIGEgZG9jdW1lbnQKKyAqIGZvciBzdG9yaW5nIHRoZSB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuCisgKi8KK2ZpbmFsIGNsYXNzIFN3aW5nRG9jdW1lbnRXaW5kb3cgZXh0ZW5kcyBKRnJhbWUgaW1wbGVtZW50cyBEb2N1bWVudFdpbmRvdyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBKVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBFZGl0QXBwbGljYXRpb24gZkFwcGxpY2F0aW9uOworICAgIHByaXZhdGUgVGV4dERvY3VtZW50IGZEb2N1bWVudDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBBd3REb2N1bWVudFdpbmRvdy4KKyAgICAgKiBAcGFyYW0gYXBwbGljYXRpb24gdGhlIGFwcGxpY2F0aW9uIHRoYXQgb3ducyB0aGlzIGRvY3VtZW50CisgICAgICogQHBhcmFtIGRvY3VtZW50IHRoZSBkb2N1bWVudCB0byBzaG93IGluIHRoaXMgQXd0RG9jdW1lbnRXaW5kb3cKKyAgICAgKi8KKyAgICBTd2luZ0RvY3VtZW50V2luZG93KEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHRleHRQYW5lbFNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1c2VUYWJSdWxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0U3R5bGVkVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG1lbnVzKSB7CisKKyAgICAgICAgZkFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247CisgICAgICAgIHNldERlZmF1bHRDbG9zZU9wZXJhdGlvbihXaW5kb3dDb25zdGFudHMuRE9fTk9USElOR19PTl9DTE9TRSk7CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gbmV3IEpUZXh0UGFuZWwodGV4dFBhbmVsU2V0dGluZ3MsIG51bGwsIGFwcGxpY2F0aW9uLmdldENsaXBib2FyZCgpKTsKKyAgICAgICAgaWYgKGxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICB9CisgICAgICAgIHNldERvY3VtZW50KGRvY3VtZW50KTsKKworICAgICAgICBhZGRNZW51QmFyKHN1cHBvcnRTdHlsZWRUZXh0LCBzdXBwb3J0UGxhaW5UZXh0LCBtZW51cyk7CisKKyAgICAgICAgZ2V0Q29udGVudFBhbmUoKS5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgICBpZiAodXNlVGFiUnVsZXIpIHsKKyAgICAgICAgICAgIEpUYWJSdWxlciB0YWJSdWxlciA9IG5ldyBKVGFiUnVsZXIoMTQsIDEwLCBmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIGdldENvbnRlbnRQYW5lKCkuYWRkKHRhYlJ1bGVyLCAiTm9ydGgiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZ2V0Q29udGVudFBhbmUoKS5hZGQoZlRleHRQYW5lbCwgIkNlbnRlciIpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgZG9DbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYWRkTWVudUJhcihib29sZWFuIHN1cHBvcnRTdHlsZWRUZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpblRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gbWVudXMpIHsKKyAgICAgICAgCisgICAgICAgIEpNZW51QmFyIG1lbnVCYXIgPSBuZXcgSk1lbnVCYXIoKTsKKyAgICAgICAgU3RyaW5nIG1lbnVUaXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5GSUxFKTsKKyAgICAgICAgSk1lbnUgbWVudSA9IG5ldyBKTWVudShtZW51VGl0bGUpOworICAgICAgICBuZXcgU3dpbmdGaWxlTWVudU1hbmFnZXIobWVudSwgZkFwcGxpY2F0aW9uLCB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydFN0eWxlZFRleHQsIHN1cHBvcnRQbGFpblRleHQpOworICAgICAgICBtZW51QmFyLmFkZChtZW51KTsKKworICAgICAgICBTd2luZ01lbnVCdWlsZGVyLmdldEluc3RhbmNlKCkuY3JlYXRlTWVudXMobWVudUJhciwgZlRleHRQYW5lbCwgdGhpcywgbWVudXMpOworICAgICAgICBzZXRKTWVudUJhcihtZW51QmFyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgaXQgaXMgT0sgdG8gc2V0IHRoZSBkb2N1bWVudCB0ZXh0IGFuZCBmaWxlIHRvCisgICAgICogc29tZXRoaW5nIGRpZmZlcmVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2FuQ2hhbmdlRG9jdW1lbnRzKCkgeworCisgICAgICAgIC8vIElmIHRoZSB0ZXh0IGlzIG1vZGlmaWVkLCBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvCisgICAgICAgIC8vIHNhdmUgaXQuICBPdGhlcndpc2UgcmV0dXJuIHRydWUuCisKKyAgICAgICAgaWYgKGZEb2N1bWVudC5pc01vZGlmaWVkKCkpIHsKKyAgICAgICAgICAgIGludCBzYXZlID0gYXNrU2F2ZSgpOworICAgICAgICAgICAgaWYgKHNhdmUgPT0gSk9wdGlvblBhbmUuWUVTX09QVElPTikgeworICAgICAgICAgICAgICAgIHJldHVybiBkb1NhdmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBzYXZlID09IEpPcHRpb25QYW5lLk5PX09QVElPTjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldERvY3VtZW50KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIGZEb2N1bWVudCA9IGRvY3VtZW50OworICAgICAgICBmRG9jdW1lbnQuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBzZXRUaXRsZShmRG9jdW1lbnQuZ2V0VGl0bGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkb2N1bWVudCB0byBlbXB0eSB0ZXh0IHdpdGggbm8gYXNzb2NpYXRlZCBmaWxlLiAgSWYKKyAgICAgKiB0aGUgZG9jdW1lbnQgdGV4dCBpcyBub3Qgc2F2ZWQsIHByb21wdCB0aGUgdXNlciB0byBzYXZlIHRoZQorICAgICAqIHRoZSB0ZXh0IGZpcnN0LiAgSWYgdGhpcyBvcGVyYXRpb24gaXMgY2FuY2VsZWQsIHRoZSBkb2N1bWVudAorICAgICAqIGlzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb05ldygpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldERvY3VtZW50KGZBcHBsaWNhdGlvbi5jcmVhdGVOZXdEb2N1bWVudCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBmcm9tIHdoaWNoIHRvIGxvYWQgYSB0ZXh0IGRvY3VtZW50LgorICAgICAqIElmIHRoZSBjdXJyZW50IHRleHQgaXMgbm90IHNhdmVkLCBmaXJzdCBwcm9tcHQgdGhlIHVzZXIgdG8KKyAgICAgKiBzYXZlLiAgSWYgZWl0aGVyIG9wZXJhdGlvbiBpcyBjYW5jZWxlZCBvciBmYWlscywgdGhlIGRvY3VtZW50CisgICAgICogaXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvT3BlbigpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQgPSBmQXBwbGljYXRpb24ub3BlbkRvY3VtZW50KHRoaXMpOworCisgICAgICAgIGlmIChkb2N1bWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBpbiB3aGljaCB0byBzYXZlIHRoZSBkb2N1bWVudCB0ZXh0LgorICAgICAqIElmIHRoaXMgb3BlcmF0aW9uIGlzIG5vdCBjYW5jZWxlZCwgc2F2ZSB0aGUgdGV4dCBpbiB0aGUgZmlsZS4KKyAgICAgKiBUaGUgZmlsZSBiZWNvbWVzIHRoaXMgZG9jdW1lbnQncyBmaWxlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZUFzKGludCBmb3JtYXQpIHsKKworICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuU0FWRV9USVRMRSk7CisgICAgICAgIEZpbGUgZmlsZSA9IEF3dERvY3VtZW50V2luZG93LmdldEZpbGVGcm9tRGlhbG9nKGZEb2N1bWVudC5nZXRGaWxlKCksIHRpdGxlLCB0aGlzLCBGaWxlRGlhbG9nLlNBVkUpOworICAgICAgICAKKyAgICAgICAgaWYgKGZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmRG9jdW1lbnQuc2V0RmlsZShmaWxlKTsKKyAgICAgICAgc2V0VGl0bGUoZkRvY3VtZW50LmdldFRpdGxlKCkpOworCisgICAgICAgIGZEb2N1bWVudC5zZXRGb3JtYXQoZm9ybWF0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmRG9jdW1lbnQuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdGhlIHRleHQgaW4gdGhpcyBkb2N1bWVudC4gIElmIHRoZXJlIGlzIG5vIGZpbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhlIHRleHQsIHRoaXMgaXMgZXF1aXZhbGVudCB0byA8Y29kZT5kb1NhdmVBczwvY29kZT4uCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZSgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50LmdldEZpbGUoKSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZG9TYXZlQXMoZkRvY3VtZW50LmdldEZvcm1hdCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZEb2N1bWVudC5zYXZlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgd2luZG93LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvUHJpbnQoKSB7CisKKyAgICAgICAgUHJpbnRpbmdVdGlscy51c2VyUHJpbnRUZXh0KGZEb2N1bWVudC5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRpdGxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gY2xvc2UgdGhpcyB3aW5kb3cuICBJZiB0aGUgdGV4dCBoYXMgbm90IGJlZW4gc2F2ZWQsCisgICAgICogZ2l2ZSB0aGUgdXNlciBhIGNoYW5jZSB0byBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjbG9zaW5nIHRoZQorICAgICAqIHdpbmRvdy4gIElmIHRoZSB1c2VyIGNhbmNlbHMgdGhpcyBvcGVyYXRpb24sIHRoaXMgbWV0aG9kIHJldHVybnMKKyAgICAgKiBmYWxzZSBhbmQgdGhlIHdpbmRvdyBpcyBub3QgY2xvc2VkOyAgb3RoZXJ3aXNlIHRoaXMgbWV0aG9kCisgICAgICogcmV0dXJucyB0cnVlIGFuZCB0aGUgd2luZG93IGlzIGNsb3NlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb0Nsb3NlKCkgeworCisgICAgICAgIGlmIChjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBmQXBwbGljYXRpb24ucmVtb3ZlRG9jdW1lbnRXaW5kb3codGhpcyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERpc3BsYXkgYSBkaWFsb2cgdGhhdCBhc2tzIHdoZXRoZXIgdGhlIHVzZXIgd2FudHMgdG8KKyAgICAgKiBzYXZlIGEgZG9jdW1lbnQuICBUaGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBZRVNfT1BUSU9OLAorICAgICAqIE5PX09QVElPTiwgb3IgQ0FOQ0VMX09QVElPTiBmcm9tIEpPcHRpb25QYW5lLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGFza1NhdmUoKSB7CisKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuU0FWRV9NU0cpOworICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm4sIG5ldyBPYmplY3RbXSB7Z2V0VGl0bGUoKX0pOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHllcyA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5ZRVMpOworICAgICAgICBTdHJpbmcgbm8gPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuTk8pOworICAgICAgICBTdHJpbmcgY2FuY2VsID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLkNBTkNFTCk7CisKKyAgICAgICAgcmV0dXJuIEpPcHRpb25QYW5lLnNob3dPcHRpb25EaWFsb2codGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPcHRpb25QYW5lLllFU19OT19DQU5DRUxfT1BUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKT3B0aW9uUGFuZS5RVUVTVElPTl9NRVNTQUdFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117eWVzLG5vLGNhbmNlbH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllcyk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0VkaXREZW1vLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdFZGl0RGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2Zjk5MjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdFZGl0RGVtby5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Eb2N1bWVudFdpbmRvdzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuSlRleHRQYW5lbDsKKworcHVibGljIGNsYXNzIFN3aW5nRWRpdERlbW8gZXh0ZW5kcyBFZGl0RGVtbyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgIAorICAgICAgICBuZXcgU3dpbmdDb2RlRWRpdChhcmdzLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN3aW5nRWRpdERlbW8oU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisgICAgCisgICAgICAgIHN1cGVyKGFyZ3MsIHN0YXJ0KTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIHJldHVybiBuZXcgU3dpbmdEb2N1bWVudFdpbmRvdyh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRmlsZU1lbnVNYW5hZ2VyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdGaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTJkNjgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRmlsZU1lbnVNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ2RlbW87CisKK2ltcG9ydCBqYXZhLmF3dC5FdmVudDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51OworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51SXRlbTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2VwYXJhdG9yOworaW1wb3J0IGphdmF4LnN3aW5nLktleVN0cm9rZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Eb2N1bWVudFdpbmRvdzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdEFwcGxpY2F0aW9uOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5GaWxlTWVudU1hbmFnZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLk1lbnVEYXRhOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5SZXNvdXJjZVV0aWxzOworCitmaW5hbCBjbGFzcyBTd2luZ0ZpbGVNZW51TWFuYWdlciBleHRlbmRzIEZpbGVNZW51TWFuYWdlciB7CisKKyAgICBwcml2YXRlIEpNZW51IGZNZW51OworICAgIAorICAgIHB1YmxpYyBTd2luZ0ZpbGVNZW51TWFuYWdlcihKTWVudSBtZW51LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0QXBwbGljYXRpb24gYXBwbGljYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0U3R5bGVkRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpbkZvcm1hdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3VwZXIoYXBwbGljYXRpb24sIGRvY3VtZW50KTsKKyAgICAgICAgCisgICAgICAgIGZNZW51ID0gbWVudTsKKyAgICAgICAgY3JlYXRlSXRlbXMoc3VwcG9ydFN0eWxlZEZvcm1hdCwgc3VwcG9ydFBsYWluRm9ybWF0KTsKKyAgICAgICAgZk1lbnUgPSBudWxsOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGFkZE1lbnVJdGVtKFN0cmluZyBrZXkpIHsKKworICAgICAgICBNZW51RGF0YSBtZW51RGF0YSA9IFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoa2V5KTsKKyAgICAgICAgSk1lbnVJdGVtIGl0ZW0gPSBuZXcgSk1lbnVJdGVtKG1lbnVEYXRhLmdldE5hbWUoKSk7CisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBLZXlTdHJva2Uga3MgPSBLZXlTdHJva2UuZ2V0S2V5U3Ryb2tlKG1lbnVEYXRhLmdldFNob3J0Y3V0S2V5Q29kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudC5DVFJMX01BU0spOworICAgICAgICAgICAgaXRlbS5zZXRBY2NlbGVyYXRvcihrcyk7CisgICAgICAgIH0KKyAgICAgICAgaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZk1lbnUuYWRkKGl0ZW0pOworICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgYWRkU2VwYXJhdG9yKCkgeworICAgIAorICAgICAgICBmTWVudS5hZGQobmV3IEpTZXBhcmF0b3IoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTWVzc2FnZURpYWxvZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTWVzc2FnZURpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ1MjdkODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pNZXNzYWdlRGlhbG9nLmphdmEKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkNhcmRMYXlvdXQ7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5KVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbFNldHRpbmdzOworCisvKioKKyAqIE1lc3NhZ2VEaWFsb2cgaXMgYSBzaW1wbGUgRnJhbWUgd2hpY2ggZGlzcGxheXMgYSBzdHlsZWQKKyAqIHRleHQgbWVzc2FnZSBpbiBhIFRleHRQYW5lbC4KKyAqIFRoZSB0ZXh0IGluIHRoZSBtZXNzYWdlIGlzIG5vdCBzZWxlY3RhYmxlIG9yIGVkaXRhYmxlLgorICogQHNlZSBNQ29uc3RUZXh0CisgKiBAc2VlIEpUZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpNZXNzYWdlRGlhbG9nIGV4dGVuZHMgSkZyYW1lIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgKiBDcmVhdGUgYSBuZXcgTWVzc2FnZURpYWxvZy4KKyAgICAqIEBwYXJhbSB0aXRsZSB0aGUgZGlhbG9nJ3MgdGl0bGUKKyAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSB0ZXh0IHdoaWNoIHdpbGwgYXBwZWFyIGluIHRoZSBkaWFsb2cKKyAgICAqLworICAgIHB1YmxpYyBKTWVzc2FnZURpYWxvZyhTdHJpbmcgdGl0bGUsIE1Db25zdFRleHQgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRpdGxlKTsKKworICAgICAgICBDb250YWluZXIgY29udGVudCA9IGdldENvbnRlbnRQYW5lKCk7CisgICAgICAgIGNvbnRlbnQuc2V0TGF5b3V0KG5ldyBDYXJkTGF5b3V0KCkpOworICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyBzZXR0aW5ncyA9IEpUZXh0UGFuZWwuZ2V0RGVmYXVsdFNldHRpbmdzKCk7CisgICAgICAgIHNldHRpbmdzLnNldFNjcm9sbGFibGUoZmFsc2UpOworICAgICAgICBzZXR0aW5ncy5zZXRTZWxlY3RhYmxlKGZhbHNlKTsKKyAgICAgICAgSlRleHRQYW5lbCBwYW5lbCA9IG5ldyBKVGV4dFBhbmVsKHNldHRpbmdzLCBtZXNzYWdlLCBudWxsKTsKKworICAgICAgICBwYW5lbC5zZXRCYWNrZ3JvdW5kKENvbG9yLmJsYWNrKTsKKyAgICAgICAgY29udGVudC5hZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0U2l6ZSg0NTAsMzIwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pOdW1iZXJEaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk51bWJlckRpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk3ZmMxOWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pOdW1iZXJEaWFsb2cuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CisKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpEaWFsb2c7CitpbXBvcnQgamF2YXguc3dpbmcuSlBhbmVsOworaW1wb3J0IGphdmF4LnN3aW5nLkpUZXh0RmllbGQ7CitpbXBvcnQgamF2YXguc3dpbmcuSkJ1dHRvbjsKK2ltcG9ydCBqYXZheC5zd2luZy5KTGFiZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1lbnVJdGVtU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLlJlc291cmNlVXRpbHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworCisvKioKKyogU2ltcGxlIGRpYWxvZyB3aGljaCBnZXRzIGEgbnVtYmVyLCBhbmQgc2VuZHMgYW4gYXBwcm9wcmlhdGUgY29tbWFuZAorKi8KK2ZpbmFsIGNsYXNzIEpOdW1iZXJEaWFsb2cgZXh0ZW5kcyBKRGlhbG9nIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgSlRleHRGaWVsZCBmSW5wdXQgPSBudWxsOworCisgICAgcHJpdmF0ZSBKQnV0dG9uIGZPS0J1dHRvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBKQnV0dG9uIGZDYW5jZWxCdXR0b24gPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIHByaXZhdGUgT2JqZWN0IGZLZXk7CisgICAgcHJpdmF0ZSBmbG9hdCBmTXVsdGlwbGllcjsgCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbXVsdGlwbGllciB0aGUgZmFjdG9yIGJ5IHdoaWNoIHRvIG11bHRpcGx5IHRoZSB1c2VyJ3MKKyAgICAgKiAgICAgICAgc2VsZWN0aW9uIGJlZm9yZSBjcmVhdGluZyB0aGUgYXR0cmlidXRlIHZhbHVlLiAgIFRoaXMKKyAgICAgKiAgICAgICAgaXMgdXNlZnVsIGZvciBzdWJzY3JpcHRpbmcuCisgICAgICovCisgICAgSk51bWJlckRpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgZmxvYXQgbXVsdGlwbGllcikgeworCisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgZk11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOworICAgICAgICAKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnQgPSBnZXRDb250ZW50UGFuZSgpOworICAgICAgICAKKyAgICAgICAgY29udGVudC5zZXRMYXlvdXQobmV3IGphdmEuYXd0LkdyaWRMYXlvdXQoMiwxKSk7CisKKyAgICAgICAgSlBhbmVsIHBhbmVsID0gbmV3IEpQYW5lbCgpOworICAgICAgICBwYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDEwLCAxNSkpOworICAgICAgICBmSW5wdXQgPSBuZXcgSlRleHRGaWVsZCg1KTsKKworICAgICAgICBwYW5lbC5hZGQobmV3IEpMYWJlbChtZXNzYWdlKSk7CisgICAgICAgIHBhbmVsLmFkZChmSW5wdXQpOworICAgICAgICBjb250ZW50LmFkZCgiQ2VudGVyIiwgcGFuZWwpOworCisgICAgICAgIGZDYW5jZWxCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk9LKSk7CisgICAgICAgIEpQYW5lbCBwID0gbmV3IEpQYW5lbCgpOworICAgICAgICBwLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBwLmFkZChmQ2FuY2VsQnV0dG9uKTsKKyAgICAgICAgcC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgY29udGVudC5hZGQoIlNvdXRoIiwgcCk7CisKKyAgICAgICAgcGFjaygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3coZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIGZPS0J1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZkNhbmNlbEJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2xvc2VXaW5kb3coYm9vbGVhbiBzZW5kQWN0aW9uKSB7CisKKyAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisKKyAgICAgICAgaW50IG51bSA9IDA7CisgICAgICAgIGlmIChzZW5kQWN0aW9uKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gZklucHV0LmdldFRleHQoKTsKKyAgICAgICAgICAgICAgICBudW0gPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5wYXJzZSh0ZXh0KS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIHNlbmRBY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZW5kQWN0aW9uKSB7CisgICAgICAgICAgICBzZW5kQWN0aW9uKG51bSk7CisgICAgICAgIH0KKworICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKworICAgICAgICBPYmplY3Qgc291cmNlID0gZS5nZXRTb3VyY2UoKTsKKworICAgICAgICBpZiAoc291cmNlID09IGZPS0J1dHRvbikgeworICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZDYW5jZWxCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgQWN0aW9uRXZlbnQhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIEhhbmRsZSB0aGUgdXNlciBpbnB1dAorICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRoZSB1c2VyIHR5cGVkIGluCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihpbnQgbnVtYmVyKSB7CisgICAgICAgIGZsb2F0IG51bSA9IG51bWJlciAqIGZNdWx0aXBsaWVyOworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmxvYXQobnVtKSk7CisgICAgICAgIGlmIChmQ2hhcmFjdGVyID09IE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pPYmplY3REaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk9iamVjdERpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiZWMwNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pPYmplY3REaWFsb2cuamF2YQpAQCAtMCwwICsxLDI3NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGphdmF4LnN3aW5nLkJveDsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3JkZXJGYWN0b3J5OworaW1wb3J0IGphdmF4LnN3aW5nLkJveExheW91dDsKK2ltcG9ydCBqYXZheC5zd2luZy5KRGlhbG9nOworaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KQnV0dG9uOworaW1wb3J0IGphdmF4LnN3aW5nLkpMaXN0OworaW1wb3J0IGphdmF4LnN3aW5nLkpMYWJlbDsKK2ltcG9ydCBqYXZheC5zd2luZy5MaXN0U2VsZWN0aW9uTW9kZWw7CisKK2ltcG9ydCBqYXZheC5zd2luZy5ldmVudC5MaXN0U2VsZWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuZXZlbnQuTGlzdFNlbGVjdGlvbkxpc3RlbmVyOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuRmxvd0xheW91dDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NZW51SXRlbVNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCisvKioKKyogU2ltcGxlIGRpYWxvZyB0aGF0IHNldHMgYW4gYXR0cmlidXRlLgorKi8KK2ZpbmFsIGNsYXNzIEpPYmplY3REaWFsb2cgZXh0ZW5kcyBKRGlhbG9nIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIGZpbmFsIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGZOYW1lVG9WYWx1ZU1hcDsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIEpCdXR0b24gZk9LQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgSkJ1dHRvbiBmQ2FuY2VsQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgSkxpc3QgZkl0ZW1zOworICAgIAorICAgIC8qKgorICAgICogQ29uc3RydWN0IGEgbmV3IEpPYmplY3REaWFsb2cuCisgICAgKiBAcGFyYW0gcGFyZW50IHRoZSBkaWFsb2cncyBwYXJlbnQgZnJhbWUKKyAgICAqIEBwYXJhbSB0aXRsZSB0aGUgZGlhbG9ncyB0aXRsZQorICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIG1lc3NhZ2UgZGlzcGxheWVkIG5leHQgdG8gdGhlIGlucHV0IGJveAorICAgICovCisgICAgSk9iamVjdERpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsIAorICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsIAorICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3VwZXIocGFyZW50LCB0aXRsZSwgZmFsc2UpOworCisgICAgICAgIHNldHVwTWFwKG5hbWVzLCB2YWx1ZXMpOworICAgICAgICAKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBuZXcgRGltZW5zaW9uKDI1MCwgMjAwKTsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBmSXRlbXMgPSBuZXcgSkxpc3QobmFtZXMpOworICAgICAgICBmSXRlbXMuc2V0U2VsZWN0aW9uTW9kZShMaXN0U2VsZWN0aW9uTW9kZWwuTVVMVElQTEVfSU5URVJWQUxfU0VMRUNUSU9OKTsKKyAgICAgICAgCisgICAgICAgIGZJdGVtcy5hZGRNb3VzZUxpc3RlbmVyKG5ldyBNb3VzZUFkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBtb3VzZUNsaWNrZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0Q2xpY2tDb3VudCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIEpTY3JvbGxQYW5lIGxpc3RTY3JvbGxlciA9IG5ldyBKU2Nyb2xsUGFuZShmSXRlbXMpOworICAgICAgICBsaXN0U2Nyb2xsZXIuc2V0UHJlZmVycmVkU2l6ZShzaXplKTsKKyAgICAgICAgbGlzdFNjcm9sbGVyLnNldFByZWZlcnJlZFNpemUoc2l6ZSk7CisgICAgICAgIGxpc3RTY3JvbGxlci5zZXRBbGlnbm1lbnRYKExFRlRfQUxJR05NRU5UKTsKKworICAgICAgICBKTGFiZWwgbGFiZWwgPSBuZXcgSkxhYmVsKG1lc3NhZ2UpOworICAgICAgICBsYWJlbC5zZXRMYWJlbEZvcihmSXRlbXMpOworICAgICAgICAKKyAgICAgICAgSlBhbmVsIGl0ZW1QYW5lbCA9IG5ldyBKUGFuZWwoKTsKKyAgICAgICAgaXRlbVBhbmVsLmFkZChsYWJlbCk7CisgICAgICAgIGl0ZW1QYW5lbC5hZGQoQm94LmNyZWF0ZVJpZ2lkQXJlYShuZXcgRGltZW5zaW9uKDAsNSkpKTsKKyAgICAgICAgaXRlbVBhbmVsLmFkZChsaXN0U2Nyb2xsZXIpOworICAgICAgICBpdGVtUGFuZWwuc2V0Qm9yZGVyKEJvcmRlckZhY3RvcnkuY3JlYXRlRW1wdHlCb3JkZXIoMTAsMTAsMTAsMTApKTsKKyAgICAgICAgCisgICAgICAgIGl0ZW1QYW5lbC5zZXRMYXlvdXQobmV3IEJveExheW91dChpdGVtUGFuZWwsIEJveExheW91dC5ZX0FYSVMpKTsKKyAgICAgICAgCisgICAgICAgIGZDYW5jZWxCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk9LKSk7CisgICAgICAgIAorICAgICAgICBKUGFuZWwgYnV0dG9uUGFuZWwgPSBuZXcgSlBhbmVsKCk7CisgICAgICAgIGJ1dHRvblBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBidXR0b25QYW5lbC5hZGQoZkNhbmNlbEJ1dHRvbik7CisgICAgICAgIGJ1dHRvblBhbmVsLmFkZChmT0tCdXR0b24pOworICAgICAgICAKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnQgPSBnZXRDb250ZW50UGFuZSgpOworICAgICAgICBjb250ZW50LmFkZChpdGVtUGFuZWwsIEJvcmRlckxheW91dC5DRU5URVIpOworICAgICAgICBjb250ZW50LmFkZChidXR0b25QYW5lbCwgQm9yZGVyTGF5b3V0LlNPVVRIKTsKKworICAgICAgICBwYWNrKCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgQWN0aW9uTGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICBmQ2FuY2VsQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgCisgICAgICAgIHNlbGVjdFN0eWxlcyh2YWx1ZXMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0dXBNYXAoU3RyaW5nW10gbmFtZXMsIE9iamVjdFtdIHZhbHVlcykgeworICAgIAorICAgICAgICBpZiAobmFtZXMubGVuZ3RoICE9IHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3QgaGF2ZSBzYW1lIG51bWJlciBvZiBuYW1lcyBhbmQgdmFsdWVzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTmFtZVRvVmFsdWVNYXAgPSBuZXcgSGFzaHRhYmxlKG5hbWVzLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZk5hbWVUb1ZhbHVlTWFwLnB1dChuYW1lc1tpXSwgdmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24gJiYgZkl0ZW1zLmdldE1pblNlbGVjdGlvbkluZGV4KCkgIT0gZkl0ZW1zLmdldE1heFNlbGVjdGlvbkluZGV4KCkpIHsKKyAgICAgICAgICAgIHNlbmRBY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGZOYW1lVG9WYWx1ZU1hcC5nZXQoZkl0ZW1zLmdldFNlbGVjdGVkVmFsdWUoKSk7CisgICAgICAgICAgICBzZW5kQWN0aW9uKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2JqZWN0CisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihPYmplY3QgdmFsdWUpIHsKKworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyOworICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGZLZXksIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQgPSBuZXcgQXR0cmlidXRlU2V0KGZLZXkpOworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKHNldCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBNZW51SXRlbVNldC5DSEFSQUNURVIpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZWxlY3RWYWx1ZShPYmplY3QgdmFsdWUsIE9iamVjdFtdIHZhbHVlcykgeworICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgCisgICAgICAgICAgICBpZiAoKHZhbHVlICE9IG51bGwgJiYgdmFsdWUuZXF1YWxzKHZhbHVlc1tpXSkpIHx8ICh2YWx1ZSA9PSBudWxsICYmIHZhbHVlc1tpXSA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIGZJdGVtcy5hZGRTZWxlY3Rpb25JbnRlcnZhbChpLCBpKTsKKyAgICAgICAgICAgICAgICBmSXRlbXMuZW5zdXJlSW5kZXhJc1Zpc2libGUoaSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZWxlY3RTdHlsZXMoT2JqZWN0W10gdmFsdWVzKSB7CisgICAgCisgICAgICAgIE9iamVjdCB2YWx1ZTsKKyAKKyAgICAgICAgaWYgKGZDaGFyYWN0ZXIpIHsKKyAgICAgICAgICAgIHZhbHVlID0gZlRleHRQYW5lbC5nZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oZktleSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YWx1ZSA9IGZUZXh0UGFuZWwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodmFsdWUgIT0gTVRleHRQYW5lbC5NVUxUSVBMRV9WQUxVRVMpIHsKKyAgICAgICAgICAgIHNlbGVjdFZhbHVlKHZhbHVlLCB2YWx1ZXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZk9LQnV0dG9uLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc2VsTGltaXQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gZlRleHRQYW5lbC5nZXRUZXh0KCk7CisgICAgICAgICAgICBmb3IgKGludCBydW5TdGFydCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKTsgcnVuU3RhcnQgPD0gc2VsTGltaXQ7CisgICAgICAgICAgICAgICAgICAgIHJ1blN0YXJ0ID0gZkNoYXJhY3Rlcj8gdGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJ1blN0YXJ0KSA6IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucGFyYWdyYXBoTGltaXQocnVuU3RhcnQpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBPYmplY3QgcnVuVmFsOworICAgICAgICAgICAgICAgIGlmIChmQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1blZhbCA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5TdGFydCkuZ2V0KGZLZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcnVuVmFsID0gdGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHJ1blN0YXJ0KS5nZXQoZktleSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChydW5WYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBydW5WYWwgPSBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKS5nZXQoZktleSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNlbGVjdFZhbHVlKHJ1blZhbCwgdmFsdWVzKTsKKyAgICAgICAgICAgICAgICBpZiAocnVuU3RhcnQgPT0gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZJdGVtcy5hZGRMaXN0U2VsZWN0aW9uTGlzdGVuZXIobmV3IExpc3RTZWxlY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZhbHVlQ2hhbmdlZChMaXN0U2VsZWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGZJdGVtcy5zZXRTZWxlY3Rpb25Nb2RlKExpc3RTZWxlY3Rpb25Nb2RlbC5TSU5HTEVfU0VMRUNUSU9OKTsKKyAgICAgICAgICAgICAgICBmT0tCdXR0b24uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICBmSXRlbXMucmVtb3ZlTGlzdFNlbGVjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pUYWJSdWxlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGFiUnVsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTgyODAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGFiUnVsZXIuamF2YQpAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworCitpbXBvcnQgamF2YXguc3dpbmcuSkNvbXBvbmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLlRhYlJ1bGVySW1wbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLk1UYWJSdWxlckNvbXBvbmVudDsKKworLyoqCisgKiBKVGFiUnVsZXIgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgTVRhYlJ1bGVyQ29tcG9uZW50IGluIGEgU3dpbmcgY29tcG9uZW50LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgSlRhYlJ1bGVyIGV4dGVuZHMgSkNvbXBvbmVudCBpbXBsZW1lbnRzIE1UYWJSdWxlckNvbXBvbmVudCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRhYlJ1bGVySW1wbCBmSW1wbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhc2VsaW5lIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJ1bGVyJ3MgYmFzZWxpbmUKKyAgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB4LWNvb3JkaW5hdGUgaW4gdGhpcyBDb21wb25lbnQgd2hlcmUKKyAgICAgKiAgICAgdGhlIGxlZnQgbWFyZ2luIGFwcGVhcnMKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0by4gIFRoaXMgVGFiUnVsZXIKKyAgICAgKiAgICAgd2lsbCByZWZsZWN0IHRoZSBNVGV4dFBhbmVsJ3MgcGFyYWdyYXBoIHN0eWxlcywgYW5kIHVwZGF0ZQorICAgICAqICAgICB0aGUgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIG1hbmlwdWxhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBKVGFiUnVsZXIoaW50IGJhc2VsaW5lLCBpbnQgb3JpZ2luLCBNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAKKyAgICAgICAgZkltcGwgPSBuZXcgVGFiUnVsZXJJbXBsKGJhc2VsaW5lLCBvcmlnaW4sIHRleHRQYW5lbCwgdGhpcyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExpc3RlbiB0byB0aGUgZ2l2ZW4gTVRleHRQYW5lbCBhbmQgcmVmbGVjdCBpdHMgY2hhbmdlcywKKyAgICAgKiBhbmQgdXBkYXRlIGl0cyBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gVGFiUnVsZXIgaXMKKyAgICAgKiBtYW5pcHVsYXRlZC4KKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxpc3RlblRvVGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgZkltcGwubGlzdGVuVG9UZXh0UGFuZWwodGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIENvbG9yIGdldEJhY2tDb2xvcigpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0QmFja0NvbG9yKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYWNrQ29sb3IgdGhlIG5ldyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrQ29sb3IoQ29sb3IgYmFja0NvbG9yKSB7CisKKyAgICAgICAgZkltcGwuc2V0QmFja0NvbG9yKGJhY2tDb2xvcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGdldFJ1bGVyKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFJ1bGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0TGVhZGluZ01hcmdpbigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdExpbmVJbmRlbnQoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0Rmlyc3RMaW5lSW5kZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VHJhaWxpbmdNYXJnaW4oKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0VHJhaWxpbmdNYXJnaW4oKTsKKyAgICB9CisgICAgCisgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgQ29tcG9uZW50IG1ldGhvZHMgd2hpY2ggbmVlZCB0byBiZSBkZWxlZ2F0ZWQgdG8KKyAgICAvLyB0aGUgaW1wbGVtZW50YXRpb246CisgICAgCisgICAgcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworICAgICAgICAKKyAgICAgICAgZkltcGwucGFpbnQoZyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRQcmVmZXJyZWRTaXplKCk7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBnZXRNaW5pbXVtU2l6ZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRNaW5pbXVtU2l6ZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRleHRGcmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGV4dEZyYW1lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGEzYThkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRleHRGcmFtZS5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWk7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLkpUZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudUJhcjsKK2ltcG9ydCBqYXZheC5zd2luZy5VSU1hbmFnZXI7CisKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CisKKy8qKgorICogSlRleHRGcmFtZSBpcyBhIEpGcmFtZSBjb250YWluaW5nIGFuIGVkaXRhYmxlIEpUZXh0UGFuZWwsIGEgc2V0IG9mIHN0YW5kYXJkCisgKiBtZW51cywgYW5kIGEgSlRhYlJ1bGVyLiAgVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcy1pcywgYnV0IGlzCisgKiBwcmltYXJpbHkgaW50ZW5kZWQgdG8gYmUgYSBzaW1wbGUgZXhhbXBsZSBvZiBob3cgdG8gdXNlIHRoZSBvdGhlciBjbGFzc2VzCisgKiBpbiB0aGlzIHBhY2thZ2UuCisgKiBAc2VlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLkpUZXh0UGFuZWwKKyAqIEBzZWUgU3dpbmdNZW51QnVpbGRlcgorICogQHNlZSBKVGFiUnVsZXIKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpUZXh0RnJhbWUgZXh0ZW5kcyBKRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEpUZXh0UGFuZWwgZlRleHRQYW5lbDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dEZyYW1lIHdpdGggbm8gdGV4dCwgbm8gdGl0bGUsIAorICAgICAqIGFuZCBhIHByaXZhdGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBKVGV4dEZyYW1lKCkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgaW5pdChudWxsLCBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRGcmFtZSB3aXRoIG5vIHRleHQgYW5kIHRoZSBnaXZlbiB0aXRsZS4KKyAgICAgKiBUaGUgSlRleHRQYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgY2xpcGJvYXJkLgorICAgICAqIEBwYXJhbSB0aXRsZSB0aGUgdGl0bGUgb2YgdGhpcyBGcmFtZQorICAgICAqLworICAgIHB1YmxpYyBKVGV4dEZyYW1lKFN0cmluZyB0aXRsZSkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIodGl0bGUpOworICAgICAgICBpbml0KG51bGwsIFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dEZyYW1lIHdpdGggdGhlIGdpdmVuIHRleHQgYW5kIHRpdGxlLCB3aG9zZQorICAgICAqIFRleHRQYW5lbCB3aWxsIHVzZSB0aGUgZ2l2ZW4gY2xpcGJvYXJkLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBpbml0aWFsIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIElmIG51bGwgdGhlCisgICAgICogICAgICBUZXh0UGFuZWwgd2lsbCBpbml0aWFsbHkgYmUgZW1wdHkKKyAgICAgKiBAcGFyYW0gdGl0bGUgdGhlIHRpdGxlIG9mIHRoaXMgRnJhbWUKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBDbGlwYm9hcmQgd2hpY2ggdGhlIFRleHRQYW5lbCB3aWxsIHVzZS4KKyAgICAgKiAgICAgIElmIG51bGwgdGhlIFRleHRQYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgQ2xpcGJvYXJkCisgICAgICovCisgICAgcHVibGljIEpUZXh0RnJhbWUoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgaW5pdCh0ZXh0LCBjbGlwYm9hcmQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbml0KE1Db25zdFRleHQgdGV4dCwgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG5ldyBKVGV4dFBhbmVsKHRleHQsIGNsaXBib2FyZCk7CisKKyAgICAgICAgSlRhYlJ1bGVyIHRhYlJ1bGVyID0gbmV3IEpUYWJSdWxlcigxNCwgMTAsIGZUZXh0UGFuZWwpOworCisgICAgICAgIGNyZWF0ZU1lbnVzKCk7CisKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnRQYW5lID0gZ2V0Q29udGVudFBhbmUoKTsKKyAgICAgICAgY29udGVudFBhbmUuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIGNvbnRlbnRQYW5lLmFkZChmVGV4dFBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIGNvbnRlbnRQYW5lLmFkZCh0YWJSdWxlciwgIk5vcnRoIik7CisgICAgICAgIHBhY2soKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlTWVudXMoKSB7CisKKyAgICAgICAgSk1lbnVCYXIgbWVudUJhciA9IG5ldyBKTWVudUJhcigpOworCisgICAgICAgIFN3aW5nTWVudUJ1aWxkZXIuZ2V0SW5zdGFuY2UoKS5jcmVhdGVNZW51cyhtZW51QmFyLCBmVGV4dFBhbmVsLCB0aGlzKTsKKyAgICAgICAgCisgICAgICAgIHNldEpNZW51QmFyKG1lbnVCYXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRleHRQYW5lbCBpbiB0aGlzIGZyYW1lLgorICAgICAqLworICAgIHB1YmxpYyBNVGV4dFBhbmVsIGdldFRleHRQYW5lbCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRQYW5lbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxhZiA9IFVJTWFuYWdlci5nZXRTeXN0ZW1Mb29rQW5kRmVlbENsYXNzTmFtZSgpOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgaWYgKGFyZ3NbMF0uZXF1YWxzKCJjcCIpKSB7CisgICAgICAgICAgICAgICAgbGFmID0gVUlNYW5hZ2VyLmdldENyb3NzUGxhdGZvcm1Mb29rQW5kRmVlbENsYXNzTmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVSU1hbmFnZXIuc2V0TG9va0FuZEZlZWwobGFmKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChUaHJvd2FibGUgdGgpIHsKKyAgICAgICAgICAgIHRoLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIEpUZXh0RnJhbWUgZnJhbWUgPSBuZXcgSlRleHRGcmFtZSgpOworICAgICAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZnJhbWUuc2V0U2l6ZSg1NTAsIDcwMCk7CisgICAgICAgIGZyYW1lLnNob3coKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvU3dpbmdNZW51QnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkMTljODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDIzNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuV2luZG93OworCitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnVCYXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuKjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5EaWFsb2dJdGVtLkRpYWxvZ0ZhY3Rvcnk7CisKKy8qKgorICogU3dpbmdNZW51QnVpbGRlciBwcm92aWRlcyBhIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBzZXQgb2YgU3dpbmcgbWVudXMgZm9yIGludGVyYWN0aW5nCisgKiB3aXRoIGFuIE1UZXh0UGFuZWwuICBGdXR1cmUgdmVyc2lvbnMgb2YgdGhpcyBjbGFzcyBtYXkgcHJvdmlkZSBncmVhdGVyIGNvbnRyb2wKKyAqIG92ZXIgdGhlIG1lbnUgY29udGVudHMuCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN3aW5nTWVudUJ1aWxkZXIgZXh0ZW5kcyBNZW51QnVpbGRlciB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTd2luZ01lbnVCdWlsZGVyIElOU1RBTkNFID0gbmV3IFN3aW5nTWVudUJ1aWxkZXIoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYW4gRWRpdCBtZW51LiAgVGhlIEVkaXQgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPlVuZG88L2I+IC0gaW52b2tlIHVuZG8oKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlJlZG88L2I+IC0gaW52b2tlIHJlZG8oKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPkN1dDwvYj4gLSBpbnZva2UgY3V0KCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5Db3B5PC9iPiAtIGludm9rZSBjb3B5KCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5QYXN0ZTwvYj4gLSBpbnZva2UgcGFzdGUoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPkNsZWFyPC9iPiAtIGludm9rZSBjbGVhcigpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+U2VsZWN0IEFsbDwvYj4gLSBpbnZva2Ugc2VsZWN0QWxsKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRURJVCA9IE1lbnVCdWlsZGVyLkVESVQ7CisgICAgLyoqCisgICAgICogSWQgZm9yIHRoZSBwb2ludCBzaXplcyBtZW51LiAgVGhlIG1lbnUgaGFzIGl0ZW1zIHRoYXQgc2V0IHRoZSBzaXplIG9mIGEgY2hhcmFjdGVyCisgICAgICogaW4gYSB0eXBlZmFjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSVpFID0gTWVudUJ1aWxkZXIuU0laRTsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBTdHlsZSBtZW51LiAgVGhlIFN0eWxlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5QbGFpbjwvYj4gLSByZW1vdmUgPGNvZGU+V0VJR0hUPC9jb2RlPiwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgPGNvZGU+UE9TVFVSRTwvY29kZT4sCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlVOREVSTElORTwvY29kZT4gYW5kCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlNUUklLRVRIUk9VR0g8L2NvZGU+IGF0dHJpYnV0ZXMgZnJvbSB0aGUKKyAgICAgKiBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkJvbGQ8L2I+IC0gYWRkIDxjb2RlPntXRUlHSFQsV0VJR0hUX0JPTER9PC9jb2RlPiB0bworICAgICAqIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkl0YWxpYzwvYj4gLSBhZGQgPGNvZGU+e1BPU1RVUkUsUE9TVFVSRV9JVEFMSUN9PC9jb2RlPiB0bworICAgICAqIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPlVuZGVybGluZTwvYj4gLSBhZGQgPGNvZGU+e1VOREVSTElORSxVTkRFUkxJTkVfT059PC9jb2RlPiB0bworICAgICAqIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPlN0cmlrZXRocm91Z2g8L2I+IC0gYWRkIDxjb2RlPntTVFJJS0VUSFJPVUdILFNUUklLRVRIUk9VR0hfT059PC9jb2RlPgorICAgICAqIHRvIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkZvbnQuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIHR5cGVmYWNlIChmb250IGZhbWlseSkgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkZvcmVjb2xvci4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgZm9yZWdyb3VuZCBjb2xvciBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+QmFja2NvbG9yLi4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RZTEUgPSBNZW51QnVpbGRlci5TVFlMRTsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBwYXJhZ3JhcGggYWxpZ25tZW50IG1lbnUuICBUaGUgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkxlYWRpbmc8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgTEVBRElORyBmbHVzaDwvbGk+CisgICAgICogPGxpPjxiPkNlbnRlcjwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBDRU5URVIgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5UcmFpbGluZzwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBUUkFJTElORyBmbHVzaDwvbGk+CisgICAgICogPGxpPjxiPkp1c3RpZmllZDwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBmdWxsIGp1c3RpZmljYXRpb248L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0ggPSBNZW51QnVpbGRlci5GTFVTSDsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBtZW51IHRoYXQgc2V0cyB0aGUgS2V5UmVtYXAKKyAgICAgKiBvbiBhbiBNVGV4dFBhbmVsLiAgVGhlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5EZWZhdWx0PC9iPiAtIHNldCBLZXlSZW1hcCB0byBpZGVudGl0eSByZW1hcDwvbGk+CisgICAgICogPGxpPjxiPkFyYWJpYzwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gQXJhYmljIHRyYW5zbGl0ZXJhdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkhlYnJldzwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gSGVicmV3IHRyYW5zbGl0ZXJhdGlvbjwvbGk+CisgICAgICogPGxpPjxiPklzcmFlbCBOaWt1ZDwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gSXNyYWVsIE5pa3VkPC9saT4KKyAgICAgKiA8bGk+PGI+VGhhaSBLZXRtYW5lZTwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gVGhhaSBLZXRtYW5lZTwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLRVlNQVAgPSBNZW51QnVpbGRlci5LRVlNQVA7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB0aGF0IHNldHMKKyAgICAgKiB0aGUgcHJpbWFyeSBydW4gZGlyZWN0aW9uIGZvciBhIHBhcmFncmFwaC4gIFJ1biBkaXJlY3Rpb24gY2FuIGJlIGxlZnQtdG8tcmlnaHQsCisgICAgICogcmlnaHQtdG8tbGVmdCwgb3IgY2FuIHVzZSB0aGUgZGVmYXVsdCBydW4gZGlyZWN0aW9uIGZyb20gdGhlIFVuaWNvZGUgYmlkaSBhbGdvcml0aG0uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESSA9IE1lbnVCdWlsZGVyLkJJREk7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB3aXRoIGFuIDxiPkFib3V0PC9iPiBpdGVtLiAgV2hlbiBzZWxlY3RlZCwgCisgICAgICogdGhlIGl0ZW0gZGlzcGxheXMgYSBGcmFtZSBjb250YWluaW5nIHNvbWUKKyAgICAgKiBzZWxmLXByb21vdGlvbmFsIHRleHQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUJPVVQgPSBNZW51QnVpbGRlci5BQk9VVDsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW5zdGFuY2Ugb2YgU3dpbmdNZW51QnVpbGRlci4KKyAgICAgKi8KKyAgICAgCisgICAgcHVibGljIHN0YXRpYyBTd2luZ01lbnVCdWlsZGVyIGdldEluc3RhbmNlKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIElOU1RBTkNFOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIEpNZW51QmFyIGZNZW51QmFyOworICAgIAorICAgIHByaXZhdGUgU3dpbmdNZW51QnVpbGRlcigpIHsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgc3RhbmRhcmQgc2V0IG9mIG1lbnVzIHRvIHRoZSBnaXZlbiBtZW51IGJhci4gIFRoZSBtZW51cyAKKyAgICAgKiB3aWxsIGludGVyYWN0IHdpdGggdGhlIGdpdmVuIE1UZXh0UGFuZWwuCisgICAgICogQHBhcmFtIG1lbnVCYXIgdGhlIE1lbnVCYXIgdG8gd2hpY2ggbWVudXMgYXJlIGFkZGVkCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB3aXRoIHdoaWNoIHRoZSBtZW51cyBpbnRlcmFjdAorICAgICAqIEBwYXJhbSBmcmFtZSBhIEZyYW1lIHRvIHVzZSBhcyB0aGUgcGFyZW50IG9mIGFueSBkaWFsb2dzIGNyZWF0ZWQgYnkgYSAKKyAgICAgKiAgIGEgbWVudSBpdGVtLiAgSWYgbnVsbCwgbWVudSBpdGVtcyB3aGljaCBjcmVhdGUgZGlhbG9ncyB3aWxsIGJlIG9taXR0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoSk1lbnVCYXIgbWVudUJhciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUpIHsKKworICAgICAgICBjcmVhdGVNZW51cyhtZW51QmFyLCB0ZXh0UGFuZWwsIGZyYW1lLCBkZWZhdWx0TWVudXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKiBAcGFyYW0gbWVudXMgYW4gYXJyYXkgb2YgaW50ZWdlciBtZW51IGlkJ3MuICBFYWNoIGVsZW1lbnQgb2YgdGhlCisgICAgICogICBhcnJheSBtdXN0IGJlIG9uZSBvZiB0aGlzIGNsYXNzJ3MgbWVudSBpZCBjb25zdGFudHMuICBJZiBudWxsLAorICAgICAqICAgdGhlIGRlZmF1bHQgbWVudXMgYXJlIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoSk1lbnVCYXIgbWVudUJhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgaWYgKG1lbnVzID09IG51bGwpIHsKKyAgICAgICAgICAgIG1lbnVzID0gZGVmYXVsdE1lbnVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQgKE1JdGVtLkxPQ0spIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZk1lbnVCYXIgPSBtZW51QmFyOworICAgICAgICAgICAgZG9DcmVhdGVNZW51cyh0ZXh0UGFuZWwsIGZyYW1lLCBtZW51cyk7CisgICAgICAgICAgICBmTWVudUJhciA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQWRkTWVudShTdHJpbmcga2V5KSB7CisgICAgICAgIAorICAgICAgICBKTWVudSBtZW51ID0gbmV3IEpNZW51KFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoa2V5KSk7CisgICAgICAgIGZNZW51QmFyLmFkZChtZW51KTsKKyAgICAgICAgTUl0ZW0uc2V0SXRlbUZhY3RvcnkobmV3IFN3aW5nTWVudUZhY3RvcnkobWVudSkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU9iamVjdERpYWxvZ0ZhY3RvcnkoZmluYWwgU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICAKKyAgICAgICAgZmluYWwgRnJhbWUgZGlhbG9nUGFyZW50ID0gZkRpYWxvZ1BhcmVudDsKKworICAgICAgICByZXR1cm4gbmV3IERpYWxvZ0ZhY3RvcnkoKSB7ICAgIAorICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEpPYmplY3REaWFsb2coZGlhbG9nUGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERpYWxvZ0ZhY3RvcnkgY3JlYXRlTnVtYmVyRGlhbG9nRmFjdG9yeShmaW5hbCBTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGNoYXJhY3RlcikgeworICAgICAgICAKKyAgICAgICAgZmluYWwgRnJhbWUgZGlhbG9nUGFyZW50ID0gZkRpYWxvZ1BhcmVudDsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgZmluYWwgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBmVGV4dFBhbmVsOworICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgZlRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSk51bWJlckRpYWxvZyhkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAKKyAgICBwcm90ZWN0ZWQgRGlhbG9nRmFjdG9yeSBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IERpYWxvZ0ZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQUJPVVRfVElUTEUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSk1lc3NhZ2VEaWFsb2codGl0bGUsIEFib3V0VGV4dC5nZXRBYm91dFRleHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvU3dpbmdNZW51RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2Q2MThlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvU3dpbmdNZW51RmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWk7CisKK2ltcG9ydCBqYXZhLmF3dC5FdmVudDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpDaGVja0JveE1lbnVJdGVtOworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51OworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51SXRlbTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2VwYXJhdG9yOworaW1wb3J0IGphdmF4LnN3aW5nLktleVN0cm9rZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtLkl0ZW1GYWN0b3J5OworCitmaW5hbCBjbGFzcyBTd2luZ01lbnVGYWN0b3J5IGltcGxlbWVudHMgSXRlbUZhY3RvcnkgeworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgU3dpbmdNSXRlbSBleHRlbmRzIE1JdGVtIHsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgSk1lbnVJdGVtIGZJdGVtOworICAgICAgICAKKyAgICAgICAgU3dpbmdNSXRlbShKTWVudUl0ZW0gaXRlbSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmSXRlbSA9IGl0ZW07CisgICAgICAgICAgICBpdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTZWxlY3RlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIuaGFuZGxlU2VsZWN0ZWQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgc2V0U3RhdGUoYm9vbGVhbiBjaGVja2VkKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgSkNoZWNrQm94TWVudUl0ZW0gaXRlbSA9IChKQ2hlY2tCb3hNZW51SXRlbSkgZkl0ZW07CisgICAgICAgICAgICAgICAgaXRlbS5zZXRTdGF0ZShjaGVja2VkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGVyZm9ybSBzZXRDaGVja2VkIG9uIG5vbi1jaGVja2JveCBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBKTWVudSBmTWVudTsKKyAgICAgICAgCisgICAgU3dpbmdNZW51RmFjdG9yeShKTWVudSBtZW51KSB7CisgICAgICAgICAgICAKKyAgICAgICAgZk1lbnUgPSBtZW51OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIE1JdGVtIGhhbmRsZUNyZWF0ZShKTWVudUl0ZW0gaXRlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YSBtZW51RGF0YSkgeworCisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBLZXlTdHJva2Uga3MgPSBLZXlTdHJva2UuZ2V0S2V5U3Ryb2tlKG1lbnVEYXRhLmdldFNob3J0Y3V0S2V5Q29kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudC5DVFJMX01BU0spOworICAgICAgICAgICAgaXRlbS5zZXRBY2NlbGVyYXRvcihrcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgU3dpbmdNSXRlbShpdGVtKTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBNSXRlbSBjcmVhdGVJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlQ3JlYXRlKG5ldyBKTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKSwgbWVudURhdGEpOworICAgIH0gICAgICAgIAorCisgICAgcHVibGljIE1JdGVtIGNyZWF0ZUNoZWNrYm94SXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZShuZXcgSkNoZWNrQm94TWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKSwgbWVudURhdGEpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVTZXBhcmF0b3IoKSB7CisgICAgICAgIAorICAgICAgICBmTWVudS5hZGQobmV3IEpTZXBhcmF0b3IoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yY2U0MmVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCEtLQorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCistLT4KKzxodG1sPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUHJvdmlkZXMgY2xhc3NlcyBmb3IgYnVpbGRpbmcgYSBTd2luZy1iYXNlZCB1c2VyIGludGVyZmFjZSBmb3IgYSBUZXh0UGFuZWwuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0RlY2xhcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0RlY2xhcmF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE1ZmM1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvRGVjbGFyYXRpb24uamF2YQpAQCAtMCwwICsxLDQyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3Q7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qKgorICogVGhpcyBjbGFzcyBjb250YWlucyB0aGUgZmlyc3QgZm91ciBwYXJhZ3JhcGhzIG9mIHRoZSBEZWNsYXJhdGlvbgorICogb2YgSW5kZXBlbmRlbmNlLCBhcyBib3RoIHN0eWxlZCBhbmQgdW5zdHlsZWQgdGV4dC4gIFRoZSB2aWV3cworICogZXhwcmVzc2VkIHRoZXJlaW4gYXJlIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgcHJvZ3JhbW1lciBvciBvZgorICogaGlzL2hlciBlbXBsb3llci4gIE5vIGNyaXRpY2lzbSBvZiBhbnkgbW9uYXJjaHksIG9saWdhcmNoeSwgZGljdGF0b3JzaGlwLAorICogYXV0b2NyYWN5LCBwbHV0b2NyYWN5LCB0aGVvY3JhY3ksIGFuYXJjaGlzdCB0ZXJyaXRvcnksIGNvbG9uaWFsIHBvd2VyLAorICogb3IgYW55IG90aGVyIG5vbmRlbW9jcmF0aWMgZm9ybSBvZiBnb3Zlcm5tZW50IGlzIGludGVuZGVkLiAgVGhpcyBkb2N1bWVudAorICogaXMgcHJvdmlkZWQgImFzLWlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzZWQgb3IgaW1wbGllZC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIERlY2xhcmF0aW9uIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdEZWNsYXJhdGlvblN0ciA9ICJJbiBDb25ncmVzcywgSnVseSA0LCAxNzc2LCBUSEUgVU5BTklNT1VTIERFQ0xBUkFUSU9OIE9GIFRIRSBUSElSVEVFTiBVTklURUQgU1RBVEVTIE9GIEFNRVJJQ0FcbiIgKworICAgICAgICAiXG4iICsKKyAgICAgICAgIldoZW4gaW4gdGhlIENvdXJzZSBvZiBodW1hbiBFdmVudHMsIGl0IGJlY29tZXMgbmVjZXNzYXJ5IGZvciBvbmUgUGVvcGxlIHRvIGRpc3NvbHZlIHRoZSBQb2xpdGljYWwgQmFuZHMgd2hpY2ggaGF2ZSBjb25uZWN0ZWQgdGhlbSB3aXRoIGFub3RoZXIsIGFuZCB0byBhc3N1bWUgYW1vbmcgdGhlIFBvd2VycyBvZiB0aGUgRWFydGgsIHRoZSBzZXBhcmF0ZSBhbmQgZXF1YWwgU3RhdGlvbiB0byB3aGljaCB0aGUgTGF3cyBvZiBOYXR1cmUgYW5kIG9mIE5hdHVyZSdzIEdvZCBlbnRpdGxlIHRoZW0sIGEgZGVjZW50IFJlc3BlY3QgdG8gdGhlIE9waW5pb25zIG9mIE1hbmtpbmQgcmVxdWlyZXMgdGhhdCB0aGV5IHNob3VsZCBkZWNsYXJlIHRoZSBjYXVzZXMgd2hpY2ggaW1wZWwgdGhlbSB0byB0aGUgU2VwYXJhdGlvbi5cbiIgKworICAgICAgICAiXG4iICsKKyAgICAgICAgIldlIGhvbGQgdGhlc2UgVHJ1dGhzIHRvIGJlIHNlbGYtZXZpZGVudCwgdGhhdCBhbGwgTWVuIGFyZSBjcmVhdGVkIGVxdWFsLCB0aGF0IHRoZXkgYXJlIGVuZG93ZWQgYnkgdGhlaXIgQ3JlYXRvciB3aXRoIGNlcnRhaW4gdW5hbGllbmFibGUgUmlnaHRzLCB0aGF0IGFtb25nIHRoZXNlIGFyZSBMaWZlLCBMaWJlcnR5LCBhbmQgdGhlIFB1cnN1aXQgb2YgSGFwcGluZXNzLlxuIiArCisgICAgICAgICJcbiIgKworICAgICAgICAiVGhhdCB0byBzZWN1cmUgdGhlc2UgUmlnaHRzLCBHb3Zlcm5tZW50cyBhcmUgaW5zdGl0dXRlZCBhbW9uZyBNZW4sIGRlcml2aW5nIHRoZWlyIGp1c3QgUG93ZXJzIGZyb20gdGhlIENvbnNlbnQgb2YgdGhlIEdvdmVybmVkLCB0aGF0IHdoZW5ldmVyIGFueSBGb3JtIG9mIEdvdmVybm1lbnQgYmVjb21lcyBkZXN0cnVjdGl2ZSBvZiB0aGVzZSBFbmRzLCBpdCBpcyB0aGUgUmlnaHQgb2YgdGhlIFBlb3BsZSB0byBhbHRlciBvciB0byBhYm9saXNoIGl0LCBhbmQgdG8gaW5zdGl0dXRlIG5ldyBHb3Zlcm5tZW50LCBsYXlpbmcgaXRzIEZvdW5kYXRpb24gb24gc3VjaCBQcmluY2lwbGVzLCBhbmQgb3JnYW5pemluZyBpdHMgUG93ZXJzIGluIHN1Y2ggRm9ybSwgYXMgdG8gdGhlbSBzaGFsbCBzZWVtIG1vc3QgbGlrZWx5IHRvIGVmZmVjdCB0aGVpciBTYWZldHkgYW5kIEhhcHBpbmVzcy4gUHJ1ZGVuY2UsIGluZGVlZCwgd2lsbCBkaWN0YXRlIHRoYXQgR292ZXJubWVudHMgbG9uZyBlc3RhYmxpc2hlZCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZm9yIGxpZ2h0IGFuZCB0cmFuc2llbnQgQ2F1c2VzOyBhbmQgYWNjb3JkaW5nbHkgYWxsIEV4cGVyaWVuY2UgaGF0aCBzaGV3biwgdGhhdCBNYW5raW5kIGFyZSBtb3JlIGRpc3Bvc2VkIHRvIHN1ZmZlciwgd2hpbGUgRXZpbHMgYXJlIHN1ZmZlcmFibGUsIHRoYW4gdG8gcmlnaHQgdGhlbXNlbHZlcyBieSBhYm9saXNoaW5nIHRoZSBGb3JtcyB0byB3aGljaCB0aGV5IGFyZSBhY2N1c3RvbWVkLiBCdXQgd2hlbiBhIGxvbmcgVHJhaW4gb2YgQWJ1c2VzIGFuZCBVc3VycGF0aW9ucywgcHVyc3VpbmcgaW52YXJpYWJseSB0aGUgc2FtZSBPYmplY3QsIGV2aW5jZXMgYSBEZXNpZ24gdG8gcmVkdWNlIHRoZW0gdW5kZXIgYWJzb2x1dGUgRGVzcG90aXNtLCBpdCBpcyB0aGVpciBSaWdodCwgaXQgaXMgdGhlaXIgRHV0eSwgdG8gdGhyb3cgb2ZmIHN1Y2ggR292ZXJubWVudCwgYW5kIHRvIHByb3ZpZGUgbmV3IEd1YXJkcyBmb3IgdGhlaXIgZnV0dXJlIFNlY3VyaXR5LlxuIiArCisgICAgICAgICJcbiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1Db25zdFRleHQgZmdEZWNsYXJhdGlvbiA9IG5ldyBTdHlsZWRUZXh0KGZnRGVjbGFyYXRpb25TdHIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvSVRlc3RUZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvSVRlc3RUZXh0UGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMzg2YjViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9JVGVzdFRleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsMjExIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JpZExheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UZXh0RnJhbWU7CisKK3B1YmxpYyBjbGFzcyBJVGVzdFRleHRQYW5lbCBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIGZnT3BDb3VudCA9IDA7CisKKyAgICBwcml2YXRlIFRlc3RUZXh0UGFuZWwgZlRlc3Q7CisgICAgCisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBGcmFtZSBmVGV4dEZyYW1lOworICAgIHByaXZhdGUgQ2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBCdXR0b24gZkV4ZXJzaXplLCBmU3RyZXNzVGVzdCwgZlJlc2l6ZTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBEYXRlIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkKCJJVGV4dFRlc3RQYW5lbCIpOworICAgICAgICAgICAgVGV4dEZyYW1lIGZyYW1lID0gbmV3IFRleHRGcmFtZShudWxsLCAiSW50ZXJhY3RpdmUgVGVzdCIsIGNsaXBib2FyZCk7CisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZnJhbWUuZ2V0VGV4dFBhbmVsKCk7CisKKyAgICAgICAgICAgIG5ldyBJVGVzdFRleHRQYW5lbChwYW5lbCwgZnJhbWUsIGNsaXBib2FyZCkuc2hvdygpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCB0aW1lOiAiICsgZGYuZm9ybWF0KHN0YXJ0RGF0ZSkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbmQgVGltZTogIiArIGRmLmZvcm1hdChuZXcgRGF0ZSgpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9wIGNvdW50OiAiICsgZmdPcENvdW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBJVGVzdFRleHRQYW5lbChNVGV4dFBhbmVsIHBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIGZUZXh0UGFuZWwgPSBwYW5lbDsKKyAgICAgICAgZlRlc3QgPSBuZXcgVGVzdFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgZkNsaXBib2FyZCA9IGNsaXBib2FyZDsKKworICAgICAgICBzZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMCwgMSkpOworCisgICAgICAgIGZUZXh0RnJhbWUgPSBmcmFtZTsKKyAgICAgICAgZlRleHRGcmFtZS5zZXRTaXplKDM1MCwgNTAwKTsKKyAgICAgICAgZlRleHRGcmFtZS5zaG93KCk7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSBVSToKKyAgICAgICAgZkV4ZXJzaXplID0gbmV3IEJ1dHRvbigiRXhlcmNpc2UiKTsKKyAgICAgICAgZkV4ZXJzaXplLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBhZGQoZkV4ZXJzaXplKTsKKworICAgICAgICBmU3RyZXNzVGVzdCA9IG5ldyBCdXR0b24oIlN0cmVzcyBUZXN0Iik7CisgICAgICAgIGZTdHJlc3NUZXN0LmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBhZGQoZlN0cmVzc1Rlc3QpOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0FjdGl2YXRlZChXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgLy9hY3RpdmF0ZVRleHRGcmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHNldFNpemUoMjgwLCAxNTApOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhY3RpdmF0ZVRleHRGcmFtZSgpIHsKKworICAgICAgICBmVGV4dEZyYW1lLnRvRnJvbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZXZlbnQpIHsKKworICAgICAgICBPYmplY3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCk7CisgICAgICAgIGFjdGl2YXRlVGV4dEZyYW1lKCk7CisgICAgICAgIERhdGUgc3RhcnREYXRlID0gbmV3IERhdGUoKTsKKyAgICAgICAgYm9vbGVhbiBleGl0ZWROb3JtYWxseSA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoc291cmNlID09IGZFeGVyc2l6ZSkgeworICAgICAgICAgICAgICAgIGZUZXN0LmluY1JhbmRTZWVkKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgMTAwOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3BlcmF0aW9uKGZUZXh0RnJhbWUsIGZDbGlwYm9hcmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU3RyZXNzVGVzdCkgeworICAgICAgICAgICAgICAgIGZUZXN0LmluY1JhbmRTZWVkKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3BlcmF0aW9uKGZUZXh0RnJhbWUsIGZDbGlwYm9hcmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4aXRlZE5vcm1hbGx5ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmICghZXhpdGVkTm9ybWFsbHkpIHsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCB0aW1lOiAiICsgZGYuZm9ybWF0KHN0YXJ0RGF0ZSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5kIFRpbWU6ICIgKyBkZi5mb3JtYXQobmV3IERhdGUoKSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmFuZCBzZWVkOiAiICsgZlRlc3QuZ2V0UmFuZFNlZWQoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPcCBjb3VudDogIiArIGZnT3BDb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgcmFuZG9tIG9wZXJhdGlvbiBvbiB0aGUgTVRleHRQYW5lbC4gIEZyYW1lIGNhbgorICAgICAqIGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9QX0NPVU5UID0gMTU7CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RPcGVyYXRpb24oRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBmQ2xpcGJvYXJkKSB7CisKKyAgICAgICAgaW50IG9wID0gZlRlc3QucmFuZEludChPUF9DT1VOVCk7CisKKyAgICAgICAgc3dpdGNoIChvcCkgeworCisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RTZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGZUZXN0Ll90ZXN0TW9kaWZpY2F0aW9ucyhUZXN0VGV4dFBhbmVsLk1PRF9URVhULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RFZGl0TWVudU9wZXJhdGlvbnMoZkNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICBmVGVzdC5fdGVzdE1vZEZsYWcoZlRleHRQYW5lbC5nZXRDb21tYW5kTG9nU2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIGZUZXN0LmFwcGx5Q2hhcmFjdGVyU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIGZUZXN0LmFwcGx5UGFyYWdyYXBoU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgICAgIGZUZXN0LnR5cGVLZXlzKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgZlRlc3Quc2VsZWN0VGV4dCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgICAgIGZUZXN0LnVuZG9SZWRvKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgLy9pZiAoZnJhbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vICAgIGZUZXN0LnJlc2l6ZUZyYW1lKGZyYW1lKTsKKyAgICAgICAgICAgICAgICAvLyAgICBicmVhazsKKyAgICAgICAgICAgICAgICAvL30KKworICAgICAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgICAgICBmVGVzdC5hcHBseUtleVJlbWFwKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RDb21tYW5kTG9nQ29udHJvbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT1BfQ09VTlQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgZmdPcENvdW50Kys7CisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVGVzdFRleHRQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UZXN0VGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzdiNWI4OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVGVzdFRleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsODQyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3Q7CisKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkT3duZXI7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlN0cmluZ1NlbGVjdGlvbjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuVHJhbnNmZXJhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuS2V5UmVtYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuS2V5RXZlbnRGb3J3YXJkZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsTGlzdGVuZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKKworLy8gTm90ZTogIHRoaXMgdXNlZCB0byBiZSBhIFRlc3RGbXdrIHRlc3QuICBJZiB5b3UgYWRkCisvLyBtb3JlIHRlc3RzIHRvIGl0LCBiZSBzdXJlIHRvIGFkZCB0aGVtIHRvIAorLy8gY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQuRm13a1Rlc3RUZXh0UGFuZWwudGVzdCgpIC0KKy8vIG90aGVyd2lzZSB0aGV5IHdvbid0IGdldCBydW4hCisKK3B1YmxpYyBjbGFzcyBUZXN0VGV4dFBhbmVsIC8qZXh0ZW5kcyBUZXN0Rm13ayovIHsKKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgVGVzdExpc3RlbmVyIGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgTk9fV0FZID0gMDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgREVGSU5JVEVMWSA9IDE7CisgICAgICAgIHByaXZhdGUgaW50IE1BWUJFID0gMjsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgZmluYWwgaW50W10gc3RhdHVzOworICAgICAgICAKKyAgICAgICAgVGVzdExpc3RlbmVyKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0xBU1QgLQorICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1QgKyAxOworICAgICAgICAgICAgc3RhdHVzID0gbmV3IGludFtsZW5ndGhdOworICAgICAgICAgICAgdGV4dFBhbmVsLmFkZExpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgYWxsb3dBbGwoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCByZWZ1c2VBbGwoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHN0YXR1cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHN0YXR1c1tpXSA9IE5PX1dBWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhbGxvd0FsbCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc3RhdHVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzW2ldID0gTUFZQkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgZXhwZWN0RXZlbnQoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGluZGV4ID0gdHlwZSAtIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1Q7CisgICAgICAgICAgICBzdGF0dXNbaW5kZXhdID0gREVGSU5JVEVMWTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhbGxvd0V2ZW50KGludCB0eXBlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSB0eXBlIC0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9GSVJTVDsKKyAgICAgICAgICAgIHN0YXR1c1tpbmRleF0gPSBNQVlCRTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKSB7CisgICAgICAgICAgICBhc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoZmFsc2UsIDAsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoaW50IGl0ZXJhdGlvbkNvdW50LCBib29sZWFuIGV4cCkgeworICAgICAgICAgICAgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKHRydWUsIGl0ZXJhdGlvbkNvdW50LCBleHApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKGJvb2xlYW4gbG9nRGV0YWlscywgaW50IGl0ZXJhdGlvbkNvdW50LCBib29sZWFuIGV4cCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBib29sZWFuIGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHN0YXR1cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXNbaV0gPT0gREVGSU5JVEVMWSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9nRGV0YWlscykgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nTWVzc2FnZSgiRXhwZWN0aW5nIGV2ZW50ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpK1RleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UoIml0ZXJhdGlvbkNvdW50PSIraXRlcmF0aW9uQ291bnQrIjsgIGV4cGV4dGluZz0iK2V4cCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGUpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiU29tZSBldmVudHMgcGVuZGluZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgaW5kZXggPSBldmVudC5nZXRJRCgpIC0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9GSVJTVDsKKyAgICAgICAgICAgIGlmIChzdGF0dXNbaW5kZXhdID09IE5PX1dBWSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJVbmV4cGVjdGVkIGV2ZW50OiAiICsgZXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc3RhdHVzW2luZGV4XSA9PSBERUZJTklURUxZKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzW2luZGV4XSA9IE5PX1dBWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RSSU5HX0NPTlRFTlQgPSAiU29tZSBjb250ZW50IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVTVF9JVEVSUyA9IDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNQ29uc3RUZXh0IE1PRF9URVhUID0KKyAgICAgICAgICAgICAgICBuZXcgU3R5bGVkVGV4dCgiU3R5bGVkIiwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworCisgICAgcHJpdmF0ZSBDbGlwYm9hcmQgZkNsaXBib2FyZDsKKyAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbCA9IG51bGw7CisgICAgcHJpdmF0ZSBUZXN0TGlzdGVuZXIgZkxpc3RlbmVyID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBmUmFuZFNlZWQgPSAwOworICAgIHByaXZhdGUgUmFuZG9tIHJhbmQ7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJR19DT01NQU5EX0xPR19TSVpFID0gNDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNNQUxMX0NPTU1BTkRfTE9HX1NJWkUgPSA4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllcltdIHBhcmFNb2RzID0geworICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GTFVTSF9MRUFESU5HKSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GTFVTSF9DRU5URVIpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfVFJBSUxJTkcpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRlVMTFlfSlVTVElGSUVEKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fUlRMKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fTFRSKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlU2V0KFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCkpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVTZXQoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OKSkKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFTEVDVCA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFVF9DQVJFVF9QT1MgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRVRfU1RBUlQgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRVRfRU5EID0gMzsKKworICAgIC8vIHVzaW5nIGJvdGggc3R5bGVzIG9mIGFkZCBtb2RpZmllcjogQXR0cmlidXRlTWFwIGFuZAorICAgIC8vIGtleS12YWx1ZSwganVzdCBmb3IgdmFyaWV0eS4uLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXJbXSBjaGFyTW9kcyA9IHsKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCkpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuRk9SRUdST1VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLmdyZWVuKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfT04pLmFkZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCg2KSkpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLkZBTUlMWSwgIkRpYWxvZyIpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlU2V0KAorICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUIH0pKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5JREVOVElUWQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gVFlQRURfQ0hBUlMgPSBuZXcgY2hhclsxMjggLSAnICcgKyAzXTsKKyAgICBzdGF0aWMgeworICAgICAgICBUWVBFRF9DSEFSU1swXSA9IDg7IC8vIGJhY2tzcGFjZQorICAgICAgICBUWVBFRF9DSEFSU1sxXSA9ICdcdCc7CisgICAgICAgIFRZUEVEX0NIQVJTWzJdID0gJ1xuJzsKKyAgICAgICAgZm9yIChpbnQgaT0zOyBpIDwgVFlQRURfQ0hBUlMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFRZUEVEX0NIQVJTW2ldID0gKGNoYXIpICgnICcgKyBpIC0gMyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdFRleHRQYW5lbCgpIHsKKworICAgICAgICBmQ2xpcGJvYXJkID0gbmV3IENsaXBib2FyZCgiVGVzdFRleHRQYW5lbCIpOworICAgICAgICBpbmNSYW5kU2VlZCgpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHJlcG9ydEVycm9yKFN0cmluZyBtZXNzYWdlKSB7CisgICAgCisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtZXNzYWdlKTsKKyAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obWVzc2FnZSk7CisgICAgICAgIC8vc3VwZXIuZXJybG4obWVzc2FnZSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGxvZ01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKG1lc3NhZ2UpOworICAgICAgICAvL3N1cGVyLmxvZ01lc3NhZ2UobWVzc2FnZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBUZXN0VGV4dFBhbmVsKE1UZXh0UGFuZWwgcGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgc2V0VGV4dFBhbmVsKHBhbmVsKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBpbmNSYW5kU2VlZCgpIHsKKyAgICAgICAgCisgICAgICAgIHJhbmQgPSBuZXcgUmFuZG9tKCsrZlJhbmRTZWVkKTsKKyAgICB9CisgICAgCisgICAgaW50IGdldFJhbmRTZWVkKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZSYW5kU2VlZDsKKyAgICB9CisKKyAgICBpbnQgcmFuZEludChpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gcmFuZEludCgwLCBsaW1pdCk7CisgICAgfQorCisgICAgaW50IHJhbmRJbnQoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICBpZiAoc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUmFuZ2UgaXMgMC1sZW5ndGguIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdGFydCArIChNYXRoLmFicyhyYW5kLm5leHRJbnQoKSklKGxpbWl0LXN0YXJ0KSkgOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGQgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCk7CisgICAgICAgIE1Db25zdFRleHQgdGV4dDEgPSBuZXcgU3R5bGVkVGV4dCgiVGVzdCBjb250ZW50cy4gMTIzNFxuSG93IGFib3V0IGl0PyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBNQ29uc3RUZXh0IHRleHQyID0gbmV3IFN0eWxlZFRleHQoIkFub3RoZXIgdGVzdCBzdHJpbmcuIiwgYm9sZCk7CisKKyAgICAgICAgX3Rlc3RXaXRoVGV4dCh0ZXh0MSk7CisgICAgICAgIF90ZXN0V2l0aFRleHQodGV4dDIpOworICAgICAgICBfdGVzdFdpdGhUZXh0KG5ldyBTdHlsZWRUZXh0KCkpOworCisgICAgICAgIFN0eWxlZFRleHQgYmlnMSA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IDUwOyBpKyspIHsKKyAgICAgICAgICAgIGJpZzEuYXBwZW5kKHRleHQxKTsKKyAgICAgICAgfQorCisgICAgICAgIF90ZXN0V2l0aFRleHQoYmlnMSk7CisgICAgICAgIFN0eWxlZFRleHQgYmlnMiA9IG5ldyBTdHlsZWRUZXh0KHRleHQxKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgODA7IGkrKykgeworICAgICAgICAgICAgYmlnMi5hcHBlbmQodGV4dDIpOworICAgICAgICB9CisKKyAgICAgICAgX3Rlc3RXaXRoVGV4dChiaWcyKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFRleHRQYW5lbChNVGV4dFBhbmVsIHBhbmVsKSB7CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gcGFuZWw7CisgICAgICAgIGZMaXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIocGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RXaXRoVGV4dChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBzZXRUZXh0UGFuZWwobmV3IFRleHRQYW5lbCh0ZXh0LCBmQ2xpcGJvYXJkKSk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgVEVTVF9JVEVSUzsgaSsrKSB7CisgICAgICAgICAgICBfdGVzdFNldFNlbGVjdGlvbigpOworICAgICAgICAgICAgX3Rlc3RNb2RpZmljYXRpb25zKE1PRF9URVhULCB0cnVlKTsKKyAgICAgICAgICAgIF90ZXN0RWRpdE1lbnVPcGVyYXRpb25zKGZDbGlwYm9hcmQpOworICAgICAgICAgICAgX3Rlc3RNb2RGbGFnKGZUZXh0UGFuZWwuZ2V0Q29tbWFuZExvZ1NpemUoKSk7CisgICAgICAgICAgICBfdGVzdENvbW1hbmRMb2dDb250cm9sKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RTZWxlY3Rpb24oaW50IGZ1bmN0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgYVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBhTGltaXQpIHsKKworICAgICAgICBpbnQgb2xkU3RhcnQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGludCBvbGRMaW1pdCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCk7CisKKyAgICAgICAgZmluYWwgaW50IGxlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICAKKyAgICAgICAgaW50IHN0YXJ0ID0gYVN0YXJ0OworICAgICAgICBpbnQgbGltaXQgPSBhTGltaXQ7CisgICAgICAgIAorICAgICAgICBpZiAoc3RhcnQgPCAwKSB7CisgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgPiBsZW5ndGgpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbWl0IDwgc3RhcnQpIHsKKyAgICAgICAgICAgIGxpbWl0ID0gc3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobGltaXQgPiBsZW5ndGgpIHsKKyAgICAgICAgICAgIGxpbWl0ID0gbGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIAorICAgICAgICBpZiAob2xkU3RhcnQgIT0gc3RhcnQgfHwgb2xkTGltaXQgIT0gbGltaXQpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIGlmICgob2xkU3RhcnQ9PW9sZExpbWl0KSAhPSAoc3RhcnQ9PWxpbWl0KSkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob2xkU3RhcnQ9PW9sZExpbWl0KSB7CisgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoKGZ1bmN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIFNFTEVDVDoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNlbGVjdChhU3RhcnQsIGFMaW1pdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFVF9DQVJFVF9QT1M6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRDYXJldFBvc2l0aW9uKGFTdGFydCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFVF9TVEFSVDoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldFNlbGVjdGlvblN0YXJ0KGFTdGFydCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFVF9FTkQ6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRTZWxlY3Rpb25FbmQoYUxpbWl0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmdW5jdGlvbiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IHN0YXJ0KSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiZ2V0U2VsZWN0aW9uU3RhcnQgaXMgaW5jb3JyZWN0IGFmdGVyIHNldCIpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpICE9IGxpbWl0KSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiZ2V0U2VsZWN0aW9uRW5kIGlzIGluY29ycmVjdCBhZnRlciBzZXQiKTsKKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0U2VsZWN0aW9uKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIAorICAgICAgICBfdGVzdFNlbGVjdGlvbihTRUxFQ1QsIHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldEFuZFRlc3RDYXJldChpbnQgY2FyZXRQb3MpIHsKKworICAgICAgICBfdGVzdFNlbGVjdGlvbihTRVRfQ0FSRVRfUE9TLCBjYXJldFBvcywgY2FyZXRQb3MpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0U2VsZWN0aW9uU3RhcnQoaW50IHNlbFN0YXJ0KSB7CisKKyAgICAgICAgaW50IGxpbWl0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VUX1NUQVJULCBzZWxTdGFydCwgbGltaXQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0U2VsZWN0aW9uRW5kKGludCBzZWxFbmQpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIF90ZXN0U2VsZWN0aW9uKFNFVF9FTkQsIHN0YXJ0LCBzZWxFbmQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIF90ZXN0U2V0U2VsZWN0aW9uKCkgeworCisgICAgICAgIGludCB0ZXh0TGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgIGlmICh0ZXh0TGVuZ3RoICE9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBwYW5lbCBsZW5ndGggaXMgbm90IGNvcnJlY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oMCwgdGV4dExlbmd0aCAvIDIpOworICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKHRleHRMZW5ndGggLyAyLCB0ZXh0TGVuZ3RoKTsKKyAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbigwLCB0ZXh0TGVuZ3RoKTsKKyAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbigtMSwgdGV4dExlbmd0aCsxKTsKKyAgICAgICAgaWYgKHRleHRMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKDAsIHRleHRMZW5ndGggLSAxKTsKKyAgICAgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oMCwgMSk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgaW5jQW1vdW50ID0gTWF0aC5tYXgoMSwgdGV4dExlbmd0aC81KTsKKyAgICAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8PSB0ZXh0TGVuZ3RoOyBpbmRleCArPSBpbmNBbW91bnQpIHsKKworICAgICAgICAgICAgc2V0QW5kVGVzdENhcmV0KGluZGV4KTsKKyAgICAgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb25TdGFydCh0ZXh0TGVuZ3RoLWluZGV4KTsKKyAgICAgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb25FbmQodGV4dExlbmd0aCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uU3RhcnQoMCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uRW5kKHRleHRMZW5ndGgtaW5kZXgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGV4dCBtdXN0IGJlIGVkaXRhYmxlIHRvIHBhc3MgdGhpcyB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIF90ZXN0TW9kaWZpY2F0aW9ucyhNQ29uc3RUZXh0IGluc2VydGlvblRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcmVzdG9yZU9sZFRleHQpIHsKKworICAgICAgICBNQ29uc3RUZXh0IG9sZFRleHQgPSBuZXcgU3R5bGVkVGV4dChmVGV4dFBhbmVsLmdldFRleHQoKSk7CisgICAgICAgIGZpbmFsIGludCBpbnNMZW5ndGggPSBpbnNlcnRpb25UZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZlRleHRQYW5lbC5hcHBlbmQoaW5zZXJ0aW9uVGV4dCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gb2xkVGV4dC5sZW5ndGgoKSArIGluc0xlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkFwcGVuZCBkaWRuJ3QgcmVzdWx0IGluIGNvcnJlY3Qgc2VsZWN0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZlRleHRQYW5lbC5pbnNlcnQoaW5zZXJ0aW9uVGV4dCwgMCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGluc0xlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkluc2VydCBkaWRuJ3QgcmVzdWx0IGluIGNvcnJlY3Qgc2VsZWN0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBmVGV4dFBhbmVsLnJlcGxhY2VSYW5nZShpbnNlcnRpb25UZXh0LCBpbnNMZW5ndGgsIGluc0xlbmd0aCtvbGRUZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBpbnNMZW5ndGgqMikgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlJlcGxhY2UgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpICE9IGluc0xlbmd0aCoyKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiUmVwbGFjZSBkaWRuJ3QgcmVzdWx0IGluIGNvcnJlY3Qgc2VsZWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IGluc0xlbmd0aCozKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigidGV4dExlbmd0aCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN0b3JlT2xkVGV4dCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRUZXh0KG9sZFRleHQpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBvbGRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoInNldFRleHQgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9sZFRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigibGVuZ3RoIGluY29ycmVjdCBhZnRlciBzZXRUZXh0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBpdGVyYXRpb25Db3VudCA9IDA7CisgICAgcHVibGljIHZvaWQgX3Rlc3RDb21tYW5kTG9nQ29udHJvbCgpIHsKKworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGl0ZXJhdGlvbkNvdW50Kys7CisgICAgICAgIGJvb2xlYW4gZXhwID0gZmFsc2U7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblJlZG8oKSB8fCBCSUdfQ09NTUFORF9MT0dfU0laRT09MCkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgICAgICBleHAgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vdHJ5IHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0Q29tbWFuZExvZ1NpemUoQklHX0NPTU1BTkRfTE9HX1NJWkUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuUmVkbyBhZnRlciBzZXRDb21tYW5kTG9nU2l6ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyhpdGVyYXRpb25Db3VudCwgZXhwKTsKKyAgICAgICAgLy99CisgICAgICAgIC8vY2F0Y2goRXJyb3IgZSkgeworICAgICAgICAvLyAgICBsb2dNZXNzYWdlKCJpdGVyYXRpb25Db3VudD0iK2l0ZXJhdGlvbkNvdW50KyI7ICBleHBleHRpbmc9IitleHApOworICAgICAgICAvLyAgICB0aHJvdyBlOworICAgICAgICAvL30KKworICAgICAgICBNQ29uc3RUZXh0IGluc1RleHQgPSBuZXcgU3R5bGVkVGV4dCgiNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBmaW5hbCBpbnQgb3JpZ0xlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICBpbnQgc3RhcnQgPSBvcmlnTGVuZ3RoIC8gMzsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKworICAgICAgICBmb3IgKGludCBpPXN0YXJ0OyBpIDwgQklHX0NPTU1BTkRfTE9HX1NJWkUrc3RhcnQ7IGkrKykgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLmluc2VydChpbnNUZXh0LCBpKTsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IEJJR19DT01NQU5EX0xPR19TSVpFLTE7IGkrKykgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICB9CisgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJDb21tYW5kIGxvZyBpcyB0b28gc21hbGwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJDb21tYW5kIGxvZyBpcyB0b28gbGFyZ2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoICogaW5zVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlRleHQgbGVuZ3RoIHdhcyBub3QgcmVzdG9yZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IEJJR19DT01NQU5EX0xPR19TSVpFOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgrQklHX0NPTU1BTkRfTE9HX1NJWkUpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJUZXh0IGxlbmd0aCB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJlZG8iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlNob3VsZCBub3QgYmUgYWJsZSB0byByZWRvIik7CisgICAgICAgIH0KKworICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKworICAgICAgICBmVGV4dFBhbmVsLnNldENvbW1hbmRMb2dTaXplKFNNQUxMX0NPTU1BTkRfTE9HX1NJWkUpOworCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImNhblJlZG8gYWZ0ZXIgc2V0Q29tbWFuZExvZ1NpemUoc21hbGwpIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBTTUFMTF9DT01NQU5EX0xPR19TSVpFOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigic2hvdWxkIGJlIGFibGUgdG8gdW5kbyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHVuZG8gYWZ0ZXIgc2V0Q29tbWFuZExvZ1NpemUoc21hbGwpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIndoeSBjYW4ndCB0aGlzIHJlZG8/Pz8iKTsKKyAgICAgICAgfQorICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKworICAgICAgICBmVGV4dFBhbmVsLmNsZWFyQ29tbWFuZExvZygpOworCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblVuZG8oKSB8fCBmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkNvbW1hbmQgbG9nIHdhc24ndCBjbGVhcmVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGN1dCwgY29weSwgcGFzdGUsIHVuZG8sIHJlZG8sIGNsZWFyLCBjYW5VbmRvLCBjYW5SZWRvLgorICAgICAqIFRleHQgbXVzdCBiZSBlZGl0YWJsZSB0byBwYXNzIHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBfdGVzdEVkaXRNZW51T3BlcmF0aW9ucyhDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisgICAgICAgIAorICAgICAgICBpZiAoY2xpcGJvYXJkICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHRlc3QgcGFzdGUgYW5kIHVuZG8gLyByZWRvCisgICAgICAgICAgICBUcmFuc2ZlcmFibGUgdHIgPSBuZXcgU3RyaW5nU2VsZWN0aW9uKFNUUklOR19DT05URU5UKTsKKyAgICAgICAgICAgIGNsaXBib2FyZC5zZXRDb250ZW50cyh0ciwgbmV3IENsaXBib2FyZE93bmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGxvc3RPd25lcnNoaXAoQ2xpcGJvYXJkIGMsIFRyYW5zZmVyYWJsZSB0KSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2xpcGJvYXJkTm90RW1wdHkoKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJNVGV4dFBhbmVsIGRvZXNuJ3QgcmVjb2duaXplIHN0cmluZyBjb250ZW50LiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldENhcmV0UG9zaXRpb24oZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpKTsKKyAgICAgICAgICAgIGludCBvbGRMZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucGFzdGUoKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvbGRMZW5ndGggKyBTVFJJTkdfQ09OVEVOVC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJUZXh0IGxlbmd0aCBpcyB3cm9uZyBhZnRlciBwYXN0ZS4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNhblVuZG8oKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJjYW5VbmRvIHNob3VsZCBiZSB0cnVlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvbGRMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIGlzIHdyb25nIGFmdGVyIHVuZG8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuUmVkbyBzaG91bGQgYmUgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC5yZWRvKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoICsgU1RSSU5HX0NPTlRFTlQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBsZW5ndGggaXMgd3JvbmcgYWZ0ZXIgcmVkby4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBvcmlnTGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgIGZUZXh0UGFuZWwuc2VsZWN0QWxsKCk7CisgICAgICAgIGZUZXh0UGFuZWwuY2xlYXIoKTsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggaXMgbm9uemVybyBhZnRlciBjbGVhciIpOworICAgICAgICB9CisgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJjYW5VbmRvIHNob3VsZCBiZSB0cnVlIik7CisgICAgICAgIH0KKyAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiT2xkIHRleHQgbm90IHJlc3RvcmVkIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3JpZ0xlbmd0aCA+IDApIHsKKworICAgICAgICAgICAgZlRleHRQYW5lbC5zZWxlY3QoMCwgMSk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmN1dCgpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgtMSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgY3V0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLnBhc3RlKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgcGFzdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2VsZWN0KDAsIG9yaWdMZW5ndGgpOworICAgICAgICAgICAgZlRleHRQYW5lbC5jb3B5KCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldENhcmV0UG9zaXRpb24oMCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnBhc3RlKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gMipvcmlnTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkxlbmd0aCB3cm9uZyBhZnRlciBwYXN0ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgdW5kbyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldEFuZFRlc3RNb2RGbGFnKGZpbmFsIGludCBkZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBtb2RpZmllZCkgeworCisgICAgICAgIGZUZXh0UGFuZWwuc2V0TW9kaWZpZWQobW9kaWZpZWQpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBkZXB0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlBhbmVsIGNhbm5vdCB1bmRvIGF0IHZhbGlkIGRlcHRoLiAgRGVwdGg9IiArIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIHRoYXQgYWxsIG1vZCBmbGFncyBhcmUgZmFsc2U6CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKSAhPSBtb2RpZmllZCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImlzTW9kaWZpZWQgaXMgbm90IGNvcnJlY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGRlcHRoOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuaXNNb2RpZmllZCgpICE9IG1vZGlmaWVkKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImlzTW9kaWZpZWQgaXMgbm90IGNvcnJlY3QiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgPGNvZGU+ZGVwdGg8L2NvZGU+IG1vZGlmaWNhdGlvbnMgdG8gdGhlIHRleHQgaW4gdGV4dGZUZXh0UGFuZWwuCisgICAgICogU2V0IHRoZSBtb2RpZmllZCBmbGFnIG9uIGVhY2ggb3BlcmF0aW9uLCBhbmQgdGhlbiByZXRyaWV2ZSBpdHMKKyAgICAgKiB2YWx1ZS4gIEZpbmFsbHksIHVuZG8gdGhlIG1vZGlmaWNhdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgX3Rlc3RNb2RGbGFnKGZpbmFsIGludCBkZXB0aCkgeworCisgICAgICAgIGZpbmFsIGludCBvbGRMZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBkZXB0aDsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmluc2VydChNT0RfVEVYVCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBzZXRBbmRUZXN0TW9kRmxhZyhkZXB0aCwgZmFsc2UpOworICAgICAgICBzZXRBbmRUZXN0TW9kRmxhZyhkZXB0aCwgdHJ1ZSk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZGVwdGg7IGkrKykgeworICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiVW5kbyBkaWQgbm90IHJlc3RvcmUgb2xkIHRleHQuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGFwcGx5Q2hhcmFjdGVyU3R5bGUoKSB7CisKKyAgICAgICAgU3R5bGVNb2RpZmllciBzdE1vZCA9IGNoYXJNb2RzW3JhbmRJbnQoY2hhck1vZHMubGVuZ3RoKV07CisgICAgICAgIGZMaXN0ZW5lci5yZWZ1c2VBbGwoKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKHN0TW9kKTsKKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKworICAgIHZvaWQgYXBwbHlQYXJhZ3JhcGhTdHlsZSgpIHsKKworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICBTdHlsZU1vZGlmaWVyIHN0TW9kID0gcGFyYU1vZHNbcmFuZEludChwYXJhTW9kcy5sZW5ndGgpXTsKKyAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKHN0TW9kKTsKKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICB2b2lkIGFwcGx5S2V5UmVtYXAoKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuS0VZUkVNQVBfQ0hBTkdFRCk7CisgICAgICAgIGludCBvcCA9IHJhbmRJbnQoNSk7CisgICAgICAgIHN3aXRjaCAob3ApIHsKKworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0S2V5UmVtYXAoS2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0S2V5UmVtYXAoS2V5UmVtYXAuZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRIZWJyZXdUcmFuc2xpdGVyYXRpb24oKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldElzcmFlbE5pa3VkKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgLy9mVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldFRoYWlLZXRtYW5lZSgpKTsKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldElzcmFlbE5pa3VkKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiEiKTsKKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgIH0KKworICAgIHZvaWQgcmVzaXplRnJhbWUoRnJhbWUgZnJhbWUpIHsKKworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LkZPUk1BVF9XSURUSF9DSEFOR0VEKTsKKyAgICAgICAgaW50IHdkID0gcmFuZEludCg1MCwgMTAwMCk7CisgICAgICAgIGludCBodCA9IHJhbmRJbnQoMjAsIDgwMCk7CisKKyAgICAgICAgZnJhbWUuc2V0U2l6ZSh3ZCwgaHQpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICB2b2lkIHNlbGVjdFRleHQoKSB7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gcmFuZEludCgtMTAsIGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpKTsKKyAgICAgICAgaW50IHNlbExpbWl0ID0gcmFuZEludCgwLCBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSArIDEwKTsKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VMRUNULCBzZWxTdGFydCwgc2VsTGltaXQpOworICAgIH0KKworICAgIHZvaWQgdW5kb1JlZG8oKSB7CisKKyAgICAgICAgZmluYWwgaW50IG9wQ291bnQgPSByYW5kSW50KC0xMCwgMTUpOworCisgICAgICAgIGZvciAoaW50IGk9b3BDb3VudDsgaSA8PSAwOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IG9wQ291bnQ7IGkrKykgeworICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCB0eXBlS2V5cygpIHsKKworICAgICAgICBmaW5hbCBpbnQga2V5Q291bnQgPSByYW5kSW50KDEsIDEwMCk7CisgICAgICAgIFRleHRQYW5lbCB0ZXh0UGFuZWwgPSAoVGV4dFBhbmVsKSBmVGV4dFBhbmVsOworICAgICAgICAKKyAgICAgICAgS2V5RXZlbnRGb3J3YXJkZXIgZm9yd2FyZGVyID0gbmV3IEtleUV2ZW50Rm9yd2FyZGVyKHRleHRQYW5lbCk7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCkpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGtleUNvdW50OyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgdHlwZWRDaGFyID0gVFlQRURfQ0hBUlNbcmFuZEludChUWVBFRF9DSEFSUy5sZW5ndGgpXTsKKyAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUV2ZW50LktFWV9UWVBFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5RXZlbnQuVktfVU5ERUZJTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZWRDaGFyKTsKKyAgICAgICAgICAgIGlmICh0eXBlZENoYXIgPT0gOCB8fCB0eXBlZENoYXIgPT0gMHg3ZikgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcndhcmRlci5oYW5kbGVLZXlFdmVudChldmVudCk7CisgICAgICAgICAgICAvL3RyeSB7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyhpLCBmYWxzZSk7CisgICAgICAgICAgICAvL30KKyAgICAgICAgICAgIC8vY2F0Y2goRXJyb3IgZSkgeworICAgICAgICAgICAgLy8gICAgbG9nTWVzc2FnZSgiaT0iK2krIjsgdHlwZWRDaGFyPSIrSW50ZWdlci50b0hleFN0cmluZyh0eXBlZENoYXIpKTsKKyAgICAgICAgICAgIC8vICAgIHRocm93IGU7CisgICAgICAgICAgICAvL30KKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UeXBpbmdQZXJmVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UeXBpbmdQZXJmVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwNDNlYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L1R5cGluZ1BlcmZUZXN0LmphdmEKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdDsKKworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleUV2ZW50Rm9yd2FyZGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRleHRGcmFtZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0RGVtbzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitwdWJsaWMgY2xhc3MgVHlwaW5nUGVyZlRlc3QgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGV4dEZyYW1lIGZUZXh0RnJhbWU7CisgICAgcHJpdmF0ZSBLZXlFdmVudEZvcndhcmRlciBmS2V5RXZlbnRGb3J3YXJkZXI7CisgICAgcHJpdmF0ZSBQcmludFdyaXRlciBmT3V0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnQXRTdGFydENvbW1hbmQgPSAiSW5zZXJ0IGF0IHN0YXJ0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdBdEVuZENvbW1hbmQgPSAiSW5zZXJ0IGF0IGVuZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnRndkRGVsZXRlID0gIkZvcndhcmQgZGVsZXRlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdCYWNrc3BhY2UgPSAiQmFja3NwYWNlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdBdEN1cnJlbnRQb3NDb21tYW5kID0gIkluc2VydCBhdCBjdXJyZW50IHBvc2l0aW9uIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdMb3RzT2ZUZXh0Q29tbWFuZCA9ICJJbnNlcnQgYSBsb3Qgb2YgdGV4dCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNBR0UgPSAiVXNhZ2U6IGphdmEgY29tLmlibS5yaWNodGV4dC50ZXN0LlR5cGluZ1BlcmZUZXN0IFtmaWxlXSBbLWluc2VydGlvblRleHQgdGV4dF0iOworICAgIHByaXZhdGUgY2hhcltdIGZJbnNUZXh0OworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBub3QgdXNlZCBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbnVsbDsKKyAgICAgICAgUHJpbnRXcml0ZXIgd3JpdGVyID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworCisgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IERlY2xhcmF0aW9uLmZnRGVjbGFyYXRpb247CisgICAgICAgIGNoYXJbXSBpbnNUZXh0ID0gIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBlbmQuICIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgCisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIHdoaWxlIChpbmRleCA8IGFyZ3MubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoYXJnc1tpbmRleF0uZXF1YWxzKCItaW5zZXJ0aW9uVGV4dCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFVTQUdFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5zVGV4dCA9IGFyZ3NbaW5kZXgrK10udG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCB0cnkgTUNvbnN0VGV4dCBmaXJzdCwgdGhlbiBwbGFpbiB0ZXh0LgorICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2MgPSBFZGl0RGVtby5nZXREb2N1bWVudEZyb21GaWxlKG5ldyBGaWxlKGFyZ3NbaW5kZXgrK10pKTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBvcGVuIGZpbGUgIithcmdzW2luZGV4LTFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dCA9IGRvYy5nZXRUZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmRleCAhPSBhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFVTQUdFKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmV3IFR5cGluZ1BlcmZUZXN0KHdyaXRlciwgdGV4dCwgaW5zVGV4dCk7CisgICAgfQorCisgICAgcHVibGljIFR5cGluZ1BlcmZUZXN0KFByaW50V3JpdGVyIG91dCwgTUNvbnN0VGV4dCB0ZXh0LCBjaGFyW10gaW5zVGV4dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBmSW5zVGV4dCA9IGluc1RleHQ7CisgICAgICAgIGZUZXh0RnJhbWUgPSBuZXcgVGV4dEZyYW1lKHRleHQsICIiLCBudWxsKTsKKyAgICAgICAgVGV4dFBhbmVsIHRleHRQYW5lbCA9IChUZXh0UGFuZWwpIGZUZXh0RnJhbWUuZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGZLZXlFdmVudEZvcndhcmRlciA9IG5ldyBLZXlFdmVudEZvcndhcmRlcih0ZXh0UGFuZWwpOworICAgICAgICBmT3V0ID0gb3V0OworCisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlRlc3QgZGF0ZTogIiArIGRmLmZvcm1hdChuZXcgRGF0ZSgpKSk7CisKKyAgICAgICAgZlRleHRGcmFtZS5zZXRTaXplKDUwMCwgNzAwKTsKKyAgICAgICAgZlRleHRGcmFtZS5zaG93KCk7CisKKyAgICAgICAgRnJhbWUgZiA9IG5ldyBGcmFtZSgiVHlwaW5nIFBlcmYgVGVzdCIpOworICAgICAgICBmLnNldExheW91dChuZXcgR3JpZExheW91dCgwLCAxKSk7CisgICAgICAgIEJ1dHRvbiBiOworLyoKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdFN0YXJ0Q21kKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdEVuZENtZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworKi8KKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdEN1cnJlbnRQb3NDb21tYW5kKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdMb3RzT2ZUZXh0Q29tbWFuZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnRndkRGVsZXRlKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdCYWNrc3BhY2UpOworICAgICAgICBiLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmLmFkZChiKTsKKworICAgICAgICBmLmRvTGF5b3V0KCk7CisgICAgICAgIFdpbmRvd0FkYXB0ZXIgY2xvc2VyID0gbmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBmT3V0LmNsb3NlKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmLmFkZFdpbmRvd0xpc3RlbmVyKGNsb3Nlcik7CisgICAgICAgIGZUZXh0RnJhbWUuYWRkV2luZG93TGlzdGVuZXIoY2xvc2VyKTsKKyAgICAgICAgCisgICAgICAgIGYuc2V0U2l6ZSgyMDAsIDgwKTsKKyAgICAgICAgZi5zaG93KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGV2dCkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoZXZ0LmdldEFjdGlvbkNvbW1hbmQoKS5lcXVhbHMoZmdBdEN1cnJlbnRQb3NDb21tYW5kKSkgeworCisgICAgICAgICAgICAgICAgaW5zZXJ0QXRDdXJyZW50UG9zKDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmdldEFjdGlvbkNvbW1hbmQoKS5lcXVhbHMoZmdMb3RzT2ZUZXh0Q29tbWFuZCkpIHsKKworICAgICAgICAgICAgICAgIGluc2VydEF0Q3VycmVudFBvcyg4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnRndkRGVsZXRlKSkgeworCisgICAgICAgICAgICAgICAgZm9yd2FyZERlbGV0ZSgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnQmFja3NwYWNlKSkgeworCisgICAgICAgICAgICAgICAgYmFja3NwYWNlKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluc2VydEF0Q3VycmVudFBvcyhmaW5hbCBpbnQgdGltZXMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgZlRleHRGcmFtZS50b0Zyb250KCk7CisKKyAgICAgICAgU3lzdGVtLmdjKCk7CisKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKworICAgICAgICBmb3IgKGludCB0PTA7IHQgPCB0aW1lczsgdCsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmSW5zVGV4dC5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgS2V5RXZlbnQgZXZlbnQgPSBuZXcgS2V5RXZlbnQoZlRleHRGcmFtZSwgS2V5RXZlbnQuS0VZX1RZUEVELCAwLCAwLCAwLCBmSW5zVGV4dFtpXSk7CisgICAgICAgICAgICAgICAgZktleUV2ZW50Rm9yd2FyZGVyLmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgdGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworCisgICAgICAgIGZPdXQucHJpbnRsbigiVG90YWwgdGltZTogIiArIHRpbWUpOworICAgICAgICBmT3V0LnByaW50bG4oIk1pbGxpcyBwZXIgY2hhcmFjdGVyOiAiICsgKHRpbWUgLyAoZkluc1RleHQubGVuZ3RoKnRpbWVzKSkpOworICAgICAgICBmT3V0LmZsdXNoKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZvcndhcmREZWxldGUoZmluYWwgaW50IHRpbWVzKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIFN5c3RlbS5nYygpOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICAgICAgZm9yIChpbnQgdD0wOyB0IDwgdGltZXM7IHQrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkluc1RleHQubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KGZUZXh0RnJhbWUsIDAsIDAsIDAsIEtleUV2ZW50LlZLX0RFTEVURSwgJ1x1MDBGRicpOworICAgICAgICAgICAgICAgIGZLZXlFdmVudEZvcndhcmRlci5oYW5kbGVLZXlFdmVudChldmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIHRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKworICAgICAgICBmT3V0LnByaW50bG4oIlRvdGFsIHRpbWU6ICIgKyB0aW1lKTsKKyAgICAgICAgZk91dC5wcmludGxuKCJNaWxsaXMgcGVyIGNoYXJhY3RlcjogIiArICh0aW1lIC8gKGZJbnNUZXh0Lmxlbmd0aCp0aW1lcykpKTsKKyAgICAgICAgZk91dC5mbHVzaCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBiYWNrc3BhY2UoZmluYWwgaW50IHRpbWVzKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIFN5c3RlbS5nYygpOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICAgICAgZm9yIChpbnQgdD0wOyB0IDwgdGltZXM7IHQrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkluc1RleHQubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KGZUZXh0RnJhbWUsIDAsIDAsIDAsIEtleUV2ZW50LlZLX0JBQ0tfU1BBQ0UsICdcdTAwMTAnKTsKKyAgICAgICAgICAgICAgICBmS2V5RXZlbnRGb3J3YXJkZXIuaGFuZGxlS2V5RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisKKyAgICAgICAgZk91dC5wcmludGxuKCJUb3RhbCB0aW1lOiAiICsgdGltZSk7CisgICAgICAgIGZPdXQucHJpbnRsbigiTWlsbGlzIHBlciBjaGFyYWN0ZXI6ICIgKyAodGltZSAvIChmSW5zVGV4dC5sZW5ndGgqdGltZXMpKSk7CisgICAgICAgIGZPdXQuZmx1c2goKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvRm13a1Rlc3RUZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9GbXdrVGVzdFRleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4OWIxNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvRm13a1Rlc3RUZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDUwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGVzdC5UZXN0VGV4dFBhbmVsOworCitwdWJsaWMgZmluYWwgY2xhc3MgRm13a1Rlc3RUZXh0UGFuZWwgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAKKyAgICAgICAgbmV3IEZtd2tUZXN0VGV4dFBhbmVsKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFRUUCB0dHA7CisgICAgCisgICAgcHVibGljIEZtd2tUZXN0VGV4dFBhbmVsKCkgeworICAgIAorICAgICAgICB0dHAgPSBuZXcgVFRQKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisgICAgCisgICAgICAgIHR0cC50ZXN0KCk7CisgICAgICAgIC8vIElmIFRlc3RUZXh0UGFuZWwgZ2V0cyBtb3JlIHRlc3RzLCBhZGQgdGhlbSBoZXJlCisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBUVFAgZXh0ZW5kcyBUZXN0VGV4dFBhbmVsIHsKKyAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcmVwb3J0RXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgCisgICAgICAgICAgICBlcnJsbihtZXNzYWdlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgbG9nTWVzc2FnZShTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczNWVlNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJUZXN0QXR0cmlidXRlU2V0IiwKKyAgICAgICAgICAgICJUZXN0QXR0cmlidXRlTWFwIiwKKyAgICAgICAgICAgICJUZXN0Rm9ybWF0dGVyIiwKKyAgICAgICAgICAgICJUZXN0TVRleHQiLAorICAgICAgICAgICAgIlRlc3RQYXJhZ3JhcGhTdHlsZXMiLAorICAgICAgICAgICAgIlRlc3RNVGV4dFN0cmVhbWluZyIsCisgICAgICAgICAgICAiRm13a1Rlc3RUZXh0UGFuZWwiLAorICAgICAgICB9LAorICAgICAgICAgICAgICAiUmljaHRleHQgVW5pdCBUZXN0cyIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QXR0cmlidXRlTWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZU1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjOGI4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZU1hcC5qYXZhCkBAIC0wLDAgKzEsNDEwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworLy8gSmF2YTIgaW1wb3J0cworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CisKKworcHVibGljIGNsYXNzIFRlc3RBdHRyaWJ1dGVNYXAgZXh0ZW5kcyBUZXN0Rm13ayAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworCisgICAgLy8gVGhlcmUgYXJlIEpESyAxLjEgdmVyc2lvbnMgb2YgQXR0cmlidXRlTWFwIGFuZCBBdHRyaWJ1dGVTZXQuCisgICAgLy8gU29tZSBvZiB0aGUgdGVzdHMgaW4gdGhpcyBjbGFzcyByZXF1aXJlIEphdmEgMiBBUEkncy4gIEkgaGF2ZQorICAgIC8vIHRyaWVkIHRvIGlzb2xhdGUgdGhlc2UgdGVzdHMgYnkgY29uZGl0aW9uYWxpemluZyB0aGVtIG9uCisgICAgLy8gdGhpcyBzdGF0aWMgdmFyaWFibGUuICBJZiB5b3UgYXJlIGJhY2stcG9ydGluZyB0byAxLjEsIHJlbW92ZQorICAgIC8vIHRoZSBKYXZhIDIgdGVzdHMgT05MWS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGdKREsxMSA9IGZhbHNlOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbmV3IFRlc3RBdHRyaWJ1dGVNYXAoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVTZXQgbWFwczsgIC8vIEEgU2V0IG9mIEF0dHJpYnV0ZU1hcHMKKyAgICBwcml2YXRlIEF0dHJpYnV0ZVNldCBzZXRzOyAgLy8gQSBTZXQgb2YgU2V0cworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdEF0dHJpYnV0ZSBleHRlbmRzIFRleHRBdHRyaWJ1dGUgeworCisgICAgICAgIFRlc3RBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGVzdEF0dHJpYnV0ZVtdIGF0dHJpYnV0ZXMgPSB7CisgICAgICAgIG5ldyBUZXN0QXR0cmlidXRlKCIwIiksIG5ldyBUZXN0QXR0cmlidXRlKCIxIiksIG5ldyBUZXN0QXR0cmlidXRlKCIyIikKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0W10gdmFsdWVzID0geworICAgICAgICAiSGVsbG8gd29ybGQiLCBuZXcgRmxvYXQoLTQyKSwgbmV3IE9iamVjdCgpLCBuZXcgQXR0cmlidXRlTWFwKG5ldyBUZXN0QXR0cmlidXRlKCIzIiksICJISCIpCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgbGhzLmVxdWFscyhyaHMpIC0gYnV0IGFsc28gY2hlY2tzIGZvciBzeW1tZXRyeSwgYW5kCisgICAgICogY29uc2lzdGVuY3kgd2l0aCBoYXNoQ29kZSgpLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBlcXVhbE1hcHMoQXR0cmlidXRlTWFwIGxocywgT2JqZWN0IHJocykgeworCisgICAgICAgIGJvb2xlYW4gZXF1YWwgPSBsaHMuZXF1YWxzKHJocyk7CisgICAgICAgIGlmIChlcXVhbCAhPSAocmhzLmVxdWFscyhsaHMpKSkgeworICAgICAgICAgICAgZXJybG4oIkF0dHJpYnV0ZU1hcC5lcXVhbHMgaXMgbm90IHN5bWV0cmljIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVxdWFsKSB7CisgICAgICAgICAgICBpZiAobGhzLmhhc2hDb2RlKCkgIT0gcmhzLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQXR0cmlidXRlTWFwcyBhcmUgZXF1YWwgYnV0IGhhc2hDb2RlcyBkaWZmZXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXF1YWw7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBdHRyaWJ1dGVNYXAoKSB7CisKKyAgICAgICAgbWFwcyA9IEF0dHJpYnV0ZVNldC5FTVBUWV9TRVQ7CisgICAgICAgIG1hcHMgPSBtYXBzLmFkZEVsZW1lbnQoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBtYXBzLmFkZEVsZW1lbnQobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVQikpOworICAgICAgICBtYXBzLmFkZEVsZW1lbnQobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVUEVSKSk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqIDwgdmFsdWVzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgbWFwcyA9IG1hcHMuYWRkRWxlbWVudChuZXcgQXR0cmlidXRlTWFwKGF0dHJpYnV0ZXNbaV0sIHZhbHVlc1tqXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJpZ01hcCA9IG5ldyBBdHRyaWJ1dGVNYXAobmV3IFRlc3RBdHRyaWJ1dGUoIjQiKSwgInZhbHVlIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IE1hdGgubWluKGF0dHJpYnV0ZXMubGVuZ3RoLCB2YWx1ZXMubGVuZ3RoKTsgaSsrKSB7CisgICAgICAgICAgICBiaWdNYXAgPSBiaWdNYXAuYWRkQXR0cmlidXRlKGF0dHJpYnV0ZXNbaV0sIHZhbHVlc1t2YWx1ZXMubGVuZ3RoLWktMV0pOworICAgICAgICB9CisgICAgICAgIG1hcHMgPSBtYXBzLmFkZEVsZW1lbnQoYmlnTWFwKTsKKworICAgICAgICBzZXRzID0gQXR0cmlidXRlU2V0LkVNUFRZX1NFVDsKKworICAgICAgICBzZXRzID0gbmV3IEF0dHJpYnV0ZVNldChBdHRyaWJ1dGVTZXQuRU1QVFlfU0VUKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgbmV3U2V0ID0gbmV3IEF0dHJpYnV0ZVNldChhdHRyaWJ1dGVzW2ldKTsKKyAgICAgICAgICAgIHNldHMgPSBzZXRzLmFkZEVsZW1lbnQobmV3U2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZVNldCBhbGxBdHRycyA9IEF0dHJpYnV0ZVNldC5FTVBUWV9TRVQ7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGFsbEF0dHJzID0gYWxsQXR0cnMuYWRkRWxlbWVudChhdHRyaWJ1dGVzW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldHMgPSBzZXRzLmFkZEVsZW1lbnQoYWxsQXR0cnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biB0ZXN0cyBvbiBBdHRyaWJ1dGVNYXAuICBJZiBhIHRlc3QgZmFpbHMgYW4gZXhjZXB0aW9uIHdpbGwgcHJvcG9nYXRlIG91dAorICAgICAqIG9mIHRoaXMgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgZWFzeVRlc3RzKCk7CisKKyAgICAgICAgRW51bWVyYXRpb24gbWFwSXRlciA9IG1hcHMuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKG1hcEl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHRlc3RNYXAgPSAoQXR0cmlidXRlTWFwKSBtYXBJdGVyLm5leHRFbGVtZW50KCk7CisKKyAgICAgICAgICAgIF90ZXN0TW9kaWZpZXJzKHRlc3RNYXApOworICAgICAgICAgICAgX3Rlc3RWaWV3cyh0ZXN0TWFwKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gdW5pb25JdGVyID0gbWFwcy5lbGVtZW50cygpOworICAgICAgICAgICAgd2hpbGUgKHVuaW9uSXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIF90ZXN0VW5pb25XaXRoKHRlc3RNYXAsIChBdHRyaWJ1dGVNYXApIHVuaW9uSXRlci5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRW51bWVyYXRpb24gc2V0SXRlciA9IHNldHMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgIHdoaWxlIChzZXRJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlU2V0IHRlc3RTZXQgPSAoQXR0cmlidXRlU2V0KSBzZXRJdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgX3Rlc3RJbnRlcnNlY3RXaXRoKHRlc3RNYXAsIHRlc3RTZXQpOworICAgICAgICAgICAgICAgIF90ZXN0UmVtb3ZlQXR0cmlidXRlcyh0ZXN0TWFwLCB0ZXN0U2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEludm9rZSBtb2RpZmllcnMgb24gbWFwLiAgQWxsIHNob3VsZCB0aHJvdworICAgICAqIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLCBhbmQgbGVhdmUgbWFwIHVubW9kaWZpZWQuCisgICAgICovCisgICAgdm9pZCBfdGVzdE1vZGlmaWVycyhBdHRyaWJ1dGVNYXAgbWFwKSB7CisKKyAgICAgICAgaWYgKGdKREsxMSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVNYXAgb3JpZ2luYWxNYXAgPSBuZXcgQXR0cmlidXRlTWFwKG1hcCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICAgICAgZXJybG4oIlB1dCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IFRleHRBdHRyaWJ1dGUuV0VJR0hUOworICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG1hcC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgaWYgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAga2V5ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtYXAucmVtb3ZlKGtleSk7CisgICAgICAgICAgICBlcnJsbigiU2V0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtYXAucHV0QWxsKG1hcCk7CisgICAgICAgICAgICBlcnJsbigicHV0QWxsIHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICAgICAgICAgIGVycmxuKCJjbGVhciBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9yaWdpbmFsTWFwLmVxdWFscyhtYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTW9kaWZpZXJzIGNoYW5nZWQgbWFwLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgbWFwLmFkZEF0dHJpYnV0ZXMoYWRkTWFwKSBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcKKyAgICAgKiBtYXAuYWRkIG9uIGFsbCBvZiBhZGRNYXAncyBlbnRyaWVzLgorICAgICAqLworICAgIHZvaWQgX3Rlc3RVbmlvbldpdGgoQXR0cmlidXRlTWFwIG1hcCwgQXR0cmlidXRlTWFwIGFkZE1hcCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBsaHMgPSBtYXAuYWRkQXR0cmlidXRlcyhhZGRNYXApOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCByaHMgPSBtYXA7CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IGFkZE1hcC5nZXRLZXlTZXQoKS5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IGF0dHIgPSBpdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBhZGRNYXAuZ2V0KGF0dHIpOworICAgICAgICAgICAgcmhzID0gcmhzLmFkZEF0dHJpYnV0ZShhdHRyLCB2YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWVxdWFsTWFwcyhsaHMsIHJocykpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXBzIGFyZSBub3QgZXF1YWwuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbnN1cmUgdGhhdCBtYXAucmVtb3ZlQXR0cmlidXRlcyhyZW1vdmUpIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZworICAgICAqIG1hcC5yZW1vdmVBdHRyaWJ1dGUgb24gcmVtb3ZlJ3MgZWxlbWVudHMuCisgICAgICovCisgICAgdm9pZCBfdGVzdFJlbW92ZUF0dHJpYnV0ZXMoQXR0cmlidXRlTWFwIG1hcCwgQXR0cmlidXRlU2V0IHJlbW92ZSkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBsaHMgPSBtYXAucmVtb3ZlQXR0cmlidXRlcyhyZW1vdmUpOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCByaHMgPSBtYXA7CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IHJlbW92ZS5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IGF0dHIgPSBpdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICByaHMgPSByaHMucmVtb3ZlQXR0cmlidXRlKGF0dHIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFlcXVhbE1hcHMobGhzLCByaHMpKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgbm90IGVxdWFsLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgbWFwLmludGVyc2VjdFdpdGgoaW50ZXJzZWN0KSBpcyBlcXVpdmFsZW50IHRvCisgICAgICogbWFwLnJlbW92ZUF0dHJpYnV0ZXMobWFwLmtleVNldCgpIC0gaW50ZXJzZWN0KTsKKyAgICAgKi8KKyAgICB2b2lkIF90ZXN0SW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVNYXAgbWFwLCBBdHRyaWJ1dGVTZXQgaW50ZXJzZWN0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGxocyA9IG1hcC5pbnRlcnNlY3RXaXRoKGludGVyc2VjdCk7CisKKyAgICAgICAgQXR0cmlidXRlU2V0IGtleVNldCA9IG1hcC5nZXRLZXlTZXQoKTsKKyAgICAgICAgQXR0cmlidXRlU2V0IHJlbW92ZVNldCA9IGtleVNldC5zdWJ0cmFjdChpbnRlcnNlY3QpOworICAgICAgICBBdHRyaWJ1dGVNYXAgcmhzID0gbWFwLnJlbW92ZUF0dHJpYnV0ZXMocmVtb3ZlU2V0KTsKKworICAgICAgICBpZiAoIWVxdWFsTWFwcyhsaHMsIHJocykpIHsKKyAgICAgICAgICAgIG1hcC5pbnRlcnNlY3RXaXRoKGludGVyc2VjdCk7CisgICAgICAgICAgICBsb2dsbigiaW50ZXJzZWN0OiAiICsgaW50ZXJzZWN0KTsKKyAgICAgICAgICAgIGxvZ2xuKCJrZXlTZXQ6ICIgKyBrZXlTZXQpOworICAgICAgICAgICAgbG9nbG4oInJlbW92ZVNldDogIiArIHJlbW92ZVNldCk7CisgICAgICAgICAgICBsb2dsbigibWFwOiAiICsgbWFwKTsKKyAgICAgICAgICAgIGxvZ2xuKCJsaHM6ICIgKyBsaHMpOworICAgICAgICAgICAgbG9nbG4oInJoczogIiArIHJocyk7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgbm90IGVxdWFsLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQ6CisgICAgICogICAgbWFwLCBtYXAua2V5U2V0KCksIGFuZCBtYXAuZW50cnlTZXQoKSBhcmUgdGhlIHNhbWUgc2l6ZTsKKyAgICAgKiAgICBtYXAuY29udGFpbnNLZXkoKSBpcyB0cnVlIGZvciBldmVyeSBrZXkgaW4ga2V5U2V0KCk7CisgICAgICogICAgbWFwLmNvbnRhaW5zVmFsdWUoKSBpcyB0cnVlIGZvciBldmVyeSB2YWx1ZSBpbiB2YWx1ZXM7CisgICAgICogICAgZXZlcnkgZW50cnkga2V5IGlzIGluIGtleVNldCwgZXZlcnkgZW50cnkgdmFsdWUgaXMgaW4gbWFwLnZhbHVlcygpOworICAgICAqICAgIG1hcC5nZXQoKSBpcyBjb25zaXN0ZW50IHdpdGggZW50cnkncyBrZXksIHZhbHVlOworICAgICAqICAgIHN1bSBvZiBoYXNoY29kZXMgb2YgZW50cmllcyBlcXVhbHMgbWFwLmhhc2hDb2RlKCkuCisgICAgICovCisgICAgdm9pZCBfdGVzdFZpZXdzKEF0dHJpYnV0ZU1hcCBtYXApIHsKKworICAgICAgICBBdHRyaWJ1dGVTZXQga2V5U2V0ID0gbWFwLmdldEtleVNldCgpOworCisgICAgICAgIEVudW1lcmF0aW9uIGtleUl0ZXIgPSBrZXlTZXQuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKGtleUl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWFwLmNvbnRhaW5zS2V5KGtleUl0ZXIubmV4dEVsZW1lbnQoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigia2V5U2V0IGNvbnRhaW5zIGtleSBub3QgaW4gbWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ0pESzExKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENvbGxlY3Rpb24gdmFsdWVzID0gbWFwLnZhbHVlcygpOworICAgICAgICBTZXQgZW50cnlTZXQgPSBtYXAuZW50cnlTZXQoKTsKKworICAgICAgICBpZiAoa2V5U2V0LnNpemUoKSAhPSBtYXAuc2l6ZSgpIHx8IGVudHJ5U2V0LnNpemUoKSAhPSBtYXAuc2l6ZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0IHNpemVzIGFyZSBpbmNvbnNpc3RlbnQgd2l0aCBtYXAgc2l6ZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBoYXNoQ29kZSA9IDA7CisKKyAgICAgICAgSXRlcmF0b3IgdmFsdWVJdGVyID0gdmFsdWVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlICh2YWx1ZUl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoIW1hcC5jb250YWluc1ZhbHVlKHZhbHVlSXRlci5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInZhbHVlIHNldCBjb250YWlucyB2YWx1ZSBub3QgaW4gbWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBJdGVyYXRvciBlbnRyeUl0ZXIgPSBlbnRyeVNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoZW50cnlJdGVyLmhhc05leHQoKSkgeworCisgICAgICAgICAgICBFbnRyeSBlbnRyeSA9IChFbnRyeSkgZW50cnlJdGVyLm5leHQoKTsKKworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGVudHJ5LmdldEtleSgpOworICAgICAgICAgICAgaWYgKCFrZXlTZXQuY29udGFpbnMoa2V5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFbnRyeSBrZXkgaXMgbm90IGluIGtleSBzZXQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQoZW50cnkuZ2V0S2V5KCkpOworICAgICAgICAgICAgaWYgKCF2YWx1ZXMuY29udGFpbnModmFsdWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVudHJ5IHZhbHVlIGlzIG5vdCBpbiB2YWx1ZSBzZXQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtYXAuZ2V0KGtleSkgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibWFwLmdldCBkaWQgbm90IHJldHVybiBlbnRyeSB2YWx1ZS4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaGFzaENvZGUgKz0gZW50cnkuaGFzaENvZGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNoQ29kZSAhPSBtYXAuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIm1hcCBoYXNoY29kZSBpcyBub3Qgc3VtIG9mIGVudHJ5IGhhc2hjb2Rlcy4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIExvb2sgZm9yIGNvcnJlY3QgYmVoYXZpb3IgaW4gb2J2aW91cyBjYXNlcy4KKyAgICAgKi8KKyAgICB2b2lkIGVhc3lUZXN0cygpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgbWFwID0gbmV3IEF0dHJpYnV0ZU1hcCgpOworICAgICAgICBpZiAoIW1hcC5lcXVhbHMoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdC1jb25zdHJ1Y3RlZCBtYXAgaXMgbm90IGVxdWFsIHRvIGVtcHR5IG1hcC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSk7CisgICAgICAgIE9iamVjdCBvdGhlck1hcCA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSk7CisgICAgICAgIGlmICghbWFwLmVxdWFscyhvdGhlck1hcCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXBzIGFyZSBpbmNvbnNpc3RlbnQgYWZ0ZXIgbWFwLmFkZCIpOworICAgICAgICB9CisKKyAgICAgICAgb3RoZXJNYXAgPSBtYXAuYWRkQXR0cmlidXRlcyhtYXApOworICAgICAgICBpZiAoIWVxdWFsTWFwcyhtYXAsb3RoZXJNYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgaW5jb25zaXN0ZW50IGFmdGVyIGFkZEF0dHJpYnV0ZXMiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKTsKKworICAgICAgICBpZiAobWFwLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIHNpemUgaXMgd3JvbmcuICBtYXA9IittYXApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVxdWFsTWFwcyhtYXAsb3RoZXJNYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBzaG91bGQgbm90IGJlIGVxdWFsIik7CisgICAgICAgIH0KKworICAgICAgICBPYmplY3QgcG9zdHVyZSA9IG5ldyBGbG9hdCgwKTsKKyAgICAgICAgbWFwID0gbWFwLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLlBPU1RVUkUsIHBvc3R1cmUpOworCisgICAgICAgIGlmIChtYXAuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2l6ZSBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtYXAuZ2V0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSkuZXF1YWxzKHBvc3R1cmUpKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIGVsZW1lbnQgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5yZW1vdmVBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUpOworCisgICAgICAgIGlmIChtYXAuc2l6ZSgpICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2l6ZSBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1hcC5nZXQoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2hvdWxkIG5vdCBoYXZlIGVsZW1lbnQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG1hcCBoYXMgUE9TVFVSRV9SRUdVTEFSLiAgSWYgd2UgYWRkQXR0cmlidXRlcyBhIG1hcCB3aXRoCisgICAgICAgIC8vIFBPU1RVUkVfSVRBTElDIHRoZSBuZXcgbWFwIHNob3VsZCBoYXZlIFBPU1RVUkVfSVRBTElDCisKKyAgICAgICAgbWFwID0gbWFwLmFkZEF0dHJpYnV0ZXMobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKSk7CisgICAgICAgIGlmIChtYXAuZ2V0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSkgIT0gVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgZWxlbWVudCBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgX3Rlc3RNb2RpZmllcnMobWFwKTsKKyAgICAgICAgX3Rlc3RWaWV3cyhtYXApOworCisgICAgICAgIEVudW1lcmF0aW9uIG1hcEl0ZXIgPSBtYXBzLmVsZW1lbnRzKCk7CisgICAgICAgIHdoaWxlIChtYXBJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgdGVzdE1hcCA9IChBdHRyaWJ1dGVNYXApIG1hcEl0ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCBuZXdWYWx1ZSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdNYXAgPSB0ZXN0TWFwLmFkZEF0dHJpYnV0ZShhdHRyaWJ1dGVzWzBdLCBuZXdWYWx1ZSk7CisgICAgICAgICAgICBpZiAobmV3TWFwLmdldChhdHRyaWJ1dGVzWzBdKSAhPSBuZXdWYWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCB2YWx1ZSBiYWNrLiAgbWFwPSIgKyBtYXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QXR0cmlidXRlU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0N2RhYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZVNldC5qYXZhCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworcHVibGljIGNsYXNzIFRlc3RBdHRyaWJ1dGVTZXQgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0QXR0cmlidXRlU2V0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgZmluYWwgT2JqZWN0IGVsZW0xID0gbmV3IE9iamVjdCgpOworICAgICAgICBmaW5hbCBPYmplY3QgZWxlbTIgPSBuZXcgRmxvYXQoNCk7CisgICAgICAgIGZpbmFsIE9iamVjdCBlbGVtMyA9ICJTdHJpbmciOworICAgICAgICBmaW5hbCBPYmplY3QgZWxlbTQgPSBCb29sZWFuLkZBTFNFOworCisgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQxID0gbmV3IEF0dHJpYnV0ZVNldChuZXcgT2JqZWN0W10ge2VsZW0xLCBlbGVtMiwgZWxlbTN9KTsKKyAgICAgICAgaWYgKHNldDEuc2l6ZSgpICE9IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJTaXplIGlzIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNldDEuY29udGFpbnMoZWxlbTQpKXsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFzZXQxLmNvbnRhaW5zKGVsZW0xKSkgeworICAgICAgICAgICAgZXJybG4oIlNldCBjb250ZW50cyBhcmUgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0MiA9IG5ldyBBdHRyaWJ1dGVTZXQoZWxlbTQpOworCisgICAgICAgIGlmIChzZXQyLnNpemUoKSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiU2l6ZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc2V0Mi5jb250YWlucyhlbGVtNCkpeworICAgICAgICAgICAgZXJybG4oIlNldCBjb250ZW50cyBhcmUgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2V0Mi5jb250YWlucyhlbGVtMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IHNldDIuZWxlbWVudHMoKTsKKyAgICAgICAgaWYgKCFpdGVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGVsZW00KSkgeworICAgICAgICAgICAgZXJybG4oIkludmFsaWQgb2JqZWN0IGluIGl0ZXJhdG9yLiIpOworICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlU2V0IHVuaW9uID0gc2V0Mi51bmlvbldpdGgoc2V0MSk7CisgICAgICAgIGlmICghc2V0MS51bmlvbldpdGgoc2V0MikuZXF1YWxzKHVuaW9uKSkgeworICAgICAgICAgICAgZXJybG4oInVuaW9uV2l0aCBpcyBub3QgY29tbXV0YXRpdmUuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXVuaW9uLmNvbnRhaW5zKGVsZW0xKSB8fCAhdW5pb24uY29udGFpbnMoZWxlbTQpKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0IGNvbnRlbnRzIGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc2V0MS5hZGRFbGVtZW50KGVsZW00KS5lcXVhbHModW5pb24pKSB7CisgICAgICAgICAgICBlcnJsbigiYWRkRWxlbWVudCBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdW5pb24uaW50ZXJzZWN0V2l0aChzZXQxKS5lcXVhbHMoc2V0MSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbnRlcnNlY3RXaXRoIGlzIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF1bmlvbi5zdWJ0cmFjdChzZXQxKS5lcXVhbHMoc2V0MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJzdWJ0cmFjdCBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEZvcm1hdHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RGb3JtYXR0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZTQxOWExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RGb3JtYXR0ZXIuamF2YQpAQCAtMCwwICsxLDI0NSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3RhbmRhcmRUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5NRm9ybWF0dGVyOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2U7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdEZvcm1hdHRlciBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbmV3IFRlc3RGb3JtYXR0ZXIoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgUG9pbnQgT1JJR0lOID0gbmV3IFBvaW50KDAsIDApOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIERFRkFVTFRTOworICAgIHN0YXRpYyB7CisgICAgICAgIGZpbmFsIEZsb2F0IGZsb2F0WmVybyA9IG5ldyBGbG9hdCgwLjBmKTsKKworICAgICAgICBIYXNodGFibGUgZGVmYXVsdHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZBTUlMWSwgIlNlcmlmIik7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLldFSUdIVCwgbmV3IEZsb2F0KDEuMGYpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDE4LjBmKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBuZXcgSW50ZWdlcigwKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsIENvbG9yLmJsYWNrKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLCBuZXcgSW50ZWdlcigtMSkpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdILCBCb29sZWFuLkZBTFNFKTsKKworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5FWFRSQV9MSU5FX1NQQUNJTkcsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5NSU5fTElORV9TUEFDSU5HLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILCBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTiwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIsIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKCkpOworCisgICAgICAgIERFRkFVTFRTID0gbmV3IEF0dHJpYnV0ZU1hcChkZWZhdWx0cyk7CisgICAgfQorICAgIAorICAgIC8vIGFyZyB0byB0ZXN0TGluZUV4Y2VwdGlvbnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IC0xOworCisgICAgcHJpdmF0ZSBHcmFwaGljcyBmR3JhcGhpY3M7CisKKyAgICBwdWJsaWMgVGVzdEZvcm1hdHRlcigpIHsKKworICAgICAgICBmR3JhcGhpY3MgPSBuZXcgQnVmZmVyZWRJbWFnZSgxMDAsIDEwMCwgQnVmZmVyZWRJbWFnZS5UWVBFXzNCWVRFX0JHUikuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgCisgICAgICAgIC8vSkRLIDEuMToKKyAgICAgICAgLy9GcmFtZSBmID0gbmV3IEZyYW1lKCk7CisgICAgICAgIC8vZi5zaG93KCk7CisgICAgICAgIC8vZkdyYXBoaWNzID0gZi5nZXRHcmFwaGljcygpOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZpdmVMaW5lcyA9ICJhXG5iXG5jXG5kXG5lIjsKKyAgICBwcml2YXRlIFN0cmluZyB0d2VsdmVMaW5lcyA9IGZpdmVMaW5lcyArICJcbiIgKyBmaXZlTGluZXMgKyAiXG5mXG4iOworICAgIEF0dHJpYnV0ZU1hcCBQTEFJTiA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dChmaXZlTGluZXMsIFBMQUlOKTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhtYWtlRm9ybWF0dGVyKHRleHQsIDEwMCwgdHJ1ZSksIDUpOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MobWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpLCA1KTsKKworICAgICAgICB0ZXh0ID0gbmV3IFN0eWxlZFRleHQodHdlbHZlTGluZXMsIFBMQUlOKTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhtYWtlRm9ybWF0dGVyKHRleHQsIDMsIGZhbHNlKSwgMTIpOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MobWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpLCAxMik7CisKKyAgICAgICAgX3Rlc3RXaXRoTW9kaWZpY2F0aW9uKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0V2l0aE1vZGlmaWNhdGlvbigpIHsKKworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoZml2ZUxpbmVzLCBQTEFJTik7CisgICAgICAgIE1Gb3JtYXR0ZXIgZm9ybWF0dGVyID0gbWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpOworICAgICAgICBSZWN0YW5nbGUgdmlld1JlY3QgPSBuZXcgUmVjdGFuZ2xlKDAsIDAsIDEwMCwgSW50ZWdlci5NQVhfVkFMVUUpOworCisgICAgICAgIGZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgdGV4dC5hcHBlbmQobmV3IFN0eWxlZFRleHQoIlxuIiwgUExBSU4pKTsKKyAgICAgICAgZm9ybWF0dGVyLnVwZGF0ZUZvcm1hdCh0ZXh0Lmxlbmd0aCgpLTEsIDEsIHZpZXdSZWN0LCBPUklHSU4pOworCisgICAgICAgIF90ZXN0TGluZUFjY2Vzcyhmb3JtYXR0ZXIsIDYpOworCisgICAgICAgIGZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgdGV4dC5hcHBlbmQobmV3IFN0eWxlZFRleHQoImFkIiwgUExBSU4pKTsKKyAgICAgICAgZm9ybWF0dGVyLnVwZGF0ZUZvcm1hdCh0ZXh0Lmxlbmd0aCgpLTIsIDIsIHZpZXdSZWN0LCBPUklHSU4pOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MoZm9ybWF0dGVyLCA2KTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhmb3JtYXR0ZXIsIDYpOworCisgICAgICAgIGZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgdGV4dC5yZW1vdmUoMCwgMSk7CisgICAgICAgIGZvcm1hdHRlci51cGRhdGVGb3JtYXQoMCwgMCwgdmlld1JlY3QsIE9SSUdJTik7CisgICAgICAgIF90ZXN0TGluZUFjY2Vzcyhmb3JtYXR0ZXIsIDYpOworICAgICAgICBfdGVzdExpbmVFeGNlcHRpb25zKGZvcm1hdHRlciwgNik7CisgICAgfQorCisKKyAgICBwcml2YXRlIE1Gb3JtYXR0ZXIgbWFrZUZvcm1hdHRlcihNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXApIHsKKworICAgICAgICByZXR1cm4gTUZvcm1hdHRlci5jcmVhdGVGb3JtYXR0ZXIodGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUZBVUxUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmR3JhcGhpY3MpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdExpbmVFeGNlcHRpb25zKE1Gb3JtYXR0ZXIgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bUxpbmVzKSB7CisKKyAgICAgICAgaWYgKG51bUxpbmVzID09IFVOS05PV04pIHsKKyAgICAgICAgICAgIG51bUxpbmVzID0gZm9ybWF0dGVyLmdldExpbmVDb3VudCgpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBjYXVnaHQgPSBmYWxzZTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9ybWF0dGVyLmxpbmVSYW5nZUxvdyhudW1MaW5lcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNhdWdodCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWNhdWdodCkgeworICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F1Z2h0ID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdChudW1MaW5lcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNhdWdodCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWNhdWdodCkgeworICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F1Z2h0ID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KG51bUxpbmVzKzEpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjYXVnaHQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjYXVnaHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGNhdWdodCA9IGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdExpbmVBY2Nlc3MoTUZvcm1hdHRlciBmb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtTGluZXMpIHsKKworICAgICAgICBpZiAobnVtTGluZXMgPT0gVU5LTk9XTikgeworICAgICAgICAgICAgbnVtTGluZXMgPSBmb3JtYXR0ZXIuZ2V0TGluZUNvdW50KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQoMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkxpbmUgMCBkb2Vzbid0IHN0YXJ0IGF0IGhlaWdodCAwIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvcm1hdHRlci5saW5lUmFuZ2VMb3coMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkxpbmUgMCBkb2Vzbid0IHN0YXJ0IGF0IGNoYXJhY3RlciAwIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGFzdExpbWl0ID0gZm9ybWF0dGVyLmxpbmVSYW5nZUxpbWl0KDApOworICAgICAgICBmaW5hbCBpbnQgbGluZUJvdW5kID0gZm9ybWF0dGVyLmxpbmVCb3VuZCgpOworICAgICAgICBpbnRbXSBoaXRYID0gbmV3IGludFtdIHsgLTEsIDEsIGxpbmVCb3VuZCArIDIgfTsKKworICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpIDwgbnVtTGluZXM7IGkrKykgeworCisgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gZm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQoaSk7CisgICAgICAgICAgICBpZiAobGFzdExpbWl0ICE9IGZvcm1hdHRlci5saW5lUmFuZ2VMb3coaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibGFzdExpbmUgbGltaXQgaXMgbm90IGN1cnJlbnQgbGluZSBzdGFydCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbWl0ID0gZm9ybWF0dGVyLmxpbmVSYW5nZUxpbWl0KGkpOworCisgICAgICAgICAgICBpZiAobGltaXQgPCBsYXN0TGltaXQgfHwgKGxpbWl0ID09IGxhc3RMaW1pdCAmJiBpICE9IG51bUxpbmVzLTEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImxpbmUgaGFzIG5lZ2F0aXZlIG9yIDAgbGVuZ3RoIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBuZXh0SGVpZ2h0ID0gZm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQoaSsxKTsKKyAgICAgICAgICAgIGlmIChuZXh0SGVpZ2h0IDw9IGhlaWdodCkgeworICAgICAgICAgICAgICAgIGVycmxuKCIwLWhlaWdodCBsaW5lIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgaW5jQW1vdW50ID0gTWF0aC5tYXgoKG5leHRIZWlnaHQtaGVpZ2h0KS80LCAxKTsKKyAgICAgICAgICAgIGZvciAoaW50IGhpdFkgPSBoZWlnaHQ7IGhpdFkgPCBuZXh0SGVpZ2h0OyBoaXRZICs9IGluY0Ftb3VudCkgeworCisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlci5saW5lQXRIZWlnaHQoaGl0WSkgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigibGluZUF0SGVpZ2h0IGlzIHdyb25nIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqIDwgaGl0WC5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBmb3JtYXR0ZXIucG9pbnRUb1RleHRPZmZzZXQob2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpdFhbal0sIGhpdFksIE9SSUdJTiwgbnVsbCwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0LmZPZmZzZXQgPCBsYXN0TGltaXQgfHwgb2Zmc2V0LmZPZmZzZXQgPiBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkluY29uc2lzdGVudCBvZmZzZXQgZnJvbSBwb2ludFRvVGV4dE9mZnNldCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vaWYgKGZvcm1hdHRlci5saW5lQ29udGFpbmluZyhvZmZzZXQpICE9IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgaW50IGRlYnVnID0gZm9ybWF0dGVyLmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgIGVycmxuKCJsaW5lQ29udGFpbmluZyBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgLy99CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsYXN0TGltaXQgPSBsaW1pdDsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmZhNWQzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0TVRleHQuamF2YQpAQCAtMCwwICsxLDcxOCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBUZXN0TVRleHQgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0TVRleHQoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBURVNUX0lURVJBVElPTlMgPSA1MDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVFlMRV9URVNUX0lURVJBVElPTlMgPSA1MDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgUkFORF9TRUVEID0gNTk4NDM2OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PVF9JTl9NT05LRVlfVEVTVCA9IC01MDAwOworICAgIHByaXZhdGUgaW50IHRlc3RJdGVyYXRpb24gPSBOT1RfSU5fTU9OS0VZX1RFU1Q7CisgICAgcHJpdmF0ZSBpbnQgdGhlQ2FzZSA9IE5PVF9JTl9NT05LRVlfVEVTVDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZU1pbnVzTW9kaWZpZXIoZmluYWwgT2JqZWN0IGF0dHIpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZU1vZGlmaWVyKCkgeworICAgICAgICAgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBtb2RpZnlTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGUucmVtb3ZlQXR0cmlidXRlKGF0dHIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisgICAgCisgICAgICAgIHNpbXBsZVRlc3QoKTsKKyAgICAgICAgc3R5bGVUZXN0KCk7CisgICAgICAgIG1vbmtleVRlc3QodHJ1ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNpbXBsZVRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGRTdHlsZSA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICBBdHRyaWJ1dGVNYXAgaXRhbGljU3R5bGUgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpOworCisgICAgICAgIE1Db25zdFRleHQgYWxsQm9sZCA9IG5ldyBTdHlsZWRUZXh0KCJiYmJiYiIsIGJvbGRTdHlsZSk7CisgICAgICAgIE1Db25zdFRleHQgYWxsSXRhbGljID0gbmV3IFN0eWxlZFRleHQoImlpaSIsIGl0YWxpY1N0eWxlKTsKKyAgICAgICAgTUNvbnN0VGV4dCBwbGFpbiA9IG5ldyBTdHlsZWRUZXh0KCJwcHBwcHAiLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgeworICAgICAgICAgICAgTVRleHQgYnVmID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgICAgIGludCB0cyA9IGJ1Zi5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYWxsQm9sZCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGFsbEl0YWxpYyk7CisKKyAgICAgICAgICAgIGlmICh0cyA9PSBidWYuZ2V0VGltZVN0YW1wKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGltZSBzdGFtcCBub3QgaW5jcmVtZW50ZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gc2hvdWxkIGJlIGJiYmJiaWlpIG5vdworCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IGFsbEJvbGQubGVuZ3RoKCkgKyBhbGxJdGFsaWMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBidWYubGVuZ3RoKCk7IGkrKykgeworCisgICAgICAgICAgICAgICAgY2hhciByaWdodENoYXI7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHJpZ2h0U3R5bGU7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA8IGFsbEJvbGQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHRDaGFyID0gYWxsQm9sZC5hdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHRTdHlsZSA9IGJvbGRTdHlsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0Q2hhciA9IGFsbEl0YWxpYy5hdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHRTdHlsZSA9IGl0YWxpY1N0eWxlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChidWYuYXQoaSkgIT0gcmlnaHRDaGFyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgaXMgd3JvbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghYnVmLmNoYXJhY3RlclN0eWxlQXQoaSkuZXF1YWxzKHJpZ2h0U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBwb3MgPSAwOworCisgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHBvcykuZXF1YWxzKGJvbGRTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmlyc3Qgc3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBhbGxCb2xkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBsZW5ndGggaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IGFsbEJvbGQubGVuZ3RoKCk7CisKKyAgICAgICAgICAgIGlmICghYnVmLmNoYXJhY3RlclN0eWxlQXQocG9zKS5lcXVhbHMoaXRhbGljU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlNlY29uZCBzdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYnVmLnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgICAgICAgICAgaW50IG9sZExlbmd0aCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBidWYucmVwbGFjZShidWYubGVuZ3RoKCksIGJ1Zi5sZW5ndGgoKSwgYWxsQm9sZCwgMCwgYWxsQm9sZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgLy8gYmJiYmJpaWliYmJiYgorCisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5kYW1hZ2VkUmFuZ2VTdGFydCgpICE9IG9sZExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlZCByYW5nZSBzdGFydCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5kYW1hZ2VkUmFuZ2VMaW1pdCgpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlZCByYW5nZSBsaW1pdCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzdGFydCA9IGFsbEJvbGQubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBzdGFydCArIGFsbEl0YWxpYy5sZW5ndGgoKTsKKyAgICAgICAgICAgIGJ1Zi5yZW1vdmUoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgIC8vIGJiYmJiYmJiYmIKKworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSAhPSAyICogYWxsQm9sZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0IHNob3VsZCBiZSB0d2ljZSB0aGUgbGVuZ3RoIG9mIGJvbGQgdGV4dC4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcG9zID0gYnVmLmxlbmd0aCgpIC8gMjsKKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVTdGFydChwb3MpICE9IDAgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gcmFuZ2UgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHBvcykuZXF1YWxzKGJvbGRTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIHN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cyA9IGJ1Zi5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNJdGVyID0gYnVmLmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSBjSXRlci5maXJzdCgpOyBjaCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjaCA9IGNJdGVyLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChjaCAhPSBhbGxCb2xkLmF0KDApKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgaXMgd3JvbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodHMgIT0gYnVmLmdldFRpbWVTdGFtcCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRpbWUgc3RhbXAgc2hvdWxkIG5vdCBoYXZlIGNoYW5nZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgMSwgcGxhaW4sIDAsIHBsYWluLmxlbmd0aCgpKTsKKworICAgICAgICAgICAgaWYgKHRzID09IGJ1Zi5nZXRUaW1lU3RhbXAoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUaW1lIHN0YW1wIG5vdCBpbmNyZW1lbnRlZCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwcHBwcHBiYmJiYmJiYmIKKyAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKHBsYWluLmxlbmd0aCgpLCBidWYubGVuZ3RoKCksIGFsbEl0YWxpYywgMCwgYWxsSXRhbGljLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIHBwcHBwcGlpaQorCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IGFsbEl0YWxpYy5sZW5ndGgoKStwbGFpbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJMZW5ndGggaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IDA7CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBwbGFpbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGltaXQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IHBsYWluLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgIT0gYnVmLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBsaW1pdCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmLnJlcGxhY2UocGxhaW4ubGVuZ3RoKCksIHBsYWluLmxlbmd0aCgpLCBhbGxCb2xkLCAwLCBhbGxCb2xkLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIHBwcHBwcGJiYmJiaWlpCisKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KDEpOworICAgICAgICAgICAgaWYgKCFzdC5lcXVhbHMoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZVN0YXJ0KDEpICE9IDAgfHwgYnVmLmNoYXJhY3RlclN0eWxlTGltaXQoMSkgIT0gcGxhaW4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgc3RhcnQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0ID0gYnVmLmNoYXJhY3RlclN0eWxlQXQoYnVmLmxlbmd0aCgpIC0gMSk7CisgICAgICAgICAgICBpZiAoIXN0LmVxdWFscyhpdGFsaWNTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlU3RhcnQoYnVmLmxlbmd0aCgpIC0gMSkgIT0gcGxhaW4ubGVuZ3RoKCkrYWxsQm9sZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBzdGFydCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KGJ1Zi5sZW5ndGgoKSAtIDEpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBsaW1pdCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gcmFuZEludChyYW5kLCAwLCBsaW1pdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHJhbmRJbnQoUmFuZG9tIHJhbmQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJhbmdlIGxlbmd0aCBpcyBuZWdhdGl2ZS4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzdGFydCA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0YXJ0ICsgKE1hdGguYWJzKHJhbmQubmV4dEludCgpKSUobGltaXQtc3RhcnQpKSA7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc3R5bGVUZXN0KCkgeworCisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiMDEyMzQ1Njc4OSIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXBbXSBzdHlsZXMgPSBuZXcgQXR0cmlidXRlTWFwW3RleHQubGVuZ3RoKCldOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN0eWxlc1tpXSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICB9CisgICAgICAgIEF0dHJpYnV0ZU1hcFtdIG9sZFN0eWxlcyA9IG5ldyBBdHRyaWJ1dGVNYXBbc3R5bGVzLmxlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3R5bGVzLCAwLCBvbGRTdHlsZXMsIDAsIHN0eWxlcy5sZW5ndGgpOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBiaWdTdHlsZSA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoMjMuMGYpKTsKKworICAgICAgICBTdHlsZU1vZGlmaWVyW10gbW9kaWZpZXJzID0geworICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCkpLAorICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULCBuZXcgRmxvYXQoMS4wZikpKSwKKyAgICAgICAgICAgIGNyZWF0ZU1pbnVzTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5XRUlHSFQpLAorCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBuZXcgRmxvYXQoMC4wZikpKSwKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSkpLAorICAgICAgICAgICAgY3JlYXRlTWludXNNb2RpZmllcihUZXh0QXR0cmlidXRlLlBPU1RVUkUpLAorCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGJpZ1N0eWxlKSwKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKGJpZ1N0eWxlKSwKKyAgICAgICAgICAgIGNyZWF0ZU1pbnVzTW9kaWZpZXIoYmlnU3R5bGUuZ2V0S2V5U2V0KCkpCisgICAgICAgIH07CisKKyAgICAgICAgUmFuZG9tIHJhbmQgPSBuZXcgUmFuZG9tKFJBTkRfU0VFRCk7CisgICAgICAgIGZpbmFsIGludCBzdG9wQXQgPSA0OworCisgICAgICAgIGZvciAoaW50IHRlc3RJdGVyYXRpb249MDsgdGVzdEl0ZXJhdGlvbiA8IFNUWUxFX1RFU1RfSVRFUkFUSU9OUyArIDE7IHRlc3RJdGVyYXRpb24rKykgeworCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN0eWxlcywgMCwgb2xkU3R5bGVzLCAwLCBzdHlsZXMubGVuZ3RoKTsKKworICAgICAgICAgICAgaW50IHN0YXJ0aW5nQXQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIGludCBlbmRpbmdBdCA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICAgICAgaW50IG9sZFRzID0gdGV4dC5nZXRUaW1lU3RhbXAoKTsKKworICAgICAgICAgICAgLy8gaGFjayB3YXkgdG8gZG8gYW4gaW52YXJpYW50IGNoZWNrIGJlZm9yZSBzdGFydGluZy4uLgorICAgICAgICAgICAgaWYgKHRlc3RJdGVyYXRpb24gIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIG1vZGlmeSBzdHlsZXMKKyAgICAgICAgICAgICAgICB0ZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgICAgICAgICAgc3RhcnRpbmdBdCA9IHJhbmRJbnQocmFuZCwgc3R5bGVzLmxlbmd0aCsxKTsKKyAgICAgICAgICAgICAgICBlbmRpbmdBdCA9IHJhbmRJbnQocmFuZCwgc3RhcnRpbmdBdCwgc3R5bGVzLmxlbmd0aCsxKTsKKyAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gbW9kaWZpZXJzW3JhbmRJbnQocmFuZCwgbW9kaWZpZXJzLmxlbmd0aCldOworCisgICAgICAgICAgICAgICAgaWYgKHRlc3RJdGVyYXRpb24gPT0gc3RvcEF0KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RJdGVyYXRpb24gPSBzdG9wQXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRleHQubW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKHN0YXJ0aW5nQXQsIGVuZGluZ0F0LCBtb2RpZmllcik7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPXN0YXJ0aW5nQXQ7IGogPCBlbmRpbmdBdDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0eWxlc1tqXSA9IG1vZGlmaWVyLm1vZGlmeVN0eWxlKHN0eWxlc1tqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjaGVjayBpbnZhcmlhbnRzCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgb2xkU3R5bGUgPSBudWxsOworICAgICAgICAgICAgaW50IHRleHRMZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpbnQgcnVuU3RhcnQgPSAwOyBydW5TdGFydCA8IHRleHRMZW5ndGg7KSB7CisKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgY3VycmVudFN0eWxlID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHJ1blN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpbnQgcnVuTGltaXQgPSB0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuU3RhcnQpOworICAgICAgICAgICAgICAgIGlmIChydW5TdGFydCA+PSBydW5MaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUnVuIGxlbmd0aCBpcyBub3QgcG9zaXRpdmUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdHlsZS5lcXVhbHMob2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZXMgZGlkbid0IG1lcmdlIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yIChpbnQgcG9zPXJ1blN0YXJ0OyBwb3MgPCBydW5MaW1pdDsgcG9zKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNoYXJTdHlsZUF0UG9zID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUgIT0gY2hhclN0eWxlQXRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBzdHlsZSBpcyBub3QgZXF1YWwgdG8gdGV4dCBzdHlsZSBhdCAiICsgcG9zICsgIi4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZXhwZWN0ZWQgPSBzdHlsZXNbcG9zXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50U3R5bGUuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIHN0eWxlIGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgc3R5bGUgYXQgIiArIHBvcyArICIuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEodGV4dC5jaGFyYWN0ZXJTdHlsZVN0YXJ0KHBvcykgPT0gcnVuU3RhcnQpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgISh0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSA9PSBydW5MaW1pdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzdHlsZSBydW4gc3RhcnQgLyBsaW1pdCBpcyBub3QgY29uc2lzdGVudCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJ1blN0YXJ0ID0gcnVuTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGV4dExlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHRleHRMZW5ndGgpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHRleHRMZW5ndGgtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3RlciBzdHlsZXMgYXQgZW5kIGFyZW4ndCB0aGUgc2FtZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgZGFtYWdlZCByYW5nZToKKyAgICAgICAgICAgIGludCBkYW1hZ2VTdGFydCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgaW50IGRhbWFnZUxpbWl0ID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB0ZXh0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0eWxlc1tpXS5lcXVhbHMob2xkU3R5bGVzW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBkYW1hZ2VTdGFydCA9IE1hdGgubWluKGksIGRhbWFnZVN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlTGltaXQgPSBNYXRoLm1heChpKzEsIGRhbWFnZUxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGFtYWdlU3RhcnQgIT0gdGV4dC5kYW1hZ2VkUmFuZ2VTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlTGltaXQgIT0gdGV4dC5kYW1hZ2VkUmFuZ2VMaW1pdCgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3QgaXRlcmF0aW9uOiAiICsgdGVzdEl0ZXJhdGlvbik7CisgICAgICAgICAgICAgICAgbG9nbG4oInN0YXJ0aW5nQXQ6ICIgKyBzdGFydGluZ0F0ICsgIjsgIGVuZGluZ0F0OiAiICsgZW5kaW5nQXQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJkYW1hZ2VTdGFydDogIiArIGRhbWFnZVN0YXJ0ICsgIjsgIGRhbWFnZUxpbWl0OiAiICsgZGFtYWdlTGltaXQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0ZXh0LnJhbmdlU3RhcnQ6ICIgKyB0ZXh0LmRhbWFnZWRSYW5nZVN0YXJ0KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC5yYW5nZUxpbWl0OiAiICsgdGV4dC5kYW1hZ2VkUmFuZ2VMaW1pdCgpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlIHJhbmdlIHN0YXJ0IG9yIGxpbWl0IGlzIG5vdCBleHBlY3RlZCB2YWx1ZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoKGRhbWFnZUxpbWl0ID09IEludGVnZXIuTUlOX1ZBTFVFKSAhPSAob2xkVHMgPT0gdGV4dC5nZXRUaW1lU3RhbXAoKSkpIHsKKworICAgICAgICAgICAgICAgIGVycmxuKCJ0aW1lU3RhbXAgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtc2coU3RyaW5nIG1lc3NhZ2UsIGludCBsZXZlbCwgYm9vbGVhbiBpbmNDb3VudCwgYm9vbGVhbiBuZXdsbikgeworICAgICAgICBpZiAobGV2ZWwgPT0gRVJSICYmIHRlc3RJdGVyYXRpb24gIT0gTk9UX0lOX01PTktFWV9URVNUKSB7CisgICAgICAgICAgICBtZXNzYWdlID0gInRlc3RJdGVyYXRpb249Iit0ZXN0SXRlcmF0aW9uKyI7IHRlc3RDYXNlPSIrdGhlQ2FzZSttZXNzYWdlOworICAgICAgICB9CisgICAgICAgIHN1cGVyLm1zZyhtZXNzYWdlLCBsZXZlbCwgaW5jQ291bnQsIG5ld2xuKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBQZXJmb3JtIGEgcmFuZG9tIHNlcmllcyBvZiBvcGVyYXRpb25zIG9uIGFuIE1UZXh0IGFuZAorICAgICogY2hlY2sgdGhlIHJlc3VsdCBvZiBlYWNoIG9wZXJhdGlvbiBhZ2FpbnN0IGEgc2V0IG9mIGludmFyaWFudHMuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb25rZXlUZXN0KGJvb2xlYW4gc3RyZWFtaW5nKSB7CisKKyAgICAgICAgLyoKKyAgICAgICAgICAgIFlvdSBjYW4gYWRkIGFueSBvcGVyYXRpb24gdG8gdGhlIHN3aXRjaCBzdGF0ZW1lbnQgcHJvdmlkZWQgaXQKKyAgICAgICAgICAgIHByZXNlcnZlcyB0aGUgZm9sbG93aW5nIGludmFyaWFudHM6CisgICAgICAgICAgICAtIFRoZSBTdHJpbmcgcGxhaW5UZXh0IGNvbnRhaW5zIHRoZSBzYW1lIHRleHQgYXMgdGhlIFN0eWxlZFN0cmluZ0J1ZmZlci4KKyAgICAgICAgICAgICAgT2J2aW91c2x5LCBmb3IgdGhlIHRlc3QgdG8gYmUgbWVhbmluZ2Z1bCBwbGFpblRleHQgbXVzdCBiZSBjb21wdXRlZAorICAgICAgICAgICAgICBpbmRlcGVuZGVudGx5IG9mIHRoZSBidWZmZXIgKGllIGRvbid0IHdyaXRlOiAgcGxhaW5UZXh0ID0gYnVmLmdldFN0eWxlZFN0cmluZygpLnRvU3RyaW5nKCkpLgorICAgICAgICAgICAgLSBFdmVyeSAnYicgaXMgYm9sZCwgZXZlcnkgJ2knIGlzIGl0YWxpYywgZXZlcnkgJ3AnIGlzIHBsYWluLCBhbmQKKyAgICAgICAgICAgICAgbm8gb3RoZXIgY2hhcmFjdGVycyBhcHBlYXIgaW4gdGhlIHRleHQuCisgICAgICAgICovCisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGRBdHRycyA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICBBdHRyaWJ1dGVNYXAgaXRhbGljQXR0cnMgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpOworICAgICAgICBBdHRyaWJ1dGVNYXAgZW1wdHlBdHRycyA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworCisgICAgICAgIGZpbmFsIFN0cmluZyBib2xkMVN0cl9nZXRTdHJpbmcgPSAiYiI7CisgICAgICAgIE1Db25zdFRleHQgYm9sZDFTdHIgPSBuZXcgU3R5bGVkVGV4dChib2xkMVN0cl9nZXRTdHJpbmcsIGJvbGRBdHRycyk7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIGl0YWxpYzFTdHJfZ2V0U3RyaW5nID0gImkiOworICAgICAgICBNQ29uc3RUZXh0IGl0YWxpYzFTdHIgPSBuZXcgU3R5bGVkVGV4dChpdGFsaWMxU3RyX2dldFN0cmluZywgaXRhbGljQXR0cnMpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwbGFpbjFTdHJfZ2V0U3RyaW5nID0gInAiOworICAgICAgICBNQ29uc3RUZXh0IHBsYWluMVN0ciA9IG5ldyBTdHlsZWRUZXh0KHBsYWluMVN0cl9nZXRTdHJpbmcsIGVtcHR5QXR0cnMpOworCisgICAgICAgIFN0eWxlZFRleHQgdGVtcCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIHRlbXAuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoaXRhbGljMVN0cik7CisgICAgICAgIGZpbmFsIFN0cmluZyBib2xkSXRhbGljU3RyX2dldFN0cmluZyA9IGJvbGQxU3RyX2dldFN0cmluZy5jb25jYXQoaXRhbGljMVN0cl9nZXRTdHJpbmcpOworICAgICAgICBNQ29uc3RUZXh0IGJvbGRJdGFsaWNTdHIgPSB0ZW1wOworCisgICAgICAgIHRlbXAgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICB0ZW1wLmFwcGVuZChib2xkMVN0cik7CisgICAgICAgIHRlbXAuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoYm9sZDFTdHIpOworICAgICAgICBmaW5hbCBTdHJpbmcgYm9sZDNTdHJfZ2V0U3RyaW5nID0gImJiYiI7CisgICAgICAgIE1Db25zdFRleHQgYm9sZDNTdHIgPSB0ZW1wOworCisgICAgICAgIE1UZXh0IGJ1ZiA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIFN0cmluZyBwbGFpblRleHQgPSBuZXcgU3RyaW5nKCk7CisgICAgICAgIC8vaW50IHRlc3RJdGVyYXRpb249MDsgLSBub3cgaW5zdGFuY2UgdmFyaWFibGVzIHNvIGVycmxuIGNhbiByZXBvcnQgaXQKKyAgICAgICAgLy9pbnQgdGhlQ2FzZT0wOworCisgICAgICAgIGZpbmFsIGludCBOVU1fQ0FTRVMgPSAxNDsKKyAgICAgICAgYm9vbGVhbltdIGNhc2VzRXhlY3V0ZWQgPSBuZXcgYm9vbGVhbltOVU1fQ0FTRVNdOworICAgICAgICBmaW5hbCBpbnQgc3RvcEF0ID0gLTE7CisgICAgICAgIFJhbmRvbSByYW5kID0gbmV3IFJhbmRvbShSQU5EX1NFRUQpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBBTFdBWVNfRElGRkVSRU5UID0gIlx1RkVGRiI7CisKKyAgICAgICAgICAgIGZvciAodGVzdEl0ZXJhdGlvbj0wOyB0ZXN0SXRlcmF0aW9uIDwgVEVTVF9JVEVSQVRJT05TOyB0ZXN0SXRlcmF0aW9uKyspIHsKKworICAgICAgICAgICAgICAgIHRoZUNhc2UgPSByYW5kSW50KHJhbmQsIE5VTV9DQVNFUyk7CisKKyAgICAgICAgICAgICAgICBjYXNlc0V4ZWN1dGVkW3RoZUNhc2VdID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGlmICh0ZXN0SXRlcmF0aW9uID09IHN0b3BBdCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0SXRlcmF0aW9uID0gc3RvcEF0OyAgLy8gQ29udmVuaWVudCBwbGFjZSB0byBwdXQgYnJlYWtwb2ludAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCB0aW1lU3RhbXAgPSBidWYuZ2V0VGltZVN0YW1wKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9sZFBsYWluVGV4dCA9IHBsYWluVGV4dDsKKyAgICAgICAgICAgICAgICBpZiAob2xkUGxhaW5UZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIm9sZFBsYWluVGV4dCBpcyBudWxsISIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN3aXRjaCAodGhlQ2FzZSkgeworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBuZXcgc3RyaW5nOyByZXBsYWNlIGNoYXJzIGF0IHN0YXJ0IHdpdGggZGlmZmVyZW50IHN0eWxlCisgICAgICAgICAgICAgICAgICAgICAgICBidWYgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChib2xkM1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCAxLCBpdGFsaWMxU3RyLCAwLCBpdGFsaWMxU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDAsIGl0YWxpYzFTdHIsIDAsIGl0YWxpYzFTdHIubGVuZ3RoKCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBib2xkM1N0cl9nZXRTdHJpbmcuc3Vic3RyaW5nKDEsIGJvbGQzU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGl0YWxpYzFTdHJfZ2V0U3RyaW5nLmNvbmNhdChwbGFpblRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gaXRhbGljMVN0cl9nZXRTdHJpbmcuY29uY2F0KHBsYWluVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZSBsYXN0IGNoYXJhY3RlciBmcm9tIHRoZSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDAsIGl0YWxpYzFTdHIsIDAsIGl0YWxpYzFTdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGl0YWxpYzFTdHJfZ2V0U3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVtb3ZlKGJ1Zi5sZW5ndGgoKS0xLCBidWYubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnN1YnN0cmluZygwLCBwbGFpblRleHQubGVuZ3RoKCktMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIHNvbWUgb2YgdGhlIGJ1ZmZlciB3aXRoIGJvbGRJdGFsaWNTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByU3RhcnQgPSByYW5kSW50KHJhbmQsIGJ1Zi5sZW5ndGgoKSsxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByU3RvcCA9IHJhbmRJbnQocmFuZCwgclN0YXJ0LCBidWYubGVuZ3RoKCkrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShyU3RhcnQsIHJTdG9wLCBib2xkSXRhbGljU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3U3RyaW5nID0gKHJTdGFydD4wKT8gcGxhaW5UZXh0LnN1YnN0cmluZygwLCByU3RhcnQpIDogbmV3IFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0cmluZyA9IG5ld1N0cmluZy5jb25jYXQoYm9sZEl0YWxpY1N0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyU3RvcCA8IHBsYWluVGV4dC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RyaW5nID0gbmV3U3RyaW5nLmNvbmNhdChwbGFpblRleHQuc3Vic3RyaW5nKHJTdG9wLCBwbGFpblRleHQubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IG5ld1N0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGVhdGVkbHkgaW5zZXJ0IHN0cmluZ3MgaW50byB0aGUgY2VudGVyIG9mIHRoZSBidWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zUG9zID0gYnVmLmxlbmd0aCgpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gcGxhaW5UZXh0LnN1YnN0cmluZygwLCBpbnNQb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdWZmaXggPSBwbGFpblRleHQuc3Vic3RyaW5nKGluc1BvcywgcGxhaW5UZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWlkZGxlID0gbmV3IFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlpPTA7IGlpPDQ7IGlpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB3aGljaCA9IChpaSUyPT0wKT8gYm9sZEl0YWxpY1N0ciA6IGJvbGQzU3RyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgd2hpY2hTdHJpbmcgPSAoaWklMj09MCk/IGJvbGRJdGFsaWNTdHJfZ2V0U3RyaW5nIDogYm9sZDNTdHJfZ2V0U3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcFBvcyA9IGluc1BvcyttaWRkbGUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQodGVtcFBvcywgd2hpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWRkbGUgPSBtaWRkbGUuY29uY2F0KHdoaWNoU3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcHJlZml4LmNvbmNhdChtaWRkbGUpLmNvbmNhdChzdWZmaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydCBib2xkMVN0ciBhdCBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYm9sZDFTdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LmNvbmNhdChib2xkMVN0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAgICAvLyBkZWxldGUgYSBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZWxQb3MgPSByYW5kSW50KHJhbmQsIGJ1Zi5sZW5ndGgoKS0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVtb3ZlKGRlbFBvcywgZGVsUG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgZGVsUG9zKS5jb25jYXQocGxhaW5UZXh0LnN1YnN0cmluZyhkZWxQb3MrMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgMCwgcGxhaW4xU3RyLCAwLCBwbGFpbjFTdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluMVN0cl9nZXRTdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgKGV4Y2VwdCB0aGUgZmlyc3QgY2hhcmFjdGVyKSB3aXRoIGl0c2VsZgorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGJ1Zi5sZW5ndGgoKSA+IDE/IDEgOiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKHN0YXJ0LCBidWYubGVuZ3RoKCksIGJ1Zik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnN1YnN0cmluZygwLCBzdGFydCkuY29uY2F0KHBsYWluVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgICAgIC8vIGFwcGVuZCB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlciB0byBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IGNvbnRlbnQgPSBidWY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmluc2VydChidWYubGVuZ3RoKCksIGNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5jb25jYXQocGxhaW5UZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgYnVmZmVyIHdpdGggYm9sZEl0YWxpY1N0citib2xkM1N0cgorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IHJlcGxhY2VtZW50ID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5hcHBlbmQoYm9sZEl0YWxpY1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuYXBwZW5kKGJvbGQzU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCBidWYubGVuZ3RoKCksIHJlcGxhY2VtZW50LCAwLCByZXBsYWNlbWVudC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gYm9sZEl0YWxpY1N0cl9nZXRTdHJpbmcuY29uY2F0KGJvbGQzU3RyX2dldFN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0IGJvbGQxU3RyIGF0IGVuZCAtIHNhbWUgYXMgNCBidXQgdXNlcyBkaWZmZXJlbnQgQVBJCisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShidWYubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2xkMVN0cl9nZXRTdHJpbmcudG9DaGFyQXJyYXkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2xkMVN0cl9nZXRTdHJpbmcubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2xkQXR0cnMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LmNvbmNhdChib2xkMVN0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbCAtIGRpZmZlcmVudCB3YXkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZW1vdmUoMCwgYnVmLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydCAnaScgYXQgM3JkIGNoYXJhY3RlciAob3IgbGFzdCwgaWYgZmV3ZXIgdGhhbiAzIGNoYXJzKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnNQb3MgPSBNYXRoLm1pbihidWYubGVuZ3RoKCksIDMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKGluc1BvcywgaW5zUG9zLCAnaScsIGl0YWxpY0F0dHJzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSAocGxhaW5UZXh0LnN1YnN0cmluZygwLCBpbnNQb3MpKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQoaXRhbGljMVN0cl9nZXRTdHJpbmcpLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmNhdChwbGFpblRleHQuc3Vic3RyaW5nKGluc1BvcykpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJlYW1pbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBieXRlc091dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9iak91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnl0ZXNPdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpPdXQud3JpdGVPYmplY3QoYnVmKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbSBieXRlc0luID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlc091dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqSW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYnl0ZXNJbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IChNVGV4dCkgb2JqSW4ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2goQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTdHJlYW1pbmcgcHJvYmxlbTogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgY2FzZS4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aW1lIHN0YW1wIGlmIG9sZFBsYWluVGV4dCAhPSBudWxsLgorICAgICAgICAgICAgICAgIC8vIFRpbWUgc3RhbXAgc2hvdWxkIGJlIGRpZmZlcmVudCBpZmYKKyAgICAgICAgICAgICAgICAvLyBvbGRQbGFpblRleHQgPT0gcGxhaW5UZXh0CisgICAgICAgICAgICAgICAgaWYgKG9sZFBsYWluVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgodGltZVN0YW1wPT1idWYuZ2V0VGltZVN0YW1wKCkpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQuZXF1YWxzKHBsYWluVGV4dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJwbGFpblRleHQgaGFzaENvZGU6ICIgKyBwbGFpblRleHQuaGFzaENvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigib2xkUGxhaW5UZXh0IGhhc2hDb2RlOiAiICsgb2xkUGxhaW5UZXh0Lmhhc2hDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRpbWUgc3RhbXAgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBub3cgY2hlY2sgaW52YXJpYW50czoKKyAgICAgICAgICAgICAgICBpZiAocGxhaW5UZXh0Lmxlbmd0aCgpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGVuZ3RocyBkb24ndCBtYXRjaCIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgaiA8IGJ1Zi5sZW5ndGgoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChidWYuYXQoaikgIT0gcGxhaW5UZXh0LmNoYXJBdChqKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3RlcnMgZG9uJ3QgbWF0Y2guIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgICAgICAgICAgZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgYnVmLmxlbmd0aCgpOykgeworCisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCAhPSBidWYuY2hhcmFjdGVyU3R5bGVTdGFydChzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzdHlsZSBzdGFydCBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic3RhcnQgPj0gbGltaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjaGFyIGN1cnJlbnQgPSBwbGFpblRleHQuY2hhckF0KHN0YXJ0KTsKKworICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgY29tcCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09ICdwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tcCA9IGVtcHR5QXR0cnM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCA9PSAnYicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAgPSBib2xkQXR0cnM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCA9PSAnaScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAgPSBpdGFsaWNBdHRyczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJBbiBpbnZhbGlkIGNoYXJhY3RlciBzbnVjayBpbiEiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdGFydFN0eWxlID0gYnVmLmNoYXJhY3RlclN0eWxlQXQoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbXAuZXF1YWxzKHN0YXJ0U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgaXMgbm90IGV4cGVjdGVkIHN0eWxlLiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IHN0YXJ0OyBqIDwgbGltaXQ7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYWluVGV4dC5jaGFyQXQoaikgIT0gY3VycmVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgZG9lc24ndCBtYXRjaCBzdHlsZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVBdChqKSAhPSBzdGFydFN0eWxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBzdHlsZSBpbiBydW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChsaW1pdCA8IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYWluVGV4dC5jaGFyQXQobGltaXQpID09IGN1cnJlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgcnVuIGVuZHMgdG9vIHNvb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGFzdCBsaW1pdCBpcyBub3QgYnVmZmVyIGxlbmd0aC4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyB3b24ndCB0cnkgdG8gY29tcHV0ZSBhbmQgY2hlY2sgZGFtYWdlZCByYW5nZTsgIGhvd2V2ZXIsCisgICAgICAgICAgICAgICAgLy8gaWYgbm9uZW1wdHkgaXQgc2hvdWxkIGFsd2F5cyBiZSB3aXRoaW4gdGV4dAorICAgICAgICAgICAgICAgIGludCBkYW1hZ2VTdGFydCA9IGJ1Zi5kYW1hZ2VkUmFuZ2VTdGFydCgpOworICAgICAgICAgICAgICAgIGludCBkYW1hZ2VMaW1pdCA9IGJ1Zi5kYW1hZ2VkUmFuZ2VMaW1pdCgpOworICAgICAgICAgICAgICAgIGlmIChkYW1hZ2VTdGFydCA9PSBJbnRlZ2VyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGFtYWdlTGltaXQgIT0gSW50ZWdlci5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIGVtcHR5IGludGVydmFsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkYW1hZ2VTdGFydCA+IGRhbWFnZUxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlIHJhbmdlIGludmVydGVkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRhbWFnZVN0YXJ0IDwgMCB8fCBkYW1hZ2VMaW1pdCA+IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZSByYW5nZSBlbmRwb2ludCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgdGVzdEl0ZXJhdGlvbiA9IE5PVF9JTl9NT05LRVlfVEVTVDsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gYWxsQ2FzZXNFeGVjdXRlZCA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGluZGV4PTA7IGluZGV4IDwgTlVNX0NBU0VTOyBpbmRleCsrKSB7CisgICAgICAgICAgICBhbGxDYXNlc0V4ZWN1dGVkICY9IGNhc2VzRXhlY3V0ZWRbaW5kZXhdOworICAgICAgICAgICAgaWYgKGNhc2VzRXhlY3V0ZWRbaW5kZXhdID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkNhc2UgIiArIGluZGV4ICsgIiBub3QgZXhlY3V0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy9pZiAoYWxsQ2FzZXNFeGVjdXRlZCkgeworICAgICAgICAvLyAgICBsb2dsbigiQWxsIGNhc2VzIGV4ZWN1dGVkLiIpOworICAgICAgICAvL30KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0U3RyZWFtaW5nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0U3RyZWFtaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTA1NzczOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0TVRleHRTdHJlYW1pbmcuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3RhbmRhcmRUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitwdWJsaWMgY2xhc3MgVGVzdE1UZXh0U3RyZWFtaW5nIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdE1UZXh0U3RyZWFtaW5nKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0TVRleHRTdHJlYW1pbmcoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBzaW1wbGVUZXN0KCk7CisgICAgICAgIGFsbEF0dHJpYnV0ZXNUZXN0KCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNpbXBsZVRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiSGVsbG8gd29ybGQhIiwgc3R5bGUpOworCisgICAgICAgIHN0cmVhbUFuZENvbXBhcmUodGV4dCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVGVzdE1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllciB7CisKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZktleTsKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZlZhbHVlOworCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgICAgIHJldHVybiBzdHlsZS5hZGRBdHRyaWJ1dGUoZktleSwgZlZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIFRlc3RNb2RpZmllcihPYmplY3Qga2V5LCBPYmplY3QgdmFsdWUpIHsKKworICAgICAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgICAgIGZWYWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFsbEF0dHJpYnV0ZXNUZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoIkhlbGxvIHdvcmxkISIsIHN0eWxlKTsKKworICAgICAgICBpbnQgbGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKKworICAgICAgICBmaW5hbCBib29sZWFuIENIQVJBQ1RFUiA9IHRydWU7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gUEFSQUdSQVBIID0gZmFsc2U7CisKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLzIsIFRleHRBdHRyaWJ1dGUuRkFNSUxZLCAiVGltZXMiLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCBsZW5ndGgvMiwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLldFSUdIVCwgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLzIsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC8yLCBUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCgxMy43ZiksIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIGxlbmd0aC8yLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFRfU1VCLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgvMiwgVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELCBDb2xvci5ibHVlLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgvMiwgVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5ELCBDb2xvci5yZWQsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC0xLCBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsIEJvb2xlYW4uVFJVRSwgQ0hBUkFDVEVSKTsKKworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLCBuZXcgRmxvYXQoNCksIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwgbmV3IEZsb2F0KDYpLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywgbmV3IEZsb2F0KDcpLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwgVGV4dEF0dHJpYnV0ZS5GTFVTSF9UUkFJTElORywgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLCBuZXcgRmxvYXQoOSksIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sIG5ldyBGbG9hdCg5KSwgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgbmV3IFN0YW5kYXJkVGFiUnVsZXIoKSwgUEFSQUdSQVBIKTsKKworICAgICAgICBzdHJlYW1BbmRDb21wYXJlKHRleHQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkU3R5bGUoTVRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworCisgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIgPSBuZXcgVGVzdE1vZGlmaWVyKGtleSwgdmFsdWUpOworCisgICAgICAgIGlmIChjaGFyYWN0ZXIpIHsKKyAgICAgICAgICAgIHRleHQubW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKHN0YXJ0LCBsaW1pdCwgbW9kaWZpZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoc3RhcnQsIGxpbWl0LCBtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzdHJlYW1BbmRDb21wYXJlKE1UZXh0IHRleHQpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnl0ZXNPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb2JqT3V0ID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShieXRlc091dCk7CisgICAgICAgICAgICBvYmpPdXQud3JpdGVPYmplY3QodGV4dCk7CisKKyAgICAgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGJ5dGVzSW4gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlc091dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9iakluID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGJ5dGVzSW4pOworICAgICAgICAgICAgTVRleHQgc3RyZWFtZWRUZXh0ID0gKE1UZXh0KSBvYmpJbi5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBpZiAoIWlzRXF1YWwodGV4dCwgc3RyZWFtZWRUZXh0KSkgeworICAgICAgICAgICAgICAgIGlzRXF1YWwodGV4dCwgc3RyZWFtZWRUZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3RyZWFtZWQgdGV4dCBpcyBub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorLyogICAgICAgIGNhdGNoKE9wdGlvbmFsRGF0YUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfSovCisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIGVycmxuKCJTZXJpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0VxdWFsKE1UZXh0IGxocywgTVRleHQgcmhzKSB7CisKKyAgICAgICAgcmV0dXJuIGxocy5lcXVhbHMocmhzKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RQYXJhZ3JhcGhTdHlsZXMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0UGFyYWdyYXBoU3R5bGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmE1MjRkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0UGFyYWdyYXBoU3R5bGVzLmphdmEKQEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXN0UGFyYWdyYXBoU3R5bGVzIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdFBhcmFncmFwaFN0eWxlcygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkFORF9TRUVEID0gMTIzNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNX1RFU1RTID0gMjUwMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNQYXJhZ3JhcGhCcmVhayhjaGFyIGMpIHsKKworICAgICAgICByZXR1cm4gYyA9PSdcdTIwMjknIHx8IGMgPT0gJ1xuJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgS0VZID0gIktFWSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIFBMQUlOID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEFfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignYScpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIEFfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihBX1NUWUxFKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgQl9TVFlMRSA9IG5ldyBBdHRyaWJ1dGVNYXAoS0VZLCBuZXcgQ2hhcmFjdGVyKCdiJykpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgQl9NT0QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEJfU1RZTEUpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBDX1NUWUxFID0gbmV3IEF0dHJpYnV0ZU1hcChLRVksIG5ldyBDaGFyYWN0ZXIoJ2MnKSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBDX01PRCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoQ19TVFlMRSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIERfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignZCcpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIERfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihEX1NUWUxFKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgRV9TVFlMRSA9IG5ldyBBdHRyaWJ1dGVNYXAoS0VZLCBuZXcgQ2hhcmFjdGVyKCdlJykpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgRV9NT0QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEVfU1RZTEUpOworCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBlYXN5VGVzdHMoKTsKKyAgICAgICAgcmFuZG9tVGVzdCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlYXN5VGVzdHMoKSB7CisKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCJhXG5iXG5jXG5kXG4iLCBQTEFJTik7CisgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRleHQubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQodGV4dCk7CisKKyAgICAgICAgTVRleHQgc3JjID0gbmV3IFN0eWxlZFRleHQoIlhYWFxuWVlZIiwgUExBSU4pOworICAgICAgICBzcmMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHNyYy5sZW5ndGgoKSwgQl9NT0QpOworICAgICAgICB2ZXJpZnlQYXJhZ3JhcGhDb3VudChzcmMpOworCisgICAgICAgIE1UZXh0IHRlbXAgPSB0ZXh0LmV4dHJhY3RXcml0YWJsZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoc3JjKTsKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQodGVtcCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoaSkuZXF1YWxzKHRleHQucGFyYWdyYXBoU3R5bGVBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyYWdyYXBoIHN0eWxlcyBhcmUgd3JvbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzcmMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoaSt0ZXh0Lmxlbmd0aCgpKS5lcXVhbHMoc3JjLnBhcmFncmFwaFN0eWxlQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcmFncmFwaCBzdHlsZXMgYXJlIHdyb25nIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0ZW1wID0gdGV4dC5leHRyYWN0V3JpdGFibGUoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHRlbXAucmVwbGFjZSgwLCAxLCBzcmMsIDAsIHNyYy5sZW5ndGgoKSk7CisgICAgICAgIHZlcmlmeVBhcmFncmFwaENvdW50KHRlbXApOworICAgICAgICBpZiAodGVtcC5wYXJhZ3JhcGhMaW1pdCgwKSAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiUGFyYWdyYXBoIGxpbWl0IGlzIHdyb25nIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoMCkuZXF1YWxzKEJfU1RZTEUpKSB7CisgICAgICAgICAgICBlcnJsbigiRmlyc3Qgc3R5bGUgaXMgd3JvbmciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRlbXAucGFyYWdyYXBoU3R5bGVBdCg0KS5lcXVhbHMoQV9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHlsZSBhZnRlciBpbnNlcnQgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgYXBwZW5kCisgICAgICAgIE1Db25zdFRleHQgbmV3U3JjID0gc3JjLmV4dHJhY3QoNCwgNyk7CisgICAgICAgIE1UZXh0IGluaXRDID0gbmV3IFN0eWxlZFRleHQoImNjY2NjYyIsIFBMQUlOKTsKKyAgICAgICAgaW5pdEMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIGluaXRDLmxlbmd0aCgpLCBDX01PRCk7CisgICAgICAgIGluaXRDLmFwcGVuZChuZXdTcmMpOworICAgICAgICAvLyBub3cgaW5pdEMgc2hvdWxkIGJlIG9uZSBwYXJhZ3JhcGggd2l0aCBzdHlsZSBCCisgICAgICAgIGlmIChpbml0Qy5wYXJhZ3JhcGhMaW1pdCgwKSAhPSBpbml0Qy5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIlNob3VsZCBvbmx5IGJlIG9uZSBwYXJhZ3JhcGgiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5pdEMucGFyYWdyYXBoU3R5bGVBdCgwKSAhPSBpbml0Qy5wYXJhZ3JhcGhTdHlsZUF0KGluaXRDLmxlbmd0aCgpKSkgeworICAgICAgICAgICAgZXJybG4oIlR3byBkaWZmZXJlbnQgcGFyYWdyYXBoIHN0eWxlcyIpOworICAgICAgICB9CisgICAgICAgIGlmICghaW5pdEMucGFyYWdyYXBoU3R5bGVBdChpbml0Qy5sZW5ndGgoKS8yKS5lcXVhbHMoQl9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgcGFyYWdyYXBoIHN0eWxlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiYWFhXG4iLCBQTEFJTik7CisgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRleHQubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgdGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXModGV4dC5sZW5ndGgoKSwgdGV4dC5sZW5ndGgoKSwgQl9NT0QpOworICAgICAgICBpZiAodGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHRleHQubGVuZ3RoKCkpICE9IEJfU1RZTEUpIHsKKyAgICAgICAgICAgIGVycmxuKCIwLWxlbmd0aCBwYXJhZ3JhcGggYXQgZW5kIGhhcyBpbmNvcnJlY3Qgc3R5bGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gcmFuZEludChyYW5kLCAwLCBsaW1pdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHJhbmRJbnQoUmFuZG9tIHJhbmQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJhbmdlIGlzIDAtbGVuZ3RoLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RhcnQgKyAoTWF0aC5hYnMocmFuZC5uZXh0SW50KCkpJShsaW1pdC1zdGFydCkpIDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmFuZG9tVGVzdCgpIHsKKworICAgICAgICBNVGV4dCBub1BhcmFncmFwaCA9IG5ldyBTdHlsZWRUZXh0KCJ6enp6IiwgUExBSU4pOworICAgICAgICBub1BhcmFncmFwaC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgbm9QYXJhZ3JhcGgubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgTVRleHQgdHdvUGFyYWdyYXBocyA9IG5ldyBTdHlsZWRUZXh0KCJhYWFcbmJiYiIsIFBMQUlOKTsKKyAgICAgICAgdHdvUGFyYWdyYXBocy5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgdHdvUGFyYWdyYXBocy5wYXJhZ3JhcGhMaW1pdCgwKSwgQl9NT0QpOworICAgICAgICBNVGV4dCB0aHJlZVBhcmFncmFwaHMgPSBuZXcgU3R5bGVkVGV4dCgiY2NcbmRkXG5lZSIsIFBMQUlOKTsKKyAgICAgICAgdGhyZWVQYXJhZ3JhcGhzLm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCAzLCBDX01PRCk7CisgICAgICAgIHRocmVlUGFyYWdyYXBocy5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMywgNiwgRF9NT0QpOworICAgICAgICB0aHJlZVBhcmFncmFwaHMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDYsIDgsIEVfTU9EKTsKKyAgICAgICAgTVRleHQgdHJhaWxpbmdQMSA9IG5ldyBTdHlsZWRUZXh0KCJoaGhoXG4iLCBQTEFJTik7CisgICAgICAgIHRyYWlsaW5nUDEubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRyYWlsaW5nUDEucGFyYWdyYXBoTGltaXQoMCksIENfTU9EKTsKKyAgICAgICAgTVRleHQgdHJhaWxpbmdQMiA9IG5ldyBTdHlsZWRUZXh0KCJpaWlcbiIsIFBMQUlOKTsKKyAgICAgICAgdHJhaWxpbmdQMi5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgMCwgRF9NT0QpOworICAgICAgICB0cmFpbGluZ1AyLm1vZGlmeVBhcmFncmFwaFN0eWxlcyh0cmFpbGluZ1AyLmxlbmd0aCgpLCB0cmFpbGluZ1AyLmxlbmd0aCgpLCBCX01PRCk7CisKKyAgICAgICAgaWYgKCF0cmFpbGluZ1AyLnBhcmFncmFwaFN0eWxlQXQodHJhaWxpbmdQMi5sZW5ndGgoKS0xKS5lcXVhbHMoRF9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHlsZSBpbmNvcnJlY3QgaW4gdHJhaWxpbmdQMiIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHJhaWxpbmdQMi5wYXJhZ3JhcGhTdHlsZUF0KHRyYWlsaW5nUDIubGVuZ3RoKCkpLmVxdWFscyhCX1NUWUxFKSkgeworICAgICAgICAgICAgZXJybG4oIkVuZGluZyBzdHlsZSBpbmNvcnJlY3QgaW4gdHJhaWxpbmdQMiIpOworICAgICAgICB9CisKKyAgICAgICAgTUNvbnN0VGV4dFtdIHRlc3RzID0geyBub1BhcmFncmFwaCwgdHdvUGFyYWdyYXBocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVlUGFyYWdyYXBocywgdHJhaWxpbmdQMSwgdHJhaWxpbmdQMiB9OworCisgICAgICAgIFJhbmRvbSByYW5kb20gPSBuZXcgUmFuZG9tKFJBTkRfU0VFRCk7CisKKyAgICAgICAgaW50IHN0b3BBdCA9IDQ2NTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBOVU1fVEVTVFM7IGkrKykgeworCisgICAgICAgICAgICAgICAgaW50IHNyY0luZGV4ID0gcmFuZEludChyYW5kb20sIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgaW50IHRhcmdldEluZGV4ID0gcmFuZEludChyYW5kb20sIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgTVRleHQgdGFyZ2V0ID0gbmV3IFN0eWxlZFRleHQodGVzdHNbdGFyZ2V0SW5kZXhdKTsKKyAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHNyYyA9IHRlc3RzW3NyY0luZGV4XTsKKworICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCA9IHJhbmRJbnQocmFuZG9tLCBzcmMubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGludCBzcmNMaW1pdCA9IHJhbmRJbnQocmFuZG9tLCBzcmNTdGFydCwgc3JjLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSByYW5kSW50KHJhbmRvbSwgdGFyZ2V0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSByYW5kSW50KHJhbmRvbSwgc3RhcnQsIHRhcmdldC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RvcEF0ID0gaTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnNlcnRBbmRDaGVjayhzcmMsIHNyY1N0YXJ0LCBzcmNMaW1pdCwgdGFyZ2V0LCBzdGFydCwgbGltaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKGkgPCBOVU1fVEVTVFMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiaXRlcmF0aW9uPSIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbnNlcnRBbmRDaGVjayhNQ29uc3RUZXh0IHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IHRhcmdldCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICAvLyBwLXN0eWxlIGFmdGVyIGluc2VydGlvbgorICAgICAgICBBdHRyaWJ1dGVNYXAgYWZ0ZXI7CisgICAgICAgIGlmIChsaW1pdCA9PSB0YXJnZXQubGVuZ3RoKCkgJiYgc3JjTGltaXQgPiBzcmNTdGFydCkgeworICAgICAgICAgICAgYWZ0ZXIgPSBzcmMucGFyYWdyYXBoU3R5bGVBdChzcmNMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhZnRlciA9IHRhcmdldC5wYXJhZ3JhcGhTdHlsZUF0KGxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZU1hcCBiZWZvcmU7CisgICAgICAgIGJvb2xlYW4gc3JjSGFzUEJyZWFrID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGk9c3JjU3RhcnQ7IGkgPCBzcmNMaW1pdDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayhzcmMuYXQoaSkpKSB7CisgICAgICAgICAgICAgICAgc3JjSGFzUEJyZWFrID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydCA+IDAgJiYgaXNQYXJhZ3JhcGhCcmVhayh0YXJnZXQuYXQoc3RhcnQtMSkpKSB7CisgICAgICAgICAgICBiZWZvcmUgPSB0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChzdGFydC0xKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJlZm9yZSA9IHNyY0hhc1BCcmVhaz8gc3JjLnBhcmFncmFwaFN0eWxlQXQoc3JjU3RhcnQpIDogYWZ0ZXI7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBzdHlsZVByb3BvZ2F0ZWQgPSAhYmVmb3JlLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChNYXRoLm1heCgwLCBzdGFydC0xKSkpOworCisKKyAgICAgICAgdGFyZ2V0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgIHRhcmdldC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgc3JjLCBzcmNTdGFydCwgc3JjTGltaXQpOworICAgICAgICBmaW5hbCBpbnQgZGFtYWdlTGltaXQgPSAoc3RhcnQ9PWxpbWl0ICYmIHNyY1N0YXJ0PT1zcmNMaW1pdCk/CisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLk1JTl9WQUxVRSA6IHN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KTsKKworICAgICAgICBpZiAodGFyZ2V0LmRhbWFnZWRSYW5nZUxpbWl0KCkgIT0gZGFtYWdlTGltaXQpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJsaW1pdDogIiArIGRhbWFnZUxpbWl0ICsgIjsgIHRhcmdldC5saW1pdDogIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kYW1hZ2VkUmFuZ2VMaW1pdCgpKTsKKyAgICAgICAgICAgIGVycmxuKCJEYW1hZ2VkIHJhbmdlIGxpbWl0IGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGRhbWFnZVN0YXJ0ID0gKGRhbWFnZUxpbWl0PT1JbnRlZ2VyLk1JTl9WQUxVRSk/IEludGVnZXIuTUFYX1ZBTFVFIDoKKyAgICAgICAgICAgICAgICAoc3R5bGVQcm9wb2dhdGVkPyB0YXJnZXQucGFyYWdyYXBoU3RhcnQoTWF0aC5tYXgoMCwgc3RhcnQtMSkpIDogc3RhcnQpOworICAgICAgICBpZiAodGFyZ2V0LmRhbWFnZWRSYW5nZVN0YXJ0KCkgPiBkYW1hZ2VTdGFydCkgeworICAgICAgICAgICAgbG9nbG4oInN0YXJ0OiAiICsgZGFtYWdlU3RhcnQgKyAiOyAgdGFyZ2V0LnN0YXJ0OiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmRhbWFnZWRSYW5nZVN0YXJ0KCkpOworICAgICAgICAgICAgZXJybG4oIkRhbWFnZWQgcmFuZ2Ugc3RhcnQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICB2ZXJpZnlQYXJhZ3JhcGhDb3VudCh0YXJnZXQpOworCisgICAgICAgIC8vIGNoZWNrIGVuZHBvaW50cworICAgICAgICBpZiAoIWJlZm9yZS5lcXVhbHModGFyZ2V0LnBhcmFncmFwaFN0eWxlQXQoTWF0aC5tYXgoc3RhcnQtMSwgMCkpKSkgeworICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBwYXJhZ3JhcGggc3R5bGUgYmVmb3JlIG1vZGlmaWVkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuZ3RoRGVsdGEgPSAoc3JjTGltaXQtc3JjU3RhcnQpIC0gKGxpbWl0LXN0YXJ0KTsKKyAgICAgICAgaW50IGluZGV4QWZ0ZXJJbnNlcnQgPSBNYXRoLm1pbih0YXJnZXQubGVuZ3RoKCksIGxpbWl0ICsgbGVuZ3RoRGVsdGEpOworICAgICAgICBpZiAoIWFmdGVyLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChpbmRleEFmdGVySW5zZXJ0KSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgcGFyYWdyYXBoIHN0eWxlIGFmdGVyIG1vZGlmaWVkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3JjSGFzUEJyZWFrKSB7CisgICAgICAgICAgICBpbnQgc3RhcnRQID0gdGFyZ2V0LnBhcmFncmFwaExpbWl0KHN0YXJ0KTsKKyAgICAgICAgICAgIGludCBsaW1pdE9mVGVzdCA9IHRhcmdldC5wYXJhZ3JhcGhTdGFydChpbmRleEFmdGVySW5zZXJ0KTsKKworICAgICAgICAgICAgaW50IG9mZnNldCA9IHN0YXJ0IC0gc3JjU3RhcnQ7CisKKyAgICAgICAgICAgIHdoaWxlIChzdGFydFAgPCBsaW1pdE9mVGVzdCkgeworICAgICAgICAgICAgICAgIGludCBsaW1pdFAgPSB0YXJnZXQucGFyYWdyYXBoTGltaXQoc3RhcnRQKTsKKyAgICAgICAgICAgICAgICBpZiAoc3JjLnBhcmFncmFwaExpbWl0KHN0YXJ0UC1vZmZzZXQpICsgb2Zmc2V0ICE9IGxpbWl0UCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIGxpbWl0cyBhcmUgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzcmMucGFyYWdyYXBoU3R5bGVBdChzdGFydFAtb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChzdGFydFApKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIHN0eWxlcyBhcmUgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhcnRQID0gbGltaXRQOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IHN0YXJ0KyhzcmNMaW1pdC1zcmNTdGFydCk7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICghYWZ0ZXIuZXF1YWxzKHRhcmdldC5wYXJhZ3JhcGhTdHlsZUF0KGkpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIHN0eWxlIGNoYW5nZWQgdW5leHBlY3RlZGx5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHZlcmlmeVBhcmFncmFwaENvdW50KE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIGludCBwQ291bnQgPSAwOworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKHRleHRMZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcENvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IHM9MDsgcyA8IHRleHRMZW5ndGg7IHMgPSB0ZXh0LnBhcmFncmFwaExpbWl0KHMpKSB7CisgICAgICAgICAgICAgICAgcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayh0ZXh0LmF0KHRleHRMZW5ndGgtMSkpKSB7CisgICAgICAgICAgICAgICAgcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgc2VwQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB0ZXh0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpc1BhcmFncmFwaEJyZWFrKHRleHQuYXQoaSkpKSB7CisgICAgICAgICAgICAgICAgc2VwQ291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZXBDb3VudCArIDEgIT0gcENvdW50KSB7CisgICAgICAgICAgICBsb2dsbigic2VwQ291bnQ9IiArIHNlcENvdW50ICsgIjsgIHBDb3VudD0iICsgcENvdW50KTsKKyAgICAgICAgICAgIGVycmxuKCJQYXJhZ3JhcGggY291bnQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tFbmRwb2ludChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBib29sZWFuIGVtcHR5RmluYWxQYXJhZ3JhcGg7CisgICAgICAgIGludCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGlmIChsZW5ndGggIT0gMCkgeworICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuYXQobGVuZ3RoLTEpOworICAgICAgICAgICAgZW1wdHlGaW5hbFBhcmFncmFwaCA9IGlzUGFyYWdyYXBoQnJlYWsoY2gpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW1wdHlGaW5hbFBhcmFncmFwaCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHRleHQucGFyYWdyYXBoU3RhcnQobGVuZ3RoKSA9PSBsZW5ndGgpICE9IGVtcHR5RmluYWxQYXJhZ3JhcGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJGaW5hbCBwYXJhZ3JhcGggbGVuZ3RoIGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0FwcENsb3Nlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQXBwQ2xvc2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2JjOWJlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0FwcENsb3Nlci5qYXZhCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHM7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKKworY2xhc3MgQXBwQ2xvc2VyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBpbnQgZkNvdW50ID0gMDsKKworICAgIHByaXZhdGUgV2luZG93QWRhcHRlciBmQWRhcHRlciA9IG5ldyBXaW5kb3dBZGFwdGVyKCkgeworCisgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgLS1mQ291bnQ7CisgICAgICAgICAgICBpZiAoZkNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFdpbmRvdyB3ID0gZS5nZXRXaW5kb3coKTsKKyAgICAgICAgICAgIHcuc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICB3LmRpc3Bvc2UoKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub0ZyYW1lKEZyYW1lIGZyYW1lKSB7CisKKyAgICAgICAgKytmQ291bnQ7CisgICAgICAgIGZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKGZBZGFwdGVyKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9CaWRpRGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQmlkaURlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjI2ZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQmlkaURlbW8uamF2YQpAQCAtMCwwICsxLDgzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuYXd0dWkuVGV4dEZyYW1lOworCitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgQmlkaURlbW8geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBcHBDbG9zZXIgZmdMaXN0ZW5lciA9IG5ldyBBcHBDbG9zZXIoKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzLnJlc291cmNlcy5TYW1wbGUiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBTdHJpbmcgZG9jTmFtZTsKKyAgICAgICAgCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICBkb2NOYW1lID0gImRlZmF1bHQiOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZG9jTmFtZSA9IGFyZ3NbMF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG9wZW5UZXh0KGRvY05hbWUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgb3BlblRleHQoU3RyaW5nIGRvY05hbWUpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKEJVTkRMRV9OQU1FKTsKKworICAgICAgICAgICAgT2JqZWN0IGRvY3VtZW50ID0gYnVuZGxlLmdldE9iamVjdChkb2NOYW1lKyIuc2FtcGxlIik7CisgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkb2N1bWVudCBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIHRleHQgPSBuZXcgU3R5bGVkVGV4dCgoU3RyaW5nKWRvY3VtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgVVJMIHVybCA9IChVUkwpIGRvY3VtZW50OworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIGluID0gbmV3IE9iamVjdElucHV0U3RyZWFtKHVybC5vcGVuU3RyZWFtKCkpOworICAgICAgICAgICAgICAgIHRleHQgPSAoTUNvbnN0VGV4dCkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGJ1bmRsZS5nZXRTdHJpbmcoZG9jTmFtZSsiLm5hbWUiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWFrZUZyYW1lKHRleHQsIG5hbWUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICB0LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBtYWtlRnJhbWUoTUNvbnN0VGV4dCB0ZXh0LCBTdHJpbmcgdGl0bGUpIHsKKworICAgICAgICBUZXh0RnJhbWUgZnJhbWUgPSBuZXcgVGV4dEZyYW1lKHRleHQsIHRpdGxlLCAKKyAgICAgICAgICAgICAgICBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgICAgICBmcmFtZS5zZXRTaXplKDU1MCwgNzAwKTsKKyAgICAgICAgZnJhbWUuc2hvdygpOworICAgICAgICBmZ0xpc3RlbmVyLmxpc3RlblRvRnJhbWUoZnJhbWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0ZpbGVVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvRmlsZVV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFlYWY0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0ZpbGVVdGlscy5qYXZhCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmlvLio7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CisKK3B1YmxpYyBjbGFzcyBGaWxlVXRpbHMgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBQcmVzZW50IHRoZSB1c2VyIHdpdGggYSBmaWxlIGRpYWxvZywgYW5kIHJlcGxhY2UKKyAgICAgKiBkZXN0IHdpdGggdGhlIE1UZXh0IGluIHRoZSBzZWxlY3RlZCBmaWxlLCBhbmQgcmV0dXJuCisgICAgICogdGhlIGZpbGUgb2JqY3QuICBJZiBhbnkgZXJyb3JzIG9jY3VyLCByZXR1cm4gbnVsbCBhbmQKKyAgICAgKiBkbyBub3QgbW9kaWZ5IGRlc3QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBGaWxlIHVzZXJMb2FkTVRleHQoU3RyaW5nIHRpdGxlLCBNVGV4dCBkZXN0LCBGcmFtZSBvd25lcikgeworCisgICAgICAgIEZpbGVEaWFsb2cgZGlhbG9nID0gbmV3IEZpbGVEaWFsb2cob3duZXIsIHRpdGxlLCBGaWxlRGlhbG9nLkxPQUQpOworICAgICAgICBkaWFsb2cuc2hvdygpOworICAgICAgICBTdHJpbmcgZmlsZVN0ciA9IGRpYWxvZy5nZXRGaWxlKCk7CisgICAgICAgIFN0cmluZyBkaXJTdHIgPSBkaWFsb2cuZ2V0RGlyZWN0b3J5KCk7CisKKyAgICAgICAgaWYgKGZpbGVTdHIgIT0gbnVsbCkgeworICAgICAgICAgICAgRmlsZSBydmFsID0gbmV3IEZpbGUoZGlyU3RyLCBmaWxlU3RyKTsKKyAgICAgICAgICAgIE1Db25zdFRleHQgc3JjID0gbG9hZE1UZXh0KHJ2YWwpOworICAgICAgICAgICAgaWYgKHNyYyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZGVzdC5yZXBsYWNlQWxsKHNyYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ2YWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0IHNlcmlhbGl6ZWQgaW4gdGhlIGdpdmVuIGZpbGUuCisgICAgICogSW4gY2FzZSBvZiBhbiBlcnJvciByZXR1cm4gbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE1Db25zdFRleHQgbG9hZE1UZXh0KEZpbGUgZmlsZSkgeworCisgICAgICAgIFRocm93YWJsZSBlcnJvcjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGluU3RyZWFtID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9ialN0cmVhbSA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShpblN0cmVhbSk7CisKKyAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IChNQ29uc3RUZXh0KSBvYmpTdHJlYW0ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgaW5TdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb21wdCB0aGUgdXNlciBmb3IgdGhlIGZpbGUgaWYgZmlsZSBpcyBudWxsLiAgVGhlbiBzYXZlIHRoZQorICAgICAqIHRleHQgaW4gdGhlIGZpbGUsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEZpbGUgdXNlclNhdmVNVGV4dChGaWxlIGZpbGUsIFN0cmluZyB0aXRsZSwgTUNvbnN0VGV4dCB0ZXh0LCBGcmFtZSBvd25lcikgeworCisgICAgICAgIGlmIChmaWxlID09IG51bGwpIHsKKworICAgICAgICAgICAgRmlsZURpYWxvZyBkaWFsb2cgPSBuZXcgRmlsZURpYWxvZyhvd25lciwgdGl0bGUsIEZpbGVEaWFsb2cuU0FWRSk7CisgICAgICAgICAgICBkaWFsb2cuc2hvdygpOworICAgICAgICAgICAgU3RyaW5nIGZpbGVTdHIgPSBkaWFsb2cuZ2V0RmlsZSgpOworICAgICAgICAgICAgU3RyaW5nIGRpclN0ciA9IGRpYWxvZy5nZXREaXJlY3RvcnkoKTsKKworICAgICAgICAgICAgaWYgKGZpbGVTdHIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZpbGUgPSBuZXcgRmlsZShkaXJTdHIsIGZpbGVTdHIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGZpbGUgIT0gbnVsbCkgeworCisgICAgICAgICAgICBzYXZlTVRleHQoZmlsZSwgdGV4dCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmlsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2F2ZU1UZXh0KEZpbGUgZmlsZSwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShvdXRTdHJlYW0pOworCisgICAgICAgICAgICBvYmpTdHJlYW0ud3JpdGVPYmplY3QodGV4dCk7CisgICAgICAgICAgICBvdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9NVGV4dFRvU3RyaW5nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9NVGV4dFRvU3RyaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2UwOWQzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL01UZXh0VG9TdHJpbmcuamF2YQpAQCAtMCwwICsxLDgyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBNVGV4dFRvU3RyaW5nIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB3cml0ZU1UZXh0QXNTdHJpbmcoYXJnc1swXSwgYXJnc1sxXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6IE1UZXh0VG9TdHJpbmcgaW5GaWxlIG91dEZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbkZpbGUgbXVzdCBiZSBhIHNlcmlhbGl6ZWQgTUNvbnN0VGV4dCIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9uIGV4aXQsIG91dEZpbGUgd2lsbCBiZSBhIHNlcmlhbGl6ZWQgU3RyaW5nICIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5GaWxlIGFuZCBvdXRGaWxlIG11c3Qgbm90IGJlIHRoZSBzYW1lLiIpOworICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVNVGV4dEFzU3RyaW5nKFN0cmluZyBpbkZpbGUsIFN0cmluZyBvdXRGaWxlKSB7CisKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoaW5GaWxlKTsKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gRmlsZVV0aWxzLmxvYWRNVGV4dChmaWxlKTsKKworICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBjaGFyW10gY2ggPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgICAgIHRleHQuZXh0cmFjdENoYXJzKDAsIGNoLmxlbmd0aCwgY2gsIDApOworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoY2gpOworICAgICAgICAgICAgd3JpdGVTdHJpbmcoc3RyLCBvdXRGaWxlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2FuJ3QgcmVhZCBpbkZpbGUuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVTdHJpbmcoU3RyaW5nIHN0cmluZ1RvV3JpdGUsIFN0cmluZyBvdXRGaWxlKSB7CisKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUob3V0RmlsZSk7CisgICAgICAgIFRocm93YWJsZSBlcnJvciA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE91dHB1dFN0cmVhbSBvdXRTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKG91dFN0cmVhbSk7CisKKyAgICAgICAgICAgIG9ialN0cmVhbS53cml0ZU9iamVjdChzdHJpbmdUb1dyaXRlKTsKKyAgICAgICAgICAgIG91dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1N0cmluZ1RvTVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1N0cmluZ1RvTVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjk4NWMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvU3RyaW5nVG9NVGV4dC5qYXZhCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHJpbmdUb01UZXh0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIgfHwgYXJnc1swXS5lcXVhbHMoYXJnc1sxXSkpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gbG9hZFN0cmluZyhuZXcgRmlsZShhcmdzWzBdKSk7CisgICAgICAgICAgICBpZiAoc3RyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgU3RyaW5nIGZyb20gZmlsZSAiICsgYXJnc1swXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dChzdHIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgICAgIEZpbGVVdGlscy5zYXZlTVRleHQobmV3IEZpbGUoYXJnc1sxXSksIHRleHQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB1c2FnZSgpIHsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOiBTdHJpbmdUb01UZXh0IGluRmlsZSBvdXRGaWxlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5GaWxlIG11c3QgYmUgYSBzZXJpYWxpemVkIFN0cmluZyIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9uIGV4aXQsIG91dEZpbGUgd2lsbCBiZSBhIHNlcmlhbGl6ZWQgTVRleHQgIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluRmlsZSBhbmQgb3V0RmlsZSBtdXN0IG5vdCBiZSB0aGUgc2FtZS4iKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbG9hZFN0cmluZyhGaWxlIGZpbGUpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3I7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBpblN0cmVhbSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5TdHJlYW0pOworCisgICAgICAgICAgICBTdHJpbmcgc3RyID0gKFN0cmluZykgb2JqU3RyZWFtLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIGluU3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm4gc3RyOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9UZXN0TVRleHRUb1N0cmluZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvVGVzdE1UZXh0VG9TdHJpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYWJhNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvVGVzdE1UZXh0VG9TdHJpbmcuamF2YQpAQCAtMCwwICsxLDc1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgamF2YS5pby5GaWxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdE1UZXh0VG9TdHJpbmcgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIgfHwgYXJnc1swXS5lcXVhbHMoYXJnc1sxXSkpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSB0ZXN0TVRleHRUb1N0cmluZyhhcmdzWzBdLCBhcmdzWzFdKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdWNjZXNzPyAiUEFTU0VEIiA6ICJGQUlMRUQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVc2FnZTogVGVzdE1UZXh0VG9TdHJpbmcgbXRleHRGaWxlIHN0cmluZ0ZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb21wYXJlcyB0aGUgY2hhcmFjdGVycyBpbiBtdGV4dEZpbGUgdG8gdGhlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIGluIHN0cmluZ0ZpbGUuIik7CisgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiB0ZXN0TVRleHRUb1N0cmluZyhTdHJpbmcgbXRleHRGaWxlLCBTdHJpbmcgc3RyaW5nRmlsZSkgeworCisgICAgICAgIGJvb2xlYW4gc3VjY2VzcyA9IGZhbHNlOworCisgICAgICAgIEZpbGUgbXRleHQgPSBuZXcgRmlsZShtdGV4dEZpbGUpOworICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBGaWxlVXRpbHMubG9hZE1UZXh0KG10ZXh0KTsKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IFN0cmluZ1RvTVRleHQubG9hZFN0cmluZyhuZXcgRmlsZShzdHJpbmdGaWxlKSk7CisgICAgICAgICAgICBpZiAoc3RyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gY29tcGFyZU1UZXh0VG9TdHJpbmcodGV4dCwgc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ291bGRuJ3QgbG9hZCBTdHJpbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGxvYWQgTVRleHQuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29tcGFyZU1UZXh0VG9TdHJpbmcoTUNvbnN0VGV4dCB0ZXh0LCBTdHJpbmcgc3RyKSB7CisKKyAgICAgICAgaWYgKHRleHQubGVuZ3RoKCkgIT0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT1zdHIubGVuZ3RoKCktMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0ZXh0LmF0KGkpICE9IHN0ci5jaGFyQXQoaSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy9TYW1wbGUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy9TYW1wbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZTJmZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvcmVzb3VyY2VzL1NhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMjYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTYW1wbGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIAorICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworCisgICAgICAgIC8qT2JqZWN0IHNhbXBsZSA9Ki8gdGhpcy5nZXRDbGFzcygpLmdldFJlc291cmNlKCJoYWdhbiIpOworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJkZWZhdWx0LnNhbXBsZSIsIHRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZSgidW5pY29kZS5oZWJyZXcucmVkIikgfSwKKyAgICAgICAgICAgIHsgImRlZmF1bHQubmFtZSIsICJXaGF0IGlzIFVuaWNvZGUgLSBIZWJyZXciIH0sCisgICAgICAgICAgICB7ICJhcmFiaWMuc2FtcGxlIiwgdGhpcy5nZXRDbGFzcygpLmdldFJlc291cmNlKCJ1bmljb2RlLmFyYWJpYy5yZWQiKSB9LAorICAgICAgICAgICAgeyAiYXJhYmljLm5hbWUiLCAiV2hhdCBpcyBVbmljb2RlIC0gQXJhYmljIiB9LAorICAgICAgICAgICAgeyAiamFwYW5lc2Uuc2FtcGxlIiwgIlx1NmNlODogezF9IFx1MzA2ZVx1MzBlMVx1MzBiZFx1MzBjM1x1MzBjOSB7MH0gXHUzMDZmXHU2M2E4XHU1OTY4XHUzMDU1XHUzMDhjXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyIiB9LAorICAgICAgICAgICAgeyAiamFwYW5lc2UubmFtZSIsICJKYXBhbmVzZSBNZXNzYWdlIiB9LAorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy91bmljb2RlLmFyYWJpYy5yZWQgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5hcmFiaWMucmVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZDA3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5hcmFiaWMucmVkCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy91bmljb2RlLmhlYnJldy5yZWQgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5oZWJyZXcucmVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDdmNjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5oZWJyZXcucmVkCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQXN5bmNGb3JtYXR0ZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQXN5bmNGb3JtYXR0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODFiNzA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9Bc3luY0Zvcm1hdHRlci5qYXZhCkBAIC0wLDAgKzEsMjA1MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCisvLyBSZXZpc2lvbjogNzAgMS4zOCByaWNodGV4dC9Bc3luY0Zvcm1hdHRlci5qYXZhLCByaWNodGV4dCwgcmljaHRleHQKKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEQ29udmVyc2lvbjsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CitpbXBvcnQgamF2YS5hd3QuZm9udC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuRm9udFJlbmRlckNvbnRleHQ7CitKREsxMUlNUE9SVFMqLworCisvKgorICAgIENoYW5nZSBoaXN0b3J5OgorCisgICAgNy8yNS85NiAtCisKKyAgICA4LzE1Lzk2CisgICAgICAgIEZpeGVkIGJ1ZyBpbiB0ZXh0T2Zmc2V0VG9Qb2ludCAoZlBpeEhlaWdodCB3YXNuJ3QgYWRkZWQgdG8gbmVnYXRpdmUgaGVpZ2h0cykuIHtqYnJ9CisKKyAgICA4LzE5Lzk2CisgICAgICAgIFJlbW92ZWQgcmVmZXJlbmNlcyB0byBKdXN0aWZpY2F0aW9uU3R5bGUgY29uc3RhbnRzLCBhbmQgbW92ZWQgdGhlbSBpbnRvIE1Gb3JtYXR0ZXIge3NmYn0KKworICAgIDgvMjMvOTYKKyAgICAgICAgTW9kaWZpZWQgZmluZExpbmVBdCBhbmQgZ2V0TGluZUNvbnRhaW5pbmcgLSBhZGRlZCBvcHRpbWl6YXRpb24gaW4gc2VhcmNoIGxvb3AuICBBbHNvLAorICAgICAgICAgICAgdGhleSB3ZXJlIGZhaWxpbmcgd2hlbiBmTFRQb3NFbmQrMSA9PSBmTFROZWdTdGFydC4gIEZpeGVkLgorCisgICAgOC8yNi85NgorICAgICAgICBNb3ZlZCBGb3JtYXREYWVtb24gc3R1ZmYgaW50byB0aGlzIGNsYXNzLgorCisgICAgOS8xMS85NgorICAgICAgICBTaG9ydGVuZWQgbGluZSByZXR1cm5lZCBmcm9tIHRleHRPZmZzZXRUb1BvaW50IGJ5IDEgcGl4ZWwKKworICAgIDkvMjMvOTYKKyAgICAgICAgdGV4dE9mZnNldFRvUG9pbnQgbGluZSBsZW5ndGggcmVzdG9yZWQgKHNlZSBhYm92ZSkuICBkcmF3VGV4dCgpIG5vdyBkcmF3cyBvbmx5IGxpbmVzCisgICAgICAgIHdoaWNoIGZhbGwgaW4gcmVjdGFuZ2xlIHBhcmFtLgorCisgICAgOS8yNi85NgorICAgICAgICB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lIGlzIHVzZWQgZm9yIGNhcmV0IHBvc2l0aW9uaW5nCisKKyAgICAxMC80Lzk2CisgICAgICAgIEFkZGVkIHN0YXRpYyBUZXh0Qm94IG1ldGhvZC4KKworICAgIDEwLzgvOTYKKyAgICAgICAgTGluZSAxMzAwIC0gbGVzcyB0aGFuIGNoYW5nZWQgdG8gbGVzcyB0aGFuIG9yIGVxdWFsIGluIHRleHRPZmZzZXRUb1BvaW50LiAgV2F0Y2ggZm9yCisgICAgICAgICAgICBoYW5ncyBpbiBmb3JtYXRUZXh0LgorCisgICAgMTAvOS85NgorICAgICAgICBDaGFuZ2VkIHN5bmMuIG1vZGVsLiAgZkZvcm1hdEluQmFja2dyb3VuZCBpcyB1c2VkIHRvIHN0YXJ0L3N0b3AgYmcgZm9ybWF0dGluZworCisgICAgMTAvMTcvOTYKKyAgICAgICAgQWRkZWQgbmV3IGZsYWdzOiAgZkxpbmVJbmMsIGZGaWxsSW5jIGZvciBiaWRpIHN1cHBvcnQuICB1cGRhdGVGb3JtYXQsIHBvaW50VG9UZXh0T2Zmc2V0LCBnZXRCb3VuZGluZ1JlY3QsCisgICAgICAgIGFuZCBmaW5kTmV3SW5zZXJ0aW9uT2Zmc2V0IHNob3VsZCBub3cgZnVuY3Rpb24gY29ycmVjdGx5IGZvciBub24tUm9tYW4gZG9jdW1lbnRzLiAgTm90aGluZyBlbHNlIGhhcyBiZWVuCisgICAgICAgIG1vZGlmaWVkIHRvIHN1cHBvcnQgaW50bCB0ZXh0LgorCisgICAgMTAvMjEvOTYKKyAgICAgICAgUHVzaGVkIHBhcmFncmFwaCBmb3JtYXR0aW5nIGFuZCBjYXJldCBwb3NpdGlvbmluZyBpbnRvIExpbmVMYXlvdXQuICBJbiBwcm9jZXNzIG9mIHB1c2hpbmcKKyAgICAgICAgaGlnaGxpZ2h0aW5nIGludG8gTGluZUxheW91dC4KKworICAgIDEwLzI0Lzk2CisgICAgICAgIE5vdyBnZXR0aW5nIHBhcmFncmFwaCBzdHlsZXMgZnJvbSBwYXJhZ3JhcGggYnVmZmVyLgorCisgICAgNy83Lzk3CisgICAgICAgIFVwLWFycm93IGRvZXNuJ3QgbW92ZSB0byBiZWdpbm5pbmcgb2YgdGV4dCBpZiB5b3UncmUgb24gdGhlIGZpcnN0IGxpbmUuCisKKyAgICA3LzEvOTgKKyAgICAgICAgTm8gbG9uZ2VyIGludGVyc2VjdGluZyBkYW1hZ2VkIHJlY3Qgd2l0aCB2aWV3IHJlY3QgaW4gdXBkYXRlRm9ybWF0LgorKi8KKworLyoqCisqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBNRm9ybWF0dGVyLiAgSXQgbWFpbnRhaW5zIGEgdGFibGUgb2YKKyogPHR0PkxheW91dEluZm88L3R0PiBpbnN0YW5jZXMgd2hpY2ggY29udGFpbiBsYXlvdXQgaW5mb3JtYXRpb24KKyogZm9yIGVhY2ggbGluZSBpbiB0aGUgdGV4dC4gIFRoaXMgY2xhc3MgZm9ybWF0cyBsaW5lcyBvbiBkZW1hbmQsCisqIGFuZCBjcmVhdGVzIGEgbG93LXByaW9yaXR5IHRocmVhZCB0byBmb3JtYXQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4KKyogTm90ZSB0aGF0LCBhdCB0aW1lcywgc29tZSB0ZXh0IG1heSBub3QgaGF2ZSBiZWVuIGZvcm1hdHRlZCwgZXNwZWNpYWxseQorKiBpZiB0aGUgdGV4dCBpcyBsYXJnZS4KKyogPHA+CisqIFRoZSBsaW5lIHRhYmxlIGlzIGFuIGFycmF5IG9mIDx0dD5MYXlvdXRJbmZvPC90dD4gb2JqZWN0cywgd2hpY2ggZXhwYW5kcyBhcyBuZWVkZWQgdG8gaG9sZAorKiBhbGwgY29tcHV0ZWQgbGluZXMgaW4gdGhlIHRleHQuICBUaGUgbGluZSB0YWJsZSBjb25zaXN0cyBvZiB0aHJlZQorKiByZWdpb25zOiAgYSAicG9zaXRpdmUiIHJlZ2lvbiwgYSAiZ2FwLCIgYW5kIGEgIm5lZ2F0aXZlIiByZWdpb24uCisqIEluIHRoZSBwb3NpdGl2ZSByZWdpb24sIGNoYXJhY3RlciBhbmQgZ3JhcGhpY3Mgb2Zmc2V0cyBhcmUgcG9zaXRpdmUKKyogaW50ZWdlcnMsIGNvbXB1dGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCAvIGRpc3BsYXkuICBJbiB0aGUKKyogZ2FwLCBsaW5lIHRhYmxlIGVudHJpZXMgYXJlIG51bGwuICBOZXcgbGluZXMgbWF5IGJlIGluc2VydGVkIGludG8gdGhlIGdhcC4KKyogSW4gdGhlIG5lZ2F0aXZlIHJlZ2lvbiwgY2hhcmFjdGVyIGFuZCBncmFwaGljcyBvZmZzZXRzIGFyZSBuZWdhdGl2ZTsKKyogdGhlaXIgYWJzb2x1dGUgdmFsdWVzIGluZGljYXRlIGRpc3RhbmNlcyBmcm9tIHRoZSBlbmQgb2YgdGhlIHRleHQgLyBkaXNwbGF5LgorKiBUaGUgPHR0PmZMVFBvc0VuZDwvdHQ+IG1lbWJlciBnaXZlcyB0aGUgaW5kZXggaW4gdGhlIGxpbmUgdGFibGUgb2YgdGhlCisqIGxhc3QgcG9zaXRpdmUgZW50cnkuICBUaGUgPHR0PmZMVE5lZ1N0YXJ0PC90dD4gZ2l2ZXMgdGhlIGluZGV4IG9mIGZpcnN0CisqIG5lZ2F0aXZlIGVudHJ5LiAgSWYgdGhlcmUgYXJlIG5vIG5lZ2F0aXZlIGVudHJpZXMsIDx0dD5mTFROZWdTdGFydDwvdHQ+IGlzCisqIGVxdWFsIHRvIDx0dD5mTFRTaXplPC90dD4sIHRoZSBzaXplIG9mIHRoZSBsaW5lIHRhYmxlLgorKiA8cD4KKyogQ2hhbmdlcyB0byB0aGUgbGluZSB0YWJsZSBvY2N1ciBvbmx5IGluIHRoZSA8dHQ+Zm9ybWF0VGV4dCgpPC90dD4gbWV0aG9kLgorKiBUaGlzIG1ldGhvZCBjYWxscyA8dHQ+TGluZUxheW91dC5sYXlvdXQoKTwvdHQ+IGZvciBlYWNoIGxpbmUgdG8gZm9ybWF0LgorKgorKiBAYXV0aG9yIEpvaG4gUmFsZXkKKyoKKyogQHNlZSBNRm9ybWF0dGVyCisqIEBzZWUgTGluZUxheW91dAorKiBAc2VlIExheW91dENvbnRleHQKKyogQHNlZSBMYXlvdXRJbmZvCisqLworCitmaW5hbCBjbGFzcyBBc3luY0Zvcm1hdHRlciBleHRlbmRzIE1Gb3JtYXR0ZXIgaW1wbGVtZW50cyBSdW5uYWJsZQoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgKiBUZXh0IHRvIGZvcm1hdC4KKyAgICAqLworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKworICAgIC8qKgorICAgICogRGVmYXVsdCB2YWx1ZXMuCisgICAgKi8KKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFZhbHVlczsKKyAgICAKKyAgICAvKioKKyAgICAqIEZvbnQgcmVzb2x2ZXIuCisgICAgKi8KKyAgICBwcml2YXRlIEZvbnRSZXNvbHZlciBmRm9udFJlc29sdmVyOworICAgIAorICAgIC8qKgorICAgICogRGVmYXVsdCBjaGFyYWN0ZXIgbWV0cmljIC0gdXNlZCB0byBzZXQgaGVpZ2h0IG9mIGVtcHR5IHBhcmFncmFwaHMKKyAgICAqLworICAgIHByaXZhdGUgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyBmRGVmYXVsdENoYXJNZXRyaWM7CisgICAgCisgICAgLyoqCisgICAgKiBMZW5ndGggdG8gd2hpY2ggbGluZXMgYXJlIGZvcm1hdHRlZC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZMaW5lRGltOworCisgICAgLyoqCisgICAgKiBUYWJsZSBvZiBmb3JtYXR0ZWQgbGluZXMuCisgICAgKi8KKyAgICBwcml2YXRlIExheW91dEluZm8gZkxpbmVUYWJsZVtdOworCisgICAgLyoqCisgICAgKiBTaXplIG9mIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFRTaXplID0gMTA7IC8vIGluaXRpYWwgc2l6ZSBtdXN0IGJlID4gMAorCisgICAgLyoqCisgICAgKiBJbmRleCBvZiBsYXN0IHBvc2l0aXZlIGVudHJ5IGluIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFRQb3NFbmQ7CisKKyAgICAvKioKKyAgICAqIEluZGV4IG9mIGZpcnN0IG5lZ2F0aXZlIGVudHJ5IGluIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFROZWdTdGFydDsKKworICAgIC8qKgorICAgICogTGVuZ3RoIG9mIHRleHQgb24gd2hpY2ggbmVnYXRpdmUgbGluZSBvZmZzZXRzIGFyZSBiYXNlZC4KKyAgICAqIEBzZWUgI2Zvcm1hdFRleHQKKyAgICAqLworICAgIHByaXZhdGUgaW50IGZMVEN1clRleHRMZW47CisKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiBmb3JtYXR0ZWQgdGV4dCBpbiBmaWxsIGRpcmVjdGlvbiwgaW4gcGl4ZWxzLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZlBpeEhlaWdodDsKKworICAgIC8qKgorICAgICogTGVuZ3RoIG9mIGZvcm1hdHRlZCB0ZXh0IGluY2x1ZGluZyBwc2V1ZG9saW5lLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkZ1bGxQaXhIZWlnaHQ7CisKKyAgICBwcml2YXRlIGludCBmTWluWDsKKyAgICBwcml2YXRlIGludCBmTWF4WDsKKworICAgIC8qKgorICAgICogPHR0PnRydWU8L3R0PiBpZiBsaW5lcyBzaG91bGQgYmUgZm9ybWF0dGVkIHRvIGZpdCBsaW5lIGRpbWVuc2lvbi4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmV3JhcDsKKworICAgIC8qKgorICAgICogPHR0PnRydWU8L3R0PiBpZiBjaGFyYWN0ZXJzIHJ1biBob3Jpem9udGFsbHkuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZkhMaW5lID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIDx0dD50cnVlPC90dD4gaWYgY2hhcmFjdGVycyBydW4gZnJvbSBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIG9uIGxpbmUuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZMaW5lSW5jID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIDx0dD50cnVlPC90dD4gaWYgbGluZXMgcnVuIGZyb20gbG93IHRvIGhpZ2ggY29vcmRpbmF0ZXMgd2l0aGluIHBhZ2UuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZGaWxsSW5jID0gdHJ1ZTsKKworICAgIC8qKgorICAgICogVmFsdWUgcmV0dXJuZWQgZnJvbSA8dHQ+ZmluZExpbmVBdCgpPC90dD4KKyAgICAqIGlmIHBpeGVsIGhlaWdodCBwcmVjZWRlcyB0b3Btb3N0IGxpbmUuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0JlZm9yZUZpcnN0TGluZSA9IC0yOworCisgICAgLyoqCisgICAgKiBWYWx1ZSByZXR1cm5lZCBmcm9tIDx0dD5maW5kTGluZUF0KCk8L3R0PiBhbmQgPHR0PmdldExpbmVDb250YWluaW5nKCk8L3R0PgorICAgICogaWYgb2Zmc2V0IC8gcGl4ZWwgaGVpZ2h0IGlzIGFmdGVyIGFsbCBleGlzdGluZyBsaW5lcy4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrQWZ0ZXJMYXN0TGluZSA9IC0xOworCisgICAgLyoqCisgICAgKiBUaHJlYWQgd2hpY2ggaW52b2tlcyBmb3JtYXR0ZXIgaW4gdGhlIGJhY2tncm91bmQuCisgICAgKi8KKyAgICBwcml2YXRlIFRocmVhZCBmRGFlbW9uOworCisgICAgLyoqCisgICAgKiBGb250UmVuZGVyQ29udGV4dCB0byBtZWFzdXJlIHdpdGguICBDdXJyZW50bHkgbm90IHNldHRhYmxlIGFmdGVyCisgICAgKiBjb25zdHJ1Y3Rpb24uCisgICAgKi8KKyAgICBwcml2YXRlIEZvbnRSZW5kZXJDb250ZXh0IGZGb250UmVuZGVyQ29udGV4dDsKKworICAgIC8qKgorICAgICogQ29udHJvbHMgd2hldGhlciBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcgY2FuIHJ1bi4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmQmdGb3JtYXRBbGxvd2VkID0gZmFsc2U7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZWQgbGluZSBicmVhayBvYmplY3QuCisgICAgKi8KKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkxpbmVCcmVhayA9IG51bGw7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZWQgTGluZUJyZWFrTWVhc3VyZXIuCisgICAgKi8KKyAgICBwcml2YXRlIExpbmVCcmVha01lYXN1cmVyIGZDYWNoZWRNZWFzdXJlciA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgZkNhY2hlZE1lYXN1cmVyU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkNhY2hlZE1lYXN1cmVyTGltaXQ7CisgICAgCisgICAgLy8gU29tZSBKREsncyAoU3VuJ3MgMS4yLjIpIHRocm93IGV4Y2VwdGlvbnMgZnJvbSAKKyAgICAvLyBMaW5lQnJlYWtNZWFzdXJlci5pbnNlcnRDaGFyIGFuZCBkZWxldGVDaGFyLiAgVGhpcyBjbGFzcworICAgIC8vIGRldGVjdHMgdGhpcyBjb25kaXRpb24gYW5kIGRvZXNuJ3QgdXNlIHRoZXNlIHR3byBtZXRob2RzCisgICAgLy8gaWYgdGhleSB0aHJvdyBleGNlcHRpb25zLgorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZmdDYWNoZU1lYXN1cmVycyA9IHRydWU7CisgICAgCisgICAgLyoqCisgICAgKiBDdXJyZW50IHRleHQgdGltZSBzdGFtcC4gIFVzZWQgdG8gbWFpbnRhaW4gbW9kaWZpY2F0aW9uIGludmFyaWFudC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZDdXJUaW1lU3RhbXA7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZSBvZiBQYXJhZ3JhcGhSZW5kZXJlcnMuCisgICAgKi8KKyAgICBwcml2YXRlIEhhc2h0YWJsZSBmUmVuZGVyZXJDYWNoZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAKKyAgICAvKioKKyAgICAqIERyYXcgdGV4dCBpbnNpZGUgYSByZWN0YW5nbGUuIERvZXMgbm90IGNhY2hlIGFueSBmb3JtYXR0aW5nIGluZm9ybWF0aW9uLgorICAgICogVGhpcyBpcyBjb252ZW5pZW50IGZvciBzbWFsbCBhbW91bnRzIG9mIHRleHQ7IGNvbXBhcmFibGUgdG8gVEVUZXh0Qm94IG9uIHRoZSBNYWMuCisgICAgKiA8cD4KKyAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGRyYXcKKyAgICAqIEBwYXJhbSBnIEdyYXBoaWNzIG9uIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBkcmF3UmVjdCByZWN0YW5nbGUgaW4gd2hpY2ggdGV4dCB3aWxsIGJlIGRyYXduCisgICAgKiBAcGFyYW0gZmlsbEluYyBpZiB0cnVlLCBsaW5lcyBydW4gZnJvbSBsb3cgdG8gaGlnaCBjb29yZGluYXRlcyBpbiBwYWdlLgorICAgICogQHBhcmFtIGhMaW5lIGlmIHRydWUsIGNoYXJhY3RlcnMgcnVuIGhvcml6b250YWxseSB3aXRoaW4gYSBsaW5lLgorICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzUGFyYWdyYXBoU2VwYXJhdG9yKGNoYXIgY2gpIHsKKworICAgICAgICByZXR1cm4gY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHUyMDI5JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhbiA8dHQ+QXN5bmNGb3JtYXR0ZXI8L3R0Pi4KKyAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGZvcm1hdAorICAgICogQHBhcmFtIGxpbmVCb3VuZCBsZW5ndGggdG8gd2hpY2ggbGluZXMgYXJlIGZvcmFtdHRlZAorICAgICogQHBhcmFtIHdyYXAgPHR0PnRydWU8L3R0PiBpZiB0ZXh0IHNob3VsZCBiZSAibGluZSB3cmFwcGVkIiAoZm9ybWF0dGVkIHRvIGZpdCBkZXN0aW5hdGlvbiBhcmVhKQorICAgICovCisgICAgQXN5bmNGb3JtYXR0ZXIoTUNvbnN0VGV4dCB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JhcCwKKyAgICAgICAgICAgICAgICAgICBHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7CisgICAgICAgIGZGb250UmVzb2x2ZXIgPSBuZXcgRm9udFJlc29sdmVyKGZEZWZhdWx0VmFsdWVzKTsKKyAgICAgICAgCisgICAgICAgIGZMaW5lRGltID0gbGluZUJvdW5kOworICAgICAgICBmV3JhcCA9IHdyYXA7CisgICAgICAgIEdyYXBoaWNzMkQgZzJkID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0R3JhcGhpY3MyRChnKTsKKyAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0ID0gZzJkLmdldEZvbnRSZW5kZXJDb250ZXh0KCk7CisgICAgICAgIAorICAgICAgICBmRGVmYXVsdENoYXJNZXRyaWMgPSBuZXcgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyhmRm9udFJlc29sdmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0KTsKKyAgICAgICAgZkxUQ3VyVGV4dExlbiA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIHJlbW92ZUFsbExpbmVzKCk7CisKKyAgICAgICAgZkRhZW1vbiA9IG5ldyBUaHJlYWQodGhpcyk7CisgICAgICAgIGZEYWVtb24uc3RhcnQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkRlZmF1bHRWYWx1ZXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNoZWNrVGltZVN0YW1wKCkgeworICAgICAgICBTdHJpbmcgYWRtb25pdGlvbiA9ICJQcm9iYWJseSwgeW91IG1vZGlmaWVkICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgdGV4dCBiZWZvcmUgY2FsbGluZyBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKS4iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoZlRleHQuZ2V0VGltZVN0YW1wKCkgIT0gZkN1clRpbWVTdGFtcCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaW1lIHN0YW1wIGlzIG91dCBvZiBzeW5jLiAgIiArIGFkbW9uaXRpb24pOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dC5sZW5ndGgoKSAhPSBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBjaGFuZ2VkIHVuZXhwZWN0ZWRseS4gICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmVGV4dC5sZW5ndGgoKT0iK2ZUZXh0Lmxlbmd0aCgpKyI7ICAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmTFRDdXJUZXh0TGVuPSIrZkxUQ3VyVGV4dExlbisiOyAgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0dGVyPSIrdGhpcysiOyAgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dD0iK2ZUZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogU3BlY2lmeSB3aGV0aGVyIHRvIHdyYXAgbGluZXMgdXNpbmcgdGhlIGxpbmUgZGltZW5zaW9uLgorICAgICogQHBhcmFtIHdyYXAgaWYgPHR0PnRydWU8L3R0PiBsaW5lcyB3aWxsIGJlIHdyYXBwZWQ7IG90aGVyd2lzZSBuZXcgbGluZXMgd2lsbCBvbmx5IGJlCisgICAgKiBzdGFydGVkIHdoZW4gYSBuZXdsaW5lIGlzIGVuY291bnRlcmVkLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHNldFdyYXAoYm9vbGVhbiB3cmFwKQorICAgIHsKKyAgICAgICAgaWYgKHdyYXAgIT0gZldyYXApIHsKKyAgICAgICAgICAgIGZXcmFwID0gd3JhcDsKKyAgICAgICAgICAgIHJlbW92ZUFsbExpbmVzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIGxpbmVzIGFyZSB3cmFwcGVkIHVzaW5nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyAgICAqIEBzZWUgI3NldFdyYXAKKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiB3cmFwKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmV3JhcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNwZWNpZnkgdGhlIGxpbmVCb3VuZCBpbiBwaXhlbHMuICBJZiBsaW5lIHdyYXBwaW5nIGlzIG9uLCBsaW5lcworICAgICogd2lsbCBiZSB3cmFwcGVkIHRvIHRoaXMgdmFsdWUuCisgICAgKiA8cD4KKyAgICAqCisgICAgKiBAcGFyYW0gbGluZUJvdW5kIHRoZSBkaXN0YW5jZSwgaW4gcGl4ZWxzLCB1c2VkIHRvIHdyYXAgbGluZXMuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc2V0TGluZUJvdW5kKGludCBsaW5lQm91bmQpCisgICAgeworICAgICAgICBpZiAoZkxpbmVEaW0gIT0gbGluZUJvdW5kKSB7CisgICAgICAgICAgICBmTGluZURpbSA9IGxpbmVCb3VuZDsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZldyYXApIHsKKyAgICAgICAgICAgICAgICByZW1vdmVBbGxMaW5lcygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBwaXhlbHMgYWxvbmcgdGhlIGxpbmUgZGltZW5zaW9uLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUJvdW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTGluZURpbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIGNoYXJhY3RlcnMgcnVuIGZyb20gbG93IHRvIGhpZ2ggY29vcmRpbmF0ZXMgb24gbGluZS4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBsaW5lSW5jKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTGluZUluYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIGxpbmVzIHJ1biBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIG9uIHBhZ2UuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZmlsbEluYygpCisgICAgeworICAgICAgICByZXR1cm4gZkZpbGxJbmM7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZW1vdmUgYWxsIGxpbmVzIGluIHRoZSBsaW5lIHRhYmxlLiAgVXNlZCBhZnRlciBhbiBvcGVyYXRpb24gdGhhdAorICAgICogaW52YWxpZGF0ZXMgYWxsIGV4aXN0aW5nIGxpbmVzLCBzdWNoIGFzIGNoYW5naW5nIGxpbmUgd3JhcHBpbmcgb3IgdGhlCisgICAgKiBsaW5lIGRpbS4KKyAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgcmVtb3ZlQWxsTGluZXMoKQorICAgIHsKKyAgICAgICAgZkN1clRpbWVTdGFtcCA9IGZUZXh0LmdldFRpbWVTdGFtcCgpOworICAgICAgICBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKworICAgICAgICBmTWluWCA9IDA7CisgICAgICAgIGZNYXhYID0gZkxpbmVEaW07CisgICAgICAgIAorICAgICAgICBmTGluZVRhYmxlID0gbmV3IExheW91dEluZm9bZkxUU2l6ZV07IC8vIGZMVFNpemUgbXVzdCBiZSA+IDAKKyAgICAgICAgZkxUTmVnU3RhcnQgPSBmTFRTaXplOworICAgICAgICBmTFRQb3NFbmQgPSAwOworCisgICAgICAgIGZMaW5lVGFibGVbMF0gPSBwc2V1ZG9MaW5lSW5mbyhudWxsLCAwKTsKKworICAgICAgICBmUGl4SGVpZ2h0ID0gZkxpbmVUYWJsZVswXS5nZXRIZWlnaHQoKTsgLy8gPz8/IG9yIHNob3VsZCBpdCBiZSB6ZXJvPworICAgICAgICBmRnVsbFBpeEhlaWdodCA9IGZQaXhIZWlnaHQ7CisKKyAgICAgICAgLy8gZm9ybWF0IGF0IGxlYXN0IG9uZSBsaW5lOgorICAgICAgICBmb3JtYXRUb0hlaWdodChmUGl4SGVpZ2h0ICsgMSk7CisKKyAgICAgICAgZW5hYmxlQkdGb3JtYXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIHRoZSBsYXlvdXQgaW5mbyB3aXRoIGluZm9ybWF0aW9uIGFwcHJvcHJpYXRlIHRvIHRoZSBwc2V1ZG9saW5lLgorICAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIExheW91dEluZm8gcHNldWRvTGluZUluZm8oTGF5b3V0SW5mbyBpbmZvLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0ID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChmTFRDdXJUZXh0TGVuKTsgLy8gPz8/IGlmIHRleHQgaXMgZW1wdHkgb3IgdGhpcyBpcyB0aGUgZW5kIG9mIHRoZSB0ZXh0LCB3aGF0IGhhcHBlbnM/CisgICAgICAgIFBhcmFncmFwaFJlbmRlcmVyIHJlbmRlcmVyID0gZ2V0UmVuZGVyZXJGb3Ioc3QpOworICAgICAgICBpbmZvID0gcmVuZGVyZXIubGF5b3V0KGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExpbmVCcmVha01lYXN1cmVyKW51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0pOworCisgICAgICAgIHJldHVybiBpbmZvOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGFzdCB2YWxpZCBsaW5lIGluIHRoZSBsaW5lIHRhYmxlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGFzdExpbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChmTFROZWdTdGFydCA9PSBmTFRTaXplKSA/IGZMVFBvc0VuZCA6IGZMVFNpemUgLSAxOworICAgIH0KKworICAgIC8qKgorICAgICogU2hpZnQgbGluZSB0YWJsZSBzdWNoIHRoYXQgPHR0Pmxhc3RQb3M8L3R0PiBpcyB0aGUgbGFzdCBwb3NpdGl2ZQorICAgICogZW50cnkgaW4gdGhlIHRhYmxlLiA8Yj5OT1RFOiA8dHQ+bGFzdFBvczwvdHQ+IG11c3QgYmUgYSB2YWxpZCBsaW5lITwvYj4KKyAgICAqIDxwPgorICAgICogQHBhcmFtIGxhc3RQb3MgdGhlIGluZGV4IG9mIHRoZSBsaW5lIHdoaWNoIHdpbGwgYmVjb21lIHRoZSBsYXN0IHBvc2l0aXZlCisgICAgKiBlbnRyeSBpbiB0aGUgbGluZSB0YWJsZQorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNoaWZ0VGFibGVUbyhpbnQgbGFzdFBvcykKKyAgICB7CisgICAgICAgIExheW91dEluZm8gbGk7CisKKyAgICAgICAgd2hpbGUgKGxhc3RQb3MgPCBmTFRQb3NFbmQpICAgIHsgLy8gc2hpZnQgKydzIHRvIC0ncworICAgICAgICAgICAgbGkgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF07CisgICAgICAgICAgICBmTGluZVRhYmxlW2ZMVFBvc0VuZC0tXSA9IG51bGw7CisKKyAgICAgICAgICAgIGxpLm1ha2VSZWxhdGl2ZVRvRW5kKGZMVEN1clRleHRMZW4sIGZQaXhIZWlnaHQpOworCisgICAgICAgICAgICBmTGluZVRhYmxlWy0tZkxUTmVnU3RhcnRdID0gbGk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAobGFzdFBvcyA+PSBmTFROZWdTdGFydCkgeyAvLyBzaGlmdCAtJ3MgdG8gKydzCisgICAgICAgICAgICBsaSA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdOworICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFROZWdTdGFydCsrXSA9ICAgIG51bGw7CisKKyAgICAgICAgICAgIGxpLm1ha2VSZWxhdGl2ZVRvQmVnaW5uaW5nKGZMVEN1clRleHRMZW4sIGZQaXhIZWlnaHQpOworCisgICAgICAgICAgICBmTGluZVRhYmxlWysrZkxUUG9zRW5kXSAgICA9IGxpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBJbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgbGluZSB0YWJsZS4KKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBleHBhbmRMaW5lVGFibGUoKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBqdXN0IGRvdWJsZXMgdGhlIHNpemUgb2YgdGhlIGxpbmUgdGFibGUuCisKKyAgICAgICAgTGF5b3V0SW5mbyBuZXdMaW5lVGFibGVbXSA9IG5ldyBMYXlvdXRJbmZvW2ZMaW5lVGFibGUubGVuZ3RoICogMl07CisgICAgICAgIGludCBuZXdOZWdTdGFydCA9IG5ld0xpbmVUYWJsZS5sZW5ndGggLSAoZkxpbmVUYWJsZS5sZW5ndGggLSBmTFROZWdTdGFydCk7CisKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmTGluZVRhYmxlLCAwLCBuZXdMaW5lVGFibGUsIDAsIGZMVFBvc0VuZCArIDEpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZMaW5lVGFibGUsIGZMVE5lZ1N0YXJ0LCBuZXdMaW5lVGFibGUsIG5ld05lZ1N0YXJ0LCBmTFRTaXplIC0gZkxUTmVnU3RhcnQpOworCisgICAgICAgIGZMVE5lZ1N0YXJ0ID0gbmV3TmVnU3RhcnQ7CisgICAgICAgIGZMVFNpemUgPSBuZXdMaW5lVGFibGUubGVuZ3RoOworICAgICAgICBmTGluZVRhYmxlID0gbmV3TGluZVRhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBwaXhlbCBwb3NpdGlvbiA8dHQ+ZmlsbENvb3JkPC90dD4uCisgICAgKiBJZiBmaWxsQ29vcmQgZXhjZWVkcyB0aGUgYm90dG9tIG9mIHRoZSB0ZXh0LCByZXR1cm4ga0FmdGVyTGFzdExpbmUuCisgICAgKiBJZiBmaWxsQ29vcmQgaXMgbGVzcyB0aGFuIHRoZSB0b3Agb2YgdGhlIHRleHQsIHJldHVybiBrQmVmb3JlRmlyc3RMaW5lLgorICAgICogPHA+CisgICAgKiBAcGFyYW0gZmlsbENvb3JkICJoZWlnaHQiIG9mIGxpbmUgdG8gbG9jYXRlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZmluZExpbmVBdChpbnQgZmlsbENvb3JkKQorICAgIHsKKyAgICAgICAgaW50IGxvdywgaGlnaCwgbWlkOworICAgICAgICBpbnQgbG93U3RhcnQsIGhpZ2hTdGFydCwgbWlkU3RhcnQ7CisKKyAgICAgICAgaWYgKGZpbGxDb29yZCA+PSBmUGl4SGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIGtBZnRlckxhc3RMaW5lOworICAgICAgICBlbHNlIGlmIChmaWxsQ29vcmQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIGtCZWZvcmVGaXJzdExpbmU7CisKKyAgICAgICAgaWYgKChmTFROZWdTdGFydCA8IGZMVFNpemUpICYmIChmaWxsQ29vcmQgPj0gZkxpbmVUYWJsZVtmTFROZWdTdGFydF0uZ2V0R3JhcGhpY1N0YXJ0KGZQaXhIZWlnaHQpKSkgeworICAgICAgICAgICAgZmlsbENvb3JkIC09IGZQaXhIZWlnaHQ7CisKKyAgICAgICAgICAgIGxvdyA9IGZMVE5lZ1N0YXJ0OworICAgICAgICAgICAgaGlnaCA9IGZMVFNpemU7CisgICAgICAgICAgICBoaWdoU3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG93ID0gMDsKKyAgICAgICAgICAgIGhpZ2ggPSBmTFRQb3NFbmQgKyAxOworICAgICAgICAgICAgaGlnaFN0YXJ0ID0gZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmdldEdyYXBoaWNTdGFydCgwKSArIGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRIZWlnaHQoKTsKKyAgICAgICAgfQorICAgICAgICBsb3dTdGFydCA9IGZMaW5lVGFibGVbbG93XS5nZXRHcmFwaGljU3RhcnQoMCk7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgaWYgKGxvd1N0YXJ0ID09IGhpZ2hTdGFydCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbG93OworCisgICAgICAgICAgICBtaWQgPSBsb3cgKyAoZmlsbENvb3JkIC0gbG93U3RhcnQpIC8gKGhpZ2hTdGFydCAtIGxvd1N0YXJ0KSAqIChoaWdoIC0gbG93KTsKKyAgICAgICAgICAgIG1pZFN0YXJ0ID0gZkxpbmVUYWJsZVttaWRdLmdldEdyYXBoaWNTdGFydCgwKTsKKworICAgICAgICAgICAgaWYgKG1pZFN0YXJ0ID4gZmlsbENvb3JkKSB7CisgICAgICAgICAgICAgICAgaGlnaCA9IG1pZDsKKyAgICAgICAgICAgICAgICBoaWdoU3RhcnQgPSBmTGluZVRhYmxlW2hpZ2hdLmdldEdyYXBoaWNTdGFydCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG1pZFN0YXJ0ICsgZkxpbmVUYWJsZVttaWRdLmdldEhlaWdodCgpIDw9IGZpbGxDb29yZCkgeworICAgICAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7CisgICAgICAgICAgICAgICAgbG93U3RhcnQgPSBmTGluZVRhYmxlW2xvd10uZ2V0R3JhcGhpY1N0YXJ0KDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBtaWQ7CisKKyAgICAgICAgfSB3aGlsZSAobG93IDwgaGlnaCk7CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBsaW5lLgorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBpbnRlcm5hbCBpbmRleCBvZiB0aGUgbGluZSAoZGlyZWN0IGluZGV4IGludG8gbGluZXRhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwoaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVUYWJsZVtsaW5lXS5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGxpbmUuCisgICAgICogQHBhcmFtIGxpbmUgdGhlIGludGVybmFsIGluZGV4IG9mIHRoZSBsaW5lIChkaXJlY3QgaW5kZXggaW50byBsaW5ldGFibGUpLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmVDaGFyTGltaXRJbnRlcm5hbChpbnQgbGluZSkKKyAgICB7CisgICAgICAgIHJldHVybiBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwobGluZSkgKyBmTGluZVRhYmxlW2xpbmVdLmdldENoYXJMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGdyYXBoaWMgc3RhcnQgb2YgdGhlIGxpbmUsIHVuYWRqdXN0ZWQgZm9yIGZpbGwgZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBpbnRlcm5hbCBpbmRleCBvZiB0aGUgbGluZSAoZGlyZWN0IGluZGV4IGludG8gbGluZXRhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwoaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVUYWJsZVtsaW5lXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncmFwaGljIGxpbWl0IG9mIHRoZSBsaW5lLCB1bmFkanVzdGVkIGZvciBmaWxsIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgaW50ZXJuYWwgaW5kZXggb2YgdGhlIGxpbmUgKGRpcmVjdCBpbmRleCBpbnRvIGxpbmV0YWJsZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZUdyYXBoaWNMaW1pdEludGVybmFsKGludCBsaW5lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lKSArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGhhcyBub3QgYmVlbiBmb3JtYXR0ZWQuCisgICAgKiBJZiBhbGwgdGV4dCBoYXMgYmVlbiBmb3JtYXR0ZWQsIHJldHVybiB0aGUgY3VycmVudCB0ZXh0IGxlbmd0aC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGxhc3RMaW5lQ2hhclN0b3AoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxpbmVDaGFyTGltaXRJbnRlcm5hbChsYXN0TGluZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSAndmFsaWQnIGxpbmUgY29udGFpbmluZyBvZmZzZXQuICBUaGlzIGRpZmZlcnMgZnJvbSBnZXRMaW5lQ29udGFpbmluZyBpbgorICAgICAqIHRoaXMgbWFwcyBrQWZ0ZXJMYXN0TGluZSB0byBsYXN0TGluZSgpLCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgYWx3YXlzIGEgdmFsaWQKKyAgICAgKiBsaW5ldGFibGUgaW5kZXguCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIHJldHVybiBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldC5mT2Zmc2V0LCBvZmZzZXQuZlBsYWNlbWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgJ3ZhbGlkJyBsaW5lIGNvbnRhaW5pbmcgb2Zmc2V0LiAgVGhpcyBkaWZmZXJzIGZyb20gZ2V0TGluZUNvbnRhaW5pbmcgaW4KKyAgICAgKiB0aGlzIG1hcHMga0FmdGVyTGFzdExpbmUgdG8gbGFzdExpbmUoKSwgc28gdGhhdCB0aGUgcmVzdWx0IGlzIGFsd2F5cyBhIHZhbGlkCisgICAgICogbGluZXRhYmxlIGluZGV4LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFZhbGlkTGluZUNvbnRhaW5pbmcoaW50IGluc09mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpbnQgbGluZSA9IGdldExpbmVDb250YWluaW5nKGluc09mZnNldCwgcGxhY2VtZW50KTsKKyAgICAgICAgaWYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICBsaW5lID0gbGFzdExpbmUoKTsKKyAgICAgICAgZWxzZSBpZiAobGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IGdldExpbmVDb250YWluaW5nIHJldHVybmVkIGtCZWZvcmVGaXJzdExpbmUiKTsKKworICAgICAgICByZXR1cm4gbGluZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiBpbmRleCBvZiBsaW5lIGNvbnRhaW5pbmcgPHR0Pm9mZnNldDwvdHQ+LgorICAgICogPz8/IElmIG9mZnNldCBpcyBhZnRlciBsYXN0IGZvcm1hdHRlZCBsaW5lLCByZXR1cm5zIGtBZnRlckxhc3RMaW5lLiAgSXMgdGhhdCBnb29kPworICAgICogPHA+CisgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgd2hvc2UgbGluZSBzaG91bGQgYmUgbG9jYXRlZAorICAgICogQHJldHVybnMgbGluZSBjb250YWluaW5nIDx0dD5vZmZzZXQ8L3R0PgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0TGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICByZXR1cm4gZ2V0TGluZUNvbnRhaW5pbmcob2Zmc2V0LmZPZmZzZXQsIG9mZnNldC5mUGxhY2VtZW50KTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXRMaW5lQ29udGFpbmluZyhpbnQgaW5zT2Zmc2V0LCBib29sZWFuIHBsYWNlbWVudCkKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBpbnNPZmZzZXQ7CisgICAgICAgIGlmIChwbGFjZW1lbnQgPT0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUICYmIHBvcyA+IDApCisgICAgICAgICAgICAtLXBvczsKKworICAgICAgICBpZiAocG9zIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IGdldExpbmVDb250YWluaW5nIG9mZnNldCA8IDA6ICIgKyBwb3MpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcyA+PSBsYXN0TGluZUNoYXJTdG9wKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCk/IGtBZnRlckxhc3RMaW5lIDogbGFzdExpbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsb3csIGhpZ2gsIG1pZDsKKyAgICAgICAgaW50IGxvd1N0YXJ0LCBoaWdoU3RhcnQsIG1pZFN0YXJ0OworCisgICAgICAgIGlmICgoZkxUTmVnU3RhcnQgPCBmTFRTaXplKSAmJiAocG9zID49IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChmTFRDdXJUZXh0TGVuKSkpIHsKKyAgICAgICAgICAgIHBvcyAtPSBmTFRDdXJUZXh0TGVuOworCisgICAgICAgICAgICBsb3cgPSBmTFROZWdTdGFydDsKKyAgICAgICAgICAgIGhpZ2ggPSBmTFRTaXplOworICAgICAgICAgICAgaGlnaFN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxvdyA9IDA7CisgICAgICAgICAgICBoaWdoID0gZkxUUG9zRW5kICsgMTsKKyAgICAgICAgICAgIGhpZ2hTdGFydCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRDaGFyU3RhcnQoMCkgKyBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0Q2hhckxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGxvd1N0YXJ0ID0gZkxpbmVUYWJsZVtsb3ddLmdldENoYXJTdGFydCgwKTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICBpZiAoaGlnaFN0YXJ0ID09IGxvd1N0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxvdzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWlkID0gbG93ICsgKHBvcyAtIGxvd1N0YXJ0KSAvIChoaWdoU3RhcnQgLSBsb3dTdGFydCkgKiAoaGlnaCAtIGxvdyk7CisgICAgICAgICAgICBtaWRTdGFydCA9IGZMaW5lVGFibGVbbWlkXS5nZXRDaGFyU3RhcnQoMCk7CisKKyAgICAgICAgICAgIGlmIChtaWRTdGFydCA+IHBvcykgeworICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7CisgICAgICAgICAgICAgICAgaGlnaFN0YXJ0ID0gZkxpbmVUYWJsZVtoaWdoXS5nZXRDaGFyU3RhcnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChtaWRTdGFydCArIGZMaW5lVGFibGVbbWlkXS5nZXRDaGFyTGVuZ3RoKCkgPD0gcG9zKSB7CisgICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTsKKyAgICAgICAgICAgICAgICBsb3dTdGFydCA9IGZMaW5lVGFibGVbbG93XS5nZXRDaGFyU3RhcnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gd2hpbGUgKGxvdyA8IGhpZ2gpOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICogRGlzcGxheSB0ZXh0IGluIGRyYXdBcmVhLiBEb2VzIG5vdCByZWZvcm1hdCB0ZXh0LgorICAgICogPHA+CisgICAgKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3Mgb2JqZWN0IGluIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBkcmF3QXJlYSB0aGUgcmVjdGFuZ2xlLCBpbiBnJ3MgY29vcmRpbmF0ZSBzeXN0ZW0sIGluIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gZydzIGNvb3JkaW5hdGUgc3lzdGVtCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd0FyZWEsIFBvaW50IG9yaWdpbikKKyAgICB7CisgICAgICAgIGRyYXcoZywgZHJhd0FyZWEsIG9yaWdpbiwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwgVGV4dE9mZnNldCBzZWxTdG9wLCBDb2xvciBoaWdobGlnaHQpIHsKKworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBHcmFwaGljczJEIGcyZCA9IEdyYXBoaWNzMkRDb252ZXJzaW9uLmdldEdyYXBoaWNzMkQoZyk7CisKKyAgICAgICAgLy8gR2V0IHN0YXJ0aW5nIGFuZCBlbmRpbmcgZmlsbCAnaGVpZ2h0cy4nCisKKyAgICAgICAgaW50IHN0YXJ0RmlsbDsKKyAgICAgICAgaW50IGVuZEZpbGw7CisKKyAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgc3RhcnRGaWxsID0gZHJhd0FyZWEueSAtIG9yaWdpbi55OworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdGFydEZpbGwgPSBvcmlnaW4ueSAtIChkcmF3QXJlYS55ICsgZHJhd0FyZWEuaGVpZ2h0KTsKKworICAgICAgICBlbmRGaWxsID0gc3RhcnRGaWxsICsgZHJhd0FyZWEuaGVpZ2h0OworCisgICAgICAgIC8vIFdlJ3JlIGRyYXdpbmcgb25lIG1vcmUgbGluZSB0aGFuIG5lY2Vzc2FyeSB3aGVuIHdlIHVwZGF0ZSBiZWNhdXNlIG9mIGEKKyAgICAgICAgLy8gc2VsZWN0aW9uIGNoYW5nZS4gIEJ1dCB3ZSdyZSBkcmF3aW5nIHRoZSByaWdodCBhbW91bnQgb2YgbGluZXMgd2hlbiB3ZQorICAgICAgICAvLyByZWZyZXNoIHRoZSB3aG9sZSBkaXNwbGF5LiAgVGhpcyBhZmZlY3RzIHJlbmRlcmluZyBzcGVlZCBzaWduaWZpY2FudGx5LAorICAgICAgICAvLyBhbmQgY3JlYXRpbmcgYSBuZXcgcGFyYWdyYXBoIHJlbmRlcmVyIGZvciBlYWNoIGxpbmUgZG9lc24ndCBoZWxwIGVpdGhlci4KKyAgICAgICAgLy8gRm9yIG5vdywgSSdtIGdvaW5nIHRvIHN1YnRyYWN0IG9uZSBmcm9tIHRoZSBmaWxsIGhlaWdodCwgb24gdGhlIHRoZW9yeQorICAgICAgICAvLyB0aGF0IHdlJ3JlIHBpY2tpbmcgdXAgdGhlIGV4dHJhIGxpbmUgYmVjYXVzZSBvZiBhIG9uZS1waXhlbCBzbG9wLgorICAgICAgICAvLyBUaGlzIHNlZW1zIHRvIHdvcmssIGFsdGhvdWdoIHBlcmhhcHMgaWYgb25lIHBpeGVsIG9mIGEgbGluZSBhdCB0aGUKKyAgICAgICAgLy8gYm90dG9tIHNob3VsZCBkcmF3LCBpdCB3b24ndC4KKworICAgICAgICAtLWVuZEZpbGw7CisKKyAgICAgICAgLy8gRm9ybWF0IHRvIGVuZGluZyBmaWxsIGhlaWdodCwgc28gbGluZSB0YWJsZSBpcyB2YWxpZCBmb3IgYWxsIGxpbmVzIHdlIG5lZWQgdG8gZHJhdy4KKworICAgICAgICBmb3JtYXRUb0hlaWdodChlbmRGaWxsKTsKKworICAgICAgICAvLyBHZXQgc3RhcnRpbmcgYW5kIGVuZGluZyBsaW5lcyBmb3IgZmlsbCBoZWlnaHQuICBJZiB0aGUgc3RhcnQgb2YgdGhlIGZpbGwgaXMgYWZ0ZXIgdGhlIGxhc3QgbGluZSwKKyAgICAgICAgLy8gb3IgdGhlIGVuZCBvZiB0aGUgZmlsbCBpcyBiZWZvcmUgdGhlIGZpcnN0IGxpbmUsIHJldHVybi4KKworICAgICAgICBpbnQgY3VyTGluZSA9IGZpbmRMaW5lQXQoc3RhcnRGaWxsKTsKKyAgICAgICAgaWYgKGN1ckxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGVsc2UgaWYgKGN1ckxpbmUgPT0ga0JlZm9yZUZpcnN0TGluZSkKKyAgICAgICAgICAgIGN1ckxpbmUgPSAwOworCisgICAgICAgIGludCBsYXN0TGluZSA9IGZpbmRMaW5lQXQoZW5kRmlsbCk7CisgICAgICAgIGlmIChsYXN0TGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBlbHNlIGlmIChsYXN0TGluZSA9PSBrQWZ0ZXJMYXN0TGluZSkKKyAgICAgICAgICAgIGxhc3RMaW5lID0gbGFzdExpbmUoKTsKKworICAgICAgICAvLyBHZXQgdGhlIGJhc2UgY29vcmRpbmF0ZXMgKGxpbmVYLCBsaW5lWSkgZm9yIHRoZSBzdGFydGluZyBsaW5lLgorCisgICAgICAgIGludCBsaW5lWCwgbGluZVk7CisKKyAgICAgICAgaW50IGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChjdXJMaW5lKTsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBpZiAoZkxpbmVJbmMpCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54IC0gZkxpbmVEaW07CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbY3VyTGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGZMaW5lSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIGZMaW5lRGltOworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCAtIChnU3RhcnQgKyBmTGluZVRhYmxlW2N1ckxpbmVdLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBsaW5lcywgZHJhd2luZyBlYWNoIG9uZSBhbmQgaW5jcmVtZW50aW5nIHRoZSBiYXNlIGNvb3JkaW5hdGUgYnkgdGhlIGxpbmUgaGVpZ2h0LgorCisKKyAgICAgICAgZm9yICg7IGN1ckxpbmUgPD0gbGFzdExpbmU7IGN1ckxpbmUrKykgeworICAgICAgICAgICAgLy8gQWRqdXN0IGN1ckxpbmUgYXJvdW5kIGdhcCBpbiBsaW5lIHRhYmxlLgorICAgICAgICAgICAgaWYgKChjdXJMaW5lID4gZkxUUG9zRW5kKSAmJiAoY3VyTGluZSA8IGZMVE5lZ1N0YXJ0KSkKKyAgICAgICAgICAgICAgICBjdXJMaW5lID0gZkxUTmVnU3RhcnQ7CisKKyAgICAgICAgICAgIGZMaW5lVGFibGVbY3VyTGluZV0ucmVuZGVyV2l0aEhpZ2hsaWdodChmTFRDdXJUZXh0TGVuLCBnMmQsIGZMaW5lRGltLCBsaW5lWCwgbGluZVksIHNlbFN0YXJ0LCBzZWxTdG9wLCBoaWdobGlnaHQpOworCisgICAgICAgICAgICAvLyBJbmNyZW1lbnQgbGluZSBiYXNlIGZvciBuZXh0IGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIGludCBsaW5lSW5jID0gZkxpbmVUYWJsZVtjdXJMaW5lXS5nZXRIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykgeworICAgICAgICAgICAgICAgIGlmIChmSExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmVZICs9IGxpbmVJbmM7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsaW5lWCArPSBsaW5lSW5jOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZkhMaW5lKQorICAgICAgICAgICAgICAgICAgICBsaW5lWSAtPSBsaW5lSW5jOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbGluZVggLT0gbGluZUluYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRm9ybWF0IHRleHQgdG8gZ2l2ZW4gaGVpZ2h0LgorICAgICogQHBhcmFtIGhlaWdodCB0aGUgaGVpZ2h0IHRvIHdoaWNoIHRleHQgd2lsbCBiZSBmb3JtYXR0ZWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZm9ybWF0VG9IZWlnaHQoaW50IHJlcUhlaWdodCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGlmIChyZXFIZWlnaHQgPD0gZlBpeEhlaWdodCkgLy8gYWxyZWFkeSBmb3JtYXR0ZWQgdG8gdGhpcyBoZWlnaHQKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZlRleHQubGVuZ3RoKCkgPT0gbGFzdExpbmVDaGFyU3RvcCgpKSAvLyBhbHJlYWR5IGZvcm1hdHRlZCBhbGwgdGhlIHRleHQKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyArKysgc2hvdWxkIGRpc2FibGUgdXBkYXRlIHRocmVhZCBoZXJlCisKKyAgICAgICAgaWYgKGZMVE5lZ1N0YXJ0IDwgZkxUU2l6ZSkKKyAgICAgICAgICAgIHNoaWZ0VGFibGVUbyhmTFRTaXplIC0gMSk7CisKKyAgICAgICAgZm9ybWF0VGV4dCgwLCAwLCByZXFIZWlnaHQsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgdGV4dCB0byBnaXZlbiBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIHdoaWNoIHRleHQgd2lsbCBiZSBmb3JtYXR0ZWQuCisgICAgICovCisgICAgIHByaXZhdGUgdm9pZCBmb3JtYXRUb09mZnNldChUZXh0T2Zmc2V0IG9mZnNldCkKKyAgICAgeworICAgICAgICBmb3JtYXRUb09mZnNldChvZmZzZXQuZk9mZnNldCwgb2Zmc2V0LmZQbGFjZW1lbnQpOworICAgICB9CisgICAgIAorICAgICBwcml2YXRlIHN5bmNocm9uaXplZCB2b2lkIGZvcm1hdFRvT2Zmc2V0KGludCBvZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KSB7CisgICAgICAgIAorICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpbnQgbGxjcyA9IGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgaWYgKGxsY3MgPCBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAocGxhY2VtZW50ID09IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKSAvLyBmb3JtYXQgdG8gcGFzdCBjaGFyYWN0ZXIgb2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAgICAgICAgIGxpbWl0Kys7CisgICAgICAgICAgICBpZiAobGltaXQgPj0gbGxjcykgeyAvLyA/Pz8gd291bGQgJz4nIGJlIG9rIGluc3RlYWQgb3IgJz49Jz8KKyAgICAgICAgICAgICAgICBpZiAobGltaXQgPiBmTFRDdXJUZXh0TGVuKQorICAgICAgICAgICAgICAgICAgICBsaW1pdCA9IGZMVEN1clRleHRMZW47CisKKyAgICAgICAgICAgICAgICBzaGlmdFRhYmxlVG8obGFzdExpbmUoKSk7CisgICAgICAgICAgICAgICAgZm9ybWF0VGV4dChsbGNzLCBsaW1pdCAtIGxsY3MsIEludGVnZXIuTUFYX1ZBTFVFLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICB9CisKKy8qKgorKiBSZWZvcm1hdCB0ZXh0IGFmdGVyIGEgY2hhbmdlLgorKiBBZnRlciB0aGUgZm9ybWF0dGVyJ3MgdGV4dCBjaGFuZ2VzLCBjYWxsIHRoaXMgbWV0aG9kIHRvIHJlZm9ybWF0LiAgRG9lcworKiBub3QgcmVkcmF3LgorKiBAcGFyYW0gYWZTdGFydCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQgd2hlcmUgbW9kaWZpY2F0aW9uIGJlZ2FuOyAgaWUsIHRoZQorKiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgd2hpY2ggaXMgImRpZmZlcmVudCIgaW4gc29tZSB3YXkuICBEb2VzIG5vdAorKiBoYXZlIHRvIGJlIG5vbm5lZ2F0aXZlLgorKiBAcGFyYW0gYWZMZW5ndGggdGhlIG51bWJlciBvZiBuZXcgb3IgY2hhbmdlZCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAgU2hvdWxkIG5ldmVyCisqIGJlIGxlc3MgdGhhbiAwLgorKiBAcGFyYW0gdmlld1JlY3QgdGhlIFJlY3RhbmdsZSBpbiB3aGljaCB0aGUgdGV4dCB3aWxsIGJlIGRpc3BsYXllZC4gIFRoaXMgaXMgbmVlZGVkIGZvcgorKiByZXR1cm5pbmcgdGhlICJkYW1hZ2VkIiBhcmVhIC0gdGhlIGFyZWEgb2YgdGhlIHNjcmVlbiBpbiB3aGljaCB0aGUgdGV4dCBtdXN0IGJlIHJlZHJhd24uCisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcmV0dXJucyBhIDx0dD5SZWN0YW5nbGU8L3R0PiB3aGljaCBzcGVjaWZpZXMgdGhlIGFyZWEgaW4gd2hpY2ggdGV4dCBtdXN0IGJlCisqIHJlZHJhd24gdG8gcmVmbGVjdCB0aGUgY2hhbmdlIHRvIHRoZSB0ZXh0LgorKi8KKyAgICBwdWJsaWMgUmVjdGFuZ2xlIHVwZGF0ZUZvcm1hdChmaW5hbCBpbnQgYWZTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGFmTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgdmlld1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbikKKyAgICB7CisgICAgICAgIGlmIChhZlN0YXJ0IDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IHVwZGF0ZUZvcm1hdCBhZlN0YXJ0IDwgMDogIiArIGFmU3RhcnQpOworICAgICAgICB9CisgICAgICAgIGlmIChmQmdGb3JtYXRBbGxvd2VkKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWNrZ3JvdW5kIGZvcm1hdHRpbmcgc2hvdWxkIGhhdmUgYmVlbiBkaXNhYmxlZCIpOworICAgICAgICB9CisgICAgICAgIGZDdXJUaW1lU3RhbXAgPSBmVGV4dC5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgCisgICAgICAgIGludCBjdXJMaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhhZlN0YXJ0LCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIGludCBsaW5lU3RhcnRQb3MgPSBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwoY3VyTGluZSk7CisKKyAgICAgICAgLy8gb3B0aW1pemUgYnkgZmluZGluZyBvdXQgd2hldGhlciBjaGFuZ2Ugb2NjdXJyZWQKKyAgICAgICAgLy8gYWZ0ZXIgZmlyc3Qgd29yZCBicmVhayBvbiBjdXJsaW5lCisKKyAgICAgICAgaW50IGZpcnN0UG9zc2libGVCcmVhazsKKworICAgICAgICBpZiAobGluZVN0YXJ0UG9zIDwgZlRleHQubGVuZ3RoKCkpIHsKKworICAgICAgICAgICAgaWYgKGZMaW5lQnJlYWsgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZMaW5lQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2hhckl0ZXIgPSBmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgY2hhckl0ZXIuc2V0SW5kZXgobGluZVN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGZMaW5lQnJlYWsuc2V0VGV4dChjaGFySXRlcik7CisKKyAgICAgICAgICAgIGZpcnN0UG9zc2libGVCcmVhayA9IGZMaW5lQnJlYWsuZm9sbG93aW5nKGxpbmVTdGFydFBvcyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmlyc3RQb3NzaWJsZUJyZWFrID0gYWZTdGFydDsKKworICAgICAgICBpZiAoKGN1ckxpbmUgPiAwKSAmJiAoZmlyc3RQb3NzaWJsZUJyZWFrID09IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBhZlN0YXJ0IDw9IGZpcnN0UG9zc2libGVCcmVhaykpIHsKKyAgICAgICAgICAgIGN1ckxpbmUtLTsKKyAgICAgICAgICAgIGlmIChjdXJMaW5lIDwgZkxUTmVnU3RhcnQgJiYgY3VyTGluZSA+IGZMVFBvc0VuZCkKKyAgICAgICAgICAgICAgICBjdXJMaW5lID0gZkxUUG9zRW5kOworICAgICAgICB9CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKGN1ckxpbmUpOworCisgICAgICAgIGludCBwaXhIZWlnaHQ7IC8vIGFmdGVyIHRoZSBmb3JtYXRUZXh0IGNhbGwsIGF0IGxlYXN0IHBpeEhlaWdodCB0ZXh0IG11c3QgYmUgZm9ybWF0dGVkCisKKyAgICAgICAgaWYgKGZITGluZSkgeworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIHBpeEhlaWdodCA9IHZpZXdSZWN0LnkgKyB2aWV3UmVjdC5oZWlnaHQgLSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwaXhIZWlnaHQgPSBvcmlnaW4ueSAtIHZpZXdSZWN0Lnk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgcGl4SGVpZ2h0ID0gdmlld1JlY3QueCArIHZpZXdSZWN0LndpZHRoIC0gb3JpZ2luLng7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcGl4SGVpZ2h0ID0gb3JpZ2luLnggLSB2aWV3UmVjdC54OworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIHIgPSBmb3JtYXRUZXh0KGFmU3RhcnQsIGFmTGVuZ3RoLCBwaXhIZWlnaHQsIGZhbHNlKTsKKworICAgICAgICAvL2R1bXBMaW5lVGFibGUoKTsKKworICAgICAgICBpZiAoKGZQaXhIZWlnaHQgPCBwaXhIZWlnaHQpICYmIChmTFROZWdTdGFydCA8IGZMVFNpemUpICYmIChmTFRDdXJUZXh0TGVuID4gbGFzdExpbmVDaGFyU3RvcCgpKSkgeworICAgICAgICAgICAgc2hpZnRUYWJsZVRvKGxhc3RMaW5lKCkpOworICAgICAgICAgICAgUmVjdGFuZ2xlIHMgPSBmb3JtYXRUZXh0KDAsIDAsIHBpeEhlaWdodCwgZmFsc2UpOworICAgICAgICAgICAgciA9IHIudW5pb24ocyk7CisgICAgICAgIH0KKworICAgICAgICBpbnRsUmVjdChvcmlnaW4sIHIpOworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiRGFtYWdlZCByZWN0OiAiK3IrIjsgb3JpZ2luOiAiK29yaWdpbik7CisKKyAgICAgICAgLy8gZG9uJ3QgbmVlZCB0byBzeW5jaHJvbml6ZWQgaGVyZSwgYi9jIHRoZSBkYWVtb24gc2hvdWxkbid0IGJlIHJ1bm5pbmcgd2hlbgorICAgICAgICAvLyB0aGlzIGlzIGV4ZWN1dGluZworCisgICAgICAgIGlmIChmVGV4dC5sZW5ndGgoKSA8IGxhc3RMaW5lQ2hhclN0b3AoKSkKKyAgICAgICAgICAgIGVuYWJsZUJHRm9ybWF0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworCisgICAgICAgIC8vZHVtcExpbmVUYWJsZSgpOworCisgICAgICAgIHJldHVybiByOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExpbmVCcmVha01lYXN1cmVyIG1ha2VNZWFzdXJlcihpbnQgcGFyYWdyYXBoU3RhcnQsIGludCBwYXJhZ3JhcGhMaW1pdCkgeworCisgICAgICAgIE1UZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoTGltaXQpOworICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciA9IG5ldyBMaW5lQnJlYWtNZWFzdXJlcihpdGVyLCBmRm9udFJlbmRlckNvbnRleHQpOworICAgICAgICBpZiAoZmdDYWNoZU1lYXN1cmVycykgeworICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyU3RhcnQgPSBwYXJhZ3JhcGhTdGFydDsKKyAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlckxpbWl0ID0gcGFyYWdyYXBoTGltaXQ7CisgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXIgPSBtZWFzdXJlcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWVhc3VyZXI7CisgICAgfSAgICAgICAgCisKKy8qKgorKiBDb21wdXRlIHRleHQgZm9ybWF0LiAgVGhpcyBtZXRob2QgY2FsY3VsYXRlcyB0ZXh0IGZvcm1hdDsgIGl0IGNhbiBiZQorKiBjYWxsZWQgZm9yIHZhcmlvdXMgcHVycG9zZXM6ICB0byByZWZvcm1hdCB0ZXh0IGFmdGVyIGFuIGVkaXQsIHRvCisqIGZvcm1hdCB0ZXh0IHRvIGEgcGFydGljdWxhciBoZWlnaHQsIG9yIHRvIGZvcm1hdCB0ZXh0IHVwIHRvIGEKKyogcGFydGljdWxhciBvZmZzZXQuCisqIDxwPgorKiBUaGUgY2FsbGluZyBtZXRob2QgbXVzdCBlbnN1cmUgdGhhdCA8dHQ+ZkxpbmVUYWJsZTwvdHQ+IGhhcyBiZWVuIHNoaWZ0ZWQKKyogc3VjaCB0aGF0IHRoZSBsYXN0IHBvc2l0aXZlIGxpbmUgaXMgd2hlcmUgdGhlIGZvcm1hdHRpbmcgb3BlcmF0aW9uIHdpbGwKKyogYmVnaW4uCisqIDxwPgorKiBDYWxsZWQgYnk6IDx0dD5mb3JtYXRUb0hlaWdodCgpPC90dD4sIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+LAorKiA8dHQ+dGV4dE9mZnNldFRvUG9pbnQoKTwvdHQ+LCA8dHQ+Z2V0Qm91bmRpbmdSZWN0KCk8L3R0PgorKiBAcGFyYW0gYWZTdGFydCB0aGUgb2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgd2hpY2ggaGFzIGNoYW5nZWQKKyogQHBhcmFtIGFmTGVuZ3RoIHRoZSBudW1iZXIgb2YgbmV3IG9yIGNoYW5nZWQgY2hhcmFjdGVycyBpbiB0aGUgdGV4dAorKiBAcGFyYW0gcmVxSGVpZ2h0IHRoZSBwaXhlbCBoZWlnaHQgdG8gd2hpY2ggdGV4dCBtdXN0IGJlIGZvcm1hdHRlZC4gIElnbm9yZWQKKyogaWYgPHR0PmZvcm1hdEFsbE5ld1RleHQ8L3R0PiBpcyA8dHQ+dHJ1ZTwvdHQ+LCBvciBpZiBvbGQgbGluZXMgcmVtYWluIGluIHRoZQorKiBsaW5lIHRhYmxlIGFmdGVyIGFsbCBjaGFuZ2VkIHRleHQgaGFzIGJlZW4gZm9ybWF0dGVkLgorKiBAcGFyYW0gc2Vla09mZnNldEF0RW5kIGlmIDx0dD50cnVlPC90dD4sIGZvcm1hdHRpbmcgY29udGludWVzIHVudGlsIHRoZSBsaW5lCisqIGNvbnRhaW5pbmcgYWZTdGFydCthZkxlbmd0aCBoYXMgYmVlbiBmb3JtYXR0ZWQuICBJZiBmYWxzZSwgZm9ybWF0dGluZyBtYXkgc3RvcAorKiB3aGVuIHJlcUhlaWdodCBoYXMgYmVlbiByZWFjaGVkLiAgVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIDx0dD50cnVlPC90dD4gPGI+b25seTwvYj4KKyogaWYgdGhlIG9iamVjdCBvZiB0aGUgZm9ybWF0dGluZyBvcGVyYXRpb24gaXMgdG8gZXh0ZW5kIGZvcm1hdHRpbmcgdG8gYSBwYXJ0aWN1bGFyCisqIG9mZnNldCB3aXRoaW4gdGhlIHRleHQ7ICBpdCBzaG91bGQgYmUgPHR0PmZhbHNlPC90dD4gZXZlcnl3aGVyZSBlbHNlLgorKiBAcmV0dXJucyBhIHJlY3RhbmdsZSwgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSB0ZXh0LCB3aGljaCBlbmNsb3NlcyB0aGUKKyogc2NyZWVuIGFyZWEgd2hvc2UgYXBwZWFyYW5jZSBoYXMgY2hhbmdlZCBkdWUgdG8gdGhlIHJlZm9ybWF0dGluZy4KKyovCisKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBmb3JtYXRUZXh0KGludCBhZlN0YXJ0LCBmaW5hbCBpbnQgYWZMZW5ndGgsIGludCByZXFIZWlnaHQsIGJvb2xlYW4gc2Vla09mZnNldEF0RW5kKQorICAgIHsKKyAgICAvKiBhc3N1bWVzIGxpbmUgdGFibGUgc2hpZnRlZCBzdWNoIHRoYXQgZmlyc3QgbGluZSB0byBmb3JtYXQgaXMKKyAgICBsYXN0IHBvc2l0aXZlIGxpbmUgKi8KKworICAgICAgICBpZiAoYWZMZW5ndGggPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJhZkxlbmd0aCA8IDAuICBhZkxlbmd0aD0iICsgYWZMZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IG5ld1RleHRFbmQgPSBhZlN0YXJ0ICsgYWZMZW5ndGg7CisKKyAgICAgICAgZmluYWwgaW50IG5ld0N1clRleHRMZW4gPSBmVGV4dC5sZW5ndGgoKTsKKworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBpbnQgb2xkUGl4SGVpZ2h0ID0gZlBpeEhlaWdodDsKKyAgICAgICAgaW50IG9sZEZ1bGxQaXhIZWlnaHQgPSBmRnVsbFBpeEhlaWdodDsKKyAgICAgICAgZlBpeEhlaWdodCAtPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgaW50IGN1ckdyYXBoaWNTdGFydCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCk7CisgICAgICAgIGludCBjdXJMaW5lU3RhcnQgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0Q2hhclN0YXJ0KG5ld0N1clRleHRMZW4pOworICAgICAgICAKKyAgICAgICAgaW50IGN1clBhcmFncmFwaFN0YXJ0ID0gZlRleHQucGFyYWdyYXBoU3RhcnQoY3VyTGluZVN0YXJ0KTsKKyAgICAgICAgaW50IGN1clBhcmFncmFwaExpbWl0ID0gSW50ZWdlci5NSU5fVkFMVUU7IC8vIGR1bW15IHZhbHVlCisKKyAgICAgICAgaW50IGRhbWFnZVN0YXJ0ID0gY3VyR3JhcGhpY1N0YXJ0OworCisgICAgICAgIFBhcmFncmFwaFJlbmRlcmVyIHJlbmRlcmVyID0gbnVsbDsKKyAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIgPSBudWxsOworICAgICAgICAKKyAgICAgICAgLy8gdHJ5IHRvIHVzZSBjYWNoZWQgTGluZUJyZWFrTWVhc3VyZXIgaWYgcG9zc2libGUKKyAgICAgICAgaWYgKGZDYWNoZWRNZWFzdXJlciAhPSBudWxsICYmIAorICAgICAgICAgICAgY3VyUGFyYWdyYXBoU3RhcnQgPT0gZkNhY2hlZE1lYXN1cmVyU3RhcnQpIHsKKworICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQgPSBmVGV4dC5wYXJhZ3JhcGhMaW1pdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld0N1clRleHRMZW4gLSBmTFRDdXJUZXh0TGVuID09IDEgJiYgYWZMZW5ndGggPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyUGFyYWdyYXBoTGltaXQgPT0gZkNhY2hlZE1lYXN1cmVyTGltaXQrMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRJdGVyYXRvciBpdGVyID0gbmV3IE1UZXh0SXRlcmF0b3IoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyLmluc2VydENoYXIoaXRlciwgYWZTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXJMaW1pdCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIgPSBmQ2FjaGVkTWVhc3VyZXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZkxUQ3VyVGV4dExlbiAtIG5ld0N1clRleHRMZW4gPT0gMSAmJiBhZkxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmQ2FjaGVkTWVhc3VyZXJMaW1pdCA+IGZDYWNoZWRNZWFzdXJlclN0YXJ0ICsgMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhMaW1pdCA9PSBmQ2FjaGVkTWVhc3VyZXJMaW1pdC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dEl0ZXJhdG9yIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcihmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb250UmVzb2x2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlci5kZWxldGVDaGFyKGl0ZXIsIGFmU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyTGltaXQgLT0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyID0gZkNhY2hlZE1lYXN1cmVyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXIgPSBudWxsOworICAgICAgICAgICAgICAgIGZnQ2FjaGVNZWFzdXJlcnMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1lYXN1cmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHNldCB1cCByZW5kZXJlciBzaW5jZSB0aGUgcGFyYWdyYXBoIHVwZGF0ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBmb3JtYXR0aW5nIGxvb3Agd2lsbCBub3QgaGFwcGVuCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBnZXRSZW5kZXJlckZvcihzdHlsZSk7CisgICAgICAgICAgICAgICAgbWVhc3VyZXIuc2V0UG9zaXRpb24oY3VyTGluZVN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1lYXN1cmVyID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHRyaWdnZXIgcGFyYWdyYXBoIHVwZGF0ZSBhdCBzdGFydCBvZiBmb3JtYXR0aW5nIGxvb3AKKyAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0ID0gY3VyUGFyYWdyYXBoU3RhcnQ7CisgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBmTFRDdXJUZXh0TGVuID0gbmV3Q3VyVGV4dExlbjsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImxpbmU6ICIgKyBmTFRQb3NFbmQgKyAiLCBjbHM6ICIgKyBjdXJMaW5lU3RhcnQpOworCisKKyAgICAgICAgICAgIGlmIChjdXJMaW5lU3RhcnQgPj0gY3VyUGFyYWdyYXBoTGltaXQpIHsKKyAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCA9IGN1clBhcmFncmFwaExpbWl0OworICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0ID0gZlRleHQucGFyYWdyYXBoTGltaXQoY3VyUGFyYWdyYXBoU3RhcnQpOworCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBnZXRSZW5kZXJlckZvcihzdHlsZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VyUGFyYWdyYXBoU3RhcnQgPCBjdXJQYXJhZ3JhcGhMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBtZWFzdXJlciA9IG1ha2VNZWFzdXJlcihjdXJQYXJhZ3JhcGhTdGFydCwgY3VyUGFyYWdyYXBoTGltaXQpOworICAgICAgICAgICAgICAgICAgICBtZWFzdXJlci5zZXRQb3NpdGlvbihjdXJMaW5lU3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gaGF2ZU9sZERpcmVjdGlvbiA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXSAhPSBudWxsOworICAgICAgICAgICAgICAgIGJvb2xlYW4gb2xkRGlyZWN0aW9uID0gZmFsc2U7IC8vICBkdW1teSB2YWx1ZSBmb3IgY29tcGlsZXIKKyAgICAgICAgICAgICAgICBpZiAoaGF2ZU9sZERpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICBvbGREaXJlY3Rpb24gPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uaXNMZWZ0VG9SaWdodCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZMaW5lVGFibGVbZkxUUG9zRW5kXSA9IHJlbmRlcmVyLmxheW91dChmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFRQb3NFbmRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZXcmFwID8gZkxpbmVEaW0gOiBJbnRlZ2VyLk1BWF9WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0pOworICAgICAgICAgICAgICAgIGlmIChoYXZlT2xkRGlyZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmTGluZVRhYmxlW2ZMVFBvc0VuZF0uaXNMZWZ0VG9SaWdodCgpICE9IG9sZERpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGV4dEVuZCA9IE1hdGgubWF4KG5ld1RleHRFbmQsIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIExheW91dEluZm8gdGhlTGluZSA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXTsKKworICAgICAgICAgICAgICAgIHRoZUxpbmUuc2V0R3JhcGhpY1N0YXJ0KGN1ckdyYXBoaWNTdGFydCk7CisgICAgICAgICAgICAgICAgY3VyR3JhcGhpY1N0YXJ0ICs9IHRoZUxpbmUuZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgICAgICAgICBmUGl4SGVpZ2h0ICs9IHRoZUxpbmUuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgY3VyTGluZVN0YXJ0ICs9IHRoZUxpbmUuZ2V0Q2hhckxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgaWYgKCFmV3JhcCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbGluZVdpZHRoID0gdGhlTGluZS5nZXRUb3RhbEFkdmFuY2UoKSArIHRoZUxpbmUuZ2V0TGVhZGluZ01hcmdpbigpOworICAgICAgICAgICAgICAgICAgICBpZiAodGhlTGluZS5pc0xlZnRUb1JpZ2h0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmTWF4WCA8IGxpbmVXaWR0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZNYXhYID0gbGluZVdpZHRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZMaW5lRGltLWxpbmVXaWR0aCA8IGZNaW5YKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk1pblggPSBmTGluZURpbS1saW5lV2lkdGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIE5leHQsIGRpc2NhcmQgb2Jzb2xldGUgbGluZXMuICBBIGxpbmUgaXMgb2Jzb2xldGUgaWYgaXQKKyAgICAgICAgICAgICAgICBjb250YWlucyBuZXcgdGV4dCBvciB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIHdoaWxlIChmTFROZWdTdGFydCA8IGZMVFNpemUpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZVBvcyA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChuZXdDdXJUZXh0TGVuKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZVBvcyA+PSBjdXJMaW5lU3RhcnQgJiYgbGluZVBvcyA+PSBuZXdUZXh0RW5kKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiZGVsZXRlIG5lZyBsaW5lOiAiICsgZkxUTmVnU3RhcnQpOworICAgICAgICAgICAgICAgIGZQaXhIZWlnaHQgLT0gZkxpbmVUYWJsZVtmTFROZWdTdGFydF0uZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFROZWdTdGFydCsrXSA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzdG9wQXQ7CisgICAgICAgICAgICBpZiAoZkxUTmVnU3RhcnQgPCBmTFRTaXplKQorICAgICAgICAgICAgICAgIHN0b3BBdCA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChuZXdDdXJUZXh0TGVuKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdG9wQXQgPSBuZXdDdXJUZXh0TGVuOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIE5vdywgaWYgZXhpdCBjb25kaXRpb25zIGFyZW4ndCBtZXQsIGNyZWF0ZSBhIG5ldyBsaW5lLgorICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgaWYgKHNlZWtPZmZzZXRBdEVuZCkgeworICAgICAgICAgICAgICAgIGlmICgoY3VyTGluZVN0YXJ0ID49IG5ld1RleHRFbmQpICYmIChmTFROZWdTdGFydCA9PSBmTFRTaXplKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImJyZWFrIDEiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN1ckxpbmVTdGFydCA+PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJjdXJMaW5lU3RhcnQ6ICIgKyBjdXJMaW5lU3RhcnQgKyAiID49IHN0b3BBdDogIiArIHN0b3BBdCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChmTFROZWdTdGFydD09ZkxUU2l6ZSAmJiBmUGl4SGVpZ2h0ID49IHJlcUhlaWdodCkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImJyZWFrIDMiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZkxUUG9zRW5kICsgMSA9PSBmTFROZWdTdGFydCkKKyAgICAgICAgICAgICAgICBleHBhbmRMaW5lVGFibGUoKTsKKworICAgICAgICAgICAgZkxpbmVUYWJsZVsrK2ZMVFBvc0VuZF0gPSBudWxsOyAvLyB3aWxsIGJlIGNyZWF0ZWQgYnkgUmVuZGVyZXIKKyAgICAgICAgfQorICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoIlxuIik7CisKKyAgICAgICAgaWYgKG5ld0N1clRleHRMZW4gPT0gMCkgeworICAgICAgICAgICAgZkxpbmVUYWJsZVswXSA9IHBzZXVkb0xpbmVJbmZvKGZMaW5lVGFibGVbMF0sIDApOworICAgICAgICAgICAgZlBpeEhlaWdodCA9IGZMaW5lVGFibGVbMF0uZ2V0SGVpZ2h0KCk7CisgICAgICAgIH0KKyAgICAgICAgZkZ1bGxQaXhIZWlnaHQgPSBmUGl4SGVpZ2h0OworCisgICAgICAgIGlmIChpc1BhcmFCcmVha0JlZm9yZShuZXdDdXJUZXh0TGVuKSkgeworICAgICAgICAgICAgZkZ1bGxQaXhIZWlnaHQgKz0gbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgfQorLyoKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjdXJMaW5lU3RhcnQ6ICIgKyBjdXJMaW5lU3RhcnQgKworICAgICAgICAgICAgIiwgZkxUUG9zRW5kOiAiICsgZkxUUG9zRW5kICsKKyAgICAgICAgICAgICIsIGZMVE5lZ1N0YXJ0OiAiICsgZkxUTmVnU3RhcnQgKworICAgICAgICAgICAgIiwgZkxUU2l6ZTogIiArIGZMVFNpemUpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2xkRnVsbFBpeEhlaWdodDogIiArIG9sZEZ1bGxQaXhIZWlnaHQgKyAiLCBuZXdGdWxsUGl4SGVpZ2h0OiAiICsgZkZ1bGxQaXhIZWlnaHQpOworKi8KKyAgICAgICAgaW50IGRhbWFnZUxlbmd0aDsKKyAgICAgICAgaWYgKGZGdWxsUGl4SGVpZ2h0ID09IG9sZEZ1bGxQaXhIZWlnaHQpIHsKKyAgICAgICAgICAgIGRhbWFnZUxlbmd0aCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRIZWlnaHQoKSAtIGRhbWFnZVN0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGFtYWdlTGVuZ3RoID0gTWF0aC5tYXgoZkZ1bGxQaXhIZWlnaHQsIG9sZEZ1bGxQaXhIZWlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0YW5nbGUoZk1pblgsIGRhbWFnZVN0YXJ0LCBmTWF4WC1mTWluWCwgZGFtYWdlTGVuZ3RoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcExpbmVUYWJsZSgpCisgICAgeworICAgICAgICBpbnQgaTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZMVEN1clRleHRMZW49IiArIGZMVEN1clRleHRMZW4gKyAiICIgKTsKKyAgICAgICAgZm9yIChpPTA7IGk8PSBmTFRQb3NFbmQ7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGluZSAiICsgaSArICIgc3RhcnRzIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBmTGluZVRhYmxlW2ldLmdldENoYXJTdGFydChmTFRDdXJUZXh0TGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kIGV4dGVuZHMgIiArIGZMaW5lVGFibGVbaV0uZ2V0Q2hhckxlbmd0aCgpKTsKKworICAgICAgICBmb3IgKGk9ZkxUTmVnU3RhcnQ7IGk8IGZMVFNpemU7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGluZSAiICsgKGktZkxUTmVnU3RhcnQrZkxUUG9zRW5kKzEpICsgIiBzdGFydHMgYXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGZMaW5lVGFibGVbaV0uZ2V0Q2hhclN0YXJ0KGZMVEN1clRleHRMZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgZXh0ZW5kcyAiICsgZkxpbmVUYWJsZVtpXS5nZXRDaGFyTGVuZ3RoKCkpOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IG1pblgoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmTWluWDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIGhvcml6b250YWwgZXh0ZW50IG9mIHRoZSB0ZXh0LCBpbiBwaXhlbHMuCisgICAgKiA8cD4KKyAgICAqIFRoaXMgcmV0dXJucyBhbiBhcHByb3hpbWF0aW9uIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgZm9ybWF0dGVkIHRleHQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBtYXhYKCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisKKyAgICAgICAgcmV0dXJuIGZNYXhYOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBoZWlnaHQgb2YgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LgorICAgICoKKyAgICAqIFRoaXMgaXMgdXNlZCBmb3IgdGhlICdleHRyYSBoZWlnaHQnIG5lZWRlZCB0byBkaXNwbGF5IGEgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dCB3aGVuIHRoZQorICAgICogdGV4dCBpcyBlbXB0eSBvciBlbmRzIHdpdGggYSBuZXdsaW5lLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGFzdENoYXJIZWlnaHQoKQorICAgIHsKKyAgICAgICAgaW50IGNoYXJJbmRleCA9IGxhc3RMaW5lQ2hhclN0b3AoKSAtIDE7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlQXQoY2hhckluZGV4KTsKKyAgICAgICAgRGVmYXVsdENoYXJhY3Rlck1ldHJpYy5NZXRyaWMgbWV0cmljID0gZkRlZmF1bHRDaGFyTWV0cmljLmdldE1ldHJpY0ZvclN0eWxlKHN0KTsKKworICAgICAgICBpbnQgaGVpZ2h0ID0gbWV0cmljLmdldEFzY2VudCgpOworICAgICAgICBoZWlnaHQgKz0gbWV0cmljLmdldERlc2NlbnQoKTsKKyAgICAgICAgaGVpZ2h0ICs9IG1ldHJpYy5nZXRMZWFkaW5nKCk7CisKKyAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGF0IHBvcyBpcyBhIHBhcmFncmFwaCBzZXBhcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzUGFyYUJyZWFrQmVmb3JlKGludCBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gcG9zID4gMCAmJiAoZlRleHQuYXQocG9zIC0gMSkgPT0gJ1x1MjAyOScgfHwgZlRleHQuYXQocG9zIC0gMSkgPT0gJ1xuJyk7CisgICAgICAgIC8vIHdlIHJlYWxseSBuZWVkIHRvIHRha2UgbG9vayBhdCB0aGlzIGFuZCBkZXRlcm1pbmUgd2hhdCB0aGlzIGZ1bmN0aW9uCisgICAgICAgIC8vIHNob3VsZCBiZSBkb2luZy4gIFdoYXQgSSd2ZSBnb3QgaGVyZSByaWdodCBub3cgaXMgYSB0ZW1wb3JhcnkgaW1wbGVtZW50YXRpb24uCisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbWluWSgpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmV0dXJuIHRoZSB2ZXJ0aWNhbCBleHRlbnQgb2YgdGhlIHRleHQsIGluIHBpeGVscy4KKyAgICAqIDxwPgorICAgICogVGhpcyByZXR1cm5zIGFuIGFwcHJveGltYXRpb24gYmFzZWQgb24gdGhlIGN1cnJlbnRseSBmb3JtYXR0ZWQgdGV4dC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IG1heFkoKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKworICAgICAgICBpbnQgbnVtQ2hhcnMgPSBsYXN0TGluZUNoYXJTdG9wKCk7CisKKyAgICAgICAgaW50IHBpeEhlaWdodCA9IGZQaXhIZWlnaHQ7CisgICAgICAgIGlmIChudW1DaGFycyA9PSBmTFRDdXJUZXh0TGVuICYmIGlzUGFyYUJyZWFrQmVmb3JlKGZMVEN1clRleHRMZW4pKSB7CisgICAgICAgICAgICBwaXhIZWlnaHQgKz0gbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChudW1DaGFycyAhPSAwKQorICAgICAgICAgICAgcmV0dXJuIHBpeEhlaWdodCAqIGZUZXh0Lmxlbmd0aCgpIC8gbnVtQ2hhcnM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBhY3R1YWwgcGl4ZWwgbGVuZ3RoIG9mIHRoZSB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGZvcm1hdHRlZEhlaWdodCgpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICByZXR1cm4gZlBpeEhlaWdodDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgdHdvIG1vZGVzIGZvciBkZWFsaW5nIHdpdGggY2FycmlhZ2UgcmV0dXJucyBhdCB0aGUgZW5kIG9mIGEgbGluZS4gIEluIHRoZSAnaW5maW5pdGUgd2lkdGgnCisgICAgICogbW9kZSwgdGhlIGxhc3QgY2hhcmFjdGVyIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBpbmZpbml0ZSB3aWR0aC4gIFRodXMgaWYgdGhlIHBvaW50IGlzIHBhc3QgdGhlICdyZWFsJworICAgICAqIGVuZCBvZiB0aGUgbGluZSwgdGhlIG9mZnNldCBpcyB0aGUgcG9zaXRpb24gYmVmb3JlIHRoYXQgbGFzdCBjaGFyYWN0ZXIsIGFuZCB0aGUgb2Zmc2V0IGlzIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoYXQgY2hhcmFjdGVyIChwbGFjZW1lbnQgYWZ0ZXIpLiBJbiB0aGUgJ2FjdHVhbCB3aWR0aCcgbW9kZSwgdGhlIG9mZnNldCBpcyBwb3NpdGlvbmVkIGFmdGVyCisgICAgICogdGhhdCBjaGFyYWN0ZXIsIGJ1dCBzdGlsbCBhc3NvY2lhdGVkIHdpdGggaXQgKHBsYWNlbWVudCBiZWZvcmUpLgorICAgICAqLworCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGxpbmVEaW1Ub09mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgaW50IGxpbmUsIGludCBsaW5lWCwgaW50IGxpbmVZLCBUZXh0T2Zmc2V0IGFuY2hvciwgYm9vbGVhbiBpbmZpbml0ZU1vZGUpCisgICAgeworICAgIC8vIHRlbXBvcmFyaWx5IGFkanVzdCBsaW5lIGluZm8gdG8gcmVtb3ZlIHRoZSBuZWdhdGl2ZSBjaGFyIHN0YXJ0cyB1c2VkIGluIHRoZSBsaW5lIHRhYmxlLgorICAgIC8vIHRoZW4gY2FsbCB0aHJvdWdoIHRvIHRoZSBwYXJhZ3JhcGggcmVuZGVyZXIgdG8gZ2V0IHRoZSBvZmZzZXQuICBEb24ndCBwdXQgbGluZSBlbmQKKyAgICAvLyBvcHRpbWl6YXRpb24gaGVyZSwgbGV0IHRoZSByZW5kZXJlciBkbyBpdCAocGVyaGFwcyBpdCBkb2VzIGZhbmN5IHN0dWZmIHdpdGggdGhlIG1hcmdpbnMpLgorCisgICAgICAgIExheW91dEluZm8gbGluZUluZm8gPSBmTGluZVRhYmxlW2xpbmVdOworCisgICAgICAgIHJlc3VsdCA9IGxpbmVJbmZvLnBpeGVsVG9PZmZzZXQoZkxUQ3VyVGV4dExlbiwgcmVzdWx0LCBmTGluZURpbSwgbGluZVgsIGxpbmVZKTsKKworICAgICAgICBpZiAoaW5maW5pdGVNb2RlICYmCisgICAgICAgICAgICAocmVzdWx0LmZPZmZzZXQgPiBsaW5lSW5mby5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbikpICYmCisgICAgICAgICAgICBpc1BhcmFCcmVha0JlZm9yZShyZXN1bHQuZk9mZnNldCkgJiYKKyAgICAgICAgICAgIChhbmNob3IgPT0gbnVsbCB8fCBhbmNob3IuZk9mZnNldCA9PSByZXN1bHQuZk9mZnNldCAtIDEpKSB7CisKKyAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQocmVzdWx0LmZPZmZzZXQgLSAxLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICogR2l2ZW4gYSBzY3JlZW4gbG9jYXRpb24gcCwgcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgdGV4dCBuZWFyZXN0IHRvIHAuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIGludCBweCwgaW50IHB5LCBQb2ludCBvcmlnaW4sIFRleHRPZmZzZXQgYW5jaG9yLCBib29sZWFuIGluZmluaXRlTW9kZSkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisKKyAgICAgICAgaW50IGZpbGxEOworCisgICAgICAgIGlmIChmSExpbmUpCisgICAgICAgICAgICBmaWxsRCA9IHB5IC0gb3JpZ2luLnk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZpbGxEID0gcHggLSBvcmlnaW4ueDsKKworICAgICAgICBpZiAoIWZGaWxsSW5jKQorICAgICAgICAgICAgZmlsbEQgPSAtZmlsbEQ7CisKKyAgICAgICAgaWYgKGZpbGxEIDwgMCkgeworICAgICAgICAgICAgcmVzdWx0LnNldE9mZnNldCgwLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0VG9IZWlnaHQoZmlsbEQpOworCisgICAgICAgIGlmIChmaWxsRCA+PSBmUGl4SGVpZ2h0KSB7CisgICAgICAgICAgICBib29sZWFuIGJpYXMgPSBmTFRDdXJUZXh0TGVuPT0wPyBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCA6IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgYmlhcyk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmUgPSBmaW5kTGluZUF0KGZpbGxEKTsgLy8gYWx3YXlzIGEgdmFsaWQgbGluZQorICAgICAgICBpbnQgZ1N0YXJ0ID0gbGluZUdyYXBoaWNTdGFydEludGVybmFsKGxpbmUpOworCisgICAgICAgIGludCBsaW5lWCwgbGluZVk7ICAvLyB1cHBlci1sZWZ0IGNvcm5lciBvZiBsaW5lCisgICAgICAgIGlmIChmSExpbmUpIHsKKyAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLng7CisgICAgICAgICAgICBsaW5lWSA9IGZGaWxsSW5jPyBvcmlnaW4ueSArIGdTdGFydCA6IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGxpbmVYID0gZkZpbGxJbmM/IG9yaWdpbi54ICsgZ1N0YXJ0IDogb3JpZ2luLnggLSAoZ1N0YXJ0ICsgZkxpbmVUYWJsZVtsaW5lXS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZURpbVRvT2Zmc2V0KHJlc3VsdCwgbGluZSwgcHggLSBsaW5lWCwgcHkgLSBsaW5lWSwgYW5jaG9yLCBpbmZpbml0ZU1vZGUpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmTFRDdXJUZXh0TGVuID4gMCAmJgorICAgICAgICAgICAgICAgIGlzUGFyYWdyYXBoU2VwYXJhdG9yKGZUZXh0LmF0KGZMVEN1clRleHRMZW4tMSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBvZmZzZXQgZGVzaWduYXRlcyBhIHBvaW50IG9uIHRoZSBwc2V1ZG9saW5lIGZvbGxvd2luZyBhIHBhcmFncmFwaAorICAgICAqIHNlcGFyYXRvciBhdCB0aGUgZW5kIG9mIHRleHQuICBUaGlzIGlzIHRydWUgaWYgdGhlIG9mZnNldCBpcyB0aGUgZW5kIG9mIHRleHQKKyAgICAgKiBhbmQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGlzIGEgcGFyYWdyYXBoIHNlcGFyYXRvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYWZ0ZXJMYXN0UGFyYWdyYXBoKFRleHRPZmZzZXQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9mZnNldC5mT2Zmc2V0ID09IGZMVEN1clRleHRMZW4gJiYKKyAgICAgICAgICAgIGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdpdmVuIGFuIG9mZnNldCwgcmV0dXJuIHRoZSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0IGF0IHRoZSBvZmZzZXQuCisgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyAgICAqIEByZXR1cm4gYSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBSZWN0YW5nbGUgZ2V0Q2FyZXRSZWN0KFRleHRPZmZzZXQgb2Zmc2V0LCBQb2ludCBvcmlnaW4pIHsKKworICAgICAgICBSZWN0YW5nbGUgciA9IG5ldyBSZWN0YW5nbGUoKTsKKyAgICAgICAgZ2V0Q2FyZXRSZWN0KHIsIG9mZnNldCwgb3JpZ2luKTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBnZXRDYXJldFJlY3QoUmVjdGFuZ2xlIHIsIFRleHRPZmZzZXQgb2Zmc2V0LCBQb2ludCBvcmlnaW4pIHsKKyAgICAgICAgCisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvZmZzZXQpKSB7CisgICAgICAgICAgICBpbnQgcHNldWRvTGluZUhlaWdodCA9IGxhc3RDaGFySGVpZ2h0KCk7CisgICAgICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVZID0gZkZpbGxJbmMgPyBvcmlnaW4ueSArIGZQaXhIZWlnaHQgOiBvcmlnaW4ueSAtIGZQaXhIZWlnaHQgLSBwc2V1ZG9MaW5lSGVpZ2h0OworICAgICAgICAgICAgICAgIHIuc2V0Qm91bmRzKG9yaWdpbi54LCBsaW5lWSwgMCwgcHNldWRvTGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZVggPSBmRmlsbEluYz8gb3JpZ2luLnggKyBmUGl4SGVpZ2h0IDogb3JpZ2luLnggLSBmUGl4SGVpZ2h0IC0gcHNldWRvTGluZUhlaWdodDsKKyAgICAgICAgICAgICAgICByLnNldEJvdW5kcyhsaW5lWCwgb3JpZ2luLnksIHBzZXVkb0xpbmVIZWlnaHQsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldCk7CisKKyAgICAgICAgaW50IGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lKTsKKworICAgICAgICBpbnQgbGluZVgsIGxpbmVZOworCisgICAgICAgIGlmIChmSExpbmUpIHsKKyAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLng7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54ICsgZ1N0YXJ0OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggLSAoZ1N0YXJ0ICsgZkxpbmVUYWJsZVtsaW5lXS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgYm91bmRzID0gZkxpbmVUYWJsZVtsaW5lXS5jYXJldEJvdW5kcyhmVGV4dCwgZkxUQ3VyVGV4dExlbiwgZkxpbmVEaW0sIG9mZnNldC5mT2Zmc2V0LCBsaW5lWCwgbGluZVkpOworCisgICAgICAgIHIuc2V0Qm91bmRzKGJvdW5kcyk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEcmF3IHRoZSBjYXJldChzKSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG9mZnNldCBpbnRvIHRoZSBnaXZlbiBHcmFwaGljcy4KKyAgICAqIEBwYXJhbSBnIHRoZSBHcmFwaGljcyB0byBkcmF3IGludG8KKyAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbiB0aGUgdGV4dCBmb3Igd2hpY2ggdGhlIGNhcmV0IGlzIGRyYXduCisgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyAgICAqIEBwYXJhbSBzdHJvbmdDYXJldENvbG9yIHRoZSBjb2xvciBvZiB0aGUgc3Ryb25nIGNhcmV0CisgICAgKiBAcGFyYW0gd2Vha0NhcmV0Q29sb3IgdGhlIGNvbG9yIG9mIHRoZSB3ZWFrIGNhcmV0IChpZiBhbnkpCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZHJhd0NhcmV0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHN0cm9uZ0NhcmV0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcikgeworCisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIEdyYXBoaWNzMkQgZzJkID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0R3JhcGhpY3MyRChnKTsKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQob2Zmc2V0KTsKKworICAgICAgICBMYXlvdXRJbmZvIGxpbmU7CisgICAgICAgIGludCBnU3RhcnQ7CisgICAgICAgIAorICAgICAgICBpZiAoYWZ0ZXJMYXN0UGFyYWdyYXBoKG9mZnNldCkpIHsKKyAgICAgICAgICAgIGdTdGFydCA9IGZQaXhIZWlnaHQ7CisgICAgICAgICAgICBsaW5lID0gcHNldWRvTGluZUluZm8obnVsbCwgb2Zmc2V0LmZPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGxpbmVJbmRleCA9IGdldFZhbGlkTGluZUNvbnRhaW5pbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lSW5kZXgpOworICAgICAgICAgICAgbGluZSA9IGZMaW5lVGFibGVbbGluZUluZGV4XTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGxpbmVYLCBsaW5lWTsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54OworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnkgKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIChnU3RhcnQgKyBsaW5lLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54IC0gKGdTdGFydCArIGxpbmUuZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisKKyAgICAgICAgbGluZS5yZW5kZXJDYXJldChmVGV4dCwgZkxUQ3VyVGV4dExlbiwgZzJkLCBmTGluZURpbSwgbGluZVgsIGxpbmVZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQuZk9mZnNldCwgc3Ryb25nQ2FyZXRDb2xvciwgd2Vha0NhcmV0Q29sb3IpOworICAgIH0KKworLyoqCisqIEdpdmVuIHR3byBvZmZzZXRzIGluIHRoZSB0ZXh0LCByZXR1cm4gYSByZWN0YW5nbGUgd2hpY2ggZW5jbG9zZXMgdGhlIGxpbmVzIGNvbnRhaW5pbmcgdGhlIG9mZnNldHMuCisqIE9mZnNldHMgZG8gbm90IG5lZWQgdG8gYmUgb3JkZXJlZCBvciBub25uZWdhdGl2ZS4KKyogQHBhcmFtIG9mZnNldDEsb2Zmc2V0MiBvZmZzZXRzIGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEByZXR1cm5zIGEgPHR0PlJlY3RhbmdsZTwvdHQ+LCByZWxhdGl2ZSB0byA8dHQ+b3JpZ2luPC90dD4sIHdoaWNoIGVuY2xvc2VzIHRoZSBsaW5lcyBjb250YWluaW5nIHRoZSBvZmZzZXRzCisqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2Zmc2V0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KSB7CisKKyAgICAgICAgUmVjdGFuZ2xlIHIgPSBuZXcgUmVjdGFuZ2xlKCk7CisgICAgICAgIGdldEJvdW5kaW5nUmVjdChyLCBvZmZzZXQxLCBvZmZzZXQyLCBvcmlnaW4sIHRpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisvKgorICAgIFRyYW5zZm9ybSByIGZyb20gInRleHQiIGNvb3JkaW5hdGVzIHRvICJzY3JlZW4iIGNvb3JkaW5hdGVzLgorKi8KKworICAgIHByaXZhdGUgdm9pZCBpbnRsUmVjdChQb2ludCBvcmlnaW4sIFJlY3RhbmdsZSByKSB7CisKKyAgICAgICAgaW50IGxpbmVPcmlnLCBmaWxsT3JpZzsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lT3JpZyA9IG9yaWdpbi54OworICAgICAgICAgICAgZmlsbE9yaWcgPSBvcmlnaW4ueTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVPcmlnID0gb3JpZ2luLnk7CisgICAgICAgICAgICBmaWxsT3JpZyA9IG9yaWdpbi54OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZMaW5lSW5jKQorICAgICAgICAgICAgci54ICs9IGxpbmVPcmlnOworICAgICAgICBlbHNlCisgICAgICAgICAgICByLnggPSBsaW5lT3JpZyAtIChyLnggKyByLndpZHRoKTsKKworICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICByLnkgKz0gZmlsbE9yaWc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHIueSA9IGZpbGxPcmlnIC0gKHIueSArIHIuaGVpZ2h0KTsKKworCisgICAgICAgIGlmICghZkhMaW5lKSB7CisgICAgICAgICAgICBpbnQgdCA9IHIueDsKKyAgICAgICAgICAgIHIueCA9IHIueTsKKyAgICAgICAgICAgIHIueSA9IHQ7CisgICAgICAgICAgICB0ID0gci53aWR0aDsKKyAgICAgICAgICAgIHIud2lkdGggPSByLmhlaWdodDsKKyAgICAgICAgICAgIHIuaGVpZ2h0ID0gdDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGdldEJvdW5kaW5nUmVjdChSZWN0YW5nbGUgciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgaWYgKG9mZnNldDEuZXF1YWxzKG9mZnNldDIpKSB7CisgICAgICAgICAgICBnZXRDYXJldFJlY3Qociwgb2Zmc2V0MSwgb3JpZ2luKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAob2Zmc2V0MS5ncmVhdGVyVGhhbihvZmZzZXQyKSkgeworICAgICAgICAgICAgVGV4dE9mZnNldCB0OyB0ID0gb2Zmc2V0MTsgb2Zmc2V0MSA9IG9mZnNldDI7IG9mZnNldDIgPSB0OworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQob2Zmc2V0Mik7CisKKyAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldDEpOworICAgICAgICByLnkgPSBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwobGluZSk7CisgICAgICAgIAorICAgICAgICBpbnQgZ0xpbWl0OworICAgICAgICBib29sZWFuIHNhbWVMaW5lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgob2Zmc2V0MikpCisgICAgICAgICAgICBnTGltaXQgPSBmUGl4SGVpZ2h0ICsgbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgbGluZTIgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldDIpOworICAgICAgICAgICAgZ0xpbWl0ID0gbGluZUdyYXBoaWNMaW1pdEludGVybmFsKGxpbmUyKTsKKyAgICAgICAgICAgIHNhbWVMaW5lID0gKGxpbmUgPT0gbGluZTIpOworICAgICAgICB9CisKKyAgICAgICAgci5oZWlnaHQgPSBnTGltaXQgLSByLnk7CisKKyAgICAgICAgaWYgKHNhbWVMaW5lICYmIHRpZ2h0PT1USUdIVCkgeworICAgICAgICAgICAgUmVjdGFuZ2xlIHJ0ID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICAgICAgZ2V0Q2FyZXRSZWN0KHJ0LCBvZmZzZXQxLCBvcmlnaW4pOworICAgICAgICAgICAgci5zZXRCb3VuZHMocnQpOworICAgICAgICAgICAgaWYgKCFvZmZzZXQxLmVxdWFscyhvZmZzZXQyKSkgeworICAgICAgICAgICAgICAgIGdldENhcmV0UmVjdChydCwgb2Zmc2V0Miwgb3JpZ2luKTsKKyAgICAgICAgICAgICAgICByLmFkZChydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByLnggPSBmTWluWDsKKyAgICAgICAgICAgIHIud2lkdGggPSBmTWF4WCAtIGZNaW5YOworICAgICAgICAgICAgaW50bFJlY3Qob3JpZ2luLCByKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnQoImdicjogIiArIHIueCArICIsICIgKyByLnkgKyAiLCAiICsgci53aWR0aCArICIsICIgKyByLmhlaWdodCk7CisKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCIgLS0+ICIgKyByLnggKyAiLCAiICsgci55ICsgIiwgIiArIHIud2lkdGggKyAiLCAiICsgci5oZWlnaHQpOworICAgIH0KKworICAgIC8qKgorICAgICogQ29tcHV0ZSB0aGUgb2Zmc2V0IHJlc3VsdGluZyBmcm9tIG1vdmluZyBmcm9tIGEgcHJldmlvdXMgb2Zmc2V0IGluIGRpcmVjdGlvbiBkaXIuCisgICAgKiBGb3IgYXJyb3cga2V5cy4KKyAgICAqIEBwYXJhbSByZXN1bHQgdGhlIG9mZnNldCB0byBtb2RpZnkgYW5kIHJldHVybi4gIG1heSBiZSBudWxsLCBpZiBzbyBhIG5ldyBvZmZzZXQgaXMgYWxsb2NhdGVkLCBtb2RpZmllZCwgYW5kIHJldHVybmVkLgorICAgICogQHBhcmFtIHByZXZpb3VzT2Zmc2V0IHRoZSBpbnNlcnRpb24gb2Zmc2V0IHByaW9yIHRvIHRoZSBhcnJvdyBrZXkgcHJlc3MuCisgICAgKiBAcGFyYW0gZGlyZWN0aW9uIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGFycm93IGtleSAoZVVwLCBlRG93biwgZUxlZnQsIG9yIGVSaWdodCkKKyAgICAqIEByZXR1cm5zIG5ldyBvZmZzZXQgYmFzZWQgb24gZGlyZWN0aW9uIGFuZCBwcmV2aW91cyBvZmZzZXQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFRleHRPZmZzZXQgZmluZEluc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgVGV4dE9mZnNldCBwcmV2T2Zmc2V0LCBzaG9ydCBkaXIpCisgICAgeworICAgICAgICByZXR1cm4gZmluZE5ld0luc2VydGlvbk9mZnNldChyZXN1bHQsIHByZXZPZmZzZXQsIHByZXZPZmZzZXQsIGRpcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNmb3JtIGtleSBkaXJlY3Rpb246ICBhZnRlciB0aGlzIHN0ZXAsICJsZWZ0IiBtZWFucyBwcmV2aW91cyBnbHlwaCwgInJpZ2h0IiBtZWFucyBuZXh0IGdseXBoLAorICAgICAqInVwIiBtZWFucyBwcmV2aW91cyBsaW5lLCAiZG93biIgbWVhbnMgbmV4dCBsaW5lCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydCByZW1hcEFycm93S2V5KHNob3J0IGRpcikgeworCisgICAgICAgIGlmICghZkxpbmVJbmMpIHsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gZUxlZnQpCisgICAgICAgICAgICAgICAgZGlyID0gZVJpZ2h0OworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVSaWdodCkKKyAgICAgICAgICAgICAgICBkaXIgPSBlTGVmdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZkZpbGxJbmMpIHsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gZVVwKQorICAgICAgICAgICAgICAgIGRpciA9IGVEb3duOworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVEb3duKQorICAgICAgICAgICAgICAgIGRpciA9IGVVcDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZkhMaW5lKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IGVMZWZ0KQorICAgICAgICAgICAgICAgIGRpciA9IGVVcDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpciA9PSBlUmlnaHQpCisgICAgICAgICAgICAgICAgZGlyID0gZURvd247CisgICAgICAgICAgICBlbHNlIGlmIChkaXIgPT0gZVVwKQorICAgICAgICAgICAgICAgIGRpciA9IGVMZWZ0OworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVEb3duKQorICAgICAgICAgICAgICAgIGRpciA9IGVSaWdodDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkaXI7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb21wdXRlIHRoZSBvZmZzZXQgcmVzdWx0aW5nIGZyb20gbW92aW5nIGZyb20gYSBwcmV2aW91cyBvZmZzZXQsIHN0YXJ0aW5nIGF0IGFuIG9yaWdpbmFsIG9mZnNldCwgaW4gZGlyZWN0aW9uIGRpci4KKyAgICAqIEZvciBhcnJvdyBrZXlzLiAgVXNlIHRoaXMgZm9yICJzbWFydCIgdXAvZG93biBrZXlzLgorICAgICogQHBhcmFtIHJlc3VsdCB0aGUgb2Zmc2V0IHRvIG1vZGlmeSBhbmQgcmV0dXJuLiAgTWF5IGJlIG51bGwsIGlmIHNvIGEgbmV3IG9mZnNldCBpcyBhbGxvY2F0ZWQsIG1vZGlmaWVkLCBhbmQgcmV0dXJuZWQuCisgICAgKiBAcGFyYW0gb3JpZ09mZnNldCB0aGUgb2Zmc2V0IGF0IHdoaWNoIGFuIHVwLWRvd24gYXJyb3cga2V5IHNlcXVlbmNlIGJlZ2FuLgorICAgICogQHBhcmFtIHByZXZPZmZzZXQgdGhlIGluc2VydGlvbiBvZmZzZXQgcHJpb3IgdG8gdGhlIGFycm93IGtleSBwcmVzcworICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisgICAgKiBAcmV0dXJucyBuZXcgb2Zmc2V0IGJhc2VkIG9uIGRpcmVjdGlvbiwgb3JpZ2luYWwgb2Zmc2V0LCBhbmQgcHJldmlvdXMgb2Zmc2V0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBUZXh0T2Zmc2V0IGZpbmROZXdJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIFRleHRPZmZzZXQgb3JpZ09mZnNldCwgVGV4dE9mZnNldCBwcmV2T2Zmc2V0LCBzaG9ydCBkaXIpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpCisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgIGRpciA9IHJlbWFwQXJyb3dLZXkoZGlyKTsKKworICAgICAgICAvLyBhc3N1bWUgdGhhdCB0ZXh0IGF0IG9yaWdPZmZzZXQgYW5kIHByZXZPZmZzZXQgaGFzIGFscmVhZHkgYmVlbiBmb3JtYXR0ZWQKKworICAgICAgICBpZiAoZGlyID09IGVMZWZ0IHx8IGRpciA9PSBlUmlnaHQpIHsKKyAgICAgICAgICAgIGZvcm1hdFRvT2Zmc2V0KHByZXZPZmZzZXQpOworICAgICAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworCisgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBmTGluZVRhYmxlW2xpbmVdLmdldE5leHRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgcHJldk9mZnNldC5mT2Zmc2V0LCBkaXIpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5mT2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5mT2Zmc2V0ID49IGZMVEN1clRleHRMZW4pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0T2Zmc2V0KGZMVEN1clRleHRMZW4sIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgZGlzdE9uTGluZTsKKworICAgICAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvcmlnT2Zmc2V0KSkKKyAgICAgICAgICAgICAgICBkaXN0T25MaW5lID0gMDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBsaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhvcmlnT2Zmc2V0KTsKKworICAgICAgICAgICAgICAgIGRpc3RPbkxpbmUgPSBmTGluZVRhYmxlW2xpbmVdLnN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbihmTFRDdXJUZXh0TGVuLCBmTGluZURpbSwgb3JpZ09mZnNldC5mT2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZ2V0IHByZXZPZmZzZXQncyBsaW5lCisgICAgICAgICAgICBpbnQgbGluZTsKKyAgICAgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgocHJldk9mZnNldCkpCisgICAgICAgICAgICAgICAgbGluZSA9IGxhc3RMaW5lKCkgKyAxOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGdldExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworCisgICAgICAgICAgICAgICAgaWYgKGRpciA9PSBlRG93biAmJiAobGluZSA9PSBrQWZ0ZXJMYXN0TGluZSB8fCBsaW5lID09IGxhc3RMaW5lKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAobGFzdExpbmVDaGFyU3RvcCgpIDwgZlRleHQubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHNoaWZ0VGFibGVUbyhsYXN0TGluZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0VGV4dChsYXN0TGluZUNoYXJTdG9wKCksIDEsIEludGVnZXIuTUFYX1ZBTFVFLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGdldExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChsaW5lID09IGtCZWZvcmVGaXJzdExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsYXN0TGluZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGlyID09IGVVcCkKKyAgICAgICAgICAgICAgICBsaW5lLS07CisgICAgICAgICAgICBlbHNlIGlmIChkaXIgPT0gZURvd24pCisgICAgICAgICAgICAgICAgbGluZSsrOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRlYnVnOiBJbGxlZ2FsIGRpcmVjdGlvbiBwYXJhbWV0ZXIgaW4gZmluZE5ld0luc2VydGlvbk9mZnNldCIpOworCisgICAgICAgICAgICBpZiAobGluZSA8IDApIHsKKyAgICAgICAgICAgICAgICAvL3Jlc3VsdC5zZXRPZmZzZXQoMCwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hc3NpZ24ocHJldk9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChsaW5lID4gbGFzdExpbmUoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChmTGluZVRhYmxlW2xpbmVdID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSAoZGlyID09IGVVcCk/IGZMVFBvc0VuZCA6IGZMVE5lZ1N0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gYW5jaG9yIGlzIG51bGwgc2luY2Ugd2UgbmV2ZXIgd2FudCBhIHBvc2l0aW9uIGFmdGVyIG5ld2xpbmUuICBJZiB3ZSB1c2VkIHRoZSByZWFsIGFuY2hvciwKKyAgICAgICAgICAgICAgICAvLyB3ZSBtaWdodCBub3QgaWdub3JlIHRoZSBuZXdsaW5lIGV2ZW4gdGhvdWdoIGluZmluaXRlTW9kZSBpcyB0cnVlLgorICAgICAgICAgICAgICAgIGxpbmVEaW1Ub09mZnNldChyZXN1bHQsIGxpbmUsIGRpc3RPbkxpbmUsIDAsIG51bGwsIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJmbmlvIHByZXY6ICIgKyBwcmV2T2Zmc2V0ICsgIiwgbmV3OiAiICsgcmVzdWx0KTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgZkJnRm9ybWF0QWxsb3dlZCA9IGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgZW5hYmxlQkdGb3JtYXQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZCZ0Zvcm1hdEFsbG93ZWQgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5KCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgbGluZUluZGV4VG9OdW1iZXIoaW50IGxpbmVJbmRleCkgeworCisgICAgICAgIGlmIChsaW5lSW5kZXggPD0gZkxUUG9zRW5kKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUluZGV4OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleCAtIChmTFROZWdTdGFydC1mTFRQb3NFbmQtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBsaW5lTnVtYmVyVG9JbmRleChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIGlmIChsaW5lTnVtYmVyIDw9IGZMVFBvc0VuZCkgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZU51bWJlciArIChmTFROZWdTdGFydC1mTFRQb3NFbmQtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZm9ybWF0VG9MaW5lTnVtYmVyKGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgd2hpbGUgKGxhc3RMaW5lQ2hhclN0b3AoKSA8IGZMVEN1clRleHRMZW4gJiYKKyAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID49IGxpbmVJbmRleFRvTnVtYmVyKGZMVFNpemUpKSB7CisgICAgICAgICAgICAvLyBjb3VsZCBiZSBzbWFydGVyIGFuZCBjaG9vc2UgbGFyZ2VyIGFtb3VudHMgZm9yCisgICAgICAgICAgICAvLyBsYXJnZXIgbGluZXMsIGJ1dCBwcm9iYWJseSBub3Qgd29ydGggdGhlIGVmZm9ydAorICAgICAgICAgICAgZm9ybWF0VG9IZWlnaHQoZlBpeEhlaWdodCArIGtQaXhJbmNyZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBTVFJJQ1QgPSB0cnVlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gTEVOSUVOVCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogSW5zdXJlIHRoYXQgYXQgbGVhc3QgbGluZU51bWJlciBsaW5lcyBleGlzdCwgZG9pbmcKKyAgICAgKiBleHRyYSBmb3JtYXR0aW5nIGlmIG5lY2Vzc2FyeS4KKyAgICAgKiBUaHJvd3MgZXhjZXB0aW9uIGlmIGxpbmVOdW1iZXIgaXMgbm90IHZhbGlkLgorICAgICAqIEBwYXJhbSBzdHJpY3QgaWYgU1RSSUNULCBvbmx5IGxpbmVzIFswLi4ubWF4TGluZU51bWJlcigpXQorICAgICAqICAgICAgICBhcmUgcGVybWl0dGVkLiAgSWYgTEVOSUVOVCwgbWF4TGluZU51bWJlcigpKzEgaXMKKyAgICAgKiAgICAgICAgdGhlIGdyZWF0ZXN0IHZhbGlkIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZUxpbmVOdW1iZXIoaW50IGxpbmVOdW1iZXIsIGJvb2xlYW4gc3RyaWN0KSB7CisKKyAgICAgICAgZm9ybWF0VG9MaW5lTnVtYmVyKGxpbmVOdW1iZXIpOworCisgICAgICAgIGludCBtYXhOdW1iZXIgPSBsaW5lSW5kZXhUb051bWJlcihmTFRTaXplKTsKKyAgICAgICAgaWYgKHN0cmljdCA9PSBTVFJJQ1QpIHsKKyAgICAgICAgICAgIG1heE51bWJlciAtPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiBtYXhOdW1iZXIrMSB8fAorICAgICAgICAgICAgICAgIChsaW5lTnVtYmVyID09IG1heE51bWJlcisxICYmICFlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGxpbmUgbnVtYmVyOiAiICsgbGluZU51bWJlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBnZXRMaW5lQ291bnQoKSB7CisKKyAgICAgICAgLy8gZm9ybWF0IGFsbCB0ZXh0OgorICAgICAgICBmb3JtYXRUb0hlaWdodChJbnRlZ2VyLk1BWF9WQUxVRSk7CisKKyAgICAgICAgaW50IGxpbmVDb3VudCA9IGxpbmVJbmRleFRvTnVtYmVyKGZMVFNpemUpOworCisgICAgICAgIGlmIChlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkpIHsKKyAgICAgICAgICAgIGxpbmVDb3VudCArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmVDb3VudDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUNvbnRhaW5pbmcoaW50IGNoYXJJbmRleCkgeworICAgICAgICAKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQoY2hhckluZGV4LCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIAorICAgICAgICBib29sZWFuIHBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICBpZiAoY2hhckluZGV4ID09IGZMVEN1clRleHRMZW4gJiYgY2hhckluZGV4ID4gMCkgeworICAgICAgICAgICAgcGxhY2VtZW50ID0gZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpPyBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxpbmVDb250YWluaW5nKGNoYXJJbmRleCwgcGxhY2VtZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvZmZzZXQpKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUluZGV4VG9OdW1iZXIoZkxUU2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsaW5lQ29udGFpbmluZyhvZmZzZXQuZk9mZnNldCwgb2Zmc2V0LmZQbGFjZW1lbnQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBsaW5lQ29udGFpbmluZyhpbnQgb2ZmLCBib29sZWFuIHBsYWNlbWVudCkgeworICAgICAgICAKKyAgICAgICAgaW50IGxpbmUgPSBvZmY9PTA/IDAgOiBnZXRMaW5lQ29udGFpbmluZyhvZmYsIHBsYWNlbWVudCk7CisgICAgICAgIAorICAgICAgICBpZiAobGluZSA9PSBrQWZ0ZXJMYXN0TGluZSkgeworICAgICAgICAgICAgbGluZSA9IGZMVFNpemU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxpbmVDb250YWluaW5nIGdvdCBpbnZhbGlkIHJlc3VsdCBmcm9tIGdldExpbmVDb250YWluaW5nKCkuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZUluZGV4VG9OdW1iZXIobGluZSk7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZVJhbmdlTG93KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIFNUUklDVCk7CisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA9PSBmTFRTaXplKSB7CisgICAgICAgICAgICBpZiAoZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleCA+PSBmTFRTaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJsaW5lTnVtYmVyIGlzIGludmFsaWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNoYXJTdGFydEludGVybmFsKGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIFNUUklDVCk7CisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA9PSBmTFRTaXplKSB7CisgICAgICAgICAgICBpZiAoZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleCA+PSBmTFRTaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJsaW5lTnVtYmVyIGlzIGludmFsaWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNoYXJMaW1pdEludGVybmFsKGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHRoZSBsaW5lIGF0IHRoZSBnaXZlbiBncmFwaGljIGhlaWdodC4KKyAgICAgKiBJZiBoZWlnaHQgaXMgZ3JlYXRlciB0aGFuIGZ1bGwgaGVpZ2h0LCByZXR1cm4gbGluZSBjb3VudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lQXRIZWlnaHQoaW50IGhlaWdodCkgeworCisgICAgICAgIGlmIChoZWlnaHQgPj0gZlBpeEhlaWdodCkgeworCisgICAgICAgICAgICBpbnQgbGluZSA9IGdldExpbmVDb3VudCgpOworICAgICAgICAgICAgaWYgKGhlaWdodCA8IGZGdWxsUGl4SGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgbGluZSAtPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaGVpZ2h0IDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleFRvTnVtYmVyKGZpbmRMaW5lQXQoaGVpZ2h0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lR3JhcGhpY1N0YXJ0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIExFTklFTlQpOworCisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA8IGZMVFNpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwoaW5kZXgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IGZMVFNpemUrMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmRnVsbFBpeEhlaWdodDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmUGl4SGVpZ2h0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIGxpbmVJc0xlZnRUb1JpZ2h0KGludCBsaW5lTnVtYmVyKSB7CisgICAgICAgIAorICAgICAgICB2YWxpZGF0ZUxpbmVOdW1iZXIobGluZU51bWJlciwgU1RSSUNUKTsKKyAgICAgICAgCisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworICAgICAgICAKKyAgICAgICAgaWYgKGluZGV4IDwgZkxUU2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIGZMaW5lVGFibGVbaW5kZXhdLmlzTGVmdFRvUmlnaHQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQoZkxUQ3VyVGV4dExlbik7CisgICAgICAgICAgICByZXR1cm4gIVRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9SVEwuZXF1YWxzKHN0LmdldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogTnVtYmVyIG9mIHBpeGVscyBieSB3aGljaCB0byBhZHZhbmNlIGZvcm1hdHRpbmcgaW4gdGhlIGJhY2tncm91bmQuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1BpeEluY3JlbWVudCA9IDEwMDsKKworICAgIC8qKgorICAgICogVGltZSB0byBzbGVlcCBiZXR3ZWVuIGJhY2tncm91bmQgZm9ybWF0dGluZyBvcGVyYXRpb25zLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtJbnRlcnZhbCA9IDEwMDsKKworICAgIC8qKgorICAgICogUGVyZm9ybSBwZXJpb2RpYyBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBydW4oKQorICAgIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIHdoaWxlKCFmQmdGb3JtYXRBbGxvd2VkKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9ybWF0VG9IZWlnaHQoZlBpeEhlaWdodCArIGtQaXhJbmNyZW1lbnQpOworCisgICAgICAgICAgICAgICAgaWYgKGxhc3RMaW5lQ2hhclN0b3AoKSA9PSBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICAgICAgICAgIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoa0ludGVydmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgUGFyYWdyYXBoUmVuZGVyZXIgZ2V0UmVuZGVyZXJGb3IoQXR0cmlidXRlTWFwIHMpIHsKKyAgICAKKyAgICAgICAgLy8gTm90ZTogIGV2ZW50dWFsbHkgd2UgY291bGQgbGV0IGNsaWVudHMgcHV0IHRoZWlyIG93biByZW5kZXJlcnMKKyAgICAgICAgLy8gb24gdGhlIHRleHQuCisgICAgICAgIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciByZW5kZXJlciA9IChCaWRpUGFyYWdyYXBoUmVuZGVyZXIpIGZSZW5kZXJlckNhY2hlLmdldChzKTsKKyAgICAgICAgaWYgKHJlbmRlcmVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IEJpZGlQYXJhZ3JhcGhSZW5kZXJlcihmRGVmYXVsdFZhbHVlcy5hZGRBdHRyaWJ1dGVzKHMpLCBmRGVmYXVsdENoYXJNZXRyaWMpOworICAgICAgICAgICAgZlJlbmRlcmVyQ2FjaGUucHV0KHMsIHJlbmRlcmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0JpZGlQYXJhZ3JhcGhSZW5kZXJlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9CaWRpUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzBmMmViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9CaWRpUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpAQCAtMCwwICsxLDExNDcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuU2hhcGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuVGFiU3RvcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkRDb252ZXJzaW9uOworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3MyRDsKKworaW1wb3J0IGphdmEuYXd0LmZvbnQuRm9udFJlbmRlckNvbnRleHQ7CitpbXBvcnQgamF2YS5hd3QuZm9udC5UZXh0TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LmZvbnQuTGluZUJyZWFrTWVhc3VyZXI7CitpbXBvcnQgamF2YS5hd3QuZm9udC5UZXh0SGl0SW5mbzsKKworaW1wb3J0IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtOworaW1wb3J0IGphdmEuYXd0Lmdlb20uR2VuZXJhbFBhdGg7CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5SZWN0YW5nbGUyRDsKKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuRm9udFJlbmRlckNvbnRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlRleHRMYXlvdXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkxpbmVCcmVha01lYXN1cmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5UZXh0SGl0SW5mbzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5BZmZpbmVUcmFuc2Zvcm07CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdlbmVyYWxQYXRoOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5SZWN0YW5nbGUyRDsKK0pESzExSU1QT1JUUyovCisKK2ZpbmFsIGNsYXNzIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciBleHRlbmRzIFBhcmFncmFwaFJlbmRlcmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBCaWRpU2VnbWVudCB7CisgICAgICAgIFRleHRMYXlvdXQgZkxheW91dDsKKyAgICAgICAgUmVjdGFuZ2xlMkQuRmxvYXQgZkJvdW5kczsKKyAgICAgICAgaW50IGZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgQmlkaUxheW91dEluZm8gZXh0ZW5kcyBMYXlvdXRJbmZvCisgICAgeyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBmQ2hhckxlbmd0aDsgICAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBvbiBsaW5lICh3YXMgZkxlbmd0aCkKKyAgICAgICAgaW50IGZBc2NlbnQ7CisgICAgICAgIGludCBmRGVzY2VudDsKKyAgICAgICAgaW50IGZMZWFkaW5nOworICAgICAgICBpbnQgZlZpc2libGVBZHZhbmNlOyAgLy8gZGlzdGFuY2UgYWxvbmcgbGluZSBkaXJlY3Rpb24gaWUgd2lkdGgKKyAgICAgICAgaW50IGZUb3RhbEFkdmFuY2U7ICAgIC8vIGRpc3RhbmNlIGFsb25nIGxpbmUgZGlyZWN0aW9uIGluY2x1ZGluZyB0cmFpbGluZyB3aGl0ZXNwYWNlCisKKyAgICAgICAgaW50IGZMZWFkaW5nTWFyZ2luOyAgIC8vIHNjcmVlbiBkaXN0YW5jZSBmcm9tIGxlYWRpbmcgbWFyZ2luCisKKyAgICAgICAgYm9vbGVhbiBmTGVmdFRvUmlnaHQ7IC8vIHRydWUgaWZmIHRoZSBvcmllbnRhdGlvbiBpcyBsZWZ0LXRvLXJpZ2h0CisKKyAgICAgICAgZmluYWwgVmVjdG9yIGZTZWdtZW50cyA9IG5ldyBWZWN0b3IoKTsgLy8gc2VnbWVudHMgdG8gcmVuZGVyLCBpbiBsb2dpY2FsIG9yZGVyCisKKyAgICAgICAgcHVibGljIGludCBnZXRDaGFyTGVuZ3RoKCkgeworICAgICAgICAgICAgcmV0dXJuIGZDaGFyTGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRBc2NlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkFzY2VudDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGVzY2VudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmRGVzY2VudDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBmTGVhZGluZzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VmlzaWJsZUFkdmFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gZlZpc2libGVBZHZhbmNlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRUb3RhbEFkdmFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gZlRvdGFsQWR2YW5jZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZ01hcmdpbigpIHsKKyAgICAgICAgICAgIHJldHVybiBmTGVhZGluZ01hcmdpbjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTGVmdFRvUmlnaHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkxlZnRUb1JpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRIZWlnaHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkFzY2VudCArIGZEZXNjZW50ICsgZkxlYWRpbmc7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJMYXlvdXRJbmZvKGNoYXJTdGFydDogIiArIGdldENoYXJTdGFydCgwKSArCisgICAgICAgICAgICAgICAgIiwgZkNoYXJMZW5ndGg6ICIgKyBmQ2hhckxlbmd0aCArCisgICAgICAgICAgICAgICAgIiwgZkFzY2VudDogIiArIGZBc2NlbnQgKworICAgICAgICAgICAgICAgICIsIGZEZXNjZW50OiAiICsgZkRlc2NlbnQgKworICAgICAgICAgICAgICAgICIsIGZWaXNpYmxlQWR2YW5jZTogIiArIGZWaXNpYmxlQWR2YW5jZSArCisgICAgICAgICAgICAgICAgIiwgZlRvdGFsQWR2YW5jZTogIiArIGZUb3RhbEFkdmFuY2UgKworICAgICAgICAgICAgICAgICIsIGZMZWFkaW5nTWFyZ2luOiAiICsgZkxlYWRpbmdNYXJnaW4gKworICAgICAgICAgICAgICAgICIpIjsKKyAgICAgICAgfQorCisgICAgICAgIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciBmUmVuZGVyZXI7CisKKyAgICAgICAgLy8ganVzdCBkZWxlZ2F0ZSB0byByZW5kZXJlciBmb3Igbm93CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVuZGVyV2l0aEhpZ2hsaWdodChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IpIHsKKworICAgICAgICAgICAgZlJlbmRlcmVyLnJlbmRlcldpdGhIaWdobGlnaHQodGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxTdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0Q29sb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVuZGVyKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisgICAgICAgICAgICBmUmVuZGVyZXIucmVuZGVyKHRoaXMsIGxlbmd0aEJhc2lzLCBnLCBsaW5lQm91bmQsIHgsIHkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVuZGVyQ2FyZXQoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igc3Ryb25nQ2FyZXRDb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igd2Vha0NhcmV0Q29sb3IpIHsKKyAgICAgICAgICAgIGZSZW5kZXJlci5yZW5kZXJDYXJldCh0aGlzLCB0ZXh0LCBsZW5ndGhCYXNpcywgZywgbGluZUJvdW5kLCB4LCB5LCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9uZ0NhcmV0Q29sb3IsIHdlYWtDYXJldENvbG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBUZXh0T2Zmc2V0IHBpeGVsVG9PZmZzZXQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBmUmVuZGVyZXIucGl4ZWxUb09mZnNldCh0aGlzLCBsZW5ndGhCYXNpcywgcmVzdWx0LCBsaW5lQm91bmQsIHgsIHkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFJlY3RhbmdsZSBjYXJldEJvdW5kcyhNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBmUmVuZGVyZXIuY2FyZXRCb3VuZHModGhpcywgdGV4dCwgbGVuZ3RoQmFzaXMsIGxpbmVCb3VuZCwgY2hhck9mZnNldCwgeCwgeSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgc3Ryb25nQ2FyZXRCYXNlbGluZVBvc2l0aW9uKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZSZW5kZXJlci5zdHJvbmdDYXJldEJhc2VsaW5lUG9zaXRpb24odGhpcywgbGVuZ3RoQmFzaXMsIGxpbmVCb3VuZCwgY2hhck9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldE5leHRPZmZzZXQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXIpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZSZW5kZXJlci5nZXROZXh0T2Zmc2V0KHRoaXMsIGxlbmd0aEJhc2lzLCBjaGFyT2Zmc2V0LCBkaXIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMVVNIX0xFQURJTkcgPSBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcuaW50VmFsdWUoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0hfQ0VOVEVSID0gVGV4dEF0dHJpYnV0ZS5GTFVTSF9DRU5URVIuaW50VmFsdWUoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0hfVFJBSUxJTkcgPSBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HLmludFZhbHVlKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExZX0pVU1RJRklFRCA9IFRleHRBdHRyaWJ1dGUuRlVMTFlfSlVTVElGSUVELmludFZhbHVlKCk7CisKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBjYWNoZVN0eWxlID0gbnVsbDsKKworICAgIHByaXZhdGUgZmxvYXQgZkxlYWRpbmdNYXJnaW47CisgICAgcHJpdmF0ZSBmbG9hdCBmVHJhaWxpbmdNYXJnaW47CisgICAgcHJpdmF0ZSBmbG9hdCBmRmlyc3RMaW5lSW5kZW50OworICAgIHByaXZhdGUgZmxvYXQgZk1pbkxpbmVTcGFjaW5nOworICAgIHByaXZhdGUgZmxvYXQgZkV4dHJhTGluZVNwYWNpbmc7CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZkZsdXNoID0gLTE7CisgICAgcHJpdmF0ZSBNVGFiUnVsZXIgZlRhYlJ1bGVyOworICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBmTHRyRGVmYXVsdDsKKyAgICBwcml2YXRlIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMgZkRlZmF1bHRDaGFyTWV0cmljOworICAgIAorICAgIEJpZGlQYXJhZ3JhcGhSZW5kZXJlcihBdHRyaWJ1dGVNYXAgcFN0eWxlLCBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljIGRlZmF1bHRDaGFyTWV0cmljKSB7CisKKyAgICAgICAgZkRlZmF1bHRDaGFyTWV0cmljID0gZGVmYXVsdENoYXJNZXRyaWM7CisgICAgICAgIGluaXRSZW5kZXJlcihwU3R5bGUpOworICAgIH0KKworICAgIHByaXZhdGUgZmxvYXQgZ2V0RmxvYXRWYWx1ZShPYmplY3Qga2V5LCBBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKyAgICAgICAgcmV0dXJuICgoRmxvYXQpc3R5bGUuZ2V0KGtleSkpLmZsb2F0VmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0SW50VmFsdWUoT2JqZWN0IGtleSwgQXR0cmlidXRlTWFwIHN0eWxlKSB7CisgICAgICAgIHJldHVybiAoKEludGVnZXIpc3R5bGUuZ2V0KGtleSkpLmludFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5PVEU6ICBpdCBpcyBpbGxlZ2FsIHRvIGluaXRpYWxpemUgYSBTdGFuZGFyZFBhcmFncmFwaFJlbmRlcmVyIGZvciBhbnkgc3R5bGUKKyAgICAgKiBvdGhlciB0aGFuIHRoZSBvbmUgaXQgd2FzIGNyZWF0ZWQgd2l0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0UmVuZGVyZXIoQXR0cmlidXRlTWFwIHBTdHlsZSkgeworCisgICAgICAgIGlmIChjYWNoZVN0eWxlID09IG51bGwpIHsKKworICAgICAgICAgICAgZkxlYWRpbmdNYXJnaW4gPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sIHBTdHlsZSk7CisgICAgICAgICAgICBmVHJhaWxpbmdNYXJnaW4gPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOLCBwU3R5bGUpOworICAgICAgICAgICAgZkZpcnN0TGluZUluZGVudCA9IGdldEZsb2F0VmFsdWUoVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwgcFN0eWxlKTsKKyAgICAgICAgICAgIGZNaW5MaW5lU3BhY2luZyA9IGdldEZsb2F0VmFsdWUoVGV4dEF0dHJpYnV0ZS5NSU5fTElORV9TUEFDSU5HLCBwU3R5bGUpOworICAgICAgICAgICAgZkV4dHJhTGluZVNwYWNpbmcgPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLCBwU3R5bGUpOworCisgICAgICAgICAgICBmRmx1c2ggPSBnZXRJbnRWYWx1ZShUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsIHBTdHlsZSk7CisKKyAgICAgICAgICAgIGZUYWJSdWxlciA9IChNVGFiUnVsZXIpIHBTdHlsZS5nZXQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBPYmplY3QgcnVuRGlyID0gcFN0eWxlLmdldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04pOworICAgICAgICAgICAgZkx0ckRlZmF1bHQgPSAhVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTC5lcXVhbHMocnVuRGlyKTsKKworICAgICAgICAgICAgY2FjaGVTdHlsZSA9IHBTdHlsZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChwU3R5bGUgIT0gY2FjaGVTdHlsZSkgeworICAgICAgICAgICAgaWYgKCFwU3R5bGUuZXF1YWxzKGNhY2hlU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0IHRvIHNoYXJlIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciBiZXR3ZWVuIHN0eWxlcyEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNhY2hlU3R5bGUgPSBwU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVGFiKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID09ICdcdCc7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbCBpbiBpbmZvIHdpdGggdGhlIG5leHQgbGluZS4KKyAgICAgKiBAcGFyYW0gbWVhc3VyZXIgdGhlIExpbmVCcmVha01lYXN1cmVyIGZvciB0aGlzIHBhcmFncmFwaC4KKyAgICAgKiAgQ3VycmVudCBwb3NpdGlvbiBzaG91bGQgYmUgdGhlIGZpcnN0IGNoYXJhY3RlciBvbiB0aGUgbGluZS4KKyAgICAgKiAgSWYgbnVsbCwgYSAwLWxlbmd0aCBsaW5lIGlzIGdlbmVyYXRlZC4gIElmIG1lYXN1cmVyIGlzIG51bGwKKyAgICAgKiAgdGhlbiBwYXJhZ3JhcGhTdGFydCBhbmQgcGFyYWdyYXBoTGltaXQgc2hvdWxkIGJlIGVxdWFsLgorICAgICAqLworICAgIC8vIFVzdWFsbHkgdG90YWxGb3JtYXRXaWR0aCBhbmQgbGluZUJvdW5kIHdpbGwgYmUgdGhlIHNhbWUuCisgICAgLy8gdG90YWxGb3JtYXRXaWR0aCBpcyB1c2VkIGZvciB3cmFwcGluZywgYnV0IGxpbmVCb3VuZCBpcworICAgIC8vIGZvciBmbHVzaGluZy4gIFRoZXNlIG1heSBiZSBkaWZmZXJlbnQgZm9yIHVud3JhcHBlZCB0ZXh0LAorICAgIC8vIGZvciBleGFtcGxlLgorICAgIHB1YmxpYyBMYXlvdXRJbmZvIGxheW91dChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dEluZm8gbGF5b3V0VG9SZXVzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJDb250ZXh0IGZyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0b3RhbEZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kKSB7CisKKyAgICAgICAgaWYgKChtZWFzdXJlcj09bnVsbCkgIT0gKHBhcmFncmFwaFN0YXJ0PT1wYXJhZ3JhcGhMaW1pdCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJtZWFzdXJlciwgcGFyYWdyYXBoU3RhcnQsIHBhcmFncmFwaExpbWl0IGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorICAgICAgICBCaWRpTGF5b3V0SW5mbyBsaW5lID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGluZSA9IChCaWRpTGF5b3V0SW5mbykgbGF5b3V0VG9SZXVzZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgbGluZSA9IG5ldyBCaWRpTGF5b3V0SW5mbygpOworICAgICAgICB9CisKKyAgICAgICAgbGluZS5mUmVuZGVyZXIgPSB0aGlzOworCisgICAgICAgIGZpbmFsIGludCBsaW5lQ2hhclN0YXJ0ID0gbWVhc3VyZXI9PW51bGw/IHBhcmFncmFwaFN0YXJ0IDogbWVhc3VyZXIuZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgbGluZS5zZXRDaGFyU3RhcnQobGluZUNoYXJTdGFydCk7CisKKyAgICAgICAgZmluYWwgaW50IGxpbmVJbmRlbnQgPSAobGluZUNoYXJTdGFydD09cGFyYWdyYXBoU3RhcnQpPyAoaW50KSBmRmlyc3RMaW5lSW5kZW50IDogMDsKKworICAgICAgICBpbnQgZm9ybWF0V2lkdGggPSB0b3RhbEZvcm1hdFdpZHRoIC0gKGludCkgKGZMZWFkaW5nTWFyZ2luICsgZlRyYWlsaW5nTWFyZ2luKTsKKyAgICAgICAgY29tcHV0ZUxpbmVNZXRyaWNzKHRleHQsIGxpbmUsIG1lYXN1cmVyLCBmcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3RhcnQsIHBhcmFncmFwaExpbWl0LCBmb3JtYXRXaWR0aCwgbGluZUluZGVudCk7CisKKyAgICAgICAgLy8gcG9zaXRpb24gdGhlIGxpbmUgYWNjb3JkaW5nIHRvIHRoZSBsaW5lIGZsdXNoCisgICAgICAgIGlmIChmRmx1c2ggPT0gRkxVU0hfVFJBSUxJTkcgfHwgZkZsdXNoID09IEZMVVNIX0NFTlRFUikgeworICAgICAgICAgICAgaW50IGxpbmVBcmVhID0gbGluZUJvdW5kIC0gKGludCkgKGZMZWFkaW5nTWFyZ2luICsgZlRyYWlsaW5nTWFyZ2luKTsKKyAgICAgICAgICAgIGludCBhZHZhbmNlRGlmZmVyZW5jZSA9IGxpbmVBcmVhIC0gbGluZS5mVmlzaWJsZUFkdmFuY2U7CisKKyAgICAgICAgICAgIGlmIChmRmx1c2ggPT0gRkxVU0hfVFJBSUxJTkcpIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luID0gKChpbnQpIChmTGVhZGluZ01hcmdpbikpICsgYWR2YW5jZURpZmZlcmVuY2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChmRmx1c2ggPT0gRkxVU0hfQ0VOVEVSKSB7CisgICAgICAgICAgICAgICAgbGluZS5mTGVhZGluZ01hcmdpbiA9IChpbnQpIChmTGVhZGluZ01hcmdpbiArIGFkdmFuY2VEaWZmZXJlbmNlLzIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZS5mTGVhZGluZ01hcmdpbiA9IChpbnQpIGZMZWFkaW5nTWFyZ2luOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbCBpbiB0aGUgZm9sbG93aW5nIGZpZWxkcyBpbiBsaW5lOgorICAgICAqIGZDaGFyTGVuZ3RoLCBmQXNjZW50LCBmRGVzY2VudCwgZkxlYWRpbmcsIGZWaXNpYmxlQWR2YW5jZSwKKyAgICAgKiBmVG90YWxBZHZhbmNlLgorICAgICAqIFVzZXM6IGxpbmUuZkxlYWRpbmdNYXJnaW4KKyAgICAgKiBAcGFyYW0gZm9ybWF0V2lkdGggdGhlIHdpZHRoIHRvIGZpdCB0aGUgbGluZSBpbnRvLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wdXRlTGluZU1ldHJpY3MoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVCcmVha01lYXN1cmVyIG1lYXN1cmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlckNvbnRleHQgZnJjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHBhcmFncmFwaExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbmVJbmRlbnQpIHsKKworICAgICAgICBpbnQgc2VnbWVudENvdW50ID0gMDsKKyAgICAgICAgLyogdmFyaWFibGUgbm90IHVzZWQgYm9vbGVhbiBmaXJzdExpbmUgPSBtZWFzdXJlcj09bnVsbCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyLmdldFBvc2l0aW9uKCkgPT0gcGFyYWdyYXBoU3RhcnQ7ICovCisKKyAgICAgICAgaWYgKG1lYXN1cmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNvbXB1dGVTZWdtZW50cyh0ZXh0LCBsaW5lLCBtZWFzdXJlciwgcGFyYWdyYXBoTGltaXQsIGZvcm1hdFdpZHRoLCBsaW5lSW5kZW50KTsKKworICAgICAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdoIHNlZ21lbnRzIGFuZCBhY2N1bXVsYXRlIGFzY2VudCwgZGVzY2VudCwKKyAgICAgICAgICAgIC8vIGxlYWRpbmcsIGNoYXIgbGVuZ3RoCisgICAgICAgICAgICBmbG9hdCBhc2NlbnQgPSAwOworICAgICAgICAgICAgZmxvYXQgZGVzY2VudCA9IDA7CisgICAgICAgICAgICBmbG9hdCBkZXNjZW50UGx1c0xlYWRpbmcgPSAwOworCisgICAgICAgICAgICBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gKChCaWRpU2VnbWVudClsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSkpLmZMYXlvdXQ7CisgICAgICAgICAgICAgICAgYXNjZW50ID0gTWF0aC5tYXgoYXNjZW50LCBsYXlvdXQuZ2V0QXNjZW50KCkpOworICAgICAgICAgICAgICAgIGZsb2F0IHNlZ0Rlc2NlbnQgPSBsYXlvdXQuZ2V0RGVzY2VudCgpOworICAgICAgICAgICAgICAgIGRlc2NlbnQgPSBNYXRoLm1heChkZXNjZW50LCBzZWdEZXNjZW50KTsKKyAgICAgICAgICAgICAgICBkZXNjZW50UGx1c0xlYWRpbmcgPSBNYXRoLm1heChkZXNjZW50UGx1c0xlYWRpbmcsIHNlZ0Rlc2NlbnQrbGF5b3V0LmdldExlYWRpbmcoKSk7CisgICAgICAgICAgICAgICAgbGluZS5mQ2hhckxlbmd0aCArPSBsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGluZS5mQXNjZW50ID0gKGludCkgTWF0aC5jZWlsKGFzY2VudCk7CisgICAgICAgICAgICBsaW5lLmZEZXNjZW50ID0gKGludCkgTWF0aC5jZWlsKGRlc2NlbnQpOworICAgICAgICAgICAgbGluZS5mTGVhZGluZyA9IChpbnQpIE1hdGguY2VpbChkZXNjZW50UGx1c0xlYWRpbmcpIC0gbGluZS5mRGVzY2VudDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmUuZkxlZnRUb1JpZ2h0ID0gZkx0ckRlZmF1bHQ7CisgICAgICAgICAgICBsaW5lLmZTZWdtZW50cy5yZW1vdmVBbGxFbGVtZW50cygpOworCisgICAgICAgICAgICBsaW5lLmZDaGFyTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHBhcmFncmFwaFN0YXJ0KTsKKyAgICAgICAgICAgIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMuTWV0cmljIGNtID0gZkRlZmF1bHRDaGFyTWV0cmljLmdldE1ldHJpY0ZvclN0eWxlKHN0eWxlKTsKKyAgICAgICAgICAgIGxpbmUuZkFzY2VudCA9IGNtLmdldEFzY2VudCgpOworICAgICAgICAgICAgbGluZS5mRGVzY2VudCA9IGNtLmdldERlc2NlbnQoKTsKKyAgICAgICAgICAgIGxpbmUuZkxlYWRpbmcgPSBjbS5nZXRMZWFkaW5nKCk7CisKKyAgICAgICAgICAgIGxpbmUuZlZpc2libGVBZHZhbmNlID0gbGluZS5mVG90YWxBZHZhbmNlID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmRXh0cmFMaW5lU3BhY2luZyAhPSAwKSB7CisgICAgICAgICAgICBsaW5lLmZBc2NlbnQgKz0gKGludCkgTWF0aC5jZWlsKGZFeHRyYUxpbmVTcGFjaW5nKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmTWluTGluZVNwYWNpbmcgIT0gMCl7CisgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gbGluZS5nZXRIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmIChoZWlnaHQgPCBmTWluTGluZVNwYWNpbmcpIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZBc2NlbnQgKz0gTWF0aC5jZWlsKGZNaW5MaW5lU3BhY2luZyAtIGhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgbGluZU5hdHVyYWxBZHZhbmNlID0gbGluZS5mVG90YWxBZHZhbmNlOworCisgICAgICAgIGxpbmUuZlRvdGFsQWR2YW5jZSArPSBsaW5lSW5kZW50OworICAgICAgICBsaW5lLmZWaXNpYmxlQWR2YW5jZSArPSBsaW5lSW5kZW50OworCisgICAgICAgIGlmIChtZWFzdXJlciAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBOb3cgZmlsbCBpbiBmQm91bmRzIGZpZWxkIG9mIEJpZGlTZWdtZW50cy4gIGZCb3VuZHMgc2hvdWxkIHRpbGUKKyAgICAgICAgICAgIC8vIHRoZSBsaW5lLgorICAgICAgICAgICAgZmluYWwgZmxvYXQgbGluZUhlaWdodCA9IGxpbmUuZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MTsgaSA8IHNlZ21lbnRDb3VudDsgaSsrKSB7CisKKyAgICAgICAgICAgICAgICBCaWRpU2VnbWVudCBjdXJyZW50U2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGktMSk7CisgICAgICAgICAgICAgICAgQmlkaVNlZ21lbnQgbmV4dFNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IG9yaWdpbjsKKyAgICAgICAgICAgICAgICBmbG9hdCB3aWR0aDsKKworICAgICAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSAwOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IG5leHRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSBjdXJyZW50U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luIC09IG5leHRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gKz0gKGZsb2F0KSBNYXRoLmNlaWwobmV4dFNlZ21lbnQuZkxheW91dC5nZXRBZHZhbmNlKCkpOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IChmbG9hdCkgTWF0aC5jZWlsKGN1cnJlbnRTZWdtZW50LmZMYXlvdXQuZ2V0QWR2YW5jZSgpKSAtIG9yaWdpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3VycmVudFNlZ21lbnQuZkJvdW5kcyA9IG5ldyBSZWN0YW5nbGUyRC5GbG9hdChvcmlnaW4sIC1saW5lLmZBc2NlbnQsIHdpZHRoLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gc2V0IGxhc3Qgc2VnbWVudCdzIGJvdW5kcworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEJpZGlTZWdtZW50IGN1cnJlbnRTZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudENvdW50LTEpOworICAgICAgICAgICAgICAgIGZsb2F0IG9yaWdpbjsKKyAgICAgICAgICAgICAgICBmbG9hdCB3aWR0aDsKKworICAgICAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSAwOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGxpbmVOYXR1cmFsQWR2YW5jZSAtIGN1cnJlbnRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luID0gY3VycmVudFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gLSBsaW5lTmF0dXJhbEFkdmFuY2U7CisgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gKGZsb2F0KSBNYXRoLmNlaWwoY3VycmVudFNlZ21lbnQuZkxheW91dC5nZXRBZHZhbmNlKCkpIC0gb3JpZ2luOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGN1cnJlbnRTZWdtZW50LmZCb3VuZHMgPSBuZXcgUmVjdGFuZ2xlMkQuRmxvYXQob3JpZ2luLCAtbGluZS5mQXNjZW50LCB3aWR0aCwgbGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIGluIGZTZWdtZW50cywgZkxlZnRUb1JpZ2h0LiAgbWVhc3VyZXIgbXVzdCBub3QgYmUgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wdXRlU2VnbWVudHMoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVCcmVha01lYXN1cmVyIG1lYXN1cmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHBhcmFncmFwaExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbmVJbmRlbnQpIHsKKworICAgICAgICAvLyBOb3RlIG9uIGp1c3RpZmljYXRpb246ICBvbmx5IHRoZSBsYXN0IHNlZ21lbnQgb2YgYSBsaW5lIGlzCisgICAgICAgIC8vIGp1c3RpZmllZC4gIAorICAgICAgICAvLyBBbHNvLCBpZiBhIGxpbmUgZW5kcyBpbiBhIHRhYiBpdCB3aWxsIG5vdCBiZSBqdXN0aWZpZWQuCisgICAgICAgIC8vIFRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIHdvcmQgcHJvY2Vzc29ycworICAgICAgICAvLyBJIHRyaWVkIChNUyBXb3JkIGFuZCBMb3R1cyBXb3JkIFBybykuCisgICAgICAgIAorICAgICAgICBsaW5lLmZTZWdtZW50cy5yZW1vdmVBbGxFbGVtZW50cygpOworICAgICAgICBsaW5lLmZDaGFyTGVuZ3RoID0gMDsKKworICAgICAgICBUYWJTdG9wIGN1cnJlbnRUYWJTdG9wID0gbmV3IFRhYlN0b3AoKGludClmTGVhZGluZ01hcmdpbitsaW5lSW5kZW50LCBUYWJTdG9wLmtMZWFkaW5nKTsKKworICAgICAgICBpbnQgc2VnbWVudExpbWl0ID0gbWVhc3VyZXIuZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgYm9vbGVhbiBmaXJzdFNlZ21lbnQgPSB0cnVlOworCisgICAgICAgIGludCBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsaW5lSW5kZW50OworCisgICAgICAgIGJvb2xlYW4gY29tcHV0ZVNlZ3MgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgY29tcHV0ZVRhYmJlZFNlZ21lbnRzOiBkbyB7CisKKyAgICAgICAgICAgIC8vIGNvbXB1dGUgc2VtZW50TGltaXQ6CisgICAgICAgICAgICBpZiAoc2VnbWVudExpbWl0IDw9IG1lYXN1cmVyLmdldFBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc2VnbWVudExpbWl0IDwgcGFyYWdyYXBoTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVGFiKHRleHQuYXQoc2VnbWVudExpbWl0KyspKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5PVEU6ICBhZGp1c3QgYXZhaWxhYmxlIHdpZHRoIGZvciBjZW50ZXIgdGFiISEhCisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiRm9ybWF0IHdpZHRoOiAiICsgKGZvcm1hdFdpZHRoLWFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbikgKworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIjsgIHNlZ21lbnRMaW1pdDogIiArIHNlZ21lbnRMaW1pdCk7CisKKyAgICAgICAgICAgIGludCB3cmFwcGluZ1dpZHRoID0gTWF0aC5tYXgoZm9ybWF0V2lkdGgtYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luLCAwKTsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChmaXJzdFNlZ21lbnQgfHwgd3JhcHBpbmdXaWR0aCA+IDAgfHwgc2VnbWVudExpbWl0ID4gbWVhc3VyZXIuZ2V0UG9zaXRpb24oKSsxKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0ID0gbWVhc3VyZXIubmV4dExheW91dCh3cmFwcGluZ1dpZHRoLCBzZWdtZW50TGltaXQsICFmaXJzdFNlZ21lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGF5b3V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RTZWdtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEkgZG91YnQgdGhpcyB3b3VsZCBoYXBwZW4sIGJ1dCBjaGVjayBhbnl3YXkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGaXJzdCBsYXlvdXQgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWsgY29tcHV0ZVRhYmJlZFNlZ21lbnRzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmaW5hbCBpbnQgbWVhc3VyZXJQb3MgPSBtZWFzdXJlci5nZXRQb3NpdGlvbigpOworICAgICAgICAgICAgaWYgKG1lYXN1cmVyUG9zIDwgc2VnbWVudExpbWl0KSB7CisgICAgICAgICAgICAgICAgY29tcHV0ZVNlZ3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoZkZsdXNoID09IEZVTExZX0pVU1RJRklFRCkgeworICAgICAgICAgICAgICAgICAgICBsYXlvdXQgPSBsYXlvdXQuZ2V0SnVzdGlmaWVkTGF5b3V0KHdyYXBwaW5nV2lkdGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNvbXB1dGVTZWdzID0gIShtZWFzdXJlclBvcyA9PSBwYXJhZ3JhcGhMaW1pdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmaXJzdFNlZ21lbnQpIHsKKyAgICAgICAgICAgICAgICBmaXJzdFNlZ21lbnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAvLyBIYXZlIHRvIGdldCBsdHIgb2ZmIG9mIGxheW91dC4gIE5vdCBhdmFpbGFibGUgZnJvbSBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5LgorICAgICAgICAgICAgICAgIGxpbmUuZkxlZnRUb1JpZ2h0ID0gbGF5b3V0LmlzTGVmdFRvUmlnaHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG5ldyBCaWRpU2VnbWVudCgpOworICAgICAgICAgICAgc2VnbWVudC5mTGF5b3V0ID0gbGF5b3V0OworICAgICAgICAgICAgaW50IGxheW91dEFkdmFuY2UgPSAoaW50KSBNYXRoLmNlaWwobGF5b3V0LmdldEFkdmFuY2UoKSk7CisKKyAgICAgICAgICAgIC8vIHBvc2l0aW9uIGxheW91dCByZWxhdGl2ZSB0byBsZWFkaW5nIG1hcmdpbiwgdXBkYXRlIGxvZ2ljYWxQb3NpdGlvbk9uTGluZQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgcmVsYXRpdmVUYWJQb3NpdGlvbiA9IGN1cnJlbnRUYWJTdG9wLmdldFBvc2l0aW9uKCktKGludClmTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIGludCBsb2dpY2FsUG9zaXRpb25PZkxheW91dDsKKyAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudFRhYlN0b3AuZ2V0VHlwZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtUcmFpbGluZzoKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQgPSBNYXRoLm1heCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVGFiUG9zaXRpb24tbGF5b3V0QWR2YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rQ2VudGVyOgorICAgICAgICAgICAgICAgICAgICBsb2dpY2FsUG9zaXRpb25PZkxheW91dCA9IE1hdGgubWF4KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVUYWJQb3NpdGlvbi0obGF5b3V0QWR2YW5jZS8yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICAvLyBpbmNsdWRlcyBkZWNpbWFsIHRhYiByaWdodCBub3cKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQgPSByZWxhdGl2ZVRhYlBvc2l0aW9uOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcG9zaXRpb24gbGF5b3V0IGluIHNlZ21lbnQKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsb2dpY2FsUG9zaXRpb25PZkxheW91dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsb2dpY2FsUG9zaXRpb25PZkxheW91dCtsYXlvdXRBZHZhbmNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB1cGRhdGUgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luCisgICAgICAgICAgICBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsb2dpY2FsUG9zaXRpb25PZkxheW91dCArIGxheW91dEFkdmFuY2U7CisKKyAgICAgICAgICAgIC8vIGFkZCBzZWdtZW50IHRvIHNlZ21lbnQgVmVjdG9yCisgICAgICAgICAgICBsaW5lLmZTZWdtZW50cy5hZGRFbGVtZW50KHNlZ21lbnQpOworCisgICAgICAgICAgICAvLyBnZXQgbmV4dCB0YWIKKyAgICAgICAgICAgIGN1cnJlbnRUYWJTdG9wID0gZlRhYlJ1bGVyLm5leHRUYWIoKGludClmTGVhZGluZ01hcmdpbithZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4pOworICAgICAgICAgICAgaWYgKGN1cnJlbnRUYWJTdG9wLmdldFR5cGUoKSA9PSBUYWJTdG9wLmtMZWFkaW5nIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhYlN0b3AuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG8pICB7CisgICAgICAgICAgICAgICAgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luID0gY3VycmVudFRhYlN0b3AuZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiQWR2YW5jZSBmcm9tIGxlYWRpbmcgbWFyZ2luOiIgKyBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4pOworCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJOb24tbGVhZGluZyB0YWIsIHR5cGU9IiArIGN1cnJlbnRUYWJTdG9wLmdldFR5cGUoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSB3aGlsZSAoY29tcHV0ZVNlZ3MpOworCisgICAgICAgIC8vIE5vdyBjb21wdXRlIGZUb3RhbEFkdmFuY2UsIGZWaXNpYmxlQWR2YW5jZS4gIFRoZXNlIG1ldHJpY3MgbWF5IGJlIGFmZmVjdGVkCisgICAgICAgIC8vIGJ5IGEgdHJhaWxpbmcgdGFiLgorCisgICAgICAgIHsKKyAgICAgICAgICAgIEJpZGlTZWdtZW50IGxhc3RTZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5sYXN0RWxlbWVudCgpOworICAgICAgICAgICAgVGV4dExheW91dCBsYXN0TGF5b3V0ID0gbGFzdFNlZ21lbnQuZkxheW91dDsKKworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgbGluZS5mVG90YWxBZHZhbmNlID0gKGludCkgTWF0aC5jZWlsKGxhc3RMYXlvdXQuZ2V0QWR2YW5jZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgbGluZS5mVmlzaWJsZUFkdmFuY2UgPSAoaW50KSBNYXRoLmNlaWwobGFzdExheW91dC5nZXRWaXNpYmxlQWR2YW5jZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZUb3RhbEFkdmFuY2UgPSBsYXN0U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICBsaW5lLmZWaXNpYmxlQWR2YW5jZSA9IGxhc3RTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSBNYXRoLmNlaWwobGFzdExheW91dC5nZXRBZHZhbmNlKCkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0TGF5b3V0LmdldFZpc2libGVBZHZhbmNlKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXNUYWIodGV4dC5hdChtZWFzdXJlci5nZXRQb3NpdGlvbigpLTEpKSkgeworICAgICAgICAgICAgICAgIGxpbmUuZlRvdGFsQWR2YW5jZSA9IE1hdGgubWF4KGxpbmUuZlRvdGFsQWR2YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYWJTdG9wLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoaWdobGlnaHQgc2hhcGUgZm9yIHRoZSBnaXZlbiBjaGFyYWN0ZXIgb2Zmc2V0cy4KKyAgICAgKiBUaGUgU2hhcGUgcmV0dXJuZWQgaXMgcmVsYXRpdmUgdG8gdGhlIGxlZnRtb3N0IHBvaW50IG9uIHRoZQorICAgICAqIGJhc2VsaW5lIG9mIGxpbmUuCisgICAgICovCisgICAgcHJpdmF0ZSBTaGFwZSBnZXRIaWdobGlnaHRTaGFwZShCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBobFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhsTGltaXQpIHsKKworICAgICAgICBpZiAoaGxTdGFydCA+PSBobExpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJIaWdobGlnaHQgcmFuZ2UgbGVuZ3RoIGlzIG5vdCBwb3NpdGl2ZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBsZWFkaW5nTWFyZ2luID0gKGxpbmUuZkxlZnRUb1JpZ2h0KT8KKyAgICAgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luIDogbGluZUJvdW5kIC0gbGluZS5mTGVhZGluZ01hcmdpbjsKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKworICAgICAgICBTaGFwZSBydmFsID0gbnVsbDsKKyAgICAgICAgR2VuZXJhbFBhdGggaGlnaGxpZ2h0UGF0aCA9IG51bGw7CisKKyAgICAgICAgaW50IGN1cnJlbnRMYXlvdXRTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworCisgICAgICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgIGludCBjaGFyQ291bnQgPSBsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIGludCBjdXJyZW50TGF5b3V0TGltaXQgPSBjdXJyZW50TGF5b3V0U3RhcnQgKyBjaGFyQ291bnQ7CisgICAgICAgICAgICBib29sZWFuIHJhbmdlc0ludGVyc2VjdDsKKyAgICAgICAgICAgIGlmIChobFN0YXJ0IDw9IGN1cnJlbnRMYXlvdXRTdGFydCkgeworICAgICAgICAgICAgICAgIHJhbmdlc0ludGVyc2VjdCA9IGhsTGltaXQgPiBjdXJyZW50TGF5b3V0U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByYW5nZXNJbnRlcnNlY3QgPSBobFN0YXJ0IDwgY3VycmVudExheW91dExpbWl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocmFuZ2VzSW50ZXJzZWN0KSB7CisKKyAgICAgICAgICAgICAgICBTaGFwZSBjdXJyZW50SGwgPSBsYXlvdXQuZ2V0TG9naWNhbEhpZ2hsaWdodFNoYXBlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWF4KGhsU3RhcnQtY3VycmVudExheW91dFN0YXJ0LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihobExpbWl0LWN1cnJlbnRMYXlvdXRTdGFydCwgY2hhckNvdW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmZCb3VuZHMpOworCisgICAgICAgICAgICAgICAgZmxvYXQgeFRyYW5zbGF0ZTsKKyAgICAgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgeFRyYW5zbGF0ZSA9IGxlYWRpbmdNYXJnaW4gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHhUcmFuc2xhdGUgPSBsZWFkaW5nTWFyZ2luIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHhUcmFuc2xhdGUgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0geGZvcm0gPQorICAgICAgICAgICAgICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtLmdldFRyYW5zbGF0ZUluc3RhbmNlKHhUcmFuc2xhdGUsIDApOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50SGwgPSB4Zm9ybS5jcmVhdGVUcmFuc2Zvcm1lZFNoYXBlKGN1cnJlbnRIbCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHJ2YWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBydmFsID0gY3VycmVudEhsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFBhdGggPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0UGF0aCA9IG5ldyBHZW5lcmFsUGF0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0UGF0aC5hcHBlbmQocnZhbCwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgcnZhbCA9IGhpZ2hsaWdodFBhdGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0UGF0aC5hcHBlbmQoY3VycmVudEhsLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudExheW91dFN0YXJ0ID0gY3VycmVudExheW91dExpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJ2YWw7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlbmRlcldpdGhIaWdobGlnaHQoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IpIHsKKworICAgICAgICBmaW5hbCBpbnQgbGluZUNoYXJTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICBpZiAoc2VsU3RhcnQgIT0gbnVsbCAmJiBzZWxTdG9wICE9IG51bGwgJiYgIXNlbFN0YXJ0LmVxdWFscyhzZWxTdG9wKSAmJgorICAgICAgICAgICAgICAgIGxpbmUuZkNoYXJMZW5ndGggIT0gMCAmJgorICAgICAgICAgICAgICAgIHNlbFN0YXJ0LmZPZmZzZXQgPCBsaW5lQ2hhclN0YXJ0ICsgbGluZS5mQ2hhckxlbmd0aCAmJgorICAgICAgICAgICAgICAgIHNlbFN0b3AuZk9mZnNldCA+IGxpbmVDaGFyU3RhcnQpIHsKKworICAgICAgICAgICAgU2hhcGUgaGlnaGxpZ2h0ID0gZ2V0SGlnaGxpZ2h0U2hhcGUobGluZSwgbGVuZ3RoQmFzaXMsIGxpbmVCb3VuZCwgc2VsU3RhcnQuZk9mZnNldCwgc2VsU3RvcC5mT2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChoaWdobGlnaHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgaGwgPSAoR3JhcGhpY3MyRCkgZy5jcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBobC5zZXRDb2xvcihoaWdobGlnaHRDb2xvcik7CisgICAgICAgICAgICAgICAgaGwudHJhbnNsYXRlKHgsIHkgKyBsaW5lLmZBc2NlbnQpOworICAgICAgICAgICAgICAgIGhsLmZpbGwoaGlnaGxpZ2h0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlbmRlcihsaW5lLCBsZW5ndGhCYXNpcywgZywgbGluZUJvdW5kLCB4LCB5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEcmF3IHRoZSBsaW5lIGludG8gdGhlIGdyYXBoaWNzLiAgKHgsIHkpIGlzIHRoZSB1cHBlci1sZWZ0IGNvcm5lcgorICAgICAqIG9mIHRoZSBsaW5lLiAgVGhlIGxlYWRpbmcgZWRnZSBvZiBhIHJpZ2h0LWFsaWduZWQgbGluZSBpcyBhbGlnbmVkCisgICAgICogdG8gKHggKyBsaW5lQm91bmQpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZW5kZXIoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisKKyAgICAgICAgZmluYWwgaW50IGxlYWRpbmdNYXJnaW4gPSAobGluZS5mTGVmdFRvUmlnaHQpPworICAgICAgICAgICAgICAgIHggKyBsaW5lLmZMZWFkaW5nTWFyZ2luIDogeCArIGxpbmVCb3VuZCAtIGxpbmUuZkxlYWRpbmdNYXJnaW47CisgICAgICAgIGZpbmFsIGludCBiYXNlbGluZSA9IHkgKyBsaW5lLmZBc2NlbnQ7CisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2VnbWVudENvdW50OyBpKyspIHsKKworICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGkpOworCisgICAgICAgICAgICBmbG9hdCBkcmF3WDsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGRyYXdYID0gbGVhZGluZ01hcmdpbiArIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBkcmF3WCA9IGxlYWRpbmdNYXJnaW4gLSBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzZWdtZW50LmZMYXlvdXQuZHJhdyhnLCBkcmF3WCwgYmFzZWxpbmUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGhpdFRlc3RTZWdtZW50KFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VnbWVudENoYXJTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHhJblNlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5SW5TZWdtZW50KSB7CisKKyAgICAgICAgZmluYWwgVGV4dExheW91dCBsYXlvdXQgPSBzZWdtZW50LmZMYXlvdXQ7CisgICAgICAgIGZpbmFsIGludCBjaGFyQ291bnQgPSBsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgZmluYWwgaW50IGxheW91dEFkdmFuY2UgPSAoaW50KSBNYXRoLmNlaWwobGF5b3V0LmdldEFkdmFuY2UoKSk7CisgICAgICAgIFJlY3RhbmdsZTJEIGJvdW5kcyA9IHNlZ21lbnQuZkJvdW5kczsKKworICAgICAgICBmaW5hbCBib29sZWFuIGx0ciA9IGxheW91dC5pc0xlZnRUb1JpZ2h0KCk7CisKKyAgICAgICAgaWYgKGx0ciAmJiAoeEluU2VnbWVudCA+PSBsYXlvdXRBZHZhbmNlKSB8fCAhbHRyICYmICh4SW5TZWdtZW50IDw9IDApKSB7CisKKyAgICAgICAgICAgIC8vIHByZXRlbmQgdGhlIGV4dHJhIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUgaXMgYQorICAgICAgICAgICAgLy8gdGFiIGFuZCAnaGl0LXRlc3QnIGl0LgorICAgICAgICAgICAgZG91YmxlIHRhYkNlbnRlcjsKKyAgICAgICAgICAgIGlmIChsdHIpIHsKKyAgICAgICAgICAgICAgICB0YWJDZW50ZXIgPSAobGF5b3V0QWR2YW5jZStib3VuZHMuZ2V0TWF4WCgpKSAvIDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0YWJDZW50ZXIgPSBib3VuZHMuZ2V0WCgpIC8gMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCh4SW5TZWdtZW50ID49IHRhYkNlbnRlcikgPT0gbHRyKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBjaGFyQ291bnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZk9mZnNldCA9IGNoYXJDb3VudC0xOworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBUZXh0SGl0SW5mbyBpbmZvID0gbGF5b3V0LmhpdFRlc3RDaGFyKHhJblNlZ21lbnQsIHlJblNlZ21lbnQsIHNlZ21lbnQuZkJvdW5kcyk7CisgICAgICAgICAgICByZXN1bHQuZk9mZnNldCA9IGluZm8uZ2V0SW5zZXJ0aW9uSW5kZXgoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuZk9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5mT2Zmc2V0ID09IGNoYXJDb3VudCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBpbmZvLmlzTGVhZGluZ0VkZ2UoKT8KKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUIDogVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0LmZPZmZzZXQgKz0gc2VnbWVudENoYXJTdGFydDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBhdCB0aGUgcG9pbnQgKHgsIHkpLiAgKHgsIHkpIGlzIHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdAorICAgICAqIG9mIHRoZSBsaW5lLiAgVGhlIGxlYWRpbmcgZWRnZSBvZiBhIHJpZ2h0LWFsaWduZWQgbGluZSBpcyBhbGlnbmVkCisgICAgICogdG8gbGluZUJvdW5kLgorICAgICAqLworICAgIHByaXZhdGUgVGV4dE9mZnNldCBwaXhlbFRvT2Zmc2V0KEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgeUluU2VnbWVudCA9IHkgLSBsaW5lLmZBc2NlbnQ7CisgICAgICAgIGZpbmFsIGludCBsZWFkaW5nTWFyZ2luID0gKGxpbmUuZkxlZnRUb1JpZ2h0KT8KKyAgICAgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luIDogbGluZUJvdW5kIC0gbGluZS5mTGVhZGluZ01hcmdpbjsKKyAgICAgICAgZmluYWwgaW50IGxpbmVDaGFyU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgLy8gZmlyc3Qgc2VlIGlmIHBvaW50IGlzIGJlZm9yZSBsZWFkaW5nIGVkZ2Ugb2YgbGluZQorICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICB7CisgICAgICAgICAgICBpbnQgc2VnTGVhZGluZ01hcmdpbiA9IGxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICBpZiAoc2VnbWVudENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIEJpZGlTZWdtZW50IGZpcnN0U2VnID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoMCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIHNlZ0xlYWRpbmdNYXJnaW4gKz0gZmlyc3RTZWcuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzZWdMZWFkaW5nTWFyZ2luIC09IGZpcnN0U2VnLmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgICAgICBzZWdMZWFkaW5nTWFyZ2luICs9IChmbG9hdCkgZmlyc3RTZWcuZkJvdW5kcy5nZXRNYXhYKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0ID09ICh4IDw9IHNlZ0xlYWRpbmdNYXJnaW4pKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBsaW5lQ2hhclN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBzZWdtZW50Q2hhclN0YXJ0ID0gbGluZUNoYXJTdGFydDsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworCisgICAgICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpbnQgc2VnbWVudE9yaWdpbiA9IGxpbmUuZkxlZnRUb1JpZ2h0PworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRpbmdNYXJnaW4rc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbiA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ01hcmdpbi1zZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgaW50IHhJblNlZ21lbnQgPSB4IC0gc2VnbWVudE9yaWdpbjsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGlmIChzZWdtZW50LmZCb3VuZHMuZ2V0TWF4WCgpID4geEluU2VnbWVudCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGl0VGVzdFNlZ21lbnQocmVzdWx0LCBzZWdtZW50Q2hhclN0YXJ0LCBzZWdtZW50LCB4SW5TZWdtZW50LCB5SW5TZWdtZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoc2VnbWVudC5mQm91bmRzLmdldFgoKSA8IHhJblNlZ21lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhpdFRlc3RTZWdtZW50KHJlc3VsdCwgc2VnbWVudENoYXJTdGFydCwgc2VnbWVudCwgeEluU2VnbWVudCwgeUluU2VnbWVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VnbWVudENoYXJTdGFydCArPSBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gbGluZUNoYXJTdGFydCArIGxpbmUuZkNoYXJMZW5ndGg7CisgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZW5kZXJDYXJldChCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcikKKyAgICB7CisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgIGZpbmFsIGludCBsaW5lU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCA9IGxpbmVTdGFydDsKKyAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG51bGw7CisgICAgICAgIGludCBzZWdtZW50SW5kZXg7CisKKyAgICAgICAgZm9yIChzZWdtZW50SW5kZXg9MDsgc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50OyBzZWdtZW50SW5kZXgrKykgeworICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICBpbnQgY3VycmVudEVuZHBvaW50ID0gY3VycmVudFN0YXJ0ICsgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpZiAoY3VycmVudEVuZHBvaW50ID4gY2hhck9mZnNldCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gY3VycmVudEVuZHBvaW50OworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICAgIFRoZXJlIGFyZSB0d28gY2hvaWNlcyBoZXJlOgorICAgICAgICAgICAgMS4gZ2V0IGNhcmV0cyBmcm9tIGEgVGV4dExheW91dCBhbmQgcmVuZGVyIHRoZW0sIG9yCisgICAgICAgICAgICAyLiBtYWtlIHVwIGEgY2FyZXQgb3Vyc2VsdmVzIGFuZCByZW5kZXIgaXQuCisgICAgICAgICAgICBXZSB3YW50IHRvIGRvIDIgd2hlbjoKKyAgICAgICAgICAgICAgICAqIHRoZXJlIGlzIG5vIHRleHQgb24gdGhlIGxpbmUsIG9yCisgICAgICAgICAgICAgICAgKiB0aGUgbGluZSBlbmRzIHdpdGggYSB0YWIgYW5kIHdlIGFyZSBkcmF3aW5nIHRoZSBsYXN0IGNhcmV0IG9uIHRoZSBsaW5lCisgICAgICAgICAgICBPdGhlcndpc2UsIHdlIHdhbnQgMS4KKyAgICAgICAgKi8KKworICAgICAgICBpZiAoc2VnbWVudEluZGV4ID09IHNlZ21lbnRDb3VudCAmJiBzZWdtZW50Q291bnQgPiAwKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgbGluZSBsZW5ndGggaXMgbm90IDAsIGFuZCBjaGFyT2Zmc2V0IGlzIGF0IGVuZCBvZiBsaW5lCisgICAgICAgICAgICBpZiAoIWlzVGFiKHRleHQuYXQoY2hhck9mZnNldC0xKSkpIHsKKyAgICAgICAgICAgICAgICBzZWdtZW50SW5kZXggPSBzZWdtZW50Q291bnQtMTsKKyAgICAgICAgICAgICAgICBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudEluZGV4KTsKKyAgICAgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBsaW5lU3RhcnQgKyBsaW5lLmdldENoYXJMZW5ndGgoKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIE9iamVjdCBzYXZlZFBhaW50ID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0Q29sb3JTdGF0ZShnKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudCkgeworICAgICAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICAgICAgICAgIGludCBvZmZzZXRJbkxheW91dCA9IGNoYXJPZmZzZXQgLSBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICAgICAgU2hhcGVbXSBjYXJldHMgPSBsYXlvdXQuZ2V0Q2FyZXRTaGFwZXMob2Zmc2V0SW5MYXlvdXQsIHNlZ21lbnQuZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihzdHJvbmdDYXJldENvbG9yKTsKKyAgICAgICAgICAgICAgICBpbnQgbGF5b3V0UG9zID0gbGluZS5mTGVhZGluZ01hcmdpbiArIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgaW50IGxheW91dFggPSBsaW5lLmZMZWZ0VG9SaWdodD8KKyAgICAgICAgICAgICAgICAgICAgICAgIHggKyBsYXlvdXRQb3MgOiB4ICsgbGluZUJvdW5kIC0gbGF5b3V0UG9zOworICAgICAgICAgICAgICAgIGludCBsYXlvdXRZID0geSArIGxpbmUuZkFzY2VudDsKKworICAgICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW5nIGFuZCB0aGVuIGNsaXBwaW5nIGRvZXNuJ3Qgd29yay4gIFRyeSB0aGlzOgorICAgICAgICAgICAgICAgIFJlY3RhbmdsZTJELkZsb2F0IGNsaXBSZWN0ID0gbmV3IFJlY3RhbmdsZTJELkZsb2F0KCk7CisgICAgICAgICAgICAgICAgY2xpcFJlY3Quc2V0UmVjdChzZWdtZW50LmZCb3VuZHMpOworICAgICAgICAgICAgICAgIGNsaXBSZWN0LnggKz0gbGF5b3V0WDsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC55ICs9IGxheW91dFk7CisgICAgICAgICAgICAgICAgY2xpcFJlY3Qud2lkdGggKz0gMTsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC5oZWlnaHQgLT0gMTsKKworICAgICAgICAgICAgICAgIE9iamVjdCBzYXZlZENsaXAgPSBDbGlwV29ya2Fyb3VuZC5zYXZlQ2xpcFN0YXRlKGcpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIENsaXBXb3JrYXJvdW5kLnRyYW5zbGF0ZUFuZERyYXdTaGFwZVdpdGhDbGlwKGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmV0c1swXSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjYXJldHNbMV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZy5zZXRDb2xvcih3ZWFrQ2FyZXRDb2xvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBDbGlwV29ya2Fyb3VuZC50cmFuc2xhdGVBbmREcmF3U2hhcGVXaXRoQ2xpcChnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZXRzWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgQ2xpcFdvcmthcm91bmQucmVzdG9yZUNsaXBTdGF0ZShnLCBzYXZlZENsaXApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBsaW5lRW5kID0gbGluZS5mTGVhZGluZ01hcmdpbiArIGxpbmUuZlRvdGFsQWR2YW5jZTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kWCA9IGxpbmUuZkxlZnRUb1JpZ2h0PyBsaW5lRW5kIDogbGluZUJvdW5kLWxpbmVFbmQ7CisgICAgICAgICAgICAgICAgZW5kWCArPSB4OworICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoZW5kWCwgeSwgZW5kWCwgeStsaW5lLmdldEhlaWdodCgpLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgR3JhcGhpY3MyRENvbnZlcnNpb24ucmVzdG9yZUNvbG9yU3RhdGUoZywgc2F2ZWRQYWludCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBjYXJldEJvdW5kcyhCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkgeworCisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgIGZpbmFsIGludCBsaW5lU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisgICAgICAgIGludCBjdXJyZW50U3RhcnQgPSBsaW5lU3RhcnQ7CisgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSBudWxsOworICAgICAgICBpbnQgc2VnbWVudEluZGV4OworCisgICAgICAgIGZvciAoc2VnbWVudEluZGV4PTA7IHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudDsgc2VnbWVudEluZGV4KyspIHsKKyAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgaW50IGN1cnJlbnRFbmRwb2ludCA9IGN1cnJlbnRTdGFydCArIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnRFbmRwb2ludCA+IGNoYXJPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGN1cnJlbnRFbmRwb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZWdtZW50SW5kZXggPT0gc2VnbWVudENvdW50ICYmIHNlZ21lbnRDb3VudCA+IDApIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGdldCBoZXJlLCBsaW5lIGxlbmd0aCBpcyBub3QgMCwgYW5kIGNoYXJPZmZzZXQgaXMgYXQgZW5kIG9mIGxpbmUKKyAgICAgICAgICAgIGlmICghaXNUYWIodGV4dC5hdChjaGFyT2Zmc2V0LTEpKSkgeworICAgICAgICAgICAgICAgIHNlZ21lbnRJbmRleCA9IHNlZ21lbnRDb3VudC0xOworICAgICAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGxpbmVTdGFydCArIGxpbmUuZ2V0Q2hhckxlbmd0aCgpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIHI7CisgICAgICAgIAorICAgICAgICBpZiAoc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50KSB7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgIGludCBvZmZzZXRJbkxheW91dCA9IGNoYXJPZmZzZXQgLSBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICBTaGFwZVtdIGNhcmV0cyA9IGxheW91dC5nZXRDYXJldFNoYXBlcyhvZmZzZXRJbkxheW91dCwgc2VnbWVudC5mQm91bmRzKTsKKyAgICAgICAgICAgIHIgPSBjYXJldHNbMF0uZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBpZiAoY2FyZXRzWzFdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByLmFkZChjYXJldHNbMV0uZ2V0Qm91bmRzKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgci53aWR0aCArPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGF5b3V0UG9zID0gbGluZS5mTGVhZGluZ01hcmdpbiArIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICByLnggKz0gbGF5b3V0UG9zOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgci54ICs9IGxpbmVCb3VuZCAtIGxheW91dFBvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHIueSArPSBsaW5lLmZBc2NlbnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICAgICAgci5oZWlnaHQgPSBsaW5lLmdldEhlaWdodCgpOworICAgICAgICAgICAgci53aWR0aCA9IDE7CisgICAgICAgICAgICBpbnQgbGluZUVuZCA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBsaW5lLmZUb3RhbEFkdmFuY2U7CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICByLnggPSBsaW5lRW5kOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgci54ID0gbGluZUJvdW5kIC0gbGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgci50cmFuc2xhdGUoeCwgeSk7CisgICAgICAgIHJldHVybiByOworICAgIH0KKworICAgIHByaXZhdGUgaW50IHN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbihCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0KSB7CisKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKyAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG51bGw7CisgICAgICAgIGludCBzZWdtZW50SW5kZXg7CisKKyAgICAgICAgZm9yIChzZWdtZW50SW5kZXg9MDsgc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50OyBzZWdtZW50SW5kZXgrKykgeworICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICBpbnQgY3VycmVudEVuZHBvaW50ID0gY3VycmVudFN0YXJ0ICsgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpZiAoY3VycmVudEVuZHBvaW50ID4gY2hhck9mZnNldCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gY3VycmVudEVuZHBvaW50OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudCkgeworICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBzZWdtZW50LmZMYXlvdXQ7CisgICAgICAgICAgICBpbnQgb2Zmc2V0SW5MYXlvdXQgPSBjaGFyT2Zmc2V0IC0gY3VycmVudFN0YXJ0OworICAgICAgICAgICAgVGV4dEhpdEluZm8gaGl0ID0gVGV4dEhpdEluZm8uYWZ0ZXJPZmZzZXQob2Zmc2V0SW5MYXlvdXQpOworICAgICAgICAgICAgaGl0ID0gVGV4dExheW91dC5ERUZBVUxUX0NBUkVUX1BPTElDWS5nZXRTdHJvbmdDYXJldChoaXQsIGhpdC5nZXRPdGhlckhpdCgpLCBsYXlvdXQpOworICAgICAgICAgICAgZmxvYXRbXSBpbmZvID0gbGF5b3V0LmdldENhcmV0SW5mbyhoaXQpOworICAgICAgICAgICAgaW50IGxheW91dFBvcyA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxheW91dFBvcyArIChpbnQpIGluZm9bMF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGluZUJvdW5kIC0gbGF5b3V0UG9zICsgKGludCkgaW5mb1swXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBsaW5lRW5kID0gbGluZS5mTGVhZGluZ01hcmdpbiArIGxpbmUuZlRvdGFsQWR2YW5jZTsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHJldHVybiBsaW5lRW5kOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmVCb3VuZCAtIGxpbmVFbmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXROZXh0T2Zmc2V0KEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGRpcikgeworCisgICAgICAgIGlmIChkaXIgIT0gTUZvcm1hdHRlci5lTGVmdCAmJiBkaXIgIT0gTUZvcm1hdHRlci5lUmlnaHQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZGlyZWN0aW9uLiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluZCBzZWdtZW50IGNvbnRhaW5pbmcgb2Zmc2V0OgorICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICBmaW5hbCBpbnQgbGluZUNoYXJTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICBpbnQgY3VycmVudFN0YXJ0ID0gbGluZUNoYXJTdGFydDsKKyAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG51bGw7CisgICAgICAgIGludCBzZWdtZW50SW5kZXg7CisKKyAgICAgICAgZm9yIChzZWdtZW50SW5kZXg9MDsgc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50OyBzZWdtZW50SW5kZXgrKykgeworICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICBpbnQgY3VycmVudEVuZHBvaW50ID0gY3VycmVudFN0YXJ0ICsgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpZiAoY3VycmVudEVuZHBvaW50ID4gY2hhck9mZnNldCB8fAorICAgICAgICAgICAgICAgICAgICAoc2VnbWVudEluZGV4ID09IHNlZ21lbnRDb3VudC0xICYmIGN1cnJlbnRFbmRwb2ludD09Y2hhck9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGN1cnJlbnRFbmRwb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gbG9nQWR2YW5jZSA9IChkaXI9PU1Gb3JtYXR0ZXIuZVJpZ2h0KT09KGxpbmUuZkxlZnRUb1JpZ2h0KTsKKworICAgICAgICBpbnQgcmVzdWx0OworCisgICAgICAgIGlmIChzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQpIHsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICAgICAgaW50IG9mZnNldEluTGF5b3V0ID0gY2hhck9mZnNldCAtIGN1cnJlbnRTdGFydDsKKyAgICAgICAgICAgIFRleHRIaXRJbmZvIGhpdCA9IChkaXI9PU1Gb3JtYXR0ZXIuZUxlZnQpPworICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldE5leHRMZWZ0SGl0KG9mZnNldEluTGF5b3V0KSA6CisgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuZ2V0TmV4dFJpZ2h0SGl0KG9mZnNldEluTGF5b3V0KTsKKyAgICAgICAgICAgIGlmIChoaXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxvZ0FkdmFuY2U/CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdGFydCtsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKSsxIDogY3VycmVudFN0YXJ0LTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBoaXQuZ2V0SW5zZXJ0aW9uSW5kZXgoKSArIGN1cnJlbnRTdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGxvZ0FkdmFuY2U/IGxpbmVDaGFyU3RhcnQgKyBsaW5lLmZDaGFyTGVuZ3RoICsgMSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDaGFyU3RhcnQgLSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9DbGlwV29ya2Fyb3VuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9DbGlwV29ya2Fyb3VuZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0NjdiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0NsaXBXb3JrYXJvdW5kLmphdmEKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEuYXd0LlNoYXBlOworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5SZWN0YW5nbGUyRDsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLlBhdGhJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLkxpbmUyRDsKKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlJlY3RhbmdsZTJEOworSkRLMTFJTVBPUlRTKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGV4aXN0cyB0byB3b3JrIGFyb3VuZCBhIGNsaXBwaW5nIGJ1ZyBpbiBKREsgMS4yLgorICovCitmaW5hbCBjbGFzcyBDbGlwV29ya2Fyb3VuZCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworLy8vKkpESzEySU1QT1JUUworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBleGN1c2UgPQorICAgICAgICAiU29ycnksIHRoaXMgbWV0aG9kIGlzIGEgdmVyeSBsaW1pdGVkIHdvcmthcm91bmQgZm9yIGEgSkRLIDEuMiBidWcuIjsKKy8vSkRLMTJJTVBPUlRTKi8KKyAgICAKKyAgICBzdGF0aWMgT2JqZWN0IHNhdmVDbGlwU3RhdGUoR3JhcGhpY3MyRCBnKSB7CisvLy8qSkRLMTJJTVBPUlRTCisgICAgICAgIHJldHVybiBudWxsOworLy9KREsxMklNUE9SVFMqLworLypKREsxMUlNUE9SVFMKKyAgICAgICAgcmV0dXJuIGcuZ2V0Q2xpcCgpOworSkRLMTFJTVBPUlRTKi8KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcmVzdG9yZUNsaXBTdGF0ZShHcmFwaGljczJEIGcsIE9iamVjdCBzdGF0ZSkgeworLy8vKkpESzEySU1QT1JUUworICAgICAgICBpZiAoc3RhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNsaXAgc3RhdGUgZm9yIHRoaXMgY2xhc3MuIik7CisgICAgICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCisgICAgICAgIGcuc2V0Q2xpcCgoU2hhcGUpc3RhdGUpOworSkRLMTFJTVBPUlRTKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRHJhdyB0aGUgZ2l2ZW4gU2hhcGUgaW50byB0aGUgR3JhcGhpY3MsIHRyYW5zbGF0ZWQgYnkgKGR4LCBkeSkKKyAgICAgKiBhbmQgY2xpcHBlZCB0byBjbGlwUmVjdC4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGVBbmREcmF3U2hhcGVXaXRoQ2xpcChHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUyRCBjbGlwUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFwZSBzaGFwZSkgeworLy8vKkpESzEySU1QT1JUUworICAgICAgICAvLyByZWFsbHkgYm9ndXMgaW1wbGVtZW50YXRpb24gcmlnaHQgbm93OiAgYmFzaWNhbGx5IG9ubHkKKyAgICAgICAgLy8gZHJhd3MgY2FyZXRzIGZyb20gYSBUZXh0TGF5b3V0LgorICAgICAgICAvLyBPaCB5ZWFoLCBpdCBkb2Vzbid0IHJlYWxseSBjbGlwIGNvcnJlY3RseSBlaXRoZXIuLi4KKworICAgICAgICBQYXRoSXRlcmF0b3IgcGF0aEl0ZXIgPSBzaGFwZS5nZXRQYXRoSXRlcmF0b3IobnVsbCk7CisgICAgICAgIGZsb2F0W10gcG9pbnRzID0gbmV3IGZsb2F0WzZdOworCisgICAgICAgIGludCB0eXBlID0gcGF0aEl0ZXIuY3VycmVudFNlZ21lbnQocG9pbnRzKTsKKyAgICAgICAgaWYgKHR5cGUgIT0gUGF0aEl0ZXJhdG9yLlNFR19NT1ZFVE8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihleGN1c2UpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IHgxID0gcG9pbnRzWzBdICsgZHg7CisgICAgICAgIGZsb2F0IHkxID0gcG9pbnRzWzFdICsgZHk7CisKKyAgICAgICAgaWYgKHBhdGhJdGVyLmlzRG9uZSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXhjdXNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHBhdGhJdGVyLm5leHQoKTsKKyAgICAgICAgdHlwZSA9IHBhdGhJdGVyLmN1cnJlbnRTZWdtZW50KHBvaW50cyk7CisgICAgICAgIGlmICh0eXBlICE9IFBhdGhJdGVyYXRvci5TRUdfTElORVRPKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXhjdXNlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCB4MiA9IHBvaW50c1swXSArIGR4OworICAgICAgICBmbG9hdCB5MiA9IHBvaW50c1sxXSArIGR5OworCisgICAgICAgIGZsb2F0IG1pblkgPSAoZmxvYXQpIGNsaXBSZWN0LmdldFkoKTsKKyAgICAgICAgZmxvYXQgbWF4WSA9IChmbG9hdCkgY2xpcFJlY3QuZ2V0TWF4WSgpOworCisgICAgICAgIC8vIE5vdyBjbGlwIHdpdGhpbiB2ZXJ0aWNhbCBsaW1pdHMgaW4gY2xpcFJlY3QKKyAgICAgICAgaWYgKHkxID09IHkyKSB7CisgICAgICAgICAgICBpZiAoeTEgPCBtaW5ZIHx8IHkxID49IG1heFkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoeTEgPiB5MikgeworICAgICAgICAgICAgICAgIGZsb2F0IHQgPSB4MTsKKyAgICAgICAgICAgICAgICB4MSA9IHgyOworICAgICAgICAgICAgICAgIHgyID0gdDsKKyAgICAgICAgICAgICAgICB0ID0geTE7CisgICAgICAgICAgICAgICAgeTEgPSB5MjsKKyAgICAgICAgICAgICAgICB5MiA9IHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZsb2F0IGludlNsb3BlID0gKHgyLXgxKSAvICh5Mi15MSk7CisgICAgICAgICAgICBpZiAoeTEgPCBtaW5ZKSB7CisgICAgICAgICAgICAgICAgeDEgLT0gKG1pblkteTEpICogaW52U2xvcGU7CisgICAgICAgICAgICAgICAgeTEgPSBtaW5ZOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHkyID49IG1heFkpIHsKKyAgICAgICAgICAgICAgICB4MSArPSAoeTItbWF4WSkgKiBpbnZTbG9wZTsKKyAgICAgICAgICAgICAgICB5MiA9IG1heFk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBnLmRyYXcobmV3IExpbmUyRC5GbG9hdCh4MSwgeTEsIHgyLCB5MikpOworLy9KREsxMklNUE9SVFMqLworLypKREsxMUlNUE9SVFMKKyAgICAgICAgZy5zZXRDbGlwKGNsaXBSZWN0KTsKKyAgICAgICAgZy50cmFuc2xhdGUoZHgsIGR5KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGcuZHJhdyhzaGFwZSk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBnLnRyYW5zbGF0ZSgtZHgsIC1keSk7CisgICAgICAgIH0KK0pESzExSU1QT1JUUyovCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9EZWZhdWx0Q2hhcmFjdGVyTWV0cmljLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0RlZmF1bHRDaGFyYWN0ZXJNZXRyaWMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MzYzMmRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9EZWZhdWx0Q2hhcmFjdGVyTWV0cmljLmphdmEKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dExheW91dDsKKy8vSkRLMTJJTVBPUlRTKi8KKworLypKREsxMUlNUE9SVFMKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuRm9udFJlbmRlckNvbnRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlRleHRMYXlvdXQ7CitKREsxMUlNUE9SVFMqLworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgdXNlZCBieSB0aGUgRm9ybWF0dGVyIHRvIGVzdGltYXRlIHRoZSBoZWlnaHQKKyAqIG9mIGNoYXJhY3RlcnMgaW4gYSBwYXJ0aWN1bGFyIHN0eWxlLgorICovCitmaW5hbCBjbGFzcyBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgZmluYWwgY2xhc3MgTWV0cmljIHsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBmbG9hdCBmQXNjZW50OworICAgICAgICBwcml2YXRlIGZsb2F0IGZEZXNjZW50OworICAgICAgICBwcml2YXRlIGZsb2F0IGZMZWFkaW5nOworICAgIAorICAgICAgICBwcml2YXRlIE1ldHJpYyhmbG9hdCBhc2NlbnQsIGZsb2F0IGRlc2NlbnQsIGZsb2F0IGxlYWRpbmcpIHsKKyAgICAKKyAgICAgICAgICAgIGZBc2NlbnQgPSBhc2NlbnQ7CisgICAgICAgICAgICBmRGVzY2VudCA9IGRlc2NlbnQ7CisgICAgICAgICAgICBmTGVhZGluZyA9IGxlYWRpbmc7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRBc2NlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgTWF0aC5jZWlsKGZBc2NlbnQpOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGVzY2VudCgpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSBNYXRoLmNlaWwoZkRlc2NlbnQpOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSBNYXRoLmNlaWwoZkxlYWRpbmcpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgSGFzaHRhYmxlIGZDYWNoZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBwcml2YXRlIC8qZmluYWwqLyBGb250UmVzb2x2ZXIgZlJlc29sdmVyOworICAgIHByaXZhdGUgLypmaW5hbCovIEZvbnRSZW5kZXJDb250ZXh0IGZGcmM7CisgICAgCisgICAgcHVibGljIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMoRm9udFJlc29sdmVyIHJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJDb250ZXh0IGZyYykgeworICAgIAorICAgICAgICBmUmVzb2x2ZXIgPSByZXNvbHZlcjsKKyAgICAgICAgZkZyYyA9IGZyYzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGEgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyBpbnN0YW5jZSBmb3IgdGhlIGdpdmVuIHN0eWxlLiAgVGhlCisgICAgICogc3R5bGUgaXMgZmlyc3QgcmVzb2x2ZWQgd2l0aCBGb250UmVzb2x2ZXIuCisgICAgICovCisgICAgcHVibGljIE1ldHJpYyBnZXRNZXRyaWNGb3JTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICBzdHlsZSA9IGZSZXNvbHZlci5hcHBseUZvbnQoc3R5bGUpOworICAgICAgICBNZXRyaWMgbWV0cmljID0gKE1ldHJpYykgZkNhY2hlLmdldChzdHlsZSk7CisgICAgICAgIGlmIChtZXRyaWMgPT0gbnVsbCkgeworICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBuZXcgVGV4dExheW91dCgiICIsIHN0eWxlLCBmRnJjKTsKKyAgICAgICAgICAgIG1ldHJpYyA9IG5ldyBNZXRyaWMobGF5b3V0LmdldEFzY2VudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuZ2V0RGVzY2VudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuZ2V0TGVhZGluZygpKTsKKyAgICAgICAgICAgIGZDYWNoZS5wdXQoc3R5bGUsIG1ldHJpYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1ldHJpYzsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9Gb250UmVzb2x2ZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRm9udFJlc29sdmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzk2ZGVlOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRm9udFJlc29sdmVyLmphdmEKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRVdGlsczsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS5hd3QuRm9udDsKKworZmluYWwgY2xhc3MgRm9udFJlc29sdmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBzdGF0aWMgeworLy8gRXZlbiB0aG91Z2ggaXQgdmlvbGF0ZXMgdGhlIFByaW1lIERpcmVjdGl2ZSBJJ2xsIGNvbmRpdGlvbmFsaXplCisvLyB0aGlzIGFueXdheSwgc2luY2UgaXQgaXMganVzdCBhIDEuMiB3b3JrYXJvdW5kIHdoaWNoIEkgZ3JlYXRseQorLy8gcmVzZW50LgorLy8vKkpESzEySU1QT1JUUworICAgICAgICBqYXZhLmF3dC5HcmFwaGljc0Vudmlyb25tZW50LmdldExvY2FsR3JhcGhpY3NFbnZpcm9ubWVudCgpLmdldEFsbEZvbnRzKCk7CisvL0pESzEySU1QT1JUUyovCisgICAgfQorCisgICAgcHJpdmF0ZSBIYXNodGFibGUgc3R5bGVNYXA7CisgICAgcHJpdmF0ZSBmaW5hbCBBdHRyaWJ1dGVNYXAgZkRlZmF1bHRGb250TWFwOworCisgICAgcHVibGljIEZvbnRSZXNvbHZlcihBdHRyaWJ1dGVNYXAgZGVmYXVsdHMpIHsKKworICAgICAgICBzdHlsZU1hcCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgSGFzaHRhYmxlIHRlbXBNYXAgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIHRlbXBNYXAucHV0KFRleHRBdHRyaWJ1dGUuRkFNSUxZLCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5GQU1JTFkpKTsKKyAgICAgICAgdGVtcE1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIGRlZmF1bHRzLmdldChUZXh0QXR0cmlidXRlLldFSUdIVCkpOworICAgICAgICB0ZW1wTWFwLnB1dChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIGRlZmF1bHRzLmdldChUZXh0QXR0cmlidXRlLlBPU1RVUkUpKTsKKyAgICAgICAgdGVtcE1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5TSVpFLCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5TSVpFKSk7CisgICAgICAgIGZEZWZhdWx0Rm9udE1hcCA9IG5ldyBBdHRyaWJ1dGVNYXAodGVtcE1hcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmV0Y2ggcmVzdWx0IG9mIHJlc29sdmUoc3R5bGUpIGZyb20gY2FjaGUsIGlmIHByZXNlbnQuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhcHBseUZvbnQoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgT2JqZWN0IGNhY2hlZE1hcCA9IHN0eWxlTWFwLmdldChzdHlsZSk7CisKKyAgICAgICAgaWYgKGNhY2hlZE1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcmVzb2x2ZWRNYXAgPSByZXNvbHZlKHN0eWxlKTsKKyAgICAgICAgICAgIHN0eWxlTWFwLnB1dChzdHlsZSwgcmVzb2x2ZWRNYXApOworICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkTWFwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIChBdHRyaWJ1dGVNYXApIGNhY2hlZE1hcDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgY29udGFpbmluZyBhIEZvbnQgY29tcHV0ZWQgZnJvbSB0aGUKKyAgICAgKiBhdHRyaWJ1dGVzIGluIDx0dD5zdHlsZTwvdHQ+LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVzb2x2ZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICBpZiAoc3R5bGUuZ2V0KFRleHRBdHRyaWJ1dGUuRk9OVCkgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHN0eWxlOworICAgICAgICB9CisKKyAgICAgICAgRm9udCBmb250ID0gRm9udFV0aWxzLmdldEZvbnQoZkRlZmF1bHRGb250TWFwLmFkZEF0dHJpYnV0ZXMoc3R5bGUpKTsKKworICAgICAgICByZXR1cm4gc3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuRk9OVCwgZm9udCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9MYXlvdXRJbmZvLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0xheW91dEluZm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMTYyZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9MYXlvdXRJbmZvLmphdmEKQEAgLTAsMCArMSwxOTcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorLyoqIExheW91dEluZm8KKworICAgIEEgbGluZSBvZiB0ZXh0LCBwb3NzaWJseSBjb250YWluaW5nIHRhYi1zZWdtZW50cy4KKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0OworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3MyRDsKKy8vSkRLMTJJTVBPUlRTKi8KKworLypKREsxMUlNUE9SVFMKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRDsKK0pESzExSU1QT1JUUyovCisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworYWJzdHJhY3QgY2xhc3MgTGF5b3V0SW5mbworeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBpbnQgZkNoYXJTdGFydDsgICAgICAgLy8gb2Zmc2V0IGluIHRleHQgdG8gc3RhcnQgb2YgbGluZSAod2FzIGZTdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWcuIHZhbHVlcyBpbmRpY2F0ZSBkaXN0YW5jZSBmcm9tIGVuZCBvZiB0ZXh0CisgICAgcHJpdmF0ZSBpbnQgZkdyYXBoaWNTdGFydDsgICAgLy8gbWluIHBpeGVsIG9mZnNldCBpbiBmaWxsIGRpcmVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZ2F0aXZlIHZhbHVlcyBpbmRpY2F0ZSBkaXN0YW5jZSBmcm9tIGJvdHRvbSBvZiB0ZXh0IHZpZXcKKworICAgIC8qCisgICAgICAgIFRoZXNlIG1ldGhvZHMgYXJlIGZvciBzdG9yaW5nIExheW91dHMgaW4gYSBnYXAtc3RvcmFnZSwKKyAgICAgICAgcmVsYXRpdmUgdG8gZWl0aGVyIHRoZSBzdGFydCBvZiBlbmQgb2YgdGV4dC4gIFNlZSBBc3luY0Zvcm1hdHRlci4KKworICAgICAgICBJZiB5b3UganVzdCB3YW50IGFic29sdXRlICh0aGF0IGlzLCBzdGFydC1yZWxhdGl2ZSkgY2hhciBhbmQKKyAgICAgICAgZ3JhcGhpYyBzdGFydHMsIGRvbid0IG1ha2UgdGhlbSBlbmQtcmVsYXRpdmUuCisgICAgKi8KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0Q2hhclN0YXJ0KGludCBsZW5ndGhCYXNpcykgeworCisgICAgICAgIGlmIChmQ2hhclN0YXJ0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmQ2hhclN0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aEJhc2lzICsgZkNoYXJTdGFydDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0R3JhcGhpY1N0YXJ0KGludCBncmFwaGljQmFzaXMpIHsKKworICAgICAgICBpZiAoZkdyYXBoaWNTdGFydCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZkdyYXBoaWNTdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBncmFwaGljQmFzaXMgKyBmR3JhcGhpY1N0YXJ0OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0Q2hhclN0YXJ0KGludCBiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0KSB7CisKKyAgICAgICAgaWYgKGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjaGFyU3RhcnQgbXVzdCBiZSBub25uZWdhdml0dmUiKTsKKyAgICAgICAgfQorICAgICAgICBmQ2hhclN0YXJ0ID0gYmVnaW5uaW5nUmVsYXRpdmVTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRHcmFwaGljU3RhcnQoaW50IGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQpIHsKKworICAgICAgICBpZiAoYmVnaW5uaW5nUmVsYXRpdmVTdGFydCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNoYXJTdGFydCBtdXN0IGJlIG5vbm5lZ2F2aXR2ZSIpOworICAgICAgICB9CisgICAgICAgIGZHcmFwaGljU3RhcnQgPSBiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIG1ha2VSZWxhdGl2ZVRvQmVnaW5uaW5nKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZ3JhcGhpY0Jhc2lzKSB7CisKKyAgICAgICAgaWYgKGxlbmd0aEJhc2lzIDwgMCB8fCBncmFwaGljQmFzaXMgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYXNlcyBtdXN0IGJlIHBvc2l0aXZlLiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmQ2hhclN0YXJ0ID49IDAgfHwgZkdyYXBoaWNTdGFydCA+PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFscmVhZHkgc3RhcnQtcmVsYXRpdmUuIik7CisgICAgICAgIH0KKworICAgICAgICBmQ2hhclN0YXJ0ICs9IGxlbmd0aEJhc2lzOworICAgICAgICBmR3JhcGhpY1N0YXJ0ICs9IGdyYXBoaWNCYXNpczsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBtYWtlUmVsYXRpdmVUb0VuZChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGdyYXBoaWNCYXNpcykgeworCisgICAgICAgIGlmIChsZW5ndGhCYXNpcyA8IDAgfHwgZ3JhcGhpY0Jhc2lzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFzZXMgbXVzdCBiZSBwb3NpdGl2ZS4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZkNoYXJTdGFydCA8IDAgfHwgZkdyYXBoaWNTdGFydCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxyZWFkeSBlbmQtcmVsYXRpdmUuIik7CisgICAgICAgIH0KKworICAgICAgICBmQ2hhclN0YXJ0IC09IGxlbmd0aEJhc2lzOworICAgICAgICBmR3JhcGhpY1N0YXJ0IC09IGdyYXBoaWNCYXNpczsKKyAgICB9CisKKworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0Q2hhckxlbmd0aCgpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0QXNjZW50KCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXREZXNjZW50KCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRMZWFkaW5nKCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFZpc2libGVBZHZhbmNlKCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRUb3RhbEFkdmFuY2UoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExlYWRpbmdNYXJnaW4oKTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGlzTGVmdFRvUmlnaHQoKTsKKworICAgIHB1YmxpYyBpbnQgZ2V0SGVpZ2h0KCkgeworCisgICAgICAgIHJldHVybiBnZXRBc2NlbnQoKStnZXREZXNjZW50KCkrZ2V0TGVhZGluZygpOworICAgIH0KKworICAgIC8qKgorICAgICogRHJhd3MgdGV4dCB3aXRoIGhpZ2hsaWdodGluZy4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbmRlcldpdGhIaWdobGlnaHQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IpCisgICAgeworICAgIH0KKworICAgIC8qKiBVc2UgbGF5b3V0IGluZm9ybWF0aW9uIHRvIHJlbmRlciB0aGUgbGluZSBhdCB4LCB5LiovCisKKyAgICBwdWJsaWMgdm9pZCByZW5kZXIoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkKKyAgICB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVuZGVyQ2FyZXQoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHdlYWtDYXJldENvbG9yKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHBvaW50IHdpdGhpbiB0aGlzIGxpbmUsIHJldHVybiB0aGUgY2hhcmFjdGVyIG9mZnNldCBjb3JyZXNwb25kaW5nIHRvIHRoYXQgcG9pbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVzdWx0LiAgVGhpcyBtYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2FzZSBhIG5ldyBUZXh0T2Zmc2V0IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqICAgICAgICBUaGlzIG9iamVjdCBpcyBtb2RpZmllZCBpbiBwbGFjZSwgYW5kIGFsc28gcmV0dXJuZWQgYXMgdGhlIGZ1bmN0aW9uIHJlc3VsdC4KKyAgICAgKiBAcGFyYW0gdGV4dCBUZXh0IHRvIGluc3BlY3QuCisgICAgICogQHBhcmFtIGxpbmVYIFBvc2l0aW9uIG9uIHRoaXMgbGluZSByZWxhdGl2ZSB0byB0b3AgbGVmdCBjb3JuZXIgb2YgdGhpcyBsaW5lLgorICAgICAqIEBwYXJhbSBsaW5lWSBQb3NpdGlvbiBvbiB0aGlzIGxpbmUgcmVsYXRpdmUgdG8gdG9wIGxlZnQgY29ybmVyIG9mIHRoaXMgbGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGV4dE9mZnNldCBwaXhlbFRvT2Zmc2V0KGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpOworCisgICAgcHVibGljIGFic3RyYWN0IGludCBzdHJvbmdDYXJldEJhc2VsaW5lUG9zaXRpb24oaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQpOworCisgICAgcHVibGljIGFic3RyYWN0IFJlY3RhbmdsZSBjYXJldEJvdW5kcyhNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KTsKKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldE5leHRPZmZzZXQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTUZvcm1hdHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NRm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjYxZDc3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTUZvcm1hdHRlci5qYXZhCkBAIC0wLDAgKzEsMzUxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoqCisqCisqIFRoaXMgY2xhc3MgZm9ybWF0cyBsaW5lcyBvZiB0ZXh0IHRvIGEgZ2l2ZW4gbGVuZ3RoLgorKiBJdCBwcm92aWRlcyBzZXJ2aWNlcyBuZWVkZWQgZm9yIHN0YXRpYyB0ZXh0IGRpc3BsYXksCisqIGFuZCBhbHNvIGVkaXRhYmxlIHRleHQsIGluY2x1ZGluZzogIGRpc3BsYXlpbmcgdGV4dCwKKyogcmVmb3JtYXR0aW5nIHRleHQgYWZ0ZXIgYW4gZWRpdCwgY29udmVydGluZyBiZXR3ZWVuCisqIHNjcmVlbiBsb2NhdGlvbnMgYW5kIG9mZnNldHMgaW50byB0aGUgdGV4dCwgY2FsY3VsYXRpbmcKKyogYXJlYXMgb2YgdGhlIHNjcmVlbiBmb3IgImhpZ2hsaWdodGluZywiICBhbmQgY29tcHV0aW5nCisqIG9mZnNldHMgaW50byB0aGUgdGV4dCByZXN1bHRpbmcgZnJvbSBhcnJvdyBrZXlzLgorKiA8cD4KKyogVGV4dCBjbGllbnRzIGluc3RhbnRpYXRlIHRoaXMgY2xhc3Mgd2l0aCBhbgorKiA8dHQ+TUNvbnN0VGV4dDwvdHQ+IG9iamVjdCBhbmQgYSBmb3JtYXQgd2lkdGguICBUZXh0CisqIGNhbiBiZSBmb3JtYXR0ZWQgc3VjaCB0aGF0IGFsbCBsaW5lcyBmaXQgd2l0aGluIHRoZQorKiBmb3JtYXQgbGVuZ3RoLiAgQWx0ZXJuYXRpdmVseSwgdGV4dCBjYW4gYmUgZm9ybWF0dGVkCisqIHN1Y2ggdGhhdCBsaW5lcyBlbmQgb25seSBhdCB0aGUgZW5kIG9mIHBhcmFncmFwaHMuCisqIDxwPgorKiBUaGUgZm9ybWF0IGxlbmd0aCBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgPHR0PnNldExpbmVCb3VuZCgpPC90dD4KKyogbWV0aG9kLgorKiA8cD4KKyogTWV0aG9kcyBpbiB0aGUgZm9ybWF0dGVyIHdoaWNoIGludGVyYWN0IHdpdGggdGhlIGdyYXBoaWNzCisqIHN5c3RlbSBnZW5lcmFsbHkgdGFrZSBhcyBhIHBhcmFtdGVyIGEgPHR0PlBvaW50PC90dD4gb2JqZWN0CisqIHdoaWNoIHJlcHJlc2VudHMgdGhlICJvcmlnaW4iIG9mIHRoZSB0ZXh0IGRpc3BsYXkuICBUaGUKKyogb3JpZ2luIHJlcHJlc2VudHMgdGhlIGxvY2F0aW9uLCBpbiB0aGUgZ3JhcGhpY3Mgc3lzdGVtIHVzZWQgdG8gZGlzcGxheSB0aGUgdGV4dCwgb2YKKyogdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dC4KKyogPHA+CisqIFRvIGRpc3BsYXkgdGhlIHRleHQsIGNhbGwgPHR0PmRyYXcoKTwvdHQ+LCBwYXNzaW5nIHRoZQorKiBhIHJlY3RhbmdsZSBpbiB3aGljaCB0byBkcmF3IGFzIGEgcGFyYW1ldGVyLiAgT25seSBsaW5lcworKiBvZiB0ZXh0IGluIHRoZSBkcmF3IHJlY3RhbmdsZSB3aWxsIGJlIGRyYXduLgorKiA8cD4KKyogV2hlbiB0aGUgZm9ybWF0dGVyJ3MgdGV4dCBjaGFuZ2VzLCBpdCBpcyBpbXBvcnRhbnQgdG8gZmlyc3QgY2FsbAorKiA8dHQ+c3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk8L3R0PiB0byBwcmV2ZW50IHRoZSBGb3JtYXR0ZXIgZnJvbQorKiBhY2Nlc3NpbmcgdGhlIHRleHQgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLiAgQWZ0ZXIgbW9kaWZpY2F0aW9ucyBhcmUKKyogY29tcGxldGUsCisqIGNhbGwgdGhlIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+IG1ldGhvZCBiZWZvcmUgaW52b2tpbmcgYW55IG90aGVyCisqIG1ldGhvZHMgb2YgdGhlIGZvcm1hdHRlci4gIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+IHJlZm9ybWF0cyB0aGUKKyogbmV3IHRleHQsIGZvcm1hdHRpbmcgbm8gbW9yZSB0ZXh0IHRoYW4gaXMgbmVjZXNzYXJ5LgorKiA8cD4KKyogVGhlIGZvcm1hdHRlciBwcm92aWRlcyBzZXJ2aWNlcyBmb3IgcmVzcG9uZGluZyB0byB1c2VyIGlucHV0IGZyb20gdGhlCisqIG1vdXNlIGFuZCBrZXlib2FyZC4gIFRoZSBtZXRob2QgPHR0PnBvaW50VG9UZXh0T2Zmc2V0KCk8L3R0PiBjb252ZXJ0cworKiBhIHNjcmVlbiBsb2NhdGlvbiB0byBhbiBvZmZzZXQgaW4gdGhlIHRleHQuICBUaGUgbWV0aG9kIDx0dD50ZXh0T2Zmc2V0VG9Qb2ludDwvdHQ+CisqIGNvbnZlcnRzIGFuIG9mZnNldCBpbiB0aGUgdGV4dCB0byBhbiBhcnJheSBvZiB0d28gPHR0PlBvaW50PC90dD4gb2JqZWN0cywgd2hpY2ggY2FuIGJlCisqIHVzZWQgdG8gZHJhdyBhIHZlcnRpY2xlIGNhcmV0LCBkZW5vdGluZyBhbiBpbnNlcnRpb24gcG9pbnQuICA8dHQ+aGlnaGxpZ2h0QXJlYTwvdHQ+CisqIGFjY2VwdHMgdHdvIG9mZnNldHMgaW50byB0aGUgdGV4dCBhcyBwYXJhbXRlcnMsIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIDx0dD5Qb2x5Z29uPC90dD4KKyogb2JqZWN0cyByZXByZXNlbnRpbmcgYXJlYXMgd2hlcmUgdmlzdWFsIGhpZ2hsaWdodGluZyBzaG91bGQgYmUgYXBwbGllZC4KKyogPHA+CisqIEZpbmFsbHksIGZvcgorKiBrZXlib2FyZCBoYW5kbGluZywgdGhlIDx0dD5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KCk8L3R0PiBtZXRob2QgYWNjZXB0cyBhbiAiaW5pdGlhbCIKKyogb2Zmc2V0LCBhICJwcmV2aW91cyIgb2Zmc2V0LCBhcyB3ZWxsIGFzIGEgZGlyZWN0aW9uLCBhbmQgcmV0dXJucyBhIG5ldyBvZmZzZXQuICBUaGUgZGlyZWN0aW9uCisqIGNhbiBiZSB1cCwgZG93biwgbGVmdCwgb3IgcmlnaHQuICBUaGUgcHJldmlvdXMgb2Zmc2V0IGlzIHRoZSBpbnNlcnRpb24gcG9pbnQgbG9jYXRpb24sIGJlZm9yZQorKiB0aGUgYXJyb3cga2V5IGlzIHByb2Nlc3NlZC4gIFRoZSBpbml0aWFsIG9mZnNldCBpcyB0aGUgb2Zmc2V0IHdoZXJlIGFuIHVwIG9yIGRvd24gYXJyb3cKKyoga2V5IHNlcXVlbmNlIGJlZ2FuLiAgVXNpbmcgdGhlIGluaXRpYWwgb2Zmc2V0IGFsbG93cyBmb3IgImludGVsbGlnZW50IiBoYW5kbGluZyBvZiB1cCBhbmQgZG93bgorKiBhcnJvdyBrZXlzLgorKiA8cD4KKyogRXhhbXBsZXMgb2YgdXNpbmcgdGhlIE1Gb3JtYXR0ZXIgY2xhc3MKKyogYXJlIGdpdmVuIGluIHRoZSA8dHQ+QXN5bmNGb3JtYXR0ZXI8L3R0PiBjbGFzcworKiBkb2N1bWVudGF0aW9uLgorKiA8cD4KKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0CisqLworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTUZvcm1hdHRlciB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpOworCisvKioKKyogRGlzcGxheSB0ZXh0IGluIGRyYXdBcmVhLCB3aXRoIGhpZ2hsaWdodGluZy4KKyogRG9lcyBub3QgcmVmb3JtYXQgdGV4dAorKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3Mgb2JqZWN0IGluIHdoaWNoIHRvIGRyYXcKKyogQHBhcmFtIGRyYXdBcmVhIHRoZSByZWN0YW5nbGUsIGluIGcncyBjb29yZGluYXRlIHN5c3RlbSwgaW4gd2hpY2ggdG8gZHJhdworKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIGcncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gc2VsU3RhcnQgdGhlIG9mZnNldCB3aGVyZSB0aGUgY3VycmVudCBzZWxlY3Rpb24gYmVnaW5zOyAgcGFzcyA8dHQ+bnVsbDwvdHQ+IGlmIG5vIHNlbGVjdGlvbgorKiBAcGFyYW0gc2VsU3RvcCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBlbmRzCisqIEBwYXJhbSBoaWdobGlnaHQgdGhlIGNvbG9yIG9mIHRoZSBoaWdobGlnaHRpbmcKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd0FyZWEsIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsIFRleHRPZmZzZXQgc2VsU3RvcCwgQ29sb3IgaGlnaGxpZ2h0KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4pOworCisvKioKKyogU3BlY2lmeSB3aGV0aGVyIHRvIHdyYXAgbGluZSBhdCB0aGUgZWRnZSBvZiB0aGUgZGVzdGluYXRpb24gYXJlYS4KKyogPHR0PnRydWU8L3R0PiBtZWFucyB3cmFwIGxpbmVzOyAgPHR0PmZhbHNlPC90dD4gbWVhbnMgdG8gYnJlYWsgbGluZXMKKyogb25seSB3aGVuIGFuIGVuZC1vZi1saW5lIGNoYXJhY3RlciBpcyByZWFjaGVkLgorKiBAcGFyYW0gd3JhcCA8dHQ+dHJ1ZTwvdHQ+IHRvIGJyZWFrIGxpbmVzIGF0IHRoZSBlZGdlIG9mIHRoZSBkZXN0aW5hdGlvbgorKiBhcmVhOyAgPHR0PmZhbHNlPC90dD4gb3RoZXJ3aXNlLgorKi8KKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldFdyYXAoYm9vbGVhbiB3cmFwKTsKKworLyoqCisqIFJldHVybiB3aGV0aGVyIHRleHQgaXMgd3JhcHBlZCBhdCB0aGUgZWRnZSBvZiB0aGUgZGVzdGluYXRpb24gYXJlYS4KKyogQHNlZSAjc2V0V3JhcAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiB3cmFwKCk7CisKKy8qKgorKiBTcGVjaWZ5IHRoZSBudW1iZXIgb2YgcGl4ZWxzIGFsb25nIHRoZSAibGluZSBkaW1lbnNpb24iLgorKiBMaW5lcyBhcmUgZm9ybWF0dGVkIHRvIGZpdCB3aXRoaW4gdGhlIGxpbmUgZGltZW5zaW9uLiAgVGhlCisqIGxpbmUgZGltZW5zaW9uIGluIFJvbWFuIHNjcmlwdCBpcyBob3Jpem9udGFsLgorKiBAcGFyYW0gbGluZUJvdW5kIHRoZSBsZW5ndGgsIGluIHBpeGVscywgdG8gd2hpY2ggbGluZXMgd2lsbCBiZSBmb3JtYXR0ZWQKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0TGluZUJvdW5kKGludCBsaW5lQm91bmQpOworCisvKioKKyogUmV0dXJuIHRoZSBudW1iZXIgb2YgcGl4ZWxzIGFsb25nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyogQHJldHVybiB0aGUgbnVtYmVyIG9mIHBpeGVscyBhbG9uZyB0aGUgbGluZSBkaW1lbnNpb24uCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUJvdW5kKCk7CisgICAgCisvKioKKyogRm9ybWF0IHRleHQgZG93biB0byBnaXZlbiBoZWlnaHQuCisqIEBwYXJhbSBoZWlnaHQgdGhlIGhlaWdodCB0byB3aGljaCB0ZXh0IHdpbGwgYmUgZm9ybWF0dGVkCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGZvcm1hdFRvSGVpZ2h0KGludCBoZWlnaHQpOworCisvKioKKyogUmVmb3JtYXQgdGV4dCBhZnRlciBhIGNoYW5nZS4KKyogQWZ0ZXIgdGhlIGZvcm1hdHRlcidzIHRleHQgY2hhbmdlcywgY2FsbCB0aGlzIG1ldGhvZCB0byByZWZvcm1hdC4gIERvZXMKKyogbm90IHJlZHJhdy4KKyogQHBhcmFtIGFmU3RhcnQgdGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0IHdoZXJlIG1vZGlmaWNhdGlvbiBiZWdhbjsgIGllLCB0aGUKKyogZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IHdoaWNoIGlzICJkaWZmZXJlbnQiIGluIHNvbWUgd2F5LiAgRG9lcyBub3QKKyogaGF2ZSB0byBiZSBub25uZWdhdGl2ZS4KKyogQHBhcmFtIGFmTGVuZ3RoIHRoZSBudW1iZXIgb2YgbmV3IG9yIGNoYW5nZWQgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4gIFNob3VsZCBuZXZlcgorKiBiZSBsZXNzIHRoYW4gMC4KKyogQHBhcmFtIHZpZXdSZWN0IHRoZSBSZWN0YW5nbGUgaW4gd2hpY2ggdGhlIHRleHQgd2lsbCBiZSBkaXNwbGF5ZWQuICBUaGlzIGlzIG5lZWRlZCBmb3IKKyogcmV0dXJuaW5nIHRoZSAiZGFtYWdlZCIgYXJlYSAtIHRoZSBhcmVhIG9mIHRoZSBzY3JlZW4gaW4gd2hpY2ggdGhlIHRleHQgbXVzdCBiZSByZWRyYXduLgorKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyogQHJldHVybiBhIDx0dD5SZWN0YW5nbGU8L3R0PiB3aGljaCBzcGVjaWZpZXMgdGhlIGFyZWEgaW4gd2hpY2ggdGV4dCBtdXN0IGJlCisqIHJlZHJhd24gdG8gcmVmbGVjdCB0aGUgY2hhbmdlIHRvIHRoZSB0ZXh0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgUmVjdGFuZ2xlIHVwZGF0ZUZvcm1hdChpbnQgYWZTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWZMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIHZpZXdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbik7CisKKworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWluWSgpOworICAgIAorLyoqCisgKiBSZXR1cm4gdGhlIG1heGltdW0gdmVydGljYWwgY29vcmRpbmF0ZSBvZiB0aGUgZG9jdW1lbnQgYXJlYS4KKyAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWF4WSgpOworCisgICAgcHVibGljIGFic3RyYWN0IGludCBtaW5YKCk7CisKKy8qKgorICogUmV0dXJuIHRoZSBtYXhpbXVtIGhvcml6b250YWwgY29vcmRpbmF0ZSBvZiB0aGUgZG9jdW1lbnQgYXJlYS4KKyAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWF4WCgpOworCisvKioKKyogUmV0dXJuIHRoZSBhY3R1YWwgcGl4ZWwgbGVuZ3RoIG9mIHRoZSB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmb3JtYXR0ZWRIZWlnaHQoKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgZVVwID0gLTEwLCBlRG93biA9IDEwLCBlTGVmdCA9IC0xLCBlUmlnaHQgPSAxOworCisvKioKKyogR2l2ZW4gYSBzY3JlZW4gbG9jYXRpb24gcCwgcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgdGV4dCBuZWFyZXN0IHRvIHAuCisqCisqIFRoZSBvZmZzZXQgbWF5IG9yIG1heSBub3QgaW5jbHVkZSBhIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiBhIGxpbmUsIGRldGVybWluZWQgYnkgYW5jaG9yIGFuZCBpbmZpbml0ZU1vZGUuCisqIFRoZSBuZXdsaW5lIGlzIG5vdCBpbmNsdWRlZCBpZiBpbmZpbml0ZU1vZGUgaXMgdHJ1ZSBhbmQgdGhlIGFuY2hvciBpcyB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBuZXdsaW5lLgorKgorKiBAcGFyYW0gcmVzdWx0IFRleHRPZmZzZXQgdG8gbW9kaWZ5IGFuZCByZXR1cm4uICBJZiBudWxsLCBvbmUgd2lsbCBiZSBhbGxvY2F0ZWQsIG1vZGlmaWVkLCBhbmQgcmV0dXJuZWQuCisqIEBwYXJhbSBweCB0aGUgeCBjb21wb25lbnQgb2YgdGhlIHBvaW50LgorKiBAcGFyYW0gcHkgdGhlIHkgY29tcG9uZW50IG9mIHRoZSBwb2ludC4KKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEBwYXJhbSBhbmNob3IgdGhlIHByZXZpb3VzIG9mZnNldC4gIE1heSBiZSBudWxsLiAgVXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBuZXdsaW5lcyBhcmUgaW5jbHVkZWQuCisqIEBwYXJhbSBpbmZpbml0ZU1vZGUgaWYgdHJ1ZSwgdHJlYXQgbmV3bGluZXMgYXQgZW5kIG9mIGxpbmUgYXMgaGF2aW5nIGluZmluaXRlIHdpZHRoLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGV4dE9mZnNldCBwb2ludFRvVGV4dE9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgaW50IHB4LCBpbnQgcHksIFBvaW50IG9yaWdpbiwgVGV4dE9mZnNldCBhbmNob3IsIGJvb2xlYW4gaW5maW5pdGVNb2RlKTsKKworLyoqCisqIEdpdmVuIGFuIG9mZnNldCwgcmV0dXJuIHRoZSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0IGF0IHRoZSBvZmZzZXQuCisqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEByZXR1cm4gYSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgUmVjdGFuZ2xlIGdldENhcmV0UmVjdChUZXh0T2Zmc2V0IG9mZnNldCwgUG9pbnQgb3JpZ2luKTsKKworLyoqCisqIERyYXcgdGhlIGNhcmV0KHMpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0IGludG8gdGhlIGdpdmVuIEdyYXBoaWNzLgorKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3MgdG8gZHJhdyBpbnRvCisqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbiB0aGUgdGV4dCBmb3Igd2hpY2ggdGhlIGNhcmV0IGlzIGRyYXduCisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gc3Ryb25nQ2FyZXRDb2xvciB0aGUgY29sb3Igb2YgdGhlIHN0cm9uZyBjYXJldAorKiBAcGFyYW0gd2Vha0NhcmV0Q29sb3IgdGhlIGNvbG9yIG9mIHRoZSB3ZWFrIGNhcmV0IChpZiBhbnkpCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGRyYXdDYXJldChHcmFwaGljcyBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcik7CisKKyAgICAvKioKKyAgICAgKiBAc2VlICNnZXRCb3VuZGluZ1JlY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gTE9PU0UgPSBmYWxzZTsKKyAgICAvKioKKyAgICAgKiBAc2VlICNnZXRCb3VuZGluZ1JlY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gVElHSFQgPSB0cnVlOworCisvKioKKyogR2l2ZW4gdHdvIG9mZnNldHMgaW4gdGhlIHRleHQsIHJldHVybiBhIHJlY3RhbmdsZSB3aGljaCBlbmNsb3NlcyB0aGUgbGluZXMgY29udGFpbmluZyB0aGUgb2Zmc2V0cy4KKyogT2Zmc2V0cyBkbyBub3QgbmVlZCB0byBiZSBvcmRlcmVkIG9yIG5vbm5lZ2F0aXZlLgorKiBAcGFyYW0gb2Zmc2V0MSBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcGFyYW0gb2Zmc2V0MiB0aGUgb3RoZXIgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEBwYXJhbSB0aWdodCBpZiBlcXVhbCB0byBUSUdIVCwgdGhlIGJvdW5kcyBpcyBhcyBzbWFsbCBhcyBwb3NzaWJsZS4gIElmIExPT1NFLCB0aGUgd2lkdGgKKyogb2YgdGhlIGJvdW5kcyBpcyBhbGxvd2VkIHRvIGJlIHdpZGVyIHRoYW4gbmVjZXNhcnkuICBMb29zZSBib3VuZHMgYXJlIGVhc2llciB0byBjb21wdXRlLgorKiBAcmV0dXJuIGEgPHR0PlJlY3RhbmdsZTwvdHQ+LCByZWxhdGl2ZSB0byA8dHQ+b3JpZ2luPC90dD4sIHdoaWNoIGVuY2xvc2VzIHRoZSBsaW5lcyBjb250YWluaW5nIHRoZSBvZmZzZXRzCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBSZWN0YW5nbGUgZ2V0Qm91bmRpbmdSZWN0KFRleHRPZmZzZXQgb2Zmc2V0MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldEJvdW5kaW5nUmVjdChSZWN0YW5nbGUgYm91bmRpbmdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2Zmc2V0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KTsKKworLyoqCisqIENvbXB1dGUgdGhlIG9mZnNldCByZXN1bHRpbmcgZnJvbSBtb3ZpbmcgZnJvbSBhIHByZXZpb3VzIG9mZnNldCBpbiBkaXJlY3Rpb24gZGlyLgorKiBGb3IgYXJyb3cga2V5cy4KKyogQHBhcmFtIHByZXZpb3VzT2Zmc2V0IHRoZSBpbnNlcnRpb24gb2Zmc2V0IHByaW9yIHRvIHRoZSBhcnJvdyBrZXkgcHJlc3MKKyogQHBhcmFtIGRpcmVjdGlvbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisqIEByZXR1cm4gbmV3IG9mZnNldCBiYXNlZCBvbiBkaXJlY3Rpb24gYW5kIHByZXZpb3VzIG9mZnNldC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IFRleHRPZmZzZXQgZmluZEluc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcHJldmlvdXNPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pOworCisvKioKKyogQ29tcHV0ZSB0aGUgb2Zmc2V0IHJlc3VsdGluZyBmcm9tIG1vdmluZyBmcm9tIGEgcHJldmlvdXMgb2Zmc2V0LCBzdGFydGluZyBhdCBhbiBvcmlnaW5hbCBvZmZzZXQsIGluIGRpcmVjdGlvbiBkaXIuCisqIEZvciBhcnJvdyBrZXlzLiAgVXNlIHRoaXMgZm9yICJzbWFydCIgdXAvZG93biBrZXlzLgorKiBAcGFyYW0gcmVzdWx0IFRleHRPZmZzZXQgdG8gbW9kaWZ5IGFuZCByZXR1cm4uICBJZiBudWxsLCBhIG5ldyBUZXh0T2Zmc2V0IGlzIGNyZWF0ZWQsIG1vZGlmaWVkLCBhbmQgcmV0dXJuZWQuCisqIEBwYXJhbSBpbml0aWFsT2Zmc2V0IFRoZSBvZmZzZXQgYXQgd2hpY2ggYW4gdXAtZG93biBhcnJvdyBrZXkgc2VxdWVuY2UgYmVnYW4uCisqIEBwYXJhbSBwcmV2aW91c09mZnNldCBUaGUgaW5zZXJ0aW9uIG9mZnNldCBwcmlvciB0byB0aGUgYXJyb3cga2V5IHByZXNzLgorKiBAcGFyYW0gZGlyZWN0aW9uIFRoZSBkaXJlY3Rpb24gb2YgdGhlIGFycm93IGtleSAoZVVwLCBlRG93biwgZUxlZnQsIG9yIGVSaWdodCkKKyogQHJldHVybiBuZXcgb2Zmc2V0IGJhc2VkIG9uIGRpcmVjdGlvbiBhbmQgcHJldmlvdXMgb2Zmc2V0KHMpLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGV4dE9mZnNldCBmaW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBpbml0aWFsT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBwcmV2aW91c09mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGRpcmVjdGlvbik7CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGdpdmVuIGNoYXJhY3RlciBpbmRleC4KKyogVGhpcyBtZXRob2QgaGFzIGNvbXBsaWNhdGVkIHNlbWFudGljcywgYXJpc2luZyBmcm9tIG5vdCBrbm93aW5nIAorKiB3aGljaCBzaWRlIG9mIHRoZSBpbmRleCB0byBjaGVjay4gIFRoZSBpbmRleCB3aWxsIGJlIGdpdmVuIGFuCisqIGltcGxpY2l0IEFGVEVSIGJpYXMsIHVubGVzcyB0aGUgaW5kZXggaXMgdGhlIGxhc3QgaW5kZXggaW4gdGhlIHRleHQsCisqIHRoZSB0ZXh0IGxlbmd0aCBpcyBub24temVybywgYW5kIHRoZXJlIGlzIG5vdCBhIHBhcmFncmFwaCBzZXBhcmF0b3IKKyogYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lQ29udGFpbmluZyhpbnQgaW5kZXgpOworICAgIAorLyoqCisqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgZ2l2ZW4gb2Zmc2V0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxpbmVDb250YWluaW5nKFRleHRPZmZzZXQgb2Zmc2V0KTsKKworLyoqCisqIFJldHVybiB0aGUgbnVtYmVyIG9mIGxpbmVzLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExpbmVDb3VudCgpOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9uIHRoZSBnaXZlbiBsaW5lLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxpbmVSYW5nZUxvdyhpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBnaXZlbiBsaW5lLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKTsKKworLyoqCisqIFRlbGxzIHRoZSBmb3JtYXR0ZXIgdG8gc3RvcCBhY2Nlc3NpbmcgdGhlIHRleHQgdW50aWwgdXBkYXRlRm9ybWF0IGlzIGNhbGxlZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbmUgbnVtYmVyIGF0IHRoZSBnaXZlbiBncmFwaGljIGhlaWdodC4gIElmIGhlaWdodCBpcyBncmVhdGVyIHRoYW4KKyogdGhlIHRleHQgaGVpZ2h0LCBtYXhMaW5lTnVtYmVyICsgMSBpcyByZXR1cm5lZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lQXRIZWlnaHQoaW50IGhlaWdodCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGdyYXBoaWMgaGVpZ2h0IHdoZXJlIHRoZSBnaXZlbiBsaW5lIGJlZ2lucy4gIElmIHRoZSBsaW5lTnVtYmVyIGlzCisqIG1heExpbmVOdW1iZXIgdGhlIGVudGlyZSB0ZXh0IGhlaWdodCBpcyByZXR1cm5lZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lR3JhcGhpY1N0YXJ0KGludCBsaW5lTnVtYmVyKTsKKworLyoqCisqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBsaW5lIGlzIGxlZnQtdG8tcmlnaHQuCisqIEBwYXJhbSBsaW5lTnVtYmVyIGEgdmFsaWQgbGluZQorKiBAcmV0dXJuIHRydWUgaWYgbGluZU51bWJlciBpcyBsZWZ0LXRvLXJpZ2h0CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGxpbmVJc0xlZnRUb1JpZ2h0KGludCBsaW5lTnVtYmVyKTsKKworLyoqCisqIFJldHVybiBhIG5ldyA8dHQ+TUZvcm1hdHRlcjwvdHQ+LgorKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBmb3JtYXQKKyogQHBhcmFtIGRlZmF1bHRWYWx1ZXMgdmFsdWVzIHRvIHVzZSB3aGVuIGNlcnRhaW4gYXR0cmlidXRlcyBhcmUgbm90IHNwZWNpZmllZC4gCisqICAgIDx0dD5kZWZhdWx0VmFsdWVzPC90dD4gbXVzdCBjb250YWluIHZhbHVlcyBmb3IgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgorKiAgICA8dHQ+RkFNSUxZPC90dD4sIDx0dD5XRUlHSFQ8L3R0PiwgPHR0PlBPU1RVUkU8L3R0PiwgPHR0PlNJWkU8L3R0PiwgPHR0PlNVUEVSU0NSSVBUPC90dD4sIAorKiAgICA8dHQ+Rk9SRUdST1VORDwvdHQ+LCA8dHQ+VU5ERVJMSU5FPC90dD4sIDx0dD5TVFJJS0VUSFJPVUdIPC90dD4sCisqICAgIDx0dD5FWFRSQV9MSU5FX1NQQUNJTkc8L3R0PiwgPHR0PkZJUlNUX0xJTkVfSU5ERU5UPC90dD4sPHR0Pk1JTl9MSU5FX1NQQUNJTkc8L3R0PiwKKyogICAgPHR0PkxJTkVfRkxVU0g8L3R0PiwgPHR0PkxFQURJTkdfTUFSR0lOPC90dD4sIDx0dD5UUkFJTElOR19NQVJHSU48L3R0PiwgPHR0PlRBQl9SVUxFUjwvdHQ+CisqIEBwYXJhbSBsaW5lQm91bmQgbGVuZ3RoIHRvIHdoaWNoIGxpbmVzIGFyZSBmb3JtYXR0ZWQKKyogQHBhcmFtIHdyYXAgPHR0PnRydWU8L3R0PiBpZiB0ZXh0IHNob3VsZCBiZSAibGluZSB3cmFwcGVkIiAoZm9ybWF0dGVkIHRvIGZpdCBkZXN0aW5hdGlvbiBhcmVhKQorKi8KKyAgICBwdWJsaWMgc3RhdGljIE1Gb3JtYXR0ZXIgY3JlYXRlRm9ybWF0dGVyKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MgZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgQXN5bmNGb3JtYXR0ZXIodGV4dCwgZGVmYXVsdFZhbHVlcywgbGluZUJvdW5kLCB3cmFwLCBnKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01UZXh0SXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTVRleHRJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyMWQxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01UZXh0SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDQwMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLk1hcDsKK0pESzExSU1QT1JUUyovCisKKy8qKgorICogQW4gQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gTUNvbnN0VGV4dC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1UZXh0SXRlcmF0b3IgaW1wbGVtZW50cyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb25lYWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIG1lbW9yeSBsZWFrLCBzaW5jZSB0aGlzIGNhY2hlIGlzIG5ldmVyIGZsdXNoZWQKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1hdGNoZXIgeworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBtYXRjaGVzKE1hcCBsaHMsIE1hcCByaHMsIE9iamVjdCBxdWVyeSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBPYmplY3QgbGhzVmFsID0gbGhzLmdldChxdWVyeSk7CisgICAgICAgICAgICBPYmplY3QgcmhzVmFsID0gcmhzLmdldChxdWVyeSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaHNWYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiByaHNWYWwgPT0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBsaHNWYWwuZXF1YWxzKHJoc1ZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWF0Y2hlciBBVFRSX01BVENIRVIgPSBuZXcgTWF0Y2hlcigpOworICAgIAorICAgIC8vIE5vdCBxdWl0ZSBvcHRpbWFsLiAgQ291bGQgaGF2ZSBhIG1hdGNoZXIgdGhhdCB3b3VsZCBkZWNvbXBvc2UKKyAgICAvLyBhIHNldCBvbmNlIGZvciByZXBlYXRlZCBxdWVyaWVzLiAgT2YgY291cnNlIHRoYXQgd291bGQgcmVxdWlyZQorICAgIC8vIGFsbG9jYXRpb24uLi4KKy8vLypKREsxMklNUE9SVFMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBNYXRjaGVyIFNFVF9NQVRDSEVSID0gbmV3IE1hdGNoZXIoKSB7CisgICAgICAgIAorICAgICAgICBib29sZWFuIG1hdGNoZXMoTWFwIGxocywgTWFwIHJocywgT2JqZWN0IHF1ZXJ5KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdCB1c2luZyBJdGVyYXRvciB0byBzaW1wbGlmeSAxLjEgcG9ydC4KKyAgICAgICAgICAgIE9iamVjdFtdIGVsZW1lbnRzID0gKChTZXQpcXVlcnkpLnRvQXJyYXkoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdXBlci5tYXRjaGVzKGxocywgcmhzLCBlbGVtZW50c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfTsKKy8vSkRLMTJJTVBPUlRTKi8KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFN0eWxlQ2FjaGUgeworCisgICAgICAgIHByaXZhdGUgaW50IGZSdW5TdGFydCA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5MaW1pdCA9IC0xOworICAgICAgICBwcml2YXRlIGludCBmUmFuZ2VTdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJhbmdlTGltaXQ7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZTsKKworICAgICAgICBTdHlsZUNhY2hlKE1Db25zdFRleHQgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgICAgIGZSYW5nZVN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICBmUmFuZ2VMaW1pdCA9IGxpbWl0OworICAgICAgICAgICAgdXBkYXRlKHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB1cGRhdGUoaW50IHBvcykgeworICAgICAgICAgICAgaWYgKHBvcyA8IGZSdW5TdGFydCB8fCBwb3MgPj0gZlJ1bkxpbWl0KSB7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA8IGZSYW5nZVN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGZSdW5MaW1pdCA9IGZSYW5nZVN0YXJ0OworICAgICAgICAgICAgICAgICAgICBmUnVuU3RhcnQgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAocG9zID4gZlJhbmdlTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0YXJ0ID0gZlJhbmdlTGltaXQ7CisgICAgICAgICAgICAgICAgICAgIGZSdW5MaW1pdCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0YXJ0ID0gTWF0aC5tYXgoZlJhbmdlU3RhcnQsIGZUZXh0LmNoYXJhY3RlclN0eWxlU3RhcnQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIGZSdW5TdGFydCA9IE1hdGgubWF4KGZSdW5TdGFydCwgZlRleHQucGFyYWdyYXBoU3RhcnQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmUnVuTGltaXQgPSBNYXRoLm1pbihmUmFuZ2VMaW1pdCwgZlRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkxpbWl0ID0gTWF0aC5taW4oZlJ1bkxpbWl0LCBmVGV4dC5wYXJhZ3JhcGhMaW1pdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZSdW5TdGFydCA8IGZSdW5MaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSBmVGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSA9IHN0eWxlLmFkZEF0dHJpYnV0ZXMoZlRleHQuY2hhcmFjdGVyU3R5bGVBdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmU3R5bGUgPSBmRm9udFJlc29sdmVyLmFwcGx5Rm9udChzdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0UnVuU3RhcnQoaW50IHBvcykgeworICAgICAgICAgICAgdXBkYXRlKHBvcyk7CisgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldFJ1bkxpbWl0KGludCBwb3MpIHsKKyAgICAgICAgICAgIHVwZGF0ZShwb3MpOworICAgICAgICAgICAgcmV0dXJuIGZSdW5MaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIE1hcCBnZXRTdHlsZShpbnQgcG9zKSB7CisgICAgICAgICAgICB1cGRhdGUocG9zKTsKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciBmQ2hhckl0ZXI7CisgICAgcHJpdmF0ZSBGb250UmVzb2x2ZXIgZkZvbnRSZXNvbHZlcjsKKyAgICAKKyAgICBwcml2YXRlIFN0eWxlQ2FjaGUgZlN0eWxlQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gTVRleHRJdGVyYXRvciBvdmVyIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRleHRJdGVyYXRvcihNQ29uc3RUZXh0IHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkgeworCisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgZkZvbnRSZXNvbHZlciA9IHJlc29sdmVyOworICAgICAgICBmQ2hhckl0ZXIgPSB0ZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgZlN0eWxlQ2FjaGUgPSBuZXcgU3R5bGVDYWNoZSh0ZXh0LCBzdGFydCwgbGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIGdldEJlZ2luSW5kZXgoKSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoYXQKKyAgICAgKiBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQsIG9yIERPTkUgaWYgdGhlIHRleHQgaXMgZW1wdHkKKyAgICAgKiBAc2VlICNnZXRCZWdpbkluZGV4CisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIuZmlyc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRFbmRJbmRleCgpLTEgKGdldEVuZEluZGV4KCkgaWYgdGhlIHRleHQgaXMgZW1wdHkpCisgICAgICogYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0RW5kSW5kZXgKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBsYXN0KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmxhc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gKGFzIHJldHVybmVkIGJ5IGdldEluZGV4KCkpLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgb2ZmIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHNlZSAjZ2V0SW5kZXgKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGluZGV4IGJ5IG9uZSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyCisgICAgICogYXQgdGhlIG5ldyBpbmRleC4gIElmIHRoZSByZXN1bHRpbmcgaW5kZXggaXMgZ3JlYXRlciBvciBlcXVhbAorICAgICAqIHRvIGdldEVuZEluZGV4KCksIHRoZSBjdXJyZW50IGluZGV4IGlzIHJlc2V0IHRvIGdldEVuZEluZGV4KCkgYW5kCisgICAgICogYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgbmV3IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIG5ldworICAgICAqIHBvc2l0aW9uIGlzIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIubmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgaW5kZXggYnkgb25lIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBhdCB0aGUgbmV3IGluZGV4LiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBnZXRCZWdpbkluZGV4KCksIHRoZSBpbmRleAorICAgICAqIHJlbWFpbnMgYXQgZ2V0QmVnaW5JbmRleCgpIGFuZCBhIHZhbHVlIG9mIERPTkUgaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBuZXcgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uIGlzIGVxdWFsIHRvIGdldEJlZ2luSW5kZXgoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5wcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIHRleHQgYW5kIHJldHVybnMgdGhhdAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4gIFZhbGlkIHZhbHVlcyByYW5nZSBmcm9tCisgICAgICogZ2V0QmVnaW5JbmRleCgpIHRvIGdldEVuZEluZGV4KCkuICBBbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaXMgdGhyb3duCisgICAgICogaWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBzdXBwbGllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaXMgZXF1YWwgdG8gZ2V0RW5kSW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwb3NpdGlvbikgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLnNldEluZGV4KHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdGFydCBpbmRleCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgdGV4dCBiZWdpbnMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmdldEJlZ2luSW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBlbmQgaW5kZXggb2YgdGhlIHRleHQuICBUaGlzIGluZGV4IGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5nZXRFbmRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBpbmRleC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIGFsbCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UnVuU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBmU3R5bGVDYWNoZS5nZXRSdW5TdGFydChmQ2hhckl0ZXIuZ2V0SW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5TdGFydChPYmplY3QgYXR0cmlidXRlKSB7CisKKyAgICAgICAgcmV0dXJuIGdldFJ1blN0YXJ0KGF0dHJpYnV0ZSwgQVRUUl9NQVRDSEVSKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KEF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKworICAgICAgICByZXR1cm4gZ2V0UnVuU3RhcnQoYXR0cmlidXRlLCBBVFRSX01BVENIRVIpOworICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KFNldCBhdHRyaWJ1dGVzKSB7CisKKyAgICAgICAgcmV0dXJuIGdldFJ1blN0YXJ0KGF0dHJpYnV0ZXMsIFNFVF9NQVRDSEVSKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0UnVuU3RhcnQoT2JqZWN0IHF1ZXJ5LCBNYXRjaGVyIG1hdGNoZXIpIHsKKworICAgICAgICBpbnQgcnVuU3RhcnQgPSBnZXRSdW5TdGFydCgpOworICAgICAgICBpbnQgcmFuZ2VTdGFydCA9IGdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgTWFwIGluaXRpYWxTdHlsZSA9IGdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChydW5TdGFydCA+IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQtMSk7CisgICAgICAgICAgICBpZiAoIW1hdGNoZXIubWF0Y2hlcyhpbml0aWFsU3R5bGUsIHN0eWxlLCBxdWVyeSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVuU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydW5TdGFydCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlU3RhcnQocnVuU3RhcnQtMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJhbmdlU3RhcnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gYWxsIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdCgpIHsKKyAgICAgICAgcmV0dXJuIGZTdHlsZUNhY2hlLmdldFJ1bkxpbWl0KGZDaGFySXRlci5nZXRJbmRleCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdChPYmplY3QgYXR0cmlidXRlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0UnVuTGltaXQoYXR0cmlidXRlLCBBVFRSX01BVENIRVIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KEF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBnZXRSdW5MaW1pdChhdHRyaWJ1dGUsIEFUVFJfTUFUQ0hFUik7CisgICAgfQorLy9KREsxMklNUE9SVFMqLworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KFNldCBhdHRyaWJ1dGVzKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0UnVuTGltaXQoYXR0cmlidXRlcywgU0VUX01BVENIRVIpOworICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKworICAgIHByaXZhdGUgaW50IGdldFJ1bkxpbWl0KE9iamVjdCBxdWVyeSwgTWF0Y2hlciBtYXRjaGVyKSB7CisKKyAgICAgICAgaW50IHJ1bkxpbWl0ID0gZ2V0UnVuTGltaXQoKTsKKyAgICAgICAgaW50IHJhbmdlTGltaXQgPSBnZXRFbmRJbmRleCgpOworICAgICAgICBNYXAgaW5pdGlhbFN0eWxlID0gZ2V0QXR0cmlidXRlcygpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHJ1bkxpbWl0IDwgcmFuZ2VMaW1pdCkgeworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5MaW1pdCk7CisgICAgICAgICAgICBpZiAoIW1hdGNoZXIubWF0Y2hlcyhpbml0aWFsU3R5bGUsIHN0eWxlLCBxdWVyeSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVuTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydW5MaW1pdCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuTGltaXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUxpbWl0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbWFwIHdpdGggdGhlIGF0dHJpYnV0ZXMgZGVmaW5lZCBvbiB0aGUgY3VycmVudAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldEF0dHJpYnV0ZXMoKSB7CisgICAgICAgIHJldHVybiBmU3R5bGVDYWNoZS5nZXRTdHlsZShmQ2hhckl0ZXIuZ2V0SW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGF0dHJpYnV0ZSBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqIFJldHVybnMgbnVsbCBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkLgorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgdGhlIGtleSBvZiB0aGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEF0dHJpYnV0ZShPYmplY3QgYXR0cmlidXRlKSB7CisgICAgICAgIHJldHVybiBnZXRBdHRyaWJ1dGVzKCkuZ2V0KGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGF0dHJpYnV0ZSBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqIFJldHVybnMgbnVsbCBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkLgorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgdGhlIGtleSBvZiB0aGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEF0dHJpYnV0ZShBdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisgICAgICAgIHJldHVybiBnZXRBdHRyaWJ1dGVzKCkuZ2V0KGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5cyBvZiBhbGwgYXR0cmlidXRlcyBkZWZpbmVkIG9uIHRoZQorICAgICAqIGl0ZXJhdG9yJ3MgdGV4dCByYW5nZS4gVGhlIHNldCBpcyBlbXB0eSBpZiBubworICAgICAqIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQuCisgICAgICovCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHVibGljIFNldCBnZXRBbGxBdHRyaWJ1dGVLZXlzKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkltcGxlbWVudCB0aGlzIG1ldGhvZCEiKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisKKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IE1UZXh0SXRlcmF0b3IoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QmVnaW5JbmRleCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RW5kSW5kZXgoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9QYXJhZ3JhcGhSZW5kZXJlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9QYXJhZ3JhcGhSZW5kZXJlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyYjgwMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1BhcmFncmFwaFJlbmRlcmVyLmphdmEKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGphdmEuYXd0LmZvbnQuTGluZUJyZWFrTWVhc3VyZXI7CisvL0pESzEySU1QT1JUUyovCisKKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRDsKK0pESzExSU1QT1JUUyovCisKKy8qKgorICogUGFyYWdyYXBoUmVuZGVyZXIgaXMgYSBmYWN0b3J5IGZvciBMYXlvdXRJbmZvIG9iamVjdHMuCisgKi8KK2Fic3RyYWN0IGNsYXNzIFBhcmFncmFwaFJlbmRlcmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLy8gSWYgcmVuZGVyZXJzIGNhbiBldmVyIHRyYXZlbCB3aXRoIHRoZWlyIHN0eWxlcywgdGhlbiB0aGlzIGF0dHJpYnV0ZSB3aWxsIGRlbm90ZSBhCisgICAgLy8gcmVuZGVyZXIuICBGb3Igbm93LCByZW5kZXJlcnMgYXJlIG5vdCBhZGRlZCBhcyBzdHlsZXMgc28gdGhpcyBpc24ndCBuZWVkZWQuCisgICAgLy9zdGF0aWMgZmluYWwgVGV4dEF0dHJpYnV0ZSBQQVJBR1JBUEhfUkVOREVSRVIgPSBuZXcgVGV4dEF0dHJpYnV0ZSgiUGFyYWdyYXBoX1JlbmRlcmVyIikge307CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgcmVuZGVyZXIgdG8gdXNlIGluZm9ybWF0aW9uIGZyb20gdGhpcyBzdHlsZS4gU2luY2UgcmVuZGVyZXJzIG1heSBiZSBzaGFyZWQsIHlvdSBzaG91bGQKKyAgICAgKiBtYWtlIHN1cmUgdGhlIHJlbmRlcmVyIGlzIGluaXRpYWxpemVkIGZvciB0aGUgc3R5bGUgeW91IHdpc2ggdG8gcmVuZGVyIGJlZm9yZSB5b3UgdXNlIGl0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluaXRSZW5kZXJlcihBdHRyaWJ1dGVNYXAgcFN0eWxlKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgTGF5b3V0SW5mbyBmb3IgdGhlIHBhcmFncmFwaCByZXByZXNlbnRlZCBieQorICAgICAqIG1lYXN1cmVyLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IGNvbnRhaW5pbmcgdGhlIHBhcmFncmFwaAorICAgICAqIEBwYXJhbSBsYXlvdXRUb1JldXNlIGNsaWVudHMgY2FuIHBhc3MgaW4gYSBMYXlvdXRJbmZvCisgICAgICogd2hpY2ggdGhlIFBhcmFncmFwaFJlbmRlcmVyIG1heSBjaG9vc2UgdG8gcmV1c2UKKyAgICAgKiBhbmQgcmV0dXJuLiAgSWYgbnVsbCwgYSBuZXcgTGF5b3V0SW5mbyB3aWxsIGJlCisgICAgICogY3JlYXRlZCBhbmQgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIG1lYXN1cmVyIHRoZSBMaW5lQnJlYWtNZWFzdXJlciBmb3IgdGhpcyBwYXJhZ3JhcGguCisgICAgICogIEN1cnJlbnQgcG9zaXRpb24gc2hvdWxkIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb24gdGhlIGxpbmUuCisgICAgICogIElmIG51bGwsIGEgMC1sZW5ndGggbGluZSBpcyBnZW5lcmF0ZWQuICBJZiBtZWFzdXJlciBpcyBudWxsCisgICAgICogIHRoZW4gcGFyYWdyYXBoU3RhcnQgYW5kIHBhcmFncmFwaExpbWl0IHNob3VsZCBiZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gZnJjIHRoZSBGb250UmVuZGVyQ29udGV4dCB1c2VkIGZvciBtZWFzdXJlcm1lbnQKKyAgICAgKiBAcGFyYW0gcGFyYWdyYXBoU3RhcnQgdGhlIGluZGV4IGluIHRoZSB0ZXh0IHdoZXJlIHRoZQorICAgICAqIGN1cnJlbnQgcGFyYWdyYXBoIGJlZ2lucworICAgICAqIEBwYXJhbSBwYXJhZ3JhcGhMaW1pdCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIGFmdGVyIHRoZSBjdXJyZW50IHBhcmFncmFwaAorICAgICAqIEBwYXJhbSB0b3RhbEZvcm1hdFdpZHRoIHRoZSB3aWR0aCBpbiB3aGljaCB0aGUgbGluZSBzaG91bGQgZml0CisgICAgICogQHBhcmFtIGxpbmVCb3VuZCB3aGVyZSByaWdodC1hbGlnbmVkIGxpbmVzIGFyZSBhbGlnbmVkCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IExheW91dEluZm8gbGF5b3V0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0SW5mbyBsYXlvdXRUb1JldXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlckNvbnRleHQgZnJjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwYXJhZ3JhcGhMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRvdGFsRm9ybWF0V2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1Rlc3RNVGV4dEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1Rlc3RNVGV4dEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFmNjc2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvVGVzdE1UZXh0SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworCisvKioKKyAqIFRlc3QgZm9yIE1UZXh0SXRlcmF0b3IuCisgKi8KK2NsYXNzIFRlc3RNVGV4dEl0ZXJhdG9yIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udFJlc29sdmVyIEZPTlRfTUFQUEVSOworICAgIHN0YXRpYyB7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBhdHRycyA9IFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKS5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIEZPTlRfTUFQUEVSID0gbmV3IEZvbnRSZXNvbHZlcihhdHRycyk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGNvbXBhcmVJdGVyVG9UZXh0KE1UZXh0SXRlcmF0b3IgaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlRleHQ6ICIgKyB0ZXh0KTsKKyAgICAgICAgZmluYWwgaW50IGJlZ2luSW5kZXggPSBpdGVyLmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgZmluYWwgaW50IGVuZEluZGV4ID0gaXRlci5nZXRFbmRJbmRleCgpOworCisgICAgICAgIGNoYXIgY2ggPSBpdGVyLnNldEluZGV4KGJlZ2luSW5kZXgpOworCisgICAgICAgIGZvciAoaW50IGk9YmVnaW5JbmRleDsgaSA8IGVuZEluZGV4OyBpKyspIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludChjaCsgIiAiKTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB0ZXh0LmF0KGkpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDaGFyYWN0ZXJzIGFyZSBub3QgdGhlIHNhbWUuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCA9IGl0ZXIubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoICE9IE1UZXh0SXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJdGVyYXRvciBpcyBub3QgZG9uZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9ZW5kSW5kZXgtMTsgaSA+PSBiZWdpbkluZGV4OyBpLS0pIHsKKyAgICAgICAgICAgIGNoID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50KGNoKyAiICIpOworICAgICAgICAgICAgaWYgKGNoICE9IHRleHQuYXQoaSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhY2t3YXJkIGl0ZXJhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpdGVyLnNldEluZGV4KGJlZ2luSW5kZXgpOworCisgICAgICAgIGludCBydW5MaW1pdDsKKyAgICAgICAgZm9yIChpbnQgcnVuU3RhcnQgPSBiZWdpbkluZGV4OyBydW5TdGFydCA8IGVuZEluZGV4OyBydW5TdGFydCA9IHJ1bkxpbWl0KSB7CisKKyAgICAgICAgICAgIHJ1bkxpbWl0ID0gTWF0aC5taW4oZW5kSW5kZXgsIHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCkpOworCisgICAgICAgICAgICBpZiAoaXRlci5nZXRSdW5TdGFydCgpICE9IHJ1blN0YXJ0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGl0ZXIuZ2V0UnVuU3RhcnQoKSArICI7ICIgKyBydW5TdGFydCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJnZXRSdW5TdGFydCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpdGVyLmdldFJ1bkxpbWl0KCkgIT0gcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaXRlci5nZXRSdW5MaW1pdCgpICsgIjsgIiArIHJ1bkxpbWl0KTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImdldFJ1bkxpbWl0IGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpOworCisgICAgICAgICAgICB3aGlsZSAoaXRlci5nZXRJbmRleCgpIDwgcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcmVzb2x2ZWQgPSBGT05UX01BUFBFUi5hcHBseUZvbnQoc3R5bGUpOworICAgICAgICAgICAgICAgIGlmICghaXRlci5nZXRBdHRyaWJ1dGVzKCkuZXF1YWxzKHJlc29sdmVkKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGQgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCk7CisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiSGVsbG8gdGhlcmUhIiwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICB0ZXh0LnJlcGxhY2UoMiwgMiwgJ1YnLCBib2xkKTsKKworICAgICAgICBNVGV4dEl0ZXJhdG9yIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcih0ZXh0LCBGT05UX01BUFBFUiwgMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIGNvbXBhcmVJdGVyVG9UZXh0KGl0ZXIsIHRleHQpOworCisgICAgICAgIHRleHQucmVwbGFjZSg2LCA4LCBuZXcgU3R5bGVkVGV4dCgiQUxMX0JPTEQiLCBib2xkKSwgMCwgOCk7CisgICAgICAgIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcih0ZXh0LCBGT05UX01BUFBFUiwgMSwgdGV4dC5sZW5ndGgoKS0zKTsKKyAgICAgICAgY29tcGFyZUl0ZXJUb1RleHQoaXRlciwgdGV4dCk7CisKKyAgICAgICAgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKHRleHQsIEZPTlRfTUFQUEVSLCAwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgY29tcGFyZUl0ZXJUb1RleHQoaXRlciwgdGV4dCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisgICAgICAgIG5ldyBUZXN0TVRleHRJdGVyYXRvcigpLnRlc3QoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQQVNTRUQiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1RleHRPZmZzZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvVGV4dE9mZnNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxNGViMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1RleHRPZmZzZXQuamF2YQpAQCAtMCwwICsxLDE5NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJldmlzaW9uOiAwMyAxLjE2IHJpY2h0ZXh0L1RleHRPZmZzZXQuamF2YSwgcmljaHRleHQsIHJpY2h0ZXh0CisKKy8qCisgICAgOS81Lzk2IHtqYnJ9IGFkZGVkIHNldCBhbmQgZXF1YWxzIG1ldGhvZHMKKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0OworCisvKioKKyAqIEEgVGV4dE9mZnNldCBpbmRpY2F0ZXMgYm90aCBhbiBpbnRlZ2VyIG9mZnNldCBpbnRvIHRleHQgYW5kIGEgcGxhY2VtZW50CisgKiBvbiBvbmUgb2YgdGhlIGNoYXJhY3RlcnMgYWRqYWNlbnQgdG8gdGhlIG9mZnNldC4gIEFuIG9mZnNldCBpcyBhCisgKiBwb3NpdGlvbiBiZXR3ZWVuIHR3byBjaGFyYWN0ZXJzOyAgb2Zmc2V0IG4KKyAqIGlzIGJldHdlZW4gY2hhcmFjdGVyIG4tMSBhbmQgY2hhcmFjdGVyIG4uICBUaGUgcGxhY2VtZW50IHNwZWNpZmllcyB3aGV0aGVyCisgKiBpdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNoYXJhY3RlcgorICogYWZ0ZXIgdGhlIG9mZnNldAorICogKGNoYXJhY3RlciBuKSBvciB0aGUgY2hhcmFjdGVyIGJlZm9yZSB0aGUgb2Zmc2V0IChjaGFyYWN0ZXIgbi0xKS4KKyAqIDxwPgorICogS25vd2luZyB3aGljaCBjaGFyYWN0ZXIgdGhlIFRleHRPZmZzZXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlzIG5lY2Vzc2FyeQorICogd2hlbiBkaXNwbGF5aW5nIGNhcmV0cy4gIEluIGJpZGlyZWN0aW9uYWwgdGV4dCwgYSBzaW5nbGUgb2Zmc2V0IG1heQorICogaGF2ZSB0d28gZGlzdGluY3QgY2FyZXRzLiAgQWxzbywgaW4gbXVsdGlsaW5lIHRleHQsIGFuIG9mZnNldCBhdCBhIGxpbmUKKyAqIGJyZWFrIGhhcyBhIHBvc3NpYmxlIGNhcmV0IG9uIGVhY2ggbGluZS4KKyAqIDxwPgorICogTW9zdCBjbGllbnRzIHdpbGwgbm90IGJlIGludGVyZXN0ZWQgaW4gdGhlIHBsYWNlbWVudCwgYW5kIHdpbGwganVzdCB1c2UKKyAqIHRoZSBvZmZzZXQuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0T2Zmc2V0Cit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgVGV4dE9mZnNldCBpcyBhc3NvY2lhdGVkIHdpdGggY2hhcmFjdGVyCisgICAgICogPGNvZGU+Zk9mZnNldCAtIDE8L2NvZGU+IC0gaWUgdGhlIGNoYXJhY3RlciBiZWZvcmUgaXRzIG9mZnNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gQkVGT1JFX09GRlNFVCA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgVGV4dE9mZnNldCBpcyBhc3NvY2lhdGVkIHdpdGggY2hhcmFjdGVyCisgICAgICogPGNvZGU+Zk9mZnNldDwvY29kZT4gLSBpZSB0aGUgY2hhcmFjdGVyIGFmdGVyIGl0cyBvZmZzZXQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIEFGVEVSX09GRlNFVCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZk9mZnNldCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGxhY2VtZW50IC0gYmVmb3JlIG9yIGFmdGVyLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGZQbGFjZW1lbnQgPSBBRlRFUl9PRkZTRVQ7CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldAorICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQgdG8gcmVwcmVzZW50LiAgUGxhY2VtZW50IGlzIGltcGxpY2l0bHkgQUZURVJfT0ZGU0VULgorICAgICovCisgICAgcHVibGljIFRleHRPZmZzZXQoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPCAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT2Zmc2V0IGlzIG5lZ2F0aXZlIGluIFRleHRPZmZzZXQgY29uc3RydWN0b3IuIik7CisKKyAgICAgICAgZk9mZnNldCA9IG9mZnNldDsKKworICAgICAgICBmUGxhY2VtZW50ID0gQUZURVJfT0ZGU0VUOworICAgIH0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0cyBhIG5ldyBUZXh0T2Zmc2V0IGF0IDAsIHdpdGggcGxhY2VtZW50IEFGVEVSX09GRlNFVC4KKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KCkgeworICAgICAgICB0aGlzKDApOworICAgIH0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0cyBhIG5ldyBUZXh0T2Zmc2V0IHdpdGggdGhlIGdpdmVuIG9mZnNldCBhbmQgcGxhY2VtZW50LgorICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQKKyAgICAqIEBwYXJhbSBwbGFjZW1lbnQgaW5kaWNhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2FyZXQ7IG9uZSBvZiBCRUZPUkVfT0ZGU0VUIG9yIEFGVEVSX09GRlNFVAorICAgICovCisgICAgcHVibGljIFRleHRPZmZzZXQoaW50IG9mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRleHRPZmZzZXQgY29uc3RydWN0b3Igb2Zmc2V0IDwgMDogIiArIG9mZnNldCk7CisKKyAgICAgICAgZk9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgZlBsYWNlbWVudCA9IHBsYWNlbWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldCBmcm9tIGFuIGV4aXN0aW5nIG9uZS4KKyAgICAqIEBwYXJhbSByaHMgdGhlIFRleHRPZmZzZXQgdG8gY29weQorICAgICovCisgICAgcHVibGljIFRleHRPZmZzZXQoVGV4dE9mZnNldCByaHMpIHsKKworICAgICAgICB0aGlzKHJocy5mT2Zmc2V0LCByaHMuZlBsYWNlbWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBUZXh0T2Zmc2V0CisgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgaW50byB0aGUgdGV4dAorICAgICogQHBhcmFtIHBsYWNlbWVudCBpbmRpY2F0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjYXJldDsgb25lIG9mIEJFRk9SRV9PRkZTRVQgb3IgQUZURVJfT0ZGU0VUCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPZmZzZXQoaW50IG9mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRleHRPZmZzZXQgc2V0T2Zmc2V0IG9mZnNldCA8IDA6ICIgKyBvZmZzZXQpOworCisgICAgICAgIGZPZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIGZQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGlzIHRvIGFub3RoZXIgT2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGVxdWFscygoVGV4dE9mZnNldClvdGhlcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRydWUgaWYgb2Zmc2V0IGFuZCBwbGFjZW1lbnQgYXJlIHRoZSBzYW1lLgorICAgICoKKyAgICAqIEBwYXJhbSBvdGhlciBvZmZzZXQgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgYm90aCBvZmZzZXRzIGFyZSBlcXVhbAorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKFRleHRPZmZzZXQgb3RoZXIpIHsKKworICAgICAgICByZXR1cm4gZk9mZnNldCA9PSBvdGhlci5mT2Zmc2V0ICYmIGZQbGFjZW1lbnQgPT0gb3RoZXIuZlBsYWNlbWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2hDb2RlIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIHJldHVybiBmUGxhY2VtZW50PT1BRlRFUl9PRkZTRVQ/IGZPZmZzZXQgOiAtZk9mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgb2Zmc2V0IGlzICdncmVhdGVyVGhhbicgb3RoZXIuICBJZiB0aGUgZk9mZnNldCBmaWVsZHMgYXJlIGVxdWFsLCB0aGUKKyAgICAqIHBsYWNlbWVudCBmaWVsZCBpcyBjb25zaWRlcmVkLCBhbmQgQUZURVJfT0ZGU0VUIGlzIGNvbnNpZGVyZWQgJ2dyZWF0ZXJUaGFuJyBCRUZPUkVfT0ZGU0VULgorICAgICoKKyAgICAqIEBwYXJhbSBvdGhlciB0aGUgb3RoZXIgb2Zmc2V0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvZmZzZXQgYXBwZWFycyBhZnRlciBvdGhlcgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ3JlYXRlclRoYW4oVGV4dE9mZnNldCBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBmT2Zmc2V0ID4gb3RoZXIuZk9mZnNldCB8fAorICAgICAgICAgICAgKGZPZmZzZXQgPT0gb3RoZXIuZk9mZnNldCAmJiBmUGxhY2VtZW50ID09IEFGVEVSX09GRlNFVCAmJiBvdGhlci5mUGxhY2VtZW50ID09IEJFRk9SRV9PRkZTRVQpOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBvZmZzZXQgaXMgJ2xlc3NUaGFuJyBvdGhlci4gIElmIHRoZSBmT2Zmc2V0IGZpZWxkcyBhcmUgZXF1YWwsIHRoZQorICAgICogcGxhY2VtZW50IGZpZWxkIGlzIGNvbnNpZGVyZWQsIGFuZCBCRUZPUkVfT0ZGU0VUIGlzIGNvbnNpZGVyZWQgJ2xlc3NUaGFuJyBBRlRFUl9PRkZTRVQuCisgICAgKgorICAgICogQHBhcmFtIG90aGVyIHRoZSBvdGhlciBvZmZzZXQKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIG9mZnNldCBhcHBlYXJzIGJlZm9yZSBvdGhlcgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbGVzc1RoYW4oVGV4dE9mZnNldCBvdGhlcikgeworCisgICAgICAgIHJldHVybiBmT2Zmc2V0IDwgb3RoZXIuZk9mZnNldCB8fAorICAgICAgICAgICAgKGZPZmZzZXQgPT0gb3RoZXIuZk9mZnNldCAmJiBmUGxhY2VtZW50ID09IEJFRk9SRV9PRkZTRVQgJiYgb3RoZXIuZlBsYWNlbWVudCA9PSBBRlRFUl9PRkZTRVQpOworICAgIH0KKworICAgIC8qKgorICAgICogQ29weSB0aGUgdmFsdWUgb2YgYW5vdGhlciBUZXh0T2Zmc2V0IGludG8gdGhpcworICAgICogQHBhcmFtIG90aGVyIHRoZSBUZXh0T2Zmc2V0IHRvIGNvcHkKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIGFzc2lnbihUZXh0T2Zmc2V0IG90aGVyKSB7CisgICAgICAgIGZPZmZzZXQgPSBvdGhlci5mT2Zmc2V0OworICAgICAgICBmUGxhY2VtZW50ID0gb3RoZXIuZlBsYWNlbWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisKKyAgICAgICAgcmV0dXJuICJbIiArIChmUGxhY2VtZW50ID8gImJlZm9yZSAiIDogImFmdGVyICIpICsgZk9mZnNldCArICJdIjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ZjE2YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisKKzx0aXRsZT5DOklDVTRKIC5sYW5nIFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPkNsYXNzZXMgdGhhdCBmb3JtYXQgdGV4dCBpbiBhIGJhY2tncm91bmQgdGhyZWFkIGFuZCByZW5kZXIgdGhlIGZvcm1hdHRlZCB0ZXh0IHRvIGEgZ3JhcGhpY3MuPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L0ZvbnRVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9Gb250VXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTA5OWMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9Gb250VXRpbHMuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0OworCitpbXBvcnQgamF2YS5hd3QuRm9udDsKKworcHVibGljIGZpbmFsIGNsYXNzIEZvbnRVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgRm9udCBnZXRGb250KGphdmEudXRpbC5NYXAgYXR0cmlidXRlcykgeworCisgICAgICAgIHJldHVybiBGb250LmdldEZvbnQoYXR0cmlidXRlcyk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvR3JhcGhpY3MyRENvbnZlcnNpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvR3JhcGhpY3MyRENvbnZlcnNpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDczOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9HcmFwaGljczJEQ29udmVyc2lvbi5qYXZhCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworaW1wb3J0IGphdmEuYXd0LlBhaW50OworCisvKioKKyAqIFRoaXMgY2xhc3MgYWxsb3dzIEpESyAxLjEgY29kZSB0byB1c2UgYSAiZmFrZSIgR3JhcGhpY3MyRAorICogZm9yIHNvdXJjZS1jb2RlIGNvbXBhdGliaWxpdHkgd2l0aCBKYXZhMiBjb2RlLiAgT24gSmF2YTIgaXQncworICogYSB0cml2aWFsIGNsYXNzLiAgVGhlIEpESyAxLjEgdmVyc2lvbiBvZiB0aGlzIGNsYXNzIGRvZXMgaW50ZXJlc3RpbmcKKyAqIHdvcmsuCisgKi8gCitwdWJsaWMgZmluYWwgY2xhc3MgR3JhcGhpY3MyRENvbnZlcnNpb24geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIEdyYXBoaWNzMkQgZ2V0R3JhcGhpY3MyRChHcmFwaGljcyBnKSB7CisgICAgICAgIHJldHVybiAoR3JhcGhpY3MyRCkgZzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIEdyYXBoaWNzIGdldEdyYXBoaWNzKEdyYXBoaWNzMkQgZykgeworICAgICAgICByZXR1cm4gZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXaWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBQYWludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE9iamVjdCBnZXRDb2xvclN0YXRlKEdyYXBoaWNzMkQgZykgeworCisgICAgICAgIHJldHVybiBnLmdldFBhaW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RhdGUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQYWludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVzdG9yZUNvbG9yU3RhdGUoR3JhcGhpY3MyRCBnLCBPYmplY3Qgc3RhdGUpIHsKKworICAgICAgICBnLnNldFBhaW50KChQYWludCkgc3RhdGUpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlS2V5LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlS2V5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjBlZmM3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVLZXkuamF2YQpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgY2Fubm9uaWNhbCBtYXBwaW5nIGJldHdlZW4gZmllbGRzIGluIFRleHRBdHRyaWJ1dGUKKyAqIGFuZCBpbnN0YW5jZXMgb2YgaXRzZWxmLiAgSXQgaXMgdXNlZCBieSBBdHRyaWJ1dGVNYXAgdG8gc2VyaWFsaXplCisgKiBhbmQgZGVzZXJpYWxpemUgVGV4dEF0dHJpYnV0ZSB0byBwcmVzZXJ2ZSB1bmlxdWVuZXNzIG9mIFRleHRBdHRyaWJ1dGUKKyAqIGluc3RhbmNlcyAoaWUgc28gdGhhdCBUZXh0QXR0cmlidXRlIGluc3RhbmNlcyByZW1haW4gc2luZ2xldG9ucyksCisgKiBhbmQgdG8gcHJvdmlkZSBjb21wYXRhYmlsaXR5IGJldHdlZW4gMS4xIGFuZCAxLjIgdmVyc2lvbnMgb2YKKyAqIFRleHRBdHRyaWJ1dGUuCisgKiA8cD4KKyAqIEV4YW1wbGUgdXNlIC0gaW5zdGVhZCBvZiBkb2luZyB0aGlzOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICBvdXQud3JpdGVPYmplY3QoYW5BdHRyaWJ1dGUpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogZG8gdGhpczoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgb3V0LndyaXRlT2JqZWN0KEF0dHJpYnV0ZUtleS5tYXBBdHRyaWJ1dGVUb0tleShhbkF0dHJpYnV0ZSkpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogU2ltaWxhcmx5LCBpbnN0ZWFkIG9mIHRoaXM6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIGFuQXR0cmlidXRlID0gaW4ucmVhZE9iamVjdCgpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogZG8gdGhpczoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgYW5BdHRyaWJ1dGUgPSBBdHRyaWJ1dGVLZXkubWFwS2V5VG9BdHRyaWJ1dGUoaW4ucmVhZE9iamVjdCgpKTsKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIDxwPgorICogSWYgYW5BdHRyaWJ1dGUgaXMgbm90IGEga25vd24gVGV4dEF0dHJpYnV0ZSwgdGhlbiA8Y29kZT5tYXBBdHRyaWJ1dGVUb0tleTwvY29kZT4KKyAqIHdpbGwganVzdCByZXR1cm4gaXRzIGFyZ3VtZW50LiAgU2ltaWxhcmx5LCA8Y29kZT5tYXBLZXlUb0F0dHJpYnV0ZTwvY29kZT4gd2lsbAorICogcmV0dXJuIGl0cyBhcmd1bWVudCBpZiB0aGUgYXJndW1lbnQgaXMgbm90IGEga25vd24gQXR0cmlidXRlS2V5LgorICovCisKKy8qcHVibGljKi8gZmluYWwgY2xhc3MgQXR0cmlidXRlS2V5IGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKKworLyoKKyAgICBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCB0d28gcGFyYWxsZWwgVmVjdG9ycyBhcmUKKyAgICBtYWludGFpbmVkLiAgVGV4dEF0dHJpYnV0ZShpKSBtYXBzIHRvIEF0dHJpYnV0ZUtleShpKS4KKyAgICBGb3IgY29tcGF0YWJpbGl0eSB3aXRoIGV4aXN0aW5nIGRhdGEsIHRoaXMgbWFwcGluZyBtdXN0CisgICAgYmUgbWFpbnRhaW5lZCBpbiB0aGUgZnV0dXJlISAgU28sIHdoZW4gbmV3IGF0dHJpYnV0ZXMKKyAgICBhcmUgYWRkZWQsIGFkZCB0aGVtIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCisqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMzc3MjM3MTI1MzI3NzEwNzI5NEw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBmZ1RleHRBdHRyaWJ1dGVzOworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGZnQXR0cmlidXRlS2V5czsKKworICAgIHN0YXRpYyB7CisgICAgICAgIGZnVGV4dEF0dHJpYnV0ZXMgPSBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GT05ULAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GQU1JTFksCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU0laRSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkJBQ0tHUk9VTkQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuQ0hBUl9SRVBMQUNFTUVOVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5CSURJX0VNQkVERElORywKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuSlVTVElGSUNBVElPTiwKKyAgICAgICAgfTsKKworICAgICAgICBmaW5hbCBpbnQgYXR0ckNvdW50ID0gZmdUZXh0QXR0cmlidXRlcy5sZW5ndGg7CisgICAgICAgIGZnQXR0cmlidXRlS2V5cyA9IG5ldyBPYmplY3RbYXR0ckNvdW50XTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBhdHRyQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgZmdBdHRyaWJ1dGVLZXlzW2ldID0gbmV3IEF0dHJpYnV0ZUtleShpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgVGV4dEF0dHJpYnV0ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBrZXkuCisgICAgICogSWYga2V5IGlzIGFuIGluc3RhbmNlIG9mIEF0dHJpYnV0ZUtleSBpdCB3aWxsIGJlIG1hcHBlZCB0bworICAgICAqIGEgVGV4dEF0dHJpYnV0ZS4gIE90aGVyd2lzZSwgdGhlIGtleSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gbWFwIHRvIGEgVGV4dEF0dHJpYnV0ZSBmaWVsZAorICAgICAqIEByZXR1cm4gdGhlIFRleHRBdHRyaWJ1dGUgZm9yIDxjb2RlPmtleTwvY29kZT4gaWYgPGNvZGU+a2V5PC9jb2RlPgorICAgICAqICAgIGlzIGFuIEF0dHJpYnV0ZUtleTsgb3RoZXJ3aXNlIDxjb2RlPmtleTwvY29kZT4gaXMgcmV0dXJuZWQKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBPYmplY3QgbWFwS2V5VG9BdHRyaWJ1dGUoT2JqZWN0IGtleSkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVLZXkgYUtleSA9IChBdHRyaWJ1dGVLZXkpIGtleTsKKyAgICAgICAgICAgIGlmIChhS2V5LmZJZCA8IGZnVGV4dEF0dHJpYnV0ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZnVGV4dEF0dHJpYnV0ZXNbYUtleS5mSWRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIElmIGF0dHJpYnV0ZSBpcyBhIGtub3duIFRleHRBdHRyaWJ1dGUsIHJldHVybiBhbiBBdHRyaWJ1dGVLZXkKKyAgICAgKiBmb3IgaXQuICBPdGhlcndpc2UgdGhlIG9iamVjdCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIHRoZSBhdHRyaWJ1dGUgdG8gbWFwIHRvIGFuIEF0dHJpYnV0ZUtleQorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlS2V5IGZvciA8Y29kZT5hdHRyaWJ1dGU8L2NvZGU+CisgICAgICogICAgIGlmIDxjb2RlPmF0dHJpYnV0ZTwvY29kZT4gaXMgYSBrbm93biBhdHRyaWJ1dGU7IG90aGVyd2lzZQorICAgICAqICAgICA8Y29kZT5hdHRyaWJ1dGU8L2NvZGU+IGlzIHJldHVybmVkCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgT2JqZWN0IG1hcEF0dHJpYnV0ZVRvS2V5KE9iamVjdCBhdHRyaWJ1dGUpIHsKKworICAgICAgICBmaW5hbCBpbnQgYXR0ckNvdW50ID0gZmdUZXh0QXR0cmlidXRlcy5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgYXR0ckNvdW50OyBpbmRleCArPSAxKSB7CisgICAgICAgICAgICBpZiAoZmdUZXh0QXR0cmlidXRlc1tpbmRleF0uZXF1YWxzKGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmdBdHRyaWJ1dGVLZXlzW2luZGV4XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZTsKKyAgICB9CisKKworICAgIHByaXZhdGUgaW50IGZJZDsKKworICAgIHByaXZhdGUgQXR0cmlidXRlS2V5KGludCBpZCkgeworCisgICAgICAgIGZJZCA9IGlkOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiAoKEF0dHJpYnV0ZUtleSlyaHMpLmZJZCA9PSBmSWQ7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJZDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZU1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlMjE5Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlTWFwLmphdmEKQEAgLTAsMCArMSw1MjcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlczsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCisKKy8qKgorICogQXR0cmlidXRlTWFwIGlzIGFuIGltbXV0YWJsZSBNYXAuICBBZGRpdGlvbmFsbHksIHRoZXJlIGFyZQorICogc2V2ZXJhbCBtZXRob2RzIGZvciBjb21tb24gb3BlcmF0aW9ucyAodW5pb24sCisgKiByZW1vdmUsIGludGVyc2VjdCk7ICB0aGVzZSBtZXRob2RzIHJldHVybiBuZXcgQXR0cmlidXRlTWFwCisgKiBpbnN0YW5jZXMuCisgKiA8cD4KKyAqIEFsdGhvdWdoIGFueSBub24tbnVsbCBPYmplY3QgY2FuIGJlIGEga2V5IG9yIHZhbHVlIGluIGFuCisgKiBBdHRyaWJ1dGVNYXAsIHR5cGljYWxseSB0aGUga2V5cyBhcmUgZmllbGRzIG9mIFRleHRBdHRyaWJ1dGUuCisgKiBAc2VlIFRleHRBdHRyaWJ1dGUKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEF0dHJpYnV0ZU1hcCBpbXBsZW1lbnRzIGphdmEudXRpbC5NYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLk1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOVF9WRVJTSU9OID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDk1MTA4MDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXJyU3RyaW5nID0gIlN0eWxlU2V0cyBhcmUgaW1tdXRhYmxlLiI7CisKKyAgICAvLyBUaGlzIGlzIHBhc3NlZCB0byB0aGUgSGFzaHRhYmxlIGNvbnN0cnVjdG9yIGFzIHRoZQorICAgIC8vIGxvYWQgZmFjdG9yIGFyZ3VtZW50LiAgSXQgaXMgY2hvc2VuIHRvIGF2b2lkIHJlc2l6aW5nCisgICAgLy8gdGhlIEhhc2h0YWJsZSB3aGVuZXZlciBwb3NzaWJsZS4gIEkgdGhpbmsgdGhhdCAxCisgICAgLy8gZG9lcyB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT0FEX0ZBQ1RPUiA9IDE7CisKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBzdHlsZVRhYmxlOworICAgIHByaXZhdGUgdHJhbnNpZW50IEF0dHJpYnV0ZVNldCBjYWNoZWRLZXlTZXQgPSBudWxsOworICAgIHByaXZhdGUgdHJhbnNpZW50IENvbGxlY3Rpb24gY2FjaGVkVmFsdWVDb2xsZWN0aW9uID0gbnVsbDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBTZXQgY2FjaGVkRW50cnlTZXQgPSBudWxsOworCisgICAgLyoqCisgICAgICogQW4gZW1wdHkgQXR0cmlidXRlTWFwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEVNUFRZX0FUVFJJQlVURV9NQVAgPSBuZXcgQXR0cmlidXRlTWFwKCk7CisKKy8vID09PT09PT09PT09PT09CisvLyBDb25zdHJ1Y3RvcnMKKy8vID09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcsIGVtcHR5IEF0dHJpYnV0ZU1hcC4gIEVNUFRZX1NUWUxFX1NFVCBjYW4gYmUgdXNlZAorICAgICAqIGluIHBsYWNlIG9mIGFuIEF0dHJpYnV0ZU1hcCBwcm9kdWNlZCBieSB0aGlzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAoKSB7CisKKyAgICAgICAgc3R5bGVUYWJsZSA9IG5ldyBIYXNodGFibGUoMSwgTE9BRF9GQUNUT1IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUgc2FtZSBrZXktdmFsdWUKKyAgICAgKiBlbnRyaWVzIGFzIHRoZSBnaXZlbiBNYXAuCisgICAgICogQHBhcmFtIG1hcCBhIE1hcCB3aG9zZSBrZXktdmFsdWUgZW50cmllcyB3aWxsCisgICAgICogICAgICBiZWNvbWUgdGhlIGVudHJpZXMgZm9yIHRoaXMgQXR0cmlidXRlTWFwLiA8Y29kZT5tYXA8L2NvZGU+CisgICAgICogICAgICBpcyBub3QgbW9kaWZpZWQsIGFuZCBtdXN0IG5vdCBjb250YWluIG51bGwga2V5cyBvciB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcChqYXZhLnV0aWwuTWFwIG1hcCkgeworCisgICAgICAgIHN0eWxlVGFibGUgPSBuZXcgSGFzaHRhYmxlKG1hcC5zaXplKCksIExPQURfRkFDVE9SKTsKKyAgICAgICAgc3R5bGVUYWJsZS5wdXRBbGwobWFwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gQXR0cmlidXRlTWFwIHdpdGggdGhlIHNhbWUga2V5LXZhbHVlCisgICAgICogZW50cmllcyBhcyB0aGUgZ2l2ZW4gSGFzaHRhYmxlLgorICAgICAqIEBwYXJhbSBoYXNodGFibGUgYSBIYXNodGFibGUgd2hvc2Uga2V5LXZhbHVlIGVudHJpZXMgd2lsbAorICAgICAqICAgICAgYmVjb21lIHRoZSBlbnRyaWVzIGZvciB0aGlzIEF0dHJpYnV0ZU1hcC4gPGNvZGU+dGFibGU8L2NvZGU+CisgICAgICogICAgICBpcyBub3QgbW9kaWZpZWQuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcChIYXNodGFibGUgaGFzaHRhYmxlKSB7CisKKyAgICAgICAgdGhpcygoamF2YS51dGlsLk1hcCkgaGFzaHRhYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gQXR0cmlidXRlTWFwIHdpdGggYSBzaW5nbGUgZW50cnkgb2YKKyAgICAgKiA8Y29kZT57YXR0cmlidXRlLCB2YWx1ZX08L2NvZGU+LgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSBpbiB0aGlzIEF0dHJpYnV0ZU1hcCdzIHNpbmdsZSBlbnRyeQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgaW4gdGhpcyBBdHRyaWJ1dGVNYXAncyBzaW5nbGUgZW50cnkKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwKE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgIHN0eWxlVGFibGUgPSBuZXcgSGFzaHRhYmxlKDEsIExPQURfRkFDVE9SKTsKKworICAgICAgICAvLyBoYXNodGFibGUgY2hlY2tzIHZhbHVlIGZvciBudWxsCisgICAgICAgIHN0eWxlVGFibGUucHV0KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8vIEZvciBpbnRlcm5hbCB1c2Ugb25seS4KKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcChIYXNodGFibGUgdGFibGUsIGJvb2xlYW4gY2xvbmUpIHsKKworICAgICAgICBpZiAoY2xvbmUpIHsKKyAgICAgICAgICAgIHN0eWxlVGFibGUgPSAoSGFzaHRhYmxlKSB0YWJsZS5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhpcy5zdHlsZVRhYmxlID0gdGFibGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZUludChzdHlsZVRhYmxlLnNpemUoKSk7CisgICAgICAgIEVudW1lcmF0aW9uIGUgPSBzdHlsZVRhYmxlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBvdXQud3JpdGVPYmplY3QoQXR0cmlidXRlS2V5Lm1hcEF0dHJpYnV0ZVRvS2V5KGtleSkpOworICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KHN0eWxlVGFibGUuZ2V0KGtleSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIGlmIChpbi5yZWFkSW50KCkgIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZUJ1ZmZlciIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNvdW50ID0gaW4ucmVhZEludCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBjb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQXR0cmlidXRlS2V5Lm1hcEtleVRvQXR0cmlidXRlKGluLnJlYWRPYmplY3QoKSk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBzdHlsZVRhYmxlLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworLy8gPT09PT09PT09PT09PT0KKy8vIE1hcCBpbnRlcmZhY2UKKy8vID09PT09PT09PT09PT09CisKKy8vIHF1ZXJpZXMKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBBdHRyaWJ1dGVNYXAuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS5zaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBBdHRyaWJ1dGVNYXAKKyAgICAgKiBpcyAwLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIEF0dHJpYnV0ZU1hcAorICAgICAqIGlzIDAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmlzRW1wdHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4ga2V5IGlzIGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIDxjb2RlPmtleTwvY29kZT4gaXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0tleShPYmplY3Qga2V5KSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUuY29udGFpbnNLZXkoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIDxjb2RlPnZhbHVlPC9jb2RlPiBpcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zVmFsdWUoT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUuY29udGFpbnNWYWx1ZSh2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleS4gIElmIHRoZQorICAgICAqIGtleSBpcyBub3QgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gbG9vayB1cAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCA8Y29kZT5rZXk8L2NvZGU+LCBvcgorICAgICAqICAgICBudWxsIGlmIDxjb2RlPmtleTwvY29kZT4gaXMgbm90IGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmdldChrZXkpOworICAgIH0KKworLy8gbW9kaWZpZXJzIC0gYWxsIHRocm93IGV4Y2VwdGlvbnMKKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRBdHRyaWJ1dGUKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI3JlbW92ZUF0dHJpYnV0ZXMKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCByZW1vdmUoT2JqZWN0IGtleSkgeworCisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRBdHRyaWJ1dGVzCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEFsbChqYXZhLnV0aWwuTWFwIHQpIHsKKworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjRU1QVFlfQVRUUklCVVRFX01BUAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKy8vIHZpZXdzCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIFNldCBrZXlTZXQoKSB7CisKKyAgICAgICAgcmV0dXJuIGdldEtleVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyBldmVyeSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICogQHJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyBldmVyeSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0IGdldEtleVNldCgpIHsKKworICAgICAgICBBdHRyaWJ1dGVTZXQgcmVzdWx0ID0gY2FjaGVkS2V5U2V0OworCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gQXR0cmlidXRlU2V0LmNyZWF0ZUtleVNldChzdHlsZVRhYmxlKTsKKyAgICAgICAgICAgIGNhY2hlZEtleVNldCA9IHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ29sbGVjdGlvbiBjb250YWluaW5nIGV2ZXJ5IHZhbHVlIGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gYSBDb2xsZWN0aW9uIGNvbnRhaW5pbmcgZXZlcnkgdmFsdWUgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGVjdGlvbiB2YWx1ZXMoKSB7CisKKyAgICAgICAgQ29sbGVjdGlvbiByZXN1bHQgPSBjYWNoZWRWYWx1ZUNvbGxlY3Rpb247CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVDb2xsZWN0aW9uKHN0eWxlVGFibGUudmFsdWVzKCkpOworICAgICAgICAgICAgY2FjaGVkVmFsdWVDb2xsZWN0aW9uID0gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBTZXQgY29udGFpbmluZyBhbGwgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGVudHJ5U2V0KCkgeworCisgICAgICAgIFNldCByZXN1bHQgPSBjYWNoZWRFbnRyeVNldDsKKworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzdHlsZVRhYmxlLmVudHJ5U2V0KCkpOworICAgICAgICAgICAgY2FjaGVkRW50cnlTZXQgPSByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHJoc1N0eWxlU2V0ID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmhzU3R5bGVTZXQgPSAoQXR0cmlidXRlTWFwKSByaHM7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmVxdWFscyhyaHNTdHlsZVNldC5zdHlsZVRhYmxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS50b1N0cmluZygpOworICAgIH0KKworLy8gPT09PT09PT09PT09PT0KKy8vIE9wZXJhdGlvbnMKKy8vID09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2hpY2ggY29udGFpbnMgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcCwKKyAgICAgKiBhbG9uZyB3aXRoIGFuIGVudHJ5IGZvciA8YXR0cmlidXRlLCB2YWx1ZT4uICBJZiBhdHRyaWJ1dGUKKyAgICAgKiBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgaXRzIHZhbHVlIGJlY29tZXMgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhZGRBdHRyaWJ1dGUoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgLy8gdHJ5IHRvIG9wdGltaXplIGZvciBjYXNlIHdoZXJlIDxrZXksIHZhbHVlPiBpcyBhbHJlYWR5IHRoZXJlPworICAgICAgICBIYXNodGFibGUgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHN0eWxlVGFibGUuc2l6ZSgpICsgMSwgTE9BRF9GQUNUT1IpOworICAgICAgICBuZXdUYWJsZS5wdXRBbGwoc3R5bGVUYWJsZSk7CisgICAgICAgIG5ld1RhYmxlLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2hpY2ggY29udGFpbnMgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqIGFuZCBpbiByaHMuICBJZiBhbiBhdHRyaWJ1dGUgYXBwZWFycyBpbiBib3RoIFN0eWxlU2V0cyB0aGUKKyAgICAgKiB2YWx1ZSBmcm9tIHJocyBpcyB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgYWRkQXR0cmlidXRlcyhBdHRyaWJ1dGVNYXAgcmhzKSB7CisKKyAgICAgICAgaW50IHRoaXNTaXplID0gc2l6ZSgpOworCisgICAgICAgIGlmICh0aGlzU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmhzOworICAgICAgICB9CisKKyAgICAgICAgaW50IG90aGVyU2l6ZSA9IHJocy5zaXplKCk7CisKKyAgICAgICAgaWYgKG90aGVyU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUodGhpc1NpemUgKyBvdGhlclNpemUsIExPQURfRkFDVE9SKTsKKworICAgICAgICBuZXdUYWJsZS5wdXRBbGwoc3R5bGVUYWJsZSk7CisgICAgICAgIG5ld1RhYmxlLnB1dEFsbChyaHMpOworCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQXR0cmlidXRlTWFwIHdoaWNoIGNvbnRhaW5zIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKiBhbmQgaW4gcmhzLiAgSWYgYW4gYXR0cmlidXRlIGFwcGVhcnMgaW4gYm90aCBTdHlsZVNldHMgdGhlCisgICAgICogdmFsdWUgZnJvbSByaHMgaXMgdXNlZC4KKyAgICAgKiBUaGUgTWFwJ3Mga2V5cyBhbmQgdmFsdWVzIG11c3QgYmUgbm9uLW51bGwuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhZGRBdHRyaWJ1dGVzKGphdmEudXRpbC5NYXAgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyBpbnN0YW5jZW9mIEF0dHJpYnV0ZU1hcCkgeworICAgICAgICAgICAgcmV0dXJuIGFkZEF0dHJpYnV0ZXMoKEF0dHJpYnV0ZU1hcClyaHMpOworICAgICAgICB9CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzaXplKCkgKyByaHMuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5wdXRBbGwocmhzKTsKKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIGluIHRoaXMgQXR0cmlidXRlTWFwLCBidXQKKyAgICAgKiB3aXRob3V0IGF0dHJpYnV0ZSBhcyBhIGtleS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHJlbW92ZUF0dHJpYnV0ZShPYmplY3QgYXR0cmlidXRlKSB7CisKKyAgICAgICAgaWYgKCFjb250YWluc0tleShhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUoc3R5bGVUYWJsZS5zaXplKCksIExPQURfRkFDVE9SKTsKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5yZW1vdmUoYXR0cmlidXRlKTsKKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdob3NlCisgICAgICogYXR0cmlidXRlcyBhcmUgPGI+bm90PC9iPiBpbiB0aGUgU2V0LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVtb3ZlQXR0cmlidXRlcyhBdHRyaWJ1dGVTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIFNldCBzZXQgPSBhdHRyaWJ1dGVzOworICAgICAgICByZXR1cm4gcmVtb3ZlQXR0cmlidXRlcyhzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdob3NlCisgICAgICogYXR0cmlidXRlcyBhcmUgPGI+bm90PC9iPiBpbiB0aGUgU2V0LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVtb3ZlQXR0cmlidXRlcyhTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIC8vIENyZWF0ZSBuZXdUYWJsZSBvbiBkZW1hbmQ7ICBpZiBudWxsIGF0CisgICAgICAgIC8vIGVuZCBvZiBpdGVyYXRpb24gdGhlbiByZXR1cm4gdGhpcyBzZXQuCisgICAgICAgIC8vIFNob3VsZCB3ZSBpbnRlcnNlY3Qgc3R5bGVUYWJsZS5rZXlTZXQgd2l0aAorICAgICAgICAvLyBhdHRyaWJ1dGVzIGluc3RlYWQ/CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbnVsbDsKKyAgICAgICAgSXRlcmF0b3IgYXR0ckl0ZXIgPSBhdHRyaWJ1dGVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChhdHRySXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT0gbnVsbCAmJiBzdHlsZVRhYmxlLmNvbnRhaW5zS2V5KGN1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld1RhYmxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHN0eWxlVGFibGUuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisgICAgICAgICAgICAgICAgICAgIG5ld1RhYmxlLnB1dEFsbChzdHlsZVRhYmxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3VGFibGUucmVtb3ZlKGN1cnJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG5ld1RhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBrZXlzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdoaWNoCisgICAgICogYXJlIGFsc28gaW4gdGhlIFNldC4gIFRoZSBzZXQgbXVzdCBub3QgY29udGFpbiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgaW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIFNldCBzZXQgPSBhdHRyaWJ1dGVzOworICAgICAgICByZXR1cm4gaW50ZXJzZWN0V2l0aChzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBrZXlzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdoaWNoCisgICAgICogYXJlIGFsc28gaW4gdGhlIFNldC4gIFRoZSBzZXQgbXVzdCBub3QgY29udGFpbiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgaW50ZXJzZWN0V2l0aChTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIC8vIEZvciBub3csIGZvcmdldCBhYm91dCBvcHRpbWl6aW5nIGZvciB0aGUgY2FzZSB3aGVuCisgICAgICAgIC8vIHRoZSByZXR1cm4gdmFsdWUgaXMgZXF1aXZhbGVudCB0byB0aGlzIHNldC4KKworICAgICAgICBpbnQgYXR0clNpemUgPSBhdHRyaWJ1dGVzLnNpemUoKTsKKyAgICAgICAgaW50IHN0eWxlVGFibGVTaXplID0gc3R5bGVUYWJsZS5zaXplKCk7CisgICAgICAgIGludCBzaXplID0gTWF0aC5taW4oYXR0clNpemUsIHN0eWxlVGFibGVTaXplKTsKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzaXplLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgaWYgKGF0dHJTaXplIDwgc3R5bGVUYWJsZVNpemUpIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGF0dHJJdGVyID0gYXR0cmlidXRlcy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGF0dHJJdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gc3R5bGVUYWJsZS5nZXQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYWJsZS5wdXQoY3VycmVudCwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSXRlcmF0b3IgYXR0ckl0ZXIgPSBrZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGF0dHJJdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmNvbnRhaW5zKGN1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1RhYmxlLnB1dChjdXJyZW50LCBzdHlsZVRhYmxlLmdldChjdXJyZW50KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQdXQgYWxsIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgaW50byB0aGUgZ2l2ZW4gTWFwLgorICAgICAqIEBwYXJhbSByaHMgdGhlIE1hcCBpbnRvIHdoaWNoIGVudHJpZXMgYXJlIHBsYWNlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEFsbEludG8oamF2YS51dGlsLk1hcCByaHMpIHsKKworICAgICAgICByaHMucHV0QWxsKHRoaXMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVTZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZjgwNjBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZVNldC5qYXZhCkBAIC0wLDAgKzEsMzQzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKKworLyoqCisgKiBBbiBBdHRyaWJ1dGVTZXQgaXMgYW4gaW1tdXRhYmxlIGNvbGxlY3Rpb24gb2YgdW5pcXVlIE9iamVjdHMuCisgKiBJdCBoYXMgc2V2ZXJhbCBvcGVyYXRpb25zCisgKiB3aGljaCByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldCBpbnN0YW5jZXMuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBBdHRyaWJ1dGVTZXQgaW1wbGVtZW50cyBTZXQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIC8qKgorICAgICAqIEFuIEF0dHJpYnV0ZVNldCB3aXRoIG5vIG1lbWJlcnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVTZXQgRU1QVFlfU0VUID0gbmV3IEF0dHJpYnV0ZVNldCgpOworCisgICAgcHJpdmF0ZSBIYXNodGFibGUgZWxlbWVudHM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXJyU3RyaW5nID0gIkF0dHJpYnV0ZVNldCBpcyBpbW11dGFibGUuIjsKKworICAgIHByaXZhdGUgQXR0cmlidXRlU2V0KEhhc2h0YWJsZSBlbGVtZW50cykgeworCisgICAgICAgIHRoaXMuZWxlbWVudHMgPSBlbGVtZW50czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIG9ubHkuICBGb3IgQXR0cmlidXRlTWFwIHVzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgQXR0cmlidXRlU2V0IGNyZWF0ZUtleVNldChIYXNodGFibGUgaGFzaHRhYmxlKSB7CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld0VsZW1lbnRzID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgICAgIEVudW1lcmF0aW9uIGUgPSBoYXNodGFibGUua2V5cygpOworICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IG5leHQgPSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBuZXdFbGVtZW50cy5wdXQobmV4dCwgbmV4dCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldChuZXdFbGVtZW50cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3LCBlbXB0eSBBdHRyaWJ1dGVTZXQuICBUaGUgc2V0IGlzIHNlbWFudGljYWxseQorICAgICAqIGVxdWl2YWxlbnQgdG8gRU1QVFlfU0VULgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQoKSB7CisKKyAgICAgICAgZWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEF0dHJpYnV0ZVNldCB3aXRoIHRoZSBzaW5nbGUgZWxlbWVudCBlbGVtLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQoT2JqZWN0IGVsZW0pIHsKKworICAgICAgICBlbGVtZW50cyA9IG5ldyBIYXNodGFibGUoMSwgMSk7CisgICAgICAgIGVsZW1lbnRzLnB1dChlbGVtLCBlbGVtKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgdGhlIGl0ZW1zIGluIHRoZSBhcnJheSBlbGVtcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0KE9iamVjdFtdIGVsZW1zKSB7CisKKyAgICAgICAgZWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKGVsZW1zLmxlbmd0aCwgMSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBPYmplY3QgbmV4dCA9IGVsZW1zW2ldOworICAgICAgICAgICAgZWxlbWVudHMucHV0KG5leHQsIG5leHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCBpcyAwLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoaXMgc2V0IGlzIDAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeworCisgICAgICAgIHJldHVybiBlbGVtZW50cy5pc0VtcHR5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoaXMgc2V0CisgICAgICovCisgICAgcHVibGljIGludCBzaXplKCkgeworCisgICAgICAgIHJldHVybiBlbGVtZW50cy5zaXplKCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGVxdWFscygoQXR0cmlidXRlU2V0KSByaHMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQXR0cmlidXRlU2V0IHJocykgeworCisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmVxdWFscyhyaHMuZWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIHRoZSBnaXZlbiBPYmplY3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgPGNvZGU+bzwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhPYmplY3QgbykgeworCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IGVsZW1lbnRzLmdldChvKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgYWxsIGVsZW1lbnRzIGluIHRoZSBnaXZlbgorICAgICAqIENvbGxlY3Rpb24KKyAgICAgKiBAcGFyYW0gY29sbCB0aGUgY29sbGVjdGlvbiB0byBjb21wYXJlIHdpdGgKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgYWxsIGVsZW1lbnRzIGluIHRoZSBnaXZlbgorICAgICAqIENvbGxlY3Rpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0FsbChDb2xsZWN0aW9uIGNvbGwpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMua2V5U2V0KCkuY29udGFpbnNBbGwoY29sbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEVudW1lcmF0aW9uIG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIGFuIEVudW1lcmF0aW9uIG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldAorICAgICAqLworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBlbGVtZW50cygpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMua2V5cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBJdGVyYXRvciB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIGFuIEl0ZXJhdG9yIHdpdGggdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0LgorICAgICAqIFRoZSBJdGVyYXRvciBjYW5ub3QgYmUgdXNlZCB0byBtb2RpZnkgdGhpcyBBdHRyaWJ1dGVTZXQuCisgICAgICovCisgICAgcHVibGljIEl0ZXJhdG9yIGl0ZXJhdG9yKCkgeworCisgICAgICAgIHJldHVybiBuZXcgRW51bWVyYXRpb25JdGVyYXRvcihlbGVtZW50cy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGwgaW4gdGhlIGdpdmVuIGFycmF5IHdpdGggdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBzdG9yYWdlIGFuIGFycmF5IHRvIGZpbGwgd2l0aCB0aGlzIHNldCdzIGVsZW1lbnRzLgorICAgICAqIFRoZSBhcnJheSBjYW5ub3QgYmUgbnVsbC4KKyAgICAgKiBAcmV0dXJuIHRoZSA8dHQ+c3RvcmFnZTwvdHQ+IGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSB0b0FycmF5KE9iamVjdFtdIHN0b3JhZ2UpIHsKKworICAgICAgICBFbnVtZXJhdGlvbiBrZXlzID0gZWxlbWVudHMua2V5cygpOworICAgICAgICBpbnQgbj0wOworICAgICAgICB3aGlsZSAoa2V5cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgc3RvcmFnZVtuKytdID0ga2V5cy5uZXh0RWxlbWVudCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdG9yYWdlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0CisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdIHRvQXJyYXkoKSB7CisKKyAgICAgICAgcmV0dXJuIHRvQXJyYXkobmV3IE9iamVjdFtzaXplKCldKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI2FkZEVsZW1lbnQKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gYWRkKE9iamVjdCBvKXsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZW1vdmUoT2JqZWN0IG8pIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI3VuaW9uV2l0aAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBhZGRBbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNzdWJ0cmFjdAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZW1vdmVBbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNpbnRlcnNlY3RXaXRoCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHJldGFpbkFsbChDb2xsZWN0aW9uIGNvbGwpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI0VNUFRZX1NFVAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBjb250YWluaW5nIHRoZSBlbGVtZW50cyBvZiB0aGlzIHNldAorICAgICAqIGFuZCB0aGUgZ2l2ZW4gZWxlbWVudAorICAgICAqIEBwYXJhbSBlbGVtZW50IHRoZSBlbGVtZW50IHRvIGFkZAorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IGxpa2UgdGhpcyBvbmUsIHdpdGggPGNvZGU+ZWxlbWVudDwvY29kZT4KKyAgICAgKiBhZGRlZAorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgYWRkRWxlbWVudChPYmplY3QgZWxlbWVudCkgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IChIYXNodGFibGUpIGVsZW1lbnRzLmNsb25lKCk7CisgICAgICAgIG5ld0VsZW1lbnRzLnB1dChlbGVtZW50LCBlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgd2hpY2ggaXMgdGhlIHVuaW9uIG9mCisgICAgICogdGhpcyBzZXQgd2l0aCB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBzIHRoZSBzZXQgdG8gdW5pb24gd2l0aAorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldCBvcgorICAgICAqIGluIDxjb2RlPnM8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZVNldCB1bmlvbldpdGgoQXR0cmlidXRlU2V0IHMpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSAoSGFzaHRhYmxlKSBlbGVtZW50cy5jbG9uZSgpOworCisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IG5leHQgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIG5ld0VsZW1lbnRzLnB1dChuZXh0LCBuZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlU2V0KG5ld0VsZW1lbnRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IHdoaWNoIGlzIHRoZSBpbnRlcnNlY3Rpb24gb2YKKyAgICAgKiB0aGlzIHNldCB3aXRoIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHMgdGhlIHNldCB0byBpbnRlcnNlY3Qgd2l0aAorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldCB3aGljaAorICAgICAqIGFyZSBpbiA8Y29kZT5zPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgaW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVTZXQgcykgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICBJdGVyYXRvciBpdGVyID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBuZXh0ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoZWxlbWVudHMuZ2V0KG5leHQpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuZXdFbGVtZW50cy5wdXQobmV4dCwgbmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldChuZXdFbGVtZW50cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZVNldCB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldCB3aGljaAorICAgICAqIGFyZSBub3QgaW4gdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc2V0IG9mIGVsZW1lbnRzIHRvIGV4Y2x1ZGUKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgd2hpY2gKKyAgICAgKiBhcmUgbm90IGluIDxjb2RlPnM8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZVNldCBzdWJ0cmFjdChBdHRyaWJ1dGVTZXQgcykgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IChIYXNodGFibGUpIGVsZW1lbnRzLmNsb25lKCk7CisKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBuZXdFbGVtZW50cy5yZW1vdmUoaXRlci5uZXh0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIEVudW1lcmF0aW9uSXRlcmF0b3IgaW1wbGVtZW50cyBJdGVyYXRvciB7CisKKyAgICAgICAgcHJpdmF0ZSBFbnVtZXJhdGlvbiBlOworCisgICAgICAgIEVudW1lcmF0aW9uSXRlcmF0b3IoRW51bWVyYXRpb24gZSkgeworICAgICAgICAgICAgdGhpcy5lID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZS5oYXNNb3JlRWxlbWVudHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dCgpIHsKKyAgICAgICAgICAgIHJldHVybiBlLm5leHRFbGVtZW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZW1vdmUoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvTWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDgwNTJhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9NYXAuamF2YQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKKy8qKgorICogQSBNYXAgaXMgYSBjb2xsZWN0aW9uIG9mIGtleS12YWx1ZSBwYWlycyAob3IgZW50cmllcyksIHdoZXJlIGVhY2gKKyAqIGtleSBpbiB0aGUgTWFwIGlzIHVuaXF1ZS4gIFRoaXMgaW50ZXJmYWNlIGlzIGEgc3Vic2V0IG9mIHRoZQorICogSkRLIDEuMiBNYXAgaW50ZXJmYWNlLiAgSXQgaXMgdXNlZCBieSBKREsgMS4xLWNvbXBhdGlibGUgY29kZS4KKyAqLworcHVibGljIGludGVyZmFjZSBNYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoaXMgTWFwLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoaXMgTWFwCisgICAgICovCisgICAgcHVibGljIGludCBzaXplKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIE1hcCBoYXMgbm8gZW50cmllcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgaGFzIG5vIGVudHJpZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBnaXZlbiBrZXkuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIGtleS4gIElmIHRoZSBrZXkgZG9lcyBub3QgaGF2ZQorICAgICAqIGEgdmFsdWUgaW4gdGhpcyBNYXAsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIE1hcCBjb250YWlucyB0aGUgZ2l2ZW4ga2V5LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIE1hcCBjb250YWlucyB0aGUgZ2l2ZW4ga2V5CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNLZXkoT2JqZWN0IGtleSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL1RleHRBdHRyaWJ1dGUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9UZXh0QXR0cmlidXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE5YzdlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9UZXh0QXR0cmlidXRlLmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlczsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS50ZXh0LkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGU7CitpbXBvcnQgamF2YS5pby5JbnZhbGlkT2JqZWN0RXhjZXB0aW9uOworCisvKioKKyAqIFRoaXMgY2xhc3MgY29udGFpbnMgYSBudW1iZXIgb2Yga2V5cyAob3IgYXR0cmlidXRlcykgZm9yIHNwZWNpZnlpbmcgdGV4dCBzdHlsZXMKKyAqIGluIGEgTWFwLiAgQSB0ZXh0IHN0eWxlIGlzIGEgY29sbGVjdGlvbiBvZiBrZXktdmFsdWUgcGFpcnMsIHdoZXJlCisgKiB0aGUga2V5IHJlcHJlc2VudHMgYSBjZXJ0YWluIGNoYXJhY3RlcmlzdGljIChzdWNoIGFzIHNpemUpIGFuZAorICogdGhlIHZhbHVlIHRlbGxzIGhvdyB0aGF0IGNoYXJhY3RlcmlzdGljIGlzIHJlYWxpemVkIChpZSB3aGF0IHRoZQorICogc2l6ZSBpcykuCisgKiA8cD4KKyAqIEFsbCBvZiB0aGUgYXR0cmlidXRlcyBpbiBUZXh0QXR0cmlidXRlIHNwZWNpZnkgYSBjbGFzcyBmb3IgdGhlaXIgdmFsdWUuCisgKiBNYXAgZG9lcyBub3QgZW5mb3JjZSB0aGVzZSBjbGFzcyBzcGVjaWZpY2F0aW9uczsgIGhvd2V2ZXIsIHRleHQgcmVuZGVyaW5nIGNvZGUKKyAqIHdpbGwgdGVuZCB0byBmYWlsIHdpdGggYSBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgYSBrZXkncyB2YWx1ZQorICogaGFzIGFuIHVuZXhwZWN0ZWQgY2xhc3MuCisgKiA8cD4KKyAqIFNvbWUgYXR0cmlidXRlcyBhcmUgbWVhbmluZ2Z1bCBmb3IgZW50aXJlIHBhcmFncmFwaHMsIG5vdCBpbmRpdmlkdWFsCisgKiBjaGFyYWN0ZXJzLiAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZG9jdW1lbnRlZCBhcyBhcHBseWluZyB0byBwYXJhZ3JhcGhzLgorICogQWxsIG90aGVyIGF0dHJpYnV0ZXMgYXBwbHkgdG8gY2hhcmFjdGVycy4KKyAqIDxwPgorICogTWFueSBvZiB0aGUgZmllbGQgbmFtZXMgYW5kIHZhbHVlcyBpbiB0aGlzIGNsYXNzCisgKiBhcmUgdGFrZW4gZnJvbSB0aGUgSkRLIDEuMgorICogPGNvZGU+amF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlIGNsYXNzPC9jb2RlPi4KKyAqIEBzZWUgTWFwCisgKi8KK3B1YmxpYyBjbGFzcyBUZXh0QXR0cmlidXRlIGV4dGVuZHMgQXR0cmlidXRlIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBpbnN0YW5jZU1hcCA9IG5ldyBIYXNodGFibGUoOSk7CisKKyAgICBwcm90ZWN0ZWQgVGV4dEF0dHJpYnV0ZShTdHJpbmcgbmFtZSkgeworICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgaWYgKHRoaXMuZ2V0Q2xhc3MoKSA9PSBUZXh0QXR0cmlidXRlLmNsYXNzKSB7CisgICAgICAgICAgICBpbnN0YW5jZU1hcC5wdXQobmFtZSwgdGhpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IHJlYWRSZXNvbHZlKCkgdGhyb3dzIEludmFsaWRPYmplY3RFeGNlcHRpb24geworICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpICE9IFRleHRBdHRyaWJ1dGUuY2xhc3MpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uKCJzdWJjbGFzcyBkaWRuJ3QgY29ycmVjdGx5IGltcGxlbWVudCByZWFkUmVzb2x2ZSIpOworICAgICAgICB9CisKKyAgICAgICAgVGV4dEF0dHJpYnV0ZSBpbnN0YW5jZSA9IChUZXh0QXR0cmlidXRlKSBpbnN0YW5jZU1hcC5nZXQoZ2V0TmFtZSgpKTsKKyAgICAgICAgaWYgKGluc3RhbmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uKCJ1bmtub3duIGF0dHJpYnV0ZSBuYW1lIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBGT05UID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkZPTlQ7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBGQU1JTFkgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuRkFNSUxZOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgV0VJR0hUID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLldFSUdIVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZsb2F0IFdFSUdIVF9CT0xEID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgUE9TVFVSRSA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5QT1NUVVJFOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmxvYXQgUE9TVFVSRV9PQkxJUVVFID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFNJWkUgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU0laRTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFNVUEVSU0NSSVBUID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBTVVBFUlNDUklQVF9TVVBFUiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVF9TVVBFUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgU1VQRVJTQ1JJUFRfU1VCID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVQjsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIGFkb3JubWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBGT1JFR1JPVU5EID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgQkFDS0dST1VORCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5EOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgVU5ERVJMSU5FID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlVOREVSTElORTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgVU5ERVJMSU5FX09OID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlVOREVSTElORV9PTjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFNUUklLRVRIUk9VR0ggPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJvb2xlYW4gU1RSSUtFVEhST1VHSF9PTiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdIX09OOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgT0ZGU0VUID0gbmV3IFRleHRBdHRyaWJ1dGUoIm9mZnNldCIpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgQ0hBUl9SRVBMQUNFTUVOVCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5DSEFSX1JFUExBQ0VNRU5UOworLy8gUGFyYWdyYXBoIFN0eWxlcworCisvLyB2YWx1ZXMgYXJlIEZsb2F0czoKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBFWFRSQV9MSU5FX1NQQUNJTkcgPSBuZXcgVGV4dEF0dHJpYnV0ZSgiZXh0cmFfbGluZV9zcGFjaW5nIik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRVhUUkFfRklSU1RfTElORV9TUEFDSU5HID0gbmV3IFRleHRBdHRyaWJ1dGUoImV4dHJhX2ZpcnN0X2xpbmVfc3BhY2luZyIpOworCisgICAgLyoqCisgICAgICogQW1vdW50IGJleW9uZCBsZWFkaW5nIG1hcmdpbiB0byBpbmRlbnQgdGhlIGZpcnN0IGxpbmUgb2YgYSBwYXJhZ3JhcGguCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRklSU1RfTElORV9JTkRFTlQgPSBuZXcgVGV4dEF0dHJpYnV0ZSgiZmlyc3RfbGluZV9pbmRlbnQiKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IE1JTl9MSU5FX1NQQUNJTkcgPSBuZXcgVGV4dEF0dHJpYnV0ZSgibWluX2xpbmVfc3BhY2luZyIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IE1JTl9GSVJTVF9MSU5FX1NQQUNJTkcgPSBuZXcgVGV4dEF0dHJpYnV0ZSgibWluX2ZpcnN0X2xpbmVfc3BhY2luZyIpOworCisgICAgLyoqCisgICAgICogRmx1c2ggbGluZXMgbGVmdCwgcmlnaHQsIG9yIGNlbnRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBMSU5FX0ZMVVNIID0gbmV3IFRleHRBdHRyaWJ1dGUoImxpbmVfZmx1c2giKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBGTFVTSF9MRUFESU5HID0gbmV3IEludGVnZXIoMCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZMVVNIX0NFTlRFUiA9IG5ldyBJbnRlZ2VyKDEpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBGTFVTSF9UUkFJTElORyA9IG5ldyBJbnRlZ2VyKDIpOworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIDxjb2RlPkxJTkVfRkxVU0g8L2NvZGU+IGZvciBmdWxsIGp1c3RpZmljYXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZVTExZX0pVU1RJRklFRCA9IG5ldyBJbnRlZ2VyKDMpOworCisgICAgLyoqCisgICAgICogTGVhZGluZyBhbmQgdHJhaWxpbmcgbWFyZ2luIGluIHBhcmFncmFwaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBMRUFESU5HX01BUkdJTiA9IG5ldyBUZXh0QXR0cmlidXRlKCJsZWFkaW5nX21hcmdpbiIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFRSQUlMSU5HX01BUkdJTiA9IG5ldyBUZXh0QXR0cmlidXRlKCJ0cmFpbGluZ19tYXJnaW4iKTsKKworICAgIC8qKgorICAgICAqIFRhYiBydWxlci4gIFZhbHVlcyBhcmUgTVRhYlJ1bGVyIGluc3RhbmNlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBUQUJfUlVMRVIgPSBuZXcgVGV4dEF0dHJpYnV0ZSgidGFiX3J1bGVyIik7CisgICAgCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIGtleSBmb3IgdGhlIHJ1biBkaXJlY3Rpb24gb2YgdGhlIGxpbmUuCisgICAgICoKKyAgICAgKiA8UD48VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjEiPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+S2V5PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlJVTl9ESVJFQ1RJT048L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5WYWx1ZTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5Cb29sZWFuPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+Q29uc3RhbnRzPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlJVTl9ESVJFQ1RJT05fTFRSID0gdHJ1ZSwgUlVOX0RJUkVDVElPTl9SVEwgPSBmYWxzZQorICAgICAqIDwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlZmF1bHQ8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+VXNlIHRoZSBkZWZhdWx0IFVuaWNvZGUgYmFzZSBkaXJlY3Rpb24gZnJvbSB0aGUgQklESSAKKyAgICAgKiBhbGdvcml0aG0uPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVzY3JpcHRpb248L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+PFA+U3BlY2lmaWVzIHdoaWNoIGJhc2UgcnVuIGRpcmVjdGlvbiB0byB1c2Ugd2hlbiAKKyAgICAgKiBwb3NpdGlvbmluZyBtaXhlZCBkaXJlY3Rpb25hbCBydW5zIHdpdGhpbiBhIHBhcmFncmFwaC4gSWYgdGhpcyB2YWx1ZSBpcworICAgICAqIFJVTl9ESVJFQ1RJT05fREVGQVVMVCwgPGNvZGU+VGV4dExheW91dDwvY29kZT4gdXNlcyB0aGUgZGVmYXVsdCBVbmljb2RlCisgICAgICogYmFzZSBkaXJlY3Rpb24gZnJvbSB0aGUgQklESSBhbGdvcml0aG0uPC9QPgorICAgICAqIDxQPjxJPlRoaXMgYXR0cmlidXRlIHNob3VsZCBoYXZlIHRoZSBzYW1lIHZhbHVlIG92ZXIgdGhlIHdob2xlIAorICAgICAqIHBhcmFncmFwaC48L0k+PC9URD48L1RSPgorICAgICAqIDwvVEFCTEU+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgUlVOX0RJUkVDVElPTiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OOworCisgICAgLyoqCisgICAgICogTGVmdC10by1yaWdodCBydW4gZGlyZWN0aW9uLgorICAgICAqIEBzZWUgI1JVTl9ESVJFQ1RJT04KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJvb2xlYW4gUlVOX0RJUkVDVElPTl9MVFIgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9MVFI7CisKKyAgICAvKioKKyAgICAgKiBSaWdodC10by1sZWZ0IHJ1biBkaXJlY3Rpb24uCisgICAgICogQHNlZSAjUlVOX0RJUkVDVElPTgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQm9vbGVhbiBSVU5fRElSRUNUSU9OX1JUTCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTDsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBlbWJlZGRpbmcgbGV2ZWwgZm9yIG5lc3RlZCBiaWRpcmVjdGlvbmFsIHJ1bnMuCisgICAgICoKKyAgICAgKiA8UD48VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjEiPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+S2V5PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPkJJRElfRU1CRURESU5HPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+VmFsdWU8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+SW50ZWdlcjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkxpbWl0czwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5Qb3NpdGl2ZSB2YWx1ZXMgMSB0aHJvdWdoIDE1IGFyZSA8ST5lbWJlZGRpbmc8L0k+CisgICAgICogbGV2ZWxzLCBuZWdhdGl2ZSB2YWx1ZXM8QlI+IHRocm91Z2ggLTE1IGFyZSA8ST5vdmVycmlkZTwvST4gbGV2ZWxzCisgICAgICogPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVmYXVsdDwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5Vc2Ugc3RhbmRhcmQgQklESSB0byBjb21wdXRlIGxldmVscyBmcm9tIGZvcm1hdHRpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlc2NyaXB0aW9uPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlNwZWNpZmllcyB0aGUgYmlkaSBlbWJlZGRpbmcgbGV2ZWwgb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKiBXaGVuIHRoaXMgYXR0cmlidXRlIGlzIHByZXNlbnQgYW55d2hlcmUgaW4gYSBwYXJhZ3JhcGgsIHRoZW4gdGhlIAorICAgICAqIFVuaWNvZGUgY2hhcmFjdGVycyBSTE8sIExSTywgUkxFLCBMUkUsIFBERiBhcmUgZGlzcmVnYXJkZWQgaW4gdGhlIEJJREkgCisgICAgICogYW5hbHlzaXMgb2YgdGhhdCBwYXJhZ3JhcGguIAorICAgICAqIFNlZSB0aGUgVW5pY29kZSBTdGFuZGFyZCB2LiAyLjAsIHNlY3Rpb24gMy0xMS4KKyAgICAgKiA8L1REPjwvVFI+CisgICAgICogPC9UQUJMRT4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBCSURJX0VNQkVERElORyA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5CSURJX0VNQkVERElORzsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBqdXN0aWZpY2F0aW9uIG9mIGEgcGFyYWdyYXBoLgorICAgICAqCisgICAgICogPFA+PFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFNQQUNJTkc9IjAiIENFTExQQURESU5HPSIxIj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPktleTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5KVVNUSUZJQ0FUSU9OPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+VmFsdWU8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+RmxvYXQ8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5MaW1pdHM8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+MC4wIHRocm91Z2gxLjA8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5EZWZhdWx0PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPjEuMDwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlc2NyaXB0aW9uPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPjxQPlNwZWNpZmllcyB3aGljaCBmcmFjdGlvbiBvZiB0aGUgZXh0cmEgc3BhY2UgdG8gdXNlIAorICAgICAqIHdoZW4ganVzdGlmaWNhdGlvbiBpcyByZXF1ZXN0ZWQuIEZvciBleGFtcGxlLCBpZiB0aGUgbGluZSBpcyA1MCBwb2ludHMKKyAgICAgKiB3aWRlIGFuZCB0aGUgbWFyZ2lucyBhcmUgNzAgcG9pbnRzIGFwYXJ0LCBhIHZhbHVlIG9mIDAuNSBtZWFucyB0aGF0IHRoZQorICAgICAqIGxpbmUgaXMgcGFkZGVkIHRvIHJlYWNoIGEgd2lkdGggb2YgNjAgcG9pbnRzLjwvUD4KKyAgICAgKiA8UD48ST5UaGlzIGF0dHJpYnV0ZSBzaG91bGQgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBvdmVyIHRoZSB3aG9sZQorICAgICAqIHBhcmFncmFwaC48L0k+PC9URD48L1RSPgorICAgICAqIDwvVEFCTEU+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgSlVTVElGSUNBVElPTiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5KVVNUSUZJQ0FUSU9OOworCisgICAgLyoqCisgICAgICogSnVzdGlmeSB0aGUgbGluZSB0byB0aGUgZnVsbCByZXF1ZXN0ZWQgd2lkdGguCisgICAgICogQHNlZSAjSlVTVElGSUNBVElPTgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmxvYXQgSlVTVElGSUNBVElPTl9GVUxMID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkpVU1RJRklDQVRJT05fRlVMTDsKKworICAgIC8qKgorICAgICAqIERvIG5vdCBhbGxvdyB0aGUgbGluZSB0byBiZSBqdXN0aWZpZWQuCisgICAgICogQHNlZSAjSlVTVElGSUNBVElPTgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmxvYXQgSlVTVElGSUNBVElPTl9OT05FID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkpVU1RJRklDQVRJT05fTk9ORTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmY2E5MWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+PCEtLSAgQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKworPHRpdGxlPkM6SUNVNEogLmxhbmcgUGFja2FnZSBPdmVydmlldzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPHA+UmljaHRleHQgYXR0cmlidXRlIHN1cHBvcnQuICBJbmNsdWRlcyB0YWIsIGZpcnN0IGxpbmUgaW5kZW50LCBhbmQgbWFyZ2luIGF0dHJpYnV0ZXMuPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQVRleHRQYW5lbEltcGwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9BVGV4dFBhbmVsSW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyZGM4MWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQVRleHRQYW5lbEltcGwuamF2YQpAQCAtMCwwICsxLDc1MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5BZGp1c3RhYmxlOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCisvKioKKyAqIEltcGxlbWVudGF0aW9uIGNsYXNzIGZvciBUZXh0UGFuZWwgYW5kIEpUZXh0UGFuZWwuCisgKi8KK2ZpbmFsIGNsYXNzIEFUZXh0UGFuZWxJbXBsIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICAgICAgICAgIAorICAgIHByaXZhdGUgUnVuU3RyYXRlZ3kgZlJ1blN0cmF0ZWd5ID0gbnVsbDsKKyAgICBwcml2YXRlIFRleHRDb21wb25lbnQgZlRleHRDb21wb25lbnQgPSBudWxsOworICAgIHByaXZhdGUgVGV4dFNlbGVjdGlvbiBmU2VsZWN0aW9uID0gbnVsbDsKKyAgICBwcml2YXRlIFRleHRFZGl0QmVoYXZpb3IgZkVkaXRCZWhhdmlvciA9IG51bGw7CisgICAgcHJpdmF0ZSBNVGV4dCBmVGV4dCA9IG51bGw7CisKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmQnJvYWRjYXN0ZXI7CisgICAgcHJpdmF0ZSBLZXlSZW1hcCBmUmVtYXAgPSBLZXlSZW1hcC5nZXRJZGVudGl0eVJlbWFwKCk7CisKKyAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIHVnbHkuICBUZXh0UGFuZWwgc3VwcG9ydHMgaXRzIG1vZGlmaWVkCisgICAgLy8gZmxhZyB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlZGl0YWJsZSwgb3IgZXZlbiBzZWxlY3RhYmxlLgorICAgIC8vIFNvIGlmIHRoZXJlJ3Mgbm8gY29tbWFuZCBsb2cgdG8ga2VlcCB0cmFjayBvZiB0aGUgZmxhZworICAgIC8vIHN0YXRlIHRoZW4gaXRzIGRvbmUgcmlnaHQgaGVyZSBpbiBUZXh0UGFuZWwuICBJZiB0aGUKKyAgICAvLyBwYW5lbCBpcyBlZGl0YWJsZSB0aGlzIGZsYWcgaXMgaWdub3JlZC4KKyAgICBwcml2YXRlIGJvb2xlYW4gZk1vZGlmaWVkID0gZmFsc2U7CisKKyAgICBzdGF0aWMgZmluYWwgVGV4dFBhbmVsU2V0dGluZ3MgZmdEZWZhdWx0U2V0dGluZ3MgPSBuZXcgVGV4dFBhbmVsU2V0dGluZ3MoKTsKKworICAgIHN0YXRpYyBUZXh0UGFuZWxTZXR0aW5ncyBnZXREZWZhdWx0U2V0dGluZ3MoKSB7CisKKyAgICAgICAgcmV0dXJuIChUZXh0UGFuZWxTZXR0aW5ncykgZmdEZWZhdWx0U2V0dGluZ3MuY2xvbmUoKTsKKyAgICB9CisgICAgCisgICAgQVRleHRQYW5lbEltcGwoUnVuU3RyYXRlZ3kgcnVuU3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgY2xpZW50LAorICAgICAgICAgICAgICAgICAgIEFkanVzdGFibGUgaG9yelNiLAorICAgICAgICAgICAgICAgICAgIEFkanVzdGFibGUgdmVydFNiKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmUnVuU3RyYXRlZ3kgPSBydW5TdHJhdGVneTsKKyAgICAgICAgZkJyb2FkY2FzdGVyID0gbmV3IFBhbmVsRXZlbnRCcm9hZGNhc3RlcihjbGllbnQpOworCisgICAgICAgIFNjcm9sbGVyIHNjcm9sbGVyID0gbnVsbDsKKyAgICAgICAgaWYgKHNldHRpbmdzLmdldFNjcm9sbGFibGUoKSkgeworICAgICAgICAgICAgc2Nyb2xsZXIgPSBuZXcgU2Nyb2xsZXIoaG9yelNiLCB2ZXJ0U2IpOworICAgICAgICB9CisKKyAgICAgICAgU3R5bGVkVGV4dENsaXBib2FyZCB0ZXh0Q2xpcGJvYXJkID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZWRUZXh0Q2xpcGJvYXJkLmdldENsaXBib2FyZEZvcihjbGlwYm9hcmQpOworCisgICAgICAgIGZUZXh0ID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgaWYgKGluaXRpYWxUZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0LmFwcGVuZChpbml0aWFsVGV4dCk7CisgICAgICAgIH0KKworICAgICAgICBmVGV4dENvbXBvbmVudCA9IG5ldyBUZXh0Q29tcG9uZW50KGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmdldERlZmF1bHRWYWx1ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5nZXRXcmFwcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRDb21wb25lbnQuV0lORE9XX1dJRFRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRDb21wb25lbnQuREVGQVVMVF9JTlNFVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmdldFNjcm9sbGFibGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQnJvYWRjYXN0ZXIpOworCisgICAgICAgIGlmIChzY3JvbGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICBzY3JvbGxlci5zZXRDbGllbnQoZlRleHRDb21wb25lbnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBNYXkgaGF2ZSB0byB3YWl0IHVudGlsIGNvbXBvbmVudCBoYXMgaG9zdCB0byBkbyB0aGlzOgorICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0U2VsZWN0YWJsZSgpKSB7CisgICAgICAgICAgICBmU2VsZWN0aW9uID0gbmV3IFRleHRTZWxlY3Rpb24oZlRleHRDb21wb25lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZCcm9hZGNhc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUnVuU3RyYXRlZ3kpOworICAgICAgICAgICAgZlNlbGVjdGlvbi5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIGlmIChzZXR0aW5ncy5nZXRFZGl0YWJsZSgpKSB7CisgICAgICAgICAgICAgICAgZkVkaXRCZWhhdmlvciA9IG5ldyBUZXh0RWRpdEJlaGF2aW9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LCBmU2VsZWN0aW9uLCBmQnJvYWRjYXN0ZXIsIGZSZW1hcCk7CisgICAgICAgICAgICAgICAgZkVkaXRCZWhhdmlvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBGYWtlQ29tcG9uZW50IGdldFRleHRDb21wb25lbnQoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmQnJvYWRjYXN0ZXIuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZCcm9hZGNhc3Rlci5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogWW91IGtub3cgd2hhdCB0aGlzIGRvZXMuLi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcGluKGludCB2YWx1ZSwgaW50IG1pbiwgaW50IG1heCkgeworCisgICAgICAgIGlmIChtaW4gPiBtYXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2YWx1ZSA8IG1pbikgeworICAgICAgICAgICAgdmFsdWUgPSBtaW47CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAodmFsdWUgPiBtYXgpIHsKKyAgICAgICAgICAgIHZhbHVlID0gbWF4OworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBUZXh0IEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIEl0IGRvZXMgbm90IG1vZGlmeSBvciBhZG9wdAorICAgICAqIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG1ldGhvZCBzZXRzIHRoZSBzZWxlY3Rpb24gYW4gaW5zZXJ0aW9uIHBvaW50IGF0CisgICAgICogdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aGljaCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIHJlcGxhY2VSYW5nZShuZXdUZXh0LCAwLCBnZXRUZXh0TGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+aW5zZXJ0KG5ld1RleHQsIGdldFRleHRMZW5ndGgoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGRvY3VtZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIGludCBsZW5ndGggPSBnZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgIHJlcGxhY2VSYW5nZShuZXdUZXh0LCBsZW5ndGgsIGxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvCisgICAgICogPHR0PnJlcGxhY2VSYW5nZShuZXdUZXh0LCBwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gaW5zZXJ0IGludG8gdGhlIGRvY3VtZW50LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoZQorICAgICAqICAgICB0ZXh0IHdpbGwgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgcG9zaXRpb24pIHsKKworICAgICAgICByZXBsYWNlUmFuZ2UobmV3VGV4dCwgcG9zaXRpb24sIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBnaXZlbiByYW5nZSB3aXRoIDx0dD5uZXdUZXh0PC90dD4uICBBZnRlciB0aGlzCisgICAgICogb3BlcmF0aW9uIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZQorICAgICAqIGVuZCBvZiB0aGUgbmV3IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2l0aCB3aGljaCB0byByZXBsYWNlIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICogQHBhcmFtIGVuZCB0aGUgZW5kIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZVJhbmdlKE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldFRleHRMZW5ndGgoKTsKKworICAgICAgICBzdGFydCA9IHBpbihzdGFydCwgMCwgbGVuZ3RoKTsKKyAgICAgICAgZW5kID0gcGluKGVuZCwgc3RhcnQsIGxlbmd0aCk7CisKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworCisgICAgICAgICAgICAvLyBJZiB3ZSdyZSBzZWxlY3RhYmxlLCBidXQgbm90IGVkaXRhYmxlLCB3ZSdsbCB0ZW1wb3JhcmlseQorICAgICAgICAgICAgLy8gbWFrZSBvdXJzZWx2ZXMgZWRpdGFibGUgdG8gY2hhbmdlIHRoZSB0ZXh0LiAgQSBsaXR0bGUgZnVubnkKKyAgICAgICAgICAgIC8vIGJ1dCB0aGVyZSdzIGEgbG90IG9mIGNvZGUgZm9yIGdldHRpbmcgY2FyZXQgc3R1ZmYgcmlnaHQsCisgICAgICAgICAgICAvLyBhbmQgdGhpcyBpcyBub3QgYSBjb21tb24gb3BlcmF0aW9uIGFueXdheS4KKworICAgICAgICAgICAgVGV4dEVkaXRCZWhhdmlvciBiZWhhdmlvcjsKKworICAgICAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJlaGF2aW9yID0gbmV3IFRleHRFZGl0QmVoYXZpb3IoZlRleHRDb21wb25lbnQsIGZTZWxlY3Rpb24sIGZCcm9hZGNhc3RlciwgZlJlbWFwKTsKKyAgICAgICAgICAgICAgICBiZWhhdmlvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJlaGF2aW9yID0gZkVkaXRCZWhhdmlvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxlY3Rpb24gPSBuZXcgVGV4dE9mZnNldChzdGFydCArIG5ld1RleHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKTsKKworICAgICAgICAgICAgVGV4dFJlcGxhY2VtZW50IHJlcGxhY2VtZW50ID0gbmV3IFRleHRSZXBsYWNlbWVudChzdGFydCwgZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbik7CisKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5SRVBMQUNFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBiZWhhdmlvci5yZW1vdmVGcm9tT3duZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgTVRleHQgb2xkVGV4dCA9IGZUZXh0Q29tcG9uZW50LmdldE1vZGlmaWFibGVUZXh0KCk7CisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgICAgIG9sZFRleHQucmVwbGFjZUFsbChuZXdUZXh0KTsKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LnJlZm9ybWF0QW5kRHJhd1RleHQoMCwgbmV3VGV4dC5sZW5ndGgoKSwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRUZXh0KCkubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldFRleHQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldFRleHQoKTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBTZWxlY3Rpb24gQWNjZXNzCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpIHsKKworICAgICAgICBpZiAoZlNlbGVjdGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKworICAgICAgICBpZiAoZlNlbGVjdGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCBzZWxlY3Rpb25TdGFydCkgeworCisgICAgICAgIHNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byA8dHQ+c2VsZWN0KGdldFNlbGVjdGlvblN0YXJ0KCksIHNlbGVjdGlvbkVuZCk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSBuZXcgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uRW5kKGludCBzZWxlY3Rpb25FbmQpIHsKKworICAgICAgICBzZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlIGdpdmVuCisgICAgICogb2Zmc2V0LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPHR0PnNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBvZmZzZXQgb2YgdGhlIG5ldyBpbnNlcnRpb24gcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXJldFBvc2l0aW9uKGludCBwb3NpdGlvbikgeworCisgICAgICAgIHNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIHRoZSBnaXZlbiByYW5nZS4gIFRoZSByYW5nZSBzdGFydAorICAgICAqIGlzIHBpbm5lZCBiZXR3ZWVuIDAgYW5kIHRoZSB0ZXh0IGxlbmd0aDsgIHRoZSByYW5nZSBlbmQgaXMgcGlubmVkCisgICAgICogYmV0d2VlbiB0aGUgcmFuZ2Ugc3RhcnQgYW5kIHRoZSBlbmQgb2YgdGhlIHRleHQuICBUaGVzZSBzZW1hbnRpY3MKKyAgICAgKiBhcmUgaWRlbnRpY2FsIHRvIHRob3NlIG9mIDx0dD5qYXZhLmF3dC5UZXh0Q29tcG9uZW50PC90dD4uCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICogQHBhcmFtIHNlbGVjdGlvbkVuZCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldFRleHRMZW5ndGgoKTsKKworICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHBpbihzZWxlY3Rpb25TdGFydCwgMCwgbGVuZ3RoKTsKKyAgICAgICAgc2VsZWN0aW9uRW5kID0gcGluKHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIGxlbmd0aCk7CisKKyAgICAgICAgVGV4dFJhbmdlIHJhbmdlID0gbmV3IFRleHRSYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlNFTEVDVCwgcmFuZ2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbGVjdCBhbGwgb2YgdGhlIHRleHQgaW4gdGhlIGRvY3VtZW50LiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdEFsbCgpIHsKKworICAgICAgICBzZWxlY3QoMCwgZ2V0VGV4dExlbmd0aCgpKTsKKyAgICB9CisKKworLy89PT09PT09PT09PT0KKy8vIEZvcm1hdCBXaWR0aAorLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdG90YWwgZm9ybWF0IHdpZHRoLCBpbiBwaXhlbHMuICBUaGUgZm9ybWF0IHdpZHRoIGlzIHRoZQorICAgICAqIHdpZHRoIHRvIHdoaWNoIHRleHQgaXMgd3JhcHBlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXQgd2lkdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvcm1hdFdpZHRoKCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRGb3JtYXRXaWR0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGluIHRoZSB0ZXh0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuVW5kbygpIHsKKworICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkVkaXRCZWhhdmlvci5jYW5VbmRvKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblJlZG8oKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuY2FuUmVkbygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBjb250YWlucyBjb250ZW50cyB3aGljaCBjb3VsZCBiZQorICAgICAqIHRyYW5zZmVyZWQgaW50byB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNsaXBib2FyZE5vdEVtcHR5KCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRDbGlwYm9hcmQoKS5oYXNDb250ZW50cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gb2JqZWN0c0FyZUVxdWFsKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAKKyAgICAgICAgaWYgKGxocyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gcmhzID09IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGhzLmVxdWFscyhyaHMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0IGNvbnNpc3RlbnRDaGFyU3R5bGUoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgZGVmYXVsdFZhbHVlKSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJhbmdlLiIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJ1blN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIE9iamVjdCBpbml0aWFsVmFsdWUgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpLmdldChrZXkpOworCisgICAgICAgIGlmIChpbml0aWFsVmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgaW5pdGlhbFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChydW5TdGFydCA9IHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCk7CisgICAgICAgICAgICAgcnVuU3RhcnQgPCBsaW1pdDsKKyAgICAgICAgICAgICBydW5TdGFydCA9IHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCkpIHsKKworICAgICAgICAgICAgT2JqZWN0IG5leHRWYWx1ZSA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5TdGFydCkuZ2V0KGtleSk7CisKKyAgICAgICAgICAgIGlmIChuZXh0VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG5leHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFvYmplY3RzQXJlRXF1YWwoaW5pdGlhbFZhbHVlLCBuZXh0VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1UZXh0UGFuZWwuTVVMVElQTEVfVkFMVUVTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpIGFuZCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPm51bGwsIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSBkaWZmZXJlbnQgdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIDx0dD5kZWZhdWx0U3R5bGU8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGltcGxpY2l0IHZhbHVlIG9mIDx0dD5rZXk8L3R0PiBpbgorICAgICAqICAgICBzdHlsZSBydW5zIHdoZXJlIDx0dD5rZXk8L3R0PiBpcyBub3QgZGVmaW5lZAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpIHsKKworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2U7CisgICAgICAgIGlmIChmU2VsZWN0aW9uICE9IG51bGwpCisgICAgICAgICAgICBzZWxSYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2VsUmFuZ2UgPSBuZXcgVGV4dFJhbmdlKDAsIDApOworCisgICAgICAgIGlmIChzZWxSYW5nZS5zdGFydCA9PSBzZWxSYW5nZS5saW1pdCkgeworCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgY29tcFN0eWxlOworCisgICAgICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY29tcFN0eWxlID0gZkVkaXRCZWhhdmlvci5nZXRJbnNlcnRpb25Qb2ludFN0eWxlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb21wU3R5bGUgPSBUZXh0RWRpdEJlaGF2aW9yLnR5cGluZ1N0eWxlQXQoZlRleHQsIHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNvbXBTdHlsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZT09bnVsbD8gZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpIDogdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gY29uc2lzdGVudENoYXJTdHlsZShmVGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxSYW5nZS5zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbFJhbmdlLmxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBwYXJhZ3JhcGggc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkgYW5kIHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+bnVsbCwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIGRpZmZlcmVudCB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgPHR0PmRlZmF1bHRTdHlsZTwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBmb3IgY29uZmlndXJpbmcgc3R5bGUgbWVudXMuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHVzZWQgdG8gcmV0cmlldmUgdmFsdWVzIGZvciBjb21wYXJpc29uCisgICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSB0aGUgaW1wbGljaXQgdmFsdWUgb2YgPHR0PmtleTwvdHQ+IGluCisgICAgICogICAgIHN0eWxlIHJ1bnMgd2hlcmUgPHR0PmtleTwvdHQ+IGlzIG5vdCBkZWZpbmVkCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworCisgICAgICAgIFRleHRSYW5nZSBzZWxSYW5nZTsKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZWxSYW5nZSA9IG5ldyBUZXh0UmFuZ2UoMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgPT0gc2VsUmFuZ2UubGltaXQpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBwU3R5bGUgPSBmVGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHNlbFJhbmdlLnN0YXJ0KTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IHBTdHlsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZT09bnVsbD8gZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpIDogdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgcGFyYWdyYXBoU3RhcnQgPSBzZWxSYW5nZS5zdGFydDsKKyAgICAgICAgICAgIE9iamVjdCBkZWZhdWx0VmFsdWUgPSBnZXREZWZhdWx0VmFsdWVzKCkuZ2V0KGtleSk7CisgICAgICAgICAgICBPYmplY3QgaW5pdGlhbFZhbHVlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChwYXJhZ3JhcGhTdGFydCkuZ2V0KGtleSk7CisgICAgICAgICAgICBpZiAoaW5pdGlhbFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAocGFyYWdyYXBoU3RhcnQgPSBmVGV4dC5wYXJhZ3JhcGhMaW1pdChwYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0IDwgc2VsUmFuZ2UubGltaXQ7CisgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gZlRleHQucGFyYWdyYXBoTGltaXQocGFyYWdyYXBoU3RhcnQpKSB7CisKKyAgICAgICAgICAgICAgICBPYmplY3QgbmV4dFZhbHVlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChwYXJhZ3JhcGhTdGFydCkuZ2V0KGtleSk7CisgICAgICAgICAgICAgICAgaWYgKG5leHRWYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW9iamVjdHNBcmVFcXVhbChpbml0aWFsVmFsdWUsIG5leHRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1UZXh0UGFuZWwuTVVMVElQTEVfVkFMVUVTOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCBhbmQgcGxhY2UgaXQKKyAgICAgKiBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dAorICAgICAqIGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjdXQoKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5DVVQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBsYWNlIHRoZSBzZWxlY3RlZCB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMKKyAgICAgKiBubyBlZmZlY3QgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5KCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ09QWSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHQgd2l0aCB0aGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubworICAgICAqIHRleHQgaXMgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXN0ZSgpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlBBU1RFLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCwgd2l0aG91dCBhbHRlcmluZyB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlCisgICAgICogdGV4dCBpcyBub3QgZWRpdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5DTEVBUiwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5kbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHVuZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgdW5kbygpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlVORE8sIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byByZWRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlZG8oKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5SRURPLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLiAgQWxsCisgICAgICogcmVkb2FibGUgY29tbWFuZHMgYXJlIHJlbW92ZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBjb21tYW5kcyBrZXB0IGluIHRoZSBjb21tYW5kIGxvZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbW1hbmRMb2dTaXplKGludCBzaXplKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5TRVRfQ09NTUFORF9MT0dfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKHNpemUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYWxsIGNvbW1hbmRzIGZyb20gdGhlIGNvbW1hbmQgbG9nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyQ29tbWFuZExvZygpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkNMRUFSX0NPTU1BTkRfTE9HLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIGNoYXJhY3RlciBzdHlsZXMgb24gdGhlIHNlbGVjdGVkIGNoYXJhY3RlcnMuICBJZiBubyBjaGFyYWN0ZXJzCisgICAgICogYXJlIHNlbGVjdGVkLCBtb2RpZnkgdGhlIHR5cGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ0hBUkFDVEVSX1NUWUxFX01PRCwgbW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuUEFSQUdSQVBIX1NUWUxFX01PRCwgbW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgS2V5UmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMuCisgICAgICogQHJldHVybiB0aGUga2V5IHJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzCisgICAgICogQHNlZSAjc2V0S2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgS2V5UmVtYXAgZ2V0S2V5UmVtYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGZSZW1hcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2UgdGhlIGdpdmVuIEtleVJlbWFwIHRvIG1hcCBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMuCisgICAgICogT25seSBrZXkKKyAgICAgKiBldmVudHMgYXJlIGFmZmVjdGVkIGJ5IHRoZSByZW1hcDsgIG90aGVyIHRleHQgZW50ZXJpbmcgdGhlCisgICAgICogY29udHJvbCAodmlhIHRoZSBjbGlwYm9hcmQsIGZvciBleGFtcGxlKSBpcyBub3QgYWZmZWN0ZWQKKyAgICAgKiBieSB0aGUgS2V5UmVtYXAuCisgICAgICogPHA+CisgICAgICogRG8gbm90IHBhc3MgPHR0Pm51bGw8L3R0PiB0byB0aGlzIG1ldGhvZCB0byBsZWF2ZSBrZXkKKyAgICAgKiBldmVudHMgdW5tYXBwZWQuICBJbnN0ZWFkLCB1c2UgPHR0PktleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKTwvdHQ+CisgICAgICogQHBhcmFtIHJlbWFwIHRoZSBLZXlSZW1hcCB0byB1c2UgZm9yIG1hcHBpbmcga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgcGFyYW1ldGVyIGlzIG51bGwKKyAgICAgKiBAc2VlIEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBpZiAocmVtYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCJyZW1hcCBjYW4ndCBiZSBudWxsIik7CisgICAgICAgIH0KKworICAgICAgICBmUmVtYXAgPSByZW1hcDsKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZkVkaXRCZWhhdmlvci5zZXRLZXlSZW1hcChyZW1hcCk7CisgICAgICAgIH0KKworICAgICAgICBmQnJvYWRjYXN0ZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5LRVlSRU1BUF9DSEFOR0VEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqIEBzZWUgI3NldE1vZGlmaWVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkVkaXRCZWhhdmlvci5pc01vZGlmaWVkKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZk1vZGlmaWVkOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb2RpZmllZChib29sZWFuIG1vZGlmaWVkKSB7CisKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVkID0gZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVoYXZpb3IuU0VUX01PRElGSUVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQ/IEJvb2xlYW4uVFJVRSA6IEJvb2xlYW4uRkFMU0UpOworICAgICAgICBpZiAoIWhhbmRsZWQpIHsKKyAgICAgICAgICAgIGZNb2RpZmllZCA9IG1vZGlmaWVkOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgZm9yIHBlcmYtdGVzdGluZyBvbmx5IQorICAgICAqLworICAgIHZvaWQgaGFuZGxlS2V5RXZlbnQoamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQga2V5RXZlbnQpIHsKKyAgICAKKyAgICAgICAgQ29tcG9uZW50IGhvc3QgPSBmVGV4dENvbXBvbmVudC5nZXRIb3N0KCk7CisgICAgICAgIGlmIChob3N0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGhvc3QuZGlzcGF0Y2hFdmVudChrZXlFdmVudCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjM1NjIxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9BcmFiaWNUcmFuc2xpdGVyYXRpb24uamF2YQpAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qCitGb3IgYW55IGluY29taW5nIGNoYXJhY3RlciBDCitpZiB5b3UgY2FuIG1hcCBDIHVzaW5nIHRoZSBmb2xsb3dpbmcgRmFrZUFyYWJpY1RhYmxlLCByZXR1cm4KK0Zha2VBcmFiaWNUYWJsZShDKQorZWxzZSBpZiBDIGlzIGZyb20gQSB0aHJvdWdoIFosIHJldHVybiBGYWtlQXJhYmljVGFibGUobG93ZXJjYXNlKEMpKQorZWxzZSBqdXN0IHJldHVybiBDCisKKworRmFrZUFyYWJpY1RhYmxlIGlzIGRlZmluZWQgYnkgdGhlIGZvbGxvd2luZyBtYXBwaW5nCisKKzAgICAwNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMSAgIDA2NjE7QVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0FOOzsxOzE7MTtOOzs7OzsKKzIgICAwNjYyO0FSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtBTjs7MjsyOzI7Tjs7Ozs7CiszICAgMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7Cis0ICAgMDY2NDtBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0FOOzs0OzQ7NDtOOzs7OzsKKzUgICAwNjY1O0FSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7QU47OzU7NTs1O047Ozs7OworNiAgIDA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzcgICAwNjY3O0FSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0FOOzs3Ozc7NztOOzs7OzsKKzggICAwNjY4O0FSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0FOOzs4Ozg7ODtOOzs7OzsKKzkgICAwNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworCislICAgMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworLiAgIDA2NkI7QVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworLCAgIDA2MEM7QVJBQklDIENPTU1BO1BvOzA7Ujs7Ozs7Tjs7Ozs7CistICAgMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO1I7Ozs7O047Ozs7OworJyAgIDA2NTI7QVJBQklDIFNVS1VOO01uOzM0O1I7Ozs7O047Ozs7OworIiAgIDA2NTE7QVJBQklDIFNIQUREQTtNbjszMztSOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworOyAgIDA2MUI7QVJBQklDIFNFTUlDT0xPTjtQbzswO1I7Ozs7O047Ozs7OworPyAgIDA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtSOzs7OztOOzs7OzsKKworYSAgIDA2Mjc7QVJBQklDIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitBICAgMDYzOTtBUkFCSUMgTEVUVEVSIEFJTjtMbzswO1I7Ozs7O047Ozs7OworYiAgIDA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBOzs7OworYyAgIDA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtSOzs7OztOOzs7OzsKK2QgICAwNjJGO0FSQUJJQyBMRVRURVIgREFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitEICAgMDYzMDtBUkFCSUMgTEVUVEVSIFRIQUw7TG87MDtSOzs7OztOOzs7OzsKK0UgICAwNjRCO0FSQUJJQyBGQVRIQVRBTjtNbjsyNztSOzs7OztOOzs7OzsKK2UgICAwNjRFO0FSQUJJQyBGQVRIQTtNbjszMDtSOzs7OztOO0FSQUJJQyBGQVRIQUg7Ozs7CitmICAgMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKK2cgICAwNjNBO0FSQUJJQyBMRVRURVIgR0hBSU47TG87MDtSOzs7OztOOzs7OzsKK2ggICAwNjJEO0FSQUJJQyBMRVRURVIgSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQTs7OzsKK0ggICAwNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBOzs7OworSSAgIDA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O1I7Ozs7O047Ozs7OworaSAgIDA2NTA7QVJBQklDIEtBU1JBO01uOzMyO1I7Ozs7O047QVJBQklDIEtBU1JBSDs7OzsKK2ogICAwNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO1I7Ozs7O047Ozs7OworSyAgIDA2MkU7QVJBQklDIExFVFRFUiBLSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEtIQUE7Ozs7CitrICAgMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUY7Ozs7CitsICAgMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO1I7Ozs7O047Ozs7OworbSAgIDA2NDU7QVJBQklDIExFVFRFUiBNRUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CituICAgMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtSOzs7OztOOzs7OzsKK28gICAwNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtSOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7CitwICAgMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CitxICAgMDY0MjtBUkFCSUMgTEVUVEVSIFFBRjtMbzswO1I7Ozs7O047Ozs7OworciAgIDA2MzE7QVJBQklDIExFVFRFUiBSRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CitzICAgMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtSOzs7OztOOzs7OzsKK1MgICAwNjM0O0FSQUJJQyBMRVRURVIgU0hFRU47TG87MDtSOzs7OztOOzs7OzsKK3QgICAwNjJBO0FSQUJJQyBMRVRURVIgVEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQTs7OzsKK1QgICAwNjJCO0FSQUJJQyBMRVRURVIgVEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworVSAgIDA2NEM7QVJBQklDIERBTU1BVEFOO01uOzI4O1I7Ozs7O047Ozs7OwordSAgIDA2NEY7QVJBQklDIERBTU1BO01uOzMxO1I7Ozs7O047QVJBQklDIERBTU1BSDs7OzsKK3YgICAwNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OwordyAgIDA2NDg7QVJBQklDIExFVFRFUiBXQVc7TG87MDtSOzs7OztOOzs7OzsKK3ggICAwNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO1I7Ozs7O047Ozs7OworeSAgIDA2NEE7QVJBQklDIExFVFRFUiBZRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUE7Ozs7Cit6ICAgMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtSOzs7OztOOzs7OzsKK1ogICAwNjM4O0FSQUJJQyBMRVRURVIgWkFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERIQUg7Ozs7CisKKyovCisKKy8qKgorICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIEtleVJlbWFwIHRvIHByb2R1Y2UgdHJhbnNsaXRlcmF0ZWQgQXJhYmljCisgKiBjaGFyYWN0ZXJzIGZyb20gTGF0aW4tMSBjaGFyYWN0ZXJzLgorICovCisKK2ZpbmFsIGNsYXNzIEFyYWJpY1RyYW5zbGl0ZXJhdGlvbiBleHRlbmRzIEtleVJlbWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlICcwJzogcmV0dXJuICdcdTA2NjAnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTworICAgICAgICAgICAgY2FzZSAnMSc6IHJldHVybiAnXHUwNjYxJzsgLy8gQVJBQklDLUlORElDIERJR0lUIE9ORQorICAgICAgICAgICAgY2FzZSAnMic6IHJldHVybiAnXHUwNjYyJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFRXTworICAgICAgICAgICAgY2FzZSAnMyc6IHJldHVybiAnXHUwNjYzJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFRIUkVFCisgICAgICAgICAgICBjYXNlICc0JzogcmV0dXJuICdcdTA2NjQnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUgorICAgICAgICAgICAgY2FzZSAnNSc6IHJldHVybiAnXHUwNjY1JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEZJVkUKKyAgICAgICAgICAgIGNhc2UgJzYnOiByZXR1cm4gJ1x1MDY2Nic7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBTSVgKKyAgICAgICAgICAgIGNhc2UgJzcnOiByZXR1cm4gJ1x1MDY2Nyc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBTRVZFTgorICAgICAgICAgICAgY2FzZSAnOCc6IHJldHVybiAnXHUwNjY4JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEVJR0hUCisgICAgICAgICAgICBjYXNlICc5JzogcmV0dXJuICdcdTA2NjknOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgTklORQorCisgICAgICAgICAgICBjYXNlICclJzogcmV0dXJuICdcdTA2NkEnOyAvLyBBUkFCSUMgUEVSQ0VOVCBTSUdOCisgICAgICAgICAgICAvLyB0aGUgVHJhZGl0aW9uYWwgQXJhYmljIGZvbnQgZG9lcyBub3QgY29udGFpbiB0aGlzIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gY2FzZSAnLic6IHJldHVybiAnXHUwNjZCJzsgLy8gQVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SCisgICAgICAgICAgICBjYXNlICcsJzogcmV0dXJuICdcdTA2MEMnOyAvLyBBUkFCSUMgQ09NTUEKKyAgICAgICAgICAgIGNhc2UgJy0nOiByZXR1cm4gJ1x1MDY0MCc7IC8vIEFSQUJJQyBUQVRXRUVMCisgICAgICAgICAgICBjYXNlICdcJyc6IHJldHVybiAnXHUwNjUyJzsgLy8gQVJBQklDIFNVS1VOCisgICAgICAgICAgICBjYXNlICciJzogcmV0dXJuICdcdTA2NTEnOyAvLyBBUkFCSUMgU0hBRERBCisgICAgICAgICAgICBjYXNlICc7JzogcmV0dXJuICdcdTA2MUInOyAvLyBBUkFCSUMgU0VNSUNPTE9OCisgICAgICAgICAgICBjYXNlICc/JzogcmV0dXJuICdcdTA2MUYnOyAvLyBBUkFCSUMgUVVFU1RJT04gTUFSSworCisgICAgICAgICAgICBjYXNlICdhJzogcmV0dXJuICdcdTA2MjcnOyAvLyBBUkFCSUMgTEVUVEVSIEFMRUYKKyAgICAgICAgICAgIGNhc2UgJ0EnOiByZXR1cm4gJ1x1MDYzOSc7IC8vIEFSQUJJQyBMRVRURVIgQUlOCisgICAgICAgICAgICBjYXNlICdiJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAnQic6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ2MnOiByZXR1cm4gJ1x1MDYzNSc7IC8vIEFSQUJJQyBMRVRURVIgU0FECisgICAgICAgICAgICBjYXNlICdDJzogcmV0dXJuICdcdTA2MzUnOyAvLyBBUkFCSUMgTEVUVEVSIFNBRAorICAgICAgICAgICAgY2FzZSAnZCc6IHJldHVybiAnXHUwNjJGJzsgLy8gQVJBQklDIExFVFRFUiBEQUwKKyAgICAgICAgICAgIGNhc2UgJ0QnOiByZXR1cm4gJ1x1MDYzMCc7IC8vIEFSQUJJQyBMRVRURVIgVEhBTAorICAgICAgICAgICAgY2FzZSAnZSc6IHJldHVybiAnXHUwNjRFJzsgLy8gQVJBQklDIEZBVEhBCisgICAgICAgICAgICBjYXNlICdFJzogcmV0dXJuICdcdTA2NEInOyAvLyBBUkFCSUMgRkFUSEFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdGJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNjJEJzsgLy8gQVJBQklDIExFVFRFUiBIQUgKKyAgICAgICAgICAgIGNhc2UgJ0gnOiByZXR1cm4gJ1x1MDY0Nyc7IC8vIEFSQUJJQyBMRVRURVIgSEVICisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTA2NTAnOyAvLyBBUkFCSUMgS0FTUkEKKyAgICAgICAgICAgIGNhc2UgJ0knOiByZXR1cm4gJ1x1MDY0RCc7IC8vIEFSQUJJQyBLQVNSQVRBTgorICAgICAgICAgICAgY2FzZSAnaic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTA2MkMnOyAvLyBBUkFCSUMgTEVUVEVSIEpFRU0KKyAgICAgICAgICAgIGNhc2UgJ2snOiByZXR1cm4gJ1x1MDY0Myc7IC8vIEFSQUJJQyBMRVRURVIgS0FGCisgICAgICAgICAgICBjYXNlICdLJzogcmV0dXJuICdcdTA2MkUnOyAvLyBBUkFCSUMgTEVUVEVSIEtIQUgKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MDY0NCc7IC8vIEFSQUJJQyBMRVRURVIgTEFNCisgICAgICAgICAgICBjYXNlICdMJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTA2NDUnOyAvLyBBUkFCSUMgTEVUVEVSIE1FRU0KKyAgICAgICAgICAgIGNhc2UgJ24nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwNjQ2JzsgLy8gQVJBQklDIExFVFRFUiBOT09OCisgICAgICAgICAgICBjYXNlICdvJzogcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ08nOiByZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAncCc6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ1AnOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdxJzogcmV0dXJuICdcdTA2NDInOyAvLyBBUkFCSUMgTEVUVEVSIFFBRgorICAgICAgICAgICAgY2FzZSAnUSc6IHJldHVybiAnXHUwNjQyJzsgLy8gQVJBQklDIExFVFRFUiBRQUYKKyAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gJ1x1MDYzMSc7IC8vIEFSQUJJQyBMRVRURVIgUkVICisgICAgICAgICAgICBjYXNlICdSJzogcmV0dXJuICdcdTA2MzEnOyAvLyBBUkFCSUMgTEVUVEVSIFJFSAorICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICdTJzogcmV0dXJuICdcdTA2MzQnOyAvLyBBUkFCSUMgTEVUVEVSIFNIRUVOCisgICAgICAgICAgICBjYXNlICd0JzogcmV0dXJuICdcdTA2MkEnOyAvLyBBUkFCSUMgTEVUVEVSIFRFSAorICAgICAgICAgICAgY2FzZSAnVCc6IHJldHVybiAnXHUwNjJCJzsgLy8gQVJBQklDIExFVFRFUiBUSEVICisgICAgICAgICAgICBjYXNlICdVJzogcmV0dXJuICdcdTA2NEMnOyAvLyBBUkFCSUMgREFNTUFUQU4KKyAgICAgICAgICAgIGNhc2UgJ3UnOiByZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICd3JzogcmV0dXJuICdcdTA2NDgnOyAvLyBBUkFCSUMgTEVUVEVSIFdBVworICAgICAgICAgICAgY2FzZSAnVyc6IHJldHVybiAnXHUwNjQ4JzsgLy8gQVJBQklDIExFVFRFUiBXQVcKKyAgICAgICAgICAgIGNhc2UgJ3gnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnWCc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTA2NEEnOyAvLyBBUkFCSUMgTEVUVEVSIFlFSAorICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwNjRBJzsgLy8gQVJBQklDIExFVFRFUiBZRUgKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDYzMic7IC8vIEFSQUJJQyBMRVRURVIgWkFJTgorICAgICAgICAgICAgY2FzZSAnWic6IHJldHVybiAnXHUwNjM4JzsgLy8gQVJBQklDIExFVFRFUiBaQUgKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRkNjYyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvci5qYXZhCkBAIC0wLDAgKzEsMjAxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworLyoqIEEgY2xhc3MgdGhhdCBoYW5kbGVzIGV2ZW50cyBmb3IgYSBCZWhhdmlvck93bmVyLgorKiBBIGJlaGF2aW9yIGVuYWNwc3VsYXRlcyBzb21lIHBpZWNlIG9mIHRoZSBldmVudC1oYW5kbGluZyBsb2dpYyBmb3IgYSBjb21wb25lbnQuCisqIFRoaXMgYWxsb3dzIHRoZSBjbGllbnQgdG8gc2VwYXJhdGUgZXZlbnQtaGFuZGxpbmcgbG9naWMgb3V0IGludG8gc2VwYXJhdGUgY2xhc3NlcworKiBhY2NvcmRpbmcgdG8gZnVuY3Rpb24sIG9yIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgd2F5IGEgY29tcG9uZW50IGhhbmRsZXMKKyogZXZlbnRzIHdpdGhvdXQgYWRkaW5nIGEgbG90IG9mIHNwZWNpYWwtY2FzZSBjb2RlIHRvIHRoZSBwYW5lbCBpdHNlbGYuCisqIEJlaGF2aW9ycyBhcmUgc3RvcmVkIGluIGEgbGlua2VkIGxpc3QsIGFuZCBhbGwgYmVoYXZpb3JzIGdldCBhIGNyYWNrIGF0IGFuIGV2ZW50IGJlZm9yZQorKiB0aGUgb3duZXIgZ2V0cyBhIGNyYWNrIGF0IHRoZW0gKHJpZ2h0IG5vdywgd2UgcmVseSBvbiBvYmplY3RzIHRoYXQgaW1wbGVtZW50CisqIEJlaGF2aW9yT3duZXIgdG8gc3VwcG9ydCB0aGVzZSBzZW1hbnRpY3MpLgorKiBCZWhhdmlvciBwcm92aWRlcyBhbGwgdGhlIHNhbWUgZXZlbnQtaGFuZGxpbmcgZnVuY3Rpb25zIHRoYXQgQ29tcG9uZW50IHByb3ZpZGVzLCBhbmQKKyogdGhleSBhbGwgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIHN5bnRheCBhbmQgc2VtYW50aWNzLiAqLworYWJzdHJhY3QgY2xhc3MgQmVoYXZpb3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEJlaGF2aW9yIGZOZXh0QmVoYXZpb3IgPSBudWxsOworICAgIHByaXZhdGUgQmVoYXZpb3JPd25lciBmT3duZXIgPSBudWxsOworCisgICAgc3RhdGljIGNsYXNzIEV2ZW50VHlwZSB7CisKKyAgICAgICAgRXZlbnRUeXBlKCkgeworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZXZlbnRzIC0gc2hvdWxkIHRoZXNlIGJlIGluIFRleHRQYW5lbCAob3IgZWxzZXdoZXJlKT8KKworICAgIC8vIFRoaXMgZXZlbnQncyBXSEFUIHBhcmFtZXRlciBpcyBhIFRleHRSYW5nZSBpbnN0YW5jZQorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgU0VMRUNUID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gTm8gV0hBVCBwYXJhbSBmb3IgdGhlc2U6CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDVVQgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDT1BZID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgUEFTVEUgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDTEVBUiA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFVORE8gPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBSRURPID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ0xFQVJfQ09NTUFORF9MT0cgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXSEFUIHBhcmFtIGlzIGEgU3R5bGVNb2RpZmllcgorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ0hBUkFDVEVSX1NUWUxFX01PRCA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFBBUkFHUkFQSF9TVFlMRV9NT0QgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXaXRoIHRoaXMgZXZlbnQsIHZhbHVlcyBvZiB0aGUgV0hBVCBwYXJhbWV0ZXIgYXJlCisgICAgLy8gZWl0aGVyIEJvb2xlYW4uVFJVRSBvciBCb29sZWFuLkZBTFNFCisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBTRVRfTU9ESUZJRUQgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXSEFUIHBhcmFtIGlzIGEgVGV4dFJlcGxhY2VtZW50CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBSRVBMQUNFID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gV0hBVCBwYXJhbSBpcyBhbiBJbnRlZ2VyCisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBTRVRfQ09NTUFORF9MT0dfU0laRSA9IG5ldyBFdmVudFR5cGUoKTsKKworICAgIHB1YmxpYyBCZWhhdmlvcigpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRUb093bmVyKEJlaGF2aW9yT3duZXIgb3duZXIpIHsKKyAgICAgICAgcmVtb3ZlRnJvbU93bmVyKCk7CisgICAgICAgIGZPd25lciA9IG93bmVyOworICAgICAgICBzZXROZXh0QmVoYXZpb3Iob3duZXIuZ2V0QmVoYXZpb3IoKSk7CisgICAgICAgIG93bmVyLnNldEJlaGF2aW9yKHRoaXMpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IuZm9jdXNHYWluZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5mb2N1c0xvc3QoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLmtleVByZXNzZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3Iua2V5VHlwZWQoZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5rZXlSZWxlYXNlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlRHJhZ2dlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRW50ZXJlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlRW50ZXJlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IubW91c2VFeGl0ZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IubW91c2VNb3ZlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlUHJlc3NlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5tb3VzZVJlbGVhc2VkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIEJlaGF2aW9yIG5leHRCZWhhdmlvcigpIHsKKyAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3I7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcGFpbnQoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdSZWN0KSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5wYWludChnLCBkcmF3UmVjdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVGcm9tT3duZXIoKSB7CisgICAgICAgIGlmIChmT3duZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGZPd25lci5nZXRCZWhhdmlvcigpID09IHRoaXMpCisgICAgICAgICAgICAgICAgZk93bmVyLnNldEJlaGF2aW9yKG5leHRCZWhhdmlvcigpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgIGN1cnJlbnQgPSBmT3duZXIuZ2V0QmVoYXZpb3IoKTsKKworICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICE9IG51bGwgJiYgY3VycmVudC5uZXh0QmVoYXZpb3IoKSAhPSB0aGlzKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0QmVoYXZpb3IoKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPSBudWxsKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50LnNldE5leHRCZWhhdmlvcihuZXh0QmVoYXZpb3IoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXROZXh0QmVoYXZpb3IobnVsbCk7CisgICAgICAgICAgICBmT3duZXIgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0TmV4dEJlaGF2aW9yKEJlaGF2aW9yIG5leHQpIHsKKyAgICAgICAgZk5leHRCZWhhdmlvciA9IG5leHQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEV2ZW50VHlwZSBldmVudCwgT2JqZWN0IGRhdGEpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChldmVudCwgZGF0YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQmVoYXZpb3JPd25lci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yT3duZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODJmZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yT3duZXIuamF2YQpAQCAtMCwwICsxLDIwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW50ZXJmYWNlIEJlaGF2aW9yT3duZXIgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIEJlaGF2aW9yIGdldEJlaGF2aW9yKCk7CisgICAgcHVibGljIHZvaWQgc2V0QmVoYXZpb3IoQmVoYXZpb3IgYik7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQ29tbWFuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0NvbW1hbmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZGRkMjdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0NvbW1hbmQuamF2YQpAQCAtMCwwICsxLDUzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworYWJzdHJhY3QgY2xhc3MgQ29tbWFuZCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgQ29tbWFuZCBmUHJldmlvdXNDb21tYW5kID0gbnVsbDsKKworICAgIC8vIGZNb2RpZmllZCBpcyB1c2VkIHRvIGtlZXAgYSB0ZXh0TW9kaWZpZWQgZmxhZyBmb3IKKyAgICAvLyBjbGllbnRzCisgICAgcHJpdmF0ZSBib29sZWFuIGZNb2RpZmllZDsKKworICAgIHB1YmxpYyBDb21tYW5kKCkgeworICAgICAgICBmTW9kaWZpZWQgPSB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBDb21tYW5kIHByZXZpb3VzQ29tbWFuZCgpIHsKKyAgICAgICAgcmV0dXJuIGZQcmV2aW91c0NvbW1hbmQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UHJldmlvdXNDb21tYW5kKENvbW1hbmQgIHByZXZpb3VzQ29tbWFuZCkgeworICAgICAgICBmUHJldmlvdXNDb21tYW5kID0gcHJldmlvdXNDb21tYW5kOworICAgIH0KKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGV4ZWN1dGUoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bmRvKCk7CisKKyAgICBwdWJsaWMgdm9pZCByZWRvKCkgeworICAgICAgICBleGVjdXRlKCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICByZXR1cm4gZk1vZGlmaWVkOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpIHsKKworICAgICAgICBmTW9kaWZpZWQgPSBtb2RpZmllZDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvRmFrZUNvbXBvbmVudC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0Zha2VDb21wb25lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMzhjZDg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0Zha2VDb21wb25lbnQuamF2YQpAQCAtMCwwICsxLDMwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKKworYWJzdHJhY3QgY2xhc3MgRmFrZUNvbXBvbmVudCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcm90ZWN0ZWQgQ29tcG9uZW50IGZIb3N0OworICAgIAorICAgIGFic3RyYWN0IHZvaWQgYWRkTm90aWZ5KCk7CisgICAgYWJzdHJhY3Qgdm9pZCBwYWludChHcmFwaGljcyBnKTsKKyAgICB2b2lkIHNldEhvc3QoQ29tcG9uZW50IGhvc3QpIHsgICAKKyAgICAgICAgZkhvc3QgPSBob3N0OworICAgIH0KKyAgICBhYnN0cmFjdCB2b2lkIHJlcXVlc3RGb2N1cygpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9IYWNrQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGFja0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyZTA1N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGFja0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTgxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LCBBbGwgUmlnaHRzIFJlc2VydmVkCisgKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoKK0ZvciBhbnkgaW5jb21pbmcgY2hhcmFjdGVyIEMKK2lmIHlvdSBjYW4gbWFwIEMgdXNpbmcgdGhlIGZvbGxvd2luZyBGYWtlQXJhYmljVGFibGUsIHJldHVybgorRmFrZUFyYWJpY1RhYmxlKEMpCitlbHNlIGlmIEMgaXMgZnJvbSBBIHRocm91Z2ggWiwgcmV0dXJuIEZha2VBcmFiaWNUYWJsZShsb3dlcmNhc2UoQykpCitlbHNlIGp1c3QgcmV0dXJuIEMKKworCitGYWtlQXJhYmljVGFibGUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIG1hcHBpbmcKKworMCAgIDA2NjA7QVJBQklDLUlORElDIERJR0lUIFpFUk87TmQ7MDtBTjs7MDswOzA7Tjs7Ozs7CisxICAgMDY2MTtBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7QU47OzE7MTsxO047Ozs7OworMiAgIDA2NjI7QVJBQklDLUlORElDIERJR0lUIFRXTztOZDswO0FOOzsyOzI7MjtOOzs7OzsKKzMgICAwNjYzO0FSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0FOOzszOzM7MztOOzs7OzsKKzQgICAwNjY0O0FSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7QU47OzQ7NDs0O047Ozs7OworNSAgIDA2NjU7QVJBQklDLUlORElDIERJR0lUIEZJVkU7TmQ7MDtBTjs7NTs1OzU7Tjs7Ozs7Cis2ICAgMDY2NjtBUkFCSUMtSU5ESUMgRElHSVQgU0lYO05kOzA7QU47OzY7Njs2O047Ozs7OworNyAgIDA2Njc7QVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7QU47Ozc7Nzs3O047Ozs7OworOCAgIDA2Njg7QVJBQklDLUlORElDIERJR0lUIEVJR0hUO05kOzA7QU47Ozg7ODs4O047Ozs7OworOSAgIDA2Njk7QVJBQklDLUlORElDIERJR0lUIE5JTkU7TmQ7MDtBTjs7OTs5Ozk7Tjs7Ozs7CisKKyUgICAwNjZBO0FSQUJJQyBQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisuICAgMDY2QjtBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CissICAgMDYwQztBUkFCSUMgQ09NTUE7UG87MDtSOzs7OztOOzs7OzsKKy0gICAwNjQwO0FSQUJJQyBUQVRXRUVMO0xtOzA7Ujs7Ozs7Tjs7Ozs7CisnICAgMDY1MjtBUkFCSUMgU1VLVU47TW47MzQ7Ujs7Ozs7Tjs7Ozs7CisiICAgMDY1MTtBUkFCSUMgU0hBRERBO01uOzMzO1I7Ozs7O047QVJBQklDIFNIQUREQUg7Ozs7Cis7ICAgMDYxQjtBUkFCSUMgU0VNSUNPTE9OO1BvOzA7Ujs7Ozs7Tjs7Ozs7Cis/ICAgMDYxRjtBUkFCSUMgUVVFU1RJT04gTUFSSztQbzswO1I7Ozs7O047Ozs7OworCithICAgMDYyNztBUkFCSUMgTEVUVEVSIEFMRUY7TG87MDtSOzs7OztOOzs7OzsKK0EgICAwNjM5O0FSQUJJQyBMRVRURVIgQUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitiICAgMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CitjICAgMDYzNTtBUkFCSUMgTEVUVEVSIFNBRDtMbzswO1I7Ozs7O047Ozs7OworZCAgIDA2MkY7QVJBQklDIExFVFRFUiBEQUw7TG87MDtSOzs7OztOOzs7OzsKK0QgICAwNjMwO0FSQUJJQyBMRVRURVIgVEhBTDtMbzswO1I7Ozs7O047Ozs7OworRSAgIDA2NEI7QVJBQklDIEZBVEhBVEFOO01uOzI3O1I7Ozs7O047Ozs7OworZSAgIDA2NEU7QVJBQklDIEZBVEhBO01uOzMwO1I7Ozs7O047QVJBQklDIEZBVEhBSDs7OzsKK2YgICAwNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OworZyAgIDA2M0E7QVJBQklDIExFVFRFUiBHSEFJTjtMbzswO1I7Ozs7O047Ozs7OworaCAgIDA2MkQ7QVJBQklDIExFVFRFUiBIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBOzs7OworSCAgIDA2NDc7QVJBQklDIExFVFRFUiBIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEE7Ozs7CitJICAgMDY0RDtBUkFCSUMgS0FTUkFUQU47TW47Mjk7Ujs7Ozs7Tjs7Ozs7CitpICAgMDY1MDtBUkFCSUMgS0FTUkE7TW47MzI7Ujs7Ozs7TjtBUkFCSUMgS0FTUkFIOzs7OworaiAgIDA2MkM7QVJBQklDIExFVFRFUiBKRUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitLICAgMDYyRTtBUkFCSUMgTEVUVEVSIEtIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgS0hBQTs7OzsKK2sgICAwNjQzO0FSQUJJQyBMRVRURVIgS0FGO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRjs7OzsKK2wgICAwNjQ0O0FSQUJJQyBMRVRURVIgTEFNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CittICAgMDY0NTtBUkFCSUMgTEVUVEVSIE1FRU07TG87MDtSOzs7OztOOzs7OzsKK24gICAwNjQ2O0FSQUJJQyBMRVRURVIgTk9PTjtMbzswO1I7Ozs7O047Ozs7OworbyAgIDA2NEY7QVJBQklDIERBTU1BO01uOzMxO1I7Ozs7O047QVJBQklDIERBTU1BSDs7OzsKK3AgICAwNjI4O0FSQUJJQyBMRVRURVIgQkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKK3EgICAwNjQyO0FSQUJJQyBMRVRURVIgUUFGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CityICAgMDYzMTtBUkFCSUMgTEVUVEVSIFJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQTs7OzsKK3MgICAwNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO1I7Ozs7O047Ozs7OworUyAgIDA2MzQ7QVJBQklDIExFVFRFUiBTSEVFTjtMbzswO1I7Ozs7O047Ozs7OwordCAgIDA2MkE7QVJBQklDIExFVFRFUiBURUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBOzs7OworVCAgIDA2MkI7QVJBQklDIExFVFRFUiBUSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRIQUE7Ozs7CitVICAgMDY0QztBUkFCSUMgREFNTUFUQU47TW47Mjg7Ujs7Ozs7Tjs7Ozs7Cit1ICAgMDY0RjtBUkFCSUMgREFNTUE7TW47MzE7Ujs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OwordiAgIDA2NDE7QVJBQklDIExFVFRFUiBGRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkE7Ozs7Cit3ICAgMDY0ODtBUkFCSUMgTEVUVEVSIFdBVztMbzswO1I7Ozs7O047Ozs7OworeCAgIDA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7Cit5ICAgMDY0QTtBUkFCSUMgTEVUVEVSIFlFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBZQTs7OzsKK3ogICAwNjMyO0FSQUJJQyBMRVRURVIgWkFJTjtMbzswO1I7Ozs7O047Ozs7OworWiAgIDA2Mzg7QVJBQklDIExFVFRFUiBaQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREhBSDs7OzsKKworKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgS2V5UmVtYXAgdG8gcHJvZHVjZSB0cmFuc2xpdGVyYXRlZCBBcmFiaWMKKyAqIGNoYXJhY3RlcnMgZnJvbSBMYXRpbi0xIGNoYXJhY3RlcnMuCisgKi8KKworLy8gTk9URTogdGhpcyBjbGFzcyBlbGltaW5hdGVzIEFyYWJpYyB2b3dlbHMgd2hpY2ggbG9vayB1Z2x5CisvLyBpbiB0aGUgZm9udCBpbiB3aGljaCB3ZSBoYXBwZW4gdG8gYmUgZGVtbydpbmcuICBJdCdzIHRvdGFsbHkKKy8vIGJvZ3VzIG90aGVyd2lzZS4KK2ZpbmFsIGNsYXNzIEhhY2tBcmFiaWNUcmFuc2xpdGVyYXRpb24gZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBjaGFyIHJlbWFwKGNoYXIgYykgeworCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnMCc6IHJldHVybiAnXHUwNjYwJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFpFUk8KKyAgICAgICAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ1x1MDY2MSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBPTkUKKyAgICAgICAgICAgIGNhc2UgJzInOiByZXR1cm4gJ1x1MDY2Mic7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUV08KKyAgICAgICAgICAgIGNhc2UgJzMnOiByZXR1cm4gJ1x1MDY2Myc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRQorICAgICAgICAgICAgY2FzZSAnNCc6IHJldHVybiAnXHUwNjY0JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEZPVVIKKyAgICAgICAgICAgIGNhc2UgJzUnOiByZXR1cm4gJ1x1MDY2NSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFCisgICAgICAgICAgICBjYXNlICc2JzogcmV0dXJuICdcdTA2NjYnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0lYCisgICAgICAgICAgICBjYXNlICc3JzogcmV0dXJuICdcdTA2NjcnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU4KKyAgICAgICAgICAgIGNhc2UgJzgnOiByZXR1cm4gJ1x1MDY2OCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVAorICAgICAgICAgICAgY2FzZSAnOSc6IHJldHVybiAnXHUwNjY5JzsgLy8gQVJBQklDLUlORElDIERJR0lUIE5JTkUKKworICAgICAgICAgICAgY2FzZSAnJSc6IHJldHVybiAnXHUwNjZBJzsgLy8gQVJBQklDIFBFUkNFTlQgU0lHTgorICAgICAgICAgICAgLy8gdGhlIFRyYWRpdGlvbmFsIEFyYWJpYyBmb250IGRvZXMgbm90IGNvbnRhaW4gdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGNhc2UgJy4nOiByZXR1cm4gJ1x1MDY2Qic7IC8vIEFSQUJJQyBERUNJTUFMIFNFUEFSQVRPUgorICAgICAgICAgICAgY2FzZSAnLCc6IHJldHVybiAnXHUwNjBDJzsgLy8gQVJBQklDIENPTU1BCisgICAgICAgICAgICBjYXNlICctJzogcmV0dXJuICdcdTA2NDAnOyAvLyBBUkFCSUMgVEFUV0VFTAorICAgICAgICAgICAgY2FzZSAnXCcnOiByZXR1cm4gJ1x1MDY1Mic7IC8vIEFSQUJJQyBTVUtVTgorICAgICAgICAgICAgY2FzZSAnIic6IHJldHVybiAnXHUwNjUxJzsgLy8gQVJBQklDIFNIQUREQQorICAgICAgICAgICAgY2FzZSAnOyc6IHJldHVybiAnXHUwNjFCJzsgLy8gQVJBQklDIFNFTUlDT0xPTgorICAgICAgICAgICAgY2FzZSAnPyc6IHJldHVybiAnXHUwNjFGJzsgLy8gQVJBQklDIFFVRVNUSU9OIE1BUksKKworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwNjI3JzsgLy8gQVJBQklDIExFVFRFUiBBTEVGCisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTA2MzknOyAvLyBBUkFCSUMgTEVUVEVSIEFJTgorICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTA2MzUnOyAvLyBBUkFCSUMgTEVUVEVSIFNBRAorICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwNjM1JzsgLy8gQVJBQklDIExFVFRFUiBTQUQKKyAgICAgICAgICAgIGNhc2UgJ2QnOiByZXR1cm4gJ1x1MDYyRic7IC8vIEFSQUJJQyBMRVRURVIgREFMCisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTA2MzAnOyAvLyBBUkFCSUMgTEVUVEVSIFRIQUwKKyAgICAgICAgICAgIGNhc2UgJ2UnOiAvL3JldHVybiAnXHUwNjRFJzsgLy8gQVJBQklDIEZBVEhBCisgICAgICAgICAgICBjYXNlICdFJzogLy9yZXR1cm4gJ1x1MDY0Qic7IC8vIEFSQUJJQyBGQVRIQVRBTgorICAgICAgICAgICAgY2FzZSAnZic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ0YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdnJzogcmV0dXJuICdcdTA2M0EnOyAvLyBBUkFCSUMgTEVUVEVSIEdIQUlOCisgICAgICAgICAgICBjYXNlICdHJzogcmV0dXJuICdcdTA2M0EnOyAvLyBBUkFCSUMgTEVUVEVSIEdIQUlOCisgICAgICAgICAgICBjYXNlICdoJzogcmV0dXJuICdcdTA2MkQnOyAvLyBBUkFCSUMgTEVUVEVSIEhBSAorICAgICAgICAgICAgY2FzZSAnSCc6IHJldHVybiAnXHUwNjQ3JzsgLy8gQVJBQklDIExFVFRFUiBIRUgKKyAgICAgICAgICAgIGNhc2UgJ2knOiAvL3JldHVybiAnXHUwNjUwJzsgLy8gQVJBQklDIEtBU1JBCisgICAgICAgICAgICBjYXNlICdJJzogLy9yZXR1cm4gJ1x1MDY0RCc7IC8vIEFSQUJJQyBLQVNSQVRBTgorICAgICAgICAgICAgY2FzZSAnaic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTA2MkMnOyAvLyBBUkFCSUMgTEVUVEVSIEpFRU0KKyAgICAgICAgICAgIGNhc2UgJ2snOiByZXR1cm4gJ1x1MDY0Myc7IC8vIEFSQUJJQyBMRVRURVIgS0FGCisgICAgICAgICAgICBjYXNlICdLJzogcmV0dXJuICdcdTA2MkUnOyAvLyBBUkFCSUMgTEVUVEVSIEtIQUgKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MDY0NCc7IC8vIEFSQUJJQyBMRVRURVIgTEFNCisgICAgICAgICAgICBjYXNlICdMJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTA2NDUnOyAvLyBBUkFCSUMgTEVUVEVSIE1FRU0KKyAgICAgICAgICAgIGNhc2UgJ24nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwNjQ2JzsgLy8gQVJBQklDIExFVFRFUiBOT09OCisgICAgICAgICAgICBjYXNlICdvJzogLy9yZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAnTyc6IC8vcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnXHUwNjQyJzsgLy8gQVJBQklDIExFVFRFUiBRQUYKKyAgICAgICAgICAgIGNhc2UgJ1EnOiByZXR1cm4gJ1x1MDY0Mic7IC8vIEFSQUJJQyBMRVRURVIgUUFGCisgICAgICAgICAgICBjYXNlICdyJzogcmV0dXJuICdcdTA2MzEnOyAvLyBBUkFCSUMgTEVUVEVSIFJFSAorICAgICAgICAgICAgY2FzZSAnUic6IHJldHVybiAnXHUwNjMxJzsgLy8gQVJBQklDIExFVFRFUiBSRUgKKyAgICAgICAgICAgIGNhc2UgJ3MnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwNjM0JzsgLy8gQVJBQklDIExFVFRFUiBTSEVFTgorICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNjJBJzsgLy8gQVJBQklDIExFVFRFUiBURUgKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MDYyQic7IC8vIEFSQUJJQyBMRVRURVIgVEhFSAorICAgICAgICAgICAgY2FzZSAnVSc6IC8vcmV0dXJuICdcdTA2NEMnOyAvLyBBUkFCSUMgREFNTUFUQU4KKyAgICAgICAgICAgIGNhc2UgJ3UnOiAvL3JldHVybiAnXHUwNjRGJzsgLy8gQVJBQklDIERBTU1BCisgICAgICAgICAgICBjYXNlICd2JzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnVic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ3cnOiByZXR1cm4gJ1x1MDY0OCc7IC8vIEFSQUJJQyBMRVRURVIgV0FXCisgICAgICAgICAgICBjYXNlICdXJzogcmV0dXJuICdcdTA2NDgnOyAvLyBBUkFCSUMgTEVUVEVSIFdBVworICAgICAgICAgICAgY2FzZSAneCc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICdYJzogcmV0dXJuICdcdTA2MzMnOyAvLyBBUkFCSUMgTEVUVEVSIFNFRU4KKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MDY0QSc7IC8vIEFSQUJJQyBMRVRURVIgWUVICisgICAgICAgICAgICBjYXNlICdZJzogcmV0dXJuICdcdTA2NEEnOyAvLyBBUkFCSUMgTEVUVEVSIFlFSAorICAgICAgICAgICAgY2FzZSAneic6IHJldHVybiAnXHUwNjMyJzsgLy8gQVJBQklDIExFVFRFUiBaQUlOCisgICAgICAgICAgICBjYXNlICdaJzogcmV0dXJuICdcdTA2MzgnOyAvLyBBUkFCSUMgTEVUVEVSIFpBSAorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hlYnJld1RyYW5zbGl0ZXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hlYnJld1RyYW5zbGl0ZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI0ZmU1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGVicmV3VHJhbnNsaXRlcmF0aW9uLmphdmEKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qKgorICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIEtleVJlbWFwIHRvIHByb2R1Y2UgdHJhbnNsaXRlcmF0ZWQgSGVicmV3CisgKiBjaGFyYWN0ZXJzIGZyb20gTGF0aW4tMSBjaGFyYWN0ZXJzLgorICovCisKK2ZpbmFsIGNsYXNzIEhlYnJld1RyYW5zbGl0ZXJhdGlvbiBleHRlbmRzIEtleVJlbWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlICdhJzogcmV0dXJuICdcdTA1RDAnOyAvLyBIRUJSRVcgTEVUVEVSIEFMRUYKKyAgICAgICAgICAgIGNhc2UgJ0EnOiByZXR1cm4gJ1x1MDVFMic7IC8vIEhFQlJFVyBMRVRURVIgQVlJTgorICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwNUQxJzsgLy8gSEVCUkVXIExFVFRFUiBCRVQKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MDVEMSc7IC8vIEhFQlJFVyBMRVRURVIgQkVUCisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTA1RTYnOyAvLyBIRUJSRVcgTEVUVEVSIFRTQURJCisgICAgICAgICAgICBjYXNlICdDJzogcmV0dXJuICdcdTA1RTUnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIFRTQURJCisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTA1RDMnOyAvLyBIRUJSRVcgTEVUVEVSIERBTEVUCisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTA1QkMnOyAvLyBIRUJSRVcgUE9JTlQgREFHRVNICisgICAgICAgICAgICBjYXNlICdlJzogcmV0dXJuICdcdTA1QjUnOyAvLyBIRUJSRVcgUE9JTlQgVFNFUkUKKyAgICAgICAgICAgIGNhc2UgJ0UnOiByZXR1cm4gJ1x1MDVCNic7IC8vIEhFQlJFVyBQT0lOVCBTRUdPTAorICAgICAgICAgICAgY2FzZSAnZic6IHJldHVybiAnXHUwNUU0JzsgLy8gSEVCUkVXIExFVFRFUiBQRQorICAgICAgICAgICAgY2FzZSAnRic6IHJldHVybiAnXHUwNUU0JzsgLy8gSEVCUkVXIExFVFRFUiBQRQorICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwNUQyJzsgLy8gSEVCUkVXIExFVFRFUiBHSU1FTAorICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwNUQyJzsgLy8gSEVCUkVXIExFVFRFUiBHSU1FTAorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNUQ0JzsgLy8gSEVCUkVXIExFVFRFUiBIRQorICAgICAgICAgICAgY2FzZSAnSCc6IHJldHVybiAnXHUwNUQ3JzsgLy8gSEVCUkVXIExFVFRFUiBIRVQKKyAgICAgICAgICAgIGNhc2UgJ2knOiByZXR1cm4gJ1x1MDVEOSc7IC8vIEhFQlJFVyBMRVRURVIgWU9ECisgICAgICAgICAgICBjYXNlICdJJzogcmV0dXJuICdcdTA1QjQnOyAvLyBIRUJSRVcgUE9JTlQgSElSSVEKKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MDVEOSc7IC8vIEhFQlJFVyBMRVRURVIgWU9ECisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTA1QzEnOyAvLyBIRUJSRVcgUE9JTlQgU0hJTiBET1QKKyAgICAgICAgICAgIGNhc2UgJ2snOiByZXR1cm4gJ1x1MDVEQic7IC8vIEhFQlJFVyBMRVRURVIgS0FGCisgICAgICAgICAgICBjYXNlICdLJzogcmV0dXJuICdcdTA1REEnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRgorICAgICAgICAgICAgY2FzZSAnbCc6IHJldHVybiAnXHUwNURDJzsgLy8gSEVCUkVXIExFVFRFUiBMQU1FRAorICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwNURDJzsgLy8gSEVCUkVXIExFVFRFUiBMQU1FRAorICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwNURFJzsgLy8gSEVCUkVXIExFVFRFUiBNRU0KKyAgICAgICAgICAgIGNhc2UgJ00nOiByZXR1cm4gJ1x1MDVERCc7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgTUVNCisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTA1RTAnOyAvLyBIRUJSRVcgTEVUVEVSIE5VTgorICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwNURGJzsgLy8gSEVCUkVXIExFVFRFUiBGSU5BTCBOVU4KKyAgICAgICAgICAgIGNhc2UgJ28nOiByZXR1cm4gJ1x1MDVENSc7IC8vIEhFQlJFVyBMRVRURVIgVkFWCisgICAgICAgICAgICBjYXNlICdPJzogcmV0dXJuICdcdTA1QjknOyAvLyBIRUJSRVcgUE9JTlQgSE9MQU0KKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MDVFNCc7IC8vIEhFQlJFVyBMRVRURVIgUEUKKyAgICAgICAgICAgIGNhc2UgJ1AnOiByZXR1cm4gJ1x1MDVFMyc7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgUEUKKyAgICAgICAgICAgIGNhc2UgJ3EnOiByZXR1cm4gJ1x1MDVFNyc7IC8vIEhFQlJFVyBMRVRURVIgUU9GCisgICAgICAgICAgICBjYXNlICdRJzogcmV0dXJuICdcdTA1RTcnOyAvLyBIRUJSRVcgTEVUVEVSIFFPRgorICAgICAgICAgICAgY2FzZSAncic6IHJldHVybiAnXHUwNUU4JzsgLy8gSEVCUkVXIExFVFRFUiBSRVNICisgICAgICAgICAgICBjYXNlICdSJzogcmV0dXJuICdcdTA1QkYnOyAvLyBIRUJSRVcgUE9JTlQgUkFGRQorICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwNUU5JzsgLy8gSEVCUkVXIExFVFRFUiBTSElOCisgICAgICAgICAgICBjYXNlICdTJzogcmV0dXJuICdcdTA1RTEnOyAvLyBIRUJSRVcgTEVUVEVSIFNBTUVLSAorICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNUVBJzsgLy8gSEVCUkVXIExFVFRFUiBUQVYKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MDVEOCc7IC8vIEhFQlJFVyBMRVRURVIgVEVUCisgICAgICAgICAgICBjYXNlICd1JzogcmV0dXJuICdcdTA1RDUnOyAvLyBIRUJSRVcgTEVUVEVSIFZBVgorICAgICAgICAgICAgY2FzZSAnVSc6IHJldHVybiAnXHUwNUJCJzsgLy8gSEVCUkVXIFBPSU5UIFFVQlVUUworICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwNUQ1JzsgLy8gSEVCUkVXIExFVFRFUiBWQVYKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MDVCNyc7IC8vIEhFQlJFVyBQT0lOVCBQQVRBSAorICAgICAgICAgICAgY2FzZSAndyc6IHJldHVybiAnXHUwNUQ1JzsgLy8gSEVCUkVXIExFVFRFUiBWQVYKKyAgICAgICAgICAgIGNhc2UgJ1cnOiByZXR1cm4gJ1x1MDVCOCc7IC8vIEhFQlJFVyBQT0lOVCBRQU1BVFMKKyAgICAgICAgICAgIGNhc2UgJ3gnOiByZXR1cm4gJ1x1MDVFNic7IC8vIEhFQlJFVyBMRVRURVIgVFNBREkKKyAgICAgICAgICAgIGNhc2UgJ1gnOiByZXR1cm4gJ1x1MDVFNSc7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgVFNBREkKKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MDVEOSc7IC8vIEhFQlJFVyBMRVRURVIgWU9ECisgICAgICAgICAgICBjYXNlICdZJzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAneic6IHJldHVybiAnXHUwNUQ2JzsgLy8gSEVCUkVXIExFVFRFUiBaQVlJTgorICAgICAgICAgICAgY2FzZSAnWic6IHJldHVybiAnXHUwNUMyJzsgLy8gSEVCUkVXIFBPSU5UIFNJTiBET1QKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9Jc3JhZWxOaWt1ZEtleWJvYXJkLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSXNyYWVsTmlrdWRLZXlib2FyZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI3MThkMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSXNyYWVsTmlrdWRLZXlib2FyZC5qYXZhCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgsIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBzaW11bGF0ZXMgYSBOaWt1ZCBrZXlib2FyZCBvbiBhIFVTLUVuZ2xpc2gKKyAqIGtleWJvYXJkLiAgSXQgaXMgdmVyeSBtdWNoIGEgd29yayBpbiBwcm9ncmVzcy4KKyAqLworCitmaW5hbCBjbGFzcyBJc3JhZWxOaWt1ZEtleWJvYXJkIGV4dGVuZHMgS2V5UmVtYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICBzd2l0Y2goYykgeworICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNUQwJzsgLy8gYWxlZgorICAgICAgICAgICAgY2FzZSAnYyc6IHJldHVybiAnXHUwNUQxJzsgLy8gYmV0CisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTA1RDInOyAvLyBnaW1lbAorICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwNUQzJzsgLy8gZGFsZXQKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MDVENCc7IC8vIGhlCisgICAgICAgICAgICBjYXNlICd1JzogcmV0dXJuICdcdTA1RDUnOyAvLyB2YXYKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDVENic7IC8vIHpheWluCisgICAgICAgICAgICBjYXNlICdqJzogcmV0dXJuICdcdTA1RDcnOyAvLyBoZXQKKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MDVEOCc7IC8vIHRldAorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNUQ5JzsgLy8geW9kCisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTA1REEnOyAvLyBmaW5hbCBrYWYKKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDVEQic7IC8vIGthZgorICAgICAgICAgICAgY2FzZSAnayc6IHJldHVybiAnXHUwNURDJzsgLy8gbGFtZWQKKyAgICAgICAgICAgIGNhc2UgJ28nOiByZXR1cm4gJ1x1MDVERCc7IC8vIGZpbmFsIG1lbQorICAgICAgICAgICAgY2FzZSAnbic6IHJldHVybiAnXHUwNURFJzsgLy8gbWVtCisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTA1REYnOyAvLyBmaW5hbCBudW4KKyAgICAgICAgICAgIGNhc2UgJ2InOiByZXR1cm4gJ1x1MDVFMCc7IC8vIG51bgorICAgICAgICAgICAgY2FzZSAneCc6IHJldHVybiAnXHUwNUUxJzsgLy8gc2FtZWNoCisgICAgICAgICAgICBjYXNlICdnJzogcmV0dXJuICdcdTA1RTInOyAvLyBheWluCisgICAgICAgICAgICBjYXNlICc7JzogcmV0dXJuICdcdTA1RTMnOyAvLyBmaW5hbCBwZQorICAgICAgICAgICAgY2FzZSAncCc6IHJldHVybiAnXHUwNUU0JzsgLy8gcGUKKyAgICAgICAgICAgIGNhc2UgJy4nOiByZXR1cm4gJ1x1MDVFNSc7IC8vIGZpbmFsIHRzYWRpCisgICAgICAgICAgICBjYXNlICdtJzogcmV0dXJuICdcdTA1RTYnOyAvLyB0c2FkaQorICAgICAgICAgICAgY2FzZSAnZSc6IHJldHVybiAnXHUwNUU3JzsgLy8gcW9mCisgICAgICAgICAgICBjYXNlICdyJzogcmV0dXJuICdcdTA1RTgnOyAvLyByZXNoCisgICAgICAgICAgICBjYXNlICdhJzogcmV0dXJuICdcdTA1RTknOyAvLyBzaGluCisgICAgICAgICAgICBjYXNlICcsJzogcmV0dXJuICdcdTA1RUEnOyAvLyB0YXYKKyAgICAgICAgICAgIGNhc2UgJ3cnOiByZXR1cm4gJywnOworICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnLyc7CisgICAgICAgICAgICBjYXNlICcvJzogcmV0dXJuICcuJzsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIHJlbWFwKEtleUV2ZW50IGtleUV2ZW50KSB7CisKKyAgICAgICAgLy8gIE5vdGU6ICBvbmx5IG9uZSBjdHJsIGNhc2Ugbm93IChjdHJsLS8gLT4gZGFnZXNoKS4KKyAgICAgICAgLy8gIEJldHRlciBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIG5lZWRlZCBmb3IgbW9yZSBjYXNlcy4KKworICAgICAgICBpZiAoa2V5RXZlbnQuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBpZiAoa2V5RXZlbnQuZ2V0S2V5Q29kZSgpID09IEtleUV2ZW50LlZLX1NMQVNIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICdcdTA1QkMnOyAvLyBkYWdlc2gKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZW1hcChrZXlFdmVudC5nZXRLZXlDaGFyKCkpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSlRleHRQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0pUZXh0UGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTMwOWI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0pUZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDU4MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5BZGp1c3RhYmxlOworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc3dpbmcuSlBhbmVsOworaW1wb3J0IGphdmF4LnN3aW5nLkpDb21wb25lbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbEJhcjsKK2ltcG9ydCBqYXZheC5zd2luZy5Td2luZ1V0aWxpdGllczsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworLyoqCisgKiBKVGV4dFBhbmVsIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIE1UZXh0UGFuZWwgaW4gYSBTd2luZyBKUGFuZWwuCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpUZXh0UGFuZWwgZXh0ZW5kcyBKUGFuZWwgaW1wbGVtZW50cyBNVGV4dFBhbmVsIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBBVGV4dFBhbmVsSW1wbCBmSW1wbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSB3aXRoIGFsbCBzZXR0aW5ncyBzZXQKKyAgICAgKiB0byB0aGUgZGVmYXVsdCB2YWx1ZXMuICBDbGllbnRzIGNhbiBtb2RpZnkgdGhpcyBvYmplY3Q7CisgICAgICogbW9kaWZpY2F0aW9ucyB3aWxsIG5vdCBhZmZlY3QgdGhlIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIEByZXR1cm4gYSBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSBzZXQgdG8gZGVmYXVsdCB2YWx1ZXMKKyAgICAgKiBAc2VlIFRleHRQYW5lbFNldHRpbmdzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUZXh0UGFuZWxTZXR0aW5ncyBnZXREZWZhdWx0U2V0dGluZ3MoKSB7CisKKyAgICAgICAgcmV0dXJuIEFUZXh0UGFuZWxJbXBsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dFBhbmVsIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MuCisgICAgICogQHBhcmFtIGluaXRpYWxUZXh0IHRoZSB0ZXh0IGRvY3VtZW50LiAgSWYgbnVsbCBkb2N1bWVudCB0ZXh0IGlzIGVtcHR5LgorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dCwgY29weSwgYW5kIHBhc3RlCisgICAgICogIG9wZXJhdGlvbnMuICBJZiBudWxsIHRoaXMgcGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSlRleHRQYW5lbChNQ29uc3RUZXh0IGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgIGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgdGhpcyhBVGV4dFBhbmVsSW1wbC5mZ0RlZmF1bHRTZXR0aW5ncywgaW5pdGlhbFRleHQsIGNsaXBib2FyZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEpUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIHNldHRpbmdzIHRoZSBzZXR0aW5ncyBmb3IgdGhpcyBKVGV4dFBhbmVsCisgICAgICogQHBhcmFtIGluaXRpYWxUZXh0IHRoZSB0ZXh0IGRvY3VtZW50LiAgSWYgbnVsbCBkb2N1bWVudCB0ZXh0IGlzIGVtcHR5LgorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dCwgY29weSwgYW5kIHBhc3RlCisgICAgICogIG9wZXJhdGlvbnMuICBJZiBudWxsIHRoaXMgcGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKiBAc2VlIFRleHRQYW5lbFNldHRpbmdzCisgICAgICovCisgICAgcHVibGljIEpUZXh0UGFuZWwoVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcihmYWxzZSk7CisgICAgICAgIAorICAgICAgICBKU2Nyb2xsQmFyIGhvcnpTYiA9IG51bGw7CisgICAgICAgIEpTY3JvbGxCYXIgdmVydFNiID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCkpIHsKKworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBTY3JvbGxCYXJMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIGJvb2xlYW4gc2Nyb2xsQmFyc1Zpc2libGUgPSBzZXR0aW5ncy5nZXRTY3JvbGxCYXJzVmlzaWJsZSgpOworCisgICAgICAgICAgICBpZiAoc2Nyb2xsQmFyc1Zpc2libGUpIHsKKyAgICAgICAgICAgICAgICBob3J6U2IgPSBuZXcgSlNjcm9sbEJhcihBZGp1c3RhYmxlLkhPUklaT05UQUwpOworICAgICAgICAgICAgICAgIHZlcnRTYiA9IG5ldyBKU2Nyb2xsQmFyKEFkanVzdGFibGUuVkVSVElDQUwpOworICAgICAgICAgICAgICAgIGFkZCgiU291dGgiLCBob3J6U2IpOworICAgICAgICAgICAgICAgIGFkZCgiRWFzdCIsIHZlcnRTYik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUnVuU3RyYXRlZ3kgcnVuU3RyYXRlZ3kgPSBuZXcgUnVuU3RyYXRlZ3koKSB7CisgICAgICAgICAgICB2b2lkIGRvSXQoUnVubmFibGUgcikgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN3aW5nVXRpbGl0aWVzLmludm9rZUFuZFdhaXQocik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgb3BlcmF0aW9uIHdhcyBpbnRlcnJ1cHRlZCwgdGhlbiBjbGllbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsbGVkIHdhaXQgb3Igc2xlZXAgKG9yIHNvbWV0aGluZyBzaW1pbGFyKQorICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBpcyBpbmFwcHJvcHJpYXRlIGZvciBhIGNsaWVudCBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGNsYXNzLiAgUmV0aHJvdyBlcnJvciBhbmQgbGV0IGNsaWVudCBoYW5kbGUgaXQuCisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW50ZXJydXB0ZWQgaW4gUnVuU3RyYXRlZ3k6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdobyBrbm93cyBob3cgdGhpcyBvbmUgaGFwcGVucy4uLgorICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gaW4gUnVuU3RyYXRlZ3k6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmSW1wbCA9IG5ldyBBVGV4dFBhbmVsSW1wbChydW5TdHJhdGVneSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwYm9hcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvcnpTYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydFNiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZpbmFsIEZha2VDb21wb25lbnQgdGV4dENvbXBvbmVudCA9IGZJbXBsLmdldFRleHRDb21wb25lbnQoKTsKKyAgICAgICAgCisgICAgICAgIEpDb21wb25lbnQgdGV4dEhvc3QgPSBuZXcgSkNvbXBvbmVudCgpIHsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnNldEhvc3QodGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhZGROb3RpZnkoKSB7CisgICAgICAgICAgICAgICAgc3VwZXIuYWRkTm90aWZ5KCk7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5hZGROb3RpZnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnBhaW50KGcpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgYWRkKCJDZW50ZXIiLCB0ZXh0SG9zdCk7CisKKyAgICAgICAgdGV4dEhvc3QucmVxdWVzdEZvY3VzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciB0byB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBKVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmSW1wbC5hZGRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciBmcm9tIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIEpUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZJbXBsLnJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBUZXh0IEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIEpUZXh0UGFuZWwuICBJdCBkb2VzIG5vdCBtb2RpZnkgb3IgYWRvcHQKKyAgICAgKiA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBtZXRob2Qgc2V0cyB0aGUgc2VsZWN0aW9uIGFuIGluc2VydGlvbiBwb2ludCBhdAorICAgICAqIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBmSW1wbC5zZXRUZXh0KG5ld1RleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+aW5zZXJ0KG5ld1RleHQsIGdldFRleHRMZW5ndGgoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGRvY3VtZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIGZJbXBsLmFwcGVuZChuZXdUZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnNlcnQgdGhlIGdpdmVuIHRleHQgaW50byB0aGUgZG9jdW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+cmVwbGFjZVJhbmdlKG5ld1RleHQsIHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBpbnNlcnQgaW50byB0aGUgZG9jdW1lbnQuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQgd2hlcmUgdGhlCisgICAgICogICAgIHRleHQgd2lsbCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluc2VydChNQ29uc3RUZXh0IG5ld1RleHQsIGludCBwb3NpdGlvbikgeworCisgICAgICAgIGZJbXBsLmluc2VydChuZXdUZXh0LCBwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCA8dHQ+bmV3VGV4dDwvdHQ+LiAgQWZ0ZXIgdGhpcworICAgICAqIG9wZXJhdGlvbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdpdGggd2hpY2ggdG8gcmVwbGFjZSB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShNQ29uc3RUZXh0IG5ld1RleHQsIGludCBzdGFydCwgaW50IGVuZCkgeworCisgICAgICAgIGZJbXBsLnJlcGxhY2VSYW5nZShuZXdUZXh0LCBzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgSlRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRleHRMZW5ndGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRleHRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgSlRleHRQYW5lbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRUZXh0KCk7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gU2VsZWN0aW9uIEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCBzZWxlY3Rpb25TdGFydCkgeworCisgICAgICAgIGZJbXBsLnNldFNlbGVjdGlvblN0YXJ0KHNlbGVjdGlvblN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChnZXRTZWxlY3Rpb25TdGFydCgpLCBzZWxlY3Rpb25FbmQpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvbkVuZCB0aGUgZW5kIG9mIHRoZSBuZXcgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uRW5kKGludCBzZWxlY3Rpb25FbmQpIHsKKworICAgICAgICBmSW1wbC5zZXRTZWxlY3Rpb25FbmQoc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlIGdpdmVuCisgICAgICogb2Zmc2V0LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPHR0PnNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBvZmZzZXQgb2YgdGhlIG5ldyBpbnNlcnRpb24gcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXJldFBvc2l0aW9uKGludCBwb3NpdGlvbikgeworCisgICAgICAgIGZJbXBsLnNldENhcmV0UG9zaXRpb24ocG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIHRoZSBnaXZlbiByYW5nZS4gIFRoZSByYW5nZSBzdGFydAorICAgICAqIGlzIHBpbm5lZCBiZXR3ZWVuIDAgYW5kIHRoZSB0ZXh0IGxlbmd0aDsgIHRoZSByYW5nZSBlbmQgaXMgcGlubmVkCisgICAgICogYmV0d2VlbiB0aGUgcmFuZ2Ugc3RhcnQgYW5kIHRoZSBlbmQgb2YgdGhlIHRleHQuICBUaGVzZSBzZW1hbnRpY3MKKyAgICAgKiBhcmUgaWRlbnRpY2FsIHRvIHRob3NlIG9mIDx0dD5qYXZhLmF3dC5UZXh0Q29tcG9uZW50PC90dD4uCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICogQHBhcmFtIHNlbGVjdGlvbkVuZCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgZkltcGwuc2VsZWN0KHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbGVjdCBhbGwgb2YgdGhlIHRleHQgaW4gdGhlIGRvY3VtZW50LiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdEFsbCgpIHsKKworICAgICAgICBmSW1wbC5zZWxlY3RBbGwoKTsKKyAgICB9CisKKworLy89PT09PT09PT09PT0KKy8vIEZvcm1hdCBXaWR0aAorLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdG90YWwgZm9ybWF0IHdpZHRoLCBpbiBwaXhlbHMuICBUaGUgZm9ybWF0IHdpZHRoIGlzIHRoZQorICAgICAqIHdpZHRoIHRvIHdoaWNoIHRleHQgaXMgd3JhcHBlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXQgd2lkdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvcm1hdFdpZHRoKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRGb3JtYXRXaWR0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGluIHRoZSB0ZXh0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuVW5kbygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2FuVW5kbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuUmVkbygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2FuUmVkbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgY29udGFpbnMgY29udGVudHMgd2hpY2ggY291bGQgYmUKKyAgICAgKiB0cmFuc2ZlcmVkIGludG8gdGhlIHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgaGFzIHRleHQgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlwYm9hcmROb3RFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2xpcGJvYXJkTm90RW1wdHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGtleXMgd2l0aCBkZWZhdWx0IHZhbHVlcy4gIFRoZSBkZWZhdWx0CisgICAgICogdmFsdWVzIGFyZSB1c2VkIHdoZW4gZGlzcGxheWluZyB0ZXh0IGZvciB2YWx1ZXMgd2hpY2ggYXJlIG5vdAorICAgICAqIHNwZWNpZmllZCBpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IGtleS12YWx1ZSBwYWlycworICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIGRpZmZlcmVudCAKKyAgICAgKiB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlIE1UZXh0UGFuZWwjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBwYXJhZ3JhcGggc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIAorICAgICAqIGRpZmZlcmVudCB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlIE1UZXh0UGFuZWwjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCBhbmQgcGxhY2UgaXQKKyAgICAgKiBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dAorICAgICAqIGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjdXQoKSB7CisgICAgICAgIGZJbXBsLmN1dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBsYWNlIHRoZSBzZWxlY3RlZCB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMKKyAgICAgKiBubyBlZmZlY3QgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5KCkgeworICAgICAgICBmSW1wbC5jb3B5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHQgd2l0aCB0aGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubworICAgICAqIHRleHQgaXMgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXN0ZSgpIHsKKyAgICAgICAgZkltcGwucGFzdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCwgd2l0aG91dCBhbHRlcmluZyB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlCisgICAgICogdGV4dCBpcyBub3QgZWRpdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIGZJbXBsLmNsZWFyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5kbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHVuZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgdW5kbygpIHsKKyAgICAgICAgZkltcGwudW5kbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byByZWRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlZG8oKSB7CisgICAgICAgIGZJbXBsLnJlZG8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldENvbW1hbmRMb2dTaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLiAgQWxsCisgICAgICogcmVkb2FibGUgY29tbWFuZHMgYXJlIHJlbW92ZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBjb21tYW5kcyBrZXB0IGluIHRoZSBjb21tYW5kIGxvZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbW1hbmRMb2dTaXplKGludCBzaXplKSB7CisgICAgICAgIGZJbXBsLnNldENvbW1hbmRMb2dTaXplKHNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSB0aGUgY29tbWFuZCBsb2cuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXJDb21tYW5kTG9nKCkgeworICAgICAgICBmSW1wbC5jbGVhckNvbW1hbmRMb2coKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIGNoYXJhY3RlciBzdHlsZXMgb24gdGhlIHNlbGVjdGVkIGNoYXJhY3RlcnMuICBJZiBubyBjaGFyYWN0ZXJzCisgICAgICogYXJlIHNlbGVjdGVkLCBtb2RpZnkgdGhlIHR5cGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmSW1wbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocyBjb250YWluaW5nIHNlbGVjdGVkIGNoYXJhY3RlcnMsIG9yCisgICAgICogdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZkltcGwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBLZXlSZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cy4KKyAgICAgKiBAcmV0dXJuIHRoZSBrZXkgcmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMKKyAgICAgKiBAc2VlICNzZXRLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyBLZXlSZW1hcCBnZXRLZXlSZW1hcCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0S2V5UmVtYXAoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2UgdGhlIGdpdmVuIEtleVJlbWFwIHRvIG1hcCBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMuCisgICAgICogT25seSBrZXkKKyAgICAgKiBldmVudHMgYXJlIGFmZmVjdGVkIGJ5IHRoZSByZW1hcDsgIG90aGVyIHRleHQgZW50ZXJpbmcgdGhlCisgICAgICogY29udHJvbCAodmlhIHRoZSBjbGlwYm9hcmQsIGZvciBleGFtcGxlKSBpcyBub3QgYWZmZWN0ZWQKKyAgICAgKiBieSB0aGUgS2V5UmVtYXAuCisgICAgICogPHA+CisgICAgICogRG8gbm90IHBhc3MgPHR0Pm51bGw8L3R0PiB0byB0aGlzIG1ldGhvZCB0byBsZWF2ZSBrZXkKKyAgICAgKiBldmVudHMgdW5tYXBwZWQuICBJbnN0ZWFkLCB1c2UgPHR0PktleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKTwvdHQ+CisgICAgICogQHBhcmFtIHJlbWFwIHRoZSBLZXlSZW1hcCB0byB1c2UgZm9yIG1hcHBpbmcga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgcGFyYW1ldGVyIGlzIG51bGwKKyAgICAgKiBAc2VlIEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBmSW1wbC5zZXRLZXlSZW1hcChyZW1hcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKiBAc2VlICNzZXRNb2RpZmllZAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmlzTW9kaWZpZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBmb3IgS2V5RXZlbnRGb3J3YXJkZXIncyB1c2Ugb25seSEKKyAgICAgKi8KKyAgICBBVGV4dFBhbmVsSW1wbCBnZXRJbXBsKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEJhY2tncm91bmQoQ29sb3IgY29sb3IpIHsKKyAgICAgICAgc3VwZXIuc2V0QmFja2dyb3VuZCAoY29sb3IpOworICAgICAgICBqYXZhLmF3dC5Db21wb25lbnRbXSBjb21wTGlzdCA9IGdldENvbXBvbmVudHMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb21wTGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCEoY29tcExpc3RbaV0gaW5zdGFuY2VvZiBKU2Nyb2xsQmFyKSkgeworICAgICAgICAgICAgICAgIGNvbXBMaXN0W2ldLnNldEJhY2tncm91bmQgKGNvbG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9LZXlFdmVudEZvcndhcmRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleUV2ZW50Rm9yd2FyZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTFjODJhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9LZXlFdmVudEZvcndhcmRlci5qYXZhCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBmb3J3YXJkcyBrZXkgZXZlbnRzIHRvIGEgVGV4dFBhbmVsIGNvbXBvbmVudCBmb3IKKyAqIHRlc3RpbmcgcHVycG9zZXMuCisgKiBJdHMgc29sZSByZWFzb24gZm9yIGV4aXN0ZW5jZSBpcyB0byBwcmV2ZW50IHRoZSBrZXktZXZlbnQKKyAqIEFQSSBmcm9tIGJlaW5nIHB1YmxpYyBvbiBNVGV4dFBhbmVsLCBhbmQgYmVpbmcgbWlzdGFrZW4gZm9yCisgKiBzdGFuZGFyZCBBUEkuICBUaGlzIGNsYXNzIGlzIG9ubHkgZm9yIHRlc3RpbmchICBJdCBtYXkgYmUKKyAqIHJlbW92ZWQgZnJvbSBwdWJsaWMgQVBJIGF0IGFueSB0aW1lLiAgRG8gbm90IGRlcGVuZCBvbiB0aGlzCisgKiBjbGFzcy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEtleUV2ZW50Rm9yd2FyZGVyIHsKKworICAgIHByaXZhdGUgQVRleHRQYW5lbEltcGwgZlBhbmVsSW1wbDsKKworICAgIHB1YmxpYyBLZXlFdmVudEZvcndhcmRlcihUZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgZlBhbmVsSW1wbCA9IHRleHRQYW5lbC5nZXRJbXBsKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBLZXlFdmVudEZvcndhcmRlcihKVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgIAorICAgICAgICBmUGFuZWxJbXBsID0gdGV4dFBhbmVsLmdldEltcGwoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVLZXlFdmVudChLZXlFdmVudCBrZXlFdmVudCkgeworCisgICAgICAgIGZQYW5lbEltcGwuaGFuZGxlS2V5RXZlbnQoa2V5RXZlbnQpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5UmVtYXAuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9LZXlSZW1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxYzNjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5UmVtYXAuamF2YQpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworLyoqCisgKiBLZXlSZW1hcCBtYXBzIGtleXMgb24gYSBzdGFuZGFyZCBVUyBrZXlib2FyZCB0byBjaGFyYWN0ZXJzCisgKiBpbiBvdGhlciBhbHBoYWJldHMuICBDdXJyZW50bHksIG1hcHBpbmdzIHRvIEFyYWJpYywgSGVicmV3CisgKiBhbmQgVGhhaSBhcmUgc3VwcG9ydGVkLiAgSW4gdGhlIGZ1dHVyZSwgY2xpZW50cyBtYXkgYmUKKyAqIHRvIGRlZmluZSB0aGVpciBvd24gbWFwcGluZ3MgYnkgc3ViY2xhc3NpbmcgdGhpcyBjbGFzcy4KKyAqIDxQPgorICogQHNlZSBUZXh0UGFuZWwjc2V0S2V5UmVtYXAKKyAqLworCitwdWJsaWMgY2xhc3MgS2V5UmVtYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgS2V5UmVtYXAuCisgICAgICovCisgICAgcHJvdGVjdGVkIEtleVJlbWFwKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkCisgICAgICogd2hpY2ggaXMgKG1vc3QgbGlrZWx5KSBnZW5lcmF0ZWQgYnkgdHlwaW5nIHRoZSBjaGFyYWN0ZXIgYworICAgICAqIG9uIHRoZSBhY3R1YWwga2V5Ym9hcmQuICBGb3IgZ3JlYXRlciBhY2N1cmFjeSwgdXNlIHRoZSByZW1hcAorICAgICAqIG1ldGhvZCB3aGljaCB0YWtlcyBhIEtleUV2ZW50LCBzaW5jZSBpdCBjYW4gdGFrZSBtb2RpZmllcgorICAgICAqIGtleXMgaW50byBhY2NvdW50LgorICAgICAqIEBhcmcgYyBhIGNoYXJhY3RlciBvbiB0aGUgYWN0dWFsIGtleWJvYXJkCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIG9uIHRoZSBzaW11bGF0ZWQga2V5Ym9hcmQgd2hpY2ggd291bGQKKyAgICAgKiAgICAgICAgIHJlc3VsdCBmcm9tIHRoZSBrZXkgY29tYmluYXRpb24gd2hpY2ggcHJvZHVjZWQgdGhlCisgICAgICogICAgICAgICBnaXZlbiBjaGFyYWN0ZXIgb24gdGhlIGFjdHVhbCBrZXlib2FyZAorICAgICAqLworICAgIC8qcHVibGljKi8gY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkCisgICAgICogd2hpY2gga2V5RXZlbnQgZ2VuZXJhdGVzLgorICAgICAqIEBhcmcga2V5RXZlbnQgYSBrZXkgZXZlbnQgZnJvbSB0aGUgYWN0dWFsIGtleWJvYXJkCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIG9uIHRoZSBzaW11bGF0ZWQga2V5Ym9hcmQgZ2VuZXJhdGVkIGJ5CisgICAgICogICAgICAgICBrZXlFdmVudAorICAgICAqLworICAgIC8qcHVibGljKi8gY2hhciByZW1hcChLZXlFdmVudCBrZXlFdmVudCkgeworCisgICAgICAgIHJldHVybiByZW1hcChrZXlFdmVudC5nZXRLZXlDaGFyKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIElERU5USVRZID0gbmV3IEtleVJlbWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgS2V5UmVtYXAgQVJBQklDX1RSQU5TTElURVJBVElPTiA9IG5ldyBBcmFiaWNUcmFuc2xpdGVyYXRpb24oKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBLZXlSZW1hcCBIRUJSRVdfVFJBTlNMSVRFUkFUSU9OID0gbmV3IEhlYnJld1RyYW5zbGl0ZXJhdGlvbigpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIElTUkFFTF9OSUtVRCA9IG5ldyBJc3JhZWxOaWt1ZEtleWJvYXJkKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgS2V5UmVtYXAgVEhBSSA9IG5ldyBUaGFpS2V5UmVtYXAoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMgZXZlcnkgY2hhcmFjdGVyIHRvIGl0c2VsZi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEtleVJlbWFwIGdldElkZW50aXR5UmVtYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIElERU5USVRZOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMga2V5cyB0bworICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIEFyYWJpYyBhbHBoYWJldCwgdXNpbmcgYSBzaW1wbGUgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCkgeworCisgICAgICAgIHJldHVybiBBUkFCSUNfVFJBTlNMSVRFUkFUSU9OOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMga2V5cyB0bworICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIEhlYnJldyBhbHBoYWJldCwgdXNpbmcgYSBzaW1wbGUgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0SGVicmV3VHJhbnNsaXRlcmF0aW9uKCkgeworCisgICAgICAgIHJldHVybiBIRUJSRVdfVFJBTlNMSVRFUkFUSU9OOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIGVtdWxhdGVzIGEgc3RhbmRhcmQgSGVicmV3IGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0SXNyYWVsTmlrdWQoKSB7CisKKyAgICAgICAgcmV0dXJuIElTUkFFTF9OSUtVRDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgS2V5UmVtYXAgd2hpY2ggZW11bGF0ZXMgYSBUaGFpIEtldG1hbmVlIGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0VGhhaUtldG1hbmVlKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFRIQUk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL01UZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9NVGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWFiMTg0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9NVGV4dFBhbmVsLmphdmEKQEAgLTAsMCArMSwzNzMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKKy8qKgorICogTVRleHRQYW5lbCBpcyBpbXBsZW1lbnRlZCBieSBDb21wb25lbnRzIHdoaWNoIHByb3ZpZGUgc2VsZWN0YWJsZQorICogZWRpdGFibGUgc3R5bGVkIHRleHQuCisgKiA8cD4KKyAqIEltcGxlbWVudGF0aW9ucyBvZiBNVGV4dFBhbmVsIHByb3ZpZGUgYSBzaW1wbGUsIHN0YW5kYXJkIHVzZXIgaW50ZXJmYWNlCisgKiBmb3IgdGV4dCBlZGl0aW5nLiAgTVRleHRQYW5lbCBzdXBwbGllcyBzY3JvbGxhYmxlIGRpc3BsYXksIHR5cGluZywgCisgKiBhcnJvdy1rZXkgc3VwcG9ydCwgY2hhcmFjdGVyIHNlbGVjdGlvbiwgd29yZC0KKyAqIGFuZCBzZW50ZW5jZS1zZWxlY3Rpb24gKGJ5IGRvdWJsZS1jbGlja2luZyBhbmQgdHJpcGxlLWNsaWNraW5nLCAKKyAqIHJlc3BlY3RpdmVseSksIHRleHQgc3R5bGVzLCBjbGlwYm9hcmQgb3BlcmF0aW9ucyAoY3V0LCBjb3B5IGFuZCBwYXN0ZSkKKyAqIGFuZCBhIGxvZyBvZiBjaGFuZ2VzIGZvciB1bmRvLXJlZG8uCisgKiA8cD4KKyAqIE1UZXh0UGFuZWwgaW1wbGVtZW50YXRpb25zIGRvIG5vdCBwcm92aWRlIHVzZXIgaW50ZXJmYWNlIGVsZW1lbnRzCisgKiBzdWNoIGFzIGFuIGVkaXQgbWVudSBvciBzdHlsZSBtZW51LiAgVGhpcyBzdXBwb3J0IGlzIHByb3ZpZGVkIGluCisgKiBkaWZmZXJlbnQgcGFja2FnZXMsIGFuZCBpcyBpbXBsZW1lbnRlZCB3aXRoIE1UZXh0UGFuZWwncyBBUEkuCisgKiBNVGV4dFBhbmVsIGluY2x1ZGVzIG1ldGhvZHMgZm9yIHNldHRpbmcgc2VsZWN0aW9ucyBhbmQgc3R5bGVzIG9uIHRleHQsCisgKiBhbmQgdXNpbmcgdGhlIGNsaXBib2FyZCBhbmQgY29tbWFuZC1sb2cgZnVuY3Rpb25hbGl0eS4KKyAqIE1UZXh0UGFuZWwncyBBUEkgZm9yIHNlbGVjdGlvbiBhbmQgdGV4dCBoYW5kbGluZyBpcyBzaW1pbGFyIHRvIHRoYXQKKyAqIG9mIDx0dD5qYXZhLmF3dC5UZXh0QXJlYTwvdHQ+IGFuZAorICogPHR0PmphdmEuYXd0LlRleHRDb21wb25lbnQ8L3R0Pi4KKyAqIDxwPgorICogTVRleHRQYW5lbCBzdXBwb3J0cyBiaWRpcmVjdGlvbmFsIGFuZCBjb21wbGV4IHRleHQuICBJbiBiaWRpcmVjdGlvbmFsCisgKiB0ZXh0LCBvZmZzZXRzIGF0IGRpcmVjdGlvbiBib3VuZGFyaWVzIGhhdmUgZHVhbCBjYXJldHMuICBMb2dpY2FsIHNlbGVjdGlvbgorICogaXMgdXNlZCwgc28gc2VsZWN0aW9ucyBhY3Jvc3MgcnVuIGRpcmVjdGlvbnMgbWF5IG5vdCBiZSBjb250aWd1b3VzIGluCisgKiBkaXNwbGF5LgorICovCitwdWJsaWMgaW50ZXJmYWNlIE1UZXh0UGFuZWwgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHZhbHVlIGlzIHJldHVybmVkIGZyb20gPHR0PmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbjwvdHQ+CisgICAgICogYW5kIDx0dD5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb248L3R0PiB0byBpbmRpY2F0ZSB0aGF0IHRoZQorICAgICAqIHNlbGVjdGlvbiByYW5nZSBjb250YWlucyBtdWx0aXBsZSB2YWx1ZXMgZm9yIGEga2V5LgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIHJlYXNvbiBmb3IgdGhpcyBPYmplY3QgZXZlciB0byBhcHBlYXIgaW4gYW4gQXR0cmlidXRlTWFwCisgICAgICogYXMgYSB2YWx1ZS4gIE9idmlvdXNseSwgaWYgaXQgZG9lcyB0aGVyZSB3aWxsIGJlIG5vIHdheSB0byBkaXN0aW5ndWlzaAorICAgICAqIGJldHdlZW4gbXVsdGlwbGUgdmFsdWVzIGFjcm9zcyB0aGUgc2VsZWN0aW9uIGFuZCBhIGNvbnNpc3RlbnQgdmFsdWUgb2YKKyAgICAgKiA8dHQ+TVVMVElQTEVfVkFMVUVTPC90dD4gZm9yIHRoZSBrZXkuCisgICAgICogQHNlZSAjZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uCisgICAgICogQHNlZSAjZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTVVMVElQTEVfVkFMVUVTID0gbmV3IE9iamVjdCgpOworICAgIAorICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKTsKKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBNVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkb2N1bWVudCB0byA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBvcGVyYXRpb24KKyAgICAgKiBtb2RpZmllcyB0aGUgdGV4dCBpbiB0aGUgTVRleHRQYW5lbC4gIEl0IGRvZXMgbm90IG1vZGlmeSBvciBhZG9wdAorICAgICAqIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG1ldGhvZCBzZXRzIHRoZSBzZWxlY3Rpb24gYW4gaW5zZXJ0aW9uIHBvaW50IGF0CisgICAgICogdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aGljaCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCk7CisgICAgCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBnaXZlbiB0ZXh0IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiAgRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5pbnNlcnQobmV3VGV4dCwgZ2V0VGV4dExlbmd0aCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGFwcGVuZCB0byB0aGUgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmQoTUNvbnN0VGV4dCBuZXdUZXh0KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnNlcnQgdGhlIGdpdmVuIHRleHQgaW50byB0aGUgZG9jdW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+cmVwbGFjZVJhbmdlKG5ld1RleHQsIHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBpbnNlcnQgaW50byB0aGUgZG9jdW1lbnQuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQgd2hlcmUgdGhlCisgICAgICogICAgIHRleHQgd2lsbCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluc2VydChNQ29uc3RUZXh0IG5ld1RleHQsIGludCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBnaXZlbiByYW5nZSB3aXRoIDx0dD5uZXdUZXh0PC90dD4uICBBZnRlciB0aGlzCisgICAgICogb3BlcmF0aW9uIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZQorICAgICAqIGVuZCBvZiB0aGUgbmV3IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2l0aCB3aGljaCB0byByZXBsYWNlIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICogQHBhcmFtIGVuZCB0aGUgZW5kIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZVJhbmdlKE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBNVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgTVRleHRQYW5lbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dExlbmd0aCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBNVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIE1UZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpOworICAgIAorLy89PT09PT09PT09PT0KKy8vIFNlbGVjdGlvbiBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCBzZWxlY3Rpb25TdGFydCk7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlIGdpdmVuCisgICAgICogb2Zmc2V0LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPHR0PnNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBvZmZzZXQgb2YgdGhlIG5ldyBpbnNlcnRpb24gcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXJldFBvc2l0aW9uKGludCBwb3NpdGlvbik7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gdGhlIGdpdmVuIHJhbmdlLiAgVGhlIHJhbmdlIHN0YXJ0CisgICAgICogaXMgcGlubmVkIGJldHdlZW4gMCBhbmQgdGhlIHRleHQgbGVuZ3RoOyAgdGhlIHJhbmdlIGVuZCBpcyBwaW5uZWQKKyAgICAgKiBiZXR3ZWVuIHRoZSByYW5nZSBzdGFydCBhbmQgdGhlIGVuZCBvZiB0aGUgdGV4dC4gIFRoZXNlIHNlbWFudGljcworICAgICAqIGFyZSBpZGVudGljYWwgdG8gdGhvc2Ugb2YgPHR0PmphdmEuYXd0LlRleHRDb21wb25lbnQ8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uRW5kIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc2VsZWN0aW9uU3RhcnQsIGludCBzZWxlY3Rpb25FbmQpOworICAgIAorICAgIC8qKgorICAgICAqIFNlbGVjdCBhbGwgb2YgdGhlIHRleHQgaW4gdGhlIGRvY3VtZW50LiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdEFsbCgpOworICAgIAorCisvLz09PT09PT09PT09PQorLy8gRm9ybWF0IFdpZHRoCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0b3RhbCBmb3JtYXQgd2lkdGgsIGluIHBpeGVscy4gIFRoZSBmb3JtYXQgd2lkdGggaXMgdGhlCisgICAgICogd2lkdGggdG8gd2hpY2ggdGV4dCBpcyB3cmFwcGVkLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdCB3aWR0aAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblJlZG8oKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2xpcGJvYXJkIGNvbnRhaW5zIGNvbnRlbnRzIHdoaWNoIGNvdWxkIGJlCisgICAgICogdHJhbnNmZXJlZCBpbnRvIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2xpcGJvYXJkIGhhcyB0ZXh0IGNvbnRlbnQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2xpcGJvYXJkTm90RW1wdHkoKTsKKyAgICAKKworLy89PT09PT09PT09PT0KKy8vIFN0eWxlcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCk7CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IAorICAgICAqIHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgI01VTFRJUExFX1ZBTFVFUworICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpOworICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBwYXJhZ3JhcGggc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIAorICAgICAqIGRpZmZlcmVudCB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlICNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBsYWNlIGl0CisgICAgICogb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQKKyAgICAgKiBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3V0KCk7CisgICAgCisgICAgLyoqCisgICAgICogUGxhY2UgdGhlIHNlbGVjdGVkIHRleHQgb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcworICAgICAqIG5vIGVmZmVjdCBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB3aXRoIHRoZSB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vCisgICAgICogdGV4dCBpcyBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhc3RlKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQsIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZQorICAgICAqIHRleHQgaXMgbm90IGVkaXRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCk7CisgICAgCisgICAgLyoqCisgICAgICogVW5kbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHVuZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgdW5kbygpOworICAgIAorICAgIC8qKgorICAgICAqIFJlZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byByZWRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlZG8oKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuICBBbGwKKyAgICAgKiByZWRvYWJsZSBjb21tYW5kcyBhcmUgcmVtb3ZlZCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIGtlcHQgaW4gdGhlIGNvbW1hbmQgbG9nCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29tbWFuZExvZ1NpemUoaW50IHNpemUpOworICAgIAorICAgIC8qKgorICAgICAqIFJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSB0aGUgY29tbWFuZCBsb2cuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXJDb21tYW5kTG9nKCk7CisgICAgCisgICAgLyoqCisgICAgICogTW9kaWZ5IHRoZSBjaGFyYWN0ZXIgc3R5bGVzIG9uIHRoZSBzZWxlY3RlZCBjaGFyYWN0ZXJzLiAgSWYgbm8gY2hhcmFjdGVycworICAgICAqIGFyZSBzZWxlY3RlZCwgbW9kaWZ5IHRoZSB0eXBpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpOworICAgIAorICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcik7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBLZXlSZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cy4KKyAgICAgKiBAcmV0dXJuIHRoZSBrZXkgcmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMKKyAgICAgKiBAc2VlICNzZXRLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyBLZXlSZW1hcCBnZXRLZXlSZW1hcCgpOworICAgIAorICAgIC8qKgorICAgICAqIFVzZSB0aGUgZ2l2ZW4gS2V5UmVtYXAgdG8gbWFwIGtleSBldmVudHMgdG8gY2hhcmFjdGVycy4KKyAgICAgKiBPbmx5IGtleQorICAgICAqIGV2ZW50cyBhcmUgYWZmZWN0ZWQgYnkgdGhlIHJlbWFwOyAgb3RoZXIgdGV4dCBlbnRlcmluZyB0aGUKKyAgICAgKiBjb250cm9sICh2aWEgdGhlIGNsaXBib2FyZCwgZm9yIGV4YW1wbGUpIGlzIG5vdCBhZmZlY3RlZAorICAgICAqIGJ5IHRoZSBLZXlSZW1hcC4KKyAgICAgKiA8cD4KKyAgICAgKiBEbyBub3QgcGFzcyA8dHQ+bnVsbDwvdHQ+IHRvIHRoaXMgbWV0aG9kIHRvIGxlYXZlIGtleQorICAgICAqIGV2ZW50cyB1bm1hcHBlZC4gIEluc3RlYWQsIHVzZSA8dHQ+S2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpPC90dD4KKyAgICAgKiBAcGFyYW0gcmVtYXAgdGhlIEtleVJlbWFwIHRvIHVzZSBmb3IgbWFwcGluZyBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBwYXJhbWV0ZXIgaXMgbnVsbAorICAgICAqIEBzZWUgS2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRLZXlSZW1hcChLZXlSZW1hcCByZW1hcCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKiBAc2VlICNzZXRNb2RpZmllZAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL09mZnNjcmVlbkJ1ZmZlckNhY2hlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvT2Zmc2NyZWVuQnVmZmVyQ2FjaGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOWM3NmJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL09mZnNjcmVlbkJ1ZmZlckNhY2hlLmphdmEKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5JbWFnZTsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CisKK2NsYXNzIE9mZnNjcmVlbkJ1ZmZlckNhY2hlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBJbWFnZSBmT2Zmc2NyZWVuQnVmZmVyID0gbnVsbDsKKyAgICBwcml2YXRlIENvbXBvbmVudCBmSG9zdDsKKworICAgIE9mZnNjcmVlbkJ1ZmZlckNhY2hlKENvbXBvbmVudCBob3N0KSB7CisKKyAgICAgICAgZkhvc3QgPSBob3N0OworICAgIH0KKworICAgIHByaXZhdGUgSW1hZ2UgbWFrZUJ1ZmZlcihpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKworICAgICAgICByZXR1cm4gZkhvc3QuY3JlYXRlSW1hZ2UoTWF0aC5tYXgod2lkdGgsIDEpLCBNYXRoLm1heChoZWlnaHQsIDEpKTsKKyAgICB9CisKKyAgICBJbWFnZSBnZXRCdWZmZXIoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisKKyAgICAgICAgSW1hZ2UgYnVmZmVyID0gZk9mZnNjcmVlbkJ1ZmZlcjsKKworICAgICAgICBpZiAoYnVmZmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChidWZmZXIuZ2V0V2lkdGgoZkhvc3QpID49IHdpZHRoICYmCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5nZXRIZWlnaHQoZkhvc3QpID49IGhlaWdodCkgeworICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBidWZmZXIgPSBtYWtlQnVmZmVyKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBmT2Zmc2NyZWVuQnVmZmVyID0gYnVmZmVyOworICAgICAgICByZXR1cm4gYnVmZmVyOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUGFuZWxFdmVudEJyb2FkY2FzdGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUGFuZWxFdmVudEJyb2FkY2FzdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2IzYzg0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9QYW5lbEV2ZW50QnJvYWRjYXN0ZXIuamF2YQpAQCAtMCwwICsxLDk4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogVGhpcyBjbGFzcyBsaXN0ZW5zIGZvciB0ZXh0IHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zCisgKiBhbmQgYnJvYWRjYXN0cyB0aGVtIHRvIGFsbCBvZiBpdHMgbGlzdGVuZXJzLgorICovCitmaW5hbCBjbGFzcyBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklSU1QgPSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUOworCisgICAgcHJpdmF0ZSBmaW5hbCBWZWN0b3JbXSBmTGlzdGVuZXJzOworICAgIHByaXZhdGUgZmluYWwgVGV4dFBhbmVsRXZlbnRbXSBmRXZlbnRzOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IFBhbmVsRXZlbnRCcm9hZGNhc3Rlci4KKyAgICAgKiBAcGFyYW0gcGFuZWwgdGhlIFRleHRQYW5lbCBmb3Igd2hpY2ggZXZlbnRzIGFyZSBicm9hZGNhc3RlZAorICAgICAqLworICAgIHB1YmxpYyBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIoTVRleHRQYW5lbCBwYW5lbCkgeworCisgICAgICAgIGludCBjb3VudCA9IFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfTEFTVCAtIEZJUlNUICsgMTsKKworICAgICAgICBmRXZlbnRzID0gbmV3IFRleHRQYW5lbEV2ZW50W2NvdW50XTsKKyAgICAgICAgZkxpc3RlbmVycyA9IG5ldyBWZWN0b3JbY291bnRdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkxpc3RlbmVycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZkV2ZW50c1tpXSA9IG5ldyBUZXh0UGFuZWxFdmVudChwYW5lbCwgaStGSVJTVCk7CisgICAgICAgICAgICBmTGlzdGVuZXJzW2ldID0gbmV3IFZlY3RvcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciB0byB0aGUgVGV4dFBhbmVsTGlzdGVuZXJzIHRvCisgICAgICogd2hpY2ggbm90aWZpY2F0aW9ucyBhcmUgZm9yd2FyZGVkLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZm9yIChpbnQgaT1GSVJTVDsgaSA8PSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0xBU1Q7IGkrKykgeworICAgICAgICAgICAgVmVjdG9yIGxpc3RlbmVycyA9IGZMaXN0ZW5lcnNbaS1GSVJTVF07CisgICAgICAgICAgICBpZiAobGlzdGVuZXIucmVzcG9uZHNUb0V2ZW50VHlwZShpKSkgeworICAgICAgICAgICAgICAgIGlmICghbGlzdGVuZXJzLmNvbnRhaW5zKGxpc3RlbmVyKSkgeworICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuYWRkRWxlbWVudChsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciBmcm9tIHRoZSBUZXh0UGFuZWxMaXN0ZW5lcnMgdG8KKyAgICAgKiB3aGljaCBub3RpZmljYXRpb25zIGFyZSBmb3J3YXJkZWQuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmb3IgKGludCBpPUZJUlNUOyBpIDw9IFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfTEFTVDsgaSsrKSB7CisgICAgICAgICAgICBWZWN0b3IgbGlzdGVuZXJzID0gZkxpc3RlbmVyc1tpLUZJUlNUXTsKKyAgICAgICAgICAgIGlmIChsaXN0ZW5lci5yZXNwb25kc1RvRXZlbnRUeXBlKGkpKSB7CisgICAgICAgICAgICAgICAgbGlzdGVuZXJzLnJlbW92ZUVsZW1lbnQobGlzdGVuZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVjZWl2ZSBhIG5vdGlmaWNhdGlvbiBhbmQgZm9yd2FyZCBpdCB0byBhbGwgbGlzdGVuZXJzLgorICAgICAqIEBjaGFuZ2VDb2RlIG9uZSBvZiB0aGUgY29uc3RhbnRzIGluIHRoZSBUZXh0UGFuZWxMaXN0ZW5lciBjbGFzcworICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCB0ZXh0U3RhdGVDaGFuZ2VkKGludCBpZCkgeworCisgICAgICAgIGludCBpbmRleCA9IGlkLUZJUlNUOworICAgICAgICBUZXh0UGFuZWxFdmVudCBldmVudCA9IGZFdmVudHNbaW5kZXhdOworICAgICAgICBWZWN0b3IgbGlzdGVuZXJzID0gZkxpc3RlbmVyc1tpbmRleF07CisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSA9IGxpc3RlbmVycy5zaXplKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2l6ZTsgaSsrKSB7CisKKyAgICAgICAgICAgIFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVGV4dFBhbmVsTGlzdGVuZXIpIGxpc3RlbmVycy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBsaXN0ZW5lci50ZXh0RXZlbnRPY2N1cnJlZChldmVudCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUnVuU3RyYXRlZ3kuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9SdW5TdHJhdGVneS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjNDcxNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUnVuU3RyYXRlZ3kuamF2YQpAQCAtMCwwICsxLDIwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworY2xhc3MgUnVuU3RyYXRlZ3kgeworICAgIAorICAgIHZvaWQgZG9JdChSdW5uYWJsZSByKSB7CisgICAgICAgIHIucnVuKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxCYXJMYXlvdXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxCYXJMYXlvdXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YjVjOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1Njcm9sbEJhckxheW91dC5qYXZhCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0Lkluc2V0czsKK2ltcG9ydCBqYXZhLmF3dC5MYXlvdXRNYW5hZ2VyOworCitjbGFzcyBTY3JvbGxCYXJMYXlvdXQgaW1wbGVtZW50cyBMYXlvdXRNYW5hZ2VyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgQ29tcG9uZW50ICAgZkhvcml6U2Nyb2xsQmFyID0gbnVsbDsKKyAgICBDb21wb25lbnQgICBmVmVydFNjcm9sbEJhciA9IG51bGw7CisgICAgQ29tcG9uZW50ICAgZkNoaWxkID0gbnVsbDsKKworICAgIHB1YmxpYyBTY3JvbGxCYXJMYXlvdXQoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkTGF5b3V0Q29tcG9uZW50KFN0cmluZyBuYW1lLCBDb21wb25lbnQgY29tcCkgeworCisgICAgICAgIGlmICgiQ2VudGVyIi5lcXVhbHMobmFtZSkpCisgICAgICAgICAgICBmQ2hpbGQgPSBjb21wOworICAgICAgICBlbHNlIGlmICgiU291dGgiLmVxdWFscyhuYW1lKSkKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhciA9IGNvbXA7CisgICAgICAgIGVsc2UgaWYgKCJFYXN0Ii5lcXVhbHMobmFtZSkpCisgICAgICAgICAgICBmVmVydFNjcm9sbEJhciA9IGNvbXA7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbGF5b3V0Q29udGFpbmVyKENvbnRhaW5lciB0YXJnZXQpIHsKKworICAgICAgICBJbnNldHMgICAgICBpbnNldHMgPSB0YXJnZXQuZ2V0SW5zZXRzKCk7CisgICAgICAgIERpbWVuc2lvbiAgIHRhcmdldFNpemUgPSB0YXJnZXQuZ2V0U2l6ZSgpOworICAgICAgICBpbnQgICAgICAgICBoc2JIZWlnaHQgPSAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpID8gZkhvcml6U2Nyb2xsQmFyLmdldFByZWZlcnJlZFNpemUoKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgOiAwOworICAgICAgICBpbnQgICAgICAgICB2c2JXaWR0aCA9IChmVmVydFNjcm9sbEJhciAhPSBudWxsKSA/IGZWZXJ0U2Nyb2xsQmFyLmdldFByZWZlcnJlZFNpemUoKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA6IDA7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKQorICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLnNldEJvdW5kcyhpbnNldHMubGVmdCwgdGFyZ2V0U2l6ZS5oZWlnaHQgLSBpbnNldHMuYm90dG9tIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHNiSGVpZ2h0LCB0YXJnZXRTaXplLndpZHRoIC0gdnNiV2lkdGgsIGhzYkhlaWdodCk7CisKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpCisgICAgICAgICAgICBmVmVydFNjcm9sbEJhci5zZXRCb3VuZHModGFyZ2V0U2l6ZS53aWR0aCAtIGluc2V0cy5yaWdodCAtIHZzYldpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNldHMudG9wLCB2c2JXaWR0aCwgdGFyZ2V0U2l6ZS5oZWlnaHQgLSBoc2JIZWlnaHQpOworCisgICAgICAgIGlmIChmQ2hpbGQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZDaGlsZC5zZXRCb3VuZHMoaW5zZXRzLmxlZnQsIGluc2V0cy50b3AsIHRhcmdldFNpemUud2lkdGggLSBpbnNldHMucmlnaHQgLSB2c2JXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U2l6ZS5oZWlnaHQgLSBpbnNldHMuYm90dG9tIC0gaHNiSGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIG1pbmltdW1MYXlvdXRTaXplKENvbnRhaW5lciB0YXJnZXQpIHsKKworICAgICAgICBEaW1lbnNpb24gICByZXR1cm5WYWwgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICBEaW1lbnNpb24gICBoc2JTaXplOworICAgICAgICBEaW1lbnNpb24gICB2c2JTaXplOworICAgICAgICBEaW1lbnNpb24gICBjaGlsZFNpemU7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsICYmIGZIb3JpelNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgaHNiU2l6ZSA9IGZIb3JpelNjcm9sbEJhci5nZXRNaW5pbXVtU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaHNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCAmJiBmVmVydFNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgdnNiU2l6ZSA9IGZWZXJ0U2Nyb2xsQmFyLmdldE1pbmltdW1TaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2c2JTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmQ2hpbGQgIT0gbnVsbCAmJiBmQ2hpbGQuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIGNoaWxkU2l6ZSA9IGZDaGlsZC5nZXRNaW5pbXVtU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2hpbGRTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVyblZhbC53aWR0aCA9IE1hdGgubWF4KGNoaWxkU2l6ZS53aWR0aCwgaHNiU2l6ZS53aWR0aCkgKyB2c2JTaXplLndpZHRoOworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ID0gTWF0aC5tYXgoY2hpbGRTaXplLmhlaWdodCwgdnNiU2l6ZS5oZWlnaHQpICsgaHNiU2l6ZS5oZWlnaHQ7CisKKyAgICAgICAgSW5zZXRzICBpbnNldHMgPSB0YXJnZXQuZ2V0SW5zZXRzKCk7CisKKyAgICAgICAgcmV0dXJuVmFsLndpZHRoICs9IGluc2V0cy5sZWZ0ICsgaW5zZXRzLnJpZ2h0OworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ICs9IGluc2V0cy50b3AgKyBpbnNldHMuYm90dG9tOworCisgICAgICAgIHJldHVybiByZXR1cm5WYWw7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBwcmVmZXJyZWRMYXlvdXRTaXplKENvbnRhaW5lciB0YXJnZXQpIHsKKworICAgICAgICBEaW1lbnNpb24gICByZXR1cm5WYWwgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICBEaW1lbnNpb24gICBoc2JTaXplOworICAgICAgICBEaW1lbnNpb24gICB2c2JTaXplOworICAgICAgICBEaW1lbnNpb24gICBjaGlsZFNpemU7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsICYmIGZIb3JpelNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgaHNiU2l6ZSA9IGZIb3JpelNjcm9sbEJhci5nZXRQcmVmZXJyZWRTaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBoc2JTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVmVydFNjcm9sbEJhciAhPSBudWxsICYmIGZWZXJ0U2Nyb2xsQmFyLmlzVmlzaWJsZSgpKSB7CisgICAgICAgICAgICB2c2JTaXplID0gZlZlcnRTY3JvbGxCYXIuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdnNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkNoaWxkICE9IG51bGwgJiYgZkNoaWxkLmlzVmlzaWJsZSgpKSB7CisgICAgICAgICAgICBjaGlsZFNpemUgPSBmQ2hpbGQuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2hpbGRTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVyblZhbC53aWR0aCA9IE1hdGgubWF4KGNoaWxkU2l6ZS53aWR0aCwgaHNiU2l6ZS53aWR0aCkgKyB2c2JTaXplLndpZHRoOworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ID0gTWF0aC5tYXgoY2hpbGRTaXplLmhlaWdodCwgdnNiU2l6ZS5oZWlnaHQpICsgaHNiU2l6ZS5oZWlnaHQ7CisKKyAgICAgICAgSW5zZXRzICBpbnNldHMgPSB0YXJnZXQuZ2V0SW5zZXRzKCk7CisKKyAgICAgICAgcmV0dXJuVmFsLndpZHRoICs9IGluc2V0cy5sZWZ0ICsgaW5zZXRzLnJpZ2h0OworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ICs9IGluc2V0cy50b3AgKyBpbnNldHMuYm90dG9tOworCisgICAgICAgIHJldHVybiByZXR1cm5WYWw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGF5b3V0Q29tcG9uZW50KENvbXBvbmVudCBjb21wKSB7CisKKyAgICAgICAgaWYgKGNvbXAgPT0gZkNoaWxkKQorICAgICAgICAgICAgZkNoaWxkID0gbnVsbDsKKyAgICAgICAgZWxzZSBpZiAoY29tcCA9PSBmSG9yaXpTY3JvbGxCYXIpCisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIgPSBudWxsOworICAgICAgICBlbHNlIGlmIChjb21wID09IGZWZXJ0U2Nyb2xsQmFyKQorICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIgPSBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1Njcm9sbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODJjY2IyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxlci5qYXZhCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoKKyAgICA3LzkvOTcgLSBjaGFuZ2VkIHNvbWUgZGVwcmVjYXRlZCBtZXRob2RzIGluIFNjcm9sbGJhcgorICAgICAgICAgICAgQWxzbyBzZXR0aW5nIFVuaXQgYW5kIEJsb2NrIGluY3JlbWVudCB2YWx1ZXMuICBNYXliZQorICAgICAgICAgICAgaXQgbWF0dGVycy4uLgorICAgIDYvMjkvOTggLSByZWltcGxlbWVudGVkIHRoaXMgY2xhc3MuICBOb3cgdGhpcyBjbGFzcyB0YWxrcyB0bworICAgICAgICAgICAgICBhbnkgY29tcG9uZW50IHdoaWNoIGltcGxlbWVudHMgU2Nyb2xsZXIuQ2xpZW50LgorICAgICAgICAgICAgICBTY3JvbGxIb2xkZXIgaXMgZ29uZSwgdG9vLgorICAgIDIvNC85OSAtIE5vIGxvbmdlciBhIFBhbmVsLiAgQWxzbywgZG9lc24ndCBjcmVhdGUgU2Nyb2xsYmFycywKKyAgICAgICAgICAgICBhbmQgaW4gZmFjdCBkb2Vzbid0IGV2ZW4gdXNlIHRoZSBTY3JvbGxiYXIgY2xhc3MKKyAgICAgICAgICAgICBkaXJlY3RseS4KKyovCisKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWRqdXN0bWVudExpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFkanVzdG1lbnRFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5BZGp1c3RhYmxlOworCisvKioKKyogVGhpcyBjbGFzcyBtYW5hZ2VzIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGEgc2Nyb2xsYWJsZSBjbGllbnQKKyogYW5kIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMuICBJdCBjYWxscyB0aGUgY2xpZW50J3MKKyogc2Nyb2xsVG8gbWV0aG9kIGluIHJlc3BvbnNlIHRvIG1hbmlwdWxhdGlvbiBvZiB0aGUgc2Nyb2xsIGJhcnMuCisqCisqIFRoaXMgY2xhc3MgdXNlZCB0byBiZSBhIFBhbmVsIGNvbnRhaW5pbmcgdGhlIHNjcm9sbGJhcnMgYW5kCisqIHRoZSBjbGllbnQgcGFuZWwuICBBcyBwYXJ0IG9mIHRoZSBtaWdyYXRpb24gYXdheSBmcm9tIGRpcmVjdAorKiBBV1QgZGVwZW5kZW5jaWVzLCB0aGlzIGNsYXNzIGlzIG5vIGxvbmdlciBwYXJ0IG9mIHRoZSB2aWV3CisqIGhpZXJhcmNoeS4gIEluc3RlYWQgaXQgc2ltcGx5IGtlZXBzIGEgcmVmZXJlbmNlIHRvIGl0cworKiBjbGllbnQgYW5kIHNjcm9sbCBiYXJzLiAgSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIGhpZ2hlci0KKyogbGV2ZWwgY2xhc3NlcyB0byBzZXQgdXAgdGhlIHZpZXcgaGllcmFyY2h5LgorKi8KK2ZpbmFsIGNsYXNzIFNjcm9sbGVyIGltcGxlbWVudHMgQWRqdXN0bWVudExpc3RlbmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHN0YXRpYyBpbnRlcmZhY2UgQ2xpZW50IHsKKyAgICAgICAgdm9pZCBzY3JvbGxUbyhpbnQgeCwgaW50IHkpOworICAgICAgICBSZWN0YW5nbGUgZ2V0U2Nyb2xsU2l6ZSgpOworICAgICAgICBSZWN0YW5nbGUgZ2V0Qm91bmRzKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBBZGp1c3RhYmxlIGZIb3JpelNjcm9sbEJhciA9IG51bGw7CisgICAgcHJpdmF0ZSBBZGp1c3RhYmxlIGZWZXJ0U2Nyb2xsQmFyID0gbnVsbDsKKyAgICBwcml2YXRlIENsaWVudCBmQ2xpZW50ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZXNlIGFyZSB1c2VkIGlmIHRoZSByZXNwZWN0aXZlIFNjcm9sbGJhciBpcyBub3QgcHJlc2VudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBmSG9yaXpWYWx1ZSwgZlZlcnRWYWx1ZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX1VOSVRfSU5DID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgU2Nyb2xsZXIgd2l0aCB0aGUgZ2l2ZW4gQWRqdXN0YWJsZXMsCisgICAgICogd2hpY2ggcmVhbGx5IHNob3VsZCBiZSBzY3JvbGxiYXJzIG9mIHNvbWUgaWxrLgorICAgICAqIEFsc28sIHRoZSBBZGp1c3RhYmxlcyBhcmUgcmVxdWlyZWQgdG8gYmUgQVdUIENvbXBvbmVudHMsCisgICAgICogc28gdGhlIFNjcm9sbGVyIGNhbiBlbmFibGUgYW5kIGRpc2FibGUgdGhlbS4KKyAgICAgKiBIb3dldmVyLCBhIFNjcm9sbGVyIGNhbiB3b3JrIHdpdGggZWl0aGVyIEFXVCBTY3JvbGxiYXJzCisgICAgICogb3IgSkZDIEpTY3JvbGxiYXJzLgorICAgICAqIEBwYXJhbSBob3JpelNjcm9sbEJhciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIuICBudWxsIGlmCisgICAgICogdGhlcmUgaXMgbm8gaG9yaXpvbnRhbCBzY3JvbGxiYXIuCisgICAgICogQHBhcmFtIHZlcnRTY3JvbGxCYXIgdGhlIHZlcnRpY2FsIHNjcm9sbGJhci4gIG51bGwgaWYKKyAgICAgKiB0aGVyZSBpcyBubyB2ZXJ0aWNhbCBzY3JvbGxiYXIuCisgICAgICovCisgICAgcHVibGljIFNjcm9sbGVyKEFkanVzdGFibGUgaG9yaXpTY3JvbGxCYXIsCisgICAgICAgICAgICAgICAgICAgIEFkanVzdGFibGUgdmVydFNjcm9sbEJhcikgeworCisgICAgICAgIC8vc2V0TGF5b3V0KG5ldyBTY3JvbGxCYXJMYXlvdXQoKSk7CisKKyAgICAgICAgZkhvcml6U2Nyb2xsQmFyID0gaG9yaXpTY3JvbGxCYXI7CisgICAgICAgIGZWZXJ0U2Nyb2xsQmFyID0gdmVydFNjcm9sbEJhcjsKKworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChERUZBVUxUX1VOSVRfSU5DKTsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLmFkZEFkanVzdG1lbnRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRVbml0SW5jcmVtZW50KERFRkFVTFRfVU5JVF9JTkMpOworICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLmFkZEFkanVzdG1lbnRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldENsaWVudChDbGllbnQgY2xpZW50KSB7CisKKyAgICAgICAgZkNsaWVudCA9IGNsaWVudDsKKyAgICAgICAgY2xpZW50U2Nyb2xsU2l6ZUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGp1c3RtZW50VmFsdWVDaGFuZ2VkKEFkanVzdG1lbnRFdmVudCBldmVudCkgeworCisgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGJvb2xlYW4gaG9yaXpvbnRhbDsKKyAgICAgICAgaWYgKGV2ZW50LmdldEFkanVzdGFibGUoKSA9PSBmSG9yaXpTY3JvbGxCYXIpIHsKKyAgICAgICAgICAgIGludCB2ZXJ0VmFsID0gZlZlcnRTY3JvbGxCYXIgPT0gbnVsbD8gZlZlcnRWYWx1ZSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgIHNjcm9sbFRvKGV2ZW50LmdldFZhbHVlKCksIHZlcnRWYWwpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGhvcml6VmFsID0gZkhvcml6U2Nyb2xsQmFyID09IG51bGw/IGZIb3JpelZhbHVlIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgIHNjcm9sbFRvKGhvcml6VmFsLCBldmVudC5nZXRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRWYWx1ZXMoQWRqdXN0YWJsZSBzY3JvbGxiYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW5pbXVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCkgeworCisgICAgICAgIGludCBtYXhpbXVtID0gbWluaW11bStoZWlnaHQ7CisgICAgICAgIAorICAgICAgICBpZiAoc2Nyb2xsYmFyICE9IG51bGwpIHsKKworICAgICAgICAgICAgQ29tcG9uZW50IHNjcm9sbGJhclRvbyA9IChDb21wb25lbnQpIHNjcm9sbGJhcjsKKworICAgICAgICAgICAgaWYgKG1heGltdW0gPD0gdmlzaWJsZSkgeworICAgICAgICAgICAgICAgIHNjcm9sbGJhclRvby5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNjcm9sbGJhclRvby5zZXRFbmFibGVkKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBzY3JvbGxiYXIuc2V0TWluaW11bShtaW5pbXVtKTsKKyAgICAgICAgICAgIHNjcm9sbGJhci5zZXRNYXhpbXVtKG1heGltdW0pOworICAgICAgICAgICAgc2Nyb2xsYmFyLnNldFZpc2libGVBbW91bnQodmlzaWJsZSk7CisgICAgICAgIC8vIHdvcmthcm91bmQgc2V0QmxvY2tJbmNyZW1lbnQgd2FybmluZ3MgZm9yIGluY3JlbWVudHMgPCAxCisgICAgICAgIHNjcm9sbGJhci5zZXRCbG9ja0luY3JlbWVudChNYXRoLm1heCgxLCB2aXNpYmxlIC0gREVGQVVMVF9VTklUX0lOQykpOworICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBjbGllbnRTY3JvbGxTaXplQ2hhbmdlZCgpCisgICAgeworICAgICAgICBSZWN0YW5nbGUgYm91bmRzID0gZkNsaWVudC5nZXRCb3VuZHMoKTsKKyAgICAgICAgUmVjdGFuZ2xlIHByZWZlcnJlZFNpemUgPSBmQ2xpZW50LmdldFNjcm9sbFNpemUoKTsKKworICAgICAgICBzZXRWYWx1ZXMoZkhvcml6U2Nyb2xsQmFyLCBib3VuZHMud2lkdGgsIHByZWZlcnJlZFNpemUueCwgcHJlZmVycmVkU2l6ZS53aWR0aCk7CisgICAgICAgIHNldFZhbHVlcyhmVmVydFNjcm9sbEJhciwgYm91bmRzLmhlaWdodCwgcHJlZmVycmVkU2l6ZS55LCBwcmVmZXJyZWRTaXplLmhlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpb24oaW50IHgsIGludCB5KSB7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0VmFsdWUoeCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmSG9yaXpWYWx1ZSA9IHg7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldFZhbHVlKHkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlZlcnRWYWx1ZSA9IHk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2Nyb2xsVG8oaW50IHgsIGludCB5KQorICAgIHsKKyAgICAgICAgZkNsaWVudC5zY3JvbGxUbyh4LCB5KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIb3JpekxpbmVEaXN0YW5jZShpbnQgbmV3RGlzdGFuY2UpCisgICAgeworICAgICAgICBpZiAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRVbml0SW5jcmVtZW50KG5ld0Rpc3RhbmNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEhvcml6UGFnZU92ZXJsYXAoaW50IG5ld092ZXJsYXApCisgICAgeworICAgICAgICBpZiAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRCbG9ja0luY3JlbWVudCggLy8gd29ya2Fyb3VuZCB3YXJuaW5ncyBmb3IgdmFsdWVzIDwgMSBvbiB1bml4CisgICAgICAgICAgICAgICAgICAgIE1hdGgubWF4KDEsIGZIb3JpelNjcm9sbEJhci5nZXRWaXNpYmxlQW1vdW50KCktbmV3T3ZlcmxhcCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VmVydExpbmVEaXN0YW5jZShpbnQgbmV3RGlzdGFuY2UpCisgICAgeworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChuZXdEaXN0YW5jZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRWZXJ0UGFnZU92ZXJsYXAoaW50IG5ld092ZXJsYXApCisgICAgeworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0QmxvY2tJbmNyZW1lbnQoIC8vIHdvcmthcm91bmQgd2FybmluZ3MgZm9yIHZhbHVlcyA8IDEgb24gdW5peAorICAgICAgICAgICAgICAgICAgICBNYXRoLm1heCgxLCBmVmVydFNjcm9sbEJhci5nZXRWaXNpYmxlQW1vdW50KCktbmV3T3ZlcmxhcCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NlbGVjdGlvbkRyYWdJbnRlcmFjdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2VsZWN0aW9uRHJhZ0ludGVyYWN0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41OTUzOGZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NlbGVjdGlvbkRyYWdJbnRlcmFjdG9yLmphdmEKQEAgLTAsMCArMSwyMDEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuRm9jdXNFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2ZpbmFsIGNsYXNzIFNlbGVjdGlvbkRyYWdJbnRlcmFjdG9yIGV4dGVuZHMgQmVoYXZpb3IgaW1wbGVtZW50cyBSdW5uYWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBmVGV4dENvbXBvbmVudDsKKyAgICBwcml2YXRlIFRleHRTZWxlY3Rpb24gZlNlbGVjdGlvbjsKKyAgICBwcml2YXRlIFJ1blN0cmF0ZWd5IGZSdW5TdHJhdGVneTsKKyAgICAKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZkFuY2hvclN0YXJ0OyAvLyBhbGlhc2VzIHRleHQgb2Zmc2V0cyAtIGNsaWVudCBiZXdhcmUKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZkFuY2hvckVuZDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZkN1cnJlbnQ7CisKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZldhc1plcm9MZW5ndGg7CisKKyAgICBwcml2YXRlIGludCBmQ3VycmVudFg7CisgICAgcHJpdmF0ZSBpbnQgZkN1cnJlbnRZOworICAgIHByaXZhdGUgYm9vbGVhbiBmTW91c2VPdXRzaWRlOworCisgICAgcHJpdmF0ZSBUaHJlYWQgZkF1dG9zY3JvbGxUaHJlYWQgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBmVGhyZWFkUnVuID0gdHJ1ZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrU2Nyb2xsU2xlZXAgPSAzMDA7CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uRHJhZ0ludGVyYWN0b3IoVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRDb21wb25lbnQgdGV4dENvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVuU3RyYXRlZ3kgcnVuU3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbml0aWFsWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluaXRpYWxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdhc1plcm9MZW5ndGgpIHsKKworICAgICAgICBmVGV4dENvbXBvbmVudCA9IHRleHRDb21wb25lbnQ7CisgICAgICAgIGZTZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgICAgIGZSdW5TdHJhdGVneSA9IHJ1blN0cmF0ZWd5OworICAgICAgICBmQW5jaG9yU3RhcnQgPSBhbmNob3JTdGFydDsKKyAgICAgICAgZkFuY2hvckVuZCA9IGFuY2hvckVuZDsKKyAgICAgICAgZkN1cnJlbnQgPSBjdXJyZW50OworCisgICAgICAgIGZDdXJyZW50WCA9IGluaXRpYWxYOworICAgICAgICBmQ3VycmVudFkgPSBpbml0aWFsWTsKKyAgICAgICAgZk1vdXNlT3V0c2lkZSA9IGZhbHNlOworCisgICAgICAgIGZXYXNaZXJvTGVuZ3RoID0gd2FzWmVyb0xlbmd0aDsKKyAgICAgICAgCisgICAgICAgIHNldFNlbGVjdGlvbigpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZXZlbnQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBldmVudCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVByZXNzZWQoS2V5RXZlbnQgZXZlbnQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVJlbGVhc2VkKEtleUV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBpbnQgeCA9IGUuZ2V0WCgpLCB5ID0gZS5nZXRZKCk7CisgICAgICAgIGlmIChmQ3VycmVudFggIT0geCB8fCBmQ3VycmVudFkgIT0geSkgeworICAgICAgICAgICAgZkN1cnJlbnRYID0geDsKKyAgICAgICAgICAgIGZDdXJyZW50WSA9IHk7CisgICAgICAgICAgICBwcm9jZXNzTW91c2VMb2NhdGlvbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiBtb3VzZUVudGVyKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGZNb3VzZU91dHNpZGUgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGlmIChmQXV0b3Njcm9sbFRocmVhZCA9PSBudWxsKSB7CisgICAgICAgICAgICBmQXV0b3Njcm9sbFRocmVhZCA9IG5ldyBUaHJlYWQodGhpcyk7CisgICAgICAgICAgICBmQXV0b3Njcm9sbFRocmVhZC5zdGFydCgpOworICAgICAgICB9CisgICAgICAgIGZNb3VzZU91dHNpZGUgPSB0cnVlOworICAgICAgICBub3RpZnkoKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGJvb2xlYW4gbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBmTW91c2VPdXRzaWRlID0gZmFsc2U7CisgICAgICAgIGZUaHJlYWRSdW4gPSBmYWxzZTsKKyAgICAgICAgaWYgKGZBdXRvc2Nyb2xsVGhyZWFkICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZBdXRvc2Nyb2xsVGhyZWFkLmludGVycnVwdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZW1vdmVGcm9tT3duZXIoKTsKKyAgICAgICAgYm9vbGVhbiBpc1plcm9MZW5ndGggPSBUZXh0U2VsZWN0aW9uLnJhbmdlSXNaZXJvTGVuZ3RoKGZBbmNob3JTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZBbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ3VycmVudCk7CisgICAgICAgIGZTZWxlY3Rpb24ubW91c2VSZWxlYXNlZChpc1plcm9MZW5ndGggIT0gZldhc1plcm9MZW5ndGgpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzTW91c2VMb2NhdGlvbigpIHsKKworICAgICAgICBmVGV4dENvbXBvbmVudC5zY3JvbGxUb1Nob3coZkN1cnJlbnRYLCBmQ3VycmVudFkpOworICAgICAgICBmVGV4dENvbXBvbmVudC5wb2ludFRvVGV4dE9mZnNldChmQ3VycmVudCwgZkN1cnJlbnRYLCBmQ3VycmVudFksIG51bGwsIHRydWUpOworICAgICAgICBzZXRTZWxlY3Rpb24oKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0U2VsZWN0aW9uKCkgeworCisgICAgICAgIGlmIChmQ3VycmVudC5ncmVhdGVyVGhhbihmQW5jaG9yRW5kKSkgeworICAgICAgICAgICAgZlNlbGVjdGlvbi5hZHZhbmNlVG9OZXh0Qm91bmRhcnkoZkN1cnJlbnQpOworICAgICAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxSYW5nZUFuZERyYXcoZkFuY2hvclN0YXJ0LCBmQ3VycmVudCwgZkFuY2hvclN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChmQ3VycmVudC5sZXNzVGhhbihmQW5jaG9yU3RhcnQpKSB7CisgICAgICAgICAgICBmU2VsZWN0aW9uLmFkdmFuY2VUb1ByZXZpb3VzQm91bmRhcnkoZkN1cnJlbnQpOworICAgICAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxSYW5nZUFuZERyYXcoZkN1cnJlbnQsIGZBbmNob3JFbmQsIGZBbmNob3JTdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmQ3VycmVudC5hc3NpZ24oZkFuY2hvckVuZCk7CisgICAgICAgICAgICBmU2VsZWN0aW9uLnNldFNlbFJhbmdlQW5kRHJhdyhmQW5jaG9yU3RhcnQsIGZBbmNob3JFbmQsIGZBbmNob3JTdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisKKyAgICAgICAgUnVubmFibGUgZG9Nb3VzZUxvYyA9IG5ldyBSdW5uYWJsZSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzTW91c2VMb2NhdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGZUaHJlYWRSdW4pIHsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoa1Njcm9sbFNsZWVwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47IC8vIGp1c3QgcXVpdCBzY3JvbGxpbmcKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3luY2hyb25pemVkKHRoaXMpIHsKKworICAgICAgICAgICAgICAgIHdoaWxlICghZk1vdXNlT3V0c2lkZSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8ganVzdCBxdWl0IHNjcm9sbGluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5LmRvSXQoZG9Nb3VzZUxvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2ltcGxlQ29tbWFuZExvZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NpbXBsZUNvbW1hbmRMb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yN2Q1MmM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NpbXBsZUNvbW1hbmRMb2cuamF2YQpAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ZpbmFsIGNsYXNzIFNpbXBsZUNvbW1hbmRMb2cgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBDb21tYW5kIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgcHJpdmF0ZSBDb21tYW5kIGZDdXJyZW50Q29tbWFuZCA9IG51bGw7CisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkxpc3RlbmVyOworCisgICAgcHJpdmF0ZSBib29sZWFuIGZCYXNlSXNNb2RpZmllZDsKKworICAgIHByaXZhdGUgaW50IGZMb2dTaXplID0gMTQ7CisKKyAgICBwdWJsaWMgU2ltcGxlQ29tbWFuZExvZyhQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIpIHsKKyAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgICAgIGZCYXNlSXNNb2RpZmllZCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKiBhZGRzIHRoZSBzcGVjZmllZCBjb21tYW5kIHRvIHRoZSB0b3Agb2YgdGhlIGNvbW1hbmQgc3RhY2sKKyAgICAqIChhbnkgdW5kb25lIGNvbW1hbmRzIG9uIHRoZSBzdGFjayBhcmUgcmVtb3ZlZCkKKyAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgY29tbWFuZCBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkIChpLmUuLCBpdHMgZXhlY3V0ZSgpIG1ldGhvZAorICAgICogaGFzIGJlZW4gY2FsbGVkLCBvciBhbiBlcXVpdmFsZW50IGFjdGlvbiBoYXMgYmVlbiB0YWtlbikgKi8KKyAgICB2b2lkIGFkZChDb21tYW5kIG5ld0NvbW1hbmQpIHsKKyAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGNvbW1hbmRzIG9uIHRoZSBzdGFjayB0aGF0IGhhdmUgYmVlbiB1bmRvbmUsIHRoZXkgYXJlCisgICAgICAgIC8vIGRyb3BwZWQgb24gdGhlIGZsb29yIGhlcmUKKyAgICAgICAgbmV3Q29tbWFuZC5zZXRQcmV2aW91c0NvbW1hbmQoZkN1cnJlbnRDb21tYW5kKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIENvbW1hbmQgb2xkTGFzdENvbW1hbmQgPSBmTGFzdENvbW1hbmQ7CisgICAgICAgIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBmQ3VycmVudENvbW1hbmQgPSBuZXdDb21tYW5kOworICAgICAgICBsaW1pdENvbW1hbmRzKGZMb2dTaXplKTsKKyAgICAgICAgCisgICAgICAgIGlmIChvbGRMYXN0Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgdGhlIGNvbW1hbmQgbGlzdCBpcyBsb25nZXIgdGhhbiBsb2dTaXplLCB0cnVuY2F0ZSBpdC4KKyAgICAgKiBUaGlzIG1ldGhvZCB0cmF2ZXJzZXMgdGhlIGxpc3QgZWFjaCB0aW1lLCBhbmQgaXMgbm90IGEgbW9kZWwKKyAgICAgKiBvZiBlZmZpY2llbmN5LiAgSXQncyBhIHRlbXBvcmFyeSB3YXkgdG8gcGx1ZyB0aGlzIG1lbW9yeSBsZWFrCisgICAgICogdW50aWwgSSBjYW4gaW1wbGVtZW50IGEgYm91bmRlZCBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbGltaXRDb21tYW5kcyhpbnQgbG9nU2l6ZSkgeworCisgICAgICAgIGlmIChsb2dTaXplID09IDApIHsKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBDb21tYW5kIGN1cnJlbnRDb21tYW5kID0gZkN1cnJlbnRDb21tYW5kOworICAgICAgICAgICAgaW50IHJlbWFpbmluZyA9IGxvZ1NpemUtMTsKKyAgICAgICAgICAgIHdoaWxlIChjdXJyZW50Q29tbWFuZCAhPSBudWxsICYmIHJlbWFpbmluZyA+IDApIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29tbWFuZCA9IGN1cnJlbnRDb21tYW5kLnByZXZpb3VzQ29tbWFuZCgpOworICAgICAgICAgICAgICAgIHJlbWFpbmluZyAtPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1cnJlbnRDb21tYW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29tbWFuZC5zZXRQcmV2aW91c0NvbW1hbmQobnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogYWRkcyB0aGUgc3BlY2ZpZWQgY29tbWFuZCB0byB0aGUgdG9wIG9mIHRoZSBjb21tYW5kIHN0YWNrIGFuZCBleGVjdXRlcyBpdCAqLworICAgIHZvaWQgYWRkQW5kRG8oQ29tbWFuZCBuZXdDb21tYW5kKSB7CisgICAgICAgIGFkZChuZXdDb21tYW5kKTsKKyAgICAgICAgbmV3Q29tbWFuZC5leGVjdXRlKCk7CisKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICB9CisKKyAgICAvKiogdW5kb2VzIHRoZSBjb21tYW5kIG9uIHRoZSB0b3Agb2YgdGhlIGNvbW1hbmQgc3RhY2ssIGlmIHRoZXJlIGlzIG9uZSAqLworICAgIHZvaWQgdW5kbygpIHsKKyAgICAgICAgaWYgKGZDdXJyZW50Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBDb21tYW5kIGN1cnJlbnQgPSBmQ3VycmVudENvbW1hbmQ7CisgICAgICAgICAgICBjdXJyZW50LnVuZG8oKTsKKworICAgICAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gY3VycmVudC5wcmV2aW91c0NvbW1hbmQoKTsKKworICAgICAgICAgICAgY3VycmVudC5zZXRQcmV2aW91c0NvbW1hbmQoZkxhc3RDb21tYW5kKTsKKyAgICAgICAgICAgIGZMYXN0Q29tbWFuZCA9IGN1cnJlbnQ7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogcmVkb2VzIHRoZSBsYXN0IHVuZG9uZSBjb21tYW5kIG9uIHRoZSBjb21tYW5kIHN0YWNrLCBpZiB0aGVyZSBhcmUgYW55ICovCisgICAgdm9pZCByZWRvKCkgeworICAgICAgICBpZiAoZkxhc3RDb21tYW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIENvbW1hbmQgbGFzdCA9IGZMYXN0Q29tbWFuZDsKKyAgICAgICAgICAgIGxhc3QucmVkbygpOworCisgICAgICAgICAgICBmTGFzdENvbW1hbmQgPSBsYXN0LnByZXZpb3VzQ29tbWFuZCgpOworCisgICAgICAgICAgICBsYXN0LnNldFByZXZpb3VzQ29tbWFuZChmQ3VycmVudENvbW1hbmQpOworICAgICAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gbGFzdDsKKworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKSB7CisgICAgICAgIHJldHVybiBmQ3VycmVudENvbW1hbmQgIT0gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworICAgICAgICByZXR1cm4gZkxhc3RDb21tYW5kICE9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICBpZiAoZkN1cnJlbnRDb21tYW5kID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmQmFzZUlzTW9kaWZpZWQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZkN1cnJlbnRDb21tYW5kLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpIHsKKworICAgICAgICBpZiAoZkN1cnJlbnRDb21tYW5kID09IG51bGwpIHsKKyAgICAgICAgICAgIGZCYXNlSXNNb2RpZmllZCA9IG1vZGlmaWVkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkN1cnJlbnRDb21tYW5kLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsZWFyTG9nKCkgeworCisgICAgICAgIGlmIChmQ3VycmVudENvbW1hbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgZkJhc2VJc01vZGlmaWVkID0gZkN1cnJlbnRDb21tYW5kLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBib29sZWFuIGNoYW5nZWQgPSBmQ3VycmVudENvbW1hbmQgIT0gbnVsbCB8fCBmTGFzdENvbW1hbmQgIT0gbnVsbDsKKyAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gbnVsbDsKKyAgICAgICAgZkxhc3RDb21tYW5kID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0TG9nU2l6ZShpbnQgc2l6ZSkgeworCisgICAgICAgIGlmIChzaXplIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibG9nIHNpemUgY2Fubm90IGJlIG5lZ2F0aXZlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChzaXplIDwgZkxvZ1NpemUpIHsKKyAgICAgICAgICAgIGxpbWl0Q29tbWFuZHMoc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMb2dTaXplID0gc2l6ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChmTGFzdENvbW1hbmQgIT0gbnVsbCB8fCBzaXplID09IDApIHsKKyAgICAgICAgICAgIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRMb2dTaXplKCkgeworCisgICAgICAgIHJldHVybiBmTG9nU2l6ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVDaGFuZ2VDb21tYW5kLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVDaGFuZ2VDb21tYW5kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2UyMTNjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TdHlsZUNoYW5nZUNvbW1hbmQuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworY2xhc3MgU3R5bGVDaGFuZ2VDb21tYW5kIGV4dGVuZHMgVGV4dENvbW1hbmQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICBwcml2YXRlIFN0eWxlTW9kaWZpZXIgZk1vZGlmaWVyOworCisgICAgcHVibGljIFN0eWxlQ2hhbmdlQ29tbWFuZChUZXh0RWRpdEJlaGF2aW9yIGJlaGF2aW9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRleHQgb3JpZ2luYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kQmVmb3JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisKKyAgICAgICAgc3VwZXIoYmVoYXZpb3IsIG9yaWdpbmFsVGV4dCwgc2VsU3RhcnRCZWZvcmUuZk9mZnNldCwgc2VsU3RhcnRCZWZvcmUsIHNlbEVuZEJlZm9yZSk7CisgICAgICAgIGZNb2RpZmllciA9IG1vZGlmaWVyOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgYWZmZWN0ZWRSYW5nZUVuZCgpIHsKKyAgICAgICAgcmV0dXJuIGZTZWxFbmRCZWZvcmUuZk9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlKCkgeworICAgICAgICBmQmVoYXZpb3IuZG9Nb2RpZnlTdHlsZXMoZkFmZmVjdGVkUmFuZ2VTdGFydCwgZlNlbEVuZEJlZm9yZS5mT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk1vZGlmaWVyLCBmQ2hhcmFjdGVyLCBmU2VsU3RhcnRCZWZvcmUsIGZTZWxFbmRCZWZvcmUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TdHlsZWRUZXh0Q2xpcGJvYXJkLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVkVGV4dENsaXBib2FyZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3MzFmYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVkVGV4dENsaXBib2FyZC5qYXZhCkBAIC0wLDAgKzEsMjE3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZE93bmVyOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5UcmFuc2ZlcmFibGU7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkRhdGFGbGF2b3I7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlVuc3VwcG9ydGVkRmxhdm9yRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKKworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKKworLyoqCisqIFdyYXBwZXIgZm9yIGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQKKyogUGFja2FnZXMgYW4gTUNvbnN0VGV4dCBpbiBhIHRyYW5zZmVyYWJsZSwgYW5kIHB1dHMgaXQgb24gdGhlIGNsaXBib2FyZC4KKyovCisKK2NsYXNzIFN0eWxlZFRleHRDbGlwYm9hcmQgaW1wbGVtZW50cyBDbGlwYm9hcmRPd25lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIFRoaXMgY2xhc3MgaGFzIGEgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW4gdGhlIFdpbmRvd3Mgc3lzdGVtIGNsaXBib2FyZC4KKyAgICAvLyBUaGUgc3lzdGVtIGNsaXBib2FyZCB3aWxsIG9ubHkgcmV0dXJuIFN0cmluZyBjb250ZW50LCBldmVuCisgICAgLy8gdGhvdWdoIGl0IGhhcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGVudHMuICBTbyBpZiBvdXIKKyAgICAvLyBjbGlwYm9hcmQgaXMgdGhlIHN5c3RlbSBjbGlwYm9hcmQsIHdlJ2xsIGtlZXAgYSByZWZlcmVuY2UKKyAgICAvLyB0byB0aGUgY29udGVudCBhbmQgdXNlIHRoYXQgaW5zdGVhZCBvZiB3aGF0IHRoZSBDbGlwYm9hcmQgcmV0dXJucy4KKworICAgIHByaXZhdGUgc3RhdGljIENsaXBib2FyZCBTWVNURU0gPSBudWxsOworICAgIHN0YXRpYyB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTWVNURU0gPSBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVGhyb3dhYmxlIHRoKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHlsZWRUZXh0Q2xpcGJvYXJkIGZnU3lzdGVtQ2xpcGJvYXJkID0gbnVsbDsKKworICAgIHB1YmxpYyBzdGF0aWMgU3R5bGVkVGV4dENsaXBib2FyZCBnZXRDbGlwYm9hcmRGb3IoQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIGlmIChjbGlwYm9hcmQgPT0gU1lTVEVNICYmIFNZU1RFTSAhPSBudWxsKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQoU1lTVEVNKSB7CisgICAgICAgICAgICAgICAgaWYgKGZnU3lzdGVtQ2xpcGJvYXJkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZmdTeXN0ZW1DbGlwYm9hcmQgPSBuZXcgU3R5bGVkVGV4dENsaXBib2FyZChTWVNURU0sIHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmZ1N5c3RlbUNsaXBib2FyZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3R5bGVkVGV4dENsaXBib2FyZChjbGlwYm9hcmQsIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgQ2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBib29sZWFuIGZVc2VMb2NhbENvbnRlbnRzOworICAgIHByaXZhdGUgVHJhbnNmZXJhYmxlIGZDb250ZW50cyA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0eWxlZFRleHRDbGlwYm9hcmQoQ2xpcGJvYXJkIGNsaXBib2FyZCwgYm9vbGVhbiB1c2VMb2NhbENvbnRlbnRzKSB7CisKKyAgICAgICAgaWYgKGNsaXBib2FyZCA9PSBudWxsKSB7CisgICAgICAgICAgICBmQ2xpcGJvYXJkID0gbmV3IENsaXBib2FyZCgiVGV4dFBhbmVsIGNsaXBib2FyZCIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkNsaXBib2FyZCA9IGNsaXBib2FyZDsKKyAgICAgICAgfQorCisgICAgICAgIGZVc2VMb2NhbENvbnRlbnRzID0gdXNlTG9jYWxDb250ZW50czsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBsb3N0T3duZXJzaGlwKENsaXBib2FyZCBjbGlwYm9hcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2ZlcmFibGUgY29udGVudHMpIHsKKyAgICAgICAgaWYgKGNvbnRlbnRzID09IGZDb250ZW50cykgeworICAgICAgICAgICAgdGhpcy5mQ29udGVudHMgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29udGVudHMoTUNvbnN0VGV4dCBuZXdDb250ZW50cykgeworCisgICAgICAgIFRyYW5zZmVyYWJsZVRleHQgY29udGVudHMgPSBuZXcgVHJhbnNmZXJhYmxlVGV4dChuZXdDb250ZW50cyk7CisgICAgICAgIGlmIChmQ2xpcGJvYXJkID09IFNZU1RFTSkgeworICAgICAgICAgICAgZkNvbnRlbnRzID0gY29udGVudHM7CisgICAgICAgIH0KKyAgICAgICAgZkNsaXBib2FyZC5zZXRDb250ZW50cyhjb250ZW50cywgdGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBUcmFuc2ZlcmFibGUgZ2V0Q2xpcGJvYXJkQ29udGVudHMoKSB7CisKKyAgICAgICAgaWYgKGZVc2VMb2NhbENvbnRlbnRzICYmIGZDb250ZW50cyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZDbGlwYm9hcmQuZ2V0Q29udGVudHModGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFzIGNvbnRlbnRzIC0gZmFzdGVyIHRoYW4gZ2V0Q29udGVudHMgZm9yIGZpbmRpbmcgb3V0IHdoZXRoZXIgdGhlCisgICAgICogY2xpcGJvYXJkIGhhcyB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc0NvbnRlbnRzKCkgeworCisgICAgICAgIFRyYW5zZmVyYWJsZSBjb250ZW50cyA9IGdldENsaXBib2FyZENvbnRlbnRzKCk7CisKKyAgICAgICAgaWYgKGNvbnRlbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjb250ZW50cy5pc0RhdGFGbGF2b3JTdXBwb3J0ZWQoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSB8fAorICAgICAgICAgICAgICAgY29udGVudHMuaXNEYXRhRmxhdm9yU3VwcG9ydGVkKERhdGFGbGF2b3Iuc3RyaW5nRmxhdm9yKSB8fAorICAgICAgICAgICAgICAgY29udGVudHMuaXNEYXRhRmxhdm9yU3VwcG9ydGVkKERhdGFGbGF2b3IucGxhaW5UZXh0Rmxhdm9yKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBnZXRTdHJpbmcoSW5wdXRTdHJlYW0gaW5TdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gbmV3IFN0cmluZygpOworICAgICAgICBpbnQgYnl0ZXNSZWFkOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGJ5dGUgaW5CeXRlc1tdID0gbmV3IGJ5dGVbaW5TdHJlYW0uYXZhaWxhYmxlKCldOworICAgICAgICAgICAgYnl0ZXNSZWFkID0gaW5TdHJlYW0ucmVhZChpbkJ5dGVzKTsKKworICAgICAgICAgICAgaWYgKGJ5dGVzUmVhZCAhPSAtMSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICsgbmV3IFN0cmluZyhpbkJ5dGVzKTsKKworICAgICAgICB9IHdoaWxlIChieXRlc1JlYWQgIT0gLTEpOworCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgQ2xpcGJvYXJkIGhhcyB0ZXh0IGNvbnRlbnQsIHJldHVybiBpdCBhcyBhbgorICAgICAqIE1Db25zdFRleHQuICBPdGhlcndpc2UgcmV0dXJuIG51bGwuCisgICAgICogQHBhcmFtIGRlZmF1bHRTdHlsZSB0aGUgc3R5bGUgdG8gYXBwbHkgdG8gdW5zdHlsZWQKKyAgICAgKiAgICAgIHRleHQgKHN1Y2ggYXMgYSBTdHJpbmcpLiAgSWYgdGhlIGNsaXBib2FyZAorICAgICAqICAgICAgaGFzIHN0eWxlZCB0ZXh0IHRoaXMgcGFyYW1ldGVyIGlzIG5vdCB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldENvbnRlbnRzKEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGUpIHsKKworICAgICAgICBUcmFuc2ZlcmFibGUgY29udGVudHMgPSBnZXRDbGlwYm9hcmRDb250ZW50cygpOworCisgICAgICAgIGlmIChjb250ZW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIERhdGFGbGF2b3IgZmxhdm9yc1tdID0gY29udGVudHMuZ2V0VHJhbnNmZXJEYXRhRmxhdm9ycygpOworCisgICAgICAgIC8vIHNlYXJjaCBmbGF2b3JzIGZvciBvdXIgZmxhdm9yLCBTdHJpbmcgZmxhdm9yIGFuZCByYXcgdGV4dCBmbGF2b3IKKworICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgIGludCBpOworCisgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IGZsYXZvcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZmxhdm9yc1tpXS5lcXVhbHMoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpIDwgZmxhdm9ycy5sZW5ndGgpIHsKKworICAgICAgICAgICAgICAgIE9iamVjdCBkYXRhID0gY29udGVudHMuZ2V0VHJhbnNmZXJEYXRhKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcik7CisgICAgICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEYXRhIGlzIG51bGwuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIChNQ29uc3RUZXh0KSBkYXRhOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IGZsYXZvcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZmxhdm9yc1tpXS5lcXVhbHMoRGF0YUZsYXZvci5zdHJpbmdGbGF2b3IpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGkgPCBmbGF2b3JzLmxlbmd0aCkgeworCisgICAgICAgICAgICAgICAgT2JqZWN0IGRhdGEgPSBjb250ZW50cy5nZXRUcmFuc2ZlckRhdGEoRGF0YUZsYXZvci5zdHJpbmdGbGF2b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3R5bGVkVGV4dCgoU3RyaW5nKSBkYXRhLCBkZWZhdWx0U3R5bGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IGZsYXZvcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZmxhdm9yc1tpXS5lcXVhbHMoRGF0YUZsYXZvci5wbGFpblRleHRGbGF2b3IpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGkgPCBmbGF2b3JzLmxlbmd0aCkgeworCisgICAgICAgICAgICAgICAgT2JqZWN0IGRhdGEgPSBjb250ZW50cy5nZXRUcmFuc2ZlckRhdGEoRGF0YUZsYXZvci5wbGFpblRleHRGbGF2b3IpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHRTdHJpbmcgPSBnZXRTdHJpbmcoKElucHV0U3RyZWFtKSBkYXRhKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0eWxlZFRleHQodGV4dFN0cmluZywgZGVmYXVsdFN0eWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZEZsYXZvckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBleCA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXggPSBlOworICAgICAgICB9CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGNlcHRpb24gd2hlbiByZXRyaWV2aW5nIGRhdGEuICBFeGNlcHRpb246IiArIGV4KTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDaGFuZ2VDb21tYW5kLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENoYW5nZUNvbW1hbmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMzM3MDU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDaGFuZ2VDb21tYW5kLmphdmEKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2NsYXNzIFRleHRDaGFuZ2VDb21tYW5kIGV4dGVuZHMgVGV4dENvbW1hbmQgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0IGZOZXdUZXh0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCBmU2VsU3RhcnRBZnRlcjsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbEVuZEFmdGVyOworCisgICAgcHVibGljIFRleHRDaGFuZ2VDb21tYW5kKFRleHRFZGl0QmVoYXZpb3IgYmVoYXZpb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IG9yaWdpbmFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBuZXdUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWZmZWN0ZWRSYW5nZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0QmVmb3JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydEFmdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZEFmdGVyKSB7CisgICAgICAgIHN1cGVyKGJlaGF2aW9yLCBvcmlnaW5hbFRleHQsIGFmZmVjdGVkUmFuZ2VTdGFydCwgc2VsU3RhcnRCZWZvcmUsIHNlbEVuZEJlZm9yZSk7CisgICAgICAgIGZOZXdUZXh0ID0gbmV3VGV4dDsKKyAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmU2VsU3RhcnRBZnRlci5hc3NpZ24oc2VsU3RhcnRBZnRlcik7CisgICAgICAgIGZTZWxFbmRBZnRlciA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZTZWxFbmRBZnRlci5hc3NpZ24oc2VsRW5kQWZ0ZXIpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgYWZmZWN0ZWRSYW5nZUVuZCgpIHsKKyAgICAgICAgaWYgKGZOZXdUZXh0ID09IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZkFmZmVjdGVkUmFuZ2VTdGFydDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZBZmZlY3RlZFJhbmdlU3RhcnQgKyBmTmV3VGV4dC5sZW5ndGgoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlKCkgeworICAgICAgICBmQmVoYXZpb3IuZG9SZXBsYWNlVGV4dChmQWZmZWN0ZWRSYW5nZVN0YXJ0LCBmQWZmZWN0ZWRSYW5nZVN0YXJ0ICsgZk9yaWdpbmFsVGV4dC5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTmV3VGV4dCwgZlNlbFN0YXJ0QWZ0ZXIsIGZTZWxFbmRBZnRlcik7CisgICAgfQorCisgICAgcHVibGljIGludCBhZmZlY3RlZFJhbmdlU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBmQWZmZWN0ZWRSYW5nZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE5ld1RleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisgICAgICAgIGZOZXdUZXh0ID0gbmV3VGV4dDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxSYW5nZUFmdGVyKFRleHRPZmZzZXQgc3RhcnQsIFRleHRPZmZzZXQgZW5kKSB7CisgICAgICAgIGlmIChmU2VsU3RhcnRBZnRlciA9PSBudWxsKQorICAgICAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBpZiAoZlNlbEVuZEFmdGVyID09IG51bGwpCisgICAgICAgICAgICBmU2VsRW5kQWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmU2VsU3RhcnRBZnRlci5hc3NpZ24oc3RhcnQpOworICAgICAgICBmU2VsRW5kQWZ0ZXIuYXNzaWduKGVuZCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcHJlcGVuZFRvT2xkVGV4dChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKyAgICAgICAgZk9yaWdpbmFsVGV4dC5pbnNlcnQoMCwgbmV3VGV4dCk7CisgICAgICAgIGZBZmZlY3RlZFJhbmdlU3RhcnQgLT0gbmV3VGV4dC5sZW5ndGgoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhcHBlbmRUb09sZFRleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisgICAgICAgIGZPcmlnaW5hbFRleHQuYXBwZW5kKG5ld1RleHQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tbWFuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDb21tYW5kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTczMGQ3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tbWFuZC5qYXZhCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCithYnN0cmFjdCBjbGFzcyBUZXh0Q29tbWFuZCBleHRlbmRzIENvbW1hbmQgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJvdGVjdGVkIFRleHRFZGl0QmVoYXZpb3IgZkJlaGF2aW9yOworICAgIHByb3RlY3RlZCBNVGV4dCBmT3JpZ2luYWxUZXh0OworICAgIHByb3RlY3RlZCBpbnQgZkFmZmVjdGVkUmFuZ2VTdGFydDsKKyAgICBwcm90ZWN0ZWQgVGV4dE9mZnNldCBmU2VsU3RhcnRCZWZvcmU7CisgICAgcHJvdGVjdGVkIFRleHRPZmZzZXQgZlNlbEVuZEJlZm9yZTsKKworICAgIHB1YmxpYyBUZXh0Q29tbWFuZChUZXh0RWRpdEJlaGF2aW9yIGJlaGF2aW9yLAorICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCBvcmlnaW5hbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBhZmZlY3RlZFJhbmdlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnRCZWZvcmUsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kQmVmb3JlKSB7CisKKyAgICAgICAgZkJlaGF2aW9yID0gYmVoYXZpb3I7CisgICAgICAgIGZPcmlnaW5hbFRleHQgPSBvcmlnaW5hbFRleHQ7CisgICAgICAgIGZBZmZlY3RlZFJhbmdlU3RhcnQgPSBhZmZlY3RlZFJhbmdlU3RhcnQ7CisgICAgICAgIGZTZWxTdGFydEJlZm9yZSA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZTZWxTdGFydEJlZm9yZS5hc3NpZ24oc2VsU3RhcnRCZWZvcmUpOworICAgICAgICBmU2VsRW5kQmVmb3JlID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZlNlbEVuZEJlZm9yZS5hc3NpZ24oc2VsRW5kQmVmb3JlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGFmZmVjdGVkUmFuZ2VFbmQoKTsKKworICAgIHB1YmxpYyB2b2lkIHVuZG8oKSB7CisgICAgICAgIGZCZWhhdmlvci5kb1JlcGxhY2VUZXh0KGZBZmZlY3RlZFJhbmdlU3RhcnQsIGFmZmVjdGVkUmFuZ2VFbmQoKSwgZk9yaWdpbmFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsU3RhcnRCZWZvcmUsIGZTZWxFbmRCZWZvcmUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0MjY4YzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsOTU0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5JbWFnZTsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Db21wb25lbnRBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5TGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZU1vdGlvbkxpc3RlbmVyOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQ29tcG9uZW50RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuRm9jdXNFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0Lk1Gb3JtYXR0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2NsYXNzIFRleHRDb21wb25lbnQgZXh0ZW5kcyBGYWtlQ29tcG9uZW50CisgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgQmVoYXZpb3JPd25lciwKKyAgICAgICAgICAgICAgICAgICAgRm9jdXNMaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgS2V5TGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIE1vdXNlTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIE1vdXNlTW90aW9uTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIFNjcm9sbGVyLkNsaWVudCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0lORE9XX1dJRFRIID0gLTEwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfSU5TRVQgPSAxMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbG9yIFNUUk9OR19DQVJFVF9DT0xPUiA9IENvbG9yLmJsYWNrOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbG9yIFdFQUtfQ0FSRVRfQ09MT1IgPSBDb2xvci5kYXJrR3JheTsKKworICAgIHByaXZhdGUgQmVoYXZpb3IgZkJlaGF2aW9yOworICAgIHByaXZhdGUgTVRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBTdHlsZWRUZXh0Q2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBib29sZWFuIGZTY3JvbGxzOworICAgIHByaXZhdGUgU2Nyb2xsZXIgZlNjcm9sbGVyOworCisgICAgcHJpdmF0ZSBEb2N1bWVudFZpZXcgZkRvY3VtZW50VmlldyA9IG51bGw7CisKKyAgICAvLyBzaWdoIC0gY2FuJ3QgY3JlYXRlIERvY3VtZW50VmlldyB1bnRpbCBhZGROb3RpZnkoKSBpcyBjYWxsZWQuCisgICAgLy8gVGhlc2UgdmFsdWVzIGhvbGQgRG9jdW1lbnRWaWV3IGN0b3IgYXJncworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZEZWZhdWx0VmFsdWVzOworICAgIHByaXZhdGUgYm9vbGVhbiBmVmlld1dyYXBzOworICAgIHByaXZhdGUgaW50IGZWaWV3V3JhcFdpZHRoOworICAgIHByaXZhdGUgaW50IGZWaWV3SW5zZXRBbW91bnQ7CisgICAgCisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkxpc3RlbmVyOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRDb21wb25lbnQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgbW9kZWwuICBUaGlzIG1vZGVsIHdpbGwgYmUgdXNlZCBmb3IKKyAgICAgKiB0aGUgbGlmZSBvZiB0aGUgY29tcG9uZW50LCBldmVuIGlmIHNldFRleHQgaXMgY2FsbGVkCisgICAgICogQHBhcmFtIHdyYXBzIGlmIHRydWUsIHRoZSB0ZXh0IGlzIHdyYXBwZWQgdG8gdGhlIHNwZWNpZmllZAorICAgICAqIHdyYXBwaW5nIHdpZHRoLiAgSWYgZmFsc2UsIHRoZSB0ZXh0IHdyYXBzIG9ubHkgYXQgcGFyYWdyYXBoIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd3JhcFdpZHRoIGlnbm9yZWQgaWYgd3JhcHMgaXMgZmFsc2UuICBUZXh0IHdyYXBzIHRvIHRoaXMgd2lkdGgKKyAgICAgKiB1bmxlc3MgdGhlIHdpZHRoIGlzIFdJTkRPV19XSURUSCwgaW4gd2hpY2ggY2FzZSB0ZXh0IHdyYXBzIHRvIHdpZHRoCisgICAgICogb2YgdGhpcyBjb21wb25lbnQuIFNob3VsZCBub3QgYmUgbmVnYXRpdmUgKHVubGVzcyBpdCBpcyBXSU5ET1dfV0lEVEgpLgorICAgICAqIEBwYXJhbSBpbnNldEFtb3VudCB0aGUgc2l6ZSBvZiB0aGUgbWFyZ2lucyBhcm91bmQgdGhlIHRleHQKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQvY29weS9wYXN0ZSBvcGVyYXRpb25zLgorICAgICAqIElmIG51bGwsIHRoZSBjb21wb25lbnQgd2lsbCB1c2UgaXRzIG93biBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIFRleHRDb21wb25lbnQoTVRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3cmFwV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlZFRleHRDbGlwYm9hcmQgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2Nyb2xscywKKyAgICAgICAgICAgICAgICAgICAgICAgICBTY3JvbGxlciBzY3JvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmQmVoYXZpb3IgPSBudWxsOworCisgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRleHQgaXMgbnVsbC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgZkRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VmFsdWVzOworICAgICAgICAKKyAgICAgICAgaWYgKGNsaXBib2FyZCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDbGlwYm9hcmQgaXMgbnVsbC4iKTsKKyAgICAgICAgfQorICAgICAgICBmQ2xpcGJvYXJkID0gY2xpcGJvYXJkOworCisgICAgICAgIGZTY3JvbGxzID0gc2Nyb2xsczsKKworICAgICAgICBmU2Nyb2xsZXIgPSBzY3JvbGxlcjsKKworICAgICAgICBmRG9jdW1lbnRWaWV3ID0gbnVsbDsKKworICAgICAgICBmVmlld1dyYXBXaWR0aCA9IHdyYXBXaWR0aDsKKyAgICAgICAgZlZpZXdXcmFwcyA9IHdyYXBzOworICAgICAgICBmVmlld0luc2V0QW1vdW50ID0gaW5zZXRBbW91bnQ7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworICAgIH0KKyAgICAKKyAgICBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIGZEZWZhdWx0VmFsdWVzOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldEhvc3QoQ29tcG9uZW50IGNvbXBvbmVudCkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIuc2V0SG9zdChjb21wb25lbnQpOworICAgICAgICAKKyAgICAgICAgY29tcG9uZW50LmFkZEZvY3VzTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGNvbXBvbmVudC5hZGRLZXlMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgY29tcG9uZW50LmFkZE1vdXNlTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGNvbXBvbmVudC5hZGRNb3VzZU1vdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAKKyAgICAgICAgY29tcG9uZW50LmFkZENvbXBvbmVudExpc3RlbmVyKG5ldyBDb21wb25lbnRBZGFwdGVyKCkgeyAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjb21wb25lbnRSZXNpemVkKENvbXBvbmVudEV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZEb2N1bWVudFZpZXcuaG9zdFNpemVDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvU2hvdyhmRG9jdW1lbnRWaWV3LmdldERvY3VtZW50Qm91bmRzKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFUZXh0UGFuZWxJbXBsJ3MgdXNlIG9ubHkhCisgICAgICovCisgICAgQ29tcG9uZW50IGdldEhvc3QoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmSG9zdDsKKyAgICB9CisgICAgCisgICAgLy8gQ3JlYXRlIGRvY3VtZW50IHZpZXcgaGVyZS4gIFRleHRDb21wb25lbnQgaXNuJ3QgZnVsbHkgY29uc3RydWN0ZWQKKyAgICAvLyB1bnRpbCB0aGlzIGlzIGNhbGxlZC4KKyAgICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIGJ5IGhvc3QgY29tcG9uZW50IQorICAgIHZvaWQgYWRkTm90aWZ5KCkgeworCisgICAgICAgIEdyYXBoaWNzIGcgPSBnZXRHcmFwaGljcygpOworICAgICAgICBpZiAoZyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkdyYXBoaWNzIHNob3VsZCBiZSB2YWxpZCBoZXJlIGJ1dCBpc24ndC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZEb2N1bWVudFZpZXcgPSBuZXcgRG9jdW1lbnRWaWV3KHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlZpZXdXcmFwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlZpZXdXcmFwV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZWaWV3SW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaXN0ZW5lcik7CisgICAgICAgIGRvY3VtZW50U2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuRk9STUFUX1dJRFRIX0NIQU5HRUQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUmVjdGFuZ2xlIGdldEJvdW5kcygpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmSG9zdCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0YW5nbGUoMCwgMCwgMCwgMCk7CisgICAgfQorICAgIAorICAgIEdyYXBoaWNzIGdldEdyYXBoaWNzKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIChmSG9zdD09bnVsbCk/IG51bGwgOiBmSG9zdC5nZXRHcmFwaGljcygpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHJlcXVlc3RGb2N1cygpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmSG9zdCAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9zdC5yZXF1ZXN0Rm9jdXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vICoqKiBCZWhhdmlvciBtYW5hZ2VtZW50ICoqKgorICAgIHB1YmxpYyBCZWhhdmlvciBnZXRCZWhhdmlvcigpIHsKKyAgICAgICAgcmV0dXJuIGZCZWhhdmlvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRCZWhhdmlvcihCZWhhdmlvciBiKSB7CisgICAgICAgIGZCZWhhdmlvciA9IGI7CisgICAgfQorCisKKyAgICAvLyAqKiogRXZlbnRzIC0ganVzdCBmb3J3YXJkIHRvIGJlaGF2aW9yICoqKgorICAgIHB1YmxpYyB2b2lkIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLmZvY3VzR2FpbmVkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBmb2N1c0xvc3QoRm9jdXNFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IuZm9jdXNMb3N0KGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5rZXlQcmVzc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZkJlaGF2aW9yLmtleVR5cGVkKGV2ZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGtleVJlbGVhc2VkKEtleUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5rZXlSZWxlYXNlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgLy8gbm8gYmVoYXZpb3IgbWV0aG9kIGZvciB0aGlzCisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLm1vdXNlRHJhZ2dlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZUVudGVyZWQoZXZlbnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZUV4aXRlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VNb3ZlZChNb3VzZUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZU1vdmVkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IubW91c2VQcmVzc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZVJlbGVhc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IGZhbHNlOworCisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgaGFuZGxlZCA9IGZCZWhhdmlvci50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIHdoYXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYW5kbGVkOworICAgIH0KKworCisgICAgLy8gKioqIFNjcm9sbCBtZXRob2RzIC0gY2FsbGVkIGJ5IEJlaGF2aW9ycworCisgICAgLy8gdmlld1N0YXJ0LCB2aWV3TGltaXQgaXMgdmlzaWJsZSBib3VuZHMgb2Ygd2luZG93CisgICAgLy8gdGFyZ2V0U3RhcnQsIHRhcmdldExpbWl0IGlzIHRoZSByZWdpb24gdG8gc2Nyb2xsIGludG8gdmlldworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTY3JvbGxEaWZmZXJlbmNlKGludCB2aWV3U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZpZXdMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRhcmdldExpbWl0KSB7CisKKyAgICAgICAgaWYgKHZpZXdTdGFydCA8PSB0YXJnZXRTdGFydCkgeworICAgICAgICAgICAgaWYgKHZpZXdMaW1pdCA+PSB0YXJnZXRMaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KHZpZXdTdGFydC10YXJnZXRTdGFydCwgdmlld0xpbWl0LXRhcmdldExpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh2aWV3TGltaXQgPiB0YXJnZXRMaW1pdCkgeworCisgICAgICAgICAgICByZXR1cm4gdmlld0xpbWl0IC0gdGFyZ2V0TGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgc2Nyb2xsVG9TaG93KFJlY3RhbmdsZSBzaG93UmVjdCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBib3VuZHMgPSBnZXRCb3VuZHMoKTsKKworICAgICAgICAgICAgaW50IGR4ID0gZ2V0U2Nyb2xsRGlmZmVyZW5jZShzaG93UmVjdC54LCBzaG93UmVjdC54ICsgc2hvd1JlY3Qud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy54LCBib3VuZHMueCArIGJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICBpbnQgZHkgPSBnZXRTY3JvbGxEaWZmZXJlbmNlKHNob3dSZWN0LnksIHNob3dSZWN0LnkgKyBzaG93UmVjdC5oZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy55LCBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQpOworCisgICAgICAgICAgICBzY3JvbGxTZWxmKGR4LCBkeSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHNjcm9sbFRvU2hvdyhpbnQgc2hvd1gsIGludCBzaG93WSkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBkeCA9IDAsIGR5ID0gMDsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGdldEJvdW5kcygpOworICAgICAgICAgICAgaWYgKHNob3dYIDwgYm91bmRzLngpIHsKKyAgICAgICAgICAgICAgICBkeCA9IHNob3dYIC0gYm91bmRzLng7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzaG93WCA+IGJvdW5kcy54ICsgYm91bmRzLndpZHRoKSB7CisgICAgICAgICAgICAgICAgZHggPSBzaG93WCAtIChib3VuZHMueCArIGJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzaG93WSA8IGJvdW5kcy55KSB7CisgICAgICAgICAgICAgICAgZHkgPSBzaG93WSAtIGJvdW5kcy55OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc2hvd1kgPiBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQpIHsKKyAgICAgICAgICAgICAgICBkeSA9IHNob3dZIC0gKGJvdW5kcy55ICsgYm91bmRzLmhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNjcm9sbFNlbGYoZHgsIGR5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IHBpblNjcm9sbE9mZnNldChpbnQgZGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb250ZW50U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb250ZW50TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlld1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlld0xlbmd0aCkgeworCisgICAgICAgIGlmIChkZWx0YSA+IDApIHsKKyAgICAgICAgICAgIGludCB2aWV3TGltaXQgPSB2aWV3U3RhcnQgKyB2aWV3TGVuZ3RoOworICAgICAgICAgICAgaW50IGNvbnRlbnRMaW1pdCA9IGNvbnRlbnRTdGFydCArIGNvbnRlbnRMZW5ndGg7CisKKyAgICAgICAgICAgIGlmICh2aWV3TGltaXQgKyBkZWx0YSA+IGNvbnRlbnRMaW1pdCkgeworICAgICAgICAgICAgICAgIGRlbHRhID0gTWF0aC5tYXgoMCwgY29udGVudExpbWl0LXZpZXdMaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAodmlld1N0YXJ0ICsgZGVsdGEgPCBjb250ZW50U3RhcnQpIHsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IE1hdGgubWluKDAsIGNvbnRlbnRTdGFydC12aWV3U3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRlbHRhOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzY3JvbGxTZWxmKGludCBkeCwgaW50IGR5KSB7CisKKyAgICAgICAgYm9vbGVhbiBzY3JvbGxlZCA9IHNjcm9sbEJ5KGR4LCBkeSk7CisKKyAgICAgICAgaWYgKHNjcm9sbGVkICYmIGZTY3JvbGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICBSZWN0YW5nbGUgZG9jdW1lbnRCb3VuZHMgPSBmRG9jdW1lbnRWaWV3LmdldERvY3VtZW50Qm91bmRzKCk7CisgICAgICAgICAgICBmU2Nyb2xsZXIuc2V0UG9zaXRpb24oLWRvY3VtZW50Qm91bmRzLngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWRvY3VtZW50Qm91bmRzLnkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBzY3JvbGxCeShpbnQgZHgsIGludCBkeSkgeworCisgICAgICAgIGJvb2xlYW4gc2Nyb2xsZWQgPSBmYWxzZTsKKworICAgICAgICBpZiAoZlNjcm9sbHMpIHsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBkb2N1bWVudEJvdW5kcyA9IGZEb2N1bWVudFZpZXcuZ2V0RG9jdW1lbnRCb3VuZHMoKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSB2aWV3Qm91bmRzID0gZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCBvbGREeCA9IGR4OworICAgICAgICAgICAgZHggPSBwaW5TY3JvbGxPZmZzZXQoZHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRCb3VuZHMueCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Qm91bmRzLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy54LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy53aWR0aCk7CisgICAgICAgICAgICBkeSA9IHBpblNjcm9sbE9mZnNldChkeSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudEJvdW5kcy55LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRCb3VuZHMuaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy55LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy5oZWlnaHQpOworCisgICAgICAgICAgICBpZiAoZHggIT0gMCB8fCBkeSAhPSAwKSB7CisgICAgICAgICAgICAgICAgc2Nyb2xsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGZEb2N1bWVudFZpZXcubW92ZUJ5KC1keCwgLWR5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzY3JvbGxlZDsKKyAgICB9CisKKyAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiBTY3JvbGxlci5DbGllbnQgLSBjYWxsZWQgYnkgU2Nyb2xsZXIKKyAgICAvLyB0aGV5IGhhdmUgdG8gYmUgcHVibGljIHNpbmNlIHRoZXkncmUgaW4gYW4gaW50ZXJmYWNlCisgICAgLy8gbm8gb25lIGVsc2Ugc2hvdWxkIGNhbGwgdGhlc2UgbWV0aG9kcworICAgIHB1YmxpYyBSZWN0YW5nbGUgZ2V0U2Nyb2xsU2l6ZSgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5nZXRTY3JvbGxhYmxlQXJlYSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDAsIDAsIDApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNjcm9sbFRvKGludCB4LCBpbnQgeSkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNjcm9sbEJ5KHggKyBmRG9jdW1lbnRWaWV3LmdldERvY1goKSwgeSArIGZEb2N1bWVudFZpZXcuZ2V0RG9jWSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vICoqKiBUZXh0IGFjY2VzcyAqKioKKyAgICBNQ29uc3RUZXh0IGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICB9CisKKyAgICBNVGV4dCBnZXRNb2RpZmlhYmxlVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGZUZXh0OworICAgIH0KKworICAgIFN0eWxlZFRleHRDbGlwYm9hcmQgZ2V0Q2xpcGJvYXJkKCkgeworICAgICAgICByZXR1cm4gZkNsaXBib2FyZDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFZpZXcucGFpbnQoZyk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vICoqKiBNZXRyaWMgaW5mbyAtIHVzZWQgYnkgQmVoYXZpb3JzCisgICAgUmVjdGFuZ2xlIGdldENhcmV0UmVjdChUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmdldENhcmV0UmVjdChvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDApOworICAgIH0KKworICAgIFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBhbmNob3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluZmluaXRlTW9kZSkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LnBvaW50VG9UZXh0T2Zmc2V0KHJlc3VsdCwgeCwgeSwgYW5jaG9yLCBpbmZpbml0ZU1vZGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVGV4dE9mZnNldCgpOworICAgIH0KKworICAgIC8vICoqKiBPdGhlciBzdHVmZiB1c2VkIGJ5IEJlaGF2aW9ycyAtIG1vc3RseSBmb3JtYXR0ZXIgZXhwb3J0cworICAgIGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaW50IGxpbmVSYW5nZUxvdyhpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmxpbmVSYW5nZUxvdyhsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpbnQgbGluZVJhbmdlTGltaXQoaW50IGxpbmVOdW1iZXIpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5saW5lUmFuZ2VMaW1pdChsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2b2lkIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRWaWV3LnN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsIFRleHRPZmZzZXQgb2Zmc2V0MikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmdldEJvdW5kaW5nUmVjdChvZmZzZXQxLCBvZmZzZXQyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFJlY3RhbmdsZSgwLCAwLCAwLCAwKTsKKyAgICB9CisKKyAgICBzeW5jaHJvbml6ZWQgdm9pZCByZWZvcm1hdEFuZERyYXdUZXh0KGludCByZWZvcm1hdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVmb3JtYXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgYWRkaXRpb25hbFVwZGF0ZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgZkRvY3VtZW50Vmlldy5yZWZvcm1hdEFuZERyYXdUZXh0KHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmb3JtYXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxVcGRhdGVSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFRleHRPZmZzZXQgZmluZE5ld0luc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBpbml0aWFsT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHByZXZpb3VzT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KHJlc3VsdCwgaW5pdGlhbE9mZnNldCwgcHJldmlvdXNPZmZzZXQsIGRpcmVjdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBUZXh0T2Zmc2V0KGluaXRpYWxPZmZzZXQpOworICAgIH0KKworICAgIHN5bmNocm9uaXplZCB2b2lkIGRyYXdUZXh0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgZGFtYWdlZFJlY3QsCisgICAgICAgICAgICAgICAgICBib29sZWFuIHNlbGVjdGlvblZpc2libGUsCisgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFZpZXcuZHJhd1RleHQoZywgZGFtYWdlZFJlY3QsIHNlbGVjdGlvblZpc2libGUsIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb2N1bWVudFNpemVDaGFuZ2VkKCkgeworCisgICAgICAgIGlmIChmU2Nyb2xsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlNjcm9sbGVyLmNsaWVudFNjcm9sbFNpemVDaGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbnQgZ2V0Rm9ybWF0V2lkdGgoKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIERvY3VtZW50VmlldyB7CisKKyAgICAgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZIb3N0OworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZldyYXBzOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZldyYXBUb1dpbmRvd1dpZHRoOworICAgICAgICBwcml2YXRlIGludCBmSW5zZXRBbW91bnQ7CisgICAgICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKworICAgICAgICAvLyBmQm91bmRzIGlzIHRoZSB0b3RhbCBzY3JvbGxhYmxlIGFyZWEgb2YgdGhlIGRvY3VtZW50IChpbmNsdWRpbmcgaW5zZXRzKQorICAgICAgICBwcml2YXRlIFJlY3RhbmdsZSBmQm91bmRzID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBQb2ludCBmT3JpZ2luOworCisgICAgICAgIHByaXZhdGUgTUZvcm1hdHRlciBmRm9ybWF0dGVyOworCisgICAgICAgIHByaXZhdGUgT2Zmc2NyZWVuQnVmZmVyQ2FjaGUgZkJ1ZmZlckNhY2hlOworCisgICAgICAgIC8vIE5vdGUsIHdoZW4gdGhpcyBpcyB0cnVlIHRoZSBjYXJldCB3b24ndCBibGluayBpbiAxLjEuICBMb29rcyBsaWtlIGFuIEFXVCBidWcuCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZk5vT2Zmc2NyZWVuQnVmZmVyID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sZWFuLmdldEJvb2xlYW4oIlRleHRDb21wb25lbnQuTm9PZmZzY3JlZW5CdWZmZXIiKTsKKworICAgICAgICAvLyBBbW91bnQgYnkgd2hpY2ggdG8gcmVkdWNlIHRoZSBmb3JtYXQgd2lkdGggdG8gYWxsb3cgZm9yIHJpZ2h0LWFsaWduZWQgY2FyZXRzLgorICAgICAgICBwcml2YXRlIGZpbmFsIGludCBDQVJFVF9TTE9QID0gMTsKKworICAgICAgICBEb2N1bWVudFZpZXcoVGV4dENvbXBvbmVudCBob3N0LAorICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgaW50IHdyYXBXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgIGludCBpbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lcikgeworCisgICAgICAgICAgICBmSG9zdCA9IGhvc3Q7CisgICAgICAgICAgICBmV3JhcFRvV2luZG93V2lkdGggPSB3cmFwV2lkdGggPT0gV0lORE9XX1dJRFRIOworICAgICAgICAgICAgZkluc2V0QW1vdW50ID0gaW5zZXRBbW91bnQ7CisgICAgICAgICAgICBmTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKworICAgICAgICAgICAgaW5pdEZvcm1hdHRlckFuZFNpemUodGV4dCwgZGVmYXVsdFZhbHVlcywgd3JhcHMsIHdyYXBXaWR0aCk7CisKKyAgICAgICAgICAgIGZCdWZmZXJDYWNoZSA9IG5ldyBPZmZzY3JlZW5CdWZmZXJDYWNoZShob3N0LmZIb3N0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIE5vdGU6IHRoaXMgY29tcHV0ZXMgdGhlIGJvdW5kcyByZWN0YW5nbGUgcmVsYXRpdmUgdG8gZk9yaWdpbgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGNhbGNCb3VuZHNSZWN0KCkgeworICAgICAgICAKKyAgICAgICAgICAgIGZpbmFsIGludCBpbnNldERpbSA9IDIgKiBmSW5zZXRBbW91bnQ7CisKKyAgICAgICAgICAgIGZpbmFsIGludCBtaW5YID0gZkZvcm1hdHRlci5taW5YKCk7CisgICAgICAgICAgICBmaW5hbCBpbnQgbWluWSA9IGZGb3JtYXR0ZXIubWluWSgpOworCisgICAgICAgICAgICBmQm91bmRzLnNldEJvdW5kcyhmT3JpZ2luLnggKyBtaW5YIC0gZkluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk9yaWdpbi55ICsgbWluWSAtIGZJbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIubWF4WCgpIC0gbWluWCArIGluc2V0RGltLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIubWF4WSgpIC0gbWluWSArIGluc2V0RGltKTsKKyAgICAgICAgICAgIC8vaWYgKG1pblggPD0gMCkgeworICAgICAgICAgICAgLy8gICAgU3lzdGVtLm91dC5wcmludGxuKCJjYWxjQm91bmRzUmVjdDogbWluWD0iK21pblgrCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIjsgYm91bmRzLng9IitmQm91bmRzLngrIjsgd2lkdGg9IitmQm91bmRzLndpZHRoKTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGluaXRGb3JtYXR0ZXJBbmRTaXplKE1Db25zdFRleHQgdGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JhcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd3JhcFdpZHRoKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSBob3N0Qm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBpbnQgZm9ybWF0V2lkdGg7CisKKyAgICAgICAgICAgIGlmICghd3JhcHMgfHwgZldyYXBUb1dpbmRvd1dpZHRoKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSBob3N0Qm91bmRzLndpZHRoIC0gMiAqIGZJbnNldEFtb3VudDsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0V2lkdGggPD0gQ0FSRVRfU0xPUCkgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IENBUkVUX1NMT1ArMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IHdyYXBXaWR0aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkZvcm1hdHRlciA9IE1Gb3JtYXR0ZXIuY3JlYXRlRm9ybWF0dGVyKHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aC1DQVJFVF9TTE9QLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZIb3N0LmdldEdyYXBoaWNzKCkpOworCisgICAgICAgICAgICBmRm9ybWF0dGVyLmZvcm1hdFRvSGVpZ2h0KGhvc3RCb3VuZHMuaGVpZ2h0ICogMik7CisgICAgICAgICAgICBmT3JpZ2luID0gbmV3IFBvaW50KGZJbnNldEFtb3VudCwgZkluc2V0QW1vdW50KTsKKyAgICAgICAgICAgIGNhbGNCb3VuZHNSZWN0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3RpZmljYXRpb24gbWV0aG9kIGNhbGxlZCBieSBUZXh0Q29tcG9uZW50CisgICAgICAgIHZvaWQgaG9zdFNpemVDaGFuZ2VkKCkgeworCisgICAgICAgICAgICBmaW5hbCBib29sZWFuIHdyYXAgPSBmRm9ybWF0dGVyLndyYXAoKTsKKyAgICAgICAgICAgIGlmIChmV3JhcFRvV2luZG93V2lkdGggfHwgIXdyYXApIHsKKworICAgICAgICAgICAgICAgIFJlY3RhbmdsZSBob3N0Qm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgZmluYWwgaW50IGluc2V0RGltID0gMiAqIGZJbnNldEFtb3VudDsKKworICAgICAgICAgICAgICAgIGludCBmb3JtYXRXaWR0aCA9IGhvc3RCb3VuZHMud2lkdGggLSAyKmZJbnNldEFtb3VudDsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0V2lkdGggPD0gQ0FSRVRfU0xPUCkgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IENBUkVUX1NMT1ArMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZkZvcm1hdHRlci5zZXRMaW5lQm91bmQoZm9ybWF0V2lkdGgtQ0FSRVRfU0xPUCk7CisKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmZvcm1hdFRvSGVpZ2h0KGhvc3RCb3VuZHMueSArIChob3N0Qm91bmRzLmhlaWdodCoyKSAtIGZPcmlnaW4ueSk7CisKKyAgICAgICAgICAgICAgICBjYWxjQm91bmRzUmVjdCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJXaW5kb3cgYm91bmRzPSIraG9zdEJvdW5kcysiOyBkb2N1bWVudCBib3VuZHM9IitmQm91bmRzKTsKKworICAgICAgICAgICAgICAgIGZIb3N0LmRvY3VtZW50U2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImZvcm1hdFdpZHRoPSIrZm9ybWF0V2lkdGgpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkb2N1bWVudCBib3VuZHM9IitmQm91bmRzKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9kdW1wV2lkdGhJbmZvKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0Rm9ybWF0V2lkdGgoKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVCb3VuZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGluZU51bWJlciA9IGZGb3JtYXR0ZXIubGluZUNvbnRhaW5pbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVJc0xlZnRUb1JpZ2h0KGxpbmVOdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHRleHRTaXplTWlnaHRIYXZlQ2hhbmdlZCgpIHsKKworICAgICAgICAgICAgYm9vbGVhbiBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgICAgICBmaW5hbCBpbnQgaW5zZXREaW0gPSAyICogZkluc2V0QW1vdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgdGV4dEhlaWdodCA9IGZGb3JtYXR0ZXIubWF4WSgpIC0gZkZvcm1hdHRlci5taW5ZKCkgKyBpbnNldERpbTsKKyAgICAgICAgICAgIGlmICh0ZXh0SGVpZ2h0ICE9IGZCb3VuZHMuaGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgZkJvdW5kcy5oZWlnaHQgPSB0ZXh0SGVpZ2h0OworICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWZGb3JtYXR0ZXIud3JhcCgpKSB7CisgICAgICAgICAgICAgICAgaW50IHRleHRXaWR0aCA9IGZGb3JtYXR0ZXIubWF4WCgpIC0gZkZvcm1hdHRlci5taW5YKCkgKyBpbnNldERpbTsKKyAgICAgICAgICAgICAgICBpZiAodGV4dFdpZHRoICE9IGZCb3VuZHMud2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgICAgZkJvdW5kcy53aWR0aCA9IHRleHRXaWR0aDsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2hhbmdlZCkgeworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJUZXh0IHNpemUgY2hhbmdlZC4gIGZCb3VuZHM6ICIgKyBmQm91bmRzKTsKKyAgICAgICAgICAgICAgICBjYWxjQm91bmRzUmVjdCgpOworICAgICAgICAgICAgICAgIGZIb3N0LmRvY3VtZW50U2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICBmSG9zdC5zY3JvbGxUb1Nob3coZ2V0RG9jdW1lbnRCb3VuZHMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgZG9EcmF3VGV4dChHcmFwaGljcyBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgZHJhd1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2VsZWN0aW9uVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgICAgIENvbG9yIG9sZENvbG9yID0gZy5nZXRDb2xvcigpOworICAgICAgICAgICAgZy5zZXRDb2xvcihmSG9zdC5nZXRIb3N0KCkuZ2V0QmFja2dyb3VuZCgpKTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QoZHJhd1JlY3QueCwgZHJhd1JlY3QueSwgZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisgICAgICAgICAgICBnLnNldENvbG9yKG9sZENvbG9yKTsKKworICAgICAgICAgICAgLy8gICAgICAgICAgICBnLmNsZWFyUmVjdChkcmF3UmVjdC54LCBkcmF3UmVjdC55LCBkcmF3UmVjdC53aWR0aCwgZHJhd1JlY3QuaGVpZ2h0KTsKKworICAgICAgICAgICAgaWYgKHNlbGVjdGlvblZpc2libGUpIHsKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXcoZywgZHJhd1JlY3QsIGZPcmlnaW4sIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIuZHJhdyhnLCBkcmF3UmVjdCwgZk9yaWdpbiwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzZWxTdGFydCAhPSBudWxsICYmIHNlbFN0YXJ0LmVxdWFscyhzZWxFbmQpICYmIHNlbGVjdGlvblZpc2libGUpIHsKKworICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIuZHJhd0NhcmV0KGcsIHNlbFN0YXJ0LCBmT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RST05HX0NBUkVUX0NPTE9SLCBXRUFLX0NBUkVUX0NPTE9SKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3MgZywKKyAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgZHJhd1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzZWxlY3Rpb25WaXNpYmxlLAorICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlsaXRlQ29sb3IpIHsKKworICAgICAgICAgICAgaWYgKGcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGRyYXdSZWN0ID0gZHJhd1JlY3QuaW50ZXJzZWN0aW9uKGZIb3N0LmdldEJvdW5kcygpKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiZHJhd1RleHQ6ZHJhd1JlY3Q6ICIgKyBkcmF3UmVjdCk7CisgICAgICAgICAgICAgICAgZy5jbGlwUmVjdChkcmF3UmVjdC54LCBkcmF3UmVjdC55LCBkcmF3UmVjdC53aWR0aCwgZHJhd1JlY3QuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBpZiAoZk5vT2Zmc2NyZWVuQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGRvRHJhd1RleHQoZywgZHJhd1JlY3QsIHNlbGVjdGlvblZpc2libGUsIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEltYWdlIG9mZnNjcmVlbkJ1ZmZlciA9IGZCdWZmZXJDYWNoZS5nZXRCdWZmZXIoZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzIG9mZnNjcmVlbkdyYXBoaWNzID0gb2Zmc2NyZWVuQnVmZmVyLmdldEdyYXBoaWNzKCk7CisgICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkdyYXBoaWNzLnRyYW5zbGF0ZSgtZHJhd1JlY3QueCwgLWRyYXdSZWN0LnkpOworICAgIAorICAgICAgICAgICAgICAgICAgICBkb0RyYXdUZXh0KG9mZnNjcmVlbkdyYXBoaWNzLCBkcmF3UmVjdCwgc2VsZWN0aW9uVmlzaWJsZSwgc2VsU3RhcnQsIHNlbEVuZCwgaGlsaXRlQ29sb3IpOworICAgIAorICAgICAgICAgICAgICAgICAgICBnLmRyYXdJbWFnZShvZmZzY3JlZW5CdWZmZXIsIGRyYXdSZWN0LngsIGRyYXdSZWN0LnksIGZIb3N0LmZIb3N0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0U2l6ZU1pZ2h0SGF2ZUNoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcmVmb3JtYXRBbmREcmF3VGV4dChpbnQgcmVmb3JtYXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWZvcm1hdExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZSBhZGRpdGlvbmFsVXBkYXRlUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSB2aXNpYmxlQm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBSZWN0YW5nbGUgcmVkcmF3UmVjdCA9IGZGb3JtYXR0ZXIudXBkYXRlRm9ybWF0KHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmT3JpZ2luKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJbMV0gcmVkcmF3UmVjdDogIiArIHJlZHJhd1JlY3QpOworCisgICAgICAgICAgICBpZiAoYWRkaXRpb25hbFVwZGF0ZVJlY3QgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlZHJhd1JlY3QuYWRkKGFkZGl0aW9uYWxVcGRhdGVSZWN0KTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiWzJdIHJlZHJhd1JlY3Q6ICIgKyByZWRyYXdSZWN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbGVhbiBoYXZlU2VsZWN0aW9uOworCisgICAgICAgICAgICBpZiAoc2VsU3RhcnQgIT0gbnVsbCAmJiBzZWxFbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGhhdmVTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgICAgIHJlZHJhd1JlY3QuYWRkKGZGb3JtYXR0ZXIuZ2V0Qm91bmRpbmdSZWN0KHNlbFN0YXJ0LCBzZWxFbmQsIGZPcmlnaW4sIE1Gb3JtYXR0ZXIuTE9PU0UpKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiWzNdIHJlZHJhd1JlY3Q6ICIgKyByZWRyYXdSZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGhhdmVTZWxlY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZHJhd1RleHQoZkhvc3QuZ2V0R3JhcGhpY3MoKSwgcmVkcmF3UmVjdCwgaGF2ZVNlbGVjdGlvbiwgc2VsU3RhcnQsIHNlbEVuZCwgaGlsaXRlQ29sb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGxldEJlaGF2aW9yRHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd1JlY3QpIHsKKworICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKGZIb3N0LmZCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZkhvc3QuZkJlaGF2aW9yLnBhaW50KGcsIGRyYXdSZWN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBkcmF3VGV4dChnLCBkcmF3UmVjdCwgZmFsc2UsIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdm9pZCBtb3ZlQnkoaW50IGR4LCBpbnQgZHkpIHsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIHZpc2libGVCb3VuZHMgPSBmSG9zdC5nZXRCb3VuZHMoKTsKKyAgICAgICAgICAgIEdyYXBoaWNzIGcgPSBmSG9zdC5nZXRHcmFwaGljcygpOworCisgICAgICAgICAgICBmQm91bmRzLnggKz0gZHg7CisgICAgICAgICAgICBmQm91bmRzLnkgKz0gZHk7CisgICAgICAgICAgICBmT3JpZ2luLnggKz0gZHg7CisgICAgICAgICAgICBmT3JpZ2luLnkgKz0gZHk7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSByZWZyZXNoUmVjdCA9IG5ldyBSZWN0YW5nbGUodmlzaWJsZUJvdW5kcyk7CisKKyAgICAgICAgICAgIGlmIChkeCA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBnLmNvcHlBcmVhKHZpc2libGVCb3VuZHMueCwgdmlzaWJsZUJvdW5kcy55LCB2aXNpYmxlQm91bmRzLndpZHRoLCB2aXNpYmxlQm91bmRzLmhlaWdodCwgZHgsIGR5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGR5IDwgMCkgeworICAgICAgICAgICAgICAgICAgICByZWZyZXNoUmVjdC55ID0gdmlzaWJsZUJvdW5kcy55ICsgdmlzaWJsZUJvdW5kcy5oZWlnaHQgKyBkeTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVmcmVzaFJlY3QuaGVpZ2h0ID0gTWF0aC5hYnMoZHkpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJyZWZyZXNoUmVjdD0iICsgcmVmcmVzaFJlY3QpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXRCZWhhdmlvckRyYXcoZywgcmVmcmVzaFJlY3QpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFJlY3RhbmdsZSBnZXRJbnNldEJvdW5kcygpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGluc2V0RGltID0gMiAqIGZJbnNldEFtb3VudDsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKGZCb3VuZHMueC1mSW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQm91bmRzLnktZkluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkJvdW5kcy53aWR0aCtpbnNldERpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZCb3VuZHMuaGVpZ2h0K2luc2V0RGltKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgaG9zdEJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgUmVjdGFuZ2xlIHRleHRSZWZyZXNoUmVjdCA9IGhvc3RCb3VuZHMuaW50ZXJzZWN0aW9uKGdldEluc2V0Qm91bmRzKCkpOworICAgICAgICAgICAgbGV0QmVoYXZpb3JEcmF3KGcsIHRleHRSZWZyZXNoUmVjdCk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgZ2V0Q2FyZXRSZWN0KFRleHRPZmZzZXQgb2Zmc2V0KSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmdldENhcmV0UmVjdChvZmZzZXQsIGZPcmlnaW4pOworICAgICAgICB9CisKKyAgICAgICAgVGV4dE9mZnNldCBwb2ludFRvVGV4dE9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGFuY2hvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluZmluaXRlTW9kZSkgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5wb2ludFRvVGV4dE9mZnNldChyZXN1bHQsIHgsIHksIGZPcmlnaW4sIGFuY2hvciwgaW5maW5pdGVNb2RlKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlY3RhbmdsZSBnZXRTY3JvbGxhYmxlQXJlYSgpIHsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGFyZWEgPSBuZXcgUmVjdGFuZ2xlKGZCb3VuZHMpOworICAgICAgICAgICAgYXJlYS54ICs9IGZJbnNldEFtb3VudCAtIGZPcmlnaW4ueDsKKyAgICAgICAgICAgIGFyZWEueSArPSBmSW5zZXRBbW91bnQgLSBmT3JpZ2luLnk7CisgICAgICAgICAgICByZXR1cm4gYXJlYTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBEb2Vzbid0IGNsb25lIHNvIFRleHRDb21wb25lbnQgbmVlZHMgdG8gYmUgbmljZS4gIFRleHRDb21wb25lbnQKKyAgICAgICAgICogaXMgdGhlIG9ubHkgY2xhc3Mgd2hpY2ggY2FuIGFjY2VzcyB0aGlzIGFueXdheS4KKyAgICAgICAgICovCisgICAgICAgIFJlY3RhbmdsZSBnZXREb2N1bWVudEJvdW5kcygpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZCb3VuZHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBnZXREb2NYKCkgeworICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luLnggLSBmSW5zZXRBbW91bnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBnZXREb2NZKCkgeworICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luLnkgLSBmSW5zZXRBbW91bnQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIubGluZUNvbnRhaW5pbmcob2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsaW5lUmFuZ2VMb3coaW50IGxpbmVOdW1iZXIpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIubGluZVJhbmdlTG93KGxpbmVOdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVSYW5nZUxpbWl0KGxpbmVOdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKSB7CisKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgZ2V0Qm91bmRpbmdSZWN0KFRleHRPZmZzZXQgb2Zmc2V0MSwgVGV4dE9mZnNldCBvZmZzZXQyKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSByID0gZkZvcm1hdHRlci5nZXRCb3VuZGluZ1JlY3Qob2Zmc2V0MSwgb2Zmc2V0MiwgZk9yaWdpbiwgTUZvcm1hdHRlci5USUdIVCk7CisgICAgICAgICAgICAvL3Iud2lkdGggKz0gQ0FSRVRfU0xPUDsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJvZmZzZXQxPSIrb2Zmc2V0MSsiOyBvZmZzZXQyPSIrb2Zmc2V0Mik7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiYm91bmRzIHdpZHRoPSIrci53aWR0aCsiOyBob3N0IHdpZHRoPSIrKGZIb3N0LmdldEJvdW5kcygpLndpZHRoKSk7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorCisgICAgICAgIFRleHRPZmZzZXQgZmluZE5ld0luc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgaW5pdGlhbE9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcHJldmlvdXNPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIuZmluZE5ld0luc2VydGlvbk9mZnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwgaW5pdGlhbE9mZnNldCwgcHJldmlvdXNPZmZzZXQsIGRpcmVjdGlvbik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dEVkaXRCZWhhdmlvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRFZGl0QmVoYXZpb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MzA1ODljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRFZGl0QmVoYXZpb3IuamF2YQpAQCAtMCwwICsxLDQ4MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCisvLyBBbGwgY2hhbmdlcyB0byB0aGUgdGV4dCBzaG91bGQgaGFwcGVuIGluIHRoaXMgY2xhc3MsIG9yIGluCisvLyBpdHMgVHlwaW5nSW50ZXJhY3Rvci4KKworY2xhc3MgVGV4dEVkaXRCZWhhdmlvciBleHRlbmRzIEJlaGF2aW9yIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZUZXh0Q29tcG9uZW50OworICAgIHByaXZhdGUgVGV4dFNlbGVjdGlvbiBmU2VsZWN0aW9uOworICAgIHByaXZhdGUgTVRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBTaW1wbGVDb21tYW5kTG9nIGZDb21tYW5kTG9nOworICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKyAgICBwcml2YXRlIFR5cGluZ0ludGVyYWN0b3IgZlR5cGluZ0ludGVyYWN0b3IgPSBudWxsOworICAgIHByaXZhdGUgS2V5UmVtYXAgZlJlbWFwOworICAgIAorICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTYXZlZFR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBmU2F2ZWRJbnNQdCA9IDA7CisgICAgCisgICAgcHVibGljIFRleHRFZGl0QmVoYXZpb3IoVGV4dENvbXBvbmVudCB0ZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcCByZW1hcCkgeworCisgICAgICAgIGZUZXh0Q29tcG9uZW50ID0gdGV4dENvbXBvbmVudDsKKyAgICAgICAgZlNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgICAgZlRleHQgPSB0ZXh0Q29tcG9uZW50LmdldE1vZGlmaWFibGVUZXh0KCk7CisgICAgICAgIGZDb21tYW5kTG9nID0gbmV3IFNpbXBsZUNvbW1hbmRMb2cobGlzdGVuZXIpOworICAgICAgICBmTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICAgICAgZlJlbWFwID0gcmVtYXA7CisgICAgfQorCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmUmVtYXA7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBmUmVtYXAgPSByZW1hcDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ0hBUkFDVEVSX1NUWUxFX01PRCB8fAorICAgICAgICAgICAgZXZlbnQgPT0gQmVoYXZpb3IuUEFSQUdSQVBIX1NUWUxFX01PRCkgeworICAgICAgICAgICAgZG9TdHlsZUNoYW5nZShldmVudCwgd2hhdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ1VUKSB7CisgICAgICAgICAgICBkb0N1dCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlBBU1RFKSB7CisgICAgICAgICAgICBkb1Bhc3RlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ0xFQVIpIHsKKyAgICAgICAgICAgIGRvQ2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5SRVBMQUNFKSB7CisgICAgICAgICAgICBkb1VuZG9hYmxlUmVwbGFjZSgoVGV4dFJlcGxhY2VtZW50KSB3aGF0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5VTkRPKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy51bmRvKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuUkVETykgeworICAgICAgICAgICAgZkNvbW1hbmRMb2cucmVkbygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlNFVF9NT0RJRklFRCkgeworICAgICAgICAgICAgZkNvbW1hbmRMb2cuc2V0TW9kaWZpZWQod2hhdCA9PSBCb29sZWFuLlRSVUUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLkNMRUFSX0NPTU1BTkRfTE9HKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy5jbGVhckxvZygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlNFVF9DT01NQU5EX0xPR19TSVpFKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy5zZXRMb2dTaXplKCgoSW50ZWdlcil3aGF0KS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBzdXBlci50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIHdoYXQpOworICAgICAgICB9CisKKyAgICAgICAgY2hlY2tTYXZlZFR5cGluZ1N0eWxlKCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlIHRleHQgaXMgbW9kaWZpZWQgYW5kIHJlZm9ybWF0dGVkIGluCisgICAgICogdGhyZWUgZGlmZmVyZW50IG1ldGhvZHMuICBUaGlzIG1ldGhvZCBpcyB0aGUgImNvbW1vbiBwcm9sb2d1ZSIKKyAgICAgKiBmb3IgYWxsIHRleHQgbW9kaWZpY2F0aW9ucy4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIG1vZGlmeWluZyBhbmQgcmVmb3JtYXR0aW5nCisgICAgICogdGhlIHRleHQuICBJdCBkb2VzIHRocmVlIHRoaW5nczogIHN0b3BzIGNhcmV0IGJsaW5raW5nLCBzdG9wcworICAgICAqIGJhY2tncm91bmQgZm9ybWF0dGluZywgYW5kIHJldHVybnMgdGhlIFJlY3RhbmdsZSBjb250YWluaW5nIHRoZQorICAgICAqIGN1cnJlbnQgKHNvb24tdG8tYmUgb2Jzb2xldGUpIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFJlY3RhbmdsZSBwcmVwYXJlRm9yVGV4dEVkaXQoKSB7CisKKyAgICAgICAgZlNlbGVjdGlvbi5zdG9wQ2FyZXRCbGlua2luZygpOworICAgICAgICBmVGV4dENvbXBvbmVudC5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChmU2VsZWN0aW9uLmdldFN0YXJ0KCksIGZTZWxlY3Rpb24uZ2V0RW5kKCkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0NsZWFyKCkgeworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisKKyAgICAgICAgaWYgKHNlbFJhbmdlLnN0YXJ0ID09IHNlbFJhbmdlLmxpbWl0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGRvVW5kb2FibGVUZXh0Q2hhbmdlKHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCwgbnVsbCwgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQpLCBuZXcgVGV4dE9mZnNldChzZWxSYW5nZS5zdGFydCkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0N1dCgpIHsKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworCisgICAgICAgIGlmIChzZWxSYW5nZS5zdGFydCA9PSBzZWxSYW5nZS5saW1pdCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmVGV4dENvbXBvbmVudC5nZXRDbGlwYm9hcmQoKS5zZXRDb250ZW50cyhmVGV4dC5leHRyYWN0KHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCkpOworICAgICAgICBkb1VuZG9hYmxlVGV4dENoYW5nZShzZWxSYW5nZS5zdGFydCwgc2VsUmFuZ2UubGltaXQsIG51bGwsIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLnN0YXJ0KSwgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2Uuc3RhcnQpKTsKKworICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5DTElQQk9BUkRfQ0hBTkdFRCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvUGFzdGUoKSB7CisgICAgICAgIFRleHRSYW5nZSBzZWxSYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKyAgICAgICAgTUNvbnN0VGV4dCBjbGlwVGV4dCA9IGZUZXh0Q29tcG9uZW50LmdldENsaXBib2FyZCgpLmdldENvbnRlbnRzKEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBpZiAoY2xpcFRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgZG9VbmRvYWJsZVRleHRDaGFuZ2Uoc2VsUmFuZ2Uuc3RhcnQsIHNlbFJhbmdlLmxpbWl0LCBjbGlwVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2Uuc3RhcnQgKyBjbGlwVGV4dC5sZW5ndGgoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLnN0YXJ0ICsgY2xpcFRleHQubGVuZ3RoKCkpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LkNMSVBCT0FSRF9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb1VuZG9hYmxlUmVwbGFjZShUZXh0UmVwbGFjZW1lbnQgcmVwbGFjZW1lbnQpIHsKKworICAgICAgICBkb1VuZG9hYmxlVGV4dENoYW5nZShyZXBsYWNlbWVudC5nZXRTdGFydCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5nZXRMaW1pdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmdldFNlbGVjdGlvblN0YXJ0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmdldFNlbGVjdGlvbkxpbWl0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgVHlwaW5nSW50ZXJhY3RvciBhbmQgVGV4dENvbW1hbmQgc2hvdWxkIGNhbGwgdGhpcyEKKyAgICAgKi8KKyAgICB2b2lkIGRvUmVwbGFjZVRleHQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxFbmQpIHsKKworICAgICAgICBpbnQgdGV4dExlbmd0aDsKKworICAgICAgICBmVGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworCisgICAgICAgIFJlY3RhbmdsZSBvbGRTZWxSZWN0ID0gcHJlcGFyZUZvclRleHRFZGl0KCk7CisKKyAgICAgICAgaWYgKG5ld1RleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dExlbmd0aCA9IDA7CisgICAgICAgICAgICBmVGV4dC5yZW1vdmUoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHRMZW5ndGggPSBuZXdUZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgZlRleHQucmVwbGFjZShzdGFydCwgbGltaXQsIG5ld1RleHQsIDAsIHRleHRMZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGZTZWxlY3Rpb24uc2V0U2VsZWN0aW9uUmFuZ2UobmV3U2VsU3RhcnQsIG5ld1NlbEVuZCwgbmV3U2VsU3RhcnQpOworICAgICAgICByZWZvcm1hdEFuZERyYXdUZXh0KGZTZWxlY3Rpb24uZ2V0U3RhcnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLmdldEVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFNlbFJlY3QpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgdGhlIHR5cGluZyBpbnRlcmFjdG9yIHNob3VsZCBjYWxsIHRoaXMhCisgICAgICovCisgICAgdm9pZCBkb1JlcGxhY2VTZWxlY3RlZFRleHQoY2hhciBjaCwgQXR0cmlidXRlTWFwIGNoYXJTdHlsZSkgeworCisgICAgICAgIGludCBzdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICBpbnQgbGltaXQgPSBmU2VsZWN0aW9uLmdldEVuZCgpLmZPZmZzZXQ7CisgICAgICAgIFRleHRPZmZzZXQgbmV3T2Zmc2V0ID0gbmV3IFRleHRPZmZzZXQoc3RhcnQgKyAxKTsKKyAgICAgICAgZG9SZXBsYWNlVGV4dChzdGFydCwgbGltaXQsIGNoLCBjaGFyU3R5bGUsIG5ld09mZnNldCwgbmV3T2Zmc2V0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9SZXBsYWNlVGV4dChpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNoYXJTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsRW5kKSB7CisKKyAgICAgICAgZlRleHQucmVzZXREYW1hZ2VkUmFuZ2UoKTsKKworICAgICAgICBSZWN0YW5nbGUgb2xkU2VsUmVjdCA9IHByZXBhcmVGb3JUZXh0RWRpdCgpOworCisgICAgICAgIGZUZXh0LnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBjaCwgY2hhclN0eWxlKTsKKworICAgICAgICBmU2VsZWN0aW9uLnNldFNlbGVjdGlvblJhbmdlKG5ld1NlbFN0YXJ0LCBuZXdTZWxFbmQsIG5ld1NlbFN0YXJ0KTsKKyAgICAgICAgcmVmb3JtYXRBbmREcmF3VGV4dChmU2VsZWN0aW9uLmdldFN0YXJ0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbGVjdGlvbi5nZXRFbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTZWxSZWN0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9TdHlsZUNoYW5nZShCZWhhdmlvci5FdmVudFR5cGUgZXZlbnQsIE9iamVjdCB3aGF0KSB7CisKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworICAgICAgICBib29sZWFuIGNoYXJhY3RlciA9IChldmVudCA9PSBCZWhhdmlvci5DSEFSQUNURVJfU1RZTEVfTU9EKTsKKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgIT0gc2VsUmFuZ2UubGltaXQgfHwgIWNoYXJhY3RlcikgeworICAgICAgICAgICAgZG9VbmRvYWJsZVN0eWxlQ2hhbmdlKHdoYXQsIGNoYXJhY3Rlcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBUeXBpbmdJbnRlcmFjdG9yIGludGVyYWN0b3IgPQorICAgICAgICAgICAgICAgIG5ldyBUeXBpbmdJbnRlcmFjdG9yKGZUZXh0Q29tcG9uZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTYXZlZFR5cGluZ1N0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkNvbW1hbmRMb2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpc3RlbmVyKTsKKworICAgICAgICAgICAgaW50ZXJhY3Rvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIGludGVyYWN0b3IudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKGV2ZW50LCB3aGF0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgdGV4dCBjb21tYW5kcyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCEKKyAgICAgKi8KKyAgICB2b2lkIGRvTW9kaWZ5U3R5bGVzKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbEVuZCkgeworCisgICAgICAgIGZUZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisKKyAgICAgICAgUmVjdGFuZ2xlIG9sZFNlbFJlY3QgPSBwcmVwYXJlRm9yVGV4dEVkaXQoKTsKKworICAgICAgICBpZiAoY2hhcmFjdGVyKSB7CisgICAgICAgICAgICBmVGV4dC5tb2RpZnlDaGFyYWN0ZXJTdHlsZXMoc3RhcnQsIGxpbWl0LCBtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoc3RhcnQsIGxpbWl0LCBtb2RpZmllcik7CisgICAgICAgIH0KKworICAgICAgICBmU2VsZWN0aW9uLnNldFNlbGVjdGlvblJhbmdlKG5ld1NlbFN0YXJ0LCBuZXdTZWxFbmQsIG5ld1NlbFN0YXJ0KTsKKyAgICAgICAgcmVmb3JtYXRBbmREcmF3VGV4dChuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkU2VsUmVjdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvVW5kb2FibGVTdHlsZUNoYW5nZShPYmplY3Qgd2hhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisKKyAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQgPSBmU2VsZWN0aW9uLmdldEVuZCgpOworCisgICAgICAgIE1UZXh0IG9sZFRleHQgPSBmVGV4dC5leHRyYWN0V3JpdGFibGUoc2VsU3RhcnQuZk9mZnNldCwgc2VsRW5kLmZPZmZzZXQpOworICAgICAgICBTdHlsZUNoYW5nZUNvbW1hbmQgY29tbWFuZCA9IG5ldyBTdHlsZUNoYW5nZUNvbW1hbmQoCisgICAgICAgICAgICAgICAgdGhpcywgb2xkVGV4dCwgc2VsU3RhcnQsIHNlbEVuZCwgKFN0eWxlTW9kaWZpZXIpIHdoYXQsIGNoYXJhY3Rlcik7CisKKyAgICAgICAgZkNvbW1hbmRMb2cuYWRkQW5kRG8oY29tbWFuZCk7CisKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9VbmRvYWJsZVRleHRDaGFuZ2UoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxFbmQpIHsKKworICAgICAgICBUZXh0Q2hhbmdlQ29tbWFuZCBjb21tYW5kID0gbmV3IFRleHRDaGFuZ2VDb21tYW5kKHRoaXMsIGZUZXh0LmV4dHJhY3RXcml0YWJsZShzdGFydCwgbGltaXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUZXh0LCBzdGFydCwgZlNlbGVjdGlvbi5nZXRTdGFydCgpLCBmU2VsZWN0aW9uLmdldEVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxTdGFydCwgbmV3U2VsRW5kKTsKKworICAgICAgICBmQ29tbWFuZExvZy5hZGRBbmREbyhjb21tYW5kKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworCisgICAgICAgIGJvb2xlYW4gY2FuVW5kbyA9IGZhbHNlOworCisgICAgICAgIGlmIChmVHlwaW5nSW50ZXJhY3RvciAhPSBudWxsKSB7CisgICAgICAgICAgICBjYW5VbmRvID0gZlR5cGluZ0ludGVyYWN0b3IuaGFzUGVuZGluZ0NvbW1hbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghY2FuVW5kbykgeworICAgICAgICAgICAgY2FuVW5kbyA9IGZDb21tYW5kTG9nLmNhblVuZG8oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjYW5VbmRvOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGNhblJlZG8oKSB7CisKKyAgICAgICAgcmV0dXJuIGZDb21tYW5kTG9nLmNhblJlZG8oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZGlmaWVkKCkgeworCisgICAgICAgIGlmIChmVHlwaW5nSW50ZXJhY3RvciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZlR5cGluZ0ludGVyYWN0b3IuaGFzUGVuZGluZ0NvbW1hbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmQ29tbWFuZExvZy5pc01vZGlmaWVkKCk7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRDb21tYW5kTG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkNvbW1hbmRMb2cuZ2V0TG9nU2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0SW5zZXJ0aW9uUG9pbnRTdHlsZSgpIHsKKworICAgICAgICBpZiAoZlR5cGluZ0ludGVyYWN0b3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZUeXBpbmdJbnRlcmFjdG9yLmdldFR5cGluZ1N0eWxlKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlNhdmVkVHlwaW5nU3R5bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZTYXZlZFR5cGluZ1N0eWxlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBUZXh0UmFuZ2UgcmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIHJldHVybiB0eXBpbmdTdHlsZUF0KGZUZXh0LCByYW5nZS5zdGFydCwgcmFuZ2UubGltaXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKworICAgICAgICBib29sZWFuIGhhbmRsZWQgPSB0cnVlOworICAgICAgICBpZiAoVHlwaW5nSW50ZXJhY3Rvci5oYW5kbGVkQnlUeXBpbmdJbnRlcmFjdG9yKGUpKSB7CisgICAgICAgICAgICBUeXBpbmdJbnRlcmFjdG9yIGludGVyYWN0b3IgPSBuZXcgVHlwaW5nSW50ZXJhY3RvcihmVGV4dENvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2F2ZWRUeXBpbmdTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ29tbWFuZExvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaXN0ZW5lcik7CisKKyAgICAgICAgICAgIGludGVyYWN0b3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICBpbnRlcmFjdG9yLmtleVByZXNzZWQoZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBoYW5kbGVkID0gc3VwZXIua2V5UHJlc3NlZChlKTsKKyAgICAgICAgICAgIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGhhbmRsZWQgPSB0cnVlOworICAgICAgICBpZiAoVHlwaW5nSW50ZXJhY3Rvci5oYW5kbGVkQnlUeXBpbmdJbnRlcmFjdG9yKGUpKSB7CisgICAgICAgICAgICBUeXBpbmdJbnRlcmFjdG9yIGludGVyYWN0b3IgPSBuZXcgVHlwaW5nSW50ZXJhY3RvcihmVGV4dENvbXBvbmVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkNvbW1hbmRMb2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTGlzdGVuZXIpOworCisgICAgICAgICAgICBpbnRlcmFjdG9yLmFkZFRvT3duZXIoZlRleHRDb21wb25lbnQpOworICAgICAgICAgICAgaW50ZXJhY3Rvci5rZXlUeXBlZChlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBzdXBlci5rZXlUeXBlZChlKTsKKyAgICAgICAgICAgIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBzdXBlci5tb3VzZVJlbGVhc2VkKGUpOworICAgICAgICBjaGVja1NhdmVkVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlZm9ybWF0QW5kRHJhd1RleHQoVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZSBvbGRTZWxSZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCFmU2VsZWN0aW9uLmVuYWJsZWQoKSkgeworICAgICAgICAgICAgc2VsU3RhcnQgPSBzZWxMaW1pdCA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVmb3JtYXRTdGFydCA9IGZUZXh0LmRhbWFnZWRSYW5nZVN0YXJ0KCk7CisgICAgICAgIGludCByZWZvcm1hdExlbmd0aCA9IGZUZXh0LmRhbWFnZWRSYW5nZUxpbWl0KCkgLSByZWZvcm1hdFN0YXJ0OworCisgICAgICAgIGlmIChyZWZvcm1hdFN0YXJ0ICE9IEludGVnZXIuTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5yZWZvcm1hdEFuZERyYXdUZXh0KHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFNlbFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24uZ2V0SGlnaGxpZ2h0Q29sb3IoKSk7CisgICAgICAgIH0KKworICAgICAgICBmU2VsZWN0aW9uLnNjcm9sbFRvU2hvd1NlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gc29tZXRpbWVzIHRoaXMgc2hvdWxkIHNlbmQgU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VECisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisKKyAgICAgICAgZlNlbGVjdGlvbi5yZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPbmx5IFR5cGluZ0ludGVyYWN0b3Igc2hvdWxkIGNhbGwgdGhpcy4KKyAgICAgKi8KKyAgICB2b2lkIHNldFR5cGluZ0ludGVyYWN0b3IoVHlwaW5nSW50ZXJhY3RvciBpbnRlcmFjdG9yKSB7CisgICAgICAgIGZUeXBpbmdJbnRlcmFjdG9yID0gaW50ZXJhY3RvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPbmx5IFR5cGluZ0ludGVyYWN0b3Igc2hvdWxkIGNhbGwgdGhpcy4KKyAgICAgKi8KKyAgICB2b2lkIHNldFNhdmVkVHlwaW5nU3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlLCBpbnQgaW5zUHQpIHsKKyAgICAKKyAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgZlNhdmVkSW5zUHQgPSBpbnNQdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpIHsKKyAgICAKKyAgICAgICAgaWYgKGZTYXZlZFR5cGluZ1N0eWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICAgICAgaW50IHNlbExpbWl0ID0gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworICAgICAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IGZTYXZlZEluc1B0IHx8IHNlbFN0YXJ0ICE9IHNlbExpbWl0KSB7CisgICAgICAgICAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3R5bGUgYXBwcm9wcmlhdGUgZm9yIHR5cGluZyBvbiB0aGUgZ2l2ZW4gc2VsZWN0aW9uCisgICAgICogcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBBdHRyaWJ1dGVNYXAgdHlwaW5nU3R5bGVBdChNQ29uc3RUZXh0IHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJhY3RlclN0eWxlQXQoc3RhcnQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhcmFjdGVyU3R5bGVBdChzdGFydCAtIDEpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhcmFjdGVyU3R5bGVBdCgwKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTZmYTQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsNTQwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuU2Nyb2xsYmFyOworCitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCisvKioKKyAqIFRleHRQYW5lbCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGV4dFBhbmVsIGluIGFuIEFXVCBQYW5lbC4KKyAqIEBzZWUgTVRleHRQYW5lbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dFBhbmVsIGV4dGVuZHMgUGFuZWwgaW1wbGVtZW50cyBNVGV4dFBhbmVsIHsKKworICAgIHByaXZhdGUgQVRleHRQYW5lbEltcGwgZkltcGw7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCBhbGwgc2V0dGluZ3Mgc2V0CisgICAgICogdG8gdGhlIGRlZmF1bHQgdmFsdWVzLiAgQ2xpZW50cyBjYW4gbW9kaWZ5IHRoaXMgb2JqZWN0OworICAgICAqIG1vZGlmaWNhdGlvbnMgd2lsbCBub3QgYWZmZWN0IHRoZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiBAcmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugc2V0IHRvIGRlZmF1bHQgdmFsdWVzCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dFBhbmVsU2V0dGluZ3MgZ2V0RGVmYXVsdFNldHRpbmdzKCkgeworCisgICAgICAgIHJldHVybiBBVGV4dFBhbmVsSW1wbC5nZXREZWZhdWx0U2V0dGluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dFBhbmVsIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MuCisgICAgICogQHBhcmFtIGluaXRpYWxUZXh0IHRoZSB0ZXh0IGRvY3VtZW50LiAgSWYgbnVsbCBkb2N1bWVudCB0ZXh0IGlzIGVtcHR5LgorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dCwgY29weSwgYW5kIHBhc3RlCisgICAgICogIG9wZXJhdGlvbnMuICBJZiBudWxsIHRoaXMgcGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFBhbmVsKE1Db25zdFRleHQgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgdGhpcyhBVGV4dFBhbmVsSW1wbC5mZ0RlZmF1bHRTZXR0aW5ncywgaW5pdGlhbFRleHQsIGNsaXBib2FyZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gc2V0dGluZ3MgdGhlIHNldHRpbmdzIGZvciB0aGlzIFRleHRQYW5lbAorICAgICAqIEBwYXJhbSBpbml0aWFsVGV4dCB0aGUgdGV4dCBkb2N1bWVudC4gIElmIG51bGwgZG9jdW1lbnQgdGV4dCBpcyBlbXB0eS4KKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQsIGNvcHksIGFuZCBwYXN0ZQorICAgICAqICBvcGVyYXRpb25zLiAgSWYgbnVsbCB0aGlzIHBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBjbGlwYm9hcmQuCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBUZXh0UGFuZWwoVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIFNjcm9sbGJhciBob3J6U2IgPSBudWxsOworICAgICAgICBTY3JvbGxiYXIgdmVydFNiID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCkpIHsKKworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBTY3JvbGxCYXJMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIGJvb2xlYW4gc2Nyb2xsQmFyc1Zpc2libGUgPSBzZXR0aW5ncy5nZXRTY3JvbGxCYXJzVmlzaWJsZSgpOworCisgICAgICAgICAgICBpZiAoc2Nyb2xsQmFyc1Zpc2libGUpIHsKKyAgICAgICAgICAgICAgICBob3J6U2IgPSBuZXcgU2Nyb2xsYmFyKFNjcm9sbGJhci5IT1JJWk9OVEFMKTsKKyAgICAgICAgICAgICAgICB2ZXJ0U2IgPSBuZXcgU2Nyb2xsYmFyKFNjcm9sbGJhci5WRVJUSUNBTCk7CisgICAgICAgICAgICAgICAgYWRkKCJTb3V0aCIsIGhvcnpTYik7CisgICAgICAgICAgICAgICAgYWRkKCJFYXN0IiwgdmVydFNiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICB9CisKKyAgICAgICAgZkltcGwgPSBuZXcgQVRleHRQYW5lbEltcGwobmV3IFJ1blN0cmF0ZWd5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3J6U2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRTYik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmaW5hbCBGYWtlQ29tcG9uZW50IHRleHRDb21wb25lbnQgPSBmSW1wbC5nZXRUZXh0Q29tcG9uZW50KCk7CisgICAgICAgIAorICAgICAgICBDb21wb25lbnQgdGV4dEhvc3QgPSBuZXcgQ29tcG9uZW50KCkgeworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHRDb21wb25lbnQuc2V0SG9zdCh0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFkZE5vdGlmeSgpIHsKKyAgICAgICAgICAgICAgICBzdXBlci5hZGROb3RpZnkoKTsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LmFkZE5vdGlmeSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworICAgICAgICAgICAgICAgIHRleHRDb21wb25lbnQucGFpbnQoZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBhZGQoIkNlbnRlciIsIHRleHRIb3N0KTsKKworICAgICAgICB0ZXh0SG9zdC5yZXF1ZXN0Rm9jdXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIHRvIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIFRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkltcGwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZJbXBsLnJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBUZXh0IEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIEl0IGRvZXMgbm90IG1vZGlmeSBvciBhZG9wdAorICAgICAqIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG1ldGhvZCBzZXRzIHRoZSBzZWxlY3Rpb24gYW4gaW5zZXJ0aW9uIHBvaW50IGF0CisgICAgICogdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aGljaCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIGZJbXBsLnNldFRleHQobmV3VGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBnaXZlbiB0ZXh0IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiAgRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5pbnNlcnQobmV3VGV4dCwgZ2V0VGV4dExlbmd0aCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGFwcGVuZCB0byB0aGUgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisKKyAgICAgICAgZkltcGwuYXBwZW5kKG5ld1RleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluc2VydCB0aGUgZ2l2ZW4gdGV4dCBpbnRvIHRoZSBkb2N1bWVudCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5yZXBsYWNlUmFuZ2UobmV3VGV4dCwgcG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGluc2VydCBpbnRvIHRoZSBkb2N1bWVudC4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIGluIHRoZSBkb2N1bWVudCB3aGVyZSB0aGUKKyAgICAgKiAgICAgdGV4dCB3aWxsIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0KE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgZkltcGwuaW5zZXJ0KG5ld1RleHQsIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBnaXZlbiByYW5nZSB3aXRoIDx0dD5uZXdUZXh0PC90dD4uICBBZnRlciB0aGlzCisgICAgICogb3BlcmF0aW9uIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZQorICAgICAqIGVuZCBvZiB0aGUgbmV3IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2l0aCB3aGljaCB0byByZXBsYWNlIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICogQHBhcmFtIGVuZCB0aGUgZW5kIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZVJhbmdlKE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisKKyAgICAgICAgZkltcGwucmVwbGFjZVJhbmdlKG5ld1RleHQsIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRleHRMZW5ndGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRleHRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0VGV4dCgpOworICAgIH0KKworLy89PT09PT09PT09PT0KKy8vIFNlbGVjdGlvbiBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpIHsKKworICAgICAgICBmSW1wbC5zZXRTZWxlY3Rpb25TdGFydChzZWxlY3Rpb25TdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgZkltcGwuc2V0U2VsZWN0aW9uRW5kKHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBnaXZlbgorICAgICAqIG9mZnNldC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDx0dD5zZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXcgaW5zZXJ0aW9uIHBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FyZXRQb3NpdGlvbihpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBmSW1wbC5zZXRDYXJldFBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byB0aGUgZ2l2ZW4gcmFuZ2UuICBUaGUgcmFuZ2Ugc3RhcnQKKyAgICAgKiBpcyBwaW5uZWQgYmV0d2VlbiAwIGFuZCB0aGUgdGV4dCBsZW5ndGg7ICB0aGUgcmFuZ2UgZW5kIGlzIHBpbm5lZAorICAgICAqIGJldHdlZW4gdGhlIHJhbmdlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgVGhlc2Ugc2VtYW50aWNzCisgICAgICogYXJlIGlkZW50aWNhbCB0byB0aG9zZSBvZiA8dHQ+amF2YS5hd3QuVGV4dENvbXBvbmVudDwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGZJbXBsLnNlbGVjdChzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBkb2N1bWVudC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RBbGwoKSB7CisKKyAgICAgICAgZkltcGwuc2VsZWN0QWxsKCk7CisgICAgfQorCisKKy8vPT09PT09PT09PT09CisvLyBGb3JtYXQgV2lkdGgKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIGZvcm1hdCB3aWR0aCwgaW4gcGl4ZWxzLiAgVGhlIGZvcm1hdCB3aWR0aCBpcyB0aGUKKyAgICAgKiB3aWR0aCB0byB3aGljaCB0ZXh0IGlzIHdyYXBwZWQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW4gdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBwYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KGludCBvZmZzZXQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5VbmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5SZWRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBjb250YWlucyBjb250ZW50cyB3aGljaCBjb3VsZCBiZQorICAgICAqIHRyYW5zZmVyZWQgaW50byB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNsaXBib2FyZE5vdEVtcHR5KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jbGlwYm9hcmROb3RFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IAorICAgICAqIHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIHBhcmFncmFwaCBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgCisgICAgICogZGlmZmVyZW50IHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50IGFuZCBwbGFjZSBpdAorICAgICAqIG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0CisgICAgICogaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGN1dCgpIHsKKyAgICAgICAgZkltcGwuY3V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGxhY2UgdGhlIHNlbGVjdGVkIHRleHQgb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcworICAgICAqIG5vIGVmZmVjdCBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoKSB7CisgICAgICAgIGZJbXBsLmNvcHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB3aXRoIHRoZSB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vCisgICAgICogdGV4dCBpcyBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhc3RlKCkgeworICAgICAgICBmSW1wbC5wYXN0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50LCB3aXRob3V0IGFsdGVyaW5nIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUKKyAgICAgKiB0ZXh0IGlzIG5vdCBlZGl0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgZkltcGwuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gdW5kby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB1bmRvKCkgeworICAgICAgICBmSW1wbC51bmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVkbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHJlZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVkbygpIHsKKyAgICAgICAgZkltcGwucmVkbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb21tYW5kTG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuICBBbGwKKyAgICAgKiByZWRvYWJsZSBjb21tYW5kcyBhcmUgcmVtb3ZlZCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIGtlcHQgaW4gdGhlIGNvbW1hbmQgbG9nCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29tbWFuZExvZ1NpemUoaW50IHNpemUpIHsKKyAgICAgICAgZkltcGwuc2V0Q29tbWFuZExvZ1NpemUoc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBjb21tYW5kcyBmcm9tIHRoZSBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhckNvbW1hbmRMb2coKSB7CisgICAgICAgIGZJbXBsLmNsZWFyQ29tbWFuZExvZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgY2hhcmFjdGVyIHN0eWxlcyBvbiB0aGUgc2VsZWN0ZWQgY2hhcmFjdGVycy4gIElmIG5vIGNoYXJhY3RlcnMKKyAgICAgKiBhcmUgc2VsZWN0ZWQsIG1vZGlmeSB0aGUgdHlwaW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBtb2RpZmllciB0aGUgU3R5bGVNb2RpZmllciB3aXRoIHdoaWNoIHRvIG1vZGlmeSB0aGUgc3R5bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisgICAgICAgIGZJbXBsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmSW1wbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEtleVJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGtleSByZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cworICAgICAqIEBzZWUgI3NldEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRLZXlSZW1hcCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZSB0aGUgZ2l2ZW4gS2V5UmVtYXAgdG8gbWFwIGtleSBldmVudHMgdG8gY2hhcmFjdGVycy4KKyAgICAgKiBPbmx5IGtleQorICAgICAqIGV2ZW50cyBhcmUgYWZmZWN0ZWQgYnkgdGhlIHJlbWFwOyAgb3RoZXIgdGV4dCBlbnRlcmluZyB0aGUKKyAgICAgKiBjb250cm9sICh2aWEgdGhlIGNsaXBib2FyZCwgZm9yIGV4YW1wbGUpIGlzIG5vdCBhZmZlY3RlZAorICAgICAqIGJ5IHRoZSBLZXlSZW1hcC4KKyAgICAgKiA8cD4KKyAgICAgKiBEbyBub3QgcGFzcyA8dHQ+bnVsbDwvdHQ+IHRvIHRoaXMgbWV0aG9kIHRvIGxlYXZlIGtleQorICAgICAqIGV2ZW50cyB1bm1hcHBlZC4gIEluc3RlYWQsIHVzZSA8dHQ+S2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpPC90dD4KKyAgICAgKiBAcGFyYW0gcmVtYXAgdGhlIEtleVJlbWFwIHRvIHVzZSBmb3IgbWFwcGluZyBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBwYXJhbWV0ZXIgaXMgbnVsbAorICAgICAqIEBzZWUgS2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRLZXlSZW1hcChLZXlSZW1hcCByZW1hcCkgeworCisgICAgICAgIGZJbXBsLnNldEtleVJlbWFwKHJlbWFwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqIEBzZWUgI3NldE1vZGlmaWVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuaXNNb2RpZmllZCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCkgeworICAgICAgICAKKyAgICAgICAgZkltcGwuc2V0TW9kaWZpZWQobW9kaWZpZWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGZvciBLZXlFdmVudEZvcndhcmRlcidzIHVzZSBvbmx5IQorICAgICAqLworICAgIEFUZXh0UGFuZWxJbXBsIGdldEltcGwoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbEV2ZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsRXZlbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODFkNDlkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbEV2ZW50LmphdmEKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCisvKioKKyAqIFRleHRQYW5lbEV2ZW50IGlzIGdlbmVyYXRlZCBieSBhbiBNVGV4dFBhbmVsIHRvIG5vdGlmeSBsaXN0ZW5lcnMKKyAqIG9mIGNoYW5nZXMuICBUbyByZWNlaXZlIFRleHRQYW5lbEV2ZW50cyBmcm9tIGFuIE1UZXh0UGFuZWwsIGNsaWVudHMKKyAqIG11c3QgaW1wbGVtZW50IFRleHRQYW5lbExpc3RlbmVyIGFuZCBhZGQgdGhlbXNlbHZlcyB0byB0aGUgTVRleHRQYW5lbCdzCisgKiBsaXN0IG9mIGxpc3RlbmVycy4KKyAqIDxwPgorICogU29tZSBldmVudCB0eXBlcyBhcmUgc3BlY2lhbCBjYXNlcyBvZiBvdGhlcnMuICBUaGlzIGlzIGludGVudGlvbmFsIC0gaXQKKyAqIGFsbG93cyBub3RpZmljYXRpb25zIHRvIGJlIHNlbnQgbGVzcyBvZnRlbiBpbiBjZXJ0YWluIGNvbW1vbiBjYXNlcy4gIEZvcgorICogZXhhbXBsZSwgYSBjaGFuZ2UgaW4gdGhlIHNlbGVjdGlvbiByYW5nZSBnZW5lcmF0ZXMgYSBTRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCAKKyAqIGV2ZW50LiAgVGhpcyBpcyBhIHZlcnkgY29tbW9uIG9jY3VycmFuY2UsIGFuZCBpZiBtYW55IGNsaWVudHMgbGlzdGVuIGZvciB0aGlzCisgKiBldmVudCwgdGhlcmUgbWF5IGJlIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcGVuYWx0eS4gIEJ5CisgKiBsaXN0ZW5pbmcgZm9yIGEgbW9yZSBzcGVjaWFsaXplZCBldmVudCAoc3VjaCBhcyBTRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCksIGNsaWVudHMKKyAqIGNhbiByZWR1Y2UgdGhlIG51bWJlciBvZiBub3RpZmljYXRpb25zIHNlbnQuCisgKiAKKyAqIEBzZWUgTVRleHRQYW5lbAorICogQHNlZSBUZXh0UGFuZWxMaXN0ZW5lcgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dFBhbmVsRXZlbnQgZXh0ZW5kcyBFdmVudE9iamVjdCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBsb3dlciBib3VuZCBvZiBUZXh0UGFuZWxFdmVudCBJRCdzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfUEFORUxfRklSU1QgPSAxMTsKKworICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgaW5kaWNhdGUgYSBjaGFuZ2UgaW4gdGhlIHNlbGVjdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIG9jY3VycyBxdWl0ZSBvZnRlbi4gIE1vc3QgY2xpZW50cyBkbyBub3QgbmVlZCB0byBiZSAKKyAgICAgKiBub3RpZmllZCBldmVyeSB0aW1lIHRoZSBzZWxlY3Rpb24gcmFuZ2UgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCA9IDExOworICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGJlY29tZXMKKyAgICAgKiAwLWxlbmd0aCBhZnRlciBub3QgYmVpbmcgMC1sZW5ndGgsIG9yIHZpY2UgdmVyc2EuICBUaGlzIGV2ZW50CisgICAgICogaXMgYSBzcGVjaWFsIGNhc2Ugb2YgU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQgPSAxMjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGluZGljYXRlIHRoYXQgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbCBjaGFuZ2VkLgorICAgICAqIFRoaXMgdHlwZSBvZiBldmVudCBvY2N1cnMgb2Z0ZW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9DSEFOR0VEID0gMTM7CisgICAgCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIHRoZSBzdHlsZXMgaW4gdGhlIGN1cnJlbnQKKyAgICAgKiBzZWxlY3Rpb24gY2hhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCA9IDE0OworICAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gdGhlIHVuZG8vcmVkbyBzdGF0ZSBjaGFuZ2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVORE9fU1RBVEVfQ0hBTkdFRCA9IDE1OworICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiB0aGUgY2xpcGJvYXJkIHN0YXRlIGNoYW5nZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0xJUEJPQVJEX0NIQU5HRUQgPSAxNjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gCisgICAgICogdGhlIHdyYXAgd2lkdGggb2YgdGhlIHRleHQgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfV0lEVEhfQ0hBTkdFRCA9IDE3OworCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIHRoZSBrZXkgcmVtYXAgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLRVlSRU1BUF9DSEFOR0VEID0gMTg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdXBwZXIgYm91bmQgb2YgVGV4dFBhbmVsRXZlbnQgSUQncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX1BBTkVMX0xBU1QgPSAxODsKKworICAgIHByaXZhdGUgaW50IGZJZDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0UGFuZWxFdmVudC4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBNVGV4dFBhbmVsIHdoaWNoIGdlbmVyYXRlZCB0aGUgZXZlbnQKKyAgICAgKiBAcGFyYW0gaWQgdGhlIElEIGZvciB0aGlzIGV2ZW50LiAgTXVzdCBiZSB3aXRoaW4KKyAgICAgKiBbVEVYVF9QQU5FTF9GSVJTVCwgVEVYVF9QQU5FTF9MQVNUXS4KKyAgICAgKi8KKyAgICBUZXh0UGFuZWxFdmVudChNVGV4dFBhbmVsIHNvdXJjZSwgaW50IGlkKSB7CisKKyAgICAgICAgc3VwZXIoc291cmNlKTsKKyAgICAgICAgaWYgKGlkIDwgVEVYVF9QQU5FTF9GSVJTVCB8fCBpZCA+IFRFWFRfUEFORUxfTEFTVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiaWQgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIH0KKyAgICAgICAgZklkID0gaWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBldmVudCBJRCBmb3IgdGhpcyBldmVudC4gIEV2ZW50IElEJ3MgYXJlCisgICAgICogb25lIG9mIHRoZSBjbGFzcyBjb25zdGFudHMuCisgICAgICogQHJldHVybiB0aGUgZXZlbnQgSUQgZm9yIHRoaXMgZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldElEKCkgeworCisgICAgICAgIHJldHVybiBmSWQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZGVzYyA9IG51bGw7CisgICAgICAgIAorICAgICAgICBzd2l0Y2goZklkKSB7CisgICAgICAgICAgICBjYXNlIFNFTEVDVElPTl9SQU5HRV9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVEVYVF9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiVEVYVF9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVU5ET19TVEFURV9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiVU5ET19TVEFURV9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0xJUEJPQVJEX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJDTElQQk9BUkRfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEZPUk1BVF9XSURUSF9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiRk9STUFUX1dJRFRIX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLRVlSRU1BUF9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiS0VZUkVNQVBfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJbVGV4dFBhbmVsRXZlbnQ6IitkZXNjKyJdIjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsTGlzdGVuZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ0YzlkNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDQwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoqCisgKiBUaGlzIGludGVyZmFjZSBpcyBpbXBsZW1lbnRlZCBieSBjbGFzc2VzIHdoaWNoCisgKiByZWNlaXZlIGNoYW5nZSBub3RpZmljYXRpb25zIGZyb20gYW4gTVRleHRQYW5lbC4KKyAqIEBzZWUgTVRleHRQYW5lbAorICogQHNlZSBUZXh0UGFuZWxFdmVudAorICovCitwdWJsaWMgaW50ZXJmYWNlIFRleHRQYW5lbExpc3RlbmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogTm90aWZ5IGxpc3RlbmVyIG9mIGFuIE1UZXh0UGFuZWwgY2hhbmdlLgorICAgICAqIEBwYXJhbSBldmVudCBhIFRleHRQYW5lbEV2ZW50IGluZGljYXRpbmcgd2hhdCBoYXBwZW5lZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBsaXN0ZW5lciBuZWVkcyB0byBiZSBub3RpZmllZCBvZiAKKyAgICAgKiB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS4gIFRoaXMgYWxsb3dzIGEgdGV4dCBwYW5lbCB0byBhdm9pZAorICAgICAqIHNlbmRpbmcgZXZlbnRzIHRvIHVuaW50ZXJlc3RlZCBwYXJ0aWVzLgorICAgICAqIEBwYXJhbSB0eXBlIGFuIGV2ZW50IElEIGZyb20gVGV4dFBhbmVsRXZlbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBsaXN0ZW5lciBuZWVkcyB0byBiZSBub3RpZmllZCBvZgorICAgICAqIGV2ZW50cyBvZiB0aGUgZ2l2ZW4gdHlwZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbFNldHRpbmdzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsU2V0dGluZ3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNGViMmEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbFNldHRpbmdzLmphdmEKQEAgLTAsMCArMSwyODQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdGFuZGFyZFRhYlJ1bGVyOworCisvKioKKyAqIFRoaXMgY2xhc3MgY29udGFpbnMgc2V0dGluZ3MgdXNlZCB3aGVuIGNvbnN0cnVjdGluZyBhbiBNVGV4dFBhbmVsLgorICogVGhlIHNldHRpbmdzIGNvbnRyb2xlZCBieSB0aGlzIGNsYXNzIGluY2x1ZGU6CisgKiA8dWw+CisgKiA8bGk+d2hldGhlciB0aGUgdGV4dCBpbiB0aGUgTVRleHRQYW5lbCBjYW4gYmUgc2Nyb2xsZWQ8L2xpPgorICogPGxpPndoZXRoZXIgc2Nyb2xsIGJhcnMgaW4gdGhlIE1UZXh0UGFuZWwgYXJlIHZpc2libGU8L2xpPgorICogPGxpPndoZXRoZXIgdGhlIHRleHQgaW4gdGhlIE1UZXh0UGFuZWwgY2FuIGJlIHNlbGVjdGVkPC9saT4KKyAqIDxsaT53aGV0aGVyIHRoZSB0ZXh0IGluIHRoZSBNVGV4dFBhbmVsIGNhbiBiZSBlZGl0ZWQ8L2xpPgorICogPGxpPndoZXRoZXIgbGluZXMgb2YgdGV4dCB3cmFwIHRvIHRoZSBNVGV4dFBhbmVsJ3Mgd2lkdGgsIG9yCisgKiBvbmx5IGVuZCBhdCBwYXJhZ3JhcGggc2VwYXJhdG9yczwvbGk+CisgKiA8bGk+dGhlIGRlZmF1bHQgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBzdHlsZXM8L2xpPgorICogPC91bD4KKyAqIFNvbWUgc2V0dGluZ3MgYXJlIGRlcGVuZGVudCBvbiBvdGhlcnMuICBTY3JvbGwgYmFycyBhcmUgdmlzaWJsZQorICogb25seSBpZiB0aGUgdGV4dCBpcyBzY3JvbGxhYmxlLiAgQWxzbywgdGV4dCB3aGljaCBpcyBub3QgZWRpdGFibGUKKyAqIGlmIGl0IGlzIG5vdCBzZWxlY3RhYmxlLgorICogPHA+CisgKgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0UGFuZWxTZXR0aW5ncyBpbXBsZW1lbnRzIENsb25lYWJsZSwgU2VyaWFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC00MDg5MTg2NjYzMDE4NzA3NDc4TDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgREVGQVVMVFM7CisgICAgCisgICAgc3RhdGljIHsKKyAgICAgICAgZmluYWwgRmxvYXQgZmxvYXRaZXJvID0gbmV3IEZsb2F0KDAuMGYpOworCisgICAgICAgIEhhc2h0YWJsZSBkZWZhdWx0cyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRkFNSUxZLCAiU2VyaWYiKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuV0VJR0hULCBuZXcgRmxvYXQoMS4wZikpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoMTguMGYpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsIG5ldyBJbnRlZ2VyKDApKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRk9SRUdST1VORCwgQ29sb3IuYmxhY2spOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsIG5ldyBJbnRlZ2VyKC0xKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsIEJvb2xlYW4uRkFMU0UpOworCisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkVYVFJBX0xJTkVfU1BBQ0lORywgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLk1JTl9MSU5FX1NQQUNJTkcsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsIFRleHRBdHRyaWJ1dGUuRkxVU0hfTEVBRElORyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgbmV3IFN0YW5kYXJkVGFiUnVsZXIoKSk7CisKKyAgICAgICAgREVGQVVMVFMgPSBuZXcgQXR0cmlidXRlTWFwKGRlZmF1bHRzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGZTY3JvbGxhYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlNjcm9sbEJhcnNWaXNpYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlNlbGVjdGFibGUgPSB0cnVlOworICAgIHByaXZhdGUgYm9vbGVhbiBmRWRpdGFibGUgPSB0cnVlOworICAgIHByaXZhdGUgYm9vbGVhbiBmV3JhcHMgPSB0cnVlOworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZEZWZhdWx0VmFsdWVzID0gREVGQVVMVFM7CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCBhbGwgc2V0dGluZ3MKKyAgICAgKiBzZXQgdG8gdHJ1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFBhbmVsU2V0dGluZ3MoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlIHdpdGggdGhlCisgICAgICogc2FtZSBzZXR0aW5ncyBhcyB0aGlzLgorICAgICAqIEByZXR1cm4gYSBuZXcgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworCisgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHJocyA9IG5ldyBUZXh0UGFuZWxTZXR0aW5ncygpOworCisgICAgICAgIHJocy5mU2Nyb2xsYWJsZSA9IGZTY3JvbGxhYmxlOworICAgICAgICByaHMuZlNjcm9sbEJhcnNWaXNpYmxlID0gZlNjcm9sbEJhcnNWaXNpYmxlOworICAgICAgICByaHMuZlNlbGVjdGFibGUgPSBmU2VsZWN0YWJsZTsKKyAgICAgICAgcmhzLmZFZGl0YWJsZSA9IGZFZGl0YWJsZTsKKyAgICAgICAgcmhzLmZXcmFwcyA9IGZXcmFwczsKKyAgICAgICAgcmhzLmZEZWZhdWx0VmFsdWVzID0gZkRlZmF1bHRWYWx1ZXM7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmhzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgdGV4dAorICAgICAqIGluIGFuIE1UZXh0UGFuZWwgY2FuIGJlIHNjcm9sbGVkLgorICAgICAqIEByZXR1cm4gdGhlIHNjcm9sbGFibGUgc2V0dGluZworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdldFNjcm9sbGFibGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZTY3JvbGxhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nLgorICAgICAqIEBwYXJhbSBzY3JvbGxhYmxlIHRoZSBzY3JvbGxhYmxlIHNldHRpbmcuICBJZiBmYWxzZSwKKyAgICAgKiB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZyBpcyBhbHNvIHNldCB0byBmYWxzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTY3JvbGxhYmxlKGJvb2xlYW4gc2Nyb2xsYWJsZSkgeworCisgICAgICAgIGZTY3JvbGxhYmxlID0gc2Nyb2xsYWJsZTsKKyAgICAgICAgZlNjcm9sbEJhcnNWaXNpYmxlICY9IHNjcm9sbGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzY3JvbGxCYXJzVmlzaWJsZSBzZXR0aW5nLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIKKyAgICAgKiBzY3JvbGwgYmFycyBpbiBhbiBNVGV4dFBhbmVsIGFyZSB2aXNpYmxlLgorICAgICAqIEByZXR1cm4gdGhlIHNjcm9sbEJhcnNWaXNpYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRTY3JvbGxCYXJzVmlzaWJsZSgpIHsKKworICAgICAgICByZXR1cm4gZlNjcm9sbEJhcnNWaXNpYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gdmlzIHRoZSBzY3JvbGxCYXJzVmlzaWJsZSBzZXR0aW5nLiAgSWYgdHJ1ZSwKKyAgICAgKiB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nIGlzIGFsc28gc2V0IHRvIHRydWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Nyb2xsQmFyc1Zpc2libGUoYm9vbGVhbiB2aXMpIHsKKworICAgICAgICBmU2Nyb2xsQmFyc1Zpc2libGUgPSB2aXM7CisgICAgICAgIGZTY3JvbGxhYmxlIHw9IHZpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNlbGVjdGFibGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICogdGV4dCBpbiBhbiBNVGV4dFBhbmVsIGNhbiBiZSBzZWxlY3RlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZWxlY3RhYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRTZWxlY3RhYmxlKCkgeworCisgICAgICAgIHJldHVybiBmU2VsZWN0YWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGFibGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gc2VsZWN0YWJsZSB0aGUgc2VsZWN0YWJsZSBzZXR0aW5nLiAgSWYgZmFsc2UsCisgICAgICogdGhlIGVkaXRhYmxlIHNldHRpbmcgaXMgYWxzbyBzZXQgdG8gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0YWJsZShib29sZWFuIHNlbGVjdGFibGUpIHsKKworICAgICAgICBmU2VsZWN0YWJsZSA9IHNlbGVjdGFibGU7CisgICAgICAgIGZFZGl0YWJsZSAmPSBzZWxlY3RhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZWRpdGFibGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICogdGV4dCBpbiBhbiBNVGV4dFBhbmVsIGNhbiBiZSBlZGl0ZWQuCisgICAgICogQHJldHVybiB0aGUgZWRpdGFibGUgc2V0dGluZworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdldEVkaXRhYmxlKCkgeworCisgICAgICAgIHJldHVybiBmRWRpdGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlZGl0YWJsZSBzZXR0aW5nLgorICAgICAqIEBwYXJhbSBlZGl0YWJsZSB0aGUgZWRpdGFibGUgc2V0dGluZy4gIElmIHRydWUsCisgICAgICogdGhlIHNlbGVjdGFibGUgc2V0dGluZyBpcyBhbHNvIHNldCB0byB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVkaXRhYmxlKGJvb2xlYW4gZWRpdGFibGUpIHsKKworICAgICAgICBmRWRpdGFibGUgPSBlZGl0YWJsZTsKKyAgICAgICAgZlNlbGVjdGFibGUgfD0gZWRpdGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB3cmFwcyBzZXR0aW5nLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIKKyAgICAgKiBsaW5lcyBvZiB0ZXh0IHdyYXAgdG8gdGhlIGxlbmd0aCBvZiB0aGUgTVRleHRQYW5lbCwKKyAgICAgKiBvciBvbmx5IGF0IHBhcmFncmFwaCBzZXBhcmF0b3JzLgorICAgICAqIEByZXR1cm4gdGhlIHdyYXBzIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRXcmFwcygpIHsKKworICAgICAgICByZXR1cm4gZldyYXBzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgd3JhcHMgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gd3JhcHMgdGhlIHdyYXBzIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRXcmFwcyhib29sZWFuIHdyYXBzKSB7CisKKyAgICAgICAgZldyYXBzID0gd3JhcHM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQgdmFsdWVzIGZvciBjZXJ0YWluIGtleXMuCisgICAgICogV2hlbiBhIGtleSBpbiB0aGlzIEF0dHJpYnV0ZU1hcCBpcyBub3Qgc3BlY2lmaWVkLCBpdHMgdmFsdWUKKyAgICAgKiBpcyB0YWtlbiBmcm9tIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gdGhlIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IHZhbHVlcworICAgICAqIEBzZWUgTVRleHRQYW5lbCNnZXREZWZhdWx0VmFsdWVzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkRlZmF1bHRWYWx1ZXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZCB0aGUga2V5LXZhbHVlIHBhaXJzIGluIHRoZSBnaXZlbiBBdHRyaWJ1dGVNYXAgdG8gdGhlCisgICAgICogZGVmYXVsdCB2YWx1ZXMuICBJZiBhIGtleSBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGdpdmVuCisgICAgICogQXR0cmlidXRlTWFwLCBpdHMgdmFsdWUgaW4gdGhlIGRlZmF1bHQgdmFsdWUgbWFwIGlzCisgICAgICogdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBtYXAgYW4gQXR0cmlidXRlTWFwIGNvbnRhaW5pbmcgbmV3IGRlZmF1bHQgdmFsdWVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkRGVmYXVsdFZhbHVlcyhBdHRyaWJ1dGVNYXAgbWFwKSB7CisgICAgCisgICAgICAgIGZEZWZhdWx0VmFsdWVzID0gZkRlZmF1bHRWYWx1ZXMuYWRkQXR0cmlidXRlcyhtYXApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBPYmplY3QuICBUaGlzIGlzIGVxdWFsCisgICAgICogdG8gYW5vdGhlciBPYmplY3QgaWYgdGhlIG90aGVyIE9iamVjdCBpcyBhCisgICAgICogVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCB0aGUgc2FtZQorICAgICAqIHNldHRpbmdzIGFzIHRoaXMgb25lLgorICAgICAqIEBwYXJhbSByaHMgdGhlIE9iamVjdCB0byBjb21wYXJlIHRvCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKworICAgICAgICBpZiAocmhzID09IHRoaXMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJocyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyBvdGhlcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG90aGVyID0gKFRleHRQYW5lbFNldHRpbmdzKSByaHM7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG90aGVyLmZTY3JvbGxhYmxlID09IHRoaXMuZlNjcm9sbGFibGUgJiYKKyAgICAgICAgICAgICAgIG90aGVyLmZTY3JvbGxCYXJzVmlzaWJsZSA9PSB0aGlzLmZTY3JvbGxCYXJzVmlzaWJsZSAmJgorICAgICAgICAgICAgICAgb3RoZXIuZlNlbGVjdGFibGUgPT0gdGhpcy5mU2VsZWN0YWJsZSAmJgorICAgICAgICAgICAgICAgb3RoZXIuZkVkaXRhYmxlID09IHRoaXMuZkVkaXRhYmxlICYmCisgICAgICAgICAgICAgICBvdGhlci5mV3JhcHMgPT0gdGhpcy5mV3JhcHMgJiYKKyAgICAgICAgICAgICAgIG90aGVyLmZEZWZhdWx0VmFsdWVzLmVxdWFscyh0aGlzLmZEZWZhdWx0VmFsdWVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2ggY29kZSBmb3IgdGhpcyBPYmplY3QuCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlIGZvciB0aGlzIE9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgaW50IGNvZGUgPSBmRGVmYXVsdFZhbHVlcy5oYXNoQ29kZSgpOworICAgICAgICBjb2RlID0gY29kZSoyICsgKGZTY3JvbGxhYmxlPyAxOjApOworICAgICAgICBjb2RlID0gY29kZSoyICsgKGZTY3JvbGxCYXJzVmlzaWJsZT8gMTowKTsKKyAgICAgICAgY29kZSA9IGNvZGUqMiArIChmU2VsZWN0YWJsZT8gMTowKTsKKyAgICAgICAgY29kZSA9IGNvZGUqMiArIChmRWRpdGFibGU/IDE6MCk7CisgICAgICAgIGNvZGUgPSBjb2RlKjIgKyAoZldyYXBzPyAxOjApOworCisgICAgICAgIHJldHVybiBjb2RlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmFuZ2UuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmFuZ2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNzIyZTczCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRSYW5nZS5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCisvKioKKyogQSA8VFQ+VGV4dFJhbmdlPC9UVD4gcmVwcmVzZW50cyBhIHJhbmdlIG9mIHRleHQgYm91bmRlZCBieSBhCisqIHN0YXJ0IChpbmNsdXNpdmUpLCBhbmQgYSBsaW1pdCAoZXhjbHVzaXZlKS4gIFtzdGFydCxsaW1pdCkKKyovCitmaW5hbCBjbGFzcyBUZXh0UmFuZ2UKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKiB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlICovCisgICAgcHVibGljIGludCBzdGFydCA9IDA7CisgICAgLyoqIHRoZSBlbmQgb2YgdGhlIHJhbmdlICovCisgICAgcHVibGljIGludCBsaW1pdCA9IDA7CisKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhIHRleHQgcmFuZ2UgZnJvbSB0d28gaW50cy4KKyAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJ1bgorICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmQgb2YgdGhlIHJ1bgorICAgICovCisgICAgcHVibGljIFRleHRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIC8qKgorICAgICogQ3JlYXRlIGEgdGV4dCByYW5nZSBvZiAwLCAwLgorICAgICovCisgICAgcHVibGljIFRleHRSYW5nZSgpIHsKKyAgICAgICAgdGhpcy5zdGFydCA9IHRoaXMubGltaXQgPSAwOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmVwbGFjZW1lbnQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmVwbGFjZW1lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YjViNzk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRSZXBsYWNlbWVudC5qYXZhCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHBhc3MgYSBSRVBMQUNFIGNvbW1hbmQgdG8gQmVoYXZpb3JzLgorICovCitmaW5hbCBjbGFzcyBUZXh0UmVwbGFjZW1lbnQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGludCBmU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkxpbWl0OworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbFN0YXJ0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCBmU2VsTGltaXQ7CisKKyAgICBUZXh0UmVwbGFjZW1lbnQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxMaW1pdCkgeworCisgICAgICAgIGZTdGFydCA9IHN0YXJ0OworICAgICAgICBmTGltaXQgPSBsaW1pdDsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmU2VsU3RhcnQgPSBzZWxTdGFydDsKKyAgICAgICAgZlNlbExpbWl0ID0gc2VsTGltaXQ7CisgICAgfQorCisgICAgaW50IGdldFN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmU3RhcnQ7CisgICAgfQorCisgICAgaW50IGdldExpbWl0KCkgeworCisgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgfQorCisgICAgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICB9CisKKyAgICBUZXh0T2Zmc2V0IGdldFNlbGVjdGlvblN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmU2VsU3RhcnQ7CisgICAgfQorCisgICAgVGV4dE9mZnNldCBnZXRTZWxlY3Rpb25MaW1pdCgpIHsKKworICAgICAgICByZXR1cm4gZlNlbExpbWl0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0U2VsZWN0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFNlbGVjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwZGVlMTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFNlbGVjdGlvbi5qYXZhCkBAIC0wLDAgKzEsOTIyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoKKyAgICA3LzEvOTcgLSBjYXJldCBibGlua3MKKworICAgIDcvMy85NyAtIGZBbmNob3IgaXMgbm8gbG9uZ2VyIHJlc3RyaWN0ZWQgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgc2VsZWN0aW9uLiB7amJyfQorICAgICAgICAgICAgQWxzbywgcmVtb3ZlZCBmVmlzaWJsZSAtIGl0IHdhcyBpZGVudGljYWwgdG8gZW5hYmxlZCgpLgorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuTUZvcm1hdHRlcjsKKworY2xhc3MgVGV4dFNlbGVjdGlvbiBleHRlbmRzIEJlaGF2aW9yIGltcGxlbWVudHMgUnVubmFibGUgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgc3RhdGljIGZpbmFsIENvbG9yICAgICAgICAgIEhJR0hMSUdIVENPTE9SID0gQ29sb3IucGluazsKKworICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCAgICAgICBmVGV4dENvbXBvbmVudDsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgICAgICAgICAgZlRleHQ7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0ICAgICAgICAgIGZTdGFydDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgICAgICAgICAgZkxpbWl0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCAgICAgICAgICBmQW5jaG9yOworICAgIHByaXZhdGUgVGV4dE9mZnNldCAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgIHByaXZhdGUgQ29sb3IgICAgICAgICAgICAgICBmSGlnaGxpZ2h0Q29sb3IgPSBISUdITElHSFRDT0xPUjsKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciAgIGZMaXN0ZW5lcjsKKyAgICBwcml2YXRlIFJ1blN0cmF0ZWd5ICAgICAgICAgZlJ1blN0cmF0ZWd5OworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgICAgICBmTW91c2VEb3duID0gZmFsc2U7CisgICAgcHJpdmF0ZSBib29sZWFuICAgICAgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBmQ2FyZXRTaG91bGRCbGluazsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNhcmV0SXNWaXNpYmxlOworICAgIHByaXZhdGUgaW50IGZDYXJldENvdW50OworCisgICAgLy8gZm9ybWVybHkgaW4gYmFzZSBjbGFzcworICAgIHByaXZhdGUgYm9vbGVhbiBmRW5hYmxlZDsKKworICAgIHByaXZhdGUgTW91c2VFdmVudCBmUGVuZGluZ01vdXNlRXZlbnQgPSBudWxsOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtDYXJldEludGVydmFsID0gNTAwOworCisgICAgcHVibGljIHZvaWQgcnVuKCkgeworCisgICAgICAgIGZpbmFsIFJ1bm5hYmxlIGJsaW5rQ2FyZXQgPSBuZXcgUnVubmFibGUoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICAgICAgZkNhcmV0SXNWaXNpYmxlID0gIWZDYXJldElzVmlzaWJsZTsKKyAgICAgICAgICAgICAgICBHcmFwaGljcyBnID0gZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgICAgICAgICBpZiAoZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJjYXJldElzVmlzaWJsZTogIiArIGZDYXJldElzVmlzaWJsZSk7CisgICAgICAgICAgICAgICAgICAgIGRyYXdTZWxlY3Rpb24oZywgZkNhcmV0SXNWaXNpYmxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vdCBzdXJlIHdoYXQgZWxzZSB0byBkbzoKKyAgICAgICAgICAgICAgICAgICAgZkNhcmV0U2hvdWxkQmxpbmsgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICAvLyBibGluayBjYXJldAorICAgICAgICB3aGlsZSAodHJ1ZSkgeworCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQodGhpcykgeworCisgICAgICAgICAgICAgICAgd2hpbGUgKCFmQ2FyZXRTaG91bGRCbGluaykgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IEludGVycnVwdGVkRXhjZXB0aW9uIGluIGNhcmV0IHRocmVhZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICsrZkNhcmV0Q291bnQ7CisKKyAgICAgICAgICAgICAgICBpZiAoZkNhcmV0Q291bnQgJSAyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5LmRvSXQoYmxpbmtDYXJldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcChrQ2FyZXRJbnRlcnZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgcHVibGljIFRleHRTZWxlY3Rpb24oVGV4dENvbXBvbmVudCB0ZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSdW5TdHJhdGVneSBydW5TdHJhdGVneSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmVGV4dENvbXBvbmVudCA9IHRleHRDb21wb25lbnQ7CisgICAgICAgIGZUZXh0ID0gdGV4dENvbXBvbmVudC5nZXRUZXh0KCk7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworICAgICAgICBmUnVuU3RyYXRlZ3kgPSBydW5TdHJhdGVneTsKKyAgICAgICAgCisgICAgICAgIGZTdGFydCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZMaW1pdCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZBbmNob3IgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmTW91c2VEb3duID0gZmFsc2U7CisKKyAgICAgICAgZkNhcmV0Q291bnQgPSAwOworICAgICAgICBmQ2FyZXRJc1Zpc2libGUgPSB0cnVlOworICAgICAgICBmQ2FyZXRTaG91bGRCbGluayA9IGZhbHNlOworICAgICAgICBzZXRFbmFibGVkKGZhbHNlKTsKKworICAgICAgICBUaHJlYWQgY2FyZXRUaHJlYWQgPSBuZXcgVGhyZWFkKHRoaXMpOworICAgICAgICBjYXJldFRocmVhZC5zZXREYWVtb24odHJ1ZSk7CisgICAgICAgIGNhcmV0VGhyZWFkLnN0YXJ0KCk7CisgICAgfQorCisgICAgYm9vbGVhbiBlbmFibGVkKCkgeworCisgICAgICAgIHJldHVybiBmRW5hYmxlZDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKKworICAgICAgICBmRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkV2ZW50VHlwZSBldmVudCwgT2JqZWN0IHdoYXQpIHsKKworICAgICAgICBib29sZWFuIHJlc3VsdDsKKyAgICAgICAgZkhhbmRsaW5nS2V5T3JDb21tYW5kID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChldmVudCA9PSBCZWhhdmlvci5TRUxFQ1QpIHsKKyAgICAgICAgICAgIHNlbGVjdCgoVGV4dFJhbmdlKSB3aGF0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ09QWSkgeworICAgICAgICAgICAgZlRleHRDb21wb25lbnQuZ2V0Q2xpcGJvYXJkKCkuc2V0Q29udGVudHMoZlRleHQuZXh0cmFjdChmU3RhcnQuZk9mZnNldCwgZkxpbWl0LmZPZmZzZXQpKTsKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LkNMSVBCT0FSRF9DSEFOR0VEKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkhhbmRsaW5nS2V5T3JDb21tYW5kID0gZmFsc2U7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KFRleHRPZmZzZXQgb2Zmc2V0KSB7CisgICAgCisgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gYm91bmRhcmllcyBvYmplY3QsIG9yIGlmIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgIC8vIGRvY3VtZW50LCByZXR1cm4gdGhlIG9mZnNldCB1bmNoYW5nZWQKKyAgICAgICAgaWYgKGZCb3VuZGFyaWVzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHBvc2l0aW9uID0gb2Zmc2V0LmZPZmZzZXQ7CisgICAgICAgIAorICAgICAgICBpZiAocG9zaXRpb24gPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHBvc2l0aW9uIGlzIGF0IGEgYm91bmRhcnkgYW5kIG9mZnNldCBpcyBiZWZvcmUgcG9zaXRpb24sCisgICAgICAgIC8vIGxlYXZlIGl0IHVuY2hhbmdlZC4gIE90aGVyd2lzZSBtb3ZlIHRvIG5leHQgYm91bmRhcnkuCisgICAgICAgIGludCBuZXh0UG9zID0gZkJvdW5kYXJpZXMuZm9sbG93aW5nKHBvc2l0aW9uKTsKKyAgICAgICAgaWYgKGZCb3VuZGFyaWVzLnByZXZpb3VzKCkgPT0gcG9zaXRpb24gJiYgCisgICAgICAgICAgICAgICAgb2Zmc2V0LmZQbGFjZW1lbnQ9PVRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvZmZzZXQuc2V0T2Zmc2V0KG5leHRQb3MsIFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KFRleHRPZmZzZXQgb2Zmc2V0KSB7CisgICAgCisgICAgICAgIGFkdmFuY2VUb1ByZXZpb3VzQm91bmRhcnkob2Zmc2V0LCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KFRleHRPZmZzZXQgb2Zmc2V0LCBib29sZWFuIGFsd2F5c01vdmUpIHsKKyAgICAgICAgLy8gaWYgdGhlcmUncyBubyBib3VuZGFyaWVzIG9iamVjdCwgb3IgaWYgd2UncmUgc2l0dGluZyBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgIC8vIG9mIHRoZSBkb2N1bWVudCwgcmV0dXJuIHRoZSBvZmZzZXQgdW5jaGFuZ2VkCisgICAgICAgIGlmIChmQm91bmRhcmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBwb3NpdGlvbiA9IG9mZnNldC5mT2Zmc2V0OworCisgICAgICAgIGlmIChwb3NpdGlvbiA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIElmIHBvc2l0aW9uIGlzIGF0IGEgYm91bmRhcnksIGxlYXZlIGl0IHVuY2hhbmdlZC4gIE90aGVyd2lzZQorICAgICAgICAvLyBtb3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJ5LgorICAgICAgICBpZiAocG9zaXRpb24gPT0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGZCb3VuZGFyaWVzLmxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZCb3VuZGFyaWVzLmZvbGxvd2luZyhwb3NpdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBwcmV2UG9zID0gZkJvdW5kYXJpZXMucHJldmlvdXMoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwcmV2UG9zID09IHBvc2l0aW9uKSB7CisgICAgICAgICAgICBpZiAoIWFsd2F5c01vdmUgJiYgb2Zmc2V0LmZQbGFjZW1lbnQ9PVRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcmV2UG9zID0gZkJvdW5kYXJpZXMucHJldmlvdXMoKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBhbmQgZmluYWxseSB1cGRhdGUgdGhlIHJlYWwgb2Zmc2V0IHdpdGggdGhpcyBuZXcgcG9zaXRpb24gd2UndmUgZm91bmQKKyAgICAgICAgb2Zmc2V0LnNldE9mZnNldChwcmV2UG9zLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvQXJyb3dLZXkoS2V5RXZlbnQgZSwgaW50IGtleSkgeworCisgICAgICAgIC8vIHdoZW4gdGhlcmUncyBhIHNlbGVjdGlvbiByYW5nZSwgdGhlIGxlZnQgYW5kIHVwIGFycm93IGtleXMgcGxhY2UgYW4KKyAgICAgICAgLy8gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlLCBhbmQgdGhlIHJpZ2h0IGFuZCBkb3duCisgICAgICAgIC8vIGtleXMgcGxhY2UgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBlbmQgb2YgdGhlIHJhbmdlICh1bmxlc3MgdGhlIHNoaWZ0CisgICAgICAgIC8vIGtleSBpcyBkb3duLCBvZiBjb3Vyc2UpCisKKyAgICAgICAgaWYgKCFmU3RhcnQuZXF1YWxzKGZMaW1pdCkgJiYgIWUuaXNTaGlmdERvd24oKSkgeworICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19MRUZUIHx8IGtleSA9PSBLZXlFdmVudC5WS19VUCkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoZlN0YXJ0LCBmU3RhcnQsIGZTdGFydCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGZMaW1pdCwgZkxpbWl0LCBmTGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKCFmQW5jaG9yLmVxdWFscyhmU3RhcnQpKQorICAgICAgICAgICAgICAgIGZBbmNob3IuYXNzaWduKGZMaW1pdCk7CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIGxpdmVFbmQgPSAoZlN0YXJ0LmVxdWFscyhmQW5jaG9yKSkgPyBmTGltaXQgOiBmU3RhcnQ7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBuZXdQb3MgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY29udHJvbCBrZXkgaXMgZG93biwgdGhlIGxlZnQgYW5kIHJpZ2h0IGFycm93IGtleXMgbW92ZSBieSB3aG9sZQorICAgICAgICAgICAgLy8gd29yZCBpbiB0aGUgYXBwcm9wcmlhdGUgZGlyZWN0aW9uICh3ZSB1c2UgYSBsaW5lIGJyZWFrIG9iamVjdCBzbyB0aGF0IHdlJ3JlCisgICAgICAgICAgICAvLyBub3QgdHJlYXRpbmcgc3BhY2VzIGFuZCBwdW5jdHVhdGlvbiBhcyB3b3JkcykKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSAmJiAoa2V5ID09IEtleUV2ZW50LlZLX0xFRlQgfHwga2V5ID09IEtleUV2ZW50LlZLX1JJR0hUKSkgeworICAgICAgICAgICAgICAgIGZVcERvd25BbmNob3IgPSBudWxsOworICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcy5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworCisgICAgICAgICAgICAgICAgbmV3UG9zLmFzc2lnbihsaXZlRW5kKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX1JJR0hUKQorICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVG9OZXh0Qm91bmRhcnkobmV3UG9zKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VUb1ByZXZpb3VzQm91bmRhcnkobmV3UG9zLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgd2UgZ2V0IGRvd24gdG8gaGVyZSwgdGhpcyBpcyBhIHBsYWluLXZhbmlsbGEgaW5zZXJ0aW9uLXBvaW50IG1vdmUsCisgICAgICAgICAgICAvLyBvciB0aGUgc2hpZnQga2V5IGlzIGRvd24gYW5kIHdlJ3JlIGV4dGVuZGluZyBvciBzaG9ydGVuaW5nIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAgICAgLy8gZlVwRG93bkFuY2hvciBpcyB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGhvcml6b250YWwgcG9zaXRpb24KKyAgICAgICAgICAgICAgICAvLyBhY3Jvc3MgYSBydW4gb2YgdXAgb3IgZG93biBhcnJvdyBrZXlzICh0aGlzIHByZXZlbnRzIGFjY3VtdWxhdGVkCisgICAgICAgICAgICAgICAgLy8gZXJyb3IgZnJvbSBkZXN0cm95aW5nIG91ciBob3Jpem9udGFsIHBvc2l0aW9uKQorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTEVGVCB8fCBrZXkgPT0gS2V5RXZlbnQuVktfUklHSFQpCisgICAgICAgICAgICAgICAgICAgIGZVcERvd25BbmNob3IgPSBudWxsOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZlVwRG93bkFuY2hvciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbmV3IFRleHRPZmZzZXQobGl2ZUVuZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzaG9ydCAgIGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZVJpZ2h0OyAgLy8ganVzdCB0byBoYXZlIGEgZGVmYXVsdC4uLgorCisgICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19VUDogZGlyZWN0aW9uID0gTUZvcm1hdHRlci5lVXA7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RPV046IGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZURvd247IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6IGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZUxlZnQ7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOiBkaXJlY3Rpb24gPSBNRm9ybWF0dGVyLmVSaWdodDsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdXNlIHRoZSBmb3JtYXR0ZXIgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgZWZmZWN0IG9mIHRoZSBhcnJvdyBrZXkKKyAgICAgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KG5ld1BvcywgZlVwRG93bkFuY2hvciwgbGl2ZUVuZCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHNoaWZ0IGtleSBpcyBkb3duLCB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGZyb20gdGhlIGFuY2hvciBwb2ludAorICAgICAgICAgICAgLy8gdGhlIHNpdGUgb2YgdGhlIGxhc3QgaW5zZXJ0aW9uIHBvaW50IG9yIHRoZSBiZWdpbm5pbmcgcG9pbnQgb2YgdGhlIGxhc3QKKyAgICAgICAgICAgIC8vIHNlbGVjdGlvbiBkcmFnIG9wZXJhdGlvbikgdG8gdGhlIG5ld2x5LWNhbGN1bGF0ZWQgcG9zaXRpb247IGlmIHRoZQorICAgICAgICAgICAgLy8gc2hpZnQga2V5IGlzIGRvd24sIHRoZSBuZXdseS1jYWxjdWxhdGVkIHBvc2l0aW9uIGlzIHRoZSBpbnNlcnRpb24gcG9pbnQgcG9zaXRpb24KKyAgICAgICAgICAgIGlmICghZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhuZXdQb3MsIG5ld1BvcywgbmV3UG9zKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChuZXdQb3MubGVzc1RoYW4oZkFuY2hvcikpCisgICAgICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhuZXdQb3MsIGZBbmNob3IsIGZBbmNob3IpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGZBbmNob3IsIG5ld1BvcywgZkFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0VuZEtleShLZXlFdmVudCBlKSB7CisgICAgICAgIC8vIGN0cmwtZW5kIG1vdmVzIHRoZSBpbnNlcnRzaW9uIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LAorICAgICAgICAvLyBjdHJsLXNoaWZ0LWVuZCBleHRlbmRzIHRoZSBzZWxlY3Rpb24gc28gdGhhdCBpdCBlbmRzIGF0IHRoZSBlbmQKKyAgICAgICAgLy8gb2YgdGhlIGRvY3VtZW50CisKKyAgICAgICAgVGV4dE9mZnNldCBhY3RpdmVFbmQsIGFuY2hvcjsKKworICAgICAgICBpZiAoZkFuY2hvci5lcXVhbHMoZlN0YXJ0KSkgeworICAgICAgICAgICAgYWN0aXZlRW5kID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgICAgIGFuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhY3RpdmVFbmQgPSBuZXcgVGV4dE9mZnNldChmTGltaXQpOworICAgICAgICAgICAgYW5jaG9yID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgVGV4dE9mZnNldCBlbmQgPSBuZXcgVGV4dE9mZnNldChmVGV4dC5sZW5ndGgoKSwgVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUKTsKKworICAgICAgICAgICAgaWYgKGUuaXNTaGlmdERvd24oKSkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBlbmQsIGFuY2hvcik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGVuZCwgZW5kLCBlbmQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZW5kIG1vdmVzIHRoZSBpbnNlcnRpb24gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisgICAgICAgIC8vIHNoaWZ0LWVuZCBleHRlbmRzIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGVuZCBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGludCBvbGRPZmZzZXQgPSBhY3RpdmVFbmQuZk9mZnNldDsKKworICAgICAgICAgICAgYWN0aXZlRW5kLmZPZmZzZXQgPSBmVGV4dENvbXBvbmVudC5saW5lUmFuZ2VMaW1pdChmVGV4dENvbXBvbmVudC5saW5lQ29udGFpbmluZyhhY3RpdmVFbmQpKTsKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworCisgICAgICAgICAgICBpZiAoZlRleHQucGFyYWdyYXBoTGltaXQob2xkT2Zmc2V0KSA9PSBhY3RpdmVFbmQuZk9mZnNldCAmJgorICAgICAgICAgICAgICAgICAgICBhY3RpdmVFbmQuZk9mZnNldCAhPSBmVGV4dC5sZW5ndGgoKSAmJiBhY3RpdmVFbmQuZk9mZnNldCA+IG9sZE9mZnNldCkgeworICAgICAgICAgICAgICAgIGFjdGl2ZUVuZC5mT2Zmc2V0LS07CisgICAgICAgICAgICAgICAgYWN0aXZlRW5kLmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYWN0aXZlRW5kLCBhY3RpdmVFbmQpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVuZC5sZXNzVGhhbihhbmNob3IpKQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYWN0aXZlRW5kLCBhbmNob3IsIGFuY2hvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBhY3RpdmVFbmQsIGFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9Ib21lS2V5KEtleUV2ZW50IGUpIHsKKyAgICAgICAgLy8gY3RybC1ob21lIG1vdmVzIHRoZSBpbnNlcnRpb24gcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQsCisgICAgICAgIC8vIGN0cmwtc2hpZnQtaG9tZSBleHRlbmRzIHRoZSBzZWxlY3Rpb24gc28gdGhhdCBpdCBiZWdpbnMgYXQgdGhlIGJlZ2lubmluZworICAgICAgICAvLyBvZiB0aGUgZG9jdW1lbnQKKworICAgICAgICBUZXh0T2Zmc2V0IGFjdGl2ZUVuZCwgYW5jaG9yOworCisgICAgICAgIGlmIChmQW5jaG9yLmVxdWFscyhmU3RhcnQpKSB7CisgICAgICAgICAgICBhY3RpdmVFbmQgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpOworICAgICAgICAgICAgYW5jaG9yID0gbmV3IFRleHRPZmZzZXQoZkxpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFjdGl2ZUVuZCA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisgICAgICAgICAgICBhbmNob3IgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgc3RhcnQgPSBuZXcgVGV4dE9mZnNldCgwLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgICAgICBpZiAoZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhzdGFydCwgYW5jaG9yLCBhbmNob3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhzdGFydCwgc3RhcnQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGhvbWUgbW92ZXMgdGhlIGluc2VydGlvbiBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcKKyAgICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24KKyAgICAgICAgLy8gc2hpZnQtaG9tZSBleHRlbmRzIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mT2Zmc2V0ID0gZlRleHRDb21wb25lbnQubGluZVJhbmdlTG93KGZUZXh0Q29tcG9uZW50LmxpbmVDb250YWluaW5nKGFjdGl2ZUVuZCkpOworICAgICAgICAgICAgYWN0aXZlRW5kLmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKworICAgICAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYWN0aXZlRW5kLCBhY3RpdmVFbmQpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVuZC5sZXNzVGhhbihhbmNob3IpKQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYWN0aXZlRW5kLCBhbmNob3IsIGFuY2hvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBhY3RpdmVFbmQsIGFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICB9CisKKyAgICAvKiogZHJhd3Mgb3IgZXJhc2VzIHRoZSBjdXJyZW50IHNlbGVjdGlvbgorICAgICogRHJhd3Mgb3IgZXJhc2VzIHRoZSBoaWdobGlnaHQgcmVnaW9uIG9yIGluc2VydGlvbiBjYXJldCBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisgICAgKiByYW5nZS4KKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8KKyAgICAqIEBwYXJhbSB2aXNpYmxlIElmIHRydWUsIGRyYXcgdGhlIHNlbGVjdGlvbjsgaWYgZmFsc2UsIGVyYXNlIGl0CisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBkcmF3U2VsZWN0aW9uKEdyYXBoaWNzIGcsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBkcmF3U2VsZWN0aW9uUmFuZ2UoZywgZlN0YXJ0LCBmTGltaXQsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKiBkcmF3cyBvciBlcmFzZXMgYSBzZWxlY3Rpb24gaGlnaGxpZ2h0IGF0IHRoZSBzcGVjZmllZCBwb3NpdGlvbnMKKyAgICAqIERyYXdzIG9yIGVyYXNlcyBhIHNlbGVjdGlvbiBoaWdobGlnaHQgb3IgaW5zZXJ0aW9uIGNhcmV0IGNvcnJlc3BvbmRpbmcgdG8KKyAgICAqIHRoZSBzcGVjaWZpZWQgc2VsZWNpb24gcmFuZ2UKKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8uICBJZiBudWxsLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCisgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gaGlnaGxpZ2h0CisgICAgKiBAcGFyYW0gbGltaXQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gaGlnaGxpZ2h0CisgICAgKiBAcGFyYW0gdmlzaWJsZSBJZiB0cnVlLCBkcmF3OyBpZiBmYWxzZSwgZXJhc2UKKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGRyYXdTZWxlY3Rpb25SYW5nZSggIEdyYXBoaWNzICAgIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCAgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCAgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiAgICAgdmlzaWJsZSkgeworICAgICAgICBpZiAoZyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgUmVjdGFuZ2xlICAgc2VsQm91bmRzID0gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgc2VsQm91bmRzLndpZHRoID0gTWF0aC5tYXgoMSwgc2VsQm91bmRzLndpZHRoKTsKKyAgICAgICAgc2VsQm91bmRzLmhlaWdodCA9IE1hdGgubWF4KDEsIHNlbEJvdW5kcy5oZWlnaHQpOworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGcsIHNlbEJvdW5kcywgdmlzaWJsZSwgc3RhcnQsIGxpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgIH0KKworICAgIHByb3RlY3RlZCBUZXh0T2Zmc2V0IGdldEFuY2hvcigpIHsKKyAgICAgICAgcmV0dXJuIGZBbmNob3I7CisgICAgfQorCisgICAgcHVibGljIFRleHRPZmZzZXQgZ2V0RW5kKCkgeworICAgICAgICByZXR1cm4gZkxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBDb2xvciBnZXRIaWdobGlnaHRDb2xvcigpIHsKKyAgICAgICAgcmV0dXJuIGZIaWdobGlnaHRDb2xvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgVGV4dE9mZnNldCBnZXRTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGZTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgVGV4dFJhbmdlIGdldFNlbGVjdGlvblJhbmdlKCkgeworCisgICAgICAgIHJldHVybiBuZXcgVGV4dFJhbmdlKGZTdGFydC5mT2Zmc2V0LCBmTGltaXQuZk9mZnNldCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNHYWluZWQoRm9jdXNFdmVudCBlKSB7CisKKyAgICAgICAgc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgZHJhd1NlbGVjdGlvbihmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpLCB0cnVlKTsKKworICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICAgICAgaWYgKGZQZW5kaW5nTW91c2VFdmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBtb3VzZVByZXNzZWQoZlBlbmRpbmdNb3VzZUV2ZW50KTsKKyAgICAgICAgICAgIGZQZW5kaW5nTW91c2VFdmVudCA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuQ0xJUEJPQVJEX0NIQU5HRUQpOworIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIHN0b3BDYXJldEJsaW5raW5nKCk7CisgICAgICAgIHNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICBkcmF3U2VsZWN0aW9uKGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGtleSBldmVudCBjYW4gYWZmZWN0IHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4ga2V5QWZmZWN0c1NlbGVjdGlvbihLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGUuZ2V0SUQoKSAhPSBLZXlFdmVudC5LRVlfUFJFU1NFRCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaW50IGtleSA9IGUuZ2V0S2V5Q29kZSgpOworCisgICAgICAgIHN3aXRjaCAoa2V5KSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0hPTUU6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0VORDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1VQOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOgorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworCisgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IHRydWU7CisgICAgICAgIGludCBrZXkgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChrZXkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfSE9NRToKKyAgICAgICAgICAgICAgICBkb0hvbWVLZXkoZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0VORDoKKyAgICAgICAgICAgICAgICBkb0VuZEtleShlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19MRUZUOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfVVA6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RPV046CisgICAgICAgICAgICAgICAgZG9BcnJvd0tleShlLCBrZXkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkhhbmRsaW5nS2V5T3JDb21tYW5kID0gZmFsc2U7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGlmICghZW5hYmxlZCgpKSB7CisgICAgICAgICAgICBmUGVuZGluZ01vdXNlRXZlbnQgPSBlOworICAgICAgICAgICAgZlRleHRDb21wb25lbnQucmVxdWVzdEZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZk1vdXNlRG93bikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiZk1vdXNlRG93biBpcyBvdXQgb2Ygc3luYyB3aXRoIG1vdXNlIGluIFRleHRTZWxlY3Rpb24uIik7CisKKyAgICAgICAgZk1vdXNlRG93biA9IHRydWU7CisgICAgICAgIHN0b3BDYXJldEJsaW5raW5nKCk7CisKKyAgICAgICAgaW50IHggPSBlLmdldFgoKSwgeSA9IGUuZ2V0WSgpOworICAgICAgICBib29sZWFuIHdhc1plcm9MZW5ndGggPSByYW5nZUlzWmVyb0xlbmd0aChmU3RhcnQsIGZMaW1pdCwgZkFuY2hvcik7CisgICAgICAgIAorICAgICAgICBUZXh0T2Zmc2V0IGN1cnJlbnQgPSBmVGV4dENvbXBvbmVudC5wb2ludFRvVGV4dE9mZnNldChudWxsLCB4LCB5LCBudWxsLCB0cnVlKTsKKyAgICAgICAgVGV4dE9mZnNldCBhbmNob3JTdGFydCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yRW5kID0gbmV3IFRleHRPZmZzZXQoKTsKKworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKworICAgICAgICAvLyBpZiB3ZSdyZSBub3QgZXh0ZW5kaW5nIHRoZSBzZWxlY3Rpb24uLi4KKyAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpIHsKKworICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG11bHRpcGxlIGNsaWNrcywgY3JlYXRlIHRoZSBhcHBvcHJpYXRlIHR5cGUgb2YgQnJlYWtJdGVyYXRvcgorICAgICAgICAgICAgLy8gb2JqZWN0IGZvciBmaW5kaW5nIHRleHQgYm91bmRhcmllcyAoc2luZ2xlIGNsaWNrcyBkb24ndCB1c2UgYSBCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBvYmplY3QpCisgICAgICAgICAgICBpZiAoZS5nZXRDbGlja0NvdW50KCkgPT0gMikKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcyA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgICAgICBlbHNlIGlmIChlLmdldENsaWNrQ291bnQoKSA9PSAzKQorICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworCisgICAgICAgICAgICAvLyBpZiB3ZSdyZSB1c2luZyBhIEJyZWFrSXRlcmF0b3Igb2JqZWN0LCB1c2UgaXQgdG8gZmluZCB0aGUgbmVhcmVzdCBib3VuZGFyaWVzCisgICAgICAgICAgICAvLyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgbW91c2UtY2xpY2sgcG9zaXRpb24gYW5kIG1ha2UgdGhlbSBvdXIgYW5jaG9yIHJhbmdlCisgICAgICAgICAgICBpZiAoZkJvdW5kYXJpZXMgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcy5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworCisgICAgICAgICAgICBhbmNob3JTdGFydC5hc3NpZ24oY3VycmVudCk7CisgICAgICAgICAgICBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KGFuY2hvclN0YXJ0KTsKKyAgICAgICAgICAgIGFuY2hvckVuZC5hc3NpZ24oY3VycmVudCk7CisgICAgICAgICAgICBhZHZhbmNlVG9OZXh0Qm91bmRhcnkoYW5jaG9yRW5kKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHdlIF9hcmVfIGV4dGVuZGluZyB0aGUgc2VsZWN0aW9uLCBkZXRlcm1pbmUgb3VyIGFuY2hvciByYW5nZSBhcyBmb2xsb3dzOgorICAgICAgICAvLyBmQW5jaG9yIGlzIHRoZSBzdGFydCBvZiB0aGUgYW5jaG9yIHJhbmdlOworICAgICAgICAvLyB0aGUgbmV4dCBib3VuZGFyeSAoYWZ0ZXIgZkFuY2hvcikgaXMgdGhlIGxpbWl0IG9mIHRoZSBhbmNob3IgcmFuZ2UuCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGlmIChmQm91bmRhcmllcyAhPSBudWxsKQorICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzLnNldFRleHQoZlRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKSk7CisKKyAgICAgICAgICAgIGFuY2hvclN0YXJ0LmFzc2lnbihmQW5jaG9yKTsKKyAgICAgICAgICAgIGFuY2hvckVuZC5hc3NpZ24oYW5jaG9yU3RhcnQpOworCisgICAgICAgICAgICBhZHZhbmNlVG9OZXh0Qm91bmRhcnkoYW5jaG9yRW5kKTsKKyAgICAgICAgfQorCisgICAgICAgIFNlbGVjdGlvbkRyYWdJbnRlcmFjdG9yIGludGVyYWN0b3IgPSBuZXcgU2VsZWN0aW9uRHJhZ0ludGVyYWN0b3IodGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRleHRDb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXNaZXJvTGVuZ3RoKTsKKworICAgICAgICBpbnRlcmFjdG9yLmFkZFRvT3duZXIoZlRleHRDb21wb25lbnQpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgZlBlbmRpbmdNb3VzZUV2ZW50ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIGRyYWcgaW50ZXJhY3RvciBjYWxscyB0aGlzCisgICAgdm9pZCBtb3VzZVJlbGVhc2VkKGJvb2xlYW4gemVyb0xlbmd0aENoYW5nZSkgeworCisgICAgICAgIGZNb3VzZURvd24gPSBmYWxzZTsKKworICAgICAgICBpZiAoemVyb0xlbmd0aENoYW5nZSkgeworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKworICAgICAgICAvLyBpZiBjYXJldCBkcmF3aW5nIGR1cmluZyBtb3VzZSBkcmFncyBpcyBzdXByZXNzZWQsIGRyYXcgY2FyZXQgbm93LgorCisgICAgICAgIHJlc3RhcnRDYXJldEJsaW5raW5nKHRydWUpOworICAgIH0KKworCisgICAgLyoqIGRyYXdzIHRoZSBzZWxlY3Rpb24KKyAgICAqIFByb3ZpZGVkLCBvZiBjb3Vyc2UsIHRoYXQgdGhlIHNlbGVjdGlvbiBpcyB2aXNpYmxlLCB0aGUgYWRvcm5lciBpcyBlbmFibGVkLAorICAgICogYW5kIHdlJ3JlIGNhbGxpbmcgaXQgdG8gYWRvcm4gdGhlIHZpZXcgaXQgYWN0dWFsbHkgYmVsb25ncyB0bworICAgICogQHBhcmFtIGcgVGhlIGdyYXBoaWNzIGVudmlyb25tZW50IHRvIGRyYXcgaW50bworICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFjdHVhbGx5IGRyZXcKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHBhaW50KEdyYXBoaWNzIGcsIFJlY3RhbmdsZSBkcmF3UmVjdCkgeworICAgICAgICAvLyBkb24ndCBkcmF3IGFueXRoaW5nIHVubGVzcyB3ZSdyZSBlbmFibGVkIGFuZCB0aGUgc2VsZWN0aW9uIGlzIHZpc2libGUKKyAgICAgICAgaWYgKCFlbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQuZHJhd1RleHQoZywgZHJhd1JlY3QsIHRydWUsIGZTdGFydCwgZkxpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiogc2Nyb2xscyB0aGUgdmlldyB0byByZXZlYWwgdGhlIGxpdmUgZW5kIG9mIHRoZSBzZWxlY3Rpb24KKyAgICAqIChpLmUuLCB0aGUgZW5kIHRoYXQgbW92ZXMgaWYgeW91IHVzZSB0aGUgYXJyb3cga2V5cyB3aXRoIHRoZSBzaGlmdCBrZXkgZG93bikKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHNjcm9sbFRvU2hvd1NlbGVjdGlvbigpIHsKKyAgICAgICAgUmVjdGFuZ2xlICAgc2VsUmVjdCA9IGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChmU3RhcnQsIGZMaW1pdCk7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQuc2Nyb2xsVG9TaG93KHNlbFJlY3QpOworICAgIH0KKworICAgIC8qKiBzY3JvbGxzIHRoZSB2aWV3IHRvIHJldmVhbCB0aGUgbGl2ZSBlbmQgb2YgdGhlIHNlbGVjdGlvbgorICAgICogKGkuZS4sIHRoZSBlbmQgdGhhdCBtb3ZlcyBpZiB5b3UgdXNlIHRoZSBhcnJvdyBrZXlzIHdpdGggdGhlIHNoaWZ0IGtleSBkb3duKQorICAgICovCisgICAgcHVibGljIHZvaWQgc2Nyb2xsVG9TaG93U2VsZWN0aW9uRW5kKCkgeworICAgICAgICBUZXh0T2Zmc2V0ICBsaXZlRW5kOworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBQb2ludFtdICAgICBwb2ludHM7CisgICAgICAgIFJlY3RhbmdsZSAgIGNhcmV0OworCisgICAgICAgIGlmIChmQW5jaG9yLmVxdWFscyhmU3RhcnQpKQorICAgICAgICAgICAgbGl2ZUVuZCA9IGZMaW1pdDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbGl2ZUVuZCA9IGZTdGFydDsKKworICAgICAgICAvL3BvaW50cyA9IGZUZXh0Q29tcG9uZW50LnRleHRPZmZzZXRUb1BvaW50KGxpdmVFbmQpOworICAgICAgICAvL2NhcmV0ID0gbmV3IFJlY3RhbmdsZShwb2ludHNbMF0pOworICAgICAgICAvL2NhcmV0ID0gY2FyZXQudW5pb24obmV3IFJlY3RhbmdsZShwb2ludHNbMV0pKTsKKyAgICAgICAgY2FyZXQgPSBmVGV4dENvbXBvbmVudC5nZXRDYXJldFJlY3QobGl2ZUVuZCk7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnNjcm9sbFRvU2hvdyhjYXJldCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNlbGVjdChUZXh0UmFuZ2UgcmFuZ2UpIHsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgaW50IHRleHRMZW5ndGggPSBmVGV4dENvbXBvbmVudC5nZXRUZXh0KCkubGVuZ3RoKCk7CisKKyAgICAgICAgVGV4dE9mZnNldCBzdGFydCA9IG5ldyBUZXh0T2Zmc2V0KHJhbmdlLnN0YXJ0KTsKKworICAgICAgICBzdG9wQ2FyZXRCbGlua2luZygpOworICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoc3RhcnQsIG5ldyBUZXh0T2Zmc2V0KHJhbmdlLmxpbWl0KSwgc3RhcnQpOworICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIaWdobGlnaHRDb2xvcihDb2xvciBuZXdDb2xvcikgeworICAgICAgICBmSGlnaGxpZ2h0Q29sb3IgPSBuZXdDb2xvcjsKKyAgICAgICAgaWYgKGVuYWJsZWQoKSkKKyAgICAgICAgICAgIGRyYXdTZWxlY3Rpb24oZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKSwgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sZWFuIHJhbmdlSXNaZXJvTGVuZ3RoKFRleHRPZmZzZXQgc3RhcnQsIFRleHRPZmZzZXQgbGltaXQsIFRleHRPZmZzZXQgYW5jaG9yKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gc3RhcnQuZk9mZnNldCA9PSBsaW1pdC5mT2Zmc2V0ICYmIGFuY2hvci5mT2Zmc2V0ID09IGxpbWl0LmZPZmZzZXQ7CisgICAgfQorCisgICAgLy8gc2lnaC4uLiBsb29rIG91dCBmb3IgYWxpYXNpbmcKKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShUZXh0T2Zmc2V0IG5ld1N0YXJ0LCBUZXh0T2Zmc2V0IG5ld0xpbWl0LCBUZXh0T2Zmc2V0IG5ld0FuY2hvcikgeworCisgICAgICAgIGJvb2xlYW4gemVyb0xlbmd0aENoYW5nZSA9IHJhbmdlSXNaZXJvTGVuZ3RoKG5ld1N0YXJ0LCBuZXdMaW1pdCwgbmV3QW5jaG9yKSAhPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlSXNaZXJvTGVuZ3RoKGZTdGFydCwgZkxpbWl0LCBmQW5jaG9yKTsKKyAgICAgICAgVGV4dE9mZnNldCB0ZW1wTmV3QW5jaG9yOworICAgICAgICBpZiAobmV3QW5jaG9yID09IGZTdGFydCB8fCBuZXdBbmNob3IgPT0gZkxpbWl0KSB7CisgICAgICAgICAgICB0ZW1wTmV3QW5jaG9yID0gbmV3IFRleHRPZmZzZXQobmV3QW5jaG9yKTsgLy8gY2xvbmUgaW4gY2FzZSBvZiBhbGlhc2luZworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGVtcE5ld0FuY2hvciA9IG5ld0FuY2hvcjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERFQlVHIHtqYnJ9CisKKyAgICAgICAgaWYgKG5ld1N0YXJ0LmdyZWF0ZXJUaGFuKG5ld0xpbWl0KSkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlNlbGVjdGlvbiBsaW1pdCBpcyBiZWZvcmUgc2VsZWN0aW9uIHN0YXJ0LiIpOworCisgICAgICAgIGlmIChuZXdMaW1pdCAhPSBmU3RhcnQpIHsKKyAgICAgICAgICAgIGZTdGFydC5hc3NpZ24obmV3U3RhcnQpOworICAgICAgICAgICAgZkxpbWl0LmFzc2lnbihuZXdMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmTGltaXQuYXNzaWduKG5ld0xpbWl0KTsKKyAgICAgICAgICAgIGZTdGFydC5hc3NpZ24obmV3U3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgZkFuY2hvci5hc3NpZ24odGVtcE5ld0FuY2hvcik7CisKKyAgICAgICAgaWYgKGZTdGFydC5mT2Zmc2V0ID09IGZMaW1pdC5mT2Zmc2V0KSB7CisgICAgICAgICAgICBmU3RhcnQuZlBsYWNlbWVudCA9IGZBbmNob3IuZlBsYWNlbWVudDsKKyAgICAgICAgICAgIGZMaW1pdC5mUGxhY2VtZW50ID0gZkFuY2hvci5mUGxhY2VtZW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIWZNb3VzZURvd24pIHsKKyAgICAgICAgICAgIGlmICh6ZXJvTGVuZ3RoQ2hhbmdlKSB7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICAgICAgaWYgKGZIYW5kbGluZ0tleU9yQ29tbWFuZCkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc29ydE9mZnNldHMoVGV4dE9mZnNldCBvZmZzZXRzW10pIHsKKworICAgICAgICBpbnQgaSwgajsKKworICAgICAgICBmb3IgKGk9MDsgaSA8IG9mZnNldHMubGVuZ3RoLTE7IGkrKykgeworICAgICAgICAgICAgZm9yIChqPWkrMTsgaiA8IG9mZnNldHMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0c1tqXS5sZXNzVGhhbihvZmZzZXRzW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHRlbXAgPSBvZmZzZXRzW2pdOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzW2pdID0gb2Zmc2V0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1tpXSA9IHRlbXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gREVCVUcge2picn0KKyAgICAgICAgZm9yIChpPTA7IGkgPCBvZmZzZXRzLmxlbmd0aC0xOyBpKyspCisgICAgICAgICAgICBpZiAob2Zmc2V0c1tpXS5ncmVhdGVyVGhhbihvZmZzZXRzW2krMV0pKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigic29ydE9mZnNldHMgZmFpbGVkISIpOworICAgIH0KKworICAgIHByaXZhdGUgUmVjdGFuZ2xlIGdldFNlbGVjdGlvbkNoYW5nZVJlY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHJhbmdlU3RhcnQsIFRleHRPZmZzZXQgcmFuZ2VMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2xkU3RhcnQsIFRleHRPZmZzZXQgb2xkTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1N0YXJ0LCBUZXh0T2Zmc2V0IG5ld0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkcmF3SWZJbnNQb2ludCkgeworCisgICAgICAgIGlmICghcmFuZ2VTdGFydC5lcXVhbHMocmFuZ2VMaW1pdCkpCisgICAgICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHJhbmdlU3RhcnQsIHJhbmdlTGltaXQpOworCisgICAgICAgIC8vIGhlcmUsIHJhbmdlU3RhcnQgYW5kIHJhbmdlTGltaXQgYXJlIGVxdWFsCisKKyAgICAgICAgaWYgKHJhbmdlU3RhcnQuZXF1YWxzKG9sZExpbWl0KSkgeworCisgICAgICAgICAgICAvLyByYW5nZSBzdGFydCBpcyBPTEQgaW5zZXJ0aW9uIHBvaW50LiAgUmVkcmF3IGlmIGNhcmV0IGlzIGN1cnJlbnRseSB2aXNpYmxlLgorCisgICAgICAgICAgICBpZiAoZkNhcmV0SXNWaXNpYmxlKQorICAgICAgICAgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRCb3VuZGluZ1JlY3QocmFuZ2VTdGFydCwgcmFuZ2VTdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocmFuZ2VTdGFydC5lcXVhbHMobmV3TGltaXQpKSB7CisKKyAgICAgICAgICAgIC8vIHJhbmdlIHN0YXJ0IGlzIE5FVyBpbnNlcnRpb24gcG9pbnQuCisKKyAgICAgICAgICAgIGlmIChkcmF3SWZJbnNQb2ludCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHJhbmdlU3RhcnQsIHJhbmdlU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiByZWN0YW5nbGVzT3ZlcmxhcFZlcnRpY2FsbHkoUmVjdGFuZ2xlIHIxLCBSZWN0YW5nbGUgcjIpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChyMSA9PSBudWxsIHx8IHIyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHIxLnkgPD0gcjIueSArIHIyLmhlaWdodCB8fCByMi55IDw9IHIxLnkgKyByMS5oZWlnaHQ7CisgICAgfQorICAgIAorICAgIC8vIFVwZGF0ZSB0byBzaG93IG5ldyBzZWxlY3Rpb24sIHJlZHJhd2luZyBhcyBsaXR0bGUgYXMgcG9zc2libGUKKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVTZWxlY3Rpb25EaXNwbGF5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2xkU3RhcnQsIFRleHRPZmZzZXQgb2xkTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwgYm9vbGVhbiBkcmF3SWZJbnNQb2ludCkgeworCisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJuZXdTdGFydDoiICsgbmV3U3RhcnQgKyAiOyBuZXdMaW1pdDoiICsgbmV3TGltaXQpOworCisgICAgICAgIFRleHRPZmZzZXQgb2ZmW10gPSBuZXcgVGV4dE9mZnNldFs0XTsKKworICAgICAgICBvZmZbMF0gPSBvbGRTdGFydDsKKyAgICAgICAgb2ZmWzFdID0gb2xkTGltaXQ7CisgICAgICAgIG9mZlsyXSA9IG5ld1N0YXJ0OworICAgICAgICBvZmZbM10gPSBuZXdMaW1pdDsKKworICAgICAgICBzb3J0T2Zmc2V0cyhvZmYpOworCisgICAgICAgIFJlY3RhbmdsZSByMSA9IGdldFNlbGVjdGlvbkNoYW5nZVJlY3Qob2ZmWzBdLCBvZmZbMV0sIG9sZFN0YXJ0LCBvbGRMaW1pdCwgbmV3U3RhcnQsIG5ld0xpbWl0LCBkcmF3SWZJbnNQb2ludCk7CisgICAgICAgIFJlY3RhbmdsZSByMiA9IGdldFNlbGVjdGlvbkNoYW5nZVJlY3Qob2ZmWzJdLCBvZmZbM10sIG9sZFN0YXJ0LCBvbGRMaW1pdCwgbmV3U3RhcnQsIG5ld0xpbWl0LCBkcmF3SWZJbnNQb2ludCk7CisKKyAgICAgICAgYm9vbGVhbiBkcmF3U2VsZWN0aW9uID0gZHJhd0lmSW5zUG9pbnQgfHwgIW5ld1N0YXJ0LmVxdWFscyhuZXdMaW1pdCk7CisKKyAgICAgICAgaWYgKHJlY3RhbmdsZXNPdmVybGFwVmVydGljYWxseShyMSwgcjIpKSB7CisKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHIxLnVuaW9uKHIyKSwgZHJhd1NlbGVjdGlvbiwgbmV3U3RhcnQsIG5ld0xpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKHIxICE9IG51bGwpCisgICAgICAgICAgICAgICAgZlRleHRDb21wb25lbnQuZHJhd1RleHQoZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKSwgcjEsIGRyYXdTZWxlY3Rpb24sIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZkhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgICAgIGlmIChyMiAhPSBudWxsKQorICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHIyLCBkcmF3U2VsZWN0aW9uLCBuZXdTdGFydCwgbmV3TGltaXQsIGZIaWdobGlnaHRDb2xvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxSYW5nZUFuZERyYXcoVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwgVGV4dE9mZnNldCBuZXdBbmNob3IpIHsKKworICAgICAgICAvLyBpZiB0aGUgb2xkIGFuZCBuZXcgc2VsZWN0aW9uIHJhbmdlcyBhcmUgdGhlIHNhbWUsIGRvbid0IGRvIGFueXRoaW5nCisgICAgICAgIGlmIChmU3RhcnQuZXF1YWxzKG5ld1N0YXJ0KSAmJiBmTGltaXQuZXF1YWxzKG5ld0xpbWl0KSAmJiBmQW5jaG9yLmVxdWFscyhuZXdBbmNob3IpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChlbmFibGVkKCkpCisgICAgICAgICAgICBzdG9wQ2FyZXRCbGlua2luZygpOworCisgICAgICAgIC8vIHVwZGF0ZSB0aGUgc2VsZWN0aW9uIG9uIHNjcmVlbiBpZiB3ZSdyZSBlbmFibGVkIGFuZCB2aXNpYmxlCisKKyAgICAgICAgVGV4dE9mZnNldCBvbGRTdGFydCA9IG5ldyBUZXh0T2Zmc2V0KGZTdGFydCksIG9sZExpbWl0ID0gbmV3IFRleHRPZmZzZXQoZkxpbWl0KTsKKworICAgICAgICBzZXRTZWxlY3Rpb25SYW5nZShuZXdTdGFydCwgbmV3TGltaXQsIG5ld0FuY2hvcik7CisKKyAgICAgICAgaWYgKGVuYWJsZWQoKSkgeworCisgICAgICAgICAgICAgICAgLy8gVG8gc3VwcmVzcyBkcmF3aW5nIGEgY2FyZXQgZHVyaW5nIGEgbW91c2UgZHJhZywgcGFzcyAhZk1vdXNlRG93biBpbnN0ZWFkIG9mIHRydWU6CisgICAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0aW9uRGlzcGxheShvbGRTdGFydCwgb2xkTGltaXQsIGZTdGFydCwgZkxpbWl0LCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZk1vdXNlRG93biAmJiBlbmFibGVkKCkpCisgICAgICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzdG9wQ2FyZXRCbGlua2luZygpIHsKKworICAgICAgICBzeW5jaHJvbml6ZWQodGhpcykgeworICAgICAgICAgICAgZkNhcmV0U2hvdWxkQmxpbmsgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlc3VtZSBibGlua2luZyB0aGUgY2FyZXQsIGlmIHRoZSBzZWxlY3Rpb24gaXMgYW4gaW5zZXJ0aW9uIHBvaW50LgorKiBAcGFyYW0gY2FyZXRJc1Zpc2libGUgdHJ1ZSBpZiB0aGUgY2FyZXQgaXMgZGlzcGxheWVkIHdoZW4gdGhpcyBpcyBjYWxsZWQuCisqIFRoaXMgbWV0aG9kIHJlbGllcyBvbiB0aGUgY2xpZW50IHRvIGRpc3BsYXkgKG9yIG5vdCBkaXNwbGF5KSB0aGUgY2FyZXQuCisqLworICAgIHB1YmxpYyB2b2lkIHJlc3RhcnRDYXJldEJsaW5raW5nKGJvb2xlYW4gY2FyZXRJc1Zpc2libGUpIHsKKworICAgICAgICBzeW5jaHJvbml6ZWQodGhpcykgeworICAgICAgICAgICAgZkNhcmV0U2hvdWxkQmxpbmsgPSBmU3RhcnQuZXF1YWxzKGZMaW1pdCk7CisgICAgICAgICAgICBmQ2FyZXRDb3VudCA9IDA7CisgICAgICAgICAgICBmQ2FyZXRJc1Zpc2libGUgPSBjYXJldElzVmlzaWJsZTsKKworICAgICAgICAgICAgaWYgKGZDYXJldFNob3VsZEJsaW5rKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDYXVnaHQgSWxsZWdhbE1vbml0b3JTdGF0ZUV4Y2VwdGlvbjogIitlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVGcm9tT3duZXIoKSB7CisKKyAgICAgICAgc3RvcENhcmV0QmxpbmtpbmcoKTsKKyAgICAgICAgc3VwZXIucmVtb3ZlRnJvbU93bmVyKCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGhhaUtleVJlbWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGhhaUtleVJlbWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDdhMjc5ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UaGFpS2V5UmVtYXAuamF2YQpAQCAtMCwwICsxLDExMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitmaW5hbCBjbGFzcyBUaGFpS2V5UmVtYXAgZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBwdWJsaWMgY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgIGNhc2UgJ2AnOiByZXR1cm4gJ1x1MDA1Zic7CisgICAgICAgICAgICBjYXNlICd+JzogcmV0dXJuICdcdTAwMjUnOworICAgICAgICAgICAgY2FzZSAnMSc6IHJldHVybiAnXHUwZTQ1JzsKKyAgICAgICAgICAgIGNhc2UgJyEnOiByZXR1cm4gJ1x1MDAyYic7CisgICAgICAgICAgICBjYXNlICcyJzogcmV0dXJuICdcdTAwMmYnOworICAgICAgICAgICAgY2FzZSAnQCc6IHJldHVybiAnXHUwZTUxJzsKKyAgICAgICAgICAgIGNhc2UgJzMnOiByZXR1cm4gJ1x1MDAyZCc7CisgICAgICAgICAgICBjYXNlICcjJzogcmV0dXJuICdcdTBlNTInOworICAgICAgICAgICAgY2FzZSAnNCc6IHJldHVybiAnXHUwZTIwJzsKKyAgICAgICAgICAgIGNhc2UgJyQnOiByZXR1cm4gJ1x1MGU1Myc7CisgICAgICAgICAgICBjYXNlICc1JzogcmV0dXJuICdcdTBlMTYnOworICAgICAgICAgICAgY2FzZSAnJSc6IHJldHVybiAnXHUwZTU0JzsKKyAgICAgICAgICAgIGNhc2UgJzYnOiByZXR1cm4gJ1x1MGUzOCc7CisgICAgICAgICAgICBjYXNlICdeJzogcmV0dXJuICdcdTBlMzknOworICAgICAgICAgICAgY2FzZSAnNyc6IHJldHVybiAnXHUwZTM2JzsKKyAgICAgICAgICAgIGNhc2UgJyYnOiByZXR1cm4gJ1x1MGUzZic7CisgICAgICAgICAgICBjYXNlICc4JzogcmV0dXJuICdcdTBlMDQnOworICAgICAgICAgICAgY2FzZSAnKic6IHJldHVybiAnXHUwZTU1JzsKKyAgICAgICAgICAgIGNhc2UgJzknOiByZXR1cm4gJ1x1MGUxNSc7CisgICAgICAgICAgICBjYXNlICcoJzogcmV0dXJuICdcdTBlNTYnOworICAgICAgICAgICAgY2FzZSAnMCc6IHJldHVybiAnXHUwZTA4JzsKKyAgICAgICAgICAgIGNhc2UgJyknOiByZXR1cm4gJ1x1MGU1Nyc7CisgICAgICAgICAgICBjYXNlICctJzogcmV0dXJuICdcdTBlMDInOworICAgICAgICAgICAgY2FzZSAnXyc6IHJldHVybiAnXHUwZTU4JzsKKyAgICAgICAgICAgIGNhc2UgJz0nOiByZXR1cm4gJ1x1MGUwOCc7CisgICAgICAgICAgICBjYXNlICcrJzogcmV0dXJuICdcdTBlNTknOworICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnXHUwZTQ2JzsKKyAgICAgICAgICAgIGNhc2UgJ1EnOiByZXR1cm4gJ1x1MGU1MCc7CisgICAgICAgICAgICBjYXNlICd3JzogcmV0dXJuICdcdTBlNDQnOworICAgICAgICAgICAgY2FzZSAnVyc6IHJldHVybiAnXHUwMDIyJzsKKyAgICAgICAgICAgIGNhc2UgJ2UnOiByZXR1cm4gJ1x1MGUzMyc7CisgICAgICAgICAgICBjYXNlICdFJzogcmV0dXJuICdcdTBlMGUnOworICAgICAgICAgICAgY2FzZSAncic6IHJldHVybiAnXHUwZTFlJzsKKyAgICAgICAgICAgIGNhc2UgJ1InOiByZXR1cm4gJ1x1MGUxMSc7CisgICAgICAgICAgICBjYXNlICd0JzogcmV0dXJuICdcdTBlMzAnOworICAgICAgICAgICAgY2FzZSAnVCc6IHJldHVybiAnXHUwZTE4JzsKKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MGUzMSc7CisgICAgICAgICAgICBjYXNlICdZJzogcmV0dXJuICdcdTBlNGQnOworICAgICAgICAgICAgY2FzZSAndSc6IHJldHVybiAnXHUwZTM1JzsKKyAgICAgICAgICAgIGNhc2UgJ1UnOiByZXR1cm4gJ1x1MGU0YSc7CisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTBlMjMnOworICAgICAgICAgICAgY2FzZSAnSSc6IHJldHVybiAnXHUwZTEzJzsKKyAgICAgICAgICAgIGNhc2UgJ28nOiByZXR1cm4gJ1x1MGUxOSc7CisgICAgICAgICAgICBjYXNlICdPJzogcmV0dXJuICdcdTBlMmYnOworICAgICAgICAgICAgY2FzZSAncCc6IHJldHVybiAnXHUwZTIyJzsKKyAgICAgICAgICAgIGNhc2UgJ1AnOiByZXR1cm4gJ1x1MGUwZCc7CisgICAgICAgICAgICBjYXNlICdbJzogcmV0dXJuICdcdTBlMWEnOworICAgICAgICAgICAgY2FzZSAneyc6IHJldHVybiAnXHUwZTEwJzsKKyAgICAgICAgICAgIGNhc2UgJ10nOiByZXR1cm4gJ1x1MGUyNSc7CisgICAgICAgICAgICBjYXNlICd9JzogcmV0dXJuICdcdTAwMmMnOworICAgICAgICAgICAgY2FzZSAnXFwnOiByZXR1cm4gJ1x1MGUwMyc7CisgICAgICAgICAgICBjYXNlICd8JzogcmV0dXJuICdcdTBlMDUnOworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwZTFmJzsKKyAgICAgICAgICAgIGNhc2UgJ0EnOiByZXR1cm4gJ1x1MGUyNCc7CisgICAgICAgICAgICBjYXNlICdzJzogcmV0dXJuICdcdTBlMmInOworICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwZTA2JzsKKyAgICAgICAgICAgIGNhc2UgJ2QnOiByZXR1cm4gJ1x1MGUwMSc7CisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTBlMGYnOworICAgICAgICAgICAgY2FzZSAnZic6IHJldHVybiAnXHUwZTE0JzsKKyAgICAgICAgICAgIGNhc2UgJ0YnOiByZXR1cm4gJ1x1MGU0Mic7CisgICAgICAgICAgICBjYXNlICdnJzogcmV0dXJuICdcdTBlNDAnOworICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwZTBjJzsKKyAgICAgICAgICAgIGNhc2UgJ2gnOiByZXR1cm4gJ1x1MGU0OSc7CisgICAgICAgICAgICBjYXNlICdIJzogcmV0dXJuICdcdTBlNDcnOworICAgICAgICAgICAgY2FzZSAnaic6IHJldHVybiAnXHUwZTQ4JzsKKyAgICAgICAgICAgIGNhc2UgJ0onOiByZXR1cm4gJ1x1MGU0Yic7CisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTBlMzInOworICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwZTI5JzsKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MGUyYSc7CisgICAgICAgICAgICBjYXNlICdMJzogcmV0dXJuICdcdTBlMjgnOworICAgICAgICAgICAgY2FzZSAnOyc6IHJldHVybiAnXHUwZTI3JzsKKyAgICAgICAgICAgIGNhc2UgJzonOiByZXR1cm4gJ1x1MGUwYic7CisgICAgICAgICAgICBjYXNlICdcJyc6IHJldHVybiAnXHUwZTA3JzsKKyAgICAgICAgICAgIGNhc2UgJ1wiJzogcmV0dXJuICdcdTAwMmUnOworICAgICAgICAgICAgY2FzZSAneic6IHJldHVybiAnXHUwZTFjJzsKKyAgICAgICAgICAgIGNhc2UgJ1onOiByZXR1cm4gJ1x1MDAyOCc7CisgICAgICAgICAgICBjYXNlICd4JzogcmV0dXJuICdcdTBlMWInOworICAgICAgICAgICAgY2FzZSAnWCc6IHJldHVybiAnXHUwMDI5JzsKKyAgICAgICAgICAgIGNhc2UgJ2MnOiByZXR1cm4gJ1x1MGU0MSc7CisgICAgICAgICAgICBjYXNlICdDJzogcmV0dXJuICdcdTBlMDknOworICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwZTJkJzsKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MGUyZSc7CisgICAgICAgICAgICBjYXNlICdiJzogcmV0dXJuICdcdTBlMzQnOworICAgICAgICAgICAgY2FzZSAnQic6IHJldHVybiAnXHUwZTNhJzsKKyAgICAgICAgICAgIGNhc2UgJ24nOiByZXR1cm4gJ1x1MGUzNyc7CisgICAgICAgICAgICBjYXNlICdOJzogcmV0dXJuICdcdTBlNGMnOworICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwZTE3JzsKKyAgICAgICAgICAgIGNhc2UgJ00nOiByZXR1cm4gJ1x1MDAzZic7CisgICAgICAgICAgICBjYXNlICcsJzogcmV0dXJuICdcdTBlMjEnOworICAgICAgICAgICAgY2FzZSAnPCc6IHJldHVybiAnXHUwZTEyJzsKKyAgICAgICAgICAgIGNhc2UgJy4nOiByZXR1cm4gJ1x1MGU0Myc7CisgICAgICAgICAgICBjYXNlICc+JzogcmV0dXJuICdcdTBlMmMnOworICAgICAgICAgICAgY2FzZSAnLyc6IHJldHVybiAnXHUwZTFkJzsKKyAgICAgICAgICAgIGNhc2UgJz8nOiByZXR1cm4gJ1x1MGUyNic7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVHJhbnNmZXJhYmxlVGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RyYW5zZmVyYWJsZVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNmJlYWZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RyYW5zZmVyYWJsZVRleHQuamF2YQpAQCAtMCwwICsxLDg3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5TdHJpbmdTZWxlY3Rpb247CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkRhdGFGbGF2b3I7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlVuc3VwcG9ydGVkRmxhdm9yRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworLyoqCisgKiBUaGlzIGNsYXNzIGFsbG93cyBNQ29uc3RUZXh0IGluc3RhbmNlcyB0byBiZSB0aGUgY29udGVudHMKKyAqIG9mIGEgQ2xpcGJvYXJkLiAgVG8gc3RvcmUgYW4gTUNvbnN0VGV4dCBvbiB0aGUgY2xpcGJvYXJkLAorICogY29uc3RydWN0IGEgVHJhbnNmZXJhYmxlVGV4dCBmcm9tIHRoZSBNQ29uc3RUZXh0LCBhbmQgbWFrZQorICogdGhlIFRyYW5zZmVyYWJsZVRleHQgdGhlIGNsaXBib2FyZCBjb250ZW50cy4KKyAqCisgKi8KKy8qCisgKiBOb3RlOiAgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFN0cmluZ1NlbGVjdGlvbiBiZWNhdXNlIG9mCisgKiBhIGJ1ZyBpbiB0aGUgMS4xLjcgc3lzdGVtIGNsaXBib2FyZCBpbXBsZW1lbnRhdGlvbi4gIFRoZQorICogc3lzdGVtIGNsaXBib2FyZCB3b24ndCBwdXQgdGV4dCBvbiB0aGUgT1MgY2xpcGJvYXJkIHVubGVzcworICogdGhlIGNvbnRlbnQgaXMgYSBTdHJpbmdTZWxlY3Rpb24uCisgKi8KK2ZpbmFsIGNsYXNzIFRyYW5zZmVyYWJsZVRleHQgZXh0ZW5kcyBTdHJpbmdTZWxlY3Rpb24KK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyB0ZXh0VG9TdHJpbmcoTUNvbnN0VGV4dCB0ZXh0KSB7CisgICAgICAgIGNoYXJbXSBjaGFycyA9IG5ldyBjaGFyW3RleHQubGVuZ3RoKCldOworICAgICAgICB0ZXh0LmV4dHJhY3RDaGFycygwLCBjaGFycy5sZW5ndGgsIGNoYXJzLCAwKTsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoY2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFRyYW5zZmVyYWJsZVRleHQgZm9yIHRoZSBnaXZlbiB0ZXh0LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGdvIG9uIHRoZSBDbGlwYm9hcmQuICBUaGUgdGV4dCBpcworICAgICAqICAgICBhZG9wdGVkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2ZlcmFibGVUZXh0KE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIHN1cGVyKHRleHRUb1N0cmluZyh0ZXh0KSk7CisKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgIH0KKworICAgIHB1YmxpYyBEYXRhRmxhdm9yW10gZ2V0VHJhbnNmZXJEYXRhRmxhdm9ycygpIHsKKworICAgICAgICBEYXRhRmxhdm9yW10gZmxhdm9ycyA9IHN1cGVyLmdldFRyYW5zZmVyRGF0YUZsYXZvcnMoKTsKKyAgICAgICAgRGF0YUZsYXZvcltdIHJlc3VsdCA9IG5ldyBEYXRhRmxhdm9yW2ZsYXZvcnMubGVuZ3RoKzFdOworICAgICAgICByZXN1bHRbMF0gPSBNQ29uc3RUZXh0LnN0eWxlZFRleHRGbGF2b3I7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZmxhdm9ycywgMCwgcmVzdWx0LCAxLCBmbGF2b3JzLmxlbmd0aCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhRmxhdm9yU3VwcG9ydGVkKERhdGFGbGF2b3IgZmxhdm9yKSB7CisKKyAgICAgICAgaWYgKGZsYXZvci5lcXVhbHMoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuaXNEYXRhRmxhdm9yU3VwcG9ydGVkKGZsYXZvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldFRyYW5zZmVyRGF0YShEYXRhRmxhdm9yIGZsYXZvcikgdGhyb3dzIFVuc3VwcG9ydGVkRmxhdm9yRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGZsYXZvci5lcXVhbHMoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSkgeworICAgICAgICAgICAgcmV0dXJuIGZUZXh0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRyYW5zZmVyRGF0YShmbGF2b3IpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1R5cGluZ0ludGVyYWN0b3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UeXBpbmdJbnRlcmFjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTQ1MTczZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UeXBpbmdJbnRlcmFjdG9yLmphdmEKQEAgLTAsMCArMSwzNTQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICAgIDIvMjUvOTkgLSBOb3cgcHJvY2Vzc2luZyBjaGFyYWN0ZXJzIGZyb20ga2V5VHlwZWQgbWV0aG9kIChub3Qga2V5UHJlc3NlZCkuCisgICAgICAgICAgICAgIFRoaXMgbmV3IHdheSBpcyBpbnB1dC1tZXRob2QgZnJpZW5kbHkgb24gMS4yLCBhbmQgaXMgZ2VuZXJhbGx5CisgICAgICAgICAgICAgIG1vcmUgY29ycmVjdC4KKworICAgIDcvNy85NyAtIHRoZSBtb3VzZURpZFNvbWV0aGluZyBtZXRob2RzIHVzZWQgdG8gcmVtb3ZlIHRoZSB0eXBpbmcgaW50ZXJhY3Rvci4KKyAgICAgICAgICAgIFRoaXMgaXMgZGVmaW5pdGVseSB3cm9uZywgYnV0IG1heWJlIHRoYXQgbWFkZSBzZW5zZSBhdCBvbmUgdGltZS4gIEFueXdheSwKKyAgICAgICAgICAgIG5vdyB0aGUgbW91c2VQcmVzc2VkIC8gbW91c2VSZWxlYXNlZCBtZXRob2RzIHJlbW92ZSB0aGUgaW50ZXJhY3RvcjsgIHRoZQorICAgICAgICAgICAgb3RoZXJzIGRvIG5vdGhpbmcuCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0V2ZW50OworCitpbXBvcnQgamF2YS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2ZpbmFsIGNsYXNzIFR5cGluZ0ludGVyYWN0b3IgZXh0ZW5kcyBCZWhhdmlvciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBCQUNLU1BBQ0UgPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgVEFCID0gJ1x0JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFJFVFVSTiA9ICdccic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBMSU5FX0ZFRUQgPSAnXG4nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUEFSQUdSQVBIX1NFUCA9ICdcdTIwMjknOworICAgIAorICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBmVGV4dENvbXBvbmVudDsKKyAgICBwcml2YXRlIFRleHRTZWxlY3Rpb24gZlNlbGVjdGlvbjsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmVHlwaW5nU3R5bGU7CisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0IGZUZXh0OworICAgIHByaXZhdGUgVGV4dEVkaXRCZWhhdmlvciBmUGFyZW50OworICAgIHByaXZhdGUgVGV4dENoYW5nZUNvbW1hbmQgZkNvbW1hbmQgPSBudWxsOworICAgIHByaXZhdGUgU2ltcGxlQ29tbWFuZExvZyBmQ29tbWFuZExvZzsKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmTGlzdGVuZXI7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGZDaGFyQnJlYWsgPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIE5vdCBhbGwgY2hhcmFjdGVycyB0aGF0IGNvbWUgZnJvbSB0aGUga2V5Ym9hcmQgYXJlIGhhbmRsZWQKKyAgICAgKiBhcyBpbnB1dC4gIEZvciBleGFtcGxlLCBjdHJsLWMgaXMgbm90IGEgdHlwYWJsZSBjaGFyYWN0ZXIuCisgICAgICogVGhpcyBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgcGFydGljdWxhciBjaGFyYWN0ZXIgZnJvbQorICAgICAqIHRoZSBrZXlib2FyZCB3aWxsIGFmZmVjdCB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVHlwaW5nSW50ZXJhY3RvckNoYXIoY2hhciBjaCkgeworCisgICAgICAgIHJldHVybiBjaCA+PSAnICcgfHwgCisgICAgICAgICAgICAgICBjaCA9PSBMSU5FX0ZFRUQgfHwgCisgICAgICAgICAgICAgICBjaCA9PSBSRVRVUk4gfHwKKyAgICAgICAgICAgICAgIGNoID09IFRBQiB8fCAKKyAgICAgICAgICAgICAgIGNoID09IEJBQ0tTUEFDRTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgVHlwaW5nSW50ZXJhY3RvciBzaG91bGQKKyAgICAgKiBoYW5kbGUgdGhlIGdpdmVuIEtleUV2ZW50LgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIGhhbmRsZWRCeVR5cGluZ0ludGVyYWN0b3IoS2V5RXZlbnQgZXZlbnQpIHsKKworICAgICAgICBmaW5hbCBpbnQgaWQgPSBldmVudC5nZXRJRCgpOworICAgICAgICAKKyAgICAgICAgaWYgKGlkID09IEtleUV2ZW50LktFWV9UWVBFRCkgeworICAgICAgICAgICAgcmV0dXJuIGlzVHlwaW5nSW50ZXJhY3RvckNoYXIoZXZlbnQuZ2V0S2V5Q2hhcigpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoaWQgPT0gS2V5RXZlbnQuS0VZX1BSRVNTRUQgJiYgCisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19ERUxFVEUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFR5cGluZ0ludGVyYWN0b3IoVGV4dENvbXBvbmVudCB0ZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCB0eXBpbmdTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0RWRpdEJlaGF2aW9yIHBhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1wbGVDb21tYW5kTG9nIGNvbW1hbmRMb2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZUZXh0Q29tcG9uZW50ID0gdGV4dENvbXBvbmVudDsKKyAgICAgICAgZlRleHQgPSB0ZXh0Q29tcG9uZW50LmdldFRleHQoKTsKKyAgICAgICAgZlNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgICAgZlR5cGluZ1N0eWxlID0gdHlwaW5nU3R5bGU7CisgICAgICAgIGZQYXJlbnQgPSBwYXJlbnQ7CisgICAgICAgIGZDb21tYW5kTG9nID0gY29tbWFuZExvZzsKKyAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisKKyAgICAgICAgZlBhcmVudC5zZXRUeXBpbmdJbnRlcmFjdG9yKHRoaXMpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlbmRJbnRlcmFjdGlvbigpIHsKKworICAgICAgICByZW1vdmVGcm9tT3duZXIoKTsKKyAgICAgICAgcG9zdFRleHRDaGFuZ2VDb21tYW5kKCk7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgZlBhcmVudC5zZXRTYXZlZFR5cGluZ1N0eWxlKHNlbFN0YXJ0PT1zZWxMaW1pdD8gZlR5cGluZ1N0eWxlIDogbnVsbCwgc2VsU3RhcnQpOworICAgICAgICAKKyAgICAgICAgZlBhcmVudC5zZXRUeXBpbmdJbnRlcmFjdG9yKG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5FdmVudFR5cGUgZXZlbnQsIE9iamVjdCB3aGF0KSB7CisKKyAgICAgICAgaWYgKGZDb21tYW5kID09IG51bGwgJiYgZXZlbnQgPT0gQmVoYXZpb3IuQ0hBUkFDVEVSX1NUWUxFX01PRCkgeworCisgICAgICAgICAgICBwaWNrVXBUeXBpbmdTdHlsZSgpOworICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gKChTdHlsZU1vZGlmaWVyKXdoYXQpLm1vZGlmeVN0eWxlKGZUeXBpbmdTdHlsZSk7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQmVoYXZpb3IgbmV4dCA9IG5leHRCZWhhdmlvcigpOyAvLyBzYXZlIGJlY2F1c2UgcmVtb3ZlRnJvbU93bmVyKCkgd2lsbCB0cmFzaCB0aGlzCisKKyAgICAgICAgICAgIGVuZEludGVyYWN0aW9uKCk7CisKKyAgICAgICAgICAgIGlmIChuZXh0ICE9IG51bGwpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKGV2ZW50LCB3aGF0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9CYWNrc3BhY2UoKSB7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKworICAgICAgICBpZiAoc2VsU3RhcnQgPT0gc2VsTGltaXQpIHsKKyAgICAgICAgICAgIGlmIChzZWxTdGFydCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBwaWNrVXBUeXBpbmdTdHlsZSgpOworICAgICAgICAgICAgICAgIG1ha2VUZXh0Q2hhbmdlQ29tbWFuZCgpOworICAgICAgICAgICAgICAgIGlmIChzZWxTdGFydCA8PSBmQ29tbWFuZC5hZmZlY3RlZFJhbmdlU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICBmQ29tbWFuZC5wcmVwZW5kVG9PbGRUZXh0KGZUZXh0LmV4dHJhY3Qoc2VsU3RhcnQgLSAxLCBzZWxTdGFydCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGluc1B0ID0gbmV3IFRleHRPZmZzZXQoc2VsU3RhcnQgLSAxKTsKKyAgICAgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQgLSAxLCBzZWxTdGFydCwgbnVsbCwgaW5zUHQsIGluc1B0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9IG51bGw7CisgICAgICAgICAgICBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgaW5zUHQgPSBuZXcgVGV4dE9mZnNldChzZWxTdGFydCk7CisgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQsIHNlbExpbWl0LCBudWxsLCBpbnNQdCwgaW5zUHQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRndkRGVsZXRlKGJvb2xlYW4gaWdub3JlQ2hhckJyZWFrKSB7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKworICAgICAgICBUZXh0T2Zmc2V0IGluc1B0ID0gbmV3IFRleHRPZmZzZXQoc2VsU3RhcnQpOworCisgICAgICAgIGlmIChzZWxTdGFydCA9PSBzZWxMaW1pdCkgeworICAgICAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKTsKKyAgICAgICAgICAgICAgICBpbnQgbnVtQ2hhcnM7CisgICAgICAgICAgICAgICAgaWYgKGlnbm9yZUNoYXJCcmVhaykgeworICAgICAgICAgICAgICAgICAgICBudW1DaGFycyA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZkNoYXJCcmVhayA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmQ2hhckJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZDaGFyQnJlYWsuc2V0VGV4dChmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpKTsKKyAgICAgICAgICAgICAgICAgICAgbnVtQ2hhcnMgPSBmQ2hhckJyZWFrLmZvbGxvd2luZyhzZWxTdGFydCkgLSBzZWxTdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZkNvbW1hbmQuYXBwZW5kVG9PbGRUZXh0KGZUZXh0LmV4dHJhY3Qoc2VsU3RhcnQsIHNlbFN0YXJ0ICsgbnVtQ2hhcnMpKTsKKyAgICAgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQsIHNlbFN0YXJ0ICsgbnVtQ2hhcnMsIG51bGwsIGluc1B0LCBpbnNQdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVHlwaW5nU3R5bGUgPSBudWxsOworICAgICAgICAgICAgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCk7CisgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQsIHNlbExpbWl0LCBudWxsLCBpbnNQdCwgaW5zUHQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvTm9ybWFsS2V5KGNoYXIgY2gpIHsKKworICAgICAgICAvLyBTaWdoIC0gMS4xIHJlcG9ydHMgZW50ZXIga2V5IGV2ZW50cyBhcyByZXR1cm4gY2hhcnMsIGJ1dAorICAgICAgICAvLyAxLjIgcmVwb3J0cyB0aGVtIGFzIGxpbmVmZWVkcy4KKyAgICAgICAgaWYgKGNoID09IFJFVFVSTikgeworICAgICAgICAgICAgY2ggPSBMSU5FX0ZFRUQ7CisgICAgICAgIH0KKyAgICAgICAgcGlja1VwVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCk7CisgICAgICAgIGZQYXJlbnQuZG9SZXBsYWNlU2VsZWN0ZWRUZXh0KGNoLCBmVHlwaW5nU3R5bGUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZSkgeworCisgICAgICAgIC8vIHBhc3MgdGhyb3VnaCwgYnV0IHN0aWNrIGFyb3VuZC4uLgorICAgICAgICByZXR1cm4gc3VwZXIuZm9jdXNHYWluZWQoZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworCisgICAgICAgIC8vIHBhc3MgdGhyb3VnaCwgYnV0IHN0aWNrIGFyb3VuZC4uLgorICAgICAgICByZXR1cm4gc3VwZXIuZm9jdXNMb3N0KGUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKworICAgICAgICBpZiAoZS5nZXRLZXlDaGFyKCkgPT0gQkFDS1NQQUNFKSB7CisgICAgICAgICAgICBkb0JhY2tzcGFjZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGlzVHlwaW5nSW50ZXJhY3RvckNoYXIoZS5nZXRLZXlDaGFyKCkpKSB7CisgICAgICAgICAgICAgICAgS2V5UmVtYXAgcmVtYXAgPSBmUGFyZW50LmdldEtleVJlbWFwKCk7CisgICAgICAgICAgICAgICAgZG9Ob3JtYWxLZXkocmVtYXAucmVtYXAoZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UHJlc3NlZChLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaW50IGtleSA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0RFTEVURSkgeworICAgICAgICAgICAgZG9Gd2REZWxldGUoZS5pc1NoaWZ0RG93bigpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgQmVoYXZpb3IgbmV4dCA9IG5leHRCZWhhdmlvcigpOworCisgICAgICAgIGlmIChUZXh0U2VsZWN0aW9uLmtleUFmZmVjdHNTZWxlY3Rpb24oZSkpIHsKKworICAgICAgICAgICAgZW5kSW50ZXJhY3Rpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXh0LmtleVByZXNzZWQoZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UmVsZWFzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCkgeworICAgICAgICBpZiAoZkNvbW1hbmQgPT0gbnVsbCkgeworICAgICAgICAgICAgVGV4dE9mZnNldCAgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBzZWxFbmQgPSBmU2VsZWN0aW9uLmdldEVuZCgpOworCisgICAgICAgICAgICBNVGV4dCB3cml0YWJsZVRleHQgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICAgICAgd3JpdGFibGVUZXh0LnJlcGxhY2UoMCwgMCwgZlRleHQsIHNlbFN0YXJ0LmZPZmZzZXQsIHNlbEVuZC5mT2Zmc2V0KTsKKyAgICAgICAgICAgIGZDb21tYW5kID0gbmV3IFRleHRDaGFuZ2VDb21tYW5kKGZQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgc2VsU3RhcnQuZk9mZnNldCwgc2VsU3RhcnQsIHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRleHRPZmZzZXQoKSwgbmV3IFRleHRPZmZzZXQoKSk7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlTW92ZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIEJlaGF2aW9yIG5leHQgPSBuZXh0QmVoYXZpb3IoKTsgLy8gc2F2ZSBiZWNhdXNlIHJlbW92ZUZyb21Pd25lcigpIHdpbGwgdHJhc2ggdGhpcworCisgICAgICAgIGVuZEludGVyYWN0aW9uKCk7CisKKyAgICAgICAgaWYgKG5leHQgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBuZXh0Lm1vdXNlUHJlc3NlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgQmVoYXZpb3IgbmV4dCA9IG5leHRCZWhhdmlvcigpOyAvLyBzYXZlIGJlY2F1c2UgcmVtb3ZlRnJvbU93bmVyKCkgd2lsbCB0cmFzaCB0aGlzCisKKyAgICAgICAgZW5kSW50ZXJhY3Rpb24oKTsKKworICAgICAgICBpZiAobmV4dCAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIG5leHQubW91c2VSZWxlYXNlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwaWNrVXBUeXBpbmdTdHlsZSgpIHsKKyAgICAgICAgaWYgKGZUeXBpbmdTdHlsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBpbnQgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCkuZk9mZnNldDsKKyAgICAgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9IFRleHRFZGl0QmVoYXZpb3IudHlwaW5nU3R5bGVBdChmVGV4dCwgc2VsU3RhcnQsIHNlbExpbWl0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwb3N0VGV4dENoYW5nZUNvbW1hbmQoKSB7CisgICAgICAgIGlmIChmQ29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIHNlbEVuZCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCk7CisKKyAgICAgICAgICAgIGZDb21tYW5kLnNldE5ld1RleHQoZlRleHQuZXh0cmFjdChmQ29tbWFuZC5hZmZlY3RlZFJhbmdlU3RhcnQoKSwgc2VsU3RhcnQuZk9mZnNldCkpOworICAgICAgICAgICAgZkNvbW1hbmQuc2V0U2VsUmFuZ2VBZnRlcihzZWxTdGFydCwgc2VsRW5kKTsKKyAgICAgICAgICAgIGZDb21tYW5kTG9nLmFkZChmQ29tbWFuZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sZWFuIGhhc1BlbmRpbmdDb21tYW5kKCkgeworCisgICAgICAgIHJldHVybiBmQ29tbWFuZCAhPSBudWxsOworICAgIH0KKworICAgIEF0dHJpYnV0ZU1hcCBnZXRUeXBpbmdTdHlsZSgpIHsKKworICAgICAgICBwaWNrVXBUeXBpbmdTdHlsZSgpOworICAgICAgICByZXR1cm4gZlR5cGluZ1N0eWxlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZjODY1NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorICAgIDxoZWFkPiA8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisgICAgICAgIDx0aXRsZT5UZXh0UGFuZWwgUGFja2FnZSBPdmVydmlldzwvdGl0bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IGJnY29sb3I9IndoaXRlIj4KKyAgICAgICAgUHJvdmlkZXMgY29tcG9uZW50cyAoZm9yIGJvdGggQVdUIGFuZCBTd2luZykgaW4gd2hpY2ggc3R5bGVkIHRleHQgaXMgZGlzcGxheWVkIAorICAgICAgICBhbmQgZWRpdGVkLCBhbmQgcmVsYXRlZCBjbGFzc2VzLgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9BYm91dFRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9BYm91dFRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Yjc4YzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0Fib3V0VGV4dC5qYXZhCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitwdWJsaWMgZmluYWwgY2xhc3MgQWJvdXRUZXh0IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbG9yW10gQ09MT1JTID0geworICAgICAgICBDb2xvci5yZWQsIENvbG9yLmJsdWUsIENvbG9yLndoaXRlLCBDb2xvci5ncmVlbgorICAgIH07CisgICAgCisgICAgcHVibGljIHN0YXRpYyBNQ29uc3RUZXh0IGdldEFib3V0VGV4dCgpIHsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQUJPVVRfVEVYVCk7CisgICAgICAgIFN0eWxlZFRleHQgc3R5bGVkVGV4dCA9IG5ldyBTdHlsZWRUZXh0KHRleHQsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBpbnQgbGVuZ3RoID0gc3R5bGVkVGV4dC5sZW5ndGgoKTsKKyAgICAgICAgaW50IGk9MDsKKworICAgICAgICBmb3IgKGludCBwYXJhZ3JhcGhTdGFydCA9IDAsIHBhcmFncmFwaExpbWl0OworICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCA8IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3RhcnQgPSBwYXJhZ3JhcGhMaW1pdCkgeworCisgICAgICAgICAgICBwYXJhZ3JhcGhMaW1pdCA9IHN0eWxlZFRleHQucGFyYWdyYXBoTGltaXQocGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xPUlNbKGkrKyklQ09MT1JTLmxlbmd0aF0pOworICAgICAgICAgICAgc3R5bGVkVGV4dC5tb2RpZnlDaGFyYWN0ZXJTdHlsZXMocGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSKTsKKworICAgICAgICBzdHlsZWRUZXh0Lm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCB0ZXh0Lmxlbmd0aCgpLCBtb2RpZmllcik7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlZFRleHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Cb29sZWFuU3R5bGVNZW51SXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0Jvb2xlYW5TdHlsZU1lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQ2NGEyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Cb29sZWFuU3R5bGVNZW51SXRlbS5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBCb29sZWFuU3R5bGVNZW51SXRlbSBleHRlbmRzIFNpbmdsZUNoZWNrTWVudUl0ZW0geworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBmQ2hhcmFjdGVyOworCisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgZk9uVmFsdWU7CisgICAgCisgICAgcHVibGljIEJvb2xlYW5TdHlsZU1lbnVJdGVtKE9iamVjdCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG9uVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworICAgICAgICAKKyAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICBpZiAob25WYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbiB2YWx1ZSBjYW5ub3QgYmUgbnVsbCIpOworICAgICAgICB9CisKKyAgICAgICAgZktleSA9IHN0eWxlOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgICAgICAKKyAgICAgICAgZk9uVmFsdWUgPSBvblZhbHVlOworICAgICAgICBmSXRlbS5hZGRMaXN0ZW5lcihuZXcgRXZlbnRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyOworICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNvbnRpbnVvdXNBbmRDb21tYW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlU2V0IHNldCA9IG5ldyBBdHRyaWJ1dGVTZXQoZktleSk7CisgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGZLZXksIGZPblZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGNvbnRpbnVvdXNBbmRDb21tYW5kKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IChmQ2hhcmFjdGVyID09IENIQVJBQ1RFUik/IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihmS2V5KSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICByZXR1cm4gZk9uVmFsdWUuZXF1YWxzKHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0Q2hlY2tlZCgpIHsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLnNldFN0YXRlKGNvbnRpbnVvdXNBbmRDb21tYW5kKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KSB7CisgICAgICAgIAorICAgICAgICBzZXRDaGVja2VkKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9DaG9pY2VNZW51SXRlbVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0Nob2ljZU1lbnVJdGVtU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTk4OGM5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9DaG9pY2VNZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ2hvaWNlTWVudUl0ZW1TZXQgZXh0ZW5kcyBNZW51SXRlbVNldCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIE1JdGVtW10gZkl0ZW1zOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGZJdGVtVG9TdHlsZU1hcDsKKyAgICAKKyAgICBDaG9pY2VNZW51SXRlbVNldChPYmplY3RbXSB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGFbXSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT0gbWVudURhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWVzIGFuZCBuYW1lcyBtdXN0IGhhdmUgZXF1YWwgbGVuZ3RoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZJdGVtcyA9IG5ldyBNSXRlbVttZW51RGF0YS5sZW5ndGhdOworICAgICAgICBmSXRlbVRvU3R5bGVNYXAgPSBuZXcgSGFzaHRhYmxlKG1lbnVEYXRhLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBFdmVudExpc3RlbmVyIGxpc3RlbmVyID0gbmV3IEV2ZW50TGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudE9jY3VycmVkKEV2ZW50T2JqZWN0IGV2ZW50KSB7CisgICAgICAgICAgICAgICAgaGFuZGxlVmFsdWVTZWxlY3RlZChmSXRlbVRvU3R5bGVNYXAuZ2V0KGV2ZW50LmdldFNvdXJjZSgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBtZW51RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZkl0ZW1zW2ldID0gTUl0ZW0uY3JlYXRlQ2hlY2tib3hJdGVtKG1lbnVEYXRhW2ldKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZJdGVtVG9TdHlsZU1hcC5wdXQoZkl0ZW1zW2ldLCB2YWx1ZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZkl0ZW1zW2ldLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVWYWx1ZVNlbGVjdGVkKE9iamVjdCBpdGVtKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgT2JqZWN0IGdldEN1cnJlbnRWYWx1ZSgpOworICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHNldENoZWNrZWQoKSB7CisgICAgICAgIAorICAgICAgICBPYmplY3QgdmFsdWUgPSBnZXRDdXJyZW50VmFsdWUoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZJdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IGl0ZW1WYWwgPSBmSXRlbVRvU3R5bGVNYXAuZ2V0KGZJdGVtc1tpXSk7CisgICAgICAgICAgICBpZiAoaXRlbVZhbCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldFN0YXRlKHZhbHVlID09IG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldFN0YXRlKGl0ZW1WYWwuZXF1YWxzKHZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB0ZXh0UGFuZWxDaGFuZ2VkKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmSXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmSXRlbXNbaV0uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZJdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Db21tYW5kTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Db21tYW5kTWVudUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ODZkNzA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0NvbW1hbmRNZW51SXRlbS5qYXZhCkBAIC0wLDAgKzEsMTkzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZE1lbnVJdGVtIGV4dGVuZHMgTWVudUl0ZW1TZXQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSAvKmZpbmFsKi8gTUl0ZW0gZkl0ZW07CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gaXNFbmFibGVkKCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgcGVyZm9ybUFjdGlvbigpOworCisgICAgcHJvdGVjdGVkIENvbW1hbmRNZW51SXRlbShNZW51RGF0YSBkYXRhKSB7CisgICAgICAgIAorICAgICAgICB0aGlzKGRhdGEsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIENvbW1hbmRNZW51SXRlbShNZW51RGF0YSBkYXRhLCBib29sZWFuIGVuYWJsZUJ5RGVmYXVsdCkgeworICAgICAgICAKKyAgICAgICAgZkl0ZW0gPSBNSXRlbS5jcmVhdGVJdGVtKGRhdGEpOworICAgICAgICBmSXRlbS5hZGRMaXN0ZW5lcihuZXcgRXZlbnRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBwZXJmb3JtQWN0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGVuYWJsZUJ5RGVmYXVsdCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHRleHRQYW5lbENoYW5nZWQoKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChpc0VuYWJsZWQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoaXNFbmFibGVkKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEN1dENvcHlDbGVhciBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVVQgPSAwOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1BZID0gMTsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0xFQVIgPSAyOworCisgICAgICAgIHByaXZhdGUgZmluYWwgaW50IGZLaW5kOworICAgICAgICAKKyAgICAgICAgcHVibGljIEN1dENvcHlDbGVhcihNZW51RGF0YSBtZW51RGF0YSwgaW50IGtpbmQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICAgICAgaWYgKGtpbmQgIT0gQ1VUICYmIGtpbmQgIT0gQ09QWSAmJiBraW5kICE9IENMRUFSKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBtZW51IGtpbmQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZLaW5kID0ga2luZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICByZXR1cm4gcGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBwYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUFjdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICAgICAgc3dpdGNoIChmS2luZCkgeworICAgICAgICAgICAgICAgIGNhc2UgQ1VUOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5jdXQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDT1BZOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5jb3B5KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0xFQVI6CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgVW5kb1JlZG8gZXh0ZW5kcyBDb21tYW5kTWVudUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFVORE8gPSB0cnVlOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gUkVETyA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZLaW5kOworICAgICAgICAKKyAgICAgICAgcHVibGljIFVuZG9SZWRvKE1lbnVEYXRhIG1lbnVEYXRhLCBib29sZWFuIGtpbmQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICAgICAgZktpbmQgPSBraW5kOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIGlmIChmS2luZCA9PSBVTkRPKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhbmVsLmNhblVuZG8oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBwYW5lbC5jYW5SZWRvKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0eXBlID09IFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBlcmZvcm1BY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIGlmIChmS2luZCA9PSBVTkRPKSB7CisgICAgICAgICAgICAgICAgcGFuZWwudW5kbygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcGFuZWwucmVkbygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBQYXN0ZSBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgUGFzdGUoTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBnZXRUZXh0UGFuZWwoKS5jbGlwYm9hcmROb3RFbXB0eSgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5DTElQQk9BUkRfQ0hBTkdFRDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBlcmZvcm1BY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdldFRleHRQYW5lbCgpLnBhc3RlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFNlbGVjdEFsbCBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU2VsZWN0QWxsKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUFjdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2V0VGV4dFBhbmVsKCkuc2VsZWN0QWxsKCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRGlhbG9nSXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0RpYWxvZ0l0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNGQ4ZWJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0RpYWxvZ0l0ZW0uamF2YQpAQCAtMCwwICsxLDcxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBEaWFsb2dJdGVtIGV4dGVuZHMgQ29tbWFuZE1lbnVJdGVtIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgRGlhbG9nRmFjdG9yeSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYWJzdHJhY3QgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgRGlhbG9nRmFjdG9yeSBmRGlhbG9nRmFjdG9yeTsKKyAgICBwcml2YXRlIFdpbmRvdyBmRGlhbG9nID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgRGlhbG9nSXRlbShNZW51RGF0YSBtZW51RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGRpYWxvZ0ZhY3RvcnkpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKG1lbnVEYXRhLCB0cnVlKTsKKyAgICAgICAgZkRpYWxvZ0ZhY3RvcnkgPSBkaWFsb2dGYWN0b3J5OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB0ZXh0UGFuZWxDaGFuZ2VkKCkgeworICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgfQorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIGdldCBjYWxsZWQuLi4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBwZXJmb3JtQWN0aW9uKCkgeworCisgICAgICAgIGlmIChmRGlhbG9nID09IG51bGwpIHsKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIGlmIChwYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkRpYWxvZyA9IGZEaWFsb2dGYWN0b3J5LmNyZWF0ZURpYWxvZyhwYW5lbCk7CisgICAgICAgICAgICAgICAgZkRpYWxvZy5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2VkKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZEaWFsb2cgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZkRpYWxvZy5zaG93KCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9FdmVudExpc3RlbmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRXZlbnRMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyNmNkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRXZlbnRMaXN0ZW5lci5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitwdWJsaWMgaW50ZXJmYWNlIEV2ZW50TGlzdGVuZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHZvaWQgZXZlbnRPY2N1cnJlZChFdmVudE9iamVjdCBldmVudCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0ZvbnRMaXN0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRm9udExpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NjgwZmJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0ZvbnRMaXN0LmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3NFbnZpcm9ubWVudDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ZpbmFsIGNsYXNzIEZvbnRMaXN0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBzdHJpcFRoZXNlID0geworICAgICAgICAiLmJvbGQiLCAiLmJvbGRpdGFsaWMiLCAiLml0YWxpYyIKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRGb250TGlzdCgpIHsKKworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IEdyYXBoaWNzRW52aXJvbm1lbnQuZ2V0TG9jYWxHcmFwaGljc0Vudmlyb25tZW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEF2YWlsYWJsZUZvbnRGYW1pbHlOYW1lcygpOworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IobmFtZXMubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHYuYWRkRWxlbWVudChuYW1lc1tpXSk7CisgICAgICAgIH0KKworICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KHYpOworICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgbGFzdCA9ICIiOworICAgICAgICAKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHYubGlzdEl0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnQgPSAoU3RyaW5nKSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIHRlc3RTdWZmaXhlczogZm9yIChpbnQgaT0wOyBpIDwgc3RyaXBUaGVzZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LmVuZHNXaXRoKHN0cmlwVGhlc2VbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBiYXNlTGVuID0gY3VycmVudC5sZW5ndGgoKS1zdHJpcFRoZXNlW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYmFzZSA9IGN1cnJlbnQuc3Vic3RyaW5nKDAsIGJhc2VMZW4pOworICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZS5lcXVhbHNJZ25vcmVDYXNlKGxhc3QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGxhc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayB0ZXN0U3VmZml4ZXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0ID0gY3VycmVudDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gcmVzdWx0ID0gbmV3IFN0cmluZ1t2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvS2V5bWFwTWVudUl0ZW1TZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9LZXltYXBNZW51SXRlbVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1ZjlkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvS2V5bWFwTWVudUl0ZW1TZXQuamF2YQpAQCAtMCwwICsxLDU5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleVJlbWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgZmluYWwgY2xhc3MgS2V5bWFwTWVudUl0ZW1TZXQgZXh0ZW5kcyBDaG9pY2VNZW51SXRlbVNldCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBLZXltYXBNZW51SXRlbVNldChLZXlSZW1hcFtdIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGFbXSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIodmFsdWVzLCBtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVZhbHVlU2VsZWN0ZWQoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWVudSBpdGVtIGlzIGVuYWJsZWQgd2hlbiBwYW5lbCBpcyBudWxsISIpOworICAgICAgICB9CisKKyAgICAgICAgdGV4dFBhbmVsLnNldEtleVJlbWFwKChLZXlSZW1hcCkgdmFsdWUpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGdldEN1cnJlbnRWYWx1ZSgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGRuJ3QgY2FsbCB0aGlzIHdpdGhvdXQgYSB0ZXh0IHBhbmVsISIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXh0UGFuZWwuZ2V0S2V5UmVtYXAoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgCisgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuS0VZUkVNQVBfQ0hBTkdFRDsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NSXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01JdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDkwYTAzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NSXRlbS5qYXZhCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRPYmplY3Q7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNSXRlbSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVmVjdG9yIGZMaXN0ZW5lcnMgPSBuZXcgVmVjdG9yKDIpOworICAgIHByaXZhdGUgRXZlbnRPYmplY3QgZkV2ZW50ID0gbmV3IEV2ZW50T2JqZWN0KHRoaXMpOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRTdGF0ZShib29sZWFuIGNoZWNrZWQpOworICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZExpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lcnMuYWRkRWxlbWVudChsaXN0ZW5lcik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlbW92ZUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lcnMucmVtb3ZlRWxlbWVudChsaXN0ZW5lcik7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVNlbGVjdGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgIGludCBsZW5ndGggPSBmTGlzdGVuZXJzLnNpemUoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbCA9IChFdmVudExpc3RlbmVyKSBmTGlzdGVuZXJzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGwuZXZlbnRPY2N1cnJlZChmRXZlbnQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIGZhY3Rvcnkgc3R1ZmYKKyAgICAKKyAgICAvKioKKyAgICAgKiBDbGllbnRzIHNob3VsZCBzeW5jaHJvbml6ZSBvbiBMT0NLIHdoaWxlIHNldHRpbmcgYW5kIHVzaW5nCisgICAgICogZ2xvYmFsIGZhY3RvcnkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTE9DSyA9IG5ldyBPYmplY3QoKTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBJdGVtRmFjdG9yeSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlSXRlbShNZW51RGF0YSBtZW51RGF0YSk7CisgICAgICAgIHB1YmxpYyBNSXRlbSBjcmVhdGVDaGVja2JveEl0ZW0oTWVudURhdGEgbWVudURhdGEpOworICAgICAgICBwdWJsaWMgdm9pZCBjcmVhdGVTZXBhcmF0b3IoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgSXRlbUZhY3RvcnkgZmdGYWN0b3J5OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTUl0ZW0gY3JlYXRlSXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZnRmFjdG9yeS5jcmVhdGVJdGVtKG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBNSXRlbSBjcmVhdGVDaGVja2JveEl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmZ0ZhY3RvcnkuY3JlYXRlQ2hlY2tib3hJdGVtKG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldEl0ZW1GYWN0b3J5KEl0ZW1GYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgCisgICAgICAgIGZnRmFjdG9yeSA9IGZhY3Rvcnk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgSXRlbUZhY3RvcnkgZ2V0SXRlbUZhY3RvcnkoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmdGYWN0b3J5OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51QnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01lbnVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFiNWM1ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51QnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMzY4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5LZXlSZW1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5EaWFsb2dJdGVtLkRpYWxvZ0ZhY3Rvcnk7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNZW51QnVpbGRlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVESVQgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJWkUgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFID0gMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGTFVTSCA9IDM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0VZTUFQID0gNDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJID0gNTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBQk9VVCA9IDY7CisgICAgCisgICAgcHJpdmF0ZSBDb2xvcltdIGNvbG9ycyA9IHsgQ29sb3IuYmxhY2ssIENvbG9yLndoaXRlLCBDb2xvci5ncmVlbiwgQ29sb3IuYmx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IuY3lhbiwgQ29sb3IuZ3JheSwgQ29sb3IuZGFya0dyYXksIENvbG9yLmxpZ2h0R3JheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IubWFnZW50YSwgQ29sb3Iub3JhbmdlLCBDb2xvci5waW5rLCBDb2xvci5yZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLnllbGxvdywgbnVsbCB9OworICAgIHByaXZhdGUgU3RyaW5nW10gY29sb3JOYW1lcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQkxBQ0spLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5XSElURSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkdSRUVOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQkxVRSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNZQU4pLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5HUkFZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuREFSS19HUkFZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuTElHSFRfR1JBWSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk1BR0VOVEEpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5PUkFOR0UpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5QSU5LKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuUkVEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuWUVMTE9XKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuTk9ORSkKKyAgICB9OworICAgIAorICAgIHByb3RlY3RlZCBpbnRbXSBkZWZhdWx0TWVudXMgPSB7IEVESVQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RZTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkxVU0gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtFWU1BUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSURJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCT1VUIH07CisKKyAgICBwcm90ZWN0ZWQgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByb3RlY3RlZCBGcmFtZSBmRGlhbG9nUGFyZW50OworCisgICAgcHJvdGVjdGVkIE1lbnVCdWlsZGVyKCkgeworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBkb0NyZWF0ZU1lbnVzKE1UZXh0UGFuZWwgdGV4dFBhbmVsLCBGcmFtZSBmcmFtZSwgaW50W10gbWVudXMpIHsKKyAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZkRpYWxvZ1BhcmVudCA9IGZyYW1lOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbWVudXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN3aXRjaChtZW51c1tpXSkgeworICAgICAgICAgICAgICAgIGNhc2UgRURJVDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlRWRpdE1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTSVpFOgorICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaXplTWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFNUWUxFOgorICAgICAgICAgICAgICAgICAgICBjcmVhdGVTdHlsZU1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBGTFVTSDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlRmx1c2hNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgS0VZTUFQOgorICAgICAgICAgICAgICAgICAgICBjcmVhdGVLZXltYXBNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQklESToKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlQmlkaU1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBBQk9VVDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlQWJvdXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbWVudTogIiArIG1lbnVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG51bGw7CisgICAgICAgIGZEaWFsb2dQYXJlbnQgPSBudWxsOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVBZGRNZW51KFN0cmluZyBrZXkpOworICAgIAorICAgIHByb3RlY3RlZCBhYnN0cmFjdCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU9iamVjdERpYWxvZ0ZhY3RvcnkoU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRpYWxvZ1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcyk7CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRGlhbG9nRmFjdG9yeSBjcmVhdGVOdW1iZXJEaWFsb2dGYWN0b3J5KFN0cmluZyBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKTsKKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBEaWFsb2dGYWN0b3J5IGNyZWF0ZUFib3V0RGlhbG9nRmFjdG9yeSgpOworCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUVkaXRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5FRElUKTsKKyAgICAgICAgCisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8oUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5VTkRPKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5VbmRvUmVkby5VTkRPKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8oUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5SRURPKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5VbmRvUmVkby5SRURPKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIE1JdGVtLmdldEl0ZW1GYWN0b3J5KCkuY3JlYXRlU2VwYXJhdG9yKCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQ1VUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyLkNVVCkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhcihSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNPUFkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5DdXRDb3B5Q2xlYXIuQ09QWSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLlBhc3RlKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuUEFTVEUpKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQ0xFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5DdXRDb3B5Q2xlYXIuQ0xFQVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgTUl0ZW0uZ2V0SXRlbUZhY3RvcnkoKS5jcmVhdGVTZXBhcmF0b3IoKTsKKyAgICAgICAgbmV3IENvbW1hbmRNZW51SXRlbS5TZWxlY3RBbGwoUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5TRUxFQ1RfQUxMKSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBmbG9hdFtdIERFRkFVTFRfU0laRVMgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezksIDEwLCAxMiwgMTQsIDE4LCAyNCwgMzYsIDQ4LCA3Mn07CisKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlU2l6ZU1lbnUoKSB7CisgICAgICAgIAorICAgICAgICBjcmVhdGVTaXplTWVudShERUZBVUxUX1NJWkVTKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZVNpemVNZW51KGZsb2F0W10gc2l6ZXMpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5TSVpFKTsKKworICAgICAgICBpZiAoc2l6ZXMgIT0gREVGQVVMVF9TSVpFUykgeworCisgICAgICAgICAgICBzaXplcyA9IChmbG9hdFtdKSBzaXplcy5jbG9uZSgpOworICAgICAgICAgICAgaWYgKHNpemVzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic2l6ZXMgYXJyYXkgaGFzIHplcm8gbGVuZ3RoIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZsb2F0IGxhc3RWYWx1ZSA9IHNpemVzWzBdOworICAgICAgICAgICAgZm9yIChpbnQgaT0xOyBpIDwgc2l6ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoc2l6ZXNbaV0gPj0gbGFzdFZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2l6ZXMgYXJyYXkgbXVzdCBiZSBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RWYWx1ZSA9IHNpemVzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBGbG9hdFtdIHZhbHVlcyA9IG5ldyBGbG9hdFtzaXplcy5sZW5ndGhdOworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0gbmV3IE1lbnVEYXRhW3NpemVzLmxlbmd0aF07CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHNpemVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YWx1ZXNbaV0gPSBuZXcgRmxvYXQoc2l6ZXNbaV0pOworICAgICAgICAgICAgbURhdGFbaV0gPSBuZXcgTWVudURhdGEoZm10LmZvcm1hdChzaXplc1tpXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLlNJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChmRGlhbG9nUGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUaXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX1NJWkVfVElUTEUpOworICAgICAgICAgICAgU3RyaW5nIGRpYWxvZ1RleHQgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9TSVpFX0xBQkVMKTsKKyAgICAgICAgICAgIERpYWxvZ0ZhY3RvcnkgZmFjdG9yeSA9IGNyZWF0ZU51bWJlckRpYWxvZ0ZhY3RvcnkoZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudUl0ZW1TZXQuQ0hBUkFDVEVSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLk9USEVSX0RJQUxPRyksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnkpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlU3R5bGVNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5TVFlMRSk7CisKKyAgICAgICAgT2JqZWN0W10ga2V5cyA9ICAgIHsgVGV4dEF0dHJpYnV0ZS5XRUlHSFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVH07CisgICAgICAgIE9iamVjdFtdIHZhbHVlcyA9ICB7IFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdIX09OLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC0xKX07CisgICAgICAgIE1lbnVEYXRhW10gbURhdGEgPSB7IFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQk9MRCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuSVRBTElDKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5VTkRFUkxJTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlNUUklLRVRIUk9VR0gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlNVUEVSU0NSSVBUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5TVUJTQ1JJUFQpfTsKKworICAgICAgICBuZXcgU3VidHJhY3RTdHlsZU1lbnVJdGVtKGtleXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5QTEFJTiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51SXRlbVNldC5DSEFSQUNURVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbmV3IEJvb2xlYW5TdHlsZU1lbnVJdGVtKGtleXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGZEaWFsb2dQYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNSXRlbS5nZXRJdGVtRmFjdG9yeSgpLmNyZWF0ZVNlcGFyYXRvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdbXSBmb250cyA9IEZvbnRMaXN0LmdldEZvbnRMaXN0KCk7CisgICAgICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9GT05UX1RJVExFKTsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0ZPTlRfTEFCRUwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGZvbnRGID0gY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeSh0aXRsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkFNSUxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNZW51SXRlbVNldC5DSEFSQUNURVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRzKTsKKyAgICAgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuRk9OVF9ESUFMT0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEYpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKworICAgICAgICAgICAgRGlhbG9nRmFjdG9yeSBmb3JlZ3JvdW5kRiA9IGNyZWF0ZUNvbG9yRGlhbG9nRmFjdG9yeSh0cnVlKTsKKyAgICAgICAgICAgIERpYWxvZ0ZhY3RvcnkgYmFja2dyb3VuZEYgPSBjcmVhdGVDb2xvckRpYWxvZ0ZhY3RvcnkoZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkZPUkVDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZEYpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQkFDS0NPTE9SX0RJQUxPRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kRikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgRGlhbG9nRmFjdG9yeSBjcmVhdGVDb2xvckRpYWxvZ0ZhY3RvcnkoYm9vbGVhbiBmb3JlZ3JvdW5kKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGl0bGU7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAgICBPYmplY3Qga2V5OworICAgICAgICAKKyAgICAgICAgaWYgKGZvcmVncm91bmQpIHsKKyAgICAgICAgICAgIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfRk9SRUdST1VORF9USVRMRSk7CisgICAgICAgICAgICBtZXNzYWdlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfRk9SRUdST1VORF9MQUJFTCk7CisgICAgICAgICAgICBrZXkgPSBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0JBQ0tHUk9VTkRfVElUTEUpOworICAgICAgICAgICAgbWVzc2FnZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0JBQ0tHUk9VTkRfTEFCRUwpOworICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5EOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjcmVhdGVPYmplY3REaWFsb2dGYWN0b3J5KHRpdGxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1lbnVJdGVtU2V0LkNIQVJBQ1RFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JOYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUZvbnRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5GT05UKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGZvbnRzID0gRm9udExpc3QuZ2V0Rm9udExpc3QoKTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IG5ldyBNZW51RGF0YVtmb250cy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBtRGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbURhdGFbaV0gPSBuZXcgTWVudURhdGEoZm9udHNbaV0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLkZBTUlMWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlRmx1c2hNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5GTFVTSCk7CisgICAgICAgIAorICAgICAgICBPYmplY3RbXSB2YWx1ZXMgPSB7ICBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZVTExZX0pVU1RJRklFRCB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkxFQURJTkcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNFTlRFUiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuVFJBSUxJTkcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkpVU1RJRklFRCkgfTsKKyAgICAgICAgCisgICAgICAgIG5ldyBTdHlsZU1lbnVJdGVtU2V0KFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudUl0ZW1TZXQuUEFSQUdSQVBIKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjcmVhdGVLZXltYXBNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5LRVlNQVApOworICAgICAgICAKKyAgICAgICAgS2V5UmVtYXBbXSB2YWx1ZXMgPSB7IEtleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVtYXAuZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleVJlbWFwLmdldEhlYnJld1RyYW5zbGl0ZXJhdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcC5nZXRJc3JhZWxOaWt1ZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcC5nZXRUaGFpS2V0bWFuZWUoKSB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkRFRkFVTFQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkFSQUJJQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuSEVCUkVXKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5JU1JBRUxfTklLVUQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlRIQUlfS0VUTUFORUUpIH07CisgICAgICAgIAorICAgICAgICBuZXcgS2V5bWFwTWVudUl0ZW1TZXQodmFsdWVzLCBtRGF0YSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlQmlkaU1lbnUoKSB7CisgICAgICAgIAorICAgICAgICBoYW5kbGVBZGRNZW51KEZyYW1lUmVzb3VyY2VzLkJJREkpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0W10gdmFsdWVzID0geyAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX0xUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTCB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkRFRkFVTFRfRElSRUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5MVFJfRElSRUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5SVExfRElSRUNUSU9OKSwgfTsKKworICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LlBBUkFHUkFQSCkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlQWJvdXRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5BQk9VVF9NRU5VKTsKKyAgICAgICAgCisgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQUJPVVRfSVRFTSksIAorICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51SXRlbVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01lbnVJdGVtU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmJhMTM4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lbnVJdGVtU2V0IGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIENIQVJBQ1RFUiA9IHRydWU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFBBUkFHUkFQSCA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWwgPSBudWxsOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRUZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGV4dFBhbmVsQ2hhbmdlZCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgTVRleHRQYW5lbCBnZXRUZXh0UGFuZWwoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRleHRQYW5lbDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdGV4dFBhbmVsQ2hhbmdlZCgpIHsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvUmVzb3VyY2VVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1Jlc291cmNlVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYmIwZTVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1Jlc291cmNlVXRpbHMuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGNsYXNzIFJlc291cmNlVXRpbHMgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgQlVORExFOworICAgIHN0YXRpYyB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCVU5ETEUgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlcyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGxvYWQgcmVzb3VyY2VYWFguICAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICBCVU5ETEUgPSBuZXcgRnJhbWVSZXNvdXJjZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgTWVudURhdGEgZ2V0TWVudURhdGEoU3RyaW5nIGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIChNZW51RGF0YSkgQlVORExFLmdldE9iamVjdChrZXkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRSZXNvdXJjZVN0cmluZyhTdHJpbmcga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gQlVORExFLmdldFN0cmluZyhrZXkpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU2luZ2xlQ2hlY2tNZW51SXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1NpbmdsZUNoZWNrTWVudUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YTY3N2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1NpbmdsZUNoZWNrTWVudUl0ZW0uamF2YQpAQCAtMCwwICsxLDQzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU2luZ2xlQ2hlY2tNZW51SXRlbSBleHRlbmRzIE1lbnVJdGVtU2V0IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByb3RlY3RlZCBNSXRlbSBmSXRlbTsKKyAgICAKKyAgICBTaW5nbGVDaGVja01lbnVJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICBmSXRlbSA9IE1JdGVtLmNyZWF0ZUNoZWNrYm94SXRlbShtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIGFic3RyYWN0IHZvaWQgc2V0Q2hlY2tlZCgpOworICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHRleHRQYW5lbENoYW5nZWQoKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgZkl0ZW0uc2V0U3RhdGUoZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdHlsZU1lbnVJdGVtU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU3R5bGVNZW51SXRlbVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3NmIyYTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU3R5bGVNZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHlsZU1lbnVJdGVtU2V0IGV4dGVuZHMgQ2hvaWNlTWVudUl0ZW1TZXQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworCisgICAgcHVibGljIFN0eWxlTWVudUl0ZW1TZXQoT2JqZWN0IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YVtdIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcih2YWx1ZXMsIG1lbnVEYXRhKTsKKyAgICAgICAgZktleSA9IHN0eWxlOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVWYWx1ZVNlbGVjdGVkKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQgPSBuZXcgQXR0cmlidXRlU2V0KGZLZXkpOworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKHNldCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoZktleSwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgIHRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGdldEN1cnJlbnRWYWx1ZSgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGRuJ3QgY2FsbCB0aGlzIHdpdGhvdXQgYSB0ZXh0IHBhbmVsISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0UGFuZWwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRleHRQYW5lbC5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oZktleSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOGFmMDg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1N1YnRyYWN0U3R5bGVNZW51SXRlbS5qYXZhCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGZpbmFsIGNsYXNzIFN1YnRyYWN0U3R5bGVNZW51SXRlbSBleHRlbmRzIFNpbmdsZUNoZWNrTWVudUl0ZW0geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdFtdIGZLZXlzOworICAgIAorICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIAorICAgIHB1YmxpYyBTdWJ0cmFjdFN0eWxlTWVudUl0ZW0oT2JqZWN0W10ga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgCisgICAgICAgIGZLZXlzID0gKE9iamVjdFtdKSBrZXlzLmNsb25lKCk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVTZXQga2V5U2V0ID0gbmV3IEF0dHJpYnV0ZVNldChrZXlzKTsKKyAgICAgICAgZmluYWwgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoa2V5U2V0KTsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLmFkZExpc3RlbmVyKG5ldyBFdmVudExpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZXZlbnRPY2N1cnJlZChFdmVudE9iamVjdCBldmVudCkgeworICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIG9iamVjdHNBcmVFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgCisgICAgICAgIGlmIChsaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHJocyA9PSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxocy5lcXVhbHMocmhzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldENoZWNrZWQoKSB7CisKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdHMgPSBwYW5lbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmS2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IGRlZmF1bHRWID0gZGVmYXVsdHMuZ2V0KGZLZXlzW2ldKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKT8gCisgICAgICAgICAgICAgICAgICAgIHBhbmVsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihmS2V5c1tpXSkgOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oZktleXNbaV0pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghb2JqZWN0c0FyZUVxdWFsKGRlZmF1bHRWLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBmSXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZkl0ZW0uc2V0U3RhdGUodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9UYWJSdWxlckltcGwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9UYWJSdWxlckltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Mjg2YTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1RhYlJ1bGVySW1wbC5qYXZhCkBAIC0wLDAgKzEsOTAzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuRm9udE1ldHJpY3M7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZU1vdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3RhbmRhcmRUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuVGFiU3RvcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworCisvKioKKyAqIFRhYlJ1bGVyIGlzIGEgQ29tcG9uZW50IHdoaWNoIHByZXNlbnRzIGEgdXNlciBpbnRlcmZhY2UgZm9yCisgKiBzZXR0aW5nIHRoZSBsZWFkaW5nIG1hcmdpbiwgdHJhaWxpbmcgbWFyZ2luLCBmaXJzdCBsaW5lIGluZGVudCwKKyAqIGFuZCB0YWIgdHlwZXMgYW5kIHBvc2l0aW9ucy4KKyAqIDxwPgorICogVGFiUnVsZXIgZG9lcyBub3QgaW1wbGVtZW50IFRleHRQYW5lbExpc3RlbmVyIGRpcmVjdGx5OyAgaG93ZXZlciwKKyAqIGl0IGNhbiByZWNlaXZlIHVwZGF0ZXMgZnJvbSBhIE1UZXh0UGFuZWwuICBUbyBoYXZlIGEgVGFiUnVsZXIgbGlzdGVuCisgKiB0byBhIHBhbmVsLCBjYWxsIDxjb2RlPmxpc3RlblRvUGFuZWw8L2NvZGU+LiAgVGFiUnVsZXIgcmVzcG9uZHMgdG8KKyAqIHVzZXIgbWFuaXB1bGF0aW9uIGJ5IG1vZGlmeWluZyB0aGUgcGFyYWdyYXBoIHN0eWxlcyBvbiBpdHMgTVRleHRQYW5lbAorICogKGlmIGFueSkuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUYWJSdWxlckltcGwgaW1wbGVtZW50cyBNb3VzZUxpc3RlbmVyLCBNb3VzZU1vdGlvbkxpc3RlbmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUYWJTdG9wQnVmZmVyIHsKKyAgICAgICAgcHVibGljIGludCBmUG9zaXRpb247CisgICAgICAgIHB1YmxpYyBieXRlIGZUeXBlOworCisgICAgICAgIFRhYlN0b3BCdWZmZXIoaW50IHBvc2l0aW9uLCBieXRlIHR5cGUpIHsKKyAgICAgICAgICAgIGZQb3NpdGlvbiA9IHBvc2l0aW9uOworICAgICAgICAgICAgZlR5cGUgPSB0eXBlOworICAgICAgICB9CisKKyAgICAgICAgVGFiU3RvcEJ1ZmZlcihUYWJTdG9wIHRhYikgeworICAgICAgICAgICAgdGhpcyh0YWIuZ2V0UG9zaXRpb24oKSwgdGFiLmdldFR5cGUoKSk7CisgICAgICAgIH0KKworICAgICAgICBUYWJTdG9wIGdldFRhYlN0b3AoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRhYlN0b3AoZlBvc2l0aW9uLCBmVHlwZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUYWJSdWxlck1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllciB7CisKKyAgICAgICAgcHJpdmF0ZSBUYWJTdG9wIGZPbGRUYWI7IC8vIHRhYiB0byByZW1vdmUKKyAgICAgICAgcHJpdmF0ZSBUYWJTdG9wIGZOZXdUYWI7IC8vIHRhYiB0byBhZGQKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlBhbmVsRGVmYXVsdHM7CisgICAgICAgIAorICAgICAgICBUYWJSdWxlck1vZGlmaWVyKFRhYlN0b3Agb2xkVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFRhYlN0b3AgbmV3VGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBwYW5lbERlZmF1bHRzKSB7CisgICAgICAgICAgICBmT2xkVGFiID0gb2xkVGFiOworICAgICAgICAgICAgZk5ld1RhYiA9IG5ld1RhYjsKKyAgICAgICAgICAgIGZQYW5lbERlZmF1bHRzID0gcGFuZWxEZWZhdWx0czsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIG9sZFN0eWxlKSB7CisKKyAgICAgICAgICAgIE1UYWJSdWxlciBvbGRSdWxlciA9IChNVGFiUnVsZXIpIGdldFdpdGhEZWZhdWx0KFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFN0eWxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZQYW5lbERlZmF1bHRzKTsKKyAgICAgICAgICAgIE1UYWJSdWxlciBydWxlciA9IG9sZFJ1bGVyOworCisgICAgICAgICAgICBpZiAoZk9sZFRhYiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGVyLmNvbnRhaW5zVGFiKGZPbGRUYWIpKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGVyID0gcnVsZXIucmVtb3ZlVGFiKGZPbGRUYWIuZ2V0UG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZOZXdUYWIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJ1bGVyID0gcnVsZXIuYWRkVGFiKGZOZXdUYWIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocnVsZXIgIT0gb2xkUnVsZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkU3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLCBydWxlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJbWFnZUNhY2hlIHsKKworICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgcHJpdmF0ZSBJbWFnZSBmSW1hZ2UgPSBudWxsOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZklzVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgcHJpdmF0ZSBDb21wb25lbnQgZkNvbXBvbmVudDsgICAvLyB3b3JrYXJvdW5kIGZvciBjb21waWxlciBidWcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNob3VsZCBqdXN0IGJlIGFibGUgdG8gc2F5IENvbXBvbmVudC50aGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyB3ZXJlIG5vdCBhIHN0YXRpYyBjbGFzcworICAgICAgICAKKyAgICAgICAgSW1hZ2VDYWNoZShDb21wb25lbnQgY29tcG9uZW50KSB7CisgICAgICAgIAorICAgICAgICAgICAgZkNvbXBvbmVudCA9IGNvbXBvbmVudDsKKyAgICAgICAgfQorCisgICAgICAgIEdyYXBoaWNzIGdldEdyYXBoaWNzKGludCB3aWR0aCwgaW50IGhlaWdodCkgeworCisgICAgICAgICAgICBpZiAod2lkdGggPD0gMCB8fCBoZWlnaHQgPD0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBJbWFnZSBpbWFnZSA9IGZJbWFnZTsKKyAgICAgICAgICAgIGlmIChpbWFnZSA9PSBudWxsIHx8IGltYWdlLmdldFdpZHRoKGZDb21wb25lbnQpIDwgd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGltYWdlLmdldEhlaWdodChmQ29tcG9uZW50KSA8IGhlaWdodCkgeworICAgICAgICBpZiAoIWZDb21wb25lbnQuaXNWaXNpYmxlKCkpIHsgLy8gZml4IHJhY2UgY29uZGl0aW9uIGlmIGNvbXBvbmVudCBub3QgZnVsbHkgaW5pdGlhbGl6ZWQKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgICAgICAgICAgaW1hZ2UgPSBmQ29tcG9uZW50LmNyZWF0ZUltYWdlKHdpZHRoLCBoZWlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgR3JhcGhpY3MgZyA9IGltYWdlLmdldEdyYXBoaWNzKCk7CisgICAgICAgICAgICBmSW1hZ2UgPSBpbWFnZTsKKyAgICAgICAgICAgIHJldHVybiBnOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoR3JhcGhpY3MgZywgaW50IHgsIGludCB5LCBDb2xvciBjb2xvcikgeworCisgICAgICAgICAgICBpZiAoIWZJc1ZhbGlkKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEcmF3aW5nIGltYWdlIHdoZW4gbm90IHZhbGlkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnLmRyYXdJbWFnZShmSW1hZ2UsIHgsIHksIGNvbG9yLCBmQ29tcG9uZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNWYWxpZCgpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZJc1ZhbGlkOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzZXRWYWxpZChib29sZWFuIGlzVmFsaWQpIHsKKworICAgICAgICAgICAgZklzVmFsaWQgPSBpc1ZhbGlkOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUaGlzIGNsYXNzIGxpc3RlbnMgdG8gYSBNVGV4dFBhbmVsIGZvciBjaGFuZ2VzIHdoaWNoCisgICAgKiBhZmZlY3QgYSBUYWJSdWxlcidzIGFwcGVhcmFuY2UsIGFuZCB1cGRhdGVzIHRoZSBUYWJSdWxlcgorICAgICogYXMgbmVjZXNzYXJ5LgorICAgICogQHNlZSBUYWJSdWxlcgorICAgICogQHNlZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBVcGRhdGVyIGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworCisgICAgICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICBwcml2YXRlIFRhYlJ1bGVySW1wbCBmVGFiUnVsZXI7CisgICAgICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworCisgICAgICAgIC8qKgorICAgICAgICAqIENyZWF0ZSBhIG5ldyBUYWJSdWxlclVwZGF0ZXIuCisgICAgICAgICogQHBhcmFtIHRhYlJ1bGVyIHRoZSBUYWJSdWxlciB0byB1cGRhdGUgd2hlbiBhIGNoYW5nZSBvY2N1cnMKKyAgICAgICAgKiAgICAgaW4gdGhlIE1UZXh0UGFuZWwKKyAgICAgICAgKi8KKyAgICAgICAgVXBkYXRlcihUYWJSdWxlckltcGwgdGFiUnVsZXIpIHsKKworICAgICAgICAgICAgZlRhYlJ1bGVyID0gdGFiUnVsZXI7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBSZW1vdmUgc2VsZiBhcyBsaXN0ZW5lciBmcm9tIHByZXZpb3VzIE1UZXh0UGFuZWwsCisgICAgICAgICogc2V0IGN1cnJlbnQgTVRleHRQYW5lbCBhbmQgbGlzdGVuIHRvIGl0IChpZiBub3QgbnVsbCkuCisgICAgICAgICovCisgICAgICAgIHZvaWQgc2V0VGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworCisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgICAgICBzZXRBbGwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRBbGwoKSB7CisKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBib29sZWFuIGxlZnRUb1JpZ2h0ID0gZlRleHRQYW5lbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBmVGV4dFBhbmVsLmdldFRleHQoKS5wYXJhZ3JhcGhTdHlsZUF0KG9mZnNldCk7CisgICAgICAgICAgICBmVGFiUnVsZXIuc2V0KHN0eWxlLCBmYWxzZSk7CisgICAgICAgICAgICBmVGFiUnVsZXIuc2V0Rm9ybWF0V2lkdGgoZlRleHRQYW5lbC5nZXRGb3JtYXRXaWR0aCgpLCBmYWxzZSk7CisgICAgICAgICAgICBmVGFiUnVsZXIuc2V0TGVmdFRvUmlnaHQobGVmdFRvUmlnaHQsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogVGV4dFBhbmVsTGlzdGVuZXIgbWV0aG9kLiAgVGhpcyBjbGFzcyByZXNwb25kcyB0byB0ZXh0CisgICAgICAgICogY2hhbmdlcyBieSB1cGRhdGluZyBpdHMgVGFiUnVsZXIuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgICAgIGludCBjaGFuZ2VDb2RlID0gZXZlbnQuZ2V0SUQoKTsKKworICAgICAgICAgICAgaWYgKGNoYW5nZUNvZGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEIHx8CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZUNvZGUgPT0gVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKSB7CisKKyAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpLnBhcmFncmFwaFN0eWxlQXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGxlZnRUb1JpZ2h0ID0gZlRleHRQYW5lbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgZlRhYlJ1bGVyLnNldChzdHlsZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGZUYWJSdWxlci5zZXRMZWZ0VG9SaWdodChsZWZ0VG9SaWdodCwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjaGFuZ2VDb2RlID09IFRleHRQYW5lbEV2ZW50LkZPUk1BVF9XSURUSF9DSEFOR0VEKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZlRhYlJ1bGVyLnNldEZvcm1hdFdpZHRoKGZUZXh0UGFuZWwuZ2V0Rm9ybWF0V2lkdGgoKSwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIFRleHRQYW5lbExpc3RlbmVyIG1ldGhvZC4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQgfHwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQgfHwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBkZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIFRhYlJ1bGVycy4KKyAgICAgKiBAc2VlICNzZXRCYWNrQ29sb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbG9yIERFRkFVTFRfQkFDS19DT0xPUiA9IENvbG9yLmxpZ2h0R3JheTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrVHJhY2tOb25lID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrVGFiID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrTE0gPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrVHJhY2tGTEkgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrVHJhY2tUTSA9IDQ7CisKKyAgICBwcml2YXRlIENvbXBvbmVudCBmSG9zdDsKKyAgICBwcml2YXRlIE1UYWJSdWxlciBmUnVsZXI7CisgICAgcHJpdmF0ZSBpbnQgZkxlYWRpbmdNYXJnaW47CisgICAgcHJpdmF0ZSBpbnQgZkZpcnN0TGluZUluZGVudDsKKyAgICBwcml2YXRlIGludCBmRm9ybWF0V2lkdGg7CisgICAgcHJpdmF0ZSBpbnQgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb247IC8vIG9wcG9zaXRlIG9mIGFjdHVhbCB0cmFpbGluZyBtYXJnaW4KKyAgICBwcml2YXRlIGJvb2xlYW4gZkxlZnRUb1JpZ2h0OworICAgIHByaXZhdGUgaW50IGZCYXNlbGluZTsKKyAgICBwcml2YXRlIGludCBmT3JpZ2luOworICAgIHByaXZhdGUgQ29sb3IgZkJhY2tDb2xvciA9IERFRkFVTFRfQkFDS19DT0xPUjsKKworICAgIHByaXZhdGUgaW50IGZUcmFja0l0ZW07IC8vIDAgLSBub25lLCAxIC0gdGFiLCAyIC0gbG0sIDMgLSBmbGksIDQgLSB0bQorICAgIHByaXZhdGUgVGFiU3RvcEJ1ZmZlciBmVHJhY2tUYWI7CisgICAgcHJpdmF0ZSBUYWJTdG9wIGZPbGRUYWI7CisgICAgcHJpdmF0ZSBpbnQgZlRyYWNrRGVsdGE7CisgICAgcHJpdmF0ZSBib29sZWFuIGZUcmFja1Zpc2libGU7CisgICAgcHJpdmF0ZSBVcGRhdGVyIGZVcGRhdGVyOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsID0gbnVsbDsKKworICAgIHByaXZhdGUgSW1hZ2VDYWNoZSBmSW1hZ2VDYWNoZTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFzZWxpbmUgdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgcnVsZXIncyBiYXNlbGluZQorICAgICAqIEBwYXJhbSBvcmlnaW4gdGhlIHgtY29vcmRpbmF0ZSBpbiB0aGlzIENvbXBvbmVudCB3aGVyZQorICAgICAqICAgICB0aGUgbGVmdCBtYXJnaW4gYXBwZWFycworICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvLiAgVGhpcyBUYWJSdWxlcgorICAgICAqICAgICB3aWxsIHJlZmxlY3QgdGhlIE1UZXh0UGFuZWwncyBwYXJhZ3JhcGggc3R5bGVzLCBhbmQgdXBkYXRlCisgICAgICogICAgIHRoZSBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gbWFuaXB1bGF0ZWQuCisgICAgICovCisgICAgcHVibGljIFRhYlJ1bGVySW1wbChpbnQgYmFzZWxpbmUsIAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9yaWdpbiwgCisgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudCBob3N0KSB7CisKKyAgICAgICAgZkhvc3QgPSBob3N0OworICAgICAgICBmSW1hZ2VDYWNoZSA9IG5ldyBJbWFnZUNhY2hlKGhvc3QpOworICAgICAgICBmVXBkYXRlciA9IG5ldyBVcGRhdGVyKHRoaXMpOworICAgICAgICBmQmFzZWxpbmUgPSBiYXNlbGluZTsKKyAgICAgICAgZk9yaWdpbiA9IG9yaWdpbjsKKyAgICAgICAgaG9zdC5hZGRNb3VzZUxpc3RlbmVyKHRoaXMpOworICAgICAgICBob3N0LmFkZE1vdXNlTW90aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgbGlzdGVuVG9UZXh0UGFuZWwodGV4dFBhbmVsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZSdWxlciA9IG5ldyBTdGFuZGFyZFRhYlJ1bGVyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZVcGRhdGVyLnNldFRleHRQYW5lbCh0ZXh0UGFuZWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBDb2xvciBnZXRCYWNrQ29sb3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGZCYWNrQ29sb3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhY2tDb2xvciB0aGUgbmV3IGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEJhY2tDb2xvcihDb2xvciBiYWNrQ29sb3IpIHsKKworICAgICAgICBpZiAoIWJhY2tDb2xvci5lcXVhbHMoZkJhY2tDb2xvcikpIHsKKyAgICAgICAgICAgIGZCYWNrQ29sb3IgPSBiYWNrQ29sb3I7CisgICAgICAgICAgICBHcmFwaGljcyBnID0gZkhvc3QuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgICAgIGlmIChnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwYWludChnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBnZXRXaXRoRGVmYXVsdChPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0cykgeworICAgICAgICBPYmplY3QgdmFsdWUgPSBzdHlsZS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIHZhbHVlID0gZGVmYXVsdHMuZ2V0KGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZsb2F0IGdldEZsb2F0V2l0aERlZmF1bHQoT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0cykgeworICAgICAgICBPYmplY3QgdmFsdWUgPSBnZXRXaXRoRGVmYXVsdChrZXksIHN0eWxlLCBkZWZhdWx0cyk7CisgICAgICAgIHJldHVybiAoKEZsb2F0KXZhbHVlKS5mbG9hdFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZXRMZWZ0VG9SaWdodChib29sZWFuIGxlZnRUb1JpZ2h0LCBib29sZWFuIHVwZGF0ZSkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCAhPSBsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmTGVmdFRvUmlnaHQgPSBsZWZ0VG9SaWdodDsKKyAgICAgICAgICAgIHJlZHJhd1NlbGYodXBkYXRlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRGb3JtYXRXaWR0aChpbnQgZm9ybWF0V2lkdGgsIGJvb2xlYW4gdXBkYXRlKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkZvcm1hdFdpZHRoICE9IGZvcm1hdFdpZHRoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZUcmFpbGluZ01hcmdpblBvc2l0aW9uICs9IChmb3JtYXRXaWR0aCAtIGZGb3JtYXRXaWR0aCk7CisgICAgICAgICAgICBmRm9ybWF0V2lkdGggPSBmb3JtYXRXaWR0aDsKKyAgICAgICAgICAgIHJlZHJhd1NlbGYodXBkYXRlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgVGFiUnVsZXIgZnJvbSB2YWx1ZXMgaW4gcGFyYWdyYXBoU3R5bGUuICBPbmx5IFRhYlJ1bGVyVXBkYXRlcgorICAgICAqIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwYXJhZ3JhcGhTdHlsZSB0aGUgcGFyYWdyYXBoIHN0eWxlIHdoaWNoIHRoZSBUYWJSdWxlciB3aWxsCisgICAgICogICAgIHJlZmxlY3QKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0KEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZSwgYm9vbGVhbiB1cGRhdGUpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgcGFuZWxEZWZhdWx0czsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsPT1udWxsKSB7CisgICAgICAgICAgICBwYW5lbERlZmF1bHRzID0gVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpLmdldERlZmF1bHRWYWx1ZXMoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICBwYW5lbERlZmF1bHRzID0gZlRleHRQYW5lbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgbGVhZGluZ01hcmdpbiA9ICAoaW50KSBnZXRGbG9hdFdpdGhEZWZhdWx0KFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyk7CisgICAgICAgIGludCBmaXJzdExpbmVJbmRlbnQgPSAoaW50KSBnZXRGbG9hdFdpdGhEZWZhdWx0KFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbERlZmF1bHRzKTsKKyAgICAgICAgaW50IHRyYWlsaW5nTWFyZ2luID0gKGludCkgZ2V0RmxvYXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbERlZmF1bHRzKTsKKworICAgICAgICBNVGFiUnVsZXIgcnVsZXIgPSAoTVRhYlJ1bGVyKSBnZXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsRGVmYXVsdHMpOworCisgICAgICAgIGludCBvdXJGbGkgPSBsZWFkaW5nTWFyZ2luICsgZmlyc3RMaW5lSW5kZW50OworICAgICAgICBpbnQgb3VyVG1wID0gZkZvcm1hdFdpZHRoIC0gdHJhaWxpbmdNYXJnaW47CisgICAgICAgIAorICAgICAgICBpZiAobGVhZGluZ01hcmdpbiA9PSBmTGVhZGluZ01hcmdpbiAmJgorICAgICAgICAgICAgICAgIGZGaXJzdExpbmVJbmRlbnQgPT0gb3VyRmxpICYmCisgICAgICAgICAgICAgICAgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gPT0gb3VyVG1wICYmCisgICAgICAgICAgICAgICAgcnVsZXIuZXF1YWxzKGZSdWxlcikpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkxlYWRpbmdNYXJnaW4gPSBsZWFkaW5nTWFyZ2luOworICAgICAgICBmRmlyc3RMaW5lSW5kZW50ID0gb3VyRmxpOworICAgICAgICBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbiA9IG91clRtcDsKKyAgICAgICAgZlJ1bGVyID0gcnVsZXI7CisgICAgCisgICAgICAgIHJlZHJhd1NlbGYodXBkYXRlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlZHJhd1NlbGYoYm9vbGVhbiBkcmF3Tm93KSB7CisKKyAgICAgICAgZkltYWdlQ2FjaGUuc2V0VmFsaWQoZmFsc2UpOworCisgICAgICAgIEdyYXBoaWNzIGcgPSBmSG9zdC5nZXRHcmFwaGljcygpOworICAgICAgICBpZiAoZyAhPSBudWxsKQorICAgICAgICAgICAgcGFpbnQoZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGRlYnVnZ2luZyBpbmZvLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisKKyAgICAgICAgcmV0dXJuICJUYWJSdWxlcntmTGVhZGluZ01hcmdpbj0iK2ZMZWFkaW5nTWFyZ2luKworICAgICAgICAgICAgICAgICJ9e2ZGaXJzdExpbmVJbmRlbnQ9IitmRmlyc3RMaW5lSW5kZW50KworICAgICAgICAgICAgICAgICJ9e2ZGb3JtYXRXaWR0aD0iK2ZGb3JtYXRXaWR0aCsKKyAgICAgICAgICAgICAgICAifXtmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbj0iK2ZUcmFpbGluZ01hcmdpblBvc2l0aW9uKworICAgICAgICAgICAgICAgICJ9e2ZSdWxlcj0iK2ZSdWxlcisKKyAgICAgICAgICAgICAgICAifSI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgZ2V0UnVsZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSdWxlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZ01hcmdpbigpCisgICAgeworICAgICAgICByZXR1cm4gZkxlYWRpbmdNYXJnaW47CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZpcnN0TGluZUluZGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gZkZpcnN0TGluZUluZGVudCAtIGZMZWFkaW5nTWFyZ2luOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFRyYWlsaW5nTWFyZ2luKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmRm9ybWF0V2lkdGggLSBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgdmlzdWFsVG9SdWxlclBvcyhpbnQgdmlzUG9zKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICByZXR1cm4gdmlzUG9zIC0gZk9yaWdpbjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luICsgZkZvcm1hdFdpZHRoIC0gdmlzUG9zOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IHJ1bGVyVG9WaXN1YWxQb3MoaW50IHJ1bGVyUG9zKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbiArIHJ1bGVyUG9zOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZPcmlnaW4gKyBmRm9ybWF0V2lkdGggLSBydWxlclBvczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBkaXJNdWx0KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZMZWZ0VG9SaWdodD8gMSA6IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSB0YWJQb3NpdGlvbiB0aGUgbG9naWNhbCAocnVsZXIpIHBvc2l0aW9uIG9mIHRoZSB0YWIKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZHJhd1RhYihHcmFwaGljcyBnLCBpbnQgdGFiUG9zaXRpb24sIGJ5dGUgdGFiVHlwZSwgaW50IHRhYlRvcCwgaW50IHRhYkJvdHRvbSkKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKHRhYlBvc2l0aW9uKTsKKyAgICAgICAgaW50IHdpZCA9IDA7CisgICAgICAgIHN3aXRjaCAodGFiVHlwZSkgeworICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtMZWFkaW5nOiB3aWQgPSAzOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rQ2VudGVyOiB3aWQgPSAwOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rVHJhaWxpbmc6IHdpZCA9IC0zOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rRGVjaW1hbDogd2lkID0gMDsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgfQorICAgICAgICB3aWQgKj0gZGlyTXVsdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHRhYlR5cGUgIT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgZy5kcmF3TGluZShwb3MsIHRhYlRvcCwgcG9zLCB0YWJCb3R0b20pOworICAgICAgICAgICAgaWYgKHdpZCAhPSAwKQorICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUocG9zLCB0YWJCb3R0b20sIHBvcyArIHdpZCwgdGFiQm90dG9tKTsKKyAgICAgICAgfQorICAgICAgICBnLmRyYXdMaW5lKHBvcy0yLCB0YWJUb3ArMiwgcG9zLCB0YWJUb3ApOworICAgICAgICBnLmRyYXdMaW5lKHBvcywgdGFiVG9wLCBwb3MrMiwgdGFiVG9wKzIpOworICAgICAgICBpZiAodGFiVHlwZSA9PSBUYWJTdG9wLmtEZWNpbWFsKSB7CisgICAgICAgICAgICBnLmRyYXdMaW5lKHBvcyArIDMsIHRhYkJvdHRvbSwgcG9zICsgNCwgdGFiQm90dG9tKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkcmF3TE0oR3JhcGhpY3MgZykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKGZMZWFkaW5nTWFyZ2luKTsKKyAgICAgICAgaW50W10geHB0cyA9IHsgcG9zLCBwb3MsIHBvcyArICg0KmRpck11bHQoKSksIHBvcyB9OworICAgICAgICBpbnRbXSB5cHRzID0geyBmQmFzZWxpbmUgKyAxMiwgZkJhc2VsaW5lICsgNywgZkJhc2VsaW5lICsgNywgZkJhc2VsaW5lICsgMTIgfTsKKyAgICAgICAgZy5maWxsUG9seWdvbih4cHRzLCB5cHRzLCAzKTsKKyAgICAgICAgZy5kcmF3UG9seWdvbih4cHRzLCB5cHRzLCA0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd0ZMSShHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgaW50IHBvcyA9IHJ1bGVyVG9WaXN1YWxQb3MoZkZpcnN0TGluZUluZGVudCk7CisgICAgICAgIGludFtdIHhwdHMgPSB7IHBvcywgcG9zLCBwb3MgKyAoNCpkaXJNdWx0KCkpLCBwb3MgfTsKKyAgICAgICAgaW50W10geXB0cyA9IHsgZkJhc2VsaW5lLCBmQmFzZWxpbmUgKyA1LCBmQmFzZWxpbmUgKyA1LCBmQmFzZWxpbmUgfTsKKyAgICAgICAgZy5maWxsUG9seWdvbih4cHRzLCB5cHRzLCAzKTsKKyAgICAgICAgZy5kcmF3UG9seWdvbih4cHRzLCB5cHRzLCA0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd1JNKEdyYXBoaWNzIGcpCisgICAgeworICAgICAgICBpbnQgcG9zID0gcnVsZXJUb1Zpc3VhbFBvcyhmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbik7CisgICAgICAgIGludFtdIHhwdHMgPSB7IHBvcywgcG9zLCBwb3MgLSAoNipkaXJNdWx0KCkpLCBwb3MgfTsKKyAgICAgICAgaW50W10geXB0cyA9IHsgZkJhc2VsaW5lLCBmQmFzZWxpbmUgKyAxMiwgZkJhc2VsaW5lICsgNiwgZkJhc2VsaW5lIH07CisgICAgICAgIGcuZmlsbFBvbHlnb24oeHB0cywgeXB0cywgMyk7CisgICAgICAgIGcuZHJhd1BvbHlnb24oeHB0cywgeXB0cywgNCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFsaWduSW50KGludCB2YWx1ZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIChpbnQpKChpbnQpKHZhbHVlIC8gNC41KSAqIDQuNSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gZmdMZW5ndGhzID0geyAxMCwgMiwgNCwgMiwgNiwgMiwgNCwgMiB9OworCisgICAgLyoqCisgICAgICogQ29tcG9uZW50IG1ldGhvZCBvdmVycmlkZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBmSG9zdC5nZXRTaXplKCk7CisKKyAgICAgICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aDsKKyAgICAgICAgaW50IGJhc2VsaW5lID0gZkJhc2VsaW5lOworICAgICAgICBpbnQgYmFzZWxpbmUyID0gYmFzZWxpbmUgKyAyOworICAgICAgICBpbnQgYmFzZWxpbmUxMCA9IGJhc2VsaW5lICsgMTA7CisgICAgICAgIGludCBiYXNlbGluZTEyID0gYmFzZWxpbmUgKyAxMjsKKworICAgICAgICBpZiAoIWZJbWFnZUNhY2hlLmlzVmFsaWQoKSkgeworCisgICAgICAgICAgICBHcmFwaGljcyBnQ2FjaGUgPSBmSW1hZ2VDYWNoZS5nZXRHcmFwaGljcyh3aWR0aCwgYmFzZWxpbmUxMiArIDEpOworICAgICAgICAgICAgaWYgKGdDYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzZXQgYmFja2dyb3VuZCBjb2xvcgorCisgICAgICAgICAgICBnQ2FjaGUuc2V0Q29sb3IoZkJhY2tDb2xvcik7CisgICAgICAgICAgICBnQ2FjaGUuc2V0UGFpbnRNb2RlKCk7CisgICAgICAgICAgICBnQ2FjaGUuZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGJhc2VsaW5lMTIgKyAxKTsKKworICAgICAgICAgICAgLy8gcGFpbnQgdGlja3MKKworICAgICAgICAgICAgZ0NhY2hlLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgIGdDYWNoZS5kcmF3TGluZSgwLCAwLCB3aWR0aCwgMCk7CisgICAgICAgICAgICBnQ2FjaGUuZHJhd0xpbmUoMCwgYmFzZWxpbmUsIHdpZHRoLCBiYXNlbGluZSk7CisKKyAgICAgICAgICAgIGludFtdIGxlbmd0aHMgPSBmZ0xlbmd0aHM7CisKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgaW5jaG51bSA9IDA7CisgICAgICAgICAgICBGb250TWV0cmljcyBmbSA9IG51bGw7CisgICAgICAgICAgICBpZiAoIWZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGZtID0gZ0NhY2hlLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZkZvcm1hdFdpZHRoOyBpICs9IDkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGVuID0gbGVuZ3Roc1tpbmRleF07CisgICAgICAgICAgICAgICAgaW50IHBvcyA9IHJ1bGVyVG9WaXN1YWxQb3MoaSk7CisgICAgICAgICAgICAgICAgZ0NhY2hlLmRyYXdMaW5lKHBvcywgYmFzZWxpbmUsIHBvcywgYmFzZWxpbmUgLSBsZW4pOworCisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IEludGVnZXIudG9TdHJpbmcoaW5jaG51bSsrKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRyYXdYOworICAgICAgICAgICAgICAgICAgICBpZiAoZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3WCA9IHBvcyArIDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3WCA9IHBvcyAtIGZtLnN0cmluZ1dpZHRoKHN0cikgLSAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZ0NhY2hlLmRyYXdTdHJpbmcoc3RyLCBkcmF3WCwgYmFzZWxpbmUgLSAyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKytpbmRleCA9PSBsZW5ndGhzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwYWludCB0YWJzCisgICAgICAgICAgICBUYWJTdG9wIHRhYiA9IGZSdWxlci5maXJzdFRhYigpOworICAgICAgICAgICAgd2hpbGUgKHRhYiAhPSBudWxsICYmIHRhYi5nZXRQb3NpdGlvbigpIDwgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGRvZHJhdyA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKHRhYi5nZXRUeXBlKCkgPT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgICAgICAgICBpZiAodGFiLmdldFBvc2l0aW9uKCkgPD0gTWF0aC5tYXgoZkxlYWRpbmdNYXJnaW4sIGZGaXJzdExpbmVJbmRlbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgZG9kcmF3ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhYi5nZXRQb3NpdGlvbigpID49IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgZG9kcmF3ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGRvZHJhdykKKyAgICAgICAgICAgICAgICAgICAgZHJhd1RhYihnQ2FjaGUsIHRhYi5nZXRQb3NpdGlvbigpLCB0YWIuZ2V0VHlwZSgpLCBiYXNlbGluZTIsIGJhc2VsaW5lMTApOworCisgICAgICAgICAgICAgICAgdGFiID0gZlJ1bGVyLm5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBnQ2FjaGUuZHJhd0xpbmUoMCwgYmFzZWxpbmUxMiwgd2lkdGgsIGJhc2VsaW5lMTIpOworCisgICAgICAgICAgICAvLyBwYWludCBvdGhlcnMgZXhjZXB0IGZvciB0cmFja2VkIGl0ZW0KKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja0xNKSBkcmF3TE0oZ0NhY2hlKTsKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja1RNKSBkcmF3Uk0oZ0NhY2hlKTsKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja0ZMSSAmJiBmVHJhY2tJdGVtICE9IGtUcmFja0xNKSBkcmF3RkxJKGdDYWNoZSk7CisgICAgICAgICAgICBmSW1hZ2VDYWNoZS5zZXRWYWxpZCh0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZJbWFnZUNhY2hlLmRyYXdJbWFnZShnLCAwLCAwLCBDb2xvci5saWdodEdyYXkpOworCisgICAgICAgIHN3aXRjaCAoZlRyYWNrSXRlbSkgeworICAgICAgICAgICAgY2FzZSBrVHJhY2tUYWI6IGlmIChmVHJhY2tWaXNpYmxlKSBkcmF3VGFiKGcsIGZUcmFja1RhYi5mUG9zaXRpb24sIGZUcmFja1RhYi5mVHlwZSwgYmFzZWxpbmUyLCBiYXNlbGluZTEwKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtUcmFja0xNOiBkcmF3TE0oZyk7IGRyYXdGTEkoZyk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrVHJhY2tUTTogZHJhd1JNKGcpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2Uga1RyYWNrRkxJOiBkcmF3RkxJKGcpOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZSkge30KKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZUVudGVyZWQoTW91c2VFdmVudCBlKSB7fQorICAgIC8qKgorICAgICAqIE1vdXNlTGlzdGVuZXIgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkge30KKworICAgIC8qKgorICAgICAqIE1vdXNlTGlzdGVuZXIgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpCisgICAgeworICAgICAgICAvLyBmaW5kIG91dCBpZiB3ZSBoaXQgYSB0YWJzdG9wCisgICAgICAgIGludCB4ID0gdmlzdWFsVG9SdWxlclBvcyhlLmdldFgoKSk7CisgICAgICAgIGludCB5ID0gZS5nZXRZKCk7CisKKyAgICAgICAgaWYgKHkgPiBmQmFzZWxpbmUgJiYgeSA8IGZCYXNlbGluZSArIDEyKSB7CisgICAgICAgICAgICBpZiAoeSA+PSBmQmFzZWxpbmUgKyA3ICYmIHggPj0gZkxlYWRpbmdNYXJnaW4gLSAzICYmIHggPD0gZkxlYWRpbmdNYXJnaW4gKyAzKSB7CisgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja0xNOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZkxlYWRpbmdNYXJnaW4gLSB4OworICAgICAgICAgICAgfSBlbHNlIGlmICh5IDwgZkJhc2VsaW5lICsgNyAmJiB4ID49IGZGaXJzdExpbmVJbmRlbnQgLSAzICYmIHggPD0gZkZpcnN0TGluZUluZGVudCArIDMpIHsKKyAgICAgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrRkxJOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZkZpcnN0TGluZUluZGVudCAtIHg7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHggPj0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gLSAzICYmIHggPD0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gKyAzKSB7CisgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja1RNOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gLSB4OworICAgICAgICAgICAgfSBlbHNlIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgICAgIGZUcmFja0l0ZW0gPSBrVHJhY2tUYWI7CisgICAgICAgICAgICAgICAgZlRyYWNrVGFiID0gbmV3IFRhYlN0b3BCdWZmZXIoYWxpZ25JbnQoeCksIFRhYlN0b3Aua0xlYWRpbmcpOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZlRyYWNrVGFiLmZQb3NpdGlvbiAtIHg7CisgICAgICAgICAgICAgICAgZlRyYWNrVmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFRhYlN0b3AgdGFiID0gZlJ1bGVyLmZpcnN0VGFiKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgICAgICAgICBpZiAoeCA8IHRhYi5nZXRQb3NpdGlvbigpIC0gMykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBpZiAoeCA8IHRhYi5nZXRQb3NpdGlvbigpICsgMykgeworICAgICAgICAgICAgICAgICAgICAgICAgZk9sZFRhYiA9IHRhYjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja1RhYiA9IG5ldyBUYWJTdG9wQnVmZmVyKHRhYik7CisgICAgICAgICAgICAgICAgICAgICAgICBmUnVsZXIgPSBmUnVsZXIucmVtb3ZlVGFiKGZPbGRUYWIuZ2V0UG9zaXRpb24oKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmdldENsaWNrQ291bnQoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGZUcmFja1RhYi5mVHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0xlYWRpbmc6IGZUcmFja1RhYi5mVHlwZSA9IFRhYlN0b3Aua0NlbnRlcjsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rQ2VudGVyOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtUcmFpbGluZzsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rVHJhaWxpbmc6IGZUcmFja1RhYi5mVHlwZSA9IFRhYlN0b3Aua0RlY2ltYWw7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0RlY2ltYWw6IGZUcmFja1RhYi5mVHlwZSA9IFRhYlN0b3Aua0xlYWRpbmc7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrVGFiOworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrRGVsdGEgPSB0YWIuZ2V0UG9zaXRpb24oKSAtIHg7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgdGFiID0gZlJ1bGVyLm5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZUcmFja0l0ZW0gIT0ga1RyYWNrTm9uZSkgeworICAgICAgICAgICAgICAgIGZJbWFnZUNhY2hlLnNldFZhbGlkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBwYWludChmSG9zdC5nZXRHcmFwaGljcygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKQorICAgIHsKKyAgICAgICAgaW50IHggPSB2aXN1YWxUb1J1bGVyUG9zKGUuZ2V0WCgpKTsKKyAgICAgICAgaW50IHkgPSBlLmdldFkoKTsKKworICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tOb25lKSB7CisgICAgICAgICAgICBib29sZWFuIHJlcGFpbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJvb2xlYW4gaW5yYW5nZSA9IHkgPiBmQmFzZWxpbmUgJiYgeSA8IGZCYXNlbGluZSArIDEyOworICAgICAgICAgICAgYm9vbGVhbiBpbmJpZ3JhbmdlID0geSA+IDAgJiYgeSA8IGZIb3N0LmdldFNpemUoKS5oZWlnaHQgKyAyMDsKKyAgICAgICAgICAgIGludCBuZXdwb3MgPSBhbGlnbkludCh4ICsgZlRyYWNrRGVsdGEpOworICAgICAgICAgICAgaWYgKG5ld3BvcyA8IDApCisgICAgICAgICAgICAgICAgbmV3cG9zID0gMDsKKworICAgICAgICAgICAgc3dpdGNoIChmVHJhY2tJdGVtKSB7CisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tUYWI6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlucmFuZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnQgPSAhZlRyYWNrVmlzaWJsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja1Zpc2libGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3BvcyAhPSBmVHJhY2tUYWIuZlBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrVGFiLmZQb3NpdGlvbiA9IG5ld3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmVHJhY2tWaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tWaXNpYmxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gYnJlYWs7CisKKy8qIEl0IHdvdWxkIGJlIG5pY2UgdG8gb3B0aW9uYWxseSB0cmFjayB0aGUgbWFyZ2luICdpbmRlcGVuZGVudGx5JyBvZiB0aGUgZmlyc3QgbGluZSBpbmRlbnQuCisgVW5mb3J0dW5hdGVseSB0aGlzIG1ha2VzIGZvciBtb3JlIHdvcmsgd2hlbiB3ZSBoYXZlIG11bHRpcGxlIHBhcmFncmFwaCBzdHlsZXMgc2VsZWN0ZWQuCisgU2luY2UgaW50ZXJuYWxseSB0aGUgZmlyc3QgbGluZSBpbmRlbnQgaXMgcmVsYXRpdmUgdG8gdGhlIG1hcmdpbiwgbW92aW5nIHRoZSBtYXJnaW4KKyBpbmRlcGVuZGVudGx5IHNvIHRoYXQgYWxsIGFmZmVjdGVkIHBhcmFncmFwaHMgc2hhcmUgdGhlIHNhbWUgbWFyZ2luIGJ1dCByZXRhaW4gZmlyc3QKKyBsaW5lIGluZGVudHMgaW4gdGhlICdzYW1lJyBwb3NpdGlvbnMgbWVhbnMgdGhhdCBJIG5lZWQgdG8gYWxzbyBhZGp1c3QgdGhlIGZpcnN0IGxpbmUKKyBpbmRlbnRzIGluIGVhY2ggcGFyYWdyYXBoIGJ5IHNvbWUgZGVsdGEuIEknbSBub3QgcmVhZHkgdG8gZG8gdGhhdCB5ZXQuICovCisKKyAgICAgICAgICAgICAgICBjYXNlIGtUcmFja0xNOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmJpZ3JhbmdlICYmIG5ld3BvcyAhPSBmTGVhZGluZ01hcmdpbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZkZpcnN0TGluZUluZGVudCArPSBuZXdwb3MgLSBmTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZMZWFkaW5nTWFyZ2luID0gbmV3cG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tGTEk6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluYmlncmFuZ2UgJiYgbmV3cG9zICE9IGZGaXJzdExpbmVJbmRlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZGaXJzdExpbmVJbmRlbnQgPSBuZXdwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIGtUcmFja1RNOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmJpZ3JhbmdlICYmIG5ld3BvcyAhPSBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gPSBuZXdwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgaWYgKHJlcGFpbnQpCisgICAgICAgICAgICAgICAgcGFpbnQoZkhvc3QuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkKKyAgICB7CisgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja05vbmUpIHsKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtID09IGtUcmFja1RhYiAmJiBmVHJhY2tWaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgZlJ1bGVyID0gZlJ1bGVyLmFkZFRhYihmVHJhY2tUYWIuZ2V0VGFiU3RvcCgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZlRyYWNrVGFiID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbm90aWZ5KGZUcmFja0l0ZW0pOworCisgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrTm9uZTsKKyAgICAgICAgICAgIGZUcmFja1RhYiA9IG51bGw7CisgICAgICAgICAgICBmT2xkVGFiID0gbnVsbDsKKworICAgICAgICAgICAgZkltYWdlQ2FjaGUuc2V0VmFsaWQoZmFsc2UpOworICAgICAgICAgICAgcGFpbnQoZkhvc3QuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkge30KKworICAgIHByaXZhdGUgdm9pZCBub3RpZnkoaW50IGNoYW5nZSkKKyAgICB7CisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKworICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKworICAgICAgICAgICAgaWYgKGNoYW5nZSA9PSBrVHJhY2tUYWIpIHsKKyAgICAgICAgICAgICAgICBUYWJTdG9wIG5ld1RhYiA9IGZUcmFja1RhYj09bnVsbD8gbnVsbCA6IGZUcmFja1RhYi5nZXRUYWJTdG9wKCk7CisgICAgICAgICAgICAgICAgbW9kaWZpZXIgPSBuZXcgVGFiUnVsZXJNb2RpZmllcihmT2xkVGFiLCBuZXdUYWIsIGZUZXh0UGFuZWwuZ2V0RGVmYXVsdFZhbHVlcygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIE9iamVjdCBrZXk7CisgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlOworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNoYW5nZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIGtUcmFja0xNOgorICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3IEZsb2F0KGdldExlYWRpbmdNYXJnaW4oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIGtUcmFja1RNOgorICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU47CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBGbG9hdChnZXRUcmFpbGluZ01hcmdpbigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2Uga1RyYWNrRkxJOgorICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3IEZsb2F0KGdldEZpcnN0TGluZUluZGVudCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY2hhbmdlIGNvZGUuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGtleSwgdmFsdWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcG9uZW50IG92ZXJyaWRlLgorICAgICAqLworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWluaW11bVNpemUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24oMTAwLCBmQmFzZWxpbmUgKyAxMyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcG9uZW50IG92ZXJyaWRlLgorICAgICAqLworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0TWluaW11bVNpemUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL0ZyYW1lUmVzb3VyY2VzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL0ZyYW1lUmVzb3VyY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTdjMWU5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvRnJhbWVSZXNvdXJjZXMuamF2YQpAQCAtMCwwICsxLDIyMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCitwdWJsaWMgZmluYWwgY2xhc3MgRnJhbWVSZXNvdXJjZXMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKy8qCisgKiBUaGVzZSBTdHJpbmdzIGFyZSBrZXlzIHRvIG90aGVyIFN0cmluZyByZXNvdXJjZXMuCisgKi8KKyAgICAvLyBNZW51IG5hbWVzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRURJVCA9ICJFZGl0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTSVpFID0gIlNpemUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTlQgPSAiRm9udCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RZTEUgPSAiU3R5bGUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZMVVNIID0gIkZsdXNoIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBLRVlNQVAgPSAiS2V5bWFwIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9NRU5VID0gIkFib3V0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCSURJID0gIkJpZGkiOworICAgIAorICAgIC8vIEJ1dHRvbnMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBPSyA9ICJPSyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FOQ0VMID0gIkNhbmNlbCI7CisKKyAgICAvLyBDb2xvcnMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCTEFDSyA9ICJCbGFjayI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgV0hJVEUgPSAiV2hpdGUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEdSRUVOID0gIkdyZWVuIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCTFVFID0gIkJsdWUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENZQU4gPSAiQ3lhbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgR1JBWSA9ICJHcmF5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVJLX0dSQVkgPSAiRGFyayBHcmF5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMSUdIVF9HUkFZID0gIkxpZ2h0IEdyYXkiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1BR0VOVEEgPSAiTWFnZW50YSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1JBTkdFID0gIk9yYW5nZSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUElOSyA9ICJQaW5rIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSRUQgPSAiUmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBZRUxMT1cgPSAiWWVsbG93IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBOT05FID0gIk5vbmUiOworCisgICAgLy8gRGlhbG9nIHRpdGxlcyBhbmQgbWVzc2FnZXMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU0laRV9USVRMRSA9ICJTZXQgRm9udCBTaXplIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU0laRV9MQUJFTCA9ICJGb250IFNpemU6IjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVVBFUlNDUklQVF9USVRMRSA9ICJTZXQgU3VwZXJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVVBFUlNDUklQVF9MQUJFTCA9ICJTdXBlcnNjcmlwdDoiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVUJTQ1JJUFRfVElUTEUgPSAiU2V0IFN1YnNjcmlwdCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX1NVQlNDUklQVF9MQUJFTCA9ICJTdWJzY3JpcHQ6IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfRk9SRUdST1VORF9USVRMRSA9ICJTZXQgRm9yZWdyb3VuZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0ZPUkVHUk9VTkRfTEFCRUwgPSAiRm9yZWdyb3VuZDoiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9CQUNLR1JPVU5EX1RJVExFID0gIlNldCBCYWNrZ3JvdW5kIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfQkFDS0dST1VORF9MQUJFTCA9ICJCYWNrZ3JvdW5kOiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0ZPTlRfVElUTEUgPSAiU2V0IEZvbnQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9GT05UX0xBQkVMID0gIkZvbnQ6IjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFCT1VUX1RJVExFID0gIkFib3V0IHRoZSBSaWNoRWRpdCBDb250cm9sIjsKKworICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgU3RyaW5nIHdoaWNoIGlzIG5vdCBpdHMgb3duIHZhbHVlOgorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFCT1VUX1RFWFQgPSAiQWJvdXQgdGV4dCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFDVFVBTF9BQk9VVF9URVhUID0KKyAgICAgICAgIkNvcHlyaWdodCAoQykgSUJNIENvcnAuIDE5OTYtMjAwMiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuXG4iICsKKyAgICAgICAgIkpvaG4gUmFsZXlcbiIgKworICAgICAgICAiU3RlcGhlbiBGLiBCb290aFxuIiArCisgICAgICAgICJEb3VnIEZlbHRcbiIgKworICAgICAgICAiSm9obiBGaXR6cGF0cmlja1xuIiArCisgICAgICAgICJSaWNoIEdpbGxhbSI7CisvKgorICogVGhlIGZvbGxvd2luZyBTdHJpbmdzIGFyZSBrZXlzIHRvIE1lbnVEYXRhIHJlc291cmNlcy4gIFRoZXkKKyAqIGFsc28gZG91YmxlIGFzIHRoZSBkZWZhdWx0IG1lbnUgbGFiZWwgdGV4dC4KKyAqLworICAgIC8vIEVkaXQgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVORE8gPSAiVW5kbyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVETyA9ICJSZWRvIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDVVQgPSAiQ3V0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZID0gIkNvcHkiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBU1RFID0gIlBhc3RlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEVBUiA9ICJDbGVhciI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VMRUNUX0FMTCA9ICJTZWxlY3QgQWxsIjsKKworICAgIC8vIEZsdXNoIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMRUFESU5HID0gIkxlYWRpbmciOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFRSQUlMSU5HID0gIlRyYWlsaW5nIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDRU5URVIgPSAiQ2VudGVyIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBKVVNUSUZJRUQgPSAiSnVzdGlmaWVkIjsKKworICAgIC8vIEFib3V0IG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9JVEVNID0gIkFib3V0Li4uIjsKKworICAgIC8vIEtleW1hcCBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVCA9ICJEZWZhdWx0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBUkFCSUMgPSAiQXJhYmljIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBIRUJSRVcgPSAiSGVicmV3IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJU1JBRUxfTklLVUQgPSAiSXNyYWVsIE5pa3VkIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBUSEFJX0tFVE1BTkVFID0gIlRoYWkgS2V0bWFuZWUiOworCisgICAgLy8gU3R5bGUgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBMQUlOID0gIlBsYWluIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCT0xEID0gIkJvbGQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElUQUxJQyA9ICJJdGFsaWMiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVOREVSTElORSA9ICJVbmRlcmxpbmUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNUUklLRVRIUk9VR0ggPSAiU3RyaWtldGhyb3VnaCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VQRVJTQ1JJUFQgPSAiU3VwZXJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVCA9ICJTdWJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVUEVSU0NSSVBUX0RJQUxPRyA9ICJTdXBlcnNjcmlwdC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VCU0NSSVBUX0RJQUxPRyA9ICJTdWJzY3JpcHQuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZPUkVDT0xPUl9ESUFMT0cgPSAiRm9yZWNvbG9yLi4uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCQUNLQ09MT1JfRElBTE9HID0gIkJhY2tjb2xvci4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9OVF9ESUFMT0cgPSAiRm9udC4uLiI7CisgICAgCisKKyAgICAvLyBTaXplIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBPVEhFUl9ESUFMT0cgPSAiT3RoZXIuLi4iOworICAgIAorICAgIC8vIEJpZGkgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfRElSRUNUSU9OID0gIkRlZmF1bHQgUGFyYWdyYXBoIERpcmVjdGlvbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTFRSX0RJUkVDVElPTiA9ICJMZWZ0LXRvLXJpZ2h0IFBhcmFncmFwaCBEaXJlY3Rpb24iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJUTF9ESVJFQ1RJT04gPSAiUmlnaHQtdG8tbGVmdCBQYXJhZ3JhcGggRGlyZWN0aW9uIjsKKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VNZW51RGF0YShTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBzaG9ydEN1dENoYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaG9ydEN1dEtleSkgeworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10geyBuYW1lLCBuZXcgTWVudURhdGEobmFtZSwgc2hvcnRDdXRDaGFyLCBzaG9ydEN1dEtleSkgfTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBtYWtlTWVudURhdGEoU3RyaW5nIG5hbWUpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUpIH07CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gZHVwbGljYXRlKE9iamVjdCBvYmopIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgb2JqLCBvYmogfTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFVORE8sICd6JywgS2V5RXZlbnQuVktfWiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoUkVETywgJ3InLCBLZXlFdmVudC5WS19SKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShDVVQsICd4JywgS2V5RXZlbnQuVktfWCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ09QWSwgJ2MnLCBLZXlFdmVudC5WS19DKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShQQVNURSwgJ3YnLCBLZXlFdmVudC5WS19WKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShDTEVBUiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoU0VMRUNUX0FMTCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoTEVBRElORyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ0VOVEVSKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShUUkFJTElORyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSlVTVElGSUVEKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShBQk9VVF9JVEVNKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShERUZBVUxUKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShIRUJSRVcpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEFSQUJJQyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSVNSQUVMX05JS1VEKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShUSEFJX0tFVE1BTkVFKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShQTEFJTiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQk9MRCwgJ2InLCBLZXlFdmVudC5WS19CKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShJVEFMSUMsICdpJywgS2V5RXZlbnQuVktfSSksIC8vIHdoeSBkb2Vzbid0IHRoaXMgd29yayBpbiBTd2luZz8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBUYWIgaW4gQVdUISEhCisgICAgICAgICAgICBtYWtlTWVudURhdGEoVU5ERVJMSU5FLCAndScsIEtleUV2ZW50LlZLX1UpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNUUklLRVRIUk9VR0gpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNVUEVSU0NSSVBUKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVUJTQ1JJUFQpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNVUEVSU0NSSVBUX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoU1VCU0NSSVBUX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoRk9SRUNPTE9SX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQkFDS0NPTE9SX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoRk9OVF9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKE9USEVSX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoREVGQVVMVF9ESVJFQ1RJT04pLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKExUUl9ESVJFQ1RJT04pLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFJUTF9ESVJFQ1RJT04pLAorICAgICAgICAgICAgZHVwbGljYXRlKE9LKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShDQU5DRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKEJMQUNLKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShXSElURSksCisgICAgICAgICAgICBkdXBsaWNhdGUoR1JFRU4pLAorICAgICAgICAgICAgZHVwbGljYXRlKEJMVUUpLAorICAgICAgICAgICAgZHVwbGljYXRlKENZQU4pLAorICAgICAgICAgICAgZHVwbGljYXRlKEdSQVkpLAorICAgICAgICAgICAgZHVwbGljYXRlKERBUktfR1JBWSksCisgICAgICAgICAgICBkdXBsaWNhdGUoTElHSFRfR1JBWSksCisgICAgICAgICAgICBkdXBsaWNhdGUoTUFHRU5UQSksCisgICAgICAgICAgICBkdXBsaWNhdGUoT1JBTkdFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShQSU5LKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShSRUQpLAorICAgICAgICAgICAgZHVwbGljYXRlKFlFTExPVyksCisgICAgICAgICAgICBkdXBsaWNhdGUoTk9ORSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NJWkVfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TSVpFX0xBQkVMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfU1VQRVJTQ1JJUFRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TVVBFUlNDUklQVF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NVQlNDUklQVF9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NVQlNDUklQVF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0ZPUkVHUk9VTkRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9GT1JFR1JPVU5EX0xBQkVMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfQkFDS0dST1VORF9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0JBQ0tHUk9VTkRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9GT05UX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfRk9OVF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoRURJVCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0laRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoRk9OVCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU1RZTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEZMVVNIKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShLRVlNQVApLAorICAgICAgICAgICAgZHVwbGljYXRlKEJJREkpLAorICAgICAgICAgICAgZHVwbGljYXRlKEFCT1VUX01FTlUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEFCT1VUX1RJVExFKSwKKyAgICAgICAgICAgIHsgQUJPVVRfVEVYVCwgQUNUVUFMX0FCT1VUX1RFWFQgfQorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvTWVudURhdGEuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvTWVudURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xY2JmNmIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL3Jlc291cmNlcy9NZW51RGF0YS5qYXZhCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlczsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIHVzZWQgaW4gcmVzb3VyY2VzIHRvIHJlcHJlc2VudCBhIE1lbnUuICBJdCBpcworICoganVzdCBhIG5hbWUgYW5kIGFuIG9wdGlvbmFsIHNob3J0Y3V0IGtleS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1lbnVEYXRhIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBTdHJpbmcgZk5hbWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZIYXNTaG9ydGN1dDsKKyAgICBwcml2YXRlIGNoYXIgZlNob3J0Y3V0OworICAgIHByaXZhdGUgaW50IGZLZXlDb2RlOworCisgICAgcHVibGljIE1lbnVEYXRhKFN0cmluZyBuYW1lKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgTWVudURhdGEoU3RyaW5nIG5hbWUsIGNoYXIgY2gsIGludCBrZXlDb2RlKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSB0cnVlOworICAgICAgICBmU2hvcnRjdXQgPSBjaDsKKyAgICAgICAgZktleUNvZGUgPSBrZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKworICAgICAgICByZXR1cm4gZk5hbWU7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgZ2V0U2hvcnRjdXRDaGFyKCkgeworCisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZTaG9ydGN1dDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRTaG9ydGN1dEtleUNvZGUoKSB7CisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZLZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc1Nob3J0Y3V0KCkgeworCisgICAgICAgIHJldHVybiBmSGFzU2hvcnRjdXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3VuaWNvZGUtbGljZW5zZS50eHQgYi91bmljb2RlLWxpY2Vuc2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ODlmNjQKLS0tIC9kZXYvbnVsbAorKysgYi91bmljb2RlLWxpY2Vuc2UudHh0CkBAIC0wLDAgKzEsNDggQEAKK1VOSUNPREUsIElOQy4gTElDRU5TRSBBR1JFRU1FTlQgLSBEQVRBIEZJTEVTIEFORCBTT0ZUV0FSRQorCisgICAgVW5pY29kZSBEYXRhIEZpbGVzIGluY2x1ZGUgYWxsIGRhdGEgZmlsZXMgdW5kZXIgdGhlIGRpcmVjdG9yaWVzCitodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy8sIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy8sIGFuZAoraHR0cDovL3d3dy51bmljb2RlLm9yZy9jbGRyL2RhdGEvIC4gVW5pY29kZSBTb2Z0d2FyZSBpbmNsdWRlcyBhbnkgc291cmNlIGNvZGUKK3B1Ymxpc2hlZCBpbiB0aGUgVW5pY29kZSBTdGFuZGFyZCBvciB1bmRlciB0aGUgZGlyZWN0b3JpZXMKK2h0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLywgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzLywgYW5kCitodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NsZHIvZGF0YS8uCisKKyAgICBOT1RJQ0UgVE8gVVNFUjogQ2FyZWZ1bGx5IHJlYWQgdGhlIGZvbGxvd2luZyBsZWdhbCBhZ3JlZW1lbnQuIEJZCitET1dOTE9BRElORywgSU5TVEFMTElORywgQ09QWUlORyBPUiBPVEhFUldJU0UgVVNJTkcgVU5JQ09ERSBJTkMuJ1MgREFUQSBGSUxFUworKCJEQVRBIEZJTEVTIiksIEFORC9PUiBTT0ZUV0FSRSAoIlNPRlRXQVJFIiksIFlPVSBVTkVRVUlWT0NBTExZIEFDQ0VQVCwgQU5ECitBR1JFRSBUTyBCRSBCT1VORCBCWSwgQUxMIE9GIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVC4gSUYgWU9VCitETyBOT1QgQUdSRUUsIERPIE5PVCBET1dOTE9BRCwgSU5TVEFMTCwgQ09QWSwgRElTVFJJQlVURSBPUiBVU0UgVEhFIERBVEEgRklMRVMKK09SIFNPRlRXQVJFLgorCisgICAgQ09QWVJJR0hUIEFORCBQRVJNSVNTSU9OIE5PVElDRQorCisgICAgQ29weXJpZ2h0IMKpIDE5OTEtMjAwNiBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIERpc3RyaWJ1dGVkIHVuZGVyCit0aGUgVGVybXMgb2YgVXNlIGluIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvY29weXJpZ2h0Lmh0bWwuCisKKyAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGUgVW5pY29kZSBkYXRhIGZpbGVzIGFuZCBhbnkgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uICh0aGUgIkRhdGEgRmlsZXMiKSBvcgorVW5pY29kZSBzb2Z0d2FyZSBhbmQgYW55IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiAodGhlICJTb2Z0d2FyZSIpIHRvIGRlYWwgaW4KK3RoZSBEYXRhIEZpbGVzIG9yIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCityaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKK3RoZSBEYXRhIEZpbGVzIG9yIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgRGF0YSBGaWxlcyBvcgorU29mdHdhcmUgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgcHJvdmlkZWQgdGhhdCAoYSkgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykKK2FuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciB3aXRoIGFsbCBjb3BpZXMgb2YgdGhlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUsCisoYikgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KK2Fzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiwgYW5kIChjKSB0aGVyZSBpcyBjbGVhciBub3RpY2UgaW4gZWFjaCBtb2RpZmllZCBEYXRhCitGaWxlIG9yIGluIHRoZSBTb2Z0d2FyZSBhcyB3ZWxsIGFzIGluIHRoZSBkb2N1bWVudGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgRGF0YQorRmlsZShzKSBvciBTb2Z0d2FyZSB0aGF0IHRoZSBkYXRhIG9yIHNvZnR3YXJlIGhhcyBiZWVuIG1vZGlmaWVkLgorCisgICAgVEhFIERBVEEgRklMRVMgQU5EIFNPRlRXQVJFIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQorS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQgT0YgVEhJUkQKK1BBUlRZIFJJR0hUUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSE9MREVSUyBJTkNMVURFRCBJTiBUSElTCitOT1RJQ0UgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIE9SIEFOWSBTUEVDSUFMIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwKK0RBTUFHRVMsIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywKK1dIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORworT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRIRSBEQVRBIEZJTEVTIE9SCitTT0ZUV0FSRS4KKworICAgIEV4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIGEgY29weXJpZ2h0IGhvbGRlciBzaGFsbCBub3QKK2JlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsaW5ncworaW4gdGhlc2UgRGF0YSBGaWxlcyBvciBTb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbiBvZiB0aGUKK2NvcHlyaWdodCBob2xkZXIuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=